3.62560990822190831193068515586767200299516768288006546743337799956991924353872912161836013672338430036147175139242071996589152409402255997742645889036145060641374489685419499920192677303799463089221241231832370799208439736990709390562092923234287027419144860395713683503686548799596836847647585148909040416634076303397180668059577342379085590807145783129763563688255879288111906351681585084947488150278867310731052487982516636612879316418441744382764575480091991477680192281509261199432299783783536345955434194743707480852281647492382207765758264184768229225624189134785920659156756563875507328166896282474154785932393787382451296744434518203051071750663878373996462064982483241536680954974218844410454251761639071919577279017756154543055019888415374653873552143860099081231395707515335427226551048545306108674886732775173541649799032139912715540614055414755623822673386217458027153660103915304533002159885720335369221232686386770780674096284705275930838450601160100678669518246421402801055529863927553021792388749586364245258749340568761019828200356362794363065724514138808203635564907486816223637742526510883015900581818431184829531960884343991041113156070112401150783664845827161929453018338002042498883535483309298417955128506075710068997185583271380396503157827300072581672178825502997281204042410354921668165628415924417395027839393109214630119444145888450289581126255727274421406575447806645393377298662419225962478465988922231758398074546978657743926625122112841947028318111368833711588926510534914475654704102753376074262069788165106159023537548072940058288365822735407457783523565866775321071537677107680169654834579914994105622350140379847862965835194192526100965070961810878618125363120423608727715539012262824654920618024201268438986457603498132148277971008773654832179246270816526362205925781838488941442940905208553978425001576651394484753379057021234919728553199979977227288799669767134459488934973946844918570984970603855905466003164267119637441920795204517059736566701150618671656723467884256349539883879920952563324895302866361767484915674854270988473193871068034548308945238848030853512405909903110109395793648630028647077428023731283390935900734442535408651338029403926090187320126588988534921943146780148242486507315846137563603231466674471215619373461844962831816528255421858215687873186464917144674559583261051536048269461588462024614110699492519424898933925962625888345712381212921772594722941707985934504405513804287889502151667208180719697895745173248767335362717258500016483810168599691450613379165026917839940952410729099645211340800715306144340208232127104448099650946435732656892925059766648246266530449342293412086756760456106362414619164246044168222880202324770437515669276132306842768500352824411895588581519821721851460613988224432416884072274873718176370065773244493409601790539973402960764756605240265837045720004356426886432449779758830747609694677865908556373846116710643050792533112350397914056324212875486116488832058510762041712479382343134344223062954251754533735414683696489876769111985739420086029779514860696778761164903824450937109754769415675174639987071709971226207943709407179616399091929013589100284992252386917906188927889951014763175128144769873997415302381177905245963160558399374665191484918738937394046850373196013667499047011020558356379791076136460150875903743442848198792459994947017814546858703608429459961692673284883683627381270570171721219154018062399883010319561474964858795149355050517851170532299717441743207571627404555635917822940814209064497078904448370448962388220103990964590244855491200243726372274692864222626371911065887427781232725511822087408380842970150252059402857745868304299514214993178571983127074306407829960317401791416455216267526382363885783711844817731699240396613633642377314730222165478789478842548612362443989772477599596201424439578096765524376282815435113021623869839792676674614884540649286054798880449486342687158545983411348086148108528734771896503286818303511607071694459843701069243034836515981541657297015821883180482948162442886141749947568194900521424316415712660032917350225162540345665853818499197097648444855110692794721511583008306046720896075269019711194005508270664094910536905382622933653518557255406912587179835768597552447576736244396051200209560543369259363699406285633499567318474729307719180805434474200807847323039811112734745277978576062877322521750357671777733315766618994746817055072426543249008815572180721382730973258798753889050897609432307587924967919633402732883674070946363938105590232444133234813434420823720888784943172889226941620350123840937268414448575120091838676149413706997230947652871028950914371953270311893390770439917671378379640592722416550044669587093754536429083663342752915105525161338511716961998816916369008745914815337626503859647796250441699580041209240229188722974921164791678039793347357946398931032889120066650552759665083164024540403363385594489197482003209028803451905519683988662146973760380581507204794302424968399716655882347652404108083191160212458968988596173537724906101614509587909798516571734399674780734760605617205737835333155349408034624122310686551053000802650330253028943686293187574386088509986416127064680725517142252767013926741841495085055807135211467588093799888272883150723128885948573021027474773125146534571622154123304818229238615576540137631313899426662128135169177096669439449841120489063098250370256424922427709912538831442532364967767331113396317931873341090351903105424595293678627091731642608748549530001716850434291875214247313012002906910997087231340248997901922244248394628531364194286653609562435214910247843257579571472993841433937258595839317078167594718490871565807709078032294713437510965481169511232603099030735045978237790923622261633055947168382025986235428233336248453347130705247225049384287960038716392248864194824762432171399112982001147304463520653646345283140353482557605668606385046989260447864517367805545980199329561436499787219641165585081176984563090386562781324915031834550294930114538109489226810104273957620225699446342861430727649282429312954884969478087338257025092372270399545704032313608308639155110754323642036147798347961869623321039688274489476266164477170699313042361188214402257907298559275285131313440149213058308489974088278962948157263582639770307566066047241896875367877011141608989642844435928662047893756234930324351260117258626973612705853067328321392906165661651600225414971648866723783734567934782345956046897503424717308619759279315186237744242082984951413578865084691924549910349380189175605367141239715011990036911756910582093660938407170534984770887687606119904617200792941432329689475122408742914670961724768910328551787809301716862226564513655980285027886678358587310501353268085186182492913745460380866004356207316720267128862478757140001066483367602281552570614342261647759713987366500393475760661210157958776544969549378611103532856732232040900679791707404252391262898852103098233916982270824843214763121429694052903793125000082906007087369008741751947997828009144160840611098114848449030986217845943401698402505630086720899848358292666387567197740907478241537520256250296484123093451705185197386156318716192499487157621136144860073859043249173010476573494404275187608097242141526414368714224188946041293100593756691158251202313009291833237182408192133365686743306356318150762984370355186208863215021750276232271732690759246911231611425477943362294651309707466421682669412125372850567683773613802680239941548980442373010598595157645791833361379760430494462173784393361532997700437354820685338056007756349360015591011404779592636481994001012895981595605924406780267783289219087815348735485395215132400958449784078630627472781581827865644400443259130458689389288011686111574140615594452120812872597462278606346489903586059152094131201945252768936644614744288557114775762825762165414283728845091300862061290643874442610946377243532364382767515989124705427722329266525940638023139487513016111250564361647293379348175148837935032970591474958842746259013052617083543131731654633469982610139468369411180260085658080807723071583710996050422481308813356328195062211849185803065056303568930482606632073060482816380032617257612815186080239636195767374202661693215637535480031496980617325623385778416177199715793965227106291770414751920408080517381374975337080518606635616226289389885870978460876959296432858185760554737907638970479389930929210392764959723717042089821205864702652715687128900951263690528909819794052878375306727841380604649484371857839769373242130133864419966433898597497368687036295558912388616720255648024918257640263100246590495850825154030025072223519742524347539963271807258120445506654678958505019757642244234703778658676060868118304823285344519460970662138333260069288044618278437932180306189504972683748216377904043166506693572765512433396265126594131244071740366680106096448026478989298113613833915226071737335332293671707038997404817334894771516281468078798988869702440971181287515722564233858797992227802752085971792535857326596853470602303623914870249620566987929821817916797591008223989881700665670208066199014607793518009892690108848354257106063382625244696616547579365377858886359867332593186936764578520495007172162809782909136300494794527549519307241734473066877133026995988762311856017004995751334841374368755145930913348619081425127426302375846610245426702724141547780337420161795579211036167467989675227450102064066370193084687816203686259618898403539392158271648919064949245300722705198361093679997128306041181801625969289549432075091121481931291259735118313317200691795228153371035330122169173613305063617682253583406095851274289386050874968140576267440089916838001878702676881309990531770844381669262248100190166201949005926657752478292561082108024616958359061242705233189404701412750807434784934920804856736771480487009661268991615462354528942881780777336288194372061790465249544870793241676886900992639378801646467743399588805516170477650342241963620347034713840622546412917701040863268779624566372941167655649823634323294717072436514583776770077090951865063174700509895707185200514481897878901335618038510779500659766205859087842507934773354936681631140546255031606807294673340442850052053410879847416296371235382390504792432849763500121976490632263808734241203853561321212540443572863604169517822081431123407904926949188301482649212628340280370582778266606267697155649948513031610390227853435366476989046819254785446040725226299445212171056850062178348076033083222218072287037263365238711922940670971215670023819754832320989505539980031360558902730855537116328242622362465529116076493152516589784442423218000015324896954888307206600131780652086144405700072378240620982499178634839227301568096951212986040732055056175676075996581312812603729663999570371545857285302430665904563849937788339481361312148568458293879475435953300907712950465248193471531986192764921538922975402241755048064309212475470132680095708732325622118081661471750630328270263622106810848635399544746317577305059644269731072379358350204375416122198941119563933976331987042150034011066019044829385280790467069434324817287440818664397158235997212475661678076838152412395161960040772130553678161813108546407950264470438600789851462214479220437069504223477164403955021217883899159920225264609642507377885710164970359620829109234436535797793102627314965385274050500343267853298224170306076591518884235014213745157016121350840572099351280922980315134996454272447532474855790307964433298758859996766030740607805614818591515253741640823969220046895844449861982325516387778752151761310642600607313936771334456206167889453741508432249384104049196090419481060667185067288222443494600871474335111591031889082474299640727316095148727501466771533914200153881383262500653905150422132782652292233825227786856441148761764569516945680671463988280600533523251571787509441287630621197603756144020086692671670047183235040461383958481296095899373508782499474899107717405937231956541824599759119003895500019715277989457809807751156938513344460127825645190159719777707649133199772854937263781455785355932296161055308254096540494218674392512558394724139221814006071195660401937216438984952412156060067831739743565949962620519417997902673521638108229059426381021821374046279178432593348296513714947636720112409563582334269150435460720812897098708201254431014202818811331235835276505931153352111641402280799227525189639696436526370012322614545266081696856754702173521475842104021625359831321412730774892605093398459374663859429459267572475591578949446135208504444020946618323413578739714405395396582337510142333616625197160217093048583493253437585334151148951256722753044147855042052991582390229529364592424371457599484800601218225484131066356407728448631541939394763394799773653590847354283632000295337123460649310448973583371606490245825963114524737741485372981003118295148649075200219355633964163654452323383717997888380921791394534999281919527098194110263450434384070907409548636684373010372423895675791235096561478377004107003660277082682755579936245352661661921533874990914318566247138327476646882888885280228472831770776178292527544154153042262767618648530029314114624633864614492419138630630037470120974846481996514038095812684671914556644005736613498278689535584530944460290920376748722514851476537060755587646990013465634176597015887615006356779236421109880426669926599130687506229886813023461419759857478770014988193932471850514523623539186597184913320270711177067703159706817528780225430979055126827646138968877946108716255074567737330349450014389038074921794475618911274553649570900525952257843091698417607989815425712422221397600478173899345016971974712861180512837468629051011607290306832848725685961798189154579150663194292899991232430798385837149884237026994444878636232507454189134524712633269027264654857764879235933681473273147405856356023095492691239756792892321067914435704978528978740525793286788386074582072746644450511115825208933370777889093020220129598561939204946923436293059432753500040366441601461818520117347162139941011344978475890981554943427297096595228142903504941134662238996311323848857015871740468580172512769026625744674755197795859788576124262996454208745580494615315985966675015023691009122066285829099156488828270898782470753897673366213902692023862572740581588204880556404469381889590029699460590942206978435171341115419238750090055757174009494445649842312307316920754936278233299509905435363238592618800303685225870383232425314428259894806128109279563863022908513896882018135363142481508005649530085286684117671648971052783320740567171222014655233780051214134952614140417577429342963592636238552769577690714844954826079541027099690420190695198638231419350630036485975362905238307614092657303462286666511649189992878245648465894873680836915403060786528475506387980790267285278098065402536110941521482493668810739630902551752322977960877767084996069266329229574718573072740567081088950493804349249760055133978708766479731294245916248661551970938602432885951871803931469258625291979826495105728471546592404548066383645070507405697555354019971383493663603234741282790131264900222868293077100108471202803177764314211708638287151574075962616647370850589514478759897852993603802157442350388149961735962783643499837963103566116181966330039239968256724666902617981607844569700208164177395664865615291798816229804763969245866092059957620900762632825813361187513303143465184470959162581745241337689104813310235038690912037218898871092278281922616117531809447703593301447767315916023041559327223789193154735105991665287631064187827682303735959049682040092155747560385585809768009150263761819812106234925071185282908533165861055138176397265740578415480860231444935415281147205953206125443810050172678790085137283378914470652729422365600418460999038605199789512827766712404244237086616213956193128172153115595104561071363300434976375775946223070302927205444437375437365277431553018926908980890405103504504071207750985019331234660121354941986903903312698328388652809030820100864512581743908259000500741749356616385562408328285588291605707678260248571704374646116133108367956753221392137658749065773300404727918779280154816807545256930718986328143989283215615625272757197232000559451593269448409594744926956082684380141273541818495618503995982034888251133493849163552342618088481821350813441145547740182841595775108847016993722997943354427291590560359027423344344064379881104518875168467540798399482149742466818572420696734372043985007768879318186025431988117611352569332826279670074979701113677810731205149272612331470456986599692601760779700328249759043107408067416271703982595898144550568929884055139652838864592070166584514141996441004782168601166751050724565594958497271009692925957230198484366482286095857121053844552995452995314655835261488601121768448592585361982614587198101626191805523270234409441552272733196994592756947262865530107379613959670789805258485040255947429068051027867355254291085540524393508944235232716274886300422798432453861558655691613537226639213719765478205848004691670037094969242672599548837754621147284059514997599041942659080471280165462659354058922612699321572952473879634373085491558594941817338928316821034570636566509675174714617201888290221703445986053434381013911290325179780767663933857801872182445958259639818525206418275130470991765914159625428495380451830873000963569883940428033108795827413566772914228683339866169127867889229373360986433479765079660757874816595029470013772673640208710577028997414348861071825659400325794457867374120415255690552370717144083977901481417335028380763661715109482973860657734910003470430839960558290759242362566820966706418827950129632354323134665433330075442703038036508055865059449932942965705006844928383179886239752965894451397629499686996883196853360804433628873948699976874279750321879823585367426635157964388829057694568323668402734185596581364112570897323950414730265774367674263693982455846380391407287635073775161770656229267863795816941919337743839220091830524520701683000371949251682754617975741857613536705148743939237047481246728164706928364327109204165679330671787454304184682821914329150186016754883269418667113629900034735004113008093043090344794588734257365790380417391468051251588903626909798899954107447662878690282417242280546910344414527573375031418224237321814274778649198614186957562850783784120489994866740469522659865503014970577818017905907866508678746091315139228208526266115862887580035817505711705715724957056726043581257394596434403180676490993018396076112467969951396804760598905031360569140597335419709708733342079068757463616898220866474463787007582429762819326983255450657873828157705817053350126245435172747012101827956247806473314193128733764086097587753253549654390786252833751787091452152849588106328992926830074840336618401348922566382723073714059512353520359495570132619477089249490834819888025906739182875673037923199625261545003480445955823744465406208245087191418035875325730797027139976595750734207334457123974592728394456391678650231265452402211462561094581416313827649129037164451717216904872143759632385371512384737046506005542293792066316263263198423593660530319648500634398493359571462927006168157914543205538639449988128823028063175671758136251401793860364294531207049997318138725685873300184342171984271287936756340612482998458350518055465698065793372535868309082485092463107963719276559636650785999664709381123963139900382797954233639577796252888709512085376400618737887369944119706936017007167365779998910495896892308523065759466665690163517575225994174418849333470940177226870270871654521651580482779869879943480013891442522127214776895250233196120091687427460926580203880469735125809551951700343392545275779266615784501340336204924126725382641670327421390445912396836896119187527731992035220156179891758529391098363284011605665321521014896519573924318562497519196799663332737025497198970748893594986743136178899296403362886013956983500774266169960848825585753967496535432890310512468261217605582408529650283727378039202214741913707777733105911389705749487118493563285083508139007438022821409229150801315177208281274372911070847960525216924593380410281708658625575624255694606000981966642988095070124038019733674723164544654123747035531888696013179808763091707501550824382043635380575934202159302627597793846421700325607383635708699448083040215787903041809624753824295769052906707425063757087435530907261856656257581003005725205352085945240834523268085109524869100908346462501873110001190613969108817130153190986282197916788885047556406360442967008551730906547926116172817622708545411934388982191252603620556439518660006160588710131452726478028704739156074369653038824446208617523130010942519707509399713597562222537171579901256596035444976373752429550479499778336634883505683882365053237639637206387417378940621532083823667851493371131259144785915940925207091647015166672318548571479234997401950111108134658824473284932363002116315456461805505422890467240758401661421073703169334630617976587093450740544951592462734985141304325463215238715229900988726974595180234562226227203095037150543934754979164879946854964120687986120596071312298866064511432303220922701297343954090997418462622560485254369886106234163798877405695046864889119246965581624087296298896573688049527488014635567291847955862188444911295416232048292809295623744502159588196471356633780740343612178174778066577907712155584663201427142905737603251331805144538656324967619908205469052858828595877223865394088797642646633391896069583196030017818359354869239922542208537679408336922927121666617887724538849648409724041577618000363903496965712277390177089816689763127041561778047679114405571479810988810724280616883778250823223744833772068452510896028903619151831977257647822978063666991473051611190877392912523688549220376680306843953074869623103385048597205525464012765720317795160784191217289086995743689473472711155480065571106716638055361745855905630802550560882598709545216062680492668373940921919347350348540525073821775882636689694984707302803591863628641441064869681601519242510460272343772992808231088814259574247329107033555768340240874015737519906402961834616875251399354199482716174175911237099879524487440347446550594008464722259858779368393015613879459006779232493005128350665196071468435129980304108983844652834229049345929325294149959685243283242991642147677155272388870969730170894089103328978474489910908189657494899721630950021208992789401160112628851683185973487057649634295434310397341823846177392744324846745091994683823998460201440068810520027558030884287565417273168661704761533199569352607666475642002021102013240544056800574752870158888484341183863694538600291719493870053870630450038828880431605878267339413543370632069626376825365953930976768815738619714662697600298809080581233372144292203072622031367015737164542814644383257648383791356203931798830034224502471503140540086767616973632552591754296900089008104076887818208293287216452308416188236658996433134740377164657945118576131285663524426308319694008049971841609359406465599347777498362133853778141906695261133557585463325205718321681714984268958161886749200997295271355530060013571996345520903528391324641963790244043048205187012858149765453644566335151125188256782569269472845782175891010101819931873709600850192493178040367877292027343708955828194525968430568507324931711151137464824960025485011877907407563244063472767408221020872551647297179756402471708970226106414388342993783103831556139523013136113946673671755744346667750093375776944367522365883287989599887093453440947971948645580827188955621559403763339702240725178457818278996319627603142624876925306732355532761921934594070328397661185631478241810095240006360085822622349357310893891682707940635527295521629103477519226460869154275648344754036723995506381280462664770022875378511059172789812618057481036447383195273990004321749853454508354683686668325064023973150151635293082806862939007279026536359623333896666555604753365600602472244215829750779586577706386502886824359338654879947994126660122074090760279525082795259636957863879814554370443874455009702485817100013494077674500579523677343252521486636604006642902344472310256777448344950493432490216402059954138995536333593328901208182106915258551846446999452449174907143925815845469602190927562013655972827787772364441382777736628808576928447949480217530860375181646366987270392157212937656120576934725634285754731698925238502671560120492488266605378261839554723820997569438160887455473430049556056457624151770623873393892454013829214761999862352905059921133401961134372364862324849715057081640556937063937711830271595624663010031756195094518201909894056932344360782259532458712985329109733354865896825714381274480585882561238011158859098246146479624506813519310006214044515509717693685423597492213746666005417106283977983971973117532231259859501971906042450019861185706876400583771433946759572881381744045306753718585522986971100787742700248770479216929640893054639073532899926048242427321183542412138861800921932921574412708797131835521006726869399907706429014289344226012408338786437593734568086683414524837280845763389437352490173063472451019281147833619855856151119656201665996437609002211550432575897947325637191441034994413360110069191924190314313029628298753187085289363606004550547933901504850206749008680272692684007786241097187666830986544244111892475678080816272471798838915754936387456249822708715893873160713699034956936873793864675317780850406576035398497538601564584931927571791762808562391150853829994740224905855710222536624120757521906746647166292936425440302749140936546045977400373389410524038163127094143973537229167650889059357207422859759181094091175989315667455597956682061883879845563732274867058119246633533748846601971244694068295363775952608285545215406464016489179302434762426295448841520801263088520111700840709346179265072582641675989366378213918607274366492688135239242960412037601127742399761262967097075227001748053495964206961291441839216590212976486384703843955553116073054222862215525438562941661408500399919263665322954441770205552175723671116361479341398608128561360517920666831045215200815717048079493126560966647278652564862977742017155815012363076193645276996454375881510143890125147588904726043435040493770441314065924072538453651745529824420107130180806086879626415391255999219365457489507814853438368878579103064511437220900711993303547022602460958876098964922485987563161136526114667782106771288372796206524235653491644414106998981440097158372114541512064581092200181531964527635605495895342395641851562644239190575742891354466616820322528689313927696215310125582549169136891450997731130501658752712468444519235486474362253772516354132965309832913461756511987052753846813908301471266859804499649389202012907277607402043686037638858038978775045283818995411895662535974442010520722765421692024475535490571468975310400167493418739001834953588674145334247131700967886678115682005837365214355142831021639789194336393844715884630138102554388764267587633362312911708470551457313168137557169469643556253874339317686919920749454836900771423307243459823708953676692808303528811922334617009198581837873564207036289744687414070139679105612284748926006100679588401336486239740242156466900919660871133798379525611805305813170709112455284612249872784655565340595271463337695008928769255528570439774525714707201428197451184341362578730445218097638178332789779886280691530478565115101897614735845328590506812369657159017303969062875351393064736184936523192752546441231807498201688179497819051733338559795998845599546728916418083675540194558669548885740626775979681643770261655675064018372821034303747430822716456452683905677330942264281491870657154376447405150057178402815043070459145336773655369910649915668611933995749946543001051314890215020536060519057835442126597231306444212593517985082545062187640104471303880687920797247009073088783140329642107891789912065188191144654928721245006365387785172745753858228972624252744299443512888620154900140511160222928698655222965378754570478555471064845251723386969180753844285921358750015461389182594733015686263088643044750774764686011850604371113152410483609200396449659875000152424705201143575776202247033467281343182830864805538436780654422711844036663301787384414659340824442429198003962003375618160833560177156453344932147357558873003003375425449572361905083018183547357054152323685403952953082731995217133364649163445149204561931678435334701359293783454170237331486468520582019530797871684029165484906524366680576919808694258365667588890019436647697696459330353929403478546478706387048643501118794935660521965433489085407243179304296972435102912242366035684697535734218756573654023586868088600892670559634314265758404642518166616798637951535403997326105796303404157869020432194069063549460116137789058915942064865468016117765838964589162788380203763749544590550909647970607591360230129793813142997868708567907772671595732495692930999901032021276192688913613801951445172904390043791692398877114475015166338204984748252469681661863735582594568441857405173187085571566309099607094111217153086506196486729030770650775332709122984675698520242788360171538432459819179971127360650192972903099825418546354918998916215180195571470523019994807953254200846366299798024757922891303796742854151845927091285879935220564337855388441832446949595180706975753037899274736292614092260817227095735828283506698217203120158318388094275767279562626001523721451034439330361249441442281689882616804489427965138745061310180027616253251419372268058349141744534545543481610482467144860125411209627840110944335395155392430913751100753154209845653087757417112170305490459273956894678580965427836318578534721109121032129105307015724890273769365972240059346976288002900715791614797591319865232076216459615849171183306999457231981587632060365043107075157826628491761720235352790295230739570519998659952437338518395555121345841301071043297099925748796079219962851317851141334371511745228973025335678733799416081463612710017437046067894496350061031900436322172535495167198650483727776284146576656186558978341067169841422648654457216697521770421851346002124389908799254032607004648837836831570300902569115200353378892102169841990772857338914683750962626538112826082287772624413738668058821742035868698832272194461758839680547969578215443898815444056620153672140456063770126036965522687764738661608695608665486795575624938343048839835991312330049482398746493174735687795509639488083125272132452323398590733907101423654602195086024715148402417055031388557322206727654491695356867551033845899270415790957680157032151432542319270707301887497335704933549258639169563856782978038359349845265197479362164833358639377210668908273633263523976223741254785925186162220080641072060222822247562688094059394790446751615593012912420882911994034343492446995703283274107452190475722047564756707412170150154299735867981206689774618744560888439653797462175547550281992079621530734151042133047638415862149420800684760143330417047030384882492597188961377919953383634015650939017022001707805899205246789188034328765152338356241058636522405043788175982731462496849868356908970307980637335458765055023509824120693481697062861212884256737267063421418547131718502038328026744957904797666390874945534663720860563555807733186300652982119123511919972549563511233494224989428645730412509894335290673790361334769543868302583046339539023085573578592618771585273450608361348361795567242539315726530303237823209600461900274138465043271996485180130368748868991718561895808767434973445808053548973036890486031270169449311720310519091306689909512136488906759679284834241500343382881320234209652446800886379528553266744723178125126306425423741121756762487432895042989315099021836642722053879408138970199968218575124467517767652427315490208888703795351346871554049950338296860045175610886311284758298731847134435724499770363409462220643827853490801256663734166348843218624638755490464211947337801855922578805204095366401527030227944224694477446099088813974753571480879993128956324179058201648180405797689605295782992176991939647788810222297367350420960267263322561449664194541454502010155189982633088537934487814454344324586037259869798438163990596227573591815283106994025796808638714643654483209860566115184255150053292090225696274486191365174870368472394142526084754702652102985664303653460557422383990008984389649066785875865881787358696925974791763771747983212184124939453173880004283481565201685855547361545987509639647869889373720425336910909719216854335952582111603456727738762676816439337749106887417940652489304458108327803029734143180724666660663532517922660396699649079495878858711291959969662165653589311864141858537808405363277394992644125908275803860885337576722003337561885184765897266630666074388895628041736273876871515432523165665864125125806590916952832691604678269791307013340425802778610341529668128186701339465688041862893188650692671519674660557322657097301514245538328524406001751850160775878680256342713805391580205760411054568087433379912726726993725770490598105371262647900320378420151233934830713718042139309169646816087887835399090946368048135039263196175483345680958753275726134665363667302216528968709908935646262283567920700601226725217792143944617735734476291965750369351052210937239110116037254633462118541388856077451462078929784617668752493381531278612727379915127885858510307009541702151366772819815309758472617824159321821667050774083729514148023586668510893362557264630237074837192467593640792096303989312965463311422679499343483690242814637601498202562776422175743810325735438246987090648770054963363841983089737374745161376777061775195094623265179968054945102615897406262009675101487959868892436195681532559490428664347430681236225166190974236150483391991891034415629711317310944482364606935319425108710128135620715399881851771448304568947751507183342445885835908537108186077438381904552924728059236343452302932348065725689020386219278767898407629288106613337540359204433610087357260122029356283112567355717949153146376658579733998146004206238717843126271256314938714008555224716372331874025642804777497279589074950470260344158015017385760129826247099841162915592785181984594365714441617627753978698533555067624344475290907908425802770733464063302667577569771299838268165278627203861192061548876288658754243331414679844035675892005814426618944916624740582835680044008495304641914629073647595378365862807694129546379962784747199345283928171003350496452387400424209764647680844823344094615410620686432354949651531524229784468231196931433336618801930144500614642402431493290610200467414719810224334837009348170257599048218480984945509295683051872779185295657690673896898548247328173762907124532980593389491453511695783554438730627210533641077983967630407605522189631191456023148426149985588906840472486624403156563224364622434070343403020013230032360256624025777844087338521368359965840310745765162373238729872270957012173957086110395736834498308614769462396004513589542828789368804689895048464271189617715366000926239834257507360563852238339810573517798019183193720311655486371315132316505888364825163221495861719781476534853593332729505316274121641915427225399285235524662859250864029684256620245247133449420828117755109919892923974580165568311646677928302086939591258823586523929320076431724049299959425871067803550056070332247659770353544585209193437608832324306244100997127592857426817118369251660758444028928137487123556736437518808018988469478249428127233456557971353117652663095456092927610997735346246190200251574522300145534262113273134570198532964312161583937272322635557991833806557296118908462387471610163476783167800278429630927865193582210744729810482836899326996147563227369966402178873241817273367821922568719802523149984615317997367808139792814280341291613525484348016545981277726492403573945497312731954347084782261737210608547271664197972966513060221060314548471519611581164226617391888868378636713308464720039288007729449979652875276674717403744807906772924762301383154792658222158970348629518627309829620363426520467988267214269612688198980058129034077680114865512457277561359687489918997909874389047386832219355745825809995260829998171509833323810577448874485134110412059905475060657429911849874243362795168519475129115405608152560215389766961913041536670541718940261544600674827649938965919135543340721423376142715856680493415940750320707139099991454001164428068791241899348780425855057041762366599211425327613751007734836711898928358256486212529060685803451602209228492957857323684908199574318475232771908247984560068028593680391007696704639616346991208702976101408684695517925104284197853015794366312354965349850814460648683410318458956272629323115140824370638164351678025480605845754132421659282085625677964573537996067324032450180825439631058714136326736003982460542154017333295855287902695847260358480529312908122075257595285422001121225759353990584764691300292440818778833537436145292334956229906676393877857213203264094862432555899968441198670493354667321049885935205836916970397091149979578101512838915871829438949594252689900167129176597207156247743726887244887396299239552012127503346108047169269508042435149244103588322236316931177704717674620248037018097996864683420008498941400848201766579069201358634232993619849866034011728122998377770958913300330030676468249588602514118385842817002034685652097202458557810251487476800695639331250543003685149900695677023646272521782008896176725080898283475069670598577074226345711034784606406542325299349341872621165003585492169339751600891516236686981811873047449047207631102894256207524751840765949866239282610648398219815624697451060196860839795391085077326396198321356874383218258066611844532796547751369390363148758443903771741422631678826958639506131567669709527391390149405621612116446985082960828779007647696172784357952184907262519497093898746689977091735721582820451387267671190323418704910641619312003525586401884806014176151557119801756253942166542337707515755651655101910450405993744962803370068290072223022798161909087220389324418254788882620197219518567556450737410125431632959336479913812284385316259331365081820205344283053669526675025284314033217779640703084271420039387690076684694398289973353078794962864736875092734989036843738253875555855473509524766983802785594665715784241534072500587420762447949157012619327869674709611709538584051241681107246924330108613830784062823702011631510262222562543477350965060864182389949634026289850211887475367694479788105860658311714025033514216550407557728511020711605150004125436844660585535829771251638276513772825165811424327848405461751575007606475945144779578671761092181767694269175216299295259965764347718815893045730750484546376063913293683203507157602072045051115230329272065444592660234585163459024902999530738891076384771292230265351036538311336835961735949818592684419633507220366936626347053048010783794182174816700897171324423585658585288874494250574726182319918249868202762704545040183476552190448921292841038243822368919505352314411886555337208308641957253767694565953555776494226712324078183636519810362698103203159019112899875487788119499278731140036464608073765878349344973142216172024283046369899626243928664000942168895545976485124375038763104687592083791132179495112963218567089845320671674190563045442492363448605562089142369266005010766599607095345871047652668542072355260800968913001253804320359801391477845248987321559610282327362999226199190178365894390327442285608219512298137723274212500862797686494191704788979764294682323324412360666913775208304108037938774176969657525358870737776726440373241354029605487037305848496842275107640552504367709899366017031360866177826086685166381678525246925651788573225416991010987012476606108414223443601119458462230421561016967513942762552607640410360589815824125949836563967820213650628179359448251203509013967634547549491405085860334686531656301554452041201172067815957452641177423847322029943145237923670706744528347011163721555392108319061559356317957301598795482508293659532210684585599345810624548928577998292647766692068484281970776198284855919928532871794932485997429355118145229570340663545580661346551020969805083506197252476406511237365613098787831328205790418003805498445297979632678007340047324191468249129822840292773211522067166796375832212780092337082802260172990727980903954487033149952419940224772866310925005386483608418011381155852291079392876861297533171228790844210796198439038679282910622768581168666395417955828906003408137278032887734387658244238463439186016548575380564970319135123176662303790721993732932876321818122274345194295438685466096048034938377337877272264878736970928927940809126456517847704719045088828589472770160392042884114617763202500461863669454663137286538367243081812782553340863122430582547034548132720494601900568626390220933900701364801101004971175754928434426328562385357620337780443013331112785978533222344366135760242306328973285522167289432977131126145287296704686306484523828017932568311459478003699169794728042068966991222813000620742866582658560203509622831311456858703152515451055679544105313219132324749042333248252080762959198583416912589833581954658029724205905195201071494135524286102129137120002449518784682616809173658927814690965764238330101875227487142767721572494534157613797691843000652149471141710603241729487158303327458941216694198437616443571437270028547410523655772232977951030014189260597004055316452386611901765912065915726750743136141229602628195518011566653139569886318396648713786550537817552475536111193606493878712459338266272548019209360901886254954950721670709975496146336627670751268765002353216481690894146722008048253558063461919815886646897886584978363311523949694567237122615123866029341608466436856494481572984712011348681070631680041963848882646189066962791327500704863730613955097641553230467556707842962722812511032032404006759577562245917587091481332903025442077639581800956914714345944172361224566732831603512435222571288544832890046743967169132097003958877602566809926993019544244324943749757806570647480375364025556291331818448950414067615503546637018014250744381602154144451595602507841973744870787085245299727856680882332007176860182171618238123558139765128924615162090540598169745941049557505002944378975504376300391669770706041346838767088332764552113486654367498844899477346964158941501205921481586420004034776762721228835187420626093359535605493474669864348250493345084358302161975368088341012275699704570405541613743865036287198641681215926848751167485891331951704652820556960206938057505422287549538841571458655173068082122459771100885157566099952898404433555012903715923297260992822839097166924844656840199728483465134863479738203742831619736687739724410029279107803770582658269436184988741916435534953323933712730428809847668353361117697991474619533566283134016282366234808317647893503141760467902142944493198179084978078310616227439275432049350280299497637806081937534618962223958450269514895546916032691248640301503847793323678449785006848618175314050565535999953355208912269319330918127131164388045270035069211416373513088464218584064976874679130842839624136900549082104426124423788900396101958843993619320102359016112981549709101673680345031580508298572802635592288530291764029234147433331832246196251352385920963730722433716427557974491281916419742130509609239369320333320781972196962038489742062829492105522211269035951003050044216795187257897073401410564458946224294555990877002869650949243120945394843468970576983401391065141222603279391606999550773892226813967360738839054652332976430318694556633435791610095939577311367299526769064349599370455867623615440049268126215239831725294469460228379165767084194507412804718847765970122721126317902264230136015237849036208852647960279879705784594446806395185723028691644352105035827922265435360632597931357940979851723290319623822755186715616819795206349120029704660371514508453318744753876566698883454253231754612162272943634550678551639791657162787543640304325770275132583165040932945480489262677664870203670451919881409528396993801667978192546799453682285328953948768748930616338410895974502639697640735162100010778817020825581099879004823328112527371903306169980627825123200572883716565564104270177465164119895064885465167437849777992207453643936235476132709487594644644119175363661879430824846514690362726216788464685751883929866732338369443814173832595468701483686972346618762450303733487197568668598033469891447331174283002374160553437315633913734221669922568709375603890178794060604073765835628306103405169559009736906945649169752008360369254359168076564941815828179611876592697617731266603911349092007409169374159643373604640282313881017794644425139475913772488091714820658924426140876836827996863224001961393331434216925924230966436482687943709033145186828103427015494268088821727237421585193812256473961087517977808635349314259636661695430621258562391639710752330472181288014498744260718025368290732605455680882877371062201075084179257439051966648978122174211155685831752820456171734187167842969362036176616656918110043920854722678460577182008072206829784063260053848299919145892071885401994128284515605811957848994512270482760826018152395373275363907225517940376978589524308630769771402927891739686117022147661578961551027569962234650829400862814964491409007551288182798640468501034313254652166204495063010714172263122725979122873167309302794383242176668744359340557858789262585189337772554478097342896894734304407290842714071399719049303181663284557825058187345231435712362026207398017529083581435339319964368728661828663446310242991953889976271203563279796566575574038489422700792379216613432321511076258046747727684919954023431252421569992700683750182473842078176490916336652218098304732067297072016198406867865347432301801865760013635818381169999747191764764420874004207376100629832125814997553945273581188565537918818091153775072022407297125734277602538479168921452091371494398992446162069325674275679647843178492265300763221049395370970623976777509215429870380927151857136618999770776127848582805938595621707446263230061572156271116754049216344580689705863828679537430927989772443265452066563582264012089065815780187209754614295225139388209506583614070726974925454317141698979862545611353722936706960596478206481325319762675358099037816428308127105067900598126499856586623181992533995183941371421261203253651205151845121462067922637697381771454492846535751924478538274961010373734216388605282124530054532257516384827462994372375421363715605341456188070579668664788642756784564066791986803950397090243394816588848191901726427543633194249330709887525024074026575508308674449216144843817646482646833687051178416800093711129376046726965260010882081476570397951667530121539782951805962883709002402740744817591930006918065655035512384849705743038274474845512574762441536437025035617414309302253630237911198187034802255376836700292866145667771168974707265452092369347338009069845656711405096124199245400372200447870960851509112827920489340150520199480077602637987492876106889407253624545251011561996682276906038469725906278537107099601543200143215130839154771521389389550339805171084837383676009571705489702021600539510627952975767396195876072187771754313570484358071475700564170897871491060317380817247914651660309495677959115715227767129529656402668937446093190387587826092272119205951581648291985358416742457801320800448214172803831537556270282152523570924653010058350437877514636559751959389572347785576579350190940038323595491760245272556088292620045373790627146279958002051756993876018128642848760795593351161784943976886437204711709332462102100447330954240769927021621829332090401131395608525217025520410616349082720239829454955218912075887546375163585938168921318139371844551736396268065072945723715772584372281420466396874928307695331555169588950407497895123656101116144931299514591746195232602720124900831366274900508805373848572514288799199868910886557142647246741217273358288490830275167328046381295827421134601923689329633009576219799753525491536517623244989485140539118018417308441324657511577410574300513039954496457478194596271616917927248868466984067406025553836153404078616152075645807446664922489324820491426134177053796509590126145026195955732745060789253385002293200545441194926588684527466723859400624181278736965874116265456860175285140271306637643827308741668843510199248393376970386854991513996928719705476816347079939778345301616285581764484707117173427158665923078990202889239485726389709566660517149371847132424155064022017753889377810073176828877947009126372316192376216457729776050353314842511577568391974590405289158469918550103059223887766610846960545876485295745320237110215587418523495388665751112730475892568281428148433073463706016131713258397382813362011698073931374736511138867092197422029835335850914772251255919805479862982156036810005113816105326795572789125605757294555541508392374309334993794984479292329103171283466678819896166429353888613507095613957848525754412701637815695658160789882185963817011902550509480779220226919735319594007514429373057079341169011418043944992449407419459547708146787737267426852266990818390312523812444746047912981749752322293711631173650509112515821197962862320907265583724378220809856201975579632620711016408032808567723573711956524901477193655214796682083036538892864185115999979661015982354890791055872625281505024126262858615884852689777506451173324610592957842917324028258762058525304928515846758562993383229028109286776338401595900237703986826805035850825301597295123691631856421243086495539164930114508840737156326705244899451862412917135739572161288765497713889022784627277965310080758646537342532986594120485524739318567849681184384884154454660638733351982088426708993391432412198018988141222991245692457748757724747757218707519943401133295261707207437928549843140573506377269257195111802381311535962747800185652309257218222607364070400724851698851363873102595289556651515227673570677618633791359937174268968139046193660222455557473765334519734093568497916841381493984818736250158327358092880363048927689123959880339880877666639497039751665181526490511730101829022642551460303617815199686090685791454743507598603655328673429745520858117511012243343481198653865419967697064074197862500945099424035375423985084341360146788684820817351231185617232376450192613742431982383791936641863299493400091655746454856033320250856609314661998696179101450874210415656649117038421732332576561944664732704330055500824206584482168975714340207807564904596172811365834370691437006070629112679754373669465923622043450327446386921341120786205124018353174933355016397364888574661738822682004840219362548637418312577711073988395020893930459663538184867737912620661672231410562825090534576435403650069542858948486932780834008426230158471758562453521713497265119262140505298173557839627401700809516382050938606457745609705758306036172623278892873502951207399161810836071055378722785534304828740905770019046434081382338125533758962448267653461175874214610374483028340826003875872368517439634894496840925865281227183554278883868608935713412362500734380145821821125477412691428797541997976336859255864148973298673884242772059094708860446580667228789141666762391337501360386150557405708836826821259794875525158018069866140013741842559712213645188923580235146116484322934083962632988831636331481067312403341915136375048209915494814297975930596067202707326176798837855976463408053118480633718946911246622032423409756831640010651031588579595100895764094157388341961817584609048064295230198846151953186756242503319685931731188935413328152387735508157402451448548819168523586878691708432272030835479344251907178995346245014204211997533333213651260116939607644008509406308810117671081775281450529341326185490841967797119892651533948101780940931709153480255732670704875272697889681553489149359777881807466101775708109240054476845969665324878392300435539743170521953306895845800179523190140258797810958891174075057871567281532400627140530243163718028675910879157187048104047401572918526662296218286128677916956031304886263898334660850923935092742770102060121690661436456694106793926211905839326245010180037746709416730977211530997562053937833252576339572368420477706021529064840587352302217986426978027309389083841368022941921163311151182395214759202746871076378972737215537558267856509727580468568729309959751605528801342158642198299141888846496663427181307286287169175774939842784471847991693124982795405927469277765465593703946525679632594181617233018827310311034885542587059388242877807877918836364308039021444788619163569865684110328524630520587319870572836102431513327715674696274000018879552294968636424625609455077370466073513632685037015747660577655990736130049022912040608885507760723762096817920831661769189322102934613505837932894615893316830592841851477593028970121192468545557261119876528205131329208086820089701292924847798605647084467938697096540688945416664397071063087342828860042493654655111694670248129658923911581849782677457200120388580032749103898081450475841098020006967187423741064997448708191065012919967479754249922069706346099049817870530443323538914978825523775347997423377827825778671552202623734039646624816615875260996130712734393723222131293224631243397747587772287266846409337402195185857920513123406742854448005314898735603503820456855056172474934650191343037079256593395647727803407269630072719581015756963627115517731170517237830991785712197601257147955358884561999743441109890677339796639468208800745906105357559834951087640143884189931381804511111468311266857317920477602133477282207926216749788525124946271414790415364597330614996923111112302376710202455715902947502097426094950178677807527512246463570418144901307863850577695150286251156798704056273499740144568455322988582381467337415500001920109724326084266604646721170557768930121284862618697534282606208966847958126517424105954968408336673725331525227679146647986745190335597803007347862692681399914069415478322330726029964943170274114732951838744014656029621280340106177307793242738627286700348806852027397279389229256873202667773769781001902120545638012510163932077510940273938368550399406062953142513540989111119653242505197180319743772722554901905592462828371466349200485981845994649983699497429786743913956231249530913798465067691516378183167027961065681849216358502873573884474323769654966168308323540042868510970698179054660539009187044779665437660971895220762753660449643840969040097882506167073760716981976386064817505361002547318847278487233188332934130815427283501125035534846716008923198239905299165696053726842330374395867119620718978145921000660595705802348286599501607095628409231126946415617021434747619312805415632538887415208815858334664554461592305435940421872404949822419950295236327433425174164940573143606299871751007706559162971500599320585192184358497637163939890541437591901510976839783355471708708200958388647261127937576309505844915249985203248926761490793891345457584937734438400901201602300415058602213843545134436077220231066762830945394516240346914666952884672894401312217825717969980535962496803506228836768098195319874640799692900018106688266614332029478992305118880258435484232886914077529970064557229416066973292874326623665188600684686704061463627591177943151256621324260672516348410068418974504152813167791100586785977741801664113950576004715735547505801616841848299228616352422320138386918841727042069966913182309080813787504382856872762651485814840932139781106265505995350604698257122175676291972460657507427539426085269275780323102924945183958129296006824284938840473187773274152668641361213400008589291234081387789360213641294015571501869030976856591191113793884105204961441500374816960354120233114655236583060388966242220099618460726113174848073447267740405451792298674432317966319207845870115292296599419397011124678334733103256132149857176682699437955127263209516809480507311710310925677047973502013022471313381088747209238896266173771445839022074500964581196233310816443597194818398673282888582583992630049417686476955682396631981959075888388592261881120743311179208269235055562738877991372475538634932177697886301089873493889949213901303570225615570935390521632527054143775773416389770583165600969859199232835284236822761012378667359987821369508370516882457620615358386324911953080598578368027541800455429692750805497284680829939230502236802952043304392832625805357087639263701211404628217580076684237151512480900175297901539483421218351271281595871163319604004459457608253522025944462820984538254646321203407877078423693510665836046695909110955616821780537536712915608727708941550104318087375413604237758265199284075109172995909661495448902027331862459460488231386720973770377761938854348937373890475696559063570302197434448357893289175222184060591384096809800524245465199924802394594757330917660433308292807818537955113003210377139023069715761195657744577055853855622674269389770810409040779636590464156902637954103209567750155736949410848838486162300288621444002320706610550691461558773304544191739757600037615795813161444942188493274079366131903193778837464241148584517599190333979648755455364987707879097545709315225066798294917614873941300169271067008125605666518374833938523393461241118655171883448195994443113375837708738071649286595094004694708402253070732593040505130446296647712154870953463836965469672650724103994113695462287088091614215970797204431602935516406607706685783016433957106977641636246772088160633448257881854669271311690984586601763002798056715861605149630450848688472850815529946136753915065464818390392377041517449957563567623280373196482387227584872518349842152791873856780484613180931458906335928032947373786086201178590077237252900333816116195093506831593646292033746991966725512625230440768515163230064799514926839195251365328662420271559825364558537659688149314761579838877751126257514692694288771438148391076981475689915759915944491655280517099058855540381235759591971731373126788137681922588619221212671561080430512049972718129519588005506177106867949863547460848459861114389762013314794514144321023527269134418502348357076808790605854487937376447716297898723996047373030976656351659379204374482363858236910874751902868809690634406662026784829510045864312631998253690495545580967088811752255897300197175727760776615099448826049520035412111921687000782826540382570219580393842439930284789739653822317390771982169858276258938043316606356596052976805748902485534301370964312418206289885739853139415711615770622016000613436653032492255968681637622614573833406566072768506151587452098174039012821667100222790051252221312115362545567378028287890149275453840830307167752496250483816256119027144592899442980406070614650237533738711892448907823183968702396105272782202627021035246367873124223080950699019379995511920504200385868777412161663302796173125041590663787779635627602882385665879480760762095569917596928439841480390710338647698641481749843560730878424606976516346375362317468786248710600918000917848603731414448217299641162093548607743143867857465276619001920262619355322104222130825272204400379793942656746505369015577628082770199100192003477817737101334130381089497950099927218707937304415373065163985778196204866944987432385283547227118048312315715254344023556211119500194733201154406608974239783153593255354309844192218223303514521335035025927125675675890393109783374989111191138076226459632325519986582311622394936476055001907740311152289108526269573591925683937954812790385096525952665213451369514953762620497563636588343325474726964082394148026499662709261202024553903527914404823027052894524371926070597535590264818284817228728194048148983912481561797707308527864985578001936111940611742043448122594303179314894580104604406937087013436038370378238910417196456063792304009399870804701250801908956880053406991087204620682413068698328440431742021404524119917416677456968760850178208160468443830970149737910556221735267242528225554223727925528261246860966644455886001899020943534710874381484751490248112989186532774116099888187396288413984369409472395150666261122336063124181993352275511899778280409096834790119827243450966960307102048720558884832275549904293448791855562382710971501996185909719458723009979052885107892439268680772996821794427636809564793279633972759453589270371039812232937462775282402958708759071580879797374087636696146917538876134819842248388187277281633256230421962321878135420913540712608491992325275078236587006339150305596967504206637699147208050543292848392930565964387168077555487196572159137227400325523488375166727488378524741358132071657835869364309269169486801666000253790087950980614862442260984445548085572382715758232080829084523897563748212729593617703144330408269810707119649374418633588450246955476938845218458787021384112351711531462188742332431114328111260080210783840051838083247588158084856145921050350432528783637552082626562280775965441178910761302444820089939517604347979206715579937320572004559824398120996091100841432047191683459452685948047205519527407826330110132952040869823488571164903397644900004244335131492690335926942317416876255936722332892437055836859340306406947513820193664233092446417494081616876076116691952668305425595076234239566082105674573054603261667992387047360937030026721298968585506820092436437774390267043349656579301915557570426563839337258666537125755049130101709339926534041242339446889960939361091496502286527305721050275293498317687473627872420274772188401573694681934731285473405265278843254396923551308321744329909353731225236550628629254204825087724175688979258782431518633139668609035254348866927211122866701939833825062086136132840432015056313522878071988145339317565354683650599176135331549746123641292809506071886861163739979381273321917567873928976768607095344654314555156346356939433441752703950380003820048361235830506128620994949878637780424199510396521370276162552886424431808733011063790658523051804888873173261113277377491039941102109961078972840663445993859395985692709527416813023843937115671349941047281177447118806999532831449559233101334096990543285750638077500895000385183287445595787054256769441775281214424167843977965898973458236794948355726741588114527131433830574184817732340842512232139923318126094747937325024581201644845556992213599188591565831072100574940983813132403252840356243834837098081140724831614917761382552589510312699297739256604019827767837001958010547801955492635671685889106025440663352317969761408025336225374124450057686732123679179370106085757711293664380729932238986634146042348892714139606480296330265757267266205832927557520925480101390472464988394897856716921531502885556146417840479902508301217619293804713363741985905916571254699256872656893287104801454639259526945512518510655412203732605092788622824532042096881409225324285175171181189731580106712985851803183615390977809284454885609476708407135709382827404230446933779997416403915815147967277964108108115902881015661009850956827721521941830251856270097974242803843973540603083147382034682916191537451149429072815122376983294883177168433433615249982209747630135520249567555153087485903125551304854138280754270728624083818074693502795051967123444576656641853696611963023796276717401017828688947355457990959872003747169915882116280833349999687929902403594313757004868212700911864559653122571048321911896580929342106696176254651973261926015390353621679613142445145772929823864003193790981827591819197589627590003001130431468841143055853276700857465037583919887043205819511722752247371324112888955008157370539212596708359490472954846362292488694042182348056308800385972600552824996504430332131634120411653638214875165048150910915861657173122218480678323797103282947526716003470610374895694101790708540351381562574730193489364669370968410367501733497674996033881582448060219495975189417531496650228491270006044736432134081799652427827559248714562452929691484945944058478568670289825781012324628769849541948745765819475664154294840612786642627828191687513716214207826295657752044859735469344988177039169485860491748495548208528589005518671336381605095434295804342900278418760822256941309099715243881249971115760336944744280768003670675462446937776770757089444263563631344125351159300313165513387839373149717795151049089214422396238420974499231399377335546454497783712630046823258419017194800262656155426753894550996603705828018038052368830996811852582954965688994743210218364911265577219731837190373277964755806192879482158089341599481101792020602653694365678677693953487413053778912171901107737601997746626009954566539687012640060597500333841472604237742681974968863618401024821233003227503101810059018179873749050437660240416251981120799140526746765309433138290825393759512957191444914048255932043770826239090498998557468390836397343956353060133219566986702434781734776132095812524375847895593150765830883445759326754286164822733363062331773551104029961594745616462631098469200758415457431729777231077377201146648070392549638708583090626353521175621275146213450988224656505758297077711082439983455748186662830698838884848416121541277204118081166856864450635806945934722483818582546952227143232252182733683837316027540748542836886739401555550686762268843601659794899517259323801607122231607546027622291344126148314227801970889638728064031737968573071959428822832820693398958969507711625815327821894306518798812606082570832715081975279377190419327681127441376503253792243669708446097336614154812655192191052378720085066399721488458986340275060057376416508718378697668924882358824312306092732321645129888513752575287421736352989961645682535819033854813016640919472474039856160466665483517939859384078446423177920669136335213517778907573554012079976751668945444094874382879016967091115864471867689820231715477296937204821761607474962522790989400749271583079575545541466936951510611088397675948976721871238285621958970747202718243442059152933429561800510518918113795290357423942971757995399228203284918527482016570282091630438121285666558681703967911898821578807139313094478317407049757818111214388691083423273953716432976683507082205569955035502604322298830866644738163309272195856596791181313749052743300551301222992244194006548645157308876192010209049083042453514673265566466266776902545370193715385292812394456740301013957854079081998527643767642404366167108693053967132427431478083748896675469510769300708991617157504418215222120838847786096403278614904236819601592341804627478652976165614184721493129010816864405028704727890715499533502945916824088507749803084836468785679377954878056728646199518262993608667939186903468946945829183751176473546820284850060733741552260892773102532260969041681266648223796054588583370712415182223972150531263728673364689531249386345177533122686186055067418251578339981656190533144111741454332036330499958411566633877130502113398975285407676279569702560459348030075048679230094102646347450944536837045367070430160265103991723613487871838060081155926157253762386607613642676565559467020857752011963746834250833484094848227658573216131020307420132496308226011107754102992472327478695573054617107832830234696765412201501543234471564694656224393388863624240061545102035538614498569842178707498575280905581009723463589761819774872637010372205348697244095234237048036174608788386047460376401320025225397757029238647898954213368555979334096991287050360493516447340431061064389388770851162592969307204988537761720121179195094301977275283693525862271893820000436333298629577163742063603489569340692812378113587344048165974813981958384181401267047059285742716253940170674313516567443329919045070972304131545876141350027382494490578501521723199979348623362306453617044065653572613607405135801497813242981701808428354095594222239216251982338687193848092149726595663311597714268457241733571561220874296785604072783521449298413572492364300905534349251524339113944563732423087155644657880270891797201612428973659319930662298857519418663423788502933741611756909567559976117405672205744414173112083725310775758205988497646795425869363405460861512144764080025388855317005647264328325007193802494954199354417069342507028878139645130118569552166670936381197480399999062621316654918832847694395178034211109155517816424063185806370891232276853283400067473791747701362322734455926937854783357944993644881997016322522495304660317921046474655048835670653582711615498731051343902722308454860888353325767410560688768715217869468204267131187028828272228384050681037660456167183908703336048718119465279522488854888396097884883255624472915626466009231642728412696094784664419128458489129619476101602746788894998017014859550348806982297379459496086886579120143449611588732141120725331520929406639222515632713422412101733907834146283655417901250581454409770703855091633245089400593801492906212008254365746301969013675757540721954648296492720763003519804488615824521785699648161354940615616572497970527852176008018873006316122113669437446798087613184279982773487719786473672805330424148942342722473428592189290217994891480370876701120421209460221601383848196091338820517691648908957494973277731062743528755480918757804764218422107977078179501452615327996669725663506536624444283331382372721632443199508943823085576378306492303270993623494501124811092585319960624474188477150777675207598514651239263159937404574222291915714240843563308716814521030627107028159532369290061138591829268577218928755501229516919641661064835575532106112733970369787833641009101887725481288005843466417536299866826587176718580820894849070069447273141866122006292352952003199584586505695055036986975371043415334740410717547776736961335652902844367749581655282980458205277994164414403327295809727269397036055717660407165692490846287043426878377620877656306389233586167547910800919314655636874495847029852835629069031390085996691271911397531248930275609852264362859138063709321060659094098118207105424249913401511169163472462275993216909172526431142154201916567453414927522047422022777202768370107833059096233796959132646957905917297102983867494527149305463414892625150521467944744731280262831459146047315613910120914923740528976840785685249938466484877193690404600772430778659200389183767480959519889250564140248315202759355788402662598671486148996870774641289749371548077695376627980534488459432691600155259346917174859189883803961734556620727686813078196385984505683748486575579495333811644443601109442915959160549629496833637899391130406475057452158242726428498791345003513064962461572767609039826106455789865728871193199181704659721943889452795242877378602220702928217533217091591837948577397135396522398588906993611641848030652329475478431019470557910470638804220084696212109479753021100097393279201869436029326541157367519946516108097472532407307007282307797019761698319167589657927821449216662613945029012737103155612322012385732705179698955833718492981516669003366233676626455359686344942181492116879689794609227688914575680081946161616644325883488149975716086867019548728102679979123646224425058492554412518692031906078950475087091794353378117867379148714446339887194872947591623140338425822804453569146955222226195306626939431068862013716914065849220531357802347487704504556304350944044510502578894525479533556031133167754783960113734027340326977861517907831428600568779546992270513866295620110783146296959758959653080838446927007486298187897602734756534307485166441685325294355491877851220473355780597058964283149222693631427555842632444605655387871432658985445667790957558809218538825804119459901804780273305948753464856755389732677357735049104978542570287945398796993648047714361710750085074259267227275756064398857176266826012157576538383798300707997178853227009067357287878960967548923833894122047834630452369935135074064426622254374945452379876160258916717511048829317467658853964003468868731355508384463970087901663248122939618656465979593548541506307474844525170478300345859808278477529811175267287980379554654463519017891051990072667025109554187793673953640466354010358993456808262771376930988619806170881669330611801073984140730992771252627628708526088093232846847681971572538181620033329185899595351749230200930363003056383137256207941644124416055835276082538380949544810800580623767559030391191194156050075545895242872181708711250942230092544243778453666165040002523002655813774588766331854163117225753492817617427972147023844325942731522992472184380464098130522511690715685354301570112002104642298103000345365223603722299682761030760539849813867306331955126099593447570165915417349228443167281797508509374590560798472401416167598009976345678173040573302313547201863161515195151946433507857560999493216249872468577720349128424367024835392015387342516860494627994459214663868479284457676494131837085720339839470334174984242211841972458330298209097782483884778704375719813525756522036502903242465554211383976615031448217457909449528126740188457956894619829988197284225850571623700891198255849647032133217207549441709131799195137169674597386970547297502997797358725054513872124536154956927706663251659652644653715649622171100845537671307116658143452866356662630932740857967872249277071750576418998028352516722337714036262138108067050668730201505792457636919695722235369484221448809787006962267300066726461145190966901509656433397915431777260827611965868805624122090508575416635399388117169146833450587419758055294368858531757923285697623418259355242612237644606665476052387611457294592160105500685299831473851372023010330108392855173072951414149142860526858151325346422599319016986152415637445417553496584503151541569259421305228682655422710787189210428322437194856826216660361437223247879507609498745068499492336476294463090079626520848707817781927043689469467882563161296782626017204629871731952814695795967952004762845611429108759472720152125219405487063703566513987804727720049129878285160752236620326938322023699245287882331416677857745812848285461692829600240618324096995046751542261744813393446174172477617035484944301383837677399999007734637898007750214174879217020347352737242736082344643408309286250157254719487834941394305287904747026253133138182282650786191932755226310998044785148583515660016421142111401299790043785778503305845075519582930360310536396985488527350608621326349623050357105163323356800002890080463071852909435403459477614593125056379916631901997314050729200393805381758019824862746430378990657000243676997771739617145708980108012303316056350151536812518445770747341992907242738881030129262038943864807824520461055611460460158609560665725718326133079385633406750300463952651482619039313586812974547636607465542660572142160932171517440543763691557957947977751747288027970998414397061380270766562588174264006854350553601644993430447948735400935634596114101555306321310154263140719687314307563794162457525060063445600108609640772066183483351491065821810764427925833006247963039864951804915217363451099211003485124582368858798631101028914405425395707419610200312259229726668614215112715334690892620919561137205639420923446382616197831935728796943555468092431712085367530259645822949279179659122966006024747908379079846412082627162357011812438187889770092087376735203723844433628612684263672406551506188340811573724921119447288477681608805168273229027788613584353108140773314403688126380098358423983171518641734175198099701926236670135541768341582414999428107331333265455703276336893510522009627682554992092044918397277325519251232923700235116477134071504368301598913323376705500714794970652901009658678711563518749435785432664724833763383119808837936581194441104848995358933387873686122126934633983558982966013881326175304399227686873307154035318810289630526841811620597326214785943867115220803008233847910970912545656437822339031442982287409376602401830314992307833570990993065182384168323277551414751889524154467504536648868019129056050466149858417747347935041981221562807252468700969221144065616755420926685362046095771274382072267213305756722483730149677346672521783377291462763863416852383021882458314909959436933777260988759031171438712933433787651619838231648777749355776711228958366033744795452092380650034662707217873720240865560916962779048930766599204198467640736388442825839511329345709396657846497180134296522275699124402268054251819586279056228641612013294601700589740392295810765393720366350533985660150502164665736230937960384454682622787099111901715888018706264991553132852942282298217859471703989121995444162355772237903724456119984082548817290826794768351355557087432640496083856150152333893696701087341801290914206392272164740699832266561612997895554691331923456790723187412970446581214943537170932589560595709412553011443076974165660716363848732204301975098573830377676468738139645434796919336127103436021111386762704847837515084408489807550621757177002297705122312082085935549391497598172218866217198367017530711581036956149589907487263696312876623970754141774938862028839700609184914520902748040438470720169324339290432707401259833334359476619601092216415196675912109899987527712959383361994733229189761145010688734122833399655185656492016742789412607377527145417132551909525459850397749583105510707706949935147629863591160510582393075979225503503156443520093695550848512285082491096249145836546575889690119731218598555947799053593966489845287587122076326959337513052647183398179708789892930846210934030404428086479471691341826400500854203413306598282765119203530847591595347322683054981947065688274153605952320498606609984575707979294455082090110852595493389793770388765536387446176388991275656961974957880112263200287935209892843656337835910474744127910211341600302920396362455126420410724434045963752106753956751084659611171776788614457318698633856081683127438406077398157847794849149461742730457506942723934453345069608674958616513862784364254173793252775118946969239267428382460374597274056723614157701121129098826845896275153384145099702377902332007935158541291105278300374674600747807583063981434318036121917597073293340983521331785861239223748425330525643422525842301442402106906762251347331870824664897824966692825895747037888726941295553081890875922788381138070594808048281371162079065938406330209576619015316368502841961817267590942173582043695622789534127057840013347698777545605712064534855232822272492467991646187773639282620757366181595352732881775339640708384055629916538325869066439757560821477950961365108201692472712335849662234811648531713230111341457929281828672880873070009708035203126914214351225506535447989215030586881285392391158215997154336857142045877102622664632957029270245482699082636236041173854440951096257395520509129046303450605392769671528232670821664039071293514590081601164362120111862508085175662977954477156413484647262421981918886074927794303812089206256500112863319235579059735774861038369110837929466468518979375305525220681692117031503311445115907051032066354773775003726775920938353418309052679988943698085018975799026032476515986586938064339107452228941394244174930704499807096145781808133243658595494323954906920802956008850452478069789273421966647213287305039498217582491100734526784736555224171479553499326728702546095861101105716180234753347831096831315735124918700425564802057229565225156362812561794227126227070416018513554794160547979290402975976595385241067749968238766203994328018880888028506575633209690658329243126100281943425691922947401456241650509725038467935297768740247281720137746373738017320771547467861294908206336400950133541004749576539491127197300243390473288870838258183656238877705997315031248803485271479907800557009441167873124428816097484992512681002877600490638691720510853002832664056713414861049359191946534702734647444684500164343033842439404776287067606685705143484509280653489068221234528920753992515032790581340875622144330322760142488028073774833845806025599729877591580073508528908760694403146999618500350382495526140396272379586392401984747474373990326713609038305542401321021423384879126728811922022144381746686374433905097754970053308125761826884118386039910521670782031869574533284047707747282515238427533411744139701505675738731935810613024912338449445321949959549997583778457652690528391819757578873979141683406176535236299487314312494257850673323821586043368479184459026078517180658264032809564389315544939424941213817020918780084845059681428451171093905647400567167922977962504803613606472776584393575773162894010740200964815720494383744861230020353337133798877337172202384457515990642256370301382150860121951880551716753412209795903619414787848565941975989810068319483895081210585851556911876032132244424393476070705722151195798507744078149994721242439398877501553251119525551501486635639383555149189328950845800983224647087878964357124253346863510090104571716224237077624321072723567447833911361884022844089384044019426474926019932536876311182644943791929838733466911219315918270655352522154656638638112023249723198187022578453681499547741074622769661798996738569085270980707449888087869177059555978286477953391852108026222805464951579201186375579893375541953559986535653700213838409406135938177243218589146947262960532911880707135178447368516959083808364178751733415004664256510359625665237958404202914286902540566319170078696277604595472061620325860125955561439607112937078831072655688281964376710090040515574338665159426098713674189819472891191008246825469451257695732739612600051044611654500915572480053617048140347025487523399103681226954888888507188118205330756190433679324398062811784610673073715073080400264470499866162819775742079896845278467689859089061694453330512699916547164603410968671597060230776839948788248678018760338267267571871980174287909073898095573798659908577799258275151854757785211689412751615462150775041064672879037796306249821782735815867171677400806865977370642735872730225316230444308849961076720589639111923346511582230498301150386687754103661233803308523788583149443241082953789086224204614585623008750776544210977339161280048838884532960945534310682539147682601647956185388298863638481303877591556541017827600630306980762435510647568318635958938474724948548957096453421701873140437309876395530134860048729201201251603287504065663894476541617500038521470364649476452422916579576834913714187660705922964910666331768981257813751995790909168148333510069663181099759937062163619453905319847657668264460301179207293003195995228876733301188930973813703487605800587734655495198793116540893885590277964737152886275642025639606289269805357639899936393126088543959905471684986914335973427077527358963935205695236744940738813751809966678586562322611445867330532060192265645514586676964457354516394632264668851543643875088908146593379720977477877610573887687709631062130533741800307487059175973664138693642045866015433392607566691873633481795301251031742520862260453868300405828956492154353339521864365648569970145385769617421470498390406001425090931457542174684731205015564073030947003938876628929025983525727656255554735179021922372212289685853810267264418663250036850121103371191447012137524215122016667598345036273598384836188260152691159553276486881380965460527346067176567513422232070133914005128714307845365283533972758211550532982684344981545425590219883895032145335063940716136833430404886692687746425848321912933584108934506128216307993501423322542141234920368495880203189638335834453050501497653502100457710596492795007875319773073960917692776834386409774592420207192447167978081685511758083410735610166705680196523604835066555628586660820021706451878272888093601499588942698610651919365186470537555557413584925089437368988865121556947705636721487614228062799529773393874725756661413279755815970799283848688702668961469630632879355481846687052896757867261710572067490084790762280605263766620419950756843654514463293018273428049994415002907893726150267534711043248191056415576350568040503508357308183365176541383829852518498349848909564943782966652246854376561173810272150904426203635828754889834074395838263073619361950193871421408255509939738078640814619144290185461307337585439451701248272088938857749245647256426151742068722616801556992812767863335943690237656529742915726711409876172070529178672926405914724628364942711973882384643857340551224235519978263458536068983425474837209915059409893832175834846830304126717055606214312039425888867831392584365455654757965221469352967282047351104910241900351652520367560292988380807201438960043202692071504605589765983506164751073146991655537570641534310436500862454887893395048059180803184485404246449198436510990401325359912975028251539793826723422084671212702152232012860209889955584950861414517753098634402225896173753315522465975704270595777012208735057656228219400451676787893775301194056403022276390639501845137831929880196187596770673089551435675347705492642649892188780566461362656045498030400557930387558664648609776577457249095940142659012635078236459562588527237470705715862202453786680283323543795977075206938971332943892002539144545100680378419875939456774342119840980222368082148233682259359085820767266320932198544739253106578397210463451712568106494630684217133119007215268382129118365453779005165944383517263310865151096931698753673226681847853577433427261938527949005300301207147990175363116724752306685483015029486558248175932225722519473961075899633940537967571556245645932048973408121526757483036676222971165549193631936756331957328918665904576538594599261859975359781208510208408962500948201502155576584045099469320383678535919696087720443458895456183633514567961092166719476761904196869475753520301890184026770403130856005523909679993481225537673546896533864742608524655913282673940455136416293863393154226177617304702156446721069240110916579569835085904453472044777688945937048135394773510333256386947505564372494989582876911700589896752311536141217769974536631700966543404814040249619642073663234766326325573926456271900195774845032824416508217047729447763703230532936852770671569941324014542493830610668450907779196659068784919051617595597399658769979867968889322651177911625688384616639843315848778572539918455039852320301839194155396755768054330395972155686341234050653004335711130133278577833005981039846240233456208016109442371773699857059946449574347194310300207486590882080329006134396314650564093412699564858130015053298563676140402534568374234845497949457593927810049124129854675246546771077124470202456690797537107297799631470565702817811154041574201130596987733307758102605807827385122529425332171955376611843958750248959915405837596253757525711922790420829244715979660506739618088822874123548036160007788864697985481390225993627710038058747802020606889106423597806550805246868959415738438881342669811949426705668675977855879948607957834740658931684533426009656945801679618213898443078113479786097230706085379201872215422326869098247318065147204368473040893089458197446705440945908150470469585748090481143480745558920963318288119149178995508934832955569948918241509199825737884825602121702596145776380416979428186008995749282938743331140471224950211708742333060503040209351066387462122860938761222191759933593363210976657114131102259769227023390922755080040072732574532824271195934634260103812699261162762493228315793425264518768992807465342736510285766172806950289186276309395213372890570155231129825567633629245462786916635172054178979893294162697501679056450994269218972382993264193007177640855566762755678075537782447276616304214570366524058902265330329126242165204824160570730927624335996947715681482495424904635749919456450387411825397415760967350769391381091953630939644911653965142887991504743619303802886708576499211622388859736170631287931978202732047493899466028370081737043199121991591753383799316338167539986189097828908300209707013904733373452899581701489445935118867824169242910921319466445571385154335648948474679521834447433108822800864517384070382936450273085021754866077463581558618600667982237311656946320162446946073728246731757036219249401105389105443390447585671503531515383938278876373705388076563013658275433583425270471269092969104925243770449371647731327483828449748714416771159307008606713858549692168429703478482246474942202237605136943938713806440427021270926469035071003203295099094696596640426743677351537635571268450075187258108502178985088893433653189416725276329426607311564352237809622368592885804244456974831248331945507482131525014609467185702176749357907810984490119473055574330799378857599812878285427062341012322303860780970527643448502055312155962008981245024252654512186458846742741898948724423309139785736849882813300952191988681812570448915326253952453483087951376068456578849615462310119073649354736702706815053461110142440628746222631664230138316400434154382865214522391370131619581747531649664391778948808382752691427278852048312138537085665958308336310460274695734171001215501002716607129607424365619523239284816905882582759114362579851319373686776120449868853658502961110179854422226545361163188969667325009868902443604147198401014818090756067101373458428024769028446637209800412543443808862251688452937875778325000749828879484482833121836950034045807389829093959635048615470224875318714834051433747147504101642758749408391361945603828022389559669247297875085917597911875890222226480486928764773697349545420950301541377614505942506777745532225233011619863470171696671460646820109298818965672652363937104069311715840278459729445139727703267321131313705744083253984912708215864784147691686001027265822216233737920119528616512112789086736105621130326945861966185156834862589504278677454591104834913254610894071872639443418953469861716285839463985638901965664234223190461165507083862189302749823556367919577568532932037463904578768009275858800870330162334538142414042812213450259340418062807806576321666036201352516669781946079681316514417021802334316175792413369041261485344408433458264254765434750064550670511747978343478498658668801931361063026411659966297943992923393609487862534273012915528378510815136332835213764944504730388319280643811194992088912974311670944030991189868143729797982504501715163178249992690630141359700469482425942729970023365536958814111921383795195962206034341006118758681091527425906039738025719801730715313932214450843482816591827909647600140197216746378495328324179460281504899944684394873152420027674872147528912662821961745362645598178067477194143023321364005849544801421466012494083536902847309377802571373247999136411349937699095355509620118201181941546222288802110420487696052656971786583643843668877435377250441087018703132816278553268235938194549358825738383209270617084973656777466486428212162828453693851225354391375340507763676304838899936120732236632239920840585322716793839870372629072428999877174835280151357120544903801898376417522475555543799170000297944852336563880911225599115760706416515103378633984454151939109323804987936709606106110304131051492607070790276416212860119612943686145140217369935838133633958398871395330189975632690419249120581902667701895435945992003571466794063248752697613966063978750793189579079124645078844703871547426440777388335785964489893316771008312257615724924018166790828730764940476509068928990217223971423937555813461657172661328021469444654253674097775411809044338217297504360445251537469908812827220259809503087016780344683381351073314872607699956984732421774989923687560170970538057913044551248658333286819312471992532901196289497475651277608519140826269301099006280930115044234169805713417684532957457050279245351355039102218695894116629075983102506702328365182125082215337606575408269240884633859578081838496785051768292525381872725687735309206588421516742672651614419802015634222411280350351776751678275600149853574887682179381119073672569751298642388106447691428747294366503574851330648487969385709893741738324186201629328502554171234629301431042831717979197924099530770959686096543810243341142804965794052246954739374722289532680111391275331970464125464120598891658257952304082302601543205174241240615320869957870395089988481700840924315833463157140833526177688012856316422239663307819379702183416015451501369627124889845364752755488566238671732420247277484646607358898160952907259025822378656848141449713613660850041443455209985668694823255804864351457356112655419589923040825515241167229961937782112262917143034116254299289868396526604117995243243524011462299775548628458960121493205770673732014114798774290260703295099065708945530025700939059049389201961554746291121354713001243475595401455209209456529710952644314794708673285098715930279812273109448427384620713236376675702109667330579591615955675098244541382783972529291058427789789964784852044526281383427771222383950625944318702390278246139430218966718994600372397101407336635636063832477950468894211247819914148884628850645420873376275113734573759205013001877084838693041042698678693673219178121526557023106218513045159704521210547700822075304587451469669194922581221588100794066919965604779527738389415018999071063976606052942534630290234852540718988392894367318215189406426875664461841902441002640694432190042829654556704971855881648499488177451011500623014057672062827307701361115170763477681989013585357838232798913452533126838910640370774169906932484835810646110846907942400430253259260424538625293935784791278196095175641591031629353633549484451302747952016842488933848527735295047694380460756589716195833937129404622592774973656492190077167868380539050970280218135192275422956096352016150127362152413623519241210402500767900219805288519348704616049817610184853432083969325345324382018118335495812170618350794230752494814403362659810589605983429943199632589657814312389685918340243603134295405585333521130664944921260815988266024163713996759861794506538267727632748289000140115750349267022571653112418436083960984802847321480555983784191089279213693790587170774895009340531372735545109624433009333235047624385732965696659590125956460534115430981840877971844093553559264594898749081810661723306461430281834190873576304941570434985313423834303550892916706075303329137487377964907655886390385336750019821752671440657260587575702093268050081922069330523788356391988741021588060774674082652206584724334653696485880984326014314476321988376312121205935402018940618895072598049586313297915181409018848573437686106121640143669663830294710407894796826743927297768526650600790400033682605326225448040015418624859344240429768691916373412005952155423969851115987886684128238141774380476066065705880579181230228701215985734083990638057958416125713283142343982458655211806598707736295198043392463283199274808900180461751096084643026735064523845493635221092008478952115504169034072009018764673752930415409966275434621030732709496806469726768020525727896069080920559709491117955893211895863394096384400537570859143640745502081282880622194206901596423464132341471843109302851053546827877699667956844710840534320990789037330612674513958664644792307908600585996904388899578838326667070084057896973542595370173463116430134771908335392195667268066240285111303373072229130983770321914051223521678645594788005677995549857551893719411205741210325034901292580742608609830922886695506101401393413590173590524364714827030017225448583830774000245461973099438370136361356235666526385998339686550238565385788411380378330801095499238342790539659110815685385320102339895553522665945889657296393894538351438497602988789185174802973250488892678921109001276605794994488958701129474965854461402003701228017016699431716705689214665495014507854723739045929487143171023452412567581289014663959458555697481138129297460480562672478083405027032929773259153849888411749283127190063780353405013556554370028398022097925980939724461631413356381537105026030317283888731425713794367565475371765718813169563235935413159215661517222401472785816461181074830170206609549883316974276094152451841565498721139726554660713612689386886630151895165348865874859715916086685078902206668975150434279473145223164587531359066180814068362224991367398987223711104694178308812015462958419081094293819174113097661874993574880856910298482562050302426804236688844366641108092897951942457749413675230921641345694433269169069515642390544610754615727618968589434878724124012483164402348546740110112272188783610056887793419066914592771059816200141512096207652469996237286630979791496736586309567078489528372502863314402831387639311444689489297754383164728299038085641919397800400327668421720499334743014197205353566317593322460900437979613325053066133794444495705945306667602104258095701469525196801431375420758981405233924926282118917031957729990852928927435817364998178842119985279324984557667586572796700077227512897535349443386998813578260570911784028970980808761663793087844775654866458678698515979368052175094238091885181385598421200440816809247107942140180587735900361187171158140377791336363062318496381025522159814915801187740664782607453338269465575231499438369553461700418169042751793275723457319757020734851135618120897662500508912093771868179863203661465667459704694150677635490380173184423544924710116443920853626138444700639451757526056430118359466010201985167193450613109366356666193800748946652449105050425628973057926131194925891121230012046975813397189731448668292084154826651410691987813988120764552947425652284685263705780390839044067242827462236281847272236058462272942295482354407012633369543392182505449732602012717104041183157994861377848513364940325876304122539851757097532980174705962237438050567477674521607716149002396968364904371853526946751113520448287242830702829158571444798587622425190116111365458738234522492229884614545995719837886093732880342010955143174559909416151335768878475560500586407922502240746410381533649818388037923971851995580590408953996448122124466291491618541864862718249407494441115625897503358560191405168648962960673749001214411712370556502609394698439248042304014214464001549916236046961236216525692707611086917865821914022779605068349013861115876202687107285183794679295299389825083362729758435111009689117896597390513106000891174552124220394122912589081833548207643699560010611000387371273288903284922255126019968173728707979949804752096220865540674144998770363759311085344629307141220171664599049022080590802934367829059700768850726954260370403107971817146137189596054820775355697259363664001464046797985845904058774094842479470671366611442142081957955916600196059974504345948549700663567315411100767553245438742332847596556383908752362653964745923646114338201417011418914213776265669995289781570593850013222667422113003546014783935235307093406176324912534234538898645379035363847902604179947938460292190186977701729823790579406912996471632368875648032566283372331112721818826127515314591926378022618477947439052569702931147598025361504113831718257000037214859836318981832651133568392491107090307569326875722127328461679738920854084502338607192761080125724978105622446634296727593928181678797649914583795907861209756531983357696986992117902698810184962406876080111891761936719721743458626729086753524856532477987339698240587173712204725962942729285822615540688327881081529841688857827215666724794007232825148640687891602524266643163591197568583774088962162964609671081846287741676503333390926994939231923645525987340939743569645753380041782771924235371696597236990065461944511387464016438320697871232673476132849141223520529223525131117398967391494476765617781808675928084753973196891451206478536238701619453018255718206295007271491142590157795104067576970047005577237519105986745523113905122180596555992335589235921439681281732783471913604067056237802061386207498617774235820333519221632816811778561227609153815518187961855726160995468790132651982770543660336240426257874721870307639469588895127371732436236073114296778724335239909912297179562485113479876854512702745606946568462352620344118479416307656824820593598542205429025744397843874051456821615540367985999893946174473815211802448877732240369345929203387572445693707929519335390966668477055621347886915663160128491920279471211179493479270191244365261540457474797388628971601772897205665751049050824575899697820764356003580799404292828891331100035941098489554894543142754200612062418740548589689713678243528488312471719708758405277290343963243640486986991742886364691957531472673520863081072817259163559578162870120428143791544569281148007657005995972937333258343614305165434341182493380053418138113006004959887075212241644606818820729454288179356463573055921242599515636050656918943330225533779244979480974741471283864475850768900018084164515647740528107792419679652460910237190988441222882728952974678312086997832167768626378339578527616840914951067869009836827175938941626682500968904733287875652800852690398948142894943575159866450303044155113336841178102156910356448649589847332315868663852438304976257237406088912084322286610170227770010497826484832233581342370672135484564935774725196628987163369401459498645190067246948011025038627383983773979509206358599246910175719524920699410670274171419613720433028502758563051993747876518747478785853589704791628331267119977739888485310730223182526204314568878679342662412740365768200317957813121221634032896095168061062273375832269014138777987172209432594096024879454090626431282265513719606176553691041603599276315750773404771156352720654275092371778474701440997179429460483407510685528382468133699365699136668519034355296993665809410201916480321769562933870703876788989696732311696140800217747960572311751427229626793269409226551884038150016891785992519326891313503432392837639646407473001408498121759836924291684364415450708963185731540374763315545695957831841630623288136219076736475906038891927690528032863396733259503902093084538189716591218082785259137946744922613265009114122163588582906694268719052484998926327905988182373869326803594584227555726515144597255995402528091506869413909836146455636926391738642145685409580091369361854485682750840378181988671744600398915772673541521994387485684308590400138501674886059786220594624894780981384746901264043882724609242006789080004801085349255270179499115499059950886337739699996078380452544978731274680982183196034047468424438853089193839680218886692377229746636957174545301871632176349745169493773637931005637008696140889918828388042174808917340664769792790814156180379917199363917279276380762221026299305051871179759479645605797797252341673000397467887573570388634399421106860228982747882917573960753437421037810932604586273953269648734528903500906012425135178821237335539602238847246500232792938476652793715219023421725102357960589722356441307262948372971410531838869701183012967167577616331325179902964379020244691585039958236474740697553013539504665490051436435673307252897534814173272942519887482607681252043414706897266294154781041502288690637611412390864888352717904161669350378253648877188029150257800682054535715614685722432321602798078127955611974686348699271263715545321595157659275637129921254087572802282205518733999281831518449972472689471721302465477182411301795882534137746079600482620657696073724105037429957252509458029416448169045741514123392833539693990497305559477125654704443780058812152672185430781863760641871359423273227742913232423957327639386743052452318371257464263160044356395725413869099366411455555996197255817574962972941610195441686405041895987617190338615730928712889283598104350072562021813245002973553813733833753869687528685951824016680911730892994820660004635572739476211348150093371187004675535314314960897978769204226383974059590527910449056148814491431603780524199778199988563316470988323122010440637455606405312085964327217874146252381927970856671720849835075590218079273398392867303853364972620418028068982888784800855906626305496604333630924607410970869386320717507375491989137946153470124798563043903533736451217835357808039499880349710847592846582879668330343306755404114155466181937971940177735187892455407817835607578285756394667685801539678081787118498865884668361396550705053604387601992146393936150095683146801046082598391518720564590236421277992944707005596719505296234540820943319945144855217929651746792757366107047405429116579569520010251983521324037050581016547417632933110043549077279182661369475650904272993071362228274111683256255296515383985021175625431298117075687841542493836596833803742262783862323311808169361486177091384538882637851006132406959526991528744167865185336567249668778399751490318625301273992890346292976114321751248234422125677635584408275441876276945218535690008582970860518551715799522305708010084733832755671257632334180332829866234832736841187760367920583785717871005222852442702678232358486041567985803828561733153879865381799345934399505167150008225826049484650858022330210817281013088688958288182282177312087844686056260600528798541636131911467703397662583801108847715563066738324796544221450717549683243239306729483251267113533294858684789864319191334806982006382291487413561903021895966571072532906347199493717620926488223323101164494334558643800032367116613130195478187540047300313700546324201214643506219016269382801738193082765116538596373754736565651837303807055190217320438873267241587811382729050155457794570315747189569962952764871464784170199341860005186048034821871759019096251553383016819756007271060864956336043625460734970744876449790889955692236277962633827743023028387193290406806608778101457578296799781215437404155652965800048610729189898111918718879351297749608302643373115836073170380735998005083333503983814986357804076179485513024009020980998634002415017122794878434161389947294184236316835728687477263689844859258194196207946451935286876712022132547924598271878444905140170539184863165714848201558286129497380848625338578293189719437277042018778610554348236057283076090050401211471579189405443825700092346939723334622823172907805321324251150204089724857844500066288250236961535038455083791238742779756589337662160710207811820565437698006439718191084180334482531729460908663918246232090016860461323293285984289595365458727712074728029326514103934530535486046971908453776648387872887940685659746171143697237665887372168262455683022184015347587123923323204688358243393157903331347999136812163051427788817016286019591998759656729340946307052113133892034338126485199167466561579836862791645362440962013876437065641567351002272904185662529625727432650573149540768003386662057168277934377311079873838287125471439076349888579679803744705115422232274938744773861502351656190461987004228971808567009815948453190470381130566179620143802181842347377131203038609806079138981112644542124759933721747783433189915187334525132871314594263818968563329344131375499076736567144431884971651929304185625809918250687646422715102713015518372730902113742317338539747824946932804319470159472346958130696093454215660949257639630400816568484928082673035751752888541679472232399659452870204767945679166802827585778866427043473663278757822381855158477686699062241577391509138381917208587255316834452507763194919918829917808166288582370597951122244165262907819814924353729816291322824784482278057931161179767055520290066315813317038765037372723712746167094129030919745448251078734480608295421322044536686210107534893017480985470985999473113095322429478893676208011198911342934004373153938071670554082137190718733758319306907368347893983262817317265932576322851942797315245112956163319837622042964978493915896320724022493721197114611437620660028559245023029573937066994626607809085938247478328450258168978934718820104838031822604943945395513930960158439456984291941480191206091867912070454110047024035044709711835950339208875418121930222317286757227341700983258910304143383071253151229041505833762698529029288070460563115880234829231460018431391475827282854372562277813539486553967616545598976253735657498528447642512087773720779340635889804771545382093578583928905841105299727619493579265711305215101049103027979992805390144659505993857675058184989503367268828639294426242898822144267895965632450661591461589760626875990966977020626162772554393988955298137218991308621589657936754881268600971655289893660302263690677346838272792505341906298922064979857121747248482988958161752631490898591800943145245641320277455731452549738882001034663698168023161160244280389677346920923018812547465091933708971648039208420311010216176694713525746398374166686120122489745445688080451532994393971745421872327711689837342049916243755059901018596849939698591248971768973176482983498723012953459400817477176872548871570807759736085019857270053783757315005306685552181791576677087675931554481537665943999745955773322762468798026259168280357958838563269344153519236613985148153922278498971756167113137324065230100325335389807375535757204201456460631808652888062723630033787809124460278139991263642174588909871972765447821472331973459201084202070336335207080303618605174635979118078789201651787778016101866189950452349599444901528716930294807833270063556281904841862445854592847245736361987743215676286748922146441214012407660328153424337009676689909959684839030297504301452723139180416662671316081142414751928556874444970363953252269445225656072613441484562257279200986337134549887979946894141330285707269398879888175476448424811425161104640660002270549001026444929747389827530756089192345560420919020501705465247436489634256980601983875876831012232390358242594358795292938330710916003972524358893221325283972214871660852370653642060938292298660750811677162983877597104687807091803109546941812831294727568280892123406996616625730977339840448542215853370660367472888514772055086615012693944556987312896256997532785359698046767145217101078441141217434710400540210373272090050308467562671196943627910119433500744014094091564368826421381305504438394698944687372981529497737953761780146453651838336479532287755545230886938231000191902510820561724586590992228751883541435877925631911683843625256921569874776308627339695981193365623811662320021370592331426395621349099967840086289895323438764105028805277768745818715285977305566812906369339246978635713103455860650342223366676490761549737325637380357776723590652935992970679255733136100555084157498742231040403408390120203093245292053345201374656198570247939785323925748894683909673488902826053501557360979746460334179232799993687460664732190724123719487451910474555291645838276193497728223681497881424894776655297484094605504992618869316647465900967208580205689622521149231904283895243447302691143179706671658334089895683786550443069006944630413653827743442535732041546157712289418875136146616187802373974777710609989042642898305554897815941962324275369921750283548583338015821147360122237438537427244466586868003166539906743031695444118081230645791004552542078863756109146540673922858851789659262344748591272446777240546014909003748905663430010229122742286256968314633354016604459467937483941709331837381956902799021375855600264917049707641367988902425541908142378394806155831675752162221818979338037254156575050936464218565041749841948652614816725335015670974056361042487012875063800562071013492667877749022060225837164659269059669283385769828635818339826226273429334508009219713514014816213558497812056248686602311940442939003341475601719008831670679851984015834758414876063561094465283691578240957294882576645084294883071167040256359941414548367024230499965884364474047666128975790454627198509022268503128518395646096720753301674349598845463063452781775606974597884017596942698103533077882250098286214109517888844156987475497157188949871308871569290614827214537833521293916674924836870984158537380525008094251664317270252356513906809679429373982036217749882714104946634747831092999145368093627159489134160463758889547857447899205135626129810665857496599091986141656709597126974439418666355686325767872456902049507738332871800337265147036093804249159369062667045527484665981521351083833559219585396081394487374598755534979514734213721392578222197641206498179520253713016334991613834314259309632342172418397313790417437356386372825343769140556921137792688050897094296551888382143076398080513966421861067918994327398046482757384187317346937574197865768105580315066913436206202587403987161430519083095659431070511589603351241295325797069118773764082196835022413809786391819321030907951569205316357872824891574529419928920991464482143922758820924323712571998436473931701115746330571658355663546910374511678593099393090116019357792912896449084142344150538783556390654801386842364357492395309020667837335511139876920365357253639690840609418589005822702901075507084396737975270546606792649387521703474169042930352586045683569525899561681303800967489795353410867162545934599617810871377103683476941705169788498601747970348147068215911401826647033676967286073685045250646872995137273670934246277168118529893644023377406516691500619578532466692712242277027553087379223410961663805941506703293527972767739852617333907632150690963161398588242417595855586619159392577371368806638928728680469838603990238883517110738336462550324123368759287324257029432490632755115694655841748675223276280166152397519775570569907727380508444336166325963127045308243235376954724990402931793408635009174433387114397344404800752835580902683894069423561858588694592896693413424435688966752576367242151592845009542372914848263214385924643949874481226055723781120189098348608354434491923751254901978999194032611450391660390309088432750661578188173575435564402933294945569458078729547396721270422877978720599452661737404527474816588896772075223859267057303463011945706796241285627896513806795635161522064825270681125539737651814249224592730025892547097742414026296519980046354116340237049060344319391924885726220261637729305697716119038054964988325012471624929878501575653716772147815702215576010387679683491156333861289507711726633306167440895909922398370923185117961008998581619148078633758126617636284555042905181220831449358775552651206428952287264073769892390487828074110220647120419761515880738100542916899301411564745550185096342836649958362239439068646647149581954683602642973689230267082344347584719851104056268468725833195092649699135348237719100811077906161263412058626322316957313214625409126283084071893133827662087396470313236152245917579551830953240897785724327999124887738059959243714928657713644581552819038439952202094283289285589350712715081322698644904065897583680655684763695064091648923309448096178142359492485123638314599167391345192582696288450958522474515088858019530337643311230837775165347136932210152277667204529355515476132682043622425727147838697058752108945611210967697421586264655578164784144419102090817463942587878407882658575748215590692907825013883040357251059312265463198156505966591623290056611456391404131879074870663421163778004353841475679535370548999837989326227168822038749418983209386673269892830565707828511113184297996206743433650331889840549151377640821278538727500081711622594595003556017720830742584377937904510504464830732661057062280553901154121008124042110493052669059581295492263583877268386617662740031491582964363168771974370753682830514555701570816110036192280928747793940969419203279966806456760636867354731687569944369938115903209627011758019061409236940804069433932944265634067584862344654446450685158509967526777359717682808737102636679855744619487228764755541961855108572170863291103892366337619210322067388065861183569975288383318247105734501988176899399663784556257396795746782286939489208923797247612875662988277703486945908518002251134601019995629660781941715689784766190805232845999516553680234521216646339663245011903597936581803467190805761674326666830782349026958785678293543984839448735042795016989304203728125008133363953583771922678692034239028040320041788816488666415961350178354582083600875695686007638825707416851798782545383265758937916843284970876852675907929004641335894464022083639889205838848562069324969060807982691804071720603770458554537961083062487893913475754351059502084361224693416342202861981157757936225153219822629708859916948892211413423092142369953801762128251960237210434750665693524603360700761659796550482337597338797536932640378681395546091730714690895326161649565211287557753651005436910312445818169547153728759386697680916703764178066157969378310642748068962198197887273124114505119753635528244002865176065619304642319884590497612291174023450946570795630493698655372971545479027743157744534145350882203686242065234535294499676684816793749292143796441178047995849522517069355157926415680765169121742413819034683142478946199210045691049595407759506749845392742087955847509528532574232300127422409853335207126209600602305715906127173940460214179731700579956200143611984742852988308186770900811553602075907546247372874541471108603635545822465764298740346446653706908200700220294702334690510299405746931005629507070826768662280330590356964483905448185803929829992460929162401397151842142517708677386949283670254750485263310550168026834666729986014729718933853791386276033155995877043695141185985801194131972159101478711355337620521185600515078993706944656676504367647967430684107858180889097523144607916854202051415441076180337715460163003536120051628858010727160282252701284050208297924170807857855388597754180185595963644119498991318229046714745093312487208318657380966947315216508204556837843197879416284812190867888577642671149523826482077621428778546512760632397809682224799686040366920732724794549699298510216487074117539379664254476388277023510670639773377456298639416572648904496103044723361510434199870216176534047866643039192289981763590517906555347327399893897765059456317377136992722621174420305493678016763550911087564224948734744993546983145800226741829877641346151771121512971704889559688307502269664925854896898930774394952516241181509214248364400751006488849612208451942877137321203300658603509682848457042995991087101504096396116686539234180465577437507165491007261133264505305990398082952934143591394196146784031213554949518538191438543472511305355462894097949591510453663282009277788705082870117467256514097317183889070835902657622278617240094688352329120597790931196216387755189982851937665355211918953376356409316649940381580909002364050892279714488791310569305790867160193405340544436804030519778784397752395263820956822900296535444337238528177777457043470123297123577323008311162799010981252443712672081539420235192725556327988767857825209392480368037955988900586951155634217066815474727926026614862120335779649463124771776972183853538278052885472837844450648470948913109151942986202750529811214039498564217614095046870178866399130042285020359195659653038506354481947680059603261076033177238137596624468604322157870185286237306675626510553213802342676701828865612071186750533940543679112318230716687552965094076793606654475104826250951025715956881516292476820668339245350891658142268709365441363761215224663122190034436602269130630282096963318278762618037099937013109918090525300985375038000980409440587392559195133120273965379777993945988912046173428554274787586541575882826094532824422006649043413454019126725826936335195794909370334771745133093778735089803589848488507253046823089575194143370375742309169879309383912509969154192271771480704455478415604453762936239726221770829425597310257194338461235880360782268606924692693034995184020083962871194891950398634339623373797960009983783369366453709668480773990049348278371131350963754644839622722227910104883161704460175340337018387502506124957255729965422568500290609233163786920814565260756083156216164256137756574653027838272023502487395453842922855477840463448403647354526868498979009244084200813565771768851876131647776293371145397967883551156935311849524875972069622724743925702993470207337996611982037388831192404207355951923386685602891306206026531426450002518954089477307285835635554155722940228985550965190386785770438789142365588065765098008827643409203964034277349507335211802535260572413105389334640487518389005187765033066459662954711173869281971110453756635212803297349147451035495174208772469858710716385841675368006975698606350827764388785526871425491065074339996023043994889411954591607392601052152379055907292469349863640667416884469646850030033479228150153648679836160397977008561459974054634100501159950986941064274747343542717824987286332450544018594181933121771525302441617136282626393765612526486270543603282237297772768432550562953251328534706497304924347423221108588628005207272200984711185674238503455952226240944634938673909600670956529985674643097242414819403792436966326882559397338088555136315811785640604425452977851265560203890001184957016397282297251540670489165462220525530914977236998077979680350820297160494984523794937992003129436080733528657937890861784140199807360955852988052948135460986167260204525055890136898641728290301928721097216298404139376557883447299552013226170834188375020448658736947393252533739360889062164658503570688110564845365410052373464100331319446972870206608253978145586999185705538930115193864216587847484206878798553121007954469316862365222687842352425495118124089071713192056912293084666176692545434972129047129962265741390377312256056050389318256474354155262356718181566142599738018279085840200405805826537722967099090462074106165985572621960733589492522400127727565543506019417948972861472470220786875925773628590743812483719328482396184379401584315901426831899062882676885533042213101372978722864167302449876810065128808734319667067751860119749002049305775207388731887136972200782928507238008225250164667539076463704383983500931493390228603746979440354711661251422723831457624459963314106731442489474271337860269439991756519409435873140179711724892678352772531933648094387198911142264390728771164087474245352979023151602046427612510178756528983306975579552124674622246535687620483026083276098010296490455194643758869290501454061408705358018629737793748678181412252542945068477977961096556998347373983656095073305333740013300049756544811379991524268492139772830510305069520208590882393622604215411688628796175965055946201111550073115054170981237972039589541757923957439494857375460600852063130019228759139421303573112861306339702948898676706897174612213895943378460362624001597194267947900070732648755624277133776001901513072168402474856461376456135111637486595939859313562760213101855807498918169302860497876509394911130000763664091652032930610663579471683908130959137230404045260880488088029074954971521978138038297147254847891799704197260892454676101881169339749741824588410844515587573360715026472346619409950483728587113847160466572044891979075814392088933325424254291305985319046547131808274100555332465514048714082793120720718141229571240762622758173093318685046366790767319256230122805343328604280224062654514315799621089553013485134183084574816185813766889021201692370413815693349074660790112376903254939893940821154172609221765437782680865318031247601499974788213827618947381069067665294052361592824013460699797569513457460682310843347583715798088443188999111748694695660673667445888168828950101510105197573132229655383416026438139627145430816284399244751051403357871856611003598293754125925974609789611901016289987785089645050175237604082968401758351890097763333294516590112290891817505286881089582384166812274012258453589112420941290136354263965982121642573481707627575544078034197290222021362031085673898894128087878512102437577727988403207612940667949064634701585611169893222992287755967124495157395700536652848259517743789195320407800419019851579922213515347877962704228518638403342749178745227451823281100209994120804237906010376359195343562970313725228638059104898337912557333849280748897601011621964375398122040282058879755145116498863864966116313788613154137030546813428254609142081731103911660068826148450691707844819855769389262238251417710450672366701682309802043114162958652841124543425361219183494165349422279065245476927240180179602316275728899782265499207766210689275170673796372646225526163476385076514020045348392454665037706796344515583774389344036472134078325264226179615893620322549483750564507357414323305189680166402531142604677041060877798813932903586501203096407583300741040229972667178442079804420333506883058160173961008710323540898759567292768628462521574854327330730909554981893471590305030373904021367502125879699953881881561624580070386241822703689393117854219242447825780204322005017656862483353961712055830687999597341344033190350280862897280115870107138866228733758470823428549717377638332312624029080587073664276841139415881983272055391186342759837907824629091675304432160099513584897426645480077352552735881936004186019020856541900982303934209857820784640670396043383333894967608843369288120982290038950975253585937954779426038377627515096980030085074664452304775658227660578002234253811410997411391597435971346181198131928018572207492744453746231826349178194164406997737616606877283289705778442978890393314028160868519734309121228626372651786502288540020092961914585952532400486773785526763629398235464734608900771909489748771772500129172459037409422426702191938536515181370103792875365041669443495458495705513988080027230922843550809755077728856552158488794222834997192177722209416772881077367633755621150642036226525811308624030318810450522913444983777889319620396032800398243004490159966909316025232761170338183787243371026320185731587238386871800853361780194859831461885197668067432553338879896828757749421197896526008832739217354431698870528862696587382301500854095077421255660293862112292981288949466810766473911911545834527376480905484768341850442615269046370964270995886154119910560412860159963200995816802667742790722069107925860289428790541646886940526281244965218770187228272020503050045477660262494515145262486129943086757244023583167338203754488578043680215625586862793488173240761539360125278211317748705437536330266642730620866635575556745130105822790356475468639812401161694817865372084480308455927904135582340483912386396465495350261057332766691156372734815024994399698791743434029990898778417305557464879743420120071874171475979313565779771211462795765054861073038540767534669207014161767205998935026733461318330525373066277127791572008542493554932267155498998128413790212200874432326210501233555412188253954656316921068484655462975512003631487761597230316392068338861123044842267709013542080190645247925796796320310452210179080665533436238033716491355051639990314988949534459078704134476785463021598730153698657599528620507164336718597750017514464504988289152892491228316247880470973041529441547890196354255300345480702174298076707337038913666989549580306506208466878975258870248512676102711064404797108947422613573540531956381248445112971871464064550831602771302804513612699794495062757322803871195376277984125984619927938489214236477492087838446398656042665260144973315532553269146215473147673541595641249015909358027803354893392998007649257773381621683963937111462571340348307387405545787390443008129459131464709214771870131649024234394075739415354199806524957910662296325938731422168840059611543619021149254271836811664042012557565891680153319573703958225549033400806038428033184478091169103496874291317693860786943907170390918687937556114956140727512888917458431634777859189691393418496555503553478052519283682737060697665216382073466400658655792424045696542695844010009513417933689606193268702587313496389654275726206887188743817224410238676265939283490968115358076638108819621036298114950366637031222828655929657055744221922504190917493535896401385156123239889774629264983962645744716839567347314879832560713664271134920978701952084263726021471930815928347647491420574216610699589356932508156657584652935414780642033290202067426477668320158669320819931074699105833677746255850742962467993621839076085937442314620595558423343427761304992750191358255089655310158319115809626920646228238176730566129375596086146966623421592849681320062080230190917393870766829733692152774345971041024006566877363578089078743802448675834865753635747593611012987249735235036279664800944724769249640368176653207758058712516817232667332378614851482889152134735017403043969232680824898104753866048931669966614169116230526211661115490409921465448531819498075380045082298865769764362300953822694849711412396718602780790148814764281753181790170012082520328710548048169151085850444056946125849208331267998982451650748125032716027338568278127007631940018245548173699800679741545586511405624979302214838069528930378387119746256111282124556703343905541565914877011579547868457326057057689825386611204385902860758057076394847274249261382787918801755129028989947046345723534249393026202747105747700723692235619794837156422037493482940993787054478281239749252646373005039231005032680451164828589352851357941596317813111681400281537069394359927190585572822906267703554761803396968912029104119332369334618667270957561046215082878165187925900491533152429464905635573287050367610672588333261820563402728570613075624280547149695920663680503835621231822777546062879292733729292321591100990478154817706426231868572391746884389122960716949239376511882386575638420994050499170355490545375544221162731145963692443953261344773562191436810673921839398773961045689376044667048609387560913950690506372714412931755454287232012734024296990797153698788667940606835596724254536877214254656817297293285853447128938360766151962507252594696927634450558987004505612523251403058660959015577484941804256384467697979307322275273204552292849879593755137031987423056648697569478995506718114393728677359470141684968711655974763342371568217187274196477898441945246060607870088065865679570644371222348203488723276962084766415954609568990061584611566910722290040493058407559752012329319745400540672955413473858344734929555179573555916389598081463070793320847787743343680132539494646097338338254634686893592806954923972712362828798804286488645351462673801273792078721175687405304590117131423770233940013533305228537675181446927325974299115526506159857120944782314188387624996053255319910711081191775624153222478524145318075487945707852057437464493239266250565589161902997059506256704989868402520331838620112079589411663407322349195308554990407368407066503935123061692943227735676518614372536580648337806553090744974350715956821213182282290744946419874367546726166113415483413697172690288115958392471583765523884732699333608050688515397844234236731834955693073403560176212129132771056150271102325370663633363420207389218080603653880865214072788887604308803615537801843084708874669952649644523788902692742577574860705900118899800245258351185686563731079672797102431473863535637723817586083691649659698061884042943196339466969156459220336678171315315664605664210445150150800371720157136793714945932769711702203262288963396262299895921731295171016029509579820499244953288103790781849558367301537424728720338662541233272465367732081748555203264201570961454932795209253332976232462727588619266833526305506323773482633455795546673160209978870492246078916833980001336606176015989203896976032990511852314411355015105258652976476789725905362219921970156647370039315311486555905552230859670544411099705851158119153528880163004383015746673435171537721325579581534727756446110176229749928305442630461599087804302054390963848475948022109434162213932200125501377879547937500892013874639690674988097079447756785807223907208200903677777064144843439520935796544715087280115698427691444686572643456835014810497545331592379673774012561484914229997677837345679677825622523368254787150495664810202507977792565128599238107027777752799013604955070821454426277669570553764294938359669290048606229904621583017894799206851425125333908461842027384126512656596510941029842466677348015504418370491778637482880551103439682248569345302609096484003096721895052392708663874649748520597744017280303405542925814159284604984178865442943283086280251933613860469108831598242241916217342562984873402573634473316034756681194998763357071705559955635590484594602310886915431246902783765071348429915250864742088602779813645231156007616765315648690089726247340827117809525234833238097243343420498002666890097356392733489784855937675613771151520012547903368721009860621270169448859925483587473174158671618642054445256225446997092049803239770182910702878990834022665860756114932359843138816986241331357467351166185650316970588578818194430466643018241488855419666450797614800242961698864438292102175745862793821871434474780505401967135169104245942213640589141952495761618326014879435570586247862874058043752591666659033157320794831085163954230828488706655091798705739106316115615797805557127027907587436266933697208394115577626431522086846846029327067324563520936536452697974366268196359466247082751774764266801176109399940275284567577332885798755739048289702711163849218916623442816488622722061991198464237325058861148556311865896068504022867413134886189182996960032177271744556861991193455843615406090627303255642587190777493351429775826130260003134910018284912099428321466253820307182345685118688329226600946819850744692992691594724858547140436367786148128392179330063206578191635682911036110601452753783264615853471438324070391332286698090072417930533216079341864058143432534624510935986320993578991199397056284655012396519522086073704323979483063302640260736756202670717141691635451311427191890131287962994072335539108065112926001106671108677481546016005095866406283096820209883886170564160593323402382095398710976049996193304017300145336183280318269679210935969623241925408946602830413254376908629962855805238442108610259996137910492196325868602629190229308288286212273153982061649503061308782475977760619660334452705314653951366406087326857189042351044181050388640063312562542074038875480430689929981347528530262255049370354644957618981766385230069341439758359457532751761788364333603643022592088971647448100135064751158950445452349888916638850045772832992070751873076446746670101810998804120018583983733447791631052204108009796483298545051209975937908056060732338658164366223604273726320960041774335885319576006434229962330588391330113058730085067431811948510019968713477578284905440721782999304300974669897137420327796768385030994418431868716916128586824672694416537318789750741092429994992752554786109396965815287890135037718702604330313880974214579840872220788293887502128490645961053876262136455319380901930768365865590825970298318850000732699060491829856869397589240939030815776174712036574791481233336181094687472015046457164564390955830210109760314137276968659988223630534363424416702388584738249269155386052239149906513283801410334315727043486888535870903614034791701296332335830705315177193020266942763796912373992298813373752051522484827317042336156118175904715148568159156700394790458060673214503491093650292339153476337985622971356932555662295345384636379516294574838614393367069809436980382639486875151320700787278581146104415353611885458718320705911594348003102359470039361221179671293342917228913897732358698949512353088377617785059670659749412628300409969836663856590398881669772145024047757815802967759552139548301839553968227342813383980237099789742378434135316406502619297705771245192280817047097238470165170598060182784458644785500415385740035095522436238396024615263584445719484252988405610134742185388104776719563758504254513125103589581626673564182238741022733242263747382054875963428411704156499723826737370053636903622761932654314405432213638388418937824496210794961104239029136029212816334400578664334751516971141550399630366773014380858407815813732516278966177933346245571075573722486018289176778015365550456905478166335584834941139226988658226173362027921083057277324910170960018500270659951292456600358062668090026527251269775592133495296921423060440065205301950036231346399098312252563356828734610505343618213645561394254609607774990791761478894822502383532378071500372605456748995312818891402999798496840868583094391848380005326778688712233827519522010752428357163816616985970189978630127922823887689764773408368208395696364861126999161176546130430582476397970176937369778607832248845089129284088853432601789220844454537262792511598768941877561227407136702838119081886755623781221231228265986343353049262818963162364226749571501012635343984772842784376188542660769688417932109229505166378228487930648879649649355540054196089172530178973833941267462867439747018276864856965770726385370507910923791192933038232488320038440548135581664112854761010309581331043206405307707734074578637049323190974365873201082345254753311320525535165303625573371467009118717496152503206834066832549306485307616908230101271112320984556188066278548608849102358042323873238792121281092933627133701482231333251330550142102144276184145700619156503247519734930709009744622602722968759806750891870220466520708526965477999062713167799712620752484920210809285388984123139611143580586197478974412826955635686562827700209133459556804711231933730232517490909662696187070937242586269266167709580762789330680696430167680943397331629465640384109975338847138922775770773497901601348139844450661788525686133520953892852201490502862621429252665688952138407874214388834308423133090297645593306308047949966220197506442640612339835514908382828621941978028362232131919909386444927320505314616767822159454803448490874106003023755073400878435145266561463606256894903025108260082573261607098422557332328991456265968212865896509012240731588346872808034619935446219496151053141479368871850339706880840128507251858822048057121087513424156323645640755018905259007133725604475414794672102494812995385483140855988132308922222041862822290912946390706753697872036490348662970495885591939706627669299308498293788321930236937790685757793295092695463716652436926366733569713255854716695228659471339503732721045391244175352574122166487405855122783476393867892075680597856297893270175963002871607766756442946051523195300440450662072592795420343361059236911969429326992235307957036405207573015976408663596421538916305819620055440675786666309518582312854565702892794626563942209767996839889580091850023876275833582098943696735060584646453585495274687777187758007704340337975510769411309127442179101775242623393453700833702419673784242543654777950746908107809874250889111432803432085321453016403125461803926821987423773535708892386799910888946100383830272294958235872203126151156478991611774033492174916275089880261702318861720567697852639691996258236656736898909310241215097644839538553802926358597700145796152597309112483356787226830161352046948474083185888736848692258399773764888139437018753961029723199840935507125832180140009902182597176529918909998340387837309576368737217697058218229284309254410023255925188103098493798115094427722290467857715933915704840710639062397484369515340249918658753222079382355998127343477564893997108730913624928018768435053731354543423276361863659461535239100916629708438055088834592155853448822868869111380406163579988045170894110671714758920384899352792492981994494423641180558469385424416100032842611208976235688535718808785516401074087926945001889392175666783934695506749601326441940859498001301630421697158398778460153462983052509110105926632526760719228643944697434204575490712872549010021918891144302326247383273633985010762406725153197879951801948784169188576981636312110621443309845116184053939680804906229973946921380194164669304912521496826175495201200227209850231422336502634760689814908603232938959730180622815895246806175227338119708781133866437406300221200014606729238400387559643361934676003179208315046553667104191489388507128755505982342546561519595878175089974737855972102646997044471921490399971900022137759513232991998153053206528506865747151593007849599953254832431827258047632001037349107181613857325490310705420492339892275306836300467745908400089129081114995488098315969301739948736129669626340335520780710665895163798724147909471839260182777315093424993617292905326618110437927060301616756132060902531977742680430767144942836921338500250966846091999786339859860690687149252994673696458457017623071398882995105969664171523078810497263534174378670756706632713969012661086809991762358711248163851450465592706468063064148827402451376020602690738227767882236911550489297992325200863135258863235851458140031741324510718154099439940361420723145781792775401213133105534327074478058703084562410512634090803357560537052126860695657601067418129417263450291519883272969633029005816012046535223184010752219507409193143469549734263310901226994953979064035808923891912858882708328801304889776402839991542086707353638319433605183817453470665099480134706396630110332293045333010505483519009442701684553103847853815583972186946138709698352872033044980598747253691133350150614479770183772837026648892478526339991413718912769769109316150716009275017777660825095928409635703324676117006282174910841703639390969073513398989150385046195136873818771044437373700876668153259394595243052413287582906296117957612489086079424963075132899320193337906878137393508834759057310724590092378496914616863290552328121236495074593104421496183394188578928300232228097876806117958376062951730165513879710409555505969613023662973925980669327455855573686099721172668362668615533871488544908900722266136152794184419236595255023605146894342372286840546853922294962481518820387927711096945785531589020742427795442624317180717489921697478109319242762418251241670772470041407261803176348171648079868752694102966053277095880476499330970618149668462271495508667542958078911580481963114484095242770293417131716414594725487065365270336527193166493078597999659331734817757253982579459726873942308783112185406198538229675921759523885642556508995739534911030275625880244785791146267461636785297501062821145658365865735160528828442599426403747275561651295559400543752402328139911157693820897934255667075224555538411363311839988542203060505470006925898629558851132792781398863388858545230476012841662937628816310803787761663444594867988170804262526217880998872693001938727481211431803398360210410057496737330542158104059109798804586455869263415699384706476297455575768372830613556074129571932461099803424912233339552304731556610937968868078209905987280779383866385295781458809469191806885671299797423952400025351665214685164931588229452066653218540849096494423789818434712527073765453172039111511742602545171767792937325292922043342812359093417693362922660986052340285800728829296282727962358032871619116460443216990657906757361899364042469065026569295333792009952151314105841585779944870113960156187909371524268895083134554645492998428413872269271043792342816248010841241383546233691997231515847546620808792801932530533328627518349406087166068702678959112605431422306440990896642515239371746056802647524033985073234178681990013666627180640241722782668464870807925315374940090484293957399687965638681141230221523442936561347654734793920410522576558114062115554595952509235569575417726713808718880337258745329019153912538876764657687628775415915769597257304235333799856527271850018162284843005071348969102522306808523094781476372343287586582468282698757386282387841086986926488977535613661066802077405183987710923899565449417391237551001827792235462448911863458335842121188723480421848861219334501874005589296150681511069878863813521172145210083614529651607582818810393120890743242409271332264753070877377263779264131072744837097955562267846273997122948410395878087668998848994019088256781127281911036515068726985389744521762701416842418508358220968067389332903217795185584503933128761830494395660610921362983340850440153466148155197936524264877298784476838971275153043775314239124765143512566939173768534335137628269139159209370640335296638521593759719542771961740628776133211561814517730997065016166759353082049400123580632797854611591137948670292855092852759378970764782181334278253429394312140365969964776313311845220270501754729835280358050368115999152708866550925479796831380356153818718450960257632187530997664382753287377229357456456150972798521678699174545171259170213921364822511751564954048792944699990714589777258036608731041734205331993179548359830317083967348102916928758942675574060761431972306597393625361166235857670270542268363765301644603276705417406400966227716211446385161488600228816799778527753869567006587754123943160242068828534698492857756451265418083627381318771009445084110223126480766736872833411275595120110965406860195672690122378627635582782768495283973128875841336812317456751442729322250775257109279889802284919107485764087597058094136369174944692019635736877519573534144220595334447721414507627419763741954679320861026132131624010050420945650706967350307724129544412287257254660474809352747973308459645008546074453888750321275849224177850037873906955695146450750108305452722455630210528322726836686979863519087061092001938443768048941703512032031621059704753636693407563866314900991476205444414924691109890776495946655795930304465578158712568261640103286463021426178036346499486627314785586565725747469163983515180761869202083392839783479252323904702210107642731940263957966744938343787179348719766273420539132572486372477566102805703016750116577458986826055757359477056601381286006115227741269775668420941701347798824325990788690005493135915312233774507711669360297364069089598859325484486906484871399076522473561204635954825059017546260101870105603771236746659566638777067213594932247282858134844422196258327242071152009576369075335972938020502435715412100628515066487782814534410120030497143857620786855306503969698312287031661246826980927806840768267001363537247133614159710214882230373829179754925004399066362686470723335621208829608142637476905088573559011281592505687101586571693147479051029248289747537252349582041701099606229740637745803561485576161885497141311531710809907621133001406354776425435428046560865966472248169604707057809586578523503838918781555203830047884186636634654428766319533928837194383189632838544366764417844375337274544990786974224126244701816710301867635816480966494720261645022596565692815112576055275382528277180207854685415822224000668370519030680744546117208902546200405119784478308430790567703979944158172466189726050682508351041144706395925624521387692451582932179117240291861312582212890469644672361518812585110006958434953209332180766484868905210592497832694698674995968908298792586580116409931842493972038871596371097395315356218845766358268849403809457556835893601855370778328230006221292730144678507888242837027998072455426368164587168395891946378085573028684973820314097191603343921553377864953340718955497885586557034077361216521470196246479299756123392546258202120535673888007197993780225239704261778628385246593872379741004163770265808949569937615349962134977302258657513103023121977196237418477390893465569775817815836372994628996462031718204660286804687964376737361135430921936650075350561145373327989067581586283145801456961759665064302379421355339361294635321181314566430014074714958696362134637702271195167460481313715029188154098166220533720372094623370310703245890068534835958284097694721834599307515556412508500415497845596321288367851776676093232894116782761767371978896305359124794942199964759855773698392381709660670177291207282702534497002918999766426870015467069101389797899680204759861423066169593370571266875875692506819845739052893080513472010703734525828964065116803160839702066749644930362746515867937674233828458779490920461181255974609498242128156088220060093383380300223948099572153240267306030511407315572358375426591650704565156379738954355835013099640644329852267578787909999719881682293108914887867189585199886131488608305505569671758338995615796435838876834943764979246028640544374555867075802183803205933408004131433636584841530592813494226678458140897042096859175924878271987717435138500645222868041601632094764332703899442345107336106768900825534967186104738853164083911842848042491624603163447419667662404141584401984637726751541627312468271537727555318270538287423351029858100212457688171984888862664243390139254846691412617647912002648145748492338647670552023012270684015214605430559782923837604627564564112613535769278763318802433239842933116496025580724869120810212430058455073290489456573065975728858185570654119758509981958386375503394126831294643684664516612832434776971078681511482470283333292059735521572128310717024585945684175027869309357731504064797189281421258472822729748075486877961102417841226091612871765876879980522394227737991316078859019972241023176524109209311198610522736270874270621927489373988119083645254322432350918200999864267377895762713036366689717477527368977507005597305716479291108698642982385960704008708306750818502848567581820049535539902091085109708888013931791013175413857284614475126187340208471486551039902784837052427587990717625668704656580505395825376376678605257866808056475278110943072843669720784194493757843517110202533231763854602431844931930072403769959902687592627332094391074702527407525256203641511996107136154755601062052649199665195077748070919195614782777963601207047561323693033061412253982331508557869999906001122241251561944971234711411262424558297123801643899322348319595412896546672673739761857692235707399292771557777423884721312607680427176231389302902624314342487509172207246640197247172939213321978569095226376292763424325556586618667083778291670273491287692098747317943507582318898904140937570027235325192265862403947933896692118978842571795368492062055714032137527081739521314250523667744871156394046037471639161749233529376534427911911821750296348791687962888620845137514400829402223660542734261616289658063819015936103851982254885898676799034718057429111930982778903879785487519216299491750485194043855459250629477564158584394974973404340588010671369650121208617540853335836886385693003690508596541203094211890351925858005454532528476981875493515896550124410425428198967071761493609620488265786006351316942346308136630235407513885286712270035239307083910907804197302689950842726098209384485588243089932690986948720492545525860804466264900604405657416541862533131487132178533282411819612017446483170053335829093603583847934623467441308931153892181784423331753803485081302853196304681265633747133647139723448725706388179841979562256289151850382934459659461990995047006019038594286655784730242044744758861780847482875882869283056186155412146930508503544183891690699869353643374490921508674344575328336814937260292777336251228323344752120954349759253089208660098598603016178326563376039691168594880255740288644891240575454761126522871371743623515388402532124102060130473356573490563515909023171848797466720796001646339690452988705564660789399372093348536563471131067807799337262852567687015641108693882097203072101122023176935023422228117631866613119230222851845090720243256402186782190728688381716828817428986768745815625739483476138373674688427333874129026481620582053903708552337308095989451921648094058652987160566893772089769476220124166997862736547347003833742866243594296821778562121155507800810649218799359693944595470497998526678652358480727820641248304857383946251288091160204195442681326359541451008238094771294010218757704912169507184547313409868679464584903678677115486221903100766113240571341197108046861541292115958809639834100092054427908500206495293157771305273154679093017181721579396964436001223878147082498386512042682181008315009026902024806968222203161755634086589928025726027834695648657397000119502518369943271101467776599146204791432565384145863766361732872664997060929329520123671990388029641945246003044076461398873264756933272891402226452696297073113923186948931601559074445280459615328524347139902586870326816363538674143758873099995033935998772682494928596322569138170666493268293753420702531152411515198381627826211614976408142662171442208131243116620293942195469307549022183719287825140231456868931168385890127928867246637393834419604156792166778594127952136473964827960127908541089680974431198100563751710064070696689173613592377178120127936940620194162076999819159010317439108092233665761007023018366010008040313536277419005337781039343768449769275127958905324984208700081570745062483005798719561077205658316182446480355341102717746080397855546634330422480712770988954522830432161047848280662080955046136369392556876744640742632495905445149740350386736644953186391855680647724616497049005351147658630475252012851782144672520788271572977267342740820330249582542364543417199153422160391952715660310134601495009014034311996950226892606658769523766351043164449244618287103405167560896721937315147633189767701247361791363350503112020027862375797732810277484704393363875066434593228164497055990927180175215312485831553248746070055747363563979747477383988572983939429562691252978638757547696518878798815643711133632184003647315206058974414596926622744393220188715917279650489722625489867124015929077425266500090213488173036241345944743438469616240451779263411662278669421799582907342187145251700863423461637990691966026944201953367613732570655612833178989060453487004439155144337074582685861006778450922496820104419509782993674523998188896401050470878620745668883634203321431517640912073991063698548652658402126983427154603514216008630964634681949190068402889615674205514052525103614640128230186558139273296289827216717342163289738098912734581535858320132394693415245587970152612977378166697467657913493417052475607139028608204134295698194238493030451902707608780569435728569078122829674455035845711124207810808829772674429480862737723011977119877723246481897201522725483367419897667569669281213204356049992028512077165076631370865661136775730638759318972080577532917547187914420412298668821303070571757838840451321451621521216460421322355768816883863929516512390669899729314753286233421554671741415993339218524893919952949300449530427550771373307422769939964577476341001052025066530989088576654982550478421297209533998071670782264037375040382894646709067334174694075352464845298059439362639797321724168446676373185638013666551188590142890829887354704676774481736721478488030259592767893854736919583531242391717716828425909585716017188345734064784853526738612986713141548579223568933445018699217656903280320658078742148995390693605709411841263245846370522110874000942969811333383157113169426459508600111482258172739522297340165481940349291492297717331100080748521030098837331050540238197656246785880529445557598198808310786639064722673144974590938102154497376797437791189043516830320757141617662713231074731891082899534163592824248497417768093350632202649975933262264098518356702338503373896278726500423070554828302348922153146226155073005001315528150120969562602287171513770761272641659245185558102808626426785001740794842851729657292673919047568709001288754434614739118178193720896950793437277895932691230629694968646390459721178848507236847170605464065639162919081245654851107471328970419783216312731322501934973584993556306577762924435420266420066445767934834048403867693718848596172693119820666016320555097556054040646687046552658789212354953868169593616934349460684180782543553442177263566577303991645584155671496927719854691303266463851478246745416711115163451122652037798265901966146457481577957796682312980206863553404562225380819643178528499711556531857729034771840600640234625782319634147259374257065100657612789346067986224130230813195596119333773952146667636549714686654791409233286913727053911571797929022867415705492176708927817004597649716136463907114655215195630523698691490507704575480250593348667903027694937919265299865035368489702982731801198891859468804262700118002279486175640844289293147612651074438604708493683647076081794629997309317052625776664673450130436732714309353224524506595671039937155732566327240570747379458513935369870754689920242735450512963912405342497064683230337204344787339815576349265073161435714213410376614527925743730309535781977787965420249438750120631216077545198379436655820161855417057132287920457352311036469426994753741586528493895535881779527915542655362032815582274610005298056861136399341243511736709242298941902351362926125828563546947205633521523740483489974162206493115010986464685279681020729079092098331130807797631437957370442799716174890649950229885448468356304635813775353813957416509901852204381747837798927379576466993895672094286436999064980254952965231310514165795441197912034128220227980718269682774924965139519762853374449700373397835205287100332322932386718702007361147480326033742633683981086541177998162651686348351154326567455841859638419387643932239807670476143893238625050376272136773190478585910806401618831568018219946967062562595625994223679996160052838262689689619571401398322524368797532781006396731587126139915197602909083795204354872523662429592417262860638966438150276391697379154012917138634580708225971788049141922433069820592472004856277823427358449249088569414960865639960097994079118693166444425355977047184721409481834135244089257456972751755017369720175953373475572236664226678028280071700344942205243486076833264968756715551943911586190635547050565109008484913253773157886215794948397309693189801016108986749261191218466498804747974263343467105384384116304834363943372035346850196730132675277154916341768217701551041379684717532635234553874860508862431754713676529073014391762149182665904269592480123473756122408583065843786599404732983756963887623456627250148865670181112282330522088654440981351349403810074044291818795944588830242010829525517788891453105046652267889935537704867410832805239674055044290033743748652464789467292402203632913182380494082978440373914581407994100923106935559036333961403332523262999310695557091138450667622363743262482378315510786393756420183916568384970240761456273132142591452537874477420681171898201777031077421436631365015774994829050639339289210687726078712522886116932753516687882980680605963901019269999156173435042467161004648504536943456475679174349000607695445719867849562011369487212862249807754368144489490148889732514827751881084207378389162382097853247914658044600186769867151837781021995538653063798183163845240279425731696925329883507797906351963312614290360710737477731241666053454646339212960115347477199405037337366543637455005432626618804758522308445351792442741880658997078230683065723102413117975736369891026124775614014833019130679073645093142028654622278929016205533233527317824501186845349598305629729171664122295594131888088019608649975672435781238741160022142393429963042779846850740887816276943519060483919508192135163225170878059706869127248300604481443956623835468774463384060547126040237487573144046248330902023768311697883986665121736869336272141397743082773827309566274902226181425577685252134355177512878353515239939724036892685028000843807590797958923405151556066955011827649781440405406174883034622289892520344333569957910464956749915397543204433573222384366604135035384720266313762195548083387227995072262082040181331240170932904891824903496207641554482508722831056832306282906351617142846992971598497429686064396045639827527872712065439667140484612800320669523284388186937573905784005474028855206580857133533469317826827454013666993450356912614061432834620899144162758328209497159204047006678926544533559002442403002445968151725746807170557292606473925619354227972508332818208437450059239496987063817539297477292620185989059259020700298035064209865880680682487870250514360097495815505371183441307697765467834657104555349660712332936597039903508567364076482155072948562500977622191049791840193039884004242863778795206844602762824009271821297417706725830591810256793851631881955305167355747277565693156125065894480669064896507845024074437608572913069026866358503357070138494224935637709701575231259585042623631725584931133911116932378978347057651338087906442418075178811048780054496924392019650109219373807457737840878665808645246818946346013074456172192628002326932588245972219269967590397458688929674560890829292136018145489967962244027564159482918103920438895196032124108872225060632893052521672305550319010490132959590636433797006097575225034186594856375449936411144308145541339589171892394165773143269875350987892767676469897375238653203786251859009880113129383864973923540463209719918370823744873738298899264813188109629561003816437956778298724521014484504356128812946248108498644267717556702567661471500062440642871156530951447190015145748501611109507580312390684685699082552532870702903104578835292005495389390304549810750316948872960810607873108591219099596628006995650576509552243257370002904219880011472243430373818647659312294216196125655749186157413245425204800423001901265100202267053568322928036099667212655149691551162655131385318256240506263042409534962326407870753094493482054860583157007204558073186581221623999550997717909418038404152036027177767590666444832364706368933708572080561200132953188685932224304876756555677329091271726521059138015985553821523622545738843696476478780762036986410810061812349070269118824186113126595009839745844439635407453859259449728420772379650349940341827284010211513773835831798332422306313770301304912556477491956204693565758100219652550248289516414517325291474526406992394743230631253900533648652559487101337858768630432901784209242637441344211179707025328614679943483183083830563938716140271107161645353583625677887964520108917355918711168654350133572007786633767705568900142293668449162201397629530746739955026647508198739209154138784027005497698645864093717541526871731445593975561482288517427541435839773648148917087167444153917132713222189297022360855835784426448456335286024823871492608444571326012562275426518744457716458890479878502264770285535631915123691836520763673711606202594177935365741977078794199034506811696138332492951938359649917416967968064230726401220954178520760082273560441878780078013573931584395196617211142544051738465382600654618979802180960150992142741593955958220601687176379702688585298137071346875938946951375038636269173434871385625595183024328764795008111023739909562365581437488871447513107937534698071957772941772689740162196784516723164764530142536821631588400851880172761016031253444888886783929050016788395305914366419959868752804473628141219175878266539021414666893184807831353709652458828085381134342484202199670978411594993874738836939619338135865685446982406839694178895314077330130868836335212402929381835872130227577610979454395162697724085906606315045328033922962621327865571351103525981739972695568319648354812064289670457734088922933932840745938137309142314379050714854423070880695376945864576077894801818702010603844315965722020097293415581849310482538906351380181708337903786905998111113991224595022270551970785858225814361691187708296988287046061753769957374699776794272545391016558272689619366773018139925740935719287689182473794447473876890972170097488519840582498001339347992918218951667450549573859607219795900651830910858311460638767145240980705723038650277441481683270374715942526539890924109727927996408005218748349492696937609558511971137370685622218533212475932321773615440983678378322205062499391505729423380086955618383640862950730434472727845266269914737739293077864533409607248130393031048208601106143668547735165193437940873989979946864496605955102815881697960804907811611357925449405469109696017676931857642590911535503996062756940939022874441007834643433077768367203374157958962377087366201572632171586044173283224402016858964596430690454068094120097457348504525183447653499886150107679157947081451551223677672745216910718668844303887845064195745969749058327480264017433487259661104663112363034870087955194800497956650749132781893559702450628505840200686772237832854190063021469457798715744891753856358154385385865233280720926966815716473251255060692186314512709210972089965471306267808724234261057625083709683644591341067696826255651935870380975208431725923273382773409730115979334348019243834560286495335025589341357760531274226614692199089129528588652797423946589401459687343740125069352659274194762354584548040702556011199710241681262580430293530483773581490494714374421482480111163697565278541454781841254915569562253220320444348315313363692000669437411863291867052002751022856979909362853330923560545382085903057865090490155947561806916206229656901659454626892847623960799531909420906706460803416675998805560330036313460299977686466143638356681457724178781164201978372908142128087117557584279830706195863757369358000583660649037688507976646658029269633795450209640448284528205876648707077981189766805808583463856622204466531730345531374934714579009428197860038478293627766005754322001556619474991901684428296130256860999245939718883810182892764552883205270789115505201779768039806763701102741287128498379925912973199898011061483208900098049990218405630354264711865916434334513307711658884900350852006742410230621820258768091638832286891943055708696862940593823873109942135670090654862355338016140077451595033423154450894309919959599485275029582858500794233403086474682916017897472784117021376015459210138161137598871931355093132954996807324804272389044658078858624488817472100019217862097621665777526288415625030462494458924273076965066800745675913853813727101696213736512661179225462663567754244555633661623731698993882635358002942788973008716565445555957688258634121464645932212501383919434775674398632317804486746432314734541070171116071137106804078063303825998365957345617475329125951550408157751191592468163896031130868146213551597747731702521577585976773572938211283512963861808338116393805137261064174322094264139492873182281502673633422646903304453264168780894027048225026305788115227186538380488161770691047378435107536657335891220299624515414829726982545280423271951290336050045830533830777466704323559901734955307117687997510128234047549605547009758196033127362791562644082679199156059348792980201805090647940558055259719923502264664307766647275856696586149276434704756362396869871967478380433062821038661276622692190850644688130234219905574938910775327102762739772340438419940105745210684829224971224461284023586704635130295575537048972017905439229501217058139819565997766028732827399514415922375746515691598341790513217398395963627915913376230376066541389132516886055283978090041496496562677647658378998822718250245542664236730207046079058591301440208547101586498581317241192971928011338977074709519705534984442269931581674331810791430225966553161679254085540376953103763212814313839187496060651970722397603876903338714510303475943496565080565635629301991833143902472739449542111273708342042601175551938083397391598878167269572698423005140080503160018330970438048668780402910786361164884617733557252952635882197538214602407871498408570618760665122677890707330337022634318873500432394719267477706126051512713250533356204073572712309017189735359424287406922052123997013603296353402247613761070676173933532553131317781999990084018518369861509430438734417801432799356943650033086935123823996622785562235171209343733627407662090994161112245374855214932952712869273300613248974982524256560862498549217714096184827026463470016614331302605772934429570036813436876562435566040547392660692451077922351014088974604578653445575704141114639980136501514129992553766849963915875162843076501738589884430862177708649753665175030014772435339809212456050576385915555603323975495806099904324255365722876616373103165337987140728479434368651324221715440112829319883168402730515947080117472630648077321168644540294522483240524986188349205439975534360941282466019759963028325076054929021679856122518709588023053499991598913704205854838164802380790910343652725211862020419819220447095386024514030338379488930333698532945222012658002813233368636361336937604183845541377820577863087002799474746316221855202592501132172618093137636097660852078941310831347948910416644151474325500916682240008450332480362197925420373328887151266031059119453779626379324694664362716776107536674127288274849773163816925880136920055428506499733611937608452675621593406703724981239337676258248096505563328428089691853906905877723096972568625591897286983718356042514403754138286212772718613183169501702548718950641472956259098764487780287182264570274224342920538138574826540418628238159038930428091875340956533746271145247413283333889629390473582811798483352680045963021416914413204029673659817983886231961069474781218700380886140197249843270985934928757675608381846299510913536375844272263426897163139068181936356016459772285124554938062757387389477881704715743382350960786397005897056051830819441647320467922864811952997283389696602547452269586478464408768516667408567109429245438977451560240571926771979793128046395952138306808673951213050647600149442102231892003901802729013580013934302894334599880308631864997257676591393641456244217532047084656564098631831426347740743012335958129121556604042020399840202784009368344724916064706295790025607528204207814977202395246377857817099174178431312656223920124165945082935801467255949032493861060531834400246459662965838274395490185510692619370231340689235386508128547193903144762059070187767466858730482268577058333528350509057010114826435878830006850517610723518167880155450220016535566357813159503498815304436731278912823016435148862825208799590165345659895369094492305453461412719996728994897375962490782344440754361109451189946032933081375796701541930043472491931640551873622662805579823119146249508754557679413046196331052219599735015116802500932171678517028972876704153631535214487606778540343748316391811453618800196014310712797403232871909495560874605754327264012358974618325784828923880363706590758571536395747276585408916592993691335918752384541035068910191655765652325165970349488035550971405674607954291501080718054395537279529927582001515427092222789201799472944687523893272664106297358820334163858432010667931358132072844255042138705801594656098200056805220904967351283352858931511608260255753862538588998943379001284731826979716155028601325527958432923350528926224002066514659843233096699271212749862698345013197785721642425508302453601990609574742943416467119989355196919863827547810024298782707593279872092767423046746517259767570245122393810220905469503085039307597858661564265769191262281848864313963924311512144397257624770284951480239730539544451475207103578470169694142742980363404451537453761926284581113794893644965635503456057041310889890546299078241528879649268874108431995896568399473078233850709702880596253732876051420568189866436132765699035153004494765406968531220587023564213260250534442143081537129850886101218559449143514475959021771156384266936279493396596704287388295999354673831347411468809734933362220595929006666412708537752292160636319207228212203853263729592091288078115754096160947289849066767229911089995088559982665202090556106175757695649349959653977210933029846903559982156037727820069509054533020439014985945673006643389783764162922542474533792354094837556353688398472123777869642950292267071232207335220443168479825213171724710470977161109910743995568183710170731978367202424567131841239392256285399648961001229535653652032943580292618554418446345808387927669239417090067113013765256408683733860281826280891103510673515650416878506613978663508614132982083795746041520880009957425974225378363156389821624509344018707671370281960240422245270687604941822649376596614322940792759065242061412943171975669913966614592715052211329963815458456873726206710425886184366382963340160251028389470047160863103940725970090971215135137545674691985730096201147522030623329740459067232868751206552589741731742520018606094770273368649278419648793881121431472482438534945309431229272769410104041731769178635630968006099077745004172247680017089672791190731001455954367578668030826821804109648009799645064405974271245825632566897598662586057509412204894384532158607551695694627645065354114040308497146540474613023389670117570562626335117950365769048711018334625426259990453754812853620962514855406767694290663099450789170973917227800913265631993367569966458921733370173205453175774272046604386050682195338820306379114559299483189809167700085555966248777928398063802447310223775713585723534092324703138440835183603283669930187420686279255292384692141694142785503642261966520560653099440662838070575005642214574148951551823381116494354881808040342625794267103865397201503464132851208769203751563227672017939574361275985577155535209299709222922816992116437625141704203239466331375265718343206155551583783914620010570443027349772451290775120990086756267151291565343977692075634858672633961534499906367387062103578011650052221777719864278809187602807029307504829545105963691777267146359939546251156659564036289598713964651235710896670830097298625539690562697739280966875542909230658893804715767542689756626443781781637050574555314256007554235054267917832417562074548726143071466620826003997972030277334659924788742454911194976282855352189344497928977526965832076031936435986280288765674842972819655754467442293384142002975818691007316792133812442137913106064064896476281341644464005819749175235612734052655027826235437554899000336004756596679070362425022432301348268246089418301928529444526167565734806740544389643832967875252820851107447109307112011292024256125267935095623842526494998775060158715874225671678169111372210011447621488041713319105666516566818829627355933049857671522082871360543507659857565777020562224044773896615253092810136310251888781656667039077131583298460580582905616721673021229312709150928604481255573538083882589326060934091530177495763962777169664270996710436854133446020402872317592825537787765566078225823503219344364965137437529547912798137076233685962109616235422524679069226114563817938372604886439857155320055677864035152219636270265574625689590300551198103788577424772784647237088026432521608953365699402046252506862805014958936319059030418923873121801688620617700250408421120820547124023540554436141088165616888589192930660038645938232736763242124563825648110944481521667866104309043890439310510538047141639862807846172849104800694062352881652856340652879440918854220455896213183077185868105035894585174926277043739252760147895349828679702992542999316031494171788672325130788658542479232319813972002363650654205608668451566906336959557001959606254634329558018862005945013510696310364551695295579158252257240024818680758680272251598992295250338621420810369585480636223235608504947103865698648656439070234392395145352401341907931662955016754944938445431953354168860373078818813693161411572688660618098704877670866659829469172275983863485947990201357234041491730806046775227690261847247604065045758826109776009027522524197158323683598799294239492398943941764096001459683391360383194999352505775416077402900649320836724744166837987742340686485968809991733976552878645202086923437593500622444607812574754587325508609779706047866287694987876137192597892743568468277964606881677033869518924545468418500158942862265925653018272782914927541389482036630712705905803420213896512765306701371249589195965453345518494647881114429913945778816793009266755245590270446361270012310055820665781039499607220996004556483082679767895797858488530039132804995177839767914773283311524518898205886575152238628958465962557507216576841815447510468766605718662323597867139145761266518141575085990653742726865125094258428208395348006941067260872926928685624286574469952761445883048907156108804510609530349563456699981724423670042231755070115678091849750970202359260151711009602688358926787392813056196102810956089606880817548492588213617196371101260378857312566517648208151949522047306996273815860608099436756220238006399993669472753319950356068099350320797965759441009620355790073829271094843755915056655693720621712079357492393614167696553559574120110076459346974584172506481434449876269615638711995395684231896278752544231121657558016889780807405791654430667321205127623660639227734260356093613782267559324102333974241687551616005598998900869123878575174867960539080155820426076567524741830508176071476020524997136541908352539403926599943096907467329633310008708470632457089682019837491200535037889250512167876228805279335701472544351962535829066134937641030768727582846513593882544026683129705592010451687871438561603622734116966708178701565409576102044703797531271996517453495240747830493674054207656870603108571626518424360245231318928492553819954869793176085583578224551954314047666567421319407968694707369752962324578452158626321492958197232157613670195138533339647905970401362788788318132422921169909771804451146795461581737536882119115052679390040938891964397989530281087862560617280494245827577898947259301239853861594073007966365132106265293329739606286625406668750333756422888393287342502633317533350583783620162897044492873632820570813087286019518572392555353655627981445219037655233080023073842004092670796345557807447659482324974506350737779704982285900129523437135613541626467735084692852952785861979360596856259486807066843608691532467388669576837156991050889630227391650777156725734751173154108696127400831183362600606522746007056706575893814938635525807696483240136063813407884594804929311747039922291098230089862452263967235315493753318135998591319115360431553890639943809202322948318139946000401671866059374595618953119985015400301928165736489684553000893817230544947508781310629943998135367105700980198819619590981799707772532686738378999267015789978125497068606935092924018722210840614268091639304912216556712186149038617737140104036773019839513850992763436931694265098901480418972301777171463300837618772959064060019139845381060313250715467782952484254712316339735540614416245272052780227849562061939675128099700133324878968386406532089504212148226889285697501991054454342803759980948681985711976681727703611544574788167405592641233032089092750375636184015474275911762491884837537953938929871791457900317363236880606641576237858491917185119128609061310005312024521931844427778839502367800623708497286800648330925489078980003165053900763781625698533314989851662922216667422003754287293479162183977778514330927371777838472904266816424972000658516714647823053097180079307163534972116154945249626428041885961277054206537021238152416815910989847157671206803046370056877312077430131591961442006861696033695682689442315242734394600996419382393196723006858782061013911934829782030003476334144223933232258287740024552019751404833990308403865756919724830969338066567932591043523510112814264957838244073792158615226754824996003064064663725548993734816154041329347574729861098749146163513522421132040447827250227529493125966936969716363130001358532161178894276363963160736618797678305333602414482821109048186216456281258188028402503780150704194122203124288524411409135158046054208639162167259047005456111979628369206305960607146977577413158151107082227062044716386425381143430592518233058943444183935851747182322219249895758115695065771325946697330432836057566942304201743203466162610118763778679359219084320547321571784464191243698297067163844963106562742551501497364033312232024534729424801181946450898531920603169931020817223951220133648180552753379010349627782032623560620598959375830722289887834428236863402964022737972977593495517984989464966653027989723337460458812746478602244020521992672606349566602322075445373342200639273978849298887548107518046667618346672028424731131885791871718586775458983359557235494394231678526380955110883371482167944017554936460857453352324432914528076490757987906307173668721110796008591652958399018359961227310547155671381999942909328724703150193760221956481452340751928071453804163729102778991936127377239790586969706652365508436344150272904084873913041975890273726411220167444526846190554982772028515652449135123562809090784814228953085196552395226315762455879483807720242771500373439242440417397629199804694006006900875237551122557597852464936378226035691772847270181416528764747158779896369648473169156730730113530186904848699625224841998140355993251533803776535734369628243601916868090861426840901064983803682527728387346642725253510541551915017713214867413169584488373100438529317384036483921238826758668187691564568462220641744446239331972016680079787088550815784414828814102686577905208951996884113858118044395727828501884565006432749224093819971897621135849119312242003500381165061558312874300903464018454875117072014305953323836310084808695876482938687153225054283976082936619077714394671257752225150954085310574181380966887857101252443037215112335495368495892237376301989002083554964956140067418677233896139340008211626337565820272788891604916896459201605736242425448787086167230140689451533148517813732076574698027806799361742331519008033294135000386031708798676365684888526618039750016254566106935524441775395381482256201568657160034285886508481287501578697805613013298462003480953407909912765789774583023029637599889622892986639922175585051256138868320158119341406793225925500769602195466858221408200013262586847918011622365538239357480314277010988585051213158642384667129065380118349891188580834595675434298990023253289312957068102363983764416882160207592589460420977448701737955007063622000743829617113823663060597310713425281206001838398518305145299232698639871630994870422220448604762170327041535727018303975978220816762953305362114666402170306856153575879418943906029318727940092410739952987685153678592510497748265618799015938458878499250210262736599209708987433652187885175160189850742564645582359835671972300185381901650633175530412056083549749036813855395419895896774314384137151259581713728076300985328263167364560503016179339279370227267314358317584303373481102027767872412330590131621065920633158263674470170872585911473815306878935771623136825913940359369327135876446419133435782077919256624757326825744926104069643949744973822541272066217570872729896064897884505078600092386929906571902086931535619522061716804460534223703312631651393178085753467008882765779165633931473986231670745492086941056973470424493702824521654026571831643150064505160754740590138290676955113031608806233159141506230572341230614613367106605277366272079528299568837949663667322288834501252960341824582306993354364898283952692984996148673014396678511717325697346661922009130451720587012565739108218002355814615878222657198899697794251619627865519457394889034618759030076190362574852035610950098147941138601558558354456319515833564194584058030092239821701053094638840871692421004279755520006268353367436585576840563795740821852544037915375950032707487074764021611193703225631953117341841571164389783509816329457138823977870054285058583353533866913644022304702006914791562715616844053096694417603447429456970133077551057401170194468094357705823296814118042870333988514811513133672188070331586843544816541829766791897754328292801760893855045387288171180581152310208215442509846879386363501574056758619893272950512348253955794710367305958040470562794388492819188620350357348792039710426005261126155780705409185307363501497488808207710182980766114440089327645956885293702984707884565225707368417010736454504785404718821915828278528616414391108706027985717445252129739193308426450183438693535496144044345279969236831193759644164663574257896364325333554515470298161941362628533437799649283226953913308968430910860691045522565867749576908223838889863566584874531507276771162050856335499512994891522322738837037187350809567996762106453812448794176966375023926047105082254993468978380812472318725650643331844228529972363887404613346808548569233694308636781871975077938413795553829051484265687407722865266783523770699755794834071123686498608914196289232325802011410294016597641195234820337937587224724811233216584829051463869979172490526448594038930675844135712720093237972012577637981531617879100435834529135289778380765546912076473717312529158463087304100282508414679430594317912094487006038388598532206754317239146581759784773502236005958269934040054177467829368832961983491828369002885934986030017269275105057697575968905633168870661150874840444406584377906177881410353279376369592348870882569592034795478598200770916677590703632580926312681670119186253524091712638941066419369584305120566764918953080067000359915451323488128312264721830512255889825869801244140321071030898270625922175555928631253718431287456059404897129031143868990581405362988450126377222113493173136520613824397361319054470133577095097283337262496884640417895621786415844512352554416095154984960320020973849492151642314001987639334056260437071250367052384250656949585391843456293077350055310708616433044680240731296418687887056063114854267288020062567427395694592242909224307795047658498124176636109062754354652905003208098692610513150748553105656493408353641893715200134109562833503165975222259727633863345186765144341161894823133196630208608706302847032387097551215816189621530707176551593232857543282234309010745453062776215478635614297980651026691972858052791176354740048358887506661268127556432182439079562235370658745801664972010606496137705121254171206410373905427173204782865069726778305087097210561010399930143817887899560804937047130465833334205235580343309748450251982844153685340960043613488420816622688864615903141106576961251195482202343071553129385692382870140257937789626983294578103026142316467487649437910526137011866348287883837318061761988844922982285966775565872300070428743430616955423067204752097850287938510116951387966074800117927406598502516629317388053716395724348754666920713076418500691776135792564274354493009969207416382165883743273412275191410152603213702457381569020522377044148393254296929265896626886437637581174690599988438381543983380376258134464451342495351067914772746244401132980576969369577214925520005352691623072225778105445486393559046554482349119660408216853774950462312732662790990422090307384920379686844428980167561797165225946941109763184291669299484638635177292174266672654663029168390762370524094178304019926638523311479329886007608651755137816692294832021584356277359177874044489741317694843395863612106217850691854529473303951741258152545911558856124288278618099083510089752179828851901993008993357296506633064403364472894304088436753238566818634527090418880075079865642034550138482332993364243205170280054668540147974203556059938558842432420435979878776362068685089481893361572122635895141568081821234566805801902342290639836797022594690302578060664605022600225732858396105500135711514427273006897581010553916006261007057910507303536351635915388594710144834050406125116497614686194935241917762287789426338324015647072270228058310839521596867530436322674950524654112144143201880358629525643649097631818594566177286249958412492641899046030443484754714680354838295395806367082119866355174304114456441956834879765780089821338431140471891619109333828492318201352738694320183082339325980348049513512675851546757147705085559702144823485545085593819762333927626058305899772150052045743541234772681225594711984254701322361576768680374243321345102837285359997683820095992826378033268659047899512791098418758147985007421192847853059354789590190517095158995333799165451285686503988834652785137924247418218847523560798308208676090399838878383279420357401235061034098398730223276674127429074997488854014661712278470193477704177468168891307213978436857030390795441067906670747685324480537970518288254471839285405161037824789338842999356007526861237465756082190521488057717278319070748535756229751086496016930286253764743530504274235692272392966146052830832740153077868220464508774550629931769485797823651311096787417797481757822190866760334924055296907960311485000060522259556405940466971079799812551600395453130958259972523753873526883603082069733111216021252658437856563965673807400895817210588130556374460973773776641264415942525797900468304387211953590338304664945715012931137075345228400583505621900948833170933035783485920385012225136476908068275212606511257305317348670883559678666828153861781463644366860897762478251983172748563618429639692315637167693281543540963860177039756234077861494451775582756452674819847850676101336486071972358174047690360290691323298723702887021807874255028979929428636468316330317718026581794260948821187581251918345500670325996037518138767712855195551512483457045891472335258967101896864327224272788473467507116120565502526861811788520544552005702291859198182243634430317228528728239135475855511010842775912951632277246705009186570691009855477224193969188062350602182579180947689834781078710313832932906520818098868568423717168049689900310643625823047964208759914917713434693250295558073823829128959842065612550511079791054063567870637734560842723254152698631938467246198371604212261107041607111346724117498651032032459149703172697650225977358346409362334173099322574821911097011681850168770469491447106379239027903500578261020777066067921559044434787841499785233493235693293111791204999049699173228592988516867371264829483241125150963034681613316002235635957353895459808852754774813247784745682841066782842495859942330042641407824624732156416510212241805024054945551254019656757189878634479121377118074501803127151539479279444085181545319013557031434552450727250881579389566269767079290831661867309128664743984999307441971374783109716890867808689041636755800569138466673683696376037440065881622326637139200941130548169638357969527780661239565618052181767351383597837566471772298497809363388406070144605142978710563882940740203754280047466323765964329487821600592996636170549654901599991810515405917552002180261338965612692336976714472641706168393020678782193149869500845638047800546483220158840610785532367473946855705225335938638488751882206743217072788116042719677645168131465088259994192222942084128578404492596378549948069153148173579926229660945693464805779541173237512999855654888622714473089698350013969873281217695476973769914394195377459583875314490987112474005237702899956437360288702984146961924287592737720072371594699476406440547508021905933935495253185521327718391618259696134365234264872664992665409655601932374933076670684586285197100113598588150316148966448273206789773045250948326174091732741918942160384722289374812981379561559331152306125943852440989380379557112295509544427918570213051197296641298963567158268055777157023065142707617687998220751728391392994791813583025923596661277372959974890499323265183347131238586827019805395334329145440481357215329556462182656662334893083754870929888720369616333336080530763891455444187281359999088691210187811379098270732126664461251485780138549987040724613190510215973440505995184804009690464948724488701766614109048149435872147218973852852916134463687371153480907467614778673444703739168792981023377459143234417149277808560233110041044583584448630075060068158265835561167097126732165611787688699996211898739189260686045440863915268103194740584835377655797419793064161405785861371081748142200200588492867056973688357848767790448240158708381789225753936550902524607824775340009820241251921491211657660955582118966397404581134532625472774824402462360049939763281582779299421166350168868898282095740134418627805393909723262019883344002196540909098039853132941571945855376649604108931523446160276577692985616117219954515780889075867116536337159049620693620316098085170418268544944025517422910426348462120069388021526033781232659192033520574976355026753192972098048621465888067841512860797412177575021917401745472660712820296740416694719753868446672537044994255426513511243020538047634831675105947213519920332208759449961539707347357230434424320155166052232186909503914303219560593453223805930569568736479215985844781438077839012257096548479211048055374741807932871054294312238881636859429885346033264811869100251873087047456677932892170297132859008266157565130921177156091743787595020905453965153455925395009765006900860225783401158943842753871807752668340324749236685171807238224867221716454006106190235769234184149110242606291225217424547632941949151545050851554952808634452550706582578572647809850085043747909177379536764856951316593757380217218580388791894685243340450674178487374738545395165346417850845249645982050599294985956466044071388628671481340880282316022675522083099779789665229808503610827280124895057430233367342304185255996573719818242975933787811666931738401197778856637959670010977308353362223785105546113459462457948257339733092425149207040464397242521454945991867210346850482477062445602833811122784545067919221123270977097218292648292776644336701496856738824347883937101699783191647545474895547934459659627162182254520263508582237896391725602507219704706235460950112769918817853130895141505209419476067886874119607383574422078081939070015535613918477893381544592051916544032161179268398559616852951754226969474677762656676714288558655938144510887414944562673935470866135498781750168711520620235844975380543437478691287729337240910969428658083417288420845236463448331388385940301882731687629439564170607677612684343355462290093475686837963223859107420787453215423182591978247856796187442629471419187651291687201607822349901479310291617517556156307167728467625637678271124358899630687677614330489980196400978806418202254270199632459518117566718236041384887210210775970455676563233547011647818704682052768932302933960504666265183072419372800731907755686637130773479409144210886813197387293279427570544097965715399473913803490404018376652091437628816831123243837112805146172082392904705767451077057655374914358692626249344138031057909376199313933990012495627800999564772761819468594194199409678689485595967692129307218993255931225851786261588995795461250111710894714103905460669394301275942621060642940606243333543755945846578709241974189160118060689745322990997661247789490117392961731200535874089757893231217359306008608005458714585348039256752938692178313920290227458347170978993157039398191050805188230562077372230660982091241640692436716828398252385781385336826672344885314150441916610566880983547355416760372961706687914616646790842573730008909047746903909189576981973586685619870658895846718716860876826407388821782858090103610404423661889368012782125735183277923880600608586449451639822484132020829803203353284074736813199886149397467410170864337423991714855024062901774971134891895106039775881952580403138350444268851919582466336875179715611998125448249808950240874945916016788080299469962525264777588549797430982891299371040931542971615405609198657821128648376770152492599313537299088126111041891390721051384515110064861116272821344963731851279716407173659856163229206834889896519513785931726531741149543456784923205918491653635074896006885623718643506108507393759630913087414791177545842061094223230116400995862182196978477201632032418223470414859464266832010557048771718976781417598966505304912668013476453272701313210455560369089194842598436957837325880266202559812361680121936869552751280581568937088348970206917854595814884010324223911988792899076271351414411864192555013210140885889067913067620391167990560805106968970976603517414244384911616795607134652127150359743860821624900714249201309980866211118430126725821288442949026931386568117952238633431245640179996834861734306710438885768687056278937886087240414336349720339618855899004300168670967553415929285421069425589367920728034444702085003147569981637830099538578573687228773766617911989627057312361756558301095973406529116334459848620770067096903258934938362365530121556131739594649706891695079649063269848770472851806916573111616706969428684268670865513458164317646367437427816547116074085695905973908518181788408572587330634490868219776361587200613251467446886747032461748602746381974155774250002093577965467323155607499965946299154668062745111226841838205702578981695716955353148414581761279899153957285077957220044193647574218892788442923312347734837038207789080729858699858074686129666592519109395707351762216339061561002633342276674052725710561796957351275782353731719876002375998640180004065976342428827739999548123961697649891894917696705394376723383017501582932184355617435798933982812577602433469746270122273217970508282014220756725792084532285860852081675060163502940590568050982843083397051324679036112956598906516590759565128984580198520308371953183798941338744416552382239220914800379510603725874744726230760482141051149457890351119917193960281956954886415972467758095564029090744200237149567995640081774046352705832993000101873247535508567625320537682545128639803743916415232551238668677443881037596364023938188375828680445382045904422744377244574210222088635993171900256375972062170495344735140474846151663175488258234811885959285489809240914572519657068007434997222573156191991857766003496646492550606008606569752436222390936467091755879918974673092601313996220412147432903808200530135945136883224967913317247757695369535546554082534210544932989277316688022965744451247457891783109203722217609765188042574832057771669314708449851224894276121734008586615747095465975505059297592905163080074766726301350353444557450552744844269969653132739779762135869432336059369737728381095809777932065150740554451111989164941616302675453806245137786542239570074876695024151256830152181062268110078079398940281485666890117684525564896501423035666981114922365371697611097156038548927588731080012894519881689362841402639297914970823805775485555804679355906124961059278514957288687314943621652878684602218885160911888581443765619041361657352332743516061325392782994332974583539526609242986819791772782354642982220777119208066037787658530917646425548611967828640034738046493214768406355029333961930591678442897503774579393181970871681973691375580746346074867163576463504167141028892931449878166501581158618520842102597568761759554180474542126257328165638436288845016231918108288445748625623257744203428744975429163939279647181620356231961579101116925342009745893101419991107441808042811780051088820269689037680262234668851722044671609944636148796300084026345521847253951868380056389564941598871067147104856741657057757644706684378091034722337377586358411695460124412412208860460629804348941568567834383093175024030118951877935847177375515639847790116060889861518565370881655350314155308045077494844893071978351047127026433242466975483899291422495226939299804323231211247154888319148427131415624554812320018564134020589623995468548087736059388547376197284581464706886287446196413644345374793455625711314598990334261902226811996200174084835969376057940603896295185272198478618417957788490084355102914234895070994897594523515654527769764307149371181321616745077845497922416381927939701381019656448076985656681951540977025382073395115424864535670298668511315233477014642602133290731331256350706785964064520112821784626889671521245989317068480045916626937118688185794808242851879448225685502030769221557067390621271519954480179520666757547920964231773854103072229930019413336943891019483338091893937001563898728839716611510735537163155582875871299673603290123650164083815230126173749775366310953386680154423528644073875952220445403904046929450915967303251924334115386678126764933944996507538577372529897445549005932333156300277991574193002097716358291081924689759659087204913316969352735484842865044550246767152736940443596873282109755367772778580017630777529154309545486189661824070882645602438354870516917935836048904668880476773651905336884353195223701638240517069786227128534798623934844339620718871494740928643158963577142864664825430030938547324315398248519535916719727152480035032114519502958198737708181054856572538922950056597547378275727976605534796209755391976888029019339850316329201618095111377024525383327010090634901597580596649131054798021419563143190509378854855421977274880989174990751438648838338359104706284610535986661494643549392601540913320309445321602483039638159683947268094087079836432089309008823517394547084766570991573683203259302244036057656610675225118410035507320921846707856888383104717709078270699473290672462070858595281129974489747965801994247265347822149086959287862376973285110267141517679724907223651861731412427812940039072680446038124805196878421166174855785240317455710399716793019994503575550395803472759162559045367847834882205989136614476292421823404000272534741253754210773451534804477476593849014925897519112997659720767949160639933397144149353462059892665631573560207862846759979870373810838268969899595576485016907536966298337994194198482600829756727526125227116002127432124153168869721246430677100425967749098560239937698050571256939681761002909678528701714752439817997125494785268228121050150324905643067777163384136591093131483964228421930143732667563768891316853889469729264715944261873271304106127862536105632111639836645024614967488621652189049552494592928442141403885928824141630247710801781204575013111492740962531429181699174717827973942449339242446134120250267645220019263839782677220033303970083453056149353011187861984940625443096574455374529748491332865211761030553885620601172198399061925764954556215035773754301714421465321858355702364396738405386508158812821350656196958334691953281661922069891012133660904880750275562807764958270794419235347512844208246972921433665490749648706071035406486310072197919980310941540435632052528045938216964886778296954453075828691658720738453717168300366291999928050995696607108143168248212058770754046764391616522193809896581941203226522226238062969596944770700079866581274644607916800052619798286472776285734794570032954857649790801330616002412220262276193116048992041677348536362114233684828513740397945300448219004681491320673147550927828234187660996522560267805380871077337606555735862426660009554143545968802795676841310679449913260271396730918627366777895112393724150202301425432365284800366876447122681872521045410207888912086885499541352616671778956080891403109480809236792187580863034062672355149639355404084871414953701019816901704391702947841146288222222579162197726045334698918972941105909421000939388978360220603923731640525514544381940029435413038906750846488662168608120111064625669563797226372749614022490861978770737788687001694734499263726385588749077383138862994753715921187878185707701179030902683204826262973839898042496251762204394348292192744283553371094503185517565191814801796916719047106997787875582812428535799486829906057809574610016926534037892339992841101317672200297002075683743707078960952769718847733272604776053116259659077480163636960043935597574004897984261979285186823738775773723783317500030398160840387684219942669969719744645851571135419904683639945034816531159787509620989258245867820076910880916810474797303581057532430629148414487730539520818889270723712118621711270997179224510827157086043488790926543516023789000553426066336609310936856764963913317947923207055121205105927161762474777762004288201169160726142942175604623349279854151700254282497987276514443805990388469914359446166204214904405329165312586322746155426029323271757774264936686735622811052763751971690683704117551845739107453766704040507389570248671968258385669275326086610839360780310067423350109729218224658420845216028582049018546635688188782343972693264934751669254196787013619447461211531826349729694344124648279286635450053666086351102637521947556729161469048678317734461189578581318129900101951545126669127369097301998873360576682607732833308826755300151754453130854085230100255245789885155100174169673240167556471377920454674014282876187337108843781269703582787456484978536678986642591060508082661393363090826853498575141802148265817497065960723032234869901420675051373966604606462365708765786579821162655766122755444571248961666669247775436479226238561497020469867568869537513507198257851586175427963881771361949541049005761996765449002815834443632715939718368186025283360641972015158773020395482949403593284942113372538330158993593101167589571608210582139927108113498904242222336672966969930192539117828549951700768152992090566173309355071571303962190222320313409775895976263914532837286738041115835237828355909042177957896823327987689682413969194963136996745466316071929827466957211428336573018448052827186269473454120829410902995516384020850374572743080116187609494543802809090337555410438138171962521607032504190542103459662909887719389477020920435822763986181389167770843662825965684267625044070327075962352202442999987253560409212271879233047919309706845223903367308787119345499567909343277229427878383746810551818479120014804383106092251304777085288135094124626561104878950933820844763716420385670075278700768539091536268044489580005713455087300706972902882099631550642882048124566580326706389987442744536313215642179356655983916513286127038617177133115631598264959473159904147644397718859211142840068091437679792032198176634305295376934558270770666293195495775551811274270010443162645132321763170880714886454919950709732008894248673578800977000193870798747870402960585214508903779583267322177844751366789042847243012947980640193877706815420609759127922112152016130075409528438513528743277026925034345302695475971051995514798562336501955160660510348752464366697206410704685123929994450600838972574660606070596759352586641309228061709344438671949163213007763785620486212764611598577228470532172484892146458451675360452456545313299399671525369349533258816681129392211754383748034721333144282364796592292696048838090850061790247374261512741316996286867006338069081916285515598850432852706856801911769838480214850666148053439069728732627697628028546341644734459050856708670234003174311212679523058664191819779254577047797893327264173330763533766948820004609383323541563970028299247947709686381431119476513139109438222735156526434179141963988358177239038836612168832738761762353008827849339079113466370843229152665821113356576879314323156662499179050472974623059728728644708646400886592077195101660532600681112140181751239608836051378962574671638778881169506807015836894913754241641681004766501447863468495757214761700745130175737440137157037179521499974655624365050823617268260398372515051651864363774047414786374066947983279123804466860647717607369754859159499839009480184446006978357839076009660401402669509082815154954138455227801676576112651597542814765489511963323104074922587848665612802832880507601749126251121198678739255562446700146993675728298324420883115450407465915721070402729877899225014035791011155270972236163584690108951854475635615256628069360339599594480718636925591150063309250190619878500032816764551688074585727291839805628087982562899253954937241863199708196156522625894784731873306088040153451750496716685736832421966688892393685539605406426134309428832206833123967165885058857687915983886014442141487861668317093008252260897271980707229469314747352184665471405565784150373919347363648053105215762597006055233060586894407301244529115200632256668897484755818411921069293480405969032586698858980254642598840792740933016642846326388882388613413076017232338287715683214406213659944927726372131927293453140374129153737464033023815978950981553454202041592286962721961523311325786775972519878012149043357110467678638270352418087731451592846161819798954591396036560197438019689209849193760173883939836605682150749085475817769677872866170644310584703268125950478380357351701984731897667947390573761036828777218545108439417250544688423176107400871563787492304958790396131437456943961988172913985862852705403382736089177470601479814801887460522767175632106495798823883030418566673407380844778439984076784477015081124364549391382618311890229003625606057541668554486364401932437835703788176698077458272183575594252544933869907302635657687090309449991285464023097027289684956892662405270383939963049553672787106201010211862839363113662536804035856999695363787660512939102920503889690324274348114620926882291393107607387987418068015395085785379475133134612732945729080586655102869579143477394179071812664763700071926268200105801937502381402404855178721987119135163191906376896489312371584516130668832934209674691493821860583506586196784529985296372151198309275693082572509303638187731055793121548865477261586786398411704878756382249263102478928112281286987211829527960754720402044407834140604067265382115844832999305154980357888985388291365743323719508016798852010377030428847800058199343037815910710051555743303367105460746547015807696757064431099912372212917756341510790687504014020183901277583314965835684622494666753213978241292296335358720018868449636160261688031301293174554823661318746160075082671387811202633474562479254120965982529464216596853002891374617764881508749174699594892076938020691778633260692010276025335259708372144282527714319782732722153127234328270775050559944471254657433037207038454205182874192960532459894824589516374275585446680374341815256145223374852751662033249949064636267512645589217615239409849766180586983405408355542145490351290630069144277673894161155625960941978197603323865856698045733831792692822282708323796613903091507428703426492342889452626557777433768318750914691569332384128741402881881806755813519211569410103999239677714677556582229493315097154660539088533839282374022834870895898296579679491578599520720794190905838164464825932705998424407346626358254401813804448576057767480693487854092879106762828887803359449331590949970907813852424185167280125951970573008706087740661660136744661160992491060456536038850041111404216379022331433926511422391581533179047687671341518955624680529731610638216828463179582799259357777033749249894350238986623941983335658857839718304161072377433660114378679502433902851925151707333707140867468193806477546778362964286469751299686641070476942911913708740054344214361098030233758876369284729720154025902474230962069744385397496421561567823177687086311449713667147914131063408638908399214914991462529262922519087249088693812103461130960090224674241419821498180320073898590743017147172840848190393380836393753131134602268271136048132752233349284915888002305330603088628207825421713564334026785991647024511692894344038258539213535915108509051759954869283737161345153339830245630575574429420595621527079071064802712358986613060702899334739731755313413779508716245105271493593034093621032242125458757218280881154721141007193662683136465785862069740827750165519157170372852536416494075694347474757854391132632254348561394736052657565073809152243937693981790899971661969001195791032822557697703501664483855415452454394503263690334431433230844814728956111238331167472826905569481513811714035095778431345919727594099482574709215240729384604618825993620025884916398122945818821697900101261157253109125605535888703820476144888615552226488901896771076931225565410943973143164745705262676895810121859806114266222230261025248903181474271915678608403224618251244311481886359282882978602471338257149888111193122170073407110307606529859927652180241154196192684168564356990917470542849510764385659260773041377475845865044428102979333913385160718745650408768271423353905328362320215859670093157643346349933800954067445617248016050426762605296139480639847743095245686308362783128386492486359448953185637625217245095226372722372661556911525894528119275818879332711110801216329803520681573110984698360906925681681588971201535582509787592947128017475472407850603430020029133587494304276508595627585848149233412781967316148482976398628904640645418979896997177126060195449320737755670987336323674978305848898111563385211947544939636275800172894683431855967257843586098705612793723250762119592269370930047337053816141555091721198381255400465741517780614873828532693224553322288786526523212789296144876171434880001441587854573313259537868382240995634162274854702450028818986249123919330473341938131485402141630178464043126370288131799270092812925661054285186558019877179660405911012264866577776253102907681413741201941292440831157239755745958544778149358175005105607997936435185638337198170980664664225820315337584447782341808979107259902802625681050904109823063674252844424041229356427298699990591981511175656552169943836337298280564542399336038189164491000554579967293070230710547678965217504610254161306062271921243785056380377250098255027959606382895625207180471546954525496060254581996217247377903321692435484266718694333281788146011432487777213273894946178137485425899129598612602874894339484749541680468307722470027745122322716734086175836276134609616593932253553636288250078046869896762323019998930860269334570200385163697281056896277277545923879013651452980554136610605487018461160377995806218197734890888903572974195086269680255999313021725385018485271715959357840567870101146708035746268050045126048900056957984087766648057603988907105055556726828612092362528474951639698257166825222340032171487880206681328637193243280991581598126820234933019592557124476912874435683466331522260710325754111237255749708775954494801932104119589080867783718015914437449626220980082471422148607809939415702733865545335408980329173526482434455918933414927594343303769932231971398239977370075381224436602383277099034735059542025827976854163076506707355827619688521530910029182944767561232809989751631015686740217441379976118674021154701237843861887962578590167512492676942497042814306491690289563314597857626765488352800311223482327491558881386055648748086603994171734486491797964828895996499286368576835768323139314863995545832782548939026583082520917853081330989763312724417383108709616038376321404344536612871108979896520823583312903383242192186227038362710114600277557723109108030317525500519520646448176803819963187984811686974646751973149635992594587117647019829743957004594059526088244515261945789872475704218506547700300105265399377647437125037474251097891250820157670253467956510984037556918387169345904431083923362114417338570432536747125191159087013674192525350519142354411522206657496394822660139557266478032839464972980747885660829424936201674300989811615323857799150960035008731725895945382185668665151373028168268740877544154216213260774933770568509017892204610996463490982697446561694072165620661977759191814494326772570146970073125777780933232905231833728238537060552044274859911288557922033628221420927001980514950671199754584695811785980640558231853523629872605840160160570836646155042113133737293451554829736622505444714917448070299817297904542673510548682868645658553111127152224436901773099996893684975807861181221682137402842515640654062622849046241072206606793541526820121555215132470474322929874236259761594138590777848043390475438710327156991094151546322074757717702723391954996752541286619523997327022073503956513620053249386477670000098531182529715962850418400860767238195394851786513909985974974079327890909307517041008234050605929800717239196611332074146500034887842511426086345711104339372847247715444914150091416180638594308401010448609409895169021159122841625399892658249707459768607225718426011871238096410565830920978187609425123673033397802141139679919715211520712427536161311228142607717466482725793474585132012541643438076708280467625706525790529093080857383045091244138390152310760064108351210046801900416737401115461853094396943046346340493996587097179750261478526555741786181770894293903084507673854005991319614411095874361486406164385416659301751612291215575717722776851652065653153690795856623641506075282021589864571324212734962068656025049315676834465326808192403748194382820616185360958636148284468554493125470834697871057765044890474949414704769227440420347645355425179856933670813070214686712970525289609788584046113712262523626258980911938468808360179929073297477991296418811766512420679389548078214918387606175711999502292359846503965109609541146736858128600631934584741764808112521993771117457082589660276510924995878751670217540440467829205657507777218210248581946174098996799021555978072719961677334198111273472025704241269513602348965587305216235694441508474668666770908281824387151310379548477673495915458317750548486251734225294649845044117731288435364696020521666028929190746954429247780434044408981153232228302596589645418695964261427652555165516908869853201247748235333720930111078841898206013976248832207474513368395992426226208854542268435362581707730284072759021947421328935202272468487065412983916775915394638299746972537133323138523203150359595663364182987205134815262331034022756737559216730086567075970885581640487130447641143615401460554168396853470743862789950670433731489103908211683608317314980924582378853039357999290778365308669301889044798885880189585003494788990060019595655527447072211910753030422523326577551122540701453333522243831045953286846372151710327336369737367618683189270481420524680707644757853998440275477435076682914977827398932647777635378010217045942000585450427555356410315843609282883329238857373356112240037862391637504123660101114252432478675435088830900138209333821283834852574804326551870487861109399977376476251734549172475240190082506178540081834857343511195091491322236663026814574540635129844956361288628322654972730969258669197769819072643609428462060830437339751680718444710574799854923570738820542288375898125447623940559808738354431572976374670869484168270330901983730683259326209058925756712798095292272499098995733392827482285520952121518768951550830061426727847508412847622739435112555980257106071579695137413695749882418307374743762640448899730290202093331282621555297954859562451859306612091118734896699496554799882458252001562283067491317007920271228289443050606832767916078313503268084669910718013979365629805493045886392073394318163762194579566840001189057949256088145114171305424996836086115212950176980562699872802028203878909613281149729138771316997476415177344670057040396287290817610353053002292977940297819099006714075597832929945169371245332299017878567525805968063335821726506070917486171005676559370773210144016339195798978055006419068201805136602293353239713272533796831034612542603471466467346203328131526938228160380235800855869398979712657329997816843973452646909191475117548073395241051742145318815626231036685875517793017234811394717384045317946791277336531877680272323922348254494658404594812144402940924407628845991461161980848611914398103504797278240058106634692446913897836452459168868067842067805807124728744875716501375923395214855459364319804226596563654837536950008796154009017305961974969795423055679618025816306350281379077344835630348693993453566735316504751438096829364154685205845158502217276501836409115157313672727475104903041114580644511673494870272436499280907283418373948674722404867623867585407411540881459007169624980998381629771349877299570919902704700771160149835880626549614746808099580918802777847753367647551113665678655790316741062582535125547304740563516031692304549058079138334382091293873946152578590787285496424057762377924784569960932986174597533497699572364886891639403229623912593215390458097287204436266173288924028203324038155311834195079717916763424079007770136156313682460541546617662099220416152266301844823330375507784626232369863953830043160332512423867373539099506559237743216017335020405452736049664196475968673040219955770149479095171211520168410372506249946332143861159037611126420742904313270677375415470146329436869048440706489130717534697829915898261615766610280328117022801902341912633293207171644858713134801553581061757691319147221578746360227321129961585653054178936292012421799881358302853527826412330861905135696825692023474844701312488867896142639650282949279644682186857435276242281993880136505482728382836303431597039746302039266411686674645278313881645602406002853695408735538560982032052964164270908164611355057862169302758037187942496732811013696079278692016989182695874090290589457156484509523195222816294886580681543296932272658358466271651194849882594557766131933735560369164087814605306204143241536763119518698157783014470361366790475202042348214167761399079065302511971299510053556152337581012883584681809742989962061566383947968842029098479726909205222202885943661956822640078863858877817496850464057294379753564508374930376623736419958899362882410826750172649300378489758479455163402730305250137670044018816543064917353767800402262703226170945025885500483416516632684071023516297969111523263535307651471611126273075011986587690592400224678607362977982231935660860153343174714935064193039986417967906346488129175334200718299099429910355885998327749225464784605972376849405984047502279584850206446551954369865615644575803960057172550248841241362432216747715236559604265286510454412498931565427518320826831561741545450716462046813701989632269682606021038539500576858181764180307278235332619666819645051626605674012098464593103204238719494251283483025295039033900690225759921643096240619260074780213271783619005963843686276872360168446928150608674412457561340645028428007852771129706140487341800818045054328967713235406228886465506823558407414942235036474433450081490797895010786110675414494015438544048968982301393227729194279163949766082967858302608903495933347134418400297584751790820238750712368010661315621411998915051139512944437468099419570779892554135210264391632882459741775446037345183205677696155765794874881594752372894342153639873608167489477517245580578612850553332195354554012831870949421557728975875081787134602854951256462471209699267028347846461593760975224204517740576692394660583317767717807881590525001268579615118829492344685835045121963186506135103967282382620655140443767004879741726355970166112367307573169455510069025572814924545393724153338207765221396619533105317270394278103289493277018737107526437622871717461622094724379707240668642869897034057547208542864539726076137551224465446676368958613962383329179483947475956868759317124674344678831802116722906180319060246353556853405479394317680768214418204143507488133686596276903495348779077932717548352038799900641690005790956682436767630622676060623500810723435930472976188019792746478656589332590728644470853228180053682646032157264712648234185215346534639241785288275479914544069784096852713967657938156047575641258652375898397570240606991600662113043748443089790054206517924336166455821635401903309317117488738945612737557412840382531222355950567430781500519420236221749798629344617258585526574931212204525717473506454170597864049768636337521299367007510595759949293521519814186485517060595293176725767855045001483100741809525604259027546720159590116536954522903792047028336984064073435284493467848876088370927365240578176870263474660829463165725680312555387945702171621648655624848464056381138316481767205721038502710619835954052590014104668667955388900536212123299505986991718339576622260638045530022477272491500892454586267071476209519925280831506063421526435482705158518830477316184480268838850261505051423623248264864057058263346259431906617413865585354599970726821961943711514984764309494876527481667919310706887530948359682007871095133811890834232422973591578714150161211573867981841925290127914430654739721778226372111680995440694679117519685469745205932028534813273619072244208226257607383513814953573585306675510449440682127945245220972084524938287940344884599104936223328095052062930032649862558436320988719049541362380863577602696693048371220972569080344811045695328921449479835957744682319797620613840628241556729849284753112012474901263114702712466140006200275720067754918509657150685271265945143168781443325953256156227498291158937117687365626321160386322632558742521499934442877601672746198814525855979654474141672746419073444705280365967975255552917029088342187140590673735276802312601227660263443655122891937388772753386030511797047942015000523777761502686022829675402227956716803361245277521206325460850055493226032762192695562902789189137040371231934281777237724129248224581518904744526157535909056537007882399998989997157158940922254886337793889757362652698437141062809213620787108357008230783280096501257235999730481639762463082567718195784117056925949399670591039844284073725082142203040517428934506968319016271164791770780691781893146687069040098559046984419009797767361348243699433740799607311660420541861026968739099751779705537052460176097590598252647285903293240289431996025527952740382550390596816665412296833238409904513185731172579873073760906136227565092768832748670952938383974755944054375701579873007409847160695723541904906133741278312782790745728221775747733341299691108956798468834496149714037334642873821570586424959335867273975475945153479653109184975756614083640571220749189708979053481199452407151882584554549954657427594908742844542598024254430411024533204663761418573753042417546699605684075823585034804739949947959261908748558584253497731500305325234962035017227059515712010767161681389839961523798108783066198848759378674419509776985479321063902928105654275918571661524363107563904597030291840490390890667827228512695719421939379001566503861196897886519923169678759592929019999055103567936938244403617924771176143759594666006491019280187370480134789040019009419948893869063872844309137548033426144707072255625431666087350364561005730028708317352193805085688838246392537327855561962894769116969911064753065240337244791244286787890633469853757889564981684271732102750711708057288699871584382796238175946215465151021078520308193551043800994904306170339371910365541994752131421153976327829343003195728214747677635060233169033149375413239749072305259270907195289426225802207241557838169563080757514215279386260232772432522743781771834401721456220491457575235767378738297267121440602871174532441154060873121246498210722575732900323333865507263532947486045798313793254622533421323749110817877649722907253515534768545201264823135656386884085689726525261800997041980974051098606716058093039956993632267403529108908122549587866537339306990305486252565367991016918265044029984016991532756561847552265713923128752613916770526793077525206906548228659871227159364286263023640501640408785563753124519060419828150729419659618937419283450711161795587943720841236984679076438465337391659167531932158710703706301216655747603360303146230854400174915336038116826298257110328220568776436679556377159795133485910052852959017505421156009536431659601161316594292064400899442276266647508935992069732853135524754299321517708602234130151478584278622102788661890654691119423888002854143899807284993078263568269521315443476365963139155093052184471426074068832982721398007073271010524492505164403009221744048684369214332556957303778307939433572794932533338243926083840739044744228341862787831437849734694372677035460776011900406333951210744348550231086799578174728304081120916102003005730881173589078309660750415906251739482323484900044550876272487051299608110201243358596239660513894697779435706798853899903164712045831078277755996877820515894194457701428122905638312535160264392519013845175880405777676370505830082904342991996620199377601038164599657464463392903694652682535087954238629927468272173138274809484693186242215679352570988348353389325917778307920106330386328004138591609053381490080902326845843483141900188038854544750021840282107584789423643030644539135955404730103498382457438420732494694777941710596306693957859318370651245763328557958746859412395519879931116195302123056146584935680716508293463056047552830076237831675735959028729591481775629998316032345952600373362511808578963067647237118200866308903805261976511652495353268037482576860475965609194108457411128890296045159947070820157214049547574393737473930981376715671411355290890289073083605223651763535919013440326409264413733638355561509736406054746744900562647805418331900323643218148326355007372455166106663965397159943327885144933908248476351560714038944168237993866652542294309019617081671377266680722457621348593795409310696668549282069569479906152939718295031510239102902140960986435985755024970986887542364201530284020275754700763406548201539355168621133691758505347321516149241410232434835725217966405746805542329122444637740367418367229150463012851414002809335481483471561326732498740730257217557963167205572947547035710007707658998109442786448009250500618235715694743473060669447370707967075431638761580028108544670635224450117921077908780739895438024463683619824159776216543198385034796921306643333492775850235131555432684040031941467771802004295798298994328874222022997234035747242380524153799456929516647531230364227378126512571975386791536824333960479025938332567388044201234470080726596068789315108655585477182270142894009703062951138365577532957270540953471317811425203861376293118106871780831299383223334329488432172105159776414272028385893334114308967593435997544248001677673275667213898729176153098802142084408284427382889003157978654520598037455535386430908255196228008507524521754552087731836077256023292915407540228942781071988396551091578152484037277440745469165862527127631622856025122492871084403626497102823808020508898568638414675923295039166326378428164457467732507097043137413937027704173470392778355351155420020056480374636549909693537767303383429068765839965456190577783976099281772463789370432645954706192957128710123318967821681698410158862085081581100943666621736451375402295073599162002007714644835901375876663661828073240299822200882614189111247562341804761133606789418859074637611156155263622189103226795118047926161315324125321969285264121977646720917723724839197371653550588960081499352909296644473836938236482593949450583284807536775949117272232764673165800754226296069839075371623922537022356528962236884882897836394955483524523908267507603942760877968528150911047658770191019631232200623224365991375956043176364464620933490740992694911756345154256414103166191191923185799226502146045280488742683051569275317311465011976422496456272210622153536688373237406205996419630929041746858901815553757103700626728100783243561922640865594918040207369087784968919549367833335100100302626108060831505856484731328253327291093774639709256585642286862366388316704070974144466037317464612694014082184896526631490809731376183163176645951050271956532078538762661436739594536261950780410087302587541513161552908154181614781588162167665025079407525031052901723864399979983000692911646580208506373046660650507973867380756889195938280256826131352091975865886315151580825334898985947373634603535764536508981151193143615587081251896070718166439439949592550420750440509160507670487259797034110251386481226322929473824431922552857768714915469289199026376358532721024685545384213843670598571062812090700147604541827201305356415995684868956623761030285839830395848714573193023967170656700953878006959049210843553771456328699078513315492735441831076944373566692054658661159410089667635655789685037675183809276531011743245170457491104023969273306358871931755080189682895130186342364880734039613652894818471097132414909645256478076085393015087905564884928115368954777607050753471175908098558243792311249369750775251063574378056754890669869960296194235986031429417315768527799393723846030110729500145245152531398342445340315465281961518482141420050080101413328059151759445305667920273870025343285019496418068810638843839548366137066308215629955195375414945150081386025341837065490702173320804696013214092578409201700805526739677424098194547721782416311985276860895251467097199484907136110231762333042322984461440325632091760310081709943182478104584100415004653124199550727405348805076320719917719443797894311608851000474715550949468813559027262308132896813477960119477128722537306504856985701345608650444066288021901716943877162806234363399028433892623151612557197666338040658748031734881280928381617747031717499797103963169942679152352771480349771150178683919828039208674823498939316053473818513182844507186107524676748230695763459265563094288934655013985257862920565994940051802089185654200905706853841843909247466126083307248013824458728505419136143063466784008695210121475854738697028480478212350843113259610006466602894024840773955497683281149864587778876209165594931126092242661988369718480359059747892745065094389880435819067713192530475893582747048078062850414983387939643464060600961099354781854239146473739483792467312416074777622195269789152020334143919130644586687941591819618489722181783969251902250193834335527878329587881563342232890797689587988163883291100481683016898503210195795092331957817994696862293248186771141923966264059069955885136999885022333065381170771329908107856116246691446317564977554133918100785208073995868881185931431252122490543265887258358487829808293473376642513498884330636883662181066943555645260662707353145763759850940514324676520916547948303566125274486618712623739585136900898800839626933988398520931206264600356856070606867930765457058236116043845610446100361106443119877189801655337818105783019347082619704726454095558449862791669266430972690889376994039582350668918755406115021520115218519763092870321594903086167551165795329999772733493284564111854981964202036765704256832182075879518535024525919820035664521098691161634870304522778833055473676499980141914847926893230752286447926019165482919296962668999755908600890745825803409938710647427364221987156039994806315616180904276059257657411897398476198450527759311552771695395997188991103232672865748840541711439006397458170588602398256461948794031713851543628193977951882998575793065675792821754664466080946272806324756472319594599853349890963612097150156883394476912256954889809751391112727731021279556629850309554539432352028568599900216708825288710427274427155718959208141677084775128092662644078660374206756256931113138323459409686021582423883912961260654574872923180050722998045728078434452650292541116992515587705789819521868822557817797606199349019301305438060629201478290423485451034493768045781094675796237396297079341110685031351702072375202702426132024115519949815670568650110210110720076855976096382594356057623434455272443978063129218317613957688246148086349040694212299266476613899321991784963634918638785915323953577025723078826648707272732199321884310862398888198084838034273296769163771977842761318836474523594279591882602450352083719984346663481025208920752531574830280067659784010304544664512070060923673240802709743387172695327738716869085444314157905880229196924470187009586283563678546659770390553593714758439632538330194486467515967621164210169146502545985511361520058139787165168170268962300751776704069058780177900737080132163895389408581283473429275003624243333672684970329788516313260668031581246614990244245855536014045467089630834932209371561417157816960491608490071124753821407539901996155404252927982403564241475748228584375232027172292829091748832684717767555936465272206105670267182193524210300226936273824433789484278695041196663514267139903559303902865656844701486557085138284852347699016950660793946370750403585279167893150686154244064444688466635198235053763419152463168127316567509682834549927031397719936652016796791201055697317045907791893405759320835187563305727341061305731357242586899288300829382237996512264972223185277887232306679188858525256879340012539006063037517316792857256135478607060452058395410300363540230991065812054584437319415747679241020786906616659341652545912168185905857840552582785960408923570756917758287690197529437889435035011295290008838357681953068537955855505766017884578679712224925064409253573010077207680564901654144908074644836298628865495542080376485365486970947147321079659789684634333630230968387663853011364081790448284979700529854100228430202334398236929244114894968852206634647077047600199519138713171290162121113740506381457464669341735862411620057445206966033180128780863575561775550726884518495043088948541035585018402562241643190523566081888268293484245621143072085470042172026139520859881005350273843569016865359889601618487045504174028407419320152992602160404869537130008440025620577077775138792220845130535495920330284252484588163227550578963842893502486618044853041212313947103464896457771364861436203492461400265003605384019611444348608321473927289013010034288275940340154290692331098940745965913993099294799028665166590449612794358292123952467878839392822670101957745804758512132210098080106201442082479604980474837496372146795768106620615047363406186032701565415739504994563103956725319141960501490077612344942038761660151511446506855755149915531223713524215439087269769349105950414459311049716612918511840562397058872998063196708867275929220413028205599238499242160983497236401584829528551816932705305556093937119249123891703161721579883965898172761646220610245092103152566984137887708794584309787929610433815559722591936337669567679468115347417252052011643088440582626915657505947008965319409633494250742760118576382207930874034655455406387435074892779771593938664995667786245055572620526589332627232884289753811943749390252918976021999907289439142515403832089347456223853689035143303005735489755269302222061880143993177509812986435070270512041522150190451332386653640907253108587729213337085777165610890590282552544035152501622334960231944583942274957034661374389900952434960484923915684597437874571630566524961029531610815122626294470102291342757615411617520444813044809584449360237997211808029362453725235584833285127114285485157169885257284357685277249072782624941165189049759815364401095368911327541888768426639949268140813277220317087643709465105547037930247593100185428155597230068515874611186168899601621544030034757307464561494116991922689574088675818900160945432600458674977380909005703184339521957414647458330693494607345869199903017249168664883385550477703610949482211415982890281999518016640339801577073880392601941132694938486879967179186122626781515281954409653923272140224201059169726134043850230118362727819235827781547235308075162420711936872878693795998799838645094869154270102022789442487500039842727433170702689100810824971198246521698085929282578325290420975230798876054907497755120815127915740011836026544941741052400913326606391106879618488809429161544791646694307522148771194420406028829429260280268678744996024518261314736265009694869311348495367242322653583742205848998937825260508614539550207210065513484803020013308674616367202549613754696324188753184578489282667314321773068082278960477672277569610591485401287128879317933120132342055790853113081201651553011052468063380273231749759764089641779216622327369044015124265658609254057592714291048975197383775828936949058444150897045354529867325885354303925909918042211484712591931936523884970411447075957913375049823481621225485119247529052140736377205537509940802164873056682668450726119259690656861593994562888121337352536252092701926348239133597974879778164051763398977411748781110004037022430529322279777857197552475787246666006811973055113332808441398209693117562264067893212016707491585647663266709652230160286906903544727320145771927323782292280729411104035153139883072472976231258515653930141776955802879322890911600009443006482396632628466222570434456666971281800606603419199319726214741244978578612468387188960403672374450202405487495037049367840753121787438904191361819622500453616089733773270085735252216555681233755129022748735632209471185742623522313889501949139919158962159390162091240966680498038358701317835099452582988361318825589396628593126843987599292194124090770473190535909981579257799521187130752097219769033566988852013559921856750489552201837701443235669446090303120925948335136256887755617396728846361119612567334642209587777645068694086964309926945948898133909587488521461635936951929322114101030699827940410902248041594412371602798760259164527647621056012323469558703989114660515182885199459084630188910320632166263380334787825864320840155389518226345778398277916392542307509203176669167694351579266111746131878684694761984477002958988980798515844307196429816967485098455400749442227455138956102914301232245653945138592498969098730300965509400063305383386637620808003885128684155601628961254726388859778967362493211540121373092080435814843130729052817268016297343493155989420580651432135723711364400130637392750716330407993928479793691823392933867095790869380946017331159296593414660336034041298838197994515961973088365947400165883535976510252826133716308618988296937933945336737696465678356049058231696516642698509671032488848689430075605807401556191080218541431176791100008113139689608131726761291572608892346911436172954693338502803760682316144113334429535540042239139989993599033049857266935169289020459557694649485788856013788134700375617576308331840922685503157997094752252123320991342227514639833256316008672542566654345208268187234277747988402378790842235178200875939567576158775215186330950215863847565612219046028286697231630290074021931106360404895076435367412891172936915064101707939197941319729557629927908314284793275219742838653643572415733049501641049528079646781623331678107437741721985938414622430410221430881303858521805647973674894434013125898497832951967909263459772030617203773554433484275012129246488980545513030207021728109332797960310976965276833078813984830102725442064810360770495584729877197564369922094877501014015006474893185145483029056014119771754079741433835159345485936871574982020741914760387530682153750807685228151739026189388766379456340225225979552714364473160025831982237905840028386957952967935487375243536977035239246559894451254974399135422793585561365282024242948283319945186271241343323608843301645806841252610096684114376734663504893098242346313527982518741013911827717046132841792073167842120083144764639700936263000870814001169469232885077693738049908659188851581801364711254295633041270450622183748726111414328350200717190934412575351782088171026809284037022938880672627604708175054124598762976449172197240166926829174439986543136733170136585811415598029072115429391764807388368421141441695259027322520640732140300154347978753211648131434479115896806694791364503467331191175910107903988121541618997588941530056293747638289151437061292299084017735417502918204868208415005665633457104856377918893291398812336583342478614842876093809048273814809238756748586314189060041904099035089080022372699940353659766839012359027259197551494402060385370503835850856754585875062742498806061712495771226812495780879297058962288355808707381736554241531004361625890949720924043047872109826896898406390074313997443621445886018823549670580133795093596771689336452785887527239156799535296667701570924910414572097309461364635426725146406324941145854190583029927552101482980736381507381265096461282429586429262243699285375119463194763377989535495642181848924997221024906605784527903497150222950341147379623228812706252406655084701786213512370281078866211279100949902600277460167815532451763392178409901326585463672754373401291520621754812429010938078608094623013842669424047766170122387266939359823703510072829450063219116191972144746951166989034033367670636733540243390581114440321508541071810883855528295068032842806294127943734277083896942977545813850639581463566239487128063529340641615418755261969528205812573126566129269974017232700623439625623252944568368536874046960975322210931407906420141421391006328648539314363415038282909208289397471108986297530148897221329090292655904870910203662702544288445264130722618964021023825497956377343661845982568418015894441851430737082313094786527316307675353747683671380767728422720159030825059160564137437372993407561964779683222184274218852597306103986088676353708542590122572884305253556589808659748021024903779490476012366977785994743502515001125474724677723156441236182574152209267856474709321486337416789805212952004424827699898915090422344993055551812363535269500659829890528186261107492750225300077079072761034383866700597022058490584423589961988180975528819599649252652537198276947763235369964198917672662585330588642506472610284394649086339431497296569240217812358136613946328503387114438747896931833242221690628488624841811305457934405621730661392638566453395369333592616657115543053581838446462484877267170608258843333029440746596674987505406286992947701300399647846797227707167867259334975685998339303586724422491671258113711486576919642515131491391938408335544433167350664510285301223073100467454670187390436314065882845404808733104158750389394891093138595270458381268337778058440976797004325973589561635727560862188424960237997750161288028877349742604048479846888348442462912654282158958283014608582834423669529237851910112125559156530401873023387283193918167286395280000462968315920339426288120827452943741950009702966614759857714030934167163701690457570364691545448428069021735706264915389185800313920726585767396654459831200117115497402065424170179124911093031183219528114565788077028562607732786734573774860464757238292709522383365671496106786031138875295846510461113868333572056959620201179209184522524663370695077575818119028755085253497777231651184799337671140343151294498272384035560408711353933616737751244508104073731446117307015777730787882120682497862551386507747752532198930821792741850369858473379741110487940107663921772428472624313073979258033085424440026045035903694651087191837498288231912919024909790905656992833059828226191824451826516997799314737208505767386703561117731629991317621116600091627048164799383393265386410440815901140151996090908125240021525381787914827476919132644354285934086321705734677142443687060407603850603100844946685166825636924835384285206506988923360005214267600046188891567790211251930984576274147463044478797289453983175848410667262093662424014615888698256195979300258161833709316015641603844378584211082319430912984859000899936279557555983120773023152507111428235714238445859376397086169788904603425858134387680192058617840135166589786048271437961755357032017133996060025163239686907931648184624066420719444585404663113748097000710524220994199005652439187047222329274196661404354807727974807314716818302295772195129414896313239099641067686456705999477171734943527852350887279591354927464456669138966294770331085777403110864629480550108229830513859890392522213224657077791812320624980019243691434667474672032620595795561347560414363760137697278556317397493522670243928108759016611783307811477972465170326487197915795788970943147914973300761759229518837377065773274062325006243372690798872055924601780885887994618732873382510052808004536757077877325074062934640514508592589323108624263351122468453112203694113528892601817171807798837215045766679256318807038100386905211657774559305562209620399064813078790317702961457579535925164329020588643689839867901611403324562370976552356925573763812736374283020262795544284732012245998445478002014531431690623805738696625703446300030893696683908929782183054453365340492674337851582359170036196115145076032361900643418322627124622363209235965991156751221804381724519516109794147511382097571764843983849813845285969554303820370170156053180981855280802066054052840046529474068121309129691178175048431589727274003136892886187347131743702467197736171146813364326599686970148516418351148925053955821477458451289503055888846174618012714197248024704548040452821149152902848416751369465827162712090622239799893657213780422335928683315094892936872792464083624256769676104455561482068394948730205149792624036122746933629699661365689880048960309510752042771016957514574247331059525893624777886232499846891687421307877044146330547746954943196760773699994140567387211023570910873183252977364973686817573587862976531618176087193846432186887755479797359489158055776400624555598465679123507019063281943693385066226850800227354381198780186984462446520104984480970299505906996823130053445071838151101264944201700623430494990658252816036426729581842823290656984916799643112626040635015765788735762652430706301557471412896338718574253157568647953520248326083536508866779342802861403015395947511513389001674026766348203792058303098036040425366371903184111551333615078051079738980613017212473382110176628287970299519340205949510743197472185255899865437627498632693545154823894904049273612570458094600537107617005772701161111223188159501461191358979150186881789829289640826311244496788456895250777640106199046329181623308957332307364984322163422962567939154490223425235936357486849588166922610074990978136909920795620317164303601153477629645332238595727107441893244795874652474452899275952604697212666763592533207138954077082863029309531063825398460244935015751237828888868947470035088474236733686080085364626756004997453167685573141193519297779135816015001588986934808948387423422018136947880864060589706214317578494733636570213847245280744119355530673619165460671642533425630343867602042131477919626045680092558445966650405721718110094190768300941946049532138559626670501172524228642759382521083580962108092297579806468417294593507905949269085702650598731635269467272657073283575901302617003167066490046226665042839780463179626789986371422712201602660344247565843254293718290155806368219006167987550215314885112994675245432574934398399053822641976068281774750440381620919085277797730618803064108289506480245358972603200587907003786937422792841093372633480638143527460476723112290732482671312201980612883005852760328200602253927217474420926308135820730243835105673470967664563460851718461519257703009842888698735994903455036928096868180879807515219852333200472565202548513198968965393718473329830573753406130696626151566007497832970244408997650167618473819506663018961319106240862342861241826539433775714434350341493862514717843678472077870694884572858389933901686788022466517498357282347078456198334266902714975528190483641993245967040551016468892104307633800678791570410355566516701031568314203072598348741659466450435941649087376526885652677239925257263306111284799070495406211111320754698748489666923908912147832063035979329528978297641174139737347134933813443815538765205597542744919002498729119412158946235037223373621246049351879160980839320998564771611417673646934659894180934889665749539877439146951847070136733055369066550430185769377058812371258385819738754327657627292668057880404261489050254110616722877459586501580746357959188011372353805372939418485495727806568654476688119638816672493687961306396911583186962314534101707292000669913135590314494807723357407738526120425367154816044919092046366100763423505343450870896724269108084840803042429330707718927211504452223224153650309306790116362724131204635567245818372572969418630291081686847766190989856401861942873927214904486480814615457234319031965513525052076791506863543649743596998024680919577902842830509667033392052598779386891751800837588127106937768098359481485124619736820970910490048521467454325117736606757238766507843578026003260823688743492305570267633900678361159386993952120600492896146389180390706867530727639530228484649080192145037623065306407573374158002068685520180061058805017845669605983399037234240759538930182792818613332597687876045652366427251752048537920328429887948128979641106591934947208101378511600826929692753595274516618850405816760028897126472203059666555250860068002183615106257784112524214437747122283869833720846114515808312291554480614774434223584127613067208792921235928684096621023732335090397804690304634965654176895996006492686746544254481598457756953351533671487796378464643315194118703038446087311585815527318445059976487349033950032442055230076645341211814865988670443382861525527484726192664081709243616700095928451000776188516870432956014955613595961111475179005797081152200272897162646607831532327441181347427158495451856462879525931735020961039414452869088832586289397638955025866915241110135141097840913282396126191140731362814112471591851817444075795073568919331234830401321306446248336622888054677610888333831428832455249221683945439864570709437878811162912616020831418297298398285093506100397505953720908349262997688619225352969251194269983669688576646063338920626173913315371738832591611304382879628560995764708177779483621939514263356440360099783933453507982330429497382463712136342290561479686382476577363582090128739168708610297867965363443270576814986502439721353295343903406452578575454309855906130898018545316571940713711642297137193313751286587765431745801435670300487156957014702453429017927436358267670921840547122133109045313958125780265968385040044767157031250280130030662057164678214785737524188855109399916160783169321353478907527575585471451155618846178904190472186450948541768389599576515555512726695070304840875115653524749570134707442440832022485142152964606461979375166670240363792675776927610962187888946706734590260954066361624016565941560736107836464796760831481670974200445301184055062653383829888376690774054709394565669529383562899823740516511557449643805894629526302779612513735929675097296781541878266765721973790459947289404655689525758695534264110015721685272101998998753144145684495201414474679197365413932815002957679982706179226672956913769093865155634385790679697265764115391007969774223189563584586804517524322357159557595056007641372790285457997510126594653801520553040878857715930174994114089714223115384513348257763668229204943821799605214274998657730740024140167261179255604735550611907197593279604022116025013529102199373492153392286927080075903284395779128546233407770387606695181398622439860494451862633185492808950837553385899734818785859685995470278705107252922362992601531322440163347441363360408028072675006809847646426153506408002466494464009382834485790338519125677867949863197009994549921713252500041899828732558026697507618447502019705214806646171697844089110866808653593790454731495004087368748726848118213394148971774273643388907562330837555699703009183527671686342277125486487218350261838899492614601524814479340521810756222771843057286293403908229543614435219383695987133140406365963086315887494607279933627753710709103366365152223741001699127895342228529996662346374380640614065065549373825940270019980764073424123822304236467579737637145865727747426046581089856897576292728680624107989822002255361219783207683931735911162095489049403643526337356183132599374480763751776119535235616466213800550473629340933026599211608765233468276380506184740248131185247264239843708774345636314354626952834962124585140394853407921623989438059681034373662116147608080529576416953666576163921659552806479244957666746280220356012314054272331778627742067810795932073082072615763679457470004897579466542319429812886881646472574853985718737427474558527285650958179227184292125610319734159311820996092791435635629135372296938672900750492445629562634448083480954252432850483559955310637837999260925251501228396484888747726598918015830812190212932418800019417475277743152202639672126535828924611450928441368594827590935244832866832544741621892075269595220870924444340127072817418427379278288241961380601646214565191642707918301226304122739454083245685306894636657341778737950704652315215116129710072325560578763257843820629042189691840272386936847262611133843225579141262797664201129234736928203522342064941852832101684086021730477903453625796339956498999562740945648214201162679512630151017270756776663211639625917672469192434303784109362237174131958719168633655019836778923684910315808207489011598553199841743266905198367881439109342109647721823653871957845930701601993117988975913389803335522290686704769493896476563376426131415079584617391580469797653561459554851695720114399398996596407902318269457836899246710434251486855094960892106739063991180995450228574610313473192349271052267118708160792371351335515300653314161365303880571321737288259800399366708881254480727997035714949698824144143121650921679258379631829502965994015531926942195594752598382329273576365062826984999696110207469498742212747417068788565920376773320646590244240952631733926560058146012002930457818386546367371506764334892633062593880217638402467596685715580017295514789285136710765024572573976555955721013855269794466499616795473153605104572073767838535352045231452865190053088831928658296625127584762612124368466182237518424534261940003371081545544734964802981787102158025123640366142591640956226218496265402157596255542933653304985556875462442702363189291179201776248036222752522417167139755895218446065947308363200340069412214426839426761515321577826634416813554945903240143246542231687753274961194477277291777342722572970509197934960339336531832120371078547707250615096767588649074786816683018304522951431961690464773691826322174343568662757089671686284687985634213816089062131891080351371688170978330759850085087792422663646079773542133298228388942667279879964723461599624881953650168909164244319184157970340531855710627305217556215869583523638533051268595158545847404943600776931243843516425824145826250074539543003446848432054269374250702756839980371611152595392084908148786422559540046290437190072038084514210914288100596913885265711266211979050274737988886418792054272682059164654891412667936230226409066404800660524973100197252817647224889877511886590787405849952827788964415827406134964474678247697801744310225753307155130299590450408332827602320646471219770314891085467012851372516815470694944389292133261729183843606477884763103213690829232229018593321341299083099310817564477774004521178950388052352548589284671857675748104038324763912117617228523471579104873225960559659359747908280595756376025711462207878711248784335193278777156093147686318885585841074811616470402338997203909599138822416911791067512692330015035695820192015513174049099984718993601103424046971535453828003666230742903580607482429248398984924818119609793951841218083817612765391907811941689964402574883629019546836901343998735800887325564749040528129237013015111058303384788619459278951407975489688761057053550191864419313190954885464199860252518360237238226613928920362313271753845898955094849537599316435352416943987566381357139855159075104589710125658698135164665728034995297368615024781139854346474331982680005931155841524535722556814943039909084136374214859788746197084202807658330758931099886300780899984635685413507352724695258472854669072918437877600769692993340500673705456526749595679057467480436770250930952557815862483177446887960720706760144050219000300790048308402094476051970745317621771147756228451506854965875391899662221115423838055161652829833084852317687740188027944436542974399936428812927195027323827274131466881833677134392442160508144852477573387667224057849473990045724735496522731645457608776780043675440525033226840883259281321347648604825384581974811825721558045258967384019217520266969651398499090907091195199402105002919839820769040468944655164981961572884621698688825619993096438984126178218203328225727461961179605318486351225724073373341962164107975188769322791124783695727982861884922243122061292926973025331824805747314585593345919872252453730918648231379737310513922300938592581044927635938354452052735176706019348663446297427781719750480372059919650824065830610202256522622219542339300324852775565531060368644903920627942159307506116709205443669132157348685620035380513541919387429582804043070105912023996641906179022914347339785300605708420057861544848569669886939797609836323417220975164005785733849524736288988885516429367019622451966976144159554627917834902313203716826699251195911689432438780163743691185972423610107855129167782554442235481153481017227641380257681881140023474394694936995627147365399095549584873120838735277171423602791247865129827927432553332581146859080225533061728856288138961583199739230773935686017144777167631580215012394714541038117541241648618470326021749229268175438773514115496454927249709015791501457365213004895680506402525555795160038849511117236082412662610328679283720919103971097531212783571871332040957513766857539927882531031690637742181670571888732517570551596918883901771710723366318782827217779502300401519344649919491384580686837041964068355444622219404224870022275200065511248039334532273978751195605122897919020701186140192763565652401126918343849654524441783835242734275929314364515128438128300187176176891323372432745812744542006982624479602253204379013530697734168369676006696525543640831406406689896718739144870410918817597489475722406087248254435828802499333464529983393847282386107988169425018686537782759708731814528564036964162899206854192039251602155700938062539924536989497346733766900577968573581897849125159599151281363677744438314017406340196060472374353139056036688856740802712256953148379475810817083219881303716703884858089270407608201704288596896553729671310482659489899176018252052090772731705960256171224064877338514050067290432580277893836509634104785221182061726833705547955536589827124355920767580427434171338189995153395246684362398923849261103736624401067041298225551456022029716114991267083344408622290690253690275699510050708609560035882676894745451367762719727599102049027344730941493090741979414428416206581982775757634875890227465446031157378493752138980245210426238804115133679662804940128715002717833441850734492187641819914529537216297552302987053830821934828829292501673151321902401075589281792050711963457193341220052302455088792186468257114093150019148865400220802378819473175611809542965381658433017047999526276964672775351248984414646626193385784440882958669342930616287503030042478803656528621274495929758997175315627801216406914997028171138064070780783646067973234983674581078735582294266170663413331386501227488807509565896996526580452065305013903506095952043777562357004225927910509310423388555805216858873906290787374971265763593230213034435943687470860211352332558105014610824170384090177502288992060962377306979441786964699414061171981110095488019535903186923436340326792741178686669943339532302102899141753798193900912009491769101708421790741975327585422635715937614616306162801056205540048723780369486636632354473020815027882226913420495624056156499339643331507889271394282598608779861887403265268450684880213679345753862232336570799439324029364654916565473377421255177350527705047460382735347434471841600058092101557029786796139059296599376393138349332736918365357696247443420608336896455292715006768317178469715189532725706755473843209497479857297838455596679155879987634635124403412747902082476742472050303501697768163746648615803466499102730823062065221473394389116855922839982238536548457118165832886750212838463279546979495429508849258929873991980853367020265495601570464843181797845233472256726815700353640141560412204180705428945875383218453825958363153358200672782332166415053079991247243585177174669975968550405469244192784375642379111724203509475797516943010095293491502362291247836321881455186031358380472431353756294413487896692842607203004999089327753599164595444326113809358314038686440233353136417701281856714092566139397903568347657077390374046366402089489197596939369965332109299583483253021413700453563293505142507232037171744306947542361918103783191519678153552968364815004147858794624257841662149163758137767657598996457417806193359371835781424055343069250125312262452177907595100140946686542575732035534028246139148967853851062043684342860662595331584323113355736198213085868979820598996928272302041698615102693989184228445342964885398654295621055125665612513236979171792446353730522051524550287362467274935239803513604379234978688022555553285948835204179337313503967882319030215746855151312938869427695672112532582654908135608761423096281140297591191526117413734103519148721320952604245823269070492749471054130454939369282432220444552520437341989537351199003965445532611176222485522808606527313424787753397248627344982467617111729918103842650100951256576991659855235846410960597694462848198688784247422232400437531415760023930169158340257245994512732961672302938016967041942590327277226337474141790433980473731449011292019916501807086049012040330240573105842269254528157296899387446307478104388581148862457742518982479496232345252748744024798228700742671987292869252605489844938022225939472032928999346042478394050657563040036872910071241305690288470030839402753645160501399784245870271534142871843661689011216582771547058180819988220905043028115712336828620509905528495023411948599143966621560291013322788318009107954745551409818159309416206873961523150868470848065111079570947182369475512661503276391901023141556052987621330907519419429734608511678299542460037783027339417368152698123693240776962591044003996879930077261120094235563306103907378959748828897343915480106325702328633856586598930490559672006498077728224337956788810378792671805550098019017115973504628123724404479795220856779821088154843662337383671274853948992139672838332155918780682152688929651334895977663442463584196049161488713148383232648458525481368361370598635034368576223754622961755106089911982725778440792816250480949711516379446562913824017788479407115588502209607521908975035414285081123143979087724445588891577947601623589309323178510522729855535972448147442488421427040174660560300052107417385523612143626482427783935776416296625187112593318701426319527846779497811157184920068228822776774891067145317386108733463801229351240246756870764561304516042607744855067195244318434777120624364554806497905353504694566106189088072065271913210067163455943630972029080113716291884428866695633229781320748141601351555928426139066120172485411861109234468043984602622120282867818607870631135689683112559493739500845321227295903488087552642648248823511428023002905249174077106917779239827302464261414545642962562581895518830744604834396176188412387408231600200700931420564178452578557496044171953299088912782001546467622018441779053405958787029686484705624855169855204562485339680963042790856077181690261739954783634939927256107510290874623549515919922937243061527915719952948138617176187940860475644123326288002523853487406944229223929766682198663749026676253751601397593442073718582145631140197087795082707200343642673760085471251423826281870700854380570981265105511551319333457358421804324958041426209586684355245261500627631871424366262096407435735468943474555950495266966207232097248779980207943065604057360607138460788425344511875442423400060736627801784266077846479933999438894293073567331487748572730906182809123571530269488780397198638489261893670104963583683085696547204962897642520323969314168071253686968639915351549502102233125576124437884322179129238394519155139505087737706414630735601590472144101007455894726052494444824409499385991840611572881991679655341069157327770831426938813654894135702961270383365008821000372647733325198686966539177682039236220283467642014474685550578635406033916210380341266189220152587918538791170045761774765359538627095767000551303836248593201935372152957019075905519959467113504770183345349410699106957578171251776308126387833709383768434508521745505089526592611347942394731185153111223106775282237359898789124842497480339769232550949606976508015761923176416710802103840411594556430486490201757424555027809538868371964322490808991574428218054024669640881570456854397889542259661617823030555026021587479214963802468774815444977227273552295722102032592006166008869227144008944457970968589378123623666880033860515925350308422674453528207059744822050896761409149530008247866273315756830572536977772600118036709085713746252453084870679593521977485616927780997134805040125387871910265980773225481426960279025469773939794815871689738908141908512527572475121596555629493458779323431451933924564877253206888913873308927129747147648941641667108421449940108654155935465657997906002801652526242058439840121343341142181648030307613519879797226132461394756204349363301304645329764759072279874948589633143592469542617216062252126634069583176427410730056305909040021036352857420467259599783955294361923985391683310399727543242108943467008596682820993860877818096413264582394223763027274363640573660221127533620070202128863822340590545968780136320830607624572173113267164703975317833593805565810916318776698341792076671271793206373862241219066737252105312570564072768722827065517300066493896624093640430424656050960521629431864163790361762449714277970814937577313556849874857280823381163932601383580671377974479147524811684548508959446057203832294836437109718087706915338400014845906905131145020706982583521459704905554099739985478666788273152854025876426434338201625892144248554088777808529548005330828696735062542861047843426768407424206819448752755772246983438143867581912366967765610879534855581641510122054698233973763904487202058548908538775557435329237814144483244403203877446597604876121495611739297654082395928565965375917883204472435345087570972436389293430277785737447756261293889435946484964631956666883415324807053046715122873209504425141268532923591555436278842961439631557585836919151724665323513594761647921300899603763817633247376808385001663105427576561788704628183528097059568065545617744902222636346284108577974828047992042904409676790473904718675223939657689407865893534420814123412297021826679646137258742113304410609606960373906425983098942067217804431269503601764309899803847583463848791337050862544782181727763239287382899639426517398573881711071650370405328170657263046738357291553125200464651784534797494354583282758107224618187958621456582669955401543062273223458370946541953746271921078110291940941659489184435013593119283259965000211755586291890804179888699669051043429021416699810806011062504831382036671691293697242521975593429399948366953597753622930322367313656097570428580278314587416605550103190078456008236289633180255038210927383007368472132766168818594444493451144487718615677790064107050278243644949582863510733588299531734235213773664320869072120598184228321944873232669524358181976673292538208383641323208963502180607993368478505148221455514323886077444562819709615396545006739151416736279889057587278310035526516784395959952734608731750429560961279598516390235443112270308038551932626195148285400941711456604112241075660180130643245736973089358047612689685494619783065037984964276884739912497327351995080238463838767044362056682078702340198018547516649178183538771799377563686106605422651017460855166115279474966370057974977443908400853575322353836340264208021063061598864491851959433083112390393422000131128084015448847167914153016392048074708406727785035991162156692210501734159471253464775952891661326325449072036226478342929476428460836511403703323087146913526284413652183051451079915421146474737868514013828317576059183463679082223437093698401070334030802101545675240352336279176210604842643419322106481446974095583145247454796565544542675539208482799896680549181789132994817575964488588743058198559222538656267741388438092459669322365225849470275922419413211635404369582826661946742097266122116083011811197058049673639187786167914702656139241597149970501860823478744224931680615076894605164925697963446532464465661662396776923593033770750313461162038380324745763799450140280587885490946994439215170088331741199522441269568186953329252227184376259619356888803753730929013384153583650442427457651000073076619388949722552867651803219860190252684600717451453263836323897021740196089466395658866406066179750504438458468859258570738852182605771238864431984743080627049740295364009684246390893799633650244113818215846764270229122127838021584973656003993992961519959579450608108765170946813084313731105249557161719350402947585799806013275999710896631700381718785658762686902649616213975791236575844727725349643239820313103148880122139807176229553789835521804257046493052553608711988697074578686968836984960004288961768487269721798097756341415539394139422771218704774823689156455988272305596488221478914476558284381455108253805376350613443306103210000442899240197720623414539951680633551984399655185545991857774436286115091684453830772918826555827643449908184133772705466744781179814032070132401377798173561845207732703187173104663220125919001123528852903630851781341022789227552310643573462929443057852832316566352809146436973283937691800159223941020922867866202406377185140165002846890716293400897089546128613286474241705972858477098019895497873537149963188985748969006369602139130764786997346680865746628605192729122625804068441209600441972016122451819379705825788645861948503193392829917984202485784147135975758372352300104296037439556088790198687970277377530208497446296977416077571668210229792912592693556398821732008597895221272296717900015478353546202982914440825129854848418935435346819285951966038090595747385784685821737604901683420246094056524038200105989513383607297192820568464537043779183800746764213976087221425775881071779156038562950899087656369071790934040142296472683159793872253432359953811019545028875286666162758509959242819537392656498063085366611780988293601896762815249653130236475134891550926128365746332608023844660814864047179267024929027852073623632333485932217748973651592095024035611916363662738167268466594543257823316688398563821297931410236531338040264722917632999430997080312127167350994725856630794964478774427922164155507982777440534116978234252429742485660521305160713201656428269390835938181473074548672079188787679961242954944695495369692446665394689631008549125709043625560133854549254267717018331211155051163034676645265829634467625991484564048833224941610044118752830887625979632755209512493751511069889748541759805855867739577579762952876980398789004154092779789737554903256083719189368976521707853179902447974036421232263002750996205530248949460850100806564153386489440744843973350335192416639905064459438927724212149736556363695171839498633906666516757757177770287651451103826078607690131451406142983973770946956981847925088227930212532299369249104050337748362087289899155933770211174361858727439999214176349556612809458778777669485798746123906231213104996663915554959309051334713045128493691011817305727497807116044588477802845284844581714152003394805464932295188655889990549715219715379807107878236490426387766741505263640253993541938981904815487023866024984400730160465233387127943200765867137344432831053344500474021638125148655570429975036684596441033521312815955025916015031209297741302267855424523399577687590113122104175435886517323260668408584765465350374955538126575751914368858243562010289273598753944883462607793659694564998776009007907882980211926655448042927556184455059795465274113973170230822205054440418482188647525001414280322880139563561385466828881246401623615514713674445786035004578336242316684727883399411678317726505907230115375480984094718217395558144555875978786583391233904105733831985670594596933832728940081128633825420193278052928209617126390247378277407041148126921288480984072349470068997917624483447202451148223728231127786371863915507042366349022905923121550627052029265419037969731547437189095774329707690903053620866305398356467044652730284570427489281060797318513645642499313633311713078994767296365252431527627871686244473968962369792089268036756244921050675997033712660588922150886109838541728904475171028232230675219977209971539155912903943626543507829850625897449416021705335834739597088783284116443064480970749606369075223143736843909605426541638141094938223423298474980086727652895876334592824139454103974400169888673309691690521820578927156965576792901677978339935702530044410114932071851133938050090445904175721893608283213292236979407244747943156118570425915632017601418260803521231348917311273876336106513454814168162797472744638080913071282084342681922527127244002558087670844719681623117095017705589536230893347490656008653431457895793531252426932925093520999640035894095585617284426478024932678140704356238435367777362810246136988853315668762230279944639966395168999167109284260983829222527524690058147023180951834637814135841995883026384177254498657423551886953642122337050045908539167986034567373992739203370782934076770496090636492669651598060748233678731247038571194623558283495172832085975326774994917401617755165660748899942461376594211008144701063736468166578750142940814680402125546832331257745013572058683617425015091671552758173094886256053738519078451727158935447549321090447854853499069753378040775210615123990187403301057334677292557727326258797318485889251348203430897754859312575504215200185921808331761605200538551162919578305798060115882391569760594058807399501232700728144942136586911168494263993664255444620747556854215657301367067369265558114427548750102884040285679318579342507951134274374796242938733734085560729025909946079068506227859238093782777968058644082546908064554290184977436151540110865919195360159218790202324614997710183428677047271367784254860108615402409332967644494798106861452512557948017583106549287437768526033748316972715649525252301064095959499571428745606892374157017739245375639612142947341435617866449836757480941435047408835949889104703351461120023613495257354586609564426119049642316955220688512889143566071890913108280396133544477515844102682019809567418927841775995298587611634033904622877833451440146925737271755033654244772299924542922611198675529405384880003729466171699559923747317132042169978212652025016479558404297844318860952367738815635916559309144725946084076937658505863404360243123219664141394849096569187551985960178621128289621770875279024545013776352404824040789826102532042459472222614452303794896615280911281110783908122162529196294823375862659009375311277260747607915297531525811403197476288990647334278642164548704219212793076167604212775498205662000371943113472189661027772937668217657598642913770443333791461316504906387213433185987200037509011197374650410361710235874158375415757718428017176065722262613842543548208042694242518452443342314421581553168910604372073104248139629080664394295627806737933317915677245886828232551819674340922931445064136451888034560288989478439949506238274447509319934839549846556882971621224879635687213697032259929186667094550480804569352543408343495300302220004716441102795584083559095135727728867805874710407251780474335653973504315568312885760832713883942872467692833484966597440239614303697299916831452320277867326018191132489153424044723212753759641648712352741198987083402238758440922019130442390691600498851044143280236179112526962488930466392340709997465925165893917285781213496242579673162106693721740562297605770391151352483711132777106344140653330749095140727096100347385852726766474972629406762331094942964526191741870588975746429029786145794194059984402617381002586289427291212801976822790162309588049833503207514550123515897200843967757309239364978172949245942851874697163389721651628474231887395872402921332778076940365429637267855914376359699334683967336506285555122464667198018218375652950693350651747001524934600324365708396769910110561837275252267926198296227207584277061473573189463949749225098151481122660288885959697539213950663735163170797096595178370249154083320122898002315711946519887020900807038825480784200886282684891119059077208923989808359018170416934168605631610806736432588823542174944621827327722451506483701887019591456241872548099448266587057696530468271142253719401995227090459286790987432472414620925800706215017530180078299638355418416525314896899940971896115579108705485381494884439394642802742543540506611480370639304951661136203245072112607388716564923721137290323038826226988430612855353367963809764062425036765271386960805347717279513962850658174138866506004685523275364209789766307716622016784459095984765727077225867094205916736706178069597431536642256647760509943258445182085373881497734925501714232622905242418540832605697804169572244085847129298602723189340510225953880191365347083618214900160380842203998974961933143261359672069022651641743133276085658354738357491531306362701871935867245903291443439588423673678795384152372313890508174166894886247034885018202308113020941417285347986346841464779787497497076881232388592267098186646465170706229529580194057027877530665238592975804706073595176607089618489035531352697441192095426455648325201513350188001244903144419002567280421696179138782468345883756508399259254680226872607329931433049183883383503184853190334431504971323771023967501818863190311643399492813163203307928438663401046750662695329321942487847312101409131533322199959949715893566767387480360688036664423252280817651488513020395683234823661104226258895652876422749200586772405182344726585609135965591396136788974561084668726735023628668483631758761360666036721148067409894080341216961734758342390979160933579243467449745157031715153812837185935739221885178542465677042276367607445977029836233669722124250147527485527386909866564810779377072254333932862062713370524833680394217784905087208710897497048437711437343950319220528126249946412186590086421668098928333018201974389688142360404600468511787799390016008866280415145725540766860055064353244930022538583717332817908821590625960642316858206514989288934038125700837770442639519685068396377549540332551022515496631800000313677241272563566807937660815152739937920349103713939034775818029585156939485787401917446143389067167733688427623737297788466194035681035160641713919236377947179041354224254042639715919114579205984174172295965358078366677722058468288005490047840858520977440581357447537120770381860977815032574815515850541762176770265654845795795244636444707863066786486016829507752030429320254310270126833673815483299191065189571617485595438500231401627138334435239040157630523881769200614671963894235922743428044889511803337069410068472674698989418126569336789099356716301526542428964273942590828115115906536047479511299677342318225861245532340827819613760675694672405929938159260804475707818887190141960555184476412538421007624909445276982457610531207014817588643642947309348920172883767367769593294738294356272100781083039589616619564618381256333703362937315279997522435857508397158417007836561448918841593944295848219990321045586302604098443685224097391674311968885941727646261824503304581548034128467083074056349068549481230436977175532550621911849837146182177124071834579166028192774047801563135425354438153931607307309839796442356886971551831529256353784935761963857225030113998062231821399201251442621840622695471206328056558030816343957344487170703542683651549501286778904174415518447620193612655526419064525964915206072268178706233901071296050532258217416516332334894406479606397707332407184075206071862124595826587605564095002516283292650096442073522791293674174065692478364267276531462797529602225661177541716070375523656026705322352033022831760021983298422238792090426307943300863210568061878135176557633528602824020096049465807534062698501868009007559259211536344207425004181826566440897773902902742225235049983986757849987263949936882576241406459031277863410988559346718313086036924630382441297008850123668990913675418287857039488883495639912179542880974653229248710279016973582997622295042998168943450167557217244616914434712298580523347152853287724852185033620134082195969317272458344247322604978845490480010001108342639926024363505997645972248591054298717747790318463883957617541673631682079463385040942773959361481909163489154254526225283627422265221054320342661778891957074102923607312517777020479867882915514653359788234969677189514198380595970658212758505605940877208603090295273429573041339865383797960297733641314784142481869227963540119168562748550354307711715698902266762059427642616165518509758395570688737375598051866969557774311617656801890359313726779510733417745077532859845833953379783846721479886609141844878526821176242433082969979066228326387419028318771922442327153035513591373764328871402862104033256258548464479762929922561591624298699225085883882196434231678641538529294320511117317357163759585574264432398157317088633497372535257533210512258926699200082308724716987023446429453884657086785303393170261170101562313955727146334023566018585622251752860803586902199380726590780344347121568767656257194201044866578928486780835122814071655541492250642819957683311501175607418657875299271500545475784986765960608977211827604971111546511359644998219618396940476788597308590976141036418890892950296175225428355197933364830644647268275534047460554574804059385348835066722009626591678135201575065721266326230043789882535001094464539019501319386502222116122193212980633557590418399386156066636261351017049453788812645440995453798839505989387725051007011294092785843320565771294365792980892750165100396742138982687687896570049408030878589981306432590574181956278476232964211890115551087901927592182407800619466606923611626334790729525756879674084651372365312279007677232150112498942990843493320396629790865562207280657512264236216519007418087230601894113400822988414265554862003637982983253688611162697657202551199645569374769559143704329464516391576941273298503220868387880477414726398669522060658161148028393565800646774297637227679679391829168112246394997973274792162201802475321993746519385275931369970112179766105871415557690515269331510947288493237924442747643448602157815126687947284013135368454352013868855206775690563833366265814425832374257770385787911457369357263581856746865088167078438490388493200121310528111455929704201810559422063609283518451696900221068949624111086858368463902492449185643922327667986375806109870362517641107353610885629827206553618299784313516904443161680765891589099973412070572240678059052462692072077293523555093379544681629103285569926767525750253373845766022016279241821002267564320712603460630273482688264079371513989742332825161686336768632928693062125472399794641593983793371599669333188805750000253842221519619734403563339272596043167818378061698515833131359729459296817498111540470803286236120579681568317603029308213858802153861884595591131816085010613355863365662218848631482729754537943382635727476396830796056894082485181396915760241738776511589964911435900224977998124981534831788911237644098918390770162049020216096159211194903125021567288220156091231018821399674409120095639172396540196430066708156779290313877289299080752621569906514997745355321151637731677185171355653078398867267091045910173446506306996713375644164368321389167285739500173891908858800394086818655069480206868266680802657844347591257634278825282837963009913041003983549422062693139555880758988195407801882583593085990317033625250865150557194848747615659867279985720873017996403593273255390713517222234453796215798428729443052920277727313168414296692885240990687381714170835017312391325549564368482274967999760290003930575731762260683878075235989228265676215179447060155410627117711358248302193484107396913245486367122644907105317298829289292681148172777243542002860849277552186469054744376894451268662101448008495854111428892143876814862600912072601815120427274790648491383497377311193581501488652951424541897434177744066307079388844146264243224586775002527710255590673323378739384866765225970630384286785553880897013943801297927720908586014242528178583070187353612296847922877150043420264002578158704345349928825763090915867781221453310585305479321381592497997832864317886339749851954890865108168431236544723676979671089579472080730681043548359641793413042843929585935502092432373513232349229946846914814326544905873082570697457699910377832622152565745049433700465758776556338286222489210094875048686785064795927009321141011981127409281475428041555968977450388593797772727451418303917992364631977849956940663900665938836642122651674498215381685360702020471285308591981331154935611477626216404429898583503629921347484745098107490483676485324531394897337219081113558352203538788204567271737640461691381033003887151423623818306654281918298322255881963844165871594356563857181613730809393802549172226779981811366190431297428743015734433149965893068187752338374372192351802726398423339300798375218595818854411326817940167218957848223954339850698769833730059814018651625530640758411309842701997256987488556998714066079111514926109310771031955717933715126624526798716230130264185614883993010418153099034563265627388758419369681515523217726466304059016442022757346799466145507111059069576949222661944434289453089945594086679709839395677973482762390705920013519249063172579404723583736585528293008968248753154549600424440377862075167689852526270396926863211126793927424667445134440746522968652223541809361692142373783136050938474355546689976657071740562136260355832873335733153482711624243287252459816281116589086830277250556129583332662577730225352236905014689202758828035026984617747400262094863194934177445911120300626465090594148871640520608521673403658932484590310960752433098799054353723444995953044837448623345542500681961513003583043515140333791725479013628903270574597610563733371940968379408304392776874562459632067261125496242578120411237777586127593544760107888900351226413506300132601963878253109584434696637141216813292307468038506744585103142388009966692217450621733058791806025050783769015591399970209834209136997588227355125233723013063236084545310671933219033083222221571075881558084689434575868204292699882660816126046096979054962753826286277033439646665781647650257863686209117072823353162726911670771221708275034877124336652873286668542552004589664509399366928219993410503742737341890176139458807620477717756896989042879933491541793594899788181858058424072445390920629998388539827051245772165407768353223199016847905851346450724465937825315229156688426545597694231793036813983211597780444487834596576999217504790680791663902612874505891598253853725098060125763261973874186303898312726766819514399631537003518860202424256173445641734122218698017461500531189176936782939117374231554534497294916677570571960073851288258965616476537570315526754257469355008753215352608607558374364843043743446042635665307127820286565997282754616983622531589210569384131990892612052498496831332299075298377209292285501646372457990372246082033113963867096414234191125495436757276980206555518397872766890950901612262386428292527981964845348320761052102485383194325331909271628422944517935877381685174412583421345216355432350850548286597626662706289625795422517263299485851822399601797682925773369614564328706899575729940169049412275409883787114387902021435431779815866263799964611446009840181465755556711325120910050188836044886495177659942989198153271164538407885932128758661149013060059144015244114759038822203653059452239658494134460499605026458995933961959822230780393877330758858596775755910243315944124797009475785358047586139551775319743427825379519715422929065303134025638484348805564107348639335039574041162973146684968514443972415426593536041988511156859403771850614194592679595957683227345745392100712782625427986689617790139037990843101825559800950143755914350208123745629359069097773643477517117207594043312556922339656136768662252397265759220391366326855133446353799835945246519769054679280551829659442201638104513322591069279138870420228840503573091900906073576060776162954475301167794672952875080243386475871323985553015007211984049414251166236621363896152243513683816098830694476574862061103241292438367778969961063916945873964655259303077259275609695968170063022447338502046419576639461506799680633965891105202251604556146447958997126480455750868364018491337671472921194181068274172235055510091375483527779559589941190273894909581815622444625288943487306505439035223184677105655761815518073291782125010088273261086189175111814585291219100519493373127204523555380033388869426704377317545867147033164015383802476756590698124279248618869649110803968930174713996423730080557103799824629292003460547917084564131867156634609636509652838851352222280173697469566136495479291594986757059693901271549069038502924364114254984603098044386830067317361257603392977212702971105533329889562687122273131168551695935154632973846837361699890392833650573626292958474762450830462061133874440228349865328980270521250272688009343309572427037626249950467063081381224956664374040521768141655277959446544394540305237290714862976828289075625745956679931117453675086674460265740254081960347231786782755815237208498774633969869872428907985374158567866492866400579023638727532241344174093660454082826385477477462038916113303128839046586899662928280858466009390137468310005888457969482510290275912914063971705882271217708435925980643818350856978614404216563388847457393937155529050328582589713101825031612970499733660411810512834806466303416813909181050086589553100206720610827229346131389341070443924764246918622141748226378935399802302342576123389507505522975208605125376746498431065635127578822978196743364176728852503975821166917411379905682025813106839706083931148802893012825690930730540193272557577276447609292674973380909202032836776092688185895035968327511116922717474391635129022193761286946139232946771074599261980263452237953958879699729640877175290170443472154645828033960466451103501226706092007529189999508160921101715343121532544544855359243695119844887393841058183946619348989219559896740251613064740189181716304381523394076041442174086691439885342308173286260351626944411069482284352026712560341445432564454745235339105054351554210218172831734634503371167703335360351680567822484856516159718372443800178992223395394593593421149523459200919574857735192307487999693187669654014357074200408626466944369783262416206875076363658021674040188678644425077167489653511673118678050558996352806456531189312236092113519430259707386958576217975868213445887678444187490813240171598364354589970486342588824563088276525581163207877305654240540705711095695346378112420872822472640090619893887970166860022282916688191152724384564616151349320879481956103088403047710283166491334541822485480331385647107610690492768348443020898880696690482117270524992261349746580680051336611266757663220000728118068123517449536781547879562920093482859949389166387965256097836803119417538876202199503420278534208155428165783452589867225516417047453439853896956194749361294610471905677406723705156847147883237034487965001975602955320306889604403010632690120371916066777984540233392883762674571838226559727372210626305592397314933047171594860516230666917071884226755693674810106892814331864605266211591270541126653401079609663057784270141510912224017220399129446339351325004256296868263472700277072532529540977387674168722014060616865933423678223938503513004381938010927818660040112597528475374547246754260234894529717213123680461042635025747348156818192118886196555016531874486990520119955786518089600981172708690577513650161133847952795336186916890795119962790151086187928007087587512057659917319828913241453964727073825686073307638392697924774326410404130374515498215148507708357329836558492742505597441295385864988520708950356398811662401452893747528323848609424750442308462673289152279499757320435200268108139241622532824840623289066111551682025302595564117147836123942485512726416065861235537568848988423822944084436520813516007773442976025137651312560703852338439370193846590323561851085277853651959167834313646664257459340448613471423906408088300524664703034836422692426749930074643090852994546632875295985725345931831035652532064673442986181789841199315644567582318251390364090639068169286199680785936919968445171215037323979473982267444652131595970896770776056822693609558971488423226287440992120836159220690195360001357367126427956469565559420594666723712591771151756418908308421361715257281270480505475977029494098181365249897026120934429612880098439526410678262423687031383566254677469402736087399075054726610178500064583542692818937626608360432748317744254782982850981516286923778754969501339192398410977095649109827846295169070560844924655285788331662275969812969287688261246474729692300054790213864210023404651743030483337047043902656435764856187855073936973384227604233843496962612611322851326502614965312060811078565368050910826400635833655322576093546792609499225924370420322263880789596972793655773244938361651782345722213177918936515570164504921629432341339195744924507483780714066232843943393521554825291113318999975712709529621922252987323137139110069001454420200733808205925703632137120136856924729822694312312216925522294410006153499958705350574264101107798670077593602689768407457807077259301436225756269606092539681958401260048159809339610250469693356429892724453653978676605962134101350913612108912146275990192012663886519193312411798652909130398115008332886470881631163645214946596951703404968575089873111082251679491096426799818883140922716928520097247612817531306817704199288237242817740590308798972574665160617616135464027980066925461237282798432311032156541456073223713682878988895466090897407544418708114693993163902667752980698542522569414157214782217342194413976524973813891544539241649104545924067019531098103524884077371709429659663669752970742110709459773940269446984285815081597489147548854640583488113243555325393715310532618023592274809370016133094358984265435259515014798238702333462498562874497951597926131463392156855072001625421052717013434088412373322760745367384953469689446279560295571932095309929734670160281186905915287506897159199264657201621010863937678516243613729317777912734335427757079964165654663871500279356317509739191942085582912663543773843846678266982282240144195775652032661258647202851856132534462914231409740742044056743806390937843450467293708708846418540176117165834902861253689775067386512396768890516566189808404297669294348193677974956916823658827812154584274453100039933719589858175097437066437967649852520205522315714565317360649142838241390369942064465724984235869889165768997254559223032316768655083538820116017861455933504830170555341589581967933004395699183729340325887480003207413117870026311356211873320667358364877305477842271678269137686003524725597289686508752936470573894877757843823002435979701368479100748450438580365652245669041281352891259029095631575823520215353150100234253263653770843997938471334198950425547996773469637916329383054235116809585203921114111953698522503689421339150860796148367520274946413337508545404303390054321757388566975871605805098639321897763608709160352023832541290975926070949995063385407085023265866312086530814784759101608474270855631883398814896047373225893818017024591695764489444255026828556707289442085024479496387198517181254649039417936697781657942997423019132030414847410715498323737234341965022908842297480831118610168993480118005971516814993046937536413914859395244135595070846589185350252865794328646747396672090319720604066281035222412183320796903789152252509232163894700455547895345944787526889893884516967108747801138389091878720886550227917360419959862592790449228731142027470947734524171779942512254549886238203790801359388505380542440136460371735923847909855655233505544455720503002870677245277048455667711930559236342107805106788911036009862866289630736536033089150114731190400236980449758210530277775877810838385106526851552254984370923569537455652131515580172876749494833784804509157040793551093837706246127823497992072338574754235111883855706484048653718825999093319025917893373079992981464415828238147137301477738490214330769229395065123272472447791978885341280667282984880889846188441602590987997401839811335782498356060870137371311886371491531111556372104031493303646852261744967334435794587654552848440524637428923493754566772762541045797013705209649438966965406465644071304978677784045297470630182613714980178757615927755557315874637016480158728651282111805416533275032213973511403309080379202267872049096898315295328014370186270695393109800830130200768966387758599626448450720392207499393458562103246808986829934670168792781932207637336680427578524090404239828649509429255785485932493072280308950575073545762605055152632707660703715658712278204446596668540557867935123348527106809735013344602981806836818175637533270274716559677297557146242408836598844905706375610185337562563954666383890733795380028900162897952585640025547636515420843543671247969968543800687365185326529111713122361505534579245553357954235079004951016641551680108092490580466628458468754492323765851540044097101546136083106772918640364430724866701955715701999772864876306989441673757564970740828794436419157189310771470583575054650869473095785083441763356537100225268863149218891682344068390982823671749589318426271646851894373967779160994555571540172655991693060933494556166357683296076775964075475514889883429597786257452442435264743973057026322584826965071698125067915350936914591638304733614219049446359931973302479690663536177147375832201887725282961324013461658315576366126223241537212301691780195529935416921217339568121480935088187502903600055082749277555514007356646858226486542032614695286248422137451945522396564165734031208492954288265567765747931543817812423446044210345380865984367470471486455637842080087352830011747049850440864587697356222897000323383359014127178368208758519027243875417274730075135621204320200147059551441870389040134453873290506747458232696027259505819259245327349211207106409279348602685359149150810138802565598439804410170604687700460318570784380354038406135977467446565320894324728434023283901398749556808369696029556007768747114473267433133777338761527209187330326465001459495815664075029841413031889972490297759048291062234418697992119825071660109458950039546486224018194887139434825649564118479356132833484531082167860917692567655547736131233029352534539509108742840259897843698470290894633473051205785790390173781932185281316090405245874861551242489144445894988809733241836784083973253290735270438883754981163713985822162708947404227994734031028450668919760236594905998299519730584684677598350762978463549451379784011202652709590189126603614896613590318329645493986539553134361098775996039429545309051870542918369951947100696814510683518432552637926245450818644926945508129439757060975060142073874980967334543171774254122026616009888406836266749365765340233612516953149088619267137991068281011807683738361010544576495822005342752741388767116179114858994484285570841637409450395757533318144244250783909136925510371010625147449612757279419229044519907329498219898868237657174803759219507546726984539226532969328377889067354240435302180852520323375384774266823415521056659228763959768038966642151697072647089882631445414474134748466670337385318043253177486974961850812421003863131818383000508236195106378364585260979341395416505719967580409215923389527002724632027789743383833968541748218144870190285446239849828472534413440737172706283519990364119530231085808635397016728016768858589143233314960804166064700090880758916631419916170455065161864723049648653498335811999154788490917718547305163811863255633402711790200233752056281462457969500341589112122789671100572334594822503825666729276118632589119475182794581980170891583883884792706711424431839076321069013990590017129825615619851740445907800802646282451620212773344576791125215206506596171284322643717786764318455173954783160804281476073790213214309465794155342760588203002908867624957433827610954247279864969531732208331423827170990194970935517619775662720064579315543422441166738062045948909987393320697499668447089019090337896155877758918905040496496347357465128746310492452238085045331704210715469209198263045663315741592526085399554754170536590343597842576841495428962893167599830847210715888648417593650341578147011216164080152302332322052598626236211861129045256590698412646471828806893861840420916353145279887947628485641006983198305285167159688270446227623021484194280515992344864845038085212366287802923819932433149780430015019785967770066690346293206333664965005854549327257289112046019043179438186041143649910143350722396345709506646522934070225503213665452562542604274192872780746364901524307408268675012602279154676853092651294963408839566495049722218818039443907652756762890669292398911974636547518536004749081127540109222355420171781434732174773643219486515446009264582020425654092600232509606596463622093691335623280342086993157138219274369264906928031576285150300943252051636160484210056424940974040718088994242340848500957420923930489654974674549034862910247064773553209090296925614056648688955182748009862184720508652401680132041691594266980792059421639125920562395713150791188035780060414430084242060818030372604550165896159711118571684296905394257185917817746464238702412316302201806187704849393785687131870707097585458384804617800990915454391387177998502927109120537201494137689952634724220880201276749342140817908131040805855282718846210405573402501126006857265219987071384470896134618578113374576881505645995253542330362206249004389081476463051643460863583443977539699994422741141648836930948124197378436496898580598207767075258165722746776810112715842504163593796205164987905419804496420443085952312218340382190891357243891451077421278078525289136418470284906207450491705988928677810119275261591447596895018503065705332504184973929085672293648889441128913331168360872591907106126159630694062764612458222445467754264148138045714961102909188914161035577596740061721929689094681900301734106298434100252884378373427936945155284411517979729731124646657584312779307821811187881761298594473833469234795349260361917883952360276310872298965469377909549302266794397841510499725963714716507201592740335572523998425460796796344943399183423317057415625791790613543981134722100938121510555643305603121311760758386202290033622116561573120560563938906552327500063245156131910897912258592569159146722259059410801072376136775006448008202050996135720571128143097240909490843927210189074655635828959885862254682075726879525584547022576601799100442317852232411686896549796649069825199215719146068064341324799916793039792208421753951842514710902304974762498396405981825434420774572568823336369117707161369377166188903085386075755368037341085164209169916178505068636147563853290611573534117704357032457577354335812375211962748450890497826757216412588410923422386084578913355099860147887118142193307126911926338431097021104410420504119403601584923839636614874024247455521786181547684100014879901806408869908605801483791491920483828831960969234829384232136998826472842779879513476712155755404893985460235650489909245039879152658938110312017384066890427252908362595641145899543491809014348006243021246752776391782027533567159991851962008203221954120197987831207064870129773183913346354286797513664603898244776435245139838512605525922558671847751176434541132587293691347080787069117946658371339051874201763676162883247640655215830762254835969627798805568612444846725634983648631405049863052268619191092858083776631258714861810189679225704398172631559078757960935161998312887722330440205804005221725965649313958654860678094596743608375435703537431977303417531604627138071113023000439124931193386257441346954463709376129675183890543363250650256339352320833304839748953549826100047485401177166154362605876543728501291216495107667899868645906065980243425080525117280488106635199126492205470711657327034412542774118181637531313108752839975599967008771436123170991128892640921230619823914726107448006679485410523781676828861611826055925719696043989899201156496279184536057820219990890091520690623137745502765446877705646889692451657152931281009123289282590778300526140913188977582828521411586224647258752136242773596651001017624320904050223435471161209925477504870629113173771358209721188454601077875830250530279511755601973439806212474365431853823346298519459722712012246079184068348042873014819973654776340215770797417956432635952724878974139322405867406530791725556960028927782850123281324824879695193780865864771674757169430927868661907269264889477752533000591859444406048101811739497840123511012603126360773995298933090749820975606961321845976922595659438826224133015622648044485443512191073314327869812404837324566637617483574161752244897029955119498844609393940418748948626775719918514242143679763386728436969341090664252814673886873828878650343322944613522360514039473552020855443005746554987824462852123739117576863948647766980167917897761639826317199900249751895681915293935391917935574643582080833066874566501451737306698472608989189042391030304306541507513085879735238237567497113980945363007037046559640556882044193545632830769629395770962306749588453067066086862526883960941880263569496166652465060323673156974512354355858765334724861749737550312728880838664193303303686413586345545187178078124499001584033516732284895501309989715166248980249727030692514975787045715126410357108816032279078777365462844578566659674615592172292023495840407053971240052393278082750134038555176668245557940983629294158107316164334000560372878985156361613609032899081675873318415078965549847638103732543467728333446147225909213229899564927984792244640474068199063726014681212643960005981598754358334391272146505148305537595138508013913176597892019254553225625089884194329436486896580298715320102590832281293792767302123342370040633862601747071598744017649649508913469228309841495352123996021640624222551597862922449588943463452568545033312879270469421823914047656915916345745167256933779642416933453346728281284627158982968142631447666503219689752622816225774544169033499360067110129941528814664656012635099362609365853268293720216943851487096415931157786721505334437365665744361345042979291059121075808465720033175201901353378954415026559358052068435292784119860459701596656714949381287810833684286587544489451982862334330518468221952172651240524694041328479926730951216700907873830915261904832466559362044076544612411593066152481507754320845470302969355877240843180123922429629987427775115817165846063163325343946143117776506673634968510620687447077317666545114072410954859731032426281328601030766040977029096639966363298241163822236872682509414817141437539692985860828453125133817447168975025374209272176903725208899899245790968681796172203778750270449315829185671519368309615493305844515647263263295119044661538913598197879932239550106932393594218786543194025414605193574676539131659039087372677093445696497515489011367868178401872067321206110283039526029045785475114938486122629324768820482242311993818177660070848874735196051461323725240604277884100627960226959932492854196153807107696818993210578785851668141030853315260689413606192745038163451662761162622568031507664016074251745052880471698027811355651036549633930474301247445961038980459379920507892343179794983440652989636497002740991611292195901498818551465133229699660576985435778869536973275395118009313439944699073580153299326626762633004521497162401530225726151358493608301059979614662212251964329263659620141250807924449073371175076196490295385426703708966984973657840057857141956966414292911192240362374576960040625525775105400305072563180051948329447350404336466236495667100131674607491898125434406385602007951210843813574035344123057357529863502692768514558931827198107209960948109576451164111811175754454982657018685674720650474989357305266782431547011720491066048697733891291882667770389474849822989183139298314498335323612020039718928423942476778438640948961667150160688899076409240949237986142286454884301577098046333284130889011248342841445319662991354029638931598922973446168376498353442047064210698269570872361647836254080637312215612570984913670395658177757558830191616034068392088819141334923161880027821725948878560632657098746357544938575150718092914052508314809661602394745607446849593574686497305749689901042380858385561386031083274555560549899129505552287673932295217330451454458148204082523335594279536446652247696534348643970061661754241654951192960667863234629736818020532692426537649687335686709389384166187498307419361146483905575006695349929155443921637328589878341543789821713465348177901084893857237975560491274195963803714827243777532905448319273082309335532585581458272131625668248961150981269524005634856407613115245551778715371657964840980843877412308814526426817260218284081597270873124073564078409716928428857700192493809755909126344619138481151108314432793060372797321341827411781333735048361791949224039927478944936394333608836083877383110496583228350735635780682340647269905762858478631399088141357006456972271215647763216880426054149417950441636956157356926185785960042250993200215402652395462635897495198475539121764873072236481267278007831660867641505746403378374781701265233959331745522210084009372556184745252886885055996645215220206411885753842365559130117000327862912424643025099547224586384033153496484062272137402147344726908829735589194012350006215123892851864691503834955188023661449998050437480542637646068711021985161518674732778600726203871568450325772902495009232797307118930853229524754842685194921691096538305879240214897186627842312842216778387752215641705104361461046535684071448781096922263093470491391341369478820209944538458008522121141744197447110011531794317683157777270666092971182717012347374382998323448336112852756237579171056907693864724591832808297431156068249116934447698691129639341004918574970788389839688535064976434760819754754277500442305829282696052094384090015481149124065431942274262311392291256911114731820514206902129226715474414436687715140095932015498391941343925722631466303137662547965044561331216855120952775730338033996468233629809583037580147533340730191975912937433059445614212515040696181294275437972382483386164502958416044817015028054046229714524905468692897365000494594312904349516488539623801124057183322707487521200570444498112465852261126480182355785844072477226014683915216481911131105487889266676927981144932829630931666255716076073367052143381841112925360567392571403232778670992894777494403750284808892959184303919280457597805946570460589122336903219419306978839942229188288319469575466034035392912095235228163984994509735747176095237195072604130039312738751842721341289743897221068738566694212192867649587200876055958321596194618262053793807665601096165281937823116451084054220209061410883357878590815809733505442890427779268367452779929403303908770067133244610331883727857735342806596615335737205022226496931727227838572842069845772259022638599868512361416393423720192754851580923515797861828869661374833832761209405222996799427866315378639231169139480976203505093751312361047610114100212346261514455819157242587845316009883402128973607580919193083988379579448484694671060053263040324437118791699050973447828028564023610148405592629968671337729186383272441516303775117269304672755002990513126177056853408929645740387903642600160267408661476764670881921331423647392966502129515597401632014005276240439737181433911365725765659603930457945350629041540731650888653280526062994494462219582414535663692022722725497026126734156950977699836620040501604043208106463979873829642960843654027345249092356158497459297929365279928813688824364184600522260827147242866900309407453389803493283544032203526777267088702474711107271643683231546019998175195780611025368658366074570070292035201309924627005474564380151354701106627938476660187975577303595974287928655313638957876225314836695510015687463468036705191366714590307064405283044869166015798300257167002229271378934591425696663125114854554865394495370837205577596348958687505746187654730151402149467586194420737824944833407348079042105209088891614562474103347542576452709757820316544015467371348151444506577603250273259019156957991247362370513214666175021650395601718459569447232597325181900639554729846178863441191490109575160681792166880664714248520563423046918350131882611648254829227048867254968262225759612961687960306082188715750228897730434109794918167107876791372713340902436139004760908109611544299775196370200505604520240222247769282838049071390821329322644796448633805355020395319533952771770760406485157022517294478658981270762177232077874336278188896162678113722558673545299488372510263035515288449152374616391853422416038030700148982704253746129516164610203943739743914947068446665061049286286588925919690722142120991808503451769203760927235579909022252786585706048933808870981185148824097098859269901355141450763373966629569237988824816675854354951160582464293582193734649942724172206097053122885510399617522162670032326108754266564484419428624973788567631164683920616821527491424249109404999562860594022338528388194688006302156527585300918591087657555722333570531715623631807727257280831821268063619482862873968812814466693238491810493476029228872172835781499072842729527479523249324880709025589529586645556639073916553064419584856930448547322780489181349446495387774327394259733050626209167192335418571830430711589311205729771745461192797050540908996208446877037813066923524887328436504792071952784199924670670380023751629626454012144029233237406421995703289854385513078719303351682472298793421269187841304153905995526719076058853065428317273531448681801145924395103806125074991727021773775211417188205198793550539889985081581068778199476970662060444870252593482088433566473564437449415363140051196592984717381880413379716041519463819379572191200825413552648383474379454234829175261237992761171151162929042522516116430767378501237855714554014677706335228262917362231090709353104163933999775072778422430633668240706590322718304828039518025652505797016858907690531529999568812676042880737805082739403901996194571025852177023506517435139139346622272491421183355433740031950945877555207492553451723538096379509085069480179953747298912275036518554637948992664387387040842194741331289375651714577675875936619679270954239687977100736662520341496385863500417151254149062300879348246656111040196512103001483076626438881781484855901215947163335154161461726000866144747321575639569254466296872196536258252263400839193198430205312800011641501209780721218924094510065883295022244988135592331880962517023712541050599602166570788988396564284740161350322130065055674377935674631392074853550241567820102477936983882286187234656940528184027688868001281650651059415079620106625740056972171842826782069711709795266617387635420020577840136521220374859162562119681636032254277675242886980651242177806410633390635500132615642678560731349044579910555895050841466472500559882309611626938688443134069618674129693856297356368257602261887758373825241237246069562414708194719953633198790961256409632384195264889084855651067506952477610552354479893339914732157289769444043856483631048249705471388252042306364019798980314338218114329487918586080826143641654594494036153300038193537682420017975259601260892059674606201884558188680665687028059825805142894929683624142560127151856378335266490496530737478253219164102949628693412513502840783928955012043476625383243498869994668634970604456882785010721156350035304393124343626708376322042183519097948245454332241694720073211409809326664577334144795806437280219061906951475637425170500805286254360850290603733900318693350458235404289601122803173814255945721963915752961139373094625272513659871336597589682182359118102976785775319039267571734823435539892203849953600996943868232381761575405657260261520442972794720399896493120545508782077541379381612528350892992709094468755076650888984225891362032099312726536403667812547284522796411462691296805231206320144958984502447132909463988815828471525492921177067549410788557546557538997156207581589522536029266027101046330922408140036518423462767553447670499283244700490141383099542506185545614857069811058776963157136992661950860155373340159637417924170781783591503527050858494835702618540362116004439199895067934670967818229050698660259258197859928957845860987457105891765166207612368262617419205985506616352153521183912365435470136608620752465231355032526383144182468596871456011277292922349825523375397499826277767850984899738566056857073547608129418316102916105595554735263194862064739799865319121912001768773890557011343908548661391274070078310344448678880818868887639282739678776411662407701938784916296425774769978094874976706348676481860964471867788193286791269537693434995355634735918188199342718266278567332172503455463045793683022348142701022537631335037084363618565527572212705644332398897355692004643116472547140318257568277084635515603511741687255465923756794691304907406423437771594870995026239548244803309433603046601509358245031367316681159420590741519249417984190173880132393290406299516959398670665603608673640162123582716345434036435358453312698787427867263225494293694947687662213544914419430653656946177516561462098690388117903931994388125438619209105763756940169611562681279961537554752129835511655320846102136837990877745455443084663251009551535485598252610741121403918970791356019338538314008842783293827073971724462685169877688426879569931302686870035258535837541142787199778044618805415047366014680110326504013417779401250473694309936754289348241339146944268640689684461530147951004546843383934498794855899851735800891284659647359364122093070000451505865785554584250992834764638863324400378547463724614577228830525406279767516328800463465607595748582686432156099752691987084690122130153296203775114186304061725872349661579618699653252493964409521674321510435930779037718111246882863389717732967108310397583323930057859407067358591835828801242255481777120085899318709475255810250954538496960719431760290498820878222693095086367271410767312640555661290243088865132690254772622261166049235558773638934423803360669695362350190081617774110028268103728376726510448308835349215114371477061092022878102534760107321820065894877697827940269582154082978226717783761906073818809176054634945433801450775019520717869659509665679543919374223769657571624883766609495926339453121388076916385678797364055603915885499591583148248014509249975804143685736919938027983399826036690028238600780324196784333289182179434683172749651250113585441141324455013133475119171515725333812620192092608097387148681110916991885819985299062635413900359887594774392391953849975667765193570031986660435631771994614626921919293835444991176280877005468492685014638261115789994903623850352685752660070761923525169383824364425025758740395510628453197068843249519901462494677280371789067990120201578345236140328143205096718226219934339960821983525169971644108610187363332072994081243142345446160836763515201473346198075849413672814921583987131345852123562302375618894303785301817248584855926101836000069462110875574444406577485439747214175735462628424539301975473154683769402680989271526569379239572289149615484831428579820278751905691167207921310019629703074756542788193450619957938382515915811048308834284537973576563085568634315594264147253163740530013701140754949584116088225239168550158084996168259333356237976431165651088719939945072782892327872925122825070745709130181295752305127639406773185518096953067014863485717292192851892530523259295260920748257970014205210678998588931995371829591138016735897974302007540724959011852624680644296222496810883877335461682907725937561935636101693198340835319842885335756208293893273035536609275719575517352977249557008234723158641268983742682777968728644779202639639757740217042846920086271051696019340121735502328521231884440918930826656645271459115351803967875834204972466115413183927170603522194276513846358800269622825902549497817272951653373757667536284113737591886926228556277517963839862108320075196107303176328663447720417070434350259310575690539242283187991067238820509892877338071891667150496972971332558558613839504082666352427295126975396339090189403942987515869484973739344545872008568437481446591581742137082324851660264896343474572523070849427320626937818488339507796248114311752889994562350438482528365869123083960337181101770731962992873563830926513067304069726363916493090148052124486088714739934211756841527040842017930291786880560021865532240880949402575723275015927657255187764317237030130813213737002912235414784875189777005626417602074944945000237173454635225726212715131373516154056562660652699703018301037960431911145040072039202285240020546710821530949929952485483387681169223544767311092172319534079551708358920892837034403488293722520535613299453464746180000116719862590125371881464271006167115914590134574496693089192685010259569304919845717161120249349114828571451789546852442390504287294099467912042640398792637186563003377712158936785228971259513990440176842756791746733953899200767434337238881878920346513973727062649688207834173670855340484434193295594540558411112485604303984852642535018368242664323387756712599829646386683030077056247443748879960006522478975165292434917112381945677952746649078618640634619644366494725873898007774081913723257297574093593565123146820622674093275862409754376494644081171629361317862067959922649516875220405823656923425989689444388469940370487895167791932727048036783124446645988181496657767261255594382333998714934953671886199959545563889247008396759016687276365239619663865507065009623353011011203845601574329076316984448489671272371622010069518090895676267142754910907737693007168193254604341006502745965129911769253915982713282598558477191536157569510943222508726277832688621204727110181177433882542663672707926499457934454346605682399127845181782744301496484858939548078793085054268759141042444288234767964325934796036204322294550248657033411843346151394998377917242848956812451316764900973240590615228960125369255870857758137031110039101246114601008409649548687599767963498488287116816817463227682788938482781234340475008868336987671402791626153396337439447205262008683181323240038703623662953031692213499652037067576952206657522998247720910910602061524270274404873423710124949988949899026411209970563648946211688260909350043851948754427165330983244459192592083826538055516702785750909190083762085208312087345865013313281692847458391525870931153190019670544461759233440271615986102173650154676673481444872118209123150145090256016391514884228401653669997939840235640298680326766177014914539139500840489268274488980945595761514895332347027682711201303674935916977707013966688830093790479625480455431500421650548438689999083979437413743170883395932701048073888420209464104274514890272899955391514705324778444799481128256516644968176505224768781674892486455098821303811257615108692933646309182108238029876043415130733492431820586104125356565272893000490039172877929010339486472135996730502287404898653966046584445872904112504718354360065106583238745172427604973055546837069239504893034070752902452020727870777232852230331563478682403702034728029932125107025700904709805660663185986401507056497353321746911254227744543540954978543516981671007244516698715180168932615480240433718644349431527314499036087201417364765668952697019127433530582650701304133306148913196961379002025724401243572089067224960622758977618964371255845091206202919013152624652420066281181099880561593175460973598100162913126987648556571186066010962890886305003313604588202993755393770031169200871063116004501241045020159014498965839537976467045015542250334627573511997014929583922401013187268478356445143325930936035581594795951260121845964327909634781925399122839300008929709527564829346377426254543737059706913558417109077863973766704161552978755396334725538709487101688754813536577555016782620196834655909817505392530769459016361610817363396457399277490484451287799522320187117241285925102311523138840441733099489683361891549407191171374687802624752207601261359207617329650943773110743188491158741988925268099519924941650304188792638818097570181890839056741822541716016874773970742478843787018039830728914818834700715339730233548967963423041932014508242588592276465297472679314300660527552374257782238451038124688213180436061716152691716929411960136736560276202462563704001946498776705251542093845990853669744748782658693177360522287787294481026862568501439832134714983083286763544944376940968016836309943789544357240948853142433820348886161905116672051588975360146637851902814615936758032271212505344901893010790067010829118990045175986683527662063690150457590996344631314611433532776239530756851862174866947831608102688338166381974769698511797816282733083709508083484999629562768986388181846012304540811515295517484406934809028579412684656142362974397566083380302537634666145493150206778610394502672717428432514646691732417058644196903729710974492097469942683831172011929643503573578533719676416273987905314994550116194248587647210383410335185194482413992414317030246858720704947750090891284308290471278531886013848730705241386293826915206619945228507182069817262203443514197993089790829139093861465543553557080952610723048667046123896090819078638526767575767094379004724311655533510037922699902623747792526250246349679664158772285415143221329474024376820529289925088553187293140874084742514932260875607081824191236994214983009375622331946758475236184991454481914843086818623935550279107938902328737181616713639190022725127703873558522724653146808558859824069812881172565793550514920615474745291508047992074738488607660321966440077204836574056909616570472924526504016080250794446203317729919445382329169469895106804342905466139778124985535589161966180203305666562952194707594025137662787152328998169341783349246647976320910864814799006835204315686517328113764267327935814805734770929073724694322909541523196485660397276912911677583250985969492305450931942462918380810749490852881013089654335742864077859496684739512771023194499662655207044618994768781290641042044749702226858136209943751224308755284668356346755312613239034909739979781942377642674064549178333507141621840389621440342094376180714041814980978620750411742675770388606297258852151983683061631508692980103388989881743210716245647915452552211947035922552727585010091248220847297830942302650122823421981957211348102240985573822574410477611154162045142771936220013049598313036321695548278689957622239306019982725410114426281613675615313626730536975671972328228480366206982368398995941404671222975465442590822412309666655014595422127253537759706764963093711248421757847323725327430853124031327099394786642910154937300660509827079376791050972630790254057452475024016319194230543229688696857907305289225365484059748893060820943796574250952271600244607536718796548397179212154931699466789902083610936556878758868081145866707858423432901138733423750960780381131050266799045266863838929979312176770549456231860680521168971308007210642064946920197800549894257365057010209047526220335016483926463896186203703616521446511584673886742439234236443375056221079622097459570508228581734283760930171259056766026067047439848805461646297874296871268663545436363376128530639321931774456700358283372924315683909514609255056813858474003096544836336218333620622666930546645783305354565416319579228124207336602489921899036760352228932524003960996581823042474382432614141095776932976965392990126247037865886884920907727628906272916339253068069551866127832075059329986158843345772154893435290982513893028154496398981491828607636539180983777915067174862301040879129723822119802211220658769631207923599343606195896778498724198477560507740517190083398585299516606172451160223295754330701365842611244980756907980039078652554664922637579432968049159593333560503232526185845466451491429599596962160564466079706332953118745789460517540578518439193184161412915427149783484674360049623788592806712367162600211485940567046341118018708370396169205450514800986588092408019038928057938077723824019672705020643716063581167160644786996805051696771462473500288389987690761119413917857290002120139096684026075917753062674738578098810745205254100329769173046342730823810821132597157125889110126640438307872084684022588557095147689265709072441907989359661032775452711787989403861618727475870597018521562053403217801325626995821541692675477958000291778829415831052732801581557548801567161445647740202570398361185041599730640995781115197961450275558934915255678374313897325282359974449703879215952897741476512229984836278520177937718569822684897766663210989566749655680275286913710432132074970096773274228165785470796300867573084599201932873817610636068720685745447390552270609610500169007825807943778179963724388164450520352564722499194068129085827249648690219201930998897415428689692196604029357921449329761522401348102667175452726766029186298344539665285783856489353366826721985938866033542523003501856633928427723813605475391638655565584310742396708610820203400395696557544394347085192263035978977673241100834194713345488088681136607605338225217253909019999463192068537924668027609816029249766292566248998945882342812922905503969651774244869594498010868231810409062182574177402323687418220542902618591835470479449884874663243364901130094974027576382024143726947669821444063042122687998256402217667413409121072240297435650625895537336008468650557193467568842070762579078674556545278034346648904041386100426944990790767726137695468316260710347240684929680809803755384406532220533181136283222319617524375067771514471982278687087243763582482951047945045056049049794829931498831971023444749190758210306941821381746799347377764876128231374788007611499817470347905716888061508597126329528706409670596079612531845934337217825639072864997023897507667008193130294970726374013960122129662339042161941419783737261705856714334029124759785530392994204948416964826121701713328315125796310568909106994086276965468596523346406640798029887253040004486068400925743372081563472985514892832887552282007442928136718733987595160363968559255553363490256066565288511443842830192104673245701801589516738043225940974513911056284093888441314651282139266434043255569562589519046426800512149789493552109991800194971739078046755990785111000782773862646496884340535115081781982739487201132254489188318056490949903820270342691099106003564702729769050423123968444669923222156527364509313886059437471875283205638507317488000651741855304263451391025779202634749549602141660264623750743855481731025579882427322961805421461300034152952992047982969704335926463314521830451344735725760001219320096539107824768058271608635671642512964799681867718761582009964088427336273701585752742442561114981256438841693862345552476968124435584001541989234525264753141441568984911108666339674191468808459835728907914254691587568102343159331944619685018768558465098750154135312607429704766266415192339188954493944838548658603486923698871962095411453296858148020191758997101761136691550530557894471704403254812482841076350269723161087139355581368670547503622532013400984352852206414901119034272911352110224468123485091322831097350990600685423837422347079596776228891343778595696832967499901723356867535739346257653265843494740653067176144925571545433350107814417346268653622794168815720990945205805870772724455953002556565343635731131264420780581193195209746652415509504131912008275591913634476762431482238456723320874431959662336907432985287433119107264974511679507355158914346970569329972952748660813017527019195971527283279240227069510381638803635640325076684810409290831477029456647474993629051437303166299700025426623690691183339828575528901965263965142040992379459155773463622247252601098277020228935505008798166339284372352095118604753319206029329959544092900282854509962853340823123194638077588731339778935039568660181911550748784995033488566880721673627947419876254239795026207852626943156723074446247645453885756367514951145311120467692894712667826055876713356575283050422718491607543456886086231480595898352839768646909347988902230511358283670315872851493047449309516654174755623480007871825788096561745832055179865241957382968787705051378644912697281582784317063113491581587561397236065911001016731646312107680691073965877242348974230402363107402640854221024901956428665142298708740363604152384517099536561773557897710660901027322707698209272258406083712268588025013357521993587206189119600012087563544597586964444229119902375914754861790036836197495047250587518694843627890120760478820778504446275692569347823805661564546721478427341939225302432846088898113307668721191127422982713977874124831496446791315462112944928797781847747526880150919983734434061480921138094055521100445004234173160938410115810545532327373266098234759852919281788127126331328702106055611266486208379345126814848805608586954638168223025656035583815381751641645554545601362702467842950075419482861434797476212749299041904493727587602071798047499627760638087207032284730879512436897655540591411098426197657456712552246306041077337206184775390108292662037257430444937361884866581327021879307302939816720453675888309961997023528277047966926879077082109552171116120389199548407605251835431593880531901645458151917998887590898524274988306253173143061608384791740373785036650417641715369123982857978802337342782064378105002788156255682536174773797794761991400182119280286544556887996110184828969707750537043897404308148626407120162754867985050028722466040883603388217465307981736368063965989285932609378694878951548970369620032179449677191745483917045739988457638452571619692299925374947204718193885640161107020876167727177789453680721059451344778966816929201111335556183583559140530655345400213558724942258181814192243671551507060281936270909196466668678496289970727282515108894333437623287772210952096663921786947064444052373774741916434525201799433325896107687437891241868188899023258926676903996656583619719069560910019290193327686048033231533726126561677743103413742908319391628497116454547228486037585666219850414036831672159639281320225993452118581063821239388008273382354088339641256038422199433306023131464511978820537112329175016132363520351270226704724224627813256117373028008501436122287707794608814907357577227996967006201221084222958186063525952540773251579810922340708774838249499730022922573778316903617507971397315220020535811169456283554140166182271709354621807374236436979572464852834810136233312376129034258243360968672474339150625630008554899547083160269928961073906222466128399937137564949142762017608692559669797664444738766691205388096596796743510623452449685642533320684195913185493516478670573687964522238854164983665793125688844916859184563428812168235703472556642188778026320023708698683546129180500491792153376957065754422280228464486505486733888171503853491860952540674286536027394337679595070795124194346631024522044747960466879521383883412442216835010287525348885532189515355089252444650618333134439067298425102843482302141455250920140213516942438884520559417605141104399231875577579970828615018764422569506869882729513622272091778559469977660844488009911818893714370931606448789633461491147347311616558027722340733075684132228313003015068633593069603581201009565429073089935670265983016550695358920618648922715098109731109942203450289147463684676852173415652449161228036644754314055882144002337217348310084155940785329523846714454573182783725381676737772717922894714773987947676434471016803343833313141888283545996547595531525796599697325709877813010962220575627814982134126951927436260454619162784106402015408248695410026593184973641371972601797656757179773434743435938074553518280629696441253003195774550165709375130474662677712374129988944359506907872273652744300054256279504510918137308173339015815386070688113237803542915941306372009067239353395333469118404665779435680772583614478537786563809476972786495009411496601183321971183122449408966043274165677481011190132725893287315671320352438921348653543254393347931927193733398595605381783924718707214149015500565173145056960565555545206952254070509224900434425335725437244857035335954188734945476680627550542244579122947932280720642962782908846777330979586882018564727464966691741888706002614847502736741930569011025225992108460754403229595996593590733946407051665394584273549389599052557458501946859538235667799054872129738431365375713758583175151376079151403173161340041160945970490189633083085693319234009504688619830645912036731386398543062345253961643798731332721796021782435074711123405195385832097793430808352876225879184180868518125933227384759153364271964263335451490372895224539259571440714234041565945087594678936291324589209095119450805382696383082203678721599415570830087626636727538607540942918525430514778294533288944946047045706339113662701500389711701480406791985451774535791283245424191063082593972974346446464025763968697895712911090426126130525720120158480128148043250678580337800705905288341854870129381894418951870451149117731527368169935813037555555971154393127851532102533064660718808650312406672770397374697304480298731801685002659964068785095747467959170991973946562735695468654498354443804998421854272700626231449849648708364847414348247338401866702981891978002390510813390157787388465259505654985652677734971638377041627466210901822977893342757132133150838139418771492198220026221621373102769556373967206034519016063326125508240645075668196863879008442308325209009004524982934443861049413037204111728385107003723682089023313386837244249153640323259546430869831376671599715047830001511626665341649246797946523964268969577774158644483709738084882686481298552382284370210375782836107462527652573665525224371412670888892723340709075192371013283744628471777959617255791583918530611277950285919824527507944158649687800792182021843078838315378190151714704218579585144297489502167110451960281606696921643534783641632123379311822189416411556126837043161814523641561961908083954757531813651089721702117356709710374453193954696123475352311316774915895885999064655512817312987624256423555238529105989003905875460984158849244848159137126173656228136141565629370578287184642436615950317248694964749038650631779308946662303550261510460171207509710055952542978307022483351539999761719051343650848370419436126355127582431333381121790334608971279735305108698585105884435565719391871531000716669884606337247777920491225582235429097090042292224755537370248567939893511668983230910667876812751696036594519146724471791447918236628216356516057541404668918671818994895222510396151475520386002196492794341919826933469232205519427804314788348990146596971202083812159138593174001797603921126203608360647108816091353679632444237368225625671874832225693317081249969044122938345061532221605830428942983420108409157789077821671362453202108320921727294922840814284652327978254331627933984837767854502467016589840465921084426185113694830146119842210596193197786038049690236608925570673292320888105023988294288214722047603959727227090133710248416969260139132067627722659488568962653081306859359478799281461007043523788204927500597482446311777291703311347680413203099315179772413355393956206802848301578952310915648345878227323230888387037516378062250311059413654719107580773858411772075686114498532821570880121265566533399336461514602268542356010306994620069517855628434724746478730801612635574524914957115326966371773375916123416673870818350473904723442968336573202490407849760872219698122658058702730585317504699524901503455974036484813329097697868200603781688095609397452571268400687263544769107296517811381912092380814180381896319741895609022945305262202397534494730723400817656528999334319085413925178835155376881271891266148677511842875778881024924519364952499585452370754780934415919173930048171206233563932696350896173297401631351375962609561093475061025027753509926009560688185253170133346801319820235690298751710166728473445772863516955896514031794688715802417020960945674151487543257568584197271640659928376239887884660861582911061021142056356316789424318822327098696891768095805336405067233000052657550116239379316808332254316294494979552229036200642303170818599383564048628068481986754781217954567159860778951544433017695554349540825927399982552327214170917828137625488038892608645221783033148042086796971086618910052428848944970897639778511791935133434460560430553392324105511268327679273253916012557114943738344586885922271705454160817564740057396199704783050797151596161107786976417890518616897962315854266260400878211718418033348437600368134230337352379893221193270262526751624162625867609878009679105478259772740340228906777208709911868187962450379549872145648254988748434488664637692793787160838740423777262863448665507089746336237206085738269496061898555708662151701621508619867917588372934876487304137037542030922181873646733982803355319076585911766985985496732673352537716806239205528645146003347886705362196336326986040302299637016655398201807270177434836916011528933232310879815553319672600492476627805419605231748450206457576087185855080798993466750856350957117997305990909267433900933848435588460995132987671751108130161861893434698278653064728031440786225168279385050678518177650016409753862861136952204926517333374127242668051079000829595702823430322574953952141692458102447920155070345121556627346011648342136149733183988729032698430650959944726999438166169118826520337990532319472407164825135113046812423735267984630885695794659339101596896994630436296086519740676152235699790353516110882266604768712735231763159452921487647978805842025593661191996282639741148881634292990235014777898596609286695628220283516198870837707241999039991219577809037111985857883107124760785327734012782476189971912867423879551390343051756739063587254436560432084312971000217962144702274342532857040982247826474927899117322927371792972370582379294378478874733740900286742433323595700596999809480130604690389776177176980632155503054329990488588455712515518034360187751442980655046433163083638025233924599432342017261507401867939663726439841957756077175363018652405787294796669991736219297657416425695050300482696118179609510303011924013356447443686149625529015467151499191786282906179037502952030938450094307746242532121714648910831562758081324079275873052772045702187828056492960890852491887739230103261267411367531735774311691392484956046386216944259730248570702123282368603608675819729327528739374939403479205915183472654860663492829665171949055150863485777147694323058374206438751607806520839907015870921353954267179683617553495811444084078153241628904389086971021547666079509650966618837821711860268375395522284144576292477288652508226558274013376749976232231107187432394275006525543845102630157285602643853080516939343896054931367760882403905100830305109764411111062532003035411533617704764174718557507138299567152683073292891066430182434794262664258492581910184913762598848626555666309461408202827790660385979236543037655532928891142352323121669291128919363230245231394509811803287249811521925739405207294049878933091106457458685167506380581462256271390695245139771392148581268774096106755820265290108189302857734983330485766979665089423487248881382860212066627376687958395495070515914282232204765626237526850164030492469577956554749393707004786661892556089655659788189335785303875681425935873263373324143889397692112135247333306667944172989498976758094918541384084359724614053466237348185373134910226963770392629458069046947078099405415864950702960491340736338981949640646728639915609479386675736564939606857906785006625870622382461007307103972549839935690869483690817276691997536679182137694475944523236015689362148194981653348795199457324071386067147426750294578376887702022854357060416785645388864736865009722925394084653928581285058986368452335090734450825262806200688398083961237388865622102904496200650274825949292013681298576299058394986776519201900019634815391186670245419189693137332899696715235998301770835136321123163529213053174739178677698639699542542726465611580065975147586170138502341787737896636436708015155025600005728204952502779102358361533528644023009285214617727932853786597972326803864171128557339300280938224825464037440779449977022295521406257843165718400491617023857330404078235751655514437570055143849077550320635588807394130304821104635754851442798740989914653859616076809643536256370979941224409778055099146652243194261508953384066520707907705988041984671209601398335371297536433865149594353113398189010538814722227395941708472273523436782236644850501820093601050327010804074714178007037550767057676046485919582953368016499650701238306976181488979945582987419249077161032728781948162427932260762932495685129717667572492589522512740545451119717440669736679826165004051343333937755120681002537177582280169428899907357648905664695903208648943187799563345288265723830133880612231483423776624399907738162853725402310145019405563624080303939172657583791162597000558421746304748724672217967236833970206471110097510651465204039172832526062179246008550530922680277093573032876855219605707854320453301748180523577354094738953840248061167535533084899781391180445035982303266488201600393838503807776735921807382508025343697587918713723829355997264934942582360049855705377470588211109576830666210615977548906784284727389426063768638844484536952243938817270553888371773926486215011493698040184085550338559182097089290139044825873220668258057081290054342885555733962654600081489878476470335809246254191806766046040400858670420779161264519520835738815614318522507730100494374231246239690798668058954768375324824404085837666661109854695067421137269172599678026613409822623946085229068536702219021094326393363403645847900842015876291475098338841026290321469206728233776326120034730823262349202400338429702970266873853821381763070121666244851985060635051853468436246696219289584423196173200592687376265634432376908817010835968821244034192788203009844159795429227347486715973547762483222643293460462763946350664124294017144503052239033878396034134876271440495303149309673055999327527405109627184922736945080422213838266448623816592714264067138944894659796011521561821969539874742385103729316741727740027123509855727975838362433238344740599965125099194906970425921086115584266144696915220750674323562487836785914888664996334346336624733153917302359786153942016695653497385512454697658654819145704407853073325036227368194087370403154704796776505793153274962745814413422502789616757969456504735076831869791761248469996119249739952285883881793246293634720012375794944268919390747690197273708742539319621820295976773854035809592225349869603744180753624932409722045537350486544620263729932259232150984667057627382120804993557359607734385142832619686344335806607222929884065218833099019148493013652601783767393962911309870676390931751251753426088401409550026172852489324602320758386917350889597280164951392283767308773014729887899511310827007281754692330898688454734509418921034074398776110892612773573510008383399120970081526210626085088143891892153477004548142557984073092972322170946262913522768736484604830512701107792647364473537557801092162781612144246300382349121529086253307323275138514020356654719028258003962189954933494802591720107551121754397087677462537839475343450858364734129006894410870597223811309323272071730795740823666744073847197510645166795409629210692300104304971778009061680686716378048562777502803359749327061128974096018809075393828889398030176174050430963541616684872874425660847221094215025939692378167022242547551574488456029148003424734523887936070666461325065453306051659767301684952459556319023998499319799518792336099561452865010755196732748410764530411950582112549671815212632448017915542246899490973279584708769197501496745614698965748442383940336326618140503108997424805836399458756760673613741880861183252180343306017442541219433096140513232945899045979267017996553366182164167912921389031622525629500031953915182993307963783842388022580791685745706206569779032933014268970600971551890148967477478251069779312350748393008864099958651948400145849004492138171750865756058295303633278660627679135391169087410850102581326233808493797448483806490657401612972515020794009960035828960695902772875953214257034895772795475693915965029459268667007199389664915524238860764226570959543716820521692713041642066507775859698810257514550823423454376161183664530139531491563374426903997429935964136037311686524410048974816769834043193553512727510101424709906697224021216466249905974559634359784672622334360907104201912658119508526701360531538167600072366271815732792109732434798067736097498969688216670446803386191133930352795055490487867852916470792819442899059387387362579965477813331278249369834938354971210599915149836631821994990198686966070739546138758126246636556381727717861808671075830797841726223902096804850536356426403734629142708489274181029275931282459025810016716304804849134323313045050037711203869472890611017896634520709158175804289412015570089310227449628185861726385746619213720091441482980423715060397327429508389411770435310231958654441782299546187798360510333201816573411782686547294825569555537173546832149611464293457041629176876963110502329881513553680540122685145980904363391611471972876979502423141423117407421797606494735429004502981607407416373128918948703888012811428593359974132238550813200894337582533966916849368614385136145842477331222767775483660268200353686089867270703054222707224558920780311322336799495340152892290116643440520731653963899685746907660884121157321142573957750658138950880977947815195187882791796368726616046374619170712532005894353853011065608119211052948457717851086074665159833237979875580369609913739861498696797557582652006666321239505725071432421139236090243611669512246942507936942050194334941510191662054409728234411630148646196109534141745264685890546904952367146523398150452571895627711111082219554685764606871732139853101573181413160522806532619075072873946130190710886868861876664767938941795716670171396032920685711905663650271171983297437116096757069921945978220000321186613452649906640398692904266912096425229204848077722991262327423272303266797139322167267808098189044033107531931177292037506783042042572809973673351771906020113635890309682823984256693801726131412113981889873200403514285423165578337799185023744939323089717781128024797518837591272622043981558894889686424812681015851955801862637944911167251504825111172856389934949361731948019087788727906191768216569470384847247087378248468212632146947142610251861051211063705086415624306477603506466667194280490280327910376290799738058727603766944631322689299991051024244838784076359044628269850468290633897967722357796623354738612485277190658130497211696289336984192602093855160835233752298116602954218445284408451749271839339419446787382946362986652334889595828566479557836360214488323746336247074038302974088265879633944393875158803546083535078684052502830891300954496256075647195281234293113081655604820524488705384055394063815464476463220683253869837921475352238712809015530806590780854874997937318514703880823101708098256523780155576408181744187015854524416512345512237714190019734818375963125576197210678877914421060205296400754267837966619564603085718171318383509199364648649296547242946685610472293667578700686922266241310345822400682893090228149387713510832174159042998680967271723538568557629583845291638644343090838782815069016720976478273970611627783536203880380362532462780897857454376899406399818429218818427975311525000134028742926023430031794991062310787325553548993595781294148357745166924103751190538213846609030712234656216471141007241868097490113505079776584768927956415125875771320561098931313122287585337921378060887104961004816841066496499887167725183079269930244469824598123986894029844959916216151176147782459265535092370138796095704885401862288735905266726326174415080073929085039088236048021636715282294577009271716677063730435828232388280117248053815235367163993087298561320226662484693247086054375861178441756750539674617283038508281173908493532125487225550730675195942597593273434449454954186928855098393725142624009997679421691551300124611139223496531354340537151234577144132972603946418407423844913481610501609857402616202883203336660880030130948723025390872209216035486455279719377406149835461853415531359213280048004012533669782146350232486749551349052714241853718816984871514366815733007871786656801702662958603303754207427212560794463336550682795752962188107994842584668326625405775511282360728024519741792423565091172024752899346132572688164685352441846999387704910763364635533790476503311058118911800499905954149634702107972293617340015905806519704645723650340297485571532654598217996243805030235410564381712471835173315138323165587774660304469415100621705422868573412391532880211765866064770697648047503093003345362896985438463735572181236523049480108373160471194668009523828148765761368328817349846372448978191101945093643520134833599115134224234574665276871077599908553374789092815491227876749088592997144843452242951695552434328649358847800558763944546454492343424945842640096835465172112874032281679295282334148440539711279205022688804991901351546916210762460903052459581469713805099346040419951907950398147880394036726113768683454003373898652871914554841694621922578036053230251061113251155563838041962697819974184023453979429754954513289478944397242344933662440704702171933935192642995204710116188157528988074999006750195706496258289528707021218904946784304504161796817243462106652997071134816938778091893972985726412614281026928961712539708740218267630910789670676769503948380227735905757356967366895556196587585569724618801936205760649220058908352308226810685279661783526798867658558086839024182481016027171345479862136323048979410078512172677170461885178660588604390569653758824422756234783809677476620461899729205026753813007669949361595836029281284974745060675849796708700973130217212641699142893812150173681240018529436102478794790956315460896683242272227871205808728956146297939840226800056746030507412306376652826463977860035866611070461705009717555311523306333772488240279243492391720667969023657170023790046588126592526643685857238033626251661759637033068659104571122287261602602865351677249575393419740855333669188928098908027812106173826068542473105172710643980997290081796711853130297132193278808456113622630167293924677239638845073286235154395993838481944738368967584178411100894524838318335893712070901634628610510441830356288020542653151866572055717714248563838950750524338186303289050164404643548938756775884598505074208859193937726919939174396017609839133351207589632255908818658714793326145542402091156040093432425395303419366871150029630761065785570795426453438198422152878674086660323457713181645714163776451292204281434639748277872950097432631319790513796961443800456449021366520487051284599198103505346545092263361843933929209664322302199766396203180284453025961263911374349691610076210318682563290817132505764663112724916703768876666365078301996619794915407965235662977652591537538432187919297048781202573164420776527421410129035747372644017960648774266831348892259419318957039367840831083396698185627195899323411828498758804971357958040604300510657065550214251834492840671778925080476012680874013036116137087093738467979785137071087761433592226575977861462190086009822739416002072640692352509838846395073827188529848035230185354551272229420424680627938055138400188074364448145734309594766908475207429683820667751056656466652909708940559964826966490428173950505346034503550635178181085688424276642906124238363975241008281039934489426069606345863515210730246183855389081454439864366829017139440043336853121929944963011778940554309889922502791017387851967480210144591365530500617204518102645010185546866302029527861723624923188599442340980266697370681939177504817157658534771792499087970823696388981950462112730588518122997329933211395773817896317533485723635674832074168098409919106761577539583400281535396363590615027278602447461273384720477780521047645818780091221481667605463792877430904255924296948433988266308131597043868929252123585993097592728055270243490343742422893098588392250385949095488839286577079523430991140863695152705664387016184881843212381315524553145649205785339007348443502051797217041488145128527046651425151286109561827253474469160747086816526357107381805557586695590750201115547163763622894176174044539152618132102783227434960254591475950573720796265562423814802348002944549808677872814432400463023048199075352769743402114338537572738303326078968669768020273953021922653603090015636707942486407214049509187897399467299697241504591845204791729009921025698564611948868092902701400321138595171839014392519094053686844322904459185834303790271272163708502826538574192819847141049115375549056938283045332562790948718278356898554362648461783103891033694391460315127759004300689808522099065176913326703875144634548504013098353993299808816816924219062265670974409229484606483835688770510212275882156511098750518704246848979867267919641961579649527383835910005385269408299031839054130640572358741349285896137316155983446141807756781398357938220591707264348669933534592689264423817294748963618931465537528698407248516162396656967725620668869489618875753119653902316787158337433872429057666696346385676920332863387803662723806982356970722577510287268634678841597906226633655272851631227673845101416607067112682245488530053389659670225627659693447007118867190430731180818591847323305323030422977230400878305615956958581337922811372524167952116474108363249414498496342973044834445078251574830085352734773860693583858380761381846276866856303316226498791967105108776763784472887451268536474878650481973015487334707649394531848509356568791550657112754347226578467968901937484192713027583449155505001121798258313119279595066738982719340968328754914068233400095038119230018320927841459585329786727624891501273611608860987710672325253318136250894677995946312449412480962950073631947188310415559690998566981462794686225550581047138355850771521692914318893222150777791015021744896051748815951827715830709766283942422050217101623839450017135976912610370273645556196041865405948541472559239647808330463484029305415150156751352825476934644065664131904360324722474117279966653648116654155973344043341013421702992562239175906636187443451875309988479657191958756787029046877622874489881359082835140493996647787175805446799321064520220088190296405465826007864842934097063648213691944217299523610339665421638659622926780853438351361789849060485070272387463137654761878926458444477358259718941543425068541015443870957871000567484864632765695846227842637881583931767158099496731208012468331992526509606207889620628825460447437656374707345459420027288884358972923493913523697623250791531024040388708547128697339480040158333658145763805253340065028953199217127737614802203520579058665397137113934463437249306041646418788888847785684216221755844528371554324347668387366055199662223287886206897335515363523850282372208850848220452999869953072303915016399298712257940239681676907666046362631475498225096737436585934449870638625778537766840275550608734711644588462221527051642197749487074390003883692644008519961731186137721744073375892410940593567489319685319295174464489189008809478412585536694030496377210975873307705263324223269436624411643380176346356243499084818849214443356525262367489673127647590237206006253929051052498229251896545509916928354930015673506520504661055349445373079217915500709859670559598821526877193640241911362582183294034721886261738471004645915102195635831116851759461694872088168188618509269663295716628911750631260818740834303765021393505420052293360093039706278850049712252805694939109822658074567263227771340449337057515842831862366319303948660529671293700209005342963691801068512602133611360750279478523931114965546400578931177093694809188163567603573715780970280115453021312569250339377588383467307793315582182476634214495939585842160439497995877208626885632392219111739259596009873984968223394006769200078713146523377533433681668210252641353859943979989187763256104293827991423963927380451283775167674846513148726663641626959181274656499210108872067939515779332142992795939206922813997808901796181070694693647179065111304401332349031835098925639563942424421029210438656989761396503411797341990474261748806409030883134737192073130050347177033425000025910177040875474010031752475682986290598746268522736489512321388869275433745183516413809226173209092547083448075018317881627203339312720388127140640587145095107826356362369093280032310943119536159800340867807200006429348551793967548301192148334192288920160751075798045802068398710234795662650308088017631199281212291232123221122599783848737823764263015464010518006667617771310205094158719976119433162379694753449094001093688387926267477215212052860031254069434227374776976665662203161410623491536298319272504471728694471526916385800239811677085628096530938517502871895209348768209163467313057980505639634825316962859443465585523544930595391388725134505919837901403829399407518811936207326207275725646817693192984544985062993970177182221974836216490146054529839512179116301584275109274887915412210377930432966137813329674115671804333501551047675470925647558353552977679179711528541009612754802123119697056560132342598693018656608600250194190794084646102530742867016588738081266364111327185788874602155782865641952827997258355645093870935857639255161225298776790147246347535506790452590229891790335511196800245178438560836430723776549014964108797958027277889324438694538775346340681097347621016356431782285914360472017996652692141205449421519779403351724566434912583349326334473024275697574973522891466003176146456086603957834995712380387226179079011766356308499096489179109162279849635161901602575458262721371410407892450688446068655320842472873571449093435684741481094321164292809307167766361329882463977530230543191130891653840562740297201451361347425547758767251799673343414275535800798059100479558405297084973682649143008004490577097786945608808892897825531101848715281375831362132820759411678627556722236451640802080174254670795158916926762641579959882000993554615529483289902228338736108857955823133243822752831022670054499566270288479266519960578251458543729674740181415192142471167861767704129238641561616881952287727208967514734334858941793426433405896982745061190007271908974599776009029094386082851143832964409306729748936789246168673693628776500941099823571889055082954334562343831987977093349149577215271755320410487999729686462558779945253492784163842248980065340671047947891610318654149651435705398530665151963650341689902957065668685979484293385985127589530805260130609965371042264487431329004872289385391129231435965865297139015294499987515410321633147394879980713903209042559990019736469455035988884070242314948966420095135489443462055646333732078609480970946495335814678793414266675558190323257837911594169735062271784673864092010527823043460513279693266808510557289159445082893643951804450437499891729496519370076311146396663371800479565469976567062176719009287940037328670485347630867080325151152436994896723761759900295822422291848624688500421320662467300639022962145152311533580038522665169916813889883915631055303144643011318962785034638921831766115911202166172299031892013836261764438984266779559560374586845332900218305984663259643620752986534584481966669724017508595640244820545017897507575711723465869050591379150210397669392783331729503266723668864101876538545235487802661850809869339010685151398677158644469494662519356404651763917823300357513878751257704305758600450007679203809026561830786854500552169258606252263921926642553927296222592192153811022271988106252908803680328575556671385964947476796202546157901943947419552247723022240537732319922963911023476711710174521919302517532127838025317529741517413738677404723122867028253759708260983375233147955370311673214128293092407934594810504196229700377965962681898841485737641694800636184259019691188068905324937095395246082757027961160639653368734948031736661742052895433649967883898547518024687373174337200526913483756206052638177666568722791991889672729397854986009777394505545232493276759658698787093329347174032445039761833716830628210725118695516813007175298491677408016771871129692501272111689342290794749655508812915313886643052494862065045624246448085639409727953161078995699275542084345999551266010853547676093009974555944299868320283250597109491054000483817135829827474326544392549629631775282798343999207814352529529578757055138776522201682699519001252913427691077428894763920407821776248603402824060488284880474679867217919262827871031458423405864775391902553229503789000430724576595585241805608052270877843383375053114836356370339294504464439716219223481530533620207003623652826612900750339867471708457546576952357506245272722960369095543829313253735798450350088935566755185841052585998354412757676495556459160795187465565552552389750903045742605673700238818966459146384822240399973047710194815792591819514697071214407164982469568748394019543534197943654973492703234921069789173380829178880491877472207365961991961540709948794951286795324394274701205633785328788494762733055459132008765911057649643383251815510682296607928081800586371726812308925974034732750043651404219202702979352887668097904979019683793355286403015276663960348326543211471944554214711892555562327130544603017639925852948890352808000460755280467993659382231604600158808256668258407404025652096076161537768358220024797814675255685280452849004383680648367204078717740161556434271208523443414989550957457342160466615072808858513311529599344440428732933166336504026544887205828906063679316673646291090418800424064932350414366020441949746136241856096716491886121642531353282786993737366107837067243188055189238391973850499561788792969190775009638418351538782684404631683940505434018298348457845826491498194196575277850327800723006561134439021636582574846035169458580401479918730699510454411420043482981598981187545488161334640867878596938392816498326843896935741733509447589935946199665266585410203025628227031526743110072726196894514131129112975215710057146357469501471425949979413443517485089735870533717164271096272028066622200800526693815404566130062490022186447707701379580126720089007468660460617563177397937788965819604896181211311212898910143416131235295258860878051209213957992445699126774084366743366463856721529449539406858903331324832009328014204542089101938139521017042612553019208257888897281085691538264781102578391286083686832812014525065868247003236140766577330537018645214010476637558037727555301006472107030422770736576248702204470882877244683888256746403172049646992940379805155708592950891653389337529304508969921496644876924619392975434866016654819722342584877855826555077528927765255585367750076793154528782793250264644771733107267245419722853824731457629186003008255269089591642342167296536816347000945783141675946436506441913929655797846171492311376973103242918915103413884686634827721532127472584533903905236083960871497308857984241711647786201688018192561486566496156079554493165166364532560694303043960303849281926386174085548459597151912107266956382310841973798620595601641708926756839949931364969012154729237493662280605142534716426890946965009430366906020437631944165420648124967055249767314213597163679507275058580020103366071794694446982159599835238378626261404882483217673309139699461516567437008384193648819676516179373237174206192918841898737131548403911764382398624209085069201620294148519769542427462019272370886542655629230704113014943216466328819616401327704379706049448329886545277440199716297077834763110455399764969002246019968274280909490244238777717124716285189043303591486864329836916392118748839744798361035263132034394436124117036258519417618004641320949751909852798869284258972223767286418064521570797397771149930465803081049743365358142152112584793475293709972569220570828542732345690555637732591003624057692646689869067249291741104486757233752002791048193123440054270280319965393036795446470248119897640211102167171835132790763717430238402716414452627580627868721905731925848625034017138108907180078586355237218775759952734221590326076011917492871178384042850535633458349879158443609938066563058594865029797601054974497745663420383801828212965503122557958144148175639286004133044006640610297071127179985203304794241133721991439947566607557431331659364751780765842955799304583145740744451397375752351508126599881411239103659263850452316915376563459230379709742607391816412651359629702819383017426068426074770177541535174615443977925329657263524158092866294735866363273834749760058460724278726502146920165276142839454332254042799506784050129722330826059886128061898596521906014813631570955071302556297710518761180086238696373696415162920794834709392364184039802514078555454051178309186687563049347387238362225950432792475052737013633280371242569809316994078160816806506281175734594501960104883942736960765676808559701928816326641582262522715493573388800046760012189303339761721790597763919625636566528969620451465209099881615619510851834676620151045485548571839919038321574930997339844607687566013029725138382613398447072569798322350640105315034975229877082053451411894487453973189544262507818095911586684338680789135329167082972532997560343429199396654878092404112533827433123979402138495846876602459666103637858699188468100790618676152373820160327863887565533858719780462974988722653136236674582153275349598827326250883645979339454333622041737571528786275977177526667375953353653039182523685962745934986802931459391228541983732415842749474027684114369756691969149520942153803072181911879981831529471347784017807222880204534701226917954264395409085056557577303443627667116340465501996963124828699846306182544581428690657723310988677808512206219186761935479951062580251355543319023146108236906421933377950688884395974515219010394620736487608094728177997239897166119643232089453687847741498841838143111101718452623100905023616757035450023275219725016050301210240384046187878625210414532417849274259112704389712444566437190441339287974084181334880445158169969473113071257488679851843833564429827256923959997780629918924761270694690180615398659474086642088545198512041910286812449556741106098769070965378775257823655403480495440330535978598647644368874599500116073318562481012696678570069741259513745804851075282157898916949957906860878498693336845552736876736897187134358553258392824572262474233236974492119450500677355500973633789191217703517546458091461005487436173799061063226666169060394165877089721514533317227266189210509100130831481054822559170534882764390067347365136226843098010948798880646860131711545233546096167232802296300052974638123863971792725923933659420150482938769337907717768249673700515837101598468566324275390665438085047291540169830404947765944776834260596999095631275698894603126084827000965831476264515359001630390394329465379626983817218043767510023581810689808548270922453479232288830031516100455517406521423979843281119106552941804993846002573755644904562090047645959322163556321111868809718350831914810316779657501297923536776339792318564041270331132474455908378128365755606400902469350883768349374626166842239235525716851007294801981733355175474343619635142275396854194862178560967689553674597556883116043295048318814609411747363495208752552209108433325615233945364112097076723193646750505339710872023871700006396804303851393837638616643106323401079729950972462493944410673195109633035363555232138721568057891234954776934169911302834975935144880370233038194321454574552711179846226179179191103767528444436447359894452502117075453470967390083035731835032717122883179338146154598634332238940641673254771662065579071936815658571133607999372016901846467705552663743146446061753765221011705521174272714720456039237911407003410316461464537179514877142622134241527907904671850326462281671512416864463391177625852721741128580906338090674300573763623024734343900143683570292204054541512957918522721116716460755069783992857182630878783424230449866255893441122802971101693125003590630500594159313756894345050264680214410155781060736779761041436144772487257753113842960526095626080884342528191351211765491970474192449941058614585669665112630796083693200579007600945382171480482063731877147314706061544276144420632619160505822736055878412651586392214108857906464848764623117319342820637919387646872214545150037012973682643209549204126953994318644382645792783710447593588980918204903717345655100618939117462850507563412845287310695833929373834346246720674957861850036863004606806226262200475782018125411473190581014883959739473505918999304414127762204525265856032159356555572414393438497440866321544428694501791303816865469798092498293558105186478023877838922810545331635253070253520937378668163711207577565962163649052623490597359143414807466150870640041017784704983545829911021388895865094335734466538219127825848591258542540358843526011778922785532340283807773476103944319974828086604631642736708343547796466699364370507040116036977967754827814866107561214022093702277571087396693797521612374324461916146916561285604893474461705328454828575610803436647396890940319677322083415965116091945589943493032887359471991851817523063283749862225523377192394263410706622023624025967804009869650815689677966270100693330496536420273843884662791566909189749053166840850191979545487355650917099290049987530563886226585890776664025372871240282624383589823797013512198853741159415870456651136833776813032504709836611580890887800449855068699599316299024621027173381202112228044448039527643807515985139597273868779878791597715206016853370713893421042115853981580221796057411334921680667529167069155966461674127163624937930343685968953856641613945985840308526160452314075855449444055657816985428052483971399793179659310701211129142388288106078511939302745877121703551615475393352232446320864189895861368721788983146817539593605853068522257289785772982581721842062014327431475536745488353164677342057324502498835390338848501738734464515400409132509490393611410386563797095797756511085550259801840261433812871721709878582587389398449092370720167463004258129284692283924265111880050650869421772570281299047847575941320747431275426000482050295890529751407451827092949321878032189218768935396728686037744084914634799955246857312562882107420182046033590369214647634534264876462992326297598824462144464343260018253455043721629365869703583356814314709018391013196852606846681421026850255681799587710801820677824504246515140109883924873150110760031511146031370363276748438760427581813845255354874695457163191729943958502200229787961665983347018243947719310654395585891158196121847317599780148198596714200708169922889305896247306916411521622851262862691516524918951565850458721353796726880620894900237722204571786969900811823004461555695371225014795904545835898021227492066198364259725088297305469247016686450039715295857959255548171148057070251482541867622234792809924277150989237007389716572761881180715604185177614221673206891955994948508978325112297218195279130829638307087109794386422660952497893763835651868177754390873375091847560507780728812762754647344599985961157514648448426790761022454937226513000221737274791820445669542496308362781953985682211633013183336046302768981971859312774669680298692295765493108885055784819112804629998490657286241593628695812475559536464055059890305000473345363511544121396564297185244556932573296265928584403504823052235298996839747145541544616612580015787907308461365758022130958141637463091641046837800123095705582615290381196745090479949174117515528229975415995758350873605530392927268432397750546911248048409909939632050652753812563037080448225092212194051521021760215500461606908239840177136762773201760120654904167228063743186331156275147523319353644783174618082927998384811474699912413446795569912898949211706799788124028084442638553718113739725107439400898045926092433672286911546485344821943052323560501837997955016354215750390079924674267100310536022580283992942088792729912157361852417367661354882343374229989003626409143485512819345090669293411140347659288517316752652062708367469617906511220887641282610439652495130462576153650045629623095538987071507780106037876416563322380173065688247371350777758685103305567782252426021451613336553819259284109119182890417348021723716717593352064933482959443057767080798686631415818456016375609784439303758726945384561408305031434436002905963851177643256428744772686479979546658329883879815193553583763525026214091626716235614244640669539488020534278649528592939948853884320383731670171182972655195418353572009705911868849217181254374280960997321844733966690385779801411848940359958074504795319442743724980269210907550433879549216535480477412932848247056065551131362732628877347407078634192288833946253558236231806640337460299762865660252739738134640334895001707106542279646110350036937827304308199980207302904843499312739613886329451010357503535660974900399018260440592899216785770530340039739597465236698319368438488938885464396389737244761293176194281589333235891303166977875952875990737691091008596542108819595005980962791977925185529444551127146891625202265791308126303629778376032107668654188431081467806057196036502337253740898069044476445481806151279118834455312295035419365288947881685980909909693714778542773055860841530231680814763730027520393261781486624377132734784671547695688030769898974565084305543632241179965390837934586069013459742380259990761454694526658299776713383992552308762014434378465129623173303796236141534208420328221278729501089480643126236985119843649201739353765343865637921013793113372088312168873540639062739231656513713458126729155598070463112909574957013699608751822014132894522464807914853915834300229268115719244617472319488162374375270359087718905309063834874186262187157416521960582580150304096691858268682797625390425488593317317485762469840255262988581016513524511404546381945201600011063396847356381033668205132703398732237097509634730237372301871775954010899601034551148019009581069960527512018345965155854429877471898753162281137595647205535368145893506893682517609920104807799982739531494473784961295107669175419619726134120285340088969679245147391688307944653718364905259479892558435215411489660466096740000305602654178345535140728230685001399060637624850884562410986519288885987828524397150208419681466859399708587026157405083679050906088990339346105039942552854810291173638422196711972956007568059762130017642849962769341743733170790632999584977340768245401723812571353099758299323408635721695835778905415198015810827524546595899808836253496081357502934400880225163618017629209036909983170744290801145533740132817856007800265335692534956405004642020023683207336807990572745191086284665517841684201255163025824118919887691132084930310994228113056423573032336599749240445818574002037930849137896626716673311083006900462467064871270484155429820361494359137452547411216780858918244349502020850063718887449897911282726637424035595985534771695086482379350762433613460935191801653576215499735535310941750797675458047984212677917834428816915141229007075915143731755182515353863111309278355895167203260532061964472524330900452430406870239478277374922705071111596417373848989275412422855133175959825319617689414867533719771338897169124362017046972926927486325910794171555231972496326030541828988027975798624443807131912067882179318596212080304873202159983653043539416701953766670074108843117762169009586620940990552591905724995075578715334329518764897333547467184823025698383180313525556587518566889329318810472612172591177003852154084429625410221755298351197149300682761393798804884190281534332231148387632929421767631986749768101776540331704300668114144249328171744157849721878563326064393582590369541918432313233891901105742451710772466483246121206548864477840241534897313003785384627011381739801808575817322804252700736785916679176162024990559572773929045458502377454392791004689333478687509644688586221147894973721531900828373664953801172900234519092679729011843288123284964657679295272235211993520638549020519974718857344267520299681369584322886035285387654019275771383949831327647718594628974904149835601633764710954575907496886651674285668599962593545478107360357914367750531364540825945455420104725146467748890419415787806527001351800128956641054638309937195790314041776174339925467341235658526878046692719230812283119841731028840083896896927685911483815373329304450257110138953316080263456596123751968551808092512612146388623966345199964954877743956828812668941186126315160507946693791485801534769598039579682938778643930253296277544046102852592804177443865560951276019633246748262016678970035810083268241548589289815066136839227252783230782782503022105237095601818311596463338414677264534285484143351094995352224001970213092544164317019672529802875992220527923286801221676364093724658648481750493349947045813361438474159084667984978727854550574787829283033872555793140845698171021919057611218926204716915140582415619290890471738404343716753022854123786938779783615665074674369878001684798824791322435490210354619422658411598610534097012755187132561298876855969451959099974530953337707982741000031319915814491994225016362174846165038652166703290789369342349787286649087103396288826563604848966833808809676382211290401439706089964052773076290580268643611344333126116980019402696209526674982666216493757436689708492588343459355286490256886994556212480987017951381910433814404964176004406364018252625617821611548968683434349915515028027693406513046660196099464684451271090206183492051514324952921651357696103720967994575817102459205238672647023578484326553819045470047220930775223259072450937968765291497147292979864524792667841999982349903705444548709705009509316053701844376483078542902164869033812631625591329126343353691134842749916831502706157640618011440794375312898256599904805395833185743162936914342252084144620190124155759474097531959641371086583067753819432037507500209057505272961821970752153168822915581588634779797138829519855690903289191916246452300899692403851210096138678982212282233532527512789847918284344516962968476105864093359719575237415003664068813852259958365044562419253349710823543477673410590595196850022684370818566523957686589160565806554868697503296690527811374897895812046329069489802322826308603910859053849142296205697077763378830547858715367556419779131193618845592414699485086556549243155261768563397419571087372301155174155855679356886236595871790705639709753455743779449281210975033368595888780182828967727870607828745537221795357449641825232398646706861700193989079654337319405814825771599566547048721298437351085093162313101566590704652574718708036052761579451316495001959227550307316273631208235042690937436268320802060691522944380550348545681633423591797756646066815848880972820020602064374675499210334573980272805682590735700545763092835385645383786900021736406020591859299779437395126997150207853743786807832666623809421674572227617561967470544764336309682952940976638573761677536752076855544259996439045181813784696331090451319281901660514341635461855871342381520327156642691890774189774793519101913203688790383158106383625651023275533040499225553041660354802458694586877799030587252362014057097834196090739154704121811708656222513598197356579654998341522316384882838113333774521539554837509378277745296712591565147689588736895364805572826331163173861895640598813529760497591627881085652483588349919740635205865490023559370818036556530846719701286556403826110682432722783882052078644710029467390438779955353814002905528632278264642677823299017832220787438449930895630815924453151345720456495817669870984722005177640360089578718985214705465444055590087539851559165007174105156048697107416269114941495101106310491437181543101847168408286214352990474620720532369139041425100914815796621171918352111419804786363068282724064578002464010165671742194273475897834403950582172558783701429499190068395158980036945634818624950553079203819683740124556031269173312786799375558447230059743151300284037098073906214172570892150371180257928960617037998556954375138155282902750463078330793794724828481575895970031077086663356260008846149547232372120895208295742459713556824330321442429863744667653328547241677915837498258847095226124389868996397939973484931332965289003558490317043853572516126564222797383751956341159268941554349154540082420033891611826823745385016828307955837750470330340862250495121135291746661193206894618965535493229642425854117741248403395291162879634580174270587055205308421818967724010046723033833128701830408217600498345797434014719265143461750743453909564652597472722323479918891368521442849091716929482822117932287401308467082403636269013731482495522018476867862962045957851056612480706969504784357683392490374714615206180646211264577861076732427955382755044062130768432130217230330316820053158955640541733517458912692670288111636360796497985533712022019945455383571501459122700955907050641305293286945831161873513724441404434053126911516489957770985194642682756185380330684698539795954311091410389361196709550294367982343854034156248399003403233934568378747019360556427843022275474253430059940663107214993664312589953374651832762194304333485321684886930426739208758639158459329360866431040189311100527671703744559888446321438584555225404342215155742112656271222768909681665544710796749575958667270037397559753066218639007123369427403059088686258025589463840798814314191764262861094441047051700389348425267693399809360300876166370413961355599430996521046182465515878383438780238613666507155090775723799699037132651414073264032292495479381841142499235324246510452587843847644035306972726473194477155230029447170955181056086724540265938688709866393822086055151926302950174107788579633405720023718632322105359901316287218355172532573641040863630881908440484891680121391080719331094996700974409409103734321188642000912915770336227791952161244743893761665336785841925632712056702404605784325280138188865404509459502246725221579419712829885278283770604313378491377055569512269451901182088073279285935007275856070490384674243000684929725629493340379362264223364966107672033237751482658913234936954485657742338596423548740140383582121116769154360806335019492061079522231277582578178804918366454480177588413384314435489526206998959104143427216675713747468356003799714009954749657545281055104097886417394095093652381214220666776765449753575019024799021042879544792676556789862744315543588121203986606883947304063143071653381350330646892659690457568002659717041711060158952274122307582319845148804420370486591439293551734453949519438619801371442684063467864331583812618782819614040608216953055081644274203554528698120946085404779899033321306501747914276474942123851961642067590120507987164208969193322951949244405364324449911910199818253525335163598969420392345171134455852699493268175289332979883468200303474029729738707298552777128007746125660440183105652645141957316913170640216251042232185827910282270520740518464606538083828395818903092749261395264543039081779630415635641169517794634032686466939022833298028365298565837562539756819418993597101501813557415312309203537861692824061679275920600882166233590108042283856737964464063046081705422237204261219046569004022629934266614887221386790878253004984771640925185419085241466236734595966964990595155237105057429179469978197980633207980262439161408085677563045718045557882889246155303613008854267269066671410571948926488949029296513133071536229709864243603122439084042601442991428316476172826595686338819532142323501841626595365616617066060439652952370405018097827724469772998854081593062314169715628247391842490396771449725334024576849294741513112504703867018815708901733485564480811369207900746105235629465656987235495815616494424130189718060075887972320287047685206821192320387026534629545301885958630331741419731123433032572245344050125216841415884524635976907578256276252471813195833009547040481553192845778517354750309843797415386431544582812101656403044297201875433642945606609532742743932644785132849658811981186510418436189611022789063758895507102336991128145628835964473884168845143095165180343502877004019997251893290373857818369288144468422249278480300601950679014231015623146023557970463999509961467841378624310211164183581871452096450082530102453028898819169643615313972541169001384237221622300798261646744427751975659974605260448304418915926600742445953389634203475798770625935444857829727468701886080959225645226695561961156449112237793013314026004559749100192666659398467086135186254462195781914958933141938602868336347221046997996052874944826919924275130599619712973975938523860838540730708796177312142731731983234550232194407305101924768047443812358537398370098800467410055371408950031380039359870542186613835989281574142054664368015470568924502777603926464082635579178573358356124994627242307139604970887432667453504036235581063963041334146320753275444562246265056282508065351696115896479584263716885996088128212314343710010600709427136535583407630248134548186055567557049964226287234226065453738417727194414820420055442618742797266207102156455883357226274734367375122261788020171910739309428597190301265015331877003268576186090529671488464564121190725838977069004866421642843624677983362843310597197460368886799394522075722786418874275418236751939242194639024201968848251561720308201134463350332859450174189068201905365261009952810819851026124615114198339522072191387445970810263108396635542646934777940586327448713916493367497578348204503668863697817088492992736255584087428918394590857747406615066086516910831918650477724748839019046451298464203418784458785251654784804555281271791008244297113981650051797795510246434870733266508806200013701582777331408527731014580673631863142929790265700930057984807243958146729876266606148175359314065721632275203856342817652433681238064419979625112281605986995382551512036307780443831132066735535233425711116810748892740054761125220132428669799958016534198352267773223029458241494898246541954388704931184608490476958658142128663155993955778154753888952872279955053653379343535237851588443407794948435277406738725399663794070577748220611280614849830446091181301224974687504468084734549824404644705001657116824688698262505103061736943186100650663097497700039656041515792652090981880954923763291852356762587334397419160789011312550619953921707107975580323248718997164845647603367510366459104633059211916205878172223986339379267314554261316578670518963529311625912785765282153900250027839957089078638360152512584338909356020770747786252486722383980465952129410040425033405302351446412659380221070662148775163149201891726732229754160328475119974629253042322352054005761371798112483852769236856185580783282494127699721856308481048638804881116721300960840042331713277766879029367885875554014820970205269845046003266221908212999101779105528314029068913319194833396915752108998138320859393054920553739468917997091652417802596658405314144508893985383599756708563707547790753376026530176184410712710289452160752768917905589616070647978528421418158859536391023749979089558981089360435418445442540609545694570092993537375841293113628928019514637937302209624968315670433125351917291557906350540440787792485755811628737433403679520795137938141034624370401700683282938994878010327619572358383501876447773472781015539640935429907276855861127909475214627253374637048479740624399851379453330544472811191479457379439538336013181571485790668610083866603966056436075328401677817894885189259084309450132806004738548450321659676293164840957544195974672065749705980503150594845288453705118413028125863819602058859997527847165499899381228138898757776433851290909493201989869222284805052618501982074365363436623338713808323352690330920179517722756559800449966116551850213359709416248644577468203144624162424775407046432819343816041562575316700358086053951457033232505328916765461991292052782594895035781035356418705843809267585589429762970538682313357313055373441123092730086647540963803651489660981218965969088387408672149879781969113982955028104516116152904633947330480394451542005210116688452378873097669638184409128654303727962738171976767891584029869389237519059929205766822403366717302987656269272448823542449078756618666760875025469282888449251383764873629747614412250691814169155310728538420566668242803963428047673688326323732253494541840715893158980784528211445855907066789764107643053921411797827589662172251097309439168940234745929300518161573454268149789019148550099760604537784984392193887972282088180085127191389760421098398806973850499148328847325116168797636155295474456611449367255583315904827799407647198130563959004024847956723183952518111115583027475416580062934379048154110123482330779007521818279697566721987469539751800995086032601936991485993933646831688924483655939213351059365199836486342792226015361897585571433381301731021251020902729954498625456123873482168637693690194656921585783471564669417819034961963683057830976755038198243893547837836250381439370014134382998698267483146267237415789947516762588955092684494581898560067990592637190462355782545400547472573676691559608979933149079208471575329068153062353054609665387111052554839897551716119645992814465969015118867412312986548216978244002769457078873354240684790033208174987084528691947490829258480376220175377352669246337037279513205862250485105714875889440756464526034106893778824678853149972542488657989663729980774942405534208742313153583590972151217148896400548945650669787169155896747423035702173941013659049112598627858943152648483254254021520487180658032252131211807322004641855195471030686347313446395566211541445314241314616465533165694624829167965340913202095111728200231690310652398273396793278794740235433899463571519625848881374250977725403055883633434588370005493123321834642349721073722289281052715456515129203564528021025221232711770733137139886994602488903453710382082628951928215443978031068734623574455589192152126364201158053177363582994010312707138885894772073959510392549270577318066974035428463956289515370568943245727277631292953479343403582171177351493081422696013308607363377896913589508661135956281505892340681978336058219901229570173794497299595351017573741156488057693758954893374348274109718250531426555213726561558303222427526085106919463106522855600236682209689028530167128852559893617875469814349475204733876587637761497690784830416203359569268176777276651135715775707092576238128716810695179916045272825258129564821373059175044853653913262356748745309528229528834591899764014147956714627803847316726922967902602311026865319845907678507189932607236580124844225625558357355826232876134820041765098558759070797988820653279920162514376490540879045501462809055704916520402447418874957005082203351923160128782678999581326578557210712322254059322800826094575789772110344167465393615700207397528421161245102601376677233412599696902818304175358605593779268041945571071003310707534184452640960191889426304949200802828601283581105636589181105432382711417047703555719903455388867342664239556310834061298322754880474656628678161237461403252079301372568210514720201894710406231437661898920101330393532524793829414840843228994150538930656590909998216021160805997435854349388938922449282176241252086366306957462425784447548563328130602515888533267262153815239179986075494045605623304589882880114898674601945739086654364986245608537857980546163451663671051635592538540525216366247400978032282876909614453293216543746324419734121673316298033939623326160131523485034883688355647951596406748047358573414670007867109799614949810276750483534004863339151230065525193388234226544135604529650804717811275016725162854942971617475855022434504615145763037171379082083181932005640580915948628330105509480189105970530769317181213935786619425837844817430672756114766957721935551160565809464638220624439464853286750259609700352183944831645059364196362980009945028683438809594603631209430909824219090579044347625490305478305337280617781446669758319345801097812496504479933448254496616901492682848320471367304370233593319389417797029016464449671708653006216434302243061499407914490765409842707699627507835670358782944628913555888163525217545991327913057110926154708153092310937122211571125427181591861728969236497861608921592891907153253192445273371242266809700608071844095316068340145181850816745506749066757100252555080813787549564654190389952224255185864102407991783488448562647923342358589983394839846003589507470533782319040116412787471557910392118878371344082861266419638251916638820309399068724207478150049996783724957301807976770744615094107525123414150948476506745349162967975243242608492709306631991139380507628403299244993390933419072292224466924159546438784937293155461434391053464978869771718652736837737991509635536440842778415402316954946702032636318390139706766541557676612465867932091676417020204532020936452887954130574991627421332123214017174199131708397749975062325461596521034763697758277350868384108073877438292823828666123298764025929741669991618972349145771683913326437490277449459826842366873274677133271390188139442075624220216726556508149224221610000290117006486328196161456147928227001922125692106871401600182818457017931563852983107051109978382115617407668192632955680295834326072982859146436473527035078258080054500336701457855005459170559718837466562385154041242741196104858082980893838239110726047296786065686552360019936273235716518710913102777761496980669302904577475156746417811809722612673771123508487255636891745573707214386245917388430346326903284772056515451120892727509217181271658699519443330239928901944855863342314510328325152573206982184949054968143267172518370386296448614553349129178255977367427315173055356204169136242004546176159600572039209690791617403750402274116293148910675329166790609036515218020092230053644739368920942559872580326243089888106489940878645957338718890847419628825508853159465813318145426578991879682611891714549357169732518504900041577986205848800230870786711291453602943052908084496368511030964190790567717931259961605678023208275815138125973399764188525304664860268999872218612768932430251259646589619107584688470851530454059571736427669257988771966943677800226851624764209634978433194722324594525576688060084002655877388472142272194797123346384098858715779880979816652322664187236225904153394968522295409172534932867771522984992064238906841132072212371445753365875573799069565138211500351852778164442334639237350281402259552255683280319068724968344708477668027035858994454982190195984943506926797656136119943074509310203292739264923318329416730496195856311956530706638442245243241328925268088972685518443702715650045819390876859112491057154470206052014826746559681635828276989898938764892240294001502579080617988942137252991119960065839629810372674804125311101283805212399892622032993203519729501046931445902738406272009583326957090319444116988363016543580144290767767816642468992172483041947663717800645599581927728942706579398461519672777019539086612797034574219351969027205308304823922383864553358613728272222362840740362521018923376342027201731317008412000413324299096228736655838046538487084439045916247416989665601024207766470451820098910230507427512288254897487992705579768865326281921878955965258186210896542344744500189509713576004760575345070418275550675274313471515360500171478685805291782401016384998615266290967839237185973788367470409414113119648940497741012307959529067105504789415352414519198703342247119725174540643234513709539125112041629186989608532851656171484749505615190383584277740921633553476728947251591715035905643454448835821727817653679484892466212934366842129115090033093445549934086758386261984381580302125338749537260214157235273513343286907287808765522274700792905635160101234590213765551512851789317305070705612862028893550552762737453457387759010678195135547902481631517084130337321958903968561904295940714451999713116753673686138373199162971418249819144579282011078370810890965404768187787891041897973866853945786330188492181863469444869107971264122477083736772854654009995679470242190227630894202055568373213282543727454703861899593376570643094676963182886935537338720005956332570529241012089590596282502834828028859149819577583735626333422254479981311602732815023786727522372195491768933178397003431894899621893770384931691070630924411623560308680633488264277895431660313696683400383467750721394230589292699855968878425352632940880760778711528786772188417580448185611493950964998094271820200182254493045630081514453506778608824994216892014780878794320910288488025859129272513843882339640065684512208172262611474258179502011144803847462434573351539132803504807824485788130110757322759387387026754976766420230585363937051504601795744180225078741855611980320239216466686299319293633260301123699009118544882328366035956281435007319323499127336903670390537388092404690575248426254150622874248974993268853118540152499616670449312996338947824172947659269224727008457889097519892608305775255296576253060158014318275197678052112194146580088511352585515942048077943475981355672687416793428550208951044125167065891210787083259152952401260817157105167787871349998514109603841013375971784124188187789455757215644988082316197788307337204501274986833603882347545421210782496785346392409915698258626347099949880787078845831267766743042638802592470250801263206040677187988061454531233986916197807855990466378561648207669376549116286429143013595207990563873007907336641732970193800556985381891764457278826837664535726996531549642607139274109358616527779642086730747829600581877923702977592075111222088511494198225351480936666267214412439178542341149679134640820712457399357714361884368110020923988893533770541304756206807016397929470384382959674000133696140159363087761590740920473846122991837930697417120203835950599608058885825361633833347931764475704990856649031304296941693382155895900277553834318263021108935616360870726279752244008643153300504718511852401534807340666408626901549052144559926636340753641738280938770181082907901176898448047688023121650982404190709480142098071046634864499484229870155595235592734448843995057077316077984501895763266546578997407517083571903235110918723913370478362072596331011066457142738694713129047075112978868738728134794684641861437063621990316652114244180105543827917352331274194396118017735977141984510900181363485201126037049421384839039642396112638720530123343335919527025122943584552779786814179449363752327100623908188744251793815651135041386711598484594478206046757000895085383247883561859827158893462390549045280319757819769339885803813952638224504674233422977775260697454866018921603538811237594975001129145179078971623886180753151160548470319667721189014122356533801083597544839787510180296866704972194137520390778777706476549248516215999831113527275586199627243683311565721908852413389276993930324814823877971229086854138747811697049790853389752435261232083568601946647884198692123772139511439187644985102599426096516248333133957613562991535821531862347135003955363942625844831867974781533582868080811474192173577319312452468691911936909905898434478875724745940338332507761482759580635443946454802275298093559864904220767356249094233970856356309230633623966954450015031742540062048444787209286947802315856191173435482954276647926595746753249517780620941099353814014627855560249719995580409140416279291792975461569130788023984923855674159090404634829803214074391809847837571135784303316145518103405035137264503439175101874551809861307973019533869950401363935776674125188431185629489671354289791547337645008421720429568977872651289803116975235026419529615339041501325298490735364969122219142079685896032813863709045246653009395593319072113900691772900910583679084729239500146517562271911341584785464229918844619721627622244093180918708540926503564611069702129493280695222295915071572164816483939580814652223173868319606944695349728296298408156028213181805070113731338223278032415502918838810532830500388895833692644452615452822152574020332296464258089092431741533512519086751344525682274376578820501868559054914661209691192975226937530695085481714410535425077655653077192015721258369927018518960199310078024455625279517106266539939145042790136616592170739072499126724685267863877357489046710602079188461824850221073859317415928497777986748529166763371593893903250751879228996659379208776123723901510911573196222096149455101468248663814703053408507381643442979327804178115052030806517744329717761108760576618718318446515514823698848201861809352840796301833766870781615867297971467738098742453382423003139792149550853940512664070245648977347726427758787449818291145752731849189604896048735293083024649341798741509154402410316505061706450749366832910806138059934067595576251656878716186833289265677487860343965310382429220305077320542574425973756285146538605230966230721168656235747481160606906825870881740508673378465476073968344270276602437014958655346441734345498582401838605385098641233833361011120039232189857851754152543457315168662174235313438718253672605141076799322239520279687638155306270171202010401921592356964660340985375055402129539037603043254197153464546217287662572966050796249232622870641786303706900150298144982320516656917120693687581351405103377738267742668781604271359397225614040905315651874398111039153159099056037423857420037790783241342700492592112369616496770188810691040398530989875839320660452591648171934751456484183715418734381678109565928124683780199673882997107711225829315818856782803767177397478662676272602446673201504354065531725499847682607809382816820532376257609176780286352098388065965059235313237453972352621619171137214346253986655566106632408325583574207487639071036711558399797946753552640589156851887644883652902769164722125218850485190670033989817174144385291440256779039782295846109920211711500913855328261868410430398149678345278352010828512747092571593343626017199254179316747392013096920803151398836779383047146341105684969095064587877440121287940359836122758131980518888012912746897033242457014628311855283222564047589772953886475253125372326086086392139420798765409501696496298776942066875529542448865042739139614971221789915607588096254814058872714241060012325615291070932943067126085505130611683220434179164363936216779019286612430704808872661626585780996629550085841668490173220414647108083917772736087734841348027922798902728895596119920946088336186076667306983265149825380510006722029135032253098084432546491030924938499285644234665832717109996546615250455195106133543999657423403384905747372685370726506449638009597107383323132508037891395128103204526390667045403061813520002754575168388771057278779371541352630447884617554664941342896137495880858048015588115719825205014036471931120307772852298138018207091209792473622837861954998390846058579642466275463338722775972343409251599121601609462940718189829964194423656016819440124877355897511896936640015313925419720489311884611248981157617095068381258781454478358072963109321527878225987733007417897371213511061257383641037116002145043031022206054010131111848629904710509911893457641407480423887518491205580039344952407163061452483650719323697536754562453138187607705512975414772542110194475894282925871642207674939809061445640589335812655674909059663999320313497640242248902848540072537368234661509627765334242504266787578210078124506163931834872905223828911269146454814321879796333634921604831401884638540674886105715686729946491372149788130707271054157214653055792457957508589467899992987377216177248076723216629228603255610757681375398645875862730340454613526097379732327736053307694344716249704083135277847641358985433358161295541725869146070611556726777032861526102651534743263871777141642422864116646929743580963659129965712454237941766536590818974907299465418030827014909216515432546307661497034573220140542571011476392705216401121232001711092308685360510542123272709967770485445125867935725672206991322891436791354204418458268457285585104326930443189533279134928554081351598736819681237641224693712388642195570865876355445852779472113193475685394238331950828255104893473302540435817902505596167374831357057271883693105184286866713973612421295694384837188381825486755851556310838653685061968441355916882278990637101461106977650075893378017005319698620831406309632171657377413234870415132994814135609791809765163204571746906536315683478933620402581079330456135038986988543969898757912978964674452871188760706994647009153902011180150743243668259195423893642035098320828697827037748315508922549348140873882962956399543551824704378449609027433573669137147213112379494563667581005654041194710664748087979661891208463946634119673944790409794345213024275814127178242000786661582575154108933780805323717097722188564878734577116672645190693204708559044067595541593340895102244475918040721877962146864311079071636915538360544008125399788982964017225095958280056046122016767268803414410202347978863724505735648013247838515954308464976068191584202929696986027745692756507378278099957732630862751100671818874936137219911869236178151565443117946078610494330385029995223217830384199273151722527632430580820843974264237636651499409851482106299236867364104739343449988799619031344408807063225443840081863205800010737054688561534755331005300585628003093527649180474158787109453610682127842159867037047355409884684015345904451911767630554697275352686950966142575604355797491806715099967837644865735989517631532534277874086004137108804537909653362508502726991366113513954379507822698945462118040464416513324243167277085044901085664596321244055544290719348655604637240178363538139157231938684379070994738708507510115178594399931897245723416170797107743564281709359385676317581235315155931204251671509604760846448512770603793155095208374976956450611589498091942673187521740670318701924923265414120332317894402515918031305475884624882821695156700962418284508468229684375387744098885789808154250085589405307707785881810321425281176738128692514261299608053887300316537018505483941218454499097885048276670733485393988544746865369239401422734334670352682741861399419529272826114458438312884780854734021090016948084647943491274773268219039827690101332333056125314917624660288166369483839747842639363639400052906865646905112815116143923693942434551609615088677361956568531645344262362033192468608065755648738541017731086515721233167078448968691204569849759275699949550540160958272768866541492100772268551988718286931735830281462911630401915149982762981016181447473586498983021966422551745524595943805638530607030155599488326423150889810688418774166253925551007715741597113176163970224967134487599996017942830408490027588555012467830678991599856012490661132689679351818841650045799065637337554739175963754494084391508484189351951883897467879520871129697116086584393166622497871134869409129432071116435873853057191504124201301182143375419914114135550972094771540337471294356268686954273816045858948067539704260601217092079344843839129377910755671276710319946055252513333749567699313345414501464106813324585364169333757981952625882075637708823973139574708771484837899068057705119261653795634035541986612920186099754612498585474577389102162061197479515789228333248103574415430994294378179500175174087144675916736512215780081696348182344060505463354616091937188819285293516057104468048240019775339949247642541142671976432439146305915598855429361766237145040949483368378540268625503024591066905243260751370948241779192382464907434233414741842069135174917008581124094419925659217196392886414145417178025897432821330025809347781855059473393451432892950678270054992330093314257960611082156061199988382154093561669625902627027528183309891481895091095468639606163256867942982808699702954108985269244758595571846412803251725485985267714773789223389299193237722494626534026754767278041886479526830669361424485791262150112172482305122236096755353116800418886129762107760558082834231849955335118708851514299549558518306915650448432756636074226933071489794983871240481445287281686044020163194999919238969138222779360239615765801330702859322567446216651601435211618650314340536285667062233346053483495693456966731840517570145876554954731008721860512547517993502005247987902900689294133005686029645901279226863261730641838736023962804944063828045816143816118159503469802829187434611603902453734510381198426164417135005168387054076352064208924675525275036003279210555786508466710776332207638407625143969821553368385438977341733135351378723402874909746437809966548639109405525919010024557544991596291892975691319447851135282331024988550148747675459498853628405897482230049150865606561153670127914957319066780308887130053833694718837387621830448169154050952148412316795196396359141067468929343602636160783859359453460680554465967944566177647473519217724404484929488592989359046230755742137690993479722748932576094860038200792999639761557606207638666520735973261115117788779324872168294159926448809929434236561779258255935029187054718416312126862347480833246851668407861193201239107647293007547161388004924175645179290424261724350512418232379779509795239638787446999338680845473205875213079993416268935866311695080950331068182678649419682642740501623502859474509363910619048315768451329341656993177252812701413352034222992564582179245182359036409650417315928843905075695841494807954791737148195062492354445165268684944756291813887599792444093983819703429761252064603372154650158022846568017525263771683859714064276316661161287257076912213494714790141392167429633415374894052141870979542969504136269736355455706220610682428548807208162657058044175679173688008513982823822349206276426320364924503955798552691080653247845623298460096966589443248592086101965919805163337994634188207878243012429106455284883453950671648930187461236636206647670759641014117033471569370859517333141486327199074051963422130541362568397390120617452764276331900328165479186175658514792407595757270125685016689760802853665563976949930239098272736832216985808383339529619503665005169381787094499444671189174383758855538209745091939364780221963803415260043855980116726208752573911188388844412619372871443267341945769500078917341731495879614768700049199229900648476235475787276065705933161756605046899544981315931163352147430893682056662162640339873351103514994696190122664216645777088992685833095201565151223995425515048899264657886089262756492796503645988591780546747868911508612998486893635193266737239617787670363874098227944380484340676347357492519117600990369319627665064030834671345706894720825519830143390875832832626777712258644300963860368875243727505551936200913019335424054780114770332236715880048473882808156453675837934495714526076675051294264022758750633151155218675186717895003401475482907853338048387631035921569501905518472515580461159321379836938684811034495803523875836509593249479618591275966525004085026080361712013753843140322788843581640277051830645422832752593715536411060462477338691112863867990603993210631669537419747222397879543465519688295207780830343859676120057491671194440140269370955748051831780522392796050882367942043975274817420577526997259114758768553486906012366911438312586396655292636098122920926963539874004875681964102799119056190652442233514024886018188134427263434575585197009709986168075176101397840500101390404819787048926818275823376149411172649961325488100323967885520461143766432263448050446933053829896829259539971803074351704143090669823197672490768356777426771056152987861623170112312225769624384584415197634477510482441538591083264355874989228827746871291643276444245178033419391301339016846534856882507342858245960543671652999418350198329424790140663823226003362403567251509352575651367518137579841593433386460086819951041609497929510197706574520388871907963918519271226237797274870655024644643883598047054517250554505061227049665216431098739444058761942953178972711841122471554248372940079111153645523522753033312256745729251324767741454073688777403262826991602007915886172729018694999232563391331466310977841097287218320024324362589693816950788387879153777462367345239877241580881475439037585095042575921749953852617399462971295921848944635875177329795703411526074726773135057240402612031750187939516841733243214634524383008135430402790411402218890552510420793292821086075220340867871665844365465804430029248921120836158511986996602715429134949868859326243727801894241883745004985977749680977298072044235535576272696845005727135751775197132400852194931628282082243960056447980039127456077056520766828194779716288132671387331747782932289097877116600357275762803980029332919194145447266340817666167480471911575415305397398274904034049574612815581410296827961268681146566356357187913769485007445281870821894033151729434766562392771658282553949402065853794033149499766539727250143895440979744932320109824839730077331062275761520156238960063828927896381391884349182837401435439327162759446752342331213163474825266967229689263988280697332042436172009833138628182794426559828615282316484214282752806656431695075615854623885734859911563908285708382373946703859415441945757338436303130738810258469330803329664898313516886918920904755812889217873322844334274613553759977521494350550629453916482564423996625769236657869377296894486034290873561984182159708730396436287195120163624469372263943119170090992801542349384086280501792947692802320010328246081985943788443783256156816027217142359195886395511935004163973274289163271561353488695943820667202640743397591399451617343787665435390686600280291069023575067620353748725369744994778330011813970742705072912144002216360596627608402008615611506267595951774258853838686053075432103403942170955039634913607610886649776896770889566087458229765191247699056605460361854835776870627380275300486339853454277805688091059476327998116114831497767709693771346147454144506733746440498196332501353396331261334319077438210769068943799141119604075032081556541422552185655983737260917883968272083288648700313120543382718100572753717688070157968760638531092412775849280398691651017392962212917494472565239878406160280214385440961573496413408740382626675767082355877748057970436136106256681987910613179700448756290234887221236619848447818637471396552441285962435750099788425154546361885562951085553125437268449854829095629543751640611733854434660829419745675921275434371908891044907733687357461599895082080418278585999683668427671064792454965009600720135313475537941838549236918231061243429870856481904313075780611847279547691596108764595065841731048366609125406808306194315568087560584877993324926512400275799846823847214828249447788754843120859356968803318931804881030411159074441314365639465160074222874209308549643269717970897810054633001350638533451755288934832669938619168784061454285561130442430148506049823974703324847978255514980572874605856607136591762125151651231323509947603549842992370972787901064511063027957004531308915710434136433740160689352738678166675694310714314448487133110495115425658785915355364441333825099437684785335306052227875205908395209166324491144342661831746053097210038037004770416837447549561747422037870807053524083890241159199193944592326420418811336332790716706296048717044561443037438239706994566258139484941055390753656676485360165307538912481269154522524454113578294206598405474548174981436209734041725582796173367788388639215938401287313106111313304792548871017131168455697158474827244239760613960007694949750042294484221575544560797452376861039901532833365647358583898229281406143289097679063444198489475937117018512208218582015185020878916393527610251890675585676598067860582551494772284922432635991505323671593767034781912454994355310919950292427914972194736062884730635630266082069685173959452626356015727963341728062448708338842222015678297822613050110671019227349377244293413942813459965602033426680079863772186738163727349935753207382270158051520456439079759515386316179374135472560551460356083600354584447959148982031926628646635116921122962122011955630525620861091988313489415742842710412496020535482207615859255509274400083536843687868770309275453515435000508730449851392594547589504483337807165309106185392606556863259722111146825949500815940803796189795830257724347576277711775085226897427405755652395458746442614014924606539742400866260360291224437164588951946323377171396187423202319109363112139704438259660609940416508493507968168091044878141189104915312749988097423163250656524844679838338452073286745236342018621015829820117444497624431161405011274703103891439676514481416737248468860771959732726588920682722557426050951311739712778432569846051952034967632118211461288079599502615920161881489873205373372231303993661005410626960328887518826171495580812877268922515613855102522519881738657097154806124379239749189036771736847396290187340949876051174397299298007104188216217196826786637434766749061378646298510715814623219082289669824877792337691593961503934859522929163297438695581215264495878925080541538479318859952154596260484287826101806254095052969038539966213526404923745107636717177588672397711836582784125942817457508733494028308666699029593951782584273144926045851261890220593268697519228124956199101856719160743570546109586946559606410143483149368580458469884487365155000237363738444010587654528995549951292596582775962709076205912262441724710042214726252131101635219084771722814158189358289850726805841066814848282223554455372700147485633497555151566115408958402381742762661063293818655375543421659584041156088566964176524824291036405404868031504617682175955234614246832252644521768446796014396642259483622772649096209247786605285009496304754673418895258720455750629302900523759443199278509548000923539976786676657283503567917795493701517571935477090538984412605129722484037966864459148611184565940375777529377133940317102608270103675321053386049010437091876724378391869925707276615706686920625917024059858589958533583195024458168531404573771685275488710512584144393557306621451097249943906570722315604278331549297225449015857161803479570527076006216755168830288903744902954965525179731993210058251895927613119168274586967578189275031609101238669474121464897374316443619626640268489854932842540468400267868974365763866749339806960008432998747785594996449291528068846734728208808764467836471901796370179832457452269592793159717741652108693716182274635172975534568839811337719586499558196930878085850836577533443854318610739663188511796386071057410187967731195754965765776402343308102246455003308704195928793039728388854813874747080394530546654595999436705604065679015570225502528588487513176591137906353525179227653335407267538630086710738423133733467928254639693595704650703286183210919328085279506676624100869635006586552555365174211510349783221649054302690546567239621016294234390048569072928247637773481882742290788963069014148433424241447357597304924531090059732585627501794121904018820450116923328026519235635685212996144296462226388728205310002029697208123103627240859769778111735636208301695872201123109706198283903903038847006425928950299591688918525770949022234145335167140182504057269648337971034611259541031025802205089580229863078872087264714258465364294845382634753952204961669437483399505239888790110597092054021326470724095480285734104141016073729347749806907987191752921073595000800354574561842953140591527657800595980441833449772074035836456383085151481639459781051870189222400294063976811874684232752712093181049800837273591139598413450723300000685321658288869998211616991519480553338888298758693409555343399918943993793908955845482772075658183292762968399517069130631165649528420164594516989183331349647378205359886277536350741323441848652077520845226783851547169394522766392552140815049511164845739129426055458907659240078849029313100298785854439710783105901549147503340481133499960262570169183574687020262899863416363199185189125279467318540277966312772091303844616301042229373316153359228211699214242541012892160987999307027500910329831015484824818084389620180034861036112243582497685716944012507160516221702915099012391516620360000168998824051369958481247400663838899991893953142307013493834856198634299804245428973576547264546348334002567888745247753879517003999430293005115799813434576130786418654576755041896956411848625973767628134486852426107941427993477759263823871043267501697706364375224267971163249552461953222905186377016811859587884822830667312344129952049858824301737760503650412273182066888948877494881765610639047122376084786838760602621785246939692044478490595549537015678830835868207414563489257887203568343819673064117630231305852731377662756746757730905513117604138796970414590907096130507225952264588115304764684600928160384860102967428649194982765122911225175209321551483037664448507638250464868644634572860938811819022592817589331640071615833678887076964842055500807262095219012507088541682125640853889286130219521503588975656345918931906336015722659457353664814850403965222756803851859410993845527474280895983898136336690091667345809738525972584469120797570471948751569498148381433721902369188655128151819240073587042694888564392955516454380013240375416731303063833586800856470922766615594459437180629313700393505669962313331879978836382854419218385484639733084004263136266433903817679368107477405325232121633922679833815797759095453322684946963228793491137040555976277687696224086471360930418843429162738283937192949330682466443066241662408049493764439252447333297293984985401077225819348038240954817480301611433733606007551521645907526394450555923165931366639620827898771956789861719822456801285988324795274153421836632776043681973624248414360069977506634564120253093970275591179268453118019410089312219202221439354485563193531475325898170363823057241448795595293624664817800431827418445884315040399435553493112305731159806313730044251341018530963306596122535041440151210932596144929768871501167546254944505248166958639067843000454355142832415086133343842625287391257692402952027439129524901752361513750548683789857701272374065961387015125058254475804382213295309893846219208347884012412838986308442686249179466047003984972926930438680545680084880996264346334448817939907105609526182863576089453295964640895643967043852015917995811534637731061448581762161892572237909183233136111848712618083177154469842696610126037778574528929955044196218170269806471156143831982325021835237143811465315334599666588236324451106289534033932869882532106724091330483288843926315708858079110649034097426004643097037151586342770281586493692156487167376023297922733312323213904483506336264979390058156083611875548314148842216503296823122888930145465082346325835136126018777882943064662809989042756521429916231666953006627596290403632681898942406425341131033622657999902763398578066527207570869838923570139659615075633044619365543605068905329579740398940600365816525753234487553870073153291389887734218071929871041578300127045910465613839748322081001813365745483179704705143192739477318578598235323258559247062248525067434962041823383346701680651599329456262837064240593832116417678775136422906725532225918887306998181940142234255664668748417569940081317172167785082573282454731935157390857727818389891302247179797537093564443143525686887531300635161928975193106534544206458700676762508322899411198828615673653411860095817300551100767707951701008076127732972183610139011009379214179371100577172207100537771846660778926724445977717943802248899078192712563315990451261188628949375498432868647684997073628648006302458476306060546197448972055233477630333426839456368430319716478444858771588120026137297537238560403009153605227153777895263017244689262223945345243299487757231697736785188635972320841866754403854232012618240938748176644140229709912073932527354304728117481352652555358697251536865398722785526228270518321452252300504449102232499492323939104295245561597936386902736155550603105691303954772201792390166298421065789573619964166763179750077668162447502342931100355013906283661029014473426525259465594855258809061496266285921633551787062092325762274642835673038483229490789587113598511935083456930519887627147636680352391003670052301541354428136798558486864060467172470821834236916529246141505197813841486839613575925468818068401728624714526953069419249059016804821158830237430916280601989220959190105069869733161488851106038868994943579182289622979829682590132965209191133868636029900160345818417705943836270006870599667882940152996427695516581299127886305536404665384437457672199546277389932671645097725074568581655527414306518949878458487512418983715469245980747476216965570349703186556673002585242604887364797276875347823520405132821418545364363093678781102452539002773275223017066987016588282038590567042878503774493263016897793059417378671814754367097625032560180059407145753245810109263165520973371710497813311654305534218047783857776357815625639001414287337129645038203761215662538907161605379699212785368438228734759035582648793978051303486426376601205159938263950546352202050767496082853393788718357649791611183389990783816858255444387684642398051874694235715904994365319200362232150110212482392630194456913314339068933698429246534542810454177125893093646240747803783970907847507705996726378432305878744700854887017908587763825465195481953847322948899970921594545938468353302371332377902157582831581585097319605877324043112855354583750386389723918694578099261477737909320122265718360906937426493150119405844993934504503541951203760005585799273279488906010958839441997199924766809899284914439764670257847111712985298024488872575220856636084067496310590778871026860083567781564460612869294324033142137185455602524436023942561231069338426338552968349647663448347582845735058355195382005621831335167566649121101180208114636639082178811564530962879437312862959840728389303482029722446858110084253019325651800630396339707301297486964160453963032980047599554068478518795599717023413719712657523836738457158240898481794974850702845929698473149646286534128410505896807705196996143865496067879061484682696173952267096042144205031774260131772757871610182803877442110517971957270336740060224138301673062514534951161435928169189618327552990223140742628606997055595522599919285260614734076823235716957255398197329222940808963686244809966399625491681347347209811803026327046055843761348583734746281046370969676510060691644426220987522350646233869728244176200538034255467473437258625555801671264759649460892028529561129215798148784517258729877361475192093125365509547029027405362963053288866501895101922855586521227910961788456624100627566872403797751062839090647272474519696576507368138916569433817035343806218393752842331277830519476739376086140760849216420745995087093284221811069338693164167816836354494015735525690721969886815214882680590588860081636686600641988000130391516521392337473771983596995588161851536907189825889566105431849731489208122844708882623340119913464390786994192637293501410716282301725635924647367916108974829811029657488298725943287661140454510993172503193466717279764347544312156079313322825824788154505727840054909331140364986158724244893119320092841350196211716188220163871623531166606100672446620611102133242432107058902514683563092914680891452654223491087713258944918864824626127688691111262032744193043066355554847976378459246503637872470282559128797788494941369515128746563068002171933383438920862712786001689139705401443369707037710157928109737105350173255103449804360781107275163269568630174716811289052805082362057082436743915835758212208069267018786808771103903303588414049231643510574397818682644291134195178611331932065569094944918459526708635030705567859517622353408494256065406062120842795743783483543429526984746816387337270976284596764122782867813162664456973213198442627842056310872466574278807259446293502874304658804503146306352851633471142497920637810854239333617539542818955022707608812568958345270470860677389483777848242735675709582482248284581804871362118993953983273717847924306682266853937831702393365767731214283911078731332544476624130428562903284690090077691727598116748397505840368226328468581168994548304663694776437147362368450480536154847812417864265561423406914272599981474106226005872324483469648957025402664807470595828162845775584283967376315729908038670253414259909614286210937994946363288734486728629297100021969194160746850559318562851391131663951505669881907763949405176286447126343026646759964125690324079594153350247707842948948373578100066540911738873156459406580641296768875377008398243384136782401734710976275694496829983177748013529291771512820562585050472615189647672427557581897298790167752379694604267966609424963557026092420802590895264832839606284413494469525440725968791716125758961129737322390314405400868686681452292465012968047161640031845976602881625459040554460181495854101284886780077229583940673011817026382508293604174296542167199738917217057463621330859428581290833878126721528929591786720267474282683713585096851839796799785093445729531820731353849387964786998251503438395261577243492014409886192449755649995804589197134405711217512259308257669950106900612012217924860981691288848134819790957415810845473335373673825093816897061101657658168021664434181440365086925589976261550985296194719725179472506147514765116858715716719641834394590335909961805686450242649741058527353844781834855523665426903705474172568172091006792029098752522935761845265205957274049200096749371533971066628518806615857159097793970329175838416050762272731289368956510315921601290659198116543154324984462050139284801803935274411192660532563449913947409027528759981972820345410849018168269426935374595585740093446312151096688131766143040174469993951240352249781501399021386832394326243278675323770999178129118904584478130946339895310164658735495727550009836308746170728786849315586460587907239203921600757497445396136971034329924326923504103074380491450271644070235054541657281860358364796818851174432659300378656510573008884396621175179309143426336225054733963679005699275506165435436315554737838616782663150388145062960913186177015771920912644715220743519315163112365520629332891492566322267476551045002538117958752958894750104675959377584772361089090583363940211814061668455246393452347801091121082066899619545534991092440384358521527680223537450523505692810526384667116514060649165235040470372594253648887283582487482255157516904527257296788878163121034574853482045597262757021056047581632467661053196486480076072371217319463507056264222716860374039574986747938809096945851402206741335043935678673618644490517885814997738231284457820084141296584170791664290364591293183967790947887659855078047207321066424972853515704931193598608652442780491044546029904021167229549195619552150171164718057591578195206297920272882015258385738565047123858465699116926660791619984303629162586580357721334072426444621729993414230870069084199352386285318786221505955738690812240757614221385037130184171844507071587185698516146118186328180458097501065209964241168960730937369513518644817818254685506014998139297080760222407655152849609280067583006919607214090777753577599239704428261560011569360055427251817222404950191520151443777394950796358348737173432754278019482561550161171087624273578071521079907901393058172488805975052077685817460866111660880580065053455380537007078730878421600720285299106162458116170872691915836745243566623348164211791230735214085111741685322550963291854548649890640142473264617975603850799529011546514850394857477657698536203711525712196273437483069600245081411736831562274487332083667751398666618668568468042624608970453909138790042611954613042304489148774370071146844550360773536493782945257719015801514892902732705646609793482187836631136733732923832796239590708405927562902783786440732449803630666890578391770019412435586758654753812132031516301690967646580553420980094008536779768530428911301218764064352914015304647246638243753758018799498691283590468033166418385453194457064593018555444085926698254348488478188630843640710864117012513164451376328219605724550059165209165294133800598613678787762868182556906666327670061081653439811633541504703164224072393865773072021109405827085480756596865933852986184228656766598056844985264223785325884379862947546686455686890575199825484470340176616422443593562244172502409498031555514218253927765222920568538543088677705785575337818994648738912443286381227404730788204716742304372477245846612197930172928560096207120552736032296541596179434739626635574614078949741220912211444080395932129651449950110525310627243030440020293330708837775579926589044445750641611327018121127721184937330233985151221311673682207697029981262711504696877709129175217738519441723456330727063357001613397168536140319611724273702165822235386549647285618771988660833207132237974381220016993548496253860097198191808065297919687925300894068190202881775811734830460388958495548210590537248859889201671784140134206372922655744388005034698178311503398789602250013527908453136501853090320897010464402895691236172542362296621268611474108772789812281823776108731988162548667064876970085598266709946362802689054512980577577706046921483098981575205044899577822405273799996690162178608781309918743822876948480738202129301496028837001454020151954958983176006403120012624657760027309175657890034314385679286120830468270268222532905744855150614259130466051173413100176115162595633359723287773169675666130562804558070339500678985558398464980971512953813495788376494867592438855677448984679962357317669994092141834758799850681188703248802355512386939801042051104866337295060126730954709099413706889198557341122118198297699858125486765535161599532619041711639469626594771893861826796537170724951929434415624868425044352690027905751752765437031241945247815197961695482439722408952218172288957024948044408548843355246639495424624570364973639677404661678689964612118668633165246017850685048575643511987380512201204743319304680352591662961282917285810305238208220320252408440670997334140193975509843238758012694030141093707129491770265775376703805541403852986951199057606922610115189158691125079599638615244003276590419635327657822932920316376688899659388928991754736572226999753541058004004314435367623707935340196773462902461298176733977166059159162832948156936543683226016502680987408362624003945579051194286193457808596735527391168378983704545539792407661654365710946738137278159146144459795245057318258265430190427859292908308937231770272982231855585163758637576033487330279362998222833395885390780218570602135889432148980052271666091048577769505289054547569831774386439227725100354248196616058472943462989085602547002313058503244677559046266630490717685780511214906822083610413676359488714286288438254725205514529617048078109146696589735694060584425587040563395664004077411895925517085992853526417057635323469586275109153105880734460401127697117608770078618077119393958262899242331898062209509871031743640361100041809506944562613522237326178768653140228556318580651508798244896727731895289801679646838635458213581999005739079640444370761709302696590007043460296369652259769679656121479650152151169824968494038895802694231005190777797282524985046144318589726028678342539045505957527253604694804408918482099349745123999269813488001240473038373531623609336045503650336307970980804382354777782418175753372622988987091493332445438807196974887780309438353022890580355157242062145897134579380708807533423428048010970648701368105147828947011404253165105679067473265785693516489477954698183274001082248416199815707855968486888234032659051675043124202118886042250996171208897761138547185356913326669369083265689287450090946143362311686632775441064089967858804585009579052720780988486178212013083455577849633202974650820715497970159778186717114822788513409257124162694201760979516400211849589802250497924415379177521493167863474880946090761446814956510588017417180788303125446868369609184739166468192884776286494252175129132951277218616986100192639184883275793465704600479211236727206731857892973268026979829432240713105341626878556104553869721831182887012649663387917298848884417152189765027854633686708355957127768504383946239973340365692979156850802750146595479710218135248441750338453121450287331978029341737020078075251151337633898735080765674861901431426873814087015501292856314185074875282040000575410757462458632629454696487040263323176048739409215790954987554984865974589369052875037986242620493394508745995636334480544149800736672094561576422366896206589210957618359077554820179075515527381216164037314242168348453502861366336450264044778897940716647412993614098086368274274717160314602333255079786798983641635711078138493121962447176946241217097353788584650325041793621428531420922899868600531083686965511406752613133033529612001005781500831301920983422829583207754482909332441381231298838542492028744446756098106726974680653591404499650697383352716095858243342105860142430762061853802397901664391707207457090062772173549877306991525148016071461090474364984203740595797040632930644899530751336767141719632668069636247818557008770191259462997786949853739446380177622483779461388805949228567200925305470121101209461734845717651047250410554184303908878048481188284417037586168814058026561503161108081049948977212317658484535094548349467855729400985481758518315490024595581082834740269394919183013939351117937720637992096996900477552483218617756512396954668040086311383959457237531934201509924937999433515776470485390026481929773280629666809290738486687895075133955397973601847710472586012791252740196542761822187858175718700622479316287205208585237316743132957228840675603276497850863536910004609529691486811000979566863485820064231748509120535356434974761669529798796150517057819748853016172595778268090854024400797977878991240924111314735270016373811393352652081010283312043314868793352319629900294673787818138621150637061652348957811750859680871914465873766462770310820162415605683247757413595679435387497834749061320520667322386259083725885910741846102174602923069176646316731120745152739961484216079148532424386399560800937187689470965881506112993527563725301931306523895544587133302822081643329533480162747219820447938049791102512071573554214738700009935589242244896955378280707625325314943206450092899793194987157684401377610343660539102249770510067293500258992206050373140280713489622527419220306527071676756684324201735732176382900546238948666033830898993767183605288672926872450360486915949192511524959026598394193061954350612466814881132430106715246428525274672806265798538404386530311697324623428020999314930910529320536840967678834605799834545803180374172056757294527379863055572934028898099801673748740560887878018143160736534063297248038520359030801219467912664641643113825622094411656673007733613853199596216142851585799832902236521438054643137893757560377804337615821302835735603483318457646471538561801395127087572410900161892683338444006169468179011955556607380942022045457140123375039202031244869409536496279206367036782812586298554280289956133780344531737266142294165338957673795736433339813328614006414207313134460539836440476781280746777112375623315222865446235993669032575429684024287238754654215228859339003021417809759453687926004108656838341478365181637013102408450956030858150658898748773448775434507917488491905816582894854205461191898288794276926231980791928335131397797115770076543005272735551574758837402351274345920037095742240963414410776364942708426700186237560725739388652185199322720946135015164076682082497506190047846456717202286981724512845599846015312765146484671608655431459334805333198225297792817906929715594235782902659423220277813630503180400968508346700223740382902167540497713130626021651458384846557532322309587268358024407897473440403245208428166750643628217679347868364390423492039894232985586588701637674551499482630333327638003507470639036917223470301572120532667113264178728761852618628951175801706460423023116513631900622105755946713061698674708901799293016412752745919428765085344609108033450730615240010967525000236110475847019984011189865511229772882650527701196924524373686928626202464099809438074703155577554937610750285592274968387268692553505972036464163833637896953138742666947082209552711880795335970872287797833055086462418859900085075703618833205005208826309980618584435109904776541942596168059057182024922046798167912759469674710200600946743681333366746532435519306188930682577729658553183634369007997351400393452229316331465244089433195681215114187146716634712198038988515627416655700475419553412835358927223782186831839456905376869390663553403004878629783792599560651170743765372499564359324304101214075304774996240467470527172568793009729623836711148974085658477413463157801650724660204081680950125451933418250565332985182031219190924708181937921242927121148660800911216382435561574227603197725850192887600900496498577824719050959089098507174019742291974431604494894994734880691247511502677863442867963095588374150659901627595421978918818289351597690308224456193950745377132626006133584116287955304633001209602251438586510089249308207716384771431391177240185864083167438871198016698341720921057542869046544522966569276293219360051038301094200451884686260721314539581914049377001094920254427856058522104345950930715529703983494533477804595443332718227079913461292373643047606534743479921465679892032601858696937591598545871164448523725827373999904753861132006590338328184549466735374439601064038196133293268459408499398521941445450655631241982803732745013946875428143673330885871271758366851644687764904531455256688725408677935695394752631665012103104031057381367331320077502174772857170459903596387729578641103818049239647610375310568461320657704100893334495233477307050514222379011315716749672941139900904466946953157294550612983823851534560616977630152425357758935732847864220055428069190183014875103770143832028417347234304640493233590285733922423248389588573496516517134405668510689370974025412660452581665764419443280622324775846409175382818077501534523951963537240514356242152817150346982071194844912364612453672617540658934811095708955675711727958097319836776681025079853405343764455778212751480076727416619183819712823617190171708997105846053947371165614107145923639041616470073764531549671502822700590778270118764354852892187471085829515582624239741885648413577322489729352181256187187409400406783305372475329045322727174943175680009627344572238460488457370602177328777726058415536835175835730255465865412147397918293226486117146112498907966864617081994183893506442944971294567182666626492547373440534858918970779618372772462740325441432673098958866389964302758155233249486740453945067306503821857540835164298237702645249834132251584910509718313229979488478347744610600698797555906318540768772809677667780865653855689331640029082302948199721756658761576614671299566701741965014276151629719480220349570285136425975614995240910241204785622924552872753506186057922812593872580745528572499492078863012424306469846751050759444550748535507860135380716165416391394289443165911127674049783302306674974231051816290648931493193204965728645259930144294007099792852807006004796070057113483207490553524992417959677154488821785422570401962474134688971654117576153331714929323976112981720177295088374547342740143151413546104215935629081441028076675590656233477607463397638182943458414976615976750940261383646496307501655749790941150024343725268706918586841073387464615931804947472089636295996944315455146486836238447580342097790040675670715758669698887493490625269095383220924141560875546987942509191439686275021158314248861955610307237199465465473442745354123857589525999709532951796340239914483820352465621809154312966514018833544044055734988837092450765913417243326039921910994971765130335278047219344991175363196358043085656874151490873084678822406853190532868643594359340150895776254432714759269708121089434291576533924842058086247633887267507520295405747579801819241628263965718135888206216273610390695910280547233443043512809067249922841541456707605352364401480774422510111701853083648277790627593564778159321616136496275742560707474704162958049677553842431903059627570241928661698995517948893000003351150435137961677177665797947532540231083536033599506894784442738889097458270593605973612003417350164358887992049197772496434497445621890256889721859045672462336974318709563340725337737427147542104855988144764027081108975116928442294808265317761337454716571119353610662244907139766693319449725967291185693860164023860746674750321222005921971967762594856782980715955794952201529237842776793627334931105855780437232033016285022441530706131379486130443768373775374972364340371556284773158429948885373374730727313175267121305694643355882635724915230147052662445115784411303883348668667840269217542535660960364479052229596981800773775278577595846608962436521344597343901893184591493213292573154457679430797659797432429393943644272012314191554262621475400780654365746649429472272165776535245058962696000678819601890365878595540754996146310029279668624676382508896902562853007383482073440888587191842899077764469952689576312125838752492887852544568202029375112264754017486312204226663617388822713174124414030183115199923766355414467606414155628513933770850961906021608479727258869867282644974312308782771265885246449985199184610686673895912434202033703016371632115288116377704230894748724096806003848614609164905852534245334740858949397703390038100949298252070774535223662113938104323476988039188901331259684596325763565352685867354663520586399840729042571224507529386520438333582031024483429816869304938604394612975942674523499280083954047919826495453168614519252209553382301881357694186995213701288251557168785983513188089538812629835581302486293262916944030828109521548349757516926431003905488935946159403243999723462505122402779920890538647661139384211534355735093895645724444253221529430167471845439642309301551085732210499224473897999435255234099912417865175098105620393931860722735839081697991000649295306447230072419997860658932989436118497636882262200411739541874099826492131870596133952449786594023943725285888825370327259415563160698592478116291483927690051860949907192571486331475069383810397021739511543967155355577982072692285000176756358743019872337037698776142023693392859778368402081073773369006595369091216589355800332610663598934055989569842749986743711502280178153844183114582796905336937939372435767449055858538230994292823754036036972126176443089008071909748223789325453910502362476030671771054335630834090065585329329501821796810412057551620519880954686680218950035844075821505425733582793957549371160177809946643624871463149075009120965429368484651467676970162193483250666533361843707910723867732927648977759806811233118744289295213788999363809597885484005952986485751919056208142886621624086418598801681829695872756288696774933069619459274505868233004721531289438873964324241009377263983259874084235649458113171061560343720813969916947534959841325696614609033718402819393715933117874542076675258119026117819461988370995906363882730051088896118495487723325842956243951866351140768521486515450568195583584122671899409450348805893061042106024712135392137221726618932424000838991060198105976064113795385007881422609216741322843995948450457752843917943037691187514849739045876050256830486387446577933055592325507793920919457828467769525812514530475949338859840099126934582303134044765689214063238663039816684036721540777726668801771018291517176425886345141507935653300241354743530223849209353179270807820057318117987076000513818882436638998162720959047307573952987660942794308324636272209653815770427605799930714431500939064346404635508613474469775674992026738115253276786883634593159514159396307878063879725303594628221831529695969713821855789877921971307449494807687719836051287129692099303484478553594853102100437316982879826367397136324777649278281257201706767619405258561232232565620088078559966690288628585000852388160569550889603798095583586403145969235004669576021936585125027094869793482249999760778151035167150971966378851017752135310507102609379872060638615408774701829302149071454646221994341442223812941106415876861422772813776663338164781226278749681715307052082623748449344190298375920494149906480560432695242644205002553838200633666426731876575410098934493211109108705189441813370369812085850768658031347463552168689446368470319808875149773253563068083486888829965317926265008029456953434514753398253264469526280656245500315667256070478053322213276927960138980379240315145561577777348087480725634462652891455359542526723054311218805750149156952684289330056527774561256634866033243979032653723557073520914288981973518761305537484823664718188007044638837428305514810537162109606395805656553573063732090433739993915582482182350306580769965456273498298350940807492603958146414824446767518616326877812779208913355650893726663356623111253462956037975431657940850825262704667565569335791400596714781300399846257160723124576422811608620922297543561177547772646926948884459243747291046487699167467706476902010808775327052258975923938746266102653790324452604418202140432118404932163435395367177403325901649030166014088774360294938279061159710172305621558207123750193344207755051965261446440800579885609695124487927235954498611398601298284204959759015149460250802464770134500364455889462751354504727121438621400566875957745030443384875017892602683432796808648790299004269016856758847286739003551123144843402710055779505046770399449811106459470729439917353087308500571268597235925929479036889579452945065068147605149751996558140617621576521789158038402018019851631126980071769699627205589963792428476468564435241969160159933732388297401827799094618403179576752119512653711459813538355710400385465063004121378054982516141318137608659334327136819787222813691188144397169937598914300197304987657691266657431500444716450850478216011435376980803380220721223956342683114549278716560047596917122387848744642361203777483990860079322983708842188048784571220262922963960425162644617693921613276006282639084544756054933098150884999069804842270506190360963582457826655504105564157847153707666657906563966304215762038031730133618453366625709371427810956427597434107303499446575295920942578649342501253144792257066192253765926849640517957320872705546177160695942698213112909797477807953921559478679355479978154407193077086142805369374525835204965517476020582483505377558647634472218605083941838318224541127736199642516305388063964672756408728690569945445237717970136486958222204250944602713159216163955632128869050545641193199604797894416050217643829762498139935758676829419610069326785885535546871111777365220216092042077650658236207533218291669854635175185709127853400983705084018929756823705593760416368466177483959781051576853669108886672563923733102879116533356426480649113081942983846907309359652767007519062393773290658711381760134007098779296596620620953897614854708757752448811182602993762554372556877130238521955886440193431003708499666094863370575476422007391221252074092156973118620418694152745661490245441291697828954660144266270860028801109854751144014771561647502195636641250692204116431889252916613364901262986355834722696363524855391551583062513392058908609161001131554293326005459863943509482810878039914849366805484624215767267018135814448494299825458881651118219348108715916121838395639287072081669464584835987932194152713865097500163780381420700526835938571442368053658058838015066013792528371782812817839575924907525223115391508538683857104857968875066386188774857513165241309191636214140510162239221804281404629049878571744066972170862989258615097656346560088646799554450602433878105339165461687626298207271392911234764898824668055778700148224304980327869566362412006043305983833285180803440442052604297866725283744821397742630645219310687207757879488685077531048978768557416286428344228314744047742353634661576313963150842655665763941377879858963583422784893355843887353692706149043755233714773958041643840766307393461723859082534526981882507346515898435045486442360512866024345864425906755845486420461767315528602774600757732584973460919592428129952677234326111962825610890948781103068538099391406192366172158010623279396110820267055339457124767092186483611521177833595835447754538887596012964127520356454536803783054512427646286013406827119617570215129979040914779938720277528963319517385507186829125653552317943708837672256552925318205949918335995442407699903036688592979647941626283179616602272136731842457890001726200276133603993435537498532834759548804189526414574200990310207633415749936655725361600531262097706745270539753840182060356559537487490564888876500330328787667210354721417821969263935747135654794526864810148395412103160581744276817008322168574845783556442133032284931026694721941915448823754349457999248103371418405552019095547860446273729658331670897768562912488964948254825039439783367449456245274266928963654436557475947456055640937696347666213054211997275571458921077064624754447361734125460001975276014466450998304011928912674720170912431154313157912567518283097858890385782222509135259720469528056157157197744800180557600208412512076605728874698055222158959069107567997597154049532876467873300191555742572077317043202109717025747403226602491994493183612351060518695992761062780123292219813982382710438910252933659254989131050384730039830219525771978918540035619761112232116830771597428349042249725098467374912054378977341536011197566347922920848571416661699580052101391200678092097053654926318916447105277675490603010581685764675653592917043648082897120958828215262534042802664542002802236591801925419302915420719728152234607853485860156778011930804307352723563455649760673006760725977203760971195586902349040225137978923379309626865083419118229986529141435885007670016462776862104685662156855906682050970551006429641673487027005153704492953484337489230236940118092865974005785076458265462497423243665862490764683218325143166233400423763654202272641512141283546795291999268827650375124169591572299117355586254668598854523468873898601633609199596630490634031347965775646229561530694868813169860481838061298128647359566542402871726882535128141814313729271412428589882710040931445703394324973300416138906709321754090319001741139341046352276176495993787105465471578828458920196430052504670907231273996516557507866774434532768284329244783213797719942779357309242982782397092872239472051140513064495012153314206627331726381582667099966618337572785365750181396116254834705891086635476118336001671605657660409220171992469695387386093827665069703042204810667624488084772113174244832048645100900903663141264723654820224018100233431058379386933253814138734307932873210869226546699834736450136259971856240656377593945939833115546398083734817891627415613766966362699102082655243333506716068125510083306768034308766713539217415364359178950474846829303534569715611771116000177324156887934981346896837891522005334281826785364561599637983761909056589588183778459106248429113435351700970395823617478969517816112126450616428801450777586603456596546529801585289585614588242986114084922592537839667730344697262050666747344343286613391026276978105755654835682593701242065466602433599216453653163523529288856471507320424050346109766799825091510173111889782855877236512824111885733038796173392816546944546833728211502863784207213511350954293884606397419188154065734752754019548130120341497479756270547326232563347026327269913514979273577123067094707634291974221099263776871898738766770062070406455975359305151028997401798762462192248340240406007603332170961569023623832181827421903423232445249671652483325412316176877154320409766316242254974587394378044606591011004847367142042265623573747369757610116446262118060877280761397002171597910250115364509006439012922756798138627538105786700483373372104305843276392429711259301901895757313922478293118463553260402400841471238944263368973676039282887296967031306556950610868670750896595207669818672759818793901458931825291537050045609624708126897737671136568481526785616147104475085184681352601214262917598556378149442322908747471019588097358412677609807642867979051207928021620478910276476350806669515987051425135406941000796636266423879978662747486521110740017600214106505752455394154727410143067868242602626886801363410789576223270337468088733461149473816515633762146742754096595511721985111448233785654482184819749307691220751852310664500348146011382284750867986703291079910809731702048327078760567692012242792394162291137387323174174173838795719974480427759545960440379559357242174920115827604776623458207870702933920897261734944049675507360372009508273687236027545875066322693456355696270210892724133000499176474601597450574515320114668945847925078212400567844040727808919185575075071944905289146314579299936121485238350156264350091744458478995187879682469572329437517151783316033502762940034636575647577523955967629849172246939776470339045131923324193303405513869457826827418313837378492723189502927547024987509887187247471930805892746800974277167191512584328942991631848438397339351748988333302528123871171026617826457304404339763542996507609190694365127808270336427297494475142568906272184458963229925804609612999487807549157606743169443410007461450494903007992829460347387837909463722349317304830750441716579382532219639748755024099453246931942044109453210812628119050711605114266164972844787833151890710421927236045094254056672786879763376889174967486449701314949636350833368863776918259229124687945283723135816267419999921055937782799139871947592794334080116790980533796734686167052468421870911050747658075416647165605499176355113331132811434082540503671220901431468375313945432531987337402291066170052242327711470261483826959147433230559877180583397692701051529180344291259927147339574933916671234155349126031816355161150147286719987853747613295015812060563664270030841500965962731920485772865531328170847277470737878871936028210176198539291696603376299567509010933828378229346926359678874311213919663995577307190359586765345576188195160029493703439356834751980581926686454225005812337746423463927713894048978807269036821662401934053534943574918902828134056113564596113992246958133816020981586741553347902761350989672853806918252010092706943505644642717080393964696444011656087522264255524682277852023831494087539363399137692942611617053111022196124952489861421311509864915257580734558945900550006147331377098058710354239069614804823409057911669664741520417930493385094249433392825316658841114115932857929964074513038454888509982045361713444284644146766878448683316351410410695078892992779129615330632999798208169817584442554460097570171546171888487632772057098831644730901716669895436564692713075254049429205980862603631288731823227399672210559591522262446555047728817376890202817293234493611588250349994836647407757318047623236481462413795748937335949702601241928363370251709517303681906003200571649663610248850198570232417743777414638988696660924795787809333458371626583138864360962602134778365908150336055723152187939633320960917202452599418807989667974074254054950687663276697257570085823469871402547298308765602242573957091360258594556944863405294369186560579298130207555539485269142206563144437728209869455324536993625414067080371400510055749570727339662330502838342210804694290708608137676159459160026105820670226223322708870055087767608132463596550729193213703053755698632842389480329487692491432990329854256979153735332137278408325894100019188457751634354102178480969107556501271393800080159267875219329770111853767266650564570505839852927561399927989650990902087408017627539069980076256715598526668296828504307559581760489263113459976248414628101005253100176353530217021810397075562547788538060168482914239000847372879489085875321713559579678170968780132784766607080154993801069932387143064605597252159360637029861286630985565444644763531435100785565847928196527866415348955246066333412993973832629479894984786139587140941379961299535659489936167780030197228442708889030992491027038025705811370472496694269035270980044736891535995834054066645554481078332417370858348441008496492638244629440514650742426210036916237053668921962581430044797760413144943233940990993095066005854229279712560645786531011336398430384400809770223268576863311018661142837484522749760506498356469457992943620019016113792768534951653429259287644172942817360137875723837568932119860167532984466525183124757190130096029046704072080846349141184731881195000631089990268622277995754349698403134876074785657033356801796783243367229046949182607663289757503323104255336224822978756536232383738047159623904803223815663264411775106426187954832211441363672208069187563469358718969478279369238822578684529352954235574461383004549107343377761905255796883791215073807784964774708732655349170476452874116806208375708496962204592849630979191523493802031429507518588768425447525560495787687414349717474841000206941809341526427804778552529417047768737818558520912495701402694718730582453932935571083412383278900437925323967768362862812961700309894877091114034677419508450611105890528150401010796020927409590134908935472701111224761015131032017698162868655073202795114768954581957264829185020636630535918519826824064456937173728972681925932094832074020189837239074731771988434461993523797896822758775294002147112390855517000075689017153671683775051062428299409549525155186205269864788167648876466323841557316138327334201319555520912277114695246273926805578184466306750410535151663043408611690491258822045888611448104117415169815483207015265394312561219634831399973789547328900042236892039210913573776620082825837436540609251029896245419805155706824888041943779062814532139507957758792630388222967403427196575840061636517708490368270128697393371796006737930521295554595225327804829290074684756615221144469314123106974885658454780316076977920960354705175213442764649024819826374598061958886104616057520530814617437630986205525447060389618105515690548162470530073505142915589130981693072537525572373669219202297487401938666790393083382721844420440923390010036570438817884112306995841525886813598856837633164020627067453932937980714943081887560168886411265728457849724277529824765086537215028148640686461777529769729697200644588100076961651029768321311695016588445171582643394940917459588245443886298930831202772158902666283274020772345519080904862325930641227531898800124536034613306762653353121004795027474230340619283274383922465863963668868870672135347631190806159343064643519868099461730398549170306232167859262366763309731623539175580217159934660920459741499825329696783421363996065304064456641457440359860694294404824237441104339330532928844714176665986166531579932294143634133404812430043127638992941744974287883712173327651598900237419029194093211525361687168644059042618135121484108188174051407794539559346233885755206803068673561092283815565515989273250111094210297878131926704878807149275815320777107503739857103833045010910317523819904612681615191099088488691945164516130098310326975746523866673922148454649612794985978595372040368734468948617717414133495498055791611666686580263814981907312651811605545965963425161728045155750920899171675936239025172258111873752470511199567615967111096328359735563578027908725315392842272519090993829780206097696355138092758704853715762864460363827781329014676664770860842647569284941951779916406723960196326883818683413593290505874369175771800947449643123363805827248227058541078981708147781489467738820953439202911403174541687891460055210062900010309368092155653910550458281835269499727482349339986287663771072678322495550946682621441399079019721611233486746727351433846274434138368150614791899086231943121065835419332659131156184423620497269480140395321138062197216803619380810875691251255692719874376372117888787555406163292090159415388819822785972942025889477044412974199406732016187419794992377318999629441548764453225182895076134446278187942639324606797907817519667512661307792883183884393241879465785857745726585761276961271963227364823122816242624909167952705545550347910425769322689083173791410492097276485855892751581063375994120171854421057161544229953326195300165791549999276268383666194921239709884169391966754354884429934389246833150026818555254222943844583345182322892031059017868412498560306220889386995449292134385494032597358294426431115871676543187450452989307183708481718887628818652208349498716057006377603256461906989889566987117822549227103686783795828920017966827508415838622707294848278682567517514347350252677597997968160906743023108238000477703209869849777551987429767951008236284695259286356426474289636243381160489003470919016246506952680929928591303891057033127528380245605458112557891132030788578340743267771814062343634280078802751305341516280662745903520471178795223163442840660981060061535644825573661459259959305927204782903349849401498191088893374141322591622415610509339657105437967212441994272590205893110608248060139717573789659849047421196594448348336624239837304358199496915115808928773461693720656727357561927694694963716973699332665355762877808657012134915113165116078674633906747558625031748694626360573039718834714575785789244070218796562516455549928871081769446758093750417368115832918552507924971061951080318197376209555564473313251444728030501414180463228463962678515595540692727502106259887724479071672840995440408906024563584072754291699975210402077931984697415758172382234721214144953624893479853389926119429193464149235162537227704812633649944303517635493871005119363784997846607457400299659602047225598911954551773457761900920725541340718906009374042331405034900278240478250717051631340873695014513211331511545845680417298049938516748941820965660850126296261369944696468114494416893187642384636485358161090692156008314078822307379882605223843500607947476072609946368985862466831312942837487444311660297075685802505269660429408489477073535206646153158241142086268610198824802258942425223010164091070270473339720205796988769750912821629129519755526820621873886473877399046280535453214871980580499882636025081744030553110773221365669512426833823411459485878874659430741727469581531201149824981189049787277114389780820006762072575851668979075118536527201492817858517627301999002544297802049312667826965182156032751897250288950064479863780444435260250209295705054683860971929324381864077516396165324381579314129991646888942126832933281502379339947899805724102521265156907872489222143435440171970778885981523055313977517416164379214194796916131921158524703293116195227049340112935794144165250783118645650813660580475904424864393052132139592449434359320127089070389568261321998281678490476075997878712360151295044894906072562200218856950721474534795209050674470951701372058376123381549009397826961033587315689545905101035290627478080844678264218278860875095458802870005324455314252197150254873227915795933671109843995858209007345261859392268573021757037412389110808928435751091212030348856701604944281957774641576063105542471473074735266818755273227838862142257034369230288274888170350478028172180118089449444195050056293251964872653832477985338548512278065339077969595340718763875778087968117155078485920393405051387395743201261528430668028640248273800996859016661500931582264538139649140683843875786986791712710511831431156974882493608001026087526171366151076100366976190682461767093691731576042084179517906291825222147682792271451121745469061792226211578069754922140518225806947068468129960041866204576648851495434885816962705267730896893003071536067940624817838570251862709555752772880533209567701300972125276552027321188428168035959627942544151019332024048256113008504578664199481616986333970295794376099774434709977862890478121026667581894077646450080894023504594226518519822680142250567581234380453995118676328449771041760179145635825675235699151069558892150565272654002782876348435319598630781151269936692707302934011674522752407316430049688458294927694589498910973453783589081052652510753855508818059073043187479893812824229299687848088719852793071097941899673514323499777990080894615494440563857748187422890974710034070988157046899326753374212638276040787886522216580790821161162524515619755835251406117902500724843661147056247628920111733755157741453427096527193607298529696847095421533713789456480002945066446338340091642044329567825953848513301877875791404897147294472564198547458822128029514684567742368888503243256290965343953019998016304983119060275755503088512418574358632017431159398293925739162879070037141914595192741013164568497780678558155680540034089031894662943006853610732836605075222348312132644228766516931597765501236417270222798044106069213474325254213358933974062546726839882535808757933130290380576640536939008810089141763697227221109598319864842297096028417805453030298879046574116042671311969537201651093415429581974183292193443602197456535852795580298409147725528650047323051489220200676043592313887037544652470556599876980558044953159604814989111550581354315027984035303455773444448232291441305404096923077080594589517179082408903906202430565764810923332582343126484810237330314333702260439583496167867538735260704001939785379891712658851554572631236037087309320057500192002236020397275957364204565188089918473814813299023779597066741852352658165295450231315405763496779335510160975105113670829639673357701611473543585581400923558535054053528869187899534783427106669628964107303671827676729830112744866845592932669258343329830002280269914870280247769785094233663623374851367665763019682322598332868131777156079198933535497601964645175847295266088369400019477538966203412427345385882247128715014554403137318286806699864642045446751551141205407784847309205378835061746011942070147485242123380019890120960184882203089368304379570539503773561344087625627728756494380670687985078573935106276484104259086001550973644114203445388137431527017839731066110917761160690850307858091845356796471853763448538034407957960815948244003274280670503700189201585476859443386288130030377519779504498603112879853264627809660590124275982447150168542405043522734522579728140268931735952602431126606352072174670485417072359158155992760548567527641852184306692609534284414236088552235757744287923143432240802387800239704876049254709444497132950429085853244626146711254477450794832161851099274688488188186132176619584674121795596909894817362668507935511192270573246553264936385132456389387962663490042964461226816269606098263521934183911322756328268170047424433286750006179860404066572701250134030236936018055401721764203522034221370570836203221967902513896325503035122654294526219137821276097947960858167994378485984463031197282070591869783305307389627010980131235204390333749802441500899734112803463629402541330232819902263333233722373729907012122958172316113325583769777391733329418590905034582679200210832067898079814199084543120744539071879246382780192081549972697316695264431024557433451615193365687043565503953318502341432082395573387697438007314964734476628251142536812440926694988149604179730217066458621795098787339539178012420362146750308943416298039233831849300464333933200538612296163788250994943421274568351831455147594235425551450604625848380824646844611122967820620313374884401763458612956026255982293521995007498897835777809252927757461395651416017521762660878144177575399445809444985118896851857489826902133814012400347918721717247588703653656289308446683154217705418096359835058925909622900800313472126750266391227518486901763090223810596331998701327868198423460343210152678963819235577636725298256855288137402755420951454874535781115508475969610806044813389839983849599423741319510156489365023244486170450709531792563076480259537491894756616983283102152631684955467164475342847345145146754925606911569015372096827087088225813028962936967136074040855720036075470223366253130859990876688182339491468165633722757078372805985652833496393461339060696874350218322011670942705356517879776527591838565599940887712804563365161718330535999821290863898277513236991137372226972590706976663199198965950986231714186510732788173976245858068088550252077579947056764101530819277577234658126504586077471841373295623376981296755504578586940022841237345706346116489275646962692063364548609806139519953549933398451854786955649345967805263880069708151476515738441480690000500254238005763828457745563414012942480966552022897596429574724769183645729485516336598725526779321563312534599190220900032037080116932352329499951367209218090022052023905029178199939255303734204535812630946767027980295189698038939627128129075478369091830715768848046754377717088050389230381787844284473590762528512795735023210323977446970835983285554069100434053721659963499476631019612528325478154291747618269885634480081654251583396115557592356797816001364372182263100765037803578438634795544467779891882613676670458303030783945819731709724442278624356270186643227732062064826803657376096023690135362419572490204452779559342457302671019969429909291353755990141900957663509709113795270034184929577631288543429242107357861818072870449636258173832629476081052025343870717928305305738726654128893135893983072586008394952464383085849317034490376349568662287193244917557993288942359613277667690760565733727263185224314660973972157127904169405194545316595998911043850229166013294697731905862664338389633070572546367100779190817431025752199199907497909821666155133275245133400722163334631777752149112750396672381934311440687085250544099695067581137908286618263448080188976105131484777144212100856323558614865399850476226047134736298365961292660710401148250353017280063778161203833590145585878681353415628867611355769404038060265210593173492732934251851379322249227176016662056372572124038591118128086322486425899107963473340787924121059998215446228311032313949947619375281541067844613387577161009917634084711807355019567203864081268961584602319989448136655224705713466901908649256682978261336429179725411005139827028558761570360102975064863529731380149622213222542840024949516957763615521593584546144878446580753687245638666524602739056328879915995162274426301609821116576004383007295398532714385584301401274710299515728141338587926269628965621764536186154349963402665603641003639305335039392216432025684818450689192493441263027064790343540322844409382563801353607574132751219580779805080703120184233900522054550586418625761077879823928382508599000746232449283454519148003890479210422175805309188871212183847545464398762909317646084928793567127290165724711577209293111127989319813163011507546501253622600714738127387667917589552255816645984253165736290543153673533935991268382980636329724460397726578055672117537150685027962296755067542392803570009379627024020845527126127327974501622989825836104463398723965534878658356303875043472942632985117394211843788654614623590991934457566330434274387263175778455821946965392639374451595687377925367614117137659162457378606107178397366260325599994300537641634410674438403654384544152729384942773935946142258627998784899426212002626798396247394966788625238428289216448521963556293923524008569877723959036593011717163475222707203991877346488463024426912334114329173869287495965147267320140184511779357415982900154532465564334404315653027431183979000676709104270779704482604859981403576868441592589562498536789476396183970909263164972345410959130947045320737665555243723474130861624191886249172412723052441288296965377056138204658727546094211982084868533420942660305252699283754483049265195768679728308065350260374639933242156310557741437542430249817378048928776468522302851845665345173430971268164563169965333301487192502305810689598867396430545522361855628757522225970439187302486656739102512498420302123241314730139364314719659786946512098003346309234648301206187568308492480884917377440572537638238617374756407929735327376545110505581723556715977437198355903262305856692429633724698575798888749500609144612045361116698527788008363827912293388435678973308739820286573236949311442229982417064226677208990664067453682427982660604364610091893234418709988410563875679678377928834833940198210483563009266516647903359215914916481494506559369616978546326378945836578574412198834882240213722702747326593164872685964166348510900992471611336337184717945154465410163122188306053395631040923391673765185274013767123758991666620010544630709940272003260281501483117930251023394142266838046447506882112916824957792465564569300786464335259308547697020410842138366269862178805668682642392025401407976771449808480570105588547370747596723833469580774207740331237744476644500157652003422862228534766662589389850263847687325120977307104916083864989370447140811702542051329182615386469144059866724198312422007888074128405448858830443397307381744429555613681268375985814239334524824582280681219006184761729045039870965514264803744255711522902280232423402057399147096836338798101339692698646145706185478261361050166958001532239465691942542996102758019570363317736068672196859020237438304054326135885644069013530247691849411628129573627806191782040517920514551964199279076584618398417513210109017837042165561786214426557483649424229048063053265604332688654571442439821666194764830958603883968445541906365855690220118990370188338851687393098371028656719777693617985967970016258799789978100299586141022922372871837880964284438279256222200400736925040853614988543768643099472010112010510562179051480034892988071033515961565438300033137665703901898155253588662318887218926005467068354668835856417651654251974423202127447251414433954464626056375338932572791284860558397127037500322263123179602854110558546629440811694264983346748223940122019187154436080831307381770582692356104520877663891709290816937210498976765459730839265807326525610589658250332174778939822819829120818332884094579546255339236023281163458449259752342836861270179886858141177826947992220377283454222969204782616806827279829949706485708134808164877067326419183622416815450917482617084359182572844854538587573102400138190011787445263331924698572164027105211349769941942915730492102937438988307747112670131848332497346583075099500430185088032088723733993610422039608850422320673289458208745738842142369400203331008662870482058749134312055639596124438353881774622906878677799155644485127127975241637911470092353527370005656402548416378021379304019131582331217085246152203539774002436335104821288745969941871105292734843620159181810524761177699002034482854907222643535029702168444751002646747196228605032114761993943407395588831857764869837881981346112493023589784926992901492352264885989924474693142289616100205940665308939929238015159074069594448957723041041292860158478119841124754981573980783989816416551472765461446920581612051344492913185202487870642835279632271459945098461970972832667457269030774520593065589469999822858756381286137487004190331322933235969468931070461041355290565278246087271804186151570084452078040388908572229240105680006350857737483244483640022131196766224756127186596888994289098415144322639999537860521525274050358643186932001073114547550769807177540967340802553989051569095546743643775822447327298177875657882754565540060806663308386736277303279694785837325567447697426962805904912326238362883020937989356056092656584219871076456406242715607427814762856152428058573568345279455669687451876618329202499958379435194926737433110237985629696692944244745670679444112092741973220798439891973557669711913783170755016870760955753561612165659609730965853087488338561153004151111791255116494454484416659748231342608739409973181234264611560312215361991251423451883636737796769733993292117951603653159488689095000777055162419563511569924293069809884345294129085079483897233787282648867091611140930709781762981867187535092641114746692102456113969393821660393078051403633260370320446433427815136234833149005113242265105040793269190246978966664529460228799704455453896671122502359181500393147042156119770523169845468815986437616325664171033742250076976278131524812780403761101090713601397677714725597538087350363055860074223637931601683354590618934130073426496599635081229994764849935469420842447244356113899422969292585211901610152717766476448798168331079501414272579370618725327700449493066222367900887110268020114494055719944913637919819084444224790378943744446633186385105906458446949064401555903444392756392753012026504032429328470393231108471694616124320333141732464039692436882678148758771745155093686929741122783034645585795589501476778002996616558628145631556329727068869654233364184416141572079601391285943969300150697863977008642033411470055001086885660956447462162066785086084018764576110740570078739805926823230344940923094845330932072801529595294214238642229135376733523677296543147730831807875824691233452664310868240601659666505245527505114080145882002850031869536381013109364689949204351811129062498739568180117103081347808206645371813848172231768107912857568559923384098231286021458455673452756025439367108032594293320376050522178253739969753761503635006198827319316213776947462848775844746917534823626072931330287874233120581093949085019579062352954902202227992585245153724303753522275447746137472543491580977669204286783904427535756782951022810771193372601638739432149328472493429747714533936233516572989680888263103510127145520099854486175928719031183603277226053581305005533140665336584871625895782777341630710378923671075235565303527431173288540541117760828022957005725917152300762096834291055628741388855035973048989549579042843906391526698776131946243377864089883034674147552223520968775491726781508561760618886752566061223508489209422686456554716140014093311710837257865372686090153521968169287957004439631124605260849992128079718970013924841141037929479043508428006140738899841870256171568931159478971919059438472947631824285076345983858273086744538487718128691182825686180827282879842297972369970577799670185887321646776318074915244807826646053685156247227069255099545563436410440237785974365023562243476978324092549316187174015634870265911058153896529221334604009161451560085656086247168406775329967827073607582106972083319552205664861083953121595244662727439511940425901947887706856409551066116379904795772647831818797928855307022946089133122704480655379521040031754380658728628175362717430317603135009062244421654873116781853613490966272272853168618306123977365654938370848831404974712629991678077850250672806042119461799358759654637616889701890079019451641859245249535897506286213241263216345309670248248299268130031099856263042723143256938587294209171628083279065642963134810217245978499930070710234069041877854551134756059142270913803595945486629648654642740713416974068238053360929373487451378599979327748698410184883996416210168094961004120464371511588065874926521635025532732831504355988186193608223619319097721870604821732142295816872054455284422654692183776476947706862313421468766656013210594213710341486535344074587477050917541241404849357692693214126172516138137362097132641360512404688670050192178359772864564808568794203049291563235071406542980204249988241561145629838284174009747666155628415334422446615478368687257331606494634473305612829374176931045183675102034822732943354046818473937964922507965353931468410111415584014252042509184389252443189390015434765130752308660434852033568280798942574739577995608684479109138136103583628684189851849997871356693670335263261061998296575636893926573215203864869153720205172327081426661913466957876093075411879414944157050329702426500980769447828441994514908896440543392248538081787703423840450776654458339327680738193656650494896196595514039136069407363964629720950465141162482579072853836226270321952722063711277099713490917878184779988829034216281585675457545965735772839480696177267445557396916031189594593876039734729040294259212131351253529082068013461900520901422922142965602750979443254344568669938554539896062099328390909541999066026964951945837297192283171156931862364838188767501591559923034564230624929539177248970721138404020813831600102231725775328655454872899109806926530261718950164199458764921030150608742105138957292395717817185992088458689926933511081943372798041232893982859450945324667499201977072385812384710045067250962857301522899353686794169044036029389390855070951416749557484870687172280483124107312655179796107841933181091992892291753393366215944632923689424448472556627784573727218771386824497662618398905116436720062090322844298723359396527978184211700948192051750093136777803936224617209780918100215321600946150716881803702195389931311204135411653441113499181212534257830317113864240592081455107608062155895484704628567625811935341221198144414801068137283804490762895200557355397888801120622015912031666771748486504751675745650441069595036378059063267466358090173955328696003948589073358116746304665086442593422541576536955210610516550017489936286371231946051984390025698628533882762320492944435986947697648291732658756773222925185076726313816944823253828884374630754307654192317083924293059987677193021068679453868365365340703420058233644702790093473454689748748064790013484191081612202426625443538616287138866406761258480734989394287692905763719658591396225100230368205292594952625687907347202877514945380444825767252376692004624396903464604594122850720756088084220380878117835337021207328880794506893481640281634499420080280567519530349767097437085388437229933879900640112429457658166490653488383643142099371709095197547234804173399313749781115368168927932947040263584529092038648911132571363327253566294371921414105801632036587316770819512680233957559304514486221776462183658485238016928416961202936589472743367007709440865313480205673961994763321370397983886386250593391874348143891692319122560344692642704516289042821587472909338159155677198061350260300731477721810806937678520622348604847029108971049402331007960033324870485371802185392914637061738346352936762902595457510601477652929356890535118802369167182375270563090043235545605529625895511019743586659754180769977611048583141112688017594045376678128440199646764106764769732994095663955301966630235404672639396377179255833826963070437994658579052501155223845542901723321613280674255596958244035537162532318036374025440033524618174417490997041733391365306725172682844760155255506638502810035620200762447381889272241045497546855509189353916705568436066345000659035913257887927279105073672859409707544068339461258751185065750289680589278331495942572536906514772545900758010870862600614604167757087098756629822867642591193453532357092837270729793944046789098478629564343964493840682406259989581475825965953516703837941312981924395096304336749019880143012968094951051515974330485283744828630205658166886129919092862225535970760464896862429825880827088336342235178643624184298800222139445791209016491717644975185012018584916088006420767985879923578940235940297280214996490203403369447884445289083114167138739203486090638244491117878814102055786505039299642978428806440587260577579052354359638891610861607304399502009502657682036563230824048722222300527356375370756234513829579459960308958863174883420677605646541574339075498739336712086651574852344223585286312722128787434040676467379217206980569812410708119249297247999811685337028103514814458373052597025858557238306936846716660232952715114299569219232819312161534898946150302379968326864847636253478842659647911652241677304041210999096489223296742595361231719600421149754728394439985837437868197740335397213317002777919985901197943414399181721565997418002374217937518319800917539273443737892799965695303227136544299658609495078308815325761735256605644872148398062574102969431802634933918099904755469367223267296642897514416932040737739996989467184609291057636850509944859336706088962268477689154269507479821610896179481674837119262308556387325298618717986756311246360319875097615848630581691377248845214532524322755754020475780321420608693219165860178803445311195314133286133354314736938494767268603313137198190336060617415725356693275497626045446870454394246158639872084869699747672073423877906640170798707348755545564037385023876600420462441648562291087839790764528060277743435770428860606812564515381915796646836334071487060031588296468745965893671351049925366908139669235695211331163528885790575398974902231445932000859652156546975774579123731269706685139683398262748343080859942757565692030812635109517243879546311925603116458986554765288841332241383752723732527018903353916117917790473290932721109187796588599528267983087346988163233328926754311173916865635674195877648906221407135766865615390830562527248480884437907943166709430332585711480871389248235232541533319215804128686950675753172546405551032253842994847941244961625624898340481208713100101490508810909417279856363834800924799310203689573825601055915257823184552756759430026912935858914047441441636158610086904228271313339635492970232912969195650006541458860517833235460057686386578437485579175278439608814145813333748360790533774064970144059789279514168927805150558317916512305394515660564433748800217302033871784840155405245637589576854807812489070348867945494866403783579384262180117495474357304599498411088170913908004776922247506365820341493211012329751753653731436727192068434614735665326187886443485217019971180163390962651815548095508716425547916271204511881688383325398664373254188364795480099761510090603607317937806762985002161457171526082612916205180813050737181116000350389727037720833765261285933172785463623598659215952750600483052740027442729209277920800487083027764592180099585500629579807604012808678260203852590326686148514042364328421065050838209307134804393544844556153927073386847104307724183780684183870430527671280364499807950391028855749267812853165261722298545016173776353703012285899959015486285209480947168611367431679499770900203484465951087844455970351943185900807889688090295384251750984809854849892125989983912834678631828520989335959162391169960276188715361185047815890773339156353610708679097938123528968766848997160858910176081788271501090294236178072217254312575848739831281340146382432379971958750760524437858823161352411298510273970878693590974152633793184084902297916747737613208309096192555996275410001586360391179443347448130868169725466259584034949773557659591514502158913641793344230366327101881276899181934037426236672150114121015579002514613345643089498467406657668130417392149726655028606631017934181276939984835405299295751378095839341938352081704695286780051400382500944476678308867622412924588040440223533769584701730984976110381830759980521613934411368543451183938668505413416377583384178955793184605359512689543291101687091994273784852172975624058309729736664575867519977693983742914083632074163681492396874559260649512728613971927034946575171100679253570410367534759176472280923470630032221483802080520217897014925130758189226220429156076281470060117754047788241247221749632921671994713355228712277248105176827491347334129641656977760873057889294926339567974943519554672616098750868741481208391917837467292523852173107759127643955348364742642917733455597110783224064676956350126865241063175535620788479859581058501947805808856696882606009618291482775633712026033130536647398685010688247601617380790142751657117387852038879395727349599531129308703624406684632601491262486546630052362909526084757844808978775842147614496153666588968603029772111344781509018244213841178460712806658739580201250224397240941095445899709894054158865305024909414580810743265808501757289729675624129560950368037200167120680953704163545169487850452113904337518537703540487761867348680283779031832325842857915701465301745375523680444348794735007308819642597024879410218310016070973943537686432291651004846879845054565250265238225946113796372931807851279774027943001508757153376103508418122090908445056545903440510214734631283617509825539032926334570820878717437644093484291731182279278206058385864532468072793179760153826252055037438537996629543989861626262174086528548579721128929242956002738762859337386160553497017885482932515069197717792176771323452833498733919008447676942655170890170344142563998670896181163052841738428061706294208166154800214333446359962542245885420335999950656858597621927650481859889124275509247644001955476418490463333071887757273916163296865421892058731065394335153217528151136627595461326382033597797763069382689170754942320140282951220389195775274847517503098472621852182904523668268257824463487302613210837637824853293302915011760348867696207761422020289907850403009615446931815123237845235164114468401710471022614795253126908445746383476132494190112243876040166170757650690497369284406930478268725596387024734127069570785904522879351028713484568387561544433624475529009634899489179997116076209076656139450696014433626641126315933492799235873161613515335999186757960110585805073855052616356473436827358306974943368635284145802926220457029763459332989220380684919959046759543080612449254098514238248018538238500765772775076258336935970953546095339656059643139041698684791317268748884938776664316477346550726728296109963415819886250093750304814218819796754776537003321911821742692409092945790460298343141583527745949987946657778193915140722185205300642997921565288361476411688861038791436900912169279438062359203993923759863357101628901623636872195726365382856521360726136974272859724631101824497642546100916051710039162648055388813867155308611436551304966310389360587942197121127253315132594271974866974653142962812983475612135827603350915569459207413569070811946332868430913086010537475133423816096199885204742963364530423963970448375725831975537853698582146050055487734716666909790198233016867505803386764773661328887716557533780647405719030539776620010873803097775905284736124556450747902350645920667127155885202240521045115175447794112400058306044048084650983530216522782058464560759384771568460373138278705095765987326220487771100837389473328157256920774999746015880404208047863424797599039220398218126041086603469019473446026982274913363115850068422420477558455573328237494456415416947727454510672202774282951135047792247293328462756920261939288819724178278202899203004033419329986467014826554044180959554446303089495377629146302379979076070607408583126463459020597860355796665291222699971590094423978415450879920229907042419352610645946494379317738373992498931891300113283484329430727803890153404276094823274294617530973829145926505924926522346122033571607629431204542911372901900633053470575454545076564654435703819416322699400598846929792601073412984920266754061569690492550231196097815385313952621085090132871694117954013205386098927290670157094485715029577785839085102775154216773339550063204673678538307383129669921222992682192299576462118559844170033495285763353588163570881081519975931249116674957838251190439795404151177318068359086065239239313421464078129042085715028080896416571231620868836750019849798404225301213114211577021294954367283171033852868604049855321534574547467503592248793964137042201530078386985035669457364329213939142262697058467325078626458494820937595777498923985698960453438533784942690775653319746939085464431797363774911440827703107865705873143684770164085268145852868734156966616719355559270693114863634167440929583461839305300217703937803017462418182433079702124331308111124698807457947689805874286008191132731051468549910286311214782234063364007038768343097667918696943290676033830183906030929816724066913941621071853239842648947960195899466116838868323436598032477941908180235710610876540475817564394277670510394980372508922090496664637734433361809007585761946001912576857487743448066058732710379538690015195854481028884327419791556736849412081132354558207332343299328467463553543431880990489647527032133415280453897474570737571363016355577070612192225462725890866353298162782949444907441227992870369131735474196889011775250843628218325496954168750543845206218793827775919757018449618384304511890776089023120834385314579643149462466850415478801984346137004309004839438445577649714354066391629601271011528073707186323149051726335147138845057770535570135199927184392058478068435028412252365911746268329324929380488630539783684582223229828089121710334506384737455664167257934114484320016455745671191484873710764424880583571434373757004759031196656449638877677615456186065139814773055305582510649288520875746428708096974605830542970071955926300448101498153208962892812866691757097243828679451199136801523400710109832312441338167864633187497212389093755925699847134989386378480350825031607540164879995923752799116632681252078042300551537276292991401985088457488731216564562115780145804373739808455512808086228683716988444526251200303618680471277774380775141052133919487936392140196614262216172986585149964585334269190576472866364238565193314081733676079231679310236321647233187733013154750292213184918558262228374349844477751920924627374012473037370038566182823717176774925801688372788972552085794224537156484480514612188790767489400446618753822730426438111984997196156780973313572450245285140197308017704718234296875802948111761629556824331955372901924192950603484675185369801167527098330248100166983080828668572677759533549666952652759911530906598392341691479611134223474419047096353990329638700583443252278946732155866325530141691247387187362059596281599553433561529613789465209049728701633628102951706214272920163396522613044774630436039169460765216668025257118379945079273228967100708656343057773632359661889926200007374740101816276923671299424665271911884359809225303462605114902960205885618148809000178198298489637983397574242037500215003960663302983543924127879609506794158468413449766143082178452777497353500900184720796259063208109991450586928218264964502641555173954060759153525168759620687954593178975451218875334127953327923643390693710778923103684505059680310549020805835693335962719629062837752784017799804860993151531537537020967142334665456415312321699128838477115018433948650713384761696995071694404185201229918971198896633304704773453281641785153192751688182474490173029983475417372579830869038698345741437029238291408481635698001028257900930467827942919315646722086427624927301796130665827159015195877116068300382406334778546204758063272256824037407641856174939817441409235993268574293152936400068473583861146201097052572640621730746475029218795059813033694605506055540784850504865822008309755113232178849889419376454356944375819378030094009785029625699947760541413012769926589045776555270251609716041639033999646994912454453403419495590966437886085249926968144184677306224630104236662583782271360402040694072354031068149939230862291567764245174104052226031601155601492855514133908943783037925276540100081904383457272714934432112203672404243901826798979294121526645905047768137623462985583432580819802497830614370125677105575064997555817408749653282655871460490842181683953940563321291327317067278661862416928035933987217320011111330590275417548262141678603990991384026455370066072294392252528288273605179777458073435296776696533637341253235590898856392674673726349869729098119551516738270208172049347293656089008780679375160158617901871085070708736668319863016342746781627158686307723349886117407479363152027181610089983719112434715581361862000598840673958407284260046066337605671034900650818776188004265276461682581194187942281398008434814825548233841930982827593871633286144094251577854347056092888939062937386736450091126465150482989916071016198535282554979671530071694891186130398285651240436089720160580517733377557699348457764632362952048828665201706518200668109275087314570660821568930305189517345241771236063231255460126056433029745739417570094577684330488373359696968582558737490361837630368641015896799215485575368717663191481903875142606416845653690208707373353155717887145132392107611270458308541394174748042486528702615814956978298521558966865580857454627956255300498099091515108526757158732214891973251040529514949814769719665266789733782547475305752912802389859058485900808236756514064519077293863543299182708292222869264934468714063143284254041767646365585177263715900417185161595482934072756984364619932864263276739983793511541455860842667571525254894893691498281283206344536607530637246520025248639137940470250040468025457415963918783528036261793969294178167124720585303044083903362259934028999367220865500432928745703516471744982946115897473637230188311448364107229469849219572690008982168718766760914237426767482894666533566756411073117117670966157099910031007949175054318879132762015654406337937204728893747587778624330025012089082067816557709830738466913559264063485511499950934703707792370390134897266844811681509322958204138514993955226472443983464285980879207513125140943666286629639434635996051307707126220871813934901140239289040139391976323973038985540532933957256336955994103671204900162388659737754896641625760148864058154583619903567824183979250586777898390011717068696833193131524083726290024361645929862998039498784343528350863863002458878469671759200397893187558622037817472523267696258950324643311289587729174896152145759716083829906681760132192747954149579395136468709779262037829201498783566159190364858094555613766753034373205475814723926427180819301259874303732833249836355585804536082277336493145433531001738931056661861056778644189534597555554170543744419445481029174545101271891073369262551287123633011982088509381352679251807233961880569821289999487177139101432518631313359529127293535239526787070829817768256533663088612116968725478757492450697116126375127993365300474612702386305008151837710760460863880437042814462746026921300964676500095344445854393182025229347474465127821058814036917383104060563198325295118069483689946394235443001236609931830329834643424125647186565251918405467553794443345034770605292965037172973236181715912516802604058993519929244739625318191389589436827594124150641080916394064405417425825865379353605107788065240274871398774119710379912382795947729284571380399546607144061379627248839220249681848038164487654076041603100502601999721960655822133857361222196937850149456876948933918096427062428058826149367764715739311405689808009496670450635405292992834587811328613151300182729358975215151562996013807097537079765537869967541273033278154348445840360085953976513505628771127066449897857580553601238558320658707786697458615026948491326653493533469333993074654856022268661329348959052962808903636757892157075534457133457163598302041839637765536202619151180239487575148461979291123742309085943676312899873020207031890884344685010681413775544295195567347317283060350393826586134383074632066458913708566714583775818815474971733817008594124954369085411584554809047632531262444645446717704420050536465893529550889746461595589240951650013735398630199504818987904592316373575667818700585649970185942827130943158683968108075496315593174614647981006240242378102414902874681162885561305063211264993241836268797827071153091819823443860450672442597358404912684687621350548615965726863056167856134951853475002567116154437187938468300552068826237144862197188428882375804263509651061201465935846153189405536970965419516670500617023777002181826589789267093128512004706610091694921960558334986160539587818147495469036219537020858969783450402482914148290342280970392617545584849741152832920454359249290204373608047996885744505344599373567254946355390408075595333359843557314321223748862591885230137188305923357442366610084133698784797135177193609362838005266010498276835354125535904243745012226242648381538503696305922521584101086172755643957560866932054110440676029736714330913769791866288304910318795029836709641363670059025305083173823105280109081704887368101809123391418762009975216506104600717316564957387891822162006020833711120968662510866206574857877881117804054634781456022693459343000559054881143585790265230642521991657850332891407548421849449338154235591830518648891414732252447534379724635659564063647794275601032568684482876734741851167496821966060934122630388420265962125056534316343066344657530021754790467743090230429268692336238356575015239593904899856958261582475193689393015857198825240585651689214683889827637849266119511120079286387511334183451198799867594422546563699212604420394899225841340433832441556458583316011678007954220434206558634417873480933914186176362270595489910922086689949863403967239379358578983672008693105031124415758372253967051196849040890115750403682647830712911129057383338566499451994042118559207346034835248715949184424316833002933677122054638301741418516986674101969266407886313649368207539445264916021165054964205190607177371416058673000713569354203227628466889397455292702160049207666880960087476330308264267943275099916053489935831331989061052988596684879944298942508264548148537569751287170661875562711915098200204090022594990761424377498420210998806174109374580037006380768845447031132270051891511986658923712202890071111810656335600406412132119100598201481712538300702107479871737598435621205033762534314343330912800111122695632199412616749900709456941434837650287693047507660066959011308965638390244154957403520101363347796689015824908855167583202428640777350410505388029736673974068752714362675208695592446564484718259065117786906524084583121944421115628314144178565312641571816327794686755262191176127942068289716082775274127240461251807346840120058709334642368749869749714933798429954036652765018236142363405082091363535455601717821384172345131907769556693980915509600905888590623360763156352680669993647421345901557521397354451724196832935725307346056904227367304598076141671030654447908361606853072585983565506296308672056197132477476291393111567289209413739626787779456620012393000310244005797311996320382146166709975786657673740902462216065494102630836248394312424001391844815930312653179918443092727386175827806379112065730078987930094520986623303842043843198034309046113567898088936231980679247404872059343586822292490310240586800092153593639033120111753087972725477488485174121813768925329612228561490663123193140594196810106398938840469973001431252837734727705853004995655697645299231370922488256976103204726365103697963945445306712611083927059598978296969903765613565447152575482614650086716666897528285127308259554705139437837297334627503659824644391243727554351645179528644321863061109379285262112955233056306582261303925916008375486625078778240673367698609312505105771181046351205447003450688242422337079114210897475674627967689644300632221725418317017998687828678909582000446833470608089857695391799005283521488394282768390871579494649422962717269405776567875523111736360674809013272263560163019434885946343329217149027255851066529955628142435518149364410543569767704504335324774892821417579658337768921603804171013857235029973654941248583087219865475344516807945766780184392230846087096188902308079538757721129524017992757293254767837123618304159039482680469358946390137975760723669489317013575890680860948668899836250142590820798049030817595729562844897422708140696212089817583434868743937952829843730705248015782360440535691111900786710982764086445150310222611007579656155612240678297063074009902343489571977516131028821987500674690644579476143547968823209891214010053815080329989029349541092943621937068563173695470768394175479390777564881823266309416046386214999556488006084214219813574279705785482265300799265110715720958481622737515115390091100817529652880683856800094291545938267797725484864974160380680919861810279885124062041705064499581152214943782603170931588154715682403185101455686235479043491403095547760268833245619196989682106966830612954683761626084531218917028824791861750543511665137592440629433507635174209873841552456912050601653130525390103544836799828819162375342723975745943971446395739590406211148837739675173881614859552648540402400126423371586737299586215090617443452457219806112241029026085031953763956510121791552926949748755855817646342449965612463335621319837066511795068959854318402735558105990163569817201197793347126164182730917214480566140391866174190621848024548855544607925339084687976138976062574128027681862811960028553659977161162842936522816985463212867710431516572820283938308996380557086137685107737472890193727772281411276477988114940345056970161729146454926451950932970684003913416977997030333850334720487288462080376913243889936631893468922816877481078941252944801483636642110958548260234400488580807074597431655521459287893428625146973579333363652282053432442277259430363173680749354801939356992160994623510434182250051247429819916539964982151304184935037347672445907500868044358708071650088325368591572559283452138499114936143378067800461107952365594703870037760905605030460873852049277695355533065887955964150760415651516017313536213098797739950082544953709815372626598569646637242294994790927394526782654620607344229722053066422901460746161348468054448303780170152936631454045143213133161436928821041068061007562651029946310985969087678549168565874577831831961766238251871156886134451066281536120153446755264181893227064249018619286521391279577538921620754893456979196394708732941928070073366538115306250945662347878509368320213171650294001943066862357784709223981531853561764116903958462820624550124419333909981581872339963317639136233734638735796922327713735193756048067160926454630556640556093169069108971653008993923144692601640602651647003754108062637551627203255618132315015395551695489636023676426142252326841366036120210419604037804765054043365300852711023288456572624934054728583087835496925810866053073414540290805333280462955132273954334755589597896055657217437397915195088058367965663239854372803872450715702434733954240203248052196475366277789359891268220262360792791144195236185349475699401478285479209644013745184629120328713144179686850851084708141227959384813516836695963785533726303009021287089354872279522927696203958361519045551730012274627794572726892769684040390012834530228808657100324850501409306460346743716788387762409358321283176438567968949203709127988026946425319044657757600837082033072552505772063178161401850341741214041689828546779876886289983324827125726640666284475367085757642798413812825585243360907830267060733755481213773519911195107900124841492611803600615597317138421501137116664655861836683610195634901689035568133438407183321364819957812140945409273025455478214935369070480430362578510362398319039866008650446697122555205451305380736774785697656354996170541076325100914079451067506964777694698486301678270086615964981816593728617498009765179387305656203882196837582160861223323154459059692171395542365997408383649470481959685131599009833559588489304749095462604987809744566680639618816151533357649783052061104905337258820538421426493087481263761830981886722407247902065438829430705899131696734434749361608181112911811248010698023823541117052925017544887769957458065592666249108412094617260865426107134315949978525455395616411898227746984950529432597085084520467102639494450114443670070193523859279729831444788198354077911945969871767298161400312334492149458810333346456819174336258559231301656900623313540224446058074930697909239293940714650274565731975504762576031874808209071213339737047611856669021185526448592818088459846745532524782866579273761947798877998214223876314833884154696407556843478320081287019469357329387658365488364816726427678907370953000499496085355586511678495935585580004799983005977893176228809987875024103762609966016676136447787495608852110039806146792136029046396342695632621266122160538253577075274901052840571890435271074628567829890236739595387855284908568584806020469991349565204991713762571658586450225992004675947734051205531730284575837448092231240675926327431854321621088095698196336019805139492840535373020412826546531553962776646592132225310107604269007679777813965262955448791976628789253040979782344723649166249818082130323911198017102371726331558625836859006967147189749537421061725604503426991814245705387825622096885205867015616271117651397024138371571696717196858948358465177533961388645699167000643397546058203387646867345793039388695898075954985726494968360083870938417706035918426413959166857134349916534409510988408196061353376077292118286353936892213691069544646608336419624390735174947242992371853826917369866407833866541073306889195291384516044902719220941734631964570039199607877118352826033675862464658193731589392558303190655961963656296696667449407280004621070431885811319180154667731200770328038241890973738716384866511874231836502606910384320359246300708341713752038751259484236481019079541865735950654530621610470905371898766208868229740698902982127596335453409012375979116038787091385511319980588167065092646907074199216265116022819636818132063948793426694623672346127953747097995591331084010968656947905480014793738949475050454531546839584219935850871663570455701202311406068079404563142559999793433394036471478467610630909837181236808161832470873531231051878893935564994096191988407696292816309817571550915628672426900070607293464512620010170205281486810673083771073659983233029132609488362825062873461970350951584457945684129865084833208942113202912934678610063184785391862314936279896405832653392709821630559092824651890743373161478288597530494528916000073085985410288546643377128455807567104269529026374435857766431520620003939944455141567907367439828798745531697409235030835562949980697086861026548162669013066674489494779194429829960707930581753951243648241991747120224187688889546229179721043290702830135441731306453358740631506971594891501032817303140753799055205012552061368276831980786639262592783890111688413808478317422356696915662002386674480594997701824979962051634667227902410584706397953406706241323027480990960038024604083596590596163064605746158060607311139113220290400035548021304717021712950023345225767643095408151548626995661690067822481207525786331039459793860223759513027297714863660652050103821662854192572733262422037050789802334879290766519489784255319062531820435272742433173715802851232303201504756921470789315981769875364072139024158234559492675627503108530909463006499783929438945351784313172315714124837966712764074229658805140133503282532963289932327768547821027858783734676515020679934762937750807474001478907403822470218564018803671704774013576921221977794644723905905379545842335045125302355966196428564459437999583725557090954276840459103547963957337829451268894239093019776247604362391098296978781408044854387085686419400204931332344879149537693072332306047937529939787958652862220852103733778300198261235021509190456761174348691035916854277129578374171085830795044223481300423338704106828438102800419945156855601866825939571941151244727677107278373789015318724633439107553912628476072232251492821840556874140802973776744272938634897408661217852051645357169492006111211069746622117149073322251412634605710656681558578514141600087880398641526120181170177180211914127234455102007733378343134058648592308661960142043591571949261493450366499780935303982792961328879733319361206794665894957983442119608383180861819057609735746890390448762971116508569854177866202540236791462203836574812567234494176527208897928103963036318459069557953952459048496473279059955188047988607267467845898556441774912495975152379867441178156849035058048135552624251651889798989065478294868686627095724022784908765398920894605771663246569767148444984908036007778254779161410314749963857529160960727906969566364274203670050920016329841108394357042384763294757439483915559798719004553594183737659340027395609359435963065454277096058046105333393419430832603362848239279484020936053559098351448067618077530376968473747297016583217116375959106818267831985399626601555298575730795711107185854813563693837153622317693164666608111117681032275637397164295033510131225026178162361284655487197305263782046417803222779477085147893229814077025320284817847566524616305295964476626188211108941525580899917141788706336668512747739200688997210267517651954847489944692466596474189308260087194542445380324237659878870173575037963429334819852275407656067517288403289473591649580896337812343355721828469804533833767806598598103349309350758551329407747810763072744136346606405581592390722713719227528282652635519062030808963912891303488450746604327880315175872610884043701049050555583337717843791968550181559461869826273043114911327905585371027118448094303933634903647293423628899610528158195012720953328784508024879500756423812295847318001593579432264547868016803021793963401751933796476243097969340325660423902351037040104657041967889484366937035341785202634785637644140180815418430868147934098090298398970419773625753270734088946851456185041515654506813852131904684632025874399298719419727129599063693295482711026834965156900467135178212464167291800462718424835451970123324672755170595303935513830976527237422385783953503647383602267426388885067915212206788612934146080290529726882939048719205415962987601544808614043077366945024006496068800026434952014634164273770882280100004797795300503367781629045756894956795653225343804071800735945644739496990257945868633289607702143911659669738434803251449284744715797044673788084446145575841781872324045358677426351720650562441197025171854813204291259051774242703272354262934237205306398945762011550984621426358734274005663959042103015795836910720889269459028988490075324260383383228221163116671829987070859541015987947790032695112370982086579943935681298956862091368002298710309081863777415959084273097602719902713407231819201289096214489349201900515484163296884491624081653360347938050420685712421701308000035046901158416898160222419257056266225170977254713893704810758718053595718418147855959867108363522476294209457929489445738123199971428155813765749023008094315716009149201848364874369885941294558301809888210599624378433041670784556273424486578597832867885905174788717303123468158731283681587369375671479589970378789173851579047704456063774514189791860634047043603109961482864519382247050206027071907865468768415630975696864882250207824389067989839453055748773627641701756910670087957209235231019901350491562257910833255700236240467570958725663043153816273137198911159212667809702856754997985996350262439389412790673025475809845676390133638491879619613863223873819087336113042587764003746348230080445955003277171711958640837962945857321625146974313880851026066855238546214098209129220338237289029525630228012882211222077059646354534858976713760936270290820747320337045039216272903692846095851845342516207260509921433584832431715027981394314019592448426455382844181279732140554249213092222423903141032195807041741685508811167704259699863547362629542267434620070431185095830127535711418395693327612146225385397904243132188184444536015915044372832279330113260442664293176685132725462783889328127715925001182692489008075084246490216173356412122959771220397251835643770661189632213516838641625967215020803320537471558945622380808639205359909731976473114622687084048511726813426146151427356036294840398068756326955778966743431800276096885562472050823441716988780466598718983826522364955680220489503784939449481445882982531909408779472260685517320231532220647157043649399978070934573305762087960675583408206234969780340822146255313026032799469434108684948841224809607636362575936637728380355299712145285368447853721413127110953936545229616342878746552156481857976474404804652526582553547647624643076952085288262370156700267919596596012463462082164617759120780785822707936335386825875502890547475895885156321983386925400358921932735793582291694355585834926402412139625550812271431622849408608540153813553387282597549717757738290360920659178620047336393338490209092000308786609505780439207340803833303545470303526534425821069243493508027820903567434260054648973332065311611285581187760742596803440657697701841472524331721347602869182392397418296963105394167319043191498724789593091607479940414801055115598370751209182569038953829219667384034542159693403130443737560752781336541215403096953771056449276807833777442221070589810489648591425416379275056946802605106689571323873373323016768776854291210213418288585208162111490847721048580250083720113266738376597388204576257584206912463290499912792786359403162877542661442467127660290538142425504777177416412769961657595250679433045590340496337987139134111379565230616119574303066853612396924458811841728683258212108500286033990165950963244849006303300818978260718103824920212932846759636413209688833349179481779342451651696665357095744154759909542242170817203239552647783941783117604603417933082000676413921660056687890625146211292664672844642204351752907875244156513095632079927059674539216071262325757705590488980566763085819545345956361403210957687781497376414835080123703908466929747220581083012719583478323359857830191884584052305814536305647028845499813858577104548560764786713683138148983877765697272607027128882655942209251071547675944361300745693819994029821988426768171331944203154518833765344525727471864366139728364742586434158992328601551382576423868452939887206670968386004638383703500730943233909764855497278740120794005124808946581669666489921776284561838979635604464551571205000629616358271746391680537173334741462360738328869975439232458578311830823115839275153641619697235057669821984327440644414072364037149240267025271885048721682291677556408118868320979968059194473227161466449419552470604181462679535621649326562231892344322988336751891171244739196912142961741704786350938208988556132323754177883764731424904327630855136170432912661072423435955922933361711893945835115245705280581006367128093607683709187465042710533815643641171761931241917644002687665378546268863138571237929622909227497732526299956634691599475314189105698310061791463335860794310536853957797270341331727893088474266546639325478061989764923522892724538977659544160987818651542711383448658172196335804207826519040411527707484097785823701031253418397220108214503744569139146414639339011213584199050532395275696441600336254417794083190645930972527302526378407494159078076457899154556360439494766276614761443615602294736602521466875904141232827414769513483740229982775396206632889677786860269368980173799264713644508925520487006321996600371299375454814953904159853461012948246867981832922279958802851530370455396892181204403654846597211621942617481348930599879395335666638702380392811898546622384783410615390650548816786567288961043633589325861402365151841778198667155575570877403203184658077311566082851627556915920408997327638927923832081259945831506746974804159372205372060598675525749273418027512427643922136057782137666350983250437152860500109152404871919617469447605344186932667187057149039617593597441397640366285602738708646339724852028625334360638781363882341425988301903170189449169588354690581248249808874394071025939070796291456587833201168968712154793510922997034291436786035466183157891491136278792283342231166056335463868119943654004556574846806911483929693672391707667351157692795850633650891115294206410599191925984320702008122728904523295915988618737581415782898731370473114839161944082384920004183097377092876255557014892987101494049145979761449600436376486165309367455167407779130979764331509187362766859932342137930083227247557877941233428154312853929267339546929828284946758987268002986262193031360809283048694490184655347652750461490617803381503035844662860430209779554285116954262932227008167460679297510213233870083030506417296315805232204969948786067605273023707829919549864934339636253728836563191741301879114639870468165807967102061138406128642018686642770479200449433174171339940107307829586014028866201535096152048894563400888406852735782201490616646839333052475172163237274379787119515742050920478222697370994707187337458586144896001646791974806765239023375309998890687474119770174061976357869654569040701731697194992687485516981881737094907774671623579263481893995928510501802940356396863928101216758258371483418605813251866048548836119900460655902802246460394565721961083534579750563485922140217144171665214891261013622158692140979850678034943143968219311092146927794088070539477537611707348070681593875047350380197220545170418412425411290937172533334024935076876748011540004238770830792195222351797301099931633482358308022798687587716572193903530822806138070715729528048288610004436365927716583325325165789422690493746014868622417655251205200670140152831721332718306802605644466913444912638390712167021765376672040374662961055445727571128685324655802192715534899516421005496309395703157192344297672705263952806045698865365455745973335307214658845271966017003675565705627065723259118793975285240005599136205902838665395696409841425997270801980422434442867552452903448122727858438139388624502843708101039516606620136081546398044729964221807027328494672576457107356523230526250930312047171780793756439021717506966977666568378714493078213044440267721952422029677845596742964586918160791750674939015724803103746933701337482323850564789469798107572144027836289385582323508386040897672871726330870086150934900791897684563971667173326565972131387524396409113540197603464213671441658187679192600664565137431617311543171364255319546066177718360517235538262758939175336533763474555211687256544312697819887899908219022753526825558602138997066679431652537801888062583122759586991555411439404314395184960281887991947009843771297400741126859987512453270516973097952052464123181867944569204700823602368972025107640695963343248578388221997838694089075293689913215456327499640940046792259168885130481079386584260378547218320168688435983106894210931865826284095578209905981135114238785595755866934094259447034978070722890030948541161751513295915029963207586134164817849834931029869324716731357939409323331275293079615385003402356405803080179716759195072781507916322782789668261843075485396278824671802563445986858188210040406920508467000484811531923690820854237500382169715513252694944250588659940961013021754358825718254797844948705792977809925614256240033287184346746373575828647804615805076464551397877720622917525953455104222050527143410691708400896998167284532428707626159778307847569473795810674191679792431575911359778482783653364887813584130252930876169384927344565632460413178811650849352281835678544660204939731085213729101975749369125135915777465917755293407223570060867660634544070542188645591777355044356088721223710587712038062527845761398242794884794130064359808074082335710046880881243300595791599381256585497127487325075278213789289581583149117968997523857415314580509413030761703800772865352030176849307100205307125760042194281158929942450031237335876980967330189541072849093571881987187466877390635214932597581916200212659750766291094756418414996135326500680895140212030914638975507347879430091410127258497477748853398481688246920215305205920434527215422537063760304368102586962857272922425061854304777792329277289583637790817962673082166028981811930895714858106015940557938870025761539996828559660265042042233193865179148016655683662826390772311864259847893528518901393677832319235960618531437215428692903030357804225072675993009755650659475726037118073783554808278448110440871955317827612736999396491678208887062030466932436257733174261122450153398607870762633152214561468170546382261043150399312770183690678160609160246894778325010835560001572091336453575044107598884408959804838494875977835453960371926673261153768113231720568571151790974321034300818502912576096023509040472526355926958267628795509579943134432514116093941732495610534169946206995688433682039415831555351177833923201017498387973133861871666056135148376950502887276230815298601076857811319444992584969425626207233859746086592513005991485570407916526041165584457988419782811348402966329274291044938470113573091357424524016093190558265696234450748353535504378553178319441469117786371322403831146083019981315990900136784055544108367320843415310248033421740851496728937904895336705022899600302548152969795601700605700828779541886136781133671589748678528378879701149123519326128615957135803262050455222304995940562320199788696002529086996956567302686357559017781489451914851260267445807858720822469348839118962323139451950574885512611183534689843709311268860691255265901209353256223319417824429816301832847308483366407460728894553086129798083977464047315842751445351977131425986371496523945883637297274734731123517509331888994559144322354043454435010277674327269837837810029679700643093627670302678566226054450000550832737419437420478525374117903709874019568518475982301877280274658544095474134005294693101246174545033685901862774901986264180387828508333560142675364300283719604822587212698498824384474209481427967540546922130614121518839068316693808224614054041814260639927766223449042715755345732320066886651965796046593473685083048645420871179312368177436069326895461991407112285790464650378377152279131766969567769213053435668671851756241109682538375323634756025765558371519849799716379449576702308622627150962568494791839640843364606249938929363631529587270528209928624359476613126961798077109188421839073614083342330490919536301468639280591252109281778801968131247298418217024675208058370611785130139380674319539178424502660179083675340140237861915480807636175490432333733893317060268729647228833676968456523858894906578908690276243916409712012891560078281979742658048411927186388695691880169533655949963834749336347870075039249780195826629017406963467744083955389204787390372285288214654279950643227495865578384051563506186608866385151422486465903586974488592690828412373078178267945446236526449012711799706395920474994981376595394198826248060363015918367794551644469618792469235327080873455432775835878880327491509805657454596473414064324079562480271437683597923302282717695472240888152458264933614239847515497211581320157741469896767824804779324081887056027247324869754284650735794256910806556945530442768285277232813184324459849406549691684364448026829050370586633151530912381444440443967794677097887164769358141934431248106087203289087532060756458642968826353680691055076968431560660180866743746750622209959057989791854784150497631227909275877801366156723267067627632156541530509076433625077274322494725281670957390031898672568719179180649972444267967445285014414236342405828058429778483013894658231296627764314841032550458417194588407347947136380935967806748534315954049030822879143109879216396060951091481770500147259868476290006085047706424116602328977754070805061089503931777468171190090429316527394817318865654363341403140579709231604678260973174104367193333091984464352588932405599357494009257069600496409304591177506969884152808799416449578547925738763761988253124150084730998999696506097435103762019940866625726489172283127513100413771745635720161590014457477163098674896345808264405564624230447547782429947759319923730366653004627833762906320643006469713082400250157552566558136068384280874382841417716086601285062490415505910815169746279886609533289209812368130480481023184001365884294035724667479000448079140191947120475951364037678188851611984244197881537895284473573562606684232905526225695293661419562369004287260388642523891514404773378165311069250248576437715567180184846121678138743146425775177135566951695701182652629084085883173745305422678978475337641829792941471346457212423111707621109975316329649955233968844699257014504558589665403462434777872948158757303413243347807318037319260817989270519134602673543232874629847283699495908128810040023170464710093552772183668869772090772550950941375800831346044367589956115583449415987484645942042640516857074275742567767877761222530560732753278133824317676473220676058639758915992290237700534263987953154506364495231242862078336457425700653616087474391328167062253569882852027983891591945888963763507928985887367414120188052473200986943976028142865756109093027909428156184594020269570378823220715272430086860090188407317113953907502416453306355128511525276430493624092786758330089862333064999665966420978520133457924659975840192612011688403125427894690685868857226267180670011122096701292002447420085993809252162335324178097593396544141161964914442466137140609123327643064835305506103371649179445796517593673250171534938964761972417813069436716239495727057983001463199952220484501507669856608478199227129777344002143683135226478635931474429010602117424399293342351452906025153280996666610500080382098285215843756128134857599959548419347271132270629944330103187421210696031749474719881456174337929919288886841001492150329764072095501035816472630394940841153490511625862206892116009225275389172855313437294286175958564222553604549370236280273301951873139181292120508104321170835171086914961356303497640056057696598018516047918211904679962462071254465014939685079490268582502257361650686735248418091234846384406939684319386757000419150132386104616727747999057287035008064594928784529795202171165080335696677774915740134152057390605206341514032136956566707022093204656899536971619315627517236708431840980903899252042381757175499852232944798226806541315086979374146996254390157105078212057828697741227566474524274064802421631456445451663977743974204194796622396810813987793674600230901718803156870881111385511348349490690185037547834985663444722917906758037408007772132282804417391776826645974923243207249126240031867293556467583574257519275954214763379745977493684022065917942914267551230534967645244955281040725482246946248878928413643305047744100125910003314263088477713309985858691434902894020757851457305573900945338053348987849475983391881078804698772897972230737654217670620037924984925139267191892636085430382419093033340185116381239312374163608430165293221077953242411431810072699995031663256192896148572422311412620703328198310709036163294386757028959942553277210591251233852096449191184900649771947138127151416793420922726133042926340223612384333666447738808127870370862305983731543302123097533475854265954398955560993829981167048550499027527879730069662025363508289874337748765578475135231497721178218691396427935105430131197862555767665160491949882550370978747323208743766906570533925655546740098147287932046106492435140392617088374410344714820865259003937546277422780164493653234207203217413998338812282250520856993255461137062443087149873883864866382726992281013606164562989028856990773282207907527159266654784655407238430499374805236327000668703491533931799388112784937173736787215908317074149978501122126258212676879892093229489013551691923101594308942323643003699314867485420171374122198665473824461877943869263005825244333593824616063499259856735580681411454236435091232345754916012596939739207916715069510781344472599701386204014706336650346453627578227979446987796240239538809398417345071518039825935608340837807281108464772668034398653452738490825705731925008745330310645387200226972160227878397685009588241500329321225023142706890917700503787431620490050213576370622934376420156093021224617260136173235655908610008896785415543197015165841406887682092172632046559744183710856733105536438819252771638156061061131460431691511142762875843638915317870464989733444095399725601489935162831092396766152728959895315951959868704452976536871115444798922152194770157652683844692154463891443481448860684822354397791233333334319385122507582892104725711105233195302005877772495138896195186956706104116710962781060427781970376498330291466943483110070593726804992036147700303803205401369731053991297300340340360787790657990837689918880764538933577995128891804892507544630773633823323888463619121758976140511576684837361427991203734347326770714751400127424337309829606836997904807629798143870754346980191740567683599097381312061139432572889032040001985101070140949374485404640659867092229206441222037194373744754050177943393056464781990209321684675629062486503941979626840446356720856273895230965331020091022168231505585122595728563171979031281838309603722722902325243811262262943863286457317369701549625035493487019596017118460283426077805017244097170255006057007708600619916460861206881405007383222671120103179395659918314319155600849961528330322045326839056425617079717472625118808001633439625515368759738374963945199171478965024667286745538875165954652068797676237707114934547822844965111512825578802473051974946792953476507172706653768242037127096299708140328415378499502942362630317868709870773859075958362080590411755679309538511587511979470076633555139830978024120562526735036630310012331015273682640823359048432472749722121116762469325469181582868286708716210614438514863175302295633061959367092203881393867679364262088302169452025399167120608523998596455373565548813793141640791122550093312167249390117037132228654284454958244834763506825640226727630258925570578353312573715458437259106873589856545749191954120205148622317400100105153027978822342795533093501454586072943389470758555788719551266284546654889781497734355911875774035752190880539595155918073360293805622516530777729242617707227678231037174147194614320753824281304836778280204961327087581884040350438597971489107899688935602353910943408827584591134052957358532059548708091214129264547958694129186668304218017350430265952950353898456745821922393259911737764011436072181575691611834993146524278301335428615195077532770619214648811509100683212940704996871190639174264610248797850801098889184809669529424305280889015175627535719596465703874173027527308468843150295359569687979335660492859808353633413089776711311945808593948284313670897516382635215768632697600341140723696569796656479448251039406117398451342999477035450315504974290675720388126009747083722674430030454643427526775763696773178212241856331326150555129894338818925993108284633077936482401053832529703829208477239908814642772685492530767500026929780877921828629929901423473758756078102017602818914107980879685144630023678166089412262041624167292159321888239640788893663444308080491831837787195891910665267661101584086315904395162853450993590809246587933231740524114745434137448142927444203562934079067949766541676936535360577957966214299544263529857155278928322459457803110591997805124419648503005282362200014147807280968964170384118066666043123487412924882917050915915172556586988001397392135866658070401305439728873347929295357551737900829584137414157170967456657230076856080125797804259140069568837763377167840545307009784242004621137790581251233754989273693975769350899672689164761696229430797143787242667457566261102652095532210597248441354754381094793569011749181496678150140869943005937822997393810007156357341615955703089506875147957622456602132687876536099644569611298917110690551538185837933313178687157605308204897690071062862663168618382451640142004434867805887015411327972625027806099806379033258781902624017974278305230449339116577701657317215386335726220388906909068079791899533862680818257051865122510447408509414674169529914490786085621271902541076383499713621203084352686242006274742205392895139109569855465571084135620439507668621650773027780935023249665774091332961229047298846444951875810401016325387012465142346519703357999673260146666267536261477491437404713234117558027531206939876137927396071610692831949731869626808088838909850792020051806407300507538956247483035890201954003242943414782191476270384612014924258703949400872574741969870023990046359849265087255136402938855371912421740889008280003360974923946579093067147071734123699470326634463581695786533131598094777247481902824363028560256207579480754949044579449252955376778687311307501247426524447277569089993319843653914615870562582451534523687584633890290528606752742779981458021022983879507512073947711205334191033883067763440711674719083776546417434757324380112100119947386665271118627811904524335243498429508686706764262487131404713438849088344380061168325912257691556080319157445884374717902359198203349210487976940061403186623150302074650697203492579884985804988553592643277912329506359480962636965728403372135562627810951376331834444941792507964978268032242087166325648893011378611076761532512686391843799333860322186842595421404595864008092258323387005770671320294880740434070292076686147707407584494269130815932852485716579312316867902661501972039643536390401557513963435620370754009257890150379260209846941796952206506134727424058537960976998753306499532028224209808535875235081493624359492631624181994178823000202196931661120233679546512051167698205838456673118163844331644350736885127946953915042498172919789447339913685798780531441305068768902334987634854445161356060637210763626701699617517057784284500110936804564051801349506285471881478453711738577150599331582454859749909536620030194768444131242553884357365099148908760278431603661977594476505716673168050447595929072838807209194903162544480298157336858660720928043248103717710274472100980338984459356701484241031214307569970628976417039251705653455250695335331790745915937798054205372505190939944983417735259769425283532400302185363050437826547285133101903509159686517780224423167818631086804410218886789747723527433539594499063642204456763520950683345245911741678899169715674101858636202734098998213434624938365305852025948023864069987139392966424333450914624161541737314247949627150739536835410744863475670527175214183125450115832585318177472841102709698220458951528983910209520483274463813253626782315284905696164679395068927924890935541453180328395338282368762401462072549249109132285371223950071309518519463276369935749021422193988046798222640644324918997458641360750546923807784081081575577429818423408873986296719178603191095217693349580559116544768453608761706811888760258302101865542216377345793568095988559493843186132243273322408765711997004714507749197987362827700311509514030753325053873685100952636405322559071681967254358550298913450221153195515320884120082587809987748809813815162273678682974439170745106459243248657729351367042523318654448365569025641149307875892933513764270612283577619986755693756905088311807096306240583212839437730544493766495468213625585034433714921753397053912083299838390787829699868990729276880365994065895840064125641088838558089712212640063323352471530818863589294902326887397833470611042360283676423938342897074041392038854816185743547827029863945475875467593502986060464181566704482518057134130852530394122673828803801818966283808967757444865672329641653039836193805639854901988642512173370194006882816904654037625601016062520582608835183219659012186872795870695608939900292082812839300523123794540266590279299305714302800106794014562482942280294695964520320070167874077997254201316811498927678849724065312702366438110278955773319992277696274035138507967369246394360164333371267660508476835783824440295639638438383943508133206468229912096650218950229638010568430315055495337937055635640398897221863354340926950672984732579045491560298597059699295512369295467330274992879415005508390542966312663209522126410074221543284049322898060836321538261953980283156139262437500246532441118240988091873291933324434329939611076363861753606671425189442844833669832403424611628160372616044525340365792758344916367827743085509455003832941968302843014349432612140248487255023704859670404779751377203556275013125051901972637742208223528738256341961058121578213149358708009947061724304339660152450914430955502102818579452048280754682482394070374525941404241878868099927103729313581252283546366512134787681311678471712507689396927403061838468773843647121062558946216677423092957959283633961515319278261166330879742362422973489395839965942298048312940331778803016038531854524822302622173691390153833147249324668670747799849167293681776963381384065037228915020884091172656114553664904968698309322102213567105211345869089179412981266387685571727826981955907003526884724301427357416998712068270409139755041776495845356320209502364026344627150310849990244346122774620283743618771932347706255446538246541882852604624378718461767384854419240363544280897926897610685848030973625655351444236245948587989682239946073998994901594472086952125429844297139539151103178157638544448517916735931131471348882404760275801704382273962269838080856084471490428680332868090296215432869917514232558525739156069106233272249848403026560993019772349235465958803247726089882491483314269008767740537401097873473110352270227464038963350606975704149481048974696939637753256053840507723977171557287958924543126493225277920252934874344700317756984892283338954389655845103913451890826089185641066844823499883811369596523368536845466749706856704362094526258547119700258628296355635252308681450338751630060579990157104630639328933782981624708686407291969867603196180339996826704863962643408287355302725720508956647249510495839149270670514326710529700131679626131317469013973175341709394459857871173096300535793083796579480466973986220611015096641770857795559781046229597611655646963862226480431731683910584998549127357771416860747356143573912869192929578112357172621458054499479111143976510924472147742552570088595838864921477217679428733426429725498432657252238013832026802431439158615604428811156101983118000427285998741173757906563570548597356655017682685770171019202803133534018895169847587827744037951157763463405240614537478796561119478166723828906188563469473616945913213345533285883844528893557940503077525553453274153557020330971107541613318291602090719878223694714958062589936894741628321477005609972091739348999274542204653987010677309562608027483764341983610666165097876006582357967300907835977530477904683083962029876926389597011276807345979406458969998239601481558896634035148182024047816139753565094905692668910388982169165579788742744003611029749838887820667692238453692733084415082983628050778771256565753164489586041157650536298274097989763443004394386017192526349857671446115060687107255915912228117819290348178786726086722531376373521204943128120816950936495304972400191656040845351609763614071106099500663184664636269573821887144461074370202987707381025343823126004959883087237629639653562154779368430411210976362323028038211961467438444142233203507489685487519589248728250761720840380580012406590462440168194580666866273265270571660113968922089307499035094064601310618767519074346110316348348870865164236146050671220602509409155716949575824423685067534299216072869515378912809368043913769135058895155991902554330052196270101799652027370942496937734953128917549901005680781339320369302608187128168818119475221084629092091048581682872045628184652961556732321554943349976570902685023639375876316576410706756945760731706519470946373531144749915789305283804066137667258150228074362814104538411933247514934963349019869157365436385454048218839548444061863021009904047346357201754868833637289043463174874628952580253963569493167677864664550260378389261285839032805782872938681067001439383448280266505922980541346722196426889180482458196160090296610666823286000969560926269154853639295411819120274305767747544353300727571780276892892113924120273806217104836017499779184361094627751621618573878369167892969897595225748550386959425105850861823568117631316782233003742665109735701424925052605154962207366391953590282049208674088344952183453958506215718645521657587065790404590087280378101706043377483366004220542138811190420969889224388282087908233554426631036396354183071962822832065848519349050501357827000944524223334832455170203126326599323871834061149738177733555430633853380048299479074144223077653527106248110935884330551707321559743855974570920037286141298119990946345605739645289191379884770758378237381759231445696644887238121773859453859501112225366967959193624310809501036025443552886522878722856310952388485735603797934440776747482575109314165792011657645954533628932579035785923504302275792748855925077424291472589924382578787985055187285426320406527922872650354183612627915808888315144144592608355877476572636792662142273216009457893015917449761920661097184279085670688021393239823317659780971861362601329177299790927101388668332061027903703185251191455890627097322161705234163955970885694776441617896935850073721317363302198422978004594267184939100455948194259661636740246497580714261551776380453033945905726837502045720777597120916217171102953806158856966965328691597648566016347575914792559664361553205553584356456306650124237455858423869851990351344490319892707464942345983045073624590342677310522604063041603305106496707963085840126553990464356333380634954937045318399473411183476177296522766914020262593532064533994790431967112819459755591100066728809299254441919213497769152797699221514751878884806858136237354119197324683289278750583059909400763049980431253714847038497371972375708264488113026480352658071788887659093398164037621471800138730789803217475851033308789951242395355126647627567400428163602105997419838672232713307575412115219425402357502865096062800513823086900598983150476338904994384984483851863131780604582510762045966498661685681984154106930805881256521849445481466647052518666096826871052219400440392533277439883741226885182007080298780585499787982613386152483718138286442906490592930463568171714701430412726953276067212844605938911120919783293766567493789655486844879606952219830197186583255475459209793373250590036260068483210676645188490647790605870567302405317013817544644554976635243623171213635915266458268595490071862310546397058881824102851622590508326254865710244309262246037367523205581978507404050804591372281153898694401003785784593512651749191130427875586148240889816674873802865938111001568039423265925928796515226483963314667177611412150538675951006603352745603599926551841705023028737997694564747969441055673635513450698982326740911258022305616808010105229376825142821350934969969898310359722198177982119767650812766876855712256986077992896048152236136270583648155436758105796023262527818985091572793955148224724404490569850904394684309351095822862331934783516628992328561273326748764948969460637009826474104596041181687124641302616741216487621065261854617296008920504999045834649465302284902086947865717532296363384881944447575520586109181783909803656455741394344798015297692419290868977921453534755351585356740482846756193900837204499191067948732836836338074532911540122487794208943700429499634024954189243434951628258569956278201311193883786999587473195252396259091013181215046168092285077066509946282363833402840609415470855968434798558455233682765769517567321992880677022712530974433218586970371589720557866344521755031987578400606040367432749078556059221659478607733687411961358747914266568369138049902682594242591446053059014811567829859509949160547258031711469203546193161921720444656578982262760464945938655901666459761019658628218954025933446067056117644921174742543675402143297510878825431234630181805771778325139582927543474464008812962514948371504124501180019288266271268411881463180191775046247003440835193615062817071001105545275036320012793094323170102245733723700750936096296256050257408337783630367939220897241460179176966829844942955959042627346815318464412585251879818958033000760662282640815921328881242187116323451402132717986197747721911992275665976978561783765824166566742507143689950497658386854348148401333211930585224966785269178217226716054824900540658571887778757855665294681004394867994005244029063933020325536006766396123720100681166309877848027376445303940317112997080706907027216072256438306969349949809466503022823180325714606325710593466290525287828335693401676033380261378955960609536565759633466691004347903435713363772362054169327511649337307282859264388276384278558435425190493808789355958044582900854850807880534412097540051094040219557277727395950146584263486451856296037901805222050128672958353730746589080256778934761138983128079458609384108534596501058080196627422523249564825713756580416096443897293576461864222999583001680306569101661515118299581584614324968131110104043847261634910418136540215241545266496940878038823192185245103589235853846555894409885173085372624798869377222323280508936908336326986535789268085098294661398172130452826836722015663490996582412750299424165591343705745852942770376387762391677408553137521973264801727362526624195971828505318776460756184591333152520482262316604451445519491840760122621134730317485018195462594437448932342471662660872768652164025213189390013366195312829569909919814654553977832205637519111216914752454072471252189280139500558954777746177382060698736688350968521025940766278771915875474243685307926358756020367653024920324158350301514650630725647790394496458944226713959556618829111452050668343572375515837268907777649221057137003213269878366232772725352990824903163224441134966173539790853952378874872024425034109437764118051176068406249859033753115801766522250019930289934305919884544360675748125362178859646048268223977373173862547051832960130056709833394709525835989887877896310922223508375588238166100995527940891534461051593669806260826183023136035010462019963655591021402679295264459294737922950316740554617375928784174839697116349721122994776627213201937590609445623509548757446188212043930416210599885907296862163258175377595910834853284985282923305628404708891281355479132655299276919426442382827833732748260497244684076392746183233147051354722738121269265238192723916262102490158388273434960353048409051224508480987168489067525561957567512333617091469209527819819042252044037943040818952811835490685922660555547559052108499270671929338426395579523939089156499327611316723475714715251074159393916649497771144576806205034798968115225066988712270922987255057946484345111281683501158040368753921529832700080156806530063935919400899910697401889821082499425635911043030902195158432409369859416034378923895582389570518092323008318480317802280303880726941277778947481108678565884761183219084685364231281104221977715502619567209596324280660646346966912243331199204015631250277294058176714971388429815043100359489254288704127253327314193505279565480965830218897354984752101810134047281488136645180795792111575656417033131052108486337360792843430048864648794928941939053249138124460719250767401853336676461912172770329398020696893031116059635992962026996723312588401469554401185203766105342051055632810354314356239929861092667252300951553246115009986279556447880455054117935312906982122681957355586317803034141392870623989661385104138997688843950812479748310846049535798976233586222181510268888750222730146372003054408078200372376669488937546467016578248615885510883114929739071984828335314991304074252141605404379742826731561622104949581358049764036081017189081974015251642817267570745477824254251165079608478515756433669807341144208878355692683272634913739257019743002690728674628193494476615512113599282235122795263994481805348286480110841704015122378094826271722249743265164910238312434766823662828127188445863682250723789095401307477243575597124650850727069957163760881857210401282331374952721990412558195654521799472839631016955241420102265167180948653142741535523479873129134113878496665704588375731622842417485876679125404477397470704696292271088724490539185689890042759273830898433297264021799096192191940610406488420764889053423067224134964646027105380465093027189497938848693089622621186552957212838130639956208254810054285554290268990103832348901090771526683745773021865597892093036515703645633003684399352228790711578960937788049572406507372191543017496202392586162276514666886952570490954105373554124768119199765388228257305490162522861930986225349672488347606415776020903615854016852535479449326611427608762199666935016206843508688818137500076000679289201536150521478543436628136388797753640164877394275998765612459249174485999186507433532707219852423312431776164436345318758180314246466159076184434388633578594352658374226638126811891181935071786628512269814865535756552808286273123689361393513112109197965487904564171515052175671009102861057236901895526458529997736443388404687463209966508752282160688681792666213995587475066848387519643707826497781073427991446922407238635746577221043952928147510879687080456694301866878210930148666602686421882778779059205595901487524847700144537608853664957143952243232674861228140802221911519091246244829398041753755654556534520866322572087339702406271894103286437056437626150989971775437655337943349322332848422637252109324748010125985701591789691925943161395364908373733919144124677885394798163807122324397930602364769545258308133317179906630588283924321793351208476729626975206670317615382157533357872126463141864228876378600620002995086797684511179525842780788471847318585180625961993736694427839576709342377818645364686198713155812702650625718651822400717000467099070037145427792844239155078308094581124849216602597842614850944990016016625339370489730532936529297516575537646594712928790244833006428977105081081346044707419119296033736427643699206900370697805248124046238820522536660745574270142855427061112366001648378158924850026416842065073588987515786575169137750985629174446900394005760930379760155279522919134162537362827582593087207034865176495030464992241346908615875300074424577959368541053445700945319567885537911741480298418021712692183086835757693518262804641260190657824413644467568433077124777780534057387441533900097407027555678784661581802570516553951784932951146526788860856210546220507675434537762326905393991226255513463118146894008674085732273165630295290465593716666285076374611580373074446233303367675020812278333441464940402384471390558674120256919898708815240080108128858027688098454275736616547346608593640466399334121984454529890800485966183039342655283430703718448842572628993354389484658491975737490969790120852160412360242421353188336096736988337253614641175671333856773649746241613196069943529916270322514710803254483226382052887647794288972931654009757251971033097622687392433513881604437555425193010656127864876482832150664606891019312785282225936750524475050179618403395883654766359669070868514953199107815383242301949037891328097898086094040497180377930853801622923566651114886018278876008145527770126903615851486973956598341496184971102310007967510608522641808259037888647136827638653461968958974926482407818799944807269767618646307894269645067957629594708346599381619174680298787518132608405418216661744479955539445948320654748437457689002071591189825559854822823583627499118808282421894307479628979055167780987600527620569746177120184266641414865436745031460100091197344374796371573511210108953919958496498434800824930196139215761643743771798450850579641399222741116420168171385454062309861776957730251730381840030942366507790609752633096017303529542689254984479398747828283520789620148188302896398433734533188676633793893986583104381552051430249172898271922467870022906558153244670403155990835729948301324270194016635413506900925819990979035989722210978902917672755604456297620315904690980153299387441196090656658531980688761362279346106853670401994792894300703466175320802358564414464237239929919472341696724091633954125364493889656557625248124745467587137235862029714596925617819965972780231486384496380884999679081675945174307522845113922370581913329772810250657615557799523736271549914983017771393259949612535985924435720583481018740066702298631385550281277029818188906214101800608660858543478367298483759364002700985333160837918735853272035820231132701157389241259522783185123745937115174307845590182218458010351865617593050959181286206530686066316523448371179930602126205840546120158180941277393008504843474493753813588104720089366478243287239657054314740004427725862087844875272023186063250089827711752106532825067515988700718925002758749028938905546924329526491999183719804705456069200947405728164749793772498180381794866844878188433960678165864940732693025730708527546770899298332031059870141758061268769718172332228338707892436112304801684363521879695135202981984175627260029367819346840633620228201885078113128540323540090487384143165772925450181154590950508547777116852786596693413581066824487801029760249625885032540125802503665811198801089656409811387763858976196049517124808494266527805744727391581732071371703478157086368563074250823976756225711863363416661745651545139321624885514055712989250145987250057311040939523264065429065815910552715032491108153606097945856811465355778788357912111674647406916580086007606196296029946654597628631532700546441601633338338745171863400695860356709937935439540771932762209587668850627460841190685851399843627195910705157612921060913810562412068238263186793636543259182337986122344567015766643265362172826608293972857897248500764194388220921720799673931345892946356665037799208352655071252429951676403950644792956507828718244363607543233496620553138963947678537797668331716873910810495686883445747321128837611415516389144077284643183328121518882439057612174907967635425645127796825571539401151096961357275051489160677666127423902996880101306336162180620544635568019015939184766295773930110820500520711290626725914030026499453943839478152667630950545509066055999655674665782084982731099775000252675738073598330445812314876154725490557366078266763257424610972383483225925038123212280847937622901474615124994902026514969665091700326534582502347548865270976029174455182157167548894093716358884289080372778059343068332366102787302793359037138853436146879657086069448056836786046009435941134171335027149659572869549886950448639386809310167656094912319468078109674009886727112118620744616330361658789970948283100369560963400768045433821390912406686410333610907187743817385855325563230632264521843499487659578886473287523535779854569407867695337219662889156032463151263418981805023721565306400412326236067336687390126065238763242165169331078300036256610918864719960375202557443955518560234133147426055967714370183940433598398498093706802597080120061115702680128444512418643912541926463975679582100815395044952334656370143465081398889079510757908901581867224274757222801553353551221152024825691918952568681806945143287367974282077419048311961249671204689559708940843989824426417818097890962259432996070901430336037648538096340848659914528589412885256665607291720263336482022514869872002992396903140829140111289571820675044586186433762651922622996882601905580692065490918157957340570766748168096143639999929941819761612979438418261440139142290536340676678217372154704027449489440073013715396971766823009252278941255519386197844635124071417606198520776896961993579509471518756066150504834587657875289249096002049241886339310997568799113582484836340219758544440307149673666148595404416346732435094613300215490528626803234042465283133543241528458982752632969463491839156623266153605205984184255397171658663413388599362120366994210331372604424274429209151095217394006112854295000678422682702370056667386665932807127297822812929336996460339471568338787885311598139568020657338641073415597570651097459814443041877527415745648213054079179702962441585450466588585668045320885647685415980232852349594155586581155956823417567302385735082583066204055225098985679729019796935923384922510133599168137547221850572421665227027399635680098194857516518947333262585862926631539876771905544227731503396003339451044782513008591764346196689032341265817068645977578443113308887299758781615183952707906860622528741511351314027410019394566472370851307893793096353501440599293414333337532909782306122723962464039542149501627333901641487418646494073968980225337010753790887067698675068658805465571402888220978640934767516499696956185242807618311309250290023880898577983898988437402444462937341851312366775253472752755900238469396720124605468242349002258540906654720797423052824227897781406730636730401229271550312783501357339083122562475275885039453558804903719064685690955459919098349850656832667217386769451401029381530208447453606338408288775520011330985812573142157612543874806868327849718994966728154089503012911513661559858769709263156737192131262520402845347936776973915980487613727860515810434672214204564372779504357397125675691789586279768547541858266487922576576320923579244712779817156162178010150213807803357678926109356728312950002472789221236883274706033683412547638162122041735314153546537932879690587184932059823616754326370515529946809422123167011096306866920330586495158398099885314127478174542597786961541525502304668596099869852906923349668526763092172175980084161639445440740623287454945123726491601183613540491646131355257116293535533412407223054195772674261403647387908350769116008845939703637323523754013363151380365802061750010389162924432369000498038057370888404811693399884767855921509732289781225379069591447912433870523399729715198451161750607817113869045751604689116972293301962771922900659330723277093734625207057758716204409947263909522945777979713573038481083911775215395730301945764757554075546186676148817023466134947233055138979766767608415128125978461354815883538929429451368638800403840016901424884158926998100110187322460779944355519741923755404205458403414145583854209993107503833566237402836437974476517052546676194076066612607194241795217456406267685718125785415800620009760426730003696874175786375753876582102031412771050243799317325165962093311481226627769527668561396461127830806983016683036599615504704111417722174898482785471403261397157941377025670868353048566335251089303874465538955065308932517873063423554589940331406622671326158332445104093957246755301360599185066629421894028218452312685225668255557731323981970088247290158893827769048865842934499200341436394407958527906278123985153222636951449242469758768409931857956312675839566852651461204072685051442783972601886920699630743458912078294257746405916588024802428755008722314194523956790509436389138916000700212786017994028914989010991726662339474335264426783801700308887191269990476149318461117702125789775789956213709308261904606490553972280388130201461930001072645228399330629650419159113419482002436168139141895446552176034086319646661007664060323317448458008212087810651422514272708655955855428159212921003805020870867008570185986589524071001291903044949190905220671875836904404864515230036926235651566324066466232224624886237005457206696762578027394364066623647449063738687313057703408420773096494069802378969123796351468272844027407508236664585254901063762545862055419625051516427552221504159026382154974780698865247197262014738215854182989226353456760532897414078366438619684490160317861721168891029182041241076450988487689895425991763718842594631291993773351729624409302943788839437220237825411941593414288985432830749534183180501443748680101043395997390013018597824902764433764844417155394864348171545659174061445897245209344887250686723797267657371435367878847879087149020873126851388071281040077216088830601093595690123382541991250169447364050793733801602845255531056855717112583762244917882852521640538994184050247006020044894445630610809055528127237690700707340186498744643532465061445530532198408609620194962283272581020185373219600013026685559322348415826615488242825524064532711313954028654370828330947898164785455117860280222768218190985246630506660255647122209414792944362098743710027441837007855994371441743638319282789048600789852705318938048002458014064752813331501427549153244655185360177775767847524800975163230032692629413694626878066966499322784706573374800206127460083090475131678540523446825951351706822077402228763337126424409304563071410996669346354257924322914326396394863493121619812304246026900796215325139136209747801280969105680157717163150395200593481814184585740432890659176310848778260264883887111965958762557995897938754394958822105670757767004852204790065525275186499525046320054532460808081742575099749377555236221960516145255089906082364671225907377193804294653224357648664927939093229243039220783244139851975368319457266513165000104797851392280278049286561502073405665590100126309416025948364398716583918598384991787621288631055941731230679559170176787564206649017623837530274913178138416107271940656400447052047438303081989351831472103222577567745972196149406913724183615464013909984753328681907949628570924062156042549652182797553221624234942768071192543105564564386340657033514885830976826167108634535121473138721295654877407210976852029313815654619816454660347069998160679781575867688559247761948942685401408604082191966154769939854707669516694477470825593586328256873120210874266854130700146182632382775946486972710216608717033748354507946590030048476008477785919157753610061037573850364711522756901632913231418367186353411145587755667718435059170560598789237085491124977578191551621211006715360066856529244812455485501810111254451221663361813612312010570137473795302521633657631176043262231978616109312315824618084907796578579738541892217839711011654072662059174426633865378576680455447528715985259691605965103994658863859342016497057459536483671141268548237059208500533128362648395828118146160419418347971937765428154899464440890970242252612078047642435039547744916101622708049272930677795046017299620914657560808281260820285052495593382299022346150511169321484261534116676153994362089194889662754909358974647422988969496246360460950094420469299065809804989189390978091043966807154285080961231794431518930689489279488958588681317951925969662111689340018386902123715599404301283685254101076133086551010276663850812749761589340753708564592193647181068586409779931280303915341129437996068550128416695912989094768068466284390095033948034617267687037555422046484111678240054949068131696849233338498663199760363065634972036805181533450086688129842082165688664038719420534441850624786671238556635882621843135647013604133624097535621951911804106241933891699407366337472824550213007474863359065556071218022827210728565555876095896577929878791936890340375607581561110119590521091414863009766443711183025735560739255592073932232427423359918202211433847868764466522866888271414535607579765884150458663034914201294154381513571944349513916318776870637897000511020235403236646017940491058519013342458075523578638409907143528720649935214889768378656446734823450843215933785342111639147719211036949446583789779738687608584131485503382147263960120466290369975163125779251112512097457273268157758291066285128118451551598578377244148223500891653047973920978887097328515822729052459826809012983008482861242652563945248543735270437073482755897127769921159712991376523340224491503219048323837237786792550156309827426948686729196496320055857665289210696431854346914767124041237330220508023814985895309045441992477578095537467083713988049696823676040247043012535252415112146765470731929508246718923008828717772632797834838582620990533548307029870051264527446911636148152445434141004526138042575389169628937903499008345443427097938536084720993099008252905539393218117198538223811163035977036489868340215315125495384323668885086312308265178636826444495258797116400484096907547902916535739936412991463991274380337929545602213314404233676137827529422516293715588095237014363049072667520422174762078651639875012634524031989732960681075288430185929844413837800030972434874095455060393683703150398012757540856178657917126906534468918478753262318661132794611704017552774566427641017424334185893752041242943456119875951469640697130702559994685203417719140443187609580791479703677296409021205300193388787753077901762255704659737242065012143427816981842619095740277068896707329831687270745822506013953292626943143206710694365165613187883980124990668170733146583994178146485025939207271276785293197345409799384949440172633827454072409139181399363393655658387521008251564594662739871637346581552687363432579641260529938275311164833748961824727500150251651691665148961398569302312609401519117997632837460843914027158605970895278006654983830766206313522814139758836462388237479191068063830418418581945257768452447962444863505085391567242164599080884263023580845025249582408306062805881012152930071015401697709419267843961123851170432660363658889737778281270425520550328968103543480000995953779544151645974822784148352424291660318477127498466638197607399058590353553552459998505168803529120897343866902275274111186898614085868943487610969462585829285895060221031190586400364454311619039336501569913894560694941302589006102241808810134449786623102539105870206295385722702597105077444296527501491868113066717054376183379136572060265305561255005003707151505485640962370787991353042896453064969672613302359732075650986721290692559555522572916783136819671248768280245279369484155271511110146869745247868804309522606735776242875752515109433576392685248551325139428489132293227741795667213981075821757787139148512459061420551963195248758304971637081767204463303479922829172882216744460505346200562408711454828839769300476757943705124821131832201434247188829370365952537590549221996552471173438144868998497505334238023739219570904293019212686044908370831851614384668535241705692777656650144603368601795483005695183555256705810297066460717165758924761582573662449303268183878704074257535017511866980320522875857046465465786482939058076405634434286961992849769770418648876636070251684951901242632126705633464841324436785479282199315275663721440282513745872819327234163636153188039797467752150755917232513546259732147954769606534409660409923802742964462275677322612161551386811690571865443265870272132528581825016461442106833969887901860068989228212107595326957940204917716447278020909076711715710549342775360625314773174822110547591608097176944833322402556517186029410164389219013071328549441079241414256797826973095059558402680089240102071713246522083816789802273893553133079822454913804606271715356379289937782855754254773646094539478756754911403348327895104790892262963086784756748817902176576594467414926337706986019158343830722027793603940673209803566663100084787819409168976879402449913726589540702895212406052929177786238416576286244413423365718686431716652752308948697747426358414955087148930483616509421288599837469416560263500600585841625361278987241390096192986365593290215650783826826656574683090525168717120487563961523242818080681018455883154988041957940333955554870232897977265405943313893621172053482687348764803091522077859195804660424835763888762496180976156698283183932918405281346283925151061385910546966806673532438997132775622853534861805166001181636709136502153836320944849334524880524371608874409539748659177375602758520879364067117135408643917288814610494436871464690501428869658327064970894185830230875054735416766578048265538217691877436798712517169376461189083339439706502228156509776241994453266477635759696025250382110273757827922578835307236371697582420373924879892609255563653122541346637071807889138046222011703079143995900407538427379102897711309792113110123290517025952670682835926713600797319420208407556690437400155125760309671327773185655878456931511439013819721178001191775482897640304292283034677419671880380637606648810648480513045968018753531743215518530091282556688574670437990572004241200136398423412225562556966436617272017759374462099267871253792928012250942341662904862356076199967850678357355910637098312284475834936234394602611312997832908257462619813212650298869047957871027630912707678567170118587445945067935740934245419454888261182942244704641732421568942231799484395906201251421959326261707502575336622646439655782242416352968406730322124860654415137837415890207458027154188601551284774504585947892097341915711770875006020997284857697087805913219053034879218846774199321732952368839632064382261489737690661290478914194992958979144658077046407820060867907182903252236117634578804401422419042556766722427380160365489886495774020002044401410567931428044284817451395701345378318799821186083341907524948440169324903221770649175345307404114095483269998577970942892101839351049095151212671813882799333332951980698517471167210759304563107913854269595351161389542462172782734016140284596296042072097334315971401379090517426041143073590076439753726397654692013762488950826126340442877717884095228259572443908220556068671768555817361909133458997875248749971530209967880651618681457462053630174776487216027733333248570902187639740086709216684263169605919381786226719284562992003961965425978375338799168594165592049855621396961911713077911114118775260756371921103613620759867440564923493832717896513202739059941627747430896905403280071065757257042625933875830776647165453588817317364563836131809663446049540975805187079161253469896925335555993945144274918193275283336197201330540967707200688674189733074225650194642318182522072079674115923060946199189806178259291838460228299072632155183013631069835586160790461418579071814097047615627899230913721090494415786082389196519894118906099182182164834012051233687055387645444296052901322112197297995729997941127616392852132372629675967731439177612684687395923909656890088305963801259944291485249721513733891462601578644573155846945966238917474555613070996962229770433638451833444111560513802492894894214510722071225806559007166561892185213401462070596083352177443151168454816716091957886085142082273624862454036156117290404752047228293072815058248123989834312411944435257318215641944509546939068859248978020813464978833949048218154446239733640578253346136390432914386507031978375812675859393371222401017002278717475184088857752434071535526403369437671087374666820995195171829918405989826570889942093229944658278953550024852866872443862512855127376749005349866845985644649718557556448231162603914728140810910729176842854897835858744457453184598709420341168313614393271630338928712390335134461887701106972883454432142624462228657264434492120489369485919672673953048115578698286530117902364862036358571305171250048853867685193907352319925557684783967882776782065222268515063997293979607771222466629132265858842477499175109624095701576421545943961949846981124592983406776376754985920882400054520073362595335756997527913939045675546656226984545707765605162092209609785116737599825978809558545395616632972078647530009568647326161845888678828527406515744283035122339285864370916195146361921564868491253975510084509047720508933286919816217792845519112908561411592440092512840486207217379483696224762716116697921821866737807157256240912238854956280992646957909988306270425175480711757038288163516649409621846275422004702532237631822467278549477002360722782135452693360981051537632273691790764347625023482127366769519068543179824711362891540586746502758331511016275508001015946064017363201739489025651849413620390180621148332108007866684690024853022904009645081741838117245970893494366888731827299552143259902169138723606071488159123836314670427668898778125092950017411307554973181526511758192809922734457016449256096184800804928024712320330828109101592761661197432243147301671964596406888822700824710434903170670103080125164729643913787454899514263452341432062588764624445724928810431161042708923295051168878971399773233991545170774657981239084670726534186381939227594765730505476963030522967744767109687632081432651826589297070779442602159989022848209013006830413196653486073289865137022203068225836116051782655460111173579352465069597206783501796222113313433952474188120062933826968295015020271575742128239094013550619614882938387428839830809647831834295769053137969990113486788947524721482336863869803510456732256876002734353458430794452296142278485121777433317815540660607607297945413966028997797300491136634687457366401541510271091877643730035666720363400757464732783196221078895243215717728145874013106670078463228506902587950225340005898885257063349013546881535423623385439715560510409609822806325578120075903279126080837270707903147606360787004536672712779512008058041437234899749351124333563301272387508072744406672985456819913706849646751857951800542992374740290172161780546084960013442725551023380068838867543362915189402007248660540493164004703454875668725834873548895106865799987100294702359274159831746426900278871907722758768219794555171062970108430956011123159103342884648920088698505045414943573457428911042361511434384636126958080587590679158957045565659363058883590854889134856334233141160926346750434189853303592669654768212308696926296460161385577501268935961418082503549644842096115104792389876800941917063945844454196096528808503829144247163980012818341698054933797521739993404216028166225685153926860156168303312295469036706617598119292833598553417730187601043432741324210668750797411371161631561031199857318289129228021582958983148418516220745981297364416520290928738092088933208360892994559645168870533044561873451537393667717154466159422363732621680812781469797092371057659535008132523300775441801699253067155889611303710177538054031100111211609791485814603985873312992729897427087278701421780523545057510680792804456108477732419025356541647076032131679487695144449407755516229292666301764702212028464876454837033490316321710436513664172302101131768215769170579254380784017785673312089425510277678983731528656013626686555272189623239507902568271750411098356025602177504251696678855028183272379217510894019830233827417043693810377806823975121708417755721306503786596032226658770384081087433012583027181486129089173023227902664790695533311915478385388844450373016637776644974718547329169927427603456638640372236253305229069573031504528584368192712805163178703348249562568266695525782671045049941378882461874818438694447233429839170477722040735599384660083459492477761149028781093549027067011100888520847345128446590850461271748867508411272864758720148531136268850020923114684181610591744970517570050291608181816818958480186542590135256013215746353736785671489921625331217825795427056667099348163116723266320969329813086501414007829583935685508949996488565102915555852404348386078543344159627912375193547606537482173554218678931092645052313564667071421690355261835029782806713176753003761785257097186880625916241871864730801706183777975694086749737061784285369126713742329021366393509677420119915551278030231701479446852453670412196595957462836278341321770825091369960773961365076833015366505375269065890162825318602533029009030217169463344578638854037150287518730947288953694246790631531623782837743522476605585821038534287692127448130807070619290499113279109818483492748396170088148847804620938703258150432864965196596239942710054587484934322352074591986861342227779878887000457394239812602521678348458334933613248265070743728658914795088352851632276171797249097628965086751617801220299520290241882876676194139070831521396607708468033516788649704420917949546566440269397043597620843170131092791448891293819915271843257241111971170660395826600649871966693154026029084796212421462830527349958115599252755020199256093943452683294355713321068287903641679504436721774338059252984146931870110890984041817827101706892263974286259956825157812720241494722995653180713392464271902122724309154820335283308174303962486705882393982966155023439122478462363893604802255928440569459226790076767301904182470201621399724028670245389674861740050928813550722254566109233196402187135786851360547532463404990149445445975951333650004355598255227974697405613431141665800041968124066855751713786601552864375470688217026254641744133345938178189174662148227890951529309298015506825485105561849410632631362848616550177863832549713901035076190415050680726375879579131535102688019127908932507107998000987111050231337310595792274911631097262368022025874392069194839153036088834780884964686287441057036392724643825538259771201198439628783163512758664082413161601305746396235328551222823725369388297126737997631956036217248957108689876844283830650847772038455804963505742222618212795007667039467012997478430613008678525321659420266143087991823299477442990309873681299783702869089325516376708789656359355341069035805540996594375277884618787695707010085124527021361251296944535462595239263669062569468870535523103002257472972656608660329979475027339772472444916416852390621096632915676461021184972461521726141355252389024227476698250133869192268466428118178568955949136316059991333369786063435336586911034478502591783695563351567019591519199423887170334903353978817481307553828418067588556913222192144396132363635978740518599751771081489732249559001341496377106308383505222660861366057249735894185447723700079192817575715556872899924892541742790380706994533362441402416458938718419300320894775228479905599688660180815091544979592659568104515424101942398978377584739950466349405444563129347590902466660137733322947434231229941121986322159618685477846621050514882825542501737469353765211099105000452094155142142918656514564976992272012326724129042273837588389765285832170693669601073908697056820053009025291227869299195121720606105451543932900056433821045996546213935871633101948147794227971685550919476744580252646333251936191072255208905715476616177819317578032685979242722230711738195179127198452870420704344569726700750732007763334329548621843630366318975366097534694926180084867448438680393701274722851283800072877121245464517189194842869221068995942989252782528326722936451194282882054738727521271758220205689050170869815160988400418593927615664016052502685891271583331164048849203568276913112955350831800862918110315722021671244972643102133181936797838132969872857565172187808715740223968691695142755791945849590341175263866518093667311412406926812207607060223696327383684565767930178921911107742714878936881096219840844399415884350176026902874225206748157495914376939541776374504552037853392757664078097659203207235443273831691168066387313106310907561372699981906315536081686114616794651828184747850742695519583626029285311873700973182624237678404875153563983312025550081877796448563504218411378040162403026815803564670708986677209836361383407552516746008760781544744987124057810159164452829218036809160990144558184830186700002903100377502916593170880213434565320649813113021531250181571118334275683741478920074573281846529526516509883472644205244268208860704692578122802564392903770554804794240643767852111833373716284434180058666367129029878285245315126405669819631149411063347516760334432171066314901475239058369494847632225213767726760391169533141578678376644305513822433456195386501669662736531346111928559269903454449659028738138593300274995702776808038749828238468473602723297993112158599331630171948493996280090914196589807933876578439677089946347443758242324166286768658967957171816727523491136067456811148511008160569919210682535692877239642405178694691965449949584413616080698390304026199436746885456023612955711542443917021388287499630819857826997919366102840600810146098246880103358933583034424271464026255559861249242934516243127352042441057393923142493563785587206762558023496129205536412428534876241981342375871727267770178232309070182097503236981974964405114841208856169920122772029318471199692867976419411673481292698868049043419203636757917094168515767306385870157385246492227400680803260751143911384853076589066967955529727575715374991565249376914193140802420733421991838476999479680253996739999208297472078642199644879081562772131516213119586476335234732692568653936155965079283283048649127687667265237100349881931013333291601538303038754491573440108364840745624010441204889088552287941830513022940136099137645803640070252999483286978522579152840941074791801284184767715925018234012433365550914826036611855851945700434493057794057540785096017123127004142142723646483297592843613584707595887844782639758735455133294759318984939987487261464740986950127411044440997829330534266421757056744336010776325789176835634599842327584288446007700128468401825513529373130211414631223542499131989889914459043758462259031347880452867756332703739774094956466984190944960247725415522140358892261371533212178127085340499067371287510555412364936201657395524010447181866563600562511515685771042977681716963835450847232359602741753298022400370449757210342187829826206455936678501828020704599464815268792905871878070721871929142119596923533221277347889932399754981704324125432772170617298937588639921176523934511734924659217058325193979925228340420820375871559529136353739526801082044559120640645136096831501809270611191527568627792389286216511930593851347267202877414811583508159947362236761730565196486550947745158200115847733283406838271536181559498925924195039947754885922991247816762882513916300351529028998838816829112490437110068564806538771840286440276870561235287765528703022728486709921892218656137285908407619282629357060432454064022728991407360358481552960835463918554392416687932429015070388303255352123984377293481823812875905671593633570331051101664062909724952938522950759047386975422352069511960586612118216826091129808793893358806947056845354961475076798612596925160345218319409137254888301986876549807419854604589798328164730710825872364089854060058766246059788726131285596351033890464996792590653341017253252149428965242310989673533557638612330160772925400152661624488233913031704839853527160719361945249071086280143870609065815504589168195427767986335868423111598121990218495371528361882569262514400911865623749086045949188015682123870949201041521246604264483160991918791622674519592150872894344232449571049910192800675669847281976003351911690413576170534112029229654722895333201201290598315938153621397079819233213790401324507929092958071277435673750817027053579079054109657249410911741936444670962874941148638008115192416344761484828908873392650145680790909957357799149001896731252553932132182026155433559714755093934834459081254124434407895770278381322784548600808187804858165093275936855412241810085842341652926035790822131680409205802149354203568784267895251706610848401994714050154453887032740456691304224718935889281459763134854903432508995704857760661484232104591555241989899198779579490068288443610203661534733559531509487383683897027636433935875084594463962382530706432602043838569437077638239576239357258991398646618959243356520547001318681255821404748772336278820565904670817549392876359462889963434245955071775081177052010734069892300308809251054920322818150106116886307406031868369944089748304334235641338201902721508692600049584095069335594854226520082750525748896999454604559313093933002417575457274840692936100042921675594029108105118577480359164381737179205771623968929743352542423072528316206807809524895031498657106806489205818308549732164854574012574832869431378732525297181645002950305544724912877064498924727582705098508645770497524432675016998303369818675550719450582503827000568972706427772261141217819733128297440370524624854486511815655736651269349216487082140739401133163554339126026879185528139172509499385434489418275212691135123337898521982432700637283949862118530665644218183948305262343713571408087058484312725569429566865828539542075112551759766521846513725077997879666188349937086650698579695169005697064895029782736025820927632343498342815505363141500207000348480459825827563731684936346782306411517888296463889366832234329717927755260128415743307150225251006110888168511679015996234882898054848825048839739820794607854109872888879585505577094825003111045677431866624618378038382544419044522598537533012463805821317281971791554079188402835100988014736023074698285074303248167583919253876356789013072144898716379860637223904206041001334841719575247729438810677144141846129319021667461208706642678517882567634634657492433400267153798648110750750748111027542193912117059655203771536013128313339125013941657485277507571289212197227560779513246401236757242217374921526393920565494293322707510004212310718414504329200511522624910897200569701591380891249417766963995557968187726126506554811795838691500542167167829381107166832538879453046417966774527050319586726383116780879900470012063678518695057627087252853514976676397266932847247454178180042884208060936132606861818260767624049506902253565846252251481607985110049775728536822828551630457881045232883321273991080706984193564554258785494057302003094389980526157487331738831093817917492638029645349178361743485675804761552878009344665944377820282202119447975010636921080151770748282205008543741912287452612506673527131722816626753200053563147239578197953915246994802471248805012854151913449252817039228329890173575748393746335530819291223856247779344306712921075663267125407527942402994934928245181796083115961804834562790562640770437096675511584005819227173116348773682352155890640646349982015143148253193332942857534814607868199383711797324495016821533786062592335404156105414995508640036737811639910736650872902817211224352963342703998397959405735351483689003004294765170949371256778428922309168074611421380596568465490871823964477250987897916787452119527997312242924415473304158420053018888550466097606968639993954486576418484345879757582018808142686453262827137042466843801842724211695850955955190109435788287737096924427885925427194367251329602845482127077569448437206436892352589930742590124372863710889293315948724024249663580637463378108398508202960790661428741853494413474497498508228089757882040568842253214294416824399880541484379509905638363262713319752345686156278097136154186040146204633749140194702739350107512648025357428650130369545555277108021092223086089229038516509057028036284397738979530262191659482758838243211372628077297033754530643114158520067204812979867918070619933148570336008794523735743177547836711104465912571230412891571263628706149171215649465550329744607626258934057604815345730042735954078401803099807226093340023550351189900709548849798459887502085291172532901876439758529949772257823949569400230246329228609833739597868393273164528086061202651152815848959790143359150123910895809052387730681227152695723681546863563060284840695782477443635948815795730270957994665232071827931391832190011151633219091475187095695706573006134397660238917731987615219022581087335688307147476180918471553332144175032598901397885566348834710388010375215524638822132359789630961561954572686470294344534602276143336460805229896085459944644405340631030460445616857297667916226454480761903808466331566889313937743989031335087816031014786776769789760025341010789640869519835118527611685487774693943947958861743312775975881134039060381396158380636162670124386922070008959779336360332404126675528386644825964338373339233269967442200038452025776555873527698449486639831172093449361766538874667329199169122970321633934086293979242846625791204650935308996560330836987541075269777191313077303065238666136181084214704126486371585453236704067645150336881754750772823191979811813005764307814028778963362957906070646991061398343385714380489479261854340647612879063750177475589998608835472771237033299149720160554744165536622985706660921586771085511996918664170711351544560401368577067753964257463669484802793095721131395861191675009724338909568812035439898668110897265550604699649548771856532195598761238076538499428486693461628623870457432035227461306449398896538466470271797459433966190587831098036967571961039881784649610676409185089159068111107118609089826607135513374916286894665626891653825900977828912847968347815805811694250407902333009586423244497087742206260484143741619057759941559445984520410173251121165033874400891319298937646594998706300452765688815693698768262662758065965822701372620625091323009228081514771589637923697025432129961129536888088581907182069004952485521137361695812656838528170558543183006125678769991357281275016296332683324012195786714791899420558493178744596929520914229141383148446278690914284447124459979252139250242170670640534888636941747723671936413744139935251865769186367411898243746941767831267886083212062455672176514889452371843052387929966799047072650070953692597031823407297128832836547268204113335978853194762415137658513542761078457414189049961258870724889273972109656392943395235813552415606067850399621274942293289897216271370278829787461745726017387432902237797624710801698109550938337173878854274017653639090046434165598613810466323746754757567921444476795070776748324300286572464800817440156640480621389448057724390657945829384377950439778847658195959692690653428030759861297059426386292467467980155820006577109316707675170241943586750216052504328506813203202601446857810597574647440012013335168466027977033485810899277326657460658369142868361163711948820461323277163985703986693576505220507791104148424533597163712867736815642476142958495715541921155394759715155161776022150717001995213363797552006849140148327087646105690371367613732643592020818000649648647160072576703809381437336284988748550547557269024169928838827590296756614570616565462125496889499057286700296718951689143240321872082709374285437903155827415002462951617692152415677817519731220965765589254400506679800051515225010853534408069222006081202110051604923561212288468290702260267481645272146230291704170070622364636207174391101397194485736578319492707114548665167235733194038838750072461015928188474843028385299375794213803118068366697840085499023855875351362334762103490687843111526433366410094811902656600238621913365813034872543156029235532979164029164324425027325291925623567810739540650270626109188027621825743881268691344754808966939083391216674719870183399589694831120418889290810702327701515476893512754850477722948601645407051041023101616646801368247368228530418427296096726545902630887732996478456935875870280018203417616289078820036223347676327843688154757093508357729190696914700301006007509429233540211792843219642863005934900340288855233952049881105588008566066173445271008296996275720003911756070915076532853443450718298371509699134716418237565562848695980662565709197724856941612199190223957670353942896344023513941574727357647824102127362640551837755180845688589440724141882312160845788518444981979622069686347095370324397129629628474266939539400757850764263704175794923543211474563126107533102542391297046906120757230875537279317754283961830794106693004127200183847090769160926836326690588719522410241104206635594850765416095205649780058287758950021479209321520892647668779323473936926597775705652631152610923024505181102095727495305518785236848964617676822138412885538586729789494048483124446684760594201732615732763854623213400204333018900454871160955323085639925051364483800714777708973245705093035131781736620628949362877425255248717534656754174837416217881120285237364976129798396285685209044676115118364442544319500728020586612656760409206828447726029367568699172660943548103807234118645731459506277068039225806509839288360159885298260235551983908516574275667997212159473090196159618560366134339269453065923022712623438854250489725285608107386271139547999263819157056697828072559256403082300095228851003974753586444343941820118034080254933034138431770488553680976621869245704090363893924548123558977314491987787128162548454877061617445005620833730197079757167018659475664507116683034276610565256345869484470427177058135158871422565802986529653501382378578118650463069976451080402531725855841137863827313738439881351710725666773216978513125692316282885861956787234210869846577557487040646966621944195187234536098190829471716597243808400753782084596315865182274309451615149356962374831086028605575973713980512764010855041274141417087203618966146681488467798658785088905760748467070314635177888171606651822550521106863437454201145186938159644397471061041416078170848835713585489668173417660187657128439078945187073605554218996771947676035961804307503209019112315710726723656148333520134844641745206051620976836622660957159884325315208983079873533532020088844384913763544422011750789039722385543503862624630078218900988558701302506338341455263718243397221362248177026710030391254627625501803599690816039918667052178275418235714463879064258054049310806233149349111021718159889718101075399059162002442652298003844045568775392184150683908010490592348245536551586842747376037404539249103174483462179940414941379407969740616304823791893735024937751226259690659647328614589549710174465871797014294336731148351618412486492493059302017383845518027994201266107546739332073440303465288557656207698834903954120539454374224032301893461585266274041946693359560457913876236404370996719151467179583682834156169510009147151035469454973858229245858806186845166374643386897243350671477155079188616433344473689964065446665025160750340119512735614001691212650974384197923300750937855040462260291496577355571663939274200704041967161956145869823270691231168144589264190699083526391529661303134810105998368862922799490968805691990199018921206272414448533944179904507375702552367847388857196186863746247012565758116379147799705581317143597203867719267346055866931154928617553172654495278447580513553648321620500615989445798635972375452531839047281364225958205902829374648879613511623664207882733382523803395218042533710920660272062496054618052417262999145113472363745601509333794666718600505346082839942126288674343903406839276846348339989774894052090980080051783944500894149931888599265648522164422963561571147306916323105258736107409465570491258566480519447882808632750799731830120379494486121994990813628772951038544783780186322328690815961321587473191202408861905278595241181413386912105153531175213095396688615721443322368033052437004686779533413572377048685103819175740337595323940681072569995846758572855916636693548069285018045681296904979171572706032478207390564041221120381951537179012342785383293538975250800221908093503865130277984001166074183815755557232988818835137809535629131589748728838415914757088545694167376155405779773902060188500963266482627972146611539339124838470123961534007123565753508718259225555186659922523427763840251870765989670651304777601350882099858974310507678857235992368108393856752136235167516142845807347001646641090902853087264868391489408565816680020652609413611004172771430241054161409089839221701726032397140166752086279509803152789152190143917654027450738545283450447268822342447456142165616984074980338340927462867767129645683718307110436442079717658907105809903852286812319791408884868524992382450376110202696887804378420696853971984685169146100920665356373300206354544917414113671998685324409047174501843216955404701941689668581916683343801901442407589784265342245786199526718479737473551187454268851504261699176678987349269878475802692505212639555923892743622241634260905774170532115178824677524089438496007150116663010128546733021691915872694287989857907343522532233488388347821817573091584851124593081046814958969540694888952054050294213724512940790223421400722340906158239121548722197437280041322952905141543117355960021604186234924518368416635575375629052612634883687086641966711747931764859587015576713826618204755543988996689898060785932343230412655392850963225058723797393314128529284764185261978958520487197978642595307128093442333307066579860571120090176655365987562825824172520598238060203995947347144133710845781181501420684918837381427930772315012470641333425989266200777199034978155362694925124060054638893337920865448156904891598047681004206927736625105019477946902687233776585347495732043480513176588416655457057676033616336138603056651301934254493782770381848712913474499664378346917919094022730020637549041878886329381333963552697286522876224251904380647356303590507635530536038371820291070870389403129845253062347335163279389173614125093621011756229063450782579710966543942699064378841216456542826400316754111940756459886010055334066333520020103754025531666654102331335146905620646386679244816192605989077500108649817865852826540339313438195850446490244872757176200033153424018987332023541381934360701323518533252889512316258153612251359247662088375591101587010148818781590811601513773852993285003972428105726365772389134256526264562972510949529960569958251170495372596699467866778593769958418014636576384060852032224866226903907240243545793415540211155507630491797559359695648055474828934495842693020049819767535814287215151835145210509704444582783996540482459315521509998065849314379570137777296233384298979639520994137378990278642755326449514707283237782720057390879051491896648472346890647488487587279397684250592346831798088531907601449634256782925366223178981294197955010096780152995598120948153953054660699346407344260466380046160218587284335216000677969670653975227885976532433502873020222696598970738342226633615369772970698486007313915609680710587643077546306485829479467165320847853086097459558649850959739780142771574931140843972135012417246909016283886479162756319493830117562646555484914832040173047458259937162799815181389924151830412595957699293913144893629432393783945748845931129657787850124896687818860780830315134700901179566294557885819597915368783204509885851888799477554093897551550947111775363694802430825784037796644297273727765405217938988879246027119230679476914630988644384384651739171379609496968823734696295474276237727836735846657454974992070906108786511799901319157026535206100565506661998225720303585599140980853105493355816809092960126534724944526682588066597678796906478745929902688157636080526946216294305568208401808567260172005297309598821983443828286981680823934296107382515682367276528295577112493689795485536442067735267933195092424769513820771538189576230912819858641807661864912556296902897536295293751108842440558994406958870243972306109542138102048203015902062434247645549992316663775994259889972538768846781967036160053746129306619489380998973032941245420083913500225791212666582949972851110997740369332993305991178737429576562085172951087962622130819577301102396791843246940664552788329833586419818081019053564592440940309994800288345620409867375883134147337174099102075071160905081681647773126050950498014864233442235891774627726229975233701765771609144955088350900391517833018078699250604519135875354450765118391772111350163977047770277988252713584553741618289308569291372723525745989413945996037940997069350704011700382909405439590078412142595482703978865705771306727724182233902671248862291802631378979963451907656671559773238263881261756613390291669328196119446129078508678552233067643754765209037590943301682023109028046425934449246725182839061358269632504151206111109530744898769160283584584583906195057572465634227734722169079580798850854013513961564695864567472927920367022698922511363934127887412420071961701727167250052034869824351701864701241553846043412454539105846304446391582063695189208735532323963298520464320791965121107446647438849552502027408734017451121563320452170593843460257850193271627124893831724423810842417647209924757017639224222175666192660557240818030504538223467312198614466685327758064339800537036255647847211924298984933716453181456441050177773871508043322716143033908514229080134724032275189299933363434783134639799552614921324129279580498442555548048842860759899791578993045146690349423914228083939293423820243208973964583149923497420957483733060684362257911218114247875643720449131599697447660694922805059462126161779061169106092702228690937665319041127569864288584748396958475833732256951665714226529533358218484750341021928549435796838375070583526101544701013757628351055474298319803607150169468845502066169635040758001636059715250335016957290429260196951636811314322621667428860276442497860977615582825853923607650073662058307608508751768994874311173660214079155167618618884441194762678353776518748329364312192693939141246308356419079513509004217758593541312750657161971267944712075826883025233767277886968210297148606523848535522365240600549756448429205983619458542436051993722135216492627127079600156904262181718532185843065473339074720178404565526119563881300093877687682749266068460231995555008606020678574941547210687935416398635276464698799756882493758495432472514416789041140214355445201205926897176943312426875106329491346778022009728534763166060331771454202625127016701155763308169832857204802730548243909638110457509348189742250209196718178451586463491522682759483697372246276512670224679835031954247809106709830665057253271593566702958896946592065258122666868167597277445634637796180119786504233446472692800779732353157033715028184530335827946842248997208767270955549011081418689767968099759721950757024493520934167199362035854563507229173389887230085967345881828204475320238576034628606143354712211677137780130132396043807719167276570480080564997134068234352127017948176582163060522019284909645922504052729328792152970666346360475711199551065085739970058850120085629847460210847619203720029738147298564808381676237066614255790227445638437362969245698931652591791026133522155042120763471198092377118766933162221301929563804131857550461721000395440567391888362103975451814447582423525596751054014447384582190431951409635349553565531706774575490228371304807447236388358642391372052817079042797681544265333800652052880142036172011495779407351728945950865903251540891671533148556953465794640214458672142334530918511781491989572631498116770066089104258608254639029721721707217994149827779847680506126065619225773377566904796886142218144088952334693086462625898982993694368573201090266158796044267605171894376248162252960769421575109647876848844440297622802683075659617396139253989683159221847714709214297237038986903273339030723060453205029421159131520709729760655039513412999286586623710868160813269723061028255685040352023553258888391550504825115229395750290549992347678680405232580563004240462938202460469151181655571527752414700354279000756052201939173923988101305962327636482618374810487712960350979593855773587235931947169644230260553580632393947367919290246560054296423168925827052985768739313543695551397541359340961820760777665604894982312440907782996579023443850036537274333909247140718251415501190436680720309976459861353500879581038555046253884743053303454342666322851759083717564803440948233953552747621191477101038860114806996401892612240732335555115315586342109121138839620815227448853231412961554028531949113165455179067938625034568425454450041603841951317182661845528883830485070337048179979428030532409838117938497515059226742839164240471511119928826096127893853820046389054560946898678229242683280027843769867443481488207119909071424381876722847367367322864125847698541452605529005234584334826124331963903619915686455089625576622992662776613834844636031102865573143584317146616010476400894218447009867883931542163276551367882967257216307230263418953886849544149044577173399060205991193764572878857987756429623053146304058914695431575177222343514114495152524738829028528137533542856534000133610048554676546103740781342464401415550844862326565261070852254125846159077597175920096319838731018646098988315424990055198629257086484380549372137190526732512276105051736331590853428068997158597364269528198816654677920014648218220216397183610248578353332885821112532084780445409353450811353921985319503170000849873729813824454156338220623596153653644976438025787451496248951992731897439297319960256316405658385860046713903153506527459677561541696532272886317417592088038455183846735404951427913473141513313563487725768296450534250160462552042443014717799781879857200886547454634247630904323380020528986306853999850678799488986275049824258588397367758347245590364792565365647379677474497393762267883999076536500583110893722857658617849673245611556596726017076752034172812259130477209373543543236955460305978789790966190382734489469129015653981570434219731680166895940515563626462376139520857280958308423990280305815820865034215101213913622520957760469789736389281150194828391953881418961890960593805551491990996934908494548228544935794932582313052750107577738964001182348837057127543813110090177318005530210723428278194200411868370356417455221920485634832963941433494889108636463993120341028461232663443934651199430718963482240053822962164794431180981015820869477028952455320234286698482397753256982964386310441928584593180896262677423384766144442180939003090980397644589411981927138217803169387790814703683882643071618924187792478496670149041357012343431198391276667616904072950560052527044649494377709463654269761400862370435652215884705181780600013925615848168310212080503928163430624654695080433805872238045617250541841503705471506373058989409008484211108424826168360239389283756100122420587385862722956365970459587883338611503652651054312725415471172431136143469260585698054838012287106649676469118348258614634084528541142869107139484940821200723469627967476259742705371773261332247228006083654362624932382487138291948707214406456577006256166041841463566567279716814378262500140005084057198648563873826628636666244694307312798511730442687571617325720170876777692603917014445058621398067548887134219354144990353919583395178952788829228642940415246862787243197543189338381342454932867107350739215237992290833597017747662499981705627511104662108829613298526882283496296901855519845159226555506705125605596074870807174209150949021229467042801275219686829668668773988041583748034494538077660852336360029107895171111075746910701591544033861676554367718551353917555502504284799952191369369780502795548052916732726464541700722145336780052063665207308814319360094373494175179534030523393662397217996667209992859331229193454412440165225391176652524142916657592729559882303175076371424073164573804066330865658032385614001314585573647323902718163273351795875447937527416709341693983346641522753899847623668163880985269151662158127462846016673975358401108848716181564430527596492736728555499273554878408746665923364113659347891145310749597258498135526414697775687310282369852419458111355524254395512975639002595383683212851348890841345472323139495858876884172858064414247120536010051644838040773392326752557656113943039634836590658886898153226439631928892688269491924943597962951885410629314028067427550550372775410526619085722940891862393818207711442347580957741926576761397361327466180616050544002789890919959472809901642557074122391414240177955504348336621499593503232629510883824004564904049830765812076166373213335255184340279169764587802160799436421803259737175547295263691974982421021179617278144323349329671597365696681873985218138060182707254693600525228130622841790843611292089974887070213000720579418481202236271313106940342023848324933092932984250635229919776640332047108522650638488665215153123214963233503173018332752363137636771031023039408380951903538891438285329719742094214170452821563373815913506014356409730314254010461492844356453866440906881229000532845628407281048443382991290484326329658547640863944073338866109511056685206253665616609906183351616274160949094986716463901584897982597829183702070564440447499523476817899153564758600628964539995313829367846688820331044551176480924553039338427134936065243991892048318427624556474881552775906307588780888935104268311900657589661153720586561004774969584981021306067766223598211596526141217506312100401811845826734565782940441709345258047752052853951802381576913758846592188264694063559612203804778089095625360555248822948123911989179306684136791997696384513598451169037661872814116524930101561215144558919372775574538183264662867525171755412028158935112869836600325501300091747700064254393312133294957013552779034063387469323979306112329060802750162192548276760986955832174407556496735516875430791059855724932689770219384848968206272397169496995378765767195557004222511208183884944547969632107956459324094488490906837500387326073671255262955972566902114119142604181294273682469109020911785964240280029295727794310137279295538184724306783914494570974674505239853478831116201372061818692529794121498611039901328490768554529008159746722350268675461829708296867662375040445863681044403088387548782668728662521086735116478613570022809346517905628531730695022548789126138848995316942636165858118314590401066382611370612798833088978762575556160414398149041686600657889467738766004055913099224565564620984247036634327354008790351579285842380531590990131167128246117817725527655682412451989231078019397804675110429520483422380299795179537748403766607040018703634730556459791165123714908016380768252050337601825342964661331388736612782469337989873413807908831338386897422759285168160608275960043190038650661835143580329328217272708425198595454764704569288071154314339561753839826895589447331214087761815562403513928757488799113550248897009602604400810500753199596680807013236437738678733804958960116998581192670935038284015978453705926270385398756649542945735475318782908771604890042187923414927134319479635633698342267662589771876737043799470066459412418507491568902590628208190407966979558497121815588647142109767503173481384398283304102687375568537205773419036723097233310706984649689909662457923128785854624838249733791723912407690423671917819231277054134191742348187958784256370226054141988283291931465886321219371150722707308839010736166633244848291370364379877751664198286072612773626892014308944161952984107319830001886957926396152787983993536913200714006720621452459017625591622944486693981877970577468205919440581982400881641513126521350649796132773531749514089693110977392168408437083085471514476937628042672573279474309449749793953544309304048296980019922218822448140797428358642196146080969393140755921434927340973984148800296034184279055192751126116413707399669149003425394675642632263458545106963893806388102264019456309389245570907133985632179115912177036815773556335461584928408712155695196204766090026679795571532355467731668940393157609336991569256951583334709448547385496644263478134073730761134009126190231242503144771533301170424211730595735503307427300168883980798379405140327230870808958623191746485558600593524752664470562304223097273396355137511844460165028804025280958189871160984088690642658385449196611414415690573219872152498414583699644046259039781963795822069243158384619955806364182124294599971969272124384522477662784273417880515933367382876767168239741491646071880791797297174802394598454566742374115004868854590997696047889694114019178170591074638375489995637949538758042086475938383893360195387125817801940771502868638190943832933575073798338294942754902148377917171266524891931860416268052737638682245863891954263744283318563394816098399615447209295014441596077512273052449744966097011627051488361562275023978065510206639615495290634034705862250308284983037309445459735703744837851708197922052574717737697946670920478570614990292999385296752268910900013832927903556778935258597483110226441875025520002871396329364774497334531699192533242516891563757947431325132834013360269846978949035760971690203923820217278828439848997157448427963292117812796534079888983926473688198924263858915773494797547589169662333030352376018325175308928353345258739735486616300953321708938615237790823230738577502188021767302923698820569620101434049234999450821310532541674215788821931392313665551612474578914089910877229628927624603021684130020619799563889619633779137308673108186131717239785293271046412649465037689019764928881482227879363691746172631218276364169109791258673234746584862532972724273817896284729375738228881371214865239504158812736964444991077490698318676748955737220673414418238673512441621024226933071916551273521016024679556946146765987920455661742174642202522042796704339668481787411712413635722275687072264114609078868014430982365513858836510726733307563262375872155949587340095272890701279440474304455942852218100023415524575969393848332886446782204500223882196360322206673852035281016894232567367247360721741195977247553563690555816499596487340974706548897316417665040672365475276115226636055684798278062487935031001038949089943646383551917219203443798781866246993860073371161747489407474245660540224637675873295586543721024163355135504481852609015786834772324695679657763555416597387796232145953260672410463283825890976061635311020998525706293225129632882879058215660809495934426103995742075251022310922937420330982015047535371674323713372938479555891566091198019157874555389526476137081963132847373533560439553993704770151085335151564765300374334651325963653099409538760364207649547230881065357592380337681434858847431437801790873088002669665809734677890570939760221971671589157847457676015321290814567440996690580444094914454416490592670305680548271058304059198958725590954563771887292326529436618289651972300008641390143023403204577980715477972277764061145930798011048749737211063338878857938542836164873766559845220563171975523327837085655507924496463547097800526261447965665308081018226070034263127202093609026974757541941014338906463956159131899409674591157305612199672969579445190896543008666482121924861049940425960784497991188329988120998218458991640611742336363791473443236135913178721196250651718263118546032440791656588690287567142012692821626720564038897896380978718104704230129948280691669643977919530397789265775108379439243482348487068731289588997667988183327144088143758158976677713260758162747041223516557972262863926241316818408314553193315849958646231523763594819833238644310532449959049517236866213003222022460433959173998356667538873034445421778470974225628882940103023554601914764682399187065873527906817592166538444407046444562751907489797025499420775616216046998502559842709497552237609913333101653794360670420573840534880896021378879455848220838651584398670449591304637679784807018916214623768910788065218523849655409021068159943990601541003601760296752533680481746870060977564076528113165338598359380856315886492776317547743776919699781356330692041310380117171236651321982269246427472642287287614516625429208540132825618138960015969846688221827489775123095842220204966425996417117766183644184028596317440520629941161183998502021369078938565370752661795390839282046360511466311693928966123235715292685048335788207904420127193107731787216158063919919414434803852967412096755996007815448963714699572366039311433212731652207453073545774047529031942332868476358113845071978007021392220136932536126327432888496769974301537928757713441139216777598647162989140581158657843862194557336073096092413157822238328033081356330721929819090540290565335886312709533133838766660424671924298622706798641572099403109321845150447534392208055425871558654780715437137853562048666620150630911891037127955251007996015016858246293191672670468545292363119246738100735934691079003905853360737149279075200382901289200821828865477911212321043057710999822323745611365596890109898898310850828284314329363043350938221695525716783279994973566776931807697418000992078834409561333838208086129952658245373118209751240606287541438597861061076515686474142960034531447386614246592096288415746823819500599763443046780030255603319884733696556785319645081611979396136127985687807811735531197345845255911982448099180620574528856650163775387029726961506085673001314870546264285135611523136139982029571836418113571850770160575539249689074436867892683203569242917616324620773645165453566249242364832688192717713461890630769125542599890515660962326183324716898043385288723536342178497233976986580294834462531774483444695654913623756616585688868296865992625584140107647433596981467988249920722558381738519303235738841566812899985427373662140173327396476030475550708109727344981367187060604767053911718016047479978139106447655541431861614723974126303179740170977438681699968956230157666717460207184799514817348757537513409072695645775758715701230319887843007139212763372188118286720115055663650439146056802909772943587499156357709355672320596725965759028211719319969465752708755813360638401037501623118554175316421407361025021317318238784778016211160672898466806582416333646222294647528254934628697363272582632166970667337003897649879369699869364021109001570801308161353637624515281866056537069639548919695978476343065899723304609019256281579121562790568497524432889508812174320612344279143838722502075580629981361182322328890174985579385249282404327558673806905866423679564873901616754877316693997759126034460182435920911947851132732565478632461300255047835818528027786917184965558200987881794883736997473761889048391218802760585608338267931391548879921488891276274201025530263075328969322552288962704161231464074686096629231699793124906849612582799978161935315251196759156716289029859992643637872424306549800790096759738011923472877447115920288895522253366639572335991074389863199145139770710743105656978799941577776228708207213397851097352290072482247592390851289361175171519130697907237099295976467824225522233684582051224328162665160708942389877423794385914689076762882973414502490785881797814325875765353069339727377524778799732960985590861540244083398140286622328255172732072867537956995874066747722133724794005422604575568706011255495246951825568381383767085362074073098126729154631091332619982429116292665141059611417532718912088576657983199229481773694711560154217108454308579062047313172721681779403584623319358322365103237424424240760110192420721529466153948568628253605292130756195785169630797019960238081799938168804525282885046266979683282990177366684824359039772810571482860477318705906836688304614346165804532760261924684002978306707277632139805615498378198311686366616563948994032521185606923528966285796670765828754640834832442726462984751033538077326273061423154744865119168898689646447118176428299522783324781535574228717162015416793682752229366215199066263003229449923388433864478329752905041238108344692813061436694386965169389936126632273015753483026973638658187473163623001831015843110316709223445606405709703169493982318164790029719225862176408378292949883786486568981858229313357074038544295759321663318529117038192361745162922461049732785348145495638012552148547090012609578787014028303844621279295786631111402189191020319786424787831667735046480173014398259951670818401429099359927331739377750991382515540318687396403830916362392792307729110766645452802444946446787835740231456149007847145351733979579252799655630099993513206588793504423872894887511675255958468793631948916225794871982612413350520056457458151570082218658072628805623134656616764767338461315224759468783086165158315664931954892830022555467635912424732429246136054121827105282903940272705265358713296423927819907869302205803899086568536420765923401537069085125362677801653594070505273041880306429259193905140901215317907303718905070716380089452672814225104280574439075920905592114102745643948306161814749088459082027826217823805114402716560834857949467775631267413737874826029501148045929700220730524950434914460088514585721098738591300110177814948781605674534245237064383394164532239536592965127744035178288777721088948039183696820277003522615489744620216006651304493718594677640547774798627196090371531025160971744870728930474216175150014115046536911498608761658977094724300689926699548920302636509712075280205661036524154280843549137401526633294137098684766802091759817184631078031152667804975381935300997375915273193068579776415079757300603656287130509082896989646832339093640422851159232826283385617134419362038647886863549414834307095352425847440137997903254120231274249815682486755117967420443011866702066056181011650418778734247496547000922070348712791712811697431189931978374831310360877114499390622027815787527357519973065149991814170793345633701300410939393179345161733056183093187111908762909121152781203286382190854316570494259167503490239597704829312125133988802326905038131366502217470684530359947716288149718643185648299749993566339720849015450535339002068749028169839550249790650888130449730656804481121271892675973871752071718617585871744327552231399499837626715911250738186684128694559013749801111380527207080586309395392079602159377940753458090293352153051783499308625476540267190231191831631521198029243613198031292847722271639499562959957480820399857686924050508992259708404746728864203752157937205203460134131327910603202114195686420533000680633912160428962580643038646750782273917341129869316203059335093852903926227711590378003595491851091818114507691113468421571785312079300435541809267436844289014182077506613038498432271827042138552400382227741277971927692619811752469539065464883223817317509828256232772607249131376980439707475827161104732354100502190228499724893297007883042208783181095919334611188155801342302116212326495440963654787863064746521261151527452556861930229505852327456233686452047236251937346137830001567986562520389579554334724697061542321199375610046000347399311282152141793138877961339321174042403826183648206334319129642010420468618600532007932678801966498211869909619693323411598629147794286838172820041920986624936375476864054807685183762610472996360429055953778069958211492586080732685835223273420415457210848925794109740607487051878872594902167704952004754064407699551629574156775994287830310709890784340119637882393181381945425693979432925207183235154249923247690701318603386314999933026618059790397131018263137209642315632190682228549266645011452862917165729742854183286380477746288734491522225963734109941410774986235050957916179562594601932238852566939384325621461604367087899394677552786730073526020704096026038118003688373227658121248510534994479883396730121564138012660937603492502434936188678519322261783210193017790994356037054120509377779828964296597558648901639323946973492470805375692254399765016195212839149689823060349225352848803596191500420928609020715687267058413776358224101720767118139697266984697027608303001783503837971495477674909982067157591295488994084841393694540167879397400361895567341734774434589613283238258986183602107956983057515644488655682445869854616684591380802747676472562194780425073446111713999249794541204934787927783443068554581271094906349085852772164259296196707698220180883836389296361348266945222349922264162177158033916629132564238632976399088442175676763711827769566457997982794478677921670027628481775354749275929910040195336568022084898759425279990038154085450986213834108908795849362888832540429678457457245661554100284387865740502481727209945368592741676387000414279966679664628967404754937599323315916308181478252121865143135591407609591397747960731325799369307639407408683131248024609371299342200108803804445903089335102616158478474892556548942518088359019506392005850812639184255710230445606116184877584084887954146891757862286726626012159315783398846784108588238101272532648508836644408831214755458416743029637883723851435706591835673139517838197878898940332739696163959759515429123662292172232862226276984288215085293761815579952125848471396001143158266778166727173839237630575875475453602644311573489052434510919930001160785638509294073609654185812687484851058679291411379943239546658647687720154734140689370000089633870010856122170050984476841801059820972399508203927473225360117356195633424284624403626906611170384134543580698767157502483313496199577648430587895047997737757871275335058740614522786528632739896329144887428679841835027795306262146068286852688872287103210363176239075473389858901936586558325432781472272625476985089072215733344620060310243872722568778929020325612219225885182601107679824525324394213668138945594503504333321861383716211881339254795766203866194028814317658586753726764161069066042851581924331193101422103528145780615605090608975674053218328889129295836125140297476843685537017577690540370517577654331324713965273769839316138701187357712623219282302206246731194156014344479271565032053329573438951514335455554165828587463759050687551852802906585299223627148165312703110893116589287881638887476596341339825718834656555179943142416463262363209950959694277003850225126752138422028078367230676786138804634379179055936874970183763573995624750222018986424396832094911492170413944175912408818516599502733206580602208291592640425193608769489162789351668345957507317317564033229687690351740921907228397904008630971232978373471011696700648157224919229643333217133803920582124329005422159744908066168711473237872837440782830603399151408785099713776731510383054278786927143917624875936406425029728417016549021749382207958716458523093585453137948942966676477686903067764422239115684391813760454264478643277175107125880094608396324388285507727026404303087307920401202932323135277609010906040072972525161942310331256668863452180545456259599040846438759954301408452865977086004861600703696284200855789785881023197519317657595036105293119367234687680536406569712292905047343209199521838263102507875966714248063621683206432749614086620197260113755960545726527340037925225139600749026531559642115210676404350316719514547512168411248933328606394048107926743499683650431837106502807268712286358748797024348408838845318189922796955299350204688885209003192016284565798921262075367697658448498615983156347065530690535751071192703816205709391859442028366125439447613228209910004599279091149655446076190755649037021959673084974642131105190561246067150378899853260737311514448072515353654375073556535633911993518446988941582301391792032454460420870655933376397673954519967259938998178223084216009494417988499993017036008848590524739214246190934161256316942233978805828159525142921967499947341790219865829781353479957911794109589901172309395539682543556903089732695757558962580676260191111791057494571677756463807539204291874545250850978461714412965601985521593370327158202920297516212656619292833459072321865124385713894381430682268945486075977316270982258780296373976936799160128791801546080462100753455065985540462059182059687672570347728015740265880793290207354944301315701951422754237773619530859004088070501093479013122780472539147688985932793422262074932556743932888852397663498028449248094868396015891648629536340176757076910072842560332488622370835605245510433776979294003569529652959673450245689984576606508676539733396052480119158886568854715607929019425840769647229713027334413718727526156264919215791896157360615985571097720233330410370041457329938370424543931215578193872447148815183095294771772682251668365676257171267505915065724802095071115393613819248393914015069679138526828460806106707048145818514206013131968853578286969986737709125973300890551065649091239375596233196289471936030296366581132128891676434360369897752289839536042142424677373714793941650742710562102325915930362123541501122650374637561643258390406963159535713849463062955882452018844976039842255820691892550112469291959785341711737402133255918081201622464474059152523654014729897519223559304803311414931730928954610490245960653410539868494477398678678485807258940304038941005967569012414420417734573003818941300741616905028830987132636559535811692600030046456366171193867731240152826721087319768676176745713272001967063786423162238699188894590604789561969017653674817762049309928958661935542533857601523721317935111619507766472136009104612778874159535911901512437422457283517896988682390018846462534118345930603256795053706371983074565743143146849832573987109305581044146780423688578432861472123508663119918235513969217135916666724908575160121146687977080231574451973952853845351162854526370339994667045625027548342019760977417907985043561712526783952221270789917017458151385238978228581403051081864358830354817187009710455694958797470982030891740816764209449139545265030635584985303471474987899307555930760093142935296451521318406215008414832945568736853299638977669983637984196237710515049337153732591971839748530403518408758284790480125271612005736972788089046051132969353552839543687865476500863775038206102722848142325800223541842084164653533013431732433959603260622953989476405236175714913318979373143709462413895379004089198829040155296595233504908301663917407586760945591187887245354301703663687307277923261631294082195592712045225111753654664281201850041817090382183952142725030781447271111091011123054865291481119621252506174093693997875124290575818531329480607522620332801484026219248366194162324222914908797519595256550356812684809720947118320423161414911326546826965013638943268755914062056200088820456644014692476514274820561632691775428960902456870522807524046458343690997866842564603365792078794792941029713577966223734156524505436067297479616923254122228752770677587609265100891343613063493221906979988212773583719151092936859889012648666964765336891178897359168575975523634985010766333377629440138586598687200803913329424174892771127108930609280975573497612694785507390721120709228805756829542278618723258767691761051209498055139453981246493247461790691560377263649065092593374874311760492703009271326997974935273427849069952466348769514823822720363481154121184108683593299539386591902699426945425908258194714123495858283152296895828636336842579737679107196009988097715391488159187023910037803599068498335550328509915169112586245662122969960869291773938021161018850083322040577082140159453179566146263794400060289211735100243959136021730058892738750978669821657563764070956382859077835215482464600241675305988346097515084228186616359463713144847762938050705653683273778882866469738901387902537901980617239709539033146369394049240123040571816968156803584474008347210987868798260940376599041904861891163484434229931659375098520931374043941808746881590618384658984877272631702979634358532273439956527637209785363545418220202980199553276383361922721648053766867585548413937635895046193405486941455938880082021083523188598598493638161674420738991458565476469659557366588975203978361758906677631489263796568446452296045016639567730260379922442927973842759654878749145262160204549483163400252689743032603052933088825845435976158111614024528066074406534345194897475242875262947292411558676751071993531913787047126198623806829330380435760160787713482282687641651310421225268496775884029339146532709652376158533532689819622887224768344385881220377989143970822023509590264937183790723530203112053372712778975972747118877129153915401425992616821285234745295640578528730183621649239776020010002298424015685120861822176621708644503783898028604996285860239822765269522672970467926234247289986737184041625095519789672823860206608295524132322819406899043199973765022194943335240259625385297665700193996785950052395346672118981378854601351007107046211763542355278783357413336550258049874655236852286142103071912863879985182139035707344400149735081481679610026930231668770004027687032710766049702544469378084405094947701668818898581595745886459164747778176368539271345552889265782620330323018327976627376348408294357124978904986710548668849493022261377804947371725257124756449436489208921158215696129604788934955248822216736331030860732634910610106597430222297221073233645240043656500639513543606329370111129898813978799923034976197924616178532283747825614899885572315706335899873641033541264716722721217402035937357368364106527196818862427658178148361510834824493869134092612858761756642722059426892054567218990642565498107549536777310092808722892075958880995887803932250945342516660223295754956866741226659256318351561932751490188745990131227295158849617536753658786614009438901957352135166424747534803744961540940941049615803365032969176353542937854642423210940223234748436142883198681043724910232532116441774421520927149279227378792707010437109569093978723321902514828971967274251489194034328782692914065087773478362470733131438663793633493906094368644705730620786875964315992553645860023677426807594885230707828918654843084260881939877998821327277526864538327800969612895516024948393287684316426534121495709488925626977456954003842094920968447599064775274735501765113302964849774938417339456060107522444600897189952226983580877081014272001901658657021783406124267095546691264498415391008112261744221595366350796804358764810642583657172914698177728484865716219167211873312270906496728329039383124613308138938625709161866594185600872668555882489525257200144927479436421111600610564117856998297594384694112168367793250845294297646803559086727004571170833552437992063133665743713913971982498454094339120892686705069802947879583089887853839639081121109514017680012584659466293451247643496351529111711538928703465904917306257153052798196724476804395249618395036521271017499896017789172674057537963578496418136616868227399199357219522740569454560923264699498732033702519560331398322599571629248490610017875243646902138968462643048931470437380399938165852732600089747116587090714014357598385968644143424430241107713181928675498338530530396394906787930155443134298427968424516972634446639856391973758606144184524928476994220658834571232974129647729326360126791169295774822724081088482477816303507746038816445143149804078019472655510265812965598150162727811047479332543006833962540340806887151466540992613133425121192459070289804838842144066721921099061314820194118301079822038329523153763130919863237274181305278157647376768086422633518473176636715869819610140643715024974770613297919000768191367005631171677332970537648697727962791308738754563750160824969506783814490311084882790318235253370217007356432885793005334898085446242276085660436273981792647197991411908691418189510793290597275297163149265255671165561758391968070305017030760510264811386718750590970472128667899081906144170208044822292748116458716310967020379577295478591812477730070274923051071244488708961156983294489248798376005188492784023303459804056755757079101760863429821924199031850175074250232569570674979890837808624062929215708548331794842013652284403022148450756451140672282015776316195278577426572267277185220060400136877164393043801113355166011028349623899132641732377630528627077042198918539429242460701689194560688872759817892351814748108060588705700295545604177037305097528229665452391963330826975185930026832535358653983427299020552294784847712174597434847769150375767209807573294509616932061453055749879297155403125607456833029798572321601429939299867974402843036524802926529623841893468610468472840804367176333106231176289776978231596876410799290933423491417307994280291204437609622551269841885267875845794254877773456983677120548660722411946247265604962674508203565941297658019065343505638152699530586064410626634250082559540632979277607942435972633029629324508907510646477072563068107089160950590513194690984506416294602909659469876569161517792308149246718497746866968220387273824693727633736162991099204035216397246944874233755316488712495254413723041304916385498075264143483900863207432294916105447023022750920412664146571311260196350615379827854480323925153045229159947825169755105347867746822843996774800809472607451620733940729196428037801292146867555868515253857916240300228504834225552423383985863670396145531537508314024108064375959611400731055184612407642402234743557597905677343059704632676494836171676353188609207380900099833861647201902822275170052429092840949170905706910259520039048796463348608287024586609714494079759042779397094146805378911209189977926026826753490325639050200915516164188383558254729941782149070181974083673448527783906416250632629809515498885654578185557198504566754307376891686698744304857818268091631422694664570988917470411205413066524738130431715510408618866016097559463752284589419328994858049270995811838307113751103234423932312189251770337387131594504580375794742722385445439991397099753262496685398565385163887332602297311778988253847501500227625245732219195273240122051472606406473680982847590335374917871355301630597853781792160867145783398812425793496558161778759914595224019681007235013198377276854627371079741176749425690713375308181763947737735768601224716761449502294367834550025995935753729038947949000556363511556234415447695786830138486703854437468235573070450052359485831991385409831413576977255623375528465446786774433688917778781942412340291783705143763470783483247765202256644652496896340229777589987844270506433716601941207089103168269129985197479387229531814938900659325217961978228849349723089692401791685808524511030549026409127724225474762787921015275323511000384350568637710520585713336307526309257447567396663118085476294952112209551414054010032766901574449123852966978210908523305695936860239203473007987408736491124628230320479243156793073540543600903613332327485519814564752723432991491137868960020996162671569523736141116472140283331231296773392747562480535231955167604141992507488571486374010200042633016195533703963358459956513688009274573549598378226846415832336773140650591488978884452062536578964150089486872221314912352617186191991909279967810955098785488904489244678827099187409883953248239167568004298500671257557921032384291515018921053758219924399682753397685937584311807508766425736493876995382126159872816833936154027034229282798583846055844737990184666127216051204551006854960821124965347036979253828352661611046118155824960183173225900231622079514077797943711510695675231044150046989587847540044201724118230286330715054252932021547554284889313739968125175109007233059442647239041530233317517577006569759041611212485055763859872395414087871397635086178643046016650716745535783568708173437460145087552689244072235022425809003762279128164159832654748139583610324749497582683213777529885217576389686409046924864495559064201170773378707881859896747527151259408065159603317034889646950690407023775905887135844176109313029148522487821752040794708806451876890729283994087419443747755402317097271656970757298669046306044786424663130959253053308267471474061091032703581455158619670421886585071978383285742431825852625713933148279298750786643895725724051499650512734525792524762617325129113959268607957379629985594836370837731789324141750154765050813763504206289490390292923818274599385339131371945139965031918600532425493266892319693988918260365117558900614874819577796286125614801877590271676796856757065929826806199858006085354959207065617479262953374522054782401358054638700487049098753522912293423348284659949816519871660559276692541728057383930989773481609328388710116465427481682474303810790122567776394928401209069612574108840426956815992199231189379117413429256662210777316383120119343648633083517373182128344625411572348327030589458197846328590842957515048817445046600008682941042143541652136216830660598764201974822172172136284168166956066721328332427520585802517058544202018172879793604443976089751770016313826320917093302456891353433857023035005950213427056164736257015097046146431914617822149898376401360984866405194992684020298322840683454032155851846560200915229075176834098545813528698814148774957418647275784269440915261114671740604464967856076778351909627813855689757007488474678151426685307230751369692363292518351249560640731706179776773651301921408868585557430173072597328767053073912048505314170097296289051585938278480295495867162839359544783801221540019733905824096268051462919099436365008393124041534114784657417956952111826894582960415682798901121397909926810390727743162859298979693364124089623341390571016566639992891324395554422964547152945166201177079878276658596643279116418215311748946680597955757853417085938496178558434501326228958976147982690881528133036021091682823081226444395704716358901140426634676043343402537949208892824435917248482977668734288574118813422478457712214947368116961991592625363122770189229950695598562284061438118227930618651439241971730720134562730410376252704184722524060008822479965213662825241289842516376358133407966276722807828766620300582398992481495858110521046132546209372200995820940266078261199490323218482458430529279865887345394109864797458577699157527346780589469585597765957453111430723382948665722642851992982131946354349206806913495908826016422169441300348383913320472271833057017745703861615469493842108438570162311686464850543116514441647450495937715045196258503279941179709781334005487841910160907879934482676068577484311004099018873048151274919822957767961961294021525899362314445520331747215530902726402369089992930101962166757967327723668911880761098187049290554501451634168261849479985002094832333304872986551294607113623052619515708661186335824549829331379939973011159336664552624017265195701276986551815232532036286128252229961263425488424042235589157332834483222953824818270708635874812628963291007755507124102187503139144140821595076570095222881378145786572831197201398989412186438509366419286433835027452910546757363763315083637896375172302454492588339500415570885133028935542892529594127024207180272104861538670003587430243408390247120867361373499279707195029284446518309010401649058321780931415117844434551835107176130496577973989305254644842352170931534563487584050433400173895042864538170882390406681814706878668293740943769984409473720451904669007084677991387882466366979758354173795121812567333204826564478257456340946562829715249998246338505640301873075530093773632130525011685433398992630511151234415681884584911678536286371311169255126328366778002432128572482351085816244491999008781872394787275574546399388774664975377882321866708599386151997379024143775740810624509661257984092217950798110954035528498088567459462428488825804226642137003992074868817005690547542576448475291730908229416323235222045985675330489611299580421812885587624986492919240429841482690375580394322365792821562186834184656194128021826860036870855969855645025077782138883525994587510043744094671739865304821104107419770646781432280739730177366882630920720523757808276480605588842961483550180439650490573738813486953459852527399774915418980053171984048431534086568994459560472655108505008414961618166322754729330796093539888832147643706009538230935374041342604383322699338921454816100520305201208304761976541535253524989384067038014283626338230406480286818907632189209668190540336006199244073214950828988773115516661542177062326407336733824105769488170833060818853643096051620099980975761983020116513253911471735322142370230696294983055825421869761117348060206585870015083669726450508008443715923217224950719705049999428129622214098984856692448105713423050115303019679983163554051414992618514655366998962754716340462140526941159250218350076776756809700869837811724463622788608669514763256439551229846470610016471933499865978403042970385356567327576536936160129208696520774675318029186889185880802173406171191293416193858763757396903157296272360500727429611132229048086151140823281035353825336663537355849785569100403171349208248451936846422036739567544620797215605727081559522683362841666349905829249088448497071794191199484891429751413223371022117418561773574308077994323100597407168893724473269228157168432982318090771499367482396768561032886164721436337473769931550216702494138147791903254039800859170550550258352133316765247175339313447089961926088564375568673803978518602633250073137930119116709074248785917972160052172543928467793795400095859112495045874377154085028151373687498275364718238758775622838223785104372106742035039258768874303184078153210745122606466987392501143185333194280423170314397973247375119996424266129341972276908804582467452296785846702488891301509841850471333478813355821675869813129330329268367175294428109860781722949385947451724915399434188122204996018506754162390866763533456597408609579785694371734654564018169361662682650619993935851919045610400159137591723301361822190461077607834024709313878437081772453046010468865696880844861543968875049985140318070212348390325124793245106209680348192515721233179431804878006083232929822711799647597042821720406087788320302188537363787056238828713688722693997174500428220081963291934847806978974927010202939469002336055047895834925709792681595081511347590954186545139580836301386493104778869367390520103477497049809444986262708239932696959967980933749032498858563778567889590757691484626418344099601373470220697898383560767187453153018112605223074042027309644334782747463524606818480410222441506825408215748389836385083209991638177189141815403280375985003763386890388915893960057197269645094009927265870301066555341368033410206723035014256809850180850429043508484487494415080852013895143883422521496734715002040297795796950317612307400928803475843322406308851119618803760564847025717860288637298900576863376616378114128076552237022671394900551864833767048336653526431948423765936219153915792492213213311751925107604552636874699655062479105853949478964797720810530338236662304832927774811573765114471256210717774180769236154395548054916280910139534885132777259083178090774388173526746297537876889446554734847197648161240428226842103082019799944113011687939048841077183961504382403092529736974059087944642077884663794668453534737215987086813277948986194558248939253668812502130940713520774195674813409252447301474209881096389551272729693014112447755576397292145397238202017192803824273499014695185888047349563713068819298469694761459529660534016470087661414299234778765783912308204982931296097340588520217646112537471156127739982626763850339989226977682904829583870142486640279375652283043513783595137132488436091427084968781047199896643993148395635401344495076905807586324391691252179655263904538008963458263566912704112520643611293246672213016517482586744070108695949342644842244870781443986277990078370541160120693436893263702276869561636110916021293606483591746446797898734347934722233343522201376833717105890154114300824245084861923410337452869533721372806131974256358132272056675953338767723838552645636184777766077633089779897634674266432838438399558420790670416622760824640585008424201760659582421845496124603189605452239863324832340480348468903564695427091874631997156530264448051820934300465235316038969972555042379013172306635578303020790352374886329746276559111783120266813922756001407977408529560319432953043993259885836163746400614868543193069329840691171560882510945330382039857831578848880065917304254552554473958777978196147809352793056308679322908203527212784058683720670059123335365318364974249368908790146027961482436358349217992891780761377385466439145194169828701650878414603533725961367913626033162374735522872322035093788791077267583120773900373128985497186209282295356329643254978949365251228290881824549037891427798483779320916723001462997375752644848406259779095883780448742390276355375300624400935624363394391354559924921596846633561346770800834352146882525342123727045349485388201721228779084931744957640273203134826218791696235829140350402850766478419349672181018538759167653435974749510281217666367390897805106743569137319904314743052583302507559285165490161771129702502543579045698464815184727022100351853017486163928026864385031495244549297907967650904502556606766376818532775565141414023310508804157801458863272994251067351525579342553294826124109724455273393075331731386910514421647916850716446752045605298522416457751549895224160668962275374792823018921772100901826088348626853793242168268185438192310704390889915941450726246946781697250352244448373046968533563551035163771514846420165248695173188698055959094557651691801452896099402339020671128756137793781146369272176638956763636294762914051440668795898051693422835064904034846984072150634064632767315382827873088593297684350674265860712535473753622898973056625049396194839888341734302338662803090247646543536492599930573951866775196956329452697480473274949578747909131495489674759677292611215218734323893121987589431190196739232327504633151094782004508284755988565548940774155848692472139417551750313866671745686885796080792875651509657436747351753502994674387398816073393489270104226527484945396658780789263292964813051304714661963230845130186206177273650361311588351209910636519908329308279208233128532217372387486851893322348292372168027935920970373747850306589972079454797109100872062953250907380555101876668812618430756501830824539898900227298125669435774312154142831349889118237078967043534606282280769988465721228383411601662633967179503532601159116407872065370666564880265222041609588125382909436895327709283070565576464778990245090621114080884247223373451400929150462987770005776741111770178204875720359695901498792066044192077680957767184670268817386191633978454315923450013734462842447870368006352666366936440019339109249111596663719004114936385961988242286460802776472327732760325847134862694974699278564213124049621586784348370162983075213518979795281961041733299909829820275525414506876813495528400286956378909282644028707119437453358609881684825182788897226943241562747542773090404341385985220075454566612006206830194065743511076236611351518562580726450511111447392215079444711895821146093960698272679126150374874376888805095722995995285202672535934436845317544758220449564271342147185177706792150425771336389438262367246611628056883752918889583709506741001486659410265099874664212857446311026596379256203380831616010014469759307176032174824725318723042937424982407655106507615588006344524676098991449874883095411986518421130530552600062384783292392262229357297424598016239891211520657531877353233698675574509090878726561222459252472090094118210996784916564501180245785113311904084176745994846883737475245201046593163157576265768266309970787361652655589118994312072853510094118654405122347214843402980102665639288955469353483254211415418061569355142659867300887292487848614899642784209691036461451174648444495775256432445396686005878662041201283463062859733446261368552482004724050174017073760203997096289431781541215290056436817186758563099357178592820805501071671524324961414623418877351147984884297382314947839437732750422120218740844790718996497368284412481818764542405453358527047310024922626749395000995342645499374458306617316007899402020171619750986070953540419741058918864476925008288838230170857025240702099235680570552660492639107454098313712562859307166371427616695902755679826478910301975955128521326472612192521545856349221369681627070613751003315143089543020496963935187672749435177440904595981128676954773730745719172548454667139282508582489530634604462370745855707060729008010758109062493119550981468488229798843086644359805348198902969594245893877453581937402134851427869267740272569702340742623584888975466223510909637470144805686811560044916444882208618004614357511236690855061755947711160638435597489692116980668400878041130260240018003698545457056858503934277671615870778443925112022703597811042622293853741028355070699174515251915436237071303227104218045748365586750924523780398988174646114800952501030987665151465171338951862737716006258019260275081308899451751147531589756144832007856698440210009722103628872936557975580378650537264735076083146041149492741060712155968227458317341795225628972161022161367398983466156693122228454877634367921314168078200214095851940904953728367039041479964804625968950341951713303265406347548995779039178009384750024784793174002698434617339322833312007749169556763434231179804147451295624015925119820827253832377913113880723617292748756705076864778465921794945578338717913747801761156255714025588123301890906117461547255203935627120991961661720299565646116440380723031516239449034447295171232407613127242406201890592099647571892157361821950871220971419347016434857459474685833129578838827833775164298207932483378861652489361837777573402404261403453154073110072995834264907577039890838218583951954741166342954985595196310306639009689882689877932259030266680127143855721512392619883619239040000892219274012613901429164203123801321606656671726449734807648866014128359825085104693166894788272394582469734939471923000934643201464878595492684396255075419787670472343283523057181678855005172849617084378706884570178750900203867516065343349211891203781704461099122164845465684182657976211475412615928053293301130146229013359026007951878437031446329709881977348036133465960925432912595602984453376276404711282955275869497167245219363139610372539836306390329639818589602061190445445739239455775145378519765203702918108662696436164546525888471409889511322229048211609187073749577462616029605594480535345866699510668194059581336082836484163410954444670199917851156645120133968050142417928261483803518306761035096898949256465993239671412216593504848572899201051634657998065390144336897676831073502955296893778393036173491397612065708955531957403539415371867042402176144871218873552731787191859248662099321029110681640575269220768785975301837815317073741125592686873366357012579849185832442678222235820559485961210542731301870241805500794613003461701875515543969754606918161116818093988459422533708820154550327235846310162957565641673120859837710119173150674514724654271809761806660698996057485610130200754910480550525003722847242738660698689455425590760480829805591679067232849776950606134040721662251446405871751212730192273769812028723722654917946141120177127336320057745001780593943600784034236557323483668461578090080890759022052442354156966438374557513436217638967616126708005640984166995569583045360034736537660341774772089823853857563377479901114168298587940931134961638406845231111642808815957655339930658537140448206969349846454732839071610226163266764374874939108753160152304477056721928909838641502408973923028301597384299415239167922949626080299947572604080797532139879866265044471336267053438620794903177515156310226109535284445366268280941264301301281609181249380399625795938667321540508818437153816726888771846935828978905967032018802333052684642392568492929629670579309303799510330956555109849685998564991223814255677622698146924551386721044561138198379453525690925599363713915447548133943410412184852716875881120127491786893415148234226967089825762791865743557007224562840535041453281154417901718529466689883397252362622588901433983689044733560170348343978678123435252538407612248122955463343442706149591042846493632505782722212183082455598099054594725033036856894707366921635921368780087039212250072629769462024108365468482378782486892079206778579788745412742754522256068618427264063677282766250731618709088667349998272520947780436066787955895973070864243645233905918340018959355700334718600036194672472313991912676972919528715249554710416269022255097292727503678168007881368090734752161626965406698044470039456232244168588373607381130110092325354740775506570400392685334069154927278577898606987708299576499065724369802509251771218438224419731917091580355312739746471303448739994798659599419586618157714601446854337845430199499361359336801966821997502776437827890901593106390269210615401385443770940802639928874996292546739383234112215533349740998679500001265323587005908280978792389549858431020328397441426398724801794742706805984218949196220948051945336322751928194304049886101389896642320770364259071535511591491386074658147983628144173754264699628419711693878828436353154880711811545395152530642180218689906304029857033417457555055971017785180851621225400868865960957349036504153031848494049020137450237518694131424457775118897681735224378673665865902463455919974089544543375856715084312000301209656935335927496990074182929422355461362960202595864793823460832575624044251109680584529315763008434647139087158004888992274293917752231711019343884411934520850402733149038730872598126660516958998453605629793701356750290051855204876552666472307179475755450584031290999820434202773708331146827718892887710136762053466980438103357317798609305633447999750415153276689242565787935035005328578189687823577973904994173448096810226368676806435884233079953004785016619473421785904063959796125693779090892561293156118647884026247397104029574143417058132340593280011353649255618098837243695574934408678374624263398728972674749206824860546580278379589117280365577033240892301291805608817202490210901281368584450822123691881055797703979326383007134705037948107601928555265216899226907738103058189599283651410733693220706726162151956348960737864365799396450375110433026822748723366952699575974080328857534618818317717706510471830655357218229255191016741264413985709962740072739929825146200193296667221909524909831823352700804194057524541742814135944621540610223380329527007263414017008225785561780833306204212269035309440748390000340895331389932463476420204411803790853392132469359424914407570225591305768038219362401639111808569499860142387500756659878910666044347782891232907139282889097037321726310807633897746264941434775158543697503284729456964800919211732695342357846601697150965783784722549552432853562167006836752216515838657310407194639325285905331038660913142380377027226644251715992754381843477790863927864827908569287024224158590721698992245266504320213357948489745484373822977244838295734329267920832889335908783410449116892053260103355024578308150666962690703926670525921274691117403164512701512368124017426718400706219064157081531171497739506184375106813073867482197585850327209810586275536804243679544334875710647120979596282780467475507724149339598827507055987111879378285846538974680719660120187740161926074429385040860412909888206733175852450177679541548682246360646307657979963677624357252520793351332651841149579516800159689632709869309668228933138597116861371192413481534954362745564451716861628802411309359796657015240034120482900556642576470768591514241148789489008891325511525306903009248875983385519692949709222725049748587410056407791843682564626639385416777539490335656057146079839503081390034286251319346064154950702529640083137186580636634646654058893302492566745484586479698954149005089060981224630297157142969220478050353620027115263032070283342875749217175582222650261548605880281373189787380985165193136242503161626153541099352256041452183024239176289570810591224680594335657864776834327908560038413936512629047635398405572805588260522211660203036596906275845360992028916051239080310634216902526127830779613524998789156098172727961327907471356647054204121899435376036225619961541838697569653807981136190710450468200600588178662728873628439032822913485530786371187273299444505222344751643407497621906374753367107491593480793193010467795377136287855939714413903793824205169901428346614100438426217065333639391659225169327956520144969569056688173309492141454176787406077029928464993366007079074668536902538158340379960313772561409469547600640386411051686247782144993071615076918073434169686380674934977275635774373522221664664453486681594019323675070499642939873421876602792343583944696747672814614654392624139005442189932035386060495654794538909017415268681143357602167822196841908604370830728038055174873853989931106553365042059381607742918790271816893608759582101624144918948292240512181968529922285940561152744873917192232946791698613045889994343386574600992363730949117955080599700896380305903230801300773252628219053014525208338062003896176627041142402377932361732847616243692728229083345817903048550683834243438735156184593081299697962575415050565824897793953959732615542250709640198997707422026535457195173194132776423520058791589714702748332457554355425588050778769357633222346186556652040939782864520075387095346551197186734826473883932654167190850087761816237975543563847114506958315718252692733658443729340902456201183987926917511398974132638819422739943785899324800493871249039579929738882183488807108065870509639779351228917221268226601468637934168636993169040574599987115134315809676025781886329993048551693827146189789642358123687332103836531353470256386722653559160455004027282642396149821108911628553863189406776700236421692565873023312887440528717770810392549745102193677250807675603158260492514303683056344839126423788012481777823066864096541321758306662507814944749597371141449731708832615760604987345507544175979096227388074408919460034241513770353247298655798209430335194688678275689602604901455029108481574630048664371778771188673756709917850009572090495442257080763657806817086224282015306965769630400930794653406263076389446278446824319971521461225679011320354381535213211306852995986545751262842351836362558122321671109156956061667712560981558615593833206410483237365199406916895177421443619412224141680833251973631417631489031154906120781899994539596210603796938846160575979450515515495784194289756150638469327797983866314351865404145999491210650698889078626902492018295521047709474623886261425193555222848313672527733844199259724502603982095549057987097759348567213483267418828919886530167763116961706308660639712219287952610259512031209319721132893275009388606187311023880819290703941418589560787387467224650868185106054091374888260147637172605993936536148724006211459400738576483524355494056612613492715932146069458400396291451863406307673394259041011785992817299341839632851207381558532995006057167911906024765854852073839664314993162112726757340779291557284719671768933821471203437929938162495273882464448962042107849012426179200229895293536628490138864575688736271274504644924978984764383333249250394670339813260516222162181104545041677617450228210492349295436981778307194302854806699889640145607104013899225400124002791752324146833191519019179641536336540189191332792152544715405419842842104734464451054020368585696956078661096052213986331982740189751624473112631350517703623059621028320817652252783590681391411709058427840383164723936059739238902261750380000724895799465613527803745970776544967874011682245708967543631710089085457367621779610434455984861387934748393188051047244822801953980861976195141699885378759392169994158789772033179279268975674140591571773789107019424751030079549923528944737040728076799298215122634344615111977687075051226321492915542876417929268171610359877095957838243099190309984360853355853378523430062438630811778132099242375157936846412324368691567092957648970608171913848934134195674792048701646326298915612331790786219568071755784565240485450717827684612543005286298252363507715153429948877893784577550967667401381725532518578568635051315102988731467402297944937665755263904395975062388564186392835831861631812708939563879632699217435539201840959502217787284303152497439922923130992396764966007458329642280136504814845207592360416032856280655404731506372581575678078048198500072488691322638704131359215981678542268233358023131354536228483161001555704857699910586025093994231452488010379048496756933158856980218462695524565037989241343948048217916771339880025115735418050391484160797141553992386667780345112580331266485423697470410616109966802638411804833757947036591050509808265246312038607868850922130060132746236190445131298012725466955420967740986319728339268668331050610769836834063768881355648410073921105202532327751902535754852382308308958221456710781499552536415084648946381724865776218991143409747704721588881665000661811156996014831711364852391904553871931017364939327446232243493431684791544310759562365198116738493308429480084924847733244507259741030622125176582101737621924490679711777628950971631889330900094989485007391078235681403001376849231024249478767237931513472151656752174445808164312246891002432581011241381406295881306274668770399874438714839287743866575666926906684638368001576620414934426641459347993723859150533571645474849588370229389240748617522767109954235552084173370475237435117756325453172168605016337791404261410270359679895938377801318049117831100638925416783381153409496460913204315405117162690709768489762509001461799535199785376289320574042979477758705081459637001997202943050506964236286459382281383185003307017169119640236425342252749973013872534135856145391217865832605303503959037345466962887399656993369285570788559973049526240210598394295971643640252988072266613379953776372787012883540499618325181878592826037090121223261428712765783198731413292148486497465469526168957401482455337236613389772607601403056327406739824861328146345291704740475661789621947954517063646453644768282121433250058697375713192026216668236643856613730259192560937297937277499912059335348073335097510864263070128697979418303624118708664191696504222714747618113015979285757539216950993531350153762081695378003217374801646273839728989049667081114176897880731873147147968622502979282836763368647558093313678889540970901586984921337206759329093268920055659499124916745577924188262332806244869716999729581388037350535201544506421916602402376680804531359559346179413735379002461943895180980909856725506888106744868208438933286720065342766191797624851191834363325088925224248691514038078535105973151288858362959604798535346169573655807821359376762007508208410006037224824348740804642699922218191243883445230080650965199397305176697489257777693488822353545030232724354532591778888084514566129263160828120338790702533787362581629418123231848335934006242368341540218657220498364573088170633974020785759644516801743686532943382992033879233042361381702774773471313768114547592078402886028391277098664976203647624536010532023967599946368915710190202413980306625662548016964638104915510460993868931791556355650042451135228256740277567586374151495975155179681301282426095016650098277801708040318379501544801648630904452636174885870798846488138453224858300101949003101856358987838515869021235658417055765234852073579737318300954082409533783333979103753720237526300641777637909021197689501848387750592253144938154174966639480757070029069024547765679271685296006149112723634343038854898604119515805962619449996380056147223989506434112694358528057625419852072445864436552036595626546464973960621533703009926332782252207049789733626448812627410903467629428283757546105278893391454502624402226384478271514634631590361094902976617793863370473914419224102333540343873655266518001961265246051136416522051504848759759025205914618783525684761294075490190538479861762877520592991341222401779329692850008239658072901069337974197956446862424656267698461375561105776251625420631779981091474781784914808363304494405354935370170780045152764805564984000972183080397183828367858504813978540970557374010228770706838510525089677412121949578031210593702559586722572333838756961154678815971689314353236921861362415137227947531176717791651697862731873227250673237068945447945044514528599719477867313881001661939064303002589149379794929718507894571404492811836207155430757703950506790991635980585119368054831449796442710129852270578415618913138683488940400276642813023783639111331227655918386784001323100792582056048587479020067613821659157882986952115955035964259425727047619971146620958891964057113404856448898082359425436302410124633065353522124351542663233947659186340318297777441650888323697409045010393276902406568408876557061529889063874447090521002977588840587363171318945675107735233565085621473213777763481573022740215830383664066208631963465804009218304315907178474707411128667847222775292666364761375937675756042448496451064851925862067423019976444318016031424167025243606849719947035394663613744464370999039802106080958173436202256639184223973344243921884078176762957554941789512284746877606224889724401151381761940132234036281883886985416517058128455870953368790373664011908925741235202381490830015255751167777518281339501453988480357465330233452982947608286287322085277202723872612230393910519007192012218657975252317929345641313769220293051166383454555395932650295230279526417747118642252167103100435799628704339845069466712839808904447462521919180090838573454470644952402473354608594572924036769481833068564901169040701381780802824665795996240262522847531263047952048002047164686318014891751422919232985363648447756071556381854690029892547150843940643836515161632450841395177613381203820429749843422649832179172963179085408029666577735799359298798835021204381116535322156637501570501365633344896671903528227055515435903375393340916629949724700503712998042657220810773747801230363967471421923214510330412565708749558986123067296878767538963853533264003098155524626517816048974156272185539631827604809688711478928820459904412954827622256737764740620418060165874644981158609325768405313087511908712353902595751557381598056219429753029917167720869302863262175842765313628706698983161316244799882826527092310937066326669592991341851580827027709257527126584900537329170262888501535772507297034814639606802486243703194105385752104983888295568824054068651248364986970359212593500073607666096082295040159013267411771748402748281570354338974525269989418720497452466735772097920303121376158072997559250635389867939574643663088800987014200496433458834981056405848955951953708459263049618139088293463418581002313439905740059104731601244474598910403108810567852795161886589966782589045733190200805845597535987544895070868225778209447451607019871774881852038841023534060969564317308471826325920512743884051227685034819925582136889201401037484464855853935398184769648759425026157500298683534446952353231090338334143209133116220379450021142244498464322913726518196211744926516278425560394476582134773151853022227062476552025160151112601363433945344160254181562468759353004617075147769435378305839057144129493674094736828151748452500168867981037851012241598052084781567166758009511592299496823598628586036730802025599421468620754351107627327106345821535046435008007404784920698060045152101489079687032041025268866121356623314645444267023035805974356568712670221099645531188070330108463288787038350553662027677750707051043528583434362820311013188467622795929821799477347210516157907237665632051052806275489185122083569430161217563375663338089967586675318236793276180616877050486617450206194439949135241987600017993812732817307930277540145329418459176115567283666135229109535316374233627220231646888391983982975716164173335836276511180776463599827702880701991903823305179467848401941288245660466862708256846417649628971596163662947080452763005603185222464936892871355141452569982874522964596729359628311618205037004252645422863460035373433069193593535119306548589146988796532726027237616397535547411832643490548245143281901908083641460145515065156057341340300689174019441773846086032956891581531200469324298924117802268334101295536196381271331099706113296330937724555540911947587731251832167097590602667844393558121714074078044040866089220308876890588298591282703635092079428976262829633613925942632632816404262353846156326235036400568861598200293574965913729329795021245832744721326955364341722848767177316096119696444153626738233275695669405947093557206286218994339028146902073175128876981393091079039135681186924820458105589324378718841971166535579595690229954537293556531249110600851353976833787726242859989959153767040908452537025786554557014673646891660702873476095226216285547529524275307166206927929814554387642564088859951659256733560426084240406296830764935721688564343992593821506331124693102554637210590799976908009085584663479970994951290104150350102099064086578188888494336248568305935082544021498875421908461683755789210377135827093040460747305876515372852758066666006034749478633351101931436264935377398617184088127193211408548511581803188091937951048294936581908864886211671944390890691452368706515294077625199046602204751965459036749080110500644186783918578035362167716445778605958121353163681648887518151626040094369212080657788931996018990716483232812839925581575442721734372102718049509746028758175074255026090938336878471368888241406427365406996517211479606326132781023680860216121753158007540584040228856810913835073956270061198568258449756257013772618270313851157521152086731417542092384351678954540592627216559540683652562963744907691748370089064450557989667739006092760302793933291084093775533195309179408176089334649918263156111301543420547287735790484520766841723860048734831070733176529964060890564951028721964734024511000612882000599228736372742579400872877994186872877318152020671712789269545359725483639405403833255559194908560833335416557406068233263098492958513285157458446720368856641316265723249284699526648549379622465847284191118822023857826347838150496476972339376757947595475536067228063912365955485962156876396921836844538414745326470974757589905772040069003884954019737165566649348118926111306140452015128188370321998892946098130854315040941568434027983532804610688803723291901742060806995331213215394915373949958948478694720097908757516234225047154835635170350007210962927746604412122134382844516332297642408546610820963037398104479641204289763738278791736269501951160074369616190730323834389726533616246972041411703388590735370891210472468147169099357116511726509078228775652243541928930298200645830428869961783625089820093665177064773337452808643735931263241134051802691417999640125757265933907808947627046237960338844990949137351263755020170599235228396675643429526568875877215047776058400003119681127246037812186090458370572483369359063385819865466678850449643417085341802254244994060477336142979284006638479194803255378439548839703851659332387300587279881101903826916263442855010742577573112606000916989337073849429366086557012879356633240023087891934403014822189811177573636839551544262059094240639665008512650556120544972302364861561508610469557466777129567366907124446852506693100241714985043391651342024669915036697409042599471578503782336454791262887734879273565046970893627478636426877497931588950737032390146949818971572897212542856119350766934967031138130816785483453362255363176036918112018859497414669822933139276009436812603212788020524056109836823669132356320851015348153322407216448315716875225225481219752016733780166685615144288457633953683418570850736133378808086696276645696314635221534558440087091346042484444258113141624595805574900141636109380994688081498271044532022652853676823538910507291504863367584177030430028761763261522559699068183887071342495471370384570737739930741988596445338264742597181130169162949982919175607264372236092646577822401769982259402914469602449736486127099766631693233994968777598554783575008159781776411291127582857536068471073565145677763146821599829018560313675364789042281061221317084674216882531349521503448483577795028959982580274108391757711417351396272366222835970623830964884155785751127664004715096551595477978904361847760955817769966325269069823104998916831583389178924559136265830556198299117255484206919600217522889356936298336531827093432992851443525768090197583702265619109981266586863048207152698201375214281787995059658981541518597510778711077370534541667661160254551408809993743749458938795813374889691223576856066952590837686987997994694331330309581481784259104146855506267558566209804760472853648170836267177240896913679219761706725122090168436881202859943258965518250949463003188380112738923906768258329904721881344924338202490430180696321795466219852556701094636880392354527306942766620086051615823681985169191170800252114550841832476736155822853167053710113693582750544549407889253933735569331214146503433537411870730311583278404727528602802283428290775193684966449059741794224309140586984414682102102162008111685590919107423039294688718341823401190677999500500368020100231735837543150831879740605362000201764175889570371245559525526656180906927273405507354171722666278416184626762254629991286366851403393841644242885403751917167464849562261949937616117627960602383298617903016165893480966256536930138483013964619395411376150513198139391476565150435183656652148076530836240687274052496849070416867092365309683471272397088129565521185764913826478064497418106094149942955495666136620229725714801113524422744665587146977065849967187950411312016009271437590583027006130474341583339894379231604299160430794308071289086275179367448933067168413954280752176340769498757920134540729342443530275230773628679863066046796040772981018785001282337356292028390309341069172486453459124021430805568100378621870828332503693325735535185322647259010582278079451581257287002694290831766060318969893371524342231165502256588395386726829649103227203072803372538645577816226855086546925424447539313504921249339890953852669001371843735337669712737711242517885926260720419231705139289516852106754795592221483723482720434405898724944706148984793948698778676018572836124191595141463211054152911237233699672963148758560698464717816269437360205318916968765792657416341445419619412381167572199834678205722944623896577582931552500848985361023623817450596523909880970927951581550139052982910804186805622079196340244928827107283549727627621099843209355647906690640127870278775005905712596080262236318070157492650964409158837325139833071415566699471764726736950506746562321875049504745556961444187852482502798437458749973289950872858722135922428269844163042658404529841800846926708571332319942127522947933098200457430026359636735662830155648232588149905080143331767438559119168556191872514929349620814967194112371489446049712197542269379018100579711387778931886124901427504148266670448165638636655461582303765351888088749566899368487984058151255511053373140471764690542292515619940013792191839828735857773641843986267423741672255063702740798989450957257526711937523785333158490278720889186566680365539394843357935332431132700899106846167074889357717943820532621814309351484104676968475980858140302209463276281014091471762279157387002384958736421271139231216940386185566046616472195489491299614200843419435300231405349943308630425074680648628372484995941628645583091114304171048828089467271311633271620064289634720151002196826232208338590869940862053679440623770714633445656683734020822640311292916262140570055564624342170260247864959436381854045646403604121061730679496972733236673614222140447694634231873906619616722035856037256854931369601614002103885479666555014051495697181110971473626158044746066751000825927802206138547074809340610546402838118740705417649310582566873421155583282403224249941141346965788726039231192210584267909180963163322863071376027857493979859416192527458861785885730853191104555334570755321673024655635062441915778486021833635586691679232924537355048002870301955150587000006224528359628910811257217171200483016278387377256568044593918523438062290765956486451790353843189191780268458261827859744288042267402514919953253938155952010537090182894055041070672005300529977624198851450646680777675853138701943815412160223897086298909188526999431123483641648688623713237976644319384973761209769341930816862659325696544280552047836821340864089107279864660401228584441684608707721351108230292680383831579243880485504106305215447786752965543251122439632692515040537224275195805218042916865608060156828433086803321455703481364415387657538400994846894306721065561427092534130265396701131753683175886537368930095829893001719082838831886660974200147865991989443495966153090591225782755185876298580046537804133531710865687364799764783497133304701018552262976124648744734203752012647015325065577096317264930510806823794897476554812165116679778274457480554272818749778318678838073394731983911568973201811221039983554296213384533884702316821639966332037209673040755299494628203259862774697018919229011688172188187901471754287328119424440381399329351378863637559551298310783158883135983736291597021812350042825538366955137677692205961662487722674615072989853128579066868157103881546499151335881615010414920716052606593208877850552201612429905037754239106753916483298604763276648460497792335306384303680053496520944572353123232477199825087853360339260708932357987689336207604873452543719006012706145599728245430970610647638047600760649343525007702041487715581926441853564756484103620792875475553478302729137433580227077151159947398399340426554987691708247808401985755563914775889213261726310008917075273550575435810763449418149727784604441132600685170673769401553617605673488643534724561427122446445718143610652915211251423497150382056626365302743674616339951531807034766554742191966395667914432014918653307657474470278156548184006865680184811472893683203071645836586062889433522432150471656029543901494384849809951675777436227468668276429642272492075643699160465023169012093849831413409255937456887692495832989106521281761312378936791912703072534284786075966103179815325472680142475119309061519057195840414019590259375232240395191959385463280937980885051365973086773328058328650263978074816697143934811476719356464221535282508800002288147553105038192625623218321451388664050994490708321340424759369975077858214032097061701369469375967931402930332550232881876109660332447891026529081837359543621955146041359284880683676082001471692282521111499652881507349729309358127071635910789784970874388448575749686396553740963414292265543033784488663397939069972928204082924439925752077291186901402832921864596853236094654533141102219512489723217573474276659106334240453606989098052423698307163879407523520584402641315070110018406948763139251756667554553824742036963825770567582825156217419834586040359392418315654847561997888138037462891859358975044362324609700502279247009715727603712573647276064211986030488392747506151329782424687283527215665059682923159960684318747224847902891910664025855467341879732624947509090526178453360199147926761966783330653885335613545073056865140205997404557524164661086954688372783829218232582649231986444075506927633790123934980570281193452053974342494835012583473310626753429903847225532078035095242554375220958815319804068102880811465282655343600960017427082889895320715907009393228502326661308114157104403049274195257972536145383361841070913270644277783000533113486314054523090483744224435486649242153769728580230563184859829387573011419241082368135609601328370362448157295399237045130432782302762845591926247695632581245621338579687953921513819436933741711494970013105634548723727064872047811394833869065838595988815907509517414985138913802120161837151170463461430310599873943062328113853750267209282572744514792383557295103334827238407733379424652364754101357239561976243145267873038344187161160309801657987101045940050331696712530243429041682187311300184178528788575528597282027375214197023324358092363194205619615426799625870058195678192942563086725213063112960841790030777326471077561565641007441159880339300826390597068883887294417337496173070283848347603259237170355081122509116419387304727320810689147881120005031475206671380804457882402225710585400801261255214266845488429143560558905538543365210543272914204835260905451511502318114229226302390084324425803550149421949700476264654503847887274226363446416303366997824537585358930723532157515332751240990692097185446915522597381497003675488941423946821190008657090071982984462000015169937390509138080139805055381141758261143856098672047103517730610905704775880869393294267116514089803447144520143815324925044244864367714201120958832475292240996709783370324553529672496081925181554882149438235708235977278756020773941463154583382411575247571041895568041471389168626042838022612748890504533821526983725775455449219972630579971807342162046529867697191932751747521633986834514196782707805373090885847352751660576939710098143283745772985431173781036278978349351535803166577521779702340571046372380392288755825840217222058676915115137376089592802466725508631487140202468614382951037294851462069471315538682220947977538046426625868991678143729666060752886301254048160948847379024885438687652594052639173120395305973023380117573030364148107456442775619016868653587852382631246997427742237226812909299679708107165603566420106380216312076811139810576567220914887938864225210801319516316914083487337091347288514319191284956815416074250344129965626532889746723096970310815898547378230665892029815058282212943754469787984597309477904514219249266177523279002815225945529757287575864778098791655067428558159983626109654349241757158157796759529828703977914029466022891151004973745012062329963755720616482244049551661692969306084851142182633876038909233301388277528435961983623975175456104925781339446430155495069459822296321925315217072531848722493176516684019885958768977750807454788094999849914877422475888777597953422557241290250996466144683232528330371631399896887549565521225504840233685766682708811531976379807397249197748780021051779194589278340521679029339615961146934354768971604445324110335952990806944517271377378524792794589933471197152294308007307479558770615895433700572280252627484556040590055815791431270938379076025012816433815612187022976037728126492269321600231719838235133933318834712583269500983609418557731947312814635725581488173942197316964991921275612650970780970096069978288149197923404892321792883480673743883073386606128223357862136352924925460161035495542860383444828872881233745516853216197162114558247139446759649475936747896387523708244670378808500120255240067303348032001120044344559531030769113956243142058580950527253810799162478787746943481566859571911515881722549333265425104847701747214591162503667094303152359951005683849314217326507634447657973434868185643000893212136700379146830520991083950502742383424179349251259915185595847889010124053272959941430579978084408465871892746332059709697133025242588208075106607841491149945866547551068773561181539450347852868870074846123177485379765176763543186400229652656277821054712947777741456101253851173858139227739299354781952729536669159912389355370615793612187341741559885584110442776005073388866748040524366011617449726786957229309516636880268708853515929955573950599801864174847174284537611882842657020395599393326045176500118385525656874376409476814032839659086749452878566308218335341289408900655629416518209817416709837915405154237537851822468809468489976311213848786711912016792743310983859787795898575271543078825867601983610589330741102576431011498418471317614095428159214502410973718819642064573597149861219885972767139789826666055978560699992923807389047160057367873279923865033772192634183927959544412707158187952751781466557518445805174092984946359983182728697186809161158045292028124871153527666224800486948639977401072321800957285226484805203754032217192611427498655974650969714400762009423931988317940197720279870850650502979022828393825451205083547597950836385246116997619608026830962467479709339234578016500903339513054315141865768682366141881326475944530786918638849009358758848214066148874881455093596716114823007797241786057389950366310835070665990698067221666432396875749070562398812353633976399504827375179673305498765145626374150606561682629947384271358034835050493644992099586208622240585801519673166715106313213655410265574375945086628409554614589903517052532843215408700561476988101496610549887012544650301519824476715722641515238169021744751724522673424591631551336851151127901884049342434043722907067085893275870538984685370322059620218309759414830892029440875445424279060367717614080281156814061574853683402421955565830538933489657959687834319865490100616213751657792207800565823506776638060732164338240112619354635649439681868605731175258666218784132059044060029868824910177147338994783848741224382198855267180703597734434189244422322915748880907142707019213648514018483153577751417701730376462668249699892279477681420272715559677815763779197469599022632316950763902226633500740625705175288736931662539057340807169660383940597731473608596877424505630806036907285277169668517534185151456893980541664717152769299994447418287109335465092633255355437682818828721710341337774355490808014186208103610628297064667280023675889296072631343383196147250727823677435980177177952791555939870660284286337893554484412752114890078292397340217237510000899050921692715494407756870234098627610017506000837279665103186251908576007578680597437092078930966378433832221630967612449928903358798133794057151626873398680279929969881967347319753290170747796656982847907106817250739632504064123347317041493035986633633160190800561855934442207219453973672552655263902133239082516167694208699147083485704849735174831120473102106109544087137578074751271912302320275539886367720412396171464591199311565267058196616690484771312235251274966281601186922754160163971313116362780258668980896771580760340714195101604825672066438978246217739276237354569355435420470306050188282007480283835413199143185956755937310000572446900070071452122267349405206504115136829519198551534447441738461931274245885736703584003835987696120586408591700515800931420400152505680601938150140804312623033531439060633828430889519316542523822429775268286029718267999906136396810863916547546620440439176873158404215398150924667122418742437386986258624239126057209365352560290137452156579141395331317427720940202720588523486542419651430539087014929111933598721767734439418642376264404021937690580783468276762822621067758661438818093863096224785118988750274161894450136146111984235650975784395744579733033867723991896249375571891001175973107344455495292052326238752690082652250198747871519113718123699098053502370909451569981555296802533145227394535483388798921360302128304563231950576661715310911204046234026515144273235882166927365061686348108257687046061524144413358015252504047960413555584541330914488739863492824652118128548422090437190994374380687072600844911381589703906953470676885542903608974485294163257356004173631703018773304580133673422777012569263764460820869997542909992677192361676304323355017386272561316531965369900533600383939140791177525839927335621291973427764080595003915639538484571254743453992960298268586609356651566357690261476384127014904334424760862215356410011618913945331220553697185583310731721026035300583541466975299027352922687411843668378316448189029870001931509956427774936192782382143865272366502728904407268051349625175360436368811191897688365405256639901534806017108685067476862776918277877748764253724353353241046823763733303524628048286513777793461366645063775317818701870934110573362845825303306388715674250641363479869021638723742087383718002038043409033050838603990933463503764357677502769035265085202320196610528828374037939914948886551359048661211595362467657682882119035056744897790591121169849670091722766972659665455766137779413881993464291145785148084202272358361397404046352931432684800714862298069723889146100686863599156429517309908609427413904749431964273667343605333685904984513688037402533674519311066044799784269441381558050025852613097362000648527384265491842713473775580145675516609724649096504271268777403890083603865130516822411687465048651943852581945868344240572079844212349996668681843305296858463343695137752584865432689466622330380607970390589163689791987294012055174518318223522562278898418284832653124753078064900079794790940389906323418421464193488639926956702822144279936685799250796967372439232671796133909413584344646722289063920922460738715627580410136064712195852856685446717190838775582741155776008427731785840651342924442377207391599340501834348141517306299329669583741444028260092190105328612466013496368845688956647012434941949658440549111954136885358716597194251868670100686302338581056758879126535867250945908200250177757242410284777905533328288323300246249681437119143096187356999374845276391569422025005082297035599299039366917880384367381258315822285369911818613583701750307637711038053872323705301667729566213902344004245969470370790808063500960711948995938536220301744648364094402423821082619968811582925433547262880397638297853304611159246877037230626474296990466978164800440234561827731068737229786045975137415797733379234292723464793370131588364049452845562035247252323250685122933832166190160579608008929676058954695314066915094841540072006365257140135769830056978442754820710889895184253378705036296947905780437253379113864435501960871638300214295009371135538333784777217115483970156109527654974694432975808509639611142677077665696012478835543645426756276558064826328691078208682132928564606182513558168855803400100475113102949981566137763892056142229577662900459749727921807665808038826621209660236040433509055231563832243477298374109065031749681627428576298985312884699480950730540604521799233992092663131175722560436485659566998404695934980132378286033780008119633211934370055681512321440513974072825491278398296047286191163392318648929196149679867526142676260879602627545861619684699071814995245123790688176800374575539304975146823478378574351568088237406898276906827434444171058702151152420989564245335947594154402318092633555188183493015660494892738064999022907902469489651042177784576225636051024595361948696826521076133126870960358135051104772880341875284087290401300954788623082451264812709856183258098963408057855578033085371740339296182835475016596324543552004862264076450511406647342635330030399885996756390368153565098194656341418858659945953966161283074572626748563330410438586791627996308380440035638539355126650097425860291305114237214003993084905350005636815321616188668834205813871613960680068223424082749923570188633997866232352767776363291300053873638653015919213087342788003216707539842675848388934700777642988788966083018538136905256442651501671918830241276042084481086437064275044371259610955546255259211880676319933644034122934604950311479820546920402770764143286508417140307882690236976747336411874796200992857854224368206700739908394146329044819251636478222133048226187996917055872809926696977156461369428644402639030239912589404868454726927070553427893794144063365302481228332533865950970540493566975725363637003547194046274803085605309045777409795495576386564007427003376773321852217449446578795285075304981919166045006646783070913376160836918311475289273966006457030784080162172128347809148929060960033666190503374598957538583378784495457823952096873426144120840365304618949618797134430094683536212103735404681983082539606026582117835441156508878158486187617915985793581680580559724374055208123069311985191126879317520878010508911928395145930378714692754511395586597429763336113084229982904185673481860404597257889545973522919925004987368750684836229262184777986898975372941629363876071032266450939674179130022615061984408375312053698623031703872231521566200257456675630286976686137474623233620012773912636103614563978807889513324770638321923602492669054975389191971774531589649066101967648400386249018073710338498854162714327991560334491344205783520336571676207642325749915073996196139178886716740293350878796235619538724065668471785389148810673154501067657469854006807702423909501353626738271676884646544433945710719776002438409413000509379341184156796269840055109617482676919255850327574257326989336586507108631752800018809395814199802585987444760210736178598269657548353612073547229259650203459008846369132395295743652254361648436771154205321266820514921927650468502905746782955330319713079453263747286029724531257278737140059109172193557340161775494996280421330646786740302971190156747461491945188831476404719192468689813493356462036131913959463040914469052449847200444393145399245384068803061746647708239346790276507563512532788162144429816318037081713822756125033748653620869416597490126815841452227485866179952544798815841512201017416949804391269824869909474267497222749008322674035782586965971027562047807172582303081644327246606648459367920511478645901492052187811484649845101848723987710499176397591283585019494189463591115814289200684975974579386728377126539081637540902632802274709735316827162143286588651681063161696863887901702184845992083566207452153544147740285129310687859581878128523037106638849109386992754339547648951397435304658259687281544012000199044525113419823571380039218575752580119756602059256587749666630488846938318927613457726745551616451745654605971942973654737440511896915543561459793225013235806839715109431515123413209057265376136168715074117199060016882142568949493363874632407153905700765665901652786710240438698866891640715256334778808820457175349878534392468312802104322328376029065305537714454113812954524996513537409324078898961015647930004773569626086004478024075795833529587176339007540400435987602208441726597995265814655376022142656078759337887864367316897060478269085466029575701568960076255548259374953319190101564742931090376726908029312749791031394569549778190928931956902738121064641017756844675380809038314196814485654744029192688263826450789590145306516252287876057907542212494942189583785753994327280279961567355235720450945839840445122312637077289595741903875020396069990386959455033458006196751422449755988706913870548031586500199934311800706820622004394221045428546821950246838357263826557904942302676893237428437522074034686681684716691787657681299483862654167718057255450255290179004073876215788489385558466740098273473204855824449880844312554619916896784338012044932649766777943434633997497185612809924677067624323879352411271209950148964850777795053078202938880280346798263318968769011798052521038775620051972203866824708574422222937011862815722727945949242389143325518251185616513442255980532547172855616397687581341547285750199139110868552222228250189456182248352953943925947890002252425120041007587238841134517416417808343711850016636068861884874803257569224755517827282475817512526357256659069599228978030202098859619122305523133278722837271038330314054987480459358876864201401871783637453606727835060809233235259330757196531675964452820076002898844824785532068665248111392879313516924835932185730530830894920519579417663992564280090159792651917831441235442905045084064757981727310967118835330594756655319432153303867051167076362139695518610908529555121639148440558815603923895445546574893792047622882098304611963943789821937475268312575151146888801021075633349573673772988659046027773376247705698563317904926986328648267438599443903665984787476749130951130589967727036269131089109762044535220623970397445776903351506388139595316105625786865518321280992628674934254613015990155702212277714602077356310928433244900297100923753839860986463453230148434652272235019493718340197628975040283004964580526448931892739715285728765397301350056663818186734594110989314526330260094341540488959510414622935656017403035204414392622750407069726052852127978047446095141317373639573237752143381072077597742503191008186760363149099796132392422311010568410521390423592098869656288728306765311493399713118517428374742251437132435702757128412727911953179250903383140925893674532930922486565385104544720466124108330711163643621617598565044287145718908416413038868022038808793107700153286788172877682843210602321232298907780449433162291720833778164188988891744135423626182886038245934376074733989281155341262562215776386789118662678289265173961553325887175605555452061050568896399646081455306050823595876814908408980851567387636947213846225912612683355606906734250251058020312757861920292981443595361069487895338311577328939780686584948823233388711371249017645970525086201635846213458089495988690701463095145282665674196293003376136464010840474409659385993977386724947233825756010409112782485112454500428241100005036594350577607207351620676479559651877613050182406948624588241024252749354035550447018088674317532705192143147894516686041003386241514337391726996338206557003541804166987011540299266745236427500706874881755805329985345602380546232741250943532170148152471325314563797382634605899165250314815560926487275638456433592319248136884346911978882403163758098507263221231397180692668307398684789297835584855278385235744870768103852919236832545249275731851650915617005131518827377699777376606938387368076158619195975663618020406731186937349088574103829151181370154777624453102682601507811587283806463892570977091727413724554420733868884296174069952933377721218561759558510504357562900606468466858208655537648382185151071256079957255961103628944964168139218100320302205711739293040298637094843433200382647390192573588344281034477040407049716714632181864942507825352482508454051137811741594235984572956907444642817450195621839054573018663820839376169596385335121890165332664542507264637174012134450285224112437461006801170013039948308293137474542801529857447768242893155364655086503481887009807916440052997600911341854594765542230286991297067261376115001037698788497008572497906576567559527076236890175929321957672750407514096461589656907017145066050390350373427784669097258432891033125604419785870186836681224482597105267779284599145761729625190897017145350892363417198165878565663788385207649074265518293469841863783841865768007330071999597937815198914512997566825203613542401280559494212717075373806890967428545757573644401646718016946049443140985420847515162833000988850285836982390181388267309385218938816038537716843018001256427077975084006663717034427019928017049504148799972310949717163219490266793845665076732132263033025637842058552547856154654001985882324192313398088779312311027328825903677582792671550158866088784023076849576247729271892127256519658096240149413568179930525753643199258502570264380976218638023619046051432650966201265980501960072693998657836185582253858772127727495290184837040072712508545401073957558690188981798544070998506351193788214840985480961787027021030044592990755364588502662535472142658838651272517098054773642041560685713178871907602005621750023929846074333882644356248597794981981500644103107396944687532746840335887154093478203336854679929642062310904662617895921913026693765740089273849069412545491114145704736435357608600418766932814337136453637328087930905155843043904288117093330238067223232256371762391396236651915754918932295212953854895703666676212291741515652994161610119205155009251079624487903711560693964138224075357823690318740160703003669840787610625676796929497127973889559097752066246077744934872321804125732994325870262810090170594737454935530326409227059270109326598181733406880455909892291054952101029126224443737777573951451012957700811548836118602581001239443526371577384535435918512145972188098030047263629897647929001623626034794194191307753373976618299602880702716763728520720322458682519413918272113176367368251299754345499000334190450453680301172449987443425108864224221437051478754469865574742625095022130890028349138863817278907589780904172005074095632949417889629179594871511600403908204191546351059080843211432393570721845581805998477693557777408270872554107387167772246206076105792340124054948231762951519123465424617845980939624596076779523566806727031135959956863278140664858820806711535096983339584714955157183030279797073551313946087358424602431452625960981185421645232682967544809945939685503252890540212434496855561428407577981810954450497587600640046058300773423429669615910886885471824220364471791530863571419318136445425869890715197440365642691670623532679428324393347022036566440559213349309408910671179021651448675149646384055498979506717982208890072302414055085829827040868777687696369689513947656546021729823015498311150392870676482900262329752506742444145126407317478104680845132659622026277728395914336402446872210704842810333342010958592992025465465868929016189065017992816169640989857714812623484894787712688437598885738975369332412837594538274359713178265235396230926444154140623051992970183782182908821912870513843691642127405561880473616142535089268390346732622743275503472364600091649719316761585736396883842675676916883672759255067045077553114036236455624823430722592737295974215023200976975973474193466881128594547319333249377251203881238257213347326943494375221801231365416132785201780595610178442320050204872147072705731769444596623447228362308230919791004154289001573168183152719818777281758640305442237266932806952367568856281263354807592163648133496269154506890806465304794601563881154244496746154208113817287669118643831180778874112308916654182683117199909693984433737361140852143365341319173586635775082841685419499151098823462524116691266563121020879224234942051435863724372479723908007908808731304304264945953876043558206926358899197773334319756009099197420584192614846948051681866382929563113637346263818941559908531581727272562281618589458022583425268120709951081792216089240764527673220241787315882679462388467870232745725500703189719078662704770401380828677876279588052471485084186437635158357428680236185825210358186755371264109942008041880095576330627763192667932454268186369267184243189411366127498979207610656613500138322603324546615526569045916105064514324402360065334432572323469635621119013090041892376430981671278652412853772387800595781484148122193852933638631656505315029225430075369993153048000460492479623187578101116098038335779902242465167571619454749279457292890160708476147777738933452467711952800708340851610596064440790733649895341878718670476681348533506105730430241515004329302083277653310028237191425773859649311695640561386827932545338488974920640870724360375523570913887665511310984324764172422238811939693542712749736756963923642107516751970029228353045463580474793775785181099436995842590405368186113524172347142481140209195600588909153880411099463408944307710843787300690200889311349625047523106608313799062192125311738692546398090539900760110780537052641586319077327731836140963913215235000338818521029120485393518180119740068408798226531618894456971109913333126828969735070066003982978481899342607357574332045550600258201729575112923029679029941975623892019644019910580774744721855383401153072781298522604807293120967309012835224787442132283001311996130949587837136115593740656615751367231521421193360069609580777018594864227140814633433355315788795289340996133382107943399211875272430953629892940742001749518061872157620816749126431375243508753951680417444306998564235972974930129274920383245175777766042166101424353520238501954863597945299334210629256856336127820569139181124609676306101643167204554262127240599737201219073579562637079746595867120577343478385690032152877002906801697000455838500842955886185878951544006365914675258832998709832515911053811022195918423432497607368555018560717755627744399648816128255898610375429461712253968463413193892387483414384151906931536754608467888725994441381374627901865996398549641064254961867244172588548437906904598893537975260075787627828926697316698570526380672375155398957409379738943940420960960820314144045107918446990384373690881023768256117735882499629885767871674859031449210074259976399084079656824252683192480700547096808637655621818945727070472273653544123976899333389782793094309391829067853086198204965715702409896318628330189481630291456008115727854892298626905695798170718444555011665970961280595402851304929714796830014483823908942522310500220322140500446965977930166240281502252285789271256438423730282356849749631362064503392652769695530532471311141237698595141284837094961683646556128857513895332595215492868249715033712213781712498017067389036972036880134610712631019580714093589001819253349467588998318667322537954181964061543062381011082276341921716747934202924940059845666432223248096395650334934845585331572841408347441580699852133551404133352176991373241629333069501240512726184065643084077575578457524924933318286437269649627426969599953809937239694268765146304975256128407503148826615545206454859410870435833152236980641848223710253879566951746552351039612205582873657653952104651947557257900949424259996371900040251168898420220796737848139955655752124791039771334293750221923566757271293252155236838708570389340173416514116581259102825555956638959661419242425164824139930799382264285366068672534930127559180693294420429487920169356183904446496180360515340994493050515050100989343060443961314181148351692342638807355604340789984782111986821011343075463870186841241658275670216093124816363549980303333002686686620745651175042947085481708159345655507035771687161498911824399633100537370156812333680614962136291932463631832123582225618117408140915069480657125653882090071978956316713909858455073683101245407584225384039491768219839578944054559954690944911147075315845925644733604471362331233421914930215150110903512995856088102629861484364523753343614120579403395327904941863822380676491381535519296997618499063134081413743860238035279254056414624665113810129841366369652105455894056157866556691343395693098845776974515249930336710215781423200783305609408059352097146797540581760067038410637659406550447807658135123827206403968057406959848137469943587085548142677423779662743221565093122515849474662490623122803372357773660505730786135972794123287214194436784221122345338527199950079061125029812926938723989421326490308203991007453507435888322873734755817926841666619520685678262214406366480261696461872477476294904414000933539467218724955050292039859308553472826304295627722198196214015990730184082206737833198526938203764246238104258673880747454711799120244192922124693773369964670595387471269429688406562725902073030433278456446277502528860545164026947675425477859876709830135041161638977159001308893387554332034689338234960566012555244278989640920117106451967272041899873515743535419527213523023640334297810044022768607589287096834897330250838703669013824983499824536042131092972670625241535082634781966142052327551156504998638356514462814429128099991851837535291777921841876711821863887095288045522073360234770457695016704134948393266694310244343282840894070588097956457751064857661549958881086965912839704359070996220948350511179481160757077280341751477615180606521667268972269803393822310117432534070969551524945461175541259353868747456943790930376073657374823340722621675332685677840708922847742954850876831987080474755281437617261496541474480703511042414061993585190713570705208899456481784785059822817186387463185120393561057726514321330491616216575582860150792244014032130827619772684895226977278292619786263206169684984996779371644054721951868121282746639705421536913938363809993776894579900371014883291233442074886594550248777367865301252869991954877733685504473976212555839048086989595666928325673240825489700536929064594268139610228073263367570995415456963997654497129076902621457774927969608142609427617742440815430685736408170474427885252851885789629759742715209881067072280615421898516447118654998423888997450858406346107639104899478264472283684245489809560301070371793201807058586091194820370449758756134759902646989994892613124310052620718774644902472186808815888654118234676941625665740389157528485388872551072370182699380906644346567650014166702307284708341472076888432530109488539784749943595621151641990381449709986771211104515366673202980971907400930500505171930921983720506358546040856267845995239908783361434632355242540598103019653086798017205235032842544489263642261581175773893094398260169922193848411913207509809464710106672263282633756958878037075783357059757426798165754812793569035885141793886849863147778268195998773440878199968337738857477896212593533653531778134708426473132692086380026924584280484681468515863601178306443092123442612490573400319583503069678487669578897446499391070415752220089999711833765120048857392971142669575717738419019796070792991242416332896762402870933905559117842597310167827027644738206040751145002824344138409718743851070425516705084896830401838702489625915605393332054770543690213512100112292635317047822565375209060453407006030844723643010548211101418525046408727837533991503770174812742993529132425466927229761570267732530988422984886037995050793746222821163937699763834356261932311104659111542463240263092686167757377159457747215975703329115169671774052419476756467682296660385010277387643662768100025811829075910744120102214372169248558465447488202213221020185848628765465413642689723531730310914648179590804146227439376148356160570308546899241761670378668877394598991796288277259692420952569857866357533426114289150894738337333470800537279820900581916945151219932935565016464825425248523694486330006987229368160732492406073296207255347623830877735274664391317378237140021129035472460559402469261985766994392339879064481830710712774796953053648387780610285218656914459494554695119353651693378932082409570984056958009395798268340791921152917364130077609339211994261270436518773994293662150506472762134978655939996379228346065593429888837521475112976016755332355328743957387298531697049942163771902165581209022803752875005999277981618206217019833419071947657569578739994357247718147995365790874484591386736981130434537110618632847381299472739072397336907723056407482688781709365754421857668611924336325362536876804306587081631295820847488866826094640152018163997085719040557157839502768617676880641716556616557434145025010005115623035184141951607032579520372919034756135103259524029423632377610646505440304983227052067091956189790525484775986919892344488656254507545327108048134330657657205507469749685348585668750045341525611082114712520521383417908170637806394991317931578152736805298110861394912157818627336557515799214915688482514424425725146641286404778426388884620972116441998767546927234703936606580847223168726424171396531513165688219389464017524540935773614761021224286380994062761552665169859490434195873942822092437198572845980337107406005718623611037990712782186959470514831858435839166160371382644574047571872017271704265408224778849748594273901960876903258188698952747348953329146213456756393973512168233620869018359787200220676205428653033363060035156706979231589820454425500470466885492391138191103226533249991483788331993209921131086575548041185934706720147017961295480331477654739876347307687090949092195233935867048056473067662864886043373330729177483160020909293411707996105647200858860062278411346343117064477022640784363832255056467094281531581272861147945609752473054634529935289140473130217076376088467294688836119625553248497062829228042453313366019652562673786061364651351892012910636007018509778757029383662633948836396904053271301022475711888336419030823369740370984550995403904719432866116941735101704734560560388948673259565666601450443780908882222118143220659162684141136548072092697963527208218447498890200425003863709687151185020947583929921102099446261174876697765224035278374060778974348940222271666564427660444039122221363987976066607916434022777606568721700390999278126030696600523252376607715067901731904333609323583086752645349947848680043849462171952140143658641207189185388396316891747008266659609160166445915316075813227950869211009553076816184594140438612636663082051402850924931116403631606348349942381411913369471202748561800763220768570553948219749452905617376600197293581706701957022817009443719454504930421898799481519375982177305597575396754285577736225004890549147966708920127428552924381149877653431568742951851590753283651754586194033797627978113310198460401894528328497073750609414733991135409832412730346622343760742450427636377896075380301130134347964487879594036990208562312263706486466209239274803369468001481363952586263764860426434771739559072176467896817558017278582599114875270345039983654860220130791560638927186350623371130092726017683344165951023428533479395401663670792123899403292101824777011994708094042678914963503465794280871624516910735387279639769289603882738628111344414816740399917546386966192147997125881178430307371282695072805005897126789289506563423805312056190216481341682472460411858603738842186744310993685395285106873695360119874671230483103599918631188164429217286649065741591572010022996082513539045816993756541721466383957740314400345830827664050468608499383190907887394745168222011088126010982502745201387851133159066246628567036128659988318385348035666747845134428772126308869713927663677514141309850205147575322883304350512066115137054186619799210658484319881608093166013122923970133023542032756863341009657391842157164535994318494254770065874681037043144427694721497160567898839121596068382172098719027328633985044138185253263093622078840922282946707720622987980513868721785268033890534546487201386219493269259390468702639838624332867560772791752960650118543961885654083551538064170179506481154999220752512343005991982704482256194090137886902088919273090654134605310853550733419085037235629504358615869370390660613586811389763981185987359050227773486314202652353986425691124563600370498279872757557576670793857936577823751874875904595919449370481397003312144151304834751134174240363105929325784923704078579310575568861659757559197073289088199450930078594503231367446609384516800065321463490016678647149287515332503530293692833775930324687986267461658389903112178863901958050727538987269250460492736838381318825141751254974860880871677717828835045087408251458743801335194822937432876933781234864589553675553677514210396844651052529176564784063776388727445988789419786175943976291910861793291668965642944410519734582663977602438742679464885979319987338497857421010460421592472725134762765887588121256626278718495907602818571545815949938251511652429207062507742872898131894698298192024938040239254929584567965372872067040307732006430177851240213472729737929344293096661375233736341223742310843211344801094984979305940805002046645811827982117437487611315523569599641823771677431410230478215594057661589301712150036112582618160144919234423240561078161282325008378108400877855575056096890347191337525693168591097315253988280440226245385329505902999688004337282358491603913508860982982089251332514492556811345140202439737004308043556205980966140148382340230982523709292284250359419943178997122626197596315479466976718301357160537517762106764278051667138287027926439541064834263308633946894162048039935515240601199931113275290255133158967310129977466874229064033418858365996144454000001855380146297411862701557684499573840250435286564435834418368893272064719587700605399356959539641495215988293891488460905909996520733610179414600487833356760497730638315657120604303684098876744188991300559617209404072443159709545843363080429469770154508038167836697928263156994765424092731514016682360902331213871731943111108682807466941879610307696838155380739190962191890504614154740020452293500834396070588247897255161939082854355726553795126898101186460610732518009287743164222216346298245901202538778362340118701422335307191246050258386597067461975726275264951668275339954297443647641743351220322307584735744976241319134449181216975732588202680416761409196545276064369888920816425619847822562918287357475141594962138523523364496056312217945282810251997879893392997474680633259165229932844720333231902529623906092489888866678122053516777251714788483719045212096244947235934342826313295197771012817063996302503160105722720167858216492593830992132893137057197831441997048997552134134650823587441935259374942384342367650661575224171365639909185895262066617102246960089603335954364421537690040234708492421350829130026639417728084138613748296519665481992474165065070058023610488854987827339927341227847578911606953838351926830225740300755537049492630900327650192861095612837359327666820300989102188176165826897128030114305436385759099852901238437071054727887573240055437492141055806359067690917268358407302882070453603720078364216224078570272001291595552005726866663384565759289200082885688389698151384227694239846735205177953649906274777699284465128035827489890054899488829430589269488047972924232470385065147368527114591932592669037904197927116261470735458419146027042940514998974303719769105826062465985948172876038045967683594767653711786162749205808113335249469171909580614916230910561610793789520117028218081592087366607203066424164812525858792568960970951415430580048995836992672784780033473912512042982316323093252684305143370070410618843456798959198050293844563748934674897364507216580131467461394331937656621878437418650642228840929292617642215809490033478305542377500700847248368832072611641248904436603667464599503394005410905263317516958087793711544425875617163755577050531925533112949328846540804179410457312756722694951606630844045914525333502733501892403431767005021507583547576323609040704830971544068769704823319204132590477567825877723345659177703052612942101736753602686742511696522525026152974394112747970490180603219120778700404227857254676146789475749856474309296040023097458451786093865206521754823228482343783597942474421540252644821920396495377426473047096344812174015250895979363889750890901167006176557654761181782097299620655174565057103839084088930011972507178729974532095711669623367778542716811240096460935857779006770266703925227312324795289975525949077273050992507648025407099007050365176011572128571876636163765813173106856590448528177318663760223930466926318367669253327936805656717957965110889243030859436697062157977983581948778822448605886143583576070349134047561557757174808031036842749841520088076340887670473131319356151429130999198599780993017861272954583060011437544227863978123451237380006692667176297909961003549651500301963591987356585585240265527749290113777279753830364095913976164875741673262763271439645504165992461936932716541334790303991582711337240742134797956634314963779399099510863422622712158948695310616932459125075458401841369144535564686814644917332220146986231969972228190895120433337467380904799946861413043163170817336391617407602950323872822511947048937375322717913882869935376379688475285156371284309221054173701239918065131981219395176994228271396472427326681195986107570145381245687571096958061687906158082745264309765426351494536616488363160214753959106554301947975209922530543975671650251533415097912103850225593588267469473160889384696183491009708174052977820489926231074204854750562033469172175901783305953975429413050366155572269440348755942339714106238987335594312207209081754948749238430648434783915790672055615413359043140509607881668987883716447842366158850817783471015303441312097771262750440992438488066488804248557323102969015645692667712892956944649495294421620572051896738760391706253028199299698465514729131528338466889834152481415227479271959919531723648471100460598392500723652055033182090127192484425833161727495765658128368967323044047924226072863287484005801518204537728858598973666741502742582667156524775751466976325957113750372223929952401063472680108337400975707237740785919865882005808148706899369563434873961088707671513214446296371341344272739871494797377291059149294846907671589401973095487499450824439924118987245262032235480134060001646865887778650477035081202508788461215386536975997891148297672695417452439358533206633314715652665858254439144570043943817749844442024348081420464166881364207919434714759192953201569675179556472599345344412690549516795546333980116862719578674305146496611793199806707926886329887168604609963624449573417155889100891529385328807835007336524106150372270123011628971780114881362289731937528871259413463675310210563751827733193162284312430020234583500346213513494721980797550707241325458730073027684390284598995865231003308287328214303078328572143075500047496133839533637881443970246676198805116586614768921911092398818508362899850246461561950382884947442043726507254410788204565737070687606780831173381082500350292408584978746732325612296936986490130399041795020751440253023192905594586085121373494186099169323102024210768892406904957432224076148835087413036974971736044986183236790789533970650590938616129125123701698830389011036389757494181239955535696593435018874707317246382588052669777810852621091264241286092445529049247702907180242496767969683900014949270591007834491075153932724753502953146564673347300092273082028757605716125776395592722513319335365326512498665701976243189403159915501167513830099027221772579214017153535359114565172965917535448516211267155737949028933569804658056716249241009137186136806425655646305750036974151796055146657970965094944405893178785771809836240604693777879716189356743227613512927268223296133485798438100854231175412276519341276027614956958078674446488715954974882840891871800257810760153408004142038424539553519261692577264749507472041073449793297820699683368201140184024357968885653773342214123951043687655986182294572952166908920763363102015709421695706565893908817152144778451957560406668853671408794148419809651966719512977562574208985158733549931289140526142855651252508993983472707016917437121259874579695748507195747102162843582126874211120559920888101604063713707925989759885457783167267960783363220928302147247882075733833849597351494789434634096836263722064967374717969629324408640734999931323444132658129251196161383962300620270263433043451380511116999783542480091007338727124569490582429359939579533319711328884437357208096772027262573441650382742093510550759636440178727781350181507843586265236606940596925680577533769827981533301846816705035065637905133972374672267789619780870448055138174748443619888455067428509701207647075580864896391272704215544850762495978575882746128786194675925590640993470823309084207215614308779364789930068449871645737271859236765541821648176997016780979554064767786097361540790624152568284413727166790539223741982110658733183324410334516081654249395943740525060147030777867620747270378290971881741438879849670739084820798268650829932020727552061826785809888105949437568624206894867339186117355428056661307793546725266720747079537276434230735406550531194041393346703177618535348458509075402405534343328451826927740598970891384462652522851706265115428941995646799118481635503340548559084864844999965811261666556130735036625739748827282286027138844496241589149406939221726017244485743225251827182244769210030659113631602015954726457538515175201485431711989010656577555036186772225908489123153703040802466234443199155997100927571952025197847710378080599000058603914154762363555376574859695871540015593365662919391372752245698518013135626490918106612565998887994648121401001923123766000899219767607717886859157403946065117520718676664315266483958286803878560774793132619112793592376305315204660139873971888317404418022229340783660145313522436533521481488028317678461813948252851328611862037962515464744604422892044478679455651096741094665608253468946930593281688460018435490984444791017453681363601746740369064661145893400505247056093711071744436524675772503950745239070523676711052691089451511336412738963912130711325619954599499039954674448324812523433418085286242003864251086493593732331539841168555840747958717590164256162418786190523427911515089246833259855705358203763130576972131598079093889226638390040100014103505625246848213397192713326607165174412079478902345417160374640467092240097858690246904134866314003387275972416986532665307198807529431153819150130040660675780081390404685506544213958930874308307407749463541759465827903360674281757836171699778489272318390103756254704849481849583966256742189145184839413811886002802963637700773634702222001954668111622868341552881634618442806627284757977871542622251745395168348400014683799076183150933712407517510405726507216123980354634649647015697671086763914094461334689162079578396447617356889699708061514755090702140541984213835238463228679045981645888792979704228534032536499494348760152038330759136995003758540296680419696838123206552900818404874550831157467574132624012576244267228707926003152421439018003338617876905886256743593078974320284270368799092775795972741421854996784165227063549712151896890416538111346371060258469846604821664129012704816780353483503189166245167385186139054800431224640140771325789103584267807878482130289462326228964150852797871125255017878134655028795009625958024360454973415061522298086857853953052826615341306952619951584169724238395816581255232270498029280668116814451412166403194092183796727746542953463526174449243271264390920397321241020051520291598406504800049431906693059166336351869808579970735595922736415942017178348824714901320314872383020941385734840240194998258869923885032213335451447807360024420103399361702764106296054446940965617512005288994872199687616021763860405035506680752914948043322560085936865093525978053190266500134653078177971653229910882813362647390305490815480049657986455711647374458080121801248364307599684023303184339788159075643741676276539641249574418605091219657444015707555062476072817320447065444269871000662406313558162698386558778195512944848071486700998195786313992074646168016609018129928403889271450046603763695674072022682770065178220218878520539853819642016070415409331039844869466245437638217439655822872038657542463746838982274993417136683250455472382887054185765850898605899664961357698005243458363965925867091727156443002503330540451924293004326435440722104997738696448635110065613854045662136505783975912489479270829154123665770504714208670778496756757189323690726693831288742624755612566691474031431007311226455992780065421311322000520145240501086475418000634620463678420466463028382696970355701762183382488317038132310569699426078687357235278298321898299574456464172785638941496931270537923236849291761372045498036558300628208908122329073079210439699017250761085185699222660559309017593694566618007076007861117431397127542636626809146711071684165327772617341681367599491379196912703682816485536733488727801969570105182173813077869898497189125833184789900234609060572143647055037775455294074233703320259868962654178514474777995817644947947694122343087845792713079767190473633694038936161170849353059268716300902490546351476351419240275075050723014688327048698203475277262382639128108054611504694480169123573433120518724971902970298684984636264534087718040948306265052147634278531589756214570415009271622975211958040797437379026404126076519577758834201647259067493397418972526558172808424505736156822275669390834380213651887081935158215215933099216441242712122830704879342556336603679191856358800925269649587463024115821161498706076682350684555137636310805018147975786386006132779162676343260237544946673111729393349329054192700104464005869156604750363932627198732449720700946682666865846516328861569805150478291011615245466375028073945492195089103759997628084982892801072766031117223402374594672873662823825552844297009144615600102175490347535526640690698905477626974753170206229045738068374786198800738797255482331709566614637332507019653376951340616927975037822155594334689063320187660798028992634096722492493722736047550865461910143649304794086490993995396034506485590372377580512381371810389310343689169218753992714831997091859207249335204434649921450538324983438502127421677752719717213589057669960863853665696521546148346656449589442344298603763097279179923336937734132199194037157116669398712432767847830147976359426623107647592122183313032166102978895705618379335076150593386846042367691252258994952320535435655477181569565327737091716960705150751735690160225939261262753645907695386766437677900285068528400198962349295305893615027101173507210407897169407563743376963631046159328874871642862420196030651222660790973742888628068513783908479433939791519977622619961611140549891055654743774790825515370138188539017802852861896437130479700248735472322942821876764278124937280087486529841387846783391535314654110815464986448981564305160643188938983740367060599812454181007503886231414482905242200356484485194480978516011186384146112372100557119995174676736796015145285868393289546125404852971359919898582686667465603488386476208887748437202837203480764463273631075616753825363875074490415212880249096613488966664564000381650507224133224228601800596603017049323459481307622565912376939767583611222463654162969295307327103184777283104940811827009576726633164449804779528904346472608961141087979056497478285889110363074625629655436754917659406344732061316863791578516374818309006511196731027579046694557146899281521867904298953155541075818608319897890946221255002947453667066466447942427502835695787852785922738107742590052129258083115913407233042651911085547797434881662151102392475744764401017601371093480903383726218833998337779438780668424486076279867439961226586612627826216688507636610802545439418990212451975683184145365136440811183078781630849808024564317051118495094658046955146071349662675212473781894341326232054262159746546708269329980409672724306032858935521928491967572837688136181290358816743676848413940745162689381031676707980025058270962167705000447246396097930464671787954159469693605181188019878783430467663969584547903938455227340168226843386888671825890244101708438759365559390614958486393649770513481464627888317466165552667497510703229440583108071532328170990456387224334451556368624219662734245510206997283329876423472557802720676623625452533860407978237067329229606582154078775630656723986975868303217761110621834240943046191998798258053818081993425415302771167959344511535934217110465964822170370609151132545186822874011956264717185082759521218433193601416367573059180792982886655107371037066493525974908434979949285969485178207638123775606215693578599022540536382791255281155800399235230608761196784902415718179362300759090422203516179373220582125752135408892639088235571480070282201264352010918411842198382532825284708195839892975032793974977731951528510429648077089654212801592257081024410012254516912006020574617986338224233344974202125009431424601281362385487408560754476511865498739565911820968250992055371749507846695691501890933960514509844974974855298551752978947505113820580350456863771767478651609233892134220470724257067251185506363600332932500442285525162471883567681426979795843292500216011164041520644567509288281162297946038655691930307164263672847881600719342266452204297764060064740792439378513252014647473911490861101572124856355109184838230064381842400199202106079991996267999386883095414641903823889154459736783562272405926555230474407746293813424146334583334710692230451452867868519265534914277572614478938833908676456991956569684843948599771657626526972953062705033350648329217062099864021639675385230480658848111430571425965336086701855337854860640757155910088649482229649092535843822198184461856155817579993901096243296453380743951927725818443803419692158258665607014560376670212778968469321807471151140048225705084381144449259620457468960389127982538541271967708361610756906103958465825522814443541021043187874019004001480172091965679025986857259584083107582235358591662692101666879143647937906974294140547187232483629143338799433343235456274250098113248741594783397439523068402039117028989138735040614880128389714775663087925146617537989898213911829397928725199587405407588536998757502134318856113285347382781968976838403748707996180818256520617768992490549653709110409901505866820872865535945322857606985806531491834308288952044414100531839813776301086092827173925621846517429592632488832456598690426978519162669993428478433808424286816088001429878669706444301437967441179822287281891978222077898797491046496608086230496021264543459125408006719689989440515484662709155738681911551245828792018083730343527785066584763647120490338414326533261748296664929121006378025976437278904264537902896791162010880527903060179227834296377170161935332577225445443005227676860479932501334463636773672956977254291527000841889906897626903111896945507262185967233214862914508409948334212755904435132123564494732245574742595238189108799212070543501062900658881094253814865845544895426873275374239367080159440059049131312545680515339522448630814461519028987087467170171834422737664650550278017236700324759823639772687611290113879531227511432336015866457195288381951436319108546618594035168936486332946729640908900271545852348500861382065806896126829651512889623113357793368723397563418501336356217370070578323341722989086698500377185327136190367834830751446074206815894221276797479671424087385288178320595686480080325346200442071906013579612726340745677891368452261323783850716621585698507763731372374350117249472262930322903333536243004887271652862930076253122532222413327109191319309373503452554929843007401876264594230442200975803815208801396816673205475879906619454740766038172174977265752020100295959158015444576650953301948714298145885280101482481055157384536820719291216257910753891462610953804239185775604413352475248412475156585387073758421274113950522942158924364684799229887722578691743856939286322082709476239432950989167765488315179439826328875037856569204808075093406160212446559636567601042519305541943816471810024407890179967145632119217732431859367693555045828556033459998387154265832600624000864555162346751661591954857430010454709947544531748634654191038257872906516140222131187685047101437698488724426829511932743597116615827855295571962777985535514046225786910670661585827439384574600200987117520021336866940632257910900368621296664462916323580032229540374927018817050973570810837659432839354415345977328969626919678459596524515388041593997498797177923201578565384384321165978903248290451733567730413827772173532960164888619352101433966539549109678442748049939105896665155575870504955296156898889079540298391048761404025963753132813831289586576861165838570085574446932135371782061501906961441015181148245966774435698873411642152719185073553956437702851835434046142419153710173567035637555820880058608708786987834443802403672327533509203404993106379984361457693659485283623483466807454722551436654399851591661255229797489905587439894280797950223372934702512792629965981805215402015826466170661730087250817856086230702680692403127372442580764311474360253996901349097671974771675009869767487641921315452432602324838699682626036799140884779757219921712638532828526172795110670696587236171739534261502708961467491976915086062440859866998652680187270557969219962093950358742732839081020998714529771707230903266306850276946514436389088922672857126993339716472364508135454440048519080078709012117204416377353453921168074631215730563406283406446727005827263216463279044760970848340727741714884882217058587797407753051900798553002422689743385303823699369812702132543502300861068407997280473141537243307403404340923861572901501845047562610672390056606413355723419183330191447509426429535445922094372138724866282273325397330401478901332338203782371559743090388190306772280824794094429738317708804488744548937909464541609191913918261447541766078520699082037189966237007425152527542953002007342594751627636736555216828285766405192287474705168848443611515227542271867311139160772460185631231000231569786605787686766855915313298548817804505108415031572370213862353079211958157615615379609654907009280721872696453487039161886752978348403715797160375779420555497880069399120374653044503988154322469849104825442880298764434110634069171019373071680708929457347787534476288992308496089040165696418517899394253620880734949495520486751087413509606279779844081831563081391013216787774014994698609898529053578225865271952234818369681087120816100217303325177717584066721683709338139280066273767721476007981594869212656523622758905098500278204811329734939692996906994003872374379604460673610896736103365729533458914752872577731671725313000633541704270425141940982596206439893990738892918252390902866570274317970495529417710952550489769339852828511168281487841489658614206995328100235628812491410648052812832996756780107421628148626848231974640241811848901247503612630531446783766674359425869028031453017485520367289926261077911008385343102864963491283635761478930030204944589302414434556028712617825427514090491221166030166638602983572497672791358983198054384054984804534856734099790343223875300244589747144789007180004569969574176243299469990709734511440735177697138610960739271096368286490335071182148249402932911764760545656284907349466415769495902007728501419772945816929406550159178321084796687422023061636107215554472664788875428922966380241283822100589362230624968149696609366128983865079192193237398308355166485722496132175932395386840774776779142120472743685727486846328856586354289561297461942914525803822558282673387581536469513155522902708474997838525748149984002173606074810527830295416648473621495059781838012008249496689407822236029328989265778143578281629419896244346967633702570995251177909188164939528458467036375001844095015347582342182763104227706725803911767401405117416840811109212174541975287836414483181314478267194985550362614713142210208082468051862776444485150882288636820264515386839743258243472546320578960060246623662751950065487980359559096984440048955506607705020361792453313554046407491981781483017399296877766189896346331075922950619152489407536233726915926118885912094438988303985690400219545712224273007175352060767557981755647067253302129101257472363277769113136250073396524468211605532164576275112673835721898205360438234819832105388819089270576574647958092399001323184668979212781292536374159745985047282795092081435985019294406308384971605448310755691125728699078311532943345308807564077409672217581754146982606765329135194777144197655687450267371387059671191226929830566635324848015926151656624222999591414385675064858324831411430140853114817070375898495825900424432639094009997896273744810249653593750374613732070572088939333917870768700362660624871510849376656533366621510840779144577645519338170680873901893495252140792837916265531355414092857192624854551559352675582199218555494484083409398628497568250296842102156152677415318092467921058556780199129441323501270694296442593304291799366965600747460164307206379999389429142527215963817153381603208812330387826717537951442841413096188450106091909475694577059705557313674420524668858864824285880564461421930236159976356315610856586560008124385706609838122788319350470553679761540208341325561581348834484782740866206023058096621813639056500864441680260741211692384670581150089683965788714517016786588906190828171211047229455691433528827849114176605908464398094717890377854104128468547970872107981541440972418239237963166461184161298019069364479992721178840952841415643418283800719202176645118757360993764381108082614167404847980311028435663280263690316442921529573702267657424548688619860460301144698666029634279723250202545595461848682265561234133244673825734670775029880460541193206178826741813258206716678336234306890296267144626512918714525712447697182380272915743177517056003427449680385643568664601876253429869563295036610392062918782757725573347839313989566762190733036256056862972296492957325638633795636846691009331284685837464845719119534588980091100104425848520048993448747676303150670755260814888190429116695169589810055801716917827936139488334050992235216651412919182389015781788906110075306214902939098213983878760117530320719298916705347065112252557114815051019914975798513871785224756005053325928697845851437814069846683631630759835954805805947636695044315281604594389048515358772713686455012972666107437404405758519379302252741992627804845671730717469964526320749023782440730220057312062556252334642406300651977682549820420060161302338891634120519834357177838429417103955034701015375440322023348455388446000792788573120810808055666939853994650328613271803376046316170929792612279970959859633277379111879973901324124781025822685848763392720318598148218694685953818909134342145032804122636653139931424027785354051589004503647809458898171548346375498681371884252944146219702818719429332428247299573298314472070489101531160072416303381421724399876610149218951336732051858717761943785053769773401178074305653118072283236600838600680487137912201687791915122296017967690072765376020295531254881266757777921184222288557306234143873839638976658744863085973278776339966553923135931581176866241971711911520605166487980696167619094659173731538476337913493965738508306344427660652105206339299544208721333946774348754400728300261939795869331306531435941370418944109348535431208851328502471171338554830848351314072062886682898905329079221244287824514708719710952693649734322731840356910078798226726423223190965801887198987104142022262554180485248360223235861737424834400439851450578155270278434826544225641065647752843584488855406103677582889061712121434788516488238336633364272043840630469419333100950328286658116374973408014125101579860099364019503029093437634092220134550038582051046145175017324212898293221479969899574530153232790269073926681488835178126977970903177197900795767953952192212412996490226058107424382574866865999989221529757280216686620337051458632584522330988169041508135815658762471140993019854309527760779414212250771225352075847682313222001368518769169085403570301240381450977356492387758014943977782237085787788543579494475252184835534634385028504076053008850308032563580321877432106367610894254914046257626480380607616627180015465360942042981455601887116276472659067779760163192243100163857460367696264751945967162106552334637906318533031273536854789609963992392852596135258175780748908184369067182018308935083825451437707299529232877798328694258067936155486399418885003576388943968706353797711485205931436697908441702578145538152055485630312577757421655376790815804320545729527079449199620336367669979217476460407551780075747245122816638589726357890748149377647413349833729384792253585604022189387092868747272881824134403346041698134005923432891843523974121760780266400963708723984159362350364120762930603397509417554054019869006653614900232520384974937930349294067437418266842457973092108037090379075830034233199684024706768895132058313600910222144844800184185443207477368930921167770246642427438463699713696732594373120545993607663739269672028861380682679263344947260380989510745210031388985251485960768064474795803995807275751134056780089347496241218547871953174577815743055833853832226176857417162037116888268225057873064010441049888562072517052558736867575789005359956361194208455061629964297951819639235809485204139224368808802984284862561389214680906243507734665672254653560366610467997171277478024145318757898423869333964769063435991747381736783808700572882113957168464956545297625414508763038825498544099456458730230822773925286073556136541823700799425975150382022041077800560731597695539905415788939455373473476245993152216281555692147905753429647808321953467841372106450362866879246317391860243930989555451919245559136388748907797698595016325300557932126881576602194701959134194037772959797280617028877969859423691337509869180907755173066524219915230331729454175026880374983135528795146640791828872617769200583324220436818936180345387345370168359508774711361397331962346066038447388444486104265723581030378069261869957296776492530867207445065467940610461065381208431437885782262786378693401928387579655372621611916187473041959443184146890168021049109027814668489043856924356796091641213818075143754232278156013945123812699991808881900330851485061523538970718950014368389129793357212830432275393196742037695079095642647697894962233759921655054125742533806605052385463232969878054461832382547317949588770628506950881538054957181382165331618700837065362270768781401500510850555229336892742845855578906224558212521698974670028883090785989515687648065354598142300710707481943379493397039122421117157396740498039924657728297142829057136572121377590340359135745420883224245025215432487037011360159698086801647704103469868153181264050548026698811216515601489168831164403687605573587345772970132085321366252137088614966577494350649472043360424366747464969339811249133897501159718700494755935125277457554018191207442661987509974720561694095148506740752577592042236727265824394293815072142622050420514604119856408336645548999576843569124672742005499280667294938614446494608951326905299457838528066096737094518997594294335080864943690130617634466596079021067219525392526238203414935499419199872827301823860417241271256666981965625113235185009067635586238064926771727480429594964358111348639294305669649239210067976926134028064016541321238694227800767218186026751141509159051413433297028221600088496853210703608340211553451380779229536359204851254602385385226451032706921606010040581733669211216014756280959486681937137448169587122515619245661150292723799607880794175949416393145769045483556802765506875676287792446884588384520921020647307335171880414254192217009488013629809488407603408737715860454392159853224609406369253203434411253007693001679612631274422414019863125349348264773662359027340989014260458428281201675783159373492444183705624832218357689332660298347882797076972793716359357110463857577567808770652889125532556493224716569813045834258325847007546383834957793191242814295032318516888180306543753172311898744103007786156468983889220102318111009717156562934169182951678715956853264860307378082901136987100923209808772112998944423185966094542762703474124937866785845802607993369223185882079567369809524290086956222244488837772812760557853905915905494372999443756850214309088663135639141991547338361173241582421178696571159040220627167590690511090892594367527885505649014353653552925961123142800676430266219328380171882351193625424832037376849697085758750642369134229024086148035412579065019222242928053533744086167381111138902435657549534971857258211334172561843988950309013541159055634934107483469060419136149359915864629313776504263216331914414692938117464676428277223630597650461191334843871312145268255746470718567650510707679440283088393351488943122586960164698927587546812400711445049963861772320523026134718624787925297949485729489502524396272879546631138547553710502915078215029735839890703832003416930582879013763550724204136622748319280838238359141262428038439331603636799438235389266887160282110241336136304376739471593713905682661116710578836634008627030437381880914296581374242581144825840582615621834318228515085622917056542764058387611489007808951788763305586711267450145353390406221873277140142010563301591911126859721862154841545092146067126885134169552652634926672334399942472852650904478352405448051366331379251910416834443751088239335427899558976712100216554983434445089557032467461225762022391386969377175594456570127301617009070600044196836229163643873473639075079635461270061086119560621213538816903999658736614198113181269059092966776415938852993205244099879976449397127535501483634975776679522019058579283749131073476314436757108043833823773009259155155681047998992787309280832987150563174198890325359749609365092642246703630519283106632240822041870701555213650104373886759953466870448255418478800265186838949945311831170910237738393003962863351474124026701046823029016092753766448538752815533425073294731235994616705461884143075953258324378282311468415826470833701938304186939425052023510918149319156732443342753879507631715544459166772892152914134166995095049709802819507603062641622791917571170715066253098176549709633954485476987242772943679702324415543521790707310370350622383200267491363414644322081457497543109100986496419946846021312812735944389372941147457534446495587544144320001835278115547422152699958734359950242966388493049685976876758868090729440430549691505283749584363114707896945923823933340518981064849743048972499098002978632948932381742238388235229771533275239955295518203305027425336643387183159815344557891667807493347365222319741996564951998241618024124592669398243532111164948317525959530442536138268713616687100485277720538965668707231705068839468528079648384926029254275588131819495435047854004586552681958566179432292812434001689486959697111423775632212508487508328616391777725715807185898284934944351149635938697769275780285225604899076959271269971546092706886703880990375500540058209654344193395346089436554431849558767660802642255890679027455384927348085709376052780101431688895620877177434132004625248596556912517399304068850872156665970109550594597273643944601946681400151277970482043783850305261264168908182777190917119172726969420682304782381339790936826704055208859202219151415961645333380108743555805519011995058422006422646014524363398604598017719917491745811367300752481613186125997391226168418609622666112357446345594783854878018578241139876537130024216635943636815179872339001209785582441039219352171655758789826388454894714118649876665777351674544888035797440134090985017163702743733245546451119422713999565766482064018313871329664953661275777578396502821671179661607081247975765379326391987640287893423861380964964556311784794113976256559788664385814402516301941817828362484949950839575299629921224484243476526353362283948261669841613122554128442095345891873856902840105346945464582054244029704667167483375498776220598014428894332896628255135565930028007755121102601526405260886344716552478370262490548833650734336773458792156900313405975173717046045991850240353226223842202505827602472125727900940216572818815174629906841028263062647598455976362193261518894498979804590301613156945310508922980738609611439728258904179074021667492098549033137066255041006799810021311164009315758788682159828295378573246272880233310549311996146568127917411782627169408291186020636713029422140697904905012565521951363920825089143365229940997085738951206512017584651758515297428137836697625250429260332410331734501130051603792388871581514340906392461614619280088087257441519445814570029171166999276002171554484767055830348402797972003179174141672865065476366706535472111522251035106847294521058242431744226010423867326196321630012490544617866719049235098634470834805176765538857651537290555396107696680307712716620177601459639057640934123645928059765561716068849034137304171146067701646834805627266657440868257788993738811230233895106120451315656141624506337071103181231567230752433641039364106942013786380640286333685358920664561702228259392340686932431589022334824914292574565055067297217778816343908084496040304235928103833614681657265408894255894814674581542136600622897571704498888236937141923716712540730423836406371704587191050466063812319439857141097375267633208991680537396285431116685172576723062546343589115872480233516942099466549167210555799226254787631840063957486714185341866802070596156896529844155216835236559490333505409331471198580471072038416223707601605072044803053870817900310632785130521281781416108123953508961222100299786382185302190753484890222612910590276888775737917014937507036510290792233679679712091796591435251497630060129989255746105950647362899702628592110971814911017453211200815078963807816251648063632333994114318930036229032733597699646764601465912501763629516158150902833306471798430145651477746620072155958185998638539497625320874462438844477773776430948761370974237218332192557486410823444942026143657999664541971325271866038742201991873618530646997851373176488302269453702602350300894213218237018691826026484271516593966375685282061172963799034486608172229693414271786362746816520166398966213510822779833021001457029112941933641997717129198756343636610138877635344621960807101059298071254186243096523281677431651750892723199371485453903773523392124581901536947358003482793047060658625949421803749815124191419004394894554464858437249726927916940120353990634530038038614635557374300042098291794030859870620164626238372437520024459896687993629661652429539372449506325810886425484159947147459718990684947988490852417757124288940390270340317442017146292765375521687696842523273749409971153777058622061682427900846370685654395188938485470398746073069976976042014867385561908123852273316161185705162931977053158445791739263993769177433061764173654214413130772145231650113201516876988705907013473205537135493223614378225529250655310622268515409412480610711319132531084805869878183344769916210388693188291822216060509198275689455104304333470576334664210033167082635539792253008515890117377882409682487886662652938559752608638854736956064727178422081386772582642113335942479915371428767797303503457067269485306592386955791661649833060427610532835009674993219587014472412787007714843905311709523581734744621708447376432190105189128463989312896635366259598167498718682719679984423240771713313174828093223752551417823348780581656858290114637194155217015067581392363362503070905900861476804875406818100677858455657607106637502908730695037275899744342897680440145157319929371601622615779855373786347134275825661075334971692123813879636297736907537209265761894594847319926855721223440786552623476847896657955977098664513808526979348507613669867717805469286175473058161536105046522157626041124957382442118111073126734552287830607267174813866755512525003635395522490319366341452789600223534785077043315743585552536399629334914325579344800319040448809120737719682016624413647517116752709005639903258869612644994937639423207420171589338493097441436821181413625708584799933998732777339735771862781018540472402183672609908272419084577317278554417531608493481890422007783731823663320244328909158226282472456953430348120328695646313161372232357433604375554397278212947844007301787064698820497097016095216194737760041159872108444478071803014492020766268883902721544282785713631546270334617551830573854128905018006653089131757436977335295680006170291769513914860625421726354796098678730463469811296885723968492893973136381438745832496554824275163090862798202190579388631093730451405742947104165913453704213918900358934681403987098747563073276441364837817550014697675612394182095968601870652177513970957268555469532514623575270028719234029927330406724390405900022856562688010626124559851281725179912836348908736193238653356566774964594593556972157070745611308905201808576580951394689301364362399877086984035330048832597212656359580262847485048347249281449347660410182019906225882726438097973547707556074202870352701991276699622304545133167898439986921460990075117241333052656665804139696578313295531108161924769166995895086180978467990509597757367229277747814966346071861036133447827729623478442010330689873600801562514442474926505127655980088648046876980559439001910525322896933600548626211285614899615842982796076157090139216168812893732006084996367831152695203067145654497976311768284332834241045260572638044566990778208031723258357758527353580621684402134977306070510027243896882840505891688420592347962201592360200799585142828513882374817282862092643825432806541492963512395822954604654177982773298172028943654633061410909889805562351886262492961734500557699413256960882006048061765072373922388526255895085349327996419828914165839780079074489158783560801891783812002556434708726825544861965839083944880307439893008964215486264551481743463808353056242945492017930364687213836940056468196472741200630651872408758720045400042572690228268223731328751197813889785449061907269495945138351585182598870714956687910538008938795771009704137604568733483816201437395809133225341081673990752302502727405248386972399162470754898037993633233842107408736324803478474642232867912737939680033152380370558824468464759049633552344878987891904167556221866831401689046605773428420871621050720678756528673386715389312873469414657997187968412549107589711313137599273596367098669144613642459533891710043944993626463229285012096188298682158129859022330175136694931887096320130280504389431511306763833916251608577241481865206709124684219745005525652463690216215998612458391868424704154760682661560183667340836193046945108600147936981880741290940430588773322154710587873767821523149140381335531543530088492429135375494527488881222360178668440862431546886033235056606075131646190471842336736587194740837661350099189229757028472759025790636900734253843677523707287952722798191174977288468193892527143131984337996807863064373487021349237247809175776177129118281605812182835595689880855365592629086010350753943998349440215061710348983632541960120058492244750043571577448802423226654778031995799246001936699870288595661691621344213341238565836097116772056616433599243858676464188038937597733485168455207386917025556962556145963981588114791950805115183023350858766605121845954185209922038603087947937063832081376987010269219254412118348528853256987476153510731115603862805805586538213968270224800563294108161528806402156795225077132942633548688546823811949970254715023206772729330668135543015821819604493943439851471247034510961711161401037609162505796630456932122267249082553619852921588667138414680122952577560909915878082304432080175234850348904846528770832805537380223322699443579936611472121434534825812023037827868604846299911214378322883679824807476937097020505795673516875804499551752474854349996695389595996146041913670081286731679821150155850039909469873596750110121213672303041871777134382810055047476340765930617908102957732950755807477955732467582351540863527087773558930831582495186912962273124376602042007592112185895705271042066952382976893402519766975073983107486479986195724333067799515331560054634850285599077352737861994388115706986651834311505700961826876956042475455550832731212423935516974061171153942434474034101918194118649944096183415182437033456598791070810302331482540907541331995198081336801746460220294837746016353796850065466723723861322512234635031768019085178508606453090006465129657908939822144843607917340319260558128248869909315607450430714656258762665742208624558473231670654120023897106168130736654323094359527892345427898433662381439907508922989650574953921103452829205505367752049069469494397631307013121442289935231857979448768058319803228981494293782757471635699614874620393062544905026757167641031874132620797463972756480772034781389563140016490444966754884719366778823947755396860587009968863038718489835966756879585084647124417531049672371234573463159192947967676914036391899904820858526584288683329275350696327242066653198597492881141995916469375127454725982487796976471088091474538425891082084165002769661048386035736800449819552849952786131656168378102637264133469874539903300015329733211412223599998917117017593742543669442733405935719571018992196471995000165902958737715761876717912518167395979938965788326309785456886750163991878500285572561847189781108800405621896744826474403647645756086051621304718345459286575305253244398512184224236048493612052491020349733148661074886313420708069226255837763230432354192100556400017478547435446116892543479972575750057632232192257236101697945321609464553290722756613381731762517825914982476200393587742377516090930769637508850841352556435236897641520420669664647233508297953123880601101363344931479933228496460567567009983937389901298001266076225885641699888380618098516359732848565400856013068531354956332503887165394310935760688944859560407822753521622934860160232648028181758745872398575070955256271931323575349866261778381425982829520009214537910557111981731744409873891600857013787516767125787273226244599868266766114437566029455331027715903480274800274820490875243353140781056289115425025067115977260001044053689392044731439452894050630729144857699595715365837339011630225438137221520139908510256098050923763051375150507310392119857228907163677046311701222162489990673316691869898312331702395150108490478069580312812475217734118653078051935743684017648540187061571530849289766187647406092122274353116440709624759166698635917990843735303856835009142835583202566909142048495897734656977472217630407533037928188474801628384831217977224370181081253217172230947103018983417399267528380130328093764659942319726932706626136724569768341666618277598138034385149229874232535803996847187419652984688630884206548420680380946379386894680218480332614502102783278666424001139588952589242160288613592393750336167356981014799074183000871711765040429954428911808148320529774258434639566745290821109822766259079629116957818011641829945902676852828354784487692474855506332889306498331332091874618756045159844785154212801501701629368821937912240843078082045650006794587207922389669527929888614210212784365124816403113966967536560478601367853916517442095649018400174312162444989302264622611584447364220359102723864877650090218621175062743528037815510688707566789663787407308731952318998086928945660561152131991781340120279331336715619340312445677735518146453864785575463324450720464908505742221626363596359180778709749045543366785497483171438423501060653586383565553824433429857841994275438458321970649772843206025505684785232190038366419059317674108813219062250466634017596021486706547393038761085923877473670901057762198284693906856966334209585424413794610351349309123519461710015703630645481814846680297435156856874447710205510728932833766496111546585079427116747096275017991893048119294662662311438177800568757770960927549133524686989910585340119944994868941255891179243966320648727877138049590463562271006594818511440788151800272971508532518433040537814529032766535169263304203221556597393045944884563979713500786849016508801652286943333293666382585330603159084631312528355380016338596712821005615399422033820409639332413108587446842704487427728688370153664199037313305907132474081029561973570885188595646508254307126334261744511789610881133238644783496566851755953561520228578709866702523138497044869005220977677908094591545330246156157549045335301904857576106516443329638058986052016664356055954779438318843880672256882013499186320204438821261544122765216389894601444259188487939014407201012808004949038588763683842464735524010942135550923660873055915436761798936254226780247164454187499650710018898591804576027711103044884932466714715704666570501904719189256739023941377748802762446644471092535322138362570728277708610702731094539456577440163089450029356243674194137814658751100681992341747272701392561493447081908849772150903324056044919914100180874699683999339294566707130491246478445825679827769328705703859887902621018497182671255423173652287293561733956551566649165064914498174379922266298268020081834334221808821712902027716975588542298049403141023181103505417045632940411802407609076260168269387323620639432859620505322304568859774277813766992929489847449554453212168331067256489212213254887722430642057537240958991208538597731324632070043382223000905439286266582036198033215585693051580223390209801664978496185658565816268818137218347913463445569545513136943630093439645698135198577025413701722308986945626313573801398074991778902788058878250738585442849334383343511679235836164059634316623764694494336379002783504185982150843318941905052689647246485403885516635712504239489335655128733023693705448630794763585118932937383473138876117088159114095400843393942338641013269824780045873293601386219493447095144589151795239594205541768750975605918959736746837766522626283625954424386983569599637203802424000877705588124123397516662852985512444317844003081188107052304869768636855498617615876382965773404849430699233625655345637149902950910062846956689705305917522521943244184099035218737123911441235380618837899455145102295535485740541092848471957092013501958552028515164345113222545968510502683193035647334150173988932152167505320148141398946291957768394218961668010484322943004241773341468764685285504030320012272769579189808651078900875737570410695202548644437757956658778315950537989695297237268549387217062087575583057854491574685463589865912264068947249688853643865725260753916837079526895312140713458187468871375799003251813401587456077137035790260845325607235082261524032908348758520706724979094359085124182399391974009112775172704302800302217499575188947968395166493947637423720123644755682845050209197937603667098837017547488236736660260698387463499132429238685453929233296278562207584820159253911882030440758766469916573535094411293697904906157437763075446345675272330597686685529100877908053546129281577258528488626302988965662616604450165392033755429847371626808978747660353737385210493038746679067123431994347883305655716937261640577795032873370767051570235098629932658232652668441783594106442029536994651128769442372213604825949582589323547950245125958608837647240839150862662542805829044634355118508253641219477431015758792906142053510196429248487080515137238587362240494890002071044245080735587800268106741080299404853056499381404679002793406525079690491177909858914287500088183894163553387787371296682402408095756284956898161353739405155533274105141240160544343506608689609062013784353410636891400819118689840601074634194136397581307761940878074662770904500872642150179309263789751038853613928322615885355045011659948863592493334623739376189934385009773217898641389511650298228240982770139067513061121127557991798103940921722423938459062118707721609433121164327562862646617829267464947092596806617297733656985158035709195697015252699144612083664713247890086288930369592660814848406350567092103894174270946334223890963424440614519458730703762825669585287330612578423876066058031520687079175100083789432454047959335168648963377659577155816097743679492618070669845500089893930937375245967577249370982050932260737493070354412731111392111716584468543032455772320679818731015343249347697303098437153121312442195695768381544043497371212845021496937768609932000155325205778083021497594659991103708591303139699266503039357150442876259590977541968653655112020498331440268794627608994012404015508877599871349118303758546801409823758042517851608652193571400706149022186829765166274466399531355477949096983060123407753583229879272012415029003827419922770234317335430532363747085904118695351646973869875257402189472359826313341918614452681913224316080658346848787403528120569034080700331455136505017601271343837811911341015330030653301746656963177168627702606561520632409944600856971963139095670563498056570920235296161141943025029671175542010363741899557283301446605307710978954543614146534942092044788359326594240640484523710824179804231823224565617366397438675892815971213659619339407587509950341043430483967372693138663955678767417584746243500568412109655761805295838043036835834790192228310308678024264075238460374626955349455327534501097340529871199404219858718678381517584898539449530868336399167115497376789925639524211744245091324613309455683536321042197574836374639308644840487906350478037785420894650259825514718116343125982880385908927501317450543260029211404645144733597294391791017360372944821000113993023203639300235549662817451238469198116380877142613974293488525739057022513555063264012491178499132312660418824261589434112050834940488668974234203325373581096122383774335661698476667015217091243086400478928545303211201152731316903031882915163213999274946973875874120860906167836039040964668588164029311430930072620669790139349083259662909783987657920957232432210872786278650463093935214053750339625728015544866747444883198335612478364397350546114831358420908527739104415777615492965928622579799833902842206528142904532802163673196336375705369576084962707506010434533969407654239160711307520454059630543001817114188208886406982170372784713912688884983616321519487033942034384035655202284503968162293440229898678510212756976871702681150172952643782105643420827154022497489658016324363267741300513919221233442440958143640317921425552425008221647952083312708476305903972948722354177396219945865943265382229843647739927407945050532621394160707974875431406819069903738247585923301909662207417345918693040553417041237219135703883380495103938337007691188536056666053293632890684129442838495690751591633575149575733669507253328848190907033103128191350659610768533487417108095181329669679885412455753498745136042062138384452189022360325495444435243235663843822079841975423598473919002023182974103354706827607091560274202750719442833223468841815776765662857636968499185399229147532529328574965305469485100371268180825188857000844774246192062412040767374314394296808681704678186657677511837767563732499392385297481868014580935292195381530238925806058930351090590344786882916742092175844095516845105128558628093711481844243589857760917295247364740092160467499063976256230506655019949046971181898211668570772420936300219383466809952863891111006618802385211517251492710883059239862140629184955145461688412631917222869588088448450191720129619540045399174072574188144872285074370247054072133857972865278789817193582673473987461161529497585503962978755154974941101664626529221343869226117472858258290970466516578031804403319888849297241885121667259998542231303314504766457456981504310467702625068865167392412573060431645940217155385135241164097551794263621869606035233159160466584202750893713992917689695914357715920475041718537609456106864302014266772900987628927294960916225717544098509619175704447409906181428238528965579604457543797704144163200304395130761328571239174348674346524203266165553176071745213771674778329201797637876222741303504368939965096541090587166332854931161331078598228988695928404753998329280091403054765313536238673445534590992406653192333502428198821422456461220359274390432559485889036586650599206359992502391727191562787384480218048023432766454823557654638923024285740655477380061691532489296833354094959096233978455969220823773740385074411637324256746897391809311434173160443577777970467614434266349236756444276533988403712129740390288879602573958981680276516085709680758306946547169115298231537001704769386374720719459872357347522043490964682565594472802154731906343229984826811913902896174362211447470057622286767934557759305204624054078755601945845030836890723663334512023110515861462409859514967806373912041967656029340319764145341870306503713587704651201473726765169788885252944910994556265138549440394192159597676010354194816750646411981172768582825802997922970873449850882972112512519950904947854199003014803730299322220419212698083161669612182897808283418425736856200221579748955769843273642963988596361190214705367225525091620539619593863464070307406986923133437989962106630979970558663191350716093299816531682724833921648925295562360403689326303983986288175080845776456604634568416459655588160089868669610112072858736397148340097286612317467645894214383519481438101135013940668205716870023957678056625221360456454291449175206534133445696552384858466304336456165177821529002500826298520600299099006744721218582516269761371889413046437687764706784439093703438928665459718611232014031158717071549077872982027330006093548981179708741936125070791637224969481468441333448673479320302892075824016902030517669991108103439753801901795312284421711182266861801455936110524733985712804172271817958205415541410994571913004696636830332657019977610265222344936051851341438080539840495562674678266382576148409680264687678806665338330121417430192161367771058135643715540203290397272345889502315920362119159535516818184679209613959037185742136206833781813468748034715967935966099131706071744607185675797416842515297206292736009347118075814735948310471280590284012856244543637802992160314905314690128301152865358625862033937026317195976282260040912230117270109374513513850271474128910356375899282611536715003270881810987491850569933446921670185542250264478351697612750691410105065339599575445306214391701987525797711883842779395231829341447422062336882106209799197147112089877321173929481866643158192889534435282426910531670955094274376241726143498864661394552390203891496534003440011794468993378633244227303790117116167241065536180455436252542455361372607466904289497536074034165469548625613936054083000740947594621080425598417986927478594467448536826036442566865281417979554272101027599572988356014164364970971388768926632918199735918473232538278721763319686888165960042181146136702414503366882872070883207830807731173499595432917860100047920417505517606654466802227897558119970423328315408193935397132272793359276348146952543389776294105512373177308433349955826580516679959303828917503795165055334766613464651340885406278628432667086597252540933198136365029160658843505968576137048184528130439145793614213278701385063368871598334221342086693300294054010289771507970741604397883853408799860691449298127821208127380303406212675717836331639898368775300530997742024354212948325670943979270669854973829286787513643246975192996700085150054907526827707866580153228251604373281512009206381599435691130512586380001976809496826747395324720232306261930074886023227941411114055474655991883751048466438562902799666020825147250711756813121285492106493417941870833091181781421333343783642213861879521811527297108847696533960599046944078636358519770794116348139150500944627061151231546520778717463876786457789804150122395242451817703648928908094572945812371911770577292843735574234073675939897103455821592015220931338314987223465757240053130956590211532871996211824980729097603029806427230409517966866764249974289912774530396144580111348987555076908856173301705378086279348007727979389307888399009372203906272840888189771520338845110154389188560616295025586179990709554819268435283318665214889457334492882214108793089401864027797301884256352874601870452730443983099383886247387686169531541578946094061310186081408751253643661732109516139296457573610172570476398091340222188613510530893685218011454972941067639910811386072482682245441505823019592360315675829150375760991303315504265834132793093227548677420229490813691009298731186837441219479603269483529194053077926241189952398685404037632228090811911189826305708220952103914123410115047389517203566501859624388044860057102176497682247821917704370274935931664509581440579768143520468483500280731024726545092109602946951519275147585280323229859482969046179146334744334754177825031977496217097734014275972391044041254734896278062282003675523459278228841946821480341138152718856482673685680499442009376328746133004185195987382351495417970144975914068756991498177678829737772000701396517770995345509728134261116781234527964283449205630982184137019008011053986183209983373121266046124899138180162194770569601944269005821499397195652722034212232988376345851764975721375700617717205012692166084888824688934726979051620677731756355728989017375604652319353774903418746024014641275322263230039256936932669057851477110158431232328409077914639944216747391452612629738371863943723119183137418987625942794089668139648624527141725241833993140623913172018410448278964243464127193017717005760437108858896433055359996802037875178180976957713953194445722692146829358859907229245783274785181724230062686351988276329044008349950319390868831083209545169614971205270933182654673776052717449083935238702003557977538482785730920319873152893593571507295697313043760349203602971012035837989654408542597725380112083082156416332394379822072140293349023305146805160542201738503659907968945660392360819779975806716358635675331702197769276621829058063312728046832976900642974436278173452233457631254369624668913856886773031330285327535587035569912352867439844109155887470926467596185406494735748045611972528558169102168077897388420094862111294568722583939015085783528735779239196419785041088824780784858452312817526608193648065838777672692714494107631888676440928329838619828252396208671865379798519263733542980815823336992249499080783887234355181352601751174583921274986269574458116623093240059299049505013335797759085054627211357826325492432860376011577052529952505870230938411094283900366572466474973381766806107205315421538517236741884843251504247078373253596857620519295365891288446730774642802825603533711852584894528665618738199728832834148655727609481814369102972044352057676289831489640290642651301243144576781267461536432690513179275635889123819181703378539792307071762018264214703067301845623555379067429863051986501183765601913248408935976843635744439215380942910964555053684670773797497808490748465927470435990175093900570397428670384707760129196660272108612522681283205681011420138769524405967580924631553764451056332102913030143200851884928846735068106826472994058963648419690233730908423719113410244023164476756169531693167413159598836817495965337810979530912882675238291655012585401234104198533742499304329085054118785210835627281150892941537616398512989017217486081896803418487051111613623460469555070291650289217944849549868641301000013757247519361584894765066918583396120972442756251293081323314348197452456219417552700644623725000447463264196846388646612729198747735398775271853605643160093133875430189551654814259172970414929154188708613121244092770252407999500625314157006631277978937307585213614454113466826110131528363132228059597492164700087788516820409812855499889711674837908621367168072164223247763575829064528562940145061623731322911918502900193050260088415095186445860348450207247709227689446704442272802867131296399171602731039600611055896762909273765535086505193163123840497636560735551508045107283571012312624146196252815412021801346168033142804832777342585681976272476098112918050511169333435095518954679454306566055618891579168042851342093215564166355659399153164786122464003830368655677569496546217523649113627106697528854347810347314241662932835681601500234747308062546524081446465864205335295652726127124328590681732043275241236804768113208227939490358110377034903949648047738837930318940021527519478541431020921508595580356592902341755515280442792552666231855391769335343982212780111478818415830791355155721847355769095210814873574987352567939105785104971288480042576767363788993159558091942511271926710594953467280824461940064270323276076953293753474043776360833014867265592482796066621477352382700844359195232154164396903747868722351755131854850189489219496891543178138954914774605099355909299613815191936937923493541689674554608805640689467640924911743926762232429040919670077524975997257576503555889122766475631318639298690858629461269192113717229787314150442324704688594314380138984643767894717435053551660968354310062640475311250776534508389393500526161914078321487917057727572456940399969559183812372134177626947933797606991058760947283467142170739978035502287568961485754339040818401973283443002575891079141254932501704311359747630304957077047000868920845350337119209574558509609647700240289750397223958835604969296560406550198570286141437641798097773878268738662110512606369861600751829493667128132888012385085904596618589773545190899606435877722219101521053068261565896271942032825352913479890462852704105711365792428300552732066784422981481721519299751019842169170914391790917271290807564751057678787135931368564330910969965542085992839294142290904829760752427011304752594615504775198373988756836472177167331805451909650353303253344562610144480821018974644824208772948116345849568065165318481541312669401484777706754103971900489378583942301970015180544768411958443447969504907577728189020083163535044694049012910661561454243949131064553436785575761072374649690164809724899391100502084990517490246481709682656873840793457103710963956476110910938932765491293402969849133598533618389201555649254082038021818038023203987859151826791030852622490490980158142870786288043332762524868767554802082984603107323665688739889559405241017173857158478321458152142989861178754197076603327957957516411466547450373408280652634293105798058584705855851930796488809235218279112593417111396962932434521612091505595222849831278603142363791086753081344331897901807365110986542570948975641989987257731099102703311462191226596032878968350456326682355337764264166781562236044276366503965096094355911418682000791510911444540092970777897805583535765313731923814499448784848358796649111619080553814787088000297763981845775195825405748164238436458201286761710613797125986864382765711861088293966509176152565167177759122572502034853564183886841182359996809985919442412653209907296143776619838667461586449972701015932695228927309800825364382448443369447450740208728947804830020040175675543008995697112037815221314106999448711277954523821597587427987027629665529917354742659309309331982678298549771140615718769883252253613655675530529727233618091467625853773956179922335963704826859256920656378335683049321776664701480631306154639962230410983724321307670522131971475330772326589924823802352000063525766625807723111033008833686333879420296235467016645162057189805819009107730913427367619532712781556543362334217132402817544490041088017691299645839849619638549670757784785111841858500427684102464360351477333209708955305599444920662395799020191667582442415456638173951846669642963258299968300201335353368603772295767630523693108823611672690915284841459469480739904442472452438046370931595893115422961908554544197176761486165979835320909914659772355263089063643921809850539743744067112287379783601487274791112193649602105730192352771543922340421460847977667921979062468115575451573000538530127080603422002363361545968001256008415152960165979882646562233445445013612395314894831058367742504138990360983614053552733920455129411530870042279434080228932564784693979935207583040855585048842103579951233835521981568081147992544930166126828636785784774000884440764055089462796807829194288512859729728146126600586205112799067881991651886740181301467547306434604088224222658913146496442157123263948178312963841183034395774758246745350803420050925648053393480385190293321315824380481032777412800558189452844726601816277257442938873348401585729499116977161258751898256571052987306665519648590027782680893641977995463018424292674764099097596754552985247508207197820783564088442664869268361834732037691757225163985063380551740973647667537053686880506559090755949435288227998589159719639428905954384742648595248032893442773638186032074388559729402992649460378060910977910667682760208237979991843247769528443476669833053344563826891921066493018814071732547031004043363487643346687573756622206855027568334689090753142895304824751623452661825066161359245448727609223190379026374644439430463070585348889080679055958751097117794413094922694968772792170057831209134556778217518613121857367961028171568451225906509398427203349730513799078975935214592819459475462613176374333584224767043432938137345662464272518669445225782357066866062020915657574680111284212989255056105557665898239350278090887130793374063111739823153400373395902394007127160067776422681031469035006493082052435690242413667106591051458412546894174851485948407550317270053909073521986798328566407111439797314781343864505859108018264260545289187815886603664629375268744168214535912085857932053753287756166513366962092465480445607250465632416085838108735177292331918355648508185771472181561341098221680954657498527965000845092816913972573635765114632516145612132946940998164787457730449787491172487886104401332889695502355897798432524277108403444326980321485004534701515453717444915158824508165029676190350894123352503842255058057284187915095229758329020462152247961194316063725675418577479396719863547617586927702483065299990029577805731620730880938004316912948488090653803926383556292979930039089975416425388063925601144983506745282508401642628916759338450943157530383154648790944728734784482087324900484135403637880599690121740861963759414647453138516596283823347921598995100135565942120768676928899703466859105363355225339765615283350241502670785652667823524075626512925965423557375988792192054227033602335164400238220671857655267704268352081633630710214573001914589776341989662927206424695960968184661079909044073393873108393182205314531319865579731722110427205500469318830462051341261525786293273782208731377027409688653200139169115623802182268288088571010410681802778483116737650304512570472343320552694351945077567718574927491602740540238612912808980771675308192223418649023231571336842289208323142103310837968109406612936279879754148581848282912476350751140524347054977096790089364957888961935032732591494065928636856702062227907390100786072143256600957166412971166869265706613731937349681098185969148266710575109873910476422731852488131121232550759444090867099835014118299533857411219563476631855214996550076125390326888898269290428503629041226108885264401192781675737247323623310043227381215214771285209262488421582140216295481282922973951654252945847683605476109283517109872386671009201640283283321252458072754870239073925612439348328276995186658372847251660370301968132306444861758398153744968203156786216829652793847489897201497513238774983351721472465089519887307312624218191796609821656528280910161851207428703255773752353651192505599537241223226950424406955480608861885075248729542312320869920419132644463911169433464729788009658426898539018033443351152965121197348171548602733459319509160142400551540219377296296086021698578337063126669372281238267311988323186429085118141029206548948436163104582578620012434040992092066874985809155756309236797459071176087598188220612714188958950397936021235860238975561580980325514900320881295514315030209564735295495630393998436732109068416263369575750012384269230049707354616303730140083212629682586657775470701705078363885606089904669976823802671233819454115959868636298598848166707785533893228050808454248858135069669282473963752728787167782379956720036459966711561792610959898003980442144496856140117099897685216786846698291735366434098655491649499149251208578324541467609523289985858394645360467086811612516275849549008789587221300535754790628265008702598104558500466168071202006476312692072755375256388506638040638609607430717795970149572795367535625401915827516627620804523740772683873880360852883707308416630819805607027174249493969706720563787773990326578690751479716644597447742699189475283273762040782449243708891446659463672228360087259987824671966498524701513441852206501826418166346283924397118899832169120831268959536327764832624468686816586913554944910722577716271426805273499825074328529397419888443343220115955249861093061196938587802050166019327860764069766154716620109866970696021184679454826664351129660244103815301304601544156945635045162012646485529777458722980223397997250731771329848809956014270279590523552419426730488246026236502346861149644626724669568903730304595827865838713041094506918369645682179184288735427073874079333733987796779363117285324637876749041371454722385261666869993949480964225576321451064085471193433074694234293375024692093743458850760989869252820035648877110803042473392278041784754047929052599590055737553991957839372495579948839669704617393164633892370146959470505662765439732784495242409005148395587755165616971091275654794619869578789808000315298347949215729660925404590401029552138168203670417420843262675603953861973831013609508293619111668436758908993921893589588287869492214349600385590930836826652995261921267663582849384237780524129090180382742634937586947391231513174493854480454420423362843009674886570137553111325034231213451419189359467808798069523831300254493995579522218014067196806085086564028822164077723434362806295201378810470047010388953168341467619332841378387359145839456060992301216998263822518099987017828899029076436130458241848568568849941853316092696944162435666009340667278045779214226733928623188302567599574956235630956966286521626297081264046492605670100104672495666937256421166003106995932960205354199595836044590704306554309973940602928911934967619713769542923505972846685295507246918788940080623304959474020129910021329564187310546498458023436381627314631769685831811637172374834715740969381025139731641049118485579795398741577933836345083039099410925039290085819961254321220795080582678030891637277274531156800863364431501168324208623285787423629876964295724426704444676924416223149019592670734537276543215122350642641966491926310627984015867622358628291051519506417032816198733221173418582252124338689380489757718977618652159916903263386005179239202707044227381973370322593862487119859491191696146513464567646003324611975934399773284181787250303993061247500766996100477742463942091272998073707179870469144544228957629702041525738717708509978127205900446742248618611943219878964806776511073047701026366851957270418183888432722599196026414356885011620663250014111477307861923151998471779002548703526582985783451886783951164234246830357168039750898614483208954243230003542474795809331362077846084775041835533132220280075194838085429842857812191865827036167596396345093872530743150528066392789971151614055841790758049570437666302147795462023493309463948076754919264722978253879758670334579088517645488597132693758656979714505196665553916253445823375804129514454113063936168377614574101761387213455720620943007737327432030666714323635855467157371729402501860446382036994136289379807698338394410334557947137993220190879611694741709971561359332142522800340353486540581226936764062234382569007179634920205445443515603139304212281696187936346205617987345654341854076824295900698743519855381036863997574930357799060469282100821700952872535675673343903282887412204359795268137597799069599345714015302351283584869336862897610602187323530409257689832580479222382132273125752575210933564519547517600765370775028169006033512850748392996404269039781429925470489796027194447764201335471587125073292545188328718317677178198842668677324854670761385351737263351028136243500301791651313774331744214145086582081626866584099913599595835236890626719454551732520659502591153490156553099897438400256929800250381566494135213966619096365347389869466550517132474981092786253149301601039482253877747385387554949768054091997451578491417751560659431824045137197754763612603029800512154234754236443182652550206737253590197055813738104756924911693329908404215753370628611729482808538625400244746454308637497314294499563530960048246508504878042854137151814942845510457555944316598606060324198285974916508081399552682559860832247972211305703887660862862308980145615759064092805770843320000298595991523150315346200564664118412537332339016949722781388663552359787820643201480804155331554048150152192032680427790863225890706283044093526591319975770646506176928418555304920296340920225089154671353807624220909626217841119275195996283282123424994884229397922113445546514642369337201891798228609574494399001142309298263158446198217576796146964595345397140012681308928376538863849136709587002486894101418013786667971699357558853384806821685674867773532120494215635995462952074559023192189705131750533753292631976332322936925524456499762569004315783503743373409767756093481368875506363796659921663125172549185006254156163948673203496473346860062398293104426471685273963867519366294707663850262639746349348937033662454307955518482811943890311848256863347381117659065461010840849686551352689134562823811138235073408762523118808445495649790410888329347907344273066783893408104115385021244306231587158764206437011127032671037889452806096532963638920232185724330920252664922151876709717123065044498773528808758607993100577549261405139697536049797388429800988374096310761497552068359517176986590602614147818072062582507264137081216821913447151258601798255026545003162665830665203898093101596051170107690267073037886402388078189169602876832471024337711649947855203872932762008348072143118944947224747122173964572875805747154088976379274178244228809896876392136163440669099608884918090367129298520104341413494745815070280810188144500794730540635299068509071010439476743986121300630569297632928426976171988362989412888686579770656776761215618313542859252388304126421403686973626778978379001636564306429557164814499808975463972646479452800985924281456090293610129102890740824478864029194227294505219730399698125297702817394465691244583112565826220075356950957811614210525321285139734483273766103207379879690975812230108383665967098314815371330499397701312647444603868348749436238283059414172559374478310839467021884662498981642414467389342838942855931216808648187281765293542895690989710591253707415406761141455782922903190510035906583789789870982699514719585215139939260540490383166813782044177277015491855855225823006239390134600444444918122422288019398573074145858064914919339571527348863825115947686956451989794165864999467868726945190309493649853271999896429998637430326427194766663977839688436341346968745266038588311543609693024241531270387348249137218802690116029545690905094061054223752510219277086638684578095944156630995563774983616622493254422323895991823524212209648478165050928294600425942197199581011960328123368283969802276580043843375989531495275766770586457449414580936298851451070350709211566914364958540534968872617928374072953282446860916708886590406646337609990193730756915449084134402621054951661078683389366166732688573144805863402933179612922995624708686945459626453576579607835596893002665173268380924647550058805266880544699037512703195727167134965529468040419056708742435484592284721510532100371767991060305417572002908691071287605106213714796105877674487877522114372424760217013709732494832913634605303964781077436127978365659346668081203084233469063533441313113594860923063724397575711866609218019307526163906789148613089798755063254740380893209999434567238120033322379150261510572555042961189965723907309697872290284303898327068034189732205027112682030832029570056107434174921698914163149131447349958097720914315430016915445663111856769121448856071187055624150293075039558434996331258961807178003045669882838258691261548814501349124553969155679370334462859109969500868131806527744701637198356784419087971762968174269797621874423984423866406327604172756338219111786765520520531073764845091437213119097027637346857985713953263482898955959527816064357370302455552803527114470418069043155780041583615001624244170441059904343005731245223666303466563895714515301867864254054237880797971666326226867352610776862673163140162675971964489480108656677816325560637697282380732768960551266552517967026707705418417241443949138531177428639656161064139918249811952302575727318221393705677253296064504533775291118871640501313932028373046111235259045108802983031309692802812906740557767425574218432106482908019135061238619237815308303655579180654584493939579279116854149594474842218600580737825704226088173682934447330146207761898963924839589457590975070736380651049297528741340544098718363720231434322014274478256607694722633899783492876105634939962651214477567229920923908004613025748350929340618207881954928131511009166409877327513761493722175214960443034737043728534336081076359841121732901766911005293816677817673709084454042430468500326401523522727517198424713926027155865111648794166635722238710074569692294249739831234058898597555346238709681232006639642114534607940824732781759529170687267620593958306083872840674624637241300471251516066284911377048315787405567382433486174098572136719950028151203881196619073483681616826281086355656447488036642501829502634289762163140956503590612548457072926065575666893908543597476940597812966897556136122977378508391227374526770182135734609989521029757211931967720915266848321250360039574284811685531586900786220218495543411971077806169961896793968601353561152110406610085068358365067650683508019031511446263003983097630254344885289841975379849578318594253748029155629011845405315649088711148349345740497348429876822759414438459850327181141381267738022222599289854289300834171262555323509299009210972382943782507321548032641673858190365285130058086857534223226642925605886682643383824111891233670239119966854152936098781708647866102842620283438456906919501946559985491967743359934342460702472700359983493124991532972365532982104387331224577697816239417769503743897834628888714128243797794355269719577020982290957800178670120644779316600971781121566577216329744520331893851308612951853411180103211932074317130991972716193053670020508465900589308067672889359188076332908197874353740347282352608291686784816474167958573211633847566524922534284002204136094256423870647277480511372057940186953319147390531482394301779686037785959561298931608758738530977180843124692660986622445207313740273100880856018103239197231084992112889085580462725513179311116421134559525217127176298252191781700640472676955594113382332979423607992305469721196871591244988982190093327616356707829924186028991924567114411892566780890109361931495847445565222857588905394805093739838590650930826863509856057658715852372872166814241341909973590127304900416997473745249601204173891101544099757197164326464022882584578299666357067591772114610764298849907811936156875715090723239136632277689614707383573510067532371769671704686070165285675730825084566595075426086716460998754323021334266048175196696930484717825772781737292231420183964612449061595023719433861718225428530246250301650412520738512076644690643307713408735310942445014737725697789042779353284401896412051691907488638446735346510243326176372323214308793720311779896919881798796857836539069086946746913543467231599446859014149181989788235960299221088494117530109572407800649309449561955954240780063894421838977903860871188518569391327711449006929605560481727394077494307341611786083366049638189915365488481714668565555012676763149412956666791480794680583980438604108130190394709418871498563055096024600022653381067989319879608623456752739968103723666409220690846688453459736467099583119689001111475439424647375135114041114962218056390754653884021164323073964168018241840367841817302706416038927339533571673482419492164933473830636457716206183327778903714044601364478303724212709705886707268729165706552239695487715983327196860144113578910055560989941754214253210294825875139056574792339486167606383044617643762386563008730543093025464503015178618395983395301978288249874284629794943907261651952637032433488821734409199096410552685730712255140779094228385878125549384391716940000447587100655762294866142943473282848833840674566326114237735506392403742692283507898153530629791937021376673802893754649827365021610737313571914559348693617773507821630705405363130488221315596837155847627275170187752257095434466419457969654552256624899586331481397633318134435166957870011896381038907436883254680139929075913548543446946941442129696142408543148231879098098085752507692783568286237412707599863190608673961908473617564536622632360836203393463554161835302018376122937562268913939542832793938207327197602494220162802606211546031981462499976006390288700813435661809805113399504733508258269718489010584369615200618503703544509703501383448981936159537739568075539637214249544531824971080854839334293643559334618331697213998584583642264303776938324976183205885767016602433646582264706303240865473251043909207596240231612849434880500583288301877160549158568358153270405899706292623927131118955839039258532950824583763110919750926928188211961867206079965487339411308652490621910549234279454779007005813975422982854751103345051097869759232488361890275256103585252218465180172321777351767254489807430888936993558610592135292997433237787905810617971357160413729767652276137460915513207418345747746203871325548250549308779846338465864201261097202201342727009070662868818008640370075963206420777522371736249668942944918475402388969678832895769348928038703018156417390513739315875945010005908401540480894773424407432700679357346782668723775865348938200269778936450087565057084823332440855333536972650732439258618383506073734594486018147426244968982254788150931435929204784823801142195880472886346987389252784375325984403481824043874516818560415050368302383383605773477373620717063886186454374343768263886478981082722027482633977778025096758453106880752595165700482027154890291970940485637896415213013078745960314600551262047246522437348145390145256025040623667064716360569205726104795858590479961856344438396308913123038652698011090618757078366840654857543199415583560946166975129575340317283153898739214209076098417954401718086354045264451084453906661099278534728291078599707805705157765748328114273334384147456173026981801172782438565530335517650758449482836578774460079572085161633307243881350196027054651930822535557346764699301620729487364304908195468545756030933373020886984131640676683376359638149659975656182164834292563666057575762478943524991883939901644704311427153706743616225897877314292933974578644828811613893053909755950143310559983974458301003812709414074852706194053860687776982354399435709780553083052228267887792980195549323505769863742021399082358310403425633907033749846198587751621284103510262904690436887693733053184360257601603439436407715194932197239997663976907968828071312999052115916576550310936840294358409841145692221936241276608951680960452429719025264407191787090390516142986535238786164970456712807213959471947466229487769050633742403625065817250606162380096400986830874041765126973754369670344502070177901273420649433509265260617287234890127381660771735670510609921388811119901703714354565209660564907515583394562492805387866291138585488134523410406993475541919743444050818970451958976568703321559106723209959667269767271341461329052567416497156442831569154087011439249164285726565501587041291195394551990643112474939679948582450924713366389888746292854435842117089109573810283061944281453847511137442472472351219039783487717550270846958302526510989494704917144111096620656567654163373648968802417945771072119875762514847403585178112335281073254070550929518032260002574074852751515097157480937994793081339563951252602211842963094014577245495007268490615331722538544985289082140444024449529502357379861719706677963468975893175335396460201798192709728733418695764556657821483397518917308261553838254550936065934854205708095179388370930520704476427220734215636183130632656025202922078496229995637914820179552357897729062325560579237433398879256826982739495229383352855122757773512324406939470717786750039058637205350609964271786162537778724767302284095814769831468493232684202147128719321305998905538387272934128459889059556250243006687804475362609401335628297321775134078672748370220130529173440637145960472029783202111525184066505799586270903393763390325163761197464332290830063576642943604018648839514117189820906163378268387457601365441145593078583197937697119002785911158709732425316235284077993752661475963288617226570148759346594371139404085710026263976679632224637709933751801257894219278873506750150949918122636172860738625338177440493473183312965350488882138547086271811021928741667671706229021156678031881955242721526094529011557889629206887017075034494377781428165877489903039541826183750038428792395111102347884646292139023196726996652136432425491969561015667718988455210006378748942422680134508930023561855902681964290652882921317627678112653494741264307432360973053821352920825123408799264109481259882347922563991412049159543715593747550183268883493122756301768569096321777696057955919822809036126766013469351433349404058978436883423455296019061066039516703023970566206069880184300086098504177279105424917194530581704047737758086811338610391544884760982597500207683488094043974745518330883149207686153428646507182774283718366727535856634955658664691307849143725145478326473065487256266151734000151415286826441590039699511027748909185002487777451330708894520406955432834361317412956688901344423908898271162393933186796555195266901580398869360473323877220619429197841709190681402314167890314067294803061353603724219345536670208688042802417487119759202834354147953468812258424220598665050357865756637901961530002042770436606864034202723035889504398267164423633904946662218200563233682773043177655954417045139092483060812221887937854034529196491581056454649248505815923850455632312921180819371791084597262224118711925856899310089467095688853773330253569235287864399170664424721807264485581178792893844045087161534666629598447978420468223593026071942016287207810274211511726806280644957280224146088984593071055763938717075577834214926924105805350969052789564049474718644281003219644328832443983772734809516207298685486969224397599286624656899617331005041163223419108501814569274456529894144761482758779551623891094467854213235468608350621000673988935836127950201762412815754731142884120190477358027604393542617848763118775227201790029303146210839386298554766696780009372053275874696498448318958561803257274575350666258100963787076906404181938774570981151210706465343787738540752529879543419713364146163891962513805560659365245802781869511920815667764443127142030625065612659171076414341732651042988695339027366439776095089227788912326929241079333033578674550400977889862672811086164895760720017489849237586615377559889873812908990532790892296884950359325063185125334139319975569135429487116386361392891717378366386002406662593462721442896520563785776244083604963648702467262843671392828370125712705203210199571046103778260900108072538453055392686617748684504577976708333987926583879261424907812698902172080932467716939414771833273197231345149303956905606862303551103395804345924900909051083557131326672692488614128954161023133153073198670168883599076310109929578527611976925519516529106988686980848493431157786451504915028262322738178326528465500154545831677805825115796996994979876501263564239862133099728776712506124762060139395635202421486493213093709066307049671824994843882004217376815763493839828474512862617355488503038156549488387740631484388571468688003831585437363286223742212730246317526518367260846702304217549913758538635287757478664580970906785466014679033480885565917039791785301449577071863428566458975700306492134247480181773486005050587933474818306684208950913648608481435866669865020231095268279861880865155961768163800309138081193112589788699334199311113218802483914676708362995709492930956685632642738041872993685629642124423772833156117292874656127846182167825824682945367206545307019316486654220019445331844399276678734099130224702454689280468556515311286345560357327773022911479869651125957124178725826848764700834132827437341694152584486195852988749722429159117449235351784695724439683073146122038938979245977645052624562120080021166374432862794058468781316783620819859431904993371302779963033300802212308147385400804896191304299803760652954383807054866678596401355648484898781122677643300111132750232824546425686307987807579926436513332600791310432721375146736801218661071875793219321279508795986833969348896248783039096871421859956011823211468439724180658350585405835648076791474307212854805302060661167241018956106692751952670494206237130644156157715504793913614588393572571456725251854515754601865114979489230209863940867912234037642946623758615595977737354587390453831544397791527480075385293194722209355903271153017664621360369217378828943319800422262646765499034514687485286306109803898140494169481460253896654751926497581070583166652759003936885311363702247492501944619608514721379840665164752024017993108648162017751608244983440615155950284704265313488055413808800539221500742760173777883325099555198282270361507027350428732735843041928062294522148162421590236694657548560602889203034008964005940615812328137736749944034285830591370402174072108922782460793313156071102987956246193730362125955296844693908008611246673794464995751350221193769554304777153959522445238469036409742667504062112503977645570140375281378630049039341954038388327646232886784922372005820597302866959905353305793977285347344909334356137329508160580808412281217341003015239861237142599314147489388155821695501878669307117563437435624601265431474223250658516678357110261573539280118817528792076433141772456541502153499265353856299340792116121139716606833173055248764004857201238727261775969160449564760255752142256145185483095161159817144157559205271441318672603525866778624511718892478504455328935214836647494762893811739261704904281029998853248434380683417504545194552703996175642850031013135560169934915911420710234303780240348812640820107391271368130507018224411020392200585713171005968541566797664855360152162086139204739483393745345057028131184535358223114153839284617244087973354767148843194182523358715815274857097483917950768327090903508783164809452235013601722787899444326816369336227761601086379210045794065426641653720662639481195803358100396820885678286510599421758610901508562274588199802240076345544931217058608911645235655852713262306722696145509222868548430138411530422125893158408008935571304374024608128349597593403306265122121221542345121491415938743509169653233396589852284242500687665807919178275093750914838984258427513791477281387792050275685354948744946933870524231305922820312040450295510184223513769266642123916437690089521307925890837227442466006674922252299037910809493635821848380497185030297374669678224548019218022813883574263687517192130774790389539379326084194422388526391853337651519893447310497161697578231807470694812651167159543876512371547061116856081049370348488821565053935098656159190513043642604483194206876186820052832818526581740966289081076887626108392717158531962440742318026203572472678631024962775986480355211800779170082752120387827511990241921777800624144728872624907303013864927641145531911390254830438864938217928852091524390044918278097375429541526252329704992821392895578175456026913418093874015788598515437240785135576199328498959839826002139102391808366111431567618566721539026170202662663964353983760577646075341239814315422584877922835033055578076717074444222298651974942016799547926915856509901688262085490516187476798096887457028569716441140930248211274218963548677009676792931657389881748221763282363100101224108245294815614498725710984728501826690444698763756825947460644515330830232836101354943851695166326793843884011963259502391218020609222132575600179874612770756289726157453563268143741446132918910413487174841144851535178519808610776070978841159259974157289441462914848077082672251068694257387156826934869545387071497051890818581009218458668108874155167551253946944773299016891260247547682060025815586896720154944905194191417541469226445173832063074257926184694304733411745123538204395426260990092451560138182248219974661586446930189062106086496531577533154447521620319190193541201003573483603813337379846973882148220281276727246907656169066141567989984343215831570071805986692418289467336978911634185256554905284736501873195716758386968756086782965739858882285852091308853072793067512334406902713874188939007007338396919755134174075670850667931967344812900895107633496706164336447193591050970431514572839061560134117850996401450671772409033285073560002336916117428086641517334054022960911618475780731323169385464557756385479939445016058928273082527895057444962145721923340489504413645107842692466385241013248756960429864379233925357445226952288594859785201833275475175780020177460357072533310060188076728625122915049077872549561057282008332716463459013998078580226156121550310490183318990395186986762095659494857969140188664861406752297830093756455847281603207812686631308126841859865280664584871282645598015426044487699769777622174287598936167655210692062867843804861475731520087294086637475108548185997004527294978304200613929132453468683512981599261901554189674278961663944693764717598823495509370174820991855552804576868929227655281684182262362216660843845369117051039361412789459616120193168764397902064700136414389999227433571728586230645290562360972940079502192240796354298515273977814912245408623344767826685085923254866445911104913438155377604548173849180631533228034554480131738750586259266333864236317495388970424282009267481881650977560075275817853268984164849140178080314065657696060806506302497083970372975042421954587976194491558921148046247830955090848383830041637983653015214887149290516622739472500248854087890763633838296009489682081542310315719397021371450342464612507492215430470617499705608821165635592339383407908179530463685866024118440593233379805888983694820537184752641297278074778850482534658826122099229113230226125186699021475378202758846084128590375136116873108569141830792898208225444764514985582408336011097616652107505099608280021505566199322324270823407523391695264514862852351620970310514397760070039121633040288800230987308608687924193723232627526601935098620334876928059011471301141853311337143650809061462673946867253574018008021437349130710925902124745740125777180011328604007865245645967355539132536538191451841868196367030368123242134938208952522602204958654651534163746488617287442605559521829947835650754371215453302440024977612704506085633350821752345085841988892009832186316348766831114264104284341228106000908543113750554326914407322914501749468273532137403670056294432289666720552539867826697046542810433869667797546892330744804164465963376039121757130503899155716690225128125752556097909238883657524256315874695456154520252022365441109266855815590838666115519026028696710469712657662563013083399183501954500167346531563640184853320235100614597337175974466093706460671058926813123962585771504833046264973167935816824860401366100058677252121472260380186525447988404955975033997296239132827571136699615695881052544293128732556575831900260390333371741865325669288248857792082613319643058202456559107974687636078247766713341573822339346093475582371710103384652653893330849655928150725884016558891733065075255024504192870732496412904675197401175313670347250779243112484786655730030425251291319332230572279728551614119181589943823949245854559887256125988169807448260055522908008070231136552658106018156034981764282961643487192846696868152996858073739798975061080874162609997444595997429139015248733689011165387005084858694208041297643614286449878710334161089499377754093416211202394169864121036740043593367376501338633893403073635904067372208873514631499470082668514359759636002377451803086914324513447285121064343451835260246132660842966844709429818922137878301166547530121490481893326494861730194289015179030776897011657893697428153691410219029157667774883552851365001889068482030069436258932336238232945456681195562514385622458355562119536946697970671593261321727101943251051448238463823254643724794617918814154922048678424750068020041396264775672084831731800336183987396198766277161869864989113620469964376360588867318203382847854040906359854675291259390842637088607787231867727267299533799024413173359404597533116468835727824794010735961549232660105023020936124502290329713666284035363760838183678028425374306538904680820602613663526000184162863239193761128587527147930011113147746080265542934807670514385651474670891597468330804525796934051165514674975816047752646013651904181526394231165438134027910511423994137188036639732003179210491096031795602534970281441941673133796111095112337710225481305619569139765617965732353990538470016924797660454745405906366274515709121948220565384969182436496069065084553196222536870091817565436761654237677506452180570557310181196830429052793292226458123831246870269366633278522579353153292699187070172738227312848517788748410343634116769274891388621519297002634663090847108055406926146855709971821735225623575575485683292373267594714539827504375497965240221790044408460654756700771289110584458880369785749971010585093378960582539037074414498232027595853599625379404702597112570248069678978167835270823175596434411435540492411939572835923393104180047244046946711581783227834210990952887139880615449570485192484757524313124703711439901638403057331550887203444178106191722735603376349654574677360528236726789554295406554731666998014551755649488426325216233186038906472497103154637140318253843774839192993989211538459650052184795728193390639711845394048065284221800103484348713264718000865276820218988668691416952795259179972638364942959222322743397416772033268757017572988264790389088629129520916740070698254033439376449496969384602521138008111014844873383767092728495779492829515151576844237319288987281618000046667080522028972290502354361772802791161707220048241174390868480987304450180520933335923550501824800954211944412502874067082080803480989720495334486249038517148664451266395304679618381489187708299917055009032971275757097957342326973837976708458583961975423189367963184535596447736806708866644255665852765157900062333044865576958198627265889813468269829795222300536137296329952572569706583026676768776772303574750353281816394024930701539752327269889664267623981097489913472692520597200350224571845922158515694386900163347427481965822554504281333472574556321406205045421670698204992799244261077642548603991913815521717656202838289170006074061668599836877130260715483220878400253370246233095425011982457326161125419038922113181984340126303987243456493457822339172893894637318645577311200004396677662273695037291845572761151163968197366587480510678972726094398706021577272437936167705011568362188395622352953233479216253066138968124657025481511886488465265907362279697137359870813430452651300671070191398393180078233876787337995165930442434099629705909774528547832092859643945771346246830509346624885994868623128863325805822655050068107007765936569577435841266292685209470430512057312726053928548062849340795521572592281188924141790581473312536139788021456358747405084326651150765336466023423756998420412965771227418808277219039812422717017728748360948095104520863704284716465377124640839153029653606580857713908290720015074312139492245166532671785831675845870198832219713889051045798466944461765854486845248168872905596850434681373267041217708029113265244858620191959906165421032195301597502600662305148052890236787102254352079578910370086570027384711135703032127749942254254021575295988761400351014694628295934907595855515097642374720488561079797934640642816822354149691593724330273975488096234738815537273161044206523802619002172969777702541527501879890239787471510334635949832895327062523802612072660451941414793584874234433359048169155238276276565159704961598586155793352271992880662062048606306073402905138418124630713374079117479155270862685154123613587922951373636520015568796567186607840691421535962293680629232712387586116589136591862937469635885302947996346102656216166594073067044607017006809382228255530075643696203490732118082244959899342801102958913720806602391723322365905802264601325177059433033020180600897153344154133220756382995612648556701427157376284406807095484818534327322793903572275283796275435393668172263769328825912299723063603357845267827879514048514447595915290710458025297639611853080458413846839734178460384883462395719664741706816798025544427877460803671303145901004081516931199828645623113689944994461339450811490912354622846479505712005247757919661468063947799897004040741552888707877919268001667397360088700097988534892112872732489038074781071529341190018583110073437671609775502288695671923152189948367471894603250562924826482754273115789903790517491298906832338006556494958594864356720291607421489783345426964366103986233412069481321594712929802367633164541164508932694507875450844308568870073845511492717938697052656138888616864782688785879060524395884549935860029583018654899144296606947635580833963526705525200913761615938437119024365346398781178667472611299109358675015248836954192636042757887821186875306633699417770227454350981365330840189056784677169686942581855796641733784312229299885708190198965991213198667789760204379597265170164289422848999145697715785539453646769131812157498089348101137656207164532897024561932696585836987773967530062868270770994041401058589688269154810466089845240259836370983870225582777580045471590800629175920968253393552932239107411504419789063784969492494381832312400844428926718925068951611683820190912917468044963268469258195870284307624143401383536132949113500620086518461064778571475159485148344135836339248836669602548347043350727353437009393441059220214250063417273933520407767301251954548648376607102848397888266919709102107646482598266794890272249488474084107560489090929071872424516251783910637081871798016184698981738574991864602026648298622964574687566741483961068713386886311538003230861259473076768642943780318030184139442505599348578090888848610799726329629797189048443478479309898740700727123346719725366582570258619937840496487440550374425865748177616401055295767588875209031625983602149916864247597043346177233600326333370619615032664891014643331859027689862430041967452148149818748828360284441236247424331486070583306577964189076347759372019431206316430923268358397462215200021231740036213779106337622665062589954001860649180516517230591972595874047035744010088542320254779830731439194369516300916425302029438828268169444231184268442518703291570861975904057485434733410247405538376735448332604659306481895493353968457460026114846128650138017416703527982031868022119560913635619007387695847868564770972858145959766827287947119175804923182155374717352155015837887656385651048261227216292702379456311056028041984387231945180833254871693738071434735363128894390724752093156219288353382228239285780484631138462833750923766111619330469989943222503661894002711530249073868625782336971641870524390689032080031505442251553506067492765753297035836835988104452834302837449817405728769365258314150224217980161369057062956591573949111776188050153900206520944508979559312699408576373418057751633431356180209682500222637311979204367696192095045531359224502761572095721154617059909909135410503008248627179453887906722263301059455848449890279212997272216631794834728469554676857047207858433940814832840647189317538367709167778354254682613912223277936472615759740590820148094773794624260873410928405390168694205713640439818447254409848098813653618539275015006840693187642103169159099198404028236346753725083240139775294361234664339747037003790022830407317841385067283591710129986868124677435667234222363938889934312377163382828793295210383141207702583777405327281093330658678692492831877108327001459922556116363910779142780404962064540353588108011247009284654956440450289968691946651045056430230878236955431906771914191786393873909877248880914696772566387768773736374433288157457402871020028851252080446907502926185605426424985841407462184068972803704437480740054431251438758008288952984580534755236918046470122414799343687021872659395321591729057377769064527552503542721452677294757110489726227171462495958823529445822095994377533923155691730155136057106920798865370697550450842947802060405213145826860867110487090466531189318218686912856014702599131962706708471781704218967764880469544778771721318018505251768488419005778772784733497098016673666211459819682630073825927786337273093523584830326235156644059614790495249570358875581128309194376883782988158524699374770999935021229187551953216944981389587177687374381436492725056103704395228608808172292390216261230419537824164865854003181528000854014606978068131071066135632859008542870415361013876607264685718777517343574736366749081678107686512724560521319189792972057475254275116299414240966789749938142465184689162317419305314898674228480736437261997467030397136658440039035931592740393927523847535833884725120618895638347138720070656903689010287303352950905891470431164564955500822859716176569545985349641994503879809091610104121054359698345953295717422925157004796047690108975042204556885958243242246085182288566688922344039996594509261558503193047102117142170514799749686500630153017725396488510472150846023156565335056491991205411489877850087768406289678572153761350612414162417852697923205585512454182145635778530293355669974011926079957977248951825148637218896327163744906337271067171104752987208198212426210334551772656065523270223332440123402989094729088905758995263047276952593683680523848621271624293682381559066771869097233660317382152362540230791292151529066657214213602636848744848589209279897062666975786606089054605588967855193689635607100544113731851184978915110036583865310080798365406044439122253309761047042518632562802958362014605689692347174444439639951984587659288637157784199263062335574349205296972019601138732412214247430603680266389948748974840012167716270719762428365392141499221959637076626208247415198536020832815290059104528027219676878789226052210161634576062247678241765593701350382446593216575729573959405312520414307405295465950299105828457746478591549915731615971156641055187634261394823647611166221698855586165790650223313915935285171393178882823169601685511897934351839871212310388623914462072483526966253374108628315307166428204610801437193658124245409887632290672724207891044841758691699562892583360039630094554907477456189175077366630236257964278665556769143682204855931448654075328968110957509008937710150526521009236628563785262130466250439566225360247556446528254872516890056381442212899904246293567658156488963522986268948324300438820860267384781830332983349374171450570528437031649291796033860216811304987437415667096451151515962934206507208457920034145994408724891764331114224344753796433875537194564207598340783651130780152907432373527626301705870515511525495164927603116862521460676669095513495757212821550579063882334249602109723925120634881383920343598663295309848102504604493064063801640761943466386303935791286496152836864309968848427062758721850238163285078078379436291507012150965306628806021698522213847327617927345342032682559607685734290595843802117922652468071011041440631952085167173803418811953154644070489210392017094930702359036343268028318709864583605156128317285702531040755258268664451371378756608240704420309148751009485132561971095136239157121775776995432904814409282222232252727923531673809659844086642885262695943069169640352046104676032395613521618534229275116008346696911416559708280610217643206212679439972872018766979031724913584166185271578902052526394858320006711663437250767430276572744347631773831613554015130230367128415386005045199954132322124212730381698965301012541861740820658154967248162860314326463540479272103220760624503303149609873054566765550722574907432123721950362032406908655568633503833192973314270778439938627299109739502664022747805803325771375426947348073047853915030992594758456811488178248709568946733325780494435264177373984804793941635565703007809747180715969997420318627011964351402874424978044151549684854350786581830562097653532249492614422837541100298618393160616821837074404003759878064479130871834666304065046368760300831693692335770730860812609786669741546330235801739068008343225359464300488304233026071356930507917103821198220234069557609736814292745048274740912937435447356088817473117261668284648700773972702634635960904245119447739853236292163040341819235300871250688758454450966572616884402830319262662719190322334889201568085371561516070035873265767992605180379821867463945153089793844462483477685333133031603814761266728339545321566774167878609825345735768429870938610101749023872511415738199332078115427112809421434933565499864054401801302452117979368833245520717835501936248583286313420371066638204866614776529797215816112152773887221312088928468640765119486314152775629017880818304564688448880233837747454321955804799938547453685140564584677649351872194766366729065655579966237262513067101953232139884914399303915709016601876063482356649023558251296721508820534230461391545771399716232273795200550263573373833786819812865648288120340505957073080014890485855334124465757092844746285655493555369436715435001958652795738273692184074211220019929689400528433874169170966352243125553372048534816524785579397987087331734818338866621605706089666417050115737526043143212365778992696862308711327145733840541250770848708365973759749341074173751015102575653804343123008470599867956509567032203835591054146264479177242622248520767205819839788067483804829075453874739208586121295780754886506130698628379193541227803688889763591833363913139572676805642741797926213449304561661024332515464882044438149993521876287075750894733252943695571491616134393336825987631007639009736852907184849748572310897840785608135457638741242694581891103953799695237220720465566931393484545385843025745211072354100915878790907854020532143965754910425026316636966797843068319686810587822137124885726920366822486901424451223528311802003192079765151673070630252204614180949500451647845150588797708996146896968458183313970534867443949315906214377074254547033686462395851827985800848733146058526635042859663239296241564465174113992110597185326603446677983975132071129546473629261033188135033513322424703352545067869544038994052255818068898578820104294148414389319664979538108201824703787546319069292479636272755091781736800416010258647444972759675266117062151957356828306616350501671012719761327563403659635931542394042392057299641343736529221468524260324012628697544200379353533470095989140851232599369099556705165219137234728733628961646135156955695328759131326218347187302864440749228880856539183381793874265041960084047823992766080197337095549830601268622170667404922735222511774405252889137005162518443137079102304849459724682611833722109769993263729781713752881914872197981612796573816391480086673230034650126437837252824152053223600389211682764845161301999011897217464594793110121104025662750251162727524421919166051926715074163573088887613307957798891422615132225486539120810952292803813607423355601744997933604907436853415031234617218166324903588390460636857919406329360242503310168541919851513074234319591877156306559105678118256905994904542458263528225164370901495066878657196714952432925050807486719835570773464518628163621546223134702599952529188856353775956969988109063350796625364182405919213404858926617054077017286240717309494922337361585519817768934468660516238348901992783989850777722350825370024767535217709405304555713903478529991477654969472948402022764133849896372209055369743354546569299347886827697827617671354255089532658028351136965904500623651538142037945378948993105086383038600962328360605044741995360129372698851414262642101939230935366882168836983619282173747281882891992112653549267592165274493684091382078312330252140949985639365828980349674466857221646995611330771924130718227235243247575858672959288850582690896564643832246269194676902289658469089898097491519983581099783446850447127756426388614998704735204009714772715406376314945180350769417360439645969570541483761315096456693019480561709653110594083976666942137950608438596220032340799801242756851540161038783613618464420728049864830603508054266505172417139965946751134507162754499819442404383821761968291117973125987598010388319531443700032580331026443132242324319714109759061249873916215368631728440500777690393517638868386448235042085980612748626232985009819648069230833915627951423537673585128746515437074754122935906297810366824762877225997359364774065374177325132667402529362751284873444981164855430250844820846113101041062952194297284283047051012427420619071711016878454996462657113647556279169084493282908481631222850630636652241755432740376267323673799816404108003416973253601847313441929565978535498668980343457526964139160606285269395088861929635483291159723841192359702930278404443219416248488985533042680173891643189677197518481919107568401277353439214257445445454857523294156900970201236958152639777220535033614837102948685208553584361075929698065505968659589499710413956070530796446871260111380147230076004564001971467961131066846945547524604150879176741549781615936139032172334555447581885734944135602809500764420165232322410360856985689389076280075571525747547463124237690222777910043579168073525649239021730238973432111418645715317721132455811111597936213137107096595035185028944820370928499582438761672076194293917213947072058227348265163101312435342647834094080674001656990853983313935283698834847888589073967552296412915425125670697955304424341131917582882592820130659777848117207789410117366336793107939178035578947207417857293391877195818040443826624334559758778440843285674426752141222468429543541075191540148149921719907734994542500448362520552843567613467699601627812239466683210519388961152729233121203353881276707863925685453387333112446130126751246990892885198772506241723224178231632717925204554755705611011030056082753291314054822309552892805885567630576290197497826188318006554944952478239408578455236778081278102982779624443703241396573631169334711314473971098740218211917758672360312348414396492913632652778197202611112766073247087452029791733597505184915759492759653965046834563897392839767441849616841618754702277153154942375443726777423138127670970950607904420678599545151801863554204419774092857588783374940133884897752618360769324111827122198354952324754312316013575006593238120995886630509362652630255683158082950272792669441536335160030720635881685972407058026255947015398505150807377964417811472563482153607346241280234403313196997873405454217431631013359671190031746201356041266052072686486822620425712542893093301976346958882544612093058917597805603167353161459324864828205402674639803107678619176952522030418588420795709099719155921181170057516073371696577910257462691175786566522322077274411987205272669315578450549082129184010831582037377755104981170230905485549654504760532273795606211336831988251371112950812165495166510997596997693582533545774944839294238395909584360293837806660712837869701667818164337653223668024266818418820491498974676139901218530742184666361758678695168386032947684791285136529899764927569692824376452400761926950149356411902108084692236668478006639259708295498512691120733338349479038317850316516577304631271512831123545776059406301219158243498080548254772752659546750472962170245080196140296691340391585734143525153178937522740408748679612207723983420584408518886716333347717785560371849199867758010709146205483747762382629473901659479620709442889081853009852028653769025278459000877303087621511876990024765935454173179708085629728355389008809467267278160906404817505828859881125624679100162992409358795781669865978575830165178273537748014039483291188531598263137788942651560629577810733084337325335718475018332120812677886066267065582717724127824268917621237015883703281153462057818854292584891626840100770726871261776798412748761208944125749863891800421056685006926863744617899827998897591654633305955371426927697637089165275540953388210419733889161120623958369786617793944684676363242299621419895141791285606431512642663351891911209903541419807743526016655301129677737865283504504104379258941857589100707638358569264039461429024101367106460354882431571556673040681644161574525431326785374384901395320168938967145375984585121453081091854696311044748208502574040069025764076348384106456843619103801900281071164908393283379356129090422498615036899548480674185313499986420821297234556881980074584120176781216402777074263023189775633794668916192442716353908160798170028366891944734263147287823850296773237792988125743658151246481601266373109145116489291708486889947564845509004574597094793317058096306015198337114330872121112126075688706717358550564153470754416909771632717875655318021990041709927409595309300611454311921522943044910409621511007196981724939826082215732444121876075012642606509874527467300702909000458385846836264912364485349228099858739497660035458788825817601790462963896240246523289890105615023303775505110757236200523353965966401639815847921067744831390197006757889218422802798548883787077570340166717263848813366673881043575802508579505872055655842475115985091436430096165077553905044505505154795630687368915119087157428707641448711604530629262339071584631676433576601269761389024084777297053591888980345712442669750512545937375564577766272802878761222794810500579111620088861021041188491532104252135868215624450270132886745805843052974777438623872992864514125494755987201097791118781819628174707484589804060486231268633006889290518775024195190646306679376069095865033766991769991273644186012303948890034005205963846425740368516980951013641333325264975913690349119994869307708391147358216169666354378997412291611998164635624073665253332675498220773641654981265587877691012613450593772520217591212907365476046206387887219320451124113351665844505158918263185086147526197613122279762924155814696497766347291068933435515356848816115627776690774904074074288772339095995816402124846148095755765549083138978760947058498412229550944319907138927401382090467586005742358087481179582990674948417406433616893175077504277155817288170053423907876150041336744315955698981199570624241444583273875972319207073946190443840928988740484089975524795474115188030566518768691138606685565654368781074811126266909511055726487111862608425338328145485313106003441544517623709725472094737828312570995257586031343893082187303755392576783781015892887654457942865930912846229731653785043481206667362013819089884611666934774704990100221375667966565111177294496148521559728707516149337730907667530362470683013015539230389185684408029227753667014360429219541854504794682828141201821435847039441270506222456889154214323552774649202584771779582521451390548088508338638043935834783995453127260099625074053752192267753312680565022562170308192950902697701508424635511030530102940747338040246255837167227939970326828506566336820150801712738960339461203094047277572146028897446910880763704532505139582314456310492756855709611240922028636547128698350703296408574946412917196709988681878546110273165453296012144902209947888639815202158606145938012799417401830303363907172328106083913274703314948317085924372867079235619527995721012102857090635805975051282150983348415250623724920830304438189015309309191757694139493134430969476773766151747874507654168484449582809314178750305804006428414362170261178993807788217656284459125864043105431816532028029685584572961926358760926283259948280012091998600472556730464288080204681572941657731766360719372718705797606634859249600989404933133617708548029796304017439028498241006252298794884441764853305656285901326908552927705066759439312935499665930490313493250770777463445665401166083617146146120105775228699626628287444600936613303931728681508516742306713995374358346440663201952679430156538432921693876601998321035629618704924598456726764781417215710179417380393734035932603924655867852545361951856434959845226525678230545313746973653322868164413841512878544297757745811984649027070117625318846635774096273327228701109173252896815500313082753970389805207173645848908704459889619846538797360991561297193333179810044484491622827306649091936475799634535235426396941980205081686281222698525155411905922421660028614682783764959922869114611661499361777195258197528391853081350740839792877554075539991937107783812179465839369933726302987896962208506795508346988727994349525167134517738482107784211829403578078445349950966481313216476608685014561477122228596507303392904185405460046929093534494052800425964470942465295599498463853530668966661767803024406897206426767149280495551243942030566149730109847372714135039428618291878554016549768967922978969089197822375751282817309339860064674293489832935503096100258379617837028894138009966968932229736725075113891390800965359605871642885795015702701580808151728113999551661324713277783243282217254672057864002654378829511198865443059206055537969839803133819245815678886008481306342758210396273553809912407662936761010397281964486896428835042749203149136844786831807100249728788056341996729423457454974594883565150322963499349312888975211725774632615606278555992218157640599411484501653285025329675124627210007598970985222472503411960984325068057401651032482151028663633863030438474284872903077451144187527098738290761092270460111933823864680554594222191453942108249546829820335387907926847072623498367764139804176438058313978310383551361822870758128477508417601057638886137262207835764841729448773066952242153175293857032330099359939258212825569200454846979977192500937544859513494847527324278347011558701296664931258803462479279635336077960540108923100381111175025572889710239995068937715408231181692520327411577158332128099943898915367919379943910741034279313032534164993412087585109409032722290326789872015626783468350759155232077368970064819525079751381893480347626084735013188419165557855074060738567370447138782875577785117817297082111743459424581840949528643823559965875936933218681202055917779976463865766872208958795547725630342176513019363561389870594191402983176165247198148324207072747873895471309462959299646554893476366936070736659339795873820119389912326323121348109392650900504155732756365204639248445382493423512684575167857157831168260532491121260851804362631376901328079662476900481143093147624475408177443136575973690930856205470256759877799473755212356391634488505052313547009992749417628266288348656758264604542022082621190454878643165298966931673317920296596754214407624094914655678250387273200687140245066171529011906062926255323122679480944192426028294195852675887862257708205790354936462647489352115874888281602707635851191095294439117710748061729709441697536973310219114427568434969227490197687286019967531149769773287368239896367062077035217011633266171421071028790936143981190226145341445059158402700764689811176396599060401515037394407221445303019993973801554222512592275728431153609554626215654369610892785291242195300732892923147839717751413079328901005162555115967713423431058831286732232807951581588265572528306149067567052057232135011861488200302235252183764732444021437285055474446850714953837753945702650595339584537753341451999267385495643421175851505502845384303943796193662477316004111191032374657771236023051983904353075107856672812941020387760353085151983992636520925433593344687104329247843043174141298007018616349146693958093574356917063073687822247285217553320997781889942102094748976173430899896486928126365115260599495722323585033517578428100847230891331389821712047682503622875685000979272860942295748141974459718856879643151272542115129096754264758296905808600962201920146945092664300742301940163564325649518848144316184053744757651194700274375983326286527755777101042791349952482760070234614005246527550417600561474064037435210277086498613075903187291576974066652977757739610843139794958767365748204432372657776647456755848977608883005620102426209203444486688787752182223627010225405000791274554162282105392089775492214789576343909089926183483192207718292119327944831345797061466319689943801308689086125486937225821366092586792200660229705420207986842787590712239650271208394254576600530395898590783948240815351792153731724861553911116407476145356807908276817656417136089585390406200570451554228640967877832382880928226721688449838738669716082506950844189270337134846306074338026819314706050349323564926307941093184061519626600653630271710214026223158692350046537270643281339062825005075614999142819760826223282541932766845507164690187015876848130917044267558270662687737707488859508573831520412231918180592076568372961827738747393059392817720467565986020739423245138325867146966465127399974823296348224650534915392253330018166299444967536623832936914445697250475329085739870034155451619356487190654217217889392809369155178637558144525983527342854338556786727153369677115123994725077332564576049930853872699605110325527761411608376638198510497759343505921196481146532474381880446472920855149900170901944659548162174994031076457709581428540021126379606695993992968312347799604475397850296799871668778741860670429410110807028069020291626280398584200997370468186733476963906744022221356196988845853568038353953579759987775352290964226643260779950223777358279856857784535202636730254284517467070222157048942441970097996063160589753096335302736414322793453591393826250674888431310641800618549568226186776123263295617930549286175858510191249220201005480204054962477214336013577363827714989130912413883578582779414614306273014345338498203216985914296451084085025405917228567697611761422576804634576647867456901754934119689442102508720448467277237042172244454661551809784998755640669283370063986120441059432195400100443341610352714936928904425388051760220729549208968412842937197256753991081490875329944444696257805139372071650447754357005731456613365551712377742360747339194465199985278607012483946759608459733967097667300815332820798323559479273832532155635959402275280727275416801883359528894697714686901771739855589632484356931343174479139366572525712306715020620754677503238327717381513180989260287921611301785851381436670001169379710590516695636213157076067738508843593988899993375131156743140415204201844853696222761259197783919255517737657055863314287688360153260939502905142419354548852434033689197850568081049013605220086960926067685095247189375244335502127975213604785891464744464685930327882784138989042906457853780504565488427424221795762544654670948006346214921744678400943458923373559305119015377865640651288216007762134467824927007827450402750830200339514266442180632000421717934431077320743683967570869965427605643718798232042501867511445358423133101903855204647592410017045457787765788609672647018971427421796122235605307806067322277979627686659572437874210499093365162725985313913530864847587073123211406450532887077495693302626107156586264953348914093349093236484595560715600977736113749120948992853920315908962126724944712993231823681679515279417710022942299289354277702986815473308955773159309991931072102364896028191396805794991832388136782122727358932626963787661269169384025261028473304075302730974735802905021347625618793723719849863482306012597733662447353428751999261555564824492748954538283582235962054759867845853173118870116796012591179726340787873091157547559660461622893531892920602464336239771011069250410874278975101867372939340476487231283847154130137260180351001613331377046623215866411506459164343149314923089121891744871377858735391892512749234852931549875293724340029907829719133206068896767389272871792752557337206949834862879480592279219103424470498426660185359413656374805304380873904724572959215245646884457380883525511497677510725695492710478328509028483062070455331429415644210250550279785161430998676187472792356805482593877222618485775955380018448436524833173530410213087158468059572771562539549531895098500271857603401496715868083248668880529739359117207892938329808173753136129012690249620601633825741295650806838585342135053378561577309056912555958713104387975221963656966317364510527597250663407440409892977569209491058486933033486296246960100492674941940224594504494678599241764829653593634993898010387672500909967004164321903966682162976381448430562196608553602233887049664254310898715935796447730767964431628654092069341300216823650102377190092639134164767624435481646063490824279804597340379046258454445377538697620293061950399760788780333370756574074399645120595860708889646055367633879172744213822336151070690358729941584054658475900214037089401103959191533061287815038792501032979931922325200390561291391491291675089396835441217082483592501733244859284152876397787225579970100128705108214063267643907511677620244154829986713745946301573848244880830529159383356793074790519649037495658383060343253751442688299899322501474708570014513432042469338508507041827556916784412688654507916729666731783578494831585314649187713653673419640804696497359432884908878595447811432387065869060868221113071479589868209307932572259664017831010487323643975634907160911843620699336167192499074941763984178788700390347346519271893041731975786687987481292938551142457393118429106308750044816904191880559513743445461860228170061522023411162179626511474812217329147200371329652600513476768849180700344694637043498200940911393946188827534899641502107753523472822483542101361439028082844598666515461278253279360629959873994893867997199697331772010854679948735458097357614504944836702537505837910037684927305904344073125084203104306793304677846744957653122852053820894167900638410684344967297240940927825159771147561338953197571046148899123251281829411750146551731128034907963642873095880006232957016334378938575956150535981758577339222879691446281243095338751919416073675624929477604279355353123378477388482539780752878792899224007679801168565199504592732254222914116907599679605125336417679651539268888498616132558914439271458385697961544437799845008604790457972041885118442260729229795033928265578620341819954060209214036659198788641549169778151385554782240387505348381314790883117027931462422503176192061120917556551692410566882059942916197215499631637159248492427300620414914939594459784038034712357119047061656128734566997799640392693512445698852033586399751796572069222968412718791661338235067105948604249995967057589938785096396013209201612391085456754827823128051598012605767983956134417967742006336986633548196729146531186804284568210289004561311739659937193975979762412307958763015945036594691550723191860619690019508460957306592202856941543729146072814018363318726979441518448435413480844800048346709697000428662176643425183935975693768064552404550542894272083414425110539727120651074032909970302185080736776593193543390934849181302191983443229505279587905846339873975256460534845091959619196161358025439003492203921193589385353962382375138795264099828719210453927032854643423656966991058577194628907010551525931879568927117556900928656215510103462542924519528616292052175137092229992793388391564528389594660549738578434133548108284672592308287687357274859126559069748549781751677521979952716590475088625874081989370534440680954393789447120918930663321325704756597709343854403915250406872111027571726373588618771776808398217820014106047595096140754451308598987388685300988579486115295016980312851194400321056277487051265667032770054523427426736051212288899474223693151668453303726969517144540272809415430432402367044833714161096024726203534013586560556561374263645019505992536582282783464574049417808617845170728556268557120109805043217085003796130303033046423125645542636094617129949465400431261939522200824429744387508689903857063535388297442567252537724989349665036101981151229274907589221645680126519950382103350050775387737539328041598089791554231887314282810737489426034776345785275055517531304261780537458814943565314625371353397590487470270372576532771941050129988611793525176600049016362303115554193868857482359399128695943146866347879401813595025772255689140838168374637187887616603222992187063307186301847510283029491195306187969286980066405877328993556959572686781708600257204556201128818623522885021802456313825931211193892890491267533282346417741427946077392691634650163968371773339856612060662348537061022545644315944502443856597329403110354771164976552170086838314201294454261149560355928403310224655590118599871396053199090457933131171632717128272849487402814338165062683985369704350032757723057986764568446572668909676918195653528579927874682807437303873255009115884731774453176508468582430911699028455508440057700368068285810585340377063540419644787330595476214067751957794237849930511229431264892051679499516675461967176437026305782093562086590478596321499708051396320648141480917490114858617044304401655457521394991256361398852827073274705251181357978908709878313473397328460704586439940586825403088682247389995075700789672537247849143700583352023259642316974780101496909453358914836592922203650564083156039971578560152079372875386496778239939708045842978531512782764183404071633388019110168572868348868505904793616017930475273573914401849716473278151229108834435041709474830159026601919071307308304934425918193560679654264720483624381885607776253204245557800169072456684925679054847335612642855211320577314927335338410991630450439060850958604642561768190197965779905859227657135229970606012508316709384828261293661014916661665606941331147596076919111508262044490826120410028803724682199461248840494964632161743903959196059224706589452800624309821110272530180158925061464150627008835650437917135423144311167840498018120159028046433181994166768608393959415468231601374607304806267306419488971433869041108751112642920893800572958696605909635927812513560819636426274196283951147130471423235199341626258490667243986144380289576168403543568795436033089569014188576241567426646112857484514594469802101825776524204606438059832380748383388636638905251940630080111625330692849395048209963929904417166710196691389128601976232362194145133708111804389347427384683666271890239467904557125894252183159147629813947147949574287454449951160793636402625975516384709926753109809609953568966731705682877594949941329343084536705089260721705423035554324540120484229902637438128708044903240406320819622333092339299786695157032727389023684773926300118359010411742627757533951263436832952104554738879472116529650217179809218372774831227737113377961816737536183873565208936740802964454476112839836226310469039164795153093679520878555434470535777595083968595216526335244335788446292190647549500214449557604729161084379769568235779077962552038569972928589073046398983154018578884166667418208942248333737074047707496369322149953118034166170331853363855830015822489165684594126344534331802422779217917024138616256466229965248359090776076815881236171635095282884225579858510257969231480204434115478323147619900202752448467337863972790798634631518292843041257508759986221840590888842076732828082395453625404376244522935161963650015694419195494221711355312090567069982554167264177752072955340347644779971718222662512314158353378441161685099647583653181446654098940550087940727046699140509053544738254306481189257464346754321397791981741705420178155045913206958609347949298464306765427937758131782169843496266824655331012409167214733516117728898483233289291772694712668768078950398146884939248404168170979938624503902209059249710362592731034206071349019081694695665033559545726161775468064666811913966481419688482642551546949116980635841295422066621568805184226074906494099342613172921100318718603407607486516253471839972823228890710539613613179974862990626785232252959909299958013543072915894890635106468388201214102424103947011977496570435400526742833324178320459977407038007704683713777887055273571100200203488412142411741861441469654031578858210831858111555376958019313427671833733618396143420491866615000951184354372119730201083151688236079519999565414038391241018896373985953318116485178438830391721721014451379907336868786008391315953382094783848403836244509137700224258202988216259282399641092469867671057982433704637393785167997500147109403655254326085171849755667344981681266345705733465095974598354064323981767210052129591861337335471588845524283166023494144242756341138975219914652240799941396512272876820637016617760825370444708579251526164774326714886173758923391797087371101071181596974032755709112850001580359267109048361635685372789505023214755411758278893988709081578651100534427914229132344812515058165720540603223438839368723411027773327532882180475080904202402686727709652732636813639278090157722854203234642109767737234527885669071380790604545053101965993485927390826717388443075392818677157317132171360029387134091727760946438504996942728715498181199068354683039441088008625559556810182098523552647666185632469380150759727859042059013374245019572901909715966808653856253923390490900526310793403654688626477928802228560315952898043249783709796553192438814581020494920807560487390760458571679929580008311683637290596794119197460044926314835784927717755695136008643795462634563778734712647053542180131210591690031471115846672568824739590068588672583724190387681249218068436092510764685763746607475590572927236219266898253826037021879559990591379057282482898092242824231300242233821973729616483947323925142369419955587164080653991037686853961929971775014457429027623953108235378310696566771220774620930874829268427686319647528611907186055614426585601863740238602356509914693139438540859569142924583470282840616959758879637857626494841715258027606780165942827939569543101175642082397194755176600845534972235833711190986232323584636015402079646413777424788130864905379425023299773892150185589305151280160694076782329963083429925724444834658876649791944282069607836643897210541167031501273438490073821667863588581871484683149432188383073089662941470330029745392758354358246176761504027685941276537485684173915928344988642551147307077741430808578076375998607022770202284840156966610558620324691553745420550138055245755100029365018375862303611700767310922161620476416066821376976732665231026955931128720066604104917657486941569778021431797489648100601746221829113472857314713514335440259691879817032981647200266492500736660686331409291118082756306431616325411791638598409938314610571821154005970220284344868973759292426833545345249752985774780708707070363596476028344644961800524827415400777167241192565587177723445627894076177528282481948215366300702024478972984234064407294682538340744908679174234342339519044102524696286378242603638094946713902981484050800721335663795196145996654152882637469401687205987051164293133252677149577255116077607330780474844414733920840615296794282525489657632334641229869461365507597027325687368205921300542065546331542370340205363491202388543419683710153226474310716608105741057484820026784086953883492472116006884142353628582070253142890330369763764185085601821497250715037229959803631125693061560863526154072353419776672323224158718281529313808965164518926382061992610598676064341245181440327548490148884820546770474714813877216730392904871607877982019720311392911953189084420764792762356815281111517685630137500413770597590422242780093442730450729871456277290425632636231510821463260089083147890497067874892162129775902276174748720840521049433031232903687077160552869630758184659792825212853407708800210822397960934415189893076377331042937347923860052368688614781155218620772852286563402178508720575154086045669763091451369245024682408418103157088994260852302884458499807942144498362666191512539934976021400755474090154285785117807610129410756411345981838826362872949879470701458840645205238660103395343196967255377216889444607966572416519027529872153075145888321596561387063737237583363530968199356119804743107329260164637294636592297994852588186234377706239558802020521216749429568136076782109058077015800316696231653902130978563589515609475993900756671627551661750016536371216674384873036732940385980284540374580627566607192454913139281343633188830697343855577327735560326380879987708494672727090069506469541140841033802251588759700966410555345104314497926390704299930395179505989509564942370332766591176462646733218902335323024070563339759626232951486390689420212201376710414916762268115435802907733517887488297446054420385413920960126220321944502487830814903903150581614377242432779550297186943604173237281992310832137304443422440841304839809447361226925724141207491803961473208584193295148788465725986366260739600926232213104558515644784294362666060269070397285867851202857653302438919611428663668354157729588192464014022952323383511520960837455638855877519266959749670871660365455231917708900696075743165789579203632462230811841890548568381910408229344881884549036053404180417009813663297288038033109704157426146822369071422656664249905729217269458790857168905270172527444982702243126445027936343086499019863921088388951768631299070015053779938661449065872132908999844997985726702616377681633733633762016109730034540006854750926041464031693233438870516178448777376366628316292015712397162666846281404540716219447041537879902032803265649053477117803455013778140751447336336531466698963679655141504647568628614286064267432352462121304269586388457091474470829940791123538009528405789164341949109742677769178960347734484462593890693976619296594348570716884388691587094728697255855364593316409849072943424628921020015820002859834294557507665926378650371812671695767197151278132072104308467058922362186980436645847489539396445383160724570083595932800255206512327872490369349424449140675574723197253520005422424686330210372841408725209792507212924557500036813801354757919158171577278045061354947823175860283095386430302772134595433111232989707518324791241880492054011432073791640677952972792808378548617119622695479255057466023149052389549601468980231068989001540198402663262520600224657593159819553876386293244706847282582747216550274969613333739509593007799939281777290030478794745849310650467638209325528500250276897678785650416386546254273943245498324675536587506745216401579566980315193527805243141317217680093739351225265988601000344114984282290763272298401909984546580533149531547773262081552887904528562458070985397589259077113681383318753747417821298299682543666042934082105450399092319363536213775651155789035398526190490825150668120783408660541386107472700793565781926332867954401608604153620566686317939234820979433804762943760828011610117781729193519046286988693057913724637206961131256536234363096944478151308010966084960168545556459462115628887260658261775691439424952297376746250329091227882729380056532938624255924773678096717180052384100187498159611663735269626444954672026916667932745690695677068000151352437821367818513665643338881586742538340939979443123865999032189968169086512490917450907034926853871676757831360156970719968448333579041565093589518356270624177434409858159489226768661352030976090396482150037112753579794853338567464388092696750918464725157771062768903699697777165187727064748552504149532373933123840288230188865025536273352933123850530125656131438055525422357947485673949890238870677704214138208549588440190512826544088257059530694214658877648178580900489215900671020250610113221218355577088610237960995456257917002224142242149482321227169045120302832441008826847397380765194821352655647748157450399356611927279835273713179273585435651283582443491249264413215507268505075611613605669835720665774298231816744656291882022342556063902504535343166563677217354577529879964190114189034428578449597729115479872135487809768440750412614534483236854900361533819545026780631797451770696450604631113267081263513671903297585213032523205382325369850973853188519931987801536433336109396334210454560079815643142711125314445356604557055609139048288587654408173787914646456087522461317070038650142722165776374824057334578879196208908225712832262305317848878424775083914858243232716560112454277691813698718215980573982011434173675023119608769763012138340211928487817113918925296106207053858224732881682604606772190636090630498745735995351489399514472902982163762821853428389771025548116846793932262640685130761600687712148204502033277986365429552646701278094138023427764020491357072268811208919940743509948485899517201935802123601362978127527770119897995248395413792295319668520347621613318494999060653021137264988321805420463034529707219572356041114485730886434555554829458443579653390230837363421675195019643985948912073645660299646325606741358414322267452870068319859789859514708654671025394388002839927645765396823315658551483947320083412175844404265861032444282233668090685762608768685305461298632100560934676095152068849593334817744325501088286163275698731500015122885159269408465380085193603318091598155474540538452848081967384847433610326513760598116593135063046159285588829996229189770312834453679190175887414727896893619240707158940647186152743941925480419397239053277211840959537545785591493073063053133660348181952908559684306551528353451884677856305141976645119452532671424182524520455577625309970188487849235701835447387128530150512930928950559332981127261292022827103546137337861689252814119823683237420052878744901628922544192468622851053097008489181098549080081194736345749979642339475357663223564027781433791243150660061601221636051511991570312933248577971370023964691892589187618473661194456078479565411962044315157149124475830697060890014168918054987392799607882037704679968815403136121978189010460019650376994263157931217236793323494015159209515554086889756322920064598342254502586467301762235907373035158392397704156411994774323485814018149355154944727535265142744147317338201650671474976093801782962463776491281898159127121690619489351787052877293829671873853351422753787835755670167076073648491809611406794942206066874521171370624394885011254763544537572282846555043180631031628860773069938453691488028878571324690450871173060179567378448935445207671232078697501933873975639887565545139094413200884797801041851898868146466869033618963661522879823318445997880901208595792632384411848765432778803228532863317499512142934836507779279308992338661891858538083416869596206412284337258224903895054534860753488847373238944807749650632965215222446576700234416301592505177196711968422936209776819970588668953599099801907093389776683440156138048803563630978702080978493666982879117137687336047961609760600783046022162319048861207912551500346013557849487677535470440115405166151106731115449325104127546755436614038095456264007949738160831293099479486550017880846535314051552337840432062185321026539673755346851419656303519014232884504735811877943661391456841610298638043397664498061293747626511791896614225089564550287813807677525096655926000957413514804966385730024828966537546750995543860587355643663796976647780419942501964501447197241562894554047447941112511077322948916102837410850819537125180606734045240204943272987540861336558721369465435179574919965492374333151108912890038961994767565527865473346284035343227406335789539137696123960333063265864247669042134696277752404622089189179197848080966729249898006691171816124335476584025904785601679060983022260599029728135774363415894960879466582480916762320678778259846432756286179897144707425499422196355633447333003923486217184539609564548456868634082890328008626048152585355213913172623986958476438872749289518981236156483451151066562959654509693010395691894237193188549636178469430363938156527606276920678995333189668424162267599590495199845096744964452740553477753215994325264416419090575543989980065256192637013793582454611581380220683288266482330470595047616979054406783173654229035891671579484028068244445803459538808838507682777668696777736328588828943912373330040212793609710515365751995257931607880034076212737421271946387757944465376093935117433794427602655124381991048360974434963156417140877746514451687988715244548654587781116765168545132921421227985186205381466390029006258994019583767359777518292306290802938712316152793489383447935184019968245411769319967764637954049558066737200725251210391773880818385034807251628713800004245221477615746263232776554655218279696308953906985815356590571082598558403836727786313100728914071649087240046348327001317903213905906215646756071956600998274289060934123750298880632937173415850999773214358470645481289205557511583511138410619257672142105852309976953377811365027574489787153969648736139352656189314585505377349910671451918169527688160191872869141264940053581227451999319420138099805706143248366026961080001223278882494652306018817875002052324606003797543937499381340463580855165535159022981566118589978932081966440153286354945593892274980445837374053492953164854414229042921268135210611784654490192927958315315227892076250056035780933685446176237781397582281901562517867832593325353503332364960865597521031254286177803498108541650088690911880711108458847194672130911887025667955547007261255932268500740397085982435165193801729692707482602708897225522550164031038061076104342880786368826676751047384891786800910208905676511747332084041841918238221170950166254412562702472282440509975449118478230717184622337765803748518758131835686417168366129515927478988454460646981592359447510493655855078300833100942876401623257293869160238320817805157146297494931139706850816489949180818009888366697598247188337574265062498839413208927546257484444070632299360053659770794618893337409551732153612963637561703633303203631871833988024221006888833174007581120943621076558406124918200847463599416956365813230554435183697637159042195211305457661926172829389251835802816331673560696287764626716525696594574583138265152038110424163664349676178067607571154414974058413531144480756562295449011530985887223707668317917637223314453591690823548435373029810131054385922119648460936728018609040480480046444183663847505436138113198154068592305301586237026632075763107205956900611347228811996383013541249521604933962160783523715979699632470223409305675010489101593314895787087784126483027100474743432436759901279325184523308577956011611714439066335850270526597309411400014728059810349464614311610660561442260409398598006148077703450615925983214312042303046214662315616777496201399338724518546576468482605791773666240756629385961725907852623219573597764276788993690395627579965863426961686886190341518666332897075079589281047523332288451499820931490448585400098264072536518988345084694313270672544530654534332962385473305869790220447165771326073054758966597541811840658535430906350100919072853861124523312736558410127105053880025844414863236152397677126330841767609763202916662200120257983756401722151102301827410482200048451584498190347825922847724797936752968033047064076918992890983764603135910297533286395586729133426109208090623462320846967801436030886705557221398379223219281430549010248396649797509319170557988555608139000084541128113824645968694877587594778613859701266363438841697365630699291507984496649681427708679799879508342782440991650773776406132007308941588480355542465225782595537444125313704072198432198996140813313792884329482153924756499169818087999033791733245174397174391005106296272497966019029010066523240384456784899244964130765656831806753481543749481702048190301855426755717734457008085575211129644492048612761355633571631346439179467579771676529444352865382859861748998598097193662902060296614824049451563268844663258601298821670024630508943359574224252727988569149108083131931963770471024643542794346680329449016128628308208207484700913574780443558564818674360037088279828460845777599902140981160099863939046915395071207448754580289518956081164396419920756516966444187726992547392955109840622298948029850560420713677516100140606500853633851474319562921302452497703717362150920800082517051982479545442699835670502591192817532007714635997957896117549624406992814398785331886425035485016853533330056815010861493967688249258494436215720004922881146566271799307351050616909891845680220979765459984173463242801889167004158339441318517650181645200722660993652822666220386867492557810158102242570464374455965208598098682441034350757977945240166564982475104381812779904356976847242879986740333905777667979911583149305728079708291526660245420885373049944492152816673128975579917122298714502033657169708764621825518438280405086482434179533571307148212288994850951549935201994597964374447449528097668056240981929667666812943101239904101247039706107591992284477617397954213226284623961155549453421246671540002348487058277321042698021139378454392422800111944614034287328685008971014738935969596650330995706512129465044476582900169491370873149187904339542570077726184606401896771353012718652608845325194426417676063081583448589595378799471193338757845810654003444951939638258914078205881031937016410696787232535879951487576575656330850560669811230224290016648837387481211868932245667251753390244787470518170840409139037237004874200779420773918153637027867782244845613355344524409823620625199812196578337355609136693745356540965663155322923153657800485440360706814983799327712566687436665221703044234569595496367280493578248606541214878335049502138954616834781960545281169565954015882875902187054830232368999792478489353089415170895044166370594804200268928911332204370785215475737372583514833689426673114990454942909487577541943228623536537844466526381302003480892920893328792253525006832444480828304771371512655567668628900230770531008675621573980818427774017125226339780323397694407878776849153784435411844572031585210239490608305905456421594888875751967097509712870792223439967995144902501220195833761367094425968385665235695596606237871392132879613126096851169824287587219111427879414806927142084914184507241578609843651354245829623821266357970169541552552507377795305056209966714992983081831149012335257111619589156433036198026008981754239870656827146023334129314636103703259912393573208217340657305884350380118657648483170185821491353680252476665141491244986547511344910875386881800208384523389704994461254119858183994198067229781755309031680427597462472946124939626906605125012447059544922489203464165036047133742252896041964172656927982458171579824671180508697189216226729002118178845027226541436501795826409143532719782494222416719347230956612767894235077488103732490549307123595978785760901067393926386021760016544073890688119421569239197124891720916013559398871850736686109340654178100372415837137230170852045249668811538906078445186239085046240454263693960898447038000767137142796195946766547410236046404278682026691249395703086117209063955903893087035149782428874510445470629885991504038217451244413804777829898659025503100346718897998329063070727038987209560265543931587308129284679685364233614839178821646780481355346109399584849142367374827907481661838934770516579786605472700478547659829229201883820873449522778572559038568393492718150983039719059515762737627036107492198300051986995088638611054567985939539948053197116342868903066148262904339026368489680946994783345341680193019408933111121544369950894082134632071768113298553393757004565339656882920566073921647816123044656552754623205398244838241074174740938720347095648685381940120709253793244395738811323180507888174971480551670785763734756303414069790891971583617366595653535947621759472035435571947902943354404634039816516478190413240833300870098634775470122563122410447470361823259481347679119993378571115455697786128506477009282962933716826489636041267322169845364934868418635898387462415357074704260287873488960911326348129572699657121449601747573847619824211575596288724411535178685351983758678920892496211073390842155487969656882635700361803918696373310509049228365821612398164190524189960220157770717771168365441761054117496297116382012742747643042158202512521283848764353806273518880060430516013975634904931027070656820104716433238794752374416317674778207595035429122522995013795112121175351427555761297055390721628940166181483512747995121738161161952965249628680655880485586674157710150610198465977018426337959389011394656404696507586371290632611556966461636263574085931869772805546079705991183081011959581085091169931239424688692328866674906400432433154398077392694666379966271988228448466848620481756598292804973351173965259700702726232542493255895440537684046295794092511282314551106142477883218084069748371699133913739750977719283484712753094476713115422112884645367449762417763014967102865600017944295754354922567774245146591613613344358566144181923650543762618233781753859892448768514669591824074332505742604922273200225499709869994575343437855410490623047752829151914994087474227137467467109194985959897997409784409241714697985749112735185873255615600063461769907597468900988298793430950314230753638817205549507377080051122797249083784090617142832580261461928261748760706184390706720226636331746424129302294653543890454010404767696865204717170192219715728009111435020424389288568203969065921245518541114567563088914720282621240578897257318792572009956326099172705653912337433577064803624849484998710605953182482515124569075293980502634863018514596839298743537618267634965112476623234229906425475806348384427934683427105122232997009264531491996483356059528562832583380474866299603850891590393078806798627501829141127896835272265021298087917465421783370302945404167691301774873047092167781163572650820900348543333843099429783263257591804239097102423935574064452596857689383212026998620609430586522835156947594021544692562866226626062514909956418016163440804161893653602198140758455114133226121809608851023857986690836571105560038350942270193588356110661634441360436040319661659754029786202985160765423734302116124088483264637855015791275727393776885949620383258814038614146490695282731840405832295724213332066576168763628532645288863408265102700301842934660313598619255653496992214406969367123947363873816785486948799728307459546503446311543263114041626420465194352308618017705468567808924198893614332012588272167106374543218647216881498108460762175596125924683000811112640027739497216803130558087886661928047252754218817558354393468105499944620227279617383172648151279175156422505501541749482826252566589553930424660688328738700578494603170296451981033112637390523033166109123083439377821587399312172018345790660603124979644619839650410100225330245519186241421959636168592057855822739017134306753613976716341969928073550429272952501128975908193251025081919233313351010548000725027844991460181406715266847235130405448444716492632715813557753567563109271954680179376613753610221615439275917193197851070854185350925364991854862569305770641268783386246353993690329875497728458509264338037664750582151801201160845672623833141266693354968472334790124959036878727842148456489098350788752371826254869994333224477477281501121480777762126288126519618719927507964999474458215145672779254931293747727177697369484753519198408588819221106277248129807841271415829724676560441963518365729738339961997128538008830356728938247019480374063936108145210207837081314911599455379271452994322786427809140075161713850105500911591931338418631124363632750281382690694940057942244277919713050457466300012398987480293422085521942706167030754196508949631426831666758659696016564316706675504282278672488733089497883673381965955223107632762818993123898058684491423465046745169744249140107770989416223585845836342106804607605205187103205962689629302660688679962279028735145721909905140927524125838526345429954559312296082543865219225576816554133561504226160813175065564750152067044268273326086383737567044973685248618870766298356031829812392894005221708111604783489864061102524881693559102252973124364710828091698998502969877669013863522886538082460832202014711800367871400783247779641815044266128120154736090783265847151152739435818645816561462925654385722893211622152903797810809391622690333575229106971439138275368110659726451843354273933044102460422263441043428567463457490160778821535478903136724769758010589117884405137023835589031736678470042394942152577959777385283554205621281097478282102290502420505054955582900751892335977883618150174778772879800783151991615923163179401377403197735912655932511408497800448340923560937836454068401641289418849881398969725313228358716134943531637382927067858459637494179011176075595828060178806115625017370511119109277820983407763444640011959687691485260047990199208280506973148189512419223389892535852830201796033474288100279407825249046889161759040881723104102925470459249544193737898791864228269772702730902745499857909091743291441439602866507110069846746058445251728901813467175698743683154983656240126278723626421982582956992416172758979712637489038543613345565574968152356995979972089269426456122966116465623349984548229662034082540722482417907153568575083305909643726736349531610026574327362961848369708410298681829674561947078000181685920139041256994855016929647952053949099219968500956935166579836310051691618565199627658178938939148877998966701153152268634642452441574828172499804806075557281724599893127290666014557821881455012342186566418121177026432744672508366954866318486585253264957684235930648560654803654149704276730385551840860637552412190418234090066626586644692585279263245027234751882668037110023355256055081975318149014707145430787397527100323806870312156070571929420242752731186440493556000351875227830546333540191875095292939966324487009593670407958371555507706851747727253093768554611964042236784013737942270745266821553996204122432783558504736753605929065504194335858040379188488573873020156498732471432151456839234883849643943456850607098697036881887630265281756584768327382676291497806602457571549379915702423668095461698767326063679625057693398835127933254188711250622572834469564792164584382999791513336612775157480678507102471992472475993569737411430770511686959550329203506757874561416378297051786781486056430720976053575743109374566648044614317812404611052717091370658906985139516841288544952661663281750603157219276368478393093491112191467247935870519932260580612427746435666601276225568914688122138014622011996215131702371703298616950389875985192376051471320207601684418180454774154368723004465186440166615208752828150230440413897285218587461440241997979362021059120359164192630378586294127441515282550827470454360965665164158165369919640990364761590870316074459238298796264197182110788556151551660088484087284888299131029530092720075039651654200162429355729545302889147692353480851548688617606533321996369251878641610349908923712982592083442056965071426851285814022602189950665170176802566007271366856860823734566551354024086729204282634609278170057153423625681606408568632667834369756145584884014030521293867468662315039328003102072832141290949269321022453481758100284365040719202134328831204693409340715227482618943960491569236319673746189175322974678289216373049395125220324436624653144858062909653064977257344643176122651448872269498027054789868726497552635516579249545964046390422282310081545019935520429754574582981525475084255323837344670028788565721253201048268306667820711985540799961271237106195794674909251712886459295819551592931677195089106200002733580534301013523880023381029920911768985247189516486469915094772857042332459213326451865977965633993455916443047929661479162524757288523751599117294053790192360981188643703651898979506121350021504124656080154992595726079220805033227634856744708055327138403433619037093379794403767612904147582237741317206362287824285264184909683837259628049699020901886032550609044939115739633346794172848017347705150652819273649389160654827866376909098200663025770697793149988446217276642523806590096575376570477441476750826877092550062188845058966442065167613260515895093409116080683264707178733318876462632226713717958354948175253652278228351330148211666586873700547307411778353193261865055976448463223456894543349198107078358176022191332358160609597117050552223972493828203422882828227351696279653104455927856653988880216559005989401354797688214071634360198833309493885879079868196307833402246019765197326601145158620730427167763608408638560584546042202764653411372883386530144374510687252927136831443094702715188991190864028959637539244026584391150941438241496640063335387955100509793997620605857927040301752337863616411662888556603592747739653191778811333995406742859001747812089250268857317664884178379815875901450845132582478308553773996205517971320238835347640995864835753891674766605936901054231645830577513616768005719832346723195231482002356796061792842810161073636706256321135982035789166333609892079093205307145126506299143844971208104407755295983653729352074924771624306387080431677274868562319948254188620314334473733799290567780680607023707204907962323927135925031883425808802661042023797922429981978940797472595591128242143648257175456327354040900092475099874616940645566816166911843390934412616604844721064127275258083418969845738812290694660736217915009427131355860055585049680024526966319322145294066077730240673557900035103452831252347427119955024422045733662692598357363984541944020868904863737362520928806151685208906438324270846595730664750871697505702444223959334178203290586935399713790086253540168420657328666219519262540668064932773677807140911915732516721794236366783991192540960388349893973449084919307804544012672457285472895014481385606958823483265938729416934837514475267226147557636138683778109047838168239476161659325243724726485004845245699913768642100778534128194261307448744449816198068680612033728479867295021196366226807988963682934537236457168111244154355141151941417979534994914835133972511453828821593952225960014554554088861548999077276397426197212683701582538590897369815357859936344668182884201737670078899669551140240459765981191582617582229340657086055666896362735917991998608565233310178307276107336737975146939369988377098118133403111374849557359384412210160009127396327489137914750963545034383956883155280004497752570420121269965304551625662143647802373763359875768128977707889334444255624921155848247456617292793089588122448062026051286985075394798421323836988336673457790128301475393001410610794418071508703691384297692296977949974919146083708887592794157372041681444889967673783245041651022668037186323905417263177504997836367316391156982919011316846099748273382253210108167361337635409296370619300893015171812689642804035869896988321725389646563046708988236597744683560876845652759098657991311141675091355362732914916005276694165113373361015454887186674099791882681194623601982128223915970168403320707133855984288811447645507157427124773662759961808514987030463096057478058414714815304713480293178136636029476162191516173852981154149175430324890926790507907455567132934932956481924093486534954713963813184073127117780490555465674831293889620079823089438812460496430591143485594255130440020455315932405394988388678431312392438363881365490889833375489456442332302093620941024909488299601493671550295984338199437516881663671571020120799722961594583315107298617828650244700159021780332487673482536929877583196466030608991208423552615864772541298669652751842015986635758198196826460757815099492784382692816915403183664392851235477515343018324198265084560114866972783597609424488758236078552963139389467223087824561592714085002142082282882033707846571547736234495511779168210493575084134131702589326099186267288309855230331057694170704648843489588362555929589962896256849343018569494924547117946486579113461400518940355306557073965258560664385923128860445462279159679014565217403718431247999829047231904422295559048283606763942844974258068642888948197506029000062738744094385501907678411694658125915405738370568826586705526498557387591076739390761924849885403334183839379439907567021942931590541698638801856852619344861931371009463222808915026018132748835066177020714144715628683252706079785140064615604195680945001117198370551811487991123790314220302157072643265662669890983134478348784125533835383401685770108164467647520186168950322554250194119272184874309864158591932322788533942571262555590017647388526998781813348929781124240191446632252873567285038501237201977625748701834780617820730614303740313540559879702077496173071466261388960999180712742477778379561601979982637262385656058909729917202303631113874127459760878730951060174625843645039663375781455074760387594584416383821958524861205505859831899808422176289718959864994221368794442771175485440633278789019104809978620105470998613797318389838826601764635020522131867131936680778384041086190204971602717309196604687133133572199700087391431192280569598235213573200852283261027007326514429240779969830429709544875968351994067592453935316876166527558676657311627081378993892789588699590003110123374374657529344628469275421186635520020888622823885107377401296166625381547977430960317920481028780984416623707609672372398617801993138478393736376277386878297521428676398410711817947567903287547050987719028545611392235726077850458279576576154920789733888859208093929810073204851829142336041768613686101693845695029778521052395914451351337173955055790176588739062323568836309625200363665260358298743428513760348399534258266575454560116985177673791824795067259282086362051370899428405220753133411289102817862227498675285208142271127561615193678290870246919069536180968516324686729814292287599408228511201078865543675320472826655359551395786597273086643876467154953436212789598913350426859540908953964372938879187506502947431635627479572099552770102331108310551503945801746720189224739770474242330896870270350764719985299769519251437853329740641471424439900252777804130789314265032311441802973036599332047042093136415879787189208042946995500276859019336551520427972895187599887561120938509002962709538327088764892078178427606103198928113630768345354118507021590275092269794595367713701034241149100357249507893835911559798765726547087054432240463791532679610625192182908161611852261879218653454642572758756176470650804947063866492425905225724042296971811686629912033226779427490618522974366924333375439676895450350857083452141769666919853672097395449646802994293493579479275943086173302302270337335022595609439573498795033216600610631175442797841302463085662897481649188775816643174517358184119870311856392824404447072287032920296490031894874939449866124553791047360626029280555619019149654001283781893030994975601814621108780331528681619551757582301456633013460704719124247757443712736035683379078874346242221512847640990052761910540442505545340176877621360187547285835432826421583432961869196129970561133371507438735385046661450153049858296994104432439174658017058908878544395375676135224516312683521251350517914322454270541166765589493071370920640173414089238032841085093704894979640468305926937350756409191792271652002505228734239460764891252691960249751082893924041089311169608366279536516891948140356421247891995979170084339440219033234675822607327315500725415366247816628132530607593846462690311367154458215440754902950497666657725956969720796214769300588424589982217489306779375470838060907815353020584399602179761135159134021394597832575217247966107282872410487352618848864478844007141618659203115383463550615650544675716109547503866245520113631727560837890665343149352554588645294081972395504330740789476832192404064624235307945114132504422653172603063406027607723745055791290343562301099705178602701752735417694958795916403716216501646239027063654230896086500626128310238546639455852039026968747541101754078883688179331674214437397131005533281863377142410927388276987122093721923592159089752149650203187129819046841731838372603182540835701814418918017066042539049668787643647842379339203083938783411846681356685028275536045236897811881914284406171568786529531846552554674486371571609314072341012375895640854474873111639830223213432101900637549585733298466012053114535896705213012658213784065965187144509392674174578738985815400572013314316627172925434078962644541927747289995409605620082925305579951562494591241681940079271437194210941868556139702653035940692795008407238052069608533203956940067711921366420680667952559044093203636057388871098682585612194360577702394363503629205312767120558773484762331343842671940790906986121059418642973085877242713654947139243801237662336650066633199382179397234946774461062747625001132929807157210242562525525623875586371266356649058125384012034467562236592178295610231170798660214648398609756663133387935333125166608315532912699707052763707019181578533892791930853974447560695298249095129239282813820097032459097232079130837137746543629045297521555020013407496283882216713536642926059854748676526705536445553173590365710445860611455130287698939551107012812456966316341837935676487555533684880839784433072451485107992376599653141763761486369356847752631334228219101269974202427399661446425478593689493512212175538929837061995480093825844577841761519345562857452041682020418936951335387220850274539641396767291566009127714368429129186458069821839476542523904114997613873475350129043972012939970588732316182942284957649152975056968617383236936672883299574393677118531327169569293740755443173230546993244682132169935563643088631255176063507795711728582317289655285614377881843338977475774020504298388329089393988688019754302479648647923442280921259904924820816269515568675821064997864320575246016551563505450129519866284415845685287094646810995351321646133799663754815524832595659493067188606673573204847668540684139374953507741116400661798339641335748127590716671465483131582921785180508155773565301094388126148811393338795108658134911571517629870672090549092923727338432673630691211970183098098730170770175559990852341169560653320626491100762317886240931936680970782142192005452105099790299806920272177850253009769552038293453509116604980274719869073169216659914027582023618406747091738741687637319654226836581638180143677620873912778330344708228877603369825324582240853093253095302746377248542984686503432569118454968981906133524028692297230963269000235926164075029608954130148045625020029530223913868033809123288358087612379298296085932426287045464604839554578863689867552875195162330766442199066974309588730662528442148578799946132210045658329989180113163370580075696999032848310962371050405623001094949508041756785386845820674926643332688700243058461388716578395409312197364332510599058403714472224477144316482183256767144844823735468681503001025175199548023971568847789132114627333582360378444535501983363812777837546398964836268373361045182980220876635560854583498060765404141130979440891867362266519196498369254932231945257870443473513212301628471774692093517045198519473297033667383987301736896828552881529770701883485606852739438715016380309166107948405625373674729608849759684470006322199169627866418744889359562452994681646601358551823581069690715136406455484681926311430231005353474689419787106385975034901063359169407617152402935267545262736371362881194100615991668779596110150357169275710326094141995349474497560455148536931046355814063815670396259631532862728477520165969112078991711404173431857521083849697926166100471062818706663625988597451801765266837389139918210518614369489164904406079876549260738271092259465875250320399357771562446117951937154810819571164942687575045328002013032083979922378628808810917619363096583588913705872118468684098441256565507927435933196126554415945981884406129040122644181021984062434624162858022367537260656798341033755540060594670758083603134606528365512473338063176145649011190079021842749125729844362031094915722622934372702949495611093423795145281842006029222430295582432642270792958731905338635873753493713099637595029241924820287435533260220452529822710241266900340288997525450594811346754225335270706200063152932154944898542789482219606632482100246021717733147242327373225401689744183590331077542777822916046913832034110996826345405932780520529828268906983877641278021015244648991044507523070721412654465321582451505372705936808346140199107407251478982470802148032290794435219845824384521811225221088274030742514459405811468783720083309897836280669229968733549114374633794860661086273859345305109606563098361935640799481926524439994105277317954350073549571999305796335162184737784616844924886119686947623876609131978671080438220588760815243131703840605604187939632837747488190791902470467440552988528284000798958169386709163053544755706938331736141574466742846080606247605791916937470417791575563767243978414634923309324366631792242396795975076161925075611386114207902587181320628350669207137637334614412333202457652106368262005335192045256038089888625045288937310576175279673469151524456439336346387222130927337225792477340773872073857684343897875761598884493448932799972181487233956336003439648327920287299267834439073616484217869390374324428369820848137198111071712678088661504275308488602668137003472333302984016927721853226422252937476735816910102488434818073776820886307002656982245673248970766476442471305489727477900458216395678898555043247227328294902049862792931292941845153035932902072105324823352903423267003232874882256448503027238020045070110878127521262092113554552895162827374650204917299646316964102777783549474926378157612484976573448504875790360779674065503937649134999504406742471246018090416869076506941948824623585276972474715471672885398023766580467793351083381092691599900080131358002865105701828779324825329523122342787703890219316840729139368703015991937111614825920256580288131781242959780588210262902836288096565942158311076032050259482311938639945159697466801954260865767204074977528186928608677512217101194351542460372373540566388257893759771475238383323117821513607020156219315365395309146590703493983376514409761274184067790610463401205322366496580253658861256231173775248861020400795294928676012539185935176239203161839615183749526663048615066052170161640811983547197055757089702832099955825883916134759717810032052191731695468095825907734036856304618497533633833124681744460767202491547665956476745523212094204030104277450640389405632888982688160026057189459410090410848281798380482159472241265064568327936094597409517806478994924030103358132882746305634391872824989563409986304573182338649542618740680988875194040176460507114745728751760688637025744915794885977894391569138299324715461813389571798940405869820702386044376378008359280050281632861845638804925741718280236667478576473322610799297865639600812687361738538312172271407995698462269865382594928269051568370021893205420114410818518184889952636320965149246161312151098944114286613455975052923515512928319752544920617855700826905976169744064433768081746309078977247985887282292267184741290799754595009421951713745666238837429991963548076541565583664522180240164038964038930668834070383640970157509095260009926407449843416812223565249231401168857338985593683240679456739438996088175652458612532195181715101056542408614828467841893820971926408256963766629183204160393865457524856920405614024021487554207627176411013210374779821951532698823233483064572706326584811135538293827552442192744526936955224937605961418648496762880285341795458276568913834254201871203690724847391153412521475610862470382125021187155998959818664076682682925348856497290944668267265675134718204672480322968284425683973606810259130845363392949202635973318908545046600649724819907443388225463826805397017849362957336533463369157447684036955045875026813100670906920570140135130649086339279123674404455152574707778477035841353367474764416566596452559558487780828970769556804925148048560988519848408004571116014322725801416841073706138868029633110778639185833517185246844722455855869827879278514661952033106260617795444499980822678070079518874205290069285624682078508185382889025572803347984321532551415448992399787649210044929561983318294858777712607301986583127040045509365305079361065701075656583197413998989456195438500750280242796725047061581701473346723622764021154182151834876125647337843269678067128491309705413466838264878759313357770205058789731434221691876124282983599592767301815234783024349686869597783079480740083942649686345999605772930232527553685645505238618705428850616712622982763447227278446780582755926482913966414292219457130499355739205149888271974035742033202548658698544414901404676839204346365071452645097973945947741932974365437433727754030287882142583860147917782077346668388537807795773422979369215815436565410352779973504713336609820299376952639882804492629553213286978127042462861321075129562168453365058780887684287409864975303914306582449042191777183997165761183973080053311043750874854407033979814065502672873125254360533387325183537932999677910691063048696290905195231556508724079121002904752927840442478258490228257144238922172804592392513037257330389870496176997852904799504339756006316136148295242439514708007285230012569045390023855448467082051576566150113149308240547724796192440498585661584870681016080427438314569777494611771732942133936641048819023625355814149660292219816825436339853027698899477603636620307559442563413964830211094364694261373982753785341665988203932071175287135890001881565933408431205730345521436320990045407020146614581417377684731858098622238246610477417816300973944725881309725980510384176017750802083235046747118606786764664154554187993295876616258984829014385436625465512408271330961617316609458514710034150966586003436402291794333677655165484506983734299533356611736398608565350956715638799691654624344769785666948303437319778418251342718977286780175295498911852417195326626979916413492473983491778397442938125329181184225807332613927889693439266421075930711941189182901016726872822238420203778991001911118422626761835017873596163738790431816680537871887073308050023021342746820834840028953728171052026019694064973142014793565221665735536737256192827786205309389957038985272776731742464410891587163332917874180937085966671651340297078924526819955541300052710565305496487224505533013794825947140816914968437704570069906395358041631112291386838306717189916965592038730353266404085670435304386698127875301762949774990324316590681252054936501131060489941762195671967166055638460982812070368751619619149807683722941602860874220077075451013037907479218219987144541345674041103558720873661620329165531956567751387062160167052397582488818001839537011264327857950945346853658711197272409303081317955898360750590735163286009446594163209690866704862100573532740508275164368803044235859306497963563990347712630263973692953832376987557217703136478759947851207715968311562106741069987235197649719908737242186403419692898156605073639176362514477992451513535988677724881690432368066615272605993406455404519398648944166015566717730886892348894552834852715936722715454105591716424353573984503193027794159491314984825478174036728111907195031779200813312000200251190653778481762462200148435748371559959488006786533236287019596237936034197539844492567764618128549850065394806799811158886601489232137559755104366476500666120993221457631374371289054451876118902305378549367716955350841907141440894980620038081401781576793023227046985023339628444077032035076515230201929237918465041736348328052824246181268826179937963352023797845380382653553627051616339773924431153002569486857945672409929276517949154452811714775598100547585857137467145371056257535362444720023334268945289698652712249683382965156083893011018950454684981994670052121390993133804392170151323154454241250631757132218358754354746700404774025638114059111641578891611541749475552864541629584362702844155422859309957138020583228936948153811818056791407183596839937845547644636995270117851239754335575545090336884241587724977460423923554228580675855755686426570320225142723086016555556544576048268049584575418258570748413619467464212650630732770992732842923032295420178373448739958292141054373925662991523987081990016136123329952226189050477722632815580959755715105192282029853267978778104052482748024677800967937027597145475183815346950547704174583144946414300878596994055476998450805569595943645121008200557079388342481682026633314255640299633516395083256591757279998748481647445128848380993608577864840181301948510710843714051942957581944131228420005875181938129082668971325565849026926160813257226160849004623186871027259864890226030671071872148975958606974559913954990201543023242363089770622983843655329857376611212039793239460792767444864188387777339793135713462767453211716435052110350866239885774967509687646056727528058512231162706597316950440825054003440503217436565671961212438420814302431614182077969675808019592249253805396441469760352843588741378576181329066915252149920474903778244155327871688617401405423841562721485197255196099496764685516499327746230604772093770588515728674023985593158785576482557265138654320524121608630502330237014877466069093265246576885341002970933132002793663255841277658417825549106880150921472909996552152804016099373969801912240439296692907595094611867105492490982813792548603952474970818158687105369700428490779035350681003536875869914313370993881778528612158706188104669551880726854879632649262945020350734333172287953631939622834517579147167055701876081692403994397721470452243054804688901714778939400538333993258899302053328787979606115608305457381485496888155749798910489751282301286310838231529651450929879394488664678621017622173994275904821563922515328743258687349643093257553481703941605073554618481335494289598507606907038673376691594865564403864403603563766050131586656868763867681667627955534876814020293931409227068515312540346708039520306048912619024766733388153392640394662030869659734585743124921365781207385885738952900715202282579621109402311377319917064420417249589362458853009658432117261559651608147522660014653192060383900997744281429884331368806450763724704435845365885444411762180284129966100892805349563585983352269380965739308951284782360701244888517361201184565964135710410475804986613908704494382772882130826930321350072270072176764434954296671415225006167574068599730319277157390197727108101285567766871093062518074195901635227215627765242009383790913743581350842369704219795736357084765202673321254661601269348743669099005266335798556137958579188222579519045828162027959877157177517044717565949879626627564511779225451091284170012095864837509907584927168830951175432000697083972913418939492633418639623013621893463172623644687734918895661919183835105052964964993263694952442645312702820517113223375651507941567394571647663156802132488530818559409597964771372486955728109230881910116096137216143861776781560630993828573166468812380208095984220482387713280664268451142825199517439559346250662231757887241710925706004751513331342754253250280080347610766145453459901058258521422780450483555759091728896304831459723789221431574427369040640663968516190184064372986142128965704422840024569614931473411154005785504832842088370638527819324845472921558342500731345943405673716480441755227709626134926988995194664258728931674706737652329266071180560080734611605542338383851791001311235955678638690988928636176154584147229129755136926035807681962398677738024268206012917386846959346627030778595644326696875663540817724226953463792542899608776593489718782987865328895632295700872300432353271114234785613202205156687997814048850613847161285741216656426276359887566712860479112742880562278936797708749414131568866268880327382933933084822928403382862786535344552712418343872985550235903107263951680554577479382212673648380571059083676033574174549538333095220484792360081510042823970530010315903415059052448325481665789892236621797025671765705996421476603284631355586275702320196232770098724710196920480071306680568646632594780672078787057392783208305400899752075420797779344409088282575806832118165620947492492152246618761847977737764951125604079180867021463303796408782954919806889351525098282652793021386347062448365785259660110073213092585316841559773393408876532823138036335481486381784208129704812611779322278359464577364461845177469773069195794562726192769630085633567281765957678874472384524775496649550582766185945726825844059926338459116506227401161268404188977428911932427738505548930597354573300729176283388200442183415597621220220205884782913174460721084658495345587484407129230867615853396800030980995464200582500174318235063818193829258548068212392025576527728595084391256499586052515702535316136526495530841113931820835481759493034888567723119816901324608436879168689324686593565792148399089597201459449299272722474453854208810386820494828339764258262136885387134716195131342867328327395605253372569245515262058749583205478824733030771944229177704410022577247569480436251838953252358295132229218159244247525500460697098911391756115703642222984584199385451303694796685031166165742647235982211377280231116246455964056203091031333030703776816711375197154798471282670911054068870618789315003710048811021795921302610893647252070548245246365696988346164783414142804919949517963761362481230173770334846144720070385883738316017135838184397005415044288414820288369595755235959213532545516602482723358001382695836028450101033813767626556129338341257456835877383840024074563864935875099094861066937161072934708135704973466432810956918823392085209051476324820823668476436441775196746060902819447025433090515186747873704125809053308214278977025390507483074160526923261367620724791767486908233901221033918200520215575083084212266475354615062033849452447832318458391384012000468400817724151099445407258778706818334701484615594353886654713668525598653394536293724633521583462529832995699869109260928210393583511513069219616287309773219292327385001790529280530807941782270680270737631173428941830659946690570728203412146082179165113019518895113420594016166483288876291596747839257992250942910671491434615891174205500960431517552774169434412531682404316351375284742301210431416531954443351992272930917225930101478118889681351231490208293731271330737953574547267494326193706750243396691421140013170204087461968015256850008268735804708903632638050336558795666675413938731813847694970812963586574595032465111648544845663766452297052035813071241206159528521328432439731683289864526378994798500966989152272919158861828834110031719663244950627753749557724319946656366432573407685227559901070021493604086779478899577045492441284197383939940205262213630061677361481892114543940637783076729539290302659648017653838575486923264944841825899664392622916015054211721185310294650430373051380915750150986473396336318514577871088120129515702679297798116586430130599904035663759822327902140268752859084722323858756965528445973062071861746957472003264293626953497164624544572658682629160574628490661179117149954459556430484162515278061052841196724408125191846306578098972416807327101489763354300396671879396339250389771148749372851874410446909899902006077653513039864985465371500341797169723436772099327573092546115370046374037997136948968188634590048072333073293514623400492514099791258160668061805045784880624062904314079182856555029505185639382355528953506758232105240415512577422366943669374889965752191746396319463047828805610214679097995225215087441756667408792069974704641308369002538167058599953265724650806734642058784309891851475685171110854869613953701446923793176028321152100143974242844249486707237188400830978548435224867762812510614564809721134153009780010480816736304625561599896636669492970054495532385291826493410680313730875241370943000229807701526782187729814396552163079165725577427505470845130043465485219515648697273572346345523529774382464715855544323225396599039873265486803545076343088468295347562351646229882768654128154266692660211766393428286902807634427639601959447250576129564983084036304726639842917929140319508563299166568697773701743525675327509476367149642894753848574604942324620947030465258880900937740229577980245786120326659986630553497873719399716693431302404066372220834429653706874119543656246081300118055541951628971593293985430920275580390281236964562908886138365023507519934654454398871705788260725124012664822758662551662217727122084449032240409492010688376204476487170659804720587854864743876478551787607706161787808432560607215795538611044158582485415177966504339849633345184623599769820542887084347645111696178661409852115816077246088315193100048435641417025758270203811094246408991271591646104420885532411835817718341240979953042548028551388674774054827351775452523286514788687535126711733607363474601390453658800970207914388192658249366853614125432859938983976158068422308376410761803253107731436279167371858408453745210553088613764278393330312659950002796929045639858214900396043434329700522744900364141330272459658764877279226772011444262861866140434311391764109476765356666229224029913438173580127189496415154522445990573222320906952204540237690955563413718113481637698621872591517065357332289628851574485256493928263147230072170527336659770102089629649559050162361485263193938863512921318161893370423201974263725827961466775855923451668002846339537985253473304064550569166783401534076379293608626883322195176783303657088044743910743847295667813746851707466712421736139955040443654234457360943745492459845765769320412677691866366773202077382437728812993981225908577130194456493098287294741114269241536134665287934706269911486761195164491166957291232719866043925561895920060177166512926007011796251425493630270621960354662464682230560217810654163312263330036945409410338262349723327462596509465615494104519573518405251051591604805068946247251711372009560322954509675648214364122499626405387542582786106509924788567057362870729914146561802575416912926088190253428245310940030094627570294037012907417117966339355700407203299434394405515971388596296821388672361770414499450051692827907239617320826107761348176945101584159706617266877599788409966101523241410625491548499694336878273101507055298587320255319724274111485833557072908296643942896323908063822822254512755984116161024541906378890192963297334948784195327388644671855580475806889005277338276622876242594452258396763338337735949801800580720023858346167983832400096318562146914070286924903989738969396402824034933670959001950386336098570962117173473420196340765649970992179222060927887225725897786183658404407061276364083440929494550039476661602976363034828962561518722637847515989118755833937333941715717624908030877622718567733047912379793281125880900509169525293926341608829116432601583763540833255245391179983950474110295941465456045596161500210998085418338918382176896306409720597404394680408885459585980171435998833606809837217746287611618801980189522261927853542549633987721141402361328723025542721071865374135331451014128731386459583045122507522576788250013089924158718304444005491584091648810828040591613764796170467256402456403416839289892263954753614462835610995988260653688365516519701098469850772310360794344073863873810405442930213783768617146654143682863511067994513491265049608139243516725447636312169290447189299482738513756416732142604265077956104165195203707184465370926245880768081720993218081079070005323046933236141224637250326223376621078931840588203565221501307974387418352023576118428248437106473538159143490673047217701876052093307978356280868531630071640424549053105552994500518525977269769064962623030002111689901586649540223610628342734611604020381595746386823615041157946749407602714614792415556528469111048265968098468140098799363517118428535352328743662762203386756831851075935267988026860678823296945560239133332861725890733356921037473647622643915407823262551029904920111315754051806688833279648835459384975270949883390539320397050649139517048597195443123172437012715998040507495090744943298717483737842158317616353819539058145605399200848001410275482377880016751553964223171018217522016465011284327050921224749463447451715314014209009378170112925381306295309577663584517047131479265800337745918826706772539170515370868483708238228857318656705564894952671805985462657266990486112515221732397079788776038995776034962382012247647589853434762293091752390546329369471791072390951523897880773743459131291948978565438017425237329064826241746552653408207303943243278748735835411672035856430610306435312467709433518483881374083388491111174773704478487823571279272363789218350518237041353298432241978708819973372769654665990979275197895219913114903652987446755203064219530830758503887096771617407278793482453300099671198878530640691579821358443838973595303529509827365414523697774651538724544598526695864676334940851206625315728520532538148472106526598305049247016847539427253259427795372180967232121038267781392591184026173258202144777281910890066038704778293890107884370154433452673662795073251568643871568000989336471446320864763394396342123643570430229859958529317627283688906639363896589046137142242017954435945323453949327622629118969661656797644246847502497784585046938126881577524687048168788201222503365244020962513296347046773973695740687751874288921678611733664890263849558833780249588813648283335547555066424817164490974491901985991657928924363100810970770408550633310656229867867492700232504883422702672326672329028600773717846199271415578631307490566218607445508664529094674890057521435302254688386429418033950876234267997336094035521391895505639322034165964382291241586276852905583256225574053816010006021897779001771802922650785275927905468600174829525935089959593291063090100641029504535675602325579620565494105322432817353094051509510294881878774198262892038795584848815165830040964001607466844399004023073156654218214148212457131512917242478082197495866691650161549274986981147870370351879109772245270653304300741497152950731412567164181466594902294022578580432394675984129832866167146010320912411546857758988852245034395647151537673672703490485513707635534248406524925256870115771582483351745308944319530237845997161685105079926260930839991077106423381458119294784534679957334495998403248207977547722300914687095360886322095399697992983944651171519045460865269841176506306957660038042884289133458845960335591486182637949681220516044567942648681228599487768456363372936183459060779200361608868188737554250116248322748224221008031947250017024766252218119488740801350749486967906782621724126219268358059192269394717408312592835406607055005217388221160540106142332337885535074808432698669778993457900525922918547362833414460243541937516188934696438208160439134520001326679077659250838169355568117307136396686330427594322378480690797394536997584843215393358695090376710665718644104608761898853169837780693141528257523788540733235148472526491972958078836876442264874309896277610340359334750588906750206005257350035457603250465401871327523848775199459834061068853999053580210001597731110627053638789590470150751033351622124710269690042119502533151945863461448904577027149239222132179405605234115435845510992569313646012655245672938934266239382380406225529193097589810469630213096116917010048109435562095642057994306064947389748479115754768145944968907741056411714253960759563945432514949475211849712144900103264203296397654712561625457904360979597207722758001394840118922503553066522551589995933442076121384516598030364696053949370264255303180915834994190024386520725478293867663150369153799094555538873169384736200175044460031536131586684267192284150536327831136615436086876541202356662277128409003020913235877874098328902922961278391909347613456197879699202844989366601809854186004060457697623082431390431423650077591492725531596894431110135461194767946249280046288282137828052500655352415836755597964797911991767026032876550002852261753030967640484925266673829402830909037522559435595691688246878133253808600479154390998921506139388845460229038051408553667569832077238659691631820781922853344850894281326254023418111132122640658852571352379045156979166883009787383709694510247200347855268834467512052763841553745222681165106565206885550833165894971863925382686863442770570034939321501111510784041481151029638286790169598454678825081527392603289661366447395830978604051769535345459591882927013173416116998626348047880890777648761097889536680189621462125481620104047666768157775548665021372018385478273100254895064226436866090827959973563914956817461947453782788618729666492712789865868929078088975205213914473483850015675340192593709559171549770919978737641126802244797586070479656052566185451147503786410222127523104368036904066021112709301440805272764801211866609420141806112695729280216844538082738373466549570887257963409366747000440148061347492546538939972718848255944697446049852991433212276000193862248508056244555706491061805324168175653946312397893144394902381273625279013492692152327921988301143187725694650847741469195180348659026686870379307448245130746454151490675067611790907208067159453737320041246823452436077459585616120905466476302223056733307275476743747263135572055043529710842218497470780967400110875431920199849145709993808002093151789127117450641067290341275006855199793522496802930543019587361010641739930693791100327094661213202458078379317244259555081592967622344243872997443332162467668437520644174361475506144354340745523842025960552649433216348770034668918649718276104729995485882891458485388108769580999635975804120963890544800440023291891900119893586406313887173881942864650368815358996545650116266130248474841202713250908227933421835985108029172803827383747152937006236098178811889392515546573779668314276397303239169766451457511631531349156324865958277895914663801184164347497441358835940325187686916002298799278744796722591073139490339698389505894018105814715660351181341415747014873380081191492819942712265864458764796698666770398731844263346899532408134597254777074582041840251257201864749067796426145520496403681105103444880584401350501931513911177126972148998487317534616836382309072747202610253313612520724899134996667407011042697816459443746260932996631887987592802760251326786188843256014044451230260211214497259361780714581968686366653849240444049373313971478586574014477110415432834991750577334804992542022501996782277692769650402953951873819390536871410486320193833250669771713064257139949604664010055218787007486624679943712345182189411036985103170412419731235151318748920192692216114112972014067738861699600678530538780094646507156983724685034289467488658859393830357879724936949244229889693417183377495788624458272977037948477985511769135497343604939503230411593036219970783757164120568536600533504780510476764700184217746173339591135303064811432499813803313090207237518502935928823047193132370739195341176052983939569826944951314504050680506829737059665427388824087972161274072745868349581405547977552963614300251217103133792882744003822509193517657923111653662424138071612441896222672763461548102537513395351038799326468586978366054144471212195553484287670451698930298325782404690546882589255821485753501861985526673666039052599933926233812914065431841460830977577782997133995872487271253239383328883255538048795355217749908924414192938574728158543779007714347464721173441477212785933673555197437148826220850553173360756293979194665592391957011744306141133000494590225946640932003585780960234475767836536162548234421854667342746154701256457919915142131402847748446635668524835083931605085842663815958865555001944954970670101775616172855473283026424748538771560755553807879458866068310376855666170975412123543084634397521402387542223016163920007706574086351390299001270344180187913713753346330011835213724855223888035776281750994363940654643063009550180155594652150835663492888157194482651686217822972235465965468775441413561155103470093363736389008417403636514665335060650200756423319153625301601322548904512624562398120404064389646242395002153225286385433049631210277815279051272987735012458581894866645654023416743707752317298441791742246342843991203701049167233742651934787649919240117519348012299853741691622388581884078439921695374837447064453852544355815529638629754757760126012701902941924424498617230717070109639210475357472175457515817113773449269027473406528838256402534300620639065855170234991844913005285263396246218714729543142499549202634238635552191252242389111688959178075725361239775923851729551656468391882776595713463546906167798998353051738298373124655348217146671524197973281205146305689952493155194719545913895478719235503969230904233312844728943344636055970919625226875870165808121003422379454572216783591524016810465904577514312082261447999971790537495949317115773759186645888119242881409179866086606247194462901044984066145081557654289003977734185572598543535243063804813999709910940142193752546574073670952240182409671356432233214332155551063760241545267621223012163746178814546971111474629238406208318402916166564072796561809523599478669013884188340972764895883889282912739717457518472051290783936692325851148564031098055487355574323732326189957510809696889065394453152300580216507087031983388024333705158587385352500866655091390625217038343369013860227747605971787881378110110699408527239332878832738505889918297671760126306175701172154196950197237143948194748439081734164943012397941085827745303776638636856833174330517159479343662343540817705690344756440871333733873788893491371968802484560706409614675962806192369376324825372407574604579289809887599178580589947316143064895695977701367117663099220285594027819617988867402665165347925534110517628911399741654094403133505119725053503292537840098524476243064676718783993587564518137371091039045273574270710440771263744598367284119812944131379122475972242264536471401247689039435998709492800485422817102910338484294724519419468813227051949053958720989712539879055133542734918160972869054846189861884165419140465744694784772213673813409033201159409775461133072777619188903747079604792383001776938550729760199635164896131127903097138023118025614267467690659027236438064918285684146385925405870640100992486151604739198939289149367360741104784501166475383819313216182979997719432037705011405975728746085751300187678883885165802321768291133090672472208890527966049196942456830977227157516670156009966765484940779005825922207172304132462154483000895402065776440692193548292555140700797587947682468688851809843058537501175613851026445685558865744541331594476829583579757604523440671042702478568263336417910038403223168959700384345774548272768585933693338912486974658825995568746299049726309057365863133657323995000452673232128649701529826359333431157288860746725181828196165941826903021328512816538726294161790175534303190927738196987875805845768671179098750013197951192088772400250277998540024249299314451085729242003254378720461749191160646974454426535254862717189542363050990576332079300809590203682232035416829530102518491017789988978152769702089669447190140413304030488581697099294554020785167374591689672154340182545193292613118266510901583310840366197515045760317071115352734799743034493980921031302167715739713676677271621896350036187965914402567304794794809277946382705371322709521640715468332887708148670592306885707566945533663335472180743881935438901120155825918488531479789341688139241863345930611101290220304538385038612867237661526238413482103798530174883712179409404729353834698493037370180296240276836122652874220401469016133584705719480267486924423214225216484636385256911663801878667085069950863593871216146401779674515030825374369622037185248899283429309800064008485017669620346294866835529063219134729035515640665851071550022725726018313330882099507010016413277171401418750475123484599531072371063297018907708111836559656630360643952624743161056036373264604540738907161283178720721216639817193969169432118978125114567968962608580126850808581376197596787801907789469810020252953252166690857679479879174699439804611162304243135899771865881543115629751314100391490568057470968495528860356008156467686061627611550001850451447294438864680125613213355801024784718813767963863546077101449974580674395708160102773126247640631386961457607482887089395959633137701082492785268071053605703888905477254159367329315320197745778330314670572913200848833150579002494698284761830603374503190293021204460035041714985769657553909165727419151772360206562794060868374397587089357897838538943258575883416223108712064812375623549150258423532511448991797659914542016859746630730873420956563310888279851928811911300885999695055685360122815428915714003291514076126516121293433547713130305713511259760501109003348849277730186069265888371718925855336746365624071645073391942727551797604747352724919260221317286891664511243865104611316349144143103546526476886453371272027402893702789107904725843128967991576713716001312076894344693628162212982376580606889949095158061880357895197894880433584462158107499867035492627202045996954485662022826788731907883971499690095655537850940946346306341190033256621875061484405978999418771551194585069181565259684893306997107977653601200228656803558354376984260925562414298435300586326933255928887416732282365339529745798849083396728724614311528199581299165299262373893324568930987050884241910312626245514820143257656661082307818870219263658033318034765050276165825380793601024610882668896350972640607694265818664840983446740770069059724383869799034477874680154297385225356619576510213198470455343570019615566707858754373660949926226111465796927223580191312507027466205643778174890152579296467349030964567439170110545207331081292668253397894291006605579588771487280474631605966319496988941312979022081971682292667390281252278286592986923864637710792446399479983565292598396946799456056791086718538172279549618578195065668043582071515540820630068271082430935000731730237681394074362397501143895219486651270477494084129289310808990269221410558239497895221719457218461426853228544710612909119724536834671073977175825591352447336982339375319243159039428375666913007738196709420348441583512727554905354556080220251437711137710744498198457765766877218932853185849634987660147577827779894895401721133226275764048287712084467430474620778055236129947258527032323413166248718486255198658139389728073055504483976148287051306307076825233924330127504573740559483828501325446512054878676699561576056069004082492777956047079321806039707461789294115623390293990648548321674767633581915751456451067100703146715050441451528171358230670239886428408516208384595865889776254014105159266905412389778752372260006901501167574260170336562755303336055919530846752445462315909168877684060862491384958671146742944939454503936771453082380094912436034959616460522631089355509809146586295719003537970087806675025412674876787172527933975049456472021385018466878355553694682550580481830828426466527649848228695904122988138496379266140451414427623160130295426120421508112570960382193412476481604736692614666737336184103348972599374164236321823710953649250495595163808218161997339998660279802104486513638806530507621201472787932528031251640611269160991557554901788426013623836519167030974470923096352719084091501975617784474929836512558484482893140355264517657183136610547506224376673785565867804913337460110636293972032499029423083020807151872314490678241168812725371437435699699274326290928251719116246928466425528517534435691636117034396875012803935570973075572834258726725802084152351318017007177965948537371751526690937817928442306786725258031365299217644081506208284586355449858267322637271851040292282837888247347859443504661958606873619069449806826972728228409956916961496637254860865149229071193703755164063891290179232970230912631118748144935771249694839733366898203300936341322985836765670227554612500648972585630142283487066586132808854653744217310231826661581179792384667458491932239923445123530596234923162495983174145628652688430172973804712270616585987963255673511085446660764033892675778319870705106888046409140187253856987081898422180099754536760603534347866119252850517120151121247621220936092425691507114723111671018068907817994687799627874306865732429666763261005500797414040040076050461701407059980402214203729245905080493221624268118266241712572244786313849627044072242367668394076483815689438579565185535550038775756705264888602447382769464585295332834560191878047683579274057530078405029997561222216639138840946822526455180353133268949500679707700528601696026298986857809012678438067189428468502774563840418626194263634972751496927780230265768274181787200259753998655739116498939855031963471524836804690890919750610271021639286329430685993677602702073069100878206265897644492999078609706198914918875141487380114424588355125280268865620314269831647144272881694142202831879178522822888532999030329398175260630986082085137753764909732647799223889445819789334425044858598156340167384070422073929179982914136791323643880696183470982313551939125327309637550413052932269742031734870393074911664868114513773479060423673869648947618422734998660431360493428595526745603416743854248328295253124656904523880318609710691810587326732057149786395547385078590954462205557859331262215921168415152617738710191741436693107871608709473659822304530932095861791359871077645959664901817647837319491287905255389765213909567882759863949379705456412882877882561850638073282363304807326017317284414201672707454594403954592979240899311835769627575406223758590269672796123469777278780777818640654419849000119755575818319128979738338842595261806116584284251690894379472043704173237887370339904697463309494205307015364444973590973291365833299252147569721346894332247351302387741451316053179291580372326012669943393304693136536463216882141378935887052107068281114909429536470662193516980616245323299562565785232560672421781633335693856512421859769042751918637431538150313792994016054224078258304208137413971606494761161831045372215478991553630357013632468706903362400977269859070111962093680906966849680419606072698719920807791468592569698867034187195962441088993935735468110227983217171864977062953182314499702359004436551662567013956435368927917691391252417238873315519385972739443406622095207538200116461601335986133892289398903581710140715088470262120079953713719215403035138926011920228452790088792118678445598695827764833664432129790178218625842234420649004068482174059164769448194259963156373724960497584586877613269259246054422329411736474851382162727311236401896640030570802494518708037686455722676717665941956803742559527845349049723539573639520579290448042280458021889150505251458790207609174793828260827510578376850577259181133276079118453385437678683043257965200018786624673078428061151520234175195692233740358193613047521616828818605764977609199353920257654521790140632955243084542347712528653907735107102895627061012904839343108464126145704366394308173486247445738265457965825611233959880061626642249383594066181539446576755174752727266569478549588505350929242000744439213179961935077684704800047988755714398601363053016494859777742147162123452789055331126791975649462858270530208320764180660855660709118010212261970600012556140680400368532781063943408188273258604090785705294042107419840126723478653884593416188364779087296085025022062289132019945148142854798680675186376221902614930807410760449302046717863146444540188006717146759835084763667295556465505935107581917276552585050018127733909209492898618628695605203662437619155591768804599248728930165945672361549021373038936139115470925958310227061040646196039034638317100638306200129413080894145808687689021460663553144805517204097412887702078905968186578774934876763008095941625311456325460871178492373226961028791088665759314505536630627494817286690292183542473635315011849982001640399789176074269028966000738068679355716896021998263903311260458447250747482574408677290512006892063325360194463247369547918018065344013273320510750280375102239053539816847268614872270727822106997115410542282147504460636660384597257081141856921627559119597981168918697493611083709156176589171154785610663984694485905836462269347111456121900053172708409478751141385744363392157585416264992996727601495703733541168506891468632661643047646814785855637986448144526206276984391339086950297158212224458611866807313236339817181212360598057769473347308464899407956335072458674242822089839394813209616857755899943218478563619813931312896649134999803496708540959040387712856556666980960379166690164686630139208267633181356936401058921865295300325333091963653451673324245692311359439672878251232305639759168868472751630625606171291861558936943776244549582655414203217024775804608732024058136022922251975315779219334289206585977573494143175994587503389705746401443835857595000065922246497018331178521416578879375410889864355360554380516291197877960695706547364027205236115198048183760687276756246975984248600262016413270380104278813280674237115261302389669613928641663522632345559043425598083185688751037430205678982136957656386396894881598021311995995739816272465681303052186992177386768851020401567679588983562981600474306174257555499181332558903726511658570019916767882499618450707446097624561091130586559539946850998019384733149876625747521964215771264434582196016250860960081534073923027501130302716448973358130749228103389236807729210579896700475316385117439143542120070811801866987722646347996474360161281155636325266492500757611758874202315538538901993604281546888020929791743638894142974622405508065049746921834462238867935385166331249149219644138566687170204270820876928620200013677085585109507477087676583888563145045854058649738266809120821770224629276880805201195576957308769768787063766934288955959540760246495285328449209046769631392385573779550635693215402056865589916464270046213440418349257685875525669823344512072817232362296626079884600299893858675303732035202263855108865114959062222530971138575197714454302984365026224261615657790330415461657460924175667086861796449437776503756843054103905385335565845244929892342770021219421858912923094671125898600671875185023514425654198606927224084159834038797304256244269357319337881579956376417579130639953037659777533353549697730026361167654097147457178415946732424278096281819361798560181322865863466575578843210580927127694935976887508284918793493470883277215384234078207642057352176980199874170342753548255842551730068468136175159079139029514331500035589105855739364595298156306738884888653652921308372579798918450073154245409746003164962762235032243899165975854113793953281315378948043515168480619804323305258497913324401963431990251968394920773863521442596198589195375186672396797377219547779559089740143445574560979233733681202575839856538427326718639420917128143090451394992678591067644303045190848400561198859391663538455072602994564487652648124221351361215347166632163450954620977851222919643018008352778916919649406751981583196470147292670427979710073078764127045477254758530910854701090473221303097063884643052455538197287509716632255222456718752971261230779794360260053084366756134147521149009675922818434947962981845835561505348384010650824309849369586076556053161696468664972767571814113369905987320799266670232557767912266930549162000275876132033027241142651222672233580400115089317291884112135857789899225902200396385213540810391828032772502320846725241462136886258842594122588693732816567107163220842869792702858290671817881417380873309186522159557638699692606566055157291471685832878527741125918973860715998768752801875464282262186030659349251372437754084467589838486913340449435410809804959034937681647239809532866973054382379190193242248442138245917246879066445842484006534595741183505390337064812879095579178922384180991903691908000624507717819812734720409061542765483963190951439991592245056042018393349916223465241957250620586422721080952633973740200227101321744384352570548785775724025969997579976388092801417265064633618389497985706733588645315516760058406789490876907755313032969151427077240078021905398385195152354562494787575537572082369810587885755963461690396045415553573371960744202199844468303091782949932251162576740327843731517842132994533203437363421030767249806532340602687205283741371223906912416926206943711465340008237226618862304352279401284068661144709416632585895612816528530804412861793291139463403445380400816565220482661484996788235369199006496098205544360475315538035103047863299215037824885537928142064549765318849967477675060395031656808378008482604827852468351438562341559295650036878814974546763892958256325340837987148556055244902490934513757337445688573072181284721401329198685766250604661176885565712690548619174071890616601295401894617874364275412029856194625528523053587148150040883693298212284804843518592935333796479130168213376374581644575862303375094043408540264504136753187751761201327642132614076393223740180126915961735934916843893381854339577915693683624434057249258668981515008765089567088325278290149316179397033622993097459846288801284399915714267132693118129731386804727015941552310022792954922439436953313560528437436225654553114908809805069748404482329445902693718536331925218781845592136279220520404742073914072030506665886229339559256857693796529819036701088099101548426842525168091019070194560553237105499207470117807488220416256715999275523644926611230028517172489081988096050653614217365030521644079372170123754680107234300599167862094850052165670545889695023287918551515189988831043895870883262003477654660495749916769969273782843884921563282709006674715366854824340900289178208764214713899703683285617191833100015900852454216111968625502972158092680799169120276955427921929963369417578692720452524665257825701079488908689835425041027966972468208832479141198201718262366203694885858328451346641093384054190669321509481532484703274767041016762921458339973641033103390059602582118921694577162663666450304367433796808182081558777614738210275785632823388301309498143730073769339001100776375879689880650568303675756357221980170848701203548003016776591417333246810443145126188385623799059928599321039051214110782809199219310315782619068121290225505746113694820402971657963484494326411011366003808972484345269175351690023264278832507605643282215400545213680039939937293647593195967272539433675445832642017082015075973594171261998541360957348355174011111360405459124587410713222339069935881740681464289131821037095379221060121123094202349271980161480749774168744429436785628191092911897527923592672889906221589814582819731205099597955344173397702543015489275505090126806019949588855632828102947063278324023813532748775072925620323607501995127466874287937166929293034698428463462449222863481845367660522844398495973135467823979149632402201033105500776328365762982176339713142955590889264318339617736808646109088937337155492010234028513413077043287465085230078751472471057024432724584564181571834204897024632721103146028667767689125120803406685792868752631785844874514832553205002893470090805961850787758180738314478943962985680948201530757585187291539786999969461634058467189593243728189664922469911478518610180275687322618158095844462570370431147472938714804955384021633783735848215606548987957317519323093031850847775301971103066636252642323564307109295606234969667274018293925610845556168285272603983772083646186127022521174548747616820198069449113731930143661627300772737687969560186900551791502244787228774801484127962166084125025359920430293453255429836906681533588344135149366268806049278482773505685662729707173493672515105287612144388656909459000695335203100737168327513890964148886825037608277614983389712462332990047551962593318200089431039668472498154459491834554709030391334372172564819237268732530553125481282309039505789096420976008741222768526799767022534257507579184771811008769645773182690544133051816117160918694701413614600425041486832886105330510701728125256223355630074501444433855341211206613892892077212605144596307818257132389691933231795015697491874025410393340702980593596544626485820206388429182247570923033550963215469117190617327789293850484251963172050860082863958221222930671669317929367721403462346139831982322798552827020864388344348123170351300245186563120642748080058026790371145950650743162061538482726005182988268001569913978426536896617184725479527278259214074396784222526592157216030373086488839304152306127066995870875521655566075271338656869874462394266011679579333438711869465403995271450389712441676645141983541560923000016674294316646040534540976099676935956497176575158563881673250883575542677332249529211176355084923749448688477285909360705785972030472714530596296725392505666069059076350788880119497469765218249200107509117125591920463859987287952468218685287702533419215315636019282760669165708025013735027049375077589232827350384837374275076203164834609381345995391480597979811439028851832645375390902284762189651408029212068830708032853818527331109946140087217347072577498938150078238729065222800105175971768727398279152499864448613923084568916794629441042840548190066926965804415922588934308408950711877591054151580332166132882586418206215255782750828438241187094413165723812591614524526439169949895047814082116822119144630282067635484305455112487528656006608746791638080320515615304439711772329203494900042459092292504600938683841203587742130677800285376969400339146833422435030020823472594389289971912455632108701400761600184009001612349476592595991720777756987061048732406483753726531349665646782529186937101409591694447934021686927274461846320574687841667839119132188240390300310369507070832593861507710959041548288872216814773954109829147388014657127249841124945546565118719109218422818756851962571551660695647973481248716975024595953144696119693804623875198455568475904949504473462913304431698719376558333868360679847246803876900126413452537814139746330184464608464648539162873866477472345261236388757371983782348666352934299183872064970427187555427460524842265390110732083859211821749194735296348102502532341536613465161470288999498342000065923186445002077239141074626772276148030466849340582998093994536890839359506304146239303338196065713091396003683674516857148485080945431434674607800283156282243338280819761324091932600590959227014988923077760032958542317242467786958064583138385094031931345167116703281701462138419573807060701502189563112902005689046938991033860437663684097425844732028795808874417045794085932475314698154126801153549597015829652346530577932374312030275774066877730060165547810741131709837802626790204297654622934379440925524629829624044693671030839010004814814888915883546348803900084915212834974631464503213396584207495515846488647719322661896278316121203159486071191509491537229938893187538747410987934719157032426732980917372382628365281443756732604436476932541395601438465473492116816771933535729388528100252182165981628874857519248143959581373472531585388589829077680971507509531128205049647929944956980432153723474695208877687658116398882436427286814254489054283972582590903122363817083873177106915728007006174278759069545058414286109189964784374495047202601199546683041761854568673144389323141804027309093418351882625127226862320358687136705169988184886423365119342894976922489227996795495407423771154838806700038915552756241400407778784306180343593444165291414476850218787179343370634252703089322048894618065806625781954773759402464854314540137119687556302446200927252659210984844549431692378468011888810834364387779043740388301128106780040677526342136059886600407927333733001725758415759800472037941525653339402337785077442588115652696411168053219621899255121617889281648640611175137443886234533642141659638675584908617090139179282099621674686068041336960121488909100921187049860274183548825085236564565533660187331987407643207324093824298601181972765098676665267880847611489263137252585096545372177601502895105891479994529762126226023560965145082228762048652682206459893794763302505028282232179281607751745398822173340322744072189850967773501555851481562180069492126757078106909633621026322370218210396813344498130092750089197004615308111045234307654926546776889108573749422120783589531980214859055857042360905365812010549956730317213295211661508806982864939794901967038262898385117447265888345368401538256404376456394374459356946627556994696189388640213300100121803479754989179982354448661021468859329524308093956740195889520391615829013267592881228589319406712170837877322974184388037682682879039736164814941350698291305025128125876813740717068197088478448662735403219970848558226358948542171610436106500711638289656783045233409697814445150986268536485661365223790197662262617674382338818671616276874273752374985428242909128102434194147008152330652436334009293289216847026904173493258444333569649144450371830572568544425045138781126280471952549967765394593837381520999354019682410303208737620371723749845768996856434658257305613659108713584621387475891089601132828472508327540773147413553611920822399882042421947634701872051093702108978963250854970715881563699982726575029124804682157604042452418946453701650671828898323013676322274826147294272391109330694144524575554668115926211476806301092090163574519548033715089810985367971392792755217672354511006248301149987439365818836063692257030613947112878827167332659823324038475044758928751975018745325980403985244381079479536363001169967383056129634653262396453786934880815987996824225376185656705904795254681512058427942961398546138030055031675559078073070113920008324528565833330645975093756055893607913488359920666382418407401682507128101876025994381404721885698181635321823888518548622024058433276043033341900611047760448982783315329857365141700081066250347384118825444598742417505809946737245595198640883941168400662354249160936830231165720348728382970800658531840102762408292000163480504995246074400949612898036722841406542809806173662077692326544725725286459554822819685383136459864307018396868076440490360436454335898047552969802018907811201691679408850337480929993177312573647458474776408977053291304687412525968590272784317233520805753735391528814287569585305387249042946496701021386040156666430513203925751623478153122752331691925395568914120184161818662908460927490093993109489647047745523300163591623962774738940740173429021281450333486543397396923616985437403228041297006722802962569110924004687105717457407231164421454399233646825443757620017677188893326441415686931255697217178184085742146781484619911643254284810410377492803913843100535808763628567677690822613176979482030897448578247205770053717612920979971110913762716066641527310637435546293702264302864403767134565863107916891178491581170837028417973750606660001556269255132015653630357948229236341887912008080420642525174665947292861458452857134521877964683840341954065522439419996378797111247767383949057045565085402140033871495489158287762210232809197750862998937370207581299973096896058370407684638650249079212375544969173453476587066566300230676785149248225590942398051392256890752007681976469511652158996904735339239172507875053086992398471448715709438529278356677383360499957306807583833814648836194610587857194971188874284677840189480210891210786441133181189548486305618011677702569105907897806154757910072575580909658107772700611808738271776943285070133304104512889344870795262935019911841415908472947884345947443667923479568919718062101467812308326800651656149759231328629120964282538154550921219747772397929175673015141690860833945324035966933377374688736789061646432239578876446941585633932059431175704523419147768526741088409857810694187812425278659063876888500748860261998976674539906491835793335307535710784146163225501530856148693759680894623473783316248907257684186865850116139729702571990016190951036759431560356135997165147190687897695223446474268462647009466637964397868098086549006635013262782563911884499142847878732856388481286467275165860830555320803084917969202201942535473587749888653866068641036034504971296490499587157245825194475726422977915669715914691027386783352527249599554243243314573753272563081929116875998491131188811607899807834620296067822333021145401798476800085300915922953584981136516188679781035119054169320792066409303974605886998248676521124588679620655324217612406770622785601232817468962763520769306921087860710436593566261964296084141471913109447047628877338471345853638375257051789515528774379777727034143863056052097290368067873731974526973406372728861204573187004747518943489146072131396007877543468423016170601427613283455851847194377224499139161558581612885229990259231662142125610030369084278772969043315617223897577666281952494030181425664269699215080055437452611078171309494546070916425796975465916463299783766623094131611114424868449188028429122360342479963694526892484446332200735899936506952358781698563153611508934686684171713051880401722360522314180446458496271314228018536247461712906676438554619128087292917632486935830873951316416937744725318148795838682907817423725398177778198969370862919856713562372348509436078598002939179033567548385086507417437676745056562433547137521127939463316775679512852963715516036809891917140749051434437545407333367326130753557170730556582563290419941795193521079372362812631296041120598579424235665016238221832845826672614029361194535358125596258686365952297142743156125282451925681258651699681608939758117717842252828698569721339116017906112025127367876640262472334067772922731687301918631833060539274581950308040523281993858254110040296253757402354945923979763556812231260157394387035416504397997526762783870691668237644571259049404348458306041212133061465908690279417934764581010372276635852640589229764398802754288383704233238137944345862835266989412421165754335710616891514724363869716914913929274671784289691404660532412228606400604065882563846817257688872481910647736643243830636576245506281021661073051327410429246840060352214054318365123874770827732697490761827968108636385218443457187451640136144903585417223022045924066380965270600966969743642762838574640988726746288146151502075669626989801112578632006952379496814712194769161426819366416166872732388270339429573781217948988243805251845058887433030495248485827433499756526160268471558362506045454779074147893900646832073028009083964000912320183889919979067210428376155419287187721887445296064884029053860431693560865144639510281626101992845671533043794677052374382809369991988960702777939718086405906317756535934063688319709592442722780501864036016369745042967896381979306087288330323404774310173426971965644087483089381822832166349570935629008010695254281224356639087426018527957661580634475095204923789116125994643237299322023802384504055674709421754083038581851101277752700699521603007725972664294922509007676507328799786240829772922757188622796054241396688110381578096276981496931760715662277348022810401234102889007007629750967967822386796445982327028910920375436838398027567573470917897577088487106557901878357379429408584954453004822209054725444501989326543003433831830692736076278648639927996895249135509873847570707194214696684079003246874949733678868865244334102383184046114382003910427447838472754474361544084017002686241830262870620382037861021424106348072422867089247137216276099778042505163860881480704263861689461456291909342801330854234634318053184248466649097168220605318472183723077486250070368752424853945989584764749660055895327010193350126155795281469727213243328925561221144523836458886484259672800301026874329022856389570477131032322599506504094140917323935712116610463427368690232266968018189087525176169564963635146123120612115383782128212010113684373824140242485003009287628184439416617954912445022653103559781548459169297756431150008080377389298316827538973765055390355098772399742883490683324344501287180629604985787597712763106804540472019849121768380777805494898525156199736735363492852599891478702492356439590991017594718477779911630486662116418241730357134148789181630351475328249169027724868446126852931222602027342575812591169804522276405804276425106630629952500502463499540446415069179249532354885480777375355742570956973191915318602117417179861550901327929649832114932194306815337898520393511611068941796910109146592618611340487631954742923388997131594936830363815177970813648943417569113811098131895491628476174494510759642161211225428299586543722419317317958565239164502498677170312828542562943494810876003360845791823234808635653245644102016225407398262254953855827762154474125860695084137594446738128162228923614602359564828410110782220299377888574890447613519672106538056931992987509200043884833602600392830818295848210698457136547221627503470751410321649292918106066377769148610442092738633117768210698892767492494937140402453600617233923433774063248980850113048155011989266807904992166159573402098662310138708502148581603678001184345807542679147747046596771493327852390576925496502154714419844572871298897103363225974976162264089544478147664588482774635032987318715965491870023953362074472854749626150067027495332779447556105209086826467431392216374449209900017346212459973618491833489554767626956978331878089627764653372678939290472759472376475966270156464492113508376280572142711004060942432164344060803281556438860451290085154531000380696570654704087975838815732466323089679107602271459984831534922835513480955278330985048030277303653501533409612388023528799251839049189218603421488626409936169720275661768925311928402199634227511795796992800846222415388870982464074142247958325582250972566431640887960628715818062180687233044332575519423813896640052451042622654230112980621875486726764917789311175204962692575966241396598459897243295890401012014357858604762019569382108345626962721759495832561524245403956453834583491517157547050756177795099481366594704584647397488669384484495123897268094862802557183117944415548602325044776949530859942945112797139972732769529939484302192721107651904384871535863780915125857971903091581698667504273902942125534047798190877252223512915900023923611946879663632350169393647808919499522585735393709725455266003390288150739584513552799095658226643958661214912870612177175644642055093727232928226466029180931622817013672728924788259144643828201969242106001999767247813318289450195147519714825216446168572071843579833828390242817947568918454645422767207439814859629864115030954705401235732661417343043068647531490821015659615708244095159619092275554091423004350291322634569309169400532726725426541414017574374440116644707669774521129886401556155433147720695500020654742683260210508472805444826896390137679698292541427017820988504349801730072555746223253852400680868701640575179367341632526171629740711736697449384028428432191283462864114832479696776590119929890879402985497676400037930635864763238706809811393556900352961526357841142987357764488395828728648498541496793759746368273700514100452717059959041139879162746126408053477011118069071023071902887372065262892813021500419047128113311461833537639574772286841891292079647544938648852376697877703382128882705939442131467973221904150667075154645907793228476042466430122445175032870999121188340490659655599207465855574991261254371829508951135488181872405662260970620863459317997256594269240031911002718646080867917014190719152047013265281311998127351636478772542304134577176112309654327315814720040509941126065444288935837822720784314095976044999740697561641326325922747249093008443240198784036620824388265573315184761328170020660315992902031613973754437425245858543636206937972702077003403958372961950943735608847674038201240813244771903078268910175539148594401277860705225878669899681015653654384995871672060722490455647206524545150910248821531364013201425083491710329850572425540823271921479948526269614530267990983590795358991759426698184453530320221984953613355219050448804212962086622818475491547486435017055512519063250242835843352334828428405246243182411991413111145232031900939394260440112154650153535920171368409347790603846668679076234155623467452575972990358588301349054927245821442231855146834317344055595107176388273816951597071328300895430125261676096222196892543182493733477555397956565512028961513720096837247365124160868495144568394960630592426007718965728371643734028126782169624284536575209851150659415766106508927822046396271716616649228752938864936896257586463844426667878301885922752552933014535023193827312078230747836680864538135342400437587819363341429600945653534467861694842510437734505231096337708924408035492208559991683698799999166004297982635183598869279234067162200850651206369465095221195385418830007004290280703661541176131803429666360480255020463792357082335832665907533287526900495592405907111379552590672375167503965730108587416031227973057385822065909679860740397660582042658071425423159493325924424599657636348565294169685357025260776258811909661834051028098388725468668027093970315632840586207762982051368950133851523662904646717624116333387363002516904406839524620050371142571106767023581428849369416135962004499319593818650066814018020829583827801583355993842420581071601124603457255282421203075416758514672619281612590572980584237708229883181469424495861124804027426561843897846626658776476494035339988095648395239864160700385029044334772503628778642587597640597613314846619763427630535751419075741923844051280841730968738768450886604914296164921107834555456620895549209795247487316535319932240781871518585925576625795158133381312471602123570013787577705651246982815135730208074558802507305606936871086071143139451351297806780829780229808300935846157112175188490938375323575528850216502630481202363711023235016079237434760481843129565394720019881600534000934727620758268496306752792588651462696987672056164005728663564745306548439272249399754059067483791330755857951974235861786519105292637896338857633436894299042629859093536330126879196608662062904333914090032552925956910513941015800544968193453785992308806888670215754596870688411518213305218206949337689882684320122712156980500250505667834139597370073219665471479474790520470800016904036645899653818780151011734914519918208315648392847848340289339219393325274701191122581326596689462805084748850520386473904931385726390687850766086223481260437789112380531845024236752350272401971112478749815636183588687729171082823693030462139605374149148621812380651115443886313720447231352956718591730811851517649273743697170430251831837742274768661076145917182331393624119226850202904453311469445064139730039306862892224533679964396856045726840368454315152911570934612551253153657850661884824747262386093254284140734106528344784261519952016266741598628044978426900054708372653635882502369954193640878517511704466520495646206451714127472782635642813049248151550544081574531956785948978934697835427453996837949691637815694419507574004147122694328030160611691964350431360331361768645761440371793677216572130259857983362338559925699224772341811614783224700472576806308545834769359443518224260055890932044707349904568362743931794474043777734072960022593043215414005854842429923133437390015689542073504810948107364636560201691022227624530304746634607375818755633359144723008044345019309418683951065765278596304889478735751379226339293342688034013818978352456366635654213037079658431309283838463758090131957852370000329083245372720307469972393520988539731006857267420711389789765316597559186458469806477399836224145735733481963153843204529054059195558229932371508726630851111131763409405609512501198467586057119091822808087575799971170075072391802190322866763729173306678154370886109366272081260670085772859888392351294243808539741657178017307719489299605512126252498435940841145109014778671668293370969936055734630069295632547406733326953228243402840229969076067776800949848909322018079804994652753277462174657342079079635223734421524633113147049849947622532542266177212911000124410106611710610778716026514322337383410477655823883179977330023662647321602146655691676723218679471105675506196496879127632867617476853409475525056620201401694560557475592317272084863894197717030609851981960015951252152249639329282223468329270026007970886522327158558751300026492607127314359873790975706855507694383105689526875101779783513961967582037388765711990373727008839969620569577836548993634443725652511689297778007589626197531343352065093579675328998922887451957914057573083431718808176020706208350295631146058289008043502386717386136286425414388033358957135045406132112243072394177575848303968214013595503148031047408983205532700242746202274615187156610260668993431565923728221539424993818994009465508014861567818371338509582033517729672109273618469725856517891306537066302038374068407212140996986364710896296952650985211201950422087676061556168972974733113711393192687645085911412754548749968599791195151906299951384006341621935958617205457734852589861248620633585809136039136522196345691344340645216226950536792494626486426700802331756367758988449959712803027344396560125169949053411613238460416613221216492562881257186114316828964231420817412608709176389541773859782462011318482960405011007739006438323289118991795615800128575015975037256939560015065087832574976643510070046539652710171175951394615133940636329926464756458893309845859718637511379795699966124641379164295820949586493234208676078818940533168549149518125220445997265853245717981661993102388576879612290009666753959289794767327057500338883916742131416709787491066865570728540106068168917305519090071623207801006434102592342640601581021455286796377433102944643211942007222250971028644457515737998948971627241767340454046097014760305496769485640897235363360700079663841458744128278344221193365135386970313470703423390738665118950854199847185706990187650343385062854879780648737238141530917235601524310605242540255833006803717917861348769266558716823801174709540135081885469345381434899165723577917441441907268086234272699983562340787290161852574365007742693159572085890263662680653319617382771450998946251314705215283483636183868446912109029642023451118966210500422895676413938119874224219156767675967543756354831337795049592212403926419409636755513181543455704404088290142361054297562795867815156460989639729972585515844124815955906524521537467349763116813481222659672697381616729562246188130943886913535265542758725142138736694754246622700486562727405372284273731995738463974504506363940930872158099762726626831831212352486878983404889389265605614027709214913332511288677979031640250174989672781227431499715208619631893449787702935028657587253927607425972223693490980224572594386806924255894941110022596699130638943104581201510370369702094378448358512784311008274349884248012551293337864611203496545755635962762041413698137348897483192484477749706097411595513532044797011115283843331894352933291115059399221949575224981477023598973540556460960968927031530789275849769332114398824977575108423178363296252862341758987606012439370974364527980113915661816928786041036197820537758962222772070710281577568897657116307928882372569492539875162430671123168506865620676813569918693529354372516167132507546651615521545993120744269462691639042234953876417111455827656309681630562586453411938849595326869581292304515777965309997622683629946510762024642332006633303493020022425678259836563511481294951322752346308784768253594824117239701409690989741320428856515017106100959415230015745611680850823720932596793891959714877739085268136349296110789623650864976003213360892760597750896065397450517566347524218247422548255189955854316568118184291009903493579606103854883123397070927336550948686890952560063587258143015024157178055609201910695693318768107945234747210068729353084216093070415326718735221543810171434345424631295617198650444079074634052805706956571163673534283922240879626826480187677305954513794205260579577308364136783748944074417861933591441414987571452943252501971320913976836985881995952098246483247093097774741873899254938160678161328460216866884455861206217307572737672223560277141547575828886347297135821238207075378168407185365068501385750884138826412926838547500158585583129857127901884681694406172958689296080632959450448135964017004855005392894752118974893636118104508226656902480474760544321752195311267700145033611095061830712163385664516994434403192045678863464382284726063146342207794687468161869314930471582973653726199359480427243319740977571590599295278387781067331525454353540211637243542428322387132796504939674238990782053151545219370440570802181306325957879966290492487185289129769982006311772771336706816757269184993512093144270476154095807504575591700685965003632614831851382209517690089644788617858713302403437028086150466281047364597817842187247102117643483142055368240414192021251750609166730426669835019387735653891925360649530463690181234034511761458780927008315101954498301096336179695848787731512773516351586100828348948349357168049825241853732314415167018262268858030238965818285728305907332738100444415233338746167146113926032816620803009578501432699779250554777615439636255198050662438341578834572418720972518936064060426597949723465122218927872473157483202377812445438798987162125392218730365158562076539317828848343086997130118403357729747380305692037522385743988950360959487392430523170612145434144755686129095095780377733991656677108163405472240998079908875595821208884675781703191722883233863113394479570666921727705993274888778056746017171972106293144366464155448384200145451088623541966357842255508119055320774013326385735944566435592986440474308142512513542410621334409138710122742429343954094881938164851202981858501902866907882629012277630829307410938396159838458998929705060220857907225508085399469785026936564967529451110219305043602055831991346197886530004321117638832021536476412923287532307730340032289888832325550939190547834734056632945652015357158773560026139641240954523061905078237591360289109865705443782983065949426642957470035940760335654490270990890142567818658813420686958490824195588212668137993285303720645113265201480266239008089476729642204304984618290962053429208439302569151603351962426195782913139299149403387412401150386700097479836420564826796007852912322542348134528098368452543206686978653729721888052548254292716559258237456767011614397465841337426348269830293751566522746161100141938530548877295866916878275006288076169684506052787980503466014930134976049004233875815145978830710087536337662322618676434241257812651456314101161522351575099264450133196788810321435116800388707487388243523881938502321623949048948966664284118964758524374552545683034650142296171392528669603936432003184136417464126426670494546219438036533040000083032138182439089266001652903037683480864652763706794363139745273806000846467915092033674478830440528052550770329262203505915709659267048008385611562560249008339995260432475573449597971475313612674314695708533120148408593392703887422885884437046629648158142551372542428144876518482828316641826921060516858101816385424131344778186446083008716557789662663040254553294240764440100211997777676040565883404639685821967478836733163276212725299822158711977807892473225631168805273983884171883159842956495432531392440477141123573431224228728601143837134799894252653417696249946674186571280736890137539165587522257874460315949108964261268726309051025836203424907274105957242034125274780114709146658202884873229748312620309506794086604119138662576310040216496104821032281178070628732577661241230261344542632950104963749723090952228451679869050568734324218348374681450047834129145201140333154436388424859728999555936784420964589282212078231131835323172232512863860192222392117482432245290800913633756240130603691621728135050986263126584518915690967719098637749485448366411085389731927201146320548782838888065522873159833379995007791358838739940257084942291511871047840989509692923356588622989976837388130118830849015242827389630413126959534946748146816471693266240458506765649839590987758439245556499159574038503186737795060296642380441413618266115419104429569085725694823856670982794501340058213065849798300198697689223452540341769906608815830518853268180070463831630277526574481744694959239677301680204347099745868853355127944116231993608443564045531662858734639276454757150628304099299448665782736893324189086606713661771453347222807358368445443590247741484436843012451663982439386895360904510292325569627841992739843092499244126385420427266164963498254466302134374943749547826552315959569557609037747210229585001014381134130123048416551959243962837991962785971674483508033563679719166630996222965884675653908289478918217578112091594992294922114464202496191614355422476823135311904377024335535536688260336626510325761057004994544171088959677022159830788399393733175348027908858097394165419385937940604153795061104057487527292900849470254003880818300476562157858039076211226441887476247204344844362836696422982252017983815785785519059488899671081992062059879155777927180109994337450622949520882108788624288970484471584442708753491550420355748266547471893282392291947759288076431013707248551850696888070569609639304250334382766181712433586951325346357942158665451770581580308227397992000244752209420795485107772868948674888615215724148391471187258127907138440924685001551642228735549205250683546392551967455890548777905596430169932688973681793095221713178734740221803464296918464949137106135216825105079277035458830846131408820819782099273582919626785130843717732144449875972109389765122613691676614753869972295988948279939316398023642467393296286488411274965923175467848316601890364729525379934924735847492531338932967295265165118202775250161577736109160332021225098682104281704715056511566698087555473866067131542021034339858096605190753668010269788539547762368979190490854420628826307120371273900646468418041227260303141183585299112531779601136206596338874104969487152914427499615384990717177310460925941140598367539492967672890914803194777774758463729137600219481656148367205293733145398483632151802154721249512586252665726378367842393251729407666415491888633486544118775039629092689225363194289398059772156847759864137496170824651698027054092607195593301359122679047861533815419488573451175420573283681493375521893374715881559290085380885052571701667611250884270741194337048004980317188565774197638998203476090648879179429048613123317726541506793095156105060469128084843219756306933164260199697221315319415262620409138182467564381759912734597661016317805248407270422099372078726179825830635198845514764529811019571472828395760883193405509429850530927275766984743336513100052663825797629925481788076881456630024234632397638236370831203251869869575350225275165211336160820461316570352814498604426914756508362376523265111947140874848341270043593861874584663814540937518254641860194640518286177301838736657663181462931912895411300595997724079838502436102763215791719609775628164584877434794223941436592332963282675674101910758108805815563820271262559997440911142182803467966480834726016454292282808702874982262779559774628126573161905858527459888612765961841383186654023991197939703066510042455509903106078877003347726979083200102558686361913764094088883517348651808036230638541831637080664035693351527319884227135789462938967230942117582888734111612052250568347550536917139596355505106381002686748151431698983370118343256142000845480537653718418567702790056331833618238472490469979116384079214909690544693294845238069273333594341018767097650569122672499229013210635992074547134360871564034512692993737277398364296040394505226999793141666627691140901630172585462501385962053430164312147868376675291984100193283789522121082779240879641042742796863914217418853231981990173937387665918380048689513343943270902657788507658957229765867114758578332151785595235314680770774824543599699367591396147565088498957872222851816721721668048142323401404813230379667015687290242950575680675040432647497187221559170033056059474044301171682723476723370209381479005566759747658981331269990895450644592890020986662945411305814347642535149918260204219615475501818315847753899971436712037654734562058660054234610094434959110448573928081266307353600039712345245110583464928528167940889780290573968580749404447160391435759832303440822621696699817061845036950781357570163328908988349913621203922488060292086494225636098214276906680406116965005814643256478084023355123622492471761781190960241444742727659042481044399872300156085373462416077086867730495366050082079273592275680925503693902912449880283456622077194084804128567786012413293431888884003731802598959831238476120910007251205272196896208995288175808148286859602880262132492840829631703614506880473172056350409445584713733428760114218285510401169516722421690030543650019622636460782299341035224334523705694109180418394179270762576877184349800078876130175263977318787719375717255810215935180396001841225294917247288342924566940378098655004372929814517950787532576146889289895213757197423659428698582578792170842023989555950465854445837981044549243212172304503254340939411783061682172918497358508132390002020947998803466865080197155905938357672252512991741708769254272018754587971588562743104071326831581506922739147926940768134055118680637000150889649686034633248048036281879563823473566832373580945185191691801199806701639626086007629481876630581650154254656772393726118156344116309431484505192256543772876782269461350560186221509329125107125819116890000771568656881554545718688058547776579485896579942176889738581671561391596407589270415467714771540695538115865578679828715999384827792872105889920163944574318478427177960623094206600737918288111549666189582220393661560075422592880754220248117846234133312822941096197279492833573172937094612988347131967024044690738883982175762327573489540538480683992135062153320145877245653447432184408164179684755923363144212019688689038041752534124149970621201388022851173817958442190603372124181377184927445753450517437625099213449081802622570454787100283146473129076079697167833627748636731285226184673906126029288356401656435562443412181831400147968800405324867804164006461438860077524438069631333405273199838916871579126177870757493376655845876067205401456223897559520658464050971750536055450822403202002986843491467768410202644944199118138547270090964384203045919477629470828068545634201417304518233224426118625383575003288498376814518479207130222916009547233017114278250050694453363682217699817049355705990536020129362657332410143561834892171455925095423622677296424440177067180246086484607540239553913835027028196030329081727201120559489973857012220292198949378405234831270343665507116936039189017657525422282446140771335533111695133858046686983476240137344876115152295661332906256743282027197756240186726097083280890528538430290227604700591200817115320957540767096164247747455470812034313073998779259897851898579469846805024424763588400354428249309811925916646109724599385607399872886058815557835720835166781064963799669341553911899462334488889827829634234255568997559111261078306010565285890340601766609374200760061559616505058125304300117890420915897204645943849011356821864111917225191366169284005695154205356289894374585409937508214639374089290760114326592825527527517010269677571538332392607115947792197062667739383016763779102001317217549187751010202936284406778154139996732575784396898849284990663173869767020661328558818982799096817299263455390382279224447583532937358441591876521654779462173528319411832295042118047190219918183406424408762419046143159316631282641664783190891980755725547606897900647644778117831052167133291834343234668101676571415951164510953992232508261016240481255643766181275907877263358364479817419711630921617189927980438637287172440431011566239939602818533086811058649342450914285002685265782100586483909514268244015276359736799662832501345434132541466467220597036181000808135113875427034204627596955181287607605506459227210431906119691227043533085001202359660645628869527114103424190085737705139157652889672987263140160174478386300934427228360874073696080120319189790893022155678422347614478913769121456780271755795307393480242878673553231350066145796064986654806068519328041176571441452519457715822874125218783132814902183128058366705511509375068555435253995289883080394661124153749889079090279147006927711423107047717994858914167408394774375835346243253249444882149511491535620512958251341858628237556676888574525982500878891137517543072631294744794013100136311365392466921739578129457177436101506642617745563445110601100306671636095184950042572527158794598206360660295259401737716002030536185883805135560532971176310358290912951666683664425415528508830654696415291794398158834130967065982311864945601654103718585166854610644668272654912278165195840737727502720647345693123092397778983313790776548040136452480131891157252312663734353589362643743212813113231245096952818563597342497258128278533583341467847658452402567333842531868071209084479132210232513173633807805533381997625408138831103016934337103005143767620307870693985901635041407414914410704424163692384893768342231188436039626319486810382355747306820465313311769685011918948072507648849637774168924495725465306939551482237887274105648725857191428867574241188108247115077458773954477770714395059701009615911864429000800767419043713353916802409921490758511240775183589746381430606873102386382229639873210178281410297462394809663886946528673649870392715043919105183114490805259085224275815001959071411324605801729723153925024949591243195299913649405490493551319285896908366788010281973495094729458048951805498773679204527171538886541724759465213705636023965875052211827951640880818290493803802167976588782547228236440721028572346849278239412026287069858783381036213064745627149105588707732510461478613702514238817725577234349326227129369387541694402525081826006035047083116198541624469051694444566872475526124793986865778407716683980227535649538256329177097517695847997026822575594371334759708141919280080329705312667406448996026899060860273827974921719457715185971952229396659267436979289646001424175986237924850190150590392170060870454149184932301611556825029457835262097912089641748115814486589532722522732846012032220959000301920187479380239930175834798625375922749789081542786821112833895280904379757436166524523414205285388050113208337544249476209293406122677902504564050929665052342620483787936914384603505885038992258676726018832216532844795089744899610006219454324823132774361676251333053034844255571548130996994442916113871389172043310230061309110049366703095772869378625442346956496307001511347396750254179729128061403790405486994813514186907846388773239780912914206814974258733992304206386436852877483390033587421816300096740348659559638694403969957464960956994369421793544430648325081264290027853007421475524745505484765448681939028886134035241182245054944974220874427935090898471338896521446654247491190690074334822969937231841459627796585211492620600147676653323190573522604094751499692790683521199499059742180843087725921077012374862855002710483260932270968303997487439694649772238149112069809512146036079523078085807303159361606130449053510953787602349408802006183524560496187280208958076357438772825113405822806555559931164382595596011269347127763450231911182710316712830424470488951101286509941098342722075449794387294317469948033358114730817275152885922052008046855226871352784704126503730566253635693529029152568597966653124269801921153911173647393564633275553071276756769251274635712868997023258301176091650252756198603528550386179580843941952215762124484820396234477331973633675884575354633163939600218951263575865096355876502589383389775179783994212333343643028942617570646169057322172311413335973578884092657116152680179240234569529753346207544763792945604020210148495379530592532356093502489727894377527422680123184002257021555924409935055211897306679957647992942495448392766738657852340932497961330589769724658998791142745426569216261409475365775895897675921209022930167586873550353960220285865222412540312270014336753753183736416154008715017492109128895845033109658877392571022059873291221513792591129955391516921120801685196424597024256035696839932160955122606913948145746331208896391102258179092431828046684732923700623374573246797970110397777595844852726991564388904760915746677083009559944704605234694905495737601099310227917093865921057196697116792821440820044140871916398028073604712951920357150420785264205590070221291176604299228134068033383111413472449301375387260759372577422360591655617555894099692289047694513885835952005690429113336207551690213204092375201435719591362416969977640717339860723405747474692961610306143370554775512394037351094669826686064904108174397701363363454335266160319760684204726117535315112512005509029359068353095441932097850504963617172250078843344893976788305304708539703936226597398589001935030885279637171034358054585405231710774092953894975714533022954849350937084098610346902984633499480588258520825359582842429678254749514219049559623227916976170298816299305041367157737206764275446156535593311105822286104026253376920797267910315751100403277835010007034576958639598662661815717760949273555132714080620787994281922299770108018684700812728306793581561692154118831933391685048739188880147543910311509435317880851336839549409945395551443572445909702410797128192398064699914303552836190672902372388713055930098333339752493750583071754047488073917696207348799041822120852864360867617203320621406226459536065083907315860307380658080273825918908051853599852722776681100175092876186072200380414642257874017275555343712685132446619966260366167435751816193164225451650108301074527655537485823172790168999774219541299193213958586484443094392586627561455465825892521577733085041098897977604681092466060145171340716635409283334841868709696875447712924331357056476188038107792650012318552558112991699171986084105786780343834505886255783155837402154601939551250692319198822709706986824322035837681044176229400480233317028387145979145128370380288886974153977270653136205759903009616270733734455673223132469576037147890305106616373743622748817232664020374442041498140222344700599137147328027639948766895528586759408538585300010936549070008957181811689388145347831816378472864063657790508316707683777227715122626891144206227558410210459555022972552577779211717767151844726683917278249333484717944902546803149550815246497885515967236313125979331405256890926086984762841363988350348581373487664547417125831305737332307951100952546185156582604786179337342266872512671697106228511660566457493198455758525179406726166566830569599551786927834490582536862320507660609227740220283272532653909719058020633947689602190777318970343515855126091475990875745014807977428180268502101853089689392769575459676171699215067944872819599635328994218409809050177587620128110245638723836776270305616771260070983011797299320712893202293659628372312134912406611326345511880302883977456672166853373655089136475718889866800351123508716899820336042450967022973699666466172151153334361027044634718645395796312486569190607851051422539436798633770887999309837276831220838248387254491805216984306480750629910052627712488566797903251990816928031589906364073425551042461176235518295209014410665718301580318788135683703071691707482875699781183225599353260205837136785442971354056531548353936243176174521629399727525825605141904568729378043232520056334060639026153539097554762732022543826012668001136447785859720554970690903373858593462146773188381806768651762596838846587710076451262780110984220264221758646145063382095587578526852436267162704711037567947165449309234077909871151784364002402943979101076472811503949822880135022990996573594501813441267231231048401677902933070523678177208806923948600144645792906575814078086976235863341015867171856031416653460669435233956916204803528317868979180415293858432330115622944669582037544227098097901492929105490347823443307290799208189749527154965520359430596692012602228851807151188680946179910332067443603904699309222144740877815231415421411724510608278952900794157548060321050776348276294547853285000590833533941574404219799033396758408731787677878504967819383508537414720983093892836451405352216127899771507003576769462760192067978224493482244512064812647544794959656706598409877418800757538928158147969111494628702673721072503063378458801617661007656419201430455630001355236620116900354730583722823300725288691650841285972334072801858069729033151005630889965761390028142987523396110446719613705369604800351859812022780302865931601883800488170550683190530468493109561449884628528939207863643938319581050689304147714771210319350118104657544651933473645531440356142783362647238469111813935710978018870911038651271059956940276033987847719168386804218353413708093610422314830756958165805364757391941599843984675316671949760370158117365285935960609529139344584586029841261881324540045571098639024048829973629942772371061532188377157518948623848047907519918578194231156566083353090879948635361670754822195042175281491290188095163093278895754175153478163812258725067374410091260923936210937396345503094770280666976179452008539552808333612766192119534071425491440293014251339713960885695216512648824024443947757080826583565433452417008463288087492604338852791357069824992237903220314120355334893778562074254354810723621115791785503897542555199479373986024277450745867150911650228059092239290379340011154300828327483089296906054232152331256792841275040866093707726037245013094308978977588132486793268875418831476239187290504286719480013473664719117323396939524129817490424486103059832368622499904676494375235570449507358251012893306716020260676709310402830096396697404395512649171680389228148351576164878934880606676007014579925252281571999278094843038695298390863486808517579732728904678370383047923074547410735118103764371570581058684108274644143890573810610756544316892444269490016566635550464353424530176775603885647162353213461653397418515538985610213485907227723052487979409215311420378074023504554812063261454570365531316208921329050803840072213516190575136425040565455494118253944725794807375683734888172229789345759275589622289131266885217147033986087303227373590431641798404110516887033596947900749844120126064490977489813838342954057107765013626805328076257496242969283051518728788841412725486294459010817078370269050219822132535364970716209010506848617532764060003739515869065913934486950589144963424742087147458614984054170578463381731729991877057854017547129030538815718550530961444327725317140333741182352400947724863020091480566492236147639969388749624370131681826223562904869346474940034760005682106235190906703683625961482470822224704229324356245129149846715304732436655302606670842210298257069095518277836335740884261650461742899483966163572295576667755423499064445346320345700320262466878433125978680727705277899201447436823097834508774884323255482250801726507196303668328972160787226502221499431246339811096958636874748898385211413637777445321752529306138313898344882883599136806501027316360931499020828986166741979370608296993262449103237212523269465155895050865860591341552977677319446290716079476816708714980568123760660698818380429217064139990679853087238145435990774847841458389070951875715206465051067054482721938394938275966362915295998652282513736125288252305638946248895409468656533671403626195050936631369844899854507257038186950033890809044247325449219446773010232354120395292501001150977171821968396575444480916680139867120445935001663026567059024835195553131386969056366502010443777321820314299311486306210979642921594693588589923473933386319171970460222449344221827209129382305135181503239722822459423115796212344399371818223902977963874415564097357823020656084607318643276783879368730385312842356575498915587564875040948959544531806146176051713277977965337762422128080992918840094352695881358866397503148322187631221713030917880922960586390158093070324738897875240338583471313986438105747272014521752860873627971615906458145543677179072924193054329755975248074671369972290725255817906502593273983221637827218907742590651143952613189464721202085335548013484356645134692140044877140534763299168587461649686986409288227865000817114240237331580101733174657138926808833843840045052840178861167710781719379666371189961916848172413373040301484304104614271973091561714897219917195729755509778533996847314852589301739256023121837650875877464082160441550317708324231005078362334905314781085100395835462723141838466559023049219733659996068349326458008530613429840801912538719494575821891961287353484911543364798686967674873200748418012943406242413421505582906176524957158869982752285338979190163267604214865510849605343151856056827017502838854838219650978167036962603675795317708898095381587430030406456999744216115241590904324503994919378085729333007280479775637731111791976965218722164330170774931052929142868399689496688267945715379227901957655641164130733833330916336329012540588782309387196575604729976526359434378688487001216290540171865990198011177497594948103651035116317727114171254382768318662196845050030507062724072603555759198110347638903561396234373671840432338066269914534048330121441055967790410547403605095407541876663017575804637373794466464151380444060947742450701601864075197385751736985390497409921264994512522699757802586435408314825930249455947653869534386868276919061421863242173726362006593164788421576275053736919435363675457013042145610796423041341877405331606942619858012173477910378086940202183384528042173662710998633462244966755388202979418093250253002969254094550942668297210547736381008185891776833544136387400947198976128398693887395353103598916802362357573860516117642934768675451070734808371878204483319829286299581984187528771762773025792421978037668576112103105750003855284555357499807771197786226591782082875523516051532324074466413206913045009906054097844498835939323441627489893264987488383767436039192204719320051851124273092762407879149859054333074173849612108821398012156838572006575091628198441201265864091665190615435960246771727649090057716201028688367137531159999175029230893979906183761687955260684917797977570904429721334874656606601257541426437593922717688661084958731395040251785964670568709652608487404817846005957582468607307945987234001193592463481430803672115267207446406127860080391731103966589369250533906509084097426276937675949543054086924000273009800321641871380102499451516504665333554087648436824856177724124014804039610288894761299792103309451894329154145963273203535783539797988776456022248701832409908060147603341946193404846906407682182583768713448196438022452567673301002718001325691787380800389917423580138639418520028016420543058043834679606825120660932541755209545286596453346468656819997182386673457149523337945231688747349954338725943107889982466801250800987730477677058445308282019161233733886224312082187458978289944021287444659959169072883027804287611452321288123937916658991857159215131117396877842799210679421273982089412679959019215466873312529129850215486711690566479282979217901337439157370188047827840778969739462907217505387155348980383144703442247314942933086570174864336755568566967985203876654663852777578087338116817377774847478590874062126834584833677089797063293217023882068546805393608177079817876486674343233456602276304059462434029525672975988690073076584072418737253824362913743093842608484311970499181222573649549971122335496629981856930187179860630635351314109203127457528079718721692085157482265736081829933701166807526467968324386639621466234605652110984011349939401805201025393019480800081806652624141424536644077058901666781863860719460586622901371425406320888369081735672795351961037115026062114025138755702633932376324251898714247088987708728484656465225894585756325708467805621429545212876376750135753196726921593194037192366884078033355286755477955925531574894713969148624839334669237453490571169656572377808382345594082971964324498080969821421884821933689579504947029801551852342907166793414543185005151452043091770548515137402845010173508570046808847914368768932386401558959159305852744907639158335102835007673745745324435495246073160903364413709968074208915959702877429769058799061457397855373623855660557665526868518490550760893561106221410624752170167214316455103020878828728876867335122722441127556600894709314386896033090097762485086503785735188932355294719930665228256102938096266073089961813095173006877986684999895382905142110376615487731038204751211680363582565374622757068096502492153382928973683758322961876007570681453918004006595737646611966373272939260343767718826209948989411131201330152252819208841561054711231706760349439179520410755400049178227784671099525464780207864785100151209553239658687172937096550721015771050457801490593293906067099900148316834721478917172853238802150588942935244423082597560591487346091924103863618342654887208141668683111990152928604642409747308357449431183915089655723081054974573845629847636719236896935058163256401631192285079488843608618317557342749909056456466944628732721561657529445301313358450468661587413511508280211329524713216715888984317460436434286291974665591384481558158659930408786284468476723044734943323173404112618056299011832086872839404710869314350554964153851212047192454771318736159786755711180282386921102538964750240667767483907824796308791203953008274856578021190149006593516902952716929502587450810915696572301523855960623207686170265776201817544582274388790383981933805614890645596114017399070812814270406483729462896676765359609818289125466799101982942384762450411855570777121358816220854263808837136828008306485736122922090487453315831426819644134685795636608849630333507843946918916409570595294483591424758781034051826581739600940470263085964596489093752704802961563072720613967327108643636492959172372419784107829091446085179422814495967158115689135897273598624551429127367339749494798181351099218373589322164396479358974916590440877322677589802297754133903348668606864947366616181374101512759853204916152604493485551305354000088116829449396151899193204710217890939136149480048067894719738091272314522078985604105847525059062410442893062724407804994346276132233105289916165249236190410395136625012546572661983259187399255909010673281494827854656136013398539307320824569496617384000839227297147964314830483930442007527534484758940772413412748192743791377737868827209784536288305176867230879400439251069339858975168442889602233861369635804481196980836420181251885236382633858017300086503911998598265549538685068780435588028778448911148702803346109457717924028913612947590757759856641546768853407136274040406038507560944908727141285070642383492260726126558394331672104980423873665000315749957595147644849728771587799142624110652971045118286210336641527469245379441507111752036434878689366619433850160233832244486777725104079493945544861221742660722000097837053622599700423316050883465694552959133777517627582002985571179187908463677630398424497097234717182555239280263580523670926729135474394843557421072268427698341124466310675555815462410194630558743169546538884619127496521771298145060903598462015321090933190090469714120501486854189354023673102921632486101857721150769960770688629778096133565558644522866982957025325644483093189179397020222055368933410223069021337610597886691513455095501222427579451942916015479610055812350330686699360488373349622254993755202377149401288807136304946876155744258536755815786213318241217750967875907659743045640953613138586995443051952878328064242816780829781637794648885604295064053626515570213655719649223840880832546595082460297985979054059332719411648102388669396360390540999264113222677792100696960951492125280726698307705421386811805000788542626714768703024975578268481017074927795185180438714752236747252280466913395211663187917216507607299769227957323377956695246166385964155273272714308113978715224011923700646026273375186009291210705541194950474748013642903467112859906654421160022333040606790104838155693053632097010052106194522267829766708997346804216733705490327186822255757149945601257517259842942094300458505162079953861087804326131401078188970853134682460818112295330640931591908133233819011334691371952020240346421379677535754723427020020833836467919814825115246364859951314647472919455927834099592269686488349486417471051377973717991744080300262396352685922083675899550302786941266710884669797593111924664790426372467561880113138708814372631431989277183942751062617378188276012627110086091605072828550772515572633444644933938645657695002503708696642948881811904427912541676832800211655569775998527065982392371589489222372905121090454449363424446545464299969276258639595245175319220575469192567478364698941843572927421934305343850062512878334505406037829581389105534788622670016075152368970264191591170790373929851941912291565677962090862939985341455716399216343846450025300412472822731276420432389997957229101390665649009334186763780572834313837349401992755631300990631079300734952447225507944740514578292776440866004314223769163653419520856252412027169593036628104099727152829664064297474140471561120496479580913753931278031179447003049234669629009000683238877662264088439539972159358351354966587176326077142048013849403381553144217218980299726053005373413574398390472027120468880138375549774492751658643095555804860642348800697894973333253051351880098679495429998608839663197606581196285275973134375382932245660740341950601952449817867544394797713824273920383071087349588027997346315003008757041678470937029107144450878563852389930369133045648082966262775665619942555771958610421432961913289743219914873218133901454791045011386783613068447500386315660488401054619107815704369590421928455273833163704692036329643315547220730107869847180297588072445413078613041347156438943565773768386094683443344856119649143336320601994117668292759072888307059070266271987319449482706537063525952006360612301985702598497539259598151258312322493081207087766327566935750182377214114801601856962539196234929486260645409049102006019447275516042103903707417477819809426133111591000913570640824599089337228717361493437654704361912786308419544453340085714477523554457789458384046051792160005464268833054079073460727731078656545053902079839044169764855449491072661957582499530099320947914980276512323922185436567041901671780168561194148404496208950744465604093092170900075160252640000506686655565362440724684225194433207674002275272116050559498646319734474708447334533021623860633552103737161745211828134739999218493340234305146878094553453526049848160415018705338234270345684214026988827093558464454128515057509644565522721908815207708059301758722375525586776794669979777026826285913168257546119781586087445292147579468509636390304565376264379236408274361559488479904502638157778402186188242984544354873054036245428291873707817438463300355355816628963496298372362521690346539019429761823838150844000855876484431585197560041647289047428613226766621820014374256264853847944156975614867686092396313201684983650722730568401597330026372975218637795245347422343458389621142650794586164798210846146238573113027975969946318864298719023924374845633006563754209709177831344927311621318069631232822822167849242424808563884163568486820627086828132046953538614539866867745026591108183134653194551261089549296387598081823961105203881776017701426593520731940599244578348152583882794153992282164246261164999171701651782008453028419163670751397737227463130508801160749743868241142438579784278740801085750696369963745817307513605404653433799568552153274870738944108066245999546026221212409004377072625278293196079991625965426049633556620162057943495519489831480618394277037836006279089474497774088954224885651590468695459034687810028597829913409018678657024961818312885832939660833301904929835547827033131967098305877346437258469931416817173144557033321925419337912085387617288754209601338969422824684887834673329831987651552453217233002062003668326091535849277902585914101364465756681213985460484491489648159686647264439410172095183266462098659838430271011300005610069856149746050646854196515833267451462639284234097593585550192608100946858175474424292216094079381395925051386541543452776834619949821418973752534096912647148957172948270186464425570363576377129121472453982744721037538887103869987445487899660856428106308561889407569030205682854530200313494768818872118895322010226683865653899715821613483549702191928077560306007741119062977033586778030616171528571029524226106080380269830206608887220671148048344673651544975678583223230084039817810383578548017835895486502320071253844940334454290599101758746448452079687453331494349126908517020031397863631688125436519602705402451225917637237610549662721599207695314201639880813542804631017558212863243593361373632929047677091268743199776781139809570118451948027157154012107457136571110313153725137477332068797633131324979438458643341962106447608903481152785064775997262409585462780690186441198897703760448826514687213455512102265647133837619288399600393183017145836030382782439706017734882674032715329108555036678198307360473383994386113058700188658201335880809281232171581617422599836136358228448398727579780209529494604675530416264344528122468580753103943234096787169263784311834909252895971090273604824680249488746476526057563461703314273509969988888762673706907200967894348224550899624639205744993698039441843131665470639274038845808330258608632360361791221891684640265494434727880261634179413299818636402571292352295132916207465740170474778405781428930972814265483935029122257674015670577691605858928380307514966405982576847847974800085308075379405445895217439503437169531631435836597225777483770191045357331725944255762639478080677956052841768059948654997624483208947449138633040963124103160816030760059239804390293509911728980082544172870792581736055170573050082137728641381086283268440324713880318033875852479535175996284166347299442921280932329934514816343064543629524287771466630530157253932476958216966247012511451018789232469845789501886701229613206173745910544609462032300127483601345712094253150583656103202381153993518829067767434397654260290625855173078116235354370721423548167676335755394338587305458831149831318591312867195532621831770948042552581626099457113425658694391289493607734093022788492368130956071770708021835437742497368043283062598397420299671103963410656554492093856253583832877794437208818889309060131880126128238585224373802036876405667956465716101518162736691950860632075384115603982015789252757241535901972249839468622468856324673538879429273150167845952532324166937859057184184877110919771170026557682529002960472067405492465895657535346052501395471098091779406952372728854147848751136712652766458933130454564076285486675607306469371896337777011566051259105948467084224658854701487239794759327374362167284149473718715042994237460161330597611600937258686272740743970249504953312822279168081676306928924024232034584541142436903015126809135651510274810935726010788874492085774355428438426013525788423349672340896685280185738131745594216620620578131299360309929129293158936572186163128361276339908640752566297225360420378364862809096979523163412040281479181048361334811621784340427329795474624158134190065344072556159498702771151552080497796751178690773680152270335491105618853224887101575915707654315681512720508880177402070968452881210102610905551091324476044276899591041887536650851269840542667277036937306030479220586488656097221735795989256824256929378573616491204293441658520630855098945773811831900400474483631644568493047387990428434870561327879550011785387057367514217837526369143738783893711938293066384192141384940023945044079586592860206483894892349969152257235103148916504749459924389526615824880562417689703153028724836388733897913213202058937221404666848238091016982723319418661280327246157037561901892823316678780984322720042309832124089171992580979794682970332977456902848381870154873055556025378917656037100261381009142474962151851704578891438368577188532413777058352076340431114619963366499310540404600391800276269384259373986514235300013412580676684676123258688647507072363846713126774171325338089266099012849840281034801932227587742939918301402650345469947728798784404122158467243328604535474923056715527951747243739023772187623151923186720941616003861431043504451716200705127440588896570753981219508621271661191175970698839070305502539617009758671532926007714159977453038107235548948905921155590130064821707145691939705314564959207624837773588372505799551662558916619848520748256005335709061955741342144785355385328682043276931975054466572571267863473405719324005417363306841341238490069905540122516642815570134416674877769951464073469936429387040193387356926889795951064662067661221238288867097505729097616881273679320306227242103194762082608193529320348103046962524215327958870862622892137429246577374915688635186350606710971981910617696820250246917402250412133907859071577098475125146612803009199761522749022527238416630923298072933448784143238156864270391206951692063592061889730694708482313459719939601920303389085609769123607450620742802822847270350796870447346769777657555832669420503143767876766476756888888450110957188815263780541933541450198839532691664840213194036417541804294646881877631680683754881453871694181307481146693875317487700361717328308791155811151208765874063375058457213191264786186709491731846817718342298030956326813352112932241359256112708620317246078336819179661135706374641203687106701389981711066745326403606483243490714642713598399910471117830725908582132192547274765432909254910438249566958846241546841812666958145567821076609121907777364249617568657949520491071629714500086657056476876623092459794367134018983892220807180909232959240082422114108828762013260285897224620384844138123007249629135322004353957269604714274336749898446402415697661266403557058986527470576141650839597254514883420870044882165343421710934837618042729583786349618634591963785689673983844042178105883180914752104620116517922534957361953809453468913192827206342474587476592847021638928025612990063655499880653464190894694707053941630391877373113882646913009602902820164235244052063326199750822398510471520281291910026078278481210145067341023934222753291172737070830592928573961534210523230177691795059312582129585142518013042207347776914996198572052792849247174584905243009170159498543518298306492543617943532341045948418269521026958339078332935610684974290126794418117627948761127952802317780411848595352816497539004869452401244188342468932513116462945107308991873783479036991259959523761837481296181204178996500203990094521789370964772767706896102814656742485202777945371673218414684348858140613538165887706048569245151302739631136563530968610543486863127037255000507015715297550922657373102611853223223136463009317120491193749043362201471749653411758316514677335288595295804332968393232916833197997373787947070564427954708572629577618144879019112411061899434260844375599931877341992697670426213276438673376519802281797674206089498519415542200264284686443491640644324826188202537234964041602768703451552105209320627561054111354160254223672516563311966374993969975854015131434059286873029475622363316020172523662289144504673219429331110759731637709567507799246674171514723842066866340130979890148176567625213138542166075075727057242669159400942922155003530395466635999088738934466853976869303754099025233092336637515387005639643119116992943401970566723831965184026181577867856486294619147990162020923482901677485990857561082463477977513676129470212750888794351901949312095871774575741980677910071777824620754971917458818347052895631626607267338297090874325509901869263173882852256037171584362085551198027655352192658533961621568139704867386661043156675779266126506209689363696113257766151395828221726999655414951631374674444529490701188912080304800380110098530370450672213951894247250854123297519650485229506409413155743668842401938942433486769185899217021618229425161225116431407116271423927499225335850500130353006800155471401856288732927934698761271116389736011314865293912851627996909338285175164707726160113059552731822646126865872017454694690295977357491981361665089554775011081266702973681871372130103265074372356144390913482922378863986764968323567079634384739511801708218679365951649941569667189545820499107127796418261340400433350375361929139118639110939251198784172760250994170038178576571487789467345973968532935994617289991696444164159787852512032828566961300820661831357186319119756660021382239729964727986914975020971266534469698176389807720936662739802265975816351567805453151934274211724151756347908581012476006265834408567240909385179003001139347922855544783306253799204996782190265950921531750818429793355199259718410807188365696523043302765118459179329515766418413158835573929734210752429571141581975398238941099851538159848124491128020567021388542634234064784505797086549811693470281446106988105646868886096664619985584642829928243762542586899522835556099946452135061003052297489203909765672668360470050842954009421170066900353161600651186534679527273316189484910612531755943823826382517979598717906420125343662324703883666870695456920658198652244350726232886633818925497939815719714318015269049526695892300069966855722862487471534335980668767297092160419199994009636102394856307023627328682878939494254213575430809018296118119717155682122951241918174186717976355116852528533876384298177978188532102182678515349003075369047656830503677046750875810784538362256536147573484374112388041658962742303711102281899232397257483270581070169242758495783303953237943759100966017197284062675896946685873378167112085877896529052120866553610928917027492458558875359259591262028280693113741772871680405545013842930890531928147516199394484349267311031321607207702458554786778589353332432811640098939568320430125341007454136958430923584996045251704903099314794236839894922812404976458078039625314788373081433492064036452157680645017809396688902592497798241245059099090072135637334098944809722017419539512897327710553915738562156034261800493847589360356097696356428521078392472179991220864153823967573235037758145798210455184330568064991245386180483839131954493763765799696928796553677692516837931812516475852684335095492098341087794994624733612622243065301741748657304730031884215061593019143024311165219354463452259240790839495456538120834867611955331924345558267820291401583470144736901860742684765929778875189296692785367471732954183187403206910910631533231849311330050795572926000843075868742087554443728607774255837952103609247968054276352932987050881312106575723628534291152271521762692835093246004308499683152328013652082023611559648474648853633670311071654108144956059205007451366302928048210665324034994804122887376976377651189741717320722098075165326553823225213329993075810151333201181036383606001941349237635338383926249939321044331955437783167967818870228738191689197092446337848699767014671237005335036343359381646385520625768510637117632826223927850528116700583597049705788516769680284081837812530304063892445655011768761948532300369522263948075047009535430974650014931060064686882161146567632673720664809499581111253954932696123531926106021986834609183857335782831380214126626134249660039735566812559911816028338491698642178111412365944521388426379515905581817454648828784431825898294763706393274948382510123443080262285927208321048003933528692862332073433355068519410105532218674425992368593940314849398742808777066595107807234123039242460971390882003038442768639583493922086664308556978325955342786839940156913830319822820520503459862410794254785443163544935632212817064262186514698651165654202389811045889672387619498317046280075752590752771312257336500578853534620878625387407995461666759580883384918624945916355850573178289161336694453650637122937568298152236927670264274620228196633339629572172242998772799702546088140889898658962817807541679038445515853186709705842987889872633977189054758861156166938237462341283727685841468571653881148271788422054339142937784289433916519460571633582761489494514995046371217172789187002112715826033648881879522770732771989017619976472932240529028638009360969126327071158770647680999192914677283588697908161240852963308005066897210901100202359598515839894708264794156220683425359432554882896040553330575223145785541655064853221467362123191358235583726195330255216003257959098589144542036745561826172606534808472479857469942658952105840347050102051507861617092918220452866810358869853485553560176199056461873182758222794722310548027320098571616784736882824267142632526906032907458971434467454429722246556080637834443481334286409749055733717660751693759090205606706470669048869740891828186452902615365564546439787171361734046702672549767464536142757095118223512415677753775534259321562331485954405319043982074523914130983057534492368618225875500899139215318921340106139609665398480820959422143335754844008407884647550381735590954771127996703952348286619779765854702107028750161955341012113672370688949962176586986185987824844883209220446478935628317828107345369995854211096399337734574173761099286222971443836479086259654385292002548679433622856226150695715664450961183469021531846888648866000739491346139503991067183576966929082674944021701227889057537767889050626485125806742578763848090880655410308007479860468194398076836059773530812699975199239519471091588005076936606160670121489806117525222271689206708774654309514270203176047660055813184627396397876316142670547486150945911093621587022033748935933445371395656396536545718192555224414282996321850204299608606505328102468516772136453998023852003078251427000764662126022826627869486901265727485168141225782326777105744030406520343117451581913399132351357761884692554342949115272239110769514249556937138220979600376632167472907121287241256524795416450438400866977870261553908352328263751425045657198847563378400817798879959244747915756307820892226814195121505344102854744647724963267062934765103326788478432383356137762275971071846095157178992062032624633446099303705854287323086670017427855270846646445394503601240530833874404915676211347708533674261554412654183151924622971810091853193014670730420066924332302713448816943152339894635613127888635794963952889568362218977788768359407376511650197239053174506834471375504220985314782029944811005125323414865512327844880398619689205097191179006765902383706472315070127971352810940316284075285405843697356936131430560114047138380245951508970015886173571810532025602945017369942116236342913064258333972920219796391557855409498577170483295739937191990699230192350987204154805060580802539974504114807751355254203944810225458545197530074614667727337500825007413579930427443674738812189094086342449572251597302674243713280201888187158563317113643464237823380188605468594914256807383032976611637762821459928584568215103994279754850042599697705885656113000923235507318707243164999736811969873545986870202115293289270580438594304441396932124743223726633954398004633172641701174275077227224316981379409455201356412181385415932152872313216880600397252276896718658772449272382845447323653303461712860142782166885167934069066345544523330438815407359121940200573713437253542477363888072220484579203009054260048237951768618611326943470416703370239889587358460446218426507170990278095473702406086478075320634989314389867580612615833524048460491077499438251015764420195504766274676005870300153149510411018844140636518542100871261950987918990667647253979023209376051230749383833350882979845795794174498603690299177817436465356595862354996549026548271002676186936832040905622945643822565091544626575570230232255079484731400835821768531155125268665900097104769907107152634455753742377807315212970663276064385687016740554814906286919586956419088358514644886774495136245967176968623505559287407125374802079999638879863986045110020044640809453488165915625719241050053093887022488244615672266062029192122191538407606000968050226820041382543253990912744945805081669236669209785785216009957281056366040595786286610013191159544032263447868459472657342534319175924680982673804993287456776476819845272175137213957437716276063881217007260466778106455633529532796809207151848422559055580852578270403060179484149529545736196504831639343760231347811855064482041227966367527306400470420576933388128400996195178712448483855811788237252866629075274228548822825661419223515506471631921796692163659006411640965238740731214167617698338285854769615068910270391132089200862019107558883406306375822977067861153145160637670757585840025561573634156138997750399167321921266213074173718037448330658154054090996470031078491391204621992459162014162773993722661511189761288931400087862156815222647666830295074234801100337314248717585166003253250052132161268950523639701494391988944049339508472567802778020911813124599011857778600796942185586923819832450803833717159236452027951074845324507988450307908604197078579787679063121898105482263691514519924282133888587308159850176975646722955254021531424747404730929235233721915653455532601722925684244194838392995956819673097095544613525992532201374360930463078030233451607428829250299736504796678987461030144896744123365812752717003434047097317568968283041523598889491965148074792817346865366976915739537849673268302379556715156354869153778999074831969185244450375036272026617299851933883849421179989646973303609088713024467397121118413731269668912205820195498658888958786519042459703781786707501618973449321551000337185394735098282663560716047889214708069051662359572644295601676658142339321262396163028363335091563650171844723197813885850984761436881991778748856749190469001629998648567779764389067923701735430905854454641779704691773684269604527229303417588290975501111709075063544309050840552862655438210194971327735209360644007762623573891895238352172263504232893740493672794436827210869735402258833699019837326991065026749577516545709629476505853189592245020386155429146837949091247668550535932072214967137694021672600267428336891510954719392486000981642405421895916405967791700171847763976977026703695558565224609917022811857371237959740997521744013170835442789324660972865532111658745397208019078137131477011688976301102527028521784633646841099535660999361054523457677184527077112514389045803780080505971994572209295067626241115082648511553272512511571056467027033033464856623133108674748802243682259887852728723803807968817028750193011594135429886901617686727619508127233727520699557180474167924588069351754025047031434413005198633236753331443081716806092201062838376734685305298978853588119851859866605215707821415184823558664642854383385573805546076372400046408018322931559555988792953533804632898763022711270527116090756534735882969562321738779558762472046206829459122782159517031208838390842073888599769535290307899117106197300322499624552720191834197244806912557446222929508003058444721634498940670064097849334192284747727984874421981263243113748990390511135094064613276706213632503042182239557998930212454762914844953401518604901132742266535151282745158903644152208653313992251018264084661277067713356204375323543083222985154788720286873569417580053730744832502981756858638333648434788716838203523730041040056707179261300759164055507004163643877652059320025133231756635882113033194960090154912402523011135973007723314724611992349651039308902264380109524973922022970051604432646074930666702356672116311960552468509679372967330214874704532987341040734901518529240644584249945831564544456569109880728531082698893333884938451891231613812553702517682561124119460525559579666799410151931000536139515802043260831660868407419688905788744313654470136616973516203628273931586102455785457260398489349715103858110069728149333311177443594741051539676281552859668179769354963523002692005195419867227464897723068717021725948332388015300514935161566545016826974064132503497071705374427780867350207642135503676311022647101022729562651535048693475290187697143149912154579973374349890759148149796716342459458720113870787298257117673570770223521048602484665946846744966894424634762234795282190762110717912285021131693440048604888528547370179001044105345596251687469564045363111616055818273055898351406700960692004351137429685643357101258420292463894734008733660287368329227398402354031599052189128911332916256796438231740443128706119187801928155730714269274301057913830398070042996889311142148023181039786981764714947119595863066485560432547768845533075939355890416948220137468101457905871264756176752973335468219465709138167646437052666726418055111858299323973280252968128150712685434767706092575791668611362958455696043186567730621998898468410063705604320475650183086117091274998025798314793795217747136248468607308519591285965924669844410596574295566156783292631030943684834532392519957487773679441156809325791495981524312568320900409928297763472742413971333859029928828760022679921183699617189938514695683098472625148350488020595085339253062168637869371876623171674773519982367698197298370976694731924963054888873353766211712858247693075323863373057668403393900082250436985992617505370396166778877066911532014425415925677776708062315264560167550961279847531762951037116844423955300658364096365179333157874988350413985768503915481002060579841015437088236978381658857533555174784955785085717624163664126362009647310139620439656233881233905487814817667117509990246847432938557234907401825916434830185491028785678389138910955421224797277202983137798215403538928769949601675566848113614698810130678893410064805267718263023757785793746632191045824025059950923624748294828546904835983059197195253172439071975762132412995897392499158884924803488068616557339070723535908575578283491573653781044058883331198002034901457363072290686076589093743037281518730995510480945463041980960977030210846799944152159236544104695529291191277441096088220047412415120868516969694101831084890685679764134898954319754198480271211370194667086761574804766083538931701147662735494875499168594601656944302915841639972155371751606334349026754983586000566547363382771141829557428131570109295455499783623222869387641459548652280823747258545603638300607512336203859880933770921183093596217563557893329249832626918956607202900315174257994709681057240495283684934578940952005138975028851400875969181970880301666681415007852343059481822885404290566899845222040410637265810725558788953495681301357261491247628482874780253598776958999193621948979485845998244715959519489197550068037183568929665625146383122563366972786989407335921562033779343542761329013703771762670899329323953603814149088616493277476121987948104564235461155057005425315049953708466213599785270688010092695964007407213447343972870847522018593287188510153841595389825179508404472956549328433546098439646164976372273768261774267516559833578726358480079107051494348097937447534068155259095763367232615999351146551744967179001148949841500447260871489373682082114996787718198998898408206175038153715699518863421006140436421703905930975082720747523248057139769691264466842631540090160126204576272811027710921286907019527622972998248475603323435361890222425512499790067244421196600018664500196370112406417631686689248364392823961731572084481463346695839541134684710043882415620705909054786688903128086461394715761911564796377441548177750887206962703613088831210122160188384651827606063838552849586823110120300845720203012524125315806596995966224056086767077640938312407486954814519715638324208003692339092706739664611826524475226147789636805766060386234521623573155102745913094589222089725701151087379441477496515347025894176355194155820576163713592325980788817950709971893269017786856073224409517382821958288459378838707962450706945791304982095697161023053015059632084823085419295057183169196046257142175979930950954354182039754247778238156116467950101212166287352612053524675900795396844646300817329330451366961681005648735284307791461541006902830146794400383964840827385300149894036998371482038070359562113817241510567478664759128563679161081652037244510466685372110054506350570004235593465605060682161141601229271290449270612963563330583314673572129161913759305359807275952134678286034528015024990857376912005684167392563072570469773735459331823171591450361514730160809864854350295858663480578576238966033962485522412447811199710900754644275538542036860836006901536116222320583871395270498800499006976935863941615831401085000365162056075702479548314345265074176879864933222567458410251902577198486793908792962454175685976980626422522934042157834909691666781259150818388096352098845961480380364001000348142157898791830153516398587750012509024920542375468156017893357684181030673146979128547071703906018688699384185869500174537245061584411679086606307069139964190703086852107604968966803142713242354536059862219796759274594273871684891791558484279688315072354656416382272496458329300668735741963728916990451510031487772555879963390415291077532229104876687762961090174202609062017601557442676523945378170505786123462955108999555825356331456287189315518339987066261067399559684523887839738897269924800029541618021369770961732677880771733153427890960579889964138031347817352939007331246927506244953578085583145645829541917939474375299889276428200097784520705936473875966174335669044389631176312825087394976586637838703454191113834661487058014650689773205580157968308636730951119678486736287381883000965174828939188027981355789618876160707913876854720510541188794993389663675348759229210407361581397503633998869025034122985670611973212630545104533045236817906336374451219222495466044706904587687308169035150883989708626193129158071701873760467599454923671381822939905166998145420636872152700712340742792113618005629340713291857951960590029863552445466035827415480211587732197072963882480235203674800115406768747991637091718113450807086550619909325539510017219593131205248652247301267820193294750265481382609302488178058872858677775563861789888184609566359896450279302841389041677960249625771510599896878252970140699906245384181038768183736606763635660414285216684794394492737095361472624794050676104026967936873922107574564603562935788103935488827626107353312871641693913473352910881869894756688350812010029732615659591755326883049234895530178371718517021312549187125554966890714843754271395921368505775942166377867218940693990141823638452243024678121491886151733924592239183252247037976227166021913455115606312964170284658395401222361516484508174248125345421214360562936019403749617508322970732567935498825613632808605728076153824866242794322273854989249643411122362618161417939257941769800100508984920318078221903712914051542244546171704789113456895833391732439187899548654273148302511987754174445687136368808902510417894551456970936269249725246847038508339185288380091528805225801736504829089039449198671005614923589471729428718400156755468516873485746126889825033975453527206788225203731610930834282772160752997388713655836201799240544329201172873708372973424879019721800681199904967017522581823476979418208797891964736477916220495714521595666975333713490689091396084233019597637698171290824998590209366646590088274819966576329205395812911624708893003849852530570285762656482297853630731341733411249409850580534488928589465844745463055043044890164974737181471760252318448336398903956805737913103516679932385221957746960938424686026550442063456388922628903925851284846581963445305105263212153551971012962241480299443442446267666063513297432821948950025556471745091975178180227428482524567429646601534530073724095137663346526773086033614226383427427128641340666574049610641297353554248143920477885859392720875006632468218063164727469734492256451463240084240948364262953224530609664088528251309713882054263912964300651204346972098172487622875833163025739900928950284027899788926323770968527857020920900273445307643913052822671466822398471142470097597321023782952352300893160990929102797272537633333305465829253302659562681762625597545380515653509493610466215708480908134076741721848624984530473039501266833976159542584656403474966812088776597033366850839653989215020158419057722384454794639949031772505748820696258252929527444214921525968685930729452024597503971272799799241738198173905518830219550765610171289579459226491576310895985400277309319744644238687813302471501859170050250588074770627158216807259188223621118015723550865083897187385994197842092801112263688040148476039259934502949631417705805297417316649275057945232129200851843212417237107939915194972986687391168061461636165133970822432645212152541524610795938652968793800431196077375450871128867902215565036815534748205338930968589386925080560622581139376255547351323303746962133202396643083955243953887966526032396292349124166280293033487014886879120664950949814247157279425845755867954159956066937853192700381035614038187618012055972774962277931356230530692783553495607200720295919058451300114234991824189675907609419896133633255575773513369316834471738339844053861552398499786971584243315487818008967912699678743356748163549241706987836199113692761501045143377754538400479919312373622683118748501218465697778947469125064393179783046355541525359838626065578911430835585422413957756029365227978513698099715842483535591349415871351983578342068922683016266230697866477183810297907343077532967123100279706975333774289454472585608521403453745942837108037155526777705845534322998573374896928487476603793742504462053964887751144207205013056931741230992042159362886094275798465343231274548545121880134014261417648230436499031066522092729402953975663348588739554654936320634273408901913675536979421370001608728123118507994353479809839859932006727239637027360312519343395564692971471052704275806998019512958085963291624063726937471646227714211529118596541784254581532270859273295287807292564254305527252325278373634964807546387644466550845610911127495757872186593045768316681579339790974094183044324245032907678291395050364381481958420628524492823295525613220931157488138953485808380008316549492483661455168736999624261181278103663211471867963886205850294301344206804877224704187769728169379149991277526254289583204380934029211165775996546832826199243917179493421930092680702219493857103109188669318925355830611854212105958967526058147842194684575667180522715470492160887586326050443964320347482169548424411482756301886447059877212795656564004672890308691545758736102540804694988470573134552153930453051884596757255671248466155077412210508484433758705671809654539348988143354034581703395474516367008288392998448397076368349190561680546749249945656424200369276861939387831280175381976778809875993053019574233296451752636487487618320948276163697511636415727251591042336332951677610503710980811213932584624095771624922588569103076993942330002167973726574496164039349125680098057365119291179522311344537450703831850555003291917699243790170077056291026310113264643830424096153540261183679116365369467787702358292216824733357389438732873338066752231684655304490862432015023082925819417506376248053096097403063299805479243066783049917558845524122891556665954475205939348504563916244512340729499013274920714772712737306451465583680660052817670803260701181347034892728174148104058802402479192798144235982205688477750246772225410459466154103113393707085212801368940402112361505184826168569113324851849527283774344844890004311060030789784141839064649008734816684999313971996618155345905361452680748264747578863955223766905331723164684212665745078363660480677633645044064585379158228521837867904900674288579622689011291692427428384294381885289428914954457271873470812822799153086808667363857519655671817491106468864380165021990556699580007205900737624807976377608417565566779657713724761157644905926723887676911957159956399578234907481321101440170313598116138551026398773538022208291636112424991676476472536146420151050094566325035483303604885078063541205965876722014200423171209373976089904546281008117047760747924110449647986378372710302840351360484840768003942211220944601286101851062813462519117538582099789361491273702522587209308261472017140462137580840352022211954450176613137218052081419757563595009488692164931470846302190706089709613421965158531674032494924157393338216717100930581930196715783741908826077199242655632217677398403767106927898236400425177266188895531343789680145849140715010105945505448530591261690422322932008594013870072270976299919830908405067771342115966200360104347604950833255048160455246580212401489160234964156973698585128286832786935951068177943573776189456038783484577840220706121389627254030361711193537596097810661929558290675937826537938879219279060021801989531523212865818078376467960483250210744120034841193139465649749041767672786851558856719628812002754212728796644034045024977652004868390601558237673743338594375356953510826332313789444555472955437480892653171560390515844362734653707671248024435437157558652818318010694194048485541763747237858015164585754937636443846056426397102503159518559432065564557919522245285680321407109775430039482233879231210035899873803596397738648684074772824431280852346138120578920882746975492409106207281577140355624003749723510161751910367426990590314945698816055249907746628369538936512778442339671540784517853864012402266333876263912719063248252839066984041662505905596797790405913940151807077414736230089383410954928138897076763470613505678004959279194206120682955720869379623629320701685484162717070506585756643082097000000556248139449318977334019787334662034015572026270783481072246680343026361230895801213763303844778864209942800317083885339032470599182239618446051250698216101058744758816526127409928352290708757623704697689179217322356771662524674217069466342073069753736053170884842006839549347885932050040007745269154707237468387100994666577899137382496815966807127434539775789216146247504890202822340409174138935093576623432522579094435205889170418798747583906549577177635004385115819437037238710106844090467081853443783627164449526419691974274281368449902372456417854825025001735156030655111312223975800565085288573107918236317376427328326068905283753363029140591132157575701479786293711640834744913380747656864916689082131676087094681004349113731822012354994877705184585780782312307583142213716596697964478808506970642845750937427752031128863865188265145943035122971002190600201888166269645452963285336088171180231998025581852917883502218279126526538617948944257220493932297051239878765512208790987880875193356733082913651798073652332680893892475880186555370798617067313134935767156899679002822834562252630735050227162346875899893393535046171791354319296241453371875476364596928385817978243174370413686963900118337167924852689034947727941056197370493198100382401259058622003497750530746698371638188495864264718928423886924042714471755804375717962449389262345701436704250009288629177404407963938369584222657879791652688112694598398581118622124736084728109850800974461308091624498634540298746702000160563759138980367033522486212233859367491137159766250378548061993722098234442439859539376897332459347132052148551494252701803315994808189755598805006175022259395102234196806330086634127701342628696966012988256332881277594930653061560225669312698969704735815188272122200448564064542483101018929944172266194367351606839815590351159424265005074021678498765088751944776785870345052438537596820197182607032453689467318342521519504389901883179817693048537385950674896505145947811793129609454813418073083379122047400147546000966122887844223491597479062956497457551517721014163446138785205010056845446018532306616707564367596811962991144045865188616728029089644284863221331634134065786139554150115249016663312197087204106305660994203841858414599325093734812070298581809004645176723794264186698115270139410362434710139126611111755786630874287992240413701563205517738263186605133086299797905022262620760734384574069177131542861809345400806968253624435469627831552303154635649363262417549246204005219037411419634095690878950845911824633263437965350509085185142970130441179056723715682655589952047812776446573780879519119593807232382786697066004962651874459027186617705836066331655711411995572430963791688301299660785511456650536023534965939883818364181912893560121006147091106004196899866382364833507981384003316223791083230096756338136523887973084409103095678568139161716131906954559579570753071794536879784352484174896446215590760703986709836576321885446770471838292314838858403611188844074607157516472540399523564414743291873472459472019216317745667469220065642641523615219191963015566317819518710879336832307898480597140065602795150225497012154009903565321895501411940319803486758414392505114300105047278860972960118950073867939617927298247301002646588206484457009713849574634405892278418522112663229021453408598329250661943497875758793038176535403501632243074137874023596679737322452163771505630659547228315947570388262069063370827297167475317267795224295247060768662193449453156566374480711794548643401389073310657966084517864704340344828991697176621274325872653003648073231898803573329548031529449707423710083205766836354144674744263460693202890911049422655317356097103003673372665355024731673989258929666024683711621763941558569764799650572378069500529489756852828521001472925776640698911239083300583096454378812607481967222568902168858295644136269583997354857264108876564005205736647499302091995375339087174968743107451027587016665439540224592627515411473525980080246946613362122810689579288293984433915670420721927575818466249889998551526946929471356976050297018503292027613799969386360803862041472542197401568618436062990267963258499149469100353835875577421595213194193865204899579943940825799009154471149916418232665603961729629483037638777035159093080266367383291174879174974269110302509303572273170263976072571995865989523510121294082450458703102384534876658409936271317756834552624326280406099719390635772871393385547147609699210150402640371010490417451151873358301157710739873657053534569427465679779487423361880487762131387235083869996431262734685754516989640593925534277687204557527681625781610101055178386699241234399602576282093532336251387806690529384408618220464253173976859611726517133883465646961462783373872462323899739521978130182785133585018949033306940568121161656345824512793011322281170496257034670834682882826730339831287658826788874679026428411738715275674496933533469353985187346969595751901802851234548781233411306221464827675298130543661963702867379981399255800505018601534610405127823360200946674680585041856165994975012991829182978502095884394170606254928323678195565960560832796812008086803423326861476345431548848736154516532006212559361812270141795324691276930300029076302788241493173218736783966277491157054394122601764019219117107787133151767686706302441806720184079074542655682017297145795464144817439464294441971804196998927527120307675580477851802403347526480171143503447414815139547843623138956176115212974545340000173100876558128866594503467489066286431899076887435960301355752260120328912146238961908838171659409747217840194844844334190098537594472267837055655138077957789508718014826593121163316317461967461906348544348892181225671587238886386556349877123656120540110638117430450486379700230439759886447195317315443848269804573715756801422983831833127455894949187828887544268806568881444042271395224286278576158564048953262031213914659186452355731747786007853237270775476064751988180043850097228456979776393914645171160048705490449084037497883465137031718475859257713817579040822862362266475055633250984893125541231929710571303231047707582380476209598062873989249802385190667164610971924733382029236374833503934445561905994844246053912705885300030721764192981774052943029686048375894114211145911467276383047088238757895208810996102662380065889787015782423736644669195950954687019842918978328833206163302144163553403308683742524340102819146871353062667679739912375077078268335345597167838517031474833687611164987910427055504524770838889862373387716961793334008709036159926832957625819020027445465763817499837938758555258839078748900792249304324683953234485735981470187823482805121651565606252259546540678809475369244919222972094255958505165430853553779113078901893858496539374112018228704792343342164041045136184006345045615044970013460038694177726212651971182362593169416232225271590015918854188818965615896390326395268146191510283432400617175342061516901685897323762731786837783655462304670182156051300828137768766384238507876238096984117865484148843778664711782111318032890352958397353165024639550327270495317756344430748842619153969446072022881592488542886163952407563587916983694486202604084931400450094972845732768747088047758008459463782992233023097618896062905276498331004835783732986286851457164879086443255674699787424679540838581773404332428993243799119800435892271687999662976864174701570168343636988234509595408395857413796904844936552740493762025001912757210684992323472813609058229579865664157918315129990605100524999610224379652960058103359290958274375741455907071712042031835177787978743784585652735686402856571878579472818967471520111659145152028566265634532210949924181560669513453819682405319156945989564080231041328508035871538947870106947358955701848628565389640795386836819101801298170770931871010662007875249528491199190515448352092362136984118568800670616119973095320158548867809212605864141220691030989181434324721153634370960719083943648069788195499662250069154182004118996916611477295850535359682255635565258021390774692169868403879368136016093400306843481696879993513205530441593846759252713488844305700013130847949741807906602441340862797363813728553967466846290763566072716257357601362072461822762346230871481894416467018943820425125840905557470431860927130163042614790644259121654159393300810425799796657862532896118353546416359384734788075846237235610441132415581294866457336775979344194555166049826550089400009817627084678493242957260098381235886885913226428924260144163178175486749440517062315937085974608214341838489453783478981050473993562339353110700455089901424382471286548022453501967133573650847729242142659772626999293552073504210014844750250713288356643443544659976208799991926017569286669262202823315736526780727199606718109158492354945482356484170285191042128489071767205353995576798665695627060742085572441651782515412001720537687654999170323887015998809500405576087590629075563056738011808999459821091687844406148123738002129487035992684093783383686253554478901589950092031458304374408790926523889514994786788330568083220843387173335543065956634018752944151442569704594137458535343735227343153624510127523546709061419534098292966144159127823685418969661930074112387925086595203923256951213146990529326250565850332212665757491454040853340787412765477665475724135842988813102347236217456957233136331379791314865737296905235282679969606930984530960082896791342156673392038174071464570201164882424743638756403870135070199032770604736857243758582189579229413156255569874725075630241825244478050203447569983300130761985090645999143687063004142189318230296590107363816711736764946283580857423772271679725179434996300688152506784220466321917434044475877833721657640631909065905432485755789735844739028188406602638815036169189537313288374762514344202463768189168322851079533969760123829309194369494128997250123281517121255980378461442787189921024912431106000945406091039634643511742823842823305077866192659977217060391888586650033963639004980052351972611002341093760339137629906894228751133798409057111662556580852368975143707143649276207993760518405502860647243186577967888088397256429540520484601235598432722003955358862396700228336639313777019892866491137238770616989278360162176027863880530563711279811948630448112732567787034083828711961711089885990862160004076598013335408576583456262141028029606266607930868903670104237204335410707909778075067812859631562238659222144684437293475314335162732059474904981613583651215201609452143754179866423541531285798987389178523568555538881563319406344527785224920795416367643165565695691468865627659599596884774201732411734230151627302008373949935325220981001912909033069111232465211100372003236147982800280411581694167040545490030060854844566134011192803246029432268577983310609609907869872248882577874752682124234577169774675683526149286601791566771744239771683906982317525480391829530929517710676136311107794077735297410855814657861832926143522902931094677948193748362392301922633626452018580000766762331793196781214513652808197463695935787698287649164505719969818629754150616721738071136645759181279061364776288055283056857544904599694844135847778517387592283402371243180445322841272759924666467313578978594610596556116189708359063369632957760528644407394412233279589650849524557703571027408277191195617152198134414893703712555193435212760039328453026312342097234860343729006584355954243531933389166335017145604338252807115343884876451279281861444434226729855804047327552844326802375696188423003381285305430204319264899809903978552749402389437369190888049030234292512600035625521045364626967608077765932502543492366463676791215765228860763941521857933732398749066625820623262771580150585338581518331255308390340205976845778978814405471789153784785543053881910506472932409932212673578443252581649664213405641448067353181607198030383300880660472835128636530706900980229633138588969111646676635091681492257844821746539035434816192121624087337468518219960037474563566274828958876789270520766648918027975847115974959164634617517704472928780715585749803672438152799966487737312670657919619298565920113426187186997605647631549371593991174126939513959124182733897759832166056937481157161645433634329373011908336683601435008178573335981447896541145523937665702834520381263018940996595109972206585751381721349697238985682239825049988996845634944896531147935885458320177026568925842444725502074371654526879732769035607060541889256864850918418761823703397073794566482677805531830575404298324205099605001997802874426867840676863438502579881288220185906735630478498946380753443376718103670466722498999289368055563140810289961323312358390175102969889383712163552110214818303131980905150377697642302806126687202734024810340375295606110926806484150230103336510407591819151740072137617895624109042689570460301140580181285345645248503655239358459808610547245473029263548871412619164533248029759769917582412538429921157984407721652071679463896283970342902936982112351912680288434668678181472361096685171950280790272788563321153512822119266821956982935054087227849728378892716579088277521041401281490472906940013382293413653507093642098726395219959328371855750213848137496754999458167936478284491635804526170277389140098398279484775779820442539777225436914749354544285914638305854509934573185243108160231988203780852605745225763050854765078873710217300775776367614450309331337248399684947518014666877292531808513393553702675494526732463947274638815957440732509743565545011795076673565887052190089082259891769780195065433794280179504795924913859182388654076353692814364201503238704436808316221754540733533233560913839032526621968664085036223235394396337432534852270873085919801884571721364314502790339187537974980877517546852741177463377590800500254737058641438576773829472610205353233545915134307935322533720725237241198787858787517978180570344209481638210169447795247668662844860906582139754469286427704382646376774773796415885958434459646317609187872530490090357755356892024917864782481151365743022229906497544224821901598450910402369320785156110843908652250632975855841599086004873726890092790839973038239201347775086925239421171556195113154995001111438903503700829353983295597928868644863864948033847380462184187803773494126730122636454259851810784624260612704230940848154738078834839458262074385678842960903849920089396770166660301207264813080968520103657975675085783967077684849885054015656241419812712611179074833495191769579493987969686617059402221960742727806708906955370663406261309585179867887406365861947327386183613349638214007380940016685076999173491682885555100452947809570460455760416076854015528891522628936019897247570894343584567500092623611354064405477425171173236045405223662104330935926375350131082055973222415009782988878664904053753878907777883480136458601396747038130899515937745497022788383413402086278300855665916283448158036824527702255199219712638159381806108812429169124461658306867097145477837918285434357196574496471528246766693085789212610787174728855341760814876433004254668230616917212159657952633729817854870494266958457175045478037677272818358832528351908528299153496047485140922589861781815939496389361796971951812893722216203990066212156743720098068166530056342344199523426541577479434627436892164346640059967815605523186920019016728269002947196841614174969647978100413537693459721014689750892959362930179602998266328344391235549482705911622177653006212336052521799704557699751327554282466052557456900173798653040469891005388423071961163353233715796897169899000390034632412417660404481954473295069598692948172186986931615435997832466541174523879478094554568527531539429223363850579642656072918405282764116082197220097502593778997125044767877828524303086091097989511276837611407447685260759044552411866655595833034893258896865797327647833594445255864577950995365685548298809643548071017364934220802198784754077856014722201542837838184447602062788489562431995813121416698373010203438803625912249359786658375546142961988359241039594188349188069229677008312395134040707910352327874609749048927145326548023677596942371127191670645473637296596746044157518396823532557777709327890089574059050467260256981045476497910170937101380008489814254935864363352925382394861709407567469871130730141340923243021723594015676455512094849145960712448669721805355242995620504689538187792651607303164349658571009531472482032638450777740092939878917436644227570643078229435593899819777842517586604015019985852748164159855967835299627780301635856351221302694681088354499138047974354332491003267404865044799563001204201060531399500577534666247281702487927821355619144204455477716105688220692827985593491562565720119463753209216922841595233942735786907606217980046886803311865230302152043060976424978243001582445367052917602379947610843476263391645628318132714691240254040569429532897827831806809699886428526851997819459780149227264080701336439725213963950483031446618436506604435496555471197401825346851250394211240541981957958092010640522577924752550438267473497056639001389274481208534955336623879214230303301083394160976662677258020459639993405714620740065953023590021298034556497825962535858140511536127817656787196913368585451594025813392017272892515713123154214161337753182438917505761788803873158372937638850458529455441197985380911834306481535462739483015925634059745765324243918415168097001249559800610736011069927825186697000425417060302142373528807396802755027222882438317077520806480012673448277566306308670889400057764704772005499814136075622976911321675598169805696860007889180124148797793087337672835058080040322474326521061032352718791168115209825822606970941268049629597792654558950995168790912138378378860059513333740338167102637238682087031946939942158690201537744080978272393960603184828202142499997719432177844068390196027346961778303835932776805295145090208902245798695060398336373696331471554130494996685784763936323779199967467484586793216310957310924964679818785665688530869669531049671672719106426763577693196959524326026616087762797294646647396605124391722849013397949087290677255211051992824293558592845960096703001108884540373795624128898027098190832240767519736625689204527354160313498489616691623522320252572440304919450932238676125220142082243990125253699104431549157481902253765965649380312947193143369687838371139773611257099616855797899698894202425059180876848764504909740364920523466074528590179930354541915818915533799561808222197458092046189226155876759271283142677599561328350438813167694044296804928704870950084474041121198582186859550576422640046164309056888579749952375450882059940713969958945691143252702723549689541232648262269638123692677109268254221193447018531377086776939453768846758792567223579010924329347589603642307369839801044559685310472143369442902136077814058934666969196344338379012136276602126662400333258259843853018977937780781740731770921980777619207960043703913380680370202446789993019195097149358688040988530052015898954695186929581940999964447424545833250288696408130008376409876276235209267207971456110111234515355654776928124931917552921640523039314283520895569138103660720040002062854056880394772002429964824078250527679049462794653754412841367242250580712976070713370645972077079438376021871584717169314837922701099005992026154011270156973040412848585464831912069062591632354965081266759340933159944400534717331884015516381231841578931693064130924642306503985116858730139729994918706185653057728150216444384260587587122380080838577678428599044637328786825175821238489239520345785107775492126571113774845357321895828176708993911053914406844347511336976286404306023073400017550789310880299657685061641953019701359325725362411817131419259275018612130027712443772671599279909846609092155113133625038683732506912183779614607248622087246564223872875591373816203858206488697559866453441715867761963344160783839458551984980984111143366504327499558975626667976167117167924268698804119718457431858612942910724199502714770685812669878705939753361508917690861533970365087126171797466646862008706371156101718290169073637953638335078850888997001057883476841777356213743128790708850125139522044145504501835270126967384555307319459594613322230664012091031592699342159850700935721521785998670960143885865969111980452550975787488321614849954018484326334288477985183776475929533262327434392692045218872701780683896042856607286455607563439667429298609289283895093888730207262212113611925351903546479728262568980450635153835588375650205472628874326404519224269904174249673505820576748764298879967017952069249185774671469502620416161440419682448037743840249231739311782443041241094873895370001528430476013042026775677510911465592816940490209634470464429593495639052653086705624436153351190382509704955476218601591129092641230969520773086729056809222021441474211144106799384249698760469602406952534347528776043674666180326382334692796269298179299144987070695644807355033699693295479545478004040669895258423808127902328392717182604900663837173347184200776878340768109881947391115309975623966918148113640391906223488773559319400803654052150176535061908677295923051381119051357053289450113266275900935110723982679574424234679282399903109825583967668797540235845037133859465977260117575868539616516905869416430330288610927898809304466192470933366655108944811304273606400566674451972481364556945547233267039209473680725348454910869034661117957324983393638074975629719041358739179817399947019088302694879410056108171061275664700639582164599097091654789996009464570630716554913118576854712180680023311902402348315053345136647396403420399039361013469514566103636023073380780637290638494379840137392563514181069626235136546885702893717660116367065900808364677221230608401759829969504526428364076714648770156465601157729547482169755337406308798437386738501207938312937220617030022075974854300849707065042500042608077676542969276971995166346082722591090788858987029647952944412919953589936204117834195347650114227596293585800397723879225782362167314461584998419946605686328868360090251331254314898595482636774681501949361360451025531334983882886659607322332819734286898180545787825938740613915264335237058695788868934346888146443666789873729694221877454318288730246247974746777627764584770576348213512846229637856084760938311698739513261455947396969705423072864160512205109426251963866363394490798988404357918890402666295620386862172515437568345844325752527523786314919518184714304382296601276405631607291695191238608485549052074859795208153873797807291304646563991567955064107414709329780209075415994443213421675128926752492232331913962106166593619880212816074224603143796485740941265575398669672114340928956832820955581399705841593128666375261003801726992003172495162635989584475573578549669229539934832750685021825951590847318141717762814288899589022722947376807531631376078857848389700390013528824806637395240833904706890594097582617121279748529901701835096020632096856768240485136525910833128402864451156721352508296372148381849257245447359660536505439489633050784999596121440955242258401479141605579053783693825874218669656059648002132816184072683812545505785566747379242992596625641415084387123808160695362019781234595471572491388393422241120207423926354854952484801055367287988386337482647571144094106095806872458390893403391987288852807162004945254487646870739075181874132692327591319300145097939610322548957200822278807365042083867973142734880219383911288659776245754078828432408839538263034943784425253573596148367795148214807471702043146871335991778875991930220630382170097233594622362097728376636293374041403885355229658586175901793129605725092956418523582213206255482791777251755057468534560527797938661465663220869007392216643468325656272117691337609899261814790743525999250047866314649282739198826818515058272056797337054414147886975945464914879518823649658108826932885980058569941135444948902078193611609179739856877942520487850970364598108332939714770353777498172389747693768466824439003743392392091596095865050846871845552253492352673962297140545202514261214376073254696003288276966854005573369979290048842416398738123034717501124008573530246868331430923361941512206008680164202796191219685283120195106763638699890229923276093918666589300918826715638117588804588283315846244068706849731718069837729293276788238320781434768811089249724976673781012741984016931945363976483867461641157293948594896786320260266664660131338410895729130769258871165821088415722066360133100506810727058486845727729753416729524455360682379364611128129537759976165939847276733685096029404723658805356834829105751933660160799119506876532315402677210695429460673192356055444435212480918553579182011528811976979246977662711835893755786153663434883279323419437759926899115353536368107852409989480827476129938939377709162926028685420540626596955977545633205256701380439495793028529905324880078992417828992053622563921734873429319432480704933731246424047733783649633660784094370063556494095425652355780993108914811261234839257436304749679216443596448429775116159466590311270148042818088987778157188977504244181157316145022224689790722232497613396849862357726748256294866768449016210263615032909582698420261244836341812781086944838126797457329407841093376185702559753498890244560986121302840428988076118988161206045375941012346619541015658165529225359341144637875965216605971278642073757384116141205672757281149205360026192749624265391635038362853425770329432259752246082791456505377431761861384478720430714291562665394056821247627703079979501106891046573037128077369885256524442079147260876805542828732394072204383913080473606427915574390217096324890379679923908363391260224396367785035451182737766426565117478014229844003658473337903578696997881200969069367945061169475950446133877561633042252286151979490836387625167445733365632054708875419111288306849737409433943972286307082890545628915349586885763786587524475137137883013567154619973566217790093873864184187384506561396091652422134042526516623472677667211685054965032617886760371197333017787511129053837617174881526881937776623839839389140988452429734506952565045803153116623257577411644745578872236443507186581673762472664880371871494018150112241818589786709685284210137149534863770685370694923621142494846979633237967504808030982660006951833490685163122100505135644899288253217467857609260758941298518099058882836917033919790963621555643298099376468312751474649069007559744852529403565389587362561111491627574542890534704435529182124049883571872745046662662434885221515808080801285329944262697155278063379668958709720436910301330575494705068778011361979268226650873346118260520874817961772404008245294468050979811841770936488911674019585254591037817785615809500586717730818081268812799064775436022894419089608091736308750780216902580742581531912076555090759484665183203180585028968035799541911234534930964871752586416157121808908103677478003669151734930510745304447279839632841309841573395855986306036203907418813470496211780123475430198424011966025278486521539627577850725310857139730455456537134459571140763808234015003945055590459519869385795957659762070332462379146610322885225128409356316614249373037719985531944040324468953214399199962719788159746842765235383843967326484662633291304643793812737626113974102040643012715670082426205393161922871513194616887407326126770595734753508523595331087298245245960899108356374994300052341048135171140916872088054738666973607863473048827990873832190603868100670450494824896410398403371505553128019482323229536850792724626703217829208133747603003363027957520010163628364454501416808960997376383303435210039794232657118961305911140209184990373400149699348718034629240209486013084585537295807608552575924777282007513302757233835000358094428923076878915444859835713273596585919825676236509684130992821736589497728883464217714733067070747753994118732747338039972080851668427811422180454929851495810174949675220995345401126501880424704799646269441786157207837211897331568451357876080535548218412615453380163822836231519793696635812888245745532242969560545560459177603305435872534078537837086918840549255868809594734470114648122676941207892456051032963960580866697589854948486936743574495421201245757919439972852564359463229062384361139427438254183210873287355927638177238273272685979608801139684667540329416197461847587132615194858036606732099644970584857891832754494980203499751586446380099262454617593164157055999042142924831875692336258215463769091318806814630426355741278282103230050841977645343274620761903010769833907424258805051515170864566282079651679909771615309131570660920553863702354673118302850186303622672079739253697267945369532828691446508847404925616985681682541793213532790169138127876099306859129269431659251025098639495921627189947233658198842022361402694737199218045013122950623591158636125101641446711436503884405890661791830255349767222486079307191914591052215882429540738297514590958560353817831584097821506100726285963958423701180577267543110528485085750376715429727743935982834701087457843098443108267340738531227829717353077781597526523364012869856068686599393702241090084245857687976836259921399093086428408315076390095925869213497129021824233011327391065956528037831484556360911322298457272305651103081087083123627092532128834288547329797809058125789955399921246689036939858547302552542762803543755287376559740927744416747247038860631186604340431287931438245621480445373528588078043513364834450000597217729365034654939066836090461044249662915262198493623904435431382509753670573384747353714294645547442134994236373039976627056252261328596989156776458416582408545767651516062326167740025625107609609524276667359169049651687303319092476331777975748429665788460156144091969404563971723657400494709570414442359969288631990691425937958962531664927065619873439437202450893424761810568103243276941272520072236366372351649290476204368091338342483365712812621136774941903004326336593213609611305453201008453980587978665187499862513244263525145007664128234246428918310298101817557451427105729304272691022973817837044945476034882943905357366109808460506260319563436677827696909627240103739904112688196906609783083701378735649809016397514542001432352733113627275784498818249239804341557526311998822555958166894365761439223165611320974450132639360348022999381239091425664484078196912766175542579821472226059053365101576639344275793773338033356396513358744195709295630244546809484599527870718619494646225348846491606675561415305924299395723228529039281687674165971334072699336583553786696389595263353619038990274783344672497581669234912162541264458595943391948128692387241384488236096972259171037929805782122968197524951762409680047259760287178903921502428080545208540602589918553406154870757418662605002458049430071329369035943678882478349236782758581407167411793937699506916889013048309767731849838952540737229582307421986797313379416247968923883464639545621378343750332833761561630887221153478528702355730727973307769027680104260809775190150634571502991854298432363695085332154581409939469110635388372080111291095887387597598474366743559914367764380247320598195737031458423494762744536611907512719498306387021907848964543056945300170870791592752897821821619441382403227413659668204574338276478087716145736515540800363641356323614475913323649147755662248168265490360194497518725577434804014404387973821348789057960689262932716693046804198731659362146425954421450667124648178422839339597495122536158812884502957195489707727824178286153533255121279187748601038683471067448896918088046097055740128132801092894257275596263121851552530200273222982543108971524835949876057618904967227013976783983803009562588850326373354587274216963582448572689005200457001560782406573442582736374833533390294829822201708337992209285496051558155317055386790605617111926898335532304461941018488519373880129154384578047040537157885946981742130542987691528097929781016678865815440382254521930583101543028109311171522683092841564426421138456647032890829420399426382129460561289127711609424918187511428331411546440968606088541325279053144581729593383122193978826749007414472227146413142109588107287165598249931762316086195833993842284883285661480870436042027208942630583909848598768342874678544240392513385856573458295087206832626966270781603275878607353048254732545876859094483695528886482836826635340713188732082467013448662772358276326964583714475846836733408961615712769348094785210319949266400535791679065650119012519278582394296622080944000415054740327813577277411795800617607515335252105947428769425128857917347841065196054424361416056731001470150279414806585248969716933499077636994471209426323994584392753805076152128766920600613819516274397660872611032644181997830436078224849777339251447966470540006952989258195539960998538263770012132121166199671666623940736726384247824988279214758083157853832734527251285410872367573988704148228008974658622349161134093232899175263227915624889548749903236854560063835200392001073350305801218921861317159187327526301492434835461877169042647985507323249367484738837390093885110055391382851945376180433598125321687765319703800978553510777164163481600859034612844395132437057237767121135753552640527771294541358422272519047766912631663191375670632033325902364136955975476070321473613506420557756783638054840569614100312551377197355092381732698511654019956245578526831607006464153560824683829793883340469459376243783265178316688597849377683776360333667790465354930621989517245325766119835766318095866592614326107563436833028083017545492317824494502104137074288639828651486141103913724164291914458668557876634290264796193052177445555691906791065517090005593122015647147692581652606375692473649858758545709910481379829967520985243216850660687256707913063517770546660737351827483895483994817239044437810811010166521286231127917691246639555330287321684764108265582161065214290909398572878093080994819114289402792653714360899960998220208367019427323030874047779140764166145803692061537950470291569983802107559103301093852369962144422764673244796471376744882077622964247060249440938819696319243382530648758288562593627895647658428238053739804881163590048223673596093244615819203140025907487799010812302767450430035839866523251628009975584847494392173641328735439715808361308077723513891891319139644246360505104539860335525540584753869730274480351971545465851679825170814363538623989577577063189757509857658698320618945234329045055570757332606730551247606258192634884976654382946279582097247538916794438101045140057347202209465853790486703821310129106355484298524253322767782787447456720812286711001973069197438045403991015507363687631625659253113620521004558009053783814648682373055882684395418934728488709020604616387623619733729368148449602699899738132710137556878089308122811205376335712520628052904681331358819529134291959283214842356632057537918807914134988949730844862118036220015702654433514487768505881772012662674884730403300339435716385721730932520963260114705042078424796214108303898450034562628258760240658647349495117227985804731893306316044749322265564787485173993798406688011041481607094828202574833381091886228016295183319164677778049581381574976519405689971070500812321785485845487326636118649243625804994237534169498151852621997030747350407271669295339407990997170728924584776690788705779266342176749836780548065015257081052915514379516569106189623775493206514188563740597330066064956495350617460782220398122175101385717989944630730042098588861862213167305022426581065339497844754980869434770554921545062765351294619993569810711690998916476242008375961997804658403856712354924922534465380582097132424484388123063217568464916978997851089769669109706133434731056525838714053679145743699975326630422705083604077315225366468863946565112037750712481251399404903436392690524059976568856321247287057588016373085684043409052449495167290577253037068376174799346796355443624135310853341240383926142637859036770542834856343499785213386314620243300776884108648778416434491532767278522471979636812374373345391680746349464047265883761237063903962265841341443010257325212468986400261800689604784254942728617828928691799384566381952438254955587302261252041948011412643900797721721706332951968084679303967204695212836608696320711815236634812882030311075990318552309565173642418031671104814547933089754116139389677876545819295943906522254237225922861917334285171409417770533631027039589290507634680045946825690561928703358239785067595326259285906083717853635028712350569921695626845542639595310460463624309419472136623954333499322021258073341612755543092715128425349608035560610248486385857473637145856573591820471683560966837526618398476367318528977119598090586416819361792159036997196490239442749057718553211056452317598032190873465731536790119982379712116530069605937456933032618998149703874645936872737453216773349058368587455881701335513133323381841978549194833659291546578749985023300697325213441440042592184493561507024108057853772698672600431898206621675071900163323320999716494526350884307363366254639603654863611629497666753377480719401151325121624910683728169098192558839842484497731283532977393449782471282775880821425069766606210537256495359113247899622201610861202143701228966290199917463345703875103177404183294058719209645089220254882506073474845263827475060656722764760796245911981430577738594326962685719234419507980274300064953699439455298229600169355652352915572576830090150398200278386119890445172623623282488966077305456930126295092337333539231441291477899227893349494399319685817841722355802088758782202475882855270568640233014308276051715306130558685208437044387178042196409906521624286149382322960042834530888367510331405607391769538318287907509652970224119718738427890686004249034614107123674936975711970113548503623260463802475393416629860630973689625405355391085151511353230474599435411558009179763879010102761687258210987224082511774269219528429020175091518622130039271317814906111126660694829416624597658290962900564371759106243244177159221270941323767493102998630367099072179536293335976144141752520246367439817106705980009880237368129151291445575254099179533763775398630459069940010961861300161434096048531431600950227157994344070969039081564548240135100496952634935432492200204085997113737526514713637002544162492407273267943980472779927540367326503102975242630649563115025356773899961909297677012667350614558231379913059936001217827038359995513932216083164987926210116206762473631498668852768284371062911486286577773861856844386967097533992155393302036627390180841983065108565856168192452505297768940287577135368904954556686937041938413372381773990305637677852887428680949415531688545935729996988552577612455985268464789374174724272159624575900662157640214044517052303355940079888528499410489050381576224025290438916835697376405447230810188539466044586356616049747934825673969429457994469041947473682633809324282547229537720191088571942159191654683593112196979059734266714439434593939910506464609874730755840251326796696095055822121938528958125718730366283446756070893945875977143770610414570079320134922442509103367657852190958374934365320429411985931957592515461659365333481832955564813409323680749154909328714483203516176627537302636328851754198444425378323107989979846525683467456073045825574474133200180074768940606890709463357627692117857640200804642004638447150554280092264992935146438875272005456332297013033741397407795481521296214913366792069340474544080509306083457064672947701809769232272484761270617047041254618938065736823070683085150237549258571436973551748012094427205925669018043693056332603649329838579636454533765210343378910464999692383680496728179981333201915617596519366559777228661224314573700905043618893463005743720516104083659940872979265768496241317136941747425511491996743136087173408937849064012461810605533719106890110201931758214650350013247456096735219802121680763603942802476506483043199783053263577725071522343569128236592226796006536235001278667366930439472404849431513948853147266277506390360074392495824341361681333624517808481318020827623653805764378458183648522981498060231623865796172622691570271681859762557975561763945406453439077521432561815050359551992797390307488243496267389102712635424516850086350999852210141613203261175303453403456070425826799827500493135074995573147148155053439452533281879395287120082044284472148966651249461073986576662502476221727414115612398701952163508434529605331898551398117064681380473222266902585541831451236170915774673115115710571683722080224568875883943807356482450416297579329871696084573055547307354863210920433068955944439161692503053881034352776583412817902687350168852826091638760990224085029012974095561837073561108809646880132639604623056250278309455953351807391977582411957268088996322096821130760430195161591401386012133445695852116020810090451867379757463259701152949252319229992328930792385653986184862218378410410999683694937126169008519808264452250364552192966274858435927994838938535333303406122886229787871421276397671895906453490361272157454328671903295645572044033834097763037680773573594236098128640762023677156775149702989056307343314080675368108869967806005042533280878247147792701314329316828576810452065802581844092113960890800698271922659470784124717794580411371145117105916755663438075092908287169535457260424566843185153499143121017713672445909547312915194789566489455157225468237470842684319661132875411136637353861862769872074652310799603170672797640383235413692233321683793315044988514202837833595599378474628380917786304595736414967306266868546155027565507152153537493012931318497660190801293601645871039148695846856753923866546658327064719697962597014896801499232566859140710307446149249689581665052364792387158946414304313777548186646134906905951169340725587423401056154392283758110983200656021295748343512963967334735257165977268560873730680759581494374286817531970263019467735174354193624230694428026690886773335104741323419051606686762152632125807732754728400740625006130128078611874633305616472174989182611370493000637521277166273629631500152669623786964311658958529614383107553135813941557108807068546770862142826459281477229145876034552730125224539875955379546420218073545229105013879349131714514413874706937947879534400319691627262988600265453247462678252498558202366162404526222874649592657945610280106663303040795838901623050401431912020691543224291271259925211856512796945185244130447063145172826847651400528566439382982989470396609258119411477443370978049269267042367226115887001568661031187762288203403606176626777951200289094169786003132645644729091848609787804012442531003610782643159547457930997872976329281740794656847080426257956771374366564189472502845735575518710682915061539458854557890021199022676861617554805045085989882614184884293207064022509737639121660081980083938167903350413111719180457710433456258862249290058917264917029492406991065387205706055918337268804047664446054643058444929386318292410360584464484300654305114286021958535534247874519498419677803705164036172035588126963445069450379712624191427554800997431035999291229873071948444290493918315121170172506461418811674502838091579910155681669384440530633684573896210457773369864218461492425307727908316719113093759990160906904351946151241083774746439783965984388151953479460722146363977804651940597942840311504603231808557765331818389144614624765573115366953571557148088759384752314365290928619323339876044986496212443160009451794112207686268029667499904211085412948620187435458659776217557581318308615176367663318123013651655807875158938134656668806523174289361774196652533403057782730013587839315631342519942286223338715917058986206409102337991941833015237365972773848806132455086479234777864111909219748142783411682036378825948034165438141908643302416127342799857745942862058624750489793587845753345634408172391052195504171547774349375366762741004112704672067604858467447557396513511061204165719535632472057441417223680764122586585779436333025848725788751154928994775920778105839563001825547064365146532647370317475758160881706143220968290553332888105913774602092802229277748387562590537916042673384113384903491654090946368792314485922785000994755958367584301812662023550969151331507526711744601482764221914531674497636789239414254998106234928194694132977977381657095842670398242210554512725827182168173518282003670757863913899802975440103489531128487060760725974845327130249368424441764699890692503284570914349193401610199286355653395124312009450897661888990953816443259037895826245555190534435571348919793276654410232384644679366666348357883943313453076950294961729040325030465206755309421919638515540788139946129298124788590911508575243204545029580899747936781575466084783025061301192332585798123274512147610383606575802369960801070222770499079003487492847294678953278296928892056013390064166183632639294201544743102654082230565198784918419197684829131763430340670720392942601887246121247287016717618434899890575136097866637363119825670389886709825618933335169067569363050683272143735187169677193125937816528367083895899280957407917886630683468371080476881831380026642813906952247690855300494672362067550054516635156400318837397620265100181133531199840904811551459245916326512127469918319551049494253675368463831880060525879074673800545205619775709868911630688232893664405451419140920635617314359810352075173439345270833155504188547893697999334972406244258536184674371613238817254695439442209498901220102976940154126201250684180181798428989740872876453319764832468742291926039202336908771984102557576110146011029367676973206235984183434224356462558463171132179018242721582034973800688433385057177349939854044810288677838061376414432381778635654564990680758337302991957245943040151597979529095964722409388819481187609923900952084059012702638077367373401876245071800463860677054809862568977539418650747009647374551605553180958633938762672831110506900435305259774879914852423361629510007182304074572444711130570946121916377370198555604526124802786392015939848936459385735939163960221659162557834107449025844299081151900274379086013120182899219058367117638430290209940849785204302041255754232558402782595978534695922120001229578976271388901081440047901882201962314761013122683329100691104199555580947873270422917764592075628916230367995187740400625542397538163861618739418533397003517560956575852312886233709443161652710506360556045136783028475783904942210547200200595815030413118285305827626677912544563684422078437660604050575096163059309309744256096107467476486700957170920296938253554285699576231244273273315689614562746146912596855570245467314004040361329410993807091075146893124133375558669247902821882850223113898070151909368668645339252189445924735393303170063964700121068223878783219318258349431862149473948299919265546459638829370876159984648137693852744445605134196001825978938154998716975947432021962993087778858485668182311921006630971930299909494817100726094969124450874776707385812122046082796534916521616673571118026966368292109687070598010138305625593187365076380285471252377033433045104763461820310836349016749618712409697422696337817370877410517082584445729297595093996634584885818762684866796916090098997117284563855793168564980961582109996749628340099957210014572251521909454679365097055755053773324192181001817683643527864769905420508189653369515890204510051406223011204993263798875644421238209937885200224726480856816864649500750162708090561081303976808620125784636825771043266068823716279190604337872036590953219750655890195218892242712314480972366474454676358278657545485585004596617273277481030602175643062691390509473884327080905038891340800325482064303539691547618505067601406308338476286777425495746282148141805843770633287874916985476866622393882150612724891349804766724641123221160969881562214435460493828085001632446973466049709571851707100347304193135881093962868917741405060132328330716252871803472934968401080198039711513706445144389269051665652800106708063821427134413633474889834741298762836259114235363256577974185329816764080781666624334169487235635862302736722941267369669847530520383863300465695579000113776766064329448652162169944806740134324643892397232951595300149310152527172842257319084657705130108840994896044960376893932823474312553824286738624348385564283748122833246941949426162519834062261223794212006359158467967775647426532562947619256179354631154729486847782333657653586488652981239533587632632319935400925987133007803121165903416384619239457647004512459756949875807913780548086186002432239221619956423080743127245145803793428144990542692056670842263906444243224148994869726160946392711782085136791276523589442998532161004978623157497081944733639598084874752587343573978550595197015337648117141157211292183285830417416477064135928127537197268578898902559993615891686855813269073030024278804485380807093371460382750179529324566473867749771956819892360060898198020383082834089125152528529966510869116486387966876234703580785851172651413696084566490408108577940363538836159562400219110054799911079088699931529212212444259478900899159914430492376321295023437276177030339126927955953598588918985544274992988373572171493840329060813410537577013556502002770744763604902273334918910961591084657753606586101827276407781192132098065796692043941186717535566144111058955926526534780260828574381795867660829639092446058673282763260746693269740246871650484946410833133337743911326359682621590345649639789539342541508792171728814992191500910501986486431324732122247116329242274173177138585577183595171516017758756839330855040926475276944833590866522191626705116172731790714343830524921973278509461998181681477278823862662490353350420717470781700605825411067636796999825561207082989336778574906361107546602891636496759930370562069914923161524250083579738369117441631160677890941448883414688880799065679345593142462328393247609585144842888960695094316162280506246465025704193114255693836115114963300709283830194080976019448024211309699499304238246429191737278245060779872482901965307694789365765772676535273598872454278719765136309211547982356495772968387434717746589736572530783154368080755056338363798601314694023555200119831966221261875569058420015571856996792118016203604754888154560568938303557953783608828934341632591832071528099584937149486435678320894136150594921832539410728498072011993707897411979364684959377073765292737438986862470842527028375592831413413505581850133586918410233009739374392226392541163175084056024370545578080958275806152364455392683936604570239032155183175943361853302234825637732837073812075139713053789014940728185891130723881951017306339524499821389872477583908607118621100469567031788472117183749647684453846444449398443120974403621633514072083454766915237024437417322217940666935055570495018797647368520656980185765818338493372459817272070976025642821269711928284079714217975747558093938568246334174078566582500062165798754673709170006657694042141561271598355855694607282264019603134452342057444675597003310148591569000471037248413692740900293663852345165834712322046948216385616750644413655912270635705113717122806969611665734478908481059882998460400893171036179744399468145119911465716503539144109812926026858697168372333312337239859529379584682115419135919103762566528753701682341193102094372225768021829905420587418280785197941383085834871423514262502348114034149539502526334273605566617466998854718063565189132529072444902811985240815130535151927638777703855222440338797417378130258604479308462489349402517956045928926904265721652957111344357192154846902601653755873028204931556226016418875013903414212411596279168440333903811442655998881347099257014723716248378354288992289505928575358495863139800282879934296971768428984181630824892948274484507527645547709683274287000224494205384747019124104336053490178465693768478663304289561886220082218463864290679857422863435468224269690493360530887951931614104047041298356831927621395379288082066286061392990605026883219041492942261031374684379526702236010352529475332206308275545933160525455355444183904888476309698401486236419359224748805111679448234927718018897441875646397419631885541496746605301954667492057446075004574388837966139384986485048616309252834788116851190964558944140190900239256103758442679727430433836564905893537076342144711653314007721083009775283407968648101934850749515895712190895423493692824531545946420759969677394824546767947792702456330767570509516309216887232044181049296905232600202200582145537573011430262237995227735993010800704866642368977516255452112110594818213525118418283384572520269579589097715802801445614838074076345194057436729104608380946534771115969649735551833642452895764250750808704904606784601968182336105256993593839371733572043018487655359618244832740955300099257363556308222439767591975678946055827344451225422567675513585706168795731154851010617723207212942502752247659305111740979892034938088092503535760541618297618878572538939121486930817121633818726598748367564955536927136694005726890303893228009769981471734373250216813554519002576068446108429211526903198218810687981229921291500735482822551913753191946029814219727815974331962053007649573992405282331759144234358782724526459735466571052554336277154494242916518977094027843606356336810096517855729312841414193967899567673108444513730125622825679912836761535572016999076317725774205759911247654045722480852458151733870012879006869613785962391028567874177072000972183725216194142865863654208681167071553568188885026439288086765282519568998712360456664438718494181426721801291116001466366952810478388799726179589725681158990925769071173463815516619458116643430192036709775978011392126060616590421237320318305866819003642478178258897554277474648152511315401150351968061681081009520642822647660194367823853229830600882869887108502596143959391024206947352724607762921782475460869694475925169678436067888837472075831239116400055943225799034840961405586308266928236956038804418245944290620381904731163857844450869105919566672215728380315437724434949640453175047456454196216523828745729021787647089169412153672912315502536696453961858461116982980408384636470790685249905214840375336894741314797320781606708728504258488829101203960631630676165772347132303668862277647373608245697492569951546329827017040439465927201983792394930853830048771798114119941699926849808324336754387942055024213173129163549129978164962294415897607508394172587096067209117331297400953408321948380033291650798514859665316372636637266953401643113878917897165631896906161693902743120657265848820610608974309978366323208396480243625942800306905317584483498165642750921128370925877627976072835958805463163151844402076587151690591308076278157210804027408078003874640696626899882560586483290400869808084569405825522848322624570880167073321964868861348382475327184679903170637071080507712043078969499165286547192990929262446797584516532035654804029499271120910674755773870015236417547106154587854339175794331187329104606231868388240370809068776219834997755262367405632735133384502512542857512959290210364594321305166142603895976705817260653849207351498135392946159462072914710462894544562137560297320314873398374952296249634912277630960707857033920544805059678132701917302374500256964695710212578864293060397267122327409721943323712692340033992215086412634321128082600026539451571432210652975672015556670715868362524636460706184394609906754185120759086795330956532964997292528849983671535364745512547989698531233263743571559114183000018090141295336003464834103525185905644239909830286392621947437024799092290330292643200557801864035856359712517827600896893686122672679717803298429279536337192732681538050802356297031778889538550412195565942904387293125373814228692308953562179422241869117727113134629581872706890607605287523294305069221538246704100700196449253906529563487085818532294139540537572753368883572431095171473942099832753443912765095384986882520766324108583803046437206626340936812613351580153539579071006585202515060853172028040005453978378788619296817890045255529327833304667923513879696582046166705565871521561011888259113274957027167197963047593873799162038752951337624342002887805100031171517049139533553972301813568668932006351692897089392029135597961452012020297908192772592229109604305111996515192999059344926328548229462659287592319284979383063028071501444644148492187079437233316960988369178127113744503061938570267493222844825008097994966560644107451037947269665638265975189904579244591990551121635790701511083016777026873285032088893161891317723778039531493463339482954189298736959394195849737924462356448176930672557953610350296614713504432354409189658543867949694134187671826629387641956821697065737965674994203839515352456759673276554052966748832371307233621810015203690787112309666742939117858249142846379736019315985917451936948407259618778510911484688873698117747000864916896318701065773407458065280096086257495883912911428054049196038509487961097484508935607534817337517243533502834002115602878864521020419827360879574113844976015731443937729694926165300252515873162487414081370069758987624532934206516787824108934253857898679776126432592893723912817549658244489969486000877041685514021915247928119863067264704549551564317505162017852595505382645043911707289942241225196666417878320333919572646311610599576336569684501216002268662742187377246438714336117626302528496378757286794077163738879318986729018158685590560954364458382295740188391544915636889306218689910816108575363813155427612939238452440199319507151792887042248180356216174035491583521493938695262456373574507805676403598707888050993218482062249993394691112276190877658012904144190429721117449108126084980374614732490658161322829382954859071800390957907739138937521546466829947258082061889497064339265176369997253291095991268415597651587664252672806638256415249572023258260573486650885736330333808912607270813397926614523143597686319394154487761039602328527839542190083148676145738710149320496941730388820974192179664473340903336109594210815620963035958961926638257853721999346439487324049761455133009134830063562622109353379228436053638317192768332546892572625686270501833892997890647016806134786095703247102450862519036128057367398129118185389765640597970649670505310568002364596025828649461587465510163079675950810792778678035679713415816728271613821892964766492623130086564936829845853222844558342754108073313173705500792650089413553543851640053293160945578672771842765227149252334215764324658230720060029800204031852629434514105786836605840428301607216251263692469679449153038946085957811957387205414161001356227945164117786381357786153550082611671128079281874057860749887527251136475818663306696446290915730509202006241859737922969279157116807902898166312733056874114290027961973835164262087002010245394275716415302075609630559187525212886852138947877221245910009545931557378232035205551390218952822875699720951407632635142132705125984547918772556822476089277194598500255813543124629314613047138674627947964951676885907980265980989066905228511692551318617321904421376108953563845501423848274730294566707197414750411258070512356436253815303311625625850513849748399994857007037093861065883581846654641055686177002975853893755908755565084111344056312293430464014947942430811162690589486847095834980474631606519668817956135519668910625349817249876654356186798000571219406784883528897533853445201505078543172377761062956664917315978442877242634260261596605178659668168268281136800855479901759245611212420178021711378454519426517699901480195813798632559620305234620837370054372913579760677251034360528041193913061001781693404161056463990486547155037550926636445455612348421220318092646831426330005802107108516744425291894134712955064886543373674111055128352055534095860469551394152230911184631552820271873152972391457156655629773871390149550335509828005506083378268453538961726222467216248106287226088273848329703243661551617794114295477283432732024251677312872130996770541415868057405743116285929448044024443449123725767821451962521359098776032049881291369019584687491260084569752970357014529772083184671647237719465622227891736323066344716402415881668047454735025238235904317784251932099967571839635018914649085109365516236539540099785047566046572732671569220044089010495404984625431325340952881099152672780567064125686694426371308999128320642745800268806281476011185098104736402803413418808041739914689691543072226909862491137423858830363482884918613098634382792943394330847222625909087895710376929722884980254638485869351031067971617128109976252814244816245083822928456578047343782079056478823698471255990309984718155408736758788803683270482878104991449960739802427486623729986910373337062996203711527590305367092969335881306082396751563937947370628495122147190202519598625909987051458470596366724026831946650938385258653867652445150335600145404275602237311513944913034470994276696702669530894555599035204076751586592430488446943561306147317577413679701415682555471271554100096860556183262456893129039103424302385896908201786077082901732816670817916839796920400417190784053690703826395426184579164557054924332195225167161277417860949476782553784316521892126246946466227418614694030315917009745934594139584277754983704972129370012883252727057914804622025155071276710423196671092947761643888152504351736798195651598472031818754059293762001975006253082434404960312579510879407354999834919370050215422548950046375442127121061228194657167935469236989639772688255242730313097584832824407219674404210302941020339349711914706177255102330800840873328062265327019166726792571830591396974273987548991061009247506710633329783756033225456744290882519455171605805279618466483195297027064294775111685741599938391691538517867850301961613528604459664043374645035181235562482072499418656173132872757747218472520350284512541506543267155072929164042269755482644468401962823069739048933775426460691977160725352646258953446469701790694603732122589670462284404493343619640234625530784445165035036113394450245594145737131371571897357983905251862354245112117607838094417863435628301025453745753776902709265605068827921491006617755013454855349812778362452449932781245085161767787896725770749041845176815114190485909210191171858538658654011792737354846617258718612145102236427870782167691228869597669436921139420583821390768883246388384901790020708700112293105047637104611696176967496834404303289761239809412322458429357179353590111472770332457271317189738032287909500224380696305935445442556952611057371288184710935926946849056475602966077973372066275339009555361930841161176667472211553337717541393305033966170401771134724988041975691249184169779303283041022033321513076996697093506117518426731500165842710572984348750598393230035449075517866706069407238756649201976967436689529837932504602801089323234951049376344225159629461387871109227783277356734459922221866847948483218250827081189082581178035431974846970440526964408877946370545939770742683358775384673633334416754167687702895826865703012617436535925310815861255071464029259322320595536159880423536766523423603680122286819550381444545639185475046565232249617413374513569974296693830946106245066851210039978729986283369044123693179051104511332588965475346599600432193431424895601168338698950876818678980055407128145472383783424976597439690987721216264543741198086258451832303033474244750877116262728275647752367788069298118622921511513884246256147940903262535454108872581352093043100437839080871914539217272702863941303264356597718728890519106755756993139596480928224246486809334404053012800438114556934368478757869656457946447693706610533840993648383474546828267407432093882927095310876236973090985879061046162361225816838790851783022755636718102348716497670878264599109216983539318960387562110219681805448801610503510792904187155218674341101530174452773494173074779423396087005019068620565205550209079962568716562536781016875541581190493345202409113262023253104760578824016974145113270611206778153145627312657530028071111070656949267868005987805548968584705933423649772126767926156889304791802400480703712064004160886401669806213129523127459928931077431944002224092875969098640974725512941973552201133027116911455379953645000219167234023872591344845424478962978681110290414685818494989340609356009312517231157864571029657087213349721126144622873099265957630345802496890805059921254572729429180408307578352291658468490839973083986951545646702766953237954811997019589140631136306547726457055102489590776169308906051296742588275194938179101220170877419962248621467509516151804894705781876683114965852915317910637260619135196111218677990780242420896972375595563486458890871911421151361999844143974893802014386419677717254964522571030844751435024552630126914937982561963523842422788574571516598951018891098152525365596429259180194108023912878847973788750272854729296593576647590681283771319532548086084738941735102445435875598892769873464947314179673322503757797619122282515506915367770657651919338697611594796301424025091134648896603602755934750941870891576895408484427658598318072894182006131917584424765139108170400955105372025569706548282860382108304875085506574047441350954374200642823632770307771150555624549680208135978628005719695668027291787125017794320227314793404862132959921984288120188879867827488756943621463390843080145329594046274805595388287950607653125526304832006267758299520703990084945962305476646984371144509290636941195912292377308992285064897640736840742086055952615256726460199234957014847684890677575784790783618636556734656857685809961224239919251893035108852163006692528204333085338838059457695981863693679515474714210508182405004399091944259479804200291159576433820230075227404423486274429148583181799656399954303012165582210571958594972096950575233081002676905432281558702867388484059422155812963637066875583656951859481917249760945110968991161281421587331664787848213948851063773340481190728992246663720083852470662293154288342220483372923685173393932940335003368443325410837489031161634604646222025033757776304383333243258755962562979088366002563976913286745571916580575530701192582791670137255033946828666517153990457018688692062377179330253460473180843472123559880094293548516180736453568415896623513351573483317547027165799502410190409128498716325763295484984510062551563817724024342537260372416677570235445542323272522272388319696543424223265893211832015256175898649470114347516516071051840461723799817519326250817171158879306851993467747146327972509157073242813267520900995167777677417076929874717804946480894036836101730717491084153117519346879740811474174568878767470587383840884140055657938720379421684617363871136693556952436047582097481228432060641792660415917684043240661623366275464811693837069411691270324496397659636642635745887105406041937063559943795015295410961456549704648206466452659775091082662694750112475017304727423736329891947517346396386844736061217254257429914408452656053076859832704839539770235052220232882297245610591290651031633711585909979565897333357313140799022232539638237222937472443687187350428336967805897712271798182178767554745723056497155104631103785645276336532359822327902541438156239725496817442609728557859175641741229018478779612447215589016051025648519422599030920336937397273012565615530617694310031112661369226622619050016711670239370767393986118673113227906371545225595480812371485546565617552539026638952874463321874639153021733040045228837560202834468855842131840257920285325467679637147957700156397519539110739638946390746119136908976795935504146479883024361197434983804737095521509785256855430632736998305741774323275730350192700841945363809087483001318650014144493631335953102109676068036517683831784102405534027897648409195156352009911954221931745754374306251775740100096113696330009828878529448997704692345050204138886077363518313576947345885547179426633348643367324232476635739911277825281208206845034866143870102612214591966046077558730203378176824357750197820610034596744137301015213503873260406618349813372501031868725675017103967470293910863481176419616653429991706646462671349939323393144993956757480172181347148387038502141492869234095193755061140267818258368033778536309769846234013965475263913030535502185098985985451996887724352099346809835583311591999688166673385350533005472637547967427901265192793919972669938261739705524536764587934452775389039326455968517740832438724841407295717885263308301096076643753713893578679735593266125376829033792665458166344567273176451181138067406840613063261561989301668874496090802142001548197366261693130574208448050247684313070403052204390473023850698194544022866894029793451368645579601376538959744607707656720684025409915809935527887490560434123193113892490358999498801959543571025988737678977343275531486489247200573953096997220177473864694672977467163237085552066787859703850582911475740757275889038719566780019849139708209992469836278826739527452274712213626210072710189263563618532321385466586862306301231483023444587914688621535282281167506145458625734129576327576522774637692007724813826490068597210274222807133570202272646139547419723835400164052043154566276802295044750341098728147183122902692839665762802055916962277478118512794609685757115811964308045620767924766042769116021985948570281298307730533269461653415816956433132010788231758279236425167455483760490967566288366469264895270123581158807092747942021969988473862383996118602123386159770439954512854652197393692805095038162492310811840083657530458676526461486731980900074315597317399279703606703207144567782804340968396960215087633431319752670913439472568144469361321011831116078550291415067946127721003107806693461118175332417778030302565749943369540164663653763381012032484317824997672942426569625946411292111365560219423780419366886615232252404451108315854325477451092431132477834402981499757342191734210653893516100712704453967015940727072672445450114674079233724569079254206999471362327582084122088094367288954587475712256207587371033137345067918696502172376410068110257537035794281526679235261866893686484532254227526793502470079630869752177067764546499080292269194418478522552057590349094735651324800788886845437600234247420236890924505808881195902286953852782103857570096615332565644038902041913334180190648218294600348828634875619725619275161814123764981916571266997020223293469689276481300448279739173210545818994690259961501168109642386221498765745392792626740401570580547035424305769667381464908203153907286844458232039451369088469157922250210895606020602228115118172028430017836597095409274783480690792466446228666226444276930523142195680482131415209737987678268605490683460033479949541576508299163866371460748880654617665237476813806133467899796655046349787110457212988425762131103675921926436953484052902825074576953052064839639592090181837104992788494154485968981089213646506370077854606400876772221256916157255462436230665720027472349600144396293451326891658820642062857021749257243890542157181186105122819673714119810942333394402868399704623023258131382768596544275349485676798041792550365575531337833504891560584224641018714691789490310057640833071520891184332102524028677350621460476522009952634114391801762080440132542193544011991998831377256757101800747744487731730054468485038138400590257717409045279325454756761773178211897100285197834519148345091682787231988263964022654769304275270293878549272049003229798078963107464068449867767650047989349350823912200281158019308370732254430151194196679958252206375080524312982745028069511465043406712207070906000965013711184598544015664248001708095995612345155924366521270773444993137143373153214192379109626788466188106523894837985177694748926538498948459128552600819586293553355374082083279660536733371726996654718612118303316299682341453523623293451567528666001581837077513741275655078451350448623311247065071758936311984378302628395308982528022233922065707552437921432954412563608697587930344250049280992237289857805075792147456176587453580834967112645706620036829952233291483891623581519878991264487900986051079808499340390204719017673499792344568816820827020318714203382302748452033448775825899896548934306289376063099771588183359750066991122299458558932781694909565785748486382121547705883789601227582866431335507555656404551415337386689603508676086273845619090269682355768652852797465166024782325095798847933639180366757470846552605529874568539976970503931639994673704576015261351296055226366010394389661815242019552154885140147149247420965649437519739058280510731007145418767711045289017437351634348879270044416957771764133068851448001986014092536554393485274851572681092435315179282947066753705068375586322359406886534347729419799169760144886649375035480925188320461660664930492459317265818594981738193265950613663603588899036614986232979530442426430153044007237359946568864063252071405282630475004125377064617403452274352373437489413771372488472523518301427600056588704854605144426421892481682814845618131036375909388079852680475300511907621032969677729892653743799948084480916394799124477216106290065400367203558504281929027441590785585635065931467083220383525647800972651794649832029411287883549882152170118423303878773377244394387956928074702750879072264057430409159965945142527560889800498781238014478753972723665518191307447897007020596475042305434325908501109643849259135938649977169799749821653043391822502144411927725065492885386178248037757247060597949332396482068431700316754598727543736926654738981619214226118799012824183879877404822361018912633860480425315139033216066818683240704606212613271755248309517211852526274505637572883574205553921650372116726111842951341229568668166294388252828830274718477447174311980383917864469958571635798605594138049693854506527102566812161124362345122135036204246376401804727877268309927918909192809216133721546187478147868398880187105020837875086166513804901390088771669215178696368456983538019385103955022714440328947993846669484336288725030700960995990044539615765449081668824884930415083560703764873109242921249132274438339583819596788604284628975823744750052633786331795423587626716859205978704040364540625268128959849118352180495217224706993144110379695618478876850149244977459227631607912044673999205434737992976135622281827939933824215754888963858698077217140243878218734786492508958822301495737996683684536898161829792623365561152029426343532827255291872925638489002447454585361806266252392737555019578359575461960786569491127653468284204003603550720043003739883330032409962069373523247710735472206135088960346506593593548765664164284690043282647323372415335271338842453792399886806800310044577279392558031067214692414167556443002323051867421088648219799687775150591830858704587857240443567323793268387920635431269257584265152423584581198293178266013429740778257662854979487539728312423435956138743386869780302192827533071790780239413226811242264693649180413948531185560938845677579157132998246102679031145094049822344014722679284171528615138893813515441343972316683966964494440345883878592744419239242250488363467317825286411871528582124313308349197288830625649416039729917483213288920874884004814285244989851138295801946434226268206293197446284114424290357140262940370209327059928082969150454870955749419600250545522103527837890301179857769578068413209783852108957621539647027119160326889402386236412633247764722059988070721871459127698356682645014256858293609074365527796299008952481264899401337982892030115723404935119946740069526273478025359408328610781783945309021018026335706818689736578390836658588713257043458857389698811369720795946920388235454221491951578118512854257538148251320638373508229215827405453761567067926364855170695572562288504705970342964854612496827420601160202404020990926955260559472989751241128381175381151196840399755137454903436793721488975883135072329728968025049593618937256783392781644233931718273432522226694230628199666901653913911663130581972865584694145703874370691147231036646222094164434038324858232200142443206650580497317136640504698859776579528643640200223228569787161755363946689706541455777613366549902474867482191727495924905950642345704072126036310625263529322242159071123503525297861926128293394386466405978958976929959393545976934018762610622712132843051934829073948544787536331852038741439504120203677421089694966499457016644690707679618739449407177802779203875797076806242917326460345093446206039013296326823742430408905524869035545242220454837915990071791251336594345771217338335971692701311835170770911103735448467020315952749806512853806662682505840554112593746953318291715263764970328525419153649005832173527461703827324256332000827542746125343134119148065101554379262704762900515079373207513393324233050449793823315926451981487248255145249839546031991249757708243318786226333728431517764207099266489192548744839469433360123221340076701569077100498010430452260244064445453109597237238536868844085614676072110398683592717997327812137775012955381292910675788194833072021108376384201463987471974808008549505503086617742730600327513942708517338946553671815547345985258255592761460685028776175282408989377624120751821707267431557269867165871615341363162362099469591433837713771358045064354709264820938086795736826544552555582685347076856708110930576603974965191911588663400883946453459389178174691715608046326855036780602247325585781270813475453939615887520264218162802803591481319503986441332247297289445109657208645076977646439128283915503640056230879001025762033225753322135170778331051512135135616196557379049217170894684920357280451482527818829867319151260545749770188559845896749495803152813710898816621936480751594338299127365430125458055814547567994702526384750705293762319181888585575399416233659232580606521577119618014332396298525422698879651077804928258007380614361034053413490486742352183858186934969505998383872018187009690935135910452379738244174328666343505636190601580302478913964476597071817314464973481926271510897910972787837664332615638448153548507594392004857829497381584305126955597439882759076833362729851224463390487648768149968763106742035099378467148646848565515736107641419204710177315337156126132206963176407598321279392343553944127167547025735644082823470649783063851396075097199628967596688785503882661808416373578377375791981736937887631789290342090837371308345031866345122719474574512750706934221098562055703979095875189333632022075153428307261437439652690078838508253329394938043519072814467294591691650585576577354383541934825534459137142526693549442013290529004588871424979399094307599009432847938111281788431247540874012546096199199939662557522497454851604005926532561370477296501633161849960161769896722195644276898302177097524062815368358931229457009315873534239707227143720332756529882947775316934464357236677654300924701599645749581215263001496924585306153086947194011379413893767415285516765585996133199421410988311465186606844315598292683737180543421491289333813906217812231053170845156645847698467024466106066885546414539218124824761809503300000592456001882665560171147773742487588113318745141743314239587386075098554177040583316984440741791984318401949506399001213544631592883025879317822758665223193994081493599790967606681318594161596061182984778100179327437275775422025614411236922296772190881324451566073456943588578385212693659723540857738777734787665586554791016847526977757350840428949537400772759701785651222225813833167976048720992209906608923488328919862853163507432637523463855774203702616391020675943658703532213630738403214223932122852489353157516760752947632565164908640327190150269791552367750483110098673997991915737370764393455999724782508047218080576549116273405307695231121448086140658663409611168300570436317411387545755361196890374572273913806091398853245580568574954736871266386017657000093990249543289303358309512381274904321103049724859630897020904453476242320782846879135569048331027658716421033592691595940839951715176118999341251186543808996595736867364835114970484275570675418305542368168248273038688904198090483411734397872061401672191784650517399869833848807861653143863998210714285521434876824474675879890256326391941759238202592280664086619803288240957190618144011129808747358399338676833703611718566390415606789737505950669320023954586977643765969581753286527303930178896981353212996403033505807670224401522934439526658411682632605231061595308372744638750859442596878497308057905465644505351094305465591505156518154075144990518556840601082347172490882281641336072943417364123029543961677369223717319249512897389095693577327672362628109492233212606272474503356091993287184546387179879057530858844483582735925174051233403507839850145720747548009119644160389842620744565296711333836473178899552283017971611182281725151092494615307259268427417679702534872153438534224693205085784138984332084777079065215135646600674192182712001600006914561782909850047923402349636392656265771211695404873142650957296298850503681657847102854721805150553961840716258957931768308716028761793669520433744921746191270623903056511950858242211068796747859598257166579002136493605697546255497788850951086868519579917206274156224921918764946501558911458644063414836336925445951682290427809344663846473613436860854445443775694303049497661697841916634902770453257130480246646569076502648067946350693732858863424242272312681149747181493847389907338331909959138851463706730205750720471544285996800460461828443218248830207947988967307936407104917333011898200149506959552985441470189975153926455776416307022199216767303595789710523433893989839932195652803630116203989940756499559240611983695586310964870256784996842036900899456678846187166092412735382267261818103806492574177602121779352199348902853660374230578642573346178353353250083601192855309296377708830197451147048223305483902612214688784384726267006553874395556792658059041809126228634316064184780639034701347753095131075957360407889418594938803344717177393403735001816019067513829329240248499448719392443973333587211015497290300252865484803574995234831453118690130263567627694967639375905449951508584913981760223686064896242882810262502693821037674310474181092517048053879666600017121259297238834994697288420075643215223457344767290400394133923161855306948360087960003547602126554568547163724996304845231077772634766328718647811373871854901873240399559391635509447254571840091263369610412765778210967752351958710482187916557690740825932441629871310429581105715404373335963622281373556808239486738337843814341203904290495004318642496514773979498424967938841405775066458128028213259224055007836318010178293410807909228389982905485933874535130758972016891040400948193452118985766148785058727998543125528589716619582621172953953932816152657191341020100229325169666035224410864390315704747482674883139261697659678142218383731674466582833311892553234638906685067147776854712916092919609170309874029015976346404812843930967956879557038248337913136978994653339996981386831721259742553286136993023794451476540541175335380697867381192161952787437113315921534050513336719012316978135780036832334588391806824813945798029170850262731828907500996700565219742652286960244812760518502172482818441587015634232165572221599834895677063268619462826017913838990209158841397149942202282162151010662152353989653392316432159936690718833498782472403153951686156746446762438988068987107718966479853752693224915992945850123318204326856705448507771455986671100190065928089294044190302509206963969586641192437437925167471740761878250904692859939860065054721580094990651674365736581399999412106259028291609090742921356857395655372677640699321713191985735766043654406771120952139135391234522763843697805684773027000290098224445110900059781283309602319736165965741908963570078714494540149541204234250425727773225444161986612394112855610279534327819391745862464951230839497346196996331742776032968692348771226661939693538853013003943351103655505084872427194570524399697830436371006061154219713484158789114239807129500368998068513859845633270864008434006323002249052241665875932057204118211471750743647395749647031908326968321119642192621452830836712622103127050794493203398840933615960753414172308098316617735588091846587950234532059772435857306511430385644156260830258856774466512736363150858523418858533889050238771314422143977658093153174570105291079618842180435515320722014181916895045278656000424984783136485387611911247579770170788488699475358147598049954692133438604210876432796172487242971120474696175041304579471985079433733574529148794272835140035151920496976991808766594771003373522426490759942733788317861321049443959965564911634956198035330490484298140743694564071407998178809653969656275458342504984904695722081300541650118944455751488588657653591401607388505847321140549454925882007899952207195566297437701960480299164605586258909690256204977140039680972746241646156001973520736168236669037275187905083882116506129978066901280059762070240431548153052887174539600458372427936320675458263711978584389192682100739254311203685439166664502355408488230712434369536003551564179598838705928885745293722484220226889583659206014036471649418901632592799060993657917497434164007059746215030850931580545898147783554234109532802848037082433183534819195757398316313606409546829813934161969439626834891946045459427389375546309491246394517724257851655324786275179996419517593594556633201081212191184931152157727949350977545955771855489252894044173488416478158870542065420600985956810635619581767371924280706577440282255636279799512186657392717596721404931365810800441621251192538576560188407870036429554641028652639683862176533540117688348201534219289403805872870271883649475336249144924605022740039530534348574230427861540680076959490297023214006836517923207563651855835446803701169563134717068160634264231603436722155228365494636713942742062502535944725622461029382968500728953537303488637224612157413091566570857594647049879672903925200475114173807111044287116336729210615037879570583255633525370823693571509989844860433579963268377531456447763626579652598228390139589370538624971918194548676842518036013629582676984056652831076797969699671561360149773366583790246906707819332685188350203609081685983408706414545260575000307995607345730335835530366477620548525079277515939076946698678260266382056333951750440069120689161600234527444848853361352900643352090632474306199191565454270586232062542939173366620067377576184950075295648780664483397224544544153245968297763033540753744322104456420329382232203294432190953080201730330586868463926113996947648596929265509523441701725354449882151100670599898846613048554143302231691542786658617713443964074714770526304553958694669872203558571392487144418011364984157620019212306888155826098227715080419582184713972780740603236337753075550744080764705877814231928551295695813948033954550537485509884400122463985970324310685240200871657597132132622361407630661798473282818512525887233986525103131021079862684153610317080346530738749809699438751281941803252316222125540174365171972481510522494059270929188712267984036812573701756985723520433334556834913218885116882104693118564667388280112036398406782316067830662138622844152481142988093949076617540494385305519772714336155469822056901945442798522596886036636859382195929400830068443676470533243655345408514688871504151735097876045867727507292144661260157135871534665627252311753196993223592425865517288751201289369048230495071638689679261640515028552071464735497174378336525622603464436317904471343630502929644824537164102979983717763151620679872773856393950643642958771424883844355812036591327683905912232252241119380630334355493543509257013387603389130810349558465439903957268584847251519245542693594023373276479524532638274577760997891846558303554496843810421577455037315160984999403532526394814855573109959797437833338345428702876186014592584870875205483587617769146448232516333570335237091540224519376232264039668427836721281034349462344559798930357799362811200703502201770360665233818816644530065713903260666883843819163719813955632555266274785197114062634731292556202109647431219949737997223564027887713021641581417740544781396562018965376621056881575913008239887530623254066783382623946131825285302902336168740387039754420166163704838826916751395574183883200840912157953006198986333929913989151907682667666580316826739830128790445475626017736675294555457016461210165213678375386548498500808112741016669273202385036959311979816072870571167819520269364658021386184106331547656604560505203765483356778342937504382078799486284005827864435106829832170519596929074340853781850532938431081954115455024751511409678910286646892913078989933361336575732121334667236011208131049923192158115163004575295826140782823191732131340562822434897434065928305721086467168414641148174946441857624870351210315376438243950039347667552202886377838873054464159272777777555684656484619592963028278144078978012615437863826390129570055078483695430844318085388427912479341467629851076505422117932750385012358922071363510236099018825864418017808357703830496795185924814307415991812983216991456332163812207882324411071976571110949306765815057690230367001406005190778594189679642498053455499040692656790040200846215968001846014496493502533192475124754019186985194597856386565266184005480083351051306797156471749250292679618836175830405308981220371440258592523159885240382417031934970243111506244202179820911311131531519497256439103569193157874353651888508533995890316310974824001370145279719899310645360500149581222368696410796410606969343676589005515268382138629440077811889291437260536234888220366937547050272593039922470325699653379510179036097296356220336732727063226243501930288380228532331066706038393326710387546527560479005663201729259990369164887124447755119758006745580893793879083492538729578737729728782294260834858918256946814366597630901662324894416559087435392687888534445356400956110727417160705641902628211577583915782539837892851595791978146183728409066140797413578891957254172881905233163096628462989187891314213870597285560014215546467153942861449654381982570468975925268394055377237411383576777810781335967021431611967447881527609048363483887620321843529098550920875963893950045920216978452020252869306656767586834448416532683855692160568657736578114762513428573906166681367189568583075927556979780747521399694810993385408585951009412759944163307337773524456898711623051202654458487664837512838259838822868514545657783220759597761984142383668710197836850337590343580850471602960688113100264304799964402349281411038121377250454914677721991862691538916069504874611258874374206793479863887996777315484815584998819028772109467805981524137027947142490545173485062105009429642419281674754749097601766272272988158336506230394939848777946500380701546972962958651737001430102727611580252007121156665386598967071993164489253879003919413008640541567651246221866476533743343838983556572063819180942807144927153882726259047642755110107379110955175501000700497704534113663982393616436964457084849547355742500816516838436306502549099793680993276833880517454828409213310464145939979324441884030126065371257648294337623365781499028904782509523030119854573778948407723177734588888662409834497539450441071132749142353629585906674514309565101469790403144544244955607888408265438632758079168510391906985229196146651952605942733990722769972819722645161997803374967307780569167362011262496604396504754243004754544633529062157022301718698489814446677360369505626291475347475478961247401395981745462428168003758300552294191799791767761888945978127590560828307559077475731386484612048024833082823302441944920488934674161612225569989931998709024350470462563826378268857039945012365058855256133611125458736798950959082983604551279957686070080785193919674813982517156868691024875915849241238700272885356201733531348620293563159709214803636080762481961629980008357591014402164911788954700259149477679114817945593834812842162395290775805763565306598814968890085497151457886517424599234717472708717279046617513411746206138817147315058764828114417124134476913197389989509918440565832846148449843356505164785102835380953180151031465635672327250353081493654896100773053114686276416892869641936241601250408272527803060096815562826927989653104016665108672870277061630526847643020505835192659242450914119513838746830509783856668536130610340911824654546581800041461676177201938960211996077004181615588539906845460466097164183967549482304176367779020932800605947289335418611902970598767604379408885711321375018865469983388115517311654551713571355412616724010935269924449247162247062544279806224847303749880702702767114370946684951854729736004671626579458084097895246626452435331278837021691425765249847317528156471926527404984988310619364860499585199138863802941195601156711304932492074502289266938889824239271769386502863701342240502659934006525615265552657646879000793689245077401611056557758909923989111768504094250602427878381899182079385359790832489910831854348099713345580430814938746282772697521414351893292804210502658118282614587301107559399747779309724854630325691887759769428778815929733781709442630480011382621190651004141420799925882664195304926703897346802986824650453229480312485699134990926478011535797424975821437471924544745220481973680146987495183335386421082870524344655665051832380548826630211061865424706158192485713225634752410082678404148921972471805789797445852699156313589088937609428676961464765048003490291643864550636622042265228403380826908385934978930831590135615696073393912453643285508458246542987916411801132409632256785193903782587063424652850338092673833308444993710470383475668614987529227637503112500819711373540003164393974210811691604400674260786164632803078911717451109660105061921939786144985068789971617959824063982925727941822817711679426135157658279606580808547968772817298699557441135975708152706803787993639420735065600738717740552233404325455902375596710060521025447477466516810376143330668799622049734215146207910802737487164154834214771378640215073764793528268643584326640511960107522035697185487170276651028632260723485110137810978361070177282255762336138580959103339533327670930968136393923732420889103139929865088764333986374340009223587035823904783465011763710316687419275719162338317898591144757127661285998440203958086600802042493577504103555741578651131940319938971630432211193839413039078113087765828116651303213787151376207009119038563208786262888046932991912256353301201951394624866806041523492060784747387098171827932134078917849209082428409719131497828526697873883192524094677209201780042958709351675004493041119816108593579099809649066231078506401368337335448231788598501528904961890778446107249496241389175511311782480932632655745050323479177478821632148203100151741819522177058692766657172044175506714282485528025668165916191663995498667400798734626306764266610236923804224370641725369991287914679207033763302599866179142928781273812586158752168016328913473440482774781585936506427933893633145464286829188393453568888617445328989781466214624626952381167797450780377805705725234679378253024521247621207250596614612576003801902833672517107092845776691942855245798751289072270434931361463989900776617118883739088664992044646347251515425236577981769700600949191319855912549494253426570204538224010563381390031509308132450190563535493585428785988053371862249260719383989859691010763963638075222456866026964469191956185757778334513041662860897834169909789011835169605050053450405791256938061125800948828613046268671953395232750705177561420173714184864298013498846594133073606188471612511118757650561226588032373878853343285925085068392497989719771224589096216258351643885153156642533975060443061431644799899150278756762970459890056194633249372099900762664563554189237684036683669595970562117510833480219052278864853035607849789837138104956286094077632366543739149403063756018863132826231343528090393570033931158383995991596503671328215098706149502416075212828167485221990511131573896337884150041916047251928509495054194195918690903929417767587673339707619735588403010409392988254716835855904746669457315208717320281165280527237723114100440457462501456324046444707505357788713798418980404625469915449807390755858645997015868500239057951706844490610364072388962362208849531543657984149884065863554335504173394961319974739425084092704078853395012860060921085232343165540263301549830473063931152047551142772702957257674417915039964702705884635615279882269316027995776010095004590662365787564872818516738730557184179390174264002424517452909448602955637919616182257083475437714081152370891652700051978760677507090818608657917722551147358491193050849230900856774763530243789192160825233595470424754368121935950857916955788421330966223933402023772322173028095985648429822563064476953637364182920831672433471338582872377722369820549010112372732745217434158127089619883438872014705117706673030228125734808924363429085850275189757286429691796343665093053862171843086780231872230023955097813887747764613873932518669668192642437336578239209164239084502709561520488412887603908811990855264682252511986161137126535867221357129762428891752529095925502594968400675842319613901896903252348329876599108016861611761680176074163743540809016966327135104996995101701826147330928652212350184059088880981352941426885219698892872126676939436260440431089607284594064964493525923260418096766026993273223207926510373411448876810131689361557063021852108290221733936596776073962698263709935716520152656362972327703591027718014850620450088070569674177989101283918508797394749610357477898241529850114427929392547656467287838851814187878428675655574532764551921198012321803610316743517952880056469668007502943205470118203053399419853997311181328099662325212527567255096783381922020973362519787857622833179714354628218838034007621794147339296872155747511573113310337953549612078168838130018779888005954866236221410498215761009194203118313075809255548455680655165925002867802916653169926066509915742359781581246966964096636476232475480752721200213919198120938466337072623895734827489776047543686047156240790757562193363580869297907784243167561290457856395641721766600437419766313637605151278532300627590102898017377802911786200951036914569633115687940132570628133702090352304617536111321533598498118874646840077843932234407679713925657790339237764478265162811586224769940388198350611266330027661828737850873050791989105368000594870458518412619388494200222987426268062547422991028425992941075807795924242378616772167536971472892863513195041996728791379437048509726762485273927234429569713903338218441097845322965731054793274108693964802094103984941388559397996456390710578961980053322674746678826060835930251221137418788199429630707454929045809664810730936165295508582821629327991710302805910544735517807647357850237196045555057957864401350858224887605831712182950205840224873476703339759008782931948998308153481717155068523057625791537556533442498102232094486203576177826712714564516445487353607980848200523110243889288492135762894308161292667060152146257848578073161917983725406059232914205747208827749877392354577805411316662792447647589777072786919459245537484206348210208314739252113604587566927004149430468187401082909177105778486005026198277466771398307310476861045756960232990827057559833177456193755499621565453833641398078098825289053451586952513811511168730216114155057406664118173867330560079598997148825003357785224099917712331607927081133060984847568330605559206036342629692586625416344612933263322229132114801198812929975241409565989263371417326137292246963036268148175116113603299727353251526618578233450785086725231111356847440772355761779777443760138907028574089128431774259964265744931773766988911930925727985054032155825605381000268157343515592393795327899786660837185454559144388724310216341294480081545471105775572390405635502188184530836811997326689477905312708966792841733079281455233431672383497932530946892846461604495014755432582788764536780435378961936023849489051137929857579557755309316294638875047718673218689179885866248762085165478992789701308793252480444744491396041762334424135428337392796396175674568209180354499123828890202567325014338751017089859297546266577387848590998045892581877604295078715950940415073813361053113687415433324436390030186893622865720312310918849823646010700762165108340247385841447297953213303126058134799968941644513891805805586299777890411707948042032057742644287314169049191575685753727092392310691434530520283438959621639171766372045920421828630773473107112162340389516910699951748620758333221669142045527322823001352414447541808027767187326217682289793378801473350819767584759198579655809532487466805931907869348127267049228619661642537924281039924034014288831350385017400404734035969486035209542323493662258535732637049085436024567113644465149217772346027978696783424485362245923519171523407480479054104420687132192713065199634252337111843747141736340841927928354399018877073633766950938268499124454912428046901075937095502637915291123672297938109727574617113955839125447851028355223980468614970317081320889122315580685714960350636056568629024259053190363964496746215741002486373524486925899300502337148327136386972640365723172263161803287685630589280737490213124703573405336656799597122222194028694747187160332730646730878717893079681906764763157228963795441287852102127302676259276866645624730879074235844534248329420453250073136623157641074827878752096491653177745720094309621927154492897228533418158554903281140643850440100169856748012367640862566823541137865388072634133629638042756596609795205443986792976608286027661459700693963846853145924272983094813300516696674811441713924602543539461734262861832430541197309819772141811047830154276969489782862948812221190969097864051844127874856358183530409078015470365376498808716054073931247451574843226907688458702457741204245591671792574377623907433062172286327475141134078948288933765712694963007585271655324792840685264292818901273174383987004651751082156060080947329304335004785710307798826834564652851696824159983372243126099708914214931144207960583324084749015241706005547374756627213442179484781441863472120212131738516481980589919662487007248657378835397094005691527654750863073451125527496575267878245954587883836712317491658518091391389668050274989149510489051553193908783557055984477774478718674551806155956028374300598114673038519376768733924927127896119691913920800448720410677509333160425819827560109001512508025502359747048943053479755761863035351528533407482460167847665057301509383207473369165328772959813812948750885158578670949791099718429578483032774700530419225266952050337999700211791612951806293026733101877935722820298610655211679905989244159246123767900064744062306090735242634868586716826788027476013815337633626630858690272245401612068288787996744711255710315062574338841934777363895100760546542113857518952314239047659055210688216045010855076296777732849408636643628277135006880567366679370930477500221336375715383079611736069530385327907962070344216527711243138441360708544023696620917922102316976499276161788395606471271237494588268145502379080011057360736789173910863989213524315763236696016324370028563120879769201378937026131048765095030834056473260354170668228603909217762746448414192003231347067472352283466704175729500305448835435614133365247055923420950171897281719908526858053610874040752608385068781408566403447284855204145127371264871663246371596700130689272429720713914453972064332759461876661988273362433361443283387626124589297950619324342763771177815585709297833276853660117954054882684588557014769484990700445568551962907777121934064463911587393720313004325149455163686420983342329955182150503515990780699118625660873715213731105544240489433285631111022881205057060007043540285934960974628007169827016171639231106691314477488554130687784588396781906528203688638940251217819480553018337794068159548444195620634901363926055036946614755344179964321191675867029720200470271664873543955364682519717978077226951297012865224269558286705925326575467068974358672941470896959144449524050177614185922005123939984217087992018430663559978688067256311961841419924299597292889088074389701638678105110814070309982206250842263278836049318908667682170807276910052453890818760425133123590495680023727136029212692370822377346111248698965393720014096264307449640525059376353468972842785398375646924388408204325689733286275493901079547242761864334850507006676713880926617383687380995770503985125557938389950719273470586079960771641991994989333720361202796718386352224709113116966164279089841543129316252192675821237608740159125288544244952640310879732599490325343156699909908958622155787592672810114757044963850574248932776186085736513248326189165607258016817656523537259966768153998625794138967330685643903961511938013744155905595905898276110679760851403298381552356827999749256199314785488693709563973010671319645964728438869210249622496987359407858276578574267171663604948809737196970957707696291455368282552808748331151567332964003248394017758680818017405995347291623167934124430612196582598959729379820293520146022984746118324714287735441595922801477296527508595319359703134285059489129087048503130024255419372556491418886720600490590870759530188934060103372451578238020979049834192445102007411789751692101472977424676336241764126232873590163258733399699326018071734995645452595093431925247067659361943263947513948222784122734521062636675070267438171575300240976793239757523991549575349575157172338293578163052773213828688964460028222187574451783813716815307679393963902963075197427927667219521519718917967199218886600164229247339647560003178400356915809208112018020595084239219434440060714174475738639026405903273302027185286565494823812138797351061043300390512010137658207775892325421632513071971013338030329802215289094153215417866695603357668520193484177021315159520114490350913493619403540298194897259683445819962757879532546841197944897555229308746700459597988049894272593182300932074997998425094679047439483204611557608029804763941036207107655581398340845475723448666537256741273373635925890157224943157356175388523063957179004795455807185200263013216886774806727665752817948905370079248022084269532522454792213803501337097251392272336489190722815011066227438944423416057893058625092140343094730653121114514844823821432447728644568124857540177341581230834879163283547313706047909643549678421434402303030719272340181747652929485534283187578000063097568627959966262191355430624828032416136233388252213674955031090144787553564188810750913024990872398180298969005019855352901896504247353722035573140834480320144566006736497285753075917688147959932135145840423780730717116731194303115145428098115586163841408159946566959734619161215251486719606785273139378549884884136622991304428509529649776810911929544003097049193348352863653384032086284947601985362558491581740815533935246611336899456439544661707668940600074560484750853992988399912910060010103476631217259181176736761925027007540512091566514305067514776556196923043130647772217417137003288892691759641672018859016647868193175312777105926438206400713944671466400863158634614005493813863409826241003143381426149770447847157846690370751387691380366523575779718377724264957832073808794515695085415181771511287119947587015569670723932787857323098723126669675101101646606817413271030771044353585233995533472582990161181636039656634289376772589653448857876268762259970829489523729441155682676867032820455237582231428389630151220259880107622006723475153261683798613510166386642455701938390916355976036257396316540298855754431943650839759985531392920444056722509438984851242486091633269431705225953962124901598154010641757032154560830199586778033261188739691703808697976050637851111082577536946266544659495677845276768269711689034198417800871013273134175875752324087773498868066927271819032662288967120844204938837397931404096526309350712904789619776816043509040811628364243630686665723124498346788701548761970885445613844274040478775122363367615611393188727540220437605894504527735627116699302167907830234532979046512728111751186704628438490264755655442400416418969531844825652266977978817752193824726036468144804157880192373671109765097836714680685397392038278845535451373508876157843945556663377959713021679144576640264679145670167008882132620808933940597135202488134185677045289516626279717294280522002685036578740790816965195087630383446371583819692967641065353101721745113260227072020925709999498710695401952649738593770402576376552587351624093797943846119941132482678689746316020865736653914244452014143693793425285779616536261901485037583598559746135820423402696179672681382419717884782560818079766307820024759336762277431624394256887354027164303748768301022278849397639756758371929086086425511117167563240526277232566633799884685523832368069530858339168867695128453888201385432938827599608228185972624728394213015670908824182431446242126590023461852569343819980474015584153127857751164354314692576721221048716498382592835378722684888490263604737592231540147164465450149349819507843345397192208373758636154205554678873364241589868478859016422196753555740903932358062805590660356825341249621156549105493866615373048590235359595149391956974433680951741753796567146487839352457854917876828221935244285043128722071783885673566516411347656684209495168700641121753409800431736075968588565201869500998649209766120791108127262064010895701917840549924604579247303061992063599606746574523574067351976719111093921733451576655668807734635097850030278575294388414897428525000093046633845351427135410300977255120532692291892220522873872880987405856561812024422907577416748859768237181360002726762774614469984565799406527046790630317020275066154062806341035510052642026096650449117265694902180864074641949874969896602954370189915470176625668254906853468797134799472217839236996276099138235552098354511300101097114353308578897747199805519999643670978322697263098836874898337846859547727599889602176916835021462313679559849013130569851734666759942653517384282004062959234281836570937083712706010637968662476415180630723038530057472005947779691160915891448926321699994105590663346010282939207748702723211230363424776075023890898860830941967223146462915088423566032805078671215276318749614804103657740094055427279450146067390714994489243409367724161331964337377705435772247224656269167434266634393434856395895933794365509699991730990272688201599426475672482629726535635174131737069457972004544972970131344134223086213856722661387113230996639824850506592757584292681418724310956747199517610150707392757522713089033435329101484588747594789305796860577751907768652604335194497417380007297092361994896454078760589406169529111953191609383677754491398964644093938924135406348392444283990332275042321257165534561592209197219744512352154108177471501202700586786774661005216143319900150906523769255391924155202879863815289514636371566532323164969182175411079230521557883046171193320749984964878985382299878910982113385140358099373604013556039070781030408710133050354586012465176029540743905856562699771130951682421917132691674790203266096696884128516881324680272336558102490892292945666430171185743782927917917232595926755047556085639786669725585189061742566364275656091541978026447411453268608610426980719783090327937573228341551248115492053837961215778543069004373489159701457295574101647604429801451390178010841171347415406066336936366316580089923874403186445261346467735456132055980345848198913906301238722844296103737255598051543966609536784634706125380554864933372710348281203968746403926915722429565534053801663027353967417154151580713654570525651063741308151395162409954937073992339378019622314091219312363277590955331061465840789932764692400025343164905575816880882772807160088229779698198603160691502694544846436375567463803471027030700971851549398148560661132199276377594246393832746701345617748838984703274848714220973457232549400692217473681403994519849628548850517443166096338538876156292718782552968453782754153154940353694237171113698868078574807158246122398042509407920049590469783905051702853176748963772734265534632173385541375261881632540049670286558900284844881827131305142741561991060735436108559672135139576771463269092291749697675062015269273680055525167698592426807662855991933170874564656630802282858450059421952392801029484928994400639697938995763946280596155775214321241954184235369796684485606526193451734903669187287740783360200174196861600735664205078601105080867275451855482817329898152557491650271742558408126267981171231800483502152380389155025529175498050671413426511022442103639013001497409680782693685452787133746085207755695674690040456943863978186113376135791860468491665281763423157375079281295412348557410013420509097122635051140129978525720982013576733000104850773641675081303148690725746136353770449338686366583219970150815508229953135043079309327444330958083917554273687562958959066902128984893455395729061119015205003209036547170734707101937139491793214976500778043621960217003382997917367322515220326689365869087400246583885295782491307414436515473955056538297434569215104605370923991102805456412998174704037794162132783185266965266046703640004092136107349176588315367143291897980647740150197307501910907089500066431533018732317196493048731835029786052057770284495427765485261640029747065433007278557033765737601657911486513821091708300839447262684788745833215318632387611427656889008356961876536559985877696410712150697021436450791270378357402698720912706199411472166732191765360260481613999266025624640434100048278440478612210135770458854733871004131343356735768516655693202283436977277532934300012462442497365033758939272667471432376457049805477450170457734939794157625238460974353378485546763602639750012110558819432755265450340431569099303137400589149480798195151640350215093782791349270408370475578491884187064405974836674353266060377944858888477312933705610746701789943068261771374607889583837100346328323550034872106797802640672838415592681597668409678049865362223179373472452814408853813658778522153581400085901928825771445650490226133358739968783250175488253800423976415664797737420262141602218437313845587196344723872762337014307179040698720937373224546979373058308806574420227287950571675879817163973422786790869458083954880988089454430367717406517826551095427834143212185299605989664265044680341666331472969236747787323446298534819766426942036762460369041816135698366807292239295933940424669419139270031453975038719215438583793854692892139104613072432590616909011091723835557394139638014381542457860537627446105915945315889351029833421383300667592613419310094296958100387879706165599534879280668560670811535903250820539975398781112508342363809042733904740034325624819220462903581304947458953542754422221257683511757487831691941041413083584925586306657965644032593910764129926906517773250618264305497419248116793721687958496152386612609481716974968830477861030970857640073976552869515464305856158073366728693261048783689634282031140389001276077821514772352186347109248133223545495532717417588785352145920210171032383536588817169576868823194456588057965632701254252855281786303406659789990502534885826906558299820011242841474677116065869614871962910522671398971077672112731743518297594972817903756327697262781918316956961274769290187546998388603268841716255327626177553974571691208394885596374998975091272253228827514450816859049458815912067387597608427420842381773856319790934845048288782892637355008282947628759456433084865565322700255834441388797736151213757657212851579152459638066340627274455234460064641431430783886443230735825942127330754745366227303453934239187924376130110519769243624190394210722034927275320406609558420006610659689151118404973455946213642503384868699094970516793777540338775631744902131088617342361696548691341201690655995980437424343681033270413741887111051833276856383426540022277419894004833998866864350809587487773229771466352153253820276409903267051230601902396144931748163538393113489650338553341775359323842410889181590619912464208529168137620807101732579780253510520922259413834857002180966590321723102970333971350860962524943305708588413828319918720562237501231679228048928788645830343644550612596224408748790489253765539437011533125168368723407721725703142736617462743048882041684086476783863885208383384654919360940248451805608007870662067130488771452785757929757280752009456594426691009905421155711087892620906233594650312119633520567512021216079278786894318057675004069642544806735045742058083839927795592351574994117724124051997685897553775533597934413608424554664493872594146035221611673266762452157786488842046713571494327655763957619799971581808099875243590573556274934930338252751437389161294874572607336330138901179172808595035962485805066475483556725476504100631948223973681309549822252661647580211951062653793417004502381123756983756857881612420984529998586927132469192465925807586627304152865800402310423409297092360165477012682006710119279585805123082551566532942938545364287139894006394527522260356455776572062665550874497622669076855614595659166372283060108567465177446046463515222528686932336249287256665250618976249004688429498310222298591131782539447281654533794417237667221731832552546939137139007295860211746607326774700027266750427858641405946667871207458675276781933015246535692342595755609484105633347464716253161134124677466986451695530956311951405783183410432095796188028336503085690803489999402614178672597206613716449282062808329006179666585634661522611753945373944624571452395967892726762996266240142241050150600616647283537790481651941348131229161476554683238905641084938314765250880285614673835701049949345290854178305157617730231709696646542623620166114512076085979453660957726096277022658575230854453725566292357046136921859253312247505381705010113066625952654067750358657355753146080631969907194539025890120620106809278291067480141998217399505119195521489192816490674338196703193267056374307685631668342110049157270427435834571150409178491672172287729790196949584004500520965730432830425748691940646804620423625305288472836940509062944978412069867847074073859489405289009372574222072971865922124030112973109575607534724792871156025611046534687175373610751229102328554768718332953142682624509462169949728091283719953659854852608352341067969602367656748071815697081676091030904192947670577721821556287562656098294944396792482653676063467895748105479205065919756025541722842904313256705730160929605860929339628154343728586086619911735039152334122378297333549082257898490362909038056158690554563716603488969773461058089919384963033377292421024257799901088927120488375901136464760803520169255144587068286411856054180405852403059265328180608092843999772062404749878109830981453258194975123854771751765024017222064888562870695152050382013187283809024821051330614670560060333156101603332023798435290747527619900020064017500395955121007061539806690666918221670412220677320078732587247794848711934882356702707444271232501260948540442639594435170130362851506696321084996140361101614833617413217503016520326710743353997814906384626632844697861984730591040795522710377288986631541702245674964302248699591440057531672857605001676696066522853921065902417808985143423864184297814286934556102071680403554479606135813154589945830243264467400207402729204680608664561873656279946212305016856668754582474956736924060113284871863211655414476528639660658771439158215257031225037921705016964313670401854200620692800024288745488423196556846759814813914621260854945771859684009421725314370024696015336949486798645431054683810326990131669374282041348350418184757590075065921175670801826943510583658233052286665843885333218786420658778666867645008680634332498283796693553661866719563380071022892080943161972128362116927031790424620318017405202930580898273598137724882313490265599896053458216991981471616249327971366385656000157055670912766070596255530599011263376128075185479736664771911324226227365247517971866965759520785891153192902033777635955435954241628246662662425364745424527406323376270618018450739117027542132600238102494562932362903324964357784620142930221462572466736868945120579510650475269603885298300061371860055658430343698683800764376794236038185759848254492168887469195126296907683643513643189842603264632054824840594419947622694475337222143659768706088464150353814079935033294102009489683745888816204552959714884267393487139470603961492826177733164326343671964669378038522556987714594697639563038997206718186922260386956288911641627126196032355350539790817251769429885389163811235637587792373986239298977386862458907707358081899889141380888323094034263000792182532807236990242684303324689039904255617887707253844242333066253731527640378976361673401466942873014940640031084322497368181615870939122511596512901552501197563029350870508456912321052582003253886411471308829648675009023860739068241399352370180673911789714946298251549596344125365315610104031513345443723380179286393641287210568060473087394481245823401645308115214706615704185967742811427667029849128060365089815025976375051012200640566813136551893255898379452204341985210801561462763791890361270442915269301831937707729813034876397898663104089595716991823581734238735592488912454500812763512070096526098252690097055251366124574171565342475468772486921336842529957408615461831022482391131586070957405353174048728967975742808716473405131240541195473621906263390927405249619329483412632469746377843852966598929372312846767616001340343300985328914437610936163504260582839258901592506822980897500013136305568399712411062782715461546836846430844671235534646460307031357756829481984228516783754264122074670270069250502142678982953458636628818676628477106393614497371696566894079329550028588771614990734166316239011343083587760345023886749456816678474810439652038118936943413098407962981478330092682482200741983178156428661688338523162964635437939287743768321900378776127761838500644118060739533734764081075140892975024847080930885716947352986238253392053580050846794786764053142677930117089496373296783171298979165726750909288231418275164756986694061341409463892486044888552613181402020272561406682180172856804775420151568439637350949727241864486238101412396058994733959320489749529338701179673873121649229991376242390242726861978915725329776608501270883601064133571326449628606051609726104546450717128643830137255922030093882268780213238101944209871340923624006853031039666699479443023881714423042671553654438857077014125388355734317187226682021253757628733159639905024605964038186635778328335609041722836114858867093860253356899116959747110140778751878165110661082072478533065229035742964847288216278325425244227134289823070426075693065448159002378448278565620276201018072620137492163634182546595918090915209271140918457598777153672814470493312081089822259372044122313683961900703176529693746430081331084723241734563654698651810751298690098462778454218316934915139485798714397247377074249890698485679232403923048986075672481214406996643439057718930492220189061639023109239132458036888270470354299258508263383107444608416867501745122559304596037420150631825729538051807905080591971615231530418864254585752593372500554195331148715222501154518491595755651859026531124207871892896846547295424226624000354151856181881545761514936507350914842883532465926662275138280443104898075303248117880934711526417127685884928335943755378838171185290381182504563132812815311135179105905769776461792486199174272495812936844405221439680337479689942630508664482557223414120317198795223824841660841769323614091870246430132264725660936998325194292253151323726909253582983531678119276651724417579143750837848692174174003128523223006158952206481469539268990204691637714063207570005059329901144183622047086771862697241909009741633407839201857068944438561726166135140304017295970441527267071706685108939992785958710498299897316018649341625680228975263378476494685967843875473636729144034807637000109412268555918185038933078816625118128295934021453085914383691017703060691076626720249699923400142216996465351200503100956566944725193817383417152143128178406483975451428510499170180709058240658480974525711313298127749852950519840294997347478280290347533676246755502353449744904934471161826509405484436293381920213295073111577105349384287653708658386469621464407955289226754260425602507278591565077764813077927736776306950898321084428163798753907983055264842837737509670665530328506233545464957571999185789230095810130800633979322825346274242200554545801957007859950643097599841724547297722636036875831558648416664337030085492899155163456254210542369129953643299423748484339268486223577850094088948480644249237579284879523280679564173312335831527915240542170179423227921015255607190596977736227996783308179662562886515983999618659350603280143546155355256776644848540717557780034249159910170579234295437144851825067260466562211992460409548559713548740101488552456016138979993529110049428000053912954130642946830809035325308661255754651098606036835491512365095003055207507243532547281462750295206444553802056662053638868975951136371677907950509339369647629814816430865187610127877854015823157310382541202931397206002069553170643007832248262212335918492166621064334710896123345256973885701138175740625242047817555246460339684982111120473577950302338836107084483626583500027182528470846349662387276804450197375056817584008040704122169395384528812349887267496049011483862837899522069666168701368006027700668107009292950701833031037271963369288860497069169644135428286993114029076620102031545299405874184128585607595175714794529882396718536779031599806385598700467065610838381407746180122040561325384614881541303478831246220245148025613908233254334334785231780732283244175717080224575241708045007486610788217893575902163081792831674057384239229589603329069686756761108136932442353989026238523077453340485799516545434094081098973198414867653598529871339714417601339543170498589811063233241630490987421200267585260422848204504187549025848819008390979665175169969419247503364738604712392974681752739512354404899507946529977991792548400718531214588366656334071921829734405687473489155591910503482162456095066666189871013460459417839327738703621940289585469074874106203327633870268689916534875985498779450796928474792989203642132119098544084184102915883400182279657120470107801318320352515807226112936138352167494175629417941490373151881996527823720537102166948907077484824117619224693299536904354322028650378296318262978219685043886070914079190730858547898911769065219695725615290185815156929546473880891070308974942835179000714376786396881484359675927804029161891928327557167631760981732658719641237849135268448388517540885166475426695230829124753517105618346150928472405840500346821824861716022272035912465040474232359448891072618447871473125361387581922163899971356033751187167596890565093765283911345849350582540325500451319300278757983801473452395731805743595471106750107347608837264251106459585517055392282957735014868266251678936273363481676093537657993383974332043087448504832281217743136139921417203693754259884029498125751366994504982746099748495433222111194396561533674352941464985937893239646705295571102848463738549689279364923906982113051431489870963897811360639641716945347365951002149695054143111060332035651282113531005727823670409611918692595997300556749387300712225004106984215959381414957323925719047377563636589983959413497824361843762965769055583863546060731279475398229607954885696843239067189825534864968947798750599835167968442159306518420095467947773384067161469654752145853673334513486061763772126191930088461225312682101683064814632692305339657645103550934396598428369017174569853995131944248788470890930029129339056891778664621773510814125350819061675294602882413573019584046999862178157251805923981675652011025075426801288561944522744836727837109217355068343762380268434549583768362069344763553766816886371442870990247325369492423067184999296802059789286974271036136294208774528483005002982418939455934606393870962442226297226834236833062155088356443449533539915682816038685170384161624769811531569849850269862905589057047528358248073108569371181697203025302749164897080900702394197779351047095618935125410945017400544318637419479053369356949244313884068244815631389881966367093054238654533620512765071802847882757084264442927100997288877286248511145529584936804030689147254676888401343448189854078227293533092497926143931649190117589149294366050372635063916900974708547341467808016124934610625520222096469746183073499904706029325742844768316735231410778163953171762992252829417173805150038841412742452919918198194492562520230388691720599979379948534347545730709456204116344557059633550055015253090266867182770745999292096597298687778855313240647782222326184541099012807615158429216036150921611712230002210480857491468876180329844957631543077085073535930775256410411187279089063081148455796493215532821353960081802905171460088401365881118390345189700404731989747391379284452076397661975290233950354638952561541814960815870314890131470096681983057771549449584856653673878343927466272241523827965629315888796222750661096963377879005786585523185226932285109500712810587539987303653287665094385170712240207944653068704999600234715070857421498486842610985796717557035507233043357590714744410269106301079623718476176027044504766177191214365152069871478764464540405580264589702158956542633422551754033579453435641025087276033765391923570961050458905277791350229033590095017947851444744759328206698011161769221943423858810610966035370861671525575848710895727747066740168703832759609917443949507210304721787479384836931465224201462427165852523489726369622202855710569462269691976989246902880434017054826617344990837927357864326505118939129339356435727245209586377763692351109688975313613774398634642455950561820438547134749504448256270149367400434732022231812466085677258810166547696093448317723846896610315970229964839342536037322342329751180212804493158349905079530101885371186079836252448324631610195364809676430748107866872783374377869658140485310568808780691402254999778327656701092801075410468472928494524238976389246446346232167989704869862459024947202856883165077127473783237366556474599601529094309349885034513428156374812990205418228428175749441374908105276125541254185065019121867552631896926062946616855294565442324841954337939791060074451637223973277311220988068408214026652175366761241211168910502774287959310913244762526225461730817564990023324295719687344554260967989815678632210511287235724928827103756278193239450714284948847569300017915263554592145560022833080673033856961424666922533906278249545055296849041688378704304994748304453764702054872351439680420356159538663100571779257535354521040456243446517647469046564860937766008865524176169017043863124327418892712118027615649875564437691597879824213700562236484507351536464294277331041042555085792679022857405514042429776472227831401656026506302604045489307660172612744164414608819880737123887035800761172401866621218218837796920807605166827957614708054582523934632906606535781697364491291059592626640284069489149335129726694448588627845515366019090957896381627536008711798767480400692801732106637836026109264038279858974897078233691905040245550262753216310903874014079114305542695214212460470813829040527320934087400893997413462482500277922075049114709164984485699270726298877826900935723492709374196272957977553095800999589683738141767176247981945950175398659860757052246206280381682217139895506946936515663561377994199151312357268126036611323892250212374524890908980891600673792668305165446239638909982611289329124538863618403691085237752329569869167593960965104906902120301337510662618380115135238959730440937904904644149873730754164774268219683943309204196277666105175797769963768011053475156923602812115814090876171673961983155738067165034265080282002332630748897762278974517080388840383213159195822919206552096527033172765690597375607867922456751993472404931676165749736338796804265381158042804690889560744602602862992630225975492841019067515877927895864757971936218272129281476998614973861957110509974314096364806643033361375242739363977516396553159484390667928536962374196632520151087729420333269826813450527404978794518965285935573615101812711025824271863551165610146251127392515133026719025823581050691781848651197359791402729274009768346528045952759453648888631783303025023655757604664534631550012485644806576479703739547960034359388933242518093894724995645109629016908290135066810657478899469798261322288654708215888833595867568230341613861545858758577559221217299600766056534484820259702637850229401387497098540816659228097104618934450664148732437484018308307807733047874727943884715595873017062482831657238238236362356088545243717695143247565887784783559179144377969113158636941646986510895462754767788413937401255083670152810314666446800974367660562088388224335848705894111963845408708308183522578800275206104235718626146107761617451757890462261609761906693996356411439806508932612390414585781680639926904983804153967337791161021356906179115435669062132476344064100088782920313689749918550802199052203402732769705990875820782376208132385360840890445873396747857433268119002649387310481644285313129184013197245981520156437099834209946567689266310438067070381836591384901717865090699345530170362676004996253860866657721342923914536862764160147150939638996129929685181612710097111570718620509595804926237490106464058866647971639796588715683080824263761674462800916796155700187542689729635967186461077721336384646651581554529361908644445978834611495824571513919108553836079392466768750569382101008311578665057215596216366003586962081486282333428321512081864497437555422244572820435470494772350581500242342014647121608437663701329846157406853748127582688463335134706469658321576254073125770726372889739690299793930088348575261587364078295891311341909497178111554115834108618586420555418360427998599005486004206242831502928415152964679693144181120328230998501283522356835989196493912659832810001991734587339798909655909513057979616264108320737599505837889397164639437650147746313717731186302202388448312598570390827694789327656229984843290821449116357351692134216882380415549926789838962531841982121984749843280708605780845221350748659769296758593923829950810261792912184897385126108556759768743306986779802434228616121023991474360897764502949052983696482268592588699083468215921322724260379343066174085966010270013071809169697945498775214488942275834673540691889480748219440749505922968351131585333334688679281004657773105151554156127824518542312987263756023313918792569953451446743560960314515843327201220992409665414534225499811190462291035339131174383945507545214797285343473583291776649002651495337886221557981574809532344586889238733561790163494212879383856428204113407054900875457434066369955237093621380689173684542536545568723688091747164787996868645387969946958377911886860674896258969109689657531495519680988073521737297980530049435592365173429837013577019714873313611630396706235339122251420741895647350933148631143251753135145116057143560543625600442744284022712944306594787425343688107774904213440904765178285588539393031512928462582958926270811159820037960792455010967966180126510904657933557128551161069197130215727795598040046802442861744670326300907039592407155191837572964179184816617374186709941129174660727642826209726210441574960987779967600916600891322905825375391344434465359766247000764600519448095181744325801883724129062049487881202282135098597472743503709854302352443332710313530529245664279972779929722835312990977786191679728055272048260142049823158564166364484550561662992626708825828675235703437702744589909526725027507289070296448951970130897679983031573716702070973120703885932101985467503755095803148091751668578046704227133056090028031892352078562043653369528674685764731116743458543041073446751589146693255176417316972480514069863796688798895802438100973677928478039359815187136699926947263988341723788061744561491064704622470571094786690891895434628438100693576616465019055843161441005858749689337939341781726331117637214268562424693848487910676154684582123172969652569252704571083926664063325977874539505329322713407396857273076284457465946540613213916511932374996603943668633308659513632228951198501137013037209639334229448157747367336603764945575253363572640797104464103547718562241328948246269092456575788543798678936648373536141048503651100148078999917329884623318098180894808462562139977888771696975125607655723280007869181056222086373364951419922836658511796968305278517876439863163642739112192983337943855591899895709483911854510993977498336839057767455436817942117889529414158743221494436305129922914627752043451398492042738202556746168525168738471656967331898587292334355857794649866650462739559138963577867699956576118135582361123496240385190662049614913888101351463223012642814357422589095865404467632545327066555393367967127349662078933418433954293339876940480257217434060351679835793073819113607021456749931552171584693411603586956525292311383216382192667893221725391826481433753252124317296957053867900782908003462550156848308417820138206327762698047067816665499533017373107688997236083604117567329491747587487096855156441633648621820984139838132584363816684329807184579653334111252910150888816297564006762987364933598392372208623399596341869134744319964786106150877355042870765441228101123141251153761451172443667080874473502700115414226635695347957035056145772332593033285738069740950857429449468187590575494248964277228737150379993476520796007951189748985668310768428490210956372818483201606434812008455434752467410965308487269197240162527105556816626053503619886193615236637407399012086666341479419102577333615798983104521127253472848231366919820200892557318311530235396751625905904109410906508684411929351636093935459089292398227679289353229909472503359184957762613607434987198473627452124303033513399466015476353745910896421047740948017153571942143053007425574410818952589958581418230258888596829647432138601778239236972604461117538745663859279637139624747004072896210574576378351946793841555109066834302414583716705400203572519354137353945066276727691373074350516796559900047432248202632203675508372056762624431111450521016576863250860983141743751031980123725093464739150848519529186715591892600463962093192327679936177908347424279099511282867820482698917674507630446110180318670725512670245826167971731018106637170985782101322568510885241497413820492079363891883958098997948893960328734506986989421154237086360645556334271362587731527801740093236341984435883736384733099692444475575178456330841330364251034119516683290220504988468977385229856498384159230917467637166059427165243734611799792790821273557940908059396541012407436080970643883189746633184563908570776435033662290679202316475127714263169349883741821989858642595763817699827576409446458804462907544159376256758066919220420765306644518556413214528664957468957792610604855099373952244267355909432928658343641469764862933424754833276386373966132073080855956184670073413323869373107313437009509245381397286141734316636368131321628577993695674310794723780002530605884309361125485947699328217568968257649537166998531260645977908294525315450615242507361417952114366752805113994495111544714997600409954001467929078220249959592568500241021894462675848395161936750781834091529256237888227250494361197967099195413532418686672246812632313425828917111199195968113875497014481028874623457137689094622083012884680915699026626567384465426301714135886578431193030674473090269602869254560137226227541630452797817297026218419526603296626020435260156675759165612198177027050661447793961616578738339572778987385840368206505086139848914387783390614991372607921036272950828170598295976884014636562136584503029735202747812569598423069086450081741136508717503434027764930463606686660355530143415621689387521714658781619141510501849583702792804059089963346541776528311354823674706128577971549443610069960375157495853341076531293604078618871083375640529854147775389724106436241319401952769479724505256135590232273147436721366575917154730571758560180044058262944472966526561724637182826530646395601934647996475916013886954426562782107225319136244112911163198800039120107430392853081851693291678306478384356268939146741686748178390004652739651082790870114436244017953030028518914543214945767210151702511258869193609168474094311572614075644698605458885788353018681089125658810347400634844393326836127471414283048013905200462753744433400580413484359658185815668431080283887894218315729748428901580709323629352102646410509506302148847602842135873433470042062116637462909985383976023656657691754775747560145264117600179466395047040065937986284683231366451393403370361001718483993524571597390774431896650180795618767966152733146518028466392820310418189778257451207649367229133294591800407342772102426549215617880746242689518448217296139832266371019464839716754699078266297407437361039851118315572191510619548915424197560657044379013963460845573653897887950622805169565710691719777081659393537620733236192074365184338649249940329406240607617480288414143688471840719690379516624486138682211853005316077301147008652243024049912566370203962624666845181579948683804467200209956155489599289851442660349333862674438657954321475755006690702694394564339531204167383524813528284069004774477611023045771967611703279581733148074183287260106231382586440800597358822759328370558293691268924663555316834611259181779335238714723106735277996397533575309187171790086730897674832884887749179909413651096812786341705258318336352831172849366128954377555008046145739142984326172687743170903151319950012223241670314717311780178668298520515714618855510911621547117117968541453148731349172796487831059187378399596248327216949491523901485290667536945609462851867560676196077130576039864264034520185670629294040324922865903449950933870586881036464346634224100474326650663324521851012698630250190025550587681657741185080790711119240285933206288915307811123540207565583472334589523351573861192362743211507426727197588552198261722651488370668331573505953613933597006631925967122256754575227080926984329795590757509122799482095364723305640421265677588887020376528216082378600189373917820527162626733921203096445349158292251092179382926879949381299528642858665905888653166437099382511933135773842216319697992777444984130566305414086420999893224195725868072079184419639288381762183614253113127280733370831192659116720731853758667410885271705339838531701115926927918240661979411912488474514064435827674037093111660070402041822252365098811847703796630364957356184824044598921655980758028941470170129513775162665224178280531299312080316411369889747281655159220243018193788764126740594958680447001952363449944278458963552235371680415722290191194670932700965981051714793676618545625699867782582851973818870388139021958551055908175226528175930807986736184769228741355132187875703064498389375405698949750343440679788280948975501922548444389803354290434636545942006484455505576774149409076693080981831986453124247203347707672451735300228689527660057682384360209834973359857784852338762909067162009928759621069712594828716354633677928462377424649330466283662165800495145412433540453293020584181365949854152089421925010175844434006886006808928438194789322450802175922564754131063048897992279202569533411190586641047735606318603736294479796820688922629658440731541086794465319065054506421971857037087132659322304363856301316094148777674287624573802587054792705063005371384879043940323385651067408236847582783631147003133812989747030265621405143790141703193904263376418207524855693081183460287033350125965361454213658169481271120054751675104372293217447023538943134108332288205410211973683657816646978504089683418566275469676360805946259846633179010340289553305880708511304331318263072909151600278720869645860401736534204316867874378540239935330171170893648328647979802430890984637991766520239712610234291333389559141761517919024427148937555697762660765223974694326914356409851832584779909230495227542527169385402612945916184289236625480078912858046062139066765619629612825830216429141203211613055355956960178892287857601885286535213650655443358934070987007293286134023217425602147041394853630684684153759437868105564940107939679909400114814256205189661058965028568796295185348846938639232380246520634443962937680949066586070981177194273790351063556367990705642613426149879723948694553503824806646428435518392927838512042102260810342086266021112022978668759328351456407000819993498012995877853973778342483759520088836040141896319586671997256437556207123365508546695237466860859522788776785746695264654727203044208494070612484530454472109799168214797847922648888248906226406562262234313781217092098083426917083643368118894701613492544462771135028780317572132463840539362403883570477635372180532305172812732171756389585629885466146981659804426424881757197992801608901630241129108639582240560129632374847867234130159751335621125528407271336093215062439479546653257333476829629222506893338987638328769771136461251347452444130906779734239820309816023291828468045557684562297924544672723910501437850517170334364795576739006556108664087883943852796146183871640793785808917149302569481839061572632780739581908569862499184045110073164623251694922665354820760786904791815155169264723039547934535927013244521221743301176822149560674405762230105307913637043416232971128827717515743627876902007752643893080797756377000789844842792899352809646928682073268473012373889150066937282217657216001838966961340830971246076350670908938570324240382822675633928707462129751508432425782810967008233605841444997425558744505303707301979184732185610280217099919313680646703757352669102269066668679619003148492854040215134071680431748301971233994557479385798283491134003496308170497472491620490241854348280054968981538001231849361764420815971778701606997168175872389972469151529808833908468117827746708501461012296981704645900078770551783956871992124976149148759589868828003852156429107956371273694146514556662645059803263422929117933596427938724051828039122402395717667842266092975675646581014687235710067631263871976282527069815560663415251388186448066464771403889219045754348050387538473480798156248794651690493143942672204025639011811284980785764001964919652586350433896622458993108821185527387676302678829154116042022743062770401253049085264939517571733141371260498166150909226573384610520204177574513022054411341963978810092502704560312876003449545238971956654935452301606547958684282942460697217431988228901124540249963536992540118979083743751028043267283425946453167588507630268001811629859257485636151729840177260909017845120418025367812689058863361075951242200149396728760558919247011208583850323878549503484284714078505778891382913645867238747694376114695531733639066430522536723096540793009361946820370327586431424204911439810370220617082159353545952546603140960911445570209323512289689179702826572692261584988158747436935504840581506208559081450190668994643599740138365011758402111019856033634868628648362412276996086292789065196157321643648559923673226608025146555631823292313262418359603569978498163541432845739188775819946584614450027802237767866737452076372609297344652038244483102459926856333404378056321497493503868899463616052911572040963435478906873352126483026676826422781178520200907288755528332438481730108337428720347594333931045511249245447532614522208907562521956473253839509461997950305890288993596577916242510138115988030225712392151437283464318133386631984382151447499437191490668152435927244844031191861967328386063809029566519848834817202936823431865133375862385780697233912812641086756098700786612382523355067642417641714772749481429744431944255671116472218124408962055237622430571863815072769679148108430008828736109374823326431587625562321368110136112439636123076956687551549357291727634924272738964975641941724319432583368260938917155548809800298448615223650562027700376028744526648807214761178246894678510608020496694336487501484086072147625286416797465832729875748552903553650108398780231693831359176315564986592219098159781391738909487794194513983737561096011279297043200162479496209690271250739990061132194938807840398582786613224734657409399745192312943399362986924968844006312798072628902496480331017080004944422340128155516023313446078734701221226177710298678765675568505669520972456514003299295645831122929287760235997196951383883077290171958499754150463061877451264106170494430990986425414999945780177839048711197019449868751124078098263679257892384916135663602516629007788131744136642365751592172767325106175095777190303049977698682203613670568834097416309454970821523605788788876373459567092231406590829085183299025965454573633838718559510634661242654032223632123819251891953751145875355693044414772283675184906950401124274727129358402117996844490390017561906157210171069563274379764295950294288119260458199114570335996123631890060437442157064759785724784272627033275768040390884887330804374905895667289857798348627542866322186939140687090660234429113949910209801989144710730966269742010793341265781013026364297408217848708704426339985670276612156508722941761433670783138766828986451772945335758603977270771163016025731092795914879145341911152811141543568322247841592705519675003717746202863080101594810837145631087706110436697858254474864331971336405870443938008703695909248435329565703046038458440948529038394111959845937438012332550408811199554875940645780112281350012830541114995197166624419157144832128101209827457841260283468323725482879114952742997969153353668298952568326776910660609243313244934016868403835298255922306082966615476406470355661944984605109177410483094442352565363014083488223897840869255801626812185011254581166081536554513555869176162428804128355936573918174400617574038109085149320666204626742186556458340223737988370548000877566205925645938462740731827488828192451345282727860181275931664497973516624630945277754859707950098906976146189204902370799000575141147984500403721709301001047396154066226587872193005831489033170842502599612600862839672233325157230093082722603761308276323204882248174120936879730542025511715661034688331719557161981402688840904773703742320191548696273795334488842562779034744652899192058235411144094574310170793272823217827874759747714980480181162565306572726046639604897217239199980823518563916958991986640265131422745030244723514692026113675677293991617412752964428889235565773523215050726698432644538501417223819978613914506236494629116685699889173051574563261349920817767567670520548894127922742744142734134220602221149227438070317943732722862989485634643371279692531162460081962687246949214074166330138102016509602279690054858688111323056473988922248021507894059914507340832988796011481164670100964252915655609160776601752367033220190584285142515735951221273501580590716194263345568318187885634972403110791852304770056864708262513784092652852828041418400299832751701516121141196825665734832704838364227731452585199024746518214960090985107153880898357172482165656901691113496260727355907421844129588548760789344998336023027956400159284838659336422073015584147935235762459192134263819890159185972743854793194310198698387574518223892861051157362110205894764341548851229823117425977521715647973560776287523885954370893999326640153037907436408187447756743442766490965983017096770257013480433532088166607486596477192375651426718188699282622718632778688997873955759344040968502588916608194914195718292443338236476387561080055393839176628442159254232068661176881178939713758659314780908462564117669182487754719615209119547539340741887962300839966867066687411098795042097653041903175927971271906127201083849005803912994377606394431024425496923439859522356365236496783305805685871086120635441610680610967213760005197759112805794238992940032028568668169339608939939955843072941221133929332757035469489629837380180819118323687468432273205263810826459147086997582330209720683666841046722486221270696355003313894826616496356814069883593735525430296377719958020568546995838030919274859595214944809296609393967214079903579267047317711758231502694186100373585412190489564200674150643370002304645314334807513977905166420345917437817561628893876671345585844954733131426423114261497200405017090296820352680605322904118682130986085076233180372538584556667700758368642961302674290805880854000307687438570011149852905161681310956201886642677462444314832012461188994884025544392722653609420511170493246183007782077509993140614380392461076279222135195348908369945447743342379329429319394377313935456034390789464543140290658237620635448906472690014484763555344605965951364937147095316943995217277237567249515602377702569946488578241933242308829829240547043934324749621489401359973324013702951394145237338119530000744849098679895072473822201541465519657561112926907251950877416468572123904983674999091268051524031221534761137695929117972574798398671991661380443531767727084437907698081258247157975915275763506562189660359152453317870847686008470718376747217606855338859796366701879870434571696652704594687701841792636797107147053071476877385245910560275889316271061373786987499946772272034017050238439739866893933786021286964819514804432268909648070857163127613639494230642812644746957142400293077891553463493487281475487193734827043622550813189927046073379832625617320517508379890633213563603685805762054493095679523017569718281952349648982594649016661446684657278678864381366652242087843550320506012066128861022820047398636203489656057319686105466793271803895837072635282084671140027853390233197548632778689342020932002135509503452360052393977923670531161001224706810670111637325623239738754302226307556069240235071789579535386269316714221276984901234538255763117840630268330739982310076158569589747521562719616288212052446857663853164834077302889806390223192800274054789073971947908779468532315620023588811372999311751727352235089891751839304915212313723848743721205527982529648181790869902032145457108311593566487881554362674158623972089273460692897235166857912316701382774662154307272289561429575129194557951720150063178479900451519852380753472424941586296674687945670642916044605809108646507071080721715229126087595921461203094380108188852227210054267076255229929075125856768173382911496733814679031355535156687614193984530996802128492077728579812086717088467640320548943156227242514063061276650965290828357041445765427426389678093544890125418288399475891600098893531727561948864216321132906964639977265636431038249050636199222567388481060932424259273371244963659914430570463713804331699008426925931769182681078047366037054381018149668946698016413797692133637191367527286841476208577624142158670659181111439019519736149084773895561294675501799524660897190827393169985433561930509812479916239582110554478083087300967986079266441323821677285828172010831628615659205201810533392786725139423041509583619518449309304821347826723281455678570686910929680254330474355363243831158419721042851678116153060032026317836520867560746442585712408255909962281383379317310960331939353728120864572892052514172663806666678064478138307253845610299858732506051989138185495935217336100806810569770292475777617628538046585643965065366375264784950310753776226086048722132250560628833948437188015140670182610118028139537397248277150348594069408936855662157727798702888065846253434230266555601604531397381120931349712828099205945975012651049536652965307925048403093560200454449501582228317150340765634697768593387293198208292309227030987486643602934310877926214083532135916788819528735998071254838981182831821819880049746601505406106226366956710097320683156799087302069025574393798390367908948532032186246195338697766758152159306356820242210496999871650337547324492238073019547729470518097188399222689309378067363107610818050702534121196077346819472416245571631501575990092510156561887128321729311251376030708642317029602037445202946964955664846630287757566157152403062101375479917146629541760555933830974242562744112576862604744265760852236721762409994108168977231640415518510595876019613663836512694488647007237335015907789618588321526250814807590014708459669384150242217227289320985499179415023539863432709591032708897328188238573207837242722289933811705946527442476805607980193361537566566007374197572481823750812541424957167984097893277679726827709455871920949552396336134625357637694118149033181884732605413483661587737192053585974063683568757711625963838766672136795131524901794868632030908543232948586234452440904547711396468499276463321347611412437265059620142742839300913624549571744279725805757938071521443102954507142957847839124888050107752536312033126237274906451172657112972801744902305616553861296782208598573580476716520942061338124133183908585138226968671266498793369108230451188993744890080978181015039909285707631625029489376768316132561369315048797658881239269564430240860305630080024310898455401635865528148347355097460913833454357300756751782317481920240271949674990906325669251606660091828866973777636468393995060499100623432794279955373622379796462646586859322850405193419533746332869512254252509028300718321553942316718179012055723493378276185640533492644970073426622201970982826999305933285587037422854167987161041351492314923165134895787655496762460752749000619599917058077337232688137541604620724448372606477478753644459487084187480601556122505539469765445425771249917436875245075493267544400286556743956859050567995363497471010784223142242085968751524502901499406930433774785329759069550177369389819847978165294330675387907603897092796753011939745144898444921999363773831253949279297368772959103257413671240139998980959797607711543216808935697275524944780143979175587246691800577104459394875318240453923190939662501273993893502537730131130432674724743921115071243013767411023251046262848211494379583035689493931258921975525968725441266520399161086824838022557516918442380529479168035381424867024409430872021416251108624971326690611482089131656014802060634951248835373955620279256413284089335659718260514727656350949695287786644322697452946773821981628757918794111371407299682094808773630523379558003317884130001655240192688426747732360703745195758048784398797381258467441070242830351974874188304775283835151125369324821846288788013014676183200995653533544653833447925417759035081708630654278313539707018166635556938730790805050197323733023372555373678567348025414189711724106207560719531741593089153662056828950470429454863327803111704821154489333350738806451569893240909832909174561354470720939012026597938647686495177396983898972219234904735988273899693817587359126274063232934612503332978154707455726880918528953229917492027521940794856168020794857186609919479093597102338150205882740182225751063436787119259026649545939586066797241827600831714778077464316571191949218157258350527968922018102826842051069598312822399291927299654449840743481926416788908834113010283008699234082249629200039170313027031439179906788770720977232623422195318249018326586666552361822522187471849948311193810671938108462470584358662156623545456395488985211398215316383717739435218864021947547695214697746624464133256338615786132126713468194978514238133773621075452254659638694986203548475793707863047211191073514599422710726077698780064075517744288156771936333726677998673692583659529537892563168944105590080802204297128978297037173916101094039795956841193180060465926729408303272621749530228649447131538444282492749835781122085282486102039473113109431991326977829909656769658968866072248429213051285436569548508995376112836417185834358474091741357061155910287195934689461117258491394316165902759034313145113151816254549606239256134463284629510938912146674908677390627209198005150695401778880637343976946649385777706104982961173810770407994215043332885137008849496234907672240383892897726850174073056138096392243609496967498773957958900731955073073730983076729819771855205754810653998790544236471312730888501735210851714572352676729045140124432491723856996695440305884176446148490991014063000399842087855227259012168279358786270534403402958536277754864107622839434225844479939080140779065604536309284694563076966396123024437869443502208715039925174489036453951976722593782984266832986672148420265953077945105697472129561178980695799703279174299360568435042235122398980974070193286752127611813543098024355097242620288002122402968762737077006063013125777938724826814702356358987319254327865107826747792017479540997907079190313204952414250601834037207479947934483426349489010346388334361895996454635228005419889380001140579473227580869417744857640677511496539499736074474802519808828986380937988135013945827342523017644566024635206640176537976377468263984810385193971400194585398145873773303888476300615548056607942360273141337839920467062466942933861563702653485593675202756529920669780976049173769373360655159910101483637694255341404856983853482767835033788135240039948463934847176336862565248188158642715702788090780388247496746957105304781228260056961140437059753340813439692220707903823428721819065470043913216263398804605851898804156140533103399465276148348268657801778984171269850635436785856212190718213590471038707971982225718982181815227811975511512708917067273944224817337529953665277982793926309623049873267207723610059763237806523828825997576549424798167571876202085421316165695733231966939355569337661294947372721572584776700857527305574868571882075977292374201716098063340408798049288336322360917872259582725790874784730527712197258040011623882206283412559973783592877254183433169485903500886577551812160158613211192426696895020203438198591910891705953149556335307808000889581228340088150794548031179511898933786170690380449805910180573706908856176292610283769108377962898446095773587290631687310462798138055566338915511838579398849436059360336521108746509324966860525986441656181725527850198793957851369736012400061644121624783520719367292904971597420617229629786199449074845516696211473510216646361051973823085484101856691375591774662914053959523900027606458936234888077474323084541405688976617415163366375681809820463262834397038749177000784065398235826669086669962039607001790382724175743426166862911544583130502089577355399549005584878127514760662291627888084375964134103606108514655596560274592022727817556208381777375123766960582678294909119966357223248553298492939722065804971272061203234579966453690621694780651248189824780372649659650488516287182969007233390698284984538441817569441189583596837546133676888947640784498724539324672590665196258109577891332340084822831252818130461178068672350941278163357406532675599462659220785850628375914858212748261388232102925226196441184846964747517714519300688872565565939246457332009248443192706336491509528161387656092912319048099522393073838633804386426282521427472891392699284439517601094949050530250242974289833932941758794530449617433110561227985361403908561164615784063735540374016583923661684918189155992153327884971201277720847142146584480868851971812987949342726917887438892559309691238639086718349151709356237910646673639389105566371764362748937446245305448467927701047009622423187886415271272927542422363987882117305815479487607394102616779300706155876275514032147350827973169944816976048031175995387691956579638468128690977490846669777788866682465536113922086814637904913737383516902485613764185389541084246531248954832131162122134750646592897108680529073504834454775556228081220898551670213130918304979476249132774230823908997295332764671575168366516836895263833194721389817997762685782783670837812543311441087898771471989664199021853134406303966225221095870397444608246606604422740352353662540320144888497474247529129897083587561935091796506087743041467767095904820967883465865246573849011130030757143804209209489968039845794944842345402616369370554784545012144725626338783418274065713208089566430520027354579984500265397014686302750913202465667007182556760954180451025992861301977122992624246734752884529461514845083916868701068758218308819507922215992593527482246065451111917919633704824358851918893002065582632492728224924901002371152838545907124454745680951586757895366686230590106354682161511869966655139062054357749250155004107804678443147359541446014413663427728269487608655704613552928096584256267892185579080221160185135243196597936024016405068001749787841472043774830690433799358782040548389629922414760030229092610589010845975718777618006200610756670926055133481325010922516205122781909987584530429182114329139202614339126311900416847419095491480318890976498236453468251394218662347217231445137120855018784363986722321888982075193048239224149859201781454579670180431904798909691889594610145990923432126210818823764119597944334284755414467301884026044120986549789104217871709935548196816849367624738004397309258647854267017352054179550741569232322935686850278504413854928410359785461839914578514010787346329081183098545148609518277046448590823490435013061862739822488103358757621128070598248221506731545739783369948111218099989058774198561348364492646304917966840496578250831224200382955228813057176410640153680823873222719163915740275763155166846198646360475412772152446636653085192841653417112871394748690678610518102483725936278274726093149551746743727666813651384949200238096351826488125073413442453529014596389956462761358555315110032922784882725958200058226772176663398422598918486112098078304212270324183806400898496048582848115593044076988477404460296065516672202357482418477262982774138063359567958905231751677332755496423438064990317057560568339079938516262510409653278296576090092479073934660318746008265403862441621190289324336973625647502003713538528739559938878275199439862452280316210531101657781264639095927235485942908479752588858172099726101463780455811995581618756503069900030906670406689713419515542509416633916408678668158221713463209282260956679491620236529544403519091874818029819327036083385165398407588310640966546248423437994089461548920117336866640681345390096645506485281351474180614124348536098167581899914170778208753236490159720659210936752571127534873263453921315384556495104193550443054540866669558665778209444073610854070398669108884498144092334744090372262809393441102528925402601885289137620970496551848369402007288558831860084603376938375981685436946560497982543177588927437500008540233253471973599819439682460949546234514789798393167634541394157694884913582896879461582614186960395573988610868125759191486785690978058200976831000895356563710447898256833700038189249215667473157906697206886091084326297928286627524838002686857231010195517279493763722093779208068381558763024710203402715058310137616472397897724309049051624861630097111933476371120518667289911664867913082326890242849396265691278923950872349044663017496530089515628273538865093869630096613342104651959417479931107575585963014319251645349717365469763047344163745490331578904011287332389895471841335412271370574862039041441852167788841425968674111671659622552670580461850508670110337868815877287343651524703985672914574746343236030834557022287100450861406500932044639321766854202991945475980443825353831346598073478525827481952979417344191973108313383766304741091851934299405877983621549263641238924170120479906880688512906552552189231199566245537997691007193300205216629002488842540460501212601504204058459253361028668827698849483433193724922518076340659957837558293460601726000426262106681459854204117581845470087134189211565735248781907092175025855012703019740442050434112476427281977024963340729903478093268606096974293256937406405184483457505086978608372644032243741605996869988444313763282886917284516525041533644956204406079211476370730096970198346342892221250383466179496714073521797304533718765002708192608987372329048928816110936037748798878152942787357244478798490354950149695451948123453647729203343501235046648309474913404645989173983253261626576441465352844105477215842739352421971349985620630571041673721919903695121221839276640107096553717315813750884683559474822583158065502339261860603728444108205500356207855389169856444874409198315354897094913306130754353378344557091079259774132620955698854272190843305952757870238092998026123777455484508287121082101157458077629431853577071939054591242905227382558613105626353381813393254907103586426203308638994004633465996202370039573355495625818231223087691739399558231136886254668397592814070426988252471548410915469663756463997576783991187655789522649919755575489275870751292960522973261516911269405346569700385937448586644672371173842425575330002912959986751731113293615056818165414720422625740068162946597412367670252182233007696441172849436167866199456903556602505404813321549661207871295170786045213337676119269508030101595566428485918325362478701781925336321539518360494494906881961523855602176495670147952007819317766437238827469110611930974964149365160368512843967545586492695051166435854487511278271750855080308837259178443281050567248004922930901480345179852527868307233839984018472729579039637147639913244042805180768290907291252649489523249930147927327475063686116563505512865553162762765514425755084736586715827735072586807319599074522534942362013547919061446209916776688075047368838746497430197292400343390126817180417170445233804944215140996485495774544950994794774254000501629230763787147908694489425386729989023340200301837944365247400346078323126615400126507950743277577470751527621047199458593123016977654099912471917121840937576314997009436768101356980350033710288931140357593159707468725137583302895245757629281850132222297060619628905251916566341098408869917870288222412644231564440775805105441417341601021295113825686917309417168672846960808706235600473989460858177098799137530161347262665405895246374524275787715176549733821319768593857837880362398511622147459992797679043125048928506097185422561510618270938771334521028581550748787151007515988355427049987075465644749828846474231548650074384554908886392920812248578659699665947827325736484499982512231195967005043455920650038649113805533953911981780766381734129776893095423294332611766091985048722135976919362346260344120918289093574532824250877763988461614636825555390235236549236273943003032258570226922523120393152180865631283063334333174631230982659258508586368052846467142649684763466005597921913200865861615004078530664465952137913840436895154126274700357976984755558905454428971378161568577923221251396822690882874365790631610056995310394275221088736361581310302189105328838924266707199664698649542364163688676419886055690029086953243841915941545708043734556947426897650985054268079677244245704897110137246003309259657171457722402428232070065765776847093156096910390269144549482946426261086223778601443976627705417052575731121311214130795073277323598431096537812182137612659587705919779419629413301579184344272732806354868186147569023985318811554047611741673137801203090346681659231001526355105341541096024760080465694838717812718546508451226039163935486625332119255285016246496375143546192795656176067196105011045250924503564071106823043805354450323132347085221391462975522939437005359681858740982798695535299695810307228965147138088868177118471357030095667404359042082880802857420324312068429352639308681793478054226425716180672219409456696383365619610092320978568678406062882149264010753709010805164544381320430852231220884956860302248781065312461189193469203684904913658077133777392563201251877436847177561118038346780434505687461055889715648732836165192295299381976746881959722655810845960726329079722832220090324869121304947014383397333762768944078659208757126907037886965655636762655427208804572922041568893305749694838766899145922733480186392117854018874845888982554968145295685924277581122216094801381830040388149767183152845299816133075268054410587894921278275393106347088870868224492791149530041626328658310783088861712389117007792231793446085426944022007617651972954176861026755695039775668929630997216658924152564470848825629953011072589886894860075591883612433079799930680139051438007664042626914664582046782958691732737447092494391780132665541685977013312279817615030915876429249693915494303090917528011684583286254692504043595605392944463918991614320252910940731191127884773284729656320483423346907798324487741359139906442422666583166434640677605699977790537104502032992532162471615561238271023518186900522409392789288222153929677872310006361297879243362469323674649944065888910452686460078830880127351502903991917774467133773334960926429519338988302180375809926406947968125935712517122472813912026937779768508973106915414835288449890466836073799971286647225567642851755123507405418081207351081146778519010896983598245585784105839649548948786948909768327610219732024953999394493567000081651962234994501514299790166910117385439552896928568256899546452117265193676702783972854912500672411501696599670031527702052052873695800638834193068803008701285108631835636936896447277395189801782132458457482595463871125117961900654886998560266714227573921094331898607913418380589955027239369093207803537074483141290330047466354439069463235570780181990075506390438059744065465186007843564574299932662694967133130492570390708916201422906978219239486505255338855419664269839025752757696688947578872877602936902430649382994866956103333909509739116956601871853373869610577530316285060896949683865956805802081931104023692845220238017040345494774448867423446571818119059135828596688643276345055715174032016679572228314919768353157621250678757361613549690958833362188264823078953662311244595864844690645717703305513824863080423584506734121757399208363257602421420438655598479876041989144119822117474598212645605162060711587732840426956623619340101529468559001334815102663427385593542236257804111061878513743528612309436251899753669083220252358041297390007513491464425418774345226720696114470221039585950450908371024419744268026022759348111616621336001479471419226856393087214628796431699540356383903664454900081336519610148516080988082782022142230427395574875708045498342678982788591247712503959925769153694061878931627004012593775728714650969445911328613793626408404654205663778097538911633227994782992004192894267929120050353409180774796588519854488326947235469389380794580851680060059810784213791350932044486259812134825801199364428840194393052827179261550671834292453046963421854577732597836467798570768703924691608234775309108001026002511032427915110416961965166689989774134878400228827764673368371974561877793137444762542310471316781017055980589899289430195315852175508410357672623384256958436655972878201118227893148538790970601822179746813650959016085232648490969946452890337962531497653897422528528038015461983731880441141493003951680010631130490828040150706952074169063865060357939857259371996430127939378876887828697707578566684048437513285383498426084598205825181517219401411747162106962121829839202139388424340022942546386058627006015550403684626583613000211302798784802813870423953417874472598228711812052076838227906652101679531816362020071991439237535085555608376948202570023555700572599102835758349037184812996226845073871013215207216750825146925234666323336101774585876019196971969954179355171689235112259342861755601436196211183403516760782869526417931590567822900908387155491877122717882064155650081812805778748022818283722076858130564012464114985247498118867974711983216154520460593325634336079281637595914273631578538613291836005784123866598891289304499657130664337115155680206609732477050658964007183008661763215581729744083574145683865918348350253500465734996058515639207878425102480514790588452814297384924457424494894926788237442272102876103693160469031338416552852770632352628792740308737754013476241057958346904209008228790627320582358897994565853077693523119593085622571644331808987649081012740890262904188723048242140153421048789498305877367670710461596258786680161438043491417741317032524332844809185946638712122874644497445576821766390389761370122269453634598395260390110329874794397918557004754763568135315780771397714554443775840069164921120306436900441492896145279070861838383303787397512018915895368900326693159498492239373754657275887828380795896058183516442614450601570383487198754418656235534966122001161311700888702825852396230845180074536025155432037487230734823809094860475670581631009160302181828293620094407358958362163981638591694956944442845455910007318444130172535587225391157782473441455903452223302149517026929203421491211187614119895931867763619001373506190815285967057886205367517249863218340112923771452457657691096022262112089630808979075435300569288749133447209389351804671841603621011195475089489876471792695909832751309037466728135204043422383805798140248420727167374147328155421095260734283492910127671926263959499121400280268080096545979198484724271144919029464747816545819127537992966516522100133027754411112446697117437732956110131273300628210308892305392489866934061127976563824467878882742964834957221909733148019723686326748823625116241893981266627310315614147002693399119743704192701506646812477887010599895707309724296877323560267830033563022505967494067049294819448595058588062334743405155502000611096395752640022464338617170918784789433238909573100384886660976421280671556953269183701436181059720557739128687301833887269608010954465365483421626539168619121252391518509050117187579962196243948745450973221531583525104372672161315789799614327018790065931548518763832393155433021004225590195253308532447883239177308827742592791692529502904813037545758167095837722499241900184955758245553349814005691131899376856916630272492926383143252265590999239843975805066631441751261610053318959447824101007144781919361494166817363279256440384614389609502810067810717696581268930412859597828259257147743305380570889462393084954971581275435488926094417108877508803177691622031009603211111857214525188022790005033894263958596326009418449085050072239687293910988050322358065493351789630350316129663287399079030359805281796694299478904974916752593093163702584379952841244652038876837004559449473080911404438109523415579653369433015598777839889464444434883842478746390839440309843730252497025653183766203652400647465992165768198673443407923143474442390703430720607408721835728601118370232253167601605358807365453853153626108297616170129663584536321629607339844568420891209342434089181370533655807235802186233475613874464720522860246642580177519654167492121359063540237920746900919023372980947671113744305419245135890475518324580978629179483034886142584620618092647962062572390640365675516780063189591092432902407126016677754196494913579130451612596570219985466611808518522025503388802665587573432416341572370904467054775690073307211593434504733807712651933165387976750984250050732130440165532496934743337016855492215530324578572846299940322773055927780990431270240277410333543790037692329706295613163663257656518256292638347408621692818723274607557598881957124114407179735289982068935674007829370273831509285590637490001733513989936127743496579599736315822567042914072210212144684942941569792635870868044931170262202225128528238624515573079041992321381527119349627697725556966248423564668567267088807579615118640727729171327819828242485644499517790002218787069946876101492177288906901082013853069871768060310081953480759684453438158206810874821013153878825671576100313633434728944787206691952025735074412480519665111803527856001165361750581567095278061066947936405950954777468177088291567994694403295612537636848311312014235417771772668985197053963287319065665204599642468146338733291100631673926708538150751881355141418568794893965717748685904046796132630118751142821851753289089976205902628005544389990894260171161888722142987744067682368297325206928382859882437081009696356437522211652850391835202312797528164632909581880216801621307681459354661126246942377658284580540519650031153579310875911933222738086893508055892379683981101471254816106158807681651281470437818818476354001955138808085768760064926181917548302845711249386170225199403926763163193522665421096437057617878030701547839378805887188980948350783315235009818837517783998368036794059869893121628546604611248830839132609146583458622894278518440009252230834836350591630591841549834123921781379299057511259466231494027623077691010985196724734556248786004693159040147643888106637750926855061522247412439876294117718266718346303034033776029288241441687933947843562720112690189759522786548951719081987056201028142867732200952178768914790363536195538756971671160587275955605810301676640915335428049569072701263913061216764226205823934688002790440487453603049707207253035269650879062294302473649451919909670839473422050006017363213639389300047638715229288938122581221058971387272477077124646525482487416372156784742260968112674873071364894386918152072860346951125966141120777000075392483161083594173502428240928192656187192553645457662544597976554237646243830578516085974859472419240191181013536631578521883641616646590021014529605121759455248614418486676107418949246982097482889322345931551099001644742252773496239256382723025187448467494427913964292164082547467919860849372347437869607504207393598933638223929602401721207064403629666484041625573338686549577218456675482691087379483082067445968141767967919550668663515039606705035725238855921180947159186337229817724715328297637080689339005146378594011325076616381479829021070049849090735966732344744997194862600137159800336000124001329594172286070880701604399748547930160875517053911149767044077212724187572165206246152216888045910801732065995283912509007629730946023794924264517795030869116518262930626726710064800137602519820178026227020577228396911659709808394156998298607541407822362992551288421169624216025583955667117513686495956947422074442134267544953131265782844776317560344778311372241398639819437759398183517171068595621623589607529095433391264363833174212315840800239768555089578911246860861777805933426873945699945870898945144077057457453745978981748653724673703079002237814656852589339394586278676666370560120609703298825842598557956570592866102580766626494633153456003976285262978535283563644016070672292526987546367258909300553362224512351157121024680178217574328340405617887861446158567459436668020122952863967030387401907720905108478366660996423134074166180913839467095783602520048228291861972353111587151317501120431676603205849773029288960108725966571833488554897818788389784029882577829004048626436659748247678312266979321830508074563157524623464004051371998525810299568912405311638347730501076259710789294249498172848471043541570252007723505808540443411902802786837291912874343806108735269879887403213591225503485034335991339414461666779709794440553078761860402823870080626334404488981348301325944364579013012809975844837815202228122043581460921195561456142579259877143331053606799667346940420037014657517163774599003915712100136256217653440314475915185910199837252400358764361710521413073782897163010106191568448830839112558372011226127128725380692471667560241609143861385561295688955327903851385329801335265199185028776388134836103360993253981186959410945231403463474205963904825670909351265151520747160326772139954819825755892485565055304107682655293693349880691220078479645480335884468328824222669165562206522746515949909565754196177765363275830985464765342453346833213835121499997108434016564323081508264576795222256177378722833930965851518298774809926652399799309210604541774098642149585620412343019232583518692102160467377017604464472720582471953441802922485191853107974490358422627397994454210000730098349747044034023376838426868584754414174659406724162908251456181319796613521615538834626572706432692725970810062650420048407177608199131472847232297047870529412710752906876239307771942828300978112723305708029848366842746989372975209320785590978221997073550589724126313185802401437424249576228224093920449490711952125140390503251296547655851590065587420732143136565050578732709945741483694188919081476476523446786606438719818797057022974042554790040243913703042737358512897924523294982638772098424615011877229600420079545483435917187089586274199737658701963366182298789270090527106672047535617483941395555628636156818970792173749496805442997198983161665495561248803550366030057661823100580990282320237152412258359848136461648576851484666820968677075533076504213585325158355587383907337831766946713280312980361272330719177690764926387450672904981892934179769502829409944724923502869547732086231933413270340565868339437133710065232116487480689006420540725968705762450964893987364180471607597404296928183534032710364887237309786598917619899937983033661660870259975657190750513512602961676641526434378703965639534565553939708746044961673394852158365959422625961630301584630747646107032596785626508776313076176288514355204951893939616092764805101561721162347980533347588247730458690137936930082570066896707352969281199712320301914723861189097229081346068039280996939956535176057289858008318795753496317640288604082955106304832288310234827733591195448297378222511786648909140177869492683206142925461249337258146215780219986123362728498986846356601661506700522170129236075060470268361431121874019442646834036262668068991532340797959513223497050031375799464875934143998135238394007909568264284014078553005449662388608047974874511780762549890265159529536164045932824309276210270280752834064525211347049180721896809352931595915107894114407359389287828477904674257383631416135848372063043048314842089249547307749066907724249759167521579321056854356581512679351711447059866314262517576836987406266253885044947129144482943059259849648987514479062240416787178504423991754272608599145614232178912387603291627849246257239662491535604330301103178954037895850761331418680863071315150392339476586364071949201259052996538235111662845885517382255071230204403325259327643348829139588013254239091310959181515182494660143166046649569394586320771501784204023911717971141723814948254143270043307821819699633724104085399783831000511631185342182639772945121881768540930259260410568275974971830447236488046026957615759233794799246346262021783923082287258610554437853353390737684057043144450420693670350019942210293085462456527797967753337340903457634240837780405566191239993501725407715516582276743533777621516348212079622353852783615396770682212685352241242201001726501885480921917006236051000037168580332307340319772345532771199533506428528422842050931712567111720351998318098921434490614580429484057444398329969702421877308669230493851145546932432540766240954000530490386089548412216799547411939918037099330159277702827080640416567970213178781470206753904445797469305359812377666125806562272087062852470329271890723827039632175695223667934603726596722482937054554048190506750223529321345656232345605100978708257693663292019355843817135903738774472276125345246719380868975729148487394206747844853578081884045579632488291963757334684394470333537312975201958793914273912686000253156414438696655160435165085913442115540519404487282880499268181590530601278699600144363430145871466560053920356127042441176127300849259969232387496490387579427839659319588945595489234213159681540805301700721441570592053937909972811492272071010434358430951508060201459194481091752284317880258548650971892469842420546204717075880373348560069909594016162475696073253249694540642231747291344141505626832736430295113662598359028030119262978308439036988336098387902152573033583350948207831500335236182946876676883383701862286599813809104833318988148664796556217784733393346475053249089826308491599167255902298721574019040436890727092365581152973938238867130834303390827778037827870431820582064811229058535516195462779964573182036116252583753979211713187225977245794139715583176180656489120580304302565192659219336399514838325689141328243147751408083637012933553826083632092684678165110140146298197525073599230868251235369170541378886636850749796796398518460272365678417989645290091052248602128802878839464281374612055759560965766348657675900153397963647764009453292269637570130995186004999424893956745091095688568581444163443046735195758151912379707162085914658495039764927202982762592625596949168120708341967706448505420112763045606482203861034083693302751823154828975039252047285275735546293519663429203249385921353897906876089695324644479190571980199419612048811806631572772846870952194250251092363845502851300911482362736636755609359003514776394792309057284948684783901205102935387747714200702219407866382177620167627939265961199412910254923900131492677195880516318572568144311477382269655014466566641850648269870653743020151376429460781609630619007707454216439247418695077615214331269346949994972261954991882235009930626451897271519391088074369000706859903489135867208799122860054848772342617452653153726493607227906536852052718525874248564433108209392989952386951937838194756360654827344037702407202526504773953467513859713839669881359500630315049230321256130265902640996940492909227945804330180660904518543020339139268390354637934382379005976274901696037622656672941562532237247287222536771109999634639657557608928135396409837426991127770130069051488093705653234914485786505550848974543440881175900973110368921279368251042802089076812441912627722451814456431861615029817431276470878645340549285672033374357485647659091315655775827956153403143590761369107387836935446220507350151423952547888313441729387394155705137674088987917108381674845452197119963965742941282307570664553403844765648183372902532007145579614252854439008880451904114025146726492385734137686242667678259786770455438296362539768073026323615992340649991871621683234381817582777901139525599046061558217716951126286725458099355053519812809031674840976770488591322202476618343901931415089211518578348988651382473075106797414317462718652447229924210420123705178833338416703667080132815219067433347665226699042140068127675047851595065411919888489399296566794424701816340467114227631910715064724477691651689204568168789931666133478111578951576347043318073025887444615648239405048201397064450530413389769916034775823504429179703443379135090025401586142547652843118829523161366518392428336581911743243941984248061038426443037012452763581803561628859298486305402326074986877859523818119660336813408569808446780079551798251378578892141712335478815644092389295103746711048894358709774776891716298924188748993976516062844218393052691104978155221917193030182301903736461743589676072931866291806890077105019988610321485558357541418260117293833627880333369880253339664684300673847995555647094583010025330351044665841444492017188691785363613788912244987349910495742354495838346843033141072757345153918694801415757489308831192870666906081264633059098454997357451914252148834184708024779991818091150583954166029841571067312554658786165676955907059790349511034389855386203475366207732777224135384266858894145297010644312278970775909532715078420340558550645499496260897070092650551279793220337788360610564031170121894891159379420018191236744393454749955771627298084736730560778589585527670071999661730525140331098250199781797567272625602504619111622834188129608668121925035033453437906114879716073987386554512813305788047355295683155315047762275401770133706449165535699494159397463741370642555324037101379680509143056040400772105315705447530093693331944201694193435618924519947109428426665179986352916640868160168469388036317057530115450636985941023254172959013200805349081708093824937281818679207311688658325489237234437609613198130431101389741505743316920511851511630172709652615677920404976946148108670300194539498718346461842455777023989558357774421616458633464332081042808491332431887013846806814547131873536655499157931726956790582270422234254623697741061151033587599729852660290494842650784066473164507178860523781962931746580059899129851363342408032865573437889164105299505660559703308389012311478140753155238270962631046963266194073248515475968059733838753151412730794790694999818326952116682337726970770337598347006067477300246473303810437021694722426243038087822613172317594084440590982237281227878793798546460808330073173161699757509938491360640980552533935602581528655814053795177567345416020832837432284387551509255899665198376277114445947098620538889152953290636085078766560222295619689489833903935452707048488878824806741623359029056082488896326242214153545531866680954017887519039374806340375387070602458518089833150446986712583140462830472390082825117442285531143073407312661084243182625950242762211335283878308477373262164066662464975344146801234174685357542621661671639748342850820180006702818381950417124926320535739152426357828947155713012096545715661603081070811984814445503553705813864663295281239246193158793217888944019410664457252535040556907044225858279315302966407798814026525148006653405468664985052113965769035824240383165211534166235533986134398584106822952772240934879403204723884733921607404532677562584697169901552673669934264495611926068875591849922391701821423028079668539649857258749313805874951297561428232010042283625810510358821594077292219077079962320524975908634120712139535206479980156848424171709162241348355987290928100184262347481835848701453151275159945401113387626635814880186564699285079573389070186304201476238393005948414367239094124324260924066131252642776237449970226095083215695583305422953138366348692330386780129575727791980122992639235237341135168917069390511992677769839024054403851362050813755515472356910141257958714436958387694363021793708262742845824839792966377658884431928385145259711962805766680390070261127744929887029881376853550131122802934465533291075638967966194437856971336595374578998518157005864913335981231132931374388162402643033110696394143705360726965782681470237196627859282490458863964104234930339034741534049566184962073772676179111783617673034171409636272953036617921442585646811271859395237431490795486542346036779752424691613285203458515129744097849895864799027771500158945841014974049211604563743001840525809643409206183333708813606460255905154228492228718522180001002526274834015766021727590554089055950712081168526253582696683349696337468911170692400315551602690108713534346472463746448412257765187933594164164759571605037792597618202795922541508749902866594355073652440300096901026077084617738714346393837074385625382949170881651643183085207408963511225856570335334049256683727678127706201557254306251018610468852102177329341787543009055612005194882164974277562835039341752527835478129459654268808295498754145274494438415186883007542031207556010855493323966762355115785676713629447010209042896127998728481284844388219301416821984344962117618121796254936802103882835830515107972085108641589831681639374960249880706251497395143609526388288658694227801046689152345335624218101138341532093848986925275990638404111324435402741666098621357275803647271381807081740030938067718945871444941181567277815652727305464614047071866564540695140022514566922123611992517030168443232983760692086938702815796856234012244554587062887503742285341598171142865253087205267904597949012769065503162857932126712732783482617031092156560876313009231794782088047750779778016608295635091329757841784285509470654640393124504187843883536777612823787640466267719650449578172148641226993499975576269897621119460267659927268492775376949405015689987518557903225503593504898270307699841030318366804297049086948596294276211750375438838721057894595329681491222679288290835864743745908995757852759884800365134365043132942990862365636916455137649289525743405608187684605048638651753752348086716545323225572983653781469228371855101936401102121632333404887370729042544556265767656964467208455374134575493033471210264005914202526067749314059624880150528240080176002250810688932103794960894964512990410475698360567384460884296613709101235626766092771037656698033879366313104751471750110058911527506474249444185167777132040207088694304286358881346449232263729696503967818038850484351763099666712430202947752067302616086792930936712928126191909452319831711195399136098182810285791594403190017917449692232783449992883020937634272432495251441956410986263262589399870575776250513009881028703512471182569640458890000444875201897054543385122906531202381028324126021104676491657429203185598083842229513999710412455069824627231085936094276287155139124411579718802948313078212377877832912616245253895249766976082471846830176951572871187617409716232857991214598974599615769834939737909023982022450494439538945882491592568485054568760674808086665307329742535425365553694424114508598667029763637049193744716013768239646951667535145114412727011762066365350482938290901327701146466984414811957059079870718866480943904752319867152670256087823873539630039444747598272528677852612320254541354565703158869126628384590592741852366448535378744290198661167888011234319145933925702850236256344856129413317478833730407513038683066802389364650849606305343268428875911034338918342261828413845469679001237181984382871907639908792752071505486768224351986968746025367327165325706301605867128023519556764394023281107603333854929095775699185263589996984638430665364566830016248263325265748754659523920814880874664005861247675948245631370896958268690283962144407029133955303035285666108896432194329330435746226894500239009287955595813420829125037928380915804902453341102475078772701463490897957800409398111969359370396373701202069174739066130589380023049678222709863615082589690254867832250894859162149832838302029471047519594135827159365272147075767879317063778565175851073063612976513163943792492082084128120242311933572522089641088255084258015225701684061602247897709290022119759616667097056300673894938524738876745416952350403580710863351351249411478457044253118691914645841288874733000322191657010323738748382144837059076439854681109104419011953318016055309134795934194571775233712900386616661125379162605902946420253857111989470263421425542372766132525985351481818359762596836311605817838858852511873396738355176643111909095232200127083506006600460941635247720591266301427686758507171986770885139821890615616971779674699425953409213509342885256689166624580000233283574308259472885275144807662988713211670915756661486362463696789934841136747115866763253490062413885531898589932862581379168086027985029866720924227049783864524576790755380600116634296902835033159678028856724498430041104534283924020480193250734927540021333429026827566252323464821261909618369337775878112737966680125741442779995454747010393499330495331556785078820386522511031961435577269898153166790186055646722275941883943955289855553706729374718178027892276954303336455352483440371256697575593113414785529428431152859776884735669027533226073733285483200566796386785921483589705798336179642585284726099565076055722443985423559731991020350893859045745134455812779417658608948916454167659236414510597157230050314483583007706818366852304971755180362982033329481783870196186122195703020412298878258195054793828771861541909329529244224966040364662855709855805587164077442601506651815849881398216825830961861201376900469355976315478759216379588451297719531719691761527641493063517795799288008408759478380028548377596840472360387697427314054980062921831554200807940064337353744494399941290735009628006820922057902411426702172843482427751881920264900712003897734878931833011082022892355841043793372791795410306097295430145471957060526066606361985661495845824854695212555568662992981800643331654539735700784236509401953949134178779605826112551010118447448355961587848523768617056434108260669040993315146852123333425804353547319436537230797013392253226258240671891399095890239114401938388583557739464366489877598403813246953799083832861349768350252407177267793234493773326722478648953748521567574260890385435463695291954401959156890768248616250781037354521389104045049354133137790904318185444249327997796776846400650268425804906242171858550312789446152438808697632962005327595917697690947655279091891819244867595694209033634612991925894429020197369117132965280347874879830410890657497151862648602242479972033900120461426775020031918193911350094915798675282179981870930278136378605856112628812407178399144217050610224652588365396990167214638292470854259736263067044570595755541805337056359910803062108212504310089669729709413300046900565279421726147930760887076094308211700118932752844116107736799907382121759776791542175559271997622774514667859599512495935845064208045704010210264030210075175371203426126193296795294039889698733844849581645198298643720587986583840359039813053272849889821913625383909320955093856655610056889061209450676762723953277333771131525266696260369022891116824020948070139311214464282527490207570027066685596722251937641151715747766906312485053308585546599366943522224209579112472184481355282207790915245842468698549662028648026374166694627649988469904176075639497788109207552332769924090252259915163969604963915389334543407830033373007808928181238222385858293912596950628873666927254775408587985531404876658204559492570178423892711125798359683736428170444743094150048211888371582212807641608329945566276556007788752382523444725961090956212866256506840994270162006902660661036705577817560276335377022154850464452301926507681057564975030939437540056372479347123865730648896794778110863868586641623315286569828927661624710417867156161372010259555504845425906643464792936219783100107266398604535864752809167458566766558907729652144041645818609710841588429201545080943610017503072107141552882497745723042522732595402006615659926435971135177279727936914539157942588406642686273401209873992414076847181706160798207902734375477922164335550592198506012346608753594150472789654579627836752818906984147488366517395172175537509859742276148602183689019880590963382764022045991070645458526202607352342719606757307290245070096289239462864803470418088412068213437961533618112213730500641120491377426254180843781463934759308314300785672633502513936227054814869525704679582492052046191301547563223896951348104627348708414968651812908624225212283751964738828902698756134283297170755324240105021901521433189624158514692634112946825898325959045206463714297184411666573879798342351173342332532096526934165277923485312736038789586047583243108896615031377344871040994416847064655864828263844167466758602590333058831287032569263709693553130183785840713230685374736739309910228843602352909546745681807607907966664133178458550002643852881239139323466661710679856680995028991590896959353162733957981897046415508927745573550399433316552830051797188631004354210105956189388802546067303882567922180077094115120988846743065533975541493947867972471021706472858129227312785455707967124066041452177427057132020982091374183658743851365098817966288639016784054309015749405026177366814995991833561269924431439551990739263745209816048588117314436502538373594933830821179921015056103693094075474128920579380407383810777561018636429834766136476202800146239400668303692241655532989081006623532434856918634368800935607971343825949861359459863064409727634215585953989700528172665349539913763896530196228970489475080533916419318618542223625706119497077106685276069768937985019098390546832694444055048862705314080776200869027885019992527687100507107559642059483130296910755396178329566241455018840744142453096567290046281189910742110488295802309795164043319176426283749373571239406577281823344106548344702331800746691775258642711587817795609124443644521292413828003014418685984237753931862486347064455998408875599943976921538120801604602496990822902913741022787422889031681990666490914942522516635738475983019226834970180328565362024223640499059103417636990755211150606726920272571884265461515201451961829886334038186275969496869009467728549669342352231099680584880560757986069834181287588979143980395518002741599838129188007759963325549109675266837763671981104460620687682790883932279467636989674428724509461691572619661851815130401919538614070226771192964863775804052604251167322051462976260651143834842933864699521819194935078194229635004994370697993078816653885583384899393231176367142572520419886424857166526394459122178024523647341686561312909345171627338490842903234575542239336343122245309169598593428719352719842610570352652815253572931091510190229982106887170082154647864189195464897128186340741549926633915046231933622194143514671349216601695560690542597984686633104878690886854740447991044935176315465072370999799820745975424059389029504380531150549122225775678637804994045520649175981816294209388348069021049441258237408591381747952762003430850245845310166436158394875722025139651404989221191331162808728946971593193246963302511066974925705584106570458149183837195515864490723056382861182621066649881694175503005023109962708246931671891854783318403050365474361946449075185644904743124849080605942671681075646992279868876842890646234018880090802784672065006079552990658365964702488061861321628305483194136887031536730520434600798451383091348326698330626059772542084326690427429225141699051868505226897971204721228711145170867691314650582363417202373600583674239797860592236709861608805719685764188744469734259352122425643925590509560740481768361520239628727433184955505360372544237349681398083593042343141952663586115971181643477671256907912382376816980965216584359957998498795770961518726958354091442494260666845266953316384743047651057661208161168310473964102934697677411055820288555824920451092131966441517582753588862697757346062757500060705436745859359774113759960182244953780267547188716085747373927623530767377002263838924057853045463633498862037183333587040475016152443716765688267187614908070736102185139711307021379600134431067924846111066617760679172234473725417340754531445815762594201492037799719854204884864293979780330507029061826390379247687562167540955841811266993658887863695240827688326485221812245615916127760533191051925847396110931413429263030072134981910115213385400201191360343642747366791020091006679221161853486999385982649508577987836868705797619721143872769991748053788303325665295118702024408061904307187126575983733919565349430649966495153418926128077575419064511022977491972433021225266895697533346970867465474728238541647943908524760610719660787878285543314082009983483774871567526816763871682416471085669700548889865511511128961708989947097759709059204333872426630341040335087136013582070694121765123774347355358812889482124520244647411733522388015982589733010491953913471607220225112067194235632456044871844632784092409046681896682494975494902126252584572458881673931516898865442362774524103506574471680624616613932055285396943833384765654935531905927091867175983007946393591632713024709960084375256377071257094204775560675287757153340824884196696030832086470883491792144278967442786042087999728038149081585795635442593271377598812265384728120571507283578744252027655947064326120442003086483785211276165456132888209744223596208601732006871239157545788419973725339478762344446639668111895926210793818759937559015421197113474832417069702507172893014535962673352901395608486140932494862965930831940751576927561772021998002053629989367761055159263044847404991576812947839737888300771183744672301521514028675714246017591852439047657932593616503431774590605938060296386145216104156690595207479518369261595604277805652241823863084330362956352327028662092612593420512677911037267083417899978643365035954739965354098246259458912283093662296527841284732821891612606736710745643496905608866305948844995676313526143394783545713742590613171860717296780473670039896407428485932803551623068858451862136224580733720938566463153965120925477442693409299371134093269836361158913449811607940571909563292388067280126685328938191584043050151469089254265986979799052327752495281663184956657617487371270384998394237254865831738419579918184820800651314717416132492690473490965708764864183608136784309165511363543194712397203746445609315193870365570732985999721512437441443187118516602313929055754238559126499884998570429868372813323754058244279601453954505766392769599611485177915554166395680408454415980340562367211560189882434761793901545482284353012542051559986994477564524234495618452807994491489432001184562067232594866691993531532419550073950447320006294236558472222111540056841691135091545423931688190065413451643709923572485637895037706399909370283083745664227397203873558691670567249411526242633570819683515837828913331947490430186900179567641072269490923844329698539273091546570950520076960550586690533685715620437633471098188003515620477800459316354376421539260030030335020137070433414410431552429417072523901078435164028244501120150810664816427133218748176179305243325085799448701392240717023873743511017502995795560094971656510019405789839980695506657618388736645921071927315452706138445911769257112449402416253768825344989295714061912673174556792536490092870915622099309638908080298982537818556064113396329006539467056889590790863249767784344545251233153254137987220982276211794472200465183816255318072432357146906334011017695482307606200278929512985224800530752505943203424260794526310773253340756411533428219683820410686130513947624114523909786016869187582869666128869615592786087407601658248598848334446610602390281544749447043916889568839912605762225563405865911726826167185863653596707178574203590315332605509707230298450440640010367411821385171786625762279335768625215217883549515871772252611049531036372805068152024301519821048419636170917678021118274129950187405920544499704205528915121253863160393270922079799793005158837512467626568188282548280600107371603410178749590149989933903276581978839553336969501172795192386541256655215326806491627296599342272451343251104553066074955802632949065188546791450410416456056450496704463953083607000197779879067832736911465522734375883555420367959061955120305456293081016348337560207936952007792162623788586946598025078290789761215394532898008978105602746308724581594611390540640009454211962624975489054507821706911933388415724809376300581893836377785747880374184634828135708160507441672283565324144389742827176507669541810087967686655706670777328230204114097313116375436601562944495592680077765538252522598959193538045654644340446176562931163115726811715128686152415826579177904561349649609495530105369536569688370531597646176413647721817787830647480273439484302414212819651735554551472131033505428945511473976239352461768491266697603617128361522529463147357014962309617601465670791454525706929793216555861059847628157780782840797124652857806029916487526048427399931784191358520595659922732489284898167498872133772061055169164677149373506774674471387207391586087779971273676440421185814321875907386644730465991177434762331196213764300462891899189203016467595329198620429333556245824993406054506165902058026767794178196195104494980244924775054270034302286764207943324798133507492478052998172736133853284827950923920776175171295398005501662750717844934792730391850592111081165697849572706461392622559803562945050995552570525486657169730980111296288722069291126810827005022292628033834295344159496346316717640425472454828317955692891314379768148493891900294712496417493519338306167152908799691929633187720477103752809223844588995666287355797227263632222425337436478854127882477804235687894043812320804203335106259631022188737897270080552730400776864551460344514657547948548418340663486364014307746353660639946364626870206930245719197842855749450668566906197057638695292578722241523138265576075199583687233233186477052364366035338285803903430224811105123633256005910708729697476292780928364739255037278713630421441056165875087298926781209750016063392672866990308168753042400915340563862382214769517474864376395734273221614048836813634854297063218594933922323604050804348923052504167474109451815261594405785585085239187804926697482910379386503309402113516294361271525031032726690355512011289370592132134324922999453260570567017373516850531224451325845186805716498511367462952645779877298879946957324783526092973673860898007492669822881852250546860460948515714215101492884536846276440613474297528864444958871256563310601905846952333486682967094953237175198860293183616065358821570773842801842228648492646925788344982134117337149274308193763164831095676021141864017161517082191910784521588734814690855638195172236160165951227606349670889043173356019666436665289749329544741596168556343048429302269895656552035001744052926182261827599977908477193744354583927991657068381196798875003316017476708209640098483893969264075406030076317904390848457950942629816836469605834166364527917885118917424342799722081610604999263888030136164119165105769766909612243975720991626100044458411023780020781177134826036384195196504245457193495829023617815839152586916101852038474436098019805499213592825664990561657756653297825304058227382559494607411445465882254367334460898102903339325675246069779477036270398720977846501037547127683192905754526084099338708353569409742789892573295545417781675276423498513033078295815230808920653843438147256714992060265819676814483102429870222440832831844136235332912560915790773197878301846942842760552216947624611313890414835353059826774708254846820081979070243136922652133216476282869937089909571593884162200341603749462008653501139530807229317903270142999051939726736317253728365034107558975423376310225283653312200118599603584347032817018934532609591255785723882860067268255359061432963568262536139629864290104981572433511919416990311199326902827650489344558260809559720759419729915360124332995125565930167770307834938225147937000100009955565690078078381524050184410294899414490406336479983930843713583625555439879103015700552860914049955296800962116134844454475489498195217066617044567851901441998034927307876894690917846541958986496379959374074462945085448656696873361925818527517082919928779730687024286267968601650413816292368476950668479883536331967755899774688684899012292623682477679292064571065847955350355492119350334647824484265242592026502320294274958111189745530578355039725700911796252305689191151990389329604326527638699414138490364389383853747356685087522979196618508218440597223270193975391393120552587034698545484525032000090316605203189929945238078751147357262580104918865751408641609807116740127340523755044952718327740478021971250486636165611995736457401329233022831502710423513251936305510062907716927037979206640616885292834248606146399662661942978344677770578770889584285803208786686374693930345118154486779520883403889982296878954770964461062013040707924496924532421296758719373863593992635989187053767919289457227382984501446248917464576842617756608463844135795149900344137359812851553292676997119312004887710602215703554305865794140882165602123614751325639249662009746113983376370460436702684882144250510430816799071301827009351213658180514156151283144483154152879032265032060216451817762088427065269279518123274290523091198748310155497477264285480517502094374923716624109685750641787359178487432120503402370131958756035082028883203722506272487651072126659142384434988205754384368389342249440880727924648481866345020695829278874472807180259831672236620832957944872994868525649321043452085618868561775068800461133592149419945063004907691046597824244586613262632757748746686713040832869119294569860459097596964907173393460873250264514155095918575429951427263264327833144194424593734401787295206905937932844403071117899282056387997850073534219000534665467024922152319018355598784761248169835686593673860559418858778571034667902734533752064360794027949511687884724243727269676545219562963723652243300810172704231885048327819087468222531467945585878119765962258144166021043754601171174404575401517267389897405638179144877673185201838629734891209161729015894170269430648996545957766470066765437463492991433688401914046683724725933539532629372602494413578045928814872226056780662471559663625560881390213067500267073549175765054198498700125057092749939745977799234094708308956720730368948874755640547775841672474945975818912029116380156379130461618938550175132944843339135654443750953331756377697518694254854139794524639075843812313011783522569744245172521795953488864423165064286461126181050916706022956370464678402830558662372174052061213009462296603845089362909692900505243665583824932028223620275563417417956986537076437365256672302118841573068925299958836831569938389209553117421789479398609742318149005220811081330646038716405520831107614282399483919050303940359825671659666005326702192036784907097362373312295553663751648857161128841941706029289031120120349751993842800016352984333635249008221839940696549106042458905216987628240689930102194078552175760728924720946347079572481033649138517884111879717583862317376718116863825332694537614304093743018445679279401477706696427698437837338105726296438720761061222132611648455355964659172729318041650528307975929237510672283050329026052311950354851871187846399305054958830420469776607160471060256817602373377486375511458995578209979675079784012100585610665244494883470604604378972219179200817605331773527266176899576051876585952935890899586311630287136018077321510922823767991602252929922123380620409418999625392594515847605201485951280221218563622540534828707932952050441643384968318805891336590543407194459687216736510934825450716612895409276227055128342149911450236405806022421064168873749555228717442603383212267331038474633093552080285994170176303864517510205188115798200565719328782819858309892463834460722296744109568401132804557636454829112894612811931420295274351165576105598322822747362564992137658937361330958812555580000484858670702905711785908939843171025120632454186068944536866484719982449976928707297997821548807685174300306389550277032011370510970871387897373770570552789359037895839068572455920318093945998055985756761097184004383859804608627012881905916663879581439170300133623233147915534003742059674015501477293464008044315786840511597172900358548136730107307385538019617000174798282287503857319194633598010952274868026056957395029828947139908473221198992282801298000253000296811837350820275069526641420199947389567438518445952885939492736240025584837222195800774121114005518269384958812345993541489317512630851913978691505758798485960423946186234949950257155445781859178376775753034362643602575767646925812003526028172550276318486364267886658076952424661862902823304999348812350190763202992611503070632540051917548554540877423845354497938115960879763910274813029253098450254202229781978823896628093943868644120182788811374557176493118829865400755978800780454836535958879764837541343996490918877043905469846322112100954499033054097356711384021067224994478347053384631508472688482143544380308238061043585471095477360029924532043507789983103393058951157629728441514787862726270722816647554956551117775285475525067378824060889038339965184329308261512047587397368184675764668731362758842847642089541800739700164364297189188348490447017615106180120735640380980195447876636185588939777459339588285438350167236349356887166240971162553185232028257656515152622789319694888403357883556178966267238580479757555311350608264069474443697184415680593062915112693364446204939862185465874170652449847250383343152357700792256763047660093850160238239834219239240678202768742489964089414497517190168861212016898348508578762924670870552820572615846498886111921331866971054497909219303046881799003531050966490729155132516716492695532810493906243493101235992534944811652281485062853174186643623922420783763354926144944541716195112619832305427209647375269752565391045412258136701780235750189486316467823606274595698397962405791560874427011403448111377981300825412892731443929873674119550798902619100186763601145209578500736949484866969796155772086091010405088948884999435691876426519315784063479517294106335445282669350825869924856436548285045866607979600702737015209675706415795637936990954828785016642676587504109230778888421128759759166075964212349709826583229456104863710382542646984816734379286949165905523718971367888357280289562933281266336073015743946464406537297099593325748954810475176295010038275349763135671030987625420915971938961347932586573869318158828332936747831269309857522419013218565697076330989720379595460563048745443268434143989659413177258821784579801398115498600837408738910900391978049245238276043354733144864031351630007467007310211091448999028232777161993772679112093388356977648382295929966588854808968780997089284624742648028235465629435351299619480977733704464619279199349742174035203528424534342735075453541994150945473672543587943174963441863815779507747923970691749206017894844435625529914456684347587722344111733228516424916793050654800846046269100370227189775576860207422556032411284684714162593248974730446060569416759806445223116615409710278146710291493452621147938876595002348751873449840121903490928234506016000403535300901258177974624165127602003195390637607369177469923835008295826930025333316539926413331151813710084242859198119763978661028470698765631412384413745333994502304078987392453421914170922088659875168484461915605559769422552974646475720359231883122315209480663357800110277670539669333569792019991582740975468410518970311839493564945961145936795771724635648823525690368976119066096629857112764538056187135146728897916860357764586999752127809145039260756500347380489075787511920004965351660261296030592853436055729228382035244624288488000341350631743034470086213949212415611448638231105975183991047906294254826688401513020916279549400980486405873711708136977966007761931018219944343653628848185431287904931569690488255659422623712323998626591190336746366422402996657359377193763979363791794185942543753762107422642053150968026198625204485173457723055234607801703196698966511326569265364697374512600624298304460770739872982012248791457832037356225394113710679394705815908615727237852386049860743402760828816144239904447745722570306567752077880917763577160527957848250792845648475491750955695719155934567666049697655552379698621507985815410484817819843456392799750472276265370609944616406184610275591190058746656120357897068991254845412642146038842367281528379503819230482333377518759543725704005666922642088213184556910894768980058609141167823174852782741291343363238311123734841930798051294028255126383381829411780520726867130631642599933948596895768586375408921379698337650084448829023006963811846255418005085307363428198630841045692563477569984915385275202273422669543707550911169128347224314985467961383686287458914076372548178841604547304317714248742371044477562126685173398499425621200161785624861188784820814435080039624893749774792194793750809747835435320715738144891589875759431935198378753788929531688100870653485955773764630482790883086571754313984381115447762227798070038346913810176241945079497417085436662239714181109326817874119540586608573339857593466698769638665491536825424248182203812434833175989676867950166515154058292615352532100633913354806050700908485040078571735091590358299238810854706797920827892456237315974777943994515461889170423184901212458008057575370533899737841680207633315892257522867938549867020844359288358095047918901294481206334013919492638266096931335059239903340987608216227978008300530532562967913087789511275177633829897997796391152792944637984243547037871243875063071470448454384754172988762133749060649926898048125714821364596012937708350432290089775871935414513948295814856346217638005558577306536889346871133824567765230350781423662220054108234465919750888230067717670146022154625698426086230311213173319143838833098393016221196834327811710090665088261257528019777995647895968139421974938258972161805098798100519558863269472795159299178002376789308077592121899291185676856493910821682659749855941573328314415733268048661233662943650739700649200382448205086621725183532227555617381204579924089656164812248655247373923852076738586981214218274455525903306442768066445662231994377719353090038882131546260804701067985246322008921642942991169726487914526626655699593981641530019140538935132181440577241406204978998066703052376424469278173444044533249131852369859226788187115592919976769685629348299116183389223222943320715383358511722557341238233250868972613900134347597984478652946447203666777645405544032617713604872132384414696832181418396685447409896408035396204567479760914952647501463989840439528787045679635017997731891886286449264303402011070945010473957261329008458591857020520691671717994786943036812839718226506702695867903692904363766051127862169481659217820925846753624000664504753992145523998575591507947711238725497763336353987645265402391516066740998605391040407937985936516720699314370468520086343325461986685579087858088350308354342187178393171343540996746803574203443220481713619154729001478874492397615447476066285035703074162219202907268855390713300406386010671807557172192931705402791063257638965294435972187040381699601834741926136178142017576397016542068058169577435861928734941699225974996068065469858647829116587056455389415994251633626850959696877428201452286137873801145946142968639003791505773602792583215807148080922314224853628674377330905212252168208931553532475618858197908533246042758104225738797369420604152029970071868035627055952261527737315427320905969763434659331432836315902122633318679364923296473257811050108200099843933649291079260867523393304707794649573925625508335533731220255385526421257124264433380193422290042619396030351436159440457384648641740999076186695940198733543820061853933769655053558533385094899073312847679510471517814386925637198589479079123285230064683768639086651329130753037126783009238793463416662770913210747538898598312086181200757435025135970051632910969521768117866817364644763062326792457419836009529870460692767680979822279438644571426580907193583087685655528103629380586878674750495150958070247555590023950542398232153421015765614897067930508937641569754571033079013939517705581475307483146413817702455714957914758559369247445242870914411276114679246952720536765750654558854856698257770545119960117771573385776992531855209382482045437713393846916563978474354847212737014959386753027096699213597462608061539159930119353197068406729004116305861118555608430784312165216382691408501859563290694774140983111893330777199261027563889437806044468383686839205332923181059494494533159724521310364408905533773232080339460265937045031308202425549831239289036611925291130216694344356156217853033683710343643284161979537153024862855211348710962680129491335794270549658304558665986482814454367650498900319506902534425794279587087202024741387556910684757112852942896421669850605208120931498079298840497746735402357194167495369138200563398781730347889852850636260935918113304314156049836623154878247227059801160060327071719358479188808515962430409650148484872210823587457399268177373947181866249177416307413635466039004314754726223868927268336275958555626680217542730132461499926092502129876111024920793510761678036485113298027106349126088812779059734458503837383316049186547585214984995812125649763213872465661950314733942015297021372116639090586003975020834273944806344675201261123123269895949226614984085797512256519079744584541916983349673175522541993905155857753472750799780611541814136906007352429728838619219510233018017082282533614544541505489354093377601277393866849164843801533607553519064985466772227983565207799231837970442504098567306413888218543829961263949699505643371705371644248839442134897108800604826389562904751731787472583740570259696531260637612744161875629743660363760505112820043524619742657918487978516723251786785253729695491166943381104736464811651965516236740353702204528204911150743060074204008801436262789231222087263381024084927296220254621033747786962587114635252374606570407793634469268437321597467006540555214073292644472352123980735206813957007446365881777337805384959605698750000045234654513983526328965272174263750567156176715886555866269770321812557707870017422494448679620108742874964475492809653619672733627155983737187378485296479203018018972331264179854981484843376232284281348655153633182529487189108765636548412820885724902280517972205302821638670925496148375402008547579797287462938733105229001527013005468262483125664114711903243326664893417736195030223811486256990569021899883101666153196178746532768369568018330056248542802213259026420281030644060008339616370838222643052614417937146550713557694368269816253221939899621436749087855659578817136623983677406954319096860443438327064724259469120866402529332001468363305763822063022169817393825279015268945374101684225309549603063772063017310281903729783512176234396321958860581143034605209797531431339961111171982703164471884554337879412548084382821707211465333838946124442407138671152403078281863858639543429607522970407867104741331470733223165908202849647213221253723469781269954486260056460829560088291806013392008691978525284908494844673175690595960028589895788411333512927195014296604933800619565685715151629011674255755978019485352929852525487311478275435299944957138656407345007047442276351422871237023439600875563923337611911005794697707609757744232444125258168263305126328181372709641020130089785665790609828693988178343950433292696564017864328537204281234082930701142070532440281262673880728587473057432575486134629416384241569238798316407812680197604964936093106149647518114326582037060991111633025482198295724452269442397584059256263813561978255149661600929931415523977150196031867508514644130566011403037899196423686436122737383245982737515721597747606018152884542719370277797013318402438136580349453501226505821432831495163559101549355108286720972650505843996319925390791681518703591460675100091395573993381869595872308740100030175293388422944109878272764690638654891649176118853705539176426707764724511777125877824423930907318405055148065218153122695275285255722041411874401019734560240456992214758724343293837357520659072353517589151642342872565001115180777226012339533477686045935418748445021454506701610594545952897155280350763855982238214686439793337629230766052309608050406306252843356608665998888622899164467829923607993292244824253731019050334995118582092457528620854125752511450122461717069828361418268816565509290212066477318478811312968846119460515494632896758632037087998594232458788097793825496898601654023730958159288577465684972206418014259810913842985065369434346768406775188949093930673937142669741950875330576339699458171506264093572301984827666096700347428875348613598596694426769020120606519515465900654151824626861153935231668296574219910671309026550173288755036462128709878632356175921097943716919322827437770902840271630387651818168991339586713822504348129611791970892948627253443254904905383768389110176426859359109950527204038870915688918719194946198237892632096952181243585622195052348831249463176048857882686592995809684820467185350426583314055949683534465950496418158007608531774670505069160615427558402019198346740447769778334204170179477259090994702918185476139382484753111128666693405046354227542832277504628729488902309179251206589668629693745496789937315811965100445808441594457177432687501351396264155340458291664941971269982423278261881601505998549463047314569608829075516962398035395062042545286344093730287004888315513491941680280897584023816694745571969060288875435231856769485630067080355533601117058443071914615946835579974023771466746888524221995002030406947913709745139583300944464696507312272443100510302619090038010219919926812705820962408570522041770761246728654384972166038785181126259599339358189608359763271827622201264936851639034094332052336086737982131157508336412693732813489866886225334004188407603719838837660530148558832114431096402722183020241833696815724534872744831309689853860100335775952758776224360215512398974226269080690740658839727257942349998648259248182409393144747482423541257108306274811584903667614624055416085487942239560762252629123927129666559541609356217974234866021086532448379375106707352970718879111009645858984800765487443222299158913587652808432130273826098541955536998649681986052049498421698276030878305574148408380396877384805802796262324324314653618147431782067874144174490891298971049033626427224714373589901921662050123732153492616641853617616260691166499275513513378922210822658524991508239902559290080084141791607092484665563560554441151028055578056522542056082607116894491382386410963626845109766947837999614865847601158572255185566939720416700404036389764271273539987422858329779287167883561443292543235789822488530786210112109112643513246801673685529273208686191055771926279411628867572360790839412020601076598527942844963158198852550136804591588156922717941575394384463619565565045849011026546929914655148358836385964133867786140870504300743346949044182745870533406561561297222189160811630093530806137332828209516309768359716361438731408670864920832398733981189174983439002689210641308759399307691585128500637676266573751612325037612205458589272679469380170484917821921017148564877529062912393459023037317184862725909507037484871103227272575253754812127631593984187325095345830390427930716343018577900632121571985708736205390939548846638634609818967562653038281996104818731864078876207835732647335893118985439947909262093357410202145496245476110308433677944727821971747181665467753617834745864173195619678756693379447712344294243525141491681628121910093781908946756137807346126198708142327148737925457128840825276664011761388222845482999915591437499386818395202088201534978802941085265173401727612398782301955016959760484045728065254952058747998984270364185534816091524801458358758308349159958693790890834641188167197528472993977594588386213421196427272407011571103399367660310083036589200237778614853113141356333054818544834512348708117213855600476418752246218739361084035500530686063569810825297505845816148999200790785426561332498669534130699185380873624163441419446568353690508396879174716385552978562059452743018611943270227341678253603028461779026228839283585353602643270457068825931930951162251713206120976974189674458010898763026190177627499032606190119176644426697638933085325200797088927682025362993232815154437755008443603525560417511259804124361976760007562767262625123071930592872097602370768719911117472999608862298441312539112954025578032911728726560487646647077410787465467227549575305223055246311239324245283381133816579503017809291256456201576330575225543553745566096708466436986400554622825947438844193414311995099718835002235173046785982883678174050792622064210495907122577418596647887513296164990861845792077345931577825575974077075646797640348953666441217846113002045567229703210659523324501887816050412238144516645069983273570491370827329077790646428510388895428277354646594575657670475407265942529508311516169187454625345991325970100177175218675613959122496963271625804041630004117843350693853010283755485866692163224089098106790400550048354109791191726230762786499456255289243648810829393769712528049864688183635825377772728059975737340007000090396933171893231466375519926557133090869089259381170435461731421773597173857960393902411801365410953065187428728155248649402178955027746799778008927722940402779163621129350252477428535061048053501282804020053690572755187998990549427199501053585962302066623394831218275246702784391232553639360183689752412367950862158543210050976087128764147104632027636063620821843038011323187728824827574443101347000014671015917416404475904154858959767488543410099525561228873350894507012090286363348431938453697402411059476604438335536156085072705800815467660671994719345836215530703681567988931732027818129686757715570773681907803476395816355077985579082685717649502520954812707642074641972717166033085550643483199298894473502087092643574440790373953679954519484612881614607294496327444757120788140161326980008058572372449080438370198814998799353993200332053867965766952403720535274589279452224622028876808853421261673957130132081092658570629107236234564677854364432251798144549504007141897321989277931398475536816918679811335020087886967012259726697181358003045110248140622931376864514773529312301095204945338965959593301619795705952681273508532584736065139023088347224959923899923609187933248429770851877822835766090368116326019675196840740353521209329406910436055057553938324600651068174688418258268838076807249386838783667521306919358775714746018211241489347561073615168728945940477343960305585056743013734910059483222272842162502780769394480923316190305419966986906390706048508624917527702025126915594929428104040159566961484604414829005211404982031980851997297155696459795392397669261436685504316035249227061168893156810872211040183842252801970368162582450594530808796032970520345557793260411066528028082036076131696524887596220666255962039710282582111960094611071161629339999145371396948562660640067691609408982727606035392626324370414186136704391065052139785933825515214747006710928325624928922501496181543908393210473454717227267239854312745113126150054153722326776179989593165926185556570972032439700050543507123126904107058248452557872569072259486581905207517441781497954851649298240809359076745937111773120281415709529006487177304223292234005621213606589547562408378198640642125140126537580246415275432283448283304506026051503481046111594352426134191828671140695759546722602483779118169105016653909264462327628433513209497361785920221994042371430794128327817823639987627564926444445685650627313369882883455860357926278591445431059925069109453132024081846032200400412718792450147568800253965131846357754817246722131146409539193791478327433448655687336305362036596628900086668943936712899010453226006097525613875546715112585431980977450690474999026195137505490256235182253004024353151718652764222911491810379330584358073648904853214696181674838738799919257013679738940760394245909461896420507919700689939430900786597244608092673543579947642060746095605773587946537746425380804837822518984005285178689871205573194038029938697373942246402246720875959295122856577209728541018297685497408779191611594563119435366385977270170393614839412878439607324734243217599799681164030701759746967526250823874960635655893440713714217462260009344259808420185530385409028991592393481962959175370038900724468581144106864741226961679792475189999984699359547274404730295715394842686350651003715617908148840329868847970520806752724393004513038514803227507819267382260538772294501271854925081529500803716522802506964832966977575375451468320543899971943971786769296375704516706808269226863368009302537055219436760547536723764603980983862391098225245855466550786532124855468597031853731629189746693413914132383481661156543201739232156446715601309857348199995547614810762250153120383674961472777142697757447873982365208409322864128927016111694458833906765083964962854869893735148663677393021615363796498933154930443380565351738650290893125826154847949690370617556006267633545973114275313896319996899971827163866504493327245701398818416763827651997643037317807312475503225884657421857023062979424509175127491427978385178971750332619098707296518635161560607314365383948650723067824482361664603995717590631209605884313998557038515552111138055981317015368402309243127224084435532011973013021332887423635496503196808417966036860178363725678195869461062332540251054634433057149791896353054946358323589035171321118636884787776182861607400336442322341304535333152882120502443739445835136541388886400326380418166258100978014398651701069429869282945963150416773532851534526140137318717327795174545813286521176807451615555246288631304294744486924251766362096675429523810379826305594594666128299436593443902459762208787949827709593759829182528746060570585014391307664344300466926056322748867056986748638041900521490806813539105209960322087649609608177410081930130911739601952053419331380419504107352601818817561636557810062020611477366923045187555651452982061077472898599207600868253634580615219865917625940763804976048212845530627596524486837043277557176101053896200495990543118410912868581485563457779676065373148848963001434266996482395944193093037573554862331859660382246509674187459754547967361094788383014786883643269605259412521153453163336875204810602293013944688244509443364736564593470231863999794853227384822319173372065278899712331296668262109004542345239219975079252610094048869992703784592361082392942818031054329799962359808797222548807756529098707994834134809415983880475214229764355433797307903465910170627352687037301700222156945615969524154348790951524580649902627434270989736511569976035455170117844684852832624716439880611767693449161662191467693100053480926970027813847567610323837336028278451260757098585310805799626998111358090003405897679423614123008281912239132970776516316214544182229197055211635464725211977715288886183564341903450465346079883596504048277425665491162769378360814564330686209409545766581515965440452110832364624694515771565767013501574031685002470247892069163499996902564408038882550060415585200169860749356234277079170547292096740920269362357116853962476516658367900134083580039406493021644274198553709405111573407295237516401512556619868809912140509002353945379708839364075054841754904849785297563897580167345114275820774712064753388671052698739719780588571370546858661911520422203691911077385809379811486154334876342979008273251501762864800863713688943861979889910540821776530593885511316189423478157260842757312202372117603251306476113836656901179425231641398593385508684761879390546696566181649727625252550822595629241959921302831909983639285219314559118896058449409320156746207467215652230940067724791129476551169438952285944386075248882017763045648325661020366927473390625917584633120106915824735264176904102652907727545575320337440832149652156052435505687289477641533932276508323658548191626312138771520242155197134605729986137942049600301751137431616103397545019193534882696627797501398907312461445281716647855047462491553990903420403338857082854069862025244915676494976007609858340038391447174021522243745311745320433856724922360381025862984754097147213038018167457005843810745814088670230750402075612902958120994760713277111956901517072183236886895942367791925310655606135935388184061369620482940664015198833159827993526702727666207191737134562577546482171784409170179565054807802117572678492085864914372585290964488016415643981055487658295569996279395315851334877337108804600605481134739397828323809376216362592456369582587032118712017693949989851855914671750520798062279668964471725512694019338093507635766912072573901021482468258773063303013696077013533618200549999758592298185084846319206628347886385517869319139883521444871116799381507765099313906935764686631783330046105834475164374679141666016559189580761780195242675796645911254484050653500451515657645508260076926436103546207073793974888307083076966991150882422930490234975652528852031384041428991853493636097641873373468264735992282460311071242055836966481336285056471552826815673989424119859626402012160295494058684918115413445214979753492352973793389965393563569372004765938420300603518308276231508401806824930391721753167864946913649081020618784664643914188575020100458907989868126944271974117169130180381236585026287985085437226239461820233210360713494317957167676220521555052355436591704339270190704780542717080971795687672086093184076054136224196790727695084510081589979647993772997773552616974126931130733945876014423245229874688432048214775372641923418210557139743540409270948426464228832898407550051593606108949086714437807682887554367119877943534688647880336300526907432061751332508445855479741934494876506877363940971997886496040453588170497594590575740780975966072709793196421906067124674431120602762936947498908484550649657072975163504540732424757216218675687684906126655723524266252247465013960936332762328216381453706879791555568218171691095641973952782935710509863687802535379102605010832758938654334699767576100064215437279339899115469874517598286152369909600472833481832134591987164622899984495651095815487506438112954654613257865257007605075067117704299007448952637957631376300273169133677280304658323109671673671036349692316854417237787877364563297912571614574409530520264745717928698564694823001324027984394169208017836192105329763388822204090451448562040839107592862436591208149624896843106605459891692999654360545809550437709014964903666754480106232653982705655382936974475258347482336828614215544901633986270365947430458647652306202908981689399486649128578798820897096914362483875299465117761133703497197550409627579140273082112510822179960247611256155441057703758447085572920579336192730371726964552639426559880765073776077697536433749407221774291298686323888190690186435772839818487533059687502306953264617271855613892993529547049362384785900781742283924581815420790996497871391925839491460258352414313248168206978849682837689580352415806493396149056588233295146581470906508346311678591343382375749225525720792310151769476417858421235976882772500357701412825422446321451318995936548228683895469038631317907328385031738869256875243324237133857689092445205454457016317721735061386380941360702950108184541642811764083104633632872112806305560835336487149250206345273798505579035005674955851107544045750593479162137083068550394556689243199584169730325213535702462571999621695370816894950989621772890271061874884986159304333016497737012738759430398568984101294011536634546712906352365992942478586947093119578687870142047441674605064693531437764394571878387449269240169863784649184546744628663805418929858253630575883058086224038027719092354746130890309242673119492307260090064785239278986200915798102321721663487251919893670727174085762895486857483418865310704462824301940596670731697532983505402152646094143239373122643691736261766202326129235607139062992297109899415878751702416774340365906067654082367230220344570570854473689181059354429993963369577109077506420155844393437664756354876809846569621499398184500781511220610958678649230104658834473104489325355346208872575926339762474141722512963704258261933764320563054861941801835568912504645344109646895636059988208221799979383562278182513326421275467606080636915190358104176240500440472118815458056187954141101979594860652813005972288697934032690730592067630067899077361116435182045389040748731256869792318312628333606904882708454548879215977048358387824468559185887987817482003340301357609169810812816098468285612068697985022651342774533875365637852272751533947485247011911670631601090381807504086657192812529456060705518257244778116619365896059497644862848627082983892107473975424773280495735957105276699591836751183575027256279400513660592240703003699066141959627973102942478541380300148640158305630079604699376075853535160265643522895816230118171744791223202095847040015560859519040111162704595687201031460644099920333893741466301102623794014146798019490600904376806749679618353253447051973284436617242673080749039792279194834368486945306712531910863667634145684644575964115794684134866143727543368799419225582222621430934742222567097858999280984519432634980449116976342014072745563266485732066817882611642833777086376791087285656995378121187144205716927765922401756027270002225900477697687224185903673945359380345821110561419967067844918991257938308227880614090500744821480822395906042506061249048036724849999686911755480665174998285427558911195905956326219200156077742022826973269244212298792339899521371228869255786165796874976855179353079629804774563336021525971695486130572902314729847465676463248427156727941622090167842433826589198900388554807803485927365253998723351380590966255159404123356661200130465196987865820369526366585843416366291009993988030075892058608775694225811374881831803335630282645450791185016585628644531691399784748062007026749991759588148451137965951770976029015788926840024713727431283010950472403426364526615793781012787166394180193086295392838547155199003864731788184742334353496077578921200146268077001956057481477762143485988256551828696521114822828780819960713538649703985316759783925804453857695176397644065118308717598258921885679472199257308772303289776097268345607066008445155145367852525845718813382060251896432995651369864754871451016921580725406749947943309158603279565956715238375194351632811565932615050247065435639185903753428110949951546573440132994606045517732767681648993918681980694862959963333843015181289141922834961452849692715429510253811216935938520183767054841075026639885874477114244487277587472455058652778536475177731562456802935827516709624667622763922913975276060196725625909576976991513247320431383193178109997813396466326937301078589786454580496344816279354790729375067063635326838184553255711907511634829442768377828155773339207849437500707408272535559152705827106082883704926016178664011306119445458618030873888388820796261858131923164991024036629597410950382315915948158571081041759931134518524490367203136283968608257481602950302631425861614860167436831657639517188108446836484024111359341388499432750732709287452004931525768743491254435872656135955244200766697759868594616900890381730150476313286290167941293989941119737109279882592647106149484605461015520784524290692846325326086692454573735444473937804662845805526949719299411299198070215210917826218300757647366933195657288552275298705137016304748827933657965265026584575710662920587177807475426087951909078947943699575353484495124180346058520404077160272061293355466199803800267615193015781763369308756164486488618726506614062266438023157726607039682148796398853150641138269452832693173287799469093122097075992050659077502314482539074026802142948895224683774260597032536456372482674087181546903061042903222129150795779248013631080237941346318520765975915809006943664884108406439510553533100751581639838039337828034774786702579955838544456939742576142179622874144585093766879862841833110027441413807919912398574537503668135509392908057399427917743737420578743479548204814860129840266434539083240718705136913874259651965222832396523847079703014884666111021559344152353855412767148943448371231747933399768092718351024794318389077138664362902543122895397812917804811067223716067131697048291868180675293895057732392985131736767902351601764887414970480814451443065475266425379693756842571990717519705464309727001404382642441856828734011459592752128501946733103572745795110453022955676193266400043838911416880073759589663050711409726528433331093187747185826960202630606895474889073959010299377437971518636741768196098637125654886768087246929437378135195991223986390528163534275638337612822198069539182117519040892917589339910881376134406840769737826807366487884733867168394652290998292797804348815955276259641216227177378565906481308851135673410991252097809707190635396578493382112051184452103235546779350430881497907034056032965369554603180988352610718547862998668625662800146058091458216176539689550749908736120651276120940549503848427879707422650416451777192200233118867016255789271857112442626798302818784973026429789588242849350936029309958868478304021387283787717073974444416345217891642039802211295398138238501525987017910370622638299060226722264681119696572641247000396981158173497888523972678973550331151234946541319969403727803210193192019716542470746322847158918535674962814012603224345325161681493910522924117027389594500790551583116793797133772703281752890323806571515734946257028541665932011819225609988325438591019733742471374435467470020235027865294235307351343461859455170254161349979469385281220255075848500271771592802813663852041116363943106788862331281154592674585645350594206541693300457577716143776273145223191788733409091733951057998049903727449965577636791620487514922629777474603817027668212434950114136296479889774731678690127742109265666439512832098175170901352119691725571259042226223199977305698506593982034983514215016497817172354645332584545889038447691845251109274168351684080306952338162850918983744101676430392907826673140750355570108134561174880331681862088676778401320025597905907127137738685353889540469769472390740285041469224774054917110726877915023249663005207785680935979990046495823819588188544942471393109178526478613964648073739632418598241988063784043060244274257659002631699749496727034610998914885944821880939535317847056215917890063663709937133195860445482638877896286297086053641110045851461800321561102390087356899776017045986474845002687506872161601077334401464116145153768525185975643841247244743135387282099569389374442731308292255255799955333843752240839378806364307733564325063660369254030196618553960780039290398853146498715523383437524283349042932290292660620356651758998165132295875893665823954743698910392192549414200354457896120328295244941896073856713717611700231998448418473170356167909248788468312770307522237569709308860156180374363841421803968779040935827013156936408783387842230471511224960099512571109791209842616503400143580897943557782052980216538950314140321063923043978156389766718121527959095377848835179248724972856127999762907533994476504018390392477313976239052971641113522616247010953874789422418062414691246089008576198368331230400731133809232348620079762634521579151579232183078545136404905978968976324948680033520993454695974004446741316913921358043557277449299031885843649301030205688925475592936666224900729919836016823656711133726730111925633287368645359425921495775326115763949386838177907954815882905334581613491040039604570736964114804778652505612384838749804294921339956524874751885483593254952241539463879913581877789979041099964194199635639065138485629660315608234037566483142766866048378547031853149797752428124127826549436918980674838595126642810692263671527302398226323368643436385417624874450088276987903388897971337620496786409274287362706189485750908521220455279982819573867257183317861721346821450388963631539196373308561471366431016182584123988197615166973708264294335165536709658655807446444296305654629127835411283415291443052680412968132818051371877492764949120925683662188152547661315371466550269023892836997431414583731894642935718339246403040130702819125367835635018697159697897253988857633637659998009598926562988200395360205109074003210414182169791198156155782831963431407405379993984260618602605041512509510434725510573405395970915115769072163190084636160950139690927396155023881676688289225998048003614751970024771238953393149813898839443235652264216470991813946570988806950988494204585225436850512749425320853474617458620678404540510954855696136177243554037362491728358760026827633488184091689896471231439506424523443003009060229097277614395479280769011595130663368965416830728927430658707500653581054884421109084346170653996562335395190294450184441417571631851417771567034185883576602074109423904820382356241122416105445657522922322825209015792371539940396316564022432725378981330379090170355611903422457925267577508625073172229483048489443613827999595428219703448650190881015263414356621927149029760273113811509064008208270261266604640318221719677341914637059765388386635181825480320487768361114042960759181686969327642371761422370053621257512929540673685740116579344762599230261325743927291324412442235304036080965904607579850771145277249435740500942246300320444824866708310238162445932855610299648103001419631916166588441690577663835287631474592638363124798610369442726342959674410559820577612516713498363890607297240708220326223448954646669164347625663593893644198886711419617223448346424397528770911957222490637527013606391582845840025655228479498931677101989781749875868373648804735446397044800449772609349763994539526195120818115296498941543474969869402016638595085464377011737126395955818417570929183861470888089178289031856682048208222889856271416217511229411690849605193716078253273612574919918528910982412604088759535728404734106212426419172481786454025760642536193097936730290099424379163875118012976055833431130709249581248245657703852529837814983943066629071114734548294159930517156736112017646268684459705757771869705763954160535860120758250141003078418366074535316989673666763995829229933250190871094215506838169347392706644318418188393712893801712761652421119012887231627800995653704303237423909210462150685376162545784981647645451418226806609101095507615074341196320904297650166017538518662391830477866327842574221373107237224268378594869915172303969033080021322370676475503932968999445749362049718938342105801024780696117427135193034301791825752015277019449443186413079847222722155414596668198038586419456795360827593381586592560064565008149834890738199658866401677948772696985776479008341929849420235077546587148197840951173556862757074669199391448576074510463531143891901698432632372253809399342758463505970028054337919172807184129265332036164995247008630248720215909039799882465496028711958911961678639612784944871801883586670793688183351741653825426743630378584457913240495214557648583424846871790779436892495853799671989643082517478278307118285223671846448887941521619013263376599697481666409784148706077730084092061735277500777563731957696348395190077451611755524418862209235602563730551824515127804981445234607055070655853420795707167299593127760856716189566364299443955256943328381923255997403860765850183951133614307964969863921713349964432081892800648345189250655820889180573710790360489856592193917249487126767619670602860211503802861333756234227835763001879154626311956610981208862037945073029980274578588265133407922917927472940166997635226965312939317169361684769338200399127920714979184726445050467565542590328104785289049339541019740728628971102339833610275401012055014870281057101915725586907556855289291575688269963639085854473550466730492842897845255887129993324901905777803564242455039474257103894846047255608917042256192949823071490432929702208466412099293385072599608313937771680272242519975311136837011944641112443136254058031080031967821951360465883227913269518165192617220568012236638504168447922594254928242993859010976372171118381302669626873847155632920283532892786385439552594786567323947941098306562272895860371106525597478262456815760938368885570252600697419672500698504477338360999933828729683124225989299480984268064833864301085162228760147849924575339550392848775834858301227716572899690130157056206889020951041636389217774857883768213511052860023109585925907573137801535661259954850090330475437789610567574853699027785118437581232216886310501902643402308084059358392078420403602651382139629506137427347783574591593669975358372439705285225721526193187577014094090677502875614156310255556816285073543401643973938848335196910190343070199351837876490939486270163686979014057608845047034266002240753331623169449685717477603410524855321919475241167388464555020553849412292077493479461585269929584443342772035810587397943821060131992161450068853143987252472324529026652957101268326538935051424006550338481175538500619206745469160658893777327775285816981383700853115735760617529688704637036015322692007896691854111622470413280607973013729733699709829390888410228939840346676349007372198483967100012559661817825343025694862113132075034213019548064527567225264976265299904047492457645113967676592227378088281588428302724372497765970484484533622090238252017814172751443176135973878258151954953343717103145064124870540064053916540256689571012138209319244855154814280992735300225702342620275174297677832894839393352304996822937351589421631083377093223106152955468811388300585199366005001572927217329038031133423786413296113484476211102406667131495725126726334028130280466938392016413421986205243201240651611368756281669040291256946751713423607732166050304729266248275115418916438705013864846112718854011099137915188290529528126147673892228901595692881348538174487998373978623869666474486781353811630147099532535275058454317996324538471575922499480978987146134030698780606396897980575039837276703114795850708674636738119567441238526466455051214678557010674894354323270105870413575341318157968838323862493949364502722934703559656631589173086456751237962706082579436981509336483836657983288829961870708601931837505445482965693603598396704454211231861699407310463085006822645614226746811659028314529347144736021490548853663949115418287726816285420960099408837287691839061160350907009816327809605767785346709910141424187486072294365217437015728637673184995495756250753513363797033251860863987628518847014644228151277015978883999115255623299647870091549362194479200699055509493134297399875596975185718953717175773021963908058274342911965058132109337251607914010389446776757458118846877299109581786959417309132296273058252262767374595197660235654754710154808861062865090631761044063998398303808316668305901420986434845405018435635581324253633538408296063439015151900261921131734580988500095939149838885598850972914597047017652920587250504985644806047234155948414653560779073429568053357272442605813889185059963128653667207148303823181129953917383850696441620353497934186598454400740759811646043455688568102464271149475186557924197439417192754535993022507677542543320904376012808671489340039372809461221834074415612609255997256599714528675446354247763418193330058953218293766979947974681004139554598773802213957190119630249212168217414349330090807409720299153614652923113697087312083187651571851986558123121655128933901895421513297024042161638205644179079796750689558297606507801247197254653059339285585835833306566456396534525471623038032451658997733088104239489058039235798560601904022462996004666859939230356982509693364515885797282472685833817424813645957001303897882435368163784834876261242956250935718819807085370556749085982530138259303290298764246366733923057971930814890787260215321354960358349995789431986829547460098554721736151226443984520146833619778058909185120972911470175734043522649569079940476035877027687253875393602304997464432371909832671865088014979632263816515278440750381279472401205059048057924012960359895149376403446380148891900571618413632131066447835210214411313970669451214491135063479622002134680485599349969539287506865218895129654019174196706034607477622345487185052582962953645509318626287802031711906290858557232783030427424224117835984545052820215765611730024709040005666967960302230657818158198021561418654416200252777592227822531331394073230145766623819676058252492685940801021187537745383147745969305923158761177664068263326586633684962657923962547926566960667431653106946550602060842952918045950453922461149812056054012689877651522293284838657046137202178619018081435038932784219419329367672586874591020934982909001774932261817263320145528950839774425735032667628828045998279241650390614147653582688020674621859465917590374904787927565130137618542322751484981794421601996674259521569252666714518305703462925155717213370556184148607169018896165212879715953556133865971196550061809887403808165618509376595673227164698170356070756267225160582952406155458788068028022188678424404054827684415539197619012438460706435142401377110346115942292114135464616183038936962738981385801442499325752235378453204872072565967773850915091660497798763130967331156670959328676866937869901351698534992072514536634825970669960192155694077630594583766664685488593003484083027753469596475250691717529219189464294644797298861921421830174556506843002542582071853128979050657459969705805067903455621107648957663394078954915384662421450526397592691417506993894891041152928961620744689663147100147073616498203097965318552346794636893190987135276952744522650354820583006366086903996541804263003711318625625493486694212448545877970206394635754165854877826668803334658382070342945299779890864407779988411359959349969424809225090840148873643085346474186408799563804461502730500022664792330424905581398477121163881655069386155333456041044347574885947885005655379743968766324430954888585062544790256682274310301730347550264055421375105838434881396283725306705858219055119774748109439892690908631244386341018904828079453345531705748294536485110928367467736545086144304205645931837927564297043880300208351014009823299815832534570002096368081721472861548901637287734033268748541187924234389531699730448537643497668178765893874621812785220157741514102982644256213703074490336046011896855138925943512982027915004911024911937860592391339561545376016738799794807549970793105626251916578921492524850895361968590181583526226134444228450914703688376921807056691599085647960873892037233705154830212277326600348490390515980354312369198774763536675369363322229052664747151156077217281821851302356812817092722121266579180577266065063227968937020824092119839113579910123932151282371303643553961681386810990012452981618275964528365558741042446556149548720524432871527453232926549063707761061314520431729114647788503949248802764596374169942486409664616592702430693859193488477798484096046536902455031468010919650512060260308005085861020086665268475711940277759862357601256475097357310576037569063898450530354921269581703845443651541397560597559151450354796751408096527174853116595679508894247889110205733115111769543562540981524395603675916454515015001242733807006834135096307657812736720702896287017009252738652449122416634949094314706030944872712983435636920827328368063592590262796167871057102312360955739496943580945918890639202260764383319954746120801742963930280837560314207142464370514415613457978615528453520597930755334284909751025873581654664474404993682766706104127540680864612088770237511293807193188451194924420038423293568618841941318322137909568346937281787345075197980249353113619349894030164929544511182258941741835820595783301656145421111055195833926817759452222267067025593504195230401265757915112144243047257828630475700938939140485625358896322898037281526044651818029822204526385387050565353955554932382155547504066327808951167132299374575336147764351859393195652978193810848299704291959832200682669284874045246176488339355364288951612562984802563514320165890250759003927084343471575307569292962087995592274092559132451755633120841156303106898185842098064265389749040489992054545230138041022008870756790722679911124401586532853758046313097298391435119305155149148455304368351459241809594991832308601697287067258627509592358201130958345145446157952490913197394903642642065778670539865840387230445174631654860872664206146001289864952123376386775672274696672218772219565242366683421007265119791915828259993639294133599678878176291999661533713371373802639123481712591164712513694444025111570510316975168844342775355005497067952811636385459798556078866519750582810791493093854204481511774367461440306697245205449428550615081973675419422306415910246367397676616943096381900567198869190767967642218844880941415714053736432955598743971403300322825383607734032368033934795973123311873592497859171010755278807036118175575554020349600956888730569398577941139597346124650586212891293612396907155917624808176954093587756129152285448618664491641734259068658842052550421569607667446911686121234369720839111350493943403946656661187638880757957866678249381689346155784972088540477830909439603763331836059841806398311725530752415334838852887933183972405173672810432499285415250121590790359233186762214178008294036817306817746417464646525286282814421337223602387297696824276270291681778154979017681708336000130460780738575736563771340334190564396072080056190768647694124956540263933156869243943763272568785110626960998406353586937964293714037873005081736124390637122233919864256026947752099895267681012264785471830991074709929485146699500080528298528740809509381339179803143255976378981535679242765409722584004673417369962066487106245489719884691950381641427895000700696835390787810624647196811204713710399967844547836013003138246066478651751968081242555295566941566826144143439768848354645457958373601647171578305332955323351625196041204277864180865677626827428742713908658520749217709947100359709522024689559636085652650887370555856646118305016352895380024160527270096693082784722367403981610744483883776658349423368570844808067681163014507812531156387130669670667757935310460604210878498974426108020288528132633905186510808715478792165327470591540876586227302880247487822620403180776568429101144640231790709812245156484214561126404505234818011696084828689995978882103582367631154415770342499493946913892634389579455328632262043111332166289387415079735232705016515384140054531283777337699232779917977051483945770584101817800608539831926602484327104746064408909069690793247873378012759499456937355798310648611306638293486829883165177213227869914028594847052238822615342348361566644812359902936922538624104005087343843082307203196012991849438880828924679705185141786337104939608734915700077733029193510222399027663871850464969627388805201593124007012509343094833762361315045654875298543699595102947237011479583603699153989784045575479506471458124254902279366602776337743258439557901576526783299173245757500321026556468412142312930925697873150134408210990092220350287215228017320699838134142472784577897868402174895377063392943691004049550679186513082739713648946892951806403368048108421775936843598350061000319988538176073285490150541515608615430395540616984924748108846293477262854494598876965872271862308923034305843940294737921611896979304309648491839734300076754215259593474380342111512782289055068328135426966529601977961373654105965522546811481149990532927603862415259195221045376304818317342591232646460427535868251676454466601140389765704746641347084971102687058789288115950033204417685865792414666979816960797410489388053109115382599960179742766034573811729121537840089180288726936333565242811457770597568730132462733921588468038523558377953973211067990103350646325171054618004208737195941381261514907548368412259054270634576879109138778158192307622014811367037187353469701085730120564661411638472606568673458968867506380079921455504956855121629050564570373257448278126419292981866807291875286728375864459531153273456631316811593669605549119159506108833007666022626911759539325060730513958286278724405232559004006066130877701828820436591727314774907856180438889156753032605651617479550777635921861169787921483884780874348910708383266428981194432299978701264754868035554970942980703684660735032810577657361807898596071413948059774753290048408487035999782243469705152355443820844704031265012727610565474617926137596394238024810036111268844431843245242573740912805035085047072028037395119176946501897574423656381735049769073699403115018685079848440537293534635735646657155749040161527547357534282558389988858268818471908348306839705147346285985954110389137358038619897718089070935552881265730740827103545800889569753327575503165652204492024504309859340471245859275762039373053593519288735254926117628090920707809660500060217776146806388767606591065437400731174908568816750471453844859077924843416106734986739124633892772657538573393258962733117549479471980082421989333427350158961106221482492290409652657080537272303104758889493625397667100802212879297624501338088986205675342246406853212985992984447358023563479442159494571966494392367652617849344483348433029247510867943599916503635246712855323079601970768263338816746151599729286610750238673264801083692822180587800605652985266689953746156027045567078456989962552948635287416319763240827481765621393814018401698296710725075219272098799488865214767063720869749024282939805528784364109645735370485050966045994320779279419223594920154108396357680764142514706532077945154755123175877528506769150116502200372120907334642108226378351876571666015924286191570981649419835714510709385655025035846679017788119252994546311536345412190529258900578775017970905268453414385904165713733714277781375428220718937432274838353756671650829814839706285071691001264141074217861796108288509605686260833513204237558213170029012070505974801159480338642147779835899136444064413489274440937119282322646844333350583129356067149079697450711990569828688635010874680832796272104653188330754233372255643741031057381481205085613452483313836793070687107484670298814281204675336065202186328813104068635659582616440261092696735072142609300309714034663746463813497814071383783312591350371746474428454996593377933807029943633416314324519466726342891266078262997376382098187037961984310273681642591427551277720160833916849981301778774587511119067391685910717489832185967733719079948174969122042777983131442913131777190143705098164945011814402887420759826515480975021528632771390052898882627996999748738100650879401369771747912370743884007267544678767065121460106997924315469854020964553301907241163693687267633879014199748831055728221972222650965330698268674113103299096188444395124623730271842881919897940383543427868872757856743159260460833046434760374110781077423689054560420467255842936195617156328005672793258132891705231385636861830359973879010305337336490595786472516104177958590393968383804784460893734307733772944933232534000717348649805157962469183755081844682474988857991017810275918516665329084066560596501110667964655145369418412659722644335856102870660689462030350775004308231505140526862842053458331872227684985386526543416891869117838941947597773228586168461289205688401884110865275039518761012227820530405379653364764850969646893343056125408627433847060745182462306121661653203898725324621523008675420490574658172725902849227400626735467118256748707104856270882512741651949612699255094407786191150139450004385981390944758623366810709697678167332567365202007510502520616967510602997363372643155543829402760848199275122719327097897136729889876994554071392017948261697771622352095190642335924907202872379084290466550842960384001623905584137069232552364314212282700202906854560753349127789885205112863905619741134030702116122291925003998628254830218512875567145743270618891849138586703739084536976154609942193362021871782184388483362008938636009081300260996402658017522162728767791861807012091932207024946596705617379291103798439559458290168830541030462711099022890636373830507088973630552626294491996006741854431982019157982823079894265536165502483120382957669827369604248572329772684045588514454986906710325239764222212630061779224259976288212213837893312682588852286509784044060526708798213135472596167792189660981138979250009959382262649054408689172890197924572078576944768187440839479037154830860650803092452828837145731525635004460662357846787194166869590299239873551101815481163390099133473731449443247533554952164247059385622403198671100392356354363652564877836138612353888665516370813636712952442973524500988215730354342311040883091936944958299783596732162828005221600661911344597652704865814432700921068418449238844679453072448208377761221665878035196259132115726673154384943696387825875307066881382747510997128128828330727323725357797914508354947162805502161409885486178828494593988008157755325293027967015415708345154991381163924068597963595812201325040786524570418235185452449448663466949850051230156572962725214046857020123770135152829520880124981188602860915526913767953334946703528883098212091178082777753834875199077447557819304753650459174800447626865194105880870257810457643274808642636939870419924157762373101021559032965502671999909009556405971324565663062814299355436079385835180633161930850716678074705975546583365939134428590650323153843199560910102744413066849607087400987928566039499978182244990666344603801449550218979110774400582768468184876629187203236920339829399352135039465940773516581148893918606570828257483405812761306402286799122978888081594433307116803899496485371800509112025733658173542886952926335287551356849699089742096232895385328090784143277249222188563289001663245344587854152240684659950218486322197635850382543362497238084132550789960527953712568332528674402730303223917968532992533228397782253086557563978266711524947354563723657010614009607675565709666169718158999205405386942160740998269386530087165203168748683074298719274432135690200368116073387753116602515163488672455391084809752809210474001164998808529722170648886648726374705059928487161249165206295292665404377106166617794158307446356933738177186221123823651934159495664166014850615989301037683141925741497441792292429927052361259866480015675420227649487556922827232581764163968489908594286408720494537179130704565187856083087195540877388356218682642895955161462552315685368323798412218773115876496797405193599023381982982327033631065709487745823802928734091954548755781725869405354628885844820767470880873271062484362133413533992713343507410490111516315687358496968224775014433992809299346064746915555957292614174302500871475803230840269656717458417682444964160283469594746484175488529941718287676665186732502926784393203851634705809413753587843265585962918097614789894659580947275820522883302938400890519975035515418671159027412070207453161520751204059065239179962506576860534662870406305947439656299349782585022528961607330640762355927244251549245722852701800410653552429075606021555855503802187952484146677013727191171882315376344185650798897810969559138841111277030381577734726448974384509699736871212654596422230293749908000406770906960473342732871293859946855532521921810060213562424896502228572905625315985133949125724518080805108801014950599855831100084917234727914646616491936250513386441255118653460598292647514357507240983732131595597683587483556616929447221613142004418452857975647214933542280223754336552810127366730145218892729835365117915832381315300983013440883930631377138094135511778940135178211196187695089034552295124196361322952449503850232606942256821343907046703868734478307884536805632774624608294662367511571364973558783612698377018659944116948446068821158852530421857304510565678210173185946227645565220821690451592965426536727216112854232867542894262913181912623462060760056698194358760341356340353485326699184986314566886093391079916083590585555195322293676233488245296035374724125187278532354901485371931141986186478488484627308974267383174367647832904284024690026980660956700587360965559127457261191009525553681031912161112897677042366482414366185457562928982736191777070143217520585234470444004259516171692138322317924814814856939709280220060453360097658649263333355881918710932289759237565379915698312511648879082137200651404702420351107442122412273820864623078481944857344858827413606664581636049576400569328725041958790516499708134573055771012745393680725847904837423588327771172122998606827919547800214532761128982033840848043055574383093670993723371893006436138211058259688879618547160648897585540609152390382383135213799292374873883563370863382050345637382494895107601083069604782428049404197654873667668426277676019570833798354910039926673424691806455558992044278202178263128289591835712083605933172750871127270159433740990373088813362460281453277046674751752648490139667554394802055476457736804828922387525063336223938070563626254014214731416752902001420644319709097079204255841014564295308500038340201084034268517394663226633265808506126583859549064502620115092022629520610090177443716560803381371131808852503511354938965195511898828255158704389335751026308064326252813472465460089518821954582496263009838230575755405302712656151588616902944590101605756797494638805099653519535620665599595403027486232437153090955154990031147003494190638308090305495435412892797832628993305991110341719542703209754668056356050545052815974180859699450579079241144764487079410125254770379834082252437593830372199838923027219437298890694398028749730944883373912035253578766050918690150912746092301373726746396826475521914647938343173548422725146102515033395997705045801034554788916908582098927150664071202572710230865098488610632293927115122523005299255961023557131436044552339662005517279019764180167350824329489802482511905503364706698770414419845036812388775641532449284714553628049431403731456156779459370503033380191994497341417512238971449188391036810036757440986145399426800724598491691129907092862148853340299536661269935968275782981791194806425424498200157496018924257926634153389413181795523670164639980075467024385303036561811825953092220565001999932106701227512347794119875571394333532237100228854716934510486130733972648058196499785040593151889030800174729916622496336145544135721246428431622729860746804882070115950357767234239972694336865723555478205421664339426880428432575221134676176758168817373388185762294887051891771968706839766005763861106106289482543049634074832355576526352333053444704588655393865492102936670121971307166253801435019668797230496789751842109686045684441132905455848468634902911455630961438129446471777384439995552025311766745505241221484888357039986925843360873561311846305887177076582113576488788943632366716975440623757712973065239632327015530569384864064071394872587997571539838621168336726293858893409406315590032012358442770458279714100148459826213475482950043637601277050890912378406342308273564566998692150771180426855826583346617523917205916984768909746698459957746881327343174876266454903190966445046225195364284973898669312956338240300978910108826644539430517472848770477995624734793882551456692134432546027886501039147038533342120228922447180869635877936315081620340949904101160463267885181556878474876773220979638100769642536704357924024881296881060903899640918400312333043473413783188616055979953852537325809467209237282007539048401323015369490915347862186604293109781364309719515027086907656666564689554064623833171986970055576959164399717474840002508096373935793702069402182635994767714800244037580469149529838092743477563948531264183197666865151057993002580143414514024887647579338885647459744848948385091133261432081355828063948612568371695971898410890554300299518336204834387193790557739045367608294415055380063633106565188840028690473979527380463932218408804111631721209771266046208326321240127635385718421230497579400073438763083899985341423888722286435710440365176126836620090986249682708834524783528590172537875247264693987032634183879397292425122758567087805888648194654376727154488575835103060937742697408501382292662820712170036688138577904089942723932424252040620947518698753150121096805816928848591233136493530303083653594959669412735992119589226589438550652764979938217325662139010398613603921710430580523573766183644163172265597989951377573565476317497311099877170953790202077029147639657196055709382083897836774246418030103886962073710606330396970509041815842775158252423395837433342923804083072396737050396521053399940764176575258263604909118054297636523934148197353060347924381828070676418903039466117498216503958445081103944685497861432438534728185141262360624216407689204604260279537013973270058169295197364487447035357210322065161980734317003259517349405821407306894071493708922291886832751257740794863252933473805869105598910858723601368093634628173364465133559734947697732934105696434111630240114734962324398038625011734998983344339310719115328213756863195498069335835280635162001451786885056116338486513865384422743337782634320204887294975558200209208702940523875674322732358863947115700123270683675260364676490728072295161550339794278008813478900024044160953169794982679183293092518899420582333486397838872718120441357175409032688915318624693535902488774573511913004062662517129599149743982978537260478277777953307206582668034658871970822958889154635216195486348810686514007924770053502619103245374297324529002747493291206278718550182450442562859760579695284999044297982395567418666591815932564397891181123844668416796268809866602792105655662585134941217037127819499580044149485726232616908772966204516742870832475912782534819685340167954756762386090527523289976262206292332742812619079110624229181015217732224152155924440261355923761126973433168961817289161985263445955769825777994402811152812848212868539211750733829497359188773943700239077547751644438687625231074715393447840076385098967508038615006921131887019462141371404419229880910346297033947724653354851264220357791494924058357918555412470788321744212054489674297056827251364460792675069689371574098792205114907208688550581306104209315271399035211020148059240789575620274002159348791010181836127353160979997437914462607253734192759595301097146790677679691330249543338077894397149006657509402338868548887369733763803942001056570924308518394327273505203251696765254526678677443160134759320921931406317760206312644813296270751587429366774928487440692062413892100553957972952626547107583306765768934886891970742902901582080813035303994840384852704794077513703493394598712796514033203036962800616498696719539775379781560371434323442954934397750377842444416135340681700614142467343114016334787768702008210843532906524738501957165551559197987105414419499802172102768502650261616752733005291696498835046133068264517161581169706855329527410684892866312174352242490656046415413868609319544210198611517672557359830281584495546021205663772999884516960246290277532038713673276639018580354218143782129060038166653356459012243070101311643001042889039575213832886865548367677499036472128107543768909799302993916400857505628255356103489704817078786985866211136587204083524437264379424014960569370159910735449825880203007930511843095835712382839767163717152099545738565414644245088362601884318957146261270468210143114993933384108585880027185847912941390671941597765243390876989054056497913606644641404081763238754283173811105484106395983080730844547818803685942027755402016730222452031682066347983142945761879651335218197274500568981590914380954635064997371695602691173310987197792684858250198152630534723261774006685004545786887761154260344646555617581416927827118387493829059728543772448961761275715114674972073729330604910541968166865592392688023180076865718369767995580875821826857041320068159458100021127832160889760764544993148631206781912055724747157954513554987448164146256438267403665913466614411191788994816114677467075657058455299447030841729492142989648726546129922560803309504872723686071795816649811732053859659123043037131583101138238540235904920657857302218049835692140420418884943181487701672050585073416197970414850213795455790255133716144755582212769618185897661016415350762260990465551139432815002587445754271987856011267159035825240165627726273419440556144032540406101721898916326097856619867645178073823598291726156888660384266241917126950230408816107680821585179846137892384543936894652302674397783838902782471273202439473239718110115000442507340214198151219053699817938677799467683362610835986817307082266881269802640374225845840578639977005214196657335250004032694507629869268570062389245918114038769804537835972425131245323118786067734357386977896158641550368660477146947797282558350413630714278939169821162266069272993046741639928348937484359878403276939365756299076181271187063804964865508853285963122355596327562511680698310616198467139834176890103319616372824438349329236378530712844370479083913430271582666482414710372023340331464726652768084552550847585280654967510150704853962118914587815925858491350559952384317999078330436157415157724482287040425861629769694777966996821984987993766274191708869084611208916975391877694738047328590035468036594889224223745592728231528039788441317949326298785993512400508637713086772297567109361239970056280760060297471545993945645582510460208837172869407313109055254155481111040281901617268508225799646313264874082986529488499714534340490392984884393762482244532959851300145749728099715007601481242813580412473948906270234107006258431418445438326524491393447295132958082043852683745670772374871416756898820395793393544529014241925531601796335967175455215333346273195591429287543201368617761511775464933156340291830195256293619725327856837568316699136747164004791789558326385471514663335739194551765469651186867592944622862730590295246090784841288848145839955862832930682989778603326646895992080619331333748788731594826729150375766966033000870892466610732376286923411369860003267599847257849628568936966857793270855925021887852584573418770180900723494682140623881674013086591070976037722847607008558423470762111915852630850086889607234749298530871251924761029449810090828809653301617307468990645378379400277141127014596805644710551548389502638430895634778615279206383631626279940412186532520532528777393518107588246717246805881439756614461953723071836078596601228316793055656171248832019556148398079347226607075725523825328108332677658340501879273008636023260607418671648164775660952180919949102584212905243108120730905238373206140114927034562240036065351354832325636466365272828375794348267900187297656988770168588523018047435250283825461418906841459098619405802720649490920113423517738177426456256417341732842787845587687056355225175065241886634268740276377611840705041431084235330566259535027887058753336546610658106684480767100419701531802031669513828443022225387517280526877410204085267304695290137890920284633679226599539815487385049816609065901816906904673130728722511534760405568562097709673595220991908160346797671088922885103158883653837246376361557655345598771632918261818946936287953096305132139628931921120001799689029947135293325145245802190550405544447820060649180874547514357116326406983654999231024082500603961289059718380902103920386654620949976253249840138700732012985248631182555425875646273936845788997943928094263189010794254221976745404896828193955345461472422923018190292025268989869683254035343759410763365439170933681218122841069287400670502524163846603846153821238227353795015908945985385705165983681806988043253608503961596186872528176096518504037421624629860151430177368060371606821073201440277435540481786600890182453927326012284621390388021304456023463400136792398237381177985829869626011805804232391357853400183695131685715155346183833094212285514710337629132134346570120618804885256525523932948976068403719015899935388644307563550970283706687332695383155133941138077333137565118558027339156649662038465188214733658744758217941070825268673285312286473181315408315224464301467776471052048624365592107913618405161606475667144141469976022611674380452941720668424633859406705599224598545559594764455728957757451656975663028641985681374194026503038602867975636260465797814030624718635838797085770061690415932047357524891402895011723189842846549127523970555908853914537340383640412406911303885402561578787976127862592346026227130177172254747813572846547689745251405707851145939941975839912410071638891688567680468971920083235225111879917756783731034174850557995773678131634245409876809213595995432430229091116181149758955925651009598454297748693656063015374790088865176837524306195193017037253727033597782819773051700775634705517959913689502096599422389186197178823838104652467961144691355688830400048074403478684043269473323601652433260147959585457536292992437990365489792311185973207569889130790314838800029472317723483353484852057611487092742854159231666706026593968754875911740213555750920610189406719053347301725238526990128879150449174675536869826399048434010642335240266237013773150870621580421679687751532001055674027398181463217830053988924142593289692306709163572132202639138207006708557231930946816006228554133467947164317569939085739595476306066068063259392687591292643738511624875536504079454635155032800548544480102134005749120807319994688702040066731279183467925334750469447250449307149115784342141692620751480645014275750525663655081281536807292201232051241609857794354067701964231632702712961328944466095882438422944615258330264116581453185119679920592731392719951117195969913191917023342007092834752500729129312404137085855403073359651666124392039183821268476361036531830332107540112369613487576484354491816001798206421730733979769001936508383551941826865441821269525756207695799838650594175946872401933054999061572393104254737352129698927448124234895221704753712012151866015682384189101912995229227809031416618195843901573220819845682468672871915025588858751951234564172569617494847985219789149106351902580778746163677746833369993310688123200825937511082277773655329394628303857306630924883900929594683615564442201547475562395923279462649195970949233590801256029938001767278413353050275378601732614314814447078468466140912603314012730290062690061030549756253360071004147425634046829841750065693431550659164878626707446028580446444921226644321063431533345313955912475059774372752129168689767109803907530838990877670284250378989392312117030637454163757224445435911390123470660819346852774250631830615786063431179354900153978322279712815293955732206539941066370936319076792670289959874501746238408620184788208782839954981828026163872080353214720751372245125753490538598452226634538502833542396634003000266721833819097649468648659434641752910604660380999969871323547032393465825402474657220095682503099847224722653778406182456418216024234354561789310428627587486999873238765707953256771480941072220011756292447778957027746703548562823109463716305282374050109228441381291966897610803088910600169997347705580528325622724656256676161586666710324919052558895896012983048338793109295484333546887682403037786385253256809466798015755908635373234259775041054399383567084364159727944568391793923534623967027998004402208640552622365874282622152371439357538258980247617626923105909711756079400840265331963674793530041094198956304581658739719869639103794626654990865760143348216580460649177434423845412736573329135642089499235721070429962519963645747290788797023032409744990159333721680536681230026695090512747971684927097208645881967780662487706660489606222540478556250745652942876021707672000650817780054733216574094698544819892527032600382127178170040017969020642546362747062234725725484449006057519700142853592512479702686422099616679107598760801274419522496800323119402295808285618378004101563530134423698339484131968417452717244645717643300525376245192355052252583536762384931547896511053892795449416458296428257740172632451994225858605274931862265928022735673901864399331961437118197146152300773911845391791402514071475956188685170358964209749214607909135184496598612258402755774564576351215007154734789881740035337884845016906090163391792666282936545464318899989822992687261709308551638092925163121867713577554354089815532205742232962951802654718772137505385856930362522337312810849179036644716534148381428811056749441147335779640414166577369823518203600829660768240574543265720831077088932527822289829240624774691297826376046194552281008275282044487647176257123776629215123917467207471872663094220224563148281532599468774198690987097386691010769471119223707561816521845222693358919462673248395351291051917481357362599483667267114475422589552600303375872334103416691974324118478842134031295884256263469076645628619362665350978924443654302202968344205631475540348292943486089652489454255944209875327707145236967671010612672316807117472504585218414510439198745324161220808141781072693202414084759899291347441285734876384244253813556771542495239610949036522200616342616723511974077990500690369453252188808178682754519492295312952563470456012529864016806906013563682876022276162072301291360911735737267030946372164157279484892599666690012381622436332776501458609334923592914126509178284584546228710860893070781295864670074008955014004749326935212172026064919418654338706937574120757673510205687882768609272509210600253383904989630653528280782914050240109734184428481465464918647288112924901359305038123130105752075723783965014467555471633929445475938615166292254225579625742284921461651934255124035984606213082370867128146288076630474412672374708832848657832791561949458409372190767613537617906289513540984804964007575337716021275416839704487922628898595098782518367986966954931466888507371833393873342131502366433677433922420094285014986395535786942636737681446312436146706395392855230747746450903899819261623830375833900746891900468669954989328761676123625438808009735832615831943458140005101697730649909337163560383085454760739436924076183482363151161788989307270476980174778328645404979356251335082402349580071157516235893490624181660806573850764665038386305057081188099175492404504088566190133342682324023787486851100996423055663338801465050763031134236443662335494530003949007115975036118888753485534216127324153938489238533940667798969527792311353284333518337230990598863733902796317789385699697599891532714294265769036384284589466343109968151560861431024605217671059778531858851093626993322041509482770265163586752932754108434955937798778966040082513171066560909108619295877247648981955439919201916533367067970280813696335053362531688920268815969251877370995672582510978771419956732069302786009801978528102008183146428497886574704564225649621022654778561418007066559702525770092080393434736339073851849870332604648886216954551773559181746847924451443404468353074462755866868509388229718405707600434087976937934217273530811857941558787227900627364543911122448756422155092825503326421429869003778995224038459143428740609395448711206688141231309066111799166446580795911441496338454584337113283261950852033256985822439338618540553701377531987369129554203145565493038847748266681935459668803663576071675973146957931617519065427265235887303955553264572224081855267224322494315882200322903856370765800722059973387368214254700439825787026349267227672436635299905369535548813576219673042008545056459110325205795869380609977849716106491155767706442253797945411446482432346359960337112378343390158613544846013447150190217812882503255405355553869882584746835699394176515274111329467918328591516744398825888204230144874033930139383554617403338122386244261894451372181090351129993717477342003266985501227005540645036827664486132690565217930289773910310759515762178337858000157492943988435081167810359098553072436626670877224159259119919284259444408081053710600906819795619814280906212138378410375265917551116192877098145887710050442903811306478412804341871746921010746509616718356232504244521894629469236421988250484731152101600902494923897681548240762943269468865547644585933633400612856251935254307880050574656667874646230654816857847834368010778062152116652982644089755432048308590047696375957500232288237212126766550630740273260844851122028664699767919893185468033566647748522475867428274380806985594705936448428866326860071356063835363197463825382343697019787218731680299466808637809503991863468674555477486636427796065499342903743611362180881480417485066444825755189779149120101357328937988992519755152224484673141814199346432497053089415229651745332275316042708059186184921117039284396915826805836859456645146202332473682779932819718556775695100203384266984815588821220240791329151217560932248462343646004159106923288537646334909264545627579204055158856164120857134462499422311206298493964950167874350543689848305558595088470861632769647801802828679231253658713553717102030092591421392350892853794917123292140211254744525123073137059523333581398153971811856486270246028566873759828543853720998557831586139432406580188506788447196161894260065599411438931069573859430696945025970811143913278086201068461343542104638305370823022291336300243135324790260510671760674962396525554496014915236674459902072948241859522349670851595588491369798385098167895671020382991485204470912329872460694919289587456347319671196835522988202994352160941893372903209927061636360746740543422963972851649061059337016395011077067587787784427469792223979325209711946134732508110765060785655191927705692913749224539081219612259567358112250997275831789975236965319503852955735026100238879997399546146901539402254546560923009246825375699295568821470360022759534430390531102119699878008802669624177550329188719831352211991445725796016884453371793195776833454328994037391127100763862050462413591346668542762916284224329167798308427996282458528459251244250477801127055642140511965694637058427278586928188213420504300852331928413218846586102700211373426001084621860438633704960601028874072838415540501154120145141271375635837405643256658637377682235730380677983420892904981424316082554988033289426506725440039342837052902595716936765008128766270867377594005234143625330932181416536718059099033009396827586604425911463085782834168408091597905170168384976602936959852794765933350680738448376529290050286213615104705603560591959392547790937096056661470845563519398696827306519381541144271056582996991399636604389795463800087772987898554296931758211408450512608542902255196185375855621970918471180997003015302176311175224668072426980503064452959842962293504784638932880675661184596814647367392363260690247746317920437202672461943598276624944095946877329649480606556871876783866698524624544788667120545797990785744377811903979659427175315862605133365028492486227730076026952321516590097573060703620097824643603658383035288317023893316042701731246751502118035400484698874621373706426529404118737310092988059892599154260496067389902354445248159305964340527856167442012447218417205680570511323795669401166339926378399070587817295051550208438002129189162115150581252395422441371718751074143166340190100715183212128778338873862991080584524798487529402006841686898203344549024427878259271115833327271669006668371758113086800923591378514286329134575531697133098271245152993105131926246720137275530907872213125475774885934907609700749970917778421709526700703597290146407442022497837356004315457106377768832537491188541424161561395212824388854629531771448883386729994009467826635791428455240909522900917190401543804457721095680784292199480467751967408731167240018766746768025087001197090067629065569408593690328945653590399629514263107384716637423638474966082159210760341340746863907190446644979844884255875371701178804055182992108741678678277197270396859578444180687038627779550069156126358039058247005652016524463174358602016369453175458065093435171256829430777198476170693680459106062522321760448412299825957130617474722955959043663543796583304478288693794505566490810830388527743970513222403667172557870292345116558934444388532588577852588694472143198043087590285272536091237078121723216890207971483783004462164950049210007456342885995190548186124195939564331010667646941076917837677965560647246695035388942669418264921708582749498386830307356383446254097291434922121509952661811603042260166156663392871570760333800008220442601681718029949432802714830422781407123615197494060025848131312654802825623506850422868872757077865300592404123697152288336821180512463603379085627027738432172810208079632393721472453202720377501598851912768194360360733001833450321390224878882137760030859786545056692171685928340195436467697795193424778227217416478347727210121179028284066061795390319115681120854051074258020146690123950403354005520861259847751835130697048533419819942054908764976550072535679815223235251362406868289876728397807336409304075153125884453943917942731251822996835613504603606763359654016425908799055937819954653827237224007229488218000182870727464438066182315320072198894383952932741479790695954142713853709347746461372469047915085987808936733469996810234120852057388808302300314662789763862568985234243487241943819638889174181896054396293254734890631970364373712853715562513187218639171193553412765550608645966612437405931998595684268784042081065006155942491463581263801273405554405480367880220811961904593455456538373509096386674804748961508202834889956047671005456849629632670712464155564592693468024301183095135336850363702918445653264219592668120154213885232826285135188731326321254598514152759442551666948615625297400066930829295030548824149557857746764651419115705482997416818282196663833776123478567468386849161750670241250883786951670717264907068359083619376063879928543466385137121974090837115611864242248219276414139880028328383429751946527172322814791749650450627287973019857229290358597816169853076093186829724454040693845367253942391097178876626603183084955154411835529165921610048432195957197837852423384821558974830993646160633605856305716592834072396580862588276718103593110151860232121710299534673258771172819149545280276341331178438625351871537933450476798559252965233781466138633974857192477705216249167918177041907939479388774644902123896547473534056917864684204756374335473872656902259580884179537769655799014068058455485060356011492667712720075887732401217281460359291912573181464729750841150102754935218995261371444938142250151345117859780820276299553426719866850433401600868401640235263688520183505883877426077425566154727546848015150717092916256521147087591862299733327494925110585726176156844984243062550041857568544706253977219696178123720251780640576107661081786189729255773809096149342226152800930348976825489644957534994554702400264995828399171455822572906577223036104256494533339039787775170226811340002599650377662706031367678952435939306308087652366304156538629578201792823951520510653714920263445828984266114938720656654799903515408505965649181970745502810086001647466151407681848027593105306025440947620407381814877436827158043792877883177993833176912767899271917051354696698625416364725888511658066081511973151668920044341692368394243517631142801136604928026989349349070118561526196657954330484259129831195755101159010711826615222296273650857150017204086972875420252986080303916737316994786265891277658375968661258183723473259955861639673319622363141424743471273179676325481848815766385897554381239418246920737115539344079529277057767128564952682686224882908369603831095861328245024221026224109944035712633681985547587941414057581427467865097113960816053675699041412063645355048673345010277631891888498832398569160985670379827562674856497734083553637857425373008523002949580047145857146775809448114384052487875716787738460617126689173813405973008296526543514943078155157055068819912044208900512613943236711810501488357874667314537394371009822495170002450417811078570137422683035909635226432460647843475437411721276294268562854231206850400743401669935687058881485642818967972921733139746990552820314338944369414427092619622162777210940029441718862684808856487850096355230293543576630934375526493088581280565451206498715157347503210439145241920346178181444670774983667794885264581550890349338497552347188231700176522546286315526956385112947070648313339832721884465935785821486946424306278257801248480903873156094972056684458052577149390887726592032385992923964307274581670501417091892377116439432742089523343436680554473200494179723924680722862961890224305557203068952382898916249026375600176729816536881694343540713737354278666603646409669151377552170637427244936194864587137361283336548487235158319602821082307392681966778735671775940476453385944950951604954416973631406272571649157107835463813815524882794674615955805733796188264426419356186474490073289833583692100554945738054791949239464461118869020440185040405248291826702691267678814214746637183343255240839255276202348678403497657894281292727832017260178262998390762541277716665351684227067762498103408357220154991412894092464835028383633530120359581427389776502636336868866551979900320702452327608022815127285500442652739878515966333601074208997000679235726908489524060844229202027049470838163781943526147167874438031723080447169794237120853183188681021108437943635999299625609951692245230861450426493444486936737242459860257664035028186312066589109654717946626465519083803155583916684465824996396320757167916570876319548165692233678162322228548020164343966971164643289522743980974035522592640068024819770762110831469940174538375216061816942832561097801888846147964564099118022145861049821599615889373593919947358580441964700894377203437903844372722911390426084917325931261405810315036595995417596950819280545109563458612565104211021631333240593003949817895622293910529170224019436237825204163108469400207086702167556995214159802588743945908055823420761722528318626428999320548708708921440335558306355089792511472603144814561138696658232466148007466995086249776526676541896523729440185364926132822139184128568613743068011225030760492007223079704667540329667923516566551355681767748467236964650232589946408281229907370826887467731287295885967102905987860702216449034334317871849050285302338469491906616412362315406244294564852808554640940150805082244289450723140951665229122765976155680772605472795403699942384262808092309159856024195957654403740536058302862620442812070974988401548645966184857179431546669835599429072566655013185052260499353248831401884722377906927488828274413292447984690323804876324357165469692685759493012709594229777262630942114571779560404500032804723952875956524747944490110655776014943958432973426747381291265539836241542010861569801644864803071253068054409402157218190169761753118524892731488467713167222621818697341968941013460337025635364871233910002832132571240042847863222159613970029715286639617844393559063551674685308718177973370569277114906781647229647390586739016647816502561479011750215349691553171693500681148425630649792420603651944349221410353798858665670592661326150996884744644864193448048024495299280139411623813180776378991385940065667236441726510834373439439994133611734476601784096060773015583900910649426855532923684830514758146511579576173831452344441394271518275872559943362549680414723453063323411838825476561979303859071345421384068239073202493233093627916003752588058292628009228311943523751725032022667392778562221132454296401891877917080877934672578576078195019058982824187114077082253628804068900334242519895117782372893082762670235742993049269319494417742763780972396827078154394771884530421350377713712769904410008622543316626367531656637807758225873774189616337701563307775639036867215333221795949073176706102653584509776007337293137220203139341511019501413398478456350306418234222802713643002759589292561906087504932316084598276794343387182185026986956858863765540011083860592450199088254440379298618186243969248542469132239206846256640940320867084219366418920707735662347350225303094859225212839100632190654753218928013472548461285238950443665257180039122521951090529828458135535734025849327314605149348184119533215679249473722315866407574848696182170640606351694361400776462380621972947168632265395760997158293378674965837224749799872399853367114800439634433829347869792789633878273590154394603446004457039407198132142630624676157649885282152280790464345609547755701049844946617732180471347990891273809473016830237321212592964077694249615044728978366093963108096596156294884604538429132097502346348738732509681720481102475113724028167514426864783544244589482144451731066519158815386651439621191075904968892134832543247122528477551245384367136942641601974155114476908628905997024469815835997968071374499683298935271688729374478293013750726986345001954888444612603513732211486772710575684671665375107474385597027444172606341845851272681802401748792305092734602046726146002691643784990126817691437660555327104648139880259348098522874840246449254714738034316354992105384177939786746177910878710275706170276384656470528533213141186491742853714223660248435395206539220564083542981492684840005694162193651647106077831138903577745168466995302699504712194831021456455012778618037873331411817185331841802313377587000712922953940095421239814915377328369057124806866543216858135824439544519169669640150185765185016188245232361298870074902177208142530439267398182233080483800104279007229311199430756579202286275263476279426359310797923961828609758550773777267587683260183209051867314550321037060454672327230703846248205644431265879994759602792930189958149061524069160787426441339359382196354267206770462658225364915461021076091177029697378432243300516710424531554961289121733263292475647255196996010737991734522026353370180805897621126840932545188630167120957256823977070928395712558148767512511608328179478133463199424578829334046261906270997932279299108915109026002688974023283676337901581223222411279594879529545917043278589048348516762812035642020640712471439388541028638796599915269187194512719580370014260071374218940562240955353744807857691731565583728787239508658133159096850592490102683643491269988961619743880052782776163328729237702682726469015965829167635064305464057414679647438815563028894226415799971966093701831934455120796093848950515185571542326979102488354156861972103703314686538936562294317513772160171093738910897054648076120648224050553593534749414487902397227183408381967292317871058954151958468414249893239225636653123203040399539256016068914819051831331256094123738504279947272045922792991517421694231445726959097207569523690711184787308906447497413312111539930819355095680497672754149552831607042045769980944132660345634527390271318756072747903156923040393539053416273500126797014469350518942882387787222245490593752206067730204279552806350660526909342685846367434778592101350718180183861620496502141582347127461058492429717087647882010992138615926239751277743125058171863156078011664137224652162810520114713110926366272398559498092175259325374367340957382080384791294853150744438259215117595275404020510350630375870852250030575504832701009355596368701606958982492605049162190570641488528439602706131054811452166051242164375612051101992726625781094734722692819484216875659007469494375900212525178576579730174791297566116028143876179990653072844198855929018031064392900286373175874859069336834799549689552077729565030401654758283111149896653225489498932026863429863376824663195344301078349387780942509873955038248827373856044497514671947765167484784262286105435774606020920923722395912904687954737014244277195671163849550759370577992479107756074045110947817322475300834774770266467512083370398539376217660595682897940313182163715474480015621492413758663591346641273708329394232658622076411647448950628104673238653686768184317806846479781813367711206701410474725584738858090508412672436187699469793739785490488736521568835303002279228474292270952267155462820864101391088152744529555661143629272574457516105873722792759005364550437059986181068970073026065413750750937641738704488411513126522293996163133049322179303868502269787998390993760095937300202498685769962803303292475787996957004169437444384202759110195426284961932032956630677521897637193681092977879477945784075747396610008472505237094237041430786421937281354942003876031986593269941293146869152455664412051645268966407757436026740896836738911022586231737418522147428822004810350352230503881234388608465764216733195662761473009160982770152781993544621029318349958190992784887957470597540079981159112007309456371501153797538734864801075977172998275057553507391032732957709678091106844555965797680852305987503239197546434542741779784491659172083505191621853280086519037370809012825909297893860271992437968702489097535937008446070567749338437797820499904867207050729980699250475193361861177354423868616771138313469934425020556013019287727328754951798220358059335160885068686898176044785405240006012535392487942199360276144959138764661950002865627482856444311395497847984635342847121434283789142298571896969667916247488358284399662189868070862533963278315507367513488336353758216241334696877106598054437242515595941113835831074794125402277161502282461361216304564581827420418658025421720701734762791742425921739087574788845382032344070144017820179373006929098297238750595658608973908706069001369875901122224190461421419009126328394551655311717696985045598487235078361589095183874390702261572133926877907714601526951633691174490567889318960250069006013996158866061332135129026787552172195819354594832555440508605014252006676703531321767873475637216981391115695075560109108303979378212846353298561537657224838050622472850663160775133356948968205183122269845433532831266966730058653278401273243401045044897596639286363918009743135584181251647145831766320025268188593032567180538334515363019758711902766417750927637916725166616344891002576849852836248747611291273536345019370434253370460463047947677313186755277446542456818928439174608581538790640704618944114552527048346827772862988409677863837595904506312311866853599125698434990473215810831299898370154561189469625021410071995574625627923061233270845045963647328429259039084049019474508538802213975082925252540422613890190589873515640367039580486161224499717909542922510748637505008545534506681340763706429593906520596353389760562761988605262409534217541457403282091982671270417862041320493388252667080414615167746388366454438561940283786219122135551425328314070628887124494749793620732897454114796458513662636870425047773728633766398537516989210931750989494475909563911302680023741278983407278298857504740271965751794387399034569994528508973080359894913908211795017679547384356659800253028720014248738602897031339265617604740457235218759288237411933302527154279429343207917310335155428093921725374415654059183993553951824931023177460546113403154898804406646312412246144262585905527126117451048487828928787976834585580673718048093241099655377963824688363521483331473013424281470473668449958697356759637965952363549548448244584665305727330250850136163974581439547393427443299468940113298748461030606524550329807869337685960058390467053795906095864263402484487444804332849687038085339009673370306371404537345698555518434782928185883258564956203503010900028718885130310771767818685202164650547919133216328535335579037486819248225053923764014707905152321352160403642536739122535176830954843063920274856346662561842075957356662592391044802070949814069068491745161244785316967314740899852837191384544762102867609002871944814926983417932359190554197901864454856507131945732708014282665503639194745150250990686761199321478822331537199671833292674075778166359667083921111872910459710464862175991301119058953530507957650861422833059499194923696727773196752935164017952306776783530706167232048299142928006602127842062778464715737187302518810388522026965042388222674560682124213103329538649459940102096896987424325922376065126776890724792915122838855762080061572764968025866370909024579684194081632583223508923983720770190245361655414664846614789623061786258409572866208428678183525796168120231819495308356264910560828645521968859944188365731179301154700115329710869702647362938814821962084609495503286011051486863074856261367299188743084928109739862168979179292472391750866189811527046123354382488652916547866487755087818675773372323138635679679823640595253383417539998422437366501797291607061453199570478891822432449934069458654228558440001442818544200902506431417425535798487259652086590035749734598428519716990922409543958607045487589658066102633162320119415082160160117579404055645076304839566397635913651639441699718260306239962409586655863982403516497364944455919691749141178859913982097131768542099947924030187313653662804859893035201426523774988893107808521631829830446932858720822708298041857285180897432437680983736974340062425889570672935256112248847256792853302435979619546685728301999860186154175520603552208567039139465856873516292129850979432698116990001603476172818211064756483671001555285234457119567329836179021795483040551530001628898582556238541725261349997554062263967968876968889780059958576285524025629793307010751628426314356117774627909870456516697870709633325458467510878747506208199913303851799169056817495019524867876143296913426460373388533604954149889395892136595504814429366066417827682309505863273297189733431923602461416697751644432558386250210195940258576114729541370972013606505370117566436119952424222862720865391385842589345545255535661825676953927574400289244762679370590043248837547587544401052061546960905984664818028408459357399119719802870060851347377125819312414776607812647407310245631219762721210063518311737213810687670127137144698989172314809462813062659544464309561633260589950775650956192854888408885405618748352183270691273052544784959036364311323718638233810405181776902920443691258107490847249291167582918119227486449992723286565467009671746065774450472677100035261523165727093500583068947798257916578961765616812956643946200877930596903204063695821929200762455033893751106304498582310498492017837450055910549590350845709856172898757658414262867907764962996093230740163648325237613720640620820513028889327294092336316682645713673906106388113087807053970299411640606849612945240110891925331098418196082278582350790829017781362966512250272519935750890427857725438586599075411252890568287004542354772744705621383205272514031602326206580373888080526097697303529860545869134067639265257267018929864825644466821596909267199394458185608164153847408439761484946180911780695802381196301468515578617220226988480431641416361544486684380231130715475512898027599934898292017069118897086248825728345447150877468358375693898516716697829721386624209631055418457622282339251743720450220426912735811067105823960957070070156578995676014697913137136438493687612834046782400774884490320846294289030755501898050126621128448220358566498039472686303717735466251736123238064439848935386985496309454818525157759729098867250887402033500388736722160362188977736329333538918871877615309578710115501604075009365894086691072712120207185310601582505860261268522522468883578387507456028438571010797511924863512438821575537705544516951499915452851822294571917057807137773739756449535038392366274533420087895487851934115240742294444552755327523590984800359453081794655410823641814365691245230502487302929911884545345104664604128311734081001846885061230431041356270474889720587698097319522717580875040855561773481461076499627558339791408264516867838211247365450136814579688497604636023943474514386859990482613138335418652548620055853410410360656198502075407475385940738621638367776247783729945251613949363885394148111954997053464861214679946497199784700488642841073451787487554984355511361517472358239302741298440769667073038776654824095366220134230324410686394114153100722214441447629599826531271712904079311589173825076228002628513484084104114425089810041909285817965561731461561753679592225470573955979035295163089699016179842361599121733940787476540695173452386027086327627320700823500157360637799405262197557395109523318412742772490803137231264663557928431988899847888982230290470826384439254208034658862814699073498120067572858968429055935381118294562467319916598853200267974338560076422865696400453776123116607293723530657558834380818166473204712646435655846471630465089209680904130403876553237392347297923478745317223993798200682132504152157954083517110054936803632265876411876968699790920958032813252852728901321480929931050237570510934844463379207646807798628284151200126458746854976887308946716756488606056009629743934709845130605585188583992479443393314549907367430366462741640109183603301879261657394584992266744221829559411537692068733289011436811958880660025498580884528001255013391728429845867030858064842900928620649018716466549267167231727138871273973020119858215973742871920507584986404615219112199991436334844603339176294714935029085522834328040213569394344362180852343131773978011083190681011676116810855220559118646476346565298579015711231434481859621363425631522240572384418325251644463440816096412578001399423715562827891894986385009621737298570248175225548590214096199400920615285389775283068944196326259043765295668280793701754377226387165109175571673861483651602543324054666194785399510857285756075852120552822973913402569604138113051817027125530711776065608057311866363470076862975648856691233905859282351007518796623002236401763301636612569283586909269145885747991633127120623087851173819067031325527902733593638927209327570202911100866060158663818180756296918455914326486215403803007399398617443960149402779159836047601556893870138824899343723539773459462269123856514386903364863773556126424549264921119403642770635479922749466756377161182737293303932627127755094368601682348907016644788150932435804892298067219654331623878090411653520693734096566391693282375553677418865065560331978673291756110309517926254071695626463887358918316033537076364379794203379328021721103949839657316521292076643656075425843231319334512446912678860601105178242191059663153563107734668098199380731779620651391226830920944576362035160888680235125398979639517741125439941015414443229737311106234995073532766175320425602855205286338082721816346180586815625426016517331674471352659283356644958266469647445864993837036415852129637911561507104404108407695015321584645828570217457337302884705021411379901970723658761196711719080908312995575336084766908896838150968282858205911861111759464418605728515086265179272152031346672685217287476307637312554492424587269439045912426201109100163891034691037220935190401009234932255985927801642686038378830070335920034848904177209077686090164750039536924035091587681318552231939104502561772340558256599282707938249398166932795188839159156054043134168328336995720255981397901183901494193500991956371612701168599019841151567686689640132716933354554703985117156927669571524177016498581798359221914565395298375985387877799265340896065350549634479724037585367923038072824715379216666795091721961806170866044466294307153477347840498581624141279924282385757766714468532930131987203858788589875032322277870853378178021114477811010746129058640879958432915878376701212400802708286236853355894264692883624782328497467111654321551363957029868909327694708929605086661161803135575810100396677821767855088058381051173113004851572191299000364516110967018702555112889384596509537409025577416843175398086130679902325297648417967952880173888985701097212047331463818761234003337117806241678224580808210241113567681280045408389704849967408255440384724632511684397056005094113295393945339846117729499105490865008542916421160437764721975011746833644771956588263812735051291562155933578877429714669266724647228970290063523452098960336307295533881772779654918743591492211471281452584740853188327000063399553841751503125703119126187163486914629819271849376695964114554208011034013226788657324836827219597618585364489434792685876874687780822055235093547742122974630919306675322495491651689557076197551948582109332794044927938244088267836419193326097458249846158853232760833823289099647341512619633887346361328364277810863003011392578178968073453264685578934901924441189158435408670699985676280935299201966617740057989319085048763638536734610672695573325728036826129265200751248936632395037690476498234837857983559746199445569370935870680480016804095380779693283940738356204047158035130839341200432635849511363185673517569367954792284724116710267345759370608110154661175030222550792705822386214195948165646783579029942813741496989897405382459496106207144121873472862318401314201233872845057508953351775911288630107251619877751692300249084899568568482445229171316505232386058326890654937247491372118577783961588789718643023962001723019571148800909009808399732712559077436149241492706686351427513172752467240837382659668917443897910288431537420271417248163643686759835314330030080194050722655441642037629607081246591539494495387304285917089074394640214458514211007671048042046623818550377423642821885935674442076379221026908542495597007720716187264899370883891316502239469640804460983974116724644915888531963050576806608271087938985590950749663305718710695910733971748180627252062046043058253605236573159825433691998321873398485591334708820868531152761358616037069403921735269607812407379272507017033638445452081098941417605551713332509012717449518152328440787579423508799800260748441551634162204624409090847014566091376207159990814100039914353393630968952938120054708635593693189116218438651445902798539013218291488834824694769104022129035500566024650284294486853805449771390830109966194445655004274340928047663761800989913748952441543538032758389127928780345977482059955430183369122974205431506802631013105823135015761802880524102264715707797721806236920207897116485617727440044659577261702367437360561912081144726686765240608513727756651243352483001032162076292889854812862130512291625859371870477530036486234647693724224848508571008663053154687701406912401156664481076539367179302565491793943639483019466587026973484413763658298337330100516202872509806435268793011853444798519272066450311681741131877082891303771593577132713210731901829455102441143758663623244049702505151478403630614374169616711697074640650942238051231455263395488853838385463295248327389483054606711690849732528819087150884909480218397900181342199820408847898500758387265690363432182414846453323840051987484356345828955362753955592656576450669962767694877498951139421279674611574951913682380104151032023383709143159881427895927800560494817060468105504773004157242788204203970286848979240895282811226913750417227639040499098724930626801910069280996157514591854568683760175710524144369061539718554329293938994701048698055031688427489781478905282912531008354915441924609536625150833694583039833689937803542179445136437800101584089468676358612059203430016203054249802095918187703530340882661478342744606556573994685770435999489609539589905165651372612262562022184204769337654751415598070763582799385657717747928016754759076988116142695034195382405272341066821723864430047402510172022711020109048118761722315386447275627914242866526411449617279489143339299375353142982764079500181645878854853374020140953588350650476361260365876927570356271765369083744576008135133172074838472543911853878321251700596372613482278857039901804405499774709792676748613410956901522120192564339367455983387736314943589084403628286383176470866396226841464112163409651521058250716612628590397629214891356675861315813174861981602924896999686991989719042387871059079699683702804985435782355394912980979651924636785599602225862783107526388937804206022586786162037247598677531459787755738930095939037555825932347277850592248051385867828960781108769170970047809501605924709095549097439514334466335976774254269287164292190417463861538095810636866927593067615500967480806298690976774017689162174408791039719819256357601886306396645956857017945471636416386558650329863597000329863255257123116779827449209335133403651966133269562610558421195597110313190586014545875875544539292981886192866648313156871327748980284436305442620504872297514617490271339750810467214886231291203668447755265124229203594518192063162959143304841389108694946368284211623381113738653176043093916317471919170548400187568962236448774139525318265513514382212251794073669514539478011336171568392317866096902834892075794491662110142868234470948828832477804723011904818842294492134009019636575044790783335868900153577802195098494274682129451720468780581725685592108504258240683157232360208757090776863134174387614529138471217463224087088452845208701509913696572922355762764975182314463689971969698776400080639103581884997815954828846777928165153158794226026889149047359812756986335676229690877869331114898433662963061468898410830563486346172703210469658153365254855846591241715078975498494526032469132427097846235363570810686648244670625644009514040960589104713792586261597009437371507512699295071840793194699338285865610037794048512739142676431511784655571360224545644012606339045386465489871044822089725771777966214609078514368308213734928915742221862838884659914683466966707109045257277960318983788125162043001908487257592085656825865003713674787969576561803381670473680345063217853565111406049792907533742740705911614617886841473328283949502934657548294126984194011479172446551893297921663553536424248002186281212511327149142035731975301990309514574783514056624269216407043509401759676843746143449431581564488323975848953997104799305305503475201317604959658368385157373242904365974258630834681683643164986268460290565960566945282636681151543363686793700757042013322415558208183841981817851069499999819069035256900496462727576323653790751726912659666666993246778512322585339369381487885200970711607545637530313732784942516360824459081991241925914951425850417695837247430156062588261212151113804083257475104668694957176360038523442053772743003805212506908950595409032438682270885196143783533406093438241558599174745466005929906577609522190416943852001480627648516680694876264492381069865870088422131751397204435057279279937970698557418816353086280707998453846117478478038001805631522038028758530424363975250887226288299227279941433675531940245634611493623320284612570970586879181327252244953066370001032982747694497902686390431997610223064063789842331558535010241474386625670164332658751456720247434318337978829800006883412271291314865439647311321354879070059411812091007403620968244082049103599725437369119350674870145310312682690268242557332398034774395777171315928061744922001840040889859149759651419851941614905125996760786371108744863288199101991239824165932296145605058979601628248665021891011712478079244502053513921897388093942629293798005965171476760754640820939033742736275176842734049825536583953943841307985958078235063084636542485437757592478338452776086867347013208555383161128355803991030363883194664758946834991555889230899331697110850518526337802699589889847106471443345910955531254554273305967678163786546819424674441244352807831021048718371030190974893562237884443718013679744242062385919695816516209867384729235932155796573099619266000866209213424739842774719351490635731345644106375931201833712909023981577120661857121905931907085000619719428588994160002882853970231546640510826398296015575279631820845642565604334853648623652535023143133986612963760079721173583371482865480813197186818706798116818723492313251565268138449736416931343386992078733026024553398160593977989361096239117351479004962825641170340666671526898729362806507090998606650967998055495431087915963665502648909212030246710541257268646569629799096341943404630606475042131280576682523019395910314224854939407702334497012486812013572410770345525261166649454356427525273560177620283451343870817645311962250648411481570417627613120491745820546837270374330614760467399184063987703771692646782852039711384788182553301674426913229591969976242182081234140441560299124856920156660150823266274275368056239378547239838899972473229863282879897159080140669843907997855098002516351954969526783968926712921491111362976298121590360328323747233047510751912964895220170988323055858499040014830325162591751805025562018015315935856027482685553473303204029846480711205215011891559098354685249480705695753011597235485206614924876406243169148204906267933721068788313437413746464318350332796792370806686563607056478939475039612458397886815938160379863599056472118564763319468442592021474232835164372345516954529427067797784686328139007735829216008133978101755937889756923239554621464286187611425090954974607161077293604640783327764956611819912026852716734724597722134646303136306960818393417375338711685341706925152010893032716945526085124600589389214095144288928366884702982955422227332693603534631195093279232892937551840810268411658634297542797815764149901645312151734086891663634230376154269455145737097649788094686772082579108706075063906701915116633470991605978191707030256021715771443455750901746935561577811313092676146814501612928669314947231518900299952889922913758365512802189791438230979266832443243758026242637769197589684680624230274453041296247996764762386201956622073005916360947128145028089590976489726468869683336705611641633187782353073816000358832939762797862124141095299276508863960137978419235474791348771437817311730123027324604095589515006364718263268655593511830342920159390459517180646533607152613989573889857796334617568836814875838204014397122033274431592935534591824836298973949899935477725185117536630084588340103657727204005436456496834725476314192821600208346000423134038495613759836065078235431156785667106844832912324700474941922058119444156675129030345041245152541514245325998031491765400294160020874481672907938502862974783307480282728456902574563254966130519254602927742106514834243148111777910476798687871762436032362842759605868715659149681320394905345280454692960134882358514043026904166901720062465994494418019151462931110955056704765955787575043347082784249486445691412901033275860897417782566755664708958718772685598369605683890518200455897581194064126855988916999995812949006586970545187886541192699828008063461442469714837502098947957655292073723795270034596429972045878666855555511690623758039981881072752228964310031918081549687768968477547958163836098336271398532983001324971068110143085556123838712616397753869474638167608533420420901177704701009212417190547104003816308196228776041527439186172754154585460566074896865354308065141565167325536309358919097381926689880362369795364583573441222871893529373120814298287123660557075254751599586367004173534691260184909493932304477023236410867206512221567703649593650557223918886898264401813234963519622785891838288727140899867486942148762875427274984949059019779516439114412537444011409843771770714801063060110528342778754152564374507170275302981459082920543681820588865114696866324897423498587532778248885185366589975555842602263827874113208558201575324052818227990963379179375645645614745546584483020542211062675753496770023838165201979794903699602113055276570617444362644625544647426590927009754139780175822053871096168222054463572939469660431862915478230474838116694711234891715003043868928018962480559103895060163852627766367670066348200770001446811945100053469442019530559210992647139744779836054753747096739630531348609331663127147409587368559838933832043361608682592165401051986124827958006721151741615828493648710904871264286457694667934351537457068632853113309339972550366992987168966886086810434951381582673554482329873853556071528631345321480655986841876392982679971755305299619147663958765903171016922287901322543346926474826202037423305779994167554099780799328238975730096895070867499062770439698579295755044587321341299036471840836337632257758399843633620058455916216968309489948407936961344334674039103753351801728499184627487448897051138527180497247606820196498603847236562654740685113046098337531524797309969906170944090124017382569890365806135099819220216267725678282781900948111390958688325021813672295770156928613697218408435549231168298783741108506808353908171917685888268540265869214048267303237726590048780694386659949470055907257495285808865758870512980455359059642579478236850460624992125423708461064015573599704061945567905986771004345876023049132227499940922314535135325351033634362915827084458380647458516882991252525622801470596393999984241915171341237381774204469164128764247843844281488701448142313096058390230092290313318630944926909978635774521566474056576948787204320248945722572843678153532566482129028906735879719930238669956494691301105737797342555801362768258749208406824736133345965677411290914530521715267312340931689029553658601939326589020988139511549218569235741824401479333456332556803326367037114390333634762393492357157045797594647314570087125009914198523421935767241803052928419117168534490215552198071808449432573536833112546575525316687786681863035129763009525804050015597425233876104725520839738160397912796554850667920220976475951446021680967992955454674272206150566945038090054191518174342260519340671547819881761982908436654421994963042050935527556363555458207524342587844062145105258614518877273064052375074571097425789310915871579110447442918887846910861303660619983976690131856814490460649602930454533368819217563071043749971956491105890511134872163422089732920703383957395847314077372974639804686149365629648087863132387501757064002300311966796704354173795836383652231039942951048169722926633697246456177474806332497692308141180633404470593525236146319481669528622811294411071519931613382572064838695571566593777176993911352100122904507997376524061385237531697613479798385611658169631809145429305927096822973573939520077355576683688670795015954349559086009765026276434716335886521508504694661221011948942087519368074347498179614206028252178062909978111907627293382527474726295840494824001279030573320877730077669791239336094855701870897824865286285247058744927437972360825373462262156620509106913719629540656948114817070344040396798456529459775019631946594166597354968238987683260809681487816155096178645914366954086202073408624098541960005309579697796306187597263316153702138429139928461613826687289369045488698955698332597387894401073317921988676348929965571487316530423564893728808701472927769216771992207652535563414400362272071797420712076180193867388464389820810899936420739422021306793175927509396903774494588279857780391762300719401589022668997447990444184337121405571524751052875120073519214923477521422611606149464379521162547056509694165764981381590266031287852369639102643521887894277393872179276956828178042389961888434475316811195487921632440429827184785899346851518606418762212425149180458158756081128330383458016849572191302782645647774866520608185149456960476482895178721673954988100772429812557754899342233473467061165130125955445744072191566837618517063880698964404673966501104758112229968575948533469896085820005900945049510183465711072641057578108686928463441953654960594989084509998588775403806984126812040532025957839779081605862272040692694272737523718444038905667996628055103196972835954789886124028249216966069888581020161142853514593849282857436576339774289777893955066723604313036654270233428068406766341822019606032559041309639535348607006330874690535421620004874862817078509939328918120191912889368835908549783535773020902643582552118360263159278752535063356728246512397288434351280571080845509370435764176366535155655464471152535514088938229419858202697534160602185875033005478550813196006888533511448215282401844909315640430402114706926488778471911758798650024649865820794478917531963842663883387730216314085771628463869195386026433806628568948433738722529003202214507376997868355849326586078866098730926832105076739236733327576944365791592986359964889378479901721558066227098035745201703969724052908095689527189474856438996600117897329687291456024645713139793492899730195198529500777270760308007780818021462936681631200226726516478391220015135684661804216005135575377430740356338118393245614876383897533490053383778997434275327566596555019516796375927226785172495011241329584380461909409483266086268658063594294365870832861837537268262279223195652201335228016867280468939787177887611438172066100738381005459831709377920857083233678645767328690177221663889381190450350293570458857472247370531655654118284779000412737082025665763464697095140222552273852812703183198671438706979998584583354877501669542327490003041223728438122570055956429160956207648584118339154859583078295149122211947640825962360072213132926788429266109697563545078357744841418369660764045197658090412236390930979196820008610097926531874957673152815247855772520294148581163960518120751074720140473967235963955257277757961037343698591954963595184769209110637469352958742231324351227382841264400302078398025175152399661398446806202622523304259948907134864846012320401156104824552439428477647556202202478382690640234400761622726274569416754363071766907324004649080302953322231066409432410036900393092381025092821036504401873898791895360768428294949999455942895995028005619681949956363881387509828072994970224562229758600160339295451400901484128621733022818208780064527293598444878244676596950471776733248888165988629152764198330740163261838423356701872591924188952141191761770593822574954163594318788866838246635353398843323334833581372489725928935336375212222454393214171127384468396986844946109413892275392576169315291577174806100571806054632699291042315538454954888131376091891474755987306325237383517370150689395986710458542520979677820458122951556805890220242583934853831353170074152755522474473644029459450979938354172453770999378491183171626944415418264446537322796299206090434251765999194182565073262447801326214063057717146708581456556159889574185746359792650784259476815247793667732167879636693776778503925720911590189243000740201882222333396200575140488328795473914593233638681104445918764119487461907707683223912798902224064385785190617889110580988381399628325789801024349869296352441298949382196671127485850941756696202716153591999377065237745261582510270502269735479868312260894810581227625909006649870499113828753309360208536114695914424719812904056104910633646427197276303740508532275084293112184780658656544388953065426608595192524312207211806831818594480404242406886856826457879397204455335331589033895546915372211661960734495408291721700381495732517556470633624294920728234206822302826950639540412690009823018503684853091190177648140229762250464578539597749153287183025326745813986445291171692098502863976095128020921595370485556586238399067430836618165191436564518663953230889084526339360600468483855439458979559233129008798695026207421662155887148942971392245111195780604710893541574418014722324855683270219833303695853448188222907118516845704173726114144564389798329553500068539016584472454126452866774026996022947195146736709427705765648796930523611938291538616196505985097179729565056286518850938552627263957761837881938910321732515932668882838852031054214093274275738394405975331601124360399858964823197722043272301020599901555341921786866927592543761327778245739942308743298405644708527870881149728739558612055150811386577355508280793110702218877447109388084360444254732665851439139336946785398548827724609592366529290789959387773837977547583666731351225228199476799810322021700707842710334185266520598317592443158599334180038413109653616578550477949448913425837234755193192922157061489994718140619993547723224552733164680529657038746136518756971200259599952237827841630198387049050860222589962859037282301284343625327839619489416748904419786997778953134345013984930688092247848179999545414057965899309439235759222886596346099980510818392702658349845433334917426226315095798065515098354672445801559828057614534006908092275835214414961880613665873229388493164371190835714160233489904184447651068400170428937421281053513969636247970002315113796352640975494507458323163097525782242402688119588512004704268803197801047107126254693285615296853515351642180161448319861959018656045489369541832228447136142678861281557358694188722182942804606324322706590939729616968959102660046050335531116332911471623713207818545415999378289165497701491545968349063412542209551644530251179958111762443358045200746571995377774248273641430585139074961637868589447413406767741983291489619637273817631731247819282570740612708849650503095455295849442559115962993576304298216993731038107642546826645213828519061835504188044000353017992006705658528421033316811256410766105874631957473259707327731245687795004086923787572838586934067637748235049395363985281070691903122665651159972561694949545058226721365645347825487175278694246433371164598104257289886828118008619089522169505179824042994756909702095363248177518512029555545466071633395277301108372155848333061355362104315654741153169873186406252783518993961558030042365286349499481053057744978503147176951091206620904432971584337221310963584259747467329589375574385280580432040951871526751402967973879379297998267347374077741363864821796487947907728241985042955349636860538849978337037805112186060201653068534007949935275868153400606749134171996542932084760082408456085420488385595491828178783953834210306476388683101509225018613714490795308083806078431840047329297655528127741291858358295809524377298655267555375853940428950207083313058765108005285287684198633964375467567169225236118160681393266624455740193719910180667826945442057032799809228233080559052363113502970611613887944296970830342374417816337060551724048124114699606008291948088217941180398833923206661683001533123584264911436943477307738692385529754802817066346585615610806364299008542616219414195419651160737937583482197823726376622569454159339667774126817405048142799268760358725075021058169045927291477275750893814925390002158281501236377452485115671842928673198468976667621402644890101645296093010648348753643629376242227963912683579959772749095681949823469714917817698657266636872112260422386051281687727247594444133807839374349694539488331232428624045808901584467338327976533963375174182134122064061988390793084343208801584113633538350934977112767883891526894970331293561707687099411350953283937222882347716180686859865316444895299684635738628336445401271377894560261780516939852639250821412774209122588113328770788639616551610919997740583771852461288171512479797802045703503627139522290965318716005969356935856671520161715794545431866677243345422424539084058138544564007003351354000987424150853165246245498319888186262914513633761178770407406576168220710225797993218500114401773009313900320778213106223624850346876387632989073669599689379602679516396004541171892359308771268909559914328855123011078156423570418702930404519144727719233461282134470354662079524516241196349726280039990976866702339804529713297426547188964058606871478990590977491415399756839978257547582419869508062360433185629295908049282929614666832097323105503245358082911373195854913761607393476647117926326824376751403212997552713875794367366020909915483634514128867043342424857285029663758163662894003056507088780241866106554717445149017854251350360877486027914959447377027984617558096339419813842414394987905143501803956807482168354798378539512247851169128040321698435453608669762300225234249315169533910997531019505024519677650692128506304094664605393851422558119322663403900975364936187021583890042306916441497489714733818200460412334863217741803769768836257863010050465031956176882341562698978912370059576677782990187760899606065382010897718578556085020405708803976088008622028531984121366374156618006206342491700090068136915748473910677683026564887351178158916037662664276952356332227528198354121682535634531643328168723939731178147733836780946922550343279888625481805919925632966965406626829019662507453934347116742112699178381895124328967418540906848713783209535883612253968812539352905000941715025368119600434379257798510317852523439788856595921208678648358406347116896670374301362890110628026116924044656608654598181732905870067837145173234341170214637094088025838837935492544914950581321578689916616217123948361457060719324891363767395217948916547260860908894928512593573611740986168498932077122394898431985247670292958630886003304955584409771837063595913996828460466970205810059349124138734045037822661657210235650436893886831625664978217867802604175087356052606562865534825441919149979109380614287918775295589233213603915288128276003461091276625693026659248366472574452420033534247179968427985906906743870575059645779761642274020925204021594842153682808944238624897744888756944835150282898645943052847471518963450379017937684317916126014978672702236613381613465795319948550263551515221572403801083113895473006436920694395175822364660122106331323813934471825923883340928503405253279218308848065036158583409906800596472663787598789269553854446606950715556852439870744797698207971877423014948486979008255159373339297242043746309095783430059205806541858076267741805935140544465720504547038519214044131748655584936715837887079242496551260950385735459274779609055639314140759434862412192403439928165768727478631722932688985294152152031332121862123270990796291204279197881178513359461897958081854599359542618521016624259772157741641591899267823578071965039844570523695391939048388672176705271658150354200784588965706783322645495545674316135584274581707421319793040776288055467740399007550876079696650582623750572951357975278719225288405662904477485124309623403998563715016101929999725494953295327786938162927614933572359929304544772437720651451228264859567784105158287429939309431022678676318431844539179038070564904763131185927225990018162166825831395333725274106982499455472929828338006664103789370369612063798543328901105923415758149666547277435192455049014917656702103916187873182774737559010728932796587526139960114717633223723934484579370914611292362973955028478122654338069347776364173165270306187614887468067009280738322161883260123530624580194962121460805414355766565268734401408369590583640788003362864649978412965047578634491826334286742491502630517786037024167667784533400104850770816417140070241300432401646823168283140954678300984002531550823027299579333521146527891413929172131612815668014615426256227005808470900206125261634351418279592267274525521766070481017249359394758390271813215431470226523723097825507411930439595642496287151044284526285861148717203254878460817905646747876342602945363529921427319298028329736799745796968360824976990245273815976149824257767150772660631228171842745540193505097358661082088033071977524390145284802573631603487548117560954897402052338742482990995705803601565765208644975052493901427824944176967193869797586971150691279063739960711656614211515267306859160340229085637334839305805406391892060660361866926522033025549502226609081368628597939490167446579589892626554961734995722439240759397885006512620447199836982908973208138401759436060363635151405018671844295092217554572942148407966097864057781307694763263536914133447080853093122047827157362134032506858917812276942392282899457729562084526900389368351120845271635466097841932008594645967173509747415911258274367827331963378652090908784487197304664648048222343743559758152399442660917837481737974011199601728433794280516299368211918486830876769906574440571267264149780958672939943013679433036405124799691759454224137688537603358793229686408218100331637313721160470809482642196509472451025738543731850471639032658582166555965419183888190026687603824527430782776149109337584619522430591316733560182128936655969502177722266257574391772442350190689843227109598033103610899860242823512252369247471961337983589025670345345511481445610488949828483482130360584799239154995913439382687441412875175216205510600568461041643306761675385068013166908549023380685727323293671574270485620670637465642353725795953861620203789423773190746379961290013363821499578560143826647924236158994658880616743875935674192939126161344451153049656712696847376032564732329475149759377413642324825328869049238704951188812491758675308839185635531044857909786814688322144042113495919225458210056829564888043949670287682388238486367560927756552983672320594052916709990896001643673454386417934366273668789722654709601956918222287501384463020463850238264152682298834816588438404669022705974492826511048491644378775838575870770615946062708837483863723478697085739600039659207162578951791034785794256258510548195184883274652980889257876682886324398998453001564447565197202641682726128932573510458129301236550979355491916315549316490424943789145386155520227046902141042543768532576150229072157285752992716982743401658953789382207372021411235807644991116715333659201655579902494326790197292815493751531975515147975168977868504355127571763953188043910278862323545384964036938762770679029115683343863423918364757223864210267766358830109533655972117882141682378478193057423848456440089452957406952968549563619306725029203689296788815668851493052681493763053428169242922071836618879241442461894291033647659789538964972243604583019352484671986878607805151567641063513638029545009048161508934163694216408765889411897719432387616418564378133876751218973222143802984678096208701822546651893196283304332028149903164818344051817135012990267195025682416272603827656105161409188319755062938240747012703518437699521886332657692672502539734627199806658523093642061581356423885655797898288049335433229653712080192176445014322078408822159548500719390688480593348954787380116704315776181692816689189576685301519069513662360044898411237906870427344232686996330803172427529742316423549865813340572175408660440167659566980548098664958773096322911070990043389516477240883992968726407038408187030043473594086760517557573605889975087395870783230115312395176971372319712748139734779310216857836873173979651798883800640990033069217484240289977066115883674288611417548128303617196156031817812562735495832445866146774097028205648174886467227979028046828634843200454563727822774634561950688184746960594029070983519908887477775802686482768990097669696878783672922335757198150096451545591522770666291963208399633538669069838636675170152221654677709351334908523846804759066706770175589116342290765961222240323584387254827252037883461118296163342186112332083068820481037241616634688794893998160160127028922681709141951983508105602531942149968509648966794712900596377302648190978129329692549352032753329166512560716875739291149079512847166007754643604215781974223127894204139285307612880895579646899522023013834595785079064923187995175468203934977650775679287514053559962149049019297422083744346496419827657347800458757561239263332443852135433904045018361059062394635536477799687204084927626629877328012428594189310784658032643841722899326057896606143892796591710312748345425523544873852198898063159656084826016052335170757620963544437801940503742804845974443796436192143890330540468438216608245028656095577836591664014052040956591394587245148495419111073689135980059246911434187302188075893066298301649699525425443847421361359406883378196665277915738376394548839066546849499674012501315875862938787700851077935973829594290762772007627335182565552137853051579105010628792757926505954245488100109003256946064306812030573863621624554486722252519929328042542046137867554478526447430075017782753499383855554707762551296502644160820552844544834728789248372105501567507727853600705172771399360890597715914264162111613916671014220511703081319718259551654054237301887423468779922741546674358197227302517833553232371755281249648495427464914079976601760820419357547382235634533162171494903915932378542823275386680536623855774546085955918889030637075287434384586093266713971168344388397801524875815761980561649862215802018763008795179970330865680575289961529238508117937698137959313598917064131691477935416285803075580341565827239003233215838307607273552019364218747701279721086509804611578229332499797624333703721673610971163468591536493637629162277268011987662981688211147651256843248224849960395307745100715991284557444995956939908336494140746559812245528091866468857758838407333293492959236796329744886573686092185230718181946796759896080571505874443761799718222234435345840376219373376636053189190081079527615114441876951767810459305268667528948861250167723847629464799058603798602585266726227099576388494074126842053905246767527344509049669835055094808358685627813957312502723392201584546437285206075308245676942103806013295715651715872904653717444121092426538570103764710414376955625613426579007912919799776862231369786633037693959208588205858233471303956871126439779984482444594064157484780684773982299190956771058464239760979365298040815246452705137196085532250776346146695877152682279184999519294741834655066707229596131601244700487518578149457822307402257037881133467937692940480937060906937464148140951097692169155330961487033679070252471191527150143394034392106920224001905288744029558118109006514334970149338137703843781155997132821195047799050082520092407800093644834815013391672495347012628664041723660427986377952534810815473635157365310235818041972892155296446741935400489965445013149030697281477849634020217047786932051116180763268819859150072323045557822276636269039024120450424562632380626431030138480012413028029670490903511125432347644655177614255307608514103291021832945814805903981675362311593557439611130588934585286029284582087642417169716591492996599191826096801885491530304783654003073838545455941524110949798676390824356056075819073102133207870024731155710550560065181484632866101944799429034606352358309423469443189584297354546710561350788410722061626941125778587914047463620569267514015393936769714574644905485267939070573610222481143934045083194661138956781873252694330163839478452720989434117708243544290944454272011235832577404696414037569082744313983522224424126740365270463410626362919287942806094696607533752725064111042128599751433974947750429958887155594809145118602711151553151637205347051998884939345325105145408700841348121221585424060643830199886723239489952879295256432378581700011947110636946580347106269772852544596842740555166437922752085365187988017686174269991805865112418671732104689717788596597802527157918248506959411065056942074218523404867208805935615498435615699235334514876334657596946015827249149124867259629946426752540121036210581791071348553475731996879490085991826324014801222596675933493850080406677580729858287984151976694789715411144252968815142578692762155800046322206471816306022921370838816082708600691573827496265265990697741468250025601565422806436297961756190007002038969231913355762905239677572149951193663463089135033242231111246288610053715500822389865589507642404394790134362200968146402164170646990561897356179976109113600389527978420791824817759119601493080325111265341878396854110794364644665538395157654547549758081225096385785146103079600056866550496594597630165111657768652396473325713022006493966688604339617544715078933023681829109616449769368602161298873233123222775407025924354176485139773230536083459653497077584231503097508515353641612919570889290474246836534178651179083925512649247294236846877853460660234446074374261989575340158865121424439632692607329945065404442429134844463151294885497827911112492661713736263637982972949966396117418576956025497280297366090140017985209906400964213738453561324304537701893856891685159396859300119572707549859594955901805927205546287080843175147189524408754540570413382922993547852177309405601745785629867397953636271870666867594253972288496104704308700774461224097600803714449008277622680001483465294524612279812662629928876891603552481676513327147564121863039951780281132759220691336756285087432267026461092646624987288115399029580035360008279013891838126204423110960598682801648310047139060150398821613057049560033431620275732882398408485587315965635184186358993788872548288866165557033749423013654295224692718402622945442140738055080854991493650507629233211684752840943837779608763733435044080279758807124445057219538394591887840095481260860495566845688877259663848526000468963477566369007240058016028517222187213336431174075756410343946440821205736575531033126230696639262110226012546702453983432820284272140909278823058488160804110176832627243695992585383933804885689491199690620615130475115630318383988295653771524506032799574093327825244319239059901799168608166204628583282302714862978516045724902993506370612532908965118780915244622327874249605701902088595778869088903732270858699875078259489554082273879924037726491780175714196240670676171977139074999423993505612001071583986013370030252825275985766682747087265348450451291647644044047698947962107903137753391280118124856126323910558082041576009100121376611849894037319381912620357693715649566584972826279613246041079162528518166367885268300725780695393082090328516639812730296374298866910527863126991369178250464731197884961211099940916751526572260356793300470791539198250416906052555796150205254894630823713333548223947290869271948709312892443666875732636864535203604845846012203891247845956899608182285295647065211450336136939646645439657878259381294625162095344054768514835631490979404960267268539042250241983587018930718304437546551497495152095932499530941586727660695301422277338336087444674422049058610877141433610158909473712092547130239455629691501383670056419960712797888649421200028972063155725623856744671857563614509013894645515232298391768388709675785463225410581505611893555005278811319217721962494661133428968779631298747925031356652191788023026136034228593220216286608987420047905002205802683413692829698150954080637942954238970849731946520151746823940495227909145257235831193116242667204021849974858833814887723241802999973372252301351697118131271472015666269443536916666944287211844912039104983453587503899964980201915573956156691664678626184690385523287552847730702919646320881164707362059757982795283373083610144792576379278809345179422452470551086119658523497186897793679616586063433947391395625332567198337096991734825748499449513263011443202360705099423506566419618621133907441012929549475678332269836452947518448833131615297710099107464724387382073354127455449720351794354256300639346872553495475653216383636249681287051632648233168290364432854984249694374655798882994137490960131055473811935158119560269272303805112094422024667111143657980369549975439101178504689245116602580868354589685035038901119105976055130919604785073375253618397688734329956158333633726197017192779648806553574215271863793994450588293809982644458821049326690776598092051317929805762847691902327563600186216970373941660559796924576776996824904600230685143524583117780667603164846616391906001875426846454008759276284563342570576414925914508789262739770698092900950056713034830321640378856093905744192817537170481309843914266368629016640789056633102439142239951493005620233831984686333773611516585654713656349451601093908258323472204048229119793878761434037207556040378922972096107073693769526667841532772000087064007630555300919332434497258916779823705227624819555734955343137829763399841868292177380589780291733614229303767642624862116884921933795087960674043649121082894137095264365108319680184919207672060458898657070607330975327841944369207567684862742213408892482744452184111971638444775390583756300456101807382191732302387668774481163622312721814640698001661986901074440172729328749401385569219793185359708520413888682851165577548307996927464224699134301363041167246773606773690874646611299947925998350980997302318269449454605802673678500354621245787832049371115163387559965844855088360432891470690572939028293944832595315181189807852037593868040026702402385552173220950060410892023689475538485073032208548712999987344251673908337784921532102307156629982585182016341930352729150278807068432058342020349216377727257110287813084540125961206315866490666318278931370753735334802626015619608425159938644349585961809006062947486701941954291686730426661817214459315805871229095938981218543710905478846830165700692268130391651380893824102878042767846730863575561222706597876783393294633728101950931240555642823352407245109640401887779047283153489422370509071877839728620341361132567934434701102439693800050083744341546044152561774227005610581205852520911881012137553291148004219959175740510470693859973526372310926139228429148813938829436779331692221154413396068354131095915408855080803035219099239031148456339060713492715689521541127153998667361082120906952335477441996544086737064418333226545529713841457662200287508681742246032826364712562517792156513026910671622348535410860699000914940718339113617306644730028180167630468940929512948539905298339569002180785962414880355655993260191862485091535516400245911668863775972271473172763518528805057717719340985968107269860523680600978562054926164918404957294886909234697372370530627904660516014262935770211562573620974811997290206647779993986358784919450042924965188295607551298071776558570442002711704478988544860820918568464369590532604789801991649446927991184421227604167228227947045322041859835958044775195741981862928737545575034494612281551303520535764358509203829547230008049136976134788343697323605307631499095138011901181043398701643695592151350738572364466651415325154333667418061633231324360271937714943154760172201879416290719107262599702830270418874678644774136292616232529074524534628333934192092471988613819448762287667067126588575401351422653658688140279118800322803210485744578570646659885185283281305897705543763332926166429236277824610737395102534515458746261540192293979679451642269186754455581706124643974691969138071279684183695233770218474933831979212693729292697020157367207212387996558392479660839970545681004160436606971065078403853646076984536581056848167291667680195267708734918189030909200112108553740013678461722329970688307795615707752971136572847595117825096145456163873184123789309984636494770203502522577634317025121215300721784423850921301039188471387509268675626348615294455763194474345430401821822430505758837995525838397045590986685258164286837111093830798309793419442061283459229963150207318266812465390874346964063768329914040293979274906657485629514561697458390256617035324177507237597520530300481722443966734064205414238332481968300620017306801052655732960004214790852913365433868555733832849605186137378780378724915112694165265685409147943972789906676567699758766025872700173537934994627343795997151571503543076454377802742113871751538445577552305950017415232525107845444409697736967167885935308832672097268722149462347516250642497124624527744983609588821650952228943573371063385571220464158942668632590951154729042303965603706693704128304498023397179996752568567770079905304551878833040979015609685866980141833281658504359281190494301756054937414106448753967070710029690586004842065248018066203411821953912612091518604679052558271242564739661986906261416748771887914468957329628967030959420791815749102945492289571088743083255212689505321827435800066524516798524875292727812472929651685731187892861356912597076868510122190272728764929711209014226059848374116485789978793982958343803104396573437355983433542139898374627425732682536199078931025771523342699202461936954454957374054685278246265824794602990107701305324888062754051772623033196142982415594591050981990819935004552385170986923625040751394334819347285212124533329720666888112039124159927076129021202617712902618805593255625664110731765722273032382328506803761707394359590934685155426562940312159158515410684359218259212602892179345395233722110355227039582944216107227128561518163985918945038589580425175090812436310954090912149063872213775709839561613801269653710701278430304793706123001120341919496600465938631096404196557648595365932162761024101018957482364737632163357474099543887050395925065657606157927048738093616483215357534206378253113491512573482375797873892351490127757516313566305288906508103642647056549877142996313534993952595351305640160713301040771895655809742357843813306967582544582780530452846684063941009951295073341820697825457662339007526561357636660648494044122216553642745139503945415392159897095185077009170769675371430334140691979284834695873330672907337691320625409764541192350248062893856352189398662188448439263074688492672069879793417066141019318219993175118955792686448566892393767365484872412824221830782229510141213537270248113489043237528320654784865137890662059845150616296957367014127107798243047544870320163533312714856244354393341702732684125855238297197985777390862125921725160899903378794093072500592962823847407262524148180893891072389624259599630680627326683134604892009898873836618817282159697345491215215621753833078107827472644774545416791590480235835017213045240683027286012372152445434328211034038739639870986866415995949665911292313772188955598066656260851310394084999401243738204253232544561579357846908864766689997228042406024767569655338266227493339714964900905099775156894225987815303258777232709556505041482504790045038352205997876789400062546852228712605809470642717191667101987986314532886033117563339034846618079201252913131128833309748166042249247278505437535369763606727200591874381165870920575140357642973829584731311894073684943808441930486557264471283101401161956653348267608553840041929620923841183839384230279517922574528459706568591658427939563696079414955633553995629680123669872727546064769736780097631876697669209283624148034731467645742550377271205953031727064925053048223404804703459180239427311138912516882065978461966021109343928067954364926036634331360817075010166453719839669839765323527969103286203154412851373163554018103717352450075587780445869001151269121870067515593548852851523705095251043656653784202599620033177241645725976733262657576570613766795435025062302616299755810263532477421335212464110389798569348741406740007645946362390952346877690249224030077133629263473844972321589431967122486352744197284267488697345019165800971582959770072229782450340482613965300573258004625405283811920879672878683849568631575115507769394818370838697088428233543998879158468098116610191981500611806954590888390767772045362200644031586407639822016177399687802453371726217080178852926847587900739441502538298070262738009909419745933804979653982037247813667335502566273644068355358542293392042745840801042735011037493873557980776228217419110204673687158751051212643516301628705830199961381167903470649024474933589738340413943390043172898210184969020810565634916330542731148200731770418187867169099641097140710613444094343405559449548508397591682278577402168267554584366485417020451952246202404350888168103913889895974742257291447575597644728773550448543955403559512023449672744051587604036808279885314005041652712630386468488015342776270438960503946325178055510404007808603216259992946565982697068080781406450692848759803378787300496902622958987874109317923918084103881672638272191581662535724534982178959252793966575408071677750292620691294076156503648129361358760908185841487767250157748154418953421846342079231305699648512778264786271810201018581539819626037919741707188408901102015889460495863031157440008649594207886857746927349142488149562327469286906394762746060595467857754773112067206179948601856226198924899837853794021182410158691251970991592133251062963895908113306067927068069626630105263691909906468794083308970083709409908955641548299157463072978523431281118405105985274426675352025445817615883051701025420527374171258308496021199584425877225687862766240593716252048166084645767839986148791825349512003342736091219290788785176329387100672066501782865504755255730873200417512445171119937888969434179618842286927721205907661139626447983226189290106037228108750160346574522903199330223111879965022609780007898399551671263188913217850828473098900419817027774004158622373013137416690581695576059757259613376872527817815170933140877348689644568821751365041735290796157845168093917971653616663698692498439303895852140191973617650298404469962335105390486367093115602214979715845098670706238823523303993643312449674336806642127628126708356278526104186295551675739190379770586014573597646299869896372814386942836776892909314194424533051143030550118280242321562337669565322499365559769983188663633845620578385566212158472881102658534576521984778696722495967615706445188898151817509138333046474777240570026844955258405725634629413926907333217971228800873547341165672067524940634867417599582119608851344789129298675627982444987016382164180630925207666305723452440331379397501740444033169862894641669089713878165003423205887242804687706151048549990974618848369498055040902908307885970158725911300378095871043592196037183875653602568446974226052836094077326865359070179724170670614807900024404840039420801742856731808085260628656319633140250256778059642209223769102427162055799790590111230934240186433377724558139149336908691970335036860836715963262161787968607125662301903437210743323084285040256168934056930343206774808160601963311705889358391413028335349621788969462217173676971151514891825983692709080226919148897750418389237583843929651263120399267832355004601175393011777305578675246231209739115193315060036819654142943155818659879173050552416540344258735347749029572766578810158775650555567949369315181553896565956190329534515129479160322935458837059737341498613943988532978120877652255877051205061376043396972343304317651972123047142551454199004622522110835372034396943177057384313670909188310426798691192573505395202348185823702268778193049515896043886333902055379424995478819160017652221189064449111024746477716777876011097595124523815416199585335821375827172266084828519147439369536669653548660929554079373888760904585037030823652611650251484691032120494061896441007866084403501736939901567708593663878621045526427174293854283429776271000638399910352986759192766385761552241498529552306696975474681550132177321399597051441709472968450079233659216038061769913359400321896643945387202109736232285821691203861962111739515765238710793893461005798502056322003650389115853347643644878300694052211944372620899340152168756802700054488412419898108026682455700515098150481298657141248973499590813411269236764322769760816666136448167559657323533371540215503422024334003691970006685409086339042746373496838795655425666698230753189090690749786212902327065053800312695289241428646192211081356617479009908368422830122630063704578762125984404527534629100667709119223945283190753122681109554663293885112297521235932690150569309693547316728574831655684050450456114609350324703730422923196248275365365946379882805589226977385948618638072594282021814520885526313029289246684880957460976060922946833576681744806211936670849516035514461108457460169304586841361320926229103199022535239768285691087953991685321410732810446716546463476445208739347925308208427663491384572878867732693158693938374239669164343638831358264748360898315867051049934682376801778447343166084669701494130961111444972901099974476297015072320943180415999494505109357321188035673173666625698731409040102106924418870715641199640999546985163162485902404702920937099669478223505380738466502124777816704325311943318941857804732291793404889870989975687349427999849915178820875885428860723093272597351181631096890314488681027041118551248668266406700183318076480279312445896673708989354712599130576094672432752257387829119053797885828794229579646751811402377094722344007453276827938764665962202240283762279724105914135222879449447340877373286525439586850063067570033853096891944647346128584419211562706401224575715485290660259824588025155898691877923763414739583258025575722887468295650009253625213142660213853116532374371403000600693852766044660043832880603344123694469637238744755349889752534907880969468371335888928366654524142850123918020163381272458255169800492557646959393569565714105244365902585696733084320584405620437995402057669519131700760975092968613901902838123121040423127803689500222613152655700054379709301975614744846462488844910283374871433261333876877474514231909786929663920913139041436906245625886057610465677577130143272758884780866807237113967530573201132662903032055619428385809377958329140731742578818270761626073721863018389579614699630878928128880134731664416552445259185810835141662495006033095306401795861969723971972936116152699305612223185727907183415323641476121907069971105062745596132296903502380286475235123013675413735235210967252484225928819426509606554311035026680788681921090704051837368253127883444488782904409101459377163341217149242634270887553833640463795181394594110690557023220048299796940756249529241520983168209983625484641099252559147958342912347543444255831666517322495397535271654861327723194821680800696191883996150692037545665979782320493224781972551950486110638912997285126160868442497201563996162008307980362230218059513668669686353403100615741629378442601039627278771461936935871452534477616510598765662745560172622082418254891747305460539251656690779282343136200625639820982942543925304268275582230573054028480437589238835424498006902325067337805635065558084001703760435166051446891852123028528398881551074428944851714517395112667565141537971252768808427923346399741242230364269452157725953520726943779306416393248591034058908274648798498344125221783706751454378597976989193309363526521827108937545517024244702866940946396143264092817183908157365026317015397741860392563276795435350545877878165459057156713339608441374596077922563976769029616359047272391961284631224880215230903417816292334350537037791548182516033438206893748328192100615308968408420848044129576053610421968580942712682375521750643304619067236623351251113814772370008748787339484153304599670654325991499948128690068104396767190146825901836194171279972226072643231307764447962580770603634127521683654677077754559479220803216279778194152544541251204846166825510886950525650369582406733912545149783229494260384629701862010741658795323259396974993932936981665492430154725168998736644256949402256888138021155461840232819962912673104153905862132348039936141914327946877708367934208655889889818423461073547271508858802914995934169131646183684813421881392908928123491731415713470992458077115157604528578378935344682568884493932215712556459319895431773003664660960843547959047159489213017303136395384153833353753080426275003581836463608990846739503383432077276131089124146957471314468960987814682060765234016203619761490816623625444989486426544324108311596085732397197945153428407474739543572805914445617976272693922706776165224338076147193906344115580956827801634147812409593985843115235528157538100894370272851432767646308637240586717889436253298768964063856596125612846846316942859890475538673388422480253525654831923952800973390957304334828094567894828886381397494952434416480092522903212784984992215660739435505631253658008476882280230184229656043930978066918199722302318421936560858561676234574542670424290669403518013759603492081424472328782913853568970751120250393761767156667205296330639222914466576383672267148053717211697443690674071614449620409015745281394587687403792906328670366829791903077715485522951937617495110284343638912282580876109744262853564953070782546333635632423984300263017249946239312227958085490842940420662793163864784629863243076840914346974934572090656525725447325060062251169960001102755969332899282747891138675446466212930648198270182385188375330939992997739229653141017492347659338851773833844947073291191569449390973160436785188686237304624318268273682541094423266093468514644202291523255355559907317349566333983277732051958004360836065365532707527615225139906437692011660300685283244548354358308384115410030290426210505304347656543066521907628500773209754281178434045784680566784909895960459885610166049175313430291345328537211807666684617070692284030615689996440513370791910355282483324095025595788131752256200854323771717082994805465500551634619937978146276603429839845544091620589138633386990617549363297508207063209078251180010661980220999426775970571233954327970086795806108938168849919801094397158153031957179340400921344632961042052171147334640196348049285502139135370457641231299644752115781314584219638543765866466380909479346757230869887985751701715625876675157373493291701712358819633181139195573750482997024862609211992864553247667401569351055679897152162325189349163778132438155351439898525189365691436839464472170368746643917125680167372276787586958590492289536615734283398294562687366142025086545716639258896911861899509833608215039263088717635017559461782582730898245763152858268722004423874118560510839347867523890610183746928321521175609497021284430890142310102404277133206760625023526711070714826410341447386259759383570583148104638669867444613448938202990652546845586855482299633255321856560968012264235457660495175561425579376888567934045366404408187822163784458547036054943841988735882089254494344269640734181941360924753496060365262182090874306587122185478889824993737151183752704023369256305320400207367486479955568371429869914318747942797281289034185099848075923262720682746333663751815228381490386226047653724339519324242055162385747549708815321942018931295657890342241149184491802729465021516682263468609506171276027535692465157737766479621232148989838262468066433129305481193113782806273048302756809017886333310698395960665957658490875359419250678285691506420749409145119874957098293615134714356479426719825828235940899952635876502187025867858586745599362646483740001231826966911698618589409161207425910693977262471246892274389732125933574693753075391958602009056872074867411745949418442036594201245602944106196752390404398014320331770502490640361472566065818395016484736390308963740080467742386168065739536546871163476632024717942321270649106629632594763156269782846483263130924374447723906339703353434662252684947406570835806073864244288829143230990306898366024374167348896368966706597109506305923793124252723077477519937651248398324394890750003977687709700659951933185514967697363216841107140855801621191486951397462428359074613897827648569947248887407812324117990721173567002909645922440684001603805601703105742009199547953176605768120530353948790563279454510256107889489665691128950842659209350741238229203565634818739948820114525457914722386432842416501184881809656046172069261468687649119266921133427626843034718102631334854955415390550228748672049267383036870553235604921792577681451667984482403630815529062367384347656857250309562817148340278309066157103884646492715245361785624938472143087414621578848787760229459932576562440107355752071134917425080508183082944989881685801489980482404515273394688301838071922965360157252157797671097253975445776462708340591137863498749060154697450797524709992864644059157662183766710959386994675224089632550938661802970912801534949069000069420300946483020180586041788189562426894250596137328880929706183587252956988421596351536892421137319614938076751857602304314362688692254500731570197533991488621398045187223174651948988708761397536761448477253589262435979100690080792004358598621383814396271080957197581950385160061561999785149804826593067337826906060493043484776990121755181889939770000887802402516388195094115633826716684210850552580674678737876044188614703646367566650160176132825895117653368175821356783096753513486941673961469447313156645778961456956398080766537863633532012565552795876236931346376765285211148368488502320697645937846823216366873289710910260178287617549728753181970614249415457120484723919897077332147975710037477488291814715402212980804505617525224038593979197503429940007216739685521957533902434966129224370198406309990545896468403758603024713173299533131917861142990126348190189348484843201859288096669180291894395578112095342239199172750773201504769126249670106756754829496447704632492209221321398881395709138789368776480179882181463233793474478784943362234557994766808655329445304623348202696522122441715270016337381132154018548745536764365498923256331397147701444539386048167204305231855876949526362478109218594134101793454148918798742554120600746630516176760527140113999507949028531735113410070382826537566446256951455275138760749615927406282731844889299467057091628082143022458773220405511273393581437179366017602908489407752768555830485567188945378136515765461748181098873460243242306548498490240279434909025752366456709017920228225438648732090131964285915068974378867081625503078992349477108446120710707796980702092568139937708299677468532135029562389402845403996657328923612551909395136340306226040358691503388041654507997295083872656673621306376701514148143041989889135602292487871238616940355964130824486155149231561066576437100611368702026006811939613657371512381385019184189472597369139691380844698790297692601610542137631074029376973427246816848143587415496418225471649992479724991981797217129749154068482213891114908176431505065098405741066209126845518449520887288278247469314938286418143634297545583458114483878630891771401424428873854933187625533691445464044474989998336921470111345030938256962368436900302667741816525321717428259338617207908122941370892409258391837547574347892541783462212815992552043526346768824916815462466781481271317641794836660025719551206720891410694635064802591083496294122757511690007611108951964623940098719625838954406951175703527532262083224116574426718086701592099236322883630563365691917074286058141038955004209951535721393021787326404198908543235251725508749125141363802092839386042856085366925788438012448910921130472451559648154223046946929513266302213273199831568097431493002492794795060732635778513186062848741337292332538025080100244247752934281203973282260802988898852705054671706593445110835111120194752866849125738004449049046244050585755305973963935937654243822459824849477128837574396374611886474041369402151837292579184771307390834672076146585074331178607744512665869140792353671990673826850265063690361917779824193640683902517248179122653726861572467344336169906512427384224938230712796816860752849605454689026885473572621259038662431345997744301275544330167863062287053152141852835032596570416517802429762866600650877009422194992916665153149360406587617440481979012686436456744466871728133013484545339439690416377548281045499306995455865678081472856064463133182606630172879094697975701262340143171811522134511718732556347024005585194274386977153018351473292484441869058503358099672287159287243350827641920415566903632575313928219496463730950552426142894369527621663103469702524462802535307602495054798136446579160250870587867774940006190130469053572116164308943301137206616542362862143989549559280330979102147754544211230686885597335053796866002032626245420502537229493022221011654334368657998153392560334407248137915487588034666014433052500547019994547552665794339317165395363655273785232663742416281446062744705302386671381451143999567643994294814726208467104101892434816014810682842451463796371079062727225021672736008143213811264422197554543739040887613965094448160693604577705608462913047869041258959942610818829458053299302184421837167918834728800619093738618042964666495694084880856056297079880699049467608974755335752167864142884549335754927197114870006606098067692828749622929916065625613799195070477077987648371396460488755717924847895443412361819553128228200578332468159807094774803831950074444030236453173282634462922056848120491171662986819505753456718216304878170464533293453744785289717532597349764982080954524091664354829030805733168411669370207350259148733975551251462076861519069922135262258632913748851281001279401782409594269139117008684398251244200640671353834039945706431506919924760421316354303020363323056428216822479867413408372781623630954379323174073348254565505956131363319668598244289663534725411425621861743431807029925878152911716563469346382397927384157597852670817269066042939950436030874502602527112337198611950537952107870538748527737700381132949162750795248545165517401296322966593801603353584340091115557780825201141290531619851303980651682240855244582571757182018562629241223874083293655404477618425300992759854243829024514429835521141112820281187843356599839921261665541201193498121890774382739913658383860488691725759907820118747157046025016222399948419559229322541307565142387795241172619923022935035351626553474307339026135253919335426629397726643419419055663745374628904740068110472455455665414903013528603333393893878169975050672187821087036717354900648810002271635951177358067039013823226431794301228380931782275487565473101721688174283500156471703807003493914473050064377596357206098957918191543942180140799639187454011510674179641066265113162676136766829310654898076626708184778457604985921917721265170765159404019538134766326315906622478705426556107138140529525369219096481559474880954848219506626548319513536155009769892178153899535079293260892241102735252989434304739995658253102429353635948726728947385927589207137143790994681009306774484332743714972962215598271265989074158569348162378477856393925175158030718836098477240412146887384570775790215880449965493548349700375495720885246183419090888290388925497384029085086731841400287428230587002023676061706085721249211176992782123160027507383171156290959127846757229354690760380050765262088024344484188069988460855885333083962734161465442045489541368265344193416946875211673705282600793455442190514797851428153685308273657584000494577644911735113990886971120958968490728914919334367532905523164824428339099198969855590010350026675967562551270847394256961045544042883117151808579611558685085539237441566775095437041752297850507437858405732916731035200915479063471712324190000469308969079032395145245145066098489746106026399929454369772792910154374735189518225078328333796416534347692049000382153125778418880628279843905506384313117421124401542400234245126556798859075045850953250870336940219548634640311926775432645565715555461798655533880233385097899544912760324112246127301889527163362101786015999740183480672479363165163925491155921494919658766837764651359572722857774724862229155397433195161501982062640707105897245203784530596902953970772162748342039835107415836496092938229015045990192581004965750147973804737664097047213807882563775752640197697135904692557088838469580585636500279699695983465009861855743606733640666109998050832872032195779970490081831694752139232856630394361588102976260564619141319379728436208691232113032482775494421999376298473323656241162524723643404999094732603423242029262858638709847084495478124048749686127721835404397700444925747379389241352768358212024292954609654070057180986276420843057541597623533587738566545259874208287651095384473931413127145170496371174522567976184186877114286367371743840401682198420813323045517339543457874358179080314581479963177732057951535305768313380096423247155691725816600886342183579753341359826232879531726139949312658522431800846315724763094104945853791990800943305687055876040174644523097855108052491378684685634263308111364937224978117472471266516404994267473646457920212049873865367498047326210688035842836795013220842451388680117537716357823578716723835836547913637627321204574604159592354925157335974274518365593377595711490353955524718785792309092304986690751142581851415000785508260707630679860465696532294241813348069226409145389637171535584043549337403231790802485195104297232622288055016387022325366495114238483871132422396902276021792224421324708719353516819582527190533062167051730154457419800155247458166318799059657199082940884420335603486172528619179291973895025718360480739372523247734163105678704001726025914551394492698911744122451127475042451928126578805637007410672720751372887584259513450421971531380003828235268177973592231356845770279599108264632971061487356953865556875515431887401501792812862233502970815748269972976850511107371745008576192894486062909338028918219284029944463257958158579684949327134411875880440109098614748721769527311779718480378023932106253331281665650775758563731661025211238161634230617032089247263956805075735638026222904757675191765269119963302166089968517610418794795393059862602456698630860134502451311675176651524412453764900070223045457469112686484004785950580112824508976817551976680291140550395284351368924281288419106954627202123046157595089705026585504595014206683159326653048403358470946494762296179247193445584299457772161527842633317389575263182287444979107639115117238221994304607686951702964657542813884358082195206508270298868898322071593220051037853589587501167598431002459755185194347927810868140097622631000727656665307783953472233557753521647992654700241876745762272553274377657807513257560736247857266254156208975361916277598066453108269480940365719948642348342423853280909955986310361437943428901696785358601755352148641770324588139826136015882406664276701950776749618519932813450098530410552310020978925711128467534388835262916149093659511390311756866398711989533346115938395211395743329556972856783823905397112132495338307673516301687020773966018690178273337848807736720583394629005005382640246669238289487083654891352124659882641013056587130378396538661473807542409837458045672074785126665686653877048065896645647397762336980599610848613102298511247112522444502481248764046914068161152968726690882253202104913764660400418763701934674590395920789423295456211335479597532436116689261371709280617829353677828404670052183738506265238708853643982716893153187591280730307762962081457597471345806090283313377696076938243448012985526915032525931616892150076400088319597158550527930806986997459874105445744539397492023388672249559497170767449172928447653172031109361060984465059126618421116483573669056817381716577707753538554653050787887199651505409614777323466079957010625852169923179848734531437657135528135464866180588288050284966830214926642885502064425799427367294320280262456589020673335489358195878726598102546085852590865608918741882670381665901626678001485052902262132869833316701519244061710555827778056665779509283522343664127794910393992160351133918360465667366244819490125772240416671730214756212949270082983498148517714703433506273309215239573109703899822282937908994850298007161862748409692395800090625489017708137457307208806297203180733982732362447816663627043725518544114674475965809269413252607023213287366215655904166457947563128222521380571920339758313913713575471872640284865536329811263319908077074460448714587413023363743723189558046840953452456751478483144921577937912146545212088075308337435169413324308934458868728080577782428827476593289527679527519406301935133926827087839744428481735070231645359400206167140440576738995067453763601677363208156725400101922397568757480013342742849892724717736669004109481928758122767741704331989005395970904160056102142071783765670261326404961562271576769964074223370668190028217785894223168392898428277725520278226463359865366110672813815230245804233610426694329733974609379524036700403619782556443263571354850311001593884292414628732200739423185170018771872570480157133442762087278596277181911685032902424289701692171858784373264765926994042751215170384590020141456340338055713478976745163809927152710284210517886979324190872619318957269931800556679459783127105978626788018566047163702014980196129485840254319271571049162703990844112867066777417425826442260621266785140559194347965344056751892250798646295816428595860065789824076632331285928512902110386223609663096003785522463606094047790123788061509224991831942334439897710059037261402702297745341815828716013065429484526152482445674371903714937117966844690181906528578950502881194083816857745713104094110818093652935745796118836864310013514215929461116217992178729583420369425850246578614194148307091982002746102490753768497511469060175187387170182038758911175226840018601789982640739199801909520409017886967874803184495706421581440315387672044312189220472966145037273510043660031543028070164944200371955079327451393601140096816194014919801565990418755443718873334924541839908041351809527115220485712370359324287721290970303823289457612767311635655518947257770943383785118221250664815973418712025540243757097332406053483499608991834676865244058257546779556331715230980680699152595931436365078186216924790551512418846345641382288868750153645724832349571366148756800487864252863631790624758335771224710473437426266009693583912007238800320752565156498731449776811312758631437237850931629411852039778153454753179476640558340072487846139480773888886353741565801526707606429619948685065865755567051320668294028020912616952976385650902931056765080010616717386495890588196381171115692814208942344683632109124128758234486041846813132132667374943991111211184224824974722642794238654961805348882825699306557200523858840039743937130498221041680042077578077502750085251519099852944789053184132414916135347001590641222186992951259772552529924787124261919173903388358872139724328999032364590806369435426719388127829060936831333273867695417778003452150628362543153881438711303761493671013024707973294552846657544099252624388552403587593875926423171923331252590946872041755777695754081416978193043539605945321871050155570152476060407066215633515579427255667036394433967888509043111333105836030383248367100963139672494894573386493269579942835156578056671568644218939362085901726442726083477485343054990929115892911467596589730732180273456948794961930671184770984974180326901505543051000745427885810280676273346448483948612451803786792237709285349199412071919647923197829584093151294459700038164284013049019815037095862472963077133479536516781532881671731068904144281151133500874735442694463821660123859874090138496089683161342738672784520689275999281475488388774540778187460982092782788290095475203103379103387058672933252817973002410591216753372378631941007624869492261498737833542721728610087177465964600318472851111999271806795940671493238058142271099725732843965934792764219031914146736994056561650451387888684918917152796593952762342255134230664361372013070038309025573893349345262645613866000858697706319393619791618663246275125284379194189792529920656803061925157516910594907208660403450847477111566403992991598844128223535578903241396243605302802141882632699122664537002468122546642248964295851911208251422320703405109469247971647330301618585342597260597896535610379588208304974768093015149200793840327264417380494997762348842557006356688288042875749412649503470754490851439059182800440847698443295842687232233201305670542373727595070776502394154955351280059165625160789156788001666718739164468630320095631972652923026141525074013871315365661214996290397240063394630261385138217511660106168682360487885043023201400653874648059602867973828238923590935033741923862876168800089918725400392450474987102868761227701724909783690205093866394306541019168438488380690345365045084377587773269554724425566817219878446854487856869974395287067298798389334523617667350304424077799482029799465739167513498128469997499694268203144161442248773595028587501273801507931814229851107140013415147023195989485510378204671005856610205804074537536786106486398484695255697451734634663616230507326474623202533243841045217830480134741157915985950370267131777648934250595731546382402324269856016022565086083141883571388807274246511634294707006308150499781824262978120587880548032816395413743366968322183649498494722121758206844137481279166795396076879583587463203708571124466355073520475243840603839967780131647342025704697362899739374479323390010851566572225673480128107714188550205462486962333839348664340256060377353011653345433801235314524934722289506559843708141567030074099352405062125633678074893533949682118932957368943126723972705878425536853426165878410574172572354860782710321107233327463628256655996767333012846581078806572284928836016656952707485181727776257785259009220221973099939597998661485181817518583864007499314696113746576786687301238942949929937162549780612548625138851911880968962624993411438295658359377546932441856745263540092702970061555661754952072299285789053361424956944830221442102548983510881571947584920473126213550903485964380455241785371450942602139778044709336328498311766906595846468874323249228324504483008515695545441600870673597515140146585046856201004249846322482204121126303213406153812593720488219470250333950953006031630433358246969629943462815382294392830707025929840535329284116892218483850807325341464171535404470537272125330565121707550646199065886145818541101023850440255332389616005992329234888759169186267435686587304018653874289686189768709653422080178879714880975882020674784465849871535535822675024288668488648061291123289532443836090614872274995097593992342995624141934166368070327712806008467165077938331718826525275595921823106369632718351235660932729869629399790356449794083326304542890231873932419265770081178745111756920411851765012031052164430281905673514133052623366603237071473789687128446720101107814606207701133933767279071371700574336419569199116371981002418603386047347925744901548829796098312470693114758721621138748306860412302490942808360988350865726517374923748236180292083510166275089649679478583392695545675937566041674964313293030649884460677526158513576988043131427233953645815818016066759225925611128507422146188618219927822817205778114213799942447501829670220889062540241850553478835416859130598188929270435799435268639984361338333580840415111129739311050273936606322034465099995956367131360280886145324564862077421776072027574485594619493618979353316030330008654443701082773427079729725538258608813550956304795238797090018071339842777169803946769051051255952649607004041248228245734246341041967000239349703243713257597043457292917058809024028711573756765366152006358034382649397774082958447205854317474229743565471363352950323533030620010077053917183326428229068563999549614173112159170311541038084992887400776269009179143843935315976624376115050573017364932557813210921586910639208540296789948168079687493907794269383629653112331060473770808281697734279455353698361080586617547864643808645906259072615431633604511874507722160201011203426447916444496496616227964539327938610305729109424085704491687706188608324478657910129957992032245637393373102093441182069778162319519342935581086695449098847243042852523244784917683564006610460440561448029333957309274193242740904546504656355582052912206470007083563106475280825921325573379297425789515586511257259477260591206773822891668927428005105585780158436027174607851190543347867704966883239390386148708301321034910976473469782975352006255342236425136805861396335365137605970212850018864332844117731011651940733876493477828528348021113453734211778418756287594365727834055881855336773392215845670238895587423995525486638373025328679156114558174215328846254064611203000300328907080786841832644494711365246128882717160068621216942435336817223745551997392374768301016173596513468975884008395186170670599329887139242947039835836819415838171072193270887321009904686471253627922069879698319348072392335363326874923072537629594270193413542442159080792844387818272343879094291172659284621256998409360367125215481010642113293820000168347138362932221451302527056763776912762706171563381583984980371043790740290537333201629620721597948396347484860151973746360937779322871140701351901497734241429876211512351924113859208045564008468063916806789437379356547943853945366934572931963472956146188390988299147051849622444154848076639741757033330345604715704179601647728324310329056414737908839683478335185133622332730488004245147543749194983006908153844444012362891301888227294983257577677010985239650271000596749811595464758565540128804735544752098557115056158371093240849795555440109249068479665081520813088302990038550263664830925768452307342219689267500151553496986796306138950487893426253289757214033525336095607166271273978003342975208589709580155315153917231320888297128587559314396067235290336612045556471865985428586840291258992162802291619594816088094235667795669441239826569109239471477855717579096001998498436854362553152162232776258952194704525758610196305168526546632233595727389048756762915482282215732797135275616943494374534285620956898919551137599469262009819231540198797576247534870464325821044365489372649430624544124318050689694766287486629308659459274478297543504986760914616411279042388809398427257230014738802842501963101401269472051869519326373685155752816670643699415901686563360625208799466913332576511456087796132099209741140692282394284987509386851544813065984062230006858535853993068214635599123653119516058079586457904160109962802125939223391002696101568619163571978324907373071970621922090941554663994793924049904363785017935147003156280253153732411055560003581610229269374130378382174517439545664301892582358478405779789259655634321900652063755070071682239057201707120202900452150838205478455084628086551071048672018892640081904657841174246675475362165515805634328175052197833587328635010416749421345604346201600593968828804472328021291121414963030759170280719442320278593963882744065126717100362686455876560552008217031305419355123902846123347796657736503624256427894607069171797182498477678244451127899813116975631144776495267126294415819441629291411685297010574165422711064264195581875068027452808739807633727850289475991174171032420265847216781070673153520249669575202727438411500166255801954182063532017124450187935835614094712525649743042804122510773349163609924107286464738273693192800250340558682032926651145242601673056463863163996604999471698466098885917866230796585468841888532399579022090532772290083765590938123789054319053486153362582735876360023034166581427644608896388525007284411684237831664047739333870689006407117693954560863302727254157946663705014449783597925340135513175810740787137549918906505490363848020943803603855200071815969651364410766597123797201829885921684737499780396117303411222254049718337661785431554325727207205832556233822389946620716075978503966306887562876156231675996337838357525502960056313284066188474505388422729746204818362997900442191109128584099284837369770702000497351519568186391429884981941219133701729479941010215267648975162791330739490002998416090188761126918262140705642852230755774985009525801484285235789822486377243461208201699408290832118152260582518907735625347120867303518111838489835303884222691618361338468938216296924613698684618252355015953805564870357917074923603402911334504885770295876835983996080788965039638444837973035291647890991119806760677348314312041453132489889031508193312155511942853019355644546393759247031632733346846775697438243472081323475893229681726318351179767869560491396534381494224124993528605695019593893200864022050035896213199475537196774327567859847672797117386069813279512474243693082064489313361704744318702428050191082197944796514054858234459585671248669140088794515574195297495356754212139127746461035925930083099650067391818092945539395908255811143291222703608646357235614337433681803011386460390664415975993032879148196197840115308772184293727133360197635521007605632362373902972145800896644563773902887875411299205072750261016285131103758971728412966140675850872077701172049944474551331747498800019918871853051555865165461585979624156704509459757707515865431150453602713506096805029319973018977720660937129323414375509771616430949250658679038036468784240127857880057528366468987858328325523319270974533566517853302992368335474687691026303607157661551711237972234527726639829713816678990464371110060739378433521982020507260533012802403406800768706763137573377338008020157234442356270713783686129328747824147497830612653307276835585950615094309597477305645266509677632854532658618964754537891687759435197015726684539508473925323354607944046064726605179116568669472745780384140365512625853543920152043893334492495434524674842821384685580847114318991705690660364947805322299557324128927040441167759275142838573005460652120557210036331632801702342822984965028508627950458359271617807404514444433611312918311872884673218027558913883955851588389605726283749860243026253610697870689103392788401666031426201876278973844528238750281158739635575900005901835689777812430081256440177183486084771572203975568185165574393087652552515766913388872829002093247588617216132839406901373536447048142429365370199355412718308989901057330507088792336572321903206949074912016980977958268080667115845765614910472606419820106784018073646438947162012626103331531631003031248243019543652249085950615850611137769938429473049487461748082780634452628705081579367098595329871067544725856130684451070572433240286099219102568962512001471904805529355441627655245536374478260552658099303337317160802038106193016811634755531461087854212820853979462466445327386097096780405182804553636678063157098124152962196171587764844317520636227064400556497181674634467414920572621022580174628922754813927317614385818841899575699836941006893227354486645034363980872056845442727865843554792599031145146572624017907949618927586986284619610502164958556743132830347203714305218016655246472317484409120304704209274124660118779007901480066261007342726337811037344488340241233625655623115394952513259561355942723278672721698438877446964430864349641467622656998402972480358920687821959062108750985501428456006580451157069276172781821652440745880036786947974090620842918657360210438867958438007610964535410830966059541763915048470170574212372194742136136497209262587608395968111904095345725830084733401458314945107193347454710483483294942555232990120940588272448884613648950939113445713919446835614853215855517052972347704473380310579204445820524103948481558885819859596754869991115229490915891705642025387874729647995192023440928273123321444180053229327279492241482418794731366280387869180660687707396131329810036197709340814988690852359510209600144693683728513874395282997232464607517032518188292362102686161192714595284405128442919349410757277834668352677707267732158731804331612576620969128772197034842068634493258245861758366051452387846126345256141053944843522650276173374371008059444976447372311496221474487394432551740938892088389019357462136462341289217159126175791648514713980852733362725459989556440088400967091059591569539793729695539032213730033646417337006383934477085132542314141984711412880017215636171183344344703105573528756270300929934025500396715011894768421334193814978003908443898445044185301425741867354515108187432004613592740811689429521426000186417054501420888914975760730874341899273861289114655705872111099479000295645073069792523748084828413748052565961855706575800854447402033554210167230291984154803916807909615832955295161395282033475943864291567466550776679175403294468740799288568563453922520364608053811337070445509911397715362933442714527263932360823862764291967446756080907398267000127994616820396470114364063152302309766560555012038726633848200206798522305061321797150445210230805940304989322971663732126568777337558365262839705512130427743488819393521992016730383202773813292422335137500720223349464117732585700596480909346835084181403397858656185015954472767654043764935633983338460098808915048640607723580805900609691715056446313073692549486188833628987854778008679973770830695421111700521704503819858926084985987390960155126438289092526790182358457880472538766793689709678665575996448674126593262169154025234298679605527790279132446859720706172290498348687271737477146186944695076794141970392445028717577344839006596491404985412630075420538286002780629269401878163909991089777522608275692828399053632614503682709513985096338942339152850805171849037119952603961527707814234279624826122678920629052192276528749282962238932234795362592375069017161532526272610242007678775290899776880904458884852492561750859274566298904755441121771047377905305942777441360978722509990382624643977276269741413299691339750672429032951900576303920559047733813177838187058187139446639760142776067503787364088833019624100136952333212626083569224319432256664750327075309218744184415166615716255426044404496777522376826221256382298821519935714429407541036894492118934253498227467909542273098763368744940760008934516370993797735332455295380629869434643013647427954438665646568875614849339066732207655282953336505670955749056175151226545303895948623512653538529066497001487214929057208860540408727842082504293313120354003158603062779376849816945827672764063846937874503823224093213511148977344257554427947413737457323219352157664576757963080806631059284480115536043756557195751985143019421277433826469399716632493272086671901798730433165773671215319210526310125509330564514099563406450601946269644172743959817162292813777468395620390581425157871130082294787626549076509622107046635508375138070232500547712552533532203265877211058390099705815318881859551388017778699085231295827407799978961609425330267505721927161861866545195646314267731230780931747008816151505273287621641276018957291212847897438239017465160241799060573807626557978995776573484942042562072555373334269212649038945541598501102828008370647121077044981735383866758163015944467106599247853350543696915728944768565838919918182637437228350219895641076401607264507918552720145933449489104659159821938044065290562433818225554663043523101089726155015697661753997132198244652150508036968731077144389089527245567855511240968569654003900603285959830364381202725116496423992260972464566489118163657181260930245689791582211787367053560580859884532202843483921716750350293779387438165363074487554692999851387851593209505405306821986197491407272092264756905307008262951989072146960009873360590368609229173339291567949446716613478152834719691171139699515670382044605212892537515396503589107412614012440443719708218841879916622881053546104189439285429504829444484071044206876137245607365115885382714832653046806988951124273348739152762134567335280046067805552897850037141583559468182470523035184992467300759808602743675053647955699739166898880328531854178889615491988946625028063840506093642730850183692270687567139655684025145408904813922455071321596051043619278654689711589062830465924795244501428612490589948811825409861382627503488550207313667883290299159669512515823907939823907730616272716018391500094719889688843099388506211116502127389433938873730067598312440535359041766889157565597703338955291535585130297393370639666871776759179188178453358282465368458307576996715218236124857996671964811933890028459297977010451705985699271410020117681426870428175583735677539133953681212528453770867109623985363351254286902099723180473911466416794390461542002498670758566052426183701282374293751272882617709209743537767910796378386957374256287814885497027073225143971869533891485552531318049852380822705196642996482450029454315568603766011925552252565058340767869633273087163523152049540395614894176597307485845112605041873296655412766600852488896262574790750990793543024339325602194246574683300055354735913173331153478527155755507226429037032921175733828371776712690208316333258801038186655033840899374073824205761292184749290202571303258208461083632096394913710711274156585824538480135028504490801332561622613891621917519871708588837146201459153478866027096576248641430007293225043798526031237353985815514602971098983491848138358759696806336738662308373078719545916092500979719658524521002515760377146440506066572505669550154814815140367007679158998628406810811448255839058397095550729066712115548712419327460539875161266673999359767519433166353300326046174091398926037017432175161305996272719780006715619424390419172464289803016720141588738684948513345038945019968148715017359694027132841589894898266202382938030619307944429633686717269355765315850656478342441827789717665599879585528765524879420810261072179026322179608642355377381526302700430794469272313639385632115983502707734793723259911115965100484958563108692987545262146807189359924954162482734137434173041251759773414374073968647989920989852568124025760748703930906117955819956354755479540098002278682887796079938123879084100901394977553444104214401017908057325719928917987928012311155582850238927621517661047975892513956314336140020789527404965544074391212833543763086759934107180535498226457168543706521780118480133375505125419774754020618894776062118432933942710212558531120914595555279184020959679052190206373157248095671440569371690942657410546709421305123334548387592024673724291689964469385672884382374653750498082413613587936143162358939224965587844333787725395594460909925705736067952245375260965481462073931761934704728506777943141227985311235341987554096506142131870343646289037116805227311915215230044400696829265341679507497180792004314108279954067622859995431091878110102038561194652791909165172965956296260024452733238506809439242700241923051783747903772009456063594331031897700616671977297881300017836779564979670624364567169983587353563370668420768487558512382479041138142048721227106134482653082534670787234141196727280731917419173138427876975508927389705769040644404962244611589496848607522069543812432439130163256568905183758035403491900504936886902458434042928501195114166488370239259711438049747265963607958592601993960538205700227646759256048497259071656520040952497424154315435469968453622409745594948402186035136262741853132106954798386010660844647344032947772415446164974052033839231267099698556524330921485934176922847302151832116632933016283533922904337688881326952201362173742263424608269474004306384316023047320219755961382907908228002300889737355394083079304361410578026177341642074092021321346719198468346298704841415088005089170603262149243613193001907225713732600258725214216008709585473645429712750149201175602843228421928918253265924400818210454777414453747769448268693285214361508075608955702819750082410863050210292952040062365666705698912872282967425071024197479254551132733554624400203856859419029504261137935647250867562812295029535908849414517058913339409658263958265122125740745242547506468342193564004411780849596480440387425762215168277418498764059280427909299812214829200208547334661563710371814786933483733541854587359872157149683967394170768756356869117678342383759172253619057588136912405882262529750479582912081391583584827293078354169946273129497342816118101706935481288923270459771713390007494187896345271757157843054819596437163076619541754026616734578030782970408759741429020567678291584302029358306451585426836542635290847774187912825329673054931736045203074740763403643178394184197661399710995205723624393490828163570943593245132051327903228370914259596696590979656710234754088171129553131928036355765543243222262998155287179638746794922301289297301232126299368779004331731116535228462834002564636207979945757406951851903935666955383398195838623487396967261190983211963280890788751164696069995810595007737657736900801701519353515249549886479445869342430510190391285093789500208746030643893370032988327830482686781691915633456810712849764390483824942723144979718989949722182933793064804540889345230095643325415178743354790119411756722085526816013192343897909121555593705745710728151000559739959373760101404691277213177482614976032190067680258068233196742073988320132590013572263220784745647007918640056784094498318953344868483269626596216978594037878539372972500283813494423108414023858357927787962837329975178613541536952077271665720599010008863106423895937102566922987510419820267759261634747801461023108645227977814255728033986373287095860169088405543653442102440792502760843941321395736786768176575538410753312511828174375840420418968499144601750864137697426357520794562241280821269248717709260117970378355816173800016197378823117764194943145899176037528109557209107907999119558395873123773872608994382952731548365700331851085873258276958096322415699250893827700578253673993899010099243799864709866474202105146920790221284778246595398228998120850477555660615606703571903453268637110769167123616173108621804817151730783863673593638031825118790190082823041566910080898917546658392713868910566055030318568110029160173994860439692824014341522980043686854261897446875387093095250241917270185956829627358897242351855466242368784560836665301888273090878908579240826317691062310421980166002521115577090804637459204800139186779294276055928054942805039393838347923128409175509852486291290656367358261405661981161766607759055538596275848304454744914791871742064337044556427334126931665498950094776965799039289404452725465954694653624811348353628312587497398212494717784851490193298517044329993333790989751968874593823176228711563566615055551524824491170198440945863227382797305399241264613703295589165122414158010943627307179881955132721591468238056260780532154665018086745963240019261549586100594856477480517283130150821236503014627715773714484236850276096742847130752264196192013117233507610265677805640760735647017852977244849262239960583285784163941942012194369090954625502299993736529947741236485495239579717861617024489504895033045707767838214557888530916462374497701804646816837133818636918721937912084510268790375187128699429777313398957507028170420366041889905034083068298657881948855464424312066587924216783556432434822122794419338261388659636016378410005879029199583892095017999380686938425502285869914677818163978943118025542154362521450369866912181588647679973852684263888938665658403125961802476958758858492243969220591599995417314968252968979135150834709472152660774610442842412165188406135606811703824930388850126561281811362027189311819283397496622943973482893656446134314130399034475822862175071861474463819983082325998971874718464616183810516076112855363476198718760338294545281030701232367535330922858511508546564411240436535936402549390281201481687969985946388991945288631133100024527511034713631178594956729391985508520103142919892246933975078715335143124970416224388929941268306802101596178418965947083235113234373872980230169304867824653772310620994046632894035017672406034236636128905683906331977050369061098494416891821681674829125553308381688605182338890501966283095101701468114926037182921374140382066545740593686410338760450992635669207921825151101929035813404214724197608385148132540487393766748132189115489172204352617811815482365414307900084635333144101865460115256705645584957175980760388772129919520133444420671131050609417470390632070207936590357553129910204597436285530061622766276109283758126883767009867610280235313527938914765268372096288449270058827260314580260190361504876763243385843700719350225328441026238563469087506182757933502348003007421325034143320915619006238713188997005203894710479344365080425051485168387938122497927607821444677401726300280802445257374779169262886092475903873073582101758030206237288966953968643652778757714804641113254750268731792931385567297458960467980622078559475661472878838856306161665038340491195737282698527948727764376255564533239505831186454486303677367056560850341293090960576179766037225734385966217386689001374668973998276922061152608094465583431140185940020179851540502037862491566805785940641796674080201272839569560290501472359213249319341976135122362215906958261584225920267310129862926980987642005321009722220921213007060965286709734050358211949020861816431683833424942729765962554628960204280683839049509683831655210034948613614836748753114789860337870452459841995571355657021306300099781206793516962302467372487274209144030782995381708871688367781538607868801212679618285649053735078974646601159488986098861223691123526970837908573411931293336761661240034093851236547009227585356881964682347973495955207525200135280273209902288294582747074622823336135315678085572698334588606406672938945074807357806893030319495251302137951430363756582170735766291387006595455095225503096658329613609786213757970891690354246412913265120647394600648669363433879518123741742885487723479933990852639646622026956495432389841111503220450535206320193175786561247895790198939450219450727366934149884644037658341719812328900784199185101813070454675860286976604075661196504692999332147311511567780530869637218628135334779544325180081128385844036315246361216840591154688617044707917825404012049699171846193033249192320053366831819100345107551874675190186932117588698209571559179019604214046496938523693010317310758964942348496240475386051404381896914916121814325012976479629081281436149420635884575466630096280790854589159862631102468394373633294013987592761887031746585127766266360961403952090929835969641725425282577868055911526286013747190365635436953781394442053058484694903890358174126381900140808745392997842426352178371807386544146452909532145495128735308461184933685595527129649462344194338449916273235502874444727516996450104229692520832808004389621911339899986863430075106649127181114792035793589949340660455868835327762113888712366789000587646671715861835773427982293540047516844390605130126893572011516644701492884290540920537624905798521707629306999865464695070861715596751331463919066325121179680687988726330931834786832936760754337772543671693071312791236567033801892558039180091901579829143154362593240304627854166389302583845856284350398926959693596749570190836781512061650674767513214767276512590267342273190868760874695502297832463672718240909567518445154381700292389288718386584339442646632484175589436561461489884411949506240713781182801059882047349500547258690538365083912820003299767302955523458681994536229779374199423172548707597071782075655891739820410129482185378328101384879331141864268886608198618583353834462628013671521710402739981899927831698493018177699542914310334746525520109569081448118035939967083473706186153723462135391479028523111423823364300493816910283984553326320543162675727494997194975484238606579766439928193994444937574874704582186845273225434291077770940619794721284080686817763765999756279583684122772116379181075521273013161611884284303492510167168559655976325566333325425662145925300049017537049659642031727818985137701967710253633239752489746998114515104411354925730266351715177569789180867110600450821210123208375348983419314947801307827089542262777077151743639069963878177874528058282509753498264158711828067150945936202852856758255721445860405396539361162938237121290037435838800767979352848315450526849064401681609817351388348907890569582734992878227507579423861444545934031716077432860470120162624839177912018414704999902721910299652937383239772539598074211429436956921071142498192298366785144571013217880069954379521703289765987166890974414198146961003342142626618609792808341339026873904176124437841742092339342574017532341350024118892966159122018520380486784185722916239682368100682431706905518741524207822276936281858951461752931561377316525239413684841988719600671063779665276299188876831926282643783990413998471510454100065062475659582354675608840769140661092745378043316077249962799667872995809492405718764983388244338326703447106198201969130703897767902960472730837823129636428532291235823964484258779086121493556878579365867704549736088181896674373313033024688906295306308864929261172867699934215084889662130358980033431878266385605380991092128529682673668277157353022806551444957678523365940233685308409781449315114501768173325752702952826374316647271130964430884431281430739393038929713128014153456258004171360767436085139045047509031048050250358798938767515614098797922274047341055629192192254545972464709576519285805061730656555290985606516840552545202687284904065664715230214288806256650534018524941765999927611516533428007922350453666012619172434677758721200511191714508117193722148098499715480310990821589857091453427269473316402137853806090022270600044547899303930174977506100035052932403225291020795638238482360081868211769457482759972771673198008432523097943004908888637724282818976033582864680677605065942136115467072625610435973477614273482025368843551910976892710421786772756304068234355752809430346185998535671632954272478396940692653796354474941218595023831570064509121578570486997052610391585788765369730756406755988911442547028511216114402943599039698405924579658963019946068475819173351814052492203604793233477021780099064786855872039425300973297677334362436753428708652180724738098966998536055377465887230707937273659854187566489295769363529400804105147393206903705937704228615254457595773376321424414954299785283252215476343586287849645686033874833981265264031010817326507476380714284432733880148989051467359465135615900663100684239070264115815272817875407948151388322759246919234341019452569745992687962949968201812679179845157193302622172974629825191685128884812001799300995689217784473185017482156015906098209116619006099935902297640115986218260877877580470624567218889302776187719565955947516690648209249468819911945209268103532752145452837222846042751754067345942386152140716206375456432519284574572126368925841398857540634268002783137599951350657897189630825202312012037616193449502648774406312861862684633676047360263882077810572913503589497929448995328102388578899504506553926257438339029953631224795524902277847293346958476953292760823295091415704717835370665447551435138266291069972016479845193268499526935185716371218769697790349173745894946849385579694478158968461973702063647305053921038756749287134156928639625744676349597937974980404346090351396195589830256636253912248983036255993180031147168587361853881882014928361430530224664026373710068342996006439552296040690091108137279663941229819867559442352656504001804413707119548025443216889352000798152258082731243356262577140648388417277568790693858759857548084538576737410258711876602375667330503040692745850225652288848446807580068810166979387330759751710765998106795286636801698356250921516838338074370498239593553137066960089841326766044910994289634968863295625032443679609051973182138388077412707391315096955010525839221548202367300102303418144808251663440643103690853455831712471719881297131675032978672636191859557613926577452227544488744292697375468564913613073097476638443755921818571012315703066466288404520872693612192620926458347707539281251761008618452676284245071508853328545220415990856985558005510452491763885573423379106880515163099634135383978999270029245233548628437990593079663310625969271396975260714103812531798135094238347389567282316453427308925044555020621262292953281945253527895348002642303624181541452926496755366502791619061012451104236789985889195806465968260361250014235673978315343738447302674709058628784476203859929704079663134682300331815101470701101031780792995581279180697018819810697472464028807263742528279106870379558188148480543377549320779172879628532595237600586507706568801405127211965508345433044316350061702093321751168779569089819322637698766350291998015596881115591129798838092848243743587633874669469278108076127299139636904816536095603676103024463000680842750871725121815100303996433213124078842405598515622210861503630199356889677231320173970475153820244011187739789463948250602273421430571144891456946660306780976316890353464023176587905924455365598295949087212232158358833127739789807612062591198164002598750052224770892036022883606662034276455742599488826056598950695423816501409411274613220415185267495798172506173699665936044196970762874925537034916708652363321299569637427930618992644949536625914302509997734815534788838349121067648766498904250670829768680105841447558196335205288262706715259120686039985073331509623451693384742571052262664922359874256200855490354264800174556071968449262791308318878969240614047353384897476556666744712175363395576465726398378481565285374688131459487797430740624054200119985405103661725812583263880311546223299305276221340569939729538706251947666956255567161146354609571855684435916125106997312162614652299677199806415693271427050674349610538404327558639755021088871179258834155665404124780848114927052728669801349388855471877659193336645319149949417538900991855267981794918050539419520382132114560753968383267378264464313320905008521359043766146381297995891318911885037370016594164262252654924129751179694832383414056952056277311461493602781298902793406120054474672552376654241650382824359419264464624951925955701955214000683584774211816380406928008661983098201757356465121815921595955121245001911515982744145358932682409757805026556828602946751498278952161611073652826741198486873100270750850220093780221215337578750152734231928623955460193421377052704995533103477149054932007566948803622148877232101429188705382662892666045720787500475237061589836350099836848426815986541899482186128639064439187347185747598728728991870408702319713009349618226335954298443937568966550040847984447334504271285169131246149020531214417394516726866502510174111613240865378710828245487244205663678232394441294261211436093934409722417561741298314544543756981601834634576877553187183294245421243556660008220317990926243073421645112293648085921097074562748002858543421948252655439342900913254051514362170263546998411829608621321727272311008879231729368436230329955665677604791044527770739456984112901634913487713437009455423139048844758600131725441184627781914364074250126062180265088068317607060790483458380365763346042076442016837818447122535020013674876934406163176004047386761900269201169084173597098452888653177447274782683317432550647008619490909953161166612977465707201224431413187869413765045444723998060515434411822247648371472588021203644929657223862208804330076521732477037450724533463734781545865891141993235344268413204730711435409444108340400602254493265471339462094501564175998014646486736272492417488022041610608903709311677516466702417778103190619369586034939011620243735985187211792145570784251412782009439371611672647416191933542996798363102892270314011058091005358874151422658138321059772791338754522556276508211683784536936073035141439304409837401710940619237453379779652674710996774141754012951879284727458049921593883371998175188767076530239537517783649755176076095136085108462029016024162048441246601963643380038018581131327925393064374556680497462010211862353673582688281124449942946481628178748975410341114457731408333456983193153254270154216581865517886663953803984712243204623022519792016420788381555092616669006612804780340167539481058523877146153629452644426909861157366313973423281365397852676314876673628655531685236007128458561930469317176906321217749969279984502201770561022684490630743141015696958835777170313127057198556470848007016788246129930705256476301641107384390570855712692534470549472136940401012651006955623129157884829312704285765929842726899838038323894403304421853739996536934258900725665043978754654894010960979027590891879203138162515920056210749960494511859246568737928053788436614733575662476295412712916005839316380748733334759462381053372889464014771557724716871356822433340847906501081970052496095185002443622609948634684220509406849064661659621219996424492903988176713972051843992781956985242158444049782294094457075218860690140843361754586735612269607764711163462297880362272983116868081534843220792758472613323776467452594875427481359205928819033358397580022181604723896344446740783780664860834624185074637789702231028628443859488696908833736566382963203135994654320296853599083556052706740029125041073129087731956889802721599235973053250976352233223383786744620503159091794423353966212284441556190024463234418936295563025189467016878686673275917758403305117622539111060393599345416969325656999140898376038916518434896598862137126192766724357974135207404442743994389268402185046439331835329241510167450202672122298436236385138342434591517001385150844115572476291479535228664588401053548217779013202391666591639245204230129455518153297431541914463083669312817387129488365624875821815042523185666036546556083913863866415093395004658914695934594244152511826601300414017532734500154206106364141929876412081198905685456170411792112533378144053366130156155783322319539400688242964261096326060970537672557443966114252818413579381507433247570460605816887972350810828443220641591631719188270297740979573667628023571240966707287969521903673131183776317384734082911185667559979780419969766272964804975426602852257341614263156289101613293320936616415293743289801232243437564835128657286125760335924007442699433298204040350389894527186019227950638639815342358245501455193310892847440499112842983720547693311624217971748618656695497941868782428180691556759186205187716544998937017532705711255057839700938326198427026696193415713445057900057918749678099756149006968735545777972455619289256757922079525531617938863002501827013155231150625702431881550239009811499809964955676065131708880961400096016764410460570121498671901927503402419361910332027941137906397012857966276897327363539338297656794669102552069150662919282766141781531820259464671015413991648584818934902621102068648096238003957694089632383967614158818349169840567352267213704840186944441678330664684194870241778650859363080010886256652244789276405518924645754249414328598076463447501174396613919367872977850378570121122607450332491766484076981767058321178490948872980240964103869604204125960181222313623548869853194438694798712087806331023750120193077034154974454734936590331083920489853636940745345048310208566039608239853037853293714966040626388444250653457447718331254949899165667769609394610773925131274714533207565049509832254252596725280675327348515275804684784293842810282066337214186189283383454691846052166079409840973194662767343161388190698290729538911852644753812084112650939630640776563975142962487657384679369774975512215915077149033135981343260288103983791514347830727736269233355930118770654811427048256316818188910429942133479014375094301773556350097677079768525119543991319466858737096854055678684371426233485505939932211643330069495186843729469334013758561214742597360881974548511779657219191484017839067202080838901567827665904727918350228535590892619407768227644772962773113686051992401166644840564117576031552686033492386469777729649230154398067755234963742075130290913348541803722385538268613651654420793942902420236315579448662094724014153167699711336674291938580523236207222621757525574072040778598796452095278017586866736545700425382820983145448512448631612284869141171040542622765661209132037429526896175283254617930905012288163968655962056837937473192175563488119458499052521558299925426532824630419863752888014710519255379138252477270437900825442009357235986702793166532172168208630916994738886551559607299512406911878101672133105352580905058779406017149489645442445165232123684299927785396767155526090253424860937286616804328838539902366787510466164764774184328981937576736108602554745738822326104461853771225242192239242635396396919804128439672866556307466255166726053682096665008230361168891666129131368460584824324956398938179446529831528830124052144458043544212512264411048072744584451406892330249381649329939320486538406792022814694059712458832387135739149236467630945586142710383890369777723384104182547433271898353133277258219262443448439620676921103775081201970970786239787360819285502157724409553013077820091183544402511323252887780135788718006229251443450364311683251469312076597320108103623412084655400060335039418217614340025824486257332418903284953159117722810778665993756642949396997343981243718689896423902688258126326339248187021695201398999627374668395047896042870420273454369602877875810177045036574171584591723798859433399398452657418100139245450502080733791674110106397821401209765765526115105056892532457240086547498103255905573654790158266909814099404963843433470178766578508201292679467722678910629689268226408211672285124318608450184675990765059975425891272113128721424590695558004071049023749847669409254891820767594926503788902791391366202490735727182293128666389539831734528829280298960834915993029253064245898130503049422776616339421709149604174386124719573524785099109411977146302435040933047159416556230676593104191251605330354478952524650607413604109304753847013137206472261207340962629253958217301242014599583772959527898349076995873762324114782898857192830791662377728048797175561792737843096835354057760049139362899077143086568960301495175594766312171971976105336113052687403759163033576846734472812462712364846365542428554946250066889077394898894706690655287556363184238677922748500390190705902853206952841884872803237417842887707884348042865112433562819435566032939569643522934213486712289355039173886738674213378041762499995403586762281319897634402814589583476456720335364384038810886692432331192500476873629835563940300138403474516326407739410171894698675738095646802487452334746171998859288384400413696851258708660403057084429212308327480346845667140423184627023114284736249428123639847123227527011041094809925849772909962662317135386457447936401749782451919815283518193893154789805365816493769527793076339962575526722915906072288787358216959474588750313714088828628611804091442239984435188130645834979878401634074032202778018541513907449385748850879010617996616925182930560416591082710067064635353615230602148438685615900490389397899196762556976321819687738470888502706726933361297033170864047398400975501497056804410172842485020672595077110676281031034471424058982031553210001432015821813202288749034706351124472935371209202408996475113058588055709624988270751296586875298564852930450534194210448770154831347398842606768767862305193504334030593127207719780279444089462314217250818823443431358093700154861912825648493212721504182888653688383983388093421607298524303002858001368365975840896426361491069712680667024045839922040450308404565074744754741420957644234083805675705877457137470399766084379702333757681013225182278341198290190414865753778083463233010684211580121392409511995817990463869064313482855417464673536555654940469673621791320751533502212356290823338950279966807482637826543272180197485310110889135616764018748535254449290016930404173591289475537714111940252923454788509470054037016410199321204405195643292087378246430696128891243065861875128672690227839168542439916282610949049473374811242620409044433991150626386036955995474953501573446511712954299843829046486881961468367785070859414292620978987330444328523323488989995610658501127060475449715288019910604770400516110568653589107638788338508977337025083501505167441466388272936219178570988668846032491644257883008404587626546949731345821387800471022436207804573618131510352818362890898536940340563906599185521224265182591301745069492196758890335111830019853989458790563261913601194470427566935523063200216923923613529007119652335618888858301846765470904723397041300826648610809480218923516544217284545139926895167571918789503422334424924227695896855473901219721706707445181014601584967974893470591095002093978662640669265145186075388906933634593342530653343020141283504478910536854197622878329748016936751337797553202757051452889063186458094602841594961511025526866917940947585937024924191917266036747505555216892927334543095164895128646189342279848178513011633304731072307188932205974962259450561503451186248669829798173295412310579962135367034523718654940373837680606394791084219039915815094201145083076582737889979473281828912530420933265312879240346920695568488462892744513545124003275355135238523211243322694590002340857953530479602246077122697514482093834624149569293260837747600818518050133482212717706364357008050354133571809761570895289152180069568958193718822071269529520751595296229424715583897756655911969672444860502571858223315411458588306094406580201952431232803293107233815164606391028417744622046820720088692729476273906102222417888772450304725166064396761391827698921370226603708994819478797422499595291705209818483209970513245054047138383896355844007772170974850678928865248115603232347642532227381216382259733615222942398472525595213134946325258595363685756198635591296378287527072456025219683344559195405020153452051150381258327786773549260042845692664784948816686397652479971708883020108542998395519244019971844151261168435784797658606812739263142463437122008092449079858975271878186158159813938816068649385369048697268658509949306748449363752307390132913181484091169870517633777883477611807531717469045435421434810891630101836830278764776302732090871037155869990540209604891482030734466415876656757754553045985767363675499268211698609834202596816693470294482711396462203656964710581076465538344690591970726276790052189448821931953584182088046602277725142533325539183601895010835893190047231828230175906013701824844231861943082172011464558084390162458926956023200984663548115824298717973567575525113073954514558059646834667519601242443456911213071413243068734019274672259697614197946765137522148641245941140344053695091629336345124881844766748388034374186742147904996470797853617112553983581361969560557123310551039764788282216161471453798637495119744342910204732312386014133382279692396586319506106031334697517069433108318365668285028975558789838872003900593724248746228058991592458350195945584824717811479400331396966029499068993432992956100800883369769683596927233643625177915215548448272724156883981282987534632645260756636961326258518628518946511668654461576988805587100811318999975659333742504015746263899586339452216323690455200190687193585872051198882655794977528867462211812963092408608370689113225682981754264586580961572306152333957667253780724382830942943886222038682325491680061786244014326184600474782779116933642286835290032160507366275854148497360993419824715094810271703547787789810231017201882461734658135174561139700743552955109503395014758627034711184402343455548834639058373235713175057842934415516924535464136812720884395622461141354311214017114468305978983228169811405795691705028356607325503350310878713517730051585338949382738290581052350165371589761800795391097838816830159446033160426511036133730209886529705541570069597540114424577604695473106644918634191815552610070640704860243760086803424011385688274986020000676440924502931898305286760273927498791546880177898838924069077600388098958967391404750430432023829080821449501567087991309333457924115253388727125107910296325134038017893303864547780008514828626556521638245333985132989416513137773921313485528800666792888236421008937973302531436947648389340021725314427657000964998426468565258757077075153999123918726201941734289102522581868542473988269555127533548239984206558408814804220723128457725906983197939140849568708826622385926774390376272952761823038423231655039933367342747031622944217963219989591326527827346237699308245152252517625653320354436189641025199628759136641622553424020612055474136126174019708128024151376987120052501162275385884627595291093078423271050628362116371873496371505576634000944139243329570721785027767306818574790343457405185261150742690607706021640085911721229222157514288549021182418200602481559672939494228701632426074473807441910747749202885824746554190962881704356619115104861366442601098572063842685066312803491164019683272641895941305026115749782108512989193170013585044505376450668579542915709810641781839418232694123226556228480540378871879750592772174245250769387132267492096864751735120741172729752224574216709662533416872648332036268772997098947332848794343371100781485261357553043670987852843776054755994969979158678408857480356628202378990114435472533375431301337053773802815515350654898878820182701335911363653787412041427408539329152081842680800240622965352256703141101974050545234268380715232577869905198241039279448390408133439838807062938669459779485274272662843659710764929061150196203876297990681514289327514829485950071560512668859584863167184349921613298073028542527465484505021310761486840416836220567710366162794205882929320872556854451113635509572481605574557972691589986630796996588171377343221009836217841590734122328130011692464438432627266709869737874247840234114972912438875193333063727538438426177075590527249355129865321719274938738008670913680883361750606207130811283322179773239274284709202356228423024255442545893557741709413852509948497253537010223421441552888692757882181255809020891272834273182351854419090955971360303727759152810723430037482018129494146721478856506066685358790362791648938502713645447872212696490877427205265812745341868297268016728283424172818996131403773297102933569449230948452693815552652788757108627598778125828787674522251194225136371905244159684367459030579215568071615166328628192151481789434027464710572511590986468473405590717046205312768383805506179191631056295298612006076354288102047724948674391091310365729552796600461518412772815483215570640066091918466760205686677940326356210721632775615330432769706635820465378581325753261068064605612603622221158900650293926733535476554409291819848892689409194064502134589592624274796097605669491951101603760102464102907476199509205204173145211891134303011296629680204195138767221390792630005945173668998016591693832929624412395237690858851785216049059275455779212811090193679671097199612573631480408279356733462790316042770735643158372840678116200404319464877929554895409373151875328633464525644586627394927057964562808375115754790357380291090543978263126996462137088520040799184740865190175677162831349664958207258408328471911028213818378135720840802765642663158977072628961681541309892593856564256654568845306214578960877029051334189633022109758333688575753805558695261433529182253330434104754658428624770733723308325413801550302572157966298087343571469094379988509942788425795686962226766492390706048952008655137865708569090491824588533791570868015315518124255165463415258646473309920513323371322077332703399080598851689463542750085825830610385582206677679899049250962526994703243699745052203624273176322548000205748940498252890042236187587532987480875719861432883626281187414301950064840518573216810004218159495498163914950607472910176164155409398557181675913018009102346044585395094227941120036516244970997896284274739277321622202558938818965852375442282802016964955935751537012959993313240112706996570995423585671497352897534963029954235395190483104827282966424337185763147629671467352617157754444644361437988571854752972227205080215896382666212832699406285755001262029458375926558276866550721584743706839589424308040637933847702230268515317059855641810639506160002200875568115931551009961317080981777507780069940555961617002235903015107930052334827751616360221330655194756945222561914635122180045237110762628355917594408847008619620614323788833309315714643565069746332812411472526844933341546287976595236728664952951283497405055766031765791601578125746723412722616957207709071498926549423565512052942263783548856933538045265225897642723333761990329838123761438114441977152130862487516676564909515734591832405301609969013711688889047981805635234692309411027544889435374989358822356858521675863205028980062841967739426991271445035129423715225913160190307893930933952446732073249314305476222541683563647198224696907078131176352174187486622047169204120871208412256291307377651063088344799865981675097750754373911770822465403687965474623475679127388732795839452029401828826442078092113618206121316036536092396767934368236525737063442694993471692602282008927067012716071995324711869376490354792079265659160325554803104008264462672627148922008366696262137114723414042556991967197212224191611063366156760897993514530109118102550480226800470884771235337285638783492124755687296353975278384101793390466438222168568933180176471973249333985281619481340135796559354380165248485601441503714199306529011973132151592193465070415859987707972397104588629938578184483388503039688709152245833268725865436241433455625883029362167944049752709608121749017393589594610660920950470866658677374385364854858103985181522586789349607795345928062449006057180804895743725392843979248839924738971243962209303263280532081589509861627410240130602943546494243157272187979700939071512721135594759251125504852229143761284703272292149564624747864114462833494211460176255484099004014332009709281233944285416564344259159393262587942946966889798460740022717887940919455659994850960518867819877777811763712092704116645736055231463120317537601206191579291891725852878272762740334385607077455639485816280341528653520747758404453331375954293005485161396515343624871677297632009478257000450053415394376922098266462093586334853024895837693101246208272044884872881344383717174247842247603686579049721933556594461778864568731186763940438779069094355020743342453475955247761620129102782849905702611527026446697523186411782496579762290062681844570377130767694270286818443129461418478223675149429063202860222540128039568651334606990726184415032401524527004767964257352517106924792020065146484254724389475399898769738552338158774834603499022090120411794659515852409645154158804227726537626030442960673073448902986093166115960769333660470119765126841355511843816916298124640938434930317096248742685421503396349129445361058573192811841507985233794704538746545501144724502073204219159349227064824451847557326068991588196357382914054482041568787191064436685066699763436371710948807987367639676422918388848408138622480720414006800282049829531129570657287399337687777889744427190587710027527554906729192261038855362766574765840933686216608419325253011857626875694943731294857947995858036644282079946097945206741210542642766296657048524679507996554710930094275913688842390889614287398420948075977614951316135901636843358679743013775949474298863961539274774104753054522109312963777027996388949245114564545902780479121057865903403372874445616873354171793113742850912668336005491364012681099297576583089513128859052093036801792704950096422322157847850858260931907227991887186555487814263368431168443777923459363737844967616790020840166945079725294854338634907235051794108742647607366938498693666097362481847474790421919828722858597366125608039666635506917446040904704047544561895389145936543850769205052199636260753469917807650173946301512309850261940775524342102054599615483565939803979423083048637960725006362005683706624800992487636836687037846949098973911880811043210239482750050652943281968801349439289917320988946563232676921180320697983413888640546401070317401817790507592699497661007599351549512705156011895653986377485192259050306200194612495096636269583975251899275811806810298205013322635141828826207625083863530259709464084469366705808808683309460743373782520103266571180277994345389839189104946670216992429452847474404884701972394660517505146658085832664581702756033502212948182930088098132247276064077933962388830347293954640088439947218793559741516337271920074111705218534019503691620551997679084791977578020767225028539310744338464722001897614673930837425523052588167455874466526206576478466493589371965026368489209905230203814999674358959758981545949459252315693224537851688086630187291147345284766394145017167297132283001139179646248651607261628953603365307506148952466640498539863199972892502930391872543949577160982835017316602751325043425370805893494037657094293105432385416764288846189369928355578758775993905615834480676882419578990924819308632209832705395501276166375901242085558982319285664975089075980846528180322210189410333577651055430823505508427054690936596084554811945048094428352298115077696601044021205398094007954966666321188944701510163410518386813882030509433443464193444937889983791463918817893361724061668393943244836614193283158235058752875655060436474575252343844254710578667723306238995905835527743419890454652539464474473781919730322751258741522542270692563977825562995133876327089889517379104697655405584239366120782174871206464661374730718644817580622834998225418030259670201647547928247683684753117274792469277631424634314153976560666880983266381243455201913560057241952628537633625975372279301335955445201104730343238005138212810500374071272314081779846205377809913240275945611360542456242288139009342447463772800133616970285203872476501064044544901986879997348885903563962033843297667543716542885786949299419653783773828438164787874906913606828491558974593543471796664252781333242490692150160780762754986548951209327519479465304840715121002865969886739283042344976265741076162846594751329730103546105783369343012970039561383495788082822738332994343867199959488568831677802512507845642026138586846453227802122543667698687465548606882573336700932098240482724784097335024707046093243091964107828657889052704351458867019573087141298543632300454649248496829663841910234170920653719335331080275913572125221921901122370214566493815549053495078977291026236462388597889855454154897107515179071212039411935356804971009115668156838958846877685495918677303560952714343947884879900858179028615332977739332201382294032427938432217492039005070770907554142183819286488745982580817001963026331221490646893075886521703062363834980076380450792701309709646567786537244838838075284884174098397390106500168835877408691287928788966144336818436465821440151223998694436979893009560892262475572491016472571743644607745276383601358939656246478903318253167483143410919808190869831220125247227744791967562397483718369792789895574300234233610049505692955049944192720130003255017438920475048061456722061184664136398729253421140681059444665718864681431443202300222007098620310959470978652864918043844720542916566191482430593200239957028154730063975439393721416068729974835558669308725643063869948770366769007197021815052271648722386762877173415825849648041504723067809482974928258841034284460774486388700762695107846304769201917861621522912412465726464013806178069719292766613269206862729372608401105402383743101604030060742249328005973573651710405367460687968396236035015373384110488162202945307582830433742494729538110483922228017245827122520855927180168276061768307573612618415619876331852548302407352257531349224641186971245073850390976717326373125797743191151325195568689248263318168131260846892602951117228546331944256986398444268680747822142985758836855660341595045389042434282521651164856700234807051676283610186449249195188703830848646591969972799058741120928034402747875913625526199824990125606664819234663572064484999565461353686031399173643231368006054084680981892328964178158156662486129938065439610949286228895434304456753872958169229584685247738425897493840918999896486456682881943156744528798548918290987995349504702139494168542481876457824456389698795796144441315499079714401470454023384312828532607059012082777004821846321320551440983649389812110595749446464956760859952739082312411466705998043952248211561058901878559000968373873737271795173388069521566422345113539723975998998113913874193070052066469979181903577939390636194095761714098052382122269763421300685525206792195521596455468020328691833099505302986390293021862604905562617022661476344042155215619640110488171757494137999540046720987860903104405185836445819364339795234758616082394085073064877160197944503674772733310441526436316410719567952042276608557782380633838864169939794719846669088190338820645720760787930796981505179237468450062686877771531287499809705045870310307492996511325956710591736766780194291185750237028679670957257279404997427121916555906437334247447687167435702870628729236087533633977940951734903364345359644248524185842464296689247873676333170822907278670585911257455746895940524397786740508275444335782170101622103484433167790825716409898091628465185735183977736172313079742983716557485619911307916152949920302836529684268762697137529279005819770148944297939954235275192634080040163333682301064466467667861944225079324590273280359415252190486581146852494558535660698685592288451232327345198838734725362182386773187692204255033529374225937994792608655367798442495458080288780534602894323098295885711929198443771056397372996380235132271042908348014774093468162662797542395835045925165109363434590951479673528656715893987432960615142904625779701142693640326981185031826121805415388363851255857693328832858104868538555055430865918773602225240393246111982993112808479910996523407066884764235672208400098440132487090994865523828058025310741088820889518031411220917580887514784257406869480897955368812938147555358617164657962672909177874182053032845475226736085939357572192049857779200699677064161055979855077035112962360600959005850110023517970512965569745949325726845547268321275206277298004965146622290091289966795897567511051218072598440141290070219757471380119628830864672150930725295930571149110571520423006434260821656071145769110637852023095018103816536866535137806285065575642997748599487446853041099695368107580972877438917401764125530249257363377268678119537496880568340123167883614221718404668641784178297580553137588800466494389967865663893150621395648156087034836255088668482856494079668370177604179264062203413100702977395157470350176063932872590427902960675761447406620384154216529659392384795788604163274731608495199819192104232889045458794542127585905914768600399907569373902077073164507431298632774838638288943563668383020421900066777125494699348123267608088245313164003117151050290720755063168725157344028843366202291282135644501262892642821265874256223733844039221630319373127539580224256624348570889193140509120735883353848174358964053966964859077691088375886804725459965409989835878413939229296924633294151147956550974699397096348883270661486641638871761761593672182513833560739497529625487258479153561229226332757736361520955334119244526130066192915011954587695457991457816265570284919200651422746936714060866819005754348223458684772950996710667280622543887525936533144923669925232314641958884133843418477364073889908447734569136759283610216273119162710645004899885499882594004811782794514657175219801055373298422692647442685964890187566333980704711662693791720624897302060542688685809780732718196195057349971751120025963949027149969389067747419772101310295321522320446475633744352152330225708247764355122678600568153024299792703085121489238840207338044083509153017131098074232905262502334734813161899790647349468085011085878227257293987522613399203699733857947167014768052088742849927606034033745165960197200870260228827612698533460456741460654634294881605454970065295992139434155215682008935671642594439359786953681581114438283290600236550405193374865957129978690839726373277747985401976222408021934876566633783556829761015883648930911763269196286335046446681998439069772533690070639145910758186451223366397333934660787041961160984269227419196084658998869750160846247011699744801886131586382657602454843859404293632944951722103463357556007500296855563263532322748649806245748804166343157715693964071058223039067275613259878006122823724698530678062017977922776917596176863948432065733128931572828911006545498888891385981957684834402327285464611534281075263971091348263402741705039737697855823440240483784864387564256773368122509746953065984654650696327443633480636753061833138590853370765354230335993749220805049712366409338988076395002647345048636123897529791659727476389737001209543496327738626665243391506973099046717617113190619461634722123267017158955051314326075942842371577336744577781170309559043240669264698387059516871233992677935518752561263181796821517154812356354690222758220334097282957682060937303637573217735092722641253558474162787290980656427399787635184745681501416837015833199778322230176417987132644922107118962314164263829267360037871555370113350080198410909406657526372455311026670426251897000569881380671003040975450259505420261632637241544147607238705444363524732318205610492529691679854060496780120472962650057218719052423805175721326733256384493175557853905966119271692237869365042439998803254721451155702710144149343645071861370607760175773776676059801592153025952362812764242754426323850904495700372164080104968968631324212394797586399990123077935792440348227894644206801640221807745478666999003384017292437688338202387492364917527425842287638646419296404639505430243775481290618677874703948040319472468684408082844190956652517832346460595837393269448018892428237202426684035858427084235791654238857414050670870037680690221076857557405129990889151176186313100950712398071402053228242748068779809799893904242731631511677317778409038760521105813351581165769791876191700477493772231948065996823333316877023499831581577348093839206950482412513600834792172638891558188950938468915961614485992255908212006842473808489541449980385517611305362181504453315392668611152916246097975444071817098277570405612219100319841141304171901890316672683859379563871369696734108956387428274532184858427418906650378215006139561542624213861391822058012984920621118699658293058969619263598997499588360438292475496953779927451668537017904958159388435021528338005883590882998581908842446629743207914465925044474309665343067544823621103953090113533085942329959762496696180859075698744156699992024325045735905797356055557366213377000165545693740289936158147546091597344333901691638679269438690572956827790687851914528067238158472236821650683124483691378984934396374973033008649093462160149722514450700021466044151689295388282766295792047081073731265973019240265790405383069043654916839802347100983442357667040316877745238204363661784429532714922959736596024226224647405233013333599307497202143284890163948651891754116721608228317909995854412214346670478436285685860358084244554091559533213953672730187114517921202462178663852708277501742807288858786298339458687788607569285804830221160236436247807623539471888033488174365520298726789169249655540457496109517736969850137136629676529036090820237501521950062606016445286494762855998675326242774425323290139122347729568575203967114914998261373462116591310441165048748301610046830913911041239425129477784836522749917674774336493965961597235345700381553458279739103164758132992207389433935669820028712263044634101522199673416099399586937885458598543241184406444930366702660193612507399279143335062109496118787533370333167171692820215383502312333547488660094948033863035771057851271989420372844201458679806171501368110803451166765395886813020796767551271556062601041670825559969493168899894309117635897506862315517434876216393039542822572893152037957646117992731581767683046994632137367751739320030069737654239799062061878255321436071673470529166731715909987345499859548618954644182486115841386660095667401458157644993518558933701727597844442865108648911409380313590626916439096152234941254262313280237818114095542550315217564853813337055680402019324101711807874117330378567575458377459370492967737466368617594824390045954007316640329411462447193056345708300063118098672423730235749332238405969476910426246918402416311603371001751849931129586821830114424485804162067076768499001138352372040159314643380432947322564513334910023970676633806773895240661739856914004461101090617518416285590071300954826035281991088412579182597633819068410152043056054819644255442985856591390133488233914447515052609702550796677482263118379560766512041124386868291770659823665299768801323373883103219928458749051833270040811692036795668379056007397495590168537133169080632747813019901084389988385435537526543422209272773840985408963487032229580794014794132942920676400059561476168949590880302731128159556064322513691591842104058678360675206068480276626315866125024889438491375533846306275207522132346477947525951798877286150948922549629006815167069593200910401480703262306182917040984055549005574982374042118902925565131268821503864110249270710921429796986269632939715062587863195163668951372383511694800135442883116430477693737015806606732227663155712267991204898043611865094925787801093985726900296438087111917604667907731630681011435472267404891364937138201456457874830904379217092847719826786493602768623599468744737032038772976522482735392966402493770644212818792431301091183040740072864255122178775639577842676426289238452981281207780297895276618218126694084441314122537057338223447172667039939221190166169791829363007220153743327755077555373221641643548169152868294972287419132266035559974087571218445248461316717765109417701026345795578720311360346017530314348902334090906391736962826473086311778614487706698197030649593895935764167384826171983066015706195805142443335646485885565106100736014141991785315929689331387767758707419713991394466478746619982447740060549434122398425500173996346835820268545438411712541363123148652313352655373904800291953454706234617882245118335219338094062680388271716429895902954658840698072062626675781116402847073464945175252405470644684196741313639055137198565289454820529252340268137440868606653268523265181225335386140666324557877064955943136810600022598072102613042831506248308880133171069313865736731495646808188845223882949818601079614695577772612744796060959447517587930116320110726335079236174137325624406622698247066229777960915063316228910216544189390818723143006571270337735906439736863871065195983359972705903852121328480324094844395762548702735141490975909576065877699421647596431012813329320920004777192278801026943754081151893663265228090894790348463472122265020822045848850138612865671206254305149642059534280621646303146951246863280562615843072498152406000901599581859140885589928448548794115172149805676461811856564950134542832236999729837820960243591896716177447687062707553599345948231321584846310501913884255486563383117694047561844019162219581683112949916677814752204116782069210578497519341596405972422795586490503563681003268827057059461149472997272571399316242081987933193055306972410639996428062327952719882236441664059465390293797222535873422791937326324008158342388432179443490621604815435092796078358375817737228467988291817373585042567008742073487841789910306959926112576364702350835928322478650600170215497912068184043535950354714067457463461339897390665296266812008490566102131445563236821201858163804166274061683729154494805922906365909401294585742867187697538398860812980507428335102397041160804666411639082959354263506536187237730240195524232292265237522619579101339161354812728796814080265297412461990024775285607697488426033502206458984158981928857313422010615025901389406114128035405990638528056907988364338386209432608874147001525676982887042286094648897065081702702069048194281294448754502861998713788745395993892802111648411330931546969505352637244841248400997390187130206736457767813587554403026455684817819132633627672147161278301969395644809206724874986394966829940216131329254195185633397663858919118209424843087935494428986507526341009462905232528406630530028544332120554553887738290334024475021656346894931086230904357828568021081277037791148632396780676577470101765857424399445053653215228225733758093856986973276982780190916463569911806238573172442284681200000418600487187388860908564892298115881311857215326004725196407258763279575095291581429499545952902369930538316891435431190771427757670771443484597598245584982886742343820576030657480614690081063928493280872897161955930996901676488123288447323278564875163685551398894468622817549564532837104040126330493255836073368286635875419347207783888576988405019390480785000703412372697902611042103554340630029876611607483443319829698780952992002942114479502846322482678135615163135037413614779046730004137830949506884371651850016722440302003250507382851849581216121849728979270269930346654659680419608786192692601844200183833159833897118296402494120603277322483734212349960500957737871754783453665233942378051374175456379153638058468857274385190440478562323896828844970876069433904836940739106191471652417463286037023432640049596804914321558494679280480515676542248167341645436910367910985527429085331932512172245353187887160101863361331191113503131959947381171514895419048321866362742902992913254214509958189545308135555132947994766412569638282426622947180615793338017824477072257449971743456632859595201772197322248896858455576018377668268103643847865731204252420874167116701795817668289844770584827147969417203074203408417259264357689704934268741059489200547863787515782834958476174150302359115257090191261459985473539287929151525858823523806317496092401513063510544818516094796285465682656232650719859909374886596915804095089875552756878852621006027632919915527359253011551107766259491690789170504809049933855982839594562923231746250434653280408222877543198420273540196964599456056247967969424409823224262081312699211446738579587145710503649622759129951042248627530120415851082441650595528198113889196710224931240276144392884367723205658514642422205523200443644385533378688008014553172803332027194417043958639193504065578509638454573292884625700602063609516951351434925154883798425621436141236415628171831053243186787090476152285565437777499711427399682784287627868598867236762115678799999417717475186032881840441460604270647163469463903379961632004749465451475494362931369679292379987103950893014923010443526290585891398526183541389610128463741927962083162048552986772188523992673046237068440735199676513345880857411032099213554585398663367617908141359600883590587021133454853511321270011987009239297161977987413614478853897385372697259722550390252459637394448554183383544860537608870414929937209244844450673456095993812275963607407179035184190155700863312978238970911961327847880332965539332382549420513760851633759856282603470523942529317941179167238323676604785333904234854611293724553388424989156677232198704371015906881710998981167157337688931920549402709733206843390205887896225058988943625447524060638048992921568387603980584244351002049262045629571321686586047517445847202612062053989885106057763716381301789456803493487477872363726017591228031691505040981261324595664626799258731494331367962295351637288383114982083490371104753427784514804039809366598401592591078809684983769084381944666991760483369948777819808331927026248967363438256325503363148583188814908304425198600576399157021512662150562624583163304899009899902858286414004256320321362649325684773703737141687535729248553672300184337610606154092452762227045369004388418634665193361598800454415795196693025330757941414679947924901457693069845265437928662558670826712348010715005377602736920135607312285192097069434088659822590219279119295528955423568600483457805816562494023968478883661803810942958776318216009638947649227082008544786214669071250431173610926582166054288601497698590510579916558795013078251789269553514709479544949502853241862020252469803741256141512255801716602008291141581669161603495566096953872855282823307152135954720384527461397849658276044507894005555058958516037678967269928628689327351648762149234224472032150255612315115328346677310203257344039809191681892982083303808589669316124405750890839719277443409343165443651314852266848850751297754005927701467962156855524114911047005111717871038483173966695510234102763418664790537576174009197730093692725607864560535901590744976607589538845652182658241258943642613714854295969714152055391529607600842596182962439513165329441918095658572446971791754268578059894806191991896273025519483703330036448430803521359827842700498926044902286635356275986732893487020655808025051751611762761521745953730386304840531508891881765537442643354907562056366960588179732412918681959895140766178806871055280480691291138355808663041861010783003415869449480175588207627793610206198978309853611593672379111825893120227279900309696407864033984017331545637335259198116924362858912788825001823799249307382436150720100942345832188217184209217236703035287867153795134668174077602760401980542403378595547038292827980521481219527028535252972434684773881052686231447575131004264825550557953228261441831673098848281052442739455244348848017523619377403084887581430050123353194691891337003985483673483978866744633530211276559521161669022334835834802184894550503960979594381524655309843114828483673347821137779133506545207679276067080404237812842758709344073290142377940948253536289896590462613523403380990243638478105409683293407708474550933957477802724582779750681247420129441711961211612899577832865122815046192077191012765752502527317094365221501837192508245913356520092429893239129141136899925579975803831381988656629686526592223196567327606912104417132966339396837726451469364828763564536815504517810218454084183968387234245796379438598870901133702710777591238807970569978979628575410436802704117261989652968901431452185313199718158933504840902222329979064442744851034907822133496140973386317949318535309569738888494060707682512227650781643811767001924518827121566844986647104018731459648292687237299445402758856430165991476770247844973672201214307487371723367680863646257263180177426449349942110433031412349462590872388527229124869042818110745607295273563649783129054973771409154673537913472831899994881036361280904500934043444475760047223087601030408945035332812621911436720541694727389412721615178900636322748772597516015802737440283162667043153652096237524045829078132158676517166346090950637117929257632636088018744027355501495571700617165602541085309168729408334094007154723632889016478501608721213704330589081020142173361229410894749551453379812577976384662270645087898360665579317826426847044529580422141120774504568055639151725678228251382415402636169584944999624216657495216044250060778738100660874626395265067390226287637841655442273099760571409810629268277646982611804489984530339772728143839988613350055571963769041881706213567999886837657082063389570320022177283417521105264399934579708361641253216257150119633947885627746586013090135768924586143303364398384935619441372945395415356365486581332334110508954895002809816572495768454069881495741075756295085687744417578467885721542615025936000588026622065276684855937625998021243131286508360142555131257508743733329344103870491743339141688906714518964404739840304135615216925062540048123411889044848529178226778270163865890872499057344782316402838908865352337518310536931830230940316334938875814206938385097378055125805880922003827077475086489617251088700443510425221802783043916000226020666271614365799893680533454612826164731206723649435433477127830636613246506207811701806673771023616970912949222498380476570176525309290063491096242649251688108917720996954723559359028939619261014500478077935832295564302869916051831925816173849664773188937901992430999112418124428941996718283448026790676803563600356366048264422732974397764577053873896607545159877298218978533093071012485733404313804109574538061778357891706272760973384751398943078143649752140706250321045121462227421537132613941698984929062717898789503613129159621126556233371937109876379916028901061369110828918193680801341262231039393445698647296184153303097519116076525392382380184934460490336018161715734843660511997562343356380589145881088764795900864933993191175995442715698615652952506073365722122063308186775661641197533164908803840959632528536765529653621690894792069902346254879325426596688092211187065238480138598245207138882220529817906512773027237798631765489818138265869007757432929728915074305300896971482144001622435093487383624250690363497247781069823720643680628153726101531072669881692015068902158308220062969298036838369929687613261957351391377856932215418841846419634481054675144008790085772233693844211303728477763232054333584416658735239787343160368760618154048796921979508068709649641785183347312023757298875164644547752760978851731976721557287466693235484327158533652428884114158512487188962591570646554244794068998200902137808022223953137474463172866955258933883942263362794352930321096925416848653597250721922384505643170611995249166601476138760308988458387359368111248262542905979482114860365751966262178244343342421565487172241788485503787065496606702343824549252973460380813093775956929927048971220611323339908484442767677408640274812683698710427312807332958198308277887933564692396874129558202754565307902305540785113606160711118702388712878976998679011751522423870234805106110771057753842225039374160080009915905770153191874155004736322325746095559714001173693724745632674039559785514133681113000748030709820029149905578716377395356656534996206252294439711149021924196176467816321633152116743991979784390064820327238435393871360862948513317239617256418198828377168763221952115520649668609911594989171956900484373880556179549143671580914244444656504200108258396008179526810361177043174959623030560268492384781833705097570715760922907641075385996182539671984433633318440696407409595063053675071482552310373716762059934197377821676176016478302759821009975897010111035763259164678918899974228151676512793886509400694188134005036375364527459639071335467391342942578189729618619392112742259583703116527980274762137429441339650369346445665517416209098309307523897606154685727046238425423476069736219080636837681040116840639824730128447977397333923995274260146408167018330800627836615542295085654891688601147883916939511094959507944973602029133202150705432731949842165809412355318806575966824715748375684547251198209540482536725802056035137624667898642047087852958378624211811867938768505447599080268968546477601972105388568238184490875295366971792594885668985542960909955364951025506331824139363433472681527838471208063162939969077037530335894428163913287117500735208692347082519344780233554797921819245355595413560600715526665113176777325881843762585213199156672251484442868250987273426483435516096786447357434729941194801603716719960545755431329686999612441141804812686618780683754767599306527430576198817530637176502900896487453125723119899072322773719311935409121958571967311856784287987260553707927401276401322115301405346772191924660670135965108896727213769468348726300702449832655485810502942374485183858000477415386290472766503420406299785741739308164484990661778352547256023271804386890497107050228036589802158785894997859706280484664823483548881316666023573604685262917691099037767481652878600310315567033135252489733643443049120588585555480295137456083625836052467739152337258104316452763544213848741643709405381929608233302556045139684853550022062022950940074415750248726727306568818053305460601183735389252430821549719400474689855944025966228765494141318826130050453672990189872247093669307226976532881716544185693914831537910325023514657202950748434128617319127698312656721093476761108286436491341507474752422221481131952892959810960542337042368536454798805263753558970795743797850666792906929970592955717665954302359402007506254900871085330413384132567067708446542779384293185112933164332738128782318011479131025852880769853470300036255235276651467373543267290104994970047418996015837035412217118723292004557708193321124278817700271433775506505688374037721582077504790586815481115510736155139154957836692236413186864829154101350623928079203735354984152359864638217512996431989221864146045401247766509132471330178467457576796755488713954542303162097118400483020091357664722913703191204022992941179549086377690871783343175734439369226774407539124112543522437397327131799412081995839724278830960516164121836115436081417399170324313035530425177498550413086300003959667563611125717595198377547297220161694793704370472656301311998071576130221560179666867451785857130001893062444360829637574090395616529138494262218792759902303942092757627177452922312088193143784675261639548804236448464753604022175909861080786587505364642073005765771536467506651335703521692998588191982431951615844516377648194142123055760385809957985200787791429290924464127162952917578480311806242410513709348034349917508497636630310157716500990814528654509273974330940989719887187777548003217432279166684308907344677597254605548664732327622034690408928790872338350748643357269525194342933558738977321111407618483026795913783506704568242161599710585280584804113907675920278566493901454011381019075841818200769571153868813466690039330749630504134585693522038656013809369370804906033854491626394266001467069553799919747831489883052948132126156063353453248352371030061904443759319246884527843816100821916525185206309066883391707070500910202963062448802806212145538993810158352285025031831875235511240302330476591243749527132424354248512697098795673533314644979094233500356524228248002833102881400267246127008385545982662856048178846925099724801912305906503239686304088599405849477900603758137321862718602442477647014095817695803248033833591393988895160366413814178357405720344410368884437658108372989307464640807845453017008760433970152966394751093031422284050782985956355441224142426054964312084074433574006193718953416506104176951063297330375528776710486891604938780647679333855743056532741907196015545610821834528929574422565370920522949449442430095325561675145496644942053727077444190935141493618949461688329181484288716502643923235337816396823071619226237626173854502831946334401652503533551413980911654290523351581950618404075779426899763443916908686420895863347411191511120122108627157251030004930229516254611876403993094784628896299255989945218919526099125572736502784854094485607176566168798348101816637029638363973497293154202710814830731923854191445961462827602546339947288646302987837671902296891077620071464188243427249538800560509286170124813284612010271515738501426345236017757397650360085583766303286701483469902839495444446115857008799209262069956415046580960808888307891482790327530114332618689219134987289452152873888760318255103905412150747232807235748670047676669176373525035219397418034064356086986202747567269226406531670990263559996972841395413245202742286998229540281898836905224981752976071807825615643521962793114987329344015533193744651516349357860807224522955472986139287576036548202022023466620837448511243136033898051990478343909569476644228982763758400261446709861267297096263820787628113266709073722562467498578552381829381502751851398295863242135971551980473412460422199915492984304374256695661025004561688383505258616991820703834773491194393785491085791017067385860672776548936529874259582982870747843408894316285523558827373184429921887149938487287158186193389933088662499562062405469393654501606408488037370757292705842094631698310907266676575603561407147434874631453902901187933543746400509119605611968731689676480550363919049250710540245524985967004490859415696925882500784530317705870129167959384191119344711218598966152136316475269123300874889429808878087369700086299717063303062659270480274302178566925166728616137366188681975375979898713280803039549277450520665865995464014299931361269981254428916970205389360714443331113278754847175112346185410147372198821709607013229042191002826905513689451474865144100758829571981005171231149596833924371100468607857373616315987180775906576842706590005917813235305621624098102774350719157784969538245487426933174771244943837924607536720874168827171467894153275158745587671826822327480587705893792704069182879838129852651166975336139024292043597474125322714774278343256384960600177950189546800979213409327845207071312340367833198891672378911936943685309740257976246674340960858465237325025794734753228204241995995266907468627032780486582657404738810825575475495927027034800712953739534498163246510151404034744301306908332148654341099915903536816908852461095404869784676285650440479231119513013998085859894878758808575099360251055793676085569596438580264115405569225704697894714529028344501928072823564008843482993975857739811420302091576490847513607896640711068928354219723364024543477407035152321159814443950283958064923158823651299703339958248392021152243007052855329980399481141266096974292292220110164604751699183831803694294404604341800412376382630837576033131034894288981321039395391210161890845755357301358855866532089787145962432351590561734877335053073316961352539499107577796548518900323362583000516492507248681773571825001354966484667018945138773279519923564085960859387697463255885066898547327645005718020516957143965844502974206148090488303878515514355746482698175085497149408912598799802821998071944409907314034325103395563120933293548478789155665722891874098096478805878596796774357471665268554859347635317675129487785336909886941282556340048899674861880762463634723105923499879298654101257528859932243993558763673352351893704474318274026697051130023675326697032385277891911110632734075002567492214646903138907123337615533292226709214686863447342538964693895069780614631005764241052447918578211523832239404017665323417040882595539559422671251926272302897720540822941186881686572487024167142009383350612141309971559594199744578801972901171227734691508921049163073223152949436613108889960707869221576735820780402086060196917163755836445169123324299272886674142900845875144142243118358312807765029929196312967423287365249029297794505632371149517738987859008725790556158934023783651088722533814053091724524473601469149814984993289052074852035080956547289647835151289932919408953142066494986503686229433295424488911171429676337829479455021861360486813914989546494147646635237092998919001011263000040262949759124399077022690601690623419236303207738175996014940965389764096756157157919040725809867470347522835771719046743158091456423147984606914797971367560650385699897540938665517590261131182698668895001788862445151930822731513629805809489577883982504132316941520325357520176807636853879583889533352203403610612028984629299244485093008856761381036819574062814916183948500551310894486073779109418362413033269439854289650689522862617552109369676336659285021977132513825611202626682109189199626696438493791875527199885752102056413314055451182756956540810837069924074814042948030489911003540163572929302695549941551304960655596371045348998630788075118785837065897770375784207498734512946294317513833093672479183814081972656873296691665676835355459801990135135009404697520711363592953005068170613652966707559889031222899677463928019365214921898163904595051338024867460284301745407601372910533705235742748889909266200447457447865394490907463453469217223972584517923575614882219403480472694290193682677928432456913137880198587731137717908455607168414400165529003090240035316683062947000446874102302344433245799087258555191888506012923839575536994783638058244360440587383732305182196645888371669591485741976238152223913223635814640268838442624340418380345607954404327469752680125535900852186274164370692010925963869805266856994780781685045441712391231918624722032573922801738724557116107676765922914482524355537175884370394314228289368101934468722904247337110059857692024397631267521162367225229179294894769499923878956041549529223854611130439247550747974646011162536780817957604235410879356028932423145412880607933077580387196787024505232652557350752569081886239727174657467806029339763793240219720779504224209449277033166120075950717031147190652360986147800076271260210930425196872898541994306470116307044313068106380299225103719395046887992101730442732705501056373657385832520956324676238941007195275984260380813120566473052904599353984048964080360809893760962853824514596810904329886193895605334641303776089371709046198035412722363123355417113053486227212909630011321643298441527343513538265333430142182012613770851511359326702067988449175701729396440250651859331496592221162234973073881706152054437529920762278361800961938536784054522213307020247351327929207387654976517480671108498059500472659575582470453026952077106062383602739870243843358721537153121549004816956167971394959396345520977230721435560695932893811203169547745528564189021383353839136841084906088650749300231817007736724043023463448491483195877565353709429519363379580618347559279240689196167811174431470373175553211970376442705764315937682335856220386689936991941998793862203925412052976984935123898101098148000175085877619167214451214579767259719077305786317920981508121591623793203265929921182815783505059611099322555087149163929892060591888982095100104841985605042659749627912458273020619715082174565352389862620885413411069270379136210465192258465226308173779430588170896255904863578353220873423497944383449209762264091709915265323815520848860808759475662948951147174982929315283961325249949879602590370602938795431118489008518021217017418277097614579741951054783503358395383859245871858984748863989238213700038474783663230870014745819996671252090298800855652130932763262772133509270100380193078395685823296991092583065699499602712372953008974902199335804811669807523827830213403422390504419901697280947695413386326494025165339081962169752625610456445561154324352963650384851876671312354147967269403054413862821942369684938456750689919114433826232981706699933254895264093323309816874073157712490786096201361883881405002199539098040584886513269150085545922905711194789576856848532728246766097405146328373223665793722375370239549411377875786751051087607036911572620595485157358094561129935368123370404062963900320218398815879807412392346343855549689123950738220142357796691847595275787915177477868000323353870257795563515280100598925361129359609676218175257927948656805200570116716892731693856249231560940983847232519165241163260501075266967013991662235059615200384600684803975803570879556509771974864085645217241026490733048728939598379696049590726371279941804567475822680259966162387506588699314141282313666154103520659441776329076043318180481073311343828556670324624856431921254763228969531610689651807100050436192497276385809954007789419024678655428967790317363858586257072867071690762203416989126200456373514181564141204171652777721751479955313532461046501390148165070798827083556584192862240730589254860107710543298727820228396101725066912538528201487020171089486575931513718689917024514406286466987445687161501527671677845326705800343868301918329962186970819673197154850611656734604502928678154637027284531917463103298281204871361808394069857279583218316747455438607727244923229642957428005985099695001412574065242321449914341901731233056220974193643986094151931598322513678353538488988497296369980161265201149758403540899771241892671894102761727324610855530387927563164228589400152168099073747535846550313467153150208043628518347403379579172938880966405158043837562300991648706203428757056513394093490131155688968430618764066203913667622703715659176325843865902152496775016416612264274440361565434613305733581942378024976327137613228021921949905147059787823411704294314555285945120011209026059848260298353712548426839236714590348779918512518682451361300572764013071819733484782806604118524788772524377192924575049441916772812909631516866248930458871138375802447542376476842442692063871434579349715694253605266641564992914751977124281829784973084591677041983895989980536425244363818273096152714442228179935070705531286339596109508782308831576583452228276041693235552010073405035437025623593831563313751751003247457936445109294860170068490208749257367265658450773634200943176969025181270127168871628474457586283174286640504883929936611033955022513496333457920795370807705543372100551064843981894450827282267030243348528672951858898003695017473075588402905412836914529131821496922877714499217218128761659839338793764253393609006135428812462081052974974543821534710179162626472523455363104491324170685000072789977447550986452776054734153801863638714740465923043221644563864922086746511310958650519630171864342467359892266571672078152923277611773565902585354249296812359862966430123531399979760774170155092715081540097325614341508540508544957772038643075667198336741759721405158232193687207185632677481786291973426379995888159523370794530023700177642772366621559552619687944691300578168898018572250786888610009143838652021800375328632662821231084933283361141589995073399106963627837990666067134122283875911675012309552532246981314017180583644073157336004285991027583423550696695653331852695120129408067893010876979066631974333002598978014565473677884612154150446116965365319303604801238049993621812847900872211165964091493325084126679737961773481421421989752921263719990525083706026399657340972337995304413170635577291899074970822389413014768831541261302378474811967425383268378537306659851256514473654708343738770374493816234403077481017608955713823419508086005619267773146531211880413506100262057569998337009471190796734846249332255715343632924958158497142716269480404122503370535000972038826895958088446074405539417807561471072836223590842579420580339241138508388284377599259394384798351269870547181093329554258101244757149711891141553379177009045208670534711360080471494039962386024266282756257759656233439568130924421368376960916400113958111203185077001062439909391382948159399300626944334735630868093404832469089860498266512858200861134575752388661823803541856532397166342634104635769703413206052103835439822995311883423074517158498775941543052959917552150489024241032716401900635576171043180921653203984292383703099226663181914600630094878890707717964676344109605487401037732820239964205008732480550935246827688253697124954600533974928688975291427296879837884430860499752833925110250205341223161175072045204540292487746277553763362357147862468358803349314432473904337192878693184564903259808616428154464296629730386621701813097808474145277789796949959212820945094521511392450929672886937250973322772878785831134701372237606551415201831885917492058262001211967984713587099856796587670512228332606852516571219745994258673369029306335106310503962823226365124212285464922132101412448606590009494613385725515114296197892055815978142819050668578126390911142495552882248574816074270847273664303383368923566393106578277141275929877159905683634849247759190430019654930205605782832534731679552072057428010527695309125063955017399968030027250997766028977618311796700009842493916414338425635313185362597517838087238104902953009081356866125337343437335380098736766571334058145954485330939346002990517234115693072785009537372522725311062608182876513775472584875039584173955563063614006542147097810754823910521559131348330995195267746170084305003861578649142068590432268440310440358019859665700275313859918126662516335973978743514234688801864966593491955008333841098283441545607067949308924188163938338971491072442218810123928405607507705762251138939376695839008907092690331796725836467433104103270421313875871236898637890905687491309621363789371292300904394459981874364955616848845383012098394383872419173425532184830726493861611163737327929809155124745377214197540595209305452468043083871796097900342553477956847711381653449838002297765479260390952273807762199176097802272437081382654581526395793422318612045350131151011824557479531592646130724191812421073417778671887040904723472398424775670058405078004280049212449729198042835971007607862419651703936647254561127695113888435381135420168382099758588456507386817833182489534659333438656791533181616508866156674283870196826390259195797449976445000981537962792954993852809005908326800799020617837015811408910133137109027174279336041375291775380622420403582974482703268436324965251323985405988063210477297112393920748810943669145910619858635101589804252598188482341316936600124300973820379060923202906452792288792673989467802764459009405263543481081642087228481884646546546818400280552966985020658032256231316027966009803587522198087895587895884408924533860504360235314400406408780518892383340411569909628150172093727960150281123007105237497881516227892850818650541566356712204957372888889149678429558078901699907756745056420380333250394499500720878718758199464000017697803167748351971109352236472461985263667873157566629039004739449122142318146552476324707634256981598207937269927603612634244580880327879569454859222711914345075856424102072139939882465302329670520319531415597738192079223342745377352775759625964563745412293192716793355967259371381251148153378423986167974758701305423909248751636116010201093779792395246865360419719641470320723464227169509613493010817582824474851328628117963416959709206747602250734359361201953538281207726112659089791193736573258980445810271798231072142293282027574869501458223021129388643444951676070952076641532377577627193976952478247378928584936498953394461127308347650269681993365346587688551806449085127881527072124969542670283803350370827071404036802647519964233942046145092270002353045951921308835390835190318741177393601420807344480882537302620442768293883436854808059570259400072739705716296679148620966029189978996822644021382662887285163819243213954550598009426688212967218880452335484906944262318222590392163332860146408214955320410347779975411240876622190228445333959011798435688018559987571206546079626746060228412030545798178142596914749457427313365799043066331064053443000820876230905796741386360295166200312119876286367576850977746565434945424973290293596160213990484982252622928385431668583055447779861771986675029268527584511950707176351767914067037046378999690390904917232546885317274099612049399591437982431574711733655337699676590790534295224106528598928678958769694975836795958079001323227101884792761172906435589678170060798706379803151250563137369276959877273818696251577958572547277196183995348702079260977890693311035506615763029266568193746895831839947100641687584897545134991367100135282625412488063981701589659140330520374179859814493639710052649676226223249023543442161545796538706466035046803323448557648311720556240125257810362348271947573465161735444582251229143952510883308199437963478744936207094084207471506447866052083718583338589506633614060583787299966369990463006227754229954719499032625959071121902065893554210121292999643230023833708109746101045058722929199463332859471245025964456248186310816930708705544911643549000706507054865681393895942644948828638540821578011766696675524394654142472794176120688068708775607356332034906685201776598641621912184729908072651950349621663418680022135967871699589616206999612458306688041660773726150906530937340307342554932637654331529157288338478321883215841267047657068026894195834037562305923435336157303580259577969128563168659911810608275570710600404334424580561525155274769699184350920674070087485389591627770588017647386658290686914593396935637688762299152587509684683426808394530817813928727088457664072486721331885262002865775503414377228202182300339987681279845149122492062590928350722349730036040106987753870937802233752989285676111055102771323354094156020486197280933276684017651953642430138643340706878744405306282279855895898323312624762308936950959844140077920242016211291843489175710623843443200890870412871003334469576559843995775407547257969405740044372966979490190067649389430789962478243181439337704694783589385161999371324653651891115083248481882687712218424363339582247100494643633706046550616066438869764188974652377572242213294438608237276232410225516929560726885371029575889505165199338095385619673126169775085276443767589071656757987514338180118949629909264643417332599376257201185396599132491003725345778383955136108070330150395776867375090422238883446532084651357774004831314084563615548412494810102944372722348605434294866159632000382108577550989075275835399704586261808409792518685014499129084184800303751108682423043826419432842204797134611951638191627720815601901198689162731726485389351131577384750703475031525791564961122792636028152433481898426433918230046377501755109784233063703254907871794144966720744439050385365779097887251104383577867439285471173711583825777203834984072124157353036974034038041520904799438172144947993909476891675414784323474827819722464210302054888988748800282229668053420510161650241553779109248092156208438724119072919768972300410280846860816461515273456414805474779849284115676821535160728145130104671671403711992505350672489931838772882816859826056194726611378354797207036453333945072790930547079961590340078459447668350391414146457244091240928365590392688571355308970204259667549200190577753974785636640224545410561430308295804497472907009771851093199680976279843161415633881832903121908381013898389479095976849398537158244203057885964837166714805774546863627666187072456731785513901768864657195130621459151812037820663924118374253722120162108375514416534368584125409129551987959869461010675929759995403604805247268632973412566922078763350187740618534017482545782379704524281944033125296222179646206601092769763871059268884869328044745305957354350292511895877725232466165934514519305361607399048997730513081091967207638882901043162173557850842239343870665482967764419628681248641474916226104145830670483788516815212362540167109331993676389946221450853952618301082299654025549482441140012205465739289357113537079697200195044280208665462385613888529636646270054532269822266538511097806872461331221297564842467759271514210443807782759841506856661522403394301078603393094023339559242099913926784364648335236073557457654994282816550746352127617906725895175144218126548770287192384920703503232763133184321578754108729688832546209532776042844103025318745699694904336551997931306533534615421878721456479084133205132611367677888865355858014579334807079844411703346428178400264460629991539380219335417894921729301364329799352691194863254708755543604894411707816539073848286957928187905131286960134248228702125825022995852698994876497476670741877999412321956025678975494177324699104126079074272329125164710158836554061273618074821068683425804563799171857701857766760857726806954364506109179511722087888155706259968734396446051646823250668997897252315413957248839807915625802529202186644134963541947768945010737885469680722357917304762955852957505275061055035087060115842326497958022433556294071399366236252872333386675004014801081106401377811460718923613250340158873360822130996082196348278804520760043072871021741873242477515347431006723354766518659447463535090545621374124558439924291563872867575436322148966819188853916831221802981607492270735650969071845567282341156263384013842827026785563052193778445969687836638462619798040111074317226485697988374760125339195602118818269581640802008093444100473809357028971994704619123113927477716285164548407408873439639643754549470562902652024054737306263109272412736886435440878124520209401574756302960224202375704041497886941800007003990213213025307445431734441407941582290442702904978694016583621453321788986543149868750246502914341482120609743223484142585930358816684455638146428566179944900484220197914437702796048151491244308102626008853663997562060570424285592569326848257597116816552554455701192412462555129368794981848699179772512816969757046399001045601787176684280023416034576050357304330680874402931669303037213219979122232200886812497105236043680302739866592334816484062186154396830162779554132096154060900310231543976684401196240237761021027267496815063829711575234164679370891709295023565683013686293066296508924883739039207840835362498778953137816617000302259018867552583333359020609714776466062138366172571962656327009083898064797647362260538639756142817362077287229485062219415972926884444161657704463786591602544211659372391528424112375470911007828762580264734002021688927909075294586186013319939665347794995979074609767632400249498627884097635366959736147019921717961196710863858243926809926808706570596634530078331088489816455004148771701574659318148959369263699316994282693126614091487463247220019497021101961049716461399383513299316449937863365946849905638611752389131042390949715763025814398063377153625728919264644035408574021958839972213626374926923281361092207124317761854844773154303493650137524316905052320007746394403533278684211707516004873337538501603594288721478539593516106915903560536025856530306796916676052661862116404360331748265750722693493646338042026538958135817382542225950392180368856175869908216070941387755205424604353400312206870788500738128578019407273374523334453835120346365812701940302345206935311408854578961982581129174973668613678619006407983566037171923820445710617761001827301742330501392901674570452039797244625718239538860594831227153315409440001100993469872123321867500035335571746352941328764917989385372100617437961872098520015722433036321141965652812433814998179307121360365616031394834643513934621835661407835426757044554075540087528821513914733491270818492097445881863349207893937267527562307050601156823221970967201936435469441353116044994846976733466330262805091944716602827337425814363962141400653918464744987300160029887959417040341829459585164182298016823308774527200473282113415336193815815328741673354310922900250483705825917478125562676375629939640345406593511522728493025541720287247506877788413373384648883721635134625422171304306282896758433143050728019205500266298133036154513914825121140077017809523191349991264855026624005912197810859511512821158757489825844441809252962666841701413226650074112806948920019115212241113623424910105401365908147313618722068598746193476272948703487836621875591569597472883302726916542951274930341829936723868565065510767480570709777451072539420827878442396228148810431271732895015303896087562763322201303901291492214375071672800566302669747942527401594980715512151246305430722883587865321362678661744044427659049155981778411501738333071063422378274550499636239954669663076647720644983632917380547083443531550408808715901187449380368399041816564027977221709112638802838718371831068774800794149789990085901441075280127874518219102739152491746218554827993087099771018649087979430609597472906120605662998147665338373740533343880974744099889945761817756682847529412280724197870164832695390160391168175954578874507218192121743381181331093636896242483043695390354314744428012764419960559972767235474108959908670632122241255992834972980671394528290125324577909074402113875284169392843475412476089071082327872285224281474500085825762223487228457978429432708762118928210613195359104500428195798986301961638951963409690080648167146142972426977965092417189338963462767789306896025824872314097834574734279317919868829418314974036838981951305768634043035084869196221689550367600048736582810419671707540979872514545168745268083208370571795888158285602061865900578304315380826503983418522730834212235603714887955030642870856664687363353891454391939033713412632106644621822152113126700670336843986424322295843372233431052506521362045275376378003982684851944072090993335410229552496101971207598238366028913557989373644259052523148500990676572415521496892039949679366606618165032223794874523027653278065161828667351858829654141857497532472451526167329929668078728215165852895934003393076535685981384301047155429834623506367914804793703983747262336370510316278621567966273935531052577098947455291007380216186610310080288674570789444632563522776415816059114037885978335673053838910635055736989800330873937409428706154074474806689542492604069568745482275424642922665710241151976651673370066439994097574758089924035344090430975648710694964675571311891283109769355115401806708442884091920271799103003816150077659352495055383974571002772747130554125109146077201758855805621503483937475594978733552040365102164037987465429645841607607182773365060137678745530654511657127775391252171643132998566154711846896934934833545371172826797925357459892453426455226965327679075333215625498817137236919490617250967177353603276248112217994183927233299698537679567331868489345805728377929228384494973731962038392246128350162973722428149124724146734562740113629723055789062233553117663538810531348305420201423541174690979253542118609630961800945971388654092062805133237374030853916012597347380846281401411246801458660644329353881837821485250894767526204176169298057210171849631681273289288643747308876489092044127530384594315127696360336609159322120164545590637075812215330864007867016848867022472781437852062695865410605673350683826027107936818903194255584294552590080106519099512679762263129907124197913973875626795864788868541734033858288918632569837117520643539060507785968743665294679407323917164490727420942267085000822233172779536541134631172957989588170425694292841924029991302584867208920192193183732060323167739080692769472250915227309993255582689330216009994096565393092012713990657440448710894305890357889931389180721479584322735313029266589799190147104388077199737940710844751542406334465484693312680037547538133265007934693038246416000955903827095285170021831496018326964556499211561728659974309752824973215797641422834644908264140136570060099915107575803967193549311308701180434161645311061642091432358871585931883002671404643629811594102894969915760595798325900457548424782007679081956465446454377636380837192031102672203849731003736616487686278549202483673240316867872738433356996834309111240492865138238661808988769262423493878923118831114342824457004840512143212515800354745880558417391590844305678073360433174357304010003720697064350996742371265168463811045631041584788225999471550715053907813674353616624532418046176088745154746761626271801768633035424062140837685720140207251251960020684097275642408544811186537851778730444950977736098257677895096485884067635857127885420433703217231027500714689178215071755716663085752922671138691989226364208932172856804826206535440938813139253428503300521995209989653613157966420008480523730730712854148243727635734745011350946646322901142789347051240451711106668435762098264535799655839045500494977498349543956876476945378346185518758260027389713281892713976690233982092498394814162198024260226860106255451266198770256572769714696830600367155249853766649337832251355858854173945522356497494648813282209316639721352253722803695194880331400482937590345270301232450005706605102270348140382721265944604224153724203286866470439715978642185323905468883537690728365892318462584387230093964425559372543486905362476767806432518410682123485953957343564495998892618998166159132960781644717965898969555653316726931059756455531785750586842632654849327869185319547547644582954087235741187346932651640568317297063498374145673290383605372144368243065547930359815127205574851059031034672406793946134141201889004657728262912959029851457056699646117172029423654439374204051455501188714525369660362937503087633864670382780603066103418911782105542621335932174953342374244633686333682547437796420283074092012024878072778550066481343187529604067465102802349782113095165547687656534596482739357320082427111138048998636181388990061720021576551659159246985405091745496888971326479419219937415443781571644089352810808706974992526518473522918567446696676409140190977464130430061787712861671274181719994317373713739191957784572927868547574668968910417596971207107200913906402540109893781581369828282516619969952239474684903867788596560773321854177323731299167630979741963708946211440665980430843807127608565879092562835010899333742879032669500342202929385118658377183740455063309635216541873644705455872360560819454600571358176841163522865354925158641734106977757861424325220296569290182815165707318188593642729227149225191457778705646143096027153457765014146481742761531765822821134524810467234049624799190446276598435443890303706628222420095000095683470177546096522113471117565820653186002307276386607064759555771877550391712039634908212862531954036198130288864765721966564198872181092787019507255943213197692844706682626006466015977570930742914045686088818316840934786485450460366531168268398866889098802905446317455386371158244259998341182776844297605907583936933305111012514602953478426892490690055969775473541749344130067394977683456133442511638663831169181414413067778443840475103791421236794178199362458391946417141333793012513779850172253502762471444051993545749018086160108378663393094540035084010017542970413317580969404191901644051179493463554460373582920912729949078506898779243664799411118576926907621136748863040663694852874056851484870615442315167576501885406779208770460282980669404466989184147748527022214985960877934257320396922640515334412488027074132815833929394715069303817802132418516036034731412554224234053644773412282652125475017044512131990395312350193472780577826792090925196776848586435808955303096637478554509835769951047162577027865233597915284808164710165584445395506612199549937451688987981733373354335406127454779474978844743100457779539182832146774374075119416619482918028871084287380660203515945460600663782313661987837081830211590194517386224763260873294805526037911274138935508022738841558340983663005890154141352441613842783087954157418721182584450443843681993995846014721221669989514834825816288485276568178204904305978147972158155139911160822186600880766708021855835599926486280082950985005593269155860959918723363061317151313153375530720935623990798073283520572296536292155472080989182375914776989816384989024657256728546238994435896512513027903013826347257416099252736479352860986509780837867669114156623248614268628627394028617775445048096992142528196464870519638898168838584470799886997721746865949754576620281611168308625303847083903602267497451918014912933459466418404263686913637850511630720493339240233811700034237412189154935889832000857957512271590512936787092470517652630045846408124446595252530853235080018424293148559418847060695153043544830852624537828605528120626805162968573956612405699992552821097191714796486792333327137702009133327695145392230832265279993293875413449463216091468802126194942562783528770588036963215199746141242981852583739188758195853241121213363112958661598308828855369972940145482418120521376095484862565526802818189537280319892455356019263117149869289079291657373165953934375877518629273803098757286971094008785187748040886945020160096310342446514958024462280841965070797875909362554641137976279383566191454316043930039547469076975882190915026125853997612657876750008944080982205284982237791164525276366020109935087219181908555998069443559235671081223544992122773982599412379010888424022573948673607033412999913052401805328842468584303044110058808843445063244764256238773445209970887700187488126541526621697554300543127246699272363516304818340685949783066170119081361498867248226446724529164297438005483224530061316907253473049822414064903190046153780094978956073313289448818048727767745145999394617641486375371628935423693181198650867534286620045074910584948626321237530837489997599506782636214057001695334056144395658141455136433296539797338157043242701355822324909767657174787213431550121484358675221164244534500528936312119300957628082438823811828414706511835627895397312278551868999434477568883851375963238621609711079307062691785326129400285122970203439224373621861921934533859656925715176787382238776458058071856493737527148609292538085225670718430890133236050636043332184630242468361348753728164870924219018310217969718391132103961495762015050442298416235593023566876001443760180236352723198585717018495178403261892756489876112901647589833183454044681538381328749735752305998812615939261997370542781422947684058564228451707587702049982391159878680548453689102995465815148680343180330254245648392306751878786848076941003327012646581461086978438023856392118885586735556085184891058613753606090499278012410333486883525043403446384016448133921902965813535740082556288975087418629016791085391030931650349675617686368067051621219920297813219811228083218758677146163471936487256145581530952839041770133171644049908397504652664001996868135586011687027330928962213402753540466686603554306820182839693951990644462212900391567021805860037193800395468373007191602873993151721247839185889323494404676016802777881668227980270840263044028791055872797272467304904682264042121849663715144677806796530906685323199361767197200322904358288265322290391991556521042243650962955742698994107049522681170381661930563235242787009668280104760499419790236228946633228050209929380407363680903773554419162579945958197525553427837202796910303134761931330611402062388201182401143544214190175320539925095849393016424976368282986700766239257805553524613017958923378320464156326271152685206604639301509801809369739330176244095450172211760802501250060953517845301267153709587379377024580399114108635061758942899589458859732289097063982565614857922155806294185820637990893075285169837256288643050495033708048638846491971633371055031107309137461591549075276049943312255432300438507857117125746292892927937969808104234539351929264976334136089645310599158634109305820469029100475328476681586914309674472027722689593696732292561895996219814243834390150447662052830847276489435189806052413170535949662959346467286958092160002663788908680867467664209536575051251940762057755178706830554670916137524752454970944035574774274300046399420972917883860101109389645771450530762348758236128221909325096443710255577368570498089034376709961923928335984050223478321276257222539610427370108204931323480515322798541040906340331818084734415768372105856563545235656024820072140789947317547752099357412283495950118128785831262496196686245562454692632396202508060409259872372782432221937796949152261655111312666829934285940767347230469354185203067477162816429528338205363163056065095170835372722997158007987197067982472478716586327164603048748946341216499105381409848093508314467688718018733954351188301328107279031520975091809351806695306571854033795744027818716849599700469370698094181539552366777161404765902009572522366733713521126133750501238295160650201596686809287592012139498065270652219772958703540667123369626066023997065586731911841349206220371134834879692614725344221174076377078298580449278383666542690753677846796778352840122459542931596417409868553181475850065858294051528064913857899993941329219725857735191007385411108482250465452483496899649314922245420066272406427246531720578499856534482677176444796581702339146207979476911799902371005523883903504721832080310748435609948676693392422674837634438966821557318575360387472105829293368745308162667782072068932178651869851454497655714760682424024184825335502188000275661999596449172450059943582357141875951682345264384091316455090976683303557181280730838559793718252370826832156676769748313942979957714555498606990080108666705926057355584788502626400769402022959209272403175287786424060315735552254916605930023651891992239335498951658814929046894672872097746390622250653268137594609941635971910569555641503526684755735956333670481099192467977431108688364335146725044292146607513432532300332748548773221848845498441653436676903337324122472366851456058745587193597524910170497778737026292358835078877561959216951935397291126956981095529753698643218730286439182089644868287084716132218150750922352136429927833450208340452916019743089680441336412358995846691984890413486606809380322094236530527140391995998408324236717402445990982964426143828554238070934796248441653777758717318525436610124413881845944994099678366423419606386989845686067659363790328885124884800754122761892555490882983424928339941813702936791375692846289673228852288961663834672530843908014378511226843059796748988297911039810722528251501626027480746315219860023606081293143799329230818352051211927165066408949871898735465264866048284814178081596906092677603266868985545903687054107450696602480981005756812888771393698222686907917009842382873808613062665798147224380379789866771097994924229150298152807652057754568574009432418973533168971638795528387478153194611743606438032922622363140656991531987520457052947209214593596813649861740094294737543836481321535635574864199805371102687782502377265018656807955048562893740638117636346599057986908664372603091796724299331204880794895279380938414636566712823840033170666112544461359028660835586163450274347061814384513610991130450533867505496748480601940447876785320536029221957769377271181850135360130581294128654250706005587623045494307687741311021669851213753929528815113515873284125541812094416895512774185681737476006197336269830357193014796222518464504103337662117653302393233941582964820236424308505368522741799717684814847506620705659952619258851327481331839891403275389444358796302045225263103066219504745475411659376801359596137571860943689640406579496029893471979276943464889061206243097057398323505906454246396901345442658891773899410513036697851389388582257328610445970723045841627900870802935965816778335702807876391114998785706487042548415901311161399720718903393984851220846292657929130025920212323728058007235846086799000901980683804463785311411639068481281177677419314326185115568236573058740049367101526335835034040625693554655614400620504608628818655101216664863195753732991628158497479657197726189710317339808786047712463356269606395297126251082489593713570219901899214510244698958203608981220334577249528597319977970365708757332458355461992371807969449694299477214057958585113905506809609617862507618325554633219247045773126666902437367536774827779724173830209724187298733554912485545409271505990955880821279689268222504818297068381961772708603975053904865300306067377056698151849190552277465759053680641878643363106859799423917919790414021132594482277959458425869274914430646675699077801277988916247427317572727267984005693088015771036207922162542729424985512569486242873806386957164634134299787168160309736484840762346599095811996346178316136280012385797446020447928922107032116491814079158038053445001730114237014785518729192725775859706545836340442691367685466356906283877266427530363092379100206021153300725527446188697331568167766494680345012594170303063962671488128237077318582382060032530123685370661266081035127067879337149070806158477057582916548679775019836678512407079134488960426041120696183154530776167549277642394031416530207774347896275152205003078638369620560728987650315092263262612406717306577634325851887052330202280578374608215077474827955663842859003199002769733879222381978933880289106144357583872265551048102741247519865221276754371474478759885078385847145329290830945546426810169100711527314425050788305909998903740262404751348172978173303912209042617150268700290967162801697285083238211100119718974534815258105615006568656547638475300489654897034691377542093739417902478000804606736570464278974192058875608681791933999375745708555611859003930108594564930090387190571126326148466131255064521446273715419795950237584348780045387350566623917358238888371876277853496008440106170003417958722027851622443918844492049923751293610958777498283529527929792809905582851980196941334642949602699896306471317542315130069915530709951253195090946834103740621139651152045528539367712289164728812185060205102929615056115472036338107437339714735923878831934270439508006995687849702623261922707068339608775368994111627662654880159384435987908093690939501023738687293552716314088841492417625720863825342045017336484199241168082960474825546868820192607255810857186708651018780206361469554739439469066512161564578628027904190297166315251052466741270424371657530519415574164878630822644096836254427474202695407782380288099555368851195736933765357352181153187316911405110251095672459615231410733600436900258784849183455973766860558550758829657298073458886796979820709014317687365748645962076726950395736681566218189885490560589241440736125687629935496570238242215233490277746047543245956093007661597497806145641876884384958804644191920854299964370033431051170012568996843927942702650121126071945619253372116180274940075479777140302421437777194657532870491061230831722475510258187380610197175170448772215304821225762567967964182301811479092116576758106194095977095272638427934806991850219957343872838713970456942309347984883821139118959625818737262435774639140517969872453924256035285764096924005158130879689167739397500583227740814499242848279653633447762847848413332453093210249514212106265246301885755883625382835700832602317416786311335315386863513272444715198225439299442605789569140210552216502875156786696069854583801759651832427635574499403106319078175629022270273712881401108347360164994543178695804906724939811233551319964651217972370040432290212903582601854026815236277105043081934957778099661227612054537405169980361837015993526331910473015351144726439765103426489224923913339433829157277913835386165704250775556809546986532785353361250530501769425322991065250191854014455340339703164648326550460144433745751980133803859608160777465103056920194884220045426965163032711233416824357650726853047931370218548879529841087741717325065379073555084792242270857315693092865013154119666187974197878816138098839657494288326582563365960356928652181376969278205148971570617930945818230810550422860083266338024878685486044097340121489663664563166652749780711729183374961291920362071815391432394388758598592906946270953799153285243839388790876259932398122352083179787148719128170474332982762522873416685283740624805112548361678462979320475748016687594959956555983412126385700093432762592083824416922292884964174474533123025090216883160103182559855695133262698849495818913133137681921161464086182892255311027371858111555004187532209540984143354615328598911922618415363369897152692944548390794738027368068967635762376762961735518999598472080897332405406034500441066769226725101190221774927757653110553493910150145602792447657196133095585140659303181892304194744853683320571324509275445615444176868930086478141291247557060977351984995362826948405215948544216229035617409086481892884995081085924256032969038109020614132002964466340450173836486818183678067620380972859149709362403354635560973871052063917440065057209506515589813687932281147559770955194265334240866052311379756415998671470878137070802063765769834638608622132496802386850795939658838931771924063179751403400795459002060196066500891162969681589576529488876616805353974448953619738238635342579238060200910829184112272910827293541719263361770786004172271853583489152904798642981864344749157502675204023852446961357545161018897366643422008508335406549678730068778902056574369286701795191480859827503377561977533696608389062421723705798872371207388948581329931528244828502906926726959021899725496355536235394662784467986070828024415727478622245211579918474146706240945175225668849788943630495084169030687600470170409658292589956532256426238347602681223772903114123584509555547537146106648880870374743948488313567423367801769410236766487236406366582292230373753455298855354050256433426747131095917494581664443063886638667441974840868791283505136285196503755615099364807829643971183138314482748363815348755006970148231918074506600355736705341507920900787775457091413546316438929035336252790882792944627039675702901499759460405156056426352118759973844744768549499807465452262044337757583113332096384458472910631762952089589052855828759652294780873817642155316574841498789193724492041500148180852561744023530210207675118473400231791529340949676358269116468484659401110138764121270920385089223530260735373938541362211012606349150829556943626772437700173569878106447389019176933950685128635291177572641453495963474183589060955791809412068538447021990277785714030265749767237031083882314698181726935330631802476175693542495068014975358610053121477574947172698233116850172074383686000184602738103563095220842840887641338098789920840549738342202114971429821508939296795255845795729449597573844866804555946647421513798013120859273042176129864765996571166041383372252786872467755819166849740468906437899494432082848350238918941160445775542246382642974022230104952758471375188213775285378891131116416055245435738038607212021157428199073877662751458364201561476969443839851156887506034180316979085278984552161888732504470003503340726084313192271245663550780188861834468606073912286542048458901008210925966838586776297038361456140976757060991203492975050687551249102668367282670715355354146807354189448209702464838452020388381162824204633637323672830190041648241296138333857640808345770192774627902226355254833117585806990289355710952378037396846540501873288627096653405868829448478517244032316743795351108462099880135971529485055152899037691171485317252846594528434021068280280170489560149221927146671187808569697138259386262848555847498573041108348497303298755793827193133003612544080752368395542151194756223551978970221665887185222325377017357774555501190667343450925399394844973567677041174462523296844279835744483375748380464141301909979635773390101784780421988808718107483735026819375063767668574146978793177999414996772752304338952245609021144295099485906389805492981233901509348030234657762437242850015655639735913641926021471727402860961822612774203460379133010348042234644723485993042711605379581534437249647822709184279322336492122629372332499607509278997138550872089406234610492485418756288129549017773902468569853310042078245325931677894953495588538799784262772022192806305106045343711117035221722977298983090402403081754840274716298411588131481773724419116472248784331508593889007551180972297842911796884480136594740030854677025068624862863956062310540108183589449837805245270694191564990996290426651923704326139401126075205028599226510739808529121979056967028469625695259455446622327050458995398870131524571447721518368760160923098077585515793357102752821559452296968265820056170915448189088882976883948172099056833772606066453825077824668751530813517364197827515392834541731085685636447046981955989992573210913686202949811929642267084847456489296995380942871526154325473159063355298294886188313753240585721294527052695569912286471936900264989576661845999774137802042346579557259604213661618675754854190258477818481813857002763512043147847292769558323747338896316481116262003188669117004242251534943610170301593953556648528221519874886523016677800908260049766249211589386565014283784974888233912116693192709187656205870583332065452102208855378345842914905123762910974335801996034229850556215629739480407999275122976467977666135271197325961275492052796518833619516170660493903351086254382432139967536221724270447402424638722639383153964655122204715144646170438023381501936605804971124631039103728205314546591838504552709017701649588210990443007228669398391999824708897550299849085535056263132155051590998496610127722984776478039514839220747501114411614727278309451333645328381510141189324768851479474567493170374786695017807653170154000934649228353935146729899283544460134335268661177836508253737596317625227995414447185738250867600414272251679065900335434446381062809312039390192813394287976630406964954880257216688927020826291469984396339494655750730739649074505288126749031878831814540795058438087279251463578584076486369617252347593289795464648074721894753206179189019477118812746517267033846165626163100017462873731488412966206731852995725095026124648976281188868593109259145201452451405902169743951950403167209629797657881711900819033293956735012993941883079010279374759327817015980000698524180488781708368261630011043634070772994749322031617566557714378461958582594971376797274288359046087483659954072715522532764510930411867095471731418409188030137335201268692639095970078785964124028736879217784976208260398186796742756525973895618834982994283324370375747652812154857461284931034423721068530051125162468203093245460930704080066323881671660180188620403119226191176436635304590878046243471523513051096595334057380401547344858609602082991400445345296630743222316617621609713950737410086101404796813804506188587267774850415536788439028182541717750301000964476081530419354758458051141665258475754160812956215416220221942527748233333460332500486555486042890143111100760162281470496396774712733583708674715955807573729207193095150714917104669923532988626959625711401915571944695145712086827005625709468005341804353613033497417441868608247426428897361720923531100659921329457364405957084470796787885155514214128528587678669435388589320892882903855098874267871097191429675875543124279424598089206403454703820336708882123118796290954652596923848802047925612211457835605038455755442561853340277407005958609309482747649269022831463696546931277123769742251222065168384146627627353726389520894939744934734338018530849667998841793948716446632821448286899280470799708515196013590971309491622013329830304074588841623579345482651472529609745959455889047365524170966248354548197403068227699331059642605287895665793878570156709606282917800854952826090579574669265005129895466227084875995373103059085868050148168025920209421308463916581909797066041250118504838437453210110240663025775669980651449558460908658607243112544313674889286577439976518256786364813945437873560209073348846925319954897619002508456833296534471472949084832933209337953068548946709939179887974792233294132057297960460147621329009162001134926960014218466689099930586666872953001742347181311971719112775698658148633222871701746963129850727672134296704810187400161207585627059938379352251904922097952606881769130497986192645026702045347985215462453483556958500056802834856107718542940049094764478475410376425188632268337130107690679727972440787571755186437797012482154019197735718341946610073017054083037914662275276768086591090453228678511201096573311536619036781545364854165653945450922583572717405535667060179542527679938183920671683272834926044346887218476395651254650449387920721234493268009102114140189853258171299286541478256216583479150270471537646871663497112640281388386749922537125227959618382454986995788449825208491154997160257003805186423492431140626624655704258550359481469323920935007081841640149749125506788085977932621322473422683043629055214676959569356327988251103787830925202153069579311123803325600065407498210028202815532244580528463618218554325393488789558731616161372147525866250253989597623950895203303980176674314732140358270217026900844231160955409688099811227245287737008486500207900924840965433291990170340307774666215904705228338501351476757182669142066540654213787908508998548603819527157617259540434593318079930146319517598590831034851612627476886763980809654099231025931279235076248941958316744509310118449668382045658195439406349632382290196460930244709119122959614905815988309320209328627086009402822588608445657428878638783359686726645019408646390968837540277640840208487053095727764388548267050860784316043788383934617628108365879751632248418606894621108180953383476394560153027652941192454714744094124905565295354603642585174074149932405388995485612461413496355768570940258287295168878432276388985146510605583872986432637521905180227389016201161401439926169599425271502460450206239367045853819081362135124030142162790759988358988962452550341982640510559142417166363005844900429944925927450275525884368065209091724075131853056067244452249003306694693801796843408960350420974724030716369630239057855336221828942287833946786181625005769844305224231887118214170143277129713621905260450074522578318889413513931760785528917097888096033568498185573212268299782126151039608408522939955592783137983320145993593111628059530358785527735453206943099791341443437287262648600283189850225665004919435906335601098180680236832562348764569233409254752806045760421357464962211281853466763549770287482887662706169418351988981175817010705956000690268099364779615050890157802578752389427902772289953769627094308575511670607298754576353558307017059906292133949036985224069856239639623221424436780222301756125847999447216340277672707253821823458324163882076534281173765294323254689399150684377254823191060959086903248672957439154224594367318895283756260212906403713130397285225070627803082853224364068051776921620914938678991427475572979749906135555396478630141722591019927990780200702331081060584849954296584384013059000392571571307184926143780807229324249778354142119023303552149805688793112382086381910122756972450554441436286323320881717330986369321029913119008781206391351275327746801204407076064080587781032214941102174937135186156456880318847576501829756514374214760831857522252052828174136421459994367453428537636564159427060854178924872829768061988628708822600978149216783903803061126321322517190261433859338870272220476021934786964393629838516263329021747907275285318459368647240700297112227681118543924234517199212195349968039878011512360614504085377858739198153568120586765682983649645577664517683581108586054594721992052441903610817657445068262186201043908179960253804963235339120646969511062626444319128076157032253473031223652807679382366380879164349071672179985972973329356438971197639111544451129696973292424675781151058749631821946337139742280263814770542923014369438718148184431264113036537012611651721976991239783147037344963817110425394807051014974562268541098839271832233567300845663257220737386804945775143770627694143555595406305312483225235189286417748856561999750615468433182301766122034941801917819303685934266538642486305332444114508125791458526887279298920973011113740533514510691891686197161976202025810177605971498187987345747467758534760975460929313650322379004819075227410111642154277451426098148282498998447209096517368393910679779787607678390911608142157308921350961519879753855129417109119583965845335637494748332495894877192927441940190930605216498616898412503528441013262466397450253974330334751501541007119003035731754672164581521752028621597815729265629053976031326986880088242138445743703755448840264244075427063240983404393585664837451890336240796849747567289275507911025336595128861631012265461091055788623838648357741054394347185932201208156102026424791628025739479500209463134790433383529864273518380250788672500461386340610661092320810902390983569400597906702809478040156434768633603774778056225526962738498805286908793236912876454729943079443028313010759488966176261964844802963048929739759011738544675434496890817674454745843968950393197378576200485822706546035385780960406701237662412427916524448698026711092215756250261987523504269900541031748986827518092196730973501630230512907235421653838478310097826239244540906240684576635553268972651142418425483890403688855712304990584312062454434838678475620377007022720732398299315036913710461872864213620804783246671481312511253912798723736605068636387302109683071753556041513307571210499258455323555544540712437562186162807540146977182458146804111123527737818103069404251660812070787305064157413226293742412198542423216587410831480046850669195609271873027417400373531886459501137217521473262462231429982558770459991710389987934456941439148774198444815864550235533884597006801195895908784383210597548830738575190830597765706502414145576974604466531952179682007066354645098764230042465230330373541673381462704279818589144604758572733572513159417146995958219158791942710951651143454549638512208583458474045716763422566849167747267083874271445381597807614304352650916846918336257979107984475564904937858334473104124751728062075186387647848873919029517113113529399318696667888460925063786735792345788723029286893811563950202545686275931191127594198048875743694526507524817975334721775022007978418914948889925846759172451624655922487021933383653294599437889100937582245660641321277647010715722167093910229159642461737660754868932448898955688961809696967956372845777728306642585488416944383893636306668841315657726441059028136054725602648479362831979132056802024232903312617178658273698027910350226975894858871570536422107872150798100667068101970332376115572746768547755741758229884275703171601047323411521063088351696299129050693024138473997009737307442658198531094302629177055808167790896062403867509569757280834397418675559457889255477090943824264927380731317578934712830290256872403901753755798348952949847761238748446461511477222404428939899625810841906658527095002336907464993613763861193589334432146073865120064026629377531630030540903163460463351781226296034681602541928024149030932958990402454916772200472863707697038002446949394536098009378945551121848841490465626319719856519282823799364896988423680068772967327391047158617520599279659232438800556837715807300395767619531490690298578935533194745484503660055814255134009170605648581168402153562228281996699021873432852587569111323648836187621748738689465960610734927638297913624961202887834481026024627050938974635913220751371955155739259260684251870642557648175810068935685771016783833397013283106721701437023851812956690594373592372820148733298701921416396472037353402031442516908161657366306786508055950321451654051037201853545918696400997561811354737340951948123512562938725547275465962751488916031284658989369692153412971631710741670277794994823949355828272219268653346348082103420898128496239031578986352439061286854019970805730929620623555489719524184629885023671506855897679180801471264214491063933889091866982244617850797800003624022911720462910717957997364878964304707805912376325317628758174920953524244944627867486410145616918473794679386591287566101082393075601833341168326293507286280506920012546856814720150186711163292159473393562974416790871437448819452515757255286820073229081662281460302880378038744945675273532297497428009827545581237945065918487048529677547922750279138571251562708245870406519211953115244828804053975153480485705170535453349825026632171369726056703968042510492826603921015991246075436079627637144759385702100800241497376383521018490949243118687174558972426193653838214084434245251925071410773874233351957988185129921945390409851103695846339710220223367930203507029997402853050168137034245069663814204170851157359270084697277393293449767063885992870928975889992431922596106899750405649621799260881690773416098644020989859567239977659395804341974506617509697197704050445871357592497383540852792488772534233925230283479473783907131826276043743060476102988463614222014679287385605955330938019806602738257318834547063588762570085628705913265083408007923452637848755809136074664678460896872525797027639004930175469887336161225243493769418132399150571829801883957026625474464012107083404410158177354656006101995708735144855153665492261912804795144270787950142173447058429814272880586957178573623590667420597427656972074235376461605833656085362666800344927759241239840705485564634982270611163356944931585474810389517296239602889940101432501353232695477270442600309578897370325396602482977254612596383568755341702487733742072111650749623242286580752676257809964388041326510103038174629967912869860696604868639414484888187230520131358611401284351743051742797184346322369772920949892378275196047126754202906276911390391293656620406579869554352861547010215104432446383588319448829479017609444908896039348877836615319021274799379654387261222487431790307173874050784200269597638008960198621537100599891686509679626329834229572997994200732756075603922656980601049693893891431371693031625023622327740155026477429097713723795926754852038791623243823275174557418671592585501333249152023864853999066751088473192298956791286159639780833102095399204629035313366448294561123331544732048396427053621732682425639310939406009177700500433268834247271233856256441486742956543971209281368075457675826679864068536347546256898990156098404273043894064038624036179255797252696467119308643918254878860497782155122923304954918485009825578968794765148686394287529583944043289663963428249264054161687217272826159649579271067223287406963298809586510665294057683177490728843803490395968445695680116076185683015004849637736561388191357259191089006969890333608450061405923646341351595228541000184237412890913481831041366123132152608369404655210490212478134996350454647772571983340842502130062105317333660427943443709009000202148129511026696946298668113910142552476041746539330042532422641125421400771753921485024387772271742825677195792047671388091443358841735260306480215333356369657229842458040088285346195580597763600233723928100389152397994534277016992877279428545158521431161234090677419774826989330787334599676465917580503328702472555434308465774537926954313239530742393180433005167009005113121102547757740665136088842610801592142414201867853782801417986672463665896348427919374261291175332226851361904164053564402690873462251552413362593335979134921479892256678645235914057994414743836011030999765516479228135001298581109408598767332220730415610249983039051300269944409839187898858337860203247079634157489438282815988298716002222577717781368814098582163682602266236316523230277625812730689619773382070908507340468731682587544093031644259026426309564140424205215464478795484527003450717918684017292962480724926139574776215204711746830100000837245732832694562433952826335725664310274929602800566661152459296141836843432445181496446874163262705072087960547969656319523601873808713506187223318587041406518689455999634641919740363170555741114032289677512557042781409917297233507194817229893136109907513659417905238278941205243415937869571086608700552878725148293621520135442770150362678256955440867311426173097523412548745561500857099512330896104935708944653904365153310575230186262087383478782824051080384959357886049189078653688796943429966115991567791939707247224228798408806986785957116361283380740485044511342298066936112740455347800729987980431378154771942001950691759181582113422171217183135287543643894611507943441688346836043601519794519766980735076988316418468309390669273104136325185764218245209115226537014971508704479672263574293724155919925411068821166420587320485962780741114804527063648571769391902026159177288680430798816569338612094761880880651682804906091430769413052685557097465545566140607715059626428590268195961432972205625154393097058612884200353046604070253618136564028446005595034987057662336398454121589030174168009090606271388527020994247762308975228772788036554441617987295627903325478081706166589207353442886696351339381880311881461529143020769928461314407255220364490801805810935104923338883939071531151459842060853817614719279347628674758359147282443057025354663691828926123553901830683555052769451931313401839311935543508244996264997357975016688009384258641983339140336199397029331955612661352624699703727103946607896874633041714937394368809566581253879286478435633797571564038256416268647697873852322457280045740181968425434531376513155492156620682997845363117520476010167019446699948380330146583723703892210303284945316929328553499066864118774054775699429199540407914571427827607126635147773870593044363765495801724396472468309096955042816838853625459596717789251879864659451581966152558378725130959552038030659746160102880828953468628562232124670222054367552350131767500211301372900513105598382072285651778908540620691762722946265786358478655025492759764896254335742771229608307360208241218652106106847625043459671159977220177166004387578621966529969602608926341739453489860538039696145215736962781246511415410635299307747266123801600929551065966517181873941881131506295129640891008369588728720634657662493886948469378048027272794142003314336549380536400820879796754856328003224876563972069585982958146433758456193000319443215543048562106561625108791258640430393031655161337643266813002656932766048478409841345762042255478003185533098577462000783820410431901174264710585938808665747561293864229824077039662706360349142077000780861027534383463098992998769392331062560136641988459741562862578729573075499706273259588464080212880850039460163139751322826402325431575968830020920717465563904627219534779326417548826447226471862739580412008790309579654583208982316217307949137835714927689086628317570865837719597334754803594441594545768560968748755211458801417211896403994279036851545085805301372830374198085400633300991632430736477089484906460162802563375062213779267760730954270024139594495526053526141751022530143180188525005473585647157658545883336020345755027047652217064407141260829979179059783664036373199953495017371920385931201094638117864670825330195170671364861780313469534728083256938953571504597076913667448756388524473757318671702573223985907370353063075292853131520599230962190847003158142270204548449124080144990970177091518061860869854021113365854634802772733157127150026861250415157326920827936921337513552582951034353563360999619764500944276168478156026471462372160778244804134051886779269291480871236467453440222675344806336918264682409785112386824440040327645346936980110123402357380199277382465403932952349230357589130999502682644237720185300633182001497899902188341960648943744998780439844325731640476777733848662705516139628229234776910543584245654216338609463240292883025965308591275273750685847566167680791430001113551418788801296282407762900552619343903387832309096667989644398611920453124766847984075311354743717163458513703682647732507216921106965469771600981331393140179430833283945849024332301590118447671271004263158655102051592369909986175493616904483279713743126828586836257979468192930693035279732761765473902217547607020618738470214892898752425562237101518873117275825123098019307977749435802529753938124944023233275618314568343940532203309015391209097069448442709799663071516607725413759110064343696704708493408353613682291978930940585225398876387590724800014993275041252051729621599998704073141155301769161831626112571989055152054147752078045086241063755619219380541810715889355955476118926810203379129573156210623177608341741938519764571589689914439753388834570009801662440075345054202153931934733098188983951987653970227124711267490197925698015928176522076151141118072991496769940358143777834574401264153566079391623085097626333677049803131813409005801076724760861023195853912292605644621299439532157607016821500730470123476859543456684152749458884929125463835641383929934889434785614862977373257783894182454177491157048315769164319590956967339964494378098120771299130836916659382565011991126142346138606368886353560517834270121925863347026905283436483837521078708061472333439435181360045498218506504497167046984306080161001838967602348506342737869179106596161569614520332691268093232085496122409910334453950602234371765791864527617072451696106211784827303341757031147006507831629214612334958238995885752377444185388896532549509998457346568994961754500143547842528583616730491716444357664826281643652199979406152414830507814121695828282868631366770469287981208413252924861593355249267929135473289112859185750973916784610637930480161742803363811187970391199052632892864866749724160499863156628560957993725047318200952199943750633740193262694383494001526425806861198851469053056661532462257887155643758198842254635162919320200283700871509418332229855368907467464576313862952631136499182263549590640080425894174216305232056114034818128023975080997598681939137841555588301981818977332270590701175261591309734060292921541929947538035429260328973347700608699515558715570369921918244321466166239033833935477575282449942036009173295340390004958662226583198968979625684366148488295320508346489846370612883548238774957514821608639001192385077675217247675009943494986937599861141935687668823891941490755626995557905673979560822435579560881940522651897743588192158378550786798486669157399780882018025032774450098792319191294069402025717589131075848515898681351536069420509852327988360093540096207166094796106477358025046185404997130571294388211487836133212871999082493220154087549242862094985481864501393959582337789470007797499434559311858232982958945664790151723148091584893807771270803793883124917649942021328831532108018112372586144959685393914780048512090545052446545543527632280038234773619953882992011056513518300996611553351588070117035520095404664453497246922367981046689086648057444273509667925430493536788222680952256468539027624396159114149003332446635433219611489647719077429315870915740663980935224271200491108003495802296711159079077758168919394128981175618117523532946992123037996084769297810757740123776743578843860955108277132254304935165022796600345658126172797497983330166192892689370349573936893505467571743499982178607004965888794258969044453590904216734458550549978767849425725459072814410464874528865950004269037696566296192028857927598519948736293582512880854391234895947111862718053150144844106176305940642822168334206136998168355307003604630400032750157280839201116600956119014458391465762285356670698447379958197257259498573391658549802245355648639174088600474456877931266116279287064034146873894523970575357490750645809355693600252171524529570017569442975279738178166925314453420291874786608536004541424138395561114491390045050060254692306831303525140166340367873877391392718403887396058436484785057423217400856417485604360915905076069850198561731022495824539396129633461306900288367212332796735817457027668758003818069774230546197333211110434050667409105698726085308793273931786133697049451439462520002316168518342590426875717169896927273158805650800337130494368998841046404178932165874686327195731544105647217305736671075050033543578082324494346157739706537156537295788527082807616064423400094001357550170056780827586313766047218770659010058444700312306673792954842950076225357709507437898474673485030488745147406566573976098645716078991704880313462453993060038527167872682098784457187414276591476440358903013893093123962548600080817749767405622810628776881939337598076060251136519363505871292962704558338270773933227030746266957404898016562342551854584797372754616059245475528173925301515802281432447437699422672506150022804864745174512572841682298983615149677027140129342454841188443211035725717717489404008634778578720972999965752432391825519931347171552264673887915405173305163260051507899105708882187607043165098114186348567176782218602662546723822756932202645587989620483945903740640727084361616104349709286015059774684316915260601109876202319939582422585175165853844177691688372040921539134121937996821177893916921362861137068190267753609846461276879700824337257489719222919781504771272383525173282264485720544925783152308203315455101640816429198954323382237566743605618225655945562791896226458772499495147270344065302657184158608384906733762549250702390653204546062803740232765154227907880500358200175492111567372657632846578252952748557067471902422294564595916139900346966954985109662669942048916662764139220713422082666073453632227351629711071990244034141520481709690489087991131772836495227582583993838571324631470147028482481406130875277350717368078321090159727819849736908487691043970869305032401915548394681060995083317086838568528077008285426598528888517405851305209126862695329030844506024268046081617713971002926024854593451162910058101092319174935907183991028075582885476038583514091265407071804680287944063641387044601569027460957952094035628622575698215908055815710816799728378021293502393272188786424303902971957607566528266325298089451174218954638103232301470412172460318022544899716762685109448668849271981703062207475625571006152255267049186409312591772142818374094662671893998763599988259235841461603450728264553016240192599532061097648042811018452228422826886271782202961455762284067938821879327930226531717337892774941370670489996972913987834753648651198976301551508634567849020061552903048540312615686188174096569475525195089022920300007068633374653700057432532997142023230025059911859480201161047020181994557802906551137159257989992599531874890492088351915988664872193768087858456194167550358219204335996960646037224405158197933814355074373202299109240973057151571963899678005410004955746204499875446478122307306947067929278374740687417292733466936101573709158054829464895833894261896639319877568377456965743270628644846891547506965978459801720719272609074824419112207340490224391070831553533154304374662967279744312750405673597724245787204265597602139251579474509153733956319660173815901674985128196808356259116657517126073966965695904854021723652097922493027108232734547132751172460958877518422871384829235488122237609323013259452837070716097398261540008923840299201502761769939164544544819773151831499641658441026577964115180932515494890358519789189540297717388356108961921352519363751748360952521242540027768083501835065113918362932172298324449881627889229046585877193618941555053971151409409944509640575995789061921836847659076894649484785129757241578004860933250081202774214967081841404672376388459330395369707400008070786439221210903644674497108250870978417817712073382070467376431666206406660284678556516180724062521515800988244008763603817832889676855629399038617064338295353612316537177032293494598173189312374871171483624027922358342570936197057148955488190693464000924640644449551740620250205996858928504251297971255438639048031707687649975003980653096520259867739398060644686607910505571627891732990690003777146861423669026353065373896509874619595557020280687103537350672807905045373711296693639963908778466753323731055063490480867445130987539670733490635316439620376395264432767876183364023490923504249771840682489471775568769779417448362475326703238827250162817159868100637942902900436627880701250595535447551179609145633562128381269588320248741575831908806489258746949660030747986763407860753092065356192409640301542131321531066645510273932697800197470056786603867265847123080088382295526364270284455060560747170142778940761698158456029069419558915690698336758522619947909186703499284048548176319504458058469088214504332310893632288243042446243791762650938500129127423769753027976161143170307823296828953901532326858083841025867242891982609571221493271637581639618276485260544689552876007982082958577199930443133058751930188474387170287426129162273664967127216404065033136617042140748041656502351786731338554311148652311631798680572544187452789208678500417042098449752940792593642987910307454844177682646592705593282187687966626062122142820490422566138577404763439764486385738914022501364993168925425457065727714830844079100567026413198954129536446453074080190184669515297417205511467058525185161699582768761916064444063935597700630827447074593396143703260765487894328977869085698264896634902919377432598972875564795291068449220895543646554208842049656975692285546047110205179011015200168155126048704787409444329416874148009728333598889644452870164721189187054544648211157350061584949215786415283168642867342649255730912711468129104404539215209591410186029529365742385378039080238913765023560385308937965471061274825684427007792845590387403100919012569554670939557917892439956830674830113809724058450493946618545924462148176110096943623397341236677641330868601412418679473506684923362731302645601768831723531290740469993856757067902145897764661288555553913841384617194087604818291233400542744292517627496960260318481900688152318405259546744989992372331667165853421448336703699866591587565235394303888341730858055581974210243503187712391069735676678479394665456164956088419608853323537497592260723577558084137756179344063921289393016790408283315579749502677364822923018560951803265063795321359317382431633419982503294295893799679439936507357412285625542238228917091990571710880835444196531728782844698618390512398159434544636878567425409758444888377993468370703400299955588854768188376072447921809859471857819458299000682969429112153132119372254413810266915301872550593591909824321245947415243373507517292767884100609516083805652691385732044064936808756077209797435767567140423276838637322815737112306813619890470848900412118478800528634193201292719323038153613066828085904959158855707191864821477835069732622555521709348066763368196828859070965758240871823516069144382161143303481340439886573853722378085565473842952941533074538184083603797962399073862552545138290257852608887693596190364247573661320091852362447433693563342915900207254716772271938942142731653282088108423064554389887481998542761836633202969734943058729867507570124218181063047291849706632441871179760609441220074820123454497076041457466994722919007903062637099710605106012379993517950870591146317513660647061390638555241217523773458151289549944182775514958893908538718670137303366676665175166380464369318718002723861087935378318350193667874929113519329140597904786137325171913236478007719029240944785784263012515404596462972139596825808829763805998550255361279380249905296117249044942508071559799858829083611858370945101709068420113330654709527536861755497449709155584462072101040000639809052298572100652075289767638667528675263981831560783964791031680321406397875606462346530513390957490215752503861532707157355740412092935671293371820551689639394969280136355611901224261678111032936203478060479192961469100226624479167305910914921289463668774595541116936357444045336376502672579520543401905731284113215776842966282729154456404607406576248843413391409595140435983776586164333162998195334241423959755927192388128356025587102653363089434362681856562030160690471273390106280091352547420258067348979875280816651465588391421576204563206638697355746464349458496473973358108891634007309060485532899967742219625506404709087420148991614911035276814980811156506707886362493482869887079330891222722116409729122092033145799250940851314082881720684111881846678401433972718858640110687519639549148561865653490344491225012929513515002107792722841013223985837197353763657805577936164141109740375961040039668663948886907690492974888647916608877281182880713992112153440636845308258108330815106557886908821366570118254337555731202061972515043047458184214756150873090748518872284552865706467933281258733843553640987969329607168416610398811297843646398589330076646466851918571931285697632656857587991712809250370556609909602027914351729215066523708646049149860864168450096011418786764367739209168950555732406901615196593899019074570767504903104473602263911713172252330586142595275140499926207394997464393101197859937183448057515613997748935935308255046371082274329188889173127505322508058045090483327512944770730381925358031901860881662407059280335803313031484191021416148005750793394973202649875107358571369380027224417447456397539531301942267679294668118554127091047930301917338272599469058504185840670274535450198069288240408630765250860095832441300843431407363083047381777847616458852989668954320572769742907366092947927327691316002850072136316538541129780035314092309422120309927703524550815589520156644552529537794243473702279330343819161022014702766308197347089127742226476011458814160866905799072180380834287648722450291102914251699331364921607637225764396403217834171717362404496210309165762336128455581435659325165183979721544175596949086977297036145613271611512272383281710385011447322471142364484291868200985407626524620648441782581488931429444066785546609539862780861984803723567344196301561982127985356062497406305378227434453867702089530103851667687777401456350112636415512052136303729544751691473572152566038853070200636903412785143146851481028190859581338546060508172434085589021721050407672479854125759662647428580123137682685692554316398853952393903850637798407588419734929999505884306419663210790722457595016039673518306328257309994296068408066917121702709400470677694582654218776260235616794809672076686199210501770165632174155232339976012652054415251759832985766692115436315602421560904268996110972778764907947665879579016534392050821954323097366512755708529182242146726972950237855257542840351252611475566175947615638235575998268760521798996712487614046441315258218344179937920353652245041231875685721580781597656143190638605003862931510520731017118026295286793054189785887077873662664348245814053313494099099813628176075346955243672154004965745719273195476982960368879656856287220639395141589417328982517752282627680954332949088012852142262441363873757898409571003995047570505492798500726335787191565074103249136539197267966945098178883511896091056755157203981661360896842369663245845857002519777832638919195059456700123793460209338918547900059266770218733813398366087590207610611286235537808915410875337449545251654388260221549426969268706170967143536575271548006332984612289363795119541892061291280998002454054726611431389000150507918669128883836762237294075698852571768939546334641378231979420897729641950212146176888369801285578597130527648719371302710982919248023714378348621451710423166975500708614098365132565589460322295818003042218364758983348745115125215917325066191701724725438993862638756405484315109634584306814947681472242838106025374899364820547127257830146271887001719600120965517636340515779391025694719077356539066630365286613933613502418748624605333527930035501867382150191286938078487222420559893310077925469406637748755072021145836592878128325095792196038025804893942134285452983516615538819343331269733322476164267687581833182334774363273512704155508530034316568918617422404938803504333315671030796031565610708819484420113802075520649895010015412817360034651846968625886387701426115907066162158828623361031321832492712313955348658660142036378694570034149876530209625554318364137627498417271319443843334682319326342190754635997147511609144936075406832975841103638708203861122827828408679984134197025138261839488366912583692663557231744782527487850257962851654228078622987006740833446742259381795315015559101000320695425427123291911398659455056161437048782310165458275613407102714114227499750897672235275140271226981650589849371792987244349182419000699965603806313584007339711653527731970750794316142842186982608375706892735089212436161923989668944216504037106785321044275508950793826593714930190166662078751956270214695467437422810991072268418460034934325386599558257207983842751620506713326979229492987040610188049611857539555674304876019931889034858455365778573737311180740896914373961160526085721513979558906897325728236166333315873135440879050886007388554777294516981254812663186682585570396887415361079668285093667803134048980882295528666707444260144121021120192278084893702570434153776734513505367341250036688531239796573158221956138243655236165422706347211091570779671320391307604970471124784143848733573548050071610756038549198488372389843924679642792320771106379643827549434700846088266162279543218387771227094947256354482412381697714433511930430580029399047702165553107156764484163812694334901918415120070167832901026552875068164933640649244917859082791945768527904885726390992168310929407901733465945723766297723479337868608724595859413517531552049459719397155125593132188822173688918991809117981600652258494351808807627677693328055585832436837102887783220078567096649293550221186403165162635308000410613372033088753070855610444202804966518831439179624164981906342101944053608593301646129571312648348998047787560074579399545334258961024388690624326609600845302587935830760092201922525563190236256705938905749853892077367510327311284986660509145780515536160613559014497183906639762048923121265895998717091636264711133762445766824630221952249809272751516048677468069569090621364791601795080171509889620356027274602164261418615773079902122661485467174874605913542186981971513580047112692958275501255583840223670132928816535576661695038767434704485253805199048828373891556396460363399645404648740203119514055619415855211696647751019986198877843390867135019634122149950306106309760174372789888758599914659058726285219683654652963709316555391193223860472562268824765786581298442553555267553679809081235923482458251435129560367348316280642262386356341023404390625332842625448226640406994889899699801013238303126476186864541491825326929827928413554877568984699271409019998428033831757448087924984644258483335619373797325376939132992627367385484347996721454088989986489912638231561056399054966455770238134708289770261982431377100214707739695872964805211217840153559581376042786379867076063103152259599735833031717525066577446676301950703633065213129382059636658594237477563844172927033955566120079916019882449097892533343822588934607638438251351406822595508023331507306715501612188322984622138460365291376976872848233941039458144875213634383814105796183450443049236490800887262845998448825366278539650430999337766418468182214444261528240593613492180395209919838242208455407434768908224219617649673854428688980906023562008842312528944995814709201025142751825964640863018506142781424053756440844434311546817823436018621898947407971054312400168560140284933775510214795773657832697404732985830060417358278594151862294912945222906014245406135302051233866000028240754681229429752927831190554555271072541500354289532514171422750684219832729404713240047767687294306802488415000991999888649150855060170201975613590477837956482177181778735612069609028930538275672595685380581161815252778405786925293092482288852295170680065627760245110523134095023596699288611247274777416271742520818868806329751883542951763391850993500901561441566274745170456277333576283071170958420545878111457848675806320637848756901744666207678551914315272109911251517339538540856617391817137847704449543218314606007246017241486603623161742085134632468163915097087611388970593779439469154156492162882783427121189206546878165677492826387819503882499704179758908179168372614250806194388258226636858881661663835795535265590002019000550489636533576300833037997590956767871267305816395552171979316075822248627714372158658324811981859953640141126572858549012534866737997655860375058111656553780723116401367861455933894712618478640937748093981111501589630627352114312032362332420142541592690959377371188759871760504686910016169828176570284988205114526484998605036992223687101592740852392608048403487358932548398333454432241046590700871493194911922541260968728192087513975719340016377817027722688716919108685493001881914795763501097219799217179657309201296388822392510122280942648972543158251088119999688956498917743114190779707965779536414772130222243067215243718659163450486624499357222779383617939375758823747310383627242101048694993304345852061848233341399849090363998109806458026831210323177047366319199603330867310943530643905104100627099333443302473956057287160800974293042051883276685365411348829166605051167392927838135665669901287415283102421159325978714293101018345450117237473586800314214667678131219272310644378119825428106328500799544840269858749574829975422665495921214613514169317134249682402722646770447539367652158752764317761200764780178379670309770077076924713879700226296282430687976945449011069658378926853774175849046030057052355990671611407842574811102717719660809484006796212664031496187629506277494563715938504723104227001911261217873612920858199842628201183870776590043795468584754255382157644422199080369246073585020318168114202591789455822198964439953454234345815177855968546710980923924326455055945788832551879422772634037878439634183157439599464206103026136388475579185029376258176967135762326190870838296166575747307332826122849769638202511794622603389862949094320359098142636288752075395155201495547348527484126418816138298584534710435601146605364835212476566322174929846576928742378335939721270101406333093919229570726207528800990256803276847153952945259808977374847728430993975359606358094204787253687457081449990057329420114820708330325570129063005614490708712989232055385396947939820631718792497446610309798180309665981622239178130864192201887354263299761929424389364874203834022918698827728562360453605297250700408135458954505570496023527443489302758900055512786073772780387226491032319952337699968023787102218895751718425906088725962948208806786506806078430792279580047111482029149094636435449187198938576733674048634248821353625986477571750973849737663844485623808309971238800300178959174351231807391365213131661363576024230734292759125255320046356933820681126704804623179748229030291803685938434199794934424066302742527423936886503054843331669539774067221313453815132941234356516332016450711888693047062523585090662728069775663966330623933647427268964254671206335540851757185558147181945193372056575669959504956035107365659965181766431157069513168863546315690533782190535824834242872663968432820731769228446793685920396519102071043455705495175954515749720484912543402111020762402389500445742716497113469664984807607133139023713366817966071677027896534015512732264193039271669544140261120802762650425614948422042957414399963313043201134005515912239772882353480143360461425843225983322186100296082205268333840678109312780346541778403699925648871565707006428291577781190671349728581881304100892113395565214671215521505050472349981405039656647988471386648828088849902158350346081626954405298801267074446762593858514568174447167144164036076630942714587161325939978480370573180877236413468007380317212765417992512781170027391801265937467916504374536888981600143702853511061801312228576161607583000219638368740806046642149958249298623531158182809092193934112303474797658907155057795675823258715574206198116634796128727035307565565641743924236490197159494490076262502615238250787626585641583863794770118146175307238404624823648815699691312545447128901533743825418627469973773050827403059737195302462876902170544846525535462818827018424668417436634072379758879818683435173515320137959401354175390950826406129897799899019488550498565788732431482097725884643260765391322812075193518117526469136118809016954044322540058067124910067429602571750079670262725414578362121742893615237101641208954694672993613033602052063620153690073157185124798678752533902729700795220884165498295314366623357309529797350590399304413390973174406660290543917628491846837952660437369057853669552996759396591378238970822678553837946119878615720394954376967176619063166889726555371295541728971615555801526377929531098547911913942879935589513083913468085073879952492616362718854872471508987715168928131906266561337297079485832063979203268163263156610975156987404106634113717168947773703234688531996943834551060562386129596472835375889748382762913303647823165194444719146009066291833926673381675127348421817781978058398269427646414211911516655764041470872325188576569293436069875245834375930984071748389342397177988268763806694784083311552790021488718914504388381735822478216763399976237479831113253249104253181959352574988017265993244091718277464899054019035918398922776577705122691886747812704578972904310942771281208391148565738999489107258337253659957773560998041081381198738450217609657581420716045887195688324854057107017182963182017113256552040563018948761604534197516075362273665568936973428803768010385578359989231484087125118261194714519116474993875065498566240000611436870022745423167595649991107926301788529582261963742532404133418074833046049046539945306661193135704167605601194136059325164111772502482654511742707617935766984422908254740917882797428684301744073633341447581327840551521945301636422774989894126247819482483885234121113148245776069113503509006386385720760489726989161609717588475790882896404997428510950824274768416470288448007874077569142339548616734398411272968585932975882109793567658138632844641858286562309161979777692877009905127471990826756941792741803778093144032005168512773685928685983011565902801549757674471129053431678789010011473926159773397376780359320819113446314061938539388132839794198003577593901535293369046346673490608973433146583297297691065080300041867790640440068676345822503483782494848987874159186811811844002316667030950907967669556602966513217759538371602966409559146420006040370976814503833169905539263753594006327972004394170961554532523244997331831381477919932425772700058960318012906178391520023096167535172834304092671315984423211669647858619825715303998259458023765715546014111655813567133681655015718328051385770502211955705030372909263342903990331647060832538961983623507144221512698882735805151501329594878629796590979632880272866494557119102559960869009869652451941359758607563391964713315621494797787390866651691738785786943977843482150077836621235492903366492924074786979466012276262732757975701290731120617617834510633010061698305380538055618013199634804862544848823618265886257482287337737476279928889976506926183087018927974842990898901808799628714510849508530044131174444809569997456391012943926676743017673800084584237036455209822600473446553055525550183496577912124664316729541321219576428679819228304396031588873532355029441688355997646874665507048283970647269738335630496059556716676908457037399653461245732256284289446395375079020866636014145792750848278131795717508602583141065434353509040414401570931499657309943673160153251973591517233695209316182080917906277555065625492681660451182749335961716982487315880720786149788802389106785913294245106731818890576989360989160332024176927145584030545231682624693784756575416927161429264875391106209336677887644676848804728162136447606162665302203770784176597027980987084111224987389023215998238718260242572697449225734468016694731201391693666753439339821288915038680933537191148310289182090767979330844020561558710960473033048795876826962613458784220492407289445763527642086938091565672133992194738792503634958629299322346342102802710434041777601272735426542581631325447676928092210296373736919564029700667076549316111440504008800828627592304375615094181390368655748875685807942494087487156162763601303544039323086572171480909010015262579736933442848495969978191210255918312921581425336390121140034052560780880981751861162915745344750657452401044211993038085427801259640200609820877980070372649377464374508500893734662174692602319775218848144980182261316981583346163015914979606439745614949703301037536533650101247815995680008017548555978258827660048928478967574966295953611572947603893440474269169704988203314671181585069803969589448787319060340833594982106226252553069680899817502719127685285903976677397663803157444745752781504030240269776777820524593750942636484414942499702567779178264278917449905175597072497811641428265236555101268574157609799363030655332124499234564918338948206483429773552753065798417157865840388170988014041682581754766140665697823181157352254884689716405545444254272252741422920772302624468908247751402671606525931676164033850149139901248525935687059178082854206846589693311729101364866959675643087613025438868960705563981279932062048150031102201610314680677613200332740168617706661722444772345110607327734864610622012862244286052317728656645375626230822108748339247583491137412871759530967618088043345780735501178059373355543930806647118415848586060337199688442350249352550546313960117615175525915417535853554323867803254848279886463975788102371687268705534979013507870167447935033372146542752766211975257867327474805794266680575238239047637974510900896501368440810360238581552751142570682818112639263635808736264771494522740601997029271995417798836284839599163820838368089544086984054393332199442566833049178271241168729264990386439313279358897584129730385052299686172026476993700511942583122765474738083391593488766461561097901272276321680146675862632246944669009735760776977962282035240034416389962591531796180133401405818772067211158872356987729274282001012980118915271496208765564354925589000311049802115791086188681599533449218884687182790832981067286116127998297588074819575245343071662876887086901674892344008164348905121511241923008921580151881310714699678182319467061990778905897517860033658017768955253656990704385844595511469686445593510299468851898889893789248155823421362871933021289259083791955036713932897664116384359309817291386721195187913445227822194347115811765308194617911406935683365322679241256269726097931040577809383995189469055047036503702507400863480097901671050195309109636609062359932790610218715018710119946461853169995802639688308210723691690609412965056166912202244556914417430875443490871332503645806303035195922422153474290438139506224685702653632327537451460962600832557462144226709257392762351971936557482229194031869790416859889637611712394888307575473552038665698517285060627368677988357985355403087377777568262093095559980557638575345755713026261641007597691694437472796437591259055188519709501661480201754471076644792605570341889698414292093935790931869447546525540030204748860888492591643123370421261457272528643550456933454403546321988210549962959556881451078834305751900318139090026711411616392666132629927093633497069938024163125783711234162674900461941501786313758410404104784605520561014054953820370012121340245989170700533667460623984731734597057795073907960386319602311050826765834189456759207243942962505380141650441071869113987341184907074474820825149987139112659902220759686416718000740964388622959714925810284234378754391518916575157684152713775997309774933083721058635416292206896197244843584433874315748835389387342459753814587013866544639257648427495294703487814455623650641999125994404992522031893155839229498676875851193799351163223596386959777184528491116542548663000844540331421999707649729596278221656304823804378059600486296567541577997322882525070259840431938446200464427732303782931180633481428684385047630905082422680165646200476354695407907175192911331307010572810622335549969012617250565839215025965523000591065398398809081696105862021886438312788749333454272401624302897411145767953847382419082013513353848226271016515973857638054666290392515506502970547576856191476971584311891756416024322060329437277016489483021814349394514657218666336034687781146260067924011431292457526309025258289820810869191168870237440237584141439248148041364353336160151994348553075761624180183555638301875148222989938326561343307555969451596418651721413070025482009226226528164309241660945536287071029329572232713433277646599201013419896914364990473373091368038668002108866258035590996073766798496175991412362891457369598324334399647398667526324172942040102825334988569447342519122974158733112642668523945162745403108636088083229016783345690195570814305467764866162463941213918287950296888945292559468610002798844717624732772436598909739850291711885363181225610735981182545413378074474961408633462916288089059888323225403695070380647055792888723230087959843776899882243287279712863649265643928131310500083878050255807732923841614462721137645007735607559254952470142301449306747229393563799727477883106711907675796506116014098127221768302374371042262658159346761607422486487468906471181416181212943452659346042504297959048379165936103380346019534378274681377173222935405245436920020120416359398235410731098716724551744286787406741052821328987918570473783439353605987034398839154619723430658598112236306048642080910156405527358401566686675868849516313338551390674328097585246659770630475336992826140783849174949581511353053566983560449513063042940824011884977594941430506492076266233648127540568445185409614415971149548427793562265218890963296113217237070554712808424629129302854330988569218775527940334910823708055607020969127431109800279447316385170714736606049922361373670896933288674300380614106000036276219707307706894819004327971415467052163354957371063139638903341048705469608834948761892613216261003252326726977359525715091754559176485605257103615518846490031822163795820785835365059971862651054942113603538665294805220698813855018564357181670613631037910078330612514019364285715703592754710625493771351547054911966804413048654415932717353821670272673160180608104946351105422535842649642749614281574010301636508381331042966619769003287844234756852566785437201515036689476837742664523576624853500814758255072469470653594950179542450128493494250951505260896412426596109427877293283158270553671740591098173422648931236171719231266270969824909624868940451883176231192180789263976446229907455806944132118427875440602624148725981928751969809747750644651391873580859955915222289357371119118739737616173106837290111050543915530185268904500475208720641941243910056742946472345924568621960294587724183600215112078646185951635401738757606626604053441115039594826968807126460477692401545608244833265401711659457310259372908681999233098861660218845315994889461327479880267261931158491881808223219795576869436226748966968818316037374585343318970415890738442804479688005553073187010883373772283625153420500844062233877448945322056402076090171849286343773609456693632757900326320964586521408805789966998835204223728550847555821520533860913645798787477033486834716404439260998993511127185838362405550411424495108287849138842515982561260678732814052074789306235625466936684050084719892839186325259477287114475173331249831136683954443409722196910930031805519537017448926542255728548207567550288318427779486584286980406344736448686673536194657248579490942723085744902274969083850348844141017439604415236389330247173701027266763002194540571048629171350995929188196519207350112222723595079759596564442268896583868558842089503888614886977774360120498767614423868244112748856832529636969952172015670817643380469380992405056449084270470745443856494686182648591884967437866645518956604018693553383459001903911950615715720151379255603062080488482642094886412854545973386581543632725894338830763540841039546716851008736419565896280205533991155926427223624420784117847931426762511931851993923857645912839792812215278458079974440343695795036610080665608160280496983592217371121418490961272180267080766318633796043544877851713386251637622193436370563862054820111533170733571013624944189093038920565933002595803168012716440049534720864904436697137233356563627505131016097613444681547119547227156816999708731376974664366883581857041033627311681663787854042350327940335473337766583052251256525722098909232475070017071971653744470415248211958061433437192003727081366942315110370985078650188523854498825176701959014954554588346841305159960397929543559358283076818049291658596961549705658479747996054335577063139726472547036298634196159885585193790374175147762616459704597906663919413612729210481060972853490133305393388908630876290183562215560864849202319830288976428585440855797972797328599993249094006314326490212000146686783143920836672534803705042296955790351926303295426174178224909180658478800233988136681166117193463099960371698987739446770258171895418330348546649583028460224264858070892190401899698598724974458419319423782221847168292750281711359581430896541165228358999760391164142755868170531690173674544249793623263930335626737554611425695958836714137403229567328889566449484392067478530662709081652081403772957836881439047565795094825964469858336401421640094335780760506185621435287225677347926237969792908916521550120468464470184861610235382520861951475952266845441614564334846049333347010932167812887343140458115623094154659876445128334303668202616801273185236831150437436423586942506211695198831386033675360865093155653541163553870288580063810009841708244400978686505501434063300486767674354341782932666023497819300492967729718061157805440900405299415733987274270850055490273599407836265676555043246395639037165989323123299077559943384462962371876513247771779505579992825917822103731445592685477161395534249376258760721087493489733696620895416620325857738562222756658136330220273475903894883851818787913911717172177631404742517465354142627305418812800138799907897744399442495036445987009840093096632863546852842797047535693030818338489389702872744647194074770072842464994127563886883107844954467817289562696818054780085319816551078293643187273426806442714080181512736757687878457661524798575592660231062322965137536719237474920260126791456305126925927822002264874411380621402806818388202053993600565725648342220679075874829906756252764307860467224989064179293951364559827363252279480384986082179415024980172690471465070166430377386735250194730943795128624878454569886796743936432824341565467253226740731988436593599095404936117003310048240602817223617271416226258321111763225853095446058870018020947476461425275603992157434664009993638835116068974473222675617086198820093092058495736963886859121681984584703441599426784673300061161617449690779506314399706347572494827386498158938884014165321636580247810942334590935969635050974385127203617772732690801340285921094388057436534785424907835975046783525703431778615082898863783126244801351720391434034222916428689347771889598732302888884336771741749277873858247248721365727036103021265442471938556594431886189151181023778293193144279964371812368729776282151455364921965033975052793387824562300873790567017528260030347248668154426631667521527390175137017528203765416983689255394159642081078437419536983531500225626010966624223164450330965002740217136196623329457979710069262975029314427994916460532046635500333294981621054319381985071635260901377677092903742884476597441121816150840146584073917829005057052611911125758602713799891251672979202053760391292960569405353445119743110422305355745569179675844005872585042178301212811756824589448201017746073262446410623183166095947249981682554457333123552060076865365713074992549028098154820148878446716069865544525691937015255476388972832766051826003544362824061164484342246516013283790809751536344351813268791125255859196878730653993077904144999199901424235360410013672424342145639470966430692099698495040306435465665331589071041620404519071274712787671114016584763585217495271681546208082937728961333098173921464490238682859816687614965460011125635843113820853672428307895947533838686742945788141285046707012295166599424962200693624156962097907986573990360654146738637370219465239220358750040534884523438537239628242606309222567934226240488202753528814821707123272900149762473689825434656508411318429060280025878732359813093031525594260445723214359877880223592238847948711690717710619717113176196599742550847484002215358607782864857916598174826694567793273903365788213824928863582580956610584779003113239952806768662674387530333679823543386213048481020270886015024581243794782869705626243171927390838079488666208235131920942013432903508858548576898395029111661370196172481859329687660683114659199000822003227334651545165659659539392090142916902674443292978421891691266440670589395377021473051228062540465907580106712963796377613038385866291136476547352672227726033780730077921541869528580117685947499949411138878847273097375825651537038516692306143147535378655575434801920603713998945021074672825182655046680971540737123087807121731809517233993174779973284957741576834028580395319052162984658804012788043614041443470604036468970298868748924520883203809645436741023286057472703266287143366196593108743919409546242256989724671743440613515206773944405753842320911851387275638179500492501051852418528338303965227912727752011961067914499959489480743560774251663202114894281532963804820741361377217894860561691797380935746049319729353986397955611808773577084724670569835684536494584137718569266843757933101813689491139892433711075405884004076006206173957193891918298057143194446604734205689333509408490740291248338266393162883188305395728251265513175886029772262150499502911801245890129380778853216196406536578210222323294042744057089345171888403693718945218148201436188935914207195596455444312746614148047106028326534232249249213805101411354788273977940811968477684434164305902710433169478947955978732764324862873799383357137818575231369097779261871775081200221677957058880737011169366119174905967490930248729673620168524115421239836938406015285514125859483654266405114308280090614626100276091701047699929988397216435138923043887570143207127796309653586839030672255028350018348910984153147052547379116709784100441458207015623651938644505169898276685948219276319245842549036394887983075064236160373504426330489960321012926258332058603298881029412536480931166823938747608944471655483320087668538705871397520706161316128899515176064284997725390068658873896523982471099303715292436186396642180096546365864151432358096991662641053445118842285946333782487361834602237821134878600706486400841287057211947080563560333305091493300295474010204290634617474429479565555459648236407982478803930796849064891496273782198444417147501746895610114976147159889308082353791547445711400616270633727078441791251979506173023830201412597050892800657345649289789147715066457896948995669092793265732464421957178669143711858760404430719173400105597691105119536782794619292987291572271339390781452614837621445828547662907661880627613848821513052240484782483978907488233084708028569689776852689409378806824680461641806678441856364525219960796891902972956719078235246353907390649151957913233862912720175987648878168031386201447808592402321906646747373771103095047044169248395582201844942807260732209430524486570718970598630144375054432730183406118142660025748577868189965699297682126746958549633110341040369648532324887607577580231407995136155439028701232184775723915555412326576954840932325620873296288411221238175653125880154149402808533556638003885153320343682430002814679927746949925166025575801469052077330055911943775294101811320311228907828508152916595052123455706901149536946938006262183702991735481595176294150284398071738586414913133657864800789498010643584384669404894740350856429587186326940281660670553689245433175612519149670667805647795684563805773045170566281941030938340897374424288938741426085811174479412861994258295559525890353080272786586459475206956568466535027407461765414762807334443346652006935022123918161519490507263456230157439019253935222427023681920205094949921467720964654833094733367260243476412272280861144948960605500103542966383047923627973384722138004276583319470088375720109263705619562395185469413645663513225521504383213420102549431122210264033954514756813811494434658292844822429322837534935857936048271405940811061918021583310346274475051211674500048750058891461502911490517924711184566807815207945942246251532854216107480020330604466928795742556934540853926886371363681070388004038148794205703323772000986787537062457155647036659269308926383173339221958133712854256951211477600593593040843993104582930668347400364105889219666820407602910139433904465925719300200979317899468951270923729019110930539757570476497109146356466481682403254097586024987756873591251859573386489923826883104714375255207410218569624644826717502902187992068512886168382049882406973575720244512234646250904208916331217056402918051117030677097055007742505123206233784196217209695273800369111862037625608692605459443455038585711370756664346968076726518541715353499680891048729281787140828259452608233993787321533698688091622657961391175989557018555447607890737246484822453774261007163604009155980235249060559974780679192121854884188648704786263567768469393923151482944067817291974405784919387086766440995594218651665519081214294276726875201640517010281548870171564162951046818059599245020456130266195125278013895071169565783745809788111124742576518425949668286574109330988511454840910877509027838212867841795167647614960505158300897521654539834898673117562635097304487662659427419737242151708881332258835839476538020121263802316557020538927017312897052621802051635820463534107311340725264872792744095586103007795859677008672105101821776037442101057620069389719226397767799003693491250717171902394337101172087115363016113813421373006515963379852764751551474864088278079615336878902640449870958156338908317195405829241881374662157170931813196874058958873434345138720998739077244295996854214754968898301151875452553826284349788313493985228645246478630751362755659154982914854103700915797576240289413688754217497928665882233304715108638471339115629591897462654330146646759956802859229953424844349183885935173008415444128492684871385251546879015082274915691439229465331305490591059957684377902529250583163128404423700927597064539606087290382181429994242975588764647526810010250012666505297883942993411803827810111806829284101461064284772916394973070774697225554858719061357296495508136329765296121947310970189654089620589746337122785323873036271062917586482077606463710326371448189865090774881454454872321683299978593297363308836266651916721324878741497045948436544003205979122633672683887883162389442032463199898101119436589881706524456803478334355934164757877389832226435349947049949590822630914962923915847977195668820168339990944756819753193800657392967307657541746670122978490495290759256077257485457845031364607026240446515909769686640363451302625531483540345654729682886919200533726502115993744845640621598442223570810621578524438321449456048666497845264323958437773851771484512313554772474241735015423160012864750396865616860064500477644115789588277723365808620785852969887074175916203376949241812221509353328807648413727297209385751717317242921461253803050820651408690852135484279853383980365743938034113625121143695436254930968535430275335110637199152573222567160996399843703226983208603107737873280443013929970280868575266738790298912596103545941644875508440709046396085883669442744918312227140218146346446596768345504541049204759164049704516542327710608815228567319862076819028928546578937828580972251511673075120093509111222029371121012970644125987732607436635139302517737323406072523456009405826316668012746026380177941560061836004590021605513532339806290582575304806741623390872538017287286230815581747019021470745362477646907999554069546323528138817028522963596546676811318847124622668340320129353693293630003321601506452672611490012281409935270484928487869913636303187438389275060143031883873146214531479295974021352475507381718682355280688795131447986133158055126073650466612114085374784103842830818242256665930546232568881856591001721217348375984459600961587727056800585254465901560761519246180924765805354515912256517171832131042555145897484693876184791607761286704836503875271325097037610309769248577543926780494528874313964547372770804030094846584112908191993844141009223197738042402537943494167286468276144948127176284878790706952291946165121445695282831334892976114900108026293015615496452626772956222531861560826156708339283682389917157556716285220056080683343170003713693539114128238608192880856405865926704874262496078062584852330232369138602730996441601966658530585913219747133977298593953811057042171011207891968320168531027645227844451316309546823246444320947857137468333106846993328915302530171665239003891992965569440381098743406510983027483516741652310788651108278106325552100388261662829847247979627288646284554258433346932657776708828849438711594565487647680845697393941999928029802588187336105024445849319366295177808642868198264297192247144952531322519548815216436527236954625043794294620998642206166876035939421641351485476768083536345176933172158342578201003947960063108202843245541353413859060230733019941083667931515966612801025122027659521733298705402817506399775453906115535971007882887505573614836553025628557817308962581024584000154114421595115962744980253471765237406495549010380259450708332165724161874287381614351172358647692362333554050973080360295282515166026115824006638610206893370591866026914825825673062743395299957458809124235294210566847132243096984820963240468239549890513832593600575691742221792139048176134508151814368308228179223931703356822492154321354390607145919950569589431896129038402710564743653397385327560511833226915279158910786931376708443121066746947190626015135834660348625227324954306969627134099963364459807912460625315667011895583931661016727184884078149259852065601172478705321453786058809975209019457250908602570850158407119549901719590439016575709025382261848917546671717491947243630295548885514433489270851116461383331543993716482937854453373589725831824189384630662512578350357798192898469733321038092639180646957296409504118899739429087410058534929531700004873767366073850278212164426674160371986239665068760535144421359863882585039784171845991370752031666658696218451342157801119501030212035630738322136702715816659292574515015016993213536743637274605541615003996296965640820597492767169981631231275996491345151860057431825849255419975022868383625524752246560779312267992194180485463518729280759465843439299223501526121985638386613283695851203561340910230820831416444520112521852864795092172986765750776299422846568545053622276192263040462754166248341565549452554341967956844754222199978401398662740298023410864211531166126950427265281172961083054593589310033240809394190923868343636975583371311221815852098292350081404970859615620056405739887059622360094741132369733674879783069423137650866681003841612169369107844259368451954954686718081198219884578559304309504908723531879711727044494359061337126122432882208550789609678716080891982477116809044100246571390917396162188129815313335322337414021872528618203964036304080188597336560774246908564301619153931294627008165165265692086024299064855874686389849010811223364448369950365662689627447121190529359363328921912982305045350514802585102442662782623664556263740669108879619268940800236387784374208702286935591147627931499349047310851196699295606757541211188486173889879082826252851522283400626271780190382782684343600103181870488134518041409232448871382896363118167072672638659479131418509307459978121445256407831990882566138813211513964828270950615944821092554753288234331482630457159457751393620659995855557562325146579188956200817336125297025705823905095801948830241778471707300259447886438983478890710375385130432224246475016898276947041218187571919702512284158510609487533207276106958857447787786314737920056427437927705246337887769807574959326485971375408600570771835896101365686785306186896770039704804386683136011217748537269256352325333207157337840618929935356166710028466920145294016863345373443084993037092586013668351325700340672191574267284074245902954564102057238696311784808156208183590716001652150316713829968835775511626152273305321293295074643856205474195897338597487086655598089527144525732994234662597853119877534842786617154944384467415427254503091133040560618702839414119708526833911659286335789521974664870468256774763959028313449442697758786809821754252846551899150745675710067399740397825598800009160573890311944703283043316638457856120301634233707903907918146613656729404778168181730269175919169834896877977741392735893534633260992383303967501356134487645582267510226624407713519651632391876591355460190719633035812388169124120808344868493782104781451837707076468455630565124251029820184547930823933844377740022136947954076576671122323934591417806609298583341732323898427062196918032394451094778239135880578954987212184354853881853787581674331760729914637623133607822603238858015703518618347021195277404436010518749583870438429982382215042321729705315394816312331597050552728572771928013120856586767299113796358813921010241798962161298277867749587549928773615009627712552986044065285451195243865011778181876540094320299635008581920249963021412707134748397021692339925858218361909845140643111769231960617329117704855668873667793148011836029790876136159195882813480889316468067024522321177631634038806577576976715406467934046286100531777894052880683214520439114291667327104593810829832683676039666399478725178717234243271527035581616875869482417436437638945116063815318217470392552730263988377523600827693752592094673986426103347244563394427016176434626085104834655460831504663537345124336001044291958543296342595234971453323238686891440380052929309984811297464921021113883667604096217457443703473763333050565389847798020642297877321657980737983208853916102710802123028245024017898481822281537570506339285465805560743233724632975760934568539737799235645487697906789025441704588563072413034088726088122529290935867396144543067283208301178169540859894399078557056130003947679224881668954563850194279091362264326183055860332577472838483679358241799852387503045203808107984880193345240830352510338194937240773684098603999673607250950222775143467431106179055971520906021424968354359095823268592426478684895499874489440457810380600956591990463007575400119545640032252984710160095156669257148435673244507338478311244709009468759667140481725784763284440885281497444171988175749820349119991614467018343212235276052124488192272111735718087691035854806432396098506553487442244996694991094171903929468054998358681442196271568598836043293496811826351662523009114391959898761037969037943844938758971302633373925903321347447147442910738629350478729106770499777394268684522725270046527970090922886296196431095940143600084528666911305862361675323694753799641843590171809025565470965087625805979949739419333657945973620664089050997580841165432649468754139228433537990609634854846206042304933004316055235377133405038813153574669334073640475348214011363090945186717253294816903100668327129752087712701714366030739466315139921492549901878355076351405816780584513144399411775685629476252393995793600941676847821883637159611532292530865734610805835829780499925789840983570756580504168732435437513223644549097709576372513760533294479673498604468929693500373490431991703223193637835291955502548286370128065577280550774182469642722970768300417378511068415968460587499795111501836347240848204952096580691856947639136144123547606956460753719982013079360820520801461039044411698230412434487536371690088083353908287725642343306985649206299570800163883188743992952239209192903876969691950508052979717376045880812458516865922230435559509740961033998371643223376482978130447618615621050582852016221412346632932163067974037683033081718119442068192499947809090057582966405158193433703293280863599667605704502987751702117234945826885263198800412463781000836826436963567080573268637278794498019944370753206768734746318228898581180512586742794563293910921904775576370812523218437010692032772160696321907938593541964477146309166801711290178752510660401247975983046652535612871184937729090279991553601921630071137192680313742703750912515931309229800584915355595729342640532746972241665027559780917814816122592397134266639019624501291447248479393979049482347389616217049605051323257913849525115985698993428547428614711346212341505219912805666517660201659865167652677168516305520713947553435761093071711832770730844070734155070927521506668718038898292927404743009384035678821821887238798203521807897612449779951717153821059753359073560448188839216742926027775071740954749711089783224179079876717265585597580188218627332730122862803188247135895211672615770482171236211168285718589881247018942673191609511310086940873216747520730641502690471399833176036720637442633862693556059339945694370462532293096224487075751168140790321274657738206616181127570001343529560663276682044596881390202529440434206146073430205086756286888909820122392462462297000831586196894796686140255210197446060369459115282317445270605414993343295116963876813329019897585113954212020483777680646625179431357741714339809352947049736847318600293079868865242269431234883983396536481579690156255771546116959394737648779188203127714954968933670969259036646206279242327525730377151444738876006311344559226387404892633429056280953590095799940149219524713940107154300969509382028803741729344286378506356070365190921400139191559534234120996086364917984676506401781848394372020988977380150514513096762418116248196092620759890446468121621313944436319960558030718480487224559441682920884032616784019710692672711996017842113761861465075371656890945602903622311928033971414514566663086898447153507735312810326384748493085492782694492907994036072731972538519332041271275179232123782575281077269415867429387029419746468870374304919198997564450707411081707352359987290526441646076404045974465409009601919178890840882386205121349920497672514599453744458602037535217956443606209514963299179930921440123026921418169460822082339120584415873090154903908855268447009168415776439585060297155127272439181670409258958634465276909346612239070827764583818413782577346183048534779960520165082488809679602760177752958352482407279885021061600784933529481164455335940141244159391707454166502782438174330924985674034042016490854389388307808991508675413964689805550205229359981661972721764869340116961759121033635472539299181091764241372397494722846273408006809312170590574736219495297825565518795741576027746365553934742237617979413235504233404594980782807336143323322172952523403024285624936173732572025793377495146637203658339788048696267296681201000569640259739312747295565966806888995723534045258964895360676070397724207390250934418030245278451708180044965520842868403005905115592775137732411521765933930816310403992115157994499104191999818813712674625609955228654253986469157029042990250574257526284887699846006174935058622461968577422904895811025036485440109344301076617518070140005746991096141279049931662535336571634523682493597934946484763166542619576354843307055165782961545241337065393410758071262385127704366455675151080708826456916969102151194169221318914899151136911464961944296456172524794136005260367748099987636421756362647745973721736999619721107589011460369889932911812413436772182087526413453329835613534253534438682134161845302271308659406038195495994185473255924921113418432873101145963786929561098281832373183940846457483785198581511810854344540945824508703129586864581110485170071779099672360273802129725752259506473255525232128067828643417063526574193333973752404694513901573542415833901293942984606112779978378497056132234754017803007449080645857399817629072719299649846102826438124349117687023465150285868503453328801606852811199032770162295671822305890952484653339567829809330827662129052760155198528420831510579758717290619669873422243486970227383373381296412697708260379297624035164851135081202959254553376090788744838913228522880140020362784239802500289098851900531484445110397590877531256045765651485187656318754870308481079170817302155818914095535814715332601453810014705237165754230662999385234874832158609111006425327290740108128271477795124720469164493034852769436357747879024679919550773969316875521989384847272899683400076597582745664086546097199627318912617381536410490747140390793593448488724528916613860332568139668412138126224557425065140705379703661898059911967021490760272135649449583351563379237672084245550749933011499943030810352460155003226441447966606122465281353618210446266383839445755602209720004934052955939538028104568639075570759132612774173046970958698743411858502633185476088841846168704975948166764324385541460217645003329683636617185703510332607925229992143990385088257137770611473651318154568000483079399922593543765796134325932402838911070578552010156006494497502640818238672589553975409695211818042271546358805328662495452646628658110732319582045453701731312266828830758661367488946330574066678487638285529664131583096864981489325284299765227665727440020927948333694035890012485369628102525580761059233942613010056257286785400688526367962111558758317904780551799165849836269142619293996762779098333821490687119350594407146176871582610282876467399087074703173372477016414164332537957868179093655803967225832945360509502957345040714720050156606831753638471363734473617867379092486777597270469169772846804831334335102652234425221551869487937175235473568563481758019441273438800315399779390063929264464384217653657644913389017365673580430936352534474015286985770876413296891233562194263772278385576489286757308669220781355714521871971723900188780320618820802013434019650240193801562514183301647782058802154163180958062728451193495581251482536465175988939265530233052129211872966399554508556288729579251851641992546251708370859430232431606741393417067400697731559954456812765470289278000571524595375090661401322422541419136977427475822506906089369544943520043384287592853335425410517760554783999710846374019320001629690037429939617255427809029259847830238691108397129552451088983060564624049336760290410509532465298652209113563158236167303569038878352063527001287090981997546829734312943619222399614443384787498794461850602839468833798355461023560288935561252207578470271639904446262360365529335605761848511642303595309630740737713863594940990851994490060355707387680054573441300331881663087491017673998316596051838721408060688308935042793213830751157746831323371131591888078691337921686510218973782992611040983500629145136013039440375304852886242041830834876490949962754020335769703561791663832809853314805026978002067328254752308229229366850314042838779712231849450625332319745394449488979524384174255127282273906259379667706126815887959537482915241066191005689631636976387833850973194331980858745932662824792652132710843036552395793235051875895140627287256576956398369008329752694063776340269252055730534247789206457923971240427426836893396355864291765921992436813379945498458295209320896516587108869984615113044208003309383850592630665288161230462489768795583434193207156467689319595621577224203334229452286105045151213703020556686383898978394495588683287211955215179342091486210322940751110500974436990999071760422760816456525314911997805179820992229045923256826129780279140064539611701388751080844375408131856588282201497678811388503525356383233230367222754620431235802781671507633188150288673475384292008513870848379815835685687348397896738030625307633082229646329196674409591481968718633764829242783212403195078300628008592084823762536611750481891797538543427792984754903418169029602380068285961091375091292086600559713493399823347657270507249963794320852164376958187402712794149861908665432828325857247139030228766959171474539721492418461999522244298968982620064452353356988780563087655419775440793108214725406929650106715358479638810942880829055959233054639727166868899494520335596077689040519589493128667022526053274541128525394343010879045210330800546831683738935414605493901201062331428326885800384455575143427332035021568870852733843173707283355984855082771070733540990575707049602139916809732400974945405006817342565160532283002638014910753009155723674159123287102287807188349235558570671049228456019087730449607023297670470350466727790013118630277155130848931646117605039575424827108971973934071772221592811054014518185456009308795178136443789234283796033413021916196708035583754447572564256605371960937702093360372019665782931822979866148813497493376946189699387161004172459466033460672493924036551394881285921111268932248342017399660490491117056115646616545427518363880201492970268009581897319305771209361816149840968431934548996708306021058277825109942635807182375367485590009141302000940578971246137271485610718593611484435134604362871399541792447728572795329871489894374677175861988850674754988127832511303549357434862533804352758924338498446256815077962604604248075998651870315325065549661941455620171095416243368657101204665011256631069743533578692348083432669764217669230844700485888616086046091011391680611376438514410434473092620634639788430545497118459359252076165361286287121196475405629839827760011333769829128709484888304546777371335334096457922590486689389521578716927258465399682525108147873626125680817561860394354499571416922818798891896233875258394292780170158154287903607504968036942413344131905685115826905636089130654679253561157426162453308393134242759589925315489619187240755267480636307167270803982647155883688535394580878587519854450327143961972826492759546107212684885383751405584019202513099976773175745458473567934213800430624786892895084805406087631922054999096579503279059459015368532524667915630432532264075273936587940228570607700795405402209087250950750967060259848071394137469357323385074284157001698248789733907011066672953708372667757648873071864803946996410470216023173127605298655447596888054651034750518251948935915971626040049143876441143405666172150485347565491412726807670523665177629885415229664355519927447426248017101632550047223192603706585272220133148249312867720733413329056008550252542113262364631795477670149900009617222192421488768213911538204603763058051129844650826067653053124405808596751970181847970618468065886300336527764703554171666497761854102334181634073739167937046102486899866185724688262048286562970515301572837501272734422413362682399413297905698084527650224123069664613525308329216337416090906558551850790675449317026068418705576907597971684880134791335421956605271806441713039247110152770920549768525440185258942004188598277263259851856746734007611999977141609590893154139603287170701283047451002359677589850362668205685352383165729615195895685376894402613122791577777558879636764814969574953517585296687918417949605003348433175141330501194136751646338183052246576877203379920347951953205749524813561173628996661610878228545393175097430350196188640526045427617928926101257321599343751308663675211775516556070773311961807766588822999149269532881371572732461210130012912248283427302064110118157657168185422688837203357469376726833569930907021611379895931941178591455457405960673189862974764380153058894763141363993133451391581240891833200675766167625006307111660247949647395321086511692080389653758250302165226720312320716742368619971215750863540018538995986759308131385265098468856532320755248371447875456998932738671172387284228910199315269052389968062225162169771772632421761682435249199592601266598692176087916610413431303257827866062310080430254097494233014383541949890214679163605523277256489949736891448084068339030659126703172043130275555723892590679701880262849113085550361087760068047430856541226877744938873392766936465101197446044293650787365983271959462879233820079764314789858751155509135958207811258188979573454175454726073237002575008718399021117742706369152997570899706608010908861936200315520033027419427801836834657953119241929055336389108064588274801659741684464116865074567473489340510707621466485259469264778884012607145295630096511018692885664516354230591649864791951132428800093613345142966068167455029440253399378922428461323776371092692485043903774653405759488387816675160218308429508466284947472096900397875662834709095411765928942989316786084000511225900065656295378686838825563927032632543073709739534203269029089217587733440104342366946461599839433784957496241776508633882470686220383707231793767393383731644974202774017863439887206967979560806684073450005627604387307194815974204360204922979327570984424215388991460911962508762752739015330842173198860560868006350267342838827095332412640889640673756120354320624631728635391408615908540901474879268599720088490845857602415241309289274957417138984208407908810459892057078536492318667032900536953721673648323405933117918452584189403457126314180966474357838110102297763625774252883036946580828234644774267981897347144242273894227791469048136559391767175354289249278707376762578656833044290667838283397667834709050626610629937873427783147442462763460253164992453759638348216434452822330113454914200984529256796539615803954577287995159182617159034895267300202298837870002701022763399512489625105391493299177019435899971926424207057554576773974452782622107418365896345977780050653965146940463809277123431031108740856770560545011683724301426531566217442400993763182109367963978854288031744746369996914699150929972360547874226007780245856100356164139582435714106550501692905659792538836715981548104782791618075696013913177764060317129580921699434714759798589353799360729414408444380122861351323146303926642579144614548623811237506678649986857030967976393967938413401304777179449675446010624412724451360037042263672212781925350894482984912310082769148144529145549985158148249707420912074527711491452191546747831485199283046060512013016776616413944599316752658608575817708197730800478282315548785175911760409282406129839229025376753728024957941347831619265420424988340171161241354509275731030023048648145324648318124532575204236153553765409314096302316240013538379252289037844369685264598135036188979832957764708021492750642785924686780588603712221451367195860365557998432067495225722056447095049887137917540318331352638426250834314327012173552942507018087288462605165806437566658359622257998845350572415952900082174681373436202403845572614227245565638891015315404898208798095655250478890144689998477468563137434457457997525340801461406008467061202986130815976196727524097038313692956678930142988164810910919758303866491760729503612877449645580719116050001337925283313081393662128508664649052376430791342308774782847207713474281441493580564203165897236217920049358517747080139503577123137617038016113623950232252445356292393965606919423033736124587110175585475062845937357405416544449692803179331754555495794981394919258965424991798091967808399782520828860549702770335357442030666914998978168943730638528875685831057690629437178405310988523615892525067853219685483464710749245796742898245046389731650522183538411305432264652029797827963509705412697174721415195925340110038332933030167899118932453058010612951514762494592533957061357508428901670199598100169065784555975351123074056304540057046428192811620458208950012119126037054893508460855414525827654531714781421556649591998829231668572083922604202584468123465198423663827860898823841786284910849442941653967401748371885530714568807941311623689526429555205636201139219384433736059243979621854073607150217560577086373496202795829708134226482619982893243956953310054716132388987982021965668786828301746400759027431336757230432476541113305291501547699916956837180617639712753069929268737119852545712397969953318848861841612788834720506904488487546877073434347683745721256966319346464058144076205188925917834847653422711484653023976721903493630051268044679318565286730009767739043689169000306523253444751824193475620200054021504426860584070676255523104274293103798294819069035330372192075328069530633145533785055520340715397061633871222826253030027352836827683252377358095141798517661200465997901338261150966765409759877528429636101240607281307516473507890418890105822532553292793220932702393722554574062892613686862967694259982419343120623561820753630375513049980129410702703442102581732049525655620507392796712302903580480713652769347251839428231257649396425252285436945872898572021297733271422101182811854487755788249605543698400463397779070397875856611162970940333361002649104931425166696446820812885636385985071499895522975752992594436060373596597448338309942521867605919261618392175573595638450955421996284082276954301270117807365326768180114834613486441261569659373663270035042493373198930843711336624931756834403402625194072860605635194759008775113307447806307862984670262152858887768012584472072113135651354367256903911660014346135773265152598688774040063518888719563773387438828431882838715183300517837473713940470510706801357221689221760382568563207466154136337072311311794227424092880687557331497948314423423931456239562702661989773500505379368418237504230749056784155361620345581029422754259329030559187278005128320257780242482686224968435522826703666749087751372126085434159035215898133816742236379213101262692057733668778368635208259395621948649855504684387203646510623252558659079681366153585490652328938327332238608216638050921556635742382946168936689806465298517017687929486682673526611410353414709066249730015285770635898150762819779091144160418406721689182369355899285157418085405655116197846362018413920928989602656778905756915277136224040891167439673517068007689962166388124411460666464307701444507716313986320810863945298654590298548590396172745841193244936089026518426077611372017007713219173364148394684360140028269178838569194598373003989823887265455992097920534718508996836912383271277917470215630424576607647656662618182599133382617734157796540909728076416119083619731888558174270474019053536450529504670512944915777130265627890073531398016360099172640445729161122947323281728909039464454368995779288730673386530968685924012594102555870515755015917082382916898024160652516157477640850002592555617228291341740925132985076579859913718294184839744487022763458388998015029476208687457979026102329275266572895396240498242196642853129860991763999445640333692763549645865001848322024449446561873226765765569124881528016451677547718046354308898997786079376013632343987104977715597547893718760289780395868360664173155077368152553793429602843952119862559221138924973664371668660035113731545389773356654289703533171055294179573692471430135747958876417763739278848435562612447089909645817529623173810471359673925740032334601594016976614816416212581336368185654078252145818184768077443969151121207624883797681086922135164884215877889681815980993360300439723581373598029798416282286103364115871739416518047243005360432981864435047888377411041899544873007881582046163319252319535049581480807787821533015183827134781988207798851553293940548365765057439880655552335496076025788217800148068816800006312975389446039151525398625027864078272028815776958987149059377803196378248594627421679951233383149516705086002891801630160005759993763131910373604858051251788256161036505523649878512808256641232356929773041180152644213404234763324538210315731955351315815672961599194247659741651414005405183822764323548442931369577060852026403201255848755551768865340781106534296587626730876807832019710816554108059455551239260855619505122011397513297767823872310836260607628964411930232352135049588263800765860149886376237827466187742795472223269142906237783346456829146850792797887844987664611069009954069109786230886274234963276199780702812029910063317692036497973534066267397434336318063950252245704672705205076767052390987625044028958658942840013209016524425935939314041135322593073316486576196242321348359798375111703544013841097513239272807936532915102610967728313825053142974220732587195059641374340225898316903007579532659726118794254890323813662182720429741427184272611979147671565682543280395798319039767923960082654086776635956621804195409144551200552285499044385663300281179543599939903235969253503443654989024989386677033847361457406721923403859187548244391707198731956248350788645226536934468546121901776415215862226965217764514235733700263344153745240577358003036235707668580535792682983140040445056532213203454207362241776448972923074231035432294560286490362093117838766947145306828058239396141116041048786977820257231218639600545268097742670196552787722468679117656971402442047980147908176863754763421350583607853488512809017093048143903266415015760244912281635351694668854917372613685162793253016722434752943622273083461131946002934659684254817305187968240001748216886039461034979867907970665781752233888045995130922036850050492828474227649075679557225048000832200654078158782361009682416434007370358735753473136701589180098495131462834250538156069002278647946669297290014934054916732274198463566989926786749658777777314811430458727207596131696698542139461026582479145628773657011009521361827183797025201313423510185145541425227159382201801562767608270336050630834983541007482281345137585004345493730956838957819681866985603728662064380928482747669276077433395885702490167992252221611895714261374952927584786063272682711230281463570805784834745676110791072185173316692289086583060425802477067984490407893798479492865855203459840647478764818839362178561846985113795778074684543942731787428251965492013119787341961346001880694616160217318001551246282712124610646204066243161922011543540540714419328544870958348136436399011410049894123785646617709171175580226113187045184764828814229427634237070031893062522899582544740413621936645555330737549537460680583896748955547733371312328539122802505797691586266899936541893330938760886807764891911771552300746828463973871983910031132724030277815250541362714744736880779976893103595232122591725845381053971332275023303321864153485311632171871263592930341591417677251422475840307819128300210879594310190542999849806463656854710262131329157328712476946902641440076021757573795403181925080370292837861155135734267981208577346431839764059823658556894862245885323066934172835383614260757057700432093269540784269357717258327318817541428847810025778421482792628869585331009314849911911526346111165763289997611146478582145654258756934956295778788383373346585916311365156351848783289034252845105696473323059004447172843495694649064564534017293878979465408493151667946744401197689407216345120692000723384011490757496668931682530509673381776980719550778522523112810455417352269722968006343370713385140565610716576709194926188280522634310776073196673157304891192753421362212957214031896476748665145378770400173382207394120441894159242658299047279431120424274026547772137011019777499470533609020678758108629519263285460518389813532919124246549202560917000962517130587005377787906241868424497423381952407933446878341538379198028611098837683314452019982773603254427971080850651673799937625231750319601817004551953859490655739303685587469410685983491438168336702043476565797659484712595453854771447638041529206436455590642240578151745438342297314721028107526068784081229440151655523788790330610958537005854832179416848586854214159733292628983953646254792021996473065979820701882035576609875847449778060846574884012455936622101792614954612557924370076677837570354017142046103419914510606836234101860391348297510849772550886722935527616243777816258251262101717570770095924402646717571303341713992680212532784284960717204135148230371477754516176969298823530935165003542238885885255330024892249782223295869645720569215362105143342529079678302991688254985061635085240532296006178298301079485547409127772915835338756411276976759088702613935338421361443166444558412511749237062738685036296791061531913866034246638969670390937698006985805621611472043383585431192510767136651445432135410460841826146915789319161858396960904688281388659670361053234400656195736575237445049622925984410188012885355988800299258392012997560982959824696502859052803872015066613614222593733220180830541998946307583555847820010247877804989173615611441558642570550186061575380075294354282049876790755445176246294277058455827392271181499234591536653272846938122646548471797374007165115748220079331362080368065262280190851007412856748906357921107529878555961229420340583065081835302360506129532776843878202832819671142767483263528022106745339570798355789557285197185184550736789929730541262235475825703439472148007754015195080158258781843540958487283434559939287672997312695493347966761898715058459708141827493850394040669404470091609457164583985376307963956977539077913994214280018868091617452998388689382147894076057836649355744704656346184691227718291969535363363661476788394039015869327579765271187016882411023811419504702407247514413937683032601160658259927191572425795358705338923746409973880620454455808780240231566433624737518929608482028390247993561111238958044354238736149532997485796998532212392643123396991950962650515090094112766091355432293754102195182749826794808999496630106484425936582489645460836857414551546137816605287735083044948305306697816241160659316328718647079945210633116794261631738747684658610413017010460456629957938596408309816807077068955448352276025810107790004275613821948153309606067107592764748146005969132559641302273457999559932526727693725597575123770301525835822129208315845480343078532508813548711833949870442384876262029548578632405268280370987282365692979639578531645984689960093740840294762415448060385766663676456621701918422542884991043294249737216427501855486612431704763684415233103788681157372326549094038265931610084557517805696321326683227656717135686248102382072128391516654694797150462302901308195473024575194632073008535077225496044443502330956692712539323807965360203382322124785723639595606909574431997279390923811593535248900394048914198588279347615208988990265374475013408198959821797575847387373773194785852668803428019605826579415941870922555555620795124476606463683217850143489170839533536151989219276269016733036085115555886381966891313891014164959180164451219398867073401570362161194202366374376284887195766910620325546689560822460819364021246831400877776070872527811469379098371138187226477375479347241806345531163487790935479971884478987502394169482065808223084217828572448647658958900765504844545111138492850350940121809865017351599023365613809763138095369684334796468053737078187025894660065229979732760447057038829693084850763408633259846233930550645202787493692179783229986551001991252473407714011802645530669133932724686635228604217767005410096408630075880468062228401479894132696963770212888371127490381013044005382801948364010984799291843860342385341034063577804950877307194098988338467848855254963481875152081003653949982753289981400963122688758743021481974869243917834986586848916399747332569396858980752567811768117871394143637327071199471175617400394173545265613630836600312471298978001289851835450139476357775664025635506883814067525007003632083158749121548826930341956450973435472178752738383921869646018030337789046339062878210458496422134403430744915948621346740972971725467237970512358818157104562400594517078202531369008366574025757588920008035519114598227005482134577849357564584671898211164508188303320041590105455476676254299857875053502164995709383227601444862505776667444922101667810850790888269292463758476995804652544712155342925357158802934282468289742068347802753241148143700703786209346409699821802982598645157811381806110641645943904790161505479919833286470954484736288951053406369296671008689459273184019873517669117192165305305635103985814785866974535528548318875938734518681970453010030229954071018987760984095764678629146920252661722726636254200132513134515698441481651515925305940305510129389339842896948252890721738551530815733997994593810652283100499971715349312913647944910016285444312432342589530796145774674294441419479390992266991983892040425730528311678416245404837823267717956574063289173294980878573227811055797675825894921718746970320779712932835404865620913324833082617456670400018721887538770795080995476018243748278120613074640638093825095369788620754949385925734662924564495378033575253725634778728328018507098536279052584510239768623753863534012796655216469204673402059809209926387843831997784795172325172461944887544463313917798086219696032626968369502571309267897492022018094207991644460024890199042197943765062780919958890865727082587587462333986863300083469830515066336406735878672830231530184236934678791965206997248919166570298160912537409183220607805167891105277163221841826353147807015952763658143092179171650200697220328851549990478380588714844903917153060103153016194030335391167832410416578614310692431945979501181350639043268132299547857901806116889168907970958656485657932306100757529937065873905554791042383950269064341350650968492981038712803430004030915456776706747005051419317246709704824419841956080297859668202854129005046296448644713390897703499046115711752546444868411117571815115134128472750872044278129854513423671808286314893153612779699267783378964243145058850033643951000386306121172034530134089273780297495290671439392400050199377778647331625067910803575204455359601742218283613711923108181038696711554353408043675557041198153600557435646517060740395028369480491520753184681161506805444089773630036505634684510635531790677934334557089240501040456520333700686150591830709357362285432932926747864229262770818281620470379585495050758901564161859491043141404851713613713594695985417739920763377594052123573776488709060174264382019406208535924240585753009937028056190749032948759345995877577807266658629960508234336597350887300842493228695537422426689359760695308591367075404910826384143437504289521013224633070053527216542928502588191273210270153205101915350291009457416277916703978416790496562749128188653273486977040473458741438910255901155459628119669106539896762003885738127726831770626960916322763824518336365603352896200475133191940796574960928041890424188784370595682448820999019063422380274886208301197392670917937473091922149232396747995001044647490749863799438347680663213735438629933100827383950900025287930670519103860471314669267186250214751616986811039173850871167121818329447904158500008816356664184074142904534763193556395279141724265442677845977596525728117261448437197103385558728859605911834065754057314754195802516337023978376250115909703882984979997261636265461204339516228362330387051259200959853100440598683915993796456906877164796809752189598369121458229585838540768864973120518630595260132420238038168837966659660264198839872180741908952731200222911859582031615759281267083990298623556628716484704865866870793215990273069381571807447947373280497453823013487430090806192236699582408665792783431067230698227792850733240291200777943382109407876904141764033925199785717031634593689188589237574628635947061241084430590582909615633196426748621510557250958663800929607137329552653153408948285888983329091433997634364323322832523733221872142297798668639841248621210737110027454748832305203528453150621993495529144873389715896469243924730885891490283867639259961313115945727186215828013091467555155054554252948744758257542789393076109743114103465755824890812159249579043457991046664238816941224292725024995351931365755347280453559172700204749323902515719435651384848895003254454073019984019464944312935130864267748130566201703357955599844554903333975289227448394427670396637984451799394643363874010023347150680503229234627579156506367842921716455658955242632243060573890043980179226436147039823561774179792124321546560080242273907015903415858498338047067769925887940006980048232873705223146182467780068100723716514283097848906698928337199908490868995272019194815172970673178319997144046756990027592138189705203046810879069800117249062830322833116306521480300407144698410843295120241004409707935444888932290424615146391327942138487865637755495310138877403398311705216621020280886322170425180349339624058753280122611445837947780883950068419132203808511354658098418390958465842874017130718510658156370041766450799213431540499408502350699619042508397883949809635302912615589892654240071930538099015398002295839198729518716990591904097662828504399151089049679757475982158178538393380247379198337459579254330745615980530095984364763397641889669236924393888555660060681101081892417483262015654755841139660051099593493315079461866363918685054768488089042705818932493635602049712667463679246927363471860782428672530045930000573117577495614122176191330165852898149949595308634194057587301267966225901453950429083293865288781671092935236151329282557624137764928895635622800915897643043202070052772446172093554211896525123783454475033177037293864471939152290560607428461962352948491076596593623104116032286330117389327319885237368793445165349435562064051480716578927283016705075375292163846785041602873841005855927708462118211780524519572862248660446358348090029778146980968246261320431931700349396340278476603460376979114819170554279799168405031733704643524164785443939328952866878692221327984016158835848217955835931969224384704172672791363413162425590076879439972301400146652036643087643423074605801482704982483437001166722050641827094980939955360498649158439946071643460792515481144319147079626554919002432715003520118940783500456623465352160071084652304643265313732694328728617446744358506699399362807280890688210185029246444354401770136407419372245216245599275527776891135488387065387761201722744997139532359173335498226773069327313846508833438183697777365758953902743804694666696825863190287043940462907813051964451517647932757687940825256464092831902439035353043375988062868533992741053966425914747190313503740897165493852750752369761837189618730242999593639113631132764394528343259313096747642783116370941929647910925519815506869355015504663059962494741789342608004172670465780387637169163627935437876405445126633495995635283555649865507974705682458573134507007015227783905162038576785961035106541010092627288973804694087669956629855302838105055619711070779329904350805143889591835249065156368242395028654095110673617528757191457390616185975990156389477879589241699168704947573523402189584764191612702239966426036385304263680603043344279123335652304089069762329696938064721194333134563813273555967004695182553114992095015399150992561825095409861499667958127489881879846140719210734646109980366023967134099266069690622084643583225874883614787058813732402577851014983431597113485138349969102335638785519607130916358486904018851310475777420646468317365100649137032761980561046083830131121443807383955552113996523897638371422732636546066471140579411330320785725380382967619927094527176820545757052404802785371926197904393226317767653124203728225013467889422508972303943962398787746359349702496702239450641764657193392513700473431011629399370967440913192347889747471558448662795228813453225943825134999654266860743202274016186666879698317490974593067594681091843023901862745557215003661582117818621555961202819650105953566302842412669234557628082389472097731171643424736104015103676340784453100234608910186739693497075213659840062175119650696498689004698963280553516294291633300943389998617684608928181764639788149955503910096496967664378928677456105710860864077924010888433096730979117765723283219584360452452140205905297868440756625941792475112015904995690271803317674867411690708848075412578537210158278507870053744808620441971613067009064720161347538360912544847799186542337183304387447658048720240659236650862400289250233173159509928343192478558667264406442908772529855087553943383628444438093035271388115079056599621072523739150270901458455948934615651228037633979109193667360574491242404065382236043832069159571972611042141168919029416661332795711383155505805255690035517950013545855065048191305038980371779969745493948401573995168395570975043969878767368675439069986242376418843355063657735735691536029768332626355788844242672244389596184037397967560441775815681426473598364441692596234249947339751725894452211643239448055486138822603158763912142760960626961181013418739425773038918495346190465069033769139786631897981689963774024171468269196845136089854937531356176577748631941127267641680087208237752399392785752345968246017589169557892024511482692842371592493726737172132787367113148994655159435923151845501138465710365176499903557840822289316482144038082743085176334699917527484615040112911731992600408457813590697706565193402400579588202516686721212100864083182104237289158827683476445105387670826382209959448160209832824957523685587079298920020249459859843678752650926310247456654779077668179640474249576693271755624713219406298007230908889472523921411080170288750071959796082509129177178284071883328466827476487851458721747961356549057512956061733887756976330422571934648905351185809188368794164399483934597401775968121907720622653446950707980382369686649284193431212736604647707384345613949643877052548492504060700268525734535949974381571733085008448293741584315324291298335086761522218938564720797181563657463370800565682168454990234165931927854003101223980777822775553774329912615554600207727837516099579925760179508546380917885853490735513786630190419134325558047182449345200888220774150279476519627820990108383283781410318889886694037305923140322525273436804902224479047016391286973230248103538294699533819865398357281075084059115661454936944569688175393725914020992346461886167513452971018562186953486566655540749033083924702552773317369747907395621440904502345400022785242354158689214494449522811420837309370331384959418691461824102448738748794892786618085239283443121510323016254114827682040042518276308822643745864082886608308378231142784102679853709773795599088642505986940830585645232853745665430554300572858288407647804295728932724083964892626212448419091206049644891515394972761882604392790562627604588229142091966929866386302839194969061624699973480981694625151286137305619976180872969437103243977674319641383447112767906791328774791999531032023764047483225265160798487865039388387175005917002826386013306575145689116065272901546616252186679627163523036695233919896684522942600707155302976226692683314211740212006216469911988464869796043179405843137632226516490400855862989573582739134036388102890709853594350759461271055399847277006965372013014818818674763931308776615520010491910920577379319873063263463734583905946533065778161724649086508472869229272338796933518731576546433953767163851011900435688726832751467225321172066984188521899553017073658190079100129669455722248502990992516820122243775230460079627952595527172566671156262940816132388529006118169035375406526040226468252171785760323532924769791895242689666355731640232764385525092287030064783057919314235048502182799610868150682094782023688768224391219229981315647748053643360364577646332948560366798823350022350736654387944791725335887550190761188896688899788534981502178063381025583434649495897495900373332255594105225722157047036408780028891849992936729765379514798177073700507799398328862109956602733224576189956720786417560306209646226305095109352563687830633733348307072057979662954675097752963204681183520258050847348380664195405066007557253697037056205982323688781819858667453229592504612653798713255804697295823458862303079386784579543078692499009291715320142957957983597789610429453880013952332062106629195831082439569609648940850212348028969913253844086475570794803578618614942025406226849145176200623435149660184852651599114713435630732744340803769614420283109233803808124802812606805988311842840869553922623768557766149382559502120154085941175615856842693239399254454050405457088947579169830516899335797038634108673411688086209102887350665137900548654883056105461201057944545643852957084330703913990977751846725661073030201197072896517229724382298633091713906937229107195612628096745706126681499771721095601838523085629294903459911725906448174536430378683867723287695648643825923120312086761784005520935630546875005902382049326484638502059508022909540167927243078659542604295488875637800733789098356447065017471841845858359846186096991156896433616688207758406394400307254348065914281927312573230594155604066376863826185647365225529747226231444324082733477586781016712442313071012818371581093419099060560806916344878371686443353661702190111206838180281550579965439012395293592435603792242626349641740742663868062452551222999123485120847802307452706982497425736935336953770472762581735365636040558184323825285271667211362516307689882002174222291432664084762007234944200087284705959615989217588240603504815212158744365637908764045524348757134553024540979229564842123684199147454118800158790417736878198654878907301370468410167523504821850526934509147648448265776353979581365849622377010321582735379053929444082977830134569452288557269555831384968926025640365917530137280983048528158077564474420687515634502370501871357087654065763510742353174410636875916226973528821374221785827629688734675985883940092877614525206782880667276836911032087779633817495342699724283173222126240778822207756742972981472949680616414631951690928541983259057480935355726949385222779489553144453346676848163200124321195191192356617586774878922873495164021445869783730310735337478236222110420740728507633665222225998970013371100195759401542071859920705302190696867281503526958511510527108581837367882143816139416002329741819329633828540310586569255608680882453990398758765258989029148686363227274816379143221602313380780869655533154362755011875590615824586251761542653980428221000453816162569640345230927129577891743419376741571171674093707637585167909277614176799238941939487082919090241837199393246458696676982235884324441519330915229899969169626509165814803200125957637637546849528954999780830624952506725306702783936534031921331276112810293698813883534638587185196391096654160961681650415659803013705549958075104666270189811406752379102058513715755018110515741065399476953535969017872950376292477381234483125242221302924258693647233192865564952660874329937535661561944295900829874589543573232346903991403392053890688382494693949514119270231361817685005720713734649070070083068799188307822823017808759219087770691560902478941517366269873011744692709767131460756127570661693054066693111590629330349304228175637999262478187561564421856503237867038491551850493030392108926180498305911974885797009893883837644476021959894773006877302728545832085742181706422317213237318399851227826959929225616975747909140758916013368500578879113775594546688528616819931089541875686866003153393367175202759996754835699314422989202193528813544802866674573598677957294516701267714052416014784721390564151149798053421583873517759677797851254581476722765664245506754988746038378507891275385555851061193500316679556937800431260125249076985747894043585927129022459017240428463029591147673388359480597275132013846837424944538103842125937550135631582228054051420525777536969471689899395507869520218844590180104193603382803010333237998373692788973518177517102888744113251954449642592789733445316820773838321064304783473086257895592687256476790858392129855863389750957967162874391547354154239773054248830621800323745559925897067787339997867677542587353409364494449212854817611606652161538658846245880608517800186767388853018589524216550731718468120071778591411142029523135870507249737946005114952994571305234451948207159785362964517746097238710422674660932995425845045402296637081440900384465058154925244524598036890367740865287794959970829324957905046496153645539720698744720882059594202994663587809549889570271938197169933710312900023784098050350927273237976105397191052650633867888953584266518583963751181928296476856249540667260836697111001144106720621912498762578937065384548909391527154607701630512622396461615920887766257851219991148954602397188879769083799141599617292428402859112756985437936776579724139436871156979929620089022277844715147599519260396867573349976038725530049628084174231459005184433914619478299984256478872015649763750009096556597305662256506418248518567362472927535036352004766904882071860758724140075293826042350764547110025946239278765797380482954420081184742130752135166125355384880196097030028423843907974827027078984038456188031380248173852265082281586349029444074908577789481293207055176078018870156650134080626261970970073682156030738096586875504224430388837874393588187991358130150279653186569350335772432044686448821011066940572945956168198945340604826792968415009773167435483857038462999766958051310863016517666229841261799399363426721732938945916354330424810664122814452759087345103560130968331660919782841424567347979970535969768752637909202876246372492497668561823780979522216188008577842022942905604862216256406593759709814105674973005801126295157431484859708364735898298643759900082482390677398352926344352489380798916980928303285891386721254022745393274719900465694441022875238141773987545569736334307085915401726889043667043401352432752100959494130158794212834152021785397070557353785737641286018069080792267555767692506844817541288957615614096714654857726535118886218869938558913247078060697101521647472838378457644124402144201617804541950381836202346023775905990240725239936788988444945460768637400596565576441606335046194208828719356258757125549882131536291831120574407620407766144428535141307488093748479758750376099160115220523372909391978873622927822644195300370939783632100979597453530084370538397137266407257664801651909042340767806774713687509666950429834624031700671038622139582809091790218495788976478386790570688308253230699162872360725776936504201156877607558493801452319658877407802282261126270907569187241676564595769847620260056594790652077832913770869652976250008983011024056392537338041934986404270237113837432677187639845197993847105179203597564878477062160078114147471727750599837697161451381837015065291541854764616755028172515539057478490937325962980205713048998929263630267003947958575442631884483503380136123663421188506967889885809996766828811984518773557696315348675658024588347509843036357014724214010006887504757220113093563406092935178623968805044848420856592178623294534959814349239121135351114342633504647776202090377720191062731052228100329391016941958165632484676594832275462144172939013937403859737354804781055978102564224104117467963207414944903505177141038017397815719211037684390543705775450640456299685672947543270960959689585962477875030258097831181820445054508934040767953547084249248202518476861783872295365757209418142198334548288226027336076782413143275766206855381610032635555390687180993377350053495892699639892145784078257093715863568969563333626474596531684906545314702200255043164956603655436552446086471937299536360028382912397329151084995979370467848061665580421222011796130572974017402057464432321346410062318207257284116765797404612449610224516112313088686389017893907529847537277410510060481555407449541627542370929121789271227532138289928775434694042482952332117268707458750643832786518468830673172485127226343610274935984431619695580652952368701941196832051876609015354075620663948392265409390574607943800422119175964464775280734412088209883373562034678974827141399765975091200527861441622497776778108622550000234579018834738638394706166859499534733576984613750907350726316127214208280978828340855436746056687561542083735199237803398195828262611845920570646957640026281799372682517632535001465172291177541974398358067403961118741675238223959920619553434638207487527261036704320352384924039612867856624400560718914416913863873773856565874243306942961211600182311173704452303662446620595284931315266908673903137592127157871564142715000873831955093061893930093689444983295500585625621917547207684371535005487370810642454584707284838494305276117578834608262920939598084644181014696230251519588631572033942636050405989176937734894372823101034826586218796978511056385353221248755035905455844385460668829996622948817015645753204905789695007211891893167145334871232631472770830310746617170197193055801901021711414915772283644555764557073281240112279057405316807242584487394729017728216719885327693809105223825723663019032434007645472258276906080083387397030771763852635457628509280457764169475666477823284103612032601001576427536148966447030803487598167096922234066226780414165644043073778680613709511030229726816189987751996622255033708683750068216707025658620082671825668847709972684751965582491606440806713015198284400071127689276078500777865213225720962937118077719782809408909822541654589714690299546307656638358897272937059152289363785553903072333297333399847261492225460840484432256512028412625682652544461622028477308438712003814053446554754307151507439716680228305704618123737570022460280339116608690438041780451215158056383957560174036097600413671826323094909128767135279771610822924280880465318916870391715585285007376110323720553447131081336434540024735722892547175051463484461941310201432469678112707407494968151237102786413339165659421298168021390513880889150341518884618527197635344044003678736254288442103034041806072180459857025296831110037359749290042539846648641294244832594928305134556095423545385129047045521763000306149951805568593553037887618094388894268063128562943107826779793150436519158460610056586768208760870659472244085040774698490628756530559566688494826528684826900548600357126892375120256211852027850647726794560778089606832601284251845565881258916236092713419664090374468217248769417416184638399155674349606549274612593049935659566753519717197191573083307964546659357508723833107166340129924428420617936349121041973151596624360428240319093889530951707317195942223038616129789751840463899535531592926786875102852047823967098802316423775881546413097644951944709232061322564244537767365712228042338578131516419071625506102115303201261813083736543919212947404279585825358735314624132359640455643548278715672271408002128973346328323766734269038778015812644137452154914932786278952338752548442980006470323795240867269017466491372138094298893197277593081952871705253371562298214160678829994137689281359572834264103090320377923139373669975665223145393241678215107870355748216626198278373921980864569212537630447128899857136939334842317511156977050194880380570420397950318867627482332642890946640032818632824609987905801584927764730730669010638333315919509096153114590799807740964035291518151302039497590116318403181355939971879460505282080577106456779214704744608502989946367626781881137244653354632843933273697331750031429946286725131686298309950027570599077322732527171619828308361411158389645236582031038087851027314234167091258348827114765621652800101238218233315183880358783568284569170819057053782290225598495092211575263496567347710419545863881526306958031233391716075696948650985400401220234455496858507171917012079128697420150645175189820880584848209685701349762242505670612938579378860548271465515534100863377918615101596115388396845073862973481573701805986356806342445570174997487985304217310589325010319273308449580833375569450733094299856729790201706512222695675764176195507360474644660598198325920041018265231303581766301058778284667695268588040627086835529230132258542105816778150104742283215918146089910970445959001636679136046994445468057046087688548806896294431380315727460815042002138447414489322234982327485887609572613661677444920053795090333302744092852064973627551939141407893784921583650638374682702696704728516114721212721933140091520158648756934055183047897946671252425095913934113837453893575187152488163276101056419027351702455238502554613980368610389792916500473495784088335970370784047846971495976856513819515711875791073405760014156438821596512846529528517294163052551322206376681029294278466889743008296911458644494062261800674912102336257788999107227324546044789852756998276605071529476405267124262328799660610910619475464795660943971434731987082454903445135972343905655452346245494287210753923344942554850067960687919599368947563836421953098162438624957806433364128558194779675570755080594843566090110447822977076866151155007839741828261728313171555968298821460634092520022334238911934694283577341441383617087176076717022413222666712705920743865183876847059751290577456196880254546279080687225103711997573490523175626617117455565674560789176879996638076545107762976838603875175112215402749883373186731164505574153142699381986755961495370520645922517541200500999680609783275122108685754156347649190058572320853172507773151805747817796396004984789147537362310679756809180200775999530039298936689594241839521037325024747777601917005058972588650713903055918458632851519962726232446754072743895038941419028382042446039118701265848278408509612804507016128572122641337767274487559236247045353217608470475499718588367125779398245478006790436531291569973819991095695755726633650396145735429126808532798750733149343760777705892849634924806207002466304951467571925626490583270389972127282024584418297950273359557853467070882309471051212257536737525455740194930015901327683889230642954116223110430190299576387815987393700201513187580335394379801520441922366228734980777314140231472538018989828452959089899422794597480731305812070421974126750618342072086333855233041400185153232573939206378486736698274318184769260463444196142604990345172413805584628349218594458867948102056344245712036939099707083443510206943554236707430742129808282103669715858346182546303449401148240233854655843482357582435579357472331216316652076627350106597090089021400553281940443209408692750114372725937319067139322665255254191134895621714671497996843054908594375582165342668850364431283661864339921392501204845188529608653743696572815198852433360678966226483855245431185634621670930861432138734506932505992139082791135129764347933848548155661728971284469297823953719604425821022404912212412349752912083447228264720702718107683065682198712820765880280559714624890989606636898706625835692416106397087395516946267800830204555146252859471993579014726078177842142189188001892438554444232050233847496578800446958132809885809479438840933161916482831059525720410717320691562546520610215937137452247862026662436587323313801753112954853833225076589409790230823671041335178204264127678964956447311033384807072876705818963463629713957534001431758447149929450526336153615999539759679398569829679843104101549592118687558462872616600384031924810281269703063287573133172118005001403463890895786192846223541914242909268399976099544593949008088780457425533863264307738922483078867850702722934882795887807601654907770348460068069014831516315106694020777465513354213667008530017012952577361503242254295071357533296904356140626740602854397599739588030706961562571745594000645172430043976880364328003905243440638042298661886538139312424599880743416245581817832028403171278571559474341705881868255614159490302280942835212766672465460905414502456251512140000200329833365747619020020815513669041127763797324940066810452528849178840822231277805450932204114999011412752065871281482306982929014796418824640141631443051527149935588718253967481662370419774914725103567164102310767459527111657265526601353526024497833875715529157071053812355865268832694080898155714942567745040194762266354438596648434945075983659913233390010074845355895343860352852433355219467324999100064881858065920205434672502061094274634829927623620857453949247258057152898985289922624891646753311833078453712422865379811909647747016964922804218045218795392479876851850821710355159451543473859499852702862950388861560751724087954436507197511382750530559822527493138049998627410097467302477521846574719483351773677857243830074059161666139651976303069046076213767173491757665937250793060525930946827954971756493645154478406977419945460099003103775027830114945100644520350209205564905373205918770421454526527070884901131239474280143195421206232894287281608861927093073322219764366233463032325714055434276065156766222754466685253715135393207144996920515848894107223371962774907353086255745045780477079754625994145517467127070131733475233778146624024747463939953974614314798184018256668379966545669872754034372400503746078320340685957388177732849357428717321231521221869169810588115553058499015220635739672325247580527867052380233594903489725781488342201649709872260107050271616048424349989574406937452226603055885193401975729642986288509385657407254815313623152435111975875318032393637824000440872561883445005733659255740197973983052921051086199983851017709649110185191237585491611216491194936217510538945576038818270555341834545923255276227115669028008885825942059141901588006687430402351521930651793335552317164591769576060845828762951076165432920147837350744500138888874516484525234509817495321991336969075422305387314594727519230421760014738330793689110046918302540761452060532390843006574515791157989064588443976730618995687998503276264420103549395511189737979742351490002161732962141117947826578098352482580686624389693961686509771891288270618082909790815043021611502615217622994564319927428162473807588499661743189052248315747004023456609257455965655542528208784110809542049073068871509210571599717193620522548290503974520416375748399299670896349583008659967653950361181849904298422519939389326351219502588211669777535051328577206593411102655290009685083232634547345043168793279251940916484116060265936593370016667860202852152729614134315567862018056941236164667020549423959013414672306021473694816195773940903953046403294539988709207119950229425677389229008359717028955242356560393091895434533749728402263264473644495800336653159117028165654950026815853380122833810227298702406384875505724175007784319235517820295938891268887754799119021894771978673443609068802040933840198075726700970334717723528713879990905492421825711568988728544995679389750388422824957784375160665921156528344476759800720180368072614927191009330841906285791050220000543146440391734498580219380252687456393278178422230671093995270389524382347038936329749684212493477807008471881741757738966106257399463264649161661690191234953215585562776884721499986726074245478741095203391239117174260681121435605707149491076200561627031816825520179351736960590286034661362010109659781324757312475394141076003173013495201295384223410361727062896764272733953015817034802100401087762091308819632123034650090795035728131048344625061881779226484558703554118774750159690375392291180430212970400605290529892455688562089877459987519185512909318305935111270150844285647880086794314358748641384302009697552530831927580622310776703714096283786054063569195223215595572437973320542169972579282617270433847427324875792278687407139732869279179762503971897960475817719884267437783223208427850236914238351330632592369939507334570927231334196047832407446721661269607652530922111511656568543590131348059438007062190125603585661016069811271133287279559939157486766057738924141365869214509272673794907076091015288376566399947176258131050002603924338426445442532908639053433358889352848415514226875520798391000767897506789700644330572278559980039165189919622542869674232494782347321249619517500911207620546831146950214838759791563102767979025197680340687818317360970580930973842262333545466981166240169322918807437191885885193259017900586449678258009731219102572711976780328010326188754978127386629028584205370428457157052207106029022465883631003983279339267152133361537950841484845807836697044685771147727766687409905704952043744195881336628522074985334067292218981493756267560139078017268732537759528451923072193745599138774337320296059322901565627554346564186188799929176376197064577979747175740872396887484303823964890354239978630114329259811669574820501417019388816824387219145872004192422659648802740406303583673216341777994063410326997995948243442987977356715784198342965312344806992243665442756505275257424827015322768518758935079193513617486236641108073562956816707847967518930579443479602622217627215431354231022435780088615413745351335865647420327584901741615235774459545244335647656732818566953816895654549306526211607211421811563408872883180198233873342835352364767901395668899287509286593219843002362477715419201671050347963084515939292888009822351932654122865397943996836666504105027537946001411467540832335897699563302335261428872617895789429041102956448272947835515548584126714405788861187080134372523725841303492878050338515799592153100005820500529448116280128460927273948206031734959419212826675446372374745155860759436629748153769008517744477056008082178421372384998492560064061550941124681902211252371238497128583549929057930428469967052459494599588109745876096087445462588529510941762424483753110993590335237306731076713158602543046776791905638151829977309330585028433039247283652484142988867343880365440406237064445864283993965965168683391707467483095982744529610091629757636067174141169147959003554875932449443457183269312439066152485020566805484935270606526170244451703523906521369334173238662166226177212775155587639215561098241240639161697605861402605452924163250280925720962931481303545083105773648958071800500766390390329888748221272290523121636528637045939706932831212197416270020158854423599336418071043707411656076887496444513532893184105095050241778635112671108057284913077640028848263043929428931285767761685744275184327096993266624779876942328708312165271495610724638868038640567113628465999396159256595691196184270565507429038721419840404401885546501960460608449356128533773765516128599496427435869543109515152867900469507674837852942650124694224040497695589005563385203930173788129907056028325361449917727582761905773238656829327966707782915429705867805601041730222968800384259678950243550192829745864557181385921632054647099503921559441443102715891214920577507660818109202339342548211252493573021088099646580110235001868071679791986146115146759427686048002147788557379142523516416644401603736616379146616534094680601502928618924219974993676638167359201206139690586574082147843915882862933560748168117718544129304222369138301580138428438009563200826962975743109191682759408211080596196028043358487430946740749788000572781259066320539266682200895510484346541657537750723681846363380897348066160552569415000141685115530590358342106431822325623076567514097937392852083461190219292570117301983591593778569623073987177793125186224790940695404912448602331159598297533515869812751546324589787653438046508842910942587238753035321403133002541045186611495998332889161734669194487790987433937194686728230042297143056108199400652544069834093406367713759186578353093264398500958270097730336178836988916165479475319157188297521738231587489429491408097200045689508618958079715723565727087495555717035379328089484421281345854182992354622052763927750732409231951775334350080624926192107007546113801405241761310039936767541835851609128269955990898006128653681187289998157828316169199843731801732669420050498723246981072232413660757671584839913149037485119786513443511544887023244827969474828749640369144155698974096963301051349200332886464438135497318093323391058658866959601548110519758456674173649427931671001461399524871238144853501659503054675657092150082429831170670673797781983800411847864444356538565069768587724711782761339134194764147989656277476336602151581928130416042913941440216149197494643076188847243499748381119707270095836724517870049833524230723652197145860738066377204746123775463113840066732007703016459550168908545359204742362822457282182331588759025565129667302877076976992099084432470822232978161922737277687074476444814316976310940513461479839711962405926780603218571803892646562347512634977534472691436188247942498790497075121780606570994034040861812863795680554009298903236281277840267398857550839336708633022554614357006159265717546635914429686249692341260931701125566388122273953993075190986946503437672214146589048175635070664973200965677282646786192028276457987618529691172192258622597814515357494173882305419660593425020883241909671101232539930250244809591467548032072839855018563533678845617930423333592040737448015691080868211700344274956489119922679100577984632314934868038320457990484666265401131867801329738578392391722725682138394252454945669408000213678756328689519468796375519725567405117349928625806842639493896081832944592854253868256548429797987389452601303553210975545903500688018156990639395729249683474976485698673158399630681362472848558569046218037963763207664939172597867799966829671910490339471263719389498198079031319840294574435986128571266628141032922700127202306734154040865925569174249269965840343099900914874978993550733929776734698769629712539349377786711451928281395629441295757279748108628019840999597245478035908031367313763136414231309310709097994157953616096831477688683114628107073194358472452867632741407651374080997342140048586817972362661369459719294344310527067591024631053772999656382392919317695563364544832169675685301895809951475270145855944674635070375027226746122436492623052849351664107737794729950452699260593522181731093800199461413141018627391448420919114405060774073552450031957442837701012929478866534264078633285931037656206425533506306504966644144596511248310680119359841654259382777667172137060735927672018258349319941367720671567374692761466313180386190816228832910121481803052831014134230410385082002320242041173376831091266966715064254529589159470403532614175215828968223733990570149299927583364861179085200312736047602462966930879226154387028934826994318975347075290962268305191371745369305559614850553509989203511309954902958312050342975759723787038345160963355896684677080367746883273946335453512151559516151768770851667674029031848907293710683526604478851808006359469119767947546567629948007628216346721493651239216609200545753506684720545494995671249478020878294803691684611481497663883224035369332296932243495254058863810708651559205925280622823290625389414474621450209281599922372267527529955900992640931116934028492404885587705270741853365537771685048406158666068449040106705630782548152314785318347666086634460168976789093156267594531425642090584981535627292102357791335542432553879974987230709885368679930315255487976856556867019094379794208190981057785932509048396874204987164049787534303746623024186746485640114719613591935879928695664158910216002019083862240016468460395930358082296057309603029992661770076512749436643692699991288410451601185007959072127807972893114167255918687475954673728783457877983484755337766754677396719869001165187381988368801853557312880328343092051613962157226414490201270104976163692058745730020528409080511750686420181692633277895668737491011743205107240117742372653601154289437833948122392239633440810951586158416869254725338823150744959875586589256117172107273593791837109646277383699122935149939967340355756621383383746763911620189251802705349379247219151350880511277905424825987609488394449459801354099190856895770600603876265546121816524035798784608131660339417883699764750696196778221799636628677947365049507145022133483433400283562573190919697135432119403658051684539197242989702445673082732913023468253101069590459826427571082007001509198503195935490143449302617895513584285588060574184130384017933072478181292004287998759232294986670044707631858313419650792085563391731142363538878919992621178058984480729903582380089180055436285938933740439650077490837678594171221809743239333360158635837487201203055941248162701410336878758287293335517731538990848860190697481610820909764177625175425486495263355376124288736818828629116403894165665234050083605898045157099835896349645844258261033673207158460545818108665620768617726531539103048760449693026985904661907388617072579761270836963546135548213566917239662120002914073829127150872069488253416105510958352742378746314822147746500407221968580777673709431957219604237366315605762886506155791706256143911488965581825049595489246428759458198320920874267947103675808871402442763575065425527108991685558426318729203377604650106352926483878651832726191425337758827398596136543256014067490889691935424148765068005731237304764120541850638356070552660870336943890381035326831924808840467094009713625968827887143483182318266460570433763711988354177391613734788960197168117339920672486544218419681493223377236915675525080802342867528306198614005493554160742230157027068895329079989500877662134838409528639835904039066873097592095458750919045249409261860105462502948836613025759393991747940723635706321397562251090277116413788158630554816330622681332775636875434677574397509438690139701453698271510840834860082340511645812516306600585554761534702980538387412390341283820731496842411895585172945357205188094953750063311133557528384828159210478349681161957999580315093464185610358230884807557657287702246041414995225047578041669487805334040611001959704612142191849716581645652106700852632780423870423931705146769004169415536696568972408288238773466419838700409439538889239420990287550674458079562647395379990874684739026580538465262134263504160044352152700670339172654792709191795663357098533542493057257544432841110447110652139127815852518717879764925448833426175488423307472691304030169092528748463643829292281622030187845290411028060301483332637664007538351238377046236877358516015560638811192209991830146043863447845535129725863695494282489181908592633101731631413187284090957878942524237662584149571377638734299815654342780689940640474187013600673618395357162271725320768433391465170083379662780694350814571822077695327026057735824908596805192168613644424216876126846187149053503368632012033398179270878220462196467961937406263305264557316161095965019191146950569458877337628927848133030865779279008485255673737852951700153205468193478596213749982436608041535718151716336529785674160653559196622246804374838681997789854152505744578618606167112791798723600570840264690321675202069620475263391805484867723982022539572319717981075169834549266393958876923389787559448762488649277191126661335752159424241961048010691436189597951806292783089365232521144031706317761938973588670852905809657966597962169171611919367778554599683582489077097475372756967610699211700800689978457841714204794118231568195085527006794919221268028827126090183177489153133455766187404373893503539854078779309916609300766105334647642623886717375764907625254588369206713898054627439660588825345525343557383592351551512854418960689788968720457980206181143877436280859269685251895785591851138931820773779698815007523951431380213744108659351884671936494858540768283405324446855789567326494147047896524123990254400523734929340639189971101175907356875348730224481813186031397326786603148083852048375267185737584090838938858520191354363159536475852792887984062393646964428763588082010317576091315368261623234789808413982533520382144751030146054951100847904270616363814696525091418643943587189963829943340342267264471056859290642346429640015597374922592531325018008560475530508486514065963567780448221552990460754003088721921122058429894798993156175074503013273428166755866449357945874766752689306121394436337939201318673070019727933284832234538320873159620132138381340118781451064836322009287374317144590850180299628155380109622674679131595216727874963024763525307747666163913583531369993584167541392655579822407469380242003485253961792542633346517213928001433797113976425453619124290034464611562460020824722227219743410276008512697495213455134409126470458627815741582900454480787918198996104169052299853506665955365645214839165844652150638975794203094796280098941197385077781353321276962032242879623638637486503904666488719413890224844968202284780721729496279592127967807079011496866562311779028919857042961681074770131879861385697469360968893253944821452648579805925616348422911219264406820434323853069190264806021738671949029968131601446885934895447164407494002633487695660994116422767756725188809138398437878767471416948991753473647096360304401837734782563728711296397709812442458194370083619621638835685770939806346923506302694274682555239949323963534669333025338108329433439399706358305310738617668538803544560601034121908556343899443020132263768602556824672529545433791701343267054344379293524394869867624382911221443128765535078507737033471591906720172592107069207688072684477580111339607568921795623840602028274029373885296280186927721574528777564421432696890718382524764683314962514490717752337092460855819529378747530993290379737243290859772308714763965432127393656718816346571714953148420679572171551240423517161266895609550770117760802192547436611910231472539661249272839822986840052267800413513892691108971309852595132960680051093523770632642875151745236433954830774965372965677743643252716321174099592120177784278264204082375727513387332845097722909906085262799365423733742233244520454521484959880254497204841478203981473860431557719896842246535083834269768943277553248559507759083819549978891890529683272870553259488956464911996605226241623064382206938453150036685432136858560853015692720367303067155402216517806047139547546963935208768990469082604630979340450116784738676397607238004673397309083406305263626398067529512132015528478762447174990196068613719953099738570457650835647853904064539134371640914141458883184394202299195061370849156235556765367907102430893928752402321781071637521798210295396397581741595029338569436492168587874140196354245024246786796499348503680830448555165876577277101669593993773393461133590885609768108294047243656888673434044173928740875534091370753964849854565141172294379448926244045793848632590544334930734610537198509465775161104473137636374179848837962964170410474140528212462162890006676143950733655985786026194975799904690846974332000525879540243458676601232531653758405529594556352426961852690006079437151458140099787892214325363284350439277687413644271340078195930641126885145512946661141828313157500966888363364293174283148202351378998530612329553227204549455725048245181901824060244784632178902065220092405641133233256785425435441496143533227236697359120405600668431169953890222920626270541398988837257201173537521027706780977039396561366306442258676655255297883470285723256179125806949650677520508357803680128821901110110737928925864390879366613066821187392353747513347270165307209535089017186468069521981230838838012968777294090749773153263751346896175885952779821818176352212101514266056463467018447976538055160456433174036812444866630380438541144899622269125801085444783870769432914868742366292015245410888847621036831719368973776810231647037259453177757815781433348249791196905868721837676691044952104613337225512807752835425284635972077939609664226692655043727702234070123455339243679702316883421900973327417664604041906015302362888134942910691625983586599938101132879371117826786285637603916095217996331347296233067467313384490954037390304995133126706981458773693359108421287300029680500902586540038385256094070680446809353247394679824475095333783418590560345485480858743629428734094442153983622221537968334201382811072990215663479902363455235982746577924094019924427680032516490868215785696449464179990469605148992379268773057015875332075134422378287154908179459603962700840786857099338057909860902776135547623007439120644557775384782648948722428992523012693741786741689870371598746865689676674946420130695268304660531352301298151665261113313220245838098225715577028920327681411180579851939436059900967121759016304301127736771166504148184107881648822654514022488681039144893330518457425455045412850411627903311389295126080050985330694967015581995485440823102790332234327671469161825750954738939937928773119536408176078956550972850899048712977943223470878711544282271498743289882753674264160495383772416791855775878288872995252300940596836437872193782691339464908444851208976100845297611284541574094175546295571407901355782640364389028081733191297418680415836570696126392057180021612727043689870395746865332531551043322491931966577490144193127089768693304026984901994803008925056436588251236345863688198758131004064233918995855347365436280999555444809367352329720674706350782261259354638500137485073075304585664569105418234320526694122937492401761488781579337300468873001984812796407616376825182732167395065211377716862511716176104449005967056288558310181579297049165071161574974161103534714822342592010958546298164350013159363135429933068181873093060606513556657828344171807397587660754921678051155054633974230814144986661970249070010536232832342859026042655401368492843793896696904143154154838576684786398434953130013703258660485169654154643382350438586588058713100720179242910592830066547234415143777300737261790096281927481621294013885351190412607132610978819054741758909327751028232313614615944323701824354543864411197217161003994029871216715642512232907544188489540933501853744782448823098746327246815063671456746554782726330269815689631138574596208996490646471801979912380675185404591589550512164734589632557437125598013829789688717163914415366579953975952366616663241195302235638158105818445834558330417782868163912294598811809064991689588494993085355827184739451902094750935390168998642206915240922069165254321303119450303796713807250281737660012133142414979903895212018285890371730068893061359716457660073867330273804408578376868870085891365519960566111545569968384379920167007674272828918531137298225934134349839085705755335350983972446752918072545889132657998846714645978974647145871291167785670137430578192003817772054558927510556928127972327332957143334925736710129114255890268614957211583117865032527479462687015348034544676614913654326172618397774581544323967744444960097288085009148898198262431141167420073944471412200741668768534219967596733373150562403912469640032232578005500610020647930679950339493629292926309804460688662157319555433979681158672471021759673807659086047703486356793441827774377169639395579125659821054875896130389580225743739540275992587689395134944548450307366558024587756408531392604593391912816423488022692477546322264909411464390363986746877487994815072053095221634805863603471188694534328497092221596079573863633479184202404253470413684504273568606075898422677249827510802322480544221830995340365364676820170005659376982987854470185449426004367585583127729747521677889278223122225457620104918092365723446663581177222416464878916635044823672731960388910231089997743735923763309882651123937061431919675103179816932283455121530634879173487720322711064948396539696537817242244838451242684596673243950742085476809208268512896006921275964661938066607393926406332883213426336339377306380626300165969863796108999046227427426726674352767915028919663407133671772785814967542600531839896044901725271844554305361138042702129170765966891951117729884530588191938205033586355948722592462194354479340404355332774363189362096895766146344650571413390647743787391753393884306685511272062557059226727163133157759343018608202050499695181481410067140237141379244299596084746884471791094386818137470525859898052677050716164651318042137896456108658172620929987617049771647336278776269388988478048729693704594370986814318314785550971131155548327152206135027388623780585586259255162654646776160692701092228126520891927088338533519968601467266291862677852883266246224468464841846478724358846800448889902893409633290546461658795446723372756137159630034367986015742971983595680625372181937090543642112282437906839482454090289005710257737880555571197441236647871032395546922222741283568942501985875263960704618632890276112741229893465108691845972768714278851268084062115980453244568682182224509773250741584978073993812449595160754239693083568377559789450120392486379004265585032608999766872473443475558031251040291174679007539018646629909623282310176468779354034656484307083199402817103101770200840901078695094880411473356948575251303738764812291838833713786733355824333932424370973271700524387296575455049585148351758198454666104955896988003769230556080505363460272985360624913752492364228673813035824118670191978372543153648961554995217223829799680102742950396526827211068838476017717946826278402081078641526499297098016124304099684050357199208113669669842545816596020025611595340295648781917925448934356550489065618070188182971204921335979359456795542039166582860631691142741830125593261781439407650308177836831958747310218156907745131457419259305799741289086157576358021156731230140968563012499920317593858261385306466104299261240241208849260274036706318835863147578317551595553782000487299201906504319742165267174210062382244590461758051457867907858450070732118238041661543458453275309845270499739233976243536832971229821014578097385981461921260087964146135268535231395989857102288808215801115703688065010438450460669162163673801896814445010233127080366103259190024279970065225683888102905383495711345356429951698590651138234014448599693007553583132885449322581795977218424426593524362151775415559667400360870314128594861488257344041202044335091134032254876918715483790262653820909280990236191589145527250871578322622785843221631515690412340847360123313515478086883210800230163500570935628652656840867153423974273400010108192200921623137599865681580480273052919034880073537173763504899776689600292039663304918868065095219173950624860822427737874049267882796459760469206711888190606639272343524677637492619600326105496072013971497118999270901078039057288039041643146822600612832727858353416944770004047892995423327807406419126384409204267861723435962128553815698588774672577134510240751618176244003075520462565289287969796967170066848757594742290562276206584192286136565025784496354865434629793945930312700887931062398907732101963127265122229262232468676445328164819699664728248987966667635326432547444809088320911690815631258517051116808506754985482525528782872189272358172790756446413735749072214778710047452231205535820942188530290588429247892866432969358770186572707339822539304912291573236339792970569077636584009149232229585370985632040206271937676075119456030851603086600250767339226895076579023853282194259157289961790225576364628449790367871646838830446923493729237081021805033955225946709655442336385780200534695783857965600439629664555436037493955342443293394661932601151009821930745653622811756116735657899072094022997449677197604978997155475705343359892422237307352542256565681295107061247493355356936771240054635972948587846506421378739433889293218300034998711753128083317761625735915986590139386326984128625060826183104144588092228540697162968654014864150002419847874652869181284621779484220446274105176481924441461832434182238526902627194195845451342750690080666219123442216259629684844264608924615048863445748828585628316498989137143166516006354885146837730327654072826439506505580715171177478997427201685453300543818249621228610089216804024852916281101979392582012254795734466495142484897521876430311726415363188038716083485013261410597848325281670813693850761411966186081832013348820913824781098658724011058996382513441567185423791957050988850021120970418336182699433929641078760363180820732519017918302768470934294395291962742203097265349297973554608534597795108897561292944305382572625114962131409278050432161481716301513158400126712502846305365681882786794820006805282181082293722269806436776229916112890132260159895027706709562411724699689104589022012732662771567949465032801544697684847570872327389959370279029044926179130184894876266735837706836690886416248047006368322513717833071896630850602235577406807237090344988601787794567046262183536823168960517993074468049819280764781194580774561457258318646335229713460095472580566924898810723680311257436723248782903927333819793115134847891876238216519729840375098786659008233432924396828030466875074392243953417465240583163922989171116475397842551371127309043421050108833802615427108533555892113665511534177121276497885559791432722960860309364360422409392384080206478870515023497353397892006092334730234533129512078371184591172401845900745795479416059618264311017322824767596265946092183462225851383301964458760627735149372398819581462578771229737694824802965357523452873595798701252484427118934669439822325319434572198289383198216552714978404084269635283916045393980987072834823013122307175922787834632094592331677690814618331883552658360265888826476974600361120788577000518762787406342696743436533622270641399804947951691142134069129093691001459881491818356959710307049828139892046706423959590977639004907233573019458651790794345932108322200134201511322042124456700307113431860548818195851263260279413219253159117975872940429553908735787254793788266743746615327643063386741683653268497061140983267180961009171159897378294073524580588636338420423944170900529148967769563361159904496065646768231672970393151535952719913619500570064649654376688140478933518803354385330389027800818187454284190784114000060055133669402038113671718980898249457509154424072554908105490088412820951219745286324032208495354179408472539010733718944298932739326072917660541380109555711337657161463327043163857816380659990863907454558670935394109586746074276268942594233052323190737169818821782218993569247863978491274469243422610098650645045906213461244621234818328744673835387778755405314296616441872263969567414402149523429203325985682475516309626310779248598918908212282724064078351665865879624172914058896056064019263713392373347235717509735262493719137958623302069714495201795123444994497012639625192500774790610857741551961839226561459753878400245127946657429820066163547722461533518055423173776417613983236169045956703649250587006414882779906350585734973034268954971722060842706769859441669712815790429662566001367091981115010516865712904023621467458229167995545437953528763042213964945321815528971455075367411916288603299744623516962382031725261447313586059568692796667428109825256542721792583417389761431030501776496651070775757706945379260019616902430398539196883615521117951260172725730743735147854523261648247974682087970013836562921124235375048854178786160205259259092475127329368868276867811813823349123946527556319100632706283977283040016524104221341510122286387638604036361639061407772793801729712412460555385148361968418514995268781196404385538929724189952724496676926316593810146224112176385018655037257040429876256562399542815391158549304515470788756700509288444940259843096638962186601318300084765859270217664901231147980519796320332027911389888099097837978823081464314543018492914797082286582281594982070611343655217627585657572067251240997018443081640684137844555667090991724360300141085524897816036650207579402673770617567048019437803937650894719452438902777009698634401703213049645061932084123448318469718425024631234946192267445511352690694734282547358114162214572364467968094348882966346286185625237847472093375553811554279976933221406597439104730173986926580656845047832966915609049442158808708323635530825811206171435686842868121717883460326001327247379547109175991285223466048780105908031221579878576587443254309627701769716954693545932896172943769420010498132658028663563591291226956627879077900770614848818099207942587027620602049201824431772697352671360993766084249768807124307491979239039882116657930590801843510333300128038438608544644901846605116188894171865849205321671473541350403399139315134360323086730866984470270667963328106850607299522071652888996773706370875486539209128706959912521860474813826677900547075578702268641567588243351111928223728911801432951054111945394647668853012353175547564647518560255678462182872797524331859029115316991072580033074749472153557844810546086983038441744388815479084699731327392327798519425050221184797088519871715956201178251721076624819317937823213462950789703947256258555213110119009811697058697660487736424063167852983611832680550724212522002341076416142136248656976828008266573063411592355288823596841447187014164582026579787105192495604637699861007601685018899664577951816107171761017084620287995527713956443152010991109673517424827369129685563517775300504372891947857931341801876695899064621625445978578636629553054983259067943507863280263033853126986391254864068213895750810455504943231052531654805565706852435043331892244056166203515716322330199140622035189649225218148462750793830359164723946311844254097664136581375667961850197485235740386499358908721104071237620673554567516365904286105178894931747649176584759723067854866086770473286906768852802910019114377623189545553551124216093377262316739815131809583336027354312932829145336714428744481766850920351906152390643308058336408271154305719674741088497371962478017933276215278761423768950282491304142797843197600345615196155005028728362977533708759261680265118674160775906522392009704112254133650043126042101122433772659791209666460401791117725553415275469997301007918152975331352470345604052559349924115444384317488485438915090343533741718476514621878020747863106624435097607553211697298641032258774332565701239687720022949287207433955232485565205054996646336807435658971122948044034863386284065155236296535858402243559059883979596492483806136279023279461033173882246209813760922898582796682937698087625949559101010605417022370255260133496961033984039521015314502243120549462065767624777092483220443360438351016049137256412906937333417274980932797520028262358109214431617267521214379745225354672471997997458839266153232509246257926120790405171005700892332899390281919076664670864887614759901738772283406181230480469965078772506836458454910514654729771641955520516868909193279890786468675909344619370826530474412959793975189287549379496100597440376186264445239029102019673865870941468144425350170786966779455632762137582120733956331592065500221921637459213017093235034843533299377870364289054837768491717029907249483877117526336913880296703951685535503034243454651514275243164511299444038707904640979512440261904635241312388390887092107010556600771203746922098086606728667786874525666665313173419230189071473662783912241015272633717753189264455816316317947547177741643323715087249268251636232864963126098852875141353912499152452768052771805731486329164560829179115372456801107299094070100998590908236736821055591332446084296411262880225908408659813378299425646098868014284574733085186042456288546753572790095489826287354938605925511545044176777309968843943939241961108692642885566285740936694686397690948527199659008163888109568585626959519222261272889142638602236641054628369861947589848143185903934127647821199023361803511961575537988407060911209925932501675373854491442442760436002290173106599055078667490140902160194786335276649982375752653429149506971713004290281689046864063227410032786687267595996347793381384102708947456709899305573155857273998837228954385074955278887215807448360994096255524934732630967876050078096358754021143059517481454522500890377826806539813700152105283013549940619323774592749023619037492990569153481104441173704781875852452132427776664222049546412557845723823260246305006211637938194725603502703205192345630353962813503152688687114895176198690197788025752684820338804710456284298909372554782756689607052698752432757436012052339860367641615519037197138066943975584704308619521536992180375537995541049006007938539440583043044598776869462599466613674657626225604632142285087387763115753293488903502992780520770099238696294605729723783898769491874100635308430041284237618221009738879112116385977699514415205068596818522086231900725109952629391346018025473239894518806323112360294707660050123815670894169025084608104836825393838039660591425438322864840695065225904601277803841400170478966687480322615887410916145753811542242560925414464664651628180981700196840670362087381018226625585177581892365669745199662231145084977936116546080514486766813658677425422782799940399093305407848070211226310209600894356480404610740491116238137992646227730656289606980760592711895191746702990795293420102855758633587317845783425532567052289423516752931868600560686966176347216261704073485476044047162496189560318838744850111718176950347747431953145758764827260446898391035378530450857279371667093054698834078829390422338505507138480971529144500893962905066714931013923236826128447147090827823297372434745705127399597269473094075838920629499432005173709114282126816625167695408789594557196215686301544203677015747167608587646034093060685869512855413688331458658216252247315102470205518635764746881112700913128586598230930975191286737522381084834550829957142215041991492885243066057857671642130283095161655795367861754352593568962322204292950593553487933243911618847209025222573835466163691280194049340596688734214972978460282211025116703796230618466719190569790370939003700558311200585905247982047360761122174390895750710511473848572043155538477644211075619731310583890127870075051126957083650743991566105740777988949875565404796449634777474006567844987718330973331904763114015799563892568706158491720272869889289600058207090821273073217416521223802306935734940784962225560646296734037422253758715110521439806260597170399289903644315800601136729695354235886252367806924950111232485654397763938827688086497432181253954945400197861554325460466239205659415824063123354575288196496449129043519352256226837133823969508052987537411545292228316663311439805042583242811577821889602584679173789155755118311875789792850462264287005326012208190237639763877954245843249558253696542735065830865294649655866380779455612334590724411329943782729173968346181746737283432164669010583979951726514265829592973970587281971224936169165695961248181127681896526988896222182426021486668321512218630555640645193399360912778821301927074361975420268886352075728327817203065835864216266254007321181391103653167487267880640815951226063669967788488278978266369095226975543337793636293526986417407749707416444082103567449774929523593037199942790065125311832077213663777140204506352270031664098484521234274644807882312356325178294159604685760578108320308114361573488478615025768480715900098414689654872736077567310356937313763597383522823487794590145056774486864464480798064797458915234132854414489930247917433219940648619309481630936333069439356346552522560582033320136562297855639112868010864671367797823719943456023907325130990162575024538226542239073200844376728376793992834848487340125469031685911441370810315927010954985727520700407537326954405972398971469937561083571504757861137004556325614888237529809636428654146941813453564359167786556281531200251604718118324586820939373934663511037548038436904068155427469436718099175658994985561157900458051805966465934425914532753400469717919949576636516767998222846077326767621075897656635347715414227394543132795068191043500483299226870984739165884613381465037435028466730814450902973852071490328252865207559077042075141320601215047225026498228958255526258969076619327101185962957130955522347219197608314880467359905395771767849633489633982580033742808506932598371649289732301111402466743050934259792077841923831514356894988705949140745462448682965228605192671215335365707968587324690341666325003802031658175225176094800990105767826911397811432789229998684447128257802642341656029625340200660906784393448240957093655316016410258594509421753185337340515899522980353097028952169805139209210010254744025618540103751179014770472762665438662438623188742367459684457190488142517639589061386130415844505668623342217078255848120275216557358314536318707032169781041976789157817947910865569601867559257556867385201754602226025946591831142029348455722958083799843925360754617258697934431586256511710173258854553300891944015670870597649251147171580532312683944374296597486354110417629595764762053256550827637182319791190486516326220935286639923245353566594078880730426526700296237142007077469665899775285301965222934839745250175494575412209468394105908998944187875633642414443054692723083099104245486502202306539904711544589695294983616563283219227134647514494228026724332908993073760573320449823065483151276838191544231090938792004287676192681087490379274605485243395748123255865696773907449063269270348312743841796499548787331892153993658948928332767749666832928560008885652071496130622555652532163157037058818921954423763977671580980245401309090955183222073493867985851332369173138248144441173323080716195752034736727867464244930880269621729267346172567607134353111895465759899935508409081255127015131704595063025404259813944019360794581292660055771081597238036299809341712138300156607703530718074737446916062788642713539702379110480799124082656665174250696147643604973714862373331155022079643424160610532795686884943227148237903981084277885122294073290465666113586895643838454351239122162189475017010547452183102884105499419362135799608061330923826725180300297521246851589337151097228166964121177730986166762136621681523837731490936526853517402468234849300474559001893857035669045136430379219964803225947657473191177517892662466811421452721637782267082133791399062890990892210634218479533908873891068186284330746533189211670192085814335338890987248409367365815264580140729248378703858286397724333581308829396031429197202257340080128413108440460003084093575106334948220369127277844373160988158599284831165324478911352698499582140175942042428647370923204510391668509394050709951637156728150431045232870212327854239480923883251008985189695094022462441521775572592417772734350641036307018660145743487148886960168857096039399017917934768346429239949924579670859870123421556862469998231986043086375118319965357968245880856721060229089399702395878377171908349468574049273271256588616209987194686949956730259528186280276087309589535625237050948989424426940645847168800354181655174703639156857537888937233847397956610733712149773617485488921428838908211749150085551450420806234810293696486950190686558826016684617733921107534307548664338822742189295287538222187052003333992747474229748734025681722435474916162125698354972526431510074000187350405106706987174417982834846175508301767975019991082911157288727630403349990687574079314556088468404919183767185622580628458313703807540069993144853966834712984559353424041944601707733712853746956738194979717167857335515948297187034772482867268962520155592199658657088004500958281068970461455990033519777740478672673713961518101941977329646792703790646440694450990950823080716762203281742604377956341637438637817553775161969051791017337159613702199116669682673616752059787150583113280328312660370552460317018565661985284850285404447236916484892337808030470685157861398329924980965368553095294996029096647950658754975509605697237073160863776568943041905859799737613872945162908774577050712396015400988614146733660610451890906880104560426791218746448167863580020408779940574157661627384506215623587307657965897050905268888437975218049829305545065611477735884257391268573525532441687146181409259171575514565985539632720335795019087648519390275424422634645550677869885443489587992151267759214961712090359436434164103596358324657877253580712671059389058744125551167513384963342550741691057391483439749726183122453071112221898663380392194006710942574412437415101522764765625384585005699892041069677287887264396325507780348364559193934298725152517835073281879942998776845989236112877339126687618037626228510693308818038611765124804572006622971342063338802063689617479769706774242875031775421569562860280240526843731555660128499543986810910654675117968011539020146832493103423390902460390219385964043996736504447237117921305304556870008499310000064654142432458521746468438933271552677241969416449544612223766067247014533516518778812008141392926111013244048330030585281225268411232122126310050913704794362735589235570134166485500180772077565506247466632265429110424039856062112741408964538656948445524631094727111703436429994183611955302838385230324333248532318121298290536330968910259591960371218836470792161030713030424969118838760306029378995115181897930625746055470040617709553476139278331759566367758301001414951142237070763612079739157657139366429473264298037852849782025019592150011788403250579554003778485251034192202399976769808551683759811656966139834135714745883652700631394764088153030932714637904859095756682988459526779133824537675287090218008470360352534564430124927963495657957471715401208973173792752223662882541583805374845526330072547918813588920203652302162922930904692624605501544016752506273301558984246055723551565111483652068048914067539714216570493695761137233830323525046430872592152663503096242375926150149913256206942006472607234606428258813088797610610580231271651905995673063599703682873586692828078243992828138052702830946503825299037561914983338265987386335220586388561990848360506916743917183129185196727918694675979452597540259261814401069514627029521155826314073591348810967756961217927718016902138769393471355827357931819984956228274709207239712617234631912657906971090537873113209167716087454279778143056634762407248502767303587314467237055560626993786440800671943071486500251789268384620955673425364256015359845901519904598046592444939096047533466041166908804172720555216044197031956953311791620893311514435430419087022739620164993059975974710104010149340065541220131622786326831773613141705481558980990885444592676010261991860638766734672649770649825005283395576983973007537125829310819232559623503777202467004542755673876131760282808839833237230902661651071411843058441514106964692034590971695554408042567854827642469530584062436823314915297546062251004311683797271410198870484291906855113084012884510204712778008367875256542225271729795856401716924943714493069726761284661778731096910478172484418685894874134324786748664914618322686629702755195017860092118142968308992297503504582911757025288069621578731886752644018259194111754820046129032959708956713570655854339478073115383523982534280877499976998076495584369179924455189628423943717884606335659728841574194151087307600464127182692169070228607240069669280122191152025721814606610636440228689306592603474390427896035530606174144323615088916321575757962725822858783736765211530273630370203470776011737162082000497956668342958032034941378416608558082694039405133249655861877950470570349172419192003132069012580292820801826897707169872192734947720047466921921926849770604813533106841316320566989184297559936380005863336680640676244985661821814319805174254385405510547796696548633231629325163750834838344274665817851528477399836733997586706064348853240383666734005374426136357059378161345985067497717656675374746886266192948263601709541096935467211425940364496533371950561495991517321514308817866140347727798076110603251140582491886528611898954526225553583152926610019817815942772804182303371982973920571969472377395902709008842183639466680968825469912983938508548764228234192248791933935502010711665996805072306800742520184120063358036396909288315971495095178010653024686690373318045655710038190659574870591933900584457139266973061857410717045863967046500529249868017621238304510377651465036817088398770758077561350323427432468636068575673339428758888288054127986210396944887730933970717685134095970906974746867810235658224565616509239705754496277560281073529781439265678874804984186231586739059315885616036184911749457497908109052417454245310760249559576233978473650822111645312212954880135970203002229196296837154419673320158928057321656062558306131808191374368196678041202774802851552923640690816448248908992044534622525699307526780301902921471029077662837301365426675972103996394265774380881989964460544936583739844903008421329725847982149386000368381173908862792994785306285599521214020007860408820985834010405708510286475853472028990636311720127094681975874361926706433563830622479000976456684095960202979276628383761923357040364749426094993275255160057544243750340484166327908490109892437682825577712416472956910667298442960380695498195870483244876399805698230651700218067833014658606216057449425515426166400477701479779426680027384417442413953008274318654200740423854394941238803124794445230541103487469063915829774922287810658941757296838575633267988039224011082869008193372776754083548353521165944355125105946347528332073428335923376390675643242566619045003894700011635095518589862143843520300483142066251314294602929742886864084270487387746884756614671803740928296773096086245632307777750096938123995065665430802410397348063270176685043617614925696805411960683477644948645875748741230038269161256208175732116862335227633324005923029504673360266631565432207935136696682977190649207358692609918541960932667573072737490804002117391419571806022918984730798692375756337635684141080515078126649412358773016142231975491183606952892818734665421194192075438592004650895191824362292202696937934978701368426510746909289039296889667895477716679570787754413624283798635373755350229251087140935016182268046177650556313905139949372847584950927571105292885283461651735013734811490572978867012619174438530168676612936570052662533532288597298589415815677334573352396005641793594790119024930782269160447807286881697103725511433886263118061669676336609111361600970081903920107257362559545368199809599092672573959314115744614191571747881819056260194236341372460662921081889626964501964116012471245966991802556031090130181974579197402214646310105547700082518068101746497865415440923285695901535180379453316706275709391134598732851369091888975030839267986475010787580544661849420579940538956145431551556460957001141152299369308180105960258454182800493589055576874427846616136828915808141858912587025671735643230175979024234402317839180538024215712165135023742259729130474823315457303827151411626300437310801624844495306251594093152995772854392385040549320438385733872023210341061216798282720640002998513642454349373162170431774836537272848796275392227379250154641682618861336391911302530700913477311707416181238543879799422464350481368657752706032165215106241830132681978462245045635499055729327684508568866295383487230364393047877512934560671306381724466377664866898151374880957926898604604244994447640333669533750353290200745512316726859171137626472458158168928335163589905551491182098237883070619970056490941175261021960842854557506192911452956405573952999115819669742849892068873318507129347833347898293401117379165220836909348206563916914569190537367766861865674607078090536725300211019161061065952797462080934038131226934099506135575904082441792378686071855002192228602616404496703271938296582140392881714393627564481220881399509552412084706566882624216744336264292996319749573667827085615426446170501461802457791092451248649736690833548865329066706919337984581312206870350901467704061549527971886491454664321637595486351290815323185343384570430481262025062551997267914255123290248299697295171959381974460495649840068612153313704017939246798077213918114928161748448619078355811791060514217160982179637715077183201708309837864394509626027684900446400584176307643492354396144730797818713253930963248994258866674018185872761769658396343631790120690599161691827284084676786803195872717605792929102322035925430645838453694801346820589932131010963487751883483925845554197121457143130360249717085528339201721646694182555347273291841590882306368388556968835510663519541624415674209043027680835445443869747989236019311305003712979369220435595765661674218912009307603780276986892292188426583067775434673252242835226638410799752796610972074821339890618490849203937189182957225410567753614237736057860870085221882684061239746840930341207730547415521700476377565701165938854564028023745734554263683401679567161577112648450840097259666623711855453331518271764878659080438932327819029746409894052864876041983657235414630831503154283517569183663541669347161290342996725940799220363391489825062098640580465252620015169585712957918839528674234646376034206086512034670946068170727371921774317500614220701345391967780209383649542101886019387489794597488801873266765290285357480482193667930455144337101964443793295073451963870344262977220373311036104921105078973898878426476131113134047293575910913415889807218457975517711097682439462154144151095877894559814264508046142757640066483470597573360439978052491197798560230316038568396010580448036419502855452229576316650423514589567695720516856359563147053647677464053962880087509505696218908030862304895496301447096462369355376248416790299377146667626953413019962445673065463024720009265568867525867348588526948434819812533943589267911835036706651174573360411945554654069297520943931180038871035673106743329516792678249869461460308220222572757473345305798090231378326971155784885663601575407205560328502866492776574216248385926974027544027691459115300165140598095948337010991273489324729306493574335517867864208882117236329607170779016158203959449926586358399724315280099369432129853719336679663578512385706516449489742705968159794950393581958959201284358869755226946915736133864046672236890936901832161723629269540252013412570611023932171588734670255588939523455393215785159075852637855418229742230205316988459196018208212278848482631329580289555378588494109568184050599675633736627363174127162555999168103548621635209836920509356853115457812527401372061129460570120369046234668188389584275603781311882373570680647048162482732404706205307013572452869714090747740829283915912154628010197482163049639804283083297317248440676171999178951548326515125636474119889671845401546165507001373131521588815137907407592478729408904431195675727898797207561120456480359937409828295393257975955781827650200803911828683039272600960121932725561044127556097361392382236485052416054956078777742446457914847367345506595709192927855970099865913222307590861674269138339515185437997675345466087492211342462451570199041413894676721768917923264904241972654754666316110515215804629496005046932178171868231864607337601337251742433105102818528220032297491018930912080217712367522611908285296260869057616993135300855555737263625429436268602290740246879524332200210266058330271136579765774798718476305530931937462900530929670325705922472155622200829394274159413082945913513264671465989003997768077083183133899604691122992794749640968055506122491826837519703642182814023004322934654548203836778143315496975372749607722357463058360613889449381501848411016218662462607413727279338954220022583418129315359002257054907810374928745597792241838062950608140451658551612619977319771555533379176179018296062803679277384676272295134847134408390335463239237072584545444686809723051497460688158340707482187613254061307249451374940045881265096944991298304469377614619413952688561298430431551919673229420070522901745318356508072285799019807739163078201690663308482511260923060500770793696516903801544826378797415838679032612629506651926533492765175210872712354304765491105805314516532030682143872478871899966831001397848115352626568990718772777584054310712976396310208812918463531313960084976120316447673780764809249455866773170197788320393270353828074852503614168635722301277226709146628307279353082172450956084377875826858697637509524745426343780879394123843590882787963740931621178135625655722869243794951723949664760157727924336480338070811152649539105848199713664465348482433204815878289222126616670497383281115938167266768738445181063317298769332040389062287975714846318306431049336582455886678536364686019425740364587566507321045380648023591637320823051053832232746191086875337073585908366835190851672598962095630718712922082989174606071360721369329962165980682158826665776179096388844895802831108102028335495390974384879028920823226837560161405328577819731776825273533845238413346083554363633567941037499862311706035200530057883190755597609799556221077406888000756799670343402895144385600630926576236497204871230989226757689259811755562957782431425796299784355595064323335158465893826799813935397632195451247144839398557602329750837680474199703819963190395992335253282018753825024878292290670096820504455495612873746003635246671264840976811448881438827824569249928914306717750270723489795264748358788147773668204721595902864046705213690597780352713784485956142252606603566176287463174191020216849824734757177491272405688819370519991049394317024178826102182898675468707749985509250904057529645360853465798406124441071022813283985575222419271147624506216945353160610176560553247385308916071365555077229646649301923063313915583397447520861652140457029025963501338378297735053005554730752014045548690850275700711833415202874932670010015780178325429085235108128021328006095370882496204645869108487687871585597803005420119987146325066351362856005799993762129856186836877810343044762829256646993942316099367791883741061643401224518575798488700724690521862339133432018444258507053226652415006263274090265816721860751214829550048743998781412327149341028750768397474057765289588829308534949362182647747616620447576932964033285851279125430419821223650913368889493160122634222427297659299078357164643593633544393489608377831883113216019635774941971135122978469025591099829195004241621701004208927996219585001158240208968126546426380672612978891701891343606395039550555957267314609144488540978723420911768183304234059681553124839279654990630073183219955963823991879043760449242992694110881353193209588512997981448668692122367836263481686484536783510899770670953245779333658112646864633452037539019859377651207567729596200532133165242615135064476452752230159044907596807345982340676002350490891209579312481399483193932472406835176753205041001252853329927114045809108569544175220151804806314677745518209537902225589453112025622599088310042509915487315860397138721137418334885816172065647634683036134141629954717492157318127745666054610460185778358477110416021580259467997593600803602748208318768577618350324279963194323601966318721736193412308714431497986845208753028743739712821469645615326981465575910034152308455974671163013668462527124614628890605816369635793759248800641864955471510200928528066406159590488757764519932987526626334177226844002694759309663545345975020478281763784894570027822751753620450272307596986907797971100066766518118548640633228356009256683896843014445729734983702432689306965752064726564578364959201025700155664415870867161749338884867207759544740101913584466820017559395922165820412713574077811129812114254369906341072207315103600699662025810535841173661811452568915908833506180940851516469689726218602200842435478579311423792190504316477155179475498061422901903476126417122968596989659648322918338110273636972564080848488507012282061230015251036551356442247976357949213698536328905478527909194703071596112781746748042878609818285259453188296400264923428013896062056363497822256912005622686412263326808045304874573450052211760735743270962861975004560114707664871806583094066267549704760871302692212019120461770961471217849820432793652747538175082617014045604231666513532286306955851539775994719509460986921928568484273592753554983375751871850057674792084996831766815657860608567598002333112183108552216678089623956817347105194151317127078153149850966102769927606104064728317311124134062111105294871603843925112561573868940616289032878192310623674850622415694303699731428314535646997923001011308675957403109279113139169511507560225421154224956737386442598196835449959397294103660496094221336538660285132450746077169195055194116011761443449156056109928643611161591686290891964577407225089260418543546854817104125920647763542897577099412974644231861997302753612680872900252891850455571330690558852990366411260689149838739731526102554448918304498489500106260147027102453187129026287058759208526420687354222277204001697208034012963763656787713181725310481952547232622362321944164350947990579802898743926987678438367442231594523089231254473586708970585409053020433794616377439213160344538173261790861749632100927745708085229404466161174877102143564390649161060047515690159907136891532488458865663331998830966043608538217008092775889168035735885313031837268763745681938415941383979323994743462852255763703886333709763628575803117873806677292304894607983837054680234356447340923523360205910246422182014391310902146639779730289755869255696072577463540099583454120993287345731670025063626746983131276891775813800819142219644341370132537887228264910175924187863640295736600243634854000718995155465895308618057000656678436727662410496236666420968676351272191707099255846207643168929882393038192856813946965679640533871071543697222336432656112457549845227636751382770800699447196904937169554561928608016794290325389870296889140993534780180490383587211086041861814783444812122748764313137160256888809375683780927133962706853342948041074350613186700565269964813186983755824852131757457979901145103562455960263450732562364502173480120548522747572604087843193134393783843685644934093289188369154103865054378696285570868313152333980808079146212376661790690757857307717763202203076695431225137059881416104164463535733834917567329291382932310121039482035104681435681304667573208424309743970849809523720475254546824069261821845506104168263626402165865145585840535826824213089661381910948483860109396742592652574509789181222075199333989428026838221416698414243893868171984714049599485168820951344664798969228645414484518511805742300069811331481326219716925339991476515810825441011614035348406647579323150895550979346240772689228429854365584552046775388731477691714400946767758306977635879399850632842210355667855366583611105535294935494649632695398561749421558092982368858009268832296805610989809749744608905409702285319685281721512210085951794333931986603955719484459292966673940114773620852590548985047549784664239929476365994892144783769549045348031993276911774682464940936823869533284107558989607547333142736123438330368506713469454044820870459023308178633965833785166571928629427001766755789907892222612820755439140479903937590669853224439702683096010146273843158569139464567971897009774019227971367900150858418521803119422024927931195810645841807629064720742078093487165629598566431674285415478325651188167555194479370915501846956930517888086043407011022623963625003596269121266820085551500167510465739351551472767620880054458267710353646135544181399891365200196291963248377625452362135723535321659112583969812873447353915640942561203527022021090962384689764638481627501341012099949339228362030093974313433209918787347464172357895027120400600870203641349035141986003421047977782682121454778141116650419087193721770138652502281490785866381443826652569725507824842758759766547759474817341307353623120299845481854043096916015021489760053674324446453415038671275096375720708738501427423449000004915225837932684511756809316972207178425446533828409323066352071214082706584509220296166158131664048726396174464385120592279006354296879950122825145735251170143477094225610487581340243471827222738770304127874115681317223848986012526103967529458597912132354428637198025822205219341283208351911543911542538715676723263636470843936800345863930323908248446890865824216527827499357341252227237088876700911015989972509519938144512687834056109023748374175241916536270907419848832509381377484613123085578232646152533951115398627794553741188552397690284572891409177142117822557354923193305808925741108469146221364229726491799587690420219020073120225202651583613052360510934779133076827142742704514121502420085001727925580832946796320266191499249577021338185420772180308445976484584945269968047191328058354014360411575314777598500670556886857258946962978574166642969614700357602715780576887661512978622595265435444145477486551059703704001212742047738594770872893865082924880706451757600722575278376798231335841781912275657533458714653538137704876011663047601343795329538411207228324110276589274726628976415476937155899932671314724862324798667471330294902953307787852572536413665499235214591091096132333372572504223003787977703429939473460775068472092373063137656078972975281354676129396976493079540032255261964296328997977963923652615031374441659327995337692606783202758539360743751556541162679742262860248476904904357622965837149428269970190322706307858910967847524588671543002561105869055274802674979571904923731104020666106804584483431179063437475122757695716728549669424058832301751938502192871389549053504043663495136202060712244572650021818779874370694663462375728215611809776152742051416706557535653564227073338337456724583861762364071413344482426243733118860407793354211961121975119804894051656055072337374136189190676395154144880682208272496785180857993727202195233860627194783001264261675922702427718741908072874701653900291433510067030097593136898831802811134505241482943096146936112300076772447937673232247197612583054448250266353059324527333014693313922010622908748009098891511207537565890620122177498086017300697511245440731312329869098905578305450762409795708018328795975451502030590418358294835604956942053681692196377321085524883999024953850935591420983186916518599614629109702485971521613181213877865538805706898290969186909500875457702133929246857992554436264974758881640556341585413312586307694551498750648156890372549561689153869174729262880710247359226891944014556692893409507718314576214108152806825047498788826746777748202914912912198954864949086626281907398118047711426345777310529862322884317869670578125492042496445345285105989890731555281818827663023198952547257615993663898807610790045745459740617486052758840426285058351863653855937010879549602273849540529588454837157926170170800161159774401658526786522111914586501413718040097078385085267078211436586799293567078732508630617993855853539674839340488923201707929623284833496396909689547234123303123801999376901392270709525408197638886754066824776093643677874312696052634416349525710762559295475405283019400543768955204607917914595006532046288143389157555197012500597929193477318596900617637915837105257033079426128464187814365556185087238847339463676879003148695290941698828687078110824189911516833028863151142493400959230070483468981813545071667746394898017694687888847231511106810984001574323205558429180800199318501720025286001262464525371763404098138724877265206489788753523566598702949821884139827982324887252994711134571932439614020053060164324105639534921706501241508140576556519783294002224945132660757133603429606433597084036305245807214805468041369359961746201415126083950838696625434893780463244099796040091871716121704783709279775437602953422356656092376026502848488619109933849063306746368763431214694806565336730467330320794312988167999260087610692549711460712064410440808814847231769828731472705962235655043095172666701727791335408252823676879056881450641969904246469505779792047656038499973492457478224027199036484324732440494209421762815112886895675368216086080809259379305847463881908920954505889570786733427413300025101678815435630414386596533926448673770975700614621146906447988115306150395113609367507009332056372861608930458392136859861677775573194200630855486876992287195561525393966910874001494015115255700353683881252061002481876139607413770373127426578633994243398359653466906878054436700628358599295463261309122810933329189191260903986436902329678376475730340260190039167037583864437542091765044772731246911175327528632271625401349247964983800781050838502676235477245505681492663713325357705000224306815231104364716441376297430688433931918522864657949277592198800972586847370493822022467405130099483589821383398080655602859098282443915540574869884826044748086979489213343440119563133949520238603380227492757735995797688227736132021355737462281994422750887550295517808152058233407721470517504113903397378572707605116299135856132222514270862343488226127827163848439992486368930718722285424711471895342938909742647995708636533117452852084929361612484111733730375018296945709805932202599822925953763006355093488618409369886371232421538145697876664759950141540309427358694905104650076022246649766704183667938390447689483427025761852587337338993400084008648722825564131158366240296778521750887721338866695586611716244493122836759382951335578530915933703942865589547427863664579825708066966238589746674467501382826544051959430307468241851536397895929042491315900612399461972648841065185271114471718356790308364065551919805200072962668900363286525138033671753472806777060604812037548180126136593452661322858507915872839673878481998538155249607705551517028014656138841169829782111709670616890831270561264373764982359812152459556341260509371164990096887919195806333229929309651671576466343037334423960337541082012765719092504897001275414632185430974565766003756790980151324079360146748526340828178712398161520973093501106041852125380366847939908734538228555205917053098232935017592402491828741576455172294620936509122026072329857665791762342495705546864872317536920016148728763457883450186484001435610845375114182573505903144026115448058501239186537640346044780929035338266725535733502059992166837577884068132658065264789634015416023736188651760638729683585174509205963090903460002258297670609331624191289366750649529023445980047456000329299232515341705335701027019096051683690081644823668958488011671635062712744100062770064472502792323099239863005765082686403317450222189675495923054533226580307788438418945187983210796593856086515989822921791575292311199295238649619206900990526629270891834355529612122340425097063826656910434123813486445320007997872578429910785629890495276692844168497396445692161246286466387119665150706701458757416083706268281920214287391818275932452936162416138931396858915289594183339308494508571680288138642725605760477869682450222217916798641449474213900202214313675076929751260001088544778953640721793376337409240499804266431146481321481605853810650815013533361249429020271501741826143433990512530066201728171163944225650669866587093210812562793241952401137394325442386573990887995062464213290942710032974264127594645038240921800431678251187492443485352516719679376291280162390357083610943286355919248176061079922378386277687446006847921339061919567296068664490218424506425911003937625198173442866196380139520467616237024904315504962931260769806691914693245338989251220299089027807073856136336865833629415083715192064761431222655541495087188627397515038156961520576392674730225897103091523852244229740657210891382489300752969364844688290929320389747996573565000697483647817289726769448348168208933507931708489511642163943592526283075839288642068230233209211401946257650856371983671865485975589048128707715447763409564784022970503699191222897730407393433624553018068696252963406051208582200612218897511036915102206523919968848782203973462288033468350222422070980624431258406407986903839897913532823877072641285461752935489342717421532383566177520553661804305123198420849822403424434413477174119629978066915901237549419253158115097985447794191253004651466755324276209702135794608688645179257441183214498125874866856699821451992282680515822731370638103052640281169222922663131891191596124600421411151262310897049615196427937413108246799782330452121597441214512600414989280479577934824771128480026617833918283684960433584207020977819018977942352197162831659294550104769235273918792747781286078287896068193033764010686547362351113113859884900762889471270803028029456090154090963106547608879165894831484080557022762757597617589200337912174451280668551694708216925441385665201242892681702099824914498663971721683537174392481873981214071049732680898160879182316620795310421037141937181865076833081315706444649233739444708630764357289527620241441159571934779788399914480152213524934812297961728535649206629150564793885463197759764752130609493937740976206436865411045173747788298537892738166277761112758029036021933456628459338164544370608639758023419316795002265556639576499182530472908504508989172997608023717657629315345917208923056861429557278874249177526869721444618526000861101574901417654691950880428815772743162996214078035922237898099605629066438603570120237341783965777086832298215253550337594349487834252815048774221156965556087411578480136091489614386073704467284175138324064920235961037044881051546811762151984501444963877799910306689357274790034173710496175263519772175977963005016660483771020415137907079076358136415858301768038325586527773050698159783753568567806414078817832191182402311856477420885515266998523814472110477396581665182460852591242313272279873310431881539162449964134028975275448595732006801505580496195705482934143488226951912739804959071306372523791567394924496584571329177789979721167043429681179803732391472544197936566059129527130696658273193351073636028457565635942868439603440163709474156452245066500515136174119070767113396413948330535973249540307876843809219842091465740520627786368735467701176233566665998066693321270542006026650373253795303591383556092420331882316635078958877842083313845150526411654339910205185714096718114141819684018638788547419398681146743734202719056714708452471051509419577664933468130857677297215633658077129054392077971878567571198649165649938591848417450294363353537118010704897426543510922529905300373725808630125612037562233564382623882684747995489855754633391991831948307785370878111031538106487904029731147494532856849120816606585858626766413857848772943253247471425217995024494007211978181266247850160356315513193808771032561879870060320172821050339994283955635005616620896735559502480006821000920173028500161627394458117793219392957380346342542729794479054224560493342236576479433488730090710958633721209917935312759814127399328389022474261233031015039522711368324686580415870066112511255333946192598509428951482024839744953584082189535760134743028478744440588509041643845301994735394499478208218003445975325369413726999426523161164084765312533778840042994856846651673026413849404754865387492502971601039863463015191975073880599494338414161794623584684817078094255752636905462500646679452469999308434634946161223957685476317257297694428386831454876587510389171401658541535041600395472567079725960227724402451618704235496775305543630874134753098094659313751638629686227784324523033486003127120045436666029833980648383789553515865740343235225996495563699240532824889603133066415836885602866605023546893990318181308410389029782994901363525905425522685831782440615064752925016368692324174003222871075016349767613534162872072864104872667087921301246601794127055650771830547440828718549828599902563155791370909597868842756891126237424199126794191895450937467409869028348321550351311488217882184523713953263305295110070707662877600320382768615157962112966700535909366355076739342690005844504187318891916151462782373010403243677590686508165786350944880346116736241429548745502336504241611453341286688665244800691786381936868831925515500280399219261060192538699887867669971306561106889765159250161162525044177561502723230583703001566744693140082439140355266223540209672628784887729665215893195550657129777139626387777226240130397759933727434242979662105676288746306757770630534334482434586998850382467760384300002540820355962380531158934023388864122037851789352953512778451285688197768238651686642626652926949893249018072334029933303892495816998863176399669162961515033817940588764870404108085725415174445887008468495232912058727616335463368760974519812889437740946062659296668357342375441038163888939508939926209235233132283318134553138052936261841707952503823740816895148394927999971582912965111257593803917195836877235506566696285075494399814356051608675664733769250400317276015428749253652784043596148089982514246034752896849891971832908093277460336775546341240881159082288720983377832371881292950696551908956064576503407675393877371520490625607754173929824113303652620847384739113251131356502410110715830905186100611602001228997475815208350255184458911254370556147915142944204814292017719897570589682864868428930334864131172430951719087002777370507907374800196266276659800392040939019072441359904972351202066278487641079104053391316252297389267815748195241316380563518507445071461322170948316509930207735882883045121144669210188816526531250872369464757988835709336828956600848841516554583107128711344074401796242330681754532061808140124619905915152397710840902911766064611466274699092379592622762579656079961168192301948488316438291014047517158512371089979737469938621549744104894561321505686541304312167417786784986978772635786211588805960973396067062454044980176985028444126191178039316084723007946944199884837283086162543345541401063602081077493465216556293882983982511886766800266429264495652594940891499336209579498804447337850721601769123467468670673327005968177423097561230549221783107781124543354568210280890452646600362516830482388770806794069843772885359789802896626782766744131310934558656073571196127093130232729923354814904218605298131004086078445877736987574219276996344891986505688010735851014475758503723567570290966609132164540079226673531374175648680347243299355616168964383166411243319525421292133208439464507824918290803507598301598963427679575975157638810207100012502395728680497034986342674118455087547384746921494062164001021772566317466475476617757183137443094456278607205706285850275232544252624593772832042692610372077482834984264811248090336330557135049826329222848097631616031221732944181208704639467898450782954663390998883038076554537263244370439109197687616651093089812073553747978090963841387519644487470267272699022635848795475006934459782590597388991583935781562640112205572048818038779091917088578885488411768825590905069724320266663566154068648376049137131146763098018588425607738695962040463874184668301498762810062835009913903786624374939860610786885144128653154179836351216522249144355011868367171255349611806468321467017931167612170756673358032075672011062405628652389014083365587158475568958200331281492009876689646630823457345983908950520433268515664412515294783826358671903395016358263102728181731935896087430680863177065863521920782071118002995793180422155028522531939633199049726911989324550774515892969235436720413256703548089453746593659809631084389316638787541338266483775006176415126373898739789641126584230372737737767784847561998887777277619976216194675015414502090590300899773070825534404629816907354014220016964295054306287321559677592265166219382400583286174682176658322658911908492246571112457952843793938364478574138287734410296331908034731268073786822716106632450522311001567650562175772608974150894193316230623866205926642490804995502478714841879201516293279888474873596474769465767031642854874440398070668121341779836412188376066741920194848864436299838738994719945425413931790178262877925113071914785978130059165807736291819483297747125304422118665998686548124230535970226105856577600221671408818831769866905444352353460780168612581975670336504132724036405257273543135619469024902798765521048719213790738714552050799187768787175498566049247358020734298921434004080259595810069343886744632870704282929814984887259027639682483839531290202108029315140299817020492034720739260114280410652990043026051135425777308324940747920629068544775124109885636954613331787395741587927755932899431443843721966734267999268778394661164775867926868783384085788611085330336512791934200091808310656839167998360455158964256262625234119383656163267754610685894753736452226663567434652597918053186397712911225609338111631741807635570378130997473050497421186999886357033329035342165326995733006347907633590972442628345340013802944801829590421756100945715592626864198038740966942840091910999159008497706679539215349685374255406173494340015133462113651601086286634737252187068066410329739948110426954766423013853898258361539939832631807080145117258605143243982735227751722954620507491388484697247413901178948860777019685871510601228809635537727031346320883971730340994519099105160186864050609287743621876843489939758885039404307749581126449783996798926296356359058271639207369950023096680688615552198992991843587928145048770638207101685171654324106629780850284708426223134557083321207953237550647006722041066956210463619845338992890457694089687458071575668141872237864641005024935927248876208196092732629052371620793443973292813446321251421854904646087289528625029300533347200612118947995577603673695717313849317511267353551220809869165532310486765794237869027898189355610418855638980324950291492582617324387083282107714176059719388925999618769718431043956900727580315403207675733225392666464723196892332196710267804045722487699946297328005056209694616158830110805408315666909287060082253320027660617926076258450277067436854813700356333614636983527654547865079732581048310590550661682918019676413973588179834603950126483675138291884921601103286770731500161581528518811078146407367290904056124810667827835247541791868501978326840371098589640068054691195588488447094002454719692216836551608005781068055764445441298777090154364909685521934506289248608655989549057214229983174092199870486374916032797327880164435362527031557400628474564853958031752948677858808257476976836668957368193531351728399969690781452727382099631884546524408814547200938625191372362767151794722165642457873678105522898130757312091552558721867049659536660222259717155945688248275541712298361155843404409195931077585722913178012218408877609051106591651881503061368704359276538017096117807002161860942518547849529898299825350020941039388309814583693566178308612923980903014607534186263527923306820447329840572509195061989673846742791789132338412329654770606610823403401882705678211512825992749137256024670702823424630639204092174141990776554794364269560329132593439581322575883205387109506532765803685558231490713402289638103835951936036465790705531571423784113526492278629538400128422882411879665653143543901213034525007555816784462244507359921444827984118264266431287023846787368697080801576021575050021139438961280751954815519323592931824892005658986802858303068316737853764196927681987100825992197168675109884981710360939990620836540995924230869798022198843766055030513016682945875259607969870543554264420836258317039904965324529855901650442412452631322003257158772796588906537721974429108652289292131448245214420209640920353491740880890414440907893959438315377195122364480268593560832985347601164016949650132030879357831498806297272082040189246663496670202926682255812690128780352654440859148921994137641223831810198978924415262220297490292672461920278256718791444810453429363339861013899740665679509728388756765559189451472327594465798898726794218019167344312986398232466258220662522069061471986378178905423609860007213115003884434369389114898675524549854808163259130688162760773177179228721077616811270982715450013337437855778172063344707574578284506669675288337845235745085075027728275942001659044925963666335937583658638377861794366694949147803024239802528620507678854158309764216687209136341437967885835255982179540332394671864011347480517615615554548758434251312511462000453857711204805814736332120076719475032714803739542858234883854248246876671839288698773891136466745824166724809706179964425981658413693282269145930520584424263954364290693397888434424423334767900047630699225504278753374287793727265435020350510413652178421390666875865781503277072992630631567482307499757494263269730664934022513093516768094797384468814228010990875788989286783520974722562918154021804828370321166872555468767560467101675194438044425632068764920678504844075335416424710668872831098928285888543744477913777130097247780623826968094825966221510398650835104223631910802253345703840607157707125312486213347398255881317728936204582372539766036414089953899395934042827378662822290957569252283578267896295415907786379355466785528837386833615580028504907321130151154524604709088725177326139294167727532535860991334507471786531557494608088980687447926744840902875066062796631334490062459200413356141697004147524350082611384377809551277745040303590915345701777936081350787946375834942322019595376384023508860580231777862065907114605516655307330448743480306629753153675766241128273795144705400161900582573954126338475185094264348165571081967954412443699095793713811103520289520612795509207707372710904443460566319876782614785348377390450833194159193198715732821488163946822899936961063325978787186981319798277905979660719249660363191351025847514319725972564132067537107021150956047925567931723491644046253546496829034111694193534576568039466960517524162961604797297243591512894848282029373095820370124286100075736740081143762216149052142354487032858482635436152135412627876447816503219617845902119703881883544941165906143915103809578523802918923084414543162835587860370708689163761372210164973816054970907374033543834970395819311966111526706061688477113206871816239598110873011573204624222481936324007491017905372963506751471969866404783232375511383959097607403447007496553816932948296644052062292708255723597588028693058496932259398964163668463936589780489567349643803716654017903397021847780571288804673928619440675132326979004369796069773044948468297945288719735745713836225599004053278169497284869761575872792487886005689634895021956887972022388456799704127322447298661312154058627573570939190792199891655144810433141661684148273895906547628809088123019486342776707251559593252298945973613510325835696220125891159572496681191787550563036338339901409687858259329768937184961855922930979761051966113347977381502216147072504255829832110235557023171086419862680400970267554455398255293843078274992966004057086376318634346450005267128270462505751393525092353290924621517627337248049933533135226815477965334399623797272809798212844296057446637741129281260225991969103689668263832592395787130594220965230750634395189421016682981998984091586728379563641151881379552969489672270869365625414997094288551857590383547827931657749845331370582002212952369499246425663872186577822624260779689336200300442822896611143224207766903750684532735359867863690726618483080055385203562312409335118741763313469906310725561492622057446356550553616374489301993147393806383469839765026250689394769566275531121891792718163259889724123394913760375414941397797294931318196662974014641020041611806669563202480592157741079693712357751901000479523040487031608087567367471169078347681938812534317124194117818572736817007264848791369002680296652843430737736170577636920959631581209769943592606989227702167982663878307501897650718418027475564929251718838422136587228470339599842506283119730033382485998153363897386587082774156929094336132771191909137277264790150625242561626129376538057788044798733584392537408355360425205575176716004811805623410471424226003572094510334139317958351408199406876568598277968783142867102956336641495593689236740544359343433149336888752054619141289012156672745346553715120807409010437800991613657836490071976427865177091451573058279931800247497206247510165814796686372702043579143826290327768826975679179953697801757371506367617156146733252808706972503799759759968913767411159029261683577236563722436849837141329787545155891562530182814481642438097461989397733128364472296569096271654913046075842556350705891384243821725596248714890687047291940524947897332466127069567184515749240487688933627801573565108399621793880161095768709670391200702383923236863352440394086736519458243873746699161794004030001272204600293143658514982946271865288763498544223690333559677575114457950361213623938811034964648044256784648120057150736855048644842231746854495219524988234149100537174559649042546724608235754745683338657284301040904395007375160034687877689305777026149233390750294763931324351716814964303089187109119996492563988925252989116092531212245275047583596303354810582037929861853108933156495852878418102523477631123600971717184130793771169666695795886781629127310655784817832383406609157038608204990828660040180502769625633511178646178482548266305805310582024543040988891014662928656636901880117319403752207931972549000713799886671631585003669886306729122084378506649363197004738413613174920189921373731949683055438246713415262450035159416629926887239905211877071249349364975048100511597778022835533254105938735082342612032027750309810759643731015387290025718066454688171185748443394714807194597484070804129312326417138810500679939911410077083111859444172228996942838337471985646839648897832545670470816814138734680234224882506024872752256155625839880454669149544663681913196759104574094688099131897025219915341316571200180564692148767789604021903991462143881685780808648818410389386871763606144405307242581196613192722757846568483960579405138453893632520243537410003496309507797112661435659705059395764368301019548814095456677185599551312643253372713182949099980284730256157427048819117834779562202217970800389907572658694026101055203337193096413391318574689115809151886749869466205437298725626072608748593116985261280642830983273809394307825636553262202608722875665138892028414247857045918455783417582786896457262608924127686690964629026277420053595754654559156139123762021547500703325266226097840774875255198777245808999800950456582180921832322744862489527153543726915323869725532444170047033367371633798028070483853658769396615067940701599435699780063448034413051127508861566327249595394740376713175420756406966768600574844244620101373899188402953303539878492413636459173501722515472006217699075175238496214077164415534265032502787229171837462547919868070298096798940271187591233463266097926307795837663506059017584900002348194420290116542987864192923540545916716722378646311021482809484847782403926787080401158633056674567405524234577320214466541649053377120683906181203309538907539652165480259615705559471901016687996089329092203956711168755560744807406213091096158249213820305664179951248159048157469843929970075082021402846241622837246930269791038863434330243532237492670722954998309885862538298888167806098838700268498455368300385259383217440695953980429409707696928221068123489711837134868055483558938855656205410252386428474745589293060152557457229958376709247690468955359477896901402029973319580501630617171243435454659538195939167213400074330585457547628028425155232279239942414709485289277017911235871524923502875094803652041629178388208326974376965084582066171845556525417774362537636597025212820257561652256127715151330150335738793096771545154982199746606892899180344478052259083135228626271380649208009831712045474512037930122905722796421971349137168527701396143014081854637577122274218827197506822662642541704718320921990037784433656476989404948846770332823091872861096144425449093212994205189895197409390177289797641782252985941216043258188774193759104385319471836916913204749182458927035841159481988556567436144601320117086912616336993690290973399799315569158428824288795451211564371173834399389559670104706907485819348244515771923818141835078998369478984545588241764291744587022463613827590818056042922328539857025635484787741585313799175801954639190297484661526597905192817098281254221470402332085242328879339449229743844590473649615082477274863198234320655965514048938210771778515406038353861337890102763438989965979094179416562313101536288270287855641365411659329519179942109084520684141370367843672031753874856060715537501862263886901277550879040000978764349703989135702265793174837547649924484746998087778536981767237118754031657355880046184427283984737812605390215718240518083274672836835417819565351050860163939495952756474047078234065740064364688484381034566805848907918243652837026628193336736140342193245902876974144899115239453909404105481866156761176731392253867920427762916059608041507402965121288268825845563685174891503082294474002924772619206640977348258939127324689041994345035614276145174587484587822999309331879416948891841806337181961183841825759390191514308873534952721870942547981917206871348864613993186473949160521734465460700237272531570282628419286308422932487692452551773002357400745042847012958980148876441846974507180393741658575050416125985741242155594442847982718099841113031982578682652816687136476091683519112005246458667818402000126941791848041071801040843444322399261348118795049211007370527120272088047574301331969934133800580885214564109147458442319820286717652585695413378542655110277995611528318510391087294177128601140015892686934176913702782195198031796784778685268586112336731330637871771651827453550170223787468913407545999059269599745745368967927420113765111003327690473059615364253228049577430107270456956070592438286822301138633069422093216188342775989800968389395307524953448101307229171702567873845027414529382748332883123642743898398673935834555625487863130554095145444955090295971556381418733108184742337531786205518385911214744768854445773635811578109231510852069583152092010655013053540645186131916756907522450226001742738545646888125959421513263407709291222442214318544580970994772493366377058822541632775263160395299672423003527200051785889627196670429153923680671338549346755599819069737913025370766158273392166885828242379560529974459835189831304624415754376536025777973125199174680184299402444398856241299099157210213405650229385288790705804943048147270561776890770889154515187391378010371411381199389766799869105259257614988550621516292770192251369535849708697974086094630153826682073669828758186328789667654712091016913818921392079597434772475136379960848638770445949001002611048746661152661643548336697098702302473691010925323286692077406077669037911723499716893357104673337701992714699446284947524468131218876375916913779552577510498831173970038644030213030243728269006951993806762482190570868515462701173431777699332756638739972711167632670803531757172485826700181523812856643738839981038163174200883659844392072162074348241416550808054637424728108266983319360894896947827493161518271203881135126150020157526676358878137738192058919993355191025040082177480253990685238479825709063978441611803417418996082337037997040674625522149597068519556272766404302784789308448189933827269313905227360065795178546754920121797653860914621860284492739737802692257737920992908506261935982673564172355525049644474448272536589591194827492010361564205238876381712892045144621005603226958518486179002742362742938299858164314882262976003731274400996470360244085585515413695071411600391296898346157166575785853353866559973109949103199929170424063036326775244815620878642739914713258506240415618098108888977609139497922033650077642001776581512769589284995043310641151175853836971973102877032246489484674943037493336074560051346356021088577471046953093628964683213981269582739647243979183189182704379199239602268338108587890303106709815624503716084363078474778238536741399592737569154532914464337567633565704287498862916412567452047629339253941717534358833493549628167497512512672934599117562644930119244692381373881793651778670276912993180789128773124217331304259119946842435607648137253232563854963392996990588134614823870827060097333183822801427307297291179812096124084490825157995787754963533585814362445240954604973924180484848720459781006220141474507380363729479800048622112178851499461964315912392190669498899553477550174187530442505260820372701926568939349843418289865905884070738824091281967386187657453318781114506101246150758025028918011917970007192459039444635099195067574005984173451494068563897537405836085693557051462888563412928133853943603736836989853762767060844838047788866867903465882704150075510737790674833679698027086089101207286305690416575581943697553305638874649899660651382791642602436233375230032586762089676117200094667340995215663404228573899841379314289563434951257152280221899319551137644399334192160420136161086878304549646436903753436796957471610594533042066063772232297717227881593339763376985208981191410931568138903878147944857762654089990517572484807125810834194344278032403169256652045588816188827466263418069433531164403259539530373073821674360554228653637428755256247265692561655160263894111736401074397635673598399954892167033476482059488235346616903371599994102074567235541220657171076445604500154007918230826005587332836896247155247594572878921772973006868102922549405286301314975041234841414995120023470726678653769957120815811073719668807405510852433654806129936900964024578208668336577394562162893185464334049688932770562650911540347458256891901399449034428306833649540566106978936788132560773619629905345653730776797798492583634608874838537172422132072700240177190763447068127488997722883250534960927604252212409626062465280519167578314168729360071810367826469601683010090885037335701027384811770765595194639734629563515366651192499979543679516774155519309891748828584102392148989229638748010987494750914024156504381691077795488494826614008660267873299539275427744861210079905190616326602390363478251857309776979443862564579461802371770984103050277709445008530160733474833640271331484722384798101446574901832796223359008360059396510441126214225465861309616987222848670193889028911396835613541400967505487856591527079109843023622947447961009634797790896445110992092376560683009096730077504305860481365588939801095156000801741216110627353908912209497643096943468011667625114954025940374897125500239388171752196458524036354634340441016144853122933695071309033192161598333653005306085585717669872366534463360639061172491946645366612587409560744877342774758887597609828629868556547380881912586814723188537020584290330537323785463527829156016303851679951597574228616137478119305175158704353598692234895141530404602620143292517972507235587539073382441980235690397448985592526048494110812605102648262727827860254276696426393815547867635481753166217816737920088811084856604803685778550944670986376413995462580786061810165329082130198777891000222787377578659209104514755120870003535115581240331181506999607168952231458782185538846168634049373268178163794507341760358113570408152402817148170183231103204174305745470851890382463521115818610990351077792893975216706580787058389092900605929819460282953701742945203842483348556070783026250726222371501543840848723271097133521960878180108099535368431209347498341196426250232083004826775786343170326771602489895433155905684859351703828043739139294312391931545164895316389087309701813354592327693724154970497951671428219847026236578744780026474751039547537568985973868377166801867780963332497608563698929086644180467119177611908981838291396226232363303524992218109780176278430394314701218486288510257120230174173778905331797144653900608853865064848470267896588535030538595736508625505700183666483180482316495137161751548455065164744589766000030370232761093707502287537828683408886880081269376106486562669325456799899771868020940587684024933375159613796450482423992823536448255780738149496919140319140607147092172359828166817013049211589684650559134591916099959937599607252297279792790359131587324518926315823786649917112248073095378381503539264317474791601407638661193160387142478287106239182593056138365059386084850159096472883065131438415501467430059566692032393464193169700271700734382772053476419155904529681268070536723033519434995187897163232477884543180525785588154837381021564606899185833697033904561056319379411095928717052366119844751124699188667466247908647468864194353547132232536451514534469995519120045972960026612658794898982028416713479279269180028885512414918403923708553161416944146964007064165243384987446108351817266897839174920290422349717069885294456314700776630098983441489723915254325021409739778973358739210306254299314437041277102571333336282318595533906061607833343653840036270318555085119211523838112687719219710772779948276154642470781339567074412554779174510650200190987077081435033501538162004779148761099049454812351723084685945924998741433583388512526789107882820248022629116660129147937143215518562871381206468095910029863633173736943478885857952146170482295093688309228287933560487499126543845470731629826634721912517276399186076381236846061101407852365051985626290148011738550232345839516796006283060014978760581587838254876118054269020522149789994107171186125941686652534968509883897708126990788200676732632746233918579884696140243906485460410897647984464730838373869212266033549637477654451140875242797064174283692890769897739015060209509738988940723101956523725965232001073845368421170731833511849986829828415032482415920914043022282175765363920657517391703706230534817173863128607973346756525809684512439161848739935532244536545927949804406265289026651993455673881585957777660923606248968572377940033918093684749822577537367951900589722857489665025638508775776475902718001391000090497360282232479640135763749608532377955672358566848790850273101529653034045125474717571018831198320815696052727832439264562796435271472832590540086532993676272956139931203696327646046203528307114861757450136670656405603020129420669729714663603930152931501208099113252587451482994599623544878389777008849669747325478461098976563254317564752197528493269162864765070788004998366051217810421485402168557747365228400926469884378570422646632504826706001940100183774755564926214307179685631181639582007770219009977296236906811375535282702846299909298133853890330230252390987647065902960393964756980654266959194945786726655089968521437826414888588873065589357349481881178545355428422269458318490083525218821995381072117279194748784941698238736490820134397587688285395006315787559606087289905976420098628568138037287122711280133121261676704193602035597060594492666130980131377461763619975455918579445351894543463629639574732309006766869885324943157636793642276685827810896423698942395683196982084414531221794678136962794826164425127790390297625980116059317738507232058367968783756866943385401114938068107329122035407559978971014483985973852318965333703781056923585184912889988550321557780451696522479997653681474348459019377690438257085918559929667798538346881980456568750833369079775169892558377109455462637772490445066142683497162732630252369420524844975070517561932399786017132178415101769371587412581548167734427230876993110469989930183673933969984478535193673822736873782241132675319912338472415070116999421312051813426068197637808207585719289618755003234876184075122249327125532470493995283297086217607800996967805242042284889978230854090631298359555139104841467038323305152015444481250915630352832124223277286109958981251833925010176339570796129157721751127756191502400325849294212467784226759108891337578256184069547985193305235240533918043386365207170717791809065642537748277012199694684689240779145066128162890044707547822217158096545809659930905287171630061693459144983840944037803347143698178130199939962414457329649368981476160314391366680264477851204337487095943294992485533970967945733772852332599782088745548872744631341060623707184663390824819837411605899542515452949901345488466966469136945518523284221455023555913598389332391188343057565305219844520928808155945877505469301068131201349107018663464309153867082491086994338633224873351287136494252021989653910349123788511151435626994563703081365142332233306127353123100160824908339534401719046088823896501478247781685328564646546763878243078869127243351947763018504335427709807290789313088665702009776581656196127967446757517830559364408987842858295120839677312040809271245152449362531610476171190721241114125999005882330684847302966057853868298805382534962361062231076254684557951424017207695627578413039221504341658716976127884104517805059211099548325578500037826310634707664686519613188664626765019356001608116995389858884370660334541369849545463691731900783296064672808951967035411363641750136178968437022822899016886855739530160045326635571810950804308468242419082738783477181940332265447345297482371263909358305507201005493706880731246363105063343201194344625664749117436130221292807389437238708066888356047009834931141626612897926986299535559938634125980112662154862439322571063331610125237957917327544961011240005338107354869115245452383829877738870327621610893764253434848964660655861479503680877773039944225189324943178428137242885273298194708479461553475747805854464820070188421610226800245649021641632821020366363148840631046904664346308794046481192200557685435301928400313328621031045916773059449479751379709963500330152656088904647621104062697425117816815979048431390968316917837152744597289036710638509310992505439638452984667850478484607247815838272968878837493135567560526314351819435861387645396346845414705860351589463750551110778723101909556683525657259239494046374283974838193764944071270217754563471625414598875792373860644908940340645829167179480641630317374901611418519854146529126401042891186082835775076114491969787675301969780237839971980154540748784265080300603016917907581775635706540502927006938387593985948911117177649360376587906481471714861600744253578066104955977204889552385624080737309461304547379864431199763477736608755591245637161954095889691343453764213484783697734962094551381254871374752366988988260202833837253690061863707729930320366072220668263549560924323471996623134421097113777078569864854701608311241596320370993577115948840387908641430732361275544375835630288857740346452615397158598292820203750998707182560365688812289095480309450916937779400239420959671957864329794165113498363612535001683778585534711405578999965884717442388907382664151039435397868027394732084819716647427617213826410879687539112348062161694299643751358524955166422130277712158857464070163400257834871679998692091972535096538875545789502922276148251915051507297230614436040075350323294733297765500586929890367006263675838755681270520403639730047449827294640405429485760600009777579126888063170778545177856474813620936336782881595388068429428991597748187394123962721709143358207186079022668003801978853819141895178513416431880674125164628649850987906956395135052030311705646629985442127653843918893425980036260241923642294684990873592783582292780051263438248435743409820197924404347920097427501758616708083073941596323522984654721844556925827856142728225533798286819703383060216216516210195332491004740438560254810688992781432688632601193723425391132711468851939793435053193367470603862771438683975590894218258498815671446879764278960285801673562575186732259084169216381021247714586128794643568838851593582109819267083595245613449065291936744458264233366678088453040771958226601323620395138065272263078799826361063391600522864320811165326009205229442105735768142529312869793730388446575883211392956659087617493658809276057280660655984342150482539534422488604233111556859513784827634218566067805429961081266314765849420491994489333044317255142959339261822617066376034213760113350114690549924136119574365076920000894958400292610058247443241852119647946991770941022791721994365060589679291379943207398744785137047246598259936760622025985258872599295927440572718176003601529394150743714920977538096053952778536021895023417181970162798028207815268322112314674475221143167312559158953055710571032301929714665158000277639713313737946314117769445069790423583195019133290819399114736193611343854095415761559917686161718412867491713766289111509901843712418721698565437463541764984369954036853314411916668472076043086154433466375971626038646265222670361011038624309284969279451302038698363400449133858579275667348325752478948127832094378054990828940771104755132457598382055883532949603399934683680310895998328043852643355138133651185196845030234108115912000787893576450352540360200032366272981715110166204582429654212693447662428978538792639477011804191056830247702267966149856750144223090278000410758777415828672383020685886059368871513466479467595726394541480766322189428161054090806318096443914055585921098398745303717732050200787279678793980392763195619590959161276827372133371431883735389520455161194446563525509514878962789483735734882362750615884979499793461368712905114668589097447595651816321555763767986812265859523888332892595616524539054173243595258878801283360933270729238588351985504671882511504601044601264046687867083205088925127337218107419632729507580134506368297291369070111725033717898093134315459715820482668004483113882489235400511075547647429550717931520223783646132690560464024732755412627182306783425399589737020487123180927178938087604301447545261125891476615249327178354898721114136639437912843559792310109378840681214733481007544716689445588808277412741056835529257784541303398291223598268317576710477128419154308424648462505526722585604330389637127790752109641545028461884322807715586148528622058835676840889979010955081425006881147046853359179449237795568734407127794290501809622498001592651544243980167768403234949630057700143325241687792243186394982424736954485419210942236465573303523647475893240230970862346686608015284398346014203480572876918203740970509081310223050913106468141945181149567321314259152737330039243435358470222369020992379577970080095921251968103835906366804684631319215187291155645761542215061619322296259806096163930238854411825788922453884468915851589979723877157480112668921309474207799046154758229169494512784395878462464204704026566305531739931000891079204469544497926564348697518777177629263584693245882084589820068036506747857299830166819847576153435788336913270741206925908619921815464315603511865927165515688198655246443119511319059611535928762055432078380252532608593127598769092479323390781210780313452847230093824584552204050218062819692905190718978587010732123647306423561856628979105011420014656096319141732656249852180407724921217735761779587655108866652484951021382675370252341883270897368415871545862983185419799689085721162156251339478331711711185806802148125409050276667071160111519616843115409084003599194240909402632097622653799145211292847515512839269059770646825976051054078120847345663478233473213479619767869709143295355025915561439088521701207450419281776214957313605507892768639846975398693375364282865595102993680064587624214429621818417626680866894647012278274436100147193164831754449033726817594398710969969173247826121206333859845977085738459761735689821323387710393293507459742309539369721894536270762938395862035054519247907936997118338687936808759953933264163906446892484177165860943849546044191309338854277633966371129216176351018454397956962356319812669418909782795614933755856631672177760288305581566956817636846528471705466149740529638207185250222884220569382535154685616872310467789076574771148731534782938128677379504391331030098591562594838786748461414631145950876885369443651287574804229344037874248884069116091032669251282742118112036782512650772395582659580675306841991018734647196637192132318830337574947052462699308909375303673684795554942518998609886709997114132484589334089889774990686063916977857578187784002050311552272619455460394335309511457106081277306600981703993905623376775066084645249267380609861530711546610531915624478362433984830447810504058342482414337640089170413350591726640320305472544478183617316079541273616170560658799946087594760614212578902829688313224573151219443647184492989971255518584673401718533993212301062536957767863514270275217050577962372531597499091274957410555646172564158254900970489011363769771131545289493364137921506699133462976125832639384867930477292570958281803974656876259739973752911127261291703514185891778475940987114412122022036519438924975808326354861398521423642161299681900067536575176462479614658793717877511547271228172659686738543168338804678460270777702926615521357210580883654058249219705250648397404497987057608854580936085885058496640439577269322890221349219138532455791295852535017623445008560996222948738120250359431896135123306984957354618960043339528654528862752183691404060547243177821519183282664783476566865029842966869624986790941645116793586421989078360388634593261531963417060213145586128522198291650582447881439123139667709721320055645170052559171369231503937787531976311635279393815741708796067647248905453295466444461504800928719715954133944991602894206936618461754517858391707153774517662083291668501903358857521820494657527190362866146125888113574803601679329667945482631280561912392752449512166241185781991421492328914261406872250271945926680594293628028144163931306084417090983294215641686178148241662549323034605068700630419794821417608513870748614050197036906279276513242288246613691413724504522514043944842346912926266802716407114101775572309276251013643997628497928454756848985163731391897053197986842342067245462299450304103762153292250333397337504720249072612994889891368670918937808549520897153763675737998696803467614944349408782965202236375040507284832536651336127804453490759092914752924914066510147932217780811097270318950465851378638375247038926711532952861765725940063039445840127941022787129773163013941425231595084272453742036362529956109187906261171099556114990174611622153231018426996544531830566349596754070977054665634826438286992955416612375192972906334914953924509621014997594525010782281226468285409312200254672232397804346365641731280948576756405514471790628616992302243689574987371951067888710301050952292166020682756731320857180034489402911275364343232003707955471184885562174152622698801975551119064835397215010631410237934319589612130370317939504974733298289188610856685506026186340327575950638705153889772857860745434904766452801305101334276516338194428014048791415348212301574413023782475872755536647813182245793362366544178684920221597937799725253326771942318233037752817710020715840360859168955596012472026872584335464001244633411521239675505296835621516280735507944987143184726492397165431736175494942118494329458068169252235430457610496008801262082720943341651172029659210742195946545346327759325267397553890907907354419593603680683465013372049468852350171530208786092382846204671868183226131411118121123983599801526613075238500111769129566563285714918734014910492450364562413742720211675991561566964738135762083586180010430692364746497165661637635162270423403705661794834319232038188511659108199495223191335062372874288905120328226754287110043551929487758340570323374457346887111370450896273801589624317506695103263131209905551114030056604331577536206855929142969791182079833508995322289213123028016450193976430493100251869382213237311221044929551374401778572590520521200906288633206949198784347410685968493853158975313965060137129461582233155329404417880004088873039914362963089561987093656670334849874228317679279200566234279892629610775036571434553022188682755589916141860266387569565330516313517457836535120872877257284984107885901192619785526165565470141256615998303741238513207076642822193883197218683710701523593832651230480117958575031322833043451047576652793831648280493096538445932330538442970101594595709818748744874781100412654732446540602550535317912275180737298094476848465185599573241146201894236883078189874760132106120074051826959936840153840634775890780849984246175366073282267973093928669333370304344099425566506038843470958132149263674538627047815410936025102539018962395451233506063294807090321184551390428921749210655130001269467242266740832942601293652807409903096260061814639647170884095340347013401335605575117685979654430162712300049340612310853071997339120650162168603934585584709537725773454771589531347622288256186365518274422621899534248403609035922732456369004599812830351601260283521156180464834688308962972367280266308295205742517561600699099593268983166997819658931615258369534259388219093630692729153357690667755682844066534952440806082316441708990187861939101542269071045439815858683592689284716626182834817592476733360479905072319578729592984245511255846380710286821454333176832435334524222247631499552308535267152070375778243851953229830558975042266109023762459651181573862200426637386506658512503184050842988006940373610117290442875457743813652002853328241093001485460622133381147710001720740433399189347313475437289299760063575287284397936747887273381107217940924096689598235541851849906768354765112353076100292255416878562479505163271122262592105928814286651176688731617525089309036134833466277216842009451209289008262167143894409935315745264099773715520793704940297004001339303103336071248042042036111215674436694389043881080312709915873779864878595722113817817516499462503084175386913384306307738041134765478863854299720102600001039297791039663840231859906142582306064090041487152327448514189731007364174989427596552433092107838188810123597252427376720321326777735985637323699799239991067444921642436018648406911542553451119676288919886714924009953906059294582636067590462638231872571530524214687113595586559685789095801752140215625499310204119231180567547836861751130130361639713384646247817485333378016871802979976898270950045225530616817889092994791733166537898891845707955649068621902711890796849163308895035754935728066518369825800656286699959216082317957141797966415484711143726296423057919393974263483656828162880340741780661913058296680277767770314505614841144039442936998533691184975421166936396087403152247812760460284914586292844717303235152796164171527983676788319837892908093789416876544528366049524899080171443109204015966299742701737648166878615562803202449057706963456891210404948076661473600770520752977639451509863172530239883750362261817440785863028832230352466401609096375218431931880360163615648199403829387584958716644400221452663521768473133268869672424355307273412019903573115219155551299147292813300179260087082805896929621685131073122265194994232408949173630820728248188480131145286066469590456368494424675748051286911062303767155593990872374450863601968611999923960387069047084774939562440685006202297045653569357485065747136216160756713702684884141344351778506518460881036689108653307009759570979471938325005799625280188752127275916122519429958306498207260680215270440000297757404133228894795175328497071429790867906992811037296436551798616425830692132616164672533011773810126390079602297238459036276799856258320040522284685661138682137562439583290234548007619076762348821960617631129343989110790830874662948373850436424784211324534513050565152515324372644903216450798232211849217707893530856189485181647324685419420346631694092679013739593100239828035532265554869694975066571042476348965609523234976129464931583363496775969507052254268866754126599465261158836865610440335146357842903442649626748385357755596276010639234286561222880587079299449855500451255711036295735184986253771370870464697921835619527053964756671347195377012308585773765745631750653913741857521848769437140653165771473380776637431034214138171457392384302384626809929584452554327220978512087192487564224749486808457342774842683278350786764763200308283916083526487728621989040348356988669154865486791969196498231728091401842764045934673142218449779781418970346865739950368538200900981896819923778042804132716358513567867697538351286048123996484709488063901788378406772569103547901703690155922861565261192392951962979704953094450040414949084589037478520064769666112954829317197217143049784609338198122202489529107514017082726939166670711921487278294915884117293326324178784926110304406149765155628942152439790709557225010810991653270849392538699658041705437150300752946938749216842235707516218940732586600304318219151434974543344699670119409822884215583746761750900034665794810709532109175608958536870518191412622604081046579397965640962610409575208009787981165600779819704105330428325625492451302052103075121844879269239085378330353617357177426434317299327352032967117686776132036634130946786006469800150022150579527874829166495909986675657288160306203760883136286732974106143652373906589971972973474119227534744027328321623466132885343993880782422092134577930842822368087748350336617392171027302464715689122244426297103613024387399265881268711183526770428508396308354585171120503961038701878565026361649705593207842878781223677047220595516182934534741312972321273391665549607703755244705841291196673621839535923880627671516819995582900929462064916051439798763303445140510579231158724254450727809624404752379141467172743267850007488806378335518940015277536517709866762426583022219054876869273593785222195906842529683379974548998926708644951815243710194799558842352350757592566046504735982740715180440821468093219358084355583360646818572654884764498202756861266375090214862439781634024431754796746218224385796537587889045053244049478219310172231638271787850240065109981706611819609137313493772275417704467044138888385884616030230614726425447166995738509128639345860898083607788617450092737029700290201369448139871446963707611600687033905525538335393152936786339002776372257180444626658183319486806619264014952724579678549470006814512683057061900146863765290422845985872697236027811650808198764985826829666834142429575589551676651820068941139174994949649713182714984570024650802953245726735059250843066748283282203982330158110207919285339112285168113490510262738300907480582873363360643510837211344970671943610987423897232028126970487959339951480179614572533649448694264506505834823839286498096684310795266998633072414537374643555672400682167596946110091940585390261786379739072865359351999717873682069308363906581863626171385240980303237072898403356268259739720369448055204914728859753711313928209190494435806292267586630816637246028723573581428159135339041762909095787525868534385630769177476372240115668785231491825744136711956743690888668622844153767005739070174655422557479511693962789700326745440887953655455525431496297930872457519087160122977654952662294320640690328010428660113655267363950717642775958208678328769519023075243818293523537799015558677142043537716669369742507629810485411048824653318533394798523734158612342024262590280202679596719604903292051992883259917939261656695098229450201756274942575990952769208324561533327884093024068116851271410365881629124612711548359830007867646557008661595544931985578620010961138621156798176493418491021113860833916466238307452209140594631339162928700658919527510920775631295596720289122830836396469015551789727194303235591380237549432814418975021778307151703318254397082200581958732721452984406680507702797250262278006183082719928943269560712496575130810643456897805312496537964077731859365142611542407560252967769486752892962073464570900657209747711277361875550925648867839464793225436209363760036899412340651398788031417785173454279194456123396619332651762848795069224934217017736882300306745853975805477182859593790112005529795205122797457640553876249250210377817655571253114836462707884268454570857583836167649867914602328118288055810052096710063075751500623255631740254951022602681407880944747666934613067942470476920805454259678941243532358204507278505583420119205520114507543626841331307095419452212198113378889549674010534577280234706986931993183043348042225472057649912765443904612363940271768636847540963142752478691915378572879580448282005744161182050536412496235803944042086978631978220602521073616087333879902266019426749739020478837233282340545458835876739383879374179458370774286458422971966137500218936236459173047016332262779720216261888419601996895255456929517181007703071232811930321616879859650016554219500106678801678236147242582802648718148853678424416174270668932631006782317676279818545186962518826470529584225879883546541352900434805086609482048986046901463896709619607426676265459884996293388495758955398670132490570526093120668697542114546186844604805105215345372804082796272444324455152589527254219322619328805589541779885201591592194879841484348112960811237390607691533664818003038682518324722255785296438759686919381837768604578701237771703776703922611001511996139731141925613528709247725917569860207901784081042315060033939930324891624098444072519049787251763049181223481415859532626786674010931306172776889514236895223285436338343646144902498261618077750901449725432919465313302479967357913778134244048284422837418624602997186262926972284142517041179327414412326116268634760819632572295134579177801942573075378544582617751734155311618735026195732133932970311520639533415310519985111110277138006408158435789733914634814707588430032202065894674898643173384143592078305731234101022402471143096570518532396359403507141707271733736839880896397706055789096255441444370499652834176505114536757792720324757283578148060375933478058946501194169034680952783993662198153033654444296999154516156958531546884005358810949148478678687370479881393070731464523661822115533578997084968731296375781373394032459582343068771556899609028121216460600780627343649567170646051685684431010783849603563674651071932878530892577834994839345590590504638761128754011348452019025418937750281425159871462782101603955055936308405235608872125134369652292788638667677212287055198752659919507119725980084338503258899540049153453504984786153026332168840710337388059145751187676012741658868089967115134056597896875608317013177962190569728727777406354264931510293057550957523823614486101556959004846946149425493643279876748538864354886015317002890169830978832871176832641632291514650445143653494915371414708307918342375351581762766082729152971118759357998437480464233526343771623634378117663123944328022391483574956140960510070008574087008933621176347947869182425887055060092502765220418864500679470572474969372853431834044236473578977165074320556684765162452383838054369571009386757508324640455542999122266297143180223010227022470982923161517017373576791661601963375347471782439477431930994053422170707426927876930863698854909127815317501125300632868940191752731038253270697935694830892774802846838488509069744392630903139319992247889797611441677778018724445146776591668889160565923730457161576115897635142322389996930049214643809598827686244689424511455308825999220737848130425139816808278596727104923550565457488910185849639800438217175255637766677632010600722849567090333812549476671915280870000183659503399183330912646954334244585326368028889377795241948501124212127359742101465527395635122754293420146474948911669523339816839353099849089809756751719070906704572880582637213499586514044616549917952785826578722179874588422734263700025914686452824533207875630835279080515898215764426921971677988873936825794779170615304309227658273414892532847644103487948223727854814194708437565088111437829923359487651617748305604395759531014342000584096325518026956280314007463837040960492308081093839727149354910014017931814617905258972844633559585891014207873692689487707308079159071856897056999005064278065841841923107390287088504316363747422113828853563328785705311213449671382548441692369048314209009813720407904531270858385868106022714989213768840111127238162325323296376794934684853436974928017709259502336788453627961812326378697083667392465884244247802367403393056195084216963806604465797309373141696902963447723290183698879968182214063836214414271736899583537054578011604418545700268228720713902210852382305985759237143511388443388992573306839493553225830268539355900803367793332773826845392657080771366002617816343145043857997751193886702047463524867616904111021436074349463198689029678372438578104340860920624822719246982894113961428441620937216222536325977051725441445202885080247254862961438324943541958784660600371232270947153000463523974064014232374491885730819483906120095875846575699635076631252015829347859147647446068886540918619267144111168391034116121425418421275454535000629191590647627071440297475916630309422808232337736116822446420705999029797835855498666930245681978304952173035881776460440984612167952051300366244055130270889354336906847901780751914509306263360041936961207991355477614674382233761083770888041129466959586792490134188680119479295390238478272481251757055100138770756308885310454864093250933429895556007423031930456257858362626400216625043154425560327495380238333597065697665488444873529184538626061720338184682152470622052326493781838516202820038894023269835909460592166721981645859902956093022043743512258531550460429127045649915077608176879250913252611834016954063941210367239280334041751059513207453680579937693222768149535311916590259238047249221568051240119972579953763180373003865756342190985187367183296540189870071655833086479042645745744782165808995683814241292015000805748955233060630749651661142967814216612779186352435950356536654478088410837839641765298932748468447977140121534207327761262008925746315874295426186716399753228897984718235875889259190105624963234462647075650575430895749512694525753897157240741307857282799323262246096955400283255330244283473162364255547620943991097538010184624462721412521093603410882240677839432064199071576677530965059124943333709733859566854631453114655275454386212012929702421515095716085291349195998779927362221653072665675488772195962203773289344064914252290801147839734970366601886391155675225432471224388554158420724967201218037996524851449374067930452447652239289376128370163613355295994672890413706337209262883880641360190321816108414140355132359895705952113229374457869873447235789174842287371995550279944236179373934214147089581731464236945485232199904220646530123351815086453091294957854490747880519921446281967478392462634887477365918859419517065487662591075801169547241117154394253973291148057350238593631828436072345433092912005135599102370482436168391650035690762796669891314803006631132858650712862898126103017680120298877814932418819698573892532222315945840873720246261790099460779451749665800648872012348579076947908385361500412888298391366194762783171280886376686814652978825553890991255612504899454234179242865634217990225520920375420396162973485086504658375654650414240663594715369284469914167581976599587674258460727610339869922829687668583154587429110201681272171391903467350220001349804666227609057760158169042938803651731186574501813153575895036576876046459852558198983986609294100143351039116665144900969075014968532535970010134886995523804621374616626983505024952997865732436198638569515676353922343957269247566923674638409902674104873882498891185592338748535611583938971067722475337816798655449226222182311275331212674117368467655906823562247084745273539857589336557509413260484328805149817667327779688743335842951198686875763809459240656236447663029304210177577882293155769050346696815397981748158173452619536344945526772958830498676945019048514268444559070926454050260368637627067528084668857157431175665043028968181699450465282426636607720919464275799046447268244145606432893576768945494254824994856312512586185761490732681988094544773284998057477635635634701972591075662787449901624523978366156444856985734012026408046298631943720537032248610311379100956722699813975815891431083239572397072917058178123244028968041154383417857440136227950870983763918174192604248100102658000762481882828763943641815460676194404099721532263809940912423486000716964546688114187108296439808467634907713758947645314235141080631506145382815470720464097685072496636255622794646945441939094707462374646720941107812139175854771938479639004950919996049340128572269154366768332581905022152719879192485128693355087434822708837522656881075650449768496062195201250897477182934515421563380174186074920489396876022123332592767462138372498669805760934288908700009725686539808152825037087399790149549919968796386842211256593973068482836070396637416886562077933303623970668129743227043655397532864593144163131240284601437480077356367791425332628362079914668425075389726089565644609933237108751794729478311305291577719761239335539496622731617428166098839471092029697098951155328605172173443373483118660577959362101568243385503897733680060388933934361634471225563247789175101714849477167150197995778891809244813083362168983660202944572399011939638616335544044477299984424751723493592145219912596737788392172065255748470417972548898552486756165006705151441743218663447435073712051923280835387701307483557890869637135641318238665135586855771315528850439457729489806085015086042702065794759099214325121453709331391038240705734345513924138852000354038233736439585415169721037586596477181126689134186443515371763928338852553712372569819257472008964602542161856010362366750568904019927678140807365603344186288776229571607552039761311390771672312019035435126427103801700803060228721799131988913443336862389159785733060919350235625384195800395510599073533440033913148379083338495559783777612975369207065202780792333801270597072156623031478669465904339148947500639724171139956794241410373131461137765244721476129767769682714844580206074613623154591747516291954532175306670911280642898607568152531104591045251111318350754289008761564204903565573387524111714403165383975620127875079290638977015696897363480497658521061843749181843109682281736147194068326056908087951242718936645606287832129238344362863111772696987561231274739842920199732250854235871886596047615116902463253307325543605189372722767882287341106454353882235831028645610216737884746018012619468917458320487722719663908281447110768105666973725658626537430263699377306398915881430136991086785851236354208896959762623173941642332608301685516600864520891433137476776948549900127137129262111500332740460124502079452809110869041868802102187089319351440300201712559516698808168361517847038886870187754632540525357476526284655769878414012448523358656926923975230259313222180741869194438536607096604736158732239324385972390438062833541903881993201304178095172404989346500171388389921818532708242514111388509676813813357386618511316780042122009061319385491676873866138477347234406489803868316873386734909192378104638276544731336501474381075060756225736458364675586035203394019585690527913009973606651439650692891522992283770195902259635052070235886370030455893674575622518046002347369761012161713888655036610385256984342415317594260542860367091534319222921585844342795017524699233155328356566072087349847936157068317214234481563179912374258751148498386721962266986753225121906324744291423570429172323385182259692021591270093167291390775516310564455486609493496751996730084012262395827472191673130171394596950433038810960944975833033157421845781630906023427926606467135881217479434729016307532379904146641143035156728018792196794658781939800383470582977542552985434786070369245586528678240972113847128105396498597258096990340997767960103253285536240285316216880438725152516018600549359981205601294353471469148790586658225620091988442131597926211266294749354305411757826585957383139760936779634948448924435346752282850097936715015917489441687797524734935300752892212092184963491966753757391770887123739980933244409488602719462386608862005309187022268372571550109015459361777457923377478829938689340006650325709268516992685376942364824655335782481991821412582069934408539958928815041230421312377419699952157579107119467559349960171370218096971147561603158577357684757299407261311207486307283873650528222993796508452005406555160914493202595756586200053626191711979908659225012308859389741962856584296317550832350088832040403501806697261287347346859867400048169633917995207578735882842746345745011665176020240107910206849451189178346935544461035226429379731723896417719059035582431900896933395757132833712801904739725169001963537518499988233723497864782851883206136745942055004423804482563031643483786897163106213586748753721773710875278028157598353178198708473694173005639666089165670100928689711914180386066125049492225190654999997982859093872335815392714915999355028253586303496877008663500598012150200157608366383340860668017732372456320104189477636699744526272004414069367755331691871086168243663719693697808862306869664789357658704546188468081350291295130927545790317293346832388682812499356468169865943370667870526097886553770908710506932350686900709299926073829383115692844104592985016516844738790780118387731140229951923253311313685378734759018941032384041758876523391994540676563847545226266911715749622594514163767782385471539163075336805429060281833746141798564040107403714343978786966391831038718336102113414215197803624775021074543466912519297764738027523535533231981486393894462412589360166778561065448161637105852254428424780641641167280350639580157691436548731301833672147340333588037972603640414599830925498722743068843390010169149776905583981009725782915566258024060826380741246965347700151109295168029290826914652258729386263795190657093425364674114377340405043013694668357789184303175740914699422809207238794710027449927785239272192500824067692488099784248055527105088326706656114962388066523118966557033449468718767862514186437806337345393959621162770744881117282693052636755204968509377509179130465328219604538182788654701465026622956577572840476183833223390113700494599263530465321574575337194388105652789518217975228502306258713539538679227315839020712853037390742714227184674328877855308218956977765708990225396778596190765515129581384324955262750774099447907323960338449081179645292205590634798272312548774936050396013040505887748552866803631061223932058461556259446581929602023918936804047505412504533995062204960100050908687459008404294704300968020916845321192578165185895927135675690235886094342156215955049430633773862325559939846224068122478680616497211808448765789507704823904451437907833585440131585253188086070621459674803417785433425808782983591807873832933839356148642243518465890531065817174603168221526208103229997475950105188192024102491410076275204804368044168764459980342932921812667986703573136739836224989847460385249622732578060378987989947810789608752017186961870763437490663151585432278324368599919641733746642442384939736489784020313371013096920763999728557299469904216424981359774466011879868812837131465550246715929078777234574570056725244124794518749440419621638896493625756039748761045434507384276106054425714508800362313533258149583142325046094961414377085704594629351821354722471662042361932240523111876480307163869578375906920213924835462163884703985699115263546414107829579757559489992863006324365065936524465542234908960406419965022637418019333091984752401748410599827047487487470028348897962196637741621464461457532021215079430713770066593197326085007213266610788550711262341869596540355804125104562736673550452977493540582009003607732342382741922915629382937393787764187273506560484896177755286276232545966253803619076592827431466152511145323864959157012597351867329952820816386421447660575973684879542250591649422996110530892278088489762171772573244458743287211135748236011638227101479201107005273212965421781524572002434271153921882840125794988942610222337344792585605225140503054550642243912481988818207024802117923545467082673413532993547137867644897219121834107662567650482689246027072373123099802495638856344865783559611482080445164279863339815389841384437458552006901549106738736581660876070926971950692207142044359475907239668482027121807398600343798242137248935832062928563695423626454281281772402484721414587818893355921987671022403542848465591781250391527316802977382643392226586711829133100531739770818771800315862835738607058768385311360177504756292885860129967963061837278852634638757592574637153127871341468520699195772541063880049319195204272059053251867675685984559578650523342107800878070876450302265854220552069968071370025776790274470611330517963947546393978003744799507327391726827643637276874850115361013126336198538529789701882021899479099558786967958681336044489718071971263592061936774262611980864164025104682052736322430712170076435260203957569710905999156464099947913726666250912585530368045265615213802089305225535892504331010270814445061788636670250930093066119594194412688852547022513965232224905685289756300944132766389333603131013995650197396754286658720969676085859128081197649176974099782928849442711724802227850326563071304262686478787062262895193161888733891734707932774293817406986264818519601163354664863570622847653097911345269544353131387796140142798401590825640504318051985895889891825105288039270570920408437832515448089014823621889470167125421248296275662286515164265833371108381732341889056465622879636759104730557045493242422548814554621095095062832385133916354379788402360424232050885649129474029556990531511721039590296717499293540320941519681482552931934211733977319138217337835899677061173972076720008690741922631836130002961524954200823989695742764888851935892268877634390244117241994848251450333984989332391128735345286131659021764604056489126515225098534083296657385380061581042303526399274141745044513635549528354135362692329637104888762968016109653116249047492139129049640867009925496068137806489007397180421579300170409581639762990456666948098903861676572737366982448455703341374173353153988196647273816146571069688752502808845694634344035953102884931751676693686166127881454588601229446062630719472764476328547188277681095357162414680421779291754406986266393312496941306754706349570424702318244068815805988636297350705794777072284820988370245937925256153866389277199062604278685588707521375573104830379459320684829533513304506388589893481567333441617898632531857659049155248717805528809186116947689313209441347764269449449957009980827891405169606697664311966148445626571821278676226489328732706052383341336347247411012925323395985615641937392568658978434823377379185051389106085817502199371822513785732781923836645274149897188114098445043263611053145777836558341505241548485910934881679384871069139483612439410449744800723135602456878819308964233593545051655205328350884170141063800254545384871849146064545314118034924775975947951503962784445749765888282783384105909288673516217174705783838961078328251069841972882087056545331082793300690522444760933276684432793386878038210472897152009046621582352974174988919109709353649821690826369351607524607025375422996956164085380929846571042066570167051407919476559765873697133276035504919722712535415704143390278892617914676893683549922419357923644086888841575888778534448346416988939971646376539204914505730736881020547734804299875901995383433315370636626292253399085750068623391649578079696686523753953300836762348442727695005942327336825496812321008466071867787843891956143387705306916515998973328506871164252417662775039490842663117862946258351574098682716044850856723008254781621715660151482159946387878079484946845621677336026416570810068752248954037378516306701193304709809435360680287861581902662272038184901895930469378740238744468827608101789200789069018565245474472027525448864265351929978531474124830869343809390516488848856110885636663923938162509830870909153346028488984745957990203303481704658145170392192125544643545576525422647559209733547581019655726581952105194204722669526739142934380524262487765887445257497493715845507589104585026018639702378542722109634455770234817937994437974481065522742171005933132610375517808123949396236880535355887629743057561411383982585291899024188452224092418008478920016123669011461471291955799964977873031584033336480315262762240824524990655653517024862885170992349475730479796937556292148931764366596612468172701536484306267970102899450757388233348034891224076332987246460010383435989765738140365436345703611334129444053199500364262403885920011953926654204268935883201816920479489948378941816716849454759221934231491685403136083971869154747149431436799960052738250365878226896604465552497807704601488341827327522455177435787674181012342444918966576868089038857027615441223936823730435348851891277589445439641899414042383415245588823328292745282120742899399303291121254810939713827673964625898073350123092430787207308820293065676690671653893840960058564538311816622343326354572679728536392623533885230873443180135634765179840005545183804351201277737283262915056531466671787111010049521079164723749424956360335980903255041208157758420637021429835556835113252482061948953651496942410610822603322683149124377135503990899828691012257850769180967180871952000723920212132151854564796942473881271188148085360435451697366015610342834096113922900435577350140245253470309869853505336383530779712351334206841543962780276980943342523154809775615215124013832354447730035835886434439809698291504185331161762701849769430325753502551900442287045772835796847542452793766251282037835140374305324985852628973799321031792958723019057240247351546515078362738792910343853737033888945649417344889402522433944960213310669857926490530331619007426974950731408896234375440825996834695500983439480146448004663184642862493615283916217627658562101936935955224507445020940205999548285205538833482953365671013939308573208352664907465977249705612420137094758497170998694017992816028495616497930373228879685244559149851949909404264598173303069068759413206725895872582696124652806376571070352220410428746625986838975663723716018477796481624025765527708052345536181202622919448627001955117856850011429740109183406775402054743220485906339486927416814310537312600309027243455807951972846502880445185362938950602162883650258498207195094159208538383258438986946351284772091367753979756399343198837498343103826741361227292255185092182195001448785714331444553028152053455686437762876293717953152732426895460279623977624379712275916546783990154896368188829879509944109181228838595942483656852159581689016102848327636192322563269234419001648492503138693653460784085386506709825322563697677417401338355449751774987128959352572945040476655940319802818901251681554084652924938255577192877544816684877341095335975321828317814168546871378428530253560105663719704914210342378579724039969941964499403227146379135906164627303388497627788577113362445019851677336309567575470301255891398405805276209423837310786812650838124573725805652154330122211239908731717185839689626004258330387585829254873412460178356958480094309374447080547574287499846669782073800787165893116382987365916352364767452217107780128613746667181367915744089536323370692639171693911135615123792366117849430312118061655842488467904914868853190659164500328020369034730530347173255043818226677214292283406489902763604900184016383740769607560587294010850437078265355437834567332514699092635118316224846308845280296722548039621214950638719656059137894257027290727047907897129722556914836977243257654159749602999933122236920218031655975487819057494643270447094591819147070627403101303583254091572542299074077181637494327925298907968272390158555153330925966089941211080248281485206681094263429587410315634593745606247878010017705318528902362422904191086671583549584320695471888109277500678170124385841907791511150926522959333079220961545795079779967924502026425267677782151057512185979091199708978954048654780028316170308907526516106226606000050839334769568387619586591688478313299831213202007481989033940711450054947840375843104217142826149199934334478323836846750493301245380948317973609768339415538315152243879073380830708763407963192986200212058797032082202716983968059203061936853018073918320423731237223117272674632721710419686113936525130522545732210273209143346601297945107951989946881724549178737610810468737608117937412750477192256797480594531561670090208911416298756046720037036896815104518256577764229996504515262170922488967032689770371112298816891102258792805302457015554701479239151252168792482695959795410720399985951375395297982586036983301987775676363691077753126666166842575941083491158728962811938569250973141492307308213716815505442963344119769745187977518721263059054462097536534155349504491312338645785007090865389070651500152738574828232846933319598050427888591193494105633626504666719671422025373894590050684525805571496361951833369387219251238941282823675839843422109297910270671866263395235396724631564350808108539219979236571918845342796195121310046690955683524799778550483146709421499367054067731612528813950346024958753816517627168320186976399272140111613855411025779332495285140237084233577377267055293843343747534679253596543001084159449170188458929071624887658268891804725353707614042092366169240843908759993278112180146362931255917300855257720095850739656116396636316226058100856067178839879300447853408166993134280279146546925834596008685180338273508568278373128347863969784883031387882278996755767044703616934462396700029998822072348901341136772513906989763381880179524169491974874406555424286356249965774620709992349152949947215455124818845548505717798211076419307418456677473051206874266032831776847667392119002094808032562869113392779655641888742244537343838915314072784777172472922785534383291230296331966250559873119419625204308326976038461866113685185944515295222084355372613674288646668483493284878712755071880239402602627734705986391527830807867241339937894752582283332182532221959083404289643229861362640117265532298860996993121789456734829151682290168098362899226446699489386158764742538725081891236477005247842811852518594186000038998038252848064695464563355861015108155029717648182032460826082395794368651526019261233867113681931847803544712274965951494959951287604040950656478292989812016929035252371412389529801385177384362639129751169924687298629975197932574649456843119348875632628079295192264951803433627489955014605297684656550554384370928880005753282298524881407833744452472107566315398992469275406544035924115604942563361792342969746222707064978218323182395907225531104937450097957729180834345854143457947072745297423859641004599406188545396117374600929160923116644921072736162136205779467027464080486007190519202557695152559726764509238109231115562725081871419583470024055269074991520792369449272899428194420136805560842747147124467634789611563071194914477349892877755408976116166455759034365273791400031935753196617241740704054971570123858447805600216240132184636816942391754084022062968507355849511220647963511587776038387960652297265967858081377248848586412000660784957305867286103380878374086594938725173567072864888517428506736778588668403860715799653191916943853585353585870182116973132838456838880211276678502743329781378274201565794404562162475189303374471638748439182382157370511111177038145909815791748370538969628582458846850404233477278027627618722118642485864004316556569626691510084165153496445780015002095431067794897950117967669354765135524221404060499166948339601587189492621420584252222093742431803538723332607471833784926356944853127086150454695849128534962447032493824665501056097694060460055689923650020551169779060441936324549577238494338148399413050440731979043268756993703925960202255851092834828213255862004146494403858695967411304220079359315654747349220824179991454415694178784778581438998561507325138656668270786857251973896785047066058885350519024215758104126144065418675202062637862811176506234405958158587246274072423916955769714262616898783896416761633461591261171077468630502103210606335062364776044179676354401500249728911258095727138646950732395667218955824282436136798181961720213515818706899621884932124311765216640141035501294995517729494428090445964339632864287335474030994899364632869731675059733408090568581750128349558733397536967986145374414765982900896872404955340900087845486752044385159146147933562281554271665466314296503065260830642343327519472785844304507554118181809658219784585072189332095764637326454131512877949684771164980498432058764305145137219504672174730796166161800445206130235605256068110782649892979695552066397536312220588686047278091869920449245336021156308736729523634145604399729647200937951459612925020320771638121939912825061988277424245477793578664141489148207622684946466440933436161102822737401839464027014666962488420913658184643386194560954062256405838842707745655023087065465262852235175476000456111756446651702668733471695229312468696464787305431174360831393924486109419073688981846267964394419530614087557632239443078015779619624332291174555852707867809450277605166467033889212385689054901751942377626886305998062252456751429414271864295404947089106061076391272097655344765058855935717288124268011797892139258352435353275887215645096041438717009364773948784194064851429261256401004828817588506736634229183466037143229046168911321140723994665832161825653309128478374141388099970392129879573286953026962750599409404571103765577601974601807509531270641059061220573361416535055254103924242162588190442566942887702570327164553842528279437433030045494263379749404704222405299637664740316571644591262169560779510737627531575184736523251179131798193185050392261656010972327978046476198757370731508611207271216986273919217405973183055488133578862660644102900460428617216890718152653817777501575731162353869802537293436443685209572672465988984431284322055400562654608625646855853203982804149457336085172381824223627882808767701852261003887264744609819372905972367980241559264971252352252490599837269939110019945168875016059648750899988943940738747474570059706415299235339870125002673613808998374810881789328653377246766047976716968812916048739507840035851513224115444613112613481039718653108695965503336548300411268543602114060583502315670819469848496758340526160604181109049193810578285294141315025898942236555097951998749012085285889563885146128631523389055072572186754608414191779420366916013734886675931786492623928882761422019221318396716638131874105909197115760361641265917352247217943802206685054416409521145067421040626909959745814041511463646163655531538817099063276380377260100984421366306885604448896227543652282596743940589078416090989434148945340449036955338619161559207064828410304251368988592306845536120803074779486522746979782433533161547525261457573350492364527579684928427792199685940605640876016724668326913769109860509888766722159514386044951331271031420672068824773902662901625930672016722088773542938334436644746739429212782152043185386510526694962659865935454610247505869993471193729810057003550791644914850047443500054300409723619606032219886812554257769025584609503700822695935319789786904801354367254917690126220101645742900416349325887154548086825109691521906499541512062006214106757254144632748857103313394699514680436889422583925663950709760076505894011731432159988778282400146290997112431755137167927290417021634171379894125021367004661971707845619370069534198604761986879259150351233969113850542958902032088147804435111328240138900518939323250553807708862819324961481382397389565664590550926475072869540470714659861332341358356967967353463935374617369794977725441966150985872581006714262999750057326355332462393225816602421621813845039707691942276998089094207942783516912910835970612949451887521910701284376475973031589435593897504803981907832261764251898720990981617349717164427127248011626595652388181673663135158478641523339474178353824071997961910982828362010213159042888987264184138742920512908123040257349841136822909954720062555573854095127670730060126251979047338990577072452886412884450884424541776979035975498437669595143657370641503331806810566549088729391303338372087201089239614001386343283731748316134814640881386451296821104892941565811948529235945939635632730846390405203063489903321087862173160714868167784951891510229271937656259936795067401248455204250318359086947262791990826369304834221013469606832161114471914894221841739714260706657479686954789434401171596160551824083076240554353197555329369039896474772762378267788463057069091837991342326047663539051002883656552529693344425671489884197733424601879475089284225356761036961133902001474004411431298202950905494859061586820774186761391251308281377176457941274219524178971015904618467699335877163834862729522587679437116677083332624153676105315914029786772159221617044643726952711716702750164945660091121909230178669438296962923483600002835644675381221726431774584451922196272909886793191722128342640642425091497051690312178446727092677691008996907203705182376462637272060713567315632218927526884244516458535637043290314494505936554581476015062467200807663196884196540644404968259126992371309559577153664508520742567392718307330691167833178178295278748164052287044907694074175859680366130232066640315474267158030659183023839812635097020025361797571931797500814545602198347616324366342284467311795468416373908931490939535744690369781740054196111288354020135593239730142734816247517703801796195968056602298389511378911749521834975588766667888279808095514548504909859908321756163618382512359131924404465191262242028110836794049601685389084112190979217519251775524730684310294201535542261566175675704463944268316871346083951139880265261886367191703303533641656745817398576866931271879383061057049656354594446333508684631141274112973643472055137012882338052562894781032019390927494452763607013375333585328833541151353098920219995237771148887543356120326380556343181503039283794455211510487679038915198364503206479373990267243183953918058570085693218166369581973075441085483571774100744840757240947503876121117106277172680214980221813368419967768606452734867844705666529504917633935062116817870836283253851981544483936056601512627716340171074207403663952595055105432430127836924174186792356805302954249065435742728720455072899920886090804947548225593380236437115248957938722453351702731285565545891035450278923967795489173093570171218774182904390684821426840915073943277398606600352323936940416203277514543290812721699055791811294850284750481447882293240849773127304805361481859457675106188301351473192426550279878776571037802287536167443022075392958556031798117684186439137659698132387715095168969390943174879585625245756954621827808777256879144742426310845623128445359749412538458525198457764028814280244562381105203592887606249492932471792722460333341909030838438470606876262825954131145703753504557727157066053018665785360546806475083099189435943273598206289386453889978418594159221282207846145538860433603125003958993019167404859733216769984433998841616056202984106484691660949252388620307850067994032963635709310211191179035112245361341990292875771975867480832705817434112098607931570476155661275236056359277500256947239113521082687780795933482933658122997400666508423148790854730860413074794318114958855687579117124947681670373854578294163172904266782042417054916000911045489314743414573425155025455147741563012671738248558060853656321121221686181737700960501434595720752097256186241713328530241055359883631127510999689441593926885682522914722209115065921415525136036022917168531639263764965963703159357716217814762413886413231663987733507831324748321664045384136180931290144214225999484492520484541300633360156777874186497441698717043639753368703430815835952224867063477343098955702584961568635174190670205638571257633231395032155478669550454743147010033522866901484854685730384788661363069524201528375375505101106110508581813525108120237211181905195158881692438025092002186683957095756357017481160295542320258305908692976103363931857645297287517771181208164605011259775020232030766315023656663557808526190033613346200517413209933985939383702070885856846294500466072342408910375191729100537303645760748798290672394559731366763419067078354685480864357334898759346285264301676731675484057299996724350118749048506216641778160822013473952329140605006499930433084054517586095979715467932344260169210129145254325763110367109969497639036051758434991610309855758478533559620530724387525558552230737353449583609098414828862177688118390607789720002067400982312998756457078664338375196053514165218127841814771770083249277991299750323839101903372211509323610247636846862492886844687124490811747933820285205184639037966662887246337257716742897552217935236189981869164997487051203155855013033510028988683570566722819120685485577979005703220341117917944598225708631403049754853549046930436367698821539148521300091132971366711214497859452632550298589157558561672058774855191182864621280271503120891258994155002212456136610822107510573063213448101227283697794096756199384343981558948799488006351318617935626919653156047123790228783145976110574254207578750915618533975934587713204706575055290315760248493682291682687873584090204258878819998091189101400985558321764968568010722966283408618579938474599228167515879160479142485186363164377274714511190217680134910245506093638156816683941778239788680143087471738588667197538169938927530842464199033842541936425969170473054647102646077410748855851573544224989141095839742839539208141605659764351683279118507627330973740667411669727764124372335951880070803657996218074110553416665573890115811916114782022118503554347696600639463123716516920783811599530590759929035675500961943367654095589904888873773343640105452430122270528300602076396443283744664120318278209954835064261356323163353294090599089404133680105922946683046255319631454024098785584655675805722866870257275347668979025020880851207994713396630189298498680490195434854412378762102065270008973093867119436790740455509851724655102619556344922527255417672493108964174046323967821257870830790715767753745965993165798776629490651303424521946756075472346663398490130648954691665018767854055083612983255645463309517894461625944206845861533453027055043398456511847473045301432037462397593586844208490900427148099515345183565955838902537539625405987104733463062524606121139471617541631313851439152293338325057088223363336389470840805874165147197213232768672119797905577660375712381187007901088985915396471485049678094873562788666575144988960949920745053738235790708834892722192748662149660015342236955868575785086171860221554830405437754463446865577838098212427889697980263006431882159760304826859366551725566712497145830750363863190507211865086531616721595766937708414809260650795859928376482160499514820096014855678184793915890699169759492900107148273449385502541454667585931652120426503871630558723477092417315913783618544081400675344341782689806788551947538607818525676022983446589406533482564684398679640522227666901882809841959897297599430936131763960090126208891997797702912065635510126662772937100391657933410795212591138350143328080538377637050099710933089661873763795885467360783021228329901331254056440334765380623295573020400483610345620285444282982178616950974432010096251200824096609956449471645228901412387845903888428107039469759766073238918537527158483655173347222892445395548936737507480872030767414562752422631438582785788391160188346546220178484758876658673566249951019029735054063533500096846834963657875367528403475053064889314182745101423664577311333959316177467007003534582177033084390597730350217984283152127679242056248057097770634491155377281986758101628826081930429196413972191329120347733607161905396322523880776152281408698854866597898171681115564595241025435041529789862573602989861970144443266893396443386394531124884069748149588957642464468084017166203050097447834740724876097237407241516197065132457929176583358736435469950686812205956226560658045550306749559689747764404741293614070069975186354570460253694735520297392767171642277290989872415274420534164156315164948090041270332307207748827082314168221234966233059891627439468701298570717483965557811969958167158777691078629132662568275503911281846735681381916796767106197707991686402314317997298684820229260132219484980547668648134941890254507490498738771360555716705976139657943780114301605216727673828056090781653638486481977942996631741709204385680892230581675570471080781606422754010736052485316091825486447844994538418645622349501485026646770164979254827720707347850975513564529239459633812944040190047540575443377696238324611221376471045073879843083613225265496234460646614546966320337166655730536754035408949374060120100296640078760467325838539285340272235334956489126706870010752220283359154693836846853499965919724893936969976613055270031885358019346721213139226380455628828499426793842922810587838471975657817576837125163468704158141894825159437820704795823316977566674536774074354209453416887354680571776876851916953024389638614605682548317503901627984746693024930388407287814918228569372094243687382618844710826773143819583065800866733025702108423580406975017697247426197342405127798122988553547539879381609934921095050933332387388457957782021942235533041687173248201794828379480373257913125465187548468971515522024825311531272250108371667786569851892161907076034065644317466180298657374262647975201826362509570191834267018792319469849860147391143993707294842883178887269430849948515531597654807298795051713332966868076788325565082685579490834297516428322551802708649285438610852306691941302686529903487399745761219498705154825673693110589686935185070678293964243486589710017788241068607431377509798919838419562929369701753858381331878789746954081815668000943752849809880506431848758337426525126848034027874191278250853608297987872542561116772950722954340868098634890093492599417623587392423537267780797624229834670212705294047946230154111342051161582892505671897921309178404216117810706034567869197797970899849420348466534666987533588841196260287251992056698204904603789996585478040561957102086695960152946826673325881571244368095126602489660199261746492946352124045153363331912712046710713536911142096374526038672059105619260077291564010397216617893983886274916800048776335944358342494268485096762210943703327831325593275113555727563676761395312477594671563470298580887376371885615898366217332027516675346339182004771814802755156287518462654233486293929529257799056654403528292922452120401467763976631283439244208129086462364896065677472398189843318839982156204033348664354564498448220032958353134639979119969916533050635422651579977460460400682484340100861980476300431712742656770842933294323611148556459923562568251500803541273825470400078354648632953116868060952277259476732677486192964527573800447171866234988031064266684306340474498084035301203780052293742038394370733470587017688852548018068587504635351600621999846489924035809572401825956099724564857187881160207241496205373741226210671569861601393285265320606097915546837579404420588275566010982826393684604499630938502764677679520947504218968753379853846129976634664405674154083355750118718892337745603676521471968566694389136300923178515660706294377807257433346752063918511263691050015860477721858459916529381193671539269597514867938352303879060284404601727163969841759679277334495680945554398501465841531542899027830145877463035164229666254330619956645692324832853887332777927422206639231647492647485618307974413203807795920909675987018827528354132099187915235088028418851840382958820606041872683163591189968078402673803489464407429105787753839897025904973585402294298832338639010134528174397715765735312795667411514440372327819321181701440143332881112345684759039589533279899795822563823796979618006970526837897002162509243114056404376479023205587171782499159873666185005803609195482275706137406947305636463735970648768366718567137542964846357890798234849266099552125252727516869291888726126033660531685962846192964626131240787760985099612173241223726719742942088192731968909175836260171924403660132437538932039096710470778617474507793727961616730387277931217366553259417087142938728880984799134678325309308983048090840130397699661813924759007439764712370219543476503912817615928668752731647055566465399202213901091513510522291299628130506234614611288851728778239357113249067409887804184241980628907811875185950593423066564595262058299873640366235873509436170913179309869669949439666391423359271106246904685813003053334690641426163638288971605959004263505960211955877396339342919449724665461162602052955402600289569815397261390816522129869992292376706530794304321249083957446264575887074033330414911745328679893568166223691115030216890066474002885991765335018943515774683492027311904570003725214049714421241749523587388058956893895246039382526489001593615763147959884464749031470255239258683581985965938966866195076680808268183773802438077373566629560509379584140083308485712703932054538256379277811073769527173051607066042770601708286729208887077679917870713883566699770953214693176049746578703962551089113140781477794617876805025595734514122111652834818975655807695621027907723968300495670951997383417489210194398893649429244726726421253723821932782202247237496774293273184928284105364683993797831047399108697773279829076205088655687948495730911149558616654465101955897791877463502014726660474921474434121032401964755343417457235832092060434392597111480585030278165934167761456419458152686329547627900621622269623482164301968322948093945699824043550116491580502543435726117484150843723147379490179069472408065962345435583696536596838800039093653776781989496859284213858933309115027593829612421173059595335520988619908335870721894418009135063949075786796164611173235873417588159563102061724088768516962240400648628123902425208767598421026327237162229751434669295204694659372498404914783205815813926715360765839707867811515847093100851093286792528352582625735004362912384028015601929850787298668087178963932767621580340577639589232579077562293105186747030792435282265879439862957732442408138163090116320906833691086250046546595587171697564111022379593295071418739684962828800545440585688472719254343435515599394811441279675219707961801032417738699489812846491028675062761938693290306516989105712731414617276696948925036401789178099540026105022419513495353268049209468988597081963293857672444667925280647715136340795159289811498051488193540169958641738583641577940292686519036918557994152616997533071972216844861153563622963261282005649663597290427810475251845598624253506040310479240454553257163361496854760537589614611820996529712677599570148572221922195006511076561403653001060395383227872556752854620074221653700166758146242901170726210316994850329992464478492834648147809362471499767234995334365002077189910940193893041037393248453070943753438391328244796142750524052497453075004388553707310084981341771179404724209587826191927658555121895979723739705080532028445536006143579594817409121812399149803521453745852016814535018087842556247906172398056966736842240835069541156345032889630609001831936661929325342510172332804340701056502716693133945594691200547999924484757882581618803646186274811392716250692969795962422197088707872087698732123401609096832733181557191277363745357236311335304050528823423450662525260432147630296404745202167066709936614129363474408079388251018294529524214198942966400894335330502786300178400857069942678285112047468845350521497778501528731302715286362684765683333568648243311782873481232837040961730431573495481348883123896699762777847248196985341313196838796876705734809798401349897885949584671014658635462520455103543866774421194756380650252737091212968664188250552375549844738440259980203831853560432035633148053815138619473805640718674842166744009380516159322207984779921674706519378321257498198526582730605836594940300103233549876047200710016163588564764011072456273912558881383312228698291014012279986349634280477393067892499236071345927100988402602294771418519195883132765777663801112452839512580702454292392856330983256878968221490552339453457891941750405810113202851438455716749204418630368238403618317832045709817579327884797685688455612179161263519912618302282694258478705203705905181041460275504780069523161372768785419675106204963137438281178959224173521044389364130541799615758850328857886067994495780013740403807824898542459504150674125962855354833861540037461744822287018617844237382753146268146545961527824700876605290023080313044177511737445509551474501972873620055409258828810429807607639258749862430183873033973397912041573288755669968712595950224703264142671102292516958110276415048467344489205173716151150803283943813581080079862135680491017629289530369490709365739381897114419566237580078363222066751506515326599640238093037080481070896151077141335307407813700571772495053092791785953694062670369634482523815455338945108190176048515265959988507383463706672053476512419567846650551460193399416591180779285469849048878651184324469199232543244232596630251383931507121417840741159218554983128442166712448716622897751763722721108202859769308493323000440186444154807346098392659791055485462513815455426025993455932564108617648517949919368883786969286266031098198871046453005538809636961327347387426575347804062988013994555583255945132294909067354181139204594223101747870927203309752158305983224694501365224101617411892690107821519873573810956597565120104739304112940126965791455588815423374477493560225102352711904554619923360219487492149678435876539277578303719008723836734371333688323440537182336958708093216606937590902355033634496113688411791436663639710755871403143200394129132189031214313518308747524742110414825362465630646479527947888603480238468287607236639848520017931853786488668146084226442758175095253662616431543949743941685576515940507221784466208356768591650647608636780198109020989546211156026013989531924893706251936026218226460729898837963521638153318127306867641736799388315287234113407276298990740611189824154501624560512735348660598604770996146684905628702832802458963514140786149619842178562625625541846530739302797414591885751647151067898655539711687779522550723290502778830511419375925849934083994875252799711017804008732657083440460079315267621312674821189375478523356303024109324277088853394997259763415438610086257095757111052653886032713393134276446984332041712647181133955856040632112204678807284703752623593242654772097230150241564248594343996222862252319289989960700002138017008231196523746944667870561153572700145162384270604502920235048503471888326060537412347126651963521457795677585353793838285457888377103408780022805269560325741514173384669697430021373503117998335932315214828776242209769353885975538596785513246602890127627199798988250165387342183661491514076722877496998456333134688506517522161870925558808583077429718374226423824958708415020499606291836159925243369328613177097550557435771426866365903052476930748210817836105763253186789686355512103076295657425314650597835955645644460418698080814708779517169249257660013144542792325505277107390779649894843812411584909426570210367024141267184099728814586702312536608067889158019743605570386208789178099033041546417446419064051239405306152853593503542213659155188903590285416902730577739079320264576439887880401150446399186065697440002081745542897111664236443779491980796138263821853849944674836603501348002930087206773727153716473607661177092538592247628242879986856359875704388976488049622337144711576999711900708114003892497377179576926902159562761077431438582106827842714370789556957692004140448980357303816655818587501905368578906547230820855187337032662289376363971840007103206744005299546955977788677396393705118276170214858527367153646477600262551903243464457411005771012954540294727169272294674143662992813176775568628516820921873518865126000365847351876585098224694735969989654908988486906092122262784153932127516968698848555212042374055406561835463764584923630746209567291728995334407386416389510420055226284111008074891997686589379390522247865177246978168654098841530492690126191796914986372556265973006551408046101914501285878007541562887845218783853833939529935167982586512778463245256040210737144130707042357469481697709854291460283584305035424464070403692918132956088328159661751100912411347812893353950642405115111579980468935481891641111839171362451372034003774530487127697066930108006054207802508071471868619750304313540098251388071427892381736616259512998307683402481974303673140527184607475014183175254389290772225348194329432514682867105606989466239230734037909855870780646175516360436096078127212397090588733210307600550131025363856827747424012094137664065975443289828822910360081490351311705611214117960824432530348135708257345277568212064118210509872972095688944652350664215503583907162577161863983208236116835727802488452737179594235257851972893747678926424365541703382471266351202593656678655798681836847120508912595322467747601761314643121194039024340843451282132937621783623728407235998812508708333126869823417206369681459652962833789716719417694230990315522044412115311897766418966215650932549862664079412323399423268693626230317919143582009472166527800718958502119719749588519854569171783821842194245542166536045913431852442683802165760241547134853987100946045598747230729165525698017731066279974504894257852023267356619997479200362685953418729194324254529279996606194254205544990222897852375214514679511448642800093587758180254269946970505768139497209503353299434724477054720874088039971346687588076988306332430810875284222967115632276842218687316957409572383114485847857721262042072400032980554967732687306058840907932369928075712662674391424624770090732602336836956575783219656435432436725940616883982426910181680820826019236062467845332255933086229116982508887298166406211738532121101781282641242538493091890763916007260366094541788197986294389331317918244599868890587073007333629806208066172210081991854538444582020554682642175030399731055491695212165503788340502586791865884655346718629734361361917068683046873731156576390329738197080562468847454679778667169611782131531561711180356663547690894236864450852656888590990169094504648579875152276769405007983044139969803572663417666941150053182941728960283396841997391694286148970323386154491258066449480272594673340701056382241580276536098269961733092618141147869456231439632943215059765824622145390948142778669953217947705586516478439690155858475679590468495965960084925354182133448872712401107928706098228782847703842006179170353685941488258759546839237324905705654826640413285295102607478186412212996053066160220110139392916611185048492349901967639223453428366902279506217627943325131856096642349749002602450862343460304335187428488518955317054834191482140252034721597064734798633982461528041366680837083834648378677974200222296905831048840340945206589007517998345463969653002602039749526320520271559444547277652394390428022774804944261284192067244637846135839969996455802162286494772101240258696601250972365509087023193789494554413394726985684832672284905637819797207726955031955301158300945035511698535333949636090252745035589053715926204418420081347815223152099031204173668500500144313509986920931619013823948843616259693166644612409311775010561795483694885610894266116448079379660603994151444983280536037029746954351243218135811427549077108658873694550823386728386795607734352853709753083288547274900923722984810528963184947068113374735763023109418850707468627812817639668014712493203771089869517575165487618794375520861306797571835785859327589187220404119836562005282740018813398526591260411247687591298025095293657459946395141473272555686278085638121584617029032510522522332309491757150061126391445585786006277925203307441119672033431986601996668044382183781060013996493073943358274460392914481853887148109505923257085659375202015598152960403802955137702013680518221206996917615925646338616018981421356193260642290698894199926804008553490409427066975765335981325174248526505940629268310803013780296007802445468530354445771946809096831150156740409181991976161530543261652329207352628593311584141951480600663092409906169006158162387846144575601762688318181315916273052520640498323173752360848614401593134506488641695643284072912592060294923816768200889750586816841534234140847568605158690219642273737993067249388581153356848871910709772669935012275650817453435084683578550486747578676082769303587779689231329871506875759429390176000999509896926837624323313009978012958173355210978024717054365116564480737308784701048750309385257783571220894215659536018413359302278205316268965027931551980637294390999320532243073300690409062369336610769621043446864153703113466681618967044434381649536467661090027385320827601320739677246619630923256942240750200772484795565062022478084315640811131237635568473033035712127652162902535199395640551954092332914141923980921259291865898095229113609186045563853273313494660136930486717585308592716667890769527777143224950516199768794102024413566925489357081698791114213875303503205072129507464392486767905593519652839256706684012966493422161617774342327828589539972648470551078651791608053323211665000862127390186938302592849933780410063383476609669463949713435800710256226694254850971529927662378106636305045403983455375879062753786064493317034147357747458438708162888115396001223563666935687115538466456503631255477364849863427904771616886141246086945825291865996738375671256489773761566068190683358377442844299535684709056794801596142694192889510550001660145635738288078465608215158783480387946353993576237775111392799938001688728079558526382747165286592663428490854726174682688908705442706798531313549955459522086425479910255709669812401862379936807729618552540415104465398949230605638048711722615675524915492008340131377477435896379068145287662465533025954417009319940953526203187254707191385944617267848914067152530036999467403789625899969917599790758456179174860754281032349900246151447592616326205377562057071114110270151196953330785527168754027440298880883430178850714742790344564792507842493114427447307483019814230358105134434555145751776559619875221169048505175797757233571867519320484054479249895644545620974958663758154190314500588652209414246979370795502810317381710179686819755006361688498505800269049870631154374122767972322364016227564254438479463411536520642421314403594409459373975299892333371988293064345474021271112014511048516248697265646215154172913235765384468423242861583286115068402057254697689634581835802520697361115000770753041674380827153998769886004924587232959016327265792180655394620967835903859789272155627859879498848081531916111018440611919860374479754309267149656433853756797381475689309944318522039006679502862415630114797652657598083665708804028243479371948058387917351786699235709906180279424443964913607568876830893440585872868540071761665077147591741800322875811641109650456556573587840319656235364050898210337014222946741320011173202568870206409068014346737599962235135601499183162012319416277156818721589282627591718123248603909282644417258825499657134403900183585127972382255044191535176026371449094911472063049596012121819970205418857279388597462381681066733645294689717742290776478428325054781759402070592675434075493128905498961982213434159507871034350677160199766765064955747235842836625697203137717655643094527671237412097972017102167113086314971225299749196821288671670293131615951077604489078181773767319914380075050979948969089763860430292568450645242102909045340991120116859236814006366076089305076672696105925049569290224013090447164083941724957085740729729024064996644127178102814051965951618654184513701834602817303174565755047356187523547171032901074200622821517630552052984543990707097528527628997665835525977546512973884916069155371142918008870623476107849715276349529640624952811820477427828589915410242879720554307902783813659776561843649801424350940575137374797738409088842706949467631075909437646053696125230924461472885382025846401885123631847229437620042749123456722615041921428945301494017564548121818663698729792497769774815501518783333614430263635257727231458681358893922556824558360282619052244206736259111979800588865555577355030727332830459271861192507582286831659998387905859485047450052838686037885625441589639413562922358200054549070439743369598887310508409509195695896060805032829176619178275300638822970121573879073389635398952891674672551981491538423158644502255312204264813592644441781260633569599043089413217453568127283480139948589991101681333738684825333448018761370556133655959341744791265791284425949427724229263799674664828996347902991954023796543320370191563214532009747895306176745234388742812972891930773789893831817542049071453841539714569470116818911915246935466549259719254973968738655568764011600491035687454076511092175261124490838451047126756523183960580803940139833423047638846614264311243958820327224972144313729063422021280305850918985875382796160881847787402186283367076957591198014774929800092947986736004158123813536623888008625373990390281667254834499285966597624036234802976347055498687581142763820334771098514927283410489877753033731371760021821172050077890295624109641924211570338723129978532604646395653278211071801664285839415892401625382109183844947382727029770662131177858994174540713847867172185061767824844207819880981030851341662985671891239228835633034917900535555181485814043347185211211060665077675619980431519101749029311022434286432298173784207159374837247974842392969323900602691692031371760829299693853765018854074074152640748624525824320596211868922799914868559203369591851592461697950867664451857868263229354012819007910600126893954957846989649744894030736742596282567337711577861278739623967204605402464988495623119557481507037932457818788082314888347926526533191280252485178215342484607460407607544180581978899915379675564728252700366352763089414199258258450307512453017067464131902544624109204245353302919514273708302736177138082558103821902445110668444666169478112005421458918903216143203672263542913516274167496682452871612600665121666185843523311087408310166757909838196542533550848595744238691142403055978730486166499590863885789425222011522464188760924191033629918772386360574388489113733586433231228691856719007030820869719212475874303143138906809199924095156917405574409786974368010118321181015454392219406581720720105215665900770237438841481170950128237765349985626860957869454279880663723143337684030886852662147217184107851825087649518170681706786601776982579401924997667846568985736106854810253679849911179865006492250364649606340938291189774641547909955436105805751848867588748742358882387181842191076531171725434370834107472411590485479553850313057134402248051515925846258229946698404215555238730338202874510511061122318169266564880757134437060838454895915068487611734526657050620489802387711260943348061266911285717389497562604556252435592211214047163824378924989037129609973830108483326502611116797034323535069113632984403895240513982066617955829384661597393506385484226524580198988439059158879730622964073334487111870885272920887031902294094270614912485585708351767760234086028595294863188024092523114141455207182547017288054191177753462139012172452789882056635507941119923110053782830238569392200690738025048760219365665824685121019639738439393410047228514393910330164959989165500786458736012950670836584060510148907233378419936105927116544457834840867356067165756030416481392651734655550363290904774781930878453821023295847284874931270416630225657057442177678112897741927131269841273586607074757114288077154101901379766014054745837712618156714455102564537308181003715993415965244488047492848489559337280264107760101752313863199624743003280459570276041684739665550992214568417660619958057941701120847639731558496062219675631718327616270159054232537865800988871926233990036134089192893519501013004359541460201496355454952326942474929581654314219142061570142667341717528998118714904673175235202348775664499844942337301458908108449493072909640963778960042517966863965513505654852700955178590200719121969167802990627666478273668566531420915215422418888146148740834776564153180883492071698428589376792249474877915742286576647992153269334956191301715630942271570628307892628983529442917409274414220453646147019238792039724889545966926341221942496923013072227217938165244676220589622089464794031123301698671363271652000321892378910036165556647486792697995413585389852718715323735145933320507852022727025603614214494827575847380075273092255494444970725062878393181972107405369701400230740664617052650804119709171125226242063617846389704950881445145835683533471531358422990599703268744867013386507769179762953161084996642797661815979481628912652081330776054749886598978422842295433183405900816987901359540796100620059017572751749171944170617383707562826440507512383228240406539611557794190964884177753981222536137563495444926508220023279899696806689473372600754733696842881888308057226250948838478935506173379893857967630695253313147970848034441918632135940664117734451475935265341673584927772466081633856610218117953053916329249443518374169273134334580802620674709639811076408448621629300729395941754079364640810826489575302854116957574816645466138361578310846618284898212628739284381112929130517770035406517777698714086656347341227129364111145824573304048252783257868228260010872809993554716823771934369440168064100914973324537480781685042918906225717753505637919990562468785122868855514201848169639344733435580014114319013757697282337362115194521032364820902598079333232325475640155900951693006376657653996370896880585987142192797891724965680821644139420268282485179085533610965267850450472164701687924543168589055149710654715144594946249872578091407680580202174579823795643803422219297409135346045052183122870345475848181932516783845993669663561435614474786437579724915024795308234452009410273907883033932277295353720083736676041428961272306331897677325245492742004314366376011748476702352349762903316564123004804570195978691166924288181112577987596784319816878323268410666186569826372328818509881952638702029894618347469053866197590395094795482485133077055117827724015759576133297120746430665200873901234707899095444472887339062153081132481711269674845156207727744225688569810889253752091189223211621652914557110765601299295363451775571754735892643612008797077205201709524170515143795672733254719705296871368636057117220747632216445320740859221870697901114567029233220708799270276816152367458722791736458152220855824845357623300794156182287049250315409433082948376374483667008770604357132516672392682908016040189509885817948263887695610190944976357535589597959745298125148381049543170857742011178008636040652931108416063110971344365836658776789861105023865306642472184896785009366235801923615535919894542874183887996584146234477404329909974198074084456274946423469666939894459374032870251973972142194795217780861579683846980272886240399529719941217692918686106349494402151619055507047226155929849699560392640438396846442379697302641787520896309964990688448504940932796052416041075370534683261814709425864402002921841590685164728651161188323853050135514676161327797677349897890304571999690724458947796867553046219468431797766167567500142561977332520821573771423007868118993383721625889153588456251155017595731376467366077800549386190688282795113882077162875490165456730915047477368858350713799361198783339286274882860585708887697287353198021715995947357227364271407786666649716984041758799201738749147200905310645281749791772868846995101664301623270497608642245797378861093816071735014479012193306367910779466868249756534771559870102422093973132643939977903680057626307874790036823520959046807814022856588918133989708264145814136789664320912184157842616972287486476613656408594583388876231660072299266131979083887138543763915828967912446932559212336123924258740451897651649231609056808081280474748904466055642709244079725665750611197001671733552774625677474787857378317307110032508745204912063636508101499159286851711087946629712012826969486331031051194102193892863348295016723003678883892581585684926412126433592945707371066015941066435541448195645377804088857504364725943511466350954180034127507610693994441246601079716539454303519572238304585250405617352746665953373716105003518863178966449888883745178665807711717779754084283185236430565242791255623293101029251679969508113199814065872104449929515944707570880697775673571938028293993425633066290399135435922245434086415835360550706867306458616244693978455482469658552829162701605230678347240972068729191412395951981226247493895465574864109930417579296937169326808104058649218269425534382926338259550647906646645987239603090919030357253284027739112748625433273220814683076756877479064986800053128688302897149756698107570172696961402282867721881788653668293598095191818850552833298396529292000668921248726012565174873268763529944733025515788876245527834551830348056770051291354996922723833975257740911715471376233497103112605709455064103249339735130773187238580339313319683683682277972302905203078171658343199126280920103752349600231896618149061854679205017445547794991308865898374590378938973715241188043513187303964410005809248284989742293753103903591442636718992572676715270627089503468367804187081865405480023753331642671176340926298074063681258698397996149969158129283372886100160052589524339570451746670618269775396100198676617758956372720322152586990116572917271222136025697921943161134277786846688735492120933980671168727106385923850648708803539074899844568015856379453393613017079784735051951800162007416480514447236068238907837615008469201871127534653390138641957903139914237662662444088208477246941412920863817173559243501673723238651227721859652462853287127194882867992833258788517748741107133770845372342867136785587350740747500886825124693960540900832804485304440823946549178884562068338570606171820295630353631964757189613092819494655581119111602839018760338335135569066764306759573419583462225864901111807712098207592245124146502476988955168669075465737891205356898712129961013408586159726378964507935847794316905979919380314791470210561883249205145591119999079491645323191914907221744287857850464956481684337108770907912359425277427575661544304517312175659889586177439643730974571016603687916133826223205610235050741043960383039590128707461864265928980998505743273063053000960977055212652586912903972027565880155069870029458196599996034465024405605411736401950533995749473553087549634837646016503745015722556301941176850152841103493609628982089837087371463262915553295573134633914327582974384354649886033248057027808892859678132342320199953251893208910280323064952541786385426989881682825042891435556770923645962384969835103274345170682803339973951535121154043427470655084588338741248920144655645728295725965161401904264225753277246256505527844389738006158963577263675074139835225964134585871519083668158984633957847692217817783466343897923840569698533503991823468137477594354611627867992738588117624776584814953672382313731570657287855116008996344538964215532468864652901862514636426090608839876230597924695735745643954469715921238523123604589401196861257919817739622249849331485060723184984416479870770819271816787041593815775292978542919135893258451727782260262054823394864179896634052404122156015487850149781904914222154735358047191568369512662897068579307780187955243855630884649690121232317650356753254887973268156565213364914355002595686859858138639925350908682740249631156506282291945368085353608010766180790563225962015800281987492673176742743110892665903490352002612871497527237530776569812588085184329724315303093307805853153550126401577974038957603609354303266583315659033174903631068800606900379984120352043320455432689457641911623648317282785233523403065038588283670045600457544061923031997913113266251223755386818724098499076500964381540961060920382523542838325498786891697087586003030638753318744646798089854557035437535353144052266458417681713440449087463548688882490915349267797689212332875808806429315392460472855944010338664169299258968021560698160443473728318760515234568346463843530997928795616763932334455626678229863195430127383393685534476876456193453506009753337426643185704892564975411214252025341739319206391072286896299936839735853079079634901259187840745845421765467597628933851178160860181475272571539471376854531578544474241933356421555175512914410784295169126088087265688838482978117581926886553755662928829040937532889232590587340166900094373842148378649794682645914375195654022386303275577549026919297290376413209339504209574174644937195849555724763135537141650603778327676561771204368794648057158486027137675883564700218951016208684678537655543504999140572732595426041182089461927196365012276934499593204010489917601314833203404712528036777736985372947396579889517893186681367124894083168917011510964074396468625213650516500357544336862482659269013113422308853789694962071665014089251999267874572184554550621771269634515840778293927118695150819546998067452017194963453218694893926771493446084178610772064658946994356749870550768675185172384574491706803565884832425763860721549094382339026296326778975719108049323019611138797519790192987564904352212030350919168255955462085227047269291654073076142434916487306186428845963549665514848593792645339855879487282251783854540568396726974769082587849648375987064653420202494381810967828053147907473663580214196037634491999917197355630891409946877335871462352235096264227922810037981081418907395602447382698455957620721351019188621000736070105226548806965354468125373262047205897821125750293916588526765293464132008436525187101442943969406558655246714494725811460188410980523465119903371293824225989957671233339258310178999750583356540533117950109836247850916772484538721881333733097613612975283994071684595852899698232624982403304667316453960954148009581214645125533718070078432201016894253520423351092743857286090626938365923165532130957239126842238495870386747430476640277035005477684895350240613488798159500903745845230618417088092336986594393236270407730110427288336474167780115694325553344598239724533140589770593214990220054917112114888161263420093986464286571486840050242001036581568894500626654210346710189616234932487018095015223906268652152165119882943330104114829457729527158488432561839039850059074358749811768265282643460716587652766701116986046968277508604027902729922644694197609708646438682335931840345098963290229928577701310009684350882996204608372796348656466137946327847708945435810691749650411637783297146462625994340260779888071194285871799850226860336946278288577081898577735383743513885116063513249618781928537444259154079124319322871832271038363546619794158585504678847243346550720086525947290286030692387434378439987033894984811523178626460164099763812841950772384313750841955707981339971776311277572493233272397246967204762041421755492882101159961022486947128008614260847386252086021611638381131692206194663787822673677061757144711823446584025332361629621666222315271911307596628853722651667323288945743947130751531786583642585331176304484039725755149841369929623084513389801691450297491862128635175628998995919922838030465457774717158432072729295414002436213897452044376279852076500440295897814823835712043648002008384876026308544858277517247369408643584842423819240509757368465961454466478263434441715777104746761126132755772733293116863699531712707959695249048337042572077092877532113265078809794066752016105854814672119437098218233234040297513065065363636016177570683780213283774143825589046393550937909845679431606349971141331441389325525947727699319813859223436421221882364459305134142818264766226188269366168437487399542641107525952433394871707467606350361867344303932335465402856538772028945995736636135810574379835557490473115236040249118412345311655556161750292137006106848186297919570483759048347081084402321932249086520417952381260329072719665307177031586813461028818067950019962283898126800305993700292840622651945660672052921118111728308584242744130376860892945852834940704536940467557642935648611581764198053247536336106313311552615070657969275238509696612365101124887301189510749931476522540759028400891978907792818894445382222979793361348546988329473978952174398424423038377935111569090123786420707855117205638940144656006628380728951569294454640370476460682254788714528978384753498388913528179727918414972961173534651564545458069711788335625268372176206960137858410149652659789345442461564601701348066732670467762629190033331960181548331888651312335407777012240680148152299057755074833726536522661410206065883611726930403964015473399621292565864594165784964837699958474958540704939482519785632357519552579919575761811988312581184734339861536542402172124108112849701218398860048300899754338920702652583327346946427788549821976316567213082399088436822376169750774510301726024836924532900818583483244122163308733873462589933295267793659085956622893744293745316274882287600104023761981302601657424714190343567966781821455089097948736350583371356758887146240511411421481784786777689889818527995658079174378450717446191013656338182222434736729991680805026157164922067047575562065329727450565015628558353665386442643730318518936638328476523642450704419481776208744807636002778480061083454023958883360662228632735005248631313295323504628876560373085543965749972980543267424092535020333744889975289307594452672298157072892799418959397165726880327299575963375785521191965666800809205802739012845010342130989272086541219750074136134398779847763090009526151094733955906590893901780866647229078696147947065581747251130583056501387782753311608971070433426482399660186965177886792885689511768799116845033949774070719618704751632775561570582341970944826994428258992241226882312512032908703036650074107737617355391221036760995462144244553975192339236388519083136370361822510095516329935556351948515345799246517700727512115932145602700043564450859274761162815240734601539569096718678373113168254481996618542725515260750572225588867601377552725267300131344735081298785956760584196328618213388335925174501511425476302440761793811430831587393879468366662492717590535377775335273380584353544721090460418631149058848539582473604738095469293455347319085113538016334182805501265540028372243292253510216342655605433094600100468420039662907709090914746324562613887740755359291953824382755780941576127190975480575274414513810828798024746331833489229140649804355714878941978101934589641956525920462439808592482152190185973512383758586338155503253141387455145350622305631420286459491238838780576911039596069650872553334435908442031792378165324628867306784773704616445121495559420149579349516527336685255778021851029797422835203169144925069873176672497676101285654057790419694271256724488451427286391943700763704367986810381358456674085053799523734441023638036876311406700892417271039745015363629088932582284305982549615383069611839101560092614826691028845960861248741695167684259511725035746448099229074440140071903204274176676420072402950575336165854896306025069487294479291124606289891158272191427315895005451898681295884540670716247242059607500377205066912821434597683578578630169657052382130394664321882644308905759078918302750966569366378078948667255846743937811055113166485181209705234939812587170590779146075054010576032430220507764634191079823407893157079705239341544245784652629936841016387276832696184460505137059814699324130703717177318778713595134329401058246062100845139118691161348427728545065570894310600034771299340031638574403497752264508436760326195867490986564918615741396277628064898515628862724760773819504736087710907093684912737371785935936199140135650117743938906047805276178034876447399932187542589056147654061992708988388487114111515894003134736469669350300991445993090012942242118921049319247242220546421439804111617082722996333550801962041143963878352007019813049080496363796764408421650018452008567654074896503701167671055405447027382809016886379702941146163487785546638444994253753402780241549878796195234182836209711124344678576062028853492623953559019598240765485797158034303200245122223498749300441517868781513053361914129342705370899480677270799307832845679356599547474933829847094198895988846492990854951832685150163751401660288685302582909140274490171074823742784364153057158623500875116600488252251159192676626927097123495094467768735530560923269620588948283496882425660754174989668655501088939121063250956519507766815186069157138744076811954823424959493462756892376469239305310572903801089769610379688690502567079235778152882433634577554276535579831957130800301580089259513114324302363025176523568109083025139489939858789727142515345724648295091979248965881690530249572152446953297899652123865377954395749372294928467138166571850316737284568666072080914706480383884213490465590902305785510678698404866808672071454473060316140059812507119994764011594756785753307965958789335460046634095672296483767044140011001678771149889856781032824465586138369544622449851958885838621418624588610837222111061236197287274371656392859484700256581538464754018619510896988785850001478924448691128276949928534679981776559267016024930479114125715994818961318033688457195021745794957255672663349868498747601867308258483950042380565929715119532798818552154130344789118983557003072869639354571663786591943744553260437664434371355952405851604830264646596494549915000937988784777347045871060171294183667718442693008834700685164039063275909910425644060909151665738329117164881903368092534217454212618996453689577018322038050538119015270935421811664991042387616029888411074931467004751858267357148195490110078832830683468393102490666394560791921939261563298473182552771528043156136034352557320811420913949807700222468519973367591239954848133927046831231125154456754273026884957563143755464698376315587277984236127653606020198881369131177267095205548214902687429559526507986805496618983318098082028161654914239061482749820398196146060818939172970525885113692788593606662932135756499728846406322759295139913137515034725384889492568376348807872057229536796363353196056149198522292549023302598929276521222918634709070105251865070058499782319986556166380395953209474619691977636131412661315724552916675297813562956987047176507708771752843013907057285320443602285990161976670242561284536550270846640535048388010904361353517452158234621809591224610651230335820039422859583736683919324960524240660835425050725632857173738863954410992569816410336208759330099857185656896377647606631668028909343674576999612274858586959994640215790835183971671991274640783066918535844828198479990703196347458634589501825823501334986054762391703183971917660054760823448114522270957856484497309827228391130800787876016185721606280065104817650145288617575570600648364263832959757092336656449564850565757043721517554754710543466092792293474975247669723595604213809729754592142500853527023276582067784736743645445923524285985261644773233361344731960036789725384761988601167689428352585420192466819129734034768848005134665902481061699367422911485800202623326220527361297103843509145746839888945293915572887476254853082604935928648116962797877919553595752410487587644162431140227633203207492364624721855537469742310100822434264279204350945891967051439000359203172514046210806489128910273065850068275945623195459043344250966131641951526525044256385667932364244792740279620607610745449011969472111142420926698254414261174240595102613883921658507826256716443755261312775785980134825902046993500417778337696153588314710725305833627389778787153182746768540039493247024580968900832061473058758152093933010524125814167693801208904669286180059380746571604234880349736204013156599866132667295638052325357792127762641611337070495219603070960971065657852543700491032370545169876476381376517162369465526439396516440519095891785465603437629595728104576509974542134593498076625055535692402187652994993805956498808308119140067075999201911879065744679435821770911494953969761875396796270947497401394392900480723934465477599143842967258705461746668903572475747015236432370719117810575499513529744212274084574301665441874889207780534784400775331899189404111819895254296243839753439152783437965888233750793237058257973489591583615370401772692651456296817211567810065989364120668219393311492642792738404987002335959583210011975894704428540819618790796639446773975505983418090807184939449870946142274105306468830001176347582754768115931446568862983957123543635404411790202343333213445271469525156934053070167169443759794803853407030889959565798129160169071240967263153424090197630935604709530902497827983271534021062035072255330672975710939991900270944145192019813403047988228365307965087088412516930202409290486239215384731013331872420468935169009922072422626129218008312738970269057618660973722468025978478619969968113120439824902831536076663194697123845790253537290672756000269290616986498279680808439106984221464107168293518469045473920750874827670505256526997439278063159027768790255775254465702487007205961689105073449471821421519464363726309878081774148771302106951010682660816058174197066803148367609518842072992701972176233715062960909520795051650921461009634679891250004120216491161402800943539534016554100155768690729599732666433947527433369387959248631283413757124845577127820945984053568540262242133120260086588750544705042527160728043823320492590695686666571912168954290859882467938034796480926054843398428122104395221996701847824460509182581327923027707809062853748053569162521719962779819155476799220786105083760126907375438739683263431103555610336620459424688523390388838458899349586754519542032780802788631541506410019490035739976465698569540805742279524224231475801514258655700505747460983791891202467473476521626190302165287134118549142031480186036807031209032920970479456792511729384327531375025631759929393608246499692924883747663344297111175329497273129807978494530061083797513190073394703239712897121402243282336795176746538214572464365037153010462848412672863518368149636976596498477361543732393576243984005327574103317587124451800103571088636787666565123597614566109509100893518228243201036159616687355578090850216473287085973772027848098793085297273411018059826047162316652548981789489191474503218003684172763787551799826039800752636831603275768929851291256779284311215908112954045155356675071471606802831805644602912414316545471744310042460436929821382189981318675383242185655347138934948907133075583887575090913189650503071146522916050324634473260535656957275409227333904132608384161467865453056321144689533304507104624011583610941066876215949693852314058022832363347483934099765115881833813308183363447258531953828556931519126494945588806291177848113751551120593403657703936083890743799652984735266148640441851054474493270443069489190561621380588441224082794715484569157516057323209680327520685532562075546657612461259630841179095805506732450146312225626527196888492494742981452795498611507397314946679561125965303083961918100519552613190172911943895808850053686950177667768052947674643668133834286433093947102015660230468253755516349277501065145738124873242839023599148802911405065688135292965205422708037942023853384656086328951569056200649116226759820193432446265963723616022458766329656629306707367069140753688036127258021262219765009358567163566031902766174997059006282160967123517163642028518605604601903024803989884661361535113451659320171483414997401375029976224663181228073347886138503510668467447022678938473533825384436643274771122072503337781398369387821357657207074022002728292774145259787205448095652384581120811094593645528345057717503959297468536644269899746929259212770762823422232072968513586523938142650066990136412392343679479512105762119963067691207033047986385795629321253451990662053882564016259057409102086681899929527224177147077801736063501897853566842695848780810489932726164792728915130734757548965825488062272940113761188539885435821111248321474664115249488222544520145853758211170101356802633043885099467647298360454960624756728560286302379570025241619597846577897669488247806103133065369620942321608799331430985984327976563513967844796495826067654376923441241754688598920420791592853399578129169347654858085619571218151691812430683482051818309455366044113991928777837672890577358070122342949730908221861888193622798349094982171889404428522241306446241334978326279529893109599507462754099763514379859085610786536269119275113907542442036164174728383100581651592888206818618764036707904293725952273596923813248312284606530494014786964000506731142024063601751991864729630471164390498357165770486672418735296297015711769918132548429507218444147102806278739248871807335317266600838250286190874107742745823457604368384968084301870797131036371428860888699218081797937065961121139166131374006662155149223969852661318667404407811550128065590772425754255337328709783520306972225611962545364816471487655888587998934859141321102867754505666134132694560238089029683878860706030267792009360424705878686125198695307007443290740778590800515202420596732299219149555660358953352066642473669520611680603919386642525744698933870699307643095719661862089191879213593521743319081249397006067497273071772490665960782863357806574952948121255467090903457878270757097364502428698797305174583136248292341211477649492736429897381309248288020630967186027032527100299216676902133651552037514564167166264969453316463632347754093076825184135185564666837683315075397356307880015773565548500740997440185666296351869569002184867411641792716416246238431658037398708278341805437153174045677028946120483502145163653981485415836250873682914401619509092655912560304530887955346482975341704549195047513944572761843149308635705872263691084060408436711069883348830281851625320891278246079873916103398912405676949932222636521859077245472885427036582141683663071396235192472388011613028748411098653850822654048137026269051199397187596693678294161572916887412092152117289373082076321840898166366763684297536524670869256669740959699995648042064756785882677392406496049456434166255887755044088478594336141498179833364255668811920926160968804818328519149736528092733848759854530208883173370484942957601097054368675134469446617216333338345211564732866665526891403864033495157875421360611278639890520204521089747218707394722103684587409451105480299338372857145264132874750656205127678384413479354789785968999276381354214032196566716225487356976016860730180895508758343847534495905719487980151759413061233193988099599726689784059894037975538439796254318650089298758703853807421084899051237472945705950743001980867170990256495508885027742609375644856637989360250363087952301485544970844662540439670227384266521098670997817589074934782830258442876247839927136341997965419190112277094632290331191660363741095001269429888115028950133348455930938774982378903970406635423324893499036303118273388860457694639489304350207515735974030215893395756082027049611284686862631667877496063582233670564255869512491091172414901522092937318776348692596307797746298624608815764281761958912337599305825844873039361796630250547497550492400163948539729727403627481732067717585688580324241977263424040492315934443126693721696630336560551644714345097992848710968754955997148035453861986745738290698416958067845231229341048588524394398407917064319538450267403283908261454247749388929388572588226934609905019265276212994006876638051626520300801302921827058268987526475482873586936605491492630828821908551820618254273664716046917669454913072704703101887207423604376272028151954805858043583379240383096647499756199460534902229969647867960324221833295275130750132271286290008847966203157698866676409091653214293236666232572908779842740303921953815960216840596693883131501225162885866415212665707550606357678235212915330894248385421869840136746239437105349563820551138930348563314590391824649287103486317415329240464243826294302402104118835813845232070413994826814216535148045921839753357137337525861048681432708945345289937110695828851001566097940498669808768188517438738420474465793749940104413848592163660438909469284854100443043020212079835763407635105235322150746936881397333648255476404661350436579706637863703116356272911143146107473159958308181867590868186565589136305179750590266692182903305793526712718641945847456259552726232473835202885918659501555067813117539574730087005497879672365434572670646079278524335062973443224445405952182125141726939971310506839361568853280588674609605395080256388246613811403303488131826402039540905047919565838350867070928859063351994228503352664946818719854469844769879148839287889358714240693970798670342660581158583794232407069615863759474115158491644642070138689455610762877912331658381007700414458872144274938135526888983653800495827694482491628206916238852993834387197217982943174128632678607680480113137193430480164716498135178656319730532879436271337257372675822789265647583339873681940576661955291861038049372735295568817670047744781185569425151297303467953696929364975946556592972961526170610042919873646615243749983662839100799899467170273256746311842330691909312954290880969352923186703577349251020005521588327943965205528917805406224074056422353679081493683936393244286947956663976323853689417787106517530185228233376083850762319898699975065822353962322551738811261211876099062466718448582783367718779713992509944829790272318055638696246022058571484228896081164958500282620895558651553518529984506892591301212862882362509376386858957261036325430043802029524223736579222616568584690927237987533320434614392772450046529554901318412372380703849430166062250587650704369638907856220505570423664052449539572477418460124489752655280923659528003175734602498037654648390122585271953467303118217675719376960598082371617585035675387140123582725847729367810550263559458682037018972494076297502554508121155332710606155719836667760411153354929531338905436974764364738386492014774996874432895610645363051417769862695237968558660202884726038641251803097265147353693140226347164986827297126914911679649980929845768404301788186860044217837559666095691438465662735174568618351456491076723517291422201222858080683734672141143690008758045487258935649127028174545583830899593009547946646664249652725695083504705477339064147948412961810918024767609104937814615159730251186013577737578297358685653545048537897672772645515675117426867845324719432793416123294332133217693354939017531213327991182370274971596421620157444116201238423788938545694320193693624157062217790038800573845718012862305412463273383574829868459269801315408620375315081946584462713073848038976156246204502032097054417247204510349631421655424341944184622111216767240437778704360581818869212030428653408359780328096470521730762198935391291695058680877953883294975519865245136999953766051141607879122000553105707766281313103940131639305114596143283427137495964897230650265929030133241650238916806305668610729195627230099054435296942778798768133094539162758262679794490912566228689808583874005427213497310330433561362831984044505092139028065044040937261926254631694814446417132521688093241943056792245729018847729701208210470067916072914201216013812079727327320750296496798207804657252860053991270034554772631896465954482160913206589162806057620004829415889406197980636792837697870955011597545141377066872332971373449091493457138965731848588021932692489024804898172733698912366429264433774378035779790369983384872170780736549619109552515825299571798486292970185110315916953334384973641056003426355865229753409800477707022465786545840213181478581035108738322892462176281212147296776845284470960435955464934608371677070814614599505618321724054942344517579707396311175736913277742807559882230631932095619458046245939083068066530567475478445718796237992045731756340491782073792098230206809519410023599608568804774607242140071012451857797325714679311844800201433620985582585291025221281476966368447368108202617994458233946082520545618031129827569885197995925356552885110192438735391186928835499231619526916696455546767408507755512043691291246645710336038618593528971530702399215793347697346823920327052244564461416860303607437715509789058111975253909588822496968591365738008925175945835628166883454494389672951210323703197913993831724094352741615383683871870983688434159767350287196047082702336362152165496778099078110732642023834262413334382821170738989206100630275369989601442735321132965468080899753439155807812047840815386485020710457628665714291647474192282965333448493201638607493518148934014737533147950415548913317876210963950065696984107234546088036604691068754555685497700966953018352950815324717540232574896037109642567520887151104290494188367749443869712423714562710106074556112176746507378725199048571441763853316752872059555669737164690723073507973333127167712204529153636388778019194316548662008383736488992003133720152762789585920259708288499364930133433285999432882004875682892052511426372721226747864217874809403843449250847975825452880732283104919535919626839878682256780625309823049551468518496334631043174845879931821749401683257346062112078480739177244223184217968527101441977827025072200381436644553746023463515376840360613881407574506523004116911441137502709494825858491299590335089478383013114651489035164962437935954181629954661254509012371662176416693459303974851381122617826667603012870904866768971431240535752515396405747509008094746015557264798736299849910255640208128566459103032294719638193943611069169728439609604322908946069982123287886483151750284447252469113856269351571893782381688931189548202922363895485579675160706890600716223439896388560935704610203107540334603896909445319859602419926645999387422776568196209383888543501731408783542363130873854686905046437996812401560667724816189062712195507743724475920509142673190073593081610048791673988438430884263786842043602615711981985926450494108794489981327868497943847807151829281390112970686281149691649088973558310300276853379781783812354849956969374969812074440647868092665525178010883041870557457100318608745386691273406105004140962901912373161592897445628203160916052414005430663518047824309331593877160275097387978032925190828941871273994501112945029723179983568993005049520545111359631366142808179194910325219345586806992419454135192394578763186163278400395263619239854646210228547216829959384290050648156563103725220470688797442361880275732491649189586633916022970888251850828521368580295977929733845117623706080026411411046316598914611958192860834984230596890257341378390048373403829749181778391405694987913392810817505287022761661653788879311803848497076528058437951300022491388865937016928954989585572606492385812521677803005734977849326477812839619113685601236610592794141631363536706056508693595037465529676907179556226889196057647978989589630935137469578125762664350859981537997438740335714471756262740534857783122381159079827344853666129690029200250723867026411348082074159903481972398844773328808980067338516803472327565275681321663694012802066521500477098071027103714912825559251951747946656661154289770415066090811911887129767493927297953761465391036925208846956860455076535394458517266585496779788921544858457254456400416760814492664519086224128796550566181374286832877217799627870691456176153109268582354739468750512636560627731985625308348234654941551095516280013636204255932607293135709246679825092149663501245012046882877548961934434055382315204322562390210204374526391755642592745538102568552682557629367835892420280654914886823766157436887872031502540827640119043756457560708555848206804415199427199946383823921898095378477049853317040052682626848599907752184447930907867301328257500436905280076773877203946835529897709465959375624596763689747182900096697830134011996951389158187898468538119607967942599155097938879704023157609280675668676065745396596179056529055422769592694573018897447978493294130379399461974024176844737626104252570177897110727197648833431998663166878879091930744050642891044184612206655690783366107017692937961391500550700252985360385779837404910163975880084277697005274788975816423526120084765150858191679841357669601908745483403405583067416072589507799027048856869174234218921815265982354327453063202799781653079155832895627729580938607229903242120994809915867275445261726868393733325033863890989948435007231511883566146586066227466676734614192586525897060648023005207594009517211109413499751735874642338743401094257304868236911651571835571457552055790611590614489650093710418307826100599551527013938418917029006860580811706650001635859784205496106384764697885210342387717325477262009045539299154326045810627068228668252264820411884096458864134476298043619770406192476276939654542145272630158780064081073379583276563988534998339726466389531442885073584838847930422004407352538766078289574454777786351668379716620649750191851028132482976446778414177397661535274802101180154225054455689411831201304500551485981643538430886579120341381362804419965137406029531508774446422038925996268138614476952965052187076866695046568808740417382274167360380610402339157494548899705414570201490328381692051104963915134221827835644025128309110047423223116067271144607196146113800050855434638533604744798810306502850208614557490808321632559598588003011322606073018316942291588657507808067740677765370486902267191691800902497342145503309586708035664361271848511226733806833559292095172848469423812531196455387758155852179494937712883648740153825376701815977150682866365360956910298578773249269228303991640638417303489265527334307587883116545964069587596503952250148201146500998493265288645170040075665124289394415601334034896224352435414929174323237765600099136160788348850486710671138642470020623055596830776114658919194538365801012643659057667365260488912694569745761730262287649225269541390746857925338667894831015112859031693272003650780830429412753661878675074852716190306515699467714665102970131628454869767730018189684942519068094205106090260020000671996116955062074519225891657005107393180476069859326622946160698049624115247024236081546330409313949334258600483250029484535338907231306314983470372087060481254840661510203829657123769935461138804938171142793415292260148177463930547623442116832482105466123399821234364216857724294636815561588755283789467104804470155460231641070019108162902708204631641118112175231166349952878021586018514377787177642691042789127298776969409607097295813617965666593923258497570818298467302330836753434371412106087840182988198453954976916113194062705300055183089425664465768594472956142152965319544517504538355920984170983090231220594209687490036657804114274576499006575589911603245004429025455497412833803057314124681125263480692787588185474861403187929314168521635466756363573526214490263836902357918846015344165127543501287126974840311898249429750341375757176732887727656875647927452851240585514220883839934058184296703088073803450527495897092310801995912106928689145199202247634846848513002133082417125183596482255737064729887252600146918315988982168304229299525149939649384712484580935647177722630427508293539781342688275722654689445889559604735536213056928293100092594979195062251783697588917959131106744112562998726608141888026742371739315920971319697280815573300383233712061638210883086288296986492576366602801055016585716792871221750175681405291299153458341237973651988206137709026110414053388544663077711413759132665099443496390031452687609907789709572967177257047407791853227355776804131685814323388266163965210951694830318659853456932986698734043604639422365191967093701696123009661979065716764058753105806630779459879722107061704827691779868866869854292251675015093816313294198178676933882546595447767344184830647364806116504889140034051469564002639472811403395773473905711755317546761107849765689945624470016428656428794235663225146391612131670716654949781983413306818830197003453547306522154460147547037308444922910034510216085318423402709048128504937341008201129277634187174852737183844267030364091084034842743446669238196197917655326787225275770081036188612628421498486959372111058278587783027817539706363707562496682573692948502483498875471754134951828413467798347363568694261771731991290657830959026416398018989547400876652928302893399436959718654326977338269052145408108687193287763390949415311912103348682692604935342693888937869367040087193729353982764249561523364239745463536813778919045146072615181389708903143060924177033040392943304922089937739955510639150866923803598552895089570376232220032453157599008882430323554554212668319096853174627429909929417354077024101609805010818347582066973935776164548832372200794626670992772671568991251123071314105155575625796410778443947901713914809851379722370384546312544708920508724988737089023859438239529617148348858611136204345609932782938776856766977701454768312539580528657558163880403747660028935716494393408546242319446183073925054341590092512216529777648879895223016714625805942294922852578797733737231650445297412425131602725573672890976372035229284174825910096727357113049458815351258644994947125157589545802829596625729771212049609144295425808165835943030365786807372620840816631413227237980284949453048763650455675088231551432554343927601211406431210802307727605532342403230359002031231883309290373543258089127589814529636077044591362806979686165126732771001003291909683744670106688134699104386137298453163840845229775240937889369017983473986248254301816049706036519389960737003719953628411447001703163088711476447814952387821664623376618570102078794909155545270280879562536161366256133317464563655241790730514017717716889929170700025602964385466184588603647958611208667567906633009792522906082998243279776093060820381254974749529167254575983115981049725968328997764750828276629868577567986590787125296612157976739360885340597248171345775874360147075878903072498631751593179204949281779106030174874831487964737803848804335973757571748508664716786112866026144883390075421843062636497506163409213975570768857396081333689989414065113756177320681980012628344633858867093379585784583097631208063641823301202358912359124597500772366158422608516848427025724335911360277540462117311652240135975490273972248515934414719426577131979129760170843781003748747605900580062308212197465625503237872538989451061017036916277555590742800686214474731913236594267497192686650272592597991860268044365904546167443171699214731852156076279426145263565100621342166231186725746784751745501070762244569522397293879212199559689327908188507016050449953276363905720394844898347786219785941179812716034221242082886707022070494373800431143056605279178033207559824066426701852214071415173512256564663170102681375320038380754058371402116795271307510569160162691216458696506943169481943194263910403768522614690047668335330000041816985921478913834318553505446545425950402391922776153207531848077694872070567795321013397062809685461506920141456988170369655896262581864321709622030632600509744191919450922462736207957432483650574816290383344765799197454043932925626569844397792618595340960862249162506702448476460896591668837458767737082875190521992261709051151217065710260780960375712644620987051940844978324548908693132476954634037648531398234188284708354399990109949515728297003530361498012831269524052599746645077170582263378259439221592475393239591100106495003180418548780220267722874837093983298147752888591985094373922440128224265597614657524671349753282084884410795361306706141730151595982532308135601009147272922794401297477799841661178264817289231615437116804861829205248308811803406270507907879036354486759858207816412094486703931116232950773016162590871744189396096544441296398292504065038922820812949865396895480792272275298974735876352526313139302951175608416681626067678549099946836996415168843283072181368267006460670215667165810807554021258454232538867940448467562468119495875178640893239092809866868146715780271007520927950793971594953471932257367810357860071079532219341443201842213262614893899066571800671525557375598669630606582118542088234570292435193830423953234700945325517806993897286017228907873195069946277342938611391095468936556253198060925500953517087523118679022992009141799766068442888576311235131700960259766014510610400980025415826851574975044293746425581610288976821965770742270416040704138378110626446941632266445091923314418668458787122096519240213526813506703144534012680922465290772981145193678515662607978123724287872938054450615814850799997720979204165817292747603927252729575008015953971438358069979244046251335291513704853102942989278929829773381001789154991252828863213168595873814104677244816589097689558771722149084334694758079527833280707529714639239959231905147357495524480364475460750266159044232300114440867708334892788635722656812927744407984384045086613400032148050633950936389260616850430140028310378476531127716542529090484454211477529647578409767715827224831668177032374694453129201132278959077447976308051890639421155204463010508893928509101261854955381546061694945635474232530543902117855176009817593439629797906902906019932643260601583343388784802327259888596070312718959207706246329033061040896380291166407377603629044217204829779561479103307113238716093534405642071209416260532782750483113742402262194798260430460961221882194702649660693911834670443818022248721256182844450516787023937467574937116299239345193931439337269459136834198062343898306239577405594018457564561126654249606763924973906300061587740581975502348474208633492425616691484442356246916271319692824415561236317962239946395456913203345291698431922631068051492681060357523639254636316366630139740271238008331507911408651481758602200284448068834472730461890028655428834613714813281468886692236585627011360942240320181168718184274736838160754765036056700133580124136855843162037540194410149757055537542934733275310085374345297332093685170667067192027860533674761135265666404796256522503062809433069361548551337951490921703910709356702755267150434168520641395507810134770190025302828649909861960064060377275308112734346803712000637076948143611908695203146961937407258089361213890643439815716092848753725809364217982230458032610827618168903642904426442558638914353556696830241371609874896978390613649337559264252431312401117671292007872808360393320746994672705909280546238003148510934041356571813783728413888278728418054363276051993467847166200435535468970117446433783951333602912277411285562144463125368235399482361899323308592462459348963915220890123929232970734048072625712120515454802704342655845795026067296898411651601142147559861361474653544835860220518807364250329836607437247461635999575462836436854306668285268694785241597882390227510529880949437502813198674953405596832922839823804563676873759573024018888648109860708976185598932377137666034593196848162061782034300294367922534266597868294282552789852440651801832571471973580359312202147449353477776981804614642219863137041125117720486604708961111990628992090223964373467887361267226726306226258015082539562287810040680387051792114119015856273106984755712724586096007320800398945141518458180435885776989190680429025015267673107421510901445356012821616526049026135529673657913721623207139277451758634133263211569627837419640795189948886295047681436666762868361866574469807341117368980466388378940451432691958780056741592090036557558251884355237981168921156123764193503727979428791570734067121259948725338800814487461143689571434405825809796290955402667980256433242393655706421692807454001258701602793497470875534389876936252959967925706034358942838763853714170646075817702001604015687452618818082768637812218791548127022247831447786917161006818033905588607313121807776304717622668819674575709827001932957845289292340726797724035245196110635975491535486743974747429519122409312736790409360853903636785862784076908099605343490228467161452048808778845820972930401679780426956225863528381628935976786105274015090515802437645129703189675917582448723799777064292738653662076923708325604801444361260419719275292256672833778387868253414172462851805570233556805337445158463901003226994793346527520876294654354521884706831841400803987632069488922288708852922377803402686248399423537819134470312935561494387851598187077765223636788521656360248326979921177307850494970394962264691083970656273056023551279762285165619651630790696321580631284081836735631147644883199202565253430847345473803931533689331165062830177321682979810252376362118396691401134590920808467218920165731004973750254819783643920934167539336895337750467031144748909212667527786043072365509592785374931860718826090471845128481935382348834054196974372693644288473849392874217339994060719702624691583401540425484672893416318490748868816128641407371096411104908503930185657701227909180088370698908800245640729675580527386726442961932057839330283715897999324672944921343345733235353424069299093962982527138393046289216394271250164037003429015027616901056304986443693987845203183785812130670031179866461813385276876984364625407811445053252143963431424711488748602479690231636807694182782486103906806972225924095951542301810870909763415740021512715134520098845226079689707778226911090368591207573457188538370991658816921512296660641289915405298562882923944605890580812521421330882513685946065699276117751162041794968892814425666326593145619908414351641470099866754107775125744915467934804625144390318008147314718109298107862251856451206057968166005440960978625986310402145041929204105504187195841636381644889080264017456357718141954926565801797453706108806993079034267958790097406951776981619128745338128341757972433586442028845262726636676395105653656118715243263987637337620077909306015408590643008664525874039973998207797684396612554685221077952997958493634396479998851223558264067415487428693658765072343487301328472962108803363374125978479504388589532584098012038101692256382616340186044807012655140496534506484644915766676996671685936430178511733266974856265839465006910751495256982087711337154315925580539433797024282030976430778863837414434678353528375912140998393922702653717838635143183088530128228268789574298510148352999449356708174859023293509729515970307064893867928103437394086315025950080034932341708842095747817973211444003757701294176713750063314170452385571778166433646265829451358833814795305579104902117962965831337310283525934175884236336735856650628214443296156495974086172986068202456599128686538867414041481970013043253412993136889803968660417989595901579402403409796708659546624914628684261312963217644587598031269906555564206604847917071590853734823668038568115988885296979501540734998499746059101918409724844031675400977378499941225328244254616070902024479764652490977419856755563240478193435352518564660552389865932769349276764876929374930761836666238994135147846493007519156221760262858157808306732994437791401438557453637911735991284037526699279483019302925498258453910553559853548810008036229140327913255858544736178723295683878792352276259746848991433694655684618664691323636546409333205802003158708440516984418735451991161861776332348146557625098241474210541638688159668319992936180635793947625673835342482862886317127952268092810165253928302337772620040540525000118460098986338580802770279027157574938804836853903956099631260778262449025394779423573063814676968087869293779012721053840209961454684036723161255012729190629927299795457220097076111443508287889629222381832609055247864984331011751304669410567852554786538739933881287649568471018882570442513259198471124813183738161592427170499887830243266004367994042476591333261104477042982682431674154830416430916363662803738409508220600028188115814467617125524202673498839725585959663512586874893714167547479169243544811772124212655817736519475400015494885338300623414147115282619009504758978113993647993439180336313513789035725957468675672144108448632895500487074564579900250390070043979857565798536515267388719240895639416097544090420094773226386892152966011139699261900538084041518754198862921199009081826648718199106113666327877493720036651017873517544073508154042072976632011581552441944423241567540876846573417918637532970774989372058509262848383495872864350612272597907951191945249032775333863605233516460151992551906139315840378694013424221434833488353966893563663942159554301008386437401281787940377167857359944947446498068321478272730370212322434967865462111165403168020111745281128016831803155616629000486079980912531815878049913611766431778265203776741741100235190838080535553781924042841254406785540723464336836474300213954597538108249743213156995070358201291342860527850152317384295371949916484974207393974502163702270282118012522818320897746651365708227453619110818568600417526440588116349330935727531448826878339637162116891088735933302817476389357739439800948766630909962827230839771131874256430267775396482227394631494271704393906513369073648800775116121182521903536313182465444349612638284507657128793895220688730993038025792431108950953981913012235600596330576257862084285233775350963236131402364736286712373046633838296951217908602056944372592575547105633109359700898013603105649783819168220283170013215924055773084828017010699047171306572035351497636884743441290755220749598382441195911966824362089132729373298993411779461075785646182980749519844739475149275537830570883441493960425701057420919127134252455075814758736804622862483469717744438310666807482263727028356190103567703611106058354799634592243840615444666555585746877883049234333922703132993486287958547805297043612773110978329643889704738565311336064137976959123940357440287777496531414309882870928149020082367372329115188173081714704056017558000672623764299788582698143920358350012672881037321363207527636953844940018537085539303446551136473975516383454365579692825260275377313081736367737534390749233332660907820108148685097535066153195104573329121424493889096177381696312743761517443450053935097032923250051073013651254995468817927607347758088405012906107749143922753214861371770685005911529515058673049114214058651782599485884949153940331790783242997445873814047907342882106427330031193379363435869302908127174017778654501194634538994574913821382200909373487838975509184833031590086523408739480594578375563321957891270595822324638323431743735967331140292335331601304022929572523999685606481855068710276370627339904641638959771945120151338836733038036302651780080820846065113639794741172063221720791679704262926970806030694770117076286143247182808074724801700435061133374689560942643732588271274362561504339980692775461434051251791222207383536225410192624345833465140581755325002336431112333471340072060422003062365032916301604136488297796583875290207046815317159886248894709691141005330341328016960878462294850425900784684618069103684117171417394583662320019896185728447304319563702555238598055235737950254639661460295186339224120063192296687798257524982130209379152463166104461877781154261289822237029201484828551020784191546853651697526037645304926407733903589689352583318820715857945122680675402249912597170846654423103830990878588424453626068681516953736888548951679956105990115482503811741417074553864636897096557518912230837869288777917311355566086944832374518176286176615338038422455263837781151506787118153573746699488274948093973917241451980482258293182336022919759569614879753026481059911390732870428876976271088564691411006154255278372654004261862823355513802058220453530122049795765611364416015295644750296627781316517449868472991123740227214174204956852189365688781075782874312024683834604298247379098636497826324484921398177344117059234458593666560257796165477137653915139790873752983628821596625093272472677179222083014147874519671054580235724734683518467936412390100176469393336428344245767578920101776976400019431269026302285994414361695715367489348522647812316270297960511251815424151103038933954468218107962137106727023305003307082417303304778800573275698362235875372934020771936119832898186330671693757083357809264861492046059195822758795278136172191703846952898345063865630617124382486353078731889453841668526222185019282443842272644946324540891615913909436021558413102640291346177641892965106522642673425016227042374717174106916037419886794567040371539960605184567833178007513176818507298181939473568127523576309359069255705122353057955074456425850192691544914105737678439485629066553569530293734931540759353990814537390714294663598441002372543426693689744142640186263416130101408035581073804323232580567306638473756431721161822705641342484808441046356444722144703584986517137018423159360183904884669383071099137570595304905793699922308321199931721833592975654942406917589262490828218759226808941047777559713762374958111009731048330216506347593759388940629472769754121877813005189775393453244055211308867987619942504119875619936066142169401483228176901430169756075510039264204164680306158434642898181021128647837125590953923534384602549794780942341975899156435149531907814241921800578634684816062269982732131890326413306046444760956227435442138582879609250302941882589697443316691523786414377683230133259980466661834154936260550305324153687741957911957781439453277989303883391400422558908545545944847964416428890244100376956354979068419033429326756732641394450378801244590286488724578063527729415745662339344579304129528526289695767910650738593522581447969143755172139677601041809499069872482079089378715586139039223327135883460277718670076042903497974817316944232791960914748253476973607121729013998691461916251401011245024087182447181546439800688876544276438492913940084083041731779645068720426658113493281814487938980263733713130931347686945686604417102145211046984090040497883947747212209957097044685653397013567770654298232181622913467986097250775444873955149193102204139684022394961060206220128082493096004547317800383142354682210343129304231953656023977697293285901292143317779348910982188723549906404993181148412257479993498910099992810971317862466406341273146262693283681557013402867430184655460586711201518602659694475467637373581741764868145045118642498632077881001681031980371104722780222610007911341365881480266716612697634071380501711979394534979606278097798034749572453134759178186020591713573351503930706435710942562820290463042958360659506691713866714631130473464795615064318295996295459007593193100386461130305022977546174434474812819804456718571410813567574194225259758745727213871974390161720493865598032480292433686259596922734695413024806930066271833683408942171523282281339386250418782680926255088749618948809811916338962623183478710444133187505491560067679890843956450511266590062582895000895512603462396593280193117518479573093686562172388733626057434903837710014719638224715614986972084478120926381671478100817615120987698593154548944364629845536955550560428753500896303844129636411176176633795737822656339544653206741073206805047789753846402576201858913506032792280702008118745953076152111647929207841900197801401767397679969120424106702354315647247227923667706901454508746269786073988954939186181204197098069358182804825703017803232241547348692338673447646397973006184759939621955108655463779694727890681811229910136890072686032181836236501510175884692915652800337212813157264425398073262110014888952544747107928442649003308703021291103008991417944892066388213997089029075860121320297359624099854637028682842150543052146657631682155277553713982687085865021906104907697751493676367611912541827726037870455167381037213372556486715480711329186205290670089035632513322002258487509833215407192924689949361769188121579333525082544475575922056830256107649092260550312043142999112772611683178285099159132587541157695210927816345150454528376305258184389662925723404828547091987768828934834120763352733357096291467932257952751188855380719134994097739990605168893599469415771330663350035900368550357290454589600936641694604451469201708627750886885753966953147076738636830369286767654767293541214577409694789671669129270792945574990332982341866404100809099772738812240683759862991369600437885496221757302888279170655684748433267897049794511349098978537603602970081013733626800860968246342366410778186370028819985254990610457691324554199582921166804012088885083008482766336905909669256025797722229875743018355232414359722677921210290173336377548339091793703388591797214298776650500051312655472883082872731576984050509914712714932781784042262227520382470925723903401731157707908595800082955576307769447553691065054203663895927500518023768354974586357404871277405478172493654013762508402091968617989474604684118710607982503007050717750426763138261474665935627394695137466077474521759913838237181043774720472610909347530253623691402710960127859037397371760208615000685348317959944248069325717513451065044217420338622616994411721712532353668769006125965254825726205088548879795911186494719810874334110710309143098523444438730372195041266618067613920433027317354000163327700872959466660654963415814982968112133217896938135598161803407857304308673629530660522906572345851008613008436938066540752701451884076772119338368177995921364984988329439565379891845305417448653046869006789860552227550476211069555674681088065050072439020859301596392462724196625442839101457542134647507934026533928775526017107618967703325958920132873340796466862264283995976317225442837179270117300969527345898618889978355520816613087567152596705079215173998850157489389789646417493786686891983451892318463059985873175554174160005758698668746349577428018170832115264142948563430321600720052116040971043117287243693816689688852701465966576465617920370101234945136197819706492680433046352401948130052999947767493969776680204494661377025037538656797812316572580252216637250390821824095818837743744765139433503160909393117534128542796392702227124711374397064292147379745516382366738958189699382850334906005648256962714366835369395390723113768999853602366892533276094531347045589544892490153449546675508349779286847243282619897467196254137346278763962489304841892515642412770391787819751679717070883976430295557428854877001772425026758458788773663909286174662267926863388181881704044502271531569868526139331160844318626798259002256515753611139217653353829506074208957905464715230697767618006818358945449959695213242120179250899777472258768060070641192800061157238471470119863918015760514389701648716804230958359128953608476725537216319816128390822140566601856150393048358109246985172345978722618256453930190195672034597404370648105418147882061039104730991091397647499502363808999789445285109000232065465309618811498229763740521491623435847086320483965750444007837158625345804857800603697094317314094520198182726379133062068858947112327092162565912840090937363058779049868694522194968071332787735106662675659897146622667086892145309158530426784964223622150918610093057050502963451427750531422286305167196052204995885489800850016975518435488555915970219528784493321442359956518154075385375107948655226318704192150652588814574874981204999201001155562659047137930269342601518296635158877049443206527333114111790349005643049441411216032479909714027730527600774798504676274020888038813461198841506215410495862882066951606804639478294514846365334860740099764526014813563474609039921119813493078105415875826865942958331706805666455611763508049449850052284217448606867705179607266753653903603564952838689822633269688106058024372982499172859266059823278959889818185949647770914666713583321668757853543261915561595987719844135940062542763278873666109403146083611879481262466680866721338730535566679958084497790647765809239970238674990001319553210346740148742290383517513049662543685424910280019096050490821360573783889370821321515753715951935212257607534630912190536026090867074329895604654865551663987022698296119406011679126186205180638180062876028224480404493448961380689318184690063951612706220799860072236758221691097681089453537804681028711991962336132892800574712795715494474030932266164949348803622499166555263376943645802330764466693198931365613247273632650048002741209553022829174446146899371865032552720717489389408095075903004350372933511530329594139277465246208478210179790071479896444059448891506561051380107346170668854295681840429160437696852202226871025190475894354964106426634993171400974701124229547300173910914741809191564350226592278333474291787410691775230675466816402490556347454631496087451035130862772161568837115992428261637736716878683485645592573813964673834767779110183221595056397928149428959844784874451674890705413027075639369905515882212089638588220610032161252786376964324480826940848058985612436291341346938536867733845974040417410294162733716163114320054642889254046887986026205769219063820961620241650731290859106643302729074755322722179204108842863662763448504071958257333946997829191378243505888313141876671384456987991461672755731448195028220077486196390824573302683861892234978174756777137985976725917186338737312697308811860362395319447968612581270424221563510915570127465963448202050839031252623564647532363183075498863122604833293381981661588098483820029657889129122641665933555130615716801331616986132517436320911148867083624822827494593417489043178440369183767376355848563164263643018417163218096570542900501006718351947190565646484034562721006274056880090694830993071876380918462278241425796872755971003055063431786460933552712618477138171631752402817361493205055736050436485829623968393700054263867285588221355970981242128991975816452760717811436921717429174000175521101209781129336536344153091409810045194561081940189397506661765017841610489932541259910420347791917656795358245198667200890654378991924457419287174088756811733106637554948713950791177163351017544960529020398773186119583886496260673284104239269038801220656246664110059642382417572337894831432538265591772287001062890175741826987675070060590309719959147093347576296426112095880145951563874927188993650570053596043989590214563362019547275729919225398070519734913313800753127227601825264519288521243352444397736140721966901330397762398634147475093121805119503157701467640481465149116690253132246723921993537674057319195901581417336756100420123510837523080591858734638132997720001820566744690312417687241442113940135592589610494338108541563554916948682482084346199535786611364260200501886221493119738614767765847526923157291951086466188414561900373422813928338030078655760360071470754492777840660814737149661857086697067079185751806732226441075864871988242980003077005605515648594344634302585957611177854388848234486763124202650572009839656123987627898141575469705656220859842358876570848750373666411891404807102524161201692712119206911000824828196605076941011567882352491024484266827249267526142321873351949041281790785751687850220835993828658369453118951360342466053333738657879447819780015576190917946683020038555225808393606043813715900266812050487508991902976085850833136768866342988667290721428318325775984769005505134877445092745145216826514582197846044231444980011304993936863673427295146803555355684023508733754599908002420604159338693419617857709637541196304758544168898201621004481153055120564982921560960299221429760543743777093824563000341903574073525062908185651794539137354626321319388214394393019211359316817883493239631881983762652817880093664071258813964224766874826803687829625278354785096326672679746843934443995139563224395267872789633774954204372547898038487741986894362715527239677466071222713223966773650629635399006143723957079031539257175512137520664808417707516749280632129773425601195232590048129263439533989178739938568809864608847982158229879008615465153681436256736779762231343263376452833126178951189637808136507695573957518785104569362719154906297341827796231791553165197731188786566692460357481919541231409179177893484069458613404150949980335070671140261545982290019163791458262157548792562546118572620930753787145707964780078727647367820896407270151040821550622894602084903125282285590373964336346094670810959483886906196025656669994420296684881463844733130342278426148650718358625626242008196222132133872118147354619468251207040820365102395635513486077055059784049097481741369298318784774239131196933273109698733424450803071406968897651291504839663326981520389433497607530889338368037189573133537856683404409338883130637711148071967617603100070095897330877765938568857998386835951963687094526693619471535736705219534184643725004805146840269975119454380007844070182653258167785901015742014339584360913964699153741174166306659677273309889496494379335862706691883750380940325852262256713940086576887393033412519947285920277583616354298574932220350165630157066213642790702518497113691273943695495342793061640350239038179208875374190733472351275449034230714244439523801554703226444019419078941089826221338377350511835682067250989557519333250923060802247439174383185294090687315661878136069629509570718893247607606394219549821898568152357192747889444972585532062614092136199021338441594018542303608258646127563143959943258211848124585092510190701167669525966335439137095172506697772161676352893533419789414299414367581839664663231925534910747864158104345726222866193407049514108473262869408137805665699404431548663140166874284246970660804295684461402735121815172735138635607126425903163366145517461549594207669731475081791903137810359329341658236008399314340529183822219429068178250762191268044018891047382702894474664115840581796088038450809555724890531952642349028292203755193978235575461290660484400135951742009077582238135760567431580332235350277029805239667859270574597759284589125558181932674869879530646542020364804840515948095298941933134442492923172055260206872549186010668979323647805369387116330232097354981844811348321604354129480306208741704838744991875147123937191822585719905248976511991726064850970248944354452079599634919430323100637679307267293044749518051003477536960943068898384829733300126083700831418117481019744014571198498998748389430728449557633151716909249301571554767024378616326642677463947258266243398709207365686590464302043069376010966389622329976106231285063285458821172429283760900793406289378615487263286200983794979852748215876126090007703256736059577916142886384817080359604062976108849424964140544037140556724681880272312713897930043570422118165473556128117309057749646144222071198237598434557395363194332119611628898554964809918004584757363675864867626993160798241986802009116419976428880662253627475114116988549082862430627076944936156481799067247610129468889702706899116642741953675256094131340699270376152896398970000207118496844419038127673315721879924549439006462472374970763919566392764333643137230766732761201518204627478628318351279534395125817880886343610252011416761799051098151137213719049874296141298626389823186726212538881209204821289614966138086703096996983692008707182834078085475601356709418999650363369308661716062296822375747467024968466981207876160518590475467442884457150003443011798420653392901172644453233791194602192931135191635862435959260797718362357290167029972854462835618855158166929751503254931324345943374569652823818011495267859792852873088180113622750944274256559011324956086612586135720155880002597949043465731394719447614988642543649165015211443308049787795286753725997189641268926979053069091652958048743630613809033543066469645546510336087536302239243163183915458224345111479822207709214154504080318634670064146761087776690086838144487331590303958475177341050730284935913847765592954259714231226655718976342309391695802265746569207224609461431958245967107701722618633984359853267041702399871247621915811617688205061929856165119337181560908069735316828050503066279301420764798528376119092952398939648448947007634908740039723736222085121824103074459457243086917118632683040068945468037562262189048359131215264102987099673663317148261137920456058077735946120412351805963531394796666317710986418599058226796374051873792520633293321523942079895742743776108537095024162698333346756539900001142669812638500776049264098484593536704731679327162590459302413286087731598839582206659709021393797032802027662337153401073314602289583499745736679361225826173864134731254090564534019534201293023959137432237653633017650590260581420691387185953707855763577762543697855585573527539188988085597256086610915443354675953046022372894711291650578306544078171714109276200431726019308987619052196041606579269956776959240295430421102532844643419656431114836403060435598053477993401563973308257718735011630646720102548820729534662238881152995231104557899665682382425976485827822703159206741744602114700868829153636441074879957202604382021196888836812948065343625238141944041358595325944083721583107067230476772036316899179962829087550040727989634256952253157704638741262889802273142326966278768751606599329021586886910519123633696240886737914757867989520650401828526678932161115645973335025397193772893011676388133893496665583162510168537827634421530994319792124101370392417096716760814016286549041045549141849826542159791792940940810607826580849673823949517952320178173313415113508970254560175309278666786882963577307997588034487309119464867443497754193139403666617513574728311200467785374976432838879528084830683400105038991289103349917906544278140163732964608830725873248333289954612684592878098170557257452227547481644008654780079103000802974123225764945250756223312032817038142539851631166291123053516478547789487525484517300027669401265124281959684762177146291430150999604520117845760430385435733565186858982060187999447542775578420087923753583071257906446287304957802975926144873753997428223722235868673142213106767028326055815155798139324686611743859958171510794974227448203027641764547346084393816642785406863878874656465510204109947302807299280489206488094669932097850993700766114875247283946362542339473641942003674078913199641234236718766359867915036296015498121650838931626221000729304099723039598447505125492326504017279915381050498049472254327835652705709753788244295639526056779691079969736136128087080337867532983949364123417776432068522697799040151026130283308588387119349318199199508069095550346367694685439154416011356619388928336074681048486461905756049562443459964333914780748929196889923169196343839151868701653139174558022085177890855304524510632455243757332446042734589366998679538425055033680257740271927895644590689530720026568292682924292705042709190366543740175151189804777252031267517010196359976722084641670116089507886573400052342238331004685753851316676011152662262596572162595698172804832488817157654728459531826451531587721582786463961132531403948901668703796850404307922657440950938293191960776122065431089031925809764633978231286106020574170973634741580583849592131296682843223873359605844997921376432767881029386314457939568973469447101286243572409736571814047006561370356128704380779639070988139291714258721774215467579823414544517849351774838692298882602481806132844067043987968322800687433887013144954511312994048395155058530372241206243309168835492582904865294380136425462398885550672993349600569684998779311819406747457417342114063888121296605321308448994767978902641875916757067701025347634843358029940962276340300284653976865914993619209597071877870487891072845382335764374064313708003090127193487007151513204792759667378130781290035029235303474821455120772375284167170396819729367586995306235341434535689761816922393363315077760048028006926883344225952743375794126240758533106217393302035338354102691361743851940500887102587355158000150197185740296068504451392106198376081922470164447174563409001635246742511490468614347635727806286732934089435500634469924843647269997543624354723864522421884729783129503612807300286904433728455151260253948877850434850046316199346214458493007562311225346201308758952293648781475562728962114772786610742722341831864753270264385157033972462842028251364403491889372419508001201897694301054729026151434933531348804599515864577660257552000198589527442115537351096949121083510096895880547861014574997963242560558571851641503609817228896711673890753602360512230568196340839702781569320129399386543277782101774233304109544622814641209262651788678310768558043823570457147713829480952472940684051702735410492832110439661147353837408793514393941629464144950741288964482107637029143743099607768145913985387255866576554328308750411953809986387030118801394872564351985691861900196589260914228760169090489953419078104545494677718056794943115231249550551487510194544472574368304857960573427659105473366285379305483140445471260396653366495581348655979553346970722929257052267039983504343781849973854847173694866437003181562505919905245401317567391123256992084064773599383999226486598649271583655183875305843720073177274011163728782518596453464628496644318833290335872434954997358130635549070659909902919391670212077511245615944570100449689024077488022519768754224685957278578515969869213707696895395327777125677350855318763968096343710106466687080471124742766563505366879474227162676475216656928914717296781001970036337339990220267065577669301054014532494127629025430643882676411006573012192658411589880242023581455893076991793910553506239153315664183774064928852548441096717722246814912252120848160831905520734814757869703966300197455556488118553686523372458426865498131648128886736458321002146335174873850974991718641913551491146733826531837672981507406346947078012169694459025487313940390805855723753009330115689308559398116587149385070311879856420771095956569101837677373343362386318951350023374245843668680553312822056518551361245999242304624065227709799878856008418600111883618647059163050662789132849458037091706308188045969841088274190179847651913299571938389543998615730510444358358498551691480093400265593905675809745095551492379017545274460005547464145519305948375091506995208422076610368526118524714965703344046181836922635626965245487234999534317808850507074991363281566810131125259322777921998101251798967326177218968575280943319136737815679668768030139769578899900357093596161441590299820502494808744776793297463066204720510925098218171137093048767397406213329675728541914670897693624564928699612327203168076623188380820459941416616264192865583571052354757961946246420791104327748216258533873115870892203693474515688009024469936416837856689084608674515657680238091703986223093804954773440215790170408988270279257576871167146623993051398293327144036910323404952084261863834092620963888316145866578936824633507333595583073917521126051873038555129927928346428387890386004008067081853497221736727819262387247377804616933875674412258165102150573850893016522126837267117235467374305905076801965192280284263862904400258591357774845756998015953799088549842749936692321248694511967630038603917019367742612444409252294314981736278076151301633889311862178265430756532849941045065362546799025433280036823092700451555082910466697517270410813422490359077448400587019249111970174404261973385216570033596838363603376989907887167520190832113720420087346964082185978912946235802756274469161089653581614252964482897653543703093725515841112225215095929739052185003510889718145455561634167903671969470986203662002141749407697517725615314335390185475126196671163029898971464570924219781262108224636699471516344841872686040987257996417786168375719083021551148024052164191726164489151692174511452514872177377131397843057170056536162899142444171515186196664260433183672191783769549855609394614257691172540544305723852952747252256356501302190727839816632680743165947286778041156998580804485541742281268459458059143952596857375100315823921244567175622365229049445491983515137483454891694935276368661010847284734140172095624261636332462391487210929947153625723717946277254688117273538276521553613000084161112418146895059385309998109314138220750032456443554990157669033983356270814137169643712787042183016376312409845936531287839508790438177932203451461192631030656407295996166049186724613022822666932639711850859648504316160780257043297915758126635863852915201802474838712467395127370206284239428936442510133339463487954667155452598399517692132324062048779996410067488966089478861530480553480237706664879737262513437021485148614052237658402310226474095468259304577207584335544199767021716915080291707393359577900684914494270623006927373371766400574579692577422495283606229561489476881740245610715894921880937952701759760719358499614579680357474496588710812833925680518648129021096247368504800662539097408277966823830195479621337197641587016765760909726099011570473460522801708949074347522822425923838137656702101245635968787372634443467523614456688890417119728590719629468308670972786712819054085935165081715505238953277211095540680350141146701251197004767694826701930636954636956718437237329180555232548772804501194890189977708691331248899831041244164032284406483464427531033872271425096707332414931996390357687106182355708065686840170315885793775610341551868755430633375512489806060312784324737151369589873808073531381701872909743924576516848487735663223368027351184672103276595081410146698916409317378563698431087691260199943947701252437657746178181140187288522619185269884852324041725550455947412921399164156320255687786329589622378593289205221994872850849197140749104587319530041582395179268077244647018148986068377851924345930711032736434303717662452910056570592782118195367264628862895659306651601533487462807513981343581751677506849993688287135682104316320651448607762618569459648046427860055684510142736566370622501640934451888439718811574269018125616948873899175495564520430791663492243903792883594460644988461948219218801008521529120614303350587011155466230177033336320105383553278798921048380008008465381294300085333556481240583140766439567133484973428020187095204205125767438924662883119694159474650811150936706101485825531131892203410563814895239147333816898395788629360228824329849761268928669635072114544152624095731329075810407464570585864957868749209217746725405910874185719407001661533145370250649561561294077978013890935922836626559019115401559994681208565400416132128450508284232436112614690302631482804876847409459157683268915155234821190384575553983188474028374048218726236118639319255831622165278173613337815986678721827107346946333383626634652354634665497047414967775499499867667784613264695274958649614924343864331974763768197221163556385996441664504827497483304993499169537924963723128690223347157129136106286908864762374427333764198924680802993082060565746503493573447886198844825422284515701717216266528555472752695642287725297098623865824623047044626871466934544343374884348413658212739909186762235048779275038555161111539431996850837030365126190307112972737806653047824014006237505728391198967219769883589738902839389248711915558831757555112078754207674615425366871927164953154118041742408415126183393598123960043045120992910632844476559397842497840681420896862587725475270177285724740882108649340714685690790186083964409098266864216062253525306270547936040852374284792423972132770379714360265605757216756431579608351949402798641803879670969327567305789452474789538062139700024422563198604349698180772217620323153875416137727207285945163671864940890814038882912257238346618366460907103072424614335136947565569206440824105534743657691832708532221292149709984909685426648497280633245156701487141355444972826903856040791905496594519661443567059513835223450970588344318148395102135480114089484370514567815709222930333320720654273110252938781804394245507368833822532313856604969875628703827028903937446006539851116061789734580211642090642625330915664094859078599078930547079024169888333828061237450097926182911244394217060686743423825662221803896371302078366433611470488218349563405411628320499053397100456200149655653500875962452548790852422236393191598790633839286852523414233895207258185444974872672820628112692896169717667604993572209326110569335586235031829782662066007158923267452150921628746214054127013143423212241101988697961426479003223643529659616624692278923812950064876831366556666511968344684953041255986983738029767472391607070440976820596127706035691776350605026988730460392840691824119910073825211225739101327178765004153578188599984174114670880653050785675403951431802083067098321488555092234142681542895469126104644908069030514605782983981050368041148889037919566726068342381308786456485771081144485690841129199925232435046327889289863392284189809640151493347126941156006902605512292484560042060185396834325795497352884889314895855479303243195011304392298193078536861976645403322843037222903331834034242326216227972247725422253642797700949250886541288488350937483125259352251216163608196376310226501411517263400603015396823379190233012447164498079064188421143536635318557142140138924581646034507180578531859180786858250912768668253371329146461640843127374311833862709574829412899800112256230431483752198096685854594902171790831009767308277186469761442703978676809171089503361697653762681571725350710753153888018010585307160931289335414535140142705796328060034898698239416070248231801047977603386510078711501693129116608335506141936466740543257576239647103384737482018787430692177041104987360261502195672171870960780121376255090806012281928845422947108413051512973316250246235324143920177010682615599339791260497616203527815480777789692706213952727472920690220619951509632705311424580634334251458428877429099813897304418007113598955699814189664521257976212025875468276843941836245523864258533059598284079598629384716190495641704242065345777618690735333552088047466243238457110952087401881672166022155432662761718809637035014533510061758005533179852400401693874132881079766695806245855081369991734434496135218495454369934469131477544120447304833401654603767827812385909064678987733281156471010511767028748099416581841057752812927236411853509320449139841866652890990863819006437638195994923382726101144227286117001846980588996244073291255108978292752665924624794755967782905012502469843118269331116043247244415629313036795578777676571894849276511841135893003623691329366191631228660696103196494873640966038120580079084517610955751910738904922163526971375832185188253297098041193500299068437255690772105707150135164642313973195568430127685861604080049345705264117670491560343472391807914651499144419190958841040277838023052251307316774988817305132371293377210642714454788236803079378324174159347117590450215311293358345586466235342239263610564948058474671035899780007678683854538023338118538545235361506996068933497172413949528442617505483601079070746400326865610783554476468252273737131870430258004953163656278036770018793920745369093007559184786898352915279006006811964575542871444843530358589224529579235031649331421270633605884484766680047766385912396511745913677702145876937933314653241611605512925835910145685763008918237654560458821774410662704312164079013170227929071891971702044288413256719126512462286419281198963694691191915322714558222911182980241656693565081354404217817928480767751051490887695172362282332695826267238156848874389154613897149314701621052312448462043016482117407880677873697675825972247871533861097764506824941629522768634039395305104157925317321230072184859348001027736964362720316583443852849047455685175833304738913357321689460418960498617320787766090932158486237740494875453199416585139961709986896118824459710661578556961928385957093395181104626448142049665757113771818135221124695002236867872048230757197613700107153985148727422181707843986540343065759548623233289147434007396532848683705818785013707475830527979268629933742863288395449697042544694598940660148049124308056617477956668193805612307437556250840641768588369962693066135973398938745774487669113903854920179378198787223516325675814362689933202244398808098271969684288471781338714001462967051346845900776082690885423541399748072175252972785100037106281906691072080217021160281195729735304279550541802611306594189518495948304038059846616108271549952025586180030770681439878998539343278069715647714002097234228710831363422320328715266320383879108676683040771458758115608419028492483043720385012673423623230220520233305045305343959949085346843537137197256204639329077336850275698042196474248113508909808913100316621551620869236314808257882813610541832897227330870064172573251481679983495716227305007747894141618785015501180098800579644440779183486302914363101097842264023058293688658760416486286550713189303355546484794635341930048372901531711460396203493010061980266067105208123656124449253283027934787633547605897453859059759650531951568403472333418964938325450125706364614953630388400167144675705105822346231238220039318658534557451765158400639588848598703151707322573267594566536210820802284987383902300928626892296354470150460367234209056617451668324826584227776388089633599565053429786719532853062465497916750659315310003526216431167187830641273813560135894238410866284197890920921163679236988882226175705811037207191982432741785330066051010510178310458766256671455579721771894651906993544547050851676834623953519260281810176144066436377185435203126547660045454958233704429238452118681342344856683551849472338801854395355603346025652359622658147240547079952176469891793915351093458979737273930199181101869794899493821902134358095069350429351483021090382272542885767109993512223892382975453244720206962163905642883838842049342672548835217166577514959448424957417433690707640207103693405498877164535406976056009832727082581601044717881211963603219938966895913819255380574849814099515082329663384242606646805271092319824890008089865648519501478624365741484146774036304605038234987320080735200992420859835755633597819599788367501035128338103745527377940807988169472157729436458144328324720725300445009457479638175720874929107904735141694852565491201175725939427516131574744763803511382901540205194383793841254531941779672453643942481274264380103761786389468516094280910524829369695250049028923949545821796681707682391171432943398768785785768431916061316761337571918580535584505606196730422296779153822501162129460871142451011597622802868750877534489967444923571222867099603843923577528466200221981544883399476902946803769826482017134427067773505961578175798143182440069130863077686408992310683884916130495227995495504202727319068294106162692998892020494668415410729987294432537987269472050820328309497996322785230293134571761970185954433842305792539855373196482034067501298597160729740815373485298495287099372953547606246168587832686458384521724720227525058547692405700213732523216659465900649980629801025040757996301102640411819049001116726198193279476815403502266877371671459468816782608946186763368118020176701690556033578893116062189492153758782373424205989465906783464920295910787454675186436953689533638289534165982861438833334476450382827526718095952291741042790722259923204246774393222942249526690655871289187267684211022969223598961740477683293352353395108073807603184969412273044757628841535641875246478033237850224866137030553561496846118887961887374349317041401735543393145680837979327200965453084121252458089740603534134439698451944084628115803599979058467737713408592926316305693204124041172540614432039118447473021154435942534892061086054500527667093420443827008557326318970794821775180207497797544224397184031446801616311001006032235513411303456405877768339785178216076127921790719049431131549724570100294713420202001668407081440643357541345687072339751321031373895005450763480985230067017083706611034072931147808205456422167116948771379122132033634330176433869087644595678477122948289240115384125998919233340426710116560012068222582267936250082550158685506855546754139722215609037397016210173093090493500395069139904784238415959885954094025939883819530442491058399552314069201621051230396886936873987072210139037418835677603294931043114138652220559330062919981856401956671619395007633556086994780682715987690070142161402979217433345270516615607589826255534095950756877360308409797125078317122717986958006222352695220282375952089679345429560784865663244193720875790555914050418816999102683628003332093019177842285914893498630254932795444308807579013037582030009717578290155066604926337072278589239849913480310564138303002821279814533646927374239659506014146912462780054852125141113855427363566773988112459682491441568731652377117162411186764554148666879981397424069378420504513988692485217105346117163883306810397103763825598175648507942599265287706207964482495477758068528808585643811521773810321606414914240134870063485002674277533623816409261211789411099027776597173028805947323623545041500121952139481657233062579388734342120975000550563760354972386664411308572051664438938803508626824338844105937546020413099275396455023273148714627326705463145839824424632778871867365026634138893924642768224401973739642447987497671740553440595442833505179583094088733388106298613057238570243773939110255778683419343232064973779295934566037764433190362406751036498388334676160890397870708698941674256445791358995266706079148747233194848908315815928783059319128962866292259737229704549674395693839580739153684692879765428673912660979440460357709610302010541936308637429893575886562145567829705729020382419694363880766379817225100294043050180762359385047396178430479508030304403327746298755787164378950442162365692390838971478035608240567489870168237082510265739117588188101000469220342384426515215975898432013882160887168496197389013721356821824001786914179228819048163350129071357939112663612847464065748577707327383332296996905710352862059867841763466309654013559344793806613308000815660180444434280867320608586822974157912656167277571276107094156361661325682674408084018648720920408780120159652497863717219393105536907823422361797494730706160368297884475871914521479202200763481255284852244618969966431280279727868880573927407982876423651842899942169148562631208886169004044208018020614972012223290767139487281613283652459311555299976883440235974985051941864824857859478117244136397651886635207928461461587138229207317894186972421633225388854612027580530629481871370865271932656284195048870979294031991070595936389003886138407800748863134210371444098096932643101484966194106381316323529804591712271108474911739798782124891206742058375317020123889665749652716909360304967380328920319946855847482698732524187562649063089837244447805185386644006216930123809688870153698879447537174791012055878036044683831282782115545339619696681702751208666251666161692233697743384201538799889458042222549412898294475665255035260095661061897282775963243354374966664305298963642442600299805142653706630149007452163886997453121991810168722318846960375332606789412029824045568692670242055987470912647264292337164289214046307415880244710471082807004492502428411728938764737324216330970248874630687348123223938438932505562780741520438813253264904529701446926617128067800793660481128827493762900340665809176375352359654475411291654039977972301731284141672384108333648543343336086135601013180011608920299407114604503029442906436766762249049856917078514289915397020122174878367707396266363915836441464164201526192993927003478477709072366856914113992347365894230181051580446229296423447411619316735572720135935357198342664483114199502660731257361760869182165142256180667603197410958870305665160566766690024885627033794250214676548522125968317313389529061583277288191479757999234211759674271073211813437645325715934273239294139786302717791184092124861770311053212436069950104631370904808628351477578562823900700635945037705259630669759639567530125400756605457694711821515003780365310647299375350287775926627761875134610545007735160953475312390727283252862690601138121956724572271718060255821322599387689292808260686859402348712500441806071095421126333092815552131361909341718734838518871769004122111593454666939200192450048837730462234044481781724545916785959847239775988280726426193104964430247724676665750875168271545311977462459586558957852147567922813091173491855057893387363002908442388066283480041655348986765247477322858067299320949684474114398674170770697368490285111720812554011051450434586062712423224923555144037195932046611056303800514335880847157475950790852244904879157682390716230343698786106563075970853772168260744906622381642302173135995103123683673307362783296903944095548269297661163246168651148436831073485216992364367989769830973901883517276732057934218339546226279046677777718097961055905946427241315854325734283650983235664612654117475322792217122632616505162365570222617245557058002017264527160203419954271541251710907340124149337357569004273859051893455373779327758411249378038105012330177651682755177082906089331385246964967553525069978443100326109181657010531135305282713843155442793041727231368397230143056355213014511197549639708988448993763234200947191431599943126042085300012261041707838254806905276890102687936502723121622560384194240353473060851801772350803516125304665763691740976869314471859277033850659222388565430389915942159621906179437427532065463314360147871276611891404276320341746278810841861375981821320116510947098222296615661406511644083633879950959721124002848198611080682663975591482805645428782504778733184101447079407399977145820849691269264280391973886887010501418709668432110517621270989875191961926176747511624570845041794819323691876051670526300607019114991934295709863281929074801090207716461504906517568278438670641302281414394707386445418546247467250414183811910865065355800000109315446689343234299235503476690174324424510940149581953658699080521414594310555050132374732855687636767323573479426888039031423595173862532285345733255579388547710242356236404720657516298431364918084000699109282615782912344326186558447483301005452550351159707672091566731495757108236729800216336637152530379813737462030617152617018296661619101201735064581792456794723474706635681981824292314371443160079024878039184929618352504415098732488895182318980177433253728036797814964375549999667976654630538514742762529426867737203517362620385303810022905954759609001637739876088793121510466158170615056871391859076249789622294211301990611519307947085715719736272735444009915758369752439567211244295539414009441151382377192237020060997039303234950776849094159804050316658108068607061527043969597664814507047255927201127266689693407641768578124561058996690342208853823099302154422837280607069060987939480638084780494914813941768014940897622408139481605263142861695643846223214423082365104997293674188537371451600788601776726840814183356128658217581935403506862106316633100862342618596310196218470504551010604072878833726849867914298459451266857449654406539957277991701688514388670684759100694376663058773050866363185603977784845221803039468866901188804373832184767976301938394520643617822911975860110673140479702152661154190393597089518307709467318725453496624892025883607018529315856864896449431920225272143803840916559075634073085383555292431148112499353365929624226685853639933533878376557715535429228273836246431105345566959356235017101726161982051686425091725863274563735129811695996895149345599276217561146223698099898688570511129660139965937436023125144849168966558983464057748144221002822602364372375496620701576097411174660273326905785587873633265001265064407527479451038335427323263450656138613976800397989090302668474645180357245957021870544253829210839184121020162273300748176488095033511554520063821464728097461218092140871218329952103353314695156300415115244845528746574936214630883022042955765913578872259820105346774625785132699572299953548152271867783568784395874919314394109812040623298766106603100031502785863503710207335280459419895783026104630706185948403316963509105363354269784187499210220253600811656720223439143720266765940786627849707111415238000549348438312343959736899596050250993903998130301405539436339052666216882623070605616972735709386965798780595927418977607575403866091509786888667698894559709085443051380237455410537130549039425691651910776782113325348207031344284563420523709107584590939009022413031597758467173905411876398047352707593281983116067665501846248993208899455376753542266185214966183380026476745100931660672147649758787820822044039513307187265139293034667990232838351199023019150977894580702911328464311592333231189600385130938185020585553267020290042886805396799471243552474565356838202883028472374253090156963210549492323373292060214811634130439636551316518808344681452989030989008747265729550949661356488513615723817048602407990334521874507353482506829507013686428151624150509121984347389129126648288033337021202323228657389297726480234956281840505800822671844936415114101892393940924523003141605433488581789499059535345686867743265168440255833400361546454031123005917588108225214300803189775798265002278562476728698942443492855050509872164649138599154035132914090031392948085971528053777040046403641604610631593050288767087178030472661990736287955174953774163615106663522474226497570605570779043393832240702155717229905457046013317079984448239498132406885254162903569014179105114222076538958576310642304247725648123001756406924229010522997529162508589881183298221556651180640508956624626517130934919250167933669684136182973758297858165801067229027362275988808551135617533290637500709804744218509695613101505504190671399733814040772027305217751564888935401174852408520132496949739255381830059942990593881370175474139030148373352707224563123038125024394524232904647132487067308240378120985287798211298728402482970557773426416008560892678631827009634139155150097950499778727778983598321372255442147319199333387359538060971103684660648429878151092922271871117198202953835767053728385716056402027593525269934982199232014299688793985585170831090069389865904241121491558871737571736145755513904629631672179933913873224395253395517969607583896349714356768530298228231265050727349725488454998424328215964170277459952592628543493052377860956249651536335287838336840960622808393324591572529402477735434033358411096443054543093212103499975969047095216484100298647047199388743228215521590423644729591731763507143172010982819531461363392860015288386772293696784142128792172559011626105753877451487668593471431018543538407777203980588119503718005860077099011189868770549815951254755009033169982274266408943354895180034936079489167553571720551838922038202098083037056128789830308417521945542176610661533910277663521621326559549371661507915489608020555035983179232978702543222407759845480613030977133069024283622190665118796267230088938024958955632575651993076745975194293739312645858706476217056259498220543116148326116734638218638723797223511001674602083627136130135930820716116756865152376690916916598780437380166165018943744948391322960954692560353041999945313079637378009510378582748109201785696226734057838486004256900607746530465404551861510288877143796433361800848623848636936292562771874299414462101253819301577726995903594287446576154803915702466504980217312861147587703879440644412039358210225866877029147509157329065854670457843687378436840241995849029621123245740320096984540889518732199316677531303292595674226492264088446422939479243770340399432532001960774109775378643509879815934412518575374095199671682086298162241989087804803474526010925765235366427697814702705325297019927577637831197722621761604759955538882590059735024396493531529802418907633766727913561124520365144377750531388898714717501367272343197430668062183957676571894952795953564915160553820208875280072595929849092836170878041961026815222260939103456436610342627556027244040744067360060479088125347098067004289195018870321353497676184059260691196602868755287466919060514661225291684922764022171721283092300016880278395616529430264954557219507634910530431199421654772216840875975370200788261594275385840209060728236698067772342554747908623500874283103583098185826099249609759451733480299396009405407680814247681029389505300255680745881957882065866498130807683090214771290263564110279243475530873407921263688408580719842345190724273551772570990460166515752521579409377408983415135163998514979141614270647027323341184194595157314699399245568368692801593198016399060462845079878699346183339816881087024593615851559898539436854420148192996569022545542369612411800091167648324779356779383764147179784905444263121797785176547865821497115818530691507211467476070719498484612888389836145954361298576721697377512350765191505620278776493427215570781477702327334019763172699766170460560982310367670424156099018004859599735735343054409717262228913148637666939714825131283723609904636538947622579737715864258600075941900385778093201291334908991153664861436589402944702394589741162185910399720978371304601556905462593586082751699385709165685622912412293735367179884603578514855122786074237666077069014554517758422800273415039208063849200684227819199921242556781967777704269695278154007512732008468973227327591013707576821671104581665056706539997521343312702138655982559995464932324757984278465544757701959758687220934561015582426459272794821158927265626031249241607435328721451150510642043089548628191765736346721973463003855662018811137838409281198577006263958771785578864254202429613456263505246963500347047021706317877890717135064428552184040270826076013980595544515453352591185469278929959511424995364875483789799625570631378531228655216434247004231553521388134232006614779061528396470352144932236996153694804324483162993527203177168980854312714655646933733332120654073963243413993395745574634895574819987434683607530643346054429220293005122373954222340001522867085974208863155836131012306734894789216996481633973993302252779927668771154940679437479047198209144900485716987365797523209406825687113306606779190546339871156759342828225442067065987235526535506648377536302183893947836865350838554076494277932370107226335783657814159634960754454090675364666333218623011456981586132487406511525762590442952245869994247349416184949108828228587220917152367087554626805548340950293998705240704731256591111594527142423672510269419134781295100687411061493536303687005219433775445665283534589465813647382199506482678088351126995521964348911808685894725815438492629893297748782494159290952284169584906843484061917489746102229356266498550690062485938063272676313176323832345872153519720775962777483118130684808396892264782910333189838249750872627443374124963991737672721402308368280444328206280114745343775381554914368317821809406278272096770970529033528956344627241620739104220667705938921325629005883102551621428224871231915550874494893481346619574315629571144231552737272716096672319596108767190828505146916796743488854225915286785282825411868103598343085200792872677024313036846093939983788139785861075517600330074833073371675698498857103997397962191457778420524709368213377717854631081447908361331408574990557909094950521905879729257900478093224307514120545961792700465218612864844446349272896100059480468434170418138338166571303023615025107480514990852305719049632725626055302430106526599628377364843797151821387585055382360315934955092204456446091344179826382794414458073685622268340353276215422937650765567257649658279567438799505789475840223131658898035980971629048580008923599643754309875661525408996650261076342453235939772900881198695075699690577469726359545058751590035502748396634136148543888097260749597609438117873754071958329284324869249552816670384398287257730223752392714113288828534420410676784044543670178724892615554054719301592150649529274194013289725963494833557713474552208198422729291538944362382953017176010624225871742300354533363389459464250120930621503301900024993876133665769252153233713126063093665874927275890443205269325439703543269498580685749076784934096628419788266376850606678390978256873931024394057988084848942071592223810797444366533717996862105979629544694459042010164570185193602810172808318176905192946768933968719717579142222488251869151851620877893163095393554258518212091082299988624997639748945750323491586675122060927232190035794820489568326619610491577418737133785720590128978918766269245683426812045149662658032287158021824744656154619833860025962902691628284598648322427231553282635492242301419940944101356424540243536624958617683068580339735518322981602051688589146447393340869253271268645843784986591612242493713084424627205560553414015075022921765111485972720607390618501140057499095747539892333022791263334933487239953157927855497414194237033178297534712268604787906844140022520915398868334072624603593510818952872052204361502569080399931286091601891598742304834781388081670431074883674191355422055081749006726817540486670065950901458899830883627851092424335287198979203515950842152364996107065905975761565852117270404993442724162916185366835630672045162096449059638547755996639617061125858372428571648332035694024131898742909217467069833752675487494932197493832565364883210263955206885052847699558131401425534922687648362910110668268611957834018349386196876120099148676905370885712490012839243537119050927287484720541736215011715493165246237433916447866499342410724501484760445809647820594268743871540205169543176163875450595814859433043872476308067188533549340531712128939598874945013454008915473830483564088291056842213071209309083212472101812950206540875866876060746610278016388130321631030923048147285173091926189010082440475557260825856195826024057037813983201454837117478290408190786187988572775826562385659399736544039699899931231332192211197701886913331728442554539847983608156093342197094969768649693568582689579750281287487789544862811278765994899272883447070799043689978451263413439466787881135172541673299541145449919707304400974408014410306547715030948650697300537479395266483522546284143593296452257751994683263505064373939926725206871514104233233797918698037144121328611752524741564194131501663610628477139337672190876852475983519138383814364005318363918906581866854696580192339501488556838370810922656143907010159893142326940713055017894893029988136811037871172012950066973489514737113037882640672245805320181355125028468475208186639213445206562708153595155248061155300513519004849273257693590441497459966865727293144170347671974097383410943703257278229420603019233716414684451907209337834180164946007519848870071222305026267242285329008719008085879000936840390462373795632031020761575042150059804762515426953347775178120799489517780134114370829719105463292371230988127340579668929191871661807777006104387932259748177105915801821990930435711020719154582351876023782574221605137802651519743866303392604575029282636078226900061771550357464647996622321347095435000465371848402685312251929103284870044316108880542057795019990636099479918728498636710029739205019706044203100807550666236365582008033702166269916194113009908138343460265381978656056627256630169805644287233138745386846258583129206297040596348198726150987298430691853389927139112476918089827042500332803835966086610102903025182112526004056802849963481065801871713548230240045201051706486815391506288077116838395323923197288520939561502000986275220042791575256723814888832665030764605036772588536850926876368742945823955203819757040002673697341103692314639600671473763722002040696869781097703817539380463932786976228544907600573628521312823027009912404843257972219750771764588308878473373625414175784486399012232815840064192153251591654686078890085330199659691370363690111383833745824193767651859283989601467740004640528139130117097990876945029893261562812997121949871727011475892294054769657977014200216310811876427196958533577492407637703445798034831788110192233369091285915986038922096083819055411195494354003942304368173817488145744623897484070934750950592625861175460433930861830446384589935873391738958733329977070675663274245142172163247108261457011556888106110081779240231374256531348658283800434518041867254679084410520650888243377525754403732882059428565435851621309974894998293707607680841448471093434730515339744265270145134547814639829156939023129094159032293428550365318395734607092347613645555873567596579654149339087486290911882273846056619280996011104207113224136178636936386200546347103387304994844355503416161027913437453000588073875931575994556382691655474413010766619555237113412490795772499573626274967548365366957196388449292315882927916798417545025207949166481344791059500652739439080595819644458276080263322048679602691894596659846713637236961136244375836262643524364725399652708576747036125202785363635182626523790127609948870626326831048524629637230906390119471647454138599911432351946391016851854908918109608316294986729597253568461435495033861139654037021150348267074151037707156441869437212434373630122098133027700251805337351485007529397226282512127888659001678352152644759651456567853792531395974536309883931333832496296322025941032932735411971842200770883521226199519025003723497470225029557791100524918706181234206175320826432552612462318363813886585198539314897888722254825724815869021845587091949706468331382743293750088968928540245177438435788116786809352238917316127630428645220634611123483022279180768016078704754838161863039221094641230266197683493101206161653149692957957681496351089582174424576541120702798207352649535439526639862565541242540968075633822309297206528450433283474749264628116690827269438810104593335644355375197633045789080984870281492645793337678351675260968044719052309657038959482039196953599928729426669801169013957758835069142435627004648820043920714954772216575036377969429985629171628933720833840322135560328994822074836739571050643164982657766412281534676703447698246794035996212844161207208579197789894742064507700958205701931116230446455845244272099800420137266155407234537482486354450718137037227495850904250239524001998015030688537710332607766299433059078878509967727901760499418952317857142086276989797189916775921792697020960809165450489401966467020360319830458060833062322585112205926816517405362148439600258647913602587039758186246096209283532527525837078705359270045690490152717034897609931857865842379045091050122845407206760028548220283416219158428637920999919678628532643880400053468459849092632333447878446764315060012476355492022237718147345239757174176481156832140977396468710954833999875737361793249490245164313258517061012498620544995973345292333551322371119119189949916323777880280012648072216975556330238561768875104818337773623984207856172363039203649986218726767021245450920689960141962362348288486906473476159367761974173636467672226696631210467027555754088524920764298827955515700934044899500518197301658848507679023899997860542218907158480661821413956604914227988053636203650034802578217569443270571749513969273292382184351977653690398897112141918479694577928498054240138816449248957314239146187299195668273600708120640492484768295601965708358246997287824466299303670321820787010877864179124742886952399605623276920016413284939380694765351598030923626452857409156569914926220353621812659437623921959499321750437013633318460941644416074756155582019274768623527452267861183163182626502000029439273773135048428491747033839786240206430248931158970599228194442883179999365229987319263811030199552562317033116046860284251186560754046321983457113684371127064571179385881416052942304018168955047984244024974363003410043787289855816160564103009263067558602569042638559211450625407311073573241784353205458898896157097946771220293388045066412631091324481370118294364825452616051737577423395629107652131037684971128592644153368804591219375940134324655517791426068659089577561407517155721475669362876168568595417854593880726458587815087264576181472953964088970680261220504870161860414747354267423336554392758479751255787191761811610588802264254850679779289953854562112303994138488914550051246726679664105059332983580199280898739114510713839781507625010081244063074912852660737498072551457555128594772107583654853578990833443380229451629402856511078597105312632218492524698857019417173608380914484327394810770222637412444459069246618819125115729084127525543475808523363534314003233523316993472766021725843675561683152447505173117882060527467783046199815273300311530361336394742111071246957077265373949704845532708319661639085595262371494440756490308894779846739075908143110262203288829870359266290036480902276904914032391045118574780700207806955859425107959551406746092325470583301625033006396390791742819247749163993897141663118516568692289141739732632583900791776056172122954438782997352282339952518089779675129034419457247731085701113583527251955121238803799036622572850263324510543837497453645576922770243779860046808813950671739253986957829844497158835984547734176863843196236826201575398895710228131730195042215453569936961291966645093864853971334277360077735080332339269575549025178386264681027273664557195939482818052928904436813515540496397371901852734921363837260323588145157063394368846008811641276524445016264498560575249890213013040044488929135094745445409168592531267869897476617745382668444776992668446585391744776925669988350755500343118974933295536117083366791205094913427299795982079872030715970452379623125903396229168299530422486588782905694134193374294404146806937830527833378845486077957429008433986652372608526655119318235109758638108960741209642089145678548207764115931444732509199084217507426376749476884951976580509633678096809352557792285581206732380193417252380873355800091329559923458035786663323104402415999638287228616037412366932310026084544519495590499868280296208804741043776101453216972886164865641496517673263204506377046797311638110292362726412145573941549963457781056083524391532437276497127026952351019053875846262539951739849437571849329790954847170505758858713714035743021937063582440458548812538728449062982527445628562052249923451903675796723380096824055056769265009280453724222907306795734759629842481862422501181378596598458632644353230512308548467565395716705998616927356305614591139523364983056774007096885681863414868049706052414569101020396483038996308398086490892532390078364823132507847055245075675386620844328761450251321131350320371311888128587784206196806339964193924907111282695510184920971702551155164145525912372632655793171434848987294488418961433655908377166088197268440830939144813545837147634265604157839794517321029984618397352077172656958670327498893608041067480549015523196947515348496881546215153145734987101553195753230230679292471959420419290230821205981674026671119832196116150480443734988140897423563389692682878450024341537308057508056982273327708301994604779168364247442792835144314416206388193963695349345808723372649403023318761104180731427900434596014891623329304396968063087159484635960588758662259191997366246338703844027941062876322799292351000720959404656017880919714949902072123578882838580119611157207777075645530268461846817425440451881025559453031460671700331572295033920474607390162502502680211039615765897083025105391140498684499420965416973309154770734065743921181482664303817446499652451514587213902753048864923490471108285321695366975816888963920362663044071055455569065356705783635033263799302971622962248598042519875775327428477143223960967065088961990965550336759416190419174949588174036597138502994944974794730922649572617582227719071233001599663397865562314675294016585755459242592466224649608620527482468066839946826728675928481089993260476339054766328566754886699535551992087021833176503725190836304237264257872136857793568969814206776851985846411513270685758082747031017400759698192965181439178596450000258710060021172085918716617967860178414727836873487627343481674692268322155998522953445593487555631659904117725303911190344185525337604041522370288310117660339839823666322743571619293070784061395461098607793283920772394438325586379796558993721900959559979659686931754990925902539850490850668617017123164405179995849962760854686897498832347967622337058191398842854289724765387392778206734960148172637934820719075614028420199952070543032095449965206956463437968304938376833655381864140625190167282841266547306322424665303264406959525989025940847733553684410047228089033027910431423780879898835396224182913337389956718809725548383753494133778456252765275898577826773728875921866868901852069281410471017049209005470574984193581576313389224153056770387605473602805919898204994498925528753386311491211995482133699035178127350265739788271838868792557666592298869589875501886621468284826523133424532402221462620954547310667128172496327691809758789156378079098431549170456692967956788956900167520014650994260071597972023142794743501587287850168530104275196518533734157756993386593813641382702639370255416421303305199393959035096663674905918986761799539099298791339465850600693054903906386054236792338848807520550048402447318121414566516988039029220910700305130916156110000295308898009619522529664170549326421391317465632212848026494123246968597894983834196847087402598929576636151982551233491480838053212064905432383215106091013973082262177820734123402040256849984092059198868522218018345656884048430434716664583255289885173424951783848021371431186890847354195257752913212469141793672901208255303488404233663822473995457084446566144028571044193848716243438913503225761140537403783392914188937885549657857452084158472958598224074971926199840196352272540254667620966076311053668414485795999737249495372098834728847449433107875924215880735959435172345478271929189877167877607155994879673378282872736837080575178820430658518539836534339159409023417436452219723705759381341571203660134937013514166175749487682322284425600190101102853161092927988302347671360153059004467991922256329336695954967622426818567464172004838610184254731190445736697394304921356717629927734564798125451078677112603445651947816630456252028827601715891555771212986864215931869141412617775200245232563157582037793901538095561828532031345356441292972819345223775894519780713102573467176327108884799737675982554791494184774362013382095250024466202268721350829373285023516029716002697963231793119880590218852423644658483449453933207021739745221084726216047710845749466887512498678031830600634391642266648445246229039875299374317900455396590496006338698569060861830879722091553590617817231253549575378926259252767000360516957863479572697842691629288397788795548767108231716973181461517712188487634139632785939384264348754906491866827436580062777965953949714151191762551104245181756700258721197172348229706813559899865813508430308019053951899200784505267363639364133549746938147847631381318900794896096222825657046264250450868643009298749836367680375504696137094252629672253034190959005815848836328664511828944980894502949634378625676678439611015099870041638469346010000002642544647377467041131043586220634764819510518583006353570110745786565316519347759464441456221268533083227649290415238952964777202555708899847956664032989165375317346640237334316434861430028043432278443998003658772942535079559462697298581095627369189132496823936587301612162109883800892902205585177781207860449810779589888653537820345142077188907228551359931295861339085378963638867338525979446423322651787882072271024102245234789848092813553273057154603682757235258873281946316836344200001714297056763326134939024853889177828916328054609424813892770995524710726898387796322713801278971873514064829092609911060903077663398362773014142778379782539449292828012432228639655626090790165852133660753923640978157584542277488132125950517811706071966569196680867638547328608094097037206218560098347688643299745677861851746120912871593684568532317419603258250739143296808465486626939545401074379677529752502107520727439314492794467496012872589809574725028068490488358663533851665383558376677324974991247219850077387422343616378235970218477710572124967514746577546000549684698297650286939165597637476477918979337184243271454870025025226557135787912889554411165844059644029484337149382737598062627537530577864602610674330953268374136693338763609265413997502898725788269105936557671416464352747707263716893637819574860848959004361043247865184001541206501542373364459647969806021217294869004940107519179737492354106955931409820396120923411334929538834875404764868348802762140311001147661670877966553754690162579949070842610733052091857121831237832800402666924284792459177747390755444741401036611034369716049617066075774790156595562929905740906159937806741000337773959956519918432347272562730403161446454935083450639701681237732376975122735220263729088497796552077646093812449677669941923770505971189636676214795063957496019585987928678410945489634805763539461352278605127816195733710769568248544521323935389456909382360444783602081368258864477879632322947312134983707332607517894164546934657875143558686337434611484831105377229648387414612736424539713815808549486318159788111063747104794831414403056819606176412281732399844935560237453411423500256753317448584467997646744720492829707113387205005745268770593217707590160394689823330262313558714171926526836437829888170490151763420904515071629638341307713075742397159290823162223968293942085019451609575576879661839680384556111565764452027181368584762675928310256146900909103303939312037878211242392231600253082010418829605758036494008892771662338006230406933704993517386318215258181434768944526172503817324565781903493728096349374392476256864431994139041891832257099101391680717063306670950668421250982024273580996894255221941764255013909062345004167691769100188520933465761483319480445628608774984726563045806930777183999749429729849091414714093379674737044155296154642091497651348435747803376534286284444140098282847500533754261324806064823809716053711372392130351281957725536554197061918833332808851258029860597834541433070688859179491883792593422040203967608820038024508359520016740297081634502298598562119566628907947137577062405394464366388827374398803014681144203150635274644749250636631272095487144058153350965749259063972139552778833695341646592889183222274641104053048943612100142772894630879443162307153263611272166238131945781865696630993687941131781411862379722044483355434807966661361774986917958697406299010601694203947232057893291460879662597132111038020565294919843454617936034996152947432600742900041572038388100057177993998286439233633961630963232428381870196261318716079942740806217170015365341172495371915149033235901049615914832114662385129661689229737147583831213705945064263145066494930188712790973781641569301810112675817875849900390244365583038588179412968805542088049441760436193927212210280673546129306646281784628934309517195264572739386438491219105474401572897671603675162469186233149668286788598792055803405707245619524253947525289449771349018268005044325568726672238375289617979381898303137334181172582473447814317458874138081105230039939856199388389693186285490156754558570973842697552637718946848420658285114292608679941386931666460224122439280338908224616212598887561729278913131519408926599339010117056901235835647397448446565626341755840574900272064506039770607202847065847911290265754015992424572935681460910308106422617217979967300717454673948739004258973958123043176210187839288527043874589917675663513302917540073010783589370786588339806526124712598064450028481292440722953416465489363400373220935582885783191621787531496630675393825763550424099484825414310219454137568585612565516192429296901662640936882970787758451223791097923203805525314265498382669337410706289476681702226556837536513422616809490449273449657863518869719347466782112999288060877127975877557929134763020397706207697175023026943485061848280252584269305801948626933147982211795514993856731532723164072824430534519511918825918921208010580626234362289446243276330381844946237666503000668349182338776343574459876784879922947037930262967912068421582935098764724457999083422245700454865648867700366377034440844402493533814683791223791164662874628303928062616714395247129901152386552515049726560675627076320088060213674082887816334427761163591300794109707072174415354013345043331462751279243201047030910542922441873676664797372753682405060620468588439855500520598642051790812998681958747938595855767555630692122716932188858250774721276255675320620721644240617057008640181907541994426300441561689259146618328817727932051909757039089347774506542688243715572999626448614553480506553919573179259965908058176719577780352036483750651567666348414892354733905820221312623672822480604954680276406919958512127005103606912020841052837987666887385718378863794952301818082922826959860952929820907958757293234307682475417186991132353923936098763348580242431019752150713642944371370538004039806814137799541370048082189406432980534859125523353626474265646195879665505335448182758211276755863778556559363528167266161988754296414174338647781987907065893972094211495443892918111655728228352689440408800263550170716071176419273686279359508693373462591781368539953765830687814484544698311288588955623210403684041802338305087590263589453445836733167878624968279922095227002901005968773123141298208454565894171586286355557268326522584286813218457375590272461642086954419607817459001152804754576926415523494117329252087811222651807387326163147042291493887644534925585389647863656960082892139324718709889987833803167621897920782207352590274230669362851352497516389156299670081622101926533416687767981990060542803863075439711685080204099810999686335206281428633388807440063172911527409088244762371668400657934816681172717659599066641403467063411426310902744030114218364940218943296761689388083520217242076547497278097425553995759280810318153130160178426214440878169572899024118743585562974063672976478300458243655717120797951544229949976342549513314957869474720243648856479329135760692735130683203065240044906589476404144929811676947748042086375951552225988669853450436227252560852846212307161061058791680756620700918020817903675971918184904606136936227300032073142790244193727474942358508792987558811388863453441419500658493451167583226728783665636386080020355413566609226501644088210021859290176145945368344191498352265802217531158507690261273559069082447988520262460173981689735024612097802410718954170040031210700850820559758787223820077792582241999390994734398331442862617123466530634629677355119270463017059820261311092911863294445795325565111856570661128671988861396030922938843033361528340630501740187564030180364390161262520258429268121928990815585551957842134204638106811908401593629734928830311509766371400587103392671898666345026607380782704723460354283955687743089193873609082571484534354394468601969761237093404434266916110175850677227031472979207543892776180510104546632274392237692903527727487423249578447106591966046129551583670272333316372003945644056743892326770407186333006535175969140727585762993392483242237492462395496365393666944018998391517008943918987268020812425788388982692210821488360179926488005946008541710304192914462784979735074065580285418220495255831689521428442148188663352581628026562730203533959730581124097650453564972261261590038549557999772012996927959843003382107599213865021932024736169840328732793264747761355137572332843879016628137688925567292222543699680761276604958792624312235736668256139659770992793574791362124279331035727798395222932502549828282704532571591211681909249109174006471941602140112236937649677572812030182570465084277180152236115747795654629804913738590183941255015542144164041768312907233314072595542963392102207684019719111223401780752048843111233938199473753994892286274902368264814769485134670320364900885155675608967544029313997928761906116049218289446770957260974466092731928533241011121082092077781408049004626362332210710577052970735391144784973064144729516188211487931046322824896425259011126376139154875029875746879105404774939538843263357192388967584004202045704739182622626556761260189591023821996202753089231818733902782618418790499264439273920746518646662022019187183001520954786127794885857319040399423512077564607107994749464728150943777090080518874444266124570671844628687062989957819082491655359320233657111010355785250324779994176921548644537694896679497442640294999860941779998667066263972489702718466264595093527787058543843769768823982466751622500101655212794196366505757620161248517552605888039729022576388063622433284995387113570773473474696347136899013827364526694937916146824399764400679080516945364937628117021053482318405456248320199465151402877518653834228437123574320163790060258572380686835407153260940668060185149816237431074714477474466938684625667417493169014474489657185319184719405103416069408511925700543168192261705439560387212083335095915693795241298098795956856955071531052053383768852622539310190199648842366117288662850244898178723989663587092702521774728616674523914073228999471864731660150138824620931734270944244398367676767706766643917667196114617119870321518310842533605155498661903982288267981222125862171575372582253849143060975884396687102656924315293735616354529225692858517275235919517428985405133702522136424468608890820985457640480222678349757135563474234733577985477623250560872232230171629043782083628416007717590489873170065113864579821979777232656483476690756015379484943067685651540038101812920945134146522605961041108876178739109082031842755811218228451370150502248526771216736283575243581270001810476210241665063551101762233049842577499681612774019780431533430374249530898554506817362945040824805541624051682066132632630210583584638262738931261584489486957339564499906168314924428944352689246772635472898663904897593261831062498684318507412957406298223323455817896513824230986138402297047099171634111272382427959430629885883299967333092766349783086781696870058125836984644495684282554551700678686752778167109155632256281043219701458210478353014841532700230242441510833215900533830832489918494095642213763508002679267324283455089762612394249514063098924353325369474902163217833813096508819075532150748706545604040310071901150653174984040178346580863162215871742632888615211573806730287469135196317340926224971393681555864867802200959356195211680418124190341467784716409370806541204368437398441562852390445468582766013655134001392737578895310905568874285023819309688328964550053544573895000963332798476027993728305478690282672511716374013545833548048473376571552241815283136790922790966406672148207534629576497720657961356918460464707001542903054955647930421450453143024589062529672163928277035652351010594100338194865154521013006614498056762158779670383808401302513048330906842299185806551629193737185962482389451361764673028867644702735834861013055915654551241884076234330899053525393967699688374158995029065880849283938959052360231750654269006965212254978221281306171564267520524733506474293036969748043943256592026967278972729988570905409517406218130744517223498987048985181855125196363702678019447555440910028759931778041402945457136789239012275280324508976334151202525410171276255798517064989102929396645557639996632789467734759380152518464990663019380825960009690997590944566104692054301283243207461397263083228281290307412845665350565736543611081742402481235636952666625017704467421461347271053155758170106885804144116763927806681990029255115526318593679646972143147650530849452030870385496894459741845000207381447818012288981054039708065948169328806510848849752426554403872515004728076933315258485603864281993671081303097977555965523483983487278293740325059434677683699881500043038016417240456525338696117507280708077321619996402359327286029221503850378952992213488987545488428566042007307564654828576102402186899643774273061356327115470999648848031493517319804103525896096598405339440306485308809113790067006861383621763190110612349546503259998789280704406236443315971792562390346980323508584793639464611007326367196957277487986052335311758089373001412187808695128617245274883214130659815959554973937708905756185627590648597553420751818300545242488308511940914307898146886662140390214331445252223699428524682007224113996137495125036933680320291315025462586523963940490670066588518325113155756679826364063546194979587014380109893711189786549629233222014076992430938915027061135350889012454068467508700353692341004668608153124946009314790768662457628126014177899732749035773791303538286328338641844809857022863994204868075646361513947890582666951677291532067956106137356561627088503653927913211109458119687427103382523666942461869418392452790154769167092064818191078854799591992346380616174023442126518118314517668634572558220374444824225553879023926706487785525828464598391684623576952837877988289058582991371922182742034991783646300199041289084612823955947786312219775083516050145442940450956766156973742702590532796980408326268651199478046355407633834107528006537901673498863346332338632683868748714438274684468295516863885701728487297545309030468981881288989181221574104829430955938791979865051130921247901014244198390777467780450576677996557485775678202903046750262150070757524443600959557811752746868098700643952130592689777653180209764239608102739944702088946985285350283601678188791760765943770719602139901389069219306429130275755154259095880495248697676266913101782881302444039875068503569490700174375452768328282611622923018595280937919167938918734098431114473007277146698982578926510560660734467170519862662079959379164401360705019176226016361688400640080017846008278271732812156007160955559880096522813912072211978182510676047370428064260967477353823029936496353582789598143947940424917992841779986455668426628669636146044990275217606669112118115770513066443866799354870676770094250778277941732017847678103230941770290097924799157047499592743465838175396204207239552939216632930149144505407347922223783969539207313646870557533918226427623009217845180157134083271731937115244693248862060080074257763014914358327563510563427641033223449951155631341937213280117795387206895269598713444585818917394620460281450081982227847769369662087685043767316110288860534856577622141888806446960131654100564204698688378886157763189287592802570295049965855352754725117191382689519993466522008785535431353539219126544449934420650893738672802307329047149220842152940057932484617268215741875804691972430163851102353258396037789395446456111912512026955257906002282231913923666786597265600714741547027875762431518249563002140504179446926500219391178399793224537500832046456626727017889741171227620596355087652515417209821585127200567008841547115548321313992952144443897230209400650651543914599414801174333237231358007372237393422900374570506920664527351513830479254381580923611874268290391976774176391583074449627000922571782292699358338750495759661944638457307225118517452970189833071428898935789180125010646848253667516471644282342982114340179950849353683462516375118137326183460526557806131003144528971008019054295881079666538594678714247027900859936441447160634861598510324497732941691346635202841059073949901106966834612820256607820557057066023618886094581562001906306761601055585907510569089418803622093714497529812563779313860559064182685693407050507920372786727792663764824344208464461340316017360086519968074062846866105538461027788758934791677941110148076499238213421738349192703700265130854409151183087649878482456049790412705237291897557914822268259401185134882950862497427710077962201596134126869708512296156745730637603987851741805558742196982521375697335554466188038522258578425659947977655500330143830863536731330782971766466781586946155450408842393414032093215733824985836520274715326669175338061452475525398430025367535481964511270571885172348230553388829202544488977650117023079581395322097958646337011109150782599703703431199323824041024435799859835781668677010228833513467405355954860196011686584707689301318204106549897686280693133108782971657048236166589262849833588563196318736018639828591935275967939403671935377395576122935832919452209683314475510565958630923451996714730511037275493723541279925371593464022988601091050386006222281075704861471967037016595203689045149715527610042521618625044087964074709666450830922741276700525220398904499192930841579777466703024289047239117894734528207822446549070948078071920728867774870136847385697141170269362441833440141202442255857347172993068098782557965324302386479314517939680227838239536841404423576429464265015023770411584340164794197791092186286155558300930314029797731925480215251311701167378857038295712578835150187964361205667740012840220962164260399631267943229883480118357903501868508166899267415539666166050656950688332141445352919428820265108866507626016835196692311083947040909491833491177732831061105622027125587311372852872817098196685320042048209872797197425614768173067747912181859268834913528158596142068164220060380810564538565341421772721285199067016781068142709509561448543453599332159649238837157299450656804454922489557449269301238831574038049878145762707124189512777664892939338339589862056867489301045994783108447472844132520763716269150598957617517806424953010057226754133477229556571895311878456341725534563854833212535893852372866050631914647384887806385050081840775555905201042185405021479076626413729436325412465462993811411404555457303157285170154847408249676996627594472297146401058030971538920430691526215468007030890580573858851792327373105854514242615869059721322935764763472523702130254164196249393608969120038814815737984677130359716443000000621290492844943335212164187360505005460432680450695446855423688246233766834015717295303292386126286659785537157734200320478518832638075027594696993770174993266780699159283355430482253549689099402410315774791281749698303183046889162928809728207203324154362120857110928155154482687270052588676195905376029761057877938310327774224668670604859792384845590669435195715780637622398679803266617004994769918521446120810296398818109127803149483018394100383758438098802559637560205760820125278134501915989498701597762496740092522800338909858333208455510952056622474125456424947064266424857018838126117894596942615054262316581788734018890377398658909802591575082007899141701993266903898131105644879996131528428867328886190445041709703563634867229270834737954851342702730969008077696200277818398596885868497828225848328964182099715148531280409501596188605529581934231935718524162696740365131682567114592662326545951733587658139686309728016355927343150700588021537114622172314810528235839085641529586292890895092678550347782438803436256563035221685320143071291045407647652935310888782847680992216634456566545099672970071819870814294084580786374258856242799445028065106506673914622192452895730375827162005992716573778950325387800518763452077621360314858010956661638282340637779867353005660348433659488060165360796670857163467895619594918736917473268253786428043089607317918191355417070990569732679845917091484100382823860271458982255328455097328589285951784220810873013629247705376602162546916861022382672332615589517297257461115140121128145638950481791805678450788843685096397437394643337113461419415008648994305466312753910593464973256990220562905375002101231361055874802692185731565043390254430927993023296737224475464053110414067357801348730886160501705639621658286269964745509852614093546927291038142676469703214036211311569044862953542839846021356396748493631705178886205391633866470776421202810506364345159443562032900814828141676602635122648957265999389955540408224125691549218110806296758539082180060907762413093510419755969497713540538897947123253842889610305632464904315529084266063002299370786624161367612572522099413914624564873585267042304650174462827848839636565803857486204464944559924374326161984523113081553584210645493116440549969346938923598611059285328600820673196476686069785374139780563458034768159128001923820997918275104052197581582534724350449483971150535515214063042796498704927941736932468764824028964725774885046351391150811169652865166072999673508956443451428175019560831524453077409733818956616209155073492629111900529150143262478190918849236136388268724112108335526432200883581470792367424991898091403733087413513059438461693789154165981711542407925767732869959347285674001013924956844896752895557829953235051498495150825556967686667364810077780293921326447891166912416715635664727410389673339722818938589908452004000232162501585407582667542603406229868890455252775423752766403391898772856552604801264545448286820939225389083770763688396430298060471910487196085982202796534957261189564256296697233422890528967454365862073182784217930149185205432239524421385443680227404187988385800922619515028474734406734845466416935362621525752322763405814395050018555460862423354303208204939265069867506767636298630572474509146526589300911880568058679302181834754984205057176531926226411398995312659728308705144573228311587687341480316717687169455913055660543549883540385916869508449556332804575069498635206464015562625440107083278694838812362135469964445176580363594244603830886570298888204481016442055967558700586490524774471310840037453940279760148197916593220283514749311616535406462477554590701096002370177247080576213099602952200518428178919953412548057920136294890983198976940947485026969730302504263223272250666676318189001988750880030379031075439174764288908247103363788626733227043637139535817867002508555738297185748454217230804869392184722532397185308431652452651398036698521149990637785635956151542109726025687958427724834219534928986926790188962624790822125704789808602972527442908450325195593110636090909840887001856207686098433702273057406750076067037969631447080888564965674958343247539320798728169432460075761592368784380567685102850110281046151346853986509842300753078494627280109772943602739815152173890917996992882188208816192454225450850065292302144113271353580535605582894787717467286829214147009532110506931878492533969896070503638686551960262949961022294484631225596744000977736292060902622882502881035586384838621456201298939426684182794724495571438487883667005467575949003957099698616489393483948027886727553586802487637547245856195500142444582761015146922619921770598898992976731695113077781693231158630828562560531515782147955126299088820933464133454295051512296961532738236809987218117408452003120799057502974365107267701109044544216763510353205568948458477388627680947524997542277053863683000577314984403943503626378439453095298865148469535229974975209274537448695423557307142156440811694374857719593442044725905896129622460033319947916960247118940091140286512464387031885338032732613840972846556588689364025605007031014023074871509374040052507941362338062690951262175966116229107408911193321803904533489263492042863884049944645800552786797025985566983200425695867656219754014442817167991691230861810418124726845159005325200037274558959464372042520074200606474590369552207964590174030712569404635041544066647830047399859883802161445289654678731367503175262311480438110666656487002172353080215981414933643661252258611201839319160887821222506020682539370507350990131870579769178181450789561924353575098091523646916655078821487760701294527428875200517382381992699874678806735038286235667664592820436943899835822106772166905870135808367315050668512868508156283393198366827079742001184370328740345886273263659269298168287025717905196653412229334506763115106660074637691694959859699877462663716602341631059278929898014659777113662310346578136883979299650591315361299672054077476884814826036271034992805165303847923121913803856675450000464390395655049824334865529718609916419252657017729199602695214861288212900244352416493481669444950067018456217404255130817294306537011541756915215592666968218880796634379415995295409902908597300389228988123519329746735148218166401529673056565572114139635794483034922203609997580493255482354599000174351190118038370083418220969670468514435477328138578192204664901154528193438262905654202850947530146729221193919886050140867285067944323159387153870922965344600035248722026369701393489383332926686346227655118278483192540840130591489399155457220871417968614893313661516854178767851055861148558530627891768391050043923371757446840180235975424703747328932202976526035537659770268902412130339235718996105530786384237299819088157598931469652936101500769149902362378484136734739395921219259169814579173624103711615827788970175511592347825331046085388233695243600831306291638007142364899608939114012475398404836557884348247793960755182109738317309137431186755284174420181946259749299565163566883585617835084220268234153294058752680627266073167583763251646632786702515819705115753335530794299203549814800979547723844625703190222168170041140644455744001882211789408943836636300889061993730933484653183774211274048489713677322030537070080154625094696606087436280110037707603577851027708304380281018518594250428031053654958956147106624033990260365202101284875076648989778197274641036914051301693242763951041089993883650853520908058126507571510866641015224101621694728263249535972788115579493677540364339115884202044211826840536483341625391521149457881478261955816159521383270288921862865936027725055360322620141031508937116411948202102198585748354730222412974746958129511692410137932962090468210716990515543244097926050088045864367993232703725760352679284486809387327572417497808733687633744936165508050103579040964119765863337728062812224078309511349922557293639833076114139549443513086360154457398040210136466760572878101016846908270394795236234807358683759248614347171716274714024460292177090576115260026058441799964823626517093100412014937854466476773805387067579137537751404573380711430644561647391020623373615090413300223902873163013123136950329076604719148675523609138504044801754856970752286406080240456436759853784291281067493677369139586551965003095540507991966879065155113319636017868796936317772287458692387755437946278879807650954496493767567067449041342036971412733521686343270200057274476040346571092122256174699091262209115375388425665709058537265475261952176641007589245016386120011566518270343414925053713711988248015431419967073793644211834912046577661232539906654446562776043973814096230205752343551178610347977999238482384270356247392875580561506616623979916754856613552664152233668743773655855678827599876936023263626992138215572961055513208983814450761252121418761209465567722927963370848233747604486563902566350001649978695601009627179381391377337676848734766678372824610390264176652174048216583468295519342330966939087372833784771293467427442491122506401436787334802557784231053494544567981856459635276524624268170604459582759573256595819317317943643555067120615257981936693227343819027710408252528978734576300739985362610953340041368602966184595492320901290957911378260471568184998422707421628420074142210679123621173531668185037680274389726600210532266966903695748525190947732900524476199182544482496544754548027025603817459061654182526770195601997483429660692458187590261828021099194678124024671605311775095513770195306111746523666186357470803417737982451007824229403064429073826137405975483557518223918177058488394053462013903313819843957772583573226389307604930432094322340011827071420178794498552334635013593088568342372299271934904669061263293491997183919794759430251492568055590085290121158358004912963089716513545176821768461435514441609851844883108003157187046771017018568592194520195396611202581446159152961309394385086659584867512005370836598928928876706265899051065748211295376216775962090707272305826509121868777762567862399544682800772502018701111494113825747981826559414703755557062336958645612952796333968828550148735063853765774627109964040280212859910534034698704547731304451134923037713402052537803012442546298883465097715921826364117778921365234108945199164553684377851255725107848132117844719882815084154343484147966822857788107740548947133027865784247870347520863721769090342921394153370711342919307442417833945194129674852342382423790910076853687035440494386801957103033369966349494912786187780883085489007256650476058673969281136574586385572830544284857543327832843632263739107942127112810945641054391879400237331166090147590262040844510940631443736696382742410926218260840970425634423212768390026000814048729501966409010442941512853655784147266285043003312611136389403616559531424607309007377568432332605283243419114328955734670111899202399445703714627977813599962220515630690021142828542785959833581667624768948017818832003564674591592164208476389593354038998125118318430169162562929074969886531927042076411049548742888476051958532329796517124433812302361115117193286364808819787206702641401790278185350814689055444142595313808331162562634715577530250629594364614993094671328268937303536029830065122749788827455121045078853385499046053052433995098497723303662681131878563562247882143076337255987046270312348185114811478758007573814579411040620414076588464935520454230014104891938586267427867714159918007127411543871877937780189008970989080107206291947604269630644834665647289526052448712411273159177327300492188545386558118169752804700550361572876895315227861181452335096935348436659388599247203144463484641913018499254706916884027981399064777508810975789413462957669306966541385921362304760311169861419397723653155656758892837719228494810979843810671592246290577433480455403255048355481197614226475942048931962579705727989193571238161500226327824877994922795447740562311171598478975389030911228478121846199960287300635426487592433827136961416584734743328186427173029174316621630779044371569552165079530772603223674170892107397995861492576321999936666084397888278795924802853774991754946234177039165196445175420339043305898028075684502783542618749992101048637313343206712221033332570783408476515130364695771478205054204891953151281355734924343607795560804251687293755870850125697375792811887696753961559330293521095353265976403514129014381238754252013536331215300949618296948363014430300103510554029843659578472822978928653182667143575620630226577653962132515870407129146585655441963788686300422790557458998093411818715789928959118287347456672730278178893248884215332336004807564778478717923380034240564238947140704889076643363620363049702641621507518222427873980838511248416411547955716740544324025735759617909014771042147530035377060392716908371842529307242095691835404185207861524100768761734733157251561611228907094120407785221084366860506707089386237657053330983706462432658335168136330428884610527994025724744755384551223110688553132779451493347303837425253735157990100540976686367044161327596200278279840977544147116947870137342599257010182271144176028892038771627442154147412031398911171768076878935414681584594818575655715480139611068887788587576761125678834198608494251198104552480118507470322197208790762604829695064689250215574620828910752103441656903261616763184364358047430337630837216242629066005386752393049551046443859939084292332537256336340417199152330023236495465845198990873268400606418866780613677875734315486141591220337004452568765192991290928126853572507637582207566977915525676923691790194104766415342480980773275078005957776984030190329154498042976942523125598425263764851720924229451343827611227164959427006892999648430505208375450257006038793584366137922129599635159463271606108805850634937957682318969451744235813325706757399418039873459395872754041325221124593247539015743510648448162466202842237810051132559716630735607203140459642218410995761663591388921716710039916267406276928587884032672323839235827325202675500864676983592933213825022120332106701761859142454513531706913862274023518956184313438235551715089103959061636650161996833506919024238118946830239460331574515700045127466541556918518584545061641101526526531958605253416780652251977850960777091730138038818383255673838125700590620580038685991249931323618918675564425345701671366405401982734114445109028595438686263492322128128859389212002305890457569022941911035378148682417924282216982686738737002030609349779767820196283390154672863809140064377453253318663814894999257167692902885443840417409118363636198733165444397704010458789137746205748851168190784388561004089711439035933332704504407043375252556111931655678505479218391742928114073723771568447983865579167096134649933806663638440380183732756866968949970206122883372707846138633080141270947271247552986691035245589893105179578608677311808638141368339707844268594527841434025361579408990350645980350214713807182351098200064797857666996872643341705499873464814474958171102522230599757792188535090743411561815483635383219303539318250041830066234341104736272847799721610815620688112694215852020329338265504169029331408970682998880330937559928928633569427827892416388937943383954193932119526238688257444564294452126414655761490575540643085891230264956186238083284446437598609416966851946211392865366910152279888379878342312901689308937683569862745125833373974819908137876268083802287435054858697317587604813779008863147218169505854713709695244659799602972373701268611324256992126560487874386611729428648829409761609971439154100607282771657347872204105816919396753268235401636069927614095325286262048561447015958121604412928797381904194891982359983912833082278570898630627699078796594914423157287474589391655091702308328154993705813586390505711022947934894958210930643436115753232853775737055594435716969485755824138119580245463857125323308917339817392680164336169966548826045267498840845587505751539260506697624494036113137793342256163509044602672189589106664675149049601337783611821304500663657971592764805689157981186637584727873802893255367723885441837519452413519349691953382532502114963266172626109963263671691919405795115900213997164715083118934154040014007279883503277293484844269672610943279411444677789047080898567682067115455013964429833645331020473033458639130339023646877575928549413309421110372451861569673444420195437864912695647035515985060145178494929300149723527971064851711001902621654796153140975757460780711551567831876357369759221289278327612438261341093661883590345155087712034351468769798225026460084487619947327756885437748665034747143559456026681513909013713830949379482899201734593875358472745968720873935232487621063564663518525807493949139600568108205250605007472138998683578417012521661584351008883476343220745169025256474199973163179846180187826925179187741976601220715862269682985691562957065677112354298677264389802329999536199018670527369943985927553486852305995457099149423530356289549640003886989193013611933381230425899678958168248508481616938638202868643976606785120173618628113353263357388694553068255127103295441555850324655373957155469271574374372399923139261256702780307999595230834763948393680861187189586595016815826746062953665079159052469218493118403004184784063546445403133945783784998030434765058527611341514497366746627713675706995882178884277481208721946296168803617488495555975913359994272484051806917156825803506825672297264851279383934493638826659108917420056274143490345006276326419184783196223774231097799942062494061893838290555421920731647612513682394376252726897700684580354201356058196583907068518664746276371093183267195591429766288122297181524529983194064931587512180324859652778895314640333720776371801366189731137590478673049350511039719335449755988004410178907427049315733469550668780397231507367994329473746597029683082474212041003915800635809962381025914455926237726557790466009735781325657532263157649434043447118184110389055233676692473217449310976295513844991714343304959511258605206146212045347998885897079781616447958287712240272686988756433375266461444049807660856080312991393382074150388769790212235854760502663908820301860641718489559472157968936403642991070286706216437311315530114941301382112290429646736015845066560386440808640935468883975681352383337332891334567514474389402712211769965163252923567768881547546443794813877928623625286226860940107748338579168058749361961248997465938269617253301217621159906291201763894595370137874931185565141541893347354947393152405729795206319212838779500757186568021476569949321249185602661800482522417962356294499071635966573923765542666189751349480809800614062901609349962519700270397316903562554248963974945547321140771739548959358621677857744055279129213039232458481581866054694577029731779653219262043351111902257078469135011269239004441188589834388358060982694260949957395939204855434615255737975162969927337396537898440586159638929550945645215006204877193338436316495193682615713446932798321956425439675083617770608146961116697241515863236829587338893120220739239203616195948565000290261101484057791665020806519784590480152280336342890140036705066678164047925110388156425763280512021505106899836908144655404130534571479798806933671209358415210702227177664898480745118482928118930394429666361840379389573142726442817555288380112255004032371029933783521468090938961605484119333656782063111361863593526282424634746227275842519674719247124583169420148975382450731251897054162473733603876653833471379008013781907124981948165871516824491615150793092057080332958402055947322909566382607609265686565187543703411732367189961858838675446800319221145939463523811183148672880344100424959452369069933313716788288512801780656411957042736929879582138383317893849662109060982026058070149895123330995771920205384256472206877329929244703119260603526883671103121681292240448630690527638444749444798452011918387666672883085709553468089536992544531133638287057879115587409416529234404519262158836069678494941801293225662497623946543061996858057456433428155642372295730287997770378611036837048151978034109943352488604602667308102512571675146124222645541403467516811635262988125422125590803459125176135152198011857820427918073310346129661541676264086745923827146753168025854690276907171077563079579167880712719668087281156596482229766864481624479876573947966856708101638872155675334915241862213803058492777488993074088079496654359951920981681363355105345900630160388329377343122216408524457195461791336616765666801581652760835603039284846340842046765733448236213701359481664704710440954271383553432722168846955501068127309998778126208108018774616720670948610472467685327822796621922998045253919946878506329108056768611383133798000072423914295299174110597707386404141457267830825685323815975917338242604834296906389249601251488343878415806809171355381589036049529308775644434539002156476895625598547411223444261470443302624114777156354873973928263037130009939114869507295472490528270213185117562970032462201200865451784887484896722246606192447851601904540071080692903454041409300246948114201411416369662518410878773903809260728794696808159927079136710287796430949857527646773058786393845607081459395870080512470745799810111553399587741475815321698154592944469301419979136738848361797064129349387324492608898229472403905916808787721214497080050716870109480720266339169922124425005457082584363940404713106690895569581169106289684811636872991087190467139058057243707679929282418497178149828480486261457662905787080634297215502583403165560505009222810844343478850315964853721906467470526967092146685648658384247401136669041817775066940175261770457763422153684257543821431428239149987894183979860454575201060274543831179385079252203277555579501135874569936034718476946392195058362449325322031854176119924005468666258039238145807238300929234827405989188856739336663045901368931932023159849716224738598431147381617614418899741764527428943058784735203217651943573476272660039553777513284015431204020174460986673986939248033426183734810007636069634328307552523128926483076270773825224970168533153943678668424981408944805583768116420344862803112899793175238619860688427813504140235191724215611240805077619707010858518992659592184919112290563618082883988352409689505561954249750275789278583782033499939907135355805805877123320104790891215110705872913293308177420668484158634082599440582668352671175478614495440170136270364305538301754970437526629270326820138958666915357987899173347928004100443708936923620207901686602652706072096779204252944575855693942051130382558520254566992097672716407811346433472247993932182109469354850455384922586670700817002879138101083519821061667717740015799366142396219650300780823535702605826803029164530357642560491421250196332699649305162267231300028023734134183599286597390125576037750131981177932198208093726648542717517790893440903779264319754323479057796454688801926722043615521724642261663682134383457248576001639209395646226574029742466490263539860695610478218454636281566147347899151405628054298432528612386238463224932205499311458838107432460313922149132233323939977978108517536653577445941258221200739500173353490859964684946567281218530014602851914801634222715197837121549875591100959951273187662428964441036453047882955883541796076159979568808269649635400329764715113299385906404799628797152698789820141464693468521731505402868940210652398925512924537803277163723034118974249819888412370772376234194241577566162098957513907720265659535121171236650890830573889452585667735975282574653806210892638866806293043755053279765537274039566779877574088891902525333649879048751399870318294282729910178922373569186272977922863228114860992643155331255756075886296501497096934409820719385744007144476882521464271184023707992872405682522161195055322996153032641397429962659957785164494346103579568371852561892225137449168021985374156789201684412079892337864881078272208819191700830422504919668628561381503512138881710335652085405590879988828568946284350176600080099291852136030367321879812518707709377557431194023908814128051083490903376053068670291445201179732723763668945315334839712040429952681908374893440426520971155063443210584553490642083036645122441510470535538757286041490557277764084359166362658028331528311350338525905634939306093507883721440837651424169744721349016049284888559060633842301341275456358402280163598910838968371083729502806509071730747338284726082470662531736876068104342062007206785846548674412415398801372205549194452286163098502123014085883160232653238472435432926415586366514821070690725553604295292229338934712086835302613864199619882475951720377749550162624194185397599269010275978389279950024350657137816287427222814020939555151312554318574305606849029112532524931287934896501505610877053851186144392088224300374265502714927260845003472381595332918252435576935207817648327129206574880686592458386073090345135446970918564858452773847281939884136689416333987599780862976448858769341781006158488556532451537683154039129443220169757263639244127581993215288601948473002553931026652967199436807234486359323447473135454745391754829420442406601013954953982710077827957663708790449004503657121217073850690071513868023876914746508922350290056303157131801645244997724987018246215668458218122740926068287385681311852429421312058613793749503376369236350274869906670684390756385179311846750575341614602903407898922178784398498077871829782801777552680354133399714832833160811616869648400853433961829274088212155770043693651852784036576543920266752263633574386306582706040841609508691899785769604665347470429283990020203597874753242795238671221607069935064508415116602314552229929357885678150385250981708142707347359559576646169343680198230440131192820250069586658304833044738326260992824858108344468473846823037611094116760558503735724077117555990129770388874704483394411261093114763399841852281366743938759406926525764915014469911613007136565158397727633247830505792963890059866190065039761150337703342450071956230160008505632862937379679804550187835201079554083525403006572071694950751098002481155694953976554417940910044793316164424172271989834864730299768204134507669459635383903375515952004535175476697645297419339181207627025628153853727539214262772246051773390323773358541284883681352921624670264026553197515228502419352541329597264308339082096726383868298520086541981317834715527974857924527279975558182862291234674744409754879822090988677905213225331539830873701479697319601989986813969674401616203167930539729063201952602333535232853355530849255412810007388211875178877914127262293967327058010487628692578247217907719662630187971049295325656492736088276443951125397764551671258195220529712361330596809004804734128674676814240153774039258653680521651852020799765854244293705551286086285362849372545344879832678733364066081692533125669283006418204647999069191835585020521639303478394042494235675049974626760981320743433226560538564480614175525484082668565466706950323677648200382718450126580536789256508596643203499534847532988925396281200449586437573348752143318901677089210388958413371490396314848310707979172829816039746555430376299418404133223798595363020933817738699154168882242901014789589785099240912317594452014504390700563019889676193351405114181845682010084779034283723740011329702643138247002080916758665875113276775086456782978550414908617461677385390493448930060445693712304899386205266444438771483824478711951104808311265784868266884835715137482383379225657264339817358300158063217124978776855710327490501982132493679700915596233244937916041950645902367805429261037760769574016648088719042899912716858328211988332759613940908592569919494177180397410416969216929755664209027544858589170746984482933095293478708006897267750131171407729736643310596214534119881954054655010142399835710564357582398439055123321196035969893778156869807835028050548995667160746705983824150588007307322451081143871900002419213603312335695587810274517633195518787009717928401626054159174344780287987155064780781797287531298485318015397782655941600654793317713509416217027330787444302088942863742418328311827404115824306770102026532041310615017422271862969482136085446554167789589709028184088835553032919365569170975571192426034406883836414715752561023133698343493336132505957370623364505612434425358389047830731575894452438530547242700333409595430501060388478560788730284214632379552989273969112662276463928182290287390934926402200214848057487935494932866155794957164126792054370443784633350766752585731921965684491986135606842886611713790015773192953375067118699771632992880159123981258934331797086540209929565376519476507618595289123191143009834767935013416789382220779285916129653897448963087063773537092000206553344429400247936615908327417097175620576402146606241286866223424226869273772434575991577376170390605663128721392909441190167320678630718825904308834156060032411357840496265552667563126470838227737149794716249782541715862472817523372482328424642949455480231605066855475989106869107466279893895411260877303555929608820036995492995205217322908626314442417995510753062334510978405950393260390750862919207634223288975671962426103635147577734142773752822892905551052123372944930278067091029777623403784226608986506916693396549979278021994251548829815521757718001501895027972843912182625905847440958568662329022847124044612277981041410429158104513676036044657928134930456038125101381511266807366419509116757380509068288362888890519113151679930125215085114028406947953113352390849916301698236456770595902150325801156656691846481984859051647419572845019916045322110442960725037882246555111604516830606869693539092168800956085080648931109266882738339299534049279945378709393860272603927266350470854835330599516223432906876259752745948051808003665432433180258347936935245350053167169098513799264511533515963702262063208122418595484702682248026808628915972703289806320597428201204639723600985935425609113276374480732182583243066563645315369967715724122693488380273436684154913093266719112856776722588968409281252768840087598166571965949394125488416484241848914914023917515541510444028934325436028620892343099572333197978354067146662759026410557535328045033766260756442216768806169524649548117702742399745484581345032454096526142437149727258683753182395870809594808587742364484449165041285072728532617838972351238074529813515130224817957084889772459175188556425670016845766735639012916686741245917541960193959994325789678587438550768236225983623767069767451717534148740453457573235760588319807533062067596142923437447377097362220168791718570555793181715603155862391105929692009308145554551772173342132768404297593914856764884824586000185142774827162032095204219705543567444498241259564571154816472641668017123370689853543549358701305890649126815737454758566808754069785140571005413773033827475512702164736804647733853773466316636541009270852938151786344119976045477574722113544329655897360813210035713061422331016366377594065449868765960212593731758518831808994118515211194131089111950907215949366260435803859908648663915115404336851049891128183120097226293321341249516341815597484519602900401108671621325439354703750634013719546563952410454201559288301971185360874236815683124334237850638501304172141619844370966028264836806388250070708806074531847558797202214261047200854873313725522180432395685629513351887186793317455929814259661263559411976027122252434670475414909631872161731034713016378445538009532118869870847730994108359139176326341470743399621249835763435271462021463441961469456568902100566518126257036815629936507522068548153107316676814649877404667777126885892562924901479268215836589782567641081696520951163518070108673954471599310958441461923536819053502140925208372691939437563213621374978928895728628324376425638059231087645308618380661538635400275247087537390610375985859142282936856391246540730560410060618395836242431038414224793375176917773973024975686178031055897163985793861821676499824298798673795768790750064376116649388295907230746211275618277477141654795765283432747650783343786100101870215164635783892151042741659466892715627070727708958774668464271288517770362940645797145310717828505977956159586733362009823685202078466382909634810518737550051932688701507842714063404013257562690229737930304628078796402600365075915009294185805139923938042869332930072108425483675345777623306532266746416152130431252721620626485392003024874886254710514957223461276576570020750196641880481243044068564738221109536704814130134063529665574248865720230730688056800666291357290687355911079046988222217582096534952712139141888575232618923705805269422258645098088114136088032565262387322377091701552289043354325131937950934805946027396804679229256973447469937426305214065889544076567857256152590080307262271558102142122624644179267884784680784834618970358033138803631650249854877612897617006978342831879932831500378110372299939174690486683766565870763714348556674722718610790867718663654489524546083380457833258707211776759168737055504403537613955922012036238230015163370238295295281117073299372991947810062714767564086919485919503341088206994174835946247421979789603948684433723599138146250896793673341487777631206616911958589809009470186067608724708639055039009857869444617961223356011458075879832372959297073850378987979893472527087832120446787931770910276278715889833801705175609819557319943628943971568185911441157325065234228505824911524866490784128150383295723075735223148744407712225238967043188341611482815373879000777576147633836978908218984954662491693815697886297831451095600450724085869479214927648543925510933609382657148589210393044207280754238803255652700408526752436677232106786013736833044967992966124295932777272727277676130963336516823394417932588477842108478988869216771438076666560397986163630583834899875659954201812543684530877595094625034275432811367310906960001141452745170894889250471258574244761587000536498817689957235680844921671766600970550804760719262391192165359528838205716519752152607617346325523550046094057301005474776789244831051412116125650179402311408362518942178769673488781612672001440784132464342917938554631715708491200047689939271092243650977214755959961565287638331019541050219792014872755646654171311403984634209130768614637066434594641915443422376041376692885987434924753703625493851679718555990230235442492126356107290239529829296785563936126165376721340968775451146434198275738064009026540430420728101921184447770157168488049035045527497989185999764329555282958940391524761185363396348645444932128403766930974505933927610939095120582599993542120529925164266664003130795889253267620032841187775045448365786729469280719574479352134257059332951326545843073642284257872037851409029859279746738215373852952762182829623257310241553082504364820297091261806882386140329199041502341009211410904705275290272856660721254829491505035205350428409135240609140462363572889463576708492073522315645763891052466143916984421356431940351758899530984124930414729433889965459595575003210764731212091854435220115285258180490425396731740057826497428260133652258912854288839490112420266969716118351642442962499924285840198999092250691357905039729245939773223489556621219607345640056027611865169210159319716959797795784327692853916501680508918275001419834205967404001267510937099552905522720230975779829476109210967023303646226944968648481507983747821005535835601653401893159508769080754998855978723938420369617893624073973481736635271796291759253329777704573473654599876340889936963258300291434859963473583874446956782038153507690020669535034133862510433132979507335757229284850942416946599265295250937164359399374312475797829171413707825813156232089998225580279066635616665978456924178201061524244775417643865227213831305051725721159172837399033031449869936905080067694397139319640051601978151780665515940124213781007118195700219923652044023589455157254185631566347134881657428555159306400064557950520940905580666002702174525520575711999523752934341215249354695163067128724154634016285602068940990562733042446521765766233395331792828786764455319533506630376753009965233220258896598380287447050019356824445695043293229231039684459383549641352007800461588514238854316747066383469880977442185117847277912330190461012755924882088014135984024274363429107120863136396887012271522918254929354865454682398041093653860287453033444345882398623142145379429795453517130268938998672554432986513768659689939949068369585097884127814635412922358507529538564250322969300662524064686745829040065669051903712235195162760679143814463611520997178586079444512263783248924174358021592607161781053491453563547444779348103689150235066961372915320189137209457866921845212663711094012617778396696474048868163764323765111095048084911140102210412716319141309978248695632313182305451187883710206327695581552831508052540216666976780159342639749536636760778491665878254840953036405325322312512976254212365838837114714627003719173174013672069581073846817813364124762965188668301896047871833299945843104509658171466763702485145476730621745478137068283197198707400291434257085844843138489976788856282671101152735405396550976250141384302291839554707886104338177937656947220524653565504576069541182766865929810812236480932293673060388138170847626395239047364215266073664520254607286904625054841809903335752102176385654228087606729151254409357830755599118485857865035519314975847985316287465807186220553618024453846683740285791549724890605612862537132025511401810366388175779059054439717839653176128419618023465786540466823524439643395358500154050369019689774553380854119298298353927644961801561106753647710040453264051805826933101836622213507839064477582609654732753098182450403239391624292047056242282814306152589143127034242953882821758860919565858400572742536418281980553789967100886635577439447035527561126739238533842105294786799992172328022528128637581063601707878925713871639998575987115922054079797997000883254053106545188795616335770764513260840581239049073016314192590523922304609737484252063615873638934568808721312435085152209705649399563499453962524522949907913350784859424589403693106651911489808831401430820273835390846063109341642977877238432098105273620758577504189640812572519410736993084881931340667776829969804416379113314288184242606450025006998999096508758809015615093059454818005677971354989521672142182048669293148212443175440301145884412467520980376539612124349134543267902449406192241922179559707790949736128570511203427947404997518883243491372773585129953431818557374033648636738865069491176293106624390558937073558357676683134528853089203033946935160887770288952299013902645090826463591399215716056185861399940765369473786885265950024405633610142410814465895119549868664670046948547186931968552940751213125505978334205458972742840339006317858952677775051242350670311188560576606001123615925858461099226053380947767219661772652130565430674861509312965003087040752545142430198226564561355916149351157296920177547201668197042531257370031409432322789020146715199609734018734508308818336415363251726087253607051157382108723037129265905621681113909576532914725020370973538251269759033178638230814211613669372505606962604079085345155647595972205403062732170649764735250482223139921231001099559847837847869013771704570902062377869635109954263018511779108350185108964769946803832782271994695894671852288645427776316050030352943329333180862973838396771259254353418926615464696943824184336369361230598895229060453476062072125625548922852456030589199395163975361289693006764797802354101211707570063718806746537251123347430581646907163837037483326199468151921350965846430894668114672552848416961996328317158138601225178855356048892354990994074177503628589972048850188676440207613517328443929349437388995123198753642364422303396228572311055132769096963399615694870868611043410806982544015038960236950990069952616244125883811727642289526621255920415082962681413801570829528200715275497187423763601012056012848590549958791512860731755761273824807852228713324927988856119371743735393890388577295671340447510015545271106151899075206829734931101965397616321603003281968850154857486428215231388783338251672657019221836611042077123876555122142922076199363928472120453716630777306173152702397070691624872089483972013029981381186356054556938576456078138155176241300968190509843670143549228614822539026091470798313924949168468615418388918595332496365771473884559404044813581774234192768785799710405136402146610249413819567005493999586361707085111532623514223614774543481199926628198370110560525888908282242788025227965698207021751157296668498523857300148015684392850825215554876692352211983849742623830674184403807097885015140848829661269077881218117684966665361444324520250475940073615902115429107546697598812332345243655212949131442829881824821057209183894090248929435051894984519798759570157202114994317728339427216003797886666084750486482533759375188387164619670390868083355494459751233609614729742561234311980539844893244360472659595263936572911397492146085649320510216575311060996213863457829387935694813819846406945049331765090646350519911793166538454160455372527305741336150268263039834774011066488427375013880972809859350691320790627655129234838561775835356539307418266163657610756586367827101872307579661526598702816089318330991905632714595714141455205916676358009064662317981715070155898453405370338659335671475340159610123903043887040587350604633064716509786297942356431753001516693861138314494385995832500563990760248772790200833895133777283892668086612361265983502389453266507196736949844813544697552129353353541502982047153861327727681451114946436022181988098678653981569054800764612714731447295029272855607734897082219675394124346504597828747170926129645603243811437377769922685085105225003583093272702748151261038116319938426755711519559781427268594508860079992559711796439070875696302162302799735803242619397580233735620816905337270171033529651514052710315290040970952540218186416721278023117181281931526581609875418033412846044399371624861562167768894386347019396650621907020162410074546341886843299289537171477768532733904936790526850826922691667122238072791089017695478461612476882985684218401423936478995846400675546326038410216486020217633307547729336850819825407482936467666100037828400617928610954561598865707236512941714388885455082265207281233337801661512872786073331225901703537658176146092168230123942832725825790420158765534784752188742872198089856403052111431761938023408309851122383892246682285641501566505592917066944950844497656787351872379709178768484353030454559483111137921918206573165839177387635381164245981739004080226802376507502027021419498489081683961632484459585577135484199628066679847185570192654721816630494154130528747380618791723803266085987172710687746163869835353958014254092883058040004770596254086809980401392770515219166617580221827086601988772430018744123378259205335752330192967057359428219397306599947622766934323829142702077850689884788271891015925025588771554406372628408613575920359797079162090804302061739807262025475414281726770831937168258454802809082738570416822922454313713123385024432016868748662343592401993447792537529928952309519191524050776468142079462492501645607509460384557608478736346703670263884735551557422893040368523697470275995420488597979089631647569744296563675404626826007600346362373961989422089886362926397436161031659225214388438115675568895084755925822487726490462103479244652627708082517118435458099019549434142921297295474478099894680335777774684296781970035078092951579215980578227194683271224191958677531572965041201730013547790147064512178222756497147246402461233671934528829152897048672396388609764420623496997763678319592792439314449926162811189680095312293362585314636733542420950732525825667992303621210107214454922314631028713899385772847813129936949591094488667148103005459888944885836615608852858676224770067222202891686448274737378105738733875989311373936800592501036089635205254116729921975448017761099326866816294466248022295423047964173583009452165402107320351767128278088464841679353378799212085308613585038247187387204506712168198785738178409421764480058835374020877060309586340350020432883709719027447102181549870166592060463108533531451551344712018128306209393079911783903920324122719951446698225567708609226356889969276316545852054556821372770587731963458719468496010128629218296694972563707305540193261105155984614257109724922322398374119997083595817126535314529281995415115442022638044696132390299497875153542434031848130590908292042001167098405205478932692897180942128845185479215551879200725577906900568966822323810844115002472567990493113969855555969994940699248610198066156578841297339868414506174851045955958100532175647338977322136336072590688277804714489104121035438016228565428863573825207922406029267135137385968130198832361622064909592152349259208908938607200128724609408088205421071719831640040694807789515131621447626045385755156592308145499460877850853714089007893817347253867886335270729112823577999350263255206400825714730578003400672138390299779533542088424647476973731167425131599373892146584301914689859600714870246290781186776350611201282330317199754008299493265940650617542395518512804223363599155178648464481563032969925560021883500091732552868021089624108959259886598168638850402406113339579362060885448930583167900648727908472970225570004803471179338323336841210403807951203619125635667956458794210816275921422746361423590257420372642060503950180358475216568715151271121144252231491938625562457109306820556543844048715126220481043454747732476642624636497187632453557449982980513135426973202418805837977255745302561065221988933148382041895526743861405872643991475446139743672776715397721814845534949943190923132850112687245300558159382219300417513327104442210290290429431871229980482649474924513880362742414980229453104416823940657973070507668395873440550105835711138864906768738733385577266086894727402813472455283193326848923990482995626992703604754892723948283053495512760662940974176446717490213368888025214876922400601211609574226830290725156002402028417906045578578991570935413969086870768029365463690451884694052140224805386164894486003917579513734226304543004785887773288159643159434293689107480204325308077977963457910867137480663976692126019566451903609145560659625512750175682098361051420498950463069846872881947500575092880409676798992784453549644511003540536022544186050114596874296539866856561090373784835388629330027808340759766926089672797246018843323913683657072438859077347982303375609587681022832777972619109130560459188879401518219190969639098187336365810329019154961376235100545023009349542493917235537763891037033197436491444958366259912484867369934996731590730685897942315891123653007561323219191636915033644785665425009560199091572062243748000683652154875232998606491437435799171662185861129760435433680385687755891302664104998316339026326264257451066026407550412958407171223754424455237405505550339113385118540781346791848575184102758462733475599533842341530952505360819471221328438679650954680517353263526551060164737176365929621912217955354740452107596614481218287189784678519024989677723109214594800854891817932988377843019208258248581524606891799663447563951275818668507607386927226407133842013015790708309425377365438893897717938270626306175908264432946558726513638187027571030167812543885627299052876435083484538926292339362355119816306411003671130879888977723332231494101378649671441237598213878530856583029820213226694958540363131772559430432643324360125508376831164690291155519510526527730763098466892014447830114775136835528906407231708220249322683988561621018914538619436126731719380530579932977420815152973681465663070650534538491380278410666055882308104593985142692611608233525412782879251895443278576242277672606828081689889081243466381762847356825670608163308357343696059900769043411705625418336803520019167921669746491254740917844934314026953402965916727144360051591081612555215900541811761667386130447111263264329136772271582526255703929155956124165662604415159591515197116635485609164540928354986798152759898819364553949796801468935240096474870772632690305157673163939933034954861453911232350493125163321110432274991587468449235005683314514260054381235523966868505587702982518126979542352569373664390130440611578547358379270957367394632492284536615515356938545908739085714682882498870008209511343367020650930870088065416527050123723041882256751721586178191125281499143923985362979793417975764151200662793514201916277353700983759260230359277441638149362592057245820202485798045637187457599450080903582322923090746245135269008544186755646530635985526996064829374792923941474010333302144814006918365581031239765723181064095520344709985022112828280772249799690529435275184319513624483639729978250531783741171849885246649485800147588361842537646163592586134788815883835980086995811346455220714705588134292367957778336600284957800766828165531089014877818505215409328318244130637024680180094779967033774773624260609365877875666919548210004875816868019335918267094811719362791982475733014298432887905367016362497106043597078436294066537611808585364064370986141755874620189988924393353695646408916057360376945049447119601623376037670691553104686964883366854527977552583072184080454041606231271032994490823490442267581260322738536160102189716839353793403772164271797470511588348086103121038762907042332501869465900791035679798297362870651355394993653011678503658738097526405664678085019319632379381650451135550627617479900255141560153639273175075174827907317717133140718488252933110525061684639594635927326244178680349227645834416361264812716502039937031249828656789198246122010067224615289899095835646594545285834198221535351207946682573371391527202644348574794916722459559315794971467132475249128820695026052215316169144436491895597652659446887112254943925765775596686357988924874188880912447773879712734408765610779286805385220006552263472834903427953040371665951220999114297469403712550947516953971623331426201611312886320924603157139353034257836009888265694718112267707152334924786879506688738955128378452550143255325417000336546327277572486870218748331833300870708529236835180238930447103278507292403352678669570240990579496978535839612208618939961762188006455256605671456789867226106926259750559044810360525040241412131974319501602199009459386947837634712606242656471428254782088173710012019864167046569121322921620019566429858067464721490159877736855633526122424693328298062650743187382738598718842632351506634819391540560138556217752950622901835426169043289441373258751144151027025114260325083375730624130904038719680499156941166827749332178032382682172474922620589944652042041069567469408357176963825635153548116301771694502499848146729864280517178556805338615247410300911305431022629489082612791199464848184722027226472603442161884017075097525417015383460190370811192634904136924701542035912375520305057928399915635937219488002884686132635549737586469091862806372701357087995983359038729057039673322095430838776688556890950082965188918189545972540524035354420671459954938540879565874025791729949285414300692341334020365016522804775386513573599410932436535512215653678156203380841141178924678760257596557136984782054503214523933520555748164446791983752924175920836406034006049562541630328064618184645300452833984513753799747427950369065149603479539132562673230949765598830678627207089563863508334608064924367727028625273196421624529667114212552201282012540553402714273465325688285505024774317773795407004296124919040084174511159436681075182986797393542640638800709282075980496122903721329201043614791687203016045627774608259598640420001411262919902653646021492092568709145735851215660482784527160145263105477914856532816322368880391996310149595229719664443214340457601004485956593856083757786669126524032070562828062358835781584374502747281876746604886276463222717941816502457365190828149791862110910521842106624537150413841328287419930690007763981437745916087434423168992251849255475961555278459100208640201278693076493464781099188635885026117474183979588224059236679132481903768664424637187468434682689873928280536125614444250988495593378980573865342620386734797450215034145602630848951368971871246766854202914791869614345895635793563075390857849595796545534319283076747181309904166138523266417504571288549834638313030280946626420223582037251754377420237550919137294309313882955881469875066489813133605219253226048473340857097274436601875048565868855081576534307750146902739648627831938889471993822640257693834050638696775116033578907685614975273192012053707763038710308202057376574459520173323693817242862288974945256106222784605716056011799540574538153143874513413902249171633617411185669375898326466306560874749600879191677229048023248292128009166631657995907697764470876388366526922045737610381658325179272926939381414076848408373532250009102531438092197514596603662778915733489095913117876707571560550273162858535574421902805065193831063402512240475536064846980790691852372976389287761759309940660441280255030214968990862020772190688450423484309016897932284466755096878252392861542091749431623349748694083765598765535000031855528718136535779303143915445656112015835956448597603364642656545948298776540780385287333141115262292664961228945617210384065526475056818624020657241837481785329570313435469429679851977698032790060865434606765341671449266873788556452275491396687188223591952705063849628584238243289545188319181082097894206666818417824877257623855646089573898470386407409945131685918864457915036680912087714061271084609231913294348715811059695255045501824224947894565058159912865067912769303350165548515828018147794591492723925174705312942484901246160243300957352638146825513737990715032661282106863832015753254839954752435010989973784401232491326551411744173472173049014659166351959737553956683243919580308327269683503250717860734761262363244097965049737583032035710257746906493930285466106939859399480691284961192216224574209808774821283960829026794528338781932379747179053070285549964045180258676973327674320701797449058437375199677233527040461307671729911905067820693983887935830244447514280227586371874398533811600507544590442973854550639905730008000255660463213076636013085574268667511701109195016490479634747909016624902935100353867196409179937141951672820137469354537356253124707667963154856519339466228767462592102688788779744946528997210779211740698414833939825325776498836262468533074484177054601547613740088592183537384950670442009412261338447114263131149661777484258238302344273472685542250983283472893021476014460153872484568400535155197679312714537255015369338191012414392565501724291490748540859062987950494613790274519976099336433025583409438503699924553124280879230586939153557504792524276241953905652507161481587732116453360097673874546700021770065970061910205604944178614206696209903872395708832212474169286534526002878865239597284965630924533516561600042132439910688750642946249064790362010661612401313992726453408563553036178958450517489713202902070670781635764808246689983748024736134505945062192982088169623952738351425457594349195675063809809231641251432171573213956497095156375105077433793196215805410654539152761443750035029271217246339413594903877176558793691405503618566233567459526132419170798761611295328165034913537625156958432430042746280776486581982453748972640899744172916759763776874001707550972910312884676339453692881358073339888633939789985261797144145924298868295371633851450316075971637037789506524563912804882486251012414052429795749021897126649860688275583510722424647482967465876464299992905195297104406120067752607555409284781511389379518296799532842109402270303256839386557623514516606223270500761953969434834217688607971006596631553981174257446223341288311525177243965175775895892226072058274780499257731844229468850143056816349557262914569402997585075217220264874404636871580571886617677173927854148543103754037362499527337668432054000419740262994079290761915071180545006841550379605228584965733157412699372207525171380064273899499577780216274672308621306661240400842189674676874688069834460604713527660260890715264265669807621755597474831859604066972042079661611285223257801079976126505591510735362488039496968008516763407170183039526953861410544959411484189001811603467300191695345305375368844304297711781790490558572510202937314775961322379953674721371312138884949507247611642841424498480103116074257706804833024967376316847693898858158970618003040546086232021973112881495315733874588883968304133953851700010049679192731683227472092544860536023914400808018694536183917260623321159440291941610934653591554135680598724206423683727535452051913021438658317987129630183500340898456805826037436817213632024497298912011592988567828909612077044788421230628754478356970403965422569693300373885089367396669065444551662428592461563271463930504911713778290125548029895044040961643966538701331377016820147270202317773624987949514017444590381012759647537736514797412312682916494947774825926502805800073522932641098320213858054579746926060334101636623937616001419400041839447721266969455451463601558465180674540297183777093002329657344719563484508138603214112074025819210586360088833654601395175227884522093415990271752246193874668309104924012097064123563067009747288036169379915918977565403468291522525094024228487243644337088414142698317614369013007198007660219847535931215986503473791353790765643814613345608391212090012067636397585018098572140613273700407143954115267024000059172597442200853626763268748834610003423948398415041444318404394287438992371163540134454926697730751901991471469024185727523142145346672109307553209970509511829153029075274477093214543278358405404296645926540896723574350107055087995326631240353067248270417852977523321360133866888679816882590475960689790353662021969648593174820998911745182112403004561104588328241574090517266776651786923621123425764639448773276786005207909533962436726938235509446628391000982694781377233608409490798291975593842014880544678265927270817024832600849491695597363357841950895208228934095726285383037320990716084052834643831707611179549714978771691931195578173461538695987958484045657929564918671495647505754930606178128217883881206900576646355064890452547582882501816435553028844089988293112399772435769069895996201685179616358895177064436988184903549815112423120770069801135010157326379448315469706906028211488503590130331143078115093032870157780398832215337692254602508305535391119939853516137216026063435544859190269556244404065333450379644281254401922669869588694790479918446739140924100664973816474532802648089259600288606652741898177969374701086582952478933300208883552791763184013539453854320377593779102594440810905768595919869888897747693236653796858322514454401037512425804889530803168396667631717315542320850241370245394159940052110316874808170015858122309138311651699223858461855428368317895936727245358347538204058044147513481601979833867864332142209162127834586038016510481452833670093358437748306592908198867623293445955258602428732619804738439257675040377856683644600027786745301941370484343232414169259951879807581153281698635916566559150898519825590566706637393172329854296848006930655844046793996519904969594318187853682973136192654549862647393766646232549428395224367659582329057351430514867284458330628260700737225192475362786123642016229714591424951953985336340515158459405290376875367414148741992921402215940360639306301224808764311677274030685167696707644381414459124135697186079830557014968112631977956393996281242193635070922385967452147925078945170965622840212999115756216160500388429959922919523368883306073898895989073369914915275097174939667754312727164585287611707017842826934749548219154705089933446980519248342979393013692059800584296373866210025105381480474168198513554854025259326910357556412770539325867027725687732708946293669755280924665327282663214536368768076035284843741411712263593897866697778830308532946038042545935422910624413695327926237942893222046797442258758513968779845155970153695765502234797975575261434614267855237841841093418916030863442524932117165099276053550149880861766501229267791325682016405354203828585433592256033630134032601744710094896587669268803494995315367464113720515554754118429144901964287929027840501258170339839593601224514796574275179828921214888241944945431645906772738083431566260844339830435038592430069579079262701376735676587393762123800291250114653573325792349315152458043205510428360186323022018943968028926060065620095027647108151889850717053222449653312063347870199189618009888911002898546159098235497881698525252897683773621245339375009970419480121730272317379221751870299537740973099291264798160847857819333044166904143760204160304026630113304374710256822482045741397227910110619811031438034292264688597606646458593288808911358410158423576525200072625264303633298893942110373473795757962719699750493165505685318831923361341936901650428301810365550914949301095120584731516061554662616413452333288825433620433384932943737690912747968815020277874773793864211216194140129163189995656531085685774339706703011743084924793307885538279242629726599207807144099213692223111727296813131861189103530373182153412816135567695766163867640243632471769173552621483001667287736441334263110240171588776375872064979074308534801288525584241269598719888794322957503325997986582993271678485037574493698803492460650132654467725232651888619285952132177682880570542632927430317694889526791402296946897844884195494909689656819111962458030654162827400240898595271838030030627133660437116812286791726809914202684600717474420577489094520206890683394131480142433822885566390940479833840767015799737536420854262228115536915132088011388665050829983863574808575183163731960700534015072407262318762267458083225954063140641396088892990641460553625305415468321056662459105664371550657205434440768039750479584512522656851422292526016972785153569864721296531814622088608968423500138631082838568238859401201285555515283105717692696320850247450519583378032691898956658348272671610734681650438690172914047037823427147768100405394318788676694575349951950406144448433291460120637947797322750276293252438551660734211473375349290363314770411392919406032174947898368599421031456642986381147212305579150572076938861807995185605356717414247184447963346918677203494225764549131410110087425220488541313302575186438208564743795597439631455076231381244825326834483190649464209051613191641051315142422470428765867249904696752712188676494391027024301414034989536036482047200869574352555067989178209542181924980994746514589835862158042006679327765634041837932738545327118319704253648640441658992460837661799782244398871050455990640321135964842487533565200541238934945366664593134427191504300174647724751476315200504267038741878067353653638983229914051885439285551742822944665727563541824936741137724887365066235014121287017120520364863829735866755702434100193494867393916044722512435782894350969288346727891988527576080015868883439174964059041475927638414426636486319495483841583285701531112923514294815987514622212783322928551750996248719634295588088216533353868770725288009185189789548648940118072368945094282283171230205381940053493363186380809489158426478714855608216438180958946616368359233220743421445669122992596052239358036468889778351048963418135289629936286999478523176519405181274843370644154730760853225107082059270614462912640259282886047733943864673383101290783642669734603914030776643321694273304985073710556574148854701891135135373545705828570850351421713754391887075502587215888306505980718010169547006339684903374484571121132459708558720706916245402127288438947582057479446046093694488291019404454577852732697945371234400220587456675095964088739517420002997562482119862182055067421653295687921676333138140295812569070347996553451701210525745445300431390547216483768095116256132397262817850663611800949217666627059766592211044267438064048946973260993695834302977136085090300862728779656870230629060009135482981829982150860306666653845169491645514082578199780651239628270896820420199999127848028398464954037792036838655856089639836826893719838009607876555840882154978059121451114795182549731890939091259714780013527976945725004991364065689725453185751781676462450386873368191559335206235589836511334914086376225249191185409454501383282666302965323780328849305701488115156290595040417107685122808630038526498237765172441789878375957578656895927723569896805947783946839187132091415889504342723732712578479948475181107300679585555573579839296129721360690343221414735253162977866935102573933900811755825586806220461427659757814385227562036335142270562023116113087700514935511400529611907633662610422845568177586654606106313038707909065603446934683801018997916009625879114585091479513064273426183847134442787250972301976438337560253672834096476348536440563188011153071641198014260917203290000108603457125683412111605017434281619725881980445789129801488184969998067310581279240366425229528946720033797596028478334301793680736759060874058232915613186062691480150677364124896948692066849763573137437932776351331546135898622152553098137433768950581037082478690651887966407404265225585624471223897457550684849201661246385486847391329051735451129499080052326560525230714210951636926039567437691352616411708556627174778015640382523456194618084889891000054132206710908600088014357073782829231436688126720107442309785355628224840217080525582223366631227573718876454491231924629756910164538997391472392163225463931425123525943097709843662213246123485840515775691393549592717643656030355704533820086409441645477953172741483069863209603702919630477371507431381762947762509081020495720545749671728561295415971869502778183361543363879262893262425458466509246356820297130970631167955174620023716755915357862057867254968980825821615346981904753447670150564513744244900689360612664724950331467476063899632290765691885065873084736672132517562565514181846237393890293999858810837554568714119276701039412228435120888905828045891761685120198458597815738818420776543294672157847889380557631766801839903287779326189665613422799115926784111790614850015026967784337579009065335868717585049387830893848622639878555801909128404061217819340402826447133799605588733526713443329571718082144643672188317393232011178274157867969554648696109710218030388903803389955597858913946872940013655250142985935258946050997527365673043671167699999714998120019159714071872175308462335449294519511373475213653383761882964851657116358185289695684786695882692679684130226802013442433325277788211891475105968653080514036187557699880653858912074248321794882600020514930171955526976339514661557170886990085343135246974843786902836855818605716711658350615566273177108296468841289401993893745575385775139326831835687711479049147050908573186943226057910290380671067844561553964288234198162816767572968239484911999012081907272048995976703180991143334031317403371560590561841360531587962676210737181724143201264467186517698088408835278183954547302210487523293384919478285840466931372178653891585203877059465686881471563447482162708711727245078539477453738547497683617703320900885851101074293041140361023222784366299170317389980720215928998069841059414951788129552210123042589164966643290799735887301544686597676009239744074363986755721815001518038638155376964786772846555039056613914052782775865323128558977510690532825621705881768388709208349600983531397648707355241952370672413695231057177807927828560438765093886591971928390514377822920935626449528565923047375915138538283197989067597759764631596921329924632014413290566009521799981056221024273459406536053223347582530350502401531406864011557724696788244231068341863646766764225853438140482820099368678034894680119030746493572904677899260330302486586555008674833855854154679306285253534620323539485918168193500611869364768998717182333390344833809340116506024899117091511875277246190278335967171168469982310206387979148303167306195730651339831031714118866970321145863717134077322949944353067507013148808873694133658435045142714923677239673179526533262540220087748390005161790903034798578115440273884745479074831123760006377401945584891439211928364983666743787279757294508838887013361190213961170186767506980897759106950334820569731898701346765729710328000811157820218274802566109634290367854479956031364991792379118332821923120326530976136404303078718661757163068783925561328193651060716630034355482972859680245023176093883182153079458265641239607439049310136080552909913770725220453070608321224499332363078234367590128399325921006003388199572872985046121242736658721343347744596446924988923370244882591689768322130526458811221678796378304074095163142293821709592237141551439429354351952647888739247139769381951290756797978190150243722123754019917463863773993428733658838710693906375254378914069588060889916561063368792494561962103950964297492456973801675790216313160125793115499273083771134625452406194149696569955854744269279290860953667700188229963299157639327000395166149708271791933044644821324198063464350256232270426639507240055078812392191490823065140319651450875834487741934125607463126842548902057883163464919039545588709436359662394012791914873766766692137172492660377379826554998459705910641884750814021854202895905005179948834270740656672371024702226143523607257541560089195453228234225256392928381127790274487974852073643524168380702849273281238463390525837594670779560214821516962987167655807034366276595688460723851343053549107446570922285686365257284088199456333165816757750548321241699700764588530603878736720275545371885017085144250308382157656692788898029820269615613643782818373650326125007292979249189387017776787135531875579019542333970739192937340463081770507391072964907260778388397370799600734919410880667585669946649126346721027622041161127575823552097516277970198714139494319971564465022489955155637938910969288171771259804529531992391647717823677857443230208355192309786007131603021666901653142398791918101122976588585960356752464277294509077801166109253576056032612962166627896330353442848098892815270201589968126138242397969183370113630566174134643991816329811752658684793121511997857830765863692809410441280044146022799505263433965420708858924901779577344548771461753411466987216523876750809709868043481418920667724736528700577396615270168169221119381349763300463034157332163141363397976631416701555865523252486151340671008528286129654678831797572161900076504654443895674636106009008316092470218876218885148758797420828509110151166428933440321804805357254521619005574150337490490670427374644271473581016618490829403545268962210794384507261342335416011403560963380795150216993938109348145877108594948606538133386115745006476378900590029884862138872336520559517460555053549040860592029456900001113853687324227650428747691235123740111399922016883554107210061279860881176372470710894704178504383307673029315979920284662520503434957727980978294031655635386842306282899082765774210051379768160158609071974207313173387625068794745312031788808984255923126885093044076432361012574960353465624244670860156082905812502857086088792421920135836375092758716630623160003619713858199817003888107319963170903307251690360315723452515287743609058094968389558965043177299665628425034609142314331586910265345969942370193624339199620836807870989569909717138592183808423327340916452096812500043677464348296150682756503335027601290894364361678695082103325521327315136959714458955520814015019730092791317217704103819371273642011647877184305239665924692437233129230574676479021048650308929188151175213108011828185607712930764048667702111043061791278778842568880610164651013090188440146937366345631020125418112750869979703785928558984145802938421840436715321997810237385410105462049037564406419731425042111125379533339151536010755941446554491683990278880416271605769001887905736162686879112617293677827086171875208749408612553203491512084268102697197243366786426318905352796713091621890307477106118995625250879769394889445081559516407520256012146181470983230162930346669821202653666227751947497776056014743002687788260275029082812779090600723219845085090787782795020851026645327963760669449661525050942141867858240430750393750373488971840073853082383911367071814576159734536651973956134611251076199163757215440297123760196038955382983530546087523690933833340875570399395491107006284995766929847318437237699007324393833471239806126394783232571336891755008048072751025623538571096802204749398310552001948504662939637607870292423583467413911186429803362070094673050109050359563364865788710694367803170326301901488816409620525290349729284489542804822107922946967689944795443163616119636244347999837907712244497728586079619091589663982852507266143676918584995786799435642815751306401955267108421102707766185869565544244219839078541779864195002270783750572377272558262257228456773667512194416665432379767846967724505887991133276680875431877437651266197973043748021650214121165743419735659333657083514018115883293069705456756151351855674065641441519264980514850054046007026451862993567281680233394948592933859757894834041108130516154419242012810183426724163986762900047763432294959863697877230585063466500493947546110108234140224231127656672798662959925507581346977538745983838049441739619949900988054564419828836456476805152167449956940931957654011358433110276022434245587620280832391732046465124008688613111801548119173117524292109098651615426267754941975241131802171378336980291569824306041387450620411756016762520672202378774814416105987392376030929305394628586046522501004539583780193504901205051960078729889532591968692374111227973708926680677251707351391193667041036137417952447177998633439661766648501152049357782730880939038575094269855699489153375684498283925508717681456766079042589993921083158181385621123661331854693962023417896457000171650828779758643421331812746936732314078828306546179843469631255425211909359974949732060134164816073917674515894606726462201284107518310480933988263770155926812006797550188762858904256545372015277123017977272998765052270231985049840959194827620325901028664998341425759331191901485648141432112369211346164297406217346321446783602473497532947599972471981291541150708994142476045708346432652469746162749436907399071211844136295151460270364143824093068522388610081135743773423844034364981898441035401774558091176148997745786401923943831501734234187101382666857792139719338175007970672042620225408900122403480677431984148536492366354269778075365788918197165057157174111307890420076765433221299813583216600952390847900965677397091592513051566086068868254820480783996929893934233501231597201050248597964072632187464886608430270042988591269580855274567047014203132551225123270959789577960716707343398207246154517041659591413625065416197265219468633974009654515623986766744437546445523743952787124961863114311282402771017344013570544825122609183747008199749173263203465872507376436000418879869250283278802795309074688646665541661861342480248048745347112970468982924203438720466110622299562576594390404146545864007790777707373247611573403114135655569094956783298869758440412569473680703354099533639498680661208903454232986206994342833532082016713905302256904547526241906254361617430596196956404979706295330208829972234837343647058980873729078248861267238400183195458997785899294389136527967886864005487639633001250944881251718575517849300743744338290218623198902683158316009030491338931501581168553209409862563900962591977366496438629107762304796187162015872116527182696109844394955165150864377314303108911646541362442028462886676180615815781009673822132029421405968319219537851825075178682252015944970026992710803298632576538085591043044526487342777310239878657672043888285819136026460619625855655744686336408062373011610764154665817904647639837422685548594107630992823821729512492040222678096327672465080764755410586647527848405098932379838062362443788152748240558748692810844104954546687292527075974607943448029216533194025607559204327221640099524293919292413999152504542012470478900392341637575646998151683241602853311168968467809538752621750175576426801687659338434495061988841934583011118055462046849333437639689084041488042012072166402332080203165394247689456434116041743259453410766261722319516715782613614918649499470253953170997284520114599778574030338333037753297804202782553630827450272722912967231611127545811387426486365195896571770974139727556353037573210662974778812582218919428493850995640790129208720805928544081443528675871221630746549520174769468801115268587360293258281839174308391324691847701400956012175680255046160108926740551126565676493342610846049918479584910119294279304652385610543675942985429587915047970940576596948227687464383010919862320167884385325439506433579287112249946282392139885377902780868778280215869897697267170733656149100237571477923202176862204710528355576097397266412231311196898677340601390461954916727806973357821383091812024693495216079212896783371787387036614789190687692300285950944139168451392433011309786840637669137929974306212506885536343988604189217089005121392651166847516521026309639901958937457544307648790435423933262332934870268299012531068536038685298064275533047630090437942143260961413385079002015567472100223558655174271024261230054718577430094344332669540356945665608846119302073578785624036787256389023391278731364974168380101614970647232655987519639713516694862909851358982168528502440116253386044902771331303517109339885607486864157866683377652060914288275917812954904819652569402283259607048174321872473766184389059616970556406406771977438653456815332966002332842498248369059386178957869558488961116392801704751477091234630343980742112727424835836168070510266560850546440017721887250254049642314304572906203782675561407925363475823420168296857554553253211027535361691221666518192205454995372720980415986536866092968481587107910857575397954788089927910447767957218067706017045082164890487642612270745102246292850143925401024220705582856484597791100124210514890376457464459291734145623514035017386025085520363182920984653235620330584966749329842832775170401005354151316448538365196884872971029109967009562929416703189671274218779240250063528541708581164881316245737848936129313846053648986837622158116171317952439744549772684559604831076702129317867525733855369852357873343171757380622056018986980735404330321042877054699763710802053075018323925692287032294810405167558816208984864681860326877059626648903266559306520679073496573542414022372005054269464966430397957177705717983335047548973866263343579952319016167510108178747987469030209002880742602461503493860128638271210126865112837366131169637074273241045940548536354077002148984704811717380956985253211956951773627288539502022564387756172130611607647554986361206859182418666725485509932503044131868668589571811203900113459516555909533187933463497945353653423194802448180899911045561393557352625512298723048223317333046452398886837182417245360646834913869530678241409461447383339609227024378281857563766981503789317111115005958460999244034129235851776282471989679334745528331332041404861329235424361233017332036452810326879137261361281061759949718735969537206195311360340194537544604105871843261806132551895474479662847008041160401079145782070242960567280507931098038632671184747929496231566615929498758118907298745218904379882307510997277940801235599356496640253292358833950377092196211571418073790117849826905189348542102582402307978115264946415722280961503078425428522101240499301797128265549757931839233495238603576145363480449141112228903855037510144755102304927376096316201050370163500202593226385062106839599992882728103412572336253124584834263589574142433574566316067638790968791634584395136381189081844047741664151701790582491112865567868482088315506849715728725980023583752953238695579638630283051416978152349369261800121719350478864957063611675074004563710475898748378025561275522927779114813221641233081101265377046749570716203309339619445228809613152375157903079512326288529462578776119910467556787581963688006335057541707408976488697458481795046043924241838348999942688144966863584906785540058784114611493773395649841690598739436931844455342591359248828990603211244165985301717462984009452342263326521145089097391028608090379359975847858041608796874826197544282845898274430561236623636614513099699475767629939897893621114294235593095639774511070836106255538271659737628979239194715341176777862120170596929458864411378475814691136140869286629134349709328535322034803040415534678292667382018020962622417045791278443460294887998042799233233135874071084994331315731529055167106006970603763758795047615345596743137983373904565267912962993912534328847935287144526604764967471237621116459645079398051238277595090526786815375364260772162462649090413957299805744099900446908463100580839120391847099455788702910954065395851106273469244746672351734915510492378534701015741219971190943048278559882950075459690350414547697296035091904745789528816777070360159330151392774889513797729267861210694399447699091121288810202881940287601042003518381820365229219383816153462415952848351640004505417602560226332367413196820561464796564568731697556840940546410142470271912068665111701491209192236452443129554649597801151143846497289889879090004619835899899040807319713606581587277674562449244423646712279258363350822850672579114699839457658496722371564060392535765824779623338598191662791035116052337394744353002469154429917304967083503194565316223823751144208275369574523715679235683558234745747277132566766610702982414208730757408017771501542798988841704139499286906020161300699760103609173851379963633098949450419870276692945800069167840449722383887804061049369696235999877365976556619554208511489080048089174696926681168389947069577716348686094646604700161613857052378510831365564773302325514205448123266357694364469663637212000867160931976978787068314820836419063704473286977592242765807172178359409101189268288095691276937406499307982465940627006146154016810835878951796213951387563668371613313340882019698022172584779695050771220915689977764832690451973803059145146728183825311467022893171551139147951765711716752898996245552563874151533797883203382803343458737669186333491589633525228053504207307162659805131035014288097884822342510676238322509362870051338731812322299880833961864250316177028631354679044837058265722788842165988829169591660453316213092349104920788116154933789788161345506875700405281755523209872270491427989803466376033303567898098706695321991954406486203270142322129134764077794991531229206025357131385164107790415938417146127242481103898113759172717220790656428573627765564784851962407965877287920550232140486821437836953424538244859501577406554195176205928645233951451714617366811476501415668099275521682430659932504293054326947499593515503467205685914052785507602784296187802763529597833549472985579227372108209213284732440032341726160231171387233429674354544105830234276322897047890366895598289777696058081464340194509654915966408766559683924014200821032595261139225471403465120447090875950922901245981438059193216109441153197481141153860779388779379736215138501894574705913140243507770772103121509249864610595294775354023306643704627283350327341924003459846317363817715031671155710026922635207836298055804470369294854569254371873659865292919418070716835608201147842534647397801336535293152024540802507716136254169611161815327622042482708137281947639507035341589409629900199673530296676490145743840497967079541390014992689177094831075227530097111211302100746396993904601032876292845384217398058729887069270163959007958300326554225626190953496496752901231625335965020826272064321255809054217058982250485320749246967040029099838042218389250768093248138152702516908334293104738918315025287151946752817379024990743315265263273116322013116533828118952984641500734709457602388823230649991312174583780444560599475748145042577753927149174343386665055315318308578283626087247140153003332367740453240212109338272360290264308183610202339965661806939591169742289812312779479932958465756597507769833076004706520712745791108178530728945203857437437488467035627145779218435170427268165445636771201994429008256136163628226090400818695646541655225544933739413736412476574148374607472208800853623373640008861167130205463222592832743878463302196751184370015012768102220384331809026298696961773428158782634082534249034978368141245236575797986856384428711874662022088924101069109221727828885419706854524674919870959997466526386450586828642902095642743454274158246515012742625185544222380612065033723219921630832806376307420527989554830607700984340981435378609108803308091913698240714123542260330357776651981428749564215699480807078928882725425377098281565892311614911763558745589357190886240372233287279594633621027398680300433940529925198474478571409745783199712865344030587640644655808821545885139529424998572792364745372840690243944059774078742561769426445039683512473819121846960654596483005995118720889704735207641811749803127727057104431498702470720926648875853002106788811214889234761149154074517947587883256876910193325587029392536837023837295652975701181971289314788990924630243016956815859691177896836730513472132754318959963752159958945902018803272738238399169676550124213772190727624618214487525497470383129339561752707585917123215717168044499388241185909620052252738145511033306992466785948728305451725485513354242318251013839807862835263293145787217052976016469471445075024894914854397098944057485607007870953659017438400338445094847966738104942324763096646182423067895858656161250318101457844082810881666471862498468189939621007721473933934587842897005215772398642161491665379492978657257361301430158695642629621075361706075793959119137816865324999715757227247065379433779275501483785192826228599461035335817118712927912543906836668458694196431248650213893585973581275313628568376269139034324287469492510312347657016380279114152263487510971619656797814616761402355292136471695161292262313935928028220189819745812594330639658517276685996579662223475883723002067187734133971856619614092241822021411437712819448369155377265268489853461182854801560820173649996064150011348158169731960551924965350058074129538401222502715421868742018171718354624680874034130271383720735183561618067592333893383690254108619009682307576111648355322548547859981365458873990675804950301070440137681193865039545948474031670120936879911612973044071387609789319003013860575436719645363346833260042204346062677020551562597305832923955250220668038865652949695966870780565191561607097228015490987045478159999389570257042585126359016531819835901184262315286563655865422781211975279793200824112204496077777710612628373860411242036602194271354552149052194540406741319397998794842197480563146516367998224916788310995036720217610705537593102981394643674489099646497261609701909771262327035174523263558493420607500428668522714311763344838841092626869676368805189759366586263586839865434022950249559856700868800948349084949164896862448066513468422830025296249272135280003750007904828459946729155537028542106473591243428667705739062112569488649415279615754935766570744491302934825992288101150155752334122203730694030780581840395995337247109770296319905304825409023243428080054660611389724471972927952842959509832988779372850748398451636591897544645642711093279756200613444361558793681791777098239916893691251070796399987059573824713044322490373063576676712785103245085738495142220716133069842163753201728779322760445912379178495548068788258227199239437120600589587319462129158549945736857767654658796064431309168341152287866790284500943779231715788740056393744221688441009558233826212402628820657854628827426721160218950816566600028422527016927180165683223353736296466973533600136764109073975250171095968766985479332229278479350733656620973907273719584319871445350881210733656441293936529102094702364117428101232050799651816070996041866789644384835404990241511172904529939492855768007390979325916620933003928759437294133762672712580779452804581143535828085367103936288900528212288292140152474445917767843789113963282455905559819256749769315418086679642669193167289710292618480086265313361879130866160323202365225193674257010499956660341458599800409859268256644521635472813219852954927898120318694172303471146570937339455211861673870460732845327973546902982236000563660043037306785083700206507346094148476291048930996648041720889199514316880254808877791402832602429818005817106604515020560038821919838297879982996488521460078770676877775785164547187896230338239905227064252084941468705662944217018800774460703302742626183308791022565578379806964744363264374708425670113786789035467174160026797837863215059905363436027243940266513896367339231565152759682749647455216733358516878601802254973118779224802682277506724548806195616790815220212635691741665975411924708181824055030391561818592819880870389687089449456170842645707055023506466476926698179810742550020946784195027796891963494471357343953134861510656389725188622317107252352976716036449629795521144650531168977918285142427923139563826566682682337841766578546969952896539718601677235875909980970705702154397231746143194122076750175485058978829670958075519879855139074765138549708209941428622962395395591005662475044415670706472660447562778870773339511146972244640899439481515824862157174626016096270918923152496770680219316875064771924449386351891143707801272140200133615797320124841313931640514194397052162437207233944440365773764938983696521811627237496547318116868073418616421469723492176763105452952819684226629927535316062711304711614604692995643042816454937072687519285614566976167939069496998332155397145785597273885223258381416124706104509943822607341410737372006680725486644397169573365434634701211565462323358544083873276692907464454724963491111832282697203741718682448620744985722675399322677708501240183930024235631023144827517819942652681366649184439330020117802845471869723048297830404818494210402129129086703644435265514213367423558661255068757357510406875697024630950228295859474917230545104239155470311064454866645438293486076677043210392122640416672580544696171830271995110748377376042196403045016909677237456434856306801125137061441646440242418953938937193468368683514444834609653699585950061967819730346833632098827877230780333438109267833905375699959429623718587462302553939929027689571771208508521944694041548505301934130038325631779259565134204721530357589978216281167338306482735196723779716821739476202829685629928173545396188290191346206171425963291660868182351665818401324341276729591371169872244417208513346824892317934925320131891240841980023096058438488242554665404382162299600961489883416127294241724390007498159750046589597545461742626771661244192210922397290056897072504250870069146804937942239825073798899385247524235479373878229494667259517989274884041427926918823283464990158283388483087444867603955214596978109748229767692005158519939611311329371978673050894473745738842343931841770493175716101067985005955958875822054150316395920133307495819765926502258702070742724029109269801090765622238411482748845503461124689873151146329654076215862590670318836806482141549535669186285743173694360157041034609722222725644556916781640715660937441322180345039605793575802121928697158340131928358254309701283106129045945259448900680113635194848324896584924483996472457749014253306808238899769948660088746526982202676405485371355317035415777585891249490512224551672232298617775018278906250193254215638590775453347253933917975215285670691367630178191953745095513797601082137192531652481548588926689619033194803197240112745785094321040514882585555338218775648889217551101128557565274807752400096597128451419121001634091177884697006927120303947809392316753914984385303391758292092684411763379155018267356370702035670678555608701532299602666730112516182256310611814266720711554487373532655531828065689487949015704059580203078568799667284767343703777793234594677163176577588597383472918945499923740645822653487575368352386262424479680884392264083670238190891036042402422720376183253235983906847120855942993241807985408376520969024619892318912592358800988250680409118731704391134759304244466729875062910337480998610109751621455595054176098732791894952080934394249945439431886282051549412338768159553895867436413621676926044892797814997556273951376911172830582042266015324570097980173429489413593464217166148471083382939111934398536925057566388379097380923102408620416137944343044253942298154449685046995288141210137736167260972723915968600493329669262700309317694604989472896076953513884023357551966243613496645140518513309022642553263130186624512807914665267343300869968836410509385860758581704818247403409318395604838349318828343835229466258943618758602507734722778769863917823753730932001258339902143379382325069890240469543912816005654551061385774883420219221951768795533354079302708156272047530170584117638566281385264546073127176041890880561375798459833675099380137733374387333505260585718885843164946966460318805643454230521794107214789548314992128811391465968308037249734546849307027933474383067871135578866611596731728889350704825369249581761773323888681437556380373586195384201024627485478637318668640629677157906542442251356762912772565622321252333898088023034862709944845075653000175289928572125366834581123278951905506400168812959934004066026370917367405806999332332254059634195489545973703124724952561770739607943822112138898589125916031850807048400101499240368074348371624817082497858045204227750056186824523696046422667776544950854813903844358550040797423037716267254096244690352278350145722538024289007341981853971023687269608209779212537705780347146012446606644147037412067245629483253871231557819595904879598878877716923997924742858420949108364076961183181789604460666725483703658466917158552667472953159892772830853330052465039490043058392816559446890541738433119034785867189019378281247328278645291648591878520366233040629727658224491887888111968997160994973866464590107347652598156744621662346193312582618512595909486170509632179468453726220175881614730536939660644692287136325029457066319096253683826433575487791402460468699498537797540532880622408180494344902119289435667076942491464228324758830758109045825255746867217816401298235570832509922463805022817004673894155944960951081048976347668397352463017587843445170908042933619925797749053352087807115119786343616554027674387632225466932757682538527960127715152019382024915237572370748474478060195213421911356402608031983480977988233078884888022272915965595375017886163318501292584762689295718841913043939212276389102517424861136181433026115708574090980454114057676118346281912949200463297787738003029450787060156295630936857780507806444633572990530552178700731816528881257133981879510236269777976729253588259553806893690283777875137933967125729838938549916290469401108131187337656501271499097295726616025357835165840366831357132115822969304782251447467787437589756386895883797005466119794000555965720059662790202609677101428339365217440873867134712658548688701553644789097475579230540464671536937335003500598004589306174187204607474075310936781167061246529921229820959757949086027273528205213243345813739552676696462940423641834463683378974061496556181329933536315309051010475260017770658476070423938770544262844745347785042273929836366122660204276055771806499476310252087867360762885459626547251100146319500430875644552000185277925194404068567780419539992200496378810065934344047928815543455056392059844565340801304986093438102130728054622586538406368697768163707488523350351530985168905760704243902378382237304429616167233020046060377518713909320846930723852756294336895244649267758127000734769592873365053438624850201347409444121495815756411985200191648106537659148055896112773327978008176293189717978659152943472484423284353377286289280554754735518863381875346479926044125071446304945356164891810525318079232822371648043461698002629516280129581183905097918806947845614211385461776965180833299336349159553449479925790675014675779916119804716818924224068721554476182213990579234264579430053885558983278991756815489341299325854335249239837505159053321595601705212965955095815424059163975592927552220347180357016925574747626446445982616693969523559200074215819275839072591283103441871568639751413233837848398674480274903116817194020737110492057807033644371212291333306802301924455002413372151340831267479462767885849739031368930467322356287984313075670279443551042457707493185527219723034813381459846019496257135663702593718191995074572528317827651024748163914615812556588958185090079791396071454188151761647383326959500108809389953479741848907702687842529515742842107579661781616477114108959198705382513145510698428080754616575469911276653249106863951364284504371562589989215020279915101938603067688871427063027012698870435900735629932701877045310946569098878665308157532312529812127059688642229407830881303356363035396665017739625874333618501042565561654334463545323209865412285802005437988317646348614926998138918513150433815313251583057760108952180950083944330665793075767561592695880759094017957413003687292797738019689705836630845974111446797972355922797021424187175209028831084198254757891071583414822060460192385892389040633501775350396357802822538590133385055983179095919946951246306606483416441787042526404919564698385847254879784333483672085399510785928872996625568081715515097617188071756136401861911441379999152668063460017287903880105835221788785754412782455530364062636599489646235569965406504859932867106471423575035252635982317003109870865161871021710874080735340676811491134741479498149071436251005448388023474123904190919464495975116792313686199000333255545222960387529808819765395052945328543407735326531858897357867503998578228868700200191828052685281031155341087645558966036101881775579252011511026920972635787449369283378071081190537825137284356695057945153260575961894714833356864085693450813743710912987115340983763567679301716502319772706191101578149205367125517554715173357491618067181711604015481775404466829525570975163658204809479283289134482187700014795318478588171792375167134481431827090652441555257527347749681411427605321433062341697494363707810256083528596771452926686620535616020925488698810596910537743734791382727911154947778874411876644953117941070209686379946195747864803203865242997335547942256416710213261637689556213948674989567064102675188068638673270602919252370188888689313630855148353605504952781384053967432747665386288185031317525825290656945755841391364749777533910307295389073497787874452076392277567476559668857406098585854526507301329926226836696103205762762996434705460183820689868739333535556066820687160221236060338257551932718800531222162513780740407760587948736326205328950191347144015982508202808688922581546776382102771365580172802336749528814935345937436887269764876847693626249342646314289801004778468216807310874362412092988557606722439186288378826885372445198411679559946118486479728902408237089446493165683351700406791270096451532396085701174700845831459618987686820764069248002830786869006096413459422018743755484567625493293856359466586157680386073675250735036626672234191128071202725885367161568595636861719056725481182695526422309737318176910502742375729730913374072479535401773417824399740952872212787836661272041600569752022206739333851497141485360153065067296390903400449391111768851629820613798308309972876778841284605422830121090790894145554945578765812696826720590959431532513193601524297468533553518586864265296817109217539458225008026027337221863360766808501382617395363659793828468254213184735240250025421532503328857615632706711362762516037169180408160736786635091911920623425712310858319585898816502399377479708199315607804204421958409520042672778550160802334656309337020912483607163438307298142046604275970433823835352588911562054428251546813203763152490090105348194563525912753529142879172032216403035836736556417091381589856281848637436615775838005513839540638571368203544389584197114254905137882503014849114455335834554957588743148686093859879449057122106983121738439429484868754226682115278576470279201865752488392771697693316053884797281309635694025017886947772914324110234304590523663280838278004574408433078223800418140047484631017483475122115793932886502192315069538120502552886522776026917730302896963891263815777936528311557493865376973784613320425637372463648330337900650900353315452072763128590021609067400898216090026472263756439822672148423491641262346454238224576807245225936568028600424422782102672480247589471303105133122425400139679542102619166228297622762822529667701631471328034305906043919063681657438354220371164615469777318172683988937868002342903256884561349184064714530373895413476525203237353830468110072056141036286047338001259478412178103801350535894307363507475513237548027545694104066711923373780941248090535547710431390436371208470663068056337828515276983660861476529051135053959303156600137403844634713638168211202278839044511182264615675224737263334548819950423621135715374972984027568794506688988934803813142391090589860483834323959227160455896419502747401088208600049236647437565328748207577106905061965689057479633964074456523970359222563361180107451551824036567805043517293077849453011599834296706523119732399366666944414139774954320627036378537120262782122707507122663766539236118701361068681030720419400793223069227904967252618367043082743346980568225456922020209062937664353893936739038398345745951097967144121827132096613959623385806678755643514004638034739093521833944374692879266551708065583614725959283432350322461069428812487913703156446381594742693543095031063636055435378229820142744109910904292889488629278110000037306244908456290833930343900742018864491019751659070659213723426569382987494235171258517666745266361455488102008191880924467826718839898351700715161509171834951289759093093636337326452560895970235983209335410835646275953477293546879897941261833931475928286164193383052270150253011294453520857609428859982945817201850358261539049195110833218602145486319424961605148831073867550914210207101939924110022747942781579404825830957895051313231247249140912979474132659479771323951833341909421130661793074154333166959735488663671544730105021091010077027414350309360665517980495468212885101404553526217488462131929429714700371852767677718263303148967193640028596108132560133188376609087452839382849843038257628252184082362612564867860889340869116432234234681999435885145737153044547326680514889653860502746319271813441550448533662132635797237313753443235154926549241265550060670078874186147816866186082577537276548401333152629542281157128337378357258411618511560893928516990307998418075479821609839203544150206817941546710950356509332333918300037722025468506419173170142240192430147290841427559028821260968257165620237282283912524591474598797865380721180546069898696682236388554963086336668267151920937684109524340242782046782667534078770122769706772727731306489038028930855295011175331785528921661031245270908029452504406215244013315765263118208034285285146239088551412603572480268686735637187201358866150706548774157119286267607598108861395050870505625323520972684786524752155491927670185518464499563991193712690117648551106853850264612785811789509724639496201320120093157420515881953450594451849492334201596792301541631644283819102060736077395223577612710955748483003735556692905980792718673945655165880580633585671186096458545459418111513912675379744711536839525010302222049230810067046847790787967533816811652218197264488417061502318101657158514018653724902340476856793151350591700416461116304916195391186505834037078951553293883101627519482605028375414380495516926951905786470812221064456031775485639915931066932456364367041326886731387080945378907437310196811504077896446890979454708385503463797148341617836039390668897576651996875101936310512538924504555846225428126396739587044470710136315233959822469362969620992750438989100579465793790654351290114344263939697520417430225192359777754854140926508967708639696600917767997154744959610560772089626427203269686853834076217058882422357190291707140250259824193494810457630639698581929747243069530055941374292419823851107896161409371257829683092916869418360283632641249882023130898754038167136151426811501584396806450474962132188816324997515866034344673014634485157022596213518298708992051330318703459130357229718561580184093047853115993178044311336473927227882211074602025574077266489192674006359160928765850705864520331627004699746672414128775667154020295112962076864300933092016430638586338732928065532354168718013506724908723605990721735889231590590633898003139287044738942957428655268046403817555860021141261687997365961348118746504930992108744813837188639461388832454432925426519001509123162301910839306673369862850378154671803177548404182065529664069572488820659827540573185300309299466411309754919460366927858218634832630529031452068420864251429509099637459061497779995415715679809475470193095650796634431739304698419732738165612267940683271204422841650408513364008939631597099652509879036400816675342824917467619090215058887917521177251350045315255841086568250164843050796073078436680028367544326799347566461267996909798476497855407333038744744845663674064630887500885104295435364033993027770730674002921378680052232210332162998016520123126357599224572231965470444241777321383932492193688233201437247447217657322236029481704246550480287298188539790300939207663928336746361205156603737748737776001840809080389648948914925880274192137336649486690206093445802030693083594228205112515474792812589879768905163825605328824409902461043787578812131619714147211138200551975295777782951727996904860092442837458068050452290956167421649069773807156409013106149014310308442176254831078007801906290990499705588665499567897230717487765823838396804627105233389706818248660438386966550832950977415317247321266381744222043461670829986622583832877385605185969597418780316849792518957280993466197637550480044310083462617896698456303746937394503356137546059075790162311861856419612895915317968775702112196139336220092038542819471523350070149485770141883141447337119309101339362896258680346809810037105399559851515074285975532908438225558516016924956733369542816786570484876838532128739056541520798930182238090758293218518141256675710851576798114358828643578413416407512902890534142942229051327272717157415754669309733061773752382837368376346190859044850351608658826013335323111416941567776309140271389092266353522641313057024729389965793252581941121694233489929199997797730781061802553239741441378564099784355587836988190470688024652985488551185726969416937927643152713495577221236237150579507801485223966097851485005598295422652913649707338355048983361170021340537112169822877871720495131791287061174115884365804836793723996688355643802524671707653538959003454337514894174204528859210677916050776853173724050836240721734636653483452755965014295005759319285877866601636898243821544104150508990460929202099452859032349521306874174480012437385108370717157042413374293551465928291926791279820103994227574269388379760162655402923140300051531674214035411265389711376661916109404340450796223359428014065443333567035634584310919518882468844152362624509831777460555856478216360215224599120159287383618806160267939680931436126857402404604288632090160930232297495270594463739668104375766176281639946973466437777615509796776038656636174429831005440240878024295092264139418204721087995176719236655421449204471084363536629587724852532172018528576744966526914271177071487022481724703779436769243498452923664582100856475488376403579527370120695252886524074922782408403829843860082351247557745206132144734727375214133116325505038444656805394852493037627278255397449423268840018553696767496453389836334237521477339399747872585513448850215558854071703237749893105720930779359749677447921131599721942516449459102306080569023842398295428246154924896861754480984872912620972730068278655458260479785568705748829343944613515984109295662853235918487014879233775296226416731318391529794853640864913872880907124887055482346690452834470121201408481468368835577614260129605017535671117138090184020463358578740658336441760752606532386518349405756804119629588760070458976041078661371965229845925544733679585243796630093175570076926683525966184251389025679053105726730931070376143980336852349021587507051398940412422494168898298863479739941098148086424464091776449457958782101122569920393568188030775738534526822753734520704763204129557167194446479441470906597122266529233611496129204327472852441452355962505538194180705113952941741660642498164185175758499891962719098679502277656352823658523984970753372915787856653668253832111403581568030546536496615187266407514555548356014677512016938346923193502372955141689009418336870471876773342616214824226196997770857390289236054429414047556031568198439580818800167273282242214495701313067820179018426104872546314836870185000510137811031101825861282038283765148660167081956090929937846398917307461266879938211358947440948882477327352450040448881247867021526725444778575388924668991970613398587734422967068652512258421389980675374232951624833240833684209945186892391143913899047774936241365453240682687516097986934841080536268343628232687072845890593803408800938709955575248599342364397119670522268582952047652125692357575579090987369030505333162035140359777453630602014591652276479955574059060844885857688019892593258050547000014511547107405554229916760518392338293822046219398066035676182875846192447920684856746453438982996681968367151678046924165291981134035035613148783624161914069030620761532148738796053902085193258176071438539172263356216251925670112774341045641075891402889738517505464065608670727931587517984831985043385478470162630755248201076394454600787346853552871268219425624571057336988107314706956831827822907540917528543957009815893632716764237331738843543824269966278814467591009191180819577867812920700997285873191154679507431297339251550631900312369603684289771472561678300952283488933175273737013832746900630935494664762824504858043079480342090748932790312556831255413818967577642648381890802489709490129595382595682650466293071541048963361698327260713221189432970277694368654916486030084795293219313080668251074317387548222325992768501461975716232250870664622849225907566693622047090083349851494335262320824457740984712984389082419414444555026790140927025752922760181082973232535551067487931635312564450229256372272007392902159270973635335846339780363511629382188923347011704509868412673768108209214134450180914015864824701082263135911390447831586677412766392594031042845816181323721076028400838354088187308299624061579854519986708052468713094331670782281558463533384546690331065292380177880680678484098986685642951571245779153381806127360866295172575793163191372389540279652080493738002046129031568968028050693972600380979400391297451435849323237643649385945637602626310941398817201295479280639874715953930878715353212208238307930376445445660416797743510142843859700763028162412703661224775769350427141531877093483051644353601330515581516871843464170190180009582957998229732183682017531755316203587352930556310081084267384907023187987942989736373159238495115806805881248450422027122415212457077225273617938335836071377160761258626936528929184149037550204573107941584023949909355598898026692373712234861640105323238606493490662381884043192964378417873056962289081228769684076877171324996282586401546987709704292319292083613201442878931563516400037192343757709263839270547903855419265068485232928599961866946508791104510403830006212988577758260696091873423133503875668155840741112815471661821964299984118701382851746315882027118725993448050563037067607389069556845389014586284334226869853115375844841416819734297382497791256231428078137951923692964817287026411381079709057824463344688669334328632607283111154251805265208020287432041364249499203005284328693197565086494575299715203201634648262793980449382335447628375194021017306878830090415531578429445780626048228033527771852966965181327702167218337446182157690286725043371800609937321935102563746058362406304684588160829515212943310064309408607026027698590197675995529167427028426458276745735660431426234633108925479912063541757675512335155505936984808857574360822676464935526558055453500810641662613048748018873819923433616861386453805913737294812238512402907256484396202663298443496334796756577848008029060740119971719260078832960369981731898112477186662149287158924979143723874204722531535202889622947281100238722159070344186442742807180482439330017729558468415150220181737496558835539572555015380020642175790403613737761978062093861437580533199672570077164001985316000881629042257280558015387497224447804370176699998132859582099902244060839510395768088392601692637669434650522550344609905672971294773190408208990283842016702953549201206520566112785666579876988924701712977615400201656096348120615448229917130998647454626433939599485911217000868446744560250891961305708911430451315700761252214203370134514873232217745219092746517722851588268790475417193522214606390130114351161609463743094502141857058276826450389632077524605361326200924100360192440593591245382219511914849313682937140544498238758646788777226078427922721203589274006152664261861402318766536121772990022391784655433116288265723098077251538393570472607359940669526660386160165451865512933279591848334532153488932016334700959161289415439810424476521139608119748030876362198332714950895819261845227693787327531324949630098623752835641885158064448963431541894829732653906186298411731652750422850617020132680324615342732882098192375629303703635938285816036259405217162403131773241870694065612079256094238837278846120138437737920678999203156382139207363428908194400151110754082254500824015427324431369169265592393994891567905400230361451128046921475527895143348765351743221324176407313805228862858027811597713394353773022162541745490308321826520249353833020136773981942422770808890467685897578923771791653089063930993410327277354008298048752565147357138099879898807025177378572464719975669216652014254022112481678666703251016433251213454651728723104279842268243815128290046295134848491030561751781504464811560216806543923512172311032036027361737662478099516326016013625151663875054746964829273667953195973099286220962408577390409160165100729323870690644562295342937540867699831236912324391104326207744399322841623607620544744648365856723012529513281283997329549704150149516403270951395273575873525279850871834045510983623370511721173166424667433774249409788788089888997523757525782005015092709370163236210220583937958087226526477578033895167087951128361271735542971207461026379501099452909542258762781091445391292870580433495794157978861167997033678548353585645909252187694995925492765242941461659621985163001349409686829741544773840390718801665180598458960444771891154014479125694847448844027353471004627832915235474147367275997519777872383587999705935929375631281769226790260255940832267043003513738676815542473893427406812741244828754298496696043428003174756465575404136185969303414803391190820360184953808009621561477444601370341950669598897381443406084771569257035604042058882581593957548631393904653593328843804333926838715863269446018784590561956425036150221973641822042209746338547109323152862797647538372979420148945666333686769632770112211246346083365202682370499558038785309897312608149179605312319797972904646511442035266313364837291263862594303836618156192039163374615711942576061139601811150507504319087570511470929263589841378508511082442981125685169316634785675931239558703985399548950891771037804626913196563986742178532864551160525901045995102959580387928811413898719455387247692416659868846295125851788019404756632477909338009306226621164690336720039863284777434303423420928051475657891409954572797127836025464569744031864088894429684550411599226862137575345747788737890433395199687094396357313396686308649900359090476536965208034308642416920459945982332950922701766386376662357607358477516511011292517068498124228595729448075541953563289348787570200625736169515176626488179793227253214174802517733894519601050153093985980672251340919214497114113473849088399615493454791186445763429673580960253987076563111604283942558827423028898636426845782063172665731291482562705040859381435643306765360410301028247011454737282968982784791863910238113685847019297614797344151395279211387627782283788363884172338925595692421589955153765615616463631013601365110756863583783068654928995024385082411070242960920346297373629866467203495573851525822305539624112897037367751384952345382906595000863549587145220171987468583246479570765018366001114699664518713136658883622503405186919331811466440705968487888385501969705732048228762080663509036270089859879294474582800963623448315662622762518884186544047288174209517773078771109181454049803427640860055350277251627632460177796970478409818850093566252207578754940606907059930419278798161771965934614370728844373305775585851109638557262431137932103716424623615114169714819481407926294662375235235756276313014845797489372155050865899465043429986594568613750739844770047355126573538422889867688083412805282985071923587421623078326132550155377979465571572964498169044270392915846722815494418663483116106686835224047338456111542528429498983321241467861543784212337481263240239709138680732980804689186217972871891302982950406288745460117300508962663875248877073917891300175996271322980121393549994084083780258297307805799550457645054373185303203580224413018231947146014559290509934918948449339734936556942290762256339862659051359558064470857015444273333690226756747376142204391008698957752499382932561123350505412219721061471211029795725223398621807149602509862002292411608415209831790686757404221343814139447637199175371159639754471208498664818961812042483436024646655834183918803928211774756015724819070556340672902391593536132540757643929204841650933397692887494852063773301449048117588232675577470327391272550226458087457150357414593157973637776595118943222442583691154345104561495391903641737796851343494854536748533542209184553500801051952620425684161266004116352381799617040611451359875899972890694582610312720386154928998509854984807092246988327429443829901362123481096561431327226697508403578590404755017750024464296184294136524499723532870335558560018324613266174766286682522237460070033085227263790622618335970412961169747465480263707989046796739450958180123080166163427727110259552667980128866508230197938663935471467297425754594758630279545276683410364939778915212680240435715853260928461720975014217384847573465125535958833714604204249688916948643799111506562064599735077706986978994417579537640265941290892663989364629708410472834830586322321521094634133283188673891394112879591275077923225482559566382476777824069268024192876356761649832447150609246578381561171149725282121038788172878011181124246329319803585235480934491694413326515378568318281598412194892094850948430952012196714091490333235704533422699788343416443113258847509365347030408157433027173914178283204043573112044383623981486170361242343617306987344272010610729533883272088511237579255380692508468573643063129967759413649624055617215390437696727083508915310871764377233932482554489112207774106851505927647827427695987065847797432771163269154058525171855121162371702138054557702173565629431252812578304562450274688339968744955516646758456088341691736949588930003048102010538529164615961947468187492890774031785277234749615141951027956366915599916049429343993096154670183250324373937896207214214276642817314750786426795350775181381107504573039190551660033417927417262292100481126745610895933432248295542660759640774951032833845523565534716189860671045224802636662748589141994678935584692984441646067693612743323504726477427637869058225133996329245455893329863020220910674885768084674164916027096379739377524071935146970311493963589420116248049171678895612113823677236348908019276261629933518122089479246747324639215991866305991301143428874215777428649021339600388333770090798214485380172680182145480007748966239101570250538569516546634836051625637071289427753641790591530884747244095974674338307350218280891885125129329332014007809217100499903048596171799408250069765465143925963261102277445819916887109145983875439001964790950837398421808017745492586167049138601760206123085417160160628313981939709741702034197805313310953958818731927731292890562170205002918660614754545397451133123413911635854195868673835882834449804326551062987961518655104145611829199072649465020250491660323307715792146882045803635850969218134584283324674720346543994223393097407331506586771184400509994067504664030194639782084530094205399745530060477726481829222614861239855416076561492625214128237381723560153315615876466085322109338701532127769500536643980251442025079288599636532968888353245690103960310524187643495291201119806610381961273733703231438936672628016581831801830461775533849976915554429289326770414327635253017000348988374947794469348116090589607094405902905740776455958250825282313667142244787358928135673176029845540649690822994082962295334972594121719235344387838019580087943314277856131685898133224911488072745099121541910413361821873595558600939243345320974682316489138872210655642224181116932284977195214715860242137759311052679064826265614804954834619998410235046823609593872001812165832179386402281054714781330089810171923147487378871957826264102888093828121897276902463026036436680312061676789279485050270006051981224492429728853549341775864454643095377603993922854840723508586502743860763009113001935290812998176985419181103921828035558307034499989200328503630964818586850397456445123947282690708905307914443045323606684532571587896723011901538664900979339066500674849402577006900758991425506502072184200631238524029431225057561598871114402759512253136115536047766756156341068936182762261540005763285657412510936308752013173316962760512309913900055117430255962583963564686671559878675361675438858305106635556502339573664155112403467207362419020744227715795839126625409304506005422651846419994908788218330865321480286528606280569505840371975007617928837351475320979442225703473019691076347444501591515029324305207255812324132594267651805796253566445621805525835137593870830124354608620056622911033534916672909957375673329161599344194590465709120564235448525791674094159573747539688251247856311644957020968998921253716101111070593659203019734548157904143329390500065342209509168830683222860056601193209062242715097734993049758628093902757880303550513642039322697575141864988693557935846022506239960478119597368580835595786214266978267011699817641024391825778265253026476881409579940700679708684400795027309553602770746675271122035552675396595802441301838435820250544588191400734231157769686563632001596525967210158202427745152675860622020154061576910379953571133977949663667682306368998484111107824893344859014844443077626284832134108219700853313370723464594230474669046917299136637870956827717837190748558843010640106881962060048602216971953846383559688789368716722642859363436607227735717562050957558068902119565006937357354490839539983667298310427797292389675942601289339974463964062202126464189227755426026570446156115191584056739133417122277010731292833765103965597526385920104366788766150689458482878255714811613559905609223457440984641038253332806650421591842129333695413711123103293490652589850337859788883909567538631348052306357620219616798583353259302179719345071926380142857191461967796383905086120177550742556972844198636522694484727765320883201017492889575726057654800893506595882028083212882223055918298611481101595985553910840597349530189631605254709583619629906862422273255800605495653035502825233736661603713912294788764908916568084922652695409313968900209414066940481471527613621206859473539470359764644079326093351349682236565131482700158025170424583592360233199469221582924306899491187109529500856420497190884456276089853891169282665920799655109387872183930888621223049019046481778989212941942057867044440160426003366790697869241638370298589648542349793472022032589508354229005204569923926958096571461518236214406993830438055651408733798387321716108798519953905312968077485783924463153200586906116301422907384039150583484432573357236245135825351191863908089491172668012694557624857444943818508493865500247085319754261269037512257925040873001497237263558404556604658813191979780809290491410705621753308353921101835587050185089754898490126822585716071785527801701919907625738547118607581144067959979330287607397118802824424574285151994381823645553517510146613429039007026574478110165993218781561909371218005742167355395655131205427118614388374147172765274534001608633042129371578166185508275036017073765238127766431626616159184813953193197026554470183813155782645440238521111994662740792823458581922970503685114516193399450061454264505356246391007456302570216365569256429363234381329074957698409072538386479317422566366797191648103700916494658277729126890342192516783332865849231209043363062631989598073106128517514091005048958317154208696850516354706409968318092402805202202115898577185093754156949639328039899088185646186058885108061440900185567200240412477836087953147844011086717510236967943459722243153083868243460508877045559453085884318447499196588427201553935338942464641644778175893339252344663189237394253662964972789969618390646648166182040444808345258335904567465133152397335788329392562193699886376034576503688666709688071040501558049854939153183410849184887943991732029974832629314901900734723277949611267592399961298670258043315948838076673200075823331015558226409613150075597403717834960030703262075810477883504986814003268345447678200124734604737910643793129988532803280247557485822982090268785001231458882359493713122691285051216999129803236100376743762860552362523792881093038132566470091075963164061383379279378156320125636597847757613176314356924295665301831867082667361803788857113779059778011553052485179413138329378805167529032460392463500639262599978947486988615674232714647665678847762979554728909160033412419598301775752839580150088549409258739462622078446070285034126032395918181798112211165068443346206709539176078873267261509485041266313616872800915699964693546430356394820521269605120074535512739706754244975450090095693262605391139292524457116174902351008753154999794464531656548364094909858344405366092763738585352275153027400105227320811985390559626879435909366978904062744532813338532509716096242014509359064580482902932768082794259545634278468311903598723545822503653662349068136700244546987717076749427415721938616376144987058731799789267977951198373296144042836061864480121986086780623918473315439982972340109375432086309537588150326905255752942614742555716372579066739895188622277615678343780198234823890643443033325709197267424399598869848703712220290073097093264916897088908077074405458878848115903876010587461073512448741777093520395342591633641428056652892994400655954021647293533055171288089111678131506449528128885394443679898131490707241464850146956360369448567864831059789183655344588927502976541960941109011541573970063205913628317284933845070495652521111294300903900551025790187243800481023268628903840042996519820401246752366575937475236077832596945573937499917969430754401238022133657385765084103701966455053161762517658505101370546625200537179510709647176140555108353866004604769133437423129349510729896564341394054401814725344665953765171687781701951261791899377915682150165366157159831999768442453484006585103273426887327313687547250587393125266610931210026881806841763812894572920024289651186217354202314996465179897158760732403108721814152864022265482277353964162392454513740194759409289732615932978096206764648991633537366318048842111699292070883467841404212708804601355509876101439213743719175376115498549232286282515605015407140510910350107521966788765763364124450161280569158923288500980393696150915574130530368245461467421911671813453834846715277411447127884598307462576285435414373447427679881760834100853056115616569021803532464619677328963923743266689423535555833880434292935789417524966033233770692713932507545091870127373722343912141673137611280438521425945409161132172292147609000508578045936864435767693429941176895899728621655507175791100864045764810712399386151827736441981283390411584289625099608914666180392253914607055763550560680764329654599750098759883456801607765868557482670952754447139354327335714569229497065561888227439775544896818189961687748773816238908118669495278282876449844625327336138220104331755673887003008023896772043421777254644504923026694180823586626529995814749290308483810718302112330536831725959370178535144268858400494085121419170522786685240430578261033336762329612315173522210332014189303330774060431624667808511112365603580237853681643627798128779888713423183254823710027698530780723588693203079267346930607826194965215257108251356496374563656701919105946632231332426179507067037612723468489363127125454781585710720883201290960014402084942375311652063879381395945852917431176086405793559434630356340688248359380552394544728673212273117473658742914624324623015351042782301540463664865790387382431583811885852719970344314576148903607368607234407345682977316562469810286173568540293904599136016477122674584251213833451026257383494904727330850482943962741850903477781471289910971574104884050502037542596853014805346232913091985879574752878584419525497228359124839037041340790923227549567894681057033893549391613542639925566955039713031409363376054750344027085817165919421869881118111536873091436405335508683799223645813241872976692577934257064763726809938463845121765147786444657265428685083815922975337896303085035902544236173470633326750646646281845831317846768341318102757492065067340195156874762353627879551183828740002776018003051208189715066740347043891242002347531246713690047954095090802818120503954795015551921585955231604643015063300382012024069720593680459650540440425450608093817619678678947383496802777529808293255248476051392865901931493613966272245579295992569277707228121221415084535999074883553989605060007081967063605166531707637694826685085429874701319129367295204491671969259993419177464185351148967416058320668362153761210754098097425557664705035969838100681803021749183066134420680630433198569938315225941901123875953296107985505252303966434104047497542532194976701535280625079893042416211704000118887751968873675260426740456246469534428952012831402537203920552833283001060694769740674586585841799734908366299722295051831628326313787912607937374550208540252539638474740735136174361434677195814725513168740920534990182168021589666493228275343177348880643093667929418645317709611997882187913630837269966291542754178162683538011420761102184534395109766895711313952415580096371777347333477612568744390067928991212564952151604527673918357349032820173114283855033168156483732246348725676554681201101960477818219036564112109000458568914224911896819792744882702431517913667404646114734729709212087038304575460025990555214398288098256728486909097609733636497527839567651029802276998945914657370747967004029820168755971322621225086175259507343528918815851073878658349985074872156369276949495650894418859618022496942422514482095486242337923987823469577583077963790617559294919969882762676447693397506560751260519957656884102253710701441862170145072507185858822368268878372398183131102928082304599261481850764309763356707519034790003743227631740436017332229744211448600408898314203193413276911962969978428047350987514354463023235275231054216418399205226464115255114071010464986143049077669235236877510477404668386369975209954803598278054500594473197491972892946379860652982815289666124088515536681816971852940004977714619379277409355235853518554935299834198429269247383154505117424234045959081087871877334864627797686153137957373328479467518946038359388418538315100512815721162684145523018903851894708443007976740328281683055707423562901419981248117521786167793814392593469031083937875869958738705263800588697355830885115197365890237787258688536755442698779840709949453335413361033744676820188203766158046821450805402145183694153833627340840975944394295545301902396017351240937205515973015590429803916217323236369684010214994173169690164747835184597488160623521497016024179076260102399763241964263162498011920177257693751185761516213996980191907311400931024150845270191577930182698759047987921962461141642250760991085801493327030632243801528832545770130558140253493500803446669257317605746173616331729227994945318309938370409064329079367711992298867884254970617100911952945484946392886789762150963176888696388802776801872288482452323909165974762607566595096303634870679174845815518294363142176861627179471899896191685450015078580703595453096328845714493336456026713898051209168459041850270227359217966907637395024407186475622684837765917351184382472142799949167841008190333527425874126046114573497486041797975897531841417261276987031596368923993754215968937873236846541667480698599361830879492194358359737875267210761549293215386873872402752364643413511172614441453922742745808264742894669459142675486504304490499713871537385146622157741500518331269839011823064316380732241086634031530468956675383619801338043000603089387527482695936473012902336033923357610282299709317058601494681350089586264365285471323313748096910848439412962229505919136762367627736133769533393507862229443181487227306281790857591108705222866428274682412175158896404327951484026975783760118618527547263877019555491034142178720237996440522729439500913134538381953132587724370131459633453174841850940017273295198760169471282480775421921488397017855344406813427878479004632272200230049450583566266408580871905520238227606565191837460833109530088371765780157194688781292382262681219123522739746712686118663156368495558148713095403673496411992472669205014164152131724809765034134998099113748523614850199499526857346236342096301472888257286319908246471769546587718508097510179008488181642038573641380414956854097132120480070376674228791316255302994239440299612587553922505674303311725200910261796690889085672202569329621788153188210458146203427969306371055916171723401273788859369287678534841822151776402790804690961711157931568061558420162746488597643574461057620543768793564724227773136956934120040469117263935464730230457472298316657203141995253367795492556685049100854749958863951730022853340110264637207626084824947656597590280855604132651393737987078472828783196621205839936450036198938060420472917929399053402699715403884155907253879545112982137020035220954709242928809158678277308218757102662214461739456953969269042827932913954107054434017638717863420396676625924708221677989915386867740709571066034723169798026796166911299825976915428336883527942506605061143550887664572014200929267671057518103276150436344591458860619607998678715376814767452752618436504334361009705296844368822741332779798918275522486813855477979582028482154696049747908889075161671043143986106003241922882431617241667383713780994163081266047215511435204396467089063645476573518436548229528261951639576570641298112691742663794225235936068835346875277500676264578253987835660727344215759116724837823641390669819727020167773362738078820588525320514339671395181381881952252546282475215872392560557935478311532418143938902643379829743083158331013794023678715423169229158928255392162039496081134949461939295362752532819823575244275273800987876921278172949318664742430610886269037322314707514492483986960964634191361021807005348976820459216702198064706585554264513543631086389326192994147493342221382800513275690524836657184708470207786384513652114818124330701472323966240284689009828545843737566801407049783603969626949326166793530632380213300469604879541944603141485263725281041128220075465270455044800836154934438040492035781586127476818249374860190193418374676131272120804399680698198071889845866279932898058872562663412253284895653016664404013144965816707958784130328501058868431128749734444722831996174729946687448009035786177609537419435475079113155117095026682863184808734978060983384552946833904377726392138228985546157458408668086952902025982358370779982577754324943223962801457816221155774652115381571956705337675929727189640213555224165072422805744482618494476046278882286662270809317094142994144682017157369214753379691804425765296683643344166514320929038109137075292571071595620651197879577782189473390509127507716309921268032715609838242441221371523308949831262476842465971736498359147298033568073113191911667886566921390964683007381836540667486815199033446390773888261912169444969652063305235478866653222217850489028794799018798059943967683647368852461343011651638036912738402517778273492616676650188426641761054678792603140578700528196582175780739131656202643418732339534399039699980959096517802940214548721545224838729686603642485857597835585068246403352369043472957697973162931249131615891232740842740649126975221021886715901975980938331516993727097791827692222334245991572255062826830357233213243067729362532986347556316719232942917022531320963692041986855411131486491970240221723463887844989837264841752029343153096066120478517215540474979897455077965872837160204118845826543400732182014673607761775949327677551858366738841653547527320906075811315416174159927034892721806455351910573524176336791777167042634358586193849595230260011242755660151743505451550614659995661961626496172538947920022706235239286359282173147027588853176672123960536197734168914726375043267559786086909372967001586774521768209000012353392561361372231416342602255730999676054604022621834853277493889167109227925590312467795421680682012422135448624214616248098943966881465150509582859564641171248238925794522722150213102387350082865177020928783367370404988951285456662933143085593881752241038756738873286477334266639686275153498559568735702440609569903145054671156367953350003923720342519558180864677278771904997657181473546033531115226104029810946396949961793310303841296287400940040084618730715995742087274087992880372029900404360757871259085109035003864044862875772953214305059646610118628896624870065142827636149044674735946212236872262017754179520641976168161111938939678011015611596464122220347735411543579887227581214110626461288840857969002681214479796901351949488907292592966779369354948884285972606319218365937130520247008173560334253255964494348216136366788238222553493978168125402474397863668379361630194801848228683759270218447920232222026969342440515103851876660577647052815310162906250895579227922781869967577589343046738230613055837444004732324872174473779712314277837670241018812299505859506530992103816164719108104931019445476822383558853426591446898254207768714786050787249688002472918468812344026500266041561949311574962751899968566557600121872257211413891877499863780030400098029277894912169681274514269858759224965786311649238040821831585937499842321782633756659774882699144031062666760432176243429929704629771892425929887568677049519476176061664043657738945090413857066575799835006898279026186503683165232689354019343915166618051861290478709513076017672388576710020507398170262464121414521697436825261252433788022384628058967529520664541859653542007981437239029723043572770962732657525281457088583845128698821615507888543713636478523243610343985027512161432533951851534843925664834046302049000809420838569413350586108485135452439329220198077482352225421492239095032376741081959078436437366092976776785157364399440206454607906733226644386240906795789276281407142546980707899537693429429432421402526272393167785335715640096338335909467590913650324566789859779357998463356307813095102747623290900943893027602775787949759671105371059821787111669061015146676656017144077787328074444099257385034455140906794910105028852925401642029214319308455553502953018659223250960062498287296934209743487915554360357297539229565963396546668203075133964879503319074459507927593258545062265384321952804660302901457177394832136518902743813091464804611393147086037629474172212568047800506645770783546225537449813206073467257643557663392262152317918988660456511711396882201653829219438363348630906303220742867556217930918165809991944641890745008414256076908072956236450662083760165832373155754515511498072835888157161571914925657504370289166576124319700339612462781920300413670641818001674102295353073173699929411404576407745642961625813126711891439101058055909215308378926361806951037377465675358336297491008389393465810515166593498601651414948257204721227908410613139476609887643829909453732592837822932951847610168035483804042469134483549015048417902733864443077261175748963556883739185925896983965227841925818308259769171868547626494201764291264373412790634673326243277251401037917573949919568041146364221505053487291814776941282565909773792033329103527628813470212391725673626995715168705926925084685925312541104141355927501761710278216210361147149978904816816553672298018427616216258114165238087705417133788930766341225601795253756376622795197447900632774465406547851958747831166202742657440295880718739560245790996384431089595358531009635804478093903641333104405758751585118924298485654843783162019748688341025966701669582573758506951330979551964645689591066886950743918223513640560909911968585888725984229179580749077313081718596746148398230976661433359921166712527791748137549340781106526786994889456713677826798857995675942019578664863751311151728558762270813968052625542005037054396492649026270671561199687742302061458511276665753297078626813438219490130852041164469029906719384729363361776669599084170447061069685951798670790330566923778772671427068720708363967449696367929069607801972049213018746848047722616501641352180596679011017702282279912769069482151910328621270833536281536864463012290145635532303916056716324282203719947803625105963604261968990104172402923931196341516908964434335857203888083389656772539533795607210327895628335677050191537974348999498160942571038089922906071515904538542293883736780191531232108867930499741974221367576413721291140096444567569001753190620973484235295620327591129916994783087439558911471769320289698173710880765860751961619269689303161076061391881144398056176593890041730983997624061072713537467861534164243016146379401783904425163064955696418179528674828146402997453548258044822023493730816273317831294141718444934744566810302431580638664741980482969205088572220216724608330294633232495635999983003134451016971671956868737643237556603895889655826349188635633025558000348950008437507587827208612608586484969393270474915266959646253308145073866151727484932462248276099245008994189557615257880047226688341429572373301679817463764954612140512326661545389613647584578488349391381791934913339445849729003250893371563659956767144916908252039179654090026094905595862525199558019071384753642369318366154818991528394194935731428403166631466733188224272579224048107948912739731872084874408388571029394226677519712070030931773200165220513151497847078575939408121047895376879822781418688692463687659847648621102704384053681240208267960416940105899160560007310605477528957762936350890659241476008930693284526601089827814743246868616376916828174475878328536951389359205150636389617351800899265168672202224905862613497429266299305807711466817552786564395805219239705949249186480733929246885701966451719298316969034387321985916817813012714361710576034438680829466653095862198206592786699306728017353843837415793059536377705429796772338815877001969221627464692547695401603292119505334378166264425719715125184076405757603940753566800602355727631474700748925507602042419493353008465744563067985235140837706201998641814068356896462892423844231087984034933711677900221266093958414968051495176769136390305318338440938912012675438273901496667150235935900121187041130216505922102242277254496788993153871748273275354896898230331048921054404954203530293170191928378903082813482320409514942848070339505837469780043625695984898177189626479594514814757132289940876117519112899461517110741364483843289613189245805363619884138028641273295054851035578255204634478111130276468352148871137590751247176573947073025783397692607735959776965900133827516360868376070864342929446108543902536227812668715430461505096986310810044249101923105719209619002606323638049843655247340773009286576437752773918797094683369284137539342554966230136635311660477704045418598108017145488216670309396318562619296469659390507579328318954059084155241735128408176045780333485129657936502984309399345577087352163444129662979770108506905116897460036257995969645722988315680962804748290141529007990571271415276520831499580626751636672746920749310711330781065917213845708895324155558980827446780543708071606492747709351840049080729199984727807940059434112687153558402825244535139112332976241671996794302065125682698646875639107780736847240073551338724532345580974845662830357168858087163279118557983856366395787877974178807776698401514099137933409205188850695696246411130142242877953353210669622707236379057922726659365253795283684685821845709985759811649459702681935481441516655557106173328829113880281432414028902868622099808565580973161623709501491465933514237132509207571537055930669691977931932256318228698763444689744677340202957495305719326807644365703153697400754260783237184687334819953415839590710145823674786576174348463637733092995744883371079434402968467795433486669583850134346831235596370463822687741524727740766735385748536464582168139829502266394230656298318393006275193675411393524895808016817894203456842063625603575570568945146995780088494219009283949762868374407381132171476728763159156102517941935398255224762022712521483198532427644972256594157077124572811851922349665599102192580462982075584060304566743503814027399354693623449137558544100512995222315250730088493156033665838292058210297966339695879009432762693332083851687809956278616601700290549302869829091281358374518284504848082781462999079181520645022852212859353884689483036532556406451449581062228913560646688425443847517388674243775307437087497868125570942263738976342096051827982454141453363602351234178713837140033802219019341723638073650497102088992526317557238748474582153348746831340242617566278403771319449323749483092495929070330382772454587896749398174440449076749951837802797824291656961282054520258437001651897368580916137460022546977505182373473335793410478477699762524055983107231010277792377928727340307932759098461466998481060418172824840821546250454104816343434203438074638224624239529872257130873824202150182576454686319276235022788598099263630218743627104245370101909076235002854970315383817293829444566169688547374179751614399219949699377453374085868744569020472594838160258880661829593736510872182704692664403369147708762848807004211930277960358628160484978722247645760356032808377186146434871478326032829163341472012842863196580575098073603176497082277136301109639061199921258966743240327663305655507347305277173146284826039682448217511541321291041364122108887662189324206226540714425393737525931060557983968533015746811463298454202022687086872507022151253219698600631074510899319210897290644930139956663520474705021491687011843458998702805765220356012025328947692220577738221862834637270285303202418945692821683111207331541778165742152390620403336936818254992201062279771676455055785929805586945544824970163758937582879162053942515435346689521747600703233706111143369848678497443240026389767073347922712938958322118044157086463513331123711407299555811542962977145311847265220513805361149250996811677530478253910799005937926060416132416825310488902774167874148790673042707974336776499877214663234189438200295427306383400846280171187383039889190379275346998725448600033412215922107058410492495747346234899367579872286890880205422115615035355257698141332991515583688325030024725622632893533951645726570517816102203626415078823952392268163803695688231826011943222266239615208717619946660671344729298816922805845784137013953154636518830074142283716541861942521667619020316856421069461125026877501216273696255313894674438619023376641257130254370257922685333776999164906198020276756863715445401933952285532294283896175661368275159142126937285738054848689395289902736674841206536013797675880507077681527359751779881560544736988144586949114758605295641651574359065577397916473005606690894256651172421246915578056134243118692537116121415766974425533291945325297489327750328358964584048681490775366927333997096860806010182410724125034300944919038062839968896265832672268341798309279494221834674204944852519402331708430683917538564699397962231857334291084264157104813057556805294497290873359647229015027772169854208102793132648421591703709519836152515573231533836301766217962961785251039070347404638998273802673375049997018931242285136435029170937624028476842776205410271511628468090572434190347792640952270553610485884200259012066407944862757423549471165303300732496629167994302513455668470287589825460001325685462114386278339573525645774148194391995551857713591043113120778427541838387560236927612634460325714158713077424521225855001478141234693605490730056624754087344438262936735830561425443920809009817689760484697150963163107693347276031531469450910247591606593633017357517185283061098609043574749356382002842462395352357962568348139029499161237752927076302166970009770471298058413444949886924437021472357137609569707368559665228686763889864298640559941756038351778282853924712526672092487665500383210743156178943306052617231611996514207874639869842173953129171708674151454276996223718328901417934508795603068685595974896118196006592661597287749652873526351170224338242243328404909821215236185621292683234705946515004719079716734669672334260903154188668899791050824560515133676842723554465331892527071292740327743721581626112766609870748958761770760911237480867668109922209131459634754921185434916965130088137428246137582190067524423355700692570964220693603611854117826894633064040607052076028074556071319108171105863820053543271908815453424798315841064712197576738825854102803728825499973527793229635946633261456626598232807884317259691892800874188200606876492087506850559249285565759409910172893783843796598857723033682190866793240990730184784766960384764669054109612294979586567269292555245766167558254633119541086412520278354636639481952880462785003184643075594898141109657780863814138091358142130302283061173012139226486196142117516576012307181649294246716052286707811082592414377957973390473106395293491648837024093306196206754315825894835909788582271123736829278150248525085444678558945587099464013297187364910521023696590183326122667534616580561290051678590706156351766781486190280579907659662834625834373315082231451814421836914544153757082014542629504241735337666350183706255027077283523223846802240603401318072532759975933129581148028367664280813222337876064652635480782881359621178972692428370701526402188201788149144137759537989892288819468890339870400471593714717722397242626884152218930880053172426437410967940285097643214396369402980484618580120722504495645990202366297172878483738669727020098394608625119061752041323594003673394311025822547529532681860554819071101275577096405290738002626627569028701320556148497464302071347224301111148009864313989600157799317332035347323167486580372333548389387230182579029884595684174899903156244445042029599509150715746144275447992555555974551227394017307453408227515992734602182610851100125577869280336550917154600694290662531199910143451094577633890359262018081093672246323790685385795004722331169087500556229803141395972965169591304039526479658279855973673249975128267480748884481518213459384881130826579672374458146536928740561082003731795229810146378940749457969279477000463992640164432747704230882423822600085846634574835386079156874172101439756559236961067319530732998150127371774176680934188387440780095669279260691116858784944084367932810107526010768151555626276555969328902924447172035306226761538587471939315769357160329900331412310580891832960698311687764744350715069188296757267632230399671457159974193683061277710708120270556128961511544924690780379371580322678603099200376118979829548407079864075235780980283360903023947357589251116540495301742782287543973113606270367651147717566907091945393574310935616586459482178384863720251837894760242878730191496549980589868888761915370356691624591304646425095546653589772280083291843423566049075347644925278832258353815519785807217150220385689215085070715215869900878931028196704799359367296100727644403473024938705266787243264560936466022091987214977823267066925436177964391739346826105962393750913334940683837603915603237758357875673205035339614868576517763159923590955228372084180136465182849478198697174267055224918563010056019971611378446134403646402384093121385496161175078458462358271945151862591227684166555056362246255708572642010148895598947563495914611939146884262224371309592223285237993606946824684396948749966633844963449655878147408369094601748171641381280976342274064920586000465123282697757632516112826719304813991823827267728981133991266833530896161278222866336611175553120327017244954797724174977158569273588377648281868464847703745234562384471588867116599469585237608715815704354495142973915285443693465508841618603974336680669561385185647133317967719190245416171302675951348147466849992528772582885126771256931011049350900049853124739659363636777054119073303075802905658647701161624587563122851621480812851698336952383693399522682707417883638840884914520075821852653203136413785610938274137575911574610266642760048286011912715242611941230686521066812368489511758031515677398885586660434082177549460974520091168711847555120868337127203299034076616408847756399390425102624179339075808102283410428726653709057520247404486616896321863604983604083441648446425815044554712588231453596970486367561496193470640004682656355238846357710802578496835334689973902791574980264186352896685323732400740637253211886357269335824486926546019106236504170882815577974422396114174679058006106182688016352775920188713886313774787289492107965823325385792175703660495347112467251202859274865454594050105440354324373825039727754380546163757194140357622091281305960498532617654799761663197932841050851810866765570075658452022906391418906705372286719661539235600406098994876045867760508069633385711929120875417934779894571206295489972131561483609462518213955560970862490765190783538643521511652609366531508076207048328880561903119801474615757582833486397984352335447429157582439668941975120297607167356517726875099984437325294513358050354943505208849784029926762298084983750036931586419776743894372256518276736736750031816835700557652547920144944030682084379710536090420105347495601182682569425288595418456377031270310595991402456644992596847679193023764153803255940368958242308590422407313052768257767727866088234192555327362581946680412626236423733061980662900674858087616270040840997988507289587713903394122517383209312202104838650881513790005887573527562587012407612770760917168687299813314030646814120878135936478326297444077338724046223789075311002564020330961480777802166081458821822113091080689427098906212800676079860304145286964697335854061351578029476632437130873488747104461401976941817151449346007191740136880044965437654454518636664944509660649285044676630054170821953208527686638887153672452247659401189415056259445262479183252587554198283383498640265675935347998937477928863867872519044760522935996561850932548279849911349900143852475276992243668790677530504298688534782570725797263400534303978091735071714241638491120752790684906932175710811724487852451418891121129100675450172030438234833844910010568597733335950431508322191641636381500231298198828999439943571303083775699030773067415200964029450581348376743158292329063052949881819701187905360283827511388718988210243772146644542160934188142622447176541928590857358009330769346959822530194320252612155519326491683520986327590405009418122795575328353064637828021968134413589746937165130237633890274236834055612989211354991661045468398470747943069309296468721014911498190998695758844523250870126748277027761876637256737511446000761088828421862293661742650992493817169108918931485556785311121846620591838174469549532692442425067312044475860409592853248863830225692636740534704847989970965593363053800513798725382996414003401011134008777656953759412254978465595130366291445728761616112516927605592358017226964728272509094073213670878952908749987068841409329820672819027915421241669342400234713191341485031613079189091596662547047794148594014337335907812237655835165831748287900220319261272801882006879227566466090890684872415553741913434717393883169463615571814613885077937058024131563033014189037927547285451134066590826241161812573495640965005967199983327031944388726610965985112886030775853744089115194804779072105747256274794390395075298463520028944297615948487352232223776429405116279826167406667773342521245842151331941850646595363363315097667522361603075220182079558643606689527337276019407136345968522295921025968221777967764969046847851398198241501008726067049563183634378696866203837593263736629083235097122248433510297242708735325624797707125251656126548685986418218606966854856789615170042115208838914154731212230054464481301029278340758834966351555079747059863756462671879756920700214454656483077021871013850151901735774776387900021032571525629739986708442535177691124203646057234782289001156882549486450422523587315082879938602025620149573251405762181548818017194457455414873033131538497006669452546269640150448960399218548491389597456489997305355169296784605246715223828270630974541821719331496374275761688068250158381607765757755020512009069521462968241596065452110922598453929986341255091793603437255833615482049376263095131031209649290736973888109327420968459633434510244142238879271600643211364439566294082628667939628082706509786903482811033963880479221609427040651320751164436460386579510647727811124659845186687711167996049194844479462837395423096130927324780040497932604627594155507215839712289491897836906676028596031787458856587689970240369326593692714248445696759018762704116704473336198652838253103247693662268966718092194059464813906012164848960029445529575995564763205514076680884234028286002687902039282329400312229927044919448384632100949848746965226694145380605959997798397743422049156650347097473179478340985764681585007875268947631384058506967535004529974447367404906979997223659756519465077916895059563605370833994355627784585840716262797445473370343366749919864356829119182313937647572738301308259178804684234123848982822769917431138132820826910869841194676871166472223721096662494582150966889974695745197406534226306094440518034660479565733391725981512214428630052916443562678667651701360864977677119169880835180896703117860237876200901598791996472967977229109323838467501081462201031890858293984546744657032622430676478227033416216037675444343815446923723915611928161357524837831791031902577320583085555929826872821968185399300627336356125986664506680453415286155591570659568024643544097126742161905187286055184144334685230064404349687885699333222836404155469972406067904767533804118202131390977363833463859616867341107834731679163810370790193247831289211364300185426254989294852820522937460063580257331506433472116620930514818868331262394139995250313876380415346396165731825775212800099219426568414667905083449020376056671930900852895252088644265120688976943432624249331563771133520048748154691045992133841345255258154363116438716515007784248094116547658144891402460788219419226196412645677549795192638940643468031770817952137731844827484986199769164657921229357128051532820573869580175959588960162370035592522325770537950279462169866782129573213575592973836009764164048432796421561175611115039359626129954000062262807441160587779222019219888894565764241093349455982725177704498259385690810449153662723552615197457356284391379152257883307800660110878280557815717656903149345831995386334530747047222865905989676987673654675102237609940911681313411449365509193695565083906384292914458731110513438734050916656124670394661676876831879785233878658817207436665249713457564161129382121831261295970985150642231587384767081259442480669283450126135525808639099518264024893099865673823311696225044709504037199850256191900512512676893669058913259804869587530301803935271394802999866938879145796436033557630785052400399992770898609171791927125554317041767460389289934935898428213865813544889380310577832019084848931490508737711073388350017061827144328346565863711052174156789334951372548277641190484300176887785999441526091035264533119348538659421820192189750933779257563659238378560417197283891118242633279793251703804760764573346328651993005320074403378966982612653851749226797809394973667399638529620321923727903443622436787516657380248956046579193327352285333276280666615291096785435684042336462294596751273074836913177369971806860946920082278712027420778753779100411309051004602753759498280090098553029920908451066726320074971500103980117116233225302208541859323546671144029216373796207477372025391836060745105804965426604208490894317765117652585442944899263977880205223970647556092256366651256671733583353242847854759925251411157072628525809930820998699265690287823073903022033448547607176342926284019428315626078858653090146455573815636754536887667848343382027511910642436593760117913572921604820456370011557398835196463298406652556464762611815484588724093197823290320987133812593705732841883933849222524362603742582946962776135954901207669125498181410329569041852166163125752533102217949485988258239996206152836375280610253467107667713199669800380943088574826536767368625924457448620079428409250047618426214904853841197144551263906067622026331154700155002465604267739932127387138022247561305721016853530937763755705662417775609441807599715456806142304018346016750949849525526808335992153496912032641381556768592599074345615389976401572071277701180281033520528740273982539926684466884601834165314836025704379151501398451365574178761902181654602017714227088942448313984169550175668703997494817308335999196270896322550552371202981258638766245647489009353125299621677062985006626422587161610288311312260647916691542597116155417106518115572824572930550159078594514583636736754639095522073808217318725518620212942948443501681473369937314375188586542825323901184862940909091166185859193231908083696708943474217352986958031670219751379671906803876249541566507312428765868084460029729172175364122476733856911428613829512453769797550245408183368542847682954893703127593443542435735509076456986080959391807296141478577008267713742806917828309296661325517701184118616947645330345030411462162811362925258634186583319543549190404953807103793030543263562626847074734187012907537485346016232034996258662349707525400988986767929321294869353428954375889394021756696228522351296776597664437212572778782467260763606597773741929087302039911572964253605823628752926537479040904221446231352431838899395626454550505281524859035513071859455138371434447762250121432131209879076129208738193021442193535300669274661422176738295206618676450902230252916881704705686239514988173570410264704466446412701289413956617996981447950289052704630304856779724186796742802024626212707298016729555633739782838941409521163781784850793212654888778959721389122259894022539764832436946017279990751181037041675465618522266660131602050545517950451856751865589110049447861383134969782973341824839071351162699931240088042684268902568685803419286756506985034418855670800250129313810443038568939149270242706291771621503731246093922561207595884322370810797161225773539194964592411424381398923718290641248433234693854440710123708298050640478522462271134344107210166604104860072157605315438209340160060941663615454860120494911286447418823227753627167410941540296397859421531733188182352498654770392972009639010437489235732923331740759268080141049235823840071515024670703986333929104669542060156481105112873590525963919405799447188808836129524623506670914585997694258949674754720566517893235977870923043666572558519875396644434598963632699581536501552593069026870713904615089527220011815699653731923905610152188509893949540250796242764829216728234021967734519441644421344643560169812617277094178569846367947879699082017521920018927273240914457400639347268447616237788371792285634001990903993928764108199955796773803188498351044729686835110718444412062169412241870926691058688337007345969438260380060551043652027496377853108092776945918789765981145081997132311306077058029810973449460307768635375573541386950155132957057209506563858769453097929805554319736991040075568291145805449751240649549250815735385840039847764335678511936924810619115975261107306650964569508014919328237656909016081317681530349404819039636353707211804380332715534228098870198413549798832808179067627566930015658792289720566634374699605379883460769936016936255401372873815192307986027790726552683984049052835905166950512241226437578612925932782780212628337485711324202327189716484825963713651708672921738280269872106985980614113745512560684656556480321246963226335180350554237741258536534896970827670106548326672049981986245605845727226886540474357594330678966585100412288138900404917556221166620242042459839609159833659739816666989953251926404778750170495119992610373547091867046956292073896901902444895081666370728822269811083670107071861378279157917494733903908089519938820451501912617142395814520364571035989787232958770960768437027371102858825304936429484768657160841855440159968136164221272757230379214093415415544430422758287929786878818576396731145442905182814746063111060805305049561588669076501539715587689695067213659611391806314934275615105485588029428583523534328939106648010840883753597658988101008642638162077779941756969085552923606592964313915509560831918129297949891474531399617700554372149886317068466586386695763466591008089808297026912694070187082631445359703648690390818408098842123641627404858094569983105357303811081157207922518431100329109353361025708595564174164065391838929769751993017204517960958294382620411304200623762532182725034349154130807596475821178193217394218454297817492824363461413090063094262138656127101182706149915313999200841982977806942381777059999833128134099795982210117970123633712901880320672103876263275828311203760036385343400263617831372414317103430955380904591925700501471679658493068183800394321170496668873047890060865058674104369956495302924350199780722446192381618783253469553416348566054330994770673080217772640089515666954753190669538540695574955299782234846236486167552255590791006884598228721030000509633600776352409816222260616451308716900763973679778733717025853805786174862260762744699920331511158369475834371377564059972781631224891661024763287688814583105736227587661269367811186436879619416062851513157629603091589176168345757504732645711774443650151264415033577312750138046594520313196885091898360243738107749372021705453789867067612929805256844116249835816831036654342135937738994751495919625742753015744589649270369292182471557666270627876322994205170802073678161146549505175834755515333949268711146210746903560728794375164366292058023004687089002171018442472480859078243707952975271703204727543196065332807838365742960365297796578748474924886148121535384918028559027404125592900378134210093793421676376423562071161386822715914208819825701269065462913228582035121006478373746301929929466915051878878006972870356738714154546137221046051519038263625164916103744593327276673650843883045038262217496535115251340395494491741177711802667375765292094652635479858641302978138728513713259712307665163971885133423766857815583137180384763497345211327652156946191735284605077472195172093258693900028754870536175061129357639922117764146660902906632817800536027843175982989783481978862009491037446256022278506075704051056412386236412694743371690997308913410829509169974669251120317098316205973800276020887998933153379522416123718497923944289575458037860961830465649198395318586549408961678708864590700579618164400907061141932224297595217673898879784118343298325813148381127582098210446731341553723047425561441028324468422691493269206399883224007555897343922909915775588616820117807811688797413437158090757650434259157219196232801348212031730924369756159025706952257688619947706520774833930586960792393165053891942453115187762678773528598023234870946958368460045997283224122823046722441353864905140097253957829546435572029157596034364217524158114162251960994234473740669367288794209922526049818849681756896168962182863727475003314846341422269143743044798388650055623751980889000784509200948653901481700205093325255035365762368854948656038931123422823188180677681583073764857581199493896420574065399879158242074447683253699152879038187917590787032049912786580051726319033274449390306710127732562642715252087892865747089109868002546974731549388541068485498479316904484772551304471724644374915539513813707906614669685406743125206929425325484447573049642125679173473207272415879871435800437893100949490293001697230979804666340153172297570788900923170641724189388986008493819814921778425750022030465184392408155807127543691430907914698525726415866454311353863140068867320111013637936447668916129196056396812078905164033940184405073785099050694788782604358404427315952889986057069459736335847091584297076543856681480687985706460153625931338398124448850884204048343637289670819152883732376327803039759204600991632550792887480782303066851922383508804643906899544371735519989896599596265995305704966091776910561383964534138254542489904298425001518546210396030967673084815503996574999633013454176745625229951922512666959783064211148920168136627505045302804112173246507870392933199799874470310581224607222443680762301465741058286160279751469487903842497780691638587111220643254200881149501155139795356442475314650131154720084006382832399070749141815729381439362669880642090536917020100863753700288276119830736376429527802666215921711184752353790956276010173092550923790700396303184887995805360472190784090361146087823853270672847948610266442266477986017992115347876190698695756463962379948743670922810698641262636975392565382685827647338265869811318358440142489349604723378747765435280677135793374486696003979258145539339855171292808808247880840160046901612839852756613637203563208275807676339289808448552511261915803897879534616317733836269474545841911374708813157852948500245583956669699905531310087618245209746537804273996034702322129747730073988518085306606208397517481733281008690541427842764235781758410459328930877200645159811078360511444321017563443758679797024701540438233835221623812912742214191825776475561351377440665711869425103530743987012602530741002530587938376900980988188826591969614971759651594123433688758676199046360432270100309207240403572330727782600821339935547013133033849543793285081191837222594568275979198928665164936602505814496256160300702697903275105189502547720744605695680736796256064970346633592789313607825512080112487338018347700040000568588090830931319306176535158661507329518053618904840694543375168802430959583069022220554997098652476445419710946928686187899758842014909721683195660435138106729510545421058697844387877658864553407004626957629688368145287128944638521685922097407075421731071517154002576048910086354152073120964353118998728262954465912519220611879677533169260312665061048444284630656326853069905273029032768174142105398308038434260011848604460396361622137571877410912595856627450020494617852924786456888132123352057635134890964078885310344773103478982606030946647457736593038266223432595211012168110318587432334394189401136750300616552343259935520430087924889427493338660681905801186379274253872390341337230285912618567659593986538061731944265711099274943042888656275796763698963031148692418947129078415817491674727188263189827230037625767185250395585185773063966596361111996142802690114706294388604130329934483230884364197784865246123579049817230019590411504813005034750475626641653854265862820349653074789886419965568522536631102178714391273838658839939907332416242271259120710852994477383069466047767369428518702543695991667483305429779100065223137458242487943929372354336413777970779160628949686856543124611350180163094528402255743375583113231504037100490451953739321871374350835740993536370007970116364292972196218272849081199624356081416478482965533540537610504276113028143527377915572502598194720013436108838493812808980881589510248980590906970270533534625414434442655821598483839902575277015113000965681102526869131625234383904163922151191151647854304551464552105498638842215856919888844563556055301598672625850056394659857390137374277689984294942559977200991367883083762407313437390485088461380345736610506793380486029895460310337692526670596376539283656837932363278382150228926790338170924592500092443344743431709532684310981363316846918954501124824573013349171454010966570079853837883137299708936364357784318603574404544617176738405991369832258350093592751374950518416951919710633668099933395575393434500671262641893389162945521012564022687979203568896180792819759334013049582057944975656679938498225393662762258893077637751497532723769489237919630226155158312710475031405268909762589298163716012341046526226083589510727185106597994456259135635294157171967486386273781873531556837241331496890796991266756357326084121815999333682096121176582591184119423876342768762999738094276828007501088258775028271931750043326557588576145474494042096132350575864429104648712592281036138421030327431457469271747207215788639594519931068566856363670008412959099154927719024297207469049307092479478108234559215756012830211331989082808307483849356394096895163596507809410813668834110839455751642046529128947923057098303137368631411811629000710167686989396178361020994152688184572111488835381045941500017441582872566973476581150861573829163532583839193429924952732794439942104596652405523662877650298613777266768709835641466825663014532266660433383097735219661497631523567060052038560521146474024587033367419158677910029102529726377079231345010507048635024219174257699411593487839869458164926386649885494036732485911635694652204577367764980239823004839265972098413463187689949024265263138643705564295070970414543899731956487962203080293128491904463807894738744604324462334915563596207809238946953195559206390640390766360556510265148755901996398748529830899998385228128277824162136050228498792018777241104414927265982890078041572169606243541444872370926822850970264344658458205267086945571456675842820408208105193858355291590408374252743321053056925771676865555311102344226814313881537291909723108779295333193420051377249625509754745597934661619864945429063369623406389007430600151370253336818404651541040298348698843768340158389214392000711429923227672369842966152231695685349421873710801462616582359172518864620822611558339478334747071909875106273403005936596206134983996858937758661223971218429668319458748780154745264071743627634956277551043910146275912015178643304529587438752390832407455100192382251601469561756296928251311469579894710611540850359198946451547530116040315751401702337031361512400025812583564375373298242176144778172542812968034738015685112343473385552412894159635623169564115277200357373325496020054372195907724241711401409073919487630949900987107614454727233611089941314177491948216032891010200213469283948149367245260723412468873031621106871615713823197735950082947128990215997934331089032205339829221876330082443718566934927870522383492182970319061417471420969557124790168128518864512513775735890511075342736911025398826596508632398031406782553054180029416144248154061581382332279435316389819184228750572534558045993441750532678110333210856131193845847080839758667113085286277548162421757982970706880584326512954185872679298634503534314228232825350946754504405923151364059108295735367338472025893285788122509125265939470228209983575464392779009051554615690107195757847295890077928625190392702958237052289578392336339487224022401430726135084890970994888358432340998657572710938425182907068253335918462988115804312831399838710483857903592377855349885996998656621072467671227557068347940374457246122496661705360022460864801725694765453944264228615848915778603555355805184311992029943533113890706856073777663231040317087863777224694140276759661964424806665953268362037441126911960519190627543782129064662013313417594979994276197330602670553855900641995200472689641289480732215188067518183993808112331177820594309091667103096189590465676330153078434172797613759158061401214203140187558470279207627180321819373437791439083777197061300280173633215763400869498495423581685171054930506328035473277197552650524716923144329573821107364914062286170897054063561935931619301343572991739344328001996577459316068697365092080651673203252859615314291383256885094467957391445550511371451892949765444222159730337460752916025662043529519162227056237040652092067279417917523184413056234767700983030437750396265247114557047898010157385653903809383631692214171787168100963659770630873886647555783838919075715838986085264202468098028048213652174439198839514599767646812636245011747659753570404469753966390626522954332448255838708574542072488288941823573336847583348808508928892236745525774561324271524466161620470581825485987805354880917330467719337575369576680281182903132742710549769799211063538176573334921071867218770910560994788706758367033916590416949485183521631592590248142321963034833095055964130029269933615769167034264046191108214473277699425542667341763549342653243237093107466105990381743602232812248052118327847687935960812215110435039218480939557062541842824462039938160963733172440610564477896320701464715525813677472933883868251852983465246171471282866916627050768043975904590160366444004235549422026740802983934162439731473100402532409741820372078677106803440740381680603031016016647524701809220858644699200922210279316408194512231389565032803597277169962985327203756554739865394211577635637041969070488273721100627980367383628133005110977102161647803618992830468134637425695131258280585613301086718102867968424031770347309047732552888068361926306910102759200255636449082785934773717323126796189940300063789360907234184245350575505247991884619260673823895010016158749183908560693067939272440178931553488465686955544218970904449110427619035314360087351691928031853196986211139011441320328652901297769049102025386360528455918863362431563034159664643435699533295591676563715296999521643641466172726046441771652932914900349438005706990741685488698201578230116026677988510132367341983722451973598333544630909229583818877371170781856921120365479511130507792378749503647671942219622305579818266708141234082523080520435673118496359942205529067562233998787826912896784668579143584190169122269314198998750899486356407058530325535804361455553245458053676324991378851144338946913578563051711707128680402845432502890192578418530447169553595271165073567705611625405330118087636121552346577836167245960412881566865391740427421054229498583388116298500186595439915242828434230528680481418461575645377586290081847183295470975229255690177651533722716742705777764129840790945563988009704800202981077802381448510116847050340511277932715743397878743959526939780213521461001137903985311361902542397107368815120211309719805753099307233694552493194269622150725314043663827574678084136180559160186936956221509850327983154069476710879091157303234269019751752704349844586343481081247298775779278935021837127947208680684713082644382572391461503543575962672739359973611551489327514959237757065193309007543381382226949323490978947146190821447413937887234549327357070118870844032206256512008405837141218152875605404884074663578712501803931246689039872773316596291662410257038857434795768825193388045218249893846743383468269205688214624597914617302708346683715140327239360286883914475397568886860080592272954167049828932219518543345313572558592195661278883271308654657424815523146545846519201743270304932326289744906316839683125527631644394006372569244898911758003536468128508560655574765748592340465582474601316158989004871365437093341000323035970351108662197482793805527165793798540042660829319332051888094899541944343713188552922618930089151358799396852238983108861307042160206186787097542476048495687633422120488600373260276580011919706564227476111625692041805914267077492958880552282562956095450749451973131595584056935135473191293476794978998044839325765364814493489937361206123114059833954909979029303356903939320832310223280143111422201756395459000116295744686312520700931942290485692941265370088742576322169540475879526609353340456117285040915014175993505454474650434452881724968553597671702686120914704291629522196295626361049630955303311710344926764672385170560006853799666110816609616962077997005840670004053184191063947234334431290643530845131072596327719061585633566701153816819622289380445091826567437097781867578506061080709830272209877209819575540927020245749282266000319254245299226196153129045221696549679278626101852664469410096943463177890551432599426779873438777661859142961042150869356788720945318764306583372461615947961331273142323346540013057150004613653431661061044458442179586572839826365398916125500442780009855871441064829155460478507778490986710509705981717476519571048652820140586638888868843950111829866529174379461546357305755758481534552022975642502511468984051471719594633177610308425412896391727606403367094570970728772031077610413187876674672645228129454477644374616221906161297283952825316223456961913211228654847318838518851235041985640284130338245992133626990237936422795151699113903449434188997128363302544366452301786847041630885367658353521183185839942756492398700305067739763511869640196092520528652675647980010447354345531690868961747683992696723320146753682760215853660988288547637746249996951359172096318840081663496277050559346811710496407965235615935064148062193954366066524228671771788404100219638715441939039980670579961031758917683868153082266159409140976154095888596531457607591463378324990617453656344749825324390912645354739187937818836784569371989302609759991120440145213392710756684296521543353644428555580704135672069331338636303452594890999311002309285682834290579808778954497250986793608977944106184341950918563508628509904486197064108630194877815402703662771024886758512199532905025034117081900915113575281721562962959733484824004650355106454709391340646188357818638705822462147109475513562790379234007421134956703235860204281632931923817116838028335483401642022677102531354947158806271818143829120642273356070223730813244479445598810750327713185893846641090494636973118653501151861662667106527269474781962794873504610429851556565373249919193972990642774975852379883521674671708253649859924317109054504571811117980786154875065869536505672066091369816226429237754297117141746182389761936177315511877497711981813566059639728228687676683412723285702171897584350148922169374781197080438487198609492841785535575289310801680826936116199122639231111486292887942290554776492924055966903950039446559228630316616266805073026496519340570056172302523185744727839019487608067597800322270570736677274687388799629364993526386643490631684046448991806923823664118704136005185245986876202845404197109570741727001268860233767958026601343709520422593461287421128662362189447817681870831010591711044794922178047066688942382561060750115571384007705503727818597415716318325561968266362864274352892330495450623821821902308084356937894850710027473421701313834218254168633929383006886602041844248061970550893779340348270534623664186141868040996531390858607452096212089174669450195450446983205719657546305820175757293194151831910453672266550964036235383928273548808880094173059655047748090878567512872477663189931241569869541702515104938572642841256175453186802678845178941315412077545943725763837540889264707458676276145016951587944260553845806468913792890057300065518027911182673615196116985566003717183670629660678312168040844029289977125352596053361372098304147153339767047381032528471975772088416901238846650433527336455119823816388615641150926768966601059708895376829962854731406855534636778080003117063743780587093649576354158516550148901156348319128540701382250588517424301393731371160865387530518814227266238485848885425007110462324558076678846480657362174945360496791508165274003419930140925813985983735497460743166582718529267810763069662184414421088154356043379822666149242662095377147058403895735969640105750522707895587973856970848114994612797122978729414395433029352275517663681052409127617536081656629060900614495319923116978870544936551929665667884957038850974095540223165475589837013628073670575453352638226741106333186353090428055425933595423443768925826684592471480125401613131728354527234208730173410867571101044809108090095591515303808370324770235638289828387523556421366280567088764499231984728097592960505218576097547870113209649116826595986764262795163156855535757731649139557458732951345783238987710659734612762733010231904016582375792190424213509864416576942455439814062102189959761239687720520901433852365631860299552041169403071286624053797561451823763151047947547324513783899923189569220757677529120112006919321420813023409636635279837058515747695799270742752315958389323478292560012411685496594515409380090730871649579557313448472546441202986547378462993266615967425353023992583856572500268259048059930518115106660970985420914913720487182560590882564680584520120701517656252953648062821851594280638421942082657017571917578492604328528921480411019584743432042392765904419268257763071516120534845851741707248001380346983824663903081387982811065570904774748833422002261924263511048190382583872049263977648248088947431312830772098962868271118918405144606468396540602534163919180920260205207675873429173257097945750822403508252318546148737900340104521356081478233934340233210930993053290981074475244843816068505699266145894822773138336165436836131092976459647132802204865995913345126698061560699616884122293631583587005074803130636611357098873371440302325687048089051556962044078106311628929030044752223850590267321020735101744287017326122490563674444726092923927135569511235821384570485806051929368581891259648171272065622945829885082458697457179644421268005238789356506864651015441144129204980849384867065693162377194937928530544786299187714450536060653062319432778787311352604378957586906258776579380521306310345894437173872092820127735719947571878250865287476415834052962355048823622180708138111069856288130325740454305967536748007109171134452950561633057766846533152429057757722430844557495419738880451577734611330910949475964059716549251853139163776492404758438121441709941063159478196840190777067865234385934156867807718123661679465996178020787540830502761338793095452891788375381964078111043960957335427624347298848926881284143294055554920484490052452930725139444253288575190689555032118008687671330561826134241841842882201939494450924845504098785686753374056303268650508753190826860556924910299912001565364470619662001046021823769918092041396451563296770299740435313136278635138497230445951892678268851346895959584117497466151911236165376605693124975762626659465965933942236135950577863431434977902421083173432955964092387796000746375448733958284154598977797547359577287454947426779629082045866752776324642079846441398086089199899904711197167583040118209327763862570339265227652579671711433986260424700317398273841881925692902641311477438966974164625133854769599163673518347705755713519458078800417791625039521082439685032888839754626510098407413140689292758613704961505956185908501372154156199060590039345284269103743895911436997781330676611551344870176642682078230792166114844525152733113424470530066094508476170282782100325516767417211681553597777422597655888875989814738345554811253491714388668807152146832907584091864902154022019028785750684242655597791166944239480084743469517985737288547899390235270913634127531553225990318718147113229979968060036082908723033541925450079122632646221995190316081784761300632081292621797973123457014650172580095284751524303206306965371532026554612461945313858245557488389805553131179435740054080466104646205874127305362729108554920578219458871050663299268089407441374086898385378337558515209439590799351798719130723315101378469706697288033925108821749395643705143092756602884191236231690370149111280265575727396851012863558055572198176718316842492060578898671290831345411582557013125527404776042594134621833184963631568137528386008267333877411854288651882598666621915069046244444439748039359729108252334886557983809506852094839809035676431230176379301322503203416034369928951154017733050349058352955648317649307935144916374621329954336074239579947258793767845534675528929350516453612428504871208072101408704016362720530274087755337253042018385653273585343421667942886842037808134135701724233589768045937504446207195848438224492612103774096603918617777985701156253202454374724108573814023907693088805635615632904152377748681996557459813307543043240721056629464823593164162883241864053984326426300703944997015954193081047869404551016103436897721310143945240993760785098745704232502969706692661996040188119827432943594064459669572408387962420541622653404629899693506031264600892518828452246251703820165331731606163020870031334170526377404495725975233291292582133974175627778452483958748435439501453958675191469187475391082550136459717457613381079229837397528835144522403997336362464979533949808749637072113856439761356759169897111721739178352004408312251990323859866010271133553537242545247997754741059011874988818063279891357853328148095827797484062344861023212778269977572735356198216141914128563995608529144403345929255085617577459966051383562110817348328130400613138238905704997426419217935166415750783500974811000802110952972327083342294743082151015145805113977359718318315018871122262092403509907496711653335581738449333024560080737975968521564426698440689058056194842182205502478089323540801560660943826026938342511023810480767296769068375074707133658444932377492460195870467709031519039914687113671147520082627344455587553870341432882552058110637112489520095859178545641318892365970365520751591652784697345592438447134289697971385580553173602435797809666548167861993341099580294022107512009916751296482937869206834392604319250809429843965992271349175869201377490126425087287054558268939095845891216505631356840919643682778652532980860137523803111017164852729242698374212167184021736565333447042670572517687075957231336653527325824395996386389707987864676910539616902157961472570959565380648574353328535432932166799511012644738364912153670794065826640140947720192105153999067844489597280825890251608471454730602474517743906453900246929173328738941326922030323830245547287306748922484879890213008727032866896424468183724164394319056680459952292986068627614615873137569148095909904346287208832434335867206363537418397704066597331544667172687718290971568329093737372398684574217840577467538315990126447714673972439520329642565430121232049241968832215934999731482600252070553067712098013629698678152466980531088384912636419366079590573208458345374266411222157377610604900784066660153481041264127913410296998895853855169848398743809939852605861579466856816204906354236516270241833851942612431814383907317903070865592486420070154967982157475843046432664554510463391008778008750592964610869170383846236112874960792890097975005629883929173555136379293716973619071246112441845292602583700789496731815254406425116417099203046071188110416453197292028985863555771145252511534259336007544758600638606723235690410894938227612763470400017957107546800546931407855758427076149102634909059875110168390985928069121337892611946155044083931109401029513374581741091251881390071093465588188953620238379525938248436852812160018901001484832739936684167709903564689550791526960660934812834664721049829394693117989630969040084269786563408104663768789447019634309995454851236209280557668352211716574660326852566560138367500305953626341267718564295897733840975705780521859046108807158868770310163577174095454998077109796706694583937828469494506303997952508821153573632069506438506680699414689336213206059951314742658834916023957562493407885753124522043730277009099453470715926768905206854558944788543267687478476786111469396449200855556276740064090933900652744418751036999276518179192342588634735956258130802330783381356701350221487113105380675798699951762198857149041313635811403927904835985333903596660795878358811839909334097922444332443898651613020248733689413967281999505222843561075927487582328363599837486068967763930380722932825051411326383293165657412894114577211237068090117489746724479148054356550311484783640201117638630451040740037256539497322678278944007487211558507781688864085290675788058624396273076336680473518099431727719757980389973295640092204865809655837610631232483735580645088677342452659489938775423937215267796708074879684589265669309526199730909170569488433494953205149570379529389576365522973646314889641654851847818082764161943940746994830662054230189884884118030678215369974330132003556437126664764533090419721730639150291425968069465253087579163523741063581885873769623966391606271434196336698211006738311772899414118671621416675613198408229533473599405274175572492473998872911819898594990497111278421409841722878513830987400358578972108216861696075558708922264747760952017972208222684154938910235317734564130478159912068193155637351471834557201758806901284494184495217615555791190502210439616834016209179203178639743338331541239207748535106637662193342125366422154666945129280620372287260615725994317595292463767227362725340947854766319001281372892815145056381862521585494649788882294802378759655831507026781027539727969896003561771854386968467262728736178246705218077287833318334032460196883926743395424505127637317848718391731384159183314196836375615383119849448505885336343031855744380936315093421142039680387574730859224888463963055114171403393341768751675979467323367474439807191880857983087152505308852192915013247110357667714967998380623332154938453882342281404455366791243924875770946458580787929341411481991938283412256708216145431146333180092955320616720019542693342634484459824177347995215815421373242446486181034403715808136588306156124255099113275260319901080689455260785048913887436320467744542210353369231231878604214541632507524217693061555953492982634244501810881223896568373860767590009654987376319671971337792191444932955987369672521380920548624078092507608429057789540283390406721462312149806926720899342641389932081800030385722105368721535020657917416852516082840661322288288828725314580386423132209822210654550872782222495033420753043278100211284465833200229457547545441324419930831497785567864756473575010025730541789975524092487312690736397577280911451047856340808032482056764527853777968700337724967020810836424281633475964166938511125382043759446619726346144385261357903205028936046553340591589153357794956997263159880879359732648605453691603543406723350930544228874432765228510449924552224864589601384883695595142166977581783154149746017655783632879381992276309224979915713178915184663722735244650191102856399218836369094213389320063206277554229473113782737657994947365652835475756898820628013809763941596069176378685532821583801382159579369489131508558005325758090583051728999921350406385867511419895418917290704767960541421564199645256156703976180912490457494627802518927165480493737488781612118766179771640373337697256112882257175964392224856345664935992670777798568521175911101978019991536480736881156568417294469153586951442086949700185791946380627732987688850597985272975914140423925440535987823684152479409255801619738485324973740761055124521660033198795056651409074615264547354400410929164919091595891193356510317663599701084722909239751633029664015201195165222835894677076678426043115705806857728473307595094923902980656809360216511471322366273470620485991079579869301089050868127192845181566388658324697661630856800375401703395512939190358466595177911413151916816397820248814799506239559412143524193999840013669471349340332758435638915252811181066341835375298560632900017335468833466177745252835017523020715971770937536816673888812044401453664936438364510983035803809692570282451188174472759464398044493638161902728222921835748264676274535210452291774948489595146406973894138132707030718233193915089428205744401480462349564636938169128604255458585210565877517270470184407252104877321206549135125626407864889225741018569043586528080497342050364723042730642785303903848623117032571815253264982376826505411867711044389743404334738799646735438917663103171757557698821514092981627278731495281410251128122008801511748754084709866619876991751238025970196604891415611407977363266351961651102003611511854231272138365123841863659041583857949636225850788502142306499201674081955294894595216499382284198983664297899199437349379352387181043503009817943926621674112192984184455238262479650882365839475631315068469382202738055269627064214337913852743497450554074097007587645607901056258522963584386990531732215269122509950607839694020540682154669172043512278994783071316930594819132906842606591744768841596185970130329423300581398726777143306699823729836387184365111837659242084812749193498275564481707817263527348526453130555343095500610567018804945023671776911554289406603704426682328818698587919421125307387470600897422466300193054308042170523800533442932209125200637367520883868302664479393651220649608561980935829283383948388110289764476328456638492630984877457690235901968350139182465611038365062994588223798556808878980020200079034345280066927573068158720173692810893728087454826636340144144997247752007463526904455099356602811812072291945545389407110432353553321637641171040494300907737327217844463761403541548255566912565795741557897778093545237575993240782362272378336360132959696270954441842088005886364218817571244564323558185878100759352103363443076972516232034682162621157399577893944811017921968065903941727034225207007552923844087056822345909060756810103445015940349366791258882841605052440836842801868979349183016969853926103409570376263388913825121803267739057283124269926582200475376493535521875392524856363679508136456853969699851002546955241911603826836908556060164936388068355363772084619860008310084954239300172786662849808567111265908116189396470131672585730160263926180833812317951961975153871456968273584975680292935488213465313378687041381703433972147760362350393210566479572890075114866660298296815343991210747308046067951905616422946628256770138545993144080585463761909676004943393811458035381799584989559945692722198783550937571544901226044950680501232838650794525036439262114372064599737269680912532533357915638115333563192957242129770027024259561163094881814391945225631062504044027774890843871965723844918107096755990949765956792471679846353624687747178403664167649851816584685642135637826704499595272381830881479567071941922259121000670107638811498578903255436388753845344662960466636298069486100915382592361842100753681908806669224299022956616099643675490169641857353221991254378691576716101174074509711280297507565222093437309208012564961476113229524786343360993978847791152174630210253096160084465826993706913433954163553912692074876123873065155106267591784539886082135183115346858337097756223453414089837330220989362838146547803786914142018520729300613908676302787161462025491231152808353803470037947865938876671852548937193361226423921316626742599557106883864499012683070157858950071916656182174899635829418851363570771713249755332885310402691417949333010173310557170266755065663868393780579409240639460379299687664792827546971941210187015376598239659447249322177071469327811310320457120134170010922606591949317085717014960700966699220650388132016147689069058472195887006110599855858940033766746068299157833965962675525961393381892313737552276623232389352174357595186609890314830005241676091418242371532637002628671961371010492835405747690285372304312026309047820307544925708197200260249405450468828681890266797325695556881699141615538419260773779624007834160956729495123031848215608477375409131424914468524755591134147346939837966879892421998643653311199962889850359740182655081835079496857686452865822589111211723138263008833862907950237898833895172830152227035644777931368506759266314696448847448988990355853860404443589100895731776635706276725622349816246806386052537155125977746346173310095814914405867024786572698698321124880994450973782686275149460146750828059658344787645635841043397485627905289658752475338075428906865148469237980975014621219708402180544552664977452101244031678658712577594485591452239958415682669260886533796860249073050932294205486562472950582075247799962347958115903270698200413908660122389678095415768739652446277850599421382412545737768152707987099545317038230305842845355845258332225207502949620999176554743619674070129419424334000238711625002001398056811532175265750218331558824212959134926407702997133371468020195731716249315493570957978500999111748540906210402131789608972666375126817687641718775910850231500592001534442172255814014808436009767422171508738019027234940052093522799514958258025460907618922690534245001513896987794165785744971051468807628933466240673113012036827889868837354421511704017998450361158310594562302645175840183980905043222820018181350517144025297910860998743750229552565251383830317986659141715096977224541002783519872849848040225083264204989521824131990802997856014227636079312154778194500386088947540312574242746397291478180647137636552923546868595187130171387912915480913263278200290757726281315456848658607112078164730152860368714104870253842871919023319762881643286118691561740747390923443370280762554281485123098298677876258023137772292252069866594838901189796679704659375637728648763356465414511569549042069007154429932610640589181909587976894705865266898799537988329589288974390217499500170393480708894603058213483017443966051616421597489712557135126584441774339276086848990277934927995300572094229736383937850545513233377746448452998693270291082553137673952349130565933129005794904449128533463574110285134219801264509967633653791305008372295966062924798975021341815172018515086320548419006611923816089948902076976776880680163408641341915868123883350352295113089232393540975152817604217738383514427701902717718086874013248446629379808003096472851105419495864875604823398238804699799124979324672361039484599322818130318985278006680129281407550732712383243067906349223962813355074983950724140950253960999286681542884713608344632583633348618032462495627204162591178920815760495297871165539150783779887424642984714200381036713524417275493154695177908969747076927794762378575914270128276552720799455418032907842061103863704865110183981120983087861509924020780183361458018767484933355344023177304524786726030861004364100355924805368288859739819729422855445702203135052349525838766375336797860710158797952467804053450125989399593261455915055125468176958437284521553610806531415241870745552955773503363048226186240011884680148360885852544063996623436011988738578564681230357803998680996843593577629874091241835562592389255358354595332676436835561586955098932673728756801664265833291214701363963209042887498940949303178091118031180610957410707425424014413119104108678288029871345914984674975333497293526647219233551612442249239622492298873640722082233911157991288317863387245111051309321960231124927828866299069198132684402236633390940725996623149666288745264888266730528021550487312809010701394481415914300641215576269668015471855478188616592367394424274920849197210937197350540463299537847706403762815452792053856292657325766109321042011552747181052874182403297435640700065922790148336981332891137074322588809182302696310975759429685263474979856697538685659750204049570744976047137389662974619004263606919699095736691866023950448339959094904166629965511782188023636864832888449441615549435354177527309935664686537321360204139882121305290602970492920385042115080616772761624242951175315321106813071309630301160476744888345711014358928413964884125074096945816599565470487965696847995332863810307696755639272596516267410402259250023436254029688532395317051704288259195282577362370639903436857746479330755982544915762479382780993157956682161806033138669385230077011220331968954368338369404696992176657002472024138012335743100569403481592039787503748070281664155943266794693452634981795657525525942202924963011433362331929375565112097615514423835987268779217497916757491775445045226236841246532832419841161093848932123389865564876500620622390087248335453667413515850631365308586867466616409858365347715945383434921233978861042720599865696872731978767284420811743038977275974561041629617563128163230114573612410574229152347809996014377538284584699746954946848505922729124123059561124155556983445305350341131828231603702060300815139350403232906784624409349687229290786136877681139808104303686044931939373931264205225952857700324031886054618371379944018782029818620904875200631586010962892723825713594222800287497262440041161321232507779457569741502737378760775835516478168953021893185747196545365819681712403649761907814036538245691321358314842515813299808982373524610852468112382053771343641916001521031043604249742202580275579802200074182175570896671751747296462884249669673209446425022909423100708018583372571322692967208736081207207136345215021697773197151187476539108129318343722148315774595786577284402991504559458643326762465659010308735097493750826068390722402074415713000547700840646639673991128747349478910581885641096853874915938041982094892421498355439619863821521357940811883743534441907960546497012861103475455864645414598233746210061230787441532651410002975112623001730826398798513595927776096921956741307430160963732126542824361341198736203647791060540633227671618958217547190074411651010013114955482668254319851003507980569194784357669493126018972836655961903078219020175929867689003604744736054701878980433643322713359001812973135792427380644698757853309290976052723762398143426135657408532731076033603888152442267719618936625030100300379031299648763147129341143097930333666658209924248827753514774642243614467717673374287113907639130552873809639252756379243741029035225253412216818589081705684181418114850971558121847464674122208405401785253638506293137371116928082184767586902904258911330335061183620535818169629626423456517520465136168058499719334835891756677993546938207231440428923952042546763995553387348041275988735955764859861971653758354536002697463839241784452044455635836842107414399776040376499018814513383392361683746805016884811384199430086175675933185807609845031285535041583389272737374030683367044170038379213318833194221248682530827472442620633261939500670520206293778646893131243620400303804929551117661722037197771819702729926840000841114556378106946242141625364707012188645468639506160210178272174934490759265277332370158832397878545515773867718037451705840718180795772810057811839723086442184240793092095422397531402706043084299755651049552909159366406194004952116714264064641601024509863211284186745056875751888292426145098623622214520434414280687886208649145543198418991645804489298806575248155567778942278121774498816542983510939336250982455396641914942480094659283802986312059815632881939274168658174606219470402263950421962945817067790839076050167086550232832599213576201008900356705996776335957535935669277873415623759922593490470618371363988755530871099316887517459084480006149904842866207438213529574878634394668584570462381551234313376452153535351899000376769066254535396457579269413942039570841321651000103971154344612414972002927057380720628221371072629857190455060288774478252431345313935501563795018272638001342827222525503977182990615285413292448826004458545838422188161418075500867612908937087314859272032014386075619495109160858422063775180312699248344580912908056402558959066640791720102983232612286228951268227114266267462749869405806166683007884824086121202194892843538619254754365159798961202047479100876122086242355052256022693151827777899052135428793289280884979067139785917543796224519709715669366083238674733737777156157134406530953434900828905711370574790333932643658494438746842343168258881850231681275048676892917589453369371314200267690721481254928386386192204301782371566824272606717987143566184991185209747367176802798437466586066698046013578493706547775396110892774096641780028444420063367367213952572466752948670777532719531639853366316512490838447549026609436693153020650369358830034465895487224576217473632218027392831267293304128304289048830362496522311719413119542591804574105497126581858347028577935243056991549621840179989211040910627847878239114202379823368492923937868969612427510330199212961048313663999039890566598938814027215342142414537653907190583063022605441720377206869097690671371538134243833893468763046493093817818827152977597568243728200840023420067489958231119879995456739565998303367228375055407766985030287339459203141106368496463459227573039009998186078021075741618969300446935704650495467357747281501111391464872163715059852743439562637699944122441276588701535731931535248958770601662356119794509301098740081080791292215882791793260917054229045421898050382249719622836242132616458277251996472142841385328402296799162064480817099980218386585529582771052438719713658897147894863706898342329132306796141896080899561013144809419596056488892558237816722308762833007967281340607781042551695720696956927877863840294436849542304374233835667942003261416198005504705971826898742132975280831080192565905697314893436060179190190417288713901051555560884266556025159010142388109923061423420740512915950527694113012081435917314987366915910964384407100609567083631209607853889235783614373169424276743420136574194884001944209643107193433366627969996432459489692994340963639609019403397470217905042006792184139758670341231164518838875346809695627892043502895817770394650212745868211644786398562027790749273921610988201610006327016659421774614867448181974595046372119968518044141396318899129524467896155575887676430316601191567151160178371944918108830579022161447775654115229759316866496793539502883645695489485154820734262751173920150457360603618643297596037266469917543977509197934965241958957112275138045221114594871017429090852856012121188324443402005713126712602688493948951041449495999439446019722446123725468856466472053274429183628078398590258234593228334500370452043933402619641527603469597361135344712528878735030741847283367853610715555207827574064963969099101035168021248618140331152892308991333027524810073169740310906323805254444021205780592912233428846464261392895208799589527984557947235152295409018777109284471592597979272243810324225582967238208191583969486805827850034048712145252676081162350218484850423139832799120394169323455114998208672462338364985782714350243316523210406278168744459674157448292548865232117921899567921209600851856508183975687310068754258997120117273962901536481622518380088866953353007339458915602158556968818049433003601490089132052285114432691374008461141506100435057324071083591935095058576969002207841765711237374721557220104885191729736682488062888929264153459684695244650708093335649356838033430227294202055476636037183654190912485543189708468413877202270307386612562812746314716738612677133674209103873724335581067810394922997897217308734002495590276911999682446489615425631573041087615104431406527959036545625655036347375137731163081825126912849181481730061681219146003415871593101763556672083557092173419426781650321002697254943046589919100601457944340196538669550682495393329154748985924112230055407439567311517249297638247155726508018390078083921144283197923088833005116778854605998109360543975671440372110706096866744476507361927088767926808019091131298126072268284930308994695503522389266532939126973444947367843177230579997873099572487373980643545262612351871952993173474722759537248799197426491336609422605542847952190330124968514540122088280269335796466243944102421493997153287578415515840147840421731578990200381719841514040896242827054214534264744443736429767025487211821622118860631984910551733286385731354049108981017075853080058118991622991828019110591698179702342200210590106450493808334914138091408528733816762298277985935149634046565309257655055043566564399913287315217864625516727743017591689186735990820987949341521855180003396992571722019912276099707798623278996675258482723676237660489755371562947971992891617972452938591398312461045151064755209016791685610695973741140739518640757912402752776909280771803808545348811403528529403666847124133636646147235512594594052379688883758976717741941068443341216178455850123244332674151685176201898324927433808806350207147290219944184891641803867664596045843651316600718319303255667072691429941175814844267096766924921062992224362209453035373341170057958070774549209469908673626913173108877389388086368061897261770252891042744145863746224210462579532458193501017742339271437778815712514900438524760192590606731376816165354444806662066666944590575218630299183132011699393002649788933777009285067219930412235424757956339614517178732722388328035032774054235026489204580196032922902470912723705128073765052920188875649939901877833216432276568883459520659821194666825556744859363796278830325477130696326171767298075865413042679079088705796399324499469879374249787333439199385611460857233720394429299649474044295902502207846752806334202640668836613996076696896723065111364808995757484186607167287240505820612338428684068009764823661971603068015382194606578941576837384867176827877418030151259601829704661551042214928337280663895948298375860718904395728321790234114169077052306658989531379246915300749648562198296265623710883038270951600836143206578384146674698791342556654879932529779136398252668592127215184795163569471995673940875105572448003025750109388120199588604127557359535598213416652649695642611690163801451154803063981152768723172673231555787910170733659825293236971163907488811066482816477952617642844938920026863095459207569097772556641053779262916237388173712675332029793669879402484386312118353199904680256967752186283245283144245506242578540316561005527312856707328566893086684947282645422816627712600241592235111647991769515252629687467057620326197186557505423727373127606326594321062054102499455220244357601442373667062880130701817199326209527825747128856516363777054620872900278638536785842904400326681880186037132957713980749151065262537104603897439115202432860229825459261322253461383310305107218162172350835649407481909320574307942479527234769873594422214821152713707534696538238442604708949251591889044386363839329475827501248710880306743435574365840522333646926513187625375585551310315679550962248323917404647909280253391008253756706216094734304483590879207371745533024834979918091215545719005236542064229099529351340176911064844295479043738454096738407273754436408598882817664456956141082559429451282284820030090714568065025289374850728929990204375331682818407725860521923680037463439052918391070234706809473402898799323179644339884250248763806945186923045781506311775805905768581232592782393102502514781207909560421812148736951152115006414137122165332908607556084312211763894106023968254132536029403577656381825361532802617770389869161098505502230288543232829933110754665581454494871764880666876527805677703819084675753941578103174959355730496598561673808731865001785912799458736043578937296746596792994683804954918088075910153436409350004031291618789796287331216273725872514918622570858471220827980319874028222915102118871507169863032395273987924281178069442745539047205124748795476143618839520746466197230631019638826551735762724011484551588065094574919171469018409966473340990594327414547537230030447158227555048458335145514728579311142577746018612595278612680255135645930887625667236119180513081903866646943651861132466513374442069793476243220031086235859362388314411639729606750263146992841920558463826174435395250303496141069286215071174436181074688270188765240463030205734823715716555316320450831929847119607663407225628453523383989761798951240998254432941227751282044099976619601776954098533178191387800500432972037926414141487587426924833344074606160941999296309429451215136572853856229477888893049655059904043319867857404164242118029999275759080169250338239074286955770385885440157005581535225352660773875174318044388824904596302512969760393204350460892923563493548724026287650790589876777990040715905736581658973173760672523232945268537937659895854418877022029872637615447162988368264455674887213303505312001193859415067043842682331307040097650548864442803379009100164615230260483462970958272513971381708208436811698897867548306249264244018085753704221169745160321047569552497616367248357767380202368689636538060137282930213519439536842969835776984429612671864505205126761288986276895864975151203601478199959622360423306248633220809136309894694520280047384630694956956608594763476817454685804506901972299730766012497746303089923622277986038216925472769930184179257649271803530503750193712146510224071000651290725470898363942313466884965799516066836724512329118228765840634455947623310277755207738064849070488337189305868727280170118511658997115451383127823616911047030459798961263965022362559955986218840494448938897047300067575219103749604488194615974209752711692686905692179077243092267602533406384170421084492930048127699601600598934940833024494409169675903441301573454120811910881092909724617349720983583101627919964646185077192436602773506235121103002129501074119547686307105367264294752331210553228579173008159784389171132838260317681476649556875195963053945844586047255049826283233134050380452621811134184208204977598555222443011368830583134882982140715520309434661126690976946517469502412023397640725513090609001174935921686571816751576027240537029600172618419591064834228980549362130210464720627517086328170878468243961559583677241005146836698221329365984844586412381896044817263735854806802808493198593655987634176016866699810884996489569848437719475340569057600640843025704553569347921248339175090639920054063378761676156776127473950515170286727440214702383443185130035811371298820505357141242642783802585578686969765126184320854498963239488441265701774439192074859354138402557711131691599400572507855020131439480839335562458389750470868208198427675356817016227869020960270222367295586916528572935211913097534837577162144857489468044726625451637851575697919756262266648818659240931465354080517412319427476055970653173127587451431113979536800238888781706098199994837831012101066718845318669495889941617722324681693308138275013414028547558891469244090860576229955793156959230767065054074569556943466130307480785455884388210514469326229347512955902992289455872444329862024358585789340216483044683791608835409595642233010548827883801190297027092530370498045707030117114081958097032624612044144786635854862225612919245783077082513428592282438279505366872126990060658118275929483733969621213609404442017953398243540151214826724462163160848480717615464701113687572203682598593361348575430477515587169632180428079166212730314255422475212567388734620125971527103351959823930958333414425395406421737096889790158608171653324891886801044327326948703882269565641652688211597549233202033449250080431481291426818857852898778409990248761283519460918551857387108156789461659184972087763554666206951872088280919804031691714246965956205353769198501506134773235987836464965477295681281002255964839155315078487350760723336099489056525904925700589642794974443589564459456558803801180084113666451706846446083216450496717129121294856583784031762504586814378085439704121478783826218062369398303544112773443414848325564796365090001464120355574507139186359328740503610677032642968606774066896487629653966644800642978902685867469693683960928137972302293695861044723478943870159662923117556734210498593749709556794795396086202187608283034557012980965430682398670445913054656026649336307970963105538548432418311448412965164985032459872287927831967622111417310846048268779097311897761151289734595989060968857504429356897531505675339190518128993762008302976353254226407616640496661559672910447252037309651114288525387534302599366191273569005139903066026339555817401505800291835685755882153603501197512678111970975807629918849540946289113957758901907403323936468068935872168602259098719947105245382080083671116760996673385383230311847426994813758193307597562435546151217763580615839977067402035344130543670658768048088658495861131834842515232648775798240062152746742169609387400351936353895408186334494897643931444783717793893762068986293307688592749751737961079516027030073963376421460476198753732906090980292772307785954853765911270379902372657402355666096909476176665595245428655887706823888046426886952431096291706263329826097148025718410547179792277988200953040809528140885290043242110257264277508219250828475700460556390400585082864187705281905644163233571555164719617757440424108714007585421354677390406210476136411212712588686154202317275381562992392895039264994281058070806576214169725548970639208802760852088145582843218479183597319284265706186033865466090655455138542738561190914498975651123783435860708662986415519983512775467178871989516068306962533455761622180924854297486188413226891166072004391097733262140466755211116689814866961254158368716181940504714414771885520455288210618099420723657518272850659636766413322159052519908695638293817533106056627064892123603408682519785032707018998152815363820481135509923012025547837743324071987640092827342514037462821922302934509451901205666603756772546420047184863071700554537570761331993763529663125971138784444476667946261955332972880362364542427397108430763000501903453802001601616014334219007233796564842217220796293125374734005150543570507506645149745641856361213678538138893041020684555755464698118838059001110117118623214197677187223770560912807418776183975311737782389985660979896132542379782544897244811508910004749342162407163157178568962957182565336366971658636635149781036359870447569903540874190541633692944187206174578746290027054116008904378001964638159762274448480795228220768205027437374615753249087576062676263325474232906474357238946727843157675591634495534602055153336800803703922798926693355822681392022562979267609020760524560753327125007353894567044973952478329973839403206302993233534471086338293356671444600714227667513153487552672511579760322025825594746420275770420894647958371813537495738545159174653367643441019536414488999630395721209265907196408646670461594209295010760141379598358598383257873105803764354991936603184645045135578442168929411003570218528948227730207117622052566152112283863098218509180821217900860744456324412102110193007462592430292312800273191630926098656391949092191009258011295660824510806066144750415336079375338121095066408622863692100827671100804781304194192974554965567231029772480726791329754314724583280557623331348102545551614076209585308284825944923852119760606836166374793544046205936464827084717819583759512919203707518892866920088826958858913109615361455537472569993502890509075238115844691134507812494227861954849141395962093323188169039072955279259122376137387633094962024665234449533470941078624143895139638177589683969043827154620356771452133533445922908615412651574309442437689927155766084214006252881615168886227110796294609039677978958247087271347391925983044855312244355526996353788044255697548564334433054624770464687565914870447053083809367557845975854476645871115024288929230961618244273253304630298417696938194111920614539451813426454633500978938492270362912857147955498016984070954406156120969705854660394340222565128407562895141515013741445832160374383139465125162893700101814278229196984934038299063898819331585681535893766691638354695861295958900337950754394105861952459505605489229370922103196291260763942188565307639811587719151947706338110186316796547516746605464655235099338628904389642695598846853809698277308789242993311958500322105153224348068016800824244604014973302996379075898180950897428786679633870454329711017685938214486508594266402346817017843735311089277394877937340502821742321417505477166827578822956980825524218890416120748250109358242631270395807373387256902405752813989984460487156415499009639223160977355674988222788342489225952450686703458697364641678773543599222851253940692516044751354420333885647067391596898484914428450086179125511847499129362945486060888242384276122007036301185267040329331721059018254277189726375612069187604148162177279029278246640979267986649458545501063183206739847719131026111119615669322690018708864220063684654606248682787666738744591184209833454372940452976371171906226959779387190663864285277514461656949337085141816392587839927249686680154258630013853584898981338922366277047021836403256279606907182494521094382786554157118026931728061855046423648258058065027077028101255705653038185786527482619269607719534396452465086093686932396261653925753179438175460031628085929764003908564041678497185380067996814051517778236891783953574770603442881691477602705488410153713817132612568453426371071754513651593459848200263092945445006124611369986617122945314142506838130328125595810433718324264730644009020666322692473547488642412182030287916427812176655206500041091690152489733762051940092572488704075761176628014965401370683126019161400207886050876838405282260863989567746619813153408596618172869674032640077426380466200743824720806870100296806153447031001844540160253041975892504869403333290803025284005860333705402133657834377723768462979858695566607730300034511584051066706007627385414923067515851025227908251304325520802476673420702874944817280758279505686959080865330976990831700676377463948965107127236437428683687093158093121572234715415316157147938459504957527068804827911714401958186437189778074769332886766538261294532907905999357099214522565434275437732707762878681071370681920629558221781880106529155175522419717667788444973588972050661981084520726907531268276287493378633061944107277644808802386950771833434895297411239524787343153171800569170296339976372911081171325009168764383618503310935440243324676725444209891059460419693887032035946869714273089675453694246376652970301316825454433115712682445111066769595116260532213518328580735776175911806808487223499677158607205736637161730942109279452918217993789232130249914204100286625920822016285168274052133585737119705676191118064409358367621242338624515256952463226128692526097134929337658783806855410612648021136997414514133236955668069914133014201401447634298642908283110334592519486392011106444281376825365237305573193268722830756285326146978860361072739813893911401257925693145301069885507044031787996461189455070538484627687939908429394876054651111916838352059341726481735797228873637647607265753729979245924330984293023316226063156650613063899772125790944225953027408500969809330344499158869696135220267339036526445151626907057123961504820486969918830744012543186747071213448334276775554173412597393240691943696545852260972071200867210112858516147126543182326449519209408990273362072797185454598199870737099553756270115556077961159944586287283849436110203859639578907149198452671486598254017857611111309365629250990763430592802071378197781356123602933880390451214503619233742634864788505122819999536069006984346550282239770363733252465417139816824916551662315062856829643964606919101222888873611216380934385082353268054915469299321221698825233419788220626725233249646648278838211648119651519514671293042495727655396465334869704142876948659973499533164404413258653130137518984530075273068366115513735580114639638162772999529031645534606756313172985509263171344560850957371462679501951928640946755872040266591320593990982210178445035214695483184830600204856813393791181304078716686012249335309796765128805658902069135025174377892583455216874391856450148026318416243292182466258514156515034001638019210697557765165439881641236490403164248084665889258597269643578352793372364543739303509417425898942466539084685546582877533705081239045451119636131913315060000889915420098648704187696304876293973842208029359605302605640986433054660496132019953131025106845183170856615436089868628696641293803706695092867258040744201022284931054053334996497214701776192421964667465438948432825969546305504721327598508886676647245837997112397459038938166159917702785153928640668147531626637812153284574974742426753905745572980598314898577102697258537729063499412386724272030035514522566520967890099331556357329002244882854120962020305173876639540685515603871582527241738875125208859413933985424485985833519577469677605621920184383078978560134963120216261591132064583670666624790065545140993998158147045604570647306308960877190149649717450521953202180646099332279628845441575183537117761425279083640425872009984559060107426076013313811314395295689114944710599487005515205462772997023242782497140988168501353604367618263746221064630870323726829753625897480902274684272591589327221319901006084559742953201078388564263771673466017925983690458922277934094835576989087234554802167060287284065762722753629971432287391687071111744802063931668220490383629966093577584544544259767659172097472186505803661173362934115708110455208320449354066591054853521047542786649374776648723710897116264694394997271301252265180274360679153447610143894733689008447104478233377262212581978341719770950725436822316934810690451049949586825865606409944586549002890450929601093785122368613345408831214183900286299655410956332229606085834999189254582885748123714100540219912914526759310968777617140334087013857259615640105994301637265556885895522918980883204594017482842597332905124630872072338457250786220927886523126063414867315673889261201895332306178078238599375270633834740156066698904053597961477723359508746990443564509675630528757161824568109678031227308244234773044097439653411999894538285539349700299183853228954623640034312673628549005924923024722713755368653974338023199107684175275309395447863216960804675847404155243666251188382593593645627187504504500894486475007992893624210038698607827260555940146163961787989790695997430908387164531228148293201082005761980392763687002113561069097511978646973648845181556709387285511455653896870373483987964484861171106049211536875057764295990704294193154794052559853200397250571975592317732738352967464554246087969263735052909878617762808185313657146048529283313819899766411472158615274012769013803966475784487286141505461918168986781476250877544890823392538660713483241935244246201391063770662462461483957264067840860687782475237979439581372355154812860814042718128233613796083270370848242160568322397347479446162793730062637016579223969485433827652655085826705967215710779271515512625487804599968970766748369047900818534749550605367088937493103938786740373753881270466860996357517964366767857838114725662921164297232398247449984629661437232883504529984259479651369048249308437939729385597092174465974047771250245473529515675818876576646733112097935152801484881799459979899443757302475071565923405492004764947900235956074693722608942856852402472790812289436283399300807829175159446520514707603247561179942400864470861195400507569711011213126775347614014332158885572961295559655932488813782816885841160978472241717648974111145432536637979961106613530526615123950515260332960162719665306562684655349839431811126324364801048404801107903116609738723240310279484675080951461448272658894416132118290862906972011558630812989060023260742919325311257517628879411366163064445123222995934283034747918353178422558003267581599840496391591216864818438151782878366770117530368189029049788448513000896461058015539830062075781311597988311421288528027429194749797878284609498245358227395350791138678563161550687708263108301854089296170146124015342419052522098049430604807736425323473479523307922582857373870099504641414798270142254440841901482024474877876259835814132029133721766839853398136199062786517424514010470368463950209061369906776152672075384400118037174105679439179116673923531393542705067851798733748185183783283691938975191222141033538557940521940346155068085363058023514490222978883155920156103851429284308529816980191784757017153695855167115853596376253892220890192136514080523759222867023646143913234027687455822355612330541974823051697296848308965531451132294059190657845401145264333235173538230764258638841815821362024275217900519325055995713250127458127495413760729083505452621509100924901868013787137816093724129843839376101834134678087107467761947527566561894853599705767286354861764292974625324537523874211283619602580956720580417422114030137930531323624830920905836839726720150665669916781227827933411297717777310138351939906587333414608355328969198162012688957792378447146227915907018758441788896540406971193194929325984132031345813181338691414269041849899411705742316034917379638892875914331209674445042895367568237736521590178851255204374916490765291135703836354874290802539642259845983353946213338176641832778511190125637817353415656777227870181418969663647511296718394280976990026150335272593520329519598647990733491508633264534538672757599991593350006311206373941208969694414099774002901133291167276664260114652819085862787751486614214576960840428119084523420558192030969182678667310060256966906390205415645976904064598769907700825283904795419861983406578273091277885576933165815722162519303201940213293417119209887410861226497441544789997508614059932132320657598646706821640126586770229092530138293422335336859282636599229180912384557956185311919173845920132388827503206601536122794876674574630422212797650236245164702209962024531073161517910332104819477612001471576174982055632955784866601875911396661988394454554734864623801216904387701200150603995428705085277521698447325947048651637161960565274947758799307215232897021739879759386247908642069197461534584626130104083356048277539835795801066869189050801348780182684852171832175518493391635960337056936395779925256665662817503171817562872993863453655370626153421485204974898561242349486189273238932796722543068953025286519443606242024189498985958104676565118418089906819339838625870681137082389492968029135740986543411252356381179519870399301847951610921700645042838169248597556142981435531973600548102243787892621918219997490347308808432441841947669730419527527204485650451434319073636724534690897742700497406373367000335445970543390547507257254871493631867094208680278930490971308852119079398658999211737805242984930786836771140020752111641534303971333889825582387917425938674134943289805026990028394982681155246514211140762052263028761197534802718450758639475304502105557400209203005850193131246272857517744986433753684391080817105852441021072565441268311387073111513808489949649621499245439176140740359075059524401380079919779972464896093803438806249659826932254007853941325355190572784120822636234685477703054824292051963618102531334593299831229777231850222056721498798055326107427387369215527638189307457419633969907540924010514881403367831455462288936058521160258494715904038214321004213165661991149091823196158438601622862770469001952225694541036294996214864270441694181567791720051438568347117731951771794200012931658279619932560898197540037468862841670534369409368055885293163751454994076612674076755318843012004594859745047562626154074870541577245823102169243269765754049266790397278600687625065811458230014488208741599566512655830513236753613145031539029161939741072942421884484176855910969261140936133495762211825321404619231581372886223295909282509412613081508007753946964941393416242710733565446834492610269050000060446182133215998158757503404165844292871643899251804234525925108077565795951642846176814868086632758999832992767378814726849190579797825609712403031104462577744610323784715309681188733718616612545640784023329403357578134669026933977214168308595243077524035440900453944074841497611895258063440172209762374108574368693497606468471532789270316771585433135113492188262177211607481356824426206588354523888465339356207187106988664490257193693731290763614574928359557255125157848920119152491252111007868566390538645086015308237750265892760954289749351450539825034046187584994619407036647156100096995935132772094635037649066267592369527847539166169635014401808906555132102546830730882931558310853704775600983358524388163009828171931340416108681980659703773052070226717539144483622393784728742230117218102625759463342897782040274536627388371004806284902466905240010521706553453837506010985452077545867358890101229345190519111807911407886545276167055885573926224032908000233869142498378688353601481379230452530399280684964549448232806979252381102380688103057353580153559755102274269400841012597504330737276430084572680733222854177008404905751781857355655125851708811293846272722503316896396998422152525545420729198441952960928552482809130693704885369441171074740718068794144134075353648867769673409330634553369971224125302577260621300408712405290289812316082365824152049324041887455649438680124548734416021609808558564162006230867548760176126286645939147095412453771401070881520429826237851745837877027990060570167519064781889279143157744937861727979980775072742579616704431523767189334067579046070907397056658957895131754579041374226501986206386852309911137367603685646224861454573633285422696141671517313258607118107975963086121364829369208152578404150959121274269522704657633386763631806472667446186569365694115504510700734525262954273562846090772717263322127123570337639556664845467958616859769908595649316037212534260846172542118959558187554423137940982423409162134772410320170329786988220685914435415178600379485262820188036304334244457921489275890665428539820943959992277252076710030945595612471358774318741715748308148406644818212586707849415489448815245360074634552990012533543570566425145290214706994137473581556517804152071418337527022954273447971869039961405969928098418266307161542520070391189587127616733454296496675578598166433239018723047705523559959899418501303746501231527557102803015992671809390372038315971234109694386203553618096102158815926892960199934795840804727869499414757656024273399689452166470838493489530460828437438625335794125867873479245557663986675760851248797653619981185762231948905831329979299447909521753932978698151351626955522387874234586542676925564217345876030650907960017802590864048508927264218047027738225573927572212571645628738930211700710957939511037276109826856811331603448306161058152958559781026025308316441849651300031070193039541009728793004871817790933965194587607141091212600834134514562647634455963463389757772783860555164343235861493346657455459522613725083026345908302779022576159971104497276335427702245714778017175223157831197309299760425325726837079427853733292935812614118027356353988671113889198471254979124498671191768705208668437869256499873724785507524073783734150864190361423052866248203926143987365757416997475057393330138854414615170048775329684638530834016678567312575391404369464200722357302036231748987412013398956514854047095165091683052567841010870384854330771181958622277014705692459660102822984836707482737031256865851086716098012253631648971678551920485897109616148064255574051526729980029071262999287086892411364392020580619282145609641981214459279041687630479115477016403862663303763678988268848053200519580136309411443633143075472380334016097720497299601125561836114232967551733086255890419770232364058425272728315061971893372793054328035109249071351579663348974010730011982867451611064689956880331121858273957069351687936879874580782437433576141345531057384007819437696461885572280764856541948396885384154432504962367028222417675911238940974129163957444402130246596470249366443352494029260570196348945462985458016740789644184205585904315671588893982826859035251281134243569228072420499544717681334498519441025036759041722049153475803210601920645789593291569275607222762297709911019108108106126731736109987348125624842112345580531963163207539121387576761379135372481830882942576633547830471596560818129884582446137080843690537537845931824472619754420213635059051115492053722724187336335082045363281005688228998695213248116981166486023225317284395774279342660595243840567252973799282345632560491456043582080512166692531768647060566900102809523743030222264168779160167728600521933385556661386551867596991346763458437797415834979447745873560482426851289352473948515535981703616883652988221703563492268982509931482057676150183582493169887250171081566892279687867511745512847861889867755627558096006190519631679105655703299520497420499434757900091954754262292214131785942885839640943812096632183266544901789342596596491732889319449710495335386290961498135383898403769246126619502298558671155624492312388975846717023792885298523855875872317561938357210625693511604621957258890728894264595679049822198319887698768776181287598794722374368658563818548683441434045944551467025006404561014072133844653748974239517569879837154100897398688620988090461626032048458265230191871039086011991864822720567111551951085293414372020241571646429179222210230863700231587563893324201879520685632408791576295514385369271473543384291755686457322100031473582881619327234417916054268565868843945675027665906224411131322853313075670594339216762757422472032162621582858358480804281183149175721545630215134291934894530147889470967719336886424543754318900046083997433795703143044174097340597313945786784463295300602841047335250050492821165788532024940371029790150024334233015651041821910201692784115095272084166016010798518750580156215111282236879570937029919446500049616579681410091770805435934623387864671934650081466977933664045301224614154785463098487520413262341268929323107370366008210999945946556080450198632814108895686307248480818763011328910272432792076129419851083180250166889784076245013607448263278403398002454095709476920237474250694479111315571490766310975730241749969910209784113851085391003378975924682277251959007891796318207330718381065360558063970039733672646279662907171417563366811192336850981691350633813908533662666115510225979727247435182959418180333281826383753341575295533100875216778203998469047813392543135007903868295682737377648102738670190590781338968546525942647351507583977026508925973718103382296375182558701088812512881382951374570440415744243779110400310577241292954241465804547361458277747514031074716571287014912034570489689679334870529838299559609697249342930702255987745741815725927138519870509173696761485337199641575955722360963219788739604750501734108025955320594210806445171502557952569626705276593570738152843518968325553135404963705635920186663972368516963339114878389917312509237013940497864788223576672204420479483607892725234851530337307186285877843309165694416723441754313330993158066963847756580878540611771022089599427897702160601636960010552866770838532008158749417136866160638336400115782686862681070899838367157943287688325283519609605770516268395169056547640460953082583140626125294319182359761070422210339076438338652818106621061239791113892299930700046800679029074043684348796641903180859606961969480297479214930738930511937094720142247155124803673188527470559607324492112113110943764853059540807152778127335327276947754692927987727271015098654151119795074586793135241632348285419108312767211806037097498940103683993839628661011429017567856565115697126884963712429820034195376691473953988989754780475938770072677473465105668908216477966564914094713341512024575388240518434628416477570866123279093338333764348667571807034548940933457908962213066382144542399039566355608382364865232996433422020595465414026217994672872529069611127644499546996356199936908263452842549796337730614713656698812143405529489517695441141568971878054272941593883175093740513188414499792396361300121140938084763612379520421510874595670309168136638151088875436465953780747498802472286827233346856385827791014098210322281832082625085779853567396123266973969382105349809776354763584597839912752411709527525766775601447092728908942059747844114337264213805918128140399909303060075481240370981969649064529286719988655958482327539839943514913409695486855441562472413890036723882016954014320903917486863623188522524693579683220826814789947055822142672932955258778245069140223131434166353778756277255407957297495750373036984979027915134360502201645230554697254410211740256959706157719106736230865065487362698026247410661005620763016743112280934714503623279627134886781285391784329221227001078362062682509274722689956030424225545637361633160917941330124544726088950842592689759444784714779987836676344888426572224608964959811003947395977446722943447681553985205401863984029879344046621774088243834859425759362987582044851454668690214010601768670721512703421603087089161764696517749572527711095502266309935750632865382866446871403529912773420823318764665220632989740953465527999465332967903396359348560945858326835680150466663597885415042271781004270625774730639767886198171625566858250983652785949462399250564802283057169480161587594066599405106949121725487351261286606373723766923307316582802994785913036050886027487293888361867623018859880892005800645515621307117436450917207871038767958879127476336198838179991110476589515731040637961174556685696238803698167470965757264269086243483945202854003255594772462306100169609476609960330275634714015354829962110241131506718691506376331543508747582801241640332926645497178079756960419412644993048760991111675381015633178658304028481633440895653772375821952189812697044409634615892618054610593127054469453468743587279338617508974727220864762007147709995486667988883312166339157784487439245841206787826690999119906642179114240768844671783758412448895138385519236293330356912654489106495676608752550795058159858455277284883347618094228176878226126451095716016975209912052405727942790409043887805818789514853790442464612881182568415121368258895839936839333632037519303806079010783834430496501670769696175239910526779865924372119377790136342609765343565946905931485344192849251363470069336925449292584548233619139584247445121475857235456226432938172608417297726111612673762780643852276387432693562767343820375730070565882886368940873988927043621363891364524645272028077710421523665609894143075076499140766686729504684943299193567337958366743092296350897011872868525799536297882275640028457854448880727484216457158837900213233010531005107208557374015388004777074127133049849450066399757073061310999533471671936063880601003778809451835657576254502974214919943942133173280899811861764491142751001603304004020761929822769021903374005340529737055594492958626585282402655123172481104428233407562670782694799044358773489606796522012253917583664193385013674845857411476012393191636177578884483117625758142922482172273219411718239995410557798433194796631803804773690065548785000558578208334792466958263567745017624364719773240877521377585576160814600188323134595076161599320465612910666011350643846478553067636624142888240411585097642334366159899301480529851345883689016124336406732700422433735317505287896236840583560576631443236360811115761341623869639560317235141535885393368159726271203076529908009788069759886456020560360703772093199137386930844546386761640862617664082577612982152969676635822021580296170629629901646438973317171732873752654053931850763351526775629131985299130912255879555732551508072819497298036533197216853202395924100966727565085828903049950526682121409389029791504586588714976267662828444520295726539885175871979730967752677549150110660081629623894114052595766913590102973736108981501394625295871497326115162613281060736781921513027026364805053144326770534732792846720875554965846528243813679250983902957594949964834933053806494378024300371983382800923602390537538072597162493892461715823552857962281363859731924640711260687515775296002743297503170961364850071897494684381857031906831021293370579953283546995144425956562245409314419501785452431444303419817005752590334546164909663858711479358941405330357772462218588345512995307276290687747640946161575706268779014125092283983244369947178545040102869781286822222861681015919904762155887496505299202225274637068387358483656930986354328391733339458802014816357576917806128251309966233168510489758597019202453910187843404637219068437552374216333356375720142456616966641482350289630266110935822873285506232076378575763678556766910791148822535986622026343942800344248849157031447177960148398583651864826329231118441750708113190936004475708348916031923713717700383987334241028287179892605275862893310384433945903637405899927446174983076507777501105162841208705490946539657739390095329787913168475688612055055767026493407281255366166748410309327315855666123351855671757316618924949998779818540244182248642965355936093480795990900442775869414797820633554809439816021574320792440976244402096724802340995463066954787414876093554263955625683437144925871341713468476222209327887369862415189931835504440861340861974279131753775573998166548961555043599724965877478670521328821467215462754348190652000021178397412188425211266961365340633593314035738714792657305435266839947499422195044185716591932456200740048725344436239360771563786048165636187592736253226473675061752382876447059887657748796151782837587975309150258004839882045051781051283816080300489193708493020429791174883101214838739160909471977882333279273585112160415507752290512834217555007025450452364123553773578188520636658331791164703620251334515791887393589944742335771671127352592400141642836180337044765273853690437395958310332063103668959804951918690647579897649114944422392918294973159489393619905414096968582375957248701968940453248960949381011220086937077578061775216897078815828060283512053051963747871805018641745907677158069930407192405473529985354620102867925313165140150434737797519174994106046886941167060878600267357705715921170024785653992234308048777167045798401072206910871956231915166340837932395285383839165703425893668206703477519426390813754278664938164573388472986339501251079590624777654701683008401159201835736652615225834730783015369350098655942172740186009470438887030252881103604797035264768988737156933159374424676958781592865414105415550401687831920115721531206705267199868594781903166686740402233383375342566644132467515840614499528177427036363323120033661497766412652120383130517047219942177382341729571080181050279103853485109861706188277632345154881832992224621150575599256359504507466506544568578158112528982200518024845251696986240820897728439230266817719002446537367000279272932637927362476565371677695348683001132238160696643066285754977979549227288762760539997602566017044306122051264264983995790758426548822885209183784996383778847542227999970698731246545767870591598674193481581629344765391989781122345019353156889468113437212925150532783210338866733381352206022824502560958292996802206741185301821593540645957730572149699685161342161967588547767019486961159815012183813530770401992100066450795087910999847049769449248898668571990863978782071980959935262165987703272710415401245301760088956119064924288599455394423443059304920186815150477308106282327935727788216339742206297647925414182717134887158936511188385633003029732794306028782837331745652432454821418831327942703423162634695235869884179649370059226737214020508413510225017718822845340024516866517752553083102134777783615409795995111494330965976467620773175920468391552846770002463879101188646397218355295418643529662919192574152221550746365832303044749221088564469724096381519484019112953003938113830257825370238031552288335817295980320562111533084322241869749879258999474929544669948336457534275582305034406854438003633341577899772234955895612181288704541617353377953045720594039009093926095505457108089842206911494651871669936308444189648134260217497610142666228919414498208362184839548402861117769406053794303163344569807068783982890529716873644546098543473270224916013382401279422171643844782687967067877049568398653966282972497457956590273934197904182529192697632945798537392967892716852561879215592676153950373806009871794422629169291402151956190472206563904865745240378722741802945068562474159141743065004867508662614969291444827043849679423535992187943607170841104631578523236661999327911210115705516299392094840542921154786541273578323524866153098646199566538141010757426113307025889930897283838059824670009918419510564219327062018620091988951372707520464009201011378862374249134318279974109932228248464366070817909377357788678866884950277491173920247972574627336401286250738160324846988852284347716953378456156813804509498120357045603479501575432646161091774948109282442155171685167812206118101333155246925110388011695243551698274172197405946544870273276514857078548899414003601700307911188840762973844562319240483413742607923178625493319867723456667487847524790604775471783102624979641426549865007457642748980825326991459623031416288168123746964440224535442719100435607064806031321507986990457257956156546844155288287797478015541733885929966214385143211701280936447343258807424828441247771109935135915894554325293827074175007311271879352631159554377584886279433156141851630050377780313786943120013043535002962989391578028475508799367663281054262585636649599615008769949451852909819860470695323641370933613790441911983097697678888574246867192057694196699737920869255847921068601866975070866236406207606949262036258262946805635107384161267285865514325528324038410314057881410456256586841435323266633757664680850122222082921028924626089687076121072800385023532398470749734801923373696519568603601364079899201455472767045379975172717131796830756526712404771143555264137064159450193004684586059684419587200283069342714792112500979336956477870559931922987049677224699720036760845583481624224029710672968408166866160218751271557476688820097624890499929386139185707726245038909470102149472581102358129439737034294123168943968702517210138226876673000087373421448388598489981433221814506829593321444194050634673125376591120457861242901434966203619191373197559155426480870266259313789023558584247493027473591246243133813976562626760912152724852064384627741377610892642946718752124163584252562384806821279845904325027528181297392408265439641151352931240421468563924974762062023513426717636713561218482088278693726826114318204309770031593931824565460311940229296530945271793860847038001901396453084309493045868398579994073701738805364323398455438925311508493994416053727239938897871181918557451024140477575423484228622162243062487338621317927661818266534424154963365698388801679747343745452082804498171907648481037518083320390758272428629968711657542477139758797949738078747920271782825162678965927529424913371949407485358246679610745598974961931487508682502127490489707908438578846204954165410352131850474065357200098808496012297894401002170317624360824027115145731952612472925704931134291407908367795111190220899744005460444369477072480783573886745156322812325578659393924557661637705676280318599622882073682206408318134225299365195716700911576300037352814099051998688856769514912209482524392586499516495751042520922974794203624900953329068000140982013696665199406475831242826766332717502625137288559388202328681111534684819326882624635636913765651496560671135849100238333156910179218243905987748939694353927025870420041184296595170615277517425445221505367588308631412753315759965134597827592859837941314169407085275701150285124470402802485513847689058345648850475331944044871077356198590839554120014839682352443462435420333705180527183842271257230597277463966216280529184610552845999712681753507124858855017409729918146769021638558430513403713026670417438722393479021709090689139776846319589432567791076147516498324582509154479007490283034790682580174326889180432364059873002846984734539680216436798607293215779745818841645972663109676984872490633708383177223728697909769306611645271287047571343247143582302728388963107721770742483683753519031461395699310761962246126268093765188642907088615985939806362049583960039062937201871060981118888392197726611923282299610907724624560374986888456328657188528291319097565891100371444199043566088301554310832688344874347121029898584727493682919541685338859806089428929121102480109364422555401830105234901395680601724555636295687232884945645944346971402730596267905977808887947795980870365787752959955481288191249771263364739695551026376903874996936433124550870919231533067287326583705501443911809110278610948217948031071995367256027387018954708879397080264284943340414575026630134504454591736102338424352068176693444153249637103184938529802137706845482196192077360224992724943996593069913328136166416605601396895120159329615410227419989643663836684220622860122187512301923744708095083655588106065552066987915463565852405017745078836408892340230991074581212729699683843615248502562327460926802361987633403291795256146907718473242017160518470900644045701543334864266267121128676048595335430921838454795653836386555634636786349386300531470574703448554780067164482520654083276137285021290677188366415951040417119847154790266300547519755861775375987189827485981866819468156489923895548392806795672154559759334686241369147479838674923956667856260498454414847107184115741326417674274579529710125731587876801321833709596835739221587059713118629955974331978979008362568613124529761504003796157130747302589500613140075194816833084109155635424298632316440163965115107305745379689435604136760069403506876538679792861064993303966834674855563870871336534131363425184234345795901504859881565943479541292530042115555767871338372948075792463468854571996610285693865478639587610103790811824898436856400207021115857841298951833504024306679088666514701908231441947313995471110974510070650623610732676085696885014740111966259809038423397590173100057384846351545874424399803523013424023946582339960266088621671368199391404918419712530849978246453327482741120274972697113548089618758609599406202226617854997496853038960147231154655446582501120136362373373778968568894169761210972416741154225954145358099205056408572343286559687337123070022185965373152839895913748236580650054889599090458499521531134183325667028153479089907110844172923955147421730640907528346173500149865158895202385783391080136402860879433366646987978511222609187082172725436638994143135438374937712662179742799770912462762242960065934030162767059532172025375525831380049910020937719954468675226734255846633754028299251990019902336996868849463552159701928224777622084106429214265393460090435398818053174451661947115556188560579869622148039876550210661441231918207472116584062940977206344813942856437074838763838831952486294104339607080428015778545341628045626043081414255394133457516131127558228367026699341226448871024350209743593029166709358928242585448958463907802525286194575698145467998780080136013205257495772338421939719403360816929978225476172219789038742532234400143460488246318059914195184924240389984980675488891822997728968770613384149384898205852156564153000936739841876891324127136765050486842854375374331229390317024880409988908847496947449523326372736116744135433397616446297443922601016990529363849860660906961182619601768405577438338688870874015076668670713854528117729079412562041175081667616863135930322948405717346005342914174975007515518228999308080022870956329831748925264713356118408544841446926982329442824307277139581010820798071629294484071928498937012768461153209316771585831207522933043350560815874790555424088228931559113473659743179344934284527267817768630626138628100889603090496924568315380541512639285590061073148644852473989417237677946752558222787910597272658136549793756159442477872751028477245289017658654224883928672612015340964089876165157913046914104332672248228893851042484318977118926744702778906460418746418520962557128627988524959204557954839348188131813892498945087081193324779522982003204753525390022805987282354432193308924040196539590892460777059944911066973547664907412151441640639656311240869406133979722438247704540186264119236239495899163392001479256241302556806011441327462226795008745465935136499367768511598291149083656049467580490917693320002608577700711089260916385522007443277786915103550859837521188831671597933247526750873875254313090929764007046216226550491063603038818281808082579027460696830131448590252984577910901537093101979606944792081525567464464462804530432323917237504728548148247741943453563300601107587795253093134297474935726345871162920805527193153634726282304289461549652216162934335132695264270184684519959361681945265470504879426107814042455503646073941935070554561491564192175574136016823647717835584099746818209749360185273560694392656968372757159793733506632481891826528447369963697292120887794667282226673795509176932987342248624720884629620102662128752480873132277372799466718094595997394759585939238154907250914049947152378855633573090443470470953927291342146560561293270607157941685856355889786089316730341461435780454011074779118294509734726813668732943439219558634835218842293364664051884818389376913380359567201050865373322925037043396941742173177835165302814900808794804382873553602315580754341419809381876080164013458987808988580265298059322511463879628092873024968234286718966780995408804671239027683544095216460733639115691521176034169094643802684423576516294485162884670493448392575700161902783708540058796735001200120962643887026903245549604416114768619753063379247980408615745394130226559778952224995738449037919171250072981088670897214742602884659927932633694769587701127431596902134865989985393586629429636545830427196286168351430271226451279937341319610678824791671209926291827145386844066933892155507808078886509004550051086834731172688145151069640984295510857655463878618480874728952227451654839009643267172360629191783211406004030448500587678775833611339905578257831180287551509882822057153173750426744108991590937243395474120885814382633334234108220137071556317192293616374061738843530500889252305780747455984479305663104668507935628006621273610911144582143254184153368488475682348883870850026617538005029277341569968769350570683961933882610891436566152342132576982655501583466402696092989345570120156978249832552872274006628695282909821208435459587261427982449510043342934698862582201570588492785075473154217874969214619730247504879401750256417583139496506678700934080437989321112239058464969047920826430312408407255885834235072199940807502091776781678591797559586291616715108145844756102725210854561243976460352569952825654537599278052774646962465713540775689959495946283082424389037467298511863924985490831150626902936115847227337402521975998152390359659828215371262176125435341314822294033145089924650211628401738939712288951006147308231536390950660441811529671817843658375329032075869151729758798997324420347519243418119339163002607956841921712253839129118590339224568121016467062359316441877469736875586938094737716524731134778366244823124471171662919716333472393096175587191296969204894224094794452585233221891587347699833232764073864517525009669806531987744793334729213367440597144003290159875035940690489241982094624379973148168865606165705873500188910559267512474055390796485178653033307842974117815479092967702939879980350144614598134599505016919249636319909319747216067705068271724538561036267875101939256500266616119653886613362011348713985517510344415849619144812695449036940679617790554453810382098808616146495218338263612388180807283846828479762634768662859114888593182623807922107984169693739239438183351304666859167616544818361159089533728761840561202013981535676684362165096335407344211653060481401528350998136454466791101117825640412337879850726163501841084800457420343181899429586996581677254822888518652381792085381868605001770416236657521965452518591850504093345678375221420281958750096009713459178077838212851943278512447407185787774122521075511007049009614998052061546028688279712947814135642231666475887928301956605268152127962530105993867076807808659516831968032144860400576210191134037295773352000683310788747055269459790017701154827771118886645349119081062807544537975753838764115951032597707513708452888443126357427139719087361825669380655957246951219018276644827139722902556855518960167696890660083276191319328497633651417103539269517268312797275373510363129585561776272988779819592273850162303663917425101018708160576986180930541295438170377046940921794252993453617566261153526438652010847967333960376696514088218373250051363623071513280196277529425957837052370409607865380131166303139573099151981688491363135458688981921016636819684816474166754977288265509936478243856127896974732425358326864223107806523172973174880138578478527842127082722422254542538245270489186171587105469615568160897678396053455898220621849429306529336013687631212239125553174189155023906681351769885907782453844224201049558635617690113962184627803906339421978813884463914624215981239490306105553943702981329738752274534814401990255266467243710366338797597821968183125434751052999774012296545422341143450025626401271177630595618176310374019182359949023111008488105731857067869718517296689198115333099833417565195605792922619884881388064564874779450236573697837730644037761399349361472400965123971500491516913707368842635879879574662203339502239961851618079829380201527620259057992354329761181448130474300068071037102332449753648438611207322495033048169760235320386241318404913097753913546856965095928104851317780567994664628586275049418126943407929272463175938095866690290052826933820609785464474295859005942339972916746470026583326406516709581547621732726621646192942698830545377428786437530301968565584382883157725945102515650721860550014996428361239471209884306192031636890247161808721989723198103145802395168575387250505720439385597082200503099358535923919739060826507168794571022011194344299510922340819351619485849591155329523204697489959586724648119760881968082389420777276199734978541822218843391652683019627590384277139579421424069780023928140308397250629800483108106159037368565751436513483122073526044732593798752008769265754444245982052465499335623752914313683831975513756146493585670391472267403852840819853449323132101206835538703197002901420181249448018637652085916187189164743798234684483498251735130764327683650455222441404096680953396151260928325490856312125514009022357803766069836188778640356349692417345492787841188265969763109831996284663529912962806726076201198876425861413128361043777374766895525079066769396606603187266862285719569431487772205527217743922320720275672365819806349450235037949955500923041402498603635192357317573981519069024463590925890509561754815059303000292761810436618284257687351708488436635833130985551759390337416136951387568937349940750002093207129286116902263667328397356624900756374586965465892617838014157674719924241757585248287288991556502700984091521369820281590402130053767934583490586631411334301399487011067065008585424709683146863256529261596615419625255210909541443596946263439944728919069372178999996495492760550804160594073820242443541017921181900753612311358233105539246667788829921013543753733268478471257562274815811682924959618797788146241116608397190703669337577584130765588212413712573902581418059572953364297160449761642135100251965062340259288351894961869233744168082008813256480254575165498816494520518061935751427902299677408637299225260051486492510049887036057494016642287051881221128348052548531923466509064976314511632832906632229676162348259180555693493378836563588508543313014304209703167989346739571711131541460874231481884550596007321950405767039090871298710180163747572968041735623668240482839848584526251334211705652931484002269892190545193467004370818456278003845353345604408480786022412157196760317961696029449320266150924869579291314053716058212795016124856598592405258011137001813057106121979732967823355519271542876809663347062404939196008623634159012476090903418543808869971768577856170506251541966046191834005366100919638885578512392484571292252707062202474597454734234309040332527397791498092799557222040716336974812875849737623367754552708952493855012194995363400090206215598821744582379551939663902883538052699687563911818917530326941284472534717285584278173539311812838566554404286603617564338311115024108514109098116031095117096288096817991716747954399593293955738351982077701671696409579783050293849136961671687703447862454987944878967120151812024176750044330901010814939660798839042168729804611563037940004577197796081411854451964378264801382482081913838630104330815945261962903372277520917610108850149596684369639053557568355852579803830142068843524750873170531995722603146842143529250753479125556362359237028647035770103495235584763567940613082667920390684162468359243957164455823622127209076048181317254339794192196706822981947571045221650306811812490994256080550082543058456107918750271438927063422606545295558850562701560204321393895567427593856357910043016960852128650389121711065000691035194074039112912604859532679962105536997121258406639116073439188278282044094783207313347427709828774430843979468503292404553487239472616518177890355041198152827116126882319789743731881662862768547627946778326678709061056311083908568617730580406526376217521649751901332104058078824065962773587094278234441059778529173842130386505015322355503448296922109214691035642699344645533161174572930804079558060611404187633097825143017314102130147732279297818888807182069212256206174223039551362608858899192355145581759127472291331855432764264596472726952671575496109687074313453096909875366913959897037877860879191169561665172677522371468803686975097869139138482515389184041175350793021720987851574165501822492865860359923431503381014275960627768106716569946943353827329758660769388736745715608506462492123273033788616548519527732748476577118173599500512083708574348846877374062201724082387140149139936626396088803314884924214247277759269678765561344649951333160152462765833247041166498594411445698820423100124297280928751270994379556428474808128912634496262279677180820293075802717253369518082683756148306571510996608524246991009237241859364991664601867047096136680078948955957414996135499943764556564342347808689648725779640067375832211135081564356265140234492689811445862044831130445104849509955888780605313535476690502936583764653806774454220796128276592113054882259053251992614648825950151820485864405723133810037724523216542758192162431325839454445981907514540760205788869341480017939028968927385033101512919180410199964585153196449490846023613157390440380465184602440903191042845321034469291774746765442540467280558432344231195372368843183712563660879198236324013551717977640585356111493152797933984773793697556259023400384204666244311469390175776575619666378566179391035172170928333320421146235137326365979525080214514983588417343016894565086889569455422032580428371046104951468189491644140123587207653342240833046668097125873600123917166669258413629307413000775827713296507690449315527769631473680570668436776699552228490606611892202943917449468006175163268647428850243101668360653277671550223493069556402288034200898507084633700957925342307333614414641666233693234653292931816507700465739654648812894290877612088937182847219292749764406052629871470694301603187842781962603080299713142697337532828232067050030851083569417358101307254640873056035573092316154257854475433972724275662604787251388098336929010678679890089351617847045231781554856530441206121003030675468228429957922546756868655166045723460452538282643704522961407661575986368741311642157886484764322226333161950738243726279541228489044949575828415967779168777262234407359724605102580704914722867936757117578346763197638639325681477762263524180311546654416450625819994563120135421567758186601323611856770866048432234715936652497354294787351370647105925899890515265249890775622125915905511198394603198118788587850551601788845034065688860429654435600841753762665871000084453921311290312241678098272849547720530514929011617674594365076376593777550093273713908072244795320441644343678929452600693422933337922696431059085661660531907589003476462042403340938733429316190684216318263898298681780317065343143907155757435035734022753451485900120751823734890412841949978085238083351534835901910267103422798473289193078242241652928493320023880750701611457416711907290299048425790624211514221528848288438538221268434696634562258109009889377757251243724235247356232975264256116400255090397041394623401150727629828386916705662424644971130418645152073999374113748872566371218889995468685601647899976880392960448398311609976447377904411495759059023458179893506717934211037420551289564811415711552287996574676285843279880525559585811690334561967388168279664695564557312710044593976439585443515217731936593839767464982174264848815034156921851616299097867007117893885876787208067327610001547876952722639675271408124038152939296099315591351088640376171433273834413206605848345902015163680457872551680839383249094062311149535949786471250389184972797769659352339748089903708325011586510858744487941345118694911684952890711496920507012366608933977313840253617795664028459993196057671203417287728184641740583366104561200831581803171646506357570786051389208861604515476903462545755506649563893179822762715851722317809638781132856996957885853798332736446993768300614354563422920111014076504569457222986054413293637533323560115772241155108890153482750778532929610859528114570183312428716593011197830278842042356056744679554371994686287088723521382463417058518558414493314660048569551642627618779566991254121721389342904567124254590796936672621013825670813702085429508185219456346622451192175246929765568767795067060975858974336814597773161157668007524204051797941581929127681131352445462900682081024095568575407116313781870597151088349333469826642523578348720563544980438334208956560722885660006211295277622441702193110286289593507308335441284672028225802546010735223997782036329138622188012940602367029956636976995601016564694915037618297114394754329362652651701628827871751461069237598300440349374891429124692085946455006253982372608639697234215264434394452186196044592516003287809335395264156292202637694620877490468548220560483956422172429231727848126361917995549275175623826046131011953496771026342466791817990421711145198538942715115095266317154794675762061639697624024623876675701499453888984823817626668108206729571259127138960074804983763216841737070402937984017257125095850552972725421590399488840181715565866764846041627424733638296293617706903608213813743620777689095566364150737961662354584723925335697376430610418809710893182556123740550796777954879605058341889457105523473351496113683524800688505250211151868452854483465085089128915137935622622131343982162784075631518994744997197903835786980006535036214879885819070734774966024837431874661088714904329417260032617897703940730951528619267017902913531049964613164990362753723629636595678490816479748234792413528571427811545135883827830119763607934186127539425646600505657970223816486591876264692357085018655005618374772498144073914876802324443842495275244248515718525983099337547294624505407147030212114735002539287188447415525166160812384621737668533470108211383863548377534070245504400931124402392144321696370356391950146121888071360799628520006412216850608171668304271451482284331889149459611957727480641147035223060622769655207336722367594749708027836366240247089724575558077916193229590577600958578157428784011036611455931486012481965271337095668072043210478492551811635792266124828170029280297626970713120527723318621999104152927311817144258915309274227203815039870248752478432381389407147394392320006729271768762171532592144788316137077257793675301612181144868893190828295243856483366459850731597722790029574629263135377025671163389703428652605498610099152546756054612190011743951441598815131210207829618638205389500727124323251030220968788876132537381785257877846610919156887938089914306286342175231508626795053261965502784066751300258676781888796030246327017476320567333490032503423692952447766068240795662563352527449786664251190404451629020745484773817916068464703912931146032382424685032747512206188160749822760809370271168668626337587529164415797868561023550980050165118487573622761647381510074729042835986268715942177056280829358347759012396724739623530077666355207597074253533897675967846372666193725549255810011455466101578329719576370498648828717476691682553418766048107386670470222458901756012746480996862801630708905645297084311947061754142044246654683251065724165560859175347688510350870237324853476154082382689655066160508228332899244378625871203613003738175187683388543595420570794770662312906385230913452504572708515102318426195825353429058456525530833450058265984172923012302618452183976242164179802428946384174216551232385181598652126196092797197577718407169452509128906861931871295967053774822590323230052752468142495561112179492901583244522977696571960389784381196115120379290397201756775892392272043638788838406965760770013653582501897176450979340808432806641488009325872271155706794863877754290680792999443805237533909291735791881902941766483197182448843080293377942009750322119862456657093380514774312851308383797601863612766184175580543996835703535483823136466622876263171297136639290421580966717359451424223425239997018738924111361987887435508680947189805489770948637139751380917131106810278906012641402644789017960276430668779939953004625261152682917524962386192353727305664984240619480622305255978380487678423726831179108740997230194628452433585458989739914169869949106959014320099380429987518283780017147552574292439733114890367809803864938194681361994116525054789835847278832901274686958766921040879853946659081339955564812449435674368771863752276810831209533049441992579476009737880980963298095408149499469048164605258581514774844961790877891118003541917323458237154004840445454123362728115809484463690749840929718208869825644401502821273874364714745423803531478890601233124132456092281682459207092709051773147850846969764508369735338218362849646525794727224814923384116847009288201080052071421948570486962521726508233709192855532335340128044665380230581080079095224766002453698205465109616187448200925667169813645510526671088931144400692318074685493839391490861087882648005615418834255834226498833761988150526995544095419608125397481752986961018467248074091774826537734456367446040850745225044209377247154124262967931369960039638950377867326175843618864636262222588450327815633714440631450534379631880836107689633564642611400294514159630825988467816463812002845523558042951059394061178837160847625162760183862499465607925940400079510985282772494343732630561848211244709772803642686335157776399635392516929552011607574643286398506615176842040132959443977007393139945323074269817080878848574566761355365464339056252160556253225551756377522352957346412261930741418011459878980123026749287294641143561425583446494635677741966537052329892274883325092866823102969021913489624724384630324352018918055738812845716893309975557680716699349808249451221209235036949468919329988160148383549958680253708157324703988336448925726079053860240994932611758454919135008658499715620574497997089150949601668189566431846964714170171656133361251168000220497493787856477471242272425699732916766825689919176947656835655928654667071133514676187449652394636752424425552044946535732924730789897496533892783364855671544829550275653328885332354099468989534653407093270005975021045345385478864260331893701750823644110406950649519359225139469350680947456099806311704198190957648740084844407533814035878032901150823927586904433320535353901544356878671144381397101762705167791337186976478079920615661215550954349967372470019867246647971808288397101335848919319979699801259000992690994461260148345350018977871591385887769387271715551982418472240352194766317384477919345784142748068497671919085794427615708179687599160729186488765831920232794544867711079043370018940805201517888178581104231626382492291473793976114200319845619358404607335632112658116656650588515433561665416658187273333597255658975505321442418263733082003254099907279767094612524707777470863452247867596376893319085990821989066371674588415786032347077268728772857378602286537898188694332377290225507409023675594709849479636375352035836185263888201613954418322532457580465490842859433677857518995989572248775996572189312796145662115976273659035041859278954331748721325481652195494899121697697447467836266056635404974426833007244237118677055409402007733686262377213863169361350377196340574041414121339027157715284586467316553755926427009473458258439740637164890379825175130750502482752248125187934639780516440163631317212409169333042862601448459379353981940420520432979756567221526859058740630394636845422762711788503272321348846615938444559510730578648202993994182599911553766035275555753697428992247535876491825791024432105242431815888524848762336243832312847551780364980467245860901238142650065591647387829252767008326389292814487875550461056798876591990049544275106691289849228210819366732506956324533469355993858763148384058351241351655580456246252438717323358991693713712824786687530267744697113869156003845602916161244693000293303045440572695274897857204386993670651542179891980104643240889593818396393614138604252343191132954984441473905103437795272877081720295428193788647873526578032826033896737286614288326609149083841965042485833883320468935692470292541403746751392318092372278225126166275740575408617198817359310596159956315387603187714622428422473446303097657817226998502535170378685671378834039218406198533747145002536587809100080335258994935929206132390437698063745430032874403293028157268854138059957962689634825625772804184016448066055328037623620466511227688021969364602861033342346304772167925118203391409737974264285014532194639742334342919133509878748121418955122485011327100855325335632589965365666264137492878374387357030939731026585239169921099246628201209061977547148501848591611739948771828879416645118635832696924716738173842438819858179036945625056518149282473762435836091546036499119670140779304399929658204672613401422036323761707379972350395767708862675073859850328917045446461629185976543716532403683524721128593744051043620815367041303578202485654363212393120267397390724040557223667483706693831280792691531351689951932407731566701742533609130460266513025029836307823966026303109614291773288242730011686301181261784847221245445996822056761761515232227997320402114828737448504871103298478950406067320366331829445607747701718936379646808971213740758357446534505665984998692480706020772954123832593370101337508143555986564239457658261700821883495889053592523736124081889415233501504614896513634626570065908487232125752480843873742872354009481443399320695460606220817748948256544062885014472804206326090087126512191417826829802287065266580507231224117322807698832584006290244016976283955681815804147693282356113193086912702529430584597130707356855066987988973381128736931228435719350573707934551546421044170537101182346984566099696666164404183694386447986177068715448060556921343313477078714392412656790034368647462939520824181772213864879577435832850786711918906891920971525560180880201622804968303453665624345182254587388121749522861997060312412560821929690542829033700324300807985436029109321666965987334591635936133030120328315288597278682599679446198643908759617638268075713064528005192549199930385894834894196190445210191068558504074919656979807704719926984810157400413989983979466114807758309926798459659790322594721976623947776758561589421113378069330909406620148903112194371925615362611655789293628917483988948562147821432351754284312252810777232900973105172347302516355376130941820408170266651240432748057397754901214961168652495502873563929402763468677978791228276375120557298415333190139044301622312562695088790031055697761496941199582029655084777169254053651613450196614227304597704673639109790585526987928810909916762620737434253087549600939159107211024196560427171138775506121621361789174500267977576377650555760896182433010458334862832980723926817183164952341983907133010886044148188321787065957461069767076805541874399160154563592549815136104013111112170275756157206212699864453639343763098624391999649708334985874163385168454002304344263837957102402993046808580155136606047157173768111496317086356606607733131822675261086687567984936831426825625713792351474872510730582669907296977388513653087106888702381102903144963110536748772895679837106971876678106254504663849996937707840106991805129898510460439836374036281998872911899412368007169101109811554759956627683617612398328527543043351953095934803702330997128867902250049659566965147940900380602134652424261706337196113101421829535766241696639489425207559207673014917606699198060852177216303558994851477514131330213403903165728420121763868308930798590981448214507363388979131880155969715583666056851262784995635922574947130464646454521404925872497539343810382613599179356149882241534855573636976870166884538042347983187965244452076827026251750608239853297648943233801827719718472175995128167037063139249623261264537686291105387234410606773911894408828685043546284789552583762110445019015583185261917637303569677388444898286289152866294044376957219204096475320908266445376925422916060932249095748513425903463286294374775125169573797880163889717477009079784508865408173560639115071275961279107846235350450547368661360233059684678426574428016570105586533122555563806277652889390598549752851131304209686249221951395427050804040398483296691008503376956380509794855115267625355825304726384308340682344063229929713510730475075499436264598303813333679543644164881933427750479404041359671607378160239371555476602830083947957501257327382414964853472559230470514889753507048429210603690754281573529678852445813637791053466951485779896533265496664289327777721175179056239217856534032944519353897240829014642339437711564019331089502055016567322779350028859323251641295973395857436671695806229835652011097705828442444498371502656280931579537442469971489472119845467933669012150354865873977990355909152433556165591319802998337706137754934855256091834091702692372873597314445289240681195722935127538105699703286951485352773760769161090600188250762629701134960625847973214348098597604666413204517244177751163473349697554327172753465774158104983758069147272862993017259476089020007565402754877578198235643796616432223985618949222004447784841253853016435294128844273053811354309608267413744752733912405043402470524216048609324075046491874923889251646386833870878000618587267543098794368490975796922662671429796051629607018924828273161375181257834159414583851491380935616776792059948697926125224160631978787253758933328348573037729902405027800549526521127563377688183190909227497572467177464400450198492913926533028930844029762532660307623948789438366287996661993632431811432022849880660138626521920012453358740845539399453081071019253892118717034449380665698782312956195253904537410857518788945520041526034894802108328680669269001173182102912005213227114196114937255082735837231346416683927114810287104821879705226781145462685601916740347820284963996042661919511658417442626240803886407216440776404706564550863472138681215809324707029919333635546595089255768893392189025262941775713732385547263156760172721464654506013172513793486929803427052546761654596465149264755595907461323384703101973125713387485311821736600786116452701143420349888490245939931294192057298162809565818464876022795145361218135863730315287663921303719832737283095497969765819598465334434212173092459709713266776419916850689513416342008869001338357102358856040432160593393145461634159089548410188810840799609615143280456150831914369949282192538515909672771494116674036379699732084470535639431081581465252585516975930845150993887448365396023636556122651062586674590721982564999648277589062241295299601201469248905923369627004109679591532734564230111459927167481570696172896121397655194282058165825006768331043069755133345870931135287256327278702119593992375992467141035016232076872829919543774645689602753128484198024173606536832758948380542986422216541523675278696515778170784576276894160180063167204514575998524782931075456983769333889819270452428305873011806199008263162269102866641131030754769014464737452236788828034037016528973643072268378205409387074587924200410903963852231624070904007843258550875158004624730528251207799422541415249647694029562364838904798985196348542655437744279413053318036545461275532738368954471485310789708176447061342713594511770276003927440835444842577285731248959272279982644782078703813385392906938403116198237922627370346722300322248171327289286699202905321253767506872257918807083726351017302508011245625492944576029871026558782839480561688166542423875205967592492068199637642946688062994430894099641904134540189103654685625616395778364038278125031422191342937848236735714701650901409732849359856641026021725615981759909611865255672207692205005039310239012450516641214336704157331009969530019720388984556072576034098554152721416133942261646073677585701776359337116878784186916953111024508959028599106009361952640098952438747486487620966784724893607964735028653893380853469707194033708385864799959959397343423430968578820318734122787485896050947158006513453240721370727648640474597865536321155238778217848553227326015220316853336679184143647867572592030932217553282216675879363909276070303247131413223718679233887272356977814808593576946719819014386296904634653408370443563411369340000063458251986990451728138568863319080683496890249117394885214827333161179593495264497241604322409850790152601854845852908505831529051414568551714286266861018183399867652239281588826374047144397275749074718886993659104337287179336334289778485969163811869789643911574248286593111142334729931225437044990384225017804479191365912543024449850193743766580693981222696218911651663404187038218258928175923968587474791590970643749667461316338320477551191361605081828571544629824932761220700237444143856508696991764449174365071675544111708566568446703898099002393622243765063076908754543142876520716689341685736707839319704192177950490810105480015838933012637058194583652984643175837050044305852576859156328926967628793993126757375346790504458230558471770452624347839568924908827090465022308416427112143431264246201382379567801635960870213089765172839454182270950626816224701967899459389264527497159152188683015384463947606255171830459536269186223125669978684499941294991467592217461845239271083327147641627826636075363458084799688032743508611721477635672414574900109383507797630221784646930663845704862683040152615053361837751811460709667945267023165147451375797576273166576018461597551171231837387946060555850787651254072950286896901520979110457293741646766147288777042184184276692893276971621900512097597210038355970796623003701708795002993818268194757781958820852598684205816550315403013530364205794772253640206626282538241707549856060401349577255912645700796238336196205227832028360034208490974217923592018258043603478967993564363937516407994685823188015655053937935274141602054982379459424136463778870293915716941523836059367018096698597361486835184911786389259721724596366746064612575814594746059776662536996336851310815928416055383047484863547182217354893901562247312364445460757952119138268913175049200760246587895189590805790213795758644147441258103623875440311832713874809115986393815687142527821242298520209827900182527687370042117650638521939078785536408524409721731735557222129359486875269532758147237388648969447738080062031804863615113130794838816805569362416531307206172817897214770342461163081100349987680350496011726116976952103609208679506240490463933636763008062142409019915432071600997350136519062498361153944587821857982480218652251800105983058982170226466525096750503847236035761327821128468682106617257459719631512701809952489630707617623880210782326784561396099025174888724129545908187800555917403727782586543415079183796801703793075769896315877107573064347897113809481124109484926257411412709510560501415979967492974869623146033092112416599418598617202280939818305873912366186422250416413606527935174908427282908525970295972633289180760536189963273915840995793327509584883178140017761340266714848207095258185329281408400974359290733289192786782808140159371346614813046347675294592817330488367609474025547551070948337425453903904408830898469595369483521127287264740219858220794929710411276753784619706576094621358795429911755443497198046298922796364202744471979229493437891201137249267827425476389756160081208240619064447670454718793185084177734911161734255599396682464615142095362051056125038634150071580701577298536378941030054006674530581130023118157833401010624074010641814421397960009706410483515915179027229333978585711846024022015611688229271752883495575442623821068899949720310824232443427456180127039973465645152991220079725926062475453284859141003100079501003350929052674425130743944768200303574646556150445650826295662265140206821934157301710180278890440783489419604099982588760253684225506177233175154671686037137286947497734039458842903316855131897190034470626392972576687615832776220826927562147539125008171515331544609511643708385907839335173370493967254934028558724028867537045904575423274614453101677167317831734745435043341170784739646308511008692006767138737173590117986015379772510973584364803888051230066248353253470745460456279053918232931446954993821459556299410106993352567140563498426284374117077148061508950656413495066926608408147245122753474218516421942198463006088959051671567690745683523068312783658907665826825651523992836379065959268153741236958955722577067851418118750422506883950639082210058301617874772748463362677495244218759295227868633116676703789916207571998419625797674408121776143113151314733581065243028937947275999943572100728230908193195179000080599097507065413608253092824660554069486346100206239454915515799779175761525664083224712063390829784649032307833329025261700611015040090021235972604156666440193737124404530187339384823997804860861016231167621308342740060135525253658328624717021613421653418779503392947841859988684033772086095868742173541905246387499495007000775989149427011690859424563802131372470392139647190404083764661079495997431895462888038651033159044526219683155691240065926179143109809155506994054141096888870560962509255331224204988198337867077326057256257262912489838760623699350426747771889755572152830149353673032876472420500159343021406743020686976511643999986460542220182523059947208386305430722226426647656980611377588960009904092718921153033445631246482250717651161061221134287435697974030175183464506323464277768783513742493453902125874530088786898151680353787858878626948546169278376533478737444882935103420100215179668057533682520786087703104000938894995674383937246503895281152569797151683292476543153272300081309968469796146039180219458516152098586054412155566481123802220623017487607570781237320780460715605800852964724169676774791903520643686415497013824946264021511670317114446974716493729520015263022935174377530465685762066231238690825837954180212956944092365010449483360961296369046041357814781770607146273333803589379741885581061237980853483798451879360335711267066483999875899614696512865394495916143222892486393783702832026568442047442607945124665988252365086125318180289985295945658091331529611062088487675977422974269559890940667665551376091898204171848643698945267245603850868450213557536171030482651187555111816405017329440097675580556991854511373352243160853605806881858613358549508409553512211701510526107123564643164807246421716570855353443555172133015779429791894011313114831811541920310436912993941146838990690895120219941070370585724131521642124673851987830713900334557105640258297646615063322904312083755314539107854719117375183219787205531390483907810907560029361186677207203854272949370619931818531452636754777042219065492405800731577329385791419765252947685594507813387544010186926853940509503518486347200445831978983584387284434544124464417382524415240715866009370550595882225159206370846784009211603642306484281389813577474713085086902161579269375314193164675006609270672769818441880456651236845808993261474803305359597309279490255098604319172292715642108640053408770814660144995006022280842251620160765007083243525960071611989133303977350198997703096819218087521622534077061353152944465665370649926922965991660849660017530641427091680284506814407191702636128629084719108477683931054807258630399805852416839880351280999818603006744064764406710546261474195376236850659465892399831303522886441019489151733540954389836958031430793192547219486841718871117686925495056114683983127384892213565305253518785431735115789845466032682421557878954289235392174759922354306836929344153454478212810031368621424241401449384636618814708952278274443292007774691635221750847451187283068664200751620110341751401161553502979354834857998269219290252592096088812371602544279080722748371733106772691743998844499765066036379134037784433990585210451631136761851958589066461729282836318631399565946411044269295457945473917451920007862964085032797784147862046922869328969288314991087114485733798015892235402105185025048152834068204498753890337853757870088481243270622953600985247078067774788640179765575969551172809877320514862781506323230168436885919889724074943998839401210894295689689900908079469411757783510413414583208452012294090493461125620340135440531320811953252020562036996225657480056710149757025003475754702154289376848376137937704658693973087323443324957590035087499201282037375999389192785190521175166451969079299085526116662991505401360140226317585866903656993643205169061122332392493841536664725978046955703105050560218989379244762685819543040919219902909988952313395188839123141822518132955146895520351410507592953789662351059273272360985416395317539219708043209147922403808488044511074508414320573216579296875816197410707179601156351210987359398404584511360526524943159440780661948969930794095379907177321553944410224639895503267305670528352749400383514654889645251769697249215818137605621005362880806759079371632068218016615192367035308556201911214877850439940623113463831397255500384331045661829514646375670878341910223597685164799909284754940428315658871621140384022552018443878219354193394736400552516558709970839491162955261984358506971676531110544126432368951146582023831018415181139490258644811254933475836293798885893103723703630298998763831014937738423671819932027319372464507637402331056838950985799144914086422755744778305518794847233749768711130608061208015787505333439151691670324493031948005067395134830139772602079778243970741543026000743422855361568922425652514474475165797450964296499761045995204656637120286837096778391055919128253337312702788359388902097198357949498993571318077397285232146142193549748287374099852984022409099292381709664712114600880365106823676535672020378307910014576231324120500707535949522861479666309755323081584452772402692485343524223724331522635361461022086770711046287463618768459098199071707334621245675548704331423534403438629710278904730223516073317966812440146439255347555250307255994107091567352785628003111625415696080922628494202221837600219452250667180117416408098956779260608677854600820260621086666644533064391761282755908904968203344789077372911525786061692841947629992397115050484003058255018888689365380097304405250959607530992513355519465855018480930617666360354902263039330407494619193171688749236200076457104425197825164060884030822442533872315631853111513645390279772890116250352966538015060609260228726689897204928359503242371778198437103932860695738648448786806116142219211650825651987412237315856783809829180605138623451405881244266469744649157062286829210353143220731144279161978226762285559422607061826215479147846293807105658738009250312543013779707149216463728249180581036868763830650061094779375345167002250638509079253286366720523956052372790941752801564088319080743537420272972347802045496441499259631361109915317908124846914673307034276604138484600153268507728365688270854790886391279177403120209978625681363249708617703776736574812418605959620258332197380182884442749594687449266926174635916988538846771509454937525454492411438412773590927702868352430361268805045742141659588871737397433752302522963916473711017899260580444622355761743330121522218356111361184643449802194577433937459901048528290961193229662265242620461532826100441643410163653407537694960315126362510163298154312698922830172379566548939957810347770054767269040409459426806598723758222218049353960812937880728469122310391237537433188851503770613073708468927337426740580007157150880905451276948817483887061677182179016857197574947236781334017692942745250050743554941805477765047748422714526384687198784304344926354357453701585969636267256053309385595338582081150743079979333796926610939823773955474296721142433248972305147425917366823904144763837724201466754793642040104827492272383766316638347457404885308450078650536436063856673856379547288863712321042670743248293630117165562435822501647707131981573271028082018164656427414836258699234645599778636047932245282360120719425430776473524032312497561792787332326547136876681682614889492590540506787509148044373936322923956934105972569317251927937241060272179829863281242135108763920447627859352221506815551368249139221639985105375546480873290868089618621493267605566153921810501860235086193637585104864392377044224439319698479978493320546101846586830633673498939761061379181152880992056396232968717172869161073736736420306461637862474549791022952701987261757007222492592253232010851479137551956311994739263624159406714936609337225021191825473968362522853536787783340594385568317470831192871133832856462852094406382966763910758184279411068448886850483187041394415688802119003885908510497691089068088117998157333165761057016838761344548408740191826956776540270838819376241107019182411664574887286658041970880712021033866855953405144909549167937274322482623870402377157759340040225190790875919171906911317786725038358943721067657737448613522789630845822719901310576847978855209772669893598744511561215756798021781694207508906513183683110310928170421551853052193327629487759970522990146605638817754264721804179239953895575711941706867455585714968672807516988174419806589474324821985252642772201313191535050154946818762176092805087872964625495692041000224600425691215933120716609623580600631058220182198809856147291907244492118615729136139944833123548023913678666349551655673975016501618245179878459406305328829802394710350703575100332639511923970296664896786591334856741265732643788015280314226482054276115182926742564744048676206448756892784565017275954449220119556077576333964633744725343380000443604227854158478639007844097002590274726709998044774506443224376057027892613124399393021753238466229143897170084483352683099002699583557130498787546296822965281542595828191662540513571752966833847795121662650729955852879404226630501398645439879431906914883277797141964915568837084351207255214667095249451231136842138378092211991666349730983690413110601234320685228962640618099179979103938369523012209884495098103728189778118854920514869206215275509732209230774176718618409068148112709268806715212229177984605910595424170820310250999493082548210458224112281463992565323903526958801180221021280675057434154314650119661111434484812740582830976804486631613772589632173350535425543977396642972502965321302651811124370308355833210261249414795573777361559215944335622658399940371497768715903922521498267674967785347095640128152928015963112930545566512151285522666429728386365826456978218643600974046354523350351941287680257083300188978998551663273211061002828994736219409978646460432771821450316714075153836963917383449235271681159516308243245064931836055211170661009875130222901284907202869854042167112448663730276842202205774049375098141275988339678298195291544209599336252356985006890748466024875166965377160544514926074936378988101554427154371463213246834258268153225286825826166941232530324233587579542806517200088261631280584505543191937603071620820932988931949562640708402289332416942302162032974329481580890191523137168245555022310644262038736367076931161845267116250192479258367138122870835587018013626664272612563291302595019451511200759484880965178499734389321694126484153954181119405919254263182828725298438558432143568940496636550311088797882947854893862856414788358975058038877388182911501146831906968392512346927894156828088838825329006630435331733102221086974093764370334024978578083354697860179633539908947515903358200464844877513260283091122516199066673263934504371382633528999146450838896630071139198983742133759236431228264249289123859755538211710337762862796697617255762322240973934470281038891273238082490386676112799100749959697874479160601683607781802176640153533052291898455417676519615098763028747091135644655888649896278177211867821046826670181915827449916772289066913639389864058306699832205896059856150960405989609730781462343473893388072594210180788419157020093944826429272337782220523093074219694196692432837075013095665182155274329105706819963134905091105967291552292319725537174746708344124150236204066144071611676075736997941455723733107083614897827621873105828061891012305383798391299244417632693181943536857768586113348779512950979485922300655056473428774833077161653714482121550810168406404268344938707355803689398376655068646550427322639801898185124181717025170840539912838263071956443211335263827949156386943644775061878695417703855719434726985280994546530060276417729124916493489692490991599252209161928917296324412001576855292385365872226719498673305993871830163843309014266629252798798858751272277954841290024877450313742695774408811698409260760940378822625843235431247545381128790072569336088765255345495772343621786110208115273875220856128919047496451277683573257745073581483065492393346529508857630628976525331167855717429062388457984670063952900060571496750197817048638542669749678366045720389077130329827331719339687229946944349807199645880666767415524699798403796510141788911632241294100087789912897101858631667026659471133969375237058829699322012845313484359783502061730893839152903903056009658811703477748060178130748329335749408962731833019142920766844703973586717433214914416857647040430091877130435326834901273557153134993604305214877359816868513647197080497749309067116415100554599901575982349841816844292674969084788040101430518544656108727943987769258541998806516435032627734998359562620203886868753216825653118122234163050924409036289180030803967172583828970247569698674980772845981741324513899615940412523992480859468491646602771152342737992319848475930941964723954403029023443990099766247234479316452120505204050274859987271406512573331111845910284191145345662150776986892168882299733917579044720293711715538707659120742449487233938061722836718449445942902356399929475712250840016738928312273600710290056098266842672640366656610477770239687254103920740557376240545017663275267691455103287594261452449724482514502067586300757395850370723667145648113588027958962048602440163014274969592965127054785414504932024159508942576606738727779769957037133121085933636341415895473750195035714727028704956917734380166716407440587728167503337471216606781996780653941078697539051599723397104249100276194723720738361901589286907333215714132224632303293058008669508540858671548381451809664945634128122361325651273034075425617984899073942017983627269848830047740624284215448111715255572339687971380874821907439733704871723610012389030969080500673735604212808597748664703878828194830121025657917070543253212614719588691067126790357605291925368041274645309048258488376778252747431437497346610307399453607194801298461777853313228228660029260263786698865639974090922682467925232564452865168435849029191192911608923081346814081948747985026475044425861870988025155205371020066868556845939752442262292272799183552649855968381229710178681765010253519580207251209478349477124941300185094902925337228346149916696149802971288667974745230187838813032840710981743691208245616558098886614149029120942571535189681296309686457732288758779646457888844271383224341552151298656267742629394588686481970663193726318415686717460639785148159650892398961664763347221712959433735666947841319889648163758820338814673699892188710021894316127874950150098904339348135645965757795358183336094433598386556182860278945952651944220439590455355999174624463108454385264042387578269765722094784202057669030013380124837230909456833440353338801734083131531531082900886676296074186054156583424397965687312828477745545230628323456130523303474601637183814936569479938942809776300406116680338728282036060536851217061525681460441037579635569290634347350140208281937861377041936215424343717284701775534677174991067271844866528357871541869300712763994549095974241899542432482758886902463581837573458558119767570694091714511917867485780211894327222898042094773300287845144194440975806710506843731813542088674517135473751780679659288821016625956990533923594710736491281803133601309009221425436849734036737826112246281906685855042702591248083577380289402464580539653907977540933694582140887420835638888595339932747019033955752460903331014123232222725085481954189558172507575863598921828753278341158570026594407095794168765986091530630289719354575261607788462160679514153408264152209002142362632033490342187684387175982675190056618813721760534358693046828062001059751281975568401425271965928340578497045129904660591957050646922355875326646585777036328920195170078887495253213291286147927402556328977135460736436725439810336273234750228450968934874617026843108526749827472380625561897241792921808525609011326852558059511920534301272882767459751567818777014624218273844617572712864415280141832403151774679131744760175609857578168787812079397253022332063851192062915718202072137573652073009703886526220903250154139280079279633193528500046645967154457157440410626022972760537982336593877762330754110127530184182903920779361678444825013828109768031241589730673541525038213539770242049986585442315658216406100685502441603173947912788235730885842538966876760718490495990449840735126737637979281052532298977313205537316158996185889961199712010117655265687325146362254061838380948178713903635499296337602587117461930686903194979213574398196109000047984092952699757627088781804043044063064620290436108297165989694324322814505226343771417711879100512684409834124197423361573844023719430427859753965249141301711903716877837796386465315211836848955236938059869185168842011303667120604607013245048437296240779679072082303297783824731142867852397367548302534784408295951561645547584962811036550363544404038764556847009249353967263480914999896936786900678177770356800144032971259681880800169600369104580319632502199078485449260967525106344633400149030234679810494630256975081272217588311972281188993671790870808540246719120253915775963519903515937262916718826481434147573829313932183428042589247738445084509029802279681301503451447894847270608512893642027014750090072433100024356888314949601359795399577030036913102994416464207902899875832095819250286391155833726263293481021574940646687849332454779688906622846138197359461844334179920483221005486763826914375437646522909203881588524590821905017065993633472289280795352406826997157990079712639458413110671226623524702943603239678349290878111891774120405299151870958030939953949814816786348203278744475674863890347989017963708274831086933973551125656628055207163558728042181536200046324404542214953903820839753752754152257890608972464696344148725620201744868946227430876226091647577224373737161006529417404087014138660804902417709146639860970871350854609612201719726983095591971136386664388945313382756592353258309366768479027419435983009282078991322950686753364244915721979087265601447432036386579016711320429364872561917574678469797686003927632785258626214199991061242307017686948503183354093955139133467488707321843456439830476798761574202644679358648892540310433316934437110628574240606787109184663209886659909071403193981114277085457906803044850529444214192736699964656882353563685164683063525711577570123060041229002528718162309155760902467383647343712139301137057536383277134148457352113988421664293553891172475783057651465635792866591985943956079848752730444886493239427230665191913173171538109485023823595712990665067790149861618100194390889311177061444864476097591308687905421960160173559359791108433961026081515651319395939780574424268686481515158398051096643212964352889452916342308471720539470014212759294918348654798291904054052685535485029202622006722180340194045466675348887895403634281723507314010718432364574877697975248556191484993134128211214621728383205462659633894081869849528888232224436926513752736113881464714050518341183978267843008704596686264106177323387594695875797061831462616960148170860853620103130266983850234738578979680559939658497907856312155627739815096595180564162386454499327739159265130955080793043248236003650721836901817205057261474114383680273609838173490092507863762248619795705720767777620293096198638166646235423186756354344846069281540918865443967407810636972203864208815360451089501467983407528108382600204126369043582583217468720265253700485300688427416689749087219558842998209045928491592438879960360191954788964705420261375775828612085576884583592651396682988121418585718129751480900909340950895121765056864740464974499020363209898341277234465174280347756973339649642776966942185259912451721856112761064728114251998385810096441604633697296155910892672925388296135425491139029393539563078311766148503122936309791598275433955169464314362403830130573313023854017043116698049250078847597415939043986137513984465881183517057128466776921049472380970179314546744589664640319884863168204889034345800632914920409911044707692513746882895806587360927425880549759244931328326679720575781864812259491270075627222619659064682264674651917889939577897492169128277828378243242834129524094587451505739381328990717247642988533332564947521569258040563984707293325231827751152313837278106693222280835740920503498290846249519461465650248430295467530088855584618648766419156205345292439743362492752521094509649599846049575629345282766552130537218161788858812755379309217115992474330219666822144643000015889755254355091317313901409989384893456455510226197828180082344193093899293142659685757836361900465442185950357018425651776891509781993209896902202086786064391036345786520180996971512502345855739875497746037379938187645787119849764111052873788563875860987936791653778226315976647300643967572211663664933014793345090820804099800160623333267157463131454071368041756327235858797068171579006117121158037753938456992308516671195769918306864208306657034080348917000219038676003996916037564977245916291587243959501872553864632656054024440485273600863034239446155019402042964419143287132705828138181277771182740271823370566358843066028636123831895840447699713880852807418303390789929134613486548075624374346408851626271065335849802232371751470080030269757860345361686823531535749076552993303313604548237464507584018585903518363410701635264943176894463095954803257747632308276116665680087196325380159640215374985466316222405791100592606759082352665725175706560156720745814310263785954942663185524668103028847564351988771936595212079199388443736991864890707508265930865393657014931843769357706126348492917112759613461858523145519610387513738761512613591260157242716417696447656279665623507667468706368155909416501020074655714353377040979722729316055945827122006870672181785550489471138395506697146862481087812765094090276791629435183839089036647331082937899099877600130825840406243358339939325785558379750997056536541869468218694444294903309469874274487184885938465856588557249105495055171198091363190508794040597841011849648155889325920315993861822947288590697609398813076357564383534223222657981986959143048676391841633188572214782342349789443687861408497373406076252829657763022108066469416652808211665314215690860300403493788845727196884625754746389033647169258805553515668560751459716961139821894114397784868502423967448705634638308464757694658958130097617017629607345037613140398254766475136198468284758507200975746711014108887469762701825633898255387046860455639210162810725023780336896659956374239873846015528183668847046120654842001585475322082857613816318180139217384164490170435090487804560585484138318814351470231723571830238522551216355506107868793982309160516601836606520923724600408902703443703790690728158054213474917358536675826749128007751777768076491808099499289621780849621792727097647676539842990589257579936658309739451482882877551365851872826658065631407291222946422789613948737370332916021294753114550643534974251155447556105061617425117801358163185299470259579062215968649875992076044917234458708700257907991366330962018667261461190927462524252518246840541411638762003774494444431717988046024602236406955979721775328611848265319685444450913841633146367725280203319137881335700464130915434804657688816436162619455368986499719011963118980095231213027359424473715093483251108923784820210823598654687704964905147785689891465150100542138571591795390117496827654335784218658844231181396745110078598093218621708911582144589746780992388621588290290469555987713799358592778437303822958310823293741032028014199041147883965520465485320364912005283093653209139094225943144173325132882823285941687599453107769191255266502790201927799946653602613466083944072059006633503511132274063690098075522327344938235900631317532879631945129246627208169249590568305799602000098444071058172495757645666199950384387320073443681569846564433295472623486342092385109477553167032307815728759725434544840543274051604360400593720157298128585172037348425592823599146987024980314382168869639646261534637655345298653853612119097202024061835022479269085662779000446958681754279908875416487032927402182729195136586217577334073969819689904881341696232239679026480398724870637946432997489257705534955505083901209476846468682728188487639049216959365235423701907606955604339603133266466659836238387421823802677114559087243667351039100204754157540016845554419375571983606451163383596390629829709460278902010208073377121710736329715310794217165621973668344818831299199557949478955674791387932486676828490994160824544702994100205573549104610589893920619863429839650612801447124571532975545838848677371461304459042555843275064569251791583688876872557893158204729325257424808087758404515136742840771669813223220794304765590255946395748447235650513939663834053538548662207405106634942146460895258633251076120881741277176732063396616224003682041425266133541438362561095958801891294967457294606067907632093872334446299733569304992636612163344019574265069419389376129210252022063085472356798864021498522254736797716064219124328553584119690831529146431540397781443880509781005247735827308714901853136377592398868812402401133915191381721672349314150107108584595424121544151403547536280870767881062451698736702784714622370624934586507771672815675181797186520774184774653860800361249212040041911906184116367021713815962228358793865700030777215220069051712090579823131269733018205637116627556041474081179104113789158230528771186940701948738941257239181546669296138792764066332976413283824777381220472607558388241293717230231702351771831378675783583624311954749274773832925924982907874620548617054024487164661057059515648201682081439996912935490422782697795897622885056367776971880740181426639999181218121216323176126371918002640434297141440650736299801031450176824066452650954342619856415666513183495888920293539914773297472393012519212361110046298146393714123823845088935437600013962682139314280633100855866375145802988614544796118352365783177619683855670384081875210603176523649561060606833043464515997982218046912992997510461925900232823478955765997213501909257756795595287695888186907146053156318728742794068633509008105390565446147146598199031088576355542919489116615947390147722584582265163208046945680109026259045779083929808510456081958284467700494233939607348553770051635183690679464369251285874144503229500556379384534889703731509668967155582750747821137437950851138681165351800138670468893745870238233648770394767080959645053659757201858166567086867808960371428754727590121640073204093529700579254789798874005833452485959259539009755133684905241265711727537982281282296124628141373067808107287699355065933690790704814805823685390361431601901765577480342114749820064095128793116855149500561981353473360010573743141367929748505418078535808553087882668894176109228616835640273611046276674577439490408569748676155334323088658520700939084335372405155991541251858689540724262715813332027569177981770366098974521076700576664369157720446137995476972081678979401803355417464346707084895552172550389942608423143073552685084168526037877545663208101881900380105126723793743853120207492307365989282325815321599166876928589114228268906449306627569263966255596922197394111818989081451673466558658961245667603102787620339110628859966849565979496115569175719836897200089306608183064683732018450269998915548930770240093617001428021409691271274297729219773884831598435472463371435994900905794753796247376652471779237924079564205394653620790286279081701157075796294201739567208182967406028457089016833408932374575210234646631804988335973381117255687386668980511733497260952759838882150499907986179016540220007249067518545116017309570201785053661330298652002754264412975669997885617053625828863674584220230881449191230426890496079435679391255368957501377045688748922603924316739265061828636242338294107110133870184011726089270663682669333998985685696483716488586589179267127926229993316747193809639348492115351397847810772349866445662697431270781858349654915560215096788499354731683539617184568509988319344072920958791575187871351934279835686447149675427243414531308796802093606233910618960917451253329495125092970232545007778016260434370844898281853276657455713606140925250353357773036749318226814680880182554361309691797202888502201440333313566228585204374254318832268757483945042215254790902265739185712841748944846635422392476563246809545791085093745312279458210804768796761088125010915843359586221290125613506595331071494266371682000207561646145086102684071740282039823911027793552493804454316564973674326873979164861440104540410840332443840062382313127702271872581698664184049476510168576942881463264971511626056683361659722232583123919377909998099991681539714250623795000225387030140868046753144683680884380847347646352167887239355321294981446126746464897807352731566863032083351903546561483404087863958862448832034452115646474221335328977576518581632787279095689700579242535455751474679906819948455491461999282909482824577376272178809015359859648680752285837090391342771168890096210467629390237454875024837773982396321375860832240971779952706068340435100097961369691816820444841242948809513885558349824550308922166058663035815640646596893204023406535522441827228706880258215731247835590910348791074012064083659388980058332081660986257333584717270578039956477722775268473370033494417487453973251206500419470215248527298093107389064470703839891527886052430043178058142985079802148637629154339630080546079940522320589484509246044358527016675277932929694583070600837205418076111731093294181868572951800631285169145773576761432982800380708094999036036193331877430855084043454479238600744060580932648826188065365362490766452975179225056388238042820385096606261677641967012320571281222200113091630544290559279954950601305586644227521218647228763854094124412824927716301474869529424092926133559974939399491188783437273335731975805015276343622845984791629307891712896138262862786461237706229707895362677130162489358746137169879006773186649752268017244069906270316364978642254566214817892578310016563874911059729712689870758642783522370672900308206188281868917745293033090561276933782915869811391858447388009043897289237910509770878588806359810515938313364885880756901417134333097622974631130105656405963218188896275576320859774137776343976324070889352911794702805883143490155421950288138935447817594076910854593819161956919564717775340441971016177944143093982760470103902577944575041676402412728528717702817432879537614801382574024757073124794756005025640221704091323565599650494027152447171861858670204683201817474018811134645114107390741734383615465262431054683778844995104244292782848084903792510737683428063976837260412385002254196254878020057119069489870362733435982797620866157484481448016949597044315066733534107880058517472738552162860299329489358067740025353176135756153069292916182061473261551785203949409993602020961206678268512908848820253910777959968098633474946807139133303290212482863257345864598233827349834771506424977613261719579223942241929934770305088429401547798055575016794903894168709436921164887428762445726827097581931141489505386938256774813958263717355156491832544745048408109857397734733639882359420849885709529612366835834466762848639365751730697351461461242933425073525540789833033268068171637989635338938299586777774497315130339437459501048726026344439594006446621906353944936211203807541828643338349198139246220018186623877236522695514579030943561872522800065856498355804888235023462075409563947718151567518525248459042315893672638232872607534576632054804318200768386470608958346002594492681441391609582940362460634638757789611810568378726601668197520254440315009843643267218516733086587198743498225896204054736395227050642130336788545457882860189582105902103430758742588872732292866367602000324743767141265603505436750056777196263324586601355824417029091783962464194763939389849950277868310998286462112971453412107857175232931633738765803463630538357239033124959902958934215053362256485049428142191119421274041866969997481004419108473003895958538456101524887102488969596101776846915461587053133081358135078845438147504766622435547641903217114116486195139607474159816234625477155604524730414736690184175035989012659398171991832145960070813737601807692781115421393932729429897416857983560696662480683036244156202106416678253785780042776248047978221130203168743240497650870440676112509249911236432671922896971494364327652088544046508751998212381045751155857933523602533257516892876916284887103697140892424199701545249509290739411899720996047414343563325371881685192352183036447041200970742788141184896559854638708003343664437144159569854812882018356597511013880374877736517145571639193473514997997135614596085800999541512053241776656949863170581744233068597944829626375104267792120994299422659891640685169431533958415204784729456852798998730937829802878185912466183097831284776958240228545150090117746556617715305905212698833660729939549152886264545788963593526336251845885713812168242592544720351653151678307450873875400479162083756422754092233976236456983439087202718855763128236688466883233853545165151244502385593961099466587037267381445574950955627165328262294605037082683599219621890685819824913232554901438288015189211978887850196362720330849563663838945262391743875701042754389371725572221002445077268009664624781537994518991711744492930786330242677190308274934044073549645361904823870372097909878680616757418862686201395045979967269004136482064566341634223615851947960001727085884150052462768972870899105685022442251144777381007484900502707273415158793770515757625639329649040576121017057760184354829543640318616053572988511176625336794741478184014333573630776377579721950160783139370161451703601702798230925799279609418247194311040956040741889875867834880807096580928537523448293043372757572558998786029510964448287709487749183375565150024682232673180203383197774055648625963224326878296737177217697375873334375275775229358474212914987460594722396771391935230915801594164594281564907179358095812366403009943015427519370934697071392582429354306794917562359923285560052096249220669795103849431481596049471958010829980671547806707721125841143428801979994955753336242657847582897554422922349868176792546652583673190691928481058600707177080457846829742285985618381079761673270335972755875739827539714501543194794088887059085542802861562406743290162185402284031871775846931414878433893677256168650848430352459235412220156185366757363045676177991103848107183075328125644709516659104315189584923325973038929378590285274001196897090375242293700816512720202065344452743903542804748713992701486346188862139365753474729045038952580665429030481295012249535147215396174073979555170315750620706130272838338896824713902169231416009156453367070555476523684379826697035481652872626049020144154311218951835132982424185817763446712979027620185460887199308951864689621552730673581339896689643071277234544163290939526528452213073074575273182744637825904429705217936997947858064676156765382283597740210854993520639399757363654062495816695661657465140396512140415423964579157277022490579220368095298407503703954198766544470762941341993317896274432048422527451167917161078975813071229922770137951078751797068981589201939891115470301854174002497913997330606531933818502532456703535868176820387066651014794361881773566219486508538024502319703340879788457745585316187238091669785540892910239996635389589480191705643746449604648398726423038372718125902759845963696141990529859181412077012840792624155985102737649164190089395824030145713700377475451600920179159149760778729408256705885320781502086270661072417840052032449016072991396326325606181539482547920130000618960700064728819730063596921939076264206368603022884185470370576376222653825560839645442898574069730432884952230449437648338806777256228321460594272049429550226960036111216905564773128836704564501212469100082312984140719857987670455952077600380171438417400369852050276731279527540706797343475125099633643390348666842248453510468212318533214462053778189634842525932439740325059587159642717806720811400378593806672381525200244703667050749841548080435384963074451568552359271276221449017260055155832099655984832937226075849050450082161593767246461235749273391107766087064527697348786682920280439567245073221887101438856682530444596695105540029338071790816758223577644407192678239995889218724887937667278273566342169656674956063252065300015563856221849668303016973246244099392753912535946529216849563532943832456274624876696649926574152789248126355959038693669497542742299739112818931502487364469061658061332205089742850918562617062111660806185926886968472944906577038611393665741788656010498603205323579460036649897936174223289392162283343736556716452136570172518245568618683816948266774015980582674848495646467247765091544977988270930041920626019814545705342818511794505849041684662272097391943245859936159331867072727590463100947346331941283765373214846698951022958741623946210268386506223162981416349166523183081659385012904470105939535890611810432434235310771862541723170268855554799000911496260257451621699402576864936579862046715811273158940924854473093019285868284570528063582179974330851643647555571793040845339348212011344720586097532678920108650331473200074767676200226305263528761008561773790128070767935059415658476198735600853576153310751194704260267672022561157768630520407556415923781206834930981263517645242193115962282538669609374731525932352205460756596392983128238132089172530641035996435337316386266584245916851760234920238788542191147439329548864203248342069360773565618466578422669236435376869286326202180263817362649646022076183988750945521741973183764433279167776566218480560206466667783436906607128068934949793768314837481911171213608143878676522886539958407779998594978550185472444577194914061530428795667833167097156748112857664521987479414608919992406102817434163812060953790944494234956304362716919361827724228410029011114578365267923944227813130958686238331763120911272865831337990615618319425119442785522562520781256062720595173476349863622350065363703310243293862863192408256268669980659128689494283621159471316185665286678941183549104515314700739001765869899308018792840218195948737586479393384192172577018808361870132408959432415195512960572562737272894464331818592018044506785234215225581413740108042624067874147663511664005062742485370994802430909372475985297946313075247089793507478888610967929348455782788055976744088624533930926870450148138984165215226536208890777824301471643830399290890008441276043640410914887914671921910764514468850453210531568154590306526470831605594081563076062683919555983909458224786150367588476193347784271267986976940361490547798975972151086088701225208084869203536678264535071982229973463638784436069034421259329947800699475245336868579510072416553095344679096482824926178382101157882976018549912247760145812069378784207131041439821636820523793657526150658666858130195956373139873100734650619202522636434261859424191482276971058908996627170718070113397175596263028937895135943986597996151536748714242886888240307591769355566156632848686471587795197326042852672394468041203235169564893920911115522399989685503749925753528182075483424466860056935952407229877596418982326754970760933090104127310470791121078816339807160005888765468005035904213948355652945744951769825228663039938945092115509177492062772747936545974432362704556454437405920338811129058705860082320141212575062062844227682172807558363084807116407718442116795391887323691748211579641059985313058221494678303432013496561978783244898486899412129249003425126377445460049267934975221860179076371570738323834371986406622412730334885146406907043375552264828833872863631144310744087200709571526820723257842742156097051053689098058963605875953952839135765446148422144712898463817950620025478085019953439969421147819869066086460465351719639959807626121909736990154859811972248206549332527138027144338309322467925121979515375818557069795102461831309093094912674587476049350721303598556556977345680138132836444221079668493270049081936893169852179900455251901506969172579394089710076114771680743534014761659227654738344812914962412790855501524132599027702954885073797395473382648506452029295592548899596752834745430577103399294900000116914155915273489257682303296318632392670669928395438446047805493472692048149717466305127491566253767707609921738867285523754375256685383466004987077025532165785684139844749763632018047919026999124847166189709051029207323912072228658302887358926467467768060892692983976054471361289443156766807194708262668508544670987795353260837565095570658234243828339696615353731048620205714160005819407500570344752123913456462562394731745577394870599139889266177688563904782508014683679424159306181602163482739772761930529013441864462062682586155800903857472010716352588470129431863674912056733134656156937235891136339774048229302152118197009973956730058167020590523026529074551657688206296587928046177753615273910004215208247147069130225004382759266220533996644103937657777623390396618781239849942091144947772621550534177759775823764948763467458334980415887533300768054096705354355083503658310101157356504615509890503043037087725338925245196912010830995795225062454735367433677867803735219357494790460385993899540987421761659517949939838134297265323421029936511309231056315780541497327165378146878407828418680075994087005893960617490622133740088721173984049737112276001745686254912829250915917853103536989408318248179575023345121113109335428813279409199546402138456225148728025749335313073992741468827187016641044150309310107985195692806457380335112353947475330562056319286738655126336035732426624912391358967156875923881342231416755616346944642477055291707590369910979567499826659981285882979580274024602946580104187275128259745450224942979516735857200080092629505557852060433929132915850793500801587757958742780827954716901682190212683276208721045445058712773641522543237186739173577836497908589805004719616296607426900908905208315871408168747427090896406455663372271287133668290802246738500621235294973844529049311015255121618804625836197506880649245088336715550347500630880314359149662889386435844070724353710275032545302824659489709769331896202711689376628608789405643378901321075738309023431265242513852462257150905268252648290197157022867448090523157934943005455449871837004425393350055999758915255760043862918266563216284659225100829636371361640579674110697224378646066094386661120105952840207037453038041930786823101894837978235590382111512720164023808971797017867893631664231738502993287015159858697496640285313959484564799002057008420093783799429994332701605401276224258692288392628727367580843654182305059736722395348142101965669323991247233837897594710718562284491075412672130736755478733731621532519719273581110196106234672273398282812056115118562724176183753503727163914867242225028359588098674776872976990994971339887333690700355294885042377997650731071618552851595964401631816591500654985043328763405877172110930504964188348652045182113323675969273401529389214597464028028485682313814595258731221637289277273440136339115362984441633369448357141511078795773311604297048366477016461340265881909870929930318004386395308261815297463355052636840509298093389024853218079491448868154996302745671448797017331071910316705809137319514061694876728508336282646301635626357100606447895955137534760379580210467901276459962214694252016658599741696789160106470908788648225670252719689522779996504480707311736952938257007975218468521142810481111372430891492282942960069016618724933391719644141071489246079051802748777986722574349342001321179613763783054247305838684028260554295723769801308818396104514321207035503348844595503721510392314551138536635960194516187223030629945416921345978358623807865778923292100487267130655258583855756684964110287913457377648065253375009866629979227458351968667108663971205489891034073815834893252660480149852516303614022516810842335068041232673046943903541630188546521361898934109060181447455322397366580170580406928338623552437458637096813207667112558542908658018511515346518165769937111551272029822670551572287114377541494621442362038348458831425531509592793809173101452132972889781941298618608413019133090971758071381844441384138046369491029214083059626397662208248104809728446348611312843518298988550639392665785361784492339445564204628445105579478093011435410142017857775487515122014641771302398012751896601321405151053273630264544306568902370166313460063752136692302291081687697540898573826279740931305887595882242310095539225447780747028957387637935465548119153412648140763678476694791448379626031916231557624639534757135374079074857978964411933405943718970435573944656468785879367884177146234449092821002414866561908244896598856403708156079005199218076966330615555342831503266195828193148247086977478463590173725714293206150950669505142429407158777049117260587365411066681117516796944228790658222640267400222305379798192976155024856904409806760716748980000611698266879739522510402659552223007152470684379868010450635715044907796365021655649276166573197420086919065799422539345285441335926977381300376820738021753202449743888275177591926426754078869151852050499120455184724265976753259174164370937561976588201406960685235664572756366353703251718354250981637633252173735036145583711322111514430886780854554763226779807692475331750626545986532777792474046812920931057015126006745485190438121352024989343581626288283270436439923099429080859219103278438740889137253857475488560627567691039001347538392317011099099246568799567452165754681777236190205432448190567245492095873830336592466390907818341774479533849171244163899828017492159676074094428270087687575120505693280031044782929239953974546288215778836062454738775433932553252803764614092823382593890848366329818885242011340077020921449235593192987809052459513730289322482970326402314907408218596491548053398489567010041800054473623267173732865635617852335574329153317638637595818540963619643831876654832429419733377211660748610825988701148308961887396496765276713909305296979928703225851364282113158661454626166262177019213659601867280680955422426917651657932212350449612042338272971742997363639523640816269079101319826840510218918505548109888711524297836108296135717957236656763183647576613532735083117294830924175269015343126166564839466295708639625338471720269983550657650585777830952401160743141802180855441930222799258658343879988398427337129124511850249517401253607939195990230367455459675927166621351862697496676513939423126455036121965631197526878347238652434755996133359203862045553808255050359341164707776166155559827777783672929987754071223680990651218149669906349375374331686378425180667524461130765905012208778949770239959872420661647210341770499814247813364352617475312552415377216019562265881045566884743994501553213099132365227812350852461790941940383751054860419391631827383635612295459792723483890833429708487465614678579656294487588457550022687349496449484900226659206316373571340308965592550106301452869242243878402149114860737529800059830714627186888142904640767046026743166768382370021281308691038271037815749123663694165010741252519922207459984701725809812845353647960724304411352457364231147639912940288019659204092484397009206374466317904031684318817973240172290859185248580206917361358060868554517062514252333397268102339809241139790069461976211694271614761997777005999186808270240746229336190471466149769533028554948074949397317624052592161762937037530296755130529693599923119679641526619143723356035089475214187268844366788730321198904225778136093796131103671550880159847549146132380347059875297351055791743923638277015169004679479650963756007736642688135529169187441029431360326653761265588608763002390479899685027119261632498573190035328173594288552846129042602184703849353860152143694330899965887709585106504243267388725700094781127066397294193103208994626315861157754917128193160811527466462573656463499568900422497987903282282435100928050975777554425733592828002580876397568086592150147033989597265335879270347579615500755580500032959032387948171957785330486102859224545590883892240138335048486945318246626025564193900033474672313761828984091153995083141330558170267213114031199296768898622045808616040085338111649089362804843481155886696350750501497172444915445378643905263875214797233855502022043141802294649722926774950337963286727109362204249219911507739567032367135388671477915240783166580039180194686576047150461034283264482339440859618674859450380165689634910061013589972521518497487031164305716088208568015008718545284692840234375846064630588779997447802424347986510121180994329555285290750712572042345849701764846198068815272771929234323126942849168409555865879233874393136054020927321797851992900269508452808332217199331315597289767430173151071521931933491965524499918366327795917096724774720814391972407405612320053336107104189353362576959197182046272708756920439353529255039914706041169450569725401329045182621902360669002140453740383982908639719219234693698930993224324997720769505627049980123859892480897505899598721684286627140782036835801142508075944504186997850294699717587953450250965603995842198578653710443824004631829098025858342077236853507298752327422271864394559785195749900858193350745345013549138674023453655508881136231888453024358729565948108587770494961231017493364110361380691786503962235851767842408453674082466686029861750234324130930462236424514496269421582359318648207303736329999901661275202369236287224960294686862794912374924242853118094397458222484993166630358002560399695731304332779081718874074118295376130660130868191042794404143351948946477571623379813459420280745844227637481610199936755082446289872314888528401208268389619718358567633749533059923213286067741103852831821181169351671429252582394943258811123964555506822343835529381779811614304692278128060544593697793969230124930371043529902696379096147161236693724637045283619647411349055454173820179912614168117190636714838249618496761482193612279435954152611838105714737913380290127098107144411013397482862753358372295779360207576634165133938767972606800856861827904642281220122294506548965495135014370435782378399234217112404064338942656767463220070043130617975897561266665337205534769941247571614424216864732329896730195843028881557272750645090377286050323770246356272783796973532516226780519438304105270730402966816281160327201576922203978184015609426134250981341245639809801344931493100555729791994215051654234577016497180163828948686658090209312980969278014368864238084150425979631518046537901541982071320233937836453216007996688735758498609238482033976693733664203925382868657427302833110238239868822336328286449626437302648796799121073713849876587280505000479254214810878000627401943231334716155847829509682866373862259825273491689820466679295583168654323999332423929858776022383094525567470936405789254564769141989105478394628472813443165311492788081290476812102187732955845099578865263355265894753221268314005582521366838476968305109485721523871361047003018269670571219853128160482991778147161910333908105444290572127337386245257688035716425264550779252290662426548956187482817235431827188266685236503577199648164652290168807827219762189603271902075900961978356680680133781520377303842869279714908203541786183388972145557388129385382688230564458967310819525362198936787353062170300074798174543058236642357981521673960326236625949936482935928890789482797653952213889256586368462936897940059607322177262147402452723415487367988436243934516108083456880614063078158893708122139352805592154240452846923595186219654918523126594312088814833254932923705769795062062854971196975527747353362904770301167464903465938687840618636118074433341814713662446269334636570752024844202266603941163419988429397087678322886150060144331284809290739957978122419523162283493291175481811914164474086797460968577156860098459258337603265598302758168197155217842519023198140864506203148781565501879731437365082998320589827798723864436714361696887943511409461617987351938434901930717172663924312807621858430569118278654243072048609031488447264528928826741143506163471778088560627164471375337113494787002711903985142234642142093974238603957796836533714208423529781107170122304804520836356045986759642458909139242528361234665655428366917121850442528971126331210419397420093714353588123052286628808866198780570831788198676517671441825318840920500751272506706610651023268280130452000305693921327379892619679594699300077185100994198648217420326345169061347963677734671787594424108526345740507126160301611680442625798277031755412832544974732137391242392996786097178045928112852606553248711920475948031414129927696201236084568250457777316503768715054254500741740309474333980250602313894604000247262477672769028144620758193692063644851053203973524535617341772140218395549297008526661670787719526961860261697874844094997662835362263409698749969595453326298141912575431719812079593665654047795285495249498063790657179967835210472972783840703724918364976775923350229395111905282465264542512708144081036463820742980627588055769047483738582657667640537232806467326145025054969299848372649837645188857635815442826268697937183763961456363368345573008126153982199828648710362511813772497503825688106976907253042151235388897035629400013019287026912244519662780240813984586456528860929834043246811798948031738085674086665533447945172432191035580766857441463210731541085172971220282486784623560262732539696700586435628613235459993431681434190155952744835987536839499992426297092466727847994569782332923931184861842489627905884990689329041139270361226521166188350195752304939365440293825210957233793809634584624500926263973966758801744370877061373033110936362072680383599013111640181614769353775365899164982181719089975691767791549629271456994824537234729044986577580301011264554828831806257071764147926809032389833530928356575771853711839968524045999068928474087834586068807049623212206443492792216793943762463498146830472311183738161294959178042101575611201430042652042007471275758459537202366902269388858450307048740957536467283068594391677646248729382404004262558857177041405730090170871801884372869897877718636353141150093862162039084751264887431925395176455653593884518424908072660206210346433772090355311313807478169514941647484279059993372294201122502286170018370202836292424985797663776448909179763909848639008549489138837586136151125896356129254499638023758026246102114154591718097925699123312407163718597611035183343592145216473612678328449784683630963719734070990308291272098609650196397637988069779147128826498163330702848951193021804874842315045430023514582394827520500845485273355847364596634314316994843222922262118837578405826481129295313080493528264222409335403901887679051935240841986738032292355831343665989126956658290601577171197159937466074115249129771393688189091940501799237945077290325760100241463762168433432667541176137440707273413525173054068042782937593143329387220753314161329797602712849709967594824219773677757280509679171867383748257539931262863244096053130460642448254334890917623024668892042355864988256849520058567287195681717398194081116140580093883291959769224333250433860513191657610372616343766155123276089166176106965801325745954131970231891039782835656911605473291841268626695689176652739900965963985103115595509772076315592459245057656655608445140678903731385777091952445623436472427983805059806799374288147533518128727848633324621258169139580996486360095079634135055341596417112172323162122368885122878647986783769714904567352306381267856405892751868538025091846199766003905464542726106130055353902907011374873348019043501038465303334433455261758056376819648530347852147096469529841057790085153570689329206584635358143203506148454629166350592911474265660713640086282484139065565570636230791322724640477958668771106446442694677804277174938385868695661387239772102597083838738585455147537608364833107241405515369563089020254814237045825351915486529080598548713411663893004590907760501344383154802473313632880462055468142561483339237216303316338945143375215164337542506911858193600576932175187205023053196034868303635704135029324164943048667779906946897033629458479310232610913320391130258829019342308175049953320803332786406450108373981593935961682257601951163183778236194511999386220334758020572798598406164515211529032608465454590276087993844020677638739186496679023730173113298509525888807370377961357397352010396322576223977158458929944257336903406920687058442462532860681643267653677537175492706470827937420216776951862525986872198932761736958896672274280208236514193891415114369115882258944969194987186428353882396555227755644241970026987263864435344819298483303119591602069966981384425000846840601349846932439659756935395955782070509472779887407178911141714432001616040492886016440681637129440667147052655088762470287939256078071710544357766259606575668737748716826328111464257054623834669106755332549669403229447838432239221007846802464808198867612793900935672345203508069821485843689203880508751978734733542096283692078090325760330888958841224446666386833407756866514869722381496681231291495663477828775423067069143417043632956910156947065754591083826966896900182031071641974372038200443035566908765693517073626259923848664156243850292330951251314452214850080639366367761014450710462053174570117670020502739012485056561317553489378784357772110866757039482528858442933536807899684310460761777745746742449384869300317312627745195991649966222126138316604195284478896864111213054132296253574513443757170869794875677040403565808235237970856862499302842996163736472001934404189480947902268788373020239534817191652408617904367217421189771895839906868036741290975965777685288261683191757608526921893217424768456383255370314594903193151950423230396643298297885148889893500266390427868093090389327415316555511997582737406087306681742692497163032033767067860231630063306450968965250546034915197671891846721106159203461021669131425299848177756216688574390438330568150210082408698994938642721250815944349788927437674491808669332991434552171554709577897895172012262738685525701948630686172231825616255164514602055761607141554534308065836261557260066658696339328728093068407181083001748551442321394375266162110580201847624413565624681750088970635090443342883478594749092811006584536526423252729021353884979243568389193434733876450981183306294667167539470143166887946167589802483670207225200746375640257696502176906437426474731704886565342572303403217461448632558633441561140963833876951184848251404082590285370672354275873283941672520183570059842190897269909385911102959036872363715611135771965763271213387039453297963971407258230892676153246725726150050979148966681833113332831233343566952915825028435946910528111781740147698638652718419947577843478538181854426994988954981940284071771612023408635812663167647626081111714307341446357582722441771937506601083901921879974910423517369080281986580893637435668908392056272749556601199731322465771415755525141226630514945969451864404696207296063913101546193162628217641337343912111873194525988433545821609690533950386234683398057528769319377493371960987284069174130922613805500384491621728884094290517515253382165583120167022445052783877846403838937616458522739063273504275987382160768380639026693401550593154869526108193633560881152849768651853808714470559972464056899140710292619441308325102420035337990178212365983209910086867771550574776135327779759427189673341700693799854986919233727431489241371547279026771149732647216976366656641747963154323237315210744301399684278073257405600505256585690841774700263578956323778452516087948821029957548825957686063414870782413154225871884770651631514031196668906825025450667881065049859219166785044138260696076010181258308264577099541976311362906134755320938414232411091713927274225005479565965712344430505432654745534641151839382803096234826988007099411889727719274953396395683457831624542176306176899536374473993890698785763513777237981820036690100699999107760201337686338965930553269258272180421496157645087570369075385364935558675007878772623836205990649647102015799876785338062921922323117794490527236341622883078781685780969673957028777954267226463215668877017191291135084739114213598321107314441265327712115107271896810398453273038659528602802241496711775779241854593116069270223119406617334638961545323576326117792251345470410856701566648074669325110508049207952730860962532102156972766723301967037361506774685739568907557225119454472036828814081985231320521038491902936930565654628985618104971017670785186009826025759847842318437082627318300574393334717841949963742688024472959219374180396705369475842697180752593286188777746321513341196379274487798365554339511150487063220525164340827216655748384812474327580159101657670811922303507604261059096428861253442576232086682085117039169338512770958761592615233105048774391597977563909248107730968895632299512573856427798759418114184065239768873710019826904683059040365955530844691501441922246488514067156187398679836399884049948083930569436429306136357956023475994959472263557962445251793528588167605537588291194672366012300639263325461157911369385384843272114820919278768291273377606275520119898571136352991126645900478295585682869292391933397108147425600108882294933963599236024748591338497412666158091844205994311665220087157717048829008597531460868060177456648812621533687241632149313358542048835626763077498101417167330898989219341610960803165191563614523090372349172592523769555037445289630113651386694220264927545037528461435085190797607113098994465915980432880423007151785445775220857203836810919252630714351188714453706036500192882278286543363699678372847869497466354481794452602092408162548806792238815340688279638779288835215747542182905011901499659033117756886521639772630733256374523865367335988541002344771646870178936048564909558911969200476604389589526897736259312268676328149186091252877509146535215029294070746431685266962597218942056355127287509869062094306823679745472333337487606964071576772386307952198186320375008905212941825197197824789916392861916945046375174393135062248309257371037850426718843258464894408098447775004454874433530295454680989613174567103938013810362790923065307893636501141820864613422783115765800750131587167579405516087894382216484608888865339599223335839711026906925062287933572520686965238246492276998019962287543486371690855369157048782274197227280236276725931498379060747519265822567498126454856512396355597064726270601726109046890594078841905130436098140588249172485006108861015104813824947599681795983465726315119409323058322426102389905802351988469036310129250238043519729383666368473133020432466900200642657361100827538432090131963291688687852636792278651231849466725278162205276380920772153743214283191687814718754517511979182684225639315759770561919612940400432643413971532433197843483310086680377468425467890028016367875139868293813458659641112600929431158682412091762367844320958903357601009148214907280134045105904054315594514033302056783911652982977086691051876733787500344383738199351926171650958508697235226879456164161862198656249269560886110611875260178132279108535237625731590684072473892635361285663565852187731991969265702603345247098942495467635310490610476444206327650550758592618805417255143503261226627156569066625279660560284093901533565758439813627414867889782713173767277374132628577608836864727341417197476968587133666444408718773897077771588652679452049068856727621896586182733711482871215434679526293986966012787367964062835664215109993137890979678538865458242076856979377085950654958767312646724500031740042672008906879346951125753041676604770627951833675135525386053594905103945719027999476100213358422590568326256992634913638164363696446110652966170959418478423722083214425490097553045654547683912135917899874950724125632019546110362066747844305559915244316427609621444082664166418520055176478402689816370536655675538608596218144141136437288563831021874029859357710954479622174338733874792109920838854613707624490485239163414742145503895633424074934908359358599178046344606928231164765172373548877568219701578248155103466473553006518593468951500277840130780364877742620625780054441474047831812987696621393589541516104581920172533923098050561719510414892286178264223345401760001639230466502899394019884524974137202302000460739164326555157204993720099251627504049980425245271506406071305083034408878146258567695864456712358292304424990837743473812702647326036942750349382243271450299736604517616366085913080035776195957530480978395672053786765059589364459869030808032989530457033356651902276017456138377971101021428566426184540868112162638592654860633899726365022777485406078462977169285724075537132494246902258207235703024979254938872171635696644818525385458979022976665577520350442128588096818499523385690559540336844975180091848587981079050865814561544514884308261515764301268356199712125650262681995503131201228060648703867906660638556782469322737872132295644924846967645424807214060422589960539465411947400311237713080151269601928251621688882768993610764774816529296491220594054766694028906038558118000712650543600308577148201814370256791593642766762018335073862411922735357322196795872740136142031868710478550874370111303818508369743245625775230135040078604892095650800188445625740259995866253699040669636238080747155410662879419510793417051804775422808010104239813050388117670648602741388153862215885864858502613333259412897264771313518031382768901000647516705097656259058859563672399982567790765782916680294693533643821714850443062718565632548175501468823665750884593475915130818986689553852024549167840501386017623792533360455327266753472778441040210852647589957306343179257157360417839281765363465391232484143204794628333251448567904925530508693986588464024585510264390479871933087703215081266764286847301831575953261452196703625799452979191054874434538484023591165521790791066079512999173451227548369167988741590336666301871860263511155913593397428115519284828155943607310953949194972650247780465618821313668068141203471283089827513630483623847386097837741376432887356627666411533625524071533635309543550347887851570762816584951203825396356061291305442525603119281171904154682981814108196886851457241622426526074598445694546685219933624479220978803579138298854736977988205200840185871817816535169162052032487905933969667024024068620784808899646461245856294121939513745933798158492866171239321608101750577130394912226099670098043065141454027080690982888814352971554636757935657604221293808122731240615754211411505189630586616176236960856765561137299463902734348455516587433740127535813702727544894097683948298049203540486490765807246693793487146342467958151802808105341747907009935907080016212351806027968836069166270309174818348848165753637265768556701129680021535376803826812936799150030711687189771533277318777329713423609571103009643918885097464594835568741856972039940246839863631776335709579712526028105726213168040080982946491655947715596371593258759015174202429795678946310785306373873624395330401050904880204445534472048058604393699949858283377712791983867843493722774354120230217071066115661973386068371457153616448835199125969840404339337727809687736337604527098955530415763364061579908125134242851785580429616018631896474137865656938541434090982382031602748420606984941341706515036493670237632967757509109369644505188071370942236012170980556895337996613800288396016805376025950113052831064126730768090005193036670745684286080647842682290687451191530881602239944307907785780816754705111071226692684045683496615965529297237575767945348127846265093149014296291836594172143915509789861491519159448121207955935900552813251069623787617485630310041267447343205902606137995118735094106649276422914028024969665372180762849127008599259008791357343294047506970444727207614354296582162076919597976282984657119599231660763612614030363832230848057703119788885291422649349080123990894287867868824957671683178679565227493200950594084279575281240417879471258341337176790375052826163700667761690646283199830389093035805570374962234142919765415008544019691652466290736721865230959827525435954415688573735449438589649516924020200676950664875652587134889943365582734690896633060457892710883993811053678125693091242104223540734890485455437263752088734967364983619708469093397945107454122927894977385827549973699529828975489593742640112655923522064249572652571909584023561835664060904947314831784690211670629516717072418991594874554550269829556228548832753377599478104443963494339499890708322172317915538877721129014645072344352138087746790530961092302139963559003832648231505517768894393986184745352921363811934270701097768224327055424818862914824355228530679543740552864684624257694619459649634790874418862152958915318207714440889281315353770388736729158160206486653365185259417301761080424719830345118793922547606327381504919902140703162199610938610744859455805565376068014604696573293495517251667701144574144937509127073086626281589040174672194316455358152886421040859599287262759382925593764603474206947613345680355863428422719800530523324202113538158638920356615002368670051344736012150900752154637621500964482562974124535204180261188513370979087474006675612548436454251632419851986945462929152732815310975423383416641714469949785627486229604132202094122909646122506672573514598192304603269252978974786752410451466305361386571881158783878254972239670882889110648764229166246912269994262132783550148994448643622526902176203943114083569907981421806113397358104646716914355915784463820314270474864679563559149266547045979790085733774598674956777644480609727484488173624639896642067371397907220475768020139329684029637989318157825976537172854069140121179810906075669530351165018867285576613879135712047976798642449046554494677391509062665341236241154411631403531341048903672412539965273474945893705103508906912069601370551565831561228089980025734538092852364781952253698336834889025237751451547385584802210096994080890054885263262178621941944145642138342469000182439199650753782776108419414475941821940148815390013267689794666593815661459608553693916537203902941084509904284185943022472446041488718089511649675692501654600125415606212718485256321914377301270493327777768888906193978540584644515323978089217851171791883637107533978631877101556529599066723663274249660673275601798169757651397098499760769154798086856065134519642476632244411760699654128639817888936214876825608209339477028995673153700625560544481448682327549755210066783040761245788161315198369953042105903107627810415933015574471522597625610885530448481628485483962306223534673133299854407993015552100744900508916215368164820181157898022907996299402864772565924331229992268206479226052596018193377282086363692362861563999159953127539065373015114619236966389803781995540686720576516536559340708512594011807578197054806471295152083359694294104834218039889778576438095733979105477208557201762719651441238123977372577858334556584192696859626589203220422794371411235700273017611435965697532204770663874885940837592107117656061086619446088061592483263684747399039653109147966158312233388948042086642637637786573797668433767427927348647477292470791745915454517895142741516661457405106073797925930900368885287449414961502539941732635440951499284706479728665100280707159528546220029921929617020472788312777184375214914287556430881210855154185509296214216369480653055881164369270113231177588570586460863343322428107091533262347765880844900760487340330761570073180469514695912409850046524856219971380777022087417577351832603586885026340632489178519365013579898807407924952149891715426230220925289053393311466737524615306516891822295345918279963331953237970874754186234619359787971826520886866626100921609714924252408882139415619305016878579577245356325251361189409824658553959554946852996560958949173635934295601988487696033607950174777137580375149911448143392971671076385060658362411832971715773263775972608882317548109980188607234320512911314996468973824786773394882988721230879899846513705634767117220002265917125327816476000188604369247493384872216115870702731494935784612996501841727296724611180332276072994897713461830863438251263471485734801743183545027706165870746435488873559374611112322969380342656222553211369606567604068318339396014159783152713090939332830801012221600095067040035230390385137691617529337885100378154249508918603766248552073571985617266108048643627544552409029643818809669786684027484342571725073630271482002128132426565522096356117011557088125898749147688871887616036545555863401206941154037308396472601744083707672242912694856632088517133471700515795077002302205721134222877491421626322086096078753777582847849286770395831853921626918978077578950871213320849195824630196392495843683318401358260763472224595350872426641834253232782597569171223610857992904633851528274313976321482513898770754134443704458606753329553134866388671291840522437874690252070989291101558631659181459924218090428985503044563360505395275970593024462274859946765508669671376449117281257646676961797751516049454616894240840789283213977468402376797855661802618555323117725462673637934605126919873033056445191862070650413180036016108235829487304417205561420237019592175088511158081058685678610250919702046420240421852925851157194134086709601366026333292023492124385052845365618896062402437773960704983192833665762542821082898873484776751287141196965674399221099544515998460853465540451864880394983166771379274019742458702968788255609821177259012752763238766998770845088550804900594014383372157599009445183190580030740805547815333259528467244212065388765525698807312984773751346629151618814225802143902347500940456506943263382375557185303767562523215896180886495323607298989681974497601728830120070666387985206950277376006277315823051468775353431206114792481270448623926327281200799301522945193266867432119384128809376738050603347677286540177003228678047582750014973482191911703519385965843142027743918256996438827262285466005524722884714890629537257398565533539237490426715224572115331846628910668344241069476853185965303676473652377445386825516764765023302176360750481692043433799015482297730058400135230355012404209220505192488340246398775212098422640759974122176916215244744408998999907823518053599380402993554002544662763764704136596084769420559449645322476279260274081915713531082074027807976875163809954867175269860884679077101145828770453060816355830083929605410614638757754196981455833784248791904403559267684202979387795033317371093322251162958483054187477850818158038858280215170127630933676873506532992183052807908765788295117054904980336234931348275255038613720908512045204612150555772729958097298674554489244777468351431005904522392139806756828135806572299367718561844026771666652939415947473295334181751485394185888875806155598927163471974675910523092295237644137285258326286073649548350537779135555892835117926352281704676393129930950770079641184455721715853445903269801773706785588643791212399495933816434083847117304146792150909152138500806257078777003776498351247625259951075110136713515950928052944564746901888468551516176827104442461066368963230618839653257703968535107324178605274228749787792040237034500906513852645335793489788972868410249626727069721192149250914142795654520195566127580645441628726314618190140024354567617223266623713542784799866195551650233845634889550602850791679577677874711698675396271218038501192891331010639389207144805812581519179280212694363088001018635786970941537621958268839591080310528306948941903965182180537284920787286289515710362048863991864711846950819361154083344680509075966907898298735662041809909375335117739189303534989515267222133211079360970691816334705079650365139478393834401578275002960529501034545960356378249363548913568975118130195794503349557135484555779326204186209125031470614573240185318216774867330745149969633966922865795663872650016521447915072084777656811687054232454146053418945718324096223510739911369905978412359710782800691469325314416813754745357574298532709208448462276003592819634631315817651957990635229851011060005141823048340010151999559017198187904125815242698805440879644954320123420975907824035894409995935261069949941051545154231495538383278570614196850926914435879197721815961676269735439733880174247923591381597421573180590097042041098500845716168886323259332131552511865704971736231467839378523704245755294807205610820530698707210660220538559708000958977933268034446833294509533809136420269643337453046968807694298028084034966948656915034145617695268157587298322195316593997582213278048327519860225348290072270464907050966057970371163952247995021404113203347698564596913948511698012097340154922137006487772135267687248614604684812736171927359267265050599298942222108807029359960217351698853984722203131768716929826576623761359041857179572180896504642044652284210320575249974546914190929913711079685261063239397095930521208688261195150361285229600830661175227693356622991387436455084792971622922139389220221471208999394406628900752529133787198393029057162248328205845674095870230426028928968282968243520739136157284966697418090668312976695910636846452363296959922774800965256420537315288683931018558288792991143679856414398373014281391873602249220212679516733649374539638292487619289749543549077105833980883457585646849715242216285399849121645140536583515825311353794305729914072863429133810848739219354747028709442540063968016560905609404623386365815339672486807766475726475489611693354787815143013139862114595098080664853338739575360039040166968919651809177334537112940396156366341421767703198940112328797685014467098446881365390378018943906173316005226048081994024439894559823605975371579444721018284724212675193840398818515767664624626381115770531074601063488372037464341921871528061758588396398073164089588312023218522351956699996413031415451058617344319421522647018511998751209665593354141235333228388026943111380881755108459740913648772850885656172273635333950241515125980220850910631058429441981142660974640219726978305457825258858838512403213227750572128995960352653813094601007920753977355274331284952988408286543003490073647917010664378383778900325309067504871838741011675269654994326601720370035066622793416115905799749713321708987023361513855824303955417095706295852783057486943446957508567810514066923235013386517838282114824177052621416300989552061819051464251684205040999026876846088056316073450039615201992160048305057637196094222401601653388805721106894854028339983151480602354733921619155916041428326193844443444911168828980332500309418226476795939477165827347857037992079103261738372383936721245399189288429737354879685646059534386926397862648996078416613587359330242720432183506415042379512332182372354690872740226807492916639579402355581482794854070133116262983046208669082779340183176103887593612126445435633588100721022061610438251209890728160254626202121395754514337374724876201920367640056220322220256986042799294344814214489886317226060530996345300771727716276894174929003114951595819337801864614329001262326632142403360057984696145028276257125906252386722683365502383015114777482789839502149616283058163769693982021958009124901786530900365895145288630691109722586814672400499453079788210823980853708421263458881840517837178297877038111708627454039541297057715204390605514669874121530918958137595201403688910192245936818838574731265119598410053098066084735518724044657994433086467960663078147379524978859124230538541772388467639990618556977487738753018956771329427283327363579872200461834639912733158368838965618012853962545014581695623469007819585508565729241795055139066805030719017283359790415506632987782681062194627994224927850051515771755221625742503798747801566018681713740021100335921233536143500082205955821686324832923949277066820088623698268870184049632370485633869139982351474802449985310360553454091297975520284433973455561297764345952761008286394356212729084096554852899415536583832573495946390763450100319549226067284099876831700484951216956486674319106522016740671262950714704844922272905443640506787802493094318370934660473179285282511397975174325442792187867139151211903291756165583748323610458710596329038926032612621224986053026833772912693204670027194409428852359021698264394240724264741791719356506288865704875255147500056015336805450836924100948109892272568330060531988197760787356774352630754986698026789014428784411577105399083739124706677047838391580536245176586198882114012385088124788534449670478600983879770997172411251748850876252728149497715841413310665812180084400399650312322981329822372055198835359171536205833175533568581975274798083135358514639934155079168159699136460028126278673378277875551815854813556901829564082358291072552466520064784771361913251164376255034421001036316673594559583663996188701415345892223586621997493759789420989981536365418629465393685809859903931339444625382906041365189942034511500443446282978824151383267154381719349477184488488576867488116735697189900620371133166709136942282084088191079155016080299519747508341334074211974816950500857181676382055332332761810833577571505151887761151939496681722098033511096575034385137576228936573443693603382962589130784797718697102500320425209866241116779299061416778605401114140233156151887029048574127088747892754800581104249449877571334870934507702408449308516008783686115561319713296412744200310249889319460697308024395852494945878118003859511658553416329600952588991049669641746621343107845832675994186071734499096866775501161453516093424907521095271358753281126755568736366932618769685205840702025115498132148878058032554577897708096845462286409762510737863511056680247959494030330491834556805417159985751012889262835057148768973098443041235905586388199152937556627080707963806668337879675194512551849575298884764453576806923554116723976772450888009671898841717779844691284934830693249172539261887775599662216343541512619082235557138748629634563802220917797552985989842235609502634643612608157855853614816149374723271081637698413190836148419301493782873926056769579877273935823650872565332592223630199187827740286502975476089038974726052389184921063646501714224537414389910974041582151473125158373634112695207997309920827538728190738235976588858822790172105993221817730142040469272491083122248249769648552999675505699289736169343918964239936031011942220184583894260468474644735539721733429552418300318421706809060439803570879006504920990138162232486752591728366148338742137074971754170555822058128240594796554401297792042601454086181316226532888012997562720940820104062781020945765776418020881615871824435391746393949837233922068736342584435870815281984838165408622792912530925623815586172954560068128886223240576086568608707691541236253319464707878140785734241658665358378752646143032208909753423510422765724987988657037626955106848357875806977522477779795371390262080699703834197101350993377985758122112388431618792808356793385003379539173771264461481097551549570192340676826862981881212557747884224537148619782813578219638413252507182720550998860527845328641920554633900412236781482022624416418991424582355557436296110229380872805107874653119808432583232905166132702997520800682328283655867529872455151474497418276254074027223722855555546219001682120333296347479603707632841364375018562283197211025614288159846493502564576941556186148290913685309373235435765838210336846833416921041033634579706296128464315780469574307737506041117369801462091802067809339438617196119884305825998641319310764006527185861323218006228983480251813613749931137029662361456391310980500636658155666875869773335535696178884545125423683251321861290381550016954678138315091683475567907577081506492491205212871888178829566056866077142440600882210672310942649223970482932505088272510015901944401606335782353520810007401501772900249851891668436608562403329639623610147187036272610090368311128450546258361708538366005803551561183546471073791229912199034485302217004937197052566514355514813529956655275277125969135415252972989677266930992451306391910958782123912470591521861119521819226878143365624210927464041529432018419002846650948377316220016887533322953952795030209976201987929906806539119295203703095909103851420617688787906674182584622752966377744362682382446231127763814371464729844034212541276769503436574647931884384561896864849544341578068332862645531547822286043516146591058206078249508454945134531901132972931550472520668004727838807195626797498318387362710416425597590255360076122437303390287534836861955563285538483307633715670245948074012288448320397877398628909623714241401008854276346975147534776124662287881782667013398337574204533878866833782419871104540607451804060830102336660138196927140150242808983888898651345623866997442906753034975376000972770644975118381867269358892794936110148511504084790558030845606635585898356639387886896473787270140127371648449740948104540524459841642280298794956447646973473940563442207065424058727436981957797917539481288334146765002137030916517519108643817792955983395418600723799718447853316964685807421306853502569384592008269280456523410696211942240165195975279044824956420696181805400561537371038901256567950279469462909311527091031907639122592653906953355279746540654098663423552024438394426950915374894187719907682049031476286585393545156238193134405988024977318187730639484354861593762218980607878319457363980935117303695234010400091652187551414386768458776469551891591427273753596679386931030597695526882309814525542728816347504009875786977236755484679947063137271460965619349555289551083593595154563636371834458616808717801285559391950426382841012425904821572609924231953601696005458413243752029383411884669614764030132808066756298572842328804985658329053984008373809469159850466935182611610105855195603089748802923028653203324107825204352318020058694626959492186674188589879738727798484144124224820086891380419615297178372247457131982292584876821097502025868868806855277162617226191990438355679998721512609642844546556582976004892056161413375791783496625588638168067417891167910982890031985199425048520433519740568574528999164426482741916147939547108086344457377704203509230010118139441857882222944809334262781853194090810354669951939739151153928975441754135556152054860942717494441794669051095880013764510140809089946505219092752265443459836810454555075745594114168655653803059154118516055898317980917623274231281134417773846410373826112482508031700878304866297687368511569827427513311333374467273390784820480433072307112056534779224558863558014823848449491244951787585824875414304816837570584038039644312254147760533859794222308921973719932286670080240234823833283696158058943702705053633655292888191772212018040564842686438618858399330689729396857284380437862217537118439072985909649975152331849390773365432410165411179912941481833016350622603278249417208224424642645363584106802063689502810456593591315172530492472832588777888141819512377349079551379553133302686527751870341859856744291381136183025240802000555846432504837562155458161873409161266334782505567996549200969972613402142804619266461266050840160519329314350371447897112675947875525450437434077602678469692519010643450696650563203432482628211086826334029718216334011211899165161260480480604242656288354630326696586244094670316632413866005830300647229612971420752667136867107836607687883414398819429499583571074616296132314288790331843907052902752669999232244163774735031114337992997457720291007039246111414593046444477299581482345833477937317030441748766421852677380519491146160831269349231320080235757659383389069978118040717599196842801110824182794970780711979952051729186658537340546961947223583051669507629492957218240740252255883348448245485346195670212342762207068313420305716646579787828476915470504354505181117440239241843457285441950352917470175519721612879918600738014080178008342579632909823007345776439616658205684452970525704659048998651788793401468309136918752842854466155047820630199377494750602223246333696515824911085010427943343379973775082497857314401841824546944440415296152786160480627885183527632731043125384826411045868755962431243329325969502565326272487536420048668219613381673598673130970782649961592584844592049851999777291358104117119168692592361404591198239937947022352279230540628756180719732509098896285047653657073822905053735061289610504025677191232322089484416953451252965895875036856469596350400446292652707917039871731444092964368980388605018071118969897321845313937497430859702017818058598470959553914774761702831954391894053166885972983864607290943367467841537649433306202224415426446257414130707437758705436577847314771134379539015741150352457420107212914401353050065360902359190746519444627765491085056447544835391293730997873720291749627758041594188722223846594630781339938935826438809543469885906752941285632275231060019842801665959831444173860175870448354171945518026426905907898080021434985443749328332373451836315652685573002641943806994425357296952612294372205817558533749405737350322839840901812915431091165376689274804775906257567713776478700002392795638359646697260015365565885272002907946618948429736676721338401050094253385386012084541916167587178811495518257787402383202511878623332072857562483439175787235805904789781415537392045582715193229776444491106604064586630891285717109947859172090155590846677276714205269611497665027234741267178445621787081183959992268745048920757308461894562701341830961912252223666133383051907582717574957126282301698757461546008965295572540611420513434294623626749902702038676816944437017619960123954304990929190982535969771859773346958691280154038693215893367169650938262962019837352181512061590807350715284857399598394100970002888652147392613848227588598387835037720693323365817225451609582902706435631248042011723492696488429642008760744168936646570862913362036457421002770569983905047465507205833351414247589166665632537983218520273612227589257894967689743420489894519098843757468594512538289163464167871045279148487020947648188039900992253836904811657162742360103937391121150594608617133513288721496069445564307770770295634335488027862487220858605312702415349525337916228037823653384359380757174429730861803284160898862680306714311849940198818937122503645158255854722734991746395592150655820924821672709090357817055412216436077503819133266579660912883291323230987910888839392782819830875506920393429345099853855464282222312457262171893476484648281360258285362547014689498052906061340809048370953447590400968807037219841616102328355134994104282667592373836859711103276032177406733149754280915421657746897460211347610850385037743343308324386993051958287537220847685930792438497077606757256276889694633582614359078510205841383066980713484740984579858534243950324826646933789415920319723779509015908257538222627365106160904362140100523212649115788670095836082073926481173925839505776781735392378881211097405600016217786919385018940636558062467102703910965959607501365074189537547867565740481875975674550424911287320338475534365955644908451046276352245276457739631538305699532414839705256254997084481953061449111722726007761442201320953767342481626902506058680650728771145673980833358785428547260815396614689942528431011766188539485621389627249193885751409087746646756561836259994254381789441643669085367199701597017342356231963489408544329998902321711509481255997801629944058398614028726753273464565808134749673172590557829264215058024833563542703229904174215407279902930178304953433715658789209686453991563427532601621686721384152088388951570601276694509665149504786170502359610137501103313983877835630516791840622578251699029949023142471845443653504872597844176197270511733874383444755688442959538203437065805923570435560428317528545312268176521013813077779205149969223588706794002596911138826524868808361889610828330269178327476162646841055181497735184740162122078546301415213117513099372900481507181768895308552740224439022527530802011622796892138506949910720012189694576051785458298846704943341662431748916620984369330792269486100715775423337598743532942542609306775668878210380733803043445722818946704024248835271188184285765656543096791261238581920851036440917557593349554716039373358084633222909735187203165435208188207633649496637328845691931088632659209206315460662931951896009713162903959760401420275954775194170198442288159364996480103037399672788250938710091513249604313289409455403409358984324019558664734919537273573362970650896153672024856128902846428075003517851365220923725093243222474206213150991091233429416980453715430747105401190628178389427029001557700725199349166167844670935046451586479754840238304775869942107272484311492088178028379594421672219274352677244795055351360891301550082462345876414685897310228976602083051665816514178716846110248054251813813376545962172883328007894039448333655807317487710348895007847462941346585276104465726847533600425734302170583613447931504083065469133550445470096107503539464176713495240797161571716678468615847497263488617111659368929235200376089894398371933769335569584120349560119838482548071438632743774582306266680789247006534353068529441370794638034129493003009884221765515532387776251226711445175655280429864315152785808880849331288706053979874182535165799277123152112874187051735440616000322606078661064268801803490702143453585040460867318752981886968118634525265762544115860801825966051017649315918451021615510617933604979952826724242386860833862027425017776288098547418746862332409565479124671527924893524448138440494751478462476198360552536411092083300397844200583478804986442579998604965838248775062510371530462521744764811021515161558895763813032683032045703440407578205566570729386457496776405657139651383834866240863428107086657160629172416576310714414083503318441217730752212177943836785391820085358915998934611496115665932050221984154611922357685606000689620730528747720560432398576689054706758115460084639351254847270771047343823674762485266163603249345451060487196001342972966680055839571669806914949074600107897829047136853012489113595277322782420063606671315232933170732778727384560371720124054472380706066184164781848181506302527021969117185031003067671321823667317284604656413516705886201579026018016397557450644616532953130336648679715603359912771559638277148971358002253805311920484888226424003593461562869730732605865452341516775711815228312373782927992869558891144993380558119266803018141300480504692750404275250464927650316793061131048240998698973013640300485005029516172612482467943431141416459747424333635433573244250091717355431284356883770922360578653518402813792226518210017351698658430930627795547090262902603236296070558478847470090131898579755581130467610275995726742616178520496683706928680235043205799092646743845461787644091178547048166714341134760468305921955418948783505106165938275930478195444812712689456328244946594527396527697870639942069072784150124190448365050251315860660644579554177149144116980841251958834942249588911429521267643722770897337990325752106303317745804858513567937086506842255849510018134597410305001696455197870204433742306285786821752175422007802746819073658303411566129940433041775514413527160199749726259370143812620775359745265160991669287666637395422142562043735742830789605254515395049006690853103765980594176638131954483876998391679698843738051374243175874270467158273033929854669462461669365940238747513664936009280176114669411860806052969601518875674217623108923670283707415480818231645386584747620263084421138228074846469893116976871805496906597428259203778744547010465318791097589359250357918672605802659967062076663676042954856829865080757003146655105420739274758939552435527330101427862712856390042525556957167743286185173320422068718691682490481255110882084799976806892841557960038606592389171058489511268280343591153918181254531277093799366354815646630483076402128582154664959597009366785832707566693945628168379743673127936932738657437733191654075387779058122657317489133962691437323839259939694655915404858774996667012183514801990578527675429012716698977701941659762975629527183619541314013441220396676795796835153685036247000434374042950138388515351470943857451067590128236606955062149950776394929773712113595925190963270302566189973479738461171582057496087253596307467449770443657212833702614480523399428243985046161554997735702521134895003275331234904297310903494623426387812171613837818275317042389618936198222289514962266369802442430214262331581199849966053166803209805071186062556883059232185799051831857892120475271173119687296608430656476454678550676857787125273717725248141425082924850382430769038442530934742983171230913431177790437065058600760301780033219646497450543668071510501502624878288272777167548238038363079883466019150600023917315437841280473412790337066146793451760029626533690498733603967915092018546835722353342810433644284090962126541862517671574116336436495597517324263342828349028536761255366613624976120598356530889070276480864970241352206217333237130780885753173170688069729329346899709730684308996848355092694693842672347717203991240043231549989156791489864214245138560187991942747830322388261654382976285328151383821432620288659146709505486696089368570076195403285968662679385350229870073529657028831487539893108179316640088307872995311666665622850495525189372045929397477738908778327425337183493975838712574958934247117295513831604861794276194412291954271621764589543232729320667426629814630751300896984624658203493931996426061636854678434217743229593200831242747785552872645617279753135269507543318603744761024839675797607893788623475238968949968390944045932622799741834676740879850947772881106836854584658351972316018217781191970574064752616515265755971260806742306326484336219504183266647827167052340601126469234406683015135964062897413152886824148009240815319968099609126046436059019120784034636060922284187732567393200708949437266695753804182395771054898713332388815112227068437579999962805859053775647842482238848834724494541075215282268826003597631085254012774297666545261453258298341419560854298469685416221839278588431048963161395370626792004067867554479306191323697239768392641125876415982551106825390654065381806117020923649016428701712266242811189906641149123016927284643403052742718516143302282501822297069755367583480126589583562121229092384480284927687442463867546722312145227206336019866683417588455731169305844825305899361849835380967075142710011826792398062741630725431571024223850152428131646101667660571555524402686692822802517949242565735576385997359596792607807092665708401321920117205352330324229633523470396767273449957510521651458181553826782820711347097970045151097883086019890037963877265964748536409988027943280045878289628045178770195322981712675916456534988456545804588118215215111899698974132344752481763000848677965028159389611837715049803201344127670468220882962378045798995295031954685581939390930353242582352785204088308019781359588446673020401445814940805037761003732248738089679754497512822124406357448803517005862852016293015103933273838797307716963991804825532843173173264712529045630983204598471561988809790299173810944019523815156062696741892442484410740035779669362584544345785410173464505481408441007389908886085160840846894623902358683241520257933548290541124095148387425942021563752414334142176903974773140786215629254565911991267891593175707421862973969730300980223469049836828208341785845411871475438763196705564022708014355613549218856287354446118174044456006422716353227674694104946508591364769682247909001365917124770727980630001385515122859156945121950399760488768115117172688136306639833883878921316555366501467801281254834915812787716390502810552314686551269580981787452821552923401090675289768542881109734233307759918624245879361469130917663388955731825828449923778817014386629816614273449734513859717083053981359977365905892726033393889142220222970175596934819125556768237881809392899945863191153159753772425294934406143649672271218744781594316750038801616228224936994806427951949622479193656861464186490458602116711339624786102966240264614942586445472719129380935804655968130791214686761605553129979837127752461736657265097413077678868614223167680840449827918474595112035500980943125014351699992018109382586541691655994918812639842293476384766918400461692836134259175235902409917542380384855655736946888018714704730469277450405702202409340544332835784405968908100622426653166334358426622654121503999877148214266301789969858706954480030812394842862644620300589459840921070412900679256162704592531231238863937322613731466157739555540692144396391554664660079600129298715892584921302393151159991970799476401270702700520667212961073389988212758085265597383296828442368042576208542239007711953737720023772712309001254617356551660726363634491645855955718355082920360769649538355835375324435509777978600497292210912592450526476039550007214058895443575625273499334806627594662263210281835293309109517388087087717314596771789561157530965535913859030325013094275396788716389492235944230732695040044577481794857208509133388181147809903645100359012902268349952851669819792250345567567411544865918175252087335603439269898152780936313712541551221867434069182015511967481007936090379508963808844789918244296510442552518250170462364444008900518380634003699202659342878970495974222116020430843429751635048006261844184914405588145928216545291530449700566757403373621528988420180707271978765675558274265224220230237629245749185787874458728221351946835602311053844718834639670056896058841904126134829619088968209123029265586267637832179057660833473159114565711044948543641225960213169697912053323322509896668691284292372190103867614768425410211010581194758829039789951952734220306944162857276091113138731731305340188697868787983167973235217496293139773742989039278334147150526098702013868632505235338733307773125768683959673869592576976702027336872823795534769885652179379787904002372816178109928647497638784170050042229680379673160763195218030362724390353013212855940003714972714325502947430677224627844223985405899600810677734790036015687848633577840153860297468491661611880518732367260791806374163367568609762778589264325236079266481169496968768327447160064941256799028033928443791505742854153504334843696698478448184544627959816268460847401340754546642992404297596157404377009545954146551679412225233223361962949811355807590101393268227604930761367815965423469784061881985424936900036441011312323019717566327177756780214615575219478142408060185242631242373550395043892326790577146844127229889007854955331860036880616383850222581590476349551161101811859919066440674669434388464584933223690734617161019012481908042408742090218489471659617078732882751898328227412805285644440605038902457529577812364955458819751225443676491586764054829503261090108860745351553659754853902640613605765514848698738576879523290107541775761539035358525122224828500072945801481413012207860191294701540573217376422858230838974167745318386840137109301202965678864500091371777533850275191149109355400133307870762779508537135134294800595873221012880337385452208163056825733158152099437104107273989112676351583621037676672248505901795181746086525346590281212795236265049907991201319630099433047698072488615191055683152315791239575270668406763514874943971983348562612883729107617355793517031250627218581757459829885069428061045117307876693551082003633892629336381850378291473379795517748446664146697039619393530699512081998586447534213618124669382494303785308482718726521110525732206207987877781159522947829174421609886511887598297516745695684445768564566241303830835337915821691510780696746421070691129202946386544669414023173183226027255307015101983661551329362985115775805536426216431469250945189606749444519406100540411895713536503281825656826736636846688989288473067363749336172505790753486301012907947505114666994229841003258729080661193562523014635782286654314592834939070777822031161885868201555217095400529969235423794069157171182058580457421216214166729178720676982394058119912541910544685357296050405862014954514648181713747447940735177302580483555678090564795536295818082117130235690918675924302434158092389056383944437774293015819654940761488196222237999744146054712158316504894408432292337438965801696783771528872644470256303802024320418509401849364584666408525098344321034389982643551118349505471099035049081795343630538772587620737791908435682237431300424527349404805655312040589942910210443748350390446346730392230705278801176429940390288913072949015639985842104852272764936316302792128133590986662746844210135814462536602482825929047732493481781048074870444623650690521244471775806888473593670700133682220654720453473746802968645987769052438322109601247038531233663741944661476959781374037915025270435537256538540738919001380864131900855402240947709892310660165307848014962229879187298557602925551416668372168392734910745258839149924184400725124982626869450656904245037239424968142810582502134183796845117268144491682826577175585423244424951621291570449374414991282804005629900572314117454643003471204002148860893717676173913932584953365447303238000520512771885428976853152999554428227138402017319811968027164736432155108903967603979616879252463817846037808070747320085267581390986329384599377709405094498911169387282705214357181742269442980959314188624220799030672037676942915081259146020261029313979802213660327208395839302907181775969841623541445473561327682065165314388629052264992523225061930026491679038881573364120103903255172839428739797274696984631793202909318444033963107431366473004978981151816131532936468169684937613717802965071601185372607651741710241979046262317912668508844767076901125680986681849195957137137648970004589909750392345184824271457195546307150316743525792148132760158160203897838657602372092658184291140735024259056793954638667606118305627321515976377538660558861920840791484725409115561670826892732444455831031331096246042112584173605747626294395114367163386550087732659843420085896937678991859398327380821308331331464663384740468440455808141616372179935270636013885406080528885938620168544730874723536113553690836686318314506650986233866972613039155796732413758953223167016733219682072633138696571163597906411591182056854557812161282164759343569675795367205649227686928687392412452878385754050013628401488245289059912866131915784896404968010573085683888638796713894622795011666594461971711711009914755563186861230192655354798926814729690662571341835966438726697762109844651385567699785733975455984052910572187499660849067838404969791459700260366095571608268065223024988628414479878480844790436625710760454494181707977220807974418509892379211882645753460811854351541607630884258013680620533851623618979145866257307930908894536381289824897443914650302829767951939189977089665393843527918283821912364977574520888120677726667328194947633577987520395397467409342715298489267747898374683069453982182843603535236487173558207918637065631450612732218220754540391647730133621614558591461459297401561329915313601563078086676426286445980174832729147345801439055083071510030713147953988300722547083457767377627529983127345985540680436255764862071835594536520756619873456053236640104838746047194879585446839781308446556638705125856321177957765499286136349882067296232109682973526171024041863457377095178103871058099338375851526042224670477720713802755404955474955858501888245204426485475833073109782199606426018203215193326220749019464807991633944128402400245230084729983792111960660931550862485217548923414367227945699439780636840409089742343370177916678464243581440548848846763154069015430461386450524448821012331500684365680413645048591234954846562739333881236371577401985311067775352754043594506365406422892650572807820725721771642792993707060580750454541935881985329134968781705498429195954191216970651657252340077116386443206710983163168280971359021334114728258622434356979669832657014088940849058752805404606186492735497241089478459691011882049353631368885213072539086195718353640543435175869138897945945470797164837267307390083250271257770406979736736330832261466351906717367160838583313617849478789071334658566198403841404699667767691868551298020190667035074214429429674308552573899859819580559467480469815406620201589194492205340158051523474834875279709570235779944705463359511799799045522283801808183363507832924128658567518610032127841597467153924511663844710419707740154517932059423337220041214710216144665629984621067706327530423176683135672970325706627660694261713566443528293531625817570305728112462743805948060168195877851722181391534912278966081306180955668386514875113001971001419191790107914931628449679698712584114095358913262659642126024077679045192966694983989395508067999399242156551764942885332299359429758000142429555071226441201342624231291360878409227622501371446532879709884403403081733522212962664500153006517064447932646591781019238447480224281107501906263956006990864125089746286898410344412840614841550971574607278847044809936477968623850487837521239085077511504225215244305360330774951121167813302105429386666033014216177645033810807472456496173238329300421385323221522414570335855375526574386986988565852924446071647688424635807402413963912846893892062199445137659998422251874458688179066518172580328750406432161637130234948956985075078186279149733515101122588799003011665653379692485512856788098910176852817352998541950169617516591349080392099455493914103410811599077720337361732438351821121885772240472587969722277691254824414491321748487530950293083770934633403767361081591687163060181718816494690428172603006030430208242395042636698377234788686291763187223059704938035869773896604406596378022641589463717812170111435147557690905160901824619151230347299274330033574243624933806158389389714761068813487685490042902416644441917953316587785117201189455773559386735315301570449650146654208537862849338636565314968886474991579562588023106243993738293805420596281088677961044886986243826014757120573010966376555390118840329361916763886217570009219357280721577197645905339921724360594603659834971077459643182778408845562676859365005697653408416402400217391002271961006845902419641178102225529032717746226377748606922612288989317001160537854115572974577650481122929674770561332021384424104905553798555003757452431316777943941003416534967779689556419379628616121755534148606599599103762285814851851436277428693572627382606880402048352731407757739592485419598761903782807209544250038560947266677736425348585872669658087958031636319339223889915875742677318728389756934311030773752179705043967117857282160486909208349225018966894378156766835719342672003321133389285881035794063848326785564281688110767217241097972527594036932644852043895426991054022097670539385996924673167265285763889516670328903337735603086254190121033300100083446490029138216652562248806303960076716281510426521381159826855844403898927567138056529895429357567286151496965854821037562947922599623107183944072441139945085348003711228164075536314534663579391922256987600385891381974766253801677946268558145077222948533237781241171615560671916178025632289787297486313027503394901219473151311852533240971821077636715050720658427011318652916442493009839641215146334204254179177143306775359079002255091088042174260663333465490081408270000976504393224703375205892398736675541991379442593043737113399164038184106655451294248181721591895440884616064234749263481147661659513164650914902544484218763540228187770725342823843408932462782235225144115822599209839422506074110445093306069159090283022847721995270278981455815193242539648924367121522629679806957988021442802492691387837320207223889152543697521402401697718057958226534152734867615429298987359005732131789715569493183470805689180893328805721247365880550909715399106059155852939079923059106005237006772111465817582852737632253829449980318353118020364926770062129784165409046898517565637996069966357466625684980799322836398530273711301383284632098039033414183625810209009271953017830409309170571828490104077694612483569626097625862034779806255465643626185112514175869575263733511741540466405665021461145195449166678831397017366236563039290255066459377634459636715073617104084015466893233832819224402990833509775450101864452226505704884430131667780748772508444081096163275307380066203654751434677469249981835119783147537454879214942491779477204369772723207840497925962054040735517657469599681167216240687206784800436126577280156410601645607129229270711140544631135687273252383408341403147240692776131646550963598412720378640092969232274758773690339089404932260085971920175316302719763784293606493747937611959957833559092731367090504167255836550867982477099701285134457733054119312830329264513532020248099472147401922550386077490922866413820408102512847112585648606100598320278519580630894083283999989905842552809392534758047783550640837550860276119733666093463425608492996189500289700462727267661598103071138550346915637666828280672589191201973000389181536427272089722365267179859350925491173176889082830957437289042408315677440698665401636803856775805939252001943435327943223869079412344346330822594015938376303307723411219639118223286532191069515957207491855021164483894850245644254611832848877071546512268568087506929027016872432832289223897469723396488318367590071908911812055322553735760007166456495475440916601063000562661793263703711501056213737620092954077937411870680041312900485303296400487140676726993369132626947315133980270055020856253600658556712891077409550622634579807683751842296269968428675223710089809280381347574643601265972040085148834652496978208330609879202253783041863477428524919811223709534024395883885402317801593490372831357833860618247504191894084288586919016099109185770148450091411524105585072797641903009590293345537161757628817136397525756089928235653584389712264025120883138810269472613238568774934444315825191295731763386224369784494528596926449007669341549590067712782114953521809101720905403745952720243578807638444742069576815933351209504775747053248591628287017448724660267923019097046024395239267836620196848964687753896574354381954237548719780656368389206733019156948223284527832026337010284648642423150641550577156955353344140374817717037544702634343235897877391891949616441948146973017570059085340456629110667458857642350753413045969861863254253666848307547587864657400903126789324462122283885586059365291606035429681051813885946038274640153128681402431785915960458907501053351882965936106131479105333204646241836437822096996677713677268147107547803468121736151303104905958942009196922445904244800960227268936243452177220076975498881930684003964600655515980597350365229476480378888792972797557286205772367845422760985514716175195488156375821066425578731499603076684377654638088776129183193226371955962628891661004176758015054219520331623445778843539093451501448616676031163485715691306702901577592194068523941746067081251542675960363462600232835950292498510318720333907698333091737833313601890982332856056481093625841203853344301619192601720442962318838573332025992323781419231314184544883482133985753372397535057168976781917781978616221511646079518996749823997661903175819260573866442385740444908592558413811296075233556747578776815171509113948047354465731676968017528660811494818732664140142192731679311197946575784745554604458313580518199310078120493269131771434986108644293043268879046169216801256715046379550571165284793659290640326584994586780556516372200682133154382806487622469114607236553201297910705873672544686541334301297068021560520010831472927153542316770371521123841234399053928044281291730606544516395762251481942714308135610821907320337814097891085211302113828418012691520065143270872408648710770277521080654920834994405734807682033782097728953145223272483454366415480143703284885570902979832392093619456726265778055042360401726853531788468873102863162012370068859435955646266891995209913533140941021573991367033323451464112645311939049775410661752328668158251619377730502181233628775038486189146187601266628233355173539428689208447413386576300073813285954088627311625561838947196762308416126900955153607620880251846119477109067347057558960897482165175263357767403801130164976535546425121499349706606168162279758881556964958003528780983673353538741609056400965330543206527727719672627168350199970419537790059870421348336745793735581711767462043593292673354739340510433376810148898514081472146070183738858973227726149136342579078971092677438088976178224695153387583497937564182458683390822244655963592930896014550487474974497996111970581517934565286237548936628166490877573926932163490759690785754708927594850583581608686200556672705529756823714442855595125255248124638463981000429458984538440997694529838718210168196228409546863800843775305318815918880232784211993000087318545908940371218086218293736088089498987606339910280911914443133727596069103291964474871152180705398876223317541045266753753003549012176853470475320001119021333778083865237599765889637325717345756544007800994038481654182698949271568700737265312562143225017634808633031356236121263791426153091886618176020099869759360639912510220744759899992842756287386457098753977753872360182009682715041030781647409493171410365915423912063894956827432027499383924567129425436570724599692818236845902116565371778282251298535817846411619654013925334244969617952713784628016387205683774766935541609250387103453479717169434906356923743815504178654823308052494478835864582344227568911641735726612929715502490690988811175803691706565333555079913252724916721005612744641880077687228730483416498470035013011805636776517376480645701292741336025108756716415366004540524471879225868064134815470670820214064528854241946986844210627644617181923692974255753061125811994396988857678988431703812000455572186072921204741531105127311215613083082379693185266814776952453681349695414578701038617084847773265457865232596390258164776024899995692703634489160517675986314142436387316633023322428873593979958991133134291406811563279332438080956034707908254199658883867301804409811191083653828099928506943934387935765910489981273764860996599927775707071987980400987327172051882560701997766619864818878210858783093155194513019301366951359864853718449728185693685728357959719379273765970299907094771416014703305668503088382245324893267439289354512606753102055771057860690661893985763099029655750326569204392436181628793374165864583381117301256262527444176580482380733262054028566375123830861502025814170296508029187073799464648517310956663855036803601730103359306640885583469570830695880110401921646284901124149266966131226714293828240830939264964082004489582316620475896402200564791474283724405914403405037859502260880696264452433624875643070697358216521237013893299264300745181201387544037832253840004999078469435813947538161772749205571850573572889843725929789206366225787952882559703897660236491180193572410617839465102170560014027689392623360260475002341387154505533782013008443489758304355944665121434650375012283218478442064156001881109612982045923439247067396862060969060955492068742417463247333083322263904743687677022001184123251338090525039866123024018661846813906543248937092273329811687677905876839899465712703845727105347734516534388105205756786794156290552491807464956556223233999540006450967638637896645449994519121252717821393136180867569254710983119132779423622713817009938921447612208982672248905158958881078118141758734038096517517072932370692149712445087404076355423043343167565077848548755095372899852123460646143808495532998241670586170262785652048335906543411838121027185385198458537686603633971245594698718841693923239978343191888633898809345939324640684531681942818135763002065039756745614116335451691389893613539994557729706227275282593617882637886895029193481316888529412607260764431086134443539954678671344451073198876985419766008186892486288851299557497165657975159897652245375416797293469522799640882038472826508819016638598838274446893985544022437594234560668110124012537025794468803408056790399032418123199779618084193203486587270110595751324336991904975166695732929010280918330484634936964210802914848769636520520937150853699209604070455551387896278455853026060384354570230166304309251831960980618402853245979884659400291252518448529717518060920709760201745714103442391645471536393719374780528159944463886896977410741048791569849038088660523711897397490630140583033621866341276848925862994823482297132310346937566169360254209767865742960898681508788383879616436481239401163295933454803914191490086036749133934188935118258995353760339238406812571467030146908704339507064823953426598186362072818959369861174540246888670555910631426905308002801359737418280557128796656666180088053130471974894221418145253755953913385513296483486299700907524910401260203094861930206943193671792619750075439524333596639229978182940825746106161766549261714669498481548668884595545142796787971131314739714407362690274834714406933297722132824952792545549030968244094682471933421040175921424301295729307345807335460946130252160031749696029750989278894643587969503793633634625140366161556087441621377096008025186881383234925584615123736517550013078841967642639844667893992581137492540652676534164728660737404976201337019497806917696118161161340057380331654313749639128703664965105148694726727795585515636512787284397009686865146739727899716156060775651100300841812883455041236097911013320613307942969173782917750388959734147759883422898280429003753493993336715516204229257424813094962434434749179703617628598698884460881451510499739218238586133740316674287916982313191359687199312210614579094575534454518571912190069647456093641109673688409484636892352674594177062802363714287513564519127896477942477133987540311290171207670450268662313059415458798476466294269389873323284505887722449664649416383016343510784459980415479219660396211036479230888694120348702389187869986194027748406676147247813549812935673619030243010903230172021366327832974291558936833487051419621485304182849030518265197079616154170490951958073571937286348295640565262446448657629334960928482763075603615134516946550600457926277674610796877792569816384418298596940467208775906311599683183131050681066369578745278140106301838131358201611119417953550718826181195670744437241687206356623418339321638479190563061110130662099286750765722991206980425312022021375777225776773493339061718490798834618514851454134330928669700573857450283408314394662244859353086272259854397567896028683314308521869655477164777066810565332148164649710898004362585782245451321917474881232796298700682018321371807131371457108833860111830419427085511037255812654905121079405632002256469213384246040524102368223458857993693435282279579038100775452398796557503890116564031236277496966099574322922154071829193652503803019213148985780972425628544537237274779663782361026497389926505378835305078388414076882216651777190532991671770945941047436871992131789234610071546064210781291581329257526126057206754291061730672614644185944897162821644831766939782754175095275302873405994668150061072770225404893557159266418230254192117917419770820013085239239121919362949715854732959087279881416693205307089410894337402776236419468829680675111229819849221591759365507113878268209268548780361792656289041741273500615383361534840095267867879689883293626190438501144309649940563557650851818873913202132765742036881128458154608139067567419183134495991419017953691014310264509738570509080052641294216875219022358766485704096502100384537802851177397509053669568882541660345863850016830590222129429466849170795100828490790159031633944935781480678004710604094806374449501733034910761006172457771720143084377740651774829595050765574618165018826152391536567342854896616392868235286689407625877294796677411047620334569814172584189693224641247011203712243811312621977289870147390413448302380562658775461483638575825085653468011205672459031678017755371006099586347863630376688685417801148536746802209265338608225534867849784200902137149092168190213779559079834313433412153165344209207680389673961588746859858900982361773697283911586048924504142023618830986087297974285615143912277350378437732125055415086036881476091513621377668246310918538662384039260009090465002114340579984127822908512870870955513486086813409635956485109179152119288667246014999570521476236782261235035414986681765930548152197708844146016404747645154076496652223441908149430261355019098137381037600770195441840339942038345886976841508356123131545362978872795078038579301434099082904390355294429980039449154652580453101663289413524139323701143058478277429198179877794734078835801303480525264458254883130710074076279917882229324621245219617744185387867397677410468576451496965639873043191218099390651133874479696526934623447158644521407648835309705264654673135231538696813991168132910011580270005451992625357157710162044743279750567016143753916187453139162756363880558462795535952310497143271188703564077372350702474305882031091587943771363485986061064871450203308693312855500552420085106709773277658682650597908365979746190385341577516206357139761336119932889303496209624469572247941394472528996907558330113073584971926758837310355943325745353643695747107403475585722548259636000846176314759609799798099524427174397088115235180263796620783637019539770457949168946747535310191414744273628010507117066801946125979897200261275944966923816742482221724561613922368997932691229465842820655847847698222825295526025962629642212309180338434381962694246052165679200836617914831440740725163684748316934017833971368147872654825304767275347022261862982554377329160909997263215006060039272284668347040939369982290473093158190783568830638631096204906298023251725099268686752139439642437849235154771998783079718506833254781578607634624233646529868476963565595130898121179834431856975025534809916576677183290635501409712250205626475182434943479298746755493684089936183205267998071895088264875993872818954311549229417531209499443942073361388988054453641994443306404039734911267125009767260742710890113377244765829562909950541459688710143434988660906095158406851571964035473643214259832463972838382667941056371293673555579699215788290030489369905512574243933027826766240342633172928504054156566956444403146123714775242615321351504607757608982006324006640286778548842697024393757255968483271895408662821309908214234902559535330588507027404482193911345735261342782338644742479988985110224866242145141083104722039277443459099212731091690427178077630534803555992851877254526279282707098658175344009567448875124881328739224267298963167335068935082980238686668666927324732579062631764976535423332046993642911763136838427951845975960200768256350472039394795720313787619724020331846593555332072882128559150032822259112558721863982413669902887306403058152041833238488617591628530189753782516275394142823471601093688183033123423363181653268877754567225852628417921682700441313370480606342617738328056924635454295088767914798984253291504433807663767621522507804722627215045080754448786575357577445423142872114525897611088877188454650929688718236440309851800598438489936586655998220675577620166860277368064557593730001064936123622538803124939060571519011374842460529287276001657422684701691096899085486542928440998103230197515673284551592096643628893963398111765500910143269546402237795774352912771446960981442225965614527858322285992173044357947749149094873859242949922057475662295081126077312496066121865372818120220714097700573307078128004027848432440897571658300222754192945250168488135385359882652772791560050895422308948872624223226616886476334316962318869369593111507292832250575486716345759439800578867875066671850220455629840433111426762916529681419968887359202215524991082609649889066557717028076541568617133801131708736602390163795140276100352088984030037218874181731654064431215390791828790051362951320211891149258153781629438327802626100944789964881342412771783635230515298485116101199316248307042793409331396507586254454517672283521978952688459144444580113356025346112857184919834193573058988433449694750516580935880566752537854591172311459005749742977485060141115967643770771631006492562673528592277129015856107173982580257099226270704875730976472576113387475988007014698102995265637790425087373003698494693908380288028589889556768590006800532232026457377319464770638289935337746299859002325720451259461123321699035113460997406939312552373493516277076764273821794234573405126908463426582459237029123145288812137580129146755738697107615383336851577629581216831308210919459059977020578661069582124254573831575814359682921906625744795507133208784271472104196120415761228140453132660840343657170828455765420796550495097538310497865972111135975219122367103102009415836397360769188038110500417368596278043704383593241489018242567788397957937101726339044677077852308727522346522709557880126009820985902766205745425084756604257252750162418019725726726947388113599760778967045042876370091942759324410920523044287365427232871713631940223005926358319770353977675327971520262049427131427105781947514418763419663091372936337483685236321160104251413535379083037794590316849303479595085048620563606749588762743771299251887546874583669622163748842715938508171447951092007114631453538810769338029158373453359725388207013386023206076731953611378247350952263768520215777877367034649665337164341606928236507287013554760963297105505837269691319458782989477574872809493516281900900171551864268529010491643026909735397905548379436410571363018462817996674415042463777335393942415791545996677218977181959674807966228717524865610333491427168184344808470784701133795727383072509861927973082378052797211288267827886567475224466720166039701446653503907167225134865969198489145073294972731988480604705346349817787921050417069123288767777642069807123662345679323019694675015578337637238897554965145238395994279811303185305012592896951501037936496028687092296443627153319615363874660553120149099299537223717301123811256464531222486301677737728283459689688317163282683688823771215488629908087544623132539684169078179946362615469155530233210136031919694029514061294525749117449164454256418404520987290306130588746611961234256325538112187683914533846926026748867968000613234660721356576922236456841301489776904337031136471965329426064695581942975680776364048436295249446194551106283832398179828441312611467579070098387048753075719692351194305330636496602149178364564255157497248948823150463278316959523341275584616390612621147383532504103846389567428117501428991671252432199447076698808133269840842927558625666400514895363897987217871410460604861490170962525894276796042974409925735226068431258060603906333944848887494347324315768004291049859449488548430237628983298147978574517090478598259658154120031988990302140014907822038271553695448087932434607760932621762792367972655231428120167526964738492491131961667171450750012259182505330838299194748743771147369932309349960998900440141008854495845049097681717781808766766290932712787594902044551494929753890603095255288520292717461410670178949495687572616186929528306747248284277468898998488636131572680277017002179939051078779353539768615826263083901020271197295569421125284197933626223069418409956230631480719834078105863959623345995428885546448000843766631001815855056918717206678844229104432029513618514185393766078881269110547400614441344561390074449535814308195631068058344218442956265091664533170905637571354638598788159611769690704547191415524335575332619050641035047716910640859581643063629806009200640803303399063036481087705499169464392611242895745667239323651880613824641892044731909092751996435705071709960894347294857942262054931098986822726148221319116109530654966312890278420126236162814314759745050791973986907942866527773807844881882857001347820500813666452906930556564842761083782519683683204457650726247340111993028499102501202795696489287968100022878661130658103226537060645597130662330969166056695066731005184711344221807223773543205175175046674227414506266817392487211422879092865794232420303528629224323415144727133687052867978775698187775888016166676923007115664268003215402198326231808812874580262385170328884151829091849584455648002144522275719528773787447792142877310915850550306155615859316120505104681090745656927847715108332183388502016774187335097093763385059823022264052765234855050879303351173354489164292181440110325504111088822609684547255744093008204377364620897367426524308840012571070629466224600553739962028308141901685219553345853635101733328073178558387975471057076738245342779201771650452962388951038416626900507591084749825229223895773086299403408202856201740400280169787129977022522557732950232100374067155818593155555648913606460467395258674194398356192005633535010396187449544707285685090390722902205278185196392606306464533881553415481525127372344761897950715862408486697771553129300497188467417971948725300215586688759425601125000810062578629911249400039661968208996754490364927246085618118365163585844492250453783222211298573744527504867494760570441860958801248731732691525341762908643424780768079363444927008608224154193239077778401916990264045527192243450055945577410297992039082232873006755460170444227573485608819637240318362244445011183193746344079470160623957025726265473507713733996521889504826411526235190163880758048215488950394801154342234717184262417620809552473959112216918028810841883257031218697375060218583657927263976964442914137645680806586727876336937818587463852168548815819154613682897169201083576733538151886001833288202813399178965098716727893650954254548751396124908450931392532941824959793820920087712059125014355479451386905220436063547028920047067885681119850975016244698195682207841179041052681520459029869503513557917363460470348452068561217878266380193112931050199402968837152207497141246831429497803639249415861678042038817950151934168122124890783834010401535667483199512225150441109403697788142444167026776493175327416467484468837584421529205865507508527562431419790603100378997803794963911370218281701732931686447660663735028044008680898596812742621244434875954430548413284778217906000314818988110022773303750896122054387484694518057389703936114566990303295313143576269073250671966551844609419833014362420146105778669405501204462160394294987132313198792527680633804369473568006924968874469726969571638231798098121266901967931125241887304878872282532668971994893931172983106141541632796242190152019877468991975617442414298439968402329474595033655733203381217206605976601058637458539692240021690898161337892907218260306410754502903628235618269528790446014673304368757438150725345345614643821964259563063232165495562415370972390395808979351914737152350887235330668110201337358944653170086265891225080457781101064170478742519528743579998714419930902719768859911834625568272684629762024287886012943963819684303176980934242052847644872422854787938297959454706916418320006986692277504008819251039959885663347130136074221755552407644208680937308045360002879090862199681198983317537280139097000829381535019114712801550707348484544283771656691161679476411224722762471921873483129332000922716166699217456260496130168302921047048851207007040389832908713596549900756480738277094829765077233191958695399688608015075376922007516058261949119642484038725375272399644757871093528148208438676548441886905204184467348112799823283164046878256204765103962658688261732374981206905875077409158335018884293368524280075102828149171878024396849659683141996830635781441725751795778488317571291216248444495807010010810319592632578646754327352592779825294574205447265332753175255840364369010864255399017425647382313691727740536128786773168619432917206483117448292097478856567329654583463921712447700143690840977844630775087249760655690482725662224449565403737470410342813940912324921419577525385695528480451600668393273391429636058259649272070045149678630966264373132266663439174419678086243738826270164092140300962561216495713898651112163474432961722044463208736265826844381336102806178062251093201519482394112392755236346789321002030826354033347783920518042607694164855892153437849894230084714038814350632586769853608141404192499912114009044215241322380025888334306993228130313258947097221120977600259326865764447457801565011756589947083952995737360649665764992862245302452824407782771603214299945178707203169902126023617588792084509095316029505365947947391566653903042565660208350943818654139201719228538186170130504196159786913044798031680828707503302302768867820084823604088192164340019336609971509012691997703198831674681983137505110024537408979797816563015711440131610838852311367840205321152376123915733051027264021216615373669082356522163560332728039396403256227095925585870105868772431680153647487753679729221845973458432353530803751333065378090647258443855476150945428321051310381389766273924707948136148930204699937497201623271681550817627554409057482073320567207526609449038675760600385473294285507962232420904445110978565501588635079552871345595071732534387237074203414174737113123443381285149426044798291173157056721796623431277697428558370574098637549264150907923775999973981272744905342573341425068408226115083640681840993652165952123717413038165675938557768226864485122573828443094570577924666355669138538950488900784772869593621449028250453137764371358917654261231610470684820052599486802081028798261081945766110085205651804388792562104606352469678971434980922091769914216156435303057165851374115980576995396186267595732492673048396060805224983601379260814921691899342713048317549028178142614444527864303780951365507319029295965400693767268046760797964268938684651497870405638570399819590047499029945059195124654971591497231287000792638818293267022790096159360457220039067969581612546082574536010206852945896588242298430685713762648113347884074198852932678607622180702897847425366114349472467763842445990166434530409880877729904442494041494630561107675768661956971120676871639968179516320450652817729047852608067917238479301057463024986208829779773460802680215959550128960147782012672002364363929086424042406306251517082775916296488582046746838438359729613194085993073777481174016631721985901655964706050072354463268748457535829002327037642184279586972284393671982489935680256224222532033312501441799068070155055873199102264111112687628909493580972230228781298268088403100593827527046997559363976560942901260330860210034759115675683040403389624614072480752513569743535403465258770621440631453650378532029016355709639834542873878768199460799496378388040590540174267566123899991253202440895513781588493727840202704847256214755833524403884193203348328614300413707226096171551337348506027906448413572621075841360625687503666611643036637852479292508981279805624811565142585827548483994547879381148144466924473315487791473623386723930046213356764825749559098643249271182489838622192862882366806311596260377576539958772512015349345749690568052627733916855913157156446341294018354412738450836442324968354430365036149548462776823081002954278184201797346672548797230763264087979599244283776150609067779463190355474661993512174110128934196854676117935442339094474580327133060225765336982520909976493929757142606224713115862190885210238180973593392314453864020268717051875051390551894523656467297175137821454961648763994939097932679405230348054588845780072149596970499855364470435143716701987511865685263535372066915232442655015060999250221518351158017703131278544111599666092890893190789724228331174921769827933622844146256216607886039581315051372427579065349613555861748886910390149500407140260139078377432311476121956515564241662063096625183302644653836441890222788467077412791613879259857403571195066276528205435523642735772799674136550992118038313120487877027929992795298389234733976447354424696269901903279190163230450733153609844193031347623985404795328225217518230118139863955612474951042913067167860152535821809190793907323386429814519843580140845073101704796382914083950823620197678535398541512903294613032648486076636308153228683080871401391236348924228749846137318085165175933163200463414496130030151317042620015317583036861088251695626895651064240067098918132191571070538900465055398195621184264022933435644379182641803308762655974430859521951803523945564158091728702808209363902559525745860069866542063997603621768679222160596429809072089197233523990645469432425682000477515029055062207720588000135896055353428233838131153842143166280648076297324410284519522479738466212755076598129033920388802637304050753418668887074370993695267757578617720926514725326668200229098035630628987507669500124786614644276304564723264838075130432401974694851943691126928544142902262239125873634038391818391641307724943109607181907806274198433375297454371020338219257200592958310238798845632896006679813420255203513600564090570675280209513142350600702567285187802149743693920299881441636439629655344894789384247070346857855652154287544544824811778101105375399732533616121419110820484236368222587946364131564914553697654090569511912318486165974818965980190189333119695848795943590935757182948332870503894005380679336252817579172522999126246469684746997845965830779782259901862456974372443422004966042648382199021537995962641048550669900328179200801446536081803166041952575418406587360923344456777719778641461883854813395191310290265060537077568692951910674251093405703114603626036711439878336339680003446056394009368199743276097359898610895068146300852896834285573462576493457471624437201586326724395530867750012461009678742045713957228103429182484381012977820440172769320598095962150967100952875305784336903106351127811660336294898513676646553431612890196665961092232090182507787577749261007473358685959439867633780917894505956760196911001056003050571258884856011557373630485201994631865882009945490117931540652642416402046124296411078974641909031390615203922749112600782995077285030035701107271558600490878208826514411796413969846616104767083203462677789899285968712539983646208278015323620236159198238772179203790617453889911734970993260386883979088942969623018896702794869536678104886765137655148680402323399358654577063601829363538804886488278450724360519877955600954693626434091712564021589217970721358635395346136348527798366826002447935838080879686713595096918238409913396285876641892328087402730739312388024583751943321020773938536652474337377645894618030846013052317041234486913167054622793974312778495797802937807886059754333548438732869695821941660588888726502791136978716690764838145953518129003088655996579495342281159855326259446000268570142613393970384753803155406777220894251423651839055575747436932846855309021121163016279571498737335898867650087258231909258369105989596319686586278806178313715161868851948735595388174916309489814453155361658687930234981835120627467150877969277671949648057457080919476219955905014389927127097765356955561025353918265486521844890271349823491303426776565627590078312202379182413486613138264911343422537632721267843047267274462571572163665559392012783287136623362263572135459612911879292105926794971781310365412688741860647798653651897771768742405925028878297898613348975406891108019990725201043224331378990350929744283268014185225498227907747855122504133575665636221153995935416883403965087711829357768183496206922519682141904331283253143823254076983197203037891529290787779829311641469757908010580514831803171924944968562977614648922588342624828008286029685508582025116153586834675280801205480759483631791360539594890573176805812031239632545308291765170713451156984716367070795895552163658183972780626812065474475732946917328715677083680711720896335473074864831994912843289799647139454755171551465918525014764695362564574675335100874631996274603579848822332553540333167568306749457034138870988456580749876455822132898068484216562390179356539419740685357406648485725393246696146486577770198921003404056772814785357278479873926840330962153029269407468067418276818848473281690432331342644633975035899186651966845781168526020593066792074105145292929219181542322931532396453088372145436894845429106732601429818098687998101503274124807823800757731149658428704898244865556180829717421792018082130361071482419606953979541632653237372368136983987753758291822669404325879292819201401166903589895526008214854573995747012977460463928496482108771515290960375024330817979340806022308859166085135513116662955456109765124136091521737807360207333382982232840973349218327628493882563129659976713774796417099207936188729089374996675066444012016124274330720556220313611230963678323591213115667111167344189575059183022768590077369074211392142656714406130750607086476553428030727570802147563197624461353460719760272561067892454901849451772183227409712008650220264060125200071170495131080273472211731568196771114180648348098941561029865121975175286170375176852829447059678728208615360900772696241716061215094315076259725257648301219076705829024963938576075439675495463365950547449333036105504574714671067492539890907123104682848080631336588685006627062367118361790847802008610528610450760250983193356415191189222813262275829527724079471348714068074704200669717539168479085333545730596557702970879038778874856378948359050769201364667092808721556737351155661199402374781588773946449522534700141971094773107031879972021649519149721091214874226378092797510404618711146530390980043468685273543965710934033113216426093265729993054631548025811460594562553087940517156749366553544601896604739443027944186551960432101352855329806209250083018359297556875256739171973598935624770438346306638506948609278178025200147988803828513544063078118566798535588014691776279027590473303640383000379386438100614356052845776374778621331247001405095719659046088379930305357414369604465435853694691763353986341201222126465237962676632608761495882626591389943936890071437367424274124062906425460528596653723623160438604114372018186624893840066197821878743888125700562749836504592859420219918238447410372477071990507794715982614725742221127902447008181768093075728113937518941431011939933822967052898328369738369270030270871343914670736477022899958318210302298019105841056004414828169211070111586678297181306169567617035977318528910587464699317774132096968516757831962144945684980006862876374797378051721871106101594196228432560665821754719795921171538453366882396264967765434056413963643377645994196740742205712447814126434822057729049489053065783410063628478708936956897908322411339306772190769637917735882544017802635959847470738497210574009832787916301673040540787818301209718191274310894889746216776017110973055560623766961627896765816532734153833285737227635513880987965934540282050844973560464662863845855322193684783224524848401588460046420397973560933356349576883693528832372137688138148098213653315601709072069147162754552124617777962332714703149237930349215883725804677589478755226362295663067948521142775259731510191914501871452589941415739947516250853087148927320743041618840938187579895013580273176276406664812879190988940068188626094259584353464351900677032843480232357441554864322697208805791582980652256454940962591842755213404442578204466853144596884088029080266776062991088650890273828257804855586831801173652274651002628786040890817124932622618193845814341338091998542244442508642777150615632960427931975528738146429378715700917538406171538169369689669994826174326865203736241696951634035380687692617652517467620549089682664744918714780587887466609424896743636997356963634474136317849106383058514210363580193503448158965303176796761506155304421632822090818342401515893642134828352703975961633197520986321953158161827325892264325872422180089938327765511455220233738575493430560943863454012201322048788310137913495121754790179936902782703450650841986733465908799305376870855443115482603409170816779772498244255440890015691894136403949779614632685400794706883559435325895873975323219162228923770408935141876345143822624033257642421175193418539989636682850274363704171971496072766662088156077905942854017559029652972462394532583703227403885699330279644404737296649852660113286660380513511581551758118459380029768737265120218671830262770893427986882673931040559068686649417278245426470193186442482230557143587026924039902395982868325656596430622590991952575398458398446591299754790214599476778111408075451316715708478846365843110755111127680883279460743150882047580899755527104269408276390594180630699809908391673098300345692674321946684615352306363329741262046079785320555934312351132798616371077673834780227420057044503904967387339785027514822831129503042550888328391328898061052275654195701495289885747063118786799219029333737128849094880178182595732634349572757685312715092958087065149814837982273630363170829311872462882397769381524491946248673957521762834637687130914457954494887614057524733537479457520343641066753401658826496954442478265177453600384943393249104079478456194460453334236435904036762601977159365553631757588820614017633765308267433530182747834088593124821580923698024998351906466640965389832816476084126798958007415739143811390616457875114211652263040723454460813133749567191115500237322090826637980510100831093347924400846891849795237760664801458419954329426114817206062889244644750666649490034136342984766429927427602461298842583768134248501315735944563790773415982931994728490511162721717377829473077966343996349105575822301840469049513460643696915311143239689723282727693501637269092309346266937541433987830441926105002225038584044762827645646426553661107908334118280017643442951924307659003363646348229621217810612204984131157548221218263935875739312839425675832163015293603265082675152639381923320609868832556236126454615382758047811982281529662113550214833719679721755083324317618631971930101958353814527400359971262135805716610675202972049747950552540413841614804437412312218477333563447574205497133213072327881222381365197418597501049637317641085920379561816033029794692304368672502159439108599930372127047879952628555860097930459542296451845440469948886482071132661013285179503647649337313709890920769989069120912080266477109323261761138752877363143642811453313536008019232605836194664294716679237315880555515059154149525885744696298502645174058396811584263005783515880043201797011166328474811107993002271920271456909129747694213314008732980661143780620655916006882780593092451676310116795066151168404280988930638149761527002754639910284576521121016658128125743148823423120920360577964145678228659681823989721738345316103291968389601621321174723559466691660819551805703026906802189738225314341793230700457800462761152636884661284270953311389150760792128781931392709354709407118162894550648163616986352344525649043800824201974985619859143893085662336594083362215086788324114642718365564373626133994521628715643517791770165240727818263448290650682393337459644004075607585406200825499059243315169084356232099774560079181713149695793538741049078068851057427322375051108388665357854189340709185190976189520764756713637929842715769865828213491004553902796976022052485999089979697674448067515326450579681823736483181126117785639087221230892034559305734523251814148305488858113128043657552750825016729450390992513401234583713803500436233849155461129035669412498535151599656436515801579833450700913444212149687632996775641710857265134696685040043061814128783101453039521358337805207151873105306628961080208136851304255538047701492654427521818077441815282008310298142650817862798430723704926292175771071241213853730585772035889892179862373249706977848345254955264956062156734472818599321116302147495085753235157192896888850557679476347640478427373552596480820137363986364816543128501421315622643113039167009666840630450514725095285557125172287670012336457511011997288544213238247676510809601916144373078991516577758211669542758077328994619163613458186517972760145784580539701373099016017844022435758495291116641070815899870300869860474767039545978380991226308844426853162961592801562951058462880784321660751713318015121422702052226764776382248228663223633124705856485782353822252424644225323610464648557947624543593115101755882225769352214987937054836140837852594098402155916201191879311414539788408202030266579556177206288195695464540930019202830117661021684405435764852860446693235567642431722486590591411167178539908692985621507954490432013718393928528365232582530592352272442166060954755366912648091449605498426093815623956153884859248012561504827402748532823053324844680255196470722423086859620531577620568308480307906613988770263394468543036061260282511977018404662276313225970203918900520365907084475435439123812375842123522947077584856670145603635537455558257719269655474257180995396069254925124218328913429678776233798071311022242821121280372478876548428965994250819768026813716184345118906642898522377100948795412479455409073224466462859122545953923781023380654497029905590972335666148045809274755367457977391392768810998763192903602406292325992355797679203612996042570876475340695701921540649423104415069678858736335883514119831008511449673152069403833389064233070673887804401667568306986775889291010415199318576196732774417389587282623456327627942254460315375897194234447498609663549607979362681923214045792723395707045795918185780868975056774268060595440731555331958068901065980553837048365565555742295778366955716067956027799713567265363581451651628151387426237254883766811170447846891028674930454517103738544328000220896564127728942909187792320693444844496726621089390637649670495695715792208265748874862090073235472780200318724025996753485377256718478653686225644357042680340425951861061039534590757443028708227028055546811364368357113762697533858514675684666513879897637059305976749688105217594393792695250492214657434881949200155755499973758611981645792063375959703111343064505265278735193591036542028370202731911268461804636759530521975098672831152205063447658776037556174761454172130321930676065475267621445000144813128891002059849426577467620795886496642530188941416822935598877553244904785509809882520727244995541095747638633439048004022583153644395321237181401292201047138668962830595210688136109062261819408524254362759895606150254178574998796203966357911074607821194901886893477244592940800635322021100190812414798366541219321635168595633639605007199727651305861371739544513230492793773108881540172344487183201909770801574823559785152520952943920010359755369995602096211040818728685292750833437758143929001138395526002539549437025988654831873384979285083683950070633771774133701117223955061803818490609377099804431983620425555921671989264218248949432585515982805954009734838925444495372062257379856768030084765464888516597881028544242519775686324345384886339907951169027365555236619247634591914204285617263842203891336183538279734866588144556978072553922119888433073264860833695964893205644369688925050873073220762434788386119349514965056319432418863931952784995965005025801026645399282609060251743440895385340854627352201648822662291950325079288343219337056873586622547216407510113293331705665892815743730911412154877593330232274491245967534774374926573349295414428510356664715525562919783585033175563140998666173686575084088896305027592441703218426694353358693725105251037440559128132757408529077992777802682056181434032510522307148307095275477883977755183457490776316474533074603056027564189939935073795407694318415819177310771046594301301491271619564817880927627862490517893880064565822380932069885543560591939807236646256123222465133835903042406687145028109173978608671637000197774747228021770105669094527400570575845262865045688653387357397348312144920069459033655208225218721763184418280796573795272917713119269501752286685882685877971748137632020544378132304522212245508090316816162340891872798961579347201712047756761600174395515427564037698389005228681274486462463501492738908921703533758816271273503940565473831031423083677989681253363035978448225996392669307000884848407346391487428450010207663402641367335912633769842783324201432430791548915264280635224311232005102634410385576611582905170115557138518939607643964447753236279864801047118457987832409029980688022699555510851684498463704099805113079864738936920205602081130944868692062582529478586615785685085001777171723813923490452469369253587010754021350903138651904921732525072040336669370418750210172768119758379879122907201433485308729341528688022736096088317982725523210686058215499247050791822180250460583471193304375812370075412723217615865666402602587214303039952363632982487835663596011737218619658561857618598679247422507555634947126142583283823031724610316396144523956823652399824474864716809675558106080042524262792831706605051625794377666786020349756046683995181292750308617246727460251932357811296255662995166244033898854371061153141185896201793344891374323320393512879296188230044731287532102859529792813454436507438931302288819044018448111839118834488872380561018365519289621845086629221436603745019662736200461294016610161644717059975938618917341272340626381909455115502423520860511871415616253108974858694500337195506551109955766294620396088766607178206962472628190204718949747280838806110053328074567907916416234118516073758243503485962079816596052611679639838734521507686734947059519333710425828813898929976072788125130544677042468174516728384118761542421754386259684021563827642628876626445458026235298198014656585122690448442051147471898491373608704075217181047728527697847376328939519083481051388842347821776770571325915938753320830802923283130543870381167185502434968141426888816992319603283960246209174612638081008971701510537283942120910626193998827968936681675050048435256078700176538346161333559358406099926154087290254540799087332118555225820883830744688628242953444418936109200992935248767402412194549025546415596691822936018658110150260932666239075719562728786991550265627489350753943688683402708858515179503675417004345465131788897660261536250343536165039312680865524319758872818530924710901275005370308483918032083304667814130252283135726972775653543173702914840253951746728335292839749277783460122136499234701999446349045132354561569848576143285591262630147593734857522068606504584874464212545470251167620097905459402466031039516898150650734655018138228573555359250576105747859538683883113414668091382015498052776663765712091632031264285902348596320586483227155534306883566527865361507828828002079105825600203991538123086533755939415097709803992740034552405187963390383674711998008382572905916127784878775979454929037285207417093295499439620248863387048519857373073851694629078994033742586634494975590745287633787707393778058300733069698243966063738521477577497456867047557730676531656961054628491912691381105365951246605063189360487088508684552201756285230083647038826160256465004954499919914629295428998117672479001880127797249137962884470091407227386429851258650968697507975281370492116249234137945579421765826931300370864870318989669171418844715300321877674726487993906925312530879155533975089316403793955592954858728896771347638762751648133769781783713251258783694472361988695450473463574403613117001268179604936446755406011894097899453352466066652491761362206416107255437504373341449173435702404822140737862131847545117557726016158882240182363290519384892908720306923636402613823193397205503086145467438665126142828022408081178891512494562724803562379845338322893400421543259972095561446279303425566846626089121493573836005070231535698701204695337205662128191355356832892750336364019583008810609522467058414618217421023120021770397167274939546644354230073990598562619779779391686666679249603814493440605884013967577832118120600172527785256476131019646025157453087228271384673021761791839855532130525725588379171232861786542518999507794876545097257196286854130600867232442002736734346660715878260925917835596807517551421557079778297919686293578741750736724155442217579143384280854384653201503458709613230187874419368391455131939880389230467812650895686441543592257230309322596634331464528340967037298516807556856448603009871075575439971154012884710480891213177388985955186312886600691543624637009208325342153470530311964070513961663148051429986962971119873534975034957433994988591657623950844773910606445307974287563807790462651404524017031536177624418788271388416857354065176426153805960930194532676071319898627566688094868502569441169785191522146078003861317847218981222153311819770075429164078332304027640723851373172888152322528846594054832469798316874404397393128915476278478567404983239455172747460330143877416323139915249523497723064807501118904823382021245961917426241632073162478286783472529049090101962427396777762094159340264031959665188155139358109018561095153474267757810552671548210325795222810146627166364252439948487779767818240726806500452132404098546889449880856747871268039494174026193732134036335002573932287913922567064907005442892717367930898740235498371437244610214279735841830123168408313788557351020816538339743287361502868647396638265012429801193008431407768104656381246101375104451502973048219372567787076069017590813318180167367879786715658359608229731880864203535285657489930845757736729538725542455879262188074126207121204099567591004045456920222209950843338852972530529853653327617096790205863538692854474087906661736742748729931803186436934422351311522096963135595449212739058197887309835396067372236784022419266953724948115207031571540305365235964734380506557970236232167183217121268514075451620477272005702518562308528859425202773731514564532705263508536269042503142430113280283122421012464362996833358590804866060249303873129205642915993645615752489023408201499505425965775959618312464573169422529231905817814416340234196209714642164312361658078111027425060928942415478034792150074566360267728254790056954133309792017336554665538590621936273773748730238767716293239227682256674360453043863290513026450562607937120835043006719413149891264594944401200273049969470079867521442190072944417894858205339307901244848957934375932648386900594815989231046344159792838470800478333037847260265329577971761404245364812192274800880666605317664014967174937234280655439087654751299047132967640155821909681585274430639256043628071435330504529086094601920207903434804874638356532784442582714844820001483232550713916333585955781368570751362222443615317269967491213147240613514445534878616678310441752578761708976959647629381722593876826845953618212716237700374873498453546927802156480277408427171810567568813681307530342928348122661399720431118917508701244464587705771269937390642524648223623545047193005443925592689549672975014978347579315003611171636956251651937892549358499389582507086779633695845529770670994855527284427582079261846753080390264326602896114746281136927330700029062983026237946558496656543186568481420583125929125687974368221628158461891391931325613884648740306462848483183023943275236793066724331337822965940436498084785704784778553552461539607873934110500454700804625733819576238549874735812283849605169264296671671062141982830731558993555555195150952459316855375205265596782449195049097031340281812410881882617703896426979281998535520643820963788500991355088396295449968978074151121210194471308365082916403942554381995388167029433158004959299031467389911653890398312333592550399077251393870633945048250082296600926019392343100340609020894073989276357954489411901061535060334435535634310128542416030021728652104303239129193126786519312374159116715389004191990383826116407679963793151450866385789794504209981800166670002500803449954680180674099366865435309430488412056723315560352333677805101279138987101939406722640546954648887520466890348603333582447510642776794449011387706040899628149400456812142190411410257460627352338374721666757777325245788252196072742177248858076353267984430054909577845507039493049123372564737561298172072771877647646980802806797764178975645178556905496474396112916789027285672392675308115452090310274394681562908678563785107450279781388977130103596019865191450398209646418170251243918745653215735755553146274692548450522546044882186291377390473842783288442298177949170927573916942031908116658743562404769951435656601602144030926257310238968585800003314838008108426209574180053096801104703414153520948441649767405825807363201881233437891097598702507397465861104829220787434839411949936802316401321712199495611040195362384398450285721342391594888974274247071042698150195296386377120808997155908561249100698811349533060560508355147662179928247695071529136816543905371108482416019673921679676096291707571322841584306958143176861969161734135951494701290472088650930419737371824209663047696332688652512809195438835785670897262573714535145375278312068802074024093441299154383496217394250536048423746812487699188911085918693087510827698204236205063049385262334997655746516811108541418183827564051489076257024076448531010934940193848886396577609225610739056964331216879836842599823681634117044134262438304181304705059056387270394982277396796123297625394970293585585367910754518701059747425474866830040806270953793136576434040033449367801935899482477259680556958206574642494899937285476763669343468759324514093043920604884010459677906805093508187736103760248423973287916708161608065256872189848388336313971843612795509741343308632225213246566401591130527118267801277056938105108656586842969930183304336172521188447425894634021983286645368651160399036513308538151751772261770542471309138619732618166886346542681024071305610471668343044571175314159848635288903286042010756897983205889837452144540161306388403094689923437202406082963701181957622314316226733037328267756656508318659836942161165177477934723658004160528909195400710685237224143052147470543270664754759984131176392363993796245962343546044893326607238035133600998794039083230280161103144808802470043781892616114554744110369528526139589894660951682781093263264865354663014686082104435736732937884559093563011974277720593668026849149582195487200677637168869097381841093773777861134979457428143619457431843213720655672726115047319535663395464137133873751018122798364748732814568651281611055948856721727134247249152611634410265016372327214259124919032635698437709976081572099641668863084102367886137389423280741617768657492283415480845179207476688783994026064124907217624014266481177580013118755415624736678345183655583856463793384135957137883586334528167782018723383238115632039223173282771357808530732073943432814536875910868706090711911958618795237527078097872499146986507504363335836136598317096361963250198727205025679142058157626156596580814745748334685877726216629454469610737337184772047794985599764728004757679387021112345162462595996693139680177423253674267449733277265283298290149224584238098079811445154118946914091051594828041355666990572921232365054460468729654657062574251165459652556191516138381585725949279301422556944007302537898086756235852254459256945643777844800634975365065153554100502476945786021932608834787383488163163516453930812711880000600097320079074467837550612140469056939783295653303180751818187253245900166194045728981530545285991682039682326606919236579802324145479981446188720705702369193732172637588632676458364855566809019555400055520737109504740944188784219575659268945066647636727462805988508153410138625557129028696600522111984216866240937505643144031257098376517211374372455771054239601074568331005548673480576910749743859166873384907350423748629110067413260928595899961378294031335232446730090901052458486421000385083380551775274020120469702714143467463415705355108325591717750758085144925330684264869285598190829342452507475140471288355499295542338100963526443612052665520410980645735161207899226636174138025747531320629287330912388814599998196117474852504649373622798765813934131351213529152184778445134753072106433065292560186350565012519045924630665364113878287176856134926697324814522503534805877085139365005849873532741607327736791470250777983041465458827576666038113050699223072914076308729972006735930037825292254149079500486537773190565918072937151006711063535180651992592486733134017424559658547404740855818524028594991791016756201219180545736504009729075823624168828516950095152583381095630710384881938438897683908532039888784198860859294638989800092670050349957998690607963104492938729643505409072663029771780210549555824115898875356975227600355449106248138547533587559027649732175283899116044557558280478920165321808795340257124901646737000149290076601832662895901142197899397689869958802635528067500111312364024982704941416474231142952183648597221824501197992469958923452216770310163057808563627445405136748009628657782517753462071279057485172369970784565523351537799613661957060509328593010066731040726521895200167729944070573776348281285933398494828974234561970540174492047294856701436317824486862108024743773046885662297320663940548558494244241734696452865695253783831925248906979131052243809418682182105061192692701710163242947219642735082267156513079655528905082632664049135829495564422596413869788358668403413240439025968071650899765973244773163482550296988034940411853561320611431044085420674978572617005710116591683501978704527796759139599776604666982328137327416244445397602425377783172103331769041901193405008372306194823428415709685784452708460806415971914232202477751347587408962790740041147697375588360155119605215054406343216519351911292215908545414548428980683125940083390781057329564268711119806478945710772407621090971849190357105398309097440682738154494169080639143859787125478285835957273739610152101036967037627903752956045690256245347739289012042734097007988958982904499797881774577753167635626236049681381432305177720989010214762412291497815712399862576277768363300753177765720498622999578559850233567911287260303054093356189161175937841712868036254251699402013961123496850983457574689382999659038157447900867796796849475487262714618277469312847026976846411362732412561165751819058296431236654274656008930013666556465410312693347560536400122312616867665582445117071949172773133558555622322502415008501153272110865748710811136471769210222082879118169402176114031173306217433902634331679926592637679347384521219420838251146337645473028426833078739721035975668716204283752798208370792588907551523420828374910648732552344707409010585245281571138449324891944958430322204795159398465304035794751008801814699498977903158383212045046410697100157378560128155766169925956270198504302254927686116314105742216499221961066659408951685259023493767159439658998088155294302128813877198806600617927081226061748127391295473293376388018033980961400191589431576791057543744853108033454881108161930863368780702158075501796748506177298885485101287413744520685257700325543938679915523017215974189863290906304933970920240314661898915765864272804514371792595916727366026610139141466059927157838780768225447365564668555355531317406783253525699233105521100245104976276884245098869329847263161171418718981331838843548403203666048664656400401837999323505703862644377574153819975209002870304600954771377870709261882369364906607160566927439339976366408022570738611451713345017610192757643035442797493552447801721691175080464466685136691005526685928469775312102742598203245509752531362031810069177148380797148033956294830067992945518340246785947412987704824399620742560603756042213297656338445864717608607179888547884324949322010755030708037450599800150880703247303005444022573984210647526278560889359192161480642272827764546782542363418794347344390020954039435244278967117694835292475473531988966779228073739812491573931777344411972467617306554277678582603147789777921422358336872060548108667716408138537309739390528348432508211440856256290662141976618308586047487284694248725221057928233821277974845135100060096401965056574963685312515409501352868614944533617118617727876521163897644136681270130217129206293946472393572926523682772806674031991927371707182739833737086419806969779356769230840763159700225355988601254458701833692901995681262573643241774517401554581915088539728383468018086614408419640104544896999091203778687563063534091473491797369864953191085699829392812363917747694209880498973690992261229149525163986099125305288209134604607801652111348962589086314962974829605104527650377719215422766418994748066401410262955018705425290442815881012693512694958267008239916810603808099055570486408138034346321892193679192876485081027647596513590878919624278043161945481234786107934573320915432404192774352204678591581253271496521888987841954088075246509312660470549823940947809317208579508582377438802314138991726107404718987064618942545082431846492883348869739396062569876087941914765097736960343802649461939265947054280975490918033138885351150897040202039373755987065258798871826242420330852299657877247704279846424364228918605817043379842546584354732361036008436022196354922727468432707490900934485030259300527380782561391315113023508593485764614763381411187635081123523347981694826555406020307785868447276008992978302741148514382404939009403048969753169478457124282261655877107738129183444950802238613191721257414401234792972063704213044805371229516534591332488600602623821097797145723166302991000771786429719074614907710382672181774956169927697677471286707120089360777348190144205725536612340059165591058811538340179616442074433784195314411170565383599184245930009606675496872993674082623451817665071635972869455940979995757264046140947708052741258684063833177799559083553987915901127758917085617187560043464912001775166895407720295079434597308044445942729572452130928149389290603616902044916915920394568326117252598360758664747492303884127174579425579171696731242364075358181094765039309538703893785540279901431992360995186927533518607105670683726825881047838346880023679897658784812704449708178472666881976342725592947945517897332048901854580273495711274620254587019889195059593193149637806361349238775325861642284637022876561173307399179018391369351634337588187132621933734305094481750835566255688069831727700260131400522036172155919886701020304161467343441404514032382811395713621760173716650834991239466685343755540561560101614323966707333518574593490959348091417738297642315042136138637267065265570271085797795608793937301130425334857333719843176147606665396513439314051575879140518258406692067575228650918196256507598494842759980554873761087853078638868053173566280499899928531687911700975116827384724847006867103521686518077460118971806328899698152471799833448719628445380175056838070739627535427918569236690873517900673037832035126025002756216510862415607295360404787940509576487803666353413269941858427931259758977681090223675840059778377727720875757115981103567949143767093022199523993305186473677492894913134327259184604882084041667399412513016625973158940104598647322929127190946672686757422981883976640966360370915737312900100965631097673377057875163428059624761127962807146669184599641682228889614543978110785851629335532635370143207422208706733817877246323057497516023912302002102455992664733012136823111219249763218777071311316056420892705066872144454474741460424101862881297187759168069095832406049474434236293005240965527516692920819116253601359593752697112609160559505305749566509515250143877747590091659244790883901919234307079890957168994458552162746521374066453446848268096197130515146871173342910388309738956527653190893560056881876710458943106880678495043915276613889859865566816973607899598549875132307304469786986544977347663131333672251128074790003303261559291586952028270997295273870175308059646747395560533598378685816104911286916779898515818790231035696850634122378791990690080808216783541465401974464035268227393469573853660066693180244555073209853541866324866758932156601992414183744769472800735375831653715237110934068721716847588778313982979005168772372176614344452568477658636264476956274141311637410453583829623123896111190922041107135517323739841555074517686808469604009873543988977893129682031754371495648994658165985673951283558729950675871642438515499065749142303589135708203949839222547371437438475819734796195781949858080365994826006953195197584284436651165815496219098651914817905888267738809465271736571341913472563852960707308046244979884842426053816851425156354211104950600081525500029651742023190207960801070522870652217730116540253946380223712456403567586192158204910818874368667668962903783968261361267472008776788297833571209886621970577344329138179119741864146477937763327177740374843876637814357760575779712724900414406519259722147196398655635842117092253794825114478206914111201515128408055631707434514524051066379762192758385634205984291001950833721887837495295973672807070774309779857308736916477183740482200259870385706432954348571828248111021487414608226349159371484771416909986731609666625765367189878099432692357380713644287151315265622235483260434821737432762796423210605057314714117464220056005476972756608752320033346792679593894657310805489031539146954885531176819668422139130863531526285552824427334045585514133999987275644529980444932719661370634338875795082531090731259654418777655012672804610404663481182733930545028898046719383524644980014210266280242843158038017500969216159595114513345081711819392318729853870767304328090774804952988510691291679772596555677630860679663387159424483361885344533686516813747622673117371440476865319164391295110423638277712040909716021792028266038635638743448425094425717781183607075030541709811017921655677675350275155749172481371589838238188374360235104052652140427543394531461264330717532272611222401004013507174270095819897004580822173533222249746867860793409161871543755638966140590326716194471738366166941077791072017367467395285495750380662684717653789103358020945443677155234793229214674240366312196101478087179112765231656883955707781690881862938489407439622698688624824451006185533754458065299188146645706233364838456500541911502727157663705155921351179152829232119599887972276671489698673693342344133457650963371496567851293651725061462656937384842311985040379814483900692177090753270594416572230402971138015000193571387264186446336460944003163257386785392049878431402130538584752173144706219999483758863279500926550252314492329020786811309240788849635829628732202354904045849550796653993953465177309564654137902700599943963334914634730052474637564436740844966952460549812160565338799807805751463760511350043890230441031291256284002142299595965867681754565433950066295561581820621161491846329149959438271862124063381102902191183219223582261320076689122310075192004401361744112515890235831598716307737192857250180653284175293981413101290454504242851297647485131078642660994477950039840140212958417670572972940161777408119409629086274138683707078554022866023119408364222063098401448198147654034958277390389151078572602971754842759805193072992786167558683036296406346101342944106384493956094084246891890104535488320601421438639856729151632607827441973873894386589130468345229824709678635943581877571537507708121512436587723346870640036509229120082906804953795095465010855138406578566082011571939868492878125790357788322382319178523075327952741411610264820529602531127759354206290963633211457819127598666308867628984816640049854839809071211297153219131131495918210400407320164123095873759408157812213379953497517115249268429890306946302028817539082468661316278911616274079076093750264651545114889293395141752117724072875925878972145145193156290504615614828944174690676805169757737173967040896286464752923218388167098837046388516198410928691746171336883822182273469015557518810450916238345135218788358237109482334862934547144658338707468656120225013935415249852601138189863820261536305440907474055800072072154032097296886039125387424131692234579365007551410023028258461659661501813014901580581989806291874860007149363992162393490203671175986829958968191219762370504083296415897032785134491039084854735867840124439173090281884426152305131975911484395983234178427517777349439201739043634911858068373794970845637670900580696853704610995259939367425361335861818355501848084680670273412578722854903087086065976986343791366775481767497712325537864029673381155220371146826541990298345036308818919115966453419622213616659288712146903435214560793736287256120255493660433402618211016485783326211671628677802492129650400935257401406698376347670325768166755757711487357413196782686235113493737432956028053642028925274537207080213687201070499297051724592305353859214550433376802637307708319046657613564185984857966750551912588224704260324998512284867550564651477343031634519712405699929214406551347535471193318683637648667323423007566761268859016572198540887481310191969329009883703275771213986378968140528335859671816775206554945133517944067583761250924355539050634826896058912229825447682155625188464764989133673917517832030801459151305831747653254408289297554124412799934981251781328929869549854209249930063393587874374136459371385295706177207439351568581948863604706596541025200760407093887438194532924216438905709894665047350218612026865696457014907386228071659789673462008539842137086353435370899822351435457564102002277090796395478738659139980238384147251087563673195212517448375188331551840324492047316871329879847367643995189515122421839460927366834818051746182847077281750939663016113628017577182155855152013737409522446524444729278736958790258480988564797604031051722018979353207167365306649963007202149600379111073069074641813025524334738540731894388193029991094300756467596272284472563756850023337205773655036791476245782406565289201846242307558241056599623141314858907917892245202444116722222463312500367743907971514267948051049687660372350417534122321791397513278755684426006042473216022164956287336805035379247576361140789556214268016430320270358918041774423377741270471194913128359099110068597050339641064454294424442509103612007690789097313277747865347710221094621352272033441907881823889145998961498649815400410769523649451992456287000769280871493419606157287029044269663127575570478838700616383430089610085139888257112384834302067706070241968016489773637478077717590685069155562003976489918837758767343587894654971349484810921934804735090463645259142292321438426194842571612534211652111057108995776442221446208145722645133857000249330301373718358862617285727481348642096414301326414223813928917641639287181467574527349012230591301991531846670699625740686382714646651340967210363984755003730541143840332594042047926587338169789528443442557730846598655240617524858974506604719766542459094905884615318405369121109196748169661481771739635458960971306454451599062829226617204906680706024731521621854231671412323774670943427165744920063437346316593071342008993234542761772202357064790798104223018673570593001183311394025219454577106090372925565881957004465268998009155097150045623850099503036469326421413324260036097402515297389814983186436613189035185850012565209964206533119203867397656939503151407178963293409190520031291815484495731445861971742276106226465745576356913933485724599774639439459573316790800255380940065300106558858225336640886578438113801042126374089242381269737743239208662530062276843990015666942205107685828331515392428564628291980454323132579890310578801896629908900932440528535023453747202304001407174890110402336763908343657638208295160404262431469733864305979400630222502315085212562980550332980235753657304285476289842871702621728917081315427031195177557623527407706007097128254258446455959203218096500314502169326570417560933404383894386035984558953980268433258301140772425138055378299734871725344260483017533738441133851079826573585812226593982529206735729742615168548475511630957186601196949225920780889462294819722587594796958947971843711084122433653450313922184068616607389450650425992571730196024559789374422577356881680071405458793784474272540899971552790849566920255821176889355140623626682896330669358998134058721523433091705103683730945767113636817163171496882732153622036860888790909134541651554707626050678565559932964698842978609173849458495926147095100833520904183470334617113986920225432341201421840779457808397616310751862706598322892395652556394836477496022480387160627726760394625469906097279668498579028642880675467022001865597311778633343657747882939099983758784030161551566608690046011047788646531189993872271375069684714234276666303515520345324564207324357268112631499241209717298514427923686830043035148285440524047253623203524789305893354265791170444302123489958243955656488568712217849079202513940871004109980671383419865487057143916439711840359166677669651062369184828591635418474005213827959384172923846644715687046370406014219893498382781474706983345130184846048092964679478933035451517610543572898836549770476989085436689871903845981692300714529735303545943321915001107566835914541539575367657079897559377052481813522684409850496279875339591370229355208788614082290428725197322404549070479609818526930441458742909650833445846936901175884787030925199863993042168341018956610380856905335066937865285593727228220015811383819286883839102171274478119854856968429824658720659546179362285966013955165541297081834344048010073601634679631834602824626930851576482958139018476090103912535879599149288968962300691852507458268826423119794513602187352970349058482759474281813430527116599831309833278292585431393374728963123620813391647874953443371111552359485371062461423690414623799634819321105136321022459287403887076897391484053411040474401178282240741499414256251772387149024776733434886136567977772141348145194231182574981439806730895863065345406461481848220746594335906440016022358221272057449993455830088719927476315711205009555484584134072821374964385122640017539603482044333649171255606802330810600972676856045744171263478918726086552355717245997644987439352935516549745086014457414903376529848315203415426826404527903726712456890591096489160121653008819396358929817499676617646005736921005534251188697022695539190945404082100998647619313834975078815918408442214248374633374864555878972034166270121661952210298424490908243443127934029524174290172949763910528711599835365388397191253602230933361268298410412431921518017247104483330819241656424479420639972940681839980358926793103550492468005066677961355328417345395629681674864205451027477343066859659249864050383420241091565111485090851882415742868725477740323106505949281805053365203232054237742680573776113254689035826986572277859986901650209462703403470484923912986727426867180871328743941654290119786372707334682740163664730877997740044551079304574944972025774783639900732059094750935303130009787503172878093718270435969412022504193303183158897613865741217045327748865923492652998576288429117947224691861057053808508618282284754568292110791936289048426090545320453521967338281939498919649338373934608731464016673209622158754485664365616189808988569871356909602414015536428452458087437828689812646493035868134534719549650816226816462136242818866543773217008723620782242966728827362047466847558167529586983257606565132587685201991641240641987505211007616584379004244341782541034367710550000304741317633311128481475457614864561604326168553552092259247558820628771727282875266347471336666658477225764818860670799647674178062411049426778026568248510919599612800640619642818075131742351959790638781335378695725699748629947595175362904022001631616200091387467262643263604794528181777536086091999125586557698271728317733913813832072210329737495632507533813941111831192778510900098830731123929135099298254443488120508580778605894993020557780617749451979988736678066044170484902697048773512642038217904176957238738927261232899055646104713862716111608013723917192636647042447503786717157486682959133680209818131452921164079449476567899046488683201639797235946796998510004769456486335116064370189138882658272983825345291594120998796730327803113876577161577319765900524737176646553836738059896624102372741267848858253615787337838673223789987037349784184378701541292411466124415320678531593919928485820313308553167943488807644542317901971610484930349281326655600586898061715597756910051829699323316941766167984387250023805227849816615191984195731228806211156286895844341249842372372689662184750995091660848594779195525629504437845879149965262339803875666515528224192646355958077733933233313555243651550960130927052218588275869192141343515911068145846501689280577176996507930500251707193507958885378345435445883747500309723423861311416538205799538828800804804686479928196433102498929629874696239492433719213639706055553207986368757503528788122989928424726176758624570157936252938130498486582556991259034409385792050684072877417817442699596377244072840631341750741171602407676050317415792183139261998960731896578869177950143359213301823698732078594135679942568372278194544120160184546542475282497629849769276641166127876543079839954541194891509407953125385884794182952274140219854824093143185653730975773493520940033437816510283881677473358560601734349427162345126387237375069500152923018468028953343721019199125843052453873276565902842470969868281839915793870461157587411322733294657385598620709801550374301136061899624585690591529485602588700107074679233914061626957605629218851710389344760568393923435339383162934500527732103906222571456343766638970789408138652329428790577566254085686129996458421466191371767638117663803407000557357094274258250381413953109957632586270322423509579346630160586207043638343742069714679142792556863591214398928127956348280695022311719515981928145550063756838255847609347218026618331037156309712358849094367883004104866125352261107252468154582649884141374536671457987306915395422989716558834942378213215868546217499971475690979356918518396246595910043271058325440090982488458942950775787578313755768161407394474822847635582832183894659401773279597309661057227515596369206703632806096500409451357917756282195704149925032881207220280086646878562729455221967421879457928778050463570141023058767029815813618956182936738744211473874870157957956407101100151384380055260470441729576876732724849349731643131300796920603555035029144168161812257131572333711441561494918698698974272240030520059665306502770020699905470516479144288578281854107094839063783607526470512085175380606458180758578599271469083755616516898177926333345119320334773798929386405514786191623943152994119346400856289171611796885524763208948450099528428840242457389089376987962535424378671904419319160681623398500309569215624856302439012042987730106471149211515901916136246309335998782061418214179400345014002835596005685732899728690364887459754448262094099163769189542922836234014772114840731735168046917258056383769821707516553711728036388117380426063547479588228227869606482053506258280451070456567214056991970398806021276673478374321303747573081286523088699568200037596409685382195407663240791985875642554458481401498530235945427826389077695984204953685338095014809874938725422833593891438694518832555148372603455072731424498156214199954870347925098228777930760878636795752385833075736777513113911298704460156761436300172506951612388245965235337327616097076763699754754024921339291817603536215135408485640138921902845231174166572671629616905849403311254715620315465019506132695935179339941230466190704853241072834239832051616735276988370041286180824798485642607552282149079708486338110427131811857436212137568435723514857574897320522968670054890715497043128681457455778369948430623445694022740944768534967372040072578551417979931282288862029065173659744941792534879551187797495945040299896539521215298847501389179261761201110004009848375778537841639819913285986017422842712869263373688577379193362644182068488910187179247501173313377384715142034582021923497112853506473920804834389289737548760046304485660829361384486023416807711177521385629310621235302580292243795811311960703312954769316500515362559917348677175066393431045434275349522179901217625097082936432841066132309082029383204378437711202660029042569914165985208626613127010703039163272746594554026188779989887700473183561041198066856639354491180321935691680745515347263004090958641801687786035192737115798895731391855545041763262756024574992521749336437654403095956275784163279229278931220928224056934336929982865669623271084691379778153762420818781061263572963859750100913619617341959674576972760157007393052543989864747252158737189429082903647144831011642274716776131593012038865823099876522244525413057552383116093680375260056908233299732181685287249327624525609905737988183157383132802062288430479026139336225829929812380915996280805852953333711077742610605840807268010745182541966837216678792303134233476931652109549520861375243753182749524787501623109055402765338833994152266693139338597212750189377893681889892511505260627875698278603002361611709227578647534883378936822433545718047049021210958248436501538543296097569494150271063699679510065019546940470683472305184357939159160779559176757589735037490428914538298517510860485810392155790179319119920295752313458831033959921178841062529428026404906244971721593071635775081740287603108602775882797475623059978631791805181961719003030070010599981731856548274211816621874645613773921510967987083181898824827242899183927409925960340174466401512185846905837386660998425335116843366225117148997745801985058039493355461979834212209443998673011588036005759424718408248390590416504533029934692567094886866419432399807899514398306834834169867950561271870090977107903352760216025238794417132291599210322076945308342244550204210649930970534427302173692676667087695512859961974810427487808536709926202604437364269613495715295961290015486328393059379275640673241482936956426522244995273063077416631530096737747804875923698802080320800618911566127949617569984277299359543985804792658476766483100717585287697278797608829267415491477798412730499605871968190461072288021821372956877804030112737731301640920601784989510539883776274633442403938194028825744273778034619069129285550229605353400121505339784995052275473755446669789226213900530695347208145106263101378191261836304155659347620142244803254494227481279117247371167909347269369436696532862722120947275268010067236751543941805268647797936049700356170726408708914416047018180368309625689644955048753982781126907658148824811013564399413415325934999680951493626306986046878416955310193623360687924910168481548164970865949446489509057348327636284661354292812242942769993133053237376015931590004006668000231479326157866658247593540098802144113370771205723786042006447441185699809294650515746893445251875702076194501149787997287265213699026565480931776167940030563390282517603964415586027438752319264773588135429230659002646370169891062226116964244713137583286305312932711287319978927403184562846444340905397947596221980130555671482676684410064812919670737557744505234462388679339257076567873261469728635228760888856772749425578193697844047282146461865040226418721049442136050952712579158883946873960071739054613127927339284745241694046902325529796353527510763742989910038164432023245633376443054379655106759231211937443297880708731939889853445377865682097349757436892495023248521323101852760744660470038816334380171176060114302262964013026512299414683053204571345279113443160706115769190410729365768318013758853302662862684510240586657332162354241983589747042250917737414508844712862582743568714162018261993318835848440083672336828688670246461924651050227245285587726784302940938519142254499433051406519612709112477087628899524195290237360748974029163620386029695456354035950104079750645819431522767726320123252523169972913401728442180230883325658425609102523905186142432546746895874745994414674724558917756427765508845462398248433891687265483527246939766203097969978111562704748219191054566372928012569827462775666366759006832993683988676620133344179654331854249463614387979716407589638918824875954740105361147630443788615524184399566667575395487956751300444947841687391713596888931214915310807322644292657910337665684019884089747999280718547186222062392954750958425037221182954765020342455922371852073261704686387769326738007476562683530114931248536217844977990940398743497795195056752606800794718009755633448939341480169109365919391717201418451625914979106461685009165058941136066944578596564268905125954753548964268733886496663404644727990867029242664973415335541577985737379755343662873118815357022820578720967708294831931077959320931879474902372981533928307913731545842018037265449307723624558694204754425433810881887357294134497429321748697643294510014104135694720145237092052228265928846246169253647172628641310855866397442033632241231054861163841323530375030189153056124591992971143467666758428438952182931999708701996989914433459578614643363315136435037123352141807623263461741907173084125845552035916872702467013678182380676253535518443599045447822097024001628083306261632938422975555404765060416099511125795696363130683299008178650939930851374792843491231740456013799313245780449340584365414318230234770348729965179863155463722918076744005801841026975792352959151055555997270580191860704863510409411366560637228204460495934973967055454194908179476656648594142966361532231315451085628785563737876692617661514019005328976888022587547846850649668759508179901649924185410375112767626226977820917718476128378415336652568549411231467118246407735168453728296679864514231710920537767536370608310434455621174105744219617237345222421829563541718929217308967043095167004453196332584089052593965954547655299462741474792718005662875574897701593485374252823787970599133241366807209409620808931132930926081717406019395022415607626126138751714934146244738361886571852297925423007309094537675305001687048692333573219408114995852704344211164921297727177932723178349350614078381524998399962708483565434812405863550919254723031059839720197534059303057932229707494936124096922963227634403882308859669566907692483985386450003827463327547006788703646493546639613886349345118005201474445074717988304934501742727854943979859368170437660638075659371608314869947784351603054349364364324902091849294655118483012495258167383460867944972724285385015474983364133696714440425537300450818077261073612100827848853621634883509435131121311592721993791569969373777701867846928099615678066010586564776130164905205124086212158488036215061391952634457480281522440238187944555856181025721244404427443832588600089159539057353241111980794642198213847181128063166002279179963240245575383216590789190475574189818686179919299801988078324097061248611995501602995305730218749500102469274006593500242053400251697962860563756742733352947738476129032015986383384929236801005783330291866195785456504679648437331195895813502806358298871660623876407791955164382111622980179782437628421056600968040399648123309592550636095534334486063914780247939428674192558285417693240831366575074701434601521200353744865770566979935115417650482120810207706832366648446453344274979493335839633067744986371594173257777938762207797691662390830345680924423174375759442440272626791568233576937142037093626829418805365587517936326999116729528436017280620742291984852326278655230280827774331257622836415523417621048793000006362610289218536079645162784506811701309642484803097912341982981329926745675556494825371773958282834401386762824677742259807308429363851554344392241403128765452550194518832570248237229587213026754995919356033904394265449649365507968297530716973873068127600943833574917845409749905470143662276797615555504854441266398315919925926165852873969736708067788461365012758186436370066773212617809930048943223595599681441831169596835257081501468283811426527798538285977077527517505106367918631466017920144157527148210770904434800636547594595971430564226163062165620061258615919326370510118773867198066476287743666173590952435664301116128256285673029535748377585853285899706406506530373926319376353902295015187609756456237826490433464271101919309987340701208804511995775107937400428287678659162566179986906601202045024633604340940558622357645367834807191154490659466003050043472495960155287799417412412080363728078974294682696304892952953776539116542258525312916339665471101966477439315413904696556207110462439086613533224522184018399288517596223609383195083003527005641366786379804530406261897699391945648461539790557254061293925296037465654470709464508689478485914853447996656394700330764661988789432270937346125582490466646048051621907688039385639454974249666032312443077534283475836330501001486156846917629412297327362713609104155001516388443983293123070377381421862686871388015712941854316810289293489434809893476251483339684313182555096389580426574466669153933016577642519534138091701706301507764742432515737236637427892624041147399998072111940953906633803300213637307524212352949337938203456939522950871306827427226527490771456547345451827340884042349550928378142109783158817038083943862038049228874647384732564408884468399104471207583705952748795187651587257672988258623299189908502312612080825769562603806495023086920385211166878766664445411420744866768387832513189371469272530565744765621068298470145775497947143703246798682661181353474146828068193100273224004970499273534542674810471901848971339550439312613911054667425100008505182479961739065949205005857802254320739730689452523109981670979939164198578699881764850016645709895550017045080707026818377333475162751413215441972722814761103072431238874985573243362686929382485986722371054565840277862346150564670384256219183853743771016480606654422379360794146934816910629322585166699061050608346918282042610988565435761589280284762450952944167000702193611016933130598305952772325988344284271686289043010168512474925936711522711165768872322686659201953684828509692992719605478268476606558212531957964829773746953240227483650766585587055539794688733853259998931035805270077045339580993424833032139828466783248557571952352719652559277695767793022306085614127484258801236243646287324405321681965531451562696035463382416349970673659138696988296809276208210958734058818549052415392091395764333157167539584540607726164162910445825772432272849670578901671725774757338114995726267017429215546678013877595224366408645162490240526457923659638752051429647905844917315597663349251660736343869735451935626684632909941983342539248621422889383124619441959636195126703302365027298960634148039306617873841894537855690111027332617364419618859826295929312836089864745162416482491890039255580947507640096194678006432476686707792643378897330670905110082236948718747515726998517733952981514521935656856314567882720049908914424156468671038074596605413390875704526209637375884984417704316005610347803842100478380974991149385347319265244973266330948324640354685088849597521543957721246205745588761596103018164090487545055992614008398169465610855346915638340816597967785439704183350771730901234709505707288878386714834597094041169012601354632327455885673364461831569963396618646698870040796183422427728181139947967820464669174098987012325470329511735602285050939499462968047681708954546330434454018252910442894517080726062599918943560183201174749247380637129596133861280512469807338534006268946314630214047104037656247632785863956005785847568096904787339396200706253450967380849376328116175423045386992645389676675700843426967552983141043630891178097786827773289622861078882747721150985652744942722110599367693022155166094894563484725866871954444682386696582069351459194062419960129139563853554395805150115862751678022729353787709774342796188582931784042467616512526699240657336224439691635055759457825807854577122958637224520533632865788131479069384376433175194382418700688436351310367096494322239734150254069231778522280005356898263058717637258127899374012220875675812741903001043376484699194770313573675497543556188194535106589639524926226816336415098945350844052856755796067185059420116318694207028809797527431490256238818752370715756278921358379521948340053471618911417777210858558997281189760886266491034168102915628466536367539447377502350281921560290982933664748838222302798882268747690990997079435242271478898777903334973366729761647316499883096957074484392964372887550730198691353374635495527663566055505458795649876902191465416068779401439786073785720604058940291327907779232423071406125026641972303853401855067532152631163946540561490279705698291545393363148324420915658631174772460513584994847007933707754316499508747506490468749186340789942205580953748703262618296038591838641112395725039869967367513837984153634477910042912939106453221996449737759113178279530669138282012219252639383187598338264257359140711584400354397276685461758954108751598525819830689251460748642332472397821564205356763178566289579632034593888896289773316810077414156245155435866111320408905531186024515935626604267005084543031155539205973730232098318017925380513218979360617788058092457155827267099415813200129980760659360984508847853722707909748437342101391606864954114235598561943797546879670258287654349061918825700358514855503473861969139957221222964956115194848614915051930002434940663409149426678697213574873467772684679428738996219038745345271833430076955550219465819728344472994443422120218978803502023503794544152236197996935506351883730342195201022052242880279324773197612932454313399344010361745456859134314144225766579499864962106049354206269677214563457515795031121411123311036633644372629431686637750898602727073732604199498246837847843210580258238166538428271985805093815370089261136449567220299461872378122151052668426779412277015096622252769067684588623097076237408673167745400146301546777485405720087081414455508636521008751581822968220824531821340399158559035262728032035894930286402891058545184407241216463694736951120444431060288037742551744049531703107954291516472060060365440507044078470704583038371677521596534416597491231564994026803608713926853118009100903676224383108509444306539328806403957724322345276146492034560930399830702401648511683410985240951205193905082763492604615727010611363676893745765592223487560131323228473175851885807395898097316825829148702353291973762859285228049752567510328180936222394794559772921167833794515647065007511397190856438653840329251297154069126822679208299371876095208563911851618421437276659136864448852135803460325730681742667687322691340079025801593947092127273360141821007419561972765570603072555328222143194362030389500323950729237286574512124872487940091854768277736858998813157890938003300904378575505865032898632680482894102873203473838659206215535067311074714862911026978800374574257398282954600165893761382959517085483943561426474033380213085916373732063554350009177159752426838870003887974823222187443323964373257798212069380277265991615596754469659702308457766347513071892976902432996850834525002391730292194364438917494745398550884775481573148608746580320748077221726634287884508562698799599737449285703144894581179467130061392210361416084808978795917885852561017510761104854053754487484859772132619895657574015151563238705128357969991995589247395903224377325675940018113598281675404434674035696091086233725918039367928698835876728459579544799948146717431131017236739322512095622812783458692719693895610974937993742701737822529431148391947936242602623189686417754425357545870018040225385054166740311849703336987927506395296329734178355696983194952260690814056282626699245772652081095326451296454936174897245620250298699142925321519092453072585062977609708791179361105288600728217851249648110409812260005905927529203332260441464636211242052983213642370500252481153171743075377918386140295510969844107958569622356266471739459299959716871764941595526065632895355800206765531111113348591732382751635280822958635164888379113176907907106142046373866247383228455730966960249626968981012444591535963522803243886830608072197983203602352084570240368912868574200322852841627714406142674358874563771878286506549050904934186304710205559217767927849309897414209493261393233268134742208738197977620842787513255901599064819270159769138424889407740918968107956175963586404922069613358657157874071767301541344742720103469211041360541468254505403959135235612339648479103884903119611543427525539490212448655415049442919750236482788746293263726001642209049524231044880696983265004772579089248687436412205173034308478194476017136070243539818013387694302749509278657868748738580316828261405229110845913823397361359099808831311719497580139555089720991343019144215327396277394626676427003257124357332589572710107859137517686054310504230651269884911545792203319833708576929692947902735472155313770496398639059086093211222096656791923462847218891161742164080995388542114396058335312074710778635608753717240199199715440859945254166630283511494179963303373345062378819377726382125716754442468423219646186997742902234627226064843588116303056013055618060209595715477301147818556987622344499467007415153505977339924885768818297097295575758288680182559361583451117545313066743484955361005105394292122365345180018845301692016944381470045998194462484351087133816495811299374698088950083702153995925105493796310511478072463249809681085699337490467754612885463637822749062759606209363304074883261235405132244702580620957303192887131800058985003502481279308081338758104255813746849424918391114032110355737160095293599222413289579474334234534746546300260016670067135141886192238011920338731430540435911457745784782158702647853759789491962465456224827330501334707646739809805291410203057671641997098055647987723835225584908529326335659508698528195969644470061272774714221726940035907977522380165833047247212488795963586087232113947791027259640016121005715846056793525974800149717728715604675943449148598311723517146274242782929325014181632958311772351212277882390836041314764688296411975338846115539901200226017559041630997896308188835333210580657413832563959092722486881129044608005920616886771323070135288744967622868507327443720069367019242118838007022672819550159337223535788258555421976298555366342027143637478375485998425339583306318829928928556041179900158629126120448766125927069827389954041401202429197668801172641549146104955142176234618412181825895624188773135195046508722453437535631315137101682125916316436293719483646861142426907505859395361112109953191933447241629380825860871146605534907697295104771557930528561152003570471421688832602365407899529093055177124478210360515374792453351596164894594480645195658539381737283974634810119687463734536832554120428239622727703249191219050824797245234934761837835917487794000339223526170157372886181160907615140811408882966095346009164369217772309386404762926827650713912290408647758942923546104068356529193150964608649663529406598656594672523012385322762664821322843846338025741788970218322452752967048395186808139571435957946270131550808189935893338788854445135473963414935190486904166831222233721262198956049293071185719427883796721700690298693111331699221854085052116245176636657078512351195177199073658285723303140147790620512475311179252263782618206920491373692538559245587901179098456765773503470172949069210080583651805062234818332432418791670702464432542965485969125537524239941130237567189360609571927565833310460388896373751200487839470139043559411525898306773943599161882861874538572256932559923012328838694304047172877894053358713576450680748438274052677898632003395260796454769452914998214550337641120653506097226369735438033226727133658588666982762971448980270789902631653137747990245974128141603820390338010971676450656829302375671773550338380221823801569109996473072811350780451755598288630074811664663194025763835852004679952013163051905467434388652391251673572317705294032562922908330946191973375651956745626483239661082194984906673275814709890498234011968807729401834256960433404886419389124282061434326718602133060082048835136132467489488710095998811691511542498414394604433387786795867782671959513810612458064814374333529116756445203887296894015395729293409807946676774272766363575099804578419159056162946881438238459217331507071711207532626644410453465662902081508808069000277886620566181004902616417417583128624564799695934500795478901604075561360954699033833453719507867934850441404809627046583534249637750102110151279516330065777537250956004660531226212201595690888527048226604266101869102732072919073957114154976477075829613875262430765619349152400158227867035106486453689523109950560103304054678059185993167172866861945310522365788045168585327478501959064213589573550195289999058526470336606076434866373863447894741433439779648763542656969443247120437405408120370907151327155257749922626816967723965991227226903324702867845677356873245059317269933134427772019776388718292540823790676409085427185455358191344449757746157528009266599698342996875131178984662299237247984324507977506423512914431770251590399814392032422385742739966105570673221668916172988802130334153099975884872362557686763337211093597114790478483156477058622695011933212164407706550569584693973361260098021023935253997539857878947673470103708737593939928807308801819224625392573223882593310252172042723455070142424837250585424839331531214047640716937554353486694880793289919885235043865506021334418138444865396336192415744572246534077541653931937650163099566294828052148250093751806746139114964547411821659107157421696387944481629411539046435401758686344758971938580400106270198012538081224431153381292216360610139726651636905878602524214231692980908526800793807910058706362920427825653029101991290725228548714171473949180248315418010730416440182034116272518266183004202549780876573077172140246639591460238815286691700180414719650218557847666730735847378872359448261595982653706130006133755920258069973781200893568423596741941265983150657526488510732083180543332294385890529277824248968104276931236077739779935249458288709259270881464204001286957673300798234324238675185714891122539065512713899631972058838244146705812918227698647419810079203026912055323206907017876439737114006274760284911148851855215837492064542153021927640304276801048681160810836849563005161319980895365284073839376426851027119003568625176284557945384601176120852298425872244305579840392981724024222103659292197894560858029326158734397758453545736183697268200250022441739300516924351609685747677522727439159376738463690334465565306386904380629408429567306952861860897669789258102198596988375844501321127072736448040121398359829429620321887108694739466342160934796449322337828647298789560638754401906073577613522898993113951189965359250076179377302135572092299992310696333143359477884551689290366598845393349255650878718353541194301443416666341416907413450260182075479793804035987400297748972988149375101270188298193717301271554648178875907419408589267256238551617608151323491158454697862688301706439916285184991305515496250552804676804832999476823131188906688739417819148420769243008239773128293541300010711607979275294942969035039357493106115611894767243003029690978061839643680328943148787159920531581322300597882051489394487787158105310669436787131458105285025457728262059098274805774170320321034830295814982948242331181770668376950100585508355138549735230411845214866225912278131629456093508304232869633468607721685852215726994757725636140856880551206107093861307307612027768070593663050187172307573223972485183922772065064432598855731323855225267670207145727929851665733735240423521410894402347265562734102968516996438050614070199288963502750575964637320819469333306690963719995074590671795123875041809541642483715721847414572927799059266233120295396451285141497337797500686380547912014229102416603223530706127123809964395257209703720435164701208717660377013505982666937209103435949819804133294480940836857957704710864350571470343365300199749626944422556899361079864649011901106507403513610533520691950413591712105449818179107517582048256444397680763177028088664900733596565497699987143266683457322909282284241983217309044677897104035946432687259776402814458163430325563539249901590982212824895117137267690546991859229218204172313773148764958682564697252781437291204673390823418629302678021366271644043569724225980861452640415209771310870335039912768766599151945232724248407453113412603012588637024184445742714112125430586419406383463404400249602941884367482234095615016206897305647028512636054816192396413821089314964870552233170221511136654961806436978114006515911199163566485350281977116734623476420062827553746060526618452951096566419603916118561885971396574630556541231777069223041434933915007176572610240564094413952449781174570309203248476254126797464985094532151508249064820755904158213587409161307064343825378040039221155223755639842120893456635428031863293791613584253279609947314892568543751519405378006515724695527998913921907424611832318401296727084676303297144739014685333235092075498942455601908437701362483762424233351565634037290248126530990695074782759972717892041018419004558554601233348209073352011644682857849883461239267932267668583797724835301209754650030845144154404120277331900383416259938941741501768179752484919280820405426778550359421215675240276648618018491268967841942589765396738514107102845635350670653284326939462152275442664839623319455106585663352614972115068156541588703751550142526212766161283280915820926522097456739481613904904932833290346575922224088850985136028735897096894238956046133901059677644790660264370418646901481721740165315106303197535316797609971419253793786442811977097261552404466205780959652686956512380792164119339037957590457421901895445218788064076398779512251547922083880671605751624158420729770981207492347075802106407603902205836268003005618038884208201182419061203826593910222780996757625340205038627966213792753007512551620650362138105150526784403577282412945734264830901876957879162497640726429905749562540952127190491402455487705669163957430682415147664165561978519771390671984257853982651533280175300939892211623555062768445149016692503797379512379437244445400385322617218351779379347231924124808738182086610760791624375591195606416389649345667405206706465514845771006836202558667257116290824948972601462667425051883319829362905804167508529641886062097501908850292478731402340706266176697770055575721779749335942161907313247797155085643544605773192566851697900558600479066332305406503939903642180279347528144597476841089536466692405475851957658415800617569002163867809248041207143093533273710579105172813758143910776374107801984319201257985395972768016028880487353408844902441377180444956532873896265293191216955654455727501837929771812732604805872854473854382915978125873201448383069330699372176547287141940364033313635659623944295239792033661199481678268769708637800196456758595024930071909585417019412896251611200622495662803764460328986220540926833296218499828966740444400296963044848162710335466693166694096222431443896682977834732304146976614855812060355264478887431315236929875105688822031657237366955013725051508355030568587744525073899230998913335040624812390713502182034729122478757099897064688446593364031756981995882754206671194976604509167893904362746550950600733179103254959217826975147586874435920006625363313537402506727107262605005570488405506522070424521017624121187610940405731105811010470656244731125449369640767823323608589076832120335022932292410832978791820911894914475738918130146737342470942724392867499852511619279828047925266312780041516259166869570106598808701556648214053341446728703323345276557427313315554058903857931495069286915284329131958343635505729264634708497051746567301473221918724355673384535530851617909846913200724326887742164722637544061574722864757332088973473143332180663778610533610715953289571076761733665436391946454394149998595102291271606726943483201918912423177022957965482227763034070972426929886904036337866252410446456965144485629581371306509414652174977043593903377449268078485189302861465245095440999883408883469857488561020446098573110116492190220936985468503475273363901399255249510144670210588017587521447522210466048318335318634673531787671751117943629498476264932738093815263616877316469496934403923474496991790379802889450329154489788198185542460118631508469782120749300176771229833859292879504037801648655575413021148367483466384639183758696964716849473655197769541024868115198677101370878346797733112198872249363203786834884133220545441400149469444929043287565648145711696775184023316486646918142344625368633175559674504238073912058289001811799161871659470705013852622781116958044578704920633243774072454069485637926160861153537441926361213798853029692503889642234109862316236618026289787968804449446299690420604078486738127407291703842061140474404158690196135557072001637007590662910317216308218261644654301176339553846914236222651404985087819137211278693302323868891370296462936171929920677106472501587960779137640714588479669816284741713173837981167819220954290368337295292642500892106733017853500055811554152266437493803379161852189962999193661630007688107770023431611832469625138374918691107480057922240043387723533940481737565069767082081251837313349259728977092705582745377325952622830365431482686243013938068155836205782323363747691041764739384484953641173223938809545978133615906755405110511488948063373837981847905112342272712958506603894531171737014875528946169398571744770693871597737222829145883718869908385717918056396213882616836375380215015079518338174667353042007698120193619198617714269512522912194813886468103537560063276102570945014782475851929083843320722133392088571624821240208178266039208932081526281903761329653692097292496972782718163017677380931085959944964618413428171662143105020328377127492097565094931437730682836782232806348461437895513031798880243700034577277908670119553261787661809627908495560308089553766147373472174952350936105033524048853316158510513095749652684968755179342721519400358294194931107960873202906239519870666186589374235551478468182014631139977492092103731111018708795879785200039058286111659865223728410103424676747594056652242726609251477591658073663953098309900752009567155159746265843014976572632661456123439537241827861288825062798257492829061418989603093008403752325804564206061025898738550780851010578774448071531140859457165394013975638368340282833805517130379718668484841011697271442832600818091203188214819698182720559079814000979769237144909348482519031302328999848402724800984831017911050280511399161513252608971319214128373963500460884895354799915772832386535003463330323222399076027309791330498102184881131883719942020959579383152828912595893614004529994027537138102595144771796736460150022869799767842985573941585643331876674319402702566666575820126485644794711763692221857221747945477235645754912669971157321291348586316669474475137252883447795735966355016507557155824314918663585558945206699906152342311609195966145300728517259447089760035358083049673064632748761764339630279942463701452709235546772177123717259508388970286755606555156924830269575232623075889185926757790554922010637278887673532009074059978319622537441219064021596034520471599079632092971227831743653144366031982061460778394195308521979977172353858201619561058962081531392218280359958946594497276299536207608451516943549031528341334205385226290783360649000047526633126732729106661495466881071172613410628668231477615908333195093281831255322767569323890295625917418578879227429289967008759007772444292907549243151666758425255091882991141323662008470794274274318381160271086730288838508361176804654269146176003412998071498957081223875908504622594740876463474486356974776858874413479614521885136581037243073156481946565622891497860836486190291669718975111704054174600428123622308123733263728882630942604771418670963555796470984030943366395114889460018591752724343086572554408491866651115834801965307738774624713555352559545912142062093346407879573419799242928832973642907794868392105878650644626986042171173983187593808479742804900377078497999219978386607422280792094551955244466283745102257402804462633801024995053134983699812002987645953997405807756461158405359831082563294128610347415256065863542475574004125340465810701616555195295330819879032630992365876891020849968424503541722157875494093495127254718507894535834703979909724872191185171159524630690701023199885588548201949779578798414882174508942164570584711311144356202935457296471022369543473087217969159952745006543805321348003882547316516871638790911920634415547375322789804176869065096878802243553271697819002744060634940900826339404775611801384667913707177681219806341303001233939916558838124218825949509862081841284940871078489545632020894994637364502751682549193612468567540348442104218561460443594394365049920822320975001491071716725265394733449470727464679545607852348633591126031877853360980518742417464589529071714506968917743244257244583393272795182325211028829780784875349299697735302141471691749288521357567207076989849125743456556690136662116648991975794426595364498072583569976056856799175510304460329471290496954144514849075366822894487902976913691339151326529709141184481148481836709626121470435300794270539562217824517349563940686696728622017016378593737579900598446143712846025693449580616442888296902605525717530237935763321427330194687065066072729088697402093650694155068607934000286060869164369890663567870298363561747981349517938322925685059653604183942129866567078651968712551596641624901973816260557610979337305555388507085405442691183227822261234910445901521410537320219848472252170628924602399812738536429196998692512934634912178255345360291398100788277465650304341853939290400595465505345276186385596662714077903252318734370146990851365100371345416765216814766098928081658185728277332352958105778874618716698612487105784370280568089894163493853088251922101989363059806581375168965281381542638822814792453270282697486523698234718648222780454743326442828858637615882266472554837974874673014951936638588911729978854397238582081226688710999015123179720662381931555889073362971092797731467782496467195458802064826850935902678276067207743911749510809627839777275447565986427604601061009453897066290888196232646772582355509966051247746847397944003116615437177327630676304330832816028331810214984015641349543704619373084519898173377458829055230657097276731056518339516662715779266181911039158670836913933529270006855198031823456326033015914378435972114183125184692964171450995402896627882429173214856104526193327251115161631861252592837553578633637534429949534548975883228942633147042170069763672428697604467141814261606752757871822680070329681389921404392002128671901847533571402997648702668548070566050590205785207525400074412916602788787818600032973232530299004538371716816495697160402157772001237978835036609761098370736379037024273340172679184673413338311044997129509642765045469649473261429139090817833499059961068722608188241202460101275351869132401615880573587139349043680356919046615987344446221332881678577528984928808733890100111178776190355288064271962092594450672072751787346502091837091688047926898761492339929296754244679317687324651178117582008289411305887210744974033264975679534415437644337975481784175899025489445457058023820254933721030722901444603581700055898577530098380710167860757655186703241964605029489491494857140357171836515163587421286408079210968569873980213409851438369284434310292986643948920820299550540579915563938202068036670707597665934254449042907277313161028362833673344259928010936775942844105967087452598445645731413899737002548300355944947419511101648595645578344762811652083718103223893699172952977521625150338774341231389455593139268843351198453645483161687940373350064086874414343203707336545041608518850635200351285413824216082658655802205961551334024847397766130796434811784372890728470042315635456318954506932395336990740608760656602753164086911170700669509324221505279263380826324513281306087553507290300525250223693838112820499415268121829619311306365273527590310946660583877184487798116466814666214912066201297106492383894503835681965048029739761705401365037360983934459720272968274121524994277739128610701708358933477315488420269439953468462457866555515283745581938210725190106908010594369669743650450462807106552247218993263405670353961500253322496028142951897361077536698294092257320181778789106854776813237508595493328406312350881200701925737298563227198258863216139482060970538395985342065854745157488343329941846169025390541424778088655255680664937184474261402773570609993102114612033262293526663004308646620845062955359803990106611676517542880800208580422431724004573176759227700364685621317468140549613843837882219227682584063092291145664476827474407026599414739915939302401722029324453879360305257919171638632120318237936099196725370464737076105375951403364599808509283981692093595602845216843184160194612049445800829343582333300917322515440609064103383938321781962697161979208238562058289247051027521289158261314814559066484336510397519273795132271588099008354442373627537837579276879766261394698465848743356032103060053813784229386776806345871022038909666176521215406524629018851144401781580346293630877631159505556791459852123315693862454687801470962846995848378460927515722540087514255150614174745725969144252674303359079205432367352736755378560892965715791210282391331324946170155667969781208565175621194118632728494580208336238190848520726641680057098124466074353163081365488005422725274122637567062160967277094526321284606085609213692902697397112651141077530855640103469955006585200091463904660144267525762563987749149251927530421066486267686332465406592766077019830811119961725079329286611738443339972922741482010405768506795573683009151181609126090541157527762014743466387649165040289168260424355062460810560887958597223784415894876713060185498000161943232991758847996707967320775205823927598706336549223299437748942979101962060805601824933188953144532704113986604156613522361157054740095926042811401076775667247553337335008052968763642080180460904418440889354208350554523942887086137513770328276441269725968426526550749316923961232290681473767577590827498140315298570762965715348201898716945374962192838728781569074582661698599280483164570499793060732095377801021493466134540374776782834358487468738468000820551110209341992347263910996065796553368753288316614421409926498258006406909606310162934190445124498970040403062466951988244158032919566509412658339013147819161949998274364597179580148445389983062038498761488992229179916408145991863831855420633163345207260761580055366928265870740441403374673284858840969151623622562595321933994495297143499347127395186325275406345448178082952977200385599835029352950621188365598321270287229815285945636981717491734156605901166649320171269052976324867690755687480493331972323395518971488552574462300054325490592339264701026768323710318778546349823414700488164048449752347799461258685846243546754630787307231664377646816435327328930086893991128405059797217858362100136491542653811173764859542870374534737347832996032254698028851891008012478921170040051769950973313532686374394393682493449389218254322119481023618565574437474519593322893850732015412741910475194269962155359781855374909018481637600021377085535614142511043730602072233523568643758180083093986215941203852447162918557679525602533553589223288183777659905207773968620143068097632388838329301012062462325198586472454472280774111823670549495997589414265194426194716133375068708830670911071402314582872651513926140773572160362265968959714349346120471693768345589713581442633468577160377038696324584711921163451103303826438636274979932291594648762791137186893212139541913299094531498883150347313000519539312052876780292491371370593169662647685456869734006232196932910509005634970915019889402619089762062882130329059375047180569519136438778663142641846087664709266312935755235697133787465625031011574109284941755022227030001105094390040426072737595880196135772933184351658754933966238179471717658803796270229815297427997749094024146237781409232436077267666702346327780711652735974005384579446101005731566739461552286505402409399105856082965866463740943406636104477496307681269685525855835724037486879769782665539913992460064087676124759515330995208433243142556397430499734691173909183836370840264078340092340613417046562177145331064629771117461804982515227197618576041434334251719870048268677503995979990607151225500586722954062351530859419308157342220356839874537260327367726501566934495821487945401934191281878519421250818246435151175631329667712286368363265710554824665924705889406504551564062973609252802706677032845657441834460733445472101899900301916763182815751325422101340258081123201189682324504851071717516733183094056395263595510175222746568603653243981107882218382993941377882405506169580613487776419152615379331019317042184918792892482470840049126379231632253575303426013482261674192647936972251758329117875516313065678830542294895898033168967076777803083202770351677214847260895873925173953211743839216080000394019109389878915013629468539662965824761891651401276608787507263029508999254945692093859806013556814205995256057643342129781015067073715595236153064333295740667412243428698776421919034605793573729678373931895404703766339086808070428609529761042934444809369059490932471172392780041441211973353446212372433328060065683268206443624155711504764916442571899651647084407103597676616956166347775162646172773625344434747584084472127551024165451091608739022171998846592210603777855457146164035595738989046202067758534187399275868787203426332310196361069653815572853885385044706872294222351655472233848510843192302429011832497273810149865037055676659332284311646322270577818932769116623668906069606311828356841155640432967837863352122573058465920315894233121438307430913853199762214621956975245737911890618674581154497455968879321074389097185373746543519981825706392457452120041419405638742689903208810356431289152812497876432777385638685557498180483184115984266264421609744103763863128900585388558213934656374211046135735129632888740911759394990225283363773913151287850075066030536114646658693397152776060327133105155621885221750566683140377185227181052387315859377686475854259366669539395926248015425541480419215046477743422411756052336582015601568605070656953804113560152819044223161949464545661947137101659117421975760754023018847949693396529125944543103110678989163207290560077641238342948102576864381551535275266070881272391579434116239711063060432113350292028340003550979776617822536836073546866509064709173439380252118274152095207627081886113148209068739851334480434396307373217482341131336908200769429834317360392793599330486330592752881463410861997425323613035927706085107100035173815335923365768124043481216223407682791868805157878605358745370961224304734616121707591983875744217760083161393236365725774394967364301597431527759513136749256875604241049267342925154219172364709185346049311482455495012028941343444984397312389894360382958139141046127335452755801340053332708221795979080641749751683930757873510443093984661016863238823689570942298146586658396687959684527878813843266622041563231187517287702753842420496248134336976788002425009160040466717726612900753304293880486210361737380553849826170096102165614395800491646930623044086229222351339257594274566900808028788622375350932358325613650242577212316203606436439785220895204640418600109178272742455209673288632473216735902325846142821091287603469518900837617198639950585494691553811011917241976549400029659412245631167898803352459937114028774171063115416555474857439911916875083162316332955926482606083429555506163051157077771883310492711195553905772776213185116566958084573891543852114384183043774820048174204917033548645528858504074903193490676261717637897837045616925143568944108535425437217902111562374008915343573200721892633615854189036420899495139545922308818777604674568011966263195064943102752017607069872464332381923935642768829010400005817928193757823402997032954976410746447757130149339580869980869803153195542705446479560564697480257035882887690950138837615077148516765027871050367943276816491017930742829287455743931941909230416050932205333375214638078114999809295681635192542775155006468861934325770286515115190342028760174002445679903386467777097582893752412384638923928215140854521431731238396492451225570449342095880856647390484923081157640498835851334628024028226409715512106061352746046024924734973950469996969363619672137661798413126596297215056439604330503003271802133501050762683711548424727968516522917379455423570313211725873042651897389741010244570451058969983710636840436696293354924852981332195173761721234869453785551071336851372403809906873273644193559194879863653650008895344310015271068630655818874753285814874214481475446748852902218114050635405293322659770229757428992094994498644013263492130978461248862959340335932578233251350524575571827416664158726390466261710504108269852807280505933593595569335819649604315475699425171872802132228102299160545758973889946801251899009125260899178950403535020529944232121929890851612826451801868480831414888583267383352488141446580837946352331964715213807294466888189299500886683124240932638853682405981792408122060940082786057658410705094483391790768961870139137600675975371781396221357524696264862756042386312483464283301457451148403359119398771428269590511423794027535634158824946679303150472433396653161345926413917854221110631308849092694529842882770771550206780030710359520212246705302626736862017101970401071846390572203054818361487512905487821944226941057171270675107874486663402952323227974745785247368007282792150066535510386985526948628653470642486666976333872762855654860859456515620931838044777712794565804350521393669949108382699862099759827711905725154909276249849122007469494128905197697252041692244382890848956607332865506090661074159511969365143218042837705445626271108006945010663095565264092445895313547582572368939328178092132403953425251135308486474936381803370651060404297001224951799167096922913350545824857709917225373872792846964839846792450348741715958532826987925638132173676455666853143070057036464029597310653940925430140326037869013912050631691180745876477629392737690446281780576113712329451690280678048846047851569412237717060512765157818129814542896359120055658832874129766877239889899132694666897082118716358729377971670487282079722795790397589570006858686769315110483280660455747129416680641730827359427195773900651627078334786328715483173644558472123904189340354821379152710481547201456269273553162255365527270886437053551479161155661647623529501169945806926827295582461460228750901239996628021127571731041876349152737775854232485867427991402642318542537493498465682615299661825209832191595239264770449481463764325576473865106534789135632734147218472628111738887991879443455164690082713572270247470042066035325559314636034877431313906955015357710594951632840350357675305652252245467314001347984046619200938212484106516765633216865054473339845747613277742017674348960994715615068130418270326914014204725947991594457181858931636212290512318116972661005646593843942041777556999664514564863246228832481505133515451046824498666362743065239956381210605730744006951491552637626846542551657809416290972468376380292432215533237330353369000870940925740648939958231165226101738958588470004611389322075041535920839199601827544873624039480241164736472900654204691970283716209614353046828600225611897402580242895569681422727521531134928727742624638616298881629230649458684637910644576037780785383847399480141817244754828650493336663835193468838539795852253135453048313263501483266555275256767309092104437802965791137204246064439929722164125419267024377311340186203388789267279802079948829643755135592473245693625108690720571322791075830827566083398936187198964947354796589171162525004272320601615629469164699891370117988696471967108264376589119749954609249326988195767337402736104429383028015619930779355676845903716024264032679692164391707978386464567620142800632634210225078931762625424439762293791992876900521717236050254529860401523255072776596043835060009907472076156873146744203234837605267423966328932429124049499474655787343051596424243666681933846579395288838990001328655247883092949693558932541606715602436298587870622451299792338011390855165003125632559068421640123979769473843305286639219853737196016063380572872010153482754061994199037775661661766240796884363133353751343144730272927749461719778243918298451444561758186235119034033745813436578181033972007693803132079804601559148298469502115636123301173535167873618978126925268067157875595189795242670944011205198382966590949181649544110104762589557806114776994861518711608768906883659610100863146232156189771996130279574523373834616532928343066300800770535763097011095896223519967617037399259206312178066988807954908013999334157885227543619358374043627020741587341195979227046877320111270699420708611170660730515692261824925619778360173651006668594674950003654690431674311262872433935674462225286637636512364177338615558167278871412941397465035998987968054331557169899087063623156696662001377938343105728145789287839456589722726436150056569620805116824128510616550937667877271640065540242415913962030785496103645611491973527331424501244350765423256798063807069917098635931494612410570233619104954112967626251976443070166420904224707630933340703186285685507079448296244120100408663140818196740133277363657793219506831815196926728604750489037995599098931658047288388893002277984852572181767943313430109856584272409149697964252966131275753748581489180441291445094160973669336605200329493252631991180877957950395201927854813797825656308148534676332356066273527821251691875760938536292805809467089879550983899180697410812735556596515306610566746666271612102875394565868492057843333718781090128485799253854717730754808410614353329706033408413109515017758910285065303733207357261211879611267985614610232268458087682046704121639428546700849214360710315802068257323663048871788213620390913234237002173780196194980300666745090192219408718311412252936369426371199107946044556360502097290852415260247740954300049263851856892144747188698109754463430401479154852386421229672207964503693757014203268163331527791042810234273909149299666150750003283748810068802209050179957160180104375303606430293377428280006969630861001048749796179480509524733273455215287838675622415017904285156946274714064514373143732788654797055364770130995942775565419677100162234452170708253085555527346265885983929993149878230766338296998617367654980838494206534454817110539999886641516333753214441930855241443399168459669762175523852103396852202702945968877184788346079707864080745440457479298337602129364687435290747258514432084583799909670321525497068460351645779404418297581906725998982188846304094758631201830030816668726211543458348895848660465174226227548286417999065899315757693188317006253720505081241104180187675720246903823441657681128794414673725785372350042248504718543533493309168107714580897963753054692806582596096762697203778831042647131890161641322760992823947962023289883911901789295214614919645817574441187170917558273068070352253617225661039076485606873425693205255126513627049084035990141154084163393490409611396548704735476976624212532365860670938621372258717009806198812591842248522712238576600072847045268736289901634381040623404874429495452224919081294402618674303125546682984011298592297349146983524584741185469084288414572938455087268875039310466242715955268833596982065752991104370801721071681316580504051518626484939461606985118220834284489560427865630719838903437527366875490927493567229871300052152693106739333447029871892079564665471996016481231157288418893233464785992114312714034424294616490116592537818678694048912571537311405126706821852887750303371232722765802402777080382596830856923463216577815569918160072794841585359554534587781335865590162022112837587785242670336098995566014658847028642605406216120603146206528958844459935338055152795023856485114059750194324902147944424912324277460983429045643525510629348088895779856847001862732457521609909416143510638243524158059629581245963096009357801321422008092259216580276391349049777004880627284504011495364428532150844339858273659549018592331734158075501965431998609743313846339886984016628483068193331970925962433936738607731150202330718421877612017287791326207735896784640229033221643993553919824403794640597645229591845625356815663096345330533444733391566430974570556902594810707366078526312775113133528656838244396284186907680198003828432545467164963065948766271984765790140507214288505738571695541389994810667800591525274029238498287731292728095418288677074212246893349092534004969801919219381624401288335552974813834039044273570509905439952838726370452799283177917833695179067889017246011685296535218076386979965588161000013556484625616239651972142255308585435060415469954647025848308378052296030781617987755671846994325329924503101650869281311048542775266102249498138624095723404222022225612526156737233044141674519628016261812459001024515511198678621768616148815690831287147538289545057846691568639561223357255296566137220279038863561242497682982851710897039772745076074823712874932762735307466913459360253147380177793100878819286873244469734840224167732036258190167639928090577417571697421155370229463481839095455930638196414464896722584286521183958225058236497990387487000310136823717825944780719341486027506652882633321942170426336670896156164569095717555404478471508774474715991314039607595811349615468191714349083725262500806301919457500328523346703544332537379873626884152923242549006033945924058780987890094089652382720413471184860590629986039298790155549218900736096702393213899353102941646694194599920982353418758341188422979951474774483268956904587414525662794790508484147925986617640954737763452057101411835866076434275810535277222927030072764691813536951936682608236235562850887069218694661586581096306206906451767572686946255433737164867220767358632294602786879891230273624764948385714021612492268942421961703715486076075221128525077389222448274111138227062065205084806967806313895019442218473854798710644831181664580477914069868358938237011078106043905137407196650580415479804693708676940505154323131545152832372050584573400243759231870085303959693134694250844955213216930564332020363699443790127414005628375947329796885719139677805420235385684146853378743683054206065680636924485067421247065821627752325589389133184484307795360278540198777403290794620074129807359869149489242235884948333518933572706097371583367511966402689156605333809128623243300364341567728232254123786971802406793183216940524919983773327383106749883975809671457508782811847378870991029774447078626934765955192128466524772004164279737540650019962416132631612012794553248470240661379943196624746434622714683451216409750894058169253329612222116102287313657420208706223646989127048681229768261663733179657919696409518927053857909066571926031149765640187945676582090028309960545765883837036659278027908679910194089798353599335381684227358599894070599916325177471527158375512241732046872821111603476989607444842049799061740329981905706915336383038590638024337251616265204755584768458647631511374177531778779311706703726301081942199765082927945749401905833897953858004541014644161367689476960811870863268260924818293703669637191921245736213365284417776716990358283714640378699147817193243555505341515807241425186675597270577905771892230615558623933478750098978236852151822024591403329631950651436684479567552491482377967484147979418456068138957897894394148643328955679622379629020731399533392443585213953551328201445658113351793961604762198700568781443705650284950097758740499577731537058601120888988905486753727400579508511845455226229025038625046939462535505982572594612484660590863430962647726540594982010416060621885426047025335717193425538660605425394850706481431540888387895149422048312425498278260936783481666659606870749938966655271830211695760299271712929219906218298313852011209829705464061607451499701349028830264452458313684601152880397633105156066685486351489053897147444267486179132265849467158452057395595695741172444582760608836864373003490722062195647028610219268056262023014618512281931833447879916549778952844445617798854785881946924265197618858698817780384366174060144376992441352556679809776441297699798076742504835126702300338535700589368914697023407823960266733007996298755112117814531527887740212716697960352350248087036078518687056758726047841418421737988586590903291840055053471592639140954386270433199483418684903347441482344103884868603260663492440906202954414264921519233642425704386540180910537705263307952139154684324337356198630327551501600021837353674345890741292413822955004485107048411502448241000551495637956612428089429879853602220591763195893418999240107413699637366752353070444580088834899616711868907169000170513434970281344468517509873280828437320778618464901422772376425274120843975569724306832977152965730927503385622421221331298565269904144661084985014991521420838847259581544182730307067705539733222456381509151415662094989141175894032260931554165244075133098863514659928691598751881833478746523610925679200030390743789116007180403815765534046177276861246030554679950385544366573151923718687316584471091211429851486165262576185616677786232394456802351930896216934968795699832107645909869218240683153193641249894092675562836565412738782645685565308208917908611527279382776473171722498348185798255322814388451537319809051406649319239173433744818778378086793064134462199482640207590375329119039029667200197854095873353494155116477737582485072360309993461494741830364408356077249165232253212615225127280828311646810296600064018037582388842300373178488825996726756914523904161900764840225327054496159411380608914036532194818718919736658420007788225621885470069775799554120714433201385205862385317331123067633844429524352986817492632506315973365314743560545310684226449133513272345560748546032268813462969839257981382964217362009486269117742913884573227727891199435785035260501412163630255073212447821127223623565957617889884376770428493074764480346882179838743742711271373807056765989751233810571737217643700781233459431845135192396775149091400498002870838304380752746687267700512533468495808924328668834908472869916054354810167984114003474168522886197820415874286758022710317973321222708421311911903966976512684425600328240018417363278244819229429620720504299149170211963243717665681287751879827821522411083816873360363250495209300135666373551544602561926336904315261568230724050471993640805281617974252970835237865943860078549519114651293254340323527309379354752167706809522297810431326497922511610308170834577468021784631789970752422246570615691131696199638367253618557466624704631070422785736367936175636491246161586393879725682286009690903086237197372887004297794471483391448129243571681978737970983726624695787040257432293846977140596294519706084252982114312701097782251481767530784099567173450680812952249175919837042547548015399229330905978803033695190322820980623989338084823290652387763371024975736285772881226909481864291243834147518994071917204639026852483744092286236965834663243229248119832419052781309975521054980187333257857169531300687283451947962650627736110643965905100181648249367793712033098293755436124702400128249453297042712045084544949913690313213312921363595932683769602086399571170724064668928922808629735775939223797379362841746632552391950199867230122590684391691032946162705473867909767707179504742097257956449198754839553557990337733418435369782482664104824627033133655282513755626289245117906073136943203938364195495345844632925935370763017149788206177384047932611636884457017054325532512322545346748036036780475522884458122101263446165837686159317746754894095471642973096855181557242875785055246173189035059210875775299519811259245516750331155055845219977114030573325527664761887227299924631269422796308425086018549658665508725907696548090738765196075581394912250634585350912855462682895567595827504834743779222290429972670779586721821029099882988008977942283677955586163960545803716403091009236381678115314375896857238732576622515627477577513494285221062252318012949393964618312486550085387273668312062279668360001455317864706498439777563960356893192487389618863834018607255369772029093379162061647154672716776753029328313160238413111693777987621977718394025687161092509770415892605335909103650420122153329440620885024932087803239271555213399511414388471820624822272930461761088653911541798950240027119969897686271940153022186001339937878752848551938802127923448955093393073983861908327245215521472280317022269633928414831038869159032489855479289788896712976973832924890432430870657239530763189779664304693563331144505372321755697398317187790261884251075247662988567173381542803065646145679713515316303230490482248640232834171323629466554699691129617912059305304157639298823983181320556651221982764132880975861235641428697862965660529380511135222553848980105575976217393336208434309870190384704394092823213974287462522955877904666872979801239552344917388792744776738597965784048723400893561090590906084408665439868227583344824424270027471596885832920536936729656342738109973788590069134690311262699683179494807036100050307837133070892996213205290909880117577872705247099412744199111394651374108046524657228222814117367591261747051878312295614383314795613902125347391657247131783201231220978895453224045846563743585576608610959448982415314736736469029311869897573909103257660592192577282589245231695289127036201579644374154211042379895915747600243542491801215563299231324151425082127005671805349115913802181476430944757300974397834187444518515766636998499145843805533365075460474427457803384894178413369288406668559928211590461928482150198006443310137363680312667158636681972349442795550014300328550404016816526648261025555633282450407507332323769903808302499391780475239298909218041231638706766030308816103634325642837160185835142582561460488059325783981639663400305346240549264590370426155194409969210027666051097407887188325047584168314912158317763121044749735976985583529432876180431992111405446495356073192543108146016208400246336907684406701133116502863929939368846978682957081646582503013616457088970810795425632824277168422324823227779146096298733127676636991578043013176242342605135506454481177940352139385054667464569572907367384301592404128233335938780378037146719935270469078441718230272493817597926401942595245075774339122694650754814365066391227647225767152289300884937157687925995327169056895696132781973740575910187527974427038604657079904540385917463997115109423398445016599404216931915456389770744174148708720559768838274313640267952251528836209754819323501439486849057884848437133906760642961991430595029234588548763887981072517962551587344781652749282014832041453823735699982460606583343523739656233161304040995824132794743939331677951687217219118269577280127507226556018352596326479745578244849109478349175370989587451844976619942441260863055893912631343838186914458478228268366318011478822478571269754158238799714872195810180492612786290686771381160971889769032432160658687452682208909899604597667869062546078234129148945531394786732548390513241615445335787323880296225672243482237293697761516316990905040771185026446136409967367590423377377477682932091472318247446414359514695284539537736344767985919109488389960678876469381684702890198397163625085550708504631220647597258792158226129692376445884859853845217009622301537882075813229807401198431111332711912275750200036518476003608028851697905282799157131107945410714423788118022231089253040801910110613701435267843822607318450954087888153182686546967437097782624077960036330246053403887216008790271073780111887231681848764277891472957778691074381988213638854696104824374034159332780612868066252633954039158384665255763213107538533591809056131421455362855900961119094132437516070751501155081536479293300534923893265564236712373783136486242493107389436706507329356760446172007267484993817975412169708227676292882185744884911872502379778330653385692377566922800408133083251512605327413949441891464727489712873261307885833438579027712618449956837284446991701979331686354648564444867586945982324412818003745587194220322473034172591830001456604289834740987495310072545925375573168381232618089557965595442296362689115263815769638005718789778526357314177257482840999411571093780227131694741942846028174057010293143502139617147540853706226582422219557548550145078225193419360004398713839189595527328210667937151960323250049791381737896988826395551652060435964110509494645837434676156204129939460371505572674632286245052612442402640702678182427481499416675133396537606372761730052136231419940142575231815709037385612513565518315567566142431821261253198041566366844192870973289104072617896558720338111190150352097545685502042504553614971865116396865696075820685544534164686317151223493294818069010075203952835908464305435029798297877631107384320383226557206718559925831353727648512844198250650701993734530088389130613900355221670239131889976140111061442135819758902512329195066699485257441291512912531011994937969967214364448157946548863506625587539807409265865768358002454845437820095821511344197222423129408662872091514231281079605556507416330969838394107409153305393337703352310776472175205847984626343590318148986539493576541649184160947505478253985541777018106547802144000053070211166098765253013823600338474565572849754104007347810730388780024235323499315634997156105231134305833566678905444179727457722018403800841466118136727745791606647141975104023175967533665097974803486236237893255232197372817099524804139783181683892790748268224915995251205248638113148228666680917280010887214875008287005856894097725762364118021117361112521894996983262564934150248127445529308234355062132995015416966164042037357183315178810518596334650626590888143965552829860257911049856586443901858475882752144463772476692178045097492752564933220955625803448200579092364626319981301662235678345433898913703734276755865981019799542824778638562917810744765643745687968161788667967622947743940384703447632655844471114155351776457970769814507967337979715145633537990592929273454251908189365958606648316015227480654329241037293970834713524926358304271927119058108513411747286264546993857011076327450353162183590074152415027486875304917241389048749830884872525060513972575159073502566955189973481224370942551494630371433243181330602238746959284627144153289617502373550065528529966838418759801429680606662516984893750422072553296800691457448607141131227610610150882385081980008459081152347240313139349580658639198202880025895962893877871631609557417894964461809479769930207214329261283307607464912074873445761104985492005241745357310799765515056785230943362782409954887628290735249887635712486497901114821123432947465277188618957335733240963406644529811335938003525105855203157106695685809208933932972626762490426888652903827096076968071728458747973115473190993342784414455634076139759833233804049226736101545032560117045820715401321178323860501964365252995321319146947157734810251380122351574206988472070947321469404228295095901079504644948718361518865092285774518299301314283086847746378122466164691383328516469171601661187881304772794095232294910721982123147340906197185198763618095167357750578644373379679961941786463145451482972409478581690321434515574414352993120100479676183290340507411017748022980034539201995209722207857732527568328418198998359021545125616249149234952981341219791354904619688439092626792651709204710794835701521719385065175295146004968698690563862145696171851496743688280972939672393145929366571944503664890542522749760251564171792359429748951643401100278114375227609594823641517254521521844516730665941565575425020071253348787564655340952170083321434034140269089413895114635145215300227299982611802602271413514103443773534403946035607825520405444477007518401283293082273637722391235404420419894969120446432194695626076227459827769384110203490978887528960916030873147773883762710608329475309766382665407854381365977018642928370344153057038419124621934880608451846433081100675885659086253960448193869354829287222461113332911961300765954179800017584050817462271898078654511312677104494233936294334238402967724252464867642145293705001230002897894641362081861830662969784055165040633063323707646893763957500442790262571311945863984779398778327319582902023922809391854217960568648370433424944405118564525704391731524414210812741187838715180272286046457701728070498034246736128658041081771743573785463939543148205579540326331558479120531922699625334099493312593387582384358351367906252097596229754242789436840816149113679246256574246056334942716289611351888658341765262212419749269478846589336516481728761965761680792552278048396299872012585609394891043006212983821919551757847447963039383991593523455676931700942298315464367833420980997248161416126974945395764969562474994616622848789801175314796511126972945424616015730658668678846050748989845893017799745174198907050493318427829122384270145847114017740847442421804259371912575181312956443873208769638239640999687922237621274122913083672009240973382070043700817400392239779555203035604739589060910407524483779574082001879210325168630548902348450150753963021959051909743518263792977241655233461355488054639099835736590544560412809137753510545797697433770302349641138570275577474301365432229866443132772073742046156412967591259852974349651148420411656637252256297754129238883544846576522913396406121270008921272613034452270484055825868166300524282101833516882893473661506140530239492398420984281394899011788358669465411541488652802657457511172618662851682413497281259552862886526694441606445802401038905288112376150412349088680273513948569770097826381486837388118039361976854099997370316285168494882265093799521063533778286445085090854634328827576883557950499450523548080859477327449637845325053727438665245340515277928491726087372597480540195026429323839763079953012926153057937310116113293155027109046633702895373413503102635050292390979706040719790438626229884191733084686280036043557166954575281430442168678038853680826771738233014699481415883175706871176503551744068608339389105086726763585004752802732484011315567085491809743847130112480435271079707990649031192935975235076300190548116114277811687866821898643903826625831292276733385191824131859061946905908428239998299761675400349651629756203263862777135353075376207011043909160114783528049119941560262794019827351728836539651323993482126989573610536579128835578125563287025999847163448250094593639785963926511958324954288483669649836605459354275138145552209804263310892999607819880691691325968375375644344296481021104094679932924196222530382416664211563687505500598185883136412687306988282059363743028524014555764079287740481279475825301943646459835041722898573221507098881239144211899104447140260443350884307917466634863862821062580301048624966032142561320964964994161792523228996938966250790072641081550615230818626591804785358146665447148665248001465876709164125537981352282327760149788276078340921671985915810773693783978480144795281721138064322706346318175422192018772863699411943446744143036659122174005616361741083711123365740994211992530031605775396776465626632922792375058430054172134824907679322115469218686931157200017351050642981233806968443506158374439334759421675058625153300285681647512670313279839957605577108656142162920507031661585913055479946921755409879634535088989818502134209735244472563804510309283315965673753949309534180077147164880201091173561354066093022353230551987159085300026706880634026395472622118355499329080529632335547064918371170294231083271828200921327517043829580898318448016043034077681085547874403127142928891351506153111659088506782296612005563458707329691815789442938106940298558318238926093136710258969219383733312753245434009537959001854633871279943847920129591647295462735752384767381036247352716530147840717474112410019187262781694714383873305472054713875230938831466368856703206268816369435652587023344733623595257202844814281805890889159376041588544551812131832356232188453403072061483726009031192500350875117788576120952049947723644853589803834100419019480309749768777803405496419710310305704727783859398282854792867285065019519901807639080796704235611085831897265069026849496069389087059248380907274177472434470707301968727685876214246187202005385259584460353878649380132204783208142714380008415777725739577860800701275086647570618375869320205644206745465759451118281559062855239083610143313289006067471937337015935431426624614402223030714132181636477082714202237115107754066018392659910051124536339941095835556236538468069314195809709006871416762296562304686756821288221797773270324317534953573060828927559544476152742829435394291772865264177527979119506582701604658653526752668552477270540417326919739666313342343708290193974055023070302327945385573164219418603707208244913789876017857322916391293360642066434616102159539773818968027137284243507460985896368674610544250255840361183329982506314434488223566196128930169871576063576926165830551892502303519974759993027975534451873543932814613939541892218249400085699531351881032421824024380090058556254994622953521441008886530602302799782764150760317228519333821922378592218875531245647478217140387826691826352837034765259833850722572940062270079947719836048834543928228135876400038776574258129964357000331833896619186506233110579738553607236978843612265148255174056288979847634948585303361429981383904045304937903883643788549007443229292576220183845429500484254469738309970947716599038267969375315178896169069569871039332660638451219823159617297895373660882042039608055695683375711418766615629649292938336679214251367687738204177858361114672994894857609628840803798841268976718217075545476546187225229394195237791897835867777560082945219400486555295641101959793185351583576226669677542048940961216110617393219456250298409574442057687562399743544523619808210013237245712181882459785813329331219464861364905296133052988585188664640815936593698526622229051922756845416594942623745061515691597670607894912967001080274798053754081614294000925022007135282392251791178970172018477018893357311243595082600999541635367155436630995951435754074965127474984166694126750127306525327226400354585047248262879617139180293453038764547471942719635664468724947264118342955975524648725149299813581449652041952513259616606606458970610933292953231367535747977749820001658480235614450229613388943267565561154385568770803407637829307240407161311017626125208834334061720786886296539561552428748616318046333025334045693159911954147578425747197687987253888627911150910142190331560036983059111855495745555532242530248326655531103897414277133357025168126304234882026997231617771166908847866752379611336730394515123442678746901701054476569227483457814335308378252659919537828046796827783850960706737298980497432111435087360516467140924943066664597867782348555893781878941236265707163283832051716193520019496500265306316111662810312728150042647500641867800540915991172184725730456461850263624730560531839291531631096927965604392798913915129105214084804072421601039578524652570368195016827340877280126325260189438064426445815853635095428056424472044527425400789881607407014888336335188355855113342649024706096685232765815804738594460167426495410457043278705377154376509787387883798158037443738723251130762141098390516545125060089755927604791637144702630923949993589077810991719371250616128389549398063041681946006278923317302907982428905505403565504224366830264748630646655002166088632030855754114875522280647743148408379987541577870661042901160764269401185472619658628020647892063933333146285172861951953913525763623865186049673045137176635301307523165921848542977895460487535768595313327164871540136753426433675583628020135970644587942217152885332499197232253117752098815985399852832710229497953656105893806578979147186946646871044313351319971897420564855903726382194845508580088987522246266894415501957323912184047564565077694664078263312222589437307241416664585838940663984904004548439856444378639579663759966052679851875229974904607860783324134865880318416487541205805499580083968363133939670567396200118441383184165515824990531223692764423351026804791160522672112471399483435870277929506611257501707138905642566521495709317599495340550983509407436699464297796804905703848281078817665324913955774733602729893454479487518335692660057373511032709048580968924811514372806909904538011558658605736408904551340374494255388459509484647598197601722983316039075851581696834637912904057106059668657450682027364181947150127541852335512280780155883296715364688718032410141517150068249974711788339489643531654874278633705578097396402376241981424905663482301871920385180992221409381713212331359352753311356536887681433435790399442819736076808881418220118668024513693224738539041129702223184053483008950300443223444908826451039584052837478321063752039693962350624830759723979939444351244450365017521753435298362218645829227487944928450374822126025026247994519740274127616525846071732289233104932210521220719901899951347023109772488655701427934570094235333408719206125371001613366205989651016913075800979198713216054151165264865904791038078401558927972354343433133950766146769276915198723613238214142968070727354020214617072281117771676710772184447845804628628243534331018147845337156406994609484867797544464280079479398006117035250587615437027996256099208621451101730332016448538209116143198270091138840017272383454928759306001523490910291316368269637694653947124674277993157625663087963448825684170832927931194334114989825075245512415634212845254915744906317088596281712718078489882896143628155831268463223094275263164158864110170471605476268430419918312788146453208783381933683948285930457303613980962477049494273697448092042514806536286175578579557018365283546427959052254754874533901970006237065467270797575990668819476468492130238086788066350352506607152898581837544093570861305995796967139669455679024926951013390948962222120145719513786624999556599906164219777246925409870156446794404244102174456682898242709702148909085182093446864216291548602727833629588769510845915139528978714446607737562013922503826273299763797864508709772576845323264514012344712564487194267609489958189962926038172427307476407106215075907816921071702832846005611163167358706555318231047604704651652665277900181772982789110285757372052377418589654054611383114395327701889163638573809445801289438974634659634020510240543310418480829260050628381790849440341669077706240908413512082764915277415919600101998555544757487683721847802757416567855885094046726188949329457086764249168535061227871690396066908073236310129734899980604013733347148649919377316614674401057082623544398892684742922078521312607641356767516937639751632849002757638196064944535589180170679162136747406489360670641909092862666713416071744421828839375605203420906186060459763874375696136192177012073110726772059612578283850435869507359400092950610926307822382435875745243404474248418399539326869911704246785232884363107659626951446185932771030261181808495324418079518680532809914599725952750775056989770869633930964104497769031301373815138133734233484161888135301262177568078819324619783873198871448951543726843547762924180462517305331016724518428346468153760207466688126470422384416191550785577069678590952941485229802849524533141198540556732679798520541108447020218650373440330640976282863012461878023442814669948975179708342730032211895649298765610478696141539929237162277049492131542658721897233888993109800013768599730109582488544819778325281659208969602227898108564277713845720979932685300666691785631584366350166285432995134687707771014785778387150191579800363761443077673521489819024907245485321863263496295275193852956305511730542021462803206515359445951989155172848102295135702687783020069310719811445802754746110843178954816189978177363370100463271686037029760212506595258775434161185176258000914438253688746773690017436815705219939208640573972815611801526794493430331724236956321555939339306013415092292230679103894960206921507469535168323174785085382964153231114818593860162761291684543707979319967482697251324128601011162264976541453575054120107699462209408095124337868474906895135439796967286047148534221700774395745813727862354546809352331495044302858301036472495481890072075025693961981669355212819441186192676622670405045550633328819610856744704354190922119315580298728677929051559635506422970907540534262375866321686345187694543530835120978704420404644920213169000267406750897516831695332349349123671522497034774154420992420282766259657839738410966940484687420559408252655052845441616749500952739982167265317100953887246866301248710270114374328507383003273961805001259354319649980898214664096671540804273064878844631829795529585463453238906455704169442426496342875691661902860442762291311981945048227862096550039193724617590667017299373345654660598065480599818542326616057287372055592619792605592998185794728756374515832435507171446781597184694990698792717283673711794452684656912994719528479345038560819573995198119368112759339965202193520673710200308602112115178254076284350499809954695394188391185399669112286853579217283445701464873617792291137397391601438154534852260922178186178444011272436636123105840047737015632066224103128176030728611822059816752297348939644482824327733932540320720816054452125811718495629677299584384378007956699932237049411492647362289391827394111067850731041384010983886564138686411189347567299903172261778823951136016774830549895298834403236452861410709359620140786245960071973160983999649507790149124232068512886132788278712972577492789078658244053397737096983810256093578143173948343306888106493969819660118896355054352196027762543119045160627779465138084391408672084801641262811389934098261340289254626662629642276699572960066756660267196358862341394183286676931172608820283556620752275408251686650433339747132432779695917698641023114968888806996753741374866688770948408023510137774591238093336881495714225574192359635602096247584824988291979319141900568475636886752705808133790146157966136162428513429653667116896756094822520401918613431734601854792143646094565036782967787972544333229406038100250745789439326210808329619398540024391369511826137850388916685329927441387673598909788240631000637764546088718824651747197486534619802681806664115080680160211283648284409711053358061606098588120149421213266437048647007220877702698625383499416861828824668111942153286947192761310622604935660311793392363507133904626841910439257451940643481874520333037557909766248779497685078496700657490877129727491149000192958030584945447850685969403415671958057696233805056386447064911059074962630283480498697268592310907001990354069591898009553278793941126441503404938122029443524978680835455185546074092261430758260397810839980929932491921583403426605416890657196626234443166065513711714062472881451498348691570015310084142817286592670536895793398932195089788403374367501377193444950506526040006041971615456468139775848129989927693629513921140588495967097308305483269571991896404148042556839888845914491516714853219081543773094555171516664511452336502753873567381478705485338872415292931266849802777798568980610832990617280015228090185409041299001689660339628601325535948697658173560664561502129840798418066319653522957092628023900827102106132863477875526590639167615629782019893126507481612560894527206861774813719583981559575977244055258266451432395846734366816467305934862941746704043420948318432006342813538596715551148631651115319268464393130437016780769009122695804267234046499456012449430031620336851614334519174088343232888740783675290472785340889943686781171525094331567575271849067684290349524219792211163969209010577218965486860394418008182268726208174804447861308710155991987941676699090300836895652181641576728812529195661998373020852523732044026916536035562520914943167022233886086144950928699173548523883857841981776715598852697647621244707788685308897055226043247588563158829707635481547718362840359397939207129843776748320399154725529036224991354313845757325022915588567500005416544748557277054247498762526656882910213148103629156826748954193288171966631420779723532744516893563867679409616182049448873814767410988683593500369086999201979036886497286846048278409232783901313566187544556775486909759275373038848920224291614902854695911294531839040089988234114795918482244452390829882875200147852348038445514608724912935656006683115095942739851825235474400706718024112736860007101858837156977654998800266510825544377159647853914913363227340326477867417302190202724827557297208543911084945917391372700662937149464692618364418817326540771046012228987508021194247593615907145138019419974742026815675418177001618119436647118150050323177820140307356942431489255868356430234341903590638697087270111929065004223610214794659365961601141035909209144247389369803435978199734149259273714028057712698110576231121446205191685331768865940324003108585628219763067194595807957892279745004496770281636612798971666332073883058276932701120977346249459227065247881217761377475520610264222995413788660584795833076957312958238824987556259236483969078653816775972752777389527512308464754299885734370939290797564251023899268252389381259418336626876363427581307532853615021851026778596396342216168973149409682158879900948417255739668846012526099273526943457574943908992854373071384799707853500410771784997919913465305354159686923807909603422458743152803618858027525964724333302261951681906516717502443195988788058208252980497832915519157428778998981936621963674285776964407178742830604319786557629656598204764414371128266931498887692871326418682617995305381177430479669450000456613351333704238377440538378354605671900304839837818340858878636699473784366531329923286404493840458317524402216964054569852100182659197407733506803135628830489331698749565587021932745172963499754406507827985908382573050941939148970778642468136495533161574163534291296264576878316969435960295609754298820828119169170583720074554141865280692185894144919264918506211365630419337244757487172073794983691922670072452428031374242522783887551914785333935566493284418331392097064566030725159372800713931265171975664432128484031241670546660377895183340938392639830255530443660611958446879289535752932618243303154573515956733275529710152924626331013522866641527218280406989825971473221785937573087396399899892666937439847829605794912444269462822938851773109923276959078711684875074946490867059353195283044429758453215517597525722643649319598235001893265252932877599045778876174755534721514072963174166231205574822120301505268012041272261061977747955068117301320460531625619439281936176112118043643610390071473997479899680541777323772560747807191341000403378512445094248847858788473526181799368779570426282024606927477803058143990888275949400200780948590399970276884397605142145120439686118924145733235684295792947367811858683099651478806579134595105541540905021565341290070817552729163822117078916414195157003392762214865512886354029318778979221117490309338159037985880348594237291608111289466062873055365490732455379661413084181032388660796233201792137331312969318543640842720562357922920852123109993957081943028955889928439115408854314254256614295148758915370953936847229499664079521698957298380007432340176862677631442434129668038382996669724884767904428114967446762320730970902364604434694793059025711722019205565267283857399919737232244846143170441526918387403728651147975405239058790866170020883631117119373299693042808938354792805830878811736052269429057956222796429584771335048955162342200607268784889175877771123718264478622428539894173689050643111931632347116146404068714655877018823941303356418366288121039208982836599992056585600289806784986061208979784360659018566014008113106383600894658494043628811911366724230778449202335851099188771663223803659437930226575588859126880976903457628440893202352259759449666694918826306519780308547520324181800566789146100070397098992938322949952946120176671108442663418305954091379025868200306980934564742737769418912099108398613219388606292370832054209466957040360012319453421426379605530757464388578084507954563441981167401880339488863144443607051659528477235230087639759551989254680165114630995740440111774153267391055247320587788617229836779178926566064392822297073685856186443333840581358612216007617208600128516483976667279237109519289667634782729888607788221366768827446484685230504785525491238552237384737533783203303144311686832642263845705391598869322473934243081300383226154057967067781632361649894563542978591085417367568572563045628965713744786145019659027354059899829628832579761081032887734512079038735295646538145759302266378397635812906887339769593494342426158350100980112478124649229851745189402734932266215745937113844685170396982789166953019385777572789475714365439280517521656022869212941434597860963799774793365141290136684873116211391973144812317375158485569660154160931909794435157109143489100489599390581202529916020323724067407333579241203300925403925610608524316401987151724694728582230209893677112349138971117216733378774608322485714510882823709485770152284638373100452571389424703120460736676571171790015214540830860891668805218609522801868650687464066388401779245067855789289873287057657752959593728393780178652969674573340277807809421773255140968044578692899753672695726286799601221981639520666095207364477324504204022531359976917561784229607752569825800902509932915414718761385240655384428013574118412026198295444959924500794394451313304064050491708626425493476167833357964906319413664848604819087915854147814953343431398606103968378057418557111392601135271562625409447486523267886446376639862256728704695626185572769362655883933387932722306845030354898643568342353186042672726276115969390148997221301201969375880884235216200279325294428291680856512816311689913669958363052928494669215499500226173169290134237782773462964342744478778572993771001910961746940771730671802481991857467088357704559774140368420020861649768220672655972125404286900699325023078300759575531340569672252650759144585029600006901894955947063140644355003566258749930005362179617318675780818829099946733848071002456999074082666424924082918890608924195774037709048821604015096053199080693142276789137478338944880184488313181080815132278339800729972340292331285706120925994864838687113442086935401288440889570799090292663033560332867115979910222230372903246617224705104029740709638362492481787752304988560400225685989453670799657744298714426554345816656157711964108006241690617542144014960035482902691601255529946176585627516696411982666229897495807700743603123192955208276503227843430505110678829996173359161723194646817225832339075499661160210507162757655258156102582180687506923632217203006294392391826798596685548242416796553772094296546231189729695514880162646530800307326152516842700327033644368025810646456345357966603316192466899395109788120894745655493337532457496821795957237786904312375468776543830012895734377696480373087285377078802374996380902104822077059318429875575737420310144448873872546627854284921807898790650703018567396942353322760580671311854330618303867614532326424486515730485774708315587075673112810727607115236031545877512065523858662384452316068945895477678228894552763899820522508783629434106283194920400278084313889524031830680557435487149069631224099458604045096053152826632783222796006305157274306198342816137351545176352525087746674844616511938279756018336271998466216938878945168513434021084013600784102031262052368815017382788291449093798437369965871282703271667244490033579248984920312580895565695362825672836790696048370711101228472682644649534635860006490316592575088123602200388649310921790181106161282050613478084862843491324923681583114320608653815392341884197957543622663383246579323192109453786047387747783681320504178581497871693450154844464192032988550838365619218052805215574539545925451435686064158517125332843529218799996642860407360403162712183425838858342723045765545361752494446965535260436968881870645172787293049621841650125605726546176248016096756895482681159608742475072808566995552352127506625757788427589028790821858838702167581009561746425496423430811133033664652847960785482561312786179126137755065716717591327480710477961359738044495292920276313707428327295218791198186318606018725075263730790100722923386489914413014548735726813225910716137349706325382761142418847583685987457935435318413210447018106830981921531328643420233728300271593582531013395189195378741274118574400864700147206528578517836307503958394880073923760970061504734028820877749099178583313782455258888496511624246125185091463159618455930247060589018088603945744311440428499573729106994077425320317333114372562474631291418983065657159135145708184470762505960518390240798619801393737683716726871063274676763151466935599332651673024732000746534445799202363718715116141123234410500625776759739704419072689402508024296058397639174107468031358381337815438769465723646979994093823191311437307112344930619740339208426711452273894509161821559322485778461970598851210516781573899774516152878313636701065033766809055330493505240995560967560725549904634765030106036848259444116130140626135626165885762913441010147179196302483347213719148246758249513725934293582172506760312222738684200194114964010461404700614560173654564741837249632132480294717677142119567633110805136118492470723191587359107770382993021492501351010493380459389231217592530037526799975345065961230733975424921180036829144483318150406359608515634778481638459126168484766710590928356421054187043240543795178268675926840768455738702638224865717785767193307629089787706525522469231286348686190850882947981046063181408877178280834111374313912234517540393450948810678990788333728123555858164446228675042883872635767434811569547491168663059971238148768244199910440106838313668373579577982501459889689579286124851883159674010096729685798839456141459525879540441705561864654492835283962493880554718653996566386861866834688782526410651743441379683865814515560516093511220390033567909358661583563014761146294340046234788465136930829615487121877911529017537227269217394043971994755297438812891580283716552718582432032353981642537886885416729991608495863901138317183402405290337519369314865688368269258059111092150056569034192419158530225623782849137248543788239911743211602916797713352344794782937137067504814461138003754320422709943149010178392033980058827703002492930279209305262606018702843686857290875342046239282011697374122682617541368058363301530948287787962432749593024091153015497543712832985903974672475831598189473764131461031380759218370304150901812524321101453268982266403492232282473297763370239384054637832249511436572224608091891364623546013721343133501885807131067614583302908291060794262196485583956342372982755581105494991564247400541826123921375855645833995868830334002525498777705419848110429203287305757548506373018723784693836641995851823654761477985447910050859020951391831130955648205611907971368689661625162841966854775635577086183881425195070858900665618412984013970269429312591918719459324078129670839482813184205930958309156100448261018296821028890491997399977128586486294484141103808866381651323399014475552984137571296896953098167256791954004572012097978729139314090649221447738391966614113072343842489870160394633772840040232164515669755446558860966782278522089419001091289742323556289015235570887607080727297895657658200803562815124147555675054840425955328561020913424963259024920879985524511589142420159206357571807889569948297602529616064812333715633129367811473868739264810246633792790584237802645934125810846221533393516295802307252893771666023992064158946942009626220006952807772783302809072122902825452258155816506361390579866396127366246869544758490169341183505641181280681869716592625369698996195892185400506228526452992051381642796242162520884565455456089939024482179512256393280140399461481855191085699847714984773777119332186738695654383785751131684753082929046402868602121710473293855349505868707541548826163624310311845811184593164645638405339121071151203450730485533186743966022512737728231557914488408260576488831242956379771299830224341730026120210912067420477682520939219885625861219759627745837500050119910437850627859730698147476948045307146596302694698381631402735101088825704450459482591462467938060311340282010300718052212890521888056728052548692122583357799603069136030627133833587589828003597903181544218169834509298352748560025498391403858238034664408115184296054955085181081848184307780602694789104663753265620855064975345318499563522113102860482424456620793180016196655207785759886908644827266663575285931564569485240909818302852262949711429257716278192705958848802965850979356979897162958414427826478838891087477169407891606696224425797953547757632532464866149304521465552768164769665196681478616094649237730155033017140742742661413927124834287957419747584212831997491593460376994225076433102465699942962302911405101548732011530431735813957087645577562001965998715339362226540479190095918996504930251391973010986225663044032322367720438669464800788498827757244290431591312715162136502489810010189256167625313326560052707920913021026775548457065991753963603259051691890465603828702436182539379382737557436518223791715160299748079100288478688493031215788018407999623924343114896927309317055658362843089011127818738052206395555084920925681190751715620144906662650030030792476965492214272393632641012710001512992333758688442669971182543776229422133982102955059144855642419913297752664079933643575561236565987511078698774828102082991017331241786793630793570129951311247466019664098588113654166612489138338213545595437195648245583578793271657247966306337783973532625575525250875058622350085796378877419740628082387822690048136935381628525498605824371289217185874840698525890513344637752053726024140022379752887863666292874905090549579887444955981179731327064858015400347037448112025115598637375200024299474176963028603044798477352558741624538499428714985979733615632964538380585052097723679900162195873684062251139833304508448729491342873278709715953683101732104471249276161535567258591025082918891446379257653791898528662828251260774948657077580719891351587722720244776150618396171588656809503153361227430617800912721886291001808353505008061875473238667326965256270474681150325906208226678185529100354842603730245314359830355434241958944552462879372432337124253523881993095999968913432074001372525418095481926098655912260223596470397762428763881262662512624809226834017094507420672851924638288303843229677906691848113468867317719006042369746068333789870246155913097758129626592253448864587509568245985072022051032337857373799089564165868706622872331374248378736968794761370580741696004885735918126232776185269635364605391904919023431487867591887513736037779775043579525198630587448989891579368859877925172664239705633427479530957087222619766019370233103547893578292605795962782711162769964460520341676970823018986819347494225030635829022516579055875619816309339022169260122183508785706793692800349312731011255705402501303751116535363269068701407405816320454766236971227494786283930674693005275308769707753574442138189050393308949361415429898490105855358316529953113332288936508488664108271518488398744080035895299316920847703937911855524408160449102927474682486828209159260411661696031502903966184409004174278979755097557228691264425311911980899975882368765554647834940515165248162610095929351500420008013178693690647721261173697645083426531199644097578530390408838837088138476372663350213658596733670659258294984508780934475952066882892873387559172971613307451752609066117537100053903977535047033560857421367832583047507180636601792009964758976927736918523603790229954007523471811341901528149505114731722352850713995797196204992904575192917180351304449395999502283393370557766606130414458205807514851115150772782555044548110021811088559330387749463057523536051744436584205969085833226864202019050203904310314405609494845647389544483298671044167401665991981925726463519093132948726199560524029569407758307993416411755635126780669103793321250330385674813680415201726220559348449462016874926655255947493917128376513545138282476503901917118545839125842534220374722717294181667459018889922829501084936974410284041600143647984041930806495482055838038150399449770800440527388092998932492668129894722379349396700574203724659308559154657969687832258130539794566573294866035633718120944456303953601485771557161340767717497685527178208321344883131317282080156357496531594331476061322916190638636508996305383539811464522689633960372316755992738326897920608060915078602997484570774325563757751798299409525693129205966904786204789049416244392930776601798319129220004263019928381762568371927114752230833061877705768735099247524991222093216661020305433789371028167686283123396893530537158844908392100556954421658190199306164979470479599487826920861387632266557063598582182669155483186360369777052411857992844146871776130318930989102735695368865480355487074699000847182426915462139200775457357232107027199226681892254006179926847221219836884635483231716889229691984027229589364561055133925408273654393871987501492333072974088775832633832001746946213339373561368152051859937228042811979302321898180334087329471702911236934087267909737248759346197911695741886712907910848486016939132151726482607406037371579505866034009760062865518082324865902611647959073943598039226837306761560671315662079470265011907168712283028746630733490156667774362131785744147431389342270095112570383402945704772823282309214315760139780751503228783311895382672294957463518584212500128170255061039758376572226971350614077006882764531431674670948675244251995468511948166862116464408339035213834000035197851669502508730956527905057080140578914712034833959994563838948345823071264819465089098268508952376990642299096068535834903867188995792702345874509399412066520892150817543367720650604040017930939102790232364248800873905994403096051761191456951100098408049401066306110993291825336327414807086228600355018216842023121716792421746305157269882911504803672611070619093763689175857614294124789023307163960949333069405567317426685547113686697759749377059962666366832165800477827455886125390575171329815446804468003788900700031859138702458241777982208821426416159282888233638536263316866482215954690830404280598905939457914932672707329988670701510898728617881707527848457607668901284607831132472455515920813672038874630329519651517972341290352284202869615331194823933113837767542257537709133606853259571603200426993302355620519684336147395772441657440908648988594945161401288635877132488322432891949350710622325334751968908637133986003948621797296606397587056516911976494802673379218026234655022504310955630519935539285162606144636957357845099533036341323736901060630077310452513704305850243424907021013049807109749507905879500355561574432559126288513808036867175386595183015663902164746070836310057629989604040498313830522411665549563744385211088613192437840236127815919755530188000989770844920251644693328683790090236541645514342282451534761131085464273398499233914010766227153299275678685792246546799452806090134693720498388073427354874242454860764048713958579246125200740564272102567726723981503116613151565452998265399011447853874822520702078685848874261476850397338671672304605153720770928656688516965117403607357906368250150887350063331608371397861597478759294007453779898006234556040864670002328057013410916974127537480797000438741514849279035175088657801231716448768522462468953830771279779265387867703163564827923936493238069279888907287267615786569939647757200279161119160997088533769976144719734407636431723197320599832466698286045321821670501458494161802075850747456946808332585493690455996934218124782668891188809694907688065242349706215881509738872362682148675096639394994367802408343038873476805301852878635459011103187777729469762667150201431056879212401593912261156530581003694895993875559762856533742102380521140511298801388961105941110171032907900820498633880157472278922467595455072975108405827682442026709794703421452192614410171049864434596857512322474904244435961155387245808890039734880317695451521801796403980614868079052218073684183112420016431842010278304940744500097082441063980990956992412913116543282666620675923295734890556283601145931485058877254310841727257326790949621494185119776658364628767867906042377698780785027583536727307911891449260452442272520456736659623758802742408964344011582948401691113307487472248689972576659059792837802339494511635956132544768082792902635762632616283054829136591335893822022398715501755562851316656177312412607602269973345179868556080079326010554799419286920984625530492720118752995793721499597264534490999884823122314333435126753435601426744243608575581635198286763177812183036554281462699594727616867221784894193908023193107932939740264975586604280308963649358891675234095899218398937923569108913075626081641152032043550883674817670540607932280856668981867045910915211273222024121469883081109977707927886930003403371222816142229238339335559868469060422154848565338450503773827160879915411449619325303200388060780142597671261605209223104581350021485079873474397122086706862704261834187345128983686944788293139374464758021430283034873287026820750300373496989827960893962730633422254347887036400402539421530055580303566147036051735879849863596739075903822536599380851115572799336732970619129097857608603409422107423324541767705710520190335328911833031066101868203328085076405374939481392285623007488086581808528439251765301646783918915437042409168779267427388076204491171283972974735541859524827219181708992213177891673025793051452073542358148960345010325377892923789994799367682309036404741398800084737633679585743376080512899017331033177949454995974861595735367193321823820732607340846154012986511914516738072151534037889782093487795785763225701243605397268246422405392617572893880443491814508867454572731638359332990035983932709965977266084456172579639631597327332646851461752549058143846389112483905949917996544021844098270482691575292511308685030922599404472848695890433445582836148050920076809470403726155027973538718449769149563894908201343347520245653935397237519248026676280892792809467182981580557046280915153592878992704397752315719780484091822341402394512182455787088540786041939032177535249681253113819569376600786635457168076278594858016208157967002047120910868090160833617046798824192875490496759739452276340106429992590150370902963207748487289571181286320423267554371288722055721235781221809369244316523151587533924415286168595652236857700892249990482443337030192872431093862239438839460361716344503213113652556598627175801153043076711847249088721199969111284740676373962682161054028522267226414445908796695292745373148273842025076343499183659331867327484145132423869726616116123223784901396144363288182956729595833270310244683889806189473709324915137588569226127987217050647379949851403110944645335356811977980829357467073575197911310941729910140682649089678007779243993207371986106819307075235673939516488408774462088576968274972247889670727705364740098741330249483249065309668161276433483063137271083548406199573036662218606001527573372621818026362307308432551407315076162151136223570289956354874695381846739307205220394756585645119488359751151683665634910738884669231419203985024147678779053665890303268771796091907013754837447344445558252390188397747415090289063331124986205143812008504811126918242108291356574484073381520056060116999794703321097260424130866133709893237319000652740344986476049256565627398827124489544380706356900616379704073748181480130607962274079949092682568668967877724878557004521954264541908635453970340914826243986831438620898010316399581169610368481017603405969425325017874643289871111484539420887136123668124470007460425819443406855597865286079825041113703433080911428934504269240526058413154618745626052987177469523893950232699190876969554779510252575860477073000978601517231519783291529753772670170355287460821156363360327864552442839282796467327715128654722777127989109029571284984479866709175314162097760791152744135686060579311683012128869287963795123585477776698998518699037407481521236637562514066841660500106794891292479368827888977096914991062551607997453524372024910482596102910298644074246655187298032839286082313972385401552399632368944193716773293077871290219041184130369946356582740108971192132883904393306395516297671658164969420865058415163833526112436882400595336960629817012672130199100976171697357516374091933540582245499773268861875112109825166898157814780758474531038924239133695210421161420026252862022581813537618450186973985258320437027224793737268879458772800109740611165575831057671030008579518665616878124333997680446242964049090974921172517053141625366885343255478047181221300060123873153181441920802394634264069082149849663509051620199233138170039646088834299561424985828419412083868195758043436397444817340242944717835788761952265798207995592351215259833616631723613603397892090578251367782244630545659570917303780258137280580302629724408404296794187457802911659821368848779095603750231823002975846720782183248359831366106151779939346534799929837539352770871471051084702958338944082944664586886304060892242933594143965004710273302591325651365401303308411841973717886191723373097960216508885083969116580016979317928299610967147843112856861147262922830388298546279013667562730946102343827975020381994719977397880376096442430992580325506685202746455979899338914520548907907564008686682227906771996666503445917175485504183935678956221359831532691615994945600597428297191733558610250904629230279700292239861147576399643537891826747208836712658692589839433270706047776083680463915671474128862651005014257553558031691566557340819448085214814734733196188128267667472708595653459162445414015299425073310590632094617981494694108055664378630964166364072953663409689775794673226186758867458222932560730394558620464333250918669675912542132841699793865101182004586732547750017760512992668551788722397908126231022898852827794584796385944315255455287935180690517448068086729240729695879748496723701133634584346717941578264970998732066821096118421407016146989636022801470204522481887273720258342875814549630972678572321101536416210452013418801098628718110291390263231286611758983476891147999114159622959008612324654987225727123935255174552052603808634781311350216277393107795027431435807182903658050766887563347143424208614785256003929116317474248310991968143189122059016142505992322160937034261054546927329216772205391056381738766136017198030129259013687652475816040101625980121295723328981532831302015768111300926255026306862676069302478895414566325330400489071866318448150566096495316249231511938846918095351821584209698284248928339694170208787307535028756310668572033022850984732055971651072194282017146533115147028041100879740766652825516906508801197027511271976531421289550102230955684900442431686916347843757419468398353675272503871397799249946352724555937622183646226918901640837901764964057419338299803642043669408766625614714019194812731039890787968006975605323026801945294186658653171540339851497753020183991401321128334864097018428275789420222482356531797276955073465848570358985980168227053994399554904121270638580503593248619161193900923290263039859407301992073624443537039343157747752811487059947010311637323501760058809912055364922614273792353901240611550676760707096673239023367395310158254499140187401364032596355042911987980210971972388829076795454058053009945810219034972024934598906481868900388656262513037317485857652486406154846461303770318397031375090577683501328890963592905288292637716285390534448126059542970593604716349037824608680692074843596978664546770141270574661073446254272492921725458605238459500593766778364355227491903470223954890497128660141343517111047883016584470105032495613761967259494591173440746289200594072310895309534116781001202344369716615951088728566423080798582442203455031993831379125869628164293610616475686639941142343224850386880110084518322760784671665182030409200541327331675546338924274035369776607203555743052931642159239152699097252469589401406060738357533631976628783197951814032687724126483497314396048878294157297845434139850043178439870313913451886886121731045414603199700052681613389521091043128385346406025262223442029317052211694804147549349640476640112104112080590017571142520798624977926205116221691047864347269243993253800334481218292628232357071171336183209659917258302569643490176456612328217857343261445712197525149265987169869287686944509673363372626727979892138103277185058913473635125536013611777296682649466926337124455835443013674407529277073646052005875089425861240854519145087817743477729216595157002695819490576350588814590424418241981227889406357120816976417319121450285186512335825243658193485268028990225872331299409411727016066288342617403443703356827619262247432434483168715384490579598717475704483105147730153797849098081213826316291336413643394792211766483296322406444863893572986322972008009029618764385747954260007511101649804877301059854213753256598196111528985199721865529189126628295078484460475400431441219098413159639894250395021965297862002307004268387760419835048218463364131243274828026071343339154364197862619596393366506810412771585193845809810520793696340354434783516048444817645346874063199148092175192195771619659142428198391599009965780021487564638230484738312134462842160378031472792957884511924595322787506800109815078217931675818442833418363829599603992570865904618986149897737195822630182577341326356429794800045834627968189987487771665088628410197311029107622608798028839674974835566367437811238673801629458755782640762822454103669881844137286598419996782561309683536651248617921388376606610274031476264070589778970213880762928855323114349275889882779736187956062294793301849592467845672161016616761413041794398587323885497468199537443067002419718171534407532392956780568759060970585986946973686790856962035654520596013612768334343020889968707847715515913081712252401305493069072613948915780855338464802054273698337091691864699407981609287811868453087431100809740191292810054118261450027684893131789994690225640842313212133443388337560519030795780891712820639261357229246236774024248001200628809164996912938250080638462092186212393170609514875658475927179044468300393118481548301609224283138140807953457533111782775720117642818295948085669442384374383102922784903875340448982803139503254034518220149250643893444213784353419804609837788769551930134291104725391232432826883612848299903539733611776374570083955397693398646785163103520378323688600998868347016142121845793869541158654717356807374286996494724859981688511912006889306101339325377377819774775831333084256063068940355650949175453312270627579113849590651493102258593612922038524723098706927267559954410438322262150513513088167384207151956293703228672177549045182604269793938416627463696408920764108841456258184390865677049845957607511166779078397413336361792223775106407196965388143772559403606839694913554783487292735059544700149779142608484749100988922726771158626580892630567140478426137987567586184987989435232722408762237031450794102231650399011767192279826613459707529351841017448287123083128255778383761610059054240566911593123037927988278367818791366938497359026808291643013965827772182798976519284754614458653996083887775424981220310004304252874608429234515343619721535830366722010929986597769578999584643312816055981686875950896488122156888788745426796879666781510191912451779129529360659290546151214028079181528043985509536030360046170398902614047471748857942695031556497449363840738978021300484900224894908022367133250783429296391200979707891702726041847834048427274068385526303913820920584737638062762455206763755746957706969803247644269457747434358010503907035743221081026196916507246936536288412165115360789887117959812756264604795736620312170994839358291821697761168759785187766896850406108693307567772629687951165716418762555272098632521846191792789939959346549056752463715430310969497335183178638863958117793015707929588019278554463635642647616075851959970499481771263011393506464357928533845236167584537849325201366972251770208746368868615424095623780767025817190439973104644483083610367361144944594968405874911930429192014017331349844924551210803092162156294434889761859026463787111851384016444744152684003381202899261838248775954977493164972702311386035259711829832344969363208769592983496338297157266287980851145213776480146782868452000042988191163763447788938157403957006522497422433417233800575181110021953422698662056938591853765415202634789908146122465317650742581401436194446044179582653852901285481383653373292103536919123462980975863500807300994956603752370448398799443520514812363613861061022564370998478709874484625010581219800153618852873721445797746870802526097150626370075109782942203869195238032044576328551236871973038813886135198401704511047310700513965031063601281558320069883436651976418969715996996159054036149554752739984195584530578951491926808498331326153299102189353185680759044743258221312466845665608457752178648114800638640891380192301742177073270705876411434194592794538955057065598844786918795857488430624561120163156400461648813286369844505093705302145407537208493039059407769107581958383958740770183934374597582512348053482455569419934408991819337467026335294664543856434523154456977359286577260476810213427496955925074349935559701671425913832460828897488635159576696256584651322735507245730540831771934710524753693983664735724881831303255848016220023567371585303459561055562039682014376940190228953349167193256691919747452318014221890638964588811772814684847302291387189326408471606681596109285627467271713472272072381953881374745166054246032392820052982956202530806972796395812295153219227650691111500256511689946883137764389906044621976429766083626732536804559458248031476369412600660271550009745377233303802196297375625153985186387248819530873755402267215601910400614868779374670557158169254599506707097307749909216458893732180247861922840480953481831175539578454892815450626726449011816387123767486320246303985000574100478585956168168396148635662669510418220918010962549707994221692707125509549975150920802975457672146462848592085915405393091428578091407653814250291729171828540782367084750420054047606362209815599825041049073862862984289138705956430037007585699536594695933783335440516558649355531672430499053823248783992648982370723170813095398719617204470131152844372923610056236018533229376170204300345673108505350289903184621462286430160272442918050579784656456490984640575859721352191558075954191642137599179311272255797888702003028540330866219548493004370118279364218546192988130854485566593308901409731706989871775980882522212164144881321426391445550096213262073609026883527225635872553329205759566165044813697044181590864801746672211478178511664628786622480401130512806870517978387353854086027525017295659501781872004784464410205846316566206790931962757877611372747117123955256275361011635741629890737420661210338404914806976495336305820616628717186175307470994854045693905068602899815151186224181118835829502906909689523903897320850229048115062579387328650734831780790945382761424831332182918553410684848924738534451302265141546501259000207785962537174721908006570729553079271424389554760386175693006337674367853618848778895358714791873002689690632595877606306409926341802317828899048872135521160265316529868560544608542800445236783280670852869889050214850159430347391369687592798956284650633156514092974182003074411393135976964349945209639469213312992430495920954737733610806150320144164133651903676546140590091986621397688734911027023189786145080689863513567342840903907480578563839077288175399127641443383967594032887567652791979356345064920958771521862122477790285648529767929211535731494269873077057503273873905830059351174953289971947951272920777158843698253374576931999014447444373271844485376126484125578695423404296739096188469499587394591709845621309417040283028335105680736377477204731961185500561797617353950954301768219038459368159690280598390144929505087440705020591927828663833984975038262104286809813754946041409323222871624007043753962671323550869587938836680483702591209445753318359613844198629051864490163404099108730232457281710791633802213570779644272683016779573604119940535009715208535135653195804812015448920364362133272235926970178532738841228179103149138118700387077747536049193147460368666753551069704050902247119376644143250371615024499836661473659331052068019309094523030060006943443005226345190141826645108405399783675203677242634763325527901930844066253311354306965934676413746929750348016881953834017988519051752103550753800830225788166818578406857558100349302994779394941176859085316598135535341224707025491915862405835031319206510656764941565679352364294483355337028275025945301021851244372451936020344049620226285079924303268174987141701876590888789303642915240779235109248847589599984759570937821950560000322593411965340000162866937512098969667432480019843979715964385602786336845385760313750055092693863628449095353513141701821849847516745211128827740070961067881967898834038909984282965104802251915963052759910965778770771771508665959182828828482201610887698176904062733380395476676715928836601859194860158409637948192751422184422627741052248423060502149300142838743589030504568666615750643784826583818740020236237346319746383955856913363801304860453425245961030617689856863807663899394448241232819438311159492624959829888468575618824524035430614001242346038234509318614246479036870001903461331858152695800169841092085698970782145015257528347423303915441254292651807437368837494227766225808732143346981382029518183632365034258646137762929606311397466289935852646369360301830010144375958384553512018541629528800583274133914659263944237596199622841716128073257064087590853970931641376110122868153451743748785204563319213297581928954674321296858845187374152375794724905666291502518276829023591103122195728700862202933519687180813103937195873239472595114891958528894780333782578773487407552326034313269940844618741762559331594439111936402838180753499641975886124019655364079500628201676415131806783488186046320816303257428781389524846276779435791776829511137334552956113709280116202214612701139947852876926930369208962083209947573513318228474291369704184110629427810727175128988578733040187677111223527780557541555084315558082130654555861471132138525362512854008958103481928645653631705534829089256410609847515756710111557669223794983337974493048313401466532354860351092427098012015771048321661278199472438632984332828904360676003735761749778005889323500237558305406734129620360352050655561983617805816465287030375497383917144575825042397848018482244359315844206341060694876467870875506014449090771946284651887587113663496258673306521719696706951349516147724128154529503447863869969808277242062327923942069104175462210566734598254011224048231799119297587546688096931572353031146355425784006994208500873726035554474396340399616845087670514896395903414527861725157255351608647928306874509443588870063209756370284302595113369288284158415913403156094589392950395205523676229928283175785881415241899453545114729142713201038191032555902027229126077080382897461899128336789326592886012927188421422527837575785460099723109574135929132161181748925122271861052337829884872925435310459218995519402389754475901222888551226560952337404355923028602501365207548904034603562696006045646825618166746995412369223825013976659409869269134573938196256478345193582474864215573109039942249554913027121668852424769874979955229128922585561716746985199127177863878239813665779348269684366990862557216545346691486498965632778873814275005168454015316895427334052225170110497556457090007631167164288639269423165832867406204451751408132523177434894642288938170772821001747426639502995360484833638555127535907683927070943926072750725176208943415716105652230078431543854098002121016884454605272923156446270134232861553941712322420895671195044782339128905851735789910669878953549335344022874568460795321154177037884982321403831329473368772929166963744718926093305417010718331237699968453098603335751955620759113523746573087121226168543748646918201298534962304165255057376455658236354000414001337072294824817073651054682948214646802559876759984384827427783424916453974728367170401987808450838661282595741726277108230267374887235145181700191226056355566130146132970958237599850323318632669660679375337377070418881440308932557439049387518223993635244821807486339503664038531694362876679549749625645389283842447247760286968571591572369958158509352031890412328928921348495607706394937056114891222790886212919713097093753020122230438094642499278272984935727835552212511351736537756037460676805396866333606570787541838167880363583445561676066867541211389358990696233341993626561995966913443462040150735359297390056682144228186650730793568596703374475140722539420015140075765167182658303496028082082762155584462947199270772785256051215087338023455836062508944764719747986680346885052643497954901556520762580118125804598310790362468775096966593280909954167610471659740022186638856337017506724417161712980963645451171667977034594218723919134121316074594291336861793106970184289241422077749909539303570723132195858981089347046374966240079464411351656735339892421965424513886413464629589619998136146352113265936328988670258656301136789253075079621143887647440385817421757183179174212216281905415262066200447554530057170091682513040024901328479334957157194429729637592909937547358183676388575158345048943321468942420189683025684346340520414316107625116760571493178297286763819236498560051238892667014322297424257241383294237819065059090866677153357294957077750601173735543840444594073809854747623144209320971120861665564408263971582820432727961766561266169612393203033829168143337734742057681696129046183522950473669202959256801693392539883844832930643371165956140678781980618822891916549074951710709110818749013779666965725681796364889888929563408363094158474084537721626697320671823717076173125933059214780051640057826032253789957137961441594561973595118395215124296044127993056336487687040361302994736387214642095480265193653598323009913919640008280842079399449784229521407771124448814757529594599400285012056491503678056878716226179067503538083989043394439870179130049772918285516484203617294405829551038856419953973517578528217066827130739152071640123591312848116788585430601683806177431006478872025665883447370888525573733530240174749054330224025351948791920281251656379057670566139590364486890132599519437245929120668109975863313982502318565002401403393476668281321773686726549730205730565672017602913385850392347235160460017850404498781178068062295455435496641244243090237709437124291604146995844206506693640908548161950606997295920993805312523816487064559589733930585358197441534479653338883765132500966444638222801408603476793698110644246517927922441746062680203630143340347654444643442337972932621762534603030631398477848239647281902205051453210636285472505297660030612791439771074501668580357075355869737212212493847243390005037439590731231530147998046295600283405720670183526203998141801723578323447014650097857661727331756392515469052753161426937781096235597197216571102245696942881209366600098296132503656842390110077347827374384906188379658888802022709279969918719964242026757837782164640518759807606631829697442806575962582917553112892934870960629395307354746471376498239303874359987296236286472922866208246642773429309533212689712838867515704466981461589526789403139827619889480414438991732947204944043331451924769675626450851648276317179781517728779817428087809458031145471706535814361632446543511870812450243701940882240897757381435756916497448007578713871026625282985389882491060653725492163055179696054693803510648566707063164656230970405172542454274030611760038182140451377822827887427737182753640247887309994309176152500196446933230894442243736047234414319028186110215017529419439996473784076280969106746985032174897432493057762732253017761520601632171556932525719285987625414501717171294392808831544862360033876748628721383487009213754574231198226050788913387802180975857456718882766709751942395712763060952346119287763546513181161829109381027025387121955119032106300363028704645138330707961736024040735111295456969142281554334143655262873698254775714403842511828319035987006663833289440257443470168711474154820291854081510912537609495560135295018193490812854810569687561964251754331807938441795225223633980729965742812162440431365318373408068237648678427771510075977186865648201922005869197471571398774420292626520523802918185173042148612441784590147861958365393271852714973898189794185443551188664477131981765428346046320198274488313212244419552523052332252550840391044081614689400624311359081268829754171870764120519510203454397452025902412018284129335325641585711310474000938294830466927059597790401917837951266129277233023156225069385366860151378017438686811994680046290228488228956018075771775182203541914366196807575858845272902291506643324274255820519390942173695806660234321138615615301584548072844805005163229764210634624674674719634906821128796327443347779787899011741734853478115265878383420586677551668308345756011038423471068461533513881465325701446145362488486773584726519747753268347855494750998995923859714869550527815403106842672059468665323963407379697400385901886692947639407970199758995209848550895774540030038573267164450828535758013289161549358296757363591223307946756250952854963602523537941013615857395372408026875542147031909433364869916327263332168179989550757430860674487898781359731602058707043122588065382335053640190020794678714631626583747901928040204774321752754520091437121710145878270108702117488139043682157102583154183530926024510012738116347364954953671375168339052298303432015635701023182844873376970123635815109061412756301093053749622256126515033573027608793365612079186650802894204191602765308494387641063082767739853479143221222077445564989009879309608274966355566518754757600084911663998616225195672625373744667532287873292572526388242878963184910650746644093419920029337350244125400132713857970168166576434355891508248030348079260378818846996205701778882226837432844495322295481836232833746149930844137315064351603964992832897851789909983149562494794984238491638931033997785447569622293996451402390382499318341253722883085818873348090713354767609817782461115795211853285567665943876035790086679503514401433000081459501949165940025932490858996132956059724614788196989713366729090976829801063551041630237179584757048580559388164396238869317507519645537083975207517830472853073401305984039034058878822185547683984910643505977999888954663767791560456899133504321490437110497269351910780935187851201137837142972417445000506136260665295290309631886069767328869937059071353399891267251253527513205426525293020702071755417489117624156903206100337526792550488312579830096685152845481196818731316008958219120035789060972972916865907313803759559101676155374506788325695257185629503249577899950194633210457325593727409601198681936876963803609468065441152266102546441891984464666239949897822911330789521296496077711932697890724899256991018738271832721212274590528783013947774965754062488833149125155915576612285230417492967717851754265064602652489157510323026507053669689364450275846020435027974289631702187646194975270439477121240054608961437371121952992684764343558753641699537867181619799603978356417726587692641649185375486182402697259688424581543663318806734173717534709855962175847898902047675582683061804163394079234639178957550790009128331693701335742887365646563643913931785362545555424105139340310565434768203600293341673874081575609446451644912294228290781067717939279454983643638211229697412892848112329761098350239658660636642868462802250050683783756774339056859869908329034251993367729170101005933180736726290358556670480535681865702829097088319017040782768684448638886959376765589316834655927217389114601673841439624783493394664869259148743292836248633492136810093301280228510068831753856262741305913024911180482990949000165012702522841789206590024742879523218119784114691095666737861029000741711076077622368011632573096827737882385289545975040247658627307226604203303667175637913229678287164690192131809387795562448375105196574666682492277019888162152048956739578291604015345331001025585749200915047835775902521900532848612594779411801365475883408986734799694757850860576973630551768888908139681483776837214301275283557905399135614799528368230985200708271399079392988783288956820291881481879257004211799840092570391607721970617077933890037897088621049811084537654625469162964462922352517121894504646670546377109857842070365810920431516693816036243410758638957968422183554193711472959585786516455049139442993813642156109616026528721316652950164206437281006664225420954276091639721832457170513349313987748247269866437153929680636521084331464586844508133650241965814415793571198800805582958365067067541803966901368553226862876179870310645390240359616893023517601247308298964127357767475666639944505398205105792323883766190279297103037719140276972911815054248361113438320432566173991794512893074610066845013402128244093802704469409977310328658075239462659837369536225877111091007839220058666395235803821299813321245405445391014917264813584715377440606431217527851060281992314062259782238241819131973058312821473749995732464555166061265708382832996428755051244031702912200476623710012669948251441971389445599982522327973131390352870638503322362636755887293911415099544103899897679736658947459327327727664520487855812450732807209039631959088718485312686808625332441999510966257891621636527320202310940152553467638430571202174881815002779924046019056940354592904094007473184289617278822151464822309405987058436081223244464082524416243191640156526822387218687307499643834910531837995324983306865028897439374519257657392976656625541581341196768324215948352958472325655996642305916286742325843015202339566220796095541197179511321807912502882667979903402298013392741796679031587688634087712578342111002859937960608774609229669783658342349665115803559326148757855219198120154962503568624975737186112062976968330915911302675656180435708468680620714235876563653905100340121501277305292155177192725909045003739790180495489364292811458280907472130643021403296408068422376802282355696547876372555654422640826702496449003956591793969855707432039798785185956574611760198795512543818514119035085471791984416955258290505261302047673365355604021948719939379845810638609659871512900661413490220209709832337571127769888844563960136484929857361769865766411947596098443847690355765276868877526426144597910362918049079335068494307241961915463356937276777741533364471767388136301712036588903701437214670834307139472979592443232263644783322946678027811841311278006112335998107490503633217226634689357965133026182874170852992238254835187565980706292492197569404438343759456487084671740375129447159285411461940433214416020024237563261489626822177424318002314649621003072009074139213986902190134099514861856614052409473528318243965348686056616323366569011317180709696279982126918676220783450866189342663551692894176645101362440408401330819876013435509345611526588292954371439968238977874858779328517364036247676845380617213260910511434001521245903417795183651123925499408642811883257053596329602659824748542379912959868698207937896269827226801667212575413025265962965250083627262358692583541910656493228118804803363817183018638373934513058012062160039678980512212243626855360659846609064400159404623811032623442126352570181135616583127134401996009363136463885995074834702826902498864659192481214837857758778577551253756698846939012682588319933049882258739917462218086225405525147684396162792415149284587703994925136179092289710012435685857445055597635437724325058578632091126412466916887346298122254386777890976329856532092484238020392497838791421101243382672951835883844396876727825738202281862706639468230913717175289593539250484420413818400545853111762440595392360942756445833986660553558515260581545799280397597895694640860395663184014144019346799663492696547417499543838696158935500917392834785559571711520700989067682733595604139422717097414429314320723943377440496710892697651442879595004853531990762174759540381828511268411756357820145950884649956075851480803584926072354879027754128696634777217338468294044227029831694569741977581827546266487259909003969149259623806415727549141010481696019103270310902637091718575306468451571493985286830125537989607066506145885110185091451795441495892771518458618076150690558053337372708264085024760847434770834977493046393138328698620748898227175900969437859917711953945082329137656019903048844778878373543678329015647394364884738159695119039887528657271532509031239356391086995787510793549971962808594080040526317925121576972254749900587741505176466415917445453925327322872948524037236163506761013574192968048135004119583172522187197500193584525320574826939420410494394489225888331316840179151245238844011304937046587803619496541157952629536560554815805655799320555234179469594802784058075144196307607137142093156451719213423894698520778159130734313920816475223469499814808505939452586054881111461674278241852695141927191714806484333515407177310523954988309962132769284282342803299256166950938599234485929505232997848122200517253479086595254423137347175421870144171759512665518336998709448745099084932854866298358356513462625651754242278941793660747908755080849949492106902095351080277474031785871500474789857270155747834397130648914490797559786349229680144864922395701853281978194317345679638712482011761914142120819278087202648748827359121482863610070182156948608413676403538472819167103370483627675320527718611992039162538559518132229445722304909315302603668599633335804939517583111738998298048693745196773471977355948444621661920891958287744089907801100764770410629359667631080368379970313669720466915512690153805606864019994514671569229861884756556406998988732477690307920958233427273361489562449347130591127825240485600018073585152098218322272874167280127877365465274982891771692937979026547142625923810692509268838992910490741376532736360758487067336513482062043179193346518383155278508163444607871374616786010807997089411572439954055072592062465223345261075926865265555050268871587917084270338433687388528109176070017001552070569617378595899391832537773368079176431634409846798350862336642792174568127244645129370168321203574587740212377480506989430282196282330105147416335842689416846729021415218709766797953547626177487252800699436743778327478661657137135458089760394695667214299667151096351539593715858525072714482890630632320861293573178106651055497132519265657666888806448912623897548024297559089677173149900157129369563336891959456400007817025986960396660873704178812806064198102432125196471002451557211187539494365331709740019479233434407183308007894324688542772422181340020180013966225048776698486093331702656865288688875250638875380070753383737761801988931587704626852879293997912246586304106357093968055289584649054907863668433576201329334356017434536600315764018364089989663139819673712230033711164996343926163692049567663363850444873734484700577396928154854475771666492027270892340976275406772572211311544925272398256096695591450348712853240736890902112297424911218430683611825809959077459230387328956434659198351724738832997689180259221453366984098255298985706992847815109856835822917918306004375630878232697758259097087285839296803425892538711058065135336031468927079463025870057490045881047127292242228871967642079085570895384751301706330565857447389322163650793126730651680991763383133849608044573675175468859425012275002860496387022686457057002328635609941422432358015451073373315207388839234310645099762100946778050009692713519399807993674741741989798955174827704805499381140320571203904363817418550986494950482972872380196348149099296543961344049309260859750823332598219032018824183851551276945979666762063862684596266971685993500988578718682838163520684768453300810884127711948362448284928612599786071951220641040387304812622529556766799468728319743205611638881114275927633557756156149414556989912634642407347802300044563853531646768966572279376974442847765743486813114329810424059140832124048166019224386918989303795417829860424140675881203402461885349566479580145897459352753105482529174696300005598176453300465191938381536616080439565165948505774763622733022862670007386303327339213965350960102000685589461806263457386929216147916452329505776424729493256798913499919942996874937336981848527163683454849061868244326867721761538134084478533605812356313209942607210071589419781039145613317184810045377744312324865655587178596022526383236778133586443855243220437062647803601104743126804342602698435110428558189812640105242272003055907731482811788201076100281083539735996150818483963468075846344918251118336108100777752713863003723456696132341329589792547901378076989682790431680207358793137161371465989354122833759260892905890760609582446434669367183647196467904885990432752644448576111378267270630935980944792469343149001953936918029765828159236526157197217119127650874108059606081427293653345266643284341226773870315513951103456959008491986967867531650598070404215141733999137372783672277161523876806907717259465381639380545003834157619820570208017721408130376546093640261703195871837719211744086329716069164974168055639078720681485273910339147998763163770847915729023585991586448976726589112066949142859780530464697759680231326802999265052216013513374326510240432221829652836430065270756281320577691746676121978998789357704801936399406136867283443291785631446994459798320554944558086189062432949398873549134214996285919493946036448430084417155143135520820191287867992913731613674251673890475414626739181658861696944562623674391222449105366160968376413619363363668169338294511603840600050696817685531199067356314179016714179948583626493314741705624485645236106151242504298668298302558232037564498267235483398735747820852045712730313689095488145701550074314404272046356475083830750974586407972386848493906146518664473452375940486146740637991829749768786090827376611982863566324093308821275529842752414478797685242973422996766634000654887675614717250956250346259868000593917997807563240181744359057320528213796055802543773362027930016345659126419262789960325224089062851431973806198833878799370065256449582723848892650642243258439395040304559463491760129811607852578488397449159863641162336295128734801311833666192527266102073392677748161843902791759332881797266899662248038617998090701347232121812521263054503889885551848724029620208554348567957749712173207993258750205393319948553737751021968045478431295966623729621145895522394906119541006246674435542627065738158056806134035896971087920263953751929037411749360577004752937291931256379994515058391739244212338759324410159870250698186635089979567098817545142258957955115351866078148459383989466598327737182947219039085938962312830250731889730974522121880133623723464202288377073321499666832100976125180906922014626303163462634015842976686748610210809813693458024568888845876645898749464250547210298058538697449624911111019584379820214277786788552349574100240459882103960335818026099861261176042709180475761582889376704234086476067171805305267894908354271002976997323900775178633295676383735625002913074487842769300389670784366745323672945407957726677125814533528131539302809436138928762578757329786599016057330077489329722641486793573957556919872744347423843209887910797991478115893269219547342292326440247446130276388669157777576915620121894004838659646446681409449663639934716733657180701044242084038139461975817313220944145779983748191060201562686936384655288022827328096889540264051707237027230028854777337993235807731150367025109819942775943844746419959887092298108284419956586342634769619021371304227597740616012359605530503132997900770032481655484822614067676369189479278489547392634462389841962363413498801848265165872801715808879792289535573565156889648274691485887934978710391533012145172671682277639621138722666329851624305805996169701792333469534138127251008227339152336964456626092242949410705378502675889743158967008220039243969068112594955875665706355416687661727584331334066932728863711504993639525128707677458578205322564694727041049830982778385227852487222691915870397054699907001206086873557271467442554528478435446741924693888969721747662407665611467201942799109103820990702448828976222530655465649458434390926668666686857314909731059616199632784934141018130966604626924865810716108943949045007959146881086317532285630071319526248011161766894475644120539016734393325645295896698608906695886435053639505612519463887277026316559179424871351356912024830997671751198357084207039076144737948706715806679558955464278078883001212945694099645718085382551287147335408729239074958938616501227616429604668121571857070429679955678555405391194262058617069292629474186773585114355060401823196720119313826517858912175465875116788718044532773490113748758151934452289930195245866844133459313435898943375934453052551511971923532690893182956731611383860986878153656680386897296477324580647113318453101425824535775592139359628572894439829850008354898233130876159578898253953300401915590161769895435804692165202811004432273019675445723648351343552165367279313283738933506222237257907901334926366208744525637054456337074086177617788529822188888128011187324452347944969992775671373634672607617787482695329226317222584386329113472432649316622607863242705557359123190654250270529012105447992621407235007395642054840774981151933020370485083972745260037783945407179656154563857246212705123943825775003719850403498302494015433414401329857232526752315627379226089372151498398045502799713910072561802904553535497542362791542173726368222286582036820524355198331792666073455828322870175901115301540949289907958364817482789396212708738283406772915449044707568332870361538498354983311831909309815846740714202843429843397249033061949292728949480456256456906780335411550840173684888108596761910336344753550937947092069931276638097211377387876954866025166677487309458821280807996693790361328980789527801934776757274132880183442841583306812057958339476870861553645741158293544192651561298421875030322357350071166810203286227325117484622601261366792651040016580717302228736138203272912790193901204818374664751612906496175575502702797507194912762692436401426734980406765238976387582462116370815886049667800142574271754907710678185577053803054756919045741205282147840573998351402331220317547768956783505690612526898000813018142902892511947414937397692942098035630828192372513843386422709638550001842370949829775112204245845389993126432747327986145267367931278644187572036651347756070779279349907999788519791259184990756882763042689436196220395113130133156048255436715825873613449497971143382292138647709467484702273258870617029470468672489770365116722850701802703531982077446067450891284699039792813623496827369133666564404934658876264886177031032728427330573265461967493628483514017196485804756285925384628483644325231048057100409499607991772560083825425162411217935329235882989378530728664285515845884872840772054711899809831736762702071905177769053553113305655638134762745886046848782986122146820973796740555454963117904726943076490169375192135308096368236583604457325206445706722001213057072454421952078991025335572760377396358203890922040459014863901510645943113491428639118776398545671582782353410274257382839591624020508309797240429837982328997696103816855179997031806872490360759293737483127549893268439840513520376283759955757779106268834108011186587407510486866269490558130117521060903863010129254476637566330528269660609934996544641552617192160438804244899349621722135396886717758687064268035420256572043204344932084999103293652616224008317553627219069777328986991073149658177551576451872288998030510721677179753846564551817389235434225980064057319229835752664244432525696706638587200945481174186131758495877094243683439058033264640173801986198813036493923902729042617787935666451317975386352837506613585965869016162561789920806719001807748438437514566360660969560892415200106915222045988377194796536436428079898457436453178862920218287606257703052854816928778440517004193506796498560624216126689349548499628219954864516994199667060949125753617092632289620013006498150352973343808239379329585730759551174179904057141450711846406255999712297293703108955775609852864947851104804146620573314083705435042287784978091723034378900207324273354850030586146357403265293801701180600872338602733187935229842861987531602026872999648823427425490086816969802381384595211734199716378702448822566018772711314145718992268579690751908315600947990304690150036123141646037178948987592183995817338839201223428679770256895273829544587082563442383657623141197617858580888787252231338193093105437186484059014855479819943755265726939830127750434893992832409457801649112793010305223765911425970505434339254486957602729843270936986266091357199958153180375391140631621433943660446343704942841013672636150001531374290698504922568113299061933317071703383035270905983383140490069643871240222698767958527818753537145113526725958440233500454251752244191475762268332440686772996262800516699870238004617545199451855244449967635687113567067365831040069113604489717790226441637475033407215002491941895568082834751364161161457378516128779919995192134448729971109618119555913674713488233876248247533304216588128947622943358714034134355982179484725578022832097704129812132221382389960077438117157787574204643701797047601948833056164855373393531054275294432949020252084709721624998602541275887387013189097123245009055052292480561193450776301044519403289737516630610360348994696116243386637299531950913267930103446019612956669392199912102080286378670435523440221440156159288826151065848002161626219418967072041660530727373015159403766236636558164237804088365727595432196946582185254586097662775949613008410911163897779532904523282806027698024696915602699204416407313336146983921976463305199373793300735806929611141885694568406177977504253750592037944808550025542484777544386047055361140283020995543628857713229011751352066876271490753374499082605615725397736438980926199012720536010554734086995966252143998353984101584526549333959395998076663761494701653758178110510687106615736469789332524605643886792221204884097068243821960512268961201121884749469041551922430748719894489552096129866999705425183651145090923461082321932064484091381768619761904816650859442415925040896939330175938403854497652780270209886157071381198203735513158548055389037471559919698362491920299469973110245508007897779702719049426358650194774580021091068716505639410741705314439048236606248554283891073192632531101972007618124775530851390548242215431364574991805254335641815669854729222803614037591593964015750574371133251112296818510677522608799947927463825884359466662658307967521838766362850628093263511507164513865802306414737798252735881084084211776424511794902904468432964544941601175354349961234915069081697188225810326912267737171326660697414921164565837535519932457985531264820103188660094949272262678564795060851867285198944707783323760539798788739639733446791573592904091914231098437047037244598214894854195240083996411837498603243442746845770950798701212980144959542831200213729401237296007552882109438582248626182585352924379102214882288329530141802018986638566584105040162499985597043673958877981774136179485312336439928600590568736435765300977449946779429402087532035380454492843803148229368947111306322724080195110910448580574939529983201904831384472521366045581397421445915083685337023842613149728518682718039652433145944945365852037337637537962846247260746339114006403009649117246315897490007929640462864821110751302565197248107341951865652323742824697536678150150651048947880365047604326027346151195742760350025159325485354275101277397416665825732003489587311219490657152983744247733492649001754608536146275641261837779918108839590306385937575832686037706143423753819275493966754489715461275028063349324181413356932932240702776038332364757622245741101544638133267609580836718054377094090130534066218552599607066722206893758050781604383823249470780215681361182135130496538857031310158057586295298789823712047782899515529976915434972448755037194705979638741577362094009963819577074958712790660745426175680391187360544859802709777209291209201020097470339338448978633071974104248880240427966756932137109245712478288094196708406941960451156129554173595100323711844036412807461835900360695595374667696258748389073611642263322978931633516168242049924985133342550001989867595740496242655250571176347025450269485364858647668091341962857871383542989922096609769084029151375978247507128340748425000290673480675323308594945479878694514035996852227425535856641527633421249585179620553827554131749145551631014343873699761537029107703600984290571183563301849457895906215033517894492131916168903105634763093807083194743568785173736062752944760261069150953103941545074556295668395758549427085702453982996031869686160495111047060026361647676880311522255447859101650687625150300932822037678100377567253331853537495147042326476777797402067792632022244954410682084853712671480441739055404996547195041769337004721960973503167925995198790683214388204419253583184010542909483381871847400512501094993558177781279780984683274147113263156945320861785158060025069888533596682930839598882784532467510348677559180832118640382739996349193209659102198731347161192367108587928534399956949759057488777465061514783638570621466730425006803419427257158212898662268126352069830261751804798932874647082130504775549027368436238798982376658132795347248374816258158130272509149778745115161339564908449582760005356232695092051962380867783158526974142714107287693865240728903233845004949618576340750861853302132402161330357782566245516774957326015189846353858844307953125298288343145392308164832188536039397933224696601032319225949843752231393295762564819717868959691752105201694008859259678183939403177792297924183241847847119395569248576522844054193038954592912549970425901000296641237570766110326573483636145024384421837993951226329580532866182904270758744982130540880534193861195323346554312865055164929416838561865298059447710258819617732301108601218777189303836929606629936778984080656861516952807393264684260418102722756184691958447500807733013399492957383009023298009240018169349001966456513531771366203627615908424819575556692088116131647004455291520632256956989952068499583264427397438743911586801748888617021938695250603457102625913521523035868170456564580902968272991413592163480052869880566706114161682440052897413239894301372161809091988836480901039018522574725000616154066495143464759238881594151878313374120454050198410158031997190534799913649444602705790269833301174432908245664734861235003504607088863154440606762220962021036338878962806100160601056048911918085872681979046135267732691287002013721363383699140088220510439500708308813936646027857861894175820036795916139376324838946735101789145701672534531197086313616825311943537309770784897280087911413937895451572638348013050403492200904196086676640473500852346285059537448882260173564901341938042518469410374453035972159408555945483400526073792862207223268021792741196194789061152399569702062380594904247241014179303564056456529725417102324724986450441988824769858702154526643006093321380213649465255901351889090301580953002215555272932918858345826588715444119022310091040800986964967046501695779391799979531893213700628626182923484713190402339664508317798015597335557324541039376443933044176612097949274164577343931209220586987045351624815168773105970875710187625619644797962018115824933532787715897942023987447390062569542406195815834268549616693502337739329695322993979820494621254665503945457205848389229994766365706602762306385486140964073161751134774802808253615243430157671402136051060797672857424955027372833932227386745215820609054837116362475198396833437726443592614965632559426638809331127890432832312632478311498664099009591266150660819148487841931337670623955062549034418347823592213618073031577959378150343795131114000544600757011271310422323733636482056716444460200633319375791121861614752449176025833607414841217735121611778600282133019225102887689863365353995941951439954906432004487561198502941164292976947594879016767014341444368424666437022196403675784657339717396912263612804444562694900356393277922523165128183396675656559357857537566175814682307480554700800332291261462220478913883498118216643423374297909275939988683483728734828755711854116035298558126377333839717221224784203597168467451368506105268264837707160562194395389750988150937735297684373831982572270299167906250485547764226955947401689202082482874542919833998546324723452194338057865806527335893906891043537260975666887039621429416844331583684044316609161336095311326513239551937657977355939702284013088052820621767782626044085030926936505287290801668182430345172705692341912309203266816685600757712593685886202184469072380722668150300297787561114446185014477797833765054278586998110802614006612638492803731607476305057874290879224164539769109397286869379161070220246986168977833683437064475352919998658107602130515052210471075853520050289407756467789153023351866117615116609202027792734026914894630242794934089786165666797534930677918897192364627830151370902393457953542421473242300483358637191585770457576102732723387254249378658665926867743929590870140784010915350724595597012073841981202902494243333286008909018573856542955102640011341157637316013915044158755030441451736371437368877967787543061259897855169224942180806922601851171750021291084493226860323157767391524915016951432330023950844302269474523697781645405074061685568949420923961597957242556315047763794013655570257065373427980696592011880176337510556737692816070478396458204541764073557520785714981677323374225392191520751253313320790583270415591445055752740593085550539640780326326876937264466293851364592485180277079442813717674494889518478692380435165368839874448167779476745506156823458803729448513644260649160389416325556554823225982625244508929790987412720608732285261966432309091435105925523119291093575504712296014797560552382550471574386075429263063092953343118539478316087882591316438998493597735350071512276924018427892936768093057013098739839039644575164657154345517955303925513036013861365749835558150450857230450706893880901878892003673252498112105137159133745915741761149893682295863424480964595301722095469456947002911171917596836529065016119418029736943524957295919366493437739337665143714886685471080485876058875621759778740772436282911195223185762265282365666462969011751736293846376078860696494941793155196080498904549405795101267910739101227278549256554968512706725050806342369365322934317854584224581674113421407483682639361038443257301048452795737212508758607426575259469781428353905918991211095657915305723149862041184983408083598793517392914103944110006754253610114627609342931199127743187135939573680238838528684703395210627064343856768626510425336337826169416060216460473910750066183838765873772452778467023458742924920936766931138878576365515702250319359363076363014629712027761697669309193782725837984403399754276322073749605954940398156136599630703455131516780666691424727145018695920292199873941466685148566693726881370027627591206816157167569468569623976525420094134715873825305081578179478334209103843665343772964758149019759565887640037628826087252349201508888166041498420882217433714316527642502868557157441120544759965349868670088377014549477215396880850405311549460849237743258487462543875565797984733453530576490910710327696387689223145246804874981880590399351796489982589009750717572692259419004284864206377901376976997647319394356245573162691527458238792881506058614131981651368435695504323420803077014411833530490294408393333284839685439307342560806995377980541571303997233559050313706119530451878210371228391096319098259314204163379869233310344675371883532395079566774993962769841094494249034529369160657725989227453001003422673130143320485933620277599291011118933168902143876191027075105543153854736918052130207411253944529894487021908626175756316309293709853645458655804621943138746138805583380920041084029402873934608222372456625801155312639977840169025535622304050162183334390380949481091416474895913086105375050047029473643640961880918937852136579703814020495025646849344809490982939392499264787694150394271786678405896923493136018386847210789477792240001323444015287054101154440201898345749774308464560442064316643916518083028877325878233507593156922277676108493353823936590247682584918329899251382436716097006649697032207201949456887564739337452184094765330245277524579938459740692962218695482196775670598336377988636144371528937176414986357195808273644365598609398766530251547711112011786327708574256929708155756394914872495925022758332563698581446223808246200104226914014601281813335304699333458784161067875815605172146992626550617463568397685034997891209093412677914503456703297805473440737252120531993931437143153747212196770242756923822053336173668676737974317724388124871448224024811404634092594857123096862348667026485024450625858244573992700145070246461066411762330946808759217485707545647555074525364372298756453957075040217880245127062960041626660121376374816676501643527385030952422978057078009481849586593029020387296247061657158131218109877836709912037447233383606025159083654283580318416874913361540726090071335921675365063131986169173085447480059185312379308705318467817576020622318328380388344442309258115272086835464456937582719266119542751280761157014676564346235147940333213317641737652036049428163009043127565145438443905444904757374849751044509804501759303170813849957796799813321227986253611038832765909290524723742312748283033904334368885911972011050638785830879690387005477571550906014918109204256824843469911455227390607688878596756526228234252818259106413601035577539973955823699180832325084162466045918299075446154160793657558264474106081006851722642419033205683269373390485998358275872275121349765192065530038718021758333674253927663855344320230348780752840939411716002156664250327434654971218539696867812869104346844869051090506539088620803465896217036648404431372353671421366668337336732098313692603471902232497832896153849954090230479542257444779455301795547946444629022504712141469680737514785366097987317570809688448327655774259039377035999010004855152945598031966686878919106472808631186238636086728570135582808451971641295020253736116483649694045619080694662791400264896833492410345228285084900969898211295743222881997650700936493395066029512341022625867774938838241869604023234451734067053467025993122048085114488582801659348219909372394698827708679867272132244490341431732534037451504846003774645099668707956038618411653114449244808471878068538386284103496034846811361423205577274612611006711506222838182693225390625298580876033498715018817753814498067022677357336681529170667522982402755237863598765420785965007927008940250800074256383722063707303428172332634699613159480243947210145426551877434329719245148841497618979182768388340733116841077389255427614716056986654612274029558107825495489464036263110100981653200586709421181754781847807429323079259300581663918316023447111741755777047866456374803733332761958604958855605742579130867902125309678424385280969643461777514502748800648538889154918166553368049465440341782028520016929244370182804778324086960969303115941918504097562223090773188842504927587534373130627512376282561900955011068275366736351587581363968297262998098597446479748331717584131516514415632181280651337440852717457562255244020956339788408279413236195319755961582736728884669275065418395772138975615853783048477590892984643662957312391374190626055017800037486665060488638534271321302395376139819668039408011833261395064814082402468856446123454651472587301918853552016299777158029464400338034402930074187190603197105444646421686116088191020012042766906672489800281378898322150945587741150213760697558994008621343227950527639478596360345682865048571221204643294073867884787565836219985674187027339002827484214969434510269545076958257171694781427315328209754051085400608052748776921091178957111994235988982696478661489301825911651980688943129084693698428142275518368209115274541548320477943153413455977730334646048830538391630215975104456862622706496781791857210122254093941896116565412575948317398818095429539019725745000905012211264727675814945520568507464667098720690112545174625496255174237520593882368924589751887928230540238124329650319396096270331108584035335152444987297032299734892756732004369724230824020466906561088197249258422655888818958467741724241817216440013001561106456196541823041993368266224685816242765857921457298816632570947862662746180382146463027078896285330547738628464217668527151635429173375496639715537596353142296999201346245861765794683192179666969668073711051907226967590535254738657461354978469995951333652615390793223567784417096248117028802254424062753867946799711200622352514266575565144318695500240365083823835755572073720617214809535914074757382138140826536019777403238892458176891687108448829787282661113861111672618416770290797423230060512810595087168321980313694568769868449081815988469257944073691124222538019877570714229656266236973104523299122725612589427947509252311606342442109943886392675758044003405440211580889980648163329273356875731997428905193579258014291292353021488629104679716512904787718210709943406541598069864032016969286227216602343160308731041964508251975501153188229835810901103669414892765408660958570112165464072373972029554768137975437040265105540640189683666960981754902595063108878932105492172836066067273061844966062176539935460288611266136307003386349209895784731317134132347951767527069175483502236472577142510690735729881859088905610347628467162558420260146200940502306190304541630959808577801912495335674525627764050070849771880435355389658389737652547484760824519434784520673640852238179773587566379708271646046964685511186958821148664119646916505294206227100508384956623232410905063759753184779846338538879899527464171555853782357116006410897655632270719524182421011944611940450622728981227520515920925226335115186815857744281792243575489319720698556648114176791605421778042111306866843349394757050399471468241099538513369317803167884678928486864506934579698012964207337249899339953147626757122060082337244877536039762355401033768848604437589312823510250288872179727411159872679507098250254718621853152768841922312915925975601951938724405097787091571890809726089774196186339643989268162542969181635227265596239634216472419020264779476141210768557502890145094686610823728635941484484023975008965214331236775149011679375291693373116480871993363264880508643991612616439876350661103169052511047434766939070570278749130107402327525406926713873336491132826588386004128942035153971570528041078556905640273334992939399283320174281292532671048201609275296827630436244719779976165239236626073535757129120340957847737718128052191747521589221284687198071558207604620512994960093970037837965352033795177576531348048878555075327318842160189129892775319941759125060579590752062791064752658574838543715708620023391693210005883215017758758160782852314897537369471591726735019640866505546126639125394595422318715468429292307789851167867118553369611265955906857484767972005202436534360589081244295195572212225058059526532419271460952969038709040024668664284712573098866703938422427606444472855663184505708645470660295079899181302072833991729209168760151933431178817805718229017031513757960098134567290493391433659666289759899310988225445456785571371294094460190022433585702667827066939749133620946632981792541262779776402747025082697692690856620685997270435397042506731056477715421284903529252782330406744299966864122685227590167048344495859135135685388010549523837487433640373669953010530391628860786545718318854292248132514922480118084967384786648199543252305046346842950895396741116119400025511565949439948306452765531214706932124818244152412501067840640753718802747989018970805871690529987899962945694873036440722336301625441814613738320609606694611839017435714833569741342741155441284580979475965989712697902406952709626458318668769341754295643374285340357755714160709404417767416138642715875327586158484877230095894378199644622434245344118546529660578112159060696660676999193867732447266529621685652437356011976535428597403891905364720580259470979372470448276560517256776637420335715723686430820609837479561246273658951469755411666986517685945657717871905742788054143190426126573701675288829005931913503077790494475714209714589130113957405355973468718723355110367485633353765876051856866759944246842186336803427892691867577208885522261401995401357948273095398872869996706652854869255813745406660295587906636489492040896584379654853014333023183117914432557004638617414872081978778845706419728718034960152049254425555626111612544100384533911671976334572684781403335651469900128002919158023818743495688988377404092341033643616941691354017044385581852794377446096989727704402976470829692487959563365973499552282368422203805260927701322115103072731982232120937978523696275492049153982862819017879335471364900127275459791928170500618320261961089497500526192818834866980259768825470690743830049881952770282015890278255044313804891686093018262531962206946077351691349021125760621459707471479892748997642569107415996959678788541608224992763843198707393252163583568321036352005304333974323136604208652534107959413224920905775156115053795638025821966527538003999245003762025089896369858976859963322539489061789286121978614578131660023389743426850735980925293424010494027456207886727306009375014473466993563496604669637838406332567513901404202036941903842627099282895064479172013296296171171689996981085530715064746617017925461694744536942905350056907454725101475411105231368717939424418507545230143519702147312693190301798373290028487784083252486610101902342477146787960930427426433910858753536382261931850640972630714126608906956940860521830451225604040245603530821561899983013878740260613502836807351736873693035673128505769820128681895909383292048831131914505427595884314587013792803144114601550804446298921209126091357231254617777092576606540801864049722546822211912125121097675454938680775099519180041445506418003620157724370774271646967477583435633244231750785714364764787756663550107469118587181008659759523646515686735095991502286241409039061418563879780546940503635498480589831069513480100679183089282553168479014555299064180776730977342205237555347812282490214464462791548723789355676593111710789862001754988873001498335610350129685540604766391237393068299421534123056375256774221913016390246266605948668524443437699620337560016355420563422974753985510528507803443376737136029467971232649280687489713706236216176928995551881349130459558522352441601496299768065041653325335864953730117116061974380015576742250657006140991932477273316596428757067945618238414052496424574288068986548215747603439097510085766924541549706419492931912828886085939758783274440808369251313163706311258481353668382808937036736522532502223747678706125523364524329008509896369970256119650682927372353723363693785708474806010285915384119968459620634420029190650450203894939782283833618229871592555452033321875799239076960618917422330417574012147451056990137980206905456677639442761730167111368957752948837265671768784815196224604372916835289371803192858518289232074054176144759274574610852211593967858399537848557478625704002039108798997600657073185384973634201213347155573838952928349206199601137401103275973729384491565271681510939256371314545790825769645837148790031780353815296314553011778408222958204059655276823173026186556902059680587706771847225761488997229370378651973448974961503162162079197165173836567901116609108550126496058152066256157380964002885189481457439254309300736273709219695444537609056640477704984022714696478736002880914003630506288444409200012100853105993188598540904577109083736863997122000100706765396354558932819807872375116959968769962227735170557570207204769341124252166152172820738153792240551335866751489614576087914953195957002667978277464549537663421481831856363678109331547130083664519689795655549273771255933281270919011217497054375277923016400655870943019536121341135906205858075149902244272728512732665563325207962875676125021955876980969401719600563348602870920233274718141723027503998493052477341786685194149604347252318374152344079140566878316887222091797612416012721227033010791923108009539130871475242863652060655194923024361739895718164846550855306779655968829855608719074698745371069326035345598247065427253664597804382204978353192221669359447957351012540672280246568129623591697491375570552151674812115403101097557586961104709745429957669130051113317879878394732210843705217619778034753394597417120224395127192296422865784028280142288027223098043359740892228083806967808470419986463543318661166350767309593480483047579421960853844188258537322991968243972866728755517135016135132273811988426738689341950056066799499046124010415301916915640021965941664671090807545618171162008828653501651871316708440937388099034667326526253885112653382894965823319050625397299843416977001762524171946881796574215674231128147760287452578293375572708252737039253219689308726260763754662949152527489969421138468031264065841154504216486861294832424191484055551826863579118971450317687500720105666733119121434184934837522887090574784332687793757884567611891818238438678704633183348342801420475608114344368286100919738228303357611370484391516020324032162783090012157175751382759138619972306628711287376394134845407933059312911997760481083249087786683600107710585487767786548262644376572757691197148809482378470658431858640753134558723450206939561304521750533906222485291608666602694641693979837769513917019131397462122947410931929588170176118053432916935478732138183112181768408814705434092219162711148907993410594307884751893937573432739031747808495920384861249069802985825905215399857717961629566280689334657875479686503214226814026490878522626674722633608716917042163307108670114423128541354300731936475301357182371094934229792227449224568313908461499296593092951713691678805821991111830135934315725662651110499835156025434188576223991388260099784153524026074647560436587056845843862851036180459215465779580723819963073323104471769583932304069611711477161068910021068015377115313542619328899755276651185282349319847792429136622267156951829110836185434115028481189345795679484072960022483333128943388822563239283226417526578834609031078139830580459801393009569374797112853980960197564777842402515592493651893173139798099213888662405781875588588882779896285495877493392839946108327297731466553941325844706508312393569309620902336792864482471475735246685066842315341281289589160725899084291138663013110405010760938447890244368018108375492261763035074721791733383714731247050226488167238768528861428087209055258598784351549624158703900366354184486891008195668150703519670456763716651174124794271380938761874698644225716873763857018894936358954469455850563101340744671207793182371018360604547021660112030244635275890534073804159591670912963560903096364933696964781287398574698443456174383377424954792779640854268197294064468016820803002443544630987999664048771554140896247324776038277475133773437081183825293663987564951800244582135010394487551827360872722326649501187501642363925937052396807931319512552341906246936298036706776087380483803909369950428461975826893732497187453093110274702710773089151278575353650789398545633310381592427875107642030679574534085512229103676433150094402561856576977548511684674253868057926644642360827830340904698077051810584473970885884557357315827053953197924483671170961811295329173201329757714851457392655323634044268163627468479757982536799396491669642000520000287809503315792103708239867644912887729000959069844491634949005849858653286807774125242736430823752013112345068992370502427411778086867681409541345222592398881261288821007603639939652352585417394226242972806317683520824618742126354503916421317553103952393983923200846579057975099769417342130849144421551349665276923577482853979587079546554838736220133269606155218475227717778300779123787541895347003819225945862042677852054338136784195115539194682845150272495356807982121566858544839780081224980856679830479147445663367061686182043301013226416090055375628760843509157303891693099323644160087578523896100781111508714007928338811916285587164195295230179647709541964608627024895939538306041770592992262654283721820369180386043472785465948852911953761300239857977651331885993099147364857544059286939946804651706422882136614092900648830418865928972779640818994823539391284278234285098325598072407288566151182083800352155113408296198868746416632130082677034659011926674371115771649151836782216289425033828627725852886480567923300801844647565638077343209783841708478468279349781318671549684416307333183933562744822364387664698516119423108080023963702503568378312529841321937807667646780648501618611422500910242343063582574971551149019662553647963978906124761619413780717309778685064106529735030615054407420284808808019344856105572790274396717946039332397155149869318691378368798351720316293878164753655542792588127234445179062368501238091139498915923485987160160888013037472598539427404492986369744079385667134910192024890547958161145888170405458209366605954245784794436260654196214672880830946067328368531137869511367396480683755396261194454923047376445922849463515008113415308013388763912342400456129956497393762716948028697631317069892200285042000864657974643977933401386358845951182131528819730170265344697063156822521028758813820273201735974342325482174003499858065467850136432569900082007624483848181467063287663381762439088700410926375331282976156053552858187466437194546810989727646133306609066933612220657497150591361378044745923793402527701752260390147683256144875208418683149048278119898223661595066797887929022037160394082861986091216365974362469391075309977531327194295049257637969904045982274431379566869168514243384093616651256697188538220230883913456555054207128984700720402731610906935230038639463653715321062388855962844639582850338517716813118230448501101817395759613916322310484821911062133590924046392647183188471311896714136390624774346564026870367751752815060139192431157975166963875099687272371775946661049469023880137261982739987739096086482431863045548012452546078265247418145955839311784012074137400712486891729969509804618037726423210545161824632907526407310907136223982419241420465532859916798413052042307203515806804138041319928205203471808278233183669098886130722277303458408010066098126415269546987680628833810742593929995083633509010875928304246382693618885919300368708362916223975841690786510340965543200439346584534280804652543401918615395066590283902572472315903951103568386880142498557885693188854949499087943314145054023264244830545173934933823355261233486389011746740832326418904014310401634228235471454009410202942853000807837363661287951270152835053151138281054257195374070565396037364648034743766366228935574228430336477864581841722558254147049996364313855824207823970693533181239784515958267658234424931960652428439958217983793644786707286040238249084494791498025569242677787100545706872047281345976750291972356264262459965926023495127448815831568560179240606018416978280890274616200029943281636305535186481876755938640198184861772637193238014057084267146100691971031603527899588607573953579589132392011899152502340528335360682650234336794734614407000377191570966666590317555442489203042620839182075404512546326557766523592900550245795280293374034154307687005443500083973134429087029372344066350543952120642181920636782616218634097620805084412067122900269529171427377663106484902838870569317836426196656745858946430975161741890388532883939015603999255782807776185991733400911989805764395928801757751305425727165503415717909237681803640077575064202197445514746303226856993973502524793518497245824685120185946967617018543581831381124988144204421512317929328778763745410318873386614797697520287697738978785700625796935502065197747909216143880264988595986503055329839884556638732878609167075132894756594054016532478543016902717796225076382876055693296928105906792525555267606358753161262569483943456866828420505064514554132574136950276635797282631292833326879309688649991164288078524706948930474341909143031838221489842324356758263536727359736971838041927463013509419150003554780841132428542597758085722305667489177142291309761071245459385768380595010495934757621800467236327907981802861877949083333684364000815063826150432013937809031446254345606609183086081696143927197230028753241193944041273701342888441605794250738688688423821942586167661640078897287498924275456271440174297971533345733906509303414316960657975553634626800179012238690685962404085976050483245391783525075922025088621854995293180175126838766812588516606903181769727107695609350806193961681470380217903247567420302365312658401560748143746552416595008263768389477933039041890955608671437142052535636003576049220575861840815726877707278241126453438394480481721316387669725125741763899669278881462905414208171296882565605802283053961706845535075554884223516513187373230552714293114008502426349408197935307311434657897685618289428800202912799456903179993642083303053618822950204447740061305135283531303134137004526324014851954860716388333797746630351252200515837803579889751915378319780950945451947077259372751496187902762876748796320191933761652215731213380631570354041723448765813759556559929721282815584904723127268255230179325764312972896390777900761570264674876198528312626870570207457937117317173241189550361924486693504246308665890672807394317043953288501155569140606750251660415481841534060288594386265421977458649197548618536965231215432737220164481183320902247640778199167133875995026981502907325283750758438011380189739754604254949471587486451409385108136533847801330518949118090161161734413447960803123191372853126241092455317967561111191280810374059860430172975672554918429038596356766695072796542809542032213522332195229449301401183559088969169820875304278069459718222316582932780074474486822689723783994699702911946607105494753815062707136647188055166655549431501323615614750361892572304899375913038896850476948257846767552276202380089662491352737152179300981329224224637671356697939137227870234293131140011373196010428420556272634202739139486178816180203585885925021046056219113329433146323042932151680962845413490080946386865235490610632861715881072360390470821118511836512640571983784254190504792317839356967515315164735910455410818418812403227865998734090936223060225609572360434960331935905263985346678615790684402860650951016113099157568299619453750303272959801748936762128571600216407847719587115030948095287429434875824770209727794901738224113593745371571143001864885681249938433937978176639976343145771434043489939529190937916182325550936891752077774040707215573655410530474972980337455309862997798868691523364949601844014764570939670785129949810061862966697610408566241937123273068318205736781212018689756273906279779567505685619276449339241499822498983004651787446641463924294798677306090910405138982068415939226790776503969733287759387128709012736912171294062655806067452645837306497923204111350169624484694198653018418290110265316546078721402365786967916112693626598110834153487989230851841208232532601751852125615055632227273361898299500217273456347025315872752947258191417638022776286713084173457095205078939032604732953701159999331826922579820847625351730560492542156203432591959230599427245678588866954185070762669973526000243445242929954636359286506913593895911221785357258761482046875798823035252606769402563173104408929906436020437144002663993186882425188579680515587012408563371660416934238406508662439065144833143278882120906981236737505524839096138110656934734114959912027016303540987748190033734041560258451121012184711171868131041065898429530057105977146736254570881367041525560974143127227740708747941428854251697382142147449412350123209684249764591183908876886885565952166438322775225955650807440586733944035024082688588278286237755871776713864756495861768163079244057302220470098041799191075023021900150736570393272276544470582159467158047654199967357360537382973790595361595108682558768655777409161593094834103435756229423471696252379480405533105048787967675522355525396827082035026130411233837828751806065582379228005825077016730183299113894035180039827942215713982266192412243392547828227484320186147021750606076640620272776641157301250717536014123103649991103359323330442032886688319957471751096557619412001744223888511055386478924255796439904394485266198056095123107280668731752225461305163608427144155057795856528590752534164869394913638880064927561152253717692071521035036632319821933939902740045661590565012819650335347196104943131555840756679985720718215210592645925853920480479770602164134468670954504390591291349784724638562478717818131207995898109079569036386228836205708802864072850040757766450464107356854255107084119007522964361451880313628234481842274502708496202291723295619845991703157303120005339759669967617001902263002429724425920615168499671671630769092705582766590130249059386489426335269886579775522322462511956597046204365120195337551078842117341580490495143545195350813667007775759000936992278974036774199528032390608578242280004787122880035763059581201856737463003249185284251200380012450207167279422071360031307101130246955465639102825239111966191777418819421124183213885577397779540993447900791216515646478371675963189861776262928722415616519120562246835131365211619921058590628995729050187481357531347515382897723015589613418328455688089861486988081646695545198326915518105708161290453133986008873424069541596441034673884748205479687259103916697853958167366385043160320155258637937466429263756796735027281782365983940745114665119661855511414792822457633637561828971643919660333645864282465578224523637939186130323880176288190832264071143319315090255946453272615026061633214575003856971522972584516147224152152060562309775944184790593669672797212944738068098609040657480682966494312061026876787686785338598638284689759220637977596375039867127593807643027926798032682528351153984419947690306992801972439639157964858959924265123254181872027924702258371092745130292417457121366808391006973637938233267973836194718422304942491398345984521169028245629085665109374942523616520699933415935350994092583471427770979937915508503009529682760813680160503925085352968643393603379402014330250183159535141861595420180504961695336877622545270325031269217919531658568571190802922997142351041779504206459247801235572154217466368776647057608490970952295336653608063249183011845451943243432643689973234439777632308470748629617031941727596371431974797995709849362237946438653964175098616490444240059046901580316616765085129745799248875922502153983706085064304873177385211263928186662949160893616334200384206662502547972537311350095765154169952207612694528177913458235532968858477374051527374006670281792872642163620626113413811033484149665756855753182999924500555840756682383072484543323539105414695293330089676425891031285805874154935439097758629504242105884687808371377742123688026617119564762588727579820537017174308970979564068137487175793687577299128929926260228615151893960406296921732080951909263985319469726414323958496134441118536624808181439765490769199508998947157875144643303881592736956078870181316290626667600100293466438669289730520989671827859590979532783164359606805905865892942629541818554367314114768720600743471694580421294806763754207238408527390434162185749474720275245384759636026418101023549432544544099706325899450223061283337211993339943781449907582773311103351879505943092291380869382786524937483970967954711097697303201619608276495615804498713828931386311155185458445400453571847014385501774587798372476439526517875772359204028951493398994068931232014577945416633938547247449233007428127191392003156817073971168917292837844068700002985470866608423544543567042040645382432308824577731690321296320348721493485488246153357859608479073459114006011794932000981394184322499632462490117317407904936339105071525560281264982194475668154643682925888056431908609263416621890623303706423562642208000201475800888623274433451263198198903211344495325234027413196848052739254141219733600176710175841698676199269101298742900036507251421662925730814840969940224387871764895417625503541459962136079161489658768725623505343283733277446204738998787449109207233027216838084464224942990316110482214437674508097148368846356652815333818401566687305460639312887710911732598376596501678910547973244664111591694197628990056867793998798257030357775517707933900624965288622635242934062808053489690056483925014109355979001543411689258269020014661503651261959100807355144375169085618486091392027398125638722387678734712664744543277649072634992279762619417188081456650197720971357047972269329119886061392803491942873190360544226127210801331250607702137537698022663986347080240214598534668331107587228878571716300195956721351170372046255394264229293511683122770119417240462407198806239279822134517667808913202604814538990909433742118094094619263394781195384085731235983649905575123821514530723155108241382977576403650372837938001001076079852341489113165926087029741843755154467448450950744370487792405272279077215353658240155044073039070038138115463684271458000097052421239788144967880089940643714250945017010792071132348892414331789207823203223762954319711472480140290747168484831151514622973591627566921230204321229451750508266141451434734108959682744377718392073905671388360235586440802535154230265690060226630465908923257561039903626256341352030766401863070595664836461004679620674213954497024127176919618004797648779197521402028327985101292703800062560096912819200244589599036393437763856718991465761489505713724914077455988980594875021671267086032517255551414108397043487309164744375406293875152388772949824575599569640388731847469014305398755532784831192815145226581654048319199701519242700997774568047458505724573659651646270679586003052726856778246008770220745882752183222071825764895549223094823510035327580460485571761075292199804028502473967772804167713736115297344291830199295638532217449949380451744881403376550604230348660869187394254024668708998431297834950901204997289243503025856692854700217197936040621636424407321787716562526641298042209650791292172922584786407298858163830067038437794252296369391416056795824849544593088961311384805685073826457709914372096175638632152957191917106060258235880260473171726142248071894693458166782677731556839623524286596780979715207781542204077440581241809289776354913783965707021178582221215451229105564525355391871719548202342201153544016566543838902290912012324028885217490108749763483317347562134425478006929712919910059981211930100333053064234149709809637250608106332754832736105183762695789846614245126512682593842065599002204145288460911223278471038678455920174683536421988053631589645075129803614846322388746929117596533367899827472182686959480852334846055045021944044755583997218212613873288736415452230018632432315328156237183481419083989469843862920416053429180174486055113636439408137165789319893497233595207023536315422999020906635497863208629801100435283562094962414516999383354673451269864052270160045371697883588070192649750508116479203511269039821842894408567974902749213655859686487179004283192624742301812830260378051709991777437377039041172243854091259386004264447655854554402074745660711846009304104008382060301510079874154208284147251171118782471879615673969441718557831528607637038878974408955035391203036905625876446317374347573318783296220158465299312630839469673105228294550337307861501876935503513199523317550151863968821296394020635230114544502299497505422492602701691595439132460746697276378650371468284236241750827025056997457472951096566328575781692643917988629075460110283113322052300255901417041160040983126849889074814826015413282729956172803212353872061100165540525708622662855540699594587177074003593256315819567724888903436918928997635977613944684668048530214309938146659370331213105417480844419273786370715316712420287300202337483630197580534956360291520766900418255174000056472204401735041381079428411890404605158649762631018056741318871391727971549878886309137450552374015313159012621150992667396941877071946093384767276674239916760476892364584886170606906008831152709769456130187372490291765601795219488438309222037913286859800756795901640167226408532168025996838801077709105149020711700797249363455503340277478629182971139523321981226761745215245205768628601886820055007953854713242491815079436502619857667686003037870196579985159991027232359540291531830016069516979486715799949920782254283554929761374853702704717294082974752065288488066566396952585466569493251299664822583577805482053461880368850962243815529781434714532236263397102438964214175588357840900142017239590862903801737458414918215293755366787665996792877498352661186939605563247278460344100321669706159197408280008190225992511578529892009321063384890175850184010079644225963317900957576990555900173708581915012744549604290371936076637327284910092233676102010133510110743790038097757569323907712095942571949429765305142858258090270717664291141798348991075812652229859971046143202613141162787881966927239731385565336578057386053617972049631291597064332076480078370198046658683826031488490962443215220200877448031615913021468662217779111130719853483164797284393638963410186477884309994318302854929619418260984418266357296105247490596343712344213632821730318748548560873873289659403536240108067578088656037195924107047331391152823286977164905168714494728433660149096840469863550324974022669197050911326863028419481900222777867307991752739363242211334259313487248414783182136554817711010397893323032744375835128043812490823360946259359283241790997397293295444016595169230183226862217546650382892723275364138220289012834985991332502090812045580081424884446920640912426242350672348076044196094684984400958221193775549605228892720732874805686687145603747844469233008231177718796137607496059044582541475850255020974118342853362539858502489083237077849642011936839699528065286308318762062558572395717858990775471531808720098009613729388290072542405077884902507946610453983582807039138907434172873745311547270449197838280785291368672337152098173861983898087361905019272547811756165469316170857734897870504664411714928824689971926595033809935660407371116459299210845309934439990959136231027788329584634449842220085116113076342881958071982494094121866833051469656590617547192856276767746379885659400237711639289714288018431449678599545083848103384592906132543378645864796847241703176589118367323022051612890402840383698250052868064981024199815357187961200465078560512760695516793330181837393476779484736807765460682483087841952210082788780337606929334293774177557168718564710713759722110034728821037465917223336196728528187006618639885986536388179575473204452841519775113650132060013663420151552443716086276885233769572480485837990239440548184179400183041214122698204010087308658857473090220761179354954818784994116529192145978388179453946311416144759034678911376885561967698196674898023032322723270172347819077119967459063945295238325853151451570749069949621682920016198466488509668305138347037654248599698533535019556139741979524193399378250479275057664977050041429089615091624069694618954436776186069491105149748949134799301247613743220997905522456010714727479892853370054354357036283637053597826236664941928630683638711863458436914947196259594628586454264303093381571758444780900253349030606400254765409265449560811173227558558881544395821734865194701483395133628064191512575149481239453497439797996175848715379584403491818906571261559782210723266818285147107101030081739543313950785824078647686064589966001627526435878682933386573707455524367652694878825041952159688376339223807852701518392285184409703312196781568487220199415719673565135107294348344132901714298546045372235903377974921366302044968751758646181375826302131478185209774628229763839464057575187860838682704224844677210508997042195034996824408108222681881924268885737261885329720733697545949011389799436896099519264959773001296637708078942944434090736211783768900014548675655189964622298743106215439604819348294956130732339535094785015384799819753294491722371542163484694796313801619419669247248647824491603499981911281397100077139918147358064094307833353871045410907823626583259152684439240775878539652828559772944078117780336788457036719769392834798403658161059849729069752083887566226629299317606019077927008740347564216729725094298023567571591800162373607905595214265097113981472685643292886173498503162329179903414076297761106142356157430788989256817928754588711276624702050364971692094388902959132550104540347120521380430029062395952672226532445696228549957120114990696227810186785513060116535572567753820164096666464206618294937314944630848612120129620081655395873595776565469326137313974688361456329322508289399343937718318864057792901259300790347516932067998242870405634271195126333051817980903839579715030563972796002863144678514556394122771202454570368211415259668605506523863607406492860093865618122975601425437556658548513639926906633095954435140350194338922348286585759628738523901452612626810912562443660276651443543873478541480417668566365760526605231303273706633188246699118181469258656859905260829700288570447496057894688879038815140261575240108203947885557572630237028940548277365918457757022529053733465369252748056696518520773085401097275093788013030267103184751816739372343551030983052198847080880905298878099460370234337739683355557784238070813642913869636490728489742496432144006699360814325010151728342352272695355181963806075004905775370524987698688714929099135050040185396603121765808644537252774311035019581046688583159855477173268800096542062802751544403616313859690296825949325868500235947760961883629955125297981852728526393204712124916145149945136376265780973599251991671196673329830924712439590114699197616942683572851906692528066948540868295041744924440592648534973833653523211122780030854387905474218300203578572706216096951288606695512112187988388193599864354863107954262917805058586812835702239595170997989036551450296014757105800072954220837922919830948516589661811272062321269532561222131188743055959156260795856255007766358321361072267977802249652873469706026618463221403865861242267205577556191373666561507035083968470924881799078633498481976866306532692745773138612142843746617162228073876047933764098235842899578265105082738629908329449086928266311349843516334743639108868743183421092111865379102787723828097841814040212868753037551203208746357917793112300007933455447104901943165172802987329381487368138395856804004899635412327464309368430870571125923251267586197213191434111142295773202095567398976562978831350595137931226248437809057353852701758339243501743442880950040559334414630895686279549122428842459898069523714673755366399598766295059692119056625055923619245435296351244263659337266263400032079202710575078840731454031370258276174610212650441151280907785185805524875859666684431837541669128318744088702935966507549333951311659873200296517913407865020232989072215745973941765061898443691019075386487946916169152415637054025770866601049523605111069536026318503906272235684530000425678051379798805204316431241185833637163318530361347705056101973480060604803555266662934929810514003014751617092375534233776066591432000717407064233099769653429738799289849814233086483077347389190636650389347225944321987802330891969913382630165048424872301587881641966444332976328349168262807930622197493604908220293790026856345220210347127119866902885966607810055491053966305809680036210349944005902792311924068571625476787535063423172716866861652388343557492508294499422590447036075168471097865556881458571419475824598505726898310357175321019357378341482394499516781390829667519892732240297869635877817530812959610237326933796034951444338795101627062686744302994854476473639715681915096093888800364804428352273995944772901169658936619627032111214011974140931194138912068649675141198114457282710003829333509628125731463770303392118978546031259341590526180562776915351988135425093515108128088772787482892874073494825818923786374710084242280710012666638255588445842893713117896489212377250262338705636165254462955520588100022983033244365425169485537340909206041967368250779178943023588057940260179575335048294601900901580591484146192139926835573282408863956210296223870690100610644224842734262154196203127635440704746714333384649659815105682115019735192777891723113478064859894403935754752821928414866215117127850964649299417136754967800376165077624104747261122828391651406138062698999108438549911672230156698039671089607011436999700720558847441530435751086655525200532804427636252172046757225281288322543523224449971947541974859468536851711957461482187045374783514236028051196077771086892908129545222577138567829879904790966742877090566711140284238035490396655770279915098612844403614938103178640920980446613848343569569222231283939996062428614739578052300636996655196902059717942823097035278799296029646362635911381759565552463627034730213653586801746421795680529307062001024918201317795206628123933947440839862254605554454222208952808414791910739512418533098944060453653385295614292505638139131276077673997107581855249465492914648064721574356766441597200090807910178835684545736156040287377662917950011069845314162173145766202116140552861700808928267597647423117140313589409805793986170828724367310209876041926490318080557865568851397627537193929192931088663556450211466610816982128839191082304751388533967315092733821593049108631789405240590936114815038934506958922212584053706910310528391328351810267453776575193144054823295720022076509473688042049779743784840331979779433898707708932603802990950101519028402587114726571370832157323315481151496316952887604209893796401896837965974488652204568173367614411709097832846733166922712694747780206571734163892900421187785665263811271610837650246159548702536969176833718587247075154450305459356029665206916246487757162988157506539962478779090907633257352083857011416905194435620236254365015657081506630544743468016970077593229696250522865091317206517294576422848282789630042743858292927761316448283654908005269415751495887859798668583875585325151642920227771381349753675455633722403201307669733250493816238662086070874041102570481585681413175863036825935060191907762867657932286730440915369657931482227371074980905959693255985435656733147082453633251073048333684160139002934125546875440499858956476507723810459653230136875695059569144594348534960316199490374448442319049288751678915333297218725379232019368005929332444984232510188304201303947601008076214586314551828276043735256386394586372876878628303778321643862358408762829689410002129860469006413351060897603906635193112644447282176835256256314944650712251303291916320008621873305783163748149086269132699697487664339055576535001876904125040078385107190985217065212528321547004147233602886942273725652896566344378646933495724420826758399362798549662304954289621662910511985466436451395218002883363623735008936234815191356893749718865504514322656028589526644503661466421511463841565018025838446741659187949677562645965653846177209527536220206687681128642850994015980698618042002197048842884292099082150668897420358495114815251730536430141805844653840751675185284401344732771005795238704355929586434300698201343084795269638066631438095612104221974061737359706233698150348391398600264895763554468128212388527273228296636840561175346193548231880640306212008024871001088380559871321183075994684278013256589088884596758197335206972309682824180097947444301563188157161858080820094246060945022136337805804788997685508566577657102897359188527760829048812912580470771863717888200319145015744436110383596655328358359345236739803798437740277013985207223180880562173370293839946034069422837663993842664992525903465097578601621515564896862696203201548966005621890207304086326900104489308754614745316779855987754850761481051566113474180960279598876463822151200801977561284011102629141285564772805675479119612879915569589261978215914279258783927072718593331750925410364207489135081676745408186967604874848113740469301918450464317765610629590672354005950201711266888311243904416127834107999852415814399037241744082575246850559560428863864240128999058648432427795098590774356192134795580436334308109297095188418030494589301304969283321686778240959879392880436545323051953687278506542246836692940504456712054292639564670816267126092691252926514933307612004133007934433811544198033100059965238195811062308076327788996140263043552531555528417871216570069167951860102659243741788921721697451123819011553044298279118027173301970352701656345996365866478552322209646892792921135737332508489503784232562869799109492053862574347196018671439812796767342496975159173002676940135572386537845723015706203659265430245149167420562259518273457235189896333514999382695105637518080430506310455549881951992656931655386668305531548170940891060912194372518301695592638584171900479164269696843164378945934938309817817098874704786351791814492950359700774484269473878291028412664453482172611527166379814144995542724592436624652245268386008947730237853229424251292396373220948048130127613154115324646382114918649171399192629805549057443496344633588338193063570059977487863312239010928430041301682850003235348247734050153989378506267640028112416148432355062471030422928404525878731495705857122631111192026817071550466026925071034170281362605619028570359394346650047970724358960568077678733254738041404463544452438821829214775137260831675541684361590500709053217288027394463074217443338854536429192011425289920428885185080725830602147399074821758902277142677701772302533171599481270631719431722890079956570365074394531038511794272481022287302165915696618220894044719730948672273028527016641480914916743820406992502575393802525544304412321543049872315963851299002654027382668139034400480385468818534747855322469979150595281551160240496952606673823874435556375207744392312887435181382691628622397855906892250013169139874699711041821961664104186315944464842091155721810445472135544182194069877782797536592289027334711662408789409960028975368078026703188152862618979319626586981081801932212776111897522144293150292998133831293494449959782500052952810162556634550424469118140283934025680763359282145690645702556901514563762183398435354062733909066823275029970086220997230294254137581951605221889433006932346775150755375328195512531811697612266720281538624505106899241429582047277423133587760886433237407090624605519584333716045046338556966645573654439406395742686737141073091072275399110385127690097120154432009214954008731404702511698632561691451478119994543885610733831801389156150077131149846625103060630916165391907145553128703952777294443407794909585338414817373756445268298782682606668873075776785904505607443593363222840104244214928206106710178018961231117665240127069747064985751821571125685455150306988702757722806859427226695104200595007667967599118146054089553444111581820460408598251827304611925422218877389143040889317243596231943751416246303439912446414426788285689757326608744378783647370883670493794039611145634754053690525850555528664276022944956283608799555577307340262360887329649164324251600263457302045258995795920561611204819825117803803994294074166685866690138081401744812531053654835061641327652283363076846402643735766069878512068270700493921512961594515104763703063414772228917006483223293767374614744743051559048779098141043294155122079347175565601329446913692208624492236623234511028968788069020235291780526817226686766643794610504939204583144549383446200452079470054385464486710998285920777831147339945029211849182571782966689798742319381074239781574846143620568097264213258297368014979391297798126815911126029642566745147932122766026441811958705861075329485141613230925209761348852504328950145292785171392629006834235256554022638802980030938261084917990933899854234692692714708051784376447800757891107297933046522378985875212463282293474566916538832744527753803107613470448449408174198158872873776865722554495719790014907800918171107964890236338091183334953740005378728364612865535851809647435941187074779394804776127982098791634608237188001472184099569302570428994241384074256286125329071236573099028351189579400780771314646298540686467992800520044556317963936667600903243363791780510510076922630274795390685294882145373157242990388247389340517929799994170954549044708189215905166567646354207213776205895682001285909528719098739735234639357515874513135086034703029611159555766362854538564858861783824997936244449899241955533389628262854311338252164297865177698783895533801981593962589317151373913490928330415719694659732761538917491965894688739249643349236593745020083549454179179815260483624946985499771745258566712332182722167756120218781630975142318608947531449253462364286304361111894610695942904498595449811906718211129022017381281277224370150334484406885208310558947453815257419884908709663685508517815571543907733483748289041939905335086477705256513686177777979986828404730964834719429465748884877865374810625547099011179163703667339909538618154216453201989922602153318658592084398180572066165758457698500068747844622201606749086621760226462400772994675350240692610326853520571484620489875959969957201998294857356297579057234649889373548703181427728266621157516146486680085465125648474826898557302011990367527320091398417025711173305789987107282931055259049082522522592617493742445780963485839683649923102677462485324916872919092717723364438019872244966415264435894804320939696404451892831708094579874754959147334524563072684683816376960962915117316973874979797981555992793969898953035952104542821287235865144510829911339110394487201968352148757864697342363698236017910295469397539839775772345314372666479072724541901852834820141631210123882368302699482210420433602829766178276710451673927302955366553185952256049560503364557286051269390722446030970596248755978320487107603253633933740816310158027181416261791764998422930513389383153737269679045652063522971503979904867754284691060105476784917212762192896145271108418623288407081373410551186786885809157563012836769596495259975462649094155392271148313673224095327707617454100914020329127732427584014088890578927843657311568378225806557374825198217047437000472287886810826024983767300283057271936106023733410083784240925796951363998708848750200045501600334237519695078818790751488993461792848165270464104697996657007157145421859771469437531932408811653910407743327625757244160327820862136995272078760516507345440516014244092777604382038054138625696465052190713773364729199557772511351582007922443510805579921320819029526591015522252112070022516301099559855496255746827107891672239052704946688654694996366612167145800886241470135750359702123409665654039318122950633339966829258622203360255215036549724422170773174019944990530389743741345124558876119188084178569850165840877287158592100490787210379334446480858028719959385103614821846752268103105382509993749051871913683974337973818074281429488761351511834348588197784822081417920779808709669960890794302788187424277906744851876410164358467253391771056160460106820689721474339503543651567006527145771845061574716245546711048477712704442829405414571519002114710413759188825018494865134168357681219104915099888127555397466221055567793643484120663521719938199112570985871243404548732113899055554775041516563978443001920174930770877900889802918909856116490728918840603967621014329050344017279665801563742855727276342358783683309683372715058904270950120177649282728972601695965046985579369757600327152629350904548025046127601749280371299209828718840124422926076940948238224999940719402139953213376562778888050970988976895048457979489721588156036280745144668993829101809448671068652524976429420897700772241366615945064445284776604945361473441501465731664613554215832916217261424696773817087983501140262377603596030533393778471484168909578602730983426763501757326663182173702222178461307572096662760470244553286847795686641397406334845271999280350657818188365460387430451335542826548400515796668144699129239379086882128096762668445893576643769887897343517146568730021825504935399851201026604117867332389037335012417070827758083427413317130781275388911747325444548850252980335003108294988879741571782799035456423992282492943900546162712447239659853290080818849302530281120313686013464575965671087399116088077211807057490929877136313099848965588697952468251518204357645531247803978628593156986340050680753618184578638900229517637622167990191422485982132584868269488885651861450210496154924508759082445627804391347567278462579547146890264395127050447133045135567688293975153117939650030029576445825717168939077898724236548852095405966684851070386754527038188293222286088017960258553846633079523236550924176766862765149980481005092656541112720726210654865410533493444877773610171470673925372151669881384422760844546922833767753698322743963701465027663826000970032348513872854203602937265552303741102152609626600237022172164758159440096016231643142166373101390940166911204845956850725393936578190186646491417826345143817718910218495210973854081512870011618584827100076268981469165415914733818659980226787430740569112317678004585858130059470277740522020557748402111589444937047382520807711768466187896421842254306130804969722525919448648993087973275660661588096827381617873472179079510768202628612334387515181071979010266214003481440362757952319493260631827730190386213850259599577358037769906199182225717098557427825128911616365824493032053569623477197622417016708736835717192905518949282503702864291416255493027536215032813256722281738219771500229349553552435684990306335814198734792258912406514815761316921156167314409824292883752980874318287547240463589640589542247944208184997386815634034231255176658674777859414186027436386723389335955948847694361084987605104265243525363190826286436551829793478501826283195606039545372189646270895393034221488782846518099923131580808942037308750957231331025879329224733846857277238492781700506322300409643908925366420035276738328660386041032107200841406769351074544927935972401010479092236180994119740012079693642359320765938813376713485878056648143816580408309673542414024982106823586291603723670888779410552368160910267602133705803336151388603999711381850014832978615730405587703786552661131871216623109586453132235804347612415551028715483378205811534215410119254414181009634488204737794897378483848785755247471642449430034093526023803968696084521822586095761786548563539009707786486614252707836710458580954655289094157047412825818533099248310689417220748242572550098999009152640246848547896135336148190111376642785512483826980483648108481851644580930478709667984294492929349296339151064119254425776291617668215575881814785440594320571984510783634428436280813108331634258225385129672027556574458140832896717318732400313538252725700731161715233606890074362207648993842135339553074066575403979087029522009634935841489513926059228462400428852300044740494586532673176184850932147206686533314536148471273490359938731828799858961795135593655303746239935372006457179373475552002594019598725449572356931380482686603318636939172774924463266376543101387696056785414440455897528638386152105098608031272404758655372572479331888011527986282571588726091564381544811318671360193623929487181994856441071018057038018704391352048552057262454855819509746826997548532705779188274918122337813553970815904559429930367700835947741976093583130227988499136124874345075909336252189873874258440013879717209484897004529455924571548347885416020756270016932824260535742009510224122410464477983034435491434362814371937039639997901693914714555388410448221278078359473635793336582803833928623432610731778438457901879810341529402659239286386656105662326460012990323716355193684610200203743007404458601500666083495295062470423513942337658185095890734421756361015008870941442307781468271506718504690468677651126142076048476848028552211043896599121265445383602934111511379668007026637621300300182354776659273767765343284356503598113077291918664534639726457168366005962308408080362923208845305873121155130157862133808889830462914624488663176520484684480006227403241110271167871837097421004639802687481273648936007543434751678223340343462195170726208254077259577640568846794419934274973047056656117023238345568853914475301878673115593399753658129243279562826480129289511896491479152297251458356022196376435284788021698487500549375970323719722264229074545744422682028357690720903659659169459057764853386549248244528064963915949789841661978264144504180306205385839398526077670311225339359043070763888203217496188974352114781391314273306665244723823351420046842356736079963274988815524061233514746983995957568933187209154820104862556311278074205231558762835076257873992631790615571544707590935011735977356034962314221144051139556968756253282761742246562390274770775002091214850572372976753864113848044697364772035655698848105185373703398048284903998094494996220954711089459086909638489154240903871914383921861957816848104520321135865787330680390071773692288956221520511308624287184887994663663232940758654083419109264264445602494541741508580669293560865379469471963825601496616842590294268222225744871474674155677433340408347564814534240725916297286358944290013836233081145440304903818829321961328386032375341630380466409392051199500426432608236205418033337771902872188122811105794222731573585247283778662974163269842739388888890894789317258983872740552453401731758127726905440873269112650959876047949143875565484410828744754206460395336219715430654247076003647886256569094551779906450289996245432269995493482086156474217999024108307875306030938205516262630210652735529562417193510327444248262215550126620762755399191152991552231818893526256031146209656972800243206591271972540209888576096362423674915198464239790759996645675416193855096333219475105970815336759739519518822277906449076261725500292725216557720568827055000996125020803612380579081239507459416835379196879592410846547027730063109432277212035549116862394507188152274310490710865059836908696904697859324437864013144263019919951908848598480169211481288315582278007632633020266278666784876007252151269865553949459902971560275175781860064142854103288199137233802010644114093750699871748973444870048108819625150442623453339020696326848369043791485719352795788671235215537904153549618510041944225774704883163839663012649885139095196650203924420053415790223536333767871151842051939992607012576999852637643918617654434429732869620702112761020969906901312472271121860601216627217988368512850965880636146694798692263673291306734362343780148015533515727081444274822059337277563812475107183108909539697090440568267961219143983806361408241714555341294781100675332390656750510802639932886033142437664365047376517726862659668392585554272623360501665792593273063187049564295591020450706046403959350041894578518195674016667985618602936735194131435727697625581303395256609759826992855664258977832007675573610476887415526528620721051353095556533988976517314742934556981460264318902551312326924741673812607273482529888197003699807944243774211030421856775250279557481621220252722980451538942447309299409893775984295531366672812351753113414490539441308921368566053063424850782385883320147913893225891030252167873674529505618045738524229969338370464392422345694472866170832038873661197954324615836839401350755828057260755692833972174420439343541213250406521376135656914042531220496018041374993586387126660671499065511896126439250722059102955820741977508349202230916678118775357542143643059631988354718156449341599638178624599353594974998689576221770103659771311705824770209395803693914847991178057889044211662991762123160152890432722595753699393320151154941407947185922940708050676071359003607293339726160433076947865149890709397491062552777061240703255964754459062665625307834093334203807151514812523361348553771509215430760728378258084691743549190327727310008422742431173268718783474307871183846969899967407997126052613023614403865859924678718556070374324144794008913946392635480869544465215107159066377093904399727278653409887642183378874066023448862292683777904448652578660319860458839594530247491772694889321709028465760072928610162657460997893794781722722963689740639635834643877437153734584244778927790678191330610399966802741782810208955842166487047794206297166552711939765067034591766951470878089916104172383823661127161713515812730429907436103186782525791597483401781679358747102858281027409583291456011752128539513304525273446851860390863658452948268707103576060612829537999435134717475159533666790441691948212423763500359257693682574365219905699522190171625223479805799479970926478826102619994684910605953432437829965855405353426518907996080259533077935785298569941342842413490474435141893578707415726978631400095128975595610873043870197377425213501269863667535773557441887340855760202220240973472651684288999305427085525237174998628354208983694129807927025538914259132781106047320271452642509647012508251284065541511361107383030438050488410638450688101173475274060067671227775695408697360265916839094900548669077902812004555280673236619301149068217025455339293288364060465815013230290107237707056701635984568755001932639199539056386203639809356767172624893698543853807253238866347386354715089644083496348947540465838303515161758371568341450781776474967152354032339802959652391869535894466195711663789991801052210120002704717627073996622409978368850857638660132583021511169558295462652559659003001862429938258434843721155405786466798818505308675081954308421000672446223568101673265936483861133568837580011073538495196839606209292048935087799585571703634296913049969655242095748160515283528232484020151975281465656387311076370235564910810229209004481720468242704099591753143668831068520878558388015583521334711996608780727119964459717382332000597016576814464990102285658448418147833955898103468863511522557207503847648075555253686208750648620286826729483713736371529055844289496826683520455745098657001348161093748895850741040321046549975946746710305289327605821051247030952320046464842107367329121246657484923615513564439748822329113943899079657204094557247337719489677969130892075905031587314690770764425246789989258829962784279728466220451929643985710858154878190185508638398844783978792543187998636833159616628565005027619815135691038542546152365935361031993375245120488064972074772960977122240941277145760785949757283001123635282282455012307860747552084801177744443628607039120851386594297960177664937755301557512220126805645121259782383875125822138219119440161044046126495679327188368462891163005228790355854531734116281099250304605864481123221440657663155313299175049002629740013135186629399718463107884249006458747678129327545802197994977171179601181249614103951663384077678289566674914926601458152360404566617010419150386816379476883731424015141517542940651086605897693157496750952466958203438084694281810768220229353758493764027935418939076484179038726639941965034805634187405088936892956062082893421434121597513781265603696797692511505986753102690536316062892229766508238306734809591441023238783017883198241289055787378438419801819330675730642674208913733457345879058398792724960608323112093356101917866762382631538837334253460541362636890833747473709107333334785401927279947718034963832308485013190498117126687719848675849979512503450992543579960178241245166483943164660931693876172631794762502476375833510651913439228598286931735215284052154121366200590554764661542227591822427915230599802524334196509278698996291762862133270298448252345670040637402059333048220494190464888999206623208155046427918210711676304125246094160727799106629079640001138212770705278859041768216650655339791172429626665324257858337539823938253893261751540287095562560867374165113423657964968594421861538877063666807920530141641085303701033052224995237763704742271137139637984849488446682911703916488842707182315036037306017804520670715761243708286078714212749610707869622475774569301582941598516158545431700782232696479867950750753311973203377762139021356291340555815777103812307769117206678400316863591926105189045677680960719952214492104996590877630578533473963688678454711890268492269506214790983909568185470208549946379615463915052175047974788505312452031365147502641323849271748705632337047413281412060722538725596995384174265276416932298614802008064551252127151211192127495272106604694227671558207825887180126897784851796741176372278402415377636619106090923471816755871424382784141336097616705062936997959735929537821730786411066227854819965241834265464481729024523627982795198395016913426135942591472372037771184252934993264265507277907780113851050036092565906027881077268280935385153777167333199526456333054812759578552113283931591583167772786744032059017065086667544879759298854339004934860024213641978992591300430024718040822488329459096232418344132299600395137089722085480327787036272018737153199994632679212260097715575021767402968124536701342639182594473823071966231253029585450345624533191009596134088559857044219114225296025308712584131241996777956875744983717032675601369210836006433214262868908885818290420814804387988726544269973919378452124729804874144856872602885075655711638962655468001762213181344541922126259279307071928345111731863416900296878967765947033076807330566333773432301739881969225121413103663055791050811905664168340659361580622824655246102936777575100902326674506463713592801562474563967566047176395207904836135505022653478120777433191231819231580005085529387569968998646107724351859464703484014978797997025896934364942272916443367952672533970785120768251177520481063908343508476005072533910687160073270806917653338119664061730567471941321518139950492317561757015421525907054332543656769882873868121197187834681524815086875152786570545520649789414054514910218707665636381251633705180438723609543215199350887927088501982086996470036893011757809467695609079358730319805204641763196503496001110195407627776593343045401197772582562931285995961091609073073446180365104662236273355098147597382903021931739521369945767500362507688911846036150958604483110516091139262581876042232905088286059635273629448781385156140017839575301806085824342679976814941511371650677490153462503765656909857209495903660008920383509643601923605181674179533997280954455691061179885127642295332804669150215273457958104270342974357450732042304973403028836289072038655498649694272358859286093685757791944198447480998310264969255674305114014731781114192690068747458154794185096419098014785787174719041382982276321142788852561429774724720309496274834263641352908711173319181412302482065864756245802451795517733199891569800459666985204494757117391650687652444095649221113636490176987961957903375916548462527489145586526106925354105182884357553097612003238429442153648106290549320813712841845680922789499628696869937087206590417814447480717096143812086609002876368130296571625657454437052291597435879271981689510130362790823245314722000799915924259490350975083435269465584539053409728990205164735228512588970271249942687984649785707015089552860252043556865968506392455327242599582285730359287213036327503010314509265603087882037746973292874857878296267799514606252791653170203484358765481592714921199501225942040299839931420470198739032758049850677868932728827426493780707355330417151082469283324951426762301093279706248089603181524857535651945222684564088443717472333473412600690581047085022170366450622645376708563836874403737607935824284322969317654149131020573211208057821509321793947439254714709833019970980668292582902515946761139704698217251757377322350850836862401038668646866419425225849231130822336431824766214057630636172652560889109204165414022895781571538303898575874984001054641625720893518616704870729954190854678647773912191173038923236920794867339987919439437362707759086730770512887729475675220081100496176587420540147641306868422775363498879365567383570030346268939017803637865243060779260130091003133887518353906546098659888373274756070794712858238662906969718520737919070416118572212112989061006507559188011992772669499683203280391603040600771498378811701163625468606542554222644351982772086188452943158670456150190844693466890892973822866498554099872142029974225456869309952924727269688332119185699922369740599317212157247396444382374341387501290165575996135229985484900141921545254314845535608283964348377417805343070175796446846146885077858769444803478606261817829140620582788512194116140413538373370605634595779649334536687641011103494656993773782276152924512122555138014904633519976504959820272859950079255280575936031099690143018096318317871480053120701668321872517066766448894222165784986291377083436198801208871276857426283682611871907618177654684846926470986891269559107074266677942469051654175280781118756249288113388388955969839310582085664166150519863133175815824981224667539636739598510937336771624477013037856681742883533972302915451078021690715276832444151401251466497779316837261938894080481300184736298840653814567016757940904065640326732633806563577489746596663322338675792852846381591808750415089703274031861445228233091195230414252229913517732637850983542107219356673275249231645914745036816556106603994768828238644685112338272939026608281391878398984511555614661741576934595771676487544807182222784055135622001314957875193287636161536688959380178938685546742495977098073426855174516656788483990386176859171209499599929199266950510191836312419470772584665435142129377941264028895064283258279488464365622385736005326849091060394512672951705474631894992053679847907748413586304147508387622776236136746856693372872391852103411123227501815343500093757774398522316172932281502213812805516602284165947691069991532096529308680772305839682361494273987751656536001471524321451846361089769455494527225397261386686900069769186643531139355665601432958915991480647904655263527141540338371165469587101635745711086792087271194799108960473810345146073498852844879304853004066212796029160392634126486179463824109094097230922950488646584247559284325091084271772315166398496465803013578726437716135580724265414562865943682800561864413077706765777992747879314619021952795641902406464347679889583840939057164780924736966258780717860868253002919892149181614975323281486531438968320153997178885968886604054409315260442557422418426561816487376896840851324554205688731834365786778688842085134689401562382462057886271968041081460425937446247188645447765825962304853724377435051907697980304587451321568678152026381023686785591606901202455750660523191024030762934436953878556759473617669551464027541233491815991544469377557990338214883576999454516994616667964765733781930888404525372779012542398998308407007733813883474933530634179814868714751530690951150706578192485971884731401819982025513662124874007627955816179148103249100077396038249827593858482120415440253989083355898184776405909644395178545725761695563130564490380019540189845741895595581366868464997790138982748724400663779828135380874551127526207020235138234410403885221493367652561780508578643156739971771014526226911712477714238424275629607996403487170475020764464571237193805787291339575898540995887849097023297143243377976804570301685400689563552719990801238617811249518873524266610296258364037190934103215280315005963902724477607143600413657007102833637927588181317818625106800687794807089275053563961763215775669022298762472363709902028021518545988926606635035896770000115088660821908732454166517314661047486582955102232690842027310174555198783899445094015579143710785517137492957165640261615463142118044434397012351008421552417641239329682743281493834381836159463198766489114858430135963879502646055782113125142681338712738633621374939197078785261571924114923078209069400416341129530188134459052870181482206335867601202390549057027032955659014021919700860910369924271358086964103100396011261702002908138080432351471727038848677017620962660312368784376228057620626428306074309765961116929003878640619238155545609615828808804631113807835196750001984042195289426581285818742216586831505556867862459497008712669142929968354441292952761581172672886296990809103262848967313620966463903669427517202936302979468023552653184655158798138916143632924538369704113097329173354842443106888374542828132034825156033638251519223112676698872287664248663738562775738476725880104558662103506969088108423085610873062607030079313835368972125359241538673025794184782819722975527987904082032599193551786620010804293721641976884414672001793080390384143212101745920907731498258005257982310155485121115738578649058854781796371951720683733605591295394602266761288366246641574494316652531389100485254396545178468424268512222780731269795573738168392747012224209362290858497407587831034179923415166418269808372393489841025147296883203639769674922400711238268823056664536603942860005022945256531029110784559630312728717739865119178793486192679714754193892299947438095119804490516466325455338876052302134563008892393901741585582012518983812808298373371021720198496903710628972421932923340623645847242162471577178996307975643001890888734757996667503334150606338557781805370876405484137382867907349480108298376186643731125916362755071757226076819220768890266342435893006296700091072518290057276061582151779185352773917391250452052017811394241222429968275080622344220400333238431770473932673895985181789734497927770392612716703868180333626748513982618691744773805138900959122682644813907011829850076317777172930735311075260648998853403233962478915827420762141115028429791217954366896015934365913855832452184596188840376426518445966163689981747164845725854254452528896114011008542636021191936197110328055947508275769439491521487787526901368027089268203668384427716659845638625110943731791876541971476474811924659938839048006837626348303439598949919161536294818225929157297621246490118769408097456608524479850531170089901833232271411087606132911801071775696597477070683087242587036278772094791927109696699701200924586582686151087106550821043175313280851864739794339373312209618731645949587961789008024056122253756515564970485165653554481581309476365890814078289264704542337122417671711610035751376951226752163651726178576213395049814037969191142444350774110104136758683939292777498856948681300791469939466208584583925212322062888902412299184471314005313857044101694791162253518072994562189325393101521681437918563606410643275952248573664646646973387746723614935553521245170211082923099832839216682582190325252431815667209301013701103170626299110191984632571583810484636743026118343804092602795232229585554929819159224614639621619098211321091095224568351361348032614887593351700602984693571368369623358989520550003115958539172178237305795295723557265858240144365584318744021617236269434935141144722239040749137579196529219646527900766383030659208646167902027749850148467867942367640586279233846633568247292105492265172287662400280432402847111660866651317163980077131483445291418997735056382716089295940175076324919556393474840033803218655496422704644379237036093109347936509217863868974704072262871625050267003021927404652233500308321718498174387854610383335356594147552283159398237670062622034320753729006012961975068511829939089936780043291276766638403658290873864606125942349746822338694241549424007005546803930147685219056331895958277164984187419640434039600885435481287994482666988163847797534862977099893879596390449517183823903460506243098231724334271446600525811665410714800483365337411204701710661545708758324688023910976274906386590666278726554317736030541006188996931892501730077199653099638696038878635626925581081017019407158971756961789922527986175895213603444153418683208788830632308940072301138702604347079421552634477403287808065495769938913538270515229084784927529646669625910234796777826334178702178138178878967143199966344527617258604755813828691396729717840828194644974073250863581150751527316231519231013309965060113915418366942993614520824328312844210557518201538398274303395836384513211295203612288014679760890991787988843503256876953438454206675653562524520799348864918058148626435968107162612189259863744869297729416060787726172754561779753060897206753571424060415658223189814166350067074543514167979574687933513162078249812273919358615505662067232556532985921041127257036695463310455315422542397443534917082300595490359215812644247859127136704284202910319027825986985343654801818829986986395493099717486945049327275645546133805740235054632393334156264525211926426393119481732628820144858365546007076046987529986124002775579339580532938914422244871422649116146442594248508391708510478908512096119090972079605751632642555717459244184416123272924884161170187548331669699403884019227152439383146515187567173733774083487000436771969968500860652102907789178916924529884385209719727476381796601555421950239034091296504648783737563536531005723623758974016604193450726133787388998736512050627343151292109406484159321383569985491878479356870415794809313648947841627806617905588361937641084483248295155785909971999190808435933485368250665360482101976526552942593926316620103826394377046592749851551336553956475068782458259409351508579746575961552310458088630901651343546509356780855739907387591586573951552540167983237610729163680582693407602649331387292798361043864172151277439715872711569470036591733881653176538720477025061605878870066586053463503645802602746211246398794299312721701601986861149810133225922841837247575289472433524890983570373220972416391907773466010667225053295533143220825860671959548941527733798848504574605301233835667686368371202617891992213304066536499060694235343942133269833139510842456397722520997291240362826377348893313530919940266132991495973684853291477257754443155742141596207938165876203676311463608653457779460579122508154490815314693005507978755145882120011423991311202558701058472844936742490274574582802082209030785218100129351943100989872340917068125325029058229312339052361546557537415683736006902217889207139055820651231758352461931371697679872639507687277738212138813844198986506920181636633124631744406244758438519706939383171961827417207865274285398009120612594416506372542415512090343971286116428593863193664193290330186430490550889352375558375472044968343285921275976602889842971458864178543176532399829191803850813470210171074694054682412881576175565883328236406928515256482570236105224639425786585672767686109617067323604527621281097093208014298646174168659654618656516290480878770361854631813749261050040764644550115395693597008401577418162012439497657288161741733616063782633827774833403033369941579241142320649706821444741606225066401076931731602152808857032361488749589246312991003625681000109584706840870555631653751348753652146704259944843246622132178784838919135233470973611954540409144691185572534271057125002565850048386108549927260635691134783375517226466851663613550200258207931534387841093775946684306864522902092539527979668721181298927018045003074225273614811280518073123553570342083596451171676950774360973963887745028273824326447023259536845135443186820646163307652038565334145011601496205911536192799908665412574046032926637783293564643607131491368888723430776298046002689730286916751153560966629013428444732394148631537098627783569054721825166573188984487515180569750601650718712871758161502861163852777843812330735559881962109460526570285996083910833950119320400331992410947636902457220468007525346666110163965440148997666656458896077092812386413043229754718717308204637302502482626415829512438984911640467522453091951052889190739883780343775722120629604498582308978262735571346426962440240174830829000841922135753056855134649504091716921399687039429243978154229862145056179312582526120394644076563632094843551185263465448065486877620325739378477263376695663342335311080563853075926158666866666193460559538597452038561174577836917206328780248780628037649851754210265695288004864964332335624032368428882848786155877147600800672730569040914517932890396718319473023325751591919363126621927570884155876083443112660318668773927641325628111379481851383144728306097247093779537690341946404376125659091049453286685355785553058751682704531606532836973861098804167456722818010266457119705976986830164316258131504068996185435347523690173988358044753134515612436802311187995640466020496599216496458451385976091142536165711822193862967211892285571423495119397995602153220253513295944822831212646195409985865140478546994730180919108276253908837448932574425655653605908816213653149562352553254201836466845846363747123805755540731207388801117791597169725275836890382579893157934381674720366296799884521572535911707537720923376916063114612765852898465858044930311864928170134991533986480207705371745680012944385770795354568813236491419019667238029343226235430812268381608664324596540755295650791300282810761107977834559930674988830270020840340763000496812113912444279713885705177247672433922362315586760874323059380828707097876860278989785430770770802233444093606063579521262000879726915901759828638554329865366809617417454499917455369733341753344282892305442459856894158661581942566192816460926247446484120686148467244104776967052390275041598780284219047504681949445548498047328632087169135095325403119351222879050013738240683349805312005991676536378799484723461891057598008049905224126053871456580293872629931431284114321313336864443704283518966507715803737553826944407197696922507029491242590886859666640656460647360584383988815523529381372696364245016997488408731443905583356396917277844185034424175787233821789744620644822625290850112869125015137420228638476508748937373177875114264957624820024207638886944030245757874213815730753640569502800155237281936002182949128757630912393647780169762850005427223180108430827080954468072188069695649439612297107935993013513722685261106098715422837038668757002214626360583626317892098746409664315458536896242152974011090074476974657301070636031600474877610685788085346812561743788462526030710489429326913803232589571534381791194975470926635740290988826243981464012881074045321881763027907188020682145637615049972627507761203912402279566553347774076921322035148442684827473040604057900580937499194030037936032460779298463390270507100763320873620841919825727927375635752164153189675740187002262712530330394851975780667330197918365516353346129841656452608692012631667567240736716058524003458203509715714227902489432433267577347065858320757617339557306269789995459170982206901190137086757933778103189343706872926483930864494212704524031047843087244954518614222203872370081100413659359650217979998791920330876942529545487216560434723100399963992466976310203424836171244520358234768079814512330184389032236818932379677339214388157922490566756115917306142979655458201356232901801946696197982211393442715386483264272271332693062512683957877219727083816897185490429196581663498955216564832568815277026881488077865374672206289229756026045688125606105437783545602135403083469156088159997155096893913269859878973000863684834365598545994973008621730700869529149883273770292116156695339689260771716137448749906822836348502839662067452155388955287612294385846132161681370767756266906152406396584467597580302912862963556086901519904119119250301325348449552056766738305737603179607494877901946265427892314327479804502756163073827525398509606461687292264325854585966334627060136057422859982830838138401771370253172338972049871169142419082524308678136878878174103092652551896671322881176955389467273054424102048476270278594664559892287206307110205521983750031888207197149108319679819455183439487316777532713023202473972496516845465697017274062451057129403670296957594827128761523252312155951261640761367529125462197901153174179664622520321633833680142854065685676427683225153284375594735906575880080591806346504182242134967914421158819094779956291543369024296874751739543564722913514484861519651791421849650429170626781291879017360610244355213175429010068412862060900564424077584493274903134736809947200166975191691154430682792698011341967765136011131112220428742400697704942776184520263848753838604238144935445235805879184313141150155011986574399954376896023408242013530614164478982822916369193025837379428640523555979175726985220560495906869278862841190488815130105794172435882292956974881821307481549662008744409061156785722137395483452637353767952531991696222923830219771588771842784359080203731943855226177154866199751254329583388417608991675221424977872494376644124746395533519555242039009597199457056885349083662410544712347823737622989588538559376628935366768971514633713771213449387998257064085447018806997141620469501711452275913642470153775734250941725641449033573267257078094218820864194811190161986994512452857055443845262413737093519630508647729797095255274386327906492044611789787023828629941977201469205122929709637184618086256238297150520409700977918023339188085651575415374743160271151383357338385692437319846750487045356890553695327561814814277034895405715982171279727870024405026650493530116093847908826256812982856124541931446059047445855141283453925052649197924866926651960607000623408926212354203843487976321018646334358301166499749170321220628564873352074676724226521106743873012023244451963314168220100430358112368604687406068619993643309341219470599958217063030907842043565602763960618067192200314374770610232097933430043128574828515367216310384431711464620480758830005268028221132860601524130626434005817726914611848733584455013689490558745263556577209003093318368142945324705133007114028043475914698522078664460730847177527594864636111533043059959432297091198164949512000003763831452541923270907351303886283649490242557078313365660955805418409003739116112400450783862039654270458017755287728533562038208546847799744169483247481872795717458290859732652647944007054209132552442340100323984878986863516491405053131375196194257582414940665578297696492437321508690578111714399188570827041172664613923457695893630478124356864327145923815098268015237173527846626360834619492988979990558406685522063085640110036983633188336231091452357852168187200432062345907050633278515950124332157759804164349438147999696008489924493086244387262209841421188430937199258417379656345929983285660337693078484811909538147466891864379741181214213924342745415529827259198102083840032802967235562401690168381646365578332033131170123628107560940456961010426362700289035988019549652032504782590563523241825366830884364687098860718438367702074945071691431200731568993966131953004717546126139707364466413898890763251707585501888009425064317390912282795773507652916568634099279096761904373548887569191229111757763246999163235488471249450597801998915345753647856751667697829944401100824397892368909258638560250659899264795314954077556367791980903921254078161656939493281164413634496393734747913722626773101873647061030969379916590004421459906718960859707973615223320847169359456911422471311677622213238763955830180703602772238957557675282679597361844387322078530723303308510424414312659725491490704317293476362970170126266181089000240749407145074999987580926841318205437437118639547036374160361845366474389414172621562552923609528652310123941129341265060697280618486490440498176298747070217083008689723693837243809140320020394828854576193153990086597966267335952404008983017947591208195243139913904505141754782291054291127398045516186769242440506690438305072808742835341195597927566434218842485610766486712485629746034497178923198362834809319638194683794153954464470488627224408541144306280161428168311013291986071695426936162278083514759440952402270676338066434754191491115368144258818607391700706825057173267079275411904339388162204792609003370334649420765056516164053159616086205831521644407312130801080617854121681150834240035263870932602433897740188260080958115204392264540732340204975635163793467751475117813250477280390591982779476882891178982102294233513504934884613184418296754005281293926204934104971268939242394645645446543180046964014323673852507243077825627106331010526966075211419497674577339599900947403254826761144831492829013518599068464553275931014364340743849424569015860865702463873307734835695412581984742518934473539933953063594119182875797207969651534227958135140284356082546500438641920038471934583219540270475789610111745053097577219482221512935155032889115000656567322407153830652309215248983385189696215891248972391541550952371200242816665643861603896912943348273705325456494612172625201514810405040471494528033741150205269532433893647052253448576056951948287987205900078061446923053625158498185546248223177242063640365110269572868101689978476546867822151066465550587623643050090949975925029011908479309432872613885327747896317079797073331020450107347939551083524417609058678284285979725576210641659024365543427280600424380753673459973453796942602808787118139760342015608467747931337992215597279247796062295591902405191775778977016720775705804515887660874698396022500151161426524821575456657748759014857829051360125441559809369391401423624371796423217164164863368459561755473571384440050302345384293412459274912980173233668511354237741298526544084100667733658440823330015522714371719675710731258512278290718650722820755916669255913880954892196792338532834095714273146878181775019508235512382900495377506742854614060866100946656107940499464229636702614515528472740435914186052307896449774621827477678975521045367838973425090273115865300369205705567412995205776423465874383522616861134463455124503830070154367570460070207733377332196326512611997755530081239078647543702257983194932567267860999837591020170670873680279505050305249484397174302648260146111607477701325235559539937645365430386330190932760450904810091955316822267906591872062804356407710503958769250897090595346100130421603859968481997640820375878211877796824141868150549502338546233451211925796165528273540273047936460760318570761283709781400435825971509910279304365251291570430796389591982311806531788045350583186286010194568531476957625210738346768236668375817916144731468420378638171945680689731194528874354007508661076627201045388005063598447746647480542671586780409513185462176433445336926929955457997427232795258197132620177318780836749820293479340238515766929878446408340715090082049213022011555180789592146015138365456058050442172316146453932001694364216179800282392136734330880341547667133303123678549505138979462121876902799667074837284853457302028891946057730120495051802608896626117577665469214704449927564273620233337393099424223199619281900072511443890791379524416238011169915992925727672291940728686201203673614665276011803834857581945680104098857674961738709672227367479204664313692402744171140419200949638882238644672066706684977666130488348694583663627010824881962364631926859840832715838978937702388943790911996108980167987072880552738641076831220445576702449948018926580950365322027340300463935782351519045510183959040096549853962541197941068586456367868739748706544352297035438543977163882391620003017888056474512680590472938396760631560407427614748163610317420798359923248110992342112685584306019548891487347997817089684226956625227941837476886020558912137691155151840919479643199069367688060283461783762689489858734067888921188779252576768985603204222703487999946554219940743575308402235264554373833900573957343557813618320004223005072408007097098808160766741075935096255598046537011962211764543625297220994920714745482405828502982069901968242345304167213699171068304492020161277085901181709119445007451373157429507733476939017285188165942201289533579396995859917105683004798374939767952883979726979206296933827924009048228048674113892397111631556796201914066571968013532104531144667987911878996247915692807855480508316600725872714798097388429662886179488394932890684021287471983881360763839197790058857711517010758231757648126869585151457583061465321578707703166605953349430602654260589885501258246643287379293351110268113514847903945955427956087632543126229503964191753166874063640389437168845778666437023673928702388157838171198376095157349936871257963261970809655292636376454873626282426596792541110340251216189523238661912975181507290502784421352490074415272999128983927316233202505471184232073404880334340159025836885241809619134852413203701680405193505334494559363439536352360485544160568312893477180633469967886487367810280652358437807940941980110723442339769245530019725674613308936438755583326542473157332435686671669808355053870471433676189153074560527644015449093844236643910277695860341802344498121285639787178883404485580391148447111654327434446126904564262483005148755271841671709126835906409642580216576760571534421352036997939470899585195980240991096426967515273632728179902061022553036868506989798950516776264253696483594540634504999770910900312930693803320890814083142751127018375985507279604208563331306082399567082529272998502386446619113503077276766533324609348522751804491561052461746567530959680655261127807957710963520006778686002137723142561149420774895345636894626507438774748464287091133858441604269672850916848495038133966829038283494094972764498373950017535070403425955795811520289830732563777896498163008212882315448953696807855096890726029156943988954852294627475398861999444627851789480524936481385921601904134264809638901524567615168360271872834604449496455602382198573669637896344157359890022093744212609199780761387545985139762291893503528920609002349393911957600439223212583297373418842802498241281423178788453182972466726638876327831773734509944665856331199986887001752000685626357688634447536316824613928478872182109164827453825331510562764023694978894828836188024392245243874006851865166429855291762899925956183000870355297549052013555892254841720593228917129026025853356151867243519760881836477572393450571304534203231349948503041936787865936252884595068856114156169142198207234630500252206676773334520783462612172602953821164362140322989452072930287456088717292231666718870428988146311478956219934728771241590798013383401964128342771547088432491181783371016760372903727123540547097895256449274321807877804821720222388120565972519933320297217227901151343675487814530973376961307427737984398825697692566283564103476209834628996634592475727622107827374538340893825072293675056167764693366224017418593175811878181437011076162131713569396194797832065911806228086790492285814627088316936114741062994869721152035373698774992609066030562191680851884996352906456203580402960730686888923080198111015713867135892994442810836976885679697506304946564582112040893436506777096602573291099672683852329954867707750648902548497255710802475054083139866105410718861534926273150848017976161776050400670991902182235473620514930918728795580505338147604055876317171834092106766610053844094497946404562564184957110540329585136175094231581311862943420828035324266734956246314803949277537557606060917250275372892457324866678797615569308775691764820548829174067102232570076490565790023087898489822137739317228694879575693266986027375966604978677711517123554639772930458465203377057045431287774546289166532089792363513887471470613919434116019239171745124048370712791729644833520702527412082325061045575329728531694318030068736598224254273114519260652981334456815681848551576493439707093946221010609113621251327195198250302780323568318642384905775054663055253836802357614352588700911584275522677395130420097198777523499680369914803058867321507059382316256871397318261557532815246375485508623528481746770120897957526056375970460972651884955154362281818745194885917878953216083926062496338643870409963463326079909644677099512260200614711228470533430896131156020567688923953076878978018020016167235267888653542750390357250351403463546034966291557062275535558090815183257252322130689662650279287239593070344248933940582693584744044887539898047498119659875934782458161490540990349266436354904859104066813724696005429334217483702681243876199120465511730830555691206967510437178038035798706969595292025042185674688577565208677371229420729593031465122573664771816521752073530441626252331044868259051845855382692044063084371039334806786982328501069944589862092544362106242890868617965449369995498680117375970258507824972246640218933824771221933885015682470480646002724146149359345830393107532831188611986985078380427006352649496685863978104366451166845862964486389249496165949016289153602988142777705246544586527656016166631504766191479661427736151992830848895625959490445020459276581792685470085736127200793345752246094270896687026902768706305050703539718532019558946909196089929661244231521937501684808310809395829901517026973491870822421101431534964034695051570459235620688418746286460914816871555317485441591986619768925465729619204686693143225201399242990564473624340787274553000929628350722379823794849785035339563094267757206029459182497052733586385339125177011032272371516881087643530328204617839052270046453370289950089261691052955464562230755877018560046859154901405149053711174903494061064422205833574676227206351932320014314957696226078827838312393570629936687494547521488442755415014623502651152647347423771015277607643609655361343334794898965740446465412853787786481126216982128188091416523254375245699703089924462803415688393609079598632250629805167079005235265639184216371536942438828589914811620852510430573109216500079107993267543011222748181901293099955002425902983733596790381763332877364575273216941373095670271027956020495903266635742768966055392828897393050885478600884507565319793596061670179222023731047511911713750316827740736576699466129024953873021341017608458363118136000650955081926206301274071317574792446301054654218249140779791199820206791933020736161575852494271094032693557597321399005902947018828041416327450715342003904311722722304907851137986475890276742142637510871687446413730807426095918460191164839560539123957477714722055733855137243168569611737008131563712811658068786623986761589084120596657656129998090272022111846861592984250792054240642792292902119206039963550359710366241590749338606232135646799004275267214763641012425797304332978763916664064176133475891264442972650537446601576555496025855868966557216670959917541436835850150226424811979242932123560139744289640037697661546406392875115298169257046653032828418240113085034363555771223628859519280715099517796878819140908623288398010830699378543495688884631784582822960843052418761150568941759236508637000183203341714670782529395305105646306388976109322083528017194561042457235740415925755391117094803121904092041865456724372620467288791279037629575146613699181232562612062853659141852055401656897225611387431801322938227760356859716813371002562675312493207902649830365069110278418633088074097524539253894697119752489189147528895843762176693197643664937444390937540097204572819251654648901181616245523585349425954472416490633961655392487769046233747201645548520245817461844137609614094423503576953590903127793374643194552483643357291993354492793663545842639823751883930912149831448963146042240076604666990473493815853354603357749457144867424977150488160555095763646315718602181092354457591729979124768403519718647720371840154969601210210427400678710230819762659804382744235254966399326107994475821312404490813573673091199333412015745708502961457659953735055974449441516250995009296204402795562999751077797865307139921681886067900438756770015310554232423431632695800722449259756589773844643728022653116537959662486375979344736957456418174385871798557832211552729375691307888001917506888236576852703561911454476658068811058177341060761819066180098275029107619998053162576095074820679939235690776459614238275682569419886806084264190960369538988297431660460622155498980628279274592706051886911940423145776927755021751650894489176604623073485660511867619808653211485802222562280614192246666390936942241906503917137309933554909526168341615513412520626324254424224627268976502029129086715846064462655656920019458640034525534063936826789609354184046813934754231886651018566510995843770392194348721687689346777271986467899299641531765868059591016438190696117446983039944836476527582257484966475823613135881464487578079644192537165303758751007081546497355201969066683613007619004789003031861877155809522421893704797815972737603522003504784914339750692602541199225937941078044883350731913146293989243631300571862022889746007875646129908010746314945414643797217657132459731787103205594786082854800253628027163461307440524270178047207820935202643262687772840146391865113004157171637726230922965534018392056527985820142715675574504122286327688076280392329123265055177375236645333618257411357065680880313616672224536114881070675220513328765051789212230734430845106875767948463604741258493387945218708261661730969106107744676204145105114605360154484628329513359370272272674253492498930057610837699496649544630125976129290416580462832264443450896558880699829178450958777009218665937541981755629025509161595651587369063008728520225540293463070117533627050120118827158624155795532417277481966725477048642837088911014696532476784261727999540819918871604492247037430970437176673242548580156306702970727319592762812979176408024952700904589648855006384997586521843921785341720835530687815951549475576271630552595611132097839857034379885960303490468756910409730683140726507325884961901801439184863265654502493418666547155073613619279057618005448352549100672839456384526812423455088529385317724637363679987111253036442351592615775033245649211282999641880843726209528763531506803787504018135683205694924513329040523488318573723922965291502815823673728708856608580030181340580985300975527815600390526547446246285067673954775269226064124251231960243610434061949618652561510340143545921352508706551108481774708810570155850551291160074765132849536835700125709020244903457724390487168083106116657323635090897515472724974287121148316614863646831306779911945397381372382209741250176506181748484832578900530767083855014467881176106244925144968659315142660754122349452933165820756076728645524287868068853393124846786709707251678501443952310117603455703814276434832844723211617877063275132405967095088875130272736660389921067273736007693463810793835438409369289195533904260017427480933113634627596263624640885453288294193933268531488069765073717161428588245342349566695110176615314856949170560208201026351371371725693864910936539276593916185821093264983104368239679416593981266298591382613575848748609531756275175919694151671975540166672961025674730348341357553540099761995937685711737121480513961726151446263811705323735078638620823945581642653169211971841843603417743754739855050016626974265005646500469671530223570930589110375134593915352603285066268554483755107545312923063897879966442091494419314903421149256418667978431123655731352069376958335885090587882185740365089953718388551425752854531667414845255473906687238094911049278797147754456079251258019277904712481756625270271726456630771733562995417735812597885281421209962790044235782289825333111466559746592291574060242355279761784847223075839470896926400687519802043978557872862428597550708201538621611704927364265978157505079668223632987234822538067384883066087044140691859925101564834938045019135005187537533886689428808408959647865196829887787264247888620235476917684825300431173715733078324712867646715404882973380974080143555031137306448828884245500456750079324598334260827961885420121063709412585954230685247167425366501287592101459525701041126567493460061874905146176396917967888352724756896823208139448829637234517778239868892669997049571810114004237437738792080820131797259444937956281447731797682328231703008135126230777915618855385145729920838212300366546372439787500366714662759384856824533676464881631490502793697196319136075885739305649043845780634898678183471522719937054850461577292608431095586751221147659526724214988962075216929451030745500886808427580200318585579297262376522035651133940806810369944652620677954913955234846964975549364372892668813885241812174304162982266661469376990898185124683141665721553165878769106217174637981857235203980431232078410826826300203290820784156745375984407417891698087379748191376760118407664476411351552954452067766303212796675481414424530728795828319343382122392127581398699607890513915529941833417551088720980024599385889322764586453507788180618668575604856401828729517240260775726838471537554509723466325755584126157528079798289370473754673634340590684647887134041451838905215717259779567641244171940677742418315719005878631733840001590769277365337628129581690305579191731653039909579461626860730959684071780192386259699004881560224511173874945940989544988167828445876406935262499045878628906317841016376117230160494949511351561091637242213176288440154755740055055238683446328594306523084271714248698724027191932441498462621705730518095570096875598834635307710353863974677081310798789610055957041118936823244891469849414947862517395662432660581515849738446523289734755633611497980194565228121332275002068903331362851264960526203207559561624206062703693117072362708753530055167995284380358418660632293072021882985374161010217868677934109460562104294331348968406040787854363733114276026898856291520570423522172528222996327814523433907431804250035538579682656180908028893273748475864397602728860886667254163486490826044250052124750510565784945027445692853188019042755485114345265423864686750569796069104344585229581595087414024345862581213583496823029656270622410038416278829740613886858929540968804772486937239645415359599845484597164553845595646637254029695575520847600833242115235296615641238015896141147591705792451576576145895010790667171809889385208359256574322141123462870396685476891040877850686295154805332783479483737763305767501319480274008879466208116415466463624818740611277805252728090363854065989873706437957214550338285585591943023694413822630277462106935337077613523237037373876744677597661185468410873136189509151810284195284958801351391617841373681031473328251379960429303468381501637437922719414049194162535583694225629169887304267721725370596080754891430727258683682381339527657573739986514050645179644354927689639211953806084715905017787383772744474201965845651314357299588626092707514835394741709936405975878621153282348068587426129240338021187693400476705815892390457556090886965238148430439470987040574565699088825419913082932354419762455925976038823307295447538685674367884618226864807666549172885305713061623374452737687493164096495162392955337234388465079827205470047206857479137195320079995328914839419008072573781238626077049906644567360049746798164264910885260792137329185846557297748623071596072716954800368474520605591896892537256847817342789552660518955493496920144188604016131309327922475253866511545449820466116271483272615634153847477274646765466211433199293740916639545481482283151349099163528057908445833827439778088171054306765532375999706533071912774458104378418114435908268215280515093650593011692481158412726151635797107740610076292473754326254363822778778934139838618351929270970325039181691784452734646886610010919438724273031629538744202572920442980989519330580140002334664503191421446475044214961539650447454506395416631648758001076383795979266475894759676402788911582791874117232784269456038310706292902503537617869156833992542594977379706272621760518922636975828065102388060041744111759470791346350450625869188618396499327028325282840919167455518615542034775952177710107801258641223440581220735754373079092440239696185945740146500657601049206806375514795311585893219335832755947527477556133772722836416727864220495453885396898599104177490083966794331888571435438797485302250854641508140344681904220886527886267472603349411828200326164805108314601037110335941832284809390847790132058511737831889913222552849870827331005479001528415655595730334178378966034780897414577290442915187231654584706597725699561936701691610289952218414256099822099897715774389872604458253859764962495076835722359680753088806731590293161817714640134780384496864609849140799186704165694890341625732468857269764837585335364486249781900054132233045656293380919485063779458316469433060317092877781376672694237561464255966997383277027412183955424872147808480986734942174089363798482646064821592036668700489860488977509502078542418432470065126475636882262686552816994120072493315903040116397564901543446382224645673720704983824925685104558630311636474418766467956770106297457732992103651577783230773622356696702817875716697480844657745704484116663737545787827098090249310616532293359445104854708847868347180791776715640509021927666277861439189430475250980772568103802065436027716078621871901492711595567867960431934832484991769522679417518826922006703265832472161497522153528632504407220994149118350367016744367462734997913207375787229643029215400463162408320875422483224933268899629797400824013361696298824771340892465835304858652540816354537414561077469199602353564382136355690499784703528512290004924319421506725958145644127730723767538298874485414446892936708807025214042942387321373482448988583910612039733545654286119210868509026922076167392789980435270057581987459154799330074272794498965958246389726743831473313625601944840500509036002154920414792634074851675444452862747811257755985741308262382451172443442994068877606468110376386453897546811697615900054657994530959874178125253761072489360836128892958919138214966605980977216563481983385048243377254010869465493862225872312143581917681256879079272045849613591625603107213419001620684119484396160097499593203793084399885738778467002862409479667208815790680095283549073385931397936777107759686652349202273712835071324019241702671811067972066718717783405502001790021215425785942108190685354968709417721772631204791219374779829317194491998383683606418921888634200100290273509141989280641704925183979039253218918890904968381151091247320401748215018814013202164855420356932738993223643693545967975115928905761122046260909630666812755976375920799699929547751860348624328606199236117137751595340678335017074242596903292407224707304545020922066436180560412189505708791373566297051833056093899853877261042018711195428319403976573473301426489355300042286849722779264253087758811356007330509045215149759095261124564886773721890535500537847115890405299460062666727050159107172775614762552863907142016018900874766976079061230361352540310607192807104948990572688098971057336047513351025092586529608286891325304187885837263017181702949199099226418666678817992642308793106615925880841747610096909186550783804306815908237034278162415886770146554349817208132140017328158660967954351224181834358308242932028050477723925861971006674415010849760368878470890056822161568433114447588729656942881278945978774777349191906457439291213545902838237963272882745100539223706930686526238826084662817157145435288984499566415618401087136001096863920794390815612755443919858905282588527989257997251370759437145067237151602211184611142623362017120986534055743841217723669303995956442383889893941985516676344518284691882936002226162989551563261937603184253538750598581305668809348492018161643438988995765229475025717387370580619193360088752275097742315340358664411058770262290061812036748292594372466502097739384233680326806709539006626877115566117843491208070560163913051739915678153776401170725930888351643530575298996115175458176303521229504176381990714800181757854934698191877245464979211308940048581347595549342510807745731735536775994167798394286389392952332123055921797423165628017489968387934483635345740137227053832343438046137897338216147386504046896611276812000655400313176021512152697642007190024784200210005838027415361930906024122989018461846749674402050174008969779225614843470318780306091322839414490929792739924182261788712111195651035382394729664620598003655413976505698720521293660924993381920302631873090892881021314969842943553898308169681932810282773596193112734635600252641125036215042130463894756628139249349987952212427324899419368946401175020613115894926430300411018419045238357225897191941209610519294237033532167113932214781326515557536502284229228663239581887002164870025719213204514126853523203122697732748995187384284693542965241887130646681999643421578079570236554813046229651867266532599329585552181265026446210630861076659186139172594149644401017510678862855920604068181027697988351115488007034676264646206976937774608027453996533381140276726703874644549273788416445985532202537813097182312562606616930521092300207011059652494902152802466717935897465802042065362352812575216193246222924769555021982133456771428117891854248534255234294806273712706172379950602700706483677182126479250063636071816131342110200316432009750713563614191623809622846472997957330273745853461870174519490545017443921495555461600793391856048821033996567697208731234067691837511709394177217286488941150873458186047768839485260104273234946188705375634185875275392483800543767154014310600159069492296659686318457422120081120665481335089137249192770782260991270447502147841512426652692828273037883621092782701876303094780761782658072857718161704971590094413600084058557811234644336988044948629614581267316789540030370363991916386406851815273135261146699319394597642548634118528123382722091203731721929174901961000832941099465059862830281012186779640433355047012849107068117872938180349076746243259958054106156188131796101676289978705939258485071609942215261685218854197838639256570721785694689186610824636306493638370495114278379959059422754388737752514699028684167090265778837763456965742072801586960882284052098050650742635174035303454436951059471494585952036822868279869467594783267457198433697045901278078243728730636286456154241161082576549629842872703320524650005123858024211601513478095305302848157406796498725006292615814796151448266090109197432355318843897862632668573951497593279138928533876478614548486569235748393871258433615540792449502878858098631810968879642928506424107345906553780140645546519516690604570355390561390003765116850126703546649416108164136732029515104751009619150943314759569568233646262223169453264642488412588211982558533596166275285515063714797190369430653030390288011803154925229888916542904533904710008993079258679194023105560994346869570971372348502244238737818190475489599156303684439969164844190653117623210717461720255789802974407023983505427041589840857316914560208129829758184020307473950987997920727216733365301214661465877774871787436716134283548245874581097731848282157178986066873673537327870455535200095704477524603762878621194345408535534635632530531681194093632955345528720611002829659816831545568424891789634875851116305741788934614962072571643567315951920340851981143688663438088615009045839400107160829738479560587509091610851847172094480224304433345075023588375293200529268481124410087495711090151593226375986167873111163538253641060282120362540278912075392625481631826680558354414878398660267422452786390622005845169235012372214769206756832910160873024481954665773051667168649733980206515027520446383384719595220925880359627164367614710241657483736825654485501861043728164062376646611005187118199564495013331425613927465086595692382983229153571889391509917420423553509228262426418574356843729990779470844638412441484690564394389582430119035814089811240149927693740075324444284633019819769724037325146109689037292901002697470774524488128657978905006479112530106413276049644540032369020397038426849958925262695686634122714495696094871935502066126463827513615101236517327069700052394409132726705023708366691814510088174881338957396840663769402886391131617202510189316208296009468224317258348183400007177758495255774866414830511373878079795306273033111659062271613993354884652775757712103735050890764181187135210619068368748195140926086059455660005141796425032987942308209785929776981077596614107096145088086334461218234775107777973091256287144371912927867312625461895891140979540482545837809302787541823170196227928131131060499468272327529127431135177727778626919904724339286536595745763270380627339011403280376079364035443362286479337624139650809386706771622628026372145476752315211310439620799430228460900365821202130050418541017067231788660026585333500046786034963532881705022535448220414223073091294600792484341168601625195137405371973038342058664115171578962389898594848911367965309358277614351071351498082445994666848671682668530734082475176282477905970754974769825993345216568203243787672309216100287590243079229332877376659987262468643341339585119582548752040645351039744579067564545906275781677880535295699916176076823663136388410037545459805031079951087685592907655196716576230829418804942409153074826696852721703889951689319912583597622041932151317508036675023247804617385333058380679029918970438574749016828275534836872136658483509996224815589509443595739761824212576624851387192053858329578739786160788441930617304929589520370787107645073049610368186610294951866014550391724365438774791704832949318105013126173073364253253054706817427265103658102235235251387816020718447807924742280023809922056570278187282183998676004608211667145467340022610558757893141854698729231091309249382888197619745045327925812543168400276805348218813952888237154924752375309263351253704723491941049904298011992926744395210181003421850267921879196573118252799103068503163289423164440199052948120853501571979221486583307318883745565564023764719337373785068908980650073957553960893803678585853103392349680224146813945430209780310550740161208794232162166440500604812809799548854783021090500097386715518996519904459578636636529031314391079814444485179643655877981871111048238713030947320274328667959326863146001286709366008598670295067564717448638991348386866652992433228344006190721172476674643410365707292696997457446449448179868165352190364304743447285104769845604947655162902552176975400500336488717722486894589185007585085271982497745712839496705236794525002792001664496718029604533034946457873546627929247982875509690426149420418058629366475517657034100724505987596892519619217938966096743602893085193158476674798817970790584063651580852099123982129374911714096859805129766085086229718075919644793150304456558131173982786382660115202163127835297123155411671071993067474776544343722821146464851870767425935425473244580253270340242653674393160579031459531203798884838271608555411853510462269513324658562409188020775105910341747869323280271557370294542474062224185983015160557792484242281292550179900932461339912045188494361905463183300124401807991076882161402430627897770500676505750296426100552030295222803383857124421690953338587394151778902662580645022173218775521865533989025014545991121519524942302981551562153234381729242007233744344613471554334384903152530282610177950798498668170626180764948126281320846039030620403859083806317632662194647102761978967436904550812019272631853037808296493548015637440104059279597268940690435975188848399921506432610997936257271696134572920367915934437450920430396495759541582479717619542479385401483391205654414925532887103037035815150230411247195921067367889684876375975258123934016186817331144142487035639928394733513688809880423730862099046795978367357151693992833588191499581915914440291078546557548865776086149278418436175063881338123888740432899551473168162603986499516315737044387270566570328063084272324884973221036617306204804400984122021437631055261888580068588233905142761209951074335445872381475824153311247601925860916187593269670800598693618576976097124912849471975555525771940691382589501419349284310100137197712805141161219046113605300952029893738121850568226162061643673032768194811010412968991025188720698729929296156647330009365693670140304714104888045994991963182117224171404398402159072270601979206474309606585369082674462644099691635118736032760216912341032487201811880421738051569877722116956676636719521509729405147948258427849006022188087669608099073766927850110185832704289696989137189907184267235970015381430386700638730577576675306531636316795063866753149970573790756590154657522951306947085958290448913238141056419577092241970047170302073076918350940019576747091766830078470566714045103451773843940812489201736526898908084080876855438670272543193446761315629539014701275055403458851650455050362792974445183602700227164278538236012971860608678561083525708965370125617866241337807083315015761320034127523120083596010430202621132457234150794993775582417574652350143346144965327786908810743733926909273053660731474513389969277603193727762189690669955012129211756413562856212163865184339898627339881683239798913207365859428955049775653383143400731370789778669162187575827442983279877884235383816764384209866922525974467089424538730667601166659620211952727336879710629678202556813643355306387079320831786585224132897552751646722403011298743738981908787455303703146889471014421313601171538218746387632352260615546453147655748225550450809000523310332823542686847527848225894964174317057457013245663930721308665876484154938469635267364685179549796613844823335586377600939709033162125025413460438949345343810555690435203149722325302134201545941366446565587353665392061539517444063870702109890249368180127064688093395284096912330504299593980806331981218921610782386115278814342900203568065768736436778182823092557020662290035038690044508784648450730213004565553133334464951644239390052047374718700704135662551315989017319606587551928156564576947231321884707246434546474283785533844785225314976327673109524850676517893118239494570945075172528224144063857674840116341630444003065791783367197222388199650152580581879467312370822149071724485588725116083208242735744074654661435491876958104367050920182678833343192789372699374641250843276426608477630840310229450041070476141590288543127908552248835944046732195124118660724636061361430230893950902389164207670924085018328892217011168998363399532682750844059171748820186041819141521387562629261826623453095543453430296462990715521531097819832493530293322472789231449900159075430844640783256379614703136417219132249378484320229161540567695893025132342796719241135705709884032028398909988493943151393235147493600759725584707017146701807220939622816997807692819630680037663795007726158648639526672878768648793929132707286148813155683002949574202300018040022487663795376046320143413425808153734014011685821945638826323814321030045528044693506312467859029926208865045329157424938928071938558664276457301150223663339281808488867606612075215034612175094434457527341361707805697604479520598307939517359319581142905099070199164793932034196725247153403178533502454215054388719561295832593921602831830905762938211650013976722899171093325140566040004405277731029217430167869210697673159423572015899405974231717612955790736006243346580637758425033782023667747559575585866909553775334548547954428917594065627768283257612160735050601136004365993916758909376183577224847307962496745359414342446129661024392131601391242548724533145112482522625788886358283993361395151044596316275807691630010394479573955893840407943458015995310650876318343149712961604309910351360652657592805655137123114630181808696595833203268195157111130663915647162735688087828527245762973701061119238400925094886393232963873800377455331908098219814041369217873552250198542704952020701215757630187490769247702567612541469641381162564972367331968315997616567818543177977047308444028364290978572329782265527489789246400846747583316264127319737152144336074994285654915886707923899670507317170526107232403898371630476757212805341161585147386857594283914455328423439216228258511020181379486016242085447841902178252306219916230123979906756539243532327272122611970933861323248241724567059589174305272090441566912352858789748088334703631627729533719198744144438515370047535761744438402602584893645106830293617445487583915267461955666030063002922883596731889205763446269850684188846171835457470219049274911164484862358371860881220321623156836844775178924723670466798803909078502665490604689240806899324637074994705129758657342272593247939866731464357520077293380809996814397295172945706888822755990954229121255090032612189949534652239650564961606728568226720103910466190981658824101048974018803526685742320408727784340764955840709377158794446534391772129972733739812267190676395663756734663190636087540088408341329825941153384720360416867471047057658254451151288068367950388132911591018513427551724964190858021510227032847826409073764475518325042349182644387001480315768145109942008298966912337054530797887731323068450320683300126106035406200921628287436907411622668939211009565110690572343608743304742022551884985335262830591676168402703199023121467489505891583416845309827888413080067178400915726533339826026073008182986720411858028195854888985811756354854240268611496384959381967825000090352339569308603829214259799127210633460280044849012747132160205361676648585647340534556592304359043587733907685757978265564532207856318438241697232122015249506398068900911922345740582561687890138992516031105475620057159951638180179510305758154983397523526240564774303211427439569570090576608013020901624862013992755195966060354041146580273717916246232744299126474307606367360736627616779145657632388767587537383167773498075851952437077042250323685789563431767238185319283929516493184387626159644849073246942244157072400353940981476773125650492057559058340133126676570374277843802636783956930172655741779465109519201751351690500842998651150764344158958561874181393506817650418222593629942737810645057628263255325848712997546336502694894830338306015427087827103805362683245407200945837417988865648501383016808583412796667117759893680806670665921438292515494904076874965980200517227849220553637502590173678359507891917780441113443907814332073357658719976285636306313259592980908384571554211326838298932157667707438081109106510481210064326743309301811920015774535547126496280920301896108376527936164811320856394704902164797316275625039647964065727971718204549393096604587453169904624200200979794198090008535142659382974775717143988239408830434593900820654487495577824630350588654118457568644960956508063459367992466631338089848560457967715261404983707810575050104555336104811405356468237493329747555776438292192140697700260823292444818669080179366099290724432320311711073021215013625465173978949950890305821522520457977577024355332457062914076060655664422492629303695124994767068894911549416022899846243390503550106028648996627164698405425318016695413775318181896031707328765214577601649820545055003226938019328591947431956223068245777655663879540508399788245343455758290305531598290769185977312523851471474316948100403995858414623723264131184320915930258084583648533919141121410324660502233472797608255824028956900294844671081014776361116819433627598099829798402853732121552259059697997618651456080984286861362688969768301919187437135715726168256768222712226132054037085604903669636143302907891692970390564940390882271057948851871181877610738366028559823525009608832359108305242610114915281828761680353147762442980016745392424805315712674735815625352692355962428726047459205910881237882023408696637294422724189801675593826195464726719211709395204373627902244124315880605104498558836717752652456267972323383127233047578939086321561575550580467402196068885841988489817364470375166723266350422812592746685740352563049328072676690927799860643936379080333823506873309391065428243821882614624381965704693087564446089297590982160243646024311950444054157678497905943464192299531434129595207875010867196116166121527426712421930342465917630554778634673528631729949306986495131268544066477222190090223272973571419311492013184276359940729854554519103308734931358244397446847623202942226751110168121718726424257220708122625762541257332258768148713940083743955936564263788033417410196254288037784597061686808413606305792544180120542376732096781636466622066449204736160545762211814739754006822100001752669405003011117003297203216495940204124372888768899658238079103709877507352339137677598789601062867693290352370081671199665359025744478805932898626658903798557472402536794308756296960180809383646750437942965151397933153483919297114001525925410526024660239805239309224957838983342206110163263910738819142579233636638847310296894572278258342108331602202395299544678110345292941478093370127660735888117550866728720778991446459631288571360048071071708392251116061922916187929969584055610808073527453234284069621490619550960673042220030976142430711501393865254191322598876736370316848081121265870590564927766655214799461169985967143753536818104891887928889566292309808137723312983610275293527713003212713417826407648982793561813784019575833771430746047462550833087247393737177013860130448881115497517150662625279744161882385959516007261933252765231863774305643518111893960472194980591363551211805530307115522128580570794278466246158650983562337945240851957083245077174755671817543273596679176204365456250678207283087530436033967336533334952602195200285133566220604213879422268847517999089447895834093866341425965717019663852124823295320617883373649566303386822058402672349612273976699974178580583214959944716828990126422406571086234725550032544182296069064786658619738945944574085879399257335689775653054737988480601290683272911227588152758553757930859412112095637137458619520363467584662442577795269432508264792382500670282600131767085789820023901579911088433718777739665133523327078978762994711953071333039155815364652869157721684287989691283780823441069373989770443775219847156341617572108224505249129310662692463374154660383986144628856597333142535516701937038854749186998875502451750369354534072557784388608264630941200918712974229634363146369404722596160750540444428807996667855825363322159823481401582313673248320777376043858380202617942546900277012478577971588429703306912479715277269995787219770786220717615921824841363442276843658111727764122384870599814311516529365728060369609048804316217445146153338257579281756342172573490730994982561726523795858392521069245340521831554959780989803880984015389834307874388102033686650149564972363627432888321646757814757902283590760111176341605018847133326281015333335635094686460362341268130030474905349436599614197079766059720668412340376353739062168551965123291441480587968939085472699158758387047336620408168343492559249412841586833843310562921630332835320258057639997416270575740172381858153394725596433033879620586113867244668456871122780097095582020079043241256097014743922867664195224043707981830899030225262188614546390245961223863539807788224501661188978792834856686583314343790477725296781278326798923678798911100882246428983319651886741626605638748596834524776570808872690655987428807375167919371462255514832920917906923432584544009452395133363547676438072160819607724448501929168357350958915049016187097776870801450936664915125993595905435793606893670333097032494660636558289650404106399778419316245819773334724603496383467822831309659964832878569563014562618186178426778080843416411809210239870344924907507101172607668037171637914142561785372549108428969856019725817803522245209098637210337595911333757697021449264015258235015989992063351731318498702480528088750638084275302283649023321145977429764764192129334575826577342295438502609365469262719102681684161279460722927225017906417437511285278465429583827730857204663031794206018773814372753452521706594983606816889298564555602892740153761107868829255850460387368207025519599517042642318941060841005819138329746189549894467256113457193008262432200958640796961782397310881592662011829657095032451588692773944896814061447769141208096112986674946623686112277668182071139715136695696425894806918406554175600828151852914877233413473586236067641821765481039884753030479764884180920665828969091352600312404627655802462844343444716883244521867370544602600277455844692494053387341241596916547723779524555205891037483289652237309742632211952662860162892466247584507955910117080259427339765630625075441404406189363744758262509561994040433151828355109401075708003245728129301802093026308192295065153134584529638231580092856140535248130378682956738053470552139089851477533023537522789297004842116476191325093511942265385460453928588384963292355366831715432281785066404005845853212620113322149268657875530323086287379594605085205003492142228764474045754162452574974182886000237507011003245758700304606297339160300699381405887442360761891263613303291208679467988946131089440393209109391761056641917735558137678321048034151682113812978626107726809875181581949964123125664460019970737523631726710747719474008246767277718552452561526711862874561323750454187844091382706367256018918306721632162216942039399151646503362791405174689127172522334489766177172696285497124113433418795444443692801017978169827344355630663927434416404734940050287191542859857722402276364811170262309880524981246831203546453848365339399918462809793871395040434163131853559057661552430300814860199232466560081091735517328624015077972468773920286077747983282585513476197380660947650775822497582935503631976584989833420884351476404675597157674930660126390237138865265848710406198520981774550107384304005109596985981935942648155821525585026598259811949797323053121089473750272992211159810168371856383374511929682350455304200033046426746256300870955964361701758062541955580691707953021185048893413825091834067634124550543687062262894303955461215225257280901676357829720325091643055916957089344226965385192307957730232700273324308323701547716218470518379207058216192969221060385611320412666157669209301931199883926533764525299429651705892683102728700925461963174872434083176950308758790856853239823571237410486328810622925398396456538784040899341487372086827607713105066052251379035229358422205886952127479971880576577706478920502286173041610108712751733442129385574575407018593256780287759210342365306389543890758454618670697146265553429018954105864295522059731930134291214486468836735918542598573811385784322856991039040062965196428725246332582866544872912076964405608988142397604482759949791369586178356250901163562172790323366768547856549012297195855954301642669800357894853481055908938292852771368017551584200533721217172789391692805072456978892070712728982739498582544200870913047712000312974811026112517817687118746711070953816950853470717424449678738762741772759231796707939646390845291947155840893148396784215835380109533495395867859786429990228906297326266668284949561783800756837737628716766859403008141448156345738418736290962400662018060375637527111289175745423653722622033603901887344577943648837715196432185143262904307801523427097758708871349025990222963064922020336862244016909949611083992740356860569274158718909324657462490829208420140205737291172176649988858161634273570743422137615002261991870982333696433883757347362515008711872846751988593387876760502021790149306909545752216807194445930409844779319271805563056499103660413523644579847195053010730271998775238118730313596866986706117217250744676349321461108663164791513420703415354882113210094387214232769967056654914128554719312299364743424486493012938348986027135178987039248286819131618729251045080880747231363187096216052142667852543245723975832042598983732301860381929606615267885130776566642208234259846307707034979949445296976192867088918788805241533044531126385370412731541469623007087735012111823356455870781972973602395992188166611876622831340907252291853125394753323212586468823112581339181845428011608311191306058730051195541851901958567291992421226330500488144126973046813061070654477422349571147944558024334367351701711118369379266580914423968695840500427878614520480760213979524706664789978195795131814464897904292543546035445076544053590095382451238081247525872457668395166819187580961377423504582623165855998608982714251606409009309877125707787516649426639507581325381341436380708507820361207484762173635810803176419643091320928921331578072242750273075997263133678075359316910733613704298541650886457927563093035858132903245075630300235675823558272641915015053538304357708500478473184414957759277607384982468142676323134896393736951049273183147531925754032147891263007565036964226910933186915668567928831326765913430324190420887282465452978374904919213720730899630848882656615538722771157959024386591993151292206263172400852020082394711658973194758824968158842306953168676471822449800465397178409388829616951544605180313991992713619854231996995142656654260680206799520466765929630553679297455328406865596614320050884280703246412057999345173968489773772169674266848264602259350246702085387246692617422778782924492377607523783741562792575970815170320081004336953759039310280842721974018836359968075149038224117495679927917278916904895214318447522744385025163767884540821880796596571972751631561839354566406954754919889739086459632574410116335423907027501380432663921618245067811636854415142016492454828446831707679722955440651118362177669530521360705549182109583506783178652086667389918683771790078141633560130470149728651177150470473073728983384904804151017794362877688843095063914008947911163960874443507914666645767264626694154914910138419872131719035962500449517498951133380332742578174759953742084553919584645499800109413113891216059594793966479332766012527129907235150380528358465116167956128096403209753024568449355688641973632254996609814878929209409809889146704310705590430858531799919146230110247498124599204704625781469325310789619316106088370350876593947644144969822037508275201294999329938160695302227977399058785636137634560957754676689063788113983305822295355338239092439853238500299454174602479846411076073255852651690805205419359180693268835432072919256551808090564623171020426008054125106454881873942413294625112567346611292384998450967608631532109221578521542314453087517418912617862185961929253786805667528850554388879313747458549783916630263752309333512649034672256632630804306973652550991464474847900690226573063440158854094347047675401022987298333600523651601766271368644326488016894579879393567626519896550481217158777584334709582901301896648937370165370729990892829499119878257664167424582545167187177264146903049671983165498011811331874241134207767008677214769605859961288246265025730858923304545272913007441284982509304565434989421472270262946111115691450368472433898743114148111167999216885761899226273372458385295315136317948505002693673344555751471029535517219931817767799959828488269137024181146079338626406472116843500110723699780998816984214344728641505780179446733354039233152588365723976508726603537218609599218079666358052685018518891390617652762121498890050543810432590089280462992451458340572752952685973943801846068490919149502102794719298102776901846635015192461647655541219254540445345837504072664576875144304601983054074567444646414036898919904230405553268913693047229886031096692073965731332664877865019459617390146625755721444778241700807333739425220083370498690899044284055664286242206862465238666833119112404336248494617780843101800869752623738947562683607927193080013674026543564391146347203340137823189613159415789615820340449156392049519145670823230947974816991343949098142558600484256144988277543854374115811612939565471124908387452453596520326098418948447765971692644378537288684479793598229901003228130004685362524802507787281283963137216334273122287012020672773110340122951620950597885905605225976258356219104349591567822693675021161393194177266872065077558151200599119181367425484309556650220052419212679592133003584897181406477882892079296007074083876900973424987123376730835556903472216570520709543300327336513447309620438214160043903200584527565573227303660540452966417503440159300872817886203318355274098882057186880068147793683107773684024983555162824259109353377767277013918160995983074064425937109297888594121775115842849392097414826123632830484728571445772127284099067055231301862375272047272776365084041877934012572725318782159899530784986939542603375627452851340848903471492693373898365977506733781828636703345862958392362316754716541879213137042941580844364305786750856285838260642564422065739419083682569358135037243182769454168450148829861177842511807209313938876662021984579793779209517973553281091441580666818841172853230669606873182540665054579900843063932424844499145276260992467077367173395863801719153559494832018264767453824688070868990014347378790888879483901190199856065737149740737091164516087856224332733739594044447277892584154272808856271374520321076485437150392289116445970744757408556334538861120711450485446867443748724964018271873422275553776447429301851414042142157234200268806720767631335835425585296316158408942196100992113687736239375391562223564923742068223543456280558660108247392547723788573898298170282062230088760338037732580792115107884127823491364141523565126023312351033133352969988136745252576417795422689348422561189581542091676427068024796871937395488921573251032800219578987958643787163822810812124123989413128576671519985920391409801032769769511091585664797323255660547700486583572320998927374978237572021937982051970468660450475032531516306397326740899997433958492601250306068784689759656444800268101822578944913196223920071916102412514170379156155483641612996909189098455869271786895886126520866041286077210643304725332947378734883173778914486150939170580679465003670359790496102862989803992781712346496443079774894414667569194349487420559346111830719271017091232658132181874575004428677422577029059543674075504053166847564360983625832849518518128097358344275873714671461102524323267044520832294290962658131672541888659602241264793321196595255985180892669729251442492068766473554172358141770623909460184006495336795456785789454300901914972165105261129716242404609507715757559087176338421238354286237986698389113995549425940539971624700505604352781284336460109075915311226207732768662277707114884216884377170419617267232354753041194763156362059731462050183611530943692320833072954397168908398812472655766247223741639322395351796551429981521184121021901428645732972703651841852416056691337052360242365128632097848651423988507587848371974127058374763421654827280258521544017360993276787537490606957433084705814707548880581258114685634669702585069116730276116282255264126379743055542862982489095541112218058288144810552740316617267268158105713551039713474899067094526718786948209793704204092251046675053310364662929312708509770661062266743729348110233375651224136707223571875262381393025341530541708830506534741560058340936878951300808503599820514303583488824460227360658437591707167050768910904469765329062364885786902301082442088844785123289540163984855303755892458554688449940284448766862541631796365563702957211589023494729880243412283829471050273679461131217473339039601914498162839646427117244410491703353920256486080330895743571357867623361713533002414086585834771530096323897018186504879202414224606951692272665720111827149047048783378575114051609059451650994054899480196708543276821991440081190295605372896717235521980396498622991339601057801185869550191557664524651420486229404559905634613143639674822459869747437981361404669346646488812314699731097827178154248789788598676810629675035406343321308073056918081050958673634648848046810332761894430955170462242884085541499278281762037250675686559920440523792617522278225387672089723920703213498480976592691635807440870692937823679564105884973385441023727612914755858380304199271750447428976327226016030243306885296366844878576626120605597084568399446275688669471780905937292282208498562081609208623188340311539297963510970070375967630634261417473103727186477978819680064437264356777960785142132119670217084734412624271212450602900398831743998478548926171731380626183312382583750255831743841354230057865310100265055524231718700070005778369340533451747125257970980696365735267961926857345225468872516997689644603021442496638833996943340383856786428890939122599464596167713890335865354381581194397149862973966205562126549256032774125534292056354064738839008164155623768833599297756085947990193527719867503261795705879568469825818884508099546751277084890894728648578721448908255615396874980249932431180631873418662400577689965065141861138475062901123165248608539299139632892534355641820310400383164214199553929087494995215993729610056316674941910544494914645185257585209596987517438541771149546935107331402257967367404490016012413361053971032655980252274082976976089089153705303150439624664630011458787641342496564298360044050617175252853602748652262920545612351776142582231439564397753869675071079634074066143743892097186390930279505609590177200356987411741420508802000302075464653669853676950839218763552739622758127036382722132131589886912078386224992475848195427953571932369177467151619399222472151911450660172359453980661399892960769277406670769362421079685829919213416604573573849929534299223299888276834268773505961069230407594656544243342613542359126594743021108386433294312892008655007256828376063424391234445414754838887599718992475207721413129643272324887714964065675605236414549313472565203654762009617470428477129007391269106409325252535618130085809604952469650284342458492317520915068477812606395873492513942532787670087342056361801640864415833915825627874336309027934352994192034901875629635183333927892942245280890454745203532987414115738948473478305642217937370610861330962717422891918226210619211215977669223160865637972694379569247957598493100006339178504447437937683030143653537518537262710581122357496571632251831805431174950942974863593623301260963044773994926282862531929914898077896263614624940196499260197561564820606489062084662936414844807538089816435598915742216409594021173352001409920268317437152930694511343616896328074302306453569436820943827485353456787166915837733563380806641973877254890612646052328849012564743234618488891667669424338290394353727487488819613665016880186640506695919925927409259086037375503341798321526377283278522181249012612356981678611254144707675639143632321060992568808015291321606818820561784634661140901746564909313596758106452080762388020968126656900790691064655275790478419910422430216104978323097151066664830704875697766103767939766823823589601803966673154763278694244729035061771983068069893670150570424124966653444129431963291323676232081998385121302736650812103639368411024366220557654713698767803138224881181861368984254264251345349368147294796519773367074270786480310541004921158668180482569144176652278145258757213277087924118752470610650440881609990059831842148294834453614282949560388168586259625278684808573532261601358158835226887940155615297670519776329452523655417881836741573530010171323069499442474208815415054156985675464485931551353659976218363119229690432380758896487391944951104347770652680810127498522651273085756205640644338157331759614826991332632296178657468126650425129563551956637412733197207676300032100095389647715171346857750316617798212940769015835448879214929901361155396095043646125387434465646396678908430164018027102890213329196400941421589709118230708407920221799820646487785480403955881812478076466382433455784511334456215426078378260287627641733243812008749693457270037464469953129848041935845912854028251129574392061189815046119570365763926621891266365354732320271497311039528716593790587822791246132769512199765803860147910443542300751885719388350189380951800827526865374038762923755247264627537247247431986150187944640254109327466391702624767440841009570165712479812724219294019529359372291133091620045505072937224841531037045312105534665172484317860790889145336466501341675868655751545285378289133461723634044404770312764465955255923554594424426555844681358247522506102696559338048508240705207444842094456464335087483207169252271088081176171827224417358884914504137248829889987770639448294748314174151303604059962591651201964369728675717490310040583463336475470229208631452882704379903756250718195876199877302436294238288538087727711243421565593902080267394595676461236228218402281946342457894743442019390358016290396191881501719183808975079567172730401153972310929431658719255386517015741468936098877238555405126504015766312821390005221027149355053571620658658109317027463388653176388420799307741060717345236747767328290977442837914532443196090688969763312368570057271465475680174223198164224067256334409092020828298350503599328731419750354938338688919713414070433998219793493029000225116694305511167107205453222850043928557351051604046583838682622930939370915297984216719230539016607145843247832850574893909513919638327501112269626829438952480023742562377054349042724821318270505106738940301826379376271540566519378909383648262960324804434328314486384060380603938569052247522489155120063817368353081012626262008529585522524552614531497133835760138160930869394776039696425136025679018612360804836355716824857781616528297845593190763164923137767751704669306311902841817212364162196937430156629221291163646265708298325815427301912790854548407726312515625427280366728542594124712966859651913158841598287374268407137723342688229102728926789633078323434546120118975940198624380832255022796861628994267354444331140257387881370407762651260436726995645158436361391793689440798634169029475540435462080326990383498179118821290584475710313697333035699172366009002889762553551908638459192590673478456021294670633229838387003923048081627797062679688577822759804355182773351471653008753529787260008843337845472489390405661824649335922581862713284381236584131927199627466457581010686256790527909910180869124605480985761198953991601156307565263966908742459608827631016565898847429031176411888070835081891431522398865427191377175499674519740985889949716917827228683847062480629636182512397789622721136469109872573879943203508381702900496289468897585820641471362422504737738341554573551588366327729241604366218351986220860958826730183294592334296610955922635970305840626694039300030699082143091975287657976168257708740816995242811012002076248826224027074768980860693792727453618712446430245392446902401225616129307014053107090537315436525781522667159600512444883372279858521313664595113156096476750495900604276814503544999938250401083761971860804630866405577870200626542010322128284663359403187088255451984257894968521988784584144915712035137587225401189915004365387492966175837868437312434931181843723708936253668146419506959838399236862503742070058308728167461846430930928906272887054047243305372059467109632956071946550847876785333274281513873782709749311055364992885630939905759718463093200341032372814856806804199073143530188956856539208164857532487883733269918435893474499879051059499548837986352266527866184306003300503716028739832581715775196829623718908416550560225189049653218517398343557892615538569559579865034958136764671198295687144126123861631005155482868782275120037823014067988704154510785265624753836186242268931225909223677962374373712141766740002719607303721317537464009577513624171900561528368384520256203862996818695136474039502646236592638983159076098032347547437049255846882873454526167368115053183981326830775590829319785029870321041947512213273895787276594036932600117833340004084943280258305542287730381731769788181899093416570993466478593873062645953588331283394864271653757077766043188611558483480165914553086649189569602980394482978670854591726550530842942432306575681676450121022105797772536955782963189357749058693101723582430196146711993924196833820574033051590946665146667137057848664812805206806081575708446892219821921651822567788115429902682809245777352870919310102290979792567855216144748473502394860416585744540056100313661398207709573711482213971273301526957127867444800101522831858698489345507687922860925649329809081640856429184847041571830082226355868719065524921007506130044978573878687257788969252318190244409845953101868540685992182822132408987987976980299449139750172140525406078085997293447226068177899150516383367811694952595178401794341661751383458266382891561048409375229717909047358396377036928175615994602757533540244821963416058285063416464150049339747066773218976553757646789725961961308720437166492619550714097798493414425502338185821101996679412354884409082973339832246750206921348417231295211995372893910538370897508063667331232192613565186315244806537057109486911570365717049490772859225848682011952827280255175634356069416670822692006332039182707170157446811524514263916147241470091574200392899133685254273233477707846254454826654201493699091875936343077045575307340149667280380653036920424732309856018817372209304969309774459536974730378896943925301726716489718756955582116215652243206836101001434272691963124982408030744001783310528211147926387869667551587119461554910959259525078377671141190158937962112847741224162246020259443725955731151208672737017983662113605848380935548812125912164681282278990143967041704958978312173615522121936455826012164820148584676907799458243186140852844587640732020657400339453607093694344639186767761678738986827689839153993086338059781415444221871091269210187718472700445243931997260359820171249071380641734064770179140884387382170371548147727826830556684097830314437079664213865111383159137840932056739969470028077454041527967438296553784176570069928482386322951050203531171685109951059224438283086522740919344845641333050687324356874189641315051561935686268103607586725497174653500927665407819238939021824150659869489223849403387617159250773671473227956177648279539948384135928904022542558940390849755142449192040179062878022875889237939483162732328699387352668289042509771625643177957324437418851139556660495395409621857032103971001066813729717538234825603312141223265857707076336895341589853529830271565843626189664614794466390639377108419699884881875455301932484332170061738205750749790447409597426900059878164833072427146369519851525280178829517953392020339922815686568010258751476232702608048353497140742922477459556913246380461451706237183549505824776830255877269013438346104897112695697742885384352699728924000504113060776497965131505149417328654199765607379016907380722424942042132753164769456501974994173748518802493100176136136572950931366885357074208793156471674694993263201481254814802882922743693913977141250714510167328873424071338795482265307120077277923315566288769182428280497387463920643506590540327263240731223883486155309518501564027791115473447067479092474521428326417790232137608524043846331180226023846056614604981504293938991644866069798866975945901357673268389072620429277011315510494633710742420964858763600582101663269654073688308197999475144437684459529239628377247154550903542087443705140054659870252911856801245531362613747786549068600146442140063642184955191650958650459991910922491218657530295960189038891934553409051846063997819623114579054142147339217425717194006509508994705096272164710162640365799833466439294232893432494154019392131475492680874663851358969503290054860135306413886930895178686356444380662191266039350461001100361406232391977095928103172531083769390971292410187676910659778987066100154247110870742289610859903047037730990593708914122411850970327745823913336450330519448984836603266706586305657625666177144349474092617826136507921271029057520954962398224035265947825558946654734696853762782907529166780265644263492380187975268679225110519050481908171566533188094235842983981620520190652317782833568766783409054499604241040581028585522215622425301920743367108041267369879578845830457803258135299958475537180174170137092373363047382053479385656218521660916505557495602283936157213662384681068358642446204138398321189392801202190334064188682079810238849482485694503962971088557961559177889121441270150505695483130745745590883188857674875777078732216986949519391062483921113782016579549241099695663136844379271320951067615644584189216187803567883605749516079117600325767979370989990443016042929979371149390568907808778541643847425273159674952782737197498297135869653175232180363828461703569525765010671436803142821971416129255841024964824595430104916736386993443522602231350599212781291601515127786862131173672215530361534770851546982450517467253665331564843359480160254265200351266037869882173763081136753485104283609251007792674289358298025903861169599673849789638348756697832206645128890018406677461621100579320637530199314272132608828529028439104948552542373613794909389963614475224369628029348627033855695678204826757868250326229058259705316963722556510436166850274976484549924568600628014573769145553909835654854829094598197555228981733847422435218437964054188519990182774577590847560762982285634711737443995649286879775137882161665182328005408600400147164919318891424360946728272989223767683367504278992098310613293400600296542006914085509445067181032178234735607172497700516198256435077290650157016053256880860877527986014576934481814963972106110240968336507229945846062135656109378004386660027026236904975222100096335098760233729157393986439713201953761593763123483857623014784130965410350854097948431472008723365001558083938642802937266779149352254683914728635337674602120251793714997952449360183443582170756971905340098235181579372328202808375276942057235285246163392698575357182503905873625911871165936997836251338137709976659203955367586322117608527967788920182495858062507577553104861837556724298836156827119746133551688093823177429085783827826567983591231610691749368115694496063525698371724990333182446393418385533066025039547481643497650262797638515430980021767341806071273546320286135099327160959095283081025811611591662575008956832324562354413009832164857512741553941464957369656984812251654281368230897842694667562706640958718238201150111884542420545037901556796258852930406738137335314784630999021196650181863424072381736094307162516152079170483625184170575230151154048446243453828988692851804531093927360956050628050876408780349910823912471803591681531174006344635155833178848670711403736917225825772024244611611804222921218922767555555783610277521158521134774267466885150902609062036186439895345363807090079110860167385024126259607709035521189286641109968560280282628245244047235424288485746791292313757658213016132851158608649629843978394338202370800031261997725243845260899928007481067360065181937783859888103472971189675681334317891835121652424308602439317855938851921149514645112047685416239108237544476437262376062171525838053047619626746249149287584966137016644990907072862321982760561742212687902444854165331182040310698772620842722742617855448019827765214099108539120375767326066917763006626790185850718886713673441371043043652526492133364437462038538658067837717001980614574006350881022727239701763778757680045206075190021519915235205007097160955710820743910437764852702345363053006768197012144578071517204096273633783911429194787717137052220349477866829295114358771681122847818467803476129528445297836320664506415967825783599850989640146613844758371586278256311191939502780468681944849143574506454428908735832446172616799421071788254996496141318336302372074830636055935412095047626535275296804417110261499803654471513459469317996756573813028240432445218669532051483273271920338128260347403487805759182290618223763640947034981726497438587747120703954006988490020129897512313313164475322426592627439962238860755290430944885765600880611016856290709901087033072614380001103740025020577228674982272698558067669363396015844344085148693350506335327534117645580347675365993922623801281708678526231967173417577945676438664747535756380751648251668514923804662906929892642407338532790532025286442723045042001359524439403768949394786548920634221340779544088292715286288722943481918637001215004288117874044381376735488432400408235368903445555107868531336688123292966720395894858025148723800519955813665072669804996735184981768787202033207190731152130201128198051610560989869629158785814396034656053806252114031551035124058031356360350430945547848562115873809704770314311617775871853690730521269446663298725649526126261948086833002477263748773473540202242647112524176993605586109717373046677881669813367742424079780776538928452686239287274991182420588697782555430092427193304989841023891503705736444701964219788756768647328434083065699776812052580178213963325222367803360073667390211923313273821133617212094990512098944678711991847347258457812587266122121718565289195863706348173711632148592575058373765767536631884595708036519402290588301247331019924323197886414505289317590401327149099201782471644701123237081909858669164486963260683790249740411074538251440888470611016600323943263935533796431722188541721444771808752959867424999501706856644023141801176460529942301004731890637432216564927110844451362787454089953909626812854072502408484887772826977864120485234293185883403504076712373968461874711414257890881547889998358929183518626976317315620126369015616355691095353490893582599550783439380526683956913511265729211137877974550997951894266109449527900018482305385266781947179331947687343269055474324687430456429634020487337714643161084457084085431429261818814195295192118316462405252068690692086409727846530677314391980285512872097265339514211847869671566755491806703169830746242616124307425333539625374727721279358345909275719782195069282512579647224903639999217732744957778423296327335731337716099978007271755709794404648660399819070786311928915599823677749552630838995438345519834194357750918210731826034046088492325010698057859238674498187196786928847075519697981522271854903485236494948782779064027442984986733139249327636578966313461296164391199630545501213277093488949695111992141512565240717858086831877988641207260681789680896435928824387212534721470249531197996502402331276312063843158965765404315553348239169084796480589649016883424268301708944773063986752210400248790472550813581180177349025001570596288475797315062740653791260380551305973630184721287950237379967198902869407370518346824430297005735158221592725824506404134240111454246367814591831280551096293874917792614059706689719053979238654511552246494968344968489477591411851155084558586856849569806176283247908269662957338454383432978686813422719597668612008452457339278777871314210303578058484901567214339077603300513770258384608401669893890111891970640824139443059437076981950242531788797327697670588462228892162663351315371334009373238518110581421984031878116176484211314887077631879094635954623712349816493004177547322613117515637869264253136360755574478570899488624877189643381883378526281359155294306918745246918497856042463666460371909025500401790473331285296622298740736679574606347975058342958123332296682286965869875520225244478405319128313639728282549771915406009662720536201896553768529081487974317910591932229897715994470901490940542741304239274294490529019298650096767975160176276500372999048725598095331196157078984302857402864954481037255594985474233157038217886508671752455133099178089422557230714957384448323637440435738526780891471296248892223884626118151939098805263756323849277910645042048558240432899213507866012110672493034624814838584776473129034356886594118611258175512878234561092244893712612846938805705953141494625018135934231036874648391720617751182614775620833947257160808547329296536492582591369458993428173537762055531793615467350053384238259904217691260087850242645494607442821479090774327035693844040888351217493801242853586419184593637863129716061882476231324957056472176538952064093444577173393896176804758434043042069119771393953529416664347288322757426476938866422998031402947760540494788204500742350198338635043864587852118857129583229511899748531053176805585667519313258172470848700006448624484565323661767026194592248937084766781714882892734122648504562130425854854870623592535816039229246268192058628023145297200359713979107117691649269877932343304883667013201632881372504119141523970367959008169473434222791399746434898475860294745482037537631656339637159611397427603088146096627037393975512483214343275497119712745124294522281800650422989142740998889937274579928203001940041256123135470590344852210835653166589144612250643940045477990897247568792624339598004880323865578480725340384862901702539306014247439471006344468641013398817995417146362558117161991372984787974202987268650008834913208729530829109159352202240188809152684989110012626858879731071956725644795190663919945137879900332167775780085676380895942986439752337751966834999888763750376341420082846216005409886309520695227862658241406729414792667410812641194198548342520071418242410421323196517236122566413810296514609032645134880387466096028604720837347251875694321742523955419036513408705235389992712804938006677355664036058578492059894373463574051306792101008112759893193159596225150142071864541431542192662999155046828871216632402249122472097605378402162184077344418719465913000924229982222070699649002312368040983520888377094273986078520969682465484428998004736174463300482043056457707144638208377606023771309396744121158604276140694998845598382629762970706705458806771406517128669215552248174621752442228395807753795046287846350059761007855705441715954597405273496293300969204899437290765160253843171608099798853761441987194077347724920225144326799520861276877089299044287672971858308329941403458219133683776369867540247804480535683129378277618765469851646251932797397630492563183466919858704068296172786785283787093661485074362205557601692305079171636572449411648834396526233548069673600638981195219234268539955815481272730254376116161696260788088993493692589888456623461619607625981910281009737647600747361682746430145570611308684227181960146518504824756478829192673310472363083673075694047269016530450202396833107205846456315256997865663795671326417282368242034278491717538913240619834417871963227268570632517646415881370548853695245642015290549201787857453516501989730068570668108960372861957076565871778037683548421606730963258780249123047552548512103710064996933604521244808073569087828338454826565759415942514903608628249112647220270101020673724777902349105960910903678222609407465786875790903020391722354829818318541081775153831181087142338338172164111296335253080444590608703409665179327391908403635401052337928040648050156771786807732806461298471782895387549743316743358661972406815418686421086159440221800750970621787182172020923187099946624072198205125364889662805571210931325141703934559021994710874056120630267552941776416992627097250881785535793557467195749842334298285329729813518403073796093264041679893220595662274118503949182541942553603821394295391382597884834569303686863975893793279414210784640252261252903458034537636026644057084227891497298167933403164516540789752210914224197665840632443297295034851581857255015117197118510324450877468095144321859688840927324585131543036499075542210200617268693671752839089937848524937170311234897306240323526326979361861347980861098630469832255106512222324661591291644446866909497481478110023557690072841942196921455635614474753887296893752630408387201875523081728474031212531170530941133231303098419471637888246154609287210132825651509808923585375392692259987119513169992299412731245272873340264139374765444878568380974231226133897738749941576389142953610786966166600105240240834284436314661606667469263305942401083621216037536263367110936481550196208167967046814078099893117572931717250638602667372465811179307757024497208828821836189054821689070333271329672997432923870311387360519507210387099649153258836086151591362469025814852264929993811838921470742806274667039182289174135113192806447876703794253098483651170395989845817931587539623606091183720600403265154726960487950852027532631512867376694932159174695092129622846279942515728459449474432574632652376358858384427414747037939081786065483169457794940787855017267572436936606817396866808121896513729697074262554187376682949542339286394933343494600442283752502917935891174453041387116458088918740863610209670189808018554747889942777121396576334252022876550643446932300111226878559298988291695413077486804095160694072645317471271579445194671888357016717955201790349128011148265639223097529402945938836716075762979824053396405152300133589055143788052664644086336892895983625505077322080594564693515989454317041226728514244319705099435664802186565209401805068888776705383507667810794225224061977804256831716481635788683758969036795129452568421085928549578077087270974753092313717422759046481598093286772886156397555300865542774381156784992087505769832387058133639841407529220228841670296555417510468589129857989320073355624458433583135612645632857407572165140616431388953697092752127663837155850690257642651736401808146917533329788162785189630513768056295250257016514715195166609555652939700536078913609832651379723111145699961382269692819926994209184348892513792595779598040863865608380119773286023319237237766803300687658990083342797047802404883365016546922825416159745815117642758600434950838404693854160318811349853995475846666019721474208284534293830321523181358857964821847337551854469586344420222082422888633074336670890017934078912302971892981760165290840684869015897441251301212586559916324010198542753380563045078153445608258895692824540724487889683485167687577021240749945770593250249055997336354575054676152666072402604571437116018462840499265812266121984289210905267612030018186634298722866596762644217869829501902410019449588018517387059665116555594614524895411276122022317770480879040929816001057770542896881318882514523462539068985219273810633821187088637025257441487864605984311466436308707037474521204256023547403324311554343251214239474985678434496939661665128027055421123074249474064540740941137674849916620622742959785822892833826488556177529748101057227850599610832327287034043617765863773904085017905805964445555560846262583430815590921658256829926659549111795618745107923995060813836666761202722931864551508933659512801882420294085671246415641556033078590669884740703441163012014210529540025151476714078207332620364070824817741362310202208954829942785403980427099279955336830497304652692541875272944484907152609481391764581362141129241083898428981815172519292996318725068235411067410239550739536621322000072696552872476226369119754715520148101703871162555629377635864515121697626886011974700712348602371530824649289138486746258409417800159604387103663416845262798527928546511586407979277903670015284263507837597301849447630124219845925405009123369398799450377174891128065513631468004537392271479023191548921431151776674379625655219016258155844048587091272802883527027432405395675657413494356987250561272315572350169039877802820556774612971249981435498033786919642137938976295160592213953052152453621986231479175212840225436384027366972596519812317209108799602062257750004499914593137889684486408208359869723179612088262895990528135179351070406763235494568028024468426955765090433946308438464531844170170673106959751920745410901307808007034709502220935225758765145361124953348945458836484501870787319110879516242639261623346890205238836363545940316480587593731791621983529031014641338759707779105585429316276848460348217831473946350297073901073561189440390673735567516299559215455508811004268829865011046553747015466123684684709325516447923132216465143592432296052759390354568251046887408889317438344621873121922766881911776710376323355873259643932459187794622820527949781140904838038316422347943202468594356108272664682250596248259801410284493999054262153175829360211895064852048142295813508267281990369133939743992205751252905334328999499237219198583505596701104344289915082282333571327946602754006641964720378929059556084625289727943474451249420105022809304647595393482173125849212893729010475408761038350230322330657297385014919795072022759755556633580697915696716495319655285753015041054955601542580520523072288040972156129908495050967167349791125312846231873707010553269140902268068105289258190361440419589256613697151501432630078142524715415560365772440119082326486253947557611392994881593622463917241483067795535723497902644182365732375413483611135342450109698536198889896869198973585741778748347183581551178312804471498529924232757442873437866769714620950502301677057578999519570648353468959910662167674235952999206671843300101282317269971635227697350875299882212702505002909932723610774311563386920235128074993561429502569650284748226246007575688283837354659162679661857288944648003258435826926152469527288167239201216724009357654921552834640665952765863402875736259561047692272698442080252818445272648028276912290139672715164124938802960580548195370378814304352577867163404882541663788994916743185646224845927592137345614895444255609130075440716069703107915130448524525713449592389730406817274557706902083624873328034337195362620385961312073167733235019260688899423279730492743257053333538781292743951256478775995497703351349901377288229924073075264870026383893735994224589667673536258948621193829508950294734759354652172286365829507327907718360179144177583970800144423256178173747670383495911265356957097927279847158273306366153237402936361399880853897602137056883793196133330334771571123130283238343982477514039292573027060727513785238012501356776072606941567655901889426585269104575032068609513962523102595537740247747055499236367406472947230004874701190262114486715319084936002367312060028094190813319388285081451514556475129983341170359643692951447611782307133483969775360109384563834599114016252717049627447680407369241530633569745048422622136838068403535218443519205833764323226355783216162487524174020608367203485636481052996596760606248227045213217597961617074673736726182301111334178135244260271627268713494751482211747697910956137926531387650332094468927010647209072078707481310222699459429422436873033142583767711169043235139316994668387094882271711096802879777290518522470920505255818430894206788056726245122823156688008804255421348218379048352650324570332423530034389210018544955663194808638171210605657554465199279345689473197595698700245049785500402896273573021426699677503437507151085862022886464674135144793915054188083544525365396786780079645552672753880992759655824339034607633857799652604674179433867738110890499253588147294930886512475305321349243266175230779817033639489411310463749533613497274154113134237567003750958348607086418861177013137686941768744558189388524021291703928124620071249133782126284593998479830037709783195234233832433554762344898049817445188909962260584045321718054561125715452351612087636410824427274703037799875236008455493115696611700259797493127756768462669713728566645559779610580539840798614639068957666319737480713678377388391827511275587553139571428424561686958860734169089511839782506984982650762918925931049813884447827680472477664231622839409251126949262672603798900223163457625640032894794860735869505128705569462179247984943005366657762118294794251566740284746775122381613429438472667835512591139688934365686636926323871580395838020326334836165394331831337793814565815745982753636667364796169512153579825820739190026770073409072739765171743700996564072793702594876552966505219536852817212924543533684042080507526316980087442512622033202723641115897514016193854180449375636035991614441317033994817820353078682621577473280806557133319547803711793641735386495880154048390872904005886863141010044963062701007632137530858176522894242044843328123051291326851858413833042714977002494794812431034776672376126282783022360860505793663437360951987036039419755221245039245447350269335390246509163363481837493316967584553262857264711161090442857312654334362063428254792860154082646380039435154361259319720337594999647447104033254150426065710054683716557732914091088136313596533235193799856524767617024313722253680874039445014711243520037903749928732243181815336074839596330529350066917867281155361716511329917327078058991326582907925571765162739719526460208623054426674253988357810445128720071074103039495012793820213987506942203164530005198946006592755077915745553505933016691316644206448362763276840324715229633189769024031681072672001730754738317301593392871203356374246206189997268109398675336631687418005820119866913583149843968644900275204397797741067405810607009778389775977904743210102510073342117280369168692461376248028173864102016387918126272894252643318840770839680993311757082898885740534650828476867829393338310861242725451860231631293931443782616027245016319832252568345881628639881634887174409924063011019237606607556627203987754117989294265168821138485203503311088777170335220126553802677461558637361851407622163125531452951834070781234710039290630368599857221133809861624528003890244639770284844390037148506416281497259980230485771683800626142046567875023515472999788380560544847118315125958759188490828864227179496675496506592569345924643404944980438919065578330726947149748363967693890992580092834234140221029486247697655782404622731796710284224024587217494130204332731353214520136799185270096245861478080566080405081391585813992895385774975975563850455221292008959684908319250508746204951669795975810214224470022701420743605607545956744640186643146697736064408140303363497882424266185484296520838713029469449576565793330395601511332598437668112660698901514167862104242346694311424247247497751692749877592393745468223957510854932592606650570087346700936667607768499326891295556187959461113321297391389140496727570596824062584015976613850697669507815323860863201030307131740727695794217676822632876980568138467352308345278882281116711633217714161002850774707767207478510358912552015870384340139100356590906490592079729874468259731152377460658076975158145518086110581105393955528244058848512285049940626167210820221018828279191567668270509744851483237558908670933513761076990209770498959233035298206038089007822707075845111811302191115929923180808228479111126131748534297107153948743486256179862937464954231353481142645117303872774202578703519354835701741818133111398101509293119453614484984216713221066966239616764028608816414148332122096328799028680877637027352933012745930011151243148138417638563940393725548243408739072001323009936144456332909769743591771710442590410293374775505167135955265615401378494270770503299912697130908466718310172203878432337720288113026672168576508982692171282267190081678259115074076894898932931631233139976620529155386755764875367715931165866255474899589499511856581358002697763625831366739425202315875286373682104095478800149265410815201678380700516625769764162977777487908528042243713236797889795715692975315123597753202373536181639225837154271001605251951158061676771140301229677747967038994731758113879477655185792473678355785049729993763858285709224156195116742883764087620983621314245173787893865197029486684621021237301554538781098105442801783700401346652881476431450782765145331422876906678773769983690418809712996622956187338175210081283588933719965330026625661884761700639947434297243099531415047141088635717237917725142556076086460088017066264000227040882810231444480199541525685562965181640843405365507909511284872862694818082664742268556959703854418347547044118609176771465150799060558820376348285572908828164423960969079672171603083401308675590037905616982333121277687658707545936395908201834508493923364965234517760584403263304777599474278608559677722829471932688567090441321884291378603693337268841503013545793711746829126127343979789211825525572864911837316767095668581695008860140065298347073159342759107764554904372564308016861289126598848935293518943774752873632247086278705238052895537010287733806648108427496794898576142098499775207377095990217824094733633898797063732882890214323050039455698950554762752591494555514675607354270618959472326597423426341228538260751054089064583254203243086418268592125353082407536141591932495285766312561745459522225857678245822414450086315496087332901476701158741902392158093891519960214230902736098065199182310486775252970084540266370406373879872691986883129009476373481357613594256512133794338856647118284824493201089511267437977249651369503128529606018293964063084925471826287197755848752729784172452340545450346109866204332141136774105505644562684240073976819101235541045290106637931272408573558287761488853228335675576711364920691231077211607342407432833669372064403210004057536257168699693984919891083206485956134073203633604038674529527675906574557758191076304586578351512450255129281083442071155895897257392843126737541459713239104530117593123126564338737949872178111400540786722123095477050892585587946031113061768542813304573081650890885762259444365880321713874613515306848397781330197850067598252870289247506430807424709830850530704737640949464856042421366263930044072293887243770117719387642374024814582554638322439877833997196217637653357231482909024006320941607328641352442124293982947489285855212557161662535301409959626755632718185698978335098623507675994932390217813876086669651892329516502488472990092133526731633199770632556712943015847615690410921279361956610922210153610701907215943773829527864691565974302575272475751340411295681888697161458680798910470924743137843292589826284902873530645873939170941823303111094799748540543284593842657117473445238430766372882581084552742850741237932020331193936859820729004509675837624366787118120852381372053841755344916627311663321183874738225067878731100029162185408694643719171723704187232756587812414843064741843738100623364210034377559558664220717493151803030486981948758814250330687124046437972810303477027674441807933291046148815219663810153090551854793265013776308026865200948211832737776425167242376574417765374177696192329355418879910173111606692744252965522722875950506199893015986919615701606279993559772082632676222365780293710977275882214808569726061064512077587396826600107724486368255216731829487608550567731331542757472579090606798676954566342767091031622918151304688639108310171006145760462820449072758299665778018075975930394123632761673261948100395804541686659878236761411565253996607791547986891204863168155203585707396266745530649157287938841866183621298211903331185205510910746463390335977559613154457912381473430988854254396331813430460794884141146239361376751387611243948587007064531550391325622431011099931394997388699364832712211946995283264957417978784383384324737885942474078777443272812118190301615865863147880941509309559271844730267493267427566440094083720404285663133429909342971976831928435188813346544733893924322644404324429696262133561724100044399131004280757406947088664194685055806342176179867383355800321410382149447637708791075701360522755339970846311006748497887198950720277487069001945660142914547203479510114081684078958809489260047242067767365615919126698346298057812051788981029796648666364066484964019616592466131272420977805120510504709537529733689902937147667259321543162986203454704776729771138481510717004403864292963095723191466517685818261409807486182064445895915310432950300491370024508980334035790319237740393279166147837879808508113704532844095170928126607023449007916433900722639912265719395177054793208637375938530599819770627127811527242176860961567552681151258266977273298239663943197600220580254601188053195741904457343831485127132616180368101425676243973469326378929342644531224464621520370881751002501185559520042307843825520631629592059779970327448701898378443139028415423523988155968347728860249024472891765714510595979613566754559138966697645496401274333896887139656716157392930066774465731619383555274801965424998377652316781420939997483353062833705592480842838144882196071597309046742022430707288592435963353780455855992985085717363821562425903203550849768575861539908950920079212757930857174136211662976126075816721852543282361837831754404405677488369527818852316037150616606202677953931922405100469763916604537765487603871917680273795811162559708148302104636200359100867827008713820345493934011663553717223156543801324268990022170242754646651271950107878806413131520485195479980708196603322752811540987321791333959427600314553875718861300859617926709935040103919608116724901751270222659580434637848060738561720503173942310682218805417655230623389820434976676033602269398439177980596133449496267391662716509013369623928222011181931756297317463773256244887586618827718315159959248123290997981737213528948586867503907883203157354559799751093347893353437443924510809886202328015081009708858827667100587117224605870294850171581180276606794107098736303359011386998228764519822995494071526034544036712519885897490944164037573075729148480725327757863741662952436431569118024503924092507793309502872789321436373877268550044074590541977077918247186944027792358917499247481339770163687860822407018982320251846886540270920432814301543754370738022136628967810618161842173700393595898474209385899292303012835765113432830508915225154950794188815735151371691541860367773575854473361409652409864693463567046259940292687810856261304681281180081860698023982785010297415347606791615709266222634562572426441393116348650410452215245890264134255092002924257057497716312538539435885747198010381058323407898768890419758090305329090044143430902515783961081432652726158109836386824668620107884188293887873710846291695492948096453393270342474962080123940631073272415832919614489787831213735149375976267211624860808662437043329320741707709247499297849127021839955817277117131461705985512050432123547745270229352854672556795371344787225411786549807908937524395048924830857854445224291020187731896243142746113477975610932296973342884885111382021972807612360912834036278535881754890791057044707885848297680292267622835775946868295252624079883177228331553800015176582412667870563275120397036262372169189264481919122006744733398122358652454989283554385760783840436850138499274068514082362350726969202426219454869918204815728331874744879498286625919007411734145581640412769469205652579324391983433551596601416297540297516656367875123971295665089896439850372724696950302736211449631579866579285418930743104988993320301074091304271567562545206043758691028071282690096655820770265785155012741828207519360753527332602793469432887133045389400459395997401891757054176619770841284950249673901231907064398002812189504165486188093538679406626372991474428062973305568472136545810290544830300878215980852441054407184452077517876107638566905826971767033744335047205987507122392919038606559112117302305467728875278758927361965690827423510879404459504557378631161126151807788994653069233006915142222318282005903687267650756645933369927816889986541983622950430800693289608696016691768122235601393211939671552550361277491392376531034491193749494493875258918232164823650019753757424073180773851226554400848685675513479403500181398870002090358079822301424186665207818785404674825692886966395508639830129488504007341117566275380803497822119757911772319562219415631822578202582463261374141079884126151944459260025679116982171632760089739016262136112644318396020874678759183430942605046564442788303667724051290258498835277030255839030400163459803811622017640220486464631211018980936186091725762719765796955992781579837243743890573966928246574003290767231040552126449906596482301520210660949174643344052914534373094074713765313918319461449268029593711461927511884303964948880886334392899077142673958759010235184080337255748799580682041379533859638900880752699117940137496209660862065990855938810395435145971867193145776802162106744592060224702124828820381514035580170197936348458402478642391813010209992792095899255554095684910736066640721221674715642390785276388692816155724029263886593296607925092364457706468282008419600541694934758813917398953108082848381066373830697371411759505337709950586269407269449857849740272595456742097436612923496480213970008277819156536306561602389117081829235895994596910289298770748109586745239280308266496349984906895667294986096537216268431317227103993537625404213118009212553932590198446129332453177769183676505913205002388147831752490815591860195088532665088939766874928369393909107025621114738274210798221247532610750993059488702490342458577433351787001735327314774349764092657109338945325300568208565851611280481600426134677525797284362049684728511841022560326545917376120243681888169041054388169392832830488682084060288607213608133117562818614856289403651786324565140886720740598316085573675804919596803448391028666717572408148398830183430253222206899669571798787091927108476504591218901352635835133001100685694495245191292527222172063123132246646747249679550160941636483256148633077972442970366842135098207046408569849551182506855459971409434095497305313795896963487725561436559178358622350498067574315689573277044271682082901447865533174517845741957681394597488490986017817207813854678102779656544140346457285625677712928587593472622078316638125148278884964965447898028017382513977756632550336568176350917573986259855837115124547806609917751819267220500354062553107760361669471886910982756369209642838585618303705337400906509787934854180516067378076878810368588299900980062598393658051345928128914120089775935831089448879193166180136524502184022016648822465446681554466609328210742213349519298392562347862391389982980814324959591471889199046143108583943391658201566041389939610066116108549304966972691971022706049003585965667614425365871269190567403776924677486815618216610214225763930698372883429794742308930739200800635399482945619427418039409463305649903232047125212451839815977494106513470516121421543117566626840352724729519173541414025648181745803459309582201090022942509165693707772483060417279010834388257359573199100128547762787268052715550890488416867171555432244201989956007492492778121885976009368013259734989025457315408814710789607924739510226573894761450320387622636750203368273049000519229221829031495674545680865445448971314892575002871950396767242249483476565678726381733736757355667027366205939071987182308001524005546233191425757440023806416849936334009854509168384482097458496446208988692568409233711089540454572727687033418214996039496418968300418985070414053045869858397292338067568068742708838917751812526310358253496416418296353965892460095032787251667110738898890704692842996608359660564805886211923838782016403131415562717873215296878289431334185405907687740215480674422756955364893383510402606544877857501338168938685552668535996439076972743239496641981287202570375303271923651743601900738439296730680847078724688511166430405946485814003506036875239658007971139710523056960431096388875456481193573677946054208156831707758918990171806852116626164832371019348092819193574735766870371255319930178428937497027269866088250125598525853731535170936485895558165324211664694720499954783095102696569693911881677956765293031454034955557978515671070990215136233672042513486192315223982249489609368549465511637232699089381317563127290843079362437214398516149286837846267376191278624888459516950031322516005004507667938814098377784712968573561499023841166064213882982542887383554363954477272029091280317170006932223592858077048228156488688833698051727694171509912643954146582082056340225623819363299342255857616458144935586126441562432730068229936461091494995250746312293861490591518467993847135523691674608861007188915944047858197255945789517994046004455288437594643097819102315641598912166457233065956513173585526643232466904811971096071984021452327572092322060131869261253272680812756341060300007651051407799618376002362824581729444967841098019969555923357970098653464759723467357326823827188824271580639648390713504324905786715074229662469966479081791939598966342652743542996417967622138276993386186698342417726726709039255377791084429888421867861651199065545776312299595426667660418016397220243606712238988768450162666491223139770372418636585702093590303049254976973716018250605440835978688496485091080871294645989444490239538792038358581471653055601614147574451263319482493479734201668851508192953272914454064611729535273496840959756384786558934017356749543339649911131499435141843684379343838420866966911990024335766726017341847533707211173041548659971069175502458359439251472424159140197897774740520277933895269991473260059635020254562293308364992321290270036744118607871779768957488455181169273324471707862935575850345790790610015163653635251508177161862302360858350207521696702850327239983487752047347350407523634774470665061206556075601734005464676305834872786478086700331265209887156445132314586426061709250316857626932363675595090430707153278915100598636074956874178767088965536260519911240914456408248281660587763127531920242200620254403066405518706820498481885757666534897420765723179793975026018402705534976881916083454969301282276210560551280027279648119031915696331506977845236739050192890881827723312549852633031504298517616004752761779007639824838215058184006425725550029433039634591607292297072615959586527308330088796003024727881421553007993282142936503250427263378741276579104972863083324028327982465347317194233084261900902138883618471737065054029635852911245287962668586643621426241129478702733484963190822869642348186361998844789701323541199016798226270907743570133333605351668153752619493987618390997274586075525450711511859702276404379504692310785660153770216760200030863390595352711875694631767400935523269879458035304419237952953917307949431591278660359080319185239875907470613630007360983097526385020319667715064903240274893269728195336371423444771806901063679704817662060753242506446282503472550665523534156491726189450267596491687836415430402147229858606839109580578266649750137652568437570183568532663705517461029178224466328973853470227070650413310759840198988505140815593150284557143882964659710090660157071476773453950379558636283558571873259360612879577264558308349820387505309477702582855916005125788030757365830169354670010885647522663984141847650475822872774109568929348168665529409287835561013749456347214093287832131004922826016272410567878258122503829627660247882349655054463236322489842305082145570751909519772326984833501484071399862358518093483236181101961793183282288751608276509697052858682869521397486560097223142311437164896296517638248146722407939897088969300200817462228950710277953365971964362142285882851779284941932014418930642078079618266922323393096537718198149993933411284798780663716834329396838045540346649004668713445465270881336772222824818020955178389597472918358633724687993810698318386825975205598741799320798857485118116731090704474567988074405782414191105488040515093099934632703371018721352375395751769676009517761598058082150116937890885780580090824255039862775196624951655840341533598283778641441076338501350181993390031737124365979669693579068765591164737533753125704711590905383795694539615633778447042847662400108593731318260579824181778075002303065212270389500313247354232577405415908041627193835922657140419799389133943022907784012488277188462836161156766398647071132262076005816490507571227295698949584879913289325317693407004174696448998092922045112388105224607006000731213011263028583972216956043433704450084518399984423516784637372751227951735092573705248805185667065638547139415851918018688784038651208443840522995940623914850625806299323306727678417988604502062771098438800369524886605380332162198004444000496349992363959288554428279825577582063491625928027764229706355781270796198197377716357750735832333403875773548541485824944890554517642884325086493319335399747469943225408188154312774380684392996883708721009392204313326605684284508515937601511276941565320913562880253722722459076295774216127954081799896368154326725817221452229960016406570506104402105693146006907862274031992438121245453130662807104247470760252759017415606046028339605236426501609360871305461646035170834347638905823996576726740170435929748819863929737949433289387903351890070574308455251138177512498089592955052279506652282259884888569564527621372770496712908141400987149406410311372089063293751442100387607557106363422936105586311320909124523620263546885895370647826453708573609489750584203642673017828698445821474409746164593939832634084374148656209344036569083422917240983375921414740786279829584364079158562626776687500193332703945349385048286121656512791328038990674253819767588138011125269370811800032670445648804591212178829382754635033589723312135735972559978844864079795340410090937166488556540140533297777928844722065471177188011391693570759980493226123179688011877472673188433851198551185953539102994214192008575035424764412842672356671060950647697455645553189257110940270916147218844220573863859233583346155429364863815531954096566915596056023226774224402015276978428063346994801832334268780699134914829077110426171944099229569641597087152570365679525034080212627513537656669362245204921974400491989227577784790096660014091847710394039058804743778717598882014537717204426861516390169005854746663762075851577620070334170249853589884050577586510919737617663753083815480448300476755198808508451331901923288285765375767881588347534957975926446523915650369725813518076453217552445646439173678259440015412662171721950725184955554258592477862290824988788978043714257142130485299073551121306187708291440674542380340796817039434070924208484631802476801123214950523875390182472538713838156704498575896776907037772427405575817523738457220172757582322208507496457611371143244894105524552191593618559610459640440041569275312615797342943962783629899730080403587078326447886821887861888827941274952328693402392651245225903819975529487553794231753752663641369780386251122669369870674787754929468163635509097340996728435004257929702738618786820590908263276077794116350981089903230334245991704495041370655832744234032376680797029657339222859691933180139902837023141430954665101967195605461903481511537441844349887321287718260143053496451619209181261123983782597522429762686852424460745582859279559757754282822631906833310770657687246781769191729446707821467337730699674859094392082348710489020106813641917380929004938887608111330768085532124124320252062643877199317184796861135296276334130307904288797042025679251427507751147915360810167685045647606969424227537443086146380418231071477924624821444350070192475735810984619579137503391385495372170381211262770238774053484933316080326062890449601794690385776069924082622506599370370672147019843797453175906360797835954460426037116307150929641881102992799873163408473022438629307836818577862873231599879896340598816420392189247637914573286778844534452298735151037434291650364620865530179499771688411427220539040600237196786313123005861066328976833890496202803910816025336872132142110925620039237857075152438680832080856608532028665334052029216468129788583276431293473950981914933902626846166512699186550838577678902639145837948076427540876019711782708442954250798659647078735218265165030461225846018228195156903012353483736023032131762091502099366720502730721920054548158933631050372351102012756437883204316917102988408848865306368878436519940076185933563674100070921523369913162083957886470133663500842490067240674805986021046488666690249373340858606882347647212512179061979600996963727922571699801760786051324763647847147137114983073489568297670091112530477600660595666273409219260708352737819646562358315282667444854331046874774021181287584555714042044663022186365479060650296314140287199086541908001093927246891649417242854781237544407015988280930110195505886572433581542515146649190412175005195245369365008639964965907078073290083020231763798673308028805265021257500049239720637866140827436006999716933856190196186010528071325076861006468037866950595770939994597234080775794557997734680698664366035503203241032437167603525015775126722974196909157073939254867211063312816593054569564931104992417014558227258679690525648372272783924431034726477410614609476747722582073886617735831709480598515161511555343551289523472409017931471085883736752056787796215221238139171943485012141170873428194674993178210941032626325045484909492735532725953689183687269709451096666947353908090424469090612839108095306329723234828798056011544686439984979396910390757751083263832899010376536806582623577444626233331024515103779712501658046760616996666094141483680644546341759477822852190087031643519333162555074758437607566683816500598514500567096675892360050249219315674772453186887903783099646376994785337927433761438495508197879589539088329544023441212218353796120136311149917290052131137061256690118507093723017670672334335301099710584527845829427938044715204122924560577101564997965566622305276717081338536418021846889573641013570838572950170966685909877428797556054058028774152055573089595764091706809031137307461854232448879632701441338494723625987789408453348375796911921018228111463264049605224855800834707714912404158184093290603048550395557197186816696020312809103909957471326886696389713987858351346107491396564823777855362793010306352698647209606028182469690537088429682421026075909914700482545185233552164051645940737047956651562758110976864535240197200006121005976561432201609256032504936606750956029481704332102049237125072200045270920938756705932791003823664959038262860939573898534149727320002852959004341155223613009384371797468809060378859234782505294695449391288380618029422018748588433287658911213922746971356658258240288068221051603877431743484679859591163006928281812917600657841219485216717784475266567577809368963935428769762870502390236379986081484592224405140316232170310463731921769394161728067635858161079656804907097194016151394852695005662776975332800797832944897729564243090469785814059072359431720347469093009981109695883355525826668516354709975523961162854933076577801500805133247416507692113468466218826582199301598601715716548649600842318656629731691454289117513911842471784900134879479122722823942126940603612808510398932447773243033261254797883983637480496026936855411026856759040404251155718149762904881261223775700893946038923496016127067045041708205694957386301078741545275047030980446480530067142437681920737423272691733278318567396360569000751826786587035464918392957509032920446029311199517223403155423263674798923775386330244299519461010919111885746041365310509166379951322805298184897588166677577372394103044670677046535105188324551440356032184169801090005686115808345372924595692348910840716326508277286129009124498384570709677024637895826447688375727664496355378912398242702897649281489139175823069559383910743320848724309669911011577716637968542410580519845775742154785627974599910997041071253325754228759544222127914403639321815842051610797223379113854080643730843035497392412262194761405689730215518556197442002063909373618438832514870152949494922652551913753915922879417419627160426364728342346011878817017104917102615252250979858907673750063282373830280824377773586234988397809698358132302825684939582543663596261180479046971705662177985586406859467164419540128451043711224480815939242094237374060435101619854272840883361288600958636805130592143225103258988616646558005016471492456284455871909364739631072872821830953472943141735186267974109336149940525558422126750257275566136726447847803509912941871367876333412861164430914318114450462563297850762325308955793746235603250449059838267290971744467378975199124609261279468685073835171353666670433433425375141140098233449954024993755450952424076935424108520647878865340449614153523399012032823518285610877676988577878408716538353403287305755970033150059607911772206030549389998031368478837868706412439509819677642378385511724038025503508601848508852659572921451893492350498884969891760295662872673991324730741716281783375293714311669214087229787496552416244495122305383981005987173828355830903417477154689294805885579853862672759938303910326050749984238466364932287961614930050436632513233893909943889513494914010125482934540613610629495329984376474916349047940150139725097828032260101363622850334067691602970884361733509790861404124057524904850061321061107174800823677638111449830530788746194292530076129123821741536696832164405345391382673360030191916412994111140620549420280102649394731656027776690469835319313578738389889907826128582337855456997698674487698184706203000358124435803306719181865678982018358111809627057991835164697893017144786150125337160981968241135139952281857815687348520267692617736045133958907421874928826189075824352325950746307215413138650241710669717802665722703969707014772754370682173093915513174013931257914107739732425978964473479801072587587597520147963473375287318848044710223793026291550866123331763522966550477674296715200191767204516369924926526922095679397714840304170174597156321059839353566500872498759760102999270257042354156704023523719112006643553791419378134211063259985513917837289065157635001190064908859731437967495893495931911755170357817900012328774154023033382702363979509946015261848997629097708929653657842044087740522827090549568216089623185779757639468813166641442075944435064802779113004653532803000883759616614348912052747078275308521456251600900745945702272606838869821629844971971530595758172411718434444154493014827406904774646169814755997770849146417039146390213682774476644476514298638311287414306689599008483812003693919097217511811868616721313761362402557639859314511969532743280434056059014700221002733265286208864506978271587584904513918665589263203844027937413590055358893752392632198545207141772975191700127362364988962520422474890874367193716427266660167854785070190575937056399400422414062226454475305652104205122607680025368521761335562043505374017966655607402773237160977026968966213930203349005906857974989111224492274946446853854402940746902521857647109773117537743013291685234246917372021076739580218385924366107118838920814428756832091313573041702497486318955803641080938865116882140868874159336859848091737269514533430389951455389670379367857646286732097339537625304088021119084285582799943853135938110590970089855730763273838872303659717735646719193638289495418606055672316177556083546727448451018613847500754860435530214760408218116663192434458101469598303095335130492803300510936807914752327619491849437919823555719221438898273589023557181569652347553452482810501835787532773077389293054425727649734380838992488071433771391037728794875513574029723012760854343480148180873262173812998514697065297414019115341425025836875668730145418431597554342029674164194616966451029479982458669153423172325520001341512101357787362616372706400561386539748689052410335499113177493294578225320265876538301703210482521299573710625792082481218360794135402540828650175010092117775378046373371601484451794834723759378488645200576827820824833373835432957217558876660355820977068466089155235199003121421046571800222629483343152309686072348759524382049258116266133363601429980256807193650272455966417012639177837252983156513393205745666876070577214853706187703593473454360968036983090630796935267367955039953141490572012356965891881245157540624223117074123539123969689973204573833424503357478693283504543137627450453415561190199111679787331274103857486982514808241592184519971993790936764883647596783690988769496547413438601502721119890614731361666900169080828573768958685385075474735948338169552392401119449523396490069061513610364997216000067041368857839808567127518649547550275980600193857632323918073682339272545047593315736496410406249727124589817629037417362005063200890628712786480493629397268554076959584210210702559775210536233243422124172483049351161078775207992017751270922699449056295639312049563977129742449350153217933917999612262486239455039971187029199502549886773646128416865695713577099457937818151063903723529663780073372526194009485564942405086827761698132109891464874406754211304234634493894725187206224535284224746001744776038905249303072338009213140172381678366876524079738337708912908444774226469059752414369569248576707757616753236946888293563489765728808416375192979057772883936872209726035671977094272282051530589382471512909601121078789283163968936885619962920076255335679399079558881107439088263575093897191163832526469198804067662092381694126420892724464364475824463252761508048001705245667227119358564418587545051369325323393429627560702696872265485788172247002591023924498866881930618254010886441823892038811168260931088273295051316403904453235086984229527508162730543770387871057354567153011728505319160718969938242773102663177983509789508033676409000244436627182749584201727593452728439384381590571982408984093837417451490812693211596032404604942291762776686684278038937016873150551317284598486686083694404096887227644039189524337798011502211333419365588194700402613592733028230909576678676219288633168705742245351083812919318342770584194476257819234269902769656857140329663153327092562322708481463773295309657762935462959331761140648031953319667824124870168965487547140520008643793532395652729436881143797175381628102442795040413562999027798971250602562655083494346218689976351289388002699035438637855861163131856438171368495998877683228922641964506901503785459885465338846399510263456806518463998535797240684303839020311610865185464034941765295201989351367996017669119876683155929846344337340406203796262066903588903450690830795553972313771110223250596811523867991219519290578644481574500580710454854138670070960826120971054460033708084746088620441567484813042622448770748597700308916225655157902370213018919062428212876697463290199226236202044164913344752339419805196255714954027177135118773919248764966686949687974048167613773852898503384170849259999886593707925772094183683049024379805853514325730987370930915988960799402239459366974608957164097322950096687154360097002659531577840929355751958419048200883709574066142777792265245764621667812952914893740202391233873959465157381168759872460186723678085617402237608139270180408204588914713264230360673471947194207768810233611723057617530661430159599266746200204441518025646420694966177644496001974374866879820611315964509355863139474626507498188576193587042321791891098856788635725078818011720541608234603037160164401428692100194480041602645263259140567298083440641182494236167117188086332574591087749834635095453087248461546578140981133497615683464555134397625322788139567470397366811239987060208303023959070244042014697930622862203771671202929729611204173084237143983574722655456964289694747822154447583254631943927689043898346217812237726395038228242976995629109618096388961502253330784646375147928711295164875170808295505763984065517247181146407494395835393757060242086115967805472850850069442524481827412379649748570643481599509592586117501111680727748113834037131367007816547341792435888876988060165899396005858541366794390986868519258714736765549565716730999013911339578508865975744383324153841179402269665471068690442221739699408470842484420736688852154167839347382159493134787694813984053164979837837635550441934158575495569168414013789907302110558185760959643822002115524244304910560597625952202704212875832416551303217931837364882850327436504205047599127585558267718254817241904998400627512586981255480734190515675621955327314538469303661057755235579239333543668833803889968482121618090210771552017480238822275216549583486263693110423547154281989579471287183195318558026934417003697467259587137244842871550939008205414362085660435083408197321365114733250117581584796752339923667653117611883358480917896065485608895320975592949609065733122533810218801409595185129046355207088242896603452900705505681038115213853496044165828020680139925209282659418113082698445942168721276249152233933506126712959578045273679304305575012356071284944183646023649553844085727546904381948158539001203962723114440432126290817414302712203698314234508311466706872085767718203856440365756754016321489062313539763983316745321257752762234886741038754400587662582272080166123001817918880596547769948828853510447113111517949489233009593572266918261867241962329070420332138510019612899310135936424977787499796305061485694722834994505649366894465677969622951125467267318409558764157727607787632330457998541585668215336632102032030589564517532094448762410865957237524149830539571427058799026861853703146899057508520196093977806918643136559731083025340345033781795936851280564101734107020098916268324933594877198331675810961876146435905959034269354469063998145080120394991053080471659640544105173885711519721512614485307659092462676036989424186050538888360663718089676489519072764182396421709708257394066824004062972048382332477630335078860236330994140258594722885679310967683808765277760393953691976094568723199021500414918285241001957567088100228094358762958309124615378811577989446649557056373504415262867677856532578540983609413168665411546609783167576747013530223663523666290600715584075145951440253488686761071060194752642513031106059009350354175846047556141368649656573417829829826076049783006086875110980559804330967501495836764736221815645077842322906910868121728311052664280510186330319583109443761919332981110962526922395852281235713976627089608201763494861232430452179875242945652848767288705385556357012738151692269560353660754453204999516252519255744128333085983838423368936656145178076100218714000846407918414209569018566357361484165194889938016754827804182216764261936004613666356889137992802951738904722154315388296664585219044354984542445004836693743889902493489512794700361672059411418483432927256078871772668263525808477092470643935994948320833055136689138401541443020080682223339893419358746372800479516952859936266932097384246844348746732353371377909297143106169654372205007412510889521273924390095201450364758440099245379149111372688056871895429583703695345725120226597250710178131858430996132712215261375172958922945196826867256374961797942593389242810726031591285313324059862925409840196558039974947951411659593660255239204870452184268601105778937331604205433781492099878273657635297017011278042757858586818792309637643051507695684908861357911777527513387152269620953334977435865822187412706816844831288654007418182517558952024983768784592482663913430249623437164071766679556666313657946072186972961202145337210792349963944690770567866158848816170824549658133260076464695627117192996964549430241274831737644457708081269484463220699364002577656580732010892926287864308986214138970257673224131667775595855174136069125203653183667759896656118437807462407075194878571475391835783226423593687430238064544093474860400904699364456335203472675670118770857577239183652108363877131880961021176974855066120066302572449340667143697304718175426997609666977393310040000395105376686519431908441796797314529684924707773902440727923166518018661787980571752007434922850371823103704812860098573869994389242051778035006745169600427664127554857662506366310342271468904036254189816825111912176593079531777886973124602694330789899163969334820212241941669551456532701111699099690501734758625819246576131507231856005609722496508919984728534237196600801551187351650171845592048462157955384975941472632055988610017980815460870993588421701943673187777180957493767780921096078351775642552833926811062434195606615703262386811935472217131394277343463875486653831437886014320342341259786144564279570458713870277087298449094733981761543621292279826317686772169325345188479670473283208319385516232654769498283675227511917756709808331620249514145765952543755441141972569598503837276845267480895294864808884878920178582003578496805769001924963012412621887423417464565991210507589498206290668361709003194114792710050118339124947217240695754172406859199790813552923732631061949067663739982963726543764670776148907658068695523762837004806145899043573637962276482673713067612576640909877789449380425556114738824051051612625990587304762705308347681838354009074203971568028757721684577280935414224596264356394854795665860107121988983356393838720508306647098802828032404914515386901765811023018859398107177539142423089347226952659010037880398887864557242845128653704299663894449187745005620350820439906923815935595922102892379703286175728441907382791320842472759481891654227418790617590522142021851958604006294540877473026128403429539671152596387643479822069768932970764031084516917829376528460361465403878394090186706506546798697671063857526604555882935119573629561267162854160995027232345068181325350854025676558125956402922897250199726969480601400875765371083699473530371273029340130072282931124305134158534586812972957104462148985572722300103427258949081479375597072975840870860865971649825034429903342419967826438233696743682720691345366681785741020536728641603988942376225913511806466408986561528750735165086764302691179502501158519502148003289672200203506216358082506740332516774065134804112523118169276762842647220141591491628562657997542226127433770259308042313907164002800627682755134255143035081982308050416584440650766652444648020496489195838981186777027460193133780028332745758310950506204652521037460764966854023945801070963618587647243338349218302189135093532214535323187530204339179519160188314365923573545838699360520299704420738466573562462189044067933086248166509461326795127735466861711886426017856985263763957413394659674579269094031645095003961382413221327114082679759761653964416726349396297003708140470303562225688338185299667502476325925588663894939447899671699380814687224968446710338037732305782233390234477670910090963155140235047151058170391227372792310743516677478929361710087378193107281749480265586026284002183526322957205379661550814478576505459114585743940586733250974804274748712407377019872777135781927155023887555861156227880439891009626220466420037044212538005908225868323667890315953618781363061717887233508465300423332699133070586026583506063841063742110907650952604160539609282086887004627711973927832422692982382507481326931074271955598471533459036068398804898421952685751120011694534118523024821261773849831020971084146272550890368758006262570617432712051401712453926384218619779447353373519909879907500447872570562543135303601471127389422423882387425073156641580540909210943765352785323391330335543452111143549804558672495781386803122380160421400232342314990932337207216891758256736634366096580022913262507670772304015688366267782358405619040970787195687723095828891328214748525014488151456317947427025446056271573267774144096777154749865894119594942927687858359613112920930758950009147096379316479602628206632885921781234113494031594988693867984556680571692729308588380083913781284454243209357538800810668155640284432859691122759015109041360823204625784756495975996345383887450487094277637108185062180806138936725807237098450482882699280303596840912418889837701532499595566090963637197608482393092174781291421113441490161191437771019075307849951142067943333094183013482863463171797655097480741339808258674865114262898090140733721357660423627415656290804482307251542833452726356376529499449958682252445759253877390622244642038735822221018863041081749823319566887049208079792347673315816076558049911099840651362267690379828397454966654355786653902943844016693474020110342944759713227179329137297779779349222552211836402629488708257118919854769628422467431927605065410903854036699054894707378788444166816369432182110069283130939266339018381104573902063872751103923399241391896393935628861036066775821482809341030437286481419009447298779996480850754502923144306776931924152722105260684913403798821370102465111370038688454009571984849034763572861106686889163078987463347923916258417275134445805269038377794992850059988249673031039351071126187368568836410301453676852315704633275543343661978314905005426539224680130372635346168557162799621421137646110482329146786594077463424397737421461917872090480365218297787155861541076291030040553372904148379038534083169867148691479214530248173062140547096351062585844479697284571867539721200683484149536993069028927467306543524723509905533309189489144910160576841074399672248150159010119490977758763508469212561689663497892889238249330583672661701288467406162914900887940877582956902162302936037112961707414726548052684763447271024484814500005166044278231527628812640895576505178845880009588275407039810227742223304754274823644427588538076424467353505029760431918915585463649086429035296433446278725158694174300111839224737528616476951415935054853783256639743560138091090541058795253843326196933021722367671749453137026348737906977678356878014838711148883533053169847581105182909517190467337056599413761435139145775363270519801489066161053721219045512524802561592252775735669732923249978042387726654656226054348014633797170624587948213332258616539273854284407041749686729122847014543721289800391175757833009809228578369031369506356768648153115822342292467777894441036907013640054126223589351193515904726187892171687774990553755140761222864585164407035157933591997673656266977918972425095100966031410232659096316785779016080855960310414859775216094678616131176437559067589699338448168754020481941227903421600959645218468894111510228450196763550124849434434654906120943282833961916114266356772081588430211760138393574103591926755907028813078290971735419267938423362540558116235072391210322346648719328358363673240668832916953516009162246167943947949651551135840721269316602916308398207717092107625313176083494309199481418459133473637550939420649141156877327188066082766815052101200974163528089682241020495274983271654413486289445994495489530169341883247085671011269990385451505625449836959516527765472510375821227160971622093115654344219342833173925098862125628290225831350620867597404137884322985629797521797943408430645368229522791021567831105955987087245314651479700165835312430498658071368206494001701601238602783050745265735501236280538177923484866729409429833535779946568770132923755954793799512856557020002009699970338175661512759577063533145856806931700771606291777567680374317768933661465027530234205953997809568858765108932500045721724332456060990358383626035377501543888699205511199171345085007710972108399218726946420937637035236055132779868344940975163506036772807730132902648104226983411945216704803103216596763248881854518225728425335311056837252469112761156185849304777378218426107839641144307808177192504677272748963236173148255119888733863777723722855219186928956203225645110125693022524038895890321155491825902066971798639752752756381726891558363985066587694966147569116680016081184852610357884623475798761500822570324174430594426006189973707506787003357136665700972734667226065609254190739979669700310421432301663395980602664646562921854646789276735613114881488218446509752248319171407741428649365852030099462366045901851925226327037997851886333002968514837967887603032872475104639259461877766989431420359528088547400649509455581249889878754949490932980905102568641338958218853404742665864974630286220773228620953465332083456877321908564526159690260154494055564297360118666939598411930546704526922347168993474973480623998021494965880075491566204108367630474437837857175853963056688728516162747655519650118076332528466789694965002660827214183985338476362763824431662097937061436783690290977159477936178549337196619747236522352115910915143151795601636381295823372799710703318893980727038490288004609967532364930560400302941615329781978239017909550939253990812335120205357183464925140414255470046200521280159420907098582291906120327874882193900537150340509531380442210715317057689217264389897294153708159250206288781838837034261748007179366838893997022292120051547100708924378407112336857857141053714777600261932289460162204404070878958061151385606027093122262051901657374560403101582511872678784123069383570060065025102100885692830353958865382702147254442918879008161088028328864187949559733081876976516668070425690920069196264299665361752669788599821737434120644305492834994347568723007279167069308259354272075359347419717596402501906535452178843656986162848191246269568509428667024047339161947381704754438216111736035687682104284185941649027647733499168859299684530510563793341483725326345512563397400887848616431701816753409915266101707932885101499577017774401883137246190934997531542305676110580334334591666972192221449181592722352683094800497608408841489558869957563190498979538424144378797975988575839190511040580317254629154456865201559362885137698319997307106759489019302547433945243297904643113078999411217722696989524421974015392327918169089698959955585020701359131740746789953392975125853016337306983975837785294902604387951419710119889034167015830439891711803806556577526035213821238060761846956242626215426425992018784915861602942569272966709085361391472000270291231811462455105926439120259422014203817213122174358765541249030209685985525084097626088359723802015652934722214855449939043025682642655941893885330733956258968902593475579582764093827107322866614384862735805878982327118037165568862420219232872092664066533043602293479007026436170838335035584079189659311805483898484954336163160944073246826472833813136888358817782155016049379900720815517347380586500162232181749640146098148094632293624123145441488259780981394760136337643215986500225282699065471914618211498778401288364840583596139922165634897820756494452030624364368765268380269850674568904012143199695400624173702079274665962777395236623058538015969801336676357660945094211286888535041410717057577671483157073668802160570185332325678103074842138467921477353447915698007577464639078489238412660113591835404052743400019112389808603511154918391764609973839006288512743969560837380064367039827852098966366618215250807482484965205718790258323201615980668026197422967027972424938875131884236427468607255880591056660592415860775922586724182900387437790736899570776087926200982642494837625794100811011000693924112913702393467149292233074239524974376283133187630636821711200657330888916283840605207495876076188397209228976820003362284124866517602487947066997263513138929354645422239927444844999352644250939816135600347264971799236967407713973544425962595401135395406577075444383743265708653037662306957070697786239404028322006108803879129573298605870904517268802431977697004684308634852425648007677507703843324056190714353120301262436441893212722830628144895460157407311242155737521223326011924429367508603121197853779720093442641559051846869960384079566446786373752737153158104144396631478560747831573578845756523865677148742780816234193401848324035743703548113229020122904206922847999391659157175515926381384766197217896955599937807819755454761551509388931516514761597033961958801612348394086234911569483651121674829040421714924236316149762711638753314195387733379068716308609533646651708062346838024091742834847929235531916391310095469818394748215683797200275335279584378513993722247147423661912874759912416536397458200114520198679796779588976566315976151072393316528955638509318215696457975943610205309708184915787610262440863558237552166994108430227200879555542087358282094387909754627780960352895225675776620039176343771253213640965257576157924303571721528467294949468224216961034941462520933040611043347161665899312632893883273423033541597825996304391927503187287635355092590952482729242303201161428898453221633308282867673759602927982622904962850940009203553833672818864851826356153128060512149196020745856446777731752771794738715265863483922101763689617274490150570345335784155943645448439195005771043290081680182775421744782853017816664757754521455574006841620860952687686028604411394643377038208291156837874365945323860469531433245252013468333520259289550532394176192482174497499872569769438753325798713257939359522937273341791755483158664555984417256075504570121004823369542279138743077965125954725588232136833108995045616151472009308309669840634673633702233636752240217558978523977826834344989935478556173275726941943643540825194019940741214932308898405379103990163661864445931345402584808477475305131510710491430481652906966612570042302004833018575069948427175244952166904873920854809401599119194219367773527171816744178739796130693815500502795572722307561123589789130417896131109989803286448735807636425091073902760629767057656700014573046316614938141539850822467985803714732190482914717540550692446049888157594475244228040585952323696845101567482408582146643896019843746218221671167510615636757125037116014968676438655913928701708668200839049325679903804771082052241359869473749318025892967800282334995206601370208803180163222011116493796903744143107661859748632068322953355476835854937855259071103491858844053480666923058560347234824391164295214538078409754741453324248313507605558963743649585358616926873803122156713689807366702786690131204008571178853265530408594899176550617106274678081949576680330092263797224034362014823099324253691269924570366192906640645702732807647061590670668936043851003932085584091725833688725435099214068074330823002855042464374145959266602169543115163212560366107562444135826083549415889040449238576121871263056493385174703895848703426454796543638501637664240314524148255966557189133768404976739822434503007971984020862673550577805772992973249259661941920225327151570601035781352628019943941764129410327429398495965797129688193871624895295615872113992978488901045682742076066151020102686089860493252917601023548879174250440992149814687593191006024661897520618957001573293414516602132297927824697870075826099790146644375504765457163041918013389628379905066384330708584129001953182243953358792805472386319906170533083450481271360317331857974447597506765874303987037481529174288365173440208282882990493072436926497229044858749400388979519344712234067967755311494965043025521991625836977368637584731304064007571305820446709269433026628726991504683556996023986002913164780335988239737154061802987701949277888529773203094265809265863833371590850638264594744882998214734562181948224904481601090070344132202570603521352667654294236773644738079771155585428576136232315785440457026081350058455391201845263045820534951501908172916855890638932335155064710655118690344465658584443120608139298284580310444496302377739891018759134685617671228370914546409851569306244342100561958662546847623877013446688992137545420678117572441660609035322758887412354860383593013447809256210694195732241784533092587749175694619455900103974066297537557475682443605625030960190705486914752742262152974838985758024712451936193660140373316552837508749424382677959169611091433807995632258162033084129891558596457411290637782815502249516360646123165385693397810494839340006227944342545193307529748972376216888136163287013859936660554859078415972178306367599332578544209966582948440417915427490757250157744293146477793823941311924816774787391584964669751631308015528833830659308088161366443862284388238889782828166080183070490752148589373902381275961662984831221573206814529717429484318140289446593493729768803956616633317072791603710087127812326744950205283750336518943700147034308263470655124892618170291294993027691747351006280946860701901839140081327247944492844388031468278467270488842683331902550104492009253169307480358231019309195536035243274750344275866957163320091667632999762838138879632043577963855215303202851656086468912011901655538548828427086150885521484300831920360629048682484724462579161929642681360230971753530809620556626801740949209404387272061691853820906480578682648296547309896787203379561620699456269280930447287126854891749630528258307573298740737148359300276603179249313225621788938021611010479923506147893046610979912999670598243372645687018855458707724692271290733569370956337919969689845096088919565534837829442012954640554145806484423921609496352130035367148673014532665411392297349059972360362177696989417961311180743818126637220712088484002851438773022347625160268621645683455323136672246216104433223539573966665753796914634773860096435749088712824800867270235115742065524104282090895654917356835310143657029942877507593008099770879881657297518450148506585047410254692352340645291654815220445635183175886175855675385343350044998186056084941207513236901655711260632350454296891346966726277086265034805504446527115114584270915320444054717788003543386717258385228816530960854074394158411006563134254098990144305753111986970510716557531758451594101303835616308221078806113635793954060128109487278813211228438366520035453559075531762207618538689845148359709443070600672630781403807310359222886476124116031927548419886270961060692914834649167394359116721677251254255855701287096542879349799017053126182793193530139947276503887288070896827768581438206083941975506100739790333545179295852189024237834970733572717881991932093692782617459438048682704332449476476611252440391116112718324472470036284082209366589055656399897650665639445510915223260729907987681508564328052730415755473435865078664756479876364855697210151641186537671439635053762612807118879433994174162451796378938395192438514632920695849829297059577043972897587958252959359252728568175551295571361777968039458148167993620939171283641242007948426989295627261292698973371898014645927539286623713596055304986893134165144617740295955779582049873721491312146836563027032294602816840960219465083394419407417878941775823171778781996197854174674234356969763364087800916957756700527808713252129595623407202801250039784294493960598946087716206262807564472279974898609883669016004931810781347815373526291919967090574438028407278917769892416042700292889367636244135195036988677523604757010360512792299654778917518545350413561160918344075838128634430288898596732364629261405945899656780737531383966099229018077955268907014484843149126750174182762642998536732516610020042260049752772593901582372817155014725604783880869937565011965010888761095297536036730561364707717875105507394111404863666300095215520150493968205699935700717962929113292907969429252838562284249827299309615258473344907012354356849869962992649866925922363892473475754782497904238816216319126552387175345989871664067378057500754636056787645248887874169473896313718470939126472876223919623205771652953423930842810848583218116317938756014746236338218943659098041640274034989443344215781745548532368135929864666931171460635968113413053386721235467783879402097656484029929946433053091513540363145821542612210002946918353672744243525752658584296058951533145037772146068763456540792501334474108898041235903032119344180554911777509817573003210142955844337989962471670410608320783488282806986916220983562385101476270688824848075264400057301319568094009761794366920582373141615599196912457103621315101399308391906537991243382054727408051430640884334356275657546857922655842462296130812461678546301272436154418006698445325137625521292250139716379338498935437159624423330889709844122296284230419531161810377110616583080442416201946223384967370139253349894690606204738184561756481080631204838750075087405437587370930976010564098778889792664110184483282826034931030491908718007826439997101613933332806889228822760204073450002482150480942920777666208545114369120088533633291333677966522169440521568950259320662406050209073352973254424380876856500809327296886195184101065119547059009985353328680300203308228580289048994580379356054493511434441126144682692118534012661623777775785219735099521505001178027159184655581160811896147679848551329578506516542984361255942501548841258960165917913371426540010760464729264517877151111887588421630386739582092413071630849939017353284066008213381202573202572360081123548151430662469292842417480733616601376665045705672518859310894418989822230190682545165887195221651441191907749758180334010456986568306509184516986677243229075171800740808636028380472874416576512921600605509456884407912535929801531139375161722414874944223441529642575788055485113388167959562913186995303332264363728330702055816598169932660008026416534234088833766665553328313140461938194014919233852791358318770346159390470175054172396827557042916942023994482207880526300470092805337755228098509634062911266909465598384378098369039757951285663748619263307515126249511338342255532704943508014272867737077841723528537372398989986697455921850580585495759752637015638098182738613822943207488852457566252300304376499007099195653872354840206656253169521767087161414057409411292861677943504948664714602008608810957362227171188807402681839452743170857410292874564620648756423621875613989059710823083064018648205563455330302530606382860825944028001479474696303809528856863184490647686137190900411908352405406807380096127330456579118935397764224776908844217061596025210271221147784661253647704152918063610970899293551063433688130292360186447720600263311178030172196207242208360230117427495036493478065665353524655807266705229922178778235339177257044549911790606806779294938658843034960771677673469415284832718779534437785896284003245027917237561137766083041701785338621972638006677331248813996803080909377406016275445034521255288223452386368940551256004780959459980832469772108524223136306269899059808146642051769092706035032493956282827987766554634647393324911184658016530038854679305729642076520752641954286370611359171764620982169185040405057158126541937096623950980997875611205968802741940750076099445406586402152789090943273764423093466204756536075297831519779500103826394087986391505165619326803533884815471910951546120774731239755636651656195623533013975648933906539575846607035779593550384232396144439271514435716852492339658543816255095005553825436280058197302217427022733090047814015281154931188680695327741715746078316549934387130657950077338728962914998089353303645609688354970935447086339594899322757895157402790769396403110242986787985815715505221187488634099487317321732391558526225521994761844560149127272187400256986509871188724965801802567969261401696870947376315197001539892477321146768611971986005095436964212076934804148805587967198354297188684719607855740257251529525644560179215742318642453760087678298277232735720493923091534980686844842631880963188679734131377825645186891670307739352154599820555071483108160298676156960905107456756762172665287729925401243005256550351968855776513936143251987951979923842281935116989589635364837620066646805563345462205194630332351279382109107513185536789410071957536132194174146014350424893912689587591606873024582543700147147217824968336984675586686960051966463161465931911815079630069789534237237198777218336878289258131400784168505831178925577363939631294564789780301505730842122590955715194467520356416283092438658253847746245056076015389448823944717160909425506310362090834806964338280617841771128373605836855388223286296266807179519325637642969129670857681240983563351820414024150408299143280423303907125865577274902352098320439273947209212510467947208282663462216160279600368580109723665313660332076846520465528085810342883833087385200289211008589210772103338105796891896808776807611059900591720663795675634612644159619875794300821797015581228151625832521097541009816314000363550025966483165913102599250169917108784029632502074126433812828160147130941784269451777479223857582508976842612045165858545402052395180862886990171310246944010574968352129595244024514427699591877488079061752109673448868837816898269997232987358147755597643852150110459268985022433040563171819380008626385449690298850753478571901175824840926411714299784265203981950322276252336427108928359246839366686450922421067641519161842650454011381180369645208858762131947303067840256572488809692365725045007294267194264968847680636809531293119345528485594108837333791327159501567353703727135177113357372810974618268985037990974357047898222754805724395210411626458122220731008459215430330445747797532047268105683537928247248251922374714303647308106523059333756448373536317543116814436049297933923358270835767303408129430045853963476883522762263869407437826393588487777543969778235056335441841553098143552160086962244787752395113144284042509323088488632176282968450229201074548608914121435148171852200641664699629653860591751318077708475400684978977009351103934738006068020150100569312937751451858557692853197204639544120129383699119580346513306595495907430872897873522582534515580375352300597267583159925166895893632233833037676087144854388164215434065343115079140167520295831770563981499885667138076999955779891043714469301747427102307307764835690434967276202145241247308696318876860499327265787511628955807153808946140353771643400886496354500988222369179152940770896946508494776905730392308947006353050188579337958101124973217022761916541692209087121212492543047776329387760973661919283716023800429573689403911949986830954089005002681597738842092907632174919488137223844681005734127092291819238432441262253146906845888343878234049359084738818766014711232986250620236778165571707065624019727437011662930411504338121093815945130671892654782160547625111905547341230572495524621149589792324711559893193334267972566794255455576746658623185342410535360503696180385561870108045381735675938494152996767657139605371388704903043544446714875977746291459029940836694665936546263139235242734650877584810765966649371970276562656418863353342868015002339472109164429243873609736387358032153255778081082029014760760613399027588128871711647091581302968009315509030131491834160379947027927261340458936736307087737162006315630268575432088631903922633526025237321464709746352094910484353768431226630222071828292805724144248903219921516861719995131217007516092216820444797916490025187625455707804115840540842959506245317768631878235388767775545037213692213129124908561648404085332801578559241931140939444945659249120067249079184517560097072331212164510004688235226456595417946004258956459086294249571034742992998754316461514818434339150089965241670763048501879223069733812678535160435213501759092585073208079411310581331568569057983530024898774409447399917183673832038123869108068875953048857992955884876533529273526994436744598226632138979502203301725097633584155478043057909680896670118670527198860896797815378322861792469541655855232988916056869074664610566570731834991019485875399470505204545818500245940803245256058677714299610965326347168437395136105124481108921154261206603956594364706768583385264915823755306432094518670563068101910591571006938236075141597269623436778810035145349880163198961522304165902922040500070747308964801043615519070203800962463716987001191610395908018866143458407848810581696242329211546469278430463983733856732930038555523330669850576047154036067256677070099354945843458951864536057163594589053170024718990047035819796019515784240308431216999017856951414261211234435410188309356065275916238704005174997124173176986491808345641208358764440727970053383909487019750252060638146854095778301323641189754975604732273549238242625867715280139960901246291714106036952429748505083888818027308808760856708881213089098971454392833009950126472340138006693657983385891302735743469461083523867850901794483847095771911794439630351315848301968408716786383628325584281385067107135286682575574943872208834328696995172257455447806246297406817470727726843314351297478073852820996183841372542337018705613697414936412494574505387668197303026010988293894715661308842955225587799427746421086104062966803846868832306029279935095821836421109262450969926419106533587123800414422171268220528231697575884279568270921987761879042927468889056035249075683279268118932947835459383473788984193744697152036106338275655620132811340746208238319561602954691936565042421617957373729838154339206419108855658594971666771989918549260405542783020575158351722016977156540266344334108944800872490070348730924450783799370787536032934059747772878162766178068800758861108148505522189146851747476773791207623622412116986375141669746994006745841769286330098298100893868685668142830015469955899148267774442079885668843069014628031143201265767099486640197902417435404018378682318302172669470132751560875586431969117951252033006837211315180792512846008052732234198166303995162389253807977397949033883820031895303989207510647523764309446015839184242196682025517386890194291196430509443764079417258109401959035380534522612158106545055273583853999993555450524204517122470492845194304021409262461499929660011738804064049351019109477549169131536372026354406410183989574072530430704326166722534956210659014288692786640459559466822649345025256970917748040775436617447402973768223710527839219334912285856240476639668354099692359549976743916920423735748440261915601958427909885556256166954910810029334945970096207601958588996113549693326398176956529943698680912980456818503775395306010117270388780996460293356483474221010485310181746571977584938701104061265964297451748464701520788880677843580484202326420887057348626032547932143633973966372500382933275796937132140663156401745178859923555117102591039965147422430337805770000575631306418676588354038610771497891894391970833717637911295503630564072171780653746627748090588475292704317985995083330796819227185988672494695727101117679493656940807433684701845630094308179690857785243018524659860745840544550387438681924838688557256425901291667145940361617285241823620027721907791982469987815415562850117190420460119227385938077519435176101111212059113334547398093833968133290640511863299322401952011089486445439323249531421386162950618866742980025618327254500373731697562211408456475302223798242059302402680665535688249011430771983340255418684393779980692072907615052849925792104173514558754539558240232522480065808814720111204944058419860393528536130708837504011665201553438933017118414878606332693882134498129369115980393945435494676064274678045744098023098740006352885970945772099289455873257363868170201822983234148345501602892386466967244344897739776980842422235740695359475639415697366724420701393745425635593766974954258745344593765780065777846987288399053145019686079009374787552722844536910162149306874871081859228189495628196957366203269009563678707135823640560680035162022329914853410828934068960812856560975713533375373831903786409624533902361552617966809493994332409765838405840500440785916337403500630450571022342056158238375339675903975233988092945003570417095148484286593703337002331304158436982983306231800338742796418836289825664095531686200409570030258216163322160428729243416609243089148835816057827045731248856471362909798546896188040296607473893541005351701209156230188967005736469928362628687045545281273141500324852785363654496277870319707903869126937351318821964799382546907867552847459075871038140165232866754472229544953931031902615217238652088344625010839503470980271959971798532639806459754943487725807398382717999302768744681437866346467665025872606880260785855311828795844076081642557770047960759146461967197887833215692154833506560542730844362529763086321782807960781743288740650620304643751246976633043737011469940828454034327492814905444840877943769088747267673973557859482748986745607038908275469946419152948328377826882024620033163313328309598264928826700183429497538801273976422056930498105970051916556257887073980683871555362569214274515251924551725121871476301766989731024094922261581854918344340869237579602120946921892821291363179400509583934730927345749764975579177751097286532520864459107097923840693136289504348489192861681727304280647836974928831478803527705251694943021592385115061066115760059148149996806514629876156057110651108346342895211704930681216742826517601760297324837206894068194798745999775239901209193038985413731837969437349866767706239946401820429618081008432880866717043653340890390285590318176904438832711295275860828591034800498903449062842585052457386998596853962443300371550293627230346151656273713175034347400029668285489755539536053874832929183655480986574663960224646613965605031346101004410588966344438972407121281153461331948874465888439736130645873173656020065472759294378268958295649853022006313936288631305285082476021393039594658968708239498565906180475371214395684343594596899554177759337597509922995284757665378980688362730558584953640247386523084642633290023506945699366674004347606190449321029038189773861676336469834770682130366782460607528887121401979543290690252157545369127477707791594200149865920111536714651512333435968444800555915030709278567456479566188562199799534108178846106238891136576306711368850240430903955598928379814261213743202872227069926724997424860476701143577910688061417300837461444229316155874954444773256477702468461922223966770025755201272240292881329098386951805065769055329191586322792053106377270217555616567469620213524460697778849036311332865660496084953882433506745148115851220123002699422786017921027980213750037312196457864827410976744272917386489478345164601177918584003726506566359679714314705861907578392589515415145615831076907152840338452226159185542126919031760031479424891184897599695314667099317308884631740093669498342369682781997366653160700626030870007660764879505637356408023657172827071229359329982881454993251880820456479275537504390385244495116757873508004650304686130439019821840488142395033431110510450261880987092627114095434332163899839019030163548919602046001851600937577575950092030502003058867187425576344528838438189490991108910744491363106345995641866006435476242812452662867957136452266174619710256936828705467119640318411461088328231762321779437676974213868476244808014332811878305990094677727935987056868075760917520718666890384742145595423331394203995156171320059911859755524360829294675625856065661845905686198520803946468242756662279250258262441319834745276493089841271314597226852566217511131604254154876547710176920560894720104196821804477701514344094598733315140083512865739770958140301244116190221366064939430312147733845244171420263633152691127267220220773384511764175602905931088729566852646717579017110398949123204769387924099352872028966921149330296532578319317275589697969056351936806201360250895045403681536177390031927994894285799409487376633944826456031230129653015639350732621743115860939630313419642423728019173092961979999549404383743695129919541541791831534329292935675056098077341154089338781586145169677005770173908600239211102709731487569050300730836858694759107466185600420968114320515023320307454606506801018865169009916396475981246852213776411103581171600159536823814142788168575618046881966424986855584241408625376906026606951786558685194697117738132880417361749887009257605082935110977388866747095967798062165186669117612528099371427186893570974658442671239985831796547231078296728542620908794761512490402346137531348067647841447293117755327519894777616590498813134614320485246662889252534221798961917207065328062308864009182835414089075389646071559380370936741416113769754826046504434781807305737229900462491688012993080340374553057640174575007150726786608254887759242300933351835580389989344535159168092385603431924766131713873373999990077506563593459327846460354958165384682082096764504648935952591594741675506647472414851640749896894912538354114630952992589797077920712533178009645558686893680354195704607672142393533737551752208955813374853484814614408068303640930612317620576173036372510396607365661606372438955447247001169549243003946045283008949204620925993246568839776147551114413303210275319651694979005266707128999837815271047018501117758081641048598237522067845732646917391735050823838549576276829360466407203470780327267580313705347730839567521094927581347485980804919303539429287751905187063661282091936046122412610682049573863795953804432012429714618180874232421852884143247802649384361623038736349813395260262450729949608368453450023321129941764983209456497081912694997395125259931050135518115264308692504343107954835067862190959624981882407588822994264879317497394956169329089771347741271997464820369942977494763978213765106866295785498738034676955297454506536376824702784024448934127408400349687659198489352096708870111928583215114490778645825411134796511047381899169549545074465422416114969439047706370938384347438456921266091623789647692686195808767549752563527435879898497480840688614928315012951274495384006117911002454341712678886293394749798759868486932979608522627213934775490616653554199300620952566668722515756539294433406919868216931948891259297201524454015271060726487245134102839189410496474884121910704844979650419142332052066239883439099396495765792531077136613508862451464769963024065553885390133054380785613834283900997042240437195078016141119971014359936099298693289233518330099005653668682890921240918129710731616303810089336639365265143567536940984274424284757857134019895647380838974259072097142506974384501265800833384154683642938386015755077532050346373915468298889128370480707389238547527968734859347024247605473842054006860185325984912580288571374781322286730837135734821686020721291610119667995702138645601364958067189223106316310998365670137023758176467184993568794275101944930285865874272504984230198509324297668117998673605748941873484800711746906051970045251026184995180420389109618913445916196559589252709657166107925528207790133686710307144552923668411593253447952557332557087413512527250993772632319289035291546100091072407178750678483037959322318968474123628646353125149607083672344590209065498394073580218563081683222156582976076272415734703841716721193497916613376416556067018962207191378636811664055340969411542868155117307771268171428249595169252786001228578101185696920130267349879511636682858341197988223226240905629715468073638024987707859157335270048190995173567997270398785650274204711927738865793856516861897086413081478036448686895304732300560524779020979051153228027485018881600225460602087630335114124407287766546979978864994742617964403156842586414533698969187916631072938353586328996872098922958090050653265808803686318250794922051584451895565771241596260814432991720804167329065497561085293447598571898388085681470210294894813876610823388322669623727747536989005937266531391757112127304336800017840582118261297957978817951252525177505371426232365174092503881654903451878445780185369632291577019901398328121892945044134399834130748866387127231464129174655669627865973757295718357366050641251761204280642381297348321920064715998564476823270722358575082168410170580782245921940834214325419274256570195356684194610067426610484500507182872212997276590300542113725792770823329328208387273929658489965815588852601955338114576734299284650853311921039073055066805401464924385330516531789473098730330691403760924723774194906196925485868938657575709338055144099476989346010750854712988786439361685900099294686818826934877257116798390489228872355094866664356466367585694243814464560101941807868526537203162798061521086661971760818525255503864674719440323183843899567560811879295356900519661415902051471595081522038927290523886722799334628110318901930196138200471631570502277459016535700944757438597486637316371594995625652208244012419280715774326986752926416439509072768281072082955825504128401090879216519720380832504364362338671939436347293756547428432034542359854573995604181628068787012877036807027038110672814437086064437203912727377808468880770804246981215858897811303694054164242425261792799458716996948755299069186689462806658797740544473221996636064132062063896269070651053542269659600388120106303284560784778287915495581736402185084502006597325018146862300622531578824202483075703730295333109305577461578373773872340119630453744577378454429125971501730654045716570943510210672395714316088788272483538796505035648962717934720146318876042301350014715464070944852326935790776652988836520141655930948230806518952219902157575785947194184495816681323322991729103011723082294017859353812426710324319165415505087855902720349073647448478499188621515231439588700247856157777317255242369022510330719901432596888323734071178413373388778265060482424590234962196161642296188998076129380769865080888585244040198703020832117433914137946516284137079573294536445763081143785332298443274664054256924536294554653088404353134514242254251114078372159931103224944323392928744984077071052360056067725131814635485254853759999428597016245395043848813062938806397519344804283281151575790494185136637963917131340409255313393141444821960110750625947721036239820685178946045611889689139321453432498573717393650268992024144735443922085795893877868881923646258469768920712068412379331705006820987694425241828523346200112194286259912943919851027437241436765727785302349738928860298601806295897360649934360918842708230494296798553223161477254505488158593472105074665123209957576404466749110546973991633305030854220920497620501506964620938542001939386506813472807747739542390899676880814474811758937991931877115662560741987761119721075074326942048706688296461497465726557187768958751099750640247301671888517421405066402262731139611844338587970758754664241955315367574988110741508343030434494334372453567629775487278016683933325460095362738783212157083555795196531028555466332612789644307376895406157728749422908274664956172604426514470904567456600365417145576879443915938393080604838852366449419747261051496322067491141851397797384689096679230200641725592995619399596343617379417743477456618786694160039254371130642362416363797300262841558749311997549430458067275533945764699138925979911840754978061119046360900342477555390216819647158753928888000557219503768080607376097837624255786004257212290012483325971109041847630157287459324444618801523220306637267698400893320594774343423387768067585781498217741757061762443558146764336387249054248834749266263798578547917275432218136926724845757391451211381416671537440198382107789077360023227609885074833583835767589845050493220476357924933451417528991396824502172176673418560800804516323789976763566327341004570679769643447898858925727250239120934302831293377501990475263241201892459575300962889190319738171245380510636951890729514311549721577714031361310006578617674657316753535208138687865787578808335718239513139802149222756578367168559744228767134069433851045986854334027485090069322822436915285145239740753536007282114809178081126787423086533872583274358987383465319627952910221996353458580056005709810295434598620809673516878925970258749761125366046535806370527508178919328653940590394312807042529029210260167953310908083046464833693599765602784399944719951257232336427365125585041188131144172490964900215115238393782340427373604279104420429839363201006920555309789203086623741175888523756355669622686736953302109515959960520566320178247453207308459156628686852605419335305319357705694678412617521893441959120126463309007847464839592380686827644488818930565579489862878567064632469832490130681815374780827644581721461803932170319410060842787040538635594161571903926747850596285359274431895257038592512751073638184987488336437682758712656732935634092230722249934337569720634445058061144024989433069892269489724752643782379226377911553780019040382472824645125751308400239513005805158980612783788818080192047090084246123382195342005653222435635134575824959578965695881529050445218570473460053293460839382160362062151086217595478607319504762785243093616064651019051612435031712462573118444384856729197040887203177092073063187491735554032556524698825340212882459074116334094074442856408851605658713320063667348544111690388700038875219341094243383558488567220403354367830617563349967769735368298379348916957268208991587968929586857804542769078148729379588137457041836122277870761609155798911934352082522675016152556054968143461202811445711832709703580528198795106254908142523426756560323144191015914150878631691423867940045836921236310578091688670293314149829804541876891960454011679342666405305778943173693334300257848682847141532062661889077020954889473716144464435116155672073266319665745852037016368484402321531688846334803103164433792328888472086419436602555613786028281247179370419090207841589841723503765396888505349957734884200971193220581107370477993853392309483012839820540453223643938246601193493352298335201859508269542505926192903836843994670908475081625494441076987861361532814971627540870596714106370323167501627399939864452168051884160143792519124914398717696716719235603012293180752169118029225894631913330989060383458724294511651026384745255379362213110695070900270930527684574510192979495328870799629803862377860585738404232218866803353654350849176121795909670476841570463052442160027671740092578602274243374434074210189154259134829410757825160612318154836246858114332301493578107551838515493210816762909163588945130494255744049491693610250623895423340745932965887306327618832575061849738112289179990277139027837175534786941176229941705543094564862715090796808996454418371771024302598980942855340593603388532475935317013213123588969510696842117775313494661865090529847054304655088132456226885698740316758988903510273599929008644500290628406528580969184624522114365745836211173144487880709323092314586403240298255267326727060871007128763158404219794234355991285517849814020229219474115745590168596293453850832297623963784191221960436606839976507545668707633583022859960751039337073970874002366513858440909768558762337729414829936238573629494122124932801453215305873437807807011268226130601156730313595626205497304413976876689336775869659695714571565913529886718687455572549222459279085687975539545426236866611161464995745859499409133065832842819530576081564118026692211292556895741233000597834490050296144587872566254809415953621798625041796894738431825856240183978746649515040138511877371766330585281716925424154847346202258290308940452338695596592377514380769717202743273452172426217292338284862831437432616128651431360342664633660299520338212470466843067414990741347099689656000223692381250536969458474755851264980319046112734079047100457348347839472653514609879401471825831123440693092757060158873552115533383047577355208616099567237492316568681081948073199505328965956021183646057471496184651821779853711692113850626266705434549898188036183865011922019478065677722944353394911112221849774753713237442152235427690303570359106039814546014583823885305261553691324747575957560872441282608596735363542752783228662837427550457928662195869562905466526802987161160626476561563492291292670793381637376311395099923478963869191893164147479458613568354508362829698270627509892521086052436680230845735444976925028007791765048386017597860552264687253543580046283346719416261541595336988201484034157177298961372802063240227343835975973086318607533115251338334908866326538012592692862550325612575065663412743626888661758252813555540854600175652395193975152030520229958902021532698695199598692591182950646539663456747531339238778002048699459245875044780794720353115751560590383788396410972085751049359117707275965041772607713679251660729896793893720236699167014871379733988188565375224577608888616462828198411825267512447664519914781469266927947708057266853507292042957367124901760671745049822402671202091509900911677212926130939677966959429817905768572631300290656580596250851629388667902496850312362956289778596291863498843155960559769477649222507515240190482814254492125865164034492513375379435344590461099862121809833025240018188667635679588764123550716918423277494402993146316845595221215023965137732603699656184341418432375805520421937082118065316963670492990102547979729143991750329972546916600224443813659808498330265403432855746119622891620636840991038480751640268399113871846949066551719552364966809148306545610529221515521271801376336796030605667623812242259745424416525319204211462112162150802132153319650383529274419075806265036660923591319740531145409433634282734457266400112576403798667681871922508971838488410545005270096088548004212915213390904848200108643940630786361420030494144165290784143488044315862849053927607605686748122337034121903570823666548588257195402832924057937505079567608549544934735785935154407405694831051341226787624069335713037666155244316136752562618304902396024977553923753313301361432508782959308592584587005732540977127681368999106793813487760007769196579931440847640594870215336948416625374207328515009041944243205881956234109901680798937910299867953015041613863951113997690422046666917336642900701617648234600424881527872832919287706296984018309504742957582058855257803513251494959430237115519883313555087799162475208032894934998671543889441090662805054239800015136302213363945828535631804564157797886539524585147816469598224669422327663510479283549198577171813421903760454613702792194541189623669257969942318744617866902106727173629288518477536140918704766488883777490889311367491492423723549029635434829136512550232026332848431919619922565696801878798028987067576972701534601916612301002702582585751732561746005950758966647803367880248131961903758992223212130901017548595232353210123896700690377207987254957780751984949654921081761071398703412306339999096440699190460602538537259211670809005114155364024417377860540423075726450168245897021093963007934054281976921822862711340449338378988150377553668382093997940436896611276510479767380783041097677878606928662330829629602302470258061901726363575596196502613304551100487727188274798684932725211434873563327349530239086852624292254034783573057888353662449199456618872564067581813333330673246904639177707250254218035326532407953691217925583767967855307997549664468821727589216539910568506400391188337308612439104719740464749266692693382240310936229739938747857063594287700919323881668946171915879813086904276528341871521691837005350821258818551261047166121025595234384274647186801758972798383390233924210310303370944791607022145901068767721008134971426518924157561527782382754030647055790136754382914489462702240986008271193823754004033519636460955786392167791663512550372675496795216448009012908251233270934399579724518766016785483416783836127565553583964498333977645737444250927884688672191961498836452357018325606625565588176140145157941956278886702382760191255657381305069845917531426677521347123566129073596448491126944976605509368483801289743299980105693994780860900182244994217338658284996897978834075880744504367614416177898656191653091718155950093360651723652181409163032564949099089430899248468899910851382694789075788653946830365503928039116116578992799146352866526124944993495173196652330287878412138920395731420776506156411779809291902627605139423910668997404377164782681369886041524823279780397942882474628126218720016032387217041792309249198789716819633385861190527939148760726436922887723121219303895659294939287558698225527597805911627687448842172811062309688192969532698885322851819366972036879839221449959783199735344655189628757120599409082068653950815852764321112681470321072110081592267948740711211345065050288712891509772780348979882737364059378930659308935245021822083560240028073467434372315624319250233290141285173579535384000369798388260488219176404715303737155523380975779186564846506970142240716569459270748356698741329148470800512022780103179157803891797859223592805026452087891084396824240244730628347630484635762967692184603318544819127199392242434844774250052365813594350293482412813422055759263508378470645472710603075110779282632925523615935659252328840497526306218597553201600139945442624695938609222459452092632196645683024459565726080057913161022932599998315033058510823917556811607590826767498454699048786780740578356173209127478755824049274720110266169207329293404082071611119237211464646100645216717692377897911284691518502279326929465325578601283800600578471096667111288791847436566164849431868602523020089359664555127811633158840507735073413631380309816544619818355531258837831438198423909161956860602511816482288845451319615306449109538297314457847836834698545807665878084039353324881551215804699530071587443523556284765806759669048945468094883672826160817958871569222039563406341965588338068562776376000098432086920120933432747408621832726881159080081096743292509461941587274590776486186258156943454605599544177924768570396453973986479159152542081155879809901723742804826051393966341638012211409565045532016764101775093951585898896149430978513276691398050355186281637989597612023807587828654700399676476132003110334471289053930374294467080632369971525338976320203836279771767142525999893104700240153095439658228872173915461715179034270932902425495000738230837650288719619174379895644471779987247207412849418159661075472693420483489425457264660755452609223906010847392839257878513931802132850592634444230103050950473738972667077778219009525852883659936404639737667119030732810917724105750697342028927602519948203902926846754694753385300505007945737603456270242138605347333980238723164518638707760805841193676435400591883426180844760159367329901804609259415071491704649833540252835247881395197672545215181745204428714575408313517041791684407879710566808362183211250669614619564793128732080668763722201873881122495520375146428190384929030679090819321928912335022744699449562581020469126049111005117368489236624389272925092968146004397648624308586998832694872454358640874658504600112353946201349665318900432943186241857904263130512235841197392138485448187030074271355667563828956159671197537946161788327886216780436729457102927427045654848303162146599122343121763757659037727620682900516730936315637585042908261877346259972029020857469135288711463480305263708395927723348387542019580269653067727546523417667288170012790301184705748521385722882563234130043268911845236983554282250896433716327609723753704510040073479530936863584809028878514599049232004493841555422342539654384780255154966085137873816860439733532873989983555217481457238726438523482664496182425844437557223273742791924683265293996826434460276734622376649092600864159885865767338814474140408842281857752620176585144439483445521304071589328654400056028749320291601100894955280007005443193202488927194436596678569799217741922468697606561554005720926088365285755993715713420264714551731319464416415401276863833926688065753483567993357318418767238564181780857766372101584507995987759435147784449685287778551725634522340979193311149141419184386420789687406448191384096217112328488412611193137799194888006038791184606275521434770160963036075587615755911673748863388580432987921834811846172121193337202352278374438222068554301251335706438742745839368423474743243381711239036197566741474706947231153193128260434321862488691554947423825862781460027072922854678855187533710492482643923991847755602210811152978549117279131550218585118463918555917027263671015860738563249606526920015896961246453940972254915727274597814655202915165623041857115902917897651514656760591659364088651027461829801230129487443992049735699847016698355144119745651035380947383438839949775328351189460045531543850031900838412817754456596868150748124468535544619949714053729988982867836169210363826039709299405336260052205851330506226553310151659822098779717671495659542486020711265648769034645737178051376216106220328605517938807411561416158596666084220576965668794959949257407180975599038060175154650443717998892106424617346288807973488144032644730805043105478344505200307598777636515505549124847019440827300861267031693695767667942544980327197284642519185347009577820964289877221763916318067749850481493756609370800807316430781857944235406975216315679951525888646843396665065704599370728674257175522456812631411551792217058700716591915086835267246138049311154157041291919834645420139159529599125593740874829698056837579298983826167640806682091358834215617721693842180525141475311686869611330968229945856934656028040976127004196990230704187154870951384851051907988485129703669905589373816778467614437975998210137643526964423995974816859407325739158367923924553615127632680702089536702406785437387157786987607732275326770218938186842436993908432056625620852378344414060631522483428784702682431957879961103871174625954205017221344768592960270479789224603310974975365105156359132421499007932660844505829384868018645805406754305843168328365427368092808105435095522690685922940511046002415601571738668101372100392641580555052215635291920175646382105561449211503313030230678503990595614996581142886969588604263975497195639718103673597362403394133340824924908397870702119675569143686635721304566442631003621141061810073970080829046302635059813956836050357163789943023582201451948302720380190972400791273753415354399652229502651959881200577371365283236618996606312539923455013891497752901009251801034858971698091829880878325090012292485347490716529045512570608016317060213621333443329698309007629483426296671409309876225504302022918764846599895123493123671512378485141562918541767609168340977899152281703731465977549916026770085474427454050618890173008486392390818243237389997291372357781674264453726716981788926966193303772010534846058212162340821037962349173205552105442901871751330325806889344966654536811723073600531629120913016742070786269439018405081855393702772486911282206068126543092900038208462601226717201572870414063243396123412747510774794154838580691744212122009572747961743166836641390675141180704016413257526818779700374560563314782611004708745795105604294322077006852608277667816756014138623140028353440802671515665824583672005671667624238619600465558243332649460672529321389922350767569237592265679827239508843815383303617029258066879216890795940590948730853778535919580291432573831290015793898521961432451254816851083288382638934125213855512091844769584461725195617942436251889096846324697837922029375783685220988797148779718349164519940187118407043675864444898413408446323929035789852443952312161043978423470847839506330828041453587842318747598254386108379982541039787160824500126219042176924047959540455495950351426530482255265396639626801653025099692288807957951964255521094602617186329312128048503852297316889492654857149209987314590884744914062234312357868431328305533536379252248267016753971803360555297356830023854298772772968617292734180064157357051885886059973283436389378806255387600931631702809884133264188733251340452420260686620410473038198701226530869839644569856415052119463887284649119971824078595142434439265957304292950315322525303143884333438116106370229354195422394492652130757782887673116833160073963553515109133462756528597145916446488672146530710161388009283647053423249310104191635624052582923926631806325980491567617305682107421133801070370384688915211180179196434164354990948446667033798084666304668121479143007721818977929954470216649328170020336829629316783139030299072067710214314358011872857646072022129981000607282998719305754843454345672047920723731159212685596752899576880288163855851113774809826676858947450902182279575288078934585312982336256773421738074993733824060725169155270683362232481813274611940842149320644407733562543275126219012391182947008357062108733384749887918808005705224386680081517266095689218233588504751197137409555390222419645581402636022936350986441632146849984749685853816582016293770225196559260453409625079223715114423613200083108015829935205591445905406053853890296090370939195939253841979358456672837623935373106535444720299517106160693747287125453985597725877989243507653651398290961058000852624138639783451399662905711306713342259386454608535644961488591531915666833058130227339038972009861858481121943675825076210727793863147942415594353775520371518852301586496823843598408590763222920960392647767506990983279965988038361635381822539500536294693940272056951740421052170371016605513616234468889822089443646084682105585959423461607938318229393048818311316007203472009062287134203633107388458608742637980054808382092916261632532405711798292284825232539811655959064604500112474121347742858526907103582064159416892158243965309066026703182810005466552995810436278885445913563940734187892420442239162571131607203040045349107710279057338241655843168614213557213851624721335162280058515039408133145725061135533825432497185077681847510132806484896231049948096091780248708817681844986832856769293511598551405616147462810643257248930576774375476415572247532031040956697823589602883707663977450445116162118392141748344655162221640292872238425121423885074538364300600149749191803448219142457123783000803493403040725779361120281197509982003527223218730301673067168381575118979245786464591732018569088686269976040160931982293873456002429280736275431030391233103554019885979593774252582050805838075715584026076978532275904562240088830394384547716572030319380571778994676284991459901346746288673753244822030697142632060504768084595816865534953522804852676049673861638241199001959237554452278722768269398835688000678932390698127657069108596771421835072810368420960879284862280452746156361785350156756396418215084905533642561814032990400169156857199968590995550791916219175467656998678769057531709533922234970548575527387592108319795937621585683480191392129491123644865317807405939984251969135994968297433195768196900876636556292392154191914275350484855854483597219292051203430497984265571909599298735719856075952318425008182836492445849796391303237124858975243605271543555553083671583335398123607693769957922086093725801685568296401500077265996834988962050089956932159019878508314470234131621567747996617508034220481097731754722005635405652051069519400085198971439269424471609914099810451540985858747032039782741983736089451222503577346372376855676744830137627344934683167608189658601718959379125439902003105505492672190342484332451658728076041304373147898689404915655100254553769160543435997655362933290872810971632813733843162926437027982658592851952205495048122451003599801074397910946891594615768407707520103935345428080100900399419356159048379038676779467813629952034203798179768750482292512740422082888191917674934248325478652659096592070158957800395937701925808254939922863545466793130542872071434853919886227516766095799842739185776259497505776746890317897522905415871062187402939901279665759494943571052250304469096290996872370862751010485272579665382878996441423128095149386786799117386915370594509087353161146122495164485544028054975284359257565538249302923213157879009975977427240764974034413030177819401663291247468650532681187922428888384961368834486752589879510805671804187559702424770552638799549413299630014391927070980361850546373641394003534048759357933036426393062548255891442471935744843946247798126050747383866475307019781963440236437280196516808887775156449661092537155414221518416194803077185402030077028623204360010608904603111070164220617856158476809591570041403459786475201191832954983031245843505272148942415237135025902064061670648462038075699800237184008114824737698882273816101124029279197786059930553396708110421495770061816476326296534435701837973225237822658829639025743695959070100597715813100761585214706824327683497944312705758239966320116656407861308807992184023425547492729968077318859900434508497514559043809683517897901434090731574581796693569998068294463503884619150670636728688588672240697308172562162931101959003198779926289452225948255097395224202889269185343060859089017730879684294067599123635218743450101870263585430595417407096168425126891380914396504023831497008858947459900912592630955097357021338363162914238557559850913849803806409068398541536629982630662218527466820467292192014930951211241021859776375998277038759439263811656200979747665986782652336465592613815996649626297023750802281624261582042428894681526809466589742934108693158065750340706654662465969846606977295622082967368999281482102788911169239505427581497225222500892637201164683485306510387073749167450262905000844073913364488954951408865940764041537692082718009280490549546054696367285123520396996914395531371260854823518463288047962415054753957711977310719382279870449998058626150028946172100487541392426349920057470111682812031113896646027238137281647051757569662445927180366779422922372196837632548877796776688046552846933286684554885141570709620922197193508177341726503829846786200801135796605349218560182449345360077879069557312547692733598815678932015492324828630968035683273486033776590256819995012401816900016707621338743307170735348190443257878962176180456742814480135918546094297884682254296910722875956663947990871523954904571761573777952630129935574552467391857899429382270268157881987573418749942481279309790596912332588147469445516920177858481106173173305807239609388448001217013569856010602338908683016655339215444913872983517923397854253798552249757544987067243153129385773411973441391633371945629362000710922818213867698809570066515205151198238354736597917636212056544246544207616207538026668968457174388637229714375645924270681766655680764867807165665707373823210019687980569402254232994215662610253732878845888097525827419345225988002093296167273590850202306969840250554272315470172155104945993420026200569305643299378373527512178248470205415413113431652720362011237513091882186738992314708880933218664185031452691347541536953538669772802824006551913615722356825742590934225424693009982047005799876271393045867100052650718620935086200253822313626135158898375434489702491511768753157770614548383411669303211553395306937634837426895429573351509863168966845433772206207389214367084971157265921071773165894483854687934996388695211435649224109425181191029854256582446878295690888003554519678539567057415057384662905267137092874260151345959953941057871942120481415726175834968367471434747909616762215220895734729344984899427905545372347012202783860304663255159473298244723136650874490070358706274825129524882056061250683981500253031255740314666112419088159552474128493441719936719699341284112717231548248999946488066867978948797653757221246555431957071345524697372393631446300117041274708626249472764442877919124367904483264848769399851861750510327706445720476787116297724887876867314940370176212759237563279945752486943259046663634692365453861069362550350460370968622762456030732166694416136822483509768754490815689395603605246886782609039020747198921659321481309701027003992901683462216712126442373748292537756906674262785835123259438822585338159631822950474099237603831516632555163460426642609038555911732201407655155940745280982227278802680597431931478060952821700271855985870768274362017714390747688116705532291983068866002114901511928926467681610050396962526357866092618965602462758962490081698749484797809458986767385157777791837781254913815247864386919051730129108172228763964221624197111670112813976652380228472011808958294940408184590352859875008620264779091052912781170330969477007822103032850152953809600378584364167465703230613580058683175981316885909946829449040745671319872995073753854166721454986142542845617572544632685631446778835426946207739762118373765190874206332527919757666183604138193875395093738810344793037651598291726394005264886510890562528480382767762694350599434568193576140526499367434591895090640278807969069227994650038878557834717800321720395967312888415944054708309170914647214428179352071613131071264057596826608315583762006758821515987734104728502773013098382438024812411587996719258829771532134274159725892286754457846858914053639702404298201271117067349286297860474636752600351820559748608545528480448145682733249862626436054048898619532316075037883049055143008898955235204983358144560625462484695429863471602826989867449441171696947751643339321427703310436166692080200302848078055996320379852025359355860274461603970894303866302735170419602114151447277665281700687434640791524386415367835279187901742125403319946387671992739635352602248877284843373231468254728021790570593911568015561614219609279296553395239811831825726181977076451411188976630380921350116290034030745665057646876189990539255371914485012060016672451930602105615487988465821532954506865895268240263191757613823246955944430212731970143488573517600763389906876083004066230034499255708067724988145575013698173024866439471800265923332157071951822076285946833785427765600677393692918568785958780817715046976160679466132240212480247077148618674190588370278039191733898359621627304643782177621540307832526024310254018944017997865922674206587235304503618110550662931272506478931880129378576096055685631531526407238441187724020277997379085822811319495946464022992481343409203257852900911142793814794148725307779707329234320750671556305090864694020214354065789815665346715822177660235714962865686416712045557144270271082599981940270995413782703932934321582552434262440926576206142725707789453637036751188692434479629946114014854249666909151075217281947116066523848450958998651464308122308704703866903186695245141249351750721878583139236528978017042051368475531730210714249472906813910142989492958066529166596689159755567175921417444595010331453342988047392800958800110910822868690624365310711249692491979628050903109624575348926238323496761067805591247810817411232352375030021572045826195988616729908319677308939221301060249856453406283415062206317489346203854124322598275991881661715258531465360803074035464260012553280189537466156646137304946657072331384546687710596115440169242498777129178751807962321474020796159932323870151565280562301307264695822647398542046248438084911090381764396966017009512113115801705757788735978252234058830088664639860833512531666005780549257737455417316662651330001311864978335086520249677098583576175386195998516875663572555785347463294426084744750106470648462232630487185391889710051509193872912618968415207048173856749700074899422374442558695690314882317595478614910717574579066454823122778158557894888130111984929221546708528081371155330492724165220317256859427062571703449637392286471139406121047712838087771233443767269155017917688411990673032141981646047209964680993483220233152324277715914849452597377695184866720695743668736757664275117785470372353000882986154142282363284990047382661804069852974362219671651438124154043837733676467646629690891897225607910513110883928034173997453362963640892992825147840421084362938015949766747501757001099810104056606093065281702159820483618038205602499750325318216949370377554890152920737503252151266603917241888974572811615976109866282097885449987264814287194608482628670500052260989107224532506597711196381160355981355845894145079830151854238506784023400969180594272104314696363919023790611457797581135412206020222762398869349241666281974697498301770396635880967020087594319913923267027475440991489335955466138828416756160548689446935142761329368555867150419201202214517454892657082370034431323652260851514870934730954316753736126985922762696310942939219945514904725808609629399600563377348635833276059481281306939493394332982119967476851698539129602732070704666444520718541964637341478954035370965417289894096503194737501212425386781433705044479327932363096996295952934800692823408472644531018211347349271186339625868064641684783188171755083104862077038711996043021750993995690066579880425646464028715440450803070657005188156107495603836689116971620506754096976353431768160664633515060107364762756964951639832256292482641911024624697537144146665491691394371514368406987885311101424758424469041333780757991497395615135885706983361740455529624547419545779093359888973594779539253063007788835602484188852876966905782902396943976129963131514202253883942654119512901249128108525124925658983645420165768786888236965065582436774644912101747795192199886304964234429784999959987854913296650151475651532196499906577168376044400969942521196462732357429215507532405463662475165382382635776114905101408681527605655766616998398277482356675574331000580786513084813649765744859281890038716154833500499766788394342042301102549066890006830694244498595287798331714792214946297068725201255689112646809646675006902867965024622337777993119877049994537174985238242688422598439223715871519245510723121196618206446802888620274099982900332056301193445092752716741226515632678225576678935826345130584336705661653152233955421052352743131468349849801972054941128031536256569763210071219458539689378172687615102744354020562096103424733866654993045644313840263964671192218591209193705841861715369000341981177779934154658151226695702116293226547703408742534054083628063559461154651689855679596400051596341468484056160399807486352964335452625741650750500738861998767755303285495147184968201605156213753912854568840604291959222181248616675800030050323279146863769537206785758594113879930015596437492391097004547748318295800038293655555530132886547975718014854428010065352665874229051026985593565557663222248584975023751577799373316074410105915043599863918539097241213852382963066025198349586611386397501024603830927732353755847192465022082746882452449946899008624821602153831819992082150251076128148561127699188519992031985635653473511844020932219709911784020039782824421022538401005789901422467049348986246659354410916493909017365515155224667550529530877002707661269969854748450949947158896886737918175040242183231064619597322336623959007642414313954865063832874398859614666532456517728888948792018496332520334742261398990090584704091443151582839951351868979055285401025710549518804520172119959682692366363411617718459634236377191378826959898993870936636955326151421319895798363329018924974871242209608679277351741623964373054092152786731804711128393054520223547286047751822165384889713545892749108577213045179031756386320397058765761311093651167216045304408360101178773377888251115897029993992691825780223977121596327897251740170220726916992204737057271748379084276638261425866525141713296537966118031272658245926264266409234645201185050760488697075829025768675477168770873200655435345307572140776171972546458695961386405076539103943573878460491802728756163431081963238734945450722380275740570872164431151145808268273305422869709531785437028300013151829448634332054160473093163296182717727972594298810145332096280898985153064991675086239939360785764198853476570100814041448095700926663606700226308458579861063778067969022180064518780364275465679295348837045952418602767175668443258548030974612051734625030529155852741155827879357506604943569995508528546501231250246463659972892979985361685788306123366616791061460064788370907414820777202298674067075909899368474096110063903031357589026867141858881940737601493856765278357230554992207353797008462657287260206377125372606214926535644444594779249121764126622129626830189238990262477753024685031674372220349423018322634535654094280519843682075398886779991157221888411298519498607481373691895111001025415994166577491158586044177275757764198710875966720627042523517901079004990867897656876687724469398146560355624705347736985079559655709950453203222020323448007679968913898954233551659931696940009055530153046953936498903496235099427152285698190626687632612448702641909736622645358785002118399121181478951394836804037011557490231088201599268894235040282181920837242214911766715235473585838069297511378815525191065213346040470099820925935551692310973401069807644131920653094260760498802738234490336362756391322417640986860816078693878000447766586901121655513704270194084080656138402233909938759650523317947410778218913009966493654174998929447507774843262077133056595937714861230594217659987733955143626232580444137610776509266059011808733143471667454957989547643422735881969771906208567134355520248184957707900110536030133432767601344267156020419031327530228484267961891556594044210398449345474437863189292113789806905662153085040253577798965366748683276100784612734421496084626250006439146205051070365250341600603291206901336574949670234648254132252802739702885834777735832766817231054408937306873242312867309825092657804237513688171872639075766564359541511758915376162523399704696912779119490138255391652421833084209432339164719291250426363539955877169324137264332505808044255576005627828816385704718700307687044977898731694972622067671987461152023870595618184931672551548284410590372263698634997574937494944907903368720499843019874972830997496273333229464539756176807320536476340150847473417861961884174440574886439242848455700906971500897846890284507031099795046452530605476324774881194347839321084047493025170722289410319891924130792373589570359447691123433982145522263300373718743480844146349081199264739744385362781602415023234578184297033896921452557844209626916754372431152628753607062245215866735352439058151475547982518720819319831211150592227070011049943780193931017653794043635425505746786271439385662201223554239767289045854485377611984144835097896594283955750631140768831639431986742047492354094286345887444074631381866125911856504980908523288785278592187457113279412633643245766245640865574388569456774438793853006717803937314693770299550951561630751041647690188183172131088004611399338350713981702723325042499737717113942978403095869785157390564322097964879427443962444473710625928491543188820523574954672633342448348389336038091552266992131787849871146535962583473800916729255113132284275456178812595873328867034948878352096853757126869971646050709035119746641476438087313171270869252597813224343886612747731959078762615902077151587678659075131291823412658854789737586698134923710590632448771222952106461116611554032366561901379864592281256464743207389013261301810429392670509620501464250811701894143120784482520754253487753836321165129945870000873534879361318443293038714068232259019984038104865781082812250685495719531739114427995273630002861016582248585675414722095708796319616219328026750984348239615328072829039180375501042766330684624862630254599046475211974145952630455282238470120188695833795180501169637842699231142630198681588785426672276447089356265361632205948470030110351718067007453405941459886401186896723624877142890027162312193436060363376358167953072640548889607516721949525026793164504864022344771774555309734692439276752898928659302176068126556512700260479895513669342390992766139654099602517552785078084613145557469400057378292354985086544578888709434486435964848455985981062141929323461863545642416347177577694425396237468734680646584871018161346110508889021830001313992934537567755599578373825671895773758467905148122325625121188810998844265656393176812488313414146005818788376679390074441326506494612955194368056143573582632977962626958087183389595865136283051976234416553388152704331404661209767247310972417022440933810022496138450417551341505871402822338041468320503613233318464444127983045735188013946098345384822214684900511717678991768592052174495674729393720294671905728599966117435024991213651120841868025598814934262464156990512762547299174859671103297246554837259986294252166834147521978713357818183146643724990094510588704971725199131999133570030126587091490931607542910127682179514914854083746414656063038433957085025586936498989886715429360886726252982275240623966445896799726121709031372478554117578260769965637695165735340324354651416608657161857790239976408097778408284301810006122814550130659621469331925502364447762954486743310285725956972654499857142816703513273640613281098967651205542050372350373901748591855923071180011011579260315812795842799251338756450908661217461197290075801318788442395068045825568016958595982735315793350118532879310504503236650865131629616131354579911016404714175193912549580028643466857879924648143163767741921900439479205088420770511993630432932817476907678005155100504816621440944461291519457391804029808167714085965970848839978821509711465006227983997098334801684515876273719928908492408287269518567448834138721136494298648920612550215089252783530871774936823949418878461552825919267037831801333676577339814860639003998756607570087169554010622885871165416310845215947234350943496984899864115423980474684237069441795728653408373258402591599398961362619794136041651651214592296126230036062026453738838355203028468593439462113680831080807033389797070224837616573552137373105544199940397384142354624394078849735035655654027409611373203685410629159831289424102820455245027648486901974376294195797254571429704846390358665299126376669716145837530482503540008039183418250893732363961012445029527412901258834005229021369276714261572881761201278322587786096759376490773682684340611086471613937707018673847295113484648544717691174891660178349475982965569458288198019608705717874290375782645758861090413764484226416760522248757462029827518885249655949193518164558201793026196056065784459178828105896683519879663889733176966756217264544189777507372771803197003113961678448646129075458841536953395145150956117543928060338574502480814436849251997544540633304061443787422844587453421076702283132678827100067301792325110971508438925592947382930013962156123547969454054946538692872704276917156839271114986675555261118500112390684918577228442901028437257877377043496816648004142506504015665252213112450940584828363217813491300554390820838428686144482730753510675336477824598715420698322934034233849532025445717905772549546001554857926911476847768542375266258841716033781914348373928126959487823416517200914606998617500833161239066268003274341602710302890016325319435965631934618752794076996502864803102941591880538042318201129018684585915763403008819705909110416062973332489796500629788341799251212586234103453506149768052989418735009902031498602610447204107526856580255425365974674045604675563336345317113856471778038696514870542933302599542201105113186165668168177982540736283930951230912465884969274043308121539318957188360087497049219596068374208312789986320865299650462638688788489527007030161598066095742839952551576992998305709789483706740213343432589501545078987894937828934174823615891659089155593718901480323732550276564931798881363827580900097113803606125437839352002256351113618345996608714496386646659781496669033912577555177385030615076315441453631165234378279978648179488072150748618770692815850672441245133521784554369249723737996690253133300407697670706638457245298638709287976685455137184025925001707582021524621478474406899085299877702873016004534193297712297122965188688939484645406125133185943168458953511431857945706454879137525811623688795874453121570922866827747040228340332614363042789647301408503601614174458999299600611125155575610833975986019839094476090927338685802546391138865905141116434483028783393633026779125096123381258243212590912820273024409796979726315296502768023819164874834825721801497199088669502948089270731802554437617716305257673293287492535395869571647803265917375552205972201339596196380656465411188832146611018273906001057014113186044019428654842220538290059201030706762886873598691499870050873440055960459255867950125967291109285314789010556832938680537898993436773838912037052271749288337958853219192993912423468519519436911568236572467416470100322011770194976106108502641143456258633603019196188335963744079522926257060635529657721327678923654581210711375249135818196842833212905704270207082843001919254281524428658912287784484505152445278541520717030076680378010152705710550769477120223504225814034157818199306823324714985775203215048958436264898959724088427318711456847084207173330167361504602749946776149737199913946321624470025434243679989032942484783267240358173116635011766374077034449861759294772872128372664495712451903107824902753413164255810441671879961703874416813902135415516222952398415050711630079502332741507716986207640296808679603315650059591009729314795997979601709524662149226435876639890133103117254473033517273549182099015443790146523989135195870510541213464228367251302185702559005829706781850370546380160394979205386919041751584443904094229497095533904502248330002553311387724381426338231880386867018777515727394837936762827586847757345976926263856619531765261161708895767978670662378972846571680811287631622733378202491173939882732233673892043617661301746930553135474828356106993718489442186767829996938370402677569355995182622756653351950433268847475869852153300454286761553599514303922924851115913412128317453263799895745214600331470959266412891385337393037978168915894545353226468579001207571643495293160362365965844163384137041777527387712170266793617911310988795563156700814550874760015289644289368418324290828385043060461766171555308454313959664419401902531061493774995017628820552984414497099689787867070915454177919610753269354041409523035709271357941106962237772517481609793440065726834206259545055976354041541187080919021910667576039449663931758925759769921966581023589301569168115095414798991614354527298326581083535755944285115722041577419139285380154393764564896419311605047373056606965131269670654352667390460513269845798919283412756623637928683890232900322709691192019231523065105763585732802906462610118236267200355083345805666989555383432478546066097112078930937945329617853341024832455976325271050937873853065514876019617267050121529436180209960046977294860871631951316672529701947540792520490950031723882843653252444185973653691106784880038091906485998142057828782892346775506494560266600269938703490686670632147091026658941097978182905824097489574054465170064739981727844119764991126530144199076654694467593268436405997511024290403893148214161071636662983853186954212743128753434199480141202097258634761511641237086179538911071557247026167054661350421231115011705074128796279457957050577563056123778951436513864759778445952065895313404473444722261155756389250841306715130908944284192391278676136551916043434491293133421902770980021290372363735171396531835884639788261764969537826154668456522557014255399595694566878353427503928141361155151786444583722411560187501321151578292027769739256059394771542307911342213433154516636446012390535988582033133827286265756613386939389409327844308145592152696902406158896033383686266138190184727188447269796585174024834224820022060718540118751258575316997792492033268854205882466054015086083284664188688515536392309791263640033092257571803485104197844610477182198191891777250400335901539083413730595755288862198789590471211238189476847402735496071757870465873306380777998151909244749590527968511263349642153910786922593213992874277467379852352461897298775903731605144346952415320377808526606584734907249829486025127018962264058581193349643623710090924860333858106779658433237594565929940087337283671320978588076813368960615884285144373285726373942250492870661738711084957678512752866197085645025463907040381926846171909943396656339002666187123610876541018670902329168973140645671240380222423428634379893189178036076492990568899026228304769004889474133395660779102808614639860023721353895071103233322194592413749539083977929022184360774457205717922657392329247318894961602712278846886289318921206684050510280521581073852129881320518791992067151854142587114523386711906626140772207963796781233623276466001053400017936370095436300143891614478229133255131667866742464750712610620036480270383889404641018115406580941515539809889675562568757818304617556603061790005576791848006492715800963491924115703807305948494910203244452530741260682617209837663683444306453249735300548540610740775390381033164575533765150552027160918988604876021521566942079604965146523777309154997532792652881191163963004782605899862756546584419704441487539278725780748963171838552057795080104128861554736593875142469422585947343427743241892994820037723747599108004908884721827067259368469449793977808125039549504189535426514133745208578254428352877200239826312557078604348668730658409043731692059347115204028780752775804170552125602372948060873242941431569798775236922959697180173854463950322227837600571280457722159439452804839838569788124371941361025196994470103422323599743436188348166858374344175358793772701734793229515076110091500441319440373710912400854250025899928689401849753087526811988668563975876290334936231805700570977077474890937349457714008339768359362060191567027643202188495733806965982272738716593900400177777614984727060365279769101906825919688699126864541489938508047789416480643777127761004054813730219253761348750673459695215349400393763321891938026969628646552988695938915920687593400766275798963747065420564738590370597508446571574717140291287528382821206003487567532469607034725931427278869890644469771343668360507287361059323256948808540268623988046519592880662809857768705801295967822956711210586098717540695426411654688123163585696743002853145871332319924871898915921106188922359893612553401634081425395228491880199604391750215967497742643639900207220764232515052221223816115443140789128612379671536195023822237775675470584928412409161964797301639475216208236327196954009509048091915573159611643100668947870047883623054230740071973377087216276835170034890304974046815328926389457353626412034343512585506476806801296475768789220524453048041910677810918605397439628138247904361214417468400448200169321339859978585027790752265305078142276163225086857226763031609917575386706838151376732972488425252028920624247288620789944839471526043661397255938215331336025173835392108269798332969846080582686531140945127097449732155621248678701026930189694706615560987327122785159483421128467778571911160946994894576111288597827340172516735643203762205888589881242362220074291133678074275487831113487452843838288455286000188230777456293204028214995956343571256281176383052851005405445838118416147408495320725493123110422627911761173797248798390475051326908140915986159007172379531501027722862538065819581909731729255560379303408708875589807785849003871857013675771457241161143043227363773581788927146304120046842582863857629388754413069263519749498276581322239444303988251985677356310765595156761977202395541046087086413128075893620004417296246112252487413809184756095169355859986077716798508616581306564178960358271138667127785546337056346084066280139481644336960195380566828744911306806873807866718375239579181980987594097951422464055434069406000877440081936283028961902599466734597619499880047996562802872975450538512889250179665845919304505550065523229284013510324770935115481077575055551877169672795285375502660309552724396390375589749609632426174586727936251260547846630497157914427951251358271488969792563662749758489588269115542062362016116753873681403164964288939350216312184598443682938172003022210023512958948564923023144046054230679159729064173907950899746906158346158580553666319805627110095227856363257943130135598374147308861998167532460386939683435841145354490933614755163180272143880365262635358535198631556250401648238009429406847876763523983544252504584989571531376908005961176422723883570134037904531622068905241542822873565138061488193742376897692202091011787203865956386884026244269384674981466697109568625758684351356094429088437998309373607809443195869243061490300213410125556491674769118373362779448378385988972484160514399873161670581510687829208804892827941092723590862032274879638323353839049041824411420950505608627111478910458716887908857487903957787294335299222838009969848370180791618201055503740275811433718497710354376508046216152734173238770568770404839817022374057693011754742469805644295667384715815673929537836240361878751320249563306105209821890540235951726930890083751045528488434883828286174721499090752978032852464863677012909643708564670782937836009736224302900888621858976355808898704141923355063189921604225623469461524284850866987068883277080863931877023547046395604776736489728167975304380323323368082337499872843797574856352889061602274353748412466383333801999517229389752762693988051274297040493797028523429013239409788870295571644717795838210653050589601228096324964229384588668282957061495745621829778672385950536517475813579053495804746261886498548600703442625272417486826497264131822900705024125761644989284202414804066563768603778349631518387742074752359519156057382523873242137790606080699313769723521909807763966433661602680550696387906760571101639443242918431716786354155163197334404107637008844836562264466570145280022769007938960743511822122843879095473946057274950562316636868855512344033714323967917384142864772144722536145246513934808226092292978208713308866118529965315963385352946286547650373543669735991373176885012054346020300039607787887922145697120634059324336724444899703588765832192255231390682086962641782054631135160363796399989056221891431812671528347002893392902497162718035886472674073084936633082097323903904939365948749648042671768807753945260017011149357043854353891852483048795829638790226291702747276722895245610476583817983098341243445403918158531944635314681739787032318962907955219287345518993459190627605304495784365180480364084937190361280713542012846804656377181933718732606541401555217236920593474395242334326985086587845995284080543570309005480196309221027543929155149808697284597002302424653115916880194596431953738703439478728903408555740234218458221342906635981116225761904573792104013399739680926337973062096204593957634901980488739929999493771624676892919730853366574835355150734417536993601903691338795081354893035247161939603049776650926454849616566414943684168148628031036603039238404194149634760085987911878530451837989190609500725252992995160251118705553097149611153046134425317512123613860622116230828778408394930108382711346250466260902475713767352617701917452993580470736720697075127634237862477061371647896996226305385924224593245315985995952951091546603395702669412493803766245709342889356382276446737270827699867233845136164849908832912247453764734574717261965472533434733223844700627657663018274690835738855491985373402019258484998301443236580137250465236983196165132122193736349904327080071470799224690215113465564479784568015001087491777651617422064992777492746979905971396566708998169434941238037212546025805273699505956770658397317432869156230522503150214725263454689935503211223340232489100025601480183014472249039117006041107335473533030227476160848339460292291580294010949067557307115101304121209299023238648969077917181576320119688976262118124590880288496299804761286883695067815137959517658538180886088387305184370930694602401002164792023872207535440890304701660782813722219449792808241526936109101229604268025629200392860598911778481312249701809466502004898833623154047573376579863869201630170219034125384846386722785065728221995583643946506101627410936316016231643271666712610048142620730487009319120539693845824397565650160689687759119552449999473981084554132761879141106689337551982733604421023855107317568569315512165119652429428380512443097592338899563792091956312070206701953635667988681916053618114142618819025781526485081671010243258221605719794190814004154124999384008399354888226724486693587411618980046522874911947776885813378483917768764586241964653223273806436917569921901424896394798948201440715503230297702351367308396238485779302108607636600431221990072102818085540542350695308448429557874499111685599001823582595903164927833840881705749838332248215282735028688744107388708919184132966312648665157025531392740218490540029312549071132508939722291758150921030094690322381341735102499774499787752732068949431145995841538499273903139064868165703859922570462257158338267244956485098371680781554125737778126028967187631339732247731241832118899985330091200988808206643483284038640867483763706922307684807165466432436236255787751178228084979043485068260511538219113763394733444684158174868072268184938650653538548183439449868440038279910491033441193243003923233662966302523788620488104601607092663002410773921190720199968510928460047108235182715472829012150268405114536532532223201622854525367577267145049301959795688601614549005353343704530726265596167631560354281666915554641613508207218662830762542062511327172732830987316519644498969257007430091664103112966811436700540889846668763394262149928279922828823101481330610239221330694261613651969800468737639036599897624959456860898354643908177090845678740945332118112250144755007147705795863901154573591939686969282422482218005199260669921658565871849775955703105748177840158923614556084082877193701417521212001437271943321194343226670660547411188501184091185214695749319954977454701288957116343828491600170355637939215348236567266517350940195854842419638334947378597681158818732166255264072696048225026178964868096721808790634637010452909882221240388637363005932481164685922082057031773929243309058601998762881034658087280468659568640385254279340043575700325750636925369938904462140750856467632774978925592420134955669279046865836380442327847692486775495137931667841653927272548113710799795930787065155316682993295081041066726017502291463365078971748141952798568191178464290253781799022414800405498787827589245512971087449882197371787866889671088538737662232235700458322875537006164661556051576443648061944361142322310878197975496692393981108387303027413268016719928189215162883973418387596058087699185986504018203246557840586884030316552393467345261448877807624427866505029285888784693489715823002810702919920215045952859334455635539903661344709542044738709348986726543082007318108389304362631559176659290065962473345158292890071003060833230806261182717063979831587874464880077564881134391952135454127751459447535292239268737487463444823054957932346512073018731770701900600437169103120574227896598079367418825920449236604861365388896997305487789563190725112528108952993589989866295876535895809277646901757484139706771096188597005999095723442369428255529569148777471258495139339421514465414843791762692478326020615624502527370378020258143336788699502575563748372962852684850030941208220077241360559203031667694222465058113464853099363128440768268928883472291763849847393262201425350520000359503740355476095910087975374605366888498457338415375644042447635765498570743023650797503284228347117525642463446866232242948130779398352466856129223654245855220063362928469661701250456169722202195225820628525258550441188741014072205521661597162878335466982438193773674243423503840533187113281570685069574348301258538555043408559413015895391131726580986924293605509736089435595059059477796331295569411505127399869309669917939442182127716957520360136644351515537225300282405451466403318192479146410558638073336040259251352280276171726025632021964262670788030822867610585811715835163777395614925423639032756772199995151305944007190017855773807271857855022183873487989086981812999458498065895172056968459689299952677637558894950162444259989185773769694493360529506841100060646246716501484953598384375512374273902841206895456887533244678112928690364571091681093616851354847468034070330101504174398009446458602744646639050652406148039341055078767731786011397459604842986774976114503868479644030005498315656247259292573663475157845834486511626496418916363886852542481158855861137855596058795053365782878359015706342333890400035678971508856647895738904680808808217752104161629986977996424100751400747711086284235136597238936818952028846685892949367002363430518400686958544978215027490771819055050726854110225352033039532393903303272872932327872474559365831407057581876104143290010810219156126727353490076456142278968400521335776007374939272570318039732586318156543908748789735922435655000194445543861959683553570261623589298808114335425526259531662474136891682418403852355806375501786333270219805922665702731347147305513194081227101674664376159744748265284247243571303209202442209179756296552967708016819589614588396303419554138130235809632821291954285223238666675130139094431035934956804344696953248407453652854631129772227442074464562841131050134866108848273787781888114869374089923870234626382090804990182184819148033561398793784957138442648879666894802359814132713435178803336707383819230151543022351984121438077531124637754976132499198094552498454882095194958727745592902592556376011720860233848359399436323861307972260103201772032085805326652683250662810142064334132212996511894305314183088996248519427068429609217465727512796509165265447632938036754540871216110960774158383565467455837842173586852215229468556739435634866922954226311082941256617617195046741107437766258284051310399244129286480001421158969382124528204481565751013129158470288101971878863901798804350364619758356775999321325108753516527082195907179787953180819725112089381470336252812161991128100370758671962510905814623881468023407730626840196053714677659297888543698109118931051297836389267354787541590993763122744893813739024308194451599270785629029632644951605201015493335552710797543777106183267458765714724315433444810579839787419063012556553541339152202510002317610992023470258213762624347968922848516142182665493599218191851891495375827816928576597436901137206025625786604302756787750814176369183521135167822303384774381624992703404209428186260582707724621738206708916199268035564237599272025602648741053177165101173699736778196534656554905893792466618653092908835603072678408532515470189877308065416489613119624875266917652008686230025187657745244415518776228132123958066624905079255928310689161551532530796472174567693555724395792531319503983267238318003909419134284473219632841107324568594106060273715162023835438236580638263102505573921700452425973525367458745219693820185812812500690319562477103926836372965788489296775070817067660587821124348428715282753066252401091008453722473022919666679546883937391737000923850373037916823424540401329650896631412270660792288239643915147150791398072052867937447381705899343343966222715007269656267471973067373831233062839020336998011279227257846748086521386926050606724958902032810516196961594903298760998784665473706644560191309471235617320691261461578997732289317853081943056131306686508328944412339452010355207452349279303190884361493709182888392742177463262051265682075598111217133649953194481724807126959495007058950051074777803997564495546373660334276367603757058888788803630083597588451933546537170559203131508897077830223564249885274917563092344901901443815170349283226370352564379817272699371457760465430372136488422543078832358698248751052955773512888480683231745448548629971918536038090843232891883983701752760530999956412095703988731339230380855419710578448009460779261010246785984821355703414719032371666462736801714975088042635060009192081602148530674831086096505700501107871722959155923269310061883561485903613530587477447694717094441046674889943935559535523317616422491137878276007205467102264095603214800445802711738405230562941505987769036164375395129455114001350044654678231134878960596302530027071470330188134334472213370688595575649671628959931550619894800915046368166928464341537309303348352523386994406533246872693028861190124182355593281623686233829154505009054278214362267821841155758790987146825479059565348977321296329328842327211534956861224996245877492076518730425590325818194409088310488379358645108231177630306403044470029067788168236991201137222674532424002977639056587446703801776919138248902536833359115396388148296765496839307547101045282290961758754703186887131473047942948220419119042650089338064208639492177069264211923865972449716806744933444005667920383061594740356626557378731761781560344828418639741349434140608185294909526485189470613590571212145030825324142506558566751734710448335336800078030895935075785764008788873959385452077365718336868191956499489982761969342799202899183027472868284846403249478518131844405889101950904715176749909610548306271508248375336451328484825809631989572752286259843315141248145708045387119190636987390082740780989384165338119265596065088368460182858666485077176324960916950068976106458387099316855821740551634504653181975021316797161611393674911395005029979290007690458571872273425802956887350089550229533009393674874066848117539179248590753337168625582273407252330965628892213086402392033840521119835349490295847492874669393455932026665184872307378946020251982538917108938504569907288263410259529042375022758666719185960132549041304933792368334406977659984903691990697278446125538447729488999064014423729399581487990308194404880224864515462650668564009289834993235648242874844602331637679455114547046682200644150984650067104284101286416400788285746431068920896912219492435685377918087493351782184214366809659931395691189313587202400767277315005169233755902097028443508012021384673383247598956513689506256691851665794850379947002142626217762505193979242246753620498162381061609691594317736436794414441346329653283124737148402622954280764969600317217031190533093821292491413061010638962120086338941434426987962680606923233930026051131353966372332548357441385163962708625258894034837870815669424601844804281096566333929753629656528109334761683138311013719120829557128106949734663557745870661057699740796067667610676467776379080383168868605047728060623140461601203379699289553400054327947494394652598485687695326345699806113300258339184124323163468366173159870212011301631947222207003494014474285618265982681247538240349288731857112774759194043385170636020998444707771184412214027639589689207815328160982568034513867074655081528863594687459757638417934083204930431600684799563457255598044345308960021718597709599753397578726172083766854640874193961862928350537233125018541051208557285461531374007197316636070233525674003485093434304322560499013066209445668513388322355374343139179978950090309701445936932490822496028790470940367393945947387407864214301231977074413169534202292363349607313884573330760601512448172337747569050576515446838675687817759004190334529426467286903483060179250943799741656491760930748030499625345877798780497054672292707750880445760283814235465567897287833050705732469341570326722749589122699838652077405695726241974297197212458986484698977422758295339203183004218202947122319903403446777149403089508137199738500779304121255116763065850826731362558885436226350111943116524954866458335592309165103902542638774802727687014680505076527935329466517265425224940113934527826968339289225885902261394529603092520596346293215218921757494791035743516269051106786357456033587838078913852025977472508497181488888747101238319306893068071355521251270625731899793134175666581016921032457934040288777428469126135867931430894589796161199877598962680961048816802344955535215987533945037689841096012884203647635598251877047393697833142819437253134463978435343555217237857253671100704308469672564444734845184877644650792082342023786575132755817796477049181411419109900640139102479892735217906954671952491698359690324883284677024566341194914378907581769394127851481168923647757082157264323250346570445880580239029083971639305457998237979833685131278575223073234990172061860781467892303358594073409936422051463301482732717146118411540681493998469228903215692179068615598619218011795728067000478528277688936166329030469686516401374122135403959442644352338581233136334797961880128848409386325374381858425659212738700375053385635917847814067184261888491726760509148697171615394879797050070633397389779292824326265387382643106053669073524860284396472329362324964651231772853222475509110511817048078814296487348042287683473363493227598504368686618459835562960210339255557971203768253058279482567652798126062845703534316461775239911544745874355628130897002729461013120642371312906420583992085779475012984240855842420888434335502515364705869143259529869251465866936382907381626519251703973271305379086586904650658811238309875852641747911250918026762662089801178114623623105234950220789225614806874216387123283365083195035247778597010582463811805988147291306551532270578015250062092032868513324992346613768073927236290884167564417714769472692206646339324036894314314238462041209416111549995055985509666668790806706420260115601424790844313628017373939818684606854699763832089580479157711159159558220200894279962650423950245810423596034024687481244719644226940358557628514053796258521157134711040698944391239483098327713271580527606596249394303000495400539284944534454123384394358275054727565485960525499958125606183813487293897766843491421655938664949596195971020736315832557327004410024438267215801572752099825431758323461596258138286420697979980021097603474682080280182755308299179410642587816969779786510236504861494255552221985588984868270817999271850644458275574939552346319283762720893375866648585620665305465109393768042233078501038744627464238682898964942704469133625760800232342171767677666820890171792176734227909410129408989551650876835921069639157354660767399726462876768426874193726684630213651922701474441182524454043857965119863584797005958781622354358661298823753909750368053912151315226239524466965414051749913428570411268593905527363115653970390912764089072648728176440964199106133479976813022262667570610706608518910683785261109013568767643746265003009391439729022603277720975625067154276563342589977402889528179038620996983408454591684893494732254933648220721712701453024610303567924265505775460492153219047147687434473613148983367417886777304965515656227140750692050749276437124830412653469850881517047602643602165704208788042859806710873665257292911404299759426719101159870306185751645278683060400899636032847127284009965541311761986094648554306602572898680043418640695057008335405406014965338850415936502559410325036244830518973250554113771089509448326407688074781747183964779946383608229726290557927956201958022780041169533826970831841342778811653460396994677395929211166252587236867816784544658743722360679934120838960470554834608430275875822436883809691142062106500867144685663540708745304402949328641694590871217778020769967311409824146421319427610726895820124034243385397001110783110641805906983956063562800294141943348983189247552429366412959922256608102288981465791406305949194871696570959181431334364335258684513861994214478690319235111376106245849594272152114624354914738790533857229440240599961686984847584707326207370724343131912887110417413279295741770847275039484969771914647929894755867765122900368560205697742302844852932274174933938886289212875624863314249206909724244288642984683707579888097122096519060276312771305806261899998230739725867944348549240195469551626140453501172121619714904501140536763148928409450179373097908293691072421933145709203515701377316275584312922472589878929399819368044204456012665115719356165549014821829508514997179965144569629859236990045327252850797214203386245423557365295309098553170046523555038616420260418875126425559176215047511509143945265461841266084014180426831963295146631890013824417370085880120067753505485653819627417551894530733904771943667446175659781973600134808769746211117929648831619428128956658113453010537337467644126997118774497568726618327438984905201843610567859250181858490893431444232416278192488972309010637211750952662556873296393224799156982417663048555532742144661786498356628810854409656434563728680070382352487029528646178886388814122406400257100762884095013935084389319571013139633506564494127578010213704364560760884633593967296449036984029506180926025658905005521444585432487983597924210458163716315353425522738002564758760508430433450860515467588455513070420028729645260401870753772694335327580656682686736783871951149292759710026869504578331704906423061231122281112257963527161432813999155314955410870721188079391820708063843651391950483232640551127447304212470229736780915413825829897116445184783264877994065839647123306570531167844331870643124969429672253447631161505395655215690245748228614908009157301670062028239681213763701459984124822008693344407626881234507658405418049993901940310495569890436526275835674611088302709717275489063454940180280537981630868799252175370911577137584393590237234467688222098147631796626249984927697450078417720563734264314641833241699246275194911348684414010959733817498601794091118142550707557949455172293993271472379064907422372177540240065030187205380113364157881907860463004238393075573041678011005838616394595825529087650810833400403923348899433926003351152443637736324400763591416178409939301780770551193816713874402203841873544619531387512421119554462619596527053570347144022832665872088144393205541798306461126881660026818305278609405422824643204296751388878874896903485963117280280660496296481384300373492965365415617472090430705901333449308258499605079216382034426551881079932672374291349775571550696567489167590995899791368877293289324264474694086882564716449186624572011206221841250582948275099642359086241551151626989758098881108597330334496162863159104461222433920831725033941796328636239631886023715830351101334784224283076490717282596175261950702934281236595372750087464879728011754402377700587587118338643774426467330419271155233157206004891223727074478350492483720621215951365872116031221605011254080391326640216045935694132848132222035640252021970019600700927202041860231208602087059098367799048224388828940431983885976609908304270917877028589062098952242502838215100481440778367821629929142846771091060951042666091490037541358385411751320327895641026757771892635160370483240030742949534062758998725063989461699576809830573117417770587292779049538868397325214629891049535391726137577227291421079541677757980579175802424100900955956196078824066724446513105500944389362079205112643762355769299488161489358872199472200988592400674064550850391739709277680147567127865707789021670390188192249666729868172869457376770112812118047902074913941793440684319708664871022466705620735848447583294096752374918378251623769343665465187395495485789660092928483302307079290358667314502066367367113740532830916244049227622522391457399189107103121822045245163402704610619687905286791261131279101462335488768788958987953422267134235658042593620785093013221212436683934749532852877882864108725805580630624784884085531173912219278549073871208057782402978525420093394628390895098760852481565916550699369659161105344288575142221196114301336754289268298137275368158339729057668198620949944338303820615885886517042898955497300920868338975276335085905276299169601072784338624754116315576784475165322032282761558785727850761866238138787058766825027664513837698239531710438125314131923673283156817192587232950975279230120671702080903266661724391454327929987548053517936340422128916131985805011136943120097239727703608925770873971676824852782320656951348579355291913434393796584989693553192522799311029769438573613402726433750455271052024832436966669086773005899387192207153938129797572845002570289762849826859316271593347348599447556882540222402874331561417818301329668848724083868093648052823067056517852139716716590368777588622754014477279050200795218381495274289743631272849984067857955691434011833708497054829529494912741489018844814623516180711393331976097184571434549264229595907768495398588755051212337325804334463615909535795759995302312838740418354674047173379212377650112328741334328962163617958505274706877421965111852908571708819370244282597446495981427884733811010621134030804854368314511870637183523074189063279931674082268615872071012402078264297452369100217825796358599730017735708400128727188902205975558512939648697350788035572011436507059064153593222586750030854538758417850059517331586372070778809555333750946197732115016318529737524470991431313686947577278276891117650712192090256482117231925352107340874828400516061839516116674941771147484690117436113137355072290658852093501362334867587922954700508271286548472937090072591836993546450341526577625019406344435814590370732573927494014866817351761089982713248235662670039754787080218334484377958018279994833441110706904679711523616147988475572380399840075442004598698966809720338498368505873101906042763042957859834961191127161275761223058174253655254670768779931372364613101604347393167170295149135502090691443339372454959797144854104407220880129168603499831953750629546221729497013060416755441266189343343566808127738420173820121994955197407846677064104350150268115571186140371917525871819240956394369745335919912845854624804559005471888502240295505872743077304065558787151415821806479996533995303496221074218512040041729111423457248963151860789046806748593014213043331427381611989159536600160390718160314721162183004449446188743795983797687363821666767300156406727871627340655346610890677756424222820054997161425234672516295590470415310053609986036701646855677298803779412239334457414394410609541749057471674169013858838741216210242689454807445934958221341673803129875685911685556779862007416695458122297538176678004061777823475272543375830330865748117426252491353237501501084615920908681434513913745273373023080527486464748124539545818059595881851188815246890491269097766228568803978543861390149633419949534428842435029632922713571044602727740638896802639228476541919710273024978780685215694141954253993217281229474246590283045807611115153032752476542088999238092239220262156649262295310460605202917248654422479557287829895832163480659536043830393485492693615435860080015380629560214171294837355987953237798407855724201094359447287129283156608011819512111306599499128966005139283371366600789808385007053330473225788862490233128709302520386045182513612278034928780997277930844024075807523942696411946741766144972109745368636322465717742234698474266252699458330618529907070247977913464782778915768693203793517445500177940977274916488279453037863451870568866969753944410423779994560534198606123607678548678130366916861408859852346236555768589702006253931397511082304490184078886705947575409514513503854636343489013336549393129995843800403584907287672803455131745652522172210682160073898031801566213504417866586785067167441886769021812918469991286901952146709828107125585276963155695049489050373455568899849974603841266422075799523267828257763291127762291539176625773424042041686227856171780776696794652068030858250825949246800590387749962132475253931758502097612290890365208873988939136504639535912194978978805363128831251510398073251822703434660979793156250354754301731316072884048211459668482291562215913656196888024208894023185328836521358495794248601808723582258360552777512496722209782707011293895840499528828827408300862604210610959604927168251796377155115012905280192147499279209723246680070677253907572848609139203799506521931348882527805188447754798335561443278715283900704905320547430782701610878016256845054197448467988683720270542705188774643816206990169293109695129950143343701428257276623028875223220530287289869355719727422651102735020831937583076648884444042046492572744298680115438447387643019801954496173295298901865723801023087639853804493806987946540838441909027906052556857306341820799919000915495282257959836763264750359104624421581605656643807896826714491578933683092780453738819861213709921370726397543544548789367011519949282484734526828988397123542120456996897435942094023095510610068319934363903780551637546523849357730069213959895032684249892053769628975517817146945456207287714249372953376515742796967645845449728680510337859369423975385640724937583300667386638890991321072642370029757453280535344649650854801399377411442993944179622040658974942475555882815656980661458535235669858439654461576777067633406031999190505102590823622357594605685427906284271367438461648357148587705114246469161929165370761503052076548231992646779731838758454225311019924036597117597353611929024861579798925193606599962021311042587661298497555498683674928971374700184891121239966754460799560117767681248931656684832540387092322401487681079788084011329730904625730696592239725212506835413265200775439918949038012374592059379561416545603560884092470081053824294326489375288729616783887918029600464979933462485969866788679293697307623559353289158250976661311763189346824543016171261791312589539071439660865520197227848296154674985575114397570652181771128884197977145552610208207143156173657103022630083076847993428306319642988999678951217687878534624090003471075858341275532747215021089938068524571562157425515266035352911222077363881941695282159220972238244395799939619709979055879187473622649932193582762970326681845270957874849451950005478444573881881228086036411673291384923710632541497787678944666083791409251303419975632068857103179055489568777354908785819356191655914003217861392379087120033184145244757680088848140924462512573128761148843155762454295198803368673958184739218289524446751183085018356659775122821558829748195477993306521003245073429913817385628745072127605381966714601883564108452465151545077084565914322729660926265665705896973135938437048322555231234883713994285537401232060317499670093679107600066786600985104642057229156274899115115206575697687377710057651615835208664939891517867000563464901824418615523466250715407457149018373219407054925678557444293464155359438551706955313100445570392305925012133101199008324267611409864197292600380089262375902039055143998723461853283857827593276675593259724381398536709229456636942414115258797421048494538694981211065834027737522763057883771221564582303718147903645482282682930965529893777548043825172128247095707289555142067683892621275824274888486779288746496151810802540864846113668993773375713297986615946852311940759658451186064367612401669792254525835230554917827067465693025816913104811876426488069719932715869654462813136891427670623187362232825383864375142471030366469058763317044983817732426684595540363665022727793245251501622781059768820620783059963162609350842802563303745478870656973840401354282123406414808032591108419438152312852421688483260676002984731696379033932162491733583791619302352572175233954465995281025763453718305175029735467883811904793426994230891387960518712708424064234885104933493397666338435317195275955047147448087663646102163351732826206447837335347424510445904641529563364286305478241700853199339761401120115820710804838887164442237984974519128746863837547546267914872817088717192151579058757671957722110405044743928168236936284430561273995042771957577417698195514583485798596751303826294157986732252398946164937767800932394320994019091092546136247572349184510025533474529540048085095577177774999096283642858171158046812840183581383050938123081368621435511154408994057292032551063590769075046935938607699495766816387915228864260099526830882151267139312476849481704498129538139469965556866850389901359309275815742347971251233240500830970762196028685087430613598532330944685939969816415664944679160431896681987496339079314952424784828168778050196124030432434590749560804734554103416688556104986139476574700663544871446447681124687343506414366274318267441685480241203052824979457779273378911902773768707480228846428208982313960652180888533787890349867190800892751438329620975297043784354173475673323510458166250027392369969906766873783758634168805447003345717791828398494879720299479278077098185078602180098810520795552716575604781901120842066902408036112871451410491460247629717774689190296500710792512704135352934322391580587684167785431334216675131142251782388271645007842983620231609864842861094313463047143243652040987242422278878416933647124038596369520556285967187724379615438960443304969686963340301657089642255749866497198751165874168320555965035059226656381633130456766643109117706776170863110546271431584940316127701990568420081644944442818755839147168080461113231372158472246315934001027109636911032008832658121650744110333073401053077404190123282457617982510888004000272335497177104921554973883628479776702055595371173853089125769911644627637188469631197212325427636288008028239050929201049365617048836712220832421046910164751374484524076166157647994156678250592640577017249196046637984494045549284488539428665384457925582257888850627226454612385054898694029759112357978499419828309573974869744855349922049789125603593520042108307933221942540063346469781348489998200664443775215953776797291030779454498578256482030794469606849863919872434614020095505445832503834159266038156814763911440029843777204492966041342658156889553138057263533820991024962894764189117261167230899350081751704069276824873766099530587011117564559094665718035071254158992962970782313401024054098946150923921086262660266459120217753033605760319211035753095582653443819193934706262941150611841795888768173028883084632689611209585212458051119420846144139125869760200847000372617380784460046914643294608658102496094977250771805970429308218616055691554280137113667414516267260951876502626303184436170021521935014811506585902070322886565794720034594133569954816786029670419085906254388109134988231299269082683543055195593102565930841288421385828479777742460318052337563075985476539841410370275472486058138276154485315999322891462309064197728685982272972727649193898594835582014692698836223844364268566056646162325098092743829270691795438799449603487925580853253344289969234069305893923717975625164533262669439770330207046949273623550698627723517931756187052803194721395645108193212690542137032926976168142320722300611649721898785430315902931683830623863365317369146476227805758471212977372843534669064531051682174021942229426892360421657218562502792837147742589967177171733978305416536984295215171634275720991300049884746969126694565581590659593749706368222312992028427147237421156111718143090814899191648928948832828199059373444512922439417217176823973258684227604485716548607135699226958875454214372620404478151098057866069695088496407020147124831577211423271848298235436684354995384473127301986595319771017963545464277746771496760521585501069525294416590942826268107539252988369068783646903782753913596996809086293603637475973567556043558559469495050171312014950613428878562409665473518398522196069391436750345078932567092190306725642057452023985432507954447714381076108579785304912841908634944775401512069624001200769485754552006765871717540737377131037930303583203937381149489556910069225163825409116204395031241200163426688733160618572752437306912665626729909388519182796102439101489195647881189831780278682741344722572380608921795612748072063472304869454756090163098753173332616171352860229420636461083079782183176576779989135281716275665214757141146677175196734316308422033075660087081751825004130523767419121971088866800915002283365026279169541058255998931131023233593726500807289583545153055054002050830363987548931969544686147144133662155699207494694129524608586362470252085052127855724978410728359727075092658034837324533209273700008456273294857601882246828769404512695681498980235443540292346963450733984462429007031564621981659546123403659894118153430956317036623335278841289040549437067284816660840132382585630744176800487163921419477319881761495116733032408942972960842511120983856750155161243619603118274197797726685615515379881348158203710916875279487241169718766824211875338526068923247793313148688687604853714619214065992055109490550077160948587595406860583113905122341311246750307762815684520714167460744575696100645457740301064530878734050984904972463015926571569123460567467924748671867028174198979165215215671051073803384954001720291111940322590416023456172047016840977563872500226935265012925251354985955973555244567954485325559745037608927322745194977031838814796470037200312519440196711781933028117381040723727823605711678422476884353771058273473698022184018976542231297812515716472213840486482965211689987880137834851672264609502968423315706481130522357793400092219688589962922714272641337247511075328733356794152025484773771072798767865054547845407160942410086236373142632265707539556628249528473125216119213079007028852468558270719459102580425077967234914487100401170801313091149832858302072145218841898678945394159057857201430381616315007128593250136915508951358399753315525522983083828394548027239505796680622786757700143777240042008173417501186035811294104986801903936107300399562161125351062186127752291414620707503594111333316896445920999683275213896423674254682412468699903017064205132788145897452089815439393572494094391949928310439630412517690881883793523034036903688561608505251208421688689454306988254048752513961166646394151096121352212543639252518483574281599266054922621047470182915859123691267747072295439940925134027358223978560062481702001598176099430009810115790563595254056779430747274115772268783838940297850430146857393553814873906483510407405939268593879167435828213308592362788343360035613184555428039952321962728093134959170637943521658191305445099336367172682293292687007431752045244964890743404435955596432442395746262387751260950270985206737069484649118575790969458790947141170068964019183032362148350323962579007922501964697623838529689896321986447785403326177118900033276955511739928704915402795972264949220622724852113506276015660642045712539604188822672540638409567261132787650940451139476869998634043719490323349440887053888291470363632418947093217368399606424155757102928336875757050785740948669432034868477301372686804603564368035330554184084534462161478808849089031078900184719034547016826123482843293877471873065714749431260796097886372738816254128593288745288662790709204053710819683396838130092759402950269325961516214046154857793397270289312420435248215785157625574616348213225903751483176017937642410614397020707670323226798851759674284090279231199099203805541248290730800123993911298267225884073163841972424059868660055243431806994714513647264669137879592940579708021156267926197918689048176857707347889709436474239326635001562484070294973290884919479522959909024172037944358541165785721228275457913116086170828122429578584819602088309954874946546133806628889909987889539694553042659724040684702355010420540927124287895670374239588642412015263401671722458401252795128827105643241781459191879485649609726480625249811902127595627464048213174249879312230611552378505533828485508685014752841539332245829113769035135319862742492078777489478562188108479211765126467715440719070818076589413658039307314717716557634165883970432005862711426060348142634386239557438886404026101692105810948285045914735471777821905254757465083648801571978251629819527955801850552432601770867076203565150831836982955942013682181345076046171771769228177864815609705360901403974577525015503019051460658921011418941496355962410379489000069722252039823425851729533649544678970505057026515071943622705233542242668537507901717447957857372711781312656261337677202896091581500015051217494181511005455799957130006947459234206061454332242837487524655692765233142018145826657076815257240214952282723321181343801883355025177036383240839405725647951641692885561027376797220897482108504887821337513278462503605655188823744399053816977206583390234078505343234658669285845900337461133848602021017532855674793097112891874142541986001208677127824056709466275723517587068259849972991626319502409971853053772930745557127100046423834936999845331145520707272732104719080869222018417975793434414356759188686200064237245071092267482474596304399847565363529799637004089243872797998819619006169957166788615555800430021349373623496657332226212977179208486802876634242742504830830029919535525578477456986291444979209504944403749567265794232851695211392825051402662369167544369993487034436322640815067975092731115250436515758034758316364037385771418712289701907329530739131453471503421034341361508077395247346438015745046182095529848036467334210745941726699774004923125855512611485145626078627435908129335197199051640292487881470413023010611936321479919394434753507848599596064124988926558685549439950590597639636447421380029913325990003035700567906760568251519422126427527362080928411701642818188559664036994719615316182135549696699725835691696212581020982525245182920787012519685992786629814934806095749314647682596952948999179072028914565339077156543086950306791130415382722381826716432955989109443127907132715602509176186043071257199269115636825001556713533242642165111740701856796178299288171776914577771959710197027970751651704673197916159259935117110485825702982164394315752433693342432162252211621543785643276570912454162772293887285810987597756381678378312495233123723633092516573812284414157134627068165219796686161949712688515072921662548290033038806652190864083335482064701937653423012965901023802477091731523964789030224934038250298880818077260912478515873532743516013861724400297043768766469552868678021024213546345563503566570525773045334172772039565852529109221079419416485407064176584050633500050884913653480426773211305538164993767985449164134265672884937721327810373755214012374736295981888235597122594342972519638779025032686554603515256705168302520560028896468725987407212386895809861698729432247874837274133554810330122184694702410347948780345799921841961017975477244721533325694122795434631913991654676358319710226435200021149894697644998204714271069235580990600157763845989784092035598260441284822461666341259311229893831198999054129216448960332932054547010667136378509232507898805409462170850265383105362859079167568367375367251038556402625561340846535244365215677247574369408754783316669227621662314436495486677387353063498428256349368218768626426474738904089065466420782300045779777492472339160441465265992013819459304037977826799000007020507330347642066370668312553676602284972163901083314976751978937533862958030862992559957599472904753507037567160247609200761214229531475583174779408262152385521905129418424051963530240523056630707566496046890245949991359528260501038412854237298907214627695957124658778935037488562133097500132680695749677254219053729250606500735567872286183261401923948441468339363498777534311873047692574165677261260048868638220872492435781216245114002958965685482209059599085079286120155377317103935615773428197983824486344793426700211986438295590653727628721062175246231853045428448477782206017467993792748095680950337170592243719132201784347507902124927027664112224453800714485873397329766386897000629964959192174814566255160424318184887353573381219251491147516930592338807592793397798855143827105391653369887340524717732819837440527138404046232457085441855835975265332922557117254108118244353708629253121175717948333698582453844073374444259155025372962309882410183837991789069211768771782345848734264445540755280531756826804177374982431737738480655565423960751415312013612946157053143921828441031193867365097666322865103930473389210731068035568643969655380580577436146663562353773296530116308070561977798520415578178917331772271785213142358214000423503125475053248412017826153228547355824091505988713273731858380619343363931282884633617283077907536421340087917226968270105562667197738711631701363493038557920928726117508546059396881539423547739579939182368984388815295201859351996171915325249004034134256401291868219849380701132587592825331360087437566348909881506167907852456265889677989965016573981632118506314382486693651212582991613596018480999389524495946768915026233308039775325218534269722650572796992253030097185016808792265968463221530388617059114887832359090108782597521584871255781360252789013259226355878273169471279553655386202396420886996146992046929541530874101792560376207882487332835114709154490592566252574627199562592099041328790341626885027514572898312928517792826808618686654088884417581795892427785415923987714652595244996504566411038472162094333765636766028565810189664791322898373833054515373227331641956969432179189649888129723802137663119321445395794758064831634566110804496817046508295109557851049759321891454855455483324978679016540401622593815307970826983116163548500032976192991737171654698391227605086186196554422382273522378612003615840377088085841413557048703105617853641589210455732155105168350477545165151609468640033200724626146269973019445758675560265099283325785369109914845113990844922676993261484966410313376099275648280281392299659037648280269617138665265828220797707001101189471038540646519192865976173788870197010568393750382486291363431206827237903603109352837691111000157687140215050064901109129176783626607795733167722866492533552206159188559886704651938453953232848952427635357523696462976925192177686940078737080845480863200217353141956793148737719666084106522543603280599606012424672829619628470892776948607704571047566080138934612392024166321206272322454942936805127302509321244623223782557928597004700817799374154413015981286615084678266418871994827696255045817603790650637251040806590899858504265915395983799644672164436789159763022547850048452845454537978231420192470372208208639073589591866196380215322625636220981485944630172581413530327398488027285068473386516347625926457853355591827585900120288106652876267646536019853028956447851238142599348651863894424841861287900984925853215713445313709588010089766479757128506487159816132003364807834666277262836713919748318284468266886461118869021489265020475488498218797005437331039648690381311586470641987457475800767353162683618117529448698819155426762123826563577002865221845127450737074779574129443577319091404976000254269001292463153992567888842267618558001802485008737920065984390806904088349069989896737782106802928547411825352268332750044509526492931879362438279282190929492417929078645095664408192074411377136189409139808025099209474761378492674566132016437922018376669390299755079848212345805036475039905579750133350434918889620487437474969129288494492189896421033760365818322917941286237537776223292556679242466790860996590645670845453808237234121707261050546764092501288276360763064922738620490326588058155143900653423925539296526596760218146573556942580129604678867462498640159841055488776228362032855021452198708266139679926956889001049156649736654336236401236844257945206942468764781791169663132740099206091200033003603227688067120324727777892833798203616163441451063601238276344745371491171314483624969161527572957861445038645970548626941387247539813963858499213083373384617254245081167991855266205821896080646061525534248160996327839578173398999661557080441801240659940031008302682211292583445246490700759278061626647726677718409767509748551696707038357541568864415045703888266863872531576602262481543572850370102403115285700728594788177726174376113340789681698801411887115598890307453914301335205584988011553491612501563598042286884623442513269514860899498371102499347787757325561124812278518800448541702909152722858195023278401049935612703592555521541255532157240142353550326731135883124338201654066460804578706674023665792107979989168050039985893161134017162174142845855322898222224675204971755669887483309667714969791963566647211132016165820773862119777301549337643845404346376493993515028303607851200128951988884889837172822653905983426280432634643450786387574749737280339609110321060859374773513579468465789485984794752866124382443741462936636325451701972907566855941273412853252114979032663684518026184965373703119573881516861667068180794309088849268529738735100333903970913838804583126413784695260019685995064369238156299459537559625719441178797868202340044950141251278972520970311859003092777000184493542891481385259275063711272522408031431956571936137188358476551388866178454799739903067307181611926462775604249782989915059142694615627682722929605030085351743641956837097815514118531363168040424294459635805942303507322247496835203748679834408286819214939726181509045229470801818521472244051415966382875451872835565142540522056684425990152824789545401242204425694959762928417435257189205032073839511920724217434968968337220278437607576404446421919151557449318621422237161152489965129081359948779064120506282878415886209664011065858442152706365624742702674050803601921604200949608651594396450365511297352631214756598571528391792420005091375700440487344891923504790946994818482874139448475490273098796313461152034020528602064921681747625548557036520801372227731666769179823705646724592480403094069135106139679435781902802796622512753371340962353672354040771230908068485555245171462875300090706192685583372113388829932809631611039066946386913118689286943378079799954270093329638594756110840014182107201578457347306777807398515905833456764274326437056883514239200534128174787789025620761071946888110365026991046108548249495191289252306594948197946860973000137505762343627171705171108013841254104237888798569957337333773395084534817265129493610643858437289257986955839266463222268072719752315687915801193205961593770601492391693167552280195945926657586186180312617919905266435152527177145935505890632191974321551939730578336840026437592687716185272025669113289113158553427138129008788900163211736144718856129059597030151263917938305820447696100015053846608618902965554787850145020854859196289570430225733059742728990563976263967851224024131300430213306915864540380881809908147829712899435954050201462327565832781278538822641140650871760952024040900470736891382945183962605946533378989170336300553595086700289950825110747397922879717046030056266034128830178535061960097115745237332169008891780709198044005962024787942101216053464428892252620151799097523609309968703236313896688840491276173803503197766752228245897312394166061833463327299681083156444415422277626612561123164947336538704514945973015659154075891002116623171396555696522909954563828109359380578367426428658913702765511263813096392650352029027917720646772253142722335181287070785399809823864517651328947424594673787369676327868970850374544820494530019484297242017068960010465484316804493541831777214481044565836408938425814403597733638749839278326428876282661504886691818843061942031752948927845696775223655446294323049218247321748679132824507333781089585006019621305770002504562345870532587688023007582569675886882945931971304452588914053029124348417188558261294652859226939835290370150840803233990867553485075899730333771380203976139738026665341934798780517048716237672804032138316527739451595117053267652390664492918151666980618475672775414634460497873826130936829096606366998178056936323497821990109783943230842838703628016562337197393421985902582513353770558063355983115149194647772795595803173506465520199147610228160811234093920622105509811935834110627701425764979052837833894319283797282494895186839603459575838429896974843852199256488442826893687546623968844234695002922461613055658647574888326971422282268291884133517661186767925882255189017757715558862592982673513198383968781508539590343408003884460705002335367967979742390326605458814452205682996178906023420396067894248783675783082695467390088751167653426174300507610480420499308752201802515781119881487943949972513431013204294382097181957200565788773197942094489662478485951214513785851666859423731257461261349968441486691641937307341926157338776758315461700745978740296226289431766966821980479092362971721619200535434856113127892807406861944883664288978615345401491818141213220730668563941897117683462092235839291549889205680445222053865627366768507849662298708718571358269258397862602054626579612969947648410191488090064415673199113189338097893619912230537415001702957988773026333397879272823767770771897475626209956676917657822746667873543483655290179421409978965270460847851396498108958847200460735583005418904879142568235953200556195418011671490615544935189169642372998382258956060046675282110042324009225241750285570970927339623733433000509035838406258136850697835870054023531422857249351206815373507979637330502636158720626952652339300943694181417703940653922251158020486982902263051855107017657761130884364622153215990474232953467878202755266974543536033730906853083542336301931110035173188984837135918731972344270957007297853950479181636846646495219860635125633643581775591294639007865493389759615581755872726712651341356615330127333211920642427849206133021653203122053770308220598916479265184134180614302281167743349737121580996902287847750279669155797967140741099214862737731197006159763054636300364182851806530048020893972657272561505959167350012807433355513374232024112885123563485855743857152137384838195496443826949812104698097940408613871041506218361112723162244499755899208550955583503814249149606811970714473646335312409473190929082539290966173911053057996780795468355783840941599424606849508792086839951782707742883096079038276763631919165846896725859164299025555699515868895269129784930295967778049194414408514163323071016678436789722486426501680263661625968314832895956248700344290316155449686832547145044374345322759760650487220606260900112487571177864981769637707416802619315839694382770369480330457999338870721073040540956423537342716163076415410036684905122146211199053810206804224657661703348760232286961404227277408486314075111098605018501450077925108153678519151889624696649640025750936962914479871617357988453058417395122336369572560028914786656842950841815601125407021971621589876985916857840184289179241248709573687773868902973668832360265489568731621551784273125676722454882872278989974162386314858660541354255479332070376987343838166897717013645349021791900303243125592421694166151533034001021449037504799730564233847613670899520670321348197594573085711237841529129001892186258844369342452518309497704719740693428573550881683987871872057987886445046509461171900824544603142109276861079987945880864173944732464217439839711544693036744733224370093007456698569213171033699379889011422590183356534277773094209112163470411629856462131656673598925198969459256331189658841736005371036163788764841269322667395977016328482232924420208178068645151768836783095011468146169791749601799388402743456249399651418746859294806228941084560437487578036319258643015046371399619436835644389428248478498271121261014254864025795261180704592366733146587413963175453584478909505279347304250788424412991086845993823556934818129072047432377663098073480216528368491999063856499804872174454030030776745382527577226167460008439564630696526063928472310490838670239363408250573060137227756399850174353189065301605347635822916105899710336560355841071795607932654504298403545141439246841706462453419888267630886668972334816871273563362024102421801522584711082864452427167357581726338132949730519513704108735707567795561260184486618722189496000772633210392834222129832407323626011562790010027449674231516563669773112303676318068980219915903054146076710804845815713349517283211688329869330032712164928898739886241369458092058912858883502659563722231542766077685653612166839378706302597132976669375578208103110985405908543611053552723033564375699941920963020472422559079105068993138906928494113952762179383164141766375755306882912256776094128405905775540863762640131663427268106457306074966416713167093371887892088760553365847260741775915652382799239399611981207633425348579979444975673334713692222932821791406429079221118516473139824720574843059255078339379780206708391679725224843331952619379268869217493218652823899932280093210280345830971769268368669496417663515984149145660781454883797727156737163670256655198789462121799102985085034953146019067452487577806201076193413104634859451499760761635975715130642104190240073230855917397079261800411372223383675672193493360456945183840529612230857885504773986109242201724409557592439641052561734651114148947697344312942806013168532247878909372792592656215887884562682974125275811955279700770307008612973563896108724608092806674636355159228903394961753035624740315551313435527580899372196453728295824127676368617711683656910272718720320427475125980942752168507280174849467007647750503870404181087143783726683431206301024510280225447709591885732726548490241103628540053902284972026703440163517794854553328054631697485134907875413618886764957468826887676528335248420627763795389661197098204548062978336267450299228383582848168741362615177279665836899640768604839377462373193899911481517608998544804517210613132051906963348810084788427417159610040787797961382478151951865931708353974564048956056634442701871052498499315297088325757490298409133838954609322524889592909825054693420826184936780480232453779167887181854288852218335197981797182807214661244924157922934250793120345477790685087295261228421736057829810483150393389188415054091117716452445379481776060649168153944996625007981666612684200316903631679513536228241941112105172204162940434574692418409210161498015208552010679213879013375941569245492940824153972986387853936473406404836365944981635625790775884289959082423833196501484989787700732807593128982858092524573232447305136875547547270199216946087412893991216408171840814458300055352128508859487872593430759740102780291801887901232528879192478592553702842584478388453971957337884997205326318170762228172232452811007881116818566988513889760607758681676636191779833195188542749109208290086325618848711978783230286977434211227040941252798265765222604154438486948575176551401087763620340636603581728668381315862910828305443799840871613026453543606798717000388545560836128728284258006146349984895775403483273454680544102129432988420570109822528418184373307273098485539693103568809687611940312802079123435266802883935559252612871685682892791861408382496237013185080530679527419258192138640022504657060330030294592357080641751848121705469142013334611071994435678552283236882049864238190722612523473587607614232101066928664033115567974499842955896108681805050419546201288527689069130306107181791236891089817215917669447052580902269156833939621177639871181073786822178928517347638203708255864056515290891009006178168013664540928616283590242104016935144480632975025726088859924397754816528391961881869567860552697651660254741155799805026483595074054685211748414774617295332028037776141539681109383212036117937518841043435436225257545840587278941304474690779227270118121952696423536475258730248348951377280693435180538211829781178507678074009546712126286002249173753039233657168721692776097037202952481582517443265184988727397093247532025243431876212322942528317829334636711802539282748336514540544362698028276279337297420789706313901111679847428600382591746192649841786229189831253050844940833105738153015765338062147580916777266963006208130930865020332372871332986496520380753348159044277607077863767834231977107157231892035640953603207871105067256912472987812164294578644247390219946350987566132463413366027198811736021073879833656969964986225006453154657471065122721924431334957956654388830458430436246989978046759525142822957290221886106294011516794662108429141212347910183404281479506223162279958115283847999817395462932320138144507768992001943183138369201134486914462662700504854090668245727133344213545286729376070260232050001248801929378446597115387290269321514411984516902888966358500634458438190168855207400950593511270754588234273894074378641384165680313844370216432046049829414037651268651731924744639096219110797600304911875391488151379803417733360188644823384374501720712837685292782029764612933379391689266525644610584709663602850833122412341837028207895785313674072017162658098463841494460438429829004791784230569140061524165728734857377145758626647671867057002565246057163746218317546972300056176119288764600504928805152626290012207081234814519117172557494314948160650986641233079854939639511801126328670722436950409137725450824173042521003917002537307020688337918003274374368685091212953432000249214894394583780118278749303550447713183492458145093808151175038877476442435220130426316040486366407977240857513484278146087245289109016986702830849113623035145230725355254587958409504058604880576255880567667464694267047444744114499148864948516557360358523141546638133295990903681996340201562595384920973146835281620569351581979859205102827986627711284366938786118552775755785143680899289967806866864979793911483266986073373846228276652552956294938968778751748576624404313422598924425553307485053198484574973832931606590220091770107948786127474879508780326229434968113336474985765784648505690329073196707527180385527078311516095710747614034730638540152388464475036064350199140825191212035752438208521677274269819751113466102971915164703671687814175795701961812725464324689634147064997898315489168536339043382052719341348622552024559917538565819297089773432130924105476609196687335058134188917264448839854096760672915947722340246382151566867486784466956085156415348032588072502614518730530701533051294128800450308644166852017104053586507118482606680339171706188373828732380581876311060231308336880547812086613934179370165811971208901240628841594911321739866319753925067609405995615871830199322999336936379208474240981146741418947314013237934215871787878577643607364833966198260739474167098920302413681506104109501437555077072799580007480777666952899817843100241092708862079138728788762119433289315590113744679554879430288241991731987043813125527698445403477095135396115089973404309030153675962034041475680365925713060840720512599325103836864284583748503826173906368001672481869437668209067592907888608789632676005688241692550082384259946118929601199735965112038805735621034212137814189618324893045068124871901192018349169446808213836091771735755022659127500215456663662210321327832573161102770553332115854350084467850815261729156315577865382661697522800865364125866208191020253575167422153147424489370899937285013717817370040516319700362688013821308558774150435855347676940554101694862567995272414396602102257341596559912040476676390862185130753731646996991460553761384317333735815783140463676657350182476217898071697063724826522734152119583246620497098440239962180689244711505931211987999941337844840729706587986138820685233135893454580416981008401142346693706604927237649294195579014251442929422374733381497184349790614646531484099458653073735797318364570613663963794189473995157308539860507044409443703609065061840383695186146158208122122045024296523808250021765167913376464140539695218181999076763340333160849431061762608256277798167357888821147208952003220809784842487737865508225644495835690422297794628213835291352301262291517091676959160778005201196434162674905743151723241496366130565769390595250100521863698115908923462241096455988166233445675014043675796239379141093809801846805571371134646466727137664362545454843698469140335902594851914741560990617996112440788568061415355646158048710054229863613955859024011083395559773640971699889133543701679064638743907673914003965423587106359156671294037759674414631675710986523931148229795433725061085890836417577201200559325033770338122516051464577756870866782163234573604322712733677709199068573195661423759854778250724697924178192122628532485333969946009766186596692309833604508947234801252742591389711410122116826464881561731887592375762679396792631162660022456068993001502659107233185649201264543143002851050245853999766387090353008823274970875032985334722426959642391750975156555351010890323342004512075954541404589817002150770472541583313708306889373995106563052784407927577953987857384264693090434827000177828241578889441357861021352271689364447124817780475875727340915819247380852444630635470499543223540230405250433279210498271826421752041678899221937338801897044962251185314361512341539390178776700119356494418430033635050585828360080703758766808394262676354846753936285056057183920516443800235200527910465667628965366237703518907361372794371664544844541297083827981298677069863434520604202230828634470721619542822760612159010729845653387720392107593039429878022140437620579213334559864778339520596383917771260920278312043373078759479264263944494723179438975756731254737609987892198249368232839066454105620255574840789714664050320254582598212387188829739460214803773859080987225682719442650412792291282702578692711810480146625797664223531393225093366195822479866385048541594007268665664452140626765099500619615578502651384916351621273375693752477912650632860247519715497764891191960272109980752048542563929040854417558993320555295621064149749383894132904409821377861405224019022513023956798139821307462228593660046570969262816129474069645168222953823174377325463346969106623529636405075404604455917346418443125989207497608268031211901710969205127416361699317257533313001860877825822169727925070228429975955634896874507544467879744721825726225478908452696388133937338124942873375688058644768121031266825255097813256870819334168394462002080617150898479698690304372361013500565000887742446174613436903199222806525222618073604559769268130483022927893145415774013282803288052418490969463034011596068213356923006209336827125250896284432516744396080536372331964746904980966779644227749377202064212300493107124984911176658817552202127144285577645717828912714385794751424998101986089800051378391572251952669836944454942040621448722425009118463914935728710644247854014533235189123846096881973485677370168847763635677651526207371521274632130084569419994226236090555451231146262120112379048148343976027970069243427410204713523014970465318414182636481978264479107778289558701545072333695619527168655827810331562941355495395177906171911936963783200486628011739148945810686734920844925996505138276567517084987532146912025918190933319454264288406964448370267320814250099846207647422727510354212117221798086290216346446261168648958474974543282273360207289343244086350587551333362490098721098403745162511175625779654034060774323326430049422997758768384886765429518123223497119835671224683458753008143088012726830225619495869580991008180709219759363629555141459949560558822852140480804934132060315589451430057133209076775786626449453895306575799642718237240283013594168153379260183083437792175097079775730601088793505890873402234602758163733252460749136101020163624387085724195970279206025272087021242388543819130174700540874546759019158319027482611610719389153369580985417723975066703459511774640276069576507079978427844656886721313539159735073981554001238057995196202576328263270699666121568192919892409357627399889486390259234553777329511242903849118961386138084883383441448164187127092052030996640852799472474071662335973309266734909411003936150301683594581812885040257900240342981406668708345474304143289546383939609895437155547247404555076908227548983302001697781119621627320302298634133681426665634691031710253999007476171632538752845211878839463684390205339320289905778739053315141419736446868686589321446265835007894547291941989159556231378183722320243625474387347550115957063675251472071732711946448720525753709322043232370829781126821648555040744726943158380339198106127337776064346210169192589662322722938035534661296109723723515816884123655090777299841633700903935912490301999979029944438076457026405010041380469320414635088726343785336680038619124002395723022815939514722048634716845942177399243997929874479365175850927158958068568429003323983557258407340429891451380738737413734709332516096060168373133758294773552807571113199187810017689007803070602846632772714022802753132993362926266777302908060702158688928194367709491710256486199539033499893116219920572828121310439669808046686580563584354055260803106116790088897775293827201597421148568050983510928854680008395950335221681185802298416734871632548918792837814595201316074635665165041269521869912804143590348288951960305365416517656269786605455812274687358841697438195772351766914013960818823167934118639701815202422830722103032259388443400745469289575899063825886104693148717276564776908201528709705298850533339561062156836700497623247631034002276608772755274743862239630317991109490825366308766021989276536421205670348421823705108877192474066973891143891988644045098112672580994975472693634439856399409099005400168374090642171125900963051450764425837590944790140638810432502454099273368719049782448688280485744789047874522286257775245522301249670283469286467492766902950259984352934735490709803402682105192538300476586015407264155756983323163080499254404075633195770082054692141405990870029037276685966870184403079736113673946719685056743056120485648815888585798242604109541778473095845722858016179266518345413691081521295109531681088431938321317563433733263279934560042402713171910160559810943102685618176866750983249833111653254407378467372837672999365021793398262797589569699113672423862979413302772960534210006233338041630609021523187340284466495695806715290679334716527026172572298501567969076872366392080757232014557427995799856007637535658331612701578771071715426098900020253338941578810715267622661404518119966281118673248083453598298865689617196402990031989640809267254641226320776925663803941634520566817021399405106847679969578242537427318884899568208523300918477486112526776539700162900905546533866870530681615178830118116243462915862466588110922452550440297895559977407738385034657073621902553160346870990823286251974234083772790583455397139458354286618721989598042322668904440740506061629176834370596918687438177548377402606738870109823734898457368832340426029183671761752582511454478802996176964261282793381714566391198741329498305540355198335165475558371555571805749108007786123229016538052989000085387078115243994824125729759171263810506687799347165032672161838959484430108904545781740298683897965573089946428666235088820120972066333360375942649596034176966676975243819187509709079706249048555827157262154180123401649991995873730177595668484554354834627929607075630973878343365272709914094721143966243300191992173194916549944574661151457143787050534404276610493850456620187164159938297702615475558683398197871389010002634216079568796605671421191323907575728832219154449610672758702787716220687548099043803502203763857522748888864275928692037246460814650689980775809483792772128749350121576098327752790592914528066884725069745161848594032572553325263453324187514436478885530684372339437077473922355742061128802989807194690351814787029237541447014068132759535414199701313735550090071482019660280955270595846210245122335772453642305073939238209822028569495199688977030781543379032908035886308166023191581331994893058251059430702448991866117713088365899032057087376257026256230154616512550788776572400248355010534372913771133109081572507211449423617281584666085431734334120157176764061770744493105447897517885602006546759545389773129854493463278784463362354866998104155894653782108601643525026018110044181830882901994886403372569136520676014794722378516660575839793538015917230955626154102074594605550560835148909232656715654297925139890241514735527512048740925753784914519657972662157380322136609952155900098856023668932895492684165153465641868391720972108143120635113196223883557143646921547810376568143728234678339125748194304795483235307321951050092537300954134947924734764173721924546385147343080311208999961299267057654556196212345096425961509067605094316160813949311622726788164202261589971930516569989095453536813222952557458312054519239311058722473389438100384631087137164419268954116858298948069090246289294807086016522481296319115490270934210898429456851328494060496860711566829751290670157727360684713216060100145495715930879658494518815597724106979996974070554434821763619923494470374572460986756268433121761462293772717737240959658207353376914803885107125173450539773523687708509136224194081925340945622626397864406902139747711533380050278991373351600839380914377769686593743443927765136640277321318266279791905016623599047523703080566142259500564736639522762526217955408138419784242737658883012781191634631816703864231290468550142004652788279735764445588865965645558008272610751178535901712490236778267336291085681365172635124509215762857778006685301377048622784878252589949210880566902592380336140924290239771154688352662570619783211491628355349266857119167926740001861628988237509669632835599024385883737752783103636050093671337876307484327739550847252375640675751462670741651803783785231714070962751375433933153777556161102926905696822782166381060222874517199600636240064410603927949726680587592329552399886504205661194824077561258985459080796150010386274909882501649621291556072340029008451093180666214058216882965079183419700759125073132050654750896616262699185897936468068279612375214780703074749227509885242069216255272956212343488079351492953909619692899663570965997398496505751028935049211016309148509429433744658997214333500399929343416891979848277017405268679994276633020174512344075066555389244106165014000748276366233614677144403405297531870605464678750795728746903118682458751938638088216031517687585170615593758264687860857296971908834371924092776026691926354369755889810828026710315075595528785698579569898830001183316954712015275868466076663344135666965646868358226493658160809632166464592389323882603964247521030796304081115876722119698951652680426099283425590523568424729286269734757713508330918164381426172368881656929328343257033978120116921640199709318831339253960780377729186138353760232591904362456148827229215125070313164928136657780349071744985227740352410008418940136052446081949195611588294611897598068548641036960793022852776445939697537833852448429120730840959030737223119753311330430872694420243680607665607575492626520928331962507437557643840926607511997209843369552115689056459311788827529232046847107372082663032080569005352689134079288088636821650156490988555020131535135369113459752527188839868473138339064892973129870943214445143678464562519221209708841486398285831861560046868490749384272019006473620611457304321972884560793948559683189070403533668132025864384607856948165504021340160296763767640375126705896320478031468216170380433943333845966398687246686350856208817144694437113338858709577706213759744540069411278975685971508861043309668138514047540432788058606131205389114507595424371213709305226051325780398316702730296505156295425476933771382206537050378981367436037702138076299372080191275853303681511484094741467655316587712278553883533668168510432204795102156295926801667339425950997763443737634650205204658290964604312719142676987833508579579670778620532863237810037439374509041143657296122472001833164252019851679187988551043987372556349978291464968036734072795857906677839786644394312610031202325959261726065517660670164742736553030531547953700171524989712436785945567394527918846346022891668059762924933779406494591313833692571848800114004462194741338609912173098753054145025843262279677814658681886232367106517269757887947082262795206087147078724798341288888756953612273065748312088948399070737181164614155399305853432211440875843285627353220475639847439874016693449580306702411186032948416660581468302353285082890299868733216555669306431314808236828679846804428095659964093057018926477487984652064735810601845110407104176626794751584504185529196342845085019413900464477494690686666096247667008402659942157453696793274672660791773062588612709150443822048514641758097961481211247933591659778304450311172212029642262789403654791370753208346603914932494760434965449492442965249998538930851847198842844887396287225060608869522514908818485519367299596684296728688653118997659674810081850534585643989549547211634509165323977701462997995659515888275739908260978598744758642065899726719755992754534560526717139829076817469707549976711053300069267202625939980446184749953940365488085633941848474400592403500999779370962833076280661981838799142290464983001280727164079906039139005839238418728183035990707841605225276250880065921170311312740163375866023912395291161164055997716263742845156773249338766126412353677627460114227928391472654506984500731412586186578535406906777595082844165517376387862921428234272330736242510098911358373852276777222323003667652850005041682166780406834785423088623272690824509526264162339298910528883544466583397680438452540020092686856529101639637947582619826109419612544009770399443466331448698230928678195497417781077650594194425671253243112160098517685806135516960366578280175558466256207349202568363790877221464115138385492634102465278439657401175844982869241092185822152434532487408399146827615762910839334557646218816083777475897835181206171606171307105369069498750414407019538640097593032077995789413086869045622529066942846017782728880900792641470336211754473900136358289457888478464531775747956462302970385918193025725734607780888054316361424883578054991158761315069492743372144587725842121266195946142759184075711092044132221622261744504519539238258080873151944635178023889195975193604182258487003961036090847993725500007779820368038320906984034316829467711229243131143727003398834490832360472163346692404584065109816078805669146005900398657633766916100439597992070261152905740014822836221033720815488292418706088966094236288039627434697978115909263781039350861539379535684217343013868058010171383595233097675278599143238400662687075292997749456422918438512575613642328503557590825423523793631425347089258899431495872084930402038201187561241849072081421188489708561866257551053861917729929244868348220391952812871316006642576412007768126990062356757137888790843222973903437192713147643374059610273848084906255017494336873474155174353324138064818429238976949509901945483886424639144502758920213781982895835222626119883716980626849710304419939391916156823004217287243244781270654357485586114624683768217180052967464593570648515567780298406017499455597078510117400803209114170673414313003457245354172353982054075335216548690190192896102601766161818449547567265263186537121387393966705244973310088024311094806444547311921768468577760763102919689162154555764063300311930180335236726905168451727174118788688283392151081532007906012116314013165176417033950393422289561326925326753324040183560136316154541720717084327815439101474500361975592151834133590848922268978480229949958723470151872015084547486519738806314734545864588587533681771256358012836288915928673411306076642699155626873367737353206814053452310258062042843552052535038692004194942173699779869532313425791616373684166669761964033831430060229468622368214161115870568200872724763417729911270313037259766048305783992717492044439282012187924062954447169095237234413040771442879718272920389931725740879555994205087519929448992990888509401552723974179461979468421252277883382794025697233870708486869800491330683912016704208665587002230397527375597872996635655354892934020799925389736003916209983505856726076029398250932859277678719891226768008690241119444086135091860214820935823666994532917312057277348903925743002749792161740886655373306211268632156750451861748426204804430768479642594003819109751277401735523799855026802548785533295853654003226277822498104291072442014941367785271004941004872986097318914429229810063418025923638081708886750590837010376897279430162283904710139706947452572558400009249904022776615886606239631102339930107463682204902535951229255952973140603427062476509905233087141278239852273273800059402714629185551939174384996430887112414879062713184705615757488643943790035392160408885092187972744791879447717574199601110749471546658385389464914674492223478543790814858200005173804669320023550724451114712006682774537189541691207552531198060213782482761836692283256333899281762106769045262595799677994097764186698288045150930632962228280341595382057599358684777064333833982633951240482787038169741001975925351881077190435187660656967886936881619062001335966820996966096427367094081566549388147045557569911383002477864786828119173657750313596825447288835100940733555309294075975095295769576198333198874171279925876849978534254053599715680648728908378508147404633436084169360870043201062979098457833375391118339675482417856749445165085824206809308467874540359680338113850889313796377131359894805148554143565376995810383529712688157539895429440950999598311945043078259946761278293819287708408128185019434844022930730265391902983809412027411924636023502668458603726096908109476514409179528389502776083055188787370565777266837113488242045755843899596840549342273554562515707367094098790706326011349747049440427009486636913305900310696560137497534711678686675328555639430698835039926340850962347593879066964896928221651507671173970883121093383094871518714873119150263171007036691497524112184440986582338235774767337786421796197413602620024795057540840743818831402266215092628891295927900288362811417818821728147701112152245658521729460887353308875094026261233882187977652059425919596191569986162157127443535820038768635275221086631020303345423434937793663797342874982224310253106700508869442401271399945191076951482104271317117392589552873131060219245253417026797826177603588212026062098019468686753858075288823143421543129131004981600173854409631421614308996550463812243753273533453604896640746350072366210880956992877252045948883971385856232250128529737096376052970442225396060508748996792090743071225970328801878700275808442114759560967664854114319189605890768461132530422818968506400377377264173100479538203307602548381301822083905507029124916146772788885720810598579092809515473627506555418374778021212257874259052894510477929991987498875242087045897739844137875374243939961576845138424771143809224367035412781881666211367282648985287693584526329207198014436499564424476148458720595032167088347524579669179846302021370780059003693820919061651247572247042251085245060912700026977235366338827719734956743522504938821209986093946894656576886402504613134186079954806868809833895633983594961377781807875185579263749359545361360361116700731162659584806479485638254101919987112555387087702808354671226299208294945453344016978856832846280224290075196137403725990407981970707508075055970039312338930874071355655228845135593268330478644614481011770149541575917002600001992558710327670153667196936214988235269304767939963224783316118817735043573292353750262483445934627445672019865039098347481485221462389508871420503903362500904822065803308755751380395286597856884220010291349963685064047877442418054030232707831506205260974811813945678842458960018388316251778701326199378312451350191845089775844605479132917863000497210145270910798639751245887152286662952372109788522403903421961412340244213933219180519588461036709392427527343832355585468811174191053984704098834859973001054659098557416154598934329549909417166625550771760634348258137705417330502987819892655313676111135709458249011341715623203079603843763524774038261180287483231574782520228706569902131974496374034161754679234886293755868605381834558813230603362626508837003508456567387707455241487441787355839676809603242712812708923286091356393995447249709611394871358724358690364843944183538367220887037460069379742395087656826699567577060435967309743412848521010383042964414700298467512729189921200711471168033804184040603701740728876975513075878074013192197059345454116807408136542595728229795710112078057087769867583714661642197106137001744557066402784995963522362929573373601769520944385919268236684664384557094628965654547806636469368782237538920342999009131246321613792969528569620101702513722253728911485392025480325298546621888005243253039409662771607996017153482368166186196367972617620513936978175099419717861702730088672794957690750252369485683091347310206575306430704057874210228064304865184975164525516199744244797485117393199811028496590545066108606007345786574536461732829206205205165583725047520926815944970207149810675072575662593739573117725689332686586712284900707155344134430169521455630480171366347726811160508597760823701949758403360158464536130470827674964926489772216060169913904320546074362175877363863105683321335769403391155159852696503942187054122483795488484275786588491690194266504800702615020462937654533922764894461320524658969280338588008713829657864010340528081148266942394298921003542092253555550008850493613284561103059807549487733646504457406815383708913494345346733304646658698545634727265601665898089123431897664382444012675999938929115096037738639138754883230302826775641584509249862040634554955261899788472209085904079960153831328186819649556789070233870144774102589654873835548999480594348791793330617684010307486291695218468019874525094620723065637713652749003111383086014601564743956116250518503334377655305328422462063472967979408348796207191861496365014572004812149703820858004184317664683543536524666143271235916582864001923616458932829141401819056763534654321982039784351073166427071969096655236520325608498252704068844984389380692765396014771082435835172083051833183180758136763514856939985428681969052327520411420501627450386266672284640168811388536817545232657709907900783415089139620231647047100697672734474162713506111341824041382150910851666235684864030481588557237567990436559484810078846166772514327218315825558159011355737658125837748259314823702489537430696352572263043866246217009196483002607903580577669803583180069864876900089367090869372723286112388546981984854923283128836049242918082740379718978446616032364061934478344355139624786389375913044430542787935153356681258617260155254798198420704161411938346574878898737915444618237106483727347280858875179904521400990426295289515381501914475343957555851344612227584127477338030277958699340387292905676944166587401915123964283100277382970613302122154181525110589107272881520114390603758316755481329600158961377078820468031118213635671842432094648932177589225493282818616174946954429965722138395157485297411704821654538424153186103896541882519557210328597383238349349613070811265940346967288945405825352025180729084866628492863325383394184665383720833109097377420843425019265890015973402840266491776610098560799224279780558080167565919321008996958892405150294464770618378972574438874044810283913555534988286462156464464232625934045999284470100995121591847343791041337087512881736275182291599655253805211222074560397215630857181697057703640526459364194531177834077382771104696908245332430520456858079644169120469460477287550853646559795414943847343278799520360504060990941283785313697590464463315384356964770763304755963077290984137644868158797924945433476876753507406910296867668252501410400673964535229422265147420623646453175971223877677602074519083617506945016005300485725284574960200452155097474692864313308780492128225025252408347019930113943714277800452886470881335855632704204978337775344245040553165752223321261546129770634913865771496366016131756334376454519505136698434470904833560823120633537277452203939763728041855925776116964232056221953219852933835646922996932404355738760769180022359905653977534606365753149980036142930368060386565743778992898149882923749237402626259674173466862430873118783629013297859202194532584246141370822460477387798882449444712778318985212943301038082016187554634535247690718417255122964970296607256748133855694767123354209688014153330658467926211492544696731844299592982576426067576218008490652872538244087794627374918867746557960773733393388031402581289880224002538371625205147325856688447705068543520651959123961338837327599345041699730249301380165496567871510216240532128442216113530588587756182565330858380636116497040816660155522362192803267446908877084521607744513256167218737784596407349769720663048767702281841369195050005351250582663403634098226638534272668453485656855609552236912069371161841206128368634987102738816328847200051515311766744237347285024898227776547886365706068963743084228438821684262550618200859853384671698189167803870438399102964925828737990463571342810120155311428301530085353175463950330151392023932685069412750595890382480377335767210364382151144509985767415475401210090346165302424872523570398029684530124144392761604598806003866405040722932668776520511729553426217271695132283251578372429598361060657474586794069778368800238907001126049647598516793749558193018851787405916275562438342442805812572543169756539565977205693703527444684248567901719087713389167583619391520571354171249310115759310695714388508198188177670649077636008339160004842416889084537325965949073376055748613972340935278188161078773561048938735887546686382091692535414112937422665263630358227401007109750020246424971119527792139672577487057649682076939130922352609769818549688761079914484809533218358152130399902770944779090101262482722060214638126717483584973659293411118463004374865941337812490649360750779344429378929786625012514248580712196966203551020668337024897566225931460526242852540492270402104994831367962112857227567610094631550362205532677872917096729060448334791062459165164554512305761469444286081583103859386673969027044868000371515037378741261999897906655170828983570557777868714077919007411427318906701255903176631327670233272078300239836696204003284806817757242777741372356571964582335262920585182087545814230718681195683410664851070941193920644290271703140109182305967444242931909825917569695043054537057688473230485194341555445511070218234453902371545817312485312984312905993641109323340063645801352212977207057134539256699355196450164131122671110333388780398986023633872222865021796418293105513013388943429271561302316403121294927896767349233490598240550786991640760682374692290985223554774062589740517755327077046688329776219923120442561974279944673430451554763732927628118716145099279112668299846395622833896217644185020215835193301390139473639300216640282163375847663265184989298244095269574212595236983683270248792025647290846277381762581157022224992581268218437885474789920587961816150665409213444407019580036168906485760008230063816704978596357562634885399121390151121797358570739350887712141267470025530686116274025155194513776123288513965391880348461928430784941861957486032128518124783214923781693210977298615695113977564547243538205727817442700122910932359672066298440337668240400788542897954177216014172999363459583495618388619848144423068062620330092432898011390975108351026768929068061632768096103849973163308304164301384479003384307203393574204502204844406877343173251492193808431955380125064632005698380649990811301280263015016232273914321013225019398107820683768515180674745352201414576294591553968119863829744383451128982349047670440210829500489039784222333801677300134665763292674909645029204689065290783409865823703280987052494524330099905051598362091172308625998493939879930265816578070409437410018692842292781459673910687976103221002820597246574038418060888001859226849638440926880298598761033700160761294642926992624074714272038162552878588885600150840357387815072413452347788203421540488850220674093972948778420050047461947637631202697282377951153167297140735654219509113139965513345877498608605262560993597273077877905203206048564148243392270589544068929318033912114848223825572932178137639888399855141528979869329700518576016930981555568592864626298276858068384984468529716078465493402216466023966208940885774641727448178772688243757633198065593194134137621292013202432196150605007162028833155651659116378421920297094847096854726800620975726033518345399594869782449471521650226142809806101919088245380339254918429115524918343322716560412087739999122399598742466941457612449323335487104751615632769393846685370822300409535509783801464056336148256375937030838290928379450260420083699489691314711835150665234994276842880125175306233807485974615804692598471822970269680315132538563473189840264625355210779294562656828066988496516048115205550809407280070120722527498957083242272284416148828291254207699505868734484022793968949217211909786767702026701127534012047714926080294705989809663081402515579766488235715585901369400388658809596378059386335594814300660673143487877821670329925792195438087761810851559206959532257557171313209778161472829491916734201608408769810020519548234655572898238101454802714331071765143223616711588304487548282508581045631200846839224136954609932275392641562519028956930027173628595957430361911480525135393765126394537878047891415551730839500304036595419019322590741664192079935358777263741064281798228467047528691537211888068634728632863157169397351947334557703921204474009041385252715078882112762932769958118706946249003548831222295837245812499965400312772593810722521892360935492428969263184247507012887122585783312984441139141914102234256392971798141634972876577441892255129029612402909708227458008687295681679056183615785251917911910585621925706799957233416851925391226615456482174920011621023744565755854261434155748366512538143834153503547488922917686596564416825186266923047920425126565129800425795112252636626805049455114421245260415125288465774570665990623581169127420967593287293372501954506493687206721002562059126436220232873595451729102532647897684653595039433095200022781051026578418122776350440048295754444000461196507503819068562136809466060338986472806697183075208280598074866295805507401919312228651380846746827093079528174238994278664722900065204080100921858677883124039981793043460750017674774117665472667456753721497446527654809293848583058606554160662204425058296529353711355823423016182102834803785690120284349089064966345535415571816199168150982192184021022241943502476268731429168263570682587162971329495512692893690116683079776683144873107641728893518155330862875508976591756357354540917617310368499967884392584087154699861017108747502876660717272089728359976445698937136376111276257990344074137794526261427975201194735741751822873047890154337830917732838782096389623333448476905293794783842667259797396614107283826659997885340800722912908104918040031821418511475230781312525671525414371598802823795759317144299911161249643084552934743901168815803818998681024882574654616939159243374157840952307443614995040722799449098501495594407771976515016853974930613763098288761408487405736630769784298931395442434528058276422819689656805461486126333572722775430875256149974782821668525869784151193551626703168096340032381650314476841426706304800339581723472090156922844417636059455512719451667431589950982895632106514380536615875004121824905334676055497154040224491788030651444037789725363316476330770017104468657028852356957578284410661149329005688915020988184483513744304090075671937428795446532523349984461136460418909727502024043108864891079196626313194386804568501167262853833879193408413269100541022374707367550294775662623816834291419677524707060519881483577190774959400284353903939490975456855097279191262358283626063798857718173653596392090744251926451319008401913420427802784645118564508173270205726511842816448274635532487718780165228987106316851533954317833694402141286458485596406821134575798632622970210606901111934228555072853003273984554691380413581540852247683895010460051459753168398323158645955276740050011854839282152719779775102545199639371437488190301280361170668798228907912811743046339800265386793756817551627125021202111431714519818573722801346968562725017964982147760107404180553263610993789839293190880572206128469415642910317742108802030987401191201869603891333942245697178867994733133133929914541285067274891489856409229025103283766474396586751356545281072818278114375193523716682856903924138416117733803834630025318613870688635119197613309153512417611335411121696228484410145343927254734010015179001924063853974338184715501737261846284320536176884501883487668474917018897109392242954380693325558860133015728480444596848824163044847076143314449974576293418580389177782276166567030912855439182884383383014493137594771753331558346540986193648784129873250993235618293592967481694089831654337518270309395396993622028945765045154259174642812184112454898488260021673925218072123544371803039483155898042362300749567380037139647547114389696581035683858218933647398298732408389398255960880742695134696102651639069405124500130630033527851972673336046809949880135461929973388850791658070562601106033922633819817604367365196658643101564812502036098996305278896192228233195290281580198105771318405720686735380535443297374456862370953796621405583883313692836945697631535925521314825716490843867023225978877849503787018425290094851601958988837887908784023665679519238946518482216426404968946460011750556905107011537073494812428895249742373952306560506277714597230739865089180604043681214015498956298483714829455042286324034384392281660355078497517076783571365914813809786234018567889807886618273604501524319708473910745595018363818853074803368167870938459596462355839045960460050341128968390272146059598661498246790529600110953811866691657101470388080060361490445618669994917460862932488913377243568854537691202064953901439716623976228574108150471818500135780206652057619279903310555405622029852925714362125060250654877099744996247521266484537410056835634327224390720862032724178050633751331033368969374433115774481441669850793053007624132474642659723284052654881482043248031222571254667559731286671960296812133387930535560210717237646058870628278674048942131122158738796370024558102994597142929752179397953657093679884469013078658942033054517471583502716245789138382451850213473153985095701857437425873789494257750292144343495548601264352707326986872911029062318072520302924857901611449780343354454333950359986178295883937992462553719362163599253398545648891918243658365456376501004093440684099459419454326872644351557663360298654239573926014016174856580799276212052762982217461351565396616367512479448645849847876216117306164972399317728974284282255629705201634858819194881269186174253522742765133091655626431019623568229228448130304863905853350898445993548002088853117842926162625456652171391561714633657513044862028212980762395554017484373385896049929931047946853546244704105857174810997763326646705944815728466184128490185481249224919911044625099725839610393069987400078107089198169423163182822496623302610124334660553331605404702553167767160505551462664678362299166176220457433139406834367511479436696623055396997928534383011757702712230912482758918177113453160837617755930712881549828903385753523492590223255488531672722467335750606734170663704863521950351614255678192922727369981140571879063133420702030600366271055154358239297287285280405932330035163684379763075553150254902318850712525675469863636529980991935747312751280299737756306155988605622783407452498306232450989604908713209082229712906904372170646379987849577098740598565262426878001886158675336948256916892751846101832132082208534798490580138356771941757122534047383601857623004251402268910482782793011209541088027393566081419664636116844224584401320287764335243434483958988713286745381930527246808413254061059691620767415323342584073796489710554333809889692581311347945446043579992812015781662946032668956300656150731022424248298566987761720007079812669805145117703823625362983634908664154811816644941856300747824458501848004762810897327242756120449176335827861026587799742417226237425387340390488341302749153151773756675750902879057603144209678983293184902751187998849509599742109988175015731238725659293892703525303514547862441156557748366201562213345482840245662984980078378968251047743182266743812074019080461512382104570514171054136925033455167626497981924807939042220967759882502912175996154346495566951286564747045542288651260967489917929630369496938157271702819213475368541619503168929579675419956251649318704997478354481712569268070488905607638374864548362751845480222488800876051539425384209172685836872711233543691382587877738607624605588854720155949187589641999598174299180655622303817157172906492956550687341453949606038286185442504417686124907670338651176351026852828509436062742777847255717635778763281062843382218738033572876172272397031836739163164689711699425449254153089865539248961855932532099073029612107455732848109983645169463557044895576910838675268134413511854330774702985252227216404869974061032681707545025028692743188141716652183256303472324010280785268175555174693923079404519971498080875137625328273066448450829693052170667594765452995381804896059938869097895639017048087699559658219704404991703723868079763494820547662535698691276424789879533024098415691513231036792723801402291058773137673409439906166882819688583606842169376061960727192828907182267347922396208992682232786913125906430005668184731251248127819370724634640525136459667809549566427477706894553586135168227968705120260994072012264896540200244989511549530258327263740414241661526536816849202259974766058793097039390056682256169518514678941896662103747225946531090310968540654952134048440861255828807973385430045541297783037958891414273037295236048776992485952629465451811814798228024707429374564673180590895937624221505755151891770812908232059468450288161967312977045128201197662695609489276128831293155209825769723161452305498636597106682589999374855440837466215961276339207328772274456809253464274342378216821546383480390774892314242660711423768728722551804515402066910054544381669776960340286924303582834661644370605520366311746432806446095892004298291307871828929459265182228275168932149031403116338357533648443614607851582806914712305775476413156919943465274773850095981438392393314534009009155460647719796825753084435321889767261992947390772645853349783780089013543711821360693697054404171921634012976893288898236078884543399646902846181144386287242441374072846513917795632619062815585475517889065191538053747647178847794670148894460330115726746991968333492676408266996625372869150362468788744632170138870630265796450493966482875049017647589353284364115105786179485992810501991657590938560895860414640116657353050655666783334795887591597327622591902452110737628955701364744259822279341276105684640710915051884562411748874628774095852727930877620791091274035725297317465449209169314801160671328580751468867038900628202836503141891693140340351086096970457119584720249927905395435872359053309388157191465800368119792768226054307681555998117645583224256857345615864917528236953927441431140196592405164553317575940040751893220453417927159195205344395752496825975842569883596000989599571754030432062731514481637770651985177107174607308847524466259327012437484509314141779981332608826392176903635243560711589344213907569435203302752142929284661701895515898905762157794027623369184854592705975947285060845211675567228136384707503529026511155998478539991734556181882022556306469409603128541725796908325793252333345480234785648626318259829404625265610299238791052020585116183427548053559446034589691021109420178221718900015171678886698434416718212562757974729727844897184909863727803799457605614331665272889210826664400222296503889792986907799447333840778708331754681570708856604662219224772229040508013174696893830946763080916995316936770557145479318718498471956608382191263374552994697215060136872804056880646085363137226982115523088326571537227575613562887105570231957305225667043158465967156183971596395891748142185285065151183183772223326360361806985632700216600192114199223517883080883110574468962860760789758741947998530460890302248000568483238962062278846097984560768094890509192311252714276462001289126102423904339847308000127648897757509300974152357698375186947338367037794493497367046769727219896740842288111340276925139914704652400210218107851181280145811298355797559149206245172329730668249589303799242138479963926900121281899553963013271989553914873540547208146381887595745150254223527628213274867707542374052771652295029989541139750994892279193224835994527968102782172169155555467469771413633194658781220924907652558707930245964025398291126395309577047638207345069296808490170605776318110041150521292584339161301866901348838260811501209304667916375636810259338212146748628977243755194494334090200352612474416149845896879252421285920776051773282439150639619720653239343959300360478255308761292005004134536941862021993386232489233016520686457743697529186487499096255287633972788361200816783138040901880733903997387930231945006203336115408501080310477827260197590026414365053310434729659177851443006035835910232400826760883485081899691312838530538363215986113718924258938806565232501025341846377966501327546132362114731150893364771738790848045977137516481324879042015261926451505162109633424776353844931196805608797507800136526837775993309301443409621617360707799975457929891743503563892533451671300683213406627896991485912063648584611747179267156107132442416823124108722770395782845614308156089175693841484176508628539060383331581946925713345533360179181708748391816917050085246597040887954677357432578776561605352516849940589443676213096720954457335721048045293083817544941307556601668647129708935416864486814093538176395019510660395971596121048745556516773768902153899404070376105469286453472494257192226855760289035618950467857559214741400351273305602254213774975227144536645650542331453222108285883632569279520737173186472286666889870807996374276588375029390670227942068855518897535462460875219316948009858985021499098393289678616751572756246535787154124123501211509456643933777926491400570410839756889033560856011449513092957825124578878492054981210715908052561730756194097388933787615615850151284226150264845621658054029447463593778968115337048928724407559098678566465100052418896211650863499356036691175514479288808290083678807560219186295963584797589417953137553898056308834615059558911774269227985356689448298220433380231970412328554020782949704922608514984583290927766067584909418873018042449904698900979420638829177478392087134434110219106554650878275433556660366990141727373617806183331907230194019473508601502880103359230339542937695499386028368669922858540423446217812978813919906045465569174592428021472417266895285568578492110590639209672382987951986879382662041647637603660825132755598124559641077071262222800266369653532676864061242353203816835953635196726436354370920157626192704071829780596035839317299460555680128431895269575393409883460555497524615163647670497117474907740530228246683549553345944375555171612915422754155364209010189793733076970225182954080385614493124419663057203164777488007508498496092055263245175382531255311924140203173197574244011489254327767419105546297080679716765693240854615007961613446629914137020860457009174609419611809761941215138508074462658131808749700500856576049460917769404034592360005080343000901010401928240673730957220180910429446577930816329154050206001744666281078214921289635583750423447589397543091801569973201229556921093151940748007723522142767630939643293610225733145495149497309282563925870488109661902496133232409117199137377807440955766697814482720396261593083387276560342746798053916874259262074191619598785238311845804167059604823387950153108555138003806976921552848104446557151201243090674488493000985703026090505383528917035774375589545329363663302125756501573797069851187489546007634631049117927691922030150112273271943874199734067349892251075813839120761215025734247078633239988413077994799714753815292929764105323592150100755831024313917319668026390328774719490010791996324036805640811558751226852606956457891269750420474759472537434165306648011854701702295720622640521163946234764214694781458547451377822761885362903552280526591934667379258327027059365655198295802200824121040782884239831746010087388321391467667799346119790297156834129196549608095833574643359672895247843935749750240529142258068875277622285807616547170960360860045148099180369267231795939272135549923816810020978667638039993540203087694704091903001845949349039151928347556023230938572313554164993743991254287071872210895219722263832516810882841887317985679949344265816872460577639152109182668359136436455779580393754791245121219284004649936472889438154172114713945133462090757189914917099549100211180037547135384455105635205204053893148283544627031880389362626500973351887222938292050113361305424607842167435917886378108692094469740505759612723152250779988532224845108467763174183196713096850368269437511761976824007787156434853790801778192180062177493631762764691597644045693499471999591423762341047634444399012554742334361557881626634913739235655949423092567742268993094389047536292174368474655249589444390582577357914775402810035430756501237033656010467604610638317167764593859109703197665148093725703617085417517405007193589525642839049573224547438143444628390536609057222595819574432969602059642524534800509198451517967309446763164202528420700747897588130657929545927231719356000513640370533325083383363437056046519744150848529585942686364043882894193099309132631454086233344341630524581795745735542237424809013733898506605972985092946836949558795527864446862180267475938546038752230356864668435503129627802933637209732388809854839728883946166938546672656822315993306420298711778271579809320105934718361792742646948074093757848368164273528340177661829053624273902879088420940524142367212816918143327852607950160363582327148684968870075528927422814190644150608739794005594548033966363278122888737750568797258866798837591964529910261705050863113876303926024622371408996051663898263413531213111629348113826916899518455058791907871653839689126143376516613862454990289564222937489052534503424478252157317875212169779924794682229771468292779622563995605529029433436648284890480496068437352687979984535951212173527492916446725027596489721074812264068667665123764843046078435586330015325189406193434863017218127917575882488668236855536494701327504485177486887597450111695576599167268113110152775734723132541235692307686913042692880142922864456880455178996583850852669551355454096441757964856284372805958782171371091874373871925626066601156045678268789514467405121100877587267102144704697660160734278754047354424161397675667302487353796974716929650880003130347899630167814716637862536363165973241181325241531475400957471184627178804524833142774333445105707862188601663035153959581473776937357754298197396893960760147084537117931982623135148507985618231904294915240512659386471758886979247811735780906469528692037547316727274511901927017855234019970832674269662344669503242840197418864846301510745535200965669639925586524031422040711363484330183914308638260809526750285858116927721256807256847671278951756614229791874377018986909027451679063848029311993107680277237567011686183883566615151579013530394443811227353496285375056202212401114827463998284313216708678434616283258783560192435405785594610913753461330647568289193412151393398243458833526136729865334372379286741675987547987536604549764265178822343390272391897918501552460785151381069743182206838090284722838994965967334943087392527913893187122021517983963130650733437467628831191267580393006032501118575195755839921808580414296314735428518143878890844232706555358692338644841996153632680870733364653062195974754584535512021636082615071862044051370644740415406897957183235439971831090534225652370049669035864389150069376873123321366755343972556131041500293369987222838992989781347305281020332474848266257639326468929397759598329429637312988242953516384155577006970755959845544301010017327283741275591601124803370482668405478989762261140890584000333268956156313365219530293705358299884638576674685626366807263643095694271740565251166502369716336613084027826404354158820335869311686113007421323053730341738222967917740317658614393303074350329092592717604367737037916089651994213381966969683219083986107020106675333239734032618026242548525821068221003253017245024014307114154159229244002328200762444119462288669100046902726899569248349903603527549143670556672043812580449873841340283211176683312678452040531374865848760072691556704116540654798907265592387206169989262514545334115109638067041334076271955486107109517532662732075549660862416259003671381043001237849551147950441917268069506191907779464994658635812792853520135019089096614496553198809485904720058451019165608731383544972721776372100431903007517444679373034928200709722511080238318066181892690975711916925472324428913324408811930727236386182918587184356229116404582864079922685625931449058043926834111329912816308632916034832720021394614035982744375906388765871231450545043564674324541412376537351291179322306818296411977420556761745793579264562859973123969747177731746482773241704767647817535858860006680244742321649068523691965468344285209187202919754760512339460128761345023792021713911001097812172819550729595852080322049688755263899562347079808232634566935151289848067867203890941412333129910177555929878594588658906162549713345062901787216289636823106333133083736933742445450947775841475634675558500037157108983856623736043720634479976037815681825066045559098614835295688051423227034766131044377287178129369599535809837828171201460629864854979556706440226371604350705735850619944836897483547159872279667864990297507092721576965119409702317237677992108465651570483831722786022612702046046870759492008086702949254997426985135433970542961403858249788227343150850942151468360525764904731125453542216628062387738931755539234831254544099436153917834107266394192406344521700924299537442579408834135415204813525005302612078167276098025170002477144915289063205229226840335053267161787022616050129385434108686197639603343659786960259435571317481550299877946121354867538217920824331031808625317037202628508224088452421452263602798708195171347785405449238370464191475223960494750303061966653846927402352501794227230266533871356838870845080956453721970910385270462603748382962432835316329616463375820732287501533818830228215002413032177482540659143854707872142973499962460153012486594319697777758302355875035325479636272325057699461171485103135804021715496553955949640087732058800246330412572101716847202892342836210214884758846228407580814468878407295046697435184257925038778641155823629629108665068288933767382004784882946708457891228301036105834050507851342173218700446531179532674987736107101592920218018257702270825889454239148139088125397473432004250963672316771346123742868206348659729313053285876200241741699851742202363900501095698623515166216584463726709579562471285728785712536115599980064370703666024393389841505648801741176754655233349859856558491891978777734398115900854394783497439103055974650280700608376040572485737290816321784138608307233281547486850043044042149275321037060262216244515320298208018191756343692361761800452791918859887281993655429385230823262791339365964008200995302860242687484258238467640841631199616985862839785612715958244815728092696923773591825728417365702244501074353479945943616448173869861462398886623114550799060536897301945673587639800224012903222104255182785723811569972546752404931478761569757555071782772420837746802468296637699334378704935824335457101222187886326824831621334253067317179015928647806182696156140424382368947590620539531283858314938396402424501061928478921964088577265042987299847612452568032148613493130282606190461222658965543284442242972951042495958767206594456369008738680776502400325995141393590593690614263088779022658689129422220245221897675390528537004251372032727569523507949346107788551644710053744676138082505190193018365451748249306360347998212359114570070204584922138150288946362302757303602758128548942014110235052693133392488595974317615071668109305622119219085278038941899706597214031658333983129856376205891025903272920421873758204596773460445094762393891787075382043754991152613052743231637158226392280482585536443719957363144249329313579466019065831027939491529495415173058405839387231039648267622669899494461744123317875011970773846424801934137665548767634641418701799921592606059893818026675787254180098508767486707971650457488261438263667727878432202535628587138029619620982739964918282672850785207281872061211505910889083863749145318716190854510932475995596995096605739205502454061289595797753241187003924054811906458343447337585865052899257242031883880087924435142288481403634770691248044762121936424907122662780045743562930964377447754774242900783500500313157818305652775631906197278404991134645637822854095265080010101958865439461118019006948485639903554868898717949727049924069678499299323163044477557845074515068212191966086854472310606550613474921530912435558969345572797039359890834281735271765466601541848707389582112721076573577414032324938459139958562244072450341597778909098361182547879944241091059366228814420085642597450138085667204112532716343147692514924056253637830280422676768714860356902572496595347026681250164418241590976734694281303718929406847825779879752237501589533781015782315902794117266306827261049021625060515085157456650235430167576962851084505499658567709102312085738947514618019421755193040234063276170386084210184387746477000870526369447364723824935414137640775482028828345901234163601071298872819671181544256891231975577220789894277899987123767352014643223719449306107082396259602792560604888900759443209993278608413768536083857451703085793748726577805060465646279644124577644640120372557965821992438053456517341115377912742934927870989591764384882422233339211946541278762744046094956759206166560379999654346456575732870587103977989036968125963259176535418598676656759053391855910032645827521168536569935796808118207923634506408436576411296412695926121331410918103183124872018620074825245065900940037124470100410836113117440896779701423938420760744960786504630240622861220861248751957261988988001920653485614798142171701512526468017348812554323365695777255582360547630971903603111894831912020085591576507314175218623140842485397169375162926184988327615551606502652046739606266357524224464552491503200900599903165747283526524835195341843693728376988299243366862345335364027619237170793916684442763953754708284738140025992650535857401666193322912919400862575078882305691239729551937682429869242059199454352088503977999291533584638455928439944492018570311252859273533739050850367731463010252376461608637431384739326997628684559638221123519586738287417043455458776975302167719776163010258699241499424387029419836945344623580042523139669187846596829574390778648274801250546124712925315945169239128479884202379293571758183778413165947549458796373554127371443832689171355038637572621452127226591780025200490201575604565578758974111457287052348157922213058193503090225041393888047248951748284066422675553695844702745206734843051023613923325291271025025107085147136836436313704492911705649007257646648459639348023556675797194142204003155157034473087979846664656523658473329698132905963022330096337494208049334981128917398378471059525662566368253194470632493163845190487239991958675234431148725031133460946141854880329603237128944765248669736936415501597276066426499988548585421699062042660826669409065650340839248108326522814930745045937655092940982066537010014625457148518086014425898810943888980965622014347430915755304032733818247916753839129694362905582496445948949854261935193404962598907866450635281883215893210350771455464155379838522246988121878081952389947833226052570849592093217138462306944930329330548629705800786478223110851390905226960310575642230347339245828357885876026299164263221917251186388921681999746220551468139597861494649821280382165395709439681693571736781542732958446266312121896378493959137935709426415644047890773350785055994061068432109217413139702547274827571935954252260269096682710295155883816706240199887264653441901270816424286176542719453346937029391174440767883501186819300143582471941851110695230709977940238108584174474349905791335575161305281777121308905542972198555620149595289899542126947652147197070861077584682255871626403477039631137651509226233359143150785076289197086908675815123167547939297356025552733364811826333158533226767197670107060469725268681802462820866849270218436187589541104285011040017431298348210186349082751036709204469503203049135901999223821806030943376310615099935487475205234548356991513821179877822782939558914590273824067672762532427244653095919017787522103144914082393589829125183242195197525239835007889369805402991620928886798371331183130789587980746413880212609514270510072113489250710408541916910311238244682127284319182010382526719415023423550649181095674133964870883576639970456236089041969877840936880502173301553442352529287127349031553938417962307471076038087849355245708210381957841271115272854747476326535373813497137039835753551008367453681875615671810016736967865838526937383691059747139910668451460092495596944321885389878838324524347484222732899634638931378729877800463400866051119817639606259095116333067570158348163191055245799721325422518726664936690015192558802932280927366622005474859897772001172166330224648789841718539902708144956554063335241061553770313029736352056720676725475966932203615861518677894210531171374514875516389411183274044843126054504038676671165213587910797808186186912946281530149386064543192207448274117699436337693657298844786968125242182002058417069455886758840198090471213211955417006549409311817676777066437548423874901785953925424380823811800949046697748099026179189424794323944651189914895106110405438357452040976466457405065278402691320066486803160763045155404055583367200106381353119697498975894581769941335711482007774573176279270895858847729454453242628741117998506672814684026560755934238776431840795927563634571319314282936146980830965252885949556908706192687766851426785647057254590702847373337705877198849340955742595048560415621426860096835928934645751853988831462612679589836042362192260570353873486767903284167972800764804913485655884968619207362749012131363131385114636472742680985380379664646033131736829961850777071919821703509557559225269069656029241671090222054841590921623384948598663945053532044700421341686817410655190579285269631517666957689826007208767042824384651674957328572362843525636338588453069770830047769470946615570086244053942985763073723205683998242215623144163177168125085701716757456861492212216111571794088398509984288360541929949350675911723279920614528127090468558815753145657392755373826171417979326995945211456308401112117846843873866839991111330495780543451253902300387802552462598611868425113832142585867900104160773715736489255073710985827540638031690173524190018134520885315116955097366043680958237590825667459898434751660356394689763171277517099940215374415777236680273419240494412119928725817941035788346451684126008759327394798067180620059716945219528448252083012453023518878569822381723135047900529909684017733820044657809859614792087002866047814594586704168980554593580614298646146033448980904922535771625585339008706951996494460528669984708928478947280854774650349813529946780107608107716937626970701952366396434378573630776915248589118244176349195873567010300837336825821938293721950099692541312278204060543693599978957951349903569564322461638681644150960938452508330837658011270276085293122354948422902626159099245620296463602135205955163364864479001767089772358310443632512336217747512684990105567712518411412003337655123495341981536835769226266729657299363050199691066171939168831904446292098791542376373322217512282892789519194796295760323565726116487698413361572630791284888288604752809290609083121946196026155460183373242660775597693156704518212547223006466282570767122969083831632836589021596582386650231311006263301656880043403165020757532551479759562498582363932481707362644336039973062277292846789585121046104115366873907208372471253603301007482923976127307658487020373075993689346029554981291271090860717049486770874793884650327777726183831374133716657954555118862749109564930170996105732463564593213184202587970115565874498636946115515040227482919930394852527138138857913965871687285758525777476191843892338697907850226151800509097581755210752876162510203796248962719556966070083091133594110382418147509158044663392488172261858892353637619425844455176232833933573243451204726941320865130280872533016798702583915307180577577275013465771090589437762533267203756346403734554215571753600838183622073424732338603079027588018486229514305128366180867113207998584086302764077437638519744124418590265784234261225128812166128658004961092309730542745136040579267253006942432334272352085637200566793431834012387921974490800391797866677934197266688908080235170610157917436536347236814820865117372163968243786987073568980166443232426519636897860100446806544189921459073696426396698265542545691584326476116902617384156626718614671422547007275881322512472889708504403446972906151927773495973417929023365127541497042801296519461847329771938638794615776156679075127307133663214090022339970502569763271238683525537872976594168642515807192940624716672775156074157313491715136912936522864760887925848530486422783889064965683041918017366397460697172990419531511838533783510319371073415177830276573298880481843960225418938582777024529509211861410467583895636321622947701313451064364534750151817978855246693299502817334643720753054452069399800894970466662738232641074679509478315382207393900458354380876915583787422447990624026003068177024207791885348540890516094541644937199008398277841555989667232013204660680201520669217019274255847570153216657929794419199971930720015417150158814206375234112309483509580872473173476937980351551796637407376606140159347074911942357324789774132229346911746830530465233015928894815054970178276758490436665227853357478899596548880780337909876299623810901991036958423867393486467988767153300425305181821258757688252893862997450488028408774006060815373504688077855918359310139995673324750330447272184544934754806106698152161378511138391831099111873625798956318414414870507497311413448961743619777425457262039238370397794983514804614951902139564708054869330507878128069952539553374596126698173989279838973595894830983520630679066691971356271559212540662899334163438352006503521175903701068605486010876934170799468383176528545460117742195153186671800521118169762714420804017214190558586518487816643956368767557858777094651657210841655499644601218924294432227941822173095476521729715065079876170883923526495533078028547590527240231319000947935448123250545552752699090799687173897743980986607794540808491524505304796870612325263542319315704191379639434617519752678551630445024588390426653712886141153683131200180813173435953485167754120988269890858772259852329772025131286337940774515522966785199863600116687782592882343083460721854202741801612806884129798084832755713909968184327513149344618072880712178604763827548207875716663424457174180061811718149545046211199174289205619702923103085647598675996058075757510871683176080126878310841321219430920669413083557474076877782803073767201214101159423683274217399532661265174159844397314570753244984639343355384973922122229333876558301127676103168301640466433465315638145098426665572713469666857390475883176186828649569290392062398214266064039107362076656820647297479565011656551166234238828698712514137991857672755362971222759752563073307966459254175494126244974210643553423389502532344569576907830073540641323734146577131586216552015227497561351832369421455310424789083298756398438382875313777771600922476722363452793457307169053278705674910057105202833549102012425106716890052132345446952624040338222942575208078639549059531647647301713426907678402006153239473603271533158336157659909155573556570684863110141810290063165615234608712779786755120975790653892602605673089945934313069733538564100834524140621001621283574266321611194479219806230633018003609140412023518952207376116030655331020024671539720738289116786580421575054267514778402361493099561807467440978225399104184769947857228088381593828547701519128985363473461629021153467981249269130744506266146960955541907777245518577584515617890922819667026204889767206366201219222442834898873728430590634606854895323387807883531897232322022772759101621020258626578529321693627749137479367892126060306467663084843395618434100726614362462389983662265468592152457653701562305437217382967822205628690580117248624056055440410800807302052960174994744200033921325680775565534089853330995183245331677305233500862196877887161068686397230445370277152172559909230349798886338659882116131566195080175733012662425696581482218246466922642420757892653193184483919810393559739260904265681714230991430693897983745508796550305669342428843250703954412219373418386978767238314451213884379238596956388181904990518997328036682268494154529447030856931379588630944730652888333789805173827831681736491902677197852770385106472337320985580910329598781883197221053687127923998246105048389120837025036339638694036485354872058924388716403053857836905310367653998856480115192418424836387003530616172464373465486040310030818737696746676671235803221800830337055883494724246474319793260540157474700352983129113214680804400234276023941447387040629366529383753564186999243554279823654834289221634609211634125552249882665109665255954945660589188220492453930611483705514515572552842615647860228526286640831420769989828831470359904627224633674050507513143655263228356991523025482661854815253024120173680507393992909204453315969579748561186155868555182675629285081521564123782094096347985507929783173697984717209257955339053363359242000394903133934836417738462396962506571264993523358717618808873772908428656258706649311156112407789442815965333918159420390157960737307678403755130543345023299829265372501600578673499930433388575031555406639356711815728845837662248701613363833604348318818401437130337203984232784259972691487342876711461925084078103239451747749679744915312933305116638137881711031796194569920116273458031922958647085855070938224333315982557453644630865747597861825890755577587781163670572176854380281066287953721335498670520642344488147009964765191378195914988788472331770323809685823092868238923275971520398248616944043953361565489333701938619849792615590627860579043975644797879325704713696522353515310318307106814464769922960247445707385164079147129894816764392788542226800148227245638875463635725095374533992032265459378894196322178364156878343490228985361764124951499100058311739481698765255821398590199311287037551363437650882616799853857323767155050760661630428130881018984477857882422540180071301609481842193958395285951767552931398495868974259329632551715832947553955904807544559907471181442805083462489521408683030615420917694287820641761675444159710087722025651516396287940502453880406903330448090496180822979236406135753736075530333708194282370420437152112075963526999726790164758817209752711593292590335186127265596673346056552619933496740751732084829196170148033800929127469486302457641308304257382067766357931574281109694664013560497627435944432276499718410331649678109791440526864220691664206498512121643646737863210653231078710315097634622013842868039802714124321676114885468145890712968377897373268123654848588703274588439868872600940030480242228116163608678476623742011611689611775206017781706759257622746245810376194358893792901144233903982404903251653710383018789828525788935023744416865426396709854296923275645294293545827923736164395268846101419825366236340142768614237756459398910697512704079468903301100816266690496198038999843058629201074115244763974873175431687115711833496367294227472246370657726217748204523989420247267144375823628263259911736910965538417141656827488859083324980170962983214474510714245117348721120962002945800953446515224719522673385368978560125875389064776097049118311064034532042020916024043818601334873954299847870675396157352357187381240979609718248361563961605401135957081142166721515749639050347283774091910785611503986832048673627657310936371992099255216111344019057719275872229431057771117462758033406028719843823912547035828939243521583839132368399928202480116756154404408475223831681207882423399123870200947375780452851980873033636980847420929989388814936073084990626621937871835424931424040448037361418200461369379109789405225980704420392578806944091301528842687445407914683438388894325281237689157362533158100628886196669550042330909443960165857813096944230358377022987077965356085498638289794098679399770894166789517465795660711205057440411792950738984097030039389569592275919252503178085073787229328397046508362213617091484716719890590298586850387190374910793547873941035746170150078770819876872490888383767355218622930617261531157350429624709771100037482345995565846469242999464819855685699990807438599285920324881672860718831098617998353965033759252380649574124110823153315598930907082460606179740217232984745726265403871174991292518235063646142408068912480753014110444122266835888890023043223529279415524802603310367585560857350836015192681673784205849899564303883112311158506390782576773004236292071192483677176016818649588920579561982202062088925881671564449727735063898367898793201656730118407927484159743169488761615390372981034638203841688603025355667078801099518623978373726696265930798995715610438537676792601993848634695098982460239201716431236316758276514166942682930866795707379685110858984520236696280665402537835790554433270191001867090170433518340950956837210251290707953261145616291822236760322408898285968944963312161903501124053869223590538699340791808020707789408302177469364679285995449848919368135833034658507745089059162930525008009382551394859816677170451425868453199038688598728763127932933966492966546771885529040410763864533670719643999213313734523915017043568590659907403573870480769788418210775160791823628591833266965034815352686782743438010562471233823594402017527949889800260520245988021752837830927859516275641424917997173271066056989779026750071830631049609685703323392272781794546305473077081927767579834401575893307722714546146744151375589470780783736310601622133135195661773203189166256207984540585319677602343460752636596536320245283646624709466570009089120261408913276716543733536926570945083557102305082448779306887561400871870311188630396665065252467748914416110919846541271094505744266077639666312564985910223695603894216659298452828254183462282924571660635826509447316276738977267434182852599081942280301897034738171412016439882805315798680786914592505131796185780939789261070505965395899407034231551314454457709715501255010167117912600690910024499597214345265470452678406810532709308696019900471972676927583037350118848652200731288710475056946064478003822258973368372316442311768718882907150363388427354854850833928028881523718589785872345410367936603742111424741520705236422931404673402411790773935818588535743366790031722342449694211824901963278572870485664038368951481291155170337185380261916871779990977300341415182538761747317816950719004504466376704891529445097684574782708317745172975107133770711599314489495393337444384224649825499973459868280191021653927148698162754326532539285673678436442986530743831622118795390075138302141769490822826094670164198394881341106654090983749648618488588671239716734964748077162389145211782301280759059091290679502723499914564540877641845525425160831876824191172255505603689520940633252723141159864975624972031984184870139602689271232295677629586165516110437655710959570407530485080094043336148401392217356360345766821618339744176395965837339445281657113583398276589998276049247816007668791865145994476763065490038848752700511850429636469580245341684203252446132256707457730407092045617143108419674529098342667664327835393508103129373853276693541993416954561838018414965153069036551026987499421281309671310748709537086945767674694924576365314472935376933758477807367625436693929616557200319516706481911192130151019461421734017963757589878678007861170096992146591302476936459201545793470130016644090793192235527286712317080994847851879041667327902345273561366408359821467778362365561860030721609728804721344358475655348345511605321008594253062305685352737600909351172060796337078406516573912547155260902003807402782729019710398690074866029374480233703457314236410379259029611472053720095252479205804955861518702911205149888827680768399241043087075102915011242522525096880930693977796062325086873537098130628641371145176355498157343528689473296366119918714161421221338526762498927350001552291805989890006630792026092262513729973755244271506878560118560835573646631986404248732444512972676490618296329406247198673950148889826575914137129219708178551994874440012696778521721679056869987092132172558793309988573911822634468336907771995284306448295213656035769633099356943063267026614433901408748051246395569593517587588458357712778816976261878065725157225149178655292286404924616195913253596544568736769704168428631122988807718350438076454384848343808091916871819558254415497486133267287623151573407521068419911554809968287454855993284386537581131420020630000373407524198027756574182659627761512966154890943327417749517606565807619534463489769742701279726204885857001453483625235022749995849790684214138245771049748145788092515148277216207548684183654809104949687993410901151287034000580566098690010386130393603154855717071089396673830755644518327089339485923661912063118355154188534340804454023829820818665937616821958470220365614608738272131734499467282437506730837720731098642483381727540935900626413045337243647451777351827621182118842347063231685347830927722277678220666843554376908114153684181664888071715490669538490619223591108402773229434532166671829211433384981862150926590709170187882633568345205271554297788831821235012214849416543500918498678130930854374711304989003960685244491136597861127458270832229708750765694714066523312502469609689673431153795284392789250357679554843013855315745161558404542456558383329078771679450678143441057990370148513165307209874773774356813465702525222488353824724275518109542240353180000076699913122140199024227741964605063978666413180502603933511165077768318351296263189079526038984330314981608670087506915902192019193108064004286108189822791938977011561004115373716597234127438082539150175132925598409533796125530876621910723592373630423189354138191168016931054589693136803505961549446579688839782681602949900262287181443718030261523660681114052778232271619914687724837718802422318750527763000561674482329166494514161243681190302436736283511991753832738462354049492586959794303878949471189656613565730380760591141059559517938139323869787306672801993643213043250477892884141123595442082500286440817683269641524298764475642126401440851934403004730226537731883381238235393607205288108903263945660205400902471451679540481195286189085775747768968552065471056137361918466610573934882414344280705430036629886280878309832052387932420553047902145191566056010097566414193861263377590658208760557643152749063222761256589879003517417609652286158114176215359626468813513352428556880326023338719103874787409023087836753171352761954511478069113960518211705390319312655318579969708968544029043971491200090478076940848207992388430798436115505034969156903971334261969797709634040082204016827898801666889841383258846542857370114881462724907231518404362336340786317057804998851979892228883095165962363199436058653739712873401858869245416606149455708728254114769457479319999929584336840872202790359972507872947796479076213533866591668227550534961836349411172276673291559483902982461115746066903300715745274218453902588420042680689031702998567052901559310757567808781366299154330267835486381304626356069905377259435681399587886898518076274854907937511580840598500871896414836723566964527670702919781902294110425054556822270013681502745801358116503261411507204327003858473800811635954483972642390083777414577662943988148415768184247385751041744977393201222721215602451659087567577695337125402993226861481136157859731026075853451988976320010361143134487826410824512006570624349462739570334504819733392279650356869426206850409629816157048549221825599835353997461749308172102332195435838793222183733535053021889229164020990917492973391191940183711112523780236699504473681308722525074428346823943829568157526961734382322594582020095757343621397764355366183719406495364755468545494887312969888628162931689126565540409415778486219791257859347263196957626112790321712555651823452674454894178886984062744500160930800832001768278082570451188539327814204708047894853994318866967498745132814870260637925689968020057534823594380942307974084846297008951102222486072966806750382259087207537783714797201118243978398553748193473926943145589128455034982349761317051834531225616181330814036935758841353628103532605582403559398519106996453235848084794150661683985941078584108724266890324685180986511506181438771671822316332360531370345079567346930493780772011559555301477623206573356125207049099985670768894268198942930161164491313384954151830394777792632934689311134739432032299900476887030183477048052362163839867715500981251510477561708107088863362940099805074471495605808044786818691698457274129994936767447017992037743983917986176480008036684030325592344371884673516648033229757724261346288003897128505371543500651977686059346884503903885883355749359288983897696157599488002472513164507646065686032483224928189820824650139548132676297099096799275306155233567340169148183592364314006742403395431191336261868320276600655423331199234630017346842324642889033059397327631551025412450701063293808211754432199308265834752807844348521695150255147663538576192361802752623954475448601018650211357780014148087382580625333025237875826839534044124272803563060849453348920198400728936405581622947869187560298213956052837479463482222409004178624905776882749166493826619317950855196299975898666043157220760718876151847838021354694295239089484800365761413631625266635852981588981022714799959882249293280295160476854157871508582457046792377822934861759498309056514623703550178170363202256533823378094274143945928503801450276903722705672138468698665782281421289426251226874642630194219573027753853526089077152783789135838216886772158512287355623198429900371796210033675394950926108258589412308332876786956792725177857270660578699923610176617214842319208322656569529862071971499383907442298327590177140726685630588854385404706289002721299476202081908121829438072218872655587766244783153830912087803912233689981202147617834425584214649277013755665010035087818998261094326069268992023928018202248389622103455781347230976600588711677972618351959265257022412048591059939896301061462458753239742987606683791804327133011935249926651030275415444563792781699675410617178610231135162938431936670272665382207720586117270588923432273978403711528348622465311372338012367639505693280154336762531531734309430734626761212613823787282120519462870850312545038423761104060970596637155266769360755919345523998553769292448583067787566874342853531776500971239124212204549083312941675713828099566285532417901139402609967428404557228084130880538124608844726113661173077372341647602291171945472967471509036956756054390280593926561786557092426505523741333340890432893402747137852026442737219544512237231907459020169210577007062565494830884717786125342211099235560062209094309840813518565168910488313420223922379290908958860188538343582338443737014917260962156197593285713494514117923139778948472651840771641142748648045909982353900015882640724268784465669746779025790717710031838875401226651418123667575711068217530140566898068974006942056769644117564056912976113658491437874381475944301564857378341428514797511899219518405612805631783563753070110763051251363660594974570904894619924905402104405820819724136412102616060450903992476477775615944769362248599337074941392147254031732944330353727202079588123114626304286966250229602674315462763191070262045354195817445125635614132238951815991309143403224139316128834274401338217903200123750327737411397365025140580520844077832378034435441897912574313085576885594032174086474216303589872279927197664087122745117525874642596728719195314675727782723802002047487654550358842985328202101262823979120731332028729907957311134285415770582978273435087259145800268718425089944088159996858073762144089051341494320040616862514947174969860156392634213960715826917217250122729066109781252043369214587716638274941770568313123822533855524602679558077689453255339456966797203077313129724903113063298754828413717029974847601896555979219575572112830746888178370601008694432594651596160144151199394806150945683316570389627715450397445084353546527332626868958250763326486151620781988722949579165749478443285200424147390454064665612169984211205449338311561593074770628536294705303371481595687682511230070045219060287310385956912924318728660539696495549881487054146128471150793192490938238630216696506367840978438646597222458973052523328173912548397210582897836106308868188083669794982920648849500371954534404195422271230319438005591999564401811900269802487988381831844771706197191922287568416587966253152675471077799978056335926142913714162850217504664368330244614977134877197706833587626311131479530429985210158968336546906485229433486703563469557940702096991794838472714166250609177866246463393027108728328125693472240629376517168110168357659985498638321652605545822208240451201504775337246590537376683008710594100166779342364369794556461531975310371499943170814781244059660214019170788110234906685061775152464430269015011753882048115619593386396801345312037417664866690269952470768505230630992595688809484676861184085203384735827852600629347447058608860751748286637222020275392474226081897347533178691903236600124934430701281877977962641761737517249348808136100101642923039568098660350701487990932194108699802107796432792685362766578605194274668187080147672255478225442238060772470799990373536921579316444014255467262814959634632007001341094683019049719577455361457681091821441543728820000209234692119352593055281389750157818273877285340279280743165622708505295401355661839447495243946541872243907451070033952653020686298741543551073662040975082080605893022047358193908958405806508533672148600034017505814152953191175407351720579903431010031415497650131998240320095170121702880430520754452450798839245949758931284472205389803669243642557113437822656277641704679519782504306030597627591573858655014410923869775237249020625082541083760688208007376641870721435535098651373548467018534536437237428457130600008243605925918870104850588490201434593358923994162350874165039798884702201030144957879243040161988742794375261076870800914381870915318883962367030286532654914575054993084162143947706036366327122813146372415797258951206899177126215183752974683600399668788083671653186748824493472259011423594582068803088973759631769360903860537543292531052962087031158680304707849649365443885220802001162577113812464169623722202454067830110304836726912628786347051534511633353069362551048079825498726384373031317658242928703414303317146378798041325120040375810952052974411306324982495228070185176758249657786589533389178756866967843008431306140652545999366058749016583409751365805049758201626835428463797120769832697609203331323136761634644086461958029654407517945403968059824796450189517424620885463320595845134590911565171562109208562025234255732085460144804071786184257345170645810870458373001176029206163697430084366787731277448674305846338986110217151505459470529096984918683633681927414806406580153726771731355871502218145972218937758542801209604210724646133889763294100192777275272221749987481347830640430422076015069039129081099704899166632059903438937506661061976189127515249539466592191991485691726601059363596334055731888956495854321069420801438986081106807712674571000779221898890893012352105505649035262100335206770297706273052313422539445541893294708695861418167497039845670781317194496229484392038141285966688898526669602070796771595698412302239387526206445326441902703479002325538806328507796763559186287896143456841246406418164638948910558771129204584809149419212231610472602340083190466116054258323539340538186671200856621478553614634094083462835190349023698995279476478651093816319939693576320073344117595280010769334626430965867945483857953300597065402264268666360292348924181731936811651037987342288722564796890607866163824226701402034928391372912562093516789617918085757295701647545169247698361664427821542262298411018872610479320032980663974639814487249475137267042575012125667041823506716556669275603480441956683178818781342047557640579992933233187176571762501761919188044310760435802289874694910513686746607351923624228149373495963926383813175876445946648607754540489628912611824442332111317267562844490213259949322278291915964906532069198690544895814694257679260183706660924425597635568126309327978533885733315478648392815834772072938068267585548564170546397211621833292938543663199885281523220700447141489335196279481601458534849022101364038267146971021232509815031246803903709426622673618928658112334740612550745084660217810208884644037384924141841164559679359148267262233201012565755581587371662637153765602232739928825657253411133100024704340612131808319661393491364930082940284586755753869074625563064378014283497337368199414957444716409622691228737501688004766996036383891687931587178887711246779473632762315371473674856976890020052501077673879806018254998653496094137132628708497730243193145316409951985186422786536149059815871108274921228961173812818664806550956135027202210577237119479798791276145820757600335576210655043987582698776575144165304122992338333383487912579912060654080611217954191398096079319972528854754966451289935338664664921724146427697836385823525996938051487646972096032536351331211264243671798152739535683105583906625330303158617179693565431059283361228810882980296920876128335716148133156063051207396703294625919648428502900786575643708951723799215914607504428592465736274034707677017973387919287917493927079523088674832965787715917958357905360513217055964080864305078416077061396570210656799368710410493157616665857772272019986297900232002871202495624779274494920863741760710807852863184523060532530913170000928606434490569113605966051215827121411198805802422204152838898230729176902529166557751560986981981374681779867060632972667432978956108966804794852345900374201085636311663487008730734703353224449779349754968973084835389086426802580293007940979192864024908724797923045090215419923216802214128151897287997025100532996459128305480881739718920971134718682047231604812068940848783030329944124608972382106969106235336018469246988221245048624690701452948155471111775692652897337970773453161013972239121691777977661142291860214650180343947707763030108961596758958222683411550313411204672872043816986573616540963876133538124453357711189436386014330136763866719013723980672644112181982278949604725266238859638381381988632753862678675978661816380299830840463537550533923155032679788677873026970073685552548055260575999489573302103741244937915844059473301574079273716451647583147950826515371114970730939422182141354888815466357116091438158637827012877847081176350531548314820974563620861049767416397002309973824710886854537457997000667066780788701377210476484227557249456884876378370945402623067200269188624789344311276441970027136706849477932615556462241452801166834619234638227960388273957533072459946815948336115081509730622524715516933142837706610863955290590279726471214618665943586571305873707854556903500794608905658818882462226999214121732525339231377135291772757956067251666114829088168602131130627793770515590934138414141384368037005054249554821455432761752903294439336907909699449385406006738094481567820187276729829769276911666647145073459741522057567646356786215927671650828295593774935010511079596614003432662643716029861271892773621364631510605451622395302894262641627020599781647393554101652528395136503860044818997487526411036776523667647159429630998951219249031097276106561607985409682741820335319918066077440188307836255554593987317761696859372501335241672534128707853621740794989571683645737695749986758922524279503817530069931368355239923353631289306662067182855615031807866300652524432687827927450098518898949737358623287550875356669345144806875738964584302403316942558496879601895058530660227483709046758411639732935046160829921544173415132298132376472467091541366223193992810071849600950487431452782721237490684336873548943196519207776083827566841103769656431874174090687970526737631891533531707727345322003478573098665847213994484729928341223896423636992650434015047981214120702863862253618799738353949966889143728275603462112966941239958228217264947232048552179556293504061688985062313665832211517278276896626214035519757476260236365725348336562494807532782727377514482509660289121882509367542660533378089550371188457585355053903587465538321390078014076083480310345176837442887220576951972762435327453526801679146063111660656791311876238090513902322056382682156203188595093741307584809173141072347174568633042473723282197696355352912006810119643620754317175567432509022855892763032445391396847625008020809581046937867383217900098566079811905151188104810946910598283483697095527648201923620805725074320397926426459991995584774242805161638791971369686669715036380154598830166232808723798033138570842993942296575588255317213963953894660358862457117288355603194355226850135621977705301850146075365878803225863574120272879851145885229228382626252819651394709334783022308853008410484002521930762882982377979850562384766288805708452032504120770684903838275921327100127734038122269533852653619979887901208627987345468499344200531523955036560341161646608457991000552462003464331029120024736914980557391891976205253781448436287314410657325705273043036182128546237257137877875810391924935653640206545788028818907732825303523825130084425917928100393331033239435733026777645376688458792146619376657667618848125645657001755774292812001341572466686845905769844135280534514100515343100948426404361544510765346895948858247485744547032187157701121026392687309483463524568097123655538867705168465537911193356235633572886847004713935231459367551950306913974535751582709039010805128038815651784917719838895329473624434938428720629799772479620280930530574736734285753078274957168220296514919667653551554876929050838510389981800602268594834840266265872201214124851621763624919518830845062104404315578020653048548198646337338430835593885920542355255744633036194585115519170968586656106592838466526628140741738833590104607491910593422163754125655682989372612931962036935368367427546990798196010738768911370834190200164997355198284623305648006875291488852444610846052422268199487453081640789262928903878123177409387401152825862640167316518860447397239491382820145752793739705944013256229698991785024435050381521973016971595099260653483392479350180582578064333475383150277722069254748997422911305461225502054061269878541160424094846691339553722199797397703198480529711704669745505388180463330955568363579736640889225403192018417697485599450708981815074363509822699236483554298955323620486079757048014510386143015367914525605287176327856515118476576889203380708574219650366397162539083213825328162089438447280128366110674012790258818370544349119653624380775284195257493129879158010233966831371748385351248050766076333175781997693661247269356582231905897538793722332147851474899402664050227012270778579508093273930188874286524740597143503166016542893626825870194795179250833535516850444167451232307568320530214485184202587979478915660957315772924903015126184651957504353041770879771608631750461619761834787277133027226631641514210905024381226482974850699647008099976534690691433681654481355627206617920399490347503925624984287202750136509160412018068790613943508321369495592376969292542302765258075157971617299742864877757679335763447856535796207866783809042232255310776753589518768313184602565163988324209380154040882471304939263713793851369331247446168915323193020037500345721549023162037324683709774279139127815446134279157217856063033594693376746284453127055657974007912585763931970383744719697256558744858813307976001330260630074114306304985181409110470627295542185132840869350670075400313473754267261147148062587962165852072877791777091082026311586037504463867432279830490000798492916348160380943593064825385183740822305542343843669294301541799637594818235823016220335143932889549888642042196791234936369154766504362288700636939650189478845132762844498550490353983571281800230540242823602773381011295096429090821253098150020838460497882996968952633948691234314402569840246341060927505925930567830241453571808655310121850187497806168436139282052451684149223448955248995538536432423336968675969014679442115776629994912166747859907380537149823274948989541751957276515585591902091919317334100271523055523730997194717430071903980516992877679694515665842737196324051434231817583347134772576535872252105965190411597167572016306482990206966615139757367842415124424206156621145899519745535865438105786813495318369140633079302421705516573277745629476922896442971220994508150281702059319845517316333830486758004066918142020367170429692271998115345881928511215868342534869449038415357001517751740556198840529435676361374707876818876208313019850749149612855643662056519234482363190358182404586597883471563440559350827003528303933728151082562067640825231746670920027119848600130993970534448682477764838315520437585921966489593294646815459181801494528732233965410884377000229428606141678409167234865705608128299086091366558809236417385468659544559874211451188154993569368360979322538845721505609319390379829771838698655988859388616822176857764427501226184428553714772079875710133170192217422336437339612688832332617737153156637872280616089403592224300296492391626074873533053604463106016407945935619196111508113650136579289991518935728364428490333137445268702939773869518895213971014945362081437533311992935851837473297103089970116787970822712092272068276924394588165500502922783407733488219305507477653174201650948449807906141429789854496133890400564688581729846470347293088330236440947060398626998701770863109171103251357477007314525742802686370274680177858566852341583000466989028662559361036830222020113826600178174704069522261820803377407622352346305449991284336357684690124328681822960094551709804224479891888198458337299454784505592411856666625070113654914054819817249996396133078262464877249289810881717662984969627290314635154851712029643922167604858081187044844612229389983688852117781865336577558176747354986513304506169666538626830824669369061466188568603509653468229576533265305893799887230761874343399337775102319634777958117072575872807128356870566443346987916255197138492004481682866910653020785899769577625624134737272400021542923258896262070090421789617726141845723061825277941880391533817911383316940229030330525316845734873371822751978815779316874137019144142842474261388468956599992137454532929639070709194136916181662144632884756402097776697302707650659558446569020917518089026484013682100486133633804663537379092044695121871921861340003695146479181469220025878508143106612552240952536488909268766078998826316200759087469524287380450198367729091128902000317298448494281520117392364104533069371557596369796861376338164921862899823843535657326964584440326149309140065467417333527900858390008406557400750972928718221610797255062672066241316572080810523068289744282047617079217738089664814572597765155232143301717680768311219539377388570645914322941434498249843281700163919692119007982438079439237882037983258217758602409152461104249394292848412958488707560492991423607205138058047083569350923018681690838761427022044954403385774674082338964579225514816481784862561822887626904049885582730012264541993842476818445242732376488401235976226168975124077568632654146306137452968008952231528670977965678836216386389959232245069258335227435854482172966638142307323893378431232561107086646076195235080046472708338956070570898817813872985167394308659554460864418716039253444723711897385360588191004605798842433893772629270157902697523168177910796224838629681265620090310790469044805782369089023138264381807503854144143536397064956551262070692813024414400322303331715384188528549072794510593935496956684356545445864352087490560226932180603639933296547395938186474986115624008530894791594415673186131033157460180570664548636856834086602460876939042282846919196089211585422457977412318222117981368058162109298753298407966140366503770077389598186145231205765335703838511514245459076846748592458405898753455531923570190091754040722391005917283957308761757436931426614588099824753073354448338627632331709186800352376660646186546592568206442172343371229988896294290516493603062445853266719306881491489948874312671517271870099793130909585910128002853630803682574297093080067904107165105383319776350079148583469864711957134179579328543118383992925930938693863517664800279265678283796561857488012958472602792120022168032224307010598092411223881752099476600219964953977802807115585734956951004141205417939638013562363604023415149321103532721485680701747075172476617635314526538259338445910362126388132121163470629362100073856723553363657529800914182912601266600248785752891559899790063490227943171176975181917116151152118509634341223849848016088832465450430735696010351732225809453583980277105934654021306300342407701998009979518581910962881342396061084683557881471261428160719964408568156684925597433739860793990077305061398702878251552983403214454260078111417097956740222893210340424942108037080503415289384010300933225496875117470219917670096852242132130699710458491327153814491740206190557873783157432286457339309190222133841346108290997696259425394611167193641092234283827704710393123883672052661432246037032098314051317838607468900280518713875277975519757239649761446986883700312313115268161979131361101544500499764923178042211283079263718828363568237464892008134363063162157313286048452328593768623042906076326695572106189394505185379876907798370254656796531649964187783223304304101715706376241111959655968194143883097156406025314978404827260303014945040587382001613321243021717565914969816977014667239352294276560916859247556932050498935623624822327802916641841957759381513251135457665154393631510277118190756830609071458718958692637783258168161795041035211809386772936741482170008599422398663318427311916185645817056604283271347159395670293064040624176577434830220510744392116378576337274880015852526669898000201414875120498649045041105556987259135950092379498276305426058025464788264278210022012977475518344567871299374074169544936177880142408478933333390807089600980012297912147210082067327634844276299175808373587426073473177788142899458992735991831756427803976595441288972213000394276688241517588490787465009648666880063584687873905702986758580428935337385712716253313095300616897822306943252721831975419316806552018276059768794098870391977790940025012696982611842260496081114873208505257823543832936474755864331293579539069441045844310670066428475132139231211442445788188689544347830967049898068497505923962177260254478572936086643020713689724519211898255525949405583373547629859456920220219307304197699565259347774320240736148970910654797045991765992734784779227994817104812932170765115692009861294297871405490864999722905177916434125876314572526947362842665621391334721952125771729579550421786320388144172337376037970799450310466209862103146825048824148481756696459290932243089055354510800133023552928447364537461980384437681031913415950080861385825439377089168652214386038326118269140876765638412338828770074846700938931239283310629549944384856585472292224276329841258264234599445245762219231503441381075933596446836823151331739227762464067723924910912476081069692993386809016010375688126689040638022978404070239803858905351988867523295055849427023220354172411524552991958375619313283504863192005346409592263811465856037466576693087553060849743553283396252900950804277018496317971497618478034364846729324953014099689996160966574059639860826444605934256509091764223306704513556980230004655243512603155972676761541875032731263667308958751607555047546887685814865192045964747523033408211835759076193122656364414894617729087186542593224935060686888311280124224309442081320950412234216832496738520610933237686433814712574490039564277109096573348695857522036301359956164131576369999497536613884619725243286876644366245925748488428733202568554757434550906383629212085597799560527323572542600989123951394996540387997700216802606173004720372715349270126017703179927082853882829211183670113114839639770083615390158556906570759170050888731906910833721011777032321510350504974784256528513331485881029453712567151012724297951633026378184840398380077530587749827791901754029315867863208931131259995227199076448520144147631741576001368438372574804135236399374396554934371265598765281419038112028027394957621057023598465025115184858394246359790205767158338833377568868911742767521633890725950728100883477306728526789429044350178529123935804320410393928559347972143064201494326369263528603852076384556385058614801322094286223899054450928290842645064180582502956800685644713228009873381341200960553888746727556477415522059500386105682373169106359874028672201018318378553730789028159563802074272596410921232263085925607906159107275197181679315472592585156030688919753459343532974766325081895811592803335066269048848796217971424536106219035626921017878487297993296453829922420827559096846516520079168582447146629393701257894624084951903401117303729591485120316779346295203684189628782016661300851098246930196477616270079116621748889614479530462328580348499428207447764940866618306229620801266359173297524758452336490675794264619975747353710398390421797642636841673428516561704113588199842253134047241404404152228143252106406336298152913677281052562505456069782817485304160301124660851361303332422615730616708837586087288535038566938507186882412388498979104433174166204947398698202422761290649110894428668303078062176448958983614328992899246492334093409945155362377187570869373810365182937874073322108845199634706745884490679096028860869607142626161103176123082006952361722578579463236476564612510942125820624587386422206675774452538269295162254379714277299205262337286945913587044320361509887026004503253317974348800647720797049929541511808521849949661152530180401531722370814670297410437589223589903826761868326947433193669883303787067918851626603047056757451497941294388402198122109239252648096030057792334546271940673302571226398645272575866263878396581785404720129077271674119659195476092197090629173243158139151219872337669009866935659619623448794474086263850042621249592733427761814705690984479295420984238214468518877975309355501212832164034829595390862701473105285703010308044087012403053142207332000914073502743296937795887444671280153947647607320065043069617127829809206807681328921697644921924617658794947621143568679979742552941113528032772444661296503049771356434518282179003766878956747069873539937358020472798700176550180937838071967970287185279615182675989166403556396606998622356796304031293816484340975780149093229493173324646779063388006246018772531389707004312854332749969645329070278483582642238006499478791737692081354779916866787026527073256081453639707930339715575469121298632142361489471050583725265150946101576543364870105388481872872321093812771026208541387519680154729192438434065356106953101985396098502564695910589884262605823200521258080467766916332231482002415912688388851948016537127950083569076560787298019903562829128299017135762464672908491606077603677268948037962777346286970192007419011799514921491232455873039146115101370492284129871062334339494105910393295293467547060472759902445145772138621920808530920860322244377961653470020563843352901995501929470588982461919866090212965630701352542912586997624852813989408351544359395886477323784665064692710911759265765066655384671690784193157613335771136403171079543646476650079379975393347382155140238219538782560942022791547329789653566094342128304380142161306958554812935729035715974135984096907814261116980988110350524625791886541137157796121862314406620412290515394040666823474276612794202563589121940261522143093983534075589929396403384367413941318155746585614988093443106930073475779144625974330894829246026672470453298793948064180542586519172140809946977560656638317147524214230310726861705694175589080687389620273792219305586885380821126523982582142489458732525438452124265029053776490895198250538872673399383143526953444906824290097295961110955136888571506036989954709503263196023247564000297838157844043438775290122119763323722164942540692715062487822839922352253587398936567106798846650430567227294626769058187568603613002078054766293339319856734372655135348841170260784478699239474845564494947213395504199630254288262782762837544686687311094046198815917446639631537945145435165522817707435980502567075482634152933079602430286757389794676557071935341645088188298689159824554245973197885219194324462852348313574559723001905850187993248214676965243357379863454343105717532081214239261225567645510780923279361010836248581384413695459311934068454014482599118722644515993725684464066975427300879093724524070642237146655812838299615814823449579973044226321362557196312423898872342547720457811557371843633189118167539001009358323760961158525226299344498683039013234984983968218952779292999280770672868278285018983216892941008470424218188390838798748684987584090011444809530227244617983201297357958007291562038142423864706839929945045556207782368465192211023687963174799582257585911227144788384893284032623275908063968170657446939664505797957823781332515846893360239966968043617255805276476499960431230057109694940689032310209964526006265819402465013021473075300213798099105754573329087901656147799236145954408931888598358337213962098795182967381760251312893987015442690925071918385620900363909140886004460541941770944896494781272905649416253457604864513650162044811975848970203393346286043969136651656139243591692103638049845338471591045445745222260066609809187611782120860434462636790786285292469671382808094796144741955157672290783499996865274888907971117882897496817344830406477623887015209681364046285612337393263551793083899540602818812460142635111200546546761292570977658805230136567955800269114193855649168931820239947056933761344308898982972667234598218841445807882432073929573031353409609564232536017067225664074247046885904830135707781800988591396189115184524382974284039940452376918863434307989751278048920282680024074782391626827480489948767794304719135710820850376123828960339366684901817829500472912630682435138646357840748570699912601851219072261022731456545193582628469034377235436914923494485193963765607271931593009175774381439382481883935138629909117850884210460126160850190509883762410316800217760379866490009256530993348370485880203213675856472411493470043010779616966287006813229831507340536315669780759660692208779671337578711992629215197270920060092682526695285861709580285099776512168865720889883521835330031136783265261052207255603103427994214854012578269801188341437813861908665705038939115240249089068404501772932286531606287158596405400512356934824433642492381925034841852959558998636923666205355863628137767227719948263975085490988586582702174055808190808345764661536813928477944111262642084848655280304165300974425576528372517425945687265840086928061362336608038914735237505026198473194993795644312231272622391392718724185853982211374455608576174778604337408571594423642408290844510541496798704127042943116064685862838867662192915370490443961957974156506795493494864278138039307669549363670019165709159484239722292073072283357460643063286081119911043088501271670826256800689692034269239341629814457157534278401466310813488939209212183027539842130167841194708693711039487626159263888900243566411895849704676397106991356723680018371590909621604880028399556889002499012205554128501087405243524076582764892069748745070428512358596122599729550924444611515266470902731546695472027127097017690484049736952074291437883008895002696328466680990232721055494129659304824563409546882801452829111844897785782282307223382209886333507953481805945295837185056065720266300132442354056841770697705894094356669590984815153355997074025970995461378801987082918321670551092417837773723514510312523613085628173888281938728646728465617399361239317330635777648405114438955955425633914777689121937607031866571362442408082724119429989901973726117944935123328143602622108975427042219938462913109384349443614399772464072662723969444855642649179737486634371296374613230006620252238086676201714827371397185005925368135193538223239773346613029402522494750926736294246282598383428333127503782725866656696190966309804176468264656239888490692927654147569708838371333850741209060559018916668135278696986660943817876057181682913279402836191457199102220126099226194506740739853760178005774064486404960171259964367864292206554664609031655007249575360160908072741058409200238482697048106074398561385647128737154084987439659555373821989702482868712050685389117871826280517618267525543197502269251512823106182397174430238687202644809686596887018232728642078694328324987117993449537246044067934688930922653625257909613053914311313968496727240235822149187445851252316667619794442017264242250687662907319653025244523422204624767425398484814887089707578071585817369733685261125195887626257753785518428256667103840098418486877618019533944105058199591624314643169780946211742387110316701358077517311405416390130893836674162359608361744106633320770840298322104338753861155190594196373634877698030148606120565875654256470396179559782369243891639004175564761570164997332941130491227655039530458943423761071382903258477886307996952984159704456854827501704392887560162717122610759629323652940800874085970857653089296762156959484077439209549291976983906460234559063729687044668603679047328180603281578357854477838073260575359033479392749485923743608515886458052391710859015221910737412716385127477405524467648755088525211124082633585505772668733263484938803181647178696586042841790597563180718354926079023806870538407741113029839318120711100982548907292021565293476841207880937173381256685855133314778706760003520953728571072451356218966637915215002211402298786954682917573590885848079152832487770375856831318855251996179651386696339062196604799696223277943081664556074402490303363989471561994531767513039893762405674486991749208821477538047948868835823401458191393050922112704305743302007254666565544319775375670500922507468158850018976288124560219971114284414033469347437033067747347830183733313834115581122035237876423061871540689675388619897828157559999800605125163476760156004128757244898413932974760581807513346935484110556340717027627135993229725524703752818982622821702401261540525302608432637685405711849607183993948493920984405535354665442742171634807006692620205265532378768368769036202611994768334788168560241216475886598055378360703145548544991521958395004490910687329043559228804035388674866424165100960422681876012113791100920957219191037216365943933153562645109663619751364481265397986703484893444110579719161126824827000194423144475154736475671936755164035580987442994596375398585427737708625421884000813346378404507995220945853438318184560893699177255002309972956211431299015321270371414108778898465162267655248316723575124132557501677588464080245490266787443491279924575061694357583167347716835819023823323941652455629308717305898399259587271201458387153384610630950953463601904529852766593562906085341884845670352355740725947779706276299221948035342497044480436013896671871663764283439374555653117561929898643492803799249158740057048979170170228628484860022175485745841106459739866978913579252769615682403241053745758898716964151650909871196154986982196731777335338825600351055318843611703350514056335769328748320980197120500420683050386414968895486337505858266724613202966054282968825320007461790422936684290937469291186455312943674730595635364983366029493186783819309616001523274641600784898794098640247939815417876635283855108490899261478322837886919266681757466701178600379983436617503749942072089417114924138486807937465923804331877679503385480977863000487666482411178736134571862971078737231164794984461430991257514176812016557661412282034117221009231827660461910023669991449175451584147145199997437602051787286702004870239521493058907570381216871898771970869391165353143610033661602361821220585468113988052340621493689822516783672522782192039849824759880259431259000142629216176577849183539305474321605473701045259179629234202181223565866074735693528765907187342588638554714159506641698318749619158699710134658698024310432475922472832946783340034812831573526823498971908800137890209549809510925241449804822180321924547934251680685598565365443744411488380720625892151189001259569761288554783848789557219341023121937178488164895657202394874227951328934657064406286683324318205608489695029468977938733999377130629603599878422172967195497352732157022146456890803048476038151690425876197321357830636075650930800727088393876663296568550306458460782741453189272303540859462563508607241284726808181535418850565636696410572070995634283837821009515667014489521888410858112719929193249466604936654791037526375825891171776591812792376086354510304877502855323219265515363714551005114783212826927000983328789928456761756023227422602294670314046595015837401763059298699796886727098114311722920916215080179240113971549658163571047737005865363893770792581975505930164107652244780994128539107589202741254446517830972920158808728725166864284581865427484492140254234745127383476244432876350941712502270629475848318239377033842906472941703837259394087159473917441496918993462760937153906875715773344068803449668899200305196713554761842694782333690179747050694848742447234860336400142319633917286379889355206573715544462474132157851022041101101702281976120795000881293595364888352354181620477119593127366510436644280197194887122196981403748179997202822609564519018346991487868765590331789668737813077110126080217668630912623600483508111915789678927678811825656730612492204891256005888058246701418053839721976699644259106185411819392735907549782680583734020684858995553160828961159630048237844224503961130584284216038150224851141276969749548191039772858008990479046958313556071799095752783591682504256324182446352445704044045863937377812832553773306727017563490166097514239316429826774788967678100255629778931359861627891108707029543377921410315135980259244741688349449524596197381669914379018680144683896342993533649746252495016296680413024508620338975380558050471695944468121068214730693856509279116109653134219731869790739100755718803679376912107432286552759041566748869703951355987514254688006320752546803477277045396077497513793551296798805877166864341208568654932243404230062788314011709679405622559958679897701503368167365521783801090935944761849510590955969917275781311390944031465740742866772697339787507378160013272352562239214045563895553768964334110128537770854360048849168463774929244711879540806738974903175379740055167441744928456930361526279791030601966250404529676564980807413244744370311223223823611079364620407804560126641754781050175068038333456857451883381064953207540896215135655449300468300175229925213746944889797887324484160777523757698041788060051265310152349169473196689649743646118174728334396223648862168614412234532254686118315743423538584820556441162368523980093192801205069132770305973041194468204149270853117717060398213406733778528061490138485238808077931396638489138309668480078447016197188641612590254253027807661608510128294490446063088489326851045784891198130735088961018254966588288077722607304871449334349341479254935937392894180904907982483703034061604577271160995904274445370944976346899319229329196621035684479273180102284310608682992058204818941757965960134672679165213964956818706133088058574376700434670317339677779392337569178351446830176273073739072187899968989482952697873719952705283978867191970148143549043368809264688561130440851043147781141530421266415177198051248920647857105672153400909518726214737272516512684247332312373926249468810621873965096610549303840556778301357592382514754504814920163003784645872848749552377974905017388201611859122252130496035657761653503402427705759156493582214170559970228797605264916349879814589278521278404091068796567331232228302672302707516576584326712718490014291924374843646530968608215120841981586430583072302486189434280112464047152506918244450317173100425114007078850257418237321646795978627298925309559414161092584736104216274000606105318337624494782351791503474977431604501055686103734192627654423795431363053130267282933894487972245075669915218137285694283438665193955149549367656204637027408193164387613178130647688998821704750255672015475946482821503525934473272198022072235571747793947414755927816518786865516973209508635063898268007531605129191303088473502422434379485072721571711586592344171133885093494022322028489766728674035860512031896847840452737938208951648494152460777183232216976730339090699667139472313690999304126742434498589022147724198870353152277735353941214914307430977672206508373552448006533350444867205552376124923316158204631945440506319187254621443426309310419760716260201094237764211819326301588709662436195351515457892099707392405627519807315802531367499417482326701690957497025052313111681194607350342264275154910575642914707932559799750107450038102334340124707226342661795317186133913290529659895207030587646090855135422364642751234338569276110949223744390277324296472872660547861781987822762615213203728960812613198000485729638572984060925298961547708924246593279749572805271863948902606348854441593112846584907903051638903413744306529413277349217709668313196156700116919150163926936517955633920954283607171848351312052125426676591050637992047705028246004296231383390549656109386112370648413741974305714292925727672311019626935716223048353662330981917138718771677417316770644925316754341825588597530256792874738916273628625141924423521484666354176401283637382427646225101094875643625865775207564876916635615124925720807496689102048645025587892833225858955987986968262885985691158644870836913906400868300583590804173210689942748527197450953652813622793361097178477385368646248492139878480679563559654469536294421806528082901874391054297274931319588364654520523884304462108249977180520670659621403875345991887933863337812973551822749053313606428774533530488910225647062821600340132036790375105530224616340514819692539860530057251469243665910961666454708909463089484642535063235260036020438319568161245472408654043161548616978764165435790877763501491375587144754672038869758135417462610596981916632309443707824332692173013621584260402915213503569998625774958719466837223217061704460724283815254560377198146891082783265030233505974420541965742079565404601239087486242387404472005623806121956388708898434236313823637405845642675786435985877969835490949769791103316470357491736431893566050803130746085307649219490578887611684966734963727891057494919966062748504939719376854730802311687665786276325480824851431449296417836260869631621694489898249996562867199299587461958206432256494346684043488894346054204347115340706496536795828367592574282250090239814147054863870991861329591353562964410839623427185070483458520363659505421952148488722558031710639113523194954616414318023904964984262924751230313978051387294581900989275625591035191797248751350679826104765189398742878282484102533604273574144591025878284251296126411594789103160734331210508389791206092322391282435674230875503367734151002573712505959211601301083609821756998226276483116632453443162752366526403095113404286021727756356905495769787872022767233047542334204687322021612013929807903495936067032300210717738868058152545775309653381228425016617024112381527853279253938898775441065458758646010852415193443032499054715312078059840004930519971695067870440451762939981102681051310923180373882791223838848727926247710125907094486842186451226788227685940995959793211186872175937320430229750601756585409973698374837762871059055575973913778769873115305983359418540063445062365223352594788560432200679923091360853351882619628151032978216187175827908284892322012533894472712025039695413279739962855559665723606488480717905545468215887427897660985306037285007660616604299780829520894942429658083009357466478247642655307145836345343623682913064653853265803649463887183970283779972195738087238990517941756876385945814150148347498437177580287427223005820504700067868167945637794117235233874561673836102434597682015044688891689068566758244256260028293279688152883547144747042373759403028693704620732378839584077192663346268681733449401069862909020255182132620468526234715800341067538110998077546941038719532161739501263905712242104513106482749807509174568351697528036591973871396399010907009946905747457610325283608625467937001178009710807497075206905549813783203223546683261871650733244335769027703666240887804094242479512598908338987032755302297777586852434728098056316242612758292439905175056703545248021241045960382303314960374940892588545841909033926755483032607810096571914156725759834998042512732403525744212791901900019786573684180667701056132552655399082751043368990001375115627400900354073872952277249721505907217953273650692640169630770618544659693048938663936644568970100280184335161105317923768533321828006537601695813555911462379396535860389745484792976471438207117385317990505962463367616772486085273517690645624704379171486349468408413606787517336157329105192982842403775762903203094856886125179670905154854948805430217690332755366459349648230669991071217883463646876965045787625641112361795281114802384109417285036426252443979865680996022996146179263378037129535914268275167901500283047188524581630567517416858740824232267627834518027283752116137836775987248451626693678670304543191170048387876700343887758268447978809400314592078860032252241276175464463179022562551608633482630882380226406783449387844007416284010700578858044919486447997903216895162834590496396081530767636291330956695224498317851608504897449266960041038719931781892602720643253847619418517270719634309532100677224011094083092887821625356065596731525615709301830432661465938759493581037692273140296869186149880921967943309652358699215795732585463102997611040781171531425310106125479344151493432607151427591732453010415839723639766153684506165586051688430605198013531912453165881963670672654232410156338206010519659056304024303725278277033807680883276502146492902860580947183665218305671596971056896088248646274166167898408763017825093763534333246562954670066764944733404485950040763035695988957824557983794108862090711982030853228340248038651163688546194009679228800472773063299268653151121578587721676056487106789697636486160546701908861260385321292523524354205991819604808405009426127422168865275617661454496948491220646222336824260470783975917913981084860504104020072933074772520614212226525437375963789676560802063294347322627523858384175979011699542374174122775885123090086891066533303163740840961709413459660438214593275342809572563482306359399267448599619662602941625949717108748019283790343783457006650356686244441292263576394360294111184945955618694202734265929429538171621908135798353592199815133426151458652898099614650875372726669004624343642890920565287939412103340863286052754725652302361434352823059708550138079867569380461772380547589271007169290294774462639237520463686809786887680490159850801637736248230489752223491885407136972757772135189829181061839326791536801466609459972075194976827506749483924173077011992706028045546023546069461885870061414523793492918035794103050349399663401156464157192741330975990840903847313587727817084231060024194983773175353654889707624603892094716610616384092384650394029704740252478224205868203036992902219346434535419578442500740223806633043815902854832196431339016665305438633422648340361218535916557017845703037076906546924284721926675495204441633153866735583196318059005535393653475906494812440825759521937651789381976346070794957886399810541338571665137425988350585673505189874707712254152869950661011241167024099025420209502251132986229948313583656620476787099356761581752323422393495046382649746174225730350526543256455058922406622913318633404595761717104280912734146295775693907378760823655591789444173866242785486254458383082029345017099408655785257897133493380498721413878962990846796819294603178638956931654364523263654121188852652933260501815659121932495860612306964717405308576162798961701370196027152422371060399245916786284394995630345365450220768619278761085469016456782111724590258123058693044985469744476155647908442820012111608439144343352948794817152576745035416909129079020719626601246872456472640594803205848230522848449542006022983161212195471838037187796153534483400317890757599532103181721405540555112618377229106833660833524277690067383718340515186755084102214678397120834127482577735461956644835961795018846969768274727112205361353490945909619469182177185081364042832976189779385950936113369177047443388495405012342404381309117257767003491608830169120009393848490136153636055048594979014742071592030569458554611751264235595789607721832194924852582291571576744440749075761980331829062091084327530941741344970063341570048253031566264474103463766858368765933053589478390063405206234098108455156450381328540896354284017565773459635223652631099972008430649372447799011428055101582220264793106122803726710406545160149270603147556156634436103120019232320064504776870988542427456163831599497461302896188897885640127051229008301218488742349369283847469173246376580554877115112307283182930791493153951605070889259718892385069711568083016131125568981126916379163392149119036525984628807298047421720060459550737151089735913742627190021989466412034797712054016013299438886175600226092900640251801431580133829328398609374696568507548500049594029763283998002187682372561319842855902902332320262190973977165349146155135614626105998948673401073316727344104748734205016195897846401876699972482896064761352033980227912519217381101393905258996660221299949355900233352181044302049670955058155972075883838053821126387185928263483215113532825631387333808726364615460433446921851519348462992015317279012677796660494791867024989378907324786484873468979696528545665323608642525761678514902067868334464851257866289069006907494686177916874195372500650802162785383434362311328004423188430575204599110998590504166093852485239501394992933703902465346747747298100213865693847004240166885943758724820314130612783776689546653828403734261882868903537585710025698169025977708637866050690965061224067018683659457566321842697231659128435416516286670388274842494838883660904981831438940439618130559542360239003777774282139794020688092907542884921934974353059550295276559088345892235019254020880512340735526624104533798541586218099230652305375919666787268246552658984987151725791154022844791452031911225320201027893111448518280711067118389240388836746697572501899318356971124663998475772904419387799563950663486740826032286037054248676009867546516251869406642702478620372501684320470135606363616406235786080796330731920717053792701204673527083475361650785566097564034298467282617051188948905265053442817836802141390278814584617530906596778726151997061354414221475683426797586861402829050867250332110282664577859959722306163373066230715682007820269758151041458104844756918760534343010096353569478175311132830298305293804634050013599271279914526749956152741871828539068232953873849117712350307049891496718951335637393021120832210324539155923435941242153868673191076494565308241973766401095216428862139232019116763710752579172156639850185596189010578551910183287484339285886477645199779773331467029518144419441776746737539369210518436031641761114365087976005196233746712544229909263948659802819559664604998684634063418059503950592147383390072309359071142998757991351766468377045938016767459590509174254966643054747101988570190898795991501834916261551009600382083933597357186066001466925830089627391653801421996141278732088511904678973357018267372832277000854125318312411360438373472272830779888160117374992293275965592666884472459765374166098251934267307946801575077378517523889127500455593249092782749487094050734966303756502596514371709993493263585615741864582951788149636960588711512134441546896891735735850116531597962583726796296050657960298245571736495297869523551870752242879524784236572971799570410260177979228466458650137850195536795494536409848986731495752929227514810152027201861751283426862865789130161712445936635764696619839539401397704947809136946563566038783482963553981953167623428122747296248220589296378249069526098689091092537928910453104253334728973501887227678045995515174452653500421512565585984267426574498358170472316853828088934656360263840827202631605565970358017688615382377805572813064872144264390403695729774814178339779993929684350396539121876899065672366809230169120139510380622902450487010390228090910866286008010334860612267669333581098529026529026409875653584512544936195037021192829381935931863569442316358856293032800432836246210573584044299369991850857137087204622921030674797526164464090553844993693086172448553415518958292325903012703067299770062556302139610877888469063813355394805573685061855027793347139649762502484207958186277626687578256235466978431911598080871970510771627458443479777704801110627028164398890054463844942729566192636378241482645793907135888258437241917578707690405403049273607366376387921121330177145338263813957608641118655239258583659892270583933980670525009258170357015742230477928193957825468047786761623668312066741084005456845654980507347435572291931118681111237544849099529762649368172069901424237150914421225984406540127556237711521643884509985391596244099352172631211468717783213426580393360326760980883060020075106426023594005664861079262466948711845541326504466890648318104966570810675822863407038631190921974627887593153516777552690260799230315035589437624223397228613812058432949848792430610931243410181692435311250197866538219693418026782224131534174884172761987315289175647314898113085939614772470471874077787624551903973966247211973645972606531753914990952068775325845654142964065334273663585666547984756802243422773989570818612408151077257793109042950051817316901510273692850359249778317016833801273707603990674384396733691716719999710723754428518358635471510528841474980777992997659823589818897427098658403016941003195011161225623930460398373597629977401103323184479700214518419564789329176199542132887885461607917227366437794401512148970310683778963241713734958466178635475215455999386705142664725082048527473461648243717379376291525956680228981554441414022843386243076511279275927543859931777402300449276970713222969868912371893417542097845965388192498541288554756154657665728825511582160457395368285498508050410803506881706575996009400313746594835028175954476329989031992142751595832123034561664539528108254101772283595856454918251534980882433422794962596058969259975751476745802082306976380626605365703881990182004167737674448736789467711625069209307205424912620676319338923281941633223648817995630274483205430121373733957123006028136850217439800332217561448369003369804870474021960425077460888993282834063700931358100580486621770083043515850243538020724332670851848815291664104499368307213907371370972569555409526049574529696474120748837770381422749636703722043689021547447070641494625840854077274934284845735653744790094375512637608245425069365640794295004294978437006938869345898440533981308278425915413413762713152418738575521398332876304450964918692683250119318015185683258897987621699951187841053223721196141507218394927044380722545963195623951933485547803444799607438521310828839757268739353985351931199628684329814852807490735921149623948848556624115718806257556804312394794247039029848215197771162958877906741550362618826463631172315092816936029959745246392915417446109300384531971835180913763705107589261093911302079452937908844854663680618146434613567609064391924831440528627427870679879986665889259053818656318102076407610501476375132069210023179057670603623439504991444612629076646132966751773040723516375949574628891636809826153476896030184074298482969063105697024247521231389448787587349319397154996503196681804542720863069895558117986584982816876222231706639935530091974515095372928566049090313198329745195375145411757668036978688456223142751405028689707903199348653586692129061622874399076517735102229936581412857073982820700341220700515267587933473283678404239606565543056640228073777939642618749841656295929831587194760700760441902849609263676142563914317419665683463499686012792549738844054061593531492769748224148411308963300303054444569642511160363767835426297331596964380770275299104879146516003981855899971351174141950279344787942407061917496499603395947010966521371970831113828117327235049318166654382740820232910285356218622271864238311947430353670284571710167324989454413339038614893247692279563465944628884510645447436178690097310625210867322635061443006509481033770799926705364771716048016527578556873268478303125243992626921667304380269324109558356334949436410844193698011065919663372882799622767989479341318440665412528717240629391378971273798960855207549498168160685675875127106617259754020600644914587242716474509714033272309117420441024886935638931961713691567489994566937567897130282653179615746132594436607940484199915303383654275525612948150025937304498199775494765605563759097026017630504297847822798418002965926568899931374539500032201916717221453321015262524595727950860530621770304563269416873205446683453181161599802514379918289170856279337600623917809356471563402869508623799786683092014577095042206647016982834965690904177640192760342227346886419293524184734470114612552493255657683028054560754217563424801303663660352339656493128046586679289312336403069108048501597816633700166646858290663864571733772087487516261151462296577486763922738039987010802006201657738861860582844206584168600076792700642554635526325143181492904748452289270616887988465194164593771267661098193465416831349038008377132478254959342250987397260256008350853317802624922592745224035090473227404552804077754980885573583481360729087571326178501872548526210391871415795651086974399872626949841836714529801687097493146272939130666149027465032453539953624238260378083068604143696082097317570966480495913301551770329068069115213609072007501440878726840051602879443173568381160664298179543331914263361581154064227352281812648166892955871622797092894028856306882009832384579393853506047840848429745052759426428164238149823653501176652281856687382046507444402203166840689910435154215389072282789318676767834296300564173496488461243411747717041388375837302483808329945419235977163705677073336517001927200505560610382812833283224300239151123176589464990597870203828808807269093612160613437962185981239827665249230051656693936333822775182737351084294375518965677640933439870051202584541767859624252123026339777035113984255818966165965555683108822507685729528004552411020832037960418815793106504315561883576360456215239773901527901529368405030086496040248087912118794472758671960512474976719905360630550139332879135756531226422798694370753599587385356715696603782262934068669684446759077178952574859139055762703892222464270679615816345872777824996387676810754420682343720891157880843587596157690820009394566466841186899992663449395307401975317909408942005444747516778575513260897108091413799585678145178790688397841865956517767259377301417574503291519376829020667752946432111632533031825515515251886593204657593589235019296724933510812429346393399513184679784533334126829502755274379631206849867417040614741201533554008820057619164090161677452333081813319609540255861345626408548681446214044579238224436317907692581216790338361800009116115661422493034764051922073142187457248666765400811705243099035469618555769310086259822865618067645523127904898095008952995350794431232971133055909208144618890228016749624374245622616735931693441815156055059626973477737450055648192115336769385327263592870528876434255527764630876745180326428906561956540454049324340902338371249254144245228968598404940553698271826254452711062036596228455886664000406691806362137070386369797423600137497801669161787228834936241985042675926297027154046960016659373400289275056727371123083866289709510888502556765100898476998103060123630760533315690007837213167755830047306470719946246650052321807479571934465335031937679558588172271395581383109666835755822074879686908869870765252088210066471058272144212570532286511098023058423193544819343490114878258092951199232714210897753730567483776816938114611030701999408611437728237032552444985318206025400558798720080433351591158559874197017138100022720188740947324001276121730605872063684705763285059022147329970984081694893562796368236423096081456947276700681650699232884729528354767097351363518421855978259893344452840905790738248254423134061916270904013926313199727476061424074602667404632334628909041461124393132461585357355283259139961798983270134670369723240128361753038258064409755230786445935240981764440976501112353108295429287360118681950809923841200257988911415170403950251049429980078695664104387432744693806086266470082625000243195435349639433403055920907646571401102093578457650015211168451492565833373685220931728835287065064045575351137334113913506961380837777684397682505288415988648939004917389284647461560743263084278579104569858067113047765071683240365861217128345871129683166895412373050301347281784297824320076960548891328203038194953722919566886223618564253261378824737394953018145411335807243562701773576981778131233228855671721987022454356965360137678414566133003540427968088400645756502511848944995771195141130142794227443719783086054046937374539960807325116354121403542113890955774801208459516793303260590374979909939709927766399699425932212131500528719661959991587968069409743116855891906177931522137550241670153433417478963332765189555057313635783417808608258665014119486806584257751731871740727189679292982476301927308462276685428066959175974075684221939480025993536324515022695408493654498030015178208614817900668341458872402216574032229625511563740280444167280469025180492688639260572561963813608759063272795544372738723238647615446424574012464122287654842805610507244924650760787389702373804129805457236718858725131200187484384120208876060904521964169614817236023188937129701602539710691292904810640470620135928954581262923831328763418673361582250580773568413438017105449691454102523742728077889172314109506883987184236074068400226142941084817402134955615910876535294886563226360368702543428541904327451054265380884837011306571453815506402836703991875889137529332643113372829292319220665878539376400955787047596568686016363468223066828651224015221484965924051884041462425414688931497709773546573134062208152511901674886457835273794019846367002227090083690571116107482455781608359654958589021575636251444308200717690791715867280137578926946765115396854731431106541151144205607380484050615859548381946596992765795573776649279771462464057741930613436507788889376238607440556113047480848688854656805551127838278000948719901423684020669694402355032517636390884222887463218065137593243409259771951856368690643708952334855681005284959900548930868444784912660174846045443537903402372253861634928478658032839746033729956255768821346079763037809615094373713848751779728352142056778364964216030737642619468605029962999589873545894913181807546936865590516265244569194391956683865464479635937628088656059452344077215867828670346187830158758168266257402892025104858638783677831368728301983464747361731637324157826204099376351658902269845134067912692355894898983228631519544853276657431225509925866524920551256016516703676937140223685630805095190488319672709528598565893401438345838532864506083136897005064359503520418826908329503802168113336200724090273700925581357639306266566283209377749824595831788532133302249697556873520939327787151670475584339658894530804670979178623580406778439292799884685199124746671923059454869204576595487050337350824963337640387027139088491903274708674694122743995783872886095001166476145779343492377868819238917561129175574046656235045092233528254958852206702446270891362292770829770949292017915366049118888837396157930190929814226573538113890247852347396461869975751542400716270162964283630731862983611439004378921406659722449908015079935260543865857953088171064776510469217783709232376768504730008560220879582657449779346241444856665096601411365018086483569675531850342541491282790526545785356686447944944753883694153494044575536364742436228123488820555274242064661083418767017769990070694653920287512214007443772744628505230665278888864963202052192623143780618340740977305539252359462881108320119198440364020572856331088044490987378783655996752628368710020738675656133703181944982484050440179483222506436474474617824684568511221374463462014130192268895599496070680807488752137443281607901057090026735114324736122144025401723384293620709539571944955246432766285314418480475373850628162232448746176893963234379453270029059262255088212694933345468671315183756768324894826684946202954957709102523789471019631795681840165616647706087040577301859038242961843039358222894880717213620131752794919268580856355713211531381317666054657672809599918943537722625247645488370257131106553052158400422858449424288862024117414024946484036902605401597714519253611219240059916338210067806601128581038018475977087302590970720888633529457855477345829340861478964774555443092484908991131128029140150778249571806991681086975651504170579453383583239727946586685142786988813797108742107727408205259156663385744847366996185144023321374097587286962895370066728224195643416657273339383751846480848789664084367602226469117098977031304211774018714051109575607020950120112299263446990130387679003555443936103650219937658814628441726082166465651951595936598712089813935480797096003823157903570645808767894486090877459688620738584749162367707250939726769033620996328646852393235648763790018540123912621123497707579566603725233785978738556606741918573285775360947468819918108879487044682060590835968054060611448230419542727147826867245376599317747130774565462557030053415146932799116379353662563037994372350173829533942020592855141016733818777360055930536905869814141309840794457910252068519298987814467787122054795111330682610292969074766077026975785820113899132465876362695408669567030960978454555993285374026609687754255827058737167360656331212272579485015000371300447140003426234094432749047841915604715100266244469553867125507520521131714677715706113574428382317733990949969779712549488007150137644793676574655660283595165891390690079549936031204764414427744243874586095371311559275100573640383702657068465227345030209194069921578114010413671996309035290675853226676302907787002171311601626944688612225063596456826794962782171075032859948670023533831852249904320702853198591246913014935320192778840961886287895277316716502300233599934545515135860783226430656875531022311743989754457995263921610736017940894350112610552604075135416661444623958827345010917518675979675726817526250942020154708025753590742216427130036055288079087247630427268474881776539905683838098848892369176088633184417126966659619511598407516101865968317914530776222201936143755415592213728322523093655712393245675631995823406126507008540817544330731525954521625361734089507034579819101905961763657212251202778118184090066874116518592297362451758944740258255509830062834054958379021735517960931777763154270331629201962865239660561355565935433572447057131363818831917486167693302160751767502982875498783800793171964640892568644127263553137960042800893930051515475363249820216086295576375347765936281470360933092421258492945038189479441983129133070664696067322198353709112132853988927342064326973378130554420056620504707984626583675978054982513005644288328842943840018398899128961532096557120756925488418289798915471479128252052815224694148554552169893587126693239787732660408181985837726921190963568345975946815881933086482666539442827160849442084672013772285351384841682728853234454182217865882918845392776442735181165006627753083990461624195145631287719406363260819438270439715512977351233688952818343917805415035321743786471003226561018886154421967054584899736004056295144415947977893224515856281541258976465929049557727135012361325687142883641374906993316661499965268718086424274435350991982741421833424982472791326880244067723403646773021838463490037776863333634638953632505859321442284583957214660454196160320436421248169635053512919092854211308290802830389833566107557168308110520198883634624399522389420918600221866730482261241334657621310583604302700850114376701091881105859142377841105344523863590858051377358611114069621410762823167996923003510229775513121141230696396110485152504005452992927206906600107400140293870064962887856339077748287319516348262141099889585536472681452946596771549734845094546023095135434346622287846808690944349320736900523423490874468214787052644134344779734078859484909508456957015808280011557305439411625384805648424063884811006408609002163420005875925911144476568003412956095615975860438613091958388633275987321846370827631432074584575638228399987961890564015966008879008355111807750076545323469143617256878824897214044298362477334605805913563326371417016829736391340925480152551632835054649455998949816795918997168336972102113763461645667472681096126406182024386340831008352039762668205103688907894487668782781304137350252688575176677114610932988180076739416331226902889724682532997752966608193905366264598900381477561567198259445069802685569577328824402914549761761841353983562037536680430073838757150775726228524170465723019525708612866803226798319078263387032844913971350716634435223086269892001599381806281969687683080092259627395959088614184052462983256380750479642464242451231514361069145753586648808772876494346479578515764234296105418452002543791646911437213089361706497398884051141636993460746457362745340582237902509545467264517827598130316020300280299203198342950459041413533099167605338523193531543384842047023962389613316895369669098799283431845201697327470036219735230919722654631678134648999670140049189638116383229573814723185654254896059676687753504196453690327067417635657123360676854023270463441632245608747318016254131420323138950691079635663005256915815190850289471307606303767610616462552162977500373136310270407489663951589728583430285231798680350675048523938578218392468407656958307432131335331581842358842866934132771396853823806852764244837645505733519835964124845541554385865337090297977882357526087592022159910846556845598295224477510970872192241212995038360460141661906564816278095465129813630134867738471942425828113858807468925544552134179010594808400832084329044982689591205013521911741327591289977765415412640526220245394416809436426863162759755326989373486628673253018502661329726228960972861655720121365748483372557064913440533154921182270656624957324729396827864494187334497510491798136239560687539819584567577430341580067140759699102955897640107938822732840997099015062985039818395185125470347297848297875350326436320008309168252826434409489449929840927445712687738350329490243003712717116883776788091733566510175407798111206757375492299774716781296653860896648809714751867610978293669786414167081209217513349309484802300928564877141354647597204321870419694660103777180405488511575181257320055779996627312214775658144553895102352954416830294254646938516709179862502157351768247680520938816186942416361713123735727684315211612453123150939850523929983373228926811755065200246223327364699627939298303466615803640515133522799465338151009499216536678914967695210115791912098190459550444751511094145972209947103346933984008799025258193947376100334016722620176376135097535033800219855502518446931887088144125230207880789333208516392484999053266311322265869383083423152844253187071763285321330570888511450708321992647745945054262524937255764017069447980424864090987213894750798801278817085792917159889691253571157827860129332380749010979982663325369408368605740190436019409401342148292645640899389071267499853426870776877332981851489731854566248959026555378394381831577514868956129801592519269670663030278039113478896941763942176886981335011407085962795792144705679601787862010208180303290968071459450836319440786292168585113633446007601084675452827738696409346997634475263429473922048361426286719043210355781946345790981726627993273749854349863337183104119098165488066083713958960602234250734526759600475770440628362381071378606518363682983720268806603770181091918768892966754321414678959802834705238423991348280255254074066955253875151884277221605560942698193032784137438709358358290344612341507711916944705715361820984797570830387353936056756497484508022560174258831134026571769970648622356793813069650778174668792375087326752109045511359777970621211280366087867981250582674896829966762086310941900780578045957427187835345148508762155878173600597864426775902659299981730479637237567731496187511371929569018651222210561017942238792341966673914750645251680455220821667777354680331754138948465679698064140998392734698853471133215082138317482435383942911142152073957371596521859382709650600048007218022318249481806051571201100681148648367132162005029811761312704578433308439259629747544371801624762188997344836904081639893953624743654619427604727444855009553167957141027894443730351479908238769041899745773899457753137012927061846058925813428803091019556847017400462263589291300304901440546069608296317879853688359064881971450776329322405103272027575903947857094574520440530733888928866272436435578668002363084998250545552030312147250363114093092537141712901327622900638604731434488956525352918725539575893648520185996440881412803644329269644139632247038692736687646613576248324253938565072956467082229640228395447591158836739131749506266887147168105058309977760825271471168072288304332203676415849236755882720474192954604343952812655140950131342282535152853874077936246165702276708550837208206266313302734257201558101285629114590086518585880224969880401525761576484227112176443700055904708818875461038181457044821822237363549975894661943163031569180742989900205983966603364712808805189306388212836093513819473229875773351405073539862568959971269283825957816003079718825041707770616069979035920152428792104897270507259618079143693784886796189691224395910553982307771041439514637320039308943272245206380463454687276606286918320214687595803154764274249295047529654561504169835265600622182030266541657660057654519554254405586577237554084504444934283927708698813214274014437909027961991157813825081017650645921098996624204086697047527736513337541336144457781082376150374218163622284988991445918738438203348830170028196182668874874185873410572090136216584366861979705645936744987928609222699265981815316922669800981912010268049966989707251474991986550858799813298810313625166896920784896605326542142625602842855032095245872805841745582480386356400318203774118696418318517889248952718442096092169199112988294419290333655736503299375255154191236408756039422809117328236910412261005660145160306362368300332673913902203871241343202143407071895035486121159091309920738427616063104352531254724791602122373837421667729869638570621695285935616616756379309662168135241665075043566269507428541477379490309143095277075583968640842236680126028373212214939750385533019805928423149453775614147318387531419048897946451048142168273731990860891827900552500653710264121093592792024825578492442062934901542384788787002653403856593985355325033644059119917368667281046475248128841936533280222182635125168331560737914798120804751275394898529522188037331534329791998484447907952981458412576100479734160026928231887583882805536007287077733209849428891462904535374936616424766162238034947333647665327298480668145579114585375031244150157756611423329698746546344762672511003458085094076776310527823910111721189302188996749447362410351666789164152223001179300631282802237927426551988517222393365862159513196535296347058787951982096291953818638173933152196884278383645897569851987201544658742079802776499636786296949503016008166343303810708858469290951820158379846606952817105817658632111228864769095092634845266818984128403189203009537905258644607495663685049610713143875099425720364436684486817293655760490630267518550677269544173855087663596428670923273016324419287803785400718654721804656440554628297051211499188964029757149200971996222918903355008298281050765277541565855550846156001393226246063928941553345216781497130805143819659567060166184760977329288436126169946493635709080091682023567556083397538116504466360146880868408363823159314886326806010619676188821431906542170517646973886958323766744640139171951051376459817331138909654339652338610756227058755947514509379227766638559437730046455562409856429946552900446987266511207260072043739645587658753483457020773858165011449983542461119659165411884515373958469220293983544893063968200094571981978135157721604605686200484825825014468515564234150758775954066058308053069930064668698115604459376788817731051190172467338844585291026157591582288559448618462321908107303361511660053426106613020675659692162229154155396918749472201857197390862621294242705144622111685648920446401742925665572762452979813879339348718560275139674578693401837217489742799129167536635262323097360653819655708708281430593986050992110591396319079182369746152849726585618578082929589687338763285103865958820063947989707708833727288389685735329516762695722539156581340098736224926365580498764654860644167338749044673455281073258659112589852267297468364802231603873638608020131921146361731910662484642522103308962263883401297434126761952288221174811151766253484619875457250070659051855798715113955754418111411347182739989331288314099053754052483301347206373777825586497109719342540792969251158491420506082832256832767026889386686950257865647162162334090571729250459021221681906616067235929324319498019210213256906588363839807350600371650537027919173141895116214088658385049730334138539459741043410179009521234582706064230784443653702568663794283954276777051606219796756735812612396426235416347918209926215708700260407600131389007308100655544832110323373022705604791774692546920159710635738704839445110106841880309784252469696745654016598579452512392795903632435119626401586377318276760572941701295513972517413210621631762556409103473736367949101263693453035012623130417672480239436455473325016287334967474105320639002603251307075739471455976609535598565641240291672069996832088389845912301303420754466766961172056914292875911703618721860215653719503524000409903748324349278176295815236195216264952906009636311320396415249715224500782614478392802921897825442741291740252096909787907097831825983676333339050803720147336405688296458765924975263680811228099181745409187804437758457770493879726728495648535194427906075643377662229612541917307771689497671653340653082596773085513300697259512984332730353768048332985129944135783685135186927260032340180782220583088502935406354759680756209060818574146636991678861883597208662143210789369719180650341294848318232035703581617840844001491908508350255571793958311214236394434594795359537419031510051402293511780290662092421725593554287622585524679611654138871991317830722056955698380783112553825932946849222471667870461601259812707356804267498174406397164514434514708248954637482638330444167272592193200185725141840187626408712538417362919216125315420543268703514899261880725395402067074550814996008817236970427181776711713686319070695604982085777596531364236927379188764916929396662948612155146346588085471052742780606042785894029849933653732518334075102316199054505521959993001269904878031499658912849397191702262912280866834349516757053418567432815770907930443561255962319949081266264766449396697975918035793495989370436541282177437689794492166361981315137676235481186204746341072412721420228901334188294631459034852444026366359571642129673788551331678610648459744487044188224524591455353029761450627641198756134335421309700394115572389663126386096855051695256361526902244815961137788232142231016423524125343722330436717125975896463777271614097099352111771132494134191534116636685508603464261268581672941394366716563282269184863633070754417261861585201378222970525414944562338390216278979317230509117729759171665478824103995218432291864972111256034945741457746903213070538088265824394697233905284815653184724606136025179660480239795991603177052874477532414979805001914052201996925931366303807762211692762359354646907880246287728236997923520521955607966018738109663528457952415779577810291817165445997626497162640859622889031069726702684889288409657822593636187090713755359596059205704245241405117306007762077551399152304534019536928110401080873707408564147382422940389625290484349282503373687618731220870366249871951236256278444058328951819661312475785059698438988637614581763513276583939922298053507158970269221502700292237390529888951083438732941912414492662879000612113442959673108640002284755281814411803220376627941759035436797931811794818767759542397652270489421650099866401366898429647977569729079477976506280928798137706906179813120360837971227123189611717429335064011281859883915314390448539158105669447091630160775702157641774857530810258469962555162398266562567121466850459831065465399016765816629608580114368651186934037753158875245949550117604082382235532908762477622462656683893091612984040274264189947081551531301273671727775570525918883103581274973605323475677718131107470817133628649065093548140826294945931702788351264520629242782029442429475109834740032663559168034083917716565218881428083314800602627122829784681621954658623573141406556127674198404056235386685925180719888441013459422740133813180117930085679203929201558565415001171260664603558026023329636251479843826836284040300903468104148923555628925675600834501059695511437154219020068070200446338358190613356088275776689457402327778273076173180328256395987454271782613489685266310580274220574431678005506606005918221600657602746960424457125905826119261037181759981171771938354084579328264800922275054738985075186702025049395371391326140124581294957526849025675808316438624576426945850355651057248684177989472172778110223626653891850091076402714794032681527628426884355628756107289202947679122115212268520979119756324253848649251914517050458646524483007385742985112470594566171880677887586687406964449093516194737107470860721201336945567190148909662455499741392085677464369913259182998712466420924800245267485550555527220910819703783696902185783715542423662323534773617987321823403685593342250104084385006040242333108189443371106529277850741904436579113474231813167354384391212649969734732454842800037517678953493644020198999152124286662151468024057788284848889455552695040685489402280282114025836867854507656800335943765498655104368389188390696755666296595572887997029046631531330031584896941255481505139622540521215310400129941232924848189507655947658437951844936831906623898556753253075239397560422280766311850759867290509327933389399818175155449867282845273241641301269172517723129774094023763163297200956938486102688663489431885715414155022645272280672013545569478681841719347115618639002531321191729288613469288275883187774470139013699021430075849982201584462158409162300204211515096202164536979173879117143637685614551158822826682070704160973259568750160740807873637630916677126459887646713611195173252905574678580633526828088816181087700043516617263786975462818153669576252062685174393596133363800301271973913685488555087933902250724513590639265389741628396705573753940554147712813080068412898613742061734801402803595451645270562914024956819975710457044971466561897803777270752987606062284153102536283270236064187729184069007340162521182412896104888727105169175837864957836600107297690757546710007515022448025756421976727224643188580824612891310253101280478558414640144095354476129200484256101993463083472047350557252418437808541876469657190999606224408002944121671672103595242238896403007220907357231767462956246028269580413353357638551603537000551564760715592974803427973904794333965454528194392202948176198353273022508871254701323789056508053359077289822589895111161095585225415271739571320500161643666187319046262720135663876568774079309676782552709059185760161290931215688930802663549614595261894510960037941995593070653140327013949518859329398508335847073127953621605501436793056480164419697938829615575249819683309234244067051529371748233512827375558080849511996169054768315546375823971032094376930541307236646947679613128744228756664539524927305150659913370057185312230500097080026939118328935715271099926513280317003539081521761961719131301689955549292971661371243910451499505454510040117601344434299254836549466157106260367809862480768862445030504805102047108258596662989388935089849041822382656331163308662720909284501209908976368541135694986039163659162211469882017410951709961679276722076199511664261612016476021930863405514682596651563606338952134479074828106583648200217852592721190103962511178256376788738260080681539033008445951680397303107607368424246845261977961507194950739007575754801231848052325524061845378805116865392983286909088825950095358466281312150793747881041932505918805239211631010636737887261583402197933394481942091539080182696363271172379654090541959848079720401062396369373160253771882594984795427704387718090389069648526311127716141483872397068582596499352140638450051559233300473328281517779616460269611802864517960384515621792400742129953761330907555978416308329392529153237318057238357134109198723828481462709135286620615669874649612844852707612187934811200110433688365994489843165004618515541450314610291252409273254171131988936896666576445247605017471637438056374046089764362910798466862514566762116411530403173326272794844928933594351199872362878440491773632711448704037029126396605099964897955546679977961766522415151063645876296969978719851414581044501418464209434904640674915629208234191850367695404568255212906124491726268532737793923754732434198780331965604417021689870719330964852334941854342614638510157244979247014102992502279372195866031902851026565698044793800938046595958975113390126070037945321840753038959324682083663198010294200691292843298498203952749117699475507488668377500505946797959619349139958520392977582291207049370291557695184871080902098878250286606861436916279453552425647727440062932402096133728483200469511082141912757016366303038633312622824655604722495171210192831368366745471178440477442106364791360685779789630520520353150343419307466279847728809686181207379010529359366528249937950377743982911158165672714195332131996483896408539477930102467251743671300285992643221183648925653733917017622949491425919270304346923884962997895170489387681848068299695674593519392082898205297201105440347853328317018707476077903563370668618961422582030058592666120708515961958652119625340537856951821956561948524215370301189791374847279890929555843097573966735457557895338507148094875755339433284156065863413113590281701919170867036907489510495143779892501324577302393098187707290646956998241262816747738769626452198641719396258225680068024153847882722590234286920855925802804197557952270746369846259804654193058716476021049393251783912113722652738765408686433890192229760248068145581305048239607496017991421664953733096419881892881981992098803669494272262969521862299239782560243984334121914185472963013041479469189892092361272152032695823439084233125349350295272028884355372659114224551834582630325191308648623451389348088654727942928825526153940360822815338649137051068478716318670665533386382948446904628741528788050825864397086613182073548454760346045712006478275444430435299873453518436106743783421922459107778605346258879752410239393660332952602649619148637981192586656260405409481074086501418655616502426415656701419126851741553876206659496389828474190729371635433613409376018605459894167275791802036806991964388567497080302180411290553137105638243552352396057127749549943133054217773546909459589350569863421618002084048823884621471143953047397737247778024302575001121741362493656705366796859319790184252694856391122741437221370061862931967530557817144300750867878848896505513715200151071038166201535279346023600997380292721669775600036795772903420441454593036190534639687794258682487265472906679095026630729588482517558973138718023924880917842376421750072922615913296170853131702390421093861192683550109257049301163950597148498830977039828741188112007482974747241623074398504262147530398463204021302891594744847936563545346006345875545500218725770385919988742757140130070470174707019262137806124487134683313201398945089152216813327097079132198298994854966293273626634097908666957564328749343563819726117221267229596962743393803747444401872770471855389198484201761696582669166335324410142965796210004377531288931753722839290033458243474691109375380905953181252041375555321869458671974729668799198836916490437250759689160187326493995864667380056657080934998400493896572811578913684200146560270049944491709745041870281191902984390923229072018115054587393512349421978623043495640268190321587492672985218990920911081662720831142198322303099509623234172137455758695690816407625503050114248216586824324447611923765976667826618649828055664653060833592091846149377027216656800881277627301363121967533658372147890935179033460952333179410179588972766776691908818096966972114247008528659639723157940260019064808702015334194327233384447292566703843236530186429885935102065967817406381137339956190483632947189946195921116844850831952336447483583778078809061975309821763272267267920446869862949768604987379985668850564998076330206671861388674081495802531084233368326983385987943788910271720315064668324627371500112206367840291106556121080638092186367080636909690359276227517721164180877402132911446537358009072907435741064298588464341166846642050208487294459697797811786021749036372099384896662561354185724875671327801596412565055610827595682406916858132592495015879467789338471071294390527336379714384137196613719737132699501511774453108093935188759404678985534002697728792296155618090219929806017706958752118303402651631613287437277817259286480735228370872526165976395770435229177234510604263693403552938772070690849791060613733423355803418548555992252153466024293880043829245575931071933742057467219896825478158585229503403975866312075871024762890343803682640798629510471906955574019080228199768975111069597526564881080617246590564973586719321809330314648725927992047397448859029334560225308308823396425218445471755494934896038157422767990452244263965836960792595195804909075331129541711001869560201449167609534230734311599700765146181410131930380678239886207117401626354000235950823859787249295363015926014286250618709974867789163062487673693909439829823061822357093972652898287722132522383716184603572826580563729127493121779855546541119527429031192941712695623644913906717610126040734570126122549597792568309073138107042520642484522189275981380112514672521125488342618785059289731895680818030942583033563107831175523166872846352774959530193221447042303212688685558830702478971160279672455551730966723108232650646727177577582333230418140292604728140566298372520634952823672490872660713685100470785193422369038121628900168416975588802546727981591199153185538308614760061366066066044782177628055351068105820844696344775083944002557681104377385199322060640668584193461586314846033773911167894543847493818740176396982151203378757981204026591513527687174583024318463045126302600905436339759072737146654517551750799589865124083582814872111324155485032249350389968340608494585315697558273969639018714556656489190249226025553028228683182415364617719123761072580654293235285636692524490735346676745448952378805315055789535696922281375230795179964876991635659431880976195420668400247153476421138475144856102001711818917989290615449622060370260665323549927259269590438197647988348703175329163363804289258021801761602444225962157866085943085648633340270991112272290190027641897375622432985493169896339095490524316410954052893688693422716161286171042722019441151649553908193441260204811119902675853904072445642199295361347861361106753964851176152727510378874292925366542431659420183513166423576355946897812350311782974547832413644554847063729054353581837470298380365539205395399320636072258991300614526874727592177851832959101530305190078952450329850171040518657971902121515766059836390638990376609301555319608507457390227450845593492561437191067574590853782772205465573605316991132739725969934412155926411113574834389907658953534567689979378560660183966487753246606911520742383859945783234179230625614170140457802830106992295737416031716787363486584631011469152942628466887491491158122262916245576804043307661589882639169733007977022618399693023248007075412958083971924635750697854392163255001187693852748711808485874451100488505171559519504950207025853171769818526003170971105382765730902336259502534178961810215128305251108372102938950378285869796779725494610752159295949819154753192929048666787821004175162208733545244315641505891349656299838920981927099200207793767351092611099760368098743581628844309759030329328587880602069598591273833129993216918932277909527412340351121942502427058319486458914394607598370655932467838634179839355597297335828420982459882663231670184680018384831369493169174521310568450580624460138958670982340164945726388889600867789797286946875251712057529143000560615734843463504895873343829147439845472753969912171645824614714877333054382431302821107836709779662268484382862742395524482822401229384921033992716279529011259983406394010438852455291067660121600368152851494977960056047319490493281227191923000950970877829408473395428726491403238324286496176047955585444646609119801679077470247918282112228635486846023644268873297532135901650964673002253757415906971790167433224291892637827871140279613649442927984142377875088885985210130852709317640445290646615599859857770235589583085896819223180512314183935586322937528136536649944069951316938505410741130851120543122906852840284273800658770136781389943251835683808922982356584924431717379729864921272334327081341385616928217942791923751441011969801900447073395259806706699547181847905278683607649224722457219078071464384497622086173425287434391967366720317833771082007222937750266191749024611811349469638776645724525677484585116986334662463444073751823078137653890632403643424692576313448018926087330790469585454266927548091634033531728679150189502191047318200907214385980820184947458280116970483115396694890784935839340946514947266849765718264683490016456993203246615882869316582367856841018918889055219075670470011606236790720225851652810985857825567274627084315773137061349051920283466778358307127646494041298559939016269214972529911567390185885085977021698318908215868083165384781941292470701428025207405181067916256760201826480025061717260412460987677893848963331451605609843625915056313084763656474262153874595639660503117764991282540905346183975579209631989227172909992283791755950700455432207610030662027323440872168115366472488563287374532113473049447441776525943585762374778143603492615367033076435318233178840177810265155364327003528932380635702829328912479802442540831380330100811478281256959357196313242720513458329478777743693438494777033608285528945742362270335620146626160170647319532301393325247560427936580112990979741606435102121887023994444390211790800711260915818018499825764163802847623211920450806779350916689747259879545421653947183629478690561360080949443917231533049703716390013571884747516778404371550517004403588641214203179295497975164290562904062624307955620864112743035768976526993625972910108932949849092245935082957275655062414588197239111080396956712764235692412905307297360467373459379859220940635450585357073358029944463369491201001790407754190468789868256263273697751636830834579589852539226754435458636908119664320170090478636959803502061264224145965354012510112348401281852547827498436406572198511445483708886554984139890792167031437128210748264647952179673824909059001297477847518027078863511605733070542490980242438509551633995781521080805587986654780295441298957589794031952409275781156059785379706388257417327679121064340381813879538438570981422545672426919346573717041778897978611228760088230771044150387560189454562700901762467031536774416220050812353385981478202717209486969919970756841834349666454710999831235246070622161941082373273932756910168345686173479624590655952135561511790849289518312754697202853767066155291045725478947293567636983752792390211331489155329257441669832915808013325967863811470662476699618415897477283903926824841960983797880579637799772557199441959680186277850039647303125725714059523007258779196400744134077969134992682150563376446030033616701695026077670940110777989117092052632808538216685499819853556766130459920744836782968770014272201471539880412742635045687874501159872061380029938267225427103821107479664332021501607154063090114824739727794825847958728035782151218799710468861708486508512860159017767882072727574860431801101236058922113803774845918343714406286167131191693329374453659260881767627703988848215747738587510608250565392047288732226459071407336325545311473501171769650405283193281168161242500185326811031865986263062742650989636345957868842503769326680844135482694253550673373466098150247155211571028607536590040443099829201869905914493030664200426810777655163839795787367905197412791271310393787758613123320365601634006737329083689945722030631228797716185269166027957800666940612608758143504143128355323471393831823660849080013213889836252137069123053347090063682879036938320787504706972015203220598331877082602066319299308487554400833971061844353154894949647812716529981265406983614732838741950197303590874873392006825816820810109943813805669648399238298688691089010324163459109381364360199174157011557135417129663854783615100380612707305008440334918042373896836918455065270364132155665646252343530593384170951349506038387882917717501645376956208796554233994919716267784040965956015113187543477851095759162634658224769014961830220696152718899025772092489811216471590147344241648831381625336378031749098564028182966358650815394827375480052243797927841331231627206657803630505356235769694797417067231364163191028067893063066805182722230775362073947609243179476540548704235359586065869227484429817722674976155101513362906968699063563223557442609995379282334081456476583539018918216554093121460970567056708036582758991083731676342654607883615371187842597547247033441725354629921399237415329539015458141544085179531988898067569071365160194713615668552651861193556131612050684380023161520260891436408235693935687556634057306057317442301831347097007034921990311533200400015988398560933723427662519277264815496424981231921428297522698325848029644128422929589538026124357892801371535016259808341064962625459683538827015886784053054842295467432916640627025590830038410602828506772679415750729857018427534591233470958782565024594009688283124040968219428952353789967675583490461921867307234069467385036617694251415347822451449663030250675648388116241996571916930158353716238890479705512569126937632670526819254646091184083980132683658394430335918191329795089937633273205494490580859175767899830903045643375998277888933094116570668694658141351971938946795395917212738801517123139705517663731108513839964965778267275033872478292451281985242287004348263370368722023512034024480165851444673826000377945927415259075920664428759387009906764631128751819085616910889030706969394438831893294705016200662086795304430370998578715357198409550145365876794681392109510297211123222526142149719061318614545626858975507612300334705908571880878932983382832085529205954851342250356709172449956765860916700210858109115989550827127915177053044413107995979380118588643892421712644966603481333227558909558480999872464548851218523902650433248238724737614919024360098694579031676654099166357370847837040667667022053745786831844741715398307140973607649240862869946044623443644169504396054992523278391970138920098455318163154882113505671897035685370651196406014377599104080261554755692003814907291429442405082337045940210144776513223509236282278490110434119065530319936915935207296718795804360522202958710783897798174169088855619879385782405066661455835220620263727509799501499348419156782466289073824685473302784693975648824025422542048799901241945628463534493035600527901462436873229468083735086528737600772981184750407333133313133748277903657045188371432344254080883841027414403615893871026065511262784091508141901186214134138365295843078291134214840340732530104101217370480406335532863813353161164572688476871326679167045426163936813064288230245538643943291698181789091767335822999124923521391689815323907796269013877539274149873723096991539509661052105571186423475321529467152598934849549813776362955380076220595329110090099420710594041626459247114124010171523368514996433990125429357119166886360401316117064377859406777593601274174935581236387814121947672327019155688752617096345764232311044335051225911643921354057797741771939064496918801810192350223352989901712351515872877058852974846894128300621584583124384283265346962791835537376495269447161290183456166640805268231887129138188102562300692213711252468785946532515717158389382882153115049396604768764281003327991078352503354048987619759793449985830078893972278845465269153763954763034718806210887449111733282132387095422702847144078372070686834229731624692591415387910409057158773500149452993821648549677374238786565252938750595909393570565561364662196370234780695713799820351208956428519183716097169719816214299589741914353050465896330022418138919558601651088318366689479063585755983134604452356747968493412449388814008268676205608396663606494433552139756962372747156820690047322483785903238833884846573145523855572951910980693557057671120605718380425145150120511917115203249375176261216373177645157237408558260833881052281583700279710876446060136707860995164053651217450164993709727346538358811791713625906003809048579695258984169120383951052205810594572423942470418683920613072801943824586407060268059588320466610542567356242542500819536471296690064905529694680764067962765502996960607858229079190359467130602529644911536683949832899222779243654044670058597724957117196786817357397396300066435961940564817350084560823469060752729886868738290792677828264511755670018900142378698403147824761089066126213534561858459107075274705962448564458072561151474988879768123721954587606934693678040559285902391991614843824612264072360259145486157015451053953933038271436033659717093967628160050272360664865147198209201375803253733040740666037059219034507157514505233151887648351293104032220365880392998442182267104979695162661944281799061418533087692333779680713685398626421507366746573917540062065606484483857549121136275369149467574328156215856885088993788212029543966166672258126018678569070228235842311961904070550395780354854268929792897148263639885200680581547354061271724566804069245341779778017932283982569234175200344622324123162733575644502827411053432225367764414792666290621586803796579891470716869180908891989433394319194088359436039943798870493033601100526005057569056176691001476854864747850232717673067122840715421835649889436693976610333674114051912117067728188136848549827555874379768850855351820957675832887614235088132702995584673450417531169955934354986883128598981939090153655748478193674520393829412604697840076138474683047822824903526988387160707766887233573119157842512111229347023967266790932102599034138552018684792628295439069414103290992751083448464945872593385525282181001808631919797794641988878392136319430941450369087291541212162967370061941430629934876144005994988415473032220680352541517697396712262018365058618117290342229324325252086005256508236562201012982148861898520722518218838036101171660856928724454477940378424715977936267835765009484351827705409395790296421582138635844346730490017313417179027424259313272267525876047423593876471933055949503858469027216889899669392798419675025244849360392468543555995934522364706986170296178723773468043914866547923352439618830153491816850631639068385797120795047400220325210570866858636787464834568218136454606231907130060970861148848067011125148079959048872199554483967538169155532738641771512958896182138106375389811239156373135721242004874527887660771027171514105331268335212752535783880088499794878005858916210227842308650993929350860727107469241428961893675052395588767553938987214507088425839699138303841309990397176605973665058314610016536270486944133753151936712863014635901234545321312470432320247248579790372932542444253327224447382069870509202185904018535982561073118977042563894672875704260950922417243743543877828673086859847110784399948843676297273434433119420231572697989732541827138381504337330785693487497795454433940783807355008905079317968766806243555155046495091606945236350863133042326163846631824895480828786552499589418576558774146357469309757023752687869581212975151806185582845612817272303107558791023724387682869243758728475475745917493508644473229637225627975367268969254358825816533521539617997221805681779141040287633244365394025747354985174349253810420479331767002844807702682420858385553525737605627358420713913565896912824399111121586485886227802888345663380130461929738294873633338678000634256636636643964622739154718584496059741494737656557453158008696471841697395965127740987589593894280040164452077462939404627275692020633234633757015901528043840376982771534636749831813829912238921043516855499764877001921622454052452108135351495007922230078696490607025866434793909678193319183555932091634094897799051607158891714991789585351759828613701264164185907084745339251677504358099676103052969032317086977117773854467571969694999416488123488299376621901849739309560945758611144469399675687891664941276658101736619691439623524722478541486525171685292294876666312536405812210262358678667275165261612411612887997099769153477590078192607457197401175597942551419094954794580365427331076010601338568105724017466537770166212812845598865197134741701360702471498256134922389298364956269926719393132218676935283639480269619837607834993691036243834895962077924197229692702002223843789373222618298924704436117345755979986980760250635061308143699329039383988394635107893136428425283183430702390017056933464890455453899878147360055250890638713830536963475241274830109250089475829012958032442719511796980185078824050521122433689087732974719984257401666723298306618343156177878777820787203771722512117175105238337009976926487756667301895090009969552168783835144567531987512792255880733320229498825813391502446364905683403885326506703997710349752924946270344768949785205712513550555563771752898454638531697325139030277841385977851011755896974682859395456458571271059211736480893531650790193381849307727369863138598017926095144098832108418039715972711950509282187072857407944165534971659519958320255075962415410026029243193307174761765255057661734569531284355665920739862085118553531047079137969915491764513622570617990607870631664193798344866510451598547009503923357944917552516106946116765822498802053927503949997444792699065693868346468748068281518957069735750013551158720370421145796454558476488216065331465378860759646908566083950716628988480047611211107322648721992224849731216392720614688849991171004734144344159870489683901646341418361533624498787753054346447365926180644215276477621212126492602839165219561343184579244238591074969922373894580683790280609019075041956026887760408163301180129703306816841938018964174182953563076911942145146872342423400105981155952792603361598369841508224911907321046749643375182757954190232816612559683696969279997779146345615715270426968450163391799063763570614420268512767426418346789597266034945517804625849382600399126634006544994607398015298617968671254710149170924362290588955897578420277878841140016048259136947561213690231438781353452092228787096437163857721020132216756073064388100220423531635266487228710204435676264654153476742416530931990980561868285521600148196804307572325168040312601495108233729211640914027689506412169497549869155444758140070990727200222870313828809864575153506099062115219344456137584059511439646797637621619088690990023975699424315894067830367338215094944752665272817228676162688434525464839584041966234778586738523854730726608779388467793683563635466178112207530235950929662064532138683034155145950867188862957053575480297544870976409022824075689527660358631375429321835789703223536655470916163656602934538784435288665895801843349774027633412312947299599281015257526717543168886938007928206712245556166876764906327211061077892511731295480431644015626121575920572925890811254444743856532821843483983995013333432681520889031243298316148822453893860489365000732399378287896312245697192004539870426012692246568833736596553981491088392252499354217065780048833587097355221651986736474456255725448740826745682215214854026153253607222234334266074600323493655497662802819966287454272105425192788888519798976199293172166146187963171081948792836181680336109101847185388979357796763058685445275846509849164035742882323518812161363968389180966958285366290369897358704128564490109295509762588959040490168995912350198886011767603390743662602766211871521498142137555086376776213268478563096397186922965618512863092198332314314701409283597741468941735570572052464346177238017245444611251278477733931713001516213667044574090249896056504112538417089122908110599238573360330347671892398305862920668790159481073756418643616097899750079225601710018991590696418569760542227584222165331003607872031578592279695554312851668410889961317396743132518759339800114997953472503031312031301301652192910777699851244392583178376544867733642648596139681987902981049658439052645582773454747554278915534309853010008541052436410843710578632287315626513387852320584018774536728380448925288595210999895332659066479703825909968459339326374437212756520222080059447050453705149137910877762973193878695556223395952383919431439963445477499590962416353146019430740481014041671932874306233747899287037251202629639372928212493034719161998514452541279332736848488262111340880432864610606223208422429722921887343433151645716336272843963054645287256522923471250039963512111839342801435300754907408689301164189115715703468457148196775697577056238810937880303601201983206360143010700714454689219659487316014763707768602486012887564954747839956552906130389842997533623045924722247839140713682415185278441179904984006041675707756132623208287413635160751942086619462024692388741063973869464824253470445722043122539510416320019453391345955422073523476909050673104021204660161248696790465980786868759753452505717337740938898882422744779458453750469370394667958653063060721934611096381417882774249124158203483099718992159749056690516375474093494188945705859574251939031930455557215266255100830350395550962157707816891214412079172547827016560209887924535294240077210417155203777534567671623392392041934649346986180191247824466403727668825734047664027724168867587259561612586923429263442293553467746460502235210634781016760839578963515427160845075655783731851000744122185588383574200837699435881965060453417258124988619436868368859462411932011378005607677276743018787467344190328270002381974745698365715284789936129663749168372170450599894152455574710462014988696267956769526881392934826812182860916664668175265909078563038676142195103811245590516335079515445534355595849713332581642452299252041586016530129019536057125003166573583380931390687762542536935669989401292410917472442224942886060264919267443674075532618028261818923664743855038208790883550012870198463487604235601160776698837129575661473915028515262572428047023259927609771044672707575103649247192948846512344391455668571300411789661340348890721959964129846469016358849966133997486630151662090227342519429355396656284864135013051900168549153950432378676840666554682649210567137949319464111429028708718054912411897402879259671420318122700824985359630252258198564178042987014143166689174061223069997496155365743065441524151522096915235883547396092168932030123462174840742613494508743241785124852129227416931384273265018057127465719285933638785921362870891970894125049635873339116908854072312280373670082712302947222084582517975198772000725698365555515821073192562157258438786248274258591228845197567354583755389586657124449032466081902691672487112692757735878860789516323757208640361636675448302468236926012015170370223941877466696748512892200323289483789786393440006752095406641124885741988587899868115427610293566091393772902564967460239615862120761451842200536405322225757782260209617490387976028253832752754964156365860178996241576062910567149851150145479920784727670627928388539193345853770836542693015348848526568032985445653757682179477299880333903056969891604501185106252470830977902754246097101535714803425960959959923685731228219914036915553083516931611630306653617058523166678214202222807781215492937772544384222861964325686601025200718049550648685279733387521011870682324614960601764034351270669722158123770860655000507343810134202474065827065949922907066335480215614978091633181810868758123425769561640793755067626228435684963415100572714124823168829596551835165451644247830870685956011647546736780424382128492665540287153236814997925434285005759905107390260151563473293524606932985610590817858253854978190506938909247199803769116931460209857894441473122513514840571031763697576833858787027832640248017948794829194591962240192561489639947321122767502037841266302972363622358675797232830560991410230581115572924556159615508202388808824182273841217849961034373456962926520558619161211112099184510445474756179630116624993029093384291288554958217100394205647356843754177708340420602624311421162525022101303444126123368504382935173128644970540128045756238205117073776011935149870961751507462478888211863501390363592774846449944809937946716385265285152996805455287217239317882745661860883985624134622761368421906073284759014844212537070677838008174541208526840328077784228462968437404588189532252841989766439726770730125736925806003236941867117753488416449826799249387007600064893543455935832949321773345301621295173604152813995475160222936899509880300564146419562789997388463095338049227913818899547091597937337692502662263816294019113165874968138900231172595922029576155193642490076353152434660933680216759506391194122637324450378842836618904625221542124611946955660817357516962366555828645213743460687351209694931832164657359799692518961799142197819201450781553077105579308310495061877922539554786566265918639435250344881258045943844448812015363906861843964350349746045983906665738253060378093490265020693254769678535249893717363853672142640518940982609790102888256461145478288683962472397127801795350213892753820810183254961435439166419694212464371691947422685900255478242745154610412021125348293493661270884936573264718181029872418116008663083193842091443139199796467886938153523867755358267060285051937186605596362748907971846504106942219450774533920541221498678861605769271723764124258669907564516732019843973125993602317591017250690100529502970173861912408272490146648585885320709415125166290602344503523903622319538013911621423618181427813050994583039188238363358781555655849772757608599451357921044521927588612791855283093184145346104184015455437367492348290144229262661423252551284511198164624199439720444783899981901657174610974434919178810318568387187988375285832416022179363445772600799248288364382052899268745174636276417604232460258462940800562058374056353206222693335011260502347449510782297233500375696538918059214712741871872682743151254950505198735449909965714111583684180485637951119486284907795766257748603853405568202538826481106995610832587133641428061436655901340038294559708117501719510966417372533370803728407376350481004201358508408798202805818393847848621741751786232575206816366668229750095824937311877206859391581943412061472073498532702119894684679015199264030455232278186208804413428686923788820741622227409252003195779767899815856173325556269552821002797838181716473762077205847601925119064597911660768449531086791464467862364702090732189002611934257134623326530266330814776234988567256538161817969087304859643405393379976630925682838646476006644664377709370366467818383458964635804573660932996375131891843190690949753785774334219504395319107280575773791383041829194832330660316659866081981320119301466313649149464061143373239042136668685562958060134189198156952860730432364636043428730279318793670236968004587212152493759207499213680188770817429049818141269792598737404967412134428850511895002862428043082983557204463908872742718951855875954800141062256909642392291651338742794176885224969885094208477861149151657204222092712943360748705497999010585923651140899363983352866095676698981607114842017701602955105242142048397380204292646495539082530618007843341343983374725007222698690538184591897435456262866266652667995820151947270994584472142899705012617787223606153092780676524685386552839892042948590488293598729331796165542970214749067530056663656188765401793900180526861996900792159094258522630892974759482972286714328049794542329444372773617512500155787627131708685894372834055589538383555030240708608548553180057309327598516662833784584653245104824467587848879460640563190263098787878289405567923583917758437949242701748737815646574498122507547722985939130400776627599962319282355089141834110267386137882268986076853889644492102802141653843637542198461400424801292548160958675385074930012737707240292118245439425849079918386716496446515795987870111010792490242408744867530542997238477049120579519163587966303237398409216179718274570810116706248954607862095644522123739497591789483453007972228805170733436205475031181942608354391593831836615829472391747272089548406351971349136648382247096655255866496260104217839090931265886137618783311090737245905928644172475993251025110145738650398214608915676264790095000590456322072093468985310391721677411075974637972653068089010684734486564972595125699514619550953053945480369650339531850285175498850582351570123683623015572950014921642617610984623611816611288655219448720829534490994945127623745075206597770480582659379600962462285694963998578856949455496819134544869851526427921084415125702202734535401599782696128845352617118315147397603827266127365596907928961290752976040117686637157084745910073692823043748604449920879489423834747165485282361186116279845475466776454863173592480124965106605256719842707057080143822653759471890110388257773357426494330860427613078921805364647010621202571394450310878364245558418023634179094328012688641696442410078061630448730076773379242324060611237289147755203639359811104926809651786153808429225839906675571922094037870783719710318446849678987900046643002707248580304970783763786909988615195801723206495287077321664692154459986693021959971605054733763313384952164753539891021786783160465287792485747943815370755495664073177566010804605759068457549383529557540849931983540818093921522737035813634918423821592802895086140573248072464263590029183967556286185929349243640047939851485003564730072462905775170004278975987307901485241933750235173509999732372315763890715713821578599912168767874674574802829668209670564259983035629075389972404384313107475385128248147054535208260467434072039248369658510691932431254304939945884962718961277751336456331055309571114348801007843012649089847642843548492940332566802196603635530454238990292772742542308712885416093991981842256817768387351434490256979795930970049028346513227864462356899788843275474419057170539827616078282279092448168256496202468417038761928766740464344747596592177007374900961396209986856178990097346042579663139464801600416338882210765168013432940308755779803195920491885286935049221478176919903536511372253841235756484746404062835606288668421056328831139934593929657182951990625172683037236963143138607507868012598263824890627323826178787029320678555738034460490838310873763388100577125291462208710095087815376385268628237064884420499237264116845879773625445659005535364745923898546194270176916266539559737242347657730941920601151052627109283668771595875127328260020235945909936958337536380945256902948721462276465177745841470376700185720295630273376260375963873271285248981999223314702982733995332906203347242667813134278348354581128479319812152801735604514113293703529112075605756122887808482178356294099525104229302064215783804459487288098862056807877176357377449758089408707834353662627820148441263593814172597204646340035659622167452147363197292399291941501960739240311332582292297490652613798823026899351505601315312524619171503884313755398649989937156525934668676380478711693271775050243564756633889648283420971378991496761295472359407098910452262539906398869684306331982041854655111059490352417022397117097112750298540617005568525534526768724170457607037335151467307740269389635030741722705976953758327735655540792591592689263251842915840714743812407785361326209752920623943341798468403559589253260167382502358607170913823872172467359387939192727131001370538468857387184347381275685759134309797875480093286010805221022814222778249097050864694109084964773691295218025563128837079225071363302358610257264697649557492931871479965976306397152497617657325677374011360988884847947904500431768218826827391506301576451138143488153995426632669946959059892195139278025170922409179467792416343055997342102419645953867553423543938749201722897114745294874874040302220637358289628561502609578166057947232381677285179203564147039973987700124258712629568191764535732451885789296999539486413289877398893470773477779349433662001283654339241637319017488363563480722795540551932928522535488495556347158972817253620673685127664673755419147256504619318509786653790952957746665767511949794032971640200150933406399959796597755966008440563804894304565353835006066575379194041817356624852147392133937262323711781436556284551906559572367742218145504748640054212818746772073815128635355711625052017560430858608824028299095371223044058788281532659472442159948152467852812563063363449726611332607708119545133225866265066725017698885768878069582182606811908355150082520890947481248570832244175481152569931274536157008641747519165062509710794776359644182489929405331187938471283100330343038218635015577721059447264473606893910307835321658967939366500309525827605750565883065935714859220377644972650736838351509499185369075150933313706476026865031928130839433609431718610238372341428000109586917207112743903388537075531418060518098058494707249884874595291997166661512246285558237361202450346577742950599792685469762255964298825388892359188123103203278497073783281786007936056815857256930159119869076621464788282424393900961164392707958355823889946460952557012647721892070434802294708183342930374495183802020508157429863312415000406453962202994208070033039072013721222470700378990919258065438189008913628438831393140040740770417243592649529471951878665752822720510788438851358090581218999084436572603032568030434768123719593404731762480979270853398638364049099749266360340812406800394606775169906370290207928661813654852448931678354502341988482994298223633856254753706425020866759190920278134909441164181998206128460770899730129652685161352867865687924456964160921541093133147081176570461604630484293346721435232217912716805451199562632629854096304308524584386111412034974866215352773907804693647033800897243472713003704723831680006767737819132240603493827806134192134219101897982162735708847639331912989151123158001527459373399661853095068227832559090451438394974550346218338044454124688999449923133810342276923572878046810539908834440099650023762509211287129767283676867225141318762822843506976303563446018339050603446942045386671401142875146562956979927803053320943479645439668555277586871033753102534165053430072689227430191343237534719597366864990916417428490975871582440538910802203782212608774937227344060870286177247247108271026874251284163355022399138394774996696320811739416282373501369729705195470000931450821363695398996761540775833109688007424418798893809772645104661969879437606591627251734418115340988431636868160590000021907853276679138843262395977003958810425422756940288113425825097942317664607225952967893413945172973332990508540355449290651873866761554524467967454819448922366339724673729696379694532682675337140131563003195398823834054251504451098377150477544943977551691117005403374124296953189458196247815558005517416333907213977693383771750803311917899791329657768296821215715761891576365722808152561499703879538378091948350099096927634883932942421520461600911521048138639493412636321189176375765278368186866301457199524957180900678273547743083430012553879102259557810694831736044872218151559440596448006306477789181096178039178346732856555213243131993656195132861628813146695558608545334998275899066517613063864605436021601849027310694422182696652202031454004902461619442529990178840993207075559928479191469613609275457845154607151355845963247685249088277901836244773685823343279591376179867038544165253617107063904447911433132987354228518531526209487502843195579064231250061535601491892866640695732897961590547106967958725899517799468251400408428756665199544315449480111812074272806396400101325083589334474673280037437332758329324081321481914456943826799713624773067707000888845430071301174560825958808321423245597643112773720591361615819839897014226532104036388168469335360729525162352321427920945257425787195168947213890338290631614497032021534223442283822166284294861113512521311707758293434950080364135938824539081437889977202913713930690841421867027922005546669952585081732268138334008395400500280519092504111383739137225137156122825753713641425340568501880370509945623623561137533442916754320406082876552889915620773713719360245420539679111532408213547157313169603831782668021307729842296563628172071039198912200755821748214222918888661018147917224811808426175224912551901455748151821794063164322554914498856979248770178929779410074171396706654605974245580331316628591767920660412881358304849250775647801628680336913646814068558136584819822528218071100587762560995036248933323578520130854817922867951188997908058648098779915339302844723484501540713947634623413375207945727826267167349596897218103407891744881826931330929317517639125804337638109410555427701563735108435027024881572481341155768295594455334648772088003902158334897732128506730269345076222291532082322037721791276161621565081317185132284098874646466143600327931904307539247161622867498132914149341472353354395045932993623217802828536317240302347613169786356043438533731827038719441804917792159588788089687565911783004252581144598521041756304714010667020538028689806387684420506066856638826673010779436683287814821246059882151259931473172740005869052002438250250816441833707722709382052649230352605786086533105747312190748402724435807693841883931406113215499010130663455877502449570978136887833994810348739778602699974893957181612336763947085057954456895267814521502485478622035308908954686245033798898178663219157106747719281852257304888374173816910289707543016800781057583110103794955212908185881118729170735634952648180140619547310307851441390586099014479628839374538827346771632375186830449587840278560876968174606575892899514952244434297680296294337662087703212768242957692489770335658696578470530667710931323834222676856441194864380032501210033766611294738712816920598469706263747998761526745588800917527549069761169356909837768160102594529051176295034566460210538447994575955520554112797906710786705750830848456301956337984394971423980891231822350275502930414102913492582132704513722321458925833072827910563783369439869616088733527449072604537213649253267991811003793419366896145177477540868240438431013923511859868846560332892764531747401255168372530840482031049611138938894181930429078607789791245880686001364458396693115156759608549501574237413518069884430339748170405985673798980593249373847494367544685888303855158948581225871762978232381337017999905229537165924880835782827802400155727048206075412798071474373082377709490233715257056404769324263701768030986499188497111076889631652019312726872693934642335209276527928318082631202916197167778396732012395122043291610814085113467116277470901750761033278667329135039491635919088867535906241228267028389553880157275498872795782835617216010778407863684311904862078234695759912318022228301211167490571816289221615188582214456644763801756354523503206122571020830736253651146712906362144854151322570982326999928741617558032197640282435443551669462283592556281152856428569289620482403241278319910109235982880372111174091074607359139584771537889072427148385115549022655270339175605021584610245173049371476339535523492802400534186914130989209985344440525337514349195143113939431153635440196797724054504705447787550171723800332101286143487387227809215322784307193841424744925880531225025785681916828797115254840918308193225415828621520638908468212769112760494837974869284595354303169358704063003302954484802545692269683513793016944615560166684199362466962901896161626068231933338430100420251429553931294486958954003914549221842083127382342949485937239018997348705352522635756939350968462122018298574141455570884192468598064059758510075844246202396282396974091503419739994448483257402684508891706336643904528551106862677745418684991680277280063756539570279596188952576990267366758469729954093898345426928887209030754836710846861551945499245498962159385673149472789583104782774869841647306370653417925486840582230887333872742823406353281741945459971922391425167118570571890850429995449273133580808435161749204254543954003258170004083942714201421739057640500592226571329188914536961380856817239912417212336404827698091424067702996444954444029843872724516982586801023080080639006507135087511632160089579400716055187133079675973999963114637398732153383007398228558385226147637510128288378570830850753391279260047952345108097556629601814977868482793406893513043074679029636852261748444535825361387806686420260307787288613576606783513735384405583276793253708460673341178376821155667713487255180139328035252657114231623976698820099999581421776137484657378016952387931851789795354952618383960188697266681111253192833168531101236123282762001080351233338062388210622980777405379495245463603269960429484249713092943943736850997480957704199335338154990820564461306249201383668857400434749912507812671282274079749923198588372240130976136901203691512082499046739072542645742231597322948507967021287430853809516671365317021115416515174130681299789516190724335224241376935183627864659997434025570399113724193381747490174852840318833384437502684392113612674902122958336912575592658435674904003294445567941072637944976190853725337010640285117740301396925946685353151495394200786085080302610826439665601319866963869074059874817441238186866248124435738904414383664824422280793686375531879691467378953648925006764493478440081698150967396623594867758815341031554436995180525609376708388640526956166372271309575223843525187558953191665304353678474503276941919483865078425011328124484336154967709610658131112745218941409607220222279999004630900941409908183777841146422663007580143075768000334447978532908530824549025522289889569191745014208410249156514071339469826409694174879147281731696945201598839250182373142275300435575516949992974942373936966490604316862830820364961174171408176311593507815104600041077801345553789743633157575581310089503455079176750720009501664620331497069166964507635576243148657717885078648768126963857224918589072886895912656421252607011028213961851207610914280460292073346910352447301580512241049547881276671203076995144496348609535827936591424711806359836260213453420209294482728658023142914801400009892868303882586681896951058692820646640559883549771022824612879563210703710414466569007423027636242840764921357025852117398114199580490952996813579375677555096146814173353884187381815572499132166177944100164975418883584034593245582655050934577678797201692565146535493949744617302934446465338461318949117154503253799430717452917623460948306987211121833337140667449898321460137946055316061218984200998346276687399812676992065087369520535248785138750230664398937452307758736769734663960379585714889099284152908515370416761311957864529289927724555983809547913091840812164407059470987244358997764331627103369252425472977424199199211070610781025630733217640395217614639567674022898592236796583419160678708893269552775851134948123444434241155638894670425727675340394774233136825021291852580415401236557778025966663001679026875383947142024103124608639718474176259162649734824496487579210214107319921939552091479109380881368799009278502606967526159802324593360483926396341687050197517316212428752572308435762657176458310783030490189927557026294312454568026019959607487485985853043990690603327616084780939954090356147559366912886219231964735721918642588561228647088951684332074618811748183637779289657362499664022447256890997957529124382791269043051422710436779314374318790038446804541193538119234776676719798569271797412229179889098955573387276210981934947662645779275134242836393097709065461566570225556148607970059730605151435247772604612694652072470455348983425295039828228834839148295003918138228661606969924654120113796681857439908164861129695028698345100801108207724703557993861442888120022880918632283833435824084041981820586396139467578359106627106955419888271313106957480716960988187781149807801248289324502656701457876427060613600113794332900819465720977525960660458817717820004498276530324085550093191461726811990419760186661799450210475364653540753199279720558764377512654575704465324290101811654473026700323610318057148535194564657233275236251941793156884038170491607101741787936242503296420446573302064889365922541461483942217465608262876135413398388250910894394617193616185241428197379122497897850522130760077811346420061337168151529370622684636163035504887760119675654214245478340571471103337632986091616047958761317910081773729525812918643636702022262043960272580581503927457703358761709398840921518547648702769822564844868603993709724184977727919846727895434968737482552143742564334059220503834898405519393810241426857211567606762947848260452715384782452350525272410754774561341621501994366683097562916686691830804817886710350754879701103713488724652134347973368759184356175608689606265957235954757525369550109433316028379436930400799801402808943021188640373930115192425734379096762424037414545260753128503813597569064777169245672158517046869130946255176982741116086912984889809500980243429556866163383048839333466802763906372215903304567316652211906708513276398048639766930276318449789490713732970419679754428128719266785867593242986519369189720402099764992227524183787125911067062967730251076219849550485718633784044935739348362792439046436741791083445120623579408700738012413881924823801394509311203681550961438948229100239902784490705334982027986796783035730071793908725048343258983131890412543319994105850846700449845556751382003468711270997614597619823478503256418000587802831567822416029567218382601274600964935602991571821050203743511298181506388853778793396788335495109455237783032487458038226324269854986011588095316047222320307629360124971879573514669361931318139060317602739070600680811618600537347217619401272680246237769984787123798222659964023596898014370596750654833710446212233902409403794594614887946208302927063837229942517887309962300938337808973727347040889508392590711160824431967425543922772434708902175290275237063146034549952591049268505875416845208273365366536260798841607729486560390439266837973235516420080512539328303912948308141721882031123073147809548339289310417081419141753951331812128579478383237504513332819204621558316351876238786848462607803109073642691598794008708792381755978641844832786830019366405097436102818311704495784815802312768058063192118832111630329859224474518894215578658531958974967398025430348650937331145314157996536272976910962269387881636109734374141284079058628476334367549047323135757659789311337918863052542315341104051893874990751790325937167468400037594146224781220166368283822708551335316850317066102532248728658643426084506742548123508021402643716946729829141465758288273806933083544641767398859082260042565900705985980786515077461618614884906967975018130652794310672165874500268098171637459329037631747668077221627271432492454016010267842072454986903915444257742354302306661055990282635441607485455536319805339569955348481223780003554715548620089481067139957590751509093873188783797015032657699959322943348817579163086516373744844141921809952083735576386104462399956783327280779218923640970461327159002461017812039060273251959423283168306201384417397313613239091156772842382061209518149827464891408432870374488143219635503647927512302013103105818352332380308578933405411958988878187858480055195782832994894449612897199479873247588077549493244339713198845295826173621616109812329720279973889009993840596802630020941767106745810989932399431916459697725391967793761634247386818341862353440893404620903763128329484243216787657964885381631140012663645367479094989375235444845409872190937721908165622489497091004612162301315129899460815979471718574246656229037167910881576695761799120481052414760503778550686291927050659150701943121467672258672550621398553291975252477194277775347172442384730729201772216767719813639445980937754653297642682776066120511394620315456634009308514891673739450619485073961260946124387856041780481386772827577438615025718427938839579823437227475578238526987320324765437730938440038584309266618040115892975567501113157590550810650179349950113335079424576144879431478437188513593088127962179329355212875299777414825673573077412626244201646758855160965120344296353111669958141032798021984368886854789846120605192810261791491512142394401822570399751490250616785413822801949586543457779675095736190555082249394031101209101284057264059236439884616139441232127989884243710262408310883001861324252321873570601164373307890560981903118406274381614432231251725291534878186220509837383145361408099324216820102173058971841237147947708497295377940823848265903637886961336421985018216686550876564786783917140265637291416891216712213840886450494764334509059854724005968108589336642261314196556437772703771220147253439617553727897988453898673760690949522673342281784642127333302960829021599553258012542418136294304406719666401391906493929110150068851596747495748838782032015826955859926279877773503849216458569158153614562623101569673850522083161229667563414587656156707512702379233546267367484099934275520887362872048730457295663542059533513126609794480760962594648497380074948763677127961847361163071653642883169313294698337215280949261828927489192876971786746549370384827647094464003585858779353324854881351344992200572565829947511942190822523489173738879415716819064612301087125913433240060149187332522056763009603491443145283311330066689517956151254507045745895330542943788989355529976902406198767667209685012218471074086380883212662813321893840012200185944630427522213161724646032612075734845353620014799284134595515853335849471360692294938296213331634195008329356575168383744373761765953060837573861532385208746573096012958626488038360237703076164014854786269811494446820747833380393844680131778101647529721316093218220925475045784712407755929505915078646168136256041338020301292628742444550127402737683437500674539929554747745569951653321990397117807698953141221120094450964402573027154579414631279411384942534467640810767198781394685045110691823823491872380960418793261751012828455309853906998679243884715844157892898619233672186126669047795813608653288505773249477536391247930780852077038043747568185874007416578195165390009220728333776274814426819763305507587715286107094949071376744909700444201418587701803030155104679779419958970034481605567779431545195632994425386321163757318357371710653229638005850386959466933167775276560389870730830684810137664714690954276113707701530348863808542708446167498046201366462841339559829074409942858469586941835430073319099128464986176657614999276740778392430319598831741662503187976255253120711240735666150976713864480567107586760401721989448294383053028898611236380887543462217019593744145505756418923501363609865573160982586233767246758259747970352991934907832125631025359392043797293994747809252494004757997913985321170442032569865734004504126712732019145549308668996981379827619805934086253097099900282793863051074795871638204304634814598448293281335148237886098132709856955636545913781713524348045810261872888757200661319663045503325106034364939340533531697935842667493519755619184907422337835271071893043414587205265134753102645772034507977371799761308963161160642081121326251075586087517780829447602129951011667967013713765611761900808989462469632218015678678760482620410459098828883287644596850073703697590371080285061278421229921147147056464241844624303472950971253736006472350456527200941638019724436657375846142742546332855924942313714309314880105219950622119084745506637907764998349974078522389927768502511730289261440591618790746836894817288859924909694762799842850979508913318150004828119923661959524820710938446114435730081016184984482342184160624100564606234804850812236542336955872923987144307491825316203499489734003997112203019938877965246824583450932738844742911024478999674189036886916288936714407760234149709951125309713422036436101633228419350791358463287722618378610530125678327411475245195468512890707625510953388607301628411592859454397876213825046184634224985930666659811871414278379546022407630313896544902878711183437097697366377005351677135254085067432307631438154699175519460904823130407064281866306597148251867546139881483630405288615009138784406281501856288685553698782108330869380265891836196628446277303060339793559570789674049115494726574055075545470608798371030427337022090157317463132977915840678985703953564176703407217928280038791989782583549414509760064695123070154048211325902173770545103716972200101126081748696779591123402171953284211374453522126337534394475163398496401112848935785885720588363082305157262988999324986116702099719312328352338473915144941779303825301966098226544730626556378334070605679101822884992243463632779720080596591992867061602793684473232102995867621529157859379991385016017378366522368609675623985951100765041796282576376219174478590282001830212652440436240389092272269709363431717576177892330503460748029156231825414719037482503048134176609687596110278546399430801486386227647914771185755669891598037478666720977040603593730933280756185561960871022507994283735581380165234526294408117948390896230742049378037994095138170024805292178248567680438476716951753743411673982193282675932971873083907208522255006579985697643611142654157511800381209203180056946122383449264443333780696251554030106983206309258076517945683864155723169614534280580101252939024505611922032617706222656148379234955357982154046828435168142294738983706372690724692847753294635010133691704536046118882991746135844771521644067922717761721099124666568901838574803562085872568170736066041262950657647124157100320308051336226986681458111200333056544152634924979862616503576580758878635459040099535811939637231495913215727527640125718127813591132160145037286736112214284957969627448250903291802432417512317203985768907200368049233898770171386147996614061801299779482556166588432687612076901998365409577906669672262982269323843925917135361098786480120423983524787246033944579606058714191678250158952880355302469060979053220860884478844064577377751986066544043776781836441658054745329635432844819756121852797818831442412266061018599567827432479320828425949697188733353051737738666817243473048733021076332222487747465072456314974286532051845014822437493204861233204879379142805811442712060573737033927070089014496584816733614563362236397140581027785034965608165290567380689796382856297366653894285893115190729547331280970470361984793527694585829201516930976666159726193458100860787713545258870415496532112044580549806015375915052098542330094052839264718819144919901424163300961473583931472991508809141550500514076126940512021027890156555359139405049908664198547687320801885296896502262533602865676064881210329705213700078243527538448214458432689258488151495770291866912914016192440113170233327690734752460104264477923608901176517213602035220410447202907519509100395754155390857563063030514668359796748134161808043926457565406067843747749485637242842361442733238482628202868195682658528118372132250123284886403628234328781652898139058691355924041185596536508321283141266789785058717299545293056964390009960789587970588654132064356072177804304582836149122864865495198508340192925773667649969886415340589497567615043349619717486824818079491954473804623586155430060461664940692838398454782469835393191899737463039365805801852075731506745375094517521159785776376502859888658552015016818261938654228811837430617657762223304963544762790434924599166034169765542075529881815349622045991721075221052938676772072317053198823469847230340186953549348199596772479103153851450207073596097899866583616003564493241272551860024478685260685076966054680934723355843479048829211965706162567575855281810281329231699935054241791345840493546314284368193066756082430079705866325660315913040713182906899134422306273231072735346018638966721670000209078626740069792100639852279414486714806018623263695740754542918833106595506382683770927108393941608404102757960044675501660482715657098093055521876418168235034721010397435291911916222304221333739165023438834911542029339773684926788317363588120412430230864344627503313192695597501721202284857259413394056577902521152608958854347524967127863839022687582688623622234173887661753833063219413024745177155577971936255697004185250811520891952308028425177252210359323351164428644227313310446599396585676466710404923824019214944085778830838387615418213141111384046421783321846630462307699907705732747293183241887613404564133732581570476407356447879159687147115374482724897680613605843677340812945244327950916620081854426496933059799615828298639925777872111158472474915776862503155969952217962667885280892441623202501725759736102084791417552284079090915600698613881080284734678506946861611292233170022036248280048584907784455726585023240341639506920231413914537229066874573405464459766154099257208054817536622268574951167275456702548677097117343195737980429317269243916905088211498374371414200696606842040215903495898154968386169965462168636217109046913026988444720959546469626653540943698736137514826037058489048075359636286835683503865854068654241796449881999863209927166133798803753454966374318192137165802174032996545293233001910638250276512593179143016597886639568431379567085261330447699431606422495634484685722735847863897577589007994282452202054601491181113093064891988630707730163049397777193503540106612631843273497221110488777757292957457144611303152486389050352923334096297355670721971546448394792305096412352793743146941400695677621771420299974724345290349358439334573653379357383625175715378706778635749215365267770504993824432766322297285547211614351126887820686861411903379296904122732101401597530778894705346617179867372282625069935554183105054101183667525033486377310704060786921591601064589846719945200294830277407204684999041340114934519995880351867310179091167121189293265150174997151238663621088988548554982402413579179628012378819254426579105299545215159870375329748761701199368448958076397522132975628577859642340528288279882696079841078966115821478015078666228757839802288350848626729163239471735168135362199047195962056381894148758907553441946403432035880956198581484587810912994381209785752815973729485138945899823064845946547052194754265852423122630695603267559856778164663618547278197978392356940484659693688991244567947053445160444641218996066031570612096020188218663433390724736020098205176762360822174359261039710874783150349878567227097044663136132661966058053611066860614460876291402216594117553956536562197169798756976939099452842016216294654172187092406655895810997929670707322641435903152352578171877033555432345252120368841767293281626541050913787005436320321386768604262335201809380631948196364689050225036786959993553714153775880352856750922731256378550693084327293492123585699279090625108929454117272098105489385765330007220457587907793703556622458772949903789578479664455784974806035202395079427794516587978402387234597372541173314264501927911110365101630521130711329334671737312202376716827192136498255971353545915513048618144810837949859567955448754847271759137642161612957111655841498355095280232874163892358200980187176856376139408342963057021505135915077765694886582483122069143925424793560298382999701416595730410574244497162600896974111206764751228637488836045313080625181996379485405666539980404233745599428971509608962171245235113006932039509539470548039958893013496879237978763859013200537562165787246370411769629789310404708230343997189101279784174828857849379733158278788927331020076295836282399592763604624402226578866013288211894608443287975423799798265837364112975089082267827450294774069637162683017117877066677037276513651618564268422089550398660583418119943668930514167400146988984967579373999311905197272999272994711190030056668246657860508930034478187643130397757058968195990855362732075008689623996279379547741751295939267319005214314342180798765162480528238719084364070579820488375724176558706633956014135344299275185740600865454306801284976568522837195519032484751317477410586450008836855109226256262998355012696003882003672654887164149867112937961676616387720046112886339779731871893446258090116843555577219885346469881642496145357556193653936454509074061641746701341798589798001469552087876207766766989173871808114967574297832813526255782187957103201183227200850193800368483942036869452109611461599227215839100493304132216666660805650566820391790235074772924621342339469607557934748378448737087892884290263972478212567108559390714216357357129605821228416445195857097946535780669759091042791496581617748747203439711539464694804710329218297141862553892611838215059773343800610548223267366910098325397799815972289184046821916835742595417399333552902695009363095094295112430558028564663675083943867327699029998666380135858855869856785147432517402059118037641432619083098028593475979715599553571912005878314838314342055392483510714575903640795912181240896399818586459220992113475349337864784835718435392612617007781319576178276355478523681961751460061731815730241154541654374518905124007475155218093090971731021886836055600724910776915273697851337083961758586576828458955678277175824463604406443326518127188475861891139703586029385018269643012904581630353922342183518733570287864047835504348178933697292060849578250542030098739361728136013645433764568579039818038238201460838444738154944373890296320497200997685691301568819030073625175783382403395381233033266923899956670358414937685100840165290758815353930218575364240084080487662358618095122293701531516604010986112495429051720131916602787850472007081896986509764159704401160715038967832306476945924532807209742808933679683028417100386460717105094960793937444937794680915304483765739401529539659615115950376423014061153932605116652099093609460015518872977726480252562766036966724310867503770365983014301158336010312113390581486109551912208978485646614834175367831255314048388235383383460047825514786921366655368266813131050936124844369564003779764119445217777589426626516138892968835231712502620294126880928820076171548923237191141882940487986372047829174348923114377344948325295719373443325452602466877730509800670208338400278963018214323074449275414533553475907391797641918808882329743808394467814139229934610895778073193422940335757359271747893268779277859420522597138207374810165348312143497590900106872872474309867478719507400262671978301776761897731761973981694912227666276799556033500031944852154609473132269266146624154436966594370967436604596810031117750242502593219854418626180063213965853337613168169821274707930971752856743635085822966784284950212269751022834433787298779797497425587577493529252653309768000301363453334815299636240447755825100173441020553966273390995078493756040172144240392312735399298506122071474566550364656468920062262042611057747595364737872300278426814326011226487341850808260186860765390586627942304454494244886083141950733224550135190620745539055779624904514423768959448337203021495754466603019480914861581916736004392897025201924471079390536921266241334276387837724350977000612102740843035120107906420367220778056892805592159418979361750235992831270134836101507334203776308477701075394121543064348727465486754256757066629398392281640027188603426984466894149455523536119725256870041928099909145882414760415575009626523726015162534410865374950963054606746845843164505098006831594625097578455205001668262938444898288900637980659007791602864764958789100326224854048864340105024247146362887221456898298793119584556146785800366423609101567545539291502647056870903185513474169996177441313669936006159542032375712029120316097048646970497198390610674895537694275612487769483466924644189519020950773516609560058044553229552411346455541424557130544823274885210278596656563617292439217085555333198866463554772786028487741513964866874602456286072627669004729160222665407760049332752993788754958743015888244385478529162870561573316140410885257381104306243427665262060549344378124330849786219420748286633468512969350670953291810539125345173855169208829952555000491944285783764410632336531333583014586402574870134735825162711522054113492470511646435675317436162523444250333328888853118156675314441388959645489898815681828258661529037096192485017285561003552496747750706840450017157997989542899120091513959255027652352587728663204520117069270746333716445496105185931545134677346115422510673968004928606152345633120278282401927823741707227616569953183193342862265562834893959334997893085962900240307306008347775295150440195575454593903547020822803334307949143632524613264302862068063590210879315521854704872355905507166045207503476735801255785623081332872970973928451545518156552268869936943649345186340181910126686875242950582065958261673035617517183916118053355005731128731276858701271774088315720937706011030472264980161590446110359569690131303554307049265103381508983814620233049229872479250658192493211744075727573189254737080818795674868327744868716263951161298889763630599487577767569671562329437012646162377426932221015995344262937612297359333334835941651973790345544100513624326833039920565406784875218713172807412789179984316153053108142812027687836465098670377249113648150907738179765394509821755033588430445819039324181729270819678340785866291353322380505675477181381535426165380946094812230084207724848213614775999827822114023834476969531759234330640511738940033078596810478626299207265448536832681130229456445834762214291613095354422840303922492457031637019466669543347429502728403423838645384232963254108900592977866522155530757300092310667774128573249111023747199473365928733371922326238154035822830036469827364476640798236906868112178809428597207434278418796274765636234884869285995655177104247678345379689572110087952189571295795775022599729975570095119985401957913014720884460819572640588236835544373036967814214275244605072551275783579236318192726722140169836901857747182370546970513535495646762922306171852549625408158354592365869240287409561574931540522176854599264635101244264911393177412517784409461303194935200208175598624382088811056268898184004415403116504773334614474607417709452644698853635533124861656467017760453076213217242656334079774360515448645995765024083089933682435417665946127633754371016421297244183156331089428498392080477962081955464626852997524282089447583154048308132055474777473655592677204431369505274819785219657300055439918730182752991368955904306291050159456167220185031055653148541457585749513205860872157430521623006312211296945732009508256192675434484676473390480550884901272370845887981863876752779518354100051307471811208763757033620017934175250134054812803273576643721316843609506090862593409255925006320489081709590548280916162734443273875160970389147918926049686423941919759836322613512115984522983607182599746403234478075775606492360194735902596969804118226654689692036049016213761607521864697570847512029389262921770177215596990842663235288154709301200596990848583342972884834787470395536471708311744836389977981262168704315699677863393163520290228643162781320508700223246858231042193601016118747061522588227301837822779915542404756341238532813348661075712874787166351224218247183958618823713880901489210137130204009603293383072694618566409016752836823726306501556470274230856597530841128332428249958862337645100725264192178198218244093593309279007952310462616537691948142130521397073031383670937299346734338064765065039790112952327444260975584102621528995697205690067185112402687926225070542673498679609700162515708546822010411890715893450547317639924221094082749495539083973533796456351392538608183461294541495375083770929985385091472791688580162512172200913356501318577645465874676439096502126497916311349880271136105902907380662384697983272095227202035313689809145722342563568958546056348252977164964885195120341664234946225236393611495339116250441088050945805173299398136576988181593664527649475761537857373091885890302039380841031036489982934137380922821437057849861408714207696305952344127385393185351166918886664910339224898814593633693157659771048734373601252531905266893310727980738414699351577298925038882253365709761473363686055643528401271683729202390547951960835235779546433752042492064450822500414498658094125494275274937713324305755062334971611047679356205025265153518042899605255379699413534913438716566298302737706901425254121928661870557422143554208612951427741401354588907101888916452075117072902608249542171995216053539414885371368378753732521554596010534607513794395817116074583799756191737943249881368196304295567870858657146381025910943854944918676430077542981230374335391002056278889549606205486596566940402052652430813303776451819068471984884880853227818120361207745945228606836272048911860474669933422896434297211481362467858517012012132525322641047001206977226169873456315417324139201912016254979286136033230441941774001857758928544880160625542112717250989769526474863852068828056753510673594074720131975073458657063448050890627619187709345877738059261110018132701899717245318303497979091697601094306041104573932448611764262976499197100604158776950943592444595728500497289966979815992673463978344350407459816481633206694372604843464199854483143846203696864635185541515971195875206531015540631131457920892708674863006404468173370876013251407130799302913861823789028114337983638139184609732826723470640225472241182187733279766859713272777504985523086182315934079381130899920467117510113822273113534045026942412100116200832106898472260967498417423992276116107935503365234008888197775275997894865881869237422744013475041261928008680530735188074781791935824712997863485205573847721826675696306313386815881724342521572610241904059519873742327594676331012703362849690268353362043265713698958641095889106452205452698474770719778376863725490013080382300608223454496032921091279058937406074539832580113954700501784580694332214742639126500148998930032548178173937182388113617862080805436270640946793611794524589768338764982496063577357109632378232677070437536277158516617910185122182822985794884765796496072979055676147564008638683166649400548201925389827750104025900542320553278690808453711255634662383909727470680895098000309162308495006002781013482242976192516453586541211506330486693258116296245695046312384209475505237222809708886000868487097796446405330374823192820632187862667871296883661122471186539782023758688189233994720944335193177942395486380927537081621253760227645787768348282720573769424468884128563414091037360622882687162304124575859078777872809587715370154914608562655932604470153568504291755071229822846926203113777324414136744804088797850946495382194208293350040803677580096057503370591126271057085617580373320760429646107771770313553717723026060976194394802040970772810439907562833977332849999544144991754673968590853229890050801862348923880177552090856777175247115338414996392093640498207497714801269303435489612861262166099144446000974065017969134639738070815715578458921789037440425569009388121787922605422837310453559909722770631279267778271855078085309819963710522543148813202614213313692860172139318700580251953317881911976986340608830353537417709967652273216725481107401300473774264024575309554075103869616257445812302726671438444768749704917969141395824779786929260798521013255770531169706281582559257479765123802579179026895581047833894846580067034438975026745886451066333000034561174374539034408478309456807795489375587542658821234760035948039794078519200122592518689445665032602047259292013745115198844229231188703542708849309816359990407531868559510800436215147237652090747253680946331759978672655660874349489175379222093635071285608421545362232368064704003196445300476384805771957367074200762635584096889763390962381368382218382735788060283514840192321400816022965682805800995924701169010501745213232565368174239261804923080583418971194776360828302771971145813904119749783135156071394281419224812392558785588984580744225424896708374582681838953907715452235618911164152398011061980844823916522654054193949159084311677974281688828987318638655210778666494638366713198851976905745751876465551153041258760603517335133522110371778645352591907791002821581134847004983655680214964552102019442409047875607776026008241402723442581537784940938743153528232151818435424994997404231815461924542833417712314555199609643993848690212761507726379001048261087138170089027036573268003652133320543321038035911252201518108366480559699896410360399638160988647028876738553142254409169655171448483977739580296533007234855430394154614287607082357985467479266461168708851648209165496392524002993319856896487631248702876292446503276592943838026547747234927411401839302724827080141795310962214908389928990820243136418574538782453018494016518133970152650369391039640831841822280902498583065419232508423003027481309098447715939226166833410610490136482386751925494538698380333220854144718893724125820870152855821478245861479997792120060297085570151448315558996896420774527550603979628866764086462498197188827626902942000740525796844220314742263840470889514596336230633989652183337034983933388588132275131422340281363588279558244171338535516329541782483590764093744611155703912154089612135344587216129303206101526950858421991667949297351497593212444715292919295592355776041073068494258215899015540854064014727847700252916159379819430985357901553887106379889711227576175018068475800522977842254515459986706707130176600586098132242616074630602940445665356577036667656990996531269550554945377849551094543464515979689733640820438272737346027858687021646491475469575558933380977997616317027088009898922238109346699719495875704764601303592898943276729711111645757305670978728084335373140228478800459576334123673224158334270675337596682009468955470181436823366077753849297488781651265482528064306299796100743790953760271368884518424153545043006742658017180136986635228466545500745832629067541705799850872813732103603167661593038180164049533176176621407475456305450673896340731001108897565924296029558724109009604036500910373417236720381773450764962245318040482743386882463277075814188954432301144203513608908003349477748659197594847420266261618414487143460379617352712389097095324306691053105857953319341712789732057542270320346410389507599746383457815062927201718960519385283611106491091485536581342589866705496961418031334053930453595909540410858003448119868875493831907319830758109865948857802497361809086724312771414783124456343018732087665653441420987037641471339696772269547885277520497880469716101309765667569060287546479514922086553750458094143059481866236945297955083249393946272567641929386396549193926234380714596214289083263707051017364869804055220220734645645018823014937802294386916207954346521833859063202515923260863871299571315779893258378809141962622635643027937662795005945349634769396715394572772046513138212265872798859523946242658905500576412693513225112415346782193659247103797423135533244527316492494735021858374205413082700776997102162819611027317282555204319886928804258858018388048637877389595674167911012807077516831411245159818872729373165089517681806367109058215590860372113540239455956851717869789582023719786571524163893303794390507090044338402006423026224090273267541141553176158096968768064887155030652077442275217819250378749481711272176904249191319394504842904124818783175758765083311142308648262819891228072871294024209075335572875725175025914935358237686364779834616330592812564690878104306337920428114325255899853818682379515804588309422886443123203633513677385167627416242722015212404868534864108608590381734133489014960954613958383264182585553752679804013255909313781583750866435338580335793454064407907740620832008430407834249347041351069563690242563527501269689650960644462712189886280263698864677528509066948647375104635497272854288452411416032773260256743445931409140926827099742215993948210175100995033351532018240351825584400190719345570822195840724996639931245230260789376041388377600795664385287105910356896807683062820753043052466722133325226193849124549760021489725934178682318390658113784220768198508938492376626228489262784429727047260337854597694698448298503841885337477845848721206320281108885719167044703965757182636758619874424019241826674074773106332026113738686082373835664151514110349021505321831459751635241865805941319417256918409746871675944054789984559220742066986178305043938424399577483169447553840403493892562027280592106218866228814774474155520430425213856945814491450247601664905978966803702012735987732939097108613476504240802217898067137377972613258550428249237552559953396553897210833753925771652103391578052340830177442784468331187008267082890760563026385401305491035104906338494386267728146716008334222389564577800236772938022290267314463938465564008909127137395822840910104986391805648990423668825653052155159867369426969342859827560630668185275010414778423646266262800489123964317890024509406493301268134672797162051096229629783108458505120618041979417771781259407259282489859616477914296706500285404634690828718987307874043145635880431291753934644253377911257848990921872764364913867278332666465078107632020550272305610864078489450708236650713634822750070752141005286001288951954388050706163091926571808052578344669662269214476752584092109106534401735611684475771581100753385572186074869202796142851725861117603089627984711487135348182927757382259494404615756554156695632821233858941505117888330493446074932605471403975916161348909762245245130983012375250820254355370998291785749695919329303303009654278869421614573159969860469758888099749929628736904112110200453002814735383052657914522995825918657398470035183935522287727383233675434849561771923952578262952663707262495302501478106008555243817212853623822816926228800746044450323836193958583624836011530045639205599565612763429483256958257901980180893458551165125944540479401098585545695187476812106008778756661323812422875511648649387478424766048213189606642187274187420382375325266395589424466326488619520776681348650510154172867630479766432961161914258623803424524258660584530393370940270845916748719397142601017417704243023174224506290241294860611749011679566378861559782759436323165196815210672953100988313100271835967308390418981934358408466257123641134863287976826128125467686471911648678159661915185925627359428102501901608165095810669763255376868277456571173603704208000816658825268459866345178686529135258091947374443614601920488462067211746912689388304703775568583695080805171040484773910514646387904164319941313718800190460835992251651306991135403425828552435945643002486830984357957592439664522311618219682413690093521251365852506899639560974671483187468228263706625341278096567734556400277419257137590143102635979783774290283851472884819042660560938187288764872095367677213270808022945605923949221764965803318016334013282572488243052023129144190304056938989611586837186659911132095799717405384895951092899916987194023972401266645111447020761534738612871861791980152750370009971727859389008721342966211271491305170590715539472765753198974432778371141944724157825745264278080203043565976691447763204593132640841739934067131523502264853600005164877867261863858125065707023501545846165517347263214727996387603690115625320475276708911887944972610378913292110705425609930292034503303657185710439997736602068616979052161692848803312451930039515291877706675804414301067923297908808943453579541221321874949513788612450857210527237242720585768202884682436129097444378426485812967876684212952347770953120696801337556091019794098542885284430502106551839098660942814770967142752810938918712688097747839902091824201561428854174402934746000416400422031636227388060739934960172586537842642908136749817915710234871268529951596715439831423780959708111322955712728042563813090547715032216431981431260822217801852547362313553770366146130654546008151967380597630238184117228787917013167956424610570247076895302923710606370613600831340712759587150801224231763328064017740363319007546888366700998227239064804119131931307422940386536630164918365401325233324334871895948776316160180592016621466795454418117173272494841408661902263058727530717208542201559752139574352085472500702225670069624042367058244401210120502705399180136921898330380698774494479444857847118701732683093080370551902958984686932467346207097786515206072973431989513256678471506350148500619717963768826564328230778355829754180967360864548873398424579211347173452067772553810483903521002338433034819831765213029067725179763411329705323004775878490759099948660002091119225234469927975021797805728209360627084109540744016839050828847593028802517319580969212667250613314949862342041184228812669491130039570482466801399510214334444833760860308944302066370160179607394851174540992544967888130176707127076592710582370234745090075316722438911266804754968032115353268465987137988693092272174568842176193646283202135969609878510602714666362822926105016522345067883641074456689910259787643325780333420407331046518143787361416094376755667306795003572445959503438326732845356475699654066529820402906870380674016023678851758090215718126914391081414654657199584643905641510897954172962389092801801968929849984744733788011942092195382555730358915580891232978480404862077922979208174789349267244242558378597692748828903519388843876234464969130263299958460107245994491416650945152206372660620130367038461654778555703490893606240983427289552291244727478848983822844706473922867846539777263561520795764895023611996698356290326223925367712752818097444596544546670485916484696613411196302469727670611243478120593830734780700321651951928690584841296417337814775744272629960591997619804726715465690661683844825860485897219385470755295256533194058402489683670640763507279992104856848531365665671400232086743782690184920430743180977430679277349664431851748499466495320844819547538725792697326352159552174412474028046406398756713468166019486682247699635445356944207301684124000302260937291592339921561625242400886534227591268222514343568258118110602635065596366794914869116487509040915208935398007430298533677984180059527218712480899254031132756978356167871576951736096466835651050713460015301967260931099528856186711962031140633207084493612070074459176177168007040852285857527447191361611852737723529744239292046611570852561112581824080653212508995450943121815109548239742864627671612264551457038483127109143267509965170410835610785647081228378008726833159457470717185792679752266981633625728024942861069119698195150278743821953742612656136230731958625561451960726183769535930259111146904177750585479031124904685706611969413618975961022423165168091848304732791447979125201378465810915148438050337637547539831264139993335971012408258155079512767502374368175319957474209439199188120283740420927980954112572401182905581964184787371675676267273168210906054980306803512061025964249480310993827625166626349820285198377394706432599891667647212312728068185806370965940776472053797870368778121048980325941257371394598630194432980695904098552053141712923529838231199881489386542446142063366265319135981647011112105381216180300706370147824365422743456293621448267607342944269805338472376369198187549834534073520985696669501194114111807397357820001782712068001024626653696538329894402543347925180425193535015829252418017944144609140654091308160275533204351079616754143493083394080548864574361602721014417819019706460673982106463730065723331058812031095921495624222018779059207988555333088501569927906999366558500619778799546477835527945251629986188025292931294890410547017270450084087952876504172395276869885084494904764450098377482745992754783445933892172491130482137872843387701462018496915089875013256249818587105867135635097815977115715407106587857509033183593301447640544356757573740376115165476568087639899617118782197588820363473541061712553586233304432749674266828977618089334861107453075018757542199876461855531803336729806221012701806205355058287494130413995138775940528638458027913378285007620458612053057561471431684720383719029955571335609830582737872148036951095651740234065822229535178124933581489321975806241578701812546667057121362344570244152386207048612277567269465811046339187102596259966124895038977413073865379780306974536693481079271146121674446495259926141827504783595473690953419145684679970023263513092849817497801853779959326298498929431028460512682565585204503044200433833473171425348144956905950041986205707765548491238265703575663433505847385196334338357257617182053834176025550178845448016786053592706511908761908398171630748497468105060311362451927141751321908909648574003927745750985893823408063616824081728743847544808597792099341667174970202336218645003482755337503504662993009528811732394064960013339012647789333777785470839731718828346271823311981552418720011824025346894492409065121195110805280469213353177386996511704448927129252958933361440602397154839413515263886263459205159785699870434726724589198967316209546699359756312303956314716329443529983278167775729360956792210214446545522425741638357057749366687201124693593268385313150449315712722363940101456198068221284179758197297242771234541326908921066876428300358840564526269456165456666735362240231543334471060944758417372036229801896040259795273024149574340536801250267813052101189977958192976630541636279655786424030612014111835611780243100443086495769943748752972324815564623206875758620667652611834947996494890087950984342387080044834619779422818375849122027595836526577907368465855281233799301054648575397419820994637023956014178654703573746226686445473286536431310208469503060359879722568548156063855803492709641383537173489014904007036284744190454140972913985284289357007493313762731822495149918589028830892526793744963180565043630705785692015046239591113454511122141660641283729043697275396634172482403649704949814226008415851869430368533807285648689607952050180664181315013786672350754192117260168018169494976331754170666368553501438400294587200345247904612031910639308185398841449780991876593286208757385179621496246837242464236529406078403446231632845598406302022733196377809711920703705355124114768204812725043070063298566828978873470309465140144304647490438583805029198286229897383162700424293818145305455005752875501525893469109232406012408313732135464627465649937915048210629084019621837089247251379833892264108118693447590646395305999782762787050743406572769935636481974445290547988906139467695729033338518068436194568883668132950927438150458854024915898856013190441880075950643532238607385756198658015349722540691187201068648385733412385976936956233144863663080380825919721669170320524288446578241191327666842751282956782861718726713340197901319578594981671310354800260121629946804247020059181410984297191146374492900247497808776742481652140440470449943832314105382625121205156082268761322028141219321151378903246803202775295391964224158556626049491118835509477008564250978263988611238573073687152983911248523708631556774703482646054798048002889961436150799974815925568284295792433065469322706385366156404318255907625466561546290185041796779468264821817846518065187151850065035598536344965116883160781411284800271459288681391494672172988716742394740272397849756169884956358420501471808837127722519194701714814039518794939940638341510289784641007753630177375995819500331286537057148277450718422617093676335459351246319535226315746152364574683940775201434159044864673531709239810674439860068670139716656287429215652052568565154976458487489648779205842496273128376073948561308215117663846690972795939427730086851485022563846061155463480337611203197311371902617409750831405785267743070869861634798312576790393134716344290450184142644525817305862842835904683901960610458116707766254721947547936469798620178996512874810227995128572320649070595613140758752079492079544802298443041615670063674375175763649923405566802732508943224226083020771480005425606740542042373669435116267470087601304901746355206516701805421904868681580929159859283009860535628772017707891595245192800161809048847130398808330996984320154143750474371351826307466557779362685224489344290919927216624285811040486169135380311578972254583034370405738531835572273361671811002628217652451952180153032998168433294481046198305767805492919546503977178630279921171057880633573725098833923409086320861353797184638689517747277733862848009690253218934806899053542591132364369421860569542512418311555416793099461288043903715795162535280647609607627318177331305535505898233527553972003381577677705322725803847358944541590490018978647359471795440179890844870661633084358133026745288314710666168935076283977815291717936545890552610450812123461577281784890581493718542447682177137515654303190214122118431921162538614560130161823928827167083346026587394650262555506278598450491337600343829817246820887206662082371986113535405851321146397400353925740362896776456759325091606332654960882713599810469210727410229398731882509303374151945169637895647674669382400174887800315353553282178854588846812003300251060784272876148145247812534695014533433221152992806588927342057233038288738862876078758000531976618260355944610816557514461440474318131109927612002410512116837942580539497548675080665958765373486226626324544929669847304546652323098552721003522736301825922652893566538223198210612953010273741155821353944112407545932410593374730702992654302255043840286728725358027250267541448867482339476785840372041827227520303775762940557024763104993742109923528640793415191293892769319939293193466249627916627446481558655650407961925706685834925027752294678809592010283907878209399209292994211670302814331020839209392577075125330670366390282258830019257108694167512046280727985130749477029892812721862206699118118367890137618368123864098686708721501631457065286823949658456004362362609023991694701985409810691795939012183832055731593596878246968942398675308319309470573094840325213819132072996007867667472533778859440240279546934184636183519346542251190777988062742903510742188631624689063346892136510937185858785964581953956268980706404752122989533790828912676063267364420646785089964468065512178202454600509261025170389091913329310154759784942537406286085518624757326247178983621257830394706160374919193107548859561672299275565186489708651055977374697924960068429875260578261801765813043425801368754118299607406976096296374285551779525353097894852107662651034337517345911108456446210368498083589301677300099675277897122706839918736756736654973736727941305276235086911141353881993046674014095394526500882309995481036311749738865870112119288586683979938720711010953460221546319515481075286063892837192977049169910412526101047649890993663235861310802997002468465035963738258329441376654833924920315657254548123523544205725039612660650354415162761213836319655468578705912194357469112850523264998660746845649211593991697128284047227111096052791265825238455842418542133151796248251017167068208570436872710432950916687243042969160674326590757456105842904934895029138203142362931282005080709959473137745907273115163297787356632041539621808440427844884345443611147416211461351507159411290703997233172051258808020350720529354154800959698033613195869985141315502762349230127246007800208606876015961011047049863683357998931077459787916714875713008076386434282665991595568108577182331105424822862832206955098682917962012741487295251865411918865726764915719334036346188261416359684269443442525653147872446022896144361515181985656144367363553913279710411002817506021257034229187784019115651632639395869473818786845196766471662186739073599471607228840651734984459599532958174925378633412650113873245351109255268060519000077362456950487838946462164584650524888123540714347072375342539853217049545824732039567646167564993366798006226210244604374383031750170309273942338077575599256812512392663363532644596103778375362460330185378084954773155494857115947545817922580552344255519112074873443482831951175772991422074556466671516133828621123760876209707288792144091642764650695746645541091415833795057411420346049432087531199416473998094371808110566729639771562419513894446271220954460302655976440155413599159134689613357960183669212361354678859902164652692807286851892145382120948726936725734952789332638684766888078803370047789283481921470471199616781422730397679709284228234322253935731495291937581246854815749779452331642627076292492568662064722727439263012912417646277416970603007470890126327448504192636536274626655954483816480219750636826018713467855282077470465872808520259098527183278152787688688128867260980279436367187210354586014441185945832250160642870601001808304051622341174195850177795489271689089716719083048486888459897999870732520963587228271263966964863769189123113251202209220419103732542565298176862257758929070866712770946034803105448206023101871522741707275776964159115978877602310155895645643350633348182899492058600669923733136359290796983750077290129510970662597573406327407080642920132646970782105791951528951100850448195521667888955546977059496322062230650561266535602385909646226203805021459229329051607473182112273652782913379254675972210426828603246126420281054149504047066043908760871989800237610418691287723029565178693197789943151981734913361162108933471081505433083268128259524079040250379622873112486375816171354281590772359247282700377445741694455190179683134934464485168300175163298090247221052018263144610868326073409503125237822547254303760786782596141490858991233122502776596760369093409945145737813606056567253519843728632714759084062671357762687959630661998742818297945074619067628854997917411126806119935528050911165701599255242165972100330836205867505320492465910988435527422178474332054114652908794934405808316121417134343952643318833183560335223432068359625427741748404608204891224384832581626615640299079316848983307429325237803061113373564569764075224295068073250842057472469346966125213195095062428497148044925371144155560972290348150570107892887591190849639972304382138933530386830205397472966288552450232171589932009215063841311076627454312121846582859098317167200896557765570181840409995658650769686115346469971638168020714624468416608062397802711315366101367535123861428410711582725442826996721117444272578854956457488448985692864135185164603017017178315639000982446401929490946015794182404058851435290793362283922934935477386570252522126861546536525406666346253464590724916918588645191102494016673035249884563323565489225342034892455155102498535680219750514383966706745857042877676278708810656053793344351774220234062011495090379503366608455656352429405524392501601709974813536454956278682689375592029540524704935979633178159718352199724680812611985012853611454765296760262124290270475499072868300084165716609367202431994830796849456208557008758789285935826013424048158303025123762060460989054253999127643003837749226429489713876359387382582644199044357182458398237850415664919860444897824450144780208840550203658900502972078620295747959974676930176655539241893182557832899467844158743327910616530165839320530283662068471845939420376579461885984259171383158499047802191715292262696882210632666003854981778777215649795543075712567730171100020008505596878504606267509307858763265481982773144087943842448202381646891271163628974661964256789760069882559373417667882161350813260476228267256463747994858871235996464043374947459898470929922713396325456132955599698992518002308548467342636444014391962518777102098086916333972896520825063998661517353694237210572406995449314447015577265969703861717273105180614928479137750517615824855316737335921556710501217602723276797097758065320620598664864888439581748158103185477943533146962384630639669621621736936101025099615467064407882493480845438187320946693659607707927684380888015833732760571115538251209937783251396716388350064728566381210978611735291313752294491685255955078466485282398105198554846569060188922597139478252567872400058269563052695551220364034065044278457569692902601933980335810353092630919038303455748595480625127855056720770036282932694962196312027283711595825194721616541814550841018790700226565495509120870431971354861357202982285323813713294000066568992651467488942549872384687760760953307902030808977142885608448615490469527819986603126667674244895867190990761263233069200384153199767801051901694344151622915568621600350646279830559107245203538117104503637204161795056238427889287863048242882566529235057589176326023046696128062172130678682913242621434502480530722013246731601659846843643000989465928016476342104980220230440460698147781504486876691030105976783856462896639324419564302674426100588603295532606523291281018710098504993898469138599002410884391957639766002392750949154796299116055313351401698570834100456884488561247705144453400640822784894310948484752734571817841686652751341237891668983902254923973033557089119826910506490698628395599430399614883932362126442008755433538317801641325788529663934251572495830777376017751327709305578110413014609800440072946151847756869929023746707265261831957566125076723707971908805754816609592327286686339615115470336135643694225468232908635060190519431342425570622352014648654150627324895010030237295859644541934193298681612423229584768977646357056715402627710063012709957703361491411633410659008474054169869973444024552519663435889952040120319866856432220682575426353401429859821924557127294115332513987548317145330844002381363920331152692077274611771726302919635680219091220730112593680917910331530236938680055396559776633078301051854584274822588191286643847169377423040962188687595194366671127391796845538092597172329429580503584533441664045303971055046813460632785158214125468721104102186949647928335289038383151974270860852538643305839910009847924610426185315629520795607209446526620327030199074821674572881471996617303187180602742312024524238049480656827876310676186095982192031130840398090064422398711943021513733682395378149489460457695373351061969299986976527173967935224092300856759996918988691105238389022432209347293757159330088418125286685521677929158051008185946256108254658363776457718059405411943421461860907163982285886363566854595759133046106922422653304419962149093482472043838053032233077660657627143589192190213273630993054912769650709778243503806378121174288316356959809102400850319848164039630514543111029739861696224687809121810817689108587910744601238236682702481665185761231967076200537697454553178785029570480578986052629534983544009256468403989278881068865210288370441065407047254404276802552547068462433325460652951765633861521297012485814987542207466413617050362029587915378175278504652639742121506004995590433480319351402400196069955119812738647930547879918113823116557594743108136781938540613115439860271361111394957870484247319883174135996571042403740621713566164733764351780551056389489767242329380724515688627334844858539296605116366673605442021353914314384046311245074714481432641820422479952895222119732752619425898887790470185744706734174336856639988856073934850575807184850575745135438396519813004009371660762081938907740163797695247257087052324003982138546095846479707591755521042150020222047909130109977591260715598438653102137749515285998859805231793156527418609024009661136419619284061238919076045330130010783012991530645811558054965180515876653059925269499355755721506634930886041757508739638155330001156487278054650390800431904136270569250959179825008844465011745382737615947967686230503955260894868702214584124712012044655659972560226764904973081186529977218552268000302647060384323430180568086922301903165148451976866890090030868217741639119729844900636159468610058061341455989289027558485548014873317393119388639173280867743255704975143854114702292106645666811805734507455234320911038701829937262811799956577020492493403927935381379627871762037339282408352585029884479440102671303518470243394404954131789202876533920343921896710709849480882944057270804308506696862073116602963849470896367679003652460753940225488559854213828908441537410498554142850682434043809447962937888456384084924322826030602532232038857251804507288881039679167894333824749318666380827389354122436187498467537933420514587315376897040447520404449727563792084656010290322868647303485906144973362549114037343501808949002210079892396172262948284883740283340773324048403278275382077867072475551434572441418697789181730509090586541144145448558430652443234718405730950750204385697428895468376382340743719714497792505100413631548065291154547660185143632880842935642490326683429381383619532113917171067030747452663467194494362031423024893505225761576923355478063133902662671178689065318489034968121705025532371084995111925935834023144111885406492336857387284977430521094431944128009813474098151433829035438178634307786240103223915208613232267656049781102504022983549954207688850754998905528363354357761779745666552698173726346195666982498306996855558510474193418875497825061615950411957569782535881348956571692189933592597249258936467698223161882820009083600513585236814712284304785089306509535476239700510738185313807280083073918509147306566103396076004554634064136282006471230054460717732070074394963659280131856370530230150414713855787122802637844237420147441171610596912687889962164648089792351166060049803448984528023533326489174525099253858278248691533205253136949165966987397800951495863148612595709951036723497141669818172243246757666875373319942914568788050042729306342692057136593977791585652970581675722641465249024652229733567241854275927954646665116869474984111519352831188338960281026286431016614928138460957758183645334886120108977990463142676721224839029699407354274492085713118768903596371374806062562046952075837121424657150032877347118893597005897056433492338872784283190949707062102533524632623107918613156736893200254217872005252739465925709899824426891707531559193024486507277771315405410536510897306514920309212521040565456094034810463272958099845217810401827109951228577338447963910866960341543795677481857536666314344515507290169359626642605451871508084767183169059227676667835489296054575155709712990859351225616703184404636886576486824022451656586861114276306689723649334583957458984435518462305546456881402595707845484269311641037927865656606234442546002753865388995063969230101666155071540023915028804077925193314335135596624035353709009851852443809525027070734505182229490432447525627703413391800827695858354546585386978588020994351611242718844893472740168513053327348750005301978528652370546854057473126474903397485472353171811593164882170000386868848420178038491410080069051104953084253755194180398170613655229726969373224189564000874572512702756014484537217978312528245417398815231000801694605812659569123627915987389828183404893022645097188862624429013350005725022190902537295822756069621176113439976637125567392849022431605436268618051219974661040802422375805560455687960368466499710645062310262063183182535754245553896122771976195179670039131927930051292857584834333213506268806896830204069886736905306281599730067362045590702586017831493643891953048444283322318015615011719420132437900619931082832284116390952001785153468028986545086864061081985770993715083385910031458823367076742001222558897961073360089254173577298188215917819275348283294953670685974407546560350174783868115175449030705474014372235948635995213355951591757476931802903623463972682261690293977857818149515264627752983188155835443253346386470182360182239888218191604003968923689879126874683719120778466069915874730975457055521046773422086748531136081946878130003771414801132781712879201097177464483611263638177688225552645681508914502231611459550064239608184018382804796913267589546835138115746747460149127724253816451019580303949811726792828518345002975314826219916063098702988349275855851132876796982632941957281016379039140903546200811560331335766012813519607908005959002108508043687581382487706480786348334664742744295923879398800540746559885213655669855276600016002459911346873301641252638336102574944833367294070903666288765915702972572692384996669993442496167772114570995246772546639849763187532178842441176244916134983483732953133839862321314360848917287016023751297733464997985820461307838411557643082556772980618816460148948664106857080944565390244960902902269299093741527296926452206213969392442245446879569985113958306996057089991455411633593542692777217416212716497526550527470991369222951438252115749263108055640986139564692357196170486154318338526219075983923823505579447532073321205755510122148104585640944816930000846188566841015589196449089253732144654765113115344806459715233888958856494634093349263659043786977982105509004565633167569250181509285839542578677910159904346801686030647559526815014452858875520305440326453704505605223142625298862488891569414548049139427321840707944265066584811425165187064832432605081008940887415198499738579670477611814826816846722325258025590393102798382428984621868459920887855340610621232148581101368263787110349381326161638975775938611211955969926708072148324550602984463524733484739617540828735744283131484327976809263873155868954553460669429067263654644702825611685763121028334209323862418109782883998509497051139849111685635752753491801661832504773815503863417360239179077573946137633428873540598408982830034329476747101767706476470786272943845399651138327829939866463801314577943473703803362759364345175806214650444544157494455970459611210501741750727952111074018497742195764376046859125732278438438028193449685820091108245271972717874841752360371133388537991227844654686320634217928627013460206086111961557808512607005116423945987093031956016190198776759528039253617030644096530377127046651436927908664772533624495534954690381222653608597415712561106163586258165259256352088654570483915963965779682110808212492418953163028502580245711260685402207753960051683226919568960648876380039548709459744904382890234089154179079403734285733099010718680576882018464116325404694041520519196097180289966503749634874687051738240737866900257220165012144291077104991284958583817649728337415730332399503663090873767824361012881759416167034549438270385460955819573747411145954136636562208800903921066276596150021523588987404259465237988861261723930710805486839825456786410239879785483618024169871663866545966146467114663774106556169437417850237364860444461463398870114951499894047470072130851771878113026627672663754426436800321154887261749426445996315146104370356454883656762299242807885779135354046198593631343807848642965559270419063439107952452972968941560106403669235722699877635572695527066741008537833928119328526359150434298087024885250574226081666869441000827788502899890996127676309153229666276722611332990908773787590365907494927563753665876764470643986428432543138810593441653501418882922109379597897600527799774299995415997275305249162670793969658568466085042721919399313329840491944053480311457015887197482725258164042358272836933961950897377901582872343204595302561844412669693307773903980821325100930600456387551785924118500117439656198851708978977082835758782390465644070144844867316171800846352199695569691239125114376274753816720143453675147085227848655328311587121410757626135680424212253293239304970533397645073769905602671483377336030717037132857671431059380715735565195990517762937707011311696647245434894822403760587990991117281436817061667829109406945153793799562614413878257218882466480079907937406295994110830157240928519789033941735800871332519261913061208680503227049368408447875130582282977394507080553646513726981035786719217191657338295482883460112611649736195706113188439561986086786197120268007559851204810185010155045048290386100784310582600430768320824933767398845421238972681822422335196926913516024871021394225001116898754549718506244967060834637863958432641852970020460057961104800678661570881119400958376589403583550064440375090473595670342524645649233359135591572040077525567884007926247282773904719835117279337002855946113033036075507008455542913911992236927175365263466942412663385175552525802941855783713906795734305672085993484481789535494632286931876630336594250940574021088584387629743461721833558672584274732770311696723060988168850024660958462114072502176648616522310639333254447046209106092010144987145811491880417649353969406015928539464936175821617034421588212650013928663998040268725919414802639959893120601311370486370541172229708333785856407671738953120835057143187018153377996530063474013942489165221069111903997781773723820494303103455381107865183558668665759087733844839358601934115640954294481166553244573545707701914126034959074340282231830541701820454236784003601688334856736166486504120270308093783208622038217194535752185657370039592470762199832939925060402926983656919250001477188443257114118495658671653692481008065067729903119018057493840872510718981880242199307263796163439975681400170966255963781810959643160186342794640988151144080215969738829521548530357731421241265963574847093194246320649347666843673786729436197414557726529705764706769595181210552490826167458992721078911437761363109284202309598718626057461082777444647489681464814089168708939615894472390709328421693001337376882042317074861150154986502103395521952578184953169916350469095785822078417950954344113576055482689619187166706744226894104350648099940658296449554415085165593370939380430147306317936711495429738003131998992649182377809582103927076838562117853912345999708260926902170954033909663260280542999323659634168545725530415204605766203765206515826227174247874759361975103488990380118257707268765959797937310783371168193518169756926448894763631680620357843436081761946146758247448897935535263024125525086319870097372513426093209652493981907650234844579292561691129099145038906575368489175447457026567341087884048155469323737986997039448645385161597220564259855253577908527238446330696683777285146394976245774981914815656399742414855864397230708228078332404656412119663448497762352034429584419040719269384820505715839070975370907948531318078094242776436257388657623144925014120710825194583659127324729318922108905695619689435533775938799054424190999780561267661077454967967499957612578413726927460754109357497721223753552927422160395177705925222317024457151682022612402175324513317307608399321558324300747719854352361834626154290348194160353847412333599200100514811967309529241321391191146579695087952074097570147726558648184608058945504047923052380944234731277841474016100979252543834217832948497178052428017171124249197368374288149543795337853628678543266003943863067449983987950467293299911519607189478237585912239758379580968371025204180501623615351503775226075478628398540328880362058688730758388695392397637674205688831570251691225103240895130122695469419582752331137159006549515929343361319670961088008842034267442114816653055146218714721485263303383926987484464470408295560010013705525385401372919170072946546187922033890114340588589867485499881348585558081482103449596539762482336287987587693727601849933196335967483596044010926915289880587235759187554623056766343006258104701039757225727559900541699691265541430023128250257700281086628186167824260179581517744894792625171404466652141787054476179912951767431899000621000278594310500099363402524020232348169290972198945999194476097701176609434089113198511660519056854129765229377424434736174353642329736586021877435885315735464433939516996598253638634204899631943372096496398756652095436865109133345142659394647486651174976282929474938748945055922244367289005329723981950070359717559571553422925738803006115421012815699000286016401239144410910282054086711957848911623523741194611856199016167101451071861106326366402985757810479664370219896382678978131542218596809555284749226516945193452320690745191345559171446252937466593326025831567890227767683610039141540950666142318028556835865258511444221119499217124495391134657424482061556279231333140745333484332229159428383435974250782224680769427310789929348340778011551885303194477485730221421020839772591853073751648499228478575120577995862063535291195149236923691646347677694385712423294516530070217801320349554812015957450667259266864162211811374580865608204085269756084045465668180438144598050643618251923029591429543518738716319993440001463667345776376229937376447911292035960151843994944916222987086955945010676325733908193095828968090799574670706606814004381865544147914800623300368080472740856062262187939917660551160694713376856685326339645095060728239099504311691457995587292095672419357488978408974682835588153510519034256978514292542427938178694849119963603951510139173170808081569803288652532735778955054590544374510494485485813612311728582497075256304184933725641498542999008645273907600745761807826677117729847958176213489012545626827007839357216462213425072132004400069719755270422730283212795719613974094205920950301359897143004287446780709037575187932771576149210019656647821674223617808397568315963143508606231105648721101955874806774797608227492169481179900994963217271679257066982435765774562739914966714154774026735611446340290261940239364414479195311362293273343632965800727747304040287056700648564975828320444864235611791466569479777271508787218765907199729448970205473833568511938185446835658632083583216800959115375241295599816318688405651953785343071163906294070972948276280175080394090070500354476375537250985566489573170092273022873767855663576569103609079830294524827252614770535193402413420546546409165125544390481993880782117355003032890509763904288213761653652947828416503144762126932090845126600227628686570425396189673788607660955214569598440586910732122792699102078621649975255434781266450893419704826768431880868985918752687619846401507749657015043910426315348397367665173997357104041898333092862141191448420010914172401522396156454125455663088577352827365402784941230729880299962262912343296481312927083064003954646453512218977110284743749317201855247084502397929658882295710290571843483432659945264948794320671158539717461502750564935787242954608879735315934304554049905223040836175679630745163439357111243725423616466022969260660060721836637430599745004332499390546007313640792924769171059101411429015035079046239659180556127902988719606409647098187318493402861924485016818601974439391089119623533918132809561954585911698447035920950545401534165010940571671213673452128896460259033171199518067351445791222369159677814643393842609142358326462538309439395981871680656870764204113597197796523065906962039595685895484150746726570758309281024537093915708528840476433619320783281356423692995656458004754179556729619183648381187948404914502547211401984117532977029763645342272506833803193177736112329742486217635149806791648937808651351734487091641355032653358371543528394717590342202128452246542064828537304218380564016673082198908405620256308480469389404476940706768808228396742055715949388575748417481180218186954369058800527569961354663153613654286478478877979709155556222791882310670609130622349433663793086017870398974398241254544362263921749022337574391650815215683454170393861700931781147887363635217854284293812404444035530304446537589645836531018203936593009280452281912526803554372433813246870025876326433667538503629501953629801276639129311826686799933497125747589669581571893525669984485212329786152743875440389443797375129906555842949238177903782691195487102727042150786033261652276530756482635133306916376161735806888641266998916130969079680579752280473035794346744367449044664001097907326666299433222369204098646212794239328448003885395130172582779653184521019790828826252248838958140478561556135641521125744842758950125431544767132992477679969535086653530762493374343199953159875193993923496989322619589985601653591224044577560600447178366939682215324021804996620195571147529807176506494516650534831606708447154110755789559024092076024264634046415254951630314176863599193189772606794686273906962426852592716361667111317727606463087372103872259733487884266422835685219608407024459220799490584923394925786603182051964636132968390700490551154987492549950303411371248896984791737381143348916187187973601577750988714980266632215149312726116169651874359043390266575985532407880963937861906004371528255129992597569426923335625087828551561307384759775886018527180118823110724977208033220743193423267827113204284063798106355399594455804202563360063840215600403758484250597396374721094071959180583343204980481613679973741851645690896173906432268018726203635507607034498284824281931631195116976038253260304257310817970540076680632827327385413872910322888019522466613740545573225235595747668312572429865323890772408880148250204414586407807516107752093808420295019349088468661228596334137833334662233532742434120381402046982721220371759534342462426642994712788835140415240873764404105483201522833225139332510383723792863331855926677830549733622531756021999572490041131449741984537159245771643988949136817784616045309738605142336396888443168097284068852002996075109794584854126964355728109742350066030405120873090460210071599465499352239350537949911929143202119321151632142638548090296043532996764595778346276159471895889250967770254230784413166082154167862004749529608413235121801301921698690779379224113122813052642346361811376791870032884771449543588176539041994570007455239446096226924857539503109046386119857079993234163207298940962625090156648001861395153015994295380111639156581783456495699764248028402128467340604992293681920466452937645980827463481036402832630002386682903066945838790117978318750584601101781300542055955925935095968764275448366962762411533238327053658113021125145716151030847229764764345534511951201448937496442820249772655048703955379286853437744784999519251139012404278779567606301502612112373638740307575120777295184668957832946080204243207531702642513527958591117929219611175019327498148739073878272071120683682260708984088362512842470588018561681881853026185618467486562071558700527939026147219422309646509381523985609585526473794920894386654633187420806113266925423297965241057722573764227614918438136520889163577895672853909602599218576389649782582364342543969777657362019717264298224347619172894585791427251440649091880300171069730576555265392850997022295693397601214940504413874536522654661387081220175196922212642167107390999031217308198192402555925411143008152717938222941922305344523926357004154017737530883029686690278931765050833210576662350931493729435299709367646144304826018043464576290222487232063293901788558806813479396248360160679636288890233073522371166095720554817307818611667577239712843937001619098085683534181840034780058734374070394218529030066509385552684085668471801785046500934545342340536244878913416827251039230134505963807143689358268217044479684585180765572474695090268764977126485735452815691681320754828237834923432541469116385607968631474154706949657677610558168292953986366178198470923249349341384793087121470319924876010666649467231247054739032260969355397533583334454181180415333163475016655727311177530740874606784317919654147997042403974500775099212754177315288633495895806119111531453707527604907677397444906539389595545906140029685988993503355361710712409142632226084407721962053984827160451627975532761791620233156509360977672365183397379136872622778121866238629931784755052917648413839728190773756296743339743930520274321589189981453160225394351776039917682594765248360036155312523169368884171238502513721103016866819378768003851422708839587587082782566907490404688849601080827913308063643154978863447300392169454658844968034721812546000971018618646704487023218805028954967450945172605886607672358689963545765841485569974169510818955064894276062247265736000716252299322281613784742424967885958037749938262441943796834404696570314356714133889966290164400101935296776466717511330855505945413920847116991600633386955196997793362000565671769872820609680033708933495990011276911672556956755947763873272664530352237220997365909517572440843181051764380861095295970236610482362953289776056097927352606264660534088375734591132108195220584363538402762421428722036804111278730447433590686361883628403840889849044788712489069531683380148062609612054049877851293936551125065421948525275356732355475517518773664512600891882489231847423676852205282829717775013892223605633562181818682074559810516299305277131319995067906507812312721975790489836719085384112939759388399690847105766178460507972034238584641991420094179150826966244935977970381201776997776226863723037227450974975374348401755451219649199250734030181077591370610005858094478693601070474868667100224098534588671375397581313304390203350913784979850432568773446697785361413521988889805680927253224914431430407601040292486809278722357673523775349385251411125940009753624808175546110267348329547048746615939696970941771155697583091205988303118271589985795759907492345467987962400935583244602005368925025520064383622509832879976275398162264284352127215935774042036789007849979281929212252665469430415222619711110934498171789172229498742391889741527480994418311576711863083389866416350552370808219945717686245583500028859308737045890535170726986262283793149420662152082453595885270896399748405924349260452321693165135753462878853486469697678780278878898960524690181777647750147728625532147323162319233628341059371624693117979999841774034272939760886178981214737315246158607134996349980265342778832738364764647611610431807645156169095634955475118496578058511796934664341963816253120016165735952409065517376149954032870766533095799909187223495775491819202511479087953247892787826401117935937548068372737946520080232076353799518739324291658129115370850481800301038678637299649058525613120055283112075221552644450330874200019300529826562793459222325220540726263748142095984976873182406544285828295899553952803201233944921081845339093769421663044035824606249976667882627005599417538755300777526695266669344905357823759621012084134346255163177454123404575922844715931792763140067761824958860269385458992216961105765794719051020536499649652114901482945972505941892654125053144595174047238375219285945568793765543048209852161504401946029769584839507180196700224268516944791400714344187458536904911867812012532098374816498864144814226110019286630301677010629784141772049201707507366045268941038978882181421151337215893572384294909371586872927265595837808086504217312809808506473499895299914759996371851287319708633330221940702494539408279957604532818550408866801985825864093913538585694893212170501336898292136049880114530384011372529822363321328239039150428494814186976165253007775029740901022710662400494750709309187836346799700044242620036638461012219702181960590859182451404207279437869057883589594950378446648419559392275837320764161916293246370148330430118805581596588115426671705824896705827581884620783306706997418994091561738725755221304442217117359353801054604718177839240194452399399817335785852958560716154887666993617456885324471004796419089917217312791399383279315300105078661842946763891224873891805203221789644802634920393816035447614251280405806478423125774627718767551237486909898070852845689365264086737894865853050921211325224439404103606916787798403317253619948130005616260128431796353925135876020979511169976344940473789014955757813137120450659356911624366289827959130576947963684337696483963948826327982472220782192960022660017808898997502404191310873101408115082338369375937513110791231479022922726190892685013331198747860609606195598587479539752111782156752928585002833920956551217697682025174756216284616485118120242788096701040544866820556499202548201528132141518840820821352551487102683294810254019250212626183865352884657609098708013275835912291701548790245115684499639697726107998489003731198834954000706117433082818469744969087481249649803518304753852442914840144028384336722706420971911195678987076219886027771307044882609192412788336949330239348672283994450089327906886772436686518938598648103216810845195865622790111244878230315952165071387797173690245347526349607283151674154377907895225717194744488526524407119689803536966239268674487231645549908941071476415496193696580318987053089678355386414595372243648555516567465459920408000167065778796353037482834931222519267889949775093867974047162197611083198639573319906065540552179048600332270713899826088875714857301803385879608579570753857250081645841592191383650876809503864339656796097543299106901351087450976657403845114210279863999038584574827024195393022309937396141098011953362247759251551067564186779294086613589691668221058771583809421839801855035362099440965058222767063489621750063235273654580886010533949906010870307980152335555419635829098273900404601359068282926943340520134913858122664714303937003289780939979403567085319860500420056167855948103832661497296222529998945935935804514839213359034493547175649688250792025619936307721170574294871813275578251466598744365090102506360093360503559501145885448403561399848751166342561112888037775377374722362963532640356089510015108182460311615460717318188425801595152085865315231097801664329520559248235305656378926040287871313744748832895172828694595693445142175910783707865994978455733412375756022731673133849930719059897596614864576421952123226050511374238270510629683568757806526917404683414837935986859347336850083059775788188812349127566292306721045854461803420146251426819258354533521185879988157976340973567386550904400673284787647084346039357013472735672864854186453899450023743627758100435352177220911650909572800840909877359583222634651902622203034683441977316571284875252943259012862727495754834586784001355579003651228431938942453159264465930644973210373659001441666673366379689156104320773359976361281151659286236406346740843275515706349008863316236598570014698975153116269108899932775944468658449687611845530804806772762591463637930252543565745534294937869406494710789062866961788030617002236638148189141055958408698379252696873142921431975494186077185389132080925113051917226631168981448039726113289324822547715910390994850663637820070205320364823512632225567169200005701905274847432321433680914923328281753404270821350651794955258940303651697467888308874704805374142445995348976353847314207258516899549240899047386021812945308642887477476340426472146106875676248440435390693826773982053746816551651457259267239069639046459306260910870677519420968103808162052180959529231657639425538946090617996306192913578893203127160181242947508717728265015449321799942435572646056780517771774242949027141414729882472415754119077365661516102937569634846767232681290833472629642145688819907408309154995970231065083652450932865249180984505655595861552505767515215612539496450064256096892906638712199140962791409513692846898526831131067696223012742119305729397703877024653132482190147907414178464604199876594753020311179935319175026837075506096071212656761569800953208232651213497119114597479013586337491311707607841875107609087298827347248479946092817391498512066706861488934693330373260533718421599208696772542916197405093245258376369049024499895060161530610247230094060624584449095602074812672036111323391920346864810351706219319089614317366100759223626306028814652243933000983359588157591348913722522546501495750228657147315663728270240433517176360475962874107949829647778660343981142982818929340991608913558282777542074884952447993424697297583458544744223848923476766900192026468741550034890468472145020521463100266926579173258396005532338358975149483980050601348652347870988672335857973697590199345067034459130751119124454336687209886897207702225829595371692010178717301065728299525087378581134581924706198236064247191423474506710141255995298729274300941838712182399224430300946331918999209105454020870488110477972851289240554213109421191902358907534126358585777603165347447376276267112461843882819909605542087329418039885104386774195099259259118027887669733336085272550052741765745758258419951349483239954964602909020952021906527360904232123862456156467313388654592840274731552840092252870782430485946466352909358677300229729994571567232956528135113056374335828481854744642963267086801791940407794362252289233575587505735846237926989986524621222930655408719488785877270642223164079881667799674577781719319726098043821464764137151286907445194642830884254307845659663416171538009773526928235216544083162033869186039259201811579789919824190218955169684146735571508923363049799722603210242889155858411403899050121141562734805729383867072711452849080615275685092693563578070408763262304249163667048668091489231210523924645384407109300669695536906399543230548458865824843735984493196173325256651436799235072317200917460770370759152801627056257956502518196830724606653108219990649398429440924362020383456737681499932565973597652663652335318796233111745405555361295475558576337650671783724567270095516603373602195850539119673294082939764308167102826685064177715492721471131357289991628425702680834359621909320184037295231319083759707201691103935864144146890666717529034334015294539289493082965656443062271679022894157653689067784869758286307999629256987379904946984187058186729537925550671280735762827118766276667770843713467710542921452869215507538022609378487972992413766778988209239495649235933979615279761515768393819332306864909868248403892371132942155240780315996358907723022280869262559996329461708255067736879063208577551209920328850554933224248079970622472309166881240808960475381612529659678573537680245138181313728540802453225517478227657289654828517065641084861749549782027977474256202049917236786605395619562213941086260916181830623864250688243838253580252412691749873959837686249580818441467731790994951183963587921807167394958648634670009125023002254384587431758509527463088557938676265004620150496671539129517194300332335921840197902421640829588238812985871489207632494575288059745300963162450844279184226465064306276381187562191285765027942377578249925973421810673851722715251090110445950454303204596811768759589209561289857374095607343829878924410438902546681532464775363992160511000577996792709314715377705965583493800871729893506598454144814235534723185831944807037118072844912923942085026322003479756011304253435847641616911702139706450298920627531523752916748342502242796409820425765079233976076151990894295030211402520242895574049961406392627252927828915178618113653353620702631968918653756820658806262359945432097386911740231381139475779390542430474752815101182300158514195015371447160086590241668560476918508166261420675323937192004203131046840621730596233619892851141415320712739223970751359840873638116990657545406258044563441585710580866135501945016584886604513972879491756529958672366912935562925675656236625327017212318222031316459627304726144041122739031517910687222893164836105737188866835837288564572306646844893727492248360991443876467315450102997186328453437884042479420875463754678380000470681574041996802854183786283119314889581810620224196620806701880161155927108305493795866261790532894108946144821086685677047739780984651154655236388880239790060347772436773086182374248132522931488270114188057942355059859987976144124605965594562252815386415374130338863664338318345040112992627491810324735468404568983752680847870089430249347842712502963093136596336344741067137945644083291227360027574928809987703851466239355802108653728287147320349761583441860302463889362408208772089896705650565082459849574282181138032490493724170521250874690539559596300377518308793729444494585400066126652895021436697871271611680997240173123747046748440824459858897129792617986767077056136985722049310409710835541187519962881438160218340697667854646285988940335131826567975090461163816920685735307687411604279667261865356164925723667066327504490868905028860481084663393706313926360809767690176360175875137536618800897678643642356449728087785720082978759545464606681217452228684309508212561195858110595092682649314178310229027728402432821981155651533836588028005740109063999604294212119712137833504039859417200452823163858316230175674793684482138535950187858088964011400718223425857934096750105777625744832918634857706520427191317559829734460015125548851404655604681706719035931935500215709169008383516537720194100275754694040340717169682717935128340029345192749242280875373598277190794487325910837720814956064994076412201873769563369195363653979083242105196196938862068175679470454552825350064910040747249260422966013611033495023514635820490572391831387438140013117880031561028261574532868003067643831413082258035329295188460872064899344504344449978883538831691895709742661520564197086169379138632599491620436301360654587014266132983525216580665448991876634302098704612356345564581176630193652036069384004175878570201662461263519634395757749878934058688166869236895489319012216050586033621100879693557991704263906597884920197895098531981746467399467438961614659885409139812548668460438023768877706422724037391294421664679193121800566173378237321110114292084877473792422978122917518278931876878183868797370682832005208318529168303003992130398744115161369499795185237557496665786831360924456864453814181648546344124050659768652581506066588732899260345676668552819297604742919835174704334330460764935431912369782467255397615990314557768768171206073289146598699931943324002694843702005546597991254338884222174579550605415348686839470918622240927967504108903669837175206487732968490774687141217200904101749733219079761629506740305340288252543183768576637766227536381706738255661153803184680712400629567182003883569394945072125863087993729788554988544158016688671127556184053351548105567630802884586659701674444303674804275598328257011223429420967071794667926250900740235185188614466528884813661375675961195480975597465102658705514835773997973483991754734512517686868820677050920311523190276938137203987434178905592095222615294988872925556939672520030376434554757068793227190111122413342189361816883131859874240258349741934557611991019573425894870427669183786556462668081827100497789178942603795012515894103316701894914149294245839657624716341270210060333150301635090796392983005708326421376912635739754165410940334383997499898135261330806487773834466008926190253991997464197512483114956508910193423597232375202461864449608932404374684016211847588300399178793627062432116496239623544740452013389108165358402018790221799467771909533234405058129046322491432249979742346534033146351526664635278584552096429261781031707846193873418557140953237363533939334666778389494111950744456204860466359166265331580382777996061925775248694209702632823343261120381811264985971643572734887659000821032276266629967495748897878215033044686670551258609398927326319567592343953180991184519868250585223481708814296675061010721858149316538070197265482971252454235836669656532200194321795132548300193404427181072249027215031977021450741394491159764992422681403268386116217946404840658052931983817422092991986841504747178888616401248130955433242339349216005868170217000803040025313572764583694192895760665184461188503600858989138142597881287016715292791638278893146137100682550621795664594919510252556639628610769469716791828683044501647128468341850224110556304923041820021922877679905200040229796963243223575803244136635225943329019900505316845565516749582918316060104410912313286548922026798332086763099171683731139815926680335174678956501267845527320780720856612236408487712645635941613173636809895367650190581883507367403014328119968819692134141717685269930203090649758241110181489589223214978858718447344925616444512009283497324732566778394163363459406985046988515314809023716531873567027233208304296281182762105671037806024295870859111670495184986005488278424054463282491317276398454618489956222063947358921469801056477354852798464913881111466538862674241287127621477572912604250770121302546935838778965964366619955083826198029499145087154622959053327429020430006821418110792209679929020895721494562581111847390481142340957589074597421335060676244567970179023452680596410264395911547612208809976151966169794213663770628284222933395896903301941855698523244781598933887214157423985009913505101270080155547163362621091118131527374168094187231645255657561528011430513288515313148769660792399513585094031714576847059887052919338439996365228226788838718965320582019380158793875465938083813645290378909727967617400661593016119932887014852980296242528284307463950416016809684000292322860746020234696237807573513679337503562384990624791691697874161338485621955595285833319767716518548131951010088453478469090048795554972603388574301669671194449250870587786051421267897346331196868182657920206512357032025264607258022889201987143372093959251547035494272583963366584459228845080814104131996662051493668579346105424691849148667167411694736913673919899079391422516271849310492068277886871339721198950911506282395062520480393438691345118023624924623603831199392648261241044817470396378485484442533621972067595705561716448948775657027619642611587357043563256409052142428991360518760027863669925172091288242788377331269748838044909376253609850086967658488017723985547962071784015068678893063753744793602788848265284844047004792720361105976718803539440748458542335898317665969001236782984697779772550406404473138187158133845056562482690696555527511263647004948036695311488500527929506255870808736199797529330049992924085589067510071860532661374906074335714143043117912309442860665154966494918376727669491673810404780979967858548154452436506018724970941801960134742448010761336788168159799137550307332007520843491706619947901565371674745451507182027262853576701527804772097650975446205887808032988617183004657669013348239201202628977095646969161205755123163507392337109057408959860449028338154027769871951862347984026860182468816811078945648801452374788804339636286937121814820036003119120618209248051826128637496534859785722948858849890347247769760804943503391731355162743641011103220282319461255493945034124800726948784793511707431398424166962318109715199908374170269869234677917190900362600090926390385248778454819014204268871597515914665150211763307817323264027288513362858060663931564695199512438893017281170764222870337145857310338775933541251299289064087708143153942612671317625173086887648709317818245973645301368149800960204482215565736191536781183986949963814663972114141201770121510497730303311703829368200565489377356915021004045353462313826233795730705180225156647079533351067514111685678121382393657955033664914064148032286817528429797069113237041314054371972759307997963576635375156319134740497212599347892069239234266488776538667736768304580762775985442522223310065618248420592241178069451338744485575494959408586432255266929662139712416051474432104553546602587175103185971283773848390011060121555609606637436797982354147711630839306576614800782362404556158708831125925458857813013703396313838246637924000114050283139730848732547486325632077907266771124310715527720346653468977922797760219582030088701667841541518278105348454583816901898374601460636379086627424757648471027244981417064512979734643353214361039814593678392935681548048071001056024165277954521352968686394019887218451003399388210453720264005012777405317319488542094954862175204979547083541744495358920493572601155965772482158802015827693492257449262758125693550989251979224840698817587194550107874058117295732943358124642089912408080758047609360339759072228848026574165817806227441617022922650336344749984384792955313671517567521662185518889537542315629158507437922636555605141166378459891478476083187173442790450613588158218892430276566113950127323922977823314421423387773644854634670620189095355541053108825926603698982335621150805449212340050138663447665009377917772845691220286501330633783217807883032233519148280703626042078974725537428759537411395333492254122557943858253262481114823665291742441877137698932051298274737764434864218764042538258367153482775172931111838280535827775512845772148487735632389899676568006063551029326267115074169238556380046033361643091065586362982812437058670612007889680418212815752419432770309449903100090727463776664454476418339777901385941948587050101975547097179035033630796433617081574486880720040191487965216251799230320273016802265797264414848204416305354548462197243165514966340810652398268309229301091612713018611364787284092909980467690978651597647359202036644323102837563837248202404105889798044638384651994730486034242190439854937983209772438744427407124490005013486773439218669117886807551238856317822053491142251212707007538091799872390257195604019305446991107512829599844562555297963785428457605757745016953560075308833206194889085705267435056893094202811572351679342566274390569173901662589461394706585149522079762195999142408992271366691582603827551351273095580240480852840898069557000474911020960867171106557449155103738635406738501288634711700683310414666063097752473955469906701762149653099094173430549015211673351385056947292920662897827049620434601394710280176289247497347620324056366653187714907776603101266922802545228205502324805422263183004016391092752262409065661078710943506304069735725363077501876613380994904398601182406061978805977605750584994366919192390278429754566318231157993870220818499884549341118264713597137810402733474521754796293479545397558594797914762867703910964518507247041599115147821474482915692957457030323978992371256195419735316004219450798014602246721317158169165922812962757190230589617904994367689392989366727354081828343386058999347061556848749938412502153547050593738931784521738733850572347359823340670870930480864890135806354781906935413505723357160598515455906763096473708952469543982453401857821540376941882263477995894147877208175535882008351431860176194370970781182225125061237685125926240498578307278387696567636255959097769704106472519106999415982892662884432775163437309669862019941737938725253516719511688076509716174320374008799577955563177415104234558185516540434814446576665552568348379658001332202956928983283394613446306198931745894756237630944045195580403663136208868378659100894446091655767868229020297744680086293897291079238988457292353148500574989694113110333801722844052176282375558224343339952956769934068739437383414473826293586744238697910610066977660811922917913215985504617330108900168857147243115247164123903444875837771498533043718970555023299552330734287258545248750857657498805921975202692374444033634482703406385497670343814100958722611786885809030726727987736931728929410177751334360973162874405220126923415536759394516953107699250355494520355457635767165523949643485110090526767766729251828948375304468184494151556946333602555802367019627487608003370464458343639595025927330570166191848470890304444106460494496999114960437611872582954201061157792018031030147399675179296375717125422150835836493703329070349250228574431536162761732858221391154728510961497838567956086893879987463179872137425805362408080869809225188289507016249766568765717189418912782655264159234106104298175590942234223136776680680744897752287477100932627523186412861690421619944873970271690177201992258186497099682757754430629147501332851910858537957769850316783671803014325523641137317286817005598391382632487212545776468567329617674444123446562764901245395926621408094940115823636580922895234271010767550046987085160210057654517601306712834667734157136176650517718816093915945058486853674855310125678243428274022844144346608208205206441554415725269015035468550286025651449830736934567391904532991627587143896786391344763576248551589951974425337493897742293606294692243246759629997976425855996612622497546697682066365470978593262976055067854201861627016353255070971118244907253872678365549335031430016923565661035169451255093100978172673201011971408929839245169192215937843082289623276494933147575164389225862877251837779870345897019598365129211390958385819179669938722932313492586925239898973628959753623106674019690804660709640591238709630050988705223554162618166939473745747092169100862935528770265442155287906589035865469295845010391271093237237636679673452633035513529270772099132981808372542870359283959610560230649050019670203875379238900131276459682495529798478998467008678172676146275255248319474239058929399724810015780462967872589672010067363203988576251544692411388346933030924266652343877779828519656675692798429281038872975971728799951351442612056592366322857366078206349468325912101284277584642371412942520471618229561550644027757174939400049178192511595293055581480031872626613805342910041228752554488256106882195776708348103522086071900457256316425645436895024262498178439962797323513395453149805974777332343271917671080200530029226710977202666561286485823886271581815452424893689519661905879452151564825360102631943938557645503527645983435029882821173412446285529722538989980063726357249110164594604332961142516170252066602634255938998918755108030983843288137055657456355672585990834851427090442942242297762012270305635434736420367589395081235049200869519996446690945617783959898132953370954470360820128095808723366900069470482628939426669984521340899927716553063342165810617905724492493086142435241810271902393573392079961290070242999928456079225241614546617207459163885865090299242578823423342522619258440059700254326014468469572957638442836148379057681855000806375530261728749875253403236374117814690103776836789657780455391828231921810821151020550030957798928876230705933691920109343280697315946512498541319901913462444453841341064439266163147429553059298355540351137623156288065655229570596330009740168305380719030750822178276211606446512795009240470369451264460123117329950623329184642264607326399727470898060676516524024274929019673212204178720645724661487227640405121101941994066412094217197877855602893965477800430572394656887321663305499938137480220862545156087339461931662886174908405177117614179910593215279710116496038355315026762508118241700197912607499823853093929303371652333863896976771306643687199381459600160549203781041242702277331068586448633837208914097649549387183556028863859642500519890886031292178951084619956982295980264210958872071887582327603890727950394783867053206568192277680195872478043856005704263766940565508899647474243750911044367721217080340323130330044146796219410802494455834932231045749555762225947450412730023231062149362767658956772514400490032277146914665176417521686218280168442558442745921870018674980698629584635424797579557742513882490848211533918992440718790785697950260697154073970755673594765100511395548550296716171168749345161776674589872920611452524922634719370086381975884531596356194886606124348224746516531261593988090663125998898697381676738468595096254007243065202261861548522847437338180966994404674823049258787282127634163036112470278816819192418691726432568770360420656692701417091620709153612678773452762124904369818892267276247624274953478238133407091057794159287120105431263494826111396133555274333000424320229632407522740588689954286939779301031222785003218222484679035383086914730632490972049422353859804630553464100038164032031168258279053092245490831736949290387169078937496180457784460156891686782408303433898694827378140491437372474041344724197955976460833055940674747025102043202357592102757068709626901050618494483332070950763156976141197930170927738509018183819386425122441956033734362967632673228856586249289868482154493280915261241627476314362300400631039617724423407234102530959679899711684338334268155623080985296883001912421152294575968053513302413934897847195944955511327639899941187092675810315107831981113004402477222618346867662904575193879893196614440867410632844721093519278101696059590709179338243021224931633431397344551880384837041588324282406221102053474137290002886967288783367623139956044145897974802035658322749916224280944131636099525540730706306249440725340770334845625338031232235222415457024391721457290621626191774993039550546899628540072493414933759568777202770176574824132634527816641869922591766762494473385275885261683385524728819756104268027431039143328331088886307021061060647893718125487808528162654703243182020686978206961972839206714241217198370231874491928014292491915762422403912578554170908246537898482344334307291305983220665340046739512261279845493944156150827088589731596419834192710160331563244557336017805107224767960549541743547487858908477458759597186881750118316023314571465257961222400882487531983041476698772962683827164523274971435445118729191693571939113466277397800859383845656087365847777985999235415189205608571316150139678660223921891955331490979432244589890863528162121435462200238952804915181394805065061104288945761521254194660449601377489302923538310840046758165341450486695390508572626679973113077225557292732052582683916042599190866859580374037623874534125585032875165517239218751786398681609889486883975111280891369892336963404624659281145317599190423607873540567769618675671876855916978170766857961621342378460634704825787397849269517018463146125629481929547989242135868975257842470110686170790884861124138674422146545366300838642547319986878290287069205668678910586699185295325729257593423956436662756716032264375334325682283582983782568330899560714107099043352969025298290991910337350120781675419442331442611930674110936225893845097972814512813105308181203558124071972180649587128112677013845844019559190739896118938349897240902434208172775230553967866508635533040356217967923592516617114581640616874904511265839979743079788264282812461369130720884136710953611971306021553126665821947735698476063195995441856695372622631924505564161191478452674255801497390773377429892644866331988193403264668996063105476168593606172193647884294105591630001687002869951433830122400605135904297039259065867187980614777838169415608521225694013447584549406252416637812126769885163047560589212132800721815425806555238103012735033993602252576409364683550702374709214986804854796019545235810306885253364399509554480769309614560731573952666821448048134699837031771033751754422099312004913561207277926287297130104350381642240465209686304741486662181097935497646241256185579306796153934860653927566179048901641718267885819397311853888241120889328591604281184028611898651827626668208705765282259691337446586987140189321570075559453800710938818789686910026812572074290436136917900950817641692599742143530565597716515126637981990351133854784645166919277876107214478949117565464740724710673651670550180938085526017646267549122126027435139081432064947442513679009116791276149307127455368603230626261924111304126167989271170062744013454256614121077747548512806103550251566403333043925763855395060020274463925964031666762949782555371131181924178357011015993197071976407196616638701095606824482908006864644631866433318130696165085474433176044618604603861245699196334179437547865663294361750008589523065279296097755109062194723329909730346625294864936815991690588270782206059295331285838785983577549127772492293167816114580267189939614414559453150363451608178759517243441761828499635701227144255684460109547427778743949151766687806554923965169379557360513088891948101827464062762820542841638337508046889104865871907798159980615594674234610192084098780943331241287034444560595116927545277580570473712109161036889597337313337644714984803907125883752343924371112072457304065126518821082926200643497974704745582650680414066307887674308022118245146094435995912353434102435192983874424975805905069956168943379485583863879582663993366826790736813187062982620050960554394405491149412036997850436946973984324504307937603235370343685208757781920927943227290656590926594445741340741056303243316432246163001229178027588372717526071143116135324911817507138537274580102354357454519914735572422054289182862207857665210135858339321171525745011226687135467355729533641978654729493157721526006087086047185341816081485811992696437882924115648108346550924250228107425375094361685284251760190486636346292146206555541782943195216020462352446878724941868419348960840002464311497031729118262896984263979973784144821465904143741054375167154749161105660051495835694182731749331549420103416661779651449148263179756524162963337081862150972429931991268301147218638923938809341230062526530296391629122650076955251191413402647646622648301475481367316410840761004582734928763302756400159645999019342567379978310175068089796073578153344937099528016097611040925080421131808923114865573914417837574204097370523531006487211088289054734243261663694403647039690209001726490764561263431214359585273092576002998625524662799725612879456462410324310868963468705288498824019965807824377050437090866361153409223117867675135483326550659663897804010814154814633826354809378035651649530512853795314654027099001051648030776893245493252638440494004489616241146427246676088229716842683581847576533580539607838223375362740297723929255547824333664201559541193101817030392640709407282554288186112982155683761245434367624375995331796835892778563965803373071119786470229697932897761401843165908791095265623167582229735730001121398823673209084979967523657421616229547612185780538360771580474188043819802142040336118868810246350059298084628912320811121177516810817451128546539364448916925089976564966024215755977357074046913664849670281660950767711822034596124083847277697150917500867602312861227104905513881832562697817081928972608413108389379542638377567591082417949634038184311682154645902219497789888201695598798742527558934022298866399249720277645245709251885554848010826101778878679066356494909977963907682224257983509157334727932792918674522498353180554047294333636327253772933553836226535707754753144396332122989536407651808643814392999970394690873122147657779362172834424949906466835911236906356587939762947563769811701987252138833779049742399843809956680312091945000929808254816719900728663156550295957732642730250235717932723300986264656008157083046536447325999330993239624106102293956573124567902672584178437390465459973763492350654667530778058123109572541224136196378288210443663411545424608560867836082930883966423950275837209683130334724652062353990007470562692895089157289685440102437674749605112570801044428278806896773180381736518708108817372131140521507044365687522195890552085299623546097272621719059912813910199809304698119637087039633237463786889712574199686165335699220866764852655741986286259672438581824248206312945522532841139205911139714724463306342680456777614619035428615803858082667772578226276508153435304765586970559330065499522659589298224499576089690780601203926657408116529463236610631822078791665816078936347978423073536735935666398043692362410879526447454737691232927247619808188125485368128369131796674097264685610304826602765464509652024367937312742604179983865388338414970212109187598056759481939893841076649083643509815601779759890698366791237971509347947298649130585077131235777528885273255681074681818092927051560280469380487264928895135060756574070781995700928356054970289490508441743736614462029365025809715935283660283075520792127783210437390704280097043314605998282595308091828643509934012910305045485658007157948787495914897276521632393318850750499986431580400889554999434117402840245239054159295076008840403984158013281300294896066767255199287312875981544620087194652881055223074443571425484102823051244436426855344396977219110196788264740559384560591085284241923781376079637703221380262775005361705059085835021345993188326134852414671850046759159639351000831241398195914985900986494290760679346755543749744901461321182274174589768029608418391039374970671625129231832470736348614722019547155156472927591443157291784359663108224154580724689524726390857198546235843125645975387775193463199272105537428721631901775290551035379091032787696188884837346934701323379620497048157696728833906456653016734203466262429524705584214387989914385806788395686419446676866485890620403906853166873377767012873828704903857788378354986565713909411141275467096158114317321025019378428015997686430641682256905901623347060879663147717022385837273179543560430759002827870300600443372399715516483420149818526025491599461960797183700987465944208772187242252786111036252513014436785003535539138759935063647250163418360547116519560101770446181457976381741446508524603819043283824879679618839752752865262424566634817903870781208269876153818784846561038214790424745969470786395988164174802546547117924443044919915824137229877896072283088278290531399016145414657739620962267117942190510403436740979008718457544942444361476834063837470195302560171694376898097627191732109327876391024771436355909412329444432805512727365649660681899235710676298810084778137304628173462306371942210634135656498924822228661449210046926501238065864777103374110810320451945000020783361069046284482467863633071851526080146332622545465841506069274444963751714726409046818364771857022873228260181927429448416722040192029903871980436605150205653334500334205476969350130105741795750086926192803237366314136965192486871009491917034579111446982507532116675473698285705948932405299803937773246008188393415538143052659229059768964474191506062115021091658652653591221211956085864575949637235921572904542192171237023607599237280367611754825928530078090466131601403404546883109164962518956935901753756674721236696707457254668481029467639633438817747964776511991823048349699701152331719977421217541861208526911248576892597582879087703600412660146795642712324617910514125988985515517492174670388655882690776887421545730365418609385796248443396697974332062389173386878078186778359427379026161406220070244838544673153221719694366434465972175187692264181269627092164829524639566176955049176213211256666971654214883667456004126994019816472777286691615848056746626529075292531776626396239030971007361593486150570965160531126157499869081798134458526600897537659378344075253911104564635390514345566289100578365597265144974089489297765395877384143565035611028393833664244929752153333414712382634246162302260828527504211779685478463812525293117125112826003593933171572840428748747879516287581016988205231354918769753135597996747109228645279040131900884830191694730254166133348682560802593730565087993558579455736699392602613265332006806279102257248645968099017388212948307292398286875795336675174640715752904692594102610544710540262953901309492683970833896670525825899035708013672449672239083408172304293095123434152704900550886709459510910426722018893418450107829485540441347841516994505923364179360126579158751248121634288077944587119910232492216674866142654722949266736025675586731578167464494553961240382137005573519661894811539779833923610340439463920663222395874054707958004146476191065635768834607616821448201551450792228484394608626593849357400318322648309345026450140256243706063153984146542764715615574837679164290793106313327004589606631707374526279280218375979268241381746486114100605707143795154952434258122029759878287525811557494053864541976731762672629936501374792448392489011366806305917385916347896395710454430176520738529907590825835305089142798030016514423603019084122702320267085220468405711135847191384249575838665385973811294979106161463368932908660594327683377380048440464507274967339345902999581202895059145430336346577704210188979257104948575161739470868358869739751242918017773790449391228416820209744817507033240156245775681397063455121630634720382563203782547606943355483050127594291023217349558026397959054455747376616078203517654500937967498802388774324551293332506137922016909583279277128897830016540329889250287455377407099299969118518255688817788237825212542876737317714089057101184067636374234486142742298249630363973314338744112985420570882491048718478029724692633554582270741397630519440679579340367401541486216558713603683214620964599392224337053100943003460788543095544123017185965417688817950970610282537189571823420185991529926272115703661583035122360180466908627360974780302480002434758673772420573128617215485939622149121720010242283460004832765630520686328947457304334383092464519583418899066419304592298240918372723449324518697916231311965033546652738335363801696984021482358961929817696350148181135534728119537154361130942250471826983921741450327343702812093336890194967404079272234718484560185030990240656824587219370977077657448960209220759553386345289931899007928352721719871410116427523199245610262579069857974073040068659160612875969785566808504032576060114372866658766285930201245344735742633539554072402163705734880665980054068472329264193945228290575230806745586282580594409253409772690203503211409927737039795248431581173300086969610692159152536087335090554852463148633468975397301500875522668706167840649408064406848012924811717100997659634929171817985830184959339684068616818717765877404019572844176547730280849319221591704125116394592314993778489800214237772223216607214156939824131437696824887010166794855968252602451589817416947059934196186822522884803623542890793591428189903575266362376419256646059253716125899383168808290548646069712945721295369125038878465482716324320329697475463451487132787598496266025958900925960033147404438737047892425975797729669692189785305355452123293206008234037730769947172832550059489993351186201075107946783566063189808501445522412663488436781100146102017381591248177836504330084761299653489412463854817278657812629503265518652469156514810218342935475757039955882983892236589866473031556697242103204407137672363093867842867921633980757158407992376470594896617379197352163465722060101692443765786927085963267781065399741056588197450764234542010767390671833310233432907389192885144727391975074888406425086330325540192136596461047477088492218208297955271533086265646196580082005039652553744111675885479302097504554226265854779879820762829333067275255343096332450613416285479757286996542119319699214374984839616971602438657757256177759593324014668616945455759382556387989066180016166919963626181271145716376301586240257312797906636642962386064247943350586568130114085821342614764254055876740801211060685691154665938407974547170524580388131665818874949908882661749559718147687128708195657127505108738304101330945629178495219464873289036125823294378044286479382798419608562579410346262663928237524437964088361916354434970221571741282892563230474744925494559742044028939957029491512166132670899245597796048905578520286746089446961802723012181569836980610711194906347501129390711719544955833358886587011425553184106131277315641952227987144828150930778186022021239686510723727244899740943529085113626996856047655520610652950655757615015914568583742639442238723625806738925170505889734863703302844448224457929195281927953726489155301046707430426738261762697656906667618486958219946113461657547363277352039932548098629672488223445842901524119939081253764955077622079541450889728997974950360581814235208630051479555629715564465580861160133450786989150282779109705833295663491535512292185719648156552223398336419091733902755487594208919022293752846976343405906684272898795647807343993997330884826464732518863867452735171679572348487757622007781418080156929894339360378091793623742159066438628119439349908401520570996379215557503369507870554524849935302399430554746452197566283127666232209240701306343025756551675046746091564428159019314254167781733883039929356152593856136295741900980591445284458999071662038907255765046892622831602225534232946136931087740130571255147890916559916834586972123011588027582632327221445300606022601740657852616966115495749117766723399832855655723803271760919599419257611072525068567551202874079228461568356002940942276489045617152217796010932709145000112694359635436503983164850670377784971861836323662180484712194738932847527714015762823744524677158416573170654819462350235039370898675255073520703795813576928913777553457611016606568179236326639916350316218190543067957021796711807616475481109816651936575588091912178834268908519071597274495011602357465906927939101572616183930459373701182395298394060550833040130381860427332788926100476228837765734557771022736112047783794859463165748953926174428912936241577645755916111191993378072510872635182078331973682792985953130708555247841113123158893601095547497015665133693387160126442221857420939494656313089750681751373314405768570630089510875535597374804183995515073541374774007324663588009020175408160400551156000435864048708082121478021113053743904180710332889853143063860067691584489387339559549230414950160421698387221613208771090518105817345182199344298393587937316351294586616740839469964232480157097489917075252032322435790099567128028156790540183166726150487765596144631537989211453987541160778054585337938851858585779429554791923992845394741441590636819329365081995068118098932308097497040579868511319820218938079020394080825898179299366835044906243992232336101820489831411826423476478866175162853774792825440047827931427351795023966463159218356377029926058567569828746122660043223490497034208976533816874824707790584873028165955770741593097673261700485508671415102431092944654299175305336065706141130152312533162688816796256269988105368938623321418491905712005659270660572303681588958343030282082412122806752039533078542185258731198096958567537298307627168192518185609299908657283483372074939055346576060408308849236588414599929451520707249617402795534244631102930847513247057483893979908049240270901062835997433877839458882791578735242467743790090026848940923793266507688254462316187345995621503067696625281430708911330378735172357420946667152144860586156266785668251391253371355906298554789668148392520923887345179686055830570397767522158661362433505013976723564342132590001401052594476677974307918239107444816354381272454237149260584085076426265918932702276715309200405194431123723324122687683448410262884426451417094025776994777901697765656176111429919329300533787993875760283102082680830025894488901323200029403264838831655247195423151707766541458968565129495782558088737803747606155465623619213823495790364565238769575023395484952039063913625281222102996424285705917025041177187923409919582072946321362290430534126250229351642860928366405448232527184340467330694917142694731682039536709160270002292951636526803773077324554373092715016819689098324053099978995676567762541097572627626773618220879371390369826804535622971400514302943652071939136699275317694125000373235957371867870272742279914270714818093600881364126530457905868826604197715040968532530230599744672017097134336578526935414444056993304581876575152343503141768104140500407930107392634761008179606866943744856542084097899032049285810995577936968688473554431548206879394222285060991332988824095459224597615613217137556322280211540339132171073236115871610388177205886158424744446250433454270285585155412225636062338965938267044740670401782334850231621181208301471350032933304144385765029544550359891304388094078847124089804125025241734020259518561368202378151017853305865080941914848365691670383089179851360700367425138291950696164797724268262404116363087850046584145024286891669668354106840978034625752844550336625705974703366756728289525592503870065717119957391662905822587367832029977521902325503159424238150639762649694221088795684375963908765566291820641207770019022190703355864535117065924002949631244896721614404239607582922644161416138284126553126441289070086713082256181467255904218875368013128502943798750221215211651123717507004040418470573803397000525334106483360505123014562336117328390642196279539015935099390111213398921767310851209952205128177812285622064849408853070240415234229102320357461573208632495388135755689474377957058363607743450786906753785755602060090321316795036465800659381516399677780089040551443450253655144042701405698693396259591205048317293857951367554700626117213582610444480406501346501432036585839896393661570710289414917775335881030484554611772854243914501693902553544122740034727167619941928864775399892804687933052192913561380658968100919861759815112956826121495317821056545360308172375796047310132761796202776677716614845228758881688087976651711564986230395414779903828755471313271263034746023196114737365879701816082994623100266911340252881969591126397798323919845704076516549848848988617418140973837053556501563396263858251887345134485693089369587855725002745398861263501787195183544867136944068612982890009392792351176685635031748141986759025344936781281183952518237182614689334097992640626728544701398048756758285620695016770883711563058821718178323170982836286648285832513696205668180578275395887624942595374768426254450876337591021383889900787874307113039000124573344652255106588547093022686844033556595813353981994006104485226929570469553940682983627506846435543186280883085875033418209217160872147675032826310358484855814667336520762374483624705358124316934799779903848636786382301876964140487358240378217671653985943560503657790254809205745391808827923052992670401749154918905340291841534692062413820650949144734688512287611170477826108346297566085667271639638999825074845803497787612001202950021933079524254842330007459748340525764119664790514634079161300099907822128145787493048415730165273705983557689154725279320425505948138864583214669796090380454405951309993920913568395449334708141619753363073644682482031054761047720207944444612090059709508915862085041266761111634996384841295388926539192644267641996762249253686318394351009617618026951777892073295130544750645066456581521606980196436237133444511696784011581351392496422018832989475343298038017470031854999703137600523379883828755281263298775755025054935366919845925543968032378176038101859053422142542188260513362883057977724163787999819709032137322535761648135230100506953161795835741360671647711999638415671893266699088758440824608151596617867848936637012013903731349245412792605665099452405886463551942882915742831960874118784230604185035944072494567464658088067468564192752184448394714525846107311432264468087808109326536961438598260206558066154013221347828973081358592284270821576900551819002420917839376087021151100995103598800290888723269986403191011641849236018378943337287308835544757615846735690792514437428941645636940349282741729590767734078442454619101127717863338794224842355068460805552501069296665339291536311847123373482415755959472206175101919715096668914861193718942249920520026068777648153267823670166145897654637518816603423788941538651614699469992357970484543203108045651974813293005697835523789496411407480355693798716239007969332312095913933254337311048878438572134172764854434716841908017665036849730399072565179668279185790451051156607376809262642720151083876823077945722101388161209912201557648341947177987174281376543932652442286284251778024716252053152942485637894873325401276254788361844952641774510729886827288141323822732749709324897480414037613236768450333420327744189698708073388521827463385062437309062011450796076958988167227703744920620985398776883618171072029184494554489046556957079112575555127602142666138180898820493566013857670677946573846549909506117578471523814945843914183729265667568662678037856517249369994773724987285383226914318200612555867640677087473153697258431891391839272537604097773538042843160374283758819742019652300351258126247049403409245456364870853772817228574806722703017485838686031779604208445808678574978389175542221137437689209058618072725389160737298962589316856097697655787221591828400357898375797455275018509996861301312118352474637275276805920506487841408502771820416232255787447441658473829861101655479978289248470308552818016114344505388686497507346176788307699691713019611662345859886837822018041141808162775680554896450560435937088051471963863077039856355611251434938778283493644847396716989977588273081211083934485486820711329131017008927839510183892004249178170187377085852303133092207036671118444493707579974457769853022502006446162392551995361417991014322842633666448094997266339285176901923666117520308909910164068209725612546301186989338109731787152757369626301958883489803891418396715543778434237441679683729440037345722964267910485182573308724175977893403874373930476687935313142968337863742928074738353300227676142201865600519548166474684394020044744054994242557552197283653119218822331593779070113636216606513233611436884662371285119420480272346271383519815969879174475281594500846057840461915490234608458327752716862862863921016625192773845951837027156512815699615865364664122281632090962522933213233697644832245753736876626105697601967454989405113489976047548451347675327157480141294809271331194586665595769719033806817564289383050593443286928448664525482998521318937024249687093064907133104226489225544020389749236384722134203607156282068267640991242127021182273237411265503373456619310807169167238736252708177898650844655519169260323795291739669093652272617332879939805598111086259008325109009980680530072342632916661854186954965375414340298543908338392040342732143973248586735744870192927764119550653047558909207886957074600092517440846705927128470150099114056558589082231648155356992209183336932799381255426961323137207771459435353784157404100863926335477627261577945320554574580909378213357536553256153700870874592603789274712059206812809270524453155229170266729197787503060739683112614274797518284952481045186026546683303191150334637580507721486072125538180921840119293256587011431880363807244775596889299876310482144274913613584524129223263742270220410811206758994827244979420460214102233360480684624846932776983381134018745602626755627785439697126029265092479027127584989413307010683497464636254634041988593015465780585869569076209899877463306801224232656204000329103981411130315394292267625516109958631460757613566183597852450831392245571802337564202728011460379782736361699418035874829763289241094427207705049077899149026897836073735342433079170500210222984159207047485798463763347611271667677028235490056769856604889136315539002086713714070990460515406448156741405197260784001965100239014528320870384433428179554085165942781687797437917956745421895593693789552295301291211157784925779282704730757834395379772859204827315250688338823814178941458977602712216622960160936253793003886095620159098625307416918626450079814711547602119250986049009344479369823853623491850120557726555473327075729096344441014229003191199470343153758532220261841955874180341710100141634263709196836688935101021665599851404770101801386156640775121320536483101802887259132439089441900410390353291773242082572171574617004331591936270721509726018779454138574494827426858101544501670689177612200334512866912258828587327115710918956491362994016651955109568994211238916221938729854255276094647700530964235516580106135664503132520167005073017888368804683964284049247894784785122273084316678679545709491514962413267333511357223675101287187494779058137028075966256166106734736749203260148694867638345988198089101549836223456124109421720853664023440902792259203673589643100110811108230349884203314987946172046344941885429029991010655582719951942077005127300965947890878430062597715736425194250357369924802527999140085504138159613404975224716338895665762082641805901975869403786546117896734205155867562363864029399765519412051689187295024337612848804849636120277586861597349393184227387847163614194569712231088343936660469402030885420531389586540529123382145177513823889912195317725001259444156148926739785636318644633107547172422336583593049428808708491033053341093228794585935681383927072379262507430110586416118767952118715484253071830219837063918336628857147730664525125200826187800347405920012671080646449948380553634812738244268019650418505180036540130055995537719834831615726393625016446775001394974132730582736207469122836259788958574676232074850604257872504571409706722688862023017405135776461336175444500483193193614135387842500486252799332542817981473787017625843360659017383306788465958484163711127789808536301019762692744856006767227582737600412867360479437336775664015785973624011832876370649746330479579633669269486100623219966239224027922593923292515393786460990598195062620897760231466574738470710674637125696186216528539332027600310743639807910015338702107182269928196731064610877604593137413114539436493771770545109826097934963430943749615542933333568515827361213040495351286057337036103110186966157661099170943635124481723396338152277986210207909547609821520936601810218082871678002059475433545014075635088788065414705516537743738214795359963843088037719416942881712177349541563510526845331598266855037098778366858463903822340291892581717258151499887743997907618172909373225184011606920241141838689388494603564631880518122671644515048936208749410916435122333495935969886099540129864065281003400550645773029735627402725082484454810327225440339200329575781008225350150127752176038635788962869811495630917231124417599370932005191106944328122059381104761882449334959171803790323252557630731299229551652393663504739098177080834685144713171904717862114574745027699863916296423693986383783607923741825129485360858779914501221227558225150593140287820922976936908874929420885440473345816953813020680730882290147945890358453674534180892130517169590889712507480500360500689404448786492644773960224954801772218993843324037872566673253307872648375867988474074338791587809833123041914881439958582251747047536824789592182090023196834207880374934127956313115762342353327512058301187187737938087551620069418223938277092049464688239816894123692861810676808343252796226343896408177943885380709646768669029075369674713999260503449063793475675571130667444647113872871895400506316995620536113376891078509625930028039812714425733617350473389494591550191499849078298021922004178283395316754068588357029192904035310286806820738762102664647499397052905730616624222204903002466122539955579886033491474146835505692931924443095479674035287293343693945669131013841333601247374718272350561233505824926036867607254901113979210653731085229161014075931054592719285917184800417828875975941404430348101020163130500624469519936861148060084116007755671593793766734918804016847112379793559329941655560712149666594034668000027552429522660726633948504438061552664514761599108453202579815977102894002048665132504308284618434226046907901250483502651820892167455949890470466556181304628067453667333114294882693860610514389027437268182370550643196952328498273905575965776360618294667806581727087432756110838697597583478170295066353207802426971352706127511439896282735474497148480267061310229697863446439440984588779684169947790472956528927168218626162994858974325105051367528996973687220822319150850779276813162947091665013343366512686868673818492330452821102104440634749434083054625721586856978213856014667612222336981719097474563698419372314324736841917087455130247108201372827680607714768896834430620357463040998801574981596214758208408519358839095738024272165477181656672367287331446327419724962544612524368899274075493529364627335480363256446490285128459731653518867262866308332974839113456902910828255562669505287321909280952209126624973197890094920862633444778228933957230032358749432107438375466384908313872535335841147059015522887601845468653578214502548081035053481991522732096892776839311173923756447448505278953265083462648785537346475485063407225984506396516558817925332159346271565511832090072739364941454204490239505936600536145677599023699219899322700923604417643867177595995364315213544409326934491942154364619298041080873470870926534689843982591090519401637141725754890374165214139109223944408669214650377418853357802873119397210951088291333580668267961148689664595239168942218534847066849565701782111643291475851637810604109109327659153352703863779602874682403023182895707771462896293577354272617221176902973504210875735583887100186536299444646528985760927263242513402690965808425100300837877692455851762936091864714490573668418205737875975061867437628329489494879674459634426960380250653516006274671523075036250937646404560011685471530458042989982542981013864057165941315690061414842767752122556898905716389685652925709937294929003049374826523188633730725723197047035386679464577873105144266792310330715343449902095865731447752946282357341488931831471428903482686909087637917152966672954568401749798304845776190249973633750869756930776772616447025293571228471085510652392983898240879461544185132990044098049030320526077898402577503308861150786898477218574040449020117762105281323142263960132808410099671304831774700869635373737623554248306027152427048401700160470243086536421653009071953685100069609505805951133330371317678882517493799834687877988414939676202987235029336123652660770563220917188961509808423123488033937842843202928314136513387701816463803186950288164150451407537217364344563162173727949816248871283579325913596827321319390649911507085077217547361960510737548247414442491761719195451968275235980286505432506917352102779857665232361816901646475601484346001980794477503578013090217750568628263942380325241119919764225629531914286324762740763496481320568501507219801224992728172589889071047868203276937142713253137484139647796685645101155140577366810259867832627064010264358060630283284654980393685491680084314094934488018932890694400317677929287444424495320077387465393568392674221061747510288972623232126213123409670894215437880916843704139447520485699245359845255678802592025942676481731612893783102889880932465871843187372491479381676711004771563195949123828559684311666765410386543983175276630171888851022041462826955361041061949205687347910798855056166982062343999705747438933761296962509217156851863886997114280076216526735761983750025119220300067601797244778516225696099479250454141624023002952410130952317032879787295293456494776592224682535037915915495789448952949788826606626435422956184428173762517659090994803945963492258386740405011669418174219615912087273626570362792957934386168818989412776760803427878318245638122664378162555274116106152599227445063099969262220848834660857493816869958401342164760781768064126727685718564790209197735730296873579674259398030116795294407322639574794128359608825737759183483307151677292507106125332177833505930019767814788204589052578111773570041058875561164320215617473094738614491875042996330214149535356026087919768297871529600656865469202581589089283715476256398646650186929013813805451348355962573354187964325294854379109944581495392685629076109117163056365728242416134150479028193194186464763636177193911338585084761115971528468200440917963577184192210721078298096283922537959626375971425201100078254899913030375489273262533930162134932424429687784054124480343986558231858787813810223549138165850067011660183181987108057660359996268444176425492482176866199412342468176597376196189823056316744456511830810362520523913964761740532167578392761872171512358676219222280593924791471368006608876937661559310734971515197219849299432076881965985919802555811211987496978864043579829737943599204273093481059904941330056011332097159023053308891631327363112273782279983160316119803134158462902186618120064091926438050154340446795379274626767925894447460851006243152769680791285910978203400655894013379005367359280655484606004011934516286739713220802675397110783418737456152171162926449720627354351624745614885438136032465497995933178046801794148423133308366751239833423847193932286314294569320399616732715503952796383241101648277968582496586162234812964224072477086340448480593323546732625979114493198476915505206429491053334374116127981232639085588720693174292863351739676208376845167259117787290371345961532833341568213220092073130035097662989604492092890593072681965955464271056575600531982094926242773267463766847064882934609408585964721437530954691536910980715610042431923702255755361829829245949991188778384765407982891416390730465579436478839508506383734627652925571234922312300852096180358941649621229720381258930486487076023479921135423796038346018793138390919554467948096258065054593816563299015937116644107762603298412193221551053360244712017286139951314762561414146652691615484250228757093626741223780438950038042257025115148969758453675935571145304493309880524340371605238341019357951950100910072757558046116011409264373113176387395834609319635487057332449283856301197099700086192535590192383056386372376352673292365372652850921438483396028742312449695632123481880528849511926258782618239785631714908581328393424875796161874755221203970220593944591732308438456980004000550611751600561516537377341923890594849323591326501532727790581022286408386694501112337287815808277412843694072152970838972710985312144877455196256991909083878478854598407451454169451855529839803381408832153205888433396371930628630351677277745753920851590376151872133885144903529253953457639253110869024706764536107474376047314693030898450476904078113775613914150986164620407218242969601590003831941694544968154884776528056486144566854720723751036378875744463829347377983393382689939755697368786985196970524573824217519206094528301176452545879304160521010386041709046971669641616757393101212854320916409908186232899107209331257628718675333201143594208672380204584998252170077061468638852777939106339122450009763976924265146722415277996683544811860535110462227256305099013446819412648424486877563632539674543025232118216386764752681729608949049455665830906901070579535558684098153788238588345612446916383654286732084542008076080315839691872642354923286955681990321404838062767241294396682218594743236187078770606349268178686786950760650925429576938864972325463811967228756953345883422637171380882344664689925905248382593557136837862262401839784106762926572888131619778810006030396260161804483173907930721586529703268613102406929041501659300516410465138288140384706527585786033199020727172049498141223809627402215134749315561209721761722396232813542017275083116798037882872304207439514805830642036505765961842636033453637695434264850128475367295312984760746965458425962205892953388069774176682832914977890076262247588836215395371763036910577548088088210358991367809042481765518935185414824538465130865511739944055072811157538610575144613631029693409714024868835080904789018722914523373284590430218595685499929231332513002623288695435764560836312581356320537224631230586110894986974448485713362415197321580039029207225536892858480509563904234117114072822710341740246150598061650129962292606386687110350084401473166817934536685044596659129180646360057714104251569357414724883628345623566839774348465046775732684865443150303830941675066359678349580673259000634313884384514658544526600989816104630718296325465735029589001722627556838883634452649197061591744997777912385083380508700483848994392769441914727357536088998804610461062076066792488212169259493695736500630987784287300116150602495431738929943841321613987299345840106680628613966531572954924534768125150074901667403879764874324637518749265201421966322181572868081453627226150837047697309457127320406106566654772000051687690609361889708091057187077086360133662267250051723536169311053457194533929305661761746245937501826913131960883834445099546535430048579154523055546089125389940044087144361262908055553684365374487684878664018579396843867687519438183451559161917954375838074312638496264674319090296416339536362260871164133404153207241689312830625941665059944496445455064350548541102720549414790967688916041388582075300155620982315224389929105755990615434531970925653668306222793970199222706701777716913961003590341359110605628185833429512749822552129611176015828008563071995954675138575142046365865230527980558192264730878654381809113729488553832150077440178893865881587832269161934506468629435602861333393377729003335198513480179743804449582405497648888098573489628885686871533409767932950179324741014920089710500125168630545804958467807761736653530328551416078281377430393832734393396894647024610176601764469371531239177460707385190279395509843571214342865163300562634473973459330822840055499647031723003727728367328008306098049407896589224520363108470098245564789359812606445445281588098450377426033443464599763304745733532376948939424434365367895642250598295487019291788495507350145681503617696272929427181895357391577220810602679512794587782710200621168752440138957913330115709414703694138045872042251862425793436245187624811989925428356917152748672192093636994222721051325155985297727920862821688112175506418041989839226893571669710893066762123920417381788161651973788352638506718686215521876573870304562435158373871743904275932918647234972468877294131392880540885401906632042469606484868305598619692076081997362575281507095399477434687691207219348823104778376280791562213127848644985711257613488204123861181274820929870383122281510580087184071865839339808390939448410207329491509684862392960229832348210430731810840390195384915449497495653331484957129174295381595934537644295284506374875724242932276405612972755444869702626269721966685737848172405470575911056404002993238467407983795504770644981513405195944523638962505211452189813322001581936997032567503016937949910743074586118087465053241031862193664452832220838931891143887508122788179431702545759842332496635063772834835808360095159257994301454969456789400880391970602229309754714315525680026151348002377315419956856303220460123993056247403062166686487796864032488248237514076860632548136198093087868002759526419309457624559708615800446394851904114817512519518084147827143951809756122463492251647938603251083892008434688312501882511196421147451623864108080748210076721279828545869922258809721989796342380416651356087828104209543862354148540431872817921410919801445928243595814233083505849932307636175757350455309157588232919062913901482584115660047629436748062847957564150495550286253976892701407622262911648742371817695465293524526620359476910247134514159754788854658346011302828547729776879678533620042202909712187421530816016083715041623470902007321143724629183388600332040030102704664855743077378575746345801297709344401662527095147749440699360869907094250888376265436852137055038777849567162597393045113478489810055330838095016874287693885260561615495817905613982911285481600064157730709552562800493201948676252816292250294470548616617913869634602684479944683486362574981480615796239826437766695925085616294006245021670606827808721762601123668756018379234116263633372421982201710064567533197284467913240339757792525450307799420449781492363419330263105305736992007249775774943599278954612040069484834622742627709764549383166965690714233278871026793860437133467660849996898264711162629732904556132187273006555246692652975436364479536106265640344955404440213646738273764658780153804247779228301770499343874354324808873061981795814576130591949877042129796690100228311007644819833046779857441054322362528824287451254777632168442840792740586776922850141028207164416592602044201627640406845962941497595118623458637411680358694028322586097011146387307182883435951796906066788810788062713290142143896359241111591523120131724868184417900933259236688040444787960318563379580462960799720411357626638047476520363842672056543601252709396003304470570172183696217307562031294974904987159927825790538756567787840814242605062540130727290395911655746612910232768974465925058688633522863128601744741679174173297020960630424875778375420799444950667578198774026609804065095534679617615505079358377453927283364467744938363174222404489039484643193776521329685484123723172186096870096447315829260643864557658735507724062229992196226315275519545011128696372881204274163150136466352958522287565995585476090117966714319591191546047471879386327983786567559609416810600124947439730550546761560376734909889935249932257161056215984683168013404948083742856111106879339412469544877504329765534216417592202458255579593791311717484507653514885870036135715521389950047686137017803374010770519574673052996679788329069079190823499851192461963949575750136660113602067780076966146129152551563589697967396124471984434086136845559257149984541661010698372358160389458155939041725018166091041322631537968868494910921311118881551872515486681219880179864568662073384096934752464193708879333420924675014731522800305780606080097738875129546492076042066382102725035520384741127835192945451252884846821980491009251266031412363259939400753960710408979564362568918376004143367589085300304727999835196281824914970729795635979777450668024080192691220493039571747439819021581626091199006094076139551162753800213697640305899300810894298059456517714795756021519589100781293007691159881643099916849005905662201624786023321727372855691256813162159035376887976045791263548417487434802287820299899299146490114201123070650781174881404442702686954675897208820970984204850919048768692593423937144134711801933654222410548148618007224763994670177749106673155681188154300489338585778576474779034465364508945261164108475593060570458143303303010430549835047466014092900350367106691770904868126398048064618197625570732074806724603990236724298352889306774903432731766425506126064062099376352229865476778515143761905084006788001438290538343913333927018547144943174428294767402186131397836107828327113490908456329331763035510995241680638270936148449264971921172933849535896887213068756283816433861583069468595480563417817302599553641769048817979956396668654160529184104823590184541961796099150499843905804260391665833747899568341225926876675068969186277791724007368933877830697220580292220620440967922875581479679847071500109253802807434564148400594287507157078757241933998809246806203873253138021397206307085445835552615672222986530144547026806357362098292911331343579304705983274165191659708264101100532692416361721271658754657321637224545550460823299572842290363963456360035439624325862839278633568472908036540793656182010274307165450097389915050004748013512526964021071330892160796848869297156408817220286704251513403641516298219905355999700746387549228177435385941606423631297076601989529018940115884003100187859704874319046738653166420613479558645525334281433472530631510329962066872185897139611460841084269799167499060904196153915792108789457896825702780432040814408408910991372756434146222028550841386068906649281247684640581135523379837320281584061823096574831856022805250135802398138583380464561712978350298974168130539311319025375306485750537559706701908638083344670491980600304885848750721973067952708988082109218162555270871868902932373012831431220909869404700430491500481050799523888317175366883353406609534711720301894741151540281709809709314257562540046510049032209188032533768835011146666887825960127299906239349811410743513383265973871334834769771168365149086532944193879298728136850508963140663696934142438618659776493448033997503731346128495252083426970445656938405254418384056624205150931462832725778649296528411710815399535614994576464323359793517410444637660647775824042693116243899288536337889449556690298436583036760766931305303587479864898641733096977082892326194025562256777250938917692693849127774640859334967475707076706856025443174276410845732439765345177018740942457452800842064590469292958685209767655996567201282080620032561107260754223814219666649713232833307426965768774183588156530877243665938364879363973715649233105190433477403182340045021386197378118536156916492293962577402948327849481403087668322987811820152739050885694412843387776716819770031838304479427947206258154294702127949978196879720030053146102888744783599501748592704981864071750182106468605675261778735955530398461616281988663607702539020464347649588740713847887409506605276050531213658423206997748115339542018703647435240073950567786660765942038718917766224811674111625767494439870509303825004487241245349727847519877104191195454660914270694542431317595681391285053651636758919417632815078476215913184628476069620418784292823767729598084684058221450404230416476641401244964361655336907631383802733642832363360264563334911245800335682414711959937945540332767564218963656239009664022149850348920522066001490131244709328633638262770663665855355847656431763876816704088089042794716291824343229894003774792117416876154532314010458559026079227822591964791580482103565969160858946467722556281484304453362149375931276853014954925317596771612759977033585446827609951726658237534147010943788015228444302084381040461368045315962147230711311998030650633982158573912873640294234254439074347158622929116695421344832950121170342500047166064944360546410860835602630451348561567149177531472389839591009558598671656067306504842588581324971584176704719543392057202583744771562005545228715796160292353295222156436232837774456056354785201349250358485675291829540669725844444254296659954268503791070006632680590267709619854638360432948563498612547270535837008853350090099035162296374744388199299196496785782885470068644075264547677646999264218664410570480320779082093247729190323149862282275507174087174548952560707059442860750965128185574757162974916344686134811185066161390074335072692315873116275720579768377648711916237194128098407236244018918555758959726686016939507265296041286285936747284271781413695720993099418935064932411993755957188555546549744471883590814029756282011320846599518637375057193187645994184018210389003549752113458954481035219258565508016339161376466672124773108232168409334529953684712466452094378200416490704527239918774099419670935115215294437476158228413585834904862346752937448625967957848123264803745010288810711221425976665087434169077975776169310851097385749295036229688349096094829399878588815121471407133607311725335618017540513390197814006143834637539327730491240134372680516063447993824913856242619499027592079083915457757573238270272640118397440935133944294622311418827659705710680875289039692165499441212421705805173003326647885253085512980237306976592343602216608712319868921445991413711403669555436110602018898031981332440258840892479705407675045217898554947969013130149427285870838600582050889578139338508771405990800453153040441118123915099587562998542240673768591807876270547165092015349751633145890303522251112767064889771624660909854415679152152979960392413383861324444112035670649970440340847400987943041238127188677312281810478600651527995250949352306294187237713936996113952917572606894057501608482609846858342019292033338024648858671075046311331776878608656052522477713217023637348664887978310009474048651263529290002865914312347923319907386304150328286563240966034608380542890961816103249462977238257385905712391899969320295423656424501601553673090551744470092908233950647653622050011250590260847737619324883378716263014623493811802008759048328894246643507859508099571483711098151417629184875448794418205391840939088306603614127340178635516139441067992151121095241705967147021559483597671395555425409141552842216737669926962797743258251246786878059402600012085256541846573112720417561997003243839651696109544539809420247996846666279064346030056356847205419209497815860063713748242820978926324699291963451457184092332426326201269401619061800377164591433380056524403893219194756188917286982864242438034181682261351531873664055091333938643576951029250111815633583997418446093682113605027022870321071385005626572121071486026891139042386620271170370261286422345459164234816440328651270198287882372342026172360320047469650936001306160531218680065672932198772648750917084645612081199920078743719651415098831251898649573833391071349290836324576787373575931934749523824407056382185539461729399875437267169946725260837808470220686544237176851436738233193243505960449888724316140919066273630729543191719549067382877834402832497866610927252569334397615358038698074069417849577742562013591818420276217482633592291887668096026638360582895666573235376370661580531572738635291155863027620985028242817974365830816003211102862603407645413564874235677430798471222845894350000882812370916641369816036165634403813545916428158569642180976114561000545425380525039850283856194337327487014101951295389110412709717513623093390733137733944453240795005720543694492944831449671692442264881448379437105179463758213677747124774732962201260486767668753913237085142654567634431803795503140098209975784350146520746560099228695763056670946554988446150845628417429070017555531283344173506913991903016267139168890960957423340763653538665044326367662253448574537272450278429330702080285358965129114842302263433828126594419640278310811031894995765920676243407049649511364573338397921272927747060045850751845100091238622050100202957591175154772038866701357299569320305544697609349254294677699990230262111518326320268419768066986232928566943388750677442693162931055005123193846841352631798020284511082510000449515636123905260379019809612994334908483531381869974528983780775400373607308013827899245736657069506471613450933611269326716400960953682792131749242699041515966856827855710104272676846022079339463649471127562967420459769936261993343574078552507095777420929296583251467285318921982007851745404635623842375904822322607309834014346600772325910021576639275481990065102464648534869815857826184378304604305732028800654086326224741174530564286538218696472611573796725847656254749927920277396411394091374365334980782214681066568580236597143427444759944174314724544140705488617576948963396838469744304638593653382088373506104228116113969580313763245305366271093080492943787300006628490638358787217449424440157625821693128291385857876940743434271833283991418158775457922743907362211192879684062498102366810495880438595458438982096239724883351953696064758265259029514368499398538675210359042445447171626215137491273397395291844311579256198243772125462920675199937881282423959119084836658319504268777496644522349181272850517681542130132141453935567249394440274014483415944011613937723049411930738991473226488621117674045932441840951674876647770070460305378031655627360727185650339206754023313836537868764611012777459180586039295544885361000558734015409625058531443572123917440661781189244830838825661548510011045267710081493897930589791060667348156511242049695683828404077048636037384993012564457356963200542938631777268270762358355920682096351933626124732588484530799922801279303413390228305831490978631777862369740508424428560184043622009017735212111065088722830815281055203738486924304340599000893546827106136210248449658211282408513438351153083143648154600306664671666627325378269580846359319909252602638009716799466121777009069793148953619590904045852231817282779528877358786479038946271951896523064511643202485472963696313095966046450373728263660422771941877996015017392597291342657653455211888693235986272658683436882659020100011726748309451289061067410728844249148502197329442481285064100784612395457137327227482110714095087855689680123405910771620404785921004696981616464407820560319849807248855127670207767972024351056799081276987282362062458674588102064819767887777473000148972983939625868532641784285076199975463466215848129201507694194766576948859440818565200997625091296740613204331311656542299919596659077494301066893539588480137029761373904597621706109266082431617475123770051801211078509330196345122664846748646704681575448236987114905672959617289987439327243083789407723774718734997732702148631301978518462682148827558298407091965250905813840089656347612302228094918295589129054912741850930522141946936422360100441444397140957775548852084558824850975307544775863594559065651882543878154885684616268154216287561413960324023285218744254045457806306677948616484550326248711499228372675861950982356561983102282585909533460770707879228937262437894309432603740964178997169774752302730700055573534498323339470261503396850732522425515023761396643888089296995434210829680396480037873977283698851019791280380282383464883813335078443902995936434857577421073504909966191712475949731412904171408062730257009646205187753890285751121915658936200718413447801100655095463457019313710280849431680652750213340202335993406492366837250075743355585194405455702373468175989288165237496394036054290233244519288359659661970453873576519120021038412771592830449169746110296125605504815616981557746378454271336257710104965058366562857069229767868705867969397171190138477109745192192507703835059871049317966144980269128782421448781813928852846964263040755240106994730048685133862945860870243347809898006131573702356765951969165077614370831000058637757094824769764608030934587961261908427408387341447491016717335939056122544864411368855383235639040733083702047095036407606862570079693302846065179650513390663878304944480003241555563189134230693370493193671679219422753526336948568570114433825655361500275052377415922690910694266726726490639748636911283718822263898707232358240904549221680121679869831898789918340381320071905305342493662505497650040519818353123653105806420380516661629877999435939743482695592082021731249260121945762190418095108741892679629178615110288502949393818423091518182277528560257143856577703793525175936149230342144109029428415706172760956605748397597201424036116727036614487035765458705619475133744439067047902282701044687936636431289835859152303037850758034995296325235342222959707018945569221647701267240648548946908245158017119423525479325856073273275572757994956233585799747187463769397435028869320929014066608193905277002738598270670668379453491265119489654185472967520711701880783157031456726790209631288314511511911061162615432387995851176171245851188728448176217303425646097028680697739320040548944564832187836795463556547281329023171023941578346141806571766358534242445791932839433822599926522981440832119776320280109502457588478213874919294517360976350289688203252556944514011215495354878722978568282387978623800169773151039100611344351262476831836340432306603065110959849864699493724034904205494059590397611848763677940568699672356909834648086394992806061722475248755225470486331219326559689291769100088677262771003281804163792477942038422771226990923780298477012462990379545984718040902339712887801878323046537839287084773278136522144145565381729150208563697067010100845037311331879817948390396270595353383672159029220841649321361715526226038106835074777057466625503684285572608939509221260538159295434823049929480930841081687498018168274827848474967299027304321442493406229744953094824874483221966125278645544534208738669047046492509905918156069205840247430527018879042502128321379986432497339110281465837719888562729654185044698672020200832174399429622626415028827514447442934360718118173661589792353956613953935209502498395876638916163598340684908041196753020912822915567978351349566177194757387977116708705711696500296033844192725454745430759787015267678721063065110762602652119927050989411598243144952054024505018799525887548073182379526968443651219980357525003691037245594889002522457941730566018230463345395059349227338464011971330533107466053057244881899430758724314350775187380366048315055923193224137805078678277764147168779289302259594552727470214262219635147517279518027764162654418626791436832964377052919531565294781189724305343784156796828030088343368798397195620360046984110637860465741845681646244535656552165577854954904034094027432121230509217121657158865186243788595085063944411369518785752411514379983327278255501653851337507528834062764339534559756573070829957085480905411901367240935160338659789326320647268424508456881954783064302583641184241557432360491883941468529228522368910741672467166260371360602969547681836820935927572841542924225402797083838530248302395172137075097424659019767425180865491678031866618235687333226446060778789897829596105874412120315008522280097604942546529545150949798186909631353597259335466014196241958166580201300434892971092731184702867881817750542718218570750775388798437927157169352213599421359463493360003586609465663763329935843454771998389343850879630840506195535614289507945033818444159407834480187453109419570005096878180626907282353647990395109594247739695908213161309118129565075841532408397319211985720251476572235569877487583678125683977027504129564663869502544182889459625061592681510339730431010508317487700453950306556912522419159409601935450972721136234512266896255706443577383420727048880379579393096963770793131777895507778104689414352940636291760276468095389253281429987545873342243245093554841023729626475873259039964369191775961962499724067685225018471730588471036553357472440116250817057871777323368926104206287452247169288846879869962713759817184135085028042203854736616067183507662333637289552266544047052200031141436272398092698682310403757808590576906529864797646965570085819666827264268564678439995356473519502660245137789378677941446182048822960204210896756389035207881209687608015080660583300699359993308266728486694085590406049037423408584696860521897367541144459174053346741142771210801371375117410767322200281976174478715395826272197506717623742417253163424801358864657326648647945864603111275290434406863850649201017766660130939918259228352813036864919795179837220897130960075444768671979679656959331241215531131351613991486493414120345126980576329208280588321294160925099511740700139454117855386333778373158270784342679727855004236781537211394202319314616222464056167680135056300181403021344319315740429076462077521226437188183633270342787620450569653551323261415564018703613604453198057799802945762418111471448563802949335546870515529711983046154311324571972787502019638043583864914710627754878829778815421709826991152793128618539637442132378721355168886775603238575220547199940218691558668856477526008789553230963864237116228279118346951045256803984548041367977148336407784515996893727751944324719534216963733702840651033521805103493294913364289960953134023369012648559005888713989401659241480248936874559908447754537296769597066336749393375500490643103745207957527590251940470821208995368165958794803909358806841195745423867197546778568355783561192469116164864097417640778169041367974111710562298129111652614825293895795628993560074433678336300730996692375693356602788001694304837193981371646188942008648414373884717051776427950743907113445210755278547346781984099864481710597003569263959129108710179844645030085044055238096268907547553825126199740560004410100673665910873448664088762438844826328126133739775204088993565766328909408164721815210880700914405579422492591836330549501911989457456680334164627128152143130594266391304632282993014018955043001245220445824621689042641848048129029733497176157487449463443522973220866520363898049947827466360052087370403062925261293715004204154380026193299245051296661230709711349081606270390996906624953059518724675763840269836106034831420271123700108372747728616806183228507339751431883330480813665804134499944571866255539141038409294921745726460368438908725971736916653551472587944398432179309246875859442529066428903097430498455500982136387647161945938522878579610813182023623708740495076200575845555684726026210682967043493106555963695207849428668665501498189765033082079136502139727133844219159282797789982296221650995231752791064047383185288592562634059520234066732057204529059464119516203471002606342835425426831324276828404806302105912935091708714667324071267188617327878140735556577775282488073007108429321637865024422852560648990202592968975429090089338836852148156505851790527240494479960862875536176628946891514467611160641076966983745051204067357215451098724631259393259570008919412139517243153314639779786469420698941104772212641477264406120719537683245229364957947160732619632260429637851622198706592178644250974602586284064034175226824957402197883066012428316782083241023770204815776898208008427165792322397936950477101396971583919773775080879600822578323904311357813789955122115745700456105422231858612343911869407897042823313625870718209832539860020433580234861776441751801848438775756919979399360766627085458827162823036006836754591061642051809967682778339466131237807522551789392769098443055053487194407252347836038483486645502640234871577967327678266867523932615408665216146281000484780850859572289523214973494095116083171607234126070921239619551650930537760982819387525212492448869893906290632728730162835926804253569833451147475532827261605045744134007267457669245889412636064331466783455064556407397272326144108307510022352185163355875723265248490844345263717200242618466593110454512870544404761063267150229066342652629191476748924192786422964774579936502306325298096626670867389056298920702228129718851999273983650847469970265141901624922018944416501871474742887593176566951439665010597932343485292360828053698348580713073607150984165895438237648299819843995216198124474470229459272024466581366379637650461271918284815500145597732385110120347562741784882690556788000886633013096454400971905720703682476881099269042994115192651941125041298703345745109143644255103135028515736763195461051717296439604067678399197594362214415000241954834068488409973236385922050303052699907784616466539041972070676882028476019614384626643535319714258612340394713527727266706180591293458628059119343211641748084767738976851715931547475995670566623493764644161931204176698596742385413046425094684118662733837373643927423727871621655447832918680823547270553876486003035619793138121733045675889385844349445353725368026765757384081548949841541528615950615281770569155647773971921596828290652687889802729243465205838600738722387273457202236177520549259444241392659351708118212562814035634613651685991389467145594505699852184177144072067966882909948876503996582477309490735964474125729267831711749990467923931019250259730972253000415828129778416657163826865196901459354500898142035051764674161707801914647962087029997786989588252689929612743317353958730605164052896871974776287337206958432066778423310216472562036965452636372416278638377974181136116175376100066526507689069117545911424691166755962131861323932246321044460734063680607984251581754620058781642414232208963201842863586711706090175020716091786553312822054745528083069914567322261606248801918936287588278184295735390258552787874367650671426719450942880405361299176890113170045842802491143786484334528162635088962046753198820026629473098149362320897908721725505197194735867716039168002686649213948904306203232807172900961288438368907789709680499120152172009971110701424971362627566402194898155120079269362131825254734648561323103465559440597159976315915127236198819979730062118304210685848851364297297850082061329310260603368788148370590243990040949816295361144853289301446675306539424996235652470969075230980155750899077270200506701248599629142265171124430551111175633266516591110338073566396802791678581857358880735413737064102334447849937101741243116319555199213621159048661292142088406821412397822788479590430185200809077634096856595146656086249644569166332119495015672661868094207941261229530612390503738585180057314813652130157085684447147326666713577614791551279892483594999608096747238388664072629982883186437353122079042795160324092742315925399621506579517919232151088878957963720910954815207880048752984914731638377206759582538868107704827964422703069181858556785925314518085387215497294451619405356011559655349528635633930266623002585623476798049905836681747945869408697156112897540969844809146186567231354230437000132082204606283630102895030381253918275672757367195560480949765649744330692079177872859439649698587157475240542292140663753350436047687467424114072579392122391899757251447755315743675951228560084020353057565916142131204895398213403187813274512750901918506817666056953749947405547570157187790046624258925198885249757483076633276634527851298125828497217602859789915415163877269879794002562569033812354872762199900237072713664206869422306654000362034031314218624388489165493054874340910660011956833674269592162216121341015546873105094871928153185893829243907771504504068182050981466612333238244174220989031644041964927601332097234995226315346800787631021662783622669757690233142404072490849047565760539149138765609711131681474786466933491234523917413267146127784194925670838118629706305718019881128837907406368231691396216711730794319787630197138115782579796802855522552363319100776973331742790696195290274483204629296292885754414708345640642317489856198017988997561895338255517756383389531469952454859874402097301082537787743523741057061675683581078137087340427363555332599776667822953514777441649206202369174855959199901622393277283707051637306949185863880038490955330412136478385918699089274208518408455222106689526955620469727010773191355664290283953399496136524033688198617063229957292152436037960291140205370597700745372717011233182033796389092563773562133326155206475319716800978017616401590165359100413351858101306048304109771337560430420996159607070139173726723242122450137586677033859251426349219052637497784630735631359966563746454667011042806059890471311975314434392537941090007401514519841251841241813786228073521961399394498149626409646740579773751047453996134567183833565644263141821683859398215615237362211412200810949347322750432583319117020688537511771738217344590370209588787024705272846843691964451492814330620628889466409320243166150022012724008174228648372133295482825646063232069084410202385552911004303237617484563456419573037033900118163246894696092976752704143117605707250904742759993266690770498257642548692593815634707984737632855893372543938751271373499719913684576270426843769700159089497714615583225023168625845511587706193885872406085239069294112755616246651374484011134722953621857681642495716388192452260138657051620402128773051939899927881964571009289271369415633215675567170997213859801887202510689245531355630930486569108891438842365002871524940947569504589129354260362429888133176239671790605010823894596962573825785799625264317819443457569349235815998035196684716793096610775752545375469895124076266478312388301849557519433777034873304302574548574807503496962418283317204259219223421102530696385102504309137925720336161510949019385757699689728853628983596094430869990798959503499178402480302766496165915513017219347553079336087433735509260085925309266919994899117607952393623101123141424589884529859730240089857535660896629552393186952065974589126437382526048195219439321864574230661773075270361358128832315158892794581493691812145273714376059717663880712726804763114370534421970294050988409842522212314760517332197848511743348738218268088602364221320779858287364025303850244099707951740166771388589720282337746892112682651820507152011662251901053304260053302255871479446356287299676100757225365537133974004603664354219862187802832851250526103658409872587263962393505901276854241877810202631692390075211633617169395097051991770126314835443864626510520064475783884949167493960355908341212363992196328617040444157034665706586536535830330988825155554369878461956115094243643305968649735640807339921338833888290027056128530707818011443007107993347409002057239085937159298457968239982959121187638595781265780414339403151224683989583316152084037572872067255807033542374937265958670664076806709468249294117762930781452840852313435054484905115216769041324578853652190949292492368559963142544289268876796203537280603517753126379022657240384006190727029388593927783432788294926029124652031416980697982346864356800398317795227668982480625956406335758737343054652189486257455519327354176357410405410530432671236123794204426916562484941294830579784840198077601031141333898285613055211092939118643850612314804129180499725971760529105086795189567415480534008153475324114477347328404775231380827921672963074001185686972989030703645365813377885225832205091728172243692610886612474587320395586057966558317084136759739753683719095708573456687277924559415485523041012790535906189629589804815863311949484987423676678187919098647628766970364571207847688645938962021095445418078337679403155608339283519978506011089904724898552695892847596473492387959515652798890405964790322129932904678220198124269915699892281970286636628075913645364205784730835851500318292122111980017296002157445378370942449755586341457566745915037170361327639523792405054704620869726037218584781131132453574931016446831525295963277784382376012985393430562148857464294018215281147653673174138880132983699712007901020426118131003782023559988796933291087144983970182625662781313127151630835346034043372887174427590717800489153459930799931586272598305777334712381925810907132931905502149128127166491288920777323461401950965831039581334207354715958829233538047160284077666977236501043867703373423442587362502380200015154727480588669146436071879629043503482470148126616805449877133162178414703909356611032848435929085045952022142039967899110167738853698153124999627643644383547476590731213222538860543887948395346890798085883843776887878647813166978842154878985068676568872189319535150397554204692406352195182958583925878732814155790359023523470003789699877028393640410414725492253802989637013047961822406353564549263545691010641455634914198638331254667057233225719576255207707784144231391253832056554858033847713269838659969436571243426447906569191763645905155331227544242083649287517234480355734774360080864766025500980886173373264173495981445250073278651279380317973831864364027238947359396704574420803732359856333839354043197577217731809907270041099909617070232624655962266336309597954986667948883624792963472220605934871206104265257865107243158227372704104772912770365288806933047956804610455002073552957627911972224727895706066769887655240407164187656889833042367411520969944603739367253860511362290396921829997869692913211498713281176091081544462519603009138190285197821043748427063379732904179852751148488267291179172602553169314857093163101874491152877274646500750689914631013182523750502676507731883296901340211145507780553120086645682225071462198559343482436071013870683399517561573277782817477403893437349470781301429299917787747944515696426212018940255535521218657783615189075722067067860720294538874926817857284806216595748225193764710112925327649748446636880507958929133181264672933385415319080874675129146423968279203949662569374848462936833925503064828613475734946409823276859571133984810431540683514725587344411906153258258336632006474412434371326346099071840372574715514432589221718826776385895733358681888606367795403504678341768240967856118377775435752010222626798792700102842468285487342300107126916083241050125842220660573104261047885535990408231216192736094448794847157894200604685882203270812010145007890841705055364482620772327094195729737058979902000108387753320313984053536548936829920587038332957255926953874187704029765516657156222659791604909901743696582474767611170140929924921560936324008551180016184185590238313801234711231450109534713791913264587156675370234593123937514662894653548392963467745139828963076778283964073145717988285575686214042924712421357531123849218574049673810823875226758742553445374533007371029842588219382199377368646424035538527132578261187508206841162067224947487852777378839645487360253607479418633238834248533836440028459943575012455055050564823426976507653224610981104024637636136910663021754578658353007543768472391993021095614132678900612714548319241394888832962113740480941116668389773515567037638302342800194554732504923623635104714688935074970395365539682392430202732812293480938383124038726967399612658421411995451220693764130896892410859681088952524494438028082264434975189477616927569834528788524170838384464671227614276468441462471626371671507469684835456891544959950882078801391160607651307799102369929157537695073842349466916009691051122195919991294102295365365582707074807476689579431399978671575338424680082470904702503845296334427830168538202440722197205615122916989347701371957710123409634639144288511318375600098586479404787061979412343704716279512679496817187918966495113945536499321682119199220123317149107318215216952926980554067984524149994270889086307736348052810158298901688511010236616476838284700473428941527721798683277854789095583202890663247152922535710305364319727444796039850565547313064262022934532988093963865101956060973452990121332228398882754513865622576537262195654098765664598467951427514467933589814272979451036335730575700704711674395454668699009119901710544357835786199502325440965600865350497835715711504130397344879120621259749936787952455537557004529354955236839665738105420633901184865930835136466285444900600188266611800248501896183378689512423804884870937778320241410580074991062754454184476243774219050727555322515274618246534142623990402953178854146806904979749708222029283769713378402927201183607463213259766010532333300240518178997573714860421311330991898706862054761824254489034906113598465837944799902203931302989601652673326551795738455402623998882122243256238713939503948972781109637522559302284020199763995420716554472495003914446923691396164002325697684410997847738879202436077146723961009823504600002291790696810934725867670933718931478914249842227468307655667319616020549274705006716325808650308616275205219143858963578691852783653472651441559487885156035799463719900986738955105910497309421753070789821202999200225673112484716105945028633806278565398666906948938793287183402174646454684463915136583280710635496239001784870388174089259876756905442557930577529365555943489833962744251708208408371969967841230960138819185300229017108902309567877050456477892629150169790550347683498093348766534432732516935807175613057381726778386953057522480931501387968056388419301132163722216589100722120426840950250161695467474809066837026602680485008947811719289563542346978004695036693426347796442170563014463208592842605450621678607542165093380081186161120370267237124094646387054539110213494252332764582664859668123016249202575121864122810716948578485655876382081950125006184229318156286852236887594065009896207882870752696147224526148769739753977165720938803506534058158571987021290326552738413983443272281247758270827340115716063597234834187831698155487487283298957429838678856487953037029612249054796827634191446483808163661676123737105454695685161051518583769769237228884778114198128800069611304797652973174690109939065322053601249100579044950172700567533758322166662296553255141884894461358684231331665204830138218503202655404949728228923598479395657897540228027210170297753518444243852163469075048171431555270258878360364630046889021311426198033201674890109251424234607390279765509141929552751607628475296384133487513534139321074879686405034093449394656213788612764157898344222091616493280582862752027228562797390698343906044032361123284569980536840236793254134072234420622772735211928496307666938391924303554269920856867957547509616015950130764284977729134269115483170084758762646641392374876075926999146071325484026615766757126596991873475621800420269560823498619905735272344771752324255194216244657256024184600687601580245587775963869606753834761885296294598852096097055999718031937573523641184976648713983361722046589184487190895206817945263279671291737975062151925126651451145818209387863736624548162590774857374957280563091494732085803760144725363029973693408094461644509441754985994139478284438213004160908960285734208393252076074650024754034813967413990508543797071597604082085856572917898727849733865629915725277026682666128775624169611277273297385762478968253506436130931713298228816236214560765578950920402820571960098762413001323118947312400036446003843193025856213326046356538736270737542919402443608612242847156521627718976793712329466218796916966479066120118654952304948981489124876168146411151524932171702023203339279714860081720086387835022320753927669020341816324929817693305933821254324645564264452518680774846182389169105292265389058980659721541840149164646056803664215233452658088037298743138446874304077417313798830014119932685191624766101479164989481472057841553229102073010348476736850264177469352890868099448229349102404961637479989775804715349958818544630517190470987990117376209910907948641062234382883509590831400720851690149040264059643748080935035929353107308390355066222470321837187924878172425549813043626503227431348677661384893203187574924351575166127068186255713425699829937458562140769071880619427372971414133328951462947265811614170268719540731993056691065095779375583748621763495968308992824551042089149208447757552882186532064317580416447621479487407219940864957447307269383254874543054927344856149138495065099733051554733341357242306132635025977441545246536716204212272311847837574639998448059971351934049747787341204682356765496732392884497133124146796435187530212634988490415682150609829031922613841178714016893478596227298113449911161168712095290735913024539390371024439692660931168786196924344806370403416664592144928667710414249328941158581719742713336153643997213180770790134219647956788579695250698234711732073214612547916402244274160941891859349219076769618480579986891133957454753940927225403461409412270184953637652980061115314905965128803478107959756697175933300226001538242432838486522312990002320326036147231385731537071085096335636040703679753445217644450772317826045501074157789101760590186086588145880653689344295794706883222068767485510799247634962365874855801192124239118100021554888187108551006902920352414554002799462496962599294432416658962360215327884710172765321525871141852739615612474103666870962532919875648172824933044087065394208752090977331131312170411973975450032427552425248486106770734602810538408664957909585976043587632623302556224619413221448557585715682118334681219954084786857342441803008242841738770592029422753687179936778378814619308289099009154188071154433958569726546509670062195690745909343495022609036623514748887260388507889201695570066148312963842181700147725553067464754560723877001231079864474215302743248174182858166973757209508856750945150273539928133396535664819010693658133278956982038403199489830577567829762155174907373044890362069993193078887218856768844165273159414111153086929831688795396621552949951234082719776510960933640390946249467011520940520954208970920524509486361032873897464963246662542983065847307874772760522300432894279092051629815743107427792099455747738676922298121739444746904525286033433483090403529781675198173836113338176496341272832203923200672209764122748347571785092961122904088688539214405134686928921617213797030992113000545769099386739382016584314593389924098913272856845325298532193061673292836201153983209047558685489753013774532920174853348565569347962414360938059153976968733075631822465326626091094732786491535988912707705815362255898983669966257506472238197091107323580152757861966658829497809406199161138132820261516537147144556856434987612428851027708134126050538319560388054756882797438444276620392042171377371768517579237127123314129322714020593146597558223769940152717383923714025157174959028257636042701030210175073799272144775514940211374538080986326681326013370322507673886314051239678058999725352109565252727951848366232695322163149224338348558767957370418567664523849741558690662132590249447366806778128160153027142235444429242291446125524699755213649594092013383323746803818982972047248538860810076110009283388990365993793514431447437759243115700794238847194594230804634104587616007970643873280139660633125617988482791847882472682432032529710597500191121313452705797624705406328072218823872920805632980833680006707123968175956864572992047606335497574525282259242723459575194908980659879844904283753131163724739031360083452773790437806965816291037361462680589633164481029789676620925539807700653998002095947535532294092568271085062793984881274703622251380869232486148702869189931551835631182479289392264485912158703809405648393384214503370301399122455035783175436477640003671777281692223280368248436803678629717262415890761718526901552430613596189127304126939764105899229489904314206897290466274348591903370015465671691591651241990136952949936201774582512746768460457793483723384326781278277235642382856012073137643730595438000636489356791679726059202916020177467528311104836050991633968593694064409660296508389987494924958285071905437135999222431382887615870042115215544164169778268410593244011438088121827802119248949397086730519087648574021331399240273499000032509836627702547464137905606188898957421311171847693323433713765108536682843435030488286322378435604448608299502004556262463665590326935784675881745666939847984582179901471307061273128574496385151576111021190773235419068474721878724422761502093845824349660680600198461758985616756875122075100436986835198599696357745552539592119335936962422229076774037158998904841117412646429964685636425337778804309683177062730200815840343960344151995933710256187988994513378159912606792342430933153184821940730922572260091454055499318845969858001846876196345527873917399847701346155682343665738074888205897927498957443047208858102079347078636296539642551399691481852011436597630354963671034533354843337014544825925161362145987448262677693934405500551174913317352414650345489062906305462410789894681670856022986757274652547317355790522548326579906699088521148576945597091348788557136897783273373603321043512798834611632116208920556607740819571086891909528297391480892513108840278499235651451321144072458691331132029528942721013000112651681620743411740700723970155310745770132111285882481606602809537922979193316427617050881513829292222817779095110849460618886966347546432617021898066287525964100367806392858725684010482666674442486958826329173222598776527446175044960137573787247799095730391647008842674111079435445563897878267344624365124598530063476988367760883956435324054255554799152715575470329400492524117096080599653094818984237709170269773304332304928023370801380784003388871191547622041248572611481969334121051181275103879288527366880364691053548558364871690680111024476687472802399835479877226433765046728061149735934969082582369576856408420510101984416357509992592314013098729246359975755604798153159467837592364222336522551770138828477981013368212890996774196109913219346411005134109569657944441824789478274025118396059203077048656173781872213446395485721246081840079624880212694528906752299703994012030615132743390062680186876046471334953618841242645481928913906198601101863411533101849293752727807046619858977201932849463302605200282260517414967071286225712739386424714249643727274832848272475175021406436241702629550892635141187530950805999440069561572717132660067242398102038269251127997533146523537172029969239006109164237066239674588758423001004341302942307392697433205860001985730770885314408821547624008433699131404721189713034593873677650693935039873852304428635912288274960291554435531431415010061256212538372509389962907423629554918568493614064694292473444298386586871372160754032194469019475023916118175945496264135022991818319445617301464098669581124333703447191959303825594396152188097437935221029729973768723047633990485711594781978753668692477806619966350699591916477520209589944362875879065864383211662247509077251045983830167742811265368525148097279660376184797024241186870220243304163189561399945464568069905959328986394187101357941336319566504080135394485821757791098261946370073285750944885598755631860761036994091039889373964268343150034181064665732768357976401409643188574676422682249355896631957538636849685606916511225965118025685156446071711179411632452966918295098516475227450953410464777716778776152637652319339231751397247017631839630583651436689016504827777244186450321855814601608549307122878774202574969022680309348190522515769505327076279016694263970092689658191478880876578348966949202338745156112083672499054649651906329410451580152154638931570547717355042828084562575123634393737238478844230425918645459082059608822185808766876126875800376436324169777253476663811849204155185611580725548873487558795037489723192386487337212136535312879420018138492271198366510157345594214799997727625342542266820272017910409842919482448298881805579285377598548904846837059982305319208936090962908611117322126898725527609505004293188244581987712482458894634379950693963572146637975781170256183684073223831528780707826781462669994619391123557110719506277219547915391479528146470586183288562921760467023178792322190498187700849395391500293333485867051571366682428232190535161246492322618087262647699746121967592741351328657753842185901953617931034959318531131384081407158750996060113911862573388549277552716463085326881497789051845014129204221324200222686272149781464905496309515276479074230260230913852963841357121340743392511252399362122609875550132813799324469235600337361498968828845378847944064100767697880825288491188759815496681647211777533361266713245074635420299742732034486833885777744235212194394418600683266610372992213657885867947977432157992799080643282140665373916684887111070736330038840880657314296403524428510489992119102691358780567001499745026716287452728207951718501631475961625091213525031271971180392654396466692350990337517582278300783034427653470313616582312420838284811357135794901727227001946603897755447070056379521296243732063353604119537542339848710560169479551538575007494612200412881134812626488485705384582607917221799525650808420861982724034694957634324519612762076702279020023071944244602291387409009296126203313661456567945142171779112219140002770796056261547063370043678446628377270042162510226318953083671228270170984570982178024609551746562223110924027214121767419351570918367575275959848809983842210040870541577340075634766467819184982198452990119526330227483643330062711017979763078371760484535169912544348144178793316628214724676825930406482452334883014946988015589888237727944701868031545454496671795595638082330808334791635525893988505435005175772493643135010367619452305827792821683465220940294943679487468069714376312879394827104114049891140597992425525769744878249626835811000861089062833491443559252971229421499287855412509406498672284403873241910604137552814848358839307268667772183513099222862063953725970709190614263372427258839205720415848416078897629227048469320887937520515324846870698562176379614077188577928725212897356442558957176643148962662220873178229606733467675110758757955277002988611832982529285322399658172782918104411494199447500232916383903237494093660018662354760731415229182783966674377307730030235840705966813037323233176157569611740687221799397129373921726916297608697651920134345462063238424814400443360580545563026385763354780972297173312330676545954834167992104925613777527262524554615923182093799202473351834534223665137420531646597344751218351049351173951857301545429362885107185753551905852977415560970189042177537022452981925794145768786244493960707915698677856531042577524453133938639093964456367406608878592797026760698408827486777761339223148698196074162799773739476100035303836689000962212759273031636231738443327592066545977408552913878161825540756575949536222626994223689100752119457602090343885828764752797884497562191678324298594208757754883913394306234857103347223102855732501219345560002391409639061880867703065919049336983240126143457221533226378217061680732158906716201504542411376804550196801929949539974526378235087159505249012750539943286337241007973260410968574743207457939726165522814796880417256296792599397097168224099311463610588789031836351849096722610569564646514877342134497861333363054385246537477907765936305798534834448156902791893509796997645091160850655690353113508393390414653663313231162695508439968559062931423320136742408855172430778220395144653057407798027267751364406194019130081690986674729703925641049185787255540282358743651935419583361375578982209323525820957192380664894707617565650494308537479870744409358511284249764374532655145595265204150941976856125341301087620974587823283165595461226056652734411151638632230069382816992706857767095218719970326395583418223718978188463789896585458089259438379377247525149168093790626380384323905710965668172170808721672072333186946587267744992388090209351418992274582629614393186293509732446153835128732875068457398363944048104029669907368582410920703474338678988832302845942677865316561365112644636107885204381171786538425025857882018717653355430285778136359061364801036896807645245794803359324422921283675290086178182659553181329063743910737989535654213571899111799925604656733299949542940012807008960851035867241441584439821151793128734678746124436553484506200947035878705964823367728166528389601481512046391531966802193514681143985889476127617323894965136955864713138506642829403198468490270210908532899042335872154556698949564081622083746739457458785982987199752405115424255776198356190965313740733885989362444966055196732512170111427230092371000425052923180259891919047890595583521680884244800120330479243202156018820533438289460565663729398020965148904307164124125716271926976508594607877317971093469579275686255780665955348358391090377732716579869575354225315311054846556149413922217793097074099346644116845277834676603398682979931728272720326311320120241336087582321637509310061662753586356076507982876193647741283409220538659279498669808712505494940691382936095092042129449332891246811095770264996389096395452325488789676408890646709413469499052356123380751107217924689402729261980345342058515849812778935998742150314376607242166896949584604776319467385636112491385615579506109620045807792852307103316223418688028909209257335443657155850727032503557171346031689240409971628247076000007884939743275433623484544192925355793845839023313188901476407886920959271569000050998200577383827724143000642260300135934207951072291290741982356875958203819147087551801088660860252274499620134207325918066610517025401394701311333236860973113372094085589014244424129761482326290253246291292115028549187030566409727831029016580675457884392043525890785500786926993275428809152606500998654964601693240976001800288254348449712183835133175608498946575061417877522641850024895482927688793618476838068134707510670953510041909060875504555755608577626546189758575076852284624508089070832227209693812287207871376279978999617154647930582047608486257278036562015288682408752770818431675933495640605264012191222046656861464321720693413605830906187339072031106995586993246397847531545641010996041530200396119817388049560958794159675990825100714624928992346296172925042565662425444748532441759816688768100317986047003504477000004490114188724387265165596384798834583799160258329572548084184641522449744655950581027873551819811119362829021151433247954105513693841701828648041580622460557646020333477806355410946757111523218662721113154936136377364527507836057719325123342607040922022523344312126393239325794195015750250537942990908080894616790923464492489005357984401313607372915182238137117468987586148790837077478557034881354430669889049980219420053419787068752571669709192269822004039111207433568304071911388140113125492534126821844782584900291348003349321923016372287617817114897055770569445996927189337832539252964823324291851206228628059236727578751443715080108004069935268033476943076594542354437532301611978707528220456523873689377547006367169618141421420163641723097220427195186300407041825692492516080276213984915540422316570155754551065127610495268201601322003396039598545929694837450065220997698091968143567868256134790196852845596551186421161232028483970243488534629121358341803651968291841027006802252800871673824085788481401416629281477264336156670334293448753431994098707639897831742247500980366465452143546873571249654986068114506167446911345348968907422448516429589775496875561977770046477236821127245411207390461691047220334547848057673012026306836434880497772056965799738923163928933817554388699847817946446920288863345053457587307957437357363777417041436437822396878748882296974550419728277674234421164493241688666068177851289760336504492276044557054751640554772351552117638556769155803713449728863941906465130251131523199683248090870815793667957888981411557501650217612578463222696277936240152323126669538702334073291304842578194534342233841788982671229551631580298150378500889845369223194131854561589439006295865228937528515442264586292303021283048832594666549565323212409602629901507288645812690020459514226906647411524304201993114950338972085617052926046913094092134851647954701425107008822311396499385739361825219972340732008882295085693258102608273477870204155474166540792255622630009342133329307767805240648099966486244105707558503524281472147764758590500630126634782689782084232603960313563112973188504988167047440330297928130051495734680491682019155286518861940672315805149837384854137393351509288026299467419019296405814620252844929739416352025288786748843456461043583100273211557122490190476570561309545127387873548993305414741476463703377215403031328799526725554997255072317365573591094121264695759708063265227105029238625503007455140523086606588589965933265069011934791603167328788506510269816537152643056104767136803171557785990912604557542864406514976193787628239576410341981546433875724866890319847424922992829810079525362830275432143536485796100138125296254072265101206832428823645883679668913862588645505684286442612384228806253672316701119805700625064673533934572510178289977373653356541594326936919891139450502595151341552172918468278352676507674508400368174767522834692772989338389411272345501031708516684489191168826644338397661884474351683533214626927558966760065124521216271954918807485989931513773045047081107194203958333889192559098831100008846925302469225072691978662975186541171133899636462424133302794533891207061940452131868274048259498275745178186510707426468446844416848740454956110974999475507873052847264717302923123896328467056580526405886927188200064468742872752083664582095170781234198529987767904711911515380279383820610292940810184599314708269981412621431933251101728080862026288868450761632126661072968888738811080211102937231011897665736612832943342578216754162086863564223476753650857496238745064823884397683864961712998325510359220057560248135188689175926606091663819168321933401670914119839801759886326671513741121166040557756205826220762296024819410337455827074645921577023704479868307182509313289971122575279552114749278627989576822069362335535885738666656299852715200260878259004644903800198108030741740049213727118955124438845104445042198221833313331758140017630159055957538997252165784185347762056771405967830811283913416597519427986058036485660716815770924113563657419695337314784125557985741797332564570003432902004660172757549672981957800268680558365721478541171995298922350095463574769526781788915221869159571626531783054623568942007653046405168451095444025798088312598306322991223081897339991923608032296034549000696121320557156189113550280322090593881697895910454952042220920096074264246320333961880820304465665211804437549532311986469161412975725623995097997558891213121902337225629856751158961386531233035767470101374025108387984328991406334587403008693041644339748149951431614443831362605701555700914847523778792455498903703498871814280995313728596117942845314162630259881183583175023190531615677841361974160693446385088818916202853795150812497368719916758663016574236406931726120812004031837767470779109151099322248896558536570086644986162575227088275662119347534902765434115193577539796632804750807210265506999222132769597064633831768748625989062145949141216617901425130048957387015832490593481896122143695963381883653304137842266207154904258316502987524797584582995503351826732027499935166758650423893035891125781713042571871203580789364083861964895387878924957213575880083755320617241382439524057344039477631086562780002219660183613209684256987048160752401464319396527332500307495912810508518242242319457218254442346117181550945115504665045848282282843916977714827166783175509805490052137213836417394841820674128229263295797215268009872116540498091833231956149392196353788942404678559028267424009042890980892291992136535759514911353549104457614544313845462550326939821099900132527176654000383805721051358310757690228540182701134050704659969681920141251619187138153879408997342214335292271843530793764059887258857840759132237495835323633285486309452662074834086688111809603881376861061428279256335136093406688901322292514424258862028065579212258792196538826653386391860384420971970794733361227129795316963060312980449499135797927963475609753713488693199363287884743142685401437436689492655887456286230727706939148090668626440721903581407108777010234150467463812494910153877624275164138494673958850845779628017205027756503685885549767349327878284957412722168764980040995477928150994434049173058539953764480678137007177851948932093826408007499616000192340918953960862302195520879292452241579556046265321194801735039486844577329472492562965995195391653411140657419947662621153449512814142506974048266646762106588539203370572930465942410739099439701824038322104921508566332574809063107160129491840042891925223982489708918579660120617557194403069318629471275110449383456719977444608504720873325150734504844132033714459806527381041084621525743627754447310362741210476325082433933796879763318028735873395513400348355176065943402983786234051093903878769651172580344746666235039417855418108798813051537666733871311138033492550492048135901385673222648984200358882731042439323105652950088432693404863532912003249645724784760127463130163953445178851751276024142710781500276033404828244507016410114533309523153527700632736890242562744112620195860381520151241210391662260828070444353412916144019547257251055537400826101002750611713371629562880758765723527711480472338013363637822502400252018624403786428634920534486500960815794508293211207942586437999375944913079162179621215282413682187429794511932225176283135431577378210321876389931986353480876892340259634446027813072838587351859280217070089949160607515319174699122083512225000842039269385969983334014526400807435387485878482418973681681688988041853196326475666492781879996732063182427216995511698707638687717186868709941700805436080179223658413745978438163140753934109943110366722508519798628709015895550567083903214569899485523673366256746082857845348711119755365696523655471896610497963120680477942685678985994780258718451041976160996748007003674404014587030289234051712512868509349386141152311558109069519722305031911477036870789699368774656667916526154072409627150965280331570427361207945041612754526907840933789873092664763116055845117034807206189459117596405873604636934460153282535295953274673900742897476139748511133331717891442466164814005500734211579727919969106362722145928174325239793455352994362596698431265206217286651569953022448123743414085992583996325726248806342628894447191354182536131380427680862508484665202627333102667076903321097114643838605037660747673261212397060426925847382254782096299262794136687076570500081375952563478055590599457805505105505346142123582446135412283835433543194374779587494914634397765104178171999854360731003563861950271297328893227138492926102365191304205112831719359635808198504557317029824421273899303929405201606774752330614488510717748291699485386248843671191251783244476007683921201403470647544917654063364638587124354846684456503727676577548301590283322583374368117865854287301888160193135306495183248881108807867058977862957567927415441800334199226038174868422279983790925460195507336909212453089308565109579147019080670616887134899591502505398042466492904445277145898656913422633780371012553195584647052336957828166035551040522069909712239019546458153284819129898253591729475948668831213122910827347406433483627078793326814069567779062570915884856638546277865713367837817821679925396905584438135323846837059228764955514648571255369717438473260168160145062689108341627073770435908968187998340488049001796833234128676820403547524153365554189000866184950727647662989321050251243888008911367952152917368673279646151359075727622689072692013123704153913562229702504288061980429154788425136623814539200681198168342772865190252907441897212981372741956161104636760295937611833966967122667681248988183725503265966416043007032626353904602787125527130848544057137188199368895758203730414933739431501424544519326152436053906873916714792131333266590206554997120500203003969613617078850566776380233131799831003142386307036270835501859596772198402385596748279346943511634925583118950383489583807798845039895977819571162051020784717609479765988623856331926307938060174446683161275812471330654312330320226707788049663829286489375258936455086298952079891095647995053541091119877348824835298631464684590394313792552828363233137852644174431361397515361943461143481910155196531076454813830734725612364328871814954143629552374882813639043594165101341033267147561409757803676422436765420529236772876750021236577584312954524180389019581918539032623098308836130030870789105605607029250674491449797410607397273277754952976583680803606794285276039581898790843659576591281041910599415626488060721176886455621066896225017022207949322412369660823375900621876056187755455531772088130641811889604179082104605760573615433971246243452310202426135208581718492580970863790212802780010214072605332378610665304611857674028005914965267677524418675014431198495151042177975496042953090266660727215729332644299403916975142201514237120798394370414578233986727469263141540067854220789085748936268668660720844728977753204081874271999091735718247377697191097702883790705797841939859777827785941120009241605396744738568545426307024561506899133117836671297246438064900386713272656943698822776103661878153915499983535452729109571933982249399793292193524146793246559565950746607781502123795433199301087334501204846189030050809715034951482505796129644223578816926484836810585017224266557875739447290298197026781741556059219986462591258956796622276370663785786831353942446640062077488112277499228199451207020111915868549933404345811033784900837602428453047932202875306203367918503272913709154517286607775972659687923890067551094387819813670002265747191926430826553039476882024716551715003588028149622359906007768615809087307023890613296739864510232531705428898330304183822775064276699161682039182669336936132089857714086984700326099661279797277753642064711736278610283544233201711240778115456797844476239151855465245525363147353972541883147202283691579169294282869791577754391486751269089386440843118989317714528127776825150102746374479425143908433896514501336430102892704631218584532181728058204052660237803268778605079585539360637948353089036433732551022573051403526545663747999975988137581723379444230556102769053540476892076504996570302921207317273505939279880192435231695889619173756791080336471057915675179576548878808757751299474277855263720187034027420329027559298271339761478891944402127105154355701220336965529056218412279982862845856606061831766826674610824190527794825037875202430394965990321123078134367293087736526292519157198622112766739020107133248832394922013010682292098365396983544831975708292002849212836882483320338927413733303303698946162217291453412454422219093487728819955688015893613517654935976679115753176175030849410262340594973659766257711694919365517606688412439941473345883486301091682052231616674281296905188181080600938903747987648941180236825546458603329436456661773024124761471328527683389593517351589084308726244019246557130747821660451442129909606678735974468586060020666714394943404697581806055065911839316155025883153111373666128619266278360716083522063068671905757318186806139027694074129821929378359895838957848955985982499729913706596396806806965415301116242620245574852732851707607800363939802133493671489573792251034165990240731216233624283335462264521319568241131182850970092957072162135752879287227763705236571959286070802118694684626418457349808957067954269462101111104037723319693952421621948545630722929863183803703031118176792929375641022681149338186022216236184214094561599479852165458865222137237888733901953424684922654369415794626222936325301502550876778056001828951048292033941871105269885800478066791891354658872745054418364398039678647206618285337218533971548528320379163168351953107180209591329535241816065554092805330309297144961693401268817363571489908459768060172510287591098995262699916448367279254689283274821645969609310273408737194443831832145465627344188953877796392193931656178971165999835759295177542620679983319168843833392102471650904793458540662221336877596702963544353206362163760444700149946060886300301432626574317731560302572799932677894594657387361713496165276361062283398847090608844655059863212809930939358163850990898574991250459295053249496369635895240412451101843200821782418611466954897748923090148920656311473736893039781670327755361925589814606898551552207695480040428466805712036631781778051265176892092462742956647783293580515663342593420862205428136776358039345950017191606693359112830402573424523207131357347488541634673299879616226557476710335478397396081350804022770364043203605847938908676579473557229838970901968553568820729313838056354885540528389520409171456967756880314088756454785077556507901341583524607225755434588987654139159526870966548842846495757574207100987632463889561751373263285189942280138237070244966300334480027340493674712876950150459893681558343149974414155241030337745982062167921785114346491358668477310138156284104634177596480260850684000285907401568568005764112487811017657130938357946985040753454953814769501421467216438909382255448791674129052347524980158332280623972665727611983740125871979008190583475550998556909476000155010823923291947425793325817739208014295697243164499288603885324849493505838326557354921224632056267089189080418597914914727795093315764938176231967672198935241118948888769165795345954855141038954777550360761533323611048777946515396927686730079907669025209318345962410799943837654230453934906194689348772738096086363950133034282611341134472061466650413144067890970255346978170892132105489039265778981179457416092860744138268195406909329880019011304738739030650632900888969606634697409157367263939681485579784061996559034570689136539125385298173887445655202527382040269058238626224278678082075148855465719705563584014923815349754687246175387288589995049308219351962150845915688968348729576061803528332519035461536595303810979018890013289045943757872666947349740763168317931857351488452189256463382085523449069810709075247394048558551987951816942641945750195404524861163607152615882977212248578540242201789931213009449911182339361671273876306080531889214957615500333823948049355552663666906274048591605038693981848907497101191040133386177311345980197861988602760211179019375200526365704758915485430890830585262295131339439597801162010970439030134227375998783849522396122411824894506726735333965677571511930613769263652170430525856598045894732663176145281135992334514635138320799850482589655510682305522101125101261152674836056842349669965379270256977714103954107885998100083068099875201051355230583550219981053869536928055911868973496916919388729224160203486088333439219926456356520262844049576059296707496275843328885200100179051478467454719951953942326224228318205506817208243626349529272979867640487662883274056564046121422425751920038965878017162515782447458765451402707688841893959225512085900918220228540907738994140630054263449470288781173898943345434385541836167974732081140404036544258111699777442164345197290571489162298548361877152090403647225468021654864546471750763987225494089389409703195213987753315375020128368539005953981587753273782076292915685853644364343588156284485659636318932006752672725636351222141017126366118995733733822286090346331167747508069453033582181252564771385659008282142262634012822185769383553980484371339365931635422569503281344772783487910471292390809877337216460222326486027754849774469298953302276341568122522194801248198176821919968554980373943283487621547094781367294202313079974282773118391821832435300972304143638868525365963767973739451282968831520752908581814457639512401379225055673554841632086084194767315840053290796628447394208657479493544031486850391600962656972713674576587940001174513744954615886792972990344434535804129927706397409664116421700012260167207997956934546806139671535648714320701921205288747882696493033239791837221577090959451083003227175226050472013103911032535030793921841739975663707683710763976394531522937407987950873220348842807781952169480823810472255522977688788735199399241908023172815117938755584433105077335762479011203082055702018143613622823734661427558037336548160380674917954533884236314083769149466990638200560311007018474921916878405962665587325595847970889903771921972490580565426942659498890253616823277034355276990264639104091546340745123770766009256135485587649002105202755944452520569201563424208905686339021504933689452998208635243386284654075203119100399841371830440526844082904904314519213827980620963689839638142376176329635734899826991549001271131441830815634077346686666513738964093115160109584763450794163574440588136013723407365734729962967894183277566647143618397572305708241603414175705237475117628658523614894227394773629785164591721438349569789135684948509485286147311357927979637841493264867814758405665301602741574816367243392353436098133455850132316149558397470662375571334061835203783144788523045548376362956784310607521979380783177763683668116474248216913662558014375071418711401484024577024204264939288626756475421305662861839610534743885112437578647290996577952402205555279033819480207052361058580524125326072411600493742081314476303415356962968054697937427416567417201087137633042606156504633427746528495723452654375376353013615105498389017787267307548853839678831842378740744040390274832941568845211236365458719697144736151466370355562851708381999807173433984899412436508565905273325830472742905405000367633744370864054653092796979386814789347030396816313050808023487163031737176191139718281685173506981590709621514810670508457487711338980748661750633932147059455957007031405948647772055321446346463941473868744461506555871723999430204009610740226907240355619458827707618463498848245363602117503571867334604626633033612396114552530017581280505994433526360086458011208959426054235190201643620572783823150767209199231882940255589474162160504454830418563725926961559605637120748753365750474666102374241521233321752280175977936605494075299072037753788698442897301948249238666352272865610875877051660658416170367298095646269866790278131704774147839641311605221692903554188417338388952708806133491780499794800249477662332516231306280502850629143518791600275747887942021615169469410881753917409054390443281900093604506509505433233806571545373944016170528955383609520419784309094389139008748477040019981798281984259347428701639045070935458772497026134684540186602887780898005484420575424296805595471627906422043046073755158922249654724099347107520771775604174856940583936574746927283163885836965101917425178653757238806627609200674183584196030771121835437484515141882878045652011953013756481024200556080232042549444517140702149943345244640532131704472309652351736612188169049614478566497543647325278952588444652881404934212804500111685244864001497418972708906057968974371124912807598367233501689447265033386729790064445521868316859743034893813427376805079914800174807887439251664193232403332738518311188423648950906173808992913690005847803823864423916811341483809957484634074458863927812640104646853990305544289158839230836823360022197322717477498929090819346926032452848809465614361235364444233531883940849741737005397258487449287239872537965140185281661914736499206915831562114220193896884441433248197420504846709319564198790348523772723358095361520486475255403250700543151337278496123849095530099952874957174841819404761758419320906376020180982653147721420348141693838170473334964595524532711501693268707377369753501281197205529666589077205704006530017877035268289768087939612388989191723342672230532175101854344264458000245817000650157350603732121827445743672961188299260953234032954400995406799518114759121126700019960950007603690684609048969754597045408745018474702629406672612973904343670964328319862060348830063047132044296933768118979499265201890154537941632870332661696889936130850005825156230804852279792835326337862216641035438373009129426178098426223036255715188657840868504452254007523572710630493907341344987195887220772314302214425840148344042970189093993512264482693252490754359735695811198126713696718548195494514674207864975889043641859006552743839920589188032010298403485344506713450389631274889774929591988580190108564356035497249556453044057334864035216155201858747523325406830569140561663071553029824157780632405572551110061998493703044225726375414330740224692915262174060038132009750834866789408058933683108806165224028717172100849043314880848515810004652126862404070134419244871081733055459148109573684833109848561895239995586553570501547111490792626172740168458225670042392632401918210631119741611651676237775740523866465339767197515109463738640965193786964761430312224095603927354972806496580774181529646065872515945259653740354842174566145070458886068647185318520032172680193511722796517911399333570705964202520362102727175437339116702327451159805227963205675285653654243682871384059046472485047135120015902308265090972544536994712286277746141628133745953176474252494672721328917295931552659969780924811835203179766325961574310048336517990401895509615530668225617973663357842059843460581851372493078649006360343764467300350801745781687093576822664369321737856008145991779282278654662168056821117858919295067928397871406443088823349477182109293312069316908211293618842840470689506693911015866107392398269644418961650724479300014327882125949818444574797049286119047310388901770941710229017245031713565884119519622795504131621676395379336414862617938847891027035323193199120773480570533267343249162334524614650851431657331586895052927132162092546974374011734967935649743196484628373101544203565204018694540481785365998730932661878765602159710297535259885475640441586304288101437044196837030676672503867604367678219317154542929250366575563979918126408948838774983664626602402822913352886583722627743510379154958610537672973149592959580689481781878471652614208954936582234453566303084402231599217556364668572900164527488706024582847798453895325812963949642402648785471630255621201892136660514194089995342900363576761635423826722620095710557052764694335330835656806528520327858708458771858307556475153548757548737289455816752588400246176538834664188235320223340183623228358246612705683469905031919372751308269555818860314176648116617528033173947941671279847066826842503554746489620801354839907182824404285547870671738335525423137611204843972459500171147918073698996349381280296243118602111935840035870053931416303012208883120774254474044574349073257003661827618293604867416132113241801924424648093923955789067315576034831060679756608428635957220914394695565641534118640138432355757836783389759760796100828848379837417905962526807217761577467043868391676131327684002036164942969290380199851611340357799384434067299297432262321066558294304199516254689520987001739138489324061895445302054002530078445559120327157402383343811821081644767671223125710422097077591881677315799420846514393326759385628032450675822796338458140381720736157213583111630489146322653227020907591473697487896551231398883802083231844964184810846805402083775517036813692719993854156055727358386724462653941597428042827696950454851550060759368706188432759571007118801499088468475880634415628961813275777299260138566720539814954838258863672353932303414890669876204562787704615868572347513502726203107025517850398464086621827651952876322740597216252666451638378417413268246338272369139041827237876016401228248397772615145924753981256085979645065077197374807627276221787387421224961538162518248138541766750758561601409999636056373286275435110592444867404023862478926762016006794100114399203040710413773785983247104122868363368131177769645825296162764105582601973957493789805689153622402989682271062735017323759593467137062521266114448689199392455499252201841154189222626493116852438543007279525511340155493739467354190022897635756686353469304760674113432139289470176615233158461340598165390911360328491436855095792643095740718248525772458976823855027350613064180324672625999461475593928410508168918425813957555277136799226263954890925984188013148829965017236684860736265016726276969559113822942439242493367804076193532408081128902767231332734537033043979261649304085617051280074838068199018355820518533350579267588901788293272740775182319565367003966261262930714528808002111827342053123435920726556130481180514035998212843861955527344328395410061470118234869862891682587538405130843313683326302994754192350364609978400085716955624969559458644126893926742536689245918136931065568029062549044688760804405499938928286869469959627920187437217922160538843625031164072944235481928009108630527945319213719841490886583401735210218656936487408146235457170270498401569138849126549821992412659924109130652725270506686783196894054094205703585979458064216170973602170983508326909834766515023866571082751754004342987667761044344853308991264341283223672745274233973877344075229407650972247422412473401085165342010226678618047935955872513891431423208672265852392948587494998036351673462487543751892334364576518268247633680558244502261808365140810719425267435399667195634862025483166674964198062406964363406950447153507593506380081394868329451589249880961488647101989877052484035492375553081931113276808024486993311166574598181938855785567984623748187638749471050108520552039292245634508554867346921948612826022646148735574662222426999917243760527126761684827846882179922483873498312347327168876463922195228797310442353565847988630705970807546367423652159033381434728622543947872537867892651739464967008170930357919960158628995567075828429765776466057886254121471629881769249012504493835654541070558991889886019522138839156410581021160536258518381673352901354708529085482217018653821408453236971282486782746554161991955539629158148931240969308572026446278029604148229305619236006871911341022766993624263022243446730136932557898278897864561054803525070781027020512169611912109981184879973133295660143343826441314217464027020743748765883512652954511723356431136428774679018904283417101003048745103441017468080929650570800507713657160860993974344707923291600131323014466923644510150758668234630405807843918061929543882710676447126992454826807029663495935154187388970329235718493049564501116853299178051988068397908482529736740512472025046190515794061275888647484846610419003995908147988223985834168134106298067066801609566578895410294442349488840343747058470969679744851881157742365165109888165306685051616085077811175023068036233893223308213776615790368649785029079867047815758205706594911060195369920393585046509062684248494424775374722781439376657199599232712453817139094721112063400423445315838989732007310132261443275319844879299644580707434707739448925298816815729680276363833039821312763194194142265039817244232401463589867406590577556825536619162536016566350950223119805462147176816854996142188191690453459135649631543987327742152323842341049603135834649978745146970624763339402722740749377900619110636799952496098803261171108586720915170553366069784128533528496458491360442860985701872247854749674142803515818154546042850555082741090186792187198481085368816668088684491762267889181464581837767804897076231554554682417577715534975952797573682478614639606017441276915088072885126525043543543169176073064971386966467474624298742268767323449014675903419153862959604909445921060092759886865004073526104326527084869798188556794525512965411818575775871841352558484441084927022354792430226220614145374041080853380692084270360759140266814078152136539237545534929405657425593718030602368630137804600294413060988417619685436614592762767083093603170795406255308158947672099886238837819246826765599203845419825923471884421692010606594120074898602888417002680904956514552129206501903079538948122797691721362219721318158758324912700775440810533170150903770611783460662631824543678723443555421596514217582980140947569913614472628264227547171438014867328431404462342467444367043952750861805476237058290409330153644616607635434407062027239849166818399784956441475172045241120311658305428984948209521045338865399846428891135849612415616438817761499878599921693014895409588435108741507524451307917437818450808056953031048900658315124428388625231980896369564091251334922208855687536466986957665767586873133527014171191932193672642192936601189337788653499025797929661736606192776485123492072582475261350402596946516491457647157434220039102666401145231829773612821002231300155502411486801510053722008453773098052123017039896473368925521194774915369350240567553205521210659909378663725528921314030151760865834031704022011434010926999576112515939786983938343908883411593872422695778822539222270738021917721637870356764871102307065149344780972124035351726328354851266561209283025394223853736097030287881727991746548032534853796997981342069256052015075243259494266955744045725062144459814477316007176572320592217638358585997431396331718558970565569959260449582652480373439628700806628514611028260291402010277901963061815550516032358613937852663575037097864403885555209925290061029217789207045478707024326366079856166833178138355751567241082456491778719577655586455495527013452752305272187099516425612793328902043738188852676889844760609007664352752324195687111251304889989892856314663113178980483959429887064133646745828137009818853770896074821168153935061634264677611489238662057994467372725283323866453898021817397937001662343785741104347365440867603734019520343609344445546911137658597899559291836898705649627581356536493358825692962058477539145060481188281639819428695598455712894399576597757361510243659038993678035270098588872163943161216841260066078365779412402619065085954143148115771440325080746289112139648906057333183760528479198172799396425455700065751380483198465678894613927371849373198714822428071052535651852282715505278860547283411191590561349227405008127834884721814346218500867077233128872429867414750495081937580861553670025373078765307616344865543704374385101011602493717935513986794435923462301183683070299020846337143802126669319890335603492030879216913055525659171495495527423697208279248690051523949400465653778205619214719031141117407047743348499171940467410993210321382547949147757367912344511228864834358381691653300835004024664892595169076012397170762762188130964303770489638463907216212973133200132297694490481027334312091218783660833703478304998527429764698719740653352161546161942890695682521813910917582681190557945024631164890327254309214978218357139079902468098387220374515721018474990744294535461076289281870727426570419733720143136084649869514505301340047011159089277138392400562737364520716277623725401611532948371188441072716867325443755402783918124379431341870681937347510806638925826307719344406484238466772033248482111965156137815252323208994167764054577704518658844790406954222706544007076763974136492230435074403652172169177512578566332931277142519433302960199022939969893297776361390653087437149673990192184271524214300947598819639556740533003045543604118371498583817440614540642277489047710424331553870213317053992513604066188482673731998848002840651088404452740198479060600578198449377316067980728359791028488325756111264548336941540248670612314785127171876709461037582478172706893733324668635560573871963346434249140345355364786639773926884454029693109993712933371567403382129121619730912603470485076239587508929395112663321721230116357021651477837859453912286487713599356045557306514670877068891503311265984037072470649644003971669056379597124520057177180229833772253077940841305330528927148261274682580813921075864977642289293732578810675208922316318692538958865796935083493276620916389749931570540246403626190210149781523883916088977625388646846252204118040768066270588863818118386108555570954074579711031461096411306856296196731226983005783489356333233098534948334031207583432709817564566404893674698152247733826739243600884456132316854560231548870567041014934114093200558456495996028078769798171042630690308435872406481065010723336203909134105670480298719293771589058064123315320519957079721434760493608042643984352704204034297860206592122740322225009577632703698320734746479618459882449260037821160392271222454634901030918934409560941020197601521988773923977830670827864901117689369957152285303778235622754611796116826412750109261020476818903990591126795249800803023925317353721353177818671197041381272126837222913583283728256112067127941011135771186218702297508662249617003308147350356744947448025486381650451610177818370280848378546809258731400437150946014085689499311080780063670226098831931102016510316715395913373248540842021920788838083398948079245050437770992842915810997355563066246284075307412299973722236947903126514352465229805365317717540652874898928740128286144372099455502494220712509321050457452527971963889744594987736720812446766866713384423638781860980813329459716336013292745154759293144521160317549534057049802683349854077269223727504094194823354083094805952203979858307205697036533911114194218286194333129057105285162996681168075637451104578760145095606056098090064026391999173197716380499970988918308745927827784105680135344562907499499833942036846217170535633373700246589238022545904781092513382231038824465903310708429498980895497326336400063694353689663294200306062684023468943472755321992888911560070061288712520861902229698911986878308619925204530194234212809542664699174639821929153347865794504232279438956476792765116451589694525919766187080522453532093015848326933814077574521349409886575231453833344999544252488794017611443690547316116730239145916927693047288688765523207161141253399648272374878525847360560239627282653667748127687188228690734343209377943485359043008527453244302649610861581328965182787181108679295396004263316021020193259746000491664754248504819005184581201627207213832824662250582188644671194028068757456808870457942774641883079902890768954397200795810562860277384417299995838513009018140231873582463139085017016712315829773972737744328483798142280642614731139156265322494512576698695370581307995861119729630870356764309066111403955650283016512064197201577263040701790981089158504533999480975087398722826246870686004464148351705659701181289973021369782575687828685179207676231990552080518572303081282558642099147111849201240549372861414260856964049313630247304361776806524756459861562137265887041007123172390506295975057208991378851102910504296028018711630974161309866698787694710543994211100872457573537935207778246731751665339877073469481937056344674927593905349086037962703864907744653741084232219376774395030908349994313540686490563086729902537560361409524666830740462098121600915214259046127159403854324803616521402116761727596478062674448667817370529816358496791195496613303426284144223673582466566654663072544453306571338693640425882845703678530080311796661208993015184233815062133492804670898479842977133070946506231044406583258086019653025807702770896131740953880039124800655692588039901631312882329907702427412814926065714629946635361402324648178900939253208772605607034448014566285190449388229467128099310839838603581542833212107138325876098230024416784366142214173404094751071217353766297366236392012456068406299068477900953145650680320010299322975616282075373638368709143580128520336129825580495829002503198209960455500492556049642482071998854680034447242115127762685069571417576585776227483926480135039863297965234240169878636009763460016993650124361647580231153640451858965715434439284390527444919370972968924148044159833874428322535414936980155029267463759591254770264957479678406046402065505072416347576178700730518458957932106555238779642879681814311986574296546704269656655473307390481063513062221753773782764350326456253832605777800554311439922464909376296631625735183548644625701547309619312334597315601227142982715673785965237397917273803562841720821305934775927759968699272453464679542825792449049896932878567404420263474327651588327484430707245361189461047073418047926259115867078021116771938162496651327915712593100923059536330248625919426352228203863987755230054390667771542285312720909930735467241079373930314359562738874959737830665515989622111954611529748012688078591273832326956311233510775478017772574311704772936757300626836486049825807832335902307488476908198716677870943365787214657717212857013405217763283277270950124180585452100068071842696668861840307155731305876296190081970935914867704730203082289710770810448920798324184495669384053931973774190681388920129750442224079278399120989465838462659748968543279375447850524951588064018190045297807848102730826689529974052142916696770876150486547282711376325011896252098352004319412955193348267651323605774596472465572087223430661219032098648282153384880912637164222229178887788699024930527501951821812011119925785959837579495487818592772799455216925309264762623405774323388996643121404664721415364399844493287112028146327039581750787104636119529388674138933977936347669563091095002924039472124051306090628193109881026653111674951439807345190639229095562441200172459059862596076940769071697890074975406502146895617225504451604238543991488396035282164734645385743078606433504426485131389933943460168142094706623007529553910787422095776272535846689253904052443896301981066750305417669874719390294784971188425199797113018135016091351360231705010969625158566798171117581038395963701235526964505611801539784332820905891710411913732345932198465102464261947412128963631958830788057381344346844917341722991069904676021513977477732134273157816920020312130881269210116813383982257286679385656558496502889041395792957908983673414876555020372533929763403228157239005259310679264247031060870558199618872797935745278039052907160666925076241427077246310024647875720806589231782755000090255457138785747440278247600538305356609557966282813355716399544183993929238348320784124926281570426661979939234372502623555178058834258074853487609361453867439455921570366177993334702508644089071975641779386364405094932394085548395175358728835150143849562237116558534337858611869648742581564661486683231724605165375313601339914591142281007726635672009634225843843067920276574463643409116483455911006572444743177228207685789142155616001675251617076174584882417606158818170182150333338918344550498604220104385337897394271360821004713519980476820330665688408344629561520941747435652360612867546566669677684590320094689380637646894899397841044913879227488915881939668131705594458016821523303807928448085218737921910317773201747468701543182589160160449933089933902541315550591726585238069695914967454495348503063134818734487018279412017122268218003383027192529833737224967245463478183039030196721638720637232459721001514210714252964253270459135999980258385294705034829071960361174601811310377752377819027329592425479256908703077778632114514249893714041810721608737829267735022370212371254311719742028822552040028540969615005468527124267455972303041867565240421690876751618909086969261257026008899138136966054963421861696319657358967276304467079839255466418599466395245218000426889323052096654435928455458233076630945381866445356929219479008983603567791727966369529349408815258391212519174483028688787460081457135698148419809193110715320101600139918465925032703398051992211018001271345589374130053828241861660540128073467337904593635321647747383399523520436899560022054873926513424320278970015243885148134260066083080594038876165754517987759211105745690884444023221424468826144533104684712851873716914656785020359678820165934608636158148266092852707494339268187537641445937998948608228184346854938802128294721617455755777407809602638494744020780588633279477781162852174405382470816174747350349887742596713947728205719591137933938640498572622550976042255223021452240464750844661979294155449654674808709574893672876519854685696440954987637088832391721346017662877932809213263757843899260225360560998065153186240887577556917193069809973776739513373312759505459007514226097447811654932081678033111469240263668105895117524615995847325338644091336344896767113554543664295101095726935966574148263116146850383818993304199453961723622773266179201095924859622328525350309060048564814857076371773750575197082729352891742098706084376652406628407011259449183804091194888335417666627228269959624408244247020196773167481738506082502206343952589544048114198789684403372800265443837266609305090534358922832690741952079178073544429086798659812600910487899871143374566979315846290066109044911044368526029667776839458251531128287380533620811445675510360343170859611357867642534385572076617993557783400599136637817665047465733754262296861950005122477210782128647974507356576311185529041637573570880789854111177502740154054857955489805965600436249140208820910219614479690132771470126573325395347801667608617187018926412107434100520696781292846275318829137799106994336069917262916988231853653789883907200803983730594544668813291583323402766726396312689035877149152077654822516774511512456756201790584456205863276743710159542333133268454876570158657912720927698044148871944805151964582366413129326209326688852615473738693599714286569929976330474178543415691854246446800172908028807886277889864756859170557349195048136928911900496756021419748122060031355688160834552720607435981202592076078751285204126892099799357855637009349740001262794924057492567995306909958273094711012556132541416330770574778395013553525066401476381089316293937220257718270116958872087812249575426348419472401073553355483221644793578466541298335294313729784684745164613963185021383293788485642793070650087373731760909097305677755485490334874970477985721343241771943476779603644877782331709321665755543785188833469492828786467669719648952060896356653375634189998606419625520754916706333642715282473708119364671195981725971399565481392210883874591775377006579510012565983187513837105069023082519330191944458128708487797905307908060499606336949262132860741877000470095981732263906452969761483444564100071145602950707132456147724629429029055280519022540645310118415789138836528189919297474783167446748436084967443215535808597965692820664040764045592428919832639267375103708354757163114529364353978479195592832645495395060038064578596817495911504591715784211968530531066509067610927454557235353374489210326081350178186883209753743456670744220982897188360463210646731952249232207414996173992347895303607016052391777174066202275970587180783415487225608419093539350159880104958336221428869566912788652806779674352759712408929437187495313553178059848956178423413098914359953113393167402562880701290768991484921870876492648818814805321781388294146858552147676560226757192532742585557042627744701324653180111026703269430513119319777789895796299775775896167304146020693275312507079083076894784738852274748551786851544217200129794384152615403719459409601451154494506009583859077530302284859430895043357338827218887313864799075510744676924017111904409424610510474885156141615459559685420286128287994217696115223552818303207596054131473041451524864819941553723368614989397520083017277164233119938269284990239794290836362101816937811868003913757147939103782541471241316731761948904767018055752190434940722843108495603431723780881578744105277307132173884529299615885510049240023335661518792218645005342635312422406714616567677404556500205843618365717649659462075142295925574926865419712643626369835818882552535665061890733537816021606519150272318162479206505588681474778678327686111039031357103398591417947244363607176576131651482180403659953776590536572758275996089964865184289071508442652509232443577176371577116530303525933871859122150434671400237540886612560862835877252050034419400987314885161297021106766966375470932019191394447508971374915701284490368079928625272040540128827889958225831265070605254605827345542654934661359405361943461776859545346072144741109062910863990160793872179893460039708266460204806373269252581075710405859121676466804730872111951532024367651230162399512372952498116625467285967653867388124908045744247870931298179535955337024374510160001903905770209102851027145987890012518690104971825920764109115908598869615084287005356332141110474682071809331236399910594522867093952843318158136989259248727351430882988767727004689424239414724231157998716979481048128271227946967300784778159555544847930630519336844480697455146898185546704949367396654856108808377155396277057533427575887034457729180986862067762149845749528080894879703944382097882175477143123747022432184117944937944653663344890196749095689649093843270443006476513223499319952532208087552155667129098295601042947730769942080871095719833095151725101096883611705773993042857850155759597966641979163361983243815541947503655316101961257750535118497656491846201769394821628972134029147622943658736942299727254282607633788073148819428264790714963917316256197190639173104647444218653600001781057149045061657906360509743834799638067354424756703436815957004271842670293746179079598291603629446367129296979956561352243821060474774571289301909007018143481393159863402045535710401287125554205126140344272990643103782811860288690094094125943930735216201449833410985039432741041887450663138954325249312472812273102002424415608024803887262734542543662513700742133417291986063964935532595103366315923178691005943107650778570898545760978479918140488404832785365824533658095573550279574093770563727461170210136814374601673510360429303196537008704439390294456857056655739675443790255884717470546545857333962714953440630900635305773809364964333487266595005686645117201878150672076735268104146269117040183340850047034360898056520302286009214678487585551462863824352509425729755320757955949433939547595681593092517160405951159932521697475297455531061059362460232398739658338649699620441275796483250374889199312823331813405920404126871118176926993162493098471995380799488740872588838436464311351434740909272368524100887682760491017540327260815135051087155920018999736618587321714130514060806903715123474843895780815026987256457067659324799436086777500031464589972570625916092986876194425585100961382231509468375416833494027593206505502214041585235828529329656048647661635331038970248268770709597013282726224320961593527969589346214390581194952892285222897971768654949345128189344593916703457256657466571665638605848807181000757919384033158249037664077874458095692873769920147247268220551732284568991192269273553196682834292226028885119939569909922740211735984543974739731191515204765259748624800988561643072554491312924770270393050514343048680071321240451999234372564927291634627255920630837254346471286306062834886386150541969453757057261351134327327670148650617324149857860865903530164046429820890725431679681698026895615486211501196371045001109610785902314236904784815224874287024004099314181587927609260131106189802852442652385586002136705057361273502521371828109132356043719097178059621214845137670397637175072784669549287602821410716050880893166879625238973864005138242573441668361608135889452287324606968300492342010928135812952981656565682505635793593059231158150896920810814447230709898698113106005791898002047836547709764765564717714631348539346346212369127521497788158196459910237719475861916944735523300841928206574116742730209017250633806548983901664575863495859280687301252219832880220603458839456094202903088728406686635403034745421612885616785653240827901457735509646716655723002514991114012101934661292865982034824249930013799861391493005483999971603367157284673496945755332196876116194995180979925468524787093672240232865835928358035470857825962758714153315910723747179395833348239431749649794341837675648722436563956633085786230915367817009899948361477259336353350404351017745250254794310313378259066514350605482603349682668414103157915163243065233697456721638439839322766147976992789542826868211895830243071238835056139257598114286704648059729205522704370619908803919244408779789771234356496638143474888264469826746334377773801066449728069141940679885731929249013261557327239002056946028325541478666544196314053887432303466776395342921509212706758515121700791190093761320609707597333203016150792143030455222920842915957169274161510845542516936588721388365226154818065588889224724328259719010313985835067400811612873030957830097357627571865995467124697956379364214410124792094699316906506879690388871643352974141728816120758206721199341825429614677776190574702859911455352126590502658576919140520772677052583935255866852228459568039188458081785846213172228195405189627706432042641468748826265720687490041159441824816760046884404895141339486592205506585500892812777593917780476567264895747090071890584878602311078533743310360529404749256768661603068346823535758800719892403581070070962130561069776197573315938771462053968029243800067273265251618391126546039552926861171408895233103329160407254439507371561473618299036723003717964383302174916318441241923132558133257615701341581528751989200514487254210795634034268793241092858815066852943486459229993777874802181465860845513378678650080565101262179045326489594955261339831182052621571758210995458236299761718555671147912545196879444024110573160486590464201019369244193168543864894203534809462649640354095421175505922641673497689346676926335556680104346572197751805964429190473561303968425515856500871914259292978387137076372003102771321516912922232467142678623822498757836586064173094734964091723384263100446359162783648756114571391374747225756692647278932195641406740197515544692984037375558593597626734757596733258818274933184133811328020168243761628088596338822591779240967266983178463544573284174187941313726224520290087225441170599088338128733865339975714658762100449040015081754159596023807695755536781587530909373899403724010158767809825074472662229654703627299133641563225536388223953052172446960811027665409760769623397118482139416231058032663755126162380354287634751418267845563563941893383744000206225052567383060683726201105902429596849713278302292214899937789451947395624082627440944767556684876710034182460712383638687973029759886998920449421376581470936314772813372677464152725397465449656526483217176903891162061634391600560681043120094773720480803580567519981771808217888255735680882560870870039851073597982900831098616751475299954677201876643709207427617112987835272652167762951123771471396927105162536244887641525562681759473362474798221905902243847731523406735374092309208407094609834680143300446373681019311304490654937551873458491028045931417337099370930585978398187286624634718512042679061044040394662723688486874235455658812832361623056332367957524624737693255057765189109068319526384322368941810767100331307474716650294441611122163391130458917598972893767176283237568834668434530389889029652848798045131172823545767856669916009449363981614808800561397509390388351760186233404527426011946673983951686112334026669718989618331085888302708031963118728557925946960664134498041410966165358256483526708270301608167293709957544707839067883953885791344499936189437060781737639122506969261749470140218762690871066879833716472118973724134240222076396087529518273529326016075503139250741974236477202408063930950025401517813644770534114062305356045440525548862789099215364304526877657668862074837689336338359263146030059705634959583754432718156276822172454124825291813200441988575958832021676919252827565293195391969242361774173439070304612818767600681022527368903117980062066667311809533056001555146415347023193233835174012728234962764741018480791155107138551898731050532725643649540451718669598134688797496546795633461737660827876333751011848721168213771107156241342678761534289519088981431416927109600323899188058395523762591843761281785235788403010710879442292752216268838314356367631514636345073431268108214680602709724763029577781969785598940201389438292634487242849059440696955323591156920619023745961654820856847356753400117287487331098006747718052846809540874124106907589608754960268249380125001713348806600864937072700871932751154767339887785996787937550692684585789621872512113823205584149473575313215197925978125216679130566017173608212214680635152368882553229067817108284544091903336994319434611504649742140341775367693021703838937406959222835105317649999130257875506335228125025753783346870445872871229256464859540310644689440922577256343966284601646869616819633424398095579255290514602107378890540655357727616623171571043126372700089997940620376138725299401345809750006677294854181834982380047232991867391421556066419007934710952506297458056975680798328852622524342764106258563714347106357045513073853871596885836013078431714948005124949718088282153484477112727510158294561020721252460720665925655143171234847360666698642970958746405582871920374617398154834537288617120324885128406460416159354736783154771600111320751710072017997674924115602111099900935335104872905787206911603904167767225046659216310614041087620368910892677625232846710544146741041740840197362998989458456218081924624295030836625770394508158712707186636046332288787483735157789082602723395457917911176869329409413145028444324161416355222800993780290479452031897106570210863608617638293812272436902963560271602916874285773672276358355685582525583457097892827824058343143630307864399622160146297098939147819019093765658602434053789964053942321018231838393203376225063477139711218642512926526188460611113716443296164677622011533594675380677461247944713822259648243659555132365397927100644595948067448826856994344919080529256501252728655030251279581410812051658362388303913246903744185162776195026394427438687439443423643456816074748653362727103237729742375840682089045919557550287920586709383455100673756520302001950106326715473860919648818281478073328858311585219196146284516762557855467646776042746536409424572052612921572131716808659328370718208010837833814609312622080499509772683640671228117814439357451008610082133096843003876366848845610766335388893504934717137960684243048362274592492675515375503894052851836269131657749396701126686313987305192382922708828623030188880457171409362845583127569271189122141444562158731028500302680660500797097676669260814927702697685202811582422020501948545628312663269396911952978903611282560029761434506811387111565268903481724298631618310102674064607007145083711184461100259182540419789658898314887125214328178242870158109113662201143766584251857781998072266458106871556016982529497045806798348490531562418944821003903893522063081350946742146380644871261676221938998044105317628377420141333888735447936765042071590747137665440946953085002194679292969296165869076093699549469336009551168680969579148852489292282508534431070943145581319526584228946367323123896670736084329502316482406886397799246144501503282808867081124905212189239790999379440823380187845794356629270188490001610055261540195505134474140645210133882509070166280721183262284044923006797733584597270377794979590262122507015007092602565723140567887363665379612183319087456254000489001871944515704419554032939881343610290630551724414656646554362291964055349659763173620432860685444227634565543999084238052517631687942942195153514740651516015538215107412026146892815241904506656651663062233097904048090269006041154453248616990173542739499315287313782029855682267224285067267944471619991817444466938083738309321042888735953744052586636623854945282050755909609494141505094963906093776732076708322336000853137850745353198792880657940156710868584897350757220790960902164861833354470522007913991121809355536645538024710995943199639667483250892801140385453335562883907349013095511763096414797670234938209493696625489298436488685836204053267237786976800466938856097546408723118652856219860934360456285796790396040079436211288850957143491923750946603498671028352693914594644199753061063706239465572536667036919678029401657103702381241499712897930458157489648845412960976127307737871138160859849914851603565427982864059222825681752609729469075374600283220580617196239154571547770636058043794738824119860772215672386515485428704195574842572269313951048244248838516927791401530056959617328584379067112737031617978803510329982987132922615486548584319524410716115942620069988022343846324546273209101057293888715536542050352566732244305426839258689364285106968435087476342791528790435915930269577643857720112662110425466843103896867376381976290951962213136874295248650768741234848500949619753365649400219211805252536299761114420586916914199963345953782155290041920943795100303562956500040317699952544515822578465835769206903991982476391845336644499442284960607804456877795394978956897394627874811239461681129621954956653856369042753240911251010891165201582448200767269082795999368501633151664380981885429587056824339194575288752825144574893355248537847783438296246191495734282538149841497624271671751661454003236983092020966944063647928619500329920672618444397050407244605126956606848576932960306286302399896746000651862697052574193851203160249371782117818504902087921462518793720663266656652376517178990479011860271691383914625018232124999238456284182807299161539705809996508844613891677940421650663369267017035289630694637427314840498080065446960475055199278472749315128486029822855689744951542807613783267024710638237708901878283934011993979236527181611110614087439075832533335037295878746288341437882390373589509431510739629873791900660808425874302993696943110051689275638057520755377540131044488900695147703117139422601055882709131746479931756745216297056888559544250733669711806315511054316978880347243860041933180537001882037532314118320364319587974081908750419603839516161252520818738333905170990490849476991879151032016875847460470031999251687498822230748990742922656348292131470984681166064840479434818752474892540232007450726088774519039750995445391088607900528847527226666448844928348730823068427884436705771194161121184445042286883891660852869875009536500368229864395257786746021193226101567046876579221918479312227272931104269990896417215371729510913451159439913524530118868490463355620855705607778550745031418322563462747755555346127794772500939858102542141732915780821294439193924021055792447031456376927145026805812543543866735492279031507203430371997886859008106516348732954269432387947806673836536954061220251598421727029421804066130854619044123314293271953130545221890274848628707475856730701482467694818038061334000670167210130820485235870842933030718951035700445892796206595559965237671280642756869454337531100266138511965054438061027915022888694784541672650078156976069205435353334947757480974066155971636860769303803057667534201521463322263218427121318715372427587865389431298983802068212592171049551716067137951381360638821662617425170907736726488921327847123953013035688165821992549956487922001209884536933410220380256217435429752157410635252248126604697852281829222418124047654310450777591012349109901932474933757266680781164793251542727643644241096109245270889505108453548785763159781386819654219295015557450160727457645700037942468205875603549245519590208431721929797460069323589316006726234289251341410138167271266549199883034930321612407179936970250271769027960272681517940804295249313315531334059614517694878044593855400085101220366983869512674326255997163447267125001515456794084628845296650833989108093041529789258292039680217398686283441077078474269246353629875279245186450067327265265898450347529039512109179923317678524010883549079137101528503842442333550172111823753311537570151056947875308125024409174942279609136072722253090167886994792412652502669610815703773051936235485486850257610617422447575267296700196690747635198757008927400274801459139893152098462001585106326890612169314314649090589767355973846834289288415704542256415315851300371176728109068424867069600491077404998556311714053664415671660084288908833318482029915368233479370717850541812261634715946653917915547530809896847687991965671488367338925732058719800415694904190078992820733718250347915433430793125985094204208903649440560171711632863753784571150545765937634503418264294688458034549683695124800385490241361293867674962438625375433197063835612010694546300567217998275502259860691331793209688976918684850910523345428576267863051009990830179567979102818203363208695907688732849925974575671105249763762388104805775367296265333579659892817838555249706304932375430819401843809998614227557965261621003336636770541506811711620270780980336228987664097940618506436044944600158710241749492391681171683517014913517994103951900391639815767974156354923066387353364294913471681257042906845478418528516090125272367907801896948123545232346541033971663331252368080878194938344812320885259165599538109804234507993375602923101913093259759010237643724441380524044353841357543354956873188741627135524895336197228980234810875226807883833984214609951907042799561509810520535088509907240704359936804728346923936347020770032804345483312806878734024369122739855602205967857145333636756146955717247712883062011741096088177426648473555958269848701540338688484540670029136087702769465228044884241576658779809584401428127200442250078236541071559060041095974551083477549665918346651546860129829230918578679872450245683395501138508246040762798466558652915594308207418322321699905376750756563351993630786902572862462817612349090368748200555074479244303559394207082678630473968204450454731193888928057395265832817561591513860165122501708413881284063293177776825014841503936932565465871041964589602462608521321445874816812985627233992362586245194609539749019968314320503481533583682409510072639019076384591962308741827289664072378849854106106437609258379500822368948325065767992723122701881516689012491203370128957225020971262097919381267838763155580405810699696427580856909229348762162876108483524251770174892636083240285682652198703165175850640261310354667923239812379482252866122084195509697872879135623394623938649835233344959732478115265033025226266883677035414024849790682286956040508157279082895301186829048623575807269920707259578251412209421704456713797126952648259652889828934799223214901915498480963554232717458146622482723443219218900534029814889304174140933074222473618647012105691155230448090797543914927182144235826996789123401365529560714329175253432640970136239763244380847682083978194358898732316752819804943678912033567813733801089193570076584682726885908285562849326077230353704826729057992804381955166414758945764730269920884777948956719341351038106654639036071063876881332391248916195346815974883372593660909530732500725790448088604110206120880523156119896629584658611383764226647910645749382199943816822339425954820835622083684708431964040090142601598271868734041548472266739880908863942178024424746410808478971683530171206687723574473083395455588705408855026932173142873662584046527281176945963690772349505627379693489008525172437008539719658536452457040128347078600946460147242029540846710892076974898823261886880352263760892471816913428963393373457761808238807908369166976608426653386499318016769908289523162901428267663111198380117843405390806628758432008294763601218487337611165356769911086375714700130656144236539748759105602312558807534778718112596432291890450931178981267333296426256517989542451052087610679197432068790115710246317287783694000112315336148050611458732531786239275986573671643377893682461449743735714959604384866782068889394850980061272097014811319090685825728004235852117535896690145216314303641432104323729370404730914729609031521308976033200238666526048158715908141836206244961124968422392323493559912122495180129792627740422376880697272591740557192444527127487010821779172127378517235786161799993481002404443715003560978894377144994556532568754253053567157946778923148793494609824564197229409617631837684497886993967600679275211992517274077854151326864717231650571926251837186354614521838293562317150233562214620909963634339376239428462062502898285365106894804193712948094606999875739413306601546031876064765213724700523848962561682163309332027204411763278716856116715050254141972264449157054736396434345652292061198948002544052013190971157800149193891961556681208165289836179352338489437477551318478858182574193597352305059928191231816995058780889497041733623652088233935914946005860763950074276401993366588335065095296277983216317327194986352196206630702571546770763275174403782906922918641388185885015825844934549600754269675574777041004829070805391225286112433505420883185045268970925280978099623850061956580268791860403380810023176886755375582646676587713430100525278027184723577704049528434508098694848648688845133603550403352627789530469095952951455760702823468543604804673056382954102971960848758288914764857247165204290789161648564722075976209229489161842804465451476215904418853721028195920567437539028070607898249655787198588959807984302733556310583699976780982949475232192464198180766521047987286662234013459839358358737641612942393984384333983491537449604710287581821096098467025313959830339910423046262919721640982137014272529897956922974783444973479912423443254109008042938787498304318461223692471276548361634728789796498190377890196270081642609044712170015425545761246976410234086650672382552998315747363241919993343000295489103413495367381793779699599571160310937530997873507152507465849034693687470492007921880058400879549326022839016658220546951981096383836893019740574117863822223972911340753759954939400706815397292015221034379560644259866637789922317687214813803120562038221778521746866836208324747197340828424208044878224549257689326323940572352524190464108325853710959072491002098123331684274571704114352455769027213215061786222346853380075800793417670928686480521072330915310570537386290747706612934275711288764858654838935864779178807035434655202617068160399047594453525171543274429341148063532250906377881217681666373388769256200966862055063356605328351203521773129217979466678601788143811104134341829904774541128239075849632190032191774323367809967101204765057003413304958654050461282265665798380755833435961943355672490200255971099619202801916491305605591721600226549939685372709898175661867276472082698618568921131291702519316707362551911753274064920889599798134370315728161904634312499476212827140412948500806366422004269465233529490659805534054542877649840718093779746321948203646387090881014582104608207867014837449475820082586340402395882692070903393346983485934043928108153038107850356385442909317789737219537631230692090448515365055704678210687447696596016577344214809172687097031518039011934045025081545109823380374889383870943104679654506682717425585933065219950368803645552096764367036187044222184102031200194600510935124472847343151634421018152855381612826763503328300513104590620452732816409241233312227011676267808853301087972897015467498631217806703930017101348473112729447694250267217821385648037604728908563534285587956161863461373584140911774811575943534457078094294566551786001722093446980157519234442621568108806124492522515543557500187713093564764900163286681514290920031377078795035297954364937495581556882470925516024296111367727106390118205187234428599496580416556691646722328685226850589160877325029256529121960064193302479822690091821689075439218531392929414916020827734260862973255856344576777749302091331211795022101705123198488281933076855151837165722573836106607723471127068754111753292133270287636311289930554531570813643517241751322609492723386941167387855556956453637681031963269218407459349560021940642242101740464845824076242426742635016146844341909707144229996266862834036592443186498910927768179453441598912772208976148513692013086149156655049487122743039453629249003273378825071308643858285916571069784037673367843548962007373496322253180840770934698152527515339669818807936116284541372573745798096212706470483271452918077863935709027020565198069119687010444553544123080423693356872393131609909549490803460528202055716821616560191006984216113758580388178181162132456656922950955301183673685005593411247710115018288357887483411703941150633631117665119253782246806802154731814269715627023874630366354480496142526408721952652118585908963373365796082687911218870402523633085356794633401415733217519313681747812598867752729069732798866488575619804100836625803027101694836767630598330232265929315395452633503269884779883279187728545360900940110191847576031869790307254878291986634903523112465116634649500540597881889118630870713489196343756129103154904843158458831346443960380325655784131918832310815088205851208258294774064209786626159969987630656899989177268868474527447735058192042310472255063125480132287847696296719934404862157514981942277577616582849206886701840385116779684014428041813349120861933115957846712211601298092750112119807127198226716310329442119002014922873323210552014583335471477575378077505839980373310312798997954367259546296917212213941257137912221986616896571663992894271603710227842561797078989980479268277075608516363071479985339742273431831327887834708675833151135013867144943883169189413645176457015557854001858720044069904973960063142568562586034562527977414517271162859798490647322436600223217971887769828905578041080022470883727042797623696694097480347448977020476700483299856887358226259667636862406199038748775179832021289492997279679782204339752659973232674711704123006696998233630338108621138092288311158675738905596845881367522765931299215076309521727645663287276393928363915257169051025244053623677448291963187409025775695217911213776452951171413362749508755297768707842514346271254876966547617620578630115195104871987240457574130251847589178322707550635895465016067289578952824896783895551218768191030043677769805129616806862765124255940083011536332732334326879500963956739821607877908333242167226514653028416983259901761392629101010368594956737667988656333704059999193971847337031986184632045549589856727803552727631683194823151887694229156114054018149690619674255710018570341519743094554578227775873498803322115212682033059756102920628874975427422791714659300542686952957823780009893728965338304600722641848752065217080130829732965782843824418105052649413077458999895321886407561108141076720252281685154180949874259731669670691562726314964527493276887022235831754434640858511961292220552645716782111184316767378193671429685684175472005953953786146651132930517391419851730438672452510542417519648763157485730364433947073654557093254646806396674539997908138682115108350793677959375105183563490633584039434072380904032850537414067682486181670439987471040516016645903707904311777406533796014289140654933324602640039707009208824413357895740239764096088880028759872208868452383338803890982482438758569531846479395704093071719000616387190021505645847337400088682771832114424191962488671408963391796340849330042056489087445596408422740031751604942673467738603271059824849401460730749153844693773254696422117140423183385430244511605980477818690666789596675469667010961858546336895916750919634097825705647936226592489614080008990767080896749548618462584977302654035186714919990475136386792321601619319283170306209683996951314913773211919442929362958515634809221117103569678848887280452600503170939627267029499070170255851671652614781365756466821224865132472717703334671341605629849106401460467256426080179444544380515287505601749247135891551521173897375096394668930605084156077232819194511888089797258343176408210803225648975205997476543771784484752678396128283962991465229105011026629031663489000400331866459391380136812431954178209079314605003371821632755656122417734168122910006199258038294424002893157192120304578997937486797545761503643923193404187822194616484169518021749536764442554704062211813666184758257579305407691873796192079614709829106236992731518831301706318167991609666719202790760357231340286888071151714275383713563600064035901335746632506849010134108115697754752344648017083648521764941786594132257158968967326884957181373291444577055552162194163443995013884503962922710983270893039821815848199458764028849088848857731523741592300509201544793959683081011367216498141546565741289167393591184841415134333812808867364759386689652268743621997705233408103503066260642555208063120752326168455603991402731701425676768609605318914062769361386230978269841932952260485117689303361966264411042174472281255734358910593760416332468376104408691473066953610010840002111496075633951452818897118506825431284130924546266462934218236950638715469492356790822714899820094752678366810298852614690332581536334661563385204245243608961322262309097726372821359847874667323940978559219417315920315844129116517464119871908519565233786785355896148501891710960766514756200034958667863068650022760679998199433613831382083416026044248283203637109513746071998126365351023550834133660477549123927317295507443145545772277145911734407929120974094644094440341195330700358594144317986414650215670587455278524031605932273045718242269583667377433870656369144857974304172543727439492578205199118733058486539232176903582078797194631468311416310599440430404333689318268495069462481339867348412662354462953344615807161942693606632671460023829737484212121926485438210547391093201403705104717663192580653942059838434442507093016110266260563873116498582502157647574940111173246159085241481163776080158521671927798240690517180768094198891867547036239534159146261407193175435694729387721835307447951303606030153025119920834351855161803791261320384876189865818320020683646868558361587321529515539825712271947049230447962157458516660999488956515656380662472372028254898863951686709325367863802157524475643582270818244272318386360014069129592904044080209214680330844923306411269436928858757596742491741910245251107067867608947190730451982574281982689952318966655142794522215067097306191084388389422957836772453715743685617074445380217629041232967010388517135946133646912183842707529803378493608269913413062420273163013084856290496425422688926252725555028723883025163510541041820942804312532479870631154204818181503261233049153092865268481677121687733425913104012282425436459333874807388718505466694664218514049176127494278865730920855617360405012451637578001848320454645293230091455636302015197176653508991474212704877284667952201825489433931153938814988046954293195077406799453540770308972375539217240820577067729666564792505706905396741927167579930093054953419460052525871201448593623503301725958928018412785644287336363329165085249226888426234098948639613092415138937267494634177077813898303166748399273978702821254957149731594837570239292403360030158165899297123823119564582255884465543366163895817726503148889034401368398994575485168748996822877865271494253160266961460065725686209510705024346408627096150213932686234560697258153138203301535099079603822487294693764567089833794524277209316230437040174356904129757580984802103904706087370319714222070997926401777574343162141535592817472231990080506969249122210549348790921828534701951181588822707872285723677111239157279770765882316431627831253165355576782594968612682557781554498984108635920524395646212266471880282528672320593040320247159218985578743266850383290165748753843796480678888986423709515478302177891911763842980693986943566360905365597968110823145757053027839833097576616258427366000863325726319152742294326903232739468880222666903915181679157455350304540258661911558334541893251858307449091557807986454927735627086008072301618229738619643914528240561270038835099787994117987435719585866551252165573895488355354235425893472327811361712653991441889145863234901274664804743899680519955911115855906627528373012258382523532322646770708358318273083090681941384106634852213135615466484174033248744311094112507577857299943887255849994392634039492579425502935776116003821582300542776301143707731763393912059334029737236012768735515559756994257623197266905779432506324086227554291074819614719649153768909033446618732674176755317727778565098583300386578653457062669593013519962553566586537441228972095651085151008196464434526787205953898957902505152201807333100083875090808950847004733699081873859672848277750305367679034064917061648621825969352030808109691224201077111243176545662293664788745600665505172054845325526035723647264912372956985737868215901217555768106697496473809558795459177673605448521763106576463485655328335880649627937485856389544020452322241084958416951633146729376363440506165260801612773164532219226192317655612949692011883192574822039139389032159529015654721175233114777191824033185107319298961590942532553303884506162861662944981566332692285441702874821910258914461339287350685611903233844457636295129587226370962465999754571021303158500558513007098679074693845979077324044268318151098553562173151781741550132714839013592875088526947572625054594240031085624942823292771557166026965329393267823285413456661246768491317138277796256717365452498752218561903799580273085279621205259070607369967296167155519788637321504649403528476591507921285570388858313206390908939948059689265314343853747439423637696342689232680994058417694796399830783497714943050940602319173356033566223667966615193525753062519821717163752674723424757037840644599118011232077535585468106756645845640487994301450383036062397030725847986479089035274463688173190297514910071754797979518607391799338610871013192789156442237248398390110616143316294446174832883368145973315257662449645114792372721178728517109407526001399324097401465205657614816838672533455946928570915831687421021154807884224332243928890415744584758256977940264128242682863258243152186184186480324742969017051447513367136932621214382495264847712993394413778154741903758930969263798294030232482244457149306601517766299640154121348186709336329081584109504727905317555700100869207009890801251012582732594867942397864288202331358686142685528926983312551930980248749603678461964568517441560070584499183167350937506231643964341223134953650078644024519825920829534872995487605251560351299311155194403021119469439886748568819286091240197169375946913461533710871996276662969494524264346655273513622394727706646943064569263328463086981909385581960086235142645639463925660198029582063431983899945924102132578815731827709217731553189313121662026544497734701603111054194773373311433798679204385745980716176152223220192038297006957170716185043452802954233965717161442279837289031815436867934835307064410849657637054456714543775527684077601025388792789083712170948781287016848241833469571290099268182492197331704339871872904713605440617674654121429064407301426240354744510819993907167693499098760425731658749601712148677637401584137143272688147832356341050412487808053823697313242382974712849108882492563510224270264954956496374139897941690106818750000071225257655999608716492144467048994161700239979375758500549565369531140315613294969404064991534369764461073909768740608336691195300560397945759613277488962879913931624023107949853620641765869957614461920340899797036870535510412946104212569414379231325741333754040816927023886404012993559487659259195562625479178662178953991926243733614441177751060749439831577954562773081092201707613048830355374187195528588447488864983208396384681078843705246133810849445935222070342395816423567542945575248120897483490735780186768556217550912607155944123777389380472147820018514148615113088040423286779914111227529073896286561928131061330305505630494481717080943945271667093246951565169044833703985320086324966585963822524186774930646776133922536691416788275151874748453682020472663337312864590967508744364541311006238822702015006468178150411618604056468921121418363533858268298663314774649178885740439777522606699310498497860905658161785716544360364902231319867776450892926565201140392548419499573406914316128347175244567569290850176934924487359267275578397756427811932656021280245782855829364535400361058579568637606210278367950542027495402654469422230747671574113693422628876039939313901890351912272599008485098018775671128175270510440794925586007769312731315393961104005325609619656968258109746391331235336536095990954180425223096298851036721734031600356376346376159379836153962987933431183866342239731515812154070696746269182079747694476076963300373110225376567019683568216700238772022570321619886803380103848996407911916540456761713499051855142669322539837157905061087743250883011536445364079573553093186775071716939081631456012145890501295521031141911342547322515341742375747686705431480830056905469117243031508579357571333147646374690450798713079785734387657640563063589214162577600937054711804428616154167448190047700418700535737105203871694892978907777005863615315231146587331877643934491369014092676241257409194013135630885088806893639176413762163337741308628052626036379074924359649349846752255475040532558235791160415546070227257807684810803174117519023217844839016113021397611608330289554362656796467106570531453773095804223000164047705749919613200837085313248948551408578062013628231619724755822334245685705259776172706254523536562738789535398695136237879271735551726973383225144778114093839205656904361845520999323963773681767237706773765671632043458153786262964341458221135167239288419585842888829742382867578711725977686133421598013407026430302151011119988091092371760950347677495633235949628698406562110324957171164329457403718055600281238788490649002004302600611889231211735775203502323594698677363679121169856432998867522959417367057767789593598250337263756643237952935155557609366857645063961412355041885405581904343354428352378142718554394187700277482661379595603474251925833541357346575647909751568704896589125619510254775065478907004996788313071828064421053580837498649074802891769256538295014553809371680318714057242082902735384149938458616839267431721354109552072192683250565325332846763205203902305078063938363295524911541423249146163881485569359339860949275093732823386791326085561018853495472894002312195007321744630301005725793871383300729083413969075289579935925481002890554359560342224840013964991112661963718230976912756881089769656655368942731247995250400311598467129120945981430963890601233196587794547378967343102828733918825955962759772864055648881632140374636605495868162147569909038891773214971587675026339465990017579992203321503170488482563060037881780726712702191152884895679522776332397226040111950718916264834730616051807483479427984342974417033793156094483167385810909219286251884093474026097055052966283483228605848857697467970981320409691178482881457475208104348817078030283814917936855048498254634519112458630000598433116530772752302955207580632480808851640277919588821949744660168367625904761614348532212393775488078299940760606126836529680123465296663133469289202758193870101495950651510877260007608488400009989403314681566363756113164827039760252270094467988811727055434335859049067386944827167961677457922030010353442875189448350339208664425487214165050522191484578850684206594991479827026783254619605479554605029362348846593132539957410881469789830708551089783955458621102396156888913583306281406828754088118778682168604984432206879183150519914495263900996831785643196667118096014769394772391939965351163660297911896306436483524253850032117863439855503227065147790725582265539457682176488607084015830124434242129107930771815913681039964498259637867226300782791645378275553866389331905918168914129316782772804886065507390720363265512719495393557456321613281582890962571190539166630077826389112850240478733111216893362899659851418406165135462990490550066066029704672311470532626987342991047663378498964857738516920634400415983384282673971187037815763841206250064661257288146451714085910634850683655993591726506713279372481509795318233455130909777229839088184265185248228297348986530260098588385770978799149957119442815767049033967193445658538250827415105613393531227642359766072333979132142138499720379623773910879414366249245729712065480561954219641730509088414054345775837269809347780456593387065036336118015790897375695923422397135635516257627690213976760752062599707429460178234297966179363829932073756300073263365041670243124589727175136130111537315808593605847340377070965223314652000546941053302883110196006413376808221503933811680713682935622724833897650958646137578235971732554939639811802252039939287263456984031288648966607223740195345181050251709451412266109953416488666766151643299951600464228592567363320917433760843477171226103491384489796777714946228481787259755207799548904093449301812163449134034170153243326751563107863607427398807863642443953099754646520944443498535225820359233528264595828922126193280500752650326556477605396458472621801471414149958321339924751672988365512618433317237078695418250249894181344141055886356210445189180482360898682932976122740565939111767827375263901501688749606158237799151464986228034109142122884597864144885856482898571041761328181094449825275277757403462485993336153230475066279874993208620666160532553134903135211592344781456526733807852622180536286674702379095145297561211670539502565478058460238669433080185238898340521668090638635982867917081211547846709157549778545953164456987107360690303038436429268659226681186518602270744109338072059189829082341270216721737445223953469337212204911917434743175496841019998205892535239090841315307352101218110946206016913464570738728099222009916292875961732585309141041167168788027116794117196081171672878585698556880233077216481909767858891376827421978092272389994271191819842872340517481791602216506544272458688216784436037402405850700220720079225063403432695309684263830615297258727110397850553225533174759753691563827557503026642376553909669465221302253107944127286960453338197138622451663034818930915216050160436399881677223432738572128540342576720765674664492496218392910852312970434174066427797741753563744813433652621888065300720964876025934962021539026445342130877011177738946502195293356789436453814068067904409269429473160545888600822711438587544626393007469623930651618506090784866898399568535990331609318253318370622065483774566786844469590085298003787575101803135734854570640318712179171553698268863437933752166153273796720889735910732439912030936121916753839193877331185124295322997631328568670098632817651208406231690584493457350033430390777523844455240907922161155541446806136938003492122139379315968146585087727542186200530094748616841724078736008561358993703351863675680369856107745815951101012680945838426208979140752882324586029897733096893137936214172892582159005762217036863814424838966437477925821403419649369671564281733077619208676724996564639545041112380746181372300962024092795533214578799068981716878872331976402951597770177797913791748669236648118859523747062310791199440225669246821136771312064943907262342388795997707768402902787259820205447431504692390684682034002608289000532536980817113635014821036435632520161609609145398385817164154982069207548968550198535512421791534387324458238706496730068192136797282439279102074681988644210763389889307684373694629092698395743721528936144144046985831305253114293794545934513393321389874034800272644458991943361386010304997318409074480215823404221582372229506565217713060322623431599442957955265347884261020421716692433812467881603770887954949483693835136113128907694650700448324165103248429881890152429475314673046874413286233405657673279743241761688456779090101847173330670057380827857467573163975335815957885003600933862421004809598070046422328361173480230348399954114818900197982012096476291474557312942985947529932174048533702476911349455226795744323151752969596611445032198051302161232457793601616211113999270131669792998070463330477570310134082532066854247579242567053327698277263424739816530574642791987888962903919333265041002205528959425561027806118206978118907615460619353710853498978230331071329593808907151705521689464116421000526168097625150941651368412438805538793246553458340770455300875461858016660560478437515154100220392842454248127663767663889210599922133486113816124861363849940489951584622904867234350670930316026799125728584123116118717097457248389247349561636264423787277937144988856786427349905298433371230904005224348366881147095924993360796275641809217390841919853988269061125303036812591695372223300304618590604644939290805872526956046894005994888413158121168837023201509630832387198431927701175533064150590158584727089627037814110593961345313247279183811574437036120684343012155542029462697243692360235117085771624355910133427901283186257246569174650117508361827768650857040428498702737331229190845380895819548343157825418835797208114368689326409666068469147958426267280566802162992779958807419429555532460362276599039851749090027586151252801839898324302424486484119433875676727433571373530133781546143480402277051775560148123894512218135836451707839281575439893871021313261721470704944791722890429269663234268131975562486950823845101556283699054215115857475966874195185196289668647734100243086579536541038392986168337092658228346892621015435098474153867364878483982371748160059479464278820187951948514321897364547017574227976821100475929855657083213936255053569666411658099746473955522783962723174626694460447523163772195018272269899622228147925909809789455586199028389820635829010423108347218250500167791451430732712031501625250291690895387819961864093433107095124630908235406168314198232620537752107464577954239387011519167597196118250678439614911104017274185880845062517978200450012796746213383309178510210746187769229326577515927817751611997376757993955530147270504130910858219641440306668878519957541303256534728928592314526413534157080194720955025795929628143682564517558959581303152400785384765920796789672009425287610497749555890840739763790615926673769029808405509294783595538547643713096597070755421596101798131043028055127898424803624415160188878939510069789877965478677754134868976487496198961490719799367737193805098052459253185765209755061835829770086674691017010526617356211702333265975226391565439966987150278855644101144398013873883756092169326640877904720995084643175597942448983793073134442599016184233127019921306596984347895734429079063975359932754383855415926349499011257963966917110061995111342265651442842539918246960053462086718345171624871198604049210635851152001747115323263128385993062475631096414678031909577834163443745316379220671349599646433287393381996187280967503618616448966374205215678610895173350521285195288676309185034824744026141191946286812502667679121144914901424047136150479321718686691777453353293784824040950726515130861230384013148724938244963024770165592172291212091332534136770894658803512663225246475412407376661760477575045734010957880924162841723714265967366536012972054192751219619973184611374196875560864875545984143472457789654015537679579772745138005189147742754646794689192324979400218918136583543539394048078468993598124066846072082926365515197504345914359905921387310827528746287257050337856624550511539024942253915858853742373274242067123827922986167955873559370647970797535144381114422815100662182535336792517480152809116867640588847336878338920019889543643777511898255124032936678104164554712475627595847041093230296100131683296692919003693536435081630859455456678839310397290950061896517934915627350228781440357180711231296784605949751687798921690906635982422038670574380906783310479814344750583726947528574710211536495785330574558014786689623403698804409276170204353836934843169937785685717505395350644493585541322028442222659287662616575871817635334735784179831543782347545319675106112181597866839881692355417481498065605852112369622473436550072141381054906956110651982507721278502915026268820876722056297824592010069363925137765095084107221147062495985546777981775808041576816370353864123405521282948484008905798401848387297287568099276663578553378106400775370829289973925252840934734234976681606278335308921805552339343514797491943379683072878341007308046270914701788034658051562752175799725597013330774561223333620014339176983064121978335815683057719205465153710009756018549387748679312451873326913305026382106632990826046646213083389296059443064128928816696419343166451120213615885545215246864079365940182822577436520245775365312019074049063771061215199761591433782746428455270710621233214707799329399526397120056066445529022194441228573453531597269566613834387011513851741631289683496680308185338935015651339461237966150895243385940157412861717139907909946494326348990158621583467074466925434901698903353637154018784765271521524393949729153607817179498773563904336772659080290139519406342039611392682795775035203869416319538092233685704244521741729817435392808147949629920113333708063649729175755521548889759508621118185393297031615391514928856317224137343396488231105132811978736958742106639995405371395838167539604378995318379561805576973979109424414819246405803191609743459131578468622309704722055965160412424197461975444719599155572326907637178630459456934638969268647138844309915545889114354411851021595618646668296168902195488270575106584341935768125669434982107256123518194145121209278682468906211521167548258821039045279942760497120502703624823638299928057141460176268312799065068727095168272738293528724960720346410276782001230366220108395838637039423688679982136173252312430944229311838852909298048970633020703573515798386166981503576967200397956061595891864753841619031843255707393443355442050557347938824788562239667231207220365076189467525027298309588725812514870214362923265339096716630955307375814504300261075552382504767062820647266614413249428097030251355396212540195866310621027381143655036309436690283082274002981500132632750835113953666404302089330720942887836781839424837437255053499602153284261447082405853425778674740239835568541179870531000806425813618050887503668177956210258094894394518608584632038256430967517689632713034359827387639940154781689950183511994597559871969526452165215331869852533212808766800827448374903743681684456355578818702783571713159210701901785977480972687082380658616563512236354179903405174303994451752353111800356369852567516896327663027818602769231435346246939469333115703334042807443137826246671526088403251477016049150757901636068725694421209516616657787271568996621730730769356079185607673178207934245071622247045437088448469536984454542140849481569230863417068403171771139661133370304944187190776364848770195899466847371426524280404136385090197834443137617492075983055612378565579697969144471236338241495869768735378830368307122530039026857141412901315979752033065879316297952524040952423984995428372718468624801067438267937393925839935587304073401220678236434460320097532031478629521320774706151422845340452805089147680881413300782007816447849016476411484213318593246414437136940405525899662411431625730178226697385615007804046929640398577469429418424861774302747672223209378374124397317481518825053245092831909505669213390127162829547267427485112376074470055026399783609631077586432404761110720915128969470041159410956217156141793240682378980572279932712719468611548312100234382368528682814840705998762024029843385037201234024008834658609430012211352878207527670530882919769969472561645717676820673912505516690935303578637493844260683457500333170594990463804592766973123462897674776840438632016740487363563680066470806921037479600594056828983584164776748750033999226596593831230593250057689081554340687571428945609445124312543268375590199006160932624560871229732153182308552294514231367168357791897997585095461194146890873828904033232642746019341603870475884424534862735708208467791573189635068536815314364199527499928845481921954828839571904463733098471097491683529580224620398791106871704797124613903861815217673394592518892755058303162300220117713836435717929696799788245953513713652714665921120560794167429777827623340420032986132140093984115791660696276116625984027101633963329258442758132257773173977364928237901971935582767258765681779840034180911203584130031064790619102590231447622896694724116681456445968943171730185123405732382709958492744103638007925673720253137931470884149638199233503922088554848457998241561194434910107259026620394568418180787337716993739543154886403766539111266967540199804514829633339298462956121335853308818073197070604717004041676841414843155213094070275855657584279833543527682069169917694404209081763893018764585956748656108641670337477847704761008336797577393170390322488071188740113718917801693177314878228975567242277662244697830377185756159739661323960109942103490645438989026554806164134281403631828927603394652229886940221051414113066163583504998606614836116590249151529231873794068672762654219423641624031902444149507381910332757524027735634951146453593284761136474121077375305344411205133882048119263274233075735630724684592199715220092531044894564690797573972258650352662356276939821691081823389869400335876696196349238680971218980664949270412533440894453099259725289295135483401058374922685844980427276875571822250674850844082903163093468908397593116546294126511090251494516027558633964854876187092339343513817718335183627483571229278213625473711484980670349601035901850913899841527375844943915930885474865903153504845007070820313821786195234252989417475588613517222486125789294689043846035585167905307335962331234173932381776908063414358548633022713733792082694622993792330141715534014282278645061266212080958961319170961499147775958515941885635851494142186307742258755117254179713701131898940163926944071640985912578839774109906501121145966355639107459624246564065227669664142256803997320838107635836299794611507105911237188144563922616809228602839589134035890693257345332590628136947207918943354220805357075306483604881969800510970548548163361461423865149600604135653718573189817717722031105326373626332348834771223913729578057088426573914366335990110433630628654196871047502610361767079911878175475301301568210242508114933239376985594063285551443047097988798280844500573110534421170258444539838409512339143261308811400627977888926309718408434275723483019911623042753823745117793229692044492317853829442053183274715379354143804590930747713552823839263784407757368550698264729792629576734345508234175776319990478374886950729076069969813006036669094755632288604380477557611585695306606470874071151013699247299821141025212539091673666782150901166838407655301548291699409305947024194692335588597003141638722187003923267534623980085730339569395177640517028509439005057408318118028434474864960708193251865757247025076627530688782910348719302999926008896606473199010667685472635672677140720022105850985673086740375970290855297415801181972525531999190691873107685317098311660826626532154639353682173768109786905180259745955667639975640445631853186351521091102758532984917799569005715654737761079272210523434056639695800283920794766916816055414210204998084037260439798550599092948397422219803070273672246909230750316428527770796580577204317634037158812529624577656670388970726789297992442637006284736983748167893859699187533462989243465827051061416293701765148430976619704736017988483533504026193398024261695618267060280696120522764989452490658509895065268991019624300341815420579248870965717664435029341741093435391831402078470987663808415796660628734898355161786099949348378519902689290554008891390205667998865599733623554655527155592494078194352566929311245771605111760994484028777336806210623375584035074419244301949313177372334871468047029100622781740971960790287111199782920071477355965531629654933112279025912561394065669503657092184021394346363176001837075850313416909751016430906870239644552290476194373595798786939851161954377234590873328296481584740327519934632965742547095206743670960928627204891082481297655699861324815706002737028466161285179437012089966359026563247684640725565971827459932507067041678954862916152932947982438649549674516575849453799315807884578318110380828175684185679862382052745679905791485867095542344888412069112256058499844347912268557817964214295769180584870328445202044670749777338407630997593579982838988842441137735100596482846354662240802311700666533372833910149604950328929241392547003098550016879747762413079650044794372244267281621273502847124472838522281500622325979875990111850806104790874972818222916404486325758150470362814729628783021933880652535186534278099644335402188476731952809630491145631983077199277402808769267533567737881914658156019402008372054122831360395705427957607366853147421873940103163444803222125575355414855646068894296560815303032286033424506645762919947518014775895265675821747517045313915640098854458296653281918840475263373559694624591751871816516435092693273699459847032676064928700932591466505672682381611129773437108449773448660534146990138597966481247451433999028942448843094335620591795768923230130380801674133966804689102881937748066258037465372288931053358848265246034863731621965679007662953089085999275328448520704122165261004562522409912091714693917276116904686789805819112006226978924149642726221642358954036071753196579284023524505129340878728794983876219999506681657326895370036716482622706186277283296167294790277321902867990710095112058035435064575743678981462070807885867596034672970685826776756078465307471549564857058600655544212238891602815333962242393302392530983731911654751905930178952625414155078831068069338373077232671249138203070797987707603252350959832637598126639198082295797732397972707490040301558304346398106124064065480576770506612896368460847316717987653317777125842258773010003423588275838648078922907340963725005984610261150392806659515116619278423544471579138758687726632270847559987841669868278042008463889732402361896445938296865374925384483701042825518268396637619863405823057276974162798851503674820449395533279384009588637389548588675866692584282790072316348872928648428616474070113028076320587431109069801379354156642709576840799418613170713653095840608823254476672597420495319493782571609841147796638081986092722946619693857194334976442761789035347860073183190883686200936111902335979723824760389932577053368041166011592412606122512694920609127115770963921102172259266199977838985884622934561656070130702170199926936860851331747485656659107142665045410833252751089356016205332847031795414367396562739402169911186709612793298084042333855342687024169998970541268524908608612827074389489937427297406912053533749468339188559147949353650937975803475237077806942658632347064637378769223400682717437906350879973575263720276183271580775805393055123040640921024310416919229281904065142856686169599517058162496331841581797660946039287980724395184877071931292377833952900051928122054962844462013321755471629956638236540867075334203372533445897245033696912790844557313486012291418461685284958893975051741142352179678735927274831101407607154345066148388569921768353790932257288629276922973542040057738449220849155643488963307368849551931617850203219319220283965179268313073004322794518255449976821798232743901049237134539072833942711166281441393958953761650179602028126378751254177671407170675757173913919524232229117598260134542880477835253294568642502304109392270702137033267666818825540101577702129623966377780136562789811310633281289789885211208604135975362734787525755838483834999042521980969613849038675035967104807619444126046640145153804456424234882868018893231788595163736124040555311078842797531322484034040389306709411960614380229360332218966596320998361741861012630786817907906789480415389557786416284660047744387888816831133222052394223517230308977432854303843741440893260756814846688529686807917382102566036643057043170503656366318570742140727753111855470712163121449785242075417762399961193412210765125355066994618593094421219559305481427933177800851289522833814427559299413912692864484846426624155209719457931639585039865586064598965874301282908036791383550181946300111904776149282898412882677958072131455859122286870674253461575752602001250697980451823757251374766722249825823487344899834274649113916442996929000495827358388405701572098003134141444229811500020938460659098502430617757862006875146978949644406773323668628579423020092138917881178194617307545667920428951684874269691065833988739863187264443226411756117403717037778616444809733159781031461090513270845460841746461571362794888898105095208936054612429332908050030333341622962264844611548666762481550260072531984323754057788218096545416935409869134274201198028706655148693009865446117465282495723869601195914814739557069033169632911000933838252732217456084996211678654200974648257567343599129429174052528522315624764354816916920814021791366969978757410318190728360412402008263534482033693400599175045564777460515051828907300556207649526582722950908265737899952526623339555242361632823235206850010316915760763439980425153548759898835612478931562890744875403785591662214996540328915052673147232462981840879744486916856800640161269394810653097821675579105321311414886696778211992045304356145325136912028066070761811654319815085250258362961255287069441330975196545688720038345979264088998692158044803493020957215074352631976370864095452918229792947100772172378464628828380779314267492165383686802924239106460529471418223462562848227356000091618744928694157478192144634463353238066094704257729294322446471946690706178578558354819133236493507074281899295699135374181593954153626530576528968819040680108543799644135731871863150078077720712268946367021010301220687243658540776999478637897736158936914641950989033941715030965705896841652246383435668465239592968116293682058524684446043982544764055679187214937737302145658621820599011623729297976657359885689447193155548718252183773263392800568140356420938486904769743460449977068699758337683469499838025377568154665036706094907987084563705927580324762471240477732899972242728520512100780693933309856222425819198835124946356592571372885565032744306930374941012123177185857835948875577697691426923168155761433500092884358746401296799184154507320901331107089983163554846816876552102678328444457077726930885496631372439934116553745679759818903338146824856384283757571915160495945537602117547585802830303150047506712552166599464060491791511184416116856680023722587243363116287967004236941732773284666471508181819304385005549781186478398604192735571129011240169849588284374737862909725246999304545078841940830626312914483210614525436877863161027524272437784834070902049656647490568831931761325094612050405710630068305517720145926971989260653271289851837015545843456106611438019622965737218908167691164593866374545991408648128592270587826725949451469115192542813758901092712778933286499813777322280929347829126746475116677221172444799900867069924130013981426851912772818588386419022907735435397158332671489976681673734962150817721593215269355966072411229105119044720514958372776660111711761129433721043485587130821282795718671484276203238304402806934815133744205234498235568225211524996317878030775089400012007921413083998923802864214443076269380581090112141194356698137742724438983137264297811625245111238747256852379707807240528017379720929699915718899095880957917925567003045486719100980848761573699776580270356376770258661622443984059081906425150892197757560257015956648396352049949019098789979597934609227408647303101743636293868075889239997346266328178029627888437891846365446987446515734800250986467194232842751752239915149755488794354238765997151920592568872281421040403366279889430530843329190865976550899689526185959569973735259975174452814501016998168496337837012812633158022009585036784174743533904958293992485952880354553822545358899000051462988062570296136020362512621642942681491148721812938195201338998515164644914055370624988515462518342171899396776753987257898882700288865653695417090320367772029342507995390902385535251177163418766171800622913875403042005476931174386821776523180220196810627336578864273026589051063925647895913693012090716103446546895914206310184635776221334499002360950951901433229325538086410149668612368599681734722308123253412384387981517908325813124628446590375875307043543589026277819662409140719061543989057968303134962575945754390699783089203487370782661522974486730241184310185950918157278660277096531108471030853298763826174122075097095137976204666547864090242213618191107431544798294602124343174038873308847137800204453230706092470324743546613760332571935667370240435400099482670211483019223062842815828557689561117582759548145657256772774209620072332678791842763738285331919894302522432618945998735516992254154301272891700056442443731039187289785996668533008337879411754838730754105132348174051131062673002516515802258480026751432442245371310862660020889233770288143055800806594788119388794091898092844461426239937965440268968136042669645063856171561946815820438862344412210284591793243853164260331254262164727918446621196794469511036319921120602374779359093170680125137853482066206793853131770934652659069047646301460171910002261396988309696872994005275879244339633066836433373386221956972847759351201610587331023444663953517770977149784402606041569287707809124759911828106434758140528216545251669991517858170553673151832391912961160780054311978193003545002370949022526073606528488372645786689269942772661142806615529906501620491991702879845377706215975417835773670605112724466345083809103888884701127031967059357258751623226971636379355916114654117564005742667390463612304518673633668913172905298847184386692335039899726552556741518967727489996618318437460562561432097744494172635050992736733846056593409058546446609822964119534879642032543888800857494145436590029450538205516598226798126829983637345941122090838526876168218089778726806006977843559953028013717204361399093588822169021794414792942859885464343398464401191918767072413862841637932510917336638932006819928486233135207744330268283579974710202436175165597054620051246233919024678409753045747767264125429817773470576446481436079566799848194339600262880121445121066763015942183238125571700468872174201520167675870255895075084362985884057368450934251547752660840652078187303519659039858178935232763365957541993782397388765500501350285947918043957978183230665234206545757576346217631642116214505057808918681752588347395377214513652663162308446991332847056792260725008114362502126440896938974917438117730851984887639889661940719944937089284921579399622440107242475951976032413552478531668357982858424042699400047705306510722203838050017831680865942383681669732520512791745151557176905918338819619986599990511152363623607962848752107233676571200998382624726409737065881869937661407969612504107856513038155738776646478466702137377078042208285674503729745653765269290010452207438259011920308044429863325924177275835457080675482079826218648627377738537622530589646741816365109443674138684977693974627818150053761700659545074422564697787855645100518022331473399108192915707488197763722819989861894066411154422664511853138043471756981344395782585260325588375101150254569231571680465104575327716081612475760204943377710072535367179488641260027495883615160908685689339120184102620748004054174080763520707210993008873370971903831739398425212447986268734090464893152486955051157518602981861937817988842786461843265490552666775330733358539890699757756892514617004733784354918167162740526518797304539546205729575143323440797054125544868947397409676835278380151152236394878278909809003176010870265841086318847636522964222948035633790106692849622939086024911701193821521765540244173344283561554589805847437980749105214923128439026199852220665683630942125064854298185916994724218783732799731772803092280729762468748301674108513812859182509747322555139574979606873742092167880252139510322008918700055353688808903986012531799396322190866182402171871057086708822786674113891971943866432809013032814583268295629159452869266875707809285768600775475343780201340287006179583115149836870164740315211668787503317473629652534059170820644281606353311821195026258248114566862145111947187583642489302097686787190044120163242330462821882896380099998990720215770924959656835430754341638997298486833007714130695485985210666371551409753742486988242627732224818236925344184699010596993911506318436782970919466391066146992509832902097230691261673937010271271502946547996246345273864848891897481798843203887699143022594752689636421904635873427340164247232534725880781119082608766792241917173286439606935459009334415227786388912933706125508775729187199839150227342724922542922438473744051216175830115445055991856953464779661056472359946381904839875582791782995100242297860234834263937002378935906737211829744579909753195798840477364646915325531722144751032833534705074912205591944573443115909913997904457993073766225733036948105538411654944051871146408184452126107624330042552145544498712144669904682968536294961995094378284753914606438213755498711931231619403503844165004909543290374203687904350998089700702056510688843406138594185804539379788004509922179612680591269824048600705877334266728863934467053315452453474914922905569101471591231017283798557144954595043783788437581855484407444464143954203951754586116999974178506136360272423371110966743545286197787020473036706897370063912851525018308484945228025216598386082819556621480215956036633348844632633104183137332883229914185925831583390603247585497956282594810095566360901776175725357933084579171679989725331834260713445260465683467358139556994998101550390416176184534650453493854809522510672774452385152602214686843935768108362167715254479671709210494365183766896867929642331121107578448411564635174541392422886079358874527337505978925068257348305400124120254502464288322453818511684020252916495245622239286309792587252258367884714952601434530334342580292911001573707119088813392075689704767924826586071654930217535716925590376783453642980499973683350329539351169726646078457402872873608679719933791383137285481845518939576032187074680300150493888115283233530104936284641427112284014015299713254447932685799681950345260774195399497360896919296953837531103277045099765695600439806282597415312338533185121819564289918787376742933807911290459967148011105027927248860021654757541187606594399930172091715518249417758860451200945090059064149229009925326814388942138137479349977557757135135178118731017242472473969966714453724422751854968746898554958927008544005412946052244768328447931616983122708088449020927340688096066500242749034982666474174560136141582761968544595037010653662010943417307601948420031055913092940879023139262237975254700950198190813613910999173978070937127109167331887789356680968246793985082222401472340057577803605964779903055162888660506864431216926140370257849015515511382293084945007467627138722231401056677265909934214025625751087974368091210786022141143169227631514815760449030021959032085467558473506145466778414129489528177225668440259835749320110472952024197130026653879572054097123877047819324019596922159312250288709937311512339721368561905996017397700119571110337083284504691187230748345855825582078594577801026204329026843293646130086237716473255525752890861344305900217147345039576269051105632352785082975908291141246360792791185732851849094911447369704676320170768330135231854549991103833211805531214461764287828160021395275365026946032808655529412438273301267668379520053027517383747226170191437097678920867333796586768505321952607044788901501456194242869111782377062551125746281478140775609941070709370039622908065933090667569057510267490250370802210720538049672256616771513553411085750195089762272909701797525854030367042732543803974161690731783713405756734568005573204393262725527547358462035782438837448000655976213971639707897567708234039904507149020692611982601123016052344153086495895123314566257381870419691701099132055461184379219194206546766355764458702771589705711751918186813012868239490741769929481434974900045720386432962887176163273813146455399325409602489602236528037435736349685233647335941738186086013314278275769655657010931579037821957271263138043716254422703870462962338413292117073081418597079523435320063422334314796909028850917891100336553090931135815025580264079682303823645877685153797207208371954908154962682333562943752601702731099331578375493995251001413982047026596317134042559069612347291247423215301717262931477318730731972864708144225604527262570055730867299697416479647975456001459226961606664696909790216154362210096516510461980761470854717920529647728525102322452649808759050134310727215489573070418018813550518565456421725125778451821347804007677278812455901763487700736786292538340094242465442797763484794540419642479980404753562973091732091324807473877784325317920083232331581869389335810037598486649874977044857282816854810621965611512354258638684355325663921959090719613193686353331738293704327321489723262252335273946383907056282484047909981727359044449859949648843813902393914758643487736806921721893907005095409926805445979669317392878139547298491557610082760411545030662405295019521028974238395762524025821075670775642658070123558238711908345056043970316940000094714955678137883930961251832980095948749970612773908550195119369527529988985848669002703452679231935222128643476395083777302561287321901939607293709111127354886493298174013006912194988094804778488348821156088504578197965533596972469947883928519789039275286687452216359085705177948781406869717415898583046914053838127300319900543248549407683414205766024706401650565937812269887129866095912975830057573753504687541092009128162235502093918485452240591302015366836728870270192468961782241227470114640781001253773530154351488995783627201975843052597167648832157666945398410284917354864091652282053399389709123353432966905277542439950483089639752791399574220900630282023512576012730577647234205832298147019822146097761042300031161800778326723333702007744023069263091573622983749004025888477777048330176112130666323093683227567765856218793319235499800681512499360542733163683193100356819600002489425211780556478905006728236702645125311134119247447249256262707354206488401934045582303375793562901697637385972557274627891525607424940433375964254196217878146282199483242268030540065867359209289766240658336920999056540220062842711345071351543063219260835084500133514856533443447552526237516493244306699384418379328717568519012807055390190322956789004912399217675676659228539702083568557189749466036945121824117343019313249214331869774594439233750409683637013196381726136715430706597193634439218401892659839908525268745406367594800738361335083803548585476924016185364270190129149726395523906660958669938644795105436944898001314999275579386131654046634743076637244777278300648490355953606201859043827442666827151638426719318693033232308288166418517479705432938948881611775512260297941696145192644323223024211081935582903235625292402862201580299159823775993903346132438965850506526729302018452723465529873896396303631555564599342735531229654634320204742894804422272679264874126430986842062141530013096027017831899601728249597324433956493553153365414248664014347834994757205963965840150298748340472127160123966067611130538567183742593433429429296292844121029742156180875545730903214419214675878329365257688057593216505266162797328027747005551723230301641073813637903333434860677009467371576047563445522309051544349366315063932509161998196028302833972514841320940680595912574327696377557085632352188613004370198734127818046089112199391947920378223450753229581178883072636699350476507693897376729178824116346120630694335325148357721188281675767694053302944368290049244545939114436959253104852761406517179913175029700943208208194639668156189185968754762058291348703112477972494833604182175257105196314847109536030216233164146350555797802088900564195449774100419384955703448038620900449940663518835822619737869590869813095049770512295322823340548513393695022814459165851979765183702445524370660498683541581572656854903517311240284349847088319289964439449920714536352097183406758449243700950018307184983229841632593371412473341660854284743571056229092310262749389531031670725878051239079289059683385998439299490099894844773665134597265603904064702850936820440129514253646429739791222314220767733816401340892790236716136690288736837522841602301922260479257353616894818527204384434854837499640326707012499243870544040118984068002488286416350379041021721460156375255490159648513205162406437446351396763969070220324306297202593507509124722627507670211547416020637742495770283101054209566687845042258989368600954337547301196077340460862453206360485075976605203938673243176309101579590231232564138799141995683787509993727552439016185868785077800455786577746586834979090386824284783984768061846478150940219179547699669222285848552239928827244629326679406157099483466962193323882345237902572102048246129122955237010961934709118613486125087326200086275042072505714619436189482826043396675951660979116367731005077443911011885603270633357935031456508800864977106522248963322713019519883226150361210774805209754930674865690716690027680239080218983141228232662526505919374349873949218556356042478333147065802137726634022611023829213999474417203772021748690987609562150647275399428922333231426335821282941067816932867933746390250895834293059406528879502152679743339925801449342781889864198477546473844355709353806027480958204095305423531149182710420223290219480444257464252029357433303486919178962741796902367584453751853852273820859391643641581711003919470398696047195677035066990781708706442033817420584399887194790695306875865194076288556628331181937982244298413099345217466270832016941389973581063124995600714062891791105826303233310300464250155434727081482371237513640615944898211576024887152342293202049267440999457227978253694308664182930071035547400688356305253025923128886299638278972792359094164981680549622832969271882890322531420532415529450241415563980500642008690048773072667226212423766681232181945249069149597358744110169965041016404375512871418986243758313713191013332389782835677392632457175780895988594751615432360682362616048513927693369663635131951640293832733897823469521152834275244198156859623695650679502675408676219529953805893708807023799468591331945644855664529959370023901720138739663485615740507901161209231362000841008894549954314913247110058511377446687393703544168429357649536888067204515038680055040224376583643802130418760406304119379117519880130560650231481554763625210546088288748001812170723614970042711301441632131685630202055044207125660779602567425205858956967082424269992941068714321978795942497974458691152484751781892265013322907179373035923781626475942017823474131883682695784118550202258471877798282645384756600291459806725120448527226723862995650212205456289098123442829238286737046936889265133013586608284624860149716314043826349986104574146465631370357945580822132125041446838119914594196447026074874102760060881798203777014328833483866403755812561381366872879374341950571830089134450826721518129031863570825643086059482382318818907968233724170996135581039309860096864252931176766667839026346091374391922628893613151909506216599758250957205927906282917962845976267755755573106958445488514317945501262808015054980094780532899371940449599639468083397119551839259593878889037896344771043214365375434455518147761995755636201719051833688857204028366279341266101574747644289688247987703914521167289882429739670032092503645869980931261597065775482630660273010118384364822824256119194010825038352858114717452234556430925930476975054020621087254013850920048149932755357156682439021976616778828339984521448584020980918825012677265379473342932170285770970671119989635057084789873674984215906341838702818210308889770236935119172619540422839232203542570835828625737047185656463022138596884830919011838093218465368747366905848143295482941696138169892813718445587380079179324623634084802344883042956498631821155061599670940470082265383437254086148117461132201108872097705135310066846547529209433545017414913672654746035074415986327163256307682872687957069191699589166446760407612554595177090696467331409029501024326958436689575432618150900930524552791743601331600499886173237471127559208939208046094744666015137536435787793687691210624510943888576803435609664925381575013537651873133337310666536995907926141550683707480846907533983791013058393511906953982079841477501927660811760919758692553437653411478949224331935733252794100134303760125509375588584762468063144214912482583847024810664999144320910180945620310254546042575910076620408750318244241347707940634000044066818418102731266379877771094908074927306769682612899129606650214884980190021483859280238015977310386445101317085668640503070112884152227403968722675898952172483037839941426301535402648388113560036230251006433555668946503599600769711059872763880465575082688122642591958416811188836494662799714100304042973938764331506873049136754933308237701700041434882720472018645959472899917447973005491162148401153010727531353913045114086371491523250297170479878954162056746533205004673429012203469142341378125048028543970460400330765708868853465323776843195046881355074096119158064754693659639045738834856583987985277203508265634228310338727633072613075285883500291595356199084139542285850257023457408146680862969908396649272467420230857308320735303174364174298575211904179229173920118462739069172719145778530926388684798953061811744807607300208034602124916887290333449392586901742095676917556605833754091340031703954369143866427146850107223419172487350438439205504870431107131070647443761978582574811193349310521571407732252222175075762693276232170704413209039495071206667652672483670678972885380833902114659815161334206026537417130668427376207523545183956929505387004841808094293428152978821434584334928587676964441290996061465071476256678725788563875357852958343676433719298912314054409650279348879927182376058248271941143746722967197350506085901519721227422662847033350450962461770470015788917408465855278807147654748061154487931735524120323493081245978325963709170735160903773265917277004100928673611956656341141108345492814355056534615456225231231268039410586518671876597472423218052136479633930285684680061742658627715988064910740066753049896572826396793258697688119507373301290852247626504370632646172236816173846773082467938194838497702976428545433597008759294005798949407190104877092961605141322047938792139755309098535905870563231981180108625148450064666676623800555273995744055720772335980375416390881808404442799721687170773717680382184543403359671860034561582960960391737947412441092422374103898875299588098784429166956975034101814089965742454334642896153044771184287324343811771703355213686108256173301000897364041928404994752749370751685342398602085450561111727398044774432939075275398542760924460205306787065642552416936056140296802156579973089874357935523460301215324815218647323765912778357616620938117322628358361858631872222815895813384925865138011242109669844939664371779991163254790148366640058827301638900248296068793561556932520896033040728324870005339212494700658780289981125255903191749894318917196493972604105105133354284874193549766812569160489188358408226190490028664354047065354144608423190048155233627043331132211128211053597474349580441995893125144556723187738274291662857680550081807790202512374437230350954929820525229563692237235589048016325992123184195317142689249057192611473509610178050235916516307801391523038535580660926827165182114805934198235669144405478630685591303273180158635569266168535999095717891621544557668296354478295292633316379165540260962597478437752449486977591264145773740161549596642399887993148979812836264862905429371767834829638985297196467614164864763142805816018808677115185083977272374208541411823016618757515565293786742833055152493552660410677391736399477120689898715929235579218081980247369594068323676110501438655308675607658180208127122506397571727816791129719525172134301587846703489332270998404798751071518000517897874249455684618346164428043920883506573586887341310280927837577778808019961451732528572154352050205877982790024604366845184942863053798579209175677215676338363983600830383641906662301336312533954382113275114803859170563839718052615694930077267427664596509773665647071187293658600785149132135051440027117862975234359733051796441279049861720597087992808531392780739466892775489873242936737130124344476638906903353047881188207343993155011439451819700722285826817345030071106726766243658223469493480045732125954691721923644341442649192985016977585863393695878140255356627241414236448812491721557219829816414032697818958123774777898040802655295441406072272132184429368589538673148863803007545788520417192500086234481075932220724130709155418522245555711608612874117278492065693178384175772188689544580171864247232049472501960973256430180451197003656787288716149196455886063930555036539833680201019757107689269502527458545258782360465968324520076047669658257431217032612432112316059715159051219584611486461552349180447255287711952806926285098733856073063582025362595972270559635150841072065186697169590124729862884175164741305279247050459860720598863571301746724491739434091574971673482259166388005635157007748907909726052251521361387408889722839689719718266579955021398047281320146399526310786163718689757947853253741508851908297011488293865694946118979393521073072798688860732387349684357739726347362154668024258402719795652863047967479661248410158645994053809473551410021773104937493044328043333532670901116690058393113492898584730151845209534886383166115154742351163349480049046117662014728453998035974067124539222461470686259675810440290312051935918843490625119803596929028993389899274428839328020071027251776491953909631700412366369284437380273389802792590365047514430773260925020633812611886851039235898531022150634800597567527214908551806110177837780376409771152009791356696759546687484519060162890919154790333903702214950061292755753482953206662967531806587447572045324813265047692298584249205063434063195836868939638614748236735370364075300859773042635588960166497134196662381870781835895135437516172019112684099937769867219271804748297102312020317230773488208741775886198088276982526163995166093241562763026688435411127011291062593276188216807827971539680043438837927558693611157156935670406869589945808588086564821244016481914910640480879546981891510008851855781258605940910193013252782809268737430454110802159775561884938648934430148255165136150943387536621399576118845119015521698442371774046339217316602046986376711166714735204145068547149319982141382623157014323745170515458376488325884081556887670351046647729599529564493727946309442754604624385764383480363092549810287859520994962949237920032762563513565832154849296613948014627615253404736864999271382513742275891456694815832980897870114799355874231739896522154016749572885922781513407332226162661363267639467213709873390509460367786645989863296899950062353318160966581383998052157740561368606742293941504732666698638421539942121719624779213677776920976621980664761452507457226455333207038486133543886951407955502010298725857625751297269636677566420953674806374511040334166161933840439419658547605644066656424516090290217925392375203708229666222286267959151416395635781010055756174153578563061488692396851608734539857067536652132475524040219116708219762811199817319992927626175766050624387554773042317890728794905659435875161173784241517151312117819618831828727699443654656869201804249986864699349829188342493030609757243518913559587271063656707665168832877610544234230401245536530833331010096881339846819769790086848242921911626678664404780665183306109545552721929960063332161691806639000028441611156549180674077547749514177136860227472458813234301773075244645145289901691743867788594343051585829563571985501987857249661938687596797585580412640063352087775871235254904124095929915810539065682625980439939018981177523670984816978154065638101931260717892651537649858356527334004566075565933005056721029305404334438934248718100758428514372752540311920208780317602135996932752887273415376609317001379052167424586113509517025786091168358642048360730159157696159883863680379283594026469757569269398357002126432008075168517864986530278492437694968471501108096155901067429580011350365013256764668858072365435238813371382395460661712250737832832547842204713664777584908317646553355754895088904875498099319948922541338162135853437802514062946004701836853541926379519955244293033181984084436362162249218834737993163604827839924091285525709583653398822936401417690226101203481528167490008401534176371778794913034686266386877232145601041116644016023844908900383637152832353286333208606930112972819284841420054322528623081576599112910938861273142951704425426842228830241078973622495164775355677353128617636973347620675557805236036677623122974378214961175938493233703621361397989353089668427862526429094190588723253634254317632215300779558485820563205654789198881323882700169463930820014253698692920106056088260366699788229846009068569606169769748269166368315187463835826707465479495377668498348236009581435306743882242949503413909601170155070370990140531362419651372384036248348033988280241731368703722127255400575947672513075322156965745576382460807762051305964587258181461604836647247116158079651518937600191792509452105533314290272698805150839753237208015091105011642949387893758030969837948378515746542341088611437832244121422253395896527483216667405246481239021297963393828368387865747524399256853399814239527039597743187363986479562158341686511827323099770910954489889064897477589408420205675507987970970808267942872060741808584259418382661336027625614395817173838211990757230853947710840443757958854036913473731838473241151240694487348487762813002094763204242681355635854125259565055746038789787119812851844069248662046409715221734207556769190997788248124223585461112411581410248063780174243793599850902650629671072645552605884400761414515042731445935126806701746913926319503695922440533251334271131336232531125377338906270553325757149213550415969334864883797043711183297640271744871023363054659059245096140226667423431133387448432198511381123738487642526224215513029142785545191735231547044594681001177023901074858082592305085272744190433740963585326689547362572987981943978579416990564182720314949962808331301240917354684967819741947597125243702440727541878686684603101176870225308364612925143997485455254474913237279480419320128786714319040163051597514924624764215843332713790710803195676770393186691751413149540209457573082928214351101677620273968377894776375339058072182406692549677066192486725044547571902714058952234314719627987327805471019931607312646222959193368471050242153659820480102242235511258562295957172918545028007651041906905007235489499549263151476848430551740671078262458518625141106718617966349435028761865206943555141936213170875691180728392963148696088365710322482298355004241292668132974605328817394109269718164161254509961184222422202999150823670682570469541360757079128048704858772101050454701036552630336023177152295714174370541537317312649106555767076430431100879934210138363256834918512068252177816476247806127383900731456537271556902683456689782596216878721508924607831506102946226009348934976690904175632451750582112318446304431503479325447237459359965791273163477035612401211027422330584455504780906428664797451263084262265817500238376291564875014840075450055339211952946238071799038465758092169054429693847092622059427431115125265438577891485566853410916317487596567678625713208755082346814801550207190222233659646212534086038055891425830618731432997759905292257489301970786988355563552548369190863948028443388761825106438329593122287702021258669532096441915195232706174449814315478385884268722151683317489130271870584774988886958388185292788993878580600470396991721825673419601977963680149434710195347433827436651320236947848932501668159369293523081425763762117014412105412605309734689189372947902920001623041519912807135465593910871411745728300391555879783100798274117187820709283943642547478349729243499727378143472150387523635373754000007244706452365391865730062733708526061705814743819411190478777873586435698730069360231439900462363839220007849930373288959435565428474179688782318339613338088936821874808831799444957037778091764609653889247984744792473524348321544933303688036520546733504919463110800851921871749669545461727128745896782045608825460367527112691132978204166161055589237672346902263664958543658898146154190452143863849769855090876750544649070365152272202545458913946647898075726340256634951907553936694020269684853977024700232523286096023491002488535350316439277666124831690986658790881109456622996952891346692608852555071142087370850178655003052787159164010970654210182245363963157183645784085227541316119691201429351881252847773524699762599352194637263729285811268680304907730170803440987120760413562400843985468878309954794887706776468877338767072540593342854795506990997449423259085199911964717142354027481821159111171834609026437800701209878101061256840037910545334235625807542285573135422809858344789008746699669581268685286160095780791783133360602394330154750851172209853544214524836578872763739111407654795341579581759322183448461744812573029148320227647128300626836590232794409359363797030004550654162405614901305524275637742168145586158924419360316473168183408538786798241817914213986881096037322604591609984409243169835555612633360376902423443725596676253386211636435858461026132931343285927607406553645370435753378470621262175210391366264414389838675277057465376425567139618380007495195438504168144382919179037268748473160764762547221035765895782755295680511102327378360278632229153914189648992640878981379754177094551508244596756944591873580002016832439188307005998596066027202197220212262541445617547172696531200917783769039190247842940485808548190442808464028317311392989955724020888363255080453077698046476524000841954168888584069886113913525106583872732199886840108694564949549423782912381963831504889030421178566439738727773681541285239256818836045158242061818677174293529134537444279349042921810949251986260746568077234326692972065814911061826671063001624482502043265126751525021592299632040676351979113294501699741609067632808013524773481770379396187298983167277222823401441600549599281760186594910723134709069580507389780512538513041116779572907397099847853520591202077405049393215506848235146645736099455025188590679462071827687038282531265317269967380314100379076469652543614770142473034218620588072602153722916650904290694819457456576001342978371401841587688331135442898618399008967969146461435238527583443504720657769064345018386032175120012209735417749032179243142350481009802406474375654896235552513626539961518248495360728422960627785386360334893943414004676913596366428528872522247427309393140189627983415624093976780579329845567709818531562994430107156699262739930453816227983687717919175931905901353576547402242845232081506805431606991366735623095000293007809207288566512396005152542586196315051505065232197767349372109622163074717458717105625060341765147154341802695279613820701336804594080616866342711900221088354074375535631487773797034602158194205469784204651261108791474895278581135052760160105705160318922510653527233936943234660275222787127613203028995111379979204790670146211444629360089301577719788262515870974480624813571020166692711795381978112269381892531005071662525261323089834086855380511311855795266534725079966822952161745588744176002915602153839669027047606391286857048204250420808626135784755601448747984475728924809119130927646830488717235373690970729739704845619236839225289933070502858385892069065596091486473115250524932238309320639388435683038985376133135718129691728171892227279886412605689653240447001639572627986334404250545182649949343654036243351135742599171648731351943620888263414989153246549857297570754575195659613600127611639983847233991577172126783258922184056677579415401817717822263610676927414703019244350462051668219699070474428623804730028550046239118797537773373638702766367647325670080183618947288186647138344911416239030878344448613899919459657312299731260259026702048756723732432580919293434895483487547880507766896237149521193313897751646091002970325776754341734937704301214438469101433841273775043116305592662873276928077286504211178853768557471278131451622731442850460478108100319601160177434806018057043339382646551309800410388152026424963817620106060060435747158225773628642858347885231886123835269144498632036218813191369953975957077990854601856004989903763158461360407694363753110082843233090766940120826755795823052298047946595744860828968191987651946254008448232251602414030349603506510198068526146152322434687254852466136210434607098895320769853504573274194902056532167777575049566248120985636457047073047147173803640107662785756462422271203388164651970006881102271128793886296891950036394409224098081926803610221588941496360726707714479003050511585364598730745278277983912036451740677758178453833232228343698277875800904621501490227722102743556048017646501705962455336095215707701086289837864945187682448365323983431203351775177364792584701076543339985161668416977752662039930483066811894901636088644951649332225449007836352461137980816155089917769959343517046818843391666777839393215873819055541256105561288808951564316267593637808689066141142440778658262928094184443439836902355103575608799006213560547755216972713049424939584407690022904806308132482129157240872792983023771809225428866265479666244886685829725278926881481492175377484845212454213837712092306048691220607587172988259649862448324051862143411350466810685925948853070246459149671779577342642436670133537146230747740614768077841058053322249485723615236578724690081759547268526251222194623020926261819392297959719645942128369297992818663947005421624011255051339993419434559452519787063531704306663231837314013645285084921954135701868322006632970692742717934552470447893698252853483682621809609399753216312465222557921264631527202879987195564768730341596582498128696823203441508521410597674436242988935352022348068099832890935620767224876213582416771137793047326442029258178366451084609650432270925338388867920247327765163004008405559072121883389881262641229388911127702108726436926160417262076734054138644628332844808992254413888410762415279273309870554247165631519158552211616677843688577826866623798369521178527901950672058216086785509640996728908399733852499261824657938441934846460319607956725558559616732419430998107909214159876690820125643832246130637221179593348213403561495085575176184813081990538471223294755395606033230045670889339775820512184164083728442689274073195465868545365220319214251777543670505067556762840697988797634573977719001357051852960544354236100997692668783538808974373078079588511364893992396392136431596812912317189674035367195642903668538874067524190990597709164390617592281307215507242315538086112463848493315353376264204384047101544288606877396883925355571599035691983508398668588916241067705428608563562389750389980330566224337122408885645849611904190857390338400684738537325847823949677262625340339536038699329065038623872150416836555741832331012079799929288033313968826401797086364563524972716093446323082617501372670118431786381873795751025416852084415237535339008263016847423708705807589522824349399545096825067684768014277328346803590396305298690130999001049255069664350852247580603115784473966753926797618840206393325278123433014870288947701039893175351418872379499362709804757787499081793528624371973901896676727528163633370100514245268944299819335671409525043315776427310438743040426824052002676159592987038211595844527983666119147487057760422670487066903211045901274579341341941990136052260159415612142892196256300560044615676763447960623879285885204307678324002428646602401381662219954527591233490277412250648106792660277819455066585243058436330533978761581908641596248406864165911865438204347480666883327737825984162884975877154961291550296422234349679006668889406774388758224479732955997657581155283116985184242719856084631006136778697155333416651618334629397335307100917973247743498756590752532857182303403566400642188493977398435786418136253212509869731168431337068381526897452070983721542319155567266773284473085986853025781836982002125744800701723701424523438586834378604495137916588579024241150748669413132969621883028485939585473619263363903850209903341204788252502357512925527531983274050626505209072155291539645792706717278538531351573013007858873213466745491304890232347329926648706311299663973116502851438543084887949945465200855767785494734686307812207312490610727996194091412033593617507994897998088501047762481486317402585886622383695206910662610630376846774695529953727771835554635469353324946363052252190249572064965899267432783979564203181390454367305068737439118051828303752384751041410653255234027440080519460660150234212994532641851172616743232161450489524861627236378917736098737854247343161552532224330895427461533043276917956952947472147803694235048017868031795673441822512443786122159630296617377351338337198672657308640918701826003788409460245122512731387101463404958049987172575978086965146806417312632281563444090601679344070336404227405363795857601666419120007113160011577614849474898605363182049317416038633644049067807219220265466255935039704262465592281410988402334241459792528265317578120554322903250346013059802837715000559144691755713362935888751822241527917656296946425482310769519283822348226269121722759662417897531827917115559956339801841867410272771377274109252620832777197196574731492496677497347004024516313892233739430365986231063834550813962464355842065514802692281473166095512808765731484632258193704186807059161960784989855954723195878935214376390964140211219263327017829740030273421781527137584722931935521917892390305394896428746599611848236089883412239845394796253950382585566618379402691136678320508622120702683039907324077974947582514119976124447571108507769087670076207689864232124898200947499584982835859947077388873051180715748166991901454242671150086854950593966885780744906462538814803790519607114083868622457080665072009459297218267189741942422058648598034343129579678253023971642073180693677187185676184111830716300663123709738057472925748244933964382244724692112704234502582040460124450219947244592022177299944296398948881181532895734973096030695008446872559902916071050483577176703575179521307952195425598167210758892948123446301773565100833616414478236677796869958470722645536697785631302310600354708028432625552073208079170514206892966253636401886597003728686378133289495600584853613499100507630357630347616697104638548258182800544957657333089133799922368386322585401180790481871933769548706234590625884414735630051250679672119523784172475223889593735243203696234306706055012067352369877017110070359649611420171398781071377202839476226890871578607599661170022060455027972407006601444555569276860676889124508070698937560968749773411802740563647138095047766754195977203577744119934347053138586292868780406707581703203814505015020727628809606590942318000365302224746125624530545492807249086882753427529360811497446836975623153388796802533545616412997757191078907958035333345791080536862185896719100557406973285891473616991436135576418082933011027768728780090483023521385717281708086378531855115859318101474036594263880060165167376913357516819647950168695966094558067762280967679237908051830157583482241298222838964197434557663223263378689797845731426860003993993771343340681072050770974414682755501926708340208678651040860527795499033966772768417383875788440871837821675813083187730847707299703350660019965837091385208715534579098844845936791030914017325669815476317724120674210096155549515211030453167704975383322516003206853732449480693332899724232016950645140452021411545846479990505174930987637791695436099382880114399977931952686856093878648543734633656161435235542637394046395641940368762371745037463861837678615266268850318894389496930228596601466186315514886934318606366246619372295230618626111182312809278675128757121557484086115175221813587412261480538099399336851857796270825117367047273187572575826571386131799946321805328251979377496389193013299642291885962447804962817138057838159914793262486223046718468649094709169462160114474302516549459627049484255736271748488298540195346692691459847605846699582567143066532991962494757770936113259059858680329779831860438926117059415723742655433822165341545581626918223264904260960010944970478314995080078392686264110241955249415321890842195996483110142401628843693268336796728844427647315177360147864895902551808709266600291803099020439707736869444424267700302487634207277514876921425570264283963867781100222783847557389743012148434669122749097926972374179484306451059800106593564081310510362823153925786600578158704848089688489042897066319472103812339278648924169341917941262125252840893254040943067436367929494164000771691256013640413839911074200990976177698204835978773028666937754633226648819937015736584327627274339097798748300644612244009499145834331399175334739468778284036077064259548381155147561552366841780845075411008541240680485806937132535172795850724987630858590419147731008259503556315686111522197772576043946535344380922511097654033308241806667620086649785142938041631719419296292061329560908753777119737163832700023560994989345159418609455109042443085188486288034326068085718024237624876850324201131587077382160887748207907055371824045477525525639500566810288451786893071504338386422988369570225790159163618886786357066671951984412703248827909583714051076330426325731055117650450090100583108643856883821393638080482617977794921673046573022466737915925383220827075753507454801297335005224497411777101205911493886845503246642999382903050025846325661292559424669426301377354575242290820500583489119499221075492298421451438573396803142809189393856114394536075305195807035124146942349095757877115443650562705058601066663332609468132105897822418591726143617051601196295897627312156625383182398835488056042968894753973075736199511922223403386038127276552807019858564221514388731022298795289381541637097304616460120754900729579620151656983557605095842316753828841017924772914506777062172641324732383816985555364607091807668283377221883416884337391205069963793532501646021172725036654743200571450303677881460108657674048500397985416292893369164363258500153880462896526549589573195821374354687436671837447997943233797636485968321178272445969903064336363279032063096162976305074258784086311561354129803756034917314178656849918717692983012522077137736988466193144900279898031344016412265317180645429388262998417604603675571117470147308751151094176175692138908811999833988078228180643132052820172690393785198107913663832149593377823009570144980561650524593027346613792983930600793211084008904627646062938243801203653982779783280551349309046004051260851625015272423568333049075139611873076348454900319246489474449256873790660375400710541427995970154331521660919525893024332400010710718994288522689487927843238144398082021961473300296237746707369061728210471039131924369996604990838299183988368170708581606649312719558441874436668943071478333810243272220563486822058140547198036959140264891213471144426583336666353568075699414202838213015998423661339537361890019496542907336953091178235144404873436027052371595789699989767693652088593073927991748484392698885931683855852321514732001491135332518809932070692196426528749110295388660481106392953585283858825499264659556234430389066026689198999334654777439895900605464664785502470464629026350038209711895269892454109091819154963073574068448388611578679659873852969372943070256568522010413214143789613053584929712757517798648893910529355049816973591637771611156132664812881202644738253033256446502769213664541668509578932090996253126917224134283041894709945533876724605148999049404917196276600625721361976212277885115196801168054214332180915007555024084696088934824961465819055780706150072194462845787773470524755554700338056027041918218679433451459635337656436960834205791424548028033542051144726126995194974256079063094827548766911388669928122368319874702381434520959377030637401226211986424518761062516534426458232301647859082306715581144175179739267957540397203612648856617099013340132420826809865239069382984578657643832610394181893731552851410999911645791610500334226955561187429816311775774175923295486112601251232365984508298908324020286340496107108222383150359553758196572968986367893427859340259387879184238054136574964161142760698165962493434930203310769955771936370851287386848110555950353795010861762738823942373290544172631734325539876240663180316313179888605228658919630987210656986979234250922360377811613207436656579476437313010224488564080906872868669604326423315778721790411123370540558778913743176982074791876499492639701496858710254999842863657238832335669551997519302566942153288120902398432451332201116633393081917188150088142750152927800443205300909966115274399928782277057428348508546478450617801831123812518634787247382454685058693611429122580362509551599724240040547150141732227548464059668982819706973805575078882906572337734644343640066952181241487626229362611893298796333715833060095138279752077039355924029235652627560822464056170761404042858231047984142029156232485484642889803266886748692956292407339676556548466455756094219823724668341414334294172797637182598385241760819376508035625536730908396411938722205505206544640634901045070796536277674940701417207303560892771766823864971539000246058864731037607180655407034739466765136551791095559883793571675786938064807612581018561852807191897766817924797590438466907195193958001468854199803137451195174086836560792631072884277447032812772359346534845668598378402404046723187237968864258737755576016667789006179515148769982562426095682747469715169667607794571106738056110391855236679177446972718665407514483776204178223939954403779535853965830819393420305087778590300922945671318769646046693125942553822519167257720147182532443131395703254128964488701500649463201606320766210150806858733604422679146846014743769440701433598120405225664257369456276283660126960856824179064319450389932047903378680556443044515093935004848381411723219687516813438405237345358523381390263312247513492451585685193110735544787412800613637026993463739013454850845699893500011699374827251232354584282139135713418759046368955600441692240459081006879266035187100371164009301457916837706227361782312583371032086977692261107562472863706021921659533607749935336479773003462895971338785011191198607281321110869551267071004117142195871609030917184399275633093716241748116536617411197366066997582766297421148110985657376525885984227174179713430854993798480039038250555694731364864181485288075514364730009898206390426273033964427251424022124951576214022138371690656091482499032294124278881409128350679905777683399210814163869770103336705063733106289563932827493241626687354336814922224753081728061031411990579503378127316753906315687905779980369289645947228942128994529617549921717111571592082039999959513954034450863090027356088890174999688775038806960412238915710593639918101396884836495621355396031401683734555602804376053064890710336327713899237664581403036769138270923518796279716850863926109838375544572717297618957886487103778054158577409258249372293574911519185980261931682886814659702368049748904023695780280779291658515498100544929233421380424767487945222132896623471926749992938673101464710966793591331657360735548324471987461815159025964921697064050472241859769485344210750859519251691247184408727094245713964667796930849719985206358084432258189847328650524263063758917793906019959202002786923655340568899997366260048436575154180236052095119932988009473681320920935153989039758552837620774867274678409762995550650170496811879157248195989801789001487924485580879819995513608994230995809421165004243604189229787723655465122379759817013024355809693140864343988325936872058515605502539482764603366563626510270066596745783506424576243148083788651012043147103150896255528882412937301534688176004131958219623689942364664978921859330725190266109238812169899697132986411216534459846417457048206749974569116449059549948702224639039375986583995968449453088561306041443133438556691323597735439788646379766423106299047262058100419842785881227781195225496089611002795141238377962355907882676025791123969858579376810281424552075575326300429233640323428253803040981812413567906806277783785817974061564446930841701043853395474220655193799958403374630567886585029612685901417637545623842559696787155128805910308449931313514102100121087420655181949612016584603881026819724367687785823966766262077803363772363931312556531026214369679742161873286169935071628606219372615496694338549917873626359865645690490656711132207349042900564970785393347725116205374489523082968608215218459921861622585822652387022840582948345548917009108541933176684586035735645034643331724467914861428331516187246140068288198779413844183241366746840682691274941276232115756831670621975972439402543804971780811624764513883701424863556105494500539394560771406556273527913695290168676960189044671436427091207422857593030982890243267518168414693854577516091047534474572700558551101446529771753457122260052335132512686989031745337490509570799407012200396433698838298361394263851075986449380189009034961222663794332821423175614365654156053507562273797297463877020423661978508911404145021809057488647200951091250517942805108382813900784626297075394154968249922218140455429793813855627847811748050059430346683102228630394934875889822116889099452908072129625119383199516842702031535358427754889993376769924210897134172675263281972548009493752057155780427092284139522989219009579723231783676483180258045017530645298043070462104974454324597612891365195586145575390677221463727316696803773344618245943863354052785546059867848665689748478409789173995762025713654282230981489897460311627010237467537456480692154070431424786850189111198031273192063380634074978936194719495232604363693655825672082018074815715089274860116328513427999030168064563697514114720441366491696345147333789052177996720266165545454540641850759716406845829569024272493716858361694117913664577904353985559626928500430690782943239487193245581144044441725581099777966765783786330374204693045374560889743134698182158795579906910854346053668898188223428326889175915243796326609073547166259113182870780356329339389496763492654331760662065630031053042083541814988019130645110845722579377875476744079974961403331272767587225686743053355034258647269540623460517422908552318731291087014621896937054101662965349152056497779809146890575290946638801573025117762814089348108028691914108501975349498621914874889805789982087456131339246550614957829990959333292277965655782767990760963605027346500149787770782031537640110796219511118603035391986493253594275729033527788258934573801503814216377965576197687489332589264253304409489735956216335634439749156883597916135497035606695968388406098246392118196794329400600637391067727642277477701450956571136119100544526643489692412219720697081985588803889496989898700767866994501598127069704941453908112423401762452035152293357153631568343981688571116944778990502515367741077213441801932565148959014446025552182715717969986837026226369659005817516178485577079792121581518618925463339680681369852703642299160420579255212461941306190055334236825158380877465295886337433337994879189888248455304904642715179989519024874810193886002433448631015140168836283565744089663738353743175918307438051436178215511425308918209017090559968714823599186294311757583718559489406741067256803156928729546019690049221022347542139775542021156830627365093773840740636330401722358799188021482442547321305465049434752906973085785468943126722898988753667560725170530020712937905762672346148231985817915840037170624924629306224837323881242490614468520553319159639558264340638860228145249841327100158268749291366420573422975463412759069544400648997039176394093849249749743157999194617283834573722769197668390087488696352949906710015896779800521048931244005756468487460622576751878038479484718046815958512261220448793303687211753974571631930189550121391765191722167561125276456839182754539169908215625135059989634194360401462826219280179728199453647442031019726389333317891200820428862259279854123484392571071403176201052868688666308119963661477750161301879982539522412504254660121950348668295497858751153796547498582785883005228882325083879378212741595645303475559117475555215555586906655931262205645121100395085277378147168139077368731012827691499349637462422317449763064036367561434950535725400102362368575532000866112051812513356694317331914608267880697267779814693947988956470017736230575826358574506146114813906930849687775690084031135710537461448639756165973042205149798447291783326474434559530704959849396089529139605890761678902123202941635029208783407941090460452676158456267285869171284761340428113601210251562803152897722314618404019719886192081754173645741793924737371026608183966667167245920648513601414529738842453379162897398144371499949556161606889672637073242526554782178902223621968310168720283792073670581584843703583476077642825189260029973752336518233583448944763646338480191850585121693555947878325295531159603516048657625430350256064666813139014848183196496028700617880516792231157179300662272944159538664119389432708993101329893353166677399849220765953956138303323409880683277079070944544913202820765501399072320703182536197528034589581878946538440601610011191027539965709015932659142652458619737090716985546055173433087417733929175584219686911424868557350834310281930862313522525269031990709786043688540301428893245866921143127092298549132768969238470845588817367080112819745496191984599268382231090422120661246405889645949735004784795243203845221754668285871028563948326845936681151645277591134500638370424839860644136710477338218611821398840959769157417659504903632420312007513176911398397315266437473757177353592182100998293273883478285121535765487530122444022517478043776870396236901623259922378352036814010090086596892960170327935367302438693461340224444808193161474582019405473843909242461244705082812966990371826023985300460748304653223467207140433075973281533393425195360686877325657825055421591118723725572312901825345319662652177261213998430472632565796729353457798840858970137552409518509350309835827812226118699002667920059527311610559067980144893491258778486665642010365171835526313624785931812892948159625422092860481882816113701584412729372779895444859375543152431558012519593368167133656098772525420303447687672859042354331246050512963653928958312905870650570795145485936462220787917368886533516199688075496186862919087950207679177725099572246913738624853694609987848245802538249601742494321810447405276761297685272694166813103590698722154483792391968963446884959323403440356779068926322550673493417770908250777019549616760528627513258893635940140529970371151342655039394018780218339357635459492776373071217206831946229911734850172841808870093444191399544683429441370883210626701930090817560585057974520660517998165888055557727599153552051568559691426874067892842775845136768780113006027950031704799801587378333197041505397866394702301279219644354781133091000196778551373537470712948574844535214197381030940678426477123739608751150299490251829710426647956003892343174020429846726293022242954851077512518043699215047649899293661346029234443218319408734712091675300066716057746185586257542986449382031203556631540979713447866177576700678316349005999153868579751022949435340802866348103680347515308369854955460322413732243519611383702495728083492101380987879838350252914386940121430307778490647673623889187805307399093657674087984257501033793508081243711521645407558172198625637503842883023988149556232527609381643170698882891811832342076376992286637566289150164177793890090854440780590019990783060280867985510727202639068039441733287271984988698172507668798064536176550559409605515805931216196643589862018117099508056606729372601003233807833858244006084229413518469879522008055695514349710987723875631113621304756806796500130999070844488969586261689001749691676838827347168982923380535903516748518145704254586822372909360109902980420357273447017786314435808478681389705592730884826088036079710634342196147407355591057666677148112791808155931169744287033373943442414111679827515910651701276285209767141018907906159810736815618768492493261023141421568836264696242412611296729067229576145397563153616801133323459847305892116214702336568669035304494132463755044836593383852029487439234780236827954739461553941362711619817064294474684871456174943926071864114397781130430549990322422332343469287776649225099888631714481024580150808253389101167167252422427609776121787965820681026192156672106840144534738685942302082010515339303336971324437327238145392627236423013189571933316813769386930939479611243252605466703155147420741947740511011276695001786000377976633637787870369014961696155822999475331774180466382451323800519289271228916385188800867010946423772690246823315758952064898545856404301851474087381135317192536278526432148884133808788456648925811377252823671672423711985130649964747522080933794323749245473600129615678597588755470106243731622376856423490983811035166284410061993579400804342472269105291584950159444558689546636318091254029801501066334337601145427270113046540454665156089767536850035103879801543456356378298964761632389835657297037070905899637814017346577088020233203880921025083133917280676741556448866174095934778470940834331042993475385209122670045523911518982363310077373560891076433587267081598047002271351102589425189700461969252860715372608011596691949785132164529717103747223676697901396479098273574020433621743776013289934727178120886136742145874168822989025569152866653430914364503146170095970013571801837425451850880824402462585589463073385360473876185980940028812061027473604868294219334794305743239633921320992578067741784144291767956204819775959043628340091327805153637282745064117213614291817738613612389845877605195132097980871466632622647215353386780373769853889586504839229845561829450010243422565108231348942867856446228799967787580595719500063007312465680839146259078186234181116984155190519082001429369429633042552218176601700237785548251893722745271166337285240951987869602581013338616953983340166878370806254780346138906466752473874839513990877668777806770561125531497409780785036858348417219830307393497642789839785437889393549637574946896966407597526066390506602311853480129976250700843897014601063788067035969115234905203534506676805599847800083107241519270148590757886892965128834880667471746513062398002378626446894015839318649314304391271325508301921213486791770326883093596764401510670974734045523590974105151233425543876194401674438893841927532024435995782569035365154924698481218941783143756587688242571905738562360619628551488989671485992357865339814525198063812716668897184964557348460325571880280465396700919646525526359630071899367605665792604371269078469370990071196671551229616736737468374990598559488625392533512549717852531527232209664157038015760555489325828297330405586087338029439285044031355723337989434131215453986136613575403861952148401799561969419068051387386719944217302991521069291522493513798985552291132266565683992786278051274202432540303012150577227171482168557076958768625404996676690525596417270751746237743961799997307551764004795082541192222441310963142027279331627161927121580751515456502905537804144517438444478847686853088061820542272824738269240500912204047826631892239607790709826543496536379031162463974993895611593309335257485455647419050649876455621502674478683316514172728323644858705195392467353580791911066921332619580964285003409922642115321236556613795368657370419866324569010273862229131286748979885382396213951327883528640956024525354436888212464177895669997767746050013883395724188582054897974928552257917938525822752522634028865075168051892790248391296554021679284113242879998943828543696857855256328019974953947174058826720049475973794647178871432591764813074472176434747518177820266061222642092320372533674177767448595114385603823522630084340977429325120197924809379557708920607814121477625587834551047053191247955816088652233868668623120943908317555776026249117104410093377999851245165422237192064053787722507848172634200584476547195834590095526055850066949953293386164676019934698822037770394451118446951695837617731417462241179017513710254957273235123360742185394001059750238449707636612410326961294022518435953616879110508751221380348999728765397856707187673386108814367582340086362247109276969770549340368183699158384966537129097595191223544231845704762967022803283013600342612937512359000905845968198084793382648264280064976189349650987635246700526969692083583915725189260960234789168460416869582707772688887436153268743676445218477800377189196429864625794214988439803458225963455746184981854264347282360395596591931518879743716139199651608965280950099772311233072061518793521443295232534779544423839607356740848420270113175465338568684303382650109740607131726038346400153043199360461202206705543485120681829270216050486282190145978017934856378207683323665828578569570260415723091614281930291442386311225599273545675610050884468882980386935034475125369237007179583234729451543387693272480736335015053117970709329524062110209707222199498946082172665104693403965919153367547816586900815033114809953262355358813071972267412253395602816053256409337016296537051619285942464953586226722626776127264092362606487963715505795290429889084024226639739357720182270650287949234122074461600164895218744701024935323880226433777657481305535189749541791877475914105883549085192384943246075527065647030948191857066655097358025092486414739734142765274047983782565051956322040922848208913463498758321461234705703441826609524620878961317752818017293051452754040137274452586622264560478397155171121627166582462493965084327280462169625790450903186719060678864041017048978863634218939477677135400142760022352432906169992172520922846453625756760513002197163760245063586676275189953887313530689762765452624773569343983730266927230854009730683922025165341012423431641103331831864502438508689123581789430360164903147377310742779530832122732827095269682011600687316315142606029297274009325649610627718137486523591694599286084355403084236617448245993281396474332469199112500742849105156794052002917772456902732082205710348647577643727986865110652225981635499936133203027513114494809095942651767690893586873877042415810961587034740563395238627303244290358039990035056295329105658980926619982979706560736048314575539312124970087097274584503818329109258203772812500293432611920822389988312413489826110150144987143256809783819255028078182978051933261550297639292360096632056971299251810591248419694670324717947735946549945665597602552640875731088039971444432609702528677248456695087647576009728937145651183189599681016875300901191524510846237816225328319761400921830699514013302133918878812827855344301166481767275815040335843761993346660004011617497719599251437307652418040503346633034399892791050889683576927643939352844185005965118905672894677796965706004224858004161440048964282108212694811575116712368677102797160679314921549563693656237430936408674085673289522304463069939909751254383044815303611462036068537212224160374242843847244565242954713663325419087122625902933350177557787226420906366266624657182894243724343892289283735651695182739625277830064762717223405690717351520259456722111761948488592580801372462153914620476499010551813848557102895702607193830862938987920074954335523504412469648024886302354627155584225509974346341654504718234485639361798447743534967294968285618046751700566987809194519653002044004751650321698825540562930074372252192214983615790077531902019020335254237251944263802296977197669463898919619892174063043805801819322579660549514897390176951056118398796903252769905073570258233631183303493836191321673519399057722845784277346641895892371799748065182928377488149715120495246263971648121004843103068518575386431834794771061322118579449719576838463453548907773972966943297378094540854860889955874198201072514120616107530689723223618807680539608875746015565472668574471678300076791037363539405306109035263956766799751407275245299512747261035132306688172175480956331087267054173018140875184780355282867923335940869705025045651401260281342526473596838406011555499808543079248553950762442758818023939454003904692652929629205007501311911467160335831446194581332789392157152891653149695936698204128971827051777855774511440022159583319049129490264707335524097088317804230901659175975689328493828944847415079547442607244557686161022563530082245850183958210261902281835928242714112392986024105043303914882343543464787654361325122263857736566201446963155546712421648372819541308311628364327885794039540460351089499857786929104212255391350791331119693081966272990185159119716902557211244382862322318491164141853542777388101492159182190080303056834804645984888845938216082726959259723588216187730901758058193387619189580676405767806858133778353702250764416747306240693258099458713844627840968967798987695162487988412592475022539401124779642128118848967141829042201120115385174385503868514437473035314751199653837838516601815599426182237924693046867707669020927459593570201390625253144301754234086724825598699346952487414863256570234129745300308126987028097006740736588375900775421064963150257395024926697629248583749458829222340249435108945838850444626845223492335619991171339611232940126842952847808486522985200984033863607596237126055350596299924117658119498994324591109414687968057866215479120733748793870412820173246234030736852744067361116299450401099151752258394721593382839012234979981680771396563779433567139276513907639436971309897836037139813176978036939235492894547854595760392150642448382627880912228396486552435357036769683332256567214752721606034361156892276527257532489551196074199101538353445285969118575713741715672112976146237989734109662494180713315434907263611360499003599511122676998136202247041943301747312002162253372540515540650849458509549829860214461305482106653416738901607687050615102781762626755115096526644809383718269831314635050446708606883624897389888997589521976299675412348881370414870550354755657907776947542125370942529757377358382350818171915367266800936432294406012067444160813387865394362314919902518206521542619231055892418121822876824602661889321826997502112256850348711359640896301047683351132110521508323638271905425171358824948796771331450911897199135705582350726835930685768734973937457943316129483576559348145488623157405545370515615567568204830619208866942644850692683156452127202858574929434175619190394290103823892676325877735375671309497722087235088353379475941558859514301233245326077343477005163736307870901964377011166342620875553907414665404377326382093087164509659083416749808703106331613943582171828240657363732121347787905994041135662129789330647969615154641701134264808754654049026238212126687410459823515881604341103477253914186556815781458142574771954483260678294803573163775705936286983653343836997558362993595669226426844644077464961865576061255389524737488177489295622649479456257849391119652337187750062204896428735437723735159313058370294855738232846660977997376434913125216204109431780858480867877598222552092900390576267175235459377625487886965643180509472019981879526091033406386555888525228490578774731624779289425651586759773503491882868052667248352109062368860754758671861453472211095677518474330406515408725694067453088451450372398278936561965784779798615436981487955489407423444514014315455594690430241231781374347218211042227546713125187646044278953799322983243226258203618973655760157433696154048217682979754617285835442402155895901618284651407704205682844245871841143456619228009307188633965659504329131208869058831299067627288413969446755254967252963202407271297892408938107697643603402604219506091750596074538495787158150199979096505809730518734909985009816832978550820154663157075079781079936865461772644824298989226329610414298000476969154473363095325809883679046303792750820867109470069868856809717897826899722731871797505291208729225625410676125932234512561201434464929703403637954919302963591226174890018104596270730070982683302016480362158305753359413310585988235559107514779867206838225865015807209539962515849774752022874232941587453642587215694604127892187203213540995207167102524075226112368529287802139667793157516958921891819465297308694414001621019572506683446109013531972861564507693446441125464581463938528737559870663634220214810403372293692230317000111434800848913305923104907017811740868132219121144969879085769311059037515306562607776495757185393308873734669849891303074814959735427619943375731906021119014284819046253581267431605904555976397181754976524398292251957284644129856914693487140094778557266833293560308018587219339378413100477182831827446252696199133366603640213621031392864308228471403902342442936857563129387651591500344786336266377695804817846543127368524153337888023339581086794484175411283620526880338611012345411954979000439159825613072300947456193392706679190324662672976380827485214947016722914053145830912931939111944963578033826674843570294703260548450028815132982967555159672890975270937881431253370923860216139363651695579995729805812337803437192979840892605644894330335251773055026350287341420433850962375851470411492179345659342737589348281458097437129901759970053356310344248729444848971775245486883489000418883509900458170312764466959248545876604496129989770298850341161345985038599473580466339423193223642515209480863902956412010847972326425809839494245675120223571158349311373187852118947805665931295115606909379692535420472451231222610915393680161530425010060855734027171742591481194440504076054276047132445150896108255100104601634907362890707496081338193627573080795826890999577436892632197600231438119131983854031416239556487488594652203014890817785130467868189747790577506633026643660795701936759120011113370863063582088337345853710182382897359941124677015937577137047843072111777999348782587317118781326932902979109903288070621282194222074598267190549479391283013874797169876651946594028696331979738632150722753582457704501745243243640379997318809984660160845421688560406312808760544980482775528491089468493231000646582615674500330937043548420325987051119907853278265361213235208152575613939956703226984443058750844847171567788185501481136619696598886082780476778263513654551520530536277111064446066280017320435700990986028551348745145550903916960303820152256015145919443887252139730038879964071086141514898782768923066170117639323016067137635308581058136074514668728685730568692101117862197100123295560697072180329438866111116674946920702019893511928105194777246004858000536553514072792738510814957525246422311039771613436914213949086603855035028506851506917841404604541317352060863198785211441483565577435306750054560872416859540505894241034098319873423894178071200780826702981556817426861535243467812159112157121211121504890135574505272187321393448494596321220466428161208910648781292579793483321718354513714580703417876338690538975542538327853068005199819920192678427826191755881927626360687747663367386634736011202865032538959600808788860466175194307160349005545351651858657581051797287564973517376002761020779552799966190151699416578261037281654370234736696175697374696436068290697449537887534546242666105694040122705593108056086192337116950464185215674341758299691476182117144210684894007118214817566956511583068029557821242078607949268100955269140156844653061967981744901225582560542788417646236150694665985796634090298658749222299164916044092249286820438323783430735565831437381847800159107504482647217634329387689172227887490803391120298340005439977498118625943166477957983943534615010428747430009885104466772700396321583732877957056167115654657830219986231604462145399510448461337503513839836545777630685353855680236134764804325768412524871468529187302433401089316605534141243601367101235447202707917006976034874535250297229405992253149282876108292553165620580382629508910996247990985878135955097132389606746461631576913353247739323202342040764148373505866908834601280695299733610638158176565924421144188573979770634996123764570250062791209379099904641516018476749586128081667291444620417762322205468365004165780715683630578476147019740208321441482641732828017584322708874215987866177962430227529145086541649475305482181361422816773229884531166891150105453731671202625264072188596105042818874397652050128627239340856878341935648126575241959410558692904329659244208733697620458501321045444354451821409487003423400621428622473369099229100247209626788498387300062921332044661879801318079120610581708155425678562907958246938227623551650930487816924396881761279285182885078305615953021225156545204609702511212369550102058144320765518287204823746919586170193640874718642442179922315438223747006386913251872025990467491137300122736317799290931642444238560694104282220627225111052012402469258819405933916376282083690192099659479229118622873721826972544938984813376441617521905051643503715460808576417066376479967115086180741141588324621401112889450056298540905170966403600717395770924154148331822373094618967185265200549736304478599143402458951329645516973067549493223921441341489721501874665351661390074516132969525279701490695952162926883617324477252096115511257852658849598989084890209542724506653089126029536082270771742757890190854453848187035279307064865028262234076470674619978728575691147222137731074235860847008433802201748607298357969564127363589290091999803727070453589155418141213277567484011501691565582575490818454741689252287012326940506488826259588069876416602988831439417412290961852590554920891194108056745993970326468113327117707604334096689289491173021292560471443988506521504685274381351692545385614274554201935667402714152682114748232983762895505914573445520141317317147760831410558421549962363970711692393816292064511231863961372075538741589055313724121207581982096307581074841491919802031143924352763702490088572215242589991111469148668321823780437093281135206152833447112934950726587135430704874581383476922091350203610565780900361839831434209423232688526569243752945920005055788949161656860817124242267740649360755711160483918735604663526019579371378447947336607408319886582008850190896920542091899945934774749037732994141302214735160359032676673658889016915939532664428172318933751314617132805961601133084954954161369207934518902473564755996471350644644085771328692370580269026309348519419048597012354785619239506217100062516964004522908660728285482890883426128733553295163111647729296913954180076183952993243864274162634712153482057179835697743790611142139747373754959526213194029732430557715740953022308045409014427911942170049262632221396303288580040604537197433172952512772335281835973967392391352615245686016149885012537842981184639139267186251285560298629984996002269639963400869586962445723290616270098290088072972458351080797322150682789109058202796519546491466466746522782143216117449389278825195663366048769033610363103901283704458253534572180871442690829809418812612912569122482439074737530177227121021549726909563199441544626261415590874330318201423798826397407338357205033203580833070047371289836920868254346845462621857416581920773417663613800067369823959421397053248408897753004178246310563070412422403949316280521695741826392463027777261073656690405732622301304201576089526755429428160465831306118829731610413674710118623763751359886194155714481311436956133384196773882032038770086079566730685113720570302781631663906611225945211761790106175967714113339802148800207017272423865214034187168674134085865938338835444969307993747809333898214196965365714879296306615050710443976315580415933273766619288987942808997084338526461795840502910888673472083296481802993534587105330632127876119437465998466604676224270605599184702156387971966632256888780060649070666052715368889215580668022791674895492822705893537981041504221267749824907296502809571879056539488329377541722821406887424105213023927213989259242547815136840670253491259035861886276996765659901829514975087303324243608179394383067980961728665349506030606936122880839149236503533544833755775999912568098728966718624849671087579008654298895300610484792471187932387919719505507205820414377874605257745065870593989983744558949155245904386979710212406269133734043272877807655830453137480435401427125420367319257270169994825737952886870715502428359839857779473785687567998221553038146373377311455402730766236539282876161544624225318635800575686080362863830029806515902984625104238400345110242154529193774067348751773020358784565783028613761445746458968466797489267212011215353647786470919482442445698365479272183115536536282388922449411093146171975121274091692552274475892995312490708937861638036934866553617794365039905991537231547607557564228548890718946201863921315972521113735727878666314673694603285643251770346298410424773192173905256326302946639388760101436633149741659831708972243659643848089123870527723111023912080008766595232760088943393821822155316733902658180672070632152122637952339089771246073995962713536912274718127863915381782720204605446495966132464743387875747280363920562474944739890116356398790855026169843343429589331289180480309763990912102238943476558957687974950425757710019865057224806527170067141951591650778180112845607142217249016502235328406284867405873104868626944973412859797987562117293940236396670144583631606774229460947429527923188885832690619060800100123111839073568495401330751564980903331181533672472538490173025618417175862305343636990993701265054839262203435853355673340756734069818902368415099884972145664866384721899417233609041346023588191488389516347708986419878587562995885906107771715234600826245956775060622677088993090235715446932459114113962747954702100026660947899759830364304131806653197716480908226243073788564045917822867276232571102964792998801571965112863935713193607654157140570636712638778520449360876573545299380920519289254457434636123813212265798746750807399362572269802631838381104542641128964652259980688476926714016893565332655119229982731026663894523172363470270798232950129394977331577303619874965000760014530555763588746773170510578996851033731180691061589341522424786151313558502419430847465493835502331939567981651693993031477322998328090336036925639867250101557909435028525054967077659767759444203486274179586065732304097325614988367843867850976539039374333252824608151993939501184395304490256743232609169761752209826012526640190586259766703285718947190597722391204810877150367093653505263267560857688128797529659336519419882794943973936163688280275674881440771995407013719408065991800140342715537680204579613939229289753412118600698513376770109064474675676422562767582098677114680106366874604902274753367843856182987301962831971715547575235907297813611008867619903357573591332726125108019790213754050619328112653343487660152025244533102186770639928560101770779799000997333073461622324094324630038158164513582476832863170042889709735694864679340000966951768267400944295850537085266116043917071315157329988530852520084071964202759939053381151951886391141370535822760127591653639957471769266913100542143179738914287501001981396646178299268544798608735758508045761583051888566754184501239067032564493163953635499466253809033127106151721495653847237335242716596000860445330935096033350140443627510868117773042427906256822276020906181598047128300768558653971907291454315802892990147572440095841866526108077366079388950636074144219627762855572060614757959200661319292032646541450033564335732427994059854268199146916300060335541786722311015026240086262362885072524145896963894952231791349569695882340685615579755956732680362548421121838430568247301472451828999097649995878047719188822127124058104152860478552715721891204852772450131719071644176850663207715382646403537540217395798734993919788245126220187061271329068171456607438075902391726320661972210736813723178618862995351534802951722621668139420397538465536143536146989017590843404279772804787611353848729705161403311608854525209423247201217177288123991652077136294052267887850652934797986041839267661207523882105092420378517322117526520619304918501638216128586699085316340116981236612554347216654485900315302913151419418362485515873055998407773034938730761530163039742047355536847694565374249888311645234452767660759903363139798227149546669368874831763446228720489491647224495893419751633177140882142578187235687457415203840383589602383527656965024090592464022813523955757051421987181993567599830844230517833813421503359376132875765512200249097624712053632031530634540423472892984286086834309118445635005150606394146459118456115748952866967453347726376672360805085134612270948935690464166200089409829318117745988109906412271282633910799059479237199978192237569397101949288012379635127961599046856786534172164041038998367331604139868579684636354317464370519620320780861685757811106065288065884064076196664775553005600803126747072049085203337691622622146346978817655753225393902900673414361289916415719176517383347937671427742679260542846720941517583441740338939404965032846292094914975836836300130658858419809080517710397234240084297679664474110087759729575865053283790149539812047847283242643750288617991507778803927548604930975330596392244653846483608880218891317046390011713670804933355972213144631283594015367645936032996673634767900870177593837722328457061093721628919328677057816160768120843248724098358468303813208538081593770994148419859033652712266337146657469033929727027618666719087076897415908037008230272647408967537999727150871926268807783574402769760798492539695226264890198003085330510616267553513436979585151559529634522234980007833214875704691516763274706559970467810929214978079918914044594105628103951869608184524819207908787993297822289777238238781212098347486907867820948060818591923548707092827335648031605450132876611388995777985902003603781920128446528180955112712562359447523997821364173280594833227674098532912248163854958320718603594042277420684962731868591296918693038480071709354493910718862333323610377676417912844930639595826418063917380445106144841944097994564363302652548741647959159684181189836391219463513665572184024501362735750845767556069830759908599721646669177972579607330278606612126594327286716915563518395168748951768516694287960933709654103347125527867238055830589089807426101541775382328148729514075245475082091811231316866120205763163719306674946107022171959931670307763100260794796561110187868442123576084270943079482565757247386813167143352110764944288045832306428712103815213969984004221773909256021500963266082067025390374624519218566377980769844617060941291282151833666907360760232841514319766732651502502393214775389491944850734781721762721549598859393965959879481154485766990068237517420115582586992314655029855219308195405645989174549653928295180116201010068527501731947110573092420624114823834873330395598038384142810114216774682391056344689203153168693295918672761125317936568084145805260382650424962961670017009079582909971158451788348233828889056043216491162541315454059796002689745257511953354785198144518101313865495172308033601598183940107942368048722056512696775885441435104229049859235155849588271872201879984932326456876934141396641671816994359550212651696428819158370643416262704377172145861547232827676929687420500057460514291500316129480585149478293504825417247943937278798616246743033498251069683087192840806686936954146455346095480449420026992612772610821174529728665856222651014250594560931412998473466872749218409286488394441326105060358951434852943552214622761972111235687688374212252452120644308785935635160648490636378053300605375751289604677027921956472636408629756103561223123858523379822909848240389678665429235771747393428963109174009528666905384712430558231391010439243934914525827371050619625250012308815560554343496932821831178680916081055695221660407420832373521770462516174204313640629478935506065026770785817455702527329738175827038575147131881733812877525175114264825532116054666092944963979324453606717795168286887350728558815624747393902748626956148638481398725956316338455859500164758883069853091947419081458582587718228361409671312450975038218607738698861498607253941860346705532300711479364109676246426932259584079954492934995007467745149038747360227821017461187664489881256971284333793569073935909896494212462636725975907062627337237955762007426113448516814696608234479163142750099397543763390130741576687618278302843289542928552797336009389801195928961878204206194102460134345628103959347132208008718413898601093050776079650100536290142015903404349756308107102318578685254205816572994557375595698777306904600913799036004588958278875931582376986257512360758025905634060549080449326646245512544643453972511084030764563097547857095669946824575144739904428158492994393913021180235003858505728003198900720981532824423914140210322404822275082138677254143720653003124920611980782134930394429470934480991501394816603095369342564915503180675171946256208821382449138533005662678926987959300288311620157330587320320664843634931268026714893894542946480393915391226424513469354362721067997779189800453219111601182008482446186557112434386104069232979660731538768502287943231008890160700939915193692400212470121292695538342544270846625492990011332120558580060461890634314767106161318626272372937765791559467508372453103730393150640047848591896308908287531598885062953864587605049376658225293306667247453447842381279044002186981842825825143970421772399908023100182591065557724294705187311414586712905324481032182551605211248651082212268009296205927230079426300745168268929966495931617593112936769562262720066443581498770737156732874032278284350169444588605758175225475825331301055903165163088864111974792165858542980392762915736445277886660000104842752333642432297512412974896915820993077739795723385652567880140970014310462190134216023634471088987610608362409774721386838744370897509635222031132888418591713728537712962278463869236519689265187171494270982737025203268793963146552609405735000171321083481937631181754757996757437028497568072086472562554479382641147263432686217089071130960064174573008704972125780755107288885056127055783952971246497580895094164538022349529416355496725573043488465246161563009584745804802803512205583130886419880282292926469717455915887439589827504209631159358987320760974784294445196197894972815342392007435612622244381781351380349834365765255486009583208453792469774155456258330031185132194235313581804514785133874060841760838244277931939618891219640722506429551017681548980600851010069485299567831646524988110700534224800744852146417220518304719361411623131927812239080311167970049027265050265791042617935233545996719676456840972743002930524608644599576964083056503774946754894687941437970669246600444451483103016902761071561352392767807927480333410764455016587119076126928597393590674049649881894704227929953784966779596111690792806624139383882883085423814491656203520799542299801802451706448698507558029282627918152131843664662968456331450442979997229787587838056530310550235802596605873230587756130473157012143294532207860351092543639607302551397953459692616821026611797705745976322350168578475679979295583173814847207286388612162725226764314965406482379703262719825081491603158824336318469177846690762130684175845183225369524628854858065701574614921366859567783325039137875653811760222288011281106601746146925830355635306317204434696759199847820148780105816953240515618971041916482981754734177279748201511357989375369058398768431513735635008803291236593749578013591965679467753230303678085888781580949101686694163719813728620073409549909497619252491196560817893398588595669118151361133002533287110608540392006414125619635331962222040611710891701192000581085158607605155395663639518752234955125467700860048387793367544434393721631046687945760484143719415152566402592489119947291414710358966852695779504736333069986202574757570310125240890934068477739674073585082738509522843517858403065802984688191739394619912470814648005976362118846098722092044198734105282320530758282880233437857196548075018746098875231954573006900482751422481748460649693847729455863931487739076593907036909192986025355805563131856033974415272005002352464010893870302073835650290367897582931584037236395112841454717258941679665669122676623636198184023903737061709324148368463434496151689314100879448667466844869061885676592667314191487638468952055186561109319214495222569838287053862457193048956186387379832283585355350729627407777792945404696299690058636418056356132045659366255288246049154443018794882225742097331381887879688309982022677293540260195665263970257461478477166273817671541527968341517127168733866049348417200152185954958231495396717973966460934846604823094453720349762881601766661639245124614309360277166948960997629336119682131225554557099205709776632039173251727121036847950863577340444951562037278891225441908038603169647518257307518143300441722752749327177720911622528925765440143452097291238802695692317991452627741994483414356455463219716920347549125433137018045946807942254821488230651576977451487213586521863669111186614652221515590260949047411405156407913219173837071049453819407833317008101496926528113637587957740704509845933769270249084126915152926738482724761388548478885605968419858917136718163504158240469412117579367909712517702327466943704000835199892560039525651039794445665521944808440197857487472781841376302374618037951342186840748065380295055028705358679284349420472745883749655714476708862802047322991953228350867798718243164462877327106269522198438943809225288457726371486616887032588106265589997314509042499196777548460902196187883796537030360696316102251826523114395173512885408557229810119616413734306000313500295829275973809673923620065513002837378224652195967764208186376381085404537566435512124049761568886496573428943377317957587626471551687246840228015840927143362686178837821943346501554312906844431748883591802198985484117740110284284598292999660221419007393057648004945774401892253061978518590942868360414327595907747287415058453096913228015638875023526003435580400911750670678945623146976739239067059462585538784585928462459354462994994638149461739899639449033751037222404197680238999854606064163586991427500374384861625478018822998691817438826800461549271132969076311001679050276661739903785264650258136482712830505916062512643148379936403386730984598067194595825737087079684751268405792703038256996621266349291068456099584908278200773564426571018211399477107870873243951435395987360484276857949062121476055194497941217848090028687446276461959792304776641911330744856993946961470142708186743944237083132774472803243346318085816670350775350350196474612854112849878932737651635096277858899305911935602667338024106846902372849879502417596318922077282809845174095225092210954684450205903745648789679770433503496574605795371765778946883092074365169742028167969393724294956371656448727062531869189811181225431436353238523086130597437393050425659107362108532723345447239012549812944786695667713825709680712264585658003275933156443735786911723057153992963704126378065553090082157421369756986107446800848375128567631285109671929332284407469566195587132647518633643678594029306849502208656527836489777919814812500586171662651020740228566142662702746437115375620667533975955409474558632816934436302534953844324539172454077070246674493001905792024420882310543181580430178143686933385412960124623374753934183556138199671355498099382564796388868459030724937591238069619160542976379219511862008021204091485739805416783426050500471627081838150756209157291243702132853405535488411221006726789557535202075406416380780205907186427791752666555792395582242813577010821793691076366994803153500050024220432891433846724731456418876922580486965513707078214390652530277175773909191542990191444068234867693144701599959084585968596130553265538701596083080975961392306550742052436002324180734892591054710889420049859794554691444468541444380682010247364395582485750593914685331640656622176851075228907144558299796272401483269160346660261921603707915385343753304441739496293767648074571878654469852429631868996619779283996867154669890968804274270554513021281903707237211953878037337386148117746690269915308774473537364150624557312382809987264575933077607158651320183085897953075802176472130919902275836704186791734281008936553904469182446380671453905117150915403878528752037291546038482800465294484663559903584133749530787191465945447373863199868782924720287713660998122435340052302377369394867474876878683223859339445310332476563167988586758463431538354380364455263346407729103321733985693435696481488211719466723272285301849981505939005042316263990174378234128291457461721471901447629525997620872428021377162680837161424538179216032094733939254585577282092641362014411066118682243518019143031925447303422329733982913772189500358977160873538904145890320981344159185981179637399802650946658063703881802623682527888520240761140452168008754951877560638319890498089358779537037117136956488124710475805957242649342218845655508001396609487716486681973538299993241262326920371856618727130002453216076155120519029675972702304062627108897226018831848202830424730856771139737743098418110534100492762184385980315856603359535293653441196273533737836281409132053793478202521832320888260924266934636665110083153450811939308553566895149737720808927950119730178303271378768922843548331801389347574375393451733079423185382375671543829806227476274176509402154736767069856517788546414512241553879539585058952880024414701849281990515266264317234588605106365510679290406327371049323330793048981586668411630159964904639803708745139067861875204851033496402354566560486154449516579586490509654237362466828762176923455899916657481670880409716016869228874864806490430191734707707912671483407730429985321543399775501953264622789127408784753480544388801002906851878578838805889832650832175604356137245112494420287551813377462044941146377158383760756176751816696689443126931136417678965162734718903064853769843271008010051722629674205929956265079666357841400680078939525245097562665248549793825429536776573299825940821167120654608976409822242296856643873077279293634111599938801840844224769459076474066720945131054361361916946108986574964642905721604171719553550976035830084720673043562893264759711091288381007974791960707379067274566141416443608359990845719257974825236250094693617059607544611850871997278679561483782612721706473410918905613366829913042367397600457921285893613311070391858565550085457112978272897617147862951948447681436414345546531242685534133062077036520428694225386780145979953857390131624179445218601283537477924179582576478605918862223106022822067552942974751796763620102919977906085774008773184830809944855913767035266542581668822005609428290581850224365756126964454418957890325895940763774936719948134520678303861269192886957962829731372758015150490990051812028128116016478172034194903007545490794980132267955171920931853211284448341612285478846284420058680760116100062924236298177104594991073781041067519974618485750445142734593009743292354182965709227213361388158289256975292767596616549433014590164145273879776016900488720798277105104333698018205427342157460900657874051174611956488940185545050581976872061600468136307475865594545774355491983021259079997698842727402308096319751243439625525462137414284481702768447618614723853002432735532154868019943852060130779723852545659461843426379449127991594079454033713062647417340723183847890593636818765287169305925923321742136283428340672681051371141199585445811729925668686124854932580388272524641324683069851258823356504014355493853916210324845343756631777907091662522959935912534062325060763170755362827629922436362547262813262805994258740323966431929029206527959016611823262991339073966413595695408691127965035486847946995775217165340478412444114221381297574539098227170879082146637219298690765519967190216890241715497311973869793198647770821970483253920424390867920658758739539748034582382911048828207667057837923605565512890782707344363299044472610971956897351464504079549269211406488926161203463315402750896301236895357835987759353685562906955913023652471505743386880129318408487828812496454873108168374578782326179746315333864067837163378595478317723206019122602291532440203385593012563893656762736955927852132742084357236057653736125891785881102845469146297591422703992315892172187365361761170198510015461532192209479238261726792433584209619561114879021906017315280473077416682401987419489628169168790123404147606006916311322984824509545932373143073246590051330133504622775446624008839403145843072798198222223587779152430124651667921022965386780245373426698043392061124274676908254694734588872170750567662690457865365782415315028705790128985635054170011283302119693072793282314091416704929581840329127820731918488006798840073084454181968721688939858543749275801556802960655840366554200914247107344394411311310468678690555953542534339567898933966222701557231353925718184441225461011140375863494033368008344788674833705047705853096886513036039406140842276874540743983964809077463396191391550365448770022965287793835709053157700341552634587225966833271502588488764424197720343096959472725701903062177640740144736201404848495272951488209032452422112790939959476784707256491931975114076173219006731098098471018919524152732887748195983555243105163836453790090580587018803908365068038077358311977117405080073093459784110344048885029696050999503513572599048055564310232035221270534249809964868416313254335155592351572130208804036870422087005188483462389945320340824164148759489501364783368326836502119451010531336362090972317810630246483443923583308910214872809908691140551861360184957349276117509723564804706484853244204229374016124786758057215782644958780387438169809136087197255788619898296112785670665499938142705420012173108527549157113873317008605209108198024525760912391041626780892377968944653524197361413834976788977256603121445688474755470430154963272059486683395213670490974366290102478026836686741803903075549665046215956715430696686149631834034532977877179682665123244482010046561335657718004937811162821557490528858838493659827421053360376522917989901458295683201192495511489042628759587898667251933226877801619980919250222343206605967514933311112541628431920426907253747399570687196280449764366684323975669834228148754908827291071825293626051899379965976634814004980498535159820432186978658669125238189598882999571917666799056086119150437095628524790881641158207401703502326681997474876290475530066284797342600691452996280556598551769278080553611894615915413366162064657235724161821620239992453753525048736868865736597259887723703399553257699556677833439503350237586215452835236437947042063760609193769672519654858094090255565894792587730899007829772159544761163956921104855929710182852694121124189512726434939814055899134152145408540948253248881163540147312485132917468810838819014640746153846435346306760754952102736778332641919963651013050844731235370081912552521543714055701579262388643099547674110597828089430761163625098325575336268795866762433264317143099944182983655308598120754677378667774427376194552758320614764602713727841248865488878169259914968279611587910612798428033157241308735334819636973517175913582519895667960485559742500456322577597246765578290438622575794405439704859822468396480356095579810276774593993367256125707453209498917744812348916756680606913454760995538397214594993921467276618007365246811302863476325301724610795297346660973190582432322242802554581945048181675168196264483268625091583268185727564896305216660704861337374024916472895293718614103424305279118558871717832675219761343612720899629451477808533273071871495746789816757297101010833894733374734121974612351442855412361056984036356754381768430611029442754382600647293127126792672584288692646276748885216435784243531600979700128986349615418769650729390816663373810333589617281572514911994975695884127092165831248908705627909783101024992499785636240414636153154532820585638599836610327430467428797868950176834320383992054958284408259306825742487646343963590593821985487500952275735830469538783623194051258502662981517345881459643746047402596017047864318991039319104613368435099120910701504379437026138577151339454291911072191326388939709868969897297519204548726081559940972090352459989268093456130983881909512114609477057407268152442446141613942390037278561247069125817091930553875022767108416222257883045267687967753546861905101957687389278859358512279779640266959138157571441691356279904692950456428422537497554064717916545372237136214053929511479067132492707284192160533769533445107840382853478746589639123669377949942504132821643856981645936569867021107420185033122536551591585514801374016569197408901718008958400702088864006249069343743324288074298048259384393751073896191306086296197027241026917058310763199532410725415135816618989710045321424072768693048332025988912650507197995912203290543342791479237647750471130214818113676667750025806211419085628115081526518214010628278226291643017576042795432471211192490670945523294665732945971638422717782479036260683171919154933594636069723976775853487906533948486637752830849388317090083188049622284537286436968993287873204378629397719591715649294684567618928501175141958868659388160732604883562132399320376971254729882812486374751276798623832687181722084966104082357343047469551059458007571326096191144795290242667476820616276851142233737493040665500854825722620716806512610769307231987987088313465814856210459286237752232655154403463064423892755771532011288776464622899300372934939800959530585807269854511901511497925839589390527171401097391006625856226508645627902750668041910783085869983457261938008075411615258262152257462111903416621147242462267985295155307724697255482195050626336271753042706589899874368513879637458059524809255304530292387257452950523199659351457745197847358373956415794755602025366484695156428373740805640924090028320964904034048223954015826109727268051676850326582778684607197508731258222880435513863436741688640493578820604462896023158018129517074355152932118735225848493831550482502469128153552052104635890094468652126099945600962762539871460939942241388747338597452447467309960306158700686381895904571926567656192602510952729629430122316484673559641341422437351768103591146625199957436780017216191534523272162508010794285508211676490206149491002664273693977358247413298611320281778786240597914267299108222209026814812063625379055548124871664161241329610128011101698950930064869675508884413340451458817096663273635878806802302256637523026551945998405829629264622530085158387372273962083104793020005581482735563143266923744757298528134352919614442252735634571694837891094068074924391862823521038407638623892144766340014359576973096900989747251624521101603446167557872135190370157480963076849067668252751987605866805062833721743630731247782676676486751432919850659835771503199069762860030694999269735971376173199705649037928962205213736008179761480842901282622716741160261189854469639389801536099364316551856757037231922059353777810466357586812502997260255197838772995360532103778497952063467336708312828576163868411013947336606512470680070723151791123743283723505661019468358610472466886292285098621022306160452206208748723466369303648369184381800593824750377715128055247466038480822674850016003113631717935831345600449156048112755364370350986375470266016002325505568753524086092437484431302954336856051932405053720585371636436433499892036838999359251056263133785536467376381179969724558729928030193783025483948170079673685469446590857612630665123829881385630349572451603033344056075946279712315493808967286542542545396840793174497924603966006635800519840919922527810827672005812646265242196301668390075367311881146939607260098899823334528733155376022063063482474880802225039313733671719724126996492074495018326824731438204242750132846634879701048814007388561776528887849838264508589200429490673357674139273220132105635686164261415184350342718414895619426765824373417026860631810921752335655682864667452800697339294869694633760649130079887954730589804960668696452081482763600798440075534281604902954553482180209268601753217140226416255998456204722504312203526471965381350426805660529386938756787174318389782182915310401825123667455516866155520858831213427249532241796428111966834097814226000858684289636063907367047716949899117042618641268867200053349190061130010200579002108106421535608782777396284866755617007602115183524145146462026884690462720713555878596490470896431168753952849419193588401041143647313735308665782309592237338003566710697475631471078949210614571520836601433569555933706178388612964989123696314895409298901136693371372744079844361295064009949688202680693349313660462348327801323008077605091532975097070794494968485966868584179005782874654631398516597266233925333367261918731114721034325538754575460052082089852019066030646862796908664345244220386019380082643149598027054960413707780078786943672641603900344274096677054544848640168346299449553789327510966282955051090334696030503832917817718033065291261338910372532751130710100859374148058122452511008817428153287592723530846080841392663255091637726125072493302389521724785777440922767181698337140004714130002832011615102616464042163884662590899065220641290782172752961291698562574088787197428678554838346695315254199818163144864550627826826725758321729088614158850986323590104109270983418946779341305074607756791898067754548364835662516854500928880800422390732442336553868330003208711138651203644839461387115253480482513450745181834760350579802492857112313130244303727897947456881717673165167633851452838791482911447683248998268513862878302884914937639670533358665023065583594946043205711636852463700353738010189328826619797544517726030173379868019344054327452113021671425722083857939948849790570264869731725896793676402818473745791142590913785448147298685405695864316860887048787493311728801287757789194616115715409969045950895675333247829344418663818337849684558351335918133077680822334315307836342537122285847295634390433856403925834792035874707583210413383058798090887976655135889536929445913355753870730732583958673086861070316315166102497412016743362870482025890700191850398578593147621767012826666817537420775787458730358709885036776034652318273426338171596247839513941113333056849059732426519635579105451494962263828368679422645675541624800736410164917794312388823829404920492259938868723694238249300944015155137565647990346870171170378709445264388724756812898018300497326186202482396340712523091210692920145867018910516060661602386302109442817664555999531807644764714894130631988749893231801574842376398267066278311541055275019807128132011088668872004663718705243942848063963443762120681836611119225569459784999465409619914555904756344215632783150506020712716188190958873664280984971881844662079817031679521814527865560155941294517531299521633826107657030616639734157012527266104509787185053097572275198071565507021521149905781592465117486685177233057645961441903920720062774344485652283402401391891210062979791637419992214851796420475342379327067317777230275483312028911585962497158529812212410376269042403382618679574929557696964021041710373571330716046298392448558287470451741860081520598527511737390615730471843971027774344137059913434071380902729719173229926747281734925386521133200475610640450396319352526672282006080807505712864783800308774912412924957370365688420899958951162838146478732869970536403308151222836135951635739965081695435202462524581822430029627800918053362636330634329407690643243847969041057060634803680845330550905302777944265707052577828657527351171156593607202241091409548897260977491622109802768835996818921331968524749888028192484220080743956102316379538396983351621023935545156286925525781447415451807771702803008618720718752660103741993478288553618180395528197754852221168917412922009631249836629827298148563995165899992724275561911279907963952346077747960923082585199478152530217551924897093363310987559381301733559378591365228046451999571811329523870835716837180790788578303973303974771392968880329666151959232212685676715279129804630138707724073168828062439358011681567243177198305595119007618035596449891862914467358220544074336343423966337773179202568481905437004949339708325445007223306254131314646060963694093739302830586602840412678585809513916554028025590287089695700775509236023170556947024815410115830846113245707016907261942177499886936561243687179790896306626043942165764390210054927020592235475082711128841604160013380504360315593233999905445519491266103470408726642356456074306690485794023669868860835224844875207977980151190515552830253647589674814430971102893480195547460263712450662219654002283029874516022993299206004276202987746354894809894092556975246575311093415778352544641615371089448368738301753045818335747791842225682226640358003083518802637429090296777780463206460791743960155409915910240427351769219969026844403340849564792415457993079474612456810229992610891561325698017560460587187708925465495930065917079276332069829167406569841425972030754205580595015159345678412539572238600807189829354747903558216057501209862521398041415907688572064124726026469682697920586173521736289310329672774612749944793632583191423081671404358000156931485323493179822293716210599593994345979570535208344598389048355742484576850367977182304180443869429855868553695510534181232899870827342978713233890107395721701914866852734734411596914209484011692428751745367422396628118781221279865613283987825382332459585220466319369002831156297680940351016700455571356615508824913382607960877014312865724615105328022544581849267275838685931969595789765158076727545508538925301505448168271159574076826636710649340605320384894434982089826818894598877136858909689356038657206332923724342001883087489253331914856410944924977378238523114684014666875385431161359959158884888190500730493394613171733999398926146378625536109528055054761098917203257408522192821600149085770662077141984964916872165449679274640731276360217324315386736609078442179956355644170728838858648914089612580195800831198960339079784353606436980770335374819634164808691699402155752439918604553290381258702769007947424770548302792976484105876591043422125500176342617387876010259484264570453659423335237627409958128728236796697282735342954297591224054924831210037482305869041212457168025362087549660054471318595668454598987458150768403059138922881130261802910308889679665614235229188022858789313386369461559845171541926134888120226188442789750614878746771630369203937187395544478173110095348867629147372165288620235200461936517544736470980614689197104686297030624177701653641175006122713999607634101119661220038041292159161853367877907507024316168753079484285137342349723517570473505684407787660505563574919498215132101737775857018534175093028555331708183173234831616105562381175845790581387929070591596074167146693619971981043764802318574942380011274611677224532630771357389629680996833535088737722128830438465459386234708139788779307692767249392228675667333845358341234887450903368592681086841712194350899621850235854860528257463441670158546068845067725176911164970967703449273288456710826888702966097739796476478076838395031365950158446362803133050212435058872301849366588544892347133572822340959953623829032385659024821283714739470089147037899848072241201801088905356549996653702822122801830073718955554453257443566511771965523232012129292261342875420849346760737030057178940990063506713255248626527813436905061055551016150600176593722749771284048256406498550559068844823786687966871196741993608282382712383352923727815391781164648307972465503391919551805572622735945708803789941202036633954338902473741364091026074864008276638761116594409873915046269215109122524987694440605186667340525948185110728695174674145013757465320639810139015022024214678513654594023414101377572873608911094865428094141746571471077355511622307992042994786733997482060139153852404273490439976950754689218062393997223516979523627744192758313273605800773920145209004943156671747383806785070437424451030313736442580105387373237775719022995074754796366566132523852559585928547394682176987722937922703779051317290122374249866992888591466898242969864763442535655310301210351195103303939191759128502079046824266516171992999516531072110796763916240469809822256404850551940059973502190533112105084418676482813110693175805090335595351962214335535079349150725036354097007249214649322203963765409349687953090176695864084757838448604168124999295075950214511755769068936605581891991514989363398579115129808300258483235858609168937100479602578101661010661136522211100859846792621458276544853270479345184885983409383340384823291361744933398237831150620549223260794588307352353619473700728951976229161024860868974456303271748412414382559962172194408677538253870417352641601263961275928852844127401926295143746866255902498949720991538414676200820532310645066333363742973582929798021015223825734532010950899515434465399086921431381586828975493358002398651356641005407266620060644482690297879312135917942273160746362996333776008687101701836385107907660133999754201071925096212508368874702604286521709620512209492301705880986958619265695431095713466792291661433558217973298964990069108075557766845195487002248489287152113803274379403568830200557536437480594656090670926736450168431441052623140488511285438223399841016270864655755954012417797350602462103413758744923009292457377994170837935390861938775090560743298576130044508715135823201271572368722091331676095749058539910690427172853266733103026519887054700283760790117754918060739672806905605197735835487686279391632066384086361202958891795319681893943219167227818473491953936472180195372027263121611826181890442489594658940388332153254271270446638024524630983544666889568036896221509471505908555952288750507601858470778146373762915520612236038302044760941562559702275036704109473675488128529959665336637225129908061310915770869623027706430315817453830977160985194731753731959851596872620868262185219936384044828416342982742255195407611178377251391115332466934316815311900851215842467861006712474273957636492717319912970135854553186983459109074037185360341808301367922090201001740609582706959572654988935243824327088297785604903082674153714422716967150822652748556689620871587781892524668617688636107491163912331610347260345827073233446172161614919217977166488724133800186249381555258377691744715577241773902178008937390337184112173083832170834383695744358457003367901802733167055405328994931354012722899117257380891169733371864456487347522729082659442496667186793767623845207678984180160776620826201198335363367223882049938934209636693745723430084980736981910063118976118244509450504399099803548737790978074073432573936224732990111378776969635704913393038334992040016705483069227465579090181167382614384150738961095369518115335030578102674411635901234348286422006030480295802580528822686039536501598979030000734896832932642335549763930164047761950476941929365238183634684402544132574603460835671697062686037476359167644720268095573536523672292239642112188401164804449548536722560009118664232543921571149487067857751420261249799537545235999047906827628686555797073272140652035027376671602809277383884752905180374593770691317890530027601631008073394239213658497304462182859846321856071607516794132712631992279974239088671645651140315101993323165473650827054233894671615585523888494201361856486233072715523190611197252724770790633711056167754991295922938801728561165481414140793027301117403415348325634146534266615088682866767143725466700386146587761896085795997755252525080986990855456970226885186366659394445226596313164523096239656871672415308526062735603532570815685161180293495712120763477901780216461934000527502891125217617235457899360139590474591823919984544603681695306001990487746291940253557035601095127051396030944800617752862904431859970559794684134982958993693345514107867652560339128717529396413672719554795545578702218549624559589903010760151247185162272258124401899185307221951637217196663796942718348299709319239200035181979224287561504373144267549151230811379116935046179665073625722040218855370757758586888736260537613200306719718734546116865026283249224817223214273100129606879790239856957178096671600293847162487755082669791431858173029621924628094431729658858690624167567924605392862117618250169503224544763638791563870130561531125051632621704680368688310995005074075189258913777547124334199267438268510960223730515238558741053476947207378847337531284668956728265997762061459132713984710469301941998855949523711815568715975808002403802548183998286324331598898165506453959037207843816229389497226625809275406888177771041010335580800870970638666346560324818150720450484115691625003323076665793922708932229069898584885933482103657336131388731464703619498462922369227118036347124429081951174405990595950426122865464955079137931743687740334010844537299668789788183235320729083106227288888014966095555346625922159892011355962236637358366519907158524844341993786537109009352930165824259910374742619762801488977821846431929749516661169804655646053980633322774362454681010217597900609789739023083508332483180426784884345280264899597469511062436833006608231967251138002163936521019600506279006512034189097675758804294927246004928708624741723499448602950090452196671634625094903173895320036160587452581807155072016144039867158805674304986317023864837078224737611525207176074173542698369045079310556124326605354155487417616543627003410912759382236819063118737476810173595012582447267969789879988207097960825340879587125643582402033905703319989522495965924148231584829986959719369316963564365348147707922454461447401749756484402737328326835369626756898307983204670554106137805495942847610488136850609806865745364624684705571292709234771730013617302606072125716592253221015380210446212507283921911910825720283991137553174089942186161850602265857669131818604992307921662965110960111223981170687973745188557584610417906890747700974874377006066752617726602208443223685249183695529747218147710365291222363230434371634904001704351727870060725958438390778452628781666250539137139192608658078427232541007890835374062443245899044451390938535304488298699114658321343516594195614050293316946813619843202709948604444269801046488359404156975066200425435496338965217052779278190832087779834402579541881202718900438002377914744625581252646734887348895355377094121760980650167468691229421025167868588912470144824136558151923996583859034088675925006726558210834370906983436809311816404554904097650575539961269691439470540357594055218607024376769037040618373240163108255649513804887746277755055954209051881169826074744531031656882469346895766528371916616322096945553423992526768524221688382023902210211265613059573782586786661807447725551945982408120860534317589579410379642071831583459155735908352029768928635530680820621200240554401955618853747344953081945384506169108011484538178131938092603345680834028607709959165820754206090272161910469845168948807909647933004033179861819959454246776287485487996036820177679013491237143839898565172876159486760643795521611359974289213217884804347834680159544249790115203053504018869420172241598634845697398160704271252155446284575474932673252728999547811317406384488627735652549197663801539231427395491155435602867718176871547582897539682439032336748916289420959346503016385192334843914260522845163488206752968396413593464864361270138315721283480770131491495630671198321864594825535798249851697995690519749160473126295184124130758876028593963998025871411370896360329298163989342578694802371787492147554354192877326429932574446698938170040554882580779027397274141881450374971746750139699480370541684829673076822288375159963187774747393017077486647166447241360732537083791554610164408029012999437286412571192380805896183351288211380475264265581316047107022132953641575577268014780680810115351715380262989844379117849248286753671601788074042008492288948543676482124055218350544792222062140180509585992623451767537496183904419536571512907104254449790947359478325432967872953232879794471318318121162588685719657161399770872312065095401733510792381930504849492731084262706057262211707243458012600766201458630128699867527264452654680403064518169882217970077489910422842543775346432589977623126441261547724542598073256569190629511225946978078111380366308275839777342660715842076397099883156718945332007573860649901954004027809609986803624218784274109568039967793442398975071970578485632798466253691723378587414298854020695346332724581427444150833580008491271589824419960070698793539550094978229944939005547924576082121336408652947756181139328306228383579388934486996633171606127274804007088017266589956103047071105790661300311763785290831976058924004554602745482582991441011213454740007189767277460954372288106866612099575931277714791098736088205052213591352943061617563636356141682707208784805840489534960458261096233728623549681662843910057845355374155829799446702236559029562031058792780500098281041148270972795937355033148432420095394133147732601737525517922797523065458419520135837286202607607543101221217098487056432186316602107459877595295307474150649798142947394334812851417802784562118453535563819711218664504109019151166587152404489552218081043175038366839587460600083934324649718472644037953169086426563388150525917850223217029335606314973591844341270499111662846182744475120590117705498227472892095782171768754048930928001527049624752369665611595545082574665966216674651241017051682173311770697756641573957571149352168034451699776606026883879834260734581221630919526244145095221790060148914683958614523292340570192825754066433840847020023050041740957533692421795688055110625260025653943363669511294338224807352478388015408428426110327116390647678547532643997261347642256379587654874798591016703246751438885285138553782194461376591193720839602826230391476617052020916456300302962683246524992829100927521998776274940721750461110190079313299076764899341259033380301130981647196892091134839873337815509059392172887215993323136202931678770480427644112553700090575992787828448005392047665875459648834043388483070961167784823902144407248884278837582308376406885028609951165312037669234015628445210254726884063576688675861513925422409318638372138983643749217869924261743023630317384814830808120186802532073981582037329137765475719488585679648500416488160910413138523339717182691480230075127232697069158947853184104445614812892991898461076078859833374319787288401672427281020034110619471614958552732187988057378638745813277869204427925235767526893803359876997749435752464417863921613896560746904135204308079442690906515855931878971095182680506990929874596266868176920138180108154010612987646707445420852000675328017819100803813414163532069403505888329640564076408831846326503740368632991202439007832099730738270128030320947552573589322780994210216509261595534095377940259269263020857765836128333443791798754977784898984743436872589073599319470410173852411353140354814095865171688428584227180296728839755711588059102769441656832647849540646787867948175794309315972928272982085240369851490080114493228821265372149719200505332964649184043001089889814428916199053267159508702113571558967950382805746061314707817336328874652141077411956236543460878885724629375033463287442499066933635741931064407454806089243311832069094078454444077968269659709911336367668867640823098181291773139831644066814848988891892207985641264323704590064583655599514340978555508278810464916135902006630568053906225764885714701027253988526039312615338436516962037575792062231114330735298473938288006278625724564746442764325887165177491085361689579337032850629964542739370131766062997184590670771247876977287137273617314661924009097963547400760624172263849256859069748218943680361735705705673711232440771422587398340771222097321116975661091571248041162720484887337568355695897084631658412546986425192345993179261088204984195911184022093467707787088889854665067466379957103134076200920955881456773202728342679376988463929661396346662000278568759114445485751003912912834112034333509012991903893668861123190560976648212554682037723288863654374854709358201893522749170131544559178795351971814438207494738784583899468364452161224105844900801422387130610963251016446852390340569532618928627170844328013002489389609635901324357750446097202360472933891598034919803064851068210127483558524456355194310510125136162300770041486665877962950834335170843000743843407335366425911051029401080808916986179600069445498766145311287107470105982429555305622536042313162011053643993547548396920039975639742748191988189472491184886180989379767923829110706022352837671085585543113864471991268818898661953525071040604971638975085218786144219797535994253206328802046673841813332945116270265578712315068894168249966865658110092906020614055865718440057920240082230373757582346776874814339751774628770525058483209539698840122199708536171721031999668962931348307155896793576613692551242810634942400018019270169849597142125211998189119909062457523276264185900989705379651281924027165932950960071428017064968007920382246382060352418597900774599696189777998683383715745332883626139163996461017992975619080170781938095439478094864723820855811483650581285042126380954905601202730300733050145247330479194161603448351912632401772350975791956017613750059678918856240660115716106216113479126877810144518976273466071013098277961406466805727934002932988897020697637291604970128969725703693156904769279556602265786368825913691952515777862696444743130201419718173923160898027050246349578105654378986376850945714534106913152585126733158684704663018091758490272138342331432476823240954566813892774396542348163554519268756916210740884674844237189784890841401589009850537157765447426390531599439010349242089371823630052996733526203514216592294970416396847517564499136845887810520532635261312070996093987347971350504394608708170336112810168357962214219607963026677250863257542237336593289687186507294580179699830672022109431224431369982879423510969091646092778036666231896761568573873668377057011750197095503149743851765119696301619493762972753458267025670422958695722123370308143117844941203315542114277553613200903226881887513546415393575993939100066756329187156039508456598072264276467628254295675758609328908818116689742929572649737242413448076796688330987681133205858376350394767011743664193463158328278849739583334447278427824275883000563156443700492762324240771993133745716284963750016896446765066651256079430264525603454629717448742907310084950890456924548186273658408853044954085551946978603199390763164361666384409777533282374248618521289301415511148613235204597903259921226794371970054234713709745127804053737306844620413515669788666498823218712590259063346608906238488636509373732624494670840054895578058928176021733108631428672070509530741731943504957231168735184387363549158210329224382082142236123577402936812667801989427431506242863027232499749721576928372446535954606997321975212418875749789276005819324935181438583601815735748481051096421390754755792157561233504874154416574044162940686289870126744020562611013182423010174755015975263567215685379137197977930421429273909709327091210231921940334770590838377129845074296030390714999222629729075646366618056469348405386674081828722315379708116852445104597760189891532673657358171319548388274083704511872565603403235772393014390253006496554623335698379938099590343881025529435483744233525965573053289395033911927018272674242918023162372963289048986018022363170237827712670705579533168991354095363663570986222073607446097814429289428937393455383161482429581014425859111223962600628912757168842016636636625961972099686129366654112568689582294404060385634688653990977741208135900783279950601749054759042122322274025631880695131832709642216695015788223316410296649351489669422818504053365515387510485338060292649730370054610727142027858573621067384767886914130546423092045322401829326566526680672894714929748477466199819193944627676844619365760065609918751595327223922824122527646353980391730255066495907550336802555090208387671126529180164569717944363255900875685973299497117399559734109640364580325040330259766693568290272091131716438324234573192087907683497299910349768115132946169290367250381396507286753843462777743148920857358715945597459503081271999912185023358375601630949777820477884194880844275411329065835468666944483244454152893332416560492908534327076083224458747619442656998957072124323564452018968022109247660026915820969012898449401768287000653802212063328031680535861457027377266952088436238935563428591701246303905250279978055443835528056430504450644204731574693878029845122498049325168768442271991561541420915759648930697167366475659755094029668177711451775072057074286890280393316977815974145228156709183181043169619468902271974841745953974319047111789362278967717056713660838424053768127677061534008840819297942331760728627271455425631842523477904528943151314636993045600663348466919811528916775387261815743372210697301196659802423222193533515246865885877231845622315248928344555836345517241440138284026158624878165612947073007300072477909601093133384639594926577589072896220039270176637535085288182680315553386359455627949389583549337262539697535906367918680314830356546591289632910599430002280968968978091816335070523245262406864573116582325081507686783377456824372762620259375326066022715848001325458473516512437900044853049316611962999805252340079037872840234631626398699468804993570485306951335612134869491412876869967360073979907804176924075689130717941692601229541864284610339808904952933532673640386323624693821555389701575962339300326572090476920847613795466781577453103604097389215055676401635841536578459023127647098744618871213872775291705127348022217967681453534666222139609706780015895553046295713308069431793295063395960928920104495383178323128502419470144463281707085560037495358309167119929658556567956095071404541070346057583005554097828000525665204122838032524080065477935894255024988619294244449672817672945496486269804025948461847307019034428217043755476220696513441559691944191387175339578094173989692855841763902477688329341594223035266879162545639411379819188592599250695798409624151454430421477873314943807935060357651489404053303052995856027307885675528823913994992294876261919888320857912460328432750072858035167796881970761862732541998655640754405011075311207566518629540833605668205895275621423668433753804753361308872760008302774405468264772653829243199878605580058343743424115037135728320654392789991618713825726765705891886071676046579671138560213310995616693351355923057386500266620966499317853397097363442158844769129471570737848865736335893211254571203973609947060406945791298343277232766511311357837295502249279484788815533466364217247233054324549330873423443809012749490183950643863313325753801075927829939424584862969056327924988029919082840842422418644472923656618228276190709935424404536778877359985030904858071400677627046173422619049554706625001300316193445452901092522389975135105550133563565125623710065169057374560146561943781251421434030957162966009663163017533165032785504391004026098464436110015019313709237729882061993732801267564731527467976457911293799340249189803220217493547884321412547835817700729961471799018745052612909005714199011610403709506113424303484277476822940703575006256964535675669332598667897891793398484642855667153370853607852439872825882161590834885062426649967322315699527260535522605160356901329804394287724207746958635075631975039135790038047729589244056089316519279714176927642167285777371393365846267705223736627264098477105418482270236917064879985125498405131085541656704781691343917795254650403487692270034100806635459901609639225474628104003623830521634527703493821717565796961353694971337836422910628333550921210773637436895592597411670895589110753185344296275698839567426297879812601416152249602112864175877946283563061564898828820798456027662001860253202274508182337249701695329119682138652624986304161418449872004146935332973436348178300081069030133458758102984541434762811792177772853562991996280375996288982150832012183504995403946516475829726153472934018093118502910298494405229305305136623085459731353470991351848998660836231293470605400919199468775178108195606022860746114210306554771757951262308793836595135904345466846849686035824518944958756366029445106779473461222467300577933311655629241198920629563397564009943338921027754152244734275393363268226834420704341159173021909385472160591084200157837791725417982767278376602429743821125810852454630390710411702399118924456692378774593439918447444154810176744500101111267225050430336163992481463044729255930789638823984750133304658349822446703743053111734053448344244302064982022097423981101221316720544390887638704702947011947497005841080899890493095803519307150125552192654114932572102072995805761822875835080281379293068203016145416512472056280370361546206912746332676665732314810315587817574324978381008916146434555117210106734373142959733205940179973080330211815276083346428692461477506515575274340482154717784978283704358939926116940858565828195965672245698937679510773673417951847755356001928057321434725295087200726591716654694214290339606724116899737172546880244376689076885224397421251218272384239976000629524805714408854560852920539771297123791613401143734065488955667478589561679670930422266249294927662462964711786461014179095682062562692518093878553365347988223318633446979234120359097649523481576693062729017440514948408164371442677372918150172374341622534992809122733221628840399529096331277717673910524678454549440975514542732124776819518322187597431517069775052782126177705283259612254180669726204205628034983417683968594391066748204228658910628351004392161373704227325294988955801020342919340038403784205947701557346786142867383312646943318059067839689392735690101049337166366413019032238196413375225098941563761429524843297890135540963950059937704973404373317648924834934647693306551573540046704845502493796923152598035984916685736582240047496721673214246117759602739659822880743444091916814260622935010473365169895805250737446966892847663210181075012805415194836430300358005858313099789396284190550847623557526932496565513628161281915654048405617977718648559114578173723124108495105180478129737703947125458742373771205768257834115579519960470634049005284071177877164544007923693187112159156717527584795336995385995320277549132994967334540740300353922146556782525911888969745031946658680478110096722001525380473894375037682875942498093305554577436544956640670039413917894990128308526632651145481729683489346947362084356705393167033607732923807687357556394051176799148868098762405320479514868048793181466857434148395362966569536105402676630523769390658986544680324534858943593375568044931721958805891698865181609172178514176789084521871734209807875057693209316063913355078006342644352744396854711280529405964649655498399811808724633099467607024519100424516237296156386630711246446415645006474010699507610951295939200326962477819386958652398829211021685987817726619159366918090126288841383997834391471999642556247930678574916185116384144334784555138894119154467786001477097273847180623717434476145143850851397905762828096644592895082479739676342845232215232767592501673554263658177710394840375258645529866342561935222581519617962708711133910677384221724511939893779012132001480847673480902541963151793699953473787533539760399502389755775991963390525636519206348947313377274420639602080294257577152561499902195000282591346228972956279307324178776740022617070555269973918143774978975218035962167323607824449467502053312326399005353676022105674738553152333061570637336314777954554200977692428726833619226539013646153427546490029095171071435349463810242104906947504771521516685435259776993069431656419961338237939690023973101515078627463728964392737146624624767073648863967234939601032119938873397771542987855945972414616774368496599506295691788284724568539073150381551558894403393943721219117549902255000393411811672966902679333970317349251101397239889417094231716204881127429374994268319305004631032575614642913010635269759969705911740143821546981673309048630209541175002878165943948639778630268516498557733756742157820805002317834396771754178872922257627243514998602390117560296180326982630754277182776620427771004617309411772848286239218026608770730168126325527440788082855709888824272617308032715900049238492711317796596467111720852838164848916564867969092321262338333623189334570769140941929551951916208062225977778722996093688244743747087164482493001002005378067112626494475969027364734187108418466309698089164918594741858401590597426397482947195370805762976322007680562077747314604143092425831782662818967205184563444996590136845513032348317474056216514172190121168717552629864431558231157875602415099234678405104998584140459445021926562565193070242779614574029361507279886085260854466721844063564676806711937887212314515724971866007693066143938963402589396446739941439311370719048408267900875300827439579110659333507074603647436389991537637496420138143273423457366646047766348103736794591339321797707590676717730010633865976069362049523696204323388801139210958427826102550931975565490442172462152132354780958453518159730846586704861956157764084428072238035396612241114281362371635680585411307886869607205083744519964978681228922423787473215181674816116556396669367051930943567452213300066597676555718994135755119156314381416899606463942658888727937230450766485012109469595974825942901445380762467518217927849864770826760157619978283318830812304572937322445337403814274500972128718648907373320279994740125907498467354802698123622500728999819599196635329827123998223700727306114253527551670604140118215230207212085136583477440411896713956510980805931652874371466351609920330407956715787999117809930297484458926400868324653165250009817221717378777513263813591996416022316933444854078615037308158587574920531675686996829473554824732747147756999218182536101140529932612484121779016972596381723690221963883690954177214446736092884906473548763434320030425222772088591327273244782701625042675214111671045807877147063447717057242745578388656546190061332664494873647097188024512237142545618365027938498548454709695548576421703987244432056192588960385541798367567024785869389754234209040316726104710077795960781692238503321534258478019356950605071234152661030323940241797193499211658473662118727754927225666041105426154423345747958148518830391384632497140487020760279870943788041247594748778882455193653345654898062194184780256526796204147193084257801670056962310884509799396677131780444329501268767136161652288054855491730852265192926682597208247496128595608664385868248886716551372619733041184432596750164302540095968990113329760530023849323014980154050225176619865956109637366549924668595913683908850299141665586000436148696180412527753518248966120510362069974952348193580255615874063602509890809198100451405566428837282892497824882573695906129158923804858506402369137112047080890578273142366787075223922878494004050764352076520138110808362762258163739684398129544561044693607114524366594214250486600441846752252940880422198692495662068449842029332420715749529137931853002110184954789584519409970414287784600496182683260840493493954756367705902625292724572949133516036833624412674888619857698247269644783239839513633437918094175052225065231841283710385730783403713513812608802522748900195370620455506027142076565376972160966889633122664579242866858423265418248795044309376952953045219767964886137085246750095450333078247357031297370840176580081691754438957974061068138157961877715834190053591085502066737944992097655534682526461535783762583863447043105443921768108381077121882859347312579346719197240123202272494101640981100039121741072780615140058409831352844466820998281100286140670556519926040250006961115692017588900399189126592623254132840762894356372490282940225076074969270230329879267594975011259364988119878642242158670893269621201552208612894596667624065070646547491457315621637871396597172990915417113285847785156711203794917960229835792661797611631394760395083764921072612552205911695738139667752921618536383135459406006722697100799447648960192567339196884321257573979907790936532597834528162678990633548632974517379343608327499095001225905327942651551116270256496015951979835837105448440766324603961902658690662521457758278715627376892076493761602863528380231651731428297022297330814330950229970990469544904885768281010218140101845585952753542473869165617418349829348482569331155489574777613936248968566824620530295027527531291503096940967488353466220756244659021416046789750991324642108950105144570487741903341003708057291378915391328324856953069531561017895248665229262732955823318665318365611398085549168505650871535127115483922794110419073907931599375592322292171230968008220522913398324278836286946064562298614173193031064100447525815750799838169538748229928846441637467111907597639506057269706436832826610660500193041351839837775948662223460726197470861427424021665356679763004775693217676138581449534572037561539444546131187022202980760550760633209532596180283754177183131332345779555342067143659061646598364657605816081482977172727944824855401998595702792824954290383516089856101958814480149052531562910272248363378898894544320964203714822064171771119539584962073849956774254584359602528061140385269940102946081120148500965847443952747227758313841135967958681511959289869672896306988546874166028143198376351482275211912417054194434900249144373552599901363646710559907794237360683513786684375315267274839328796931603751040477733714507199095947453712181690252122159607374325758408222898482190693777123795446384656003337404892415551735822419045733720789872999048804848079697846295776391196322657823085148548091904613006692220002179576482517891216503441560680887978004640176825492606782052303495904834621140541033681590976977894952118100473665078558037129658329078293045004866852220396275325922065066668152029524645715231147582078695338984215942008693133001317982075323178096423712187897701904035495588508381958819870684546165743934234447966688554606860065297373793986056982640427204396070468054100629087496247353701443840811521474517993097056036787160835628754002241719890181937522627879273362905597768298969193727278811358618828103708669902061783979474191423997708107921836673484459714613973226837038959523108408024832229627847652124511947150216247958953428448598618478410866449759091732221870790031001292117241146130639101686528441968982185021397470185699902240590650210392597127333951273200970195272315083044909408057317460227459175344662117273527461553089098733214394663348468339415441148197976473292351911490803398702618727779158708600123811882280826423343343686391687645374347929549834588720056196092578099191446836839064345105443580574785529593156502400844873463546547637381306974044210937954392365117292888958442760422854228124325441936964173241826009667098686894208269065975414143370484604142592213452893403952720043603622750018483606629935850877327822134747595022940470160667824130442860870137310653531763041558402370103821727191671176395720158151097787833605543406119803650861679716973343626803835465727043991439634309775027074739430422995080202302250921244930953835135272554305382676853676408578899850061650565778602084307877254354458414091851315328626367399258073334857271612829613849377072699322009900673390791564049674433181980849791753655113438042825010525078287517863932686526672603600590542030513957814994436845329143973137346458696642713220129479189840366107730977196368778996236150072647129717726525258217627010653160432615591842977304163069847997033341554517130611034496950696261279788355660339106334547662378460179753555862218623330483293287138846187010143259162027427240576206506668935352624265814802689424411568888080558503823697458458527723426306322388849682692728274952286072111876138871763325779996842064569509852859478513641750880927991257069942447603337979079969679406199592141398571894630287283217922306033603861955523616138008755670618113758188804057808385403299101435430918144915350547965919468225366202011469647723080603791367705094129126499192472730925563165642828333264653093762161057730525345123995128613609497622868997433386922081619981903393530694854325787800796837387831517376472085065487372043479740846484664280198932867481895149408630546954011125191875025848341792649655675162055415209099795386393065851024834572805149506737724773952934650985915141537532661596071262573031897940720803710832469632869267776918022366607248316997644940958208154479590373887247779126515362096862169668702667769519153428358365003066663063647334230772555484565106225330114970489692134271702253176407600209404227600651195158649779768434227100353063164752365071628707842670221405931662878536062261923759251539526465019328555023803554170004092443529401604290211167107096886014739943411655991433346517395482525522439875400378099403999643135192631519881081309388993622476546675772415245094425850955455808856359293346162439953108324930685157703219763983843606646610543899817063481578822546495449516291522561735869074716329516935663180798642499456084327829408202376869003689105739834479140168242226222876358232944557028503191108808824018890381722015758785982639809698162379391950722649180735512309192435840562343496220852974158566336059306014011329568315023631485418935773971141253227041446463702583280163204927000048995983926135334755740259383921813846037661351390934213551593893331660502905620583383500849078624685667441611358201753919326191042573809331381654341907566711213880015335070683675519166070445439850783415812790648178322627954424653789677667818666110850578250004139864775012808982187719442559513640372261154728252746666565581253203771167186389730865347457377875780176443497241735097212147741710958271536611139777856482883174691822428999053455134483900674308185244484360367214054798814685311108371685422102469438462847444153939565688887577027493403681758404702532970351157867553439543896429881257480047930882621890484447866197136033234486300703754302785616856650043975082666000602596952562407681721113507039766030635427780235645335980414458561118401007477872381405993484637242449627509837636916978715623876619219511802819073857949711983945147787024837472046481012540389406710414379467884397942144023521524503562802849718180146990090236701257857115136277139448156322753431210365795129737512010417814562059690511327099996937330163084694637510029329616365086864819368719462723641090102790382726878277994246215652988423829327609893620450386257019730127986084044449135066373793713434579662193731827561400034004373962366299589218354044725398858996476681805113120883983582438220540173210433460072069589966747565151946669713832813273380276514308009087765769109890795385489109590134529752445052405122882501412268919971893255220613506940682136573977377612569121106740355104512810610814775513354375170221765396736814322547153342293687792971584915958676429707065758203273061839548806443227253098096808819357759986878492922760195189280389274997113406343915128035684645026809091961457658201648798703111167665959802158859563500705546209618012947111530374508801795712815163173725294852118549264912467846465092977808015549854300390436202522715592326175604670601812068589823092608590330133297748453640313175927246013001488187444287474377024087221347699121882713930606376802297087543364135132592780853051915372916626112894393996093091511062012412896487761651278830558007404791234405082592317313892454293208217020800043617374803015301328861531941631788297486804763831501269569971757862641179120655247035933345005032800877317099276378428807227887476436558918627644407295544563122257819868326698780557611700674058885729473542846878446325111093411518847473826738257948267845081783226055161974102073065228269256209562431064803469870785316406964009538782287264167588037050442000492660353922800282401292004416170519242027507694124859721533951396053403575187554655239803011737658751393119862348098630310512337363086935865874842442927746700229191775971709796643639429060236157324295219355356518917031251019954250446674808227616227109178319139627930723531158589418585515980356207698460209576509642052870061987767260957329478106445091080096474223165863419448994342571094358179217470771461992010345769772745203706139363724770823441242514017903318100537006441738355030179701422653285312113875457516852757717285967985890332780952398658384126943706941038052730713833649643210429017410018009795383195562970886236453942926600557324882672299412447097885661637414912160508062527464750848814378766800627311319863006714922306852435013123591597282790118762880282688639927315477716127823931026357889508953029552526099164866855571314380962392375211628158039067080353890495922413268957689627731579195681057599421935722420727291274227314247029712155571166085335886404579365258256167786585721135038122090238177439319415478712216491727619353001547988910277850409580034384527134682664877978512269549295537469772861913908920226957494971361847167595936540356167844034220447157625643956119517971251582424137971440306431232070863816746303564685899131683890476704537862859461848561344235479509197186070513619436310099086944259422709836675788238263995917944894552322745832392416572816115135209395553524772697612743549697692355173664502917493594501823681225353717963921104562074851539224752680771432253703218748518909942116421521213726570251536750723461426101500822837196107865667923918170889772088327332216075502835913686389485193048418859766188779471025285530954160077452753370196998598478076359006039660552666629249385853666452991262169636125496697810101493589939267501648001112387798027458221499282781197270116001081871826202072695002602749874394110022889266692094574580887555838284694824768277540399368090380923256888058932747583694361243494782676360031921158053044078307686530575452276452632526148856113039243433882474733581582137981049380611262436097762037255551807753137865668978172304611738045806054709199917079716983852523824763569851198290780931365226077563129917056341351210107640032294418514984284018358075898922218889755545167815102339004217720820297508159376821313337375085170208233670362030129821750462573082015198977261133644938347970455267556030112351619957504039279441001512489705724352648530929820836317420280536283787390170844798023268907021612845834643585944970300156177146625904940935721932343071771183124174502984656765158784724209476291613589746089930683769805893869523644014775389693627942855495736069545006632502105694736959821305790069370870535731804287944645730015153675939918139351555051531858810085145237255193062209493850888916117329285730611998888417060582842071536657786367994510277164239053338349410500792816516508867103390022240399666873103043006147720775142966104030072320425439730506043574778183141269197834677918773647543753104945307155526686321759669659572222986890454349081746008242624628913208992313254790002532206214809458846888967646559109912494917281085737751235336660003456170274475271533780472012313616162726141246634810096927959982235146583298667024528725193064005142103385475607746900366574003576205775260627904310925629774213188072215629936031373591757369314196030085823180581177953186028129860702812901767800398900891856690711536551983277293764889718931928727655125993426762118159290742906024672927175172190372290061251330214992213726776201069687065835270087072619630784784225351353776139306975723092271103661787957451539361456010540946371590397825752988994352139146836450907106240988780077106497942989033348198185573978188291299489064062267775181996765458183177678528699700806085014527866486395067565382220810089931855786607157110725012926929032873043972224042036781806966590528318419649560616753575709456518768483416893626135620019085410109044986959648450094236319816546859798970179649924094067691605625219571285320584516234612707580316356869350820128963397088508619921692646287260419062469947441681328966389123724969883541984332328473314470781168634458156820005843764499660130204409703015854453364930045009084235557370168614827107580803747930414911421486230918090028825577734325557885340392973860529886498544604193835363013601601459221091967037104827610669577840236648567352555928804207816741418760083907125382176884121971224668382042084814559737201282703570725470004675663049929692046136684663789805579446206639883952721568067811123133719409670140580564386966927571888922333272616384344248178317039159946080492864349884899885450131345489153257513398743493185615747790783408665129558716192779323044377962378159074342130782027872605191296768258031962332293796103845866708015704575545477162531498943925235874741210773400095561857680026972965844572140564383768654495946136005805666909659260789036701053945915640932679186418159178389982477081107641729341803256499188926307401501522378689049321589943610642782548215821179699834433702545963203711784733200055158411888308243856344192189798533471198867952155588648609122814573039519670185379722475243249165021481165880092510387089697648736027724788665130984760812773289915490523835412794813438292707043284498424284873701080245167979054135219335704421037876132262785119840021400643857450605032906945192951259058488165634177719102777861266199840672119471436097644215263034763197388249603312649412934608819574888473237798201190786867032393069152906926196960038972550602859762875874595013489421266760911051852218172931731158136729567969175296195935159822297091448861286146012393129097577182506216816233882145545581290127524569677156281535199214652636960922623964263231309935606637024131427616589836876669080086270718007591224117103035097938114222073209594903725452784486135837508523593400088323049012953267008561795262647807047047337193742921249597864716507876943214477369486216739355912921499059007821840745830837964288763430235280481870538318113393927188618574738697486129231208409496341441329476961760988504290456607739783251824806358873819625168255655006691803430804593095497527213783831931838539123865051300248256807341530729524382457972213562892512727609339714735791208500834742532739749959174623793968697536523662129674771466233434652935109666374745458710599002656839460942465964085187077597981641507247996644943507811589087015652837299977641552355281588458750120471456508475040675199646471350251606571769594153739601537295094900234503262432302968052474544143649730367059688407053137480876504730213483667460968058274472693470480613587912509080923637596641990072362856721673896553600679662780015396049662755171525927631067713939182018700429879866496837882522104009445031842755624654974935448031707709075861760050673648200087192790753303320036010582902299689895928467848833233405113119082510698542417217065697732162183476347908639302896119345629158565324915161551953494512627358810776447045771399948892304712069036487913724273703646985075724030559682065863783712492815113609270414214222783625109898398741416098814647936719329017525060025178211732035316505692406433712682929569365041315744387868869790179203107370649237774355954990439060965177438652999112137583110513304974308533515974946883285454540540507363522970636197562216803673643325201681104466049907621619215071940216707761052880986423495288608450884759324359812693226360448820974583982240780573233047563319456566956483272429537911588833829890136518943849426423187260753879641840403643725122404941413153084289534329180793046024260156716131195799834077082409668184973666151289918532126422479899090852948311644588652566196621471653308043560852981576389259135406522253044653680051034170648883439849616109089116722509550403025145335773245497725281723235587476105555816030065674527624916013724184888653247860370739701962422415127127386232069693761770544407997301020358042904056561129574213637812946300340650171028836189348155532268295566674889957263701588215979465323812519004348295254223070701776845367955571459906054291828008968178969122087101963992857115297530109854784718952369888890734293976055553620104266129008575967100140618061931097842359032024421441909089767981472204659898245702622058275976171785125832871532814010490297910712251777723684345830333089076065282964657643570253864772997764191006956453183950207051985134296042357751865856823259535500545488080825258211438972494825782479991995482434743129015633113863832960888913614030499620979903228949858128443737703739356751331209498742590268708652588799323227271563407400457886213921346171412597927888969129916237346676673383959183109645097476181434249746430610607233695181519125225131816656241541541808249080593188903186238370111815268342369985667977275038082164778140053530054691013732605936347543025751242303529733661575627220569248033841423742552479148877917977700927157783749818400957352940739426301792883999709374676860437913778634542793711031895947324872325057333091186320926599095036443848673573503661211454664278551325575742743991753179470109127353979451522607394435961882494743502414141727071749261462054167771025091846798925842578395425888733816599393798336846292302815307021282165229177099996794695784571104702791258479484407449011241557972457125071100554173637932452503633935518002941278442334687784819826288481835788983292586599127130589204440079536436020152281698381453927298716536317619426761708059814047512658442761713403600789256958453777495353219274099299594192486151677443785727703962497962597622438429432266536658019771568914388579225120679290262165264842017741619340739225338558749004649777813540376106912196908331478611435302917949947229267000527295581599378814882722792131148162462526677014446694018967238751571333020776883682638933232985881983140063436653056223088753324077067025013524219065470604690920833997456947158894909721084044271738529796511241907249053505510353957950183488601786532327345974419216069792255358668108866901443909213795124886399376971275049177733717140745326107043352481794169637047779143030141399205809927507583745073787505874943785018906234080252346921535557039105520119025861075704999924676240096100553920473390125457365626851487443535747738304866792621494797773860940555920680026953578693022069965905321835399375908229230643288516804070923786739376035465239310259342805684279693372645566131837060251102009852085248486040644756139925373656940090794674565290381924688938262637974421308180896290032379804123397552081061557875009049932450997595418375728743487223227430716451323717665176333070876582277368972981182237788426790438070173999906217626897778096428895594848188359221296598420108298732858181245216439246893803655845059634346735372331038500721632976719192349481729218359657920815905859829104643980676741447453199215281910454122090528885291802384249436667146917273130122069869806616779845458092195769515744669606464487401400492558327102125133864359394203308675489948745216472130168166394907494477859706789605190579409891047436549920969633341527150388959071092206533620910586763396309959531157853145214493161712938468518912567888902886139066239117835179948262001757875510576625793761429442981145087811749648150643918308983833087266958787027481839990370410964757785846781534441630945750934928810368312223188074439654612460881258185694758483922632619664796576573144429873552055016757448421150913884592465368774350304140972242690655881447292479534194106744390752460562092204088541710462170643480182447973732748675035801959864704498385646139863924613434445950716405504539045008902373327152797451348801127748795930859896458485153039850026948533683381482163881909448182972736705193449649381374214153374494978481768665953235902777233011852775121690665446556332240555613678104634366281185701243031545480795995187177786050097448832485902745884342432410465576765817425855826241328172414172707712777807300150867764974279486884715470002018827281068564313982993231954384622663444744666875068866716825228951753956050550006492308716936124171949533702325610044347690638001725552166624225480793998195065326820919959844084034663543031140261207002668581658888800339500984859395699662839857692844094559589336321797804574276275171235321310035859377465495542782991388237134833814217000243356019067535155686122371280606755968901088623960149122529486669800868099948570530094550788880855517151941631394166839389480059847512435714044716884830401322366870330549501958939002994280300220277870035048024165739913778252689562576274646534931111183066869978798622738849926450639960529267305916668491662963178619699291665579777769785574311012943989257895259448394198016636746116214810230199836319226445325460367690986148740400434984347624165720030283552247076817747107009177523154717022545334893445849767758325799574888046904559140201053751857593684642415591481288792679046725592665818258684662306906204793050501706350574684783802022302390615636984357365304461531392138746248484555975913239969714050656958822044190912085557143856142465820069109352496289657572811514646666360632466006221892688414439106691579933514943874127947213166269715909906122037417137214037680093954801686079932125598796641075464978742196485909620171511463350881254152911233916364395140003360910376007440792166785585218557907409518124027081600816496181546258323266208493969150246018492495580528291700828453606224378658049210531228035293170969740980224337490931195041576382164030886036415376195383753784119600191553338637825503958386735218090459538470694700507814514724422736745431459751991240052677791699837868016196927345703267733871453896778443880662382390282824966933824042996613708418360447275757506054913206641874304000542823649404696815452053385041191946296133179843849771440246394381665386048679870711334444258791746905156631215382719958188673194133162674667127443880394855015446157915972661703193476854214641852113289037314487791987164923068142218409168845706992675825812087872719391428138503954965895312461912278674905818870244516266629111713397695591938330590772149346420631888143687633646610987269853541948435371495291201154998275413778332671125886810732786066046234554309035048180616927954315367958643785637795054486330355175336495262056894078194747300297608427875845772482654782826549836380688678987890555382057317422937476088314033537622584637294042762832747727164497150564548641742492468989554217829636190997327280419238981957311854365447859587061551978552766885770662001311708867954692497698047374474890787513005989982476421056487153607682817811603981416763738954704139561147674189223009427290779846126292892131339057698016991306532908412404372640466432340744474950932045327959140331018735578205745127926792975214926901272604226635849458140196479548818031004367744794003643954112483327398152453043817470305233347567872792123839630389973989566271088794691688766040170938426299629512056633241814952222550519177395597884091199011638391598360718069412345734846228546854008348835741622671520905927992487832481028807712249366573128195772732637527884483267415186289972301901290561176551861376344088014029747243426851782484595529275910003402560101332218602523869808960302437689307789304397135809478522163525418130616493746085156462532353638265013048106791093056311694405624402120276433007504351802643159917658274897430261039505537157558533308613323691475656870285857846575750539612963410415605391358219198162430048660314249071226564014210905778142755569375725137312779446996436981958068480559719652827087008119255713185331491835219791420470391255306725272955853945116804878310619006214919467427733208879091375449315040517057563883284796048470899986285398030758391912604626286850364250427460697149230788350756879879161398078230650802108708497712293213761748175271059299775421237908476054969177004650922576052401420628490615544105272304363792914846037239612935116291132993006271121800909325007680805319135118260540731545088398016009417743994054500847105906025381616745110974138124472134290938415477353930003308394908608579983630119038894778283355071893923791156349768418765404416183384914499003159889096865659170639810268814436723359444386392739089086499936690470951501602465560263010777356604944304852891832917068168223769252375011543897570234590808291377201368767944340375510307304070913583171311802917686528455561966971771360544235588602264348274593573412712201372024077219047842049540444884362615735673486753522212059302215140471137142525083227781771392579147017716438429943410047917509970531075435591300005947521951001598672677847186201978278865199750675522228512381805136962657656749425543840074182279291354523202531863970370734240713858778316342941318475002700434350076703655906216601367672547963721310924977536159042555922053649157726972659821216431615301003678327735972770098580046137418411327038850788689646243953249356623057210398735192583867419151286228703765289035089618244550044347080229049571123372413499970029064090943885664120489448427184799129980635505188100443652124080194940851313919865404494294670088890998728308920120280304725365828223265513822038516928561869406918573779964492634476290264361222495381943456331926336653392075241331612832994466085149465968253588085518107662351079696763917661062984001432332160795792370940654848363252050558630281286756896589778602570780633827464667987951251590845226439307145188327656207518429631651667605147364111096127525467388661058530230336638265553921741328823663858695552448410890609563856219995204143574683741136067581132793763614411806915601948774875348683123653536632248335325769037502181346158866337293724596913868364287859445021671932371070224602595761360375613108192965005916490792077771254786999969319765692797291403233240110268159131113478694572652816721464710013247383661691517211434007777772580340432667728516814819217529662773237377709704543893189174801199333472307409732799627854489257495166201365040973762530679174547789826366811692184568244235474411874244271799428995092015698840808291023981256756925434584916584252327434400030998697128471486219025793487527007058758912630753246247583899154613837500848864017284534592648061504824430736589820600613134969148315017303540955013497133572947645623357575768960425380388221112998951847253241073126090317914390415791102187156474398006681501382573316115166999955133860713328288447476729791574028603147765012171945060654881505580134358410155760734046103379963872672350433890883877791670606375895296284698639343513850271176104466290614319597753984309927432935324983026000481302230991146839196893803796738382059890837107410245966102900995235848778430422004223783838254069277461574300799213625836086646756494984839841067651797273009352763545249060702906623524165760095946196521948349614938636314124180597598143791817212197121695046673453930581519197542001781105897442725079164388852422811941418293963939914543656960464868379495209006883822654405757672431205918952830866694854984953156850664343591395241101945712976346761552804590451505770901876445588549669490129328912430200746207147274176147457326303616099820760413664955826783502728411181908475213790178770805144372850171306124971595587677568235778030024888543433295898428008661293758917129936975352212751520253262706047902131841482884401219582383395758982247180597709893273835212402500479396252054288772029496407582978067552179361665703903126285549417849132431891724460939341318679595716298638986865727155551304064295708919350989547914445578893776771565170853791403473823065957654073284197860692969624364920811739708354793860108189552466023864559421859850078155862551770188706157930607388766316119878474690370898704544996126384749889319114500925723651415006294012136301670306166837511423603293342386975978737785716710644207338860588156852652139740728843988201949580144700220032919338694187059310850763179631733713481962531259462324642565313684221334527436077767997761779579527753883140070231345146237658511983983335073323851375724171829749602757187542546575724376934930801305904478383449120661303640787718073701552898354416717977350785335316349332959717181248756450064409371950125239361686190997833601589736093902009097012982751467050885857318590755341696736591805804211948003114634221181290435639560881658009155688981428551208008592141166090178148008361793475872218401801195407471632535182906403817614845434412979628232804914002330854806657067719430634023924300298394216037904426663606460479334319929048926916245051766509201389808082863257298054439913938440648251560463669479979503530819813796579817378991302603506768460963662741446878266739289306663027483082275827497499429524084047037766386369020957558244014323968751244930480181406474978798852221192346409641010230362657602691577413501732766979128663361530577158224545921126896345518761618778500353134153768234738617822798212783960670136348578205255223051184071684401307669208318435352418993904808836669123667438098092997372397443572113408446264812049821004473039885722350798414778763182377035065835431502449317910069345954193019928398200545117535134070900579444343227259485845996902201336861684973120367575931472460051766034171550391503670613797801528490170934717845857056533628113561210724939582378756647872396106625488913469468962766309446750926870405678929708822881292831753639970246613417442940024684827333982474450831117459026477094910949465781364513067294353888590695029201436548646410270540123146035566833763544609113379051962574209877106511126742077850121007509684544704392423624434125215269725857079385222465955123479473060949915588751817649728634015025217824871124086953193852183856658239843944572300844489038311371673777564927013888924100622355180514569036485408790420620616571050107432145138553551127095139967949463514028642163622750270631865163398381567884384836305749577658749487935552001542890125352586944155153387715101033837288247233433691411419156379698572135714922000981926257380508236825095171694760365362083440621517685536939482783194431098989408893754399898059664110995162164566675723109155536090407909459557409677246144501691121498436716612106120309526905986058986162531442367828185071612260321255919453371998618789463361574687134053124872005697349768507807653199160161365917129352806928893921663192182700230130914118729630755906443927370522618600689229925097089396891142206689594444307898405030877573205719388802140981336998880545197247804742580127833535350489055379347392681096394805746720461011141234269098234265631753754676462047771476708600651619145208926771368068963268253335670677441855597688683342484856353630615207971255698563925373745061196102062883338342697271688442425021864758609070842469340724647376195963708581244698099014517211314314519820445891857393777062251198086257695607378272688901996088165603453379833401407040043719339459917106930076821509703612337233197566796487874986422152595508614271848515788625226284889135412795333367668378871368621343268753080446705267409418876653296133021178615040898130921356135822550654971910898871882995119342296729090942583752397520060862346907295424573719587646983241601777753190865083443193481048245095425920000301385739791401558433647117857723391311799936288523728192315532981150501999727459376730452252695195588074614037774720403668241376404392083526048168161992799206400636970588251196361418598636566467139990734730504790970618254246176657994071443561392159528828829940043837006034524194038044830300838728139458039089598350164289908011990324196512878749029389641289823594171193277796374613192071067270596306354756790564299073706816054366129488721761501265395047914650958635283913491876845018403582208888499388724252642199527342352513670261047984298798438604588448296906425552242840842372033256468837769477902704123938180051517636494768948295162798086842884406980042244618450135406188903719378422501332582331092660133957303023048749941636856785184008699572350299702248368287079587157978333515790127710255090308506827334913200714083579477970467842213676670979880646038154561526915819759199301939235260062090072018858264596871412266944155981359205554977525604797963611974429560584751831219112984993042830611201394889382262120728391674836653282304046465217710492256406074265228221159718153083582406120208814308464975929408766686278456648597466592044393068653589986755975223486739344138377895155331889055127685802428058393502534579913231679602960605815046817727386585500831938225054093726087321215320039929052291912663858707051239454696579859615732809535022905702493158940735362971802110428216797302639310193115581894459662383015859507148297055914234422043397862420059924018232872008897699827625035831377039089672347203842386691314459785024097125032249005856364190676821974119268084358454432077493950667751726063964278907077105880669317441936267109220211244280606250604667201856554659495890886486002811166535791071472289751048656666133915146744602049130142896637303596317621598417183978690228687027222724154114919252746449524711896315972608164026635660087248766295474810141388308896252812106895915206646770994183346795640289171308313706020994245013108123842236877459275478686751090844230164567859556828749392018704867983552825652570883973400683383772724405039049029029788591509041747048163779568162651159858997475843078510222862264244473707474585878201232817540430042464939741893232419127135395404631656936930975582466896847466705299298271521591969339400991010217475294908448384016560627403087284936387800187183750071358306110544388478184050827970385603792840954796920820504338899410833989680659736894119481903364131221869829085617631180879688698269804030685007237021206388123265319508237158424301233004761886930904586049349217740766181788067158209772607777921624947641116973394803043256436978996320295631459289708202367181456976742241123511068670971634145780404332472751962937218785802265665223797416715848560674263498392179378569996073269086914084369148469614326874465248423142554293417502135995120609650200626309682985124646093005831858315058567971700448098619606491933835796970131450852158140124115603685286607925440216717042732650971409367722082201412458884313610490055271079314007950986970061408387128364429644818232078320058751207862690381839969337743584241931909084366608078468372719555573539030628172831083983028466754613606219979264894841563220588134764450736222375371479492747460107403207887547266652307134933539511286094988196056929447204590724878929023298226823403027240000594244936709996250542536346977474722304528441734099817702282758667663333473393723878021929319180456644083301654870637846343831681606621760754251499171461057700355078443145361491871464557622054154494699335194622898567140568578161894599498171646826295059574794814580112566510340100112089252185857797647591485333392359200527665766007634165972452283910806890490244893549725979923491908309634237127052628603586626356643762840631830330053998817272208219097360958795229453461969761203315122809617038580550789248372055768441072351758194230849197932816153310889753847334707395623395140488004751163318170407966833960855476996650558894888649328016431919115913724022623003492340195623219307822018952134591813846075838983111075193983950948903074537481859042244701176719495083092974177989018742264693387583091949418394962882360986616629099454147389615778222487746371419429241360557343525169874613902173996289294418362036571403830253260289364506341369322705241428722417052289237620748816370507973602108201626195338037273403794646682402073670558374928303022262612525897438610391347594527444995314953498104043239243779930160286628118483634421824289136688670703402774444830944180992631973581549817206055932123725078576659916780107100550151131361449769408018010120120632719574424236044361116094417245480590834774234659667575937041843251782527212931730213287323177469415442465135769792541007500097709213260152259812630082460177569597349632962878871550004926628185284205323488322469696272118713255922874362729578174628251170493981983169024310585307366077447456619480758942994090564794043990062383728568614516416831999221864311032264039413720506539937598911514260054093418550354252792308199721592033493667735627620528235737440968337437226942411399579632493827477665625101776135617966922012903260396873783488771900759826284177744763776432745035956384843695969749657178956003546234840389056910609831810856236252756967330154074569721512345405300351395403577601606427702964499015696348561716174820299146428043509658210212041132076114303538973839313131267730800146590842611938784703286650046224614093668613933024641059428913353822058158181945912741537281258372866351165206466748703577195318871841936426418547508032476812878429405348320121150425534995268950317266480699038915997271231747633139358391932839041655193601328340259792182695387139616545862461578565659938779957242705396614364267476169617390939893693387219532180452184368226079076447734658685232869134315585083190241089735931624351931033499563133233131760332186951700482761839069773606366003372081794470605974892375738127864305928783798777950789733465836332450708010023606247958935672053436778117063150200849036903479892331443993139337428142156533705749074143546717748898409117072480458547206494560038320703834613872584361180623818986008993731062125777043779227078942016626550692517102097041136218950463717210527643633214152052118654674738770807241976259047580994685476856555660121662055614601825936926915120841837798413658728706056208322217987557072268642109765451575636466036612616409087080827020317684639273649073002833747172640099403598911585751047055577765440173910326835644210962932633736963079144321251582273059512294760684513004262786857729598565037332961853166908885415705114973575893535907433040005032505602223183064746747177794592070638905860571340283644816709013968266577339991148884517592751247619947756697716501906170201606166838258736035820153365802177759040265219248432336606160638645186337239488659934281035995168909011069000207076173626546928500499512510193049113814289107500284800154786320009102292032692401805664758731915053327944157871756528510700077376271554079662858471016412047359454095342124666097047170898094046799158273387987028077469393908976615526864957664728333300409621691713782052186839003349755711629439183460649210697103300245615952137515998008196754811452842700593994797646894568065428415859038399842641926966414595067040311930268236039590055775076754464838829679493041245025444823413769834855941702238150732353775688395789460448574883946908664274790832663572960640339814600851607196847761427856204531423155330167647525166798745472927191528246569172386610830783314068535208963140299531447719941397660423641566394210720865608143695853007278763973434410532467978797811152182857926132893753151689654752935895032394486189138464231883751590590597257927054435975166828178579178974816882070641144845470602595118092632343743904646828687463577925804389967965031886358177566500706349678664989594790248764097268722145406931878074572123674820736217352553753427097794188441369903357059918769462276552182492568005411734529164997671268938121737969908679355759253035397659709063187056489048000874436662410737553899209147741251229871490194041914144951285315437555445112051571985532397513176485537771562950196485842569696174596723486575925329850817902906488193426794124409397961353778697203395344253013760067396040244937149171891440620710324700603200664112715183602639886054282681622782688578842532710230604925011109407504387306595436432754773331326704140919537092228811930299378592364303003846717098848615974158345932649522687593471328643262940920925663614421405878381617510344978322041038974314183604978212105736045452849389218615558214890109902191652284315266093235885256153969813154409066226522215900653528702911260876520440547321771076986596791767064956058997235330793643676685995309807732565688631515227821981706034788269403000716122597337865817461952717820304394524580299330358319864353373895817805881839029602794166705308310687626830893086223500483354290314807092010542238600559067766676484641221725223855472123639688477892035360222301632566964587930395618403606456252902403574367793829419756654641773566532046640605777450586172533754681320086770090511063701043286075618284882069410126102209943413492210622193648587640682426493069569502001391244074420834856810990683432200443025410043284656376941921841478317464652048133628459148339819466763832340148342570757567362617678800485945671932317007125032752385454045277031940671467331659724299836077883887200551699610815816341211292762380100568474060997186517731852933015700242383962190389238842321680725245906402845439142145661262775649085348138532423726435271192046447246778879840600487411511175689515200208158854953114557931203691117316751380245755516253791451498697199048821197647294814202726854181730632464150744857062007495385248185650074973929722157675552532704189418113844128136118814973179484459319984204672351531298234471793317015563323071023828509185580700085138595161995565251939664804211086376325401920265125887965625994819529515939195994478303597210981009039619059834356428923651027234973498707015560741711737732311076124029903016649526707273015961780408071396951855479138045205959232397863656165746849616541724454556901960939151932435924749637683351118320132937265475578749429311966665777361787080335136148086659200529851036138578198953551320137086364467694169385495979760163914408852918327699787938864567171592005753964107569988950300776081475993370377154198785513706142979161774943177643888353842183652677495131894269278066520045656482711143219841555942926329575355595814712235788907421045120464036097174437469610819626437382472174726161907344818393208922433921811937190962116579821158073957126307862148999645764362771617400426739158738282324245953550438864737234415102997263792937939422979004089050320233419799808759513089238701680781964692962407961848790722976066056493799558937706501685374219565994624865682644031591372085478280316804734172637825356687767051142371985264591699876868699225948953525730266220690291788001152534639184667551410207079803853699485230921437862576295849089121326572339058592059835673286862697637417208391779320606480956981219972874727463030359187922682207953053384280032299912773960995054084458585014766240807406854178868743620729245978536389069071517119397235134153946585814811965269552133545453382231833178898788210490581790988299640224163624434573094554081550234967394692421338797748207515909775558126535603332697533089272518086404942190342182219508347196163703582999446470469946743094182672709498811821511967307687868681339542904981071355174368624738349161519835933823313336174246857126387622797216940156234415508343412145989397387787996963880050250001371808741889216737055283429415252513944326575816087866651733350792920311953048611424596479716579199971430446849732151281908635819853453381853354744100160632400754290717111893646975552397425448771738652445311709208768391525041247821884357558773267368406274260668746626442594377461750642871884613039145630562188540872372002439817421517636037282789029749125228234851803162730125034240818013842457560090024859928439517951053121620928176162291992939754405932313305479455651409097166280087928508038614746262865596705802956697020090631746492823663078721923025293807879764585594093678885157635869744728220601275624455810341559451649525880725891348460746803145342690148766575807939955036831379126248414289393506586460441325762122182122739960182991671909735312962760653510111459712303797293397189165389857590945213828237181556488810868182901637640233947370946541413545275133559671725460082814654157484371940701599613809416022157340587745658047003446477734256723930778723676404966659885393372315550007929328072312312694299173416389058009205422689345842345605769716979057915637150473200677479220379819469169778914921739970189786123682716510822271378327132762740544062827607531092150034739906041483621461950759741434223864071004118884413901455452035136217815053301729723864739727882702701423875117590842597555854070575567882863192904648321132231712446985811337787859020187698276802114528387941368853805594491782225848050146977687370019360434231193882259649300370420896195293825434245266377236110824346305886957706526804242475944863451421387473914725587060764261435500494554053104780162634378340229333269760406480691808154059975808562640288547547946486695183509566315395895096659819836388516202949433050998695274859599170867983954694394607541333268689361713806450912622023117148380786241065250532982159637681034938776953579596489649159941992649441007320715098521786397613496056271447552406936296079686864587091255893611271039266610081463779717872806048690280824252235620890436666878462736086388635169680322427374767354022652348597064246626321652639288311780328189478336209955653093450937892751596116037144177780885822311301218688616417143910028269626134653567779653387577362976608849902946331395463630802141046990790980737298153839395357987553529915842139055790369354300419632694011437185096307607174795333957541393103165097392547429153005958648862397290705313681775802184168108368659188183469680462695626579862130528195969775184465828432115811242197730523678654732935943818220980449940337433680802974270645106678201148161013385271614699077336448099754033458749986855849987018680988450741988811732813075779023807892153632192154765017873523959143721469723818238552310579329345149690509660001208857531990017020621541973694333400267579735802784710462176920203378478090750064901072134034887528892562655937969906206381975391667908543986683003553775459017539642163127507065105696762653926384129194125707498505553936990736319832843504329857163949273342648011956880119841846591036736709379346188709468673228374435591332685895455958077698728556628249181711741274702044463775355741666652599111722142408654194472238179762806004281125246758408500205122448494880229153839097315230815668008466884328600000761804314463073061584564530852735034074395522336596427334732544268410021688858366466143485770419516625788544419147301889684416150014970250487059784027100797893539744459578424456731196971267546676270744142679139197608258238428883098670406460224937945142270217000155535287420543683105271788168702055534759151931888774643783820468900706261897187401662551830513884937595076046695915673757240662105916543798694456967886616672992728562119200269042019757209624374072617076421685168703663562030489254959167701076986765606270470002355545930620076006559541052085062745020801921324593613590332660065585438899622251944631871336876811540996910086048548396014534892603667145698345591999813160716323292234676067343828746560010847094013009278265831813082391189470997422072761907796688664927359885369354024144673225817127195632366610283362708707943316265384664768265382140867751951458151490319383810258480170474775272155133370452591002184022934758473479632157474558112281544548778739532541096428638648066897381717572520130614765473923900072935754699729724160280289662041150710778243151055059175793139722628559515799970533656715694786029473788261283705163817664605987185246081531367955431447702992402680663777618109162549208386039496236333662657477954445249230609717792449517613684902937168395200114540911301793307498177979160420931254422282702239881912650830030105340155835756302424754620062773413777191676592936938758301814078744133016432706478784855805561094722437788587467933372775705821484472266442517607424402673686964529384909953158048511914559388210268529619049726712689868181839297280774074003113235651898483492566007942041722661667343172456341886711318107477893130435596531605937329223242270449700527392851841036703944495465752410063693015702994229487724593606384428036094979915295867233776600288125872043365252564280504132948515539528110252055352596515838168460609273086379138138741843837986860628427089310861153796608314783049177107777159883734776739648736912892049404924138477254138048676653171908762652361306571362053918673240313018117107195968147240292210761029864040344262688039427095828678857942521362243460176812989047563631022751831578278774172876359126978259730910670894864892444820650227755401034928416253889749159373599308917469225649782596263867988401479436075273085345795912674027975046955404106733306128877498699783759146404086056127732850790710509928817697460863275961885619569035625386504229258078619455687818683798482786460422176346278154553943536351031277257861922329296667748633607959454658401645190773144870864124148243116188265392222001135877512761646625358759313852171332321659575831549106243609627558778171278118526748166194279533806761707779523060256069194609026826280495064776982431793121995393085257699054977596631226735112043169211695126556595212257070313111418961815398951044170925044201323193109195836341609412546448613873607166373698287640380311466832342502880869202650638669753969415130453392355231090820674858862070292890550203888140937682412832609222041776881143892745092329998736662697030252524444510459604137639793743379988746392141120120701010374525624673540904480728121533784781137977281914863320252705209143425746613434458859126941962333554630524050239843892380887873466692384437285732025047461247894764227173686450023842842525298824558024544298673707491628187735804595820096167165181195521653806885932399575828209071018768116538094492459786645260797372389044772182920785475285230786018528597841666282907884927223584551062853399616798889578795210473336711160101610983811892359076523343606767272165351202607789230882356028441657517290677226771868936472885923319179494175139092228444575448315568977520722042442688041522193249185126074101043235212521670942270288455303746017290758032564580223208012871400803782712661645908957206743843495567484767786123561019351904323856128856799374860933496786817460601003463821401292927087576538688171464684980499597516651260092085484716603434113250871671621140319734136622159870975330026803886479659081642427632510940929744658477052169979856479794735338803310574299747053630774376621417978566282251783005328429368105887060385671312416998983006649415219812855561041577174548769061729475806278859015139948415796312239509162772643816866964428539960193946253207811215188294848953863762208406191812532161250025201472732681722706631386413641088677159628509442410886777695147477761001705534196948932755988035043894822584101085688618366618282852590184795480384967954694970997220816500294487925016938682267521553163659605121282222553980061799748963455190221605634548766499142717625655122016633401624346343907379124779717504342347093494762776882785108600287209449186516814796817006786977572570094046860200193028853638047410286059232978008381615144393209247531792244407619795872125120689437540617157417153023601410958795924998633352928193043729921983428151526727285689430057197526665108681800563119952872875664746547795689395563830072838084638962989700458113418446513554419360907313969920716741027050615410301365766880586504223922636890690676431426656500927295823532392054144912974836717226749564414408128810329454382504511897221945809651487134515614200685543479299143544252706600519756849511688198745547715515909103924470513658493305325629794931909510261812211767121765155647011078623722686032706572531501102843350784881847026624016166054693744615413272291998899067921592598656306301409652112849715669947047678794250535007093331472693764330374716950942795162910122768621176747694100230363623441817886132286685983502010771199913722141663829393382491388194123698315110764610147656647328058478936399744636064651140021180640321210999711622501506250008741280439138998054755633358433944297605192514359282879349589729143102298207869568009659216759866375943987667599333275540811671546031852785814023285031456993939422590277513054889659994804902716961135744497686909547772231055329327578649398333779299635010414019140617778083668784189147391731521447015167923652177814909357671046825822112892796515440441750751121361497970069623629294531149460721553001038290962897437524497003549183216343724269123162912375052679979681899788731624521450007522548876845672900765305432018431875188434385888437188233470700624766361899153491484523978489003569268330509218360917439164111300609108334162519915783990314670114746208775518074739901699514105867496371559115573014151639237755559622362994651618774540387221796114344166079731545015500930356998713487717879245887515699805989675348884289710221921861632933032896140561831615707479901196206334817192401049652707726033730485495192475829340221092794001322109403625641036657527359563275825201944581656608440548718299460626133941459988304236537296553960460637916138500946509440079744059823786347029176719406164647610277269394369213851247888532879394278786636502951825062726430493024155430281482201638116648923818588207769585735943636214865006557387761584441618496680577471990220292244988926965826747822077638741441315122165390526438781991994852365705734046451882351597330697407992994985133108008746449039879273036351645187519256204686728091364049874959081982931750809567604351048880200813398482432542219502422857384315456103086867206845771191357303252534852183849938151816667749412047581338530770565740521472370580279092310787429047157015949463724984793200575505714556636641493222590750760428731861386536824869207269415000606925953706620617894963476301234685221715852683595032092035956364076427059433261203312210527990381951737153414745312432224210763109083040993416557238120556351417731725433691457867518388344980573966577353510262911026885840792738937611914635639147304176186944704110927569276196957760495121861379610069989252920537509472167981118344422487239506146404133947639406023451210517748763154426365110761898495418029882879149618662346145678080167471036426849780017597098380885113292214115277604671810678638898096038646216005563729498831769499531846330668891930070398226643974228510027712466023220877122998136668268462632540545472587524267025441046070680184837229647294469222383191304629709313385034204028481014021833994681045863105423061323499249351475138522743188677859316374756583797306167314364320048391968659144038283972624999701616429467362012341236005547684660392379896268505983040826183447644499229729198003994809952225670243361326313820704387774755223812515710305564548618639379957826764597532587172009032254233926794910781990907665272019060886351916798418875739050399235506972647202586703430445866978973659407021545463087103606548585850667287504450104343143581548768431339519806739119111317356036446605396861740307380516562473169188146233585813437749469125118810447931898330877232499580375973287371558794017709095524882050647587871916607111030204891398223799102814641941018978898279420370747635067125802525906819706881887686548970684791221931161572442267082755126545559514346693996493634248209066605705869006155133286300135677333412846338694036322457204947824070542074595938586572316191125915372237932438502360461299560079180909208682482396941904298064172460272809134533998001805483429517350444658054839250741921047801492093857704295747274236240885593479394647674425826913683541404884931697311706183400016136386433406761197972051831520692591769026868388240504812963820196884491406953166936586977968120291448230553051270808599668024452790277212951088439985715468220554495357820213888598531658529644584967468793833997696290489157015435942203816910471800832169433043618205374397492520910851240271187024295016230160104342904199214273022849976674611213674056061999785330090309602545975259130245645265591366179181458634446018788870844362363771946656463557801425763849999742748190756985133107975438726423177740416467377930439741983312345954647459930746475620995444594273807627419286505118417643957314068432649903757807211917325527625350830029232593546248484610110050784352282106182182008489289714549967177753201912096795919292218484732158510228580295268659411520721534563767593180878453487010437148037815452096978014952992439403664836514902940741018742002131701392394784572115019018590728464167449295465644846214440010880044823635778268599491758629729948705866654561105003937896156323554068808050720615862833641525022258336867220911348803249897345540187110559018333583348576444221346783836198890599574571647341936995924518421843127353957223087209687270161190733119208389681679439672701283724923300074851925129393213725287851868769637982305226352337785338463230236731772121431994773213883067355046697844111719076902464735223737324582189945702265608584440207375135753540449944732330418473400241965072104700737061860156678178892865095131249179314758423883050600117809744829745150250555018348306442753057182589599152569559464695214062778093338616995288827166734110578431049399717853329226087960370255414674136794580594874850891353117038898741422936006590809493634703086921244118524673531349451922527424961143487980438874924130682509038968283599143915841771683831497527537774988002347636374719281191186817172585590190625299316652388662358716525983686018483988266789940643493166904961064474041773805072864552467185462714249616552549479962340581932099138244789723924868089922487280455785611386774372387738624476793449304637260861178253188175257183639453026505375288674599051890826878743780614347719105791047116310788719490060416751342887346790434512214769412172476300121642242435008314448272675880642788677047565951755655452994118443039006323831443869609564696957444155333170385367495997504706145132591132536914939643827533449231023157070147687562633617316272774578468769907829125040273566336188201663547664667257136270599686633019488453694041086268647634721918995915512702602612836485503862613708895153939675945608393656645819107973341360095376492099740622242341244800410539546151576284836656681549867321964095612182800554933481983086089712297465911854454906428127932383281857780083915744436452020113481903123578137603442205555436882963278001787528152513537560790196238693417543407696592541851051490968542443282274682942995621644478622008024886309500603718114569661578251228283167682383189666394361635515029119022103111628279332263344681336209387934160980029414857455262573202572287037498874110458058645906532845645246421998827029288456654210042463142790979032901018356030612303461804149856736381538869885283404317874345732523979346650528481734219423411223727000170781231075522236201302212183762669440547088670323199008749102198941502798089840971079197213133006334347428988866001251084673433544562913682302899005860111150762483528905838306770804109527386819436631518507695888102421672507736625029757774514557946549437969395538800503848205473219425392559945738805908760432142406673576876294766869031631516756250958763514709472769376739987644429431821828680083623751585088186297724666085021931332512392746989052530011723203407274041292100269719874997063583238751748296361528234338061037076607571287954163559617212792598003480795142609349528873391272678835840070749589727977872105128898684776217444892104897410525381598287844102407864756494003343354644097190932091216606874223438618521089078370144688116934775533610641132000601751265404399980952258580695553303471387092478816532662776775785087545697231500354470209132844782853595173183586578512949985484424476367934976073426023924272091897875396573875386977355530587560221128958916077787002765380530544253330004983067186767455497369054781601137359049583007053505886083758904816948524031192818448812022500448018242795309756256750931253277626363622396521956829311009880442882089924061010406198081641306263582776125650194550143002361191053467309208760521255073792523322380678400506611800796734613128991852721915566939786003048905611990041823831327449874843552363898954580776450475326966488185667814644884142165955510489052742767074329433688850312986354000139870111081123981889429013475780764654072571625453307815596713359657514015654504207099934315416397476715148061286095666830467388623183816501334409276666366099142976008303750096917314216825301905097091130130108361140745538841054655288654320417858288780280337529751145744569148756175522730956091780409751101780257135018013387182548612540035980598189743790914957210936138690462758159643432678818403115540604473498797083599378595091615097280835612711322120812160436939152476131450383940694199318166939284174040443515026281431133917743310278204201542403784208208169036239594020548541836455442579192725865014013042019845009801423825371935348471121457022858670559360507920997960986708268199159285725226084364243645689415516709986388708142463050288712221313985194832743467452242872657016209758594491100671472623393164546876701227199521639177784420300893348103831063376930239093734035799090277305904256487096129171312388443349531572228692254937120993919760963699482780860521238470253068823179127235709760558472302680507515305914914484558505659954379560979961934104292738707291720094608024729438388226097847653728591844916175688591970629371874343917204257356257414402278412617951082779580444310161591288102276010450518013207692027576845976701340605252245168481329357235850907295114178147152437008577177821328480735673039896591030869162434456167826965607848161055276352696091113814974955121530641648151638505492874631281142589544974881914845487384820926272938416408425199295447787745056449601828220860395641858940541829903052784305856888343691646173247076943431573113361247192291770132473105907941656018671350433405812756042923497947169263563413266811507285003123267961883087828728844404452288031784772539293680702830241957296340043374267420931399000153875554637650206272630092263130911873164951321331075545350870644874249095965653021503312759150214967036057787697626331306646476665193709938863230744466715533639841201810969289262131665143309102766290485929928717581113446452340751160701982639410532770793267354305895677061736228074307678817245664326559491715557096272506660215365770315155599348221873536672659292168626344785232060351385877514560000403380361867089940559178602175811508700221925795928953713278457414019079884076818877272564692092339211420293058647253134252574248074057822527051404224699478433445557192885076710721343469997616208925650835747325795635866230017911765606870928022840731225223553541150265582961079263917064334720239171102264589594959797034212540404593684389569486208485049342728616858930313277517924441680487672176354781851532514570721981418926279261618485564257078231036122532771189126914176718668282548571859392705746031283215036247496893919547425802372408431761856383733654210298268961117426493182996314978351938353923229972332050889106940653316561925105027772594079356424938175540207816086165067427431204027701026647542814204462033995378076847529446743126298112212340396385467161427787726716795964126567049275373484181054647576978341191036934467986060664592167500857200889717742892869607547603770607715262430465699173893681541261499695626462666985551397448321321403355872726856540630511994263079689806614204474751774343126342977980692293363678950068220174013623621515593926223830914469623071269796732449151058645073364348126815299099534226290714873641111888530689056756033513052254256379295304078108587556880457706351784868817086780784316896489633127096595330956369685173035578946141510352563401105304675378542626676941563096558209836473735146547828876911811207388083549930393521204604284780342538859846175375660191114421872600589794165392858453560553540700217179974255447919441171273377414827597159437864106034758598432397504298597747598104533130623952851962212111711847173471046521149861327845999883523084723166719139553821166337361906357943992385671441871422454626183864290393954520371312927121607015911815341700619791437428392609897038888455990627108560234692343343653382717412763066538599787131358053183729975446336477052766405208581544578728103604400205930246671011428484295200685694431013904454533721971075127965975638285688163190678379047229749150218326482290007378906559347205322511323744970918550197734532430267523037949192385052435702164381404543040341008722577512068343679261769515720671277682709040370596415351758913002200980285605680497841331813015880442048384926397325893971519879833681031961643602812972735608320505333368109312884505325462892029343562364224104584900007570283560239625580204134329416280199666339340961373255394907553572997815121327836917788201209351074049659760950237006045701702920889556156882731061742138183078413359699372278642914762560974272616155500040670200934522850351528575531906974325402760054547784937250798141650213193659116958653524745068733340025306086429076935931638771430837652343990954256559456132297689265190076418338786620962746063711524433220281376575869135806095191765205849329617908005901219721813839856211475703707562525283633563782266231832974605187760860439583205331363969849944151792534129884959010885954798675097847672331452454448969193499753949972573356630923970634634204990111711146817835383279499533519841931699085066623980532549577135765648222869257356584843785201208993892345226920611355070035411486388175466802148008009617480019991828774811522207860433147201679084371477541428713060662870824410619080787120097425665643611416455143231340256296238419522216020712539323900220077280841793833759418353259175572826670816475800357067363902276432585189293035801844509889258690571247962462149469448428730998971665152592745190434984713250516620151303751517494812260880066182990490584759811810735889006722261606476584890633969308212197508004478392191988485320670389141324834228679962028722613448378596372375843709306704649474284865234535747885659086208523622532792998429827618266171245870548762690104564796850419632386053163095036639940509467077267745827122750502086506760193350121032915861413834580454073900340502993824833273297273816387424052412796977619725028691744283954680875401529947161985434301001887333862632512475820357004627056043558745524164167733952306907628293815111974997524966277492537914726048422059109431567666090359703203013261255348413949577816568492973609051708190594030401237084116932813543978824134231684196006339481295182391309165398334930266726841448974133774489504034138531345856275467147838369256563524338790192632474665363095302998417589823734139887930944920517076897697220745944929829155362212738902785816738826697876683433745582615263696255565654234579203393601515650157308215649125003157993654922130963891689730523525472014863665156567445134048910592878371920341299557701516527170819951838444693895612413438445578752497458104264055956637764254138416160286713968243102032573076405792083394854618826156482123634270676535658895015492552318838883094730761963814709798849662575639974418680584306376863276672182772271527934440442179813333349689795116812802029756941459627140202901034322105523756869202394993281207780192673536022682578495967803345137432643921252857783196429038579431429075619099440285891585675398705904534519462548010498865444925803244867660440766237376336436510877673192928736971075619009611979788579300684094655587317821693973933501630293390596457861947907495648017979541319510980657232250114077258729839288954126634942644788893140336690392881616012505017026903935872958666872180932146841865599132510289690196877437203689552867191124169927113304172190104153385377405038987367843912340398284726997451292864264272424315180657185001725566806990170407892254767596149243107195543418623152097406981515570366778773747872849553907138055863737587309343170431492819169518697127738777804883614836824874123203191612069627725632662601074328618798348536179153396927325677911502216249607143091166517774553879685610832624409749385404544130050638099219376000413703117201088282232983363024972969347314333143355546920366049317898964399267219126926127667088372583370143774547244069936415341438032449400683528874523711019585295814568670413403872972655954617204252695020687280072607905152558825489868967997666268857160535668845096289054651203803993417115861689325559999952083818914065477825097406946245196378701051341217022925655282640894323135963178880879186758371113456108151055844233136317486546945814350412349155274256566132185212997569880617278553047643095105945452733280583694533512304405173407687983358902719787401127105043922501420123662446657312310895955451756340211650564921977437348216902465755630552146000014635310375275120935407939109568364582018217084084074169497296050162506643249227603998915475572254588574991472608765684366454257303676142502741773188169621784609402050101184799042800018531202895701205751230140572250510697047480011344003807454063897353015734166625336191389159777449408582541391538124512486941988667756493548265610608081122989226946597739569225339701877823029165770124289506150252150953481174345460444480184724511806859488862992233213279454318113244976998328265408884700093941219326240542891865275958677109617185823744685955954861984398815198401886498363776023962979354886586273613086424960524986343574469027356749552086550339952617336295549437829446030714905207165133833306816387067249139521624305631166569627029932081717858782549552864543241403367177781036123912609515759346605790559409795765359490989820070689971724024736025697108797294213491913902186809167679604436088661020889459844792949712133111822777132056822783896210221476134433312222786283745138299516850250976742566474598027270399291221954373822846107192257728282302481976223538431622966769919035712894326503222535133049502898485788213224672025678757011107684167562357609804743640027463270918712903487776738189096858717122080146849263740260443195043941696485381123744974548393200789237698469914133662867004021687408262473080192499910960163603933152569861364251484437819512183388871762786766724054936395618571963938122784300924147065440958006017816243249453945128363939726909478491121069968646585648561417586884212879000042234434301165376707957302610097166599970221412189461778218740661308094088176291652470939209410406465845664948679968674710899441433331603945785940579292742921896000439383387612229228255052188597002761835487172193413701740346602395746150156864475196156463427182691306455062307729026169328463137302580173724174730548836668053202582510474841567108737521240400651717026101933648677562042584691521739039774026613273646297778365597387819697349510841255748102062272528547477315752555245329705455582090774711517424154484123704089509407768436352559328114329097938014264398330760319123930276369495606042177953690855605599796267313906392558177038438940046003613944547881291684222858746712432968972220072870639792464909201283979318752735064664247454588497809855753442835410488640848756541187988282694353611807025577487525804963751875895071037284007220737544890033275069959797738687968328578966341841528311389346201655754985769093695882113367358276300020132460380156031660380001192228700655277821274414507871175685699695551181285106741122461567916329461517748953906572367973690642776853741199843684212305885208126970571325609121054141566285594950436699656840775262233091961385734165563073296109748750533151323518990167736811451143748722192414412281024020639672487626195047799861159153219257079523734001659023684357371443078562047016583051720751329341522226458931264379207777721342739707136751018786603486520910435290637762008974872293088891549990759666052609886526650968768668775446993246249464559861817123946307363313390658105779870404624550569885377165983342528644060513186596294166806115825761543619574409748465891839229329982340164407703609363500887654942824563535498751677944989770272845707525738199295587071646011509355670479929670417915503976737931958329340234831135918012144013382501940811408311122569554848511799640211470215538826323870017996637353804132593961615692873797502223843843548216607927218186542940365278833090607598833533371750745809343326582747872687368215150692605191144437748916959929128697410316234067478680296458072310741919785673410294565103805880519419017048434970977461349619099999303979794664954615247361081538241624093671352030886112834018189355766074093758744613552820241822472123735239987579076417200352490703678316556769050040788111376684411995730716034107030553314126765785817789090990886602827975564428761503360847087578232494487502186631230150466879346338534042184183859909740194517894587919147461087572275389121785991093935517241447671284486759287992417953422961276605313200126552950660953922014481153153292349869889168855313388337313423863822098975044566783742317800952736647628178860062328409187660692655063327180407155668619902975057033873153538435253644916835476549815248414025020768054759477585725782944294780248501181626202895201391494013561336163267711963790931471843831806437726135822999449546544160376063972541913156313578414290975643957024833022353947051297580420367526952719074720100879955619875397008833473092995685861291704985990158775728188605810142630689041760490074034475311583851545802491045389253636520480009118827176404342657011543763063825574598527006822766186044372074816531322685890703283768380831777874515625081039068557417471816273309131462591159761049070560246771711187357722569287036072974178293370961959954035082879354329581945719077384241728270055190808927469535607242218418046068255271642657441528747691160611996645776283321724836119675914387003455084441964730641256154813092357009623394321169734468800346859430662074889992831518113254770728375250480062630285522892507968593211344366386193220829522496822583292118165863306024956388438981245692417727298329661967857365898304656687709721408068670695048837715184774715635515195421789954178923858807348202865251154501559363201391134407617271259969361612425284727907463217910698106090887180962724179097679040636731343401828393401936292885525193554724570373131213114723692490725906192808345789745321769422162664199679786090922899693283682880849034699482829308904053003357870300735217498392929967637694497899350500247890065888854697371716446885695345017277039103112337774856147662306589820549992555679614050588524362659490790639038797809633426738369809631070518154629122371338971331346476178635181029701243175237399362811720116249279963697634164434065114161644083796354175156634369478774905003255265343680591170360947970530227941792751179893997392246049687750717648142870879690711679450986382162950552010208260587488483470592576590202590535339935549259049123609399602638479506798115274170716520693271916820698195811964635082885274534597128808216369880775462867238563648375924037247158472966147016882701122281881706387895912099563377806816592842695205779202827654235359935419621306801370008550141724991153645873468244772710272827539391649976075392093446359189382663348583179783226446795451450595142151035999373855120874058073655118449136786911574074165506251193561904998870456637939889668592050093339038262835548609272824705340220399343411348109554554975223453252660676673496290679107334832847605417211796164560305019623383421371526901589743528602291614942020084302684398994046790704044286296621852050219955170434254963607131766202908765470317799923449882743738304375084462021613595421403670096353177059750107308509844967903920421848974537099115511487818051732051250528047873595361519602985085463517803557039328984340330056589611244168829456961482235048091833636422503783998023483425270991515293052854058418492492344910569189477445648316690935606534007450698376330890211874295577762520487290859532087432773156252349788189971510371729634760274319267691963385296862460121947507332266224017245701460675333700607247607103764427565607007189151309590869700894085050617476777416524833338049755112561494307057646063367794777628372914828169683347294230394676861738711552247550039370427642944903229184640797164119766646880997183157175045319892396166511371619347599074627949181275496173925699702927256533772152732073857627389678154454670797129695866228742006358755241995854685215759943800426722131768725460933634411117651823849599440456457066636990021238679903912336767747174974204980202642973560914948127230229948596470434752253079148393477158966017673883371818894618910771240265164565052672790389107608285225403095192235386134272928710789385276808737609058660581928518697430371788330335433790889799455326155249982681559625856415676425077560512041477782827012344953064943429095462513574093760489640472536147353650291849696236831053031092581946608991204737589352988198318818638423648003888288958639734518326735268271568505343338540928170486187171736362283207581697937016055295866611389454545530931835260244980721770490745777389411310149077886387635324697433872012425098476527125390347596379506154042680864495843099185760318199727057817391642455889301654901989499814426473546293598839209623208642080593001012786594420741450956353931763711001351533202013885724616045040078183158660811863903378579715598077717305630792730459336052159363193325265321332391159132439860647681904879986126918466436153092443182194081702588680633508444596756735289848386317825543132302482688280162295713108620623094767672347094240628998712398436631857706876219285666865425618323993981446471533739352871582981762976750448456001253121477466670585903720859595960611182203977499126538745737258467680987143928296022759508934059164723202686952460551805991694219647430482152955889675043449648793478664470978854305211778103264209450187291524028939020033730723362240117448126974858512941106470458302973786032863825993418936436889976905197690017511770008813237914018099738480560880919197542648914158286292599307444671968441778805095000596730121404849354346936384351099969444599006547617356590120257839635098523698785342927313192063346957300463288580756114012575738766470019846449314385680405884930659341382037761066629692991601919357389485104365708342219726675240342292390917489412602146951145975160248006902767284235334451055223630168028123000301531439832436377801603080960671898964052529741190728480053013121351696268228460422379056775147374857717627976941757217098214379097089223048522474512966214512381311442281834413042048489152769068080453306644800056668755183040121058928868056419124127846594398555677170343489120305949986320848091410289684444102233627016615627731156321931782125002778172068415542028244463781986510249800742733377346458919050346201822789099157413847857778339748149587966130395045230210592895374767593100982091074057652722602384560671503590764761659696812758926947861264121645110920307086142171600722123422444339769503635956325793479246961548579794379786369106939033156772143205693187488990795773975484590649472931639879663803223448581393058255143436195106544616006357571933574880778034711135844518029461777151730464552977974480571285475677210307345696762824444886010421070489974163279595481994934681933610430807554840738131048274332448783650474341546686098044896148196586936420517135036770384054827253799290680998326258585087839797435937101351667239697145815853266344288680879518853500323532488379984505811503075443345511308011153453300765130736298503292303025801214546257884537446776300675025927317447926817914719065501918022969240664629169279655562047886522058598155509634693328091424784420863419311577069725555040825368230611128768819424328722659213475080132082308313022987894008471040783331853536074357225255185769391576475269112642158432490419918050897828530167990814759215582333465750414548506380522786867314472501384417108748376861683020115931227642090729412063890725412874637232698775376746643475030380320325314609044197276168880386628693230384368585400991759526790297684574469485182147319812253537667819579173151149095556035924677431799272574267254220868982201531462385421550758452439895327022720847139812598089272167429411145254587359120385716052463598819972443084127836989554752744611569367777350717980183730252281792008721427058789517035138806924043024227696113485328298825983451956641953610624249376151536819171383659655043052736871680961305973105359809161728408007380792062252089233139607619193529497548274696691869520484302881342225139338460416485894982918033721807476400568436498993487922576962726072867097839496800093930775350810215999895419948945787259655639324608981438110594830690837779167919882301057118978949407004614700038359235791993966513532699015397891587554652341082753245033562510764176239129330991650356555209776169984345300858282408450114259979497796449058425795548953919565660495939796294107969980575391587235884674926062562515787269669673404909685483634506956399558051891342328128363518904983412709244876813330944814852133561810833463591497271153032918294558236736924424902930319023517067019658828350195522439301353822990450145462234762991217662380238601636831147335376554694537843719710342227322632159612057343339733610091599332864318302913311850991835511598439633322604622212598014468407928513407587315949130237556208537323477355496771109233387685797040515650899529072637730504100333256191740383574586431863832643007518083839967910261086025972092367283104266606032438319283324581177257464056636151462731760445344783894292036254217735431833678638976007353423222292164367886881200946483375926557570280152499066384343246491908385725036096450964846722712723641949722836017659400396065811562229516849039952035003011195114689769653357693083133280450904845581505487935183003108482018181201950276943176734122263450524932118928834264057334353739669232454982766598772344268349931153258038466665677723920928180027040570546398457860131584798722770540193521973320244763438185917235928033453657021477464054763065720576507877129751288309111834581912168124595894018188294289210277099510653727895669637788729476787487650815015374042710606320621993778039553792892810765559194656634897210769192296385156018434044907921919225277682597600070386478428750329683903033366668440085950913899425017504790371790124501836816035483585552076867977532737289172918875889149944611158292746265039761133131805632965482863401033264117504789424242787574394191678811127530404589683684033017219000801961115327086006175252169057372168398687828143729480236043832202573700970101182962162142391183659748250978814664812967415300948977849611464025064834489136579258749533924026465924623050528372760661396604171924123414889837047855828270155784703978097347914072040856815084075032932612799882439543617482627663103074779674464220378976885382545326973891077292497960813319987948094907819606347035792231402354588520386501250193744988748512096720128359921198708349069923763648295865432472086870683620755541484238617156526775677358895277289575404790411415357266819793558404064842058558523873207398612439600014909188208521713849479934279920365410441834804819356697983728752665104522777161003988332063233290332465526648817358295172724661742320936756719375417713119400066349929811501237558201291782930197520962058443870517014298353989157414047283805083264526141527243573036440667375523355167828227577652525670612986285532760924983947999986301641861744557333889224008597091999273501826683067755172283076811142759325316339796927677996903825221216671210905772672818535385666283839708327550859714137233009907582616804022180694301961308996984075112269759813519324057441669696396008753372747971949767975665587217104165847016872776816859037209142750902575838689604087445243889773098615999413763959052006931013589260793751094508218160195366843420250118020899973095604454748866690148710840545141580979776068457860538617499244985840780248437081299652632634548956383495727684254080347960437583353663851974943393026737450931824490656540006253975166355367001852547903052603457409447741731865237142324728872186031229311578676284253512752812826126658957817660953901367140465632041784023729942380893711814300008824613215475742605486155589286289011772182111320650332911926593013856210622940365296727501894277226995575487580947206548397601363728188858780424692604993137666636461218371561302057607427080585699661707514903029041132523823497276768369269126103726582627815166551626168747910818783809658156953240067225767937229401053896957892987821649549061908812031730959411664099655832892924292958617987179396804713467030773824793592032276824817605556487915241689988369523200916716918669512062452969853390365387605566445539892763493832412111007466008401664385730948809263916773229281839462429849506079422942249532464228717670251663701937250059372444421388991778148504903563360505313206574472894928993786254504940018437665174929317331785947334895411251333545531708828164550712228018712905955288778598475818004597793663428981957604774712970394002899364863684364941118955757362541124231433708918782134462306939471600737358451457546268740838634817132225817140527332397062727057547958841048447890292329510074540848600284131316897916302415360255788990461594029918007512785085998207015056746314561391979940833969550904440427566699943905360634562221838849794143378533150232903456308749097635200137863079276642375889815667965703349837331751090421351536091751096948725797843667637113579835008455284008274760694756150444142661648135759616746736294266340154583336647820485515202769066210237234027352254322211383510371698419051124105493525294833963348608606336536416102992519222495719401546326721903596859093417994390564488290858990653851647024606799859651230205000760425079264545124408020805959885104018006282133474636745954754769699088764198993539808182304267234172625986294395207806320002263777846370285835034306457655356341555596778405380697235813769832145654253060817914462513007820099069672562171434313675728200977170525942581998477460561976743723073866597238680313841946246325796353266109380507121114965695703812956060755338120454625118660427193648641468543627007615255261380564337568186011205946569555361912386200065360871800484506181277704356518828394792799943337935854978387809980061794370474137484633080406576663695158234143593689026848139911896314120664089483310470165014466288707229044772984079154044396799455341392065757695628601064063236044436448471005019140004192380090910209615226608919005163436931225677833919331108023719754240050600723296855687473727622473593580152709966344585931366327288013904840395522683447681571611827226970888565062532947235545497346822682055481634692960054744982300570345140247346003778879922023258375584491756722199121655074355971413868629210615722708266829630551520682991117793232167836188220768469257303176220658265657419451789845838663162197837621538256401558152212406261166467080661908397688383584979970157575081677981958975945438439991884305827462653750381417541370203570311297389600798790907832698918429650174619486065688344260664753161139541241297943368257014834486894375228663447624782121643900223868724175769134056480884752108811559690153222640493531470874738410735806601954279556767707095405134500332708983842357152053326306193764419396313271716933314471395931058510369229325784619078314837859196632249107420855777471185245728181159830519346867406618182241054663960797715530276646482318158003112738585935360795368434138564818826553755220334373800143847177790415928935724750986876957580250243479528874353721632582502534263244757665957154803601934624678434120878862619045577694530021584992279343512510257908571701165586965643967481387903438177692507191292363987062662448930500142504020624883968495544143217338333515734936862966112464336734284729446558034760674712049218639224847499746214985831669876424962162305105821523921224350750645644720699395395437218733731645443177234775436348069682445873943623233377494424155061632623343479746910742331755551547435914853704336647471875589923783406491014460915615211927207826601092646177059147522179095352413164816955433453412928257191213476126947712505516552251645506395322735931188326601088227135670650521220197798977192445818557434886592713684983289062893829090278660503619475320693160403141090886389026281135631135516926870485480180812528077016685335915560149620253389356623055781059253621225145288789430121907361892163550544859362252860272257238342725107598664316358292709773588853584619833445099570192150021573209449991667987613736464957379033291595407419403022778427810830009371334044082335951999910456372799776997332339698885968655366837946788591091516963476908043210086411711405980422366725646991698982770208343560637369986828834692750134571419229886406274170905169512912915867810564518374346844325282910435122028449901475756401918061155601439794974953498508047514622419132278790089225267296715383103818081666217197306191788634674756806577023782412044248045700332419437405683659941748824167195128093574058703420465530240909939342855125085964703338652768678291001377092546389130933813518506565970149730040033699551115042222676614513460717294101431127775915059470112357838935211150931955055493370550137762276919030245470216218340767506361831707287600067815752130451268932642571482442344524854461578487661938947340111133503151064148480307829787067947549011873749234839718063970517105995381483944825060430328385130703784450670486136730092122594238305296354742270744762469956104018233663905812869131287214288014205208258812356404018554233770264480700740111281452211804167693536781438800778637781939262706783238474422582604892293868262003420914367472818381588402784582853953349052321991721976783224252793516137618834521519158701455501483530425116873670767334231990297584683113998476203970812102796056874272540190766806244205258655763536196249569055432594929671422255671937022861345844461037134944033239961659635627739475520242847031707694555073365835471550775444196502964080947741341781817566272699446643202689361853025583889098411860024518174242541419744376055897702984522009193931141236726450094853713910499213371315577604896900094466463466965540739613013553764750483644716742304387430906310912018687596571309984903919039431416796876788246980496155691018080128593247711581873470218380117074842539628472688738185122530628747202557905552432518409725477406371419487771274501757185490060540117094340465583370189508237333668411886102443941666485228831756727120912572268531315409281718213129106358217785843577141492880900554713584135398913832591189898082280972111180210609492788924359688072363205400722860755319463438454245480385559442603126699494840530537315941263596909632303835149285182738967794485921440240578708315549211580710244866886309129727238050051316810185613248121748915098636074264962547126838260717487934119965000777080203737519922820977495893417808883366750260182306229270940817035500583449360372930152697747003839283476942119665794633723563856603532713343600527112812739521611232550959775086596274504432052770158869489908698512461566862353960388430865537224986099795527432879679300645057281032382893994253895299225694985382453876018901455046214575054472199976241465258677442990713674025926174831004847346904395197386040095303179861151402908151539399160015545580058790811491762484804445501299707443523009328310665670141596931940639964380097400644661019431328475324020624358564118431418100992380531019317539582700119308857763106525839697499528305204289041284020030788253309796614612396407589874470570874460655796235759813182815996068751199300163872292713804951191209577478735309759331884626817200933500819098612071787417368446022475442934578926288794781553747229993788281998146734921588337020939258380668610266698997374830435902260739733367290537203978603949362275455229771229317134096457595243885945417865518780003486243510968237292933543496168947761593489783511452007716308557508259434705507669950936008209754748846668999992295302379092316733222607245172536729037210049730308882034391338973872584937889860381459299297663668274684185713322206381193468608532490508797705287140480776433195494400332951650400111841846928060912723889455829102561278437735114729140396935003248709713183513301546905003813650268627152607707779434700192197890329853933678427334328508610866112360486802091877937086099550951730456081585057352842769082634638927603746068375493890432591155308853878572766282682422872900512876916087139482670249101832412569212726603214221318106001747064767368526839354451462593505943833173151794690375771476407365156046097868529761154980544450762846491018443279222443415247844997486693241279988854443568778906345199312224478466883637405966624394444875179389131843492858470512973594650393815512221711411371011112929637378409614335750713541406840445655376143847408428470042986256283280051335496607978704847958139888788181421051409460404803925498411865163970892983927199873393259071460706532079871882747625887923864721106143651317498065106469619496228301493130020094678911831191542958726527375985917534720620604509305050223178756412728759614693987526701856343310261374081937542275883130770996127688585968876282261968134593091953932996697180290736125970152549242697875901997268486859667454514517540357626945674521897783053951343102742897101363579371321664048432377113839218404568876878109432665114566131682437616019751268365765157020657490795654903925430277788160342251672698793438689056918509941432536988690072860122508771011847496401347178414645468742760449673613196478572522887647809623314295582108366901103848612375045884966279404128184715784203757771272398043209569652601238338805917080871032618255493924642084878278836382188819091419996415258063253027874189344222512748721234940488296430621595140366325709007967658429021214045678439193513506456232018808892123089733866575640319012629274296464773910612629358612155770487518850940915897262632687771602636109210782147813294175463617395765042996155544863271765828860129465540821315908976931320931510934696622390018354029582516068775915745313477133978885888994822733542286955476961112617805571591154453766187441668835086578655519716504686596736455790071594093747990144745568303321723752503051595095004203563235272657682600480348959020658078088872147470909393313447428310969560697522391905695390289128392154538244267176267317161047296941959310732285682133481229936176019559781878933424290975902832019848997915013416733420388391409629298864099987857753636007528395194405804952054131557857325343262226459800895945976522407036517577654946005810945127453162371404983089319385614644637517143551681926245230358741969596583158581068090983804102619224860318359385751194665134881656843637973694346027187311716908847341484940986915058354709636297798785847942688373278891020839083204824743382958590745644790623697425974001722098150418726645067795872377059516952685094920929390476708634953735630608570939174419734094970113393214286363377630447360980132994688323673811004235232201944881618974524464122999806974517804901336679049416322709218539766404863939930289459898488533500947746680083522215750292312641227706493387854963723906515659479108771897567045290573446552268875549093886408828400785171813219724728232406360841920461200574503451745366767226456787412572882656563956593434880776785971569087491778222221542701514537101881144040637546677978021971061265985468420450757987508946101167439292732891015751104263071556703882766192693646646075155140603752767843420092367192696800235582180024257241187518959271962215494836082241675936893929454949608200552919106996180152796951595856912557062089822957215702539594834790331140321579441967707781413516460469025462142195899097849208146395679270999076403955563234083020806044079466583748093788112121993765073499266071107477596907860227598518623010109527277850914138780794539247985766034936129977094921433963694124415822034802764856532677637564304524227431974138249541918610030038054373693261151989935156384135610161677991910722908641645093571443818441901044837673916519611550199853467255942275911946538300055570991342422401358261519014288713560091627364456010929912487459381747840296082935254869093677688165396418911832185536136094445326081000268388371405012694626604420588569903047838975031160477816015015624633392065271642775185289766179114984416808840391800923731419332413435171876114906219573648844772732795342412071581930499961018691992994315717302314600678255383685925871865245475367880372129301898361380531728458942146049473121748391505853570806137588489848577576872510115147796958054474264219281498912260071217080231960514163182003484243202607250108637455704596383262047430204115080693539057925496694499661789145708184412768398957206302993562299580885208827528528397744216106318209905176195070929785783405180279574797266086818196379493954194615528501167558642663071393623288002122875979281723086983554386701888385574967778342369804015227178686387957666940460324626876595905269354409982070333121415724351668437169632724751358997655436948653981231550074216641332980413018395108944455132149681656843183198820841535994751191112232118409848450228932816828924503295780091478555324310448053333608021899035109875425747706750515513502071406267096867875588300943319665238343442242501352758924481272288317609329628016995201334531251507757657858182888264416752403208027263699931106239440338105050599747707771312774622088198947549917998822022523381133784203396869672019048333404699275590092791051193003397893794533961577661094861542624297705712536943258486065829779449624500809686380521496997020093184007089569495779604044333661958833385790742330043537738223513756856045316210940221503552929838626872973672513859876355322110382822031428116159985198469314501081930997941346840747383725266571670139074166690906713223557180883806114866800946617660548277106465423799806796771095703480857334557125621166683602033203260246380518769796805188015347678155468655770759585234888500830238951634644781623148351480483749421417606387835179591066628603547272448039382656120198567846553004571864716638029891014597902098318584295489183450458112842311667245814973748120976685958723359106802736043706571849956224515408221930610228011996459326414499316097947476178727867439088576597643682724144007331986362497496659478293419789306879399758577064263863852012558871296692595233001351980071387214129978338431356276534414420172910296212200195282831708349796461272829575257330490136875569153804657158915598651273011479384383971597895230738466826201776208909140809094737804348690565386398698739291518845795077862050277387691419329417929805125407487088056262152867561893938911216322789189969803209942755788040638304070298431629951947412962786345619117491446607455794933406283956813523783154022639962184631065053125128286402450273026642527861529702268153338574572875690658902551138812340719622364939100339077087511650830887567745326038782464918965960065214959658427480054885607557208350103903208894530226996130780108840010298334371762845164593267789678717183073858890990871043206863155445740621101474395344651653476967714984284949553154429074490099651315727626583794603647405541307665227364951657260611022584756320453391409098091883771229165238313161347216889185982902062127366670791815073582173618684038181891170851416099673669644085809282698202951428873250835487093170220463393825193524350828897954075135704199859868339201449518611547702877090116543578149223695458033647400919473080743870392375368124316675991807589752876624003451075206464466662962532528275285527301905924286289167624413785070348760626205331911872945356887921013121838372509929753783718640085939138446603841619162694473722543864881526381148865784433920375423611333375549327952218434316945056879696265165086685038021776996013291630464598182906222486653532982831026731859525390541312956508544391406332961483645276610081007470699155338371304355803305835479502656291221373775360176486826170693572428162030869338522822380610996716363207842854367469272913112301049890824131881745190992713095682535936769818736554059348094197038337344866012036836055533511546421275438865758746330385316327417375044255482749390384695023148933623647270437951628414162497529627310905882821112846643303242445390700563776716570538847867641181394656652234330750227335616200954928788363442013940186051551823873072781932669196554280770154356179823960214659386457539896873754320150514248125314105805526275070965055631697869370971940045937527981776384107018540706500950458222161557447759673708686481946935237513694798721887061944317072471801641161483432947824173369070706536637845701992860278891609885927135314520873675885835636981062864350368478295873743370985908317162332001136294115236017368469320962347332957544596272137601243062375515544193638686621003284889523586254737147884532032043424162069926044526941123409481508431448388782703383421962788793459880449291560599343521893158577499607656835899314907404125620139210387485800593184136986476105384060055606944007816412472446119832611850659144249295413688106295538911413791930409034745718782595588358140558297914123001114025354315841183015251373495317836025077383579650144794586453211187070348580265369726311205403620955135161304118548210888581888326304606942175877765766007290007068823673297720261580718479545006000280704029983843464597321352139147798519869826358077762172086644606608471319697949022853877167272849823889424103819195378735622705964022810969844870177067810473397768857478162036072815605523031357036158988663832083705744853922624115998106090001708828219572027410731938279263499420750778065191631050712864645295304405766019060903762425832686251847465988790180429366773709540882168195143843884472265308212743269103779645865022114135104034933233403768801085788873852296574093776133981042430869889991789285761685967373726336411554669280976309059697077899644930293082919813202286569721389114154614054396210698012887714107564357457034135596055167290535888749369586192359756428152395438199096199815669793552518713736011569260345512211568365193570863592539753872922183608270884100222403067195808933406859665534651280167425465889573588010476611258525519284578176474598179011397897299633569281867420795827557897204361523647220563270173331362701327775463754073649382981349965050668823593775480809426687314354612626715758911389485726084296107317015041254063453762955524747106284256862105735908595495340268165668933436058792842980833955299611015461859108167016964546401437767440482198733393719827207885565636004331716821696613978533733799747519014786236032154023017392703165799335557140003128382422273755651431758693937177413558006545939160886582569003832480557439341994754155368540586382818202585220965094310560434685712935964264070463332491372525134137700794922139134410463176072263506822956718675712774119356720983547559932255301238493944481316488257933407629824418733349407684960460964316275826506329807843134150053914980367121743424248360925860642107067463338834716146708883012193659192214275437132545676097474427593271759189629336174942523400055384516166401637074463676261340607221693573469534878877859664905318435546255904709786271459389295448606220344512998099546555384308550555404216869335798069869435822296425731752986176418249835501160234291115515000791932554349883068457313749587425716158575285130946310408341124112837275027601023967028615845414519212065259027625069511877509846370198292979681289240055335279564772205595043659821018867954310719727782182183614734970184511194434930630783504140558035223966205764471051325643579657495290075474537220995502758307989916467254069044411684320555417254744256019046425975543253125139536909718146577312225328197178815390319398834908897867420505538003691652094159363777169804585365560487085964450889145738139337462839166321589769198512787781341321549725669230443141427912352414563004800666275273717761262030331139116432431678002840905423366074225454613406332462572626768019211908251699730177045090170514965257944564813740061179083135872012032975707916991749954212148445756025089454038816493888538670639961086864186701040709631903008034473680116708907497442211912457395858547054277920590479564617839472350367113249649340188888874976876769466054347446547420117518291046025886302139391804725341953734082093804090879468233841114373687054551438281948767671489538840515649635023187870028866188538262001677364171274438955055274086413221046629289561123409556304689346902744502421602078103620360778921872888850190740375586661200091837172764141363622327772790617333027874757502052765327010701075308770104950989136562563617176148863042735520751616223820813591195192571536711375032435813593412450488226054976268665773612125282770171600357614711474767967823649692614141379868153569365823792264008812595913075136546341942241492046591128746222077247287393026262926418493613904506698548788142199217068889838820660147309222886617229521770466460943124250912117610289038556753279718594931991950736719231794477366592102470601494885991026021821045927983553821178589011950509038006813070712352880911373524733869971598726815612695357734619940095604833782014625397705887248353163103520389346522704712991245497043675003992729722617282880229390130857346601660460383022998666424472563971285098671673025284524191633219996848382877385322725746923374300253356387178880694101028108039779361421425694069787195384515139530362962304936533983757769489906856225866067929904897638431997351600326306798263838882783447414947889307797889644995641136136133332640841053352140459514375427084750549869153311153933335446847153322437301496087060288864752989573566540214719174775096208829861832345583054743565933308701015356850082651864375282627737236040574421550702721822970298140839812746287930683119258151936818831477817016374851238302193460433454372831789513597468353874215522983414166302661237559482722415133635976824150659661333509844497419028427638100938388894840003332743439469244390035691403514314551215473864376385800379357466579419402478484422440586121398110774421168090083727633815601002479389066101417482055236520140657726350068732134970441034936651242957347093335137904360643229684040094114369401732688891708249126819787239306916211127372987085056572668327443357443365951772586796598089761591234271113167005755083520068596584555782660546667402964924787421499125247397259166128536582961448415466650880946715947330655638988585461981210340502576638087391823002458055037651982545878059395112997758493953693206191151899908587780616957582829770962198325210476188689022745965718342736059218162784245490867055470764772006374027066989372351525009666189787072612281659816048244678047219015137964843258747600772926061195658788731053097856095414479334429652563373231796285267492643753082458249227546220359902803118602675546151464050663590920035059296003923304832456887296438438515436832528703450385721551512057354539592272748586946856282509244794841850765085095286626832002524308829131331877954256368176586514143994168077009452881706243113009481442613995632871033563341328161973875359714698628824786222433684106055072203328911152289625098294793914120635700247603179351745534155571622784513759262946526422742310800375047163213234854344846083470250437643478791781989572994743167509486664957331918926220032532161609096145427973596243449924137928486773368631803741847186342148605657823456428565319495653397564135134113295892425345330650751762354015975043561660821970747902640879039146081046090987145364098087260091698590091930999449159335545029813792919581075886030102067758903897638983197050166028943470648723457430373961929248090122321520743134846264501037001829076719765020297822202225466240386978797267294318911287951979121704208727357723001103564944586643779573673887889212399991000177129714337390408763333405581840967224432062133231528390970920398340478497527934037634975228082045965029280273100628573329502256061774920485015904772831233671620485782508836665848998856697927608019811855320362603618139247071224894856805408773028963020148429693077069715655173034447998108419965282176130493167155826211015560799983085096092628404345635340274362151096705765862888855326253940158464924816137783253380345146444174902326336845949052739182748606850999714179789183899234114310627459938337795567743063008987760061304036576752151348993373291220243882582117771120998240416311381714143662467707668928989799557210823921564633459162447104948221482759615315711059112155790100443329132377277587965756691403723712530622629866842416022872203194555845625881466421028225999252300056742039160478969956020031682848643773537925335419978861311639742576332205396323284180461270792191092349109966440633822073958030857217885149297288800884651513744840350799638730194170525352535771890713152573423299982481316260278366353955693948043918727531672462249959457699418725316693553398713299423503167683526455952929415249139698283730679492880216476035758956626571393481174445897810744832307264674331709718113817470140813351891828778466369135156553554356046232663864271603410237767861429179516639352357596605387611094435834537926444359571973477244011051190953726654399458118358225180169493342894420216439883881511352477996317209355778538701323638152274541204397779284896188112847289150976349090296263179686787077833585892634430824310355898769664267318032574197393417507715970272457963032901882551617649957408726505507801836839520530028745251028037054282176088794526974394513654577208402796789150602472918063160920220165784976142454859796838681778888639812737260321509558128772550617973659511665103703593510471813956327003813144697736506519056156224410834364468769508335467206690211341271037379256340384792218116816698089548811153498809247616213860000120095788532569136319538692650877914322608153211091505053848824560497160635398147513362736657928123768076636471574344976922946526790424047586409879374907802849801249814681720393022351118832336064392101297786686718421663819292104985194508420985947368024745523683738830946935596547949238578643553227381705130916017754970059496473571261911355291398132319724726485015903878358238963581301204597873346963661208457626881924567490121574884546230804456530119230579987355901382320159672804892754892878276259535018982956525404053987246677274401976054386897430242471296727452882713628874286132658280987797808028155267162201589679271873008718211520374866636935731094464827066785441894273061973100397451006772841167591146735913198980613894345614805848742179993905750387654545083755331204242698376244556825119763769717390815820657602660980831898338353257303393724180991731050231268030814010431612975185525871138402723577711758178953397626508907140973700562694932484575819482284747125346559613756922939588819159097079924536791450297509360788093622797334618266897722531452881499358078014191639371048385125544131786276520315102107393083461248229117105437395752048560144958359377165769743932148547124888275489666845005500827690259689979133563195907368537067192326246752602191255885597252498387668302448944650635156143599658164225510351250016015027298340120819843609153780049893780118200099142477709206412291292997561734393363210437148630590121159537409777176658519360820546143606136595300178997033968302309988233887193241149982973115158408486834174278031921325222268373005407579914695281435146186563345659344055272653983440670112027894647743968479248595097666849667062607052756410905176286690591660430553845177830202653820938983247371390425714334337786463988087873202112216087055657593374362238642745890754908868378618510163662867236301786791774144578037750838758280967981234609776803463368850140306691231974333081673170604511273384123421490307000969598377276735588176097024804971446342132731549188712012843271872408944829092861905861077653971214652795200147110338434396180401076792532588237453201909649510767529859356461714090709983357428945018645279154279962723327319103284637682416530762666008336391400751317854723423153434879005115880777352712983894655798922166027228903939773965974334018968458296430278823484746872668477821255432595260802399173842562523892809055129459735611587358688067857392468829752515650193912272765118006612841169813149691624499655210968350555436788044576294665107196778926033284749957064714686717215066817606496199024930067577531072927574799211491983428255935574898705349297693279415279382338468264662234825773232091759348783683039975654790506461270507953293910069692908071602845582126938224349305223721726735778890774695334056691380363536908831303483768881410727417529361679390014444707627502523247708547894251439326534648390615266021447043193269865222058264993559604541643633928213721930404440585256017816680920991011848608648888500501957792143831130385247531942524539192505797763710425364809324352568693819900000217535112705852396581053892465246413641260887971042810905381368391888066324266872316402948150973683671996352665005090031586494353691419654581738709712958853957161082629755171233458204712130242478349382550826304345295011191798808591027834087922082221320574897447146752724913164913636494198128233296303181198056480229119474724386641107306221083980411980541352535837777682103204185129122146649155334027339859512104221450059121448173084006063257206153687427565542352291116291956485635641221385617031667781157521950143530408393684073748150429801329090118080643491781457737557044727023216787694791410556351012108149836620494750108426476995194544538409810052252863945251880574615248240867740524493209445933720382894271401797461565030393035251919400289207175037641748317249000282834972062588280330303154730979301192263089840272197197783876779427847610128018009001396509545524155305453339588794827050151008230479857004524530047929707161734149611035759625919331279995592763219029122015383975701467416174811413906810602034576691325996359804584260487750778708628368315118359550285324999189714010606283923177934497797738606248645417528490491798367499642036425091876365794141885807903283005191696619051167992130019590745310943772905982119454141966040552179217732502918945168027828121110732515427391237485252449544638373980938055307631334327112856604109488087398964482616187636511961694642063242629671611664702037689593260264801825793306640187900490133052880056203757614333631227246406285933785047181065879556045925698398027144615995513052974257257400240403489152833537336542254086404094787014651511662994156843512704679621366037364809134272992508223070969580925558521788182580284861698168720858209989362913069448959608073191638835470199060517571994795185337008026925318923105201757180603720536573211491944960083261610284752871422177569939036987879815458507987491040220644262323031863525125251905839720019954325615752447197734556784219929955661841878428166025915749767406747998482512369452004838394606008456832856807714169544640423037657236295432458904823703683720691592386952381510088041285383538649507147665985658855407739483849245816065632101190849694200971178792502964813145351696982813225749813235781134426590432745904404026152720781770104191817726009968745618381187089286267406929944318179288537621662719705156378389925146950814690112421405752914279564067112969695829819939528072748948544319423863837438632818519733475493062211888617544530580863676860693266008588225116943310962800570065547288177851648325143844129272304590259017883964997505674987612118046634102757447113781285224035404458310077615750229805810409313283084398193488767756431347001974008596078996980524651169953151278468286807720574168988058399583324849286222095716998195281878178134368686940582809350784678303750177202985707525019031424770488140115100800789691028767309017394041138036469110028286681989632581628800980794168214324146640491536567835864667299469356994114691674711485152970000727324012051009262701376744265610032941845181101302447339547051006440703489397737470960594024969196267801683639743848242477169074655423286723467282967708186574136677997219130119835451549421525672942776192356966878478339438064269538585636283015748869891926182835673469113130751151788230331138069813916565674851526075361747320009171438034991910318095515153397014605755050378948082776284554778832278397025269446389727589727582442307607036456371446134683145149665007749462001362348175504111970153191514952536931243883110336124711628085566011541145957661651323585047911182562944494177289472871278957480409440682696362408978776881163592075766059068136300004664234643624330368895646907711072344418208511249155034132886438579199185812802733424651105449505714009350654397180725349969714696893322742398117790902290631858589680138315218609191947977199140395817823083847682403272893925272623081852139705080783313430487730595912671848929992845940610434033476651581755120640012441167386683868054457794695094514371342510270712396432880139238276229495082000155302730498416419972811265504110463246102231826217274628384879062744771910048803282013983571665191092391193661561150109250183047708736715521409810791470659763093140176438421396702954970235673010088416620427044308119060869348707325422112795997031027993151568447830939246483160706124683501631252510219504348476778679736363948682142455635349251401185517366435850685964878245767764909976681534637756165649324668263352250285794929430968887528438881798460680141645385277273932018550851215070720938018303553956487720455537800579058530067942649328394656293711438867815872349405112759061697441940287793831782473381314681625458474587353451685922743916970346542397195138589093658231785196719719355342518684303324435331286998514218933060209113275542679917314250954119589707725818691480900541803091404868464117500418630968925592693665845777677868399742683690956649193157511022748532449099055687406621683670614464266182571672538665066695341149594497851284467888689737440064168630148245273554685566161697190558758038326857869415041335430070399283764057363674165287994516419325366368541147001449998241321792559340205016154549233229360710142678386909993172298127702266201177309312072106016593166906129000592430961454646840693613053411489822761474092078407961468083874427413023404220733258280118089283593605554762961109974956358340596088647401671825078838439074355589515982253293892709405288653436601614139468690328026302946639362153692928360495665755806743189252281510530604355734224750517618513607522267505967563314943001713098620832196521078993696019367191093853490421017149391102709279813098958407970737759455572445006244374400170818617538492487667219908032665029385482376903567734281616660314001549377924645413844209358897221944554080146156270298132150372114368679967771872049531530478202493544300031078542518706221282540863799995302698854502987366656067870294102367810187317934682001920715617577145377140253759149515134357917781306999269126637240035945396221584697584433058820395891360240378439242418504587981660274165548403100249185162178927122671543479486396747372813290585030576129601672853127352482148020602752163578374799791935067832323779598583340652597492231779905101565461245974196304331387764970411441065616927125766345580421632363685113933926417130866480661066793416170713991316346432649348328478167877793774730647842695070874230868498808090402425874326286468681642284257230944579132089954310190393120234044619098906250297627663484936916908954050468968523358242709001920898654381942205280149414751642200148980058694919603724092809819098977581722589281218131026743682786969977532549930987339539511494403582150716183237163938375122833629947816116715594507049696243214693567235359081380361367901392572665531072845806186923333702857927125816318856328488917297570921667582656691117150809632297613399634361631395698851650111369698085466704740740152988613280879426755083133875858962306733075897554310927108110617093140032420434012593491718607240671316421689485371278344665336406490583058094183730930715073636699803835563815604585691893689840794826075066467921663754799848852725561660091756779568219407630826856891422501996628772088045299324767062933959238405689182020089520566746070720969191692382752510351076118615946632326174231322199926342671229624125274700185933622898409796503570071136241457883768998401251984297904582885427860237131180774025904899843667006661629517391293352348941342610527599432888263273200691769309231335040854288048455248468670139128999243018866471465041907623424945872060208813869344811432322597944869733560517516639769432745367986471047605999173724285926926567534038703070486240173918545454076085508744057451112864623515559280438002335535348415145499831252284230290247528275535352866451311400163773850775020434321467368158357281713200604471653710855347646034963347873994233486930762288881921465358977914777890233962908662370980924117004140049765057817643944444363635915370723924407383701742651084532497839851014429675094716711521524975344907336148918641294223966282822855753350980365628924673260290814607802088091542941954983845820347511423586874522907558140013554007415476086781294409811307768966657754288090594062284493564384354339886645247948709883932239230321976122420287445509034587856918531487012678948953546970827415783686426268012094715148176161981983677300326174203639461720460998664331547720347701975975569202081278267507549230352753723037967704475127286183205442921229177409766375347740878236229292903196578155830321016668172071262912166222167106342356030398558394345761688902586417148507837986556261077416852996272388004478252152432886728415685109925984949865421480999993048340098003311090666719633383462038144831398613327836552417021961236611263285384338986833581633371304289307897491053197560266211007531468950403465650410188606011397415784459381438061152035198306791632635341258505756930165398264164873970518013139576178123565918928082490687316569360657963115887047895201194631447508889549382365161095342823954579068692224225183034369462876627887460550075057035016038749443573012546962425471909752323305673475107818335014601547656533229956829723145583795791367220866368730833266196441083991313741635609239849908458625537481371174433099064959178594781027410045794692021331964652997656076063152124524513437592563150967426615465107730652465017516446840413214760677185464917928023862478549279968409614820471659750333740000382882419040300578013610781843243089835155533737574684369004185142565383221299769076080470306692832147840845469927741051237110800133686226614994460056723439207131967690899607890532654924541020383965344846974381590403590719382412172066334544901973526641392442490903502889848810696607509523263209780530266105591783051124368820739082183791294402343352179644693498989596093697303938501430439400273424973978998972303319172046811726484479654701319717008269151639739949547841825679108347030797085495150371489582283343033638052868354293819712734812981540270776927386166875694294089675027039898797195361448496345439187127314075608700512788008386427712175880777632060919416715393231346544454023057264663280923535008089262033048721274091316441438624759743745267169115090237086854314682537977000505277073826398980997778164918974424161212518907017703818298342351984110767158668884859140385841420577656217316659090117004906806583661548620343455007163023780900986886192736911057817291514021084772347317888601878339517068620146883645746943282229208602129990759837023067345671985110671044861458292141655264758062171350401349617076864979044855922598009495502341742646921590597640092243655235552036281528359393068126581044874836211692002287777737145367395627033540479826073441952037221648495582120119958142908985979752988310853211022427885569845568752374038311346895011002288182794456615145198275914450204135625917158869272394484023240834612971601901569048551836913912176572408413821973812266398039018763305570602705456313761931366620558705985598243989736186878401320799755956843557770178399412974605190649462412243852535544364863824581348148582294826779309893825474075894498053527911316284399139236356687146882255818725750258073744128016486492786182631639431136318990493610194291066587527149355666593712517342726578857508248033999165801537992671563059296650178557519151016542737862764552064384463046275055399517138123934100644918652126511766113041130975056040346717063042938562664611620011990946765799224631301272540605116401187283105072914905105951484469012765462314305262790124109313235929257730528868105133758318522848537885261236159706956808327686546256413300216853221701769049500192237018944253281451910039862535308495529924487440448802075536815083411994567320121751851590006434902616665052377051124522294226815702062806275254875487105599023774781647479471382189009547169192428262846567795442986009752298477334986385359577282790207532414350972866079433234673270617568309736344721377113534842682996346293750572823547239583980045210587434873896606920641388706299495618359188278203210568165532619545725660184616089141781482640200351701419803977803734522382302604136200715699050389258618462988325507329473014237325835742881270764934684436949933096813391225589146364487713684208058248020248700747179072709443818813556295312589637289477619090001195581670266442554149076877696783543991603358600126294522454358611873989359199607809570996422142077754198157660555543685239203928363007942421036090868110082302338602209518380535178919298574088506023841733508578701770882585997311133213175313210359918424105242648512668617826022673853568938541622098866060845382819610323840180108330217094101689493703084474243210333201230186741127207644481912547420976189200085324968187575042089409569875934497368311211931636213333539636159605102218527979625452434550778885758377521932368984266134621385704756345458943378647508694375614684007568569840652642552631334815728452360270561156582559573962087656861589736469401556523603708297360271134681278624174546582208998029622206842799493954315257395856904033369064084059410597071241015033681662299940388983115741222514689577549162738416551346012163595158564748675199434945544807716592304809825392048267778961160307116774619110531539693518446551234927176503893688618833616071975614382494955629509885820376871971014334404615233635696218068927754168618917995774269880399863680772688221442310278074801389930182411547489325094692732739244632647566869915642457840751366960938658536308080239526804505224922161140312313816168277342985635040017596410610002659528672029067361220164271049212475640588379825077216464336582474372401388092370187316839982876969665669889234582845241852231033919480439762873521172308843757684544191388144278222383419055484434683840057757181741098347237835796792407120512806921597881759247230289743852286699862560041440155982732185132544692600076012224893281018328900658584838123114802951244086963509962525754872626028395220720370729185828037486756360252572676619657852746710716234287793995745994777654694617535249703300122278886049658657327554407638330755838047303351268075386565261823820063028091782659559921996454880009066815476729250580827251662021036511376908380723491869687350982299274231125837862164015184417663749304462538892317920228549460748420475594950487284591890512192974250709238745799878813443829450584706622714264485594958692361843101157595320376563774421618793689228973036949713511526191241623518949100413770560986501335108449731420899720671284920670245212977857586836704021751677780976040898223604639200010293974387016316491172571033088084871155374531864670628429725978497181449079584234475593119431379507389185647727753458146018102909380881122172802965155877463245700741977002538007613819269728578300422110464847908425605941888509169878745677029972367009413086756874198254919733511233083805828859235121107001788333834118944976800070525249703573118326908902317118851203129512418031424975522033064328433205867353141239258284910168895683468584670145158959545322050473318773372385716243420639921259578046913451113797337999775003552467076600301413622929276534468656139630819355885418113512924333617119195714822569108304927161475816783500786734737306127060950746308930485929912507675503804593598490372382530928515716169056933390483039567121971471863886371085640557994806275474853712643772169870030597298777338105709660424029970290303786856941887294336111979905425865540817027217736871562730423064776971487665795783242215278060315539798167727227247953440918784350727161385452342792086650900178902038621931717290922297457620841958345333570062058960369335224895012927440320162798272848697187817713536887795979212991717796829476612535719602767551880241564308724601237015799865429016102511374462527634433658489704156280391022392921275202974421784652803656090847488756502058146670511222941141770544980337311760292733216659690093732601400057763430680673691679323718015744031283104389213423551744228935046204465952296781424673513420149334380766995461977855624819448847091321462831489152141066090887261308441534900033285329002940340356208271033964468529150150386132431215226962266580387116823296443784081018422969885392781385752411633838277085311218609379835319589505209952067152816372557205595553376796607416898060303356211048675295386828038001038631110849483657147976082720692567796598378480380982205422458198285219872360472495112798104271569781743223402527689026757959241875120035486604961590906806046803035723956610925746614674460738273520304924568960052351562861020772931002297502374306237386899250306601027790725416975785839153654893772888517704524876717251952462507579542231974697958342520090957491640885874232521516412174493047847918888316730279526750527206632063362325477555365314205374640545277951303815779505890673418937053340162885728631278611742567365855605424599808863098981158310812991533536991993003586945636032861969872481058974221555805697277519074273675636096637059737697607444242406224863871324969506802096579116655304789495907778470213144334937229405026596411990506720156828564530765850560504424459363341935238222104890710441973159854599818447055199475717307304750342469515385195522988843327130661570535528683492734428191837930068495293423088734385480183950935636746637501296308968794777612522747680360692041545121237224361699241850754349115427647412780251640011298029175746487518559395652832531362661566587194672670947362743684591799143058595635141859450329447351244258694915768066385463886424042054091630738717162001265198337963038888121515711481255306529303539542089898202570984151487205034509320093895195042008933680734058237799238471309602644171885396994079841766216046017070891140533678726557785333133974625932594605776525738907975970414639439063890316579280938054024480567857927003385573310939014642864679993758148020058803031852240126455256778204750611625126809697863875912491613884990399372280371870608119855412901180004912348417828442331167558139742515971293750391189040190142170330314591348168527649184507891031048232584110499135722652255604018450821157487765873551825923831008481529935590051928484147099749401020190360331727776063056257809599994491428767783529645792316603828202200197978774185020650559901393345095183151572226250461001727761650972058509529715268092910899055015426476534427884156596937199161321673851173121887185449281443014410268722787663632623825723555015989331820073526895645838580170369768760427314989616174043987132360859753634723613277742167671242852895934817550162786252959109367750139250627850377861276452319586483963376510518745840792849739863231892450659320593561667919905680541265425182191307339096716942868591095168918993640988987245812462583059671266841805579503957316177611464361279314603506568375708935025821248712826480873595653589557504043752532415246221501162795340297852573387986968492881751169425730107860226633708247698259928985196748581369192805469068056992589711033061938637682537098639167342579456564950255073033353964045363539602820852290346094678997487851079448319838741555719351367634541311848490893629746079125127336503739031276037564536149183177000225786191733174250568548503575433297068435722755443606142016174926722292598973334311350052789044925869375906787461725163200641691515467877259857568705282301080373238382629554369429901412926166526693289325970208931162428600578378404507153248062443669896005765081385547023565973521893742693634020092585098386402816341437502681498657653512981236572257136263526655835095888736802437861890210703163718552668275448111596939521886307657068419181619701574289691890849092857440649023721030897480943314567905790041508977818288507508707218372364713685903906081739617104257774537696412573314422067086873792037048919197144098113503883902478448289864600278696643981230436464140003368883115781076986334642832267178758721518358857904465675225380445804106612881473743291370109316352774015830626884821023114475729681852668381649047553280038171589177283541411477166508346483271668668356611233985658258865226079015543671214541937352367771057654732365553054131898576445637660191876917988887984549099487374191510290945268371480073972403642314176320031786419476211854666412337499090543402855890270108308603660862896180113473465443694217499271809352489191273528237461259051051823830743354333858520571262573774966049604502635246131965032394375792406808963149485254403980095559691189827150653739692676494311263018269775137108262427197165258333324032989457721499351558753830670404377688342789596088383681336251384216699007628605309417770388961029107449042129529077482159735782927886566619723659513247963343463697982010127129340461945669620736147518600392628406230165059313999433553923733573842062840722867643577087618780776228031439542504242037002112465729766966444586049962107879733261311573874379084429172181804945251355467885461000504772266119628870250434290324182044079222077245531438229476635758973709403475801490839494626417608212680224949324704530679983796621368069971058131379104612229370929026905790824600295407774084076118763001290037644394189297698062002711699717300095875673494720101574994413746751702973228525718809322692340647065194644933772865877649479228630438247779657357223650877722758697014140489130860801488953766861163826356918561682610092710384490676553907629711145530934325393796958813868449697558916166392823065931213529814509808052976805688019476967152526492522046952265724682550297120063504008281713003305868345057096230332229569629907808092670576594397150099201742274333976221324481976938077977485911271893515680347983381971661431462083027478096590345369360446930092582861848725496165234429336477710758386537182683912535293261856313213922738698545017790238076498027862569596139872308616738963585612597304601356055958224484342731461992599622089971642974233789114492083323839739824332787148817448156364374186350802373222094750175411910666331122435551193463251090298094577348750878865943338962185022320071101787668617547155125409569645202616176398822121447807380248821290535259655737991149304172446550073625097037472615628472551841473666388032230277091807561885848924316228346625187465465419683534712402924045008793406073560887502233762105510372521937130646889088637407963514322461236737733114397761084374167175526795448253611745552231862811251717347513075196199301603510131570320109404215033178612225604871823851573669635416581803445909491766398126102652237949219195625013966475613157218010000636218824914935295278189825239988018662140872219091346963499815334056034121618652193532028888789730508114060675081960493981128454208716050873270525859596793449055849992846932413252256927769223090279931447316355088139122851355734200458541758038457048668396762343352858633421723034074659800001594782413063542669801577784080419296889108365947454489836167958212719583082397592256048023017168943528579758657867454529093034843879572543918801174400501539017167205914987817334518173519855711560384523479017788028726963410757466561511957190558849141428543209628735576553450993106683306062311272971639761342096750450300882143131190615016954675918126831893267794587688218187957943158859101677092420999722706427392741472987048781969255849617604392852942532638133489084943186402507502533252999264720452107236101165695881546785856725386620593274336559493199425859298145044080607457017240301292815881416229890036597643957110943614727552141732267741256252836114651421150291462913599878077686537277470617921131864593788751311085394409958591429938735716526889067468719935149160101835189452007221679484839928652505973707006293759390567039639561591225209727346944035570620239792315480999679142710969432661878687859218419302410076949678815205670911545502986732718800291618279078165672221676921302464708528805438678627887524043853471880629958630819697669867476538358736050792743343815521251183606887881127659230609277905442990629914930446754720432217230213416444092593917224787081317246536916928010057692789927373506070664895354174762335116945097705366182785558551851238977289333290129455421171730917300468241229654580358440163514099908968524763835803799124611862742026165840498008338506515648791652890783726815702031956659560444328064979879327086518371083825357991668391131284277285063343538597978428902234104278888143456531510978481086949022799698726361480033923196385661722413658907145648328506772102943029930915021188335552574741119782072055133713337543375904218606333926495044589630612795441459747149435971351218889296700030778463287091426206028087348477439544799477041410827017389348318960184596808376530058211653279547181920543971602783281823196355206560450965403984962964893615920429722570032636748726553419761687509845660271157669455059499789714552689311332749065661329053545594619570090161469664552233401949186598443754765733181037658412090445411653663256944082800241231186691456381325088021023166158896436640448643347931924087888983197258618354494633350488755715217057102331417375900127533549049708056492910342296450457541198343566854818850904635945345139373655245540496879280408047490856925464168220482688245662336633860907040667820189342279157986913647505824028239114454861585900744030123768190321472709446865213091588743854407410073303547754105818566205960692726533859133328842867864068694697594957775757535956551939651238264271605881636403944119432931527900384611997387325009747133818384913150406453832895075625173584052762964797438920267842834837104259969549116765564125648724915209123424887712561362287945471730270945267552981123920615398735490710830479858560760750312202041901502447304153941423914681419211441348782011017037329918728462694879051251146620557719649455462553625042710870373331875525403700293314393389514115297000556996541421012821799881439692069166797464771474630347724955508063548337086391206526114516211526264362381893905197633078137412238781616933148800260431630460462853179857645566558327087313278084201747849574140358826127435333656860012972104588946314281645811224000403181561909773506796413213393055235901240352369699717572304921528430119087643972160203737223093551765912130341421484918365686853980321806482619955522486719599946285015969122195328439712524381652128001632920043733253263343115922395474873374648306093664225367570444311943733095207967662881305007561589656141879641799213109139244506089011335657812496412478221730875023680669893537538287349717555681455124116481119534140598632639818708649917659299802131113685533383768354762385209779126348326232185076401151840654610146138158164516359334151976129854609255196803676567295351192454820735705927731131131984211573631526929767800803743292220220688999772312237828614761855353380899512115246364221157897293903903672086116598118615556481750521276456777323273683582971483341004668070677684626242407414494608013645898597141595406484762240574141889521027076339239927449227143520130351561156628930724050149631994421029724952525761727632289882628415229464367559922222654252475261740849246700258574257968229415258282442555293229007165182173420180374588453804487843331862474901795871673443853797868662502552510896662025866414000639127792166365677627130153366696179538528492455617441736380990823249675763981258492955064234544534269280407477157557117887211901762798366471636286701710650233578689998732299295827533893011258948415232036390902504421939931032334807253128667823035367476074816999495175159874393089712143901601047154481468973734768424680625458396827432933190745125234451767793812742202642991991647846327934967663048945874215486281868966569057885899484380654064980315159863103691296034062377510326949018277941415628228289505107786107600460778335134712237350601719965316715320924762122714974781689826786989254187077304080835659534719363959793721389269840671090262632176609885635401390770887614159832486248131046417227150377522397107829466835039128513227179924918200163017524923694764800511354214955662205932138227490608979017424474112941456356538079448043845456530672843008180708900015066992428496566480961700679904620750049624264528582054336282252111184391175083336114215461076051894559379773578489178702045064882277009216569457579663864699930075628499940667150073603301579872555968584114150861850330376589593127422733126352206975006580468846561611954980685441500689068831636922468408534735586900199814917571998224024321877688463783080592477172016724831745290005163106711180182665567779202673078071995268344001090606636304418939710431471829272124209074485839891679701762915191125238952320587147625223852845587943460833834917215488218981085921858603068202974613125229955585290048733487318276933844544179795336002388327602269731414789672272434516772124180489091495387663062122015986639656404013082055771948960287315342099521562430529794395945140923500865275830660187085580795906248411219773651647009845782622410429316115383760621355463112656399024334625355686601647073236800882940046146429657590987048669810986803702623668499439569664401773134419711558195406709370285930272221982253281292091082530085420997512000235845833302975011258721850763126613315016189611892152219670875242824615570542782431898840626656338445051734590801114831902624966610360242235471809519209969132470950476176212324589417858994629946540425958779074562462360633616475830622504225259205127216804600306030515334569441762311649647534323939871834063906761007841763619749250747701768632557312195194737582186667755697512141377667992374356896797961261613331804956769398573006628351157253108942456131435543109786982586361845741242880760276975791964940237743735779127095108879632967976740730228931758967041688549886428491037198682274594668327235743651448945799157453351192684059806942214111596786466982278341155305166086573367445413577161841996610683333983025235546146778416787332306456679397901636909884408874937750878115012952762043802969702639379022251084073338129213902672130667109939991218833097055150243026729830697288912256251240223551991021923038439405597903741101166872492726117437220323822044703644896947302530558704125696173810089968923492292933543657276486273624978310973151046768211266315707870574226483373370583740343783573604919759247585723256003848545359723670302511322901300376775883009478254844885030509306061177590455372293935631705316121906310873660995771477342755510129336518732767629087813434893954890556021137461491321377769179327486604372187474722732687168299924151432240249815025183532921096353478225581227598647681614243436771820546287106228185253573840949598879754412157655194143101891386715973115347304783083160734708750581625381751740266431422602710815885604037431921584116023908005792661608172535146209154397263362754114045442961240018160407193504429893520984020675509965557051463516378666853008965310773159407857928294911778203787333199935487969494662188583074206232442058930416281403973251172615043562435392441162501713448507070573331337594499172701519939480382615144669830501134712682433516768508345915850402093745924574137334109054888295038802231649165852407963910138883297967638051870255264166295090118756839927625264297573190539774425463733032306320885168408679972732139059243782357480455481729227357327728362318184680180649721168493346338322106219870733316262014858430373487980925801524211232075021288893564806615978659018737571241168877169384187888387482628181280266596059308189447052227439756018854668886577112482932184377037532373044164636823564844412353511422345734731360936000422437047121272002037736953772531532184412343457977478265751405263047307716244358676530384843400300570001352827385567804111560019939676938464094898543748618925748034588415824111423364866765653262509105107079168923158118176466254109963691319363982686735939272551881867138000106635522972449307380089799280004088385959542853834219131902789694203889503095350810529915182911165407984224206633040519372176669028450407222897899722383998031422477589890501369145263287294143162090712647805713871533995258720841387429228050588984947570112686998364528154968662091747842835836712871172354755646602549506268904403860716588793827973283814521705425756848605137050275801779669848649995968965792822099528020948248896325878909156691876173190934872161804871958802510066377039452619717070603283749591605491264245254950990660208690647644538410407957518524144989989795415535223422254876879809800094036212462986636447568516643836730584916920445485396309751646318777221827862428145518854430018748529241204150733477484410002999848547416787739430462945513764238384480429316333892887596196826176046222910445930903646221402064569678456062602364784443677496973150044198201626076112948646859647392951072482919125280641331060218710794628778739518263088308450503211486568587330719875393745025665098582900578886691753292110965978461460208751092457910770561229531439227629355190902153947352996484207059510400006423128803979790342907493920486311152230802083700172217429029111115807468593834828367031079901304185521554803295085068995380667110852167681265027233706923922695537229830854972954523457631403944869913461303563999672437486334346344955917056872993594162475312382996935073706646860373794432210363705983720444800725043469914497122846045232169255256293153018972188292510758402715741855857049476664457524256674795466407183745258297790576777713451752825810377265961837863735749488804219972089859735582526269461443310880949297502109010053639352694740445601963554321292452642598684316334338282115297328181355275408207425482515586965609271781038409297733266245016970490555827994058891330518158468295270574747997640693993443711577654151843287697049246059492571652346559155083697169778168362728200460978169615746624627130624607538643828501004330490086511238666411781642914224632433157899937165000464188158930717724168206463003296004031582642025117682619474895421120561294371719515012318149008667420849381725359709857224103525124331855535221916423964544162252625143305816630393148331590101844891907995204703111537741548485536910421763981533844975583886127490410959230562326222477831528483631225226457693548136667482373967595328823914646355841256518298834682638702257895412314048666140520193060351720133316496094906853978849160458783815284564126937634487967275453609730216900799243563148699241729699436542857992179310287396976069506367078232408469428081549761093598549443708594542756185611668755631648816313695815344854526467450539523899685366969397487840685230513133097048866494431881208137300734915492738427451330856900581616763078512463018674847607509351598255761449512738376828924137957317680491840077855863667081221654348250380053068255869354701405343603416075939831810548198875616276328973732657135989978332448856085031221052747146613606122046248571557521053780499117968545770726696151888882169228238036877932401822538883442737073806935073992592881403106753857544115396580167666041777323319349386612000964030744046713886743306709379801810339448585127637366527097013556056515899744405240178778096494931936171704511165032229719284989376575543569754220714242942891097974039854150917108407972539950085008611922569349227484440679449436496315883821617281514133064412547582912991846764012620247033337408512610626740350757155630954436014103688010870245817926292172654069358128370499032148049383325728063862676959821059098595181897958270464978409316056273914507738105596323366506864442659661918111490902166021893208849750528599460615031657840333587384243398081073667805233583532384183438073990396946058604581325812660596154197706335363959796478837854651704036833343496322737769718566178634309059121839514933526405374832363354678587543760906857703129305481319299624228880553712339640934820708955683167317939819232618437278404720761066508781936877967713079200463057787189208181467398378816736336953963675016395102602693195122023368075891796703077161019556477476254147135846415418033889326990126663726589046659337244644225628749207874440311713219926750828400768449719905720626787080568253142888354529005018056921255496506163368315308804536706420108557982909529456426955904815255529369336865250853810773110194760149633576125684837332020552433842478430246128980454443207047841258919122334188771278630190740245319528390373911411092608517567819279723400733313341769754830681586978734956896180539368374377654012162317057416909149099735420208742999791554299960263698080226589202499413625175510135423540160681605800326929882905155820808070751615540182787123465667539817672657366770485670550533410204735756792313698747232232960990497563094629122902387308326830084626000775375730638706963293066487703187119004401835299372909939813581604725692392172381744008463555947697705767210751449225861014503258404634174243597551835569033492386159993927547259038160125725097755630046047359425501716673499020507431745800552289041608915864842353838197492479023003627434571877305315695643183173103656032688069517987928744970612144633962703428336651491927974436928504558514677911558176899590880269100252945186395774277051498696955232615429591316140258413118770379677018283919740540517623518653620353400532512625989958595964750162751580208774540204784963957653244465627871819471777751764514827742538651187067862752688457640479734675391274384136230011436927960346486803274802792629691754477366460517422412047770866406990446792593340478057060630546440221580753777545626828267899199349754132823307134739888584535236373918085733916777536578850165254372300825039685807619441349087067956723556670602174551474767978765951928249056386750032984131226666724687064815353494776018763395483759503539393293649483072373971772943399502627994765111724559168669813997779294033641440819230700085672373102507728576200630087806882974425272236596137585020089914059503444146157482523432463123180378430704517550135231460811456849054168888488306674245545825587362526766932676281056166404185321190758540127523435130899922740716931112516004252577201220093460677354155265484817304584705272855454873248139729624886320188868270016461585161613699248611752675069586805274791705330986445546360876877816758451811667721065602490219993543292753220824879839600511447228798606290828436024465145353549219773824633165118945737765715321063554189345984735747966352921926153981482018909742770726230916219760470180129481935504441127203545252508352998069450573000771821592207481344552698367353862091099012131175183601172767576840147799960300255035264465528846200307334956538791324724050318727362774370465996873490402242963933523887074912915593252553209673340978089899825228445780616589626852972660344767840288573024547209037009879648881996433697428058031937268674852381812887574685050675768267381356602403195427672148430297518194788196402010086388270045070376483580973166780177675753003455220356616195101813885158420457979216140346147957449473383387662882946017260324399212715744799230353328401379980780326918874746627467751183345747142500781672265433170184794849204670613328379076936801206318893590710288219793680819690373110206098270511724201285158259284477061925439334144919922321248023297739399112990158554902414146087993683805773357876391146002420160627736463498137741840956636631805075689763448285215216052834834221490603621140265993199065051401573296117137946930147211859565716419103195416618790687894902589947193863543979454881781969239869596279117934632251734084438493249689948161264299408293496441082803527023099147598141596733483834986474140317751100786436184065866541782823185176389046259602517991411465316537056413234195521791333400225861341192203690352555269965906384227302828098523097390638540819776748228330113785318223962164741743028701598572781872175186182677949728588822950211067169688611717177624378503830871212625162680118068458986148150342999220309228697926288227284952047383462687005870776296297306281692507893765455719507241966432334693261879427083583367158641592134729356008706378698775472540100091092897780064353749779298790831527800574621321440810533818174974567480233788993603291443332881024375477310030701622607510317374880653312385719326479606502713807579842342638688594440333402368746736173279057942799038442427354276874048531953463820713178141640746344899919310927983483341758600843163734596962754511743155664002375575491234642814807334161699994510514522041534147535194385033404309712978773163209486674831121552724386456453657657206936569876453571436522750621323529434823640439829008252131209495570199024220480845303008179167876641462428218893423320864167529000170857079912943996001805564798066598703930488476894872371980107747622652647684096762829429986267698940128715837954409886796021650785906650920350485632192420914386147362042114337149394378472565132655520170028081582352863982193343681118812766738544020288546527804487836777360191104380644702840610355847671226404227282217754289103478532984995411502434619615117496224078386046310426393363306403364131048841355163091578865419460182314922193547358376161807635821656398167490783467484539060330973572626853667409584929040443252738371081708614197794874057200487562375449793746849100747505799236184574515865373009614174481960704785038843775917892769176969508867804114053192889156568738909709543465214524479648801310662296103457650923245864226336477815541301104697171108676903762500305667141755431677431150173176837163001173037122651179229955909653404050032537286672793678218124016858434985852863457709278406486867193265433082951071660081608142230195252199067252845985703602001591976741713468397926059290886069189117013401447614778218654956561590118423688008452301550599373880211956131023967663536465380566276384058539578341710735221036182098354343721474867720538635680109992469221142977514318184537009044791810105128857287671380293221194733030704559484201628347952481369755671079076581676898351096630442336264727428465436880265119847085006882331572532202992268908247259328637855749917634618270647922617468342442826344271856473267256459982739155451909806301787558481445012668564972553271390674615610870889260384679136509412783962731867835904908391036748599334161578349233401591774830976467141175409480259353381100970524483741537225849092180597384182801722685428038638375308566673367735564565527168318817269205652372249574273268101305353424148417409210194545678082023516365692012944670643800742293889912136166518518943228434417020677170168639305982157664158069604070763346750569937478468538389299269328172236375140889297247526349851048967536386803512369285636771739237583139109372151475205993367847858242234263890528857758265060753628085395665646244921432808391843138526121979932337637794813589790911332902730197351064043119486281336991261990906109413161407294175714289512412704371451027142561905672699811386812174051541881018219924630510789258337471147567214008068350455710796664900352207597844382494800289716473758550381934423741651481167355918390707754529790498072178076439978318728424075373293162052084634612254086074151915098271532139632195689871748405296592620711987926777598803694115139975811030321940581876544084835377594165898647479241275168688403719561058238974005023899955892814432916054551221188347674186892289386239652767526284506215330563045437086013362128783865479551932577425625612309667303341027995180274432715471228670858446449948043826385230041001302601549238493417795638677107861869430453061229135118104875107031787463915671335136355686349126548805918168943459922406689099926894382292358648545480174748416893794702133814788076285417997887607365471380666304641751224377392742236073125617412793192884496083386058251457773449233426087173595761256277186578722915288277396758140023966657565556632417670204552726430269072694986940233126652806425066421017749932405311695234140068590475490264839191439276225430517058116782542571974632861900762449607858828530258432878630754341714175009435841843544760141126834051700154216414370244255506453674000986111135157316489526702215371820700297473346332901721640937867139800300504355454529734856410518073157502135474271410330084493032046141869624285440983393532542885256261162166073073204521721429025321962760631427785373414049587874795428523989238143379738294847322083243122037837029834625223652033824249161868012553183520919446121602781943548896400876350939747596181698206808544697638198262845020192708574893945660711468022154501174595746766591147762746563909318958427428675376157123930597342026895694266797209737006193367658947822879659824343908360679424579833075353748846865740460190619687615762073578980212027758202530869175295040298707456754929127304879192700924621574908206288572997264222371336228175906527311013019247282266964041520074192733672798133738234267681574970578513840549732407237894272220767724423948243008448592724722568111176855129311160924322550725140475554320067360462834085498761493899020722067684033974549312504570002889358358996225503041902025665816329147146487641889057401459672265699190664123934070761283006694398840129663982798323137203169423456643579902366275919072347533909436035309623267432470335339129441837169019198180495990126645337934152251302612064295737167008112636297479155886197993386315583815339214894826814368845357814433446263823807170297258431966166601102195471240475697674745613478528179682337598935898847189388748402863239312743533774075617534839745755941087524531522872379223106731907544290464599834204994529224941064070094767669698389257598929530117524720575007382893168261597298983425550197837061638237339524282125359395918694178153398569794074577454096145685515684577544823549054082963544255172555221260331591018276136945615495275716254664544804382261083686304521275784605631397311146503234994042586083650240129323331575781342932875934438860766162139294047173947301760344532912060624953489985360602286659540006533696035770162197168622446110892537560075500256165262089442143941015434246917463807201927981136658960176309953068795629306505065012120501856770634991707524781176763875707598629948946960664183235366737122958458627424496250519500386375007587372938473579068396721487963964541941022594302329947036013405841227219567852391495647788569271613733495548864544058633259295599665380204675022467164411687826138050109769531552496054132092772991360989984465428345512473668993391699338779666061570386870578084904089688070794629356096868217775363151607830158913836933227027650753207090958602511232617460238126838009707720906072181550004910100665721381657279283458835306578487687495945171785908833638534443051304102806745357811200191419976074381269010988675877854867299384304137045883319091096436629920675223811680113650709647142038812533122962743433202143865219466975506115002548680570672032716382218490673277814854130751180928002315875769536981263395194445045408107064335028449220868140852832998034871471302174239328082028948095011048157287287080504327946549252591817219929142654502667748394902406565738066213214184422423871725879269636917920826781025345798961159729852152086165442064110533345290933508627227879612182637416094318748660240900137990564728353699549017579671006051556077154888254042370689159305557759045300689059783034558216125840889468135793258170184068118166862387365337082033268515068994377582038629841391264681584094721461049664007257074849792994899843189182651775430167015632121179862636142230133367382470559306196843848168615071543552821701773831348511833793418912301118938370422536547343416850429113578676002335030030590152472044085678691681089880625842526224990092122759045778032051328227155618569860324033937911159118844808656130165284318141913711206745705448735184991828805497201290095307608061844482079482588224204039102570909448462099535048624168064555753649985936602489915320645026796869752206853027388434041009369008784301769101149959257472150469346845706392117807757849129931850728255124864395395023807814366133689138847385841292351570832014383448549805217606483291570399078795013912814351066958448870763694141866186467208071242361788772313805162420926137787575241050285165936334613232424055526202813633272167469702907934376735042772872452573927590912031828332428062775872098926314856509501072911427101890460631006960060867530154552556444340392910755880556995161069838716438567512240903958385975177557211094619015280346108762306118535911405766881745491864047108893374725448633268207198803779079116818677999467067286862551633565597748783049251167252929011870694829999662278341256544747632581754076492015135313051520240674595618759229581186267715179061311987187098030428757613008069891438711437241981969661404852886338307523475726822215693162542306668019083278645649377789179889436788049204532280974425793218118649088124720261889043623388087765820810008901425644664566780309707822676822035570078333647154768676830831637430324765977518909993868042316757179791608824986094470856309395193951560123211967517032374178904954321172878201306570024241164785097902940247484016652190802074178504759045159937348121155977300769970150851706733900237655297261345036640153246277251220902032113635399605825438255968851759696274037709352205993261690749506142708411777464549982735889998597320958712863394806928158051649774362341097350513428929121882685080039131980628671144062377870482774482709775038281438372621133513804965834886866671203880041672910134169805323603178595205668952744890912027407261965200599475315699511987685002252548579872006804368854302945565752002616903904175067047739007587923275839965932715972102712487910145731724675919548550688244751546572120217824754869203541836187146910177643649224162581217579515038473852590429032854524976357063502430170560499708767344850228432864856437995698495225970325132155065836177697675960020579188333889173592554257942061252696172346426808473048110336484112923099084699156618416243569060446754163671125533409703174748537703225652554658616342692754120210094007511324706591966425982272322528080327382779652889557260143336172300111980253457204694985915616897458113023717521014037409346062299783815207867709789469863352643076061008005689711226033004309896682966208028726526564103362854685364368214261591952163822948597078336536168699694904883991207472175889552711636720729688546797238978438920691525905585465312258390772972983851155269800549288515018872925006764220920603970111509396879404430778377716509461441884983056966646121621729760352530205049555430249801794845953728520919327901921163794969504569034338645784442685544999155222233107169061731204333616810632601324429294717165614821885027698260355311264726135938837138621353456898320549865614765793828743789983327992527905865654487737631704851970304370040505554586682781269676396113851975952721892296986100706998545012238994530309508070806234794252622146959293619705339944864960364704645890856919691043418898227134736411464481963820765330809031397296593570664914871963490968816273919871489949715455267933970011082087499949152252989597268648334379272849993698378257929434782335258966017889554460101536183930335059507358854456781636481399212898721527689942033203193458396640053867767530439442923490868319986617667136881596226696822448604487912530156077612449341647776909438963584412765999871962649857919457894351188838453553339976893771147470383903752104254662162065769798018360427912008014290747915367610193736404876168523847408061390728876402813264505195813425498121517415328816330228662779658301419847920679411291196412461069627720249333999456551710840264711975533366291236216983553997567246080708292046455890111684514218536169806761587556831181510713584120110217906842615978037961770382431051018834096264833713304268520348348527600700616210625309228655481052895955310419612250779482858841660714407316101758524466498892001052335445491116656106938308383554941113649804277439887498870400690052033939748275741420814197101059200651293939834267104918921598289932317665224513902075863139222791103986614519326520161213769309907908434912524333815200995083425601483128367937040693502722850298841485522305109353249165172950680108174797035644262992228121602749837298331387565828748562820318064504144869991108335950880882644797214124909944487631254304285404695057144882546370800938493582344134006174802157966743972554437650326863380601073457383241695739993334571558222258677964991017452032294697054850846902769137222118414290791185539846951333786764673669310140505864444200290548274455218947900588738000607797178318965911057695144591626677349000610641885812949928168885621345944711287841953290177124698572014760333489710140504373445986267268438734615222843309240055694176513924514995725378072179562767210201169352589248811735414776827060555915257324250515707936214283504976362371633905901039180015187950189188694876259985271176161195792867982947724677548823911259387973952637445157750767822196897917543107449895724961774244559498243457408284012664456728794069116502458451413666188325278133612407043080614746173217063725743905780358783250511809781621687203323367839555681267522892746678963249510320609567855880915897739984080604666633444789096386497458040271882521746438968598658441670286865711591090005133238738592901746271717076060170748815642819813333384624024725450407721434248902855659734814071860345866500507256360342034067111394033116361031231582639308736027283617705321254338280960622199516644441400617400916171478086792192445518103124516550564125580035740737307266074047277465233439935473803774241799696123628672261889553572799062787616635870647327533912648973862158627223937644882364086969397567001479955511135031311010033883357738828437405860411718000783696277766703204061917205677868565487885182474876050185844707962518662128350273644672693846363951235283369801275062158820918936471243109105679525906390811502456984645951155051089017417249951273720320914796415401228825384887827338143440102670133033908370163237091886547552080345381536518291038156219691482580336503003697633951880463934305092959708733619976318780614818665132457253788114168927053327806629446194467251779351719019948790291598847337730687288883417095550010100459005289890757500152614367628409522935036057803517723231470448673298190000176879258553348037542914570363648563916883357334077390990352946209770203599190136758862494496611042291213181228101367452489238118843576954833350112862859381114344120662979506260202746250784871235945497879827093649190552345371158110191773517797698442781879823682246211157030143492139855075880089638993602166871452392002053169364300332592153874311154474299974282695753124160466967150861044373467888162208119252957607462355048817410868360068153860144571107697646218557335565329578262682180960600365065806549046281670268055270557648673192363679836936989749805037324556650422094121510241942293112460193891945819177937284835901504594369203997678713072299053650080848268519477804505181916199938548367625713392299780512885658300183341539915784764372324490611384657120275495766825568164385705559252807838358985109240008164593445051285482201664303105116352469903020967492255701413801687527579722427178463245693812822508526847147836647929436285917697465551974969506780481975098293023816019944428777082861852790774824938285463668996029197949791955937045726590624729819847042914625417691974547155435473012590692180877149883174782289468260530567583347330728061301909617470320528592512466313858685634681621879261823875154272080174096868151181069163806010538772445845878885065989540583814139883265317176429910644726020481286624532077494644527244902784036239790528110465631631690187949535923353245044085827294713937618787427177179316290338973205778805428103075235759203515359174673574135723547288188674011986053653650085580521657294262189351297066110817302330601569206430619250205810308695997518653021854960044569558139539026834479256010577309018709574151252335869647974576126670155025829653831881754358172889815255901476687412369947311113764862059342868959636681995671540738381550465944129507250182176404793531085120230780858967515577451676818631308131644461922790228180606627229142390393792691597077744163774678224365497786133570872716912960587101056772553859592126416256969022182788552963389298174815550461773790395378912087379133018935487740704632618017396286439783944049506343627164421728609692868917133352938795512311609442515648829254885097926800077240668075634381386381085348462103745163868615159691739886342217630820201878401473355083493852857975609201818713049497750315401591661841528006062413630270585760914800820917371627530640878991111436105312519184652012915768430488285708984024831900233560299522675554685770823286387635083170711199528695329145692705170503845553452767774191302454685066697235926206768102150515404601393503508566179759584953098602581832063347932067977274716921179377175392698184563538553474733341209508438992394687320977591501324585847613466139221594582093313482693029403538601879431367276367645271010746743293337134812023496325917178944662944276665353625194283598236456018877932398435000593335562815848195425145418573510234805320680508947338207353679823447751540138143861402228087323155551511881017493116305746218744774824102923458469667673691487163130951466133868097687525160782512604509627416105442204931139846288937726818456196000720755000745604595956154040078663983742187874015087914875759626226674735325194865660208193872821698090185596509948241181022156049644405694092039085188693647093144927648071527898285687378047745824371973207762394193271376827258482904086368824923893672003978410548128950609916764949879272414043755622856427471623682405934097729628461448388104101379736612011737917289932106236481119635372306189207521126168796025135792704716046456152506567362363437831168593756406859973852092516614059322531838816536504347690865063337232974686601510546258773377789257341696671778086380103354179310617985458689668506156248407374157390445506581783305636467841468449909846505545004172755839964192118214518405763782133368598271876941255869350958684751638607081709944604686878387900848265504769092424702041893638034382290975004223360048888523286097155622388101828622957099362879190317579322789466613298643285039611063445825212907991147995148557508637158860084346641743941835375050545019701825498340791660203007762893362487558375266131014260316838287806269196248437796704469156405520550380949967322750932195703442095858877960655197494105654930796076010225117491647191773839209152410951664099431957875531167279835160343727533576803906394762483591232921140179989416843772243081178434625629474305917043609956298808950187592034971503046637109582717958964921590365585926163428119708885130042907961116343975177013424498986749863316568655464081370889095277992919538901142699570667944476111082510114017118208798014276000298114360896347333380983021281156327082468488900348059963574325928022947318569860974191645040613915717369588501449853054126736872350086569154609658769502378706212340243370294450741446887355114759540773845413062157116759084713987120892763580716668949535787263662528827696461492542112232904486385687127267402443756567611824012713383062537589873976840132557599329186619675658837368841635473453750563696761271618114543620550769521834890173517532650706801320101616423475163196900496065842504808017843186973869861023276993355218527600361134625512051250010992534514354035594785493265275992140640625661427311307872674684196531909415587126954658689828497241243234120471761494711156844945085373500067221707782744978316305590933718092756143945616689574543474075522091209796649493763681561618249231762801801118075642122103981857914288185164445607549621929058153322006675715855327799908415879844568187585362442672061025971129669310189854726323947023591636909170203629166376151842382482835601506532934085211496736928137359546143049856304492585819258847597557798083685684380666446623360194437640560143513961120489284092700380429082800115649465356999110769340424866994410173039296784393277666976339386650495374717773397711821051694714229757339256611907534741250505108368808372755691649264883125620101807260351923697638120845620523899901680146182679024018224474152619705932792907457368034864139334050134115001557526918352230216134761668582369823366044352876080142312539836947456039938728365004545523993405842765312940583655000547531146695783643461843185515603646940794884126424416043788972687354238431470554129594406345226084127236522747795239625633140853449859289303879790318501879096224184791613895878073802422694725797375862248324584352873289403026354047838131171716676742065850179167512785620853605729946824572451389973887971239373995959510049313925435686142740263302761990603671493232647775757031157485892494284457545897651733530177579087545802649133766344945372313000009858540052980356428298076167179404429138119501911091735549003126318625038275936671314033829847676303427298199266444619836150603699535354630856162394894742916186768033399562507361603184986292786549049474078331021110363887233037326430148189810404429727121197826213055639412342523925024500523507596080673210341821873246777979546525520288141057476960753490450541728758618223494519667805565680275999752935335147421492825923729562257305059561374443627447264837379239389432793999292693741533841995554105057420196689171249608628858596532685152255632848066032702374600933312810557204943433293005416439263483034983160300615262716723935221912489140696089393171026233354961742724752310750389832613718246504872011333330543167615151353318492296415016015493364435241610117739552883339297279551803281390155924364771204873196704057943102460878155839828195891953076837991366335189305310248641826348793886743982487898397516930413032314870854074696034803354973536318072635034042977728532368277872117421266788729381097270429296081351521790597584471278161908719632503754891644999874508100859239806147722277117612785560261228854918048644114134946299979110263579000141288139795781358888158900374778687466070708601661045396869254844969758953528935236534779758547121916345447393421508323359378268913232291252645909909889462114686959133346783830031713678062566500471334708426279198497370099548625307181839778994084417869946202549375562664089700322371439102219774849582021872966790704127370071991070515175647628989172118332949016403329028812467330387246966520128623467404085248579922629079016813050940930060935319894930515615936866227161896146261463255712184631665806851572244263852325127244203335355039649678852486804783513995863653105771962823078141999289104348845884649616750937283900802101517476383354591281939703818696223613574236060919713420875627767976159126804164611028966086880152811814539868819770601291938560683532830551238082435975954267104246465165567349114462696891418823372127027388900649344651681180308579476330508224188043521664007491645709427780315732491022346413708644546042381182956815832232756886555399505281136043071073955488251932121614787391846806135162710749982185323034736022236685283771000004415363017120061532685960288642726445307088948429813252937499278615190636336420484785285349461156953314875932477115812426169107550204970794163967949633381434606719142752965189396473752447662930670913218330559563807399147232013924327241816191973193566830191652409885610158411181914478356687864023904416461937182048391188951899612764621095243027787729686908064561921598940811210486042708739508542605525730086278121074972085308451166427114737456557695242460452794582783160332409809992642506200552573168204773820441954963352151221531591103800715304805222888383168286434612723531138029772534555674390567951863311762946481041439648185607398736880643229985621775598672535997930890757557436013584675182812548736252437314555209744466143722743739157969879811456184199697450185554497920560867303362149508136054222943915256721614276530552236469056545916411197172382847455175034885894769209532307308374719737584352874332442796267533891396360078281507070010228955744038662451585379277694542488012559237930005519077852100290294599601506389620822885758548715774359749082482923327385310809146158991713384251394522207431232487692618249095700986747200553653600519612728435193744286296931037827638875678152263394281112943770826788046655930256961413147730045028552989419707931634033089841924735206286813910928596411582871836168858148599530422279057450599557401325828030933545777974791279693099737491984376843704067086564729338151040975580082497499984725043475509336678770657961875630687280641315203706835197474596823507733749046659994765966684284759560146573212219220136840314798630670050237701418758008205578052000509774096041868270545489490845872499242388227435927477030578365785459222643022261459694352479270346943090906750836914103176955013048286204808546388893560120006968958839392791223007464813590593879019222908387052748337888493490696158121023251812577219319882982381125170996156459428981910463514258972114695947758413072848735290573122626253229362848836993679030462130016857564320673940192554933416076816297073957622250037501487587341929860931579449228667127202736229285076502818052034643802205109102729808876462882178228739918857816430327471545815277678287736773400763439560116320137641641823453171877638964910726213245315523123841583272872323170638056634668616035812137737445692845674987001269582288712045362328419830237246035050106195228803069267656988522626707545422287464620235068566531079836666277950283244938163017088259049226875284854479345744355272004735873401970073239791882555200339235185907641004604350947894653706858612089395020261240789461594425210978624601349793232079217369010906203248143523326195199319140683678016762750114709545888916200402156846908054843355256208485175484392847810325661704451854084508682066368614195977844882882848174858359808173178522591649222648791880282929676498855437118359739720723905745105389027988376199204294965274947424391700927072521412687118146460762950255009858542656881998727979072542418481245062107833788140680944561589889890015097540230847577969481065270917152141027161510491242170955608963887051278735215032805719302326499182790508668739715813267250950042023790652844561169128430481790639436308482846371655972786374119507092759532490442734150280890287657387141261374668043566404294834537792952623495255976144532736548584901010499059694840988533762015664185662283616584530027222008734676638915952617723066972602892966359085175707319640918223062631426565814152444478520534197645997918111249185914336872523729667227746949602508582061373994439379179091748768652564554730319790721993316661413808562501077275831282477413606947619466870036790445210881903879260921800138914946762902481486988160434422583272543047375925405898273271601309782298856244547880788023691437009255543548527187596118226516141459651607462534945720225908019402988375691491726507442321267565929836784503846799852928157208976498320226331397015522496112375782715413210736395998842066798977087206396337268268405151826478416027428626629871687303811821712187777766556822301230789116495702386052200798487398855006654066855456405790460601873742707978524396213283673246504753090686160929221132353284845026583623577913095591707697302069346131236043497212977230809850468808949835173210929665273046704698228107505302775911619852848716224360778416836987820705678193190973202529768931967530442846391667229766732076165145873779563483108599079678187055018582011630911421706179831949184119296030001925631421491105807583780510595215508763250100526620851995856126878834355487353403677831332133669576722106786528992532718526729157418442753398355001941344487303116625289465542822628528663473730711040119172183171227694026375756643885663119236615401615409449557533136569298085865718248935648883280298299157054740709188834588616064683877445335550500271134795889353616260550000681888375494880753610738794762080010802144011810878051173556204627151786355802341753767234936271490259678729703522220418034076521651033408918616008001663020270125773250864760593611574242118483265288455916079087106873955296279996031677508696270732577954431038990479209825993570205058936522594631438521272175582599566633641438529942671358958879868887672964798883039361810075598201423002718594822016430449810677926746071797237688612364266082757558999539976720081384288347019102061980172846613619606969309517935506653553240239897485078503391356825396227968451237168697547511370240566930700860139122302050621075496543913141984201128735761559180016215951162690077376797354070586882799070317982919859529057538765390999879915254087800582485394381648704574690465390027333278747603495890339669405719849019033360812802413871062141598896790571682943917257414306896942208873264663633069942638544113483787216128991474276665329725890491170458747312085246346921389112181492520946424121962799578897123104415249282665469599507692799259872013558512651526467472089664154252737953011006285690896091947169368541963141264123222205411889102381535198523241556324664880151474003509092560109710680807069845559317010507248274332420125743820762535629456964225027616098784116085631658465683556612933698632116907065846657273719591604683328356353497228037549037179761396750952068116017825365572819223784178816512742131881818650153280246491973384050232043838977786196868275097449845025745980658468611024791693226551598510473892848582092395743672649081363751603696119482559442979685525592033645976093012168931089895843115411129262437324191494485902892877385300517375231606197390098161403893164802723634086065823484964541630532416064955104484872934305040599101789359262751253762460846365454611626014624301370581332060874926035137255153401008104244795250645279301099252903056344887066543125962176746058595052490729037356169627535642231606440591868986439274676429053097741952158427276184731596876707886387568822016030820226756354208936317061525780877660794598085749271616993476249706060964733020039901341703533712867138533930935200885366920589613608637611790862084253741448879800789727476696242886352711769862861695146435007104670122118494875728301185055086709585464617509463239836684565273627603901908723664568331988003139392945494487741131677884909724657606751265276556316623705492047578420010651929903269302525506939421658396097781093907447725103856213566957812293723671787552764225808847299066364261601226445977691639860984714556740145913851457452224933622386593526714524986937124634324718425887016619775300333314024326353144278937286388195144610365815523618196839715575070341369381742689263806716378150270681031556829694433282947488126905062185409279692130939186806179000812391500492343109472896224785282876517613499306108219420790566117113220365005095974801786118211861430476334663655293366139857059199105300530310027426402203404215687625294440208681316590806112812571297577018892459697991407256405010418134212016223084130768088985090580380453799548802835996900051171954747104371160022676729383500447574927475638744225037652790283030380583134120875515058914452453015981634553921963755783766564971303976636494802833324820869389790590470752383176190865574502639900039218821385604698777858655575537082412614007128247667248973102784832672451124609993228632608147614983699685636242394042005729088184503535948485089001757304488520925982015805942497082509382262551468181995969906675442494783410268120831872015454074785950787197553339793363507419016383128622450795992906824977966955759337688339981246890865520905235399872284846231327954800377972976216514599082577368442261037548591345909580603336196744992058198699961673683460442873440794436899389214275099284326497135250425823021312681774853003327468748246547626071778823686894363381458928662277655703158121295266708092903181861897727721328406407393930717760275316286204460272479352380604140367829967359871977374979069977373621586716945305212290033281794443738026856350372560377974001954139632822695882541394556362309734357417677418158104791675256132025263673395755323651869280778567468491808960002742060040895171378013980545376663533760578811523115642862558546640569834983169875907687384123528123590589970195069135199278096403503905941237212737084050655432672885793111154599962306844395717837531301137871728299437443845365543840326877768574621504095943636100297493597241237818050526942019920951885569865938888836874426395142416962820685944217919482201430351632545648565803902293117778549377745728489283792842093128391992400828130198639791532240067938588672138196188804656664594559238673692302112598256556930370427205699509020651852818974611613986711146422498864490239766270703769418081087755131729164232326801125177713162331552300532660957673419874655455261587856772026334306105183616424722405772512058556682473558134938884717185957693480093256386984651762759895027169059704095526967926672284630763495422819370565094085137654256687861661211212218457849719857449142963102684745788885759903532569761672710658209787800167885431533752739777001608724350942545403933856602922109103657450389705961146420393905048284523766755432719277633183712616383756990683321149804342176430275333250538999036572674285280679432667637203746421765543271408104099357902306052595726611763120940005434601101576542694438866889578044891203924012010524250939939330800513263694989805585467668452869808340526428498880476802451765790454721921912292266196973369572286829497929747059789820717371882938409656911062353459019743221068022258034951544519332642115230654160116720697405135889042093261306686204519217552155785011427598396652195379612926209539992770108205867226177589229157659552811300353150652556897186781980556755083507123496436321687789643983715017896183894103011973634941871974721395440522362372696532330141987963359310942820141892043391665906417750573019429063158936434739789853598147218571859577734859137379665566854862529913505930983829483138847843585014309663445770115113747618532939225877407411858299863750865105389517052502000718388988746922345574446360785636159746016337803429720393426276307548642347685409595325592791396408462691361837581855255019316933534619868107630083285306392423342703249287355549747429053688842357642452094328694880588153218508723012898716535870431127107465977243344787271962489669499635413312324752193433714015681617683404145550870754573061662764109087095178539517685933885150747965714667466761598381099948509724861027153226015144480286818014504827806264916214635801748780527373800296338148026281949500665530772406117620558151257173856764048798990855349972420588893302875875763463392452503264862523626083321460526011065331185537038082501426705026316950462013817447194736244934575575763233753419710967669494035862736554431278579310919986136001845013020727620197254252959394991257576937974243456600183486223885184176603294950578258017031072855870614656993275031876402732379423017748845868061119043050972345482672689268236140455105636799909362899594195582084248764541680036005139651959068307314685256407884225310390925864836723469230541281712077615292230010073434650079244363913522123718569795879449731357987987283368165637937273379053100835919201822178667927809208123401773087268848179625085103667999831302920445984214980763954792766177748161845786872392746156189455982449211459204560908888944851337648679083450486808983073372204252821869259665492115540592088058351753675599619421976986412414751760397301179528949276978320798977229774994924360111965650887938751772252964347892583501748257775629491016273668386020639710438270600080526311981479410170463538582895845001051964898750742039816597179348561537276576239167285203248675169286067903488793799712431184667737353337041644557689510603733182255856508726914429618911835900870333992374067683086431386486850137678210710529186774733138859232813595728024466358056682973242269364727534501034945948824190312587446204955061249592573949518165480605553837518495551268839341647972609805888890315255403012780053123436449859208952119882837909536482768432423063151038663388930309254942626723903659631744720449255683851736568964199107393453047722655659659320649483699607548992329289185314874497441798616656005908951670780484135081201097226853001942988422364802388727296738659796248725923196694146935979065879126225458407394228199538290304193061267308889255673278340250332246986664755232927299256084574949302967178848719731362002272730353071140663479952296437880329641144756257492893868341315750648660760571926859653670073810549101154801084787431981492464497165484487427592959444135935273180296880679028131617143704528704233382491511910864573349136488114304728022780722465965465710772191828660031672998837450223248882752226799757570807982881343535238586484530337622187932829946953180543100320955115836464999282504654133253821841369997232522551182033976371908774245853644356080249208553659163371374623240353783549497478450340981989314670787233750422002291167090784976660936614059562641376776976615287181039293402590372770113839335209878060414903218032077047318425436217250922614580507824180342668633104004982337869049974054426575333161208591064896657489916657006364240504753877102112014244579553780941325556075412494419157716213523493967504423333934598022577467773282865758404484692829295507948881852049778629103169333182750606929037615644904701252457722059408454477285254634751561272499343266345285612311301141808121531629343037552930179547890670400405432556741196781942163363706266175742601953694047329837050616672656937418146797092967334992523059570936586239917963277963109229592864109151898076371391339638475171794131436639197880002796622577343525146323428828823745193594331191100263005933135013044534108245476360812197572840426204778642366813669601502094678772496107171488812685841312024105731425848301221214542079158680749296485140606245301962909807016923724504124371739405947817765592801568849995684357262241145545202197961867478611003784874416480749581079999935982169233064968612045322394687050783703252803545098578823641918406521699778432225335132977118229416562498183566764397923375115514639271236279540833742603842489552737710591241012117906645607428969933942505233943411620536552458282223470281452447475173581199013003682391892628051050222964836448278611390177274596686128977805028361383875398611904881600007137171785002345026580522356319272208519139507406509947580069699327038049709776524589057714625793823668654003819213096600367301325597926462929114746433371141860658243446861831549393542033980614851985652548437335173024190757725971585772969527050109481827402080170430336174376505277089373006276933030474034436468741974857536223070748623986657099611870831143502166085157714351997562866475377618266528793161254489917159368533392974747676612314897311275163894978633213906999496563869735497377846734471990300496383895443538575388269848040724658213108096609449665626316896732453922735805220018692539703293958976380392894191991164859645014858719020711849140395275279377252107013908826694559567398666883274477551683925669247761592172109910049754862855006972515563038958913644794558097126058726559807221756822355019985982374799133909837220960549718523383982758495736576296647541885810300420279260525786816119470268564926318491072106174117769602813978217035465443368946383366439236122648618373278752097798357841974920069598777552146155960959043817607668117125887237083521213566544224691777416917571333492309763875354509766997102260736532347071937194564031950730218664704547545596392076676295326399956733663664618178363776236170044344259328166764525803708685201392945614225142122043512860237458428405035222823033127425803119499799761574222505562714260823332320475544858392570280415417551872160563247583999945746280610246816369629242597938049106177853290561404718474437755017304080180102197382269916295090334023860984109269393227350996428227664162359329310333643493806278287467195390139224656528305011515065349875237201578437588688822540521862477977721166277038792044274612007097472414298832327810248737885021740464755198797438887914387656673690578677690260030925912431618523742042824883454134855180397981063006097805984716330173385151057618320288622605746372290693106060044770273317257332305416956008326464185861122936567539025423331611439793232729813024369260396769203856072092702596777658719938267224579274618093686119394039506956073755163763273622107831826413945933281889596305535045861801423521944932941567962339082485094666687260278579063776993254212484988762613207275074552142648761240883065353433166280236587464534901279952688223728251661439035446587291403627360550819357891817125496090153528325333556869035079480886624041923524810120317591298102760302753287087261505330691996516236010670343021057438436143498184816680376961435952800807333410753487169677582413279510304033194470464936888106855957815613933432558383775763722026331977252475285395004846940618072198797762750032304672093958348286371638480521843658280272259415454130433284761097859255015150820417601713063523078033170083534964705030800486809262548143087963081747585109514290966126111079351959943515292303630658873978153275904183232052194915336686460553498204537184678057507317707834074806984434379251003327515534665542524224385487574322974384194145702980565274087521465231677876032210265551247369395422408943404116479779661704944852649662611989763488345166577257138504028810911687905753606175262188330416561714290125506277311629292111566712748823071818564778875909503013733610916347111332749522392790728728699526578232188153562675115099422394491686484225736185282191261946410570230437072501175075787379832285304165901696981310637112562389104713942999989169361741514512702245381286057689134569674514174129869031132511159599368461119209350367676749559098830275921260304688688560325013833798066441384767801484400084559696550663070920555111534155032446023450725091558971974492760864252027198619935854380664247199586667457630815810881687273271376163124596158103961267140615167970916423472395875498051924813974979407333167868942908201663017802435439410174463503722239033603339298084397341430071760802068042139472029931052369695505756558283448476454768664606538891891695359465895730875763413341090954085751545201934075698874230549774301063793441862390853301815955326802148099908681045463142883668800429160653904262218126645331614852512382490065195704067860071796845917592117682134132284984080038144746690251788279205007455473415229175680041575152130235609375394948291848966849320606851054422785935841315683315582921384662909022214143646780874214915193371981999632262770772989981576114411366950659496005730918942698678129934943658130814135178565327932427239539728796401748057384209169403402215326397887493938823039195895105303642943785438263521393276506665742063628888807946809159078621074411903452719512689507939843477576317602557840556264217198804275042756521336490427901075554969816412376194919326530152572931480545523383214465535274109517095235821212134888505619067271638579144047065452507936682265734735325269053269263125733408104128415939336045094077164949203288136191026329017081977975905823687147677445586570467718380004131787701246559271161563355343785491835628901961839542922043651414408442317658583214903238386255196066168040853893538786063689631322890748306821985202291278846010493660972718156954413229997609686181232259509029874583179654321028087699802132831266768706203732776663165564268027922979870400535107690869777515143160758977844926266716324839941692778190274817405552963653158410140904658519756988620151804433569463924501294713278556388665195640170230432537522056470109204364772809683426894661307557000916826773348231428766258164531459573026443630864030197074840307968537076390714805114055693788278601651208228544042972867709383637365031935178260190097031763874506057036144262148782542239898489425005400547336320463734965875766072822695162668705579102163449537072462741591003796393168940204546875157553338286972574407045969477407319333422906588609439013929395823386173573250826119135532061611373338733153848546463474592863025750664587110794676178645196710538747311404301872710479429921039957486155745609891789225361609012740646675127131068534242274470578595374265448899280481132632010574295561025964438343452565645175325017227378073279276097903415072423538849185329318974759842133106720299222384508886828946783063242335057437063622966648835510492840790600697883949608718795875141076350631512206312085730986169843082676034621873503045261957629693461301056634872947672125935031412049865608881778672105489553737717008572011442739246793886756220419785939681072489334105117474105189558644408494933676600551575514241546307185053600622275110899261642158087653761173395705195576453237537679613744206342189823002265082826333632616406815919327326114828181332296904478905485724193394503795501563578687980385585539972286529684476237851517788230631639658961734734431994193686910847351075906779159557165521639182344549081730206284002865256493562768978420505451033644195780000957934468146150160972207177819465846096042480269685005231940832278417090326682430405891910490776777533639909690221905499580092077246462176112981794499875043200432630783904902962176167045604448526926599276149569279201990873943557796900235905503171157671665962360871515266993775919125751949509924985184043756568899910649934107393666061945440776173550760167844056281599858492814123581674482819263824087969203950239416273617175443514043429181007123386944958191144032019675391355978442668274897883163631443671198566304062688843979277616471650403298245797510813582600291774696466220199690368079011616975631041246561035968480662048559240742239218606820662219380283821572758198466505537601576876826955296489003223692713712967439102861429178543888623471725874548125288178695784499460802581371616158309381707290840865293188455993640518366910292058922418693808194294745992218473858150888515682465959631505736851089011776466210636481174167876593227405464234198839300254765247665961093032746657898237176359588637593222346479095684641952303781012613303574618419045376141794768804402177733321913493399142333261258305651233862099732949361420335736422736423784760201779596167882490017602095740845150680921636788746589913589386468477408980507851484110786749957473389263307479070835938098216529513963748842957661629780297540608701778808961160554451099824450950536047945379407460305939373854762441599528099455347166990129774829252909139670685783005410494583020460772709387086968306591980669872052801808799363500540716975962295250929758290188480155463143056428662448016717623857294593150500724851179884468291568051444069152107671022137961612079999541881867219860444832669303536239205888384753811047237484359099899564066826145093884976159532676665183926595162475468690457129817958039890500631791545359587806659442236376688481470769111477882947922472300834031277574233859415779645965368137004286839132290700668776678264238264550650197702124785874608950491983852277194014143996425393673245818149482707189510567661811787055180098322781231613043066060551801813911935922008585538232128101620850058806025605183866562121960386718249106670277854809464939743605647553308814884240774703079409435313700707385948814735366214367589186181927763436898739400084514175214703965613597158726384425928204411282447621442315302150181972062634654079074263939674888683673058046870393473405263685805097174540005142642152176901881572442486257174429856911488719083191481694560273757345768249107334795358540134191348925159865100232402784447985577127165324306135051732638321844426506193612301180812254704463609673575879039259386622330281657883518496806469066218432757142605875233773643291616716187380299091927808498581617205303402971452402069733523942518846325224152026407626233989089796917422833425714723375287649785405435444410379803500059560910368649219150736302194066099959168028470176789588652967670256106994740489000287626835865455863789715612137549783093861101640647845967772781652278645612975433008264543644363710754014923071288744436910583259551879530523866149053747313374596676249170572641508760954431376033953248324662845978365227479954905701465699518817203811099334174966748051867014193840643343581194362056381452140241322582233944996609680133398910831118601306180370709027320763454219548285979898270617463866891387708335387611553472898499536218969177725499755879130372926665249231208462627262816503895493917974767118935771540500607032596163141820993952999882360286598871358072851726332704615144170073906210353347984400468698106457534618201458826567847461083710954738127219229197199108592284460730701949890648893268425295243139265654140317230197937443628645320255834328369315503285383459074041721052363697236076174621190145046650108732073264124592617703317876576709922560842282978192922653554318810943195450369847533591802192665885913780355226693975790221827397709757881449018698332059307267533135463188928332785821460203894347743841157054390765191404636141691345337567434365324650789086996119923620130390374620134834469042174778035293792237962491773955665779581545433425604547297382735179651942936862468553911291388079768073768737655379659539076756123452081833657974820239992003952918964278107926049321251951774964901431100972545854232145075789511004545551767602854213517167793202243826137942903167206551636956778527622136788210879874033574526578719338244722438330391973661818154893747134843997470103111655533174749123269205917313042086206187370921794152274626306065057298005714491358720868434239043062327442868547160547629794566244985291618764952629283571689716711910523307114403102488421185638187017424158452694686932838414003121456250818807984011602903060571976076634129140105782004405633637757965513125011743862052596942650952682982974441881817916931352978193805141500991133899488727880112338521754515061609862275509494418887605357121945518939459146443528450618517108356006495562983457292742926271027528109592374070365892052835184538260664467466155405843037302771676698780605138769021059495945154453976363631096402983528768755595213276830714032921045508619618534750964987054900725239310163102820237718241229142438711357560022989138641280346024549788382632138694758859062610928013832127461622596808358715587915439507047050563263225747227418009985697480635214940521059759610761012608781764221293439092836838876935108535809766948987618831104939816650713381010846913363584490286061906997684545597757181166561511458519450485899085302654544788039139933042099924789931412342874207185516550275294293260751362671448900554278874088165538589493373249441485340956883114113244197191637462166252158684308648166566731693381221082593352733640138134798070768484208814558780062190815171595828226036421962212360928047274883756325024660856283248372313199507349796253760925032563596806300520722348912080492837138289644642618045425350356959228655734719043178584879509196595411641841506820677037065361501979746440500082268337566344904766331248842107047780918482038708053264278249287799904091866719277553055581091175491255522513764189366147563355327717753606859969190473474765125123592094795151260328115395244176132661665054973225079392263692768972502815002535554803707701906225805557746619727067081196653903157096530938404964874500425167716968837152935249296327954992632994873483929784978196272132305133269002109160698496421403968383348029656967180558352435639319823821287144087787460471559868960693229071539720366016023662877249485225510532386003974468710009878149957153310910282295823341924292838007665888982400457811281439279701666137898164144002429802399201166303763233772258904298007442472355861478683532722946137198553038354760118634872008278074645139060490679417302834130333779077608928561716888646302545730435248401695558980675895474373109004126418001397131057900957828039910840928090875651788249243738027742674132289075605688393590574729156409572680724010378195392983442689216815806526675694439322316207479870055467708253823544875376794333904576055931720471561308167988853721453030200436658450224353799203195398138998847552020469170150678300171291411405721895287617737841104453316553003399949074695084981345128961448664333923369835452087378596402913503203893995288825692713426421070029211384586460563620968441996698431146675756298246286301961599843225236909995633729005126455330877491083137899068501812424816624853527016855903619272137713312977463299210647293931211007979505694961523473296970531861737415380451696432030805239910189284707339613861083597592519740001471277838317799133650270913929076443187809524438214069482267186909969023497403494160647108877925396629206550272260847546734212793868827234466931642377384131460404566652303424836269491948483503070618155565704083013755304064121622501866477449311515737736318648590952390840677286830779388513794321311090170687084397916266813317314585056896204562005649869422814973330505993239555753665678802554800818866228477535437138074676296838023642986798180627516070379687066182016183689753481491102837971755768925095447319126924601976082443515654933279263181667298493189473428942509673940712701236692901446440110327326969452529936472213048948537784338814115354688759590555179840597822641364203165131311845550725139642747876237401959464297011220271142143958589351087814889170185536695380149342357703685779581350950396799461475213614598066773777222221478520122982832396919345581315060309930019106887986656601246096177498068785518606864550952619661780457993520930550421548359861792331317549884324312074882369017058830502198212734865002862447512629452363581090879575926903302975726860855618872138374176524740810516274987261524357517461601414419655602995866172361642198282026728167006854329789226960554478267778318305720388942479268260944948841815660756494236401112243613439704742475002802005800095067736782378519488192820756120007837247763831233098274677492064580307392344040164642914457155716298995460870450111246771811873179827010313342802146079799805583124359019952492594430100927230537202694061513674670007236310868428956730426951106741535699849205816700285923206866437333317305252331275090968151192168934824794901712979139128675704921818668057846735085171198935570599942067193159353479113045904997631412778223921600318675502126124433825698588269431712997725533090162211993245982038586465992063181428114110967823890717352148967520580899083680099518038817994191655330741716036813494341922471576520268066756139424610427731881114728198781227181508030143243566055417699724783624122485698338742174067272401671581271005927978909446037278085901657589486751837976668851307507014722425462921067322905111842812142737132176254632032845813331365628918049815880748052049614194088408517059164352238245520235094547746499581968881128672112171724449306874963899709414217191484042471644650541825092473770508658343935430397006538762515334679902031812328708780367088621335749676451780605992177061917370619412418459270789027779709598264658965920170524047595477422348782495131126090840614222574456155946221931470002767557725885669354021899129205891864175563593413083168998524547649108050681860453878567461384999301517754876826104431029843511123760622307211128169121433066133066412074404471274826427412993744605081511872156168218757537099773329340477132552677288060539287410363183428229376839946112006723873868522863905463413348639650682591226533294481389278640118843061755837284219508291352909034045851760181009472432910366187910809909738731675918180032141620440161570785351428296625060619451729932327039523637356413650126868350978526879290888285812743668697728096168958355445299183812732099010891986878160278496692380850913786944860295613459674158072431998583243014506940824356847436939276044519548044364506217157167961864588603068240946285282834565437246354522937280488853372931949006330171676739675472147289747634477226091250633572126376483657698623189944101563845487237180423796558514663646643852487824152895606230770782665077321281194596390124623293397097902243528448646071484113704561011421779735741538864594368067576103773117599341278949671017380506126144442195703244414943277474346012049471445786864640370832084506906382858683372794190046543892108221233493650856023743534925583628493045330573041613071748713981069803483451435875637416390798358078934096411056400318049879938569418000753075861582262704419532257197926395429325098457896056165646440427284374306865335169240137885079261405983934665384142914943663142385530312052798348661173773168968850680151290239986159286216991919137024115471765893219367217361450648359306953617147056241580873796754570116871126123845760163811617130678507764799679646935318439728700887956187122250517326262447052159878073369082364368161307342834017773729518305394506465044951122486775462646240553779802283935484871037274097896816873230393953335819760085398756684148237353807520301275184686892903683909489501945553242399722175063701412267764334224772888700260937216012985262638319328001349641401343001538905465773022071739528548748033174226865561830124880755588426775883733061742517931392474043844935425745595709770701154744988244085141085114082344900016768362960740761826306109479838502808876228471181541079688249520377127673599560608465613296449593342450798063202213022414375887695031303524173899357823860886253865186850111358555163051111648053829864030398787615378256766107757278125222355764778836761782020106998163324405088451795693731474877784778497500950009474842091226067133169132467421578945063435129906157814745519350632410587776763034237760874101410642375521002097323479861509384311385925489624231627463075764236051428272821084421395681108070765759899153816938514162227029137688950296046750687001826438282382292187946723367853658485250577289737199842179830573750679420680326297461548422726656047829746143765526002670711341308410579610862435928127457619010383087160382245209054260517310888389600801659402699972203100515298558360332875387965240489880145780745537056868841121920390835054646752281415685764166855495396264377356229535530468655589230705773059539008471945641582648838541334532047176181442228228976675563542828169070351773003098408425502853479862206235122082156233000187736529820400592394618024802778468415454710294530959648691165098698076547740662487482554501613029791389766266816515884943586966566432952826183421870219888054839485584665151269447190593421100698749155609736572839965623244114964308685772611206234870013717938972161420175042165488694309496192697376630037178342581592806674170296766646571507845968121111047084423264364254945770908230072980250874829922719166837631818486415975564302785335874851867865978779573042394216427310455931349724245849695733219726603605435712289967959018969884092089047786805548881803293838391513803021900304575948412148580971249331429644968097142690432278944329408754996879936406525523680794672077306393708964025960375002992188808082103274326124909107768970704117997092680505265099769367740187627357809703187321139468951452514309426179371851560760218003781596550410288195386001460441247060353633335815931305422867993091851010537959349549775673886321400994792556213967172566635037934955477740583695377399756339395415815921731759148189226986569722019792870933004417918863318105970300150023624593151927545792023530423502375465713782448209298433000432643414541964671700805405008918910298837464224005013712975928113956696841009620891769359729565407110166426965804682013499640709283496923893018875300856970677117339022103756258634078236156567769247036316655278200208419429134505829226717418889107161811850058646450261492184134063914851725460334102741043155442300415547270411054075394528151554789777366087457822348534726114931409666044282189154609598717203632381755435914432314575846956595194596494564720443526752582095238794769240452815776563159998835904446290403425355611543340884029431004093348811609487098398651401123159866468946267013403475545924527556044178375156922266000118654620973564247258228397894560893904349809021031053388007428969259042784969456643996032887648861899105833289587032154826554281025966851677310304538831872729113706771488141363257655758132900638647266240038793432238662420045138976150229604428157214803802695255676472421595986632242707332940204728243265535018635616446456710017973564963894962696999861181802713825558023208791730482858255378244044134490321147378383900185716947969461034593855411774507981763695621413894179236749814164245766937780127064808673262534714841484724940884693006821008757080979981099022862255587064342422452795587340778256193756897847193080610821727593548189997765985285148192116042965407359596601869801088402080708106891342394081351928192135821392005474053507574256607263804761272977372997014927615109877237508220463586056012662916467974418749862054498221906977235973291433929041599458301755795456802398741385288167221472042209880280638176193450671234266300443671097063843373203602532127319361217489845496815104207157682583487135648159805213819757287296498508797645254142654970079301903428883276352527678076428571802916802628531412460477114824408766329319653336243795380967683313778323563258666945226616971086729082835189517008139387535948994908245893314970438273185721921849936266687450322384678467191646001525987929743466419533105939477675450867655272182272567078291013218697449051956956352706860005096094283716342151278165723832636597222464035279740454012620009948767174448059056510431946687114493629423589769047853216904927100851685216537162860473298652180386364819993818872866946553730183897575666070516464155785699017466703292943111579717191101738285729991476690026878865273680347444028801796077208739267932847510732036426341158806877907301572026000328690965783293026454917847545715066570433147437253492164503177809542054412736706747068074155539118137514852052900237743204740829155051390030874413207763794888627427023036391227115461218490079707036567641033151892865036759233439652450650729412181217410138380320424843020143812954784171007668267991502120668698795492325907578900715283468892338043047189875185576548070931744470746234193727482817093313863961459263939229811167229114129664519603945222859259996948257731164585884736388352336585783265595629166067324486092220567218395365518178350980869837254474531913254477641234182366436732703311844348034849146438979106005573539647801940329536811310030906985644961258813590999465552265869826134225026452874229736943719033604871023250019571468348536494185112478126449631366001879766010517694073058038011618650094013268025741533774991060432579279175996445912534173932673716405156747279797882205833245718338326249867261574041039960858171785071662057525291520252633005742441408690145769071686452612971623885145315351345917287400392434399726692647924289659863646260123209771150243363314759886442641645196168582607420947909956209654142686383974697442786891506264680234588836344503807982499584653573101447310575431620340371449832382520454048345216015602133846778764737450807202831543059044732378690215620046944692200620240107328365347931449895504908457811723700334106960402552196773297215641448461580622654295069234381136419150429270542767762981965968740149973522141711979925346280565692372940253100550462938951040013750857855495692856018249439862137715855715215177947021600695637996833768500918915008599662266659156084300160277209777408330513304111278969444494069782391942652790164553095849313763583061508372440174378033325975359109839114814771955511307386620660048426159440929599700606342347709197907604764837071723653092948846588456642605796042363959184536125338878896536066420450192968857407010060443662432213972403848175069080619316474612067218895778778579328813951910092263004584962403961097594733205516915197392468248876291380231629252135962435897919737428447664557779613416701177180120293705725156067349483728743024902337198939323721913813106137222449610847021923731632174609500011127753685180658878808528118006383231263635043066943360693359650332058267007067621646487545077462888538397383521620968875993523121957013555574460583562011542725854724671595890417922363624635997540066030224535602734415259399216718264534568347228461319553959570333736552485621950155917641284840122446838156969626819674077019932101957345395344470297584914432144492887702795072033806546119769526519358619233273215398999626186393840516411471810115250255422219290824950207866477188786730904751977546715893437990467717704472779919083001699629576487872357862158161565613078411177636288758256162466991900403360520951505912044509157229029308793304883446365682257699846804834450790195576982572384155160924031074818179179374836949742828527261633579455105499256184573052360730435976841913783139086065494297462276001705783497764296755572436509909468110286731486345218445124211981869202077083760967117162864469580471876426088469502845587600922665538413524649222981518113643486869301331899024685993699980675966707506244107065684279562969820096381707819607481427904086305889776527449247267458990821763672696471068087935322595403299861366453460215519165480020195490360437157635648163188920061477163690465424701118862800000222981875300633244896593271461008102268340515897723154973995147718208259566357190534606518869791476981463529826998699554374610679307914417812842100328722643283871943391784296234854193764629484423021013512507002113749546065960784836629011566381618178987010831187703082494001908986888777129989974301642714492132550600273104395160529389990043014702308619190530158730122661641661473211146861326765163624296862956575338680698543736756900479522392277547823064292491979189224558523582680081815354820135662391255202774252459262441937782298741750626158538176830433105756511313049217864782214994562132185525545414298615892781001925971756772100975319660404979507631137294680672949605160294135772387242963628838321706226383022907467963226824801932609785620052609990755093940971724908239204334807126357389304662380640502738617019476896532923630257655020169706638473608589041267803699665343466956420236932937240369577872353749201696427168559889580897957640862814932524789323214299999304676405105332713534523320142901818815909366712075552973147560028865716694780393055220964356756705999859401629305008940483826610184836390621359053054089634755409460009906599431946105703147710136042895575887761294383474390403138034565551179003401147185841481638495601979462098458999603612513799188865392895918769052898424947113391892498463954089402174783823005770866725118594997831569523699682526127259028473334392721548437280244766204629683136486368896335816784371735853684026949312056705305912657397866252662390711088678307553274872466949774374587794474791158772323192212496430290623735464902964967326657569645596486357999436976525931458608669900913510460974050425306564934748423977311119706968011735008026888857807608046775617829613013280502885667576943900184427689352025055263231148005993665659598657655281490550863702156261348074555350698574770883590975001920122588293298712171576376030676317483822682767395477450605679177250996622747859797088284923971766050012432127591846934152067151533819023176802124007212656655511914946259509971200681154708200929156058077573014909635829568901173038951401566037338432688353422432410646711794369202091766420091139549801065699660453941424836208416292657051404331691363606996055210581568892933432584316104970195959386888601307925849477005551229928524696332163066699116957104554317184740351597705854734184648024972734925452382722740724256261339395393148250500062735856908286031252175047522789048595711378224004980330394299330645161501554400003872108723512096871736210734453211488746510442355404241782577759498026221816327060785066566059745416936085210712068574884984471995993689501044618177931069521419814410989494045921256635304575497010811305079761867095206958579020111059017773612773424387506342552654459882205025635639914018512881401206076353957424222694611652461134490608114464187018593602801229112716603056050337126221017062750045891583041832856734867868578953299502193053061494658689733123927936215701392841691290384419075989260854603530641341499413081973566731249104031770774380589295425202591983516627973591001915405776484413578107896630637697253535544362222678987478663874193641524243596853172860841190122667423468948698902376906717680648777868959591729988661734435948379451359543490705491120018417307259162729641085400916458592157515210186338396985807424759164262389093146460254587229318706757795332317055097587726135716641591572259632669515381485335700355214712680244583566135262032109240796727133094506748582041807402858602766923968976919690242762547478132748914160722493074596660489691093908356960836603493428120364180810310743513719277006050189722020348750784023458085736071747497566177817739110265846514762084259343618958382088394552372214226883441519963209514013998584004512976260575218389218005973816905968003891878167866139599896633086614785371700461835671793804800647559765132341751553518239504116636936594463734200402943007617065758084045456127514475476032119241988974549163722629834798183554894970479023317009994233603772404452818791166915953792950559924948077370678034287082417945901318607470060955044391146701566553029203168966029074707088036580497117732185798416202505385607665989843076541534183311136980975423244512303375299264754517270438252219406743102124272114573457636474540668674341607585497839124752002101596710991616670595629089151308275855363012397559207224341801827355125476034126353897986402945602999955002743811036669947654764801535517738170662214383415513362225579174576853596537098530086641251310157121130088595441917290858996621541630140588522962294592228363042527989422294946662636144147325963236863072125432725007475117310338786686281095434419249536426745093393358656273655165326660017780415679568880809712419145849950482643441631714768692122361503742596434257990986990423272381853740011516687465063004445495735843387396703122368145954388433886923970927787573124414639942557245405340494147455428359634803029260911826125204087806350419542167278300171352148878851527817470762504677200560168852500654892078844668284256339005018164644371110355359267357685942758267015331755304167908554080772027533394486986959154395324120629327035791117511929406432469803473744138503973935796300920699662766540339969888397462190420520596374039768589432961943762383243621658594788819641083020930419090457193176348470491977889935580781303363231067250911351414686856010902862927999877050899565651369544147800429740603714481931620521239999956787378948585707873420405862152875404080855609416151445573089079750869806782675747632123966561345562868226651717605734420731997608961303674041134079868250691939804152382505639336471122809926200469394936917428394487739105373315542509990829558122558844507912821903526832363588677941530506170517499799796722071772636242871247819265044743180781006433299138756800559968621743069697102677170910449468460302685679512393931355519510424954957699598401016732304928244864851951267349036951059411314399130066232936298939591112496929920182446889498387076347955598626911284881415210767794282466697923784830433229120226517774333835140621189040641332719441936364453152856329378410736537120231635284130074099725354936500554152256181465568575770847325009619301766205499489827164047938291062329436316505372454744932158712987026599948788284581399785566449019410965894588022848316149031970454732669400056920681080361210128451238675031419344205505065565893631303199732395259878351181295189978292977179795998522714000520823860355315353090222847668110321574340637935409327510682048319167271363786922973457687797984367879220805029770943143383896312514716112886024598848996096698016251099370143790191622944008500333454633288400722405102071408227676738838923287883220643061646240626823593673922345427078101257292512911998993300690850359337173312030409399574199456555899175903220338482029562366037396154451689201870356375634645375847715026272301263934666787385921856725229880862005483464324072683878662525538018101709312639512537726102704960301682818182292374800837868773502160993804644846415488534480425229563399669682364292350898515823093304944104467980682797550358771915525930564180007767952430712138174002761199390062369128912890168305264550433919620557285307297545568684716341736686994937589455747987907370729768015846511896464146140394073625760425110147866388299024732672871448031668943018608309205791078389995143569277135252518324265750176265270958778398978434031674096126849057525106044866673299380729434590035657577995240949531045409738069288092991494542272602587889915128604941219500052024088663931239662004625618526330832503601598664571416083392793157468512299601704135255490836407890354108581630819153728642895078778147948719228669080051288898124872793299273801060809647470546315070514993349797306655083663254132246009923823276407005102585771768697524168677231196387338093677234254564574154952927465724436013399587628145709968533661267117309971933316179171513641608611130164806481286578823542757625594730662051971717563114061328585680672470700629353847919026324665753978412520953247176130771147822175271089178884700918761274729772054323289551575607425606510516466625259122239330307170232924641274922402118516245719869125518468078365327386730874009566089914371084830845413238873079181722939520584209523782716405758299487002994707028502094147972085458816178948373098535475645818894933527182763950962290923115580261444272787711440383392145019839949450345992249588392982216730658899811768086861025821831199407611053348331458350257691891123960220936701898401315217089951269443365014472873851912995957263255599765187189828621730908378485304067633883716895016477817957185153983945827400551728638853188130829898064576079996882835541278207527461616765853278000015904071062969928495347106906332176408727639415087496151025989464209753787841619439719429844668238691590162350999860136493636131460500941410952542776133555085911584174878237773763607919148856987338388122214336929472126108825430111574114053878629225967981414719666369052770987853283730422498685489368587634615710255294320663660161434341193059404755659963714808315961780201770279164585907563640734265656619108213200735593073853595606633142056332743688651056850607552893664913040509887092090839855824026374121084396991667422517202142504266458972991069174220509026048878357505980986551254468394169302394624997043185563941464916812693051140135885910698277770191211260862805033468554030725582502308331517528253083784776575556954773969381277616131900991025688080189060472896223881908713240265031053847767886287698583276297653999437816981257663698769471674602840985552589035795591735099908646511472413672644025323144813268118884028694471994998738831644761114682883062789074412724961316353814552238940046639026889361763007110087271686525233079213969855736990249379327446951187801557521473918395481125269696430384842108220931464295673406667149524462353045351152227781429226601002375983482850537755753159949808109953063707048519409901547549697925840649578796091465228763729815895954822063936079534645432989691411420034827624122732134370963458964568271963759956506734400654617739308748101511467147135329295809783969207010784914475712694434717621540779528222004773130496891359848474136793435006633432927937949773931368908274520312240567021819439336288269292129687126169245036994461671698853835099038526751608836454508598031307234802211112730522392150386648923063318679292725893019727563079148283522380603429052829118343716345338229685348127167525655114340699269241835937144621542000888636180698110292549285843577781362946913461878455147379702284474189259897346086533311391033993580000601840638323726890967898052410621034190553806038754615284335470355020205735201386955358432621902820838273049973667875069416368660331283374117869278277927082695818698487437242054639559501861485577757195486276143880221008103832888070509116530608084926202005760020322491860655372453833703254665610457825177848658974690815300494296817168496023639496224217536062291059700994450686571419054147261299535180899625128934017267962316287557935226285265811634894899409839202963555940934296086464577594687393873423267688607451142361742489096795489907908919905456550177749984508325389376080637904495102045049825761120648483403253326994580416396601265109789645150050314745616218409760055762620609248195648995698228728882696531895231776977887381110987746677004017208353570861384202168374795603429921530978584148829277063896893464218335434891975087039072035560338480981628225964624111301323319077920331617056865299609602334218893601196920535202100728350207654644021427744901156327699129899389126917576470344575145024025543821934730224771087049794341105930112786802356262175244619151004191395532677539019885212573847915116593000248339957057884495106096164155648116081309255002854289062891809006540211773386405735199215128139321161467112275524523539574490742091135250646199150336201459890397429704012090888595097533663124095520224722045924012186748162719086287531022249514133244451423436633172016249785921639391968709738532746316315062152961849775500403774572426081624081888568278133736367182236408113280602225859783855014946031531937305187802815445416750725935110546145182720815225106208542994819373976657863721962688949365515423248052285894166853111187433777611467177371766326237167383937007423301485917668757328569632942985909774305748885771904896824681002039068945855325999102323188960206060968865713662172470704626369366883458621430182757503284448981418804533159046318385513154041924072796259865209645681910263578124889880724528030230726582941337737833132901930291504010836077131722821192948063192836934482223660553213138546658371432374215198095351502890217765599684639002491198049290454832640437184136930545152023030076954089281330338826598907971452276551479798282463540172945429653106628904270346253206108724760613134345242004436220541968248303791616911641527428377242453085152034421304565856661233094464029767601061678640682139660108385849331695648788440118345906999998524792813507009554631324846628743548850442580234679370528426619432238579120356604048297843359293207262339567680928090749009799795518556361634031606730512410766616032890252012797128337239662619517118694369229322137523672011618285331013850249583329528323791958215163958186189636779179602404042619124672532255985676070343900485865739767567185558295825494210622718005494731725856644659916758705231377012367292902622827388280606506444675674652181493359556064255202427271814700052669925202654985168565015987399750632716572327395856537384045043744408250253577166441969517197956611486137599467537058089061202729709925149727162950892258254678631342299636762967579616941947307133901162939079468226072556345014503247131648002609243651809480537896393624440772775918855954502246149543173730913342308502130169313364959047668834501848491901212025773107204787328043055401577062773934378213661707965718893556240590449377989568277167175580154865180864469243699271867758191201816268750517905170550829706489284573983099655400932802292122593672984102165612302556785397391121119241062347485542482199887992131344354045335549954048676726410994408681527665606179653873362368274117890755199414266052855755601432578288913299437043104742118524322730681514993619665655986420987821212297646640658983532108852642416868335545619747217464767250833565339023558828955734441017470220167783363379057516602377231701794888921204599216104284999492157700281810280849184740662216131753353661861530382878958889975703995693764895688091619966686195457535542693341652567403358839878140937108924764417113900988146469743434585277964731413278819901804499423650035163601674752336600257740798462585886367367303013854922727726547177247164851370257877765117745058589883560884020421781358268141936193018575384789286517952328088669362885872771072812523084641177003292873427188383028321144715867963194208001914111493106347734825759375246569909504287407392653182553164721763226658136072420988864613973411978478067977718779168509658603231104662572350638771065470229285250287190219134997306188374569166147374846350684769422218630009585404332205558956969218627829594953945165078514792923925158933235595104684159040057000865877669395101038739064763211983079633125949568392763991454374200331417087827291341061003716084160998427247235901473409941729196298132039736361424195787100296498370688372854670047020656318917655591970619666160208754871817756508298319655924327925981759341159412604359370372473885631226933040991302452593936189735763556797616648871789334477874713126795401162206398568631550930355372986937850561827179216713990972870981266576818232065397949290711990191886843592197272707638676913709503187870576106370043775167319135710825356517226128379308050777299579516875887143462940389820167739847086478684432553400238895458822807889975756599789925217402027257480414053121664269459517111723964396999377426719149703723108987789556029519609068616370758439243309350291206611347979855094269649414493793024379844262872775583088911265250808158904098615490807624730973170638344845819189320166640793350145020148346847922121919022056069021870247064217284090601694337220449393713223016624872859005400237606797303767118795421306598438566050590533249614648650467728231345361686383657419916978903563703702906472283205438248967472284219947407224173581196018335153150145090773833971626648700095203377331459693519532788473106763012383672289446580526885446271399177032720155116937618075023091414921149857167657397836669547441545168522080534924897558994413731596490638201381026952503644201398541816000672736279978854464547400412716664580249628456608332219721580034265602631447217394630952210922045067342435096862551943476855762134896058969635566723998090690583032031395209452604599572612637986468069898839554947023485022893134476221053443746468931034486021432343093620711418200088777328804847003669492477045233967219503428378164919951717948072340376719792933057429690818545141758866317276343421799537836922426140257346494150545252972601327165641903023911819893736887822205305117368415195957110476093000083603511778694209974044684519972581422089244714906685647483067407942149385873183080331912169781657138652122594688594984183460557100366369139407572015150381230300668269433443226440242070704171805625492823050196368563094355133400911497377417903391573191502397089516240465716487820625876679449665772407795845974807413577055492020289658395296120181211671896382535514708719529253704669983077645940006348492752407590164133350885151888944407294570650503137931128755247528217459463748962197319130997669114810494908850222698558455090291035235745760977289088793070954141888763208185452812051551499225647780101971999890065670629880462429454436267659827744967709478508355579653620696216883757043924521267427909892095673606275920571437249967555050635799873024962699406337572577301623036852709592208115498085101306000215937060884727288472161050982868247343588175110653502683283401007383228315301432217749167467632512315123877635866038673737173525409553855726721445856732389691342093341744924016421411814108870394964371213352959591331197383115920939962091681841883011085791297552986604215024588860465368633347602708868245324704886765162420362102658124428355832835031788261410828201867528080142764571511810559793270420715412954002645788528953739669831863754821847740913079520117333830816140037576978417383689280522885202171121496495971190642767888431776424720007497448896044403207046853542662659193645937906060522300717207516721802551411045141334944460107251135801712492969545134743001931942423780301247720760946951735655749596824795946711989051377232939591452831564075846762455671824995108290085451347519611735554029039029445179637286261753344772862931346448175193618132239048221929102069876224710406709243922460552601494323690886187540048847807215701097095709619579900015679116615963093743657393894722290415069881856927363311531478989958315150012646445693687925537956839165084307068606169076971528318486562206328001687062142370073782872925945662629400304883294104931109607626095611293689858310139251788608234670539615834662132511107536550791626644123558670372958823843415971820445304029284766584869561447008293383637560263069360421271093318779997047654827879461525004014392118860201099858656209515287717482923649909500912786191069062401094672721846197413366793571075105100183624236242586886119633400206323363137772067327621168195202569678555772583345134224016915869697338136495399703908460576457955448696739085336998862914200461199911360699082684173455137348160207302764373632413542847935444672725919148489592882367068959973392265561801302669187444738568126701546839326384331989413920386985862975044791801001039530957818485723888257934971648588934491464434277561906467861759504284195281769041401961758544649257342544095624368485825538916821824500016686600154779726219537947110281835144032101101088193354063259745060422941795942631071734237884932825460960416636664874025599758374582881020821765216911216297286152356375511968307121437390834786850182945847016348358703172227394426536268066338179719454778191681154661637243609519753120679508748060011922881264256381518424219287537176058032539939464196087989031919433402442055659720123017592123945340437595649796349874504874293606356665613286865814435311541906283024831740921047427681067587365086597261045491696672575526675157277342617163843089679999247011823830008599559385985596003217929321062375840882278323744523258988624742096928154053858171049132688331451752199649539193096664760595956656236498556566815126836990770028298433217007597251938104784577422262772676953524070334495321003952305631266874790151162543335145940788748521110709532989935339717662359546185224340007221115497998162910301308306261213428436045974195717939024409031320504674174862819916432980310776314464015661376843816600888653500710557773567863159936738850068303547558845864872276270820171005273321456561700948861474541889364370257361310284947303982399088594351802191434203936748861235810498259111693727102559019987746159548013307602721740177895459034713234942527448098442984300032335995902445021045133148174289394041249783309777204927927770768807533700551138888749185558044929089202030364333427954616080919468568028358009615276472045232231039400512824916583983420962700737750434598160046835826555141860959174118621269614498312757552905115072934524733140393919451383479705866284934052505685575633688238146695615632323935263100158676043923121265261741734799197393445131903612970309360211891185562104331148770428599552432075102146801573268868021661566018035797723098280846704658979889935271409785809357524894313630839380245519885151424849308189680188231856636466398061174482672682669543566060900628770593342563137218963465624860691565580799812017707362075038738397273489292954048449388962179452284871410059392708854531301938765308050241346929372242718918947856615516391490262231074789217828037280121014468595991206427845603450757740463631740001872534060587328638890874959779451721640694519239420495708886580250008311561810215442405975736126576424354181804807953505310592659072051153457462705180183280392077182275790506362788242259279108184919186955680898229493056150210357141418283281379318642376894329688585318751168240903958318799620778515737124714595768036574255077569807790527149759121126660533588325722859004394322645412322164655765181860198733531597145648096226329948121385775685849491922983891358515702154345662420173424316981226220093873951347868878173074724089711364871756140061240401298053578142258660207562012681895287077388512228870982828760665697805936692310616264486389851852376028054443161275863356254979639834511637507359723370480298294953257250143449676999057546640925013788504790754612814461501076762634394031853301418824859614898256145068880827959534145177106715101550289907652245323232793904087065744437961238904856860790195778704141695183699041927371400576847856169502342149842377606644090365184111725311896814353223524109311932142324196903182816802102975125414773846193410706860057564738778542669339351311046058595422422436192359940712996296666848732087705055032637265010252987951294804767419127816084111126007947174481185856085279729942076719860248989125573114995836698014355110851699605763912485735770951825946409916494244892301448843708851554754299782713077116376374986083981449035889510686654900122761493162040871612288648929187109363597895589994534157373507981846129709755861453545005332621547307950667101771538932171421137201458306202083967371798900763225593736008056934682179419234850670955906822765786132526809390669328839871691282805979765229306938278228565528857062536809767199605568351449292660935639035751828676914832879787249832705728314030194543376335187923258452615684853034847633817527652970067863766726513434592406322020404815346636388869461099942489453751365315462352453781941983154754010450654596211034072721820138146321507648242268847167773243889805821515393176994401346372036482451895791643970748536425560695502748977172988151137183362446605846240515173076662220273120872683976647188180547537540528254169022614570450298073591938358218877205144409823591533706916631994888343787442720154846355620539976262364469453046454026948848634532262234294398518053798901836524045811236646456002168684805427258767058421156142755929906405741868711223830732978901836773109807508649437627141138224429463819405209800867009112030774193952318622694562894822234335070251075222138929925104020187586135100655699192618540803429610531193578823194527677640503172855579818673187688199717039841304529760065118603567982595680488970171936395562297459378954707608155949800977341140079901848393006034616831239916000042623024498351453746559715935161485863426536904067369805070548851480112737169669074653625396705968458602886264328151679789536379395688455997424273825872285788336091989674244789438231979955404783973813951154411265554311411519754612768848245079695393048824228013822894135455199652463269177033665761823686002839301370773511191453182217594180197117135896401800152128584028371810249546900989152158732202045953463196602246150727026523152975957439816032269200737837252160769426691092644302874421263015513429601875142017923664956434561607007639858189785818339511389321820370102648860337232750962298414212909237842912559419383280886505244832898387110207138319806576937154217929869885011463963629816868081423800496981481276341557835394302381949590746979004206096081101284598918204354432423475806038746139125422417481546950332234870036508818742703436554659467915839639635543463123676753584808949840102193252941294748686890668415573708916808985516674683284277090100140329430731603120416599029287444509009799600743848341488465384566052506368680786974459836335852680859969600111109874439840090542441656807972419032705074037183649215675141939939666818123345548978125694383055394985198534942820626057993690043964484965038258811973860078254017041313366769555820888914637070750308740970603141884453889053218268830233136628887634874096799136402890846160883368538842038863495400448027037068253428446952397026432840291510352689751017108714764155239924418718953870203500065842475204499584276845488486766303128692033601229565090272066957835013776467792933857252038664001867332024263301424773569248322996236738406348426404587490567004352214698080205360085045088335947221549551418906554688692131559873874184167002233221316665303040068311313550893478337080587734175348220712001844652924744283219469542359591519225182046220872708444068931655904381580867838306709435305711413051129404649494478506250603756330470731661179123306635260824790493772532384292218618154992267238277120781201745357588016850416886286756843291143962837925707512533621535714279997026665374241133177468819489941978823681257926839664636547466891780855068045851359872621863117631255547507736940630019556856514439964105389566517102883617468799644372801862153848196266759589913900292097677267773192133410192113748813653396169468870630436084688382558660993379135685576108690181097854166827088487018393411841357746963987024251462651466319717982192560659742600110710013476993691530196237686264069328112418413346256377010075520248549098019724326645613533947755953829200250774407147224946143946322880977208196108755862878614198850980370928075478295653309176187785378710183128317446006238293560275486429746292812668493668131505634813218843849961669348370726478419040636227117650107951783140575933054929806714090456489886479144270267721848089133720864087881931802993653383358366893447858125697237087064649123488089490896451872198473279660121349130083239505948389465573198018550732076614042330011905841258687624362824193430009286168681522667820863142749670026283422044954488605966571745823188373578108471427705995722138766813597665816534202638403536535782360124505278150444374630928952650796798133014047776514399117600958581753816316212141848052893632214008676010760077248884026210940005040007970615546250078440959784712673805016259005127622097741971408307970710524511797594842579301891124792365277387254252930273130865253712078539647865487159019923385917402658476096638466313989162377696627785961132545075264800250005960170232956382595552905822790378243227911355155436394781332174246304165162487563724671021642950407416948191833932135670862505414479740764405693357596570169485022586995683067851334272601809067384129672287540480027206357254757369289637977188403148073861998223844000691974914030599440686756541728818669368566916458077351388062167478218555051123557090858851183044538422429269332959563309827689956872154806584084596853800965956512412170334419602509362394649785100826583885866384471513863002702364779274687689608393881766087045199561899842449141523540973657538047025592809659572078084824976231461005029712938016186437219166041688506602291550674229956278520948574580416359930799222816416182159489499051250282576718084865812829522634082789156935060417623512830153854756185560729218214969497257251407767770270313383118335686220164027983721662888399280137752038032228465134527260817021819405786279250460531061669198838970319403380325914140782220700351428663894974518605173773742807436613626079999736742953621318991723972733308961013469026844432201864994213779679057730561179558365697729197623163732250713232761217026443798695746674327287444541367094890677663327596552864892621732934173429047855835497073173939531258625855656961144439578054769411480062250317636695176601686877709192070844261345783236698234775934481249716273841258213639197248237458050134159784847314421905784749509247092796888907775360395540891136342376406693411775772133249893963667664831726470133179613177794306631210653805381408811777346032036654171358263442889746279055777402790126804206631219269720677351810018859365698226194084505638363675391470199130461933170502819896172304945804530140313603146445994819380665384730185900308890528038811960286845750517525749192153969852611644861315588607127526899582036992661613553531474437462039806580705818013345852074502656573587802798628263509233972345422431926748690558946777734072760489908220506041418853879855333530198465918941622319585244478099965786229579122197092515501646819493727743376518570164543773310333629079522638141635178722628888931438568959707844538462866024297121203596900630324871215144956515902152690223122479869778812590686313098030197038970349150264618937557408726789552059799654726173562485263440058759870501233586980447207017039166722380170406186416353969858418743327772695344143062686533298148119772066660174260519772087039437832323151649675450797805319722257687631980944366995846969519853854689785487350355395966897095281539634732544689629271594340626285007259788014412817327633133276937508200396441542823776018198024515190058314787907712801699769308024333280715388598955345286938882876057829802904871300765455340169668964519136118175793042445601541705630365214447769287494005082547127715487560054788036812309386911455291421421462778457792083183314988190302769370544172591143804801470948014986736132990787139786376479207848970023619550235022891519491278074651451554747547776692487636166958373188644740515756590860900699008790675737589668872017274842357878230315042200753546261634615756073371952328356656356719280082935044951178553111980833252633799936290347358064631875404814693840744412197797460434335807640487754937280490717331182049521320511631925008420342859051170169312967085102988378448166944508023420912157323636519657578155005809044739020733382900486075437456940773635507050086018564942746133460783299131990484157503469066038822857609016634969993826162548820932124232895355267091452817337132707783198996832414174653169793623944554713454377069638219389360474246967330467725729197256019187477136553579520943758125260738590616280772729475428362666727434404097780711710272313575187936635787692221207083317323247718714758817283235958260632107081566678606851583812662709815170801944425591928631477105482993720349377186391858394458040198601269344764837053797162454721144334860581313084879515948032309368261682035338893936112250418029459369657325184677125192797004915208875354755242218240183495292874326863429557606330665732544188028701868834345621306299413574309039132675234768060028645576890712801272872987385907412337502842872326383931572805057798664863183229003673850138706289751901434145262608391125120257427863899105264209496206309817401960874332526549630730834595312760495199949486702747547940645557910927349340513193025035414411028824576194153107887670609781687818602786663634353414960236909955725053358844004342219011227753294950605101670699845800499078085826813346856076151685476140494037594736510762068551963786668799132390695219886939257432389906023345793673063698592896564506888824369101566050163932527148490421351942366596466697428280210265854910625177727424853441051456197810106296306798735180617307924199561717818828791305747698611389543185447717844207398447444805913939127281655133827066239361425252134981681268323712705374230245641584852206542832311202065076864166376026948715278202492715977067262914900688432620785091815445615217895677555079493180249602309118428238139066197806365019410643343319390897658704593042011147765541160149284015731311252753265652654839411582769706772021110712229478039609589180394358289749837497104696685785717606457084025906704669298720345935764651001145274836920947699620908028956232326809763088043309182455540152551081805746382889487368371581845296123939547038921172174019325238977640155562640542762044536511956450923132811287932324102017430114726100901548847882483760789653927335876074103352804776467856195438809493481765533786081434795425047527638932170473924993117279969024745004627123141805382482067153456905632091368480731891994606749272640745532896608883987108904588289904526921680525361332696685823628703930159954779540903475498471126815843586163577672362342580432808522569946104483142424715642680219924146730762440246837320656086872301951790414302478321282076887062396859626512512571588352636817866122339004401171652669911834729792561095441169041343886513374503916215992001070543927350881081014181199560645752266052107925774445783591553103809630062144948445068632183582550983519088315722399726622448443201300925068413770515506754947112868621732930328396093170439660156861067579228127163949158488785103025037283838578231911816134452236467129779500677928158863722102238367297311861662475198090131508680011813715388444753391447049027830385572705096066350764619872725417289758173499190981460532896596519364227625574188140681779859171627181960711082502772244309962980108008093397556863499590809518480902180400935517973338583521140827147089902913731135169949517655146520585010965456396649628034930929185987140873321431421896028525586912268404725141054662547180904998878667474519883814892702686708624807025699898038215217105026259700820926984562926637318137086672513396224405945872297684493181049325682737856151703249882820637391657163949733855402905533326797198431049426500790120984528263820150348445419144022327920428122377068505766479144358006153843087231471673777515375580350201698554559193211020850795967869812909620377751978065888815588252978068484473793094749735431045792993432713797950165081982051440369019402199336935808749267545891326083788516078033225029157599639057290376606490958896102241171908099765593833066215814661331697895249536738753274112474148604062089960167740287993439010563609076737010826339097408796562605435998814294703189085637983625796338321777014128457863272441956761301781294149643860781657410306186716222372062699027678897325251762673276335174121197390398982257694362901673697664467635247790357417329654035669959552085086246381398117714418666876414077530872128295327272223818775089272635423323446824525103775514853909440817413516976146429907953351589583436522812942690680766576314444396100922099772758361662568299810208296035044876432050934601379218607171397330213454835608307966682487121573699416640063593488627858370998092774307291921807578900830458917806424788147587033270123297511172444148697399820590482523754599072977309643596263423551961734299672173431096978366813839886620800633941298246582374740541577906877444437056534830241856072590386220189184738091786660625440524195442972878098658254059974364578718043643809325295904524517960778793832653434606582955735601241741301178843131396260278829650477647885851209754008576283199396306639972572443930445417135313336073625896415594944434793033323660247297486817964636431548206810892594642536472183625921952478332590943293245061525639536951986472886250861931503919208101690186707707124562935185238034688194417634276164754194653349442595241432518847579631941866180794263286169550865946721538448062123910278355214963833185293985032086884280605725231203047705420479679089486016236731650333325318194487448918409464676229258646403081799646738173969688913531870339487102213866283967316060228856574445598564851296095319650663738366946602159867372698508807864475336306805270975630054258268114495917514080590523525523454736281234134309546490147280162158385354996837609558338489563852865199173104518852525129200749381331474711032918382577811919566362754970909630304348456662912168399288156305163437011757037612142359462108444979482938963578068405912340662138096401065921284014599631762013052778470941267700596745418258574847302843306806588945085044706023967976565962142798801324249878330990914495719915320360595762419893851683834863861854565468202791683117222264646117756411939488824724903658505708529346223183632824349231709816669056847876455252934024435729333493091645393570047797331265966056004358737700467149657255146821971196225365030717174455243265672982204240353781971933439595678551416828750121425734450569168961456311375347024572825819182695423562072532181875604909496350409681304211600945034873459813587590850306231744279937344669610936655303002071337825651260122538607805951656362019654793336901647114280302625559120997478502745420686346901066594438365463281591206108883514018107802495031702207156054352287162503698823233791479494320587675588343616415954560644586213515833024318668878933727112604702390098962644990212175527658130783047299446858314918930209091142537974769067707408302399414469585609532694590019430080923852109139747915002157569084263618169526862138682599254555086346187921577164101295863105196443659529259313177016254338747968780976368417826867817830294625445136678314759093927532484369508051959867078899311087916210648745036937913223990621686029654752097971359047336146005359270951818936391775592666465026519885707526231509537368795910082874554922439119317235597206141124393076751764581293069042432290204749348848781435788610188331137879419905636445487991667926511356586940932375565039258754137199074365235286403644585466048975286685233622661459538882816844860570119783170607393414311739809300798875436874403144942465262164341631991498955975250442652557220871756729038884148467994790538487550368661427325459823774470224001443782127588852511125128487904728018303347662470099390116499719389371864188365220014005189196039235599467209463703340841332349784864223474254234669826422882999605570534305510999866704622947172896260053669329783679228951010994384625227607301605470115460485086036164137690564429680294425220562993463963369808101806889254900278712576105361567363590529213990380723612720660419963508477531395260881272779599804061704455598117540286428226374659345816024537212842024412422388854830905542102148569519731092931050962434360925588455164378378124839910945140610599690358574140723927590060067979452984033700953487767211698358963817236083822494768363093470887326791994475978341482425151738916871150616192495111905785408841827688444550998055176725785936895689637294787288799184359626694638394693256517538243135807636197885610356293742551758808909332228575177656715174799213300798753830309608566290357724808191868310941211980727093376935035219995009252529583536387843144439748549557145686106174896277808968977068504785213044405078340133958980341269258799673511604994227707850832223191544535516524299645788471567205782228294412709787123497503909123659041773728479222007919021682847015328593863971697542887298079593637232771334682627954296553120010086706494861983859549172454467611674014110625233672682899836813108146597755304424746164637061520314567664408916138931179693526886559288717242330519391926319339076096360548260730559945360049700049341981697825321575593834127870507521094455748800949677625733564473989046053669233849421991300096161914426446790560982388245288403344605761964021779346515546358969343863165230098823493688463646506718480117344566502354879824654346560841504782467152239666342556645867558056095150326073754780063978286050812481202954835756963667683125106896458840941990966525600799514280108285931194050317775869498562438057222264634046822677555216492651569407064725402956349776937850640739643092313558052614835131976744753098633690790796493685430238996839243681696904052912974124064303859962942181289840888519950790733989770670390981285799301207379539202142854679939046420095259998288478180362958149329629735491704538206442178198713206192134425994270464109555130870348745618781502650892742169614403871936172254510782538879083556878798966431736182580743176580214220604313723363221219930304159997515531085843436820931333247814911124842311516747349008426102840219218616746799801674996956282975354966017424587794843933596903391185567062375369624171651343226952171086549938540106750283709063994511127721606740051935242609242309527866967501906670582773398564423815859240675138488628637670361647887587922659052562460478142802863987481317320380123608821362809745536409617591721296141260869035182490976017837780987047681779984260525010494856318126971350591578929907998610151877786225501196801512941641320486969786410695403993254969770496232284587484393141871541375795720713306830607321816887702816887842888687982398980799300045197580870603531141632813745641581465398906770123802358022089132595027208277386422117239135280095063676950457284648286326077701821389951149209291644738840020834641009428628542196931639917913688345169362454905696877993420128125849257877930485670768409350622650419958508064221490210648739083086633570140393690030325383332840645645519361432323388254174115619020542344743364776328521595906642903764960123417072780624960511427395048601410969356941478428838752044368510324808534300894251596341249360002650044787032638246033504166636367860432848793262702304687820969654985659760659373068701615780501215429685176254806417604888952316311902688354670621455722247070120441673690673839206304563983194110648122073636475531303284529470536420457077322285918071811662180438159516742640357512023439007382533281108070637582887255394873392389481007807787559216735299223308775825355539821586343838232282119828896865304324726263020648791685635167621185166332346603286032901403915205400702737505702029026561891501908104690077282167819759299678058765054746568723323406469065628022196619509025310596617440481103192901197412019622997358509552597676876539900788252955090710051342999774955572738250585635965495078894008997175430991264628351990363897370131764336093604009389993682513302047918529683045414809688028643414796306874688558920470491007410739525408050817391094867187677854940292695631598609545466300364407703409386123512205016650816886362520736009463689831292948587840025660739092164609614682169234086268632034567540020654123896850442196148944147713416206456237145101447071808624061703200154610896445096144475485251234083687865624658260171769631983953943463479279381291825254972063337215842534279623295694257099782981647572792790413427255345737861120857284847282541074426692932268097947345376463153520106474700509351017788072610918433845008685791795916703144662419698044274262848235215622729379063876378773958965387040876376182031429782332361774777920866998169478807048893832718078441985358501759145420800243157564884444289084355687227619280325380642530260474142049093900765507891413515559559376854667983541796666123271817125012071851828580587645601431570945656696679725010275654929516637725293105354572383880928945799952472053702115828468699612883526633846751429103379405618789673599974472366257773176369405291177335111116987773201232075822327526081393189416780156043291902935127676864120406777254230633927358730887723637679108053019862082725945406196248217459578884342789500441459166336193432111537628016950177719632931242896717677360106312834426505678962202376210484714213861646148578049675403331522045173767380311781263591663478736356616422495738746441453840841519389069273306449051529240430843519321036143414581456695191846069512764058393266063039052900401268200831124771087378160564579136384019698732604134584323513473121963205683922547619876819941884599316051500280808252762861650944205684675245381524089963078895928901020704086983541595434309311970607303886028704061775836376311973638916199360436607583597298071190948374960108485670367718243676305169540184151546291731451302549164649870670483193734142877287902525641292258788512638085442114679093972560800647786694566016380827847939625586089560878715587227113070598460812306997356754681638020717586297203260878476128610923949239094317293256937393637732136442352465313236682312763899133431312313944503728140070896738132452066725428532480273007584269852924448870964510890590566915661340436483621108101765660001794306418444021638204348855951359946758175550292991133046971537338981146937194474298419949714076501290389965354377095920005026972064992622005900371671804473369828235056477916126869729450243862846916775892335341875420742245371350961260121660455172053843638208239336125519526587609646941801286223030541632349166093458820495755903959627273374850102933177962207880754743068304207936337794199484850884698073785190174604035293072746372503484932896657892514145142365746083562036738032917118651257815488969980519586842190891813797211863157934392145914315300137106477840289109203668174615529388548935848176106360784262473617217909491163756528355361440514783474541701386084887877607537904719087216821498105473218840950833851837372431844782764007196678348678903182745585535675063814987896417525468102051047702599774767918776557461873603711000574269927509437363105533246645307763169624813893206922746418953395700461807729129471960021145497847538611287971157619719151274904804054444724991374268455979333552948239886993812329694632906100971709806856740726709456629540196426369967505815039488125625435634695825234680921339296335023409690276955689868113677958792814002883734326764852800593435828755516066545900154574460076585413106704038288438786157394082023245110408935232029602483807153029860146105045504829777110140389026647479476390064511017789869280732765077241942041581814057840208104422923968308465955260790725831258486066407879169547334463656891925582365480978273589887283536807056782872939509034219681645150021288386314119523074670596436298224820933114322810426494533659974488015986946361017947017725695353691704105898267936658424154820391712117549183945288060336763414002581437232141174226160875750188165722433813027409360200069520932521018843759390508482185259193612975066748150366373373624958635526243445744965428017864314047563846534575531434958733612004001538072444309804562619331258393376073579308321401888630610137892204769825143989975581210617776170506419194655747028328378180852351133192153113581206955804848625633614023150194736442770820949282795679228437335050664496080999454101703211986289020590595050622464874042912804309161930532800462124448508098857958330660897588704816940328215715957546368910795762662723942254653082803242558973541234493619131849064744553906169230228746665518486511220819242395098018485276174459792531711458614516517644042035575922530899798025401373884404338275702271864846398034673636069477726385997046654897379124461667188412958722738357400477457447061853995776204578853782984893834883270484505894460867606250171367710865312666556226531632157258238395878036008313464037029802122021481693370911974045736414604057361145554427999621590052896178833688404420259472350953699976893300848579128491574773548874323402337795194177966134515482648223953824767216121903083946159892178306281485104906411068868374473862736994232223093708840576421926562873565046713842358609183687975055395942414235664127104638081643038528268909677557479937981190980948746687979726186007346153374002985938230332960352916755970687829445526051812201815980765058732323748784092377248377874638775502184771763893473583683883068056335528061480009324232592327674710269036221368520892052865728963034785534710328166029340741188517075441363774765641208111235363782216727678083749092198855651583967925063281318366572796854694165470351002655992146896805414843564094090150349974115421540098415283242710782469491206516213170572950529021485292688138659826308155192678965273450894275698024374245599832681500270409687102702207701489068063059405068189224935254318616778884650715494722531617554755994340549404612195150006220408885498705167658847690287817710904240807204514371309116721759925147962479551594189513814835535548425376033211037668768961390124401016631857992974934749868255063783336928678051706061487020008064717672943757617283515709636744604009903868296733113651123940853531197313054136794124372383141092352789569978902829985102128487249184432093106180338639267030153518693033011598651978200962721324174004540871154189572787978513467011054587352544892785401885102420817559443479038204629170338080852074917606597477952072066262130644182178338231817801250965215364568156206037191955033279607864288065066667556744789208060219474535371098558832265177357701946591654548978579418330522198041635566643639919958608841754768217528659473242531882487424541500040304519929363465597936214423723502203898625973310544391468320834131441688235911279906235506168915926075915628662356760966232683477180674758100661545792539935899874277454882792878565400172242648452534364407478279165833875244453523747683452331681952684658768871691404322231954772380874753218977309752011339073193526019064924381829449811598864810395840990882707897673229645245030183321175102600438219043582747599347992629305752428262948305833413198959246721151925805690978555682234883916414345096560683353322953707962813058247008079489360988454919556724726694415262296888977594710379984228529741711823614502082995800076841858619406340509453391974367188112460716279704196449672269831443508003762212572320139983831435679287956064198355244630080771756397279761520400253866308382014498404275575161906394812321338890664788542949778709319544659068769243887946311359387405523138882654428498395361335867180277005658663396948857352457456761528393074620659411031650302984579284907265632309882147340167007310735306322398267067744893351897428152874606474478530926980261491748187943631046031527298818100088648003605528801483681580234553942111486999719173899731692029018715958328127357546297080804067523538768332250036362630715567156989510308088057904987617499459981549190342217666651200021585687004229608137799002295870695127025349288732421432177262988577567790950034581107540965505705057065003635091185399486554984824016729409050727898970973078932520392670373445457243511769224536886138511118059442115320819069756570652669998724065233545283901488742484380461303636329151506458504705226559953863461038284874198266282724565908299468881696241591252118059610494146186098046408763343805809565087812577496998815916838735142439860468179948897561657778393129754169986281986836132365418894056852453432360339702352434285641930847947716725099506065791178426959819651153849864173018203126054387405063402970220854829243913750528196977514025187459712652309679482296755774132339016568776713169724390120044845289892622487929562076674429979272220023109455218411470024513081318437283610699373743261710813534467444983545339452048639622214884203351202884966454621597169621198359812449798520954654504775335672524285151507302328734239637718601984736093871989604285672172638437292070674511260898760601919143984327885799368301339567083903565863694389588355001143889770330900977489021733872839873040806841576770652451131514866874058141715039819206880245394383273033258922721608628340351497663581643895505833145606131953737673398930690014452243934991036000157774647403447829831838229235249348109071932305677529830531209694729571139814912384254366635471783612142073870616392540598620268217904009301361040347714884328665752006694084025219683679684867699881401573581786122622757690183235014301055739308074412441362588324335227770323757165014451534422356850680610761238183313314786259867516035946718604878960829227291112748107924558851864444390273158228591908310886742353475271272976778545789656912798876563064339079759193780785019557867281623554402356424338601445749420518922329376836402441328698432278806801004508655691755102081640367372567969990742759210229521162819907776538530987800863037915449766823145128888458595315842022222843822588777564329066487268540120992504814189551566219502805303599881352139156585654469896499227088873411658335219463097068955554806721644257074001387632678515020537076234322171909485201111639713595706855225373300106561111088876984186020808279721694856507166775162072147099018486198824000872442766482194324126804732080663792238788278468998310014523650709417176451835334390542571335423577219093525452008640502267188276244294210153478739639809235645422698285106133339698600220399321550483755979920307389989061942316933017622500111052597873709382118384797556911766342954304201474741421499023558558995634379079000589848199929350481207656280501876962386336249057553749740093272038079723197532663016710371964101163472508167519373016303417543832404691397522294963615443898559752931463919934569811949311954716902185058981066026175902287545132956360147979188937261736688422994892178824232099685664199564604495710066490556726296922314289386978719903754462872203180769135758603556961499203019742345368547034697808667368284799384807095227363801248851576482368474973515215169427411433347302204463748000779947897581156219437331819797306168154850791512468084116169603967940598209247864468982440316376500220245312142509638914624208454974316390336848179239577327487354295604990918075239915960309547018718691496743555303642257967136426952681362717476088531261666105241175412394638994639792001941688539060753242468841744634258046882788767702299801379443687250563210889432024808993248986163615405683168130356430741368120105806400036760697214567687183307442931946265557932476862504879058211056816614913785119653785391454014987048720059896561620380954592877012215798709584383583576328121290588701107868373966355816446987178647813475305547174809760093946124253049216329703596552740193941774002332272340420760723525460333923633432422672756411323219720173875677223216764597659267355111558038261869441082867947221430900040197873506340191615643222793418464135303005609494471709776405333148811808785514900339717110389472752836094716867676617333428800318026504193758501408008541684901775122901744810550731017254096038413832134671303785743307564131127467650054491235589343167400198654258145754983466891310333087235457168324041708749778150870822916406510998659049145507379000086759099127981473997461061993260848742288153734949150805628601958699510291196093420613739736926033393705882248584054228275854436048793678942125548431894277485219432223340253349432769044870361956229482149721886620073039765561859844431941520715100429279018702935163865199485407792003514456166919276930161269242354945787640951536621938866580524237711251911246337979781943956406677520332619444909758632853977460599980249266553067163392911859315104239725112845572630026099573147813753900455295572499521461563998144264523386227683775479161241929950936523089832339525548335223375401539751186495926524268049030636529627593168590812815366661800738571912573759877256466670619979789739248630640819705699874340781518243710183832314951950904532891151912177422080509526842051466515955604237381058728295351978812851172792789025806456153650422865209162095492916635691358259092224144695901022934729583030321541311864185165497928178932186793893486774970741035976102544170887778044816831873353034404249010039458323951949866336259172054690867354213316518752451696342100007571324582722261379506565339675538519876467670363955468196861490266312992624082772091284908559530475490502450697945221966603786675062387259407845898263347328755928770328927316196741043078215244375240277362501342462435592509873607930197722061973457860431448970590004056515242779627395670190869698707562077664892788056554497953854144970437614144709699261030312677684786265817523175468398068427132416307991709422479290487457089736099175284282829363451385261072518271574398504301853697715874436433981447634266139056282708125163528438374542623454577135582077106681770663267872374792766644959912676657577874143272297648699280508746802418082277380569823833895903504556998448038041691122738050901694343645625951198198847374949840210944799844385512918542748212218045297147517401039369758681911350173598767818844453059317335525570182539203886791173697232570116758418431097627844077876464922180096441144231688848050623923867262903674526877516459252341577771283831972194343571226341278207364001520437365041594049663802247809035866031952315451154585247395163864013532065024472039228337570602138110109744709130297847665904065152259836377605354095577486071534146381512152174748074272306047033273449483168074863972330266557988456846944096370921025528199107592197997631906394260656461991165373839083093679826429631123401728287214482605262026503525397134058642488278699902624774553686375034633381016337270892983134721887477480545362475107770706436579989086416758573149802611911617162628479046491580750853717285741161152295293455262782063285093630458293195065532237311024823404693557006646698985734693086670401498639186273950939380260416120919577636791430863569097851453230411209702574137991476916896678284144013070782503070296063588352699424059068203532109876553631143591281399572495574720369146251356288978370703383921021268233605037823022259301891123847166459185296115326799621017716627387043785727789644581385400223319055442899578051673620064412007058025644519894145281418771115035290177126829914279199547208250708552310660820848386908083949740414579483097539363430035252318522918190771886365458412333954486164659771469892288176324054918885659832870476113403297189080976755577414780091728953966542586978298136885605846672001334043993286626020031285027456658441931104747410419820334821420764637985884827279796510622203833193419636110230062581455142718408598676744888374549253974844422800992337344608103717261739675640211660403380481430471555194517590632373248905156085206406146275169023507178589807288607321477707523166550066738761432867975811353432288821271295866200576285810354030412208962133356212261107379426906227134500361253982774891316415793621839304578487183813069704151367755092134677726776057058092789258613791870483174798950059605001224548885028496275485842627399105355404651119571490706222778026074665886893209306971668014132162884834277464247694134703695254486966472955133847892445349126841190832909297297890362151792456948801693463026400224560747591495125327086904006649412924155699595960963688169403520549958306471925997497357319267346298568676798448402702501731882330726223595369288299370424877650497270060450125062787829164460692471346659243976527059802824772253431957108089276058255981036523881166314734939375706207508421681481053158765735971208586079680166531048224204345374094599671013063992242070942056108765897991010717682149877871849324341874428330212135402846059259936058847292245234866482598580649233935022016863539608156757775764621585298635006833868384654492114178259438397802454602416112819324523184907043291252389036701971512758519574134712107134647502800798983107842088125686493522256984769627855967777489211933374572537480393906624527641822547536812018721799356146729465600605690082295796983739981438276672327682077584892216734218458233342627025637507168255678602729825895069419618560349139028445450435187774441808608579358353425707690846454631827256405899795378441857967341910351470115562575467582255465424983408177132370774980711388144031673866550438395281263133663548286310527334573206160847093026968015744142992659773276171314815133649450640569551575114134693666932280199511841548990984202899741822083780097866354310844037022022455562295533634755092670580970514113763855600617258349406504702860020927769871451097490773298395294323013360965098427174456227693509810388403245842941889427890660656900858349562956348810772776752710745087980143678935877039187668932518644534174854203084631947564947534055343026026427786389185773797621940264517962372908962544512621321168909713875058140950591969208586334138299975781050666176214969591728202463878353812013000902802686469073666037806644893028762477783558956530377573633375593940183860257117314219833480087359759468739176677765029085424574778465076706709711495876481356106425745306928225106227167203676226041386468824321240906573712627201835656454712834583430150300704938906374253324865505032272339267470014100598238237559880887717970888792534327419108673576110105527232854879521402694569045773748755544453668801197849126148875237196689423044131754188101029214426549775786869174275043376539097439827307393904315554096858970371605208101818917282980862632763752638455769349056274246812812911061469418787484429818550986439407403307218404455591324066707103613981282651869577122049825818541280936559252222175558348812400130539697755759512357911498160488465303637137701264384986858018841460981924693358980941427259478294470211712425822635172806161264894333659175767758037755479298177845352295703463730092724486731919920206364412716824602966605455365310698700571932278130716410058797449322530692277705003471844572016765224868174162378566514223046579054933287083267586402569847671146906588614186752067842065537920069468810999944876310023651568320276006020118529586655258812784004519274757963177163001104713004358537563416272652024151464314439646234861768821483862042734564110211810623533056093370378832397625095364165021221501365062250603080354033107335813038603772492053954142907203063502589957968970246390627421880890654138632670136111482938647987794635721385759944076746933495965625098281676256212014815068050794939410485216143985733266622326544520446987443042156595097664958051042279114234759858323178248901545211317282072174682714207098477680511126345175588926512180946017891835661334306053408806921131305202669056197233548245511624451084586335496084156828408742844606879052655330878873580876699371811464945578714713570389378035458511235160938286093425370253553812953958848727735673887373096708021133830855450377159152275656712018437816873818731194706293363135386341056824997301892544782715962804581789822061515260781490223265470818033939595363973944221707666476676326554598831971158755080595836715897421651259863413159036838708985774902099384112040228907246573057022445433176699994468725498044333426935471568627742624380042646535413955525768436501531226329962970516481983195045105796068423599393498569505082796250801106432849315799004027704247439556260897465722424861740260741897020545936587525937708478829281012749443300947977587022823347035603264155506297749098387557442145878135882592667231360195897786565153764181464233668537181260632189626585714216846069281020953126095916928419759096696642897124708433671129529982242860296542126697315966008277163238427620373672571071284781175596360866399141301856870151615172615361533052014196277742593943727328023795583327659493183989917527352942630004348899866641798709417196350210822560022605839274734815270935165074904354981474273367521937854927380298025813464956637202558670639304639672608363616644176956548025885771758053367956946370230897205760665878775264286411433680318690227278029830522774448596405321760591292238885888747295056599456070581339448035638995241741382226446509815542280511800226701187227771768422655636954218070053749941249614151862109665858212985472428858080657794918288847088700898346555571986025801960709191697614040449395210953149119800973699571474009946457947993259493733277135781841089999083320175546132229502007855698621769596007583522286683585903148206844444409488131060803538257168317828559739605015233944768524795678421254908697092458508365417722175102527175151707328957193678398614811758473095401369470659720888341607268894961391558819720125284767422489613254180229760265223600530160254186633760877894297141377253154186239093924990934456728529769496924115588645899581494913577328750200450018583338376854478224877008767409796876719022935090284028669158748811740423061684308799999732373901046861477009520492914199160721111327679743100914396286814352420082778296882522064829624906454706336395536229471317256422366822062907377388783224249135069226950645945481630304115437684551332546420950797412120965711309811252455313218537708957357300076889551013510610751196350042856656681503597060524681892090411341665444918830662561344528928684970161268986691151650372040483617885676856395779796924102804998504731227018814068173149369411343787811871443323759825869190253754079982561378068032575061824501452370347168454217817494725802158869541409927024653680131810200334153214233194670714893341011721229909646672224689004113025556439550222093635518154983658828269443757302375667305490534503040133502081842559641537621324982976352731461837337709432128976808291031716796991581308387888952904361654420274978718075550591957515962022479506485912305413875041365173715525586282141220193447962759476423189260007581151404928575603052916381575454612630013351345689055591169536754777994221842980713727551964371920929533152209024258758820479589802156329646296699296789889175766594775918842457256638533916996430578014183146919055567644664196471700232975650501698011164702500786758994251249585004533766852626073135260055617442451734641235059582476819750796564658876742179261781625768193867570178289567715087076092593270736196899783067644216018827527006476754135089330013065350847666160345165601576128358783304701392549821936490165457609880742810534305729837158695000341820394462438591994545574512849497273866160737696557455561419902560909635953121464413864869807287308187871570805947133202967969043645021531273871256735448816846830493553451521982831117339273730558852858784701694392784542681376801777266764731198819545044795062646976183194405097822195198343166876360848525641092117564161433791452545235504480459832016783808281865033460398861960961741379532811722211496738263468652112354067057344655210241972761151053102235348760145227188359334267191588803068881521641456855149606278236243831116638343124320896184391512504846639691247120567407687310434164098809552934317566775794916149594852516502952302245482109675971505412263668516386212272527415652372132240483526523330320260215813308143167147060796217685668061702400021102422966578444555707027978151146611193647409678782513912495399547463259903055647221196868800251771973589909512613722439465735952488063713821801314169525873220869093853453749485370583054343561303341457069344270333292950282641477379252044970890568405129378160677395195260537299937624494404521520313028837430970230785986714183682739341988011012603232437217972210957546553278247154270048867081109878556983551184651919032095309533087174689204137373301863339433464319437255515034882664179994959332414791185746252562582350465842472424492971618158144573355970508407154941880479576029975943973440681584711333463209945633076420801112258451725355640675714448823712815966882780023300685420885439472027923564095301862769512780142763711361016489635193743435429269014051711674540006352295210341650867033949012763788875035925159131839341172837364885051814048750881498544034081323130453530607162893041038466565303075791475990665011256092754885264477453777641563185835913853350254472301042707063943745602161210779214493012396661344048368397438995764529009866224899229320637784098733825494153243342892356154615647912600841942189856472419127678163926635716356462685645669561203996433997668321233380203916682763927470837769971712954191115287875071968523360008112718671414461115401328571443291537088397557543301645131632025404333591495645189127795466147536901612596784605194402618476661727569121669987876154326463160043217497012819756373536551701540605587576680105368636217660965271058921393674228203831022656771117001453089594672842575972210718879315921999331539023727172590165882330376333507466326453901062774987582310431901686252131958779374043828760090978694149713755574198368091835979591644652509318638226694295324897571452612172236647308174094086458731183684036771686524862964620865736022828347061775364821504013409193179459422252752804364544869358888024097863545664475054927390805678039654134480435995040430518790369097573443122925344745463939621574273641009089168365071583636656454303108520582138280980463825558959560769586691430323243243727879479018879986029836748411525941844863472779559195354392935458947207903772966742461964414298927362187082196696811072550267270228200702372602763083454638201784974582522312313104714666429914764006425157417253784010052700651532258171428735244197092734183371464785005307737517575998108280714397047986544107499187727557183803339954677812428953088899119697821269829573218509495003364529054748897249607719532457953281415312061857911913058154584449064540342761782459362414435079586523152427749937617405043722731920308387042927450723964410267280472707743572438332718113853375060027025007070197385891139572187452305925966803810994636474039325175029217412922543957847551519511217805318542393998314020098030333721875733922115845923921346935699194870522721567554350996953608483368847714539930361982800294752936286703206773013845757302634120231416601533462943183233932580550737474566567993593228423968400505363350490569624496916116476694371723681291191354013250577752959167609431328497926847204726132434392857716390966731628816051316236465189761808470484666741257379390129910276761296405136275908833094801528292148011006362034220039028094464194948388044785923711768176366075153666848491581406042831049362694958431044032131993789279490863222379351503640442648696590807389987628748330423097165600130627961587693576413461837626264549021354342693082346924690676353473412004291911415794675983637169278195494015910935156068503448564022872913143312111347792696700209824951492466085807652657219861162804636001298704562029859705636258604444840557950570477610209606628924332188888018949314809000984519704795014383223857894674262846644742101654028388128998143329174434722210680154211586704501612429477993547129005033149613970293358457455758582392553438142192598597991196328198599985251275313917486371471225563403982621342958937759909327735000911892070813606706885943280139572647453534582798269020061994792747725424512784037287157603851666763690852364201708281496453778340610798993265837444423826959139269429860943561751160316826619840831841012731379970219517805450261577319929438144516329412933073137009949885625561773321032415465253741395641023155049882537520425354088836973975311549497520793461095477133973328414668069042910612621407889210065934629721186758872905524784181680032436348393510088352587841383651646081658192613809247953227799416489009520034924359196840753198412653587962395187935319697238601112107813908899045783035920632865694746615312118882987773383498950711890453149441174565011835758316947427257785634414782327962580418258423746835753223211229347289969517873137045977147218957298865619792908898449240273809590377370645520124266839373607134896119144169345593117283314240868831231148653336457925207802573554926066970463507057988461941881356888073303996907069860533250599417259533887499749813322945961872456035980660579228503922470765785840348143682042325713850033411518542233375312851468781569306067920038969777347281078945307559441288358625668038365429147021467817595141664288908359576913938891351642529662981337014701080080915775746712945033881674423338062834095496658916292117302009308145261880054431969930395945937189337737172226126090915962249396610691354976446378537807473472834427179614501874199356360161002058046841702863707866158877047009220639707170119753842128232761819450368490364727007987861143649443336196438291052333976440011173249125556239391914008013242671570421895784456683999777435657626168025037903058460675237881290692165624915594855784764741521841934407710767130412642185510274099034148703763582772366475772123083285221844789308009340729986539705395180850028588252392012639368473433879595664816784980502468932675610368282695179835644180034904357323810626186256588689105442027965456709556231984175678468340662323399608204966140692240765992552546367580316626316078002754895443033348139820221382780177809800066729548452949716195358168950368698980907043326189671492852389998657871958036866963435756123090861516880779985848047673904519692546320241321611160902791047580577391848957639835300012220113179944405708802608668972957622771477887112086050167168846039871926513424036457880838683833004886611133075297422963756079944716866881732365760013885881849265615899650883558886363073778017746767571418776506056065577537758981832767184995504073989999943283823396230478750101082360596400287432670103701643851429873205218825917780112514412810720710125586263990595876670000171965288103485016344641779407822446666924774482439417018414681828998628202317825760553987749946035443813929808140673304749950028292969408874670360060875079115006677802091492900629532116918426953000445579067214285858891203322416790181332870565801026906979977889850960657737510147954947735088445094166875288348362020327276433533197543711250049973429663876046319779154825882261572091502427098059611370585495285282196275724994396025275801729591625631978398937347588261892555156715791742407235235151575152984182512263313840494480184203845566171302466650357478074217149518863222017100664666342251084927270467199906055509303786247420215322085788126776777505327570925002051306332223743381832660739853523600785000811014353219173994663716571192272873449218843753484075070172171991743037579410842708765644439679400214453904595696525465833701924177335390805727642259670953260215794316596633078725340439370567817502427961291974337894664996597555592434834673323419445252274645461020151079212650202858636599655041682459314993692138475830358931894692213438354969560770322746446778483623421875273435410006639058632637844533003419924339841528531073162798533539757823958447848667627224577696446630273028708882775732570624815011974366080587997567185967962922924154987781918904111322239640872127379987686668318171667691418353401118103820600767294786164318234794874469226551178781128192402052355449803429566637200923832343737057176289197162680005421254963155776678937233077965475967393111711697424647879826001026609743030856757077991035411882859859082956127641228894444910558084447975464540261117570986799321677926224862417229575950149109427522865180116473765359658301534691007392317499499747324104298715946349001176230186844116689879120552826683305858760171519081650415270119909276893464067480545263059494192795153511057709855277163754013412768498599383850475337770295105885485070876906631344098051488587916991535039419634155276923402037369528583243149923371297589276777541598372208923877150458682875527261331723373595907259426617816913765329335721269083567945605210631545885644393421997767561146557480021757593034029379399367806251817590847928086831643353189953848303525938574893056469523586264386123390956918294758774096198147413103353045963704865305921292249059343958505443849069868829554771832077476973931992588153774892794650625054993892196107892422334418377231761419910976428363476002510804367625947510666522060850395615617601381274249798734634096164487370004956080304838924898074848952181231596099525089462550893518166545842758063666799634398575228045163379412754217443992425641448142773915790851507727328073907976192006183738582577085593501270135488019027641492472969598251874583045952656940786574478210315128656833934965744614045359906502116792350004321598761717167418670905181809725668681972031683539892619577363243632660410759890111662622213261760928971646746107974219068924070343156999923596635221352592563891144452656454828968475445436283007712121380249090422173333676253111257678028203355307499337022338150861558476074596798840877454376421308701875820432370946825896353882007051204077992653773279620311293681529307540426184479371597251645666348326187583001943417203522101871479001731347008671135967467609304190339810979362757895639058229339923633831877980844926037346375965020684988807019920599179053181337488910524516629047964154755476481669489329943766899144692726094484083942413993516994605032982218630984335670222284965491033737712441895992290028005349367141620450132605287779509907434551096032529717742684280659893449293022714843943437884312175112130721251892301126814948395447385617356902800890403866030965807172418787477546399355773229479672221245057063590362416660233369413537035021721924775495611021460836480508051065794911774594231611153894168179178575770716926866713988640551257328380157064117752970505989344975948668117068921531896783434170508919456761107551717712316671174000479966937422127027285627055571056058737650013802493178415746467043626879416577089818075177853480121808364922607979278999450972668811612902651635126340077799840920408035447835246205961925205966825914165616564037667466273942681306222363009688915427330682963659327778451331273862076303697835090606096962619483582271701472602792473647875098252337846603066242441878558652954477735558174192510347694338719471108607616709085634150948100435910348699147553672737580732434241852915561704190743501304089317235549186211450834424701814910408674697777823915215627727560104685510724552892285911073824003039402425986361430229447844727874753575251947677547846338757327549057881626817840617988916408586061337578791324482597561304188847755950068501843686132798859894882304941114794594642909773964160874254394959066335910336469852535735094557031263579600831500247837399083752601007251241198797982373133717909473302536580056985936777328355851910539024660047642586798282165841547775249328179437085439438499574783597585793968876203649579141067097047342163027709230702403182502157502454140244405992479098927768677693947618411163954975710678016935898726581182987110266064451120756416285520074957184795367511343472804826772404579678609836077967536019999593503654646608355134814849516171663753459574843048435897533547152164390714768626807742717820067406042713570592394737445465031947639224728072554635497697610608123655882633037268932204343457962280058180828882212947867003864976771481536213568322202642456144517950538023441482960748530912921625022150424203575798987725738775296333018415615499262563380128752961697881039197981939903062251954140899003073468415063478709917801650686442470446967018826725372389492358775847441388288905003270466459254839748172522799982524441952410094599638717235355695055163264060286876625604240297315500316080409756855349677555448128970570845024780025466995067618479376985503852673421006499334299633338180045881030222880136901861721987627330950429082548952235251319606293134303200534585987889072656346380946461830019801029670747175841404580680733987901921013819398516436080919643959433146401949011534766107962928323584002271921598533719544474062387386432101377343364526288941587911203107177716062203568331069337242338083956695527258694354024934930802622811680758327519605320242151608493407710557149398593293347644538357962436247821302217047742483085536437082881749706945246365227536042389043708072228900676339887444649280907089096204924746256954034606247052293008975188899108212111818030039644062889597162645049344474872043590204242613468832291027752350783784453679044746491655148571490960002378830594232553738589306469532612221854371848268265366134980205699081452118314812859319501715090700619741565149902479446306294573770566740593606997833502119427543001498163699008579127359161864587861551735756825498691069329874101660720618195305870975237328946378720791054676812448690413124781062246842658891037261220028558546387066089104878521678521000751948662218247784391190879741854115117752274650789509025145641869985634556316677293322732090809199613817637838475419340704083327340844361874312129834995132301749681546949875833767013062778919009242266510442975946535895898459175834471310736935699762562020187314158872132137279343865372188565030014029032913322206409881258776541330601222578107155455995635839056047373555554159239141589664058624098111447299219954042395616927388714856256478279047409359945233484015616956560358741309248908111553922024262997027165411176926916065693381259960612085602454437357053669944672177558110811530738805475153509234995497242713815605817894307920090910723428666054074975065344356834696517808871158789342474866526975297597342514521453091026911224672219285038979997365868280710976705055429789560774821676100773442564279424863550263954262752295880665820426748473740083138377080801193782447425819348847198794448980452466462543360786034206244802555862843260541949101249000276533534566449612475553417682029835695011255496755465411782999873858246300330141211019903050216602112859753101255706674208404268698098803289518114764585670910045274015379809981983179759858657670865473478698739232746005941182659190848270517475669098599445730823181130479799966585241258421156548420309896884698271670910944453704858845189282649591461172943548460326006641628871760975883621127273632064815977917649084804799559717331148081332930745495373073997436696009781983059699644198621630783013692896000504945678389657979841187892621424843518204103346586559578218651919261662557790139661439869677159526942959772361206496297352971254323069884031393712233784457972071013445994172642990353038557189300742558556955928079345707040544022373505436229979726801573944710584925999643694590049350276515517309810873510008952083314848969134646712062885554796896499855333824747636799856714557210327606676323490822264087977512624894585796110713506887149084421062286479345780486143967300016450959100411276336895678771782458482065492762535837588144540036117241387095039868815636658392156085747383989142571329204788379746937408337600071770675495190486535119011643328181746787145058054344303788603716168705621701669791104329505637612973630839857289989763781675558741193818398034814371119923349660964066140010817061204632877124470780591746556582703928983406533874904201265158404085884130232654286266998677195051272580854373329061800047485725889010759819591765250075876702328927274683470997990409933756735066469165917744412690777274304405847811592672374652620332081540877325273196402088343848903310923556317395378355817143993097933635697467885126365720485826845939012623252688766098316282897874597162204275955266566872781349470480921433600862195744741404005910879950223803669999802227780922133094725100723008290032203735589045959964519123770074260172886724554424314522519342804635127786258524576286497071573360121007280226931129510828157896483543301652174047461638367086792062788224147993135561221864160791768210277377009317709018557910903139951129623639893565003231532602513651254813912823299788668824290195913479488827029671845199208921100294839185093013709083140149644502747637660448798229237394538399545867373692639857514749273456021328373634950337049239803478941609908657000296486677091088080274480182534139344912963396813123094524307486755144551371881723726207011416653115455262512669122930435730617259545089147295093572650804920539237348762016001305379777143727929315000528543708017663437379386138658829314543341991475293787948666369355844950217912128234927143269122117384735018679361663216544012821103794881938097342711750802724585264749870469884855205450097192509732193252610579795647564157604549257152027282695643713108908455716988996405308277330711262874632092039205965358172603017983836748157888581713611336453450357494084655530317931838768580113761122471495812087672708263842201232070128299759403476263693663741331099825714156337482229219865618910491467316860500651784769712108420512485792537681594437942780044343100416885016118781283047071641596889902343769047430454882004935027144697999427511392943448485738343966663071587377368804105170585553594995488296040915351124522872983669566609893792751338556854523096889422691960268924657504365308711921580838625231420603074288581292014732601033358926890467126556774163565813942178194021359465286430114169818408110463432093412791006236234916095974466256194553751688504039074310740603605746596832988836568380160542855582969850403508228616148763461851734764525920613809924305430983897314593515645384721649155457226723164223080446552747827358435869016421568963642758969004939309291086181029100725461174819114916726045220846942313023083503859013266804751934470999133468666233341387674960124235101475275142769251640527615575924422125783942404626503297216471778201095935383586524141124418035961619842933507730531802102346971451109177403094731846212872004770462992467875974009035067571047514206164611105719786557502156003007911937014320220302395600246559284880151780392677560614960847644652066838880010577981508543655012159546525252597844589891418266099008901671671492798354505546372412082952963255184078987757846077521263932881156638819212619088067473411414442891206859885540320338549432415481465528822636140321571581849542598122127020726359294226641996716193592359263748015778433466595236136133718658015534942653867450887659087508950236926919611205568616155969809819903615129714822265900456668148403787388975819544479882900480294166710293454423862091027462968273140260111741361129168346802571375037140498171943337819207168053032131545636510989675127589198908783862608016139114179178079066787530558436086067598133285810050293230277888644398684441813258642656746553473067125211688480909582933096582266969166237188376319877137126312139457743436877873735213347304026455818517980977856445468289012732061232335483537044445833995182712334244892196070093707775230061582796553283824247526519296141489952428082731273424068130918368913921516727622230434644049630833857895368717290210512454969450117869498141222173461948882609513769778383625934672276516673996291809059542915539498708311696276293527639760960276881835321910981636146828306253991642916025764512828416064163419612671238397030031947984849935169044657178712046731230728034344016638629274482446318764100845427346704785327935625546382606930949948693537381788884993878999150734553142252758430189781396016401416921864083671569040695682496191239196844502013732035856834667308702565544982016926349265626720448549691175004836284028482436997360847780947539307076066630138550507909653078134894238956119930755335618430219964307549387929391575125893527454534874666107320419204614229949266998766379276304063367865551267387872626170321215237882220343189405481452844114236911940052350406601880250278670346910883258133133990984388046846783789962890271693550433076287481588513000286696047402209930627492264379029116968478989442861076733350810756508979770204207012480435932471560952701019926311423174446545519726293259549106838042243706664046403010170366617895109138135118586671613561902851211062451786067904484024960709523786534247972061012049801127727851582024958797276112550571996986194784933888601889311298787679272982715325656652361801834478996346524589446328957530153638086187780469348988257738177671678944638267142737607707175604144637317898881771936587902169479408194902376712412520254808427803063231004925675785910060815067025104851744508993794430276938815138506055465471430701342602662543617302785958251833019622696927886957711737733381951706844777478604197006232739473872870799884737818858115449335596312354727262617169611392185848616460158279278260854521988854328240742436766070885435544378652302761541284983128200899569100565686420295798140091548315596846466360432481414678431951565661259757643813179939981155386777577220047689472274944210395963801686618166968812904219898481019557773587973615430313652235791482362341689586120751991387644248625114614925671370272479377723648420343721702932425923194302218105591486968055164720632085974907278347013680107497755726933794705473371832922295635050644686893489357403178635090403112179370760967401224990129240023460686961735229223402197211926168458681716946818912549342477121436889701383257818767519332099681923212211107942185237533966863916783965578248192154745013239850709009062879711557420669816640407701142527483513833629332279006177789860579662882822153967507013935551473172867872244369433344165621759597081904465677877393772579401035079332682664203978830602053795016781196016392878575413946708148366989122013815890559550175604762303702887840504308557618510606613174280674575536313031390646904840422445429771093453021352270581613385909673754399623198952014702253850054673293626804070369791170307025447239314435752286204045083483505111536620628755897076789401910861658055325469710305729528188412033114072398050179696487484938561480139330683390442292748767014087726645032012531959259794742172556556908323877394727902336691994707437633533479462613904436034680994252699319661141807939771124859792880445176221718325008610905076032205104263890186161657446964494473505194625777269683954765195373853131357212518192208311842324539148468836040949503678887906848081138706844643756680072857735487116813766785751833030234455007040795358271733695498724750116720333441093595186532334676341739543505887535432832926348392961887264734783074969750617695682056955694176369553461086571545865672507288000709435766297913951712259408010219833056208644839966394635126881005318250889146448860195927325933597386720370489849437184651047654162652496806152188155652100688250305608860276805785010549244819796287068264385731986719672360756805502366552333864914064789422020556652020200666672675072866046211726022215678543916200531672307023818229873176285140291252544371248575381781033643410235462499179527983686958031925942215764387009537971875260418739230273608913777491313480277055721249961572432513898042157494465918015133876164985218498564581046454930709142833545424746470025693124492315355153508552779494874113312079502477250579384700442045597896667366603979272999235959480820160160725600110516328119700610348191709993334644161435734595693095281882582199072498427500789106207690613059215833565638370372151447828808633544004105493212802201948297795875614145134558807303708971326724590334005884216720235516559297572053137488374480980119793923592792575918839744926332888733499830942633145909443100859640738240300644045979384895272248202943232572177200577742438250136801077319683923575542843176796155915107424033761160099255089263316694128730537300569822918215905111295699397272687979349097504221977118135091515719909906835353909625349254694154026562265330819697243374697634990761816821424895226471871898433656174466460743815490234001796849691440499509974567900325157945578311375710251667629285280414148199817775532459274427070013059326529259624653032590677243135203443609439286468399815582897638214000039881288902363770162136572611305539668320338986671973454027632230311693979515169813814696359888296633322310316005738874036012019416601736455797535553210347462122451116958767226960331096467071535214877114229779598618453160150018174763072693283763274196825255569471161738438059782959058844962974446454837763842312361153566100236113038512114278037538989496230372739524967212953583444399294467465118902136590463581452254674182455461929505689082479917130287347676505745129048606969800194642621755179346464778155462042553881226813598047734827542697689304824438396598257772319714303643330885097616107585810303820590084911098022016603281880526038428955876636773942090010432491790100357979872201660444198856525658689762503133335378879049521117259219580642357528161456808963976493378902528883549721786737144256690035137721009884380073437243881729165194967329473832163103042013454342671977624550387940606804040141071614081552865335608505957474913422424430235167465223420226140079430460912656516236894085956488199667986719836270838547353959226305989050137909841662686081844224855308065441380256029375649014585575546029707121776713685883878234352642614008710005722832694391561201190280526799791074893099060192932844526815673584094388633083075338973899326922486589644540889474049222827576146487225608993418060273497189897144432878239545931342107195743764876273143928718627132700459730442908675591802322474823729039656140520704843417627471097223223196517044529612990875289727369434665521695509745772492976787752139231434484878091991957344699089261859187509399112270262765616084642975691795533309359464006028522538558953539533216190307133445134658574751586898905066377459777263194756799489200387212487823171605760459176137857014813375694779289842866997571483880172709740076242998410300145824177434144713355445661311324812580306413310787769100269166690729027904304968331138282534774929666650381022959049561709112652731335092213539964629330726451307625595570268500327389759342846460764173870522454187085307409287052589985670932157424803550870766389943065411634684111071296305522288576989458277354410066204429659707774184566282869706875835969145174672981753686165238982083813779763342861991446812849355263892454891651924561825919961129274001019295395319064765800613483725951302702741234567178100904592384695366886867647225664009420873021788202886698490915926670510908861259622862176444005830395466252368361761140748850886837951769802270055498128345850920239806044662465388929922475138475987449007984579772090790272233605884115453253956562148571516511776702050586594418881123715179575855556362439387165539780497615889364684852711700588079767947353875468367185492547824306818425681620328701383945965874035411119208741153404624958611492030042761930540292111092575567361468170199913556434274953973954337367315121069223023266923460391479215676493316891988423085552993961700642931959147017426259035789670471661440033900990376542683810483605586493095159423741002444107698144575167879153198822469518737414772335340617606854461840124406468397533390468092064012075767187355260526783667080657548533701904252466032962693852454644713590308861510562733100118352719226828792980873663647200448990911256510458857163249282367781468443723810741769888800254751726991824727232758340157409495054140733872856212943997709414304604303255630210124520493968736503838324668291762823564469183860715760394383579880251558897545040228545088207863064312852124273105280141741749950065390356064578283924845524700043992752286959676305564113659238003118571825907033219446375843344432586086975352830790836748607442369322640304776401720286694547199513243441234256047460439266172375750519299140545074423292764577626648065002636843644496544208827706171201925082987233382516750060709312781711738267943981699682319929434609514692171754094502170869059570552529119501347051772046023973786934918933498430010413659209005074332416551430979586777950866363040835439604618858942592897307777069343907359791475765738222452998997243901352760818568460960708095429958412663798525239337293124005935194946043855357217578542781047110667254941612909171162709288810661460386361491862707281294846654314408329161754660665378848922451909428682937437258282754115250545047893140319340784196807890426379408305635079543074385544907217343555352483238359285279653334436439499428189842764952631832751085076998262109973135086848249575528974013993012230859562101721309377342920582055807436863484764345186988366956822070629742005339320881989925632629056446917804288528456072135360445701493411545334491849062108886517287767070884960044340519242054393092941031106194929919702612601013776006736499541218954430694645089513534636680367371187669726744346740728464011687020480449817701835064123103123926106111675654821300859707095119132345683006594823643082003231334591070792943258871112021894820071936267624755314949406605657554299112624405995423835155167569820079176061782349973380492885571378393554134961195669736765601656328283211874835108012010607826027158522905508885246722021579150623203847462118305269246145809319655566515286060730836766758114981627608110255575455941123505922817639060175198879427783737495532952655664348065021870275108683094468358803146522722761095394649401815313047859133680757756076621585229957683856243936533191560083928090736285335758008992805852870074208709054435674233770205184744242738132720925179738311031169393256368277071190208104515760580088180933724346862658651506802183075068766367828014410775160523518453986232423972405936536480459197525802868085336539356485030366384047931329797739149158195915324953349215759063409416772695834232533693277600430544048991665080900577396218815737237271529398519013321046857873946214448322718347852755467772270747439103641667357437884413065361591410605176357393728745676954559077068404796287802876610086433155675495677653137621506998207910242099144043893621877921276760880964856866419495333068286780625869990096116458516099296140050295010192429893049713549424856509780959049926376668271206055552826324204438517271531647736510814693188827813663143819329144743028105178824198432768038854897885013729220832431030755683077168032117425870917561899989458806003584746386608141929055395228984864445345369090329338428725508461493009670466282477523775438870045635379275832385890617694575398311528320856175847698066862254534826156569752506408236226922930686188451872219816147180194760633255270274844126187917894855287975847118414971936694199531416657293532114416795556526794185223776517776140919717210013945218429717329929032514080334999041502046968505689912615563239645330192648269135688239502350007798756532525296393455535881255701977364366421330148260206723695196552232048649223137044855325847425901939138153122075986179793074071765923188490082397893319464411142409845637341384595723211100613571834324911436641401880189967108251200541760446975641368374976208642812078782252056550107635462168493782875554902711805374760718251916288650502223018831251616963128258350534816229045050442312163148494187102807678948181765557508119209983858464074501849281400968556612274937318934018465376020654073246990319528277991638119776502810251548269111635871652502740479195797578069383953082366294665862131141948767152872841977856036038393908297701502709488277588881768621155192551178409699984202356630814187215768325543550671207820295443137324106663836133182576445149086543592924202565392904802471967730595732789069481934845271994378510655900078435847714203992088498560612137875767443540806762430844645477529295731499250482485923954724770828730078096862278706028101666887510444199146615687451235751859319155255292250333016193769113344082622772267471221754775200505677296470068794687913347056705825269229602181883837483550739440374424923441117389155646703881519968326637673382042075228095981252329104262395649332463916142707275331115373076667085681500378863166312311938870501560078953622624799566020720050595277135285759712268796154635562941237522874786978906068914171144358711400116643385961731726615561998679262641620962990449587085264791129494819743481353812370965752983018215687968307116670006939518728060750897633452982874907190521548071587012162781846034634225245587860309128114558913482239478916021447167152220672032101058656273804036944024264875692184239084351223772590964957016866222382905499530220087439811569864559459753455889603376917704351780076137353082999866639928271754069216762371810076205417915197708155433053123100528645995611437841434616362490375999465519623087416671000349553629152441187430242610562934088608833289912194384305784174585221186637918708585478550652198777392955848060410329796971462594066691698387725395580875857631225258923200227563543719239017913345924684269274008131371457880797240705676187168673693995969052170559278320135372008380401890874112244461026400136367124651816592975655289876955424392183328037992217776691827684754180021875827435887413641364572382326127712953102746679805377850694644718463956093184517956969457830667339601882414471493282330663406322008131640144539959514532789017307328443437954663850920795929302878951831187085593634451793142676656075209300643611114170316181099815670269095969549018790136242248711804545476738703693096677944114346648684228761183892798217656352179565957567118636817826992168765855462081449504113321637193499284430964790719701116510617469832204717208597518462821412274165242113126009140601160614957626380831732191632347455604476033369271961438979028461355509626215511181396555820068823475937300398656207065626421457370789966882530712265984915797762944072381400479946715586799330341097617806747727265209627775583355072088612569732087822617030884768014170715252199000434092551864539680211514352611735799491736949312472795768311126200419566228283185591041409370374553677972969294574599739983204992824384167359338658552893054883956245060224840948930442338239682384044166454801772843156303864948516161559373398649587191728651560062643821344134003035187810775750682960268998009140096093660922694570928862110553105247397330614604112570316617352414024123302848665637311418271882179976279428415552220777377466530333393772418667920476421863818111547964767809888233996014173515903526934038464036068013132470035758522340609736585832412991323904900344862677624774982881275506423273809330731709034829043301717711834543234858327948865186043128140810359750641339837012017592750530886433507382584192886035710143582381519598246326050691664155509849824383188037605499925067513753064779554996420661310411488386837967648617335436320212603684883622987407684056046146263810405527551707010363369737323701138859716141664233785615128827442645305925334287328057607177003661371057137391047075857282916359871582815896375537200484442230797331815484921093891038518660790799435965425328533536949016897728575051731088828048175818620110694823338473073105376752251500865816286417051813293467679613789477407680958769372292717297329821111987344028086132172421357652015938212092109499896490259933746378487373570300354393311793391109339292831381282667926121139728197226501211086303968176136278095401885213500255908388971258801527684061048731218857874138108466642723068440684282886961263962643164756391626410284475116781197248407883881426082026264467384545046007539987100153375424152918593772614833644970058146902541421740076100321116496440098089198913148296092054014558952078061610708418458014814789272146981914629946031816693241124657484316047981582812305497604023426403496862804408189862404807755711651543319401356717576503687834530088358382675448412226909083358205168656567840663973270717161466613442484131694799549061919625296014841860860417200123310798833343085805758758956588606439178996393525042201930002240530770951879206193982865412289474376225859715257453239306431651191751606100210608273046575290171858599279452698369607737840670921354743784776924999121936380392603554215246121059376833885320457390891035279656877730329568986437830686204988734450094739562718204839956074259932742113552370987280825394916694334920526364924805026532944523708129216641313555568066409512103304719721890803651628421553309681820387847363219867905603753745350476059097026308312552641126739593434601226625963802314954415700921124706231072435622803144559948955031656990497998462399645977224152892882729303465861089031783489304303303155013408504076898831896498874649650166945314895630012617845518675194105973341016620308908457633561811091492879646118364926394512135920271399756144791121210680203752389438960790287347641951162900134092490934172930331541914630474224612908652284576640667889233185857502172438338478766024846312352558042802733459292262316077187335905764218640081822195639745432925754265640401838481384301403493070716437672202055624026006858688121641466097482749659647436582341416465252653234774739539101848236246607945377957733510250177605809890593850170967316765259322054782979650918424967051261967863342119738603179083839765864235159589407730354222926776208765216460544487952974155914516638347057563367815561295259801573948675199969480831805906870632396235801246460538346715669925748143887249417056692155335530677195449070739111792076608061847585048379010859107403593752709529704624134671530340953912143247360825177346652492950155674685536088607827150677583674135718704130284395470387001886809340736837694663067177983875875414230278508726206381765200351519008107423299630450255541000581885439165201909916580203161821128016888001247834138623558955666436476527714247734963328338305556366247464276844278321910292831737957775032764808770179370010105603441294970249321347101710552852287393840231360711338574388547222329852684348503579673593562794909191852064324717150428006641816427663075758888178450092060189099961396244572367273582059402411568134396138934570523733782783054618660640279973207114429499113092246255732839436397428109428927443523807048717687224358718924615742960352944345823269591462386419947470190872785019554594226189827001669946332142149775255683601098404486778762786098329858870306902847060714270023544332476016294447934990898856322818731178250413002339155575629206934525535836209731395565936132548400705513587047354596047552546874623118887766172374167522879354713549863878504326319217111510657449064659577585145459588273505754365955304743467240235619016597877455074630547439903692229761519312724351780221984146186102542479025355055241697620426861696670117972015003801376823293478192049636283899915801522877174298443177055596765290031890809072714338692970449675740369265595271362337073825039705454876460043490187509464031431248954049823569536087590833749682648940114684669047093938457508829615445816222570374745348736182090979173994338321694735582386112280549180565685069868826930428695002848817449190087756008041053401265895318551309376649874508297495971582284744216030401455989894775637595164411616472309966259641722917315695666981109792840787756925266118624873460328021576528579303338740403912087176629527579378766350299418284078606183260324055193281896965646179967049043207183093305422362395729109139039686963086264171241056015622792107236679746855972444361983172613136027940112918022703924162926546799515099499300664040119289787322065790536354613899430632045518202224401074206301432577504519912422128268086728433993629671027151596351157672469594196545113126746574148288372796649545037596403668120277889961524329338252931198108320502448973447324880060549134473675014339675602858041730102724062372449421988231649991590671204671751261734765520622310576118545875548257090805615023612387078186247215670364598933205993925230723203888809467230603813943122040324311116347298520132922015102411104035259264142430739057089746342655177463413111511235134310635722249723368563666686887121985080004171833010349334930417490740950855035289403569054218081804320330779765384766732411958026131106326298689121895391909017916231164846688908802226656224212158848436408268576981842778589398833745265586006447721485827039645010887935334115355415250415889573800889543657419866571984058412118317673581889110155720336714452414535896317287388483559541106962481843361932433575848943194088062237682251124015370863592805975165288521597351235297522107301384316817340627117330494243928413496946660909571628803924254297588927326116939172290571657015752679186801820288152762984297313550052196424531217347359362456334297129320685168100451256404918639234002605949082907220173267648355927699880721452841071383751828587547584501436355256710267276318542404336237338749269941519370612776078410854269019926700076400300364393352993456590664378458598528304327913879189722414820013081058476567843044970451518791747460916900862454920543706346198280019092497058283069492966332043316148464251630961199345371629316189734115827382170086766846412099271957958087749037924991237839463235042824246996682254474185849181177921446895738079068131523279394747340966885502659483633650095606153733540649853563219323984352406471721879792958427318860635739108820918388205483988844924119685244637759024427877946402930524649430295950462078637138563617980357263885853789626230515753377811016128719343691191357728017482962459868696921755058101103364792405173594905296608214934240287489114414085210866571083939715092487976145942146753975323589547384437030492620006589904908995217826708345559369026163312900159749423575881593549058684067249355189085791549144861003124142372419392485560185283359241346474629362045972362220705526796918659993330552285505673883160874073262700904755460235285501038109794168115085395563401901602282410699036505913842373800365001218123839684625602270290454644969479649315406204233301469148431923839417297403617387812662519195763028352830139743744501972229890741559661808106255507364567573667311160672374674759498647333375871382839595271005233933958593335762000806142567104731422761461610516795942873588272884094574859433953432327685191495059200046332982471182841179372891616586366728937832575552396695140132702745593713253848973395489991737876588305214641749123078128068068190747042085243558652906537122547381766107036790521610440815215403745130245634743755886264317224828102941984492879143732382687175567579454987398298304385719042633197359255832985376576807554076758418256137764363449537427722392152348826328960059475035510693773582533715041604708935499580959797534889012201787517551794014381956999779676431718249937706053086263406204345360159997138642825015531299910171325556662912968743622426622855954552051159946670557726799131722463561473419989326603161610903026088225796206167276315974656629400584921082062641435622323138255618722231621429404041547750043364389536189578852599074008411475887116968712366817218502561360677307874454877064596790930010594096882325962154928416731283367136201326033253108100233602711833986430936739788619101930392443728670102726608127163985155790859273971695234033908516478583870818561651235573964685206313623455179175089679890884743720360884564805676940954014867777022390163438323923641309727749996394108961380871154919815645533121875832930405371608124936015794045672635652892168943565206537824679506586515549903467617764259534655508424407217391167933719980726261468169577683027267654944765702350797288248443024669513702156123270168944330228355591107292386888923807731715034395754527335330325797661267653695093604617466515864659003360912390774253426311522363517848687623760999510613804462909350802595090584948353585175591251542975886003975692146902388827419588469482076848956579096280232232954786294325983345850161506880590134814863869878548078092542316593476899520715365352593276524812345075685591532782821181163007742739535470639131377222917771774197917082598156588436255532952518941706903006727964656478253195381291987714114807737138866859149212335547034041064969778002712616594258859917160337041285672409094829131366923321317708494847807849750065345263817803142853401623544921501788367414159499931296459821930785293021562027988123591501579450960279474106321839084370950969587294568204652478254000265604364398999511297877645180941142462621497959423043849946155465990489386270880785414699085880944711511014129769614582519516769231963168348823368428797435718490401752822425412096708062573979606261541942639220373381828342947444114714648675813202340044389212309817660938984562261611400884248125361411776065080168437816119156599393693558731051470072587074393225046228516978781076982572336620676475153968765860110523865615371094782229532182989002300861230011498967728946750562265779819803943769249907757168601178550182475497654322424165888780282979758560694092843858362269536054413528671748284297330756274833297709250744662661259667415045193439448441400971940690238876933250639562261233229966992786185907740417833147313758789660493214670825313713695435701775696585615043030605850976868081853495413207503689825985866977739324732130733959525946983224224102059415665697231374424430686720778709163031960090206089414263331316525769408025981438420931778708217360991052056306787119391813219444912207527284233264210289194404733457926928940772613903480963053763534071756129868956822041735352295077091348790929417965042541314637291970632050569020645427591667085948543184003116590115300042687661210611016345117205838936907834599285891078562541988993271074583460701555045638023261650932618356104525872523860308114165893795693956762476361892806708753754099079804887162713152847717791579281778448920177342656672447950941039660765698960735713531133227759527294865749879203744020930479477021021584911478235327215423585186950999522297242090602885434220416389824730648235945847870526130652329304652101033067610986174951850534130570478101532017719100623027770165830811886791773248002740570155159570224787521682418315946780910243434304612601262312679037620936318852135354323935040124857763076084116702470462915767693098434166725132505681178090318862399646699327978015071269822447202634225510046636278341556621788131586308779925401387094502882062235629371727064163993030506017256942783067101481196170224329855088448717972603515215974907428816903394471421112254648506480531489415301586826245392048833884274618936143081501065465607880032354077456040634009199263345340593078895656137732573454479590174513783237849768560806227862850038414011931046621766728504088536459194990530149102806138246371001507712314379348972648122865277282516614233257606162309201150466745044394222122857053863019093892602234226473404886857095447036805163597727433371757693012856298802218181482660811151881934861700495464483490516817636185026017384011195605946172032517863041345134386622291468942870702516475579181829301980266466731829795181106902876707572045210819977225062095666979741822393628278883327749541827994029351236894296854503583362895802848007598189548713173905464720716867930446915663477812182362205818391918038382459478251602621118034629834063526140161944074760061321644532119757198978337924720706872299107872006572769758952783324271150972058918625572596568158125995203409978988450736963861914729968658038232138186008290493315171201810234747960830091846868825376029519011122107473099634305284051128855730045832895279836186359880051116476660767588598601092051392456121007558632079653223110300664922859731420003997251802529116360742150237828576155168244962678577151368632556207836866821433556138529022634401563011703886336055268797724207059401501533526532679115075835129318345293770817434914326062867725033925235602246526908910034535405873684729628499426400368251707986721782995553276532403568604651855071099072705705689316675792411892712046632299131516960119129431788215700450305648165207251988507004357142670203744134005074505233103737279132557630859165079913479409359756273014296069388166802124864183607872289367635090733274387193497010986440241369580216282650780896069097294664127125537079931049518223301369677231357465184558854334835761409075158485126196904231955749302128423595951235722187167456515544918231285688055814846090834720654387131875335572328159444456701692190786882490628964556901765469213654606612528890323976793872039624483461607404322349275611053686374200352711149779118832083493294507254508474158141618044666453371192691666677557314357111316775391404727681843917325005355982966228042541940338364585748339843166042779242506097512517348117348460219027336351965081901894196309076627104184860730652396322502501145700594521289617855978128086361686411569328485513691348503499977729816493070488681565596872810439386368841060060770830689362903300763990132293641264796303675950380329982964307577426801002951038736132190505782368249884407326339703157489477642753337435671068256683230823240061060537188355916429152489546463997016850509393779990103007528567525877158365329153355970315171525205308186369577519087996533605835709198671796820138244819282704496805106235045724054442972762207971918148680306145999342191874311035711735505676698974391183260127784733039884896604529962871970991301020148314582830269929103042534980679816997894980321534347232549876842665443993515481764364329158865162501973821503354621308431264618590295188121924581023115895683120625719158515842982600223497619923914261934363408697546799760398551951151549212036125691847124997692527604413851512755382774129384565647994190169047271728413528751398677098616327881011828544734457914180607745061868648372101814779419268727232862990954850741633018788359305488064243167676430715307686319443743716573948536454938160419545191507371401667578777919778681233879575348340705348400805528087364156224464077838828183115761478822544606063691341208078077635436011214969016336510829630852620151127917414287786926943150538233175951778790737742087608300088158862955052702435022901126686254469774765375602645895096717221227399043887011948458029324278495639687132912963964327756008456385787712794636722382531105660038743058156429503603704301238084693865632856429609849725290842591122317940798233018761162308482755979370383636042746740738681566379988859195861564660072254407024826194114875833365596835040796831047689539318799834669505085486725252134917841570984612403841420569896155243966883100593850496386023200631873273137391359557484480648511876986260048896015020720092907479355739477813548388249923983417663766964045672468546884802843065111596168386071096593472797354109454182734444958734882250046314896906816886749167795120661719904009391018064071919118366999015997435572067450085048965774632797714141619648702662911335809766750511135925044816563802084482424425852172712612654849241032400419303978112773105130088694773606471829857143209623033265337831809674276048537502148403988162035220151350657592142046271692807381439532742812991370387073053292512272365629151200411665678384780974002298721266454428851703120784200268255347778532847040958694234001848306249432269096696654608020006418483062848838797677596480094447525803117685480525077221670640203674791882988178918177636142898755787061590614785094751500663904138834508877438213710052137215633732633855410136940615881763121432183973240581915597252028041469842736623929273992702302837874384295843944323862578948492116151364349273826070097720288201902999506116259746101626283218160069773347907107750530295989564998299959572389622310064524274816026174291181613729391647777391394480855777178802682780596051270628233203896530637063394385392201345683531748821303324392120706662740412182078754378383780037956028905733098000370694552321995002877979387368795462269924651932108255506129471870930204546315746562813889684562806979554061297854603349802703629847454459346929295454231628730194215743199801268295005653207231726566876969775632271079460301623506012092466586241143495375252312917088282103668149929093537492809414986248087206467657143836304804041570101642432815683659997464189206120615754765845202739057545297626730704404147103812836987398701288423210235954070361265932929773048238839406618827195932516129331796320931897666816324282809624054644370637085780669655050993880647667230179193690741850372140450146728075931325656492958945277444786322175059141771477187579593186663031672617923197462252702509350553026747714338897489764223335447181697665622603423958975931060229791960528911805216542569082080571672165454715836583567033427416037711099610977714077041696712887926475464362225220803702904423525712502058630155296457071176850264234680700979625114722614195046648868197960847574938353426412343849080617371139421342613487574689121315455209436285852236013551245060837257213401076293639530929608600878430313069329356183143897216462899772521150290690294848836855056744180180608109279802275640171665754409764685409871354028584654098861175364888217725454274352388042914506447528105932264250520556529661589293447658402271181546242994100711670135717613986766985491098762077107722725627386343430236413855686641727271612991826537366393548099912653513810739920125033370602396714595085289625621435715360495934390823370668319392473361136916076208916596359535712947152272028232754174762636501852268394588081023556316835103902554347554369459250719618429996356799417638195771339697432633869707040589825330568994256104269297458835151686958876397069539223951747159620476114202928620922462376805389194664149529721311842808575380743975343798751449600408350977086681698855709106165885533501909585076603884750211844806335379058403451919280687843017451592205552487778960792033813382573300834141627395750959768409296859527130303097606732451889776694217854776712625071591665891911297278147870747059167531290519943570050366728767713836500486036332513949792360343381312357653407101917312803153849509424529816219415511799951980079002792269506111142073152474971230000108539794786087206125815865885047283783881652091121255490551311080637540317913360839795296260787389481365387104115295723103166787229831142018973047943561692776313799676550627270200264064053252107427625467518488079202394468284440441819073451652922040913131447007329429267293024099537055106677293259614999601023387312430981427946714601720297217422956272066873748593234099836922358056860538157514902059035388823520657330370217658139168874785541552964125203418205885159340107099927342794273034846630303992960656186555184210416344773825985289490341503919932195878004466819381779600340112660686572084509615215323124295538680825096718001110038854186308590965394336968825326770263279411517059201002652348195550508968489474263662209317912560118203841174497136202355610173803828445119448753679876209500226857764800302535939854159111690059551790490765008696123746448671600904493959779103292269135285731067335722255220569674027033921558794103762179972625236501017669357002037144233789053861399854566879378968908654726275672889307498359925289348569212312228682050373112990605896205853279228052665855937528558980070115970225963773281960679131842516486779931644455811353560583406074499693260307709917433692189957819758864967152762373855471117855057125321234504671134769192856737347260003558025131060147627369003858558145820442781905678559892860988123021950070763357989429418399099505090566011453782843253054738491316847018165596094427411551207841920787207827804835393080374322517340115032074901855878535549476914065757218264002721100002036094404750379586360358504357892136944617943511331824898228377594850795146794532452354275646958567708480442898558533504114816555999343764717637056172161128419965211058526468264006115882194018726766264631778332835661650148071841636281356061930463230144579868772694717762219993028379644939213821626891600583612400839696171206864453617481156768828333249923783491016350186673768717252230577815523205151708996614135246536709592569199808497270403655417164435937928403005168217238462293574971486346994489737632558948817524530076290331949304723919508763917043748571220857652351914735012623410431082521635223553462148477394885836821891856335380914000539167741311754309176180080902181717166314948962806707398703999741947843472133161738507252685301214913158281221829540654532469587502783164541518837269851630819665876224976651044974814634960574406930669898968417049679699840743217628572521463256437327494520788915505667296368294715511167172778462528153442462247830302597222629483422502272915067780423793126370537589506595802461270814261693335418854750163419989341099937681899808678313544623203523200590972204111765610453300803119491694590846619014146952370887155872315597060713867225704225298137740735812578008821024780428249218545448153238235122186003131817651156026680189207164681936981055407907818400733838966334184877540979067669199789616753041852228116941594933250933245519411482667699606360526611714279124131401733464875729227959637061584011860800865630236822878175944625171407789610441564922113158703389005897732810598401573122466548013462767471405632394487274431054032604251849703194204538823306422960462720059100966090418294230792735169995486570680296243832780054856307413953585625775777136762000673481443892336689454153666972575893565269468022348825986459010746888314983059478792709966363909497901714079343111706442544304959582749511452887300769690445367038262991391632263009727992871262375319822733103227118329561237506445631860136808435608925983800128951798161202259693289034963739404474560117480593626101764507923219051536547082287399915992517546108542979284112555585971934966678406268846162787181058791586791970776655707031448265717343377134621214675502225485833361630755006437643847415534417803233304592518937413644855012722453189264215554533158123194383278875724645324266108012176067162910207277934967558284395930914687799469112024829507238892323799660225431042956422111912127338927733631865386898459967986479058188198967422840022031424973418852237611997222171700589085435177143190734473698905132531192195437183272159554351901233861494096293157160951602600715984769676767159705863250716637031747191515909231656719264771312447969964856647022739719696587579507273993025451908306923693907643698465743830723640159831574686030818295089914910311686171467939585035027034808566725186635916698897481809095193520947957224897044005225791417701038589758709296823865051702177173028736566193033212905272882694073549340469039772864487929237415091466951558436205856353352502183392712392279340868190748465900227537542612935620406530466803072973373134086358384658426783446380358680023460821599462338603478454416260901814877276226824744281816498636209744060185071567640900167854684770404315996527770113551196544074453576128412185115128266445659728603513576357676446560621527818947452864331115519827208446994705588267402526174998892485608673932367199765454130222265302026381023955441800854748132564534283621009434503184026910811508557936499525969586678652985309588455902375736597325722311646752094853461832067938628937612367559594103619936172183422076752992160550972880717684575536897367156787049354200635145950809374322808572995422486407539547549541078318124803897165186410407629389211619386627338874491491393763747434787222278281102191787576026788397766112935416808793975677373373625501832860526450109896334098355351257951873178116364646241579367270561410302710627174749320526048863420865846309898807216950997136945894455406742941517178649510569914370993122493338167209507548762653467428809466435173019032853393340462978743516874040496446372945935363201887393755039498608280198049355224316014393066831595746014677101590778267321729766881436984707216220500456350519114002464777835252768000946510238559073771641051798010254905986250657394027598917770031843271935483027729886588293200674002175590504931068272966416363257137827941467043323992689794039136480582058548085410100085144692468206295582998953679123510082431575234167218532241393150771222117746801917703121212356925528111381854136569148600180571710342672928495541901587212277680892742461748994403723982252790699936627996293598104894512299548923631587036569288504011430932232706234726719982082331161174222469865947774537098873695188234072822796164620047737766946340675670236123182274179910126292847644508385129324744377742414368743042936100676271682041260333058323854131959963952669534063291907535497057490199298516353751306401964416738844542511152059639702786891150533633326846654809381208884603500233800647705983368110787268843642650431256987593949581734780613212425282545674163715382588078388658001293734944705131286599596657775288050808478202839214070081557643434889111668515836734426642511826174889121251074132177732129111647004723318963977599157579906829319203397695200009311525934032450938358617849598224491764029790308191647948156706202584554641270697066304795271028974864240409628335708581442257559917632292832054785600013633614444507920292170694563268130213222336565752499539660777789124702809758520666972109314614996783762987746006225646583230206638456769152230282309583475369117731105357114630845722209019085374478405452484858813169433977372758954312034566875360234181639912884527559506396023410612218157664008220139092188114384764714625903958762738237569803328330242039237514646844617601457763996631078483370825332295614126017916575495977646975919809739314312523317097477024961463804206539180320993462470372694109255405671248774872448218419302603357590014736992618220458522727855371376507421470602775387117906987056445171416643575095695360477325058337047444401988228261261472913538550834093286535288413123717741106442435380950101615586084450289083049180264442802177243550934025131447926376424923662485168821366729664958737970813256711662853111116818831583339970437960223502135984582601238388283297406992118142002670777002773532765681372401493168593138096704955888985249052938689754223268338521867130575292087242694952791291421499879116500029190657115547612783614139711786111526553515259967572498656526785647324183273670501910491359475893145419402251806658683309274521494703530114701953013048655844277154938245876023028566836253068805524204335361360227663980740317182476742333456173416383112022013481300426678846333584233476206174995574342081199607223013821014762315872241551743406361802717496547148229917959535035385112732584041388474058628684096402457447974782112262450561587221042514444743254311092409751588773338674407317102236611544972026194885858470933566177267733629760782918909329419517125762345614871114495598804998476875665891237405923874500380909138705789292954038465988906411205310216787412683612212159343586127495632719412906667884144124251939898563133485066789260999925857194990975637634921189942290323528896549892334018914336416363124180424888104102664975193103992512915336641757852759486825119055198400319410034471583128853192428001122230864820873414953944280184294256821919605836312970187000659278219138911630426499555455900951682954748801821847633484945634926704691985995271342942885795629712219155122344327557237285903727141346673036495283624256905337037722552887824537843533889251042643109995180970294489514666518339533868303564214971587840978368942956673351966571938839961462219010398643009983568588475257752223147037013881750043841484378573990474784103482013102352561375500830635165316531120059763343338502838241550572024774816455901190009198047117155617052959454786758814588371656029715671241391942302487931175108526862162834974600245101042318616756769529637345675369156818393326721613962441856696831755675806638433434985514276390647997496478751889782020751688179288129305788702532494380743634677552533330694374477573735492530635201395591638954240057333111253166861821969396848917528716778952751098793765311246183399074045161417892356972468314351768110084465898418194267593240458374378300762625118422660540390728249000668713120271387370509426969553091586782413983609817104709186593253220062957481107093404719631259434904748269468013024775884987589467149613080983242164060497519585065887505270633106952652104217887479501648342831282914776739333994984730185118699562616650292274574201423418425367700301933428809651775956576507861126661201053797718966665030829099301681213312310331173533749614807680487676420141112955363478446094038036561910357812592414049194847219625241918747057907168348609000631426051672314155054544051636861851390717598326816076670687034956626325260667193873918720834070681142790481565965167561966152657093795015670459393642335949198623961872313602643307784702884357717092637494227245289264724520242067833445374334966904684875031893138591838096331157301619114248988551782059872632547799770905417828484447562483433994953301914124647092638484138901982300867111176298418267174324436622697944610136024562361936802325606210629258243896173844743762136729747905317057416315157265096954603457326243205994676982598619007665082928759776719191245067159443529225204842445181762753407579438002514903379263089982505656763201317158686058910851061324099077486589247416259546870622640408663303161557305339998169672881181638797815348795955800915166651636962146370459341878506958777853909696272925024942179937269430363644288948529590795791131824357997192475148173713206495954454742285852303533724584211134767919955934409485918728323807991244459616358677351876536764438320073724487167358657981061468590548282683141427766749798799355914382150202106582364445441331732796005325027497863059494873749543950629755528654861620508419923072228664731854970774021896766802622046736240827199469451964279801057827873524085272588923491593934418551268226632456999537282432239688879818495988603559050468067516133402311245288796259501205541678713829039630527629539076684406948639064718829369880195863643142267573633683297010455486040652033930485163021301201873253644956800728399800219181576595526488098920315828717328531540139389487272014026615954684710296693957146409743290319841811193697809864543190738103316896853768294326405907288342780945583250377528952385864004040171761239102537928450711937883628656260984953795657992369921419609645471388875003686342292404111514028062719389140381235156810297165110722500587825875696077782300706140047064705929346529053610123172217472436920885271780706073292220803126630447858500372341391185539799356087293092346309452887924072392077450778564715426493597874312189438660805724833036105389828292692511874258121816979664702199792894110916221962541245356067721767345758143428976855466345988113400692831541082605026546829880963682809819395270951235703607715091743413262325384454756582748565986607618884728052978541543532203111460350818313315538532444091151838674450382469924703505153818081051014516531104196167557975745672143576840848552056747984645207099956868572853612451864475893439203239334431212890136226518299009183347000652023257482378791492567897026807432740512317255759306940966991843820160321597727736481012536615612396115586837783710692792713996814621922947846843077558978897644186615899184834661374912189631389819862466341727894318089626227577924876986667093881151707880827753811902508814797077691794498879432361930299782978816464966014333416341511498335045247775327094072477262974351439007170481726828342157046386875363579993922282558468536115736434899362997915325040268368394238741086618881010851030769823903971201729985626113353242446668211173217680725638611052565724521315295792379000090070607211346574622573016004980303053310203230032198790557369053549659611623779398172160966699213779688990294420125233938250319694739071675894994100425812118648839871509804886873917947031806033616794887956179793458554375970948075051288738364703035720280468248336913008741656113033096362820787214561347891445437116604756939699335686015785250632802507673595068406544139696186639870645875868110886543388339695223404214775009782179949114815521488137645600180024871827222751760267582911418994648328980036080101659888581159954036247777214468538005105985298887302610280735958624929192043248648609138086894242392818259111140797647933825441085664569054857335662708627771293665465059651429865864389599989642087984502373470190690257016953800292666482515066735212722075934472425846032822336756065586025300073960201129916215992260235011104942046847608113931189088367130392726584738941810075939878261057211944023293480469717840070075903227765858424903841788547082002407456005239999528283344568824612024863079395201270755333109297929178911095665118860421505231987988471848992485355214180774194897275168048987793229846034315918682055703561933160318483377049349566725835207760871009218307486558643921168033386380235048853173133156368993048859682197969235905301161997456610104944495926989399388937145775883630167031664128878432686384554155444547649316502105930705606180499145110244192145913403342742319127816514788743171539808999734035529121543904325050507609455770686896846110948558870582948633464517134238450562730794323319064512523934553922369660119571321247739887564144545706612797886397455412697628275943131063892390350526979645766176747620915538996113652716065730855156002545390636717887521739961779431580495257059298602422329204966806939813416277397865424736194217051040101622894896043761062561227123876153219502059177438854847519739008403961852902144881252878695136490617528598253186267983962118194472068628815278800828424811784795023161473615375627259503592019358259692486088678208527483425482411458876593347671613034968998567838538044562429346392400333561388447095051022675833980800417078551004586360889405438525900137798626563067822339907703187057996012382361051723918720811174090231272732012515636033654671124697140602659966069811244504789962539793309136143456146801266007076209683242698049263920925677208238060078345966108634390123249497352132712147161507909741352905038938192396430922754908601824906671918806659958642312659229648439207572262455865502024214343332794094131558484229147454306255583410918850262565917050279168631961059556243311590787517164210782756306320348383754973142544355628272142283515598876577056438818325510758341842757407594445829101201210913615497670311709998282154921527649422650113606166314721945981969148434965793962641842519963611391056857176235651615823597772991467075971130875399937337322741022761400979145155362464549506577121594725950178063504990957592529974722148219712595749160543317671963331552609787278776099702881156541538564183628208792201167807755466987097894199856726113216697668412393656211300014477992838764256710425291751026162513288985232451794574168421409839789472463091540095709519812519509800076485949895151146033302145014747431851820710951157973271509601906125806403808503450838945204085994148404502930267404983778809886783485004636642104118984394560013491397765742397340145446825318965114190811164967897953571755191798249294117274177475682441758967683410293902626993899365714303816175173084704478577410567952353900925217031266210734071140329658144636502441217480365877995568147721425419281494702218629780964358266350018578010624604338041756964712393270769442473652965098861535497516198854757427860421184723762508822870529887646137408173777766037054238504830949984886709436749635244950229536216455521234433463965431924997482181700124327577385452845424906295703933156545468996891955412953151678480158469233245454150144633073698516098361604771505055147347892279675900594772666948590086654735098164723978724095265095914219456111796048641815009542459534347107835317213642734998612962998063365312374867301543394755540195524604027407418357574449642311077486232284044501427854162000979518624209251150974008188096213080675343341322073531767188756287467366186879599996516969201465741366006060698613822945435254659732517161970379079823422625209803985503813409838794681536107927225202701927897343568203844596224995912181290978917799909711173111291738780880109108826063124332220687448312582769389834732049010086670151215450537461422278392791527124882346963252687867329121118337682327982123749916053816457061368076711017368048895341559110406230095395844611926170237107427494879517735473995267223155769336684093749533430171185564619690345256077832708060653066329729282695254745625669665485643350424450209616971245035389772113068028644351936168145788008657680659071166096634051843708315924129418340692904996494668813307765514125449415799592255932240988869246061646737090841422096946686801671054961580109652811834585974580597992650488886043261954481782867404473668483770692077455862698883849986641476787466201300200399967036837855306126965972581467596200102441630307745902019328429307168008143021137407693094976420882720139660309522411811798326599844458446960585434932043655924869838972778782437177714301363454522751923552839650118838464729061479493321405427863999723231023570157932608043768657348316298703261148569102058242829905197105458641099343032455085931249136118546464051045072681820470358565145945517481311703579051131776136398323843439285309360508806763407233387537517030210663880570346770580590563270388451853104427543019420165832681743245982678000243431378615701548917776673773340501778060382749785011613158407618048807063521680912969242494685862074273209648321148791577495796139896896723952351355028413895140973699424308630550455150120289933920670007808415445925143594470535528997982603201510965223090409969779971301561145509380183942867285753683155543615521950094950160915411186881558582300646597148734520477603429076217123303762400628570545840942745663047639403151662809954624885300560668571289657815714426964638652236743980489793714429882859517662223661291104185264009161825814440968148108763847770807802237104612794685457394307105375575949989427226333765899763371627931423686139304051538782315256564231564836632686700519813357171808255283868023799684972263605628909377364544179119409236959324795631322146616564034291926211816665938109688968445422947668778192014844941615994762797880598830902538646014200146568826499362738487837729383263672746119503369876199731019758075699804960711543787890660377091357538439245090423731537499923312721377311951926017495682979443270063204447600981702683941158197290366802576849384695920917449755491848545636386585699367906171057504929999626160723597924685360540760294451027840897464973532717128380067556160919931472856237570796640599294003609220883155500258664555226344712767095025397268058832062457281873905166841313486509794994925215423088588159300449104542665734547893843944387624664186684311849146973140010465904749656308911505467936997776116372810235020701924396625683050464323853110102331570376441607248997562620839586125287630775691655714128936377709319995204191811241354967795037313037779923773828684995530592993126637699434161741841101313875871472232689424166528939278369975937989553670309729890777247310483796535935728213922735329948441652049569045706925596387347998940352098493225571310341075965013173163315376350330559374963177837872913771746298533698641463862372107185167641908273982243262221980781981629310656114538166564188911198865667927235845880892706804357858533698668729627061529324463812230052711010200280777808900881841506329739452957088934881035514606477772745438123606342241384593416810818692231685349131685046254273836835982607777064536887439017897265186225618288850632632189707110199629794896621404856769827735352387079466376651978033459462319968562854418154553466092055237080325856294340905919130208713986908898986953840005729098377715849564276300076839680639073990526662943615251089187771766389286562076238756998882532785897480750375915244093372568837998850571743230513324623053235771552896300727469367410342469270317123344808976459488898769157904037572391056256118689089432809459396669954073287845561745776492705037710451489026251494133109448366123806706332221087995710331577140065171150624874227867790207933680043990106300772499267816399119359168702764890591982555154349592782153742114442265455603403388207593586841492167370235528368052890703455430434181388117698544856697694077828379314769802959415773711533812050554808692247946535418068676360333041312306484589242706843016572813586736554421080265184306682827671542382121687420927384250372057742940680139312844044468947010487248197173151759191449471144882336549095706534248941287856592091597319176859919081660646336921271831871480457423408783738449017463796006362606290256355055031267713518097200200723640706794765618596827403806592227491854703551619434355933391506666856253743940013229467108888278474326857052999745138943770863195926526969463055043514657960803647488602649397636429306646056878479700635356860153725652305707632512658878987162511131723947143127164651987369291174862462315501936475627874487966902020871290608651420107333155307439335439200882813111507871341655053896406039272242246213018148143964614310076821100294414453078122819870865593028508711878955949999600415364579152446502168617627597971253604165879006403350316365392935018406101029998141705405805783448396743813672335173761957759341131537921332298437635246557679005796483910136860864492416713213719058092490244520613404552072910676976752678641259700623401987004748458536481419615625605228800680907952295878581135139064370789415758537674343114369995798962897104495568508963907068593950049304711605988055650624765919791153091515997364593390205979708374299953601435485616289815091595896687795687624214849311760938026961788300669305923461054637192719274654265727155183829417904915378397232484708352986074826953627600906450591205580156615492100257277638428555297949679226339568066859455081164828327748552097630020593060052705896729561578360607508773320695318218223330360898699368553949229414644692883464440033161066836983203502883032325258838052831690448574149196162877126785310206285153312643955936162568612059907549637377356846959900771853882663262570972763735806996989064548954210707923421861800807146374714355087560030519767218159130380624647654034113989660691170831967197548867149572530584104480668920513159635216685344400893393248195504945683888095017596092061223821031585103130338158900219564796029554991554625825140615775034622203003261415056747347201254837225108750956469198008127065583705315941031480392918895718722316884387545426621154941058708186649072917737204371348862058037097652585836834774100209020938914268804167799117378467972873525956076685626254568930810161115736977477476784486416046320545008006410141526253887585729571009734075953168996126006633919924577970903611462224671086672945888095664272981993908055376013336655006668151884982212187164655550025282484335249407922848901681111022605672312098005940720149767749765296765344613338016092650724521160960716769248982045003528036041832148269147285976089891309295666413907081810878822630831851295419716660775905105204333354541015579867508723796547458740423940754122492021093251896798988903004131130408681397303069146887703948952729812629705492847862513759436718858451721098300191919667452121304257491983372742234755833588545801571279192464960278234292190126220839095428584201270325223763985003265299007837284699664031112423745241062034007481905209014073172363580421920224518500502683207999642670270234678991275462202525443659371619030185114839739551979753044927321062597210901773082661167079400789856127430863124046860071982869534997085536814349065918986301541613842928328284683538732233051098205647927015665511046411290368359740557630727064432379915953111424523581398138778135182827521578256932643526010385262189974982902904083114488317899702481283570595743672821360695043149596854875002631291994697291473359020890474629749862729242660113321144902034381170098867392177943476121890227927978510557516194040332577787446792952656095216893407846807802602225967182113301883348646535292331691258674428822102733037360616906832872671836393286643007006268219401616214880302242233270205710874370325680312748092304369933745933451373554734347009644951560198488587626182914307079917072690353343215802958349492895693391985422219032002278071094882426160085567838373066434799554043911455902424581163360141321336579274128014076344657140907113470967663204722015985903504664895587151401802852709735084648770434786816118723721005641754942851961621256471705581535473854614188444735036186875040356488485221554900170146361045074385145370762962747993704151173821560931233229511448026542887491101205417718479292304496722486030100741262353929818940664210151237070432825921587780982410046433149153646081793303727067170450938903419698594734726371234111066329724969170140277263564393659219404933155354199385825209928918330718960006230381379475042029842589433148007953054383922065639432716632235230904771396864079845870097657497878592585785472583305900745894022498789834595292727554606311074901986007542348651429992099225756513319958546091917015318737843471201579161761086883896246188266576699025851443003963084893140096704058096926065388118925888730591345492907575854704944153315832355573746672397305197098110815125705897362621599145430272511202899813401301192106307219626963379043499524708907294515786788224725608789447528636800043626665075302956209562870736892648386374249586396640535864692976594031673261426257099585587519579996257105152492117938901900500126356501262757979476277396204012594872178825881184570059259266697650419294596472885664577742848461341016845235699893355312979800137651758387259292995265362471084878810071585540012858893964463969529821449829357571395705542275634590119807492072703074044243829678942720086471800277475856886350660271838604320118983046037898152740996169137883161459509209526752679649643173786153652887142956909940148432242872918006661224957241347118023921423765413904118205402020986245228587872155284000671497568973195905689074992779903341601812687829388909623846369056725771626398529166051470643897038531775060716520511301445181755737208994453165794209950952249103641102951228097260548524813777198566447138487091388071761466509119848313768372273163815905162467801366778607804111550860541177027314090468592714364284733449536556949171586906480395107495232630284542063585484636551782875039979281893292164218918344018656878239822656673026291067607144075781423918838632797844077976236682841966794764165355253360053892789437099220584540800792521178129701135122007982997835757801052818455174001147777072707216600840078484433107188089354262635004781840014106844184914156515017690187773922455880814465091882163280479187841512431540578265316296729565172845188442698720405811684082979805265930935888808596428910908159554120107792165414362081593903675629544018083422550259080226768857859287463128101113721331546121521749197439217013405052998121959469689476117616737105689050947726699095192680652806468318000224898893057721813898886375792321726058857655364731771252556345590301558260290910476033930153085757072839969811849295225513042553190924234214649571877068429320961816653687202387341589040044189694420710415852773883685643365350968862203377684544195342737624481713921299606092107711774539085561353658631025009611878587059768376152020570855464756619374519042076952403697087131875836360159535612840221067535627240758155141865659486242711220744047620199851835613346213647062804160339853800367095603183163747814470062350271459679934683993187073584989259650950241730526711453911707427612827979675357879500144443121532542249475692009238819221786795451035721122441718256372622824217409639691029421735248098934054404353243272826491033736391669514786414503981934461541678626617860728272392881179151770285496480654997390421774065304382643084612578324939839287331290319186826550320041942693285365815826502567785128259560324350596444979938986120134625365166789595118024113323304106617032814600119030142949269218580410902770413339407644753811309510850749100197473068086486282863899374201814883622746699582834712489800370057298529037874626249080953077049377483222666177333461048502453177882303369882051729312624670922240845310777788552554939972713160239954857439685092185360237037519551794260340140415344354679448585232960481162868096795879198898426933883307002672840455533045989771568042876176994628361889166544495573369202587246868096375262035781740020228899270052133458872956369894688308691169286381998805041520055103496479233440481464896092275020761418581223218338061668574921691795340460356915864707950374885296548741991146365421510026519353244997450830023153780665291740550060430999469227373408751152824823679224465980117179955205040731916674502276000321669700838080431673365834036667396554755436231246513917547590601472387687724123393865196349816324351448311426466996511335983414005364795101224811731514267959872261745115640641138955434889820399439906604584027022404684100249739324127829764439291245544417537439329816903483749037460175454236816137188293953348395859966907840037206777744134488970434206136642855174415328966658736056695834065360318357148860709546282990842397354405711783102924979080006995252202608607679632894238929479658135915390251064412174090231539373242941203331966134913759157742007861060146722041913274779799713575545465481066501893366535156512368548128424656500057380892351531448042341693076918271054111727566572037050953141707470499127563994154636973989511398177020138274076719558368940845137812244131526675720228266524817427182977037646105072825448896365438730676192233528337500295315340744366614957665401048424362631692298761743494047672609855882879406329111639501433011459986209965999034884976534152774162109254293463898548458002162167479160839079721854706214528140663162707774807455629789677000160798045950681195866902189499019975227467637387065120377544762726658202163879607835675215695625698156153229976110672121239459826009010847514738012808965853039716613290672470557290521723993391887620121774147040730012550378904731694595571181061916878466788462068131892053373501893825289780230842679379914196435846917908446824895091943334174770076583937799638329052810422173329465446435331172487948528471283404097951255451771562117614935652192350261942762478498104718317979668630621297951506036592943832765335978133313632855541301492434573664862919927028933320079061423098386890007877638272500553510583739702626183070032765336788182367660678287137054163255347045015958138869898384663534121521536724302163140755380569734546172197926708567572912665505109446259150461961048173382820754621867706868281750160457520699554202625766052074691087899554337854558089860338053298843856855089356830333938043889437589546731107655288163148113390213301287758380178769074712293065540228353678413311215705086495609794645579300633169467909383422749690748602803881974137082278101969817613863854935480622204481703345219141398068640238440814483992346776288852348361172254049586926339714518192114435688484511025165229178419314107069277014567369284143645241210212863537595143784308057299868048966087145455001160862725395062234679265882027127678567860492532258550113470305901890702158850705789973712098138335504837070562093399755621734033443707459182193953996419946295457453460711223067811646071019393243530672541304284583343883044521259487412692722497582583957396148041319809003261535754146405088782046178943006602635845035439617203801223629051110622639668175683338108583940056136370381816996958853866927300863409811349840548836164630656528401146712770233141190435402985581908869237398154453258896595827662279896920541888108838376030963828073603030178163868579692937123713875828855726511961500875659919135648437053703270920084355712204323391688726113230944954090357083313227105833814700966402313780715298392407588572006207625116307544685800299986595344251197765053701019460019780026924615028894105953503215747787556757491294429213187197663897763435765148868152431603994840121167887036269256463248161983741327556651982435493752144333035087904924120790056204870269267341573171826732143915832433249259383004501414291056208235142114247753792795812470259828932443743051830291513712604556428548280474812453071139039336004820554948300107537377672968018463558799987723608350532596615184232044958836539806705121205928311847112762772256278758717908044431692818655894056526727968921933931764199879668627812647501105385228365886501039815793220071022914391302912207392090109820182527258263846069622623730556951619997944378188780031191409267197245559024737748043232811431628478326621354349915748338483688321050516956727467074175206860121326202545832316499549935589782487028637506791138504007600350055211331420404850710702961915318005077589757342513719627769584267353882420241812725843787875756117911415768214271291184803163364978720525299180987646466862115390591095873332210578180607340802886565431722833390444930837571679952448366721979024948567528721451055027299891096369706049524111549154787433133176782186159886428459839137790378602789598546582132530208726672359539221936626213200884691010289280301572487966253366535444254174811411106549176070036914589798645841245098002265261739868158555773183561498837568474269020053899160766752979062505827733705233816950695561282861271947534193171397253795311811830639213243520091435608135082671212015497939645609582421299693017949374864437183530758591856792892128873443145136506302941153027126358036466390603774365024382794575630825325567415329496797268243694427449360413018140045664865063835383549388133804813449928284028677726580025587972423200720216825704871904801329576251832811005997490689450730994557652919746068039227861787403360528498194166232388004652295849401157274239730031861811143603093966568371736564160239186559421797433498630422796747949689692191202867916285825464400218743263593936147161535458402150352747675600201374141614750792771794810180451170556576892585219230664254576614582059962727706259335891859021006793558422168977817195596603250080619489518898657441130861449763350562039914973408159376733213523229076870456180613166437375235661234099912276659032054921336456358849950222203498371278495764816973927728655342958366123356541331560580961964795399015918647335900745375055638924452995419906821910993297364558239399823206666477763437206188865834388112326632924516189912239154757925550628875107914210241701432248198075529537423073571463216127065608290739666501370306356443137694678740896025538332111351343226048694376247879012293551621958941905162151309383222402021227338952543746713848480488331832188871356095907468877116355949699818351445254461907355495013885941677696523620601689170179607703236656673774044879574481510962720873330872943732136750581740838348423605102203817080113791413799283917983389599666985314863664057795069381593557611676839609475337824375321755641176155294888597436052796209375624967098367115441313798550713416763621029396041240481551062340436385337454238767685887158614796837600705694545968392142611494831150342881850467609498257693845335573348200057909015809429534651154556492903179999229761325718761165889421397479266511661269708302525241885920021954078315089300820553411194390893281010579662048508515417750264970221830647376499288000748815770631000886485939713213590490974291768186677674508302548942650767759194913746173209740970845356650922378982970276864924117705866559614218381379556133756221650306019645300622695285736784712233688726312894461887907417806769635735496210392676197985601893131027993367220041098802499533889107416489848004109513237894000401793727224897298748824613852077841219275422669191341644030121716543167928140769598514438784538800277782508494238111116084784316064434862709165205086056150966543716347997127239477382828177563005333846068421467132423112719825202654494829082526592233010310942046304225026439291762560026190035358037890770694992741096331073854384100183102277546289759662500152433226637867995403369380449607491301796425982657230433925520365011850556807330179889342390496856760112672496145499448715351063276762925066752974369379598756909892847673655881603989390772777583874934783711106128963569482236738348698847658000275118217171257513217666289206623909772532672789953862994930277226685324466680861431181938714962512593256928957381649190874131215415663582181509781046727592899155239782776012579604677328871410890468866228478516664557017949880266643793536973924966721186217733899645431967117521138027703222771253074046153025840371531535936096952818375476918537447474825329162369891814292298491872797833982834650061440779489325733053042931368298517543595251831295862741452943624108723296442788498649638371192435286933796466640435095318540331233709480772351754307721087111177000171578177263100545064635057327901393563916207524755018306964218905557976487520366041105145334328023201011881864182259717933145606009243272632441971650868440306472018208682620190641044040025092759773743810998225293130065259820539533969084032846894852294838663315380713253942649198486700129755406238463153383263646209144640169983782487417802742201815380005537210091530794647401353835801805261315975299938675980008022881439412199782949931406129219109261231773975020710989068348812992021120625879466496342501527694561948716908968183658900623414755665073350198085438195770826959597125092866660646454630269178442875150304955946508486022605892668730331005752455033090694516815383327693374192958511315456646797369474731726004765707745785868246546049313455708972437506753842142291304735353790343773434706724350309661984468863325580774029640111933720769770584361047114043112651717569200351163239334811269382252475363978058155373655464688931754793896909181520982043126434667166253180159571553135997030389986001521583547675654364128505884742745808884970086717019746290633573737681458796064289739569294700538043619261515594768877924952178402907685939636903323831849557092783766583495506384070968337072165392861927360300233575310097784452053337011588527609873850939365623092127385846540752165401526452798995032417122631520245737814665697040542603273310249675994262146464994684538776253783902180368179107070616701982852881039188793450145098322369232405306699688966488096909492990665306622648636708486300892127309054266434895188670472309203476005732705801519448846945543493800682413031488486379977722320005496911513426822495370351520127618313848373157069932584193832454384260636102440204644914350752667908279016728375790705248754059188021087003037373574567731641713116582157614835062919500807795078553596959788417612225507659009079698272983717096805822893222695678057865950255213580527641481489866402817235069449109709471015726201954188716033505592189797014471737368892663623543299878074108942615742390407374011590160082030552073110138966546244066613993381709817252323331298703225949176255274094163433185034693785107502337213638799694505635079900241602178842533032667787863518714630218553003458909849585016710650102415637884298755948292470731351633818980616466286045190491171428523189387824151786586896337040889579781646892849053840667798568894004856976079252187749257106664152707437029706882132365733223503688531696571465770202880711222655956213502419342510045505197464006922158252361220719548963334694117634150968545871109697528422117045402897271216665817198296354138694903987057823766449088937017264860513605387811629812860955213248607608080436232548123802754104609146615137572378679498178252903922457030230586543412922670772688829037306719055663266636267805520398120066963871044807792550711281598578913878770664328905279400671892830294155853488456995325282092944345028743714222701851375588639866208988408016516751671182044964165362702872241802739793538299834428878144266908013315153015907508216862985399211201515365605858298966934505878909151325839496345343635880153889359789168875817073364063981884942411513098326552632375605200661384522457399184158318251069724618144091346481627736910492718359297112464426519851770345270641854929864543895704964736008918487017458343685889014493535635464562866712285313341243491588311087721927232413287218199481075389091174990394009975062378317403476572858070093113959931720184724444445310293132509614347584899720586389014539933979085025331604480440142743012174534161401503854004428776888154567282708824137926646131110629996840261076713860381839262875623987695833658638476024642827036207635777959201115067668098471117460112194252117503813644305801976722268379984082965986676476412574398804112427500851894609206817757109647084544090898133112516835581452243186815875871023919306550146504770409664232531962256483411394995255285803485137180668014765370311382445061368647150655118895992553371504739138700473640342481423647596940596426350683049023502135234609021299828735094720608687917409767291258099244907145480707192205926013615742222060527488407087056681047644532271932766156262318814049588004614124222653369591425639936101311064077949565170999048119500610946984390769369569131631941234030148618332420378325149376075122302091790196467789459445551196175043204983304892425773066654184606340501832502135131320720198658799502809505935502648649940672172927448978334837088952552499923283608192282042584817662129248546928825728472635822367005521922747362052503253578723988367337400656995825596264233060579708943798842568721266768940661977198707715335040387479136613746083249967445467786571399380620497875733589930867903502525121852919598129507820700023182856851630023741504978423111816877961425746146415022739625026817440922205755304245420891931369006809929603055359335083588446998019382523628319016151290421714429484631204093546652365049569889611050882866043136214240120105068748903996865390725724101290547270180786564747203121477344710249110006137110836953236405827434124743956181587515868610741002073039827153025010336647180803014767752053469658687672992617771370858071987478252990955180843407635410621820795492606096748603048611555674563392103595212993651389587817972587300027385034202167309342572771511525413192191109742405579319554271355039263227065426747122395394263271194787171173941863896434465885065938249525054999224269153163422410422121416873024708671169698918457090817590626865137667862586620384736294492623140520409631484753479823427876903158913513044546151402285823977513954545444850557198746749714559590503727758675307335361868927632190746066066634006961223313036855581087052935174172522120477446363345030208484983080552552645931520146798585998653614319611146732566086272623349868348714376532849721510305312825040016649808389928322189448058320496440159568991596347808928367534366928120941069169324964435119830342268280818528529023684218247841916290617015194508788329697951582337680964540437045666140864701301061127486205182462447619941653484687987655795668101840225405729290471222810151860729120067205292815804932736191160454594611266430527562813255214719842551910619057161859227293685344133656594462646694346287738305516208411566735432430545771986107475308432231636614552997135219779838151878139619198639315698138268335352230668658096047863023374236151935599134532444713797068638598224358750288943095890238776606432059401504403889054672565817873218292345557389542037274285087788215766059857383134106834456386310450033386874923702650710720205274725458861299819983822654570385997976797921976274912509684974361113899681343861150115759474912241669080905114292115031811950913637463115211703420137806316060081932901767623176551184609844728273808288740999276118273056074743021069219251872616678228138713472522587457765365605023377256100947708233632253712479502699465995901020480648708135044264690790816511406506535096199393331944834555770078412951508627125975538470113755754783188204237475805494193449072613040337206872827306848046112152232094484420467965021247955313515661711517254164997930019886618780285145454671089387993904995809204665014810084988324371457445997031834387834595415074258996862682883407550875713156735302702294696598047468107782004301660018862165796656688189531821525059035151212279066580771194406508004170224646416147349576291946183155822940718155034740605208583374446063481077054074079153312016036114905378685039955818249613963065888091643901874108345971211811255440021641804172399249290224758593601847706990269147452734240512630919692183765498521657909298463865093892386166717195207153176926084745182143725838111183955759127613973244037965969194437681057082928100865095681307064429784134134973194456772416667511055475212862547315320063436311310711484904524339256621438834126642459393176523520102704417421017603972753305807716514605100832550474263549839982994334389801552089319812849008548164418359724375321469574547697133766598343473794618784450631361267562765819362073329765947804811517520667431953973775319655368912287265173566977628009533640692155514324760251226827570916674013848724753716340681780711559861591532469861063234633019740240918597255641062848639085392413656980913527909664321263180706022151151026056173526298614442569913645211063744286039663227987775423015822520864413604084678183700447427413933560146616377341878718879813687616715794092480033348108091245998591513452189221265242299631855020864427990689507140862608030971409163636894461259582695387168663522005822591530063106732284841982035891023628458772413308028774073246760460744759380030301519524140229899633648058386280329530824392145113784878835518214499428837167501367144274598563217150234945970740722857701941757645845078713957095534835096354688620982258236023822617167146996946565762250577500628284869489901208433677039215020811942384685866038567342457209961467431487552693586377419305456071491853872027588836936957884702947420431230149476349485950160180319630544954196013434098569528402921640708918924840890014671237900468882443227135748619353733841918954774203919820687991889994727267209631670050793894951974296291698448313874235758299481837392136883553157572696682622802995515613429882746884317504340619286462082391049888469706925465907198316787413338496790335826817374666250279519441303469452101564275915346404600000691020995028910973484601724163521682878362349742682132347521134568859044708614950967856253522261187578765608486417323155831426152666160192082295938983498178524040442113479468902126962486725494195004343992771641792551466059462293102806410840734691352133754988161143251573830305517946246465853502829057539263536077413373733644015557161764032015684532009120964393619935135350690131033108206781445184252572425944697648648910684586152655878619296162643230778895126313463192757347139001539507480418483068770583847474575534715202971051207106392108861671232748569380994062770335656726777212324111508442217367260049981795861385327174787292391936218173648631631896866760962324306900078785899958985588170069684072831149024023547862278972786336077440767181728071634247126462778123640995364268165212111359387361065420059737469322614474228381395161804481158852799386857064022637687643507108434364612432974922624128921072629820099166972713717343369246940206002785206452057953448586282867618693559080547922206119212551886992475749286778975605045739770418470451304960573539105885938179001398505688836671820530258155417625405887248109236844263408171890729097582059476673985516512678777608236315103999347736606896537613415246978292723927371208549063357462247336875935199357353912091845460416535612333807253196877784473161444081830229662155542745871597980609533819401078913995096006006693076181345084954777945009655634463589617313557852067770030014367252989558013483735028276893708976449116202087741676087361160546323050133799795170861429457616404331615847899915277184762205853855078944318691802532068899901276741040923099679881385242029886274525460138751550459887225187256740354807298443801660688892704391758939731957307668329302355210349533772188816075955476076824063657676113752682138436698725425935425314374062875680677484191646216258304846128604285146292425966171756972653656942161273018697909316832415360130943899059161271902803410290824292046460869629810755750088257068852284728985134831496322363815801494528935529108995654228570392992148755234582703156974132413852162423363057513590367863085356719626652595274504126060133911223154222078326953839562887590851226458187660841333566498370601941355368633989753971895289959520891014571464803549542884060516583828520572642492256109993271888542053176603291203976458149687712552496307468233429193434364028195602234071946098429086820757531984688002301316046791274687197427060663198897303354402193846289426667475743043278248422033441922615847848060693342493082490514407097807015382319116127753643753146943788890822852359235256116923049406492087493677909144718506715652004039426935063648703925906274775797098471743534118914833219612278549702895501746752047991551428953516721156725591724190625538019354326586575029014016016622030467490808766892978043652757960300739197752071377757287424033154854777086152085624930368171753647788661555345053321661897709643521599327559219616876871314372909795551746155809641547227563382531412817804489488360638639860528773820675507403920942563260937729800134704417942583498242301770613421665522148791772416788667732140785652955563123706586244827768883385147585401236944813816880476677446563955994038964625509107907471460250090333970769488752714445771184551229069660450647410657122696224162931951247321498908449108432377757277541704682839581048647906809361650333351933970391539219115745737881033066600975694378421495963020026581578749890475973949538569552531053773942746382732124591001746376305953487416253795745580935915524525842370244095610553855866544305485533906824113848514494832031316293052426554322812467865060981424966537961113519489627251938086742739508514191778308429092547888923251351192781115178781598390197029730143692640892300994110646134248666089934143241908877352673168647520451204440902594609061413542054374487322072869325763707979498085076342431947797533155197209259932978275864335424596546887792493025116967142182902949859207594401467247598984541189831005166017040263624781157282527010598257472132032451786219113170819030568095745864091338730331819604024030938979523488784909211896917823146214088421068010666894041895695292755185593165179032773647719764551722470418093246441329895657346704653752440331707040428228085648304641023615657320948180583817480816238337643767279072666817506359754836175514824153728126589253289843231036110177411754749393693117229926468505644643807581201936976497430600312769756426299453089109592796012315975572712598014257422949943449081279378281142031748586529102924436683569942223178297787321951402009791440234897979172224876737768212024131476712135729156864608109764769603383591669712378530276672847948807151325439213432166637093715916308010575819524844088240577829297477375091260191895701301281383420484899721516938592411391842904953919224780995985335036062341887641506556583622846187532165587416986803633252006805099463340683339182562904236868691594847639530108339424613203009466691813408449756812043034431326929409499050606527995064518868424145739909763273272128488391768617717077095595823771067264200559265914808685928866219363877109033276542573964126054343525627557778665999888300652699060121928977021060966815489540170563160423891872145380614897096579242473187069186158643258760287570442065343010582548826288896691042787779283238019382828262029625874611546862278956219328146345380522788130408391383728706895228733681622953375216310955206134088916317565972136952480840959353693742781440254325461801430514661279485490946154520217905625166036009699213445642574266474864834625252035982965430186393790846722304143919998756330948953366859713600431168887141512058319987568882668287309026056471657828937947818309596271102726813272266703885141006905328886311937067003450856351322471373127162094624864167243251346429605666491695750223025854302623086511162205244257878725272942126558958880542815770346502177129192971875692988375241981523361268070362465975438157558095229429343411003867508148415376603932051078781514280022691387301950951026245916119079318198103660700636601915013149708081614716630379694041425148276254387641898527212152126922543537483914441980515069543895190502266675663939813907182154749191198783831471872776827115068693591520986203074565427924592266974637398149496325869946928530724171337007425559923936215541022910643334726288144878037652497837270951914739060264840260340422261686608739232827838456236012676991744435398408103976296954199899912960722884335577674148405075554039504032092536023749062019892743653648538070041835310288498507835210327235700611038587695892999027225267337914996093206319243606631289922365273213255068724731119275822980635946586701587481087459966706747285670377630474519751072330181201441870674523849862004427600919941543891827442224203972493997611689895114591285494728979087815141502000066414135430517684100093632523392886769773614320689059281800873777407871885304323884965329137274562164303441814941064782902354592024443300755853306380317511352820761308507081972614202014906965048114552133939683531178284429926908619421536167171726519310112873632033255485485588991164073717744136392544231947406826520152846525669595937204876077047896308355049075831165586689339450443729941422036275639349757506729944584418518206483442913263734944809684209427545692079244540750249837039641296882124140739157604646195584135253776588297661366983952796331239052828715288109640217714009307371926632389268044881006922488568798802275494508526797289386439998608763946316894680982593092062749767602276441460280927157653871153543297682223946476013313945911978257965234001257030548255178529049708890493546875246288142516039484242917368416429889913921365280187129112926172410719840294813785566915033268929093528068055912358544900614399727330394737281723544695773458798897714088032785514597604336862664383603568634474500451335112607976342093190104554453105198491642052896993996226398238973781205845052427717617111050166344008868739268817303536703822762893321310887877394987580758025307024472171424284004249068055865077580121761785764774931842732387381547210104017924246658494467710157344428209739621535693921502209668092438355293412305971608714355524313110680729150302531546153734068858333337969103999044568341636807968324702107440458165182064203410526326784304263774462206481183336048472071562057242187437811172916435771670954444722373935054566160677100399429977480882415114626546371976802010044348191740383783649359939027239043340470459103316537873568688660544472439765701999152528521278152779664254089809722923356340004123318332242530185572870214980047560824593360411232035936769468683640502387517335122796843317817509608882417849790851913266272334817724449814015552424927648721878403080714375761110254506744309801400356784459599720915823324509661393745127201836122481279247357507752516338763577918142758349389220831348360664229087423993980466920171275399213919319256615057534012572208125345257980682742851090526928841695337055918285938672543942400616655928657500910532523993945053045011589197880667299256491087291555058813076985589827790132830239460547751678066740153113731974831536102138837652922181096091352448028641514678104458872336824125475004695671264483983254029085303554169198670477473914259666972825779720866787435915146019743466251776168760749414977837249948978587060154949481455801208198788974467695832910719212042641198043920090196738054705452139432822551103139449011572709168180515294650345077669373043107312927337505361633861902896875766273613451157268929600763605743950363356224930623074558611862511407781655598998715924775628122552582236653569491222615250754683691183811866302074701638313740347830746661308778160145986324363278313641913806851834818866536678659634384480751635738210889854607433876949205053304261291818520230018385347984088822127125023755199097697264562727881025959598788989958474563629769938750582423249447307375310227603124589842300794626120797017020205403632470252063249282259787582697908901177686309733995179016353742838322653633886826419747136969505632214583326028218162995505401573567644078636844490937371422429969912229292081101836351438470676271335542660953772321225593651724502418327417629004028875637640161198593349756237155235424818857718437537797698991101832329904635959150119246053109664032957322404488923188594078903418245029374919498919440164007684238477300880795574432244556067058685984146298840742851405549083178348694186257490523924409335585733415050184803331343384883577254424705856378676103158754420624325829837519488552994691869655266609514496997581218777060557212240203804821700636262185296521680983925251396086461018033412879495208126408105989717650490686833578735702634786798126478096694668450480192549769870267813684437627599031587088565865398452406610355499561358154458700731839256967526303643071649141220778698295722399993077149810540654330047800663371544440100912143138634680571095941382069340826456811635569048561846826836661009848202830548521790103754342851037748777970671389662272332347876091543846297802845512295213027401940016760326853529566293597930632325478259408689877703217388761680079945924507991084655574258210544001775484563558974656036311132193427468533574118366739983118409251135313095877413072819512145454449450591635605117121372928454993751245794979688892884821630738181330480879311958370125347503421505498450422354892167612785351548878824257352892743612064714485413180194301285826960726832408159981687721948193361237616919898097214160850778270257678185199525626747361390319336037477496961703695429609288092189963294091336078044855000936988512836143963777965850423348450584080558323999988294777003096706682871562053157677539226868485674086076344731794917877748690147007274681812008431751596419123214709361049629842026791316900101062800382206288145063757500854337016083766444249972475300118720742790367695630706260714125964373343816761016214305086478157678169530555977074203286742950563223772534587214299146645092155654899031501758362583047257705944939546806881545399569725245822630516736160785257414963557774062898785107797189576880298123035747947622408201021338734056283062932264153304339538002802928371161915078990740990136450048571493435250205363119802965314274778018944287908045921033726305643982225041800319819098133002046598680544368605761286500862321925239678315972716571329057338307111112837006278095899096526742399178262509697350994442135300534665752899751582771557191122896383536431903745092899882024497910889711913404709312716615789669312915370172332083617734568656750280795804353600492374253929381990531952411384862634201841910288300477936663654459007333005883908342910921709142470777439746920198673864153602661562770306111779443287011226587639698553279389421992456751001982313296237095963892858965555268423645395626880636566509742266215865170183329237511541706750721112346872011754268828515674801094720882021038000010821044864903094780755527771888484460496273386480696075221642447898439405712814696417177400265642495003080122062059874285296229719208741220054051833411894126906337478240844238186708731644305965119659640108809300978003226715832387690201524679230540162887203551801228883822399049865207210139922942242343352862566513735950274100504322676370303885231998717063200360500616772536817774627316856633011638449998137571027357699187008705500706230713943382402067039678711825426207391633880586677068975577105337669484076975885671980903090348381440448182457240489003537168391557628148553231326714589100354032455216726547662247810831294144691111588756735119982650448879455950764023168430117221150174738077105020817775718418155066975763444839721578951590340098279325187040302028460672026304059337021195818234260397770640541160411536101726801275253971197473967419245558743885597935028307977034423387374883674426384029972511296980923817302039067166697372274203734087503871625264062519936468140451617540730066767180139951704757316029699709225766304911804469835749063107783216521768881817518896729193005440233007231884683735708532504844917532830863110924467561010213336425644316446440808618716494552397521236182535890886423809116020929375829362234320509792740951291746384064633253295237727162887656672331737262132108974473138234080670081237395839860118761829753364941422415206395939488091158904105264856403159174148827927669936738136749336546673293874642334794153865618568800653992725237874092699262267113785847044238775401359936822881970182092783343431763214287533286410469851524044028711423301668612867725702919692545104346689952935644946878009228654299880319028117649061422269186512056303409339461203891241813214337299326689471730589832014693322993518057971798846136615633036762293508620925837438563967884638773796220305146015842879285645292336537667289084766215397516514558668461762979968282719643574975305061137920137243424408671806329428813499522021862684284546422701676130468406989322982533934779071390636875853689681016236012935688985557657852200010142733954315966789947320679409453260342591668811146481437701041018606086296112419498136002511758289523013267444343442135412341363713456485660518481918700312504791431152574302686998584092736691123784221004516538762054666291948350813345674428760616109151051273016119212760992775052961525641255277121290924926614801067157123281386284393190688688417781578146087243627856630917943723972850516832335737012593920479552595746840708814351789671953426176033145970451681922382221366863827735986155580853254620746182619892930776677827924634084642783270235764053915798256552896533566120370629962553854564222154540815225690589534404614567998730585658143374888972950357079697178436915107058471968700296557658847161084724560085552721444369830415910289523411140866030649192345197687207475245917431422781713809140087505133335750379028961540351850919761692944616505217307986704975798653972243945120025460736358282366156471184219222030092211706306412853849884554534718685828989503370317589268498543640870302725354133334984274025403116630554982096167737174886041659316183601544417832306916459295701875734016664716457515450299927696418967884730536933792801819881863726219030232043806614819618727591313142478029772315181080158061353935268671489882363457221206428645536281495175917110129034293303997903887326786825318862723965682162152105676489610271934365586734039805598112449629583208163720767980813931943168117967506073621041773413922215749363367250123940317768215570461008636477973857250311595765868330677772423992516600158830371381975035584085594339198013435545041173594309490008072452510285552114616484798187473916370676530922850139687885341781978437422124723121771472299685111306562342944295331392761376418378916105083123333297591902588215490451560719415580150384716726164222198448471345502241213633151093520654061781770928354231657999311528776047197244045499962426718550976183579418860387726846669998693025820866741867410567581335936535418225273144681226442747921836160028698629692790752352542744342350252863160788155330134753811726591536798911485886464452207185767769505605036868191122385577400546325071576963627013387647271779708461902057726980700679001293481680858252694584034471270875196575352348786161917579638889776419282746651829133701076534751880529401644529104206024512662294263784046726725892098910414107328261261271049666075885257310024185997439314953298183912143588161741103187208396137813468289462612389569450281743862950883467683288587808842434248011037868995682062444240574213302230971906139621109322692727860160216824237435933770970903518713346768429013483087457020488091813433502501788070872087115211435936834101307137607424496133391486054986241435117027119156800017787019111574721622433449372940839466377347550470225994076805275652527497733288829345158233374120323861108928448830428314106443959416630836512962971978125559076589961525597587378165156723894919171741915380521877249468128636167096689665179618666259105453352720980832632631584206712783724208222209901416862292897916578295821986888210010870712122480866499566067444117817343397812709829844665626384586712875134233229228534745923262633267031421950383465515507528228758597102027987139180355451434806624071678774684485394959042677921943390630094586579836505905391512194677472771164460494827816010938969986643783469674773965179054993746351408400659340297687404530573369775374636086121862941848221059710662873669486274685745253486138500173004376106410699389811152775649078592381620429140287883320373865876855916289544040493658568472290725278716519108962859447879904158761707506577458591792291048931840695236243306535573743942882153517420959050269607557215035978513790347813020387195657762574314191824974363669377539975485970308386721947481992574962668031448035116045953785349290394958570184163944485824984074443643750751448969144361318324879064706947498918916027636467669163120326637588192307229432086181271432469936284272791382175064519875886346721358831881949401885886522442831644065303299606820580540417557088402811349346974841924409949154937276676367297672703888715753617366442548202005052073593237999542756093021471911658274464741418388459011461689795302587146939964830179785526400874987684132465157052988481599588165324458814199051819400104511370772354021033264608042962124400919267320151574233134142058105045864548040675818630689444269656717378668876202067942513276261816994089068769061324393990077473642398553966554555459443042697849937949684158696633677968112900066684042515364320970275959838214462724713244091962037754941742516285708662446696721481441284803126911380075240458495982958454388080875268924987308157489658096733777833577133966353103973826756681377582062222250523648822418620233470928522082216674921352054070944363829015351992291101310117510115952474068745255805969148148783140520693740927945978812643562893403081297056773194309320712720366637429944548036502189234715029162971385714607153855995768698418928016793549733106606663793614254522732632960091256047930438848105179578985029257876621340624794908041494213444231102275715803564833751255056804984552429464414574681521507079224764670910687696360051966844193335011178099101196189537070129201206276382498610714579916293979664910648595398918940513115231001047976307948095505352449658507165171155150009401363145836472909132734247013582159559454268915014835623088840914190598447498723402339414912102074492239036495071255145498386298946012020958771556064993197324066354069303473761851464505471699571625005165392758659884870333439352538331202997368692244031381045186530575669910142119892926411269057868938532646151111054846077969670282342928429071930162374844416732679557745096195978731045499499178175081796240148417758523235747385625762308983498988258309106035473820760727097504274542268641775918970411472187717301597052935510732161252701862469231052537701947699026825249305862274817302148523543801154875209987599314208328348664173766828374276839386606261414982855262537960094723268955481935184717636511298758110632154266838212243896348865378169598209899030883693750401268722856586661167970677299551468927158573877308759127249676770952395074267906800423143082912322818038805440588932836724410761520609117592436490391228870188521036099534309511722374798535059590031236836018205651717991011492057224562200947603075589097359836316656675378727724526819087710150377488634698878004555581649601735121510941184392226915034615888482434699236212179173678542637705073419545642288955349642990334575530166444727110929560963669093620774787724429300102114128885486787262506423115149967567799160247106896193921939590792301625235119863982655445694767296134834277702832188431973767651466797182034656437216742537324465507099444875150032443216935547904438363005226212776708437042100618065372460257420600036350881030384121870609368217416655442551763337159710087298914314919437646987739676517590022255426114891396413434667482139499653616087361460195350792633315108181774942766818384816130989725124418384928232928887432683206824274636445334621793449087048832295439590411357944248238433929503964746834421745264554725733061432587550735823116372013701638737602505672933257739151845512961190475705693593587801280202621314058686792408541528788071387532203784607793413501491569757309177008919338861419536666753113506167202934317729270311092375221612603759023404565205103789679419213536558227830141286298331182675140214994185780061315935179008569827223988140499236592480202243719428020317626673537354257744441854162483384909933797157457417445048771666111158908219618579000303154007820982714765545647765121537639389616387441779089173763242440647567244369389423486581990919092136382458648041627031238227916270602002532796710030939659639946714300880174787302939423830730718895563706875573444408562317411405536192404642238549795490588490463152104657804919279800764622305661018444093250987941980715583427418751134605269329328082867021392472485039635566187715099134023193587817272932718654703163010391371404318517137628639934688648679897495810158422392533715756740197022545515061710234535487281483841048145975608178795773537951564375802847909153913086422149314970389961070241985925648266622448371806976308009804093998687828708786690683000032292857464812443597009623669337009338352078710761399691252635159967641184608849514162428537188425354817376821059366159494376054293685113952935113314104229476722421237124781216953248232986569820447741955223769125228257129416475046928456397940718597047472452028459525265693030497178822252585163283025068502375376247366158422828048166461378401059386392009454168938844774177574181444485825884422180851646311424945489854543938804708247862331947690218652588896633698331532081096856176591244825862917617729142766694790057703317852614070434939446997394777491127296211991524141875868930346652904321883435749000559973058547507694379585480415966846233575322471755273398351905898037921292842979044292849670674160901545842185003820237689441079716797908708228117225613049705829359866116759688959417742990059066884273611037333590110324218981506962030655242258637400071391148019689703452255562574274172506089551694168835991854081567166228878580426133801753271608748816733007841998000423545169164681811998899542965641230786856855484860394555998699589779245273571663313242697826151273700190117313110980121300089327988893559154716849863242232890785370601641397788618656172704908828053569165490354254799851826727152799985814619191392645785202301202299182709476010446442768502246684570742054675109535954035608621700465565379106595306694899182470336729850243093135225397306649424342431032770967209057882011562046309864479369223728180622838648084280641763005667852912868168753072381210463471474509348006190839484411477901954625943280884494244782094928028605629703457235720448507180065961947007346974993090112346607983041945262407295409878922699611969541807653918773902418810029431665608185672186625477282497469606341899238663553679485446555535293166716396749911942600962419143000849643279820668517724129431634094118261337219019382929500206574259796847128712188503959873579833567859517349885694858463729207506793874249882176238318760409731771404279970232288674724893267172990107284398472633275672872443913254544753135804685727420885524422196494440584704044509946067577104729083328634363460649547200780712275812291727851799362077497772412617257669958153766469870921671264166681947330236201573452196869493057066313546317889986665426893413036268076491083924959043630683724285084201416684189428361626566034005778987838923307619720710687078921349568645216788577857334039616160232000077203332948697697124503405539141936088444843925017313821015638308989341305811014226799765653935805359964865914412371503597396901742347933146895261571643091874954318021659110684733937055248274010616212982829492901630668592031853557879362329375730688664054610279606056897728125836626045295695818733896482963819399576151586454108266873558821248730589580827414269617411247460645248850686308006501317633605344661572492633562018853481286615851317442779542453403233236849666271713375842622577022708998273641398082831231213121466848770731137847342204769135733766976508141800815117824830876669663735832916686207692499234396028637038387414330692571202038834708393265499391210733281153361888525819743982266824219621432449332301953605198490026724140282249728763522228319819533011053122026260267058085687361723070367133282390152751053531470134844369308910820409945945461547728513053512140114358005998349074760533355656334403602694396236433647053109005294094127782825402307233132931243602134982704262897441907292669627875381650770685005808150925969698795467812886488226468452757204675871633080997680922931143767157851611233704191485490669895510113821211118077025848581700680607862459169240274726288005531437085630001795841801974852723358269362720216222793612614380558752534242791654971381632384195883758811940421106326842590203501985359006328743837558344239048596250055547220811854382736272062154184292269441096854676016579390256226950237390794631492157396757756743149470160504414902877699724504725857910391501548459927755492329172697695321016574817534549402228382664913644734367952245659607137026449434533125783247156612928320888985251959027413937113242110927594295075268439616961774358613537589429820312963000196500600111067175830780779365842630149231482281916831334109422468479806234433653538136296305090449001675333405243636248782145114289631584924007776834799663728635012256127076027780735781012826671044318416259769794666326163918877648535220998100565089821529555390248851570170640676118745578538183770094947850404333020481218470906604058007792349476000010475022513508054515543220566058186417636889586383484371518470860959428231914533544130731613409360612477901589811241197613098331710718142413527269946653711655898759848411482395478465013041119403844543880295874144988862834683076039870131946720353151850559079124635011615727076313915089599915912080849047121860557415193973088645299563730740590366996476886727878896937245142498998398865454519084273096574493828160602724506981050199615286511911683725035381001216101180272157112454498462614438928454305059837778426947524073087805866377596992499481855334932422536623525778623866980322057053684586803533733076233726142539953242085823255343072903204478420760109889097975663676116289411675799720240733214639031241540000407794574465535118648161494818104704488692407122896775310016412082346880376620601903286613252309949721911354703464091533219061644581868774675744459074568983774984068084427926959113661122060513472781005279230229213695955872162055520212390002223442942433865775773278720500799321685706358598733355343564905745109056944530360166299386665527521852177321263579333125829636303977799012522185129055211677061763901642022988375827114461173742855698856804155620985370726272920711506111880828343809837416984216178742552171836834700938382286990280461446573965108631417544196371818634777983928318471917542126392269510924695838107809069885360914993240139788462260215481323431494963443474561565147400799400132782420191924540184629337790833052170273794041246524615135963996671233022361529200567894548390484620215414993041167797084313065100886509968238138618141635262279870146719837609088452325442812347567961025082333339196489461289052387044930865254198128875530360210448092173216572955154806907609721169052888744052567347895323124822951347641484537879047661614617411658428460553220253449961587868492476167992684197276391812342635883965557715950587298460770218291627142946457515670470914395594043694017971012519543785724403056966964284924426332394463348379122193468639767213598460022024733804054855822665534073991230952698164278532487611340759740021797697840765865496036041657892659834393889197303380961578623418777491839193303482447643528292047378160905868303797359992318470442844121488014593075936214315829548982488548009927239499806260157585254366567989603284614812945523850281123753794011709580113080784143529474003710417016385424535004687537602913539690409329850762808617265751222369658519834895851016542077770922759293887556195504316307895722116674022326408984684186570443967039045441285165707148107699118721179546288286187949635156268548346967021024631450328168913862389587755626156567315530980302244435198436227982016664003131513614739339763749210498908037753015586563772907637717666795868472705300275001670053905528744215684700196114760214459835897808832062672708295236685856501088113376494236938389179824086787492255958257652050849773486574055438253636588978650753884588058092314737706007375100823574170170102040555943964101495515215555192275054328430734818260468505282541862676072867470472484615789431645660809347281372530550646517526037286475477896086451476476198866512748978146689045851471964882010106728557799497066039072799579367622596002837731562305934230784516450211174179456614518645724169265147479132390016476903892469930912492639352133222304157197840394121958373751089470270405654625106435986669244008345662793644295938612511146632436771879562451336884006881643073657975814417614022113386581511623689344585104040708642104195066303248785405616381048716258383539961156254967234190496511261322944521380655906131566039113494582370989118283122794418787383367497956165190443461452380252839172798276905045760111949472080461198642061878367932915353692352306539125244745464309459427726622084364304634702222711304634058827429474500560898891873347431173660028318978338343983469006322802838377463098524633938864683899469459348066237827875879167141973434444479161017120249987838648169960198915828386848403730228440022854947593211569892253120059868380227461396926658173171000037319546027234073533271736439153802681938953740182347698930965566284122376948793328364671676125287058514214677547750433237444489430570820391735010496660477470959317820310581286369672332906813084069355700797937408417838556310140122727834096429411344153374078420478252281962914026634822397530223688513420779742831661319909550514559477876918568292088487258386800112848991015795165034942363618670691860839548007473126063147981467262228953252249660262619313356530006357200024896842990535721755981189701106477030295669786066735082864338335966523110187697729033862879326483275404456540329358811641580245179685684679237200308413636891315477389902375083233455038811576539442292762259523109544953459023337859799132429654228856591853614350072472032386036011287812324890969059075280419790928270947294435076462651147581544027865851968144810337202148479082403874044228788383174497256515162883282627551687676300592155483261876175546384610143285871033189372208811908961775081765845478383359331409502951666627877373034235135803985042031639764638768868295773756137115927118838534624901656902803236460975934320034534746672158404099951806817229909719559273094891509331087106976066462826374005814328479587574939198214190318671756275292112215734136838835482601549758825282767692452636771365827886929634142977169417016684324376657851269550934256758733013148364487346050858043435715603626244077135456359928545725830532976699936122870211309576471639763138183999464077002180737916197627837150411625952099822351702726784933672186531221784389461944432741949584230854291720452530541741459427648896444992803987907760850519903214981781008964510918510245057030818534982062498151158076135481842301809008613870781402751814956019477039651078414430979672174616428884873494081305843083302414684464639512115866041753701427118836657396594488511382751409174295505644409710353514306435247992056235657352088424820486727888762288527952629555100014996374409788276574908922860271953215931102686769904642462049835577720011471502652470832428203008308910174610606374931829370912307671089367831683701983607055622546649870656338473538101756910170668459716440998453719450767275605930486528594899451928098468548322834830999463871594642674871916950920446529199394217416631848993597861209715985750173891977483348316099808886151121380576443455656004206173704375757315286850485302733592314048167008443257113076313244899765027897385103675082717768468790523792025676467296766733412681133534117092489402166099833738333581673691717155326492423993697820965292437584230097613548193070505624390312482927586385314147017681677214266946121005939851259796324649436626412724133426786127358785290673918908512799876973886032420109425867146432023981943925400926394328449352239028757848373667942201667359923006465759357383218595128606226171507138192388693318048744007892788141309916167243190597043814542962470755830760247865585655117034479138242166415144946149457097503313541920936584517946596965850106347593537683001494876084460478115238605170506563710095558663119625274024933605915557598896875024773103102752694769723089442723069600856815924374905586434936727468492927398239614141258267517877247231123224885780658827555725732752910856606360179841267927135038156360223368363139313204529991075502859442376495923771630469907030874235250525502457331616100381996165245648436348896007283663599815346170402125115613404551389659736714770106815290351450999890790460585521151447746191130779937823137804657299680106092782420509361147857484219465412879937778566422456668559733828490277216998381240238178157006714677974068887182985799113394593680348983430174687144886256300406448947713936957936178405659004177901350968772915876958321275904987489273083905031718377573090169948463448508064853801609982287107114790173811534714249557977278069968220697775843554991315960218858222879079888365213708509010919949731585342291631499028605441522433943897597852072383338040981987102043234451758896167765930657158934900962852680637367487704051539169151731930281210769266138319619735296665477774301342291512443777440430930245632432883642429389405288259941822312210774106724199847250445247690450772320648404009058603495171854467188607662906107993648089425683056927326881307205064851398965200252708275579565674371352660999214568062753556502263813184841023488294311346812267965358840864780680131168833167717158860537382806234805321987584220723104066496799212054652462276362862729664870724885874214192797269512254603532639540483488289832558663806655142901290997947067260034263748601318184491475238737175441912037506577147315708717566075546053152284798566289139173041732298468266066397451327508516780371414203152056658658813249411742176512474022987570184624688150082315363228188573829884039910096968405044123632774191161977891136463681875506072236436964503429371532933781878729017952648365916681796535149245139982894326489218695745325711959201428685179594050684733319292964438106737553035692994045970520674621617028265333382612938911932092499935821591385165450688326702226642731335896397078254753518474870862528623521693164457147769305634488095364938076387552966545661087396545084490657564111818951662248513456885958980334708679298513249875219629558584767075407126518721030650813149615237250688825024319176985174762340206978807908654012472783177879819480942050052555387079833372297733591169169978236749942170996102845283975968038118162080094277652862724267409546541001311427004476708814733197788538067301525087226484465828638459685448055132197660751192604728513813246613663483764441765197003941326469203317621683560164155082600245981173936399818695578879925373627764148223064850839441625022963131215989568862125240333989674692970890850902919576902709080185095518546002661043059305021492382530514697872793088430939395733029563148505282077485052152559577013672716713013649837469685666212477325824769684700652375221715797684671611852989194603407023351625635542858048581615909872966511771260857604840534434202791888714330516414617799776972774143922465750141067102018595653174764906031887960524240500359033288952059442079089655867714569027263132925461934347152524097561830260240190080111926808558545400463120630435713757606479691580281041979649597388899396707520676541098346669131676696635083931747364438935910702342452044551980899497457745886271357843192262241861937980233936763828158655515008357687239147697761709657313811413367913695743157934956396406553509778836465804374745092219157514498237737070520174352986151008552954359479576509146893508131863898383036187495203814981202273872976571497366094917162550168195010771623706913519090677827493028417112841152140988330416200910666162283111910985545386111425321086610068110466548779313210162314246026740979649946508638440679109196771629950219798394586051274168414618213313382172180042012798039279056528443761117476883846600519651514165869008471501109355241799045717607745127484012399283548694211360261460771171925400709936933083553074165657512035619857024629895423272873490502367646427384545546892861930089780151452786802517267898441116162211263302594979946416174451208713071649135692404866168402118229422123078394491468054977083173661156174558000886549195212882095587948881018962322097355576648310425275306034185021825894070161792801044921043791556918545119869105034025118757820189234468338714505508771338374568741611561607268873140511838750531577366387358840173371504647062674182874213378325701713413133637694398480117691825899721637285272815302076082365142061655942978398257941452426785676520236019108131551909568345516888437436231945127655231065682218499943774189435207925931538846793008133707940458846757842696812262551266371902245598373905956341155179974055116276896443517553735309257946974222986615182929675716919257421238990764814501819889426909625749992842893031361491540278918402348161412948655244600213333285296720190402603157778167601483227873608976233369752495421818050055293474867523591824662173453204838424210159075775629148966710513070257449235221575656665039686629260981621133129678347991531023804273940537107711337401711386911259103878412606072055409884908484659541866920051017797881391302370775837216029214968322415835190258366259310942622524644718572709702724504380738384706580578821473233313436668273643229346255413431349585486361591582668241505743296296630401424800319356348869567154618604535885263881272858882640887651303469925280895578251801795240874915498160050706958909519778782262377112936066896201095944530726069913184096029761693279074681567442622920922293530758676287571495696785964432100454597152224789985125758113875054589609570371283627479966836079277248598620332387118615859717396792648436369369925357818243956625985878240012376762418723386689393007021817344192214944693603691921503583208371001552780441919964576762282964119177678314405042331666438235132655852210703412990927705500378361622408181433030258275982393999388219394237619110544646996189398504454850016364531312699697450069105378793589552756406390053215144876093954245977886952940905733316862890155873734923707943221679085069582052713263374032603154666285325098281277046504566533959197924103186542606092604719227298225755851417942256174190620864995315909888678721256731146547028323305232391245506746142700670363612526833917806695033591022518170006317113649241888235649209004369360156614578158761021545338646089392989789413314591660589683185689685897964604453425191337469627604256616857451796737211284483019325054673672929101575752750111477038808423759545179774923973003433539642119884268534108989244404148710476072217221286505369314578997298270317938497012685846224117601974970107618714501052820166708233207167266717394965665375669287239051338433445332994394403486013937821496590811979614978939787868412959208294036506877884086031849235647579878711591211813967934715169993682611663317973668132194864240241485948672484315609975299718052295339579852974507108840331927831162401456175288918674916417600845475756719786425378304418600879648829032684710557495394522201437509412437977548991248098042920877538731187771149672877806514053093728090431731034493095146154853414229550127615436269166772024936753683043515093219993807754146089361850795545461793419017679011316563731155727082505712964634177874545731337078205248473763330649607535746933865539003798231358382559373152265950455232352408433672990206992221231611509802011838182718973738878024430880638280472752846200007336963797405183810822407831617624770697506635529061036774623855958850323279028210197586190008690518891502791783519524420982121699554579788437097976619136792390484655211334733109944667744612791195255551306951777087765041553414514426995991744733617770581274712308071235494643533446433051910743034895762942570637079068429614373415054897845182611520776513976384882601145450340627577485378180021773370361565834180582067369252821119935676599993853023746795035812036406742676802827656175408371130361004594978490587731528161520799738531165635199443876301891900544143752490653651795199681972965416418914229042205477037341611691722658108511480098111088212848668009611159247891623614566814566604493355886094919685174155332085808821537474584445726611038743525223234445529231173694801458012136680759645486406522660391176246880393806303988823753408164923647730694939008867749310688807537541953247458016138684872191582998040241159939044232578364620964724267436322031205183594348657872838275509612025007246864816099146585765422557633067943962312280910719679701811005851575875580226481750904932780806087648513213273535354474963778974340884469408832003768345343444034735218020588381060973751314903537830798532648772490457483783225048140960426239581403919740498929834610223422158883757835156581256254266451597595137738385168769732253783974531043273856653064593847324840928905880323821563295085259533156714172554374093602092699186008033976441474096705572607290068104017105075993568506044353713575729341106206125555195040003801147171876994081560970297300201000118482439241823794031491053412309657626172992011449422633177387844733185788355755673804110053428653528696679389113044147048085916312799162252869581078299192644853720091681900457503361179522110830042104724677300813559789097836167451854644653106537901992171910246134189577809212465235583404687490176643031865732105694173368611519711512312197290950344063830993646215651225828878384336875020493585537351188461855099325139829475756328087690056768446900047891361996104042204944903112713684319072864568323281307258693360123705468893368247932641676932534094671457742583467115625050813009923489141592040291037607004634831650886822407014511414632162040720404664332944365946326247708020931726054325046613960694392564731180251671114196669417603257455630607581923698498279930329881731374517473147683532759314601236577103431420904881168701733261407858485532513057818219635505944005033767415706535800296582549692169381424496446124485307421890439111711855202536176416853522128687828893545924081334879501756640922891950774035081121198033487537823022074178141752413026435349595523530352587065024635918334043201732830562543142972736352798436580444692446952385273030521319765481826061051771629728291060413867755878035230791680286929000410473467483444015484483334823721116616695011592953021633449752492825039434136307001114554875409233906193493009771235219825319619110408714568038310715645215792947919755504070876915530425580581832668879744733392974977995090294578984285698071944846899626034294876148885740313373485839121207212731279950124399801272654644425014298512487084512648491067994800564947974002387487595020117245573325702022254202799919500263397486530950895175816635542647969410340038182770354686743883029453384278428540219667922140684493563698471646150364336271631615050181126796987240110130104344668600555058010692355567827746140254922567363865862601170131011973911460153356914408291518940705632919282652203445302567791679810757334745708116188688942458804634491308910886821075823279945018486369794478687242579580763419029740822052889087055052347874726769829956204002572791345865870904780640849593155114530679326537871908385587439004475590703310059111512233508854343055913992477053857797955533463704190847246531831380815236490893335228401109501886967754996893777995558858370874763875124668229966682879947468883252046005897960176780335932441306862952879343271565339697204938194006607655987664807092529547379308969431653855535654786497034224822370288321343608186386993638045518228665175580623398342337551516718405142076175553743437098739165794229688876792708067862664686515924913525031719010082547516994442113997458901477621765592992487336889034516784024730931409135983259583876625343752021277516416404308271574196205196488701731774260213128244267753943167353128849155699657948361914496698645696501691956283219578156827177357510011882650982389824228886998289147107068349960632436319008977798621560152063246181999969860216196906720699138516852151086000643613131465581725910495818672833949743034477256128600436400532812703480747312006183732709573154220631286798731699447004593837416228178945407414983035952957212590342125942882519058179952305153248034552740989577474288930590656302249381314304370062258441418798485430667249926615834678486133764929666471532654094417612420665842663932024163193326748637309505130631988362714809771296934880159100639266696827429322480867069864684453369575602823214043276856468667352775284939140288014153080699921602651195391470146467876704003163179101695431102787064051583328381810311156032687884608617532691384652681019813961636466129236742975587386736194660307339833874591156316893186045964284677041649622701977191121050596258008047382129685718186173875281699978609832147214200261509474318161542703554580288213743355655057648831788427401838607730658865158503565091922911640326217665801470591198525572850510901540136512599440406576902969012131064573932580027596714042583371232111165184606023096508496628345139193460260124256591808349629999795133591103879316242112458440181096869734575933105319641804691148832399587329237596726948398829420038993388271333258029212411524988169796709394185165095360300818125281139679345485922853610015404351515437498958399070625145333060913737610402858214121809717296310606675421949318813949910489227813576120678192144778455272896045518457701010630588774195211660350792812270007811823006777448601792117974821863118012802554160033425985154689909595502001539316569042323709813505666066639347891806414894220420207320201869481833571534578215362890452696367601310977880429896332066393426838779834976341332929199078507113622216790810790453349330335599881572046506761216221899900163609433683177140432237384734762674368425837392591606701970603604737418812646742193647577163657433126184030904352207872124548336424836215325819602666143927909295471591634928765700576514752653687398871730783707768594474768116660851549538273464907043180494167169601414999384266432188753438333217076291030037894286622256979467679758312063055631282257331390014061696158072645115303891176325807422870929420613944913998535040939918955014025474139423998933001305072221160826707849280700292520608789758637952025350241058132031516446313127172847320169428546414141180715803740276367023829890466713156458330629222520237692441694007955773471559104898372436675265488214944443358685624263655410540380963419044478152859060608178025106351316969880070952274386342144030832949712721747121241517771624100755657609902402842044990055833664249232988978305577355775175436976849883951925343882161477092969372341114599071898739116653672406412028630348246168911256423272680210431785306292915072902724136409095137445176315791461248691751436049051640830623826960181744589280295333675121644744910125476346457505852742020861971829974751816200842208129337501927706323798268165914500052212102059189364164699708470074338540381970716174728222411365579425228019327166313559392396238590826752625316029206489969210978756681225073517487009059892203255090394977483551507025702198215097287127078265644812435046366167801161782361716375046869483939759144057478343262107549493502536975301694562288449961332223139718494613574980581690351137450123264993298230873960504706672124332169363348732810191326195790085793313129474838319186461276503082751497028171522117859522560936071246366117133519753493306783901131877347746234453134868972987151472428515704054883973652143651531602420748801864951704021470986194814039480968506679754007776966836138493453589267381662610264740284447879639201883305470467162643788056152171384759380885453944802185122269785112802851045567265081324599505806505877167841162839295272738728061428608730800154906301783930544296811221147689725996190343168627174904177422087742073044908539915326338572061052115528383652194780829865587606234359783084992739343181458321479496808619029655414469577485627673911052165408159194018439572981648518530693121293565842849457005678583242146642662687274802396831264615915493575750449650314385239977313496090006816199995186365716758798670110218866741467735647103646574227548193267393438795769509693663549537246855960038431423885206674080989157009838221255432950041012694171271188332862757430639705126276187151473825830944636956772149431080962804583382609512209257368890377519572790311676221667371005753900858828923505830346114014342821083944472964881457255447930814800464420633842179659491954822614596452833891210935382824758366066821497313984294005822415311340368513576542622124087988443738427175882176058316778916943993967819948659784905245094385906716959361508639305144448985995036365612583447749808836743889033420177619998571631427312395449774945846607260071504841096794663184248370207261882368843932099855967108859962073823740078811799973607597939938181457024365402255245727474700035122294586055997066703294771345346647804969066785229916832979471028489480355809773884727176671226229964355380287535363125936520349898953654835616320407389918518643430075882756970193957422166169128124068132563347544230899171994553243255636336803340761198929958336872156736022252187348479453230710278131736477918683761837127068295897720427057362240245178682871991164837083975473114972967979255604747307517567536868528798941156716676654581557897032150552808394370213465962717133877700434441024895664168732291895145114876486652946473856807417349107393319412705606219361457853873653796509377553876145903012808101104594344253778846183832121323588221872079625946858819150881273328963832510958884257759293940858423628561159896159327311614202134196167864006566229071856296240637030465412359577134944934985055644095701501068307616587386416342423747222615124075822545074045931800033108060464467683526632291427780196787347433580164028388874571724447561074047617228460208269108519978450450555589021103263639711559818729404065609720351592724185106980384551160770950703716081360002787976988390890292805450251991670711476899673505025148058423342693071931041040026910867741840440879539673446681124686737021485782557649620431992020187993517142881975823196739043966096022438351116456174870474383007399109578993175129005711328338730476963332521087005413296117321192621347477906010348895115436733041663220942503109043503451062714725544229715430523910894038731881058928818950880141395946294996974820664471273646841321711426686207301129707598045019294247821431179627039996826563547081460793125601493961674906646287555210263000362221985930604429467188135214841232313219136573218835972089393581075923047140664384309839972194932167051881758089989089101637073056528279273707008170588930428824635437074008723786280154224482392490078928256397292702088141225243605829915871930898513127511757923092628724388427172378801298203536327215163427518449110830373884159647693057871286684581452978258451584031347905110024355494251699977354624506356448924926749181321851417994919366839311351348641611502456629401923646754542897100526330525851682633814651946268730470957974129699124118506342640580493479675124744525949421247794023123690312299064714378602630761562648497314268486369066001139143349851800675900409071574241069853755731757274595281794488604233759806701062821957170898895420160586107706167047715864980568762260731951232683948480298881909228060197893185110249780061230755536748907763373364566514736054179800669608704516303003356973489459878594395411454085379327967523777946114760778478332603682002171121292532131017572564808506408387166562744494073206980689923658634510219969935377208765290527268357907971060658125829704212401797297192831075801663140124704200577028346297529562030907962671897381858309715141852044009099051356141191499028665219515894647869793424121539801480759769688220192491515702887987179215835052772173544032598005144365300285653113191958822728347833267265849660508615414689294821455186275198405972408504683269570561597471816878771677308092469437530223829488064910044893897163115898774363813115160851825347374859602782824476908325217554514553809396835842841292043832925192595409926140413442242109188419481839967167827400959364296234053632138246925543592904491441504487500069980635043624170830730506230193855834784217205575255649269976111593368983016881993459671745428833395771055992427718124586627227934580344068199357104884258432461576893035556979935400616156612432277963261101147517675058551134221786322057808818780602357059984861517689313844412628094701034527709536022874906330667765005879659632557362587954792705946065597143327166367213175315061447852430205766541626684987784350746781551820834382104141443490316090684899473575608690001596915644907767635232777455138238814380524476812802210028580517141550727784832007550636509943848247948752613350182080415746399189466687123454412786448102013651112608898765948412292086579594634017122757238288312944231113716122750881492210530872686540900957187122473261658768448021928358647664783769427008295688376310551306980603083916380367291633726401805039705058852475039048241251168383514606428048406359210777828561811497453415118424147990172813389484774570872461532604013033567391283089907975653998730015214169029991571026771627597156576098316061352915376192703954335308271432098578684375950731452798267130180454663387131482746803878410053890069461187474574424327345381861337071596226841327491543245408273397899682885253163731555927313598508640795722963354593563791605119755321675684241288281054492097978878749016636791448537201295135184585221604359914519558818200274255378432178815178369114326629546681954031147627502675106039261023344594321168023936389767234142177026426106544695410660292684518634386060224353990872670981269909018725904898556572315414394121956059944950327084226162771709162746532046657930334575401131933865921721088228094702859128537876898531124462170778941839169240303671278156263545309800107110245965665415358196927083810002516320111596138474046241001331702058452091612742286201455389022153306228561214816288121118793567038532672910288799415919790673860987969896437307292248514444885293701401875385240718208076276623885545607373819486720938694656324426693305301002011894921246925219117131580959659635697507755364935786683889479484881617443577131232408705547315346711857662536515081877750240713666937337228688804489087266477937771303259466871482969804085926615219304989603162404692108707816943439266993586784531722124866724361919318267492678025655477582360940593231948063382331508073021751426267438671240075428460483140668433562688489282925325856889737388645205904221199554725542091490148920452084076379982390632482482815747608690590588089502409771315489135282010329715051028241046231308190966427376693009387896165234841189415233744826096304108318951645845325609435789862219163719739645375437698989941517067593546579703487148500521199994645093006139723795370184900548143736889478689664113996259867658954950600046170675085223656462747591214011452862574359165336208306714704739801654481817058538806577991981773856844750022718633612104589589431531979689754095014555445046087112540954422568566238089529268515938463586093101103655413255141208625138395858245810167361364483729437695336978559817649059977566399038511069251562344738611694988843346178847521371103099205289397977214997820287687870676260068889050716176381628805414481844974124597017653855276357179583450954923297541975913643509820237474610586299195597511106481773592090926304514653531618755210550749407634942945590520855015877150140936088446031576700121701416117430057092051479823145611727320227880230768195444676657736773466922233384731910704616619834766820413341465562708018351760692960391046050480872993118112424413080579840568681552665285203403322093404707653668016767923282131934346147002337297955870725624615275874687551756160940783620229407307485483578275927139624412447756824032198264900435397203082938965706855954906598183126795583174727613344651540388577874193527615834018958841744749958027440571135487824232424747498237436232789812294487352828632397952891230969624284959508057311421943065617339913036840021546074399938093698380525550198588381905084237048115781402942329086009979045399013434959815087559068949304949568702904058760056178106413610051353684913381960268702157006106816031590719488976133412788181368140879476552227663930982434992776959688471960619279959146522399705594488479549770717225704585119162192794657894559986575922097462793581753708477033635741211065692945245849880244175977271857092464487723283600035678457343507852075819256447707518723749973087635781018645662219643828161961503027245603228740882316115566114435656093779220856701759454206484676756439177323564439694548863875451718492842255203138472819933182949897385763017778070487137760205849938826557184904746139830081535896013308555953050947096620127098172271469278444242877678620176492100929380413546101491775543966362641409598092264319508947990514625553211838181862343091233895960882405763332600327719462696077008324230584942947226584842487638121994620667018040124514470320944260527250233788723991274563968351588313948103328421313514209164877964305457820069695988778118790784752553432651995555541597222810793748891618836364196231277505254137954926770732262113873285469495155692115366927334167255298545455035812517213648870125323417492125524011135280630798220512736096602190297577869942493006598982614763893452987295131321744745816947193390245531151323760894228410698126557381950546011000562756432396616047241131149113892494549855755057050577542426427764631599474455475501374804476172901116436329671336556831583938035386316400422076929574680492662770466639959659861127166601299688224771472681732621811463221272398126191036267806983059059753883287557735863783357715814026362658615873720305572012426544931095267273231581078899191970775257911723270554722876744735288617854864177789005293340165458556212450205732264025613449769633669199693710563049483448697194124857455551813960810379782713961280897003470172564365268541700108815009068978412516817576236219481203931205564607910988675422912110038169140531552049486676477444814104274251075345105923480415542259529739134170738648777545313244241333225240787055050049553857933557682878091600904033931522915076036344209793196868234395278972898067031292590862453720200198712784283170146270016284970980816653441595331596172226932743909120493556989345656392393392634987331859533501141161424200785508556525213104477140259071825269960692214526501901595017241319731651370040719203713114961486886448683705666545405666414422970670143311429333148541411884230001112887741710768595023303041448184293300567177020517336580236233959782641272017664018378266284864600377384754842405515039452147043129900564559427721506531381865668298710585603415770367863961520865746863366742088681789227328866470175202016222807711891715829072381579600027713988898727504458084912087217766771793742311149175547912068000200607111235688335619734768240800626913311287098354086619497396978523094868522324375971748350662751632269475613981628446253665043466650882898833819516541917864802779373804832737578160460451753940428893075256721436292419523495266802298561779134995056259067817921048393212351350047584056361550842634239177323137876821105605814734101131751827151879262675503131745732693869727087301100176652210889583801223805734183643354944416444950711677652840794348837955306347110184003171826416240762837734982761749476681859923011785901988482895987563218711464808383581102419306030462071075706700067097328503174983077678754963892088816567882033310490837098500246084807784025865646401768694957491717589487573971950478430906285379584448648449734198659962038774496004211270899451356343535366880556514639789323736701287884865819521966526635304961965714919126044746185466913305049281607888931966640017050532004572207798516145490619261776255844163421092500935838570017148464753248492379426695466083323597585880349487576957563892308637571747295432112831712217909928312124674141932569018879294639727172220633541073971790326157156604954520308026599465835710925588669757980595420155570987546539262356738600791781939513851889746443759409674020103822078224922433018908602138634997488115396917874389622005812063117846629648265780658486819122813628794339245894262581823595977269359537361426799230951862874532510163025825589496331406966526843419674391659134103511724813453402147882758293766055967333271092958808747258684630041632880233935236207159963965357490270982468066725229677304531069047117033818779546816167798657063250357908268592260043973043435762820739269879768906502828696678942819945202032879580318855657552999043248563413486531695974738134360019871862509449891029571915706179466754076257342899503804071466220272425377913874304736059152549120675737729665033608300878785937638060233437870881387845773720621028748453863994281305983958355289409325310921626263257943221416035713512723525164791478875988942481305227388719010875168533509409452705088223498610598563190230478939828122113333899269487849829001107128940994816611181761236933230053886876525286096520776222243015385515630228735992422280884917002928155250897588173290542425260818094084295179024808900634961765929630304097878138545176541822356189860245262982984837439943523551989842818454949680182472219179655727574023014108601040657664064811096904353594086600276573698922411419646053287195338734675527205760400689190926116137464167980359931783592477853043744707770258163444051227062736308440246008555180285253193611713208201003633306446163024959681995236716813759953752374173694925578737625139528029926724819535564213802582099490087685224535277675288493999545448689178362660560490297977291358091983590802404370184207755998776732156224133063234683741468162802997366652120690924871931115357400909896730454264333289960782061043372160472400362640333675652460708248763252885327172468943277268397674294777968120452771240977717640577458432465463064089456827181075070487676054660920936102601789431607277742643013700668855296244417447501376635199483914042590707779590698460741778775144478419769474155855419471251464305117354381281221367006885421367690789042499979207283966909447297670797401971947758004774779654898778220309454728054820301382776842203546530568518962714209622128516496270645983730389244595759095104444564224188388885052752655345752619606831343382916683848821569557960611258776683049395188274184363921911986169133192155152746722380422083603552597196873278707147560311688074159614342185510961904606779200717616704411400859782255261468809821826869286959934986279171650868575803556312470861400189843559819491715544650249039999182083144146477223561863636162881193432399206910001212448825907364060505217806864343807669933912398492681945164005730041887945702088819219547997987003780868335126479917624207507775035861041674827201607597869052804963570700254817993549235844631947647822101713853490991178134156352980430926232269305354279280338304763996701543306865261587878719930591634904941803518198438826635068684891602407596704357783256279947299680241051641721057402321120780025917397487502056779049132215880412148641445570382474074394484080848015306060000263073671998947966235029112135724801719566700852611205843181062103874469532002476553458082205569376391741189370369095816883606561667930476006637066869413420169725207787817733222296405722223576464210944025102595939912057574265653522210808954536158980145832598542842218373274968366957009259056167799592328609444777253979066848220346829210455655430916998924485639921530006512157671620649303220452268481600080577068386438232057089913592573093056279128455913153881369439834059222010176065521869093984112648520359793963226159032131085449009950684095772726634216995926842186058867486413693050820560976116084683617118530273314096882415118958035711009045251520424514061929160715784980180414640638673463363271860914179954803974385010759632190515493827848474094948387915119359039267332053202910090615893921687653670385460804773740799606814417578415470568478418121092414478923200288391208878910132989905742512414996642514115981220855122801714229439266257152976810927669675942510036397217631349202272662999800247649911380406082808252474605223705418246977205086310867179803223059425817782962103593643121619152511369425261382715267302997346576954665526967370942791014375767901924747688781331184359706405539787678452970945941155995961407478127916601528481172394767963298130286564539616386320558027176788842701813101124973671835035040795982928854329930627208043853957512423625044204507478074944937536249774796752908772287440024866204298430605554847977520730722817289748073427798067690160368523749016658061863059674400525920291633322907638818677385753498950442873071923225454327407463190842129821684604205550896951185990531790893496561323790963060926612877403650997950472672333447491781584528462088699353684511019543308920488950162594008393256692995242648244521141991266469365716101352789011381689106841012233030219909134387654622647240409603997610733477269859391141385633125792737216564792481108359826297462120664385901880995050174074924316846791019370663562731103781767641974344095519786573212726378682269579130198812533835577395371096720943883763803599800905084208965876266895334161905329235370103440202325128062840610353261532211986243313322202268735708677743972969428369778069182872769709497441191455666313793945800985820896656785900622430582881028930308295164663034135761655534127186239110222293827236318685882156174798404851262517223998070067768608740958113205309327696786168909533944955395291545603847111651755069755001959091433341010623846353420672475633340700746145378756818038402745417466926775591023280859797027327026515538118411416635254998647038241815150891894983626302540487417554172897641209824964653084299271968612599686738343639228758671478080416415846962096707921382770666308965003820356192496661689919275183919246033481873207798611578149734262521905817754367472863337927530660775585971238078490702815390325922423390782647732049019307071931229079931006233788653651472073410368351001645359794379552910529568355759284768414884863045192556104763493590064689530065556626166107359143450493487058346003644994816887063118473866271454388493400102941614847163690986445874879621643616995058743611627147215067001065620190011083487183348475993251035900921589227186046115337137319607435802733397402669121714456482829849423693645941759810043004692309506193707879478696337316478451364165973904930933454766576140856291549575925143773716740197879574113145827411117089693716046622988352872885417804411231869051791770686362437897697482148494489111983873351150882850635584557392907328503455729119303193269465164809572201312858397377578900698368897408724173939092313068952794436181154881522533244250749056675193160509607241261564194498383440504839254877547432227662500386680129551650699826553172293615761920605999749796517226402037130529067994729578365886803395259032715858518384339112098564704078989181061930213736528370274654728147159539344004637011100809389584367077040416416795496674164765728371314939797841623789699738526618104249984594461897751899369481355220667429721833955493252870834207564301418361468872170945149566002959208793513806302140259504450818150132953810578863030117531980358060904219928859380378309101109445848185512838735683708478162538944540060153024139465370721207240398874878492484912503060116023544790617904441758312426347863517899578456345889309171698244850254369964281149862327400727282033338098623769386956143787083611476927828567208777306862143582558319312522261374056351101526149773898498118805565816308301745517424215047670143451377910131145087898095114372844733312444346876355785539729521292575924622417237744200259583224122525483556675790519056202151436015060960465319640091635445709061848322864575567646784066046786104140151725051985051501493004888982487573883505682011037397539550495785390962085710265076503594972581569521018071880695047195092423106835305028763867719176470359845944850042207566580595988040889837467405272970028552457781445455418917502766460973675206955681494741805540058275244814570649752045042944865916254342543922907492660760299760854977372196536791669614700875685681828867053419804696040841692819618141417413657242547029221474211483613497865841202696743215293393078600035426975388475748348770561895756990988600987467443300569886269564676614618870516099920737893408056585353311156508751788827733288670865155194212075646291049725172028208742957297285031827140009850401739112044766780523461328648169625230079441648904622411787769118393790457900070353851008108962088091051009914053818379607635307828548292535172063479131475122296629139747911440710776813696840554755154792719987092234253601119990485251091231791482274046260525522127274691137461249836366009974946097240022693683412010644923759264097317604087337772061272660041576827627943240556869345180876371283620860389565447565423827421808220441792763735839858210889423217203759693314424006904097762491757433743528939329257274705446498578644419040655239982451034274610300570621432559829925754152852558630279828918939862872649106367629071133982793003983118109408352372091735288019349864670153917533193197046695043180614609971177326887110537406690090545888055605205240632247532676726132592387220476981349239447456729624589981253781375701191555882276903030790597064023191652610760106379171817969615499107071168033321003951954515839012083798598719995834256134026613644126180813396699441248509814462862290085524378364916912858360612215460921208839823116955993266280347854872430551819628279387694126481862134670021115829757280292147762254285435556555920510227792962669618928055798549623873045237085131349112571997279303340919908497569316417804316411766721781382163867196642372809633201958462213202479706854869206969036380514740419253111282215347743140048308647682098859113448778935851450099477707164386830176880410073920278910458835179293991283566020720980049352354759558178242803492052663026665715965291327450689807763015665893046686081610151559017057515266729245046410082579733190727572201666445214284870021420637553170359675238034280666849182841987493510478015865753898772165554554991797517857460457735335287120046325805308760050838387244471347652075533391395108911753387470940380161183413248502686138039154799824541256069183878611188634087320403212145281834428356888613372889380414268743846146629294930224936878908928525861290029101159124403383381543236815602234526181865034816799001702953411285169201366140833472840921265875291002149785230690054382848697850009189169708622090027312012269859405751150447301878590593795972660122950317072766326619966562687586458557630969804491828012082962375476686339237575986614431529239087680393815317935431629925279608580710832205636790270736291202375087747449535875922872387045553470582761866859180020850457091492557783675095988779249413663565117137644359221813025063245776193211303253613976760425917811615668213272970694323135922218738033810389818194404136143934713464525830889006805790924780711203483063002383444010192148254797094764809071024466913124327116418343850109599802620381665712217847354054822624720911662191465615757233292774222673039567498419171487315603981901236807608892990778773854967595167011807835132775736180255033453412458490230167931930745635707367130120524429877971773231434529782780782202556510348637025659112911712642836569040200346434548414598740895632780180418338282330367362293448305082666216184161335365684772645991593103445074436517425948870899211127950871745709224651213149487953335046665180602209631117135830675324052298882318275025506564070258158689489995962401375746710859270321667830012005260338181762931666769986354428873778801291288532717092638106495354987875238945411206374729939907220797614482778947470993587216439236764451165052335130334934510774672521187789147922333346746741438451522173362248515177768240465774714064991217766618982696987487347893548850316567390491192795169404676200042497057046994799010193345095946587581252675087347167240927525707293484474341043223281888492552533997979120238962543936233381576585887708485909785672125727992374740261521341662961292643353534057357126359474315534694889177694100403050384168019819153188715585360820717913985782805326998604233168565635733969900403182333692997397283610429198167287505903756951231625843507644948409008836597558729850971658532392228573835878508928629581977243850663781149270443176994430926483513308452331509780009467794494333633746399992663792158391533700820860447644775297467311610930290247061720300140427735794725634722806999501203936433591256081280595804031973229699622807207351089591672769694983530025961667918122679409967433679389183249004276349279517141116768407620689298591886397629579007894639445093219389868091441774194265934645636278863420797724169102941641479760901038661070105190589983221890654152710451487177991388061596337485941903685909143079357142823274626954011006981553595185199368487687766870634434231053521395763943754478382761329461340277647994827810444731217002783979826394313149316745191665920649187524170028949126880679755952349194072116654492101055443441644443665308320471001193144204132994233544763302699733919576424155840713581147419732246464095902005438098562257424653530442833660112128742485744335003260330628474581484267066039696775095764394794171450789308618669152574879917103473526078708113910838761627355111673652324271459942860335961060466271134520052941487612737727285819467695575216861923516262048882334325716426802316037920664224650786689315331802506509186719472906496914562476335805631480529264839609446380616355017632307997025067861164434211789032657925623749669851771296626223116247706248321412860349637280632131915471994713889628273319804220508949784738096318428698535796776834410032028648111516494376105286440683615433661469538119858286353664352458597477483804255112263968640903574538327753294388688577935738714086900250951127840523476089598712493748090218368270425593204564741997267383623753861668065541312235593609472973580342486676467399390773301500313783351222169921530666933811079838814862049476672361855666922707710406601989332155794589765841504933157158297133968271859981662139764329347886698244276226942734244764398007649834583418481616519270670399602661183905439255351957802757987119321576496573692153894284320884935222027034017866943629629578800758329979463870465521012374647351662443662904947735810668441580282957081334069653641686028765504618658648617672538772311733963488984716515428201721262576426085403125099588925811411009241801113861823534367707514200413373068019954713622044148064462073750929381362392415773345447220677920215865279501669614241667217524581720116900117895175787707818647312428027654781623405747228729120347777140494256183918737986319105109088636444970208712751827995603020585282991923840103053830892700707385330600333766426256289862515420214761645691023659863283765612220824450209882760699848829148777634861708209344176978756390286691957057204488037839820395256491931914688902327160813784531619513961581664135166956291183174209402772271953556773200506896209870963031595108920039680714203070080033324414419666306277533866956107687905513149248532548733186724820792513275124887188193355056614817199317880085605709822682863505684652142823441425309223633681945991271623687544622758655475165853803046329075098390061311870014072709690539167283011642166162436621214434838559109734441209935977578042222440087685922749362766773852804512317717219302173498113253776035464546288248674317411276846118663233364073764825088236059049337307874697086484913751576168015775271359757102574693311254503430653399961727351829356068145862149160965878637423022729428882178793922280512315310541056533967368554465742380861090333903620125208555355847063640948434949762850271503210183116888586825734541214908961993492418099256099949292545593423184285627395078250971077703439460181332850011131892442098529843789191393327381000405491118606240707794857697526482352531105508680752854649628058282839547225964163930820619299358748990918368824620779849126262803900069515197409516189451049690441552885795023805609170669289706831442446739485737837572075584739127377392974124520387773041221912560367272383953759723697799554632926360739938213044788572722931529057722463727743531093633177271465654227184824352373436697725742118634194706902590323589640387192427869351048630341978280237836378910637066239171682016708939210871181224668235291490498743708431370747866502729481164745727982403625741264242033582143417884599919046095933358325623913950097179847339529383807312648354255909908039870404262658688511094611308304918035824053037786760818102751025715924694080867541455764646968607144221640104270949788722990660474336308755273508679196517262089745710132780409542933357115868483943454213410979152815177836979610200305157287939459493235263906184273317363402050728727558422385055804327738895917841160059472831208927278309968477158063292440688311262628674176388475771690246577422510898530530503829343676429498230232313650777910249465642522244913247855012252885914019790961596002764483993831174358823408333850149228536547148072599537931243455941566331291164205699248827384918647180011501420611995767009421379371285466198970629733184475638488420750236010721638456703571512350845534533008648762425908119110472626988751001741607657793007308041745196513179308525135524697263356667062346254536752764498590692302966477835046849442879835527914878729631682619132605258605489446170345917038420504272468036317930308486049711865239980520645866954739626658923773604135332509708199037125324366741596239231550101916714089202266682758351177877849915127535505265136171122278113851726752769776077801073125458142854588645310378978303585272829870922732292482049852150668164556946124013309078009815994431097692073874459708957892190427305126678137821999532350185797158115253384368732086592616411521700437003189061394472196772605302794980742719013908653326389807668776439473906965403015352062775086174142875582443595053895017556620410417863147832182816314158637804036308418133244347668155887288030521930616143062201262199629975490046099853103538717718440577464639732721171335579045056132199256411345440226483707100624531363658734091101317354287911674865916240790960071440373499441096227995024235589747163114634319800286033838294284158960269082225391614670883399915539574897132449732091500942446912554520534774293945169907979339246600594062409575672878907197597736096151519583360868099506274722188314127796252347748151892021874268280596999418412050990006688271501027119331822606534301016266914247927386718217355727189064977491810005594060411043888684664423556167459251192580271398792681476443070642645068071197824548931039049757583618405382042585704266404053478323441921986322257367354305983005631985708561442973856885562466106146685346574781438181532768144028703425455412514477938283290844576696071245382300644800168624507187336449598905294443369197033872246671898602792341160257522130450222872081486123612876879741637246422105525683417824429351165840182175810952665181357312954156546636871058110904328634182018145855062086229254755318603621125726353623416535066478433832745756569276006436272125641289417258791053112304661010364971308575417772777530586286697584688809870836953633475675664150289892935228192760291039510630410824544260811485443401057327780086928869842432952646850099950683153502302053084733832049745266286418973976883320471534742506231288365212203924978076412831272179199648183243748300652246894827253291754049208423810591122056834551420749843855142044571940320757102031209370040848029671761525808711965761044657716729965929332649872183436742352122738922375146595732591628158052706345408271084895589376469368652175229519400708234855810480065947449207968044595741183180623705464002430316128070518213626154819912740452868509897943971416719418295391149246950347485928440880808127782493869628244266901967816495033207435732787924387335817330919482588455412770880098684308879394796431442766597430833164182082874793240607943803358230647592597289765594413937078689705075535934787448265348398941608872649449674738461447464885951040945956874340614637873609265393363128237206162935883133985401813884520019774452380148170733059857093287199815921935315968683733587540076853167638119352302494729351365480486809982738956883110483762306922698684582110468121916271005122837522457170287646265995758920534620523363571361138346819483842659379773230099554209378728957348169264049975135024235680366999344408238609141603122421352954606644029661673451835830868309569236560935476164949327835729355217011155031903797213373106257014962963495569609281039342303448094299606169961469576574284519450712632289260058021453473105070202912025863422138485028675952606827561532406184624034216934350283630772174123791053408419853505115155670497058931538593060572187790538244137881748289421461714802053858893187207853871122155997272045750628639671201205429273909109490365281711893188052602821776663402527080731515922806177440233531019938527709058850566646672213456836375271671957016401103359496804293750791144883086988077945819121430234770695423176945416646552621751875724760411124532329476165799909456384118440034286176849820427966921273952061137588129208878838030098649531791954367693275139569474137129116195308706782751008810983784436393795170795206567091601773668767581144105560611959205775970982945820578840603288227940735357666455457885150909297283156628456833559655288630670545168222112224048642963425262803144130014385807940509771516544385750035248617138954461147154261512983162022611254520389458347778330623009679149061397541186970637645991838869757933187548316632067118181918535045526570427995619687046957633678638949279370111363065520267598459138417987405890607211875557207708699299092895198799921902085545864760841859583913666734530864438817489244436151619608954882150164647717966371226204314135417916631147447388247462614192085817272075434878626711936943087686936120505101428800154231727955601515205700661693922907630881708277477452061779597780064173894503306875798343863977358000270887395508056858365345176863327204364318286907519245198644692604512518912851795949836692560711386203613781419336431870732519131728401235121607279465414468331415187932844386316973024359039847719949455268447758257094778159849815534688808390253800248528511839469577230761149830486124786683260240648431292757922398322866323885678677851891534217065076761274257953616782414431814183206579632841701509174722170456359068195501250051808813045404667771652491942859092692800698686660174520765369882268850436452691112264730228146790949582538987636510258098331125468554794636534442670376847866469281162989331521500027184877450895515905134399988583465160306155206987590228957230164083730512750027443467256761548098157983380528345518540976428461355062030561793370166015058432159259713237431312919636947892262956104483456642497238977918281349432139572405299568775562364480431902238073022913290120184899294661411558328826573064808182617763702737616307239703794118366467122531241401435818387177965879933056799170028670683616564269012735828752117017802265012405420992625421548036414507975693594786851416775952835921753687208505224714560342901576885902725414202765149159051851685540254651106467475667711857597739003439616182409088247485185503428783644116071740488981680625965198529611590633528707617214017799378824270531868317447062462755926511179493399700121805409535390363338978437852229017999108235917654612529661900466803836388498562657758415530913605697520559655079414600929952170905810014473314364340182586743022311570573397148124888219158211431747818958089633693897266056646610023171708194113352367835265574593369365317501823494168434538016087509497849796851379703272567034693515028676483893534077700421789986140522944558695305014784328554202000421032755857296188044553245887971024089870978425711533179437041394677591900635610667465238806395052817674402682242676284734522057808046684455165263770676253106343827409816753888026457504635734917198334857293511353651458871131463643178624015875448333582046678837737418177112738780698530771202269872511642364243236192184714241331431201798603923013642609787139746665439975524716301114121681131759511188605946750489874961820592424024741475135106355332634015868053930469721957949887315686316637553801888263642763979951965541984529211381079251196655425200751912637532922777508871116592333335501946621070278864852907039897542469735173097822794125116244795199567321046621794210339146508267642225563239101253827587350205108298376522392190076273370324891484537199873909609751017263381740465105243996868768053224284051535869805600025407029340119248706821634299477496790185703441353029933683391500120529443033896341914635199781529175409530657295930334445097824166445889751088778254904846340393844410041837865325631647736268021411010506428904046002633866635610921566460917238780661248807156810771532346127041451056348764801380179771949450025875478435344963119126270037581981938317412025381391112565005228032378357369697570974136842264555490584215126320228220879703269036332893165373222610976282333479874537010524556821165796750121231205686558986281119283731822455674492000788285543675825188701373632850384851710200964101297321183915079420174664484021121281058603022878302385498040571550500371359039298298249203592872219473795865710568956344874294385657277307259692551722483235522822347576551207618682757140182361711957887198475033195008676546572219918156411700371305486298638365775140704964707892302230133135515642891547942215689009853337013606492774801946459249422244216649994502314922213285653206205128787466821975170164987039822774188934015419482177660182749689379634265273590922780837294680665253013529864406703164063189517034154691882340856495644776008629930503488554106482846053668558493788462343228136578815538843788905066642933498518073084752129290176916195969524934086354060077005219790049685195094196824421314946357132327115140450657796948132971523520649947559719551779449431714808765378156686871303535207136249964494491874230164294999365719939369796049192836520715561159197878167098432251607810873146603311835218408103892100234271638706004935974865768259585170636372871031117865242373339912174176094571407061036258560033981049421802267448336391319085680277340364779748294083732194546770331291598136945073245604548834962959322373228204720355243216370441420779019336357863680705423275544461375064441950127462093829788396762731526346154283830213535553730578604562296273790677141373370981070714849123198539170866655992010027123264182798062600915805556212761215120300107431399343841933606508598037138109579541243651877335475478800742064613776365540799297750060909926142020977765130427891921015056297613691756596421645049858372004953858312981019389811905391204585288747390644440590985414816474745686986581405992402571118846939528015011388331273614426362948097464841076723595847733405883463578232640487193524566441874746699567551845744313302724923553193995249609023657794820561226435156234642422845074785338439921737017152795370581778660443394362334944607899530662498859052263186067688880926635605433893770276617684040838428540117809527917798604523494324507869824471131150491425897771584503465766044472246959130266869871650123170914080141316180561380484867248728543910972766079935165551410088747401948622074497704487155503738871638357984421401251398709287707341475115958482013093562666791695651925709945965543492380494895286964059227837628463169548584809226093403563111100258878264741942290430985561729111902459441910458555995829268030633958061142442326069762892028292227003866992437924889584112558852209940702054432776449990207067424334129431787030627309295243093223943747915823584781082880635904793587878201165078104937105478743384079533771573987552899257608479880606453993364745191984701343569864510191299930624775987959144262677961065500955572732964459144003392628487550064901407510866778147434375476116571022154725155128705682667582796330065876174899635514160257782527271432624780987940567379045886879372743161527661188210684921427475344959643283727824835575521227101788542356606148667730470348676501476342977037960075581486400634527176879765248993214255976707027516671839434708804699068380588588026813455473621361682635219371859762434072244401825683814519400152622294250823518226261359777543179517021093848566585091328991734574785467701114936752699005855396179599534421612934228371482949733455826962934322775506086900930401356249170905326249007579011907873954024671912543154367872188674489379206416102884648769311901549158671841051753585989466694983087951167460606983497780482201190123397405492594621298407678232349659191657333888223589268515649574740209256388883481037563904498293846691527634897480436886409746826454321386884995581078418038257295595561753651255937133975781389462397935042926501206783488189589656133108901408319997773428856997822349722762419331368848048415990529747128310219073506872668443351028095198008868657154756931029085375533180173185436056671293754530775930311539677495703394374682471604449003973707446711093183017878093477234887063703829952134570733005501148400442768061825215303960773127222448916272109796323336174212445905051859899745494206024618596881915550072474834232371891959014421610566969076209248711145826337751607912596156804597562739905665755403488355274570112262148012447556021519988475691452635462289444708575200056070485767503918499711374003067664118348266883087536555821328297792160190439827646146004279484847886340359815178997454986392765523709678429044074916701231164235189182224285336471995501240210932838975522027145928662865923390065019774750213031210972177515309012556448082155335481219378202350855168143428103935137261436850151999155701156400322595985483106601326778828480940833394288291648189560360821860213420870321633246174949376564139480173056993133226513392120458957858654065470285870903007802115108423315656823476263168534261206745677728008433772267013505457732721298361808700209625333145981880505847938044978513538646230132426710348134310748624886850047207925414966642270483015321710102970706259297057540718470011579586452256363923780830498659122119692577116267514913695750885612915414263983048828436154632546891396970955173241012573086612446297466840533768459626863426745410556601330717072270601529415520772365124823955347321576840780176339377685238347128130560993092117672156643344408124525857592533460892799183309485501886259491206669870775921490707474197989137330426512573353925660837955262049336180229822827978508665216314240184434293330284685135354670680825436744154294265542013106290468418551822953659511244292647369306726805274633330121772414255235248072463847186969930495260590413940588184232667010326444356453917585571438080820898506004832787950523395312984072845969140839217298117910388317698244162124313474827649836869553448925473991446067834594633019964723074588091292278637753083771917317764442378096202264836990095973178732124091655762013495011482571130120349811307331339460443507189333340126897427254994248012110241855943149591189562431167713168581398079268693778930069984340103212196057639977150023095190262370449533351696980355486989926354702840822312403089968894751171170534272593457534404465539140342301928016282742523989581650023590168015431711139174250339968543550203504236207836747513402914951956490066781947377647994406540182072849675015795451786439987952963469716660983179993025948030359792608317947067496312280381023761247320397705715818675237760551479536184651982894650934386407502296344435856270165625720238085837352029226173784221550081130110804389853138602704458565812638034705499854739250564422118212118583744754577624409837567260132410448633268810067517347210919654007448620606750104190918832597884763175420397896659039451492573201361012026250602210289546630006668400334370194071979561865226096559446981357351409279829840295040917133399112651977497242528363494959626269343911647736740001272358132796255291530080697160759502723883655469857562481264288273907646104845501951595816560639732245284340254009316193970845538896441028824545074824131890800834503944650463534850587374825401748582228535087057276029825671280013864276275631775343728212392060219119515143715674959754101881067505790593178885552532798814625607967909022596725398810002491459308154094842791762988067452203384319487684361625423152097094742702758713582395464192646536550398839353240194688325520664093282198605512306587847058058975616484898565262223156371963663015656742291564313103536979126016383268143925422580187391310340574799201526574413214815645202607766836044891844695122745049765309942911077014050290651710782334678286178961186926472811710489048569511547155282738273629802481856127230080019961133035415186137034446278887034594749163148963390803771341510805462950915764613475351821978996641927914536379931951835977815932740733981821005457556409858297329390538907728220788798218374156940155141892706573378820034826331753931653109450962396925519918933231510510215372104965122113626283334930843724667168021125103934560940977634207802379987954559197366195151358150219585477760750210784152637512370942623122425206837057242818497740739318984846359035920439934579475722484328413990647540996176980073216741791345221990181564781880675835042810929963892952304697861138570434026289335269149855487605664567890231429454344211122287452031246728966114959544263537165176334391704976325446730496988068664689459003659798966225393334594160940705545681390975657205305923010404918555366923592642473798021415410104634714657029883049029205845261855133363430589837225497624549759615635577420586489629851024376077227389776767452759703097497449057489217372301105556501515417880682381661499073617760877867117962128257802926088784288316580315110968735517852330199384463425078075216230879306369273241765617594165579575308123219091255268003669850956776363096266163582029470516273451958327043929288024065173720252811710240272047797893742052466816186897679816346627716151214521130607544450632281135017598164706189650525982957974246597381844645046267561759610472411518523982669542114628102526275016663202743753468159130533389178216015137673247474851117926760568411140942026473229952789232732823743342881980890781284944556007296010043431944437463812763658245856565318002312368915931101760828042730663239693841614444662146074819637740626891289165351677267999809135327350120786776655188863623267606848893734156448364579645418240769756970978965243631885588408644157158677471709486353999245063105906078763867290888108801819335261779442092785655635949408932739873795640911135405050745330543318202394038986808688026144314466987752048774015377382192323461902485345123613752605114179223067626590798926395192308182169810162152756458160246939668640249379835865716442375143571845983952928001454054247283526240647722197780977640087997327487718173361119449016557294685049146534472529428084974019851288151986246872536195158406700187050298713784741905703923739317862733175661602485406200114644480164398244890761004252249840355319632233107730571640936711135758066333845788544604642656966582200225368612184982988585929762508276278667273438904285826097029707122742101067927415661791929288216360545933412657383958189742294759257592813430775416506396776694634254540573729782342203770329313501501459120980119623961892436771084917715111078558107376686421476523201911213113737829573653117588938238436615009182470889517260864356219039953943265765991831552941643326307555314341500517386221957908684655733289258517020010803180284227625091602734757411817339643606499928134846304973176652379011997257358704046291521366489318080582546548634679608855620582850624972200829853920975505908660449887832304339524665576577812900488311116890690859810781040271614553811923441792844141846722719255349849866491696565618262405021406549692476549787482808183511703121485558451089909339281731524071199095083552422284547505422239200461273332459597734077277695169821442169888757862947976356595373228192898514476941900470455989718758840755228264003684162126934896489964146204016732892730861770239573612302795873571839597458558523656618905602456120332690392861536751769050689483861524242279172473830648254175507530009747916806186156734270756075231730733124277293020056232295680317116393952579576026454573035385649265567441177816960681902113038795580935897915649381309618112206870419504076783955929472101410705091340687388056193507111486069011956864516719321694771209426057723138183010565837267532039667842876351613079531869674474113497692928067988099843673050849204005112564842165707614942654349738770963901331641150569619233320330465097271108393556421303126425769488857010670980247811162026963937825976685289682637281722736847589214226931023165643135453278110742146269851912941858477883270409706890642974095043536695162674258761249398673261817239262971070519092519282915354074277133867292217866786216715926935271992129770847300483791765171018052231774135360294421782596613696019647763310000879476636415488549368029275050485508562486718619393238471022493790473380905472322736799999700998817679609608589703681400768411619109093818672816325240874520464457838450376290422433165920726511362901169873535675118928148136115082039225679070649963171317701769845553523951195117102838710622963045721438010977233571811351730414433258779887750879657614772013717428978915941393776344600703648503042786042299218745775872196561628107349248198018919434578509796928622244963122045253969613518907257321553407004756760993682168117283221174210106412192761802448820854363885383041835483535631227162771627840237901675838016761988132695297284246391942763216244930786340134814801074391188151026553929772894024712979220552608135169417441530082710545405017481786177421644674037372661723548250096362465200338430234102952616917114528375020691736287158668420914845933743808890200238858644320710432012645155226363171081870142126721647934943290843995060612457469531129456146252788065164389228911936592111538510515820632450237024446205856951215421452964750574245011920945221652373235065744432232231792537751349369195039633590230474764603666832552443576092504251641295096897949155439580343665571484800718918541084968737908612357860922536996260063998352999981490562571819044568799125426157418450480874952940635058310071889200448310470128026396355826988298824778927534377814989580626663411196377219822948391937062117108113403702447802310967361897180170283773723705103210300440171058892063211075873790604694934379802882499776206229785941452910419822465047128431751157526357177706803379400300099953132697570237035426492903440810451635448602492735372159387108879431547127217068890189253074168885258231286132524026814029847462877916931532473716853982134317932747430573909570700883749063279051311351041728641104007091826991130605408520734559039807737613651848388825249175424107698239129219515009110328493985990822887869474649845170348850861332785413125302795552087154316851989827583332737883762228263611686134498677375874229517073708588521972418112203391733247351772047478343811866677161397167611222114148918302410287562073715622382865557651257463759929486972968662432250233868299004586092066073591893579814195227742234514438080832702708127097561157103867621555173234152651871367622393879045227210166131712071493065709922498902846781550879829239541385719180822637083167637258266355703627087817914637050562956263504293880761358932078540556433614304984899327314555227489861596185037511067352806927945321130281906403769692272553075919440025809672493088295377354720077718834148715018833933134317030312770563408335367858924974944980157550502722886300545702066203724185086490137986868016569038306064845718392061763744571091482784467878705980454045193258050574420985328752223180860370549409732594812395153726127686987541611435255396459126985585484403282247769616364665659264082271607131985655938179898184098125651595904285754155462105900568999871209835998454897558250593482510579951977041638770874030981044748963546098049973242758805099565345928296499992221805645691980841796535306541595858887967698011447025305690008687240320829494871243665373179863596593170749999562800987189822838781890779170452860986690422051368905043075948196966919473889905655407262898580481707961600182345113607297943229993794047828185270475229530639490841830941367817164607427140763004580692459904395743698956551464690984746216604531788911905293577190970891197164901901735738369631814133090456897293133304080874426835083309146017302332557712403165692302349783208221924866884037084935446849909423233951229710039497709937036899270673690704804496264532376082731545719407476805763258490248803509087786074698394306836846612807637434746766760809942503524968092779607711972425872663394980200806570487129410540571010844696897641712544456195347957194547457199825574025690256603533461484546095256764705653950731970188189141891428366630374742845926418662340217207246061732601729477051052815578996197474713099190115317209035885925916006039054926418490613256620970246649855924541530204958375048026216799642144753814048607582914668875165322391789754235470357437661507240175229628669371862983942052790782185696189528829068826927275558338560887489905493798177746597482355048915736781296456574604460172748368626854394783777362061309696867436771846996647218732798155593724709996934134097786098151141501658048888958480831537285886447987542029597876338063074345789800297693728064055139730638992169942301105614922669318125283251294076695414391629429258986878947592287279077840453749214961767777028768197052679675502521113989830205742149585469981483530179003761241063062723612611090615426466326574743030887378662190078668536961578905102376202775305836208668752049413992602228471531504786078140648867433506093314858217615198339622093958048430875969928955475470172372322096513698363107936375027292953066477273871400602465493653565538360765751609752528899772119108163420125528212282800117827746333478161030630375088924245752865351829652254095441419664058326439741468490484428158828060863526294815120460357663294873212815693198627666931741146325895610386536624755297122956645537620316494646881739960465737918762971362473145044717020483411824322838514816853097122948156555700289764761208220294798939195732117022223018157975487433150525429312451183041141848835952768430103189292329721216121480412401194297730632133148400008419355962719604285865375612850496693055172379234901131892120226498055680232895389768222058918723934601699022140067889559108399192805728286545824772348820222770163803803213446519093215317842622903818762183930802267655591793585188527863090378836872177929159969414211135084467840948949285623923949642140106898407670066354847787169143930184229669146189289647952044861288511391701516155437780224005323542195160287699400409294994538121890933833802506063308145143113415344186435799609731003743739082209190522728724883712566524283374090025330604818102560470667127249155657476901802222458151604408456554978122595504579297818005159268216712596463082314196431556010011203401280964610176476733041532524780768151895508182654629085402270400813951299677029262639211769978639561374727539690447542712975401006419386188970299490165247278259117633204643013101170680512168476810221879126842892007716926857063592646399967388214153124844399983034526648891072029340440189847535925106197429819792939107882567159472986075921462297416067132088019816239518506457713871545484066431743503005713333471623046831185612891878044373878658253134150917586519754407932247196150064083305754521470198857857196530382449663504627979908105309305162857356717376146178942780138401232261561478511481526496917043781604930097024252797052760020368451388722160308654079163947713864140887596165540426812508760245088033308189191070286940419824463635130075776770275444174127988971067571009359772108699613130349031465858021850366960986562892118638721642464672930802306186845178701479154228410206114239713061246260572432049707780228492918511549364276145148384060180283729932352087862471293054432643561098399839092604795027744067014121902475941828259711168109140551680206813810759984821329797098358491057051992581059473420960055427129465458831208611443524035294023512692080131002450648829931717718723758273569989615373210839488487726260717508650661147703307940906412234423509485417572202565758742396729717279120717080704697814540221479914576227395612322085826919814825821888403012881146627796335618452670580945675022486166384224180702316517450109572459466102905696622458508652278468800032081889315137191718689310953359387818911179273259639748563147496175382968131239557843921250348271717123966343544654753809120305943388157027568390622128377895034001292132531893615949253332373129616406580099111972403967466386659281790644611388807610648646215595713644091976981492373415322120892698098932280034978451505959496519036065623504044397135144732183939266344216068412524203349140847629669636337170090067937025612525974451448988755125240559939031841334190981953219965004840973166333161926425296635166028584064402856310847279027737223058877911698232131830836885835215833756606046806822420745728635227763786001972311694397337418966009993920961917853775069418805331648063932324853796834091138556167274585121165242236292265478826623247757037529161012099376684312249233694996869177615732300976836650500123247593050180783001606815185720536410847374314660191854316226084187368264056315203822721245841308165943057850671933568655811065457541128431621811434495661594924763799476626045563041172055169345277743096439458885452096000894817622677979001521002839985083575084430971214453718002303049759513468230480702823803704049316794372680036111695044355761512006186077698537524080264664900831944384756813930717254676379364115749880087543870845340111033786913917762957424867013437845848871269070202501054733875938160441756295351545310500664537548349875624456417245210650991121846582682513316177631328838002044181736775677291798383981080466027693512817231949961919513653403102094236556377907805630712855018655330353758299895102533878991506493139176188020114146014571226077247190968056276183880031161201824922820277441527722767361279851391854279542260766262457507300356910701440985566428558602636883584516419106317189035110046065026584407183907551513643009196247789798285752465860240186372492014482252140551301908085609564092980915444917748616102721982436403369455799559583920704318772536600346514190875331661305137393691375831213746438929006361063138603192135675080728379774865133133538149211397619352467031879014677245470833587056382507802799133692690271005030789357026762807031592046728830960352073348207246582609894931553000669230419963078346635904984098326781097794478209723424939158860292250464364720668249950568914765373785712833321460849882662880189648383321942148868929800114626938610292328834455839832458360150170408457951413582644930187020214760281321417171765953483978164383501877793626577537765151834027285231706926151315191240766233548673962344857695606500168066197677640157735190368698869485834410814709892007353067209935837190403431712095177926944164214307213747233843249671969270522174477817396650205694887449990573387217236921887840041243006816351748373731918955222343466477031249751532952721242220678726530210060254909601659554590133803352098350709153751711148734448152086198730863784882313974474408998972330179830777937692211429961406361798998847856257117229529801244973177112426128866548939981864314344211804290047666470022601178475780694396966095094485647159431600617945818528636903080334948973406152447152618853430552020114876043655762645730231126742657387072038853159640405702856589796540936688100345964392045159899651596127850219441323847360706636903491106253979408065379671890512744689035066915792853740244174428397965263515643419097464664968674108570530935407786054306590615369962496899742096191077336181218610253208444664260613585141774189244382267312759512932411830492722086284945146323428326872885179863833899902481107300348487986425337229577976451532252246243203724298454023469005336037387000022411082310935794479360906130145913605663383487618591157789672573575522480475452651787914009271255050712311541638838080361285102659563719947305895934922178115182458595160900612070832281651916201378113239182600555345362660173359008493001124156899726612629830893253233854749598637352901890723073972554186890943632266464088901358732500840597896888510193484835677135232889858341673416979325166531776047131523518997567592821257654845657462109332214766722099695989598919860555668708339652893708057351120313110965276720986882716811218403002761696856069635292309869616404489700661865690707814980561515761543628833273348736677499701840744732362276612689771936642838790353807824029963445232791752555149146198345447065066595751907115915228238375414338861696812478285148355162933428312159248674071456437397204618811184146581493297930259716701437683132063719232926785918160940702768204789904599794531705144982323439297638905520674163622316378627252081628491743785884366755327778926043280120510284113551630198885616380123829154357507758596505528483718288942925308225779153884972019257307955065726374490830249033663210069635108663177947161893090651326779177471951705125165223264450983857630000214669014287768231322666432114676096240373925517917908048078476634438100468406198678097652202343990933726967410200677216098031006998160348579591890115462758742265901098334111153898873881069641363223248779210282872734244216271542223895313940464896542266230923425382496390192215819620362695642652960646476834711082956198071425012314216215133087942652399071193395701122540073005872100300645532727423405828556300285783721116870888918446550855619868397054868272377010787661847322703282293244133719333934806921931525239634068543760825463595954952530087746148575607109902572168104548863090249226828227167516595053707134329781376978532616338904458449784614454921816057816946358361521164845945509494181960738893600605389584881491896688894344086348448692677488019873041059736849228069990022421657812380897347831404322982384426653731693552865684712225161769622197277312776195481601207969786578909547398692966446040440444499020583469474174407105237165022371900817400993336675594253572648549235352362785256746202061685189111581597366842902463334087040560014855010470776924571837246097837715540059452687339376186330566544355880215095665024497948498881191325301397219439458529005020875824201115938102621953903380141871608965148478824321707160386471323470146338249282531388134292854109619790731767262545987708240790786409640211686910493436837711939331429730624071246046309664329082068299761686414453976350028890665573824659499531873064408384765122994471621843460531290403189382283471307191533825952575394312101577895183827104809581982653851020799321838092881152434809213165523153336634552167323933509287483678368369943092427936920535639966573175184096967790307115880321700297761238021636397772559870061184265113815896887459551844566743233854395135305537144213908162092979199869866852975684116770749209698042778825895759205638359563881222205098863093164840111761948143609241478490234589155854771921365156578706292094704924531129776551545738673918513125757980696699221856764428296897845628245712880985893741575959604138831841462604701100223851187713685896258508850110477094610215971575279037374636277094836768281743127915904508654300965726769006727900279827099996497794943560544638411801181261357597621891132627363125524473435959731609342219342661678340670002165599993886134612769573032158353742282846691548806727426252429398526344809175496201789838037561295165191706172157230998999768725740583925082047120299150454423597597029320207504763502672150550320206956183328603750711455244643097981486226479333471029787897530200742708349870119223467055976964508000956568727453696622313557949775402686141459099056453903066679512722407069453828321929141337788279720140366422898793968428677714319299452280615955929956280302861827360836552975018683369456085254182014860224115527700685780978513742039631536117810824267887148423658579383790750269879577344135132352846414792459141060624221776406939031174191510067455733373279438991372933458935341778338226327876206063490182551155893088305516202572274869087294620536959238533287969640673305206370170931353798303996039773380335358491805005137471938341955148405249727196216449065491278247303820813871889218198958023287556346632070885889179484633149399810747325690768605526578766958924487755602323698446691487133594148684206710368778672207057597363701642976785046761406572258139116565332258725420661726059774672952923156498491150703854663180841987137112420299634347592801759094843480848286958273743201517202505470700757542722922991355097996564022346518141531442174455312621612454184034405934549081252637369609597267793529664125605255295191423878415383540222397649833849421828056938280797751831276662146247145515174900856765369779385323098898005794673166068851869265954505125771838147803704953669814164355835526532396753056905241439130214076248191426583648345356030764551202129602947022106412061428919732465284621032324516347479734339198642228560599980727835514952031130192251737101879238158284141973288485564116355828579454182656149194388686075026079127879356251715532091883026991523612710929416819837825709224284174131030644524062644431055465669716950569248188011765797140770172176789980533265928018084435557802834579272796556018152976064860998862702651865044355895965746927946875332190834371930312410414000830430487106728975614745344665852184182900443181979294000798349382199798627888062230034276638110370790737866704938769316198902621620568215739892985113434933850830324657029458293412533745838168594266945805002707899168326533879300558978373487810711003901400817063825517814818084927429361007559061997434695125469542264550583308113564460361203970596420564318152574026007921292765446223864489199425996838693791517060979035945077451155989919675294240036459112891384338655791418324462272257879588754171969716292788830528713314542554315779615943247921634039797159663759335886475141490848104690873929150286285482448607067643511468388495138036656046081656936096007729364030482074673658635640439967943271870604952256892723965302542339301329764947052720668286420727631909272968592879409794935568613827764598654634270119438486045667983738268892309528594630749896140197715342757624372807615467956739806677700921495654230541136700023888850574609320468043213596781317764872518392226075927860160830018921606910374873003094558554272491716243806548194398073023060541115679438208543710540575931667182976159118090767335700582278458192354210258496465080881961606507486679249750006903123576534441755138967179834396213990514490365710086269831551699284368552028634143860341525582333082990246208946750227464151645627296281893413895055825124067646260926469275489771757006808372281051180537829806222714694961696561041364030980380997452517424156167270695129583685513910382884354211603602157128022064678008509728161210749472200748734826704815791835330295958180132308164021202254528519860021385889309061800083186407496930701559706189717415834723912298573523278066865377881793340342969924145653465975119554209655436179501152985526931045376692023071168627505516652432953184904824821951837228931557726213946844240360441429708558221234017028441625148601724530280554858974749944401371465773015915884211943974208379017124518222171024599930993626445768208736815865683279415626569464767873459350474289308919439632963996642524255393721505222559173169093579245456845989599899039594596760510849725497710048453496792883428331337958904200602704129913501458680568860874539015097772390769576545626417552168554817523674466846428792889425873775166266270636939932498393019738731670917617983326375015884707002892512774156897285418975620563854477065655153033044266179999080733242251999412514437225563152870050739645655054280693013842600962662687779715543472758520461482225141288600322056623177233891354303395914627927222605687425227947069299761757650755682934415268063788811196344932955826302583108051595197813941566138705234786392449978334247683084335552148465318747860371157341782477430746858461019805961371753004046477166445417516349196534931974844374038496198221057256065155842310917293939750020132979874227444696994148642234961016598962137791278741566855906258594385872085135057312012968583817823512523446149357211659458985171495728566538316616087555923212798008105235394675771212018277940199820930299649394233153117146282409442995360843917957810157394614107614759108301065338174914046484581555610303076392679467791358905089037745864697056621537896971363485655671937001416016003277497026564312028640334950433653379697368889179894448961433351090569671186562074834816529354917362355367747612101527100592892173181072652313004240442367239711071009140537700327132917438622039120423153997169166205138531085564616457390603672259893834516056703760250632951333659622649742430850877360466809234880789833494902931499010773297580849374890497787092230303843351703957627240180600092293325739177157692953982507280739255555219540020525982260619377231838749810336915781749897287761450410908533932597182409596714864905812934903582828801235710383155608691090415054258847076100474043613086767830377107581232859190840120149950770389641822950694242474256597424804446800053052622836615440569052191994242910765219074735594000710662837312333539201672313194735459030416968513851715443708085311295499229023603965244060002908549772089405498186732452190606250115635083801344012162695927020008793995740049647970010462119029823524877984058950732615713269020714925088949932689257196666687129309437137077303550746093654241870206410965633950255275200990000140694345045957491214657596481090951208755967375069575854134541189332964950006454436696177842568616758614148108350867068412227330961581337504954678848890057047637629665477796342791085058981329517384037384880277592570181022121850797811432747290045482226900491414862568878840500109082059431506001811082553957322106001643707392424744481327603678451265469331159176130211281947004633154431147046945144872834391533658268945204419772921298069924018483287923918944989023416119199362308696946635987513468319262781656912713719323047793519020622494937469753318869408938601423428866730189634314400883193938537712337240964178493084081776082887267336678772254154687481384433383693890289925319939555090939206529572116169459871958211163108679331126509859955103202463271265014066154908050903139964803229067519832046290797526920869834578297473528293186568398337936434796489476302511534926191697277022065246301377954077242030749747055428004284428117189881712684067713613077190633345026885378718900167396715711924861452613084237514046189035799099429373944288259327377013463212589741829858751196282488448559754446242339710160772679447896259960369124327076369174441812305104656903171647796560735912498459057805284704440416977880581301113493150528195746452803765499927392193040375881221647691750618208346627954600381479471571369085869333344308064437981069947196458607126744287742233545109609853561000545850557515109946566181751146639854217471805147346425983106474219857598554706145784169588799522459572894862825501816831923997221663059649770894692127035388343902701517133856585707081751159050040620747004978713861996511000301218280906310078868994836399473885881598973715348856792653996480890843594325230638204779793144462532653623290888717308471606415606776722491043901896835837948406755308477041379002026945270278263729642641073619411852911852767662839986711378545256672908378210969934750512187654406658041113497361487614421540839417185448526866375107221578296428128692379635053986376640524604965429132170827474275372320381633977532057570559519964905669037432808220274957800491198768524482429408506338861089747520432400769898518238446099057615216226742703341289634885714979136622536031697418455644337059669853676888680801645486555477995588695045250074834661776418298667101339778723850210199633816206566233173628823678903370385172001521432671159702109976662625836859195947175322915243306613259947608349802466579379755524257205909340812679319583453078293071755224344210859725955783580250988507753402720777408311574388829892224528360230749034794284934458329305512278057637100706848964020587133698649991366382134722088163708290350109238904311757895875911640161835288456543891726928228300844832700672521025966251522590348505507112487510412011917422694064250575931822135612123902250334700899288465133606942108168322263408205739801375829550987191103904637992739226620389778146487900738403849199245222736521310729650427899055393024879850596160679400157858606064140500432198438485273513516537544404821577356731113362692631357100049111209184039202693074884900567513766951156426908473825063953877496537993842700250335069859301233985844092483269985233460679592158307437678706785435687282650260954209985650548871228334171772276435755917811925820582848836446070969523874165939978464320222552107193904910764758271988513565648899100235367956774429395808841032568961992403870668415385576891885076443080833057386695784339116349443063994514182075775198669886049977561583610947612029746474151003902659171759916622195554181889514184323508533889435455947528519001102260404113848089647577509918049805725387566255833025941077852656958690199415165544287947881870416084927662862603721586706582247364333853353242194844526022466562862488689794067319885573767742950097050753278329987954301793183189641890130984911141679101718370042397676121645267851844867562992279977443473647808159073564677953034449399167727079985894422868277605573976296463600040025498448984460067424273126206562937212270486513860570499815075371319004324463904272481307832188766511550328043805195257761713142529700852504528020638578139116383779078303816833868157252387353739576148382043267326133544046885546555983485523468669867228967123388438498938573993353071677694248681150256098467091213729111154550403449377667180286435463453838599319391941052021799633344680416570891812537909437815109551371483666961095572834882710201684679448205027857249959242658300003887266899509390133783730997139466196462252412869409334764957466411991660944429124090156590985304123048849890330152325704078378766789160426292806592108573510589616361286923742680546127624992926737497885847092683318084518335454045391561460952155301983974919238130374194683318212006194029915731352059464287522790363309378112861035278677274182449642107907588355856437336673846881136608216105919514503708728294751147563597921543097935179615178278605522696188516269689443461041578693875967461024278727908047214479789488013131777295536088543717247773886214617179868947662324410962267252965303528230960424280743922533993196031829209939947379016412836544556830139262717629359466178215201637897922408999280652924549708433175437668896191412646972890685719605636953741941191978174718297022190019025086869126399782054301866309345242563941711997243913690086205606973039904031765119290394709259601419840959402987449419326627082235234088855135539589191969637372304359059443002766892507452169481506719800269537683925102726047478064680280504322484904942759261884691975872286173681353558152722688033732998070793242802222568155328332181614393639959746770611900647784029586665353670499499746765384129389118849958563499505128824046840716038578332421824094837958261298825524679346950693253586850501698595822889889050252851119988566150874225902100448482775642896140268731890443478890772559613400483337113968896061762703504365293161870026929560550910111810803601933862828343522526536271005046680893893414818321547151017555220374220613419800300279959178766248168373677726620004878569923437618641555099575904708205607522697355002581111316794707275519214564102098716483804694604074882565383558809972932126899812959762611498833839369000262449930403442169391504920526417848530076684525978943756059559746199333098141564346739607642510409504655075023710922805980212990887163706532181043143641668045846657602056225109794119013395716239191765481057377445465115291906493481136202360741036550134206691544724930319236455519598470599162772695841486938503523206667148938003059142353212204805534862589629839635549904554388905281796606707018805610190863790087115020355234440388543555805296105407878277014891684002259169045366860187040382154279182358907334616778953308590809488624731383316220844780728814393283137831991909445632973894870180366711106469965832923041595246888754470901689873649948645337396185444711049023782059940979004140817268475922752061724683371286886649005011287299503688715669306910252600668608097578399143131583870555113472347318211762132937674411130251637718619920967650291923228882512170729221865810515235916980385345447401974332311408545065909603575218536800139496159664974444468132011293939227982197324581642256539625802510012210133944303426347836234611905798886558265683925949113101632964733335577830831675688261148934882850031984677426854061720918725019106972205595537076882394508948894739746101830780087608289275980890357044673818870235072598702674227919535936759116533754850565383715334770223084987637168289619591711784970886001095669161023208490448664536706918475215977830389290761482906123022339041701584147526507040742030694128395969019769906803876404656354784546865622443245246798043669042332135958529313494199160918326259117553031063945165301144373592944035305087701101301394617820509473027572015807412589419855366374323707868819498196317061881725722086930970984452619680751080972332195097903281298173244106597426586913740891876538593213867190781536396647312172412333835295829172666572300641379472497599439224550182352570964724293086115424331024430603662108769406001356505027928452424154109525598370286486664196472970848384276683397800736321867393999971166612614890414259102655198836497663064701869714162122001232854419310365279993481399539145343875611626434057550516229962529276078601958374649688170319432250504805144379505654917501560091573239487566010042636411672874369826107998723720813853706639961187250264879821578305878232076832618923880088280144052364249322408782163781425102000022447307039225944532629122677000467046506696504994696930031200797718022259316254224194678491975190513318351558478434062588440091079695593220512714433686263330048088646127467746252358194734411240612368746017089121894908237856518617629752609169952745757109286139613759996595357744027432273073082339630559588551648116474948592920893313473102352775411384252684534419256703729910500976322454224456147399330684002348256576109237722671647518487746788909590935626335623880839121201367127292505807343762600765643308109438341352699965856042667203086468513324661497045439877363456920247987799817554858713952014113509398300718301534133904835972538947908390042057975635950181369554387669352705494369048899432655693063626106326644221649794544303515587852581381573274614188801774758286149453569118358379767306748429951079620307926555086738521724508772922455733312595811074894484249683189381052519874102536480555235965067684686783185101061828029729495879168007916621809774626273260203290915302589383265998299372374655853471668925699460560440996460409287303515540998020380446919283721097439991804975484531227261005045690885295043288614744640039477454552469959109643624769307065325995313564927846540886849890987780799463506913946338107731791941148495959796961698173506993322123378128757366227804357833263319829594709070703851537496145643513545868246985536745616448304561640393554893096655492750338441169272831282793527923412247315869185256085493263455697137929981144166778299321104083328024621732102624127102991068172938933546926004748241489421532479724550221731595638079360841455594169523586245986331712290690167566489317857320249100152056844696714618895372971721302132887587984837997934810849505827309833197727868165793626197627517398757086722594557473868518442733169447964395969218989027881981431014546063582186722711826229587279943923393544611919855519330856825812356684978098621108129479405691519403430506353353231527829675736770654011246522909744574957149831250434890453950059207947169222037555506933001405794883741854397684653936183242688849812492178577838677604891847559692100213834320442139696902273206656080737027447810868160098603168264341952030369681519290948467020303332190036386185438576642611402741745642921121166765499364055399038350121817883089512853455011293486200745560266449401577799296220686238044713422144097400942273035883034670701297870487155554820222372535893037154515231815995157914969404456466593637589569780791750871907165256389511536411559503705408244401949517920824757943954401996062783557912851067407624004658172149716265695773903468729510604004913528220197395076961974552339950393818843004593299140991754972438975028989403894819465210992282651537846530509981070918814476616908821077991258782371881334561036827839754648012384670146097503746903733982009897490707583025891833142015460805818540205856284227748673949986320660515972202564532747697334420194246359427013122164202063998948918631057491434416977678258811251927349192182154495247796886762780688532220559986679204704713275060137592282961881891668251113013502868279965997833641909218888829265361413685664443489617667159176302124483918070472716541491584554008549251216009125601777525641266001045638332312536314895099221484328306483624977253600822947800900277548089826502345907204469045354299409694892816784562757366692452503645915464008090786939490018948667742447461594720548360940403039676209110992669823322373974473051361987399554085651934779047052711550241269959516250070920454169884552888799007306618202012572816606905341098762242970837822631645586350259041887722014193689735128015919944911414638753091344594205136551453961398650657637022050478836311583780960939651224238519923133288254101921119295640437855286221207648467435129446918111749913653558835800818375237174911282643241319636642636020004837653688502599195769794523097930012233005859998368452357900831264227660568777659728145511558589933417467521265121223081947692063256979054176584626049732349499736574976253860410698925349025496457512658420991361652266204822219464066038733848395059135118328532581882726639372474319544676704822673752792934565592072293077280870040645492582869498841441062824369819472071206748013663361054538256603937157251051957446838167985272550079833846616689915103518013577652879209561775908236171464110413319852024139603743876613520101812005166927143161480781205804346571157678337436964064042097007544492412491880466123890345962212340336495882329664962687746926405816344706651936099100897836108612394417988887050868889553610697354851726958297117275902916138808066293196680006471196703352765855007182340785469737299823289020731634381250123775415143065922334707977137850206299313615170863094106130393849068912874129401384996924103905738291461460582713220259968851861704556511059525991129219005749500509988068847213107359242198123464525623419717861758437013122926970929404612583761160962911763005857791137429821107151353706190109386012117337140832001887081911817235720189151392403422362797667603575809105263633837510537789726478294669602152867145668720709982769051120681274329014486843237133336258269221045681037369501660291797444093731017247798010262060509450194947555773859242136929216437632354115567624686516831757860975235142464170492494291940296584196015912640526663923773587021488418007865359609805881346541387774544413463342122403700950962742685123275694620704460707493595882862143327114998992050433154661810106587605126072164243409382545183269537744463848656779289157161284449891614573234552429700401669017540356107664195755881643751026798341808591813505937521506094703957914336986559190734607672896238902982594095314529428204862625974368586682511555695365077799067723690518159595295427086586630040959525658771477399885529892195245885189781601527203391100083676878413979217584329088011688442139480093485861564747817802379986653810667764925601800933775100233945749325755869825620660581776501210243105734050317845404237073534023820349083484813810201363837927000688011876086075627214755771298094897767398960110190710083388255817600191673358656415172306566034989314708889212199307550464471827939125509224451001752934746246900116290792934802470882277306409985323690034000642877022962172602078783030209769637846475498743296414416174155505684057940344182084576530629875583605245244617101146141823412818339157581277917352141268687415369808610635809781799820556872870129046070319541275305546241879821080434626766098931986987277685601912525577314453468292883389609752946933674486519768147711259983681567393582124796398573486122178830311467297730746079602551971860959372752330166032316142614293650283667788352990648480537946064728400112159449387410049520236364212434661583234506861021187101824281379835840412449810398472483017228714045379950370583132495920911529927188428628209522416192442910401406134238842515687304305637197377339314148092951254002764321419272177732700535235554014443678449163298983669903956518413897057132859289597236046002762345526789346717231833506792647278751681809154132181378023602985433699529777045791129200942265505954867930847495379488202239603726097355911335589309486484931454532113062340493569502018642547797112298668193992545255510319977958580211555019924856836492642591386278148225158882146642390024478872689434449750290067452681636450854544094290253793657998005283109208252444369656723081113866181813994843982624691849842777088595670940154844817663757846231474734547660637678086302465159781451195051807055163940490854770304256853057154139725710734240904289642543686716561290299096089670316557354782276568063672659453486771927195623379748921984789986268183062399546405446063952471647161197342665811696134114889746952695032002820035740838276590255578001914635813229521344738286544876006202476570989119544743942078665811442403274184759726088929254839656599180707717699944074157634127758417297692588058312560212785352773783670833204824212509528013915497859474580152757552682498885233234500866439080608547810210354965713830495329522675340677871550081945454304004593026064174051602042033427230314934572114937854282310545308549224173640869015406248787639790324929521634191214350438393734883877328849318019576568217014783363755871691889585542762592253638016171906514973335781057978255450211815784932750911191432137025566129914465215105618782563269693373954385790470173966341484968610682482673106668358446307008071115026591226718944616389095032680326267003094987518333545422036337857181030318435307646107295926428283831006341718954563786865839376556678438980010913247403216811114711283575062825586739495280103403896661973900792834001695686421491393682730614575197585560242791806994286646039893232321200424361656946481628115227347074943012003828948902743807356506022064846396582429293463133573904110587448394551650322770614635773044134872395244290250847366318963437950279403803307681730098040207057889821830147529048548312588988123023373729707798717082997795437370587197269008968291864258387963926633395062758462612432009869153003409337028402858013513523992061985433748693260397493028823903618555918902289768603925231573344084720574549670892900632907024871770446271250265912213791116136766317291837379063085578047190175675445968351738161055398920704255522980772971193699784416043434235619761566636404055441915355802689401251714130253674125436197500507431948701102580591154159089783368217729727544363951334353655671833328519728955406011270337032140150202355381640955500743306512061909334244764994459550861632883254181937282086848923540701057089829717574317745474581105098927675955519789303689323333108372680137991625959424670117522936335062307847499848574310876810300780183993986050672896467842039178119550756255644319281612010173287941496465490510514459701152405263043024260792752489368879804575696739597478364669293796602399890024553951520351721003889649480384964516181687117501001421844464083663713830414043097639729567167459858289125151302286689928725272816666645193083124039552901923093971467721200313677154349399695608671124165638708687878073857528344052989161804168282195208721417973422663960907054581665735676684867847005990262864505506635169380289447645961272699760083796508298099729936401353508651674454900771734467085719896285755920265529406945883384346926522293366809731926250305258241762114861736673336801588984761631415170438529918049816205473681766383622754016511831382342861769532950685770846295569682710436493003113687974267160724612302497073877927991079298908502887334513193047936636569480884209687815717253094770332350835797881145112315638173494789396183478135801454842015914837171159186937843280371183627183538220655999743346457195410568759186124762045154190470013403620035078411637196147289836885241188357892498274614596722615887600322335169170185547104743795363824528255736886561969245251759592455630179239522460110636055735948526937398469435467252259058688466794304307417789529996418639404194708666431463801231944065742607159239756977035878303082467073839556436937229449477785115072779878166165266350106171291270164753525650097734654640322152857366198921273216583795571108081638965232881831254597624574973826353522176608740659830974896491280271276196282534964782215907306108178167503986460398570430474182657146319255648581666901618822720497073545627509901740938516111502956331035228131275914585355038141656351806543094395986863167800653334841220283453733655584530866255828863708663460879458866037096492718503750487623102756917649780315696066579607298123300994434820263289592667583782776867064136591581943172993787032902199692390500480058917804329614961800312229638573165955190069136579639571674823179772996069805970690228595606038296535312799039715930388544480742657786448221654042904647332530640280263625676878586628949664990096926456582173167126363877014343095817214935253364737060572138075630621623382684158026968871330714644777214017241127423050495403273175172088091504100126970055200177818807543456970990989594160723504686560576867127089130368511777951261498225243323873990976909497481777131754260645912973082785747800590013447136122978384999814150742805134329544563581186817822088096879552978702906888730665358343609038459129101095429878782162291359477317458426080781422544421902052173866434068188252415442147895811895653956217707526144111084268109732759102241566026478685925278447360258062220075896781195955442926918524495537478249428286211805370783494469881395107648648654497763745490645086096940440834411802483283429021818783486179917261123265850049629991142175552342612356014720001717965477204300850688668989384435179673958486276004565772131929359038195312369980667638585590456190253576926536563112770508618566494805842544041627669651133484106315187932042787462437962078290617820796383704642497226394488758825403615338248773647482187770437307753198888076439514128590474313122528928931682622700515500232031209486407486013330456544777080707452637841596630752435617974292847538664752432917388494900715596586098208624700457711897766878066098462084335379101858195071862198824544296492124922203362656005895957668879122165731789726369050655840034025974662889926671286229975759793168869522316486166272437949912782671794755050369545440707755380593393424455264321917840251153565459617606261964060352791913583650080155081331074396982362905742214713492813589737542245282128659997729366657887236957027200554254728263447225332954377395520231974331668948636490030593938220492151215837015661274466081240992447587961991389952244875548786257716395944510030812811251506746591539717985596256701836735794614312072392133538326730121931664301370130561730095163869123181742352158681603898592735700255989864410753749726569587595083878559627971603775593930629760170167735705320380800980541786582423112557688188755292406411139806790038126599497363671937135712743010427288996901421091490962834823758811448919703544085434372319707456014045331147925244438709765404492852063292815816049780338678845486408382287595432118596531608404420010105492861045652145954036575148825917018098381784697306386205983593685452184851657771503418885551049185142121283444605584043746744979820732974418099676961658894700959988372588373632260710131632895396777210919946576435738036164791108030202071544731109588332842652320320981114553623863926814187280332763986051686694725586220824816683141934040177997963703891069752634130842200061641958388254783049300187790148336191021143738345735545101399557228137909191213812714770294900609608733239941462409114048815228523089006318578854309891532804849802198333868916400117724202525178030037377881459688429377253598338088446686255094795904755565145958578201365904357843486809801177599975222268978905563378870584208704084750370924019921641315975061541313296741402385028720541029469894975685259376045762573247597488409167622087106277523883659728176066669063729524041588355036476403348905214739428836852191742682254996605956834373752287285816912836742669789488721664819360689086431925690436362740022480661254152896170274393831716982788705446105975098191468917669611045519245874561121685210269525523283246618991229735073338004685803782881493310802826577696416345469549096174236014601076944809074759489827786234732617674985851793568743028315014121674851552654989388677092766120759581609443077352949155913298066728188764212041154663508086287595284630519272878020123323251644882758082597754742273110509260187586294676423708613760027644540679569237706976734883610502420383546213662161264178908524398371023665061340304126265815134890156349742269630455625630700609818364169206237752717365556087819848759862306228859437655893894486383302842939640902019603908264939706874710221581339874373365426666715561535709162031658577682814309537861821135661402271132575829603525800649704514444214344312457160380855614713576380740898064500978165798090321728116367886661819461783100742033611511698637719361002275204659359341915640613701569437649709177699514873545285814950772143336512228780722361849683732928888175066044872628902103030696330309395378721426458439572525570551922902489417237396022616186971118423734449407766770009267816165702774761349330474681339855634622715250570993460553851129653450600683243615931619136725148799092367474928253867917695902987074496755095497321705089508391498869504773433949755981776527338904955197395040616793452025105248106214928635478988972793587571006559608196846035799479383872398363594386017792358792371267096125641431444438236683593397945996954857770714344033620745571965542224120445445145503834726601479148931560325994388353795843420908211631788315806695618594846338598363489998101678826120736650069531078251177911688816088963283813866946404530683361059167095717532148135930467037826274954806215146684382009245283404804460537244676157752386406131857042518604831248490277235458385719532243388907335841272707741287079840937041453075246172527692914844106220497705592525086465577579697238596662686255199139977983713849485407895773964401335149557269196356941788145504645411576863725037165957227266323143231017008744116357197923897713023983878011499383416188980690703716737416551895425025736367770133570914929814865471139825303345671269305897740549192038085268976958080727292033975979135749743694909279974210256361400329406780524818406474855235986192046057742226051051964048438455003068203754489338691211571537249564694208283180244667068760984713419377270097079503865328445730984118706078657913489766829819978603088991156375946077001288086177884061773315771757946425795336629753932114175696124392522580931226346742718809578102112472968293645764101117555334923696587839073454167280902357022537025022326242505894102313811124753528889864412933560549800636381512733012619468711227591095911506126477916840385237990929598666947077504774143089031743279047475747843078714521276838760089893494697992413454801819745148423031497524825238964602976739776806399127988358584158570398620059184821097262190726847583225909263449021191596874270645499900180221220917690750308018796460256142515902547310744108734425071295188683156832193746691759789770804273528684425535385590660561331684848684263804225152847180554508018945168079752361644653624621935470896897160210974293608375671547140773048760476764748784824257913606938415626281849510609732009664094671110790130067870231001442328114940500418398046107692433925572094151154775265897893837347328259336126434441342810449365303638459345078959500332987306684061214910256763448820517471557484531649752347376184130283096609693938173018099151444550850890640620947374359368087978875203700367703673353025402823995254971382578450217364327744284792142801107282036830840263945813546534473214040574932544413960740817160766569228302501179069154595133056559530767196167683335215154074208406477389795550973316821524377554294589693192767765642788975259167631931482017392118972109861251858131140870791253786200420404746219001793638220707416403957539500064057974940428677629998494737799429782536643414833438587610422821364710886142689561933365255067570893324474350349311617776251740030764405343665675002702091333304548724158047470234998131706909229017985711149156970856390112523806683953355523431686108834316866390228384246134610493948396753352094446325891481747757258380542973789658832940886080436678089643661519016950541092159394153199018919570996565390559202689301397420058066629535130475859547016293935538924340731397364998317547706688518283243131304517792897173377637324758523021143766035268279367694733148288093387778014904908668086721859256664381667263453178903414858673545912600358223771515820236625689810065938122523137210442579692359163526288462638710014538725446647521338812115482370642951370783192762005707349871773557002168305174810344796319525014114225211542627162049117280640368690614418236363324477022953026497608728087102868105166628897093032064582758905300766128164456724490738453949728570034238402387126817587923606871818362986675521663129648639324425432953179576784487183457113511088261563160816918758236592390408653857707076351987755872785325169081893361172298488667640771610759913200762880282336537701771894923559114853133053500898638883164309985549354230003209827559470797259164438785192177114267496149714312728629085451929809827259990085962291443806963552370807238808761147126236887856294667756060386268670326251336603840190482932055994031947754656002158194412799522405869637661758322225302859292997171710898198174430734608193263415938870841733657841092460995136884636303115806395008231698443161495547999484504104383395361569002804210352131363575861140241406247831419794867267493326886657168958885791218297355911935298377883822662704759545875551411303887748135471092544736019619233710154444388310278775677310413952801000674187077273041107061653773967610992350554054061591020460386625691248652105028976234393007448949785258086381510495495054278780260611938760133640582402420915391436689917236616030744726997524166351174739871558468132496944926713031264134370356794640301301903998010859656917667154114101845830830289997971955568171419864095984218518413924097905417510653343649126495333091703760413933643960835910517999971697864534798103448138709865599411735149109891339171259725156553410936467215140706968152837836303984456767784300194815321429706167705680944724714536618085875273725423330818167518611664965814158932978820504163194612901644789793927998383560470780473751387376459621378131853375578992032390616816510561803363076975546601628564438011096103153205762006777461979537468629468872314357458473215334296499888375941094240786804645594301182567506127232183331109354834968624344781736334902204212934535461304816258347577399114296245132653780963258943438202088299773424882446975704364632922454637868019682462166074131929363310815638514604177807548447205473828075288075945088126815293034853406886830417326211188292243836759413279405775116095921436064719088874164253003031209913339065996538355500136869235979963391316457618480335591466268609825044704827134655687348950304920225557994191872146475172829219817710188059777783642125633775357601519756847128655018440416398488920933895070849564281280099847031531342602972129772648303123138902224294579633708267094125356199641384935731457859459051691766902952833671074739190834512975558595102783042173620618488119867202236373837834786166575201834431435218289192390695391253118096107181779980365208596887806804874673301645843177503601896196004005396856926033393729017122745825659821719134845328514908265452761078162874871788171913170752886623910474120235439030651813599815060210159804074115208882076677627742295165086705223754329881991452891059676152975529770440735337391501496445761733256486341975994494318489794156819185099350381364006071273395095228261584500921590317246273774103676233848897499422598203368417563207277045732627308266583113041920448020704090063389369534391094887615609185762195816694946937807376505869509781793505269470254573949514341245488337357484026258971318661946695718005384359122255488368517911223336657675144740837841765974181751660801405829543522488689170584406988137489235883875046099088385436256463555431288854251477178312817822497772655961529518630485439527143849407463911634575709604710909750546763188564158680455851229747863525883548814055226742121434639337527760616186795245082350756890220199301319625351133576268898484479773534347540819342577755079230110621746496343002830010503605593677329553349664797424449041075656112854192141149518899939307073794841846930756512583338389976355966472164970002228096357723399805185533286678795752275888940073758738322335687590290328655190201064636980790651499443253776024132282288162415375148405124795821096461138224848311977449708130821698563776888469609224670873058015938930864098035540164481035568854625997170684333844574766979087150198467494735963325609164097453974655895674978791887830631526393824042441037524669553887755737594433697631484053943666044407344684027231077803335791112165253825284050478896468825919897860923862233313021068650324746440507478357520328187271758770282805458724006637387231685544785891275342151126651394078767473010526193383738563322664313095139203667291560176083383635137225189215463665381683746401902361938216981070296657732679524178129621646428687458166981865582952024536601930405399696437740231471194632597060803096779916900963699649974205935969893112065379443866507420316432183362682001200196019128847795262097678064508241831790593143744521677269883842808055555694938836266611217406803835177533229882157732906105489671466678779671505882877239541281163110545993484832464795392134305413845925133881791411087405791653623546080704512362144130184219154716714074472060802380139998247640361313217874770589556696827437591171265545504242617859932371020952333652151075135477822068431022221277212173955542896454724159806277732666520432436815121681460303928616582925158615338745518618824591228449829959910420713392382714197437503291808291365065969312116500522659071056630347450899092191517224232450843920377065070313395157403331255893971445771979825510661559373237518765328525285125804937566839966382019566961305422099546859854072079139961808205825152548972770565380909674882770429008094183063965241825893200270043882772636966830124797933817853369795033079542464162237486621879263916788357926874407192875324469144628321315500007516303191126445827172806323570297340031351018011676184152332273083922701968782421696000651849832599644846984888053142926979598550976072118509623355557331641725330338539690453569252764332724022876160529536985523176591723141619298154150240291471035578690866109217587059082952260752354049704084296676118973669661633614502027388849032968988767240790561139239951831846267749074850030658011423939541677165544361832023273292850575586930476734861961426386913381479144412764069174660695731871404804292715491131838999196345216597921214266503062577755672608602478730388903139008313778744432966950393205384024190604991403678003114274890905092800055599529707915198024457746884291262367841676233747742542698522473927007227181256992236143296878120285237880371539613506891167237190147309747572476269681054166642724324230268975247615346186915454361524879178101154516233260092779782388117252374437806011398929702196694865117551363730642231818752264112238315299964770349051519881617697353400097511896614186723512294480331571364956179129648990487551764628868263696069154358472754839622967802940995544456968452411309664498758502544533854722658241125213039493042426964605445989857950557244908450547674210705767302244249202973676418369258692835168671788214468273817843205444519455775588358655626194874684024932615338564606101673997693642575624761553026694753636767600571185154756034579213728694861331612635530001944153730917287054574635453867858788876215325967023074771272786164543448809228949594752345293573085874542081431331482292127778386802565509036262303204042908587656898568503021021718524624079094396615014880856246109950197607547298079637619819557724080559626341798402585486755424777807228190112721580754158296439765629674225341070786835083637124093695573993201209512296800557410681176069749892048408152959040752472770823460003526467006755334272991192240970106481859688146829090896762986150480291270195652831047631273712463783982305970957813464343804988986952240969865498838373800378495867938141203255902431105250539737720288965266050196857359270477861361980916910142869842023144049166999007251973004279370668979283369500196351191544794438948909583084606066021886583038149683467240186063632249272879156979608582252154551083442007990059866047459489453126985307485374847405731912174125978755144536879663071533938938603264954902531549990081473838028048511917201122883793115704226854295285453001883705373037666348169217608872107052258225943684373573829017050995409305422606742482146811070923098598334448315635508860141279502984109890671284659074551178903890774403370305211702878926335693620152124987593701030223380603902397039740931041795522257064427549525202779665374844530693294809077497247078511988725627403483229535027752899960815755635488593656765448713344736687593855529093559716336917163625492508603419192059065688768257905511475384797893845453395019119282916959065185647378896385921849981079131544064910533220800117878679262068219111960642606596466089716650859300943969148413077376531896391788863589669069327381355733888318010279354575755951148494266666149567088767491222646722089137953173429669903589284240854310175618500172457120002073683927894354299681691754507155521253316085913460544318298883909722276521796185519454115454666233659968208373691903471089443769308969190814075331027878909742764793481375120353277655017147453751003518490301185227632121528103152160905761388537893638823286121283004476960966193491775767752261025048630063134918280605395757426629928049823021506960026613796046663726783097626686700076380592210785730305477035962517386478683396098211455003128995391835239466338819543889133477365227658390066384051914256473179614580959387288049164774658725785908497016439102226704558494197098669956150220513004647329276704976591611893435181955892147422513977181089945828485193825960469951488456744481602883119536212081373765827728436787476129409757894408932165032078941603531266795725357915369866648782502108973428415780911194258231944276864727696426655619610995174128383016701424110009372699769235205909756332833523387464070323864136272953317672788217100779781419992750141223715469900780930942440103580691953509878597922375191458359773966879793942521563122477497335454181815584217676531245573994929476603926259675626530257123839960244015744492043271216476440718806042154829758514096079020635613395764523078162556810340882329072882938586603201126868017493134552151571594077459411849268626598010165373098404428068617102418219005602455262047982259512773282603079805086837534248748871000534714886208107347758360545735380164909693474759251637002967601171029247242832804238741377038818394384940635055414418756659090106754600246254823014597877386089120816347038754233781830855699305140982802078710343455059295505994716826487758334507402169317784432110205555725548493434099800642255559135446443008889185795735975549608557742079011921043802845871363578225203598485482517081153730185972045412375880663821434863174891874892409943542203378125312084737076623879148771531158285220983100805931848984961984022039543672915004556322644269728111571799923074394209392873925914375252510519256726358221892146293811447533083527219136355223424743456661559350754072097616096958864687229966202990681569311173033676444490928551921462226202092699630496737748401101052502067629824303088003594766769078044610020455748106166216762838922121669999640728570791910926901012284959511636526263760534986266305727987510834055060843414531994075841989441641396443332536245769430684053800424998718101875781285350493633607415769558206474511114192885850463683748888081262359468775422049976008398575206205092579611868530017299325477537875869683956517588126579961421796359176523229230648975999332816498809690532944206113453805543927484213286867143872086094230168023494560196365072269577821233348329393678209185985929633335871745523725279404549532439253027357851620103827124025648949813090690554141473673088237621886799825737660511160534637002930108818100525096010067129434963604957370694833286197197922248614103652001334983012008085002337084751334752503388054921645957450816864611435946721607991583688008728553373730090571070425531298703004350802512818540564576769513271780837986111160564730913213279519093269131287470477354502448004795067005798684839496851766482728059485713948624885479549252638724406516051644226582388600568431773047303793661623567303233375760842833874982078094954288791825701420144093552823657260661543878085164369628574212655187119510936755045382502146664756620512134140614446440963649990147710419115322264960741685077710775102376427937227458666253206682315863563574874626105374265075166807268553874499647507790092799042267486919731833922459660373133511492251918277387411215089662013510723970840106851570591301724082683412033318435143656784411350618753742579223389342348185370021805694099888005472252717666661279433485331407648552152184575988711026599348631410797932322706005762992348692365291339780155506779244812446278844319761072363836718603818846152466002906414104184797803962273058502680869670392689221105265921620751186731050737109953102927338150691270344298265596119688110539569193318839280537134171770302333231536686217029528097154165576128502351400221201340488524283047684240038501507041220352938394950673922437084596118455354787259590028338058904529823438768838844887766558483063903280977008119870334995194465206930964607610978607539936187674813830108290794559030399925059262590676090063423131826691094412659242283183123288636008615420034453614884486275206936485010008565339788777407206274359960310216399935378964245632547008146738939373832171542898271873242725734179742840644710335218240035237938118640762376750899899097067570272667555447323106126070237777758102608053016232875685401304146216986582750982599936734232877267993325300583737732494212485859058062181854581239615172186228071839136832146633231627570738768505069149026477016023298300213326331309806166372282390613536686449971480412632061624885107921045685898172602375342048245108314444071975719379225655709389640887954041525673670506624182623289083746427037851669354746369056459637805101591718338915021593589583347620151773383792880458838413436170176638108492483093984324123878414799278401248396253451952189156377919188444461040874082557265678257581117392558291098585776254747616746624868714981386886254376010534062102873767714638846344651042671594786657271029624133536995034095180953559816110638952275873190004665827715790761921338303798905073388201110785169580396502559291207345659707247443022874010544359350267053264134894233270834840106427210542559579051926221423765224433161961205818089017560659803373735734213908488920382702048137141882111038659295721750638651235353807747972531998234272240603821620338502397184095225705841131753984476314378626567310969072192477217463094736664978862800944049345769832693800687660093448212305593823955749972622946090912141274438145256809008753013234301641537364352857901895344855144791741512585845247598049406561400370218204740804184411271463693891843324580053557996423071791275823626401572212851079495642179827920023919440614384247005885594043318514862642197961503964516050963035013667954774702982241046659465460699484140878835105700794092878086832908033492078118593233285286401226326805189825280982476089808033767717218695032842627080903569550221678932406112744544089504253532014650345644449919642449061610772351711231234835620873030865798434536343648255110802182442956954562981043827709678551828157925164332249383897964476708087052943387442453564449659917064293780397452307928313141742832991819989461662502302664469987754421718278060682128413650772955917899805415541868988793816378920707033063011906435730884056028002290166849366272210969787924811578761447126505442776486353420018574878092673648817357501417203103773954249540555975053534759820110678422481518206027766681863848010374569993962596877243595548562918569315252029688548647523917655425928820239535233963384496834436127391737758042675634448663292484019150586797607204969758732884683226957660114021774082500145926124248418465007862238489632168237980569794047497936345257427647434247150579382022061227466209048122090705443379674813480466739768806038890181237107793673652019052843980619844902470609198007357516252833859782211846505013250419381010924420683876222989873216894629827263220634157641239374000594182238197303285934654214544405296542869594899425552111924484943753205516719845554883037485104781749045276245185867892014137881590768089996359435603689979921077667210473461453900889553964888041575604791757732578222897835611244092874746371623720264871355502282066189621291582003700511904159855821230038674173409152605436761332183866669322083604256946134963144187231289098254925460905642953795051472207417552633691848196104418876010031473263830101480956975294529788208973015432582206108170104391888933830011874249724733561808741453938912628433792694402890026347821526374215002342097676539291083661090744948219839954544961428492127601933028682640852262845209004953802186459936129769822191510048655583277305178731804427310667620455919690400191500826898336875133007436806813600708671917297320258723515824059351290051765494872849201625469274187899847168222320802429736775261501640477927977477580071799118069003355851982517671744599891916465634455922152240926346171472279408925733527091382335927100732292533395186691831337763087367241348164049782079756442171216943322493985306043193893038504874187066002091593014953002265190885909925541219265159863868651379630683211037712216411849621430321366952992705489891701674698373899636514901608261258431886280353631905445217076903297270438181942659977024986013899822171362837719116194395797068572883247119525877741077661432223075214106895832007406104203266487641868472117201834533596090689625755458882627683048020930074405881790024921489560632616644811640392387928998107703979261190801058647005755944201147094043121846936061470109781425136957766865083772246271171556024484612003351400359737495768371993374310633404010751807203959660510695512699646552097808059516713874539045723853193156660276986972352360002715479556577928515751618734239294532842152243686588044993533125931514971753584740884193718150211103633091583747527216069306018417380510992703480615225590399391353159032220948631812021494115501238508273830725471322706357028517738673451525190288255099875478293790030709917652138530983474441171297435199943672895952070028218781556998996134155648371819916887117859318978691335597973241025569977230023476053545583646256706097077306542088095594688071097797881648654850819897962500827749650673562986298405621253534476929401161937305932127599540185704538761766042732645687145986475376606919494541970532831303033473196417245562070332441451060956983988527124816817816481251700572535073309806067218305736813889631673548723195188478471262846835447990362327491112124766891987918936454609355714950886024555047242240011421877238082069390404295180541641884699863936790557361776452107834776594041633106558559993632106092852413008814078294042330451324339531998063801105507943932055478378568570788137835979470542299102329880336994711388624752452169846281471363968645475129749594484163146203581998832612221461241816930107287388441062505276651250545888043279120856569180338746495922890990296002011782640993448063862151758645764674815253060922894689614470714215311291092257862062333006436137931854482690908619194067305596505454376180299792189950473249372421753979211457927673288196044295953451348579804377722061668807475288824024864784970277753317238831415152465617645255302737839157492362337666583079568085483807056038582036261889441600333766135581330215873399274448270071236572459657280174782430085981050339819811876337624627392895137833794425690085116321046214240248537458457963076615450620008503938328321120550538688402928914993512548576372050756140285493788675307133620803188638992934133899616908721551596959230105982881878466330112270386846860122454901895360963999651008675581791115420128030091890287580400176894518320519011414009689873935048855729035385095398113521359577023315203346567227811126431185088896806019251070881715840009627176582888472498495994642680561763949040897737940636332190746198972815678909693196820269016590747943833389249712759916428243907292267304136586178012924534533143178575250073139047378463733081425874203441465963882579928907958828297444643218487094103235175893990470648112417782322643873267077769247686959395541766526969066646568309506381445779768238223506620476511484228423233011564758337029457960110739772902317037898662492056542057295396142853987032654842489194372019051382491009836258640691712655750377615786865195168285996748407741773805618687626638880645135899458224267666290970227576889348094273432616068623048125030276268499298525745037150744180010585262018396254906064661771996361418616971105620388939571646948942619753745326939274759133529812558407308066594144783033476017838611122740202897465258139690719015211655312812075594939662891548071489302319850862693992777871143103476715844298038778860732708233023776562621943780610946147417634124651597674546341523759151979429107819710307373310060598046121051879062497394507462350610287928197041068041801933587154686571678894413079113138511634208131150290314947926671896923058275349630179640257298912320994949127787831024740563021622108463650383722309414055336358923128690847792577854011980949331133606527899328096658977334805864674920562499127058263540920489335883398658899401147730567231823984302960009680690363619162257623851020034597136763429762898041303973945786710557763762419497661296698792526196143141213403800883494064672389509486485300618184013346627634394903845284947686555938858607617943646491050123822969325890774833139919005182454988625313073358366298136613824453834974022222389190323746518978749228303464758972477625710071480143097703825017840819583323715950074621107839839232952840449919110413832887812543703410336751869210532307207871471102244573913114823153099816741479197446790016352074583767850318794154848163656871257952455620016041388811350034618015908571026959792732529370271704273416874285891739153434891597066861749189166429248473954993413450712057002992896899553943514255830012260900966455216206650079449302724195748072514917151569281082497222984462073301560134940368343589541873506560751497167628544691994269835404867579879885881794027213529363397160122454762699605722588388577639792983577737248154770548604158838209522549527075680995716246810263781796541925238388488404661117869995989054407833172531469402361308185525706771426490063889775601539196788838724047377070733360553577689315578835056184702811117501546828309781003714104695175339694120412806394155314466274294345446205893500216857196690303172999965773719337104056765198384007061159920348404145162480509465111359473857252073773585260167476922009113702157875527995712185162907496155439723675045752245139701672432774764189485626429891718296764264268846853003745436417652022903407471715498708285790312194150977176874138709654426631399132325044331843090923003989298991619182836774661289650175503695922317257685370367787980623304586626822434160188983618909447939773210985168734237445712662970867793691274121518075937394158018705890469762099735860496345912731569502810173051282104140407325815457567670491171946108030487460496158055427852930650406886136738031401020026783011868887203884851740923516010616892162906429129896760888949904984488684844774310136066470749101257156936838164085701658736622204325499811157587304431529235777913132714185820809448610827399939659698879710321508310049799811223511032046418428929625613401196090137011173819878698616622261934852036185669102647125735843089201088333811202662703685198747481044464368650098787257292758650281348414511912907356082123508615406768695836411976488289317914553740088987986757785919871464121759806261033648508677834455727218009121275054037676520417179216997433193341586594713397248230783810240643133600140838684498885667388775038403770076988690411857554568144767029518402197571333522590289126696422527302524714165878657120630965608100381397455074117017012783287880018328174937369647694480069834883789435423842313608472141642776964990248223413247359385603225695253837097520707781849193662159352383376207182077550066560386227173366659856466939299291087837359946447464004334064712570104823635645941426298272754655677479863241702939845062689016900095969542811474523132399931062422739658009686318379680963854303617060231711407079868469646168559147309762229085644125113790613940530603513414451264469891068126198204562604851343148684390803285117524369282160485549626739532023777333720741479921146825666185407674571310055135927256996738814944990471530048629315517930440891941101771522973565497785843644841398334840887052232106860401960610090884556209916254779532115490097313091375829517919620697576864224806971294162879674295693317663188965629460741639397216001408598526427051161031509870930330215372606144232037508961766389259791513893901506999759883364623647956919487711280206119930417224862241333416273595213718391600421647964386355872861007353021068358353276401852881163995594822190305897469391316647978884053626882967322406560452653884040400211289789887319050032639691339570902556740406070374605670698918269005747655394885609094167009865413481556543146355165184023911644266192764855058393290109350767251950402536621824730134548391534667168162540640745599120219334033133103999253198425223426039480126047347168861868548896097436458598368052058387161755310862133859658657259906209427756766693648197971410526050518309504808130969904447776827621908850762706171893969548580603520920106769845119844121182643989650728962633757513542800721628725481485572046915175951571000892846182170202999544738699686633571716042284451003401367728639986052681648332259073321800870178376088987581300394097044627506991508153191999423663669912157977894649187288213354918001654185861457649718691094588624261594739478325058081658931628186952505104962271579430478142896535466952555405188769695566297908296877675791327480090035547444336757439470349485323493737500780079692264236812762569908858630880591334271876781858368582294266191786352676644082364769884013444820913501585712275861931735533141509540217503272431546575072756105141029800140303437896516111584877013334002501708606485498894328340973138159041784826137285994832360187701063505471769794008642725663795063868213555541661353612670713900749198511326135299563540494940197011901973143758077734898959426097420643861192279412473544280317138321512437389695395349273907806355761469300586986498017327224226854580403911364687824999611380212231451980993535150581821155623483318713752232512510843595542006381218679939419219619043038922973194471131757795869455879994643451910376420401819941622016074833146787473837627599602505987466000819298114685653294260759668955091638232020025271747534169216822859629099673602854569109702597944789799124944311730377935418775477460429929842671985067190608414948780761058591379930524539171465722122951593758900164830413304491114066898330646966627257350464726774661828570538383991176262306107551409691429392781358344537512811678610677020076821687315690362460397553674181038190084839623747653659975339991256269178942902053350015902104801744310919730097831773385065444037460279337999344647556002924983206300080340651722331785343993195922665606684127176791405983513370783365474396458475019325995286565424135203028724202173629093165691786694743582754748682662104406082809820833880683071297881012552628700497975135902903537425251676134572120851591880062722562567135151212795920471577354148802217015335942711553193463284255403455827218205607345298332691577289878631554185994546896400086251427242739617751087379112269107096126660096427486068013822184860193970633836600800177982425950622271670729784784302749321046248558224038275481264341652282147132938106498710275630204709610284774357712181294304378477131436845719926820160850113047290522918229046991919412536172635064542293239525067298476199131016163815427712726058389135809423315104585923920056678124102358166500759389499856818099765486104176971552449983932308285551344925844201304811409367434054709210089118573134755430055445447578777503330970512873360863527466488331157787078405435258225430577418726412188075416046178996824040057556056325597034948964184977658039000527597828019620651890947110279633193262174419063713272568648578199251110661179074311663277385896655182360192013053548236870278669974417099522130344783437440138008700584076157198951118171467699536711215227382747382992130006967868182137136590462072276139936816591896420564984619957173593040107054304960515986117533714538828149387890016448887767642020833075225910064338436252737165273507091598187323551111802954106117330501223991959221563139277328778420132413808749559224329373445175287907293640063537503640384473846492128614573388633441037947653280729843275563759142907484756642240607336312550724033404681451600629988623172561595156696559363773859711089570339133939768671791569914327888164839528869790568334003627843884755922530478332868341427196602251936012433177519565990914638388941414062371385731998108149545461318906704602511734449326458110424449706608479732898887249603571604387301506961182060149304087918174281836857100552417437024959743620419393041031918606341599135784213505375481145537761816823262949943478675536621476480579971672954299610207235884652026115237995472011677371179399402184690694643827097993541399921814723724401533564496455827175410763103757538118740779154348716226226476673303079693332314079939350641201632194870641086420070040856964958189858241546961357973072962272283592510492771947819018303217988656523619988191898115552666787983933363846298621015326469672045868827095111375446814068872532989002001964306938226775134749980399857141144744005852482674495616419790581695724344330853482806892068244942632458522814255799856093889866716627705587357164112474774185547558477089842109069227383862105007735917097593073266799333738812812157673324155977456074095317840405761294673157836505790231987822964584036779183057317664452620562188374700200730891682076219603474455435512044519521674052728860424984094483945018023069646894572353204291094949744819579471471436202835632195689296576617678350101490613447135940043672811411646517446291787973915791372334010865487457923982679072004257642883409364312826217501533679397717257637116281749712754783983895218248758981980846867591176152348948303715646325992207795872837121926934878905684063659917052506079367783146717209294061755926188430663654118882069147128641595495265071343842031203022233788425907913525738744623947291781160698799399078950448426226364642363060026640712639326434355014229848036502605875740286255856057902732544013451784780697384042114695999086585308161284737922924446241115588020063197980704815247746251413396264348898925745512551011101846653875449166198366909558294606248666342376427349770990057754808748189285817870995153963782378039219621781058282761196496238582245269916056690290297898362094136497942646565828995611204767835185990426376659209882483511654476456944417423765591450036773758143463051683689112131798401853804342873029684297736518109356483758718148419845634126858417410765553479656376570689286998483941091803353633980385009904070086786313720549305867243807394216353980153187914192153271785993983327535271935588058682871993176534057861598498164131559117246845631915670005336627559132092356145897788309471139590146628302885013875820770914551592810469499541438217571638986895160959613889279121313153011106931806086481653969457410656297740737511898905648515237499947373021284675458533506042421863046481676454108830948524270474793471578675996196629378017566497841562113985889634418468893716385979515167084935068161938569411637635986634091919965980686596161615882694445482009886872912993436936655889433711960429701845636693075880981572163565578803934801250188542980938005314574035648965998807566662374556901038408064711125330000838554981466661867404211642484515249249764956468049544894960162524281840014961517434752556104815812395787429301111448158207493583791098117263118001264582043481240119558726090096381625567787618802705434815182769867922874643826508616972295386732485450999476946893228575907596265278602079935354913659407795480255516853035736815560916892066337113908062572502704193605302921546373380763474991066524417050538873975701269631220021803885061414178419151972698956561457210406502448171815868471076340878724229139637050862371915374509137273131999454534318190647368643774535530903204475599890781900331524027989036028502203387247846714169874835979629371643916655712570430181620617177401779751716240016457519264025154377423100489015885836136097438506833025368025003178337154131201995895088598636522280628664283084761063828570572780202116607842045401592380116645941086017414373624908566757479094669139074801439859633796183168154994511220176444840041147939271632263812416637989262449917768732396954454613951395573168223890242301343206629269115261062278966622662750305435726306414311367275621140899569619578421291665353025163970370539952730907499734930889424179825303146830220528319112304381463255775604123798833582831346616775035428182619316578521017262321773734028550963902692568044852542266564565585715509685192286814210988897765669736270004900737236739408614777108580308659176449194526868556061793502874368480460528384346737840441057924597020256556390960930454682199643562868357828655362147113555463888030507242281955157226879531010631923073747217162431231218160323420196438088975139718992921517976924096636034064870424152500237213406304634381801540586461685812240295275504799437661551385638013171393078878575204626332095401261863438422129440886380877174347306725330757739102476810384466345156624964969727303650144065785304798079559941451064849731343842404455183797131939168680506245742843694813351620589032375515686977184864690053465058728251351000690380919514123024187721071832708418820896343011636033067260502413601564094874858029344628988246799701840918589918297171218647752579435831103319898527768848934106391211045455124115908136307745511444348049140532215856518456470580387089500319732798897264773598715469269280485749597809035913717480457401925196345288973261947921279086554416618204474396354773671843489544837652245619098826058604182500464652125144577403589418402649163334549647448851432211811528780495260224340221620388841879127835801424336470323237948853255336746401331503117111586062387289939441415558636282006522575643175107581822655975866774163118488188209796703853989662548745980223967977512382812727872216696359748443194621089417307424926103632271743526241726364512804165492525224897629073576730670219070416289041307826895414128641865549025112924556501838276416378014138445574752176534863424475340411276065576616075806160218167427121545564603131179917933840543189052574463271692879907271064690785590501078348006791128300085882369302131198254766220969639372664531638581280152244666998481581834680343147513845639177232949762657750564073789588424544305301799467316549667252381944197917154531017121745929422986344474005278825248706236800911448233940780504684880493018644376831735780569150542098614530720499519832690868763259621543444903185514459890989849114107179213044799993252264071293818366113772063008758819409086577310964126771218814367203297641283996907360415127779558096161333119009572484287238054658241907607559613197286249379854265807255074329766904405245010047091283947824020401795158731413744568567429283333678227606871154248738794922619857964930560028981853070151270970720274740435632013922477183639610804797784267236108900874128042341019466036920441389890453577090299921225108575693154870978057369522333967086523526438668556050767521181813462245528385628510984850137057923134394876791398248059862681770352876343335713579411774722949180625975452568869987056906626808429490745877681545328103634617515550364903092531747177663977072484984339896846526366262785190018459092748287464902480095245383864676830645547096082620092743669476235212176609061317661670872648291742058438684330501515402702445469904215050071868261630534418463221497205207213274609131137600766083667431049365032062506687358607338038320865676275292628911205036748560154625164746110871517555932346400626802735286456110703007851910687105156756164216927647515941889004547022554469542250718462449915167478306682348871437171515251512301770033687119846679245660762043916215049712471954418015069766319850649315977934221517270242747789552374646172258098127911698147102563984686120754341268733615001816398205955001248499813885434646221206311731645029512366040991345785088914678542467429363466790685351054895166954426883454078693808690237787047945626443214486818852717021917621496546316635949024980950525126013323969064356665846258109739603346417001692774374551568229302786654121825543086723722131951792328009456986173235992497587045806647796643631166584468739039806848148941572669247341342352361566341220635423893772761822475573602886788422410224827186966407123510159320827208807390770821850547328047725753343618262491285208142197241190980837402347331512169324726726110247243978194638259059349003757893750539803133924996090138744361270431660106290710542213624750952476274455170367469609965209225766626508463654640219084308535294135860088555873953918360168564478808318447657068201684754671287905603625920964631612040451663289449166383742438441423026203583872016677808599609321461711765482519352959683277804572775942905809337126856798688240286130511787505238082050390233317271734395692911077593809606030987747657957523931884797280159873785720489169535958371298982935763012838113835229036121896133453427271955832458066969285805436298108382939878591300644397057321325424395900371847491145984411519817014464459618811997448203518703603872776978118973197493898207384521656940493037323025351556447924621099562597234345964001182635054754136049225158865801525122999646321253685486430066747810144948435731901641728327543143419334133376563815464568757423730095257215938158200217569976552283931168698610607257225135327394997870485329845740604141844255251665792299621911994315805679149422715115693567875141008905582610774209352537137194089769753990563465050838162873609099273789185780155504908873813381917452771644710068689500413184393513513884451613526988485298713635052182647972061626992811278139993191893102277648813640157645412014187987829634189036389861286975146332574433830145915074596386092353886125105120936561044700395434299147502649674827105151995532133551675140601379521988269501073129447202237045296972689246895184079193925220865760262877231252349473432576327606741979541468889056479524773261988381347825604344150829199215615504560922092654511065322119692420436326629566500397221815113488847192891972720160300896777655959662348260601123497795185244832222602409163188736662383047869560801124358075242376717374979994787171166820390184766223852891451627416872681741263096405999080123275228325163982794922521939776910661645191575544596341471084215384051768654217330887550727949589957116873549419367295744898620023868248012354467219752564896548989611544456946654869403308802426469273830857443426442644453105913618811468910599920132513621749610066896057664863042892740423589644077910508123439047691880181264103259047980087019009106317267458389695937812925329705147245022895687080769495538304822176070132898081769464556671090130524488994758246648660623362384472123689560624910485015061238775010677923539598928607955822950016922758878527918844718108060181977357077701547841681751692016839587384151503253410697811641847097472295064479932895586515291673966112727038799413303285201884743766265841738937519956924352721642290656954809173243845383252714893442792621305121822062925010207208191553633922569302268123213543647242420082504120700086130433092659436797009342813893533032457883378050086559223338920733209155294441367582488836000714363395819790047734476398047673780239871457229165062573132348112023497956556654687689329088850503296692260304145282250128954857985408652718140177638170364024090840178360481212645101191853052537236465112468826939999364333881962853437951206449979392850283707345321553564917635119410726672481892689407061724148499525639372554299656220220360600657852374582273271106042027755466829406958557092953163457912295736545901193144366451300382969585237824517287132852189899001434429123143876673821864514625985486550204545384185967300746335560022022033014264837113913778814624230826232890894403589284140476191969060937608778041994292327764415090890315284648783130738638999551101248016051274501697683167553398330330085822264053568239290615913827769888664677114077046898135312067968147603828136545643161242179999344016059026344807571581117260918878291191376227807473450240430134597541838938025800459744788699843187003038185532012631440942084412397192014122247986745034125788356402553054823680299390406653535513484387098229230904681111075524655005701338413279535519633171239792465727757362950445297570345715556857748087204745669774379108486890591824376265536976658254273657931243153129238143028371767226375410781431140541941285058461331258659205502075363829376843642336690032637262144455020183492266904795950728623313664109628581665227724636599786137464394416404118937852618736534304090047561613845481764127484141573306233502722926921564971028847622903570637066273101099324377467392035411695327632880640940270215705935973682073771924746395970495966028294032699968890472935021274825328654860139518109669426261886610010381262323831355956311549695575031821760529837421874695568503699231334888318871394690879358965489574721618839216222872480765684561010774340488834575702600604776947350567847002662314579678547243444721661578294161169891023350166365695618861514460309317945943382356252619933723843805394558886545271456226626388466191200483012854065490863181974017454056877933975030930793400348912623546755355591671156533113286531516446900180384858208412924204795840177915188553022091627470908942397326781966543440679658709793054837613006925911295855124453518046475372638598466505029734336546344397849204006558731381940029392619671385605903525431936328160712239218976640420833480746288518476395057319348925851004923166512612045349665763649315081683617642180812184424825499631262738959201163325161594282567480332251414057720835622956257492999268852375471015671772099960574902074828430899654746147554699539592076267063848276865582425825753193433170483665526136010956689288161287304197515942027078050392995650556122242377007654242651148827681709823878677549012555026072217890506024481693738976446565555391766278355830827159052316820467939055966934280115674215611331390117319420121888305825580717409239578774848601070711009876801664813100973276210770721688357323765834744095403939815798139644832771272849137510885584932436600746910938378916890348942170735448219717169776952632701573826161822958920973880136647223132354057600816980451131351987145527983823916094839446737309359112955492914480999053603433014864486858037609884816831500077947424736349324055408245466522624123839870355648210426784867572311952361456728614111591615487944407218716174510911988411967669079477486489307379183627360912742815127030289567214993642539516545184287068111648564019088927302949336647589019092536276543742186515095533164532644804964618287635566954517783569327383618616945904320556304916842428664420068044378702237828842682054698049850651084272551620529824804083200035804676055219169310945911363173062400983939598108561835284894705352624249831635414409950976279788357659174479909951996456543991099504253061989427037733938308344465013260981860595475180762580849040167975886321140621698565241730325086247079173445960315380652076106654557928376075635579377807475824790218895122708827101387839650595983066836565942667786559835876767847888206007061519496726806002493089665295438487410538928338646465107930940462924027998554554632139909192215216950455878088227830229804058595226583468733742727175068720408422140391666948762342875765920754786621064029869523041256905248047608012000347551417386933687338953357357092532819332397538218652530270009655496666713009892896006245586214609756026800634047664026441071611045416931193370843575002784748977879451540451949807328857030703080962541563758719659284714364118657059349626030140322227921023544853761568228740124787779092425289537700680732741434805613578883082086909093086397701825437688914031273092740668341009992796740499688111160757075000637108707398864377380184440814776892786194185374062389990772305210477286207072101453573419465616314047448707306392019902149262594901735824471762123422800720894541493559543195855033797080419823435768216374814668780835029197371273252874431644583414588685181728422568896270473733754945251078543669780030656128946118858997635281970638322613259972725600060376040598319417684935973341931533299321383898336430292634811151885182506104105896452863463693601064151284257876327824495392196853738075986040591281419957349015338739994343795601311409753100955764358156640717103730203083311308132908463608297478007570518673432466078170078239001015676707914269255723722284381255678533261655499042696455338547754395887998563391973835834617047519853481038875532380731041174922942237243619375634168988997903790448560244898212059519152779448465111965478619800543655094233149866351159737411966831698231940812379111123779519751156430203898073109585202137740207652757877194142296326205888637303894906821171382011756596846694960818716185489200965928659267290469616370036636586681686685502808410598510706735759051833176456390852909913762576439061246734607255484565145267034608573459238039044455036582790000306584396346590277463561818566330673718389940409285948143875130293978124587336990402161875455812282702002600821215381797758002855118657007038434780635431537666759611000754216275192054075773535424833991869761260227785542510755465958413966742626677804388051032279442992269433246672653945041168585016140377925242725380419988751983710359338298034201455613246616363018443863104340933172214616941547974510225436131352164236408202060012780248130376348681004586720222550197161894970101989621668752720997827139072942606951807201451249032021976962582897877772573980841348255910719459017194991739240600030538560151166261387808214048433310507778616897036988333881144283381223442484796848448831967991169534872328471367038219960304033797520466062395850120830359463836063643915601240104395233074257756268421609905557254087410469702212806247430632997978357271895219158250990315550779862001383606574959457888765775912575886004898148022735216420603485346889423546327826518619614533586572593247565315689543523780204895822181175248145537805989607812798002249253177760941230883509098907873934076434025949541496929058917004008256836873040584829561232847060725676840491872486701482465986325396756970432761532933389729211784487552375664872111685637125259492121586699314931224686047481575982302061547703030785899444291925966832351273703671879652002952843572538683826923016579916557599068677062725796653369173022334386440092477936276193099061550138282028729797476276910883468290926065174937930095076558635931646793685512431035161479176152005437942566571047508886994423274710910805211430244732009896818486662259625709763149780034198990289270428550387418625771457921281477356057514019557648149962470304702962817972359729078528557431803640925278720119246835802030171582447576454847583243904218434338165052992280647619077287637236603099568300064232398013131270732649298839540695561457604506211442842293799312139064634787961380158263294207273988496364536491629622008526104620156665226550680144868355081569466588604240382386615473704521110858864715823409680815488847116397078725813089687014693215447150436538714082420758895999774778646278624855437015002238063163908122989441466333135261738609912817916744563683421842161530466837187803174059075009315663908495190904174753186546678384470822090776924518932777257445467473474274778948762410909016094917516429103563607800102824529055749686484994242705646000284505042843441065685115178714265556880233554778858250258155609069901603911973465022055724328202333080441131135143086819482016619142947914216817780284996016794812197281945886377414891890041815396055196325296104581149661759891224622782876732911989541279120198541133593437399807653525249144935649739564930144715693146786786515611174520093297568957458779732208181239033002285615984242483185301885431530915241784628666455585729523071345794973144939625951626926922113172040244061011086162281444234244963350032083903710567291863960636084615560633908084635350814726714138208574879811709106104965867278472208223864087818525242776910406532869466232452733584204849469673438016410289422073706820140921200546104722474059434261388292161379543737720599726917358609060725494244524763242341192871877970847915611276578481877784875552966387634508814013672985667279279480048073540559715195867647345061812924193059416637846262347780115094049063945334399011307313043306699807461423236172959730930716864171277581296532730865096177369865354026598600003925218230824659894096320468330390803726394638943648474500189664494146853330445137304522499537560087955170065679289596300162654702177186884350067404669622552179346798966850432830988398293077016320358639453634502205241617056549104805483394308452197190255843451395021768241257797046381083811898666788037194177949671376752657597934966016104070984845960003628567039788846802472565695660836730377755696740531886500731413147321962879691170749331885016092454239011520860720716448398406073236035350761643988062083231328437936534340106989028544959952016102113869073172915904741237412617894841480106486142682749075751113355038304585074389820611534816500781616103570433509189904334417984733295443702308672872857426010803382466901056250929181574897042372378634186396917161480477680488032216681751527082342716188039457125034353807459725545397369192944464433773983909730502469884501980791455035363592034909415985835556124197061150544756572613822554868667051968958411473741588241299407356866392522504534234673787922477333136552684311888663074018437663429463663921077587401471848394213625732856170139394967804370610864464368797800102664722572831397845266424969182114140073344198621094626726574093970235510805006605275746412363480533149447066542156171024306664486951328294692786615919339660342936326555415996437632543608961758011890447932087710261313236320695070937224519287700836886198373402718817534765242356342801357461919023890788116575676046502612358312458850754334080103830967815125474698269734259490203620403445904136696271969907999794739326370741798707161947968547214277019279328680748135440015132559936988958887822500696282595494982844661903550163815646127965598465308028091263817853255608742142433992484457408069429873676056922831518740476620284951773339622365535599872101190895066581213347074460650562178247976261809740589586109411050438255565358749855850247213766563808164817519743448990131372422051059855192825210809601762259274678915601257338646044172267831368083318114981065185423887538121088475737072807974512478312752814888589348412236807464482885779969642347529200906870838748286850146970139690585424316790350532017300311085590273479260154302957262831407713797250630763790185956488143959424058052089817584588543449428880666693945953882220659985465819898725095104706399811649390529961582401591854576280260168057253026073938433216716590697950240888503991054110035473058091808741306860231203012736259352523284381696781324460957954266614831633748886006387206133237472237279898555480857039591967507725157095066714299980173756623133479769611089924546597650739158069682807618578895322642759916487299757965207509233838798423050210411245979205932561033452870568579937992560311863665578771574382516830510590055382500666321915022013066180245975374024836541157574610753885908909876724073778650635909484865442659120544452196001517197738735989026223118440241721181013485413155375430738891060568839984083557218877465485615134234378500549034028618720685093360400610670323297846269087596259349590080221109105306603904241815013642664179858916229346981762673713406238540164783980369775810869129422574692087708535019528492712269982687311896933825790266684520103976145180110725505548422542123778735081014970222967598575035106143300644241577262396541654099585752874074747046980590324450065953738705967118893397278345645966115026742871935796242689216053886036824543852173746421278326672296796062195796790532457513473399956932652065981987978593013557920500924455288645425805226560795108321908865281337990475825360212596164640180814853496638296360560663184540728925947107844413236559852489329591621685616206713990595939432226221378294091820268859060228230980836914772983818299159574326245666774389797343640198267090429282947591667294643952834996765168797344018621543048694202707301625052140569638322405687261144375191098932580733646693872053651206554554009010802452002710351686738216627232663482864569232819257324759733349049917105827944198408099751502487460680762285954506523748347824582838096883117925534898551216698480068782284709235855616607894073772785206138325312946525508843529347936743779940149577928685796313024484288519354907117085722487509671970997001248975038673772919863470886879530945875422390310330618007808622694112793209807226539371546121231163921966998894571325271918053683081100953661622075905300397084943247720386468412006276551241953010905112308369900950095162654643712387272328719879613120496071999586013228584563036614761441995941729882639088719642791108039832331315139431866012138465190215325425923896994378478702123996868852134921294098301841643573317510837326883264045452664882323721939969868744357956349673942600321452573570019999682962054002657643345509539073541009036932902294522623012520095481306953000742128852926236022148754728599513426922467789966820409066426740688759673101433276374495898518242998242212531656101847270121822780691827041904891139291494083081701836118305718680625751918785797174471821951291430000098048297348086300550280170807728063713422608663224250806843342185049814171630888799192172700674467634853673511711384318804424668684494810343124116910662134209449507383081903529761790847289323995695318444745682062978684812682327162543569024288351096714538456736114955496899959621722658214589459392326042871293534122768995271208255934604389733573962923512078862031656983502982444560461327358236802272074315059294909399373734704707461691253083504001975274292585074139983617293075341511653264890916728576156199215226472356474036528827834526031789903278840585927814322679008064069550881927567699737224138357679269048891466972176269577348540456283795998055623125379665741106280484922381116559098057796607698716691106952261195979260701115911498910762469237912629481790421938539331426180880208254483129952296054621095746498516620754395048680070756687114436168884273335176429669167551362020066304648950877697952377944426541639094001732530124197110478198642092952251293809708747185058440125085055030119113542698598231609287532926827710159224195591343447235963022830788198833115406191390370969058876949335704383529849670979406728389029793685058381997458048645206274182321326779636121049459986188194692524013427891125974052208335345147078484750110242861040786510264011668241222717997919894907238939126599392209607367424372553038801402514054358871153040766578393210111121912340666332494151757957980246021751102647496366400836989617644590283970461321496218211550915002548666667675866103680143887841656833634517296515566457543019935159459040342331322089725000499196403587887240016910880708426304870621959206385806635829101972146154048920114260970187331463699926789315732844570152303607636190518356774218460192953832556099146548399486976298092554456023245875432375762388342802879789720448215069483403811161234534852209338937660361495730684539388205692223295124872893419358784862937555082734337647064916272159654017887093178991389089841013558321982653554140612402234165218764798937695443276311181172825782359618755513411147768598575848003162184035308629225964696582264881660165491362255798818615221002306086197148676706341127260065722783506744739195668428267417747180076407269768723047785073735242189278984279970894088546189205485336856976403534337674712952677499350830589412122105237287438865675258033515339987626767602619872498602403382573125371789347138266337751947629002787925474197909468074065711158841743774839814688880204917370326082502070597673419966261800034135083899188553504262192262032407364868115867111384567934137889738142550916038133156546865328942984288126601932835977479903122767671472242229078360295499374861822271439256771634922518980768094920752170255525845854093330999561874172232737512000223463637969415486920858002482599159860343163278966444314960299695941735352262809218816055985842020151138088156855843140262890925862609011122132681216666792897105964052159581491053220469560018860355664234933578706119311494662796624723459521548036851687661790070563734480284952060957783449248151499927212899292757277545502287404429072117928645275959772176667975025492272840388480163846090304531318416734707552296791749442825207218571519973002440391452774488333370488312074133580498270162227331034929608083306058831146867813751068466697862285617767910815463825918541422930834509360923091593652170212431162399322402357879340725986424074515883943697579478807381409719383477822200665721869916709763976889802855391515499116918842598110929056968010119780948749894218417559188931942769180518826400389332342770067107368265894535205136301351322609582387084986845397566844331280361719083884035221431381772751276597058316410130572597851403559411177660720706612733850655606362305964913708579690057414358988302314498412040275962591321974828801851806655869488869297256738587061707018922295431475738071240627897008928215511041901329639627048146828932528136410781370257746961978945706555137549088115527926007555549976476697752229625703683649403954362060674590250426543342908337367169178104844848534376566206961850243359218299177517940821287471220436676446715814688246034586003423778033534887404902263849310052242452698125299365440057569440634959002265153044495256468160461400716307870470848411786224799029207684122394286016234219262916962470140037859647372617837847291715413734838247889662978194948240035051517167451500362114303661042243978274205974238629640764146804199211160928113177850627531946486253717758209908271805035944412005846982737291252043204386666918613056814839056052519174512208428578798639307860961102541693255934881549255540798438553089875044481724534514046831652457740967390301028584751958558829790668880229642662273106580007988109165863434321824817088563782770696710331966531392045491344320306470522389017445874140307852895443756458990284857075850311075040947870123618877302157012467155957243381492021048172378682648024012864097881133174784820790754704505206917953014895877921426067564287323363921138791263281083078083011986154992954700480021179549283604006699160773154856321805739217696837169568175011472700362834418014978094163645423256727899607275278780148214921750386129762481030166951689224707282891200526145198103098952980756182382446559019807863200679411252118760238207252932905323006652208079654701873151158938448810771069041538509628356127465173062206407162707804945944276340942546085649256496089877003349216841089906516923898277028859981129663434124017756362838897238258621017042364355111248801637988568280185944451121119008983760685841987061337279725596325409584496413165804659323301563440895414659983623151169566409732687916829700973831612737026245121131671203526993219119497150055867711301270355638786653884562326099303203822602528369049410659876669098258326775094005890099597764956657701906540372753189453272249068003399356462108611088307636025799575674504279734396370184198168623177174312791997541537624320046754286422267120899953789375168665410405080313758012517565335440837193561287437690756529868825863099653076571589824616257906467986858112459878008732949462491179104432754760164636888652799529868557634299812813393024540234737649420647979902443238240429946605396189860115514298906046030434414185543784927060156188633925784406439149087374661474824796224905629700808614891585977710485462219795187269076356343916421088438794728995824594013990861926898391484587646396619758913068102942346349302397753116926394068121293571984679653754133535806854721155018262831671327421724697405218752679118404382883009064500686872255264699581905363265714876040404705276573786826000151258653275973757216332371270452645769459068314120343282164967553327364440910191944509846675701071081847339209883623010114597280635714730415491734128031965331285262684669247236240373948888417866304828007549754884119630566771353727065775929490929010547158231040223068348179328987145337413106959516791697361524220624294644558795338752440516679191466775869888918863659084031764902151908658322280707760808468805879867922869310312183476310538908692298430330301402186266648881943331444608016727702768985136007196451222242533971826831017160242865223488053742014755205003283127489955337058106893048380535020285552772236342630685702235413180718369752593971417946166979400109504128103301267326329577751489807765714278448753528204343127105111675093999413895312486839355240336708321257527310274677926638112467485582441000326775666045309233582710447335114732416784997452963299568390624031173342311113317137365992811425266949514906360768320308055100320732522678562478953562583384659035187142735199688868948062894175053427065350790361070779473804358150187720393292519655199915468335626130061137108010627175818010441207413177305661018759821359347042831935758749039960193761231901245150897508656548885693169351302257814160772399773256911614065920385871486384166122402000041330549993213046884479098697363908099085174871490340768533690448530602548860744398647590974060647814832654738382100831883750700278466903884919366218498651586140793539252554060885353340124399787255570851111745696843310736284417228385993615753024269976054564510878102399901325407300168577341634610003372861880124679970019848339768162921867230934433616190922312081166887118923377409469810217655779630150985677241192341122262108284164272343291761784231794954063321587268476008528606415768283220196879325026207767534574259012997019931358610391535024242669665317985680554123239033959855437913359174002011882919349279083151185605972882267268152530920024441314210170747676296045280857642458662206600857849698711790049810280782100941236935471121062918941259829629517239772423332682383305690776465799435590979331579912139363532188914520584980887029148652358232745405962675820117575842121526674014618620171068104940748004371691106798550563928665963435457434297492909074158805523393052677984485812882444821473313034109896237077752647663628512368954003845954735839126749527213995176658123172772834700859455509453477304573236715711152547799997956630969303796775004816603808213162532122944582803225525393893066673126224651882642907169989114519472348998405199877216336121067889041215213878969748618276836644700176952241583106202911622647532977048615482792616509895331662203340852640275540402357646675742727414448766725047896571365897369502834736663008925707182647138636624894200579301787433689418917257992774913430644294750820080970467130281453879709199999973379065221699837932646581959482709155961958416260696525254987372232816838409199550942719491691538853225328675157422061866834523045677787292154921081247323983175374071656261595323666293763074553140416589733650406559141800230072674858944855447328214318494222722602449822925868180922911491758893614347698976211201398504615084290748725763796401128443859750228690782352038511409538786138688077155687806136242252730947781513551480576922140128101205113456629365904352303588786911138004686572341948376871042044899076392894154440142796709354700014020167447858809632555751586201196336937710952047078040923971344800058146376099060288751544035227653068468939636800383577174524935547574757283789396537692835219885969740836226501040403730385999808030071991325748019166838838346928601887636366390458911222511525399935447065906774208443241561787163347034164799640512356757447768172021080357166652400013758777055057965433054898960583872892841961074810013577025519829331651373996384412722345418407196730223851150867270467074565032405282501619781525621467424612699081529860875534528283181739084961796078901962711369562246975228694861075719617976860320201569493478248372366824259957485044867589835705704719285719674533831726497243504519121158360973545797185351911997404327221589065349055412341154770113468396211370757950821421124414974751568877766256708040989825624006122113833338023974403574708532250420628864615479896636448636608029900774897437677416524552867937106105811066923225083063073688598259824686676040420609649804822250357023517811587329417331821301002646071394096342291153010187130890799415435311136674975479853957891641185531639471521428774478277019467508032643171150201504235779091719160626538184352490403225797115969319414492611639732513382337454234076078913301214638127548051356705741086928268185264334183886493766228099350910223464863421981538652934195413723282745449095932353243090468563309430124997127789841685559752774407738681746256424017080985364944529488517675092621276995806678945177680022631090087297164347487093643397815843142527131109877654001520482889681428196946671059281479573059012480340490589521502572721162016354593348401714202558926634058572101420112776176571766292975729708580834035829894098857046288825083932145883769233968277103223509148969050969439835737731410772257723408933419088917808351098293067422356279576927757794915183620717994707874170680013477774677897861692015037633464589425479661223045243645240240046337146270073994108039264370217036129611108713637685699054329535757927035727051781150997829808430859570938364975386367759766688203192836952804104504124226807488051346053738054416634632733304758612179846900666705391557330751948362629878880012369429007607705233685207213175718364004781476605982077329609729979842547866862960227846980544801604586089515675889737171742217735263023146320729645224088256471204046844291848012226482064408583580218680870682513424746874361355022170839382414671205135734748344505552277070649006284164329949549043503826052746375200400137604883863183218494121376308973505050437328486611668650323993113228614409160972402956927597932106405568917953726836339528843066407357662563319345899941982426447001689861811640207124357250185838099805407216638178294546948750302863615424861288242767325864068068576732023603072376041772488966804664918590409438893334802168523835118325979927780797146959029743978477759949726796875263423056366514255948914721390967856062611215807053354041313730413688926004698167531545941977930965381180372476854870318787326425427641076582650038994207367582819222535084112241698175074577080874103905540555227818778729094742436892525534457624690481763491727815797453508623076337472683720276005980238191361452715975192626686014617088469568878357608796108197777017916713842723217984686094730427251902383119637765570668646512527925617706201464566230435343577466184929637501061741314769593011407119785355945420382097605245313462368620554486509958410944662035895156659596845839556863647006949149529859438678307395084843175154086853465863973861581156121783449670751697092564520438046960168334385141640554219567901919325309262946310004860394323191200844726838576897592330866837199173514298796838476829193176430636046198457670194561074873254824394636739743336805604843349740851717357498483150185532764672139059979328960859034853041852904192460241044191185776933060662487992579760668705678782268086779200214835556055614885403176047531338325927837765850348214105381916258603969737704295853815807130923661617205450437826080760771891590615452969680531365658915350734971058156695680770815777667806515277360497475205162668630095896062056256655905630097978820266158078214865788301973986077984549329615212731167726377204086017285611354455458822154843685462836891052758629203356496189015551538391173139153224689449641532524786527871323368014006740272699363214613034005108121087435206064416682986688552106695953090969866010364345192065889303831458131885457201315631240478673819115909285898578191234075308323427077931111863202339193877322467028227650703436563633132401522020730933272008932943825394773274193979137827475493763081902316232862065732090229890543907767561082064065269895020413804500006133852550904600525467517862520546834659360892163570540397569600602024503378807369398959265035766912585014199371477732439455099525005446583685667668523054447874715133738951653725826327705597306673616972090644866110705267404178998697594038067771951829820651730470197815859969782543159024405952435760151126859365352740423140496345812787471110621310553016568387595786947070478322849758602765137277509460873537634617120680476129028411630515862371055540999139977486584321580993102039976483222823750879321583815998777671919951848022154121153705337820675866022635112766620016154998351863092794783603065428605964436218425452952460037781887188280703898377885706831794514278523449914458228747228521554526335474762761642470924848170893681386468287251234551938506581773364767933611176104821722438233309246249911925493270635138208529459519442127276376045220015213235971571489562557429127125281143252307466777864874807735819296948085223834919106851128700361718644759716201673707645662239595136157800383876863712237701115183114154577108726211188189602605254055205834901288863597861034372374856176402962367755499575482922530847744696574954967616558104134866774580354263709149247805746811158116827259794842582899744340124398063930096459339967745672881679913954298432564651873559818793389374306591288311144692865870332609865186749243246854336864628979335172429162379834725056040405781917937033213413541937318817307982739031386192373705816811291741784422535084921354290005582718273952658807965799326533318080098409964675615643065697712353888304694066361779407468738300687659507962613766344757661166583626063402123557719738212279251947312365187094140991468097050842178435129115816294574537037830520479833695177807294710043481944825529596002301257522827857265356041600583970422422370947028197437347011511148101009862634621574342287456847854090401289688455655464351548846064669516181493371212970392543741578622239613877374654490277847856928308499715813106214798214436778240867393620410734388789007802833965557112608842432143822734163355589267221458876320832108239631649263205359532599094509626307749970470928997876389558053809686454460320820823043267428595128372242814806035049618177055521017120244254642521438490908748945032379580136981552121739812659376184989916351022866299137154303235484803520895815755285381556469018549769668325895426627195753403862802211153208247974967563184953085678418040275122785357870458449385338599035256114308151994262461566021145371605686945903870026927414967514948381707884960905801750513138778604439809973167727491938796630183495526119844627380212342435416164510770775651214402596549446997818347899463213064222269554901584092654942383737045248829347916295010000114230927490247668326405281823618373295251428989597915385967982798115496724917258196461841548646004768705964986692307748854497683742535280635657620138863846946309541793917266847642081399581953397392167339683155828023540757971152469542924447640405694817685329772386404591777769960171564975012556343674791663137074953803706968073211009496200572474330205485837505672994494933039995548335235187376920852558623855294011690987620231999421131739627000709734731741526521791542874313000150388336629214734590741523814460967110732100462802650321896679600367526239806910902433798818630904642250926937381228411944646949076755724468241776314685977228209687072780146223296124198763809146546027418452110972209751262061241862743853713501474112776986752645371139550503839702224022092473872732656231488230880169426193987915011442766348876290689026241681827749950548489915998788716642782754167626608225758074430138783008473151107653899924295545256927811240331311842360965032848490707005245223109604714458071579559853518988231059840329356202115673266956251720154007024279831180491860219651701663796289143577558678487915901046388009907220855028219238014535021709381299734314828068281780054892459749243724759178472698149035255775823516741755112232951379267695641865689637412256101581874497047426636693538797339281340371082910764359592200542827602989830281663211987410755506371648509376809789682314842688402189715235788039295750660237563644036703494941363670559485048132366421452397543683021335175673851788903655105414247801174898640549808332146380447922534086380212454187993433415526020119987468756943341823795278936254130917462771070854596980623926792181033978417061824189253110990161326530845053415286455813650111508864816209917753295771091976185648895680216185450382503203796245710322151734215140809018068024252023599385477440757144852747815529581895340053439481920220755964570178187658067942560976750493408122469672240485677835119016022132894897516327876430469507665056849909503778689138340805684285244085255919996412825010803426727166589221236108711721091158044876575885081082375999889782613267601404431908706626471483519389116809277414956684152952549153291729376204331099640475039846848285146927813060718191062761452032109449801589032587369901650021979618065472781618014434743410062757647870360812081356480778828062047622159800354773713471819674630417774454945694123208026030367524883905063170441638103089266488118429053494066357716942619014551602184160178023148312174848536143964678859818511268501427661051488573182922182650132143221157076253208381253584349541557354515923534691500999343918063276342134992478305741839986554790900653606869839802780783143922392139546713596964788761904332020876509607737149311001083597381185251044699487546198187066677387209872148349979577435310590989370230480235616396142475847752258269604592811248910639789721668774441297681652910478159866613894675853440701373901130003665670067894214309200812374382855631474830328948714766399684921943907087439452445752436223244173471195591588426728956363150622635343512718261477388721022712253592856306894846292009882821268095962371288162136344892282556583606053084866665631544139820130896040792410905781209753902651505775625561399825647644744303619966693300544737373655083504161156430348268899448979210159179893463297193977573840411392414634170572384509855382091579883655242405476985576911533368093553171621735141895370935496950764220491295305352968135325691044397507687259798402411859591991130454905926320385015233795290009820908097119634580311639553936125776199841587847182457998926668497494047292617748938278104969926247546913753259909685745283283320365175661172208289882838477911533598639291714500021451494342373331889437362589489204827446972464147614231335504309213287577370071602444683834950073819802354387214684671481498992960623226604175805580755823898534980339177784262484795222044986242776118341004205110572734803960348275430039207621887895086864954082647716246133162615215436217249221925177169674172617757558528549954312744859403334880875116164488458350483921993573386230510873615713414266428887483141179278713127605917697877112841969719808187428696549190788172273212241722539514493104636214507322769916937844131192756702775903690465303117824136071904215609666503281197170337577334273860872288356001094028426816692066380062919747659730469753655433808133362770100329805784888661855375785623099247183479541845994870887456096828633329367784996574435068212856188049148116028910251947637064507659982173166713252382558049327120624499778126530608093523866932936704497804326577162788646367156946437485435647043034606097715013627294771420495866334116281426360855084106074593353453817646281730542497538364613301290307804475362312803807406410178819796166196475878059322982147667770202457411832433525951775842324193826115538587370705458464657996759039438725438627338045122993428457257027897862046226572751955112277509126653010110477982314630116362786927895620570077776150034229789344830387904071105797072256912375908248038384020277555456886205034250096788752148178907229376302360676919541198689840913543097735191460941517740065215507188175793788840412734689919098175476175055807662379009333489155139951547997640493681643444709135533988494177071232054892524903427221166471328487254178776721500814765023553826046135843430685030840924614087069161740746019349123531658116247484514550246833392527674494297797014852248717853200458852645412410096525363240738579902837334206343068061407140061049414780136624264779944349020339454397032162009449419865370807750910846741493948591568147842791427620725582569857659773683529586473555608103206556769293790785764106091009046459894691154704209166499548930092027235527028790717319865473846275027733871407725147940832518596060029692316281605229638292747610687397573169749736436001285844318832434936910151764654711355485757400851214441807799302210149484959786350664851469940343293514268005049451997187840617780883330238118026571774085186643583295512002961291394032991872510089680046647710343952882499991558104702037433946192128785027281869502107927717441619650727501636093375092539135724962950164989328245716577048536196859664149921830762003905342408153493092506816851647919996986301186356843903458763989644028937254016907395724721303737564172541052084836842677765495304876525487283020234254587473210357157478832781774216052756911911319527728154012461579466294352541694273797991518773194516656096923938451898089067518701810506540791402699861116822486690999099869559254353948424306987717019482864162700832407551384032504609823899140179804355398259978204794153739210544783117285320507946493391682098074288373367235033574093781210972831842285012765363639169676915620209532417017999977800093906495804747705663192540947954391387312211122496026799895506386160660411080654049634600484445887891639788285805535953901683039587956627087256917427448003754943849095430477296759457006295331951499914813644414306192545913799549375715849714884906603222059833461782344632488494083861413812661126148526683681855780770734916517067194086880811545307185426371430150306455375001996553990326451979606692640459270600001353713673341096225406759730745938782776178893864798470809878473150495252385397954323911650068470054236297017022549699902691006067045758331767821528121503610229279642024708130886728636376331060202289737370808928564106890117811663339468832341292150460626419563494964356612281585672032475186945677622733867314674767691980580752419949157102574457576998204850641635834482232509154103902282264263880551276755952279373307419335917638869568444878947717612729644830973156862902853132912578057113668460036875973655376896190137517874366436058957866378513112403454007489608002353263188969953379066486266856563842181929657581404471947029735459431323147966108545998169610921007739549435710334891466571740501832247161700484316731503653297319061459869375849736281752609385354106112070829205747889780172707142316454320588332437886330896473695066107421780938960925001639366227985228210924448502950286508305563817692414957338317911992189753075943791251229205725880169353834431025528761751296845998898062099116807672639920952403550500714465960597251874740226788272843874691554316942335661819237654745409744499527742171800045821964296242383679184886785249744762027479924583900024847863253478709745244163144305016070740195762387632527198650407904579751453055225444319902811922517133213455163625192698835402137301742116652149548771269079051119831955113839933276725180084340185744567955294944382085583907321220198810806163729402976346271120702071500197426391354170252940314677914669728426488686582442364530323652072111096893365372934152412609161547674855254649524395038182348469706271881494986772326677508067891136774334175798525430041196407926652402205886491094166474833740667429644087446053308776976287977207390035787085820311636206518993530491955124771603595619390157800137871317854283630202955482982697392011767520752125190876157677712177858271873715820684486359452676256643069841507762522612539948169088399263709074531534820463148065795356463943972386888276824352090245659529594146992551891845704056787622295384512176005601600788036387764302964804609430116086239603060901561442041252387886726824271504848163505330407285166281656067661909447584944226096711070271425791409364203172195208324699001472594814877899485629993871576972047889807616970912923156585030796639657073892623864405050168015867599947359747028501242999412863449238586658034298881398920927244058394177672647098210232501985439331591003022290887566173576046913504985811155653251202100973870678563657906366421223583977250238222340292439922824186125638514762175609072233389899983582113647158869537208794474811364203066230654953018558551599496599519685259379377426542144637051256284747338584017613337783122508179573287679836217624835076678483421816817436770206298687517443007972592104119626574271265771582796229250079478932421908344099218297451699171973054336393062892375897355496725071954843582672573446676426965670057681985957472200826846965734456089799377938302738204418550004369632717685698966397836925292106130187048282498178243989043262404801590895761617607601355795371927806162633256823350182864761739294576988549003005595176708772096749160691859861451955872240535673364359206167891541418105736342486755413853155447101998762765016510503983452532718661080246396162587308299315173752271741806103676964389627244267743799247371778071884170473656213947119208987114715953792551815764403169512536109292613754502365471185072867801123222512035477475623926582430682326538613083540389952420780230552901838450420329133369897922392353882121450119348930796040309086673275682835781379098258804370283324756193337794569168319541054837721926664650547812509473997112711975599049489183177345743678427128160404090907287057104009745730141472688368876076784858507946629797404704460404225497993124035747929413931825000480271622993502957559613166189783870611471607756444715498425340282518614147437144096353997856001792287757207206369564814643908703595858064097743071310354253442622174834287316973096143982987429101915421142697990739122787946863893135390093492262334833807183094022871040305128466659148361611512752812271012680731867829920722300529568921350104268737669543688291671246048530212710227833918723278524764354775907353053932785916021569174140259343614596032806821952363857768154022350373724384905363825898301903209232928374655042737214179508638371959113321351994280291878346266985032174808164733337396968020071724014167052833063245608621287410258839734169113502883906544825829709353312621380766926270813259167259105926596260408746583462570078338991538218696807864374064656082954185391039297382692692307607694713936477443353920672761839893729935679245525487666180736496032579395334175765819441089744269230592368683754280136808299403373449652163252333183732451149337831668830311047554665973878044755445841189395496307449861630289418660414735347999323288795803755380154537359752307488414051526307350488226019031448238784033488691550998770033547237177362030657483059295703312365976243901931442315514630778017152486431451965684210012271070183800464485662116080209994070541792923683858201193555852825279933537602161904449538982423496662064942058587893578991844854853459174901009433856483507407100718937132563099513900579591493873120347937356943435894493343927032731462001483580469645204140600399150798407156447459461790649630200095278025424790379023232541646893725198944621477708784400363525167032460645678653462263745633875144471059418792758041000858426369081095921236211277771620641192859723031258214002310302245483503883863851462269192991881196718304129340611113580334936803218539800856376737172879547229520684826051948334056528496955970697706141459120697229635110606389554354534172615149854434844203319060877595897287714323973548804008428145025178578751578274566176373135082006704646695204292926933218945579226168067715229623233891655615507526591695480726863122829510423666994484429201508997588778704053483133127021807424553830519675050516183330364785542567441708438908890926678708399994402751097301813808035070132141762919727740318057086901980717850202712652469731577039299489623556656590091664389053419234282929096805114869781955388958611309849059031453403327653932104862378552072089503524523110576918584670184158245900692387356040343977446373494808610141135672052983714895910387337710577974967042496903083829292328820797286552403864243757662002704698226351980633820125778592538869549583297148178004882827520039042500971865440648793873571367396223275430232683847136350773296356167417048604372100043398062778779121982829747516821620329616122976843156547393151995875020496974600867764992225399175218064422824815817711173380299193713849164605689452372774634315375387646033510762377723646835409311221747531732971744319354817155220803420937664067945960081322032589134869276706362154046305195697655743676872743038808350102850332892665925028369857966899134083259038530165314592460374750461402860615509176541570825459287542828594563131083982110446978528103476675761224067331081536549233550628862611749455714582193666416272264901781381971989405773051843952248647161710246883277949815422473215589995407745276252737940274429110889816051677468647797344395796230940386544719633830932585301630017867087387677766035697232539488177967366544245605786365890223089841982152459989047047618837357315641973526204914309410383734008649292989927716160800563010968803360573189149490963134041444495649385696872669108006544819253162440189763776668353725938716137103668607564886053344272867898479731469874824474703649212333468427373906021340102446369639279491897649336020046322038035710590121991007483709221066747336601211599604678984807946027311375403353813512503399973004723210127582769900965472392645373031342508645022615960917782381751793262558285160562202800383709960697589551696956562367084485256655881127226702484441531418532134529654435892494716244963775485531104837014836402757429605991765492007719440282611337585737645119391006132255781263489778070610926586051860383535264360965663602389546044258430286260896709296861102132146042788938253900817922451982906148229753720991165646799329629880172271726678918576887297168625129605878400337819332667942312154659163837071826984170555891518523167305941948004644735130505214608164823039944814644585529184051295223354350285182225871886980470843054233918598526675291155310145036932065130472573150686137602179906012579165501777230874673975603997369283697799747203371698115620144172492078594817517563153874091288073829295938209213557269026901440003133600358669142650551701528833818983137257219687928765024375870622161213445834438037285101704925792920586652385844628474104626360272388419657145759652021139072077057994093983473186792375262888103983607266100628978712706690401374480474851162424018143470318660469817331020624741895995199443651230983204455840045038609783408424778212862221916967894691840069900136068423031903695826002055040363624119762918425064925107001812462301597129210679236092485701740162985793598053771514227248947992784241175161810595213751632946515177125703293253016239402456920650036639892525119978505826556396071031326107767579773623295969996460946299273063382393022801101646792255291616081614719700899668025265307992999773062632736999038831945826720696305785708627257479095304953608823783875399609017364212710556406024042310939080167611688296852457845103875159683674087796465088152112728008016335903007461314454534717272313484836402293088322760514712978761718417115220786032602118486896939657570934822026157589435842101445272429800141288800263799396110797400608981101124963736505301812327675068219535380668401055910070980785806017142451481876287475434625142956845849515279828576614147167052333820692791552916315351447172029051282112071694555180474971172391174713581442347335754783762364718768568746186115884056610809617080962750458669355693975274972674900563337760370392556039379368959076172396796628220585469579518389746984989747813226761917754246632708958653180072783028635333713777172612979301094057345658042838298635495263299511020957341543081694443733057724677232288852548352938662117156534982320913977702060190904645522715162813463371132794107492024871884375826768558013473316258558295780209700001399151335781268663254828475751585847584074609284563116381563091639217396607801787765335177597221091070553423050815733556865075204999490706791887765437209665476551092820593071800081956227054719472934249621039502160156457692013229254375284848698738077496793434980785193434603127000928021418289216304032345517860467467094869165450991308615434904674522981497656853477476802522091087846250366875936847186605943183299429071274665044770371910271170206279911899282627998161175889182420390035387454100818881043823659008615502633306209509816283354166377576805045650369749763046791746408989307304894389234426086683500252905285281975840769702996105834179275827455971243606366621038001889387226501025562471821300915366395621843654844672099769013557396672576691944213397527436980996113589510782715696910506795713015212589992454908103659109387167074470528310602020143973896747465583373047657226112470140966016962210243686630488589911806569505581438867075608895899826519769890520004421809774920572456297002271024788959075479336913129436405597461382211693628153451271156782118704532674154928138907105904437121490939354587441779363059445609015845724977095069302892483530004376811522992412645887086187759801099434110438763967566890295278738031773630450960879915267772768619777650117552182005271635154024156841476382299308764022801141514461876246826121317972418734610049136991302771998906851455201542117222327264465799238759346253447898806782725587362672696257274358749678074245532697759694495460504138967128853044584691806402945364294386272094303635184623353467484500051659409772072814807371758547360543489973828163968268669014616485655462078878903653569100353784675500330409478239547651869718379607864561264144304386836251218150081319000475604144198269158392155821564929292369867445324343245207419584789695491465324264540694693009917670393583830485411866661730000311390309504001061420797870844773457794558203192401248944423519380810149724908266347100955663126539991697381519339746582611469777449245281850529305863245641123778614304744905711375438818017849247559594302118053090366887577496268397776876594072225212903330805500005010328334878958997679619415287782887996856397260157804885193782157716271588124645933559536579259867287528213168754591279275336101452019098190537217832327356919304476025644099978283590105686744854846306670580129547234862557696861580492429861763250580879669576302849242101080033700781291858778701405848612139690643663558089670401402089618959597673461615048965643166024182184478926908972724748789371235169117230469077044690651688860755655393048948786106066679758471530367682498140101866637633774843383104991141147449696024489347800216911099643271653314730393554446066751850877112992725515570420295012393667145487283961062444375483914473855775325280510819018585303562335214030903813895904228050341580964669994299014089641030303177078127111445705734372836195213753058972437717794165058874461592016756830795531102357492660681193129158285867724931632142201576105318074305720243316460888845822403543713493691286502910371062731953381376459089994505807956957687125245709745965102300359082337955687268754615155448249750024863911907465459138257275775746322013206739008162079959659205084170808005399066921900529782007551026582781139247245957851204922661791330225165724269918303599047343496267946083095419688860907396423011272335201790030414595764528866788653210589603792969004345912121087954540840125742651710088164792975524353865402939275896541098781829416497188111477492184029635120440174581881845118661667769581925339130581471138090103317996425370752666348642480076283821766951293772046880732106283479939640824917029728116675299072909739554074897407160200516885965748889655305436994229595909792689817840410082261932470909771733527861817624300186062890264916219819899317006132451684024457397705296374915759410995598327998524735175416415349412269859934962569059939712631517931253115381780005320837158706745897781877643841626656581651743749895312791650405363517880405065067930539343993109291520280167241992696360400617379087901540274076641397965301232078860179123792876092018085002980643239185033402335609851522668163500785337132451394048800630756565761231504877448991872530495709346889973957631057186491505646585720472743599091914381054355773569139544555530661468497012146535663052116599852136955044343077863522065610851567162556247719091352038390443020689174674267539989487625467006840351091111749117765317010696266761576350126468647137811348981087794011577170879865133862870789910079389434403215196838242426742427046358980159939368626842446998490781477363755809445687854799428509285710854496388634193628490508816480091904710699003883799171116377889078260088069345603918172601089796327374553348256914807797322201297859374193261805758474027801444012880292339184556342017353867033585299531478716908834990233784631363212927512574612075493980968813686542529371687584862969415384225362359275407568048996388566585376679998985339581895285317330204335303552113092639435703715243749176201736602075858439002118464537819899713548755133366600298986982275339113026021474982454819886150140486529766066113115291731949727574556504080345928912980970477425786797725167238466587340803414589671118044870013624451054396872785649705744128398981152415753758556133618205349407460978181711023279145386103116812698393831876354585046700658198415430245925050382304634455210210473516108659465289923627337060646345382231690439742521446822511956973494872733734879193855513558607429149798771811292958772683810018454456517596047222156828023953882275047440377374078759122582172266127204787426391116218656945431363083208823099104403504154804634787763648937136553120605160739906584234565723222269457973915005022486202654345104530585086447511144518472302463381428070076504405032238540503493404007981331694280691513398233114274607186955580170830427360523189454762719741817521202387728728227554841952091640255008371532049646266086855720366740667573051750110067088463722086045805639379043208551156771641288433433760658215156380212046015415738037832760728725856484950161096835288212512790525934788200099007209008070580460448308377166234125639380616709622884453285666703166247370240569726723204766598746056683846361101661153828483821679974152374594164279315884893836717585250649071905053275484310076507166027338792499012988908848608372055505230517396490922915760973953627486273824878175302831490106201174488500695864919087233110565208619073292809563959125492164814352004820535868948951787066703815847637752037720726163094299976799925874998978066513077284153832148776572323804476373711447651530406756245742614303328557958931612155369146395255607774946064580837041821951858811809540086922799795060426763871181881753796521649581034650360651493042559344424638312428241654203779489777393509456118759288710028721265039147782017200070982893155863846924833892860390757608148776141359791177520208455925758123767270463598417399106014964225862213727339597036836016208707763371973164247699406199051051804269756971355134785642534571623162261903353492968063855298418246812830814417948335138296257072475081165678018924636347315432066004379158271688623820228510288663532480404908918230653938936788252085054727622285335887901959717873703894173710083774337863969488853976855134648885127700703636560565114678729174822698882320967239852577055388748674199998930911377899172206307431441392630628878499293676620773314697062635954102169013730889345598161483550850834717747307783851345489520183841989538744726079431687569012864100840119133654303917147202201036660622568787628219634498647777291167489562307903978398042931659426888053072157601619007446086519671484406940677119466237743360780565892782634223869647054741090778818952474205244912436034331011948656166948444491950654510454914139943268871063629027507083943969206577811373207576184414829551401654499364314548231043791276844139137397557172149371943580399555585361806871234717543773407854428286906083768795045063372563022184805777027590001389919717200910424551810954202027207100465517264699767162370658985258038116965717739748768015931557960167476131927396734639568698817920647806901552615681813795282527126881466515627392569864850104874249747205230729789016090910098035058752858171164057288887027963536311502839551630266451385219218770664859105487555443402302249723574538702567348367119309879230416691252597055378715545113709489968169721838828690471775846621925112299652296087973224930833324376415562636713107886098443529679062787901045353600039480710453863534034504681111620309528434488270054981956030999200352079712346226195253702790307615337271352536332289036111836077170687592532520386384417191817580936129138934414485835786328698465799135190634668649435143247935088421355132475682977801809003503361619167667097187203015604074114463922428335687112508891589985119357538127541919961634472642070011104531705376130212405048435016899450299117066890304113268620821609405987032947222932531844583119785301782254706607652945974577688262519354462035019863042400943799980808928162570922446503801896647838459885302740400422953640958151490224720513615799577660337235275242823897170041027265334083550260776772939242866741792666625531723505069390979736027023243143897066019817703214839577929150505907108254594099457884289130184442923326359654231701905472768805049488547465347742040485875402467512174707348597859795184195743387707868702437251034112897597807197752563150972212522463130531376864375717491228068795973753807508786659957063034307691274539628260259533018245047151252826413008838754816209480540350749329314954861230950798001603987121698539495082082700928429201215530717027427897959088874027040646688886740028208132181736695911763071698290890640659815708603099050548521597393302988159471989411856587621541373476337471793221003864206094820622802619050178334760291454911665968519780667661223819346960173443239102151304029607737543099837261578763954824087818883777869114989848177717840413982122308960456658213442552771032682736611906094034040937382470381546940732341162591843702034738999607211144059707816644947849427823506653295291908779407153693630801862270166897343573849679810710054359413120274366918491410204138110161845847985043763304018755344898643993714346377071743457653810504420984585754964986959471979068678839759404693723032425005447723191335472905574538791836456772450587878314734969706239974636178515930885037696389617904864582696877923686728490785659190292119360371368658778222926101820585305097986809704460296200603752878615833219042694251832381355051842645259288164270201076306595153051001546517979987249141916055030173037313751689044137605084302616553369884164504537105954915669234547627158622235378178751935135805125071455369828111735608188117182746350117776876176399113994568755783304271284733288843739594205615116619426969311890600403744966698020851313253314607342015176259961532896272930206497187802686869763103554089554251066051435256045002337424959183270052411342068612653903146536992098207597223991546042767611568341959407230095938205834759615943278541735976233309930737997086288632528200887999315618373796359616787564111304852370454115978978877132143819827502228390531533164395630420859836909802617823227955510188989413987463095838152930053308848322431240624931661259531611927763834729852003936622272706018786707539777852530539222389990388942974048220516132502170953724299036362922119377717408123666543315366248070568957378663822976780223063187571681104896542602964095431290029837383346175059663008589918186558481268751830853689246321633329135961996546156909643262175368755635978518601852121014877743265081527609956718080865412003883197924759522266108848281589944966823457704279483724539003390520728165484490206524449865665102848000233342307154659060084236540389164299470103374242743029442550874150461006997793024467227249685951989030534365886425466489631635301546722067122403446907167324307909675985861131295062627880816134221252480320150402561481177957405076298044919503935702670257813791444927636746864628567389331854459735841550295736827798299528710465486812577369771135339346446807527383271111868849057013264498034564264785546112436506054259151803483948445358345118127457894892869835064194128533709225438710101856172616879196278864806995875553544531413893984310626757186650391403621478283719313288263691424453809998467351034980797282707296614996156416060253093229761288768933243803852125894730222255520484364763912194698906201893659937884953785569028650355987251954817701578176621477709455578190415397342508481808505726632872981312068776213868685512089510486789662914872860291518573974315638725458214653347114695339611486168647363791054252656190726130781214707662795895458074275790884022469576656926583655604294005243442963360463484772387059773874458470254742071761761969075956990955734735731782298495409996094381514725557363242779878744035274255938807515763450123126964118175868012644424639380074466989284535404238413521687742121736449239362444303752396420816298160977186314616222372546126611236133459551719805317766509524719370908587313354370884930036973693090893193831477501233692284486610367057832202907769676755725104188959751517537507277934277879983779514840246590429141072015317312531447996722712828208561892870256731943014787602855917612697794416310953897409196377034005462582195427080412629252159141908147366837289625519175259624528219198067115285819072549899212432179654340841837735611913310407211697061692845056573211338881781020490632531495926459872365766382364067066487951615520885312157399850354681263089620624305835050344831755525507299479657021930724349908437729876448044510563785392007556605228707906259449747119173655165971550041797488528428577860500332838809754167031422887632703670841594764434090377378152384455794999243182892427303202564031604463536592190133119484605585058895432302775113772926683678895242429089416087312769683624612445871041483651961454131879599200149454144689102449436845193556527230252996827515563432901654223272290301194874292913395674530844602054589955030014068894197932926447336372143183957259862716797728529991187358418003481772261550310521944976477694263972778665092163378071947528374579754933981767390190141447075227414141810282335741791223767855836569162344166873455562043875799252492426577392360119572048099626036986314043511816909168281687026359089740633511991454170435875636342327027118656868379696842836553161561215058095491908607379851532481036509497116516453227231358690741455559780518942194341926386761196207322483835722951753754979496112977741757459625551015365540439592342104784070006633360174196181438922859869827703783553805440336537853661703075574827742752986007641201045500702382371462256205681394877123086343084611562487437870447969440071757633444467126321518705292393774242143630088644420269511074036873354385057097292020770886850482958922584814354760237930508708023656418131672729655231839998920672471573564221155529064297497547754448901234729666007588214119842235868016049473696524452938916561641779539608295227460133651130761685910666742341299936087712756142042015235394329550266121121398591074936549934052322593404274457247963432783384054343033484927763105795322598223012093794644990033346723625798335002622126917575918394662613771522774571800715247130939069404184346731458683431000251356680343423359302955697246278245504232608554064655038850782457660149623010490844180647919479481665133002552627281077803542453513785573839952937243282939272380526518579000018748976843486334282869220710708754514673698904669912645099017483577118160384420004223575424586023822724605271548581768346627606391842485107151048854576239263189562676825277858369749805282109718038576123624288341456828603839208675472006779621476242705273662660280436116860913675982667292123000696842854610601283606200529660446058608046519577625619841723672930702627952278897914991863458517455470697052468923361291144335205286732711947523081137970433577099837686726967364339390702269271717698112337447147008307016030839458261972975113828187431272388893753324763205079335869533498791986006492125200671894004652124897283675755314312979030738358998927854057417956996522978633542231710739799448369947028330816331455187607096163688127562093441524374658001899724828066961386756472488482717879925959739785206596261381160303324582233552127284844018137290208545000556035668169908882500125089812647105187298457633877702122496036625378068301738790857420231811236008173862638092963323843258638803071065885848066926579543377728791151848906257604470291784371052132643891895640712528474335516299991810091073065575465461894409951795673284924780959358701390213300176641526757822318815670470634548260967185716644369397471110380322613049967747998270458670830142706423381351848439651113184594828279065675390402839434308704310503451662994139117764804993358034631696267844530172891828989110638826868536574442111924700019786600401482251192530747865036231797232438751913549066868832842958640446577972473034333937072153276317950063735479343940323735855576537538897193787644688250892382494977777715505042405012676153996277361389521724691528193704764313242238516841989922100524163828965240591109733056877937246291974021842968355010337639295541939529347573044224910055604784736498242440626751641331059390279864148397515358781370892506203704750404886774715382040995235534452729564802768392317329468430012299592600334210838985434835442766568004519414762131015638927620431677960748927839448625623772159844615220519898428793418811177853122533161981212212756483494267462734419256771104784617587689825411039059822255023993708617016038835504518569191849961869996276161203083121887864878239277771051509975963374671890475048411536035626302198279446065141414772871935712403472504836542839351167510205893052758571620649413423683382453924441707330263377779814221183739134959537415594777427160145087633745781497214932358578659020558762833817786306737981274580109706564874222807991943509460089154140451795540549011378196500000334897611522905314335042588515807060205249092192999395095330300108245718822021122978863223857101998230415756937128976055644563788068546338248558529084540982157449295047277769570272876698225818083558661340859346175128375320563572556958140138983353424603981409283046047396188469456113267121753167805416464914644690919475755830610636071174770447961790133180282938302365793947028286691762747592048217309358200975111940128447546427121535538977565959802406267436718516835073652301956706872162362492428430563376518159475875182355599779506496634099781116595472634830790704507279675988559184826829606115090813909661731367670422270142067241591440488612239385851770845221907983529633668825546129118379125537310751069136513983994255802583566340833112376909645959257534475264332157420922168364608921845474856894058158640631757951866487497998902586933164126706768754144398722485467173916446013303115346932573370495892935998056255786042173460816478568677911941478375427772887124912686016488420730245149368510255919887964329295548004425732088235204119866867240116814060369400442048543827485175946966807624968135486239152354940052210740448487083130891526907562799624242768550159068931874807799871275856589919756144947217788470152693210596673824048676367078371655294900368035965430818970841642088672071380640950960071907767484505821258858926861666203934444099851614765799340951147289102017902835020973166917683701389772339562315450095294342762198302664213404310317648879971273786707128411676588844805606162178414385531940427393857796316984208387072613716856021078758694426321096103929194275760986865379997892405712772974077836197163179272400794436756525540187823340110524540905982437147701992746223043181143777787483178995438774912740440539385778690147335507967690036163933973376106672786221089629676473695263541323939804179549598865898135237630567710955969337602639918032581163442350018812964730632876426801527428086131669421819183997404929646318184823766149780285856639682227582931643211521417509629602609163045564427052887223975769731724561873674255322907689278471729899028458459826639139310160693349820493530572796224023291626764297785413742740417517212297591096422247316806444194236308698553131404076049423215621969612170938661352734466206053309300247267224528977081001149661303712991821987977174918501843097697439003817309643138211982587372695625248132811265372871598512151127199785916164880364904888242664840405819484665811204682724517065301718092954837159281146064046935011626585620178340765336226182867888940364243549483793494028113455450187398864133083627398140274778811011694060612809542715324937024865059399697387522244612749024772074005978306690731442395705232531731700486654620767315607594923923177175687557000536001151155911938251041919012241217736204992633598025699939796272473470618167230616811657912684126626072795940127470793711721585354170278053788320638929984723453753099154279352580754021679465853492895131974651064612006439954223792256538042756552498733790520205748581451452927592244229466632038147202059040091551268433014587783677932313968812639400349457834636401852687118697617577646341343515352474991701904137330738529933043709984910242371561876580810476449790184921464434846303725854108917157401725754313672969458585724539299088358615563922265700730490643549498117909699145652755990012352968373498951051034863937536666468935551668778142159003692226404419076588341380800652818842052700589917553348504182921232391679608542251215195841552754263113846288314500889492108123541544004432526148118591361444205336717981532097352186972858584426342786332187577989465442914732912450558629329060718115105784218616323143124637128477555756265234551428794188771936603738516158691729978760120695340911517624574648935847451352272828501578321606673546251965386738586053062198302983404487371722068753177421538297346229537334079528193418995901783593584042238203131099566052686394620784442518651878842645203347035531767734981629563079771218796757503098381086682162089932966945416524667131011833287822160690135246768668315381839052631540245459090273908701752399248905920930168878403300322333777037381925700957998644958803902914682507949606153181755058552931126056056538439436561428221339358825862510131731253387498717929182358128627719558846448805501702303654457919422030009328466294379900885495196618180217242337703222782280757556101373755105409419503129642304022239943367755782264733834869221163607565797097256792656891815201815026372693217429472788703025080953254588991992227434948083408708919510160940239338788149013931347079878801168362712251625867669861787173741000615510950396245351706574862724805226734336037238434448896177075087008279817680035047192375330957479396689701315210445990936518661380977766105906187072221332608448412954327329059594399477885664211725756264359012994540948688750170639414286940520133978363159203127089874522540159613704374352364720510913299509356958572329863940670423453737590220683154350970858933694857667399364517785958817762192741303633368845398052488915576900915660576042193310265451627230431734668806080173912152501596971575818573691703883001561077242075921836292024539746914994718893341803865541953675352906743888846042348419913161777702061931177513455162618297643431057566734368745415239369073880354143245111570382133372106857878966195337128394113872692751095207094681503392547186608314574568649818844861025284235526672146165146253069125080089351341100630120636586396543902658745068664173705590500232845973823418895534258555189051923122064443596408248698744671051557800798962572356181707134036333201918244409975737764408804415444363865226521320173512994434816209574921873554402524755474637614975017709855117919206940092011084065298640046312627458680247357430759423617964333094846436968207348994214961590013536816541138907981448956600068596394343632841973908420501794221728003707003487418551078070076131842172745109638037781684171199781616773833149411124882407678826861217919844516365379853420498912273208896051461290484931649433408893825447826274827588816854470117238951012279340095463826836413553452920799371405100897563367810562290764540541166578774883134754044293623272773484201156383174329271304624994349626355094258463274212443519697442846388159569983879248500766171847173162928019823228720503480970505649480405785945074838040609920132888071474376680833787633896930235727856742600184714294110603969702387476640758144617649808625635092398728069434104544519599235747774219390393465768037179167554329716002291546278935752901911640328524477293201240922710192103850796123418182108544942664550691358409576045775048083277336296688170470671791280904202466768272887615167488905538223151866015720218120469980697131871360275334944673223266118508844871610583194359584090127252676747460152677144990682538084953499776838970158299630136366813835430462070608990486386536306528827231027632834072923103398809229731201646394708811254537137724380413464141679249461042649397586738085277169564752179218080384128256008499450468962580508636976807746713800290371652871369000463980569816407452673226180394452714937002401990763836921198727419204947937141366189260602311776867798085698690792381912674158159186576850102667935346188662594702882854582169901683377299854217554990202388393274270920036800051108633208910159101294007530758378875148189145521558441091658145770550960201501422314230278712639794590758271101227349639936142496253445362672693220310644298699410196583550770925566940991541591893179981787448465313805980782055137512329454748036232010042901476791601419316497868038503309696337889004416125103838128793162512196718106820452505133455972687327517263845231098776459817067694573313789048977744591741003672587538555577357276177478665519870134330898896049866153400996779740331220368524792457643544181517344925130832549601982651007744835584680609449391682326971251541800196296351767296731440194440502743206181859228166857202942404340679748305953009134194996824442125958245857833654242385978467917468383407269599805742926466348143785010490500271972876913529125275848673296452304967963617108474615545753807510325624899550264560660242100332786694196784877673638351090690206313030418380245105927454236452031968072447756592696011582426699355857298440944561443481420607437575972602715302538057461145525894286957183669033871975993645445454554224410367488100542003380034225248378579414326028312049662350587586393591081311080494494581170016573018541482957149229627992819776737876005895210415861210131101358063900698821131822959005330725480130318077373380466738333323599746640897474286519238935514686499429913496848178867380756979923071671227984669026730447232372363968605389857872487111911597012102705386917047520803332332381517566134341932202851871667574323350680770678782440628694850545742386532072516836640090572416765970157037071706507520002364617014288193306853967936154115832118659608265807221811206077913347395748762546148675433436569677429588602927749678988281680931739878576547945539024805024250974315220722824715944944171188413083949708907462235306267633258134210024999629857414514934077714623414171151585177004714010923254120355398201585533976547621875880396277007991034390354028484951860424166628809508518914819572514171155516537969420326623916336137586095901270702414046252216574658270630719899870344945768061149888943551355941557007344684400287508024696510861721130775076165684212729264736400132254061091624363616969840156055612267221926080317704332499288509533335448106906072588430976539096764195188720715220335379350310001742071791893223615801578219474675647574844686875370089161904314764305464108464698176732597103907142461776430539468358844419923540419211879554290424710335610249535119834926575650911079929804077393620797638902904125194560219772727337980117179250397021990151548487499608941760134281009343205258137240096015630813756489309136496363127866671365742356931256677119075734925106887992422878231586089528889419458732532003263821599457623064245928266555680306782837968591185183544320997163913532320629143250279890063070189013164954255929861558237383407575768658296093110312616114151794163322969135881925212548231076533433802095263448762501413094961391220152504542372507639732082133998349518727358790333865402203912594394501729602090948824028966452416187400301138020674552991013868198044180198087044529249565923723940000789022131014540449478623595555597873735315940025077477189140420308813950075485336565306125093119278799852312189225301686609499046106711806670037413409113328383757017071491229460017894511141890292066768011838273185415727537699225761712434797771871540641547442988794478668540937623003467842297580584668936154882362296425459991278742009742008246392454445179807528037292800063752398385410291999948728197930578637975897068226451849381928407269688537782306256517182884261873329264069464088700291268930790298346772927473055717781318915733670933958513592615878676450834607163634348940859268730631195713694649094097644131803050028297140148838090605764342697298394587991127707414738904134283813839039945511825238600322872331335530249314071383495747549701348401411610770995354580656831525258016581371656968655224996882231095112545658209080414527765801820742417528484787892259181823294259774177438184490131458617977781936334795493629668669877142954600523338150615670733087008482161195576425695486909438452086269068618681089358683421082232054827707384824603911455050731394083622331945604970037195203257669091337325775192659746511796527640641929445866149781569697411707746432185025849595069966342781117951928537066470202678792122184531916192045935618047596265183993545633926211772557847585267537840488409080595055625638436178128934677756950349220731497089637437301795949718781073145313791851842531286222829380228527529626819028614324814505025458512977381564243421740575122686576627838113948463318062150097435611951237878151809315274971703060961483045975215089873776063787293586417148306478716167503583285639646648021975304207778288296499726921686706115142158129463090491218285953792748867339471233856866209651464764595179816313327929592619504101971014571661557855883034331746997283199603459015550225714675284203022216912829689115799371993476836552764051552747361079309427992456124159095838942583475330208436788807279906559883683794158939763283540531082672231414916987491952642486671355020404350457040004675211459572631220024183243645499032445926689230693847940375777122417598886250811853655039377248488396647591242968016220355928275931369951338784928574704907766833678606698529952293165818063838969640069698709759829366244364766042475225099277787665318478970974026868442189210116090983683562087089847284569323122746479833370791087786566931990664263604330550769014368286403774680832187077621626475726021964605255265692835530886597406645325355153580995560560308107511388463120081412148270924571672198354394233155009945995467336158518890682122203044133686557689044185225647905385011690822911465244845284186704530283937213536340270154579392938828206266336156367363707735859131252540484786988459621470291225858712944312311989004018190288430243690961950619522295960975616049853064161403331886294370432382097129218379593949479674554553642101873311190448240952775664018069615398433714324639026503101577830407821135968681062428581225397574764114099719788195952942018374030149037556519898604423663591597829435298175439145141393590097963319864665325999695791321706835316824738019837255616981423235516684158324803975565594587651919133441721308002133274385736444037231759428552082344719282322243178575898549782457707697614711289622055322818623269960050254066058050090729628260393199755046549315324493272870130828950934698048910720282525667316137993044551416965272617300349535854276584430748355159083524949757535785931943836467825312685873060132555234994092083651768578661385919546727853058924795400996688028389346574514092129612385149602085647777580015417037893399597046029916799454533757304087832982693391514474997857754037599826001195469326975839968636317553048851184927144025383308663935718728607186786889360330560596392765967847098066194438700779386166261248446629219778553842300583891564790207802472255982530330911397316877793193262633494565758715447559352999845016730220217453527980884865205395931552990693033199359478662640955846760295613615256761441773677457809456103330177933874984626676338188787740212551027613575404377975888089054104061918226719945990473898890568728794978710192568164505918205300899072573469283161322561588178690794113236086540096375860604415045258466426568308740527698256059040935902194330401048803247410164085309819925381611940604602865946130209312207506512697874567352066703005860163344339081550328355294694689586863286622656873454561020902721173552549074035262704831309321275896010529142048220829064223974955479191125184362851051745072291226321170056842053479989120142413164488765115960578235000291240529529352620645437232400449375320848265031031770899935299935350381935776878830017463646774250092879053379960885678050324315024770741568764591287122908127350790825161087241216816562767482000283252691932246593340469755087842711771618074569509724251666291149301397162410594840782680371493313069269122937482982336631098052350232921249163317966206725269742517646537675791319810064616318156628842514963094868944322506753762251415261681073618876644001522203027384988880767638316334209265993615705631390489445221911438289825254057194125391246455581844246615482552833396446273324388507865398804503560342384906192833279601933998147706382538452930005615472692812293470342517361409029544943959417107337353920283037187301719050440286561575919442990596792443577633649788498126599150494096215425453997907549513479644531912730229420897033441832895769489636162393597958686508770039156771876035528562724728576721234868889955898738218511325117427762018286297093733668775946073665324167460789014749957293867628593791053897339091368428662551875670004095449293845376952116619560482469039129047396984378194372764328836156055710815515489690938311677514304935393082720755198434180120918134124699996529524103832985021807076690837303972947113086062753760879377107715020648435722779176520913123926288196601264926986903558897257056532515528739957940625563854400026981430420637402318991610968831845566796583696274352013048914850073035589503782239610584433055771493005799421904527162610217862000189517434842308992523861301719160823042572661288351223307480789319083118450470033667873976978099658716550196595694693397864649557287111577777004791172503308840846076433501063991853300101944229326132828901473706356635685777305629727509728066387125480239502166812982970856366221244918979477771646722796794862382246902340799856720390720860151201853782219254783116909036914096230839756191045047135776118190762218958723143887299335043202003903246036135937368871571689455165875257224006028539358945517320506727184229614427574403401465292510325567998083636605932112736995916324977329392356901123851736118150019418334534808816590900340691615791762949679044763365843546340105516383579993886837509130178483081824145067643292197446313877600620833317949547313431158032496973318667210114685905097287442684383948743874182061205538578968364530529299475333910174908676576003589690242045099001260545408554515751948610911736801180317973879926688193976120266189327143227487417096514334657177534035210215771846550266295089350558620927964773244101508011546375658624395192026830660585838127542969831741077844960788733798481023784858804154796107089473170017906865021425531563406499134534547215764860868010347696439633461757446819482537520245932377264498605746648732294131071442222608820670714491581902496636727186449397761613404528009186826004329614628043724259036778919210776392186773760470290249403272084696084140476365802593765460747689093135605635530821500505872815702835297390101620475026321205900377535392104888802175584418593855307598652147769778529973871795564822216293571022834356144128528133462976762102934897244405569524984377682732886697813062221611329605262688590337823170513111489625290525886644491475102680696824465690024436547766343926737996978085657672523509846505955716352486039902386757383333272306519947573406830596633464230083805564801941894238672798375633767073351020790782578522651381428329972112517940421820823643441054409887381966391227517205595375044163922553676836098668131690271116218774101201129680627192012072101475667158470201990086100931268061896914062593779100030979199626627314160109796492149281805997041626308259732091368275705485383450911429733540357411794431709753170606251961961285469326777736821852495822304082074315085965421213549631381460873065858905666748420710072925011933685772438216473310460865679835466350847797151035322195833479355718420897633944589638757447744064974561971748054528632766979356131892022602163579910218344093886490340249529287564747417459588687872954873870191688273067730730437890604338351645643751202190358410045322987043983995714454534994230192637988556647552238479731980215759688987464004587335909291546788159426757736940039314207530365518821119907330481459981247795103618723805287719533606794482355745727496627082173746734356584318791620911275711568817694545018134523672555000942115565645376137509411078230111262111530929596733985638745414266872293982542584128261897032345294225283383237410542960010879764953071714718003543012910426624424175681244560313924324194820743912851557753474501591353620242858820804335107923146282429465750135190703423696574774795308286687391950181296344499030952757395206621984320250900228628922418502810661678926568574424089393652190559341110437834286622224368196229072710163966249144679763920930085870962285816111274276985868351562609921216212143949204418412001346231751299347351883668842521080558007245777551086819704369503207103429248575206222117173306640635147259966464654241892519995901365582243135135570370675831217548685300908576198004186610420942208305898482836732720834223013430129685577736740305627758416981000798870108494205577980837986027103156820778768893840657473557661383469971102387478088047343709699118448371159243505105052126059095664055673002420531328617264541694830851230716359360318025982753761101287253629520231967881395330766800208711352017380720507710324237130700349769862521510857499027717511104814787449621015527619452789928150903695056667819668488472993600133512236182408647319284937623913652147281009477720319734100688128040846317808847293719132460659622040985785364016326759717319722957125856634161739408041615386716553004843537770392040841832598830986811639026971114552549618918377499235521845404856366367807341707195466850696236437650711367749055565567926360851708305740737628501263889174866540448030603466809751721779239593540287454178946300519848141525391275085127890136832189962500129333658151948399219485171922538756280191967309517548908896836866185982189262868573479503699724219460968006757197836211041607799286371078117774744621017639921074156433304688546070764813335684512197169797253408817808405115551087342410435844295336529439780740374264571169537609887588300620181387578716921100453738695274641544345131815531741747750537416514851421827399610196923026979723418675246650286225937637117506466576600791052309689420159515872032133597195247877977685664721327999641790213593938314752676076583502797410906472926526400361972142333395353862798229859064280356191766974052236917700273913399890992866402186701895244804283714124504344259191761748196697745995778014294831611912242769116861936091839456981598148475160966073702734758944753235826561268364496120056235671282221082733163191770888448084638263900840511356108879303347703612066672354914975511091012486345365921278707244324889635024162065818948696967010672389812322669019562870207299025764211955432089205673421460789074987059196854120191126412219339375750508700669866280455118470178575739247753851077042784316878131887649717883421112673040591610092321822512102406048705393428627566255023596895546334893297398781744043413862019141083254054328676693608608234649521445200657834383509787504117046868102635712613818619271499467809096089050677151593742493695994349549389745114844476642465181035398983948950179043521168573540265581639661826044462425077589169061744977554231493729411043544916167115809893897630395700974998291106048053272944808463136992119965608332771943095756423938167812160423655407184058698389348139684554638885159906019106969828318711891073900453034370268909637923913904456565395576325731380341637087929344334475674514804667998618986041938954888661787637014590370664325079429878037928161865651224384876527604926776734619325814567921377578972947764168358324467909823863341513361130529587485415924963116925235888892326750083955261657118298161999084459690337067683138313433087950554055638289937385889671759290191839992951593885411991217383929824656973002309795202999635677190331353006661571007792202071212211030474844821070742519924857238934754878223921756737119945090069429219401950211044031173297805662252954839587661750754183832365504617268839168613971220224016260510142815621105718604110362572802498420303010162775960537648501713718920312738324485163559718449968188234458426943147492667329357672716703662677095880869563846306749322553242151626131416831969433864931750519572544850700113185742893393637077174654677748497700967400070355611843607011956899592637377563699355295250840678981318901175179031879123844188620737025288497454506337149517841327025543753731283229206031432504798768959425471679494656324191053672152225475318322920957788205694685943535454130357243917001662606760727161501013881854762126891038250516497853645797085912142833594964826836197683141162120852135598138490289148900507549038911777398336286377247036458049054003048271378415369589187319327635421607362227099887550002136853986834777528574787467803347177147794099278358138238195168965068792208608131652937628060660974566548537058692856466245257277011758555609915433466382247460855105561302665301946141883721482397352227242109790607518287005546373482951354053376197808969187965632954114818030560748103388303904010919391935216700250119138685751909947883425498003177965910645173216079225901646342073086448157618883902189684869494512709802692185952951968625773157706085999056540041218225883991212414359061031300674257608789047694193004760366263346955084368956915894841206635657605385758916678825154298329238316096528042951905991045157680733556806501221998457363548923661676759645648757809296750901297022238339261335659257611236959699618590674978570866001627025126291054355530718488673986090131181631052784872783940449633392852677540423641109596599427250832709924919862104538430237141731470586618519016707594369793329237221204662057408474136533933633824579108531425479775543750853299770753272492409405426063478587471041147813171937921677840509593263785591500365051884018010350981512316194518654809144607488032169773608751544393884712612279836987203145875091913060403404702518775925756485276695803150114170819610448021312131110373127666912088686114194524740217619467911053114157174722423331897350118962769183975369779210442456761201227847923053293138898568687586990807259283818789782989235719699632947259269212383989701529197279562683214341935326129970949075165076305517842449259452021324656058921646052043257579254953764980402345921320197319929340328793337150372264777442261657535472091125698125455903928606459829666765370158098635070206306805941564579051300639661734399406570848033031094826190406592059682367444034239628375749937193637650702839295401109387670301418993799728444146769781046261416577624873721962756077832612023502150702633036692697815755060891804821483775296243276683757427968929598655301131749376966847484148422196236430235308720834619522212584262268567747481681980155313344388699564802861034244868782519682841623443456301081120866919318407918285744366148965172925245551136979504997134718281667293843361366015156292254514900139644516185661094813401671065572889778109966712643063037622198606014642273838842459368700684723821493990656701644417906427187320991141139607091658316817205339291247040563828754010051182643350356869827474553292460253335469058376647472312824336307697698191629579401341838152820340107172688624426344177707614406939649888274035541694486393389212350187807383779292856137746732740487080872055902314922820529659169042655905645974838646735942664267237850648964247787223890946936992794838247323425849937445576960706683222842876128698228880819380081472189245444575335603045665180852750631257415574218931354249483856282665250203156207356795047038710932003819645569775500724217633246048814913782704508366218190106333371170260060679451999688885671324677494662813523747741271378852023190822326589801121518661058317772763081363859956230830146415772477438700055064583931720924172292312695652907641550512434277620366135432816598816604745129852215540292828960756545991487099852108744014540566132529171445530417067353817513565370683247681735052352471187656151296243308625625147705716475459453141620102061774023383003331531700284761196088377077942560568352461698704536725686477443242709042706297915888400025840267481963231399512250663392546197933384336048081530875009404010097097337062294068464681565025406508473731345603691571025501045617914839491592695065849029316145721293896100295076276392735008022962714272226818839948480519764304049021998016766969539617810369471243862524107505658356666664303764654650701625762665406787877756113198200131692957538307049512838102198383478356600020338957896848989961619263684720518263620832680721507267743650894113010755894569407007323684470573843117541834304959778665231637917456886435992442283496135360410339923152407127160189119594980128124998942551052775492160648321171199045971644274804241384752480828598450291028949732219962125572715429752205709449637873292811372190505618475916492095591228414028446780945096975700201053166084527821720878318354845065373366322620478976493651301423350061268155227689293983800304031000740431083135220593668625775107238028931987875492259300478135473502166992529516796895134686032326278975176490684031370888463627747963469228796997158585279823992805799501118346074301706057578126597544921667296226724220914266165809355053387769898454689903403404655997324119217964361133520119695969188086136857011041910643791448551011574194027389479689894103258091820150526501021619265489278160948084379571932596327958462357863483403642579418016339497169410771076528254944230718023868234830757460809752260662566451792396478150693838542330705390164374591604975804144303547741095209346027352764477567921127478401410829007824277029870716055894376605944491678269113199813578937644606322294946064769470233244088368172699593767592429427963314884716514650809413207397916154785711415235261058941392525120954764766497909953114481017094963479277879601301406827842203161926114651900045135172234202123987524251113094939402046625189072861263056674844044537867404384754794266248907968116230712261107137755549443956832392911567348356769154092328885361077968245054905262693929223215604706235319312932105544537398556271067954709590608821058152478191260843645629313412189816223170604935781807113916819118069112690288819671206557121326462429171184101149564799422423255857322267327975369845340470661822370985958685881368789087259546979611975819867220865606472580473682707330466069205902274051070820839334933632246982352269419387701874310912822509943327470187546145581109753732240658707538900816583998965109076336220519750083767824938999133889812175283569376424086705550019204655826870434783882619303967752133597101145699846905539285866390942947073678154883326180841268668663175157302748786730794280957788131431190591272908158225036151759496706928280115777330392026260185629311645404869294592910902301764414660330935280232583831295084352684268319789277589698756170533634142796709348210028905822001530165725599428920359295406731752451838912792537116972206758496781409478161844102179939745945725960045419970263663565721921417245522114582738488015382644343009306053596843794986641946119330927383859098687793034356673084624365932820606574902788129988079201947701124247551145909483302068767420012917929690590061548944388528962637969537061892564816318690727258170758830200425154295440767483032259150112244971482675929928637500275291477613997642027119876056060558719045956209815505797566864617665805014007543359501921624453357361341287432515918325154901787120095995772190228696566555036707168750327347058730147681138919205006380517574506996169579362546607079225438387384827324377721317689064506845378982542135632346354968259380765764337133640820392675167925373425219763904785679258845349622082454948123141746242722968593562870647075054996963918881975880606321842372846904103834583882959310771587634144394301453234286013134338472935054799859844309724224276606117298401353176335356919592081227505999112733898796638359324591713682444819675146523085280792742959924895051213050347003221845586346725142002863455554335684101751364179158880243361719054171846922874231425099631283921171366518128716554096715061340588998329363807711386178127444406875320337302037525458458924136413406689345028852913079353755511141901930836936166609524889520765585161268937358637494857824285270322166956933004710358597482503430582058201518048709857102783436062132509509749978949514642734791927383741691812675536471175493265291090271856118344798596083647560478786360902251736911256264577241499065669710192738189386632285209997829522035607129687533450025799447940770527211332748513114210785767632924109532164926962500177739516755530079087193420565952418868006473435345593244846685214901330942010727911402657292073172605739164299896771019935015971034472295160697777423235111552716810689640210630655013045174522363829799036774904220681033090790998504540131780227444031753041317861306175643352922661149541028238089370038089377230336823903051135174839766264543417292336022482786027316948069963835489117733323426870953479271188915054420011145833546933566645343962012868451289877189745214985724760725663885873360296769146732680704531760228803303539504184655230354876330644356519810314796273654692643870797157747257271191311363965764517244859399684726308359812778805893738564114637299450326752533718382396097536289832114829486357235007589114984445138057303554180062703779280888518478214526320784032745158571082062078535597675539814821937642933998127125860764105378480123929750698775296170340032561099617695127932103895818598615775191807065322678081916991138329081563688613235711949873773717947491846904056073755384796906354909107451612424544117485397343248315192982842364647659626655869610184426605886503272411452413391567470627731261455348086854160432163682740934741005968148797970980920719569860433210064877861419486076914309154827836199200997836669307937177535662298802670023756139508457068273248161264803988224913547741995017207965518772027670274013311248393912333865921787627214820872700970242471753879822557584932951686501435960005757505902845890051577585983390211168913796559370461630239955875696582158611298813322542259365855373304943305606592770731117998083989712951048534611089016931067409705162981860896726439786427968350746923313192224341185051974723601956000714654252573404417565538999329741595998468713132372775963815868278525305284545664555201389349516765839737103116640713727822832080421502571688466205501764871814424962305552951717790464346207414407796417022642333900574067183794563496878054478337576658455738088204518456107234314712105789775848343247343194142199838216166585248694433838622994606197032790740084499592956209475258277394224040141589884342612939086880739562876061847313940000848296413194320754585375605678237484982350737034182294919746719643050818477583773633278037634965970357832068243964244420191882770970881237204845354552568939755592478692653361169037938042434705676048887664527333833089758010821186532094216188425683965134778551911968334069979420637556199788643439444673571725808897039774600512888397501612276108807558251076698271128211741437826529560789015930697671324953279673192290367442656410359299037889440502576864449875803556909478155320260693359519600302687751656846168594287649695349217436775049364749796660437550451466908379933040386044036183600783848739910564854717739444782352792185130340999449131943149497072110824413092022770302049493926629260514759989416808537994108884572947568785544043862253261114957779685375557484952020048309849676434456139748896490419959641550164086058708957935276545403346974240662909743488096061464130836419857851423116356700947863100474171192302508539934727351755555210171326182878402086512693451886094690802552535108825872260454832519328359890036505311663485971487817564096701737146403571265219948075467718384923257933283205572859798718767545327911297090344330775062147392610490205700756116705017932501916176567176239556124315021833360419846541330636844724470617322468112961500155463300753293550725921712445517540989455197748852430317243065613777541719549316472561218035488718459472158339378845931827444046567753574757541436851013910192133402372034662022176572175513730982654580709465432407247229152651430672302220817606098687508036151512830297471481138888992307081607100089607554710204126272530756235102463521183727143405011685727415310367460570760488063479153709840278365913625727051126868814107931614969705758753111206365582808992032377033043069749235027804915154618471507645055576876080235583514001074334049881138685687773641664514022313093347004886176268893404725190286781822744593244296218701152858049624166352020050711675850142075752186417570869200079584914694655707999006883703601669741615846446020805273091549379271940301307029993845427792932974566943030156969512789005789756593971939295436247417383957163015519244348615047360595287038861734663608926613927521536062167548135417783634660252164947523840688513247602005645988332412822585996521316715176357293278663267619715660593037158407156476925544220856634603800601266819204762902484613668919608574241878601432002299089194570551694373035549746146249209727342323411275650350195293017011503285807084011923667716720669958788699813674327319506895475837657460712896581346451511588530288679859369641072263236533729637247335146687880541240233213009309125542367663112632940318898667139915966757274639784264120283009103228550083636686726072629235511859086195386422353351011245957057293508170046589005417544464036918387096519692536092777055333012846266887970312314593755706995669386134564465366517536999805784884996014466005832571163297251597481298645849273398971896499503739720354819859842850868614601638321578120569498820683196427750862599831707193008880175097294769054666047276125733678312853282479437075467542705229574337406064267471250070504019145048888523004674096764159197678610397516780384132855091576231971257134712433978332581664322686465227272553123309323714106483633076583418693191428606640005889341066603892249206006995964407937515825961408647812929328059761252327939033413508927440652071946373896084321933962990013663282369742063994716424505617235760850273665589582206204297203469149479184950370085288072886784348584092483107558679284057771830922769290613093965148888416777608331064711451922490862306926259143689828232778818814873704398017224216079394517386591287097228308422606234290070260402111177244881672638145427452014552868992097834961391771405775552475672297319501960435074336476987806224089570945986970194728237903585811446354969241081450782365698486940087638960914923421155533787618162375015527229601818724610056868535251272592869668068754215197855742046393416584378194496767780181527974909765804797047627726727359513144268992903552907278118148105037665310714482502622080990935848768580793043558062385338699653431549332286477931843066540238211907183552175614507826874377055643076331823678976004342028776747048474176159988439564357080605325186216367594694585055564259943104305289849088082355779093367218581029285756851762145329754703638688650438361975963387750363666448688395094910722274496575087655466895122039019878359512580504766891326285035290695484457347609481079908894944224317895154961791311118865040991166531320565867564231663746301861547207560322957150562562290009912662885052985784363511146617186438722150449480695091087817765731753156282609889616092885692906968675569582241360543430731846983701017665647425711298503191278771279096465695196853712266956869226443161424194493973556138694711544844395335131081803576934691979298787204516982055886842076937643900420533126811597860402481667869025273103516502445607687593871290497864708488504769467517977767972407768619442705072358061723044554905419820065949450806863652554525961606562019714684282196587944126731797724358714530547470333420677344264878677544242069288087034134526862723289060960668541010826714242328483771205272205842654290293227319965226800346884566708247287326903698915364085409384055601476319516666604565583254294593155974315680034452432689742912481378737274186464978018311440963314749494214084123038229903794457165888554250628385653072198538462811308785382285012635058787540126851783430097925606461999626209291156710869172231162207186862428258093942391517858453839870611998625761323973316355474540754636718083447585077002912029158185936357260174890390786158395411037778815407699955476849498915228199850560402350436640630504878170939469775104987334186355908085512063938046185925559660515901766904641754491036918121301601554086352972445982894940983837104003005473620283077966278279016577810495164823845690774710461860189804119289883700233843299489480455130937349533659759053991764716576189299127104744590956452810784825650018022317986740186242773270920502842908439524473891687117098567465413385548555013449342425681916110550409008645411591124510598765219261343144631352026544816336498852295422209613569590880180223674641421314375644440083511412195066256571109134930875695359184316462384668120775188209411946339579580392299619553556912084314871091526012822165282455937622848971010391286345069128075838130156706411330683640998243449152622119076782371813656100535821811310845675302689618357924718915007356257905367252538766980680682930784092398417047300092326337381085432427519857462242537850679575611246091828303272225170295960660581936020504632279047373120021202234140572386754477478402293242084990624161272839691408989910486744239368911788614888779774948091321150040202291803726318064562424874216801287391414911917921604581242870889698343042014889621153919677077187374787408744100289936203893000242713582589441584950393319851704004071088224819677878815919875227922037367168816403942265263164586731628712877760103834289476276163937749829308001931684008095169392644592768162918284215346147847876723736413432325177252530975262726816515949483735219227292480060078607228061460528522985161300463245343245609839750261216323048305637471580485422210484718499011062345575425984588677960104821273765915990345077342141715881506487500603158904542725708613089037416295604358956279521348633070779100271387246872492735473450122234482020205980508546673675061043962429381526047201784680692758565010205300281584620277472022545422048675137925111422111884974308949391303795777045642241129829755889267848637173666269020284961138565581234067629575803242380027846569871671698300916853916760237337327084431737351210381281362138250318661266262970172476043284831037839197632210353066615263636843637267751628380816142464647992683107024673571652792176747597251449791659228776260946894275159860494271403298352255502550433454580148972606772909579256253750533585385006744076914823473686283923250721599987018914660635249823861826778971122462304902063935723200387843154345793225578138774990551383672103330227036163560861680070653387812116892209588812095139871086831075344339157014290084852180251599121687104836040754267044371902067360951706441668182192258258407677848160912721622672314100626920516685462724613288224682919884724119584841640062444007153136253825501336444245663700149886287343780685387653805539250719591037126502232099419423574187105455347981586941708828537061203138528682631671489407162397485902705655386696883407905938884969429454157033133095082169593272273806384032842524158170325715568896935422943638516462833226360960810170560950704024388619782193509544681191597868918572923513623743750464026562855050091206837881779465757310844069220380877459881210929809450996629246637712836060880417400408851410683865623437668190200841283732246990422548454460249571527175934261909423810742798717468185044173305962437548858876966252463593012654163003191610447652286363700490927150693599181314584545463545053113977384970374031650599613353284529587464333870988892792242127978610768809620624029845653627750984897314594819828526959073192546082167280442856332849587218294319675007195858228320994532965840265812715370299168926019825112897517876127295997883232894726007752449687762128324451596852278356245236669217754122392823350222307329135401173978291134885541408160855926949941786404773436905567498420832467732666565806980597163768480657647755774052395206503670759724428456956092570725779403262515470945097610990379804960228524577355881144144542065097602670409563145334780007379057495848274417981571690046665148050774889263889358439414777243180397174447497783900459561590743773409948464560873865143361000358640311778851917574851589246216689990199267662521565174661609001656795885190892687770153964494435084589291309592969813179480538828074662873561671814785823574077774658420055875436319759918736227892610623901749351851690006511577566440197176558809429963096494466597612478583614759399341945384914461899579081413149134671861435932837575071527375555662596470676577856850097112607068096462795029007914029548392156875282308997334490673969024843268230984975082990925392950795895369392393829181965581487861728674703382608402008777651902135724373985735687489735453230530726713198816862667399132547272128960114103411588898370930638341026049848817760526431019296658929332223245174708726332630166307898785548976729385565784592172799498540731329868795870891636429998630119589690921174369079594873633869856309942140923779400945039419051913255201221377522997297581003784369817860116608795096725730205740245250913485431201616272563212395785150887118554816214132804103369104189714163104550994374012190169253142668921425350908253615096402791274884558169441095241704181692503518511194628876054270817329593793630239853596345526865786359508320031340762456394480937583498285339496519150222062097266698301417173280744878462022804419197600237352900861502775729576972736132102309831870918678167689934501557337366638394196678009049355040773146688969142392122204635751185519375853683491945121477405099194874337705223839747537041206685213965441097630747283079682935643605364935945895667166097033830718794401566342601088000775769392327901261823675805537525419030565958711767051956223006790397040063533747922990400812176680134146039182562987674559111294238244417339190091664788084848378989713013081897868046621010064162149344971266153602681754430691332540073612629722648783646179202914710359815124455797386596021242800975424515531641096072232503791473891596357973103734887619398423986689613795805853657276120187352400589279335563731933436582625405393969664613877245981222448312537478431758727484129482932570051228037351478365664055756995434791341997267848370236505163024220175057089412264230846199475914863860005564861426085990548137087266118008199521614186228313598477097350760821583599208167175781140349430316323722814229321958649339042203442369930340290013169817210784481056309309823779876530546319751624347516232567331017237784556856072662440791369061764828200763084377592249964745440900739132151511250601555750405248696522765462279710418123109112066159285787695145196937073988077584224571555205073361003907805992431563876826622875443203947385919563153841073805342979115255130734627385158314504817035507890764694494211066048310799289901679477097714222469782677269001485082792356533013548840624080826801607583320491066736884040820960833561174274011612840799012127046204062317891504030004876363231662950185922605936910878355299736949928799760151502944293384520097395786339175251571372669127889902167573041759571834897729351536962990953091172709275622834942688874979850697521064368481053543075774396083455639703502416664154897248516922547914598007884151634552310750162511344566135109053503561470795858789532674080443790232898369092618148083578341961754257765752313202235185076280210603794719069142863338518893935271765700996816417355823132164700793634678839382388014220761540599807645586072664973521183146732984667256629052893042083630265167063938331758602469573163309135578250599465851445269974465373851179720149839326466006144162488888329070517591362986179617277598926280710202013946751860501836954532192830384530154790301609901016667015190650466385725311563014864338690366397311001586112249621918097386895239125498616227471507912487339985903668101557229518847324532924068116492069137626653374077108776034540690277373792915340953254542086142968924728830265843337231802175394848348843778627329811608707928287136035517658874701276408769441460992896240526957486259728408921738210937660884509938569538980458331857857235996643083094484776888800361362603481109872559018935079155043724130302326374308242322228111858443026736898256756227327936250857528183757978305484730176967620525132503044998408202459214674459393312451755145415972893372671313718184860889663604708858154605179703915576857228645501736454573292740256861412673389747518367766575347027104677145541436067370720150450100988898033905286544082080826046374115645796585067873549224604889268123936894615177766493369843220434281253832005154222066108595768143459176965002560889021314337258035245346382119288804545798104561829044412305854333307407103274556917461946339822377803117727233166053593245215978292859102912241910786545902648518598562717312504761361218112420569687356331433165548073897221499721477351926278119502253303307312448780317833012183992202943582886606377614362549453020647922388523991865109386710741505279336101346520174870144791919458984665570847391068619019533509272324145740808445498403321154804466044664900515583608800203506601610789116825075160543400038239241692001639631832729784271956573403377249801507835505964609481486599996714123282161827516101620332210419897226066442402508244766095934085538146498993363326610605467535692873406599069942398278627286414123022578290245589893404417609338153368795018550736881333501463238958074825836413565747344496978201465495952377925763849177977225456717251382856796065387796222784515137200052794314695100874745376044949268668887087399711423628478335864255062728459704339543032527228915450788546782588899099542133778981533165260486760245055743382186323386722460839719805979424681795856093557100133843638723574424428723864317136128807481711513591698175005716067310906416169545525474042123566053125125105425010058399422045678248674746129099699104976583849651062054194805937312269001339106625139242075289049997545903644208716309080921349346211356494052154586202115517314223185818934750151181718401871078943707893796594962277629187583998698215360021704465069123947890475188351714371929877666288066104679803483846203542419333304258909491302455679893890452582549953976947135016870231202353761335285473436481757037040772345472437477894031287901349208634940271540747651942352835942554886035412531337228626519108879731812067301257988385442239340137727718735557462604911997450543344188568866710009425412317260876578942203454628256155959220142297015576744417962678204284740683416983198116175359050259766382104572375553643549286269510429633210698597761425080557179656382616051264548104092923723509023609939114205397201746299782477800362742912727761247139706194059870540857870583371855387236855036195665951010803482852005202712893227965966422811207587488224768402516321142899301163658625970979458199822769003631344477656154760461056519612173380270276204763177911609290705262362388167330237731998779897111477819305079581780488079073175798699262437688747208251401652953025155319988876708216030063896682583097905116668305348390565929598680082725176041116454451802207524037234517843784377471418677739474114572898527969717097266972421758718334322527739727056890075231895606033713775271505425741825721989809640054237349589389547484186716238911800724512719992365453930462801465841132331229204194527694361593634303786707971554886911617106186174359173134701871972203134351543507830871301179038690745588878480582396329786916664539933491987468313407967862466816521549695524706798340550144574606286943457070685392864587207577597794042815795740237913315617047077449025860426923915942383727740812752651395713182617647234647775277845183914755918748004691842295674692539283448809426698315370564167668714138064737535959262399337974706505683902349005839712815363733459041907952590693225261432864815170374292080801981382089593343142143892983340292277097849391116462822593406829853558023404446157591172405996230215214910112448745019150005210940281939696342621300230269222479242894548581087795644318716511073601416855526463495249392824899773029044523471202989418474416217942187775822019174257974150657989841630892243884690552396299075105883094145855574137453160001848919638797026082227676306701261565023754625772494552543367133228466070310705996526800258729356302299171099297473079809214595005631072818360223154766218834766142318481040501563001457505690736246919095130115659994223543468213052525499094902929413811390212340699363053723998110049241038894927116948290358279193831007490851710477656345987050424244299405651819641580714278005226692480452020229455590871883771262382049188148787305954552601297419053382930489058144214274873262594285048627611517915002929970535164323912819117712812283138202263308690560982797283505917837169578906622566310368631761674885458911208226311111929967144066528144568456865954098706168589977938858731842689533791218114877246898148081224125822065468413460159652886360852731816094159468032659196483124869887759663340050623905972355019605399981618030006238599062998266236274932765872836946473586956336877619476999533348223154560069686219060335394105317732827448611173627729169426598676448201748280848391197278420734195905007543650641876468099413094164528209285375062637977721874967483026068331877719497272732233656859214142135144725104763041116899715270658353387571439642987560101876609459353095892891757885705742599021878453569225639369360813154387184924401732055083210999394986934751109522491149010024962864146680798726964135660011196216527506860608179571430651103317626528436689055367203956332420390273925352333737451979596230696982580220127252631408351389369869143293618700277623441720346553595792470034130698261173244102309304501477816821660723464590527609327175577206362926569358619668637524392784832239019086500697677686515362291352708801003806805529695219987219400959567682400190712758804527178959214950126088833994529690863835057226221404402965467633518752748210947211884847032613656198841728457938035158297634185684351651642299550189569987181235171476437384164184983898928631982018794966195241619397395674675013629644493662716989538461007363875730959228187905746003387009341375287502063754406986248731401687835633788474144550180893021073027308459411865445435432296777705207640007318267152263707883072049322740371037873110609378521845139975088495174224962929476057495724428884624054910109058528010488965099608034709734109216796443864098151433352487151923581699154885443413868515846396143213127222249986678130752219623256740807388930901744734652345931587500109879559229333069509888516667896735309254947954791350329250046609607861716943303344669071137304436664978408589275707755385857856624555024534622615634537156741826665494626811919465383736652523591491083334004414404925593696713281610741874018109492606051391893405400817488662956497848691302815454325993694408980384492635716744016172389869129213706277308674681908672367072192337642436049792654299541646601025633757051247868852619284903942969323035219273969015827321888977717715866273108939219866771941058355305761836134921288979997649676330781260141485510825956130523767540788108904560334360466710465086378593640847105365129726585919271187894825962366648263956421474061402410412148412066366357655990752156566238138997755254324352939575086489375496023560251302345205039784592148607682884115584807462995093061306658127972121693910109302062715941781264110461520391956060542393761044674775274356488042777986377888291689987110754931774534184121280518954332461895563880812249646469573886735294245472470936531396637937311863608251491086050300586841534659111235094941775612945419238125523862763584537229699264481665921038876690775742548471199545482833251744024859982732071772023663228411447155271080392393492020682587203836652092109634865365615425976024071807801327248380215625652273153441572317379643366430285121764660647956780385662359639098538348786098294952286145407835996122994343054360599981400514918176018175152061146653109603983867265910518942382363995096207263760993091897118259588355634068331124388193700976081867820264385455463465139697520296025272903649378769432367351539911779482316848138917610195384753380234795857707683971184056032594678221116889392201218643004170094160524495835489842063798233907827667751213558892622189088883657042363089693536464217602648858758566141708241709425750196176084889065858576073447517549356518602803053261819568786173322687390550374819004997914887230358871680842895211060802489823401831412385131739728116134541431665779527777455079639447212596826689063410736104052024400318236673541053451367164229165576006025587846963746318963068701144676271621008099774816881942834808894660104686771769494799684477460673041701708265162499400979654926379023407478700879142487556642855337478348399860007446691408820566878502001564973001775322073718786310202470250396103327855237023840354719582042512912803563526658110606077645181460024027196183386010679849233103368739395082866720738745324812602872518004613279851548877027265468064159166632733569063211448944193254904651723108122782318186533659998701050252560459359750157387406778366918678788089909281408506702328855929723388642613323853673702062319430809850390276917628360104345970719651146805986774836401738909984777140056109076768500198231476481765434914018410228945918907531548142499764542824461276082905239154381668235840076568255398468108027991634112943569827713208832601656735468899487469446616570218650197740966624337287051742177400024393270713027023009316944388983557564494466969671028440832213182855389609797410352191587406177133199496923518061352945606358735810240059758325005008790443266007273330551999068675034131497663842176483067296330168676061315793723523231582449386791592821876760810798758860455934827084482077097025817983980318981478786078791749856982029542863107356403812661097588442978967435591943654408917167397580661908773603447790363787942716698248321583537605550606551483288865958900006193315135026081542859056421707624282161217352740964935701431187485606202350339437337845672943577593031091408039106961904307763878014346450131052956480863615112842482374150168284096968577880253738370568070144285594647442275732437744979573978717147662334181632021875628280796834646466422525428164095207154253430463493160649881737631044863942104544155697742597008320594390347867545257589804183731385599954116437418917428877115409422692494952805921781203460236394594878933944298965408316645368541900892887122536293332108200687183734456190203899770588887178785997450782363564660007928736645049995663946497550192361803289540966863658259455923151549577936117976689852481411494913047339290295905522595168173445681685117307482937531404850216104906222289710578202775264045217421924163487707769642717616457394870415773094065353549322302144397238143478731393295802387907682202975356645198486676162307011627893200216443116069490454035802550686631944011716874565519678598091932431268092561898882957025417977242425049472286107399977819007329125673553146425196789821016026186454375338183715258154571154111628499168123738275385936285872538895688884811117048911456191445641208034484143633964745619867244753617441540694397625518111511264879369273473067209455904657448839960784661755381709024648312911335072104415820528349752566274131272005594173898219762085611908322768549345267036810842177398200398473776301653425075650660770521980545570708123669412009081878125083713769233600692993146535601677982440920948942570596832167018353750523656621808353754635260463833527589958341566011014145434696282650783735288456009048480673861450140944951098384708509507495767227034653848166771148081430021001035284046394988922886461608988583913426878977057382395447707989433545245387361473394565000582363482516521736616436077959423162991907783055211328352428716480127399493347648434501488720874764834671792663682536230296626038958196832809896296360360134506029531706560280810718384379722052864531669350514478960833073595711151455069525001792390969638310566444801065888545805481206237556098640674729907611828148824557391289358424181823750477150430993720984388930626378278913525218207186081040114987014689703466780809781179715130096354469544479683598702957478382849253789789064703759352769920824130182553333764099164014396386491031364695813628643887295503437395894675990265904749020588249415920013408873206875962607308741163781915328088562120228050655890433467179435730129723710255888281073546192967087647140838108179785701927714606563257459878807745951480852961264862905684142405686943631447594526491753574220984339828225031303930285368269363040280812761682190964539432101689292425704494624451125345299995945523779965196811086117839302740260711642765312932983777326827211400618577524231831419412629214514444574146332118701236521686210440051085606127188065842306224761609117391953461949562970433291194183587870386885435335948942955487062779044496621928125275288662057253623050230574956075035207776751964623981525886804351904863142661578236787807524355512867097606137595158631110972859259381026608223763444324517362127477808304292540932287874755660587257208636216339373145294991251924362354750917589884814734506527218670263019153355566730935482911483005553213404017551210011564042168488355297727289567349411075736307252898449561214840413321737438207804393767448717401443221527755514945680002003283870229315044977099048129763984943279760366138824513975011494072556728477600228036844603097083078139984733747025178954682281870237115835462623754613373481278148456525658429384034471148927634611671963768501525409596719317168072937739070266719224217353718615276260415279520079052610738328847652645586276282168773874425016577373774667522927069026323471270376671778406805950664356670691494634989683234432863768934463196697809779356576306469853166818086907218053823066491593638441857522140656148086752777257628016055437045096529223641581572344937413777770110482234375289615966773453440850895622332249880006886395933123873262312070626614478548982187613926350974389159781383733080605111406309946258586557389729924183359753792691250353024375791612603515545062320573291766316354798249794389369384975492783865712619561866082698121817857644603835276452195608518964583849621397623748246894184529618228252287256202079766877472938945025996259008260075514714260428653384127798200999837445609363836628202236793160907739646253922255622933035622279052154176194836583027550539666940233108836160485120677157677901859049834730646800903637237083487198554567883902287164844664258555420264798972831722964969240157245643708996797167911150922738116825432354246287589750698873962936984146529777408744414688761540520911555578836563259745829576907228737440982332595587654135305591695429528754983651578346693045244304976248493298428229554519245676571950411948803397446391190133062321614004824123863140520554035951165713174888604719407581954922803847088543202913565030806572244465544362915895826383016072216117906463519247408083879953481652776901007712517208936087585827257442326128511223397148004057302830636506309164854065800951367214487333843359553387295144776273981373130666324593405162702268960916729883927171186506856813136298545453086176496093783989566583317256732533416606943310051933409609821263208711798209895343020465235801108552766261154881603288493000444274100251559218398439928701710703726471710016409164356466410831923658913896527073830534625748587686962291876923551604732375324205986531392732449094131657750595565852925265016455924222233535144531996405557577394836803191323653671719770062048065278930639838029680347312553477721745163038105320932627933503894431783415605781747483239137330221067173865208024173410155389207839584930585228850344510825349137289872402540723009092346091813908029599055197038063999479227392068325305928350341619997271145632727736134022009701258028399598830560723469713264354570680282148053892649929004966094550481511463869164477421287861293507048471858095731539939421695651330472245083964194879370743262797048872698145934375781789858984535722597263673214121069926120211188864241992490268813733038513849024247808119887018147519918517565682774645051393816159055706497261889894263902793026050520911695808960781928975136050008426092600919594912800142072306408323446432136888336735241692782160046312457983263965966967555196400209598737153637028409883394377495539213449446521676059445596608199755358439214971281837293416573667600248632609852138011800159051014297168180072768762600731426720252359519974288716058793590897679643775305994542017614953669259725997765356598306061090427278999546556805337165794406488957125541548016462365026775957795821859459485784751141117070732620770566973955251676620121132325003961142465536069050520572029373723425620128661717668395870554592338487750815556606246528768511023609714838653321612545757256080699941010315564405379206624080673584171701633718396632993240380169848581567914865151235429908473506543423057073446055098303840653885134619011865944695995665576896758439336058389123511142807069062028869677185984218128544005790366490022509786131926736004364773261057126009452969853750201127314658286039151454659348281134513952493812005094738395227779264923035194806721919711699123183012199111990992400376531347196889928202492064021370294018940431369725677554958332502799917315463761220568393558997631974498692903552069242103567638533889254559075258777180200460423375539788845151256135781191162082468047022526701041896824681577088188169861091480465382797147074268828060582530652312447628535982414727105120021744704842232217657788009597966145983906681000077788164826208028984763029411516028613655087222075631929343372471735800673076640097966695103586057086471130711341899166716675338627292595801341685583196282885447506218264727766851678020998582998072100198544810988647608686274941305065659403578964098479979915224117801674046468528785992898539860615015771761932173841253162855847294979739899240959872706728840417251116701454578405977043663466604135687583842263429183110279563956873541500585267921282677072547908822087120730723135797563685876995048398997209503637086182366385948491680932074045801074134578220193112093303667485524783224973773245091585217746079491687146647049438723747201993262165670089324380991293977035636178326306797294254272544443717620671520193683310361703801925086199624705940569338863435300889491024788771507384294403590631701987711051154250234951551408598912906649759570427809180773240887887697297453668555514274053393587381936633989927910748282567254028269844537492553935604788692724875198448372879541502411050846490018708735289840416533492230455830468414842161884376163702170137107472583269734218710858495842156036990618590161095855249019381841979738252212930483319639594515574184954784807220158539512289386956746831696559559897956831959663844733589309247776190873216148448094901269945069030111864189134498983733189379468746102128011996967203806463878338208629876400519642120650411960487637811270828612682666122011212303750828129624397983000240192014541914343001115775732342316311691201062395043654101855245694465915625520329685452090340728530026093378197161907141098984996915974621099580720430434893673349512528767181724491663067492043625892535348707949072559489603572264722397946018141114903994962673284942307583351509547847286719000866922797109879810224228630662495293396142225603215375273795150251991697152839639748238433806908296197807551576618493808837315168584237749800584525628519795289695667882508076202857947760929501484811787088582553210076087639263454341557856662249660344579822677668326772063734922473071418706380688369837680832075484320029336396471873014821438172148530754611533338307607960340977280474945753937229315029822557422892431442593859617142432124135151237646911687173057286702036025402414114675533111392482981040456000303369181249451077972921667672591668288381222537882362472083530021543500298929490990656845536039321873738916108872157476891722791742394718219816188713034266468238104268769005650343227276058546380362088701245361144079321007137789690118203420770139290326086291872304389837388900736097578542183155535633216035142977739021581136234318491116839364430128220339255352418120035953146144650679047964860173596617911533713899605949948791832834252915761992922680918532068943544212236957794286685234561384772931918602262949479326335588329166866910428039039413321413092101395985481540134967735582527567861226839289527418492872826433299427868925585517060325608344343008365934156426092241599728322730641319713682424605418412221147153831172436303430727788703189653496078413589779341339785931813739132589323697667821762637873053063816157350101453487504115663823882781298811256434655187425533928036239716739739868380957290437823127086525823269805995132910859799363357501338939656289221502878753512705111772825607434100596540751718384464574761287040545774566901100625495803374345938092162022517793809094839796649907191812133934997841452412925516182717564945346962947808389896246961731938674341554884969427980494717848343607097056331791109048607366649364115598690982835404760198438521823970095182142635236202796329262087531265315187583444637818780600608098351873678225353563886360953693535601259539936489719640394886017245285049251338929502429640584124441727500246054803846442622474321152892849556405091373695481644640385456618227416435701092393544306996987273910455909766727490812552811867170189068562453498778697313381313462018401137161404276990348188962253571432419707280978591819443641365463741693433544970340069673335849820533683207413337845630682552390666718209125323527763830430118706381400220867678544966184148039078713517361113915456145337425790478628486318045326974877243685886464750758163919278655727390576315703519721955770118434979126692109984944945981078186253695868317677774663842219741171268516863775357912016199008211184686954599048425397933943856633097445793875706390135932136619403684494111268029589501645628700279006836777470390644135596577403631049907134665842631973452754190486596368548367416909682017175342044285756420736891614750266886614481193519118310304991760700184900007475684120895148131875896500249299115636062571730307412038097677712654771182329533484971337812933509523328439828778565893279384990597498767630960526563732178736240931210268071815766980015085496656518448645623559194127973413197079702685519771783671100596181675251318200188797778956705568130359006547848206597671814446523676891027019582779194491992857227129026461746811699890096742726887857921636750619277579707358763921456046427902251636418459467554707445182511628525405906645752215520104745110740736573535503051981480650840080459639853575647935300091209836786699326801534268649592317066322321609252983036357289270417486944895200758726499823300058256763644382900839280727906725118936729683767549336377890106661557434564677777851501472642762943717015675009145438179301381376515154654409289209899647609749724710120125501804280311732984741990620140462007299284460939176906649988505252910227847790018078077875748458532161104534848999030843587674966486509935874513930633904116063705972858438885787262435573045770332750119052303268325786895298055961740029277670059895619885233069102945794819533968444560755762939325846089720154601914101571236990986577469222291649432904028929068824776999736540881554270991598036988355145472302944699211803980580917522483767196934273665195386983814689261089859327456161755619053308951528194238969112223717314029276895360522447114577057074095056859357067576410037868517484847501013317232910620508390345099614487054151330771489563943849585544358856611482071342076205736788380535950338448063303668898621735324711978970454050469084823004308256275138834259473324836036106948956834683991731469244712232234288441022800464385341858366259078208413940477365828515853125654388680491196398841052953667399953669490212441317797230582415033073279635962179880861422958864700767370344578842062714841451501430833258622775084198575256126308689511956044758666511316522071757714084176507738037308938388296009875050104025580366445426435101851562790590807933257833864079309472861806903980850428150003782474335271357385410037582355928171732271716567233279021144660733891554319400711193791670303840000204391129663109734769891817741485493906057796180301213998749051804798849099008902356115520044652794126929251374700982720089394138771575608087118512518723001363772580959871641949467321188657259561025547923505774201858714294218883586426465519309171109844482195504442839370547787739834400893260316695876759262714457432368084524226907964860007978966135187192336749167671859093398640948905282347963152740351448027287214806375381152330924153932169130167679170497424072205445329724624066144023937032560352621442439824108520405211191995467717162177808723897881103334989267139645487126316966880717937458644653850153719419416678302886858392812057759288034823854136812195623203340274715488614325612023345712335478620706406983648945237643345979366733592927330434817503839617311391293590880591938695262614110607513220097194707782730126367273735987397714941688614997557578225903809083303437457106039218082422765036733267722480188724656836574730562316766494532164421759347670088472186060815765700382779482317527107754670733879499979534706743791881059121130970606984918827040323446057224149602234906846582454267221362226200637115837581736354996956016649559925251678798426269397138479662922031848864197913099190881773596365155414328845539653260320912099609334457118446867911953353044627938051571057629094082372806541681276043117265949455167589696293490555260360783770941287649818900315077747929067791352490169233052619053460395634243821796294465022617022637144473909741040754191183220303952939663453947281743492373475801147344825925477354139677044531587882620236226623652923741450241212894037095366118314006879778967414180322491006728766207257208642714651103827350351535232795117021737756868007392508086595594968799236868935810330590631468661983504622048242067058634303235308407623563715774878260049354216000598796693596841486034854458035068036321986602756348840564940772201042479079258355125012930764051978837063281486037763971078779990573107343037491074335700542521166768919753468494947030986886443757807485630598941610667790139896628705778352655053166765862871083317485665797258915179864602331112996817051249600385699601526390242837252134464149896818995834871937466060746696460344466146295530228286328715093409585211711900948271017616611475078370843281857963381986641355290861913001407965191253694194386648181147381174878526286969821586122665015200165688742769952138515414019360714651973017859954260913548782201719625599580130416398997276533742249399587209838777136497867671745107495513435793665262626927157117528835517050022624178262792150888359223731417526317885661651898525746723554777354110637972230414379214183735279264291781319774520396954658498975650547956899497239897213772509826937943415175873224657791367996544772136902077151936443226975436434468029963008559151752142685746865829354883214533772568888448752510997662750094821022813189234538269663918875076065482100017583691044511658831235117524273176713383400979590150736164394063946651500837368620910133920678311753730190149205249122743166671498921738567966908704671624351763896819365161101836992761689026308746737790228330728164881081736857210126299368141116968139286720298746243943781517888148842889593911831020838591318117671315736210929828236256823649936000113142296362330941699032206671125437172835645963639864574365229254679233122173030108326733067578103189617020041073361081571730699925440166818002454613270970946301571135076532399600264109059686325306087011426192541937652994598351682649382929426369452994847834762876055162750188667461890111078690455432832207317121262156907950440684196066940288560133998583829281528808278906030215627292172841119577388077111550993116082855426369853851511556741413050674840173916559573235938343946748327500228562274191663575947184963732209964903873868071327032260675158529000898265579465387891724008534155744129576129066529522083304227634389549195202044980537539647728279759137233692751703292181524260307031948628601791166010939636510984285689354836677862764999856290117245069268083686283417013388635078329831973550086339342187941797920315624812463272171540038299517738396439357654061532042149880109105951759082471614301597013982521757678043233927345082430181334594838853040928156388175647045371663778335384117649134854971742243003864732397237003651628506985203492736793173423370026782228508085997125755688539502845527303344062300738232480650123316197375297845826817175292119854760448878483500047707107802695890988616256165977894851399281641809114584052393014926888161167377714681184156796246890104430638256598868847505189055127839696951093869764530166923852347260326264996312963617117445373348492957793037815339871995857369261694121002041125917287609648512216219350570358039795897839118281003413968708289655133169016321262018215428508727573540911132697597527755501576368745317981981564842674149332215610613272081131355089431592313513959734670157152903211657017090855096790904483687812716770284264315818463449707819466948163017577781593603266681378912410920603063021170010735317523797429648195335696485879180835230597932286582792199525565033072459206992374348780715741947280855402533440260381210677134251460883469137400171600408624785378013651533921799471737628925715529395513543400421021124890315325289606619730303195274525215891191795760930855267072824854642221863515914114057252421926074506078849644575123881041435402236804748522986882627606248986587928322374603636641346432078526289918819440024774690543027661586994755631424708232072431864220947240627780266204178384406065461980848796208604831171706165675479629657437083433281293533758686354022668662763983235551877436524139357324173501282086540556837976151477546922625778088912688970692566962289258023796636708023312604481539715752935932296708219069361776106279688035427532647298186353252318045775594779762317103140168326026248603338879793528147608381696864876241714512685280385985354321995129237075113160875137050234020541827292479499802393767853653864681834202308386157196266547779841724655700846734952031429489290485059456627266948019045421082482018785174614013545935690820975324619162502259125368910460943199697009411648080816007812634140912756091397656043043716369583131116580430199271469374416448472199060690867554778857605750655531655337708885863233769426953714527138293551213691835738923573881417817767059315997664846859337884833473079872103791692593918847474121304481077340138241401165188004355353912084595773130692426606001997245731368584007591832422531333927639626690174058751684553539908132460923803858714486918437595802698814333028511231816033218639563641192015374252300253876095052751006263632471563239054615389152539384981521879653803617036588071862948144110379450423377843074395386254879877595545823651606818149976607074495001843631109006757811309087132565845644307878973998856128728470795844582939194303137917222722343545886337880795699313830265179789086862329917693556957018114476332091297251966209747540161585605499048569041795187279022344027283645464930146544028906581827029275537413904392328341762406272664034730969999341528455889931733938123234958537776187494440169221361477373183239318559667067125360536691200024825730414543892441159897862288714912854721612016610697790256221750932063276296158832550220450615531129647281008709535104175676768306460186841107878553563565635769552701149037446738805465036018377764166254914229903080951475734849668932661087279073130033491642835533849194852091579266897076888691647877241031649173400084273543898132734984762108674300862268594140884707658132667282898131173197294756152308632951842685655040216604617794273741948947050517559400534192682870520584271104671202644053587547291586943711084153995304823390226836673083901154079689337622568401567467453291992365492093521711564184830406584386679956085575298722406517348122016496772653860250116677724490971771927900347830491289311432145926290961159229868888567948755945995514750182221618641573308725313446162195021739614859285952091445732306957726800742496204433882696254728421800583697814698054952707596244241455439426091258009030550307226479080305286179229944709304932246025037553579653186010843933509140422990540703496181882195530882353133513693034933568006948613433449287317986819737005340089335859208245230207741141384533622705528185819252608636744420698239647524310111837033375621253097642741586991171754679629486244201516443299958799275950901332208696395321088633335572088997023142376011867172756408824758255282300286231312070864151432429163706253480555034236174345794482685148193213704801753549945262806000342782193072351703470667148988061807405221119501494061436865364683069281980123381589739678050493152494586229826047502896568246265903217421227923332339782321221446513908581483519734811725813158289978676661504630966701180695416282743268221137378260304206180043814453881777998235086642224013185400787796741631507853926043543266930319870106612394521802918969277976295850586869070957599368022593363694537898290862617184913312403126517958304102024768443753318307681224522016069377985059924035489277760450117087714044741300675202057926792062583961584044919227469456159063859815206208065064824727914602852312762455261411838412193045721867875114893856456013734952632534754592747675938400286294650842376251944231241662678454262950532651407604187260223751857355578252659732683565621746259321421893620011356965129465769572574947451921640875750128574117669458444077737601908787493506281750206517976667270166961224209758808755382309994784243755837242700616140910733798066140249123390775765187949771038567037347420386941505538301361884155119516121616057946469428316335431512014204324757095464473534783231802292245248419323520519448979417235642048749089002389110710108156842523315523531403909891931215177046664336778838346416169031152863229380885712065197978917456350266546897220144992421847305125785320024396435902370435462071864718713078370401051751591931891381108146276972288726464790586782046265722926280489552380900840205470462834192500893449661692094297865651917815885780207476249000713934904655770631016272406651955076679125829175941923933121711701623428126811467630102358462484240216183962713112648129494539921091090659854076079033356078482202687814807868059013195336793815376648985945050240796342740346593166856645908776559755249712528039462721787711262568468038924912537353507583523773151161079493027655914139688651170152854457941855017047331235685233349932612479889143404262461208913698756806060497172412362720761635118467878394119481950114863038896036279804105429502020075524429929297549565819228508842700997039618406288032144945346348082504905171863874117609976244051964303310082247346572414094256102835496684096066052849853734896146267827028675598473647416397974844081155463174601295297361423295190054653822172620137888468944960680992479500594496854576841312100763531520693150524650485093782045412719852942498954864207506971807779441535867611759284001342855055410363265585880865060176627465772714786611023995128079545111620641369485978742215735846370047534382533556583703573888084777480162082724160003301541760434363687782483708410424235438042773485913781643632546709514787231936573194529132815879122508770752049489208840081744142717112413620247281496625587047486701936814270370508074908352123892268116739297225830573160447430580796408108009387162655188627569421758088494119110536837870547268376478996252935036653523006706580392601270674970719713849515015890615347187634992290341487409145064414395586283450527942006653107053083861872698966841087255258306518338966220861114707441326910981787465084463469916321700549848777829578292820181822678998465891609847885915508024018278225774152668419715442299314243466122625534981724570181360061474941733818823814947865867077707739612480126048304935081413136736832169367772038660715447693749748021875735841401835077173240571215332634045001057735295991884428075412132508815221076456539771580910251067070999116385673831214096985395802540376074484027868524215199200795427831750406372706273541501193978365087568295993952521084198717461882784378818489846681588678571254679341220694682677017097396329365137512144715323124568430406053111240687572862290928572070654624089461907215960903845195267391640395230495227148327619447745448261509854233669211671369523440612932838824003386008330771137612335949444605799194178845281782319710029436326785470622219969628705856402537188783182117508728847358659439040881702902058760793394431824514181949777182150276529351080473147656308806548753497085540739144213853030597892085880889951618249645977326579827537743850948357904377590397015790162315526445147259275245503058924975781756499087237450288455362592882135475863598483726579750690413752481742802889382005291253640256821390903554601356953494690403722385343962382063809382731608417639442386984432724706080865352388130752247856755642190198050797700492654602074605347228265729331726220883575499548069867396388617482739981754898007971833908955993682106329305206900631382287841218523209043807757002686077881131379435524933358293559007569409929745462340078294272913627951973457293720528063415149208940547665183582515763957514637359240124913688552620535900053032333099016483389727996987752507757185343815878712569339633791233830604353336773818975191375750927776626234647742474529961946180583783429889144522641329256261294462658782228823126657738269690467886013434389728586416057256441638271643667507305648872710503018989137172430745831687473599761328633290663044293167564551534387754949878441360271430735103298781832873132720295163100587636201965717863545105551591592012493466787471220397243265834291295880936814630733612721290441072626949170879105841025010345361810023523521987825769078978838484338918289145402679096161743284895287195503630544708536892450627965237071618624542342715312431532306820851310444404739195404320816824366832751749375510450121182879246290759366377087504603746730212243808628220333472374797599112783378335447413118372057593906459924340839087853937583278699059220086289000347019308267837760401892482046093980209275204199627257717540224386866883497915594746021716220035747166517372468960361460825662543908310025323403287104118164146391233909845471887611040923225633328488674919061947866110027299893909372617216751156391219455986157131482924815288108126689804361165228405753564093766458365267370709936426361040518962421717836159630772939409277655323924194223857680159740856392636836893385098195115657355276698106748156300495495082129464599270404977381368015678382168766288893885758627637786651687252698082681426328242846097361056422927119429627267518785445532504918946359628919927376575064153065837683395602250496657074058565068221226234435657121806239980289708200964787803981410452117941499562857646080279066300588075251818101454242950762551121432787226232943233068771017190270381972694374550337120379483634502125355267962239939399995081598155508950431888952533438499903756266099334199507339423086894496185110559648954430414254997999939348330245304654676751943298381306609048069387221004713007765823690315084919234692170407481766171296238543441155792580780909155340567055881455853136492452207313288613539756642373720557900035486071285301470861737310265768385307027499290074973269298824555278674827770244025832516551718512793260747771185086512237544800812893283827431632322489760289758177363352085997613678553627091851569793657284866901896981552255930232682704890114414440511551184372231809274428145747678207297241334082266721238103822467701964203421169848271027154351736466770502633125342378360044936115058701770926858806869516674928414438315115021332689725110873075139895824707043241238747678465855337640416600204603673949738995013116944650235361447938962444947346383571272002968637959765000350116081470720272824459300831784039953599408969636073519791113272996926988646466953289141029535030207044536687832144150961199648803592057690821145507860358710065935945441205821118663069064961729289908190273055704778578355075877494940953266454250861980480738093116648806019270313856828732185486494404479734314830928849788402168226706883386143466916233843576171065087772309248853008830795534747882257487582344676916979299091245076040055044579581341490063406463227281224455954611473119678946984852460699745010496872234379702781910583064860749069349152382966181975687589622572112852671615217409752910235677274469931962376618440702850903432008987428359776420507844218394958422376582898269572185874645925625746201600405982791262816250976551339820496747488254744510554119193799566170869154225453840070917226078372739187920774939362066383266956070205674397269256373696093706133921313017358069835784318805451866341007161257291459930219238364079045132740008918536761356723375433906390584846445278004582078794752839434094641737459513960676229753042846720181743369129438147201738238530170728349185246955458485049921550187927116210084065578025347946695255302170830486236723147989377883915873961783229996618829658905199223172564381462669032668841921486658118510257849880469882517316120784816299790297235314824042444670907211112632865557455583942988286275033071525567548872191593754688181746251388516353742896122323620418020945226877954210982194752291051414826083504176164003190790186382361998723867528553464103348422456936105944149928629903335583578235967135067836571698304046067478658447624511910473209344973597733461995865571831281102739913727221090153557702024192995347868675524898036970082833123457237221996510356935867829919080769528480997451040324141890528798515686469535735300091520157734324915692761484644063203894079829585498103356589190665515519791384089612128393843945732710847190562765539924706405620275124719050903345413518310932978586169810506541306197963136657423020928830175082154407573424861547576150717989151825793294071735138072100540345113697128122114838484433379984642600962904989040907565778152820764934764127311031520465500982590295692031950451787089700027130008199093139194146531087609654143533518976374997714494797014797866120143514951403234837827664366284872064887411468663171725694855300794708554808111748232629728899395558602178792681473656964866488254586028620501549986241186823371916906465585708162074368339515234254631304080381902312722386499233234270093783312787677831660131865959998828814215831403281893811090162025371222388019995934321775217096269642479751002506769420351002536677390740308193321095535701541413942818889973892919619674025640538390599353383059033399850083663317141532038651518312943747774454553244539912465185155513215460413475983364287570651079219120661378831315522521715140448896949167150271139163604968824411175123564070550921872046542208349624448385294064645756098027971762693941180357438490909230540756970924653884773706696684211256506033036346045541824523575846429190458536507090570336219975902814230993384338055089045935988444599629081379550953594836184484596032845832348450293748956697462580816259696092615134552612081013588068421994971459962409125110710623770474991487960887224627922017614661700364312362295793399677004646124022833246280211442967229056844993583590040882486472334025607158554534775052191714127994849998615758868266039980501651889107742469236749097805086927036676658401389594559801088596909630873968635913433271945370616911014088259241929886460363627149441700421242892101062092561047955270181316406127897254527657229777258070883990889849591559124652820068432057365835541877676173687110400332811633155891971840002152191785310252332723847843777897493100221904698911915021952317341714606576542758263472422750033896504677944665907198678323020597805650397404920725721482218789375138503421475118253688114185875008249963547906597299285631679396594272292430158168896561879704296127257789459653110104705226703138612055449159209997591223120263391028341830177490412462054864636896668960683022342853046535289988504002004266054971230749706472259629530076569291700036158984968053400727398077292021123461719328654213268347932286780087153677980231646129857574547568747239875916568377950226708962448063620275145554155074036034427748720704032662557061507816637855305160673731833352326141402860696501462658123835333581251626368189520282182409786400288718377762959654399797290454147238112912529418255453313820022723440998057236339264137349731217665796936040298219406865180800116556737246234416628966929083676541559305915252432007338337152230611688078912681194568097625876452139713211196505051776701104822423580647992957722826681852250040904068157949416284456275673807790800345565600507189308989172613532439829710725689353087235439538728599458135108644819353806711948828279777737912982880052017653939967421975529065937451410844576758892210863545089596593949514794788047753204218140330801664615127580963710274586258675016446985574017275084901900226337538860679854542788505005222162285753153201015357476280130476517944033308073674385067979313653127659715223943745874178244252346451585631718062759125627655939832547308061764650167001019934877027645965223561255515628747013083023762646742896037990138490365868195896688078712516731776139942082049228786577940100985844917777670341263012045611165963927338004381963856589582280651615845532573181257057061150842525471330587605645786269208811989450989163939477244645211978152307242095506186168918196649560783467674398538362032603259750950953018359456337078752419913784991444060006237847065161478253099451167337047807561357623810902755546694408229619405798601257928494730170766156422832364812863385847424842859876807543031443625726047822949269222721162277643468433896375021979655335641461012763241396244442382783390369842018117108365510661476326755257391024624851899443995432777369169279537713904299677729091387378275971917648416917120499011668990522203683188760344697793924782623807943196150801515132948024559706615355225833015510551611279687827789647360414580842664331663037177660666998769631182262174761877307645650315615018319846644424162754828311442354126300217094819891877420698698640303644619473955314519756923730514712647478967182491946057107399435903545729816035492705077253012441494709734957252540750092016444326216555242314254430735370096656300666434839456917750089919662534303722314441714034371078269835359589629302408448711729057825541783342713746078573203566362083527663349427056259486741839382770983422605389197537256384727432713154790526895124373939254029636781782955951294484726961596451587777690541979035312839249405074901156997207784320707174353204622834627552457710818501852640739568613318080098128179049674138211975223872824570827613150135624345399756097174416085778187228063270647399546790689928622067353009242508538162840367938589934506949922193932533087286621869576117450530619232303933414822581844434754414093561950137874051961454019820237305542220818869207263849850611068592709148136080617201862792454785896093785069925701479311865245418964040810575436897615042505855210876284718966760245658978767915099214722447675106637071414849639237275938053700516071556387756353528223066091972324396886481041984384061029130088212834998705265995713650849325033491116354921057593051170943162039442766262082096959988664528759088636668115600665669584558089072409309162651752726218616073370823554226639971317796630131963972480859897917227938732798038789109920790914531551603848527939295790632945291617143219148126259513250035831881066084262835058219934227225133704020258438456504423712125967059769923088046387728671868775175088844975634626870168699214247939873247726401445029599993988479881176684114061750788075737058847369731537689339464938660328586077818831632907163503882567723887957766305326405036603095910996599377284308891164094524247849806068582211109532218753152686922356754819205792538290622059948076293953584269236070005208953260978532980342500213615130203383467399790055096465360102647228470902761148839236020720210294262351041316582328023269908880023805708299548225975436655053482498060217873815214580575595989218022267093018633477417485100697686742127681944351392705212890340468258976823581855643615761873150931274692906997508428140001781222698844842291570537159661336747358494979083018701235503407865567934678631309532211692452312066856896110773332121448248970142923627968143291466516711290383203659796086581922772382002730436055203700649798084235218527812647986186288519405844620994577499396993359849316272847706536210065290261014738591573478299631786321255962623167484376849846522805185456914166312580538774023792663373245596063126131812042147730719520920347620028401067167695086912839669099828033958400991655063467911964028771858619745292789886044827224909391751670752736885934965501716311026128199018226724681276501145631358333746002299153655564987706800564881560130576676923543166173886071593439252514870799537154638099446202550615374352980484372005721272578704503140233481746239095350355846806297943824812695634332561649949250940102060440441438308638332792083742898681183783829646248849285154637286903368796095635869671446445259036655854846326852610569564501407015023286959662720914463235174842654979074822705635839870921021482483635003866000351501830545116735424469469259326572419952384282374061624874261486562478817648336372435433888235058282267263815961686579813892388967397425097508167604051834165626320027541480624695661918777910137174230723964766771860535225631236840829318961788660683411920721938845449190900836052769293990393222944112586419620536804734268924375366318477143991205014552518486499767598142978715562484267989263278482234182342772133901140722687230171072302346064280735998575422474179961028953078530754937540934422979677266858602372740006077005537023518970818524663286127386635375678081190534361008834020692279840618329674665971163288895535695379397605517849619834456033685506836875383599268174558359515917691895987590500461417793418235927384198759135781273529087538807522369391433609349118522588639773952518142952527449196028358684661509347002725306019705940420293956041938253768899833300578780883352799954805434470063218656656865709441733878710112186216125575213127720870763374962708517311840606008733779503102530186336665060015069925199420963489635317566126482839540297228491448331989253836719161338540617793542537195806369860107445027193532659962883662364670331167505245982932699550218409092115834538035244765699330988047907706312373803290580170653738310712065415703016006263328650537399064500689469430551801006585083049294044744826412762549434462431238304797391533852458460607590422580770088910564469348872989301189036958985049944489219774374116130622104400453614825875005612640446127011781658840437594454984959218629539031913686168252135048709017714071985096077026520121680232845068053057838778411168966851235897240940499060747665860501201731824666781120092943694114223941136725149338662973607131694460918814608012544788516567674136274050737153749944532519976766099483020804528930258713109444191958576525580552290097562458228361639753169082094772151481300390632586205050503167286458387827896808005721324486584158355380742355492830467011076070863223633172601168011526182120379675766038506004416814122210251028251977855379451786980082301654752534535239435410066254336046436541670976234371023257298974969167970597809229620261760615777353541948691815449049099712500936014525566685447479760245484615462869508861539511628290479324223528484068077143838550884039745660550124412384527456711831472152450085317582367028295843014392026359939493541941983254775636548951680405948358548033905256239026740287695938835284236389694176521317172702578261301681580965390827741548282253965495226087066342117234631403174504818977876048731817365969912164684537984501739757180296201086642569332233284138435633154066104526947502135254045750558309269684978617081898558357646785550501297335323058465309742764793272241614845605734203163698719132567771661310768748301274687924527946446971556164717617742566281674280993046056095867312399818733687812161002753108641227573660148606002327567499421969199199718267477966519697730264885742756963116974768014895417475029336693049901845701196858661638762022712918928820923698939214695037543640726418084156661889386739933743569552649250152129888243247314592313372295978668226878955345946432444438742233222423176912044386387262334215142499230968260500296848341325726902220510192301103642212823500401496607898368283471388097820040995379771671762505856444955769225292834187033774619939592185547939809681128974864399364416445122942613476465793402398743936027525109792652020778801030758114936611425530264622220485860794025952252388798111703796840752579876052650730486872918104079353198969382308823766772274913851403970905567403172324591112877523330411052802884138225189923919691892630182520946836286408571873504167629383560758957473616624793786200748066932490312158367777608560188721974143195445195844982832418762499005679769258311777149939697148429491508643357413944039321731215617660476787637073021866478687191418992332634523549426818177728445024328523266179035454722594819838775909705276345149918777019945998904026245223088948163002072133891035763889495780770588406866910967053497671712263460183441372740338562850373115511921674628328504907271945352857491726910526062359027754225705131794464555164983150901334429939581479276913265390918575733178748069825566020547811340742289822510116108328099742669099690218962529973027031903776994058087324641808006004706030052715021538953824762976752479315777202088426631365969217558468589950299588874786740319529846074424750303744436398710744230515766787579019411925400309145647974119421988890258954034836721864219162356405826049997538806754003278550296750920057480881268419556774378099531085818218068116914273671622179960989696823865351323023683536171244635491496034484027555239726424216542975001425514294769944363790216178834393151700610818809993263600522130845185168037668824619902720835422085100821587432762227372520947462019946268582079459154622212982086462527606310545379395968461739381115452158834424984614345410906052850510434602352299204549694266333861626938568178265610088746752930359138748430768431878498834778745547695959464429710969049499900600150705153650241360202028467401812857302742729310486387958324731176635904868018517132122378725793325791613301993984689175117583481864472333982835770595292775999400525275078152169704997088897836400987153085101272647212878013488795119260856439623166319959840967513754883122360977614559726958458684687453789777936679133894632546411561404230262951329694490520531786297898904915920999218071353878570245121096744221692723590736987119419583020827421270300565436363401392813381251666067107046764270761176990090869510804403188562354364321667849900047162497981137531866872257379580574314632944385181787315742828235219321494476298833230785498017695060206816383305418888359501643470437144726234865194506837301541176863086546537633225841559391302520282598615235114127756897190701872435395920579047726223902206138882708561511467454173322273890431554923137811132634786212533542842977239822708221404649451839510281385398161878553795980235779511008368948334828121169841015273372921616590939434897941880235824561499054362609472818480320145009634434569817456844807217918951268694008294267930920998013719816990842201378781678135320902037298569812355377097822968961119197594327874058254383383891124142492877145978078164790177507528358748185209030249134492933527433929995339322376297618603553500689529966457663900012532274709949173855293358444171790973158100883918277319791650277634310971275944756573845812053835801403624799039638008227287938864277020227746958234529807248450198047189014049061860742561841067264676665747791574936459919344309826526807533013846882020153593016193914621136576516755436805443708453448590283175499946954761464371636860833765747905058971319517539566841822361403574868446015014019693825480532206454575473912892378996355275286658354765781872491313867780734585131499992458899576259613324584596658987158087668243164266770710078878018946696746665572109232214546926211160127498963485673158329402195021488758281786081063210317291936183195574952198796563918465199798318412701796546345047772162491181473346118556345856317668495508873192127533172728127501742558584748651090889789855178979017817158733194816115545678205129454331503526474615765607554321787508056537293454183814569113906143659123748012604957472393427931725528856948198485674444854013236752648335483013413851654448539129796916603856152788701740584477941534086828005087950638069446245307237856977274736348230504340524263608962152487211732339687293717528443124660596809509368065681621093474536600356327046799003982622375691834666809855300423018907989176039743910684481111335256397997311766654562526124083730448108278163824371186220918416193687930804383268927601740720570232526979266092961333640507114038514449276846554802881735905449376793477489145774002454583516950836090337446081904428597656019104220147459443829390604179035814729766615744971047134765643504812159976316246503392489402339091197154340905979036398198273311651567968567786043610718601738131559519534397071491357881926796569265711913616826156390832301742723873123925623313767843526438198980556336075881539604871883918290718314177628301873142508845271590713281254910531958243537709029176564910539292826200766209414643819527440550310872024919381626194077378717565663114321554564987920332774873467293686997527480176355724460757032618035408054374114675134713127921188560371017676563303185873860633222122636373834240746364610701828986493282083957635623775384379996761558822423216722512726410614824032738333385523496688621126323010434842443306385265589132155945858779156541001898990484246239396287914614034715937582976967982652769205428040896594595401841975813997211845759379582674936541100837058900901104123140768315808093627437954365147207153375702491600681418282552654776840383692263162582495683578051281548098491251999528255394062161608949287733151722015638461666667296462929881634108157393947784368032336357859741598745049255115972251249934453715924930399707872789605749676580386743647098934554718957213873633003586517818880653897079380720496547426812337555870959387929634410031797020551824806247482086924438027951891305494442278405068960594020989626556240832282389810460693983505608956380390497856533516613083604844332186473622657544501865375035455011634652644672355713609847627813130036779721401001915844977798163183174733591562372824980983838396282916108620843653837548721100688653216197181587881526389898948116650749517284565753000933514222146548097940480368055322236143118900521255556405647723433523144543414219983627732726959753950477746996306823979178394549414537286488477374133560537998176630506960849309901637077835460739517544627418035016694363657515156801451811767446483773983580884013824180864786194624860733308766771267382626568502453634226366853573436392238584297294453166459996053711350930856447302767184665959793032758399850263383604685771126754447608347070916855216124869528739228504202202271644833332697115054552377325942948256274317512737097848746087171453312977458447689988830288686781760675693345605163966371698037871683352440877751555835562943018990359196311973971567878529557704135606848475784679887106363906111980993777675434525397899779381467152588552020266076939831534605423894938896659963551259331784104021314842685301310972610336374287636010553585236279585890000094002722224394234722350918863642909739018380344286286162047687228665514072752507164476254595532427653190557540666686479334045468339225926468826420565739248566149190384127498263772870250183287489692638195288966894370355755008286103012238465845298224401517038990906802114865685015431056812893122236224329087045150273551908056113897614892079772369708503385915743823245594424698156157972533602589849336033696318130558398490038417132884197531616002400668933671382837606074526331327578098409334687355695839487719193644021227517366428162244545576677763923314351626789359299938979497820060869470063271179782184213204853738963667183393280269645918403637527705475307323708783309979294777839076030857171639704962020483297027758597054192574713068817051299832999576769783959428396327181488187019644771398576457241534946177991905127102106480788588298739038597322405845591034227224032143960548596292252144340419002340263631238399070606103427302466116121166268644731933694262805092273835630387454129762226501857888946069258172976414119067640142947978035639983931313947781321775493090233083762540463816947645273235411653929862300018914536921684888928898874892284325888670725459598320799663203118063565966532423065766450121697528624581880870477021947762437545792027193605695401121212558025237356704424994505496461715134354800458261323456054885478191857868116828669230792645725065113908147430682785831076926190683195851507984799965856450514069982344767079921782564654047041101539168839466050039360456184325345065265986221791950934116022772503768455903364318428755472045031915251992942587268802694796331002706212826971276534013979932435824894483170272096217434174489892806381499057381336185369774165218514520504953991359098645849182958510710285519224637192326687780718694021602649378196499964287153158888904002784153840660496389558450441017181275515538344842672015587521630578331613328283061706276941465557943915336677184812333594080340612248852275080477503285582506989304868811280238202840100503964203043753964167962685604336148840665561412473469139330069388579192382214588122243947195839975771660472807577783984436456457407575760473137919262998018666903430527889423784305562073517365222623903377412447970989644479365092631204474392594302522150885378132229447154386536996377167706059652518075470193665073616990707697138119552013441525114112969584974345886403757069372205460456182158201417787990513053122778584073451786451572645630477797060486021696308133983431990460444876852498721596937286296480525642938233606874928148176314181073277979765169820476468362846600626675352523630102061404441501848238188074933553732286136069884376733570133342783042539769558829296932838503999168157222453189832511761824423889303722534856264089627774097085276517807123831471787636497895199640094509624145913464075351809192327479587129856089320364745245856546980133219520668575163686155071400463827511394735528420642472803919853949488752757373105667183319175668319702548464551099386418387204433766611260234218107707745657681702116144683918773752639149859589127371495281391990379466338450912396106208065835551049576115417742931381774066523613174823135816190795776365455361483811850980311341435141485056799997862859503564767381714384027892955909047691714298660720749129751431501331097560840347477766107435551114762215686422658260541003573049521726177060729475260793053336829121620782736522210706189858460196428711748586325233299283884660446278277242392269636593931021404651602977146346663076179741097651705696855498730813486601187478367002436916944597119049180549445599420652199993745157945050111564771029906944369044855620421608213985894848526058750312825281454245201903099678283468856732767906065690694132393010857323989262347391667232803214009352471695694120536414788054405778647288612017093310131824576441524715119808447320923995603754870588800663669250004415130052271494432434365842818965674908101002469120639642473950184863954872688332491673641455846930913389441911738500886669465749504650767998404414298503894486564336331925292245903369933395680408523776697333680787588435757318421431412101344448120055776207617220080038717313119648481009485665292721068208593319395627741301270069343244066380424102882988992181599961176475102925023743594865708073895473166427763321704419760501695260472809597874038328634515634194314941856276001701323429792422934238182253887149848174314626133111901353062923978549286642300983066849216158446002110841508090929530913303779114429453928944135404355730221171650310136146139461847697777893806402536401590344269653040611389309898858740262420479955635316966799764164828921385927301781385261550391136112268533121173746874247401307989920998374940504230340906827800262069029972935688779126630681483038839831899644792719551357277462259971542018375681148272075442324576266380113099302168753321234299183942492545588332730558098882740555227001356919316723579733604965288115877620459748037423034224092412257231217063245388351718995946355138941816126071200021343740241776142785661754064341978955027509978583010633147720530165428809151460682787459485103356175997709080613739460219860994129801629779647682043867665741015629678466745056092536044178573905260027291256302774486190959649523419250567888712264815762075911249489733132544571995890879018332209486254065083973967617661282654179909169240872429816952257169130171229901160241415426203845164676964512740547907918949322954729338981346714518514996621777866473193138853643415058397609688154123918832844489812501316140821859850597361574744358140731368705080779130899625468444089968685336288241416575205561919239012090525392538532064572555166846220439679181739553515156318003170227200250103540013669104190189077244572159672400472603755826463726793305832784259703611468773780833896673985479413101416102018886592617265874652715964244064050330346486372476472046858483085635939490850586783299609264985786022816458705541053638612565350066480710719150922026778328558863104675734979731965730513365292992357762635664982317324955108098266293034069481245486309548804848146480745824234629520728019236232148497839507373761163458180633176680057396954347658256514202112580580213541201891022237256892486730088602795259291308742771898714993535450819607111195980142820639980197258674138443493771032457529233193502776185334387873843833476879953511067458392711225733133727617059625136502630944003974868344030579490560462003786268753771585091258595518450613707533270096881693963357451756864880581520332694975669896735162164982614781306462957618938197495522635866552123157330064985754973001966671031670783770160431251712285793377987085302829080624209354760524737360706785260903369956188023103690774376911197280783594238615206332588728260033940201947469135503692609540075355570222968284627579377247930314029550320447906916202075863641246380784690003359587390731036039473376109427679204437723830920743270681986573180682571448363280447534078703927001162902562266315800988576636264360164748520834405136007310762950775516457684811530402730921928706162935313042194262673495833206706443898657898537163189418859488360221814606280726984015031523593864492714188806384798263915723952192187400037252444334644724567143783309229130197682885042923001695912775148270213287053375520080322518940838026456464890085523922858360319709221590211123836107965332030805911790419285670240616235649167397785131828134602515816778816959091180514603251513617277314013525645970385618120394986624793466380610732117176423116009903865392171149401954280997627550936477354638463924023328049053719364874921018397291397854123698124625513876251237131161737680510375739665319119664831033418355362998982882528622633450738556142148085530022360766345733655754008285466026372318631270610981255491150170530286217309482491440875774129312833579068328506950945630419430031319143393220747165049276995571030577095447586939025226534297327280164427385519023418758429485241610234389464410514260320427881053841779183592384506753568952142302177351386042353833312573658080305663891221798464295061255694366609498111489974388677445601540339293149979342387958772964018697143296673990343688938953568062739084387545813618762302373956360422978355552788052345375952012827663812634297996214241629413349206990431362033843311770998261056833315570602750164805529558018347678456099631057532853808588636421605639180670598926747139148989541364580866600626336760111396171263079101620140834167364154322210294310069972351215215411177337353577856427903061083786196599482645966928099039333089343877682921353791479661843063610330651346980087474823778836689052650060894869173715172649236571666624005333035369012643649930738638581565154662944105752477422905031150166825870190103470570905730731988891228721788425107306154969304948667938298338184340320444117057481921518903160791139047619628073612929446025753568443572112537947256848324583025020321560043099731246145878935829942357344204747290138019905401690866397242513073441652836746395989041859730862380930369253015284463376270980981903712737698561063566055894325214103634445090137806521126523991310848183222117370906465285382855789518420539050959287036332102539097905261186361167757659770022628723696275426053188941655543184914332786858865682983174923357747329050516419932357128774286226406277236757474716303641210057257823293608944895084045925092552864480823286696796449113172807465080087204549632172787675430665995654670293790881977410217147389773613794759470006785432454027647880554818872835124090855207861071928266994174324280909409190420498030093652878351784762993253937241844064282851288073776999639902781752338144650377000134565136796339032337685563415208508214749240759587056594119723804144819718751595880499375871175566954552690446550546055154551659949229235878352735800203613624475741121307584579605905565696777642371693903489739796099786944034428240456045609201251059401905420016675924636523995721689363256301877134849479736654219749876654744571217432631153166026850662021669521472429535725531338554197760738416738076881653812108736065370071010404884102472808570079403220542834969101863132920822552962684949535758406779321332322240558408844924912698469497037143338277898866430812647216417657800454742494915657228514023377335025102745024125508592771073568506772846118032327817919403281358924357308777007532418264363723801717475606777661536324654346062049564596326931389293711425172134329596987308387994791568669172367416172091870374321645681411926427177196174898608349933411100309398731294145203230216944461845147390643107894918900022429522025733419861383972699022497194763510676268580454693643341253297974899578899149214744637519139874450974459230275386682158841368283208963021677151304510096607800049817451102965098459731550178990482310002675001217369253537448738842267201321318828090989247599208296689422056870920127149621560082796521567676067053606194513570081512305639090206069096581549297180857456126860916159396651121850843617518909444511161282868884883259608580760139281784809600119135182688967911860653442320401643987173719506863451297182088679864530040007931210347860546705919003096138780342378782618791987461276862921067308233249049543881133132265007502897127387840346092234590419630652136499244414776496213593415596826707215351038573116245439480713053307348060567252190691802926516558419143317747024455291289234487835695181352178961183298760979125894954962159134930016023080811941793087983486747612200277559894714598681677858023939953240573839572389014138812860716660329758953446468568876150736848961408853121653651647971453089299809669971309266927132247526071071873731578451483050263556826350659367035979734545758799039323926784531856973887009955197424314970065273494100716245168130148492197108378019459602716910020601473972451571871649798374125173965155584351772296310154271672870429820452864909095687773966880508972947837475736526123668506198976321069181341254161440427365337460997664896602997113576963939311511786051658560687039821952773521363703839242505645417857720860713225641676374024973913616362451760697200387818769238293231855891152222134475738518282429884069290352772337270408978871434570524637707832557493615247180110487134405025811499207458565791704930031762579086173933354675660136050583888676144835959383772529170627340383526349745084249729961617144063611522774183955058234486756445641429397336342897096012261701984827791009828598500834630807147426341796160744845232433913467863186146530471109813509597309533141598708073700925777603268299806004832111824071262806411299015088724358685202272871004579447978856391843554772054766733801408798171750771932332787803958599630118908021770631306312487406180199265341329596154567286696820478011567337300179200237599949338642617848512234695866783224516272220437356428768179953319439571419255899654522968205204992558813695707396091325041002721403524234473682267351443292871017765185188127844568283469958474933911926967131737108785854265958450553921773835483253138647526269286194277522741874878662881369927050913007781789251942341977912404342215004579113451589533715538911076767488525715213109505702338008134326412152414990543188979169310291703040994214711452263577827866481196472310039429605957851365657169968141395601960995874405392186595037523570276199532929065159134058997162938262097275440128431430534914101643959767889106442156230445983988123466951983044100413921582293146380044452287005300852233803978516846221583061358493799818043756896150918622959538946700126260194078240859202621631007823226571877609537708601011737894976023465064877111192405637879126987367607045720517420464416240099917605778825659634594820206634213856183860139812907250208380419444533869051149108225168679894698153024621080557520962350320043166102055769162809420129170703071748005883266804017224545915100825887391520802556182874426914906990774472092221340442082723136703896115179290600862151141103523159268258872926613161444884399185875504626194575369424919566238964746609250140930502565673296337059697658875435416304665259304247920573332064125426897227683301766453290027058062521445877705885243463803336373822251367326104177482680224801762065351826560824601745798373085651779532360559749687490590982633064042661101464585505476253489392931018200159731143137198922825222410208523520525489991668036108176853495766373072904113797977057518129703012283246307548358826208351917956110006537169535328912941551353747798498973333795871751506498713730883124897489284199999657971262975271113220567245405610738755456683347199855406429768955517116243255228947779875303220665144911942660868986859613711927991462110188326820700151397011135657109405479747378145126629732273500495071454850315368349008726537165307081193323883838815328800900436242834382048166509096895980734229557634314352109977335189441830885325314390899725924110194449344940576034481535491176638054457817108261225170266198103478960209344397721953857532238941007900313767153867288902711938832702309574566823197994302781590547123230621381764274894896134159551996542804911404050338717004419730142114590053621296954175716935101209568505165089923456743212099387946543874580461272309661511642093518653008646836570673514245618371160709408039131979162253878872780460078001295478210925032143635100473666219656177485079201162818832618801911078386866240942357350337694332419125100021472520290840076267523813334437329013108303204307129553232110978543803789490928398559672936756386268861296572610918895326689508796946739041556950129833178950592228599506034479271375632035917608958505836820819508522716113762417704625722154189623157000436781417500978069357781403731174329407022619708171343475087128762114198755136400849898803632133269922474710312686042661737798432615335686801821538782113785077605204251016124630951631818459896013087469035205159206756450833964712760718320636705170632799129866855067319215416195761395523576794849048525025118153123834550306581071540933177930696226733561913970534727953107470408818688656764533156809360765428126094829264981890986879692330552297867541252266532619322491611293045718730500196451452096973242508556837780288847346171464958589787300620718903928627657467703625291595826372659121624721940585351213704823269072540849548000671992374637880092400948313141677378905880074516718626484148274907881908544485702506859360559470308710834096256687727239529807426435425591112620333239120105252803890825174058018965768702058625220783446936437318863644659747508790663203924588336313877871625488001569229927709691367633328141677130455761184842974727522349535199902623266167626643917316161004303260283335024534867417754834222774716903860299357395649874074106576032568717249862667167477785096584145009489780866203622150629988280474248705842121101167954776552851253321861577506229220944787370316927714431000265741456397270235294007683467920512375311617151085621554368628839500924780407009277915509909422863536806154665340566885943999190027247528858792197324732564761637701146569018708281572513113191941280924383377146501573306773605793646930256928456276668460313402340090302157650281341536653564479261480069227771080311053208156991728615538540194627903569143838131325078898662835321896220905954610423643358297440034164000533138557255671278473901558903349843804302335217974035696960708990822040873909296440730703420216195916458562802847877117224205646383064350962201797436272138772734557285426033943788027439289404775353815172486421615210165695290630945185139859948790833312629994798294393110344439555171787522447703270052349020862776007014516844885682869120079710301745104573295248387169268034128464765286722972561099555895334743448026996458849647225992557726695285776817367502080796280976223735393780126444532031923085672672494827484969852662822315628903200422722773962193874751629441691744028105574240616792607529880837061075054093925469735648816586912507481794938044671943279985803154534713829867164590316885484364727704267083298415587446676356128188311550133224955425586969373691459920020047931472114247350761873075635106656071686150365277320686075983980035543196569680465550317059081324887398423477531863715050198070383042018807565764273668657138187157135801362514135003883296520291571348605122483723402739476112159398918586174863137616530154320573538850903034946185320025220193241228612771542949139661053643192339412722761487753423344446402354822272656205376255750112952703837981368682378181768554909758894670813274090536020310964723644987175935508744907069096542981121371843192833531709307546348191593861831471951956352696702983381597300579404989740755725233626530786452100345113622298169670848385717325471320943826508298853252631808720433308851635573081625564146341194195998924846681553542899636034985463815277835678340422880949090503728413866195836453450631948524295318985336797695761685696653128458394224649101928411109404111583496533664525621384119572288946904741264377703633705306760380322217815090979038467484749288881916988997646782574242000669056342710214443664454955678889464314435303385631469741826618618118616983983522358369428874108997311712371210992963568681018339148911606234614897954915975958475847592845923927814194357481399626917465532719394392645371853757907376955404888753567494130501431680851415592493706002105564014200701901541185679072791673418746485210081921844491924901750115070000314997132465689142941457027554648802665007870100047705426659034166698495217288776108783297097492105911645958647880135618145762765415897651505680378685412389069830316348638140453018630191237596028555030789933739485771173197201862878368681017719292148588860827559681460659005872151751787723317834180415224486619770084642283632939869215783919201937604649801822487991815071597547991616040804293123278355895923806399413417961650829133854484199699395818241029688463550760455572376645466799193785041044190478038423594620674033154974504380866868286716749636354755392509406108797455823271888069692393289130952525220005416102869638962775143851297034254758231322369911995476006643981226357266200119748658993896877482771207996538195003820990876751526460476287512150584565530788463767347984948080127818922329709105762686409570871890981199239746592648778339191442395475162498021095711621176936333499674585577025205233576871472398029768206363760146952241820737658865720655090125164752282070283599827505495009876839777270023774608908637097742935172078523629877429619496352046796770748014431666765706582539050868254198272953950039339236593454527042847566700396709527960354952739141412816631974718183396978954713602149728591683809036012940107473604751745432270938623215983672830832616967898974985124729726001157002338727694803499733983071065116882796200794828202507710470183634180310408897364077929998954543350018285671484675198228109414520880150060162932965147248860855475082780739251105041564494282235591425248706898577716370009239223053816647663869411057041505737242649855610150929577014423839548676520459173406946144255435744650714652848650977662489074901389992329248651679209108787583540997179292552740157627024294549454910910636086986156273245874326918131097408784925827425373908218857068857990907493081870252252133329179604223097665507084348989995523160012432208431181752711159824260582527476417557855935366426235976864570944358154975166298284333816511149383740704790583175839845929837902397163831986296808093011150142401456440195441881625517409193303940594239129263966591160037762708439846623494600849177108038439921442156811449163675643164415397171382812889599071884123327896639382360304780470700167941148641880656707287765708287015061146744992854526893991149380159725016719566167491637418767398967131159045697674904805386781730749220249604795096595966993491085875762725063857630614243892180016222117359949268564216284371104347969580762168795710439305822983676437865351037596123174124760710633008642041649607363845609368450758992503292886697905301753749584972088182557669943955212722405784251559434185092032854709328367368728799340318876339432384645202240206206877327040490292821296567900696004757669905628543677402319515287524753799685044591965195881470010570138359741494357545383408902928058086837315122523533305881255340821883908637038187841222005941620484756288817576535738480339731528071249082708945882432582342687145318804806870019319980641467510860069660257078786929846701549106871198352607854911240428376814163467159510920528187651511296609688060265785084631812566246802372293250541415973247761339930588752330262964533459990583513981166750900068868032381219079923242918052413509960085956198255078040655465371963557986735036585485367660544669707677085058136026903484140202439006300689690855120748338917090989839693149238278518613136524710542271965809524705416195284488286985762496575796895014123233544752098219142326749570021297535197953563981595244937547356069735064755553245278799928010440625218797950624783448607396898385515273441716229365335228127942215147432164023417405961967971555466982208430775008439207792733070487494601226917670555045469959879369319256635117125567042754319261132821642763242444396751499457348261173057379235660627724467326177794918897728343822296909932637093610678675018867828893296197592126106432458641634138844861698989043437407648482275123330852888077328930736047486610926699594041093060442528378663898863811352767625356198412734865074303321767842667732824837543576369314525682146681319579740759132310519259529216472544997982426717925900365520609872451472778946846587423822113349605967177236417578477986509824084112529101672658727852368917983017428250826646051655174491137487487677960741833509345238427342096121816996945047956961553572729269852104927116079854191971473861720672706219571286980167506663466602981912095937932451433428647168164976991128214603615433950089627527254553576873626248565379597790163036350136485592896103817051237845463887119824122883340445850063380177375752560920916859230261888534981408047166438522780622147903254257146885243580427792131372113637045327524304747291540198623996790590430421861582197439839869705549320092226908417901940839604401985727178701316789097938924903479767172193906665757340732058742662946709075495475911500604176644753444168461683817428313531549532604070453971073309374950990222892020041055846003261907007213744504303036602839731001966361062244058531227829836979186798624622964737277862932260242370228088361676104374312498531921806536812200419722239860247858263648563199638402037257081293970224853132057823322996298592519815363987390302131823674318215069269715437983168563714291033749007210109853618237665046834534698515483997604408211829910300627558690424571339145870137973767552778054510598194469459786656861462261408954115820041719323513098772328737995820947498744970748232080842787803546031739873632851990095557229386276772703896331711695392608901545795775365829192431744449183250499981663884377752460840850198719867750767869006420683653587561268163289745125573074305258501729127565174275076381711634291523325550740059149829787117512111621835037569132114612143886375671320652830539482555241684703352273212774104312992264543708677804127671272720467827313804132124396969693039477019024085962936719837267260437363819138230586999078857310301102019653097082553227690521828119563752182386239514500632200069375596159921863282702691949207147082905763440308454784652995851429763946002031914300303015890336556170582292213483862683361393508019599214326562185666372139131147773100358669802720697566291318192022781533782395491938776601065137719434527254752212193040242250719187258315777105406989696604209299859147135120412487319053720717222494009302119505324010112804944860537959005768358205608118433672637083270605016320688804348137641583294736402005397840410826516464436416766208837770591805826313571780162604418146130170306129902393107564119896695500724105461548121459872323814623716705040494495824890452756652248140125722493790008255440405963988308073262483150431976317380562047504116446330039451333422798653350190853903277510606491083808605707685633714339289485726577908127620577955378191858998312578479587158589405710228682399256213321822283589525694518877686032645084494609324848850761992312756475657022725927930249875933520562178815497955007738099552360340147364343791373474984478091787353919144566678012316679983492085732873911903122771442901492653388405052223972836771237374531637546632608728484452377977446261135406442701492665689014790131654374041839542516142246762462954196674745951000019429479322620344392668837868039284133797527964777735558698944945512687239937753502203411341294673825727112495246744031021766479459554184291573451947624734744051037567286348884325027104161705718030423341370410663405892279891440163229109431900497374980980202519878442072793896514023940662508123759294956555767069092747904577231437385082541673253411475245667444973339097244871769220739111813015917703570712290675476724683089289597686019183054404607043809372394197881923874703905273806222869183993198070045164193613994380182366035340411631755041989051798971449823444860263758719369244804792999108529185431529884187449077321954586097794465904481347847279320933406392761686527003781680926433832937551202229045536523700586191467152769801362512052641211346506460883616439472544070753978730372633878859221706240413530455199886622639306611220201994330438576280815273499296771008773079898214478516234307910948218130149655646311575886273441538162572352852935664345772748598506318098848066546380567019345485163807963065365444921252968293199959442779523941005367140892493699313289419701139507736617751052714828457381049007820431158221173145791288529632240680511731496535852763643475263503653737080913904203133269557569050427469937234933454389040952904330470582637551377151296146523694796729011336781733388848670989550558067341245874695141802948000805437631988218157315756982847733609727058844963620738293805338885473919018872928190313490286945928718692861733650035612978389032679109026558201394678544315229363758599494915834036337664317776562696374918267091634205392047413061861760947191134630963030357417723921684739532568967711633033342051495531056830589085807861928080812891212825847266573181634307441358101027471666749769173712712132400072753664973568558019823320652116498123434919340013664258245856919382210416486659154250147983454329795300084706409042274855478578132398421685425062595105074308191384541639701994247263431775681190279523253347041696475897509617287331714377982613099275920285925427495338728550847654709180864846361180990815840818990562802427255241326972213421166783989158987358098434996224123388912000970514199657032383655609368185913996529211306732833334911984048962147703020287577054696043890418257589978796901782705827500368221594836572206013027793813765664282321210312166088632565230029332068592893222870152936441177762666046232281750519988323021110776857502858302554049277006923008952324317291906955074407531947660333915556425964920246924278694553950362617718755451968888929565320201692850301018674759888049467631308280070897763093244593943480026765512562132662395815056854728852642979835839700625407925751220722618580508192536814564289720728206766587310224699793485819390961651743627258197527490174393374120641028522987917688075484263069025918954270202664650595870700052988125136594160856260402474592351214530873733338948289352230833973868632459407996587866552780403725465369277601058199546610648630346494442797785630942304029416657643127645931699868230745601611330652136104041175506410035436154121965480989344632427822464612243095644955934058716926993161838729895927825527261578707007056871160668957423902090365801705334963005626778171339114680613803944184683159000617245576219238005794645061883286224527712095975096147114228919137687414492588420181429532523604374255831408389728987445499365069043537836504428170099108734065668316353132077487536961137637484581186516795636271926435318453551232410822660989176781244858930147360351393660278912528666332462251836358837820069871902772033888006097512597587789065111446692107631503321659344654738340725589872786429170249972342029958657763126923036670321787096436601830641253129712493828301492124789649560399079896651563081449195023517276682233083738758742519875804709412496944776716038783636243437004353959948810898732441068689531161568959610448140881164651766561012071214551747790877811187165179558484384616849667663221665430345742108348841623471458225424109855424535193670781492451220693856658603838834887954722425615265152313549935109956821845979784790289209245369071338197463048332814877446998756152376809040575944665983095864716529365287614289561519415648814442186517117896134617650107984802777466481858740166853438503352968369455726681924904953557987196137954792911990122266600315844409836122806313541174984830831259269174342674423932444033523109900546100670632789222778753774039353280511083346349182844191662414031876745868957437305187652983757617480419780874278293705847933197176509511508195037550798338421744770303221712440716089665715137517753046549087186088923779579779770958758728322650989340582488242540966766696248819323809034827741296945166727132437978921749416971614343158992173736969814104447475167571213273194607945940932251027266932508071341222919183251801475680572919152771475840550478480730319526006322749689137584203090302146224886090356359775138731965147013245194921398796513288401004269080723930555157303169691373347914385237699991881100620201821647381083362886226907567693497962584385406303406203211431016642940790118186382547622345796738030799877140818785704159840232763633891665941497344661741553599892360518291295637920224568360151258292067646077126801017787968258435585692708798670341767959504831446677974494135864849464412496196986624724408803215253620084708541411708565223115216719230432992298154849215808238311179724091214536853564716199650637322843226678357700524575418651428252391985278889275155140130875713194137137960912344731814268324139568113401221630608853298546564542397731166819927039242982640664807229644428249082331269148884599113511319576818119144333028383066203351465285678524062245452444847649998007971745621503977214360763687251265810571213979431303108536793006234704216534687860819573453294891154947765158016815122292123194226689729987997767318276149274228882865285896075965573614917779156138223642738902989047429744760320671802606210128936841563343681920993511422738079503778579879468220997864601000867479193606839365328255570197222160205898988361241284483964571091743915542250857561290526146297701380124969721293460812292791660306451508528603324724150999430318158717821431587486757478192318288526216695372913730959767264258975443047948864252699352444905955261764138724105064562893265187153285277343242208752451095643978460369099193872310529587451891823571459773101576413140496076558024189596803345646568170863638021572527224196937874412579367552699492937487405243316747113437990844214157106920317036083936371025005255661346079759605399589014301672804173947029954303827701903145788930998812128187138733977507343768683636741343260433033953798294125346044057619058860819494197147862100141131006253026065624007154404707427344040289954517334005134581266368196996383721970568232706309407184548163092560372813023039018279761887615610249625852208233751723436259666660760567304031717370428828689844278964137095617235486541653501448241529411048782716402768127731687554662618614921841889409444259255045189400660555588398091237043785935180145421742833046174464023548919934978673951861766608471740978760018147521524304920243792338012427794907020725968900912077408552753334862081582830496533606136541030182060987752389660329765002721637633561538622883582461104561283621107260823431656443454375546224168598265393893406727205222462648155838780754447067097719265781852836206405975109476019717049156412926684196286295536278634304941581218284178625777168767893300380182189708424453194142092073752862240949625214796026009683338014613021596786527424151411021714661451649431998157407415086510541334476823837378831595040512333718731014127589166275298974900992958037452116183286911707443012970198134063023603774918820655336692206974274982391082163981627189049178864266161540297861520941732568979023576380848407543544171036543032441440202882370260038752253925477383660978643553163574337142386222320383992193667721543319964092145227377091042575263865857554080144203243593282582456017311739658346760328182317858724699288114715307201242069180476781132738500960105711411983253527922094241621887703584021651648004342436265632432956126794755129447704932048424259455999340180091264761686339442193242438788793506130986655350119428551782436710760442042364033457130416539189215731405907506071565615620953497199957065138766857857315194064310386876374003173416426599187965332211253197194144918072512409790220629381847042868992763834754146736667077349630447342945311572264511672266789730665524170875505912043029647444977044033548681570501345238090464528027602831952578867284598623813113969861848771548593942068542140138997843764249605113116821309057274074248043005125600517849122347422654915683811221282997244798400188632752081115704963003179866699574078989150428065223134294276307459775853028326846981372484184516838180784502498280697277545860609160923696598324530850675344345860780580726140312456543913272092688320382045902568707555649612155399707278849625096131340000405938562782150399340173515934714790781378746812580179352739934333348870816331658974125483912479828169801987493786720943471209790716845139757245639866872439678309771431074312287405241112168621729652507071314806437874531890215550548677183267304443774125372245159170480471860452850798260388057394571244180311002633220968360346109620264593292326419849845880721861569942462343874779035339857060680873338681352527309051895778817533787949061378133571477346691353456435370162931382847957564890129593971691323921702149718273431432828941993388611409302972161912146975244579404194588675017409019369049354270284275316849322663699004400742360993898159529067546404192382180585268272946567320221831629165384001977972177199062608989482348958141510808407330575435951804072150749175184199901897606658926066061484847075694951386017400693528347969803207604173261398211704343877115374753317622159977463579391894261318179374746166650648859599874969395253699923682855793002989216674836618451925875595250639368168140079400103249512152747504647165441412339058765791517070050918523637918172270075550468859600403515094326035142411352090640793335970259927497843336738835696553312508347045975362150300386446494467433149280742042664831392302261331768489239642083499327452966167812413087066408836620079749310928569756282668071048952494538200176947705459524045674341290273545171826478693659491885044620042971516183571998470513624293911626766295350388388902625124198328935125984380781825760161006389901905853564601722261118279407850763183234760116109887870589837364156880701226141537961151625779555081632595516012123233996426433700562521019905997928805119249542669486931752032837734526572335495972462804124966574577201845764365807850870553442238664620024492045655975974841858305975192752860732316558438923169346344556506657451360279189780823349751027913577911883767799955824715178125869653772000573687293874345095778834436098542134955121775600498675684134387910877530393809891069086410532702811877690505396879942257160966949730340765261416948585270305266936758020248073417864885591125324025275899125654741830873866041099384255622471831571034545484328047778992047889937382364921886184074150693818211946106791994910550345364513211788196642349927072629310025719238991363193108189323573176280217206672471933809543993220894551838179012813986977391421465147241617266076044284903735422695014728576971642500963376061980040483134840144402833779612527323011352033939277781316501815005059654900184255168100786049441783720249432096648394935303996151910795483375539008315446988909216023042255508328417375474449067084736627826079904416686393864531748380821825452358795155814340846046992681031374236235969513341429170622468403753193513237213511444400998166768958803900798941855668552395304013992835970975304444085061484677214826874357978524819927629906887640818585801299092795308966795167026883956601985546642263794430431628047657809875319117512808767092112428831922634880319712596960856090607977454073862600174629295620294189280416339221390356893148226475908311983046277841910842957128999151549896930540419683723298139394262312321699812171007765304857698018283783449809276063545528564132673092700104786436142234095010726493155744843051214172715369626264752404796965577302975384507087104034796650220848263441899091386046760947447423730802519125323126203166339379251046066743792363999496713246128926773771091232635085314906229507749719854002836728557376546938248588101494536882432386794299792240846675541717729670141934569359899094491975108274371227051585025661511364336962428224724790090399232569405259406786662614700849401104623150547089117650497330078683480494183410691396215325735221260749918588173168312258686780865123773849475581480071246803189226124836989281886714915959822546587529846415926975588443843625984976958269408412524209295865767978250578332383223811826494624206967941319535581129770231286901434228495591006549827062167427368807978761423940222058127038542688596076991128330167868054257045254195298972706474304647288517763705817689651827705168929844957247599524102073979403942831454270748865381511643507358973299324368933865847948340186164327005296786178451141989615189068538481873846729798371223992895743605924205348719746218872656372554266594336142254227624510221959125914246049672815403482733314048220032565620104489821840523867288201506554485831098658002843146064671574032169087635970936932478304037218533099116000689345349862185938337552291710144792245985244773635573264252386447506075723621298079278539557432322523436401614629053742437896222702300345133501143528232153867258813089585906142221011125825663063214339987659019071211507690576874630119180287552706568251520148476212839606684786709037864207490834206573453934528164436296504443977351998813823536711291387801453719020792594801162514259603540557089827420094810837127950251240912189380847710308259939976525985551791633940222063114675106760038675827566289870853276234343672131060392330213482769662048024688081128012790913301858919169528495534971763887164685392207466785237411706216206032213211250624134998880993442737001964828794474025466789664553572430737824744694160287464061219030689404843085177895646517100032030871676342807524916337236702521990387310726593001430182247658650489715304904088596799746338680159215426544862336732292201983962633791537259947938049785132970687747219136706566875663245931763470424653843382442233061241268263639626306572161266805068783248916111183975944278733956131767486337993579515216064813829913289036608040143121920473543702660435109373649560427287065534102822994716941606017718955666725896933371270546144140650689109017213988511479906632078003827175896220325484957793257392955359977095232298850045001665632867339844546724530649552030746764077015353108280865760304999591479308402246672323517948752620531231414744338231852123858240210664148573370368223255220724583354365325394842310509330896359124546078836471388920956883640571559708634049584336491463039598620341553460663034178893662939212475617857693341204532857618215787731964034823639840979272658297905355813494897083183007750128362667421575025186197303320105222356051750646469480059402211204206449365925293888412388709313562151055566073259478170769553036743549230063027057381651336085762098171567758596474057778498557468315483841417482998456162468555453049294365475743166544198005377665262246607709715007659968245312425755963195724850362242682292088177350260328800973018753546269397519098853737453163044538023038856057517865165525251728251630203933984373598823159674303264297402972413130395298945751063125289062769398159648167183582770605857189810897227620699050664542168033754410166909443315583612679253727502713946800196011682982016736077839960118935874770011565893162217768592891768422880639302553921891194492015340167841467411591545398765131050865923760938165529328915304001780029528347962077544819368580480210608398650754654419588786027344978964156646664350214668614210748514899793652034248910806559107635163352510896699799996945122466791084661075405910309619951784618317362098883628357461471333837085010219334028332173700204131912170559257899931658693498442089272731629709643158530476110073275890701387677044304362852078403271560870710562606544141633901453880766761698139603469669971326265056156875204605386511929328953977485101723576822678940760502747024634740944849740150910586537000743713340745118843273751588922158316059517520177909875738081578157935855541523266933085102927083630464188789676983639342023606031491957876765529952638882956982219098270594271878911916219800637778457050956258270399043508367723018238417970225521850516115326813121023719369082439157237608344931098382896884321358422204248564994803779166963631493102003041464648691144874106395007103598787108117501220320348129684078286448080098628251279054607940987271482051729372225605643269850211683810879326518349295273519597329878914535303158874203908629380525894220485785402460814280488913991219803016236610549687423513497964308352603962459004745955424332475779824010579999119229697649839453390375545058910855145430294454670562501488477810002209846942764520271943068280806198644147747459934900296752904878586056666772932021367578437580479591987145290919333937001831395960381320886468729492958227292424102418391633898488733296100810446658745447979777169208627074867720658693444626100094225065713796821055848669506060267095314439145691019159969859010836996946870582263751485737565004321827396799645239024460149815511007187355267506069889649572760327940739450512532229468192388545057314225903391635113303819472841842880045788964294932058169126263518001969671342980927900175450302635953395560515665017817646683898501166976035441116536280068238366379279456987290245243685346188205809794539787619609599832449124880044987278413701752197401396005668823489938670764412400493362370738265009299553925215939674134026693323707669208866928316557194400943693244773048395681380707727510491384586971197299420378956652800775374742182984672881144637232553450282868172796582617874456547855710553067249909480383120841745520650989162317952774673718322255214829763609195377771984567734833882306199864767434535444989125081233199209964931994500581440281780192128140647464780974795639868320781262507796419051731229760992833706050414824039873181339001737201420675053079316850321746128618083560238433229254898577430194023764784513796627537804051366686607886901166289665433384558921370705357559742677840728153042093544262504380375765890957075235460467111636107860852113010195699272360061564199549138497575184018074181931884816612193937185723029021498407629427983338942979675696908481553115025807660246474148002654373570950058775563682872337811675847836292668952848099579229904974235319027094739273721832137733790033871315299318359439538714287618024934702498022093990357629912889935462413483424091193135659489046688424864947005553001130239535187263453281255801045734822155739923816447244933248853371665488609456140170865039342383890519578324935529913150426877534785313150387937653913909239714167190566229614006368064062382773153621519232819928543141731555889483991981479573186249850325805395090785554524267347017335503137281506505604622865300620437411493452808528109991737274304722473924356872759299261295378682871739120489909884008562196886204814063975888845110853233261987826017400610470244023540317500577951886108691541237285761162027624130055884644410275355273248900821022975354346691579123203898144929772446805218491609772038341289630762170280481803471394656425302711453024911939912334417575799420633155349068690167228394925541920169509239615305817652983123166216326346429032997596098009571721855013100370365474267114931566291048435441852532758065739842125439399866232506101003851764113764291990999028281589377455736515274811735284086361968108268445481085710189457601458147792408760508903431552330358948216078586550526790692847550114127277600516865070865716964594063801395164357230168585211184387604195142680386866343430886704327552618487209637213600886562035969111002223998253713084709525128996760553170139469937916116189413736202498304472378274783014563227256375799563369233727717408473931789431517324297153394484187895363683713466690758645405077675296668219196028689821776339293656192058042285086721858599377265490624349357736916877925737868029236904223531426707889266635537961296170741604269591313213095763189287288905847336817451928572983213067715626802687665323854984664175725774654390923035199003534723024417982743373762969238079263483305193135139344298801482138586528903108972278434761357882380590730071872772882310565700921100288809497206033700645890337327296869869906417572073748194083216338034561724784003524739898733862556931274526193779124018640860252980126141168753886132948361966426952573326795758790100081168962988217841343059969958387474939893747536319907840386215319891709904662695286419816472441579598133633119349081514634059484347273777732083233556201973422003466536423231540777475061638950510675228606585567463321422431166711320326965110755766795127128581442997281208928232468154585255236793659475593811177007049768698504810023230341852502568648771347529992574912008950866810334374347747425296030683556485790800076475539640384514581129022307896392865773714024669391601137598943433348802233564213980385971745949000689816149990944961886148614725395140094189588850181018483945375540343537798479397476497306522136655516201211437327299938810386044771722330183176014071189374136560838300443821706883862184111474236325918161938504704261063457347235187872194416531619564737199870210753814119854082035433075589731131785571280663113324230411526529888019532377062627810750776532630913053768013064818086273311811496669559757065431702615392593014048957805832271187343197792603204283719564761044430414447599090645675160652530206850806343892906393521982424006951391620266199045266883461248040883875376272626481941690858898318771175110202145776853113009016408222896437285410738032936736200767592242978851839708852404692820551392542381557414070158401732180483612467171806043682539855731547609735300978283972794631940743405767425804201556425075357823196931783730240818470370249943199393569293024548327898039601472331038064599975821909223581698884950742393718056831634850215168532192057618164264256708707683136506485887411887810449481028900613085577057579190985103579498814161025315164730750273465167651513462595211435449190707906509224373511389040728452482286604312163894125842639565909810912903793421690245843716445625309719864461424723234936617852209244608151761519308203340155896917209311866784133608708898479474086415601746004356694813750624993746810808330184671268500100958666185576336650781595722923735397854433264776510668081588442531823572824436043644785042033244994692509303427867057873606392927284195699168719015027396499481183766804234550484094917931524093651564879918543137367174654082429851439459727950453537995129320227584610602612689281230017289780670905605764918328648847402142017503094624449792762062462959099222933002040651281590759975588367597327552804235185099084598419631088995507371250836066708125280230172691641188734366937992588186298403117286815763293704937735751474743107642698161593743920376089870980380151954612593323788830671791770044445902402209986605001322170388578499779498883881049514630484153708261495104716341945482325878733259415876070870404041923066379028539410738357534859871122573848638390957617401839353999728640537797278784216319480602374102039576872432658626290876907917011567032922708936216297396594137240007855381433872308972033582985827956524454970395624797526930919639905135104987479454131543890304311926636041483803355735240071853044959461297736231419782555309017671360004427507005304519661660525170305995980847092971755106084718375282365164364427168115635855364591377582615885603022573542445624135436091807086921152376974937616268142675995988172237247398686747315320189846979908307508844029914944838832306571536372290694649279102923633909658153261863139820963034001774448356460904100730075756840497439624519777912557267160683018010097946235394747443888199597251214141022844670429978323347770513170310389222090795691407618284185379989929157946725239087736725095958083980683466241423801598513840195104590548906406659136909012030157730206203882913441008026634642808078819955808445745198330932395517610730913247803993140889460926334995895269357108847180793806179749490732157897104249844655250738765192284364494189657285908715188822273555662645905806590834542692319292555982459001073547578075643995116212068673208254592745615800037658700206290758348031073935381344886200791570573648532367272058219158278602122075346469411770450731474093411084504697702166891933745130951686125820969171709919132230689479576628889180141915980211894993398206171245510759045279453977243084766619701442465813265379730417802443417698394306374865268590250194645983659501587466340996188834084700900605047864667062999956383001039934915257121426223520557146110361281199751784033638958591250485861953858509447467033633339410343398669122113308111235943102678011389826821902227347275354527739936149433950030931631805858528306278213551259370044087205172271834367459580677107877398491725307653505040944502951168739475434151984037728039038958966881194116856529956208219579880654103846562042557610947165312288154093959368105095795374119961619330045253024345371301308836635747520851862408284697481464308021763075275681338351711061324327415595175657997142337644998681619582467242345047861201876149366457741467222261007038243738494408177103191067209761762349454891585767160637472660792211199090883955564316917100815610221066115066815070300562090533195955455148868707732174655588706775267267953389571728444500345789505920793481809848689038602862274907720187068228652943743679839748575991686457296725960468945693890977775547901220658198917463426177920437958955565449116848981279715811908953213897217010323787853749516216615876266850627870865374941700328163995254265072482721566648742013658269409173805789331937771183890123106246068257751657116673914347528382338743788625091476820863835825495903780203165941344528044000176874332616726100223607359659146365834451174238602844913187141167676719688226321980405896862923287168703317113065652383670626825415709518497119140826536378366358536161180580808634990666706886360663866867993435364119074852665209991370376803245567861801533396026096723565206769858566603951507920377337909797197827394509522398726218640576586102165380073710596125716006053019751536597820876526061193580070222833828444566130120379390274352822177877824436086307511393946226338884938445828421616735220052881983830700610815295083993114142936869872757591374051596099229571094452629170930240294963620123661981781578336754629554137416659527032956731923930006738965342903534310265743740703642653489709490256995345411040416589017128148247919205041905131144579508655728065739944250806791985192970163300731565490515564522974948260076538052916911653547097238559828593480770460464135032961374541919369658121231274990802056307481042556965142713277095334642484104746616217752665664384484898793056834029747243659418996288166058855224222334814526882744073136090231529447683164274207638813507655281178945582917568320783794615272845747308567357531638220376912644097006456875199538591257457292282886805082901635005563896750656295073991444974371865488428084384400902962246241178994285486526453597157669689686235017020690900958530285318183512372038900100212611579985891130880069667933421098180531298937227472850220197754299319007701614065749425689542879912971077489955721027268158358556378614974954034269509987468599501146620412033323265296612981257428471572071552321689808450584275494677274254727958144185170742707386914553807766733626764015713093286783615524843997118794146857274514712237254456052753515661473779337147015195228273661841650694857975715132811746794334810006143327932537610630930664311851505107047012428633754311503413765066888161307876762521831926859857590616294441660743231556732549331742547448323965925696041532023578590887448511172171225386455585752585742584941923130783001242430587088730043719663469303053475004026868907634345972019067889201261981008074469455063757707098046491996744060171949539511784904552425601932592083169917086864556727744087908815378758489092241788065430622571460730046334161851717960781518164868554963817793131977283697560796372800116554182551055374999097675776204014805856578271909874259502532030306616270399006879049239544053825774501936320480547885981278544970473898374693560433440831033811519291418129928622320893932685105693646077578913056185493162838989166545078767679263855284679461235239024123401609474974495307409634552822194656960380644096733355824635649876539929946870318985831707769969996773053698721581655193952944770229736218989189758131860496115396441589960026712160078050647850979794512590707458583488532206133219313614468540892556119532534764433057106042257100258258604159853316059934139402093766499833800169376226578863411751883512403193020896263703772900250989015779496697413634634496590942694433603050912298440516839783036180941933328619959759334011090218183409988632498784236278393276953831194460620434602625046582388190389821569295031224425088437137044966062481324402010093633915699779092526103010683499227375660664933788306815064533164761129196916810402390833723649282111578918494159423457656071691718957724545011538627352241181882743402805174068019504826675432194291214618637291871663936014516607398000838377136686995819931453432311512681173091029307329600678352559115939014350473266841374583086119642123319535167048157269879048152353055064911856625629062228312390817205380488465691304851352099262681507115005338829804571718071975637041539897204732114697242057465595817271130423697784765321559920498781152528611794388324160779517524515706585850987968534891429260004195043302702228439991602384676487326082921305165078259658467256217602457051036057944029215068250654367041639792533059225532647422687316689253676227636276031923312632778249428901259615054406844736016494010551640660347079248427637891701506290678950304617281084573361602056596429552819353277478546392712418885138421790899785443971846402593907556220838953378008348015853757798737492612983183692252602674875231271641013573964784112311144721724459860899064312148399032350236814815743132978466028936086188495218916481483084419740943407151419820661877538877712375149816026816539202541402336252650667434818085682703018337695360914929350885071228582954525635927693001294467119561287503612710702293338183866889783112839894440269237767817570729871650084865142390385588107684931493135149267314772076954715167143963002947468878695515600357829708289401682268600298968095211209300618485676187301604037376076059200415288480109687995577701682752131067332554521712536898339745272445324048483513210154551801574745015881202610639185001362370818381687574033170365550068047608851065340919403885754695652310241612139933942849166404194838019186143906779075596353676075752033251672409928221223187436327142477904374956623804678339083995208613113055446727991532191462522792220033148193212897351383083059176021866996117880559312360889180170500814102595217334790389680195154809991582497579557011363773535333379749965779527959663746967466636220420775140167963010493164010822129300948243530793206849686987527401263818654012308118146041471820443968470650985882978813478660076332497527237218426388547351099305873153432622710947264194539560175904902070071030244549510110568454898010522745599588225378116210341015654832523274946207631365111178038711645579556854346327478979111337266630569985522838808968746690598537364738233289091429610610929829010975027347190140783023660653825340098785124751988461318405625133841864376916075831286071514235596351023632250436286222226005801815858728659421164008927127011241786720553612583063148780778985972860550857889160251157755215764147492193628828953920656967729434485416127193521147830292474812996642352540730439243999271343829118079115042891996252575673016838612310353721712194690104354432679639049383658296648176806938412796903786165113740368344201276341635537956776445716599114056963218115986715413583971770735253885825383026097402879510334433211638695668437266599848459012652926118752862909473199860135257726187044857878720465718946987651809266541715721843985959369306552942871539265073602263819900022928183289753790851503862942308486128641375678981239208545418703924269454368819565414604896604298218429349759365861177767241143131463202948104459322331475745808587241867686546358976550390276851421240569876383755702448465862532773196253890770344179991595172712363033489959928067557102134953471137419469395194384383626923879831755614565099026698158736681534914887516786510500828393354193087135522398587550681967923966462225344911634084957116045887881032504332128464815694692734580357291053330454003549816527037646392655287440784813076755412389486837067204197793030894748267893339070317445025886914086963820621777882861049063051775740803668872303291513853076701073129645806038080179222119758037959940409171051402337125028271158454031850394440733782317389299627734010945833464274477435278283782267568670921438095540102425347165404612128809965266162545228527221825880581314724455364427890228122594452547706566191977171253442885458546120197912512380175659303233458279449716596183700849309991354941720358240120898754448190606511374431609134530090867805712303624791294629461368634212425593242841566377606627219478238493251371341426052166124361058889187199798493608120272272404937591143305181187604975449865518477518676511552657705881724065674472128966014138197814934719761664944344749433954565953795821288212420584294647498039163631226572896900463347341190098038923401823000545182112818516922612592853356169574051763410230955789623773335349112159628863367278269360536380612079504625519658450053437330954883171926997322256623080294191280497621120795730588770922675108643250978291280884296656740534619366176128240103652489189707992684806485514471962682193215278917912235771418413803282916577479148512083403331926507301931781496502089546631559169991757887014777112630614095816637863333404832914980773369282104457279853859222886364396793771618626473791288473132137662236727018763458457132389330689575334550658363434805309696142738616932084509849418227945090772181654777723838001986139735419164086337637668275275823547175211953747575817850104796266915926624125339393296648122459835723192308971885747897988795800048471875847332957455762560403816137169230878727484202470902723481467184898745533058172911553370306236737566035145948589972023271279938311490622872879417390249847722813182530683514655297201938012517617735247457381348569462481806021444706131659567087855136122960581676579337751565011340462151488928991755635951293368609651287553151319221061686323613458300738040690777247992566661229220201729061724369298173123446662500787416582600890432329132491811788296271296946430092640095473101578730618142370791649866938369127211867431228389339718057858795373495714575933124048955129319315433697151129310482906458535543870832558861875075418211594086228092797106729072527311966189037542424103459776484406225489404304087459516008474297008342284405977826561688905113248163227594328324860140408260121979965545947435888048660046816850283333508442733627200822196912807928590696329937196500703029249147348874293593417301388154713315397123718167890843394697058431097881478229484766186175924563920483487132521182860652764161257994987530449487233606645958621369643676993104795231818591687928938444063870503513619223876027514928045555753390615424679693860941315357954892487396305818762755944990882267169392334579146430436840556753778208546228014792138726885667607580897827182542326845248059056181561230455403077598507100976030585919314296337776898363105346815627791214027030096198475007808772640609856395647534430790971474112447252903796734152864670283386431079521933892874397078826669277589621759572795481793966883286979618444711745670218138915508548291630702925154413721148328888958944828389023533174161810934438393769372217952498530790809022224730424375688278384840407752232667090628296031769378074170317057816468861322355631288426740098478578445379633439672457100366866643038219461127957971395952855682799316349510276845880874943694327551557044824606971822070106835428569785369338156187326333692886764867448537154301867750743745232923719600706967123805751058310792280671242489301417270631888464346055197941538475838591751866604472446472442639513000915422217611692973713433945666423478398869953322443086946201986902491908962930731929595870375714689697513701522150665488973749969381439367847621868714008110756897425162556177958790631185366094524868586715884665846194159263465529466653335687221918847781614284415955205512322284290598360238412547443203587203446299797250836251168765932122787873549680263849813585349966570325967517355447313681481357527217775953978634912697754446208935311424794510050166229627269482016112168591183121162323901230316023916247325919655472464866800057273962245801609414130280724939170945883936817094367117636902336276790258961522945651512967105510702613543261140131135284446049923155374457938940266739744038629717538660749400299038874025965762804041281443105707654603185927167729837280058375088227065854333907340950072284751647514041025237732476249955419920117149164585955662130867358874674699224745171641771609475246799413881778369828867501135244681488650740457501437931211554362088625414021327262197343004898592794161267338025569704404173757078606806024858621708889512922455639489507298577278882242590716234605417076519647127758295158944819327516696059729479105899292538055048582938270190082808569584942787727795969504584156861806241620002835564755363700951016906145535117382878265269525897262082641536521629475679539286904189919303463156865027138819994277906499713817685205089032385744551242955886410021272511696148506487450532620206756733689588205703561530032260952420156152918245913720667900859589618698911494784224545420107699733556377100495978751488412812255750038337191376209239948259727751359210281246967883507332689891715452008002256704314064824921145322952664148656938141758471146612531205686901628788502420074328456879199383432729210072542495966948653967773180535970009517598251751901475080776555785267807907655585262796458882664220946597396983455565456389260320197142004044428316791376511902772577901322837745916716236681842010406657258394575257194481473638660846555218884438200924702436066197422746393174070865513029053294299750571173224751004528724259394180741227934795581495534989489573585404487538397941450312023152934171726764004942956291497919718936662067255802462304714536953018281024371606127816765402002505636674081212241486139565837068894672009903397461285365381066204951979552422899794370750880681212640906648205445042665416406759144105522320273641599187972296249470399271371464074602089489342642995862090447158824582143292819704127734360723464690937202020679194065692827805754035220549583080495328081236539963004994913384109679186956253888881896491476371263635205061454507204183535937446707465578705419087159481625290301489017677463555328285472449594316842021520299941918343578871414850593778217698995769246028233420320242514523746660447693023418447455314513663312729691357517114157764304317382712635852350857660692827248771484921872131483385208884699163640269447414541558971846979680794315970478985314128021655427520476178735141608821674660264639002925361111003495635995707658526213836093166466622002277441491636249346881677043480706371010863431699657926737570741079036763010060498813905751242611623029307938775555857586863304658797340027242858514731062618220826216881749969184608667821568558017505089292486540640868176700790944856885708321564349854873743933465636820236398218104656329307149770968791218908641139730058659636887032311216897878126872026098311133838201021127858533402887538163384945726370217833606618576636016185140672511413003481875715158219780165888616025754312337358711056190883993098540683775966254437043807485710473682633094013520702341408146287499597279047550412633907431112844301524869426751781603482293054882257007553478742639898385376490995496839638815496795934556859074558090407895101438256464766914530528259924308004117574448096817018797461524421317480146646275941982432771860651179724489771937173022438905426279252879595596295932474461248989195501833670539955654354028770454452177287861168429563598348130214528154666403825476102354222887294635535042005308321355849716466995649729077263403655763944728632861657709191826884784844835907626631654953226699767257432743105716248773010300181632436659334123011461217424565594008399094996749107790611085199988591452175055234546046900965634207662104827712534259630867781857598937797550868139515317488043334014298061777998709513154427117508233404727695802434650863980989166107240852703283303776085670139627313585434589136846540582257243364836716020355386508555227285918277372635429840517536452421186352244419355574297809934964802288257669591448091645847308249541000121780321356584345288815722353913233391267339299234012785655565429672587849659072470107454255701265892130967312336013499737587755475816792501086564160150853329210255640397401795409048804904715388491480202271445875996399611687450285239680443713073728443458038123137133833681610120971696372941552665911938966216238564351867743097997529704319684041189551165985265914871023083495389906317825509875078687856983973210743532432476194460339757058425119874546571484813703026252563628433461108105323107244740642978744281700254131122947165614779169174926619270158716189137672292615294907944880540617489022712117977740985417349709687794797029614152815235790416127087041803434146799373604577327818247402782961122985780982841283806288770797902858598063436829172467990422794326640465711618786488093929547293122893438304621229742006263724228947368248831991620072375610168046999975202024887059658388072410712755052546860099757349713023531212010267851368106109577172247551855245074113933486880606427199694156403986035437778580685089198690848725722291470458904793359170516130913750502438655698191693124444075930335958093469644345099625537566582844517080730206343779993422539484155165134648959229807656571646984882284547647071024778353917315499469616170965561289497817903633634454513468770638745240210724316334072636910873877900739626039429920541155839451787382637372825914287400912943925245971255460499945466295578726853113733245786873163696108024156222684372107568840366034195345003134015739403296993197589261388208373520707578283108201610140271639430803041071204146981247434726801756761761748351916253217644916885368145687787427107712204551590651203353745583179605031735025571396433245171526444027162089224214658723731107010196202157613350077457785633440630973398302509532885139750544631316074308658458597378149630099912291867462259999486205574110095600347390831601944140482644322613610199299368335139921118444992005868957169835309887351188598636036658682329388815051001436405980115499091654025761797855080543922556828985622934286692445575898000325178428321769905039874904241023378576389923105501960469836932521506634153928836064551004735605280767453051018466304065045605777355712956857221007212043450267771215248280777143261687511407785103766563387694138145571820421077838442685886208516219916632668979734736002359300601060457438361279770929863418373920543017365962624990277579583142370454457069409519407806991219447497796603919652729591502289320024035003577373869693831510710989981279857912690310379983611034164606921999556376222539819625633332746321147863998761902479115871269418002005961458235670705179041049836880876516568294066577301702314930051696103796675531684354690153282058416831397042728111971960300461460211716996400081187329812997982613638924789221166459258053499454449471940662064361488930515059022875890677080338599551546603059993318947281991716609349729914932480868818216448953695269101105860045121434059106307915596115341616078313176079726968603884664945603389222984109702025862158783536783369883209920716011452885933450667200316772119714214310711538028908667325350959088934196034055373771911848536385420528672655116188060214368884264348518438867347312966366271117102796794154228010513460418474775678398313686206121102025755207795515775622665640008329252459289176135965277448540318033712445238751932584357310808434204986704355495867975021492845459763000659882887523184767084892562204366129500480038027188361043628495486204474884683775778031095653648098089505100661159889824401605345405079770108248899861621069262499672643382107736661188962738811764795844964537175569994545202131040384341410883868273321805441323832973487734698095230972322431729154078351361223041965210485666817173286374268342063449379770329521010017542826267543255599911124267556653819290305184422778088778352826159948915787346401614069218868913670306156656954883322615543695591057115025641966516178116760779041619063575010716950488895397854173930294554353721538001801275647136739592142972812434728682370214713688512108234494843126051957637160852600080716030781290364084440494631957439120717576603161571217752174705641466888700598364736909264097103364097924547457382578279543287986800023403088145437570966682187301253405667239700807365961962657913825964959572308643252161846106538098940641497503587696267019118479995222727948703517621297548233167940931343289717091476502835449686688293845905644570655308638388762124935064817288108797225354047528311907957257393625360820702034271484439050873424286705426719877289029392486449968774003730259407996960839214576729024231723188760424263136437944167557361024582881969043360384091343071026675987691084310193704275807311674847950051447295919270366178430931778047335122167989877459961807167342967598633755676432294792609152386398548358135633832370300117204326480027476785689384148983613462024660879850569094559104034598351637925540622890545599951334046618880342458548081111014071221436473911159083871343919512158473057538791091857278263485776341264886290453782399110213119770065859531617381938317100016131278632789955665217423762432950103823621617836726418725927582398648381312309503537659330783379696500568957968195148748574115273883171900458569847708945382035585728453750879022167672223006940464172881231856236331598667251242399477999008497193537663294789793891871164246166193153702767476351396584379286746852639625281344912614160330936242498933634715588139071585863645281472330571209987811036353060789117147789303423728826717086405126656016290651132521318786732342532404233101899627350021897946822650315953019677619101356656260698742264352051612419560508337077689554914448726608143630131053439093581761528522794229058955361661311096197830065121975687550728995791986187871960677631799347001731345462347890713088634541598410449464207264973638548973462815147917314736587479588957038914200282125438195874942606503863515958677337637275874609020731172154080882396044926240400620326740600552272514405728991589720839066084851258845294693472015648127679022827346559045300226147328299616587510910097998052523741251584683124481535893216109739449343031418233781941500660495013392689886709653791418002583160376240117969805013513729448060765367904843455288457723824551440516139819345759801433031431994458374437331508945981344128116166819549801769301112501754108196749763666844558017025683909315295878707448046594926199250825707932618029590592027103826555579699156719430976890278738442243264430300442793347951290227611108744365968194260520316594307970421427235225193757223641840322906322306320568687809958458486763871508929428744314961065768030857206610959054996953717737162216127690944788927143775771197944637626115280000159419861577666570840669656089890353676078559423181593309837372876044199318438589093731862318908660515368075369066045656222604493381701549800724644859560262711002847362519841028656575565051712496068197497943708157802467458210290972062535641078982464816675597779180090949904410998698401716920383559174737794534579878054732799163580735027797478573540802375679759352710872245325657454785076080888564801489341181621268804109735665993615662246702811383227375042769237868644980026597064081238003327405461075041966108327859456879454147209429836145721010865448065887652001513023934954570032834320489316394368439524134218174851916482576893171905981943987690317116896127761024944837384148309509156383487540176658037449709339267158843014597168384151422060831969483863486639644520686441544229870811151226040742996489718616208268329859223806656839787431413688739989296690553316566620157910325749644539941101154032286350796412355447847810995103811584664701745484902253634561425338005385436075849858442519179102940922576357996145364167845089960801390241906583172287013335402468094494322526684374036923170772523756728068835328638760927544055894598227850620906722718452285848589069079770754833270093145916467938830389741954584922800636948781507342847807408764885510237103022449063740226320554254430117846683173074814638985935638301202233662535917111672150461340385888849522709207310682292524849818920490151935660146779059880142343393087562861370792364852703425829641841668879305834186990809235021473901997603208412084533710191851207689102096722655415898960982136305516757839457026865466409387423550727378082972933142011835569292192155923134135767110294242482526312339755538154992589702440395889271584821024081121741239054769035496370130841456557250857744023709381476720676370967612885889944793017423229365110377696126555759676592392531671282884302333836337877297012971739112195142233922568093542481975843288829313795686123682532252208417977418089157284627261430024236651619457325035697366110953027192691081869107900099885322533139672883314131174412526558264530106689156218756761936790239139812997552736641173381983840380594113747020571510204524721212614432321655929808394806971038729441671678646947348902996754209982851102514506417129564291389349006176405717517513033858204801929081848456027726660215927087476490586387621391251169147292873070738928104572664202279400851005517914258216258148790996345053079808084895906999927674707965566411523771025959459506513949382477577912379520382984944928119423814480727879569741203860915508333701369664924342085528589383900014769723497870449383029888370662652122063592407144912348454947955555949090596561424143450483720969536817896597451646031898549675803483147238044869905170051738187490318615144574712421755327914503948362398987952461582806352785331948979081763814459286283486335581041942890058124189946900418767367938603705834342025461429897605070086875083825461981863729997631140746013059986293564827596499187976965349342479994981259596335604773122716179389981862922965216210865947838610230443326975796019530913222311489014677839177833463678506150300272666987059662087489734723254627372447981164755002515510000421063765207740909343066473251746120599570243199821088595672241576417591759145094399728270170001805412088304793739101761216572548178835633977026019919250626349419765613097875504048917244627359861217021958945798879988169556478424539730748402000490912970676554861245136566248419091931916679203140607378719989003569084103658865485717647734629715291126133832671518557208235407568256037737285132417343916830856686081996163789043834703064839846771617716739042994150447468102185640233985082524866548975445447791992813590376068729473410496738967317617750793935138236766313102031158984727360706514879882652819162273539702157895804810113599195530660095475939321802531012284143334444860431828382488531898338224516322425819306031595212545953761891979343484294571634095514914722745639293853929776917108118550620907029233095819891687992502954983807357666871807003576524407057165247664852555880180182603092053575542357623785874359284615545023622121862735285606473794538658776930730712963443035606069188534707376965588203240033132358571367729561670615469212909340697753798101612664654081279141980169042869872407481984923131676542493053489306536201461859551334917872659369104308042288646742758963022942012155475713863477896865292134906445033691858255644064793304523759862548054934726335895901540805039436085895987900818753014276153614399562917728656518562617138466635899558567402340574723681818652832540739586664198396516113590827751187265277308703470221856908383170423089932972050960351655448772011440876660083688529917800670951134858584475777583717825070407135024792319526069878277123311574008822995134054577861942660383876103507183072615178947342617691630004479438774418302532953789165037442772838825659355369611564552030783266416366395826846199050471358448122521245756202497671981016315323996423109883958115172728525967756561837095391947258168634567030971532335980285592294016171141325057240899264744018555533446520697958469240638692726164590311887229574631227229728659876638222695526627839096604429852339952141194754160724397902164604222946712523722972915099243469250944968835452718312244213905769333594146045145913483378525797103599181879886605188192105005410697359878245537439813128413457972639320334884574892830130289497180365222662392714969670224928111584514484768020481714294865017433410142411866294894152549756105641520115767538663004685756797978573047383503648439974723516121000403619822438505834582311040741105463406329312695700286124808679646989989780678466109062104699006613842452143536365755305493747615310618001256792295264426073551098941423035761336508895585965872004757410912105527823946373656912621144060247869206334965394401243538576979164900846133233111420041527392750979895153356006949037911386682104555010698641176042407195717330814969130100559906940447725469547578563525911002017405202642481502941984509576735780074021893899577103083954546676161849834147376372451354796782764255658379253313090339388470971811391884698228701740895689953303180651403095216590123861999857851599871222150139380787460984034649230044000943096721609961605664889249677036890777094834507673791556371780801582301430040105878713729503525407216776799193338648092350811829618726389227597310723132710903240047379457930730397876127726316106104506012542318272463085151858187793855912859310406768524148756403931751263973950627681192439378021250440927596634572045552147443878292724486778032204990876842491760261501224563261197678133971608925694713208689526336692928816561434925782711758403546239519326910831067457048068730710285012244326631504214353599273077414265187601561875650285051403896150935568069898058245217966293784366012146317309192811417652941288063338824987304806872987822019499814512124174971513561374306419214040406330528250331551605301885383470037096474403916764480692888077664094772593485281197068369105039674688176396449728927013810336384917999574696895310205727856755863975811827737143716820890214835924012381786113956915548222672403194462939196089179150277875606058103988940872421310272497026730520278239479997088492479059751556654491998918917187244284348957280589427299766857574349949872565120027204520903165662977395060342270129535370538900503967283955223482360717130982698280854852709667642535853287848659383123000513468805144225313866438500148513224892605196750511253656586295964642575466248419260599304809153948605559160858303282469339165791670663157805531293082533171812037175045586830263186843710246409247641595647316330826831362195155663345335923690743231498011636509876007675939771409534526715738863458066730420978963674452284597291075505518444384285696146919358244249590506646654656090623589257560073191822040214449537382618179439262620950119410573007888597320693367051722772185001676750632011089915094886297458295847520101601749644430859255557004993760737601392720803566923971745658151633636804789812114579899131961490764621027705590604148481483610968563083459284754639142009537124859511956160114018743240489007109494574441176431635461983633594984257772157390513583846123817602618703398246890160759677638275627989394967922637829671161715881190577770854548663537416758918001102780152797605562195635992651238516872031486459922667258896042691606648038388003703763643528299906435874127076050486525458637795289742604371389372480939102179717683156408482808949481759548266061532070243095029227898692840307157449662078757180320009335012208415256811698796565325354773549246894002482611802556437042089782319901796851087205124003697944550693592860864440779576052425827163977900806055475504712445094020839606559138266900354711994752201020335012669022249306759534797210371628212004979090690046431578250947657095730400388766092805219057572102028567765018519387285370869524904437091333382069738747963850748755809381191539024453687494167423922352515985099640796616684715306089703460637057192655592734234167616957649966965314252995494768328959912398500430889297218877001553222127662502238640758862903390579254550229123066655772232586435771951279491365132162116877475246456361309767477964784155047650558595984373812720279947831657745412514155697750092271307713768577461146000646468374244970241861757298359174735306454377820703407098710709203096293604081216939153702003696904772418877381926220033788539782126902375998020976587663511684634705707995399117738155980021537615631053271867928617796636727812906891704417122240287592061781850339533864561778142808596438953994864776943229900437139055170255740727395685812438658434171010161634595571922688435511665523770368289127761042898658091675795918631580336306335076139124025300596296277958095193656290350401285993368646500818488228245172005573358912766031755726798867134412860766984619901264452044471849247050225202109385901712220952664118186980505005754961306680141699367782390291494157703959550303120809963728906855686999484057345749837920291340652941044136124405639564331958152004841756282410553419580641650791444511868072211571098662611622236440449730770574370836783196359000806987318155630246455407299063278775170154260521384063207594679970930062114301795484180639358301358792761619218278377909409684286386290852656611440951012794957447260700903728260360914875269070426901494771049564209370449747208850241396905215812319953618231556411887351698442465345693871346395456472741532479828107884095542412641146382967239946771879399293763545647211991956614595953435527456502900944104984208173322850173492611894539362437449249277896175057167754854671609987016802949822629628290660825248459836842570686520150422091869652487135943183189280862625243656215102060155455285297377395378460527354433976354318572359686856771958726146281100536725366478721561798441007598235247832095407458322234009892040824285854979192319752029048307635808749099330105603422077106664402364556169174473724549308108002691987906501714378269537409133470388738095163059229482236787077305374383534731765210462742775088916273645579554991085136960829479503170580700301386985243045262049142218161301648497121546999458987529609936083483780975125212604140506039209916004275195579035118520558067755877712704043111140461661666815444180599913775427288569798127365673528918946645228057595323013678965232105687735966095690869705518996832016773360316977388123097535767504409063025599516056096023471569300519988679059875614740412255327573615153403447718804296925145181792875283690290103781167993103137926247743884474787993686983311785684962454374589099572091594417573663040118435834488159090373884988856102195267825189773905425180213205246573634490122585180683401424007080656937948389064983241459715005160030363860145244094237408669671515034700025901928051214542556507932176258531140047194129518696396857464257528115075733969289026233597949446826746815401722227515734845330892031385195391963161846728727574846251912050117909583103269376993326292325344800394919229542020032399381124257607340232967001701217520113988486511224567883589266942572304372531150275961376022019196737743728188311212539708844738502352128110146150579107586464852230712185420407534346709095197059644009726857765309446358277110045390863475235924159685912634973936391791856146299267764395236763978882327626956691701321393321476968823950590839519982918372151008163424991801624866031879237792590816013630706188157878582829300239747500402325239902766411652756217301265889502499798584216881477362466478187750413517150004931969689969088333934783634728358118027099001987119565669459031708281615884874869576528205474668886465831524567959471887758196879370496510629159298453217312624344033354170653893122884929024196126576373821056704860041800575928953860413569593068223502774702407736248968240066399854223619448205550264090618639963544863572143073546919560305419255094144772380716389151089563140519700906561707804900184515143584008422062466403157172322666536245450733003821692358896522878963925102115917928442188730291261730367878297427885251902884757377401067770083160909477154517573118129204452312038902964199973730198109832761021568249984013387905124010929524239392703728677367185713556115129309749236042689637825531572560317011693156347344741794361455235570785815571235426740451638833208452940727173583021016212816190794853226321431113017173680088483567821335989704100522482412366512356643868929747791761129473919366100187094535341864258172893515810822252067409836546671312312390945476991398482006332172833199728968863274651614752322887589290391480540069593536829049248066742008221767025404313952702967040973994228607646245200240622381634298408882352642922746914899086522618035717463543370191421964103949278132878781577593989091420604700886148559419130913067332000800490831653779059543651076194455403637517505474233536872843632065535635339714750780657013128091237065025295101503310684147170660500070097122396161301416539796333344406034546309937833310065383500974640370148019697082660128279806715685512939239756873704047254720281875406468088481974486176048821981727179239694008722661101429125134323268516057645195089809456214346559177391848272240064197029986047763756319055934243805568047946448655678800962548393122619326618231784413189421092069772131305175668792889502189672162804897138007468782164902237969443487453965320821691792389798136014189662298378061048157746493219914246256899816594230914739286443508342786352208130549093166150506509009732740158625010907522132415213676736507873295541944371498816630657921731030125809973921641722464632328865088491337075764977389092529825470659432543318588059490244815223644358155674543179235291062291767275039640239800932485955231247067253685993815639843415718352427936219629867858545508280793753956433190759621917951359053103785522003142398580462778010260401885438459035465357787898831917725631867415842754177735901521448151697044133057060083630724051863739676516258027972311330193987265306935973015387349504500351683333859115412325119539340804372896675117320800402295536864851704993751989424499715626832103920168279329103829239344628018989356320007578745345718081273579550574524792516455336770469282723698143212756411439030512930100189636730330553535329850289370377559879713190814084733692780014517331564173562877035535310758311062816446058285584652894102172366263412547130070172461483893572100165774174112585827710400886145824694061194803889542047159193212048039668039293114787587307580263208559474332601226980168941713722599617740905873084410398731794580415493798454018309911248810487785624847837879011013211776058502624812167094412545221833828946896109130181932213749723376485055491725578213739427901017238080814542431352849555617915428457540610099921169535808563360280812739487507632215145192061177770591387099408157100505575990743583778590270867998629781032831594584296019712294701727749707414824178976471794507324128971921996787430631606928117981535912478864878733623859787736472863230682444431503997761136712447618670238465844446068284343403139234357095143724350823756275777735508913913590296184329982609680993604629699752403860977545458153778369035107790685792259443434849116861219080740517866678522306552945316297881416696300337402240725399167242648147290781301775036803861006943600971410584633281938538704755023480898007841508512107511443906881372889252855962553251774280055213019982100279212392073078563791405535985012762494820294152898656075093426101279983154303513241751562648942289175778690088609083366061219618221372158212520087900900168365507001712811481516384994779439378880477870864721261088120852716873418302238366464867526027476236863957652427645184696168945097903276184000758983415914453816862586687104603971344137012584707702799676996010790488274165584232433457603832856492079928192315525727496619771155313937937048902244319321184833701254772437155560453147903672623155084147196265286777308753194493907350911275764632112809381313704729125415860054285362778706974059416533713899045984016566996329472898392028740470583334930420269224242014303256851553904768783881637196255440988841976243333677155609615232127543500500237707347256221093061018946087158810144932970183010563933484506513129155016494333331145027367667952961532135217096331519446200552771807897585756490153522164828292747754812330423832207130865933270058298801861126773871642747540879164378642950015764943384008274779599128821286859392553699408878281227197017416367384237592589769305197461288727878197249023085351481005035155062872306644957343529825607385502571556894168557656278172193075426770045543573901622047409183319354573281796276802181634998958539240014599279264221470029135807211043218834711222877450979760583276895911540899250368139552795282027251575656900752733102555042272406073398560133870071762514923468828256955417564358800540853306507446523758246135894296384920477021536555717907667352076132619692248097052138958905521570131461966265999600239310697706510379990119553845708302875924451699603473591689904930052478228987466705978856817177176759762780854191843066267618554109269005812324167920671630905186459935735516716627195014008070895406701675817822499043694843400027285120210863275785160517642326457381624045520824703526415112724565235340877362775446041288203616305651990569103811796937020690485289260537091494461852052708639381252684476478674747608257384344706749547598396161238224591216707526477801480890513564471161199523338777775715290969578778929139492274266442306619284347871935678024667956813835518987233870178798532255081353795655403268239187312294130600427077273927152498618394836418373021841412348694685230932644823717211793601594684652588906078514973485359995917345442302449279971997575972526690975968520074285065536945717062240979336178508932295596380545940952966993953438355688184737420388109724251320642845845702556846010702928872118223744286164728138584799450947278517559056225680310227687430591137784916774646148643296619588842015018326889311699657389230551570055743325935370845230946524004854265386738904228420943181327326476920843182980389144693116669683048443089957997564927925036219012387378625880158203045371665590630013274919820719363782057507298629664284925054575327288444283392147830243716555371863438978357314370024946206748968762512056005706859139949863968158945464768638002641778757227066231171849037366847289487740761488062934406966202315108825560554156699122892668488243532203659757470541471940025796272576189322076741913574847779563112835605025811055939247848676701681921822568905525354211140637483057310040204181739004758921384959283723144260839000211115363120596369187116132746758155011959328145300797484736118081581041997162162378235210334576130865766134180449705442441097312956779833907446842423355021743836690573935866901465818418771834507487254795586427876864292540984966818884014046343191247078345902714944346544833199277839854247485750686910690654822335600716631437721800955890674572272843098115480546389623821521889547893086114680417728426341969037085039223143850041044096422386029228899862627414013623131973471666608950043760559063641621305837312360054160143729837023124154049724083088843670418388047742709790660601844120901034315490919179336582129413691345535725363045198290727288485301929574059501090576300679650857068411282015552374222615662630632238302702633129796115584685337023997962956735207261020753635921412106803505124151772201508810044048764375441182777356079757522720788196869045680424173712124573310451076054782452684752809102943994943762399103045240706665857835586471957175118600603655898917583431590254772289088300905756042214911119203228172454751233277227126429472958139474910831005746419439147643433128714149315808252272685640357304132252533810337096113815215843452848087688988804701054740280019940272614974602471999955800767154096662976625675898231712353336551368771055169368779827553191003115060577014423202716005759523904119970125753693097891921352479057367533107843866915994045124455692502265402107705253948525578686304015534474959975121878642108716087268971576546013549277056845084394083890427997660026217183172214715027368429162155894850677219584000394040172477995743563731001260375592633122920757490710000940077949613707915410880420906840600115574208869308503876701598172688152640558870986978702683702908883462054094437406231369063259112166828514360354267649464186936875743284978226294551609678670736748558157944934151191730979263853769951218028680831777531984100294966557272911251539269510910530396392026064545429157668186447988261479934646603887097111044395821561276525736907924890772425959350041305796866964267293289541881547685808815155442793504385925577963911295362492008166263823574359434096807640630878915425551686790001821346947438557092342171590594574758589643353188317885515651853292007922093964727497354408436260407806752125822605367869757334100572833222389049497575043062797473733548611166311012068545097214302858222016093084512924768158779628916806486636937322662814596598496571009994953511671427155646997399313858527153081207516198964230590056944432883914855114364983810070323569266670895540079010264546375304027296912474828103677981129886550398267318407373454449679970735705218478041704229827055128430131483595863776766670920790093145094947665254476267610967230641147385985658501988864778647616978621454612248284928843902445210937290995343769878158793592715991595050391101127113445443385255189170271156626149782009513511934190795224933798734694530779552727449461208312047671985621148764430236692259141924105013892623572993249275485076373038585079704945093303701437168042909275090411667838784761813784043389538448807149186508309617013060160361335377829929686737972947836410363218100519104064566057381371622879078466016974957458712354318556286929619728072751211101894484270595741966196442463052390637691585844510260001143027367357818971518720619749847793927381405860971668712333976355929498719287567383168825102236031392289603432645651528074294076379521899037281122333516465291995950925317521732358934477676801080119883086348584041163709243105185677033444321605052360419037200042341872249870702404007498452125281815316661722191617983746572693932720227040106802587911750512698151156457774236134754764735862602843432316450247394863766339372298299668199741167297721483333261967210838911182196411197435632649727628324912982997879002733448243945474869791928228324675933783460788477957321523902557003791502920613047369053311613180327863729064089444210584714226051796434426123202922732942173134033936771221723420724576212295450893801310476111623989209754559760895098320437968057912957986872131737074763322452697320500708093062573966126592786564403503572223575129156405876041038393671716749421539269115116676425363874156033976833877251842134049634675089101814700410573035787116262219227359032668794404251522417760258069763150848683899666049511034032938830751858131299140009565432925902621631099889615200762834040295706287162436903398586090602437339069640260601120387373686950512920862169083302731817297133460046093798950859836885561339381367725142437660349145725881686466694380417164665083180790374780568101297341811721247679072384312649421003357534869495208942857187923067856012153076026282914984081073784937085193642903334425808000144986157836551807611158397469297411720793561352672569367279935147074634048813344279969021947072609215608543978511136096854415627270040510790188688586705302233719223127084221787954567208670399185800785950790638780015173658929237112031953388315401169718844870087176949005892078789498824535165520131396611365564333552639432316695725933439641375739822496474177742945303982595818027321714761997681712454855583045790968938106820454950893605724984853148196347822920391653012357126377371223685197929505484946925762821320242050192277586578448654041113123044566476818239166412958504423833553943948270052468316369258469951984061178679795013143978582850993462721241131741071310987201243737725525655401686958423355438578275157924909297737620511383440069549067859526376398888828725852873654772863800868493232936881913369374647464245483566579714096882167196800124642664081436458660883249071543478207981396070690175020074629985559039358643850798132407003079643188761491469369102442350802848858932854213508209927898244748715647295179863152020125064320211316257128093440434602453164036046451428710377701830851455264465507137551676874490692176018033488562469731121686185275321086249730423501602636774621756499222249641581709739364732961949982314215943585054556265141834887605866402404123685768774598307597261690425194430613079673110626332995646476204728287407873983666538355668802723927278384724585762811170021720507892059950941901137517580800287005101330774740931225808622057233694103875875283674132881747163301473072672187711796295574743205756138946341445343762588107997242155489214811964785255632319252112415137823756511914722680807578075610761077764910746061220496438282978327349447183013925124400863649917555368411960856300002051718077261757243445156765917619890181155019368976204346216275174403253537897195309041874834723924693469955730763221082753391574258863152283499517628194884078587070573612757014652572641679611080650765166675992539511555709245032917607357318925864132654213452770187891778474845690460460993444442470902992515548918015535999225431333622665387109113740018052563633666825414813075904653566780539027623106491495092842908484146429753652745477093246567444121382619136781513513193007914723725562895880832911580646101711079890164730752902312010519824559078015467457602813638982009163821619352139885426767833951900967003193633989665027872735163664668229145669578340709218101763989090961442886009153297010293834208771177684139685068667878188841820315673712433065238487739818217038607940927886616136600347469679495830370754956114743942462680355508947742746053859998953138726641414650794371775934458838291987871370350928711148974897666146478373623986864994371954504944142192691660691958306375453605371035267311184668633308751460517612547231125389191585235211984507310762220859741152675852738730593931166587264469085342232111542163007860310640949832296976988212935960474520762151314907424593959254862152416944649336366549906047555992347545172940390758898016007721588007205869464500796180797222808082931358463823653961038394519536869076027254311553664618995903715713771003951288886231375536386488418341811661941885500001379921753352737465327754066124862910103484925411745529819809848421422862198275700952200648661277933658590258912267083976043481173176940665147616839165571457688262566876081314968360797028426601530802713121421269968377698582049140394045404395027956322934941195110776783129856349637424668327033220216646349412997827013917978731240393505069828040257840055627393037333742794903729684183185984448544930791810985557889514366673471149560646163184562139571387003849296813666466417193333938702325123403087004695414204019236207239380246592562516324089496119610260037693149588386906745673606716132909240916162671654772694195646719726660886107495457011670358122049975756319700632453082836310546550726335265651176147047099672966166916101183251701312270622574305257360120227083093956686319447052071954560407352905738973412987749094196145422434354045333983151062454783396554707038905456996685589771836842047301348047443391079722796999864028888503044200507940651033581388342083229282223718677785665066368727974570616733634952144462834178912112064189500748332217278613686771983309392915504880041218613681644882650277411757677264359706985004028213924463421509906608953274400870295294905250577009697599349098937997142342088470207297362758853238928465584025241330673362319829129728769357875652424487606142799942748238271961817200446721716022705443038578132446304625691953451319175551090065593361365443171633827756506396087365488495362991956157334145319123100336942890185747831916926613646935784578619101838106128697634889134759602796282202157388193497444439127295961228439390644852364539905985483640838195422835525391216846920820042181971110869471382560610241095400854661922014140737557872156704056122766757237479729562956282005222857300006536365154225795969855830340225463261109834132995871802781806059785918094278698202104462362337015194646541588162948665978792896211498631711101319562295058391640781302207330049786549890007732062935290500091274017163524561530028847600269049121139089592854905407089385925278096645548384213490353963139649682120942752594610686182189695621729151986219880929905248994730297198228715217499319722694416114615547758136266665149268960799445168112410103630282939174671156597146422990962871774209781280278548205013996940383408569392532410077098744702422802697087248424567123659908640011405750733912377865671674760384193763331377329731562614280015404863543738689767168092291629883666021297266480471421825534467407637562718224622550535818224478454317381396384815029117802595704793448571901031588383687139170580784382826067304480662286298355898818309896695089999230390054153736391026518608377636348615536114192641293558593323233721677579926795669502787420213927723355233546605902470939635708431490548146320377702215471545773504589453298629121522792205958524611791079160263394189955153205607021713017855939558244000810558108566443305484466849659276973975559331217449394765595517932292159383805691369903516293634596336197894974546990450675183737814021564284904976926889062644400371423698410754333932168209923794792825938575279678846080694134372036702156300854159657421084458833557407737219825114120003495743452134672328641127527138535608558179138920177894556364101811270295385348679676658172425404182166078901215736911384795517082707094149644557606272738201885909521580502300042128631414924769957566238950408255494482579508583020687332725445805222267530140524175456789739718660000942885051104662187783079819738189299535713467470612996747603943103611125746366229992719507817658221938683324517752927088024210225083970115514429639825400038453812229437531023387717568737779875933908218465871006928902261583866570471763883805573211285336683112920701237153020405928972270842523824149594511797349270426395017343232933181267172667734627219617186569039600503197526240548083096657390011229944156977000922442315407882842735974706049308670910591943803791604756394233560225954102181130559046350605450053756796322419993009034705250107088669657873114896570860191860741957659910013516384944753204248873124118474847872120992011816400912051163947849582101906902618781213873060613466560803421794444222193250351446801664558898263547490313010303083657499244117518074229777608762444423820774206539802663795530328111697076603267754497989970063129510146588471233385942241344314350310144826044812094090864991135837683891474896249431402883145309796096513166715677552813041166782006994299101242792571992885587244269993670925971319319218321105116954790557856721351813247314213803926277874176921916958516680592219567901354206178509659297709227090362372354554044910798267128273902507991364389495677810110557724873579516690972557955315114779404955081950723113025853271800090805072960786240426269400874216456685941859029890396693476379160007694506778994769801295519272103276146872283843436792558134513430394303159004349432023436294785365047533495173335666174754112925328714229090706077459754363392967524887019363030198115981173784664894631087524007979706165626616390944468263370618089006850651489119763378686170527011150505159116900629329692183753926000434238812977930309737430017165166478570648425835515377664785246014168284810897214073956506619053095523536749709462971531158341696673830012631546780429453006262200787805002604942973009988510573990187936637803422393010612534629854039538226716216456016784987846871830915221823818720951377390628818541754317274367996554669483938899354786437086667858402816179018337478366198523543691828717908157347012472208210919742188534426319345176920310849171874150594367521750530065085743136556115021142928925009497667901070512229799366948544034311916827895936443067347004456023318600916701108921543289078894042972514497182251832779257822567154517696085734080684357389887289155079706726430649696540822039851041850179726426114872799220667066885498215517699955939674516825230735002163866670792744071387797274516318333961725651581933797565127332083338471897145733233070558454122371924277987574044108330903767069707649109507145924817511163743742788024671447657991348866960781285134763845897957029650679720368550207205890443483780912098171537507880401568177252992356361443222554684707405631466520882876397014254507023105223737740170266677909852399531968751586890012076992002390358213918666967254959663618698610607011943787866265074505472207692463072009921787901291221603055886634751403127962160621190651638550647028842001403241606058959559672599697853123947017204564471065150614136901304863255332512841373850834141897181843814431269405774190133282618912135212054557739801948746935284188536391958623089750246677607401369092692092884710405629233605464295503754978084541406859790987838108147040935857232523389183786161584979112377318234144774471151025071187368663777041854980180597927886358063948100043831353149029918750182214906103558585938959863884067189955568620324708418209690562194588386286965923189346379962762998070690552447287354092716786041274546760827155793300846172375635154661629502690262217763439848962167644073163798070331779541660029660279418107778800139780086415318773776174251179292392932847894315740400302879258180001915873813817807276949306825570722157353313944538643496215413385963747228181309198823536945408324442390536673472009427183845816971464720155398580393238630096393513610032113399999460145663655110124366471375559961777317809982055295813948440846638648041149107943594385553755372553291684544717192459413977353549247331666860443186968062180985335621246293277438900514282541803764231879510836814757636288567664966641803094273663356636229758078761119438009649859535672607709324631614393042974680683080781169818339774672901804490702015596159051361896597982446846055831804208886112561984872143128559444632591582307923534871499699388285005160258213637723396788549896029631433635182464782013339178635626428488833959674965313009448417111275914145794506544489012443527265166663606638305208411511922301174456633246269418552670435571335580829968194843269507482240610884700098652840389006236625486629432924163108559299193227151393604567355348247275219752480917957196327277298510944470307082384981872960393540519197102560975262975313249821563927430040829298709624806183966082527943415973482594845273942397095856298754969658349341191362782394311046046731039794323213944370915188442192543117008242732570686203702926029437401022915096268542684844869385388767563270477991278003882055460311098448529885640280861760562831305669539593041614623679712605355052739359315991045310275048938027449891148583688802199881558934391696830580462672355297602487614792067376199005776697160059658171859888928150559495162249637201959764296288606600726594338097056779431341284347084847496877795593436988695375973041758378293586795948495931233452757088688156994252483752200444363791487198873659369785683672916320319188421795971639154085069449653014509890414446090475796665717127899517156677834999592358845979566210585709907718669260780644280377541932551781445195695281623163434295902955281099240484423596382401913690474375509187951004557910547253049431424589233005735486876475472097507623466489109928211314162151682449021263520627620473985733343976532208947496351172342093640177305429991316564974034960012576927388244452793481010850055402052263416789515683894684055264253735012494164603225650562925899861396369097879100831108613682274821512225051745292041874297563063141209278774912848897310877138009136418977577524378009476357561269659326600009149103424059642697404419475464411252892553428332750370211844622951797896758574539395019931219992975815440338252313026135245805944359860300441298626908781395279665059867164047439415043413228861455250477175989034946812190846785068417813179001875695026159638505257149685854623667682098504477362985061380942454531514509698747678428461820261780560059211738859353642326339190419347086242568816063325582229944642786284900790729985853793680578690969256811745718753101438225814742076415711146435993224330934898276851650967913967901352439796568404116728554886043040245632385323527043726197868528305607445589539968135898025172553489771889460281927437122443876868905383935682044526684233042102444184274725371283532496003534349124056388339583009598741784316746014170322554454586841639357656375974083665497945509774724756537727818905317566675691372366278077471506663176338719997926265255179358888971326638365253408169141931922338111355788312594770721884555694609994026053960686572683662378270001333060926790363533791321856413071299321479352636383628680815710995241718246447581316836919772053805965437381846146698482594076478666217961368358839216952700369544131812061517917719113478761939570298629937072337889158688253097483240737555227069362848062696301190462986192033712857900464131742888695260655410285108776588425856735987368156246440503865259354771057147228016216828797913631104827377703709064107465881193474731381633229502810945785999878189238918797229436944579593042757110455076139534788736147366297931059853547547810990709974639780269312853250332382565891499631485646732769688332968714860201141472135135688990187899321253973028642538248141747818059633873033097290373494546008218644121809120998869657932043929395921517793015109500663869835748798494049413446639159769874528212071418629261604571725076182337637064743825471421704644102137726530504883305803829642892663196191023852885610337879452551974957849869216529549360762363023941320772030013180273373317411691335285282002468370978494984142952656738727667068424464848893801804913463047024428017535638455792871502917921396124223964623899421488535909760345843985997247677973342879230282388000246448846706479901932453519006045168471220342762063834008201156884162488396502908449604357167242493316286638088925446036952034523370413873445378197921209296151878417525394101951102074251067927889835935129610184515325741686628026140791714299641090184657001707136321965578946499792430969276834483401716734567471040307523130576886015685616281797825416238445213125962185248552379236133582836670261707035469793751248592186742407391400411930521702422976855099641704316627637235079263779249827430371064045911325851674995228640607790472277165924108955105931968547439826859443085206467780320800404144360782403867842914802847003295204151688021324352397232939359692207239624079701665641086299835867934394527235603973449179408903982856404599643016691641746361939042924222747135378548451585148890322514588882339252504074394730761974851948049139893723257933506409234104502786495124969238108296711211413048322216638769920864802678253561748452254459344737735649042467401298227188797455320378639979542210682270867783120516745136217806156940584004778195778212949401196143205346036599380145221502373901863553161816494097040012686839682671341729720286543429402731581517244092405097587907250351533368200906887921325144573794881795116367619766715912458461156100502948549814124060966371858717127730268513807579724506500294759826415197668132697446398782468714541744360682164170370598816603282641476315596019353398096793931996246710419498657842365865410025309283769472631069483677730547165570105295012639832269333294491575455639001398413091837091394651960211138254443723587487711915986847270912713559155049344403290709320940875982406664650880665325920658503422702008880005202675742643380301595810679524134115843215283889386828599558525730023784487954453554055721579724203783628758988094360081993013521299452418401492014329153542988542209085993301473281264291212038921205715986949489193167671539075697815998127180018871604146207365846992730234785375865150630413484356233786200828823080245882961940861528009432930428642875034684214159737984878943733587957227888572894102455297267180961304686122147626731490991650557601650811389628086501375403930021824525847610449164383842764905980546999991053129397501909141197579383235730090049931333707820970275646530399608277312157268356127224379151673797220589972471995666452515248572365916892451528268382493910066188778123229178302298525002838271919637524335314121140881190495387974432382941072736909951142386896734756810085934125337874061430977723480918498221381729295986323651251541965634323682266727779241315686735551118440766159680871461796867935239433568379218990512718081347197329152545626640545489735404060788767004631890417909746458756500445932535173337581490892332621538238628829755963304650918160746017925608237581057058523584723598426722755981745172028116279964389409154235692146427607364483214271490707176393975291853246381400495869825022616800103982042636471712821776109581073062557232391817911023418742321940744633839114409592067308094768856090659096283976140335397299723832242221711825051241480809627354412730812399647030655764693796175604691519374013978401791208457021998547294748116304415942895137712654932509671010682845702107507886517884023638599765235249517656637655075638628463540179145746137908846015565849489657029655666132129123346931820952994613440319484348414822949818177391839415615423418170403586353294630395031021888669995418149972362644566945996480209076250787239346721200497481048452151329420518074767680247936119277721219918279912682512374096209643963082232047425918273537369046999681879888668346537845746213582334659478316202291565145929420772379284193705241439732674161069435509629013634830476840245330605233787702052094937757878157680027098397389723701133498754729451852336859811470001119966896261790057470218498028849887376105855134660245363825133558670112528702576611058915214030775273461017011390550525957211386867501877186488381568289605523660569536860715291474800474905297826675850415484349434320418696998261956961055347008704955306966488365131549811223539344526157264027130724561201340173999233320861705454517912534091823668001718020263767471444982382427193674188531726318073509108902119678682842666330216490018367890032526604192284203599005303402803770887835692457956514111557420075581009332274288293450201717866714361740797680029938667374164733916558363919759892915340849523860034653411530624485418846229250240336495138828251635898793884511977998226008193898576980763812182037124952269246935772761711529817444566091780220926363059545933915166567927221359687693223782014171801167570028832488439599648646683554645996529995792333364263114855020646466576473092752444191491460839463008816569316249031034989682092902456660903615362295751510715921960869952391836069471437614801344979263532465710037834006811001135132706296245760939832802489756694174047585031981924138551185511257137013653560755459673681421714526237712896621415547691546738686378326157024410857008685719388231400134731565048070779494568348702473978414431257988408363432002586216211008179582022287639661643033055836114535723284559180116859073174727638560828714614198976463695754503110665020077922217470025658218708103786852970958960705498886898747768735258310677868252059943412691582335505066840132996891987616787949774373812495753565702501115921711026662383930875608090486429339152820097700652097082588013839992485833063294331176190333435184641122625973398396245086569247886601852172920969948240192839099206392903805300313207300177559385397585016157465737801682042868861117576614467574608108603370862064926003407699355151236742054306144006497195353296134045101335280737698289490939163492016019857737447954508336577342964117533449002249331093533680735965467424873961123376326870209241068196637085784354539082859081879163059981013463884062450638812279867667345492405179213662802191382482656444044252526950665370049033527915389895967695567474238950822916070712017060877850793359706364663333345821776990892549170346245785857966239923046172148376442065056847114666917924803104479878078953514671786292540586813337590731093840067872011728212133857231067528243507499292636973265249863838086541406056297608748403112968807470918080304288236271420881093727337708604023481229655728728944768235272328548854594134242083139522601856583821402825851031705155812738031199957705202057739201713712128143252749708435989106107009703603934430597359698611003533564746889670415400923414977731512705842678454735807093033423541990240365027505874626471823067654799380747563907616831893070176696822271368072209162313183548152214595704129090656157567712096248039716520472145071717842719688246482836365379785678806852817860737191369858181699364086864297839755578939097807807108330293818504263899702129126171303121948556985713119515059540567390135946559218162619664699474247357522021722753018181935015776897782248068012521325275832268149019300228204838863151316978664737618160183872042320668119134928798758338769121569032816633725536031282377187080151890848946757380921608320558777712615567045188398878937462946701922584414854778811983988262356836316769128734607984970633005937423409225481203854896564588455269204360926023060697635663890368523043190282246113821889653992419809206592824608283619796279477156342455070336560605158489672101176318247443844932690078849111313076809889695395351618218033495418002641959999060502398220369856430423037145713642509612495706267725221486708679402528734938761149164785245231177778107439653707524383438896717802854719612066262386041670416620359324799412254200967981342214196866577196616001187270327016351419812474870313290099490377718522565316206314700972970082668602186654816905454381720016022193073693581308731999320669862083154684796776418916614057675012574766623980752444751719051791151381085875847578487669933832673798884862368500799736694111886056993284300796553563554039083638644798029876800915045900973107524038837351483340378280747286323997098412928568551401593435930905275474820053029122255417502669542032329428241087651719387203909109281329781974993293153431736023961460778930395718678900198600509533901366792770360441818877479602877389626856989060734335680049569495676452842065864193329851191102891184293087631486490108293530064869377583947825605270095122413546421613323177556136528152204514637012534552462631797723305942104142287066788016946017026081739651649076004572144405285558720496097850878857882139883036548394394498212083342655071436001957796314993015134724453635235605729597314961158905267389987038151997162255116238296369481605034626621208616165918300195508208564638729968094546910007679295370864460567783513268877718948671524769911358574490171494627271756069080545749696287348987512249901999385211575510436653306000658797132733240063344067746237969378659926108063914844350923458713489338283774918296798701293101850901907348359121264595822194110194596246150367632034179313386676435970321006525618034701993531246239185044836029563210790453555318414330340167537812045322188053257987867992247125178140070808838468137962478707914114356971728531915152509149981249523239766545304798205039477770473195633141738421006891301928340557865016480088922137874855182109061685857096710395401626267536048584497526010071417217917648165926386485146351963965121616626114762222194067064540109627484148438408861897616283116354502453699936434748466161872175335107890016912367236792218421447693905648210700020858264947839613261301236393063352818849056934605132421216853658838390818966728263560546725410876147379042399812306248168335857165294170346015378222173743984026263608409852959275331130981849167158109020360729627448178278512454701770848293405709941115695666780575064059265699253192517704579123603597720992327050027729180473515013684940067177284709594526930947677256581885296711926684715069553824894307901585068572854371365646898084002961885210904575476230030721732361118644086686672082668241080464530248577012212363903284586955500000381552584597277970784227819451186032741785999555791101175429364497124763271950576555221540411710565321953570949522743723152023667925080590865125438261585146807627839130546002638816292593574382840412712002484454730643932730769339117901530517149976864147124260836832722987060299546548162128441460697210022498551242768853981296597799668677432665218466928877174923089476077511564391352057507504471667086820141253019515537504031655000063921771034572410464239038821111164168365168905428822069170583145736454404919100664284113893391762837402545766154356529654429898020452419258352339263392501557808412142459734534687580851528388307222591696395181349304731929190194540793428870344808380562020491402696252781959427513725318979880091726048007708753104656872628528739666338763994301961122555586689722348394866702711305475849081745341990140457588587936257287116623032811574781858782989099042888051877320316817265321079953357921887374777889670356885198735533194667958955454348862839461604661460374879754654820493425347532294339214657105051366017342520297231138787500206014094285446834686117741246359235227984853535195131569680202664903763433744716257803516852192348922224429389186449919416453788870025833512007630913629716124030159711282679138099936223652873674174488576930148699040931891095402969761745999815597957155017702282343763950104559868126790022512805836713260437339018181569934963129279933856407060298296184213180776127839608968470535684002253989426882422959189434839357536925846512925413605647579975421499847528589398650094019302775491310440456611338875273281241051898402304680225915051073504239380251639460745768021238543160464388472733513572499388759626718471516606263863969887560925333096508410887615310849801058976212236924428700735924761747814667043037874568254671124032980987040688143707608133702180606220611363431122817587296954569788857175710997493838034915533354200080215969682251694073599608681636483371328888869990025655779774402560101346843548474158652022306154494288776753273837971038191032778668897766111584422179808907215009711480429986000540420129754172309222188608404652234823176222375304955485382478211971739286429652682903697284377943989894790230601688449161863699322552033005361658332844050128307829717688334846387868930864548895862052833610735165557236540235073394451591760739303681076152688763615976845647871209311759924148007220457639759511471143933276478392647502424030594109831101423943905313897588080489468240419457725527324268970932861024314340468012568999870427462663895273329918501633978855712005449137871930864728864911285306861285118253215734491656961871508388745375121356698075001253878725868935840456396450578108968966516836247778794234029558240866133803569753805504606814982947705565375296763272115931894079007978259969488011917241251904032971687379164513861999073985666832787110319109004720039710594097305576482009316436614077591144952160623589395988640767476608645520900084228630288867632024107111046692057548942747693875302459376872141130424578176917588699814327810151206797986887338746257722734997521780458232431818888334034450445756976490988730456686399325570581330257129528151533647601978044331582338919645822325983654903796277668907846988507168747835238536392897336862135201904521850451829449053514968439743561116257457546964436549439109909657933634992529370498065454669212274226675858066686585844844825485024152660065752056009229903780660042233401192862654024584932831166126911587960982880898836179051344472028784011791265237518479320865345831081079973526197906689578325784314610176089664131418642918453050719363206543086125371673803120236539025088872226467599921337072318144699567630712434226791472780166464503572863775606069007195789533852868839761519721200507088248768025756996343979604350077599814232900110829155342556870647370240287359377131123680527770243309211560075895132352045226181520723531752097209429779958938813504973406036497496618377924061370285906175867347013368244492416462128204591830803868692084960154215023962518366002384389676860228357177233232872316548051472757190572293610595893885608258354120118603005468550711476317745136508698690099780121209844809133284262491707590199057904134503000694656819990319946792075475450192508144007698035365418819382035002669644260870696004767774327824652500736483841980711335421541414490077289263192118718313727000992939770186675463344487650089727058963444558528134424103899675059694457769065245242920100064287570078028060059196655004953927253949179025850295731283674174938701871983034355764278719995379543309603850450292851559918084152042975060214596248762401420036367732545941956097258184192828699035206487013014930488372752421958444945308645699600338935278053328966822280387861212636383667519653824175710863645356212332366863025063205931457763132671549939709044232677418051572109429854902686427523660867840683961926992826088186728220918584850945488364910597701772922225733399923504226632114548462851255250761043846504607310525156164883720051198345078755214486473073009379332833235465469843832976321559884653457515104545326701512364143487930711816911634891217803594933054677631676320142833426432646584618858621905982288417129008901703777624300078886102140443842574146283603205808006055698198679078629497306503514901996543539446360837202188026417970747692220533039843117110704400118868417705522075148171760205341922739802999552527487374515119068031329215587440669743843112658193174569487282562622865506555985275632324243255582063227094000922105693657878826675027523591445661205488858751497609304706344611884928580435679661187003864538549176327739017960471634105858105685517336786622755963706199339760003440700342231062854768969986700712733898104079733555858620114472514894485763193759504718874199551354385491367989761434521288991428951429426049759145204444594253170274652650859309839016551952794915208609874678522287910140767365314892319548626166807749409542369001003815073385386372815763480221354147248344373610734072440631571334892103060797756353035604412380668776661672446885354628797008382822117009204496169484061534861166363320261748540633735465654274022465111953648841647742665392813379373401597947948630776184334594595089845306166934556410714690756370919156643918013401961799808730715747432703916258786102355509831879949356620392562830464141878681306651567509102999193664312981887783452957657460193663815363028183691805097499814740094696187314302914145920656105550069318047567666978773478716366370787689340743232414353907819157150776600165197772919741978517332866930167952095808288846326484104052041969312335952850649591013055832536321871618228984462147506981840707299823165835142954491498350143468815433727327891798408994102797739057836302949212637449428518095380891048627127147947360975444343747868349070838470668529580180953616898658957585724760237592406962325626268600960133226514744035118798024436966694709024789449768625891935198542121750970853278626914059018837645513282882956921676431262560154988100309316748791094737899604781171660766795448899642756412454671992649589857217446996436418426160535422958700937577014083729662618310197693397960985590809786735744443325365259226358118700513826355681117874097966246392674672901268599300997708858526560967206284904262102333279548412596558227185425905423541541461700607038015296199770391086269713608691019288653099695839263673350811202683376605004257033674002615031298211635407600806060724961959785301317963353801292239391184854521314497910854555981907924211238160850033799698881724197506556899412338132789851182831460183504839452982522468123160474061335434902373554273922734298806352286669593431354369937803755333026037130302912699848518788100613172631291752486078468691530999691427122037241260231567138015400418297532779201723989201152188119851374668299708188255952867504321283768673654340629623635004475024302973761122556842030280028295243345838048644433150907505927986115560102463823382249411769410741762315673225882861555968769454948233640537224080748764236607015196922330583490771620216844682518177837687153003918855301256661317215441144421932419692500324719016507633326169388990198013219589959341223990030256149560413988421384285341742526626616316765727464761179049468935869246031655135735998544691748643659932729768103833185561543799932894445812613925899895269537308912941718112616609101521880974819881237107786100405599552336860513796078935508111549337850388713230700594506004180961901654402842057826435525820841947646741354040397023148962398421357305673265974346092474680166608078152953712842899091782803933763076571497752594875661245493212056020976906904187317853709658777334909602234250704779135954820412112767432261495757504554664436415234767875973017328828863182592878244781812951157544394208791790010040142545486801106254406818919838516715547371706827040445693279234422178946562079907254500244104504443385764204935811227820177907434512011898837170079439745594753859618398944194334589980645299361248544027317628277841381409556694143053973755455121368872511598285212939308251903110033089145091110747496720185634207826486647566651198053545679177515924857255365922363829770061135110097408108271214610410043276998315754686296880363847870556335659431175434889912733145935880134446690332134626911783976650443822335533155481901625789223072833013292516199724564197885369643808359093748845861451433135471326849755929076653995070218674338444755284542525640159131950603305225879327957333249101691883390350713850391452226614001121617707563948571572686846228753475116021148170921969835616937574490583566483196419577508737261554093086631294562207060596888805396966615541587245059307445388376409024994162201475421925843394172493966203315090382972993614773062504149980156697068602672127939063580870825576388905506226810784709784607104884370122178025273143696194615732586501450157428182978138512196746526486927031166058220780000101099857826716884311281670742947532521205821814973487016577892379599571391368563386343473231086626781516547958826399587778876665951531701211489579077109256131375963989557482065360047499717792432119898058145239737959932962933979819439838972338024938396699022620988042154597471338021837095267638984177620703351057682724725033291350192356023006952009961081849972819451555661732531118268941235264700270057765199639932244863238764341556578731682146601340159084998258006710210825763433942401389387452611315444229594119366836496265090144769578536490467521711140981686356759209160814533880495788782494928174823080693222876551859755402519203660306418201496880024427545834128840784629312937048164591759035150965902806681979881280134684947182482459056593044094081367883151939364647610404066489666599843202952905774173322317224015783283459225876753687229145836784415309019778929825398344450970211442354611939462079293708249071630836550518662939133632552822175938914140685468615568321441110554981361360008297972978779765957426247015956060712111047468820393511742667455937672956002897238797593354189242731775518396743222807947769015612139239611678134808411427326220939548897631698809829573068287288802395279213510627178858177036345932041120586641820142690300790107083597393308708331411289315284772279692587175195625559047248499143281541885501902532181272558341784021729723267486897394233910644619776421879576454101460973380537692792661567190747634659315732480963810977801694542940930283479097191456406530967730426454627269617732124683810736105337117888231560691925698038405222966219475675892932681023001395966076720679089891214834306956010775013395307513712727297588295240452984572136185989635952874080541310876330110406097762465367066026855582688358327177914498977428039893254995065062230629449547929870551193523969089459018796440013639769804022383406136916215900907813236961359394439260982004476950874494429273196306561070518275165902880916868222670583319636728364476467622872260089541413798497257039901690073589860873428442749885837485837287208386139548704866895069795155719569478524094949864178849649681086450406998547708966769560306946181600619224742655271576296761573071535480407982878749583669436311401741192815806941512852262403627734758417291218145498310443353518010782711098806436651776286062721272111347993952825237422463723467575876823751075796862541357982702845740037208898744864010071224719902794269266910364022816464886939729661621434382536291786007164285178071967047796730296376438738971635214437520949040945017963696734461102355465067208896116560508685600673921092939295897370715415730520730982412087637925549068285474573017833062236538476945577240737627138606352950046332687065575243602265252937895766888574362479971589435596481196249770393763981129596270241284834777587062561917093691269741536182343008814296754495839734761492268581785197590371118834863766080751899618714134310121721181299047537825098169244920363148391906553336226518259815283600740835686561598736291494521009105818375341735344372507550767604453553842550113761464210311102609873464265811457743456010716759983434029520287918128440173871378791508633550061170773136326351495518453964003784255951452822247556002081333849960137928764160428040950962521582847319534444590044831598757964007119399211729998948297008444286705100929958757949996105762330450987273650093298089287639557708098239596462628722034225569393692293927905861200273442106949391652964703883674516443554047629073779465682885202608618482715220225640848179154475657495428017631564720450227456099721894548148900844531460712594663153126418360153688629953346655420627296548336875087603725169033952594931009660517574494720954222510317151262521099744093130665063753547406633306163187460006637888812297406262038032799661407281943902423324654674362228440291245992154854255674637777801805818557855238073411229359169598013712671934673114514937847729267565850880415533306592110017680774946040364235347942857957587730074656292094913028516201784298667750171192220426800712529620150018151751951782662222321989623846250593567444828985833449532826162302361383114588818727259186286620059744593312528028171823259278517461622576144425144460467620471722482229000291037079024042296202423150066292241543183822608191448233572688490424692461541795903589283064366168804201400519343902088471215619041421661517017854903225593712608012644827300294303428047474254369738233034859426753168398520684780230317586107392874433577474052480498641791467471495518278730435478839371773452081150696260878158954609147711357946778844254117003123553753911972770221962219574020741203230521368627728322655431485831520416092843150455912458782175193355121490707912492856999666043898788634514895731005922965574013113775192692477497507734748658342024210423177814515143850772760117053174550389501693719097235313786514368360650779715371638688174457294183092943272971667489765033224219019415565053026423431446095043257638039409986451324141455200253162259855405545133457535191548046058257523269329011908198086156256899139962451925983211667669061866398478166734544409196636288901110819314553763699891408061755583257096340725591972167399715834973511730050816505307562484500849276031282782296923933281192894105509277428166472920486043412283946154284327025960493529604944502058644099880282635992644991198289997459550782055893506235145044076149738324300368644452018563686063889608136106795114049133359640699680778327080069474159947781562612258827951227266939179893259120027996121246321185129029959168852234188881202540682010205719044106751678704038457441353052939350853179694682717370419141455835821579523292707788652481194719913992628043089921882576663055136204835695419366061466083556917926330349854799381050924399538145949479432391275962034398885930049122432000765074523689772417636204154941548005386848564550017284430440846743487566511415131209836984078321377281160447329982460263582729560264335208366994966811338215877253949785683300229883062180818390068594227878464053304159783385425804999075140358223664864104224332303682809380276267715413154823749985356841386303482086331978109212910514241327878617492519040457268884857026881976396821396840446421210677555077899812223135537153990440127385068762538783339513542947667873335948477216239668532091505012066451870773169917337488211493808726527149644535242157902940065872614153923925630544440087142879665031024152887335624560697868451289770745528913513934597444929288861430838642547402258630177586866690694104135215400384812784618799198308796159932386462589339921436812153383144005322652975085181036489209906008617304420914028277303265689491373758988970250396302296344857659132673418075595291635109697974835623242240428168835973527158729056661886360350553503051725713289834741167248606772347474706463572704821393976021350844389277611876230067898020346870755390141439779816638938980920917504026726655968018817728959072863803581478474541181915881659610619445616511333200446087865205310862244429707456954072126766525356437809823135191317452354711558877019896170413050249129989625256581411629569862475470769520378268018887061012195148474516868239541131394598178614198508049897284133865982771290830187603350987815260537314756700732549208722518719328921673551515237062641278356966869452028643969131765206655962374857200295309973790519476991042270192668056114443516225573623358981190980440385015394912979300862671510298843857220615052794101463136847085728533001948312350471204955119704584411541496946593693184927050941961762427241932929354459480384677255293766905460490085613629419290128329216693538782622516668103641361921988064044780669318521893870349116578797770197842495610901047385768148811568601894199056385736166870502546713548788512305864523859891977083240410562360473230561566401766713226733213722058028743993615299208509230870183927978209194303295834848114226663724623764107605497798562769903667751082615540226713885175194169219552084978566324997625848659528101717008370578212079795272190533267406088125168731374518147101392996423939133387001009542197380161356955105767326467008466315381887449253865135094409592166471926788203248735322353798652165911794640888632756377736420948646804004452409211980477289490737380676039916323113061387789479177531451617622679761348082135583409830892424396383680322882031509418362504544994999649827146046168707132824377066641565282866348685875328476318033410069160695659196990637573720678009108371367810298003166163503135651029521694341869895681098030062897191294903734296680825653385640398757669476661285939186934366391812602950274165491398420295156504678879456318092770067819825627023369497441104111414469630321920465741665427140420417235631909006058981723703665064636249885920944727729596925951849609229540314393166686603931503935473197402638097048579834068039055104054239375706146834559798196594736528533620974968311567515632778705108208986545794570153949743955454068940805617203556946924369561393015518401549691544285808994075219060454004895801607811014689894266172044600762467822364964435995008764288407648607751422599337333457074282224786939165682334353813874032919449059144613429655448685431882280832693100680967282413361921817293949886101434588888289326332072458232256653947239626427053966888549713344851280562583941602874240836941662011594492814649462524730407419047040685818321594544610811800378514619321308287639391858463921893754989988967823184364041065354405599666000276435625913231756769821475676506835701270374978365398770037518105206789478208473117136019211570455512456877245024132393180386546553625789445324419496315742481792355635545638300927051785460419793129857476193394568696219736239397590217699096590407002220647075146983390547581001574535089249968448757070838275745607572356961072369778956941537533602587583710168934663672221306117300593755037051804853638707201081692631302504337457519866396217068054570264684469568974234024195368354891967970936284911959492725985902912723887140768282422568753211599851066222774652244422135958346942675429689172754808899193432808474621187196644318673031984764867683781370114434512724496886595203042189111126218198720523747551125837722050470523479701372417086854310891350950654779370381076874483463302332825118108811843613002242327576238926036928464394246878711555413183562642097651859993876773826131254854563926815204714636344203482544084752080263798657152287460798836002738978236991458914712608375170257108929574303565276126069603325784473322279411758025158889191738940655636613886736986798920734175438115027325855996015485068215314871314023228100071378503386758048299282007940604331434515818275351811030186494761696665002058394938980981614153511633425725717510098940938944647310069789731918813299809659822465225879680543484165406060979251521014724548164901515031046304471632275045345424710712490447200953311035118822837269267950539095764398133979532579877180684665013334128835120053680301762692961425770195064341720179867800789654755309047118794146055650156354379926683249127502981532620357318791263586380446179294836542938767273541902381724834252632591049551663396434402862510447992001470853423875745212582654636164708448689058280994201972498182030127540941525073579058359697852466704770230279152170825947590942261788873403253378590236825207274720130495793079608000373572619624563664022247475397978158237725304969145919455114247401196645985992344434942793199128424238074482064197319009254426153104454768825598939624186916919455791816045908110988601276981498339438286479820725357252699392594537835941811447487104987150705756850360011221148790244158392192946517916233286156918646757814816373007542481193147292008668792465890226285996899095686180954664538131654930833517343591058677906544628986589814394186945789585013865219648048860890607152171034721668334979353734394046227340256889910613950225840355804335051626283660103840718366834347696337851742756520230720967030281512783685201958391574125414878041426930826776772251665535609453781557155020351587469230287515591661976993756282776555971555359888569670750564269475336600224170649017188327399585529901078490760984088159512977232810835648090695268612337106767657995800516900742941194472830886727112333748800748153924259675749400921685071479478664429828974613355619592988846420808579618699548980254913895084393093055451771515817304799992589958454978630804002410751120685204378002211905457209016110297762275213666168781902820622872372861636071621416059181734608503690385688389423097533007392908326990729706051945270676310672389702741419539910998282757109317327057385346168347033669152432515897255748672127415647638345715699599471667196190642521403903616222135625519249935172113682506241772160796128992853071796192798796471536485121639308735787680306762410658503876517583305002172485381096504841906916100219578542283101622036634111350459791299205009945395418954059818476461602094660075232218514344377728284856924448765510954832480116201164326593208959257097052520133921632942902130147856581324205878146358212434675083241969966696396835955135906326763652240556772706040094421630343951846095781816124178454444653710144465767712175117686890898879133155005905811138259952401791368938253628824445020680635458941880384749613497664310852109452035125903989701494889659837114620052942824175444949240469265652739703034793158533740395791476942025404502577453301393795300565944320536179747906200466850130435964746638195284911146662390707641631431802098036253756681007800513647383626878650462171442308625974415065112676228669230451757955572118298759866716496528133699549678735014141218453192229027069267741442625509245688141926477691677453870229685353254324435033445018342384354656038799583408128755654607725146690118160145092534194631615861578097371352509680311219040037469848716168905352498024244487127524245971401906280196362892161074617191583873165746197971965123669839825654275798425202487671324222683611994637531291053593946852231243864423376937336094901897155429093312153469695845962007236107985436593235391200357950491068007191002672041761660333508300144281049762018183773232873780656575170230684893288382481838851494557125910433919236928426065737012243904192283376598305256181445722921480255296224375288304019096647761653148787055036052698932062292680367681925725668591493406874804853158048097038335495224558409789846837944997055611701054814326550008191978458636724535251794400180227713190073388102954767531339320873582500647172377940802811207233439060337254106588403352972810639860914514038003227682614551515619317371168951599605873514270844563186605884486688587475191269271027899060287684467651970940830322645544454022919868092197725107221969722460834784721504879382333216574486076487390614684264310533239712421342503464306577671048828060465353652808376433548889400397078238067477164665791146347608274030293873398403785241617492438469583515731822162976752006493678796939810056426647832349426909899750545944359967414859384284708125904846771114123700026296074758597285959924138260495731985228008489089419179031391291471667401930896027723535211859806819363829992354328447467325923549151145394569367030708681106975911819652878277072578325352174622393273462268951473817991090221907285816119358369299182677102774519924672796046005683117828631413473847248509948862181092191923738707860937310134930488989446477051285478290058533433673374395412626438176620911996261044019976428722854244977834639007124381706396905141273176196873828754876238927119315222781897717441319104343236456851252977403524489511280613606632061354311688484582186304907764036402775521540212305261489469763701274042273125568772929177093916201998587090185138211259272292845011360449906028610478735798740013411700978133488616008259219899320969164203742128125784445225410763291642315699210707656583447372306188528328710172114504547511028835220691296398412717103415296571721531912964372778052781569785143636419514548414417951926218224675583009543268301312994389309089024518926822377016022965479163622007509927901682700326456609862527344795141981199175071855242404626816886138260064421009055343963485950279081514302082109435966542822675080898809810662768519115170993733686830412001605415164774635800052969232541301491704921203885427087014559742164885215662042302466758763811804248889415356900848454376500486544705589711123372949522579705751144702864885390989804659351068382005431967206778909197763277066538771911002479921997515816896322199470460093340742739751748217050016640093674219767104026766246851595921479410986434866754277178140660464962498616342782780907607528630053382320863937668095851000666650604588780338740951537154152100294134560395797743524695471940961053093440649843995299684147252355848252358228043791164691846988109224136891455273966956721761710820056935968786129561333591963891401669183922984444773865151130065161071629596279819788420441681379196725244156409566446476153843255420809312711457406323700899133504867295346639626608892271068189168791076473382454972955425424240078170472732139376386431900213129419452279286292043961904336014331383475202786446470371318344439862082981297298204745644372638522807752467921223729405504010752500728900138064702200537897295461940899722610616215712008882703117805491999575380353748430620110478109783538053243468015629801947105683213510121633277700314460197988288323201268012299562797667849297285315548730972364964521563802347355983330162226581459847218936690763171001704559238111858244191775304439359276907482413675474742512646159172195662823600564235546575472922979395550701092880582473031151626395000597427461210735273524023662370093222952861449303220641361468820531223355048822135064654893526973048760431975688715212486615177166212331340129055314854734905374826562492077769407870223358210756135301078771126963727767194884609031361774877329928941358288752574680824369516759661348147620167329344218686639709217457175486165901533452900810869148744017282962401512065533030154255419727036598579906114296638339836266277878801223731439070270299877842112976432464977595451008626565684216497347803958736952977234735230423814999539019979969296129134709992359924532608891267622246098217976731761655157616194264003734959324870227540155113656919559167424465888589800450122829659879475012341207164912371304876495937921498621415436632447200254665196381022296242408813832094981754496490228339917370604534453126722533055216338063646639913681957804414908494660937044946405964370419854837648078845087465680010304637446045675196524744975844551213176464614882135510993716413873882235814629156442234871221679076324689694119080871957470514666962396416818874940045261939708024823603785269424936100737063126222793637204078557450365877717699235394153613599216814302681904713878545356517912952864332082971889233819535590604145477431510351117471865603170802158165951213981651770064315730801257884636794731094560320110057146854601033380082601364490206974170729525811280825107283774953542256433327221666723255251665017790794383935205959796136932033453596742290245429928515853500523113060689426833810608859290132598144186135744493617820700494266293315187422941809050237083992681366745183960015073304978444829383969261199896764925885586470019024616622738728821969146831791481464173827594691389023239751040888616322937801377064283849042683550925979866273950775671776407303124949599207172037548346890803538134177529625797746710178173339241499900131471951021195342104466448399971574287228992638198051337000286398284352843553703524844288762883264484014449727427023971771430314064303983581249138304673615438379351195708947830637999231417512792131720737757267476688572462456441488089800825680102647473091069306464849031167883171542545630895072088678165777170007140841574531325185156738332232352500096864349153185962292939128822380047125115841711283672147578565944106923587344552041390902662390209536913883905572434965458034104887653375186029447726716370046257819074819051439477158995985290003087693408905549790701121536180611125496138344228528077665671681628213333442044186955056011996331017950792515120757858051834512990751207342829240804053085807074479736603929859796129947283691941603401526615641947089831623826097256999456183761860560818314936735927133421827454111646654584705018817900688918744226097164777473252528073083005638569484487368786960567161736555048225749540804943031318665281403566869879452094280935520490408422302040346835170729557271784929516780057427722065240343771948125830782241691546748342688454335017752700734441890024207844159269827866730203206153141689636629949171075386425069012314448605322074775397929974970826271985044162814941396936683715660530192578708567688757761541396843010297322157216278366810773268986384396208076588416538049003534894610560306546081550546708051416066291097535813659620230181318828241792280651318870642422023648116455856747073454295911989015817255313630248390840548343981936617064141590661733807578056545399698563996117358766967580430628999526870225124750683292021970859989838299817522245666289197189952277541397580163959032903731247848905223426877032223437315446896979776716934551360285144059629227862098181335306385015273354543588839909722307119775293341571999905171925312316846143010166318157648015999375848008683029721070647914102867457582098833258762663267578895031054892197140616448369766756569003426867022239944768214257547861845868547747702119324231100431883742856303251387433412560168536149519883520769068534092491630732582965353673696047468180487715381007072713045613168239212570828354333696610447598679397927093410096519916731518946072151730102887722895914128504936754556469105279191637142279482182343475608621401376948155799288827981985316276136510193842123069160855203087810331783000963579766832089200863337341406727446523935709934420006025821789921685561953317269627765261599036936120919415960312739055019695966931636752265722030407678388050333575481632709067997715150482028235666468673629692293993433786567858104950380529135070891707306996990048279031452636410901533558574000264793916453559714477474318582997788045256053783116612244261295126452462022641817700812179765228613848386335367502991021053285118321964667949990866023382159901395615363986022815827005386122415483018365090690015172098563045576336044233979032639432133150529533817470325861413674702105920926487597418938726214173058688380682616494071541449322155256345333316706585709021497329822762907270777527871722785328149613717300967537469222883507315965612077778684829685862394917373830668392448296985091159666894222719258972802032992515200804536261351692803255265445360722928699897391926373001555044495566735008964926317764790503629116322102500730440916678272318941906285307047460195131973418306652113019600585579643382220468132883272189274823579274373557791694145144551184951959714186268975096230066199854133256989043973217408936514999726951881854535976175182543875374490622371102307897768647480488137704383412129169599513403701799268334368993444381687013218107827384662472397038493301909305496418258692037270069533582218999286988281016923909156758060724749783349292791697677051721877913981190813443386380512721482408009730858967970977457235454286952536519015527679800163148594517905408986224907244819190803432474989554858017959748071086979090814888779570268280933008583250923224439675117445542220464421155043097601176313465044388695549464982083419535471589635389452583447665259893223152709874395407415474609281324619846246487609889921654243108121190847497319180669651567491086388407878072707618034269800199372384269714994871580112292818474428680301525432201566559949113439697584174456135687028508154643460131902875741189381143743390724659386350296835320685319824502186068374925062811113716604555314449563262804644167392469253863801358659082691951038324975563929189643945885542667512037691940421207799735455309534350314476535633183895795792715126100403099683731375732151858995274256340280336021993355316635932081346840123999744362881815126512200838858911310739196985165705453258529275999371804093477380143689439211876230332959919455025849271710665424520539356745559139622072879920815540101990926569864915593322473306342333403846855415381755992971177676220173823537398186619119473147730703665069485516931226647009078455830562346164229479289399162215536065129376444440927482022902536147168762606002448582656803190324507131284524878054496354636541160900518306857210658976876421212970000526826673158123430226197648950428425607874735497430239598386519667777275442303839509922600167872978767716123691054554038619459747610876949901470683006332025465814525236897210990703272378254375015749405224716909069710641624282636122911352806474497105440425164860502051994493502021636280664272552253538231109308268133897980232765777442370305250254260188760218263021392866679294426766535372300293409426581499560369731443939924113440001349699579963696972903273459409541947291086559446486718676825580621213700989371658955403143284002685646607063979343026871564813516136385868471015112453570405806802518170315099667537091658240533740266761455568298708239052693253146279300242275916516757534089650074335917663032052007088207989989475053116088146226674859323357136796441307181037213473396635570147388715431495474661344990681391420571813686315406142182680680852611694031788445405384493162874701301134141977740304116505528324735847953892460843517600566805889605087359423514604633848309912382191784732292041296414160916815801351437571537607190871490164494460835168424531499732978728153496664833891614732618503567218172707634082885487045350865455739858015316727352294829807334546887894899041695832002133566409007829862535951168175923178539474085453329336420896543646291228072910244779086099324435732750500456586795544366305330825171791461389534133970612462929093364635362789080219577799091649941750374801868473232035326301736150674484172219069627916703855214440801961239458252896757700358140886711761816448378935115702453272821877256513945416779408473113010637758272960239167447727528183004655801678984283983923051766707714555780447982605754193750083485208144124143638390199531091377501687290638492450339494030503725209832852937056400457546709641284257155813491285386244999384895274036509085449189297924458799355855730102274378283580684952351783947160676722840615678716262796693071882458795796747694535374008038057209316219832744825580636631286074624397613103443616267950702760872839380360769440368326824814131348156236661966113810398003379167500650682116324290497060139544520458156138365452864084461787536010338822271071323312736102341113336849739784859206962340948485260517754394958966554230105407727125086913482812091426587502012381538962316825386980528897227650738528238276697937164057857488038883924932837910775403708760092108727155060862595681552097809779534558962719839606717495360225480402345697524406231800993231477452351394653860819316085135444809637186953059727173737864084359012224589886550726894953616266176022316675542334219022776751300283429442784444265970713218990515773625900038576248101112246831034965288346380819900181428892347475617564852754655014182777494315443229221706185044903845598510508966500018269614654385502703667981361664324591218680786181477961533116309825541201004113243602585418612414689496094068419151727291146866434744661898156812448883340156613835226278239149931238543157728248785064037921728995728811400231347538852226113759276092529660626255983201916245621147266804678113446420263942828081467069472711702500203542312536867537686854973273073592929741677751120028190389277006265708402577174528217648039373406320912178000684384146441240486071773056489254219311805519288957638279471217721508621877009626254541567326920470322183846704741532773138481013521907024271665467647225980202940305352038121477127286649751298711027084528182331602757534481104668858487225316502454807456833189403937967750998242895068389784860058423193433709930831243879568336414131227311734163356958754022091301453464809526526215706154534449927148875588376905025582963702848696641074016820474323864201270060828418688443453818115344478595223000055463330365077973134780345974345511730707778008774931805332532975380510855864878531179991240582407367915191263840038118423147673333806834274437340163436956789514225255429791075739089035096685456881413806738411057617189275354295437301899299627678464911566085108699676503241732307714366665376111881442009984010896819178658335672617803582283952993997488016647395327810972829948988999266568213314288273679598483956543007819612335470872979817931848304049425046392153357784014859437926111237156158772748297361291232083528096269249184264813532043645866031689723969432209284927280223050793999450161779660418947698862152037468126835457089915933443423911881637701812779003083821936235522670887678537994383454588438506143694753778892625075066262711919256357629683851471801707132100554384432174267021099113143481957787240481739744390720047423204935193371751281855559392014384718818192969901448667239047922717249401957948546359318404713637343783657290114204910563004541611505317167776671863671154963730718708418228792212647000093570167447288277644517389388086036157607391337169418698322657025293685718343339242896131070563886110804205246601551352156140765430294902881787485373624428668116865626047839600424534228554140120494509005405445376553827024315353916667649124021734330604083965773082174024455722517071861053089855994599416163623753594017892522447694227932570231671275172445900128492917986032387261391234201309123685139876969280010929195670740489128595206731708493524348079558285370625953576921845676292942360360899862457021227352768048760254909877535249181263424742315943121019625921386339408725351500351256846306542759443640605307851342309275687410554649139808498263098520849962953898919199171634297058598066823246832628567212778884189551475911410395454826292462050087820003724589474941198256988278318558690736217853940857623417909571999458808911213355127779494708482646085755492353061205881597401359909421625963738900275385951096526475505253251328432960694993447668645020071623130516771808170985161330163875028625776641097479026852522839805057862981757409896319437101190228146311882120744355573996052340860557634536462445420509259331439114836951562081702976000714918367194600760988257913546917029646709430160496670575052556415023577416733056551649116233148949752069884809211890288919692631882381666558326676533842421708387569574879446381024710141468939342240530133140164347235037959403236406696422522598361216597055132387017609133351480732980222082468783332087809119549359641222169823108011878729736072245646146845830336170803727810754816940221079007803638607811831364065637346377698356965316179284072779540648112039407602271662608985874555107085849377839691092689962092855061448483110103741992941963818317069894976169191493257320852714062292541031715281931963089021702180816431743437605190610868684034988784953793600044193122719012029778216149970902451760937339006629278427314629931494888933864266499661201389612475251780100887523286327871835805241787470254206111666327667872031818635473587934121845783857776181451060113338736619142022399653907199283323269464834237230254197600252085500871044252694760018828999415228063068445789741074287161135651552908190458483824847817735171332200886274871369796477713514779290394075811040961187666118993368117081077423635540705339775969396894362743782042155477081592370161958243467398174748287209034382235698146285338006733744005613561957932186995217947531894110442166126115628873662739899417362248511569541285867105240969630455957932079773623742629695563109669817386605149887459888931849422950977555851722787379635914172546329078565140690558341870873727981541398918768394931594729968064462555158496165422902134382284833291796084789085819181590993148480076187428188000335807380925587119964173604721181817273816446338800373530274221816989133716685039225269708016796081456455064025903232889144995378441574833872009699326316387301255056655377590628526145094549079642682181823999400432338747020186116854479469877123594256961095111684399981846407383799071971858128385617254210393638313398692355323386451757578760940172635230378909545132468957528119303153980263683942972744767947437954475174562165872251612099823731607313886924820520050405492216674902365005799911361265192642715426782304218345433345264549931796725889044398988719073306197621143102407718798534916509412547153545724929156609859882360626207445338327268258797207955582409865961397367965882190299591975955545446544737648666540090325738322297465943134366467752536897677502164298510398351949737119041124386399350647827908973046357186280871789980303851862479581291885221132347864159075212989197470404878548005454012090846378655522639361048862247115215606988519665385415152891097842876159368850937096609460720075681094222455111607902476384428212779957956443261805248387733778348181188389041479043928877407051126514708756830002762795619665852071746817370163854967927461676148258649409208862562901628363567326478612268607704458218446542193228665772793278687508827665814587378303733813957733216659124403964949566259629621131916760409284543809802297190043963565884646659244022781841369724141151324723930086676003396108525032221085807061447948336334633385896434857218250568002112902941596225516148376895355680633922434514237393194354981326553909583005495882951500579252751275716135601280491092991711866426383832192224315288215644460485230469672061388182162561447035497877818668867705131093968314096972099538501117038690457081839201504068603383090718398612140268576360200482519167326662973094269619297672578309347736848844603194220778435448901536153205831902620446829403063514280999781301121970508516414579546421381051459946516771278911880350277379871858541709298129917349211491933012190124910161671640492232082604677714828832093253255325492515410471349783715644939367958525119916341783478375653203007299574672011376217053760302929082972556786978706276546734915133791232522742402334858752889144375957417904302321382271804536386705933985626471978636380187988921530155972131082682039252649813740865666006237041305361479460757980805797150947475219947874173481238436716115270689019147667103245275180370592342884398785532919336672429267289201004764911425004786923461552128049354911991579044640741853599000690633990093126845604516131879820255638287169458731065787326037942801907112243766154085472308784465426278848716428190270405870119319553658099789421998231072957536818489463351884563265980360540477368064439935683300764538253411561957713174129076066287743574582926616156266905537980706099557041315613911852954204150063467335165391560493650175683817509301580428307440235421736300302327321353432609185812150318809089150095350532198785603834696806269469414281664805907607810588089401382211579768391205844594615014967179460689463317421863595503974176311922366165726919337097774327608481042361527894645062603598071708201369437991375275777108290508813079779436130439825275674203016039607154255409890613635193576844138212927862047506006132559034279292804348259389655423264356391808119814695144026400169354952394724640041337760855742533747033824628502609879089552125358924034071478868541147203417081104405725812170745722551498366910956707548829449398295841788115022190124402795816631823205403950612732891092802299546924665313423839884779699784818265971880219271374481056926413286893264524594205873583783933973353800734614086319844519628456892498561926407648322338724741914510568389456177617333441656879458915430600741073296593579886845729770588329943797319883786651198341394086296450436975176777794102866955703271058299018578756166063787845072710442379170645081905321172954625607747367549616062567761823636974393390905903546518963397159904759485371492644240852085831008468805178186266299083833366577502171012983656140067280580013358060588490607162117902327857835916624369321147281384629093268713404261590972042240072327448911245693493408781721485231809217384051657239997125470876876106420907831331532584571213095433821396076081139225393526215474703527991956449834112551941698300352077229494514247411576950525913397615109213758035000475771619262869740324905635184311936523969648658057062038606123828358215155008532812573830318565668008113712314535149506004910307567084837093517133535539025957392481054217569813553345830871165688692863011360705617937377039149789177799289458737785386578058262946855709885843433113354390510112189921277670284944525783252438639587130044713792035431651434289693519659491346446260502286434497611006834098105989378483722537219711942975958105069149410871907844125017384834947975421941398979246031881414532413162580088031931852036207029619898327707421538665722055557868775215027937906164501409077657062287140813488283230649212823404962699979153784637558005587574601811328979364267671197911271860662659197556441306133040154473976626230781575396938343567141673338875115898828999206160484069685483126615384819408019832835549626976727918297055543597210319051442054689435336721118617929073307222326635186029239243462858483362065167222735854104508992325751650543653828406073863488026632355686707693371649576860018483933708811179810596120023348211705966993910817608808949554277564728430301383764959604542406056706010765306115384551019185777412054817298265300578582636965080194633054091049883116884258184484621278362247111876842672225614724091663084942260012828360331208243921723220798485947699163533670190676044536696144028584141015952285563898449725703162337047693438404764559996726666624871694146430521865923071135737731436343576485725158696836901012925877728557655208886525294354151828094277428016846497567987209896863265357948806392384423223587292842024309293576943944183849518318016710424250007111734545550280726081253003374176509093980554168364755421153147694868314298484119687691881459997667450558929097742146287800966270475487792299726977268932183732347896259751297218931529827290050723748622270909228193759402140795186337754827377682944420231594570998642941036371854328129474646655606681477440039035397606473820862057110759531501161461644603365039356059831462403729596155503252325056253476202445451156873483154516974976821798984333904451627654951813404077531883263510235418674581918899756928159575026988562062609756426961131794759375437285158925285343590900437506165360209992333712976080051502764710738317604784353966925696863662608610593927362077032896947884805611080187193456956429573053466714248424137288630018037295029130299166132736068472512859415452517711229557599490227473362268576529165790230312122185317811612475178638506039891030654895651624171447309814152199103699371420373874098589013107581509583306433054565446732963577087433683256569489683869375776630919938845306778156426918720474268626095563975299931395992947803746674115149275090363078567094382155836205709747164604905879064660114869574860186856905780718175490389785775670850128928007417371498401230254072143122038974964155322097968032967101902009891303070825422168389432197599264868633031254244236279820991190003773017156447839425466806340223467286596831424830377269031332007458738056985774631463585064681191687949638284364546393186892390907639948849035839917928068838538761942053545894356246739583661954207294633276662061705564457567184167400411646874815152680053449059040600212877583646695040426576302889824059183850904421630006441945214634513686205295066540679641198007249827989587156030109062124325479642525269571500079246470944936023722926753487948493773519778215315763552840142254988697007336186236348773695586988935913738251455132151476668173791354435095425953197447745152081805885540353627958840387004844670346567104595291989610063585840581560397110458590152072830628748199990547875969878575669336673198253805676103481409489004819245695883978278102379817200331663512804579210155620670015888404203649747458663131262245105411129202474000306637822248849487366918873793104920961527051754281504618655876294520591084154722984986192547364329346588605619664973704359729009928834713255753192481757648409315974533194861081235886547510135743939841392645734707224580561146403759277487122052709556725572910959790848544157225426448500895034656525021082031697275807953045335967144405636506866475509169328788682363847362991285769417344614768418246519617156431962571071320959125429590902236918104363256291248910799650945094883996325789189039327282743922720602217246986734172135690224050610599281127712401557781887252123724171783691248254157436823408006064173957207353606623234747492002484470349760183731729170006621631023358907402135271195922248863964458833623536759798024921233478065512876636911001172855091282549451041448358787182122803616205862588004620572240044494247485704923708664563180190806919303832914460463346736353395927605406254068672266901004293672625025736622634000423482284958343791197052907911089021932097498262766389875573588009432576098320353180836332976165526562894324323265316254062666969022973027765685733877359631297139458904379559269427451749044375309957786040884228845124288754513021983884848124891866085082139474433310091552113543995464255729957819833093674419355269677434059728343923692706256348780670394313005951334954397656062339168316158918299200249214608986116027105482960258197041482762530658924726957936360609836093195991923963485762170680058266445238489263628257582010958148956203858749640791169117687003359699373529676353122421864616169184667605635877919043334688495321098855796012632122202909425562907876347368529673271929163771079622012773021386045448248782985456133622994241501029736166665961558300039271529892820771649330659785478212768793155113132194207753995810394249906607700615631440009954164200603282123260473342821154713475856652860935126951559939433490224937545310518674061542208707291377610628885596592752687135627582118059117729283595800337871162002163800227004366533700591942020685216771960912345414299197225094786316571089674756020676526374500032409873478167747971805030383608711446709919075403682709058241806527007653993951983008965708904981547857108772568153125513288101557425624148117267076067265777754377608781055945174882558525590189492503818837228234048203199589925147659336865691513638979843612182083063412806391673139808281221858416621245609158690111091045136368015907958270291006003633698421941756230182717784969356211728104871911359159052286132793477128912159050033748508666722247886752665877880718509062495019911918676674813622725186074548938583939312101152069872455519275883044788289426227656145305844438368017336070314479487337545634813163596809129380995280633958030423835778032012706047012402194943704621338896171414811326343065637541089161548687028216676192496003049742243877893150845750732102361053758743787867090789152054763886082053995547914683944942511369922876541817785517362357187230138131665502803031823102383777637711691639773326011291933736839338906175540197545192679402851379218037511999693463802327410065770643896969220543216301360932743484500421937904841814629545748515588121970591725466468428774939544386720306847334668123040290345699709988282507895629959602048874294494280464427496250224150339448913210088848467823476577490207808415871840357911919149171197220461184183704085606043445253102656470445546275029830690766160917864531949458581595715853991969271879517982083852934921167844807844589516510384070913540224478795871251657031627543451319573331740628416172841320071050464960507908327766347345466601029330220331447528107838309653344245261655503838195977832618033707729508362118668496733357997825653083519914266923825334465632372876251505937790363998332087860783576230986714096054862806817736676353892742657404298400266287620476163534991738730525427218826099798925779967692283261941224056453469663258529391173473551300725905235623283612731163448695701610482871573733822160558642367551548889880196606212775281130466569847910244498438207779889351245216870151063833178387061878422847548730950156114264343439356481553546325680832099062008612289581135934583601810629327193514138510621307200782283997079097560195375216407393235478430014387697097656081193647187604361278005915513800809865952938454229973591986955788450591368880386771963086072269778742621484520817070722244292660450852929648681478120352114144492033729169874121541586284375933842743367326250743617025930476332501772110698566588949960072120532826676602595138127014165899153389236010101965365822172607584545118367275538307219121860542788230373246307535985948841929039263250424884186989426683337241753932367809999533608595761995007803667762667467973484485903154607705142884716845008614173588958015334630208809378347218992791814941948481499477673052745896778497866688708491608334563176141428248053508750937768060306605339950903228181376171252045568960020592238771857607871016659040391002252755695710181248652565125212801768603786995764970076818481249878431955419009188705337635995491837133979042746248278587083528096949004692335489624500011743613887430215574800699398047615431960751458054975716230319509454528295817473155035220547847841917396013844370134386994791627288974044464961746134558166791350099600020720995184608778391580850195156013130427439545152196619269669614020235210404640915103553740590137164290033196159770884187540167795547693251083848365439189995109562810922667985165601119848542079773762516103240137986702029132057288445359189325685734247536519734387918449546050498437123098235273044274428046780671688739307793091680032044465299191401516966584771055890815865427991009850851244466245566441009405726423719228082597086216335688040299034354328291993579227538605681967007188651099419712204858850881561868048503316094238563182718772582241111311001526386583377593231334895889865372619564595012207781464052184234028440007303235721945751522956552145258603857174760934279334324963055061291832576636305389585680216823945693049915787132828829696638506014789681443841394065747932040937030627850667776664957406193022173490341104878574743424715296503989293379773479022201720955697935470445842539125034193713283056178101526732003360942549638628781200735880392436748236510500816221546071195670006032613702175653032133618946461754962928000893950685954992528778421029371576650690212756190168612990553401057499561638601688215023212513044907300513467247592864158762575579763901684579724301833283690609709115317211890551887380721478872907855000932985802178403081675908875151746846978629016816842463028507509233115173352803680200365232553068871558614039721534321396584385791654416395442360824680293884696472363771592645008632505899367875006643002612718008361701494323770954207651669012239471285171490368715202289608823385701517809085512658046033799193028435652426381337742611533518609522961897550003260276529169805626209927334369561985184501053209470412567380882892021677088680326096464408575932796988017274162566896756238543501313353185626947181832120077437043061957137894262990912380211917612303647449390006031993977951124060026533071707756336030301081005318217602274355608991214446697872251344499228460497078268191541304764155577934197110623095292375199828405587210757120305399414399090329527459656900986793795774375445274960431719548524618245680594033786120811184362350219549353285819942741210698349405513845260738828885674021012862975039937420827385513419162062350785832096457826717352128457324514648022739378579576514140760204219212168686580226065582063073612786386758699899185520764849856626458782611393667686407923033901770449122919523124377556613562350241245856693578877178044680981653631406185073663286391112359763612255291007731991592873615501872377824342645864452695750509419625794540473052067258873227653802180338736196710502775806307251852626031362605894236290147139020826284876429059387682205717836660025957604433791531837596656275263998756407720280381758359165674134765576871852734711841220187709110625076530586285304712291216025899429473973699988782796130759347160585951705305330393737182678307880322397649073951851116305666692037692824361149400833438279612092827057444538242467642804030047026378389465471773010496107322520974433641451668493022888376780030134324035514386208974045148980210848172187018220666927168765693001569866818686830198851580903872661304286360280062924592374233422123989552586633318699424495875281881960812358009939906569529035472364506214889910731537454314611300646273159187710413717532877038278045475212483736514613950752319497262790139179740476378693718088127909477161097885083231572245604689060687728887661254417318642767647529119542771804825196928508236349413637968108766150560356188389639622709170504543347466777980583082210004067845045645746845693779304170000989242957367447895355436184588273114889106775228965076065856456196142503348416927307416127922871955020130856125626632587569511081521279310077194790268445568382731672188487021944735010557860970408352973576449260917869283862652791834671433075731902531946275217711994297879677070182326587992537344436274407317712414912951254935729109575601469646889646428107645673167939896275070802428370555760740057241010724848079421841073115019873844893319272235084322132654749159552293943023024718799609678004861362770168113036925464130798378235340672370621690424044806638946967654313314179887499860536415858934751007248739642625484594001677372833859116234515683992017418940522459436928795622323793886518056878078617002597745477484053109552034280208580717544332697120444991883447716630831788831966003549406740908971426107023212052843983234850332153391698781599257201940391552075494503739905102354175559863852928873127943803708234751547256920332897581417919776381456898775580211556440594923579172380595281021521460900142417725342006089958075189954336149957434134304390432409216754816198492442735976829119821066876445918348079872044699312216890253423283976925315749125298235627177629544719638099459026497838975640832684888219653776885349889868395781475856186319197186698997123351153694937120725275214748721720994880193095216869257381680687079621854122115292877497232603863874710354258541760543716991693016447601494853846875541925813961006192325868181528523728357699719420091170732414837213735248968421954970743902359791228820732887976489528995551775677559590446187780667141694599610468022604037469769159782613375236925433923519320023355700097461787281447671854708670567777349460173126445789211069313279745672793315599065277328640991319926721562698755009545812313656046937156881264889851915752781213427664410673103736403851230345912210375531491652577289176678832118338406774465839449075214833423411326471476970424590414304738352059435235954474100192695915357467844990842573232415671182495609246570218098310954362809150638537684629717898381342624256799341597052028508402194263064641641726070991484279617189658084679938899742270902534643479496204691814405906825095536775437743796729086211726575976352153023487992768459517884045230798755073509870731783085894297448919204159035178917233554273619786426635207111172923336056718180324543185959644895061212240452105704374575360640510207270074104660099306912940718569522022349465351441431352718868181925230768870252809442498840613787583165236423619585581490586703883352591564100644260542287350290932177455845965338432070621279131917420609510950773182038304538847280450770002523607931922979644961522302325737006535036181057256238614559023286867168269052003458623826910221430072357114658690867977351761382541853722542158886870228873635224176413006941288477843085139345684068978939214705143829601903000689941642968256473153558260299669724601312545339757036726635985015612040210718810808015301133896520455060620130247140966289446000564697029738742690184394445568715868664724049299542428317003320453064077640319693332444805570631399761400695812569458667493275925282223363086166637033620475408237441663848579720166654862979548270681021690979730938665613139828910249014036757632094929958525381495234862114214508638285686782388831761094709791870806858848491105963732591786078115793835763855646193747922530327452091928216898743821141029333954908260780857719550013729211806106296753026469138273102432878894265805093093710171364561650035047752512485781093921570274970689766003278276571463187750477923517896028581563867755121710655003398772310784391319969512174145824869218050615323902069756836512860000021521163714045899179712946055679982439899250113894085105782672749441074483471607346549659138825427899588318903427909748273784692575589438453915304462383379341100190038157926749409151964574681694513494058099215257321894007549467346449066478788662290571853980104602353439843285021597584180423630981948223669956549727566794527936727324364718921192812593182757576381705856179529475657643048300054911175449091145576375134402530029653855125055150623507609981302190804990180651453698599560091460206194107705322979326243140115172954204279182545900695151399099531097628238918223289218404481385782074379130439845279371805619738156717480897027196114682580308403389020486167245709438385384880307432883455461231660484661203176092241769906834362580156112823481004652548354916728682288147561422191273295201354918810934367274824018093557061431921285521649002014056717851615683129785898041045895559949837299895378643530114704397363977317264840944357745354232749453504175434126630525982481109428402033039077743089104986502263654514023435215533079574871896700808903048907174743253273155613593596953417915798534359504277664836583257654966941551491993051538257330456857344310676996060331837624616555994436852901468057877053392857279866727007625781489038186053130454212494081486819729118601265448709482042256095550069884507432554514742733150909989968016607163278686378910909972289794301647971484078927601490192509235322431190461879365323335294266678466093040157582095534034109546845761565931906258998107128690137475607191376400219389058925604542820530122011638259000014222992813299547724943876880801860634974866619561045537560776702304896884771493555937574637988817991622947839734259377155609945688094500078395774780851409761149584498203556835311819700114139163365287411557765106703867415369716194604975893422637949472666506131040512293315590382804556798523368576074372461707065741477993940817789586757494311753008585564385632712730480868603138549843311832724586742974469886011989429540269089340800770112485420039716645933474447028534449711317423458579905611493464233279573675158156808829390700928039136697231252441658344535593353254014592743650805900941238902321314015754911526279720631524678562070682566430070972777078743475816544730916824333650336325383495444265787104916701519255040756228325090320591907546628831298452348406476364158400130483779522965221253729570549154982769912828109126778462395583947954215125644456784760059396862531751698789234480270952765830255251028533273919380419688215212130548500687555291616140005176094417067881195458371609583737652449748334436665626619177020622695896436397741331811501428820560550835494014498670937401734995030985679213303158960332785157992034167870205967050335611150069115180902799877036419814531722556926544075316752392560580243007741083094945341281476644713300283725724818882766768025894120590476762413177457331851990775800473109473514282257548921263901185251276482727921077769671256605025222594242673453505104827871780586765202464621931453044821633344209404129440032108413634890203718359890648462907720017903199236565424339507977042090979740447378069831510655749775894798471737166950683463943902285061324406211338764686263380161451913912074690930085993603334460709829080657916598911547409557392386645532143402567087920787096949807515102216786718908232581355081714042762914239306601633933917752884557764073362805500711658212004197512561065729181014095236075067634085162483373101088830378901222689649906699493933643277758596466188807396114238283940634028426820595963362925716565254891230788650855622136663618300166840681172563669903022863519627935035709467401422509492537045532521554422352174627727321075047166492538377066799965588701666006427009601102975543364602401094307616924421919183724892105927695542487686320396220218258509038754274597405607857129629723829688182704359033625417378445691886018214585819793058646359216563791651084283529234734691172811881175637604517465411816561636642254455256223284708656434080759713162692876154332522448028167103115084549812138762829126116986836442073377394841983045187545993672885744648808735642591825926414324943404775290257911249731481278693121644370750287236416130977119332714865418014622866066200760508276080786003813945026979691636953002211178514977128956629871329511578923412019180010094497882077827111352998283905523015555589959102215618631820029235056022283415369440384138335719450172059420782354665047816250182183496822134898935622379923585729162954090652178201436179017842207666811246277612900812646796251824073560722878086972350248314109904034306414713835930055563861605572515412361665521462275357467235008218521803318990186460090483429136467748761208701644739189480412201551724096577390769061243856315233625585158055090935189179858261084902427486375863435978491519974561177251235949825515853373054570157778615921963167869646872348322681162733452571477093216576888084668332816587639823744392830851586847642272099273208573162595766588297990522365025458857733754089981842374126371552650838340419595381967055816365005736830123729864196346437643410550374508403217148304358779605467555415166651835219609263682877913410055994911026522463608692361830313397888961632909836839846393352415167151102204168972452498016373892150178084113215891608775540710912312145291157943845494044401121326370067146815655119326125229773561785967626040472486795690294042179776167544053687076588654691887341904159261257093003352247090422061725328243498050122880816433500705406958837281062591912236094279920778458465542804148006351322381267467434012978777221283343882355701515755852915074854811209446302697328656546286272340019882015100958925687475136487942235192401637635078017956826406716712876077883346716124293023279758030629685640001641671501814386200777732166483270947208480439174632295233761638102330089543161724884011006297093916473944898834472280035681379063734432692371202908451427158089990067681505456963516821762323357208053363772512427371428922332092939199896613898452340520216872756892599922383039409176842576632194275798526628801950240339259959472276359790422159893626219190049944897787641771708019215106324259966800307204626069335630243800316477963282238789253970938417643580224941935001304228983172588351580877746098841204905685430264794126450827656165157778002285262778043241358958042896821997039554863656784983212504663128383554562145127734990452226200792365596355411126834338736530628131143115436985067229426002987405995487971042562627682559808914492311092733727076429361230953719070446325429733854899594092692835856917891326628920463182565103226128998649408141166324485313226768349512324537368157792444162247797708248342388949208022685780795558852101032234298480131580501162350479352321563227787171837847657247844243012046146308807190249687995182987809133518874077401298800659582144609155017229414430982041510640676244722011149561460743228735144495619147731253340290637722567248105217247444978296526671685231347244603765838136958418308489643215352090039518029176810618934168754325020791030544976388011201874428319431399958323214022491506939494849875640901111031604383685666146071103164670042536275156785309827500075731633221848801918865067241730346118619949446752736114503207553558418878235127218087720659040035701323804068725305285478739922000137805584488276387152766153535193867381150371839446941105738135286216116511161448599889102422297031008376078406267052262380726357337303426752671258072282949175780373672613575678157365628323710607490388474432390726992656959152494470794837136526908241104724249067471448318239414769608529452963832222744071424779999223048388535711317111362779419435157579167797870973443334369258879459780800340895560032449651861648708371949821231843542135057661349053129885867727987030488775802778516251421993475868908069756880252098247667040120201950770807927024476619197731355052174432314755817402786437328392953746722836457350601324632641459003517379202689044299580440317582997401130431764628158722868069087471553113112026750438389512044492331273233527388661012779065634592133074179447733623070932319856006929040222452818833662610314188289276699424916283620723125927942112453190950348023376584447744458574045596447246182129886054047629843704098654268666999444442615517269247713434196904453593372333627460798513502733413576904520018289936429834795473586163982625569591811324501520113821749847511509741272406366227740430655593443231468476421470687561688864795145051822392376105410942912190473785200836673911580570163583292814180671858052192218636408089519034049371181265463168020899992716932256401527497275173225602660608319105696860870102752402316318264086513816674636001155370361539951914115391784270439223640430159844807727854362664522039250107414511442333421270362333107931203776831587937171550308796183825894174976569423205215460857398331372204072827437078259106177901335306782482027648550976381123570366091973650341262643460566474473602889662242759327716508910834133099892957493426754006952736750208412399256470197444253432043990196701964033678642674655125576980786179655724249666450866399879498845936914285628649168709691995883024254743261548615557749678653702274926229777740508692151185569449590772145445773050441425994002044124634854685770216720886561146562737937765175976007077170486132944668205839978485285118332282401924871931936990652215947494847058080851877326741194635555854376506304212798737326949393247615615340829939054227458220990902746688860188190328431297004625313916903267300813009306482227340147999630252412992939769115927672082671382328925128721511823116296659208992381725319240649484449950735491526029152238283172675189699377528662387910702148937052637885244237123536924101740260667729227474925018657250092187956051568757857067677262424706320768298253127409477802345944155485113480798020411797275590794352086952706121768268256382262857213002877415786694122504551512156635319939310674497681518498283759083676365386449501989510548758226981578505632493481086634313930632518321932882964087962862178958055730568575424361725723591441817001901976540419692801638515218478347378080348056015114507326511214109899048017762196348490020708065203972425787755852880863911912849244669270394436251478827703527593184487403472546840936696142106794695357312662965753462898881596702451599597379573602107016464027273548300098635353076769282783907202354518454556165385877023956996111844691785060828109671227428571393283940081677221275753531925776263001653544509268176942133543390113652954100694500581636904852337292845869986907329947140996344787314508210952561715085872251823861337813645552801173720724122196923957223219761073237906113211266124870025414265102657589412939193021697968747550572629671818034446600336818189993485234134245933131967428578765587188581782457390331970563938461307136480154443326333125168923736306877077849084803327199245757711279994256715371122722299165715060243249489058841286254317071917947354562287192976851680895483445404303892021114913867256757295836947655638843942921894374272590244083049750649771220328351276310363146148689104537561330160750385845533590894428545340002604093721624237286335433794153347342297703346781009117682255278992941792140619394325391494536868538564778255221978554949698316198928578913460313682059730823082588393373808726433616235889346447608356507219688553025680384068566540328513514619460238676246771833504268943771328861575091338916821424346353352652100624141941558001889885242103276901152430188015937396818868416835773319209815143478793301681472979791167200179292746127394077461928018376942720338509615412840938919728189140592851745095918332283718535964486277096124322057778725370740723679093708846525350713295941361176289613553287050024180853713132987225188934841578346887677891826728011016911490247224302065906202211432143706035133468075044823549208135508356480543957800412514853335081226816902902062566556282797088971812380982914223030178887656543673044501426986502707828896055421656870595239904766024290105068006960157841091627562462917991939891051300122965763174192974869702795823871190834379459755511565854872448388134299932003606815547314377575667713113143844097699034513108516082402232652786615753154357760534284363868501486995398294321189186925037710978833378195780223244607607317672849712759605284610796713261373411836898003932645483928532162316182800250693044258325915368638553667637239381702173185007801724196339316939719205476995096341426496243039304143520656367544772464380530945779116124168490636539896166304028164735592966731774502335438061751302347246362831200318742833144836190069112991613503176721843198744425527044251192698627800761521836605856882073126395018033411992069410849520918987091900303044159149082916026877598196398504364306763520365037655926293243872390071355173561079448993049949351097608340503298975304355434656470868231369369235808427754265225609349732851924595390229749012706290177271080657115506786352605123172834141892224069875847432000800203720549630176820384824762501421657392725518123207631087184414343509814132700303540380544415042926595742062368584258445628625414638612079902135619995163697465441566861178065525212741349543547212947955614126216276327865021150891773929519472078452371719540240891152299056328389108073234152557228343131776967080315561794795154682982566630755812336866918128519936885518116219188864135906508003551804840158171748467217769996094178670244141583498570065409743963368776926714841972907921649135381423836477891086617252533839885853726992323179619079504173337620335592735030543786683000637416052025207740397006547572539179220442422652117525554650887938975642229667066932601681048878644392343045483970612215980009144932179120958612022977901729877031633981985145455039821280921431096819029746885831520196987490614176560571741423861014756848132196671843953516950160324476547661585352036551670170938877591395281742058627572579948594089663095327808972776170949547105637908156769336074973643203977171270102786900923271073774246719380015815492263677332619761643668845195270352829890803798660257773399093201096783021848911128139355258128027680774850747431398806188245593147587163034083909719739043713012474829901644793740841618241391542380707568642287577605786001165620943043265641450226667925627746494565068221518704175073376997628952088532865245258670265186533934493553163651303706175479962276598356982351588479476790794753981202485397662262803721844881637599427864839142496773315944819217025672362186178065406087629198347947146145892247381989592638221520995501754964431876910233988446172586842195719052860364715993507743945568699557099616433970424131783659325531003093912841975052877924147783328870192813389881441092352555614759577277650066704098268421568260438576466148319076280388392614736721791950667110765517371864612207922409447546274978763420077043306866285177917607017815625546472652731386480288050903182222826624067391119570144793373309898716871919845573455625158413597286173263770106446716080067695907217144291695935189203051979586670689875058562318441919217134728541118448546595226920016702829662665688706292888528428678753893509936138597176982438009218488339310457066735413277650292846236425317755284245686967634499030035048616869502871926713285835033860129610283769203176034037994288101955145276946217887342678318578753659561725021187863829541410560327471324821873716649700783212555926460253077335097819510174857969684358635070816610087975391373987230041226325603109565208587172641429921558086377084431276986282536671862352011283760379074777531804655125038923558073369898731537079594131642439275133661157788190004644915733337749170197895045240658381222843953723817575038666977511119482280227078800797532033934914926468741733588674606075021088846938081798135817739013486907301199965073565886029675326419128951229728736312350248680341960404097903831480730193539899195663290313448828680730341507699321390160420372601917853391857115239914042955459991148840656742874214725340775180729315582364495813617158222128519693530809563683594530156636859830625346614392903749591885804628678189167711384129915646820409979002477303926595861570578759347135195182702126153303411643345411628511931604955360819202059541223057290378725360363309857665036499006024739100652515335116083523214388894835555678585467450144323859678007793342224598364238379216856150408285254801551616515878880618979089786604161779256376575932395258906037908682190293786628179932735944256661943967888349093643542292162233311324873634747830798537075520081645792204565627681506208654998512929825669371392910804286817805975433818185377405199054458342163585644131573308711718945685994961430667076615075810586867681979706266471309311880381623976482449216365790286628811095956978516508458527721317618305183544214612823725371150277677705680940868012808046699176058183602207696181292580540510956837302403421150297260963383756036505449553512331227060402091548034555431555534806866470979264294252739147069134720265500887911230802684359748438531135658852454268333810838015239790087738839898547115041056022425839402158540142467821828796716319777455973712146922580363478500174795297440130681540449820330214749256100307766185649847143718705674478884649196513369578655959384679153600315251767155977427816861019732645606351985655875725396419235944534065995400116906753049208704273892649173919295092574974842396623640890365390892892811216879530356398967470302556641014184706454111912272738192540020510807847862226934713632264569846834362259191358311373391042376135062899762709987481878837205925805508963061399368631762563146259534482745892886582410913999845039573819714803632590358090336538605060377973578451452560186216800041487343452541566230942650879884351652893991409293800287445067704694514817997797221100196941575203840460113414046333939071860766433836234834220231443532042501284161330396050316235132575194792692511790181896751433043819630707297433450308787173450875072033904636906833585418579473246935808577643911658803670152043987201528464733248800510796670398917467208564449750553197272868677636139344656173628495205441781502189667886515621540860373336191505173601956401249915328741494506441878141032063955286347892802442968776523791363217039033300349801580193704480658490201004907645236749782347960227201474013376714842662133558260705891267699824930838229624174271693182306623576567610130858951608832233925348323510093900161323763450740042239041114679940300366711760490696496128942285363475689578533838298788551132656377599407983556810042914215143222381205158572635305193412793507401624178014392738226352366041598295416692411601991957400848288289972052345473489599370169052576887989699664833035022926490450829824954815204786333771341705379016594798401157237153629473279080037220807742286651206566131014764860936749479774955273364279582116709121723637000902300128341339393479343559525466034667004402187507370889032606071716582034929333804449917280912880146876463029395239247824245564860859122416872997159526356558165749917910602103388947342817341310099916645809603312335476717062229949606838625866852861025092058303947097471093685350599100903055293234554302346033316814933440773627514604572127383875238287106115738014949773972288852453098610855163869888972731436024358075919227855402481699662125611462376225061226562381660816187796820653739534388451995915611386083638465596287090289414012640875119857097003259995630634222284837668063110311455769672232507876232675351264446106925104298846320273991428123527122918712822998399175758796101055942247629484123269712116199397093211550254174804651265677156726240437327400455592002035797362059422441654651010858788210713165446832989741094349850962769026015827181355108320828527194533133245843337970091135190251603648357274084167949221427312828476774671156990980194053492756857334917022603409116561366093862692514141183385345405831031513649536402809869405828301519203069640565037776840818426329304085730246045299531554294988076116356440987518900241554518235320004697078426361674086882988896538488833364681282496133112832250965253948124097061037095754847646726130567162301629982313872090447781037169409910043150444030521695583399757105531335977708440984954025814681621136005104000563126034234341322126933079500358729411977472884236490409853944819520130615043951348369603419754650702556705061108731061680168801915166817170539188740683761049202602395299593586262495987095282024045741886860057310621952276563129628258449472798439177933601731050002350388283980501068223722314089732341175558533371049728724835991764683575696991075644609505959482115560471112984869450088839975961239767619381485663191821297530057511580591489949298028861591708818818505602564680736681750819949721970445223651856942576495871446326108026748069979139967344756428557656795164847219306888312173172186525331554999126335006886899169803349886096489258870445081127651625982528061797810757322386864880353650360355016886702309371747132685639222821399994988820575448831556206004669621652338177662759276810812180185439635433280320222594099202423865683499220802925244498385634656199013288656333091550290699354806750465253603943720042688265442297268812948503548329189491659336302466381961904184314187032657721152771554765717528479503156128346402045936042623741399641974545492481009418994300326290022317897679985798393053377451651457348862541867296271103094120329997875465176984620134067108688502442551025562004219683832004206439156005346247457974622274929449317763869260563493873249781662921171286044280964215278809468685499839381280555389075870381555890850447580519885794160249834642281154900523131909411203839278954998397919222454598022593376030482247541585126594475619300276480486587537824841964644760823188282362345265119179475826342518692328931119192488471855416959332724483886366364181428949491914331759250582252525924034527252200005371194010426854021383103523987129349836011982170839119386410255583254338374791850893447696530959969895607656803965566972734789109879404465283709820720055272164500513180995849489752644674994985432283156896869118563484093249859183793137914855545817754964560512924807426583108776670092643402099930790894985356591536718297178450431497262185267758043662489313385674202298660448163421139295923076982571716961364851390668284841425980637226510796124541586067798358816928108205284270196051326790244316678789238837410130465777899305082099842347026845061901350746561760281278438187433818370262599788815230240930399862216107237943235218686494149968642472913030497860719261215261616654472358739927247880808422981069120640207892373152572385621803915544324945378354191551236798514251900539935257188232372692440415214809709131329935473751244761602764158830761563994242726282869724823558313695365446974639391900084488284407827991992084949290456599927895119345448790387686385586848963013880810102385684779909361960243548688708748943902685096139000873018698982870259776009401215925923267353059117004658258677677626837339122366963391940527371705143847012155381167276853550552248361807903625081763175405424408568494573825928763781362853908485076516182964804967520851344757401075548636635746553890186073847611513120077538358812114046401894604781012503225296192759374475780610345302260035008250907161573205067043622328765869800114915557675304815786671225937130973706555922809349780132153101082341631069409136727705425094512491262561587765590662617192082173046730377504089535627742527180652246965865647316596247959853769317941079482975291939437641095262167929990900504322143052772003326613972064277530857789888213803173996565940386374367457026576166074667126636210484766246891825080351320595605979529068617618004520760101339843140560116970160451681104064221780334708260140652768090350790149997795978529629251928881572201256360211051770815624731171748749567381080924776072570461961585269529260159894979690666610895724655218401720926563494974636483024894086923990961397675527659736602293193149843195135036264603226090288144674167335703199110671182021114301775590494684156742418318288650421513390085099628814965539410002806454994829993670874950036847682206654408329444709938922140099808319827159528874515121655698053152167448927399002089355640777527121809650591460838288237814656160129523224675822907231512119436211526349128926255755386523564554230927829148477037789952884771524920770272335300913613616093655129356449111673280136297844564851750830986879827490193717526839466181587342254360477370137134630766145864163523271410903254678987583947150227941442761592163362928793577244044164306825494487658179218876717479442935715665127207396745417455407601515193583525975755485400233343490801557450656663402851077122196182482342362429836951412703810361353094002939376953163409813223243116537513966138949064781399571889995417637679554342819160327226371593373220738899322121346606089644328609214833791780299683187062544715512280883048020010530544850253082737411085489144063802081919516667525668638294999760796472542415813704339356218106692879669886812113275687461814206197565561667827238775385189168984561279485266626653877667822460772298167467361600356107587329288984121015841258740103125035402178641523464881170309453319566960502156350577403133478922502885006972872710280847587834456793651809568731599808817787438904310087118322928592444170348369839468918310776615981641394336264208299216266583588284936738184114545420341287170967492321037838930294770639341062990227229968333700780148916030099420906388912551304251182430313925305982881288785270941462225462206311022430020065316761751453966003213761229081768101045924624252656306623653591716429260403160699362194965176804915351269222789340983212954182574486732014091466275453412117107199275929503389994876724970207536196935503050550178588533752443847780590989049204959271372847516884729265323273551560803077768414533339092526599170410257799716520846609190322970509824976715222586245963749189343567230160002781650092450786820384587329127543146809952188431353563036424236418331697099601260444461130994079400648002848428770372652871356473137766254124258478047286794102886940770553206019550718657479758758695242835267577110798643992203564437742737417592108250090104101404882179488255698331084625080097927140999915096105957590403015827781389704450423884801636754229425547880526209459518519910031778953228246072748512782337606838840151603870595817555327422589225483593985331891963447794633893755950568502012108328793451583132751718943351442691530307416322286961974125133894496082081048638912318199307077695097316530605441146966843846780313603609832819251906503903029475616471964866317305382723408638239230944598988592604491312439742981029717059311663097261271095140754916694465116791613939250681936429754491479312539137337545997656985895349716078834855321343562961017188351578847436405546411459155831620212117017369286447682346633113985467958751602141394668657369816887916074778556008625982407686786429235333160962002295491240872141693072090545018361757572319019264689706408871834937601790163257846614329659258045163670428003764179370184840896196194062095702438425578231114937921059396847177968806012147273756039089239608396322360060043952608484593635324495211355374847760476934001459399393669747507362728113877789671239471720858904061154680767060080077836881304541083526153600434148156398877908481098747134298197398213218031761755899868469748849508279032325886325295627665431896516630179693360883374254213213199531407627924509663897331684582517296434993356139545314651622776945510251276333650283008178919731871567151795188146711780882486751671318713970438737039935974544346859350390565409721562550137043067200480951943506355269386754123786887265266160249066007949169259758273196633815622738933688770222076151981966010524431562881831447111418781038313682220996518086404397024518073787014922679745284670915495875003539752846075749028921733489166791033911943991744649137670872266573106870397287390524705474211961963219894392842200018583292991123497825999121693622737285618907177658871271477707062941633734603335696363948957475316075345586126583849531508702482601584153808988893118315696953667919751816830802764932795366596667509680029104977372023299785915299497751880753718806429075866567761607915765372911316039320689562158414449771566340656586248967590113750829455991946611815068514743641060258473863002656126609515885531407633046736819716554238871757344302565122554153409064530062268211001597546343746904666542432871005947771493481999963658571148433390069213908979252115986595712852301989794601675542020869240570629230366875165821883140742488130393523275848553318869253569201371689871310305343691777741080895784726025575232696599991690381177946586558182942794311980726408762682580610125564216420837813395571904193478732980144182057275729575533170616486961703431272943633178434584339339546702957884700000714040001600069089702695613521356678507537479311312177523516482105563691209023495016610120759817682368371300578436271131582597092100728748981310663469339085745298216202631866158239951712733637661485729524230048823052340692604262384535008688707802699927243521530979241340214331539854678532198644129119285602058859181287439640237859492919996984444160878436525044315314484488743245518526864010598705901841982410708773696033990127196134714418390475574425896230636255234366513480412196899032025497514389143378525667809139889354839575340586683628851589218756919080017938349926891245050023945168581897481453054659856993922651053898489286456942149858636638480016226986768020600921157455732057011741519700110726292865428626634856067605638156853967740805740535157794077620606882273622726148779241142242655765853715733809802242626008507904736422706195729452799817136762082529105618511565146352070749230220457507492863352939686664696029674088970342284659495197432628483025740491795271645332438526288379867849671919705231947263419033485655713594320799319321916022612045711801120359017225728773747925547104397073949587152558017190091652730636294045493282121625927855321133600106688593433538270989253243904117706167753827904804942466133369015725798178214652337764478637217455117835121141386621868912563854575309565673976403238875255627066675077359903335269782388282126988269071997321244644275391264944481162602271086894504678554578919573366544352756189683528865016762551779340465779813837844924715363679168749310636212262398259002800886681676043600773637332950531282058378216695375940439941811611879692560255428986012078037881080546169918111940178818890810116446897257008676819613925011255379512986874823337329517701011450746568116664582402261298906036066063772697438361043122503009781499867412632485005796557102375177127200346923339612068451744418463823371419383621643482105224705717569299227715243753411109513684455136020658502986466101873754546088286473979520932385769138244044678174482163701895020612702663013903484453507408678586005953822863473616188717039460353011258604342654093040807838298065565935488173161494347880432641235912639113838404119590241341678416418665141732722366123443493915733549562597230023305017317167140209143803844318982464870447870593959775725883840541195466585980105957852400833908238186408092121222454561360901630021303445461081782825982088816824442549263004847182437671147731482634718773303857826925798569421299920686305432671293409038674313004253044808729310528069006780448086417865613714391407348304142717108124665980892587206768704000995604262528719737755984258279743624113349529827228745575233537270874894858470564968340411635214156452274461050252031742121935592903432643626406644484376379720899050560009772337544782992401707249626309196654118259447958124407393576723254220072456638508864938933255501858072510191056099430121240316451520792100911934180316505326681755834986994583623198362612098706721341584981285999224482724388107109685416975782599122548222158858643569768267406281340297683090042129772665971579600406952808886589044057498178601260669512644189284018861452512682528728175961440848010759728402970995302781355286347036443867425256685094035750465316666433682312678360389495648087690164637196093590092470540575667057186200813684725554831074302308689948886922284844365828320697636270990516470184557359199315430411712695015419432403616790417125690242774153112343101168599986006167362719599433181884571104337036556985856625469124809977228022852838776282867260447206963943183588825947343603029197051096304584061309606700014733820950374030855383545485736427215375986484681498598040014418865898682446648588268240922216709633238040956036328817819388805126378494619063151260135695602383461860670583745115813505088899690192435762730253151613153487818041137161455168743907630650392078461785976315066165179537576390673931861115511353419549496970950372973175725309014313764909181817560556892238028390078543928400390744069004122644733807016154484122380429210570777809907209318036642050699132159751752039283217979409763486393401494881477344916390032575868449799038658281562687666736265296681781590880972396485071155004380396749929276374356871210921847702920343742223991542851835205177042276885253286205958316597986979919227365317461222323705094949045522626091868793291434487422326292305111776215861027685586698635711229906408199301255911506299219127182408364594746682722082501964157858256528793954417126611356698830425383472523661441502334929738334317927326248908684890190708034817234069828924961677756571854753262073278331600307260882880215448888932470797333083627427110777293258272072864785887455467759472704807186102880545521988003158117725201398161699315517930809180052921564281651378062186799047310394665637199540117406773551872684097400095246358142335595071636802193974372261917835419413944473766447034802054235822864225449019883944099393628520866143756775430034566851060135319001505852495107010469400412746615491912584864399190432102463431448896799712789713324566717415016497119651039946563277207643984095162805422383939381047075021130719016455886832984006199087219311393690736554554525763052326479987558532934521261665675405722337864056828408016681563777835318219218519704546352165915531061847816385947690863956925033642745347533311672785681006778229624983987479698407488235050826554204693721565088514840850434490491504186756463235555722099658828255261835483658891619819150049617392634995236688958023409341122780553909886669827980251184104120760763148921945592452769475552853819825815697807982805013359542070221724337529124107400323510976235203721951970695883092235181147495899483682756014817445785951982703113758656636561254695574116845139805982570510667965098087406554915513996883545968189022094331793484242428535665429643397237109369963758666680605460528782937868017673767531374328273490360984109483214745522171331712950456108120587362350543245518086477949722732431762481615363852355064169125017500182211522117383894098226262659511779590545217637153796210416553412436708330454757257969353416082966219395722791025854071723040105107758295870298450582313469394282416657668243496915312358806647834560537144683745202399604160831164825628444351104733039220168756520390545199192380469886955126299759403258171374828338165698132075320806336490230071214303087460658953834077695248777772718095691594556390776620632189001609128433713388661202237105624925105861410975531259988247904265146861967223785370762131574969492063609022150834270062471536008739457961227700638648045696836770706137513793122709334609305360056938725750144166424657871800577544142743529296189516369944108607642271692904904637756664086753271921988120143898099863994611910507586906644249667443309383230457572521835754362156273575098542528388853073764562907398588108571462651166031784369907423923013808612718876802069899770068208460234688047349812673624880794496617801615721886858315430462534063738159427391804331942874051247113971621396891651936722709589976685682417202268289303962762002812065706669451364066933589320213815496895337146465083334320029362876229880934186978893013868612068362194290795117120634797645564225437801519180785454773337437940080460098911524667711463772356333363194646189628422095742506883040476279059954758710703177946488824497407647297596273016840793573602161773500617142979008349499122778634726934282597672858622588826055190304553168564467835905561598003650540733357662614022841511942036412922715097369002051671289257031563451269047230727317922597680845946013588227931033057752027199695987789312601904555274500918531241506206447701059981487385073222203345615454794454299037306992052120858382795967248284494810368198008302198390785353720385981295442964252680756575566215999260861773508974006855676596589955312137011579343304058788661555768493220662552211228071523624918761478509630862646126039680144592835021101156050545417933898051080597072001643340005967573009008034590281542264480797447143389791982477623928849349604493840098564533524299523833858839321465105083342262323299671863125249510708146548112746959115797864448548357426614669555019796933563582798591684283216214302397897810543251421148652651663247419124816858666318451022077583666162890769632149708813636329104951452744211712183391518136075837173188516458796875482350058511436379477276733317631929325186547861476484519919196459156366474001075918363806566345078347747247160319089109115767021606238745980993249999606151399751041342335958910476194707308954756313468799400733084538191050331823517671929292078960854869740574407634609703537694247611483560182555525043598940270726132354667669503562677489596040814896223173267644212556703439706738288707754583375005980110952967159002422208034016985882942541252189629569924127841498021664701229466200608139812165705553402430700404131385123045794925180252471695283195214634209431864356392173252506053732223467743712493368248344337740003546563287227481290533589496844017609837855355861984640759645339573310359230368892641983788965522502823263335641831117143765118536323917608563062725517225745898775570312638094906854172191841120741760288354979778608225352776540667104006167305823895139351378359327636488570607065123714909230476755079912550674515153478317706517748459010344925152583618190579937020935962131684242180847118883932396972054322313125212834944514593728681819564453573390034898852752346549571034073444100193803188941072210495502046231303363596570581284512133253913029003626105624989466524212922623436649965723191865757200474518345419375596332895981195451031614548439735456291732825062364493083461236683341531826941748553760831544614039171606055123253631266733997366928509783990453001100288509855731656237623745635691714148635964559637832082838786356171458767698095979693098440921005297182799007887189344605237212796810471603105270022452242350682552509509780304905990025061298638717861267863952674661498062999443911800740516808708780758873265890706790466350655063276975225508006376255165952850934832143807201949685168751688676147045882335966272485763916456339483593497411622801494906737942362433737052245713075439685811770755574290791849511823984886699235024952386149136843099861199934595773082710170715404408684411298250678881925107021013271717332590783293587095568176102802953942017883315173446078600440570624083079970037270284924691616191545814427144283643763007163038606116294408851492329734386571854416074914799177692565286037506785539195746383586624203526222399891253750510303372441948099431390648032217758958111358325615280918095829911188790681989805147676941123561660325473646533531390557966047716136732843975862906148812065424631289553052816188444245718540714154445877731957901846616249375454789572637905302758848917980909043568203178776981581352553347685086570270375009789371588915571321652748854096602788152985532334381377660757078496829731448267987042472345156718089728078400613004735625235536183761975712097352903566039538278887049522324565618924107345396564237140284478412262162676177980933282513403441783172522708634216342677856674395496997483954229566156285006634532667128859261710995032509596911466230535759220228814460757284932154844334112416348104005923905242968755321259534012241988539175508287516067347994414332510177772249100346205227192314516049459897747742180407471572796020776144980298950028014506716754086172368157017631513744506187312866315711214806184733654164021783580397672170202904075323651089418221845591477740993502002263040865660501397447678724997792288674518008821391336511355978786607991591130186262582822701202488450914314509139019346528104461808067653434335160214534830963013922881180265193189988482581280756330384382970750858154516498155961072100786915975561867274581809412349819817930105914856020674002186258879060328880858349171867211945586839701945470525030602326701358429441660410873462894915892560820154567117773731594180041459388440483646710593944234649925806373822987403307135113664011317330129186458883356327955628380275615738873886656089765312467071109305726892853834451175460176833374465942312260265453318688302290136848071893212108902833254793832449550300350441362397859114995336439678231568252182611448001018036129083563688093424657787334775212022513516398242530986089206494507305265611034203287974865118729602616776531682016126611708595004162710938886943348569143895103964385354378772096186942088989531514797781144444162822928423216314686126042949851430205188083143333522856903956256868317571963121233553005095396416200261397293537130968554830700716846726861902902205684087763292993758824832704426821327854344695092127948508587510660399013480939618165673371634404345890127091465436094627210581283253706609257372014537991340691294384844772961081579476682299170866750622186537348333554589808716746048529140503175366080003610899910109848715438167939527060604924118614346693844342425532041576203887521178204262180081564145204808414517453939381361943340967126343833086946257085779074505511003980571211249524220795652683835179128240787333245570999175740345997649579130198466777422091632322736781910645432806663700433029464150941980121036577485313499647101772363444188207429778531908838939468784268168279930095599502212731541375424257042672824455142587624689190542229910470984968583746684756159896557349810822992817589569982778099125041739301824161005555655941635106187007632119353882825116171281033978088776281713737080151630998986000614811141574367356993260271025639147042520180501842547065450110877038076129665656330521720835159572143459969759833355871619443477057348720204894282623686793186659854506827600036491704290352818519292969627317652829083362161734384524356451295474068330471567664497310156197878127865543852196770473240710053562892209296024159891575703626488593160763831630507884004634971023478573903117302044180798653650429894699252921838841292121010070864897683912125625519626673974914699241857360715844348059147218096797112046310972429979781821098336223492947437508465289704799498023584264297938861245281000588706838468641250335854787208426539626177847742310013129912355224475097780787424270670169487091346713521703798540722233379037056280625476109295152159476635133661030345544568500435681552059733025389741399409531270446991099826836512816028385987207215197757464246587556427212682434476670986539591202055690973852755424908927041418224183829603975045266477400359789351005714685500778196141203003566711725387653492776815871867126846421776216951460368379865567046225976634482220392961471447443131089390567888993162984776481411456776061611608588757168020423522222722157551942513286855063162512743448614630757459864070863674071319542562228854964613119391257814559049571422540155444111280618527724524391127207874635505251232275223871896677530237973855839183106726791469504338593249315106266086301556066518028817368019590590100008846954968010562565918714426505642715367968889826300630724805391948092944053973612876314937727050285976524337993019351507811231381652640664801455644116792309934649422521054128103784098925543260586095117682784641283042069192983082748515464376835831142426406917712115025282405300580296419618370955129683168828036776463228061963338934247900372338030048857613511127446361622109938127442452103753779142486841326507420481445194008492089304868582089280527223963991746278625232313516746945042236230989281565903985479555617238525215489779604589779211741458887905848172475494058298514991562140824081535291902131837052413802248402393941066693593241848571229029024319938994360094703504186474192324203657598431050856219215508922803037732642877054417614167944679244009437535784003225111706433080293684860578864390497031356478406711622950717096307457710055423426479802922997167441331587849970999038080702741455360646438268202546649165447730262208484980476857578650975393286098883552619804952303009492278085738610237301440873818229004443822326628087382448038882160158448662028998116144285441022074304457341208215923414453227902778087936181331253717873989287994881654389551581644887023791486652410128010863710297261271772560421375552315169904852817002789963801315013187450627300427025390929544584755725407465010394414000072795174534115080486919228492041755169367868845057045971391692453731711824100778325800162316963284920697101538483216365244637820201711540154162967293477199120146537892070121403193198461033919128531491795558721169254751575848683968659169065594032453309941230581567921882778812918741336770120276215441498858601953504647423475627124240027451007835341140196646288635803814913088553060017767842964008788882682913490043456400218770965303589626508574567576805993710975511278448883885664695271592015866519266277371335412177827725272332267523014940253134490403264881514491745781696683785579247904493617042800623127538077938098793016575763850968712352658309506690303185527804387254148406087041042864718507494052702164970910687447254392313244087132237116963834209455732694998233550726775339712371939372287771983271276993647286043936193045501030717644869327429491660839839702768242747917385027620453570024089731270581424928205153830030775430661436988745522666780005178029848147197299100703303909515081528625234021495370659695175205096269476219912516805865709989071299476864293382101146161188323804441674303668489833592155377438152976300177526367465423624985309297344384807336228110708567754262174938108864855952040756834744852684695064389550728841556542354360761677520084167813639013037613035822155239780757530389678631718910272766186422286784460799514799409800364187337988186845805065637888925188797741234414814372439413617802655767278900098246681794336209722015451323876703184946481743824642624025606143157270182537031666021772529869110103606277639539121462046673465709138861556978552345505735364965223282277508352611657466629751272128399268818466376392271958148149753453008119285437924599149257214178356605344858383201098969857023356614335431577032639545808264844140142378092010042255302968878907648331161173013919033009397751721202379944666239282947270145393143363049334016292308112374489672001258244224706419856892350971297192042000249801342702915388517385312308036171633626355079288786366522890836513599410529779321958438447603589938270561773516346106923042246456805639895233923732957049496388963585650332813070026606893982007784568544402923589581657937532482460078470294480986646576242495318717873955274307433170938375317950589438071655574150163180170016567641658318976621534870218645091427010631503078267074838008446597145300111560836782586733348343112537074429681770501515253702999805759926014251196937357642349328177550478305636204115711889616242316497789820094444054378297169686373428874729607616007208311430391234229341830045703052097064739642967863489983144202637878302878613530393195388811634655538070402026426640458933717863146741230517458992322832065902066398438677906472218186745347211532919956983183598297371668710410404377647302629784604768990132271173568595274510663904523430482231003547521093816437404060045688849080418775802388359091878238043125512373334890466973748113351688086145397901402588313920790674151829056884800376704661731628738409878785924031910993752842137800523324416809335770519857484608319119787219984263461399716237982020753937987051734289137511188880470087341014743487272798482834824838396958794039383580333710541413116315625156196783364205793384694534611962677700258589673774446575593825719916882857867652589346827739109296438826136870192444736864305396485902387262277843410857993029733085726925575103760342127075953709103472821466550107860666018801650272781874353394388836689333067226912897969527842662230014630892697481763777060021538680905509051740801064326379060913976459145435765687330680426856776406665003578097094036109055644574360673039585207037633341609148970402039710956165273389161902915948683751293643020279775614452993019516431627102923298615904730058733534084074114029609640663869921522903587171892846854508643291310988237328052459287012974933553327733032744348056658388212286370735676471997703117135293789269049203883319961498086607260766856579300423696760119074835508971681927689110579325260139254989655695277823642510269425967724568014232502606913505393344051615884459628038723498042045193975995001746207054074642262644776779379651556724601240779292284955153846406431785893028679106870828741951462419058361943204211891535187118287343869767818425222658653975801669436383442318218154406372345475122049294678204751906513695325570910316779700436930918789369840903692743322639811978154125954458551226143031570483769185696191703805961726924281248956974903599483675179488133134455805217605967395962845396290642840601045334780199373695446541256566337008339347640655481960178897321388180456590293263437036586342501333554935126166493352209827899030823705813588411812356260018900040021708479940379123286779130963743593545179794578184977270068305612158751309708035397981574741000987835447082860623927603216095127724552172373391620421843847063541787358169643084047338625776223469252753316889761264308489441869221839245248370212337236455133720216714763413727837696032283846783798257759279360810147953946982872047247229907802564759242337078202520542491076739908567886154763445784372871813901088418152309093807156331498355582720393780251087589181238653769685303826190617136332160305748701505845476932072649090544084867013357037855325345260705405221397728592806855017645534371184478197397005922178198888421579054142003306290552120954774735349800439742611010593713165649671724829723097211096547150547520608799837331324210363043430841430884430157108664665785580925256406504063838383668632856782667704194011603983799471515095280395947237210146383911538655838075222574913711752823563077812839224385820284818350451526841158755083126757025408474843730559026140539262201382733318298275318568243036808146444838023332144817767372163926107269543803117271389777584487972736851592557260924174412416146310795323015753606438609324307325523890150970568537653168131206570976911099892974725924833153056751673244356482634866551100916939110864631767331042904324483502521382258304971085197994383895266636531621795639977261038009580606510139142198932280817561824115125950034045406874618296141544710236041409664557921414298939286700587181322716197049898835890726302215917013840364339431500573351564499668479385516491698517572944680920658328433725952307221040487889809296488327682150022793420704644338704345853891005818472483103705007103183855297644920812643620545871468846619238207267744485661699876012184365625907238667030758527093590616146074909354954843956826312692277941881551464185055963667867965136345595603168612607586047240258706728163003034709645908122646400667564326952956962926465290761590654184000771075663242207468407535531716727498337837406197402526254324031108079527186642298899840575873643244401156838144667392834172960432527722856169838435048363414749602966485475971675938263248812152681894452219153268832941133785681138048398093529020481867114028745200858735039421474905775838887791678421377708956128030205167917656703645093318983505566703379819375694384135482578338157933465211260393160544074294209262078380467117965679206122123293255290361901714649159741306467039705040410052128169581560312989369973951207223075778382527302386028399952367830827492984556099958937843016850453051483936424987454098419695684755509901599259052936129221348363758911488811482054146615474175182986250910320958280781656742896494787935220214735694522545121171446112287681597407604564482567800056331949558753985142594896929956069935005997189440560405711070488824207127243558148508842306870612246530539134632402797531817348359578537835328056407142289482928437598796798867782197225696947174639449440856071368246453004085194119495842410186879280765555396757142174426739026450880837580469641336381831046853640563327471696136342874232001820851386872690572031508712471465129976626063571343321572610993931056524769997313836802587904035305484489680162837157160904591069695092439747694178800634978284311036985151251087436286806525733801129293967036160083494546989147623519616908861339729630724223237444540175291684120477014420986816683097746906373584849933067474914986578004843874017248216406502399005321447927741705950333670818838732736735268582588900016735262050298473842158182553585248317813295172973999773623985423783155067170128422651717733032596496826523151589002921270406542553867071565807900976310988907072092005415192294079786444319692017777925398229762343785192689801039471158096750239329475875416402548383244381619404739734462152202575826990846019972243479331910005738718069837052249951516070738905467171106128369773021569175324103840759262148025942784155013310314938943557459153298621803155549410367728871365840471637003251261962518300812741722914538327063420193946491704759773607279591718463353828020764588078014524365842110856485789080875431880484811406686755808114196715237337981851758369481769390334808346568083774418380038005094060268170955001877168799741021059197375306838245434610218989368742147795489123238067025295771671849934412882906213082436443542526166260249724599489389841606234426910861847786050443883402676184500851962448400039334856757618094861343132892642430904422829049829370826065664936620725199948379599176781434008138943367541134007072311438800199466555344940084593966746721753397817232724456071855780637969025600004220040880005399755481891857849124216257586973132179666575834188788086728857752024738318130737235530795606348954017891728917096198689186943572755377533531912579185880302380723713094025343511684410862833485330167083169703036867237303269323331177633290327496418689159200313244125744924953420016681684014729476231553426976661988592385734981633013594589293224435619500461707029355967446201935089057503034285923146410757221352960780228981339099067782638640105314855584300379476247380272045674145313966898941267692469847965623848299288467660649193035738053357865148761339509762582192262428174759213605149596698783619983697921302844496080388835137482918205022128296823738653034200784965306051870980301972100248125920166197520286673079662127007552531467929263570857729753709839872177424160000729334281347823317851698248836991497621168146060454197078437295503897037683947920448198325902036282467696002962186728460967013033110292363967827184357724582399770342606937362127034315064656511967496487502217633300096901789421807694125028731839386470883873811100950481406013234674525038464357840470438026082752048469168471137888502203347395001249378235028136507183791026396121361169479990266048474077651756476190051608984394147287112796314324184222914836991006158737342043752782675669384593208614872581442209261750762175020936657064703407217293795716434270665637532380929527410604046398850047464265858603329307437168154593238242834763813315870671126559093254163286977176025134750815442073469582196248537415594630550666505571146690996940465006986494312902519545663555788804130366035150624624012758535347776843415309480913288447021461821717599880210007706644445522267674213024536220697197172702781756268317606376171562260246157130654959784429835594196722219930335530526731840719477862814465080481949952682968788296041361634504199162460349974958743238634704782830515514874802361137610515796536410992343651756008527624060628757594661934708619660284822744805945465663074330994725729137332609433096397305821703704042029411473279974543938728431091810737550980117971285802428650881652894751715171648726539927233861637471295585140891684861585686716449022598563479338384304797802854845492686449738231666857278237235976009108433194914318234730607673302151510076591490592613140124277480909021064917471890954452067265228393758417333757170157339834910183966766216092584814193014590421545236250034645072906780442666034414030395554920252148863811170527074572071415165949994374999165551624553939767398144485321893191990991582125646451385135343337516080675509587527715283793886552995688005231432263472445317772337636497494048724544377993539216055462279810280217744537795238890535490934290056282079022034848147613118563689274561860737898136470366899072409892795274465007301915384264641703138131732489605895201738971509655949337154266933731104483104928870214373494043408185212795918798425119204117903025787376636685434955534305118123659975260480906797637270130389764095735364912751178070823918885274133886340617073193156217115314628859172245491753260103438787577453392466108286805084819169969761662302201663619450246089226376463238645237986310028163093727023636424739899652627929887525177971271338868180748685861370229406657355807291369772451465761173214118618280228592452843756192790800564124815725216374261885589653969303101954920965861544646481491123086477444382257281010924721986669589572410957567519871670748443656153478994920209941735805043321750697256120462160685976523990747700443459113967451293365353035261892340141435537442331316896096627228090696810649914467384354099936391964325070004409296097288381324266117790183839407946500163580220362779487863913461675626699492767429386916099130166753400948291427821808387240820442649199842698352284247404476706331000175707397882776996101954960019737464067845777916275453325723876416349024686793477592708966250641900802504776469849641506055107419355655105290584341545717786204782137156069266460138396323529162728885813098101115708693977231632853373414904985155921460882842529522944181702159128828585199714886566563640564254332739291784135763860510642353900095090548921463310181376167340088862227001617522386256947694263951184500870584863772265582529063219894166146325061083646816751546613699844669882312330865811267585888080378997882359577455017326449470541060000428768120557035531303887462657633718253024330555459945674831624296902830318288784643172645526476075606338679612400632309046632215563254854828501337740640758831072692935091931204879688850792783347802998186113952707811919499871814240175443539876158291196144338651991857423586855018832386779594276040317991905343752438118724059029108777025917512081871878423251923548809458517402959905616143601101616556248483336687941213866416933665329236115045416085459350348066603493337669092781294593474160024965868974546621668613682788452441448027704951847979317840225267319473971044342475705848283955752240323740406694858302423597688224548176570818301640570546477232558735733779576318379991354714937300785624707162496644669026270145321592824528978397891171655570922922648939732716380006766233457714080074202477574080056607360875372150450718595883026668613055563476292885567141479109812889848500445352772609142650498441362126133876382468399562273676146077524654045377202395751458590839296794193117530828705129162768525152241832277644788607270602198544545159697011020946796419097550286892537881480266318265955598929308962797177748331298591844789205272208580585508140400319384555680615204874308371216280177497000978943810825635714772994361238751881151908946049694887274557250277491525496533856589246952627001388501235808203479157832811240389152098613475958995141909005398104430618512839484166987363699571457369226833242443474692597302211235893943044607247940933164101844973696233873065251217624776337141821856815170111946601322979739494743295598745163603026798468804664313490685841805327362572582582114679676304269367605079687220769411721263276370438987829801445066450959602012413456585567145368020443415769899558448886199136200421330303044526970277996366100210011752700187191114940572904700133838705908948775713178688547148954491623328394782493078271686943818957523766536023041870370443514367151757730232627386089775713773794698289814492488843494905181853486840836980369298190277130474561051503756310792793289115431923555133009356048077267847138157518044460996335200622242645466245004066401131440049718733028508686629691793148053051157327426425944112670873537852726660813281885125815287019064721741986436330598898575433967724589295154228660454787509090111477962286833009676822950270905859139097435842795178921080518007883140781373136519005112881553698199708813459093721662464086086445411333836065511376915560386832839584882776529813570738267020836223753490863688768618594024775442765357744376078346830964040344942575528699145645753258777482519105942921000993267150210796225985472046438910321639037381963101638545815295237747529109540501211603545151090882522843898504776015949244955794619222091779871866861132188875410479560072970560735896655703288766189374710954867376909561475465801287761573089692233688193593424772418275493253228637051691786770174823002714278767129477684050667773152433068613739812850526035267578625561839259568967080829771161094625184551852030852357748376643917510814560504232810615584797742165071210439602876039268675924891929073500004868809650585884324507320707631859436907628578471501437952065737421704340045488462229097246351383770799470279727368114003219785183197719872026005106437110693878642243846711745007765857571969745153244380279355201884982520613833658142015004598269767629454129925918463169539191747103961096973479473584178389479524875367922636456313715559457674023189214607307223473393914586604852539832002405672738263639231498084810823038672776007983615812820028875431968419751765914523101442847047409943342491206397133303891823465110324458545834058497009460262259659974586366711224199057495628860003210060377836879960657906143278736531388874980336155336210809501983970058667776313161251099807186988189688288267551063008276433717181092238503666447209969491820773416453335303141361490433577787904101338935211395910522463248678511129683556701901066707327754486900272857407902191799202036225897664220889524086249788279554663847093171954771338249131059109239829370387872136070466220088840615536637232930125212493511474562209940975917907135697449173070486353093448349144951482423128468967892950391476711819788339518589476001481209051387247606500672826954721749580012585433666777972895354115436416767970778077812913084482659237442726349688747478928118984479578658575406796007075363093661051504526062418554770145395160137167895103510639325235840069119217863720512931250592888654474292802874246198157802191055825905581489068722297435818790891743717150864739584303104899145283228085576764180971396816372416750041762336197138450688605962577789173406917559652565783868345603383821194927827220722726119148003324287225768683529910500680083572987141053610802766928453772877940239088718975693798716846549127354901654223239612331091406274518833548039202233373353625234321770933935679234833262930887151461109108570625347699729145446346685243748902542309805381376288480001276775039785941812096513420520494135622167977565706128996628040767912794327209452817512776764916288099081249060809418443162396184121099632246810036885056929863262731925896841676568556931875766530467649609043790848249872133714937869818024676486305470952314403850965910266061398783198448709879559588056347196078809830162225502623265630778659836200185936285712523929853104539035228455803657011180146537863518530189699977866883842450311188918894428343642093781257892482172200303374075655975690691361897929289002132285695727722770213480716624364116783634364193100983458504188491693853612955043646201747261467006902817054325416094226873629566071310914446134130766392801470117425053231501867767626147769424703311942665933381446473781617244074410349926041933501335192287328288621746952825867647361340845812334693144374512886721912806690053265561764217354769814001575430898291234586753561488733530871324778853342835143824980824546619590277339951097592318257520254034906746631435524452537669413925386115602349388895259555008668582211637951078401156154123776612146681892916859189147606293577232004169842491244718441324205740845837303648121123700097467602341562854327534349803828065923294816802631054034906886247654886824569392080286597441202676788545505510658430944264379338224998583916041792215319526532423665292966240158421879299834513213660063440715592739932747051282722485553930434922732088815447736815270912954585185117951628273458894663569728306788095027403173869614851413005536551286820175291299226783811756658203787855073338289299081683662361880199622150000164368246259772180631676515028741168111686822691643511456756743061963306670098595650261559447047976114533294329456539755211943680844829868410514795110968121321503106313096370690435546674078000747781884758057923914279477682996465911109658833059070516458138578407476746409545842798689990674863795171074345904439046942968209662404620469809356919171307978850229668826320773048613573946134963743107177657560688935191952676462892930514206140881266190173897761769641652402901237441857006481942799675221489747050106416246162335390998037422807546599204512814464003786193261899427807886417841169479088103222207099351950942619446743738522709131989209453188373141093363695070233843346633943788229376178035990965221842301479260494561233461720923580286535430680616560680694837815376932127595492556573799534373348360030657816718025832729427007648381036362865302965441210008265414688884180842509443037210700781217155293318410636479945347231384252785303085177891191138210200323321680378192336942924813076217634145667532031322958623655835390943766052362506976970045368715676295631114385728292138828877495581328983444769854425572621043238300374614862268600898967611146525493632637138011886894712542392627598543293367376306045526794209211725438245067716253742678804866632092042976154581362645310795678938701989240880777921143148785657357003768439023391925900592077403673045106925594297162419975774131482541759863204701160774087422694802020687433560853389000031139102757787660738665988204609574496080617306336488979423945835110109492209111578006333631771350761769944145072589495841617546216165068835815501725861665616600792043294581217333529797712360826341795220730029151781383608004684157453025397389841032367474310032183270878334866261902585775784050738103286436288569853613420377074988895029882712210254093182295442743700576054129672147934025432554111903686660369491451940958289327477010564326088574815061798579092456174071633192178607898796950979239991751109602004564992443584475425414723988105618868610318747350696671125335405464540306780919349316976457190972926147785138025676325111640494012902526227813952141184131168455778442515019339429879829215430197188062834202668763103669565610029240533931750394648839048846905723805831732872132612557209577526081631152742046770142959247111186387984578936588819938683223377981076662346550542242724598820560564379058857517910896658782729817636457124589674873013872071309684283716238185051038912470855029224709822634030022316831999584557501136118608374848116956878475538536288110827470561252726087008088440712497588966281985389763716928232273718004427811886360823031024650891993307739619530142596386634299954799328117295243350979235381682773764133201984805296665870211374771970169403335686293212677388225823266388655621393174015101797268495357438777107880396668935709496716348525389070396521375378983476894790128972572312947110876766887990299044727968444859486072485894522699718410013585583673771390781213857308429306005110158834855201777397383183245067896775823933745891466230874812083216336736403812956095275017442877886562336565049999866189628479552652280272329818728517412549627781156592195046312874968652229300465410477865439465337802817651780567538902702700813182778184832741397712846444509618851118664416960981990292124427398799368602169897602974205569018245936592528478115187476766941168142335860370451587762146009166654421047911037958853527264961078335186743405394731421747589642947587304216598701619089383462625714190549436523353419011988530801996996780405860240360594157882505780046136884195468177173474421562491970037991001574072997628194455615813756365750644024101967812283920763261056698879137276301028528502327785594407360759629163428362602711177973150597891350599713390548980810640241756045042048782940631173342539198745832700997039073319588936331550825620956123921870780467083562988893118686571852683018817611816659377491424738807367899042608810441393816792948230873056017680470743983174663350122036757742789662886181546551028311185190126519253938620569713445202947137306422399601096252167994560419481867785357291283032744000540012767844785645436881964380375195606031460019459712280335071523606443099870028128674646749498773280241038482791710866252772628198458062961223847857268047765731202097647374986017402103065795902536414134902434558013970741808752115467430245060116625404624706117294508689062189302105949414093271074422420619201941513239520113971642943422143823349423597616218213470819042480236297827338530609945697840588209475574140352364945837842202531416663610876915400645986679189103214644410577299534730452031489198397774247925982648747981334912518120431456937295489612140921774888608024243611404148733558494783800632850853231151946929669442587456096624236655723548019311024425006148723009982553121594156946268400236125889260885588578814251806242408439444956908003072723172287383448721501166209855500181951853839504920347116702626965631788424457830212099183534816259031595156438976292698089546728616864182286304792137087173885067241571829329900623008033934179877711487086212962354901178314160220260185229564475478628074894151476989714120612999927141981690400753312160787605764225844598726602336729164650785262886683444236913858627488835176640366971513044929611833907933249414145152920310602234125555298717076663638836582859837337505868645795262660974782250896434440179969692556919865779152034416386960347195847298740940556016256194141490472618579642751456878148022715323297737674179278821929724681513883431723220569119865510675863755898060462759991686618923992219123503817312569344980405695795918559774480732060634445080851376801755357660264872145362473741251755853834619134455363052387367960857816727908723098234282303213577621921745108432818051667989098288983941995022956762391480050742139323608050629398426619042399703027711788443479655883227172399103870839786665224808330195897766817327396653980409953665429761892225374433857521142347795467983007467272243268943413872972446072134772836818317556387824230702798098195598085249713912154418894301209903637994879528033167243471985891198067030212855266733444675595056295566527079955603333134477906267446423103692257612726959794639300044781131538476008288010634470984871409219606190165049925450805442668586421559200504995080629131626747641311400981085087876300215747009472879078898560773720577027797070644536841133485735737323470451282490057720737746555232994448893474436879365149649272972838343253224982081302144576847473267316933491836976616605502178023403227746966744020312091031623418855116329509872898856520310797291436162734330313852456454779704030756366419697636203058157298583936260324317785729175954746680204428049630804165735109002391989343774218336587902121798008323779162352889999349404123520176317914519989346855734480194287833129185157899989994875940924419668672405699862052155874356081827347618735303563070530847633212329045477833537928764588368704151693168979007964967824356348088670824122077763811370612641051609665151981129178114758500722009118081503773914040539216351136699521484976745089913011684090527834389800094874250790189985855677133987420788841718753625318835042211818224985411326949791203245395281220043227267281225750868529965543995504338543103236160559191261594652851305481201024764386146559062533065423186564603900329747962436492255846272038153019216441520284589841371061579175341188152711930043741099606255039346002946728948611441045742809776406915926511158858758939257995831467438909518085820747754143053743446024338849417450299103050216648492691445840664779987726246538274141361160986556999212753599865292995397801458706198950972452968670888096715609898172997133403735120344498103035289352761331065656628719911497444875167463732281562202442862611300942798087165435767974020081448542277771816741315389908193568291164921133940502501551355207871614165359439034379457231160577841247727976458436752239448890863594830968278008129494922490007010107799015440822501956055732225819633415931824733446572990168003403307161084290024771450936159576860018705794813064649826581147611767704618331835392446315490422821686998010927266432922768744284952910564163339500707530989108854998881593797242337871477827854029507212463439366531826048783016440227514738540373555354117629130490396307270459065567225811886158089003519032926554754714083033778917306620362402081654087780637304602911114149254415804868897425252829126924196499960343367674948536489986221880866363676317622788781311291572133324768151926135012880083660627346326503609721475063073814230226733104578429929470374675439443635045244449230914614492182670850835024532070022098608410024068594111995744541107511472527004241480655705690204192972689969258505694450544444324621099075654583704986682914006345408960628489550298886883704869210800287408786001792424026291781876785136506155196674988352309620644105945815282805157736674103717969600674421311742168759046272449555624451028751616336353884865443138227373149512879390018842717647833313479407704249209373473435640606058113776627496225519997815137041247930256924757143880235386768204291638781753984617460558547342256910061958699853725436113662110342922711699535531401850077515883330671082652531473440484982953810308410685887797972152219062987180403655001909393951801593830826590626834535552043644314810190342871724663442971595743713210620929067165581626946308106394219379318178218552043092075381730919052683501232742009472336564869510143715298772434615638205711711688119845445525589956247571277097242933490670536033820792461286255131903004972825975724262028678743714607704212097996750664835960878867817318255694283018422685232170112078857661420044201924041541709211080502289077786181200839802683825046795075387018802734893962506895769144074128801813412119792628604877900068864302967659419493353149413394906174056290386213584623333763044944326143018127176377612139029492112758026453942827259549605883303086906793670546548140319271527813140128860236645430533974577092237980407205630369326749566298199876161024749504051714794404254161937196579124800466365855219743916593466321945806297674029193452134063265791266234566992137190828829991367934897468112268122140050412168492704389082849058628920180299564915031602869253759517604232921631166242541792484593599804961365649859564576403026686037268634061327319205288007063040012198890650157216631200767509612727954400342412079150959132102903723466716652496371751946784866373160975051640007289848342251263183562033721919657975264834078823943243395147312660881920889579440480427400754855094553075917161788054191714047605932647897592780358351931730582761924092601080206813277097013250420869753880854897738595465769811903360358397151608635007807338226593253639423207788009200442099517013202383186180132526906664500733230684921897363419320258458152049818164113179932647040828539406405494079815024603702649931703182449021219767124330951040946951257679691738357609333394246510881856701392061499438104734919167563632585878395609898821183824208780519945320780183866330384045737394134830183191753437926013190507456795157407964340819938570776125015969307528860258381195388823105672300611232745717969222022699235594305914894067337441107136001892933076204709835529772292757159294936910000174660415795382238962786864508374553971952017846583481327874936847524231651482709370804604707642731798820556580642718644528463902508244082926189793503465617082661742534346132544858486060322090355221566342598305057362208099901749053466636801542506673355021115590695207304294351127178713883394187860157835677441864765891659319265975881379062213725456808972972409196299580209559185031879429744839468359926974435330241732849007819806059431882495697924471621581882334161857929584234612230953764620039474395043303645388711231996330860687392354548642929344672788108758752577451724669681331351701991375889493250369535163421840570425300763921889557818281591557865377798372986058286356086343801134240329611758210059240619492502864103496284584686250808903136125523329693650463545950806558281685850234224961804521792246339323817370653857886720113506093784401729651692939718455948493616459200847697960680744571850364611859399322484339306686928807196254259603258207742358906488176117448187243151587152133696619676272243427992332761444094454614363985658571237761439010617814486944241004775373132717122006977744676232616378808643920072309572258576533550355353675395259204182774101643111678171604908395049031909004946752739529757347234815358854168080148893762177611142454926275906301476746115403725142766038698215050234456423664402505333387183216787480080510097535129047027213297211195920988006512775756274658055763477080123093534795203214732919693444345782560799739865865017839380752083545089836311408712560405630187310476003872149586350856577960599985994150712530141279663050030345293765562473641886098988201897122466986978045569016010657248398811483461993839311592461545796592240037982726520063612791287187166452404251149853881575907330884524165108795790914291126378038008561457298651485933761506005940173286787242838953902597205771060515375124610573316548817069831984491611385934533246661048758168742001968498955035767525282063913902058574883148498774538059715073236022938597161788334865653656438139739359180074089394764606859329610520087710358095364308575595436926221421958540484155642956945294748842060093466930248421833310713609973715157441157483066516668849371849322903199898941606073104227188360655853108309461273520172705611266995999035912174864160263949769243595268552012557202476468475336630871786186238093790881688313800680456015719437066314345650247133087170995159665117010870243015927479116525031258164393976329885783840464834157433697959785667181358073007292683209414389992718619401920299056983553409854650043598238995353304684359190682886117944996952251861839446173568962407967236746474069302995807809664497277015573024317974234256176987633576929370280852318551334703498154119271466620548213887098766472751275527537812458587532220328752042751772388203939686855628518201263412814812154644873130029371440163284600874246178458249625511508720369336548062467187855645099566645415702992493345654244243720866386523855528426346403840481482914277791080129889225370703302405165088955827081337930994573614741770983256083330466934919169287126095946279764322039304956513648392503436660980732778322838030074194611565340171989470349000130735486887992682391470658648371931449248783258261369815058436653374781864678577732433847455643542598310498979660213514828661924577380965796535812840607849178097754104208857736449466080625432754403763518683538544987822260516133688821688789133703009502601086650615892746179234709633612464516746801479910562205760665471288135393937296837291156135116158816862389586773220364619076382845860892596085146299000804510617416171216063952473783250900896705966698832740163647436312917061274728883462737437761754229504469262396923610535923380623753826221335975021598104406293488010312884534238201453381255153648719256305338999913990251916199298662547691031892630072225318983706023595070503495171276329285297535504526120843409493942497321301889109364124022619356168530667003788432212998411144049359164280457715116104590258445120600954319605177691000011429347844284487494306762751131684641486930336923587869001801302352138547700574091352598206655315204591006010521596074202830786312057260371224866799235190794769536352840453850003934793320700442618605632981110361446131074882437050604180131558746947316919088441384859350753553157612573681303339420646723182950892257949394364274794738067698896505132439717872750675564892661715795981535222941086020175184918050886161377109424129962380688181752869695442184974333519425140062042254669435980015849472648555075906666535054802120382154735897966777126067909172012022361768872697816700443365708128963088822770803048188662261824452750783019913874244961978404993680610182514485964965483951348518767836221105024211404159889197348257976264267013851515871624298925827376680695208957599406293461320597912731476308977021881585065495126174218281508404588349875669922030514013491852137372855288461992781014806961364846854538190933123336182891760985122279330559504076978184532187025168670405090376355980113559356746653089223720249611876170351372450439647768591028612378531941959470179392803863500806966131055246505866262550489860752412710813674284776664040666129356249662742676895020184953334160551638520140566775899827551817884862188450911213748142499200900657424649381393516677040861038625539404802868818890206235099411156421742135371167740032054120288257402761965831663286482316116932428161126080270801087695545523670078760250274124759044420835763997568707877194647265999908896170124133540332255763804553005901360429560856054625165266426223025662864025998204360202437776838581805084804493658686040067800617486337103874142574334157530958615970057291020098320001175855314021721258561813387191923254320259409224063571358241068469532368620448656076131829664929267503047480879152477776772229259027437413957966390452352145482370589115014750834909368008235614901847095872359155736446409229799880007992327639519179047677914864563113688238260868428872365756677949596744217315242647113811602988251564530975828430571107432364729505880764719239361632264554251913594545611572736103711082459777764954843934117304357711059955806343207991693187499362187574491657164672828823250544397656351161673653127539877582039019495773649951747351788518922390865038231361490058284167445693094873794062539955637283864659418772172854598254047928986535166535509165785438482512229803380492376252927092614955927811386330273682173953527805724858219046989638921924884818541844048686109228440217628154633056555577545848709191457286455429057567352723767404527020622404103249545042946999447889097237672422234713970624423869322637194790642112235774995312427989087121202659111402768242730275051853606051311256048639110711327599871439362975186800425419187245751483564508493816312525807069164425027737887561458333334686641464903325160462910384975385085173739222360295659087648545250445072293023972595706877248802403424918611223331566630809007715388593706653560235052996011355996312520892335024327503361461569260166125768204527140172082216654721313127466263363661953754693757725429823866382160077154406066753181382368307662261826730963189208677468312620490531361295985528264847823984855542749457819475341849337867262866434422925021012528654995801204776452739448398643187224346503578967530097653593054070696089739799577123414990084086558963076605614206381821994718999824033292962104041810890369718903443077275880083939039258919959290779635144792798614262098391622465706579881479070493820777965332207258891831674138139468739313330848559541329874926879824178262109299782344817706376362370417379383724242940114138586669836888884928419771057677846355592691446489384320551222094980098829404112790865379960044402586328908345703232410815866665007506559986097104342100845111720828005438723347670876586497269894772980906067830166752084884794533526758634799548951992136494302813781539337076557205518152037136878120588063520031273404498308989027813975725286173011407617107945313672408456596052190410105294207816913646340431237520293546450872927441800679632214878866624144087062833968026754884491538777025130541227854980267781172609284682766061812354161986683775900537816611822772716848844198042340072836292361741194027467597602835066141476435056735121736261968085360125020812274624435710630893769364934603226612886579170733728378350656142970176570282331406055418425857710248165812059080669895768449652671201834917274335261268078704129559593498519127266649187595038033013764056628678369629385434206834631077744916959068034780159806045267759142181312805953208683526284205394014514371581098369084670696376216958216422992278825884378110313189382830837959782177705213459143559526239884187512616877145654533766739680029700090903645000190252293755218663525703454192717817951977153963809646728952857798522406516757118370047826647954641091516777494895927369182699926103655128429902396302697734011748293923620010778591808078131094751873006314108028454621091544734392698722732520577521713217850930768040829830574590354029764715216088855455311497567444522755859245038785227294127393153614232862330974736193508734527161383892816617923364285217163461906680804073493940560013049180652335625000349641062848608757043083023329285003936029544133892943047260388123278597627407845414428089387523768696559517987221002438991633386427501015925725869583526491924680541870491866429974786455659464979565244685151669062276295199686577715071658925108811042006645886179536083712736073515671370941575920774793416732959639181709290453793185066828647499803764160645813706143895890880199798085339504227446089560591516155307551478127652818026707262973862787523629811419179612438166578180624569577132156291064219177418800863074109645572743637911977224777812008310637531589104997919285510797449314301567321458839882659795404316569360239290074228019956416304452963265302683843701824546267773097369027041025946864469759262396512064723530055507494124207960429596583122957743575400433877309948369351952427019765648462500119202723994975300950533835253349691864799782330722447199412624020154723631871280025328963180493346604834409862949370183383207623882626353816124733378692087550179323065782460725219500537664247575343764495861622999337320944052171312538033770240744974314046197294032125889705813902709182185614835368632963062223401282845140505037049832569196881382392308924478977398602551064010055014248215981336461534059881075922949421409199897022674185608634015579260641941090811669523068958248937949214399054798506433859123948469506643262636700348132015844360032409536041811310104254790065115803094505239322642716731922324128085510275595433087294533627899700861202247003688682508778170569009155846072049391289115813957491849626847476789157154334572771869215021483767442181802227165919029748628640513669360903738752976692895585688080092799730387705115419610702558261554362069966859494555829980807194780409714869518519215526018119563837238402435655341298439667395888212627982759925257171357369234768647748186712131099790145461304869560735995152591702954092363050833964648387534567741683236675418241101478444429753195638049463735583367627071699162531253811494260888407296062298345377585051597371464945830455490254250028421257213711205159034721689802515349002867031259789720623534944031074979026087410081336770546668954360489357392728906629003406524001941610405553147509992319529569508966752937067190639831124590729201631350790027043072454266648488348616230453145202258443375676041873577073491588058178261471297007144052925374543217987223931748342820195942013653313275205553879297085743956803251009463355921779700122500297727660832250503854669772467491028100852777749603102672683771908151258966895467965880089697279447308277624330630246087638277562563208320029183233987608185478988292010698691136847416023228165209125246610223678819143872702040924764628780695949680166392936737125200901250952311150389481843007367581374531986823044149989431295641278364556467620557437687355134014441286860684103239937058247869710503526729358121231532012753141388309945406610344872737982422549125635987216506005935576267698132086702573728958914056297464036555280543988003967205282319850910664315493921804149223308041168453781385097181950080159961483216194691153675284451310686797918110713326558836880798182810007811979976374591811476588676975703779988317001685310579352381329373139688067146774332053994540028244580144128383151979960361048490940992539510665123721830507310208596864352886254323467515233083371132685922070372054522060044021323722114729790756003644791716293712437047879919491180753020621912039639212758049556654515995074621425364089120311663873127403941695130425365757643996607735486493058927586698100855041096722864752125555538344758190962935190100228716872238860263790877454098075412162857573139714553568484582079636638462472449451916282474290977102420767632160371727892557018632200069117175342870314304101921846962925341166500608900067400475322597762327684778994838119736324861668111917654728925283193061766386163581313895366797562094740834895384124264714378021039554222409807048283900146414812902069542132571336598002245175394241162468877452737998111409588756896799948712448364157236755702713922705752482610392272592962563003234677766379661925920043117870965603231623125488421484693317079677423587667428240595144969501892290592556825915434601241662193751198740237976818429032409600990141746911241240682511690959368218352511548923598713593698512432430117714177863422839161197772233691569038683065630077299682316423606475660472319040547127711931611247991858135106478851958533214517734375470598065962816253417980402139510372199170383402131486527106582669673941910681810559131633343745961987457615987733569803968063497305931518572252867329695061860300995210854672370775076227151185972387920260886744394693856064336415594903555592682950335262613230862144827676681616431021744761411981728771438958807729131668429001269951400730488632226600703510819622397722840392398318457146108486816491225087448335108931546595817081782726364666225328711540166410043314096489468236731704448553539183939404775978325894129901039130743506349683411565035631873555240605332565028428658751025281259780882346150385118380185274393002402184301872352847722691816230477691791000593023313001836538418163371057484932026517910441549834508429264667342078727646368625411674782641330445684166132814194851214436726736751825975372861188822231163413554514558280272841969225037865569294261425687447637685102948908944169303034456994612775754249131885659535078353731070106471636152855039364333339367559833860527115804731954511232213593932379350300641716478671391132903876280996291785594529361154523368496588173926685305497948034340867191656308685818005603574379687269512420314798322344146939494540475989431143826137050826569505862577530412680583725185000994081887648511488886039646620822630482080038086862079216232515063629358199434035966021401461675590469363103104691666378810889927084164947631628187697335096240414812951967312043879298939603133193556984865120279123153046844556160407275932317255972480488565614136861901788263170364174278527773853817413716337953814594148287045837710979394525721676302348031729598361107938640406688122306392648286759674787004294520706340780955137716837896211000934084075081512843998513504671406171058975389559651307472763499864259699766126433717171567846201802071952185480198709857273474271981240818438456544628098272689502130188178108000431320976102187659163434540369639019818631691246191480361753961271859533838480329794182922090366860859830459929414703307602169309111124529516378385424407705237206078222563233669432918442172386097700148159666873345568162993326818573757045731093936262818659368795120546981212124445833971010247354059010946964495677834130227649421279751869756533791026791236585717196705330454148611307777183558875925371900664313169728730556916444652301945546270918848237562977263303941461344316596817821205382742958735026951487027859114865214669828654369880558290503226693910015994666987607378876419706458619674710384355356402681953531240461067025061488585372171254502737581562520452728520436888743400026386193919221915666066158297543604703989930098525071927516446626770834203866838168546099492349270890338728811957426533737374622323436745549847999836753501748160101477672261092056594720662189043861840022842314959409464743836068328433903024183739419660187138429377912107038116543935209859505647040655813021889552192906076454203893786996380147152249140727392187957336731088022974158556469652850879767276732550394084409583605581092257711362128385977395466140727985899224487034261056506336721691578056698378063677694172913309292177372867464514467519680101661390658556678982795417669538878229758130484151307596080227613095671101257545857313568537410476632750458636134695403329176072932880102126295582833148091738669122617084839282843736078724688559937017903458703802942183068305179473791528422146529953468636098188212942326071294179311891579651263566931611746511152050777863011726398102434285150373573596251957420211828225400405946304969183029311784244868672216547959909192203682804554552566005834357506414361716561249764995175652325231970982720356292140799032926603051353028694758348806497286093611634397205047083314230938136771286190367649806016091966428619758332652200656450167640799299279915759880164247780525945428245370676952144156479423733534307165644727039598867247806620246417830835427812782786694337929715045130426967737467723263746691821415353593651224006052950370927129153765973997498722460299819556592933759016428229469608710739652182375700484647952478340253023643235227713453127422578114732672726539370087668698327007432157660841076220530797000837688607684680183684605375269861939921763715699826599378019880396595724461428483944790782795244242054625738338397827952006357310160408858063837589114785723882007190300684390971659099194501432291992309020886228175853423961899721148329376743387384797434907113697812260412338723342008553611802804186509282202842493509862749936907891621999240638094694390534084486838402018005148366084171131734799929922889076135434149439187166899069924823074343386887362105632396870905986421124148271431817886286723349815288116119576112274514363187603130308111161784530346802996595125621402953704539299315699363063382204560211476114396710364900255180446338578230050357021926183065146372407232647523523716372583110089268419021114455815510162736932002332072081715471097981214835761318566909355290095682285255853226168517196739095620324735576259023545877500006929343643980832291884203082829765431217705954491448702410560594549681595845916460634749045002910094652258307939333996135443450161713652713685965691322807340132424556930218728496619154593173182788332105680647027772562008047821706997680545712093107833213484800300857243928801860469004319909654377282029838784616591943176765385967226098549917233404700045350784101238921521868164520999250539601111076615102401170573843319884382490999685810076410026431725373378346045411036773770926106969324976687237460696296644205851681142799154209745073133511929099016359714142769849129500753490279145556894709659794956699313676181637034180163552565475446951119687303421382032805832612846959984355361044514558977087768845239227099870788786955465247289985243829046346549829333158308580291624931891316269466699779444280242411220528304313749576113873675616129346362671698141635671513493475542437950313725620203958836182048000855463910817881830692161996144018912953993682555404049362438730316645111544458125882842239300948735305696826254532709775089514228222452068824194551998423036714670466250871873661493914139942109603121907171787699906802291514419818671133706340276434515706444631443302985550191049272851964457256244610019098145781220217409545613260282442310620830913045626757929788791819232927428307409248800333705417750573679644624157377679199980588627468900798522726935772184956947907178438778834375159395171712804881509045140895928953249709913676301115271234992934386944969584787438308323346241539574104513730009086434689924571444990335098186426482326238225278309681235127486001900762795039393752549089336589453000053505805508140983719879551950057419702078754396749669063655750966641878714884568882042892161711237313683859622818618969654678530452108772058030850521695641939978614060959258880785755439328024672379968791883597333274475556633477440652937608702272934656803068092245833300092627927240785417030978780706973322195846947962512557162637742568313627500609897233901266503472402915275248734319068860698996417183662863535876281575956908580080396517112949404199748824907147353162334296147959539146782293523993192870706040989980956214415432098865741704234077231958367753229177473312967064334580087111205224380817539074564451519520087158797474108807433666321321459062762459393974516014236282334327380806917121989551463819665190330899366050411749484371928101844197894605453765898423188462280666254618267104809831627396480867727201953585462227574978524227298823141661789473883675094341582855209604659332171887920861544580785495299923321472378470635901256541135689599603236608570346377852839381289377433989220562059648954850288627296125619805062902064640666788669610748363597800113347142976887575076030524700976188460764726981749815043088825183284620473472063564850417738812669966770263905532558408561742802487806112944853897988049807951498119520805294409931623432306261768349004718419634776208742363742471043355569509668791097861924210033421574249001258269553502435538993469307760789940167820158266523140228857167575873208404775777905055631742361942192779565311474699484546187157106104894045770953798332513095680335475600117032006154455412121550411100000665810495345032617447802720502041156473376746786693598717535706327051994114393603932420850160599498310926564241096680601782599429360748862109806222522338495484086225967167508639138914465969715741645256682241849888115385172482558665030441761680118312556366486173814816371261883570450360842087634731849517406180789277984962778012243189753569757444313762909347526897430910257492486157922517756259544349409772787591549109924064876841165720602075600686679686884004144217827426062800647957544409749303543472179645236326027831485907973344837312914557255430584165064235306384623690496436269355866227540871348497205857034975151012315620887948955848798689245028934309580750772383370594344345203981410595700680197448837498064663275266979100022472352662686275619114244774471485048314092444692223106502383100582173388093575385684464561465313971125659185735966651838129145001713444655263188615286630071706002167382698624778592823835599961114232812706964423669994986766002659635159220445480498277222120157102381403380823021395843150456495010007713250017466465144156424081609676033461290939815542466268217984095854970128622121317647325563448604566720682298444901669256130743024706834553340502663534676225444096671014717085355649572783922650457925249847580751187884519664915917859092355150269513520509528704890665299239351991552330802689961969710414927327897907401164970343715138740548869628884899281953742026319612169331995012678584189288326683722557293823073498870754104341775604441890851531588703565452489533580250732470271595119648111552329041060804488563661199605428662467844929579887849163701484583372236590809150501117919377828565773137637636105211645272532521909271623012544599485736919589864191771081243101873438448200875217008444707639599554772201592774810277317471417888636371702042112885692748222623655118169390613594838661737682509370122167062223988214477360986204001527660107504546938701093389902313970506579155216854490271570694073797308051089961948439709649971982272049089611558312389177127774374623124237670617707025588618535971492195702417619714040771781008990298767723989597954815003115289576623787306303905173712680024503470783661015185009834790819381583992251397225926566677568659165516106809017893284691319777747859273395439855825167647248095379529907352861382037202784451150911003961448613277042417950967427745368246521274313599404591174266986084646568548644758583251254985504577249348416664601010798536694901929771886397515815001224554825610457237516759524542518803946122304460228260315905227926210319122569978930685371704224114751435118598770220935417722114819175236254964963999490779303066955922834368439908260021357015055500452556047485412126944545238186583112246406719452985290073811085818015084668269376114438397753445773301960344081844047485961877954684804978325603090412325539926368290462739150026415109892769907227666132956444638296634402731396083412866863592723080413490660597224633326044182417768005657004236435462261375355490128595215625543414323609037301706208564191877358830001226795035199315901945737432759902165610205301096515634781708163119371047504765387237629770105705367284696756831700190452940862981345103257328562044847592843083801092161216789114686860674192720596432188702820173441647994748745280778602451022225971690637824905054425719201190373217188157295579495939253508832401928259477806336443688833904851506097956078654566004819630179355833115715350843793617339822020643788839969216396256876174501626829675780430070636823886119574112801700025629015221309765574102554014586292236861863746769830886223352921416082102553810108771367934219167614851091857804899443609745850471712731290159537475344132048965315412965345488763174708633005362819578079092269395408357129406279247115401554211736128500761229773152421396234582392503030177694530530981044981287728853500813247450801156229737326039572089931905247636195658418722567955607031830295878383564304089864026709940579976819126800497803375584958032016074913215378756935641059472727952655307037768465897618250103741808184545660558288870236268672626166827275711319158716261066455193469636193054671888474197190991946517519175704896860612247307842045359785479660557179421522319954999337289963070056990846104733309621557512803099660612629644646834906150084987428050134725991141957836990094109993425673975805521998669399937802966921474383138728801044130571478086738173748497076151289858491990812956627135963295165336552878481955785935773220985696423393032222405863329855564090526717471416562081605286238204574701069853077768291469612942077002824609679454007681138024924344253858962465347458821458625828404319916600778644229417086967460776988048981608713200834592703399318029984848176490571459611053923962569460557338085103993016628173310398907139969003821556291479897776212150971150314110139110246250785657080612127821327554250406316033441381354064452516469222327019759786384161825983872328507265823677738521516331584003012065059830864545375490840744599405675215367645184140890398679753351058355267324563724086387566576621061482878773803171751262582036815324139421255967241740329007638491069959160806387975204547154884489679421854243336928313777616020217752303242785434205997218944705595045268715585552131480823855860265040271372212001881711790916748370183885203350518894116142852944214840592312811677433152814178551154209646034052401045178879624067101967255303491761597502247591434481808941248159205243578826376807540754254497812507347481896451555933592086447739488447692780247309280014818432202247050809364752539741599489222361897820654012817340774230716832265613225469486927581875412520735281225015449904226162047533497477748624284050956198903000521459998135272211042112077889544410302850556631417300453581192953317436672539461550508849864075899611316868484338438285536082208958888829320236581607220455234707088627338878869904749912689159689360565634299425485638763328271729271643319168180817110693552393330927761119199028756543112519040380660853622043694581558345928587229351929454425572031962604270380580349177764138081590556972687381835752261527130093392924305512141350518270403148650508499635464557073938676127687767146028930570246012529342218152387729384603194620755655748568830789551880299331531254568039269650437443055723262289402957741730865343762510699116426297621865353191886326831460230061803364374492061595338059373897951198331008255496920828589886394316159655474121882758789035051057140075475942881869724564368704454534781554641234498904681471437088612840179734107322876811059548600304973284930695313723800694533254576042363574877211345816653255328763240536030405414973722041683963213970922893526063544870272966557728040700141306918074340738533416232805812843139371448478183901768902920642593472216294688303202347696449059167861102741051130264701978072092784055459257241790486966674121690911280882682704635793785932977623583694243203709769852700976866152418348591244818976828279735283466120137690791648268413086980024087564587155989943395382369460942758168534949862387997864905115390248523084028844068940457241287586289977446603069266290519385617442297584413690267302562904157202440717395579208497253688207947308747730592523441089294209577557932114872408941524129406028296411236170683934017948588259008556470408091334272378616804700636204404710287230229249806143657028525213982733662738825334962619104129138499354549479640201272490158127081500385669279129780408237267688830499605836732043768264422947654808788279214312689004606446297507064254116364618610103534371444513291694592060066619282956268872227079680567585725139888259768000386784398678185038033007288746120244320293716417882149747917254240713486023946757464149875048630578046255827192631661109425722219730973363921015515669110997824261613674586817015719307882284995030470642127818393081259009523277307040755401663106498795883992617225961639573776370725715461327169034166435301682174964979540083694574145080997639161621891492783121684786226724441906444023542771892789233130565514287512037845726556314957775994316191522725092706176938477122145399143524549723533665137680235568457095341139942656818094118666954463857812604239084916959754996221772255322387861278983104640303824590554125524926055274386334556245249875565044108937797569675472420931454223083453177541138859750547791380992529587664047178760820918452919962598947749955154040461720628973523343958406016060697390981620760311571164691726173922560836570308255240697367226422265697512476703284457992089243419257960735825821456228383564237749450007075137743020461147299982121455519070508399867236146823975465209060244262241487754941146558465929250914372721423973452135611402321494764151132482916998339633968039777686305465888339432556582335228264740757535471485114366999130401429195374371353149271283370879030191438974570139348297696413506651430226910711386389627140608033166552832896019067371753960308932767657613190805754615102265753056462504287488810912488835992516861814438922881054736454002360510795918755878535847312966887511099815865296669778927066269630192456528047614878849044682731764477083961437963556206854352014884374673432162719658770253473489152341013320216323102990432126354240848618279439631859622936244552856180377583588736232941258232329813514249314142370418241138616539572593515762191803759521373026396021113294611296834723679795540801891472330441530358211793465614605768964432928325526182981544827954661615829794658524648122794444458256357656004551803285768001871966990061285769319368747855512217428823446497486931607656631779019049739914646316568376385957032890034176821160875837937974178105678490381033339499786633885456067772968436066689686514800917065250074241753493962568427755738776663076143987870616275314290130311851904871482408242311143120102570743359909491062923754223603162401859814243852764431396138534672915836104265113821306834528963149288374090845752237928503042098711779473599400033718622492939535782179167201496390990398563505739650915800767254931107200720412530467583572372823546124113996131513866485038902133133797049866818600471126136963810581981330201425598585161802959974771154778362012184524311972938165985048203465358788145497737238108786471649574360660969954069412666659191232038325808327388850722741512923822494960010125949156260174878241999161967470578425239521612861876649417300012599168047427865464906987875353406557809173502987892326118140181208109846804665793268976051826610907132307761780092573332042100959612401457452941953224738451288647894854135553501766262104086593404766692448322962686443819415131563614949476300188053629108906234099891476244258926566467918820039486825687687138178819198960844446626391043753898636045305656868708245763210162016715049590719160446251155653165281218060615233858432861892915816356224913354374185013032077223658179843530843516968735513216023381370668903116682259118325103575901511335361176708463502617655977955014020094998528923806705396980313636621232837175658296647994859489292220679390337039681972240614153713928835967905412900782847850111375778180913190816713050769114786273469782699982438620613408065442404142641098106555082597904126969962501900248724745903046774334729573705749128445097458807022741244875128901172456586498248107033649705860724236442418355745694227959552308053831045368304577241240294459289628716117146873341638211512201766973952616149142792274384194349957968574722800616598402911351388607190645203721564417612515642310047744655901067761056098363545615135285026495640856173557705901234739368529728323188519652573816758682863246073920980976664428269609116649950510582174929449663196031454545129042182508630467007877511683343537828227661560300047141414449817475890895335968202761963739857688818833834743115766413101355602909882667092220579637060477543993874692507473718691627162864070964725784906260804793350839152028995064967201261126541173001103778061192792865642374921840380731516728049967468240382585554086777879333321300692193959843584340432797652579164343138786617883539462148682456381343094636583113355051137060208134884913621772191001010867571110443817092657749935168129972200563134653918711394833942596526269999096575830948213166560096936997405307254322989265861227494448908853378334827881873771367490036073683657527764665647313475104610044174770849916892646602450922924358967764851959381445698489826944847177688180293479711121511822986080080149066846649626183101179425472100386133533190136598421430715569063171705800071767640657120385143906871892542231316373188412772838925469572953282543338469669004552318535638235950135466086322703859929273798276966852398318075087649483061752576363979830889764804983765360529192713862339015211329784463341969230959392782221730826303099808746368491632399818109978054749755891273776614573002724161400071333924665399473497795893252328750444784105249238636645198681088202780111696359757123813729897418213979892751090828830960893265640028368123346954785197692869375590031407293285513162795577576848772023867495009136757024907945284158037168033191199232297437119815303132094199255296463962865651596360684155557048555311091236811878005497924250307377214589985949655722566506354266152856753860954025869302185795612831872575960344824728570150318660783087948862496117912801658509072598895417878222125810405126585717683441651754735012374187322034094064754943689709001986380450338974741491638934197608009863742993356432582271509557384718683601605331383668907513398210526778766282836544420392165771380671313084018063356009356212665514644363215459370470354667675142009680706879686383715064197273487840149335630836844268307761026311198454332175933183864444955816857007490925288471764407280374270068928408347713255006007868542726938700946507632420598967240476165655927758126214227714308760332411689736110023405345440404249552974102252423658006145276590016778198020800243286349717622712456460747264668030735358153626982648995710888446099556180817572684136559803696651939760698081424034162141585196198095129522823803597189140814608421287396565858491785998433476172469052216191250521267198185165344568620022469890569469965572214610654115204062446041198225679259547492740420812478008102841842482435523040309119829104270970523059938640848029750391903078068002329147567633690385951593371459929552094667939921282312026967518805094360846215824651665337663793769971423972616661964710205507368961188371916915212972302615265948089760478747600238958168158408975399572981356833692511636049042827104924807859029681459935982192273780419179699839826229318572025778015927670345375403774407077016002902363573861619581101656853797241659340369288157474549052850526530333015814749628430154248698618014458624307979513386950917859720039188640096174240514845824938269146997718547775187033514598015619523686235862068272381697934573973630873020081222158352806349717603901837151218789891605095154712760752862814534718072889697710131855633397088278840170577713810728794017638305733491869608727563373627391096910747903023387068129246734935559436439709451995415030379352447237337907075723985173898797917186831133627414340233528468674601278905749942020218573970036744697759505947382404340441961249769823311659762631539436784903794844119914197180144058791736165951780682428521999376115734181682988813128050560603868378022684605826285472801973846426100464621167916946938702903125368468040258398609437360882897429752219404025810353615086997225759595903954131943161278271135374873349692266991335781154970982936237015858892951663725958689545443968735602688233406556677187743838758422287992292666317462208066301911707121739533135485641068818338952936237787734414630178773416949840519660747820939784438550131423200709919244172701284436368159466609042076873993582861502675964635109998931918960627792092886873278724256628341581763580983844806170017928857350531178779558415351829692574963836465327400005084890183460986046150269574614559575139913771761629210807725337120736864788845285878560888118539535771410265821445319708526412298916686318115494225670313354797429206645968227892972282464114056348456094388270869604176908965104585594662871704668422199111623035291019219650156555927991664190507508814172270420534828779094098866168190078886154232747656516223632914427562158716841241531310920741507232348849126458885932207534737422655302362435232856560113398120038299728881727825806574948422838103837960631961649193323236996590668825593252310627575415864596124113919234763685112119055016507068873788210033502390133763085873204017224644591392541980675524573583000988209910055889927863864035903878140495513191864474564736112784300481779299423249043973180679617453353414150951511329656407017045740489014234049542569260961137216909539114174841360596386234470754345461758434006156400835604522593328115602407717661848038383304858504909331779868053791126528232999861534551900961318719612825708267798032353776140114618051723785098577686484856715664174580332844470957526754393931904123590937029706802261590008308557594195499914736990032342449917346045280003577276138250515145377622947137365322004697077629699371529388818502557909507326666643727765860078287234335656480137642631112481922374645842589543757801327718224526624904792150313901092114726111060848638120423892262808094182023483693962919494004887598638840400701787707062384663705676310987947919947108335316821393906921305687515708535030859974622526564203618360799513562581171562988358303605068606332334089931866359840611535884817479518615959547928489611309383833225958460343572221282979814487423183160255936125555996732397953611482594150739495953681594633876097807485109761042182364679852316789987035939790835307601005978314113650819440767556857299105613748994238199376925492121544250300383766952549975688399329588953013730442012701762181934451088315478422274577458623460268197223626155601761639523197992540935553227428597558222353596841991062294666867719653809854898693584652303745120593675517511754736521580250365207419982716348190538466278280163617015222860556541175078109543908617468966792731115824319795916352671122864051341266711872278165804665518308302846983423569176935109922140184619212718707261547824410634640316221102171146027034933853754447180519315668345784910512853060109390444679246869317225337536895756047677737868348931321765212919779914715187426971605525213185230072630553037797978345509534575018667612330768807447167833090319066617899205613140987447045629160451942354531368992881477503925027321338008983525807105432750016013679033667795495263414840567649357681692221488977421791011746539440103630001889600725559104284627119274109088827890021984308601252089910627913016502187853003995225873992192605936558433466909989250431550187579778750343669499064775383644481223071687609824642134861052382514039246337172262683049031882336426850014509885166998084951689903593769180074712436976990814841457581865375319860862837197900391885231850583279871961387841346099175171527026262807021162101619591183903543405105254325912123745651342352729065408216870765326681049922818110015762643931837155505540406930464613462564501979664904419164532792183872083996173120174376157997552791645132068108224743727230888262433505877355736162040279654233337414909451902203668719519994920940352979734891674664977790502071301605445522888783945442767580399911104870243015755749776769368260356073398126370172719927585202421399510167371476392693110046965487206609267061053539662541501549147342153920266012603570952199387181336703341384251450788933277783974381148740532169016819410983745879586267014743285799452437353634373678513669601730252173750071948808387072801438248626879452630062391186304470776080501808913414012448704109286066001332539957512389560329489708108226802467077641996767617557604514079011963579954026005115436051284229641079275202855945874576813242153376102606129353930334219397214428191514343083264789774074266230201296069938004178319876602902094339746854936047597339326757457950384907962640361739104136355729544446881557625952348789736914701413329923409435514614002719389180418511481990792870170423777276552652205097724501346050306773837847207347541219921845387980425040364103995772940130238890074334903640027841651741078891132321088758527188894692127816571854036745838209560128468494113306047290657412978247849434962207463944645161176537898845955219673353540881805093965260908046155062763506979331581074264509074722246171835027759882478054248344520816161692577886078564395340828405529658720139306826794379674775037053761596428025914398890650058584203116284855405988479235838149289495389861443387734576455154577930766220007686878701891228643131946076775742772163894500511579843659963777983000079290189671249924399156527280686118406453147927793024517280058472124909443395656302333192550537773872005381545853705658707746457279078303105513020908586332483086377936106040445270749403180574132674985640783931096850955719314074590327156983533352999319574675815580127065645903077781304862422873869491638692637718825545694898117901028799341738367761041175735040923495414541883173902089708515001917820784781199022060178147938944154170599647718297506100530143542380421574657674530970926635306847269668111001634577887985151860689459794988329916509237870568475790761340294533407387689040704231128285749157392270794296154300933617839781704785906759045938934702964145335280007250485751269946453104640531003674341286321620379765048554554044705797412760650687356583066847659978338930429419003964025547368591302367783787190044699743685992269297145739522706335369052536322711952964391178148638428166018112604944741545528501678898979993926605905460010709169567677355928915227002262251656511897367739205127769646199417301927305927996873658116878037759672596068710664992010230585783223967413038786680232582025637376302162018678745118704922587114416862305625452973340699807767764933229651258747284347382992242125641310886442992825765828087931168684561574386453412324422229157218727128883823286809345012898029874615339983843477735025919216116162488267801289870401268864486362837758193618975488395095203951477210206435516887297133660206382419169360423738089409200735976656989891883953371063578136438687261935455482929772481887209240200300355790825064761909250085029912726314069195535594817181525308540216364967354670896079717237046915726713818463243886301009465514836876284488211450468826694546651282003375487734037250498051964971804574774879490580733208624500044537820183998345856050239112682424783343014336891838401320805209775757192562893706403251310584543644474197417715024142423404832806512554872305463785277553808122467945118857625288516752450482452541356479652775935586626967069622515358669175758035613274996304381965635880792945358337581947817161527392252738133294821039406125515665815484964572213440173299416057791722381495017037250674713743530676420317450351509359050508065139104794224077437190374667152145310620069413263466278686380030040033853735403391945602380735781998561370076404952200500064381353463576304577634928223116090676287854731648803655875421476309584648985137781758112064882456712996387094377826044979445065405996668745859316171081069354524996276679909308034110891912865208675639286678298240685395800032499016420578803702225602687173099860051848097152673193727199421537175219830033530318160428293385761166805019649071333167354237940347776646451123400625337656757030683533183879763752277588869398817812717578694901203587729477309503192927322876209797124264684258194045411119257156571603822713319397691733314501483836433252686288528993676192343963919817622773636978256461316899555047794366695475895826234875973311460091714509049313596966047612422986611325529557695273545456589770793734968668018468995268132466231871843459140815813016612928121013766801574225653767478968349363747533855012882747130985694761666802490881519481651761894984400347177447896082348455626579875762348301424563338324830006033973582774881754250235204501676712703372934156770806650771268395434952132627002617807911278198664062309729317895285391296344030958925785525617366491855589682863740507016229667050680513916790734333760244924733051957976169150521233848739589205620582436037904226391698221552692374451679437271629696388956319994188653329706374647700557044381747951971077006132080522046236872224498658894864222559356522298891037598761565196433096138038453509738807074653402749267007138889496660525002325630596575421390091889570656226278647084086400994843307264158879165588672871336434540721527783374416790367162075944630225811700990447029861572253816523707929915566531672355081847435353070006637740696168117687527831790844522052710425422676871323700780667156364614208908367545646664807034960685573433532380923813139067795980904547548066506649162060215738152277527925949882204309918245829174229954712026630186185855796152365111104381428982516510381307058461730898051780724773549189316453277827864928664039222090750519737221472113058104774008013551100133648173063031934932133622310424717058837438530832587562428135500389295828807044150980159366348982393476190330941363663688319634586992064318730507298353906445355461025599456668792264406440906199649195899889991431769212562250202799420516234606353496465072296519048300536811407178668447405520062540407451863919399752597503609862404468391632927466284411731749462988783743123344209639939814163904581493011042570411047627160757565872207221450213464667441091500787764328759666610936687878697127295051053989374495379887221320080297654328613920013647311299900146767998359547997655239748634671764500988337616086586912125059280007913097386729203930956697018470883707763324619430860432095780904311603336879181946536069640400289482666873213036578640677563614424418768109943847034405928747141798745226286223844709408265736771461432106050878316078645325089995758990865993065019967525319633912284881365723315082403027741964419018099983037136490755595924021094097640459572761035242873513187897594885911000231554694291747039332214043913187945549354708801249122452246377112248786303081119405282578506275842157541238393943137338794623078096053335228038294001723025776895905004073815336588261699282171388724491112908151844230059888485094587246766816664457578942659885281814898497910493232363815188127505962551261435364989249348592436036643506098311208986075875935303682889223804751625491489843757034498410097728946973958925322263921939648169202736966718909112954653371455163075064170822988723674631614099011858048091424496920926273552818958186340330178908604021698025388135305134501249105583299805870138000747522010268726393127702961118423827935066658595893230831839387640085361141193758556457183485657215156588676994082149981773094346534626207536842004189882654003636244646880355735973017569491283023813451321125110408320393131743864782290335333723861272961773145282978227813444878933744943592404603117612183386246044011921782971512893778142512507160237110020984273313702649991188468420802749780740422463610919222033546565643705823197910286028062801151980018117543015262558346596410418539943547814258302228591882014246106739621222781499908455602971335361458245322829931630537315131052829842750030624264087086678077342652544741942091168452354520678892502103424982429538986138169475955917062630825686357910902126471416318100524826109204865583570915715595454045943971853683122545497413836103329515924396870772261736162048489551800217347395152281279933084630152410288093825005325669379928335946181130771777195865804644977540109256765075764242194475743244637287061635868565620021124626667918536828438412108406421778474731880951708936621079796516574225387287030554510085941404475281019129099882427331575106454014120051576071913879182557062335992635248259164696268750745084422618763885130888964475258397242630900866718315031185554948777213202828638074046692223374655783405296604919458969148007752906530054092483264899387724631109808684235117725594948370594102163764043984258484674186686798531489304264094486312848771935708386220688658270608826657983330998730816491494622319510130167522704941326036275746461785598934016334835834708781266451303649122489050167717470002608893918452427219597509437234942986468261250613160560378036164386067113745525078863940093396417267336176709566761596633461957561137926506047399533173482556656633661322787121628187263713655550373425941480935325797974069866837841740870277767601277622470198773964326947768014467048300353288491721859190505017926932441404219841405593203081545199189766540699516016113582152719002537890239365587150534840105471129079236858147249248074773123445233711635852672122121124746969143844829684831206034207419550234432432842178245452874664468234067980382613664980622848075427179930770845424014604468571294487348623739866756918960942086715295991556325137406896518286227467897680360580129643927933046928804399381101189967681916561306783042691647811446648712163119492871155322162942569329323870311811215221578991772623150782796545571863464165597125860905202838543564455034092327480820080512482698308883187881677304276775767861513602232282152285274162685383131360238413037294200871193739278530162956508805592549413374725396262112349825508193599281342326110042067506615199824477666267437400244653989402927039548228730403463120371060656009618004136516483237278270865325615565273166998467685459189932812183762135815641464575901183925492699710259877032214909993554916438129213195232960037826416912013404967114917496492982008656332371408646011157344781743769594543438008597474947235481708553263426258130077493004177053176936191445361541579226655645827472910304684320181696265576118342214544433846684619042277790232766020812439850393186329928155439358137342994903657273314388578423428738614980970532246393448947672101125175201266378592745156164525933616409115944284296818631222748275515204318875740879340666739420685202251515494819185106608408931637025392403440950749892313085793990012106518175896005024514125400645165002877987918612041349079234228730963566176124797958619610796520961380377299717555090657466280683543942681883465255785889043355756156670999528112551999690613428107758688601602782985905498211555562488404202071173429284401521592364120508148076466953129289685681104093694110972176482125323540811778073919344480143695483376332114640207354488628043513194321478189141088479021348996483085730013266534089876457425348141489007736651055912508276226626120313076605968060580990802758658389359493014209876939334870676939830515088095254642621550532574548361742399731677663457604136839471926472296879967612339119730643845148989237832451125949178518320781881511710095564107159732749410712298469021887255794816796343785890556552092010968565847087456065245082759999522227695349524343098724969725949992504827338376217609945596593335108505211723162886039989217434095878848828475007971521370691821709184096964349392716647692051752164251678744384023254032511224035702955065365123586618084366784230927840830261565999581063412170918513751886658001123382463440324927003423156543371339888861163123723661074156959269886306590174147354951616738457619571613083003864405104445196624899733952886573258472942408539696244066409186129568305469638831195095412588487948144254066491004407267456419551403063644112824240908292728386960121256123144344564399107285719503492752587434830858852860770387929435430702647632629479894052475454470909415233817542037663657793689880684542819793045562613620028555935601549170091709622869518531172322503631323055617246901178554091480989335760999863518414775103088706624977440018208045510837612457906757070544856864090244784783825146711167749432656220665616575352618898940398506574327030788640678888780265852238568967300837907940209476131787092602363313381438146475906336876403378355527983671794045783319423209420866354879341548632666468073747912046428928127593553024581449142535766112945991570619503865681776611742123127670104234387953477373118718489644758713530093598879765938004814627602005094081304382483925051429588896688819387754302260626887757745025789249593918026643043412914206905559021593495856829116909827119308159629052500899859090952243460921031014862836892571661971816132904254908483966880346459382693475565318091787173973656633616568138846751114381901679564275594081220934476680266553869633322436441131929362507246898773829390850559181762114845993590737452148788527312911989081652241500097728261433618623848936591530000941873753641964074124768818870011104667925427191864907731952857510439188593168313141321416327308175348000935751779300174322232704329554733596014943260413587406545234928895569144671915733868869642880724732977095301953381862515078389152176122809413776271099078928165224328650804274562021383629110214753102061642020961888539424875174741701168825197355927407164058457564065064573738002726273092904583621879576808863399659383913665850818789311470185200606018103861853444588736059477663637725544700641179445541841089753412359031089782311561899354883143433019659446512502309941567539512532095384169902043189134686751220674462220421994316753394670542796867173291934293157871424048062032988067785943620137931885652197264595459238961713164475584324130421020897476068609456305421193750998401688912625569182602020589203663447649427888563965934381189682679759282489884090402132175463008447603380426554489931740195174761117832663722893794092481463710393432448742694366091354518791478822912372569342057205644847916908136119986019699138465835885765567549892783431662347380841950613042612508314486217799788106798363089052521249121853836277577643687953800597675441553471479970027056341100688337331119445288142807385753328871306842002100413007329369010562111111133019076558800517964198421191974539859688230491221309655025203923404253397128000643755283062242841618827167402366364297139651176445532497367664776616332188773853667234716989704198631583876564855526132983131345754254791943754669379121385658791218101504850618646683054448066950225529352477698923714118716685468830407125525750065925899125659660964301875193655276630429163695714891225443471816650963042145391334183304890365548950941193005440034182115894978666296651528378594456952877964891021836943127466458895730138421753949081442322398511973218337155118981624761896416431486172360207489825656961932867370724832585184987150479023271534821025378339746861131823219760273867475478585440974595258956417854471712950699929942552889275493729098073311982111512709931692897340937543028376319813823996106114181269667317005821487611144000205594407803762846476882533947620329867090830011230212139993259856920737098669381677477918859198521856517862393733819921399950734624620107350914219702887699761475738214526841255095612353009984788961780520648107784373134083594050104542682640997023308589135486330364240399233706591154275420262446590573870152831043437868330295148683750804810400779759625512809172392087572104292390474895497808141928562139073985028397558461062814777513660221414276081645575920723154843438330373908971570796892662111323914822921926902815200039367861717578555064481341204481979180557048654108820742719585558347165030331497161734111654396289364845886749050803086241201389435142003235139433634179117220548231591919282387591492555047655719051958325893740806728361949290895813281247221314742731704775540843237661461881938769761755815221376375609311750833453267341412885047497513551270448597551105097325645653378915279402040846243054971830349773076461104771562165738392987092610231511459097711792430765225688041862250340268987933423153355455937588517527033189620234252398577496043784230796606636721819672021776316151430458397872503538535709703318866455011537577304852763917605247409844154867774097183235265057662267752632393242336785703540126267716485508534584918086021049616540299154844848783985491472590095286006344879713622815484054480555882498318790027548217819582673798416109396633342115199459073118903418429240806335613437454610620494513225967153447656101453160009707119316189632635079109399622511653507543395367304482653126302070329355196623246642627010559207840228288102884520175343990576702496172465592425514306131105776809088439201786739126942895424226709010370871160544688088409286673444026997035462174360400978568679487140439455822818907971227281065275616145170722114696392272144997589482876957230843429720546797107188100539143256520363868454441551139847879654070302225670808816314202549645359621602287708241018305724178789359668187834527567610032255186339219876829248856506602663367387615655213840710152982898873725585592040351912542900605942276972219063626276205795397754756156259941429358116002362464906738588109472009392440476051543283804045952535655546324521386396707111957039688428582507168939162598386631805612181076225508371651139678597236797193210905181382541504714303821190841389023860283330187011624972577609605743391075841245048069683614290806001145059157855248063466022289316285341493748096713883656899503481885570265213846506025548407174501773552277001851583609063747640884675413425869621746020753935930065765175705869322429755076845652596634758933200849384170695708983148966265240072016778277077416073703744547675530671762298877457550573974053520310880673062170316306222545746433730786882552176599362633580625613367465868785802298742610082788043487188301911095093126709228837784413879232930820469049925830273269604778031334208086049615148152153942128586238427632536464788744342862423659289746479148160299485519022770031972730675142429124196862280294102767588202440460525825531759701394800940188338096725646107469686548796747848244312520522532137474860068334041971644635040859405690886246298837881498691278651067114125603865536004856825557369239974457954414426289349412740060003448903289816694312120014192421885069643010936344323233640884308850538232537372058861003274175920639176702163527194499578157843897257906417173524594186458098622047994475427803293834196503588787277912747416199138828678124684411145739180566071328567243399396196056471969944295047266150467980292356005487499138317031736156802936419528573046274198838465932672357673814163319769413116205703864368863276720514177022447430471065802662057068193342716335444362057441200587080619155051963400512002417839933855553979762827302721688115737650712228530801346360306732598926210398300875322647796894057124068796661897462902913553101632528121433571472132073343922967759613377003260634793913624013465941797326021063189560242891151181055665814181586130637009258901834980896029085332964911125039786437635484911885622080630049637568128174509653396483499125390806748351254186200193765553182438184994909352878005726448065442260487612242182573208405363274538749579036529628175530005671925384781118914836591588377235445891457720076204400087164663959741552893513788162442087670102993125037170606664546397765445074756122479842804245426357017998296197270302519433003231290427317366754472426589419758024788618450982920840893672486033657708442975826260421622330646009397568935830376381127063156679067670079538094772341404993276292104777657811155623582263679250342150328811898692084659943695428126870635830788454352311466383444240409074292195676188474732990861234429104485508498478302620210054377857127371023675582503543153451945820210047972109167087110339781747081859793551755148634017032580886128610265011311528025856245778275065065199499718933611727247913262531290021661819626086354927139714280578696540326926923558159023878704682996153146845530516162268238031931944258243075886417484898167419045000899425848880414098991711474286074285890387230376492244422376126676202918470243849256532622536033252393310563398746898318063942753718593625691407128655872761236355321953494733698498369215542626680467983915060414066998312881136542298751974006897820634150289278136462127953918726961855429778856253157751394470101753050666423713529033347325585356081532927239647052300327943967434821327856218867014811812011215209750249310712743073654922274962112217789000640199423103445950184224259924373448743807428174911726484163843981980639512093204290004329658916178917553824399145736535035757913888287494376982348686077299032685258377680800680146868121106423705121623773628267358837127829236479386639177393699389749649216866264718482842724549337705310111454020544724516480445912637661636849176880619327774416713820782982138862038586696367538891850533182458681316794465269172727354312861100305752619746992223058862573885676631964805388635906495966561727489580806937724827255311581933907128821920649422835547572273187692810691689864146443781780310709420034566433310450901416862709347256920167811716744286230262886292868978088203328900944020350709754151390751709598669118661532875336532196739680088306775998761968356550284972411166061345880083863625925743918203737238366444930337180282904192222031769121959629301115388404646690836912549045783586840965601951750756516743943805350411172819151893084711329122572761450317651808423150088767304635711262649976105798931077319602102105659572090702052681501977817204765706456371822512508598711231298960632402826125411885244591547909033161492451044494864988619533027013799605343458839411368136591220080744667111090261527973006304683309012130644022151026750129373822858990451501474635050211096270110972515734521232776119423870006205798849022700622065846240509157941309995472591631145483324902583739407934040735065761804358701237845997591349294349817460701701982394651930371552246857759239127148364546885081697993014033184476848699957214982229217412235967589443999909824153848776225012808291233692651875340783835571203763977717170065084932508876320267852809740010085215589940868067654672069180867317064284715844751022280246429310031985329871929476983173124406473531741160014772535066024156629690964866210732434266502287188435504276512693802343527932771534291779612161298880144815179623350108126526572682257838842866104021394094063131901065722831933261821311796469481233890979146027416506580456586974342404598884850243129312030109921328418907966924654880571020357333199479353489584326370541851591765857266496136240019048565843039909053042319436929219655785063083037246044191947330370998399204193862403376193748290121807804421089733134297721766043305269535977325892141090498692660778764977929033594277745181424851339322875319806724244625449229962947380313727046601527616054340002458911315630137946232564071184399949835473222426894164264819515005349939352969253749645869292075035115783465497359817310044935325517326956822418833397764348844766759583755465654570071792761223104443184749380897118340112116614256159274683315380979102988529997636327484554186900686722337111355078346403585123264899593061558113196901663170092438133991293781554439559842570839852329483962114919239292826538606414561564491638205646406102018430483467429052028604230320020498563424359848552550718174864897383642554258090969809808213566809984570167472662271198638060477013087749728118959985801871922533637286018584783552893046487141390074228087059517471966704435504547790963350875399822811125780888831083537037191653308223001054168499022060229517055839587554589198609648865438778257998800634878502020539330215611805733572945441405732272629263893417096610611234068790884241382355048950581687757074417131209295678296259113787094490734110386113064894745078144946960414692291149219184248972676291541500938183386144087996871953994860907775694678277717085425301760318358223606021060923525259313794296951104254773607984702389587989566817865931570346959299949718806798415066685693891879289191192205469529063539178348627475826969858773722676418982865652176530452900788515019445442262763819254418168350642557831252041226795157473842272138334399547013364303079209795693452580216870472415871153622148780488775783559675112789478235827937884687576862008341627481915468524862305770320771966449867955226686472381741820287002197857844233387287695913128776866189782463612087003369957589919741926391974859553842400744413267782054994502626211035611455310805559121984282041431728477323135998621867197651558855641526647708142392980593970778769412464576899368923189962056200204973294081145018670884901733321677787818631401492780819615588931538198181227883019319654788853703725892646337365938578426166575522518992392044835193430109706386791651532187319016690380532900949081559524215211867292094566353851583684812949866472720179617433113781167163583106365205597084429482686525451704455616116721644116178294971275656060302695904400417613396025778137543703324572437169850259097472232372030640941230391534040283086731459879100469952129019446029031249339076736270245682947456712990797071324184866134036047473456109256482755367983813565343927964706122411929768845548279720035875774868462398439313406879930999713575639414964258063871931304574732746607396029446646217134361073135059350121801047182966697607617642468128716023981816314067608892948832033667293432101877904456471398302892708351303383501611649735966567284384075052606094017604373000946211931491808633866224202007272199079042040456564657869611564585729989267056982740449667186402502105847596442338424721091087919518418032879044860594455581772085006821387397978883138771265754319659398905045132931895974154593767892934018515241737380554796533446445427257608024639750778224110130197495467715765706719657353701935470036458219914466459372409511262736362315617280561593353489885526846361947194990623253826981032779183643229850389655803454088704479888308074333782325940646427899587388744141827330760158339907329310100759941424484589004795035233527296251887099763490704377173702863121466106487474550614309891007525277935986646579228982692067292375954258113446104450767405911835842249897460544209192288069957531122684775582673940163174303060409473604673313541121194024590564660123917287890727397976821949604839902721421635667509957921604840442844290394418827891852427949532776491084483413218603816487743162154017568070843397108701018020559931361087832658736791654091300253893433125731736989334429029157796717722429213597542182175763082376141426525281744929119887803644799702604597687351396127800195421851710214587733105232180290644868741828866730714601617570819673824029081851610932655280310640084691924612979190213919583535729065606460316463662419571484293108635386404692288195141736213596243567741987877146157777168227060835793136979974793333551209975422094312609302140694991180355876141653736197523903641146477104371317495767323799141792474398049449264336369941460797277799683353308018534523885180663125587622561199098930960229300935769427341500912023262168550339714752986782688899789997966146526690571453302875970395246003183811228416550725997248877730216426905738335675117894696877144732824486813450304770739399644287378570185936621767326304853687501739528277670239038131795146780861856070359678951051039089113296117947068486099840649531986765146132400788304787179485873312657308252165360180809523854904062493083381062470912726622458133012977540500196884727280675502103703306741301772340992015356632925931721923131182228984469978434255878291776850235481663314866840370451905450212463942404112251747663210917423997569866287998628397082319922292608541650313114081526198681881454998641354107124065506396274260207856867967615358645748046769899166168775507155436949026786868651896031627725111047849951563504509587860107325298734057271924314136259610235106034536950945390969007799951553160282431921511515465790088106613899843408512697358925843715835833187370850502341473750636653680157137281038289853661554092933703612886668615678497984685444058858496293190120535746566890462118938929855899546747074888238906875368229192060485044615587459852805862347107486842746684462809503371001353894300843640963392354992571118511394000118000948906677920706987363819831204164265287414924187488626758429435535574199926794777027079331752532115334190612397726506771358189558582960780087169037416009290769716646765108508950722553726171111069146797953594487212288129469210131631131257193360196173361648732531469271827416063363575131143188292958210483635259257134109373870937400474608427507514954346779426540712385319596862777098539839079243307671155404596178660938942105573801259969012124049579741174226877326927377620473353036497270948446359189462913556009360430237014044571867219951789954575034390666023931115289104729082909482710003578571306441201617217244243128913380197353390914658538769218779053639049423840758904288841930558003784174973761610944794495009745944447668817796289553220487318138389749369529207750901380933387500107491566623160113724252430285150565515372843654652770773593405460205575163588007048535429652435617062499700502526122749457735720808617893423102261045273730517246572768521382655292131893738188744767310128262251457760385168513698522759222754858308014912121551121419651790215239658376335864438745710971031259897791409494707572699429587261368398751484095987789586545396659403388951229896886999480942821674333270245967263663627515736481896105097077865325379317399693787279107825795405330249625651892149686255770822412201887319268013743097084503063323318225307465929917351502927562183132990140326083382439978829753930853174195396743811818435030885657144053818183048795465884940753565678920171091205908522080756339759515152573133013561426835733095334160932187124170454832747723343879877732370801143768561215655942761911466143823812590360197433067309648696607375499059711277115043084598798733547946436469954184242187463625039735746573235812313707460916926808176786026159142958207520789891291048825855999064885441538267499711400772991697894018057785051666517893307329909837540065451842817711991598167959712173460941373790636524119169064760215482395607885631565714260377105954722483525793538739029732615790880683717976969357046910048166885296215921060990273037501053675771723840137049661213826907238515475384947066323422971659317879963459845709173944190953442549362701484891559979957723420096397230105231320733731570301441292342498804303243118260323732480864556875001101764748133083816749798262399678473982763650099400510448025429728974904528490188835810657248888788797570473633541162989850066496717288758118748106087754544778652814103359598743749271705247921850912697465652453679848727070946363250465312956882780848220178395131789657627000275466124533205877880670794524908445692345727071419556766906946012802273875623000714684109449447999751697089412470969341348863337580715396022614805476569257739362487111880281689547610889618822641753082742845650696195289085997302159404292950433839547652299687732890157359110222892377655981870519829183292016270712858503969066300875381131623629365847301523138549248039460644229751054565155003973330094395781728742159709111806994521935128468700787407550219344399107917159606033248713475124825511069972118220709230640824106704144230617857885701394793941250696689769075427590709410863189736653433056921030080814511939064260574718746977294794440176101793435194773699430104322082483985748369331473062753306985228748143301499710701509446614895517421872125369646052904668651456788999582047564214485738977639975384576037990609978723792341729052299771488001206122307110188052113255540330531366744531674984791200621229669172395498984833646829438743800595428117432256256502708811737519292199728547494563315280723449284845682072535341674112767708208620732255444774203878835788092270667649117850813684525883396519012786147938186916319644840357359227864808203994373270034406769913082005374227888645684449629224368744897101643171415881761828972538370457206360541150492249419036429194015587982587993026470725564282498004341179017235212567612375422917366543424293862653831643376051917742455064207201078921184185169071882533386782993428402527803111351967460622917587425236887689062823726158620566482260070556524375513238442138255038781440718620517246998335545853694150206245656485891279939376765938475536839181102159494826659002689891401947440794300991815531470963909604756027745545582868413882834825611643959403382869990805063256745499063730298395977206208708498631176171844928732772484355273476577098871243951843857461772396911081687448252047156808647870434505678888096837627200859339548457178627828709569300717705845422080424248454900741306693732340326450270755639521496697833542578729661178877207813960341805798436329450271871167802113196434390595892343758014386653459758863323477459709262920122753617271154668836189902563626225919180852231934734371365135007771900328186969431390223218206726833522106595726569681179716543643586264941875927962095395776928352835794966929792428336311737341351391391054180907926515263068184826359081598812230848811088795078664604323434915594467811708770484949254140839622524293734162408036835170769281920597900702999760404631390869276566204470000840336636619629996000913484837302304509329632576808132446590894227284173349337916020399240101247506317301442688224160122009561864404613015391910149513586602319173456526346163121998885097907575537417893673449457992067385809422893247143756313935463044563729566592140456422011019301903167999595886983545515667478125248018442161339796492839722609522345846017866205328020810927639142654313504134987251060493368778061131731226629278522404652594073353059352622609427012889579911687573399517692046788622924486280210184370059584800697384161234884336917372023766221630122823990854130524313120682406148422183518459973654406325746950746136803226266390589364508248903267020671338130899697091627796703692298782702674648889002495735415019329211654810964977601656389365876124090209881879681997013569704674138137821703811154628336084568081963897212226414743232455856881517802389761978323757976768191352842969979051793276772620155988842605313219964464373857310094724799161949561509067430106685676429740257608369231354473721023592216671686206884370031282355719390253449461242308525649017296776774208876050590169694861724677536239535653827382568337690356861389954503094838067732746662237300253873178660517236478501423012634531492955720515056643774617016738799024953666617917607487796470062781705839647905173280958940293065031294411473256761060516002350668869829645742802009207843655456475039073640276493071495463352559299148420814766911924906876845902854420087533687047013820021269823654099556272301775014266131447086644600733148861628395201974469862076998978420379357640439581217589578776755792154900836290497359941000296063432885365801549240852028760316941366223460822904965934177302561338149192557266113513994150404560602438285986200823023389018134612196078477339241710253370911417047703601418657360376586741333668618292827888085319026813243743784291198752598851054417487655668220872901144218822238176799250131846475595216508143863983543192576520461158740260107249815766200334022439523813365308199388282056461171697930435474525092194086960661304974789875773097897778183506690068276492018293564923769278920706383930689901188745770997335346949468890987107700757134611926404621975750872961496917057627467111040315811459914373078239052941640242254722139766634950987321250765180594604374444915123695578464123546692621600422543843167344704824804809114182105994695217158561788768478185145773002296495264440369029509495341536281972973313044000656973319532556594390684416666643804649737495829987942906899785864745790815197696329989790012111377400811868327633120210064928005522686118294206212159783701387762229603808534476549056033686811687337500771966488589606504875002500692960638421479540304113359823248839725947005651634390383722634500400534231450961217477052914566064396594116543808562269976199068910921610151051623055883816026475073075471518823332785440704625873833244065469868725334411785257286712264132317195108677346216928227827261824903938096851745955957340925656535214581962655619751020320535019208916299138641062149712071484765341617972317570107659972833476137298463819890599336909904849346569395049746976007251963469425624981638409780808902793859499773615210364395886609744968047621894330614949758645938828585168750905944685705174590316271923013854016778839896958872508459052075022172879930772283427081611772978842189066621044408250761977349615499844952735931754801675481286280808242271841819895633670553586303635628341611181284063810886777351233002345872087234672265462326139180690499500332663904441651097506460167022343401310449436954411979750614824450103274858119480393790209209616134693695101369647674958489494920836461757253253730971551645754433887377281266240239102943687283684950102239002416020264933544435314105315684700344324988585350485606849751327391864770789338634887731095010065463205552466293584331431308140584148284257091960808738419613579530727379145494509429183172811477669172939009170992012887200474075451158506395552571034404699757717716108987039424243461709119738997762093170467349575483958771801048135456425537753341717568135596707985869981574972440769318782138757283950705202292881599379432181124707957602789727708422758317022422139480368289089950058359485597352964235769671983035011162332480213284003619224297259712386988873744765644985610237045368713214191064233069346339655177153186151364496182659196669417940123160125134301043641531570700757103798071651141394779807071806633635257534181749342708177009785973044249878484655237414640710760896715728252873811496169300608138173127753500540975579750449496929966051014864478868575546179946298155212254167732565899134507084897851036022491075803244305900512368023383363435823803643099666815145054227635565055862604698100983910215436416830728738306832375397917760444756342429997799605014863058361767808282807611776296734920765591360880194247534536417574251739166384080377678022050603189115629450256513713164598485965912937779638906686417128511098745766663521753490184273562090508331711292282719544662967154013629077680162012455942363576542147158590496787664477269589399772288162627221845726625021189676943997202297240546601803690596164179154024638633648280003925671538470770201149427660965541123197888193018015156636313453083433819489536489755429496938528494654538734097103986107792031874241763883318948689474164837677149113848133510320408787619737698806677037753818271603513983241387500972186686507505034143034015704654507437747737662855994190022393054957771009852839603376602519901808256456624511036351783156970665667161021595782845980188416383163444016530698931336064706950942945884916125052633285316856856909510321707700109293630336604853830863328219095188406191513707560135050275063156460806941333771256392669768983755230636683159699273977706337895923794061271908849576704327501074157901095265008267367390614244113970543200832806183240016509601602851368811467829481096357093330030863037675534266490550185826323811986809688181949087749384429544302289846889733240873384754174173674480338045230435290547149820107621079900633701210488059163782504286056982623638050230059601224056208334288962988393473248747465136305045686017802018703818871911693818309009501632524266942510329230546362711428763863204101039846121432187906755209716271339572151112091173830577968726796742493308164672431127144243549904118321707461427554637405590449576349810032388260792782736844527015272046091405319621061468831371320521750294078678219804760511992303069343159257922227987099641250410805444092996175606201364059620824208902751184179852665819405714552705598667195185942206158455147578588320176794285928309694396877302972668211678312059299561122017855329482263897607139386938796010611024926816629327191768177493497060752689206545901774553209344064101052052964369552241946516156767047755125468565909988236271370135482664198050164492110872730513786975741256782313843187390682118366964851816183828975472270809251578970648576882259261563470029912857445122036277477036753779951261005856434725771064490742040973987351418466761143446604004133215309125886340232073114208815350665910903260897277649100560491077333720788961013408306789354217818480586599716538489529144650402685441507086402350084858465483886361810125648341019316133849770939508789333602819021980217265839794740224010508201049402234840001186889646582204405407552100523790280495237871736921864243069305366813158727996657184280650747048647356982190517126252625634239229695747845232113902931960555308796959111225136370745961010088883637886215251969256549331912988131808941442574338013252123724065980272619664245834566898587420528707743532894991166873701515158893150162728680117396512895977581705582581356426957478059578068157884753782432689672681737205906015965891395638904386146850870232657598794894825967893960350295470522786912238452298721604636077265743497277477488017769599685824191885815551899806893784431158150639952445146029254690789401717592898357656080098861620675365123031585135030024741988333841311076022611288403430125731413134696808690106246299523261951565279513125322280760260119916459923682076698061486110927704224910884145501547274254944542642173268542472374725890584603557137851902363376827293048829108273420313122458486160449116473281561483022892768496255939403423866922568750153075098262680738044192657074241712127587975536529904508748870215697666392498532904679215567464940121960769417553730442330352460927463905547019335040571922283669558008020639767761094142694314734462787596386423984179390220691711986172346301268996327171119852778554230975331769978684525711690156952227391201213148202866693663476367511501416103590364393338231284974581588348515686456598502662254874442780543737785217916582260248757117789087648245930871010635460844873815195274580821854587336214999090854512252519606259237064975702141814883472953199235568930895981183601168278337886221208807864901174666714150953803303236537731146940618122688382970869451953341869791736185512871760964456290674198300067672606255274266757911468691655357828065731461038976575999568639382918447117080602801238408522093837359568680393802700678001652486196305041187093363362522372830259396350913236118413033574876610261758404203746624547625840244623875347809189344628545266365197948842563635292543661190782328446973485490299007617893833589613760534777325461766911958134244330193573967513766487919650629261093226179224049508789795654878675613532139244961916356513062092559477261307501545112807849731510217850301933234272269211865915443371394344372039471562575773149104586987951450339602488431380904741003796190336028476143539443987412200745220210546735779910218896681530618971531863918788411637315271884429795069366206803362322911090213416434316664334867986943788833348261002447479781868361034496636155666916273967133388967717923310845947244482866977177033020527669851341398833137405884835894121538480214482235274748578797899586261755742860692367570658800905840321241749751145276570920474755072778046095202837597490546535881910266530064901124237021925364537676260153122335378140969762318122422290528481562131310676676378713734744008228797366819303952242173649215977105159577724560115962280791462849026901835827787089925501057903529839742126510998055850996402512437569224174016539059617454504819712464196927212396191186851743566319180270957767732836029517952316044277499836781552870446263899494802310140958010863164490727031278586132884568767876924677008386112133407252571146793386637341897245786043929982259195068682396571563728383995629358123259618703547637794006367158091036375133621152366471533796764481072850590210599023446780493251409118452967797206440061079972647715154644138894396271865817495393129389139554694161768399610410005368989212735780758616665328940331491172884509030471869062769992744171006546203036935941692604504905229481443747453283918546856638003642529843141661105562904597408786412506490856615347252140732143303854663329886017141795027371224891148803438434833671982572384926804158215348195473969172443290427141216640933884192728972220900951988983029982830675165244337107440375841256257048232628005149825619052784811725222563193764639203327470926400463907759883043610274935910061969936160653722794212814463952091355755833066973215664618703205847011686484601456358266564490157655764092377673191341983048491860385582213551259721705770198361157697402771742414360019395449213293736181092920379507259817400390254539802624657768119723114986824423163450130491164028498697080454598552977860538769866779742976386528134305284785318503069682204701927284235746185876949430925317419559304547557567234684044340790731476934315252367731239216869780945646099838795556894129563457017188707312740244266821077924713911193209332441467228445642540449970102652538782326727277010405889551961386481614688254121869046397849661749296627555919201822021610761093972957255849311975130489940082032820211094866263513289381478694775222512078894281618485452997205501249018742152116587102576453564665625672262567407457724811460441753790790754036887632868960686781207128888346840306812263396666300476063168258081428663852980472730205216400213822024811137141480832104356820463608159203982670484882617483294905975325168258276838939351172089093423529275217848503428085944894130033086732938448136577253992824143481063368621288274684184856956825066760431359460402380312546482771809649729009667809757842175121928163851731156397538316909239821240449222037420999963661955340257584732827674699318676329898504305886884803790758181214961122823525630919493986344033040413612206837891806814817896981223287713816911384258708828113596591272737733059054685311922138348290831946942292784357134475817067599640186627485255556935610054666229835109393453033188221682835348737414265701448691503278375997363930695073014684464221120071141799767856728988641370769111896819726005082404434947357409590998414946594103981072687364940644799650261665350976414273347182574871269386189122880794670260601083437175493052519131385461825095421890697013696522716127355351714354737651271224429626755337330880964388492103833835613009513813885866409572856528404606568096181716419026602690770323295708511591323552159269557591641056347872744023370250083244091082602285236060431987778985991867486838251186677012874265707878103994382374772838628763430389405773849272015298942371598119950212305873858071394596305146420141596110920477996694500962953433888446724166908009124591589079789606892740223780558467219041428005191056036458887282199802860131420548556979980407528103557459597020914839707393745642453585117996658803099733806269576011988718535108931443835614308446073909671564988350613030861292151918570699041887813549497553319709985951416838256658363573613571958446471378947787620237520728479728003584129299605154434030083837519552836391905447824536972592587070240203449499328559702468602872315135474306489657214026283374569446009972852918654075928731616416501140998721559383089961028480251931762976118917730080541789291622795936633141796735267924251703915911961318165356315899365053130006795333965400375582169261262749466956796831203958670082257957939534576806056602328045827320546403910407427305999662659865779558352748988663311316512611542758859774610826445868992852668594837864660164563828121479523533006337487177622606414937219029060538864964573772392856861501889913881408885790397333974142044904431297076470151186642227179714515762559982952924243467550044659443437363742356181686785120404499772428821245385668833934845338443040827144587390505464875103139257505996701783804645429281625790982745930420871034440100988131358881042242599424551721415733689736465119711183028151484437222355016118952325875146327878755979546940957381674927304624514101621167628743475254571352546423692332029625763945790010695525614611962750970697649826663732927795825836594804980881192697375694211697914888345250987279373299451696695745250545859283508035315454700459545592754609712104290266675526381494102148105290397526368494679822202621696837816066641020068143142991563371405075435303205042309233338096485715106796429622583278758454277200417120677732624592574590122501180270024033252212148009805942625570805436914535199431837218580624761186218778006314165685741449296197309513564001410558300765017351209552016488994375581123597400946598179991261079150415605059347843332141734100663104098977713925108422712363225787925670807943248203959244285424560417058977570548811235946180915728865817859367812577807949573088985905725723241535936835085239444233219931434718536264680426196530934500882782863330007434038879350519736858034193055506356973554623474171775984567289516428161809998052391952061715947319924879653744929896403099805319582333420442642916324619730642728711672140454776247905002961199331576963474897578075002592856118277322979682635548629273696111763514937884312738195334020135160460471926287634765278844566565243321693480965568621152221722356749616154272584729885259131348261138941258512287902089938302851919465833424250903738418918439832995614506412529706250787151414726809005403045527628610193657180422054941786280655469777325875131972843639583069624122269177247394768960752748858053677162854726258886325169056699707221892633141169904793677245976980520294771405732649360961399166512886359945635129033158904311106072103232323197447772413541761241116707299313933712723444055330091575445736653255806700695945576074229062458270307328128823406572705510656496673608502270720620211081588023779956317565352312400135889279224060122795011201954757184347556116114706800064957732306703942625555784434196672920167382151905871751657138130994359257357973742123528005449042754924918924986465110030004967312983250081817612942886397540692184739169299049266305679949915252202048876217239114411118057450235450575295548223879704042280055396113064089538143918431981180643257836179418922295745930804030351578965559316291720467854456245681840711571197037724290960531000327053476469770877549828414576615073195427647659409361720064297264643795472970732455369524283250615714083560599692158126341600753213922616928811055569547194036009737554978455694852356797588162130267614008169630977046392583343076744456139709812879251961219047303994301472652424735596969846069337999945852032563731896324981629966528331961286052673564944579677412179493153339095358392249763839867388857084339080576573036944939183382192466540660049726481317643896510374151225262839252710852623243969023310120292558957250210056662836420152440570703590474936343757549412285487741512672143698373954751149401091230155850416949877373657362561282031526850898168371855485907530746498461452203002188831147900470695393248613113647577408261570471863473333044708851414462615172463485243995904515070134617789106455778439010231363235489505121760971328901038232887687565442325212687991309398974178097375640316882042412776045986738999362486514438822151495394461427576281321099654982502726721578992434392709973690412219461940072255765321917834919844451750034362748026706919132621331101685599381640142607967569623946083531904321472978679579942685002744773329351605791446892135592728547772298010946003602553423285067575713059873279356663224836067260002295642281131452180033273279585098614826574559862850884187696481166723501651099207978572946289001570583660800540044083885303287796353830584519953498650192558842947682452732495595249049443433933533268668552505221332749352717149011126832878170253754041797786024892017624885053407938875168899459088696700631792809979781741562962855676302159963216327491248540807799134456087580743464891702997766094468946902022898052316212385606441346254682643381442165733282413315794309767082000372838310197229244786774570324008210363561888356673227507743896019649854333182722022386997402078804402743238750096488662921734240115276488578396963650601892137991292892503927388172673126306127814436737075334274102510072008891524254337148077425231431091388175803760880320872784798257623260327827000769729724488870917877560018460087138663873616743966382936744604442626906183630363707655685054567474095110625977742371320763351886232444264901110226384617723325014776786885924767218517839943340054281386863089735114442897717269867842831447207818126205183080697427604976381499568656602448832260188339023971251108973676949680723931430954093837479236150536570006319744265713338268718247931058340375228615607953706212434927220827504442730063698823716627549127204390917499733475236241238610573971544268666771593810834091753732542298564569133235478566627935568097549624632100886227099271233112874061446374958524993706962922351601981634814236760955433870905495516689396077838647510167230061644754524326672358665487488437989218045186739163226008331094745662036233782254989285499479330207555387204413142105468680788737038240299296814783308435738011803325532867150334770791470948098255851167002496313449577026738373913272481278947197520143576417820166966930731655814256110206350086393609039294392363333501020183698532364117503770674567733242020579002495691774728451873086717696794043667057908042531187586338614751155566766290102155776095638525406243199253624542409468844011639716442152690648543627637331973001679824882558766920066276393969337309242009348916016717173353102882441872604979622357506477153021939958915986008445657798246120490561222688065604684209657621696820905343385375283991461742015449091335648775892172006853968750740516035598258106307448130779002435406868396610829350142016272063124397253437750483197706169172928826370105083672095374806346489934233570209580104672724006429670490435354760009474017860687042296547465158580916485729168041974094100710835646017583564645972494927837093895320590174389571415467954291084745433335914509032750092512793277091807523353774692507473550516378662759509460353889485848300796498419317968979757390104588052644624043028817011731032642684999172943861572596281142916459867082337036975081238784896176415739096684515232825594945788422823913716926521001248196223585411521924872208060312501142372129466235561910636799713909147077594913829897415733500699599958989529084775809132334577067362623261448126607685802554744605775192073215299641686729433082432920981778496400747043814495344543870425356150488992405059469547026635951887943525559825447323374106161587622046183850746837546840117277637558692052010186636500294142331058008828774460903361742492156515317062267776693531327558117340826109336879365937812074338443622744092706954524313838107843879608869758967571474765412463245147695051097496613275494053258414499839504290218726787282775956368109019432110534142624389317395443288586040608498962910563382101636074772510950172926760121396553073480798804267134219521486029502729103222154643349112986728032037279374255502392534360176704211331849157553395259907002291859743029894018520880126386754248420689282432541764033751366023518490118989520835938142638149427402713933263567980586948538510930905266490978767721881368614563814041689347086152626114571181176547971028177202524924181959379759800683153523825274661511521963567898296984031227457221330237654485672306763402790576466418857406990451071578121342404176334563457708964580279582074776980507013390283981676178689988598554806823010633310655201426838633781125995024095685504698665929988525142258372663939123242265310867863617380797024010463986678252457100818470217789686963025689258944894816626423067477457126293105183894161269604829871282474190574196306060772305026049021349375935257330348822825654904609218542354482084295834458914565030350495544039674654150622042347330605626955089896945661308617705437460838055660749312075965368461046385085815737753586459129882232370861534700214847846478574989533570458452350253215208472625192259577257270926527551382520350720691569342072418486363168131679542662274939645340163044410298259257671602383051435108712429850230875192058769154897597272636694398968598998243194281923167692043832823920297081773528584886635074224003482886179689623728990200185907549720940265014591943157025868953871622668540568596470339808043406775820742492073749312359588853018134974543780900970625528487559046697375236937109759786090170998743825308328963790918218020460478408052276634128785447434155592328217623918555515932042796537776212976693266232233393104358877268669416879338688800259900314334947618507734039351133584788612511801506989544022705556778040409561312602910919902865011046435297416438687490943750923138037724920763420072950182364656106550518770696329972680193311017356677378963314111752463230059155918892670911618155436720330740150968882569116506330369831930421217307060800353118899730363117728529962547792757045509170542963642190860272832894074047425263149361228638972447375286725260072296869819907654565856768627733684150857840049132625282422626070229344427345139816662346381631738721605087760642829992986982062255567961869666539415205523320145912253308106547061729492688670390467934092329802778036905130331575615592237217099302338075381287551723565552928878182523993310734533893252179603714658520547849349152135744249183930664632578359124315063210438459025016518286582323543978657108966997286723864006252537464885312803504356814526570297664889627241345808985832758351192895215070917117137580650680028869505136067785670852115312183773715237749157752941054444453978253480878404977983180190525001589533494859170536254726940526413296701727904736495538311378467424142190658248913487275417886343661691873694303212791473797572710090602655161987542018178655204891794798452220711628183649369514301173448050061596817822879130853964927028065190575688939909456833856012073135401998439986956549423618402734259967998513470859052365219981916812776050603301675166417549958671683106392791526334099286888953012506664289626798533988402610966275505316962741285605774349140600670073484733157690296722847597111500468389121789095425471769281128202268645143414561421534498041321071639505018050152722533997402353829820385464260045489289433950656378147027459172280655232567381755257423138629651038603172815867353530046202314857218060382244025245172765617457543219589342296866415344819084686270633972576061389814579796714086375311083891305505295829260360040462402804192949957525402631627716184196507677496710649105119115671026058225258314236449179597692561012439859161663894840872793611529915906795985150221922229180408182208069961556522443488206771429017092788335465656662895437475047853258066905214495703679036818409769041835323149735183280979843638430877910333973144229897246617461964064404306439198207979653104682373263449089959229215467089405449587612162685696766589988087614632541120384846171277153592989609432238697595116361406907022739475149441111935467758552265135274978738450827022724762384076131254217477948336971913160922105335394842718056748950236279876491167808635364316401704661884487614838490389607021247626223513461574159542562865040981199242606120853134418737381338582566283919241096072152242969094970822634945195411969095192358315357030612965811325237549390837288389764938095409912537853809914909930037750625870498187699456011203256805903377782007289077080541631244875567952726344692989379185513604300626305302894753889739023244848567700246324037777813505650525300534900589293778396507557478478033539664767936927860901492375320022820860568392009758827628828136323696618107532725177397005387947530222820015929765976827308247714536310227944833384560032185878303311224897230058339227530604476267036985817332789900864006839124360507792604578628587735118045508523788191518879924979509535793797701214150268127583761561569682413790033103034038371992101742647778069377471419505772505017453643478208237388759712086124974655708972347741529145678071207786540313476978524671601969991693200516302688778890947482483219402459472351581067647388287034013884369824441828990287870002967285692457044588378052073436589580936436840048442457300255607503744008853248937456109684107675061575029956160651535115448585380274415463235645003495700387238021397996799030493550040313797338120198028407992533075861206896267948702711265814009174009751709159801320364337966819211042366207074655488348353771158002776861796169836974996007607671704923187001311689221957575911251937009555388551723979637136529055158779707031607238048868137131456279605591020018070102995065360639461964307669407567781988605299427809438456084214194376646400996969818643348221187484551373579679368314931381098549141480811128463300089503199115163360642753796950393212549001556316104979779803530853287955977768760920843889841388652976105357353536755879940681405042874569371541575737180271537399344584479116354503970397210271571772678911938371944518614037039374383857979095574750232632815577850697256288389934034414382490886196771642354067127697067656524214459270285334216138655791354779422540534358822406771204778850483347194196480400912512530411411635105490413219261671046847436492875631807804475728276400493112705036696960486523363267236783414666747058743753311941275399454730438633324288503583789429384015106972459868280817383430948699506356884656561275713090555713873261182285970792401969339407639232030885771732251906887656499225949481684781251162789197166458193569366250743848188435019787646801860083083296852610231866014659270382232045704608719656466981001238675086123256811219171008882782788315109614166609373174367818170165351528115318498992772566901332182036182131220180535493015896901356751478726658201504459061856901237353329730156591578367152755128846109998689282603373537217831308263178872874041686746110679092084313467820605922381312449016490826464296417635688589335433875916278447950688067206285483855078385986100959541649358214919146716818223660246606751410433824672105011525638201701522704700464100899386191307012403661300274354748245019813733903320391613704512333417281274944818319904933459853046594745529252057949438549815986302565142856725165410376563841718430555964677781414467126793511299414487334190837687602666938992325578709913499550915859177121726608025200345510458203819265236711589453255121960675056751404330994827296061645063752090937260279024185279131017760889897079927356217317801833514386284566153215497519243029335121443413210723951371711171735376868922734114917389032036478298950018513748777219007515032545351922693371918439560142388998179123280875577021374760594042863360325157965140248365168205166918753608226997229137377202479720335774675870747431222030979159746670503351067200029076962771706671498868268039167952989826328576742678243957486207460552106496598100829966726772534761828242233347126143905074857241663469201512169618837554751765515541055505603879546513569051601161559796522711586482003210658390168155196298908159355319377673298402027309872895591733219015274769386774445945046458455572339290860464484929149801703775648601953579019477563432816240468033158064442889495791227243011775210010503736692332509155471727085786762137249014915224578108890681197565396487907928686626638243770081897214621451815380219906256688607585712029307043423217800171816320414834556378780398891898186373995455039468467574402623698214568159516171172758539342520905771532488544472226555478040871642938597603169557029529534621399069978822723647072303911684455672930538552191866843506007860926320076674295917868475314291878851344692165121109691711460242309858655839228973147388146424405659167548165803601101508254250630103211187025913985194292851151033850334639562714045706012348306951712372934627053408041615950045577752843025098858452929317466253678730772725918512073546507023524491669177464888809398874823335258066848135606038639962770564135698671065064869876205520152853986942895156729417079093622483062884079254966777993942450911782409197041491200059209919110627739932740326077073479057477836213909412187377735127096782152407811342088195413683862021656856974267178441672758233983189711382166521471022114539514352032535832719081657682780620687040925582722499133940932428942250813671470867386017040261931274441252024540452698329597358079067806007116757668339480728045776890292673280129128068944990198678054210824982050743367916620602715270420994189643488593661882226960453505249633973257051185038167216753745344900440161901411428718203257236160626489039014140939212166631518389247812172339827918911865757974259603913681348497888042942228902539445403283346495580846515644360721992777197998548835937811801234986179945178825163786050142325871719105141615087575854100224638259519674765176362137689599035934336507702286050869557604605596168500646149699168619163110113113673753803058116492838661005712475971145117316150273813329234206508760196479003426567001244834258235171548222248392129184341073555932959903983588996768997057916880057889075632652618331514562778902347973547934364896465299262444710152156407789508022314304425364968835816805322711599940562499911051337432462706163706756687371922519261173670448304208354786740979132597634173625316983922892082613713356200553908222733022097418538054244577410957518043034070305541949228523169289863099545354466781749957475372644907885447717701028774660988643666832815053312795440736617595458520251499424195576964339972303662152134052761537053802940575531071380136388606923756426928477794260412341726050692558944424175840082545027598379483516441602062563984305560788338715593231463665781606560364626864882010290971750640278175222013104470752713582100342880487631736463650975479001864756200781461244559130670543810522109228558891102172308904780554789098411109614155039654788655296313761731651013344212893121033562900793528823502162245964392420194003564958228686847213500999616451572561992658148278271514908622345536051688919259104177984069589606120018375856699358371243798610593234564619636443846981166728470702251971919913777988545864281974764416351356404348586705380265610327922238693578495831902540951824101396672263619636496572885084071298941410788108183813738527065427482999163744691252118350049226188204124709236448324079445057883308956459397347576303779308398008785138369010253071894112976821627421746625256071079059814137500465774444251601435679492583558907854853021862700861515127868430195532329436778199715095522880983219088298283183887883907443738041567338352783743294483619354687098418567435502565585400035954502058012644718643080524427082198477935733561247673952705852055209863835298890269844195845515650153693252598252090402238553244294311431381206230409064138741346375832132785128090865230119760355877566019855542480591392566110109252977135982305068813852376384462986637171392696687984664107302310270739769055693170583399236718570123977669094491046548896563467331754754246393035715908391428706354457838598147892480979435510376390413534016341124017322867985908145388470935741009974785734301266734985402797305148627948190842081737992393581486248088278593271599261438337093808332874596603756832743406960977516783739123291512654794434331432356893538514098683082137004352003598586091570364649230876714789081915937431227748988638387149055328033189937059348365379935295309701732190228817460030006105475895698751951321312503858421869416186446307263887460389491285994889891564523222315077153790177413478634322672597622276484437480780659587588372387660513824979759840666888505172972306365338629536355962271249699418684885199907517985484458038643884276395805313888331907822156883889334066317811293036785314002292949319991474190209088569812528970762332846502591587764281046721955558280209277637621925302931397237433097303797028762946865723612989670537816343358213798595959009823342012536792196099569541190772560416096706855770712117826050742685192503480947066809420401369561537795669002605891685263389418827176225807944777154481064362393734588707106453017144098292641586465371449995688672004126127907018425289062958107572354303877853582313605408430042020489703627294700071281508715967134099965400205189576400833787898980810321884476880671647748007669562015836750224443523078147458308091681018200178274687953405417163848536327805595486070739297093753535198335754025494476865140686780277200636230058069591328674160181180131864734429470250724399039531984437217618073671363889186860184964599472528246702969642211688003666613835122863764049065371989743813628109091219888630329405742220927280856811885713205240225224502242695559155864717103889215061503544371421692245332242955093062893164869573736037250835064060823401635905972352160916786352502781316479611699799444928509615198604110126269004549475380768254656214883776014396344873332539825696281214296438648442619578238700946288246502402613349533927854262924826170252588987573826923328819969769691739025122135316091394170104004239752142022800070989572092370802538157625088497025029364873874821055219479446552865972518641942223901788898465152483520438267131683297430552255633714361762851293949049561448270566495304173100504717006520431591927212745874737663089057008278933434074346502816376597319258751699522854830262197441816476373810772710830490715960221606714375736829154334873591974323007343713035395725637281302782742495925365665344550511178166867098278312693787648743613594905313009120130952009040554624071630968363341648963861840933458983442107298473519770107634319373490198082182608970446842274738241710740539772594328690015910329109737454763133228882077699713967704269882056454365759778870955113344657196754254543698041620439470128551354971482733506869674204642583666794068607753171574755607174494467700424942033211328908545884787587138772832965445788953682036349843090691711290227498254504623690969796310214546844357293994565391193192914972468035067332601523114340231088640306127571207242058371097072831045136623204595804431476752927797100211718027518318462741391478524531684293397900612914310667068152139025150851102605700109199369380974452659340134726832209308627346543467267769294643131741574981419970638941030696342670274475160407167483193142321606241400608216175567136168888968159523503662828077023446978575385819876312725434375751935025932569152777215982377750166239799659465408028882202503102230288838604058399437653675819373478182649988521062511281594534984295776254927015561328111731283647025474801610457677662572653962525220829731891465965609472876880273614052183795335965375618104283944163610407098375599756197769188233966490126298998757291513770353736885032572312344621175586609823193937211797563150588264597249241334581821379638942058033810897372072267614459642962296125278510568602500909837394812633063453493404948208155274088026271068126991052282392484383529572537979013165624301095837677656101152870241261182486708261278931696178147717791028829281267475666039804933271468276267207502636609957215277690214817615076646649662797948183759968175014832516176479654189968845531740225002262585759950116482546767767332550308451868119385734084087767862928445131312018844828614069839016616732899066403998584276276754991109530467744714050324104474685125518473509820610935417214371722907543594820239214298333575764009176347020408016905479040425945686877300430810107008465215904760544487238342005686867192941893405487994595843371440595692196411618447114166476829876859921477507685218375490327411478283198069598162339492210654060136304378223614707256655720548485441914551216350951349900176180564838552166266833471271040398833140597145148880075238076240273492949143503316442721910527232650031864755832299746293126200321172179628214474464295347908393552570605682513210675534691123856589559637292253197486523486647832800925709470501604994252620701901153507687552836152547055477012787500875635402021757381384758126871577534082589439471481463012595595814676704053682751739949819167055647180115313562653361616721418640468839546679082269467886765332337570270532028043430177166815771744216329907597425991022941569089794734945130631335697907641534777426945254163582793454109873141942015865598411593495917171310664691360818933180428606908575759023093331476261673874734724522620276788346483262679168678836348405304879492109667426168905895050711618582079019552146786841810067893952295692148081907962227726292329273079660362911492119392554600197380082562601519146890108840888459097786338228958020595458114528742069568510445798356512326904231518114296199769785829402295329206370797508232715095953428731448706097041240970850190300085473974892235395520138150342257022735417902947791666120693987591815568775440640945646226855863337202291709277526941392797228594481923346474802575683893325768354385300825788585480679857270969516668036811979188942473339857106021096303711565430008245128657036683323290578031746349030787065142299477401123688307217612957581105362995793816098949751456021886123881591566889335523292559217492808077643057292867138058839561459862879949577742505917413671548593754795728881886019707760812529131139399157018153848347797959889606910175814165499744122661341343691400390261967909024544675074537729674513718006013206227406015345399032428199423199141472880603184463710914292357622289008374831807308254202280346628946736127962913519634478870668239309197428795000604631596045616962940756702302605592467622008966916612026770443583774200436311699208016417381215147572313784108907644770380597635563100092867023435820984890079322437114365889238912681347677148769939959376083214098192313769679091163966484858094278485202650785153909987598717187995084269826783909172789518575935039159759854579975420762859524908577915119668128186703606928695822914047046656888536785396419418178913556120281127590693736209359503300790580141304698653162238200936610148749000217914234441956680950100343691503972853105841229150529233481594399492709864833072558855245876876108558173950055287155528255261707157828836392271587610193888964146356635274964792334957785254616094368800793789262899852513567562059903738016134499082776366683576979045128727792489443678907341644023439226562099817493639580798540730244285425644844119184533696356787924545968271132110861664674299615595846726721197141653027986324524102208156738378107610519900448112845963637335520826612043353716847426252146860870225591423810111892363842466910795366629485358700469264914396380239665041127721189264441185708302849157800175500263501935750615975159668030169778153253557256960358489436317522233899176659103767430841433395883241448278677189481850945815578916304838043488866299183011843195809639902115343586488930108444405736671460042230440328876370837723947563729959244170402517236062248323360894129788619086405699717552542089354794829873101133644447428098391972564008614400082709613181135254798708040493474166457766663924333256152632671923370304493028412210425158597443146149098272381790355786491887005102546616629209616880079044726669588400358262758408305387923262267381208094344341656257185424119524480682269411812842588268777773117440209503003956951305364095629262247665365289778194226061557746974558127509867085180294193607492455409958502891800897761107271332816895888363842125300715299541680865571311462784524687332440489607811603569044683671378872563519401219828943219961555211665602834932419693555640547143956850057086979504508121525040534674055315454060174936868616637558692532383340315303275120902486596144498080698820976691755369315128053157852838352236658736555913340811154972100155705615707280206268744740821448799269554113907784732597086677668355337346070464177508617656161083166284680195419026882677579946551320181802427727008487624224792198777060540026188952580527222087994088339514746554199615520166351153415831476591572224393959656491790897039241972939417141884587536916455601652733857120855318055425371647500423607804233703700404777450278044021796516161660963686711639117885412309966018803924158046377003688543681689578563608533457526521043110498179259237414524529728068716001542949779406185109629708749295831964445681152664992970651280767659739431735429676233255221115086488179760350131028908271282112850588955468991117678366230942671258180252820582893339524885559939559765780238866037522223383627048902630519553481271651949210978504573241478522298296176678508319607183617683369804496987242811520277546857782353343547220988461646118812378590462721112006825775860818662152321072100095219460796707022188104408393227709336200581746397427517098463138977175325938041637487615577592610857302536054400081245716621401951575351814791342840319104656457510842859174711277515556088270227255243754266936479680103488299325157303271149215905851279016279507812916658527194606102502958277345176671477541455009342714460464680838175481546156399947511691599906360428095023258540068427379291392285022950789138778142052402342312061551362886302749965562084727696514810634235194770101267000646710662032821471750948970534396797124794255613491239057413710469272093186546417588331434984861271398488982139457596499467962707317979297628971333760907884725868870916964312768174979036843696122932757131786844298813290641595526230590952841839257820876570509829509867100535537451319852798046657167885140718285780857629229027306814155587919861463428865980357152382821725321610186496816482501520152640415605537666436334383024628726125697355356041834279400186192306527390260811998543191196759641676013095681404348227078631318174080342962265315504749813934977735810157182087010754840787126253205540350221543733720663769158241549545688293640836439323592048786458436653687528064629978269475408451200055995834668993751651689662731759143581867394271484700895269491939889806251084980565902711888337251842813832603873720657530738369425897926110837881232470982121588926711364979528669416737529442807463555734028428453000274392196524045008019645236911759731969911965946293892859202728579243790889725523268557250314687592372753526535908873228175572291366794390702953939653889567748078107273423391968007609503191382016954084090493091786102228006157362218693561898429219643962578487629475487262693626302899217331336854670848404942137115893117752530276202819311878491549168088462514268456444139959880277745845871255231628351375374413359806564593075721150726925024654300580253476046051892971136784749906414742858389751298473757105233554361481036497086143050452721577406660245059144952319921416750944681447614119874871084852555418757055553818967312863635982930837299414193086816601498965599941170579745043360017702189819204557288965219367571211023347234655297881268930199795899703039015870441408050901783849533888271540924783428045214889479720311981041208279391305934646266302482191077013747093710751014809898200186690138333551945815175112831156747550067000775963795867806473258042742822778888968509505325348055318970146764360228893857104019723059720849034863894306620643455258185556287845407477236918185470126582090275450935663685377925957625552407282398880161813833259937278163633685205925752940002819897348516731830037520549281667091312549386512188502790403813200296526483923147583533804540309133556256108814240972427709107579414041777690816698416552006594609851961502202261485831284667007378233501585169481111161884686381968624005170087486333655527440112380219818822525024765899686044993031097895523466858728146193121536654833453324800838103491599475959606430708345477946399066222568572197648691811453996430728852947138619933003024131812125566468291288637033745699316189126876011059242998291483509169721342633953601450852416055585677938862438378148706659214541039076495095025115472745868702607446904680327924089913451747097491908148145944774127948603295911459305560853937506037093567668710769699684056704371006441741041719823372121819866296060048685759029024988540827177191932079125865331826981314786644084636369993212258778043365355646812324294494941632686777544272295136858381555744144386574626835641469906767565865777387434391310963457646712969185613394258232849211233555650126094450788082880921158371441724227077493303228413359999587402253400249302100384531316645822962004920561994397563785594244419267248686565840141643463615781072314867476180902313780299264017853960767247186803786838804271475569585034975960278650928304238816070689679192409918087636187659314214084587580781778736371583595737662360079310908565931893513129273747285510805516685439658247050493826386050065033463924627321298998805563111884402164380016439102915048240767960621590347760167138304754070922065435218796147562254964272228439227703620868452247114908942986155882490371782531172838430445387829502272802562288767061722017781826850115350934551529860195390141119906500856912849246289307928990089205444383514320171847586715146576888733360740019565176472522359886556069375967258018428912286681051614703706957685004871845749404614829199151284737350052626133434431854756916170640573046158919789129835050167450647883095674373892658979370613883415064391526626353093169894586668246204712462381882556151329653327714278156359585928235396455381658712050770489800660050913219498173491580657131753060531001593790172665687805134696001931619504046657441392238963782784093141076027916512032561818564379264605282601568810379907933900183114451903148056662679364994580420230153893044627549798672728157651579208775182684356822615503864329021470823863007372132049897357148665887001009964611966227466015601837612349616486095273435337695289457254753236596951026610278597307103986512736329509631140385774729145606152393826827824797235510895863260236553857266006243494627570948121681062212591600372569916367279496765205735508817123809791012767422991460044715412436848249078246637035834982659162259388056871408217242094558044610620232576652124166160701662368252621120794644672132243102391235007110621165057535875993814844935438481971680148100058025645911720101239210882604419529968472158053736433679356974719110414567269938024234080618875575627873415220927024953858760466372919786793028307834355112596570951890082213616022372398752566499737651961262466256270854712768319254430848584148379813942589882866741171410462700976871167545451354678315154240400689969354208668786750448490245958620289974990220262912218244511629678990417749607926894527204352328190160930964926378295368861836152082269310545818985446581471825206932734233524014407213845111321003707206626819726890402228909444208008003679412878518202360431109721867400507140520613632429887052096367764532762702465336191102340284563959378099050205376670543716313733710113267737741845659519562003831103139420016737428947508045543160666051322469707005253567347003541863560227533910505514294769790294796763183060033788652626255500169085345697788054372593922919260007074800093586963121251892729627652128156637731255707640932333130016002822740708909578965008376036521309810193404329049014392719358613484058360418323783918976767795133182487000119438646893009660332156355592750856347460230929598230069816630447723292094815512358832381748388500788545333391207044553699230207679421813236455465191506670298767927332231637909680058771739226459898786625191260495505327717755653690521840306783661695406783083331175230217188973165705815939811085700131466246786472351493877371532962678853507331432896940787662612791004357395308254735332291289530785668306184977804954981718875724792258254228217189176005199561513724107451020134689604969653463045556501490993066968264435505192292794662199348834722751787430555711143873322230348252914076188673166188365886405436270969527710754146923473012283906394310765185512135678186792976880235689993964374509067385518876597181580336338137901109377263615954735310406741468664443689907465047598990749429239241157519907707888713530690833004240473105797737585153992724169427224815238122880359917352974318681100852002697560979576669780467412264854716429481670900865410132339429722319252398049847469954345830781909297018702732771579544644887867351297615857520044943971711630685411773265985732608065505302866512557825717357712368057023671651453144917002299209527674743827771684773682425716249302569187522686814721358983787228271718020486463477557989266312375481759025167013515262249287916158251151908286910146717231145902946500614285195397925039098424740920708418478800838608953420195776232724230003997866421218923600018403422106614970055832983380332701068724660207859809330627664548574221480615596614871308050661373544560278362772070024676521331967265848737759531781936560280544749064691718535743227135704357556918252361313549714809917361606312526595821356348390460124782214111589683768971297453121942457273007262396576528746591136565313543378302931552231498505637076494359291972702383845525255553101079291774898208289747538918756543726847429193872296118746729216805470472948965397233656401812215485132469133509691466265595586771903182649522599148244367876541034268335973861461308018054301671663867815233607997971234134173399950122473837008380322922964236333734180738960513921088227502858948510762973025137175895669933320711504151458519560901582545343645192077847441173639768197017594978085857781898593520027777678861971533945794338451518430951939796566008348526309151620755576489802105508330171334825624055976336635271712741875874564297034572204013822377438544794366967831773625318835189801675348027034133024142822723193960484374277600399829138258457871318608882445530794253207924843686466861032672222317034610902430555133946216209858098341061252195086177871218960445265148812395989845494309979240736607269112850599093537222280728581928973442812791022612181474627828949280762034635719969765403968832591885336688043370628672528482858915774832694667676959015645350004892868890883975899885719039466203628718631701978281756835974814742199306586859565483253840963051289844219871280427965815351112581173393376203075707384629698371935147164401962381250325229262104548608082106533101641694688986092919115398922863797046983564416301914852994481722988540185477646901075675153083216077039989055875911617742319782000272703368356338289113598111058460009635019819579420611285971739310668961783403733667851195286775277533272877024145319293862448156120247573344079833591017323635853465306281061716141926362891231593518671892335695125958612606113225563347001377575701015882458172949396042548248023644965336990095795924550418798359542826580178454983504983674386019450289439642892148339677632839965401163856137233819585618235385736817405391670375115244775422332483986309583965679775519834210013688262855939708581797600362145974151306786497244619178668755904228054444269958637722643954123630604459538587615928905722777266310986363403250675682604686077718645220163607211191750565802501927807729382741248322558562910777560662245646505860630431828941235861424106535998816987716618589471358090857383832390961449634209643964922180182746983660345707924036371529979268770647092854249605510151425628184293075567362699096613491949065269343331399200379963521785364303483887809827113357961143499366397812099098231821745579408186257835202470452180436838716489894645440658144325555671487610884395712622766979138883861790002744375411558043059665077030766916960800257845630573945246208272410394926655225531476089347039251872076440282352176759663044005612297258282374955369572217485329734746782332688092004095110278962283958755844307915838075073205511614446846045105173008098705573056401571169469039475151756283418770146884023646396989396341724881402308408776052990779108058876674774403887200613931764435061865583798231219704684233892115883290884798566574371240371794812542133316564914347905752640717350169714916186522543055735669851779609308266447191943077150848177468431408927028173405117635746749452130358020703850378915026169020507392184037292019451239854910418409799959407681100259363382078430389692131994916732979956908668785322030859575070485079836309005489097126759026227888254340238855668874084829819699764714799830387806600829226823356574174648822263250098629623489370998705355441401856254432866658366114617800851782684651925000471019240536381621995230360491512982495635252528504697576651376443786975591821792520943868182660150136623909112733449065257276217519133499190526543869797962544349954982601029231483470322482328720318812121912181377474232891618085528251719004426921310540832262815301775624172875543521059724055247563927890839810027282022738544303438015545456971426184943942046094143289684434778585464762014011601926309372340230511073405381171603065376480046370494789435268136852282120787739177957860460906531443017284898501204449522908480905988099899963915707438627566742488788767008364592341992086136870202051061162121127604694448959014114204563800581044061312373285372603534959816067989418933043926841268355513446731817482995120189286746895241647962632531953374804664416132384902934214213937989797118113740280638788795840092600295225138842848303040511199663159407497810420563066682405290500934357136926922738956918289562076737668352948061046001957046886745024678339227150798950325323479941294126235441783057139710421642039670681987567709500897976659988690198715362909318251942721046523529243463667168641522997095779265566825985665818895862417219198682139773049072251160706771357761046802203917287507334698645422678446347648699459388259895915830162017759147294991174091978898223903954776137458625825970496134881296308205852945465930412001256540984998111142113027624962765284289870381779000580218587734411294230574994480134357506757120902063821912684684739583596381922701594470422011209907367698596136100164028092780357561969142502746306057793013029322994070367570366248964993471466456822615746189492122469743605512779592680953517692757556197394784875075094196425333941491291046854963771695380231445101893388918698559601999823533639600350683019661516199396580404736668760440609012888257363052347368412217708106513597428340519292718032645418483665635162234008624426721858277314598739266010606539976933202664697561499961628894300394363726043193364462676093649532874039705343410097778094973715723462183685504405816335100422912785251345081811406867834083314374629440323224741370567215236381666497678317249943786606463726652006523175942352972794886794283646310562552001678695861295841368186615437188633256777930930471111098715651213779756850413866227746686758916420703308024833251181555967712538583806712840100627046280949319849989681228073128593176057933563498808522599006841359090459709250649842526462610466882699031607664685241418086799770861224792633976904329546050752792866784707273046818100007903870562406957620222801776595474806456926504172242877301335774627237756604631796996414785110326756398299380956570312930805023175005307912028710088671694911010781262491952805583860700670074191805615673725017487768866849746407823864078709961491280222421790894920889042366499417586536084197011080620899397216590089972750647653041207580538501495289167035771259888707307323965875507038349894869433900899551151673450174954413249540722753667741203598698096238807941059641059058449767582515522303653255697351830054938993598620699906766414915750426346178064489465638307306823560569376480581618274343689440544280777163876186686483329474398205761032197400308998224348129358034183885756571017005158634290116090672784716525911856928283139330765655820593169027903932509668144172371003349978302117698750063157057400636607128582835357001257362697199615053480172900223815506870045323558034424688209578378475204383502604946429814976409527017339603463457157205119846360261918869111215507789559886677911078991612213722078459862501381282151446064871079980405919610974031409983742435122104648814009587095977551361829859899328516641537428180232597833035601371139328204348747600839987932878452930615544813241024954463860214585671022221718912206062921430322460342448495419199466267804772535116157295628512154039322883034604001026159791695848132407250256863229506591768158355071253939286034878834231697293153589393750909144864197179991157875920849094922265197213970845706510679001338967290602172581191992728864421244128116351731887346283448731016095909813687157488975702664836281867263506202961119257745977926228289810958015354888349868585322520596900548266296397287468675289824427920376762144394434792400203533561462892495188680628698326443898811769629838286746963469385709730566514571589609627753519344884693840601521692967525646803924080823596508267205195801107138572087809566009891126927490380553118563839575190986968208232160013720577064286101990648549826683050302160984504390258320676587012674294095021278071205897963162180472609647612436550021135159775832963685747324186208546755330782390802281502338311480297776010036746672026133502103324658357324193717435580042868181402428255773584798540705519659560924033314121719839270229489365300924527138417661515042387953151847644466635016273591806770272629666198310580478912405045660196491753501080100001298982648316412694311140278963001619925623705553858236714065096900562189685789672079685669515964765044459132565547844094224310091236385649891518966616906942416925253347636930898892729651663593771084083465407486108623643123580022143485787878072679116072270049700040354462431149350293231575237974289317020156479486961169515716792422576531724330778802721633951142326360350692306158712382215559309481587798191347569504027814030836692840966487745305478974731485469575400591770143714346049336040811877394149209111724361389322335256074909351483126090822361582873935307945756514023587519160108246122366902530118881729541862843819774362046092310809443275947425172601899457755005696879551655396072221910106833224372565307280649457231137011156529639403263259551334277355462780085662746767393983534503567764340354558265270027826866407115760505175037339551831755905958784445917550633278187569153724411762133536672653510444885529147029545738881475856041244515602309459797180471116635495476947569733271323506628641835015398670212996160805208610355263215731822371052521910150633545288541355920180599236436522954689102799104152499977712677684170646366234925705290822599357172907852246277954917866575034328420459195931536315269578245544194342858186421045843924947275734644713515689569024845452237768082161313124053642300727253989540599571163988113699989043679392062334720796985354258320367108922486798287715180468319520988618124837494947608165609022265056030523467673415739457530044079945450337875865480889417894783830132942628818477940867655055169703408046139682236656905940859056131526502737010207708718008607336568047770482775519404227959009031937557511635854497602569370991570791760842147391071806107092887468986791682896880076325406670032303367499684191864826078321692519677440977933229266838290668562237700680406454616166211472999719756901055069950616923691912068359358637088492262000275711235482211897480983912703938951312514069173393662733870828037318670213077176167433871925632244699597945984375791468734236903093319607755447840017443742727531149830999370473276465556604534622175892430884408225739946160314585389751131052314685881783821237943906215805755777830665784092640223887792853423745833221626663197626904729392248901469064691310433864800415749349337667928403817733675126645530931662057590381824710124263532384815197210018166751114499269871676908027513339187784176621343478002358534775961791924832374347976964351686127029081993812536844190701965712894957744142556993384904670188779559438524026259132871906807431007257659287389866396171743644156540598410422073985170618856708070590377734330447276093027786440184275664051528655833189694907134717426368917252565898694327950519335440510448615211016146151955983443111568961861352282410886203606256126062854358191087985640724845567142702682936061702383666055758995228815008389133635244640251727554891411458280034881320971885514784391829380963323243443318327467844164293850014523167787545602027085119960470370653615057601657199514372573725703512011743718083382033291904414726332761693142202567536980583445413892662045203618027290312729023789925746599362950703552404687191553999800604662168050202346073775890338257081147902858283291448836413679393313784116243647782879696716083344532593380172593839806523779740913251167644595412461905532751902849574685573512579525032800167961196586185709294564629690049476468035661964857859544590393707680088909929031331492904951159119828058496687734406268795623713031640897339944455704262439499494399670925476606628586702533097394935754384638406090060792274985020500437261216768460979241517533973689531063297643567427347042870753197926518143715700023152004880348796774805530604445044675052002908214061524415803431329920139427619720110151270622335562066598039844895121634290588594656560956906074004286051017341658105751771822327774630756235499587178729778783568871723412375335879847852307504348059374026034762242279103536431061289563902534388019660638690595671275088512439504762911049949367643833340207336304896445610611328357489603945646433091981798197945044172736301576518980512013165970597018808302205363494282529989597739954979596149725023526548856808797505931646020726233376250575154465965217077648518570858264458779356869249507388872600850469471511428142901854363597011623896824586825935636312419536564324928887220607064414694229976473883094106982236659523735091101425099471702101141018956862287306506125766390536141963542781968142765245772795891279567585873598166251961331982203050924751255689876471395171275912823827136043855615683277953643571080079945206421202855957874434102789980452088585461648102933847617093210076851821096742369040909324985079029730314960737650024244560703645670024763503921714267602168403134793495229211207974123215508456185550357006554359648004093546041617405502452254258797551742536167748720596760956638345977740958833891216473465272745311188697679664556912134471418989689440166252889590705699816215095167557734591844424687572055783012431933409439118974621706505916171021140356700227618645438147288956367845023599113508317526005142173964100707575615987229035170566876442420014349787363949463526983182721148306554078004794414592932008260701058370650513454003478355193008469161610650535743258132423199591983342615994686026268096186977952647724231500899081696345899441310567619884315395679878570767445056664942483813020558635952120910963928291472944640864932227853275383736566811815156136945660399021202518289677889966469768688846899729714279749261512985154368824892915664066009604445855349305088545313653921749904123085908106043992763184096271096007942608707387618529162242335627843018885929442869951763594545791804146837203549482380104063905707002265824607424233341011377054427565941849668789301249014090502107859362336131948760379382068772322099308233362746351357012845718746553881327231869685474502228152287828464326160677941702166373580607801187162851053827632209283119312025863549031066444136113246878071326862452766766817949432073144358905974109407877090843825472190164731877088072407560952233413442454280131355328548841342882896023431889830876590720471536193363708787448615223579737639749364968416631193273309834664386205472733635014540819533109983897700068466480202450148973676872296018634983334486887653267933191881498644542569309950577149044673975885704644574772002030131668438592515770701624145948559396993651033843908955502813708694540488881778450775766792375108206528791383638101847333002710091623320912877381984230291722404224272715606636455010775119454361962042748045197217174654974298636981942707770053493164989727448936330347077679414409814550439559145315731485961743684134634668120558310131064905970580451124098294931993946090862240495325889820770323096192045407935989447683830952270397866247702631666195893457009119147978717705764707123560917860235440084554515964414659924992440495899150252787279707089211927084441776332345787463244244482789533470000216646089943108659515801112818433261308279679635180714540689289658546351098662284171579237734845347312989553793034190482367087435907724185917642530943342098891406542937833323346796915392436983550432638443897530534236780709636930717001019100001609246088153713387338178509119006810746179168444019175557493049540813087850401620583669715213780519839509011450719010623939117172921691696776669575343560979105683411466861955803307776124707722068618248024244873600301564152643910908285193806600966931321335191486776201796196279352662187524191123504250030342117958047342118416586446935164116199957125555190819682099375629784570864620611464915499452647977364522667303309405243099089415120210719514806140124530594676724234488227275050995188092513992539389922050668945138600141778660417011345367981461131403091876977823982050640865674171182049270370067304350968584553391258084168423790890986718678447875376791779472739061678236919478093830271610736344566021032534040541051006941732896014514906048632001377941903090296224626411042786083034016122733276652203255955050118297827530629641034133647270523548412579449197993714478259690510401042479292231312502108592263417327555623135588316439256766961849617648162217724537371424265660983946845150081142798227222915469243290972212516289887866995381352930304648011204882415328434093739041541142800095953382862380113838628742044059537373323568733046662674950682585069042245067490904248328116182045172054419703454540895513541459070267720561542374458757927216577687741811955379467784550306020305578205339393052394936981846026422589963119189937753818868766166186607612684189012686832655940066684753198807970548748233770360967481010012772866893889556742661406622934110419450915046250611313557546397141398873976877114581747717959793113557278286432434646578664667405350455697802798270169474847029572278060368777155434376125148198621033200700983246327406287463261188454485093561947851869564956480028584571367833887514210410462864560037882514749708947895878621092682363615104527763161119885178669597402116400918252104024961513096212022721574244540927539671921623679350202094827479808324283932912206569180302630044427533429363065343909026878040012243958737333910212757658545578615146318923527004946124074830244129515608514991899374121399677062022140410061752906306213549245290427907825009134693221528521709222113444836787170589748350303585920168381818650157150389444232981490817589344325947675867004263124638614977167807703895444784535516795293371965691875448751082294497829514739300313646505796176012910840295783747657692083085629585182427569668562501424299090829026743502231590213636270223076209643922118965408222154121222057656341068521552537532034247456333087667511568213958391430205654314986647687294484159065667730223757374388392693807969016764306629799944910303497687134845923771643086588557840546843842013473041624232848344560424301710112579868329802449062307842665251228722809857773910326697877634549922021126501845836781348160375104717932312044116799182006424981319264248463638148031017470401214821500836451320919083635932571503294453894357135343573300476828698628477598069334559827065208806849087808866429395569559350062189398046971984999569058905259527263063215419136501288817126752415334094661033239548683491862423751009856064295978965312761638219129378861570533686742382124958296526876385924284000006954714333096124760368109583078413846740821791780221588678490322407721102954006997109194619083921387346238724251473436157594212289576046334112051437912756579643116209681424344461971803774442271124196139332008841053433878135154728253142447304891017065207265306788003275397170441069625023716507156991179574328644264801587604689319390349218427925171189905378889459443409606166962131411917366160023869700939424928949164455806196408734769663447259166283923020320080691961876535012299418918147177145492967146526691720944407484606717158496335174600455665503913934662078116461928843367336362938221976136688284027899047463038520910786353297748565343137535175689041764505574781393198924535207163796217331640258872583072687743117323843439382631184443661567905871926735869538162344980560351858129434738987641966564312048645753580393964008679305494756983334143598747587896666616568044090245855753423153310595256924685579204123894916227827017556564142639066373081908438848210978121067439907011890476496897295083292916063854691752547891845268228993430394840055952669050271850483661426009347178705322181706005987842425926513887129473268884223720352863604547103161582795356771206298391301015032003668681752510347871592768713446186397860523492379146728767454723237602411175848286706001088512974107499974943418781588870638832339773623174382580063231862195903386192257522673904038623616750698557728776709474673770180623829014795953863212732191197580089975415515362655904976039641509375004972128646172049343529392026120749860742370818263494824781277600368356074191203762728135400101349570659311063758841704974081443619321343041586365840524120742478402563573113682189950024717534265106711835804413396381804222631499141985798147612857033018555786067713980809722048469565323314816793488490441382799398671291458994392197505978655350219155730416234478793388628860104899335549074149989648711843974843283712765365311053413731631707875304851600973276308712917998478353771511382844203505827276560228762781015493833259718227100889513594837761855745052184826931245428869230741051017550969889001702946298979675989680540895273600869057449222966623256825818224550020750428255642237850081387572350452844109225924535526109109852455392129754263393369117465859972432659738816396373653264070035617841245392798498361595206478015664461582074251951219115708551304831927108602401918770290439976584081724140160937190570925520902400120852629521860865723132372779733231178977839728315110942656384562316527334774205734916106192758599043971314162824266556038827569128140298364903249133405814584977854041087248409621247759804881751955018995368300917292129569289037459616457522525981478674821221867099944144514353210191905923477710454995837775124531766817756297580759884100292833996046168309320387638154981043534676453376547267763121919745487320841992153775051993343487564591202007466509686574976417333215640939671474314191977585478877848567741655712534315660917623114109878464120572721228857163528594571740421310516430693750501020768516506871346562561869508911798890132193404113521738736677064453806313925974644082828324807313783652618117804363376608728831495145313602096774289522793967719330937955167328973167911665415867620515193422175248211755957355894535033354150697674025558015259637382202347332769199577205637610875811321475678787184295503959708407468951895697027344790491314303570672144853346318815421272443014551051521738883313196572899456718541305853314175364695588607858682211869336419914637146330095103568750411535261935564612713482807262618124356086150019626414749456124650609450320275415185862450659795520911866084204017235682843643624456327040150759325605901897372124757815529053559097850358565526819620214107599373274226760145628153703789951018942090175639550685964232834472292385505653239615223974056675842165472165966934519338412157068303505149443804888296885923653420005630016944532050910360692096452435042889855750250022952650636074790191034937234413604414313494878770584940477507830344382359498427899558703635494723682918879330570078011195648456402227362548444465592083767936437928631445711472927801914550308410409181356018603071653465703317602237164424289189256623238995493372774931679980304004630890955133187614243772046755758573782856383579897964731299778614322968222592383116519883603020858834451499492647761323257229475402196366809770205438196801586849745225921653764333395648955595627057199842236382617471534344105340621869262892561163891274013725327947344288945373103436528213517454221677628704504057128732362085283889240866774844183363902180685955901070386175226805108900059267051953264590705953098370390528398815443115098352333738761087899320440933393161988708584964415734146819817661829770746711059880001318409129375777804182814558598714215044684999908840236400784675418256108951096953847937220301160104419631455218055345588082556095720095380008585323976489575009706105380243597453330510889501742849929302923764442119501818834586552089810112556191033438209930315438911890702973707795378735943171933709065239168317018237071937220954067243832842887078741926955298419558426838063608591527611653217513081410072457107228662773993571621836440727674366117822667225135405884069936998271198220636803197094417868534405078369553362791398093118708384073240476755721457635680107153678180638293649312368283663960246249609272794373769430082688615905032677126043941530422906489109274121770723438381258331725135770803230876593425664662437135322316494826180029581760265663263530559713048373023644169335078470620807573180742143184778801263593747687487120835064947336128888990312812875309588554359479139620321800711562089200844145009903256542043934971901812905285164192881883897562582761878726225838047638666025789774120832271773369843744821353714398029387634654859046214716808487304113019503578150054198531895260534819272123358750668326996244071060895027984527174005731746308524729240834523669864173914745886671656189761367456868746243269521810586308411121435930365725544462240659833367521042863898670157996292792432709427597633344227794299270795485002717294932640262448477609829219797544395285434668404824139704035562454742153849931274768424825629523059037559073381785090955393294965350447987962722469794617404928998849547484929505477207521127071999845763803862529957203914834814346115542717411710705096041512757036034584628284122253346801035633983169787759918232336315133456478822295500465190226990146065235118413608235999282100179744324273170266455388954506342036231090678445572477537857590099472217995945451922135167036145285267270893720853175968986435452345190524320287941074500817968747837334409319504312437981680098179092036271122103589590162640003097123128601727308653924649166300919243174389047243737620757414299294319775323005041621585392799761960446298793736956515725474478236479401331779973467827961292616396744967236132095503174299660265612089138050486248323149880496359637611061953933414145740521553151164915848965443671683297556475524098981810827987536204756580330515976910116193957005825924641435986244873433857185149464457406585143218357438435199662628468191916550357791252654779737622257656840301285924953189091743559436939868661647001571756256942669389192212563117112399609265252599548071844011690201332388344544928624964853048558902703762900597831551400206426307598868327998407971177487611510813502575048613551778267333063989928853285391945857641409453027115148876339260126889409097155547347178226169937663228837592161491176813942363988726167556212041887154038405384974478252562441295819365841250910727700729710656560403114206932080645781371951108035023884559254611187296677710579655314677285131903970007401115007417947779374932892915104108495198825050213638678872047290589938549008244237469432506148273629839532568531900180542375057107999266518972961434717365366756735119295667109944748779574839045295959765772041323438302959870923868530528836483827790392571296821465119670815275509580588106291547672202012497423057723097411776936219922430549675551261471768655605739322096492685790322554610260264084324670710016843435548360455314361226264716856508837412166375720519417765974212064291659632239281507866840579015035612005930008530815103749606313497134889995364565467881410319943141719515051410692454425657438413626750052584952349881732594505663080849880058891201948077891935759554865892810759569584257474000038933625281902574598446731207135975768651838647416560957810954287760174554306081488900313959707342745363052172326365527308870253601630833209107235884564678458968531711084628517520673101901176211952324874198580558300341101344282984715822529061328572659489498939653238067534498532067535732049629804188133403536537911816430878027231903885087026459650567605442015041736901310096703887365082261999592568418162733727042574696524053744538872104829354235169953939805668871855895287177777096680374657774748454837808104670533391740157420851231674997341183899685064672184330671886311337467570365608212620880931696269118227357011114941547561140539633136528773111051737027368775513040280793454830561224864356634087831427622618667900403186435845963566082436694174693604972746658389641183391238378496816292184012727467059039121923307084656110919692184753945404004348604533894419193331873660572302137207195517105396154010089045133979814037940762926696942769813428594441475765063197136065195664742131731222878707399422845823858692059495433691987397352129977715697590957014562085557672382432008467372330202851603188016341403064619837894263296280924568930108078742710756262107772730002967945235963028021734243423217883553442576824564175362191461882867970266710145240780044476810685819411928495423720134726457342478444058380007057626267587628174332156232886003335985417314953900015133663104817865136201438506269896400394105614023778212259442530648715237189810357586096421093247071045616699699736141233185522934578267437760872654957047332641458203020052283390184817747583268559956212953991068087824378011335553921252388916047727690506692018840677543720873662361093664720579356627636211984941516649550286201044564503864710685477138574063282246241183590291304268634009891992384130265325090008143040216206888422279346561581395437247036314689568536029309950324896773091776088633111312829049704584600867288386999504186932013094019486050475230905218021798260402235421398072896761679562111812873532794992896810807893591996097042658845675516267954907579004027393594525517139997808885439915419531461030324481606515052711355171044621095155955401732967036184532039028726709463000246379015900259375531066383962784874706782537062839318375876535982933778056592309064352502037777234438200093115656838242836708621508363372132688212565714690734328144183695249731004297656883714480865860138112899419875396325095197236078793777041423039780172650820162246326965907427093124198166894442153986512818294485921304918682473120962242148673148280629218064367335989716554334386621474762781437803359344260483579973668096120992812015154030483995018126225154383853291426876450318378434195770897653956464938798382476643254589573168715326776234323423482361706739347336561389333944410918497244032088860564831478375777292749490745307463419738581864815484569856121459322384961237168563806115297607921650128569924528626803124350515761557701593735529520977839110994325333730562139372747773847351852831323613711353570567856334241946188448076642911670916655644789244761409211926602897201628989663682315358046211980063268415080298115997818031301894325421041147228432737417135858437595896029960532355597028752110212927377731647653253766205239076993694438848071965305376901680742423525850628210477717991746624788095481953471865155379018965776636906429050038195719962135241420797631983755904000893923258898460096676614868084165059843678349287662791184970178719968124267304880421288972716462232817701238096667685262950938672229010692488445754653312464606419413042998016540002640731706461166774411626093148998299633740934766414817950614764703307192595645274416970840847297976980919759069935097942624811491396207153006489271105352521621799980410956140120765826902129413617786801277683903184623198237906865701462963456414290235997684775549207844461858151021137358004293639273246597481417758721307049651210294256536979283486095270309590608722984391476483073061759685352510040334116311893762880162771322187719273780706226206755225293935806364330513698371069089456772830106332332340595872791462381279448082635246865926158945515422202431711899257729394127212606795662762443585367944910477834141480162157323741257724234444283047339377700329461453035006560814384590173127525955904227612314536108603607440829340062913346799018658098251152801552197922288500794678244359080372843122411882912257382927580118716834351428657422359486653599325770837641836992085207036250969231649571540685249313412078529105193531320036015300868361058428005513326968207807056696487085135764807512614784455266579848697876539508754390568370512810251378825514361173438172741843669595345151134685138277992545764823137998096011421025118664834330214231226390792058892192218316746139952536732752655335167456170225874439055345308871025683137878561441609604290508531773452635842383667302434235155882974772976922335633755691432198704286144918213969097327331490648283900496739757274474990687202830240188057952382868592749995344546463486106401850515471275344972543215755967615503299532289175826551627411517321980592574117177341616741382110134112673054746186483248155930079668047763016515386842745031037043055066834084617884763646902206945436348823153342903450818475619249823290911220182978815671526172951000194746006812353749362600206801926834531972150605514883058427640129924352357977035948892758390692367702046716032530090236066515078264961591514979852123549173903144941615900476798264643497786825630276481651867577046758718990840850859589325146792560998203614565741449986827819656464064359750740604849835680111764483514340814819398381419054592734574972442377495761879945913370847870838291037515663700815933411145765040116708380600038517581040068504166454603070376869508414197960848044198516875430481938560693554309228613186047890364625962513961890836129033539761826496634890494812119204599331917399398452669756240859493428428195286918567483857709086356734986332946515852949562636595007844629215750064589871940267241100000396370941573435561152835287582244336499000130710537314713143689816436392006639513795578496549137138507473374179733795746187770239129804914266437473739039985412432456090165415616653388790979080097416998269849718481619252899186949017029212008089125312439380242559404139535943464213886699773957412852978081991996313353310324811766479917645238926173243531102331031647843909355991137803277502945782336048569680001700280654366257252897920409711383424132647716665801233319985732086910863883374432951035281346883720948983733070031045504321529845662083502617788856932344379627342236658243840210256927866781509744490408808757278371728238762236335477582998155171937154713533075662381585449090313986003380753994427311443857838778291564263683751708885105164594130800520719358921168727556085174547935532789744678784214857342224576547721286634886170086108818371029419609642027163677679825148744680670747840005697346090222306059165393514442417243973339265037242889184082108865916025424467235749577831604995169484751814126655252636797584938131333816307710012162209447792172067425507081755249298368056147330964336251002307217054350540136758376753053867610739808930227449058254464045112696851872002600321798342887205438319490998074359481972343753612677733150292930940024269574734440516150901379419048468655898666804219980385584345226182947857634133300121459134111392954734988544552021016641366119835865029689927808745855954618983828367299502571862899720653764892944648441111379292945794947594445972195099385115252987223309948429784759857766886689905254225789002523383360975259515058557488736275514341212558142302142533687651524266899159299111870618338704293781742838481781329147760131653086102680071908017053388205072444311432457393193861803276787277707168285356759291082750190037659855010269282126351960200068662440364678439903000195188513515158919684803202965615034325146765041020536452446165515979816359884782934528785299574338659468936281874809668944615392804784011189708554794195402166711011290647428040574298380548991509268126460086162264427949977449936753450188855524140583776416922858771757519073115128851287057891947530822227216635861234721704475339665892641914945067589852589674869087940017736491790250262360571630341795786257597406154892532192577675389623985117872399983195098118273377052209184827067203929038167472652758686577384105843686203733768669201093612839048268001706996613751383018909188127129946233660279479127277233258646322129379477610378518470964019800155587092037739771738103945177850374175621247381534747520077624275373774717611463623835997588349720341040738544723829484605321592042664345028743567768363706239946920474829114894728462793582681937560836192319171203636227191724088095525186178121884011523145681432726737638238822649390848551759877100320191624376126298567295235962817679022406407477072313400712034613994658517001668624493984584718081210936729683094008318717011607352237643680262110225267448355732379460406426665027992310817013059995023070282695907686637566893385519921273539922085323673327444464874583285894164029144939553754559352904333160256577757026244578778942134815402904368727281772719531000252593657689025341624686754111051294621366069732637691291322159234926128443210757766576645759067745678828438619602797133979414172244245720002566826501515283925291307516962105859519097348587092147745651521723891947133128298110593700007975253734125639285910601396357913335464993937503990453808388081561253179494203134688657101723147776091623163039962555062158881236433951271169263206413536068111913445004083304802343326894378261664442440719405893800177386524074965671181658771312255962364280931873329511925201491754885144246052652274947791135144361499881032005851734165335448907443415772015125489986782322998474968351184668612026984062519787979191485450359092003476933714264205017387435791658788929057316232052090992620630546851874367271048980725311709889400309158219850331801065715554482552004279897087060523566338926783376020978607669180811082524491008151512908307673356417402831901785749711208549926777541221457895890693033918906714383996420613213544037391747974333223435922338073507785547607423327987888012814880520890213092202561631097071270992172141301673209886876887617527848527194807059343969459549113644918364285768655095271159639043418130163563758991124067146443440328879417587568056311195933859866425788508987094403943329906622143737982343806526550133906050876556362503429789085039842529140069449996190785517173354242146214751390336967073420182947541852430210492550147651881123855670247613245852608206344066518215216937222595731058406442345282202415500617057672263174937777006269949115429108010804680703798343168857431891325597590477275631734841899003290628228769487865705308485182402181574955028602870459196167427709185355138724655413711940078061158912236130914260821139192482110771572507289613236382372732751874361540636676907265989292009965410982916015263287061782641802671536595347343174124511236567008871642032855943409302067239327311265251194371887924174903854044153161490612694227478394650387812755667320824770256470932016514875969062986410147476362372414619644603771845673331337070669438234894987024468120488727765471551588019472292021115375974439755160539114242650836580119564405482403873528810297317521192912419952533509104422988280626674416887806623314332426292636614625455678804986894274130801580761121295421301963428692816581418150395825169688115175412775629573374826281269604472185478093430111050982833210859744578598145588445120791680892268785434969736030457342751482467527778587576909836484730229641117239213249284603508198121395604384444292641993138095781476700802969127989700182343076022265565850292101312297575282317198870344939481923213292379249770056515228002672244578858280204475375479439452759260809102967577068311019923818943157825951211395786659949338713659949109545707809871570245112524123575626490277336424643627528266245377010254078294548311915598857174096449567764836986632865512414140937495879443963998563866324284825349546433213151815661074813249595340247485421921882239285320401401825135706851962580205518068863776601499994053407488302472691753536280984436943183497955556964985327041009822469472668531975705879478356987025199948785454998912359789435331943432670611469791824779462511338315831986763147493998134535731325735487309773745209476507953238505348761695839297153341425077841192638507767953288550992953596491723345623333312976627253899936523656769965031748780586370672849021472284925236157185334083402143172591803827712756317014653476812005998995556218465524976637353704322984661699667743931476730985819720407954883868817270500044759639047055894182161893676463526708418149837933396543011282062848440494719643077483278310477142695544010106622904121270311088541245627012794376518096797676588569292574587492354565570418224425395629840689250371992764140250346680482340139710110378863649161657604631609604064024550155853464919616739312273741021706648152855571466944863249550389683605381179432387688701621540321971150051725922194030307114423403092156522663773278933454448022632029911868965755747958010882341088975344206418330890107373731479523558874973253641890062431500487894411749392824736300364196219334260552620392896169384359379739704502698850152689514342112132719451684039665650763187414154256570736429742075140292310541576538625950484858288101308629697760186143484644100124119741754191461922394872803471676924277916325397476708073924788854404357352502321319057381965347903867262088427567089852513735115209762684500060657546011183281984682630356803768106435958196120079608226455734192552433850477460887770950644110481902423712867289722175702649492360164798079201356496291947113740765177092667179219274824318367094277890933666513815342898900188592454248277929770462928248105130269271018358222171506882398059293209537067403758900439547232384060198066900383102876031148235872439453521373080508032243651603383572585413806816410243381161620404970182277513505025963015516764443210422760844173168563903027666069948032449713149061370714864388735266647072330377669505810620426288012162547871065613106078090118061320442206225127062730632152371995153884657649040521276431394728791301930858272180388991424930840235871107846237699541656229899909457127069365340419415281882224346856535855057815910015212675951029399417764783737453559536558471207203876685052813150664236278166601012536317088976930950386921952588638623290448067642905424839029198277884597655291197708814750376808406164029649003962800622284671986111669120228108387014198053208781895899490282858478823238075895548759870469780775692760472426844971893099303864193464914748592773949840844861202567299254199359837086647461487450409388019972704423967007324229577869928516556844047588650840425181773090581369759063051485547370334165087664525135967131879906134008739019155487388087166777246890662446464900472586300776945867623137788449094311638201021838850641659558185449342238330437780890664304602438345353107201625662895246453702763448336155164531194511614693299953987782427150961401137103139747435959007316568869792336127895169218768435049055367846172291644637678190027021367849917511157612937102264471724690572644634307648778847991506818496935566037843789758318494795092192672780949155366236051275069018849763968891501018779547077525672388887814488514050031991892634643638501529310943411002606040918072935566635728843033804470267053708889487910083062968738690691008379754405051979638794780710670446504288212442605430416250972568923381425350623266704789020020332298380979223572149124283433414167946046420957729126762857819967125330375596334917414241314515507033580567501428100039677902631515510343172424485385911468625737186603136923965502834288758752196356016270140111156063242146769724723429322825801046432289140065219737236148146905432387156022406252835643228901798582481589291106285801326720285777032287120654936872252621424328667414711511703241064179199974154691352879314278803502551773202099946171685128962455374384690557035573885618909252525629437913229867278767449924067779279149590674267595835282985309313235414888951450180092814587046710540983108586124509565084117830646741773716690608018460277401171871792378701009665065593272969892015979729487365079953702883087119029860064497791265351059336648075910836200341597662630529052282435961718118558909811927841116160188679594332549190204895580412930438288359156329557728559065236467853643404657606659399082343790251130813967950862249742115688330677390755151506347010224472685120524487646410950098796121115018195205625305948749335032647857773396315465034447249502524112675149009666432405513437604926686485555830457864151664740509725532786624417815710277862966921410414397122510499342807686281935090097505870204158003106164547476982302771009399222188661192344657106466739192693559869695817705864254856802602868025943588616935404184261141165707020314065454086219632693266441885220499448510154154591155882910751322500391473548342216726008152708049536130803808194997476563527683707535954048043633820689483358837627915694218160090074791825785097051504074895195919469016299630593432840500082029225247946560104002726252620071670154846839681852256160278618955984942680305338671050855832919273335744096129516579843802755687633559743773244625447786170011082242546008901457284538326652058533066986559300507935000506241866140303860148303789528889228653321013461259747029186019580402362467039665951321154891758375054553935234632217580268888397957453323711472088267237100622125362522679037381590922812617658961013064916878100822865670801877210411536980895181534240813440215782687719031232845447765867006274760427402234583014134614561667925908508262052378757391516592562897599052985832886516178739891089681030007360250744978695152537040451225235006014247554185790294960095707191288600172302085948620953256670737147814354351096917842130086599624398288665381043558219200609718194365934191986950570147923332340809997356115464150557860281852622454893967490667020322637799590209190854395224508384113834264903230690170255546461394931458395617082638678541937846078585686070904609931772822041368416781692816808961123794243231095297617781682488777938225810154754050182466776820751677047376248896242731887011231728283715558567314353343208223370003722657542818976991495852273318263384541704204269351369420877797344823446352386853721074126377896182399898307646206924690702014848474252117806947452923231420728613963939901232334316402195459217652581071508127867249818737528157935771551749653421450847839543427238729703715254773297036329837670523687272399784521797739532032676778919860301101965631983086169178893897405278356372703854387579798630997921758586807476496970058915531186631942034759737922398740725470256541460237253151769568344503365627308098196375949398783046864254040769893975572835269079052032272608613681066366525145680143366080952626927411879175423052926417902084777876520123868085488589057392550892121540850850384436730219005904070652721132547257821434160200431866097935288926977088887535507990851992104152487434564413709158207597643873346445021669381907383685986404422155105812757306709261654542893780981799437753235019357589192783617726411751315240172708964684805198371125256349280359983072927172078733142684003351706083097889062442398736795843388880512891164600249546269732395131501830190046372334892654616707529456757502028845774215744942905047703000149070871562557699866659696257030569188033704855869720807811453564752378838272954425656283754477004881500136476614881295537219442684637091695921838933088744678013679694337204195343507118691283367822382382300010828833127031174666228365285530274758791352077985861667149943112894237192703755711277041001333399607711615762907111740455062172502446757725183395576560418286957480092750627170109295904443727331726287231011004072028579643277441652613397347885317305548237007817459489601276783553823184935752938378107701705599638807934897760100564933275819940577174133352716956646085568076439181527665146961092079155143444283114695713835166594619298160986641166649551177246513626579219976033446619175630757858186829097099153061024848751509689179541113049933501327913686577426266837996809032831895928200924306835775934889546780139611003255289742926266093183114615933886631346827484314044159258895662478698617470930998975824553936740688226318169096045679593905891148888704667122987563781128583996751388775997909617377473152345241234073426073870591310859047340006636476780797134441353448283015497401220828191047113486297837909082564721136521387232201364228239583165404370474440281378523615544395270249123168574356268074562946243691807017315277133152007956475216140531445932935639727065263167807766819991784323839706660827196033986545469667571943217736379163981799956841382184273353461451526914466982868362008302104378045048231781833465888268561992842720175739247132478829244172807160747751119514707090164136600597379250139401712550920049808597645596090407370136601244720193046785833046506431812456372293796989110492657435050272957885539688369700622289867250247832879233328133488207759644893415828605666341909108852824921060038449866435988204382821844639797239219236866368526042237468031555473807410726865169396090161626441546929298958475149670612677131423729984313656785787309215099811704898762179587487345182432446044403941587266140795448559324102946501369205152937019122622684619429451675214843771199895324114274332051633234969591187645900173337055375832827061602766327006227253040582335175470466680938262810354352027301819976927918167986438145530141801466654270014694593902641087089803244208928073838748328940560816126247304452749742179132786790010231837921725922021618638614222679891852697418380109691577638602299666716803478826588177026102854175528969524330122354345653991752004295910867383057796594349437146146076987052054969437392238355343113522294943240646722711278566977330137607418227213849392318405615964905308938729680963972713598532326727513266438683880384373875088025779049945688964416210761146299813663606512942464306601964055878995733495818991875537764923120672477222306192361853808196960691776100524345942739667919455397946181080744422956599318770159178181672388651912630263452238378720473903042661385162850469642091865479253959429632189256138933462834864977944267782351584190066607808957421502434953506463761281100452408810066289290286103187172569130454376652805288323926778247948653760266543353238486730841715605836233346796504070210675294578879630773487837322163448729682645066265296351637852235190456832851465643434811728428828974988697489502866753775235440294056068380190949146442995099503259925766771105666255160498529293254433174879446517939963232385718433237026180448312478387062421033756062327521743066335051709135165545937673984713680201616096070602777149005121387433291231976590828554374608331110711370915596619129149287152920700656348604005515938037721234429885745814933006506763315730432632264323954692265674434215675016941162652933993520337575575990763635207821838430366565786712533023219313068291784462892397596062539922500367501241604876344171002897600235491252061034013055503881237519108235915370976204396706935709304976721831878751022810520191242583491395029826143884493953233635173983399525939259646925851909827150451411714323794792859215215678542528630240704433383589668798823426198980343157283487186810286975910202890272248206688285567420205236901077115696783422568245392000056806401383310584560759322443118104439592683144041728792893695495392713066368051233358088374316773903874594180257602414144868290583716080184089879826764548216318167323889583307629147994933927325927873797806702303795427075315568300193683778211670875833710017525358461363767334140501725007096566807103831427876403517341599361381385636250158037814085625101865531885685224133251135750466735267585770656102922577916905361242585264895668005066977974435491369856103976428622103184119503400718398762595546475627730695768543984393207358833790360820981646488551514425878234113036177031023007193179219257451420749872912912050369358132767260963988147975779280563366477109073551508457870913931335588236034847157047718860500473639634568299643565031496778537346809218883006910527618653136717433119419152690580863992754900068373184793607873047560924430099110773019060957339923066806462222850041076327673026112817553790641625777897202928732317962654997623538612716120537366618570422793844338975942730124949575462069136389097224281097577043848604479689238148935321730927590043592648303533260057443616032609540564536354352338240366659119147533127554634189786212694918582051412395580757621078183206538140615864021073497239189130270311840286096850623108506133224395754828380965048648065922745398833459160448689722037407237799773305204464595905490586786647540602017305001269716728558253800394009377966596164329093242755823154164115464677933874831858516251417616022631148665111659646636821856487347701401464569728254056492945220323735173538166556441447172265143855653728322384133907512976621274435901728461299632730877220282091819291262751753522063476215649998634054563076331484493231615545603783047929079885466505849843034408039943441663395045760489238183033009205392013612555060680226837892953612743510362504504875017747522533721490663252619531957719923596203718681469814046490366713355717182873978274571493999345390497682847861815798801795511019305684370663403501592805324967610505733355710198597900968704842650651679064237157801291840066770037974587194736201497985657746783722731201063545066474091608173795795191288961974297737114595661008903693279195184108862442753689382937540809560734661276340462368653372871135960542679889732755853082923375832154078529412015116393453725116233019641530118014374023625019593887448801260202839996944848702681600883969806545564074840135813277238840310051492681336316756420473959929010919407270861389593233999415702123625888899430643901152774320625856051451883863513245775956534325720698113370159476513978404352436647692035073410469402960098473699101735009309308764482011103348458192993258045880792870508056937013245815934232891379490861556521017277135441548883864410210453283257450922309064727591063060973161036317179580014561074491371991410138790403002804083458640232294904637531324414770385810588130661942754208053752074796704323891472474040999830978401486206387730030356504327337937826965364812216381110773866224505179907001392530246771842953390374039590106741929025297022876970995310349979625812821966155663084700739003384275951736096032657874149467896903935417991384665914955651025666745810811080345950466801973758364935496803339825123909054932634685959209290130308371253299117850570577902777309551844194044610854562265726798362399070117570243918568580202586573332066749426882955016644049991679473797095882831579477804255144482069250406592058074984782752930699547544695125277477845691297880794589443006169630899402449856217417161307100695094151475059035864497938106212773989817232173212061049203329176563226943500758878623155213274638469407516527384327199913209851366988616586284089762278298058536311127667430415270000237697598912898403540804083752665904130528827588837590828022053159378960711703725035827248489094845092463188343570443297937181478642206439592558962667759165501671792346763373197297908009380291002802396612115966009506642875451964018893048904334256412748866786771915584147139373149906472925150921899119193595996759332910132662764620128196529578629096191892293208736268866904780930845562899827838543544290310984065557052244394498195732718105013267038257070828739339015970352154856533825890345079936197614163687799666224404740716162115228384772349777198083851864797378188931919611772140205624560046408140542801033570539491311244545159202578143093864466782713851444787293825571845758036587570384105118707155744464802874687633058501904169912242109542801486108594684464758926150382325208718082056370044789236046889664844449845301409697640944124352226282230159693759820692956346145770581637446988171648730400989616959045620901142932003349062448252688959906220217851097620524884555173722099240950973762848290081833563400733433270635427225197197694113434395473532434817774538879226625974815609709244980917533491046194324375780328799835180325777555113671990096584523929111651932296627662408797206560346701990260645716637462906470014291863735917121790892046711939813709129568232741881207744833772068874363308094142971914858439549761249947859716574480175999626863108106562242785584538981187843165580133486931051358316729748523412070159666753335671564796250248267532178299256794266743810731127490590096418927164430617448834427517190708656654896344007868951873486906137284451383709775004306278938350488782059738335782129231798465873572358296582366006687922050317351690097047559755726543863907152418224973351960492345831580310167439427607047024231682245953140364262404855351181979705951195193070789732493997107761075795713580495024831422469470971948331754287532407893246567526896176488607445515044640774083340957243164212979747044504149253335045058142590921734630003169804557033363034792069928428296676730609311782772802002369213432567875733058906883254136886965638969935218971703175486365677559912316011411126136003385457519742294189103209813770520822472218834973622568373739284083026196795859491257943273702156508410982695295600598831430592623787869590638801917554430668486907726408063061514224731116860666370150351825547875290766054057954103182018303929263820396811048259251668527219853206804530678427770526899581695725480954718354431164845012218865794141389509318249013281149165026409432097981040835041772583042153909929597150683141747741552871442750035055397809064514271939167079531226753679745610271548412622723856030452698817837855906145155740290365212602903888027715673358293996102887603585177387164771890669531186966777973888249336887989160869754266271566568078516254206074798319870219534891245417437008338965477179547967497991000708727272520703261967843512831706712254797812058111701275490567241270055707792992323455392515276586843806604807350091410641075907886635710096523302725317387037756693885502626248929827081990790450808055398333197432294270165863877984564138846567513249526064785075424490266488744132327947511953005007256016349007110616327836955752174023329748785796806103359331158380098785267451897255507544626540962376028548001373741733869402576863811574836860955917119727809308978995633293107668459348282452742550498443235762031121876975403039265431734690096444734648319936829309026419161760524460551334022064495667494059027093472279458791647984572941464240151200116234696580138245350083180949549692551458515303122023197501162925921794893069136830821941787978041199832643155437572365151030859763633147890051489709350773732256258660123899828892083157404832679335958596866173053928357052406070059322859345351255834245452942772037297557208262800834507529914588231322170235388681944280162345240025973421164360753050083306670704297570689592867444475199783119919961035428372301470359125985350882306774724139000741305285023410816649997380798520631376315709478120268382348659987369358295926942632857667943600232243311372604308484198050565664452126773700079957845247964430965489692041630731922899189619044853394865651271583971360410649628533433110287357420213768729207259685323645195407874772320488704353910736113028982387081083549500451708343828951769262062150181870792405886995940619207574918180449880742753257479606698340783923246226355742514093688767749564211554325666904502687713970625133808060874901304265734203028579647073248066876978740748226074834679880619169541499006611808242492899760545712657163884706771918329108269241368788709757510162290440493607419486770457187878859888454309324045570319212633664275337328602346097365943101167451648742068629745870006349878245883743737384180738346060770451959581612840555287042571577377129122717371092161147691786549099949277672863015173301559174665911157663385196567591906073523378858868642142545586990985456772906475633395143403561389936655515356692622018166888807852761362733235752804475736873599004965127179331685837164120464623970034663909545724541731084192067589355947884173793700620888355934672213771132044043135333326730896029559788603141993629731742094600540735413654854511521755666033277351122997466284144263746976374478811739760053786460661511240844527002132055400341373413634914735643089126826210043993727312029270728032877768337631771166384457312363592449969091484286236660093381847265342745668646145182408769984134358247322120864636795372397799264872775989458668068357079900305801170910116436012247468552993840031943852709539250363053841766512393308719012846271896149903411729319367656082703106376187859485498504232693411542662801284677191474133604079861487074750991591934212836481437891407801561750445051226525881499386351259439259005347121925327026928014146236976049863323346691625858637397872601168469379973443032736460616056529401208038536613655694073052790200200867246086636984007127241003231364209631367538330179652580502835709440561230562055047902008803913748092932002403395119203133881159023805337660029856853906044308130671756437588989514197249691024719657833029057232968184348641669090784337937547138983782990356931047259413297583893797577777339245382884616044043096013059816642465442437364380291112039016837738308490315777398052337653382859645564575278125254570776924213629770262725678728484700897766097165485502919607634087589602874816696368011478182781149633613286064441713398829798012495130157615449180190894635079524351726005375600848607690116891955174306845673224631022011810571950759572349240467910267339307661389602245928882753848896609562335589922189443644737006004068643912065219315172041904374047957112589936735137233981464989043994254378027105489427446795501573606017320184582024359529117737289892400453268243286624577977407784474517398917326453022397436132158347434661998785990875044290618026474420161288947048825086338705656516791916492448402875989918396612603162106534336994853135031115295210255263195570095355037693841032970244037092739136494732074295872379322564917799160740174765862032027425293005381666839479118691790658230628764056036711987603445614291287714704700020157397748221997906239133619389474245461140238697934158107279014835236522440370533163316367284212597471456367944888037855517366446859597417334076514609904311252104797894273096382376966210115901996388887684388778086189593016826904124550481885681840053340633275189097627682480633076431768233958108103431517218399806398930867817091528566748771360475089551903291758500869378558755631658664887673709502734429726287466271602916097215900358878172072243476750851538794794244713980670872546870248095839719045939677798137866044160208848958143316360953150170625326233619261385678099648203858951292994387198335301520054766631114706553736991020877477536678598832988613146727670074691665854368169823305857225277748811851441922988827710056412137598667822750067527902302072440244767878241258713504265838423212969675005409171525961349320832814393941251624069279956384918619555648297577104541860555445415092544911564420647525854011756966802052098395217564709290287028227731940014233993400568247658672259827650442389607495960476529317243960390884983787034132357757579266295932657407916580674405736771239022241065542357046999224576906815286622443907376649368171329725294803634774244367502992186450198328393143764227309826086778956635943504346757660624949673189865288221692013050875575411379799152341810498907568894598033501060378152478670429027758563462273375607882138164544001272415673114151027131575538728433041683396365096769328297278968954914461070606259939527079779974141181205230768824968380377836184997835023018867569789345300708277406732992788865200545381364141647515518481023967172349514409081830752125569631588261628062082554343710501581995692658297732227315133932754005504078979315735198338813572188760385309330886604102044354731057335111993278860293082143577119373848791035915964141592861129953636284916484521589614875807173638463339050965907371365854088750990062083647538292198053311159521127696468013554837110838118058381568124609820926683543657721462849781913128089471225983542480506356954781542810143379119613054604388677755997932424540491722484905140335664173941914127018804821512113985844739000878346808965098882965511951678599115387867543928193340873746330364994581621168577550556188877501061815885724281402205472722706467785439026773132009380743530114992683229995785816672633585642539436765328136429273379346848906725089145521099014594335137643628726096831805355093235264164876269728810936576419550955323320702282471826505133115307255441040535044443494239841011068534515816007712582921635037477186779868950944730494789435169933890613837396398768738821169239815390279758302743112632524434586578176693724857443898339395800660579695948388056417209459625382159431721578052536931540129621152519637842933436320743103931013014936957817488952783412067625378350328657448534355838827314923028479785100167209374717846270610776343065996306223788512745861773631038144366695659642551360069193048579056763060358400631920198500130766677901639289850872485136750073739615559312775837295623839568786658226088026511672083396831956541243075419941364240274298798659083082371155920936726011266293561976422625866013115751186279553083287170977549751049632782174892603256791264630834337648521948315783237019855259283788744986364148206316451175905053593755687002494643163957434175363264720631827447367952563820701128946018848728426085422661464444135251886286235966988023995751151838714578097077805094402233740594605157542442681280311239911900610511918391692022454325492528343079951333719075361086947575122495523636926737425686022367999858188904728085301769896829263890847426932191218493833200906710170062591740571299109180090568941110464170048671721365275555129035347657377190359299417250465309889112095319939399245351733885335559074758372067962062122380183881773274629073649278207054730503014669342561652265793501501544282693181896964815271571543886158995826988274118961945754349177677148582988021477298301237698707940468726650341978386657995615903822306564368492176114990565623041485096239363922323076433168263798254192924909061410586289001456967260635040815001405968098843207306075413797199005612577567447642497475308799728340870663549118486394260183055844814938076015539686931546848051148379313703856663083293349939070754649676457376150435975747290464338753517036169222359233806629665177793747362769892146572299864857012228419329192774554359885271051843042996308753056852311808623519142036205657310208534379178631607772175189380473361129665617771668827899844922803868547238045744984193029586664970241463806630425514004413759871178340703176929807718750243674669171469649931305203616587087776134194821991572760251696198315160770853748607489479876926524849270836773047188239497060545384196789091486565497080974424025354144061151439977663761545222715322018075467181172933328284705752109471883783098193603503649537597740742573867069174940283975433345213031845708101744182909972085745573302775091693081373786051565081999346685799918080382031874563466267333709498131704027989334878062709136237541449200436319132838468103685239854154164462933437072840224357262358534229433538377901000855538215276011722067045326785434348279421771929273483816608666498280070774984626919687822257450428920381479826253231215555768802846002935998100136117328864202604932703536742687268192965731345161679229856281631926600810468213480877320596962544777983180547533133587745990248055200970616625235752506087490920517292134385315713899468586514380814414517577172336565353496030617074955674731726801853587616727925173322429005121309605235142652541052844180574901691457187976698593882406832269240902909746677952633968171838709840794978849583209378606281578833704551352183363580432367753053864519801546370178788062210574310166116049129761932417835733126471694238547651453439656117914241957636299100745601227486254745532744251156146008013565531346899082259950008919704305273995829072908870883597412570815439918536079073886747998145807421387130843237928822085757185263624856189911777008040024538373912991029676601962058367629807679100076630418452938627103701789369785071012293870089641991308786317478473846743370662377135941533195292883642375993801555223946803268963951672605331649894972185958501214968073729899546151540213436885041827214561473982556204639524655015835533771624533879003068656879283542955034295531942330237120052295204373533786628926343133633238744677475763721086481184771737410689186021631504517525840875742050667182017416632509467395521565403255206089132733968124587500995009404954846390033748730895647376681882905068968006173726502527739572558873429035278267275417575686444938126812136730540410563326260591535574834748591032111716751392091018168805142545261342591098978146407827619090990919520845273017174874271107387402025085711190788601510127156779337938822836552936340615022408616317270499166617023875044730529233155203056897208013659488779151842474892570240090736482148243743170976827193388752069533489065668155098142525368908931652081194146859237937836896898399971244843485407161808121297209965591693755128291444964856336248048592452795101800772616138408994729715641912727359310337182352526485120881065279246362828398639730464627176377843656136645730215580774076140410822354969145218952913209283527775825954104016995952905326664236124425524357366491020984345235268386681416728069334582702253829421300624731258334158625894003696355902906711576356713751697719234406118962664593024351998446955157424585274157148201926802203850796148684778622014310842768021050531370218912948767230546988527004517649614668443670044460639390478210207543410488358852287624098727832581177140483754943742642868792216860989684408038112546741045177720718366043238678176716731420689720676180767542965873313493875100394748597374768258446824834991947996423539175051109581806228128802620003567625998527755397228366843293456347954732405582761704842083320500184591480193955878431786967245733521113159464552841190913172305932833865825329023284696533817244124597472685317487670639398709869244457565261215388434359343427047109591908158681222041442533366008661467575713771265700205316524345798652354568740308110437344414683914607526515529837424490233259741159745665166667533701913547589488534068911085934733788853283312768867548970125301368657552405250071240275385844742630116749815444498405471284093282100653551322321235075436906623148856956931027161934780096409272799986206215155279517131306458753162067478658102260798577436464049966781936040050609105201919132693444615877677749996566763454703142645722762600174118687715568618378760748899612403162038059033181026151066242111734859514446342691901936708709202961059622039391350203674648879507518957798376748695759691109895429277765809143656220497668184198047642807029724637594907430425280696087460829805030169489114621952698839380589367180498405003206415324664030070018284892817291463528927466747532058543337299010620954153235594639502728436670868165779519718806813762999388571261651021610525374517390435840529421000218274933409219776344841324878796492195181974606697275133554572956721022230989037605226626911133773692289000978746480027458801113316715251280659800238731058167523176993115087535988944152905260956039928902082219931904416900074006206814446198378670548749942459054405477806135561250104759013281839344318598693067358126919192031100735127834610517956695629650469543435675850295196312919595227458939247300207360384182059139376294843289647840272859031657925126411965582081533077487206924637804568411072055732440940101566526012055627972156484633270879700797523737044850094694918517331298906309938183735254726722206634777424331435874784425088094935181763477390994980228347530683346780869408746999307653514589339680177568525387084348001612031669718673971308488360164950692723951070883233116639157526702181171807799166760403136611293093999567431225728206735307663113124712879033151623219952811022205264550060975093110913451530999957575498622297204933652563412982484972598353801623567311304290521482534781991276259751393064942419581972652107130941387879942020033611338012600442999494740476892252405517406736359475879765933472850440943994678577090563554127240081548574805873570227991124772193687971674353814123839952274546998376651863664754022604097957349695470151330612083452020311975005132168875514526679381486053252109472681956503003124302297707659452384101249315728204120493413319799784154168935975542997721636044497744752566035286527392397913578577309729506670128531098665982275823835207607847593625635432638996017439259724092835976499309003766371165901387376793099321560916757183762319908026751243639598413181772187798176403274780591769439912797541172291815133292687336054271693942470269620468473774807668883735484934008650304400395029958105257274099424453554271931603937502329600105743588729058588820441923022410379402610314465456817921121389069385370812916029945836739663748495329893351135503858570429347583814969143546681655770227281603768865067146246572384935311931711847088680521076274167645778987491756698306654819608505705022608954422388266906200947315815082614476484020865714315124454824261591949481541008618636621708138618518114286188853406531695118468359561938536406522948519340498392565072222929475272570065953880476077180122584661863405221170484576716847406085875119699707722414188870396421605208425424500075973572038568179276391049125777114957610045665914756879635839794894370859688036656398395959905075237639214806495938486320691405028613986914852113489689546763349957019882469104773738836497056151624402562609798101607083621291833893913093865948601930349597628182406814356083206211844629868374465926012591389080634085086586174426965886598559458179973354354800181077644578771398228494561429030695989509191347967597150325467846564690908103694398601152581481895809072756872125488313123046784128550602266085327072262002997712638443684692505827415713540917239546788938175241921282312981269258718481355301299532534492565085001751060039714995055966538948745834770725233077734285030434558773413984879719063531356884321280662601410408046318789989017074748823332642539707274357206131458992462728680884213363681761755951685611333887526946121441144074460180831030256862909557190219661599065955528924835048744053014942134491095922304857459151174081122035915466203675350305113906305073222901577346994500052963058738259438237688308560405279067545408612538114183611910622428695050401286748027710231535347058024645613178673470052212860147165516450259736650759280686787549216335768660016329251976034086985311317170950247388508305368416253171266025818503393702841629993567240438106222353436804923559519232928622556122634975432361619433481021450259341733360744746153626321704810702432020204504954805806761466811724333433379574318885615350216846546929500659589537256092613788336378980682720247660448294887391643831777759253805862505690194688536276096301091253249774299219330652092860662508681363906081695202752070774863291969266659110264828102922863190739606774546719557373561562580302941501301669208752177529888673107369344390789239499539011347524712175795586795003142894741505047027872207048462473123889935810646250722543619054328784217659445072241359302965955092754102365771326961125607679683190058318338019657115239375437325755477386556616362205984574224529954377589220279035424452291932411087068129708391359920143033598812551159295457793226624261466646066289506755111308212358252924955167532253960843642824079381417734155366893858294332323413357419581504469407699792059083452292406776294100444056183430734846782566406442380545186382829512753163821737092045450886343158180469619834998595853962445260131439392179927878632778694328417122670891747191889611727024295905560698332137519935787097221122298580383109804057939141644844611764558747823762251803609352296338076141752892404525202377583489316757862832495049939769993563194552696101105379638946026553885038282107985494850420486946518133280155952882239666478914589534981290435112276317028001059974700263694341122019426979152222796762764591987789915768733018981705044835005810777389048755534927158563162799152569558453802269782837487358215270856761435324273968269753277428438297769140463738362349707179583676028817945501484627608108563394700809315926102696201834473168034830662121783857607421221704321522927168304051085164031656474450996735461919142429091543175135906133807018443150393344529382720056741618704799845077423337255777165888430519728171473782706611421477524716598636461987604701745384786987725397096736326989173739054490972968859664918290417812251004193260509718812354194427994288592229019932222214570237941648863980266677779742406297410775348364258057898682126173954668575529952449992000225998426117494708983164731128436369082394579102573067567781428594575979202863377489722486684919556053394614395211064292349508394178780290951628720553827123913752164312582260015395979921781593017856210598077156151975942875132974276384254527144473797001935398960373252525149883763557787303460285461694307914288580994151155592194640915174431950253386776265403130352073403780165599393006381906851135441690682863115721454372192838730093584701690143197634452176201394931660856836022835506284567055178688519431324822216363595105194574329805334106852111599802804698378947002896280209422362749876235171635220502009539306109678831701993514091095380811221705476529032409330955654982682700129543691640411026065142279829491058041930289334848727973331819633770588740863969279924454039721907072074464715951120936707345939351512192334323793549000953000972117689976648903085996173940248438187467628631253540162801391470367019764179972029240978918357142134472894852227088686785611882474555102232484422374503679851623223479097851472977780905173811203694394189732297772033434882959883027850910537450945185305165620889705729802935251163877129960860859522602756369264484779475084688998915045255048364845873339099256479462669782514567136709255539346153050505912078192858641003162546495802966451959638288737159831949248438918268996754185683111015112535258851045535464204465399290692089054222222733097666598333125476203925795490006644708283212391869965717992003623675302391563312400160424351576233786729407200546679552692983318030041573484414993925638063191867085838010620860941534538723577540440059996722651386802044477081823501537854338359225591372284551473988930461415083485804211972787167321553875709118168727766161152485222131194892824851092824791575881814504414235306123668361048624235601226629144970328536720955536568262865085421057187461191266413190693915756668289030888642057013647637468979238084404802690271208968419405209344133428948089399981857015687672603082902371832657067934495804077102196341360934006483985101154332824532037621039277845212477891277924943170321129593613832277798732164792984469584828240361526538608360748188786105834923872329908794739357078058246768289233240470915605141909189856760480130282166230282955173790896840434100440304966052166705326201318606417997110368820843901680746077267565562045815978590508293217736217718071941493142723034427344618432268674419612883321680198445545861461290361206342419327382055740513601207119417921002030989138356500428903244985647961634369144036786355336374038726419786235198046421292447578776448361657661805175068547299384627028041501651127136934293610942620983884027642049128337169116394046168776757803508375579278431688597637161417694339208511310520573821388734083342681136409206908432306037657385888103803015463176692197811389722941101541185152228785697637914810740650878734902939874957074893476635332757370827757884771988972746597743265848171532236898002046313126027873505244843162878300446458753750292746533857317081917909609249893678555018273451551458707352348788853153959378371017552944984754956067354762659697235777792903971974511452321716735199432890795497724678921158359363387656891924051582658256771423168457713883002371953343742786495862331740495933740371921502261528167390284952983914775626543459184063853323587534473303356792564319309752110317689984013217323334499267727738193232870761797538983319620177748120778690349999042534668237615104028305327993095949602555518372183167842420549688599181377140599148903733247934746404040261537757429040116766364054889224832779660532729963564952718819382792506474200577958036117509028398429096994206351082001758915191737269564174377998954742211811893341659409338408348045806968853929366377417398277565710341513874486785122392634688982087385946116395188379277533223998401894200442674462292587372109054940496563815424738404219447364874447880145267030580618186438255960239614700031574020026172867805924565545613456790684114156852679904793951750099410800176431839480111655200111376558254497036186976476294379084681309024858032856423990551768974218133587237939044135588894365972148667151943629017689854459431086332275304459739813576188453305253359119934279921856583185238336371970609792249972256021684612899959184639859106055158452827683514501477047144311215332391375617951984765852960395711714838385424067485547519449590265695298855543336639030916327341379309664764413006112614255327958093329676381393313430276500572608594200878697731988110741669082405989724455010590431869334898036409431423264489223680785556189624291403869194776967379877974889483113298866132332906196351912185949652936061338100759161843690589700964855983913577833315184616118598007746292670552969068411368927443488921649804170815035582367369700609255428498838142304771445414732159776121817723653174349398877693263494193469135464281737777227064724298225319695853378521395267394121770949773149185497465499385348409780039517459730760583624682161188483688330354427200004400155164407556283659953674986165964560276425840732173249821798554529420511442580905598837171714113286290316935497484924321114195678193431073093861038490207380375174532494460099295595202375307139519770750847059787752354423488875093681261303779899309686766656451101874454806222883010337426784676462287640117291664359971459377749562566151455949414466392118288263638860631219165200942903721085607102224124023357908837275363337572378040281328673619159619138944906318725366096590965842544667796816396010898372338715338760359501980696872751428315958887293591626329839192148313274562549969372196896454311319447128615550096079500074145635805885039137870059608690594994265674231289004292413394032629934762918694789457091047516206700198220440168700373365919222787496546939769489629916065740321648182540221602143258794411613120437761936114986828015935817960633116647444820026617934609293410666907937467223532735405360312133424317608844417982284981467147297079592526004726233263017812083897133423901932854343198939675974415022099573395976141356733104596398982224132829404526058461080219061076987319998305004927198040151564209214717618385218540191935772759512369932134792872754706108105143450937041173042176181406798818602754798340208037171738283811370384976576854018542128929332830743222539307993624206305415140001824484947484329538646609394656437150995043972562354995760293291408912665075441465969752715484598409288407878222434211833793558300533038992039314249098130697008756079663975579245714075166892833973051585364718759544385178532976174428543497245373623767392095952409331079448312166482304028064697778765317900516383482928361922732760838962966771522870978559491502424440026082034700637104546309248179967282619567944300900178412987445364788000882963902102256037448002100818581067159081692725572111127832618992119941020904088399659291169165788230899759699632481651174842855697542344398463843614098733815153318972651266794359759242515499082808049366369369951539963897536548277454397605672953719697906757935507232087171560060541458216865137498233184262881339330622300256509161676494260955596868865351137067935202614496097580908915302155858187381503977567542154735699329599249419280906184376254082442289043195444025957432924993697179567438778240011314207908338129155706074301472086267181290159009990619539490430487560790390602215215140187434489643568871237345013059079111627469691007048816707390910993354020181272457791670590305933726411670886962329329715543557967867865917807063431200438236785151730075361438003067957116813868808533486048934437648219981377390236705680337374457759056840591863589021205582343781175218679706604553403788087323268751194353197828775227861438283391442542961771850831315366259364469526824694253552684050412362050139796245852504455359167474820540838050999828029335268445483857347294863485688349123079185177163488926671891877159628451678428651982447662912496865487943391947450483373233719834016564167210843666579084799496070225916761837277386694854310003593927050821914267488111450952006785447776582763171885153908874966947185790897394917357011617533104112072838109375704500331550372808533984419206257371406244193849527692420293246349840943741597443713612614050662512342455137499365784874210676299125146610087766708245297591993404080240384175830055002781568939164675573490785607933710113945212365440195223934607040431610812313769595789268571176381290332082169949701996474771171247272192250806591580428462390321632166864244426724883831178903139123638200246659110718355085794602476973025945629473845642626395447949327571872828310910755462230450630454645342997431960305465911251537687472892485666381123042683721369684451229704099346535992555244346202902501390446277456649492173511873458587690518834268753585043884948363581179248524706542994207592345415232489612068769295186708739207059122810587037426624897277659724135169298596910354763989846650357775436437422727356498809544715508108366001203380664596768999199727302734544606747278306976008334416202028538603317895070430446071452939759990345932974456811626528597858620990440484935341024240393577373840917406111014621568510678625245742343785249381439832105507348135835646278968073901307654923708055414166291154699319592855162246349561630128849862851363853114801070668272899502683341141970134071576547600404438081493523563599864965023709918375025939161293529567584917013334839475603633971543065567175043172147376095702853238893778157810635909860709325748540042085249724563658353375280374235905065657137559935507466122292986232269414091461316062577741655074806365073733779900540395818373240546059529996978332269880360284106157611193388825782917971662655797825555951891658213304731453641143904763152691115162335401399948666235679939092240814672876234753363320220402376804713820660394804446791956296875030657682949611503611040081286488746173462831513138179311472401939947822275034599386644482919303435948109073342004125233180270939141035144169998496939074713681653650632768678034658451947454509865533425977214922266582367741850359241718483343442302786758810998588264514375404280676129820403054501549329014818496180882542726488376710288119409653608335290702824838192151178310705557412904859112085852692786725710048849748866779210350263459530339822072963677226748302178743691264181734424183685216474027163008270784689191194988578215997258046596086210606449832157461471931136043545460853448944915287085455255011457814399041272035762169001530970451374290034722884345385515348007895192985022198944972137486489325288306050590652259339642838126668134845275214418656889398921685666166816897916615379457566776144568530006357324651812147359018270026606863792699545838188274993176562831651109932619312121919811462858190394604076992674024782032817570093208902093141621265967113936207201116384999472484408925380557660085675043399087661130883663767663853658677325880335450356404343009903574349649557689638640094794723333561559991594699301363790227867347283654578476450827010846826389062007106742804813308662015589648774684506647237515009880460569236553864774112858446732107673414683706449244817784534434223107548374590972295492587033775319965631357639852892878655886242224337335876799940003898947185444430684651255132830919238195185657401890990540325929341479119454282800584246982635352461965731267705856497187610879320498328674328170858857408282867905725519697832014990508054436516800834859085630993816600603639777391612517943798241803634757314674530845885255385920822643839580749481284412148495715418893152403052134200838888106436133317276499327741078016090631556402246748387109133167674718579737029697179196434196838408354754524963065519479711691529113380383201400380107376533031360786571093585900975726301166366619699697817342979777150031590191666833349867337948759302762537269157896154429057245997576414414273524768247149504017554631403285994043057465794997593174956343580029901254197381911011264587913600487896229906859208075093458013902582900328383438795807879428890811803936224362169566850501569719944004847746777287060613756600311180355088082665358822961433947236264880546466117090557344608765276524821801724544638293368496647890194633625678447191320885204906910299316783722014607256099795766930915587984815632711723144568157574886249973168958930498607994425294920741612715976825442738926254833309488147838580950644566024202057803621311262651151539998956388862111920747460399484933140900211777231697032357149838077360257902192968379921889930064695239553317410802128887149470607370067973902728075092746548930925804831407281165404798253313883842791980741625516021203139564035603097162926578186925873159734166944086815273638022233170707522823850828107133772572785301164728586757132331524186660194701237620556457493774900687069190880928802456070308533205657075193761922969667775624445597652834633714772692935159043670935178672094302597879495608626284448325599652585192826086936431056603510842566973426552850123271110993187455383946574557945001987940527223613544722645967849392095298505747524266308324143054508198893527378415175378586578505714412819591995771438220506673038038725235760067789980030638080933150177304914199782743714706122955697163881161542397284354200473755837445472694398527772463151779788829080792689167167993943764924421374509116637409261448898081067942639212701494488894582670207644401135579554945319241798198127095837143379226971565063715013194663291478133461979365605575352902962349119257720361406169622649130659323726585479306465312997088254170002867840397069026611851043716499508709517647632881825508856100179598658728775859316017323743987070038152451879301155464840104332628380732426562011359729649207616331926488371902798423484072168752540214378272445846223083049936696294889372926945667536601436158008724521360524104044016969443599202965647926077088101536293884486622554139804692565593889299959848204307778690826914497480467014659237277946601565755707213065061856039509059588267926953346134874481817338712547149790536483935692068410845068509128783801944975492842307654172237766114686035922641888105065793589364391539353711303013874290912048935945981295073492605950658987535158526758346813656425075149776226474276366013290045377148371326005836739473953536152487938563725317250506525998287956360508826826018107709936173304387943985878544967425688120044094445451991701840517966802283012456905684977021456559775479344636561005539880644231479288422025387827246877096860190789699910520383641657326177925380952512713948662149097098375687936614685550601196945981738096726402561813340463659268621411678510278615909059150165132322293281258741060366735778942432216407831059872913247779511826634625448810534945662850728461320843084417163300157796432005519494358071358738478862151935332657369519484507058995613167409013697624873185189781887465685498778953615153378059973784652442646024592583188254381085442968968606141892400937014297970497419244580079166366136195470096843572030397045842507167659125500315534252438668176048645630734388855053963359385015528547903999574510188657034791088767477285925708988086911632293564786551669817121194111374471412267934309701445189117254729604129454448604661661928902792691237591129600382814746745225468238669040576552236944419900840504012586311564522914920178435060782078830139975239762868036494235138560600312761778024921945859002185160789170138759387600004213196124341620728005200746047269248608098983417960936348034322810504179563049132275527565911983541179266036011403777695742106098644118037866104535250776150104175791341124920228529642259741963860952533036570348517958510667080605107115314762392543351221594962483590449520656257061847807979822480923961165457733947285666681196573040699519520258871952987574967543651576266036431381967050014345323077088348264671655861041328587910304451230468835700038747976602224306225201116335125518900325694974542788765943232677375269985757987818590981192128692172357205101878397439951684728187277063462330952833356858354491049556954138077539090090930340678390273607485584289489976276643840829310425951071067510472349588379475740407729221835768995292909461750465424240582552965763561570594018230067905786716378139375647873023986930551032857404594573536498601677201004883983470041527920405775273653808435318827415238750411793783642638288557107647079966748308736019311494244929841779881593565581450612498026957794239438428425824803492410394152863244360779534111985250875545351573602371139513349529478453954438093943151801673281061427921474967392285638749312700930175292134338700747571618677875435853269562082395155583855276474658395300259136319112646832261465985918275729177263947629065563974107248417815222464883516867030055590747533653244877671472813362007463945453261475574137176928298794278025123584649634734424657918665381716956979948218292458710852879725481040544976093700770190824349169955286462298287833057767809177881446876898163689494899159300599684686864115215523062228414136758833633305801483170382147326381259629234350404938865367265771120391417023135569716198057616120836053645358170464912011732051384832192290363474931760464683065029049021301082136604488865002715307882607157641712967463632007944752718763635669294976759478241702871502441649295672771597619635775578003223238562392827244189653159473805099163895399721673076852013790683182458874174346807338331067330356588260149599361568802185083020115712521383628725951673648677405355387242954966064120276572856799975170563384207990620937863495831803957637674853251544407698451364549177361800789089597410114124381283398206378058617643198928307841028894113014645442602044815471302362309248022742328614695362812756379522774921949787166609293166594634008774738391557572619942235488615511956525473587090742820385775190312774093738906886258414963772370345768995331939908663376713214872413139056123814946056172289742922633972745824981534793168515533176414128747210154743703160375621192181763387149636514615743711884060160961875714902139148779661127188853284544686034298279502437448675393996920543352446440698605458997077613444646230408162162564066782320782397075780098510965888448528374308865255233937247227438660930922910883430084064837461858118947890142242691127493249509611990606001619788343312383410754575062003054687430839231959672775508780528160063919357786597171096556509831179275168651904552620845627089209176228450604320828784089507830255373295254571729073704052478103789134988282240452702338016438611867745932155723683929612474182935022603722171971676447531264381241002994116073639846286189749305007430114307630958335704522668609548319795272976718190341363195411704835846940908779745859573187993288013820001518693887985250252391156826346757169881084357870764596981662306234671138690391218256367921275948049294190133663768524520659541314896691958860347266675096530781169618913569281490572538611824467759019160640992331967447231410088125622142937700574742271039983400475564105518698633179681462293403679507603294892460976416948803975939971700169502366988448920719595643281865155900596567204155794741838020591692238401075560736094515142637439118705307333897314031104841123115317833633845115694747015846756193297380715695013473302390004172714191774548517807102756567263813859133140609107761726180318119420178617519706607574640025630151247174618674711299171688105666582592479314830435431096353431311566704726392682323187265214815359741791203990009035708197861714876998732058400612550090239904329078695445751656297047413090577019098947149878454790719436789205807819175822821061653277817322679864434523447516323375926474738202903684950873579531515000533737413216603193699379276128029878371296826605128351269796782344989340237890287861177573405580870391256651081441629670964880515773023141448282915121324439227173572266618293335419236013395752818640641555326988503679986559818026860946410877467671254217566232068390808897490668313885843110421512381221772949715521931069982876044743008262405300436632931076165192194179770212070206576358587081500718181624856728030738990204198663120698656037442594795905813510241859650725995308815080056659678440182059762141860157767344202562615450464821051095510391556784636512285557193272223444602282740941555741046427558241374714949846320399721430880167286595393966122683580164099402373895753040639017356960984512596655251152521286423361712093350543528853454537772571106864468773912367521467586139620064904077075446770383690507954090316873931568309646324616559318451270076499401493044865867251900658139744597238566417474823239040434974799682540584482240284795202085639656604079598491059224749380913184692161086921613548550413790604544067937322066330465036629272183707798128440829180961312106416673059116850682278774210685888217354775816358003172982365036564946127574775593375621924975499822420115369224820691247552875129313843879121076244095406430249544939755247427880752291526315300117649044897533834034239630974674088631650882748399332252630672019762644135256641874522082473705786717778153131123617761554673496724037038534321312811676983789615627402872794321860181115859321160952725783283580812145340351479683278537340362251241310250967219340545600485075564310890856316169570061007948943905363211058724142044061309183730879035932779570443117673407761432920157032868366680494164181536293021315843441128784672550340474100345524003412293978466626002497087393186582790391918116585304984703378747919266390090604927058962586031336134464204617179122528683798048520055576696177640989590192875049451172113085980769330411266941983768314418132816341468863055494631768368564196862730901027145830151728741063329858806644544313335087061896132667762978976283562354111790113190779991668927708240786269389471412571181126865209470362673450001898530133720890674750571196956346637953720997441772540173813026348656796518563154943488534040750168340212658633403176448746136508586076681935661943871904361676108205846370755260023957510648530037942522376582391767019929121253515794065150802459595026318681853124546365169627921341636221658509374294539460977778680831766868337047814096356842095348156908119924665349812089013248281859448145467356269055681257062813092793722916125264897095410442400531177626314157609939634158927025972685361233405408501004766053149598840747855591137814245045569219958772776668725789049914506280794795168636883397447511784264042769026818377819791566566396397228547576846603758366197833396924171045029691803038434350099558715720705254243113476089205587216486202181420272336857806672844046781111325482279627137815517619240168916186883526222802079648672171706187289458269554575572759788231306084582733995042695872167810225188693379344923529718988839965752587624826667344491828635164254127553324386542441013477835521534148242145932547179892494297369105580752653463887501216994435447771594186867685810859570444745718736472930817246718311124952133134609655791376540471388511706246194217058190752463071832215980687059715704009548251197084651459059468136030684433446611476767104086227817833992122610713577599062987239954514915145307228634476304741832683382003503440936694232778271296587508699312855952047714859742766945517112010500192060804797547312051662865846444406609224616262209429510675772631579085497943047752517701653544540575811181482865783161981542162332675907562667097669441786305435407415824890677919693856991335591312178240909416947264960951281812386915128427780997869108320618202427702669040420409818085583550090284561923310632220627047418356990158213672821284285531247653747600210086653997747811568036383156746152136231156151924933517808656215642251022587040676777540907102439507269052936550722869952446362037708176387337011164362234361309489358608443942677528671494506915204412977287950625690428065429160764274050336582363281002264958400011830671548555974243477761124309671181383468024546931369163851593417501069002935557847201538998073556935589543340016230177678978160726518166251620317072210610403408253725676032935731257647340394954207733810035916762801309032604753115731461369919814321661490673009608292530020548738113282378025093258278017065160337824515663555389801559127804586967291540468871190203381868241138701012003745759718230887562136590954255888645416872111816752992307159523278163441477587249269251518128953830904941007640237076260144881703475018204535925489191834631272983475381721551670613991473147247895835816303388343405424974171042622586682137926358695221302081741558148553658823703750101342735800986089809104407298596046959033561526345907622594072921796283815331421960591578681564562196941495075448165822212142571887545350033063886879241445126608084229578206229189912187309946354826843916318981347483342142032609283326634168452064038246280765773597529390239174823505564208858888539158056987244883766874248598488349166531174205136923287323220166507321406399401182722728063895923378720715343156392987001815510898384695378836636538142039017954357426774999632501968054627065096064486606720588617646207729910246977106049311396432872605027616694000827572410218961975759768371877192949604482225919013330518753464868463297736001172455106848096985702386549914877552341311560648331972006872550675759716730601222666672029100690035397502905457553974879361434016613532597898033923707465726962980525638599628312955920429034502577472657425950832208658818771538605958071463774623082813026955595473283219000572399699882054893167964845792765927937191148101712578673183123777829366194167911151066706882735115786870277544724741864101642283960047295393725818413810360185999357162230908915967764630293348746672326201310550575536200692438847535561207747657197318721314779974426076763135118285480420160430832347708749251246656710065602849766912607982683181309804389881989710024690645290023204797506806324631901743513792640292385118442531309791879574151541289693530404474268012102455770728566934844968934884651721454388278554975107600843023815426821484410337265677280241075678864921577367680570600884649479585144134776332038571555964472805955594361911515793837020626882026997488329334138682289428370781454831601745164352607072597522052950004020163441862938411531863042159439575707338611568967958753966392955795983790736211317513395900047574493520402869415728381469408054646153197757619718546793310375531350810678343794093305833355515261481807572462288585938954439451658280434219003485495657240446008442924861137025771609042857048944898362497473322404497389499092108010688921628701493705809143846912390664351990577893613539164110985310444139578470935574115937531397567373382904777253280133122236189646184567707664488032665474763525775830207948221125628807995187155806990174918224405508966206966309466559058434213242951923550115262514992209089392638106916966973885332615600652087926415241227304837966502441799088180140610093310197096581576196768756472034083770743797153610597804751544283108703931185012816352031682418633062043228539000872293822719470460337876755654135758086034756816367012459673033906330349527811648565157446038021714814564850564559186146464093748933672658055624320721034920075106337567570822484638725561964195314295717972430838614442820657484470313959607952131824151658269670187271361736094982792707860405327514268417879068224367024906564485608761077087015720519066720087285810866479172290395166592567328644106602280898972193385477110991793694387429469369439141850112580803522703644383567036682391443568729932024374286323261561550654719758571147021760035134572741618465282667878678585124586840840144755084186079430502030039208508707166411864350839910801963913485401898496013849711294172677771725579907196844358569031726026137598630094352011833943549225297976546036416076787650224968108644113299061017999533273538728844566043149549408866686728033715541733898238659165660775024168362317063875957495187750290836986472027551796508174650532055277350850112561594308011134200619161514654654607143431996103934631579153951124952628487125881053134780500708221792389858699641210333283411257718114486003252629249838660993009980573022156057507475019026710367738166452079934123517049545202003975326146581852766148694040818012991551489954046801674083845005240397949326175560764414607937918428159538737524928856980337757831453217047275823518964017569676371829386159696649667469795388203730675895185497902657154902811897360608915118983800666800859273468405694583898420126814532746894515176425588555803073598292109933535560984331341597072634005492522350101697204677309736859683254458843519288686845812779965708666027095531119500760750718234442113113881180490918430664044204824331293430988482280356040385439099467944680401987326823957057502095756119113257111121387807027362643574125930251725545338829498712483446378627326168184499419369536109710291239794667810499078153926097424553361864365998061957487785005393835426925565460005234156761375500617942762398545805171816716893798418949546825011921018100213900556055153096775475408726446585777261343336405901475172429396318989564361559002902547328062851362025907645597863093363159701991941785310972147117579045971340546336408932224157599579657167157830035527124507025871132775535310560699385159722225301049055423881095911728380692772423608177451524701332548305418201572617170026506805377624083253678935967660924041779202664469660128979021074402754140262155581265840317572535366466255319496332665766081678714596961382712717382357610846598977155758354778491349668306770722709839486229460126586666560660988417109609392062279967831192842967022977115342762532002695682449679465606847401258433286207572562608051615474237471470449669206090029770517055153396436950692629304632643962842650776143603767653944485935492072060443462446953133500390166410110109370346245117934610524396674982703566386222922171392666380307226739188049212167720293041285654101292308712360691457683714063238526047743621900787803384539440032901702214571487993170903691217774842722367087121370245228581441602407952693183017055708955498820207218294339362148211100825249854736867355072408304371734631246786346648791989321835972226106470429199437411867889710910879759025457024446571123725501749182314233429262343877428975401320175416442572144061044693377817491633736746574217557546528070340125328769946990082716465121587066118589728844176058714410718311979804278219372463078765920557158001366431673551193197894193444421180318606614626528704750461139833198932149885432188981596195473951132667354684843936035887334943200836967474068113312849962572429949621390768536159313159208249390204409867677165062244132771664024296637310215540558493069718449126444747655236498577008773245407099009204930786539413545000296497770909905798810368514424650619159653429060905018561385402206330467584986648638500189306344187341946830398009782901980640693686345193252354206227962759249577011932397843477821768752715710047000704789866051191445944645765165209758700566736181942599234994566853464279272978667556567006001273833425312930699690063914372909861038882535983468086479521433208440310544021773352947730575189785774138363477454006213259494317600295412090953202799139395219552146908878229397270327165658063495539844957629826495549236107481592812575135702177822876260090260321217691971530996019743048410601804201662899796952249564047957998944931277340531942245788510501381685404334605761720340308520230391702380888060652701284850537745674316872476350398902015354640430337372799873329451016441340796386847505597634457158036686457901413155239006968803777856801357436170688364761276424450028298687306229400733507383098419393650204469403203268814683359024745572665622512239870125054958398347531665157048401590629830210228157029924238190529854610660054209128119702446862049714967724455465634879339173000860427329608921988554102638287868939173346268880373073321072595888863062515091866178595733890175404767481830968638112286688007101876643206604440497387094090610898500998663772788558850174370782070069329359153721377991291752635695838714056393921238874361932001814691693362798485784128980602023234803042458334618899474312402629158439665692935056773028584883049893378894849189085578565663638104304751472364297308463392196214666159077021113769892757197876313318211321787852103481291006985399942116054464163949592712665787961294468444638455997938783150573541753107000235354308792825401906488993723780187456961101519524219746410116696716022150247356946678340975339862603608772264445465587378906341077617437445626090130699037142697896672417980094520065296138106832589677864956499631679506668978931913417988107203262288733338209473345357602758388066230791833607070513325318667229814989774978791086630184433302319573521376083403607074173947040250382237296853078701582185000101580118448613914779794220618993222674158529618816544999499834253324778823759404122783587611285615433232736167302307445946306869181156763457660948551221920479278892030451053399898427579529082065914321955446565738899198343028587354306542450736271024798737061013157238238942096950794967947591288912068590258119232464596372181486694055504108758368718024697632343026101765141234223559723093836704202003611611782219607171224825628347679248719726700058986819380522279291427605820288600488895014219299278087621014515794312953296907768898031316523993662864980485596402702968322533949284954015007541669978495472635669235524631574103639152135648863144297352585582211871818915805099296298613707594687716781861727841264396678007286923438247948302272909162073957249330543922994023473938703850350258211714515917390017249333617263135461063075568070935352352683926004326029026696205650738136048375732854029235740326781247872002950795827451420918842988874011413600291986443180029302125463940556286542604775556136356380502321546065701874446951581958926954440739118311816635956910269071163042259693441096441641369196175576906411124611254762525299170133047033364699531959198325820208227401729084142736550404905722542311329073379617914150839127298115113667989887902985029093880466279068511729643254615824756640680779177688807765869117469254191612283511437628244045331500053297957449271954820000395125615751301287414526134966359097119970204502716364920875115424099172034046308726016509164369618364995098512773516573878303369590485481987248904738504515488007299596482589126409830033973597298662724928815564686482388946911319283542651994614921183827961452456348168467539763168405959128295002605105222381627077688190364078700004796332327096852062014558154858881233531585300360188925798459027982493594889807946757605052165557610303398203928196762950057280430915634097447912899873021125544487114111148493970506693345626749730062103876154815663054320607698199724970718127888600934125011685605461114679613199905698191019498178672648000521379672211419503173307131795956102512619871784596654681713319608968890367274439927044161116929627628255748218508927165137582774483656948611641290496341328990042233574592455020352727552853639308714220572439393821180208505234677979543130956014535571917913256958757309068696992681935552597759491416418154647691739658686903927323580457588507059278137329908448757975790782415572652394814222233275597922358243935248374618842235020080909538507585557336382930557986934356238677531272081308957483802815951904621603040460587366582098879383873874434260998534632463666746708686006859778592356550083045354650180734647397838031189786345255339268360983650592207650612194334494042399069824849303761104175072543488248398209278167240085212084271448915819440846468568381380944938743355371639078865840831832370871232355107359815761826400352849267733930077542796668766964993169727868662583042553562806617142815781342319917800874271107446982779663645739832062904596258736723506125703793085861913348787350224619706778590655734742133917865267037979165503954479218902689899880154077336745867294142179548559329740063077173599160582937542375097844042265929809238997330937451031335853060270389768464175522685790120896436914486103443455230732596791182195550283601999378828698111545458726546444029991983506703285299292955768793221675582611075503533098933976592166738137583009101435847301915114998463765096620803001303091246437827790212346124406734553208713758245787306532505031373010433133539356808639882925787471249042637326801525204843278005342264853760888464346588645367769672053467475075475505815346519477380268675507820132228730257007154413348938386483603657229181745112532124669932410216283552006592638274421031503727533610908100827947314203560254805755709753945012530068381167546536872090541614962038512609352820427573521492494468420161158436782230297814606575834064759548166081550596366418357114074243760335448029738446635870516030433338824598749157746968790426723970953116107161117424582473809329426899397557407618025057142169258856698463650931566188950488285055758266650962285118078180367809534232979309238617507436268183717122567749616523143026524418491514635241339534547308392086204677904428072940207198551400288301214545596265801378212197949124551040192631144608488694323873268677905388928051127580768735687165647409707537078299707812075068257638350512066227479990794125447790108634577121126125272497684348404925375572329188928706043975890281479311876025711996146396567351416133439742098664813443381397538482480541855006188903471481239338905467705786802667304228210869408667206560712234579595995696498904807292561902364444022553215949739819759991017363386943785443550078532178314828211392800316353466496967608705483700318899351233288315018471869525287457939916879598739259300018658555760749980881893916921550719951506305534275335519218861134139969112576076886552370459381898031898166721887303833636069180407970464273981422067328863841597442289045224754898472822045939289598149509402602231398962975253844534713451976822807469170311396864514966643235142533963822616687123507145112740427547587011815301379312103608628503830709192810235397167689341649275859700059470982633842713603806121489289562721422436653329360828454271928132920763112522330607960952037476380965655940592918788151652091976066259325383497478598355100347646603755717194444153149285589448638742128305487191345415084246629025442307685354339639109798743943506781236482915334915609910206670447382390044959570078003941050018300504334288518621277804373040393075886678203751455593808528945036930783787820838888375544643253435699442415963575888472754387179342441355022582070855871958847328400945009185182939658476182286237043627805985463368752582587291928740631932759170685359619635548319053383087734297087279199419055447822224112334305888259474389235619981986915464005415561978951514058297897552587837014895132312234688871740483975019301707835764584925359132408574349220635911286000049187442062856940876035572483805841674953433446689714669371791485048357465717690019058410277130197891682433829206979641999200104994248442563381876164360946833844026863508264264284041135279208660085212970998722279333842267040339695328774608443827538064724907328946756773943209239193731529776296434960919893632369820349503946992273788786998158659455050008160760389855750290384358566660530085537407773954341899104429245148021172743487929291187965843667097771957516729735725681951037247817070217964848819482736698679849629083457795391349825618982158224446221964779476790071505006017107637914630981356826718725376625833954598802454720267945560069834185448375513653652603274352475262753738790495978513570954469761007775488835762190925287177717928294000197880753608154480190252503288741176209268480788404778745248380827165061325159114786799291485882331662002528333426902848712381901648208651726178003974929041034786152359208976159292294919155140960897562055085320046006066386279979589846456293997528029302244570610206982572399036020160126200152585092079696978886074005982220342138467751936300140233609532463192215566494839760775317155197943578439760565582958993808933439984165497040180984359283830830437911771539651983161974816250289901434513587248154023705895035894132700965581585522838378910451546445812373507834845980786702688125699189083167772045685938653389814194903281322538569187987544071461076352054098476043036679123305645010833762655062866954964232084892205334484623969778894335198610470715064720966740090947791778303273769482226962964012050901989815132205244496611417046381435186672593225799424886668890606197038656334595064467537454082059096531598828501065322167748140913657240123696160247211994937219549970343769645472352141679431240789769701547067844241899023911672442636462884977760465333726933013982037423706615735381750664381402473766589200481690866265058045995228509815596171337198959471160027702513440053429662861090634708468437137038152629418839899858159476293820139856763267857016815393401532418702246914578466692173830801521315689850558310423969569338913820555549863490488422549063208407945241424084268131120073950399695107081267059439007865207145539620193742648037274423193337859712390124997767157366320638629843739373425991256027137495653702786284242927828673031140809416994656722784258487347915332880511021551153721711184090414507177853647437167924534848602719241591035632993232166409888583093392440343184640835133052065273807758579726883714533907413985249052409524086090237598096203121064881524547733431397457576443046275771699770065020995838981727472398434610100446806101933514955545245050073837931168272126623982226580661294912154560152875812534736258804427673748105426972551997099895480385258747358127758450732277132682635975550485500308086564206497956422766779804719116781405721600885907777380947760324529648323541962855671227672899381643515278726249245193082197347192712691869448861091263242060894081431254285177531428880858240999063027978218340111777221949501999667854023620084635584561279315380249547961566092213912843555403599624366501326904567499880819430802067933417331871708801108620498270534233661377978627285945711071863480871516360809691111669564485571291388534573805630841190258666141931471909337348673646626970566053170625693471346511423472101354135015625941408452004578648071621535277889511393712454565509376163693728892079215865272862799262139151364239083567188322286126613357317133793895417593499672443702292344393038562417117272301186187356726141729246276781876017054279131640357685639669113597225306778604406413479201680016139610267673969708091702787296357737247870499363977476919681352870843581462305514344717830613041496642214544736772528331923420214568996096582305786443068597792927038586385050502520267198207837890775587961418130859582180661220307236643223963870048804447012951788940653813466439858039338153555700875521436913928328420697126870065481170437156904009917589278706078886636300080627378242059030741846415371117818478427157161016855569314702206734305667095419548691058475393942860530424258679411632150819754045801712530481262830988649842123497970502401844827748018943418601533980720302800223869612392834021311635894775173145542415246307213491914044298093413967616157679581999353790683985202051232731502357276088587125766336150772400960619490165195207432890316915194363698985960419304728000252126758843914701438405128706888808783360658506495570194847792746875831869393811674398257257747856923935258808082150467808534411546776126032416288255725692941217211792332977911065120650012255775282607741751845829959757348950950213550258186839197709732195657805134572545594865453504401066826363482411016785907571159336495603800362917940313408342764637126495100496138087904405683052572257967339241279780524957525362967001545688453031754052809884507142314678673055544370339647605744544164766419253224051352001231962474176890502097046586997887979428553836216614127201343203003788358204742429870932493207874883166505014678202486360417837963793010994352315711891836556712038020593426642981092790972797221796022822555378290384521533957866105516352464653952890170629693056814441211266524007342627569552022671798029892862006259614890043842277512187819749164290805245397934128325565263409888658717778529093659257264296710708423595483572508076633470568595428772886113098804760352316718496100490070024593957163733420081627096826256395494335006111671755923850978835802907645392142447798742605662633252222872823722838701794614414228611900999846880934833968694584517117947069140802686099658482361182600838211058543209886276398885844032622349740678995351392611799515072984513583240532277638693481940494033153701642367855761427367830318843407717196827849530878023623543172474493742087930290886651625912463737406363118175040582440548390057082655202210522949342821543695799389211340573496802548868409459991114535966297745213914350635009679486450825793482556161384356177092553869566589770037325489245821887545295374754348121140405858081633585897086267494611478229931100674144711794846637377144393620236539477296057547113984913149665847198478021020144363001179651414773881966741125703454699649653342704370221119309429384218690911796901365831628793554259204485269414176298284169316985784542517020458861663261988406728188837538472574325007664584874356504389777415722105864497007818854755578207952260941968519492053855511704266735514311487156742569865235242104762648465822278490323583552959478284380945413120804841564642351495075014537804943306666581320922826432625689995855012519149364916873054267520763051203817215566694206801878934094132837017967558730175970310011123064353124024478523701731186275049152006213696054267298316923468481019152928194311954589192296211025714549583656153541879487538583776634998885408320081959032814908915049631424791539633702015617261974766440387645599176488019628302626312110578945972783069543882858506080152819954604597448439083066290654223235290776186182129840126516523941540218500915694962454605111051822791081975622079040964027670257402913361492381945206116118353797787976352102292404559734188710853223594112861102189206533828675756768231010352807994898839152170318285802255842119499174762792661709125485587154511334671572723452191691986023544240510590845217693456584736306980745493701218465903076305089589427890162724203529892915477008356935053246642686034163850081905720103079539363641977984821775651620055890497979887752279700698403225512776619152265017027755254668946332604395411318184703526220520454624158790000250833596667124632874076272650757908130396162205492713391053521053729101116790853342474576452196220192222106912451620095265555567977852133205695744937065629674992072790524609556150417631497811302941744643272626827323024538001264571841677446565365569067970419590447457805726393878147081862237381150373169192190912252627480968784088090205291984106344403528479948415569778146443354524966435559097350170640974723362140320959718918973832271153449716472972534665588900519316726254158871256273789767797856833173642286999078836197512056498651262893577155117954799170819917212062101645881160283296295627483661188595980981842353476238029334759275248610378967124081890876041817918162790510036792944977427147289837234890965054931742176612343280563320177956064665020626750396499010302151564990611681226810814251805909546038292008992491492989591967551524695057147200809634736062863959858597008739300924212958561170801571232320287631154185716106803058030867115129473873525404946688002427807709244849540810778444707503056714002711290912630849139334331869586125083746980893778234875630448596838271619338129911759335382585428541306993883262151947607339992789858252678288627610089993716702969292659279887543414710051314592611359970563187738975947505025683229647882091514408886770611917718582106325546006231481551072843910395995812494558195044722019317871425685074895044063658883275798145664784551860823193701618376346060205473899627926539253402455009514513537374993772118182413632943440759821815137288034043695068669411080274858821906584361192549962806250924133788691476202507311340793899515803134119979301475982870447150444095331565232802376833160028989278619335241151942555991452630557070920146022610942806232793591005657395007749540752919075865469668098586455686079793359678352782913392644670899127427470637496231551907813326565471674427606091406613951221555502846577322278949537029282080527807388448378129424639848053851571034507816834297876814196625798972736020602693599221930544467538683581100315795077428218644610263787903571492095174718414443501027575541783713078518461300420044759297524740791488872051921229108464382252888869997148607586499873171750031973872670043992868386529224406478998744452854179684186586571841706306902739215936165711221990363737013693569559439999914063306652982443893339106264073106600912087932079911329388375954621883213142172163817731654003435294190129097184465756571448484351537434329055584827830998064120469295957107036444148993756147202999261907161375745488387067547017778374150928945455171984002021689765158650938789675848758772281303556788574177181033674008070591276138563722976167837788095928779524322264878852313278158376542613901475820049638612867367482914300471421354816987493738990147891233510001474782279288534512595695921875442346474012967040425902300683724470217923361477394114980335032286383357202326372258192913769661222446450907275846704569932567277761420912306287905216522886608256589653591938701936307554247241764018010911974168368012702005692483393341787026713444681424073294912801672954889150450471320120213032127112891128811700698659838108104979233829616511740234238777614042334936792983882754272746854651847427396448053916778690384079889906060709757463897022729885706098645577840565037585702582169688657805032026263168113332685117719572608553367196397593168959817938686609267404424231202033256724128359019954442466031803772368132651594320749343195408580113502054799005815138244801266679766656097766059962783213136565931040682755767438163898037599022033153235646471869217028514165820507616962513466005508490826830270191622164503452397281155591237199777238911963356880109768988995007526481529358173258322383066690051943504799649741136562483442974069127269407767284207901618782169991233701617716747627660617541125919043248371693316752577121229651067302574705285775508252353675943509568425859525310659634953640897145849030606432129864777149239722120963835758675552864397751219702650113920596276740590189627077827597002722971646885546203118370133793401252491496537563862108682147294266476356407520472870284622220113658979761269006037549493320476380539505867978176235771428543275834534308429338376708737575325382780782349971609023519825252493357995075487832151403495547204459445689003883710454939781271962258945831252386311134020868966174806355975664613715958829883596424224024617109585355846168433656570762266153218319840244674977457789472423043666111441522066682751608561094849232683559756518652404076212030432982957384147279976488820841240191977988895791560294223815076237275959874951420418848999677161200327550800073894642262212779864669627838692142433558682880211019872166440516443775414345287543334153340117577147997643452238420787238611721163970703691828015911070238885590081293544814310320118353476110415952138330950466065074873432103879787989975493356267466498124359463038797178956954680862810967972802241694495170432102720668770353316843932319074021496614001616202209769658786205171375246251266775791944757557302777679720357583452970617179588419878542225692643014714908848173126204347754665818097787590693501322886246881168136494774848572870827781644579659495646480477127142748052906279326361920197519864035050297044569895835942254815816604826046505574709224339332018181368773843876224824914996686079465573900824456347773722531844222873832481576269759862318190986078684203588584973643530993595388690350775214319763432887709610985102304342149802456481001492019641729356911848869959598371018918883886395935328227008627612089946820484164663906876612280142244394207642713751579989022102538589349701571984735780614788112117408072059751089194738921389040778287261410311823095369194977554521163001434695495809541680258221050677329905481241174692362081620720075918147642994805322427027252382692118341161562812455679378931004125116978460121095643043230082246262794208077481786945117340661906386525466525209392828181913831825834903277452120038777010920994983909267244615038484647683470545730327753626745945600852200287547050398473880390545294349336839893037671562557600441839358682981300570532525595401660950150937679649247207297607554152009179564450314665091370664427212355737015605598875250783780709729985461722569155497818530884513654527337533894570335586047534651752074368388211153790762916499613447644081567355837514123465312749708529339055572732032362955804355475190678966248691529192883899874050106644167164107261127075246496546758884302373773981035732917069998512095748060314698092975043683065226133733286938256657880032518371086960879387836885353292422346951694157869481088750653061802642195759076821589498354359985735916634250405890199659341807026836714162379968292926094644536808497382838630825493428152077128912871980309729393937882160330189212909155768272860281398299850002090290924309327139476286202635696509624932795891434104311445099307021881660120696164115353415605198945866497811042099788136132961294928517269027144050394928910808476251571179022923222019398063516186062701208967002372202055333496824695515731533210357575004299000531435167653710113231761757738020915398394047213824464150446750963179780989019933889664002244139540421513761395123591433940541996452874504666133109713781392694064850265045068917699569808287289289581424618049419924463468557956308519853788451541205475794171768884931779766281221052934698951519683186649982660701246227116935607338679038334657557049807080140788333421232669005522388057619273894424907534358401905595222005029598860958454196804760366722612692944206770553516257776889061146358794137805747064518453296768251686329210781600192142165309610477788122796719637456790395418600436517996740516792075830411720309231315620815403900580334962387481932766154736808646676147533970523734196098473859539356452840099730715864064306924534584263761022367916520250529871858306304419897868841532478323867486007252651226855495807543770777125811727617052382594351051697561012983895233840859916765156503573573303605616212393069022558372796789446704333006698911107430867452983927585895250602430622167348005977381497508746759872599587905688611699128855115324408013688175279766934879802010328719349227438480664964465055761555349449718816581334448532150519050582238395890455729536515700845372869156739090474240393773761928254729223187600040796983808092672930258223231537991905632125378110837658022336609951163469006439310465113700220993064905061345714649794273245650180833297266200105475409813629041884259182461076927943431747230160833781194809201054336415491775208005556394171807163493599876847982161044413668470577559953914905766258729763724716912921558625503509253670915528644348173333072918298142514550106332334836484770263559708266384210728401106414914367153839596219128153264800354773411516244603044722417832126330940891709992902752299691858431599174158101005827009700438272285117943824755441608229759303327489962912129059684865145710936782967156686473623444187117585347072658844423719535859154197288192817887114275472659600149963306474744116216990417829046070160853427987254728785806535850865875102649018323361602434669739805737813192580434795571516654882233762073237065307693382599563104740312022940194608995050799684708332174831514138927791247655390654152318345759946413838241242723957953238333909686008361768912857359971864522754238782952324384847047217888214845624872992921711894577657778829485073777846214159495584045202525515368304335157066194447548343612107421298590502482211752294392762856775960374400652172148919090675839799832903949255647438426114954271232548264689412123408488315881725151103057869169693993771402044570018999608612262074192872622970102988558893226322858014116146836118784214688735468872237390157410473217033301688154658501029540913857903469939802679249359154890738623823614508250374683894253328627825294102250376717741757384732713090360630927964776660377951553762349881566913517960400017458125741164374288702122420266477713294862532876323620043883471086145880059601395117704914095989969173807951557496002105693856632908935685602255792061888783206940362979880080193181870319956448018991000305387162711231792332296960974634520383662426072553874700948758481189761421118710486979074831061522778085129062805546334218666151565172915290169231387036491837230811601199736101677340450151319133119762120358926621015716945212393062688585518873085922823507632019009923126802129532855397552656236060778338620322150369132156533555963473312670523805665745968459935060501741864968986233730668902404097208425049984715630278202422658521550377607522438589195401942659485402179341887002872439659396421406876579308165867205770367876883219710208860875244725880318309355010450498746795966134399989628441712334866600537182481558820659975896725871538793559579288158478748100745000853944407294541221710891903433245809679540549233192855451665432526254310316847163442737591492281655182829308298019796879237038770102466290305976438870353059700372529786526021478446251478188238718861970242156867742046378158977024804536334708529506628248869980259352121227652231644271640263687557454305752789270759322518732468867944756487060922794974056792222413989521388826169995814559666127038170037757187886623969527192720806131952206234773663010783480770752263785400620840478238179456841773382097200504926390230355614128056318258597897457994889894553970250235912953494430360846613906026168268097029342025278392839968756329099674793854300883115700686880421608738021735470069464209659451560349866258209465437072242664558667594975986515341079020453295678829086169520025352459708458591190074378643413744382552196749020641546756263221178883991875956986069072272754384140320141559204781833550818913591101405931078681540468796626313028727628728090283849165780997993668239263036039046760769974521146145451569682366077978626478515536790688654177802319960698575818202952274809433042211950015346150162256914576521222484612377291194301136801612648030656786669494526024025511017532282106724468965860676913853653377561766718902432310807483450134812632353188170428952087833384039845557097950430147932586455137297878635524694025513451775603443859451643070441160457634425426345505670355147405554711324794867246316008117648865478959824717943263808050556277636454118811599771115416247621065518088105025115264486394387645366009582626678065153331818443928432003144220290511103795290130032002380165513594248452022172491214702227386399329915228045391441714540450957577527522732156156420193815172767905970519824582984987358670145282565452778774162953735637724112946741452912467059109957548992630825297115137111946436196485586041451641625335761477026258278097202420392165384522753564141711737728819313678673919680146416989969945071649049556222353206182628872879534454302919928235274656196919589758200393533888101001334804799512788297213747857472246041605484266174261105197191796899210847998274478124674503423080498602471181966115711191802802589758423792972850587476384708133029802275469670384148586112502593538991137970719314321660117423241905404961728852598829097972427521934400093180529021790429489070546320230552210728543737201613404975416002921105953818259789435958779197788743175426765605831695343225615155676478985724690326117002618318366073401810259627909191105321222705503475435459992132748381885691122001519422137133715686539319148471206685801648569380175446014185324142190754908847033367239796340785437808428393062136561388441301683156070526434015459449757367381636699397889395068941469200124902929341716372335122779704459319523800955883890294152091585466900539332431198419930367685702468824979327170916248065608227153301934777308180347404395524472234011130340552908091191444765413547397750701334246032938803474498087151999934615882221345338089715576751581406560996903853860993410180326535832185112907879662964099921402807749885048520400078900965846381277243527079615185089706977463330001113588058496850082292455356956552288483549636067646379142125103426716982800561002025893402514554419448438662481753679419982373939964279767011958071253334495042110700007312685258658137531713652026901250868903526070476785960682061568011160112831310269819044819169534709096320178355935589310187378251415777816466177624045401082825910215060489679594248426564994422005136908365738256334914602781271437963383215922459432134823399587891532209318696729716745911440835340199546322216432471666476280547607433830652071142055038964026667156104549623979688909905769624831246640349628528856005244350227339591270849945675526938134137143025815806048629802789654315395038380094720553316031283436572708454137317533452156763017488547779010381770761913586931652206758069834513720327292876565335909995419546662788866699283228182002604768940396209014980317088347488115420737844928148514481363786868085230599787814829017998809121984604106514858296035356433106736381277809942154752631772957235116549278618615448044327114221887253039598247094755211250297925765099421547553284269808412085088945309387521169754264337114454227786267171712863544549574039434707110480957375514005565475076031685434011294028923684003717728513952166295736398070870704971092248445934425216731036111265010954295907323626507363121330696445664600580252491594493986231298016879692768980382814802375413297935173886680505160536180132774276394350594849717365339074046375713649768974268952386878170774071448237158521719908760927338301332429036459881882093130801857331296257115189601217176911024980905157546601066670605196341781928722809665866518052180958856323407768518598913583847307217930036848497936730826044620866986557328427656516444393063559355303707831368717638101384940238342593608151833855994239976623719068992227697273217115620244945224015674015032978706914558849562513001727363137155834213012276720543353952723503355813595012941395656044344924641621640699816442579648042779475496809124872850754673190818904940474779357214275326410815295957351264843586837011775807210770595929799286661266908953003818878364895029094578793293741556194934115545674681354174944634434797477307118334157432955327894639752766678682518223473205732821737505900582874197365282645385947858894755631360857240216462156368875001118776847194193864788430395359149390562337858359951649531010137684193933994636496152779080092511821983683843183625302852972179967040763956102182482423663564553178676777108457323036635417998853869625677938804862503020104107029542660525457331291357019672426858381996740001658511597951853205334696799370442709093274362768272067527015783110445400577691212760171947504147674816811127883455448496104573854816472763701816679803544194661400983418248192413920081885335463169843729357389354748222838633926447586995711434291715098778314051407004206384237930232672220367601993945868877002584822270011794716945838595938659000615399175119730300529496716204040350736350273596257749710973783134328887526481425892833604369466283357140326464876687898761159548421119785472715923996312657227463987784776982227231030617420334241253639775769786257291874838104659815424959416100766064782658895062923274715250636904339673332765676627548879624733842067239384116012458272175938944904177520303323979958401119675138244752910664513906286729567687862152041267180380909719601210000918923939364721027726823426879083803297671134261982219921990772771173841281775242726200767237047578172290423828106288106426846024009695583323889256640412078419678556776166511028867709554862205279846563267652487282735143021181524646650954578588261445485377697613462282552597755127431823219332780707289715956007596372262075331046574414519000617778827854467591662247076677671868181065711789335172461346248762673052815536417552295714548613309355635932501042102229825861181666448902620874582288334373689766901384136935884054121845863395290148210866326221046606991010124301807093497344178676304087052074641534104172242682583929454685231036571779032939997423565548884833119175338210665935838735888805965427084973933678164899780146876459693157065307483888624907749928506604489580555151061171500864764260747750858964467376912070712182480884072172352277407254208507789566902188948940368408833797572277179832589191208477332654167774287743011714900552678923391480817322351186585023044339358452433819863413775410336920556646352319628289638874148656815331786825255473840896203713663174182855693433989274351032050645532303819949556905872016980634225943572990380111985101090442938310124283449192954466288533161243305626532636896084777394956025361516865953886096446612580680383727873641757578909705357690440049003347651021138751158454067608734397085809919171026877868973236391778922921901968976723565661317809163085099008339891411683314273609875453896355718752131355148895797109293689088401533606218495719994322438676781318681501464133539995747226102139094857889205252792397259020820976943742170687535196033646776982947114260914742928259253123653762156858009170651065828790071350330011040930219724387392406230766184304032208539960121176721463540171601826812252222472773234252990422587509751917404285836279558071819988466897312585259515587185646868724473589189560569729026314512995876181157410290425283384956403881589676910945384958708100994841020294172349958979814330524850315180833133760892289045990633957298923761513777339528989555839855242617529331566666463219868869775305081628964588168396408465717991600821464390010017533118603940004010996806848897492724301494147804129641159524916132679862228278225922515537755284623715326837039239256859290175123902219879204408482787696061002182531772281958122961867632366549633684968006581834756591865714655151243337147013676963092352754963991145017881546043327697131127598891688111453294611154847848770226432993106211758101468723915105305870499906419546611966545457813928987835014966860579955082353795948886328946123806216654209684606896425891470876376162716869569269805015536888839269035835121561181609218076368402243959075670006045752189384063693732343630141025561676964640943598398081891759247735470245652156782472184905407685082208011950647640000350762946117320806381932103909041532382085146482121016749526802004263048256522075534453022180766241639055756899954389907179721488501328428929863183282955386080247720755352881548734908099454602831718251713745395178648664714296788887643246801499056787838572200086031293057325348385847291625920829407167195977928533522208910094588663851524319716215151432533378056499598331834250834437427883207632596756231161798872247624323882542709852766338919474975320673811428415306793898239528248126265686144860133239798715508037537627324886026061239670513495491662056255576661659823686648796809871067436494847379707460903422873065284394966451708643760135718181662116783467675376357170130841599083055670018130510718581320535043114758473594936279378885473282047868145405134360738801065595916605537353113386461165955060964165276193003442887571055063320338238848165515464183658106056115385353535980718161342556113080381718226175579564835685439333287275174091430237546205088577482757418395469784287076727055201814114836947783317108920099653555337157629592116108907440233708067290514706076135656940505821983872239340311439957173327463183787228416834344123755248407881234707827866854318478473995040733120901037705623593200112692834912459076513708912271354197916051174109910412496890036400066393525290252965412995504757106462738982351015127978801553587697638176240574322996722552261491874816740291929226019792011272518430027142753813436882560078376573214067137767526196240170935231925169538879526867324683107886452490850436056162026961233426549779746790877899859244975726067770917382783583720440128151766994968641946009561614329727929187756850147437947580672224135938919353217244438791442632085199746631128817271937579951610137479937122478778304881630325739361708260502050134354112889696285470057498319184227909106536304197075463243077180670934893290643293056120811908064736716224102287204664931702207150738976174198178342132018066457640992159448785799440965845751031182721053533196032048626823025602354018834354581728674368511315943867253654720018379860842613532763679151286979028987655573136349562597464402848058447609743942613337297398097725078549523343958581250291304864197644826159577497864895887513185545606912104198216011093193808618371664318641562319713178453340228863084537388436177131681165227975620815296505701663720114869487607157318145892678591872018671742715284768954561970135593301538072906666068117542560684091889701118885066224002302969898917117024597643686941841618070791276778317419565195150406616681532704015313061306643334880238340352956405603517414811647774150197819013007758903055181499901312616009329171645822141650195130444319579717455416292589056957681867130500376881325499153321266417797277239392677970192387587732086843674467934513108222200988304653519970777136608835767395904184304530797224592942656401038411231216503551206751609101831878392220146565039096971243796390567195490055621545631548591755101402697742299116778923741417796180690211458899027552033102989720235361951760814965532041867171504452160179572202955661109272316141543927202932315801386036692240166724854363620608391543975639160994896009644643855343177839741928410700632931806603672345353900354442786264341921097802018390422426405343436541446957310215804607493611379187508724368246054724462484241064895829820014930122307495888963728864978733798109889326139007476599241131644986813109833478021004969823936632658505953046573164350648064447172504251568429917211647324932581054107649159186045943179750258769572975061669371200474460124667784350325422438237445792190210667233129688403862700166882107986347150053022214868123378785030395636984484662098942951661077071260613051302210396849199910980423856306401363578267056550095377274462227873349366268347894394714303518419585549704435581777392739515527671209887175140632189366201432514465279137852076504250584766108409386162016090833350825219905712607900177634779824968030785638232420630240144543333043545061527610866963978590553888796868696527317739144162187692693127854677957395477604114208644957930091861342629020232362547423072042683648718828847162826723562264930187644881835705051522042364222755294888461286625182329059760905611762871120300235441855958915685674186448570214230445823313185674720833539072025816467376564361477415933758598361692853967869034430374832291544372952119781678404216132382267493782088782906465750625159367164968509861792906173720078108834162465344123519272117516185248075427875925537530832897095700378942542669002184618872176026276591311815490549010860270047537912154560329226732084183889383961529962349991974496050652801798863258199704730545025715908956953562829302007992769778127961128548324254932681757240179604142511604318254744543496362920662523641530857268637836256852658021806695296758398205087707239124046076961566585076641296410293177107029886722508427829869111308986658284376718487780640091587909453481376943601470373426294644180055041319227225048594725413078640774408350809057435081946577042291823085908507673140329580202179031108884978482578544210335000081687404761648325845106790144286524035446347306648001082910875286743515568852717264423625997923684872442100567726475614484477329995232005517852875365598650524313749239039225717631546306189604022595373599638444137391303989683793773479160944348712772224495581544865134828599513702192724953525503137488281891541945969780710391129826618310143007682704137050315585832107323208121867026651099369704256448062965990908733155486042020988362944075541366548411173990298116095451412589573050516274941551285611100435318415419815509890257783318368753967468982175411315870872635602651709962311961215134073318494960724133687191372154695836495899340313062603646311111657389581757114287400963875455930868753947613456327824448849855864460263361226617495570717406835157773737516512225514449593894111076380234763926247369097479552179962564684663001712283799135520792104349851900837313216431399287912154897370349972421397009228293237065292772369613733114519622931514957016275317490917971312200320299742446855910598163825436843235913600805933755922135019074077254546760748945353232758903913255141850663903650400618217470327874983758396064459798894729668389422981835787583332067374092364430512029555566897634157599236716075152231806132342284192960845252530051782312016594198264139279637017157222241792129001151673031004051106554088071000298543110223940758630608714846830609952157262417409067970720594112500891558757539598606091608229198964796836009265176698491987924473744697770557415213528708483756029914158492987083227054596919249283481864186317011058791388548324412630525662490868234319432072815292659133393202103381294673240470207849264881183610538073519425099912504476355206679624416298868514844245504462407418430640694524405484049522896251487568881037622943311549015841920776353912591192852282484493999686227633298016414502466012156942218379934301222247065804185384512498746667368495779686374092552381158839808403043370164735018907301594916753355415895081753763780518983828447926700314047303461600573997848586754241166665302068156074402247519629427276728923752024875922556768145029457698720017545413390064210721461364097807382398728789611512430384148267523489132736490203305325977871652428654147674687189111421347862406330814002770062968296651373690908604498094633894298183481766034112324552409017243599539017574380094350348474348032184848022446022221238150146114007599510969662386360119045186534664182843707505650567194648103087889853353123756682098888413466988562374492692533500159264977052148395080416317643781681215296406299569638603115331970483805234968496396220148141535734432361904139759791502187666666940109615045530278231643311379567676213776512888297545794988421034024311322943639503817361212864064096503015095587703332341164340166333844231821657938125968796267435412471099798245882999150162834010205071776349153346086299718837738729915757752632416564159836843939660298416445141446017237820837473837727117698672849496569948886207419035235589464611816265472721813996225731986235919290790950187765809328377593253628524750228646030217690526400792946605495530479782326653812201099788731837854582585348042543715502432878638754139679593355615454048322567477100712846961880177320861053356124964411883200154565281992251165246445115852562142553455286054094170906367954486967058517428253720674258305653360369722366137873613755432620673768386978274998203866735164095345052669074771712770154129205245013669729604567853389655259613956962420696708757759746636123975443113646435377246431860674776668606512198272721707845416501755746872015037521059856873514082173821247295327192310233736563045739336681531634009474898822346517870694474660919726277375704398623045045185038745552574444397019148264491649758667879148052894834262786772812509754533974673079348492583730484737165099467213648966969247235631087315981893772396349440413072114454785826353690813977221681095766896437318531738032788904414535704668317523667948431900120018674440416367435548347857026316114067901068806323037570163732671337958795231782950153180144866075728923316563385335824599918988190436611515003289487815080145081006684757666927314839509535284780864064895241271232531368227250077144650280440991513310109166512237569885794667257348034129648482693912282451165356800345827632555316663592396183298501055805870343918488818915940878928674534744372407156732340814321245416824073189320799160857607601925857215049991551045490279828582582875932712734914295982855159214102374316260364879616991679915835300155828374567865773909569712486279755460346107923265526815862066883298194950420766754212075801979961605081841315428605899948902719239195214314193592030312079612927988872839079983653008074288353963948911631393638231483609081111875455401063027720702238514754398372739979835582328527302291483044029587610495515358551712629244084141076578608553422564850218991337569589332811036184474065351338701015379281938669446458261297775484734857467925989686029657713733115145856434414040086248641307200522452770589926021246843274659529878108702655831450115238523661478690449676331690900266353460192119906352353108053103762661142920706926186067443585151628831321600019346639104987821416849424472336045424008169247014572468662017914044892176820573942598023422800079394591871859102831398275187672649587816028940796554250854088717932227919405789837060569423969862167845591340701209534134152517882096695839754482104028807681382111960721268447979659509731270842274198108111194292628478939124073436745599082799020696232855825592380862796332773608256702646688697086415855975908982422194394477104582188599984933552435510533267781419501860813031338794587108710494859291650926631804447881155115689626500740584089117008344901802410774187011642047666121116641828106194150644166139109432206755110742740389416667590581676777430973578443079540873201307907606177252268340591643641734412981404715358204475576197187655254907764990938393325858998812858110714888395238303609127220411276198377535466651292631760839545336329897249288058563145617196005453849760520963001104808625545262556218060445137112083386422011790266103602814509756919544024111049864408506411035075624566592900928384523643206268625740459088650605995106815725314096169761159472419111414451575778074160773410330125044086682821512109515142861291056531463991093235225786952024542532628738272842344157131953667776450183114650806056183380349536460962194984930186244266372109486213270123383717928072653923704487907458288186440750124202609367799724516479193849554510297794828638029491449381036330893185140232540059723184711994850150493897094090749459853770152018559051651798575731370658833575956461170688090380072432818876495505473787489581415476325560184119062153051947963423483178816008506416377357074987469611855708450513664610512733466245966358593181776232593548035712004294294676982288255143352953026109599872279122989047473958334869550278235221408318597775029973446368355060188919520745027650390361508473830606412033275148105585171633274420008911530927255390706405964902213506450298363633770453418028672210738447675423108936587754239425203334354921412506525569863067285596457073150793271026080374457329667807464829707980101058609429737105911296210660723311172004961492631008439381040462466341382150313723889399608858502529141988801288693741774605869169450673523878325148428085963075060004219064490837267796598344721130057026526191148658630651476639372998554391665170230332645402896361138302597576683385678596981825901866857330157352853964232227244464488441171684489583248170879906619302185583305109502550787029483338949315290314829474039387554085871894493890208903243693563776985657085404753765608629740626968147880397170138951367531364973972458195251658396831106669468724417076088432214078896854333949595632291623319068331193256751322110653083511985648678149513762182687076694604267503847965513828557896870684945241007611438893797866164997338121083179350603238500044176660790180052183639845088778016713682742726991540151479901094711315629768248991300255470104856269209731234649786048020627429722999284810286264121481987113149355290547751154382553196427515288657680672618225694788791948529665108599086138341545370403428190388672206953959160155021923712129233071724508918642158234725772946857471364267263299501039380918564512818734331914881688916974798524120300824174592388846550355192072030714246881850632035758514341790063938894744528421913641729729020072304454175664341492909234015233434536158876678186658885165940173124658777778363174647089945224111218172778129866258242402013233119509992104309992713079457994983834604380280281030717006737428547040323061081704144388394891183290319845006425079685642531906095311247132961492801211440944864299041977531434325561457427442788670755808305451818061587506804888258730588879686503620841558679607789515837102470606049141625393794770141762798753159630506534802447167005508109090720618969102485739699843834227826317731440827620250917286644122093102907673877868031800852307039486838058123375878935239807318857075145438761892184648320654762490030139872441148900234243268677300292868623048562169292328811573470537840356715329369121174898909044931783598389711237248575190069719928042971398175251583702877978607294145398863679107939794719089192908174743938546219095633688247633977415482774531755082708525840539828836982809059343283690588264886487904365367977751861516254365756731947059691811481380651643421587107901157142188602033870779341190739623479246845332919076069779747212993153180439860799416175175941990531235330056825638233409163863521072604664769730105502655578883534005735258255207320637660798390744324675946145819803740073899745316932103416920189152345925753564443942880350579945531850583245716904147871742048906307927363247372500867243192806952963025274863026750393981973853463055465724310213718646082814868730597391742577615061916623588219104613601410829668007875990022452392872163045645265304013734734314782921938361639736739254561231451841557579336443108322223396880407162467723073215911634299462719478941829009666959653616081803126324317911750194498426566184783268237298352855366496495195109814538045417367594053089385102127110157917440322678588748390927090502035134207520275759051986315344036359272022405055876121481035237353140677457336896871485544266854084860540447331165649691955129518660797097123462646650890119027878730189554971537536378909239523983995155146654533195166775996315727538526552210995049146177505459971737548807116272677026694257556582753230992626621944616129065820613746938693690030291784814633339047893343533837288182194103335677008683681694969346719495504290566282524316620805179940069825373661476935411967739860687968101720139729175977635268309837281637255168066509317953887177329072613090764886646022964424100000978203604892071992116815361994765249875509496561600924804941433617431180805994149308129442603440903394767160090287717004763595860021627862781133753051619782908240722491065437276074276315963465333609952584926268744658673793062297120144989873216036012957080512460642605959490375237471062353828500682214971397886399201559355467066961075261977453281595419978136702665805901530234227346863576696158758374094171959824717558866510700842584536500535695437119819028058691619603573788857053091305976206672144476151704155398438524590303097134590404446171172259692085393925085698234830797145569508096876345115186391349168760425596660221564638290486717704665679124889901447716962815657492977547720074553893817237903541699916950735878731351361786534662152185406259604886084936661786402707984570303939604251804633763898207209884251230087303146003823114730594550018193790591664104238323098110487523162558609823568354276843129466413659115572081060334830204337666825232655532510321103248332789785835376047159622649350825940495742178730559605438814478575300703672072976812629567515787873231687657549361366836157651506942896819368293641898598806370060528190280836407016477171420232958791973377673340328023695162127797302497932520090145591532940726907421514053447849914547349248430096638484497993408854055144972100879740799743902017223330949036147616092657216795075075492962674936455765497910908326585591040208946014684016234362048139513781039910993036888118831067370152473912362419169439605030598982945920034925285920938199053987904551217131871604066746155256921606505586215802671634468288306030825291623032629487950858085096712894754747653312625517698863295649200910360304948404507079765531505291436555852426743738898728796061925846962771207823644594550025349101700880703055447066697098533346988059697374652560062766343320774304934802093443961271933711772536278542353061477046283443938915117170179557057828475606162890966351852008661524100517466877473377500979482785898312254991324158608348022705128254012246924047361223779139561279517745550654305341418269341286169758321857456074073056153083335033768649412403831731902917560709956545076094643028773434453820643173338973797652156764667947974609369119470047147574925432919119761728744882978389843686989789526351166502146894497798368841205026010786055399293600800024884155345953339150661922134316346755978997205551872765338312451259403806134729490982041667403743270521811899485793773528402083746482047274301957882927863919738840564838805340635223741472903110917191252542919866911403071209530378314259842686387143318650579353984846101735951606335598639872355735339724378318523137174314815624319867717428014915029760706254108283071319736015817166454575103461606749386302277463946466165156790181354075416519621795783402340116069224682125090081174544954977803466536493636774815815406271183390183349300496543379099863578192737228877298712697510546758561925644063454799627260782751694952989040297320317141280327188636236427037121633917743110520565555366541641170623581002578288798036942135412690194414433448473022332396356104503144982147305099544476964633573989797054997408045346294084619632220221291087826420838811762297655422971916487358165150542802008485500693277977372090474113728925276602096501920703714798532969615115513754606567609299312282619138796664170202445925405842378431287136626681085377390441033327664594469646525072128986814191943436438541974807948222148459602271815803327135871510606740393504496165635988476810594446548777567896149940069584868071897317284506224199557417724290978123592316014538150743680501131380849371906096149358185530167025226775355875973511009138490872638775417224524227206871017723470047204017892736244613670092178213853157234330989488827263373735455784913247205243043303661850136072696975996577289285925581097878889109761201999412830009488444519785263940263687627591409716454828663860819655052299910499801369609872098363172194166222237361674336174904873067063243850343507208907931530195947841485540982058537811467303549341857134276000564550764060289689003789991402000167223532867540279921852111034011059915096225941828095146273589548323404190361678983261372182251426089968668698221685383574603639020687991561677228158847042739654794188722585227563102245814041629151218329139048201783994790699281359248567768481031031408610883432058493416343377246242590385356882794772815153874232268613911401857508867518505178230367995615319592424087121661180872094318490023636569114038420070527648425707742277052108563813721202256854450761938789661742924639069821059883486835484686828482208170723956428403929385093309239334626859720870344909013318452148847615059871611875399623860309143209658187228923492798447260060336631551297960343517679183614925532845621164602244967373054201844117255114793498445414914572489450829904717267093022809825953312932991364956265582332739491511517911045218011784916701836634930932186832481257767138849893366156829319946391755953375436981700662765319769534243805520037773610275177836704990848713320609453274498855883848425644433762364598358167802239830063936433366752515563678510676450412343999921848066653644066988441128629520516544187194060161089657770297059715184103859836614215465866581161173252541437026533872794328935438413266592031638593788920129035852610315477302887082463457215416537804036389802919028838164716653960385283030041653526151520754617195953021078226404377317785414514455607360430785243267315539382426597300387918858869879128871455308981553620869233914665079275264581292962395115281970211099377866222880372834455938229800775736190891778800442404812841888823216990444602352318976331791007706977319033645393426251654746705564534931636807132022244170470651697988988733934136419262406469077540991231116440630335251067839573948654602196042992581852281677315547659896965957089816213928638329712355625244254224333158388053246048347037625092323392937393135810468731155869818854530305923366503665964940306071175183773013454404168484410646592331344426059554814532565763291033957863116931923955783826214788570232269103585742260482216788772351962332510876874468983614343267195516601887624221990306973112642578407648313796034630048230890154194615475899085243263153190203024955129490048198802574918666508472156129770698489352078032588829330571983584928662859606945878422002940794021669841348503140728044610843904128451736250930329339828873896753122485184435455917709986713904069719288689479180058970424824985094107781099620722041274186343231033917137186181460719451196534567838141522437355780497769655097746338043367709225550086325084382119844843130909208851068059766065402397597089568783514731968725759223553015193462678113826119540253225054988687853894237828425172848763160482044041440521735793198709505644761123475904003444010824904001255996224678631274056295843698290425427255872836527184931710223024512202385123437747129151154842338619638787267730829010103143224410924273925240928535469950807239387645058146620099025363609498986885059745431397888427285111105021507565585624835641336322673714620108579348100721471383055890160708697577102550567605466461969281237937767029260571219792509580156345524656942127301712197983538952744578842818906000857582607142594623407184535952517997563899078027889175351284421630973601910615520659656912745107690399143288228806085984160223902228147570251712059915883820528482685242763200755275284389524287148648185485760015219316779618531976624862563117404855631996327236062336562216778692003681467047139170612393107753289665917090396469272615305052596773877575437337172467638680029265073263886881249496690963092449335411876751701347238352859250607224022013778478544991169630442361473615130204063292891034835534099071282362470657089425185457691350407164507705959305384563897404530593666301174253367053590137987138046241231015062390474936022421334523087912786188588248132994284723051821625018375659308560614643668671849448754726676467958778811150730456060701255161031880136068503275491994569271358617600438520261460819617850438519241016221118501121951472890597430311058663389433954391552148839577157495284767746829204795058097015407216302135730129531408108778513284896120246862950088225884972359806942372902740709735412772084551477886619865487302147154031829956249800702876448222000375601238846607215509058508601691133401279781078173714126067187027589117092438646805581249959719501228467139609675709644616840926593980219176660314731405238400783441212335182733039554127548125935260616794391701479443012416705020898502859274489941542192790693736086193536313395926717939884628299597032735016356115253659548110131554465007806990852187891245287752034190836339498809019523728672787610125438826385670750713154978044656484386668099080823180754185222610194416699475284244526653617243798458281827256342323305718826817925039387490522988625642159437617558752308191602894769554114848652260336570040083419698670369646692260805912691461926151565022982369476199918181321544125771714526232187384853181325801432300061331591993191015350610560544406682789879851752059952384241882873277436379716090402216377096640900829980318720446668853345156350406864450694642321724066768971184405688726596531528419366148277857841686459732530657128694028458896171913732623480859832913114223612052494841250321116414018136784192530581426235645794767699164993498793524907770788684727793465926320755656029185985263080098210244606986627393631202271295839172715302562990651665030753005377009660353194314605243485947280572480960386063213848464629914811092724932769433217172255848146190102713969914881128888415516089729329075852441084524661674557877117375231907998469287212823168480514883734450946122970464029543051614777855768496569383048076960492668003715169272999975854097569977449503532805122902190843779938438481859701306733445066124882259188377692702494864825175019174314937421420768121890097074784100030190225625202987234820030258323556338655624708196301920846817526907945527051165975713097014938753437276426652687285121446260244211027418336417049259051413405212335673565836309417628034401773886733924276688033039130924648112203673330747912168741760053281129128210834419979531389482106463181642444658300609216149651186180854866346612606790368534498014168305535312555653556365689234956018249353281606834382031781888811216188044950968983741770212696271611236983935238714442113744633202561855993626779567631073917565626696111215008642731777958895269615760298261419528739759003873096498757430863646879683195188484541855401861901850675005560412645975265165527805942357975815263414808094195319366531615491311549069562950767759575227691998508158856555566195485142594059778055207453408473555294232420467519877604905030005011737759553120272761816128555384054515716182909607760764529556023103443007296303350217301154366120304651026571815925435023457404493847504215749811602167642625209424261358736720334411118479353415777897580424390778465470456067332766111928906949795246109633618909772872657881602885014774869751306179517930649313094053861104485471773961171002699956862505741981928103814885763513227812956721949544169038618928528493398216535109273187014758461416557914090125827218357332374087470359045665567554325203593635700019107268035139517316848358701757445370345461334961805179038578554350488493312496899897233708226221017478211185315812593899380883778238395566849431676984057178766395741326862111301973529968085307705703799588832365872403419666612630934978495546928093505600045011520085655580381776438265675455166476479683813631229806216374485816883070302881015274552092271433156090457009719139298875150513710336909827011288083723052270046130211310848327065961054242798991672135815036394703433080421778549439589193941491121049350946508894034088710419870571624429106938633246128745172750853153102526478330342586935207670578429039426327823135799571900934853995787757307236214352310324139744951110576125834068497850226688637033768813808766083488377567322554024456603947233211279511045790793189624534153913459473401377813501192219814326960168717685887963341975208820331187763703735742577014570711153792127646815152512271070923762073124034794223429768771329940621637689373734664236387199597559647897942946040395841976714007808636504019580938568892999498795147802677414116762393267547737025846725262009966565294214956587809637827122847577566972048742667518542796651584869679574957676536880340158255081485179165852615056353684799288928374602515265727417668922795440657904624129077891879324868357802789157536450026753653397608807367806935623187451606721853679662989352942160391925980622804119417211610682015438289120391617268475943314044550524777267409705830663754463023527246743903275712015236140272425259052875856875606152864038229449195380526586550530478376135005222014467286807518152823418933305418807326511187960066497584860703621148284337443983608709706923340463310690372703278316119195554317059738747178158658628085498169846897382150376376558858005088481320321141274365779763013884354252810783521643167521143168546959624911282373148335869597028012754120252062133885507384964889381789823398116618308485046697340546061231079043673886161820841441759965027184927678773808141264337678487162855779799820389341080737013910447330805833992261325447232460891451295363796476274721573394135892656303032666525465154619631035191910160196572654877694351213073924780894947164434679457406403560073419737307262273548271813060973531614425106870487599240148638653087723826591446866328914626984159449480850783759226661368427525970659759271951508264015279718376580471591936370610767356321660605933576613679280447750365500795606370557345241527211341300160697511376997136581095378573103431929237774039367690868289950701166119751797295277658348577441941610757451611081105136904725721401368060408243477596469391478023852027914432161724866363818855121419792903206910382741641438372512865946953788716086027447543828595788124834955452388632439582749375581225103459834816580460081824745035930390010633997785806888840314107044919011211756588849576776028918863786679758458429732448218684692413662750373191164467187874187478035475005318389464906060316377663998856840503965105609577227409881523690455940108100410523292106380050415293341843130799186875393799930632526225800441004099722664057901305486595939884321011016930547343662623840872332084569249361012969862280546536063285163466724573526140906478993298198278110736999869189417077436843371190727836921265319467820784123031924349235526049791053976856060083770700584478085471557400945111236440431629250812411798486280544986013505262033499155745921532612636651229217781636072955290562766354625374920445152581167161720846780865823989746294190891553210243141298550620171397522875426448606674351959071667149369243010772710052475958958268851040341470783165439985593125475551795160948141541319156797854416594466691146124171199886344518337409375214759735619933831254341520041760754427167529573691989001935318569557412119664726489153325239469713778517102356619745064986534757649057953892118969006158269431890774755883232930471951457905216303910760556386514732207150639395865712121182404725152455762852160320420500050612216294184469820634512193504670451334023942360175792758212239502293245163512407346544367275503428404479552700936081807935279952584709446742856549500139343540778552432602144271706612606118674402180215604724141238011557522628609317692606003108795808107025313171204091969390057506699698505962244426662991963892085003032796356527612413035881356722631381338133307106281521500296432744274238321649533265244335541400325591236348806981321221589661180203037363898353049420066532933637006524820417070410772936382121897467755725012997214593979395446494902333443552373979639961278503270810897162102483945652051109420440612640338521909339517075232255586400832600061946035315766720293919678020614371585251019178092537450661206854235062977850367769964997278970599066160282646607636413606471520800375265778200392053729881424573714804467719070434349531329720790551029923921284990368875072530827794951089844998890991986811881332682748304619611599102759025810244274166307758045825028133864533099461624210318272181945072212626976237886887143407288586266207845575366174778385362072653976302313497216680450954233703236483652070067377998390842164213155682472823464945906296213498962894069380512062145370864872679800553202992754603431921683201061209686465376074766216527503893799063747340008286406350231983126462831224974433208024306847308448224429529655411364056906792444763981195512375172481219599153685731946202759572531952798326413679840859370894223927714157777580334824969855841154829087943356487714209340876146518462848526273652231107925172669073106711381801326096625954282462922194782859276623421944071373106099788206810222316598313634746391738891090298901697654540797914044504430497702789064030371661747932716231974125925029452634599886990454847197298008166412345316980257211837642721401300736280483312680906605709660467627835612991348816519148772664138233964077778314462895076404126620919943368133441832698436503445054858961085634811747595413532279873880079727078682852665793034703543208301235629362086591124132093418667565446127887001110572072445910146424047971154788901442783498457915646269366820462574478486082916577986629242014842657918045755656021757208280169551458207869549428727232519351679671899064058831450445456817768446525193829320076692093364386379945650401824661646829063436322605266691008403398400450929129991916749239207750078820934028237790835744331731392918068154398978765735479378539063020951160806788865178569507623894066380824460713300500704306986555913920917870215503810222732464585195530538609384784803925812324488440358316466838235629951678336807365066652678833510155933040109019108097914728655001503948567242819545400847511714950838744442845910751836345312729767511957305413677069124689692985922458568107711913744808266809143898006747940574643850399344748680008924959893219403592295780323890674013869351627821323917135796016280465802448025991343023949511533660699071603311841748694125022495992039325628009089229482136992113792809878341373314309213976099366315016032482131187990918039950369329030037755431205582222790820519203561969759096651617877475438187599161718209177923680703613061036284606579562506946427755505324016202247818793707782496371721977659975272148522607100261924988487031001018921704100172316038152144839837448602342566155198379130749172112737498264564163005794309845922698760177498075884214404095391178488177276020972997509076572711503947399226333660350216773269197237048704736884732732722281586386322177224206909708345229139692321623390359933353691146485711765039927279664746141120626747083014563518558183802054625526255074561485668420290698126978304242386356913893273516999301998287631479769013647935388570754395473294831202793080510881335254866156424198370336420892921225529492656730064435350147509858167287649375565169146703465306529955348004167867066815512009474703199137625414492748725337575938580378411780709569898734358417273576626078783300944142191841948109380085515020910964682484319854748711955291139045693698572791638941848980535794094070022681225542004039616364088316370449611611891126423649296523190319782463817375883626808321422152558601569336933001356025354794514090531242030135140383413096712877546523818788586700118450723208235235436068154362997345823895350723070807336514551347071067444550410407784144652003456475679812216747794948320685645043703514705893219327071145863895484718879428075598281048044455340514013204996961905314023183180949649729870830415143448503114060093011630951570353514911586000870929308325934248865229575797706664265942069684601661329170847538020476100388784088092785121504645350073905195051876724961983932258958237373674516482506518462247941079939423599399611540187641974000674243199010802016639937936004358761442311438263231210635672078889751842621594559947646628768117998097866799532847651742749260450283609300109328004935800847338825176615748243025063928184521216366767283463141249656149047928720424975906935099007946994958348379176524246779743225657341703799880478568519695507101212543566707490682508389622042757065554010743705685659286889370993778337526769853457920371150061808594389802073030426028498209875751583513006311198962742170131795959312356599406369727261286089562297330745248002566585128510754367378266372097467962844183021224923732148504741068849790476870351474357113845739741756822435421203491999842598782689349558007030093173180502488760597543715193562286173518173843613787225964423539016816828927619860435031183859874102872098573960255368553199548091247815029233706132175117114449080859890261046015101116988843941491983836391660876758772418816139521020727086844223320699602575242659233808419521512529701353636723190345978513034542274360802965721284877171652403640198973310708346781094160005453410913898687266482775031094583040610942399875802864970164057435343852485449461010075045012228294844146358676366282173180524371276221070193124270401000054870006224473563585870520360662005787761983265776620727854859756170627875633708133744827575166397654005711659422482912971275365715425908106123439994183167424565696755628542641115688491676127509600384385778762176544897531715660632622233885428357850242265293232233365448252440042415121316043242865973083468232865341496750057822897948426807333679287081040516320078417004387186409983688789142203499505409181967889775495752086268716799153149259496022656400973888257136114498086207687227343226240441822057859426694504076246328977020241271588093702456950557171527761675324340389383913390219100703887183692836417499616415422733270217401246188044520855236780147000178096203032254009910208970139661171841792759375287855056582248319003833849696565037527039887538281786302891716210656492996964123949230875160684412547486053753437690301006322215509820681843381646892811382128239259996648485200811796820956929119351263346814103170452347127831540837986302607129346199613031513671313788628979266533633417580217011179898626141145948183138468980708479153917114429167940518876700044750098490984149839426671783263934250006399491637028620184910406310591094727030185403686072263457516078211035498587468834524699990680379009013286894209110464083246865217900234551420449278102547886330023154051333989353602395607531926121254509631489974677580709710878966715190811489386710192685967399352849228706293814430565389014265123280849667797093256403809735565369541251872652775549835717684048366575793861614726578160982911159804461141923165763622891622205368614289299512933095114927375281628565562151615929180563474384395646888111953784285709578720940651924523042387711053768382489735562321473589741672001707238727935036847003617482081329710895898045598476891912811614468231310121538028988285001878699150270285294251973925188644896491436874710427532463655216426081472695391041012800620319832851759148488191837148555950674637640055410196123943909774961669806505794322035178705409274946640536041891051089493610963713097032368111216838692740741404503421266065160050712358177047124500172250756608953712281508399375254482177289355901690514076839629796614167949098001089172413967543556028852277285085621660759245749141154129710348506611804564685325519189139661757356171944424554020822556659081639656662483672526272932108580175407385657194836083122756383389936703045728066950016696696662690228193319977557891138441333935950585749528554485416121014993645680022577812923543328563442124958711594123904044490111383174455676596372885489139731208778736176330397629956122516260231942371446564187924465343735576139506376283696408409484835082714894557956615196099716645851884916468785080224616298909933492604256635052425857452244280922937726082475104803744746845782054788820029585245284291701366855438248286713574473417481304897093251838911297487964231652768735601236878643288582438903282518514305298278628551442543911260323105513809427543467531925213552875445153977711424987262090020323394655680058518372931928893992938060999319964449735339580806696026752445807730407236246438927042335978004523508931887569449992535223575115118516069625395357959077019470001804196904730974097158632810456409753922806482753140756113420228771391796921159418608540116116496478911504075300249712449440593861233729071771785261963716386939967756903788851991711479639816835380886931889764149316924758963951800589777885422400874648801220191336955955850194310265596772859839358506027276661014483529042226972723930756084946533157421090535030357828629887703188967597664064783170349740477797345381981261118820047938761791257325939291723125611273498098316338382379894805506251714219399035505559211693114333895702496802042345437737849411228456586583656506510769021037796253050175309207593378584049107752165426445163470820425440567304210073509065470377023158096325931430476037489037317916770310717114696138808242013093877584993390426955806307444777048430599458722041426844567001551205348834217076966153743323346363100067334550749219428303476725265368587514388190582150390169401710204799428085684847633255486972454587375248449355281961125889466610060192335530311309804791911720560770180247537820031184165603463747508045390281605184290777292301141843269515145092209928203988608328044755538064700531717013437739703998873101792452170818800376884668343181959292795346980040413167101735163145261084472511261702829719949240688717554166497505097899703911219347924192393380952661678209721429629051056698400891502619984557024148758044275211671338348074992092101761080444287129048519592731585395298252593193069990696335652076795253743916372272641936015571776846052726937679685166844553181920453483504234216962837773355310246521482958137663803360384958503656941068612919702828675572288388146619799416426872881399346412763637682477231229270530362634956623545604401127031166668383147319236272789524984688030577788463352185521558457635209138294417409385282780070550879368695296732009536302946906598540388912683343120766213594669928594599228919544875921703105863170045324771933598428839886415209273889049074779640769917378269206125404745442224015240663882162697201238711307107967692079779652028807342429639960444771374212733683215662793113659682951606601081821011091100442344115722628731042310911537584034821679473643696095965096628285951721739574581576671109790619029886344102505123984730769046996795084130682003572415164286053429157560926974083074252225064926638027807465601481625816870276127056096268377805386496008290297657275730294987409488267853013828527458841085981559182527973539607775410430779979634976972364677287595649056602898411067608818422714425111204380586940890241635891877463113485589949784768095995135327615295120055267002669558870294401771063967984056271560231028969386326718332319851115792657452293995165096491781991974334651523497753721839030188690893464594304746962378252129744209348043342150720679776408957999392720318996200370460894967841612145078696680189823614139998398324204642491015791915122344340850457983490475850421410882640817353063690043927487716758028151280279343926057865288371284259902725871537126995484457434896834734638775494154862858797103903274716601477014819256006272681904008451636765653304240589188801548468452938639085869952285291626224668066482549115380716652748580413966623393920548467197329232076090774776964363421628609803337583408616971015647252158301809869717261796932373156251476780238855001184902261326144081184003491962770585753598280231356265979651397002544684976926418670081700616785350872029539035349472506244461832765912487236438135411750496394330863062675641572215232773108208706174167645718441412433870176443438431420358918992942394691816833814080923187460018436698386022236051131142948460195448854165372309947636265205363103312395201977295222844339147699769072206972096733004651044588682886321149206072726995984018591939903032737730043038028754606094578530893225327156563716815129148066293812828381690059006423775392683421469342636836590265205478687580015829497572507781767177727850205622083653572980831980765759506095455485310931626550680743038469313482918371748907379588947496105843806716525086426533092071611211170168466156411952263969435622330788907091165169645857010132684266237760668422625793853978257659768495906020441489122701072471423223147269909102224154676975170566352970794969088687697024778199267586320910702067691089134201500099559658518237021377830015785655147539354397403767195033103773322139077795419074212005623038686037646577381689179363699797116656969926966000332314353305130210013376853725198920294175266676310034168538916863608993442143366983724279732550210190452463733321289823235616642277681155352309258419481367013726506224511529172565147448702790233254650747769832318758816527655135557693277433880580991145893850847981595620037205114868494812558311836564202704854234832806468195336999223643715836557379481468454146636181156105034850833153329865454019922478992076317720981781571298576575107459063463233010025346161347613436529504118887624051406402810640875391546303961761449890642327599173867524986145559065932087031417751371604847166169902096840769332722718250778853984940316490185061705996193542939189020577078500438461596292036926960007068631780759481511213029321045284399162687406346974639274115570825125222644738364343981525396909699560644983264425035060235857169348030422337329537659545893446997965903625285966636395922352950286370329239439603715974001482769422046515731160953180287079153965019734115158858169814511881281209461736684175565153653263380256011185578651788767931285002738458702947552234105155424147178591711508844750552269922604395378621744224058803984352327426865186089820250582443645678526426122933238939118842573248561177047140298485861513840827123541471109995819703498520819537592075558603790893247090648789929967976122367352749332952148338179687927367637722334785191051032543942861910212247540579322573673392029944170829379843731480717268184605052042404448923947739654369878568330507916100424691702660274008950987437205769032762313247651725891919894543688364707269988648549352730288305710343802303169330983564584187089066344799692465573394109351533149939523581673747566722784670911808789473541386751083412638027388465717149854298292195447937140855673135086570695608511117191273730316503203792859335854964396796650162016377259925827194051574202428672079511835061510280009774866085573987679059943528582821679633685074784685076374514266053173471687168181230783787595665532568811059090190360217984167333372233462608103539387558075002225425942088231109847478355471071647770393013918744239730957690717467088344995570469157374421884002327916268026047763590176516637667582285855004257903228035474402736222142779192948631678799605730613064914401796249481045447624580318961502235731341149144769983619147178509612801804237069526192601432035423914669781424425315635665692568660358199857888522139828246876719660839491062975881511043249070787214064476164286693308023875138268812105284463962363812803428851940609121416082000896463999690698765353495295881821446890378363441236487632453711699146271599286908264224492156120478122195254142694024186947477715523128039577817139866151702296214796758585958999708109007524747962025195445612244362658364824410403146760511828420302756519489049139444057918415118192894591932403426369954207181849855684442036465944231056921551516232620965051158269649994511783075270038017161949471925846942586546612534562428226887368491647994291972162455136455432255635465097013046891646113708791367051827244378032546625899916189145387712976730661929883032935145731315470848893697807909040461150162076082082903489886929687966285308571143602305462700172687364535939343354570446555083611170560168131648486780387051027595944908202778742649359148207546000756464712650213608128433000162827582574616101622523399691230546897820746848876198202217781571785977762882974834592174060860206292103538779166011759618138107248407201581182667783210490794630760280340392556661421565977450509727244698525276987057490915818334058012332114860109521480582568109917780441800547192726737664486874315663161093635803389448831790863558120925309148160564833542597747506126494037953649947056852273481847395025582568749865570064571703590151193289015130304925358694912733194208614225496621258707040112945301021269952580857706623557989138366969559420998102361276312300674952647071537867687287594330537966765196216937716178639415702917222260626462866902955141387871682533286932553856372447578330699718969311073104937926759096353347498896500645724482422775086310512575407422700304146023224478171233325018611914718941821126753031374168401642425413204833610440061190558558161356589543874853445920056704794595914868649678922029380570960032384736183462741911407060971135933977486919370699656198820958995841080823656624381185936781797359664525329946879586079976366103668130076213252191349016597173350144870950943813058984855162124240588396309837552000730941872174265621839236462264586076589539494561907025520157011591242952064391769190964472695762824752596167570160388027391398242229378951902182733815258935866717299050778244812181612025668545786023231849022626482529041272736771310351271653068506246401064211083798304355102699519244237242291558642337378541697963144973196597912711932220202542028986925927843028016823981285514800340119877908723589565800478309725557329104725488638734313225882805933460859749034340376526550825267756826101067042140290337116848369820199117969485788576298590365331837702788159755629964666412015978546598121462779971147006092278763534440541241831610061573875771115142424707355964309161587206378247070896544211381110483971377363533202703207894090814357287156089408790754231542077062335752957104418440224063558370085240118177689352929797900502595184484250409406888933882766874225413035854485313205560895296881446970783701450459339305272455872147214487742136342004050989750829798572456421378372348800084848917389980293223133255366162993019520469440560642871069899810050979044468941957421200394904052063319836236510771466046972609130167400206287904181824601614159257327047005073762019137653363724219085192111956883673982992904796024606567816624998386588988104933444884559571990493708764127859415675401714287824160601481093570710588450235601097439912086493371018406396910831771456811144398230906477342653781931750720260916699564495062918542567033245596022505896841524289563339672693136849361050776066206688044940436267903970528581252006376213137471581532584411621948329010182759813752023806313552772652012500885835423026327876421831357864690537811333838838093486467783123068924177816251105258290283518215846419561942480442319146152944632643951497534117900896149398808359702224184961904029557185437891426071029082362779035982267358357209769307654320854835939212961808552400523415786108245452270797057632693193710755164391896378239622074072484022551001444011592258603314572733969189404589945097373826120342134136990980451440361451388516958547367815775695402942665631662898135111495407012942904068273145626297286355594984664524705027922387148176015589787959174154737700918706089985081292485224264327218007376711825445488002550156878566547653817739094032459008483162602766165214491501268348750517461589061678921183436670663684540597608127424792450251453374572944898084097575663040652223712674048854582072481314239601295312237268301038074253072275606594256065710320776359209262084171057699462289828550724339390262815956042477961552107036334425693951637335840453862172463121584029624703265345704621200739810967534188504783049152284620190174670393829899549056348375087569777867306081340404210350559078748282904428986167565669210469743064177987103394118374738638472594199190815602417518096030709936035321613284179091225493252056499216623636317048951581967647476488641822120162193799670594097182029429586618116599375476953694908219242906960895306037672947894735466870053480846903743718329076872335395062990793825821413904414458920423048025305815611549466011044126676703406648846000759476831462526538531779549669407496427795189133937646578646359748737830172475905091769619872177161613480328909585410228563994690208582977286707779842411218043190716718136525624526271914093821712625537791083297467659868612537371062162493780856158891534864536637042506983448496226923313129182767224985585297558770675157428764419263828246952007523162414780972526806848041713504233183035663517375249830649978028973044146003255358261601004908022631280957433466018266350539941430161398113073243121806261501615695039102729681147237883016646520036255277375832219694799020283084961536445598444378230151286959433202465513274077149566068888564487570903692008424748255184693899099611616643423912584354501287232010154430232737182506144438115085429039030770878434650427489112920568131454461144535758669574135369480573610925972292222241132778557978450057985457593462492041807659064652038413702525966993241228041147755760922963925965622610663575694946395493216446594942213998352190370432223195365974471068927161492896915201379993237288978720486615697327447588829019685127618450030950146858479408291808840776774817238900191079989643224132448839280395063345195528531109937700565497745774979548407610827957029463400742883539531633360339232573328900163474950523866300188363011474456318828952212914823527718125614335511763822280404010760662722309363712954621117153278986143936418607136849432874591118116845766129199672885622081508558629195602467800906696856259819447964795894972520344857700237348768578307098616416194822777810394921520144779811438544160099275020371939150980229924771030267820295305562688492901583822803624360034981947383863085708346028379876311972626675039635290518219524688606434484784440929451755399987756980159969496433496257905117357095340309895893096429383820729621370682072210524554027159813337434610872157993517015757863826805806209552674112243937318255283066097406743661209242154091074566023462604389105736231446401136667631830599843528653429602581606017217098473971823299900255002450147913433647701169646624171038325370601218837903171066329300063735185246783836878426980304036877737754302365043298982803066850207321398514357772687760230536944246496857765826741412001249086248810538635701886406289517857588298759755401556252125512861240244905899678603081622345253521921470405685888052900372258886232416653224270896531983333914692494332812364663578298552331979532615845257176358712374434383453265699130153687333383851031999451705327977760705923965407849744252451479897460504113970952913926976509311314765199247315702346514906879323011526339519396965445399005979324720253109259101729240248451969651016545498952164296682726352233457122868947851829182373451497093393244267063041956689006097677869116810582135441939276638222569602211558114199660766017159802772904411204913988338329460935777493793553886740671404757985455587125314286857448659528806786240918011099524146317511427073457590101202881723798197610153757662637670186525247391587455463885703377256507767599975207289859770683694227739178092197065875062115565502340929215874099129807900043990423218565168384292514231923028427170394293648855219071326316521111175159657570081234049988139458595345890079403198635810217109243525800532071485059966187014696396152353812395165688537384673928803999483721467961356023555261657299393514494927389099435503543157636187574860555507999290447776931217279796043810360977947027935029159806306919051304462775336040126523599897408180373910670438985092556620745513239696236780215384084673677700624041064504123236555181850370957246673380603753105009840502999525759786890792130752982837934938589886240593378423443430265491337177005888320905120853801122454723390628914667019946048204017361478416089118439664057544647198493564709244930748486791879844997073056650063125126196990561620033630124238967271523536801162289264170784475814693524952362005587708914830307373076647559248145969939674811635642187107402465684012041221581900911097507728904613106457097233601739005079000596699549467787240646123276377828012247973559911530125788303801603042332417286062418953072479632612133573006333541147384492992378691930744128522203321722906427887587241667561591434279826884258189712788925959716613560163633584083418450914617104732321511331660729631527442881232756937356627903584631940429260304173757520180091056678264456893341211354598041841894381228342377741044379380455444721578245263772653796780155479671816406955278048638515406922308018682728272503194703456243308114694681722799819287986211255682844024149084639431373706671178984295876789635697626147952374501669163979650284107450638813597417020005981855011648544282605796292810009777081996852285259038656313915451425455723547357548624604342648083661940250268636660552503574025367780956927827711533830422156200525049346593909137316642085028135104540681142273540119502553476481981959511929042699107004473765368756732156700788781510708701117506902154470610125866781776108683439654751476251525847817668570247859835767772180403971033816348923283111982989891464766646811780119150028417855973735972401478643440976029244854651915663746901511849700735520870292041238135150160497151963834006164243553869516704794802197348881740543024774228092988098187247613031067533415184514398563820970626531138346897948110477433639869500620840704611922053322344266705152284873570706646541754325934340021935644642519470506743887956495371381605386193877613902853569859988163865203206286616522779113096547731088653347230270650066638000600134239351818386264926817511060793156628768963113012047389806433376366967323082069521350171974032480939946562115543171534436158881767240378053150738604987094411128190995657358182076124374481479224119141346404874474586751014458715856443802517294627612744937971315816944777819286627116055841041483247989342643163722684123192343945930138335186024925992807629007419779593423798871632823235669805379816323626701674257624044811852701216296105476358197685327991155609727537566446191140146591823591568515571964789956139533316076774478790849170208210204028121022216282476951863515500394183265627722913228938381682690264834562221536690134777812022343767499504095953965822634342470176316793713149466590193077991572402822664955171314735934347486090941434615266140931852598789636910486695434154357019752929246591608151204782281178383743850306558456598895270601980056232093380149220280988886809480978958409871801508192843059595916957050090446846277430019105585224008340872102405285147740105178842086763673212698609402344964802897894964992522554818038047872819222377046418807561249043983005991892287752615385867232646128465166837734290375461440093890178983405707657588868749605208142688461272844846877878985568117773299791204527838320722578171966619103725062398325795478034240539205895602418335501736567895258077177549019535752498590597328159215588229502309823694706577244894680658342047021818252547443415058690345113151551868696155001283415757445722985897993740979351315136242333642675047494335175683538774008071654421235802989803385793041782575518155054678013530837422107976611069551816644288064489951985987018205600981432499347043579112032245228657181536150210028414859976644545532330674932320974679281512549400405498178218534242728899795252233216647471539433952664469071109937132953802094152497288771773326874335726744385957110550799350000187053198704387897262717701735924576466177077571012064297208386433148315031400408421679350987707091447072918258390167227404585322968392651097270900290444740864621203572098120304481459504117586184287213856927830460704033043416971166430451729681453842449359510366529290863157529644849831112400017353749812493431193481035595435557424412596375581263656659419610209431899108321466024979203278923392018562460938930792207151708375770072938794332489021120366589229642483210566608303816667788086014488599415294179871793656975780226502557687974449940528887993466476125069266269762106732445040740359057008524439548853505469238068863359114730379641262802177239426366749702198787950514595065682991635306128428687989474396909652501932625441750328969846562611234510596694773947225805916789450200588507270396798330312604411930945332495993999092320111319181397099934489875751185503030702994164679940811220070794973225492486492936948258408767568693064376281716219337239949814742407166832939200946811117443923028229878297680292780313711834118288724999862220993741205682228128450822740717683887044305889802324296870729391030954421997362908851753843946976450810815519261794769513126668961501748671161953771329545997230719325221429594558682398726802376012736954632350633605488133806171925182731957856341894074198034048676411695923422631774404785148860365159208194692450270199218939206987261941934158772866476973324746102176966415839792846526900044795793080337591133861050315683510040035549468167526791179929050261608757954338774139346735755346595160318346637731083295958532418168753304862059405615589605854013726627919868649473208814081632353150748234995546029464505260689805707943795758455093784022587864008813490700485492063474179252975604296511241150771757572733032989357662751057750484503835088173775741856237744677259916906466489826216384692815200737654306383414164104840651404974390090521824982206386662804465063064196419610901217181810333445834759975037044501762325228262631248269857620387678121325970164356239505773482355655537374974712376142526647848379448844354053671415977698235419057062020609415099494314547831719819703783752015975374000325220690800187551167116243794366686708784852992048555425340419325009792801424881296550225175130189403891975323634623550127936933159888837577622852837826686044389550024951867318339647775949293702155217617608429659052734702730946471108186682081191668363065394364796844681713624788914926317934585653108863112532136852121283692035612706983505600134540308737151552336876686340610896260299873132951888313539138166870428115648298651079343265425148495374176692314530422746212955235168443972254534546301281119554127543001587895375113995428851911572827552980504238794576215342092153630846605272018440762097931005517105842786060437559056730282193363229995738797988000901320981015335101892175870895024857447324590581216899055772652387001358218903607420234257521654861928370734425552228972816335855884139850628764107835990737373573841338855086978472119865430425919352658902701613359016359070731195241566266838387542496996587754692447841520630812715091681756866763326635774459638714373933957627723545354231094345332133310346618975731475633651411761666804406246114400537246348764253484599585783896125656017029550802292842139156652604210539953229776846746598564501137535550772908157901000069533079910157117629984491243016953007827880512152245575693066955122806238594704317321824996381070936622431920709177661483508658282124366102361867983305400741523720040997253722638934091824211213913994520752607417609499533713818030785237488969136266946028180687868078306664479397488646558639735908239578131664332118082620611648839636518724461309196104971752047186632663809686032837937858870334585759465291280169623865404651570586916191572497847549792301291163922384566627886687466156610008535554147493796393315114910529939546535468200736690475247311354262141207395396594090962427504710578197444845149217729584685175019093873136780557285988435396565211407905729033480080218231313145124759559034436522417424854776050082594183914866137927173586726988813135704197758755138871676433204557785367112369576379429174591450258361854306964285463256866752586387991497796188443421074992252955171611215694723117573467713524595701749735713277952890822201598733634381283158396039441350881042400651359774888455914853858916885110265021107910436250668697271310543439982797525056642117189436764671815077539938133593118514449745408049724665640525491623190144822538968232558214909441690615332502941894432334087496576222795500396729155740252416926238050977024931769806666922338419667627582766961072843982252876429325061217706170689603716386236044035857306908017522242948585501622346225749385128812584752949088690205276180246494665260350963687209591299112907746070260718291581673192125367218811271629108604954620886633112968952614028643068206194675786295043139790407314712955637605502016089406124442455393095307436224515361211859179614533644259404008879494474441342244718110839599301548575039095683495472288294327447071147157482675134982805032313231103437540289852069139228895792867128325825494294695105807944007625986117679161411718862267299673296515575744013524751741839843253692671263125363424677710088706838632857848848753253666550058406951911374285694677828027574432787368039095093632137991958468574760943785404909690557677900979936639809767496543185058437775792101218210623243677011259095655228398388210693636937691049116785482595349517363521166273716355514744268603884322651583423870427659164694131249270992841340982232185097499456919506031141342718158264670329034866549982967949112240739867576779259637792928684912741286113013360206593086603078772206876101102189080676209243973701084447130943206573816101463289012043086209424974090626971204176668568231110265988737559969646136806212693248933075297687086867937953204618020678879633394870154822398009087175835139319257266833061579454959955820429390350796141137680335647751947345724749359900790921136910118989213171304846441249121611242207927532386615775990456505249802773052237829249344563996226535924995768885851696683678152001858841921172939957664263815349098585765528740646223397693776604848930922128287141946401991110838920258930979953832813093062245612405593590813348835294331466715537364681704366290685176058264687056598264085367923494152994749219798828876419243640274576584876290688726290934334598223977292924436939634373397666395542281416185096184831818153877877102413252877668861623756378972757601159927533133160669956751041857571607187979965055193306595235904688140499232717663145846061354082445132054771316951998059082139598668244243574772982288407115415345131648034505433921555908192451704537623651688217094445561610189359046697191430529999020935260222850326122790281764910951792240003483244167791013956027145303230097514108671582310418260851810032207453218578031782593326143143538902213912982707878367254504094503611747876518276315877557891401095647619935308682720326702287687366243106406641001534693322752853323593516213592574171156795270862422564629327979437416810082665185443874834090194192623724607900817018878029343956668965743136974792898956591469423155070873928373625125570924344897670437125147014679688326390019601720351720278797921290637502593076099038800117803066986823352070636830702585139775757423069698018921111502961109638897203759807739619597469980524484471176128354347018201381917145982785668810792584097623747589027982093644962672381275746891470609684310755263042591623839523762572329491105619203705411853745860682740820641177171681802740958189343184646634071397934216380413505446352706956355044388049773185309688618759230808298923929092527619916319282815347333532892969355134986355846353183006328217312434452062801596415258702670860843707054652168192657868535067022700242297535529154121861197512441210061500839489341073192975760132843496557230361309415695523421906515032193188038560530622816849352130203820040883655393343578992033518611353537437770309727582966736814230580667548333506517736322836875541663487687988043354124486373806813524748728985736037170963705878886657548175126586133969335845778668051061654780475913385208485656501897167401355478898520939786256619054913264133640842171126489264432263702725243990623718524656584645864444124209028539644000089217981187556933476519088646630163118532302083084521037501187895504262177431848112941278767844446374880148589862227397211690698033556704444790649562112859389913676004214378831718846582579052889273988184852643817912675377315708844388100162241844096875770572413298655652830207377139974144603332727536002884564634977776882756302822529787933840036680212304914856385437282932332156531384265099771644285228858700204788283000886456349501924139621615385628570783890864808999901728314008490546741495181676764528275878679025660144886701988223915829189006982795045992085795370429888340349707254471428408267448655393657122318146546916908696716316339917880726201125451428753714639765388241457432365628232657244686265412700349773948077152997947091511621552018564315940953496997296654317127435140094798529856954961788802753072903411010172267062170582111923188727372474366770998202667505789344870225367391680540527782971859117094286667178823681419370288023018873656762886370155858539963508854744914255532535355703264174308155468682286589754879075511105630964615625378352751887661006086851966120241074324881164826406124886047802516766840428054243675110602185885184332051647439864105978719081493894894889438891071716576487059290304767123303801498307834941983649886617103086351931505217666430233067928284368647577436219802932094942101528144209294257392237153866760252664408061195614802886873411023791595442962679570275404642095708477024407674727413253038699692882265625687210487517764367293174245164138504252583263566993153526563856662414968610526385841107632824262767125777416335247690253542724851945563642762414384530356183365083905146295893909359707241196117819974870354278420691830834750900105099654963206577359746773743232036609178661996426751579463024173352893391401129329912090902782905328214581999142497757670831038944835626829857219004180266069130999171088369288614460838048033371143136565237376265372711807409898099840161183570496609313651781547112625372330383043422596086357017504284304760646431503564825274369440824484097506785153970617877527034782440299404069986150787415570235325722692017680354180672349164511387231357725005411182567228836387846534250267368948814985069911248884591560857340697743810684043647773711964586919001093575613040045865447698668110135329529765532779597982866767444466735390509856924068981089517014825934172186712607318882629031790570349702144831368722091941466064035562172528303245499383626479282470746207708235810188404366250815214584561564781005466754354161911685135585346995124137231110062053589950752874866336436744351894848470628275066562064813146510839763284748832430549613239609337051940328618377037234989372013391821904493522251585404739014861519705623328729751933887496652146994274778109093591668169083077251525603624957886459366790611308917310591394343437548766226295816640193816529455214375667076248908345638998765018536464795308861063637439733642917004866128189585638804365641453820439729564491342370863827617002670839238890907253493934060760372946924377928426363523706827460691057711232433561752825071187750471221851566105722343438154948721092917468107575221068770045535451666497307937641043991437485612114083986065229399551080784041681888700643658268128393380524840020618259387134241685995405307379277949713335040432709537727823794952889894813169238832998411527368277145315106941842609081469897463545990412621338359896873064233393833524611731965800894058249916595059073588337054573840656170069275553735939900503427851532516715350331390167607053463182381270780791532632742227902941270748612949169596184055196942810045259105059848240394760068276025680775609916740936744107999743525751562659586368998352943083257504861453795212280937379755340331725253919295988012081705388173619490009170150867384054042905860181409963760590703492260666414352621859022137511518783656598273648261775340961974302309459974080539773030964569967273446130543482066194565522702249337051395059278323967895780509164261929171760960346680129585543946766085377165896146904993273977033207903461926903036557111123159249071885214415905374951974879665713949144492997462339502729014385034475784401052268343463965222979125176058129750457158123734374774261417427261628163239294959813727525747835831409523720481326591412763919398912340617158445422032173715764166749827938800192681117712219385017999165130086543046748154985594823509433546610240892159639692393407426047351485133444086894269720495480882351525548025004374215505695083156496264112497251322780511897152103332021925245138243284301731009724194694145823645115798021578618124119771150342354931671981220122226696724862434430653292394198252688726534547038142880625846210508283819650551509243237652360714811139528455570567343991673356991992983205971987696451781120034358178543370135871826841042115588176528648462023891110065318410519324551992690416610608902670656111298571627527347038995938067901625927930450727402852867417614751773723353115215420285241049336192665245602813426911618217874163475601916324711024680664111079513949321553432721085120834967651946536878446367330329298549714717213841340362959837091650902353922160423767905390822046860975376232934812794104287376346266853073216617305580227899838788466244312291049990372292139254049398581861175443483533746337668423606447934014545123644964199260367189156134158989323112809618544631733209941186930813825598100358191824385517217242657973417492012136438735570193363818142224665335520747314345353734768182988651741211475608516921214419372304978321675123777999849071268139001289534757274966029990053778925444998291397682652056251269720415697282989170445939786707512288362256344934006415246908626791226414816631961852747858871866996913425309703647034039430696522215292435769378781919363004485029892413908377019992548036429410154564656571814842961370003962427509759328649534520612341322350079575423455205709590213334188918648754012266957875911364697237478273542243415023861514005647985700221044976053574363151263892022884801990996528974346128194266699831381381173316817496217286100650046737154593209855615336308042953975767242009754461899953190621568800449358494793066918552076798467115293458323296723288744134337943976007010523858310595414838701705933778867524881028069765386109355307609822485203592126454091803311958232654743825537189193589437455824836120549369303129651392606366481574646785481092951699019093688824663828622547900863284556237290690433191732664645361417394286163333458881941053488534684118805143793294240979776533562537874574174227365840822331345320601809641235024418771433371791379902574380907474626002138272358370123534951754811889753189400197539389767705149775706465651563138330982833823217824827421945543346530641216870546656343464364940229877205833384987917305710371314509977082945941453683008187030912124540381218487695854237415387673094923012636043178242269840959533581893243819614185275198491282889958969522678945892189079424047200797294340264770472511217386319698155124743285806000589308308348080379420747347755868420939527093039750956298841510788382367609984398858924151968797152664871358631758377217748773306569642854782838591903091285981963732440785568620267345859144924724943826218805077132799427457748256222526354065738976836193691151472026892526037740603484310208745474312038894495528868359991026296484979116184077726573915186856370371163680659626772814446109040857689321442582661569285697462400603206829040968449224505024027452261988823192716282130342378089189194092040259087170442193099800150750343640910822553558446012157289692101471841651905026585281566777498254898635897625189140227198062828561832210400016850801811500228169914316114271207980175768302003220899063557080279084962443120135098168293637950077981566367179508924356587349307242963575250021478827398168720376585730046434068824109690764279494964985816030722715656089092676669617438621159266720542917195874202738859102272030824584267812519437468535806474374318014888340647389923211444454964130252386873299026274263463786814082311071035100592209562402758959563233356460794284515341650987042406403022445096735889139490096597221147564799206918999212450195941947517410465813659683367801559606616556860719807432531891253523151702611615478858249213679637336047927922838281970340392409917150724198038238290939915828385929200728630238375840641496588815511825776059905119232776817783743845188687594704646567917916053201990096977743790237841526693372264241534768105802440963274958264031362263135153128396850313542482347873866845296335777275693643734729443890634915222985132311341529115963922288961230418456841822394492013606916206437511024245764325249851717918866307064349546223219454419629490509382632423952628084653640068179173337338286817439986685295284915039541148530780707570319683958760530524054752848039907004528990240989794723960108611866467746980772057011938427469019353073422855137917035844922219689828781614588754063784156171189476803578909032891938995655102729479668976171278910473214639722166012693339707559249283096662308370505706624158467867767622952215355001761569176394726293563826054381341818184044354308919678382411250315895754378486600316825434734127663760044133184754184106854267588079769436444335237519004067126154758197350347112550576782117341036782067079891066773410331257464003354218722431796009218775421973828913768369693572925846034496071973909139212682035668081097357953017341762320011866292446834345396220415951701308683368828623152926507906927885267315638900132868366825444770842038360937927182262567038212689687337168845211182550728615288803289012255432004004192639643573094700438197074226300249692036273821070390349135054681089492460009749597038546997834893457554583289598103831554861951733653713514990501882036301222480095645942723342497890456529265897018393300652887037585389851666948473008189565803042795830542252577891917199820957526684204571459795213441766204762909043756638441492032112015339177852983766400028822729600197316182450133151397086616153678111866359908361821691622832559551846578650673569206644544445546624610231104514178967642649239392024637856186633126656309735827851500727353249308535785733916362174302709834937806697105993508831707039997444021382920371659262089247311320405999406283134607987144673042078579335219780565173678615019785994511372917063533365014532684569926341419531075248756694443604305787002446672909939058280151787456623642507994759984903614810029886099159363232356226441905960928616439426368316143434378190820726024621058126430358940796008883336544546349120163303222138841850171167102927172749076932172671850872142305404490753398890208488316224879159841178865002543070250969908081120084986073265726989394301280197460667994690600626743991752266836958964936587710683635892771914982889950174733506147457725100285947723841808705373101722532602459850612594367996684869705421913501533218475464481137867529153027603649355952176623998922770766794923637126785006737620210840816927859545957971020694199965934934094108318217828129426323979791830616004500489895748938147483333191416582530615521097927669545521488954128654260485264647853693142897783768188154659106531717630719815944413080504471082599648643012702197039998707222869335286133854415413429662959540920363178246728575280604946786780182252234787571081925750666250280661691095558549459909400586369339410877199175401171867441161021305679445448742508747298739070417566868908393355879074719318561118119055901465516334541351337333729459196728146506747121594212361452305913446348818704264413911115416182799800393090427370441514928114730056854207027594546986615670284421941869830683932267621686885867764933273829360390669551658788445836309133458660011412330325942506068789412084376050250865225847545696743023873426666495984663901523256633525296231222022695830275082498126176327734622852467131703489213863390977570643656712941378040637847590056361739594920178952316574267820814985045556306766089965795653267383109528165911032977054400908650019161524667685963272421276117944127911612331149058285516878161423940282951186774050261923577737676686255849341333059064424004293489913296670790776810645493742751394236897976018220583126160761805982548671098433301521844894362801454105801512482751591535797003138441465592953195063869777280600518502222114440856871329121441360466452306916404101598570017709184726511936267824962333259554679723597291848398045707374484118827525812936626863982422670078253825788695924716504951812079561962648895317180536432125791044470464027421274193911645341785587814924235533033199465841294491983533702841276610321149616651743624119706638838785986358878615370829856946603549742132674330370766503246245457522971020457206435982528758421396255840002482199118755947048731812843493611351070314802593481067079552602160233057541723137188013413404422454373355094549699888168035791010702865665063901746182377764967715020587486481727631124731722343336027243552657014844298366607690622378885996036294536397569371366323308839745565497538299678800580173708720405860691112831006839252534695593017752506575220216760115131688427990967399065076261851138895372427864030334948121614592035874737293405216338498311428087982065022634065936413555357478363924846701080124419705839518564314918837121007932307647582217139609771193976097911745527417054729641275329493607920087458999389503461889633738585670374507471687473889971444091213624197417493527356604826102805573928311862341298422691761359951157163709192787689052182195162045331005478098240476160533393963234295804674005069342650124119460677042279338769246268641709179055986892112693892633469518409098692668350730256480976715364705282437817905675941457975922910746486612925009842070823161840460601452435489718158103184271469977975385322932827542306096427147548515909000215018502247443757708359656031927859443301935357629845995232648168480942203560023520469148112345533038212569139620605403405910380065993352314915765344634537582990784116336001610013502200855839884136994487625945847689929530558656468899977499743282339254205191991176690672420149110369904056131057524313155412939927983845015349130284910543261259808946292036568363808934556755359797475540776713824014009726013112471589930575358212538057207666647258400007870595252327870149287920298615500963555752063076654764431372920366865521965225770293484584960606927338757221063720686990713507332905480146383508645770076157490519475516215682478828916695478550487164122039011333209515541559436324556737696751824449151619669983043930524429043807636369711934345056894990268062277741084994336991516984169843309855988480128164012481005312590855413694498751749226989111721938852290806256502499274849679241009715318081167645224464214561515891923961892426706691930484306113987272355566399255277364782965437550629933032732325461790329762064918833173537487043923967777056310080641313481803212422086893463649271598444199669527787808589185346092817913716575255523172465370180613639171716238272183273408303213601989361391323747639244954687954627103683616629129463190505870652293041961715562660371566173558646035258799410798137195266211423327119111945339572509572176161401746884776789267711965305485019073055088036479822075038232552136716728857331675914911368215668373230738369777588540836171470475640097241287954851838005899740720773168840501555268956264022358133298640899054034871039113804626879318880647662484346749978124640442508284268096596444720302501562447214752220441432728423657910918377093739057927114072476229426389770820087012394465037746827618380185196412188125921688294684063698908833669274718101947252917535370922334442350081360094433500716195685406737284001854343640503522416337136433740353123156515080476905884164913774438350696046612630575891364228283022663504570549770843228743448397574314847910139742502542444474046367439824930848872089316216494630559868239835832414151765388289035007916011354316434126644370997218538140082510261717168720417045930072503246238326208209320922647843264119206927787566774182183476004309388120556580038265925283513272099089860363481262057868122389054435759970187982048280692322133714137947774340123585413337792881876492039705822530629174724834739104152372114377257850029905028644420995471433955530172233665682317270684230839154416961236647162939587549273566676664384218979343861261112834814624813706075348142414429533527422266055462069515550448435518419163460745291758156111211810281914814883199432910898011669762141930607989475162837709344700239224885654732760774556015849524543959469970195553289811915958646815029387252844284485152534297209237969562290270620109783366941663728773357828454737033070275111956857703999240661142651442896072595271958270373093204512156249511256804771311849654983967054986647982151246018996446710377040295336549822436200798037335172997696759129821591663249973376022692227731452824600842572327413163110293869353205280077912577113868201759440994144201278086332044489046263785951182606641332354317798194946828685333921704680779018731860466532303559314297125877778612711194757894927722272887533269725633448077291700766063460501845960681306706347644764334456388175039648141022874988563973389736162774480073360503669306711639550872794339964753386644823770837225766281037485052110183965180047760891922923688520421152175282308678054138825229856952135952303518887634993007847781624317043185094250638416796887695805562244495682669097854188181046679696354596285096279597249194753225656130020459878565334224039853189037218221886120523088677032094689152551430150781043308037459961308428114014690328763885375167054751710414692709499234137353546242180359556508304284168928805568524521028513703789815480146973896596778922767151915077119166045665142749020496142605833264047477321305537464268877603490490390347759815386327668419490987645997527822972514281247072811654671917920629174421314137082506476651996779502110069489102009462108031504253252027086457924411400912200085378313869394284041734626815430617421634479964030006875674917720101121587882529237928624792517103142652472391714977965039065857930552345765494205857062915302710873486629383994146870232395046147477131907901719136979513533078443031534897768954344564481507827970204123457269705080482573949667743835401264581038041473623133472986901989745547801072773843627112643853987982561071281192318880187620967223565775691091039287353435068847714022947636150847184241829716616309806454807679359336691506580887610480045548338988047086639592472100710974364265927953917759022465645085066356260387142185443551192822899754320140345413866405010052423333892561261774697192990033952192704487742304247827774564154231358730994738981273412317894229335137596790448296348885985040493803871644599288002037367004331396119916676559436860408615622500625296236830813733817846299004779440822903893149398591462253742324450980515453448514213070939929073253938722135498144247669429843045499216476179760086109072409166849868718697316824405193031571074416464899679986150182277553029668190894211411787353720702864700494420102288006573506894496290091623417556083232756735749551743170698551554574341189046680211162182765137534834952632896577909314013492683355921306564436513863084558419710851944964569689476981286154098996251851944307367286557085265982326515045186052627463612365916105895022550430341639093359639810633445953650089991783462155592396741225462954009223204798008330323320656317702443687153889491919914394558846404736226097215493636302405759644371230046512595679983384601238524862936148144636987006556893345165883677995984019132759871594922114121802521348291976796732786395980561804190967849809991330044183267560789111419452157631660238114838481035439300510849494893214205535732319985307224585296960787776039995227873402834999898859782538733616946329820789037567764268295707718538444331249167301554058679036504444893225746883332114868927431718453454330236699960271147468968530847570739814635696474747869701556883075479681286423555910746628278829173974551940615971044615835419207650730293576662992802085018041770574037725520565557633024164032550994813563383266369617908780410102522966790015220512646466217711644863454500436468114462716552568075648513818406595760632218768000215630990949811936411428610848617517548751014690007041172699827303982711923480124703312216961981097088082396708317493369393781222185922600334954587562770813975221602501761261777961889041403671911565730525247405727730238939477708494160942358734537877770297991667884287097133624965861219904819250111286944845120583359484936587545819352966570743333418029954531483993970664110088124565028159916197534749312723617483855972399573955460595866341525984413300693659346177945283084768949395265570664279240114567912297891011994555796372418903877675612542758659967498271603817496694493737822066262789413534352035020098370557432923883899398353495931656617375384704819555467572476019812630148497625272402286991740683936292175301396571905689889053010389776533984086183955307707630099227083863208990783742560207042534491540716729202378024381760650640486785493930434787431782640217285223644054531448881427539497269951749166099716592095835704127287383698377471079379909713912022457595684735610883375905986764670507037517212513610713395623311569079733038831001909712853258067553400578490353051910307557542405965920321903236278952867450561331365060604192674747260072887114442981930357074574245739638094424584776680417679660073036440330059791044752583926503049495928133544958639132694321407972654838514190839575225317718077587426028963372228026129684900724677678426508978187696656783197033471572129861246770719645546678263646835097885543645543648232295654915698291973426194406666772828569277642535253400909200865837797351718916896659093917836445347813260935043094181008688810860734146571344874745537253226408073250589995360319433502803444638626430307001141895281023083167077433154407450532354121302732387236590323322690073106037659451769448908697389253118500224115137494738044629145202157249754111138861066801255901905611385639902189610158831152429292129943766697797428166858144586214988707677017868226040716560114415300985242675922786972224880326618413809170970863998170764206439932634004705709334433031411482726068041518943466236225723135059866795658212487298770650943967621586098391550940888680368270388681464512450004513552955616292509693868121179417296213437100626867175868632105791634991279763532377387384019403847575272662101260555974363750888243978110667500216056105233661671919620829999481210924942790062257807205621130678706147485255614653312366359299101112050018580681647782248625688372250334737117657771990645730006013354856737660776358256093471328216450443699019878732768506085252072307199959132570617069729265618904208173835259559069098088733497435280505611011293930405767039225525278571092011873511090666504621501700010752415141312127814995371401377702497351044661383846485454102378480820977074624092819045002924642783955523638390533928089799569956389554564970043532964447986361921734347367928081414298635529243411992369830279512061211188535869937086511277143292732480281364889092177705927591698329039519631343447076023642218973999028736429377769454527721822013877878266250811609197262563174533735977255933028739941033862682942437371443292858537028634112031424387799972128838631106345111083600787357206676136120876510299615135457017739736772229729594204606598079412479548970635849874148538417602284642463102921696675130585114107224461275206391097600240945327147475308615704822107507295161061621876426189018527706273374655412336274872909749495971760737739505499980951021462295203718013707598143032990529610859365240919652582874181424679969969206408843088261413435855951223688998920864209688272417748881432892480463185350714906080165510069251401817304021865192306802024179245336009719610608659498174247136061384261369962769592499508276992270158675082484500854061057505890445958248569842405804319973858939028411406454798557869277771833624766651254926402369895860937218929899593828445805239820375718609347003166156279693569649147188905369947764737097207693454195213238953336750723527998323208916597854279408925580194958091712905419032132248807610654594219491573568639215339699437909424133403089566693893706554901279095576654399370722708429398698516156891133917176804725901984201474274816416872685968201760039653189980405984103563335522306026577814675877233565897573198989986088476495686076822530749766229940131361941861251444645984158510345335420893858302560304683500076905312422137642472138672254208431697581427436791058667674745478535020463572674182411529928327702057570547079994909752771095773494820755733712326442602975605063250767662896925310759380026598950512932495017952701474509123141513756955854587663604273368751211520336424227609873669225129727427209330826328460797174740825473286996355038589861057317155530101114170634625639853653150733617212749059412200389612045147661165219757443343454856838008735470481622240343332119649264426627182601683129528611346275488482046199630682189543209342263322974534419289718969163910704561210797869334370186722576327012693818027899192423733254950872003954458795335492018374374123232296911767614131223339110769457344475128807125966074400860901123937304547516039366039668647990513750001438856592398508205144537075752989383715746909077627835280407571012925530954128010238177710279838447132751096176487000263484127639406370943975942331568591468515854409361434293481016989031100522992060108560424900016711854426680553345799708297582361758843607757560114014457604920965055710158367623237863743772406251178254051192862622077500922886069536857335617730507814546176542652394552463990894892787051426896847609280524758471593233282607497629157725345141513741077762369130837054122847052298225828308584829660267972054767686060816019341014424007649534503571070047661683365261446074726990192759541185961895384614514453491347807293535724541029079948254416377117479214996377553470139005199329409082133651298549043356852906823340711184549461459448954085306205110906136160840409689263829837394928352659127552410426895124852528168492790346095450738139249522328022217176357569733152337745410766907616718040697626169387107009976266731865907853312710433532129485047438122494642347194525843306039501416864049800531428109378176272375679553159228576707990557189082913088314433636333121599912239298618697789296186510514614167139648353322883631804603394240093594608555392044001664288297404219392626046182822046687267279924253825372966681009253159028286819314552018408527175960995293054155341469364116640331311907870610915782655572940717928549765127799087503777611188659220863982264798100247439417486616122118255914352172303596018715795696079487405218962782168606364905714508947026022424693773093503466436390318762917597535966830797351302380884825508272475206483331668430752913431734020755521597930916371340848108734719683319680455619020153249734389017216533506118009882811635244019565679668552303077832675583252920599412826628473062580638072602228122713622017549207165266753400514920803961657278136923069235772672752742991262680533973001518818899973481007611126759070353663951890142266525600391353327452535066860069201431884936746985631550848196242652681759572173005919258907994002177914824157356241387278077959814392021881911938459365168042966603326765875687150685015233493329812518395212261640143679270571758645101812534832404336981419920966761542047119520903729110073634691935918815123596060078756313144103419140986747634037483728546896275857570475723516240884440758667721040600308865469414017945947014321710579054487510810283685799486764397545429605897335176506161051715076967805346526076784616604103732537530151220609608620716814784574469816568488169848271305246714293578928945022948128558652992392667104151571437591950661325265571818830140211346564052443835852057550326241154973026125747809752565069617612025473393133381491420022083784254567369794759795365284517323007682872577338086704066690361673982971418486356128111897765794234104767884265721766259434045606626891120025408735450252543493248879417715616437012367312907183386868854129135448246140495370233257580424844132817434937863955339227453722693898848482689730709553076250120798058841335638554908866248477692284982362742509251465714134568417277515930447888020845497480643595738989152561394280561754536067527496558892088261634873387843469650291117279775944355373703064393547556174962210602032106170971412483230100614833100792913139998390661778793984656165608928981238318953154736766043383369915175480049064571545953407951350733607981986075465711001072058633874311946164359880956289206135765698317536078087711860833923107181791392337021456594676757405507808574079538932917734244844210719612742588539847990198321756820271755575879578715139155030322363647894650566261758108318106311183268059559848785231877273370213067843260725223523120346536720797434358264576721560291494155977218528101284920704133539247781030434062485293386138466820666513361506739018112101665783138294999663228658650419207282903440972118741427869654883833108372792825142709644203070249550887858740431296699057141286495489892369374361230080685545473717776113477697314692610259046278407737625549169462289995627938507752689551940723284315342784401948506221436181331477482827451444464779348677256703485048073830695739711725651519161211679960331700665981803054642900711831492518671160027324487975998365656979610029244562962559950040249739473858293186902222595735852349000887267749484946201854744933965533567302212622870920764453897736390849573453515483259385553030743171708430954086628422982321107424547953067572249006324257763525314417408997546888854050931818925660840290406047159791766510359408898563380856581995718307928747838785071394036171737774832958219010310835658705534696360731771789538859335898789076179922463030576956463173440444410298892383520525666417281308967517167261531134241235100812850300478647973749945266585637000014061784759442497080291350756854721175681888867093832332872488258918889889152820299681702909453330538184893054677989524487029732279668446263290542176722528971813277396423502897847925136170540920871374073933193027917390511523065992707452391036204072954904961090811771939436731266394240834324350151002665645038583334099910637688022209605289160732689333819571882609941566056533346680716513658475171506220323069599191902036388590351315468459057759920116040177738646887712290477061812790042510102074145703736203948111671900174668940973910516091254357132011159170157935826706854731665029188019206362576870560344320960146056538527049199924662348376130153218546704103180467836239349208574893647107081968485594876635793681655532917240379912258847354338076712279082002538446187702841061324092090744991188051717086579661937950852765798681284156579943123104950488862298058208004720258875521038537643817318003066952043255891623149519052657657405966490569577396114342739825002388905023552734284562843585182399824719038314396403207406361771565556220262759500095710745438850988947659677486261607157519662610077507142943552953423974809571759124586599306458296106899182611975435333082254632039208406124934410599855443423469111693321606543639239413610175033879016011410349040314538232209058116574763410015391349586305751342898171892960605457790254137930452651276008549553515499991651950977433012932308180434490305884237311681017040296746988139572563623490199186622378443369725665885916599708639215680483259127920881009921970277330099529071854863538035145426699278481611595662671581793015381514338630494016924568314304490898337148543112629390422035620974797706402085148278716691471861050680221436967391665918883748887779466602337481499448509677255485184239481796485888266056731438272790337819685108275677896541429178953043884629418309086465110636293662813305582003311209247711975975670732938987435342650992804899545910429161771006055703101094694480990012545584691182835156696054303143391750448673566089653313134489046752888433189281266248555003035199487293463000792641887445763243865557154549842946971021116161694580819926320519104326120613827046571981715164383583868653896184327465113352257395229346908035526858660217927599474355664404134656013684567799830656752199716871436388573106756206332264140971750911909841405969249249238717643071090006985058276180154863916607576115361418634761998180333448048614863301156921380665815736244506729886387711977802608324068080874219758656460175622825694406887872167406922611773214682984330333280441127359923727919979903579551876833174291445422218935507689367546148515210161237142411824941716336535570689868402682864402559450258118511009915289125145841102475163839819216760242355467593650281134688592173689182800950844368824422191402359270717681541527182718465034987056849176613278934814077622393221814141127441465432568671290732092492125440304100043437007841845488064386531017517547060962924402472936769289172595552165470530080348552021256653398648161761736658585370136489571834706890522577381137944390549161856113129250902177289025350643569973154536313718062483176962434291821483052590273507215249179128569790370419004419294731283992416037713902828737714202508122068079042645026406100694601149488273904441241806874950091311381078676237075003942075394809393412819150612509338138766378113869883115997544026164604361520586837388747643893519056368949072646126499729184038569203045905914348465834655547537839725927875794632020492536007660505816720913658199005296097227279276364133089530180763201044540421921761002350494909247925668049148325515760128117609407818321559863723208045808069065092215799539836052041619492411431502393048100597223135190665150451580351706803201590068772822122647205942695707350986194555356429941804557979735335250138744257329357977403905099124380644899388319993864080161731366880050551761254865926979127508703341777633908308502505681574325698081953153669070080275698247340412583517927014243497172252209812816379625632668160406065417921080554194035831407168772111760567863313976923971365672966685902118116467224302978203449260066495085766225030125852720674622871071200453096333661140215259706266514373143261295760573338502578582837410599203481234110080525901794886302947053259386207642450588626997249985557254036219572263160030313569991248637619373729440833834367838015263634074036536592661921085544608861936338486066166220454251483937587200450593875240278462238513983548777446458918608704286089027180468668603530217930323329250430313968422249193543864540533537153054169804247636197366257827461038107860693863425337355005492483506598969601089497037099109245361835835688747119573744041090387144785629056998902911615890008535739932727624997675055482317169135075003724424230650721848313059019424083087610732610668956521178938109667048819969984960931789083812253556740964180432737135595019506631016619435694851043567857346685997408022108182263831800622335867062617850359484384153718521896771842876788583941989787111244580987784232419887967548054233165058098820087061115703427164925770672219807882188607255953388516867719427656702602447059846858969190618582805843948773959605761713341998059639265755656062762785669058510846002288834157470022675670954794244306282008201296403151367759217387121437513428969396721166884921848371299525580737065960141320959314014682342352545811863262983340968137971431788439600363048889816852159219393447143890872798558404540423330604620242943165675452025800229934750751736998186672101849602394595706127903467520562206117122502683964385550448099676165785456283724502861340549451803082476453113749304650239103514167277374894020899364647414996088429555986825286900408664452897744991981192223311658316336594158850613303341201105687771518383775999120915594521393214550368762144699259237139469356528913419977263744825235865744750594803506741775517458493618429545051058103266092027880299805306835127549178013982053000457827139517003590718494278487517778062756873255048296943354762471887695907468918684966750633386418705043427101509056874552283481306616895843908277521186383754541491208700406328508739608525877215348202996109335923478395633416472576212209792572315082325371422848501020153968331181065049012726618694711785118811292245036960460155703745733597812095041809833977359049247706373726731614317599218241960319433282168944264118402908051679792462606826694095180320686187615441877448962935827122064610559639742336522194455987273947911850225910597317154963960954626940249459547520071355454434846301868598045703868252379408990889243926456193492762160021529267051089182723873878387123705239324967546536173685491760651500018657876105895911400869372213904483336516022068631027445169635194106205305038780846891059232599396532511524003600829399998324292590666068796434298656803396601411657044120813970349475445938076837031332703850053950981814966577524634897759975495302573251326316666707254736248452621465491109290928635766175208745106093665293401043807484804399769331126291743673949923750894368057100394397555502098824176939257773730435830575032548774065965057021450246254636328259018912114500260980520434342814280241047941612763487155635615696710961009030290271234234759063501234918943218229955751696833991042872951394736704215255419487192617758310799416502838829706610189979304034852969422021478396543804445546981691391329400853874834918073358430707603994718072756641542872873598172586069894761751472297064402820466316218772047265767991220056664600030865359576197994953485591382967599874420440496377519718496127072159094444543599652319685315122083600733247990876158382932274638662983327401507182377794531387944457046689780843676762855059305624913435609233988840099561685871769615272733374724680709225996845344341326656800440386562017461781505951986071165910502724149681005510163235644552294919963509514393748620736766248890972432866435736497746307270139116668077844043957541126496470972473853120689836762531964082216730178369400860632148209121959678054483680615572064520764461625108016525191121153162377837837612266857660752329662966160496157454776769249097496207171268848284529002894569796005199824731104427032303600643206845446168842130368421104580008857353271539419851675775761558945179969481304680992790737834539683865989514839738062384138760626875902964497735692080613817687148644007596194796193934694400057839175342355828395808515999492431629494384951715026064120822893931863343362775748541683298056616857144528024998478662637285283577505136601781326145467768922951782828969384026111111984539945267218883140336473815059049290503990728547377873784767519350761581493840189550793574390624633172126656814460458321971647511830671703335107744099313721051472010792546085140326664161551955746444883589994024473383225033501088070196845189696111317337758012696076415608809245147066634886272535856914375658908222192775249413870868395697890382849467503262664106408474528746878635468943446501246625524631340716540314482670169320025634120466474636129397594071583852061702900250243877469978696429933204776576865870429156726405582156785879339593220102817898711097627193963661759770963713083799706014235978707484210587246289494357670960559147264967389176868227688152321716712080132961749749649788051090780757535972398401879847311985988651892629537480606763886224904952398843721812740758075864314494447029755399067885359276818985031872850580062354884677045720817654143364698769443587064750743565239341965856899125076597907680889838818733618686696652988198500080266716195289695596194020843005823225097600551252165471632526689395017839873280395133089470418897113253195214049680059044863899073316454100473244773410113251760731722107461819806039099664225775023504088103195621194440587369513574173299047105443810434309993977523373420849270532354401981365084370413144161692626691168103606523485862932501664553961635084414314784998221960527435947083880408572893774655210967558737427745514258509030460804723224257267705600141456788945053369725929111043120422791951838257265978648131014521854070097964848573083885238688248176322033823114560901300930010264591148462423062902422069490610831349659969249205925708900582297017031435997460246805868532640335735599824901976493228762213428623091682761086342925530320829698136951335700487516589329690826176816305858221407948300931245528408763919976045263299065867582901183398286383194008571799435283519752765608192423763298003016941953047653904626023735367150015674208172261371197490895974616200288824957841516552141215873568043278325189851721692510693508210676043799446611469927560448350155693566586540417641633206407301497043127097481078669190510173961325383446643077522396796208424349425198037261899834243496705650341508460620355191120601342637396631152815201705855442372824159162228935728243320198094333659516343735527093458602226723753031636653797821308782329047372676867848420051293752996814366057455101586637767982043630276748100645691592073885217341526498256075771258547058456065294016334366959435502010817040587988174103897593818128144667587624160855132878072160541440186134607330755079454826860414014015171259048865907682660656875957964986922702093181395428678333537873866866556044428886306078254986108324578473554696953630004497321177120036742748807597338274417868121999905322700518138255170036650423267317516924185700944626142422135939189126631175336459393857733388922770441165036818928345923112374009177324381790840204571551400307645956814226633583359559522357423413231745108425243499611436107317942467665489341643748555517009081527583381760853943516851334735593024361519874260221193769386285054488553245414191023270604364815203395784469859695389446586049396033066584611741044586410678885328484122244400052190884161432884769621025000931491750539025829373767803267659056674709157244589925298517945608408813131516523173383019589775288434776114132055245854713942323040929318292694684880670599385519173689557669575090474209367252191859680829582978919340425454464295115076418725513973136303558206103249766284779828972095072902437357825240680148864636735353747207998310625571179549566778715587347733998931538877377205354727976469688694312009906754980486205663103079593929802825639093440868956372369894135151667502149402868566347402952662673420328747075863141534237723793946681295466717009688233338063097502556646966080183116150478592165508344559454447839766522228247477499113909798466897490181024983019188529492421202198228207053865214955210010619755983209688142347075084773341506709201002508419699962646329957346389179864537982037694675026954083541671546217081010282035843851440183149249951504226426438530777221608218330172820530177317297226693248808167712970646048625316214565624135773477739275804019686631994105314705872554726484093261227464520531399412926934701638666099903834034572397698060658622025258847754958394099584342071313807490446206352887893239571539576308689043329073051903125659934675965794378877208543538241121749640246664518444612719356453698704884072245649276459567765070912667051657915820152637313792382825620822972940364818285410856873379441267354593298243805127789205411194244418362306644834688660963192163590520062815478870351532776921452581952249403098144946173256511685974855005995931056252989354075009601435788252276261361521084841804487523082767554084678309378330406961771035348719156188763911131295313281350040657015868276857307560360785447401780789725778000687814762262272900488897178041961853503925239311878986891825759563670145256228593787138706159260682286826069701513678516233408022564852075916739814774001222081906070469198320018462024560886378387175845063987242363339245258318430813779451200256426446425437067029849796736288254830811959557052370039987085330075729585080146102743932212599194500967248104679381456640919260794921500001653610448570064178842991760612472267736239416397709810644745613153917937140013417292427119386076280077279759885118996367841950625555262206741658083818210532173690729321800315011851716965698044981910834167392488841875565791156587589742514458031307669103444055303106783621761747637506134570373842409948123030501662503391788778273199100982536420937573198789326044519998889380921406503032598608359497002649818785935224755874606147656018682723618447748175621337462776992493619841402197440830822565311005219926666179729246266294961069725340477220495640469781684235297898015811993247587597581811346930440828141960432124607933840477115566677243791318431838368751200379789564141769663273423879181722044086642348892191624752617089576804353027384201357088459460810981904733589267529437660106566382877507499094340277950218976359987016423667567494991476825968665857288619435191703313030412852803793400816866714205548282298105811799841044167189111677934028154302362052735382898708198139031760221135545592524414259101523550458694187657296862580530449407448385483124728102857600020311185638733185400671453754880733061025427885649845196009892058390977015095604117326952142253235072780646038073459844235451279909886961579019151865436877102992398252048113343245634718251818353236346984995971951716600239069749253887672588009669026420346178306368697627120067519719947082981596577814893072494694643615634015637904382254543659837573090304733555652552101791269286743258315219249664838983886579135223627409493165415172587871282344086520613007837987853812637968409100568992220994503276780291055979445817662346586537489921944857733752715157557181466703544104409218635975042312172352831589803047617914072912315995631864180914361582313710141443135844353882289514261397564547425868889734944958728634422517363506560561543453366264208129868117670372824477878487037483065028722767753394139015616560257660648027430942451161189583231488032355739383407477549216538821310732269801762280644385232713378859245847006333141390014060775186572536729521512579483585695367334408165257593173205293099810435028246151261112828274404880441158122560891099224299295359419924146196157283082610041604136475098630604227169618121823736914978451096198054779098576580038394102735137427806666896473212454257584057570783405590967641748974562668569952738221123745958612871933378264988298784631613131231712341409509588367869166028294679188497469974654016604165275339293597804223965921567837645411148972102899118811821696643132760570797180454842939010117096495533462939786083312829413280416020947225185959866475757308499338284258770931618787962733970246184432387303562029861023597886360897773656506382822595031792255049710640046200292796754538585531596802497941237552114857012480928086814677401171115648239565271460177176293782763764651599309827567027242427673202832851578688776413508577443502630348325244456776595329270758611360761495485664664542828496698665351956536230057782356515244396318751329367835646066295704509111418657273931800117487181061096235032954495423530115089054195839527839121869166310884818173390786143121905577007173837934058929483270477317240089354419042834351918749135233855857910547381268717776668980854432781193434728949209292126766624106032994897120160173747085256924283506875772121349847642720931289552677592994741240991150294984337101412994314220739778179135703269041211248259126102788252291443147977415617148075186032700035096473626347722652608485335474323118784957007868862087874080405242538518715640320805792147874708902831500698387103124332215287842391457749146256026753379382638804307488465593110856992571761373476218390605305879816696762210383604188641432369731129036550886249931915221153143288889188766984991551557707247704872236218623050372807043679024557582214518151430145621696867235198042757319978188592853906786398150495135738378906023614111538966557911922075979429116110069673675494450441676761362119606920234216406342429142634057633968035125812431208762778611135006640000261294130266382468497402756223690986658972830696660390328018629158624944514198388456531223870927917331795265389817660678386721151505770234685300460630844811163992385551736545270122760899027324351543739593137886465117544241507770016627910846760745384527116487479245119958456653062561283237150020984116126156309179923044289919984587075307378445057654566357919586953804660724182942505997360570785462552824676112420920432065886350219803038075974907753061917491687478533428093122665705796216013946774506033582846749371748380466941715319838522989830302905494029523161755498153470110542759367767797403950260286630341301230691273881422912376395883199941897529538302714344020863120558326753631070655795002414103937376008350527610371681280225611344811530475329407287233028108555101014506460671434583601415781488528458370006085430950862902836938493272538177649074770528500770013479516995523932765673876179719146952403075748975330161124000580922616683351469715521945350094170983382203806298371356548197731891632328653084179157813428865639636883875941954695223189406636585478782387294970407562822970321503436984555199567096913696631173908871562880655322768743409875207753602616781240036379811157534289355602832295492362755313969577089160599679183256355934759438360592409858703637450342870204074369320609444366608791647503777057740842624717881311931408321464794360565263154396879702305689378165142676573908361623302885089750504787780545479289682976291985443158111934916385774569787798201834026354075371734738434733170165410808187546390563666809667101199487161248952431516346514759655991633974737263110537734119559634280696413452601387332103440935183359072983745301299738140737695783830788287170831949433350803621437064474501667181337059742786244138715878840369687023061488593704968024721809253371617788654495958842591490639059332775290743284768281654699478158021184499187430215351206704526278475005437362460268493540153789210228696054547019425019652189920565661929926192157373981722511085810248537003323190320967224156063927822005238546537819266123518876910848314229501831309072708812111063478012521996222017043993240872775096409629090766008127467876283582968349634428537827311854190570102734523055678409995944326087737360612591620114698529132207958162536588777870538310977419073456864710132237591376228331843631124792643412424579445720863607570946256264568047222186861730100385925548153208213477859121874193118343666064471604991912850886752294330977535278853474584658742432137200513150298021968781057935665355562392552945346836839196404881017313263252265265621667325950035654597574317443347703882208469454814779867841136852786295290883427488003222843192672362840434715575599182933099831930521255848550558581334169897611987026307613232852116841147229267784451881351840926741374450596099408679257521350193696725805485902668182722612007336461680327519828207106858600455186340892401529357986971512791113082264025532257828055180614661003692903261021628291708783371225979822586604242420088740349934074405500932907346010294438342824504004055213012779270761932934650450764317909160052164917256446577275132822722519971251424268033626315129592180422602445853328660078312813403562473768188768404101605951564061536909051027087749064264952593314035690951145806088205887329378537051247274413207179366149732367195650003994406328219968746971095743827349420907995942964126429874916420114533638668567192767193975443467707576494309152380958390719755769751200796507726417485905862329968301770924686897201706800031482524878531427776937433197032115072504448820810819642681348969286383361841181433857277441648445785214505914717865624513889139244647240698595726132131851149702256594070993094540421914884592436220143143909304339033122139709727753524549392826689759659349479803654906474759366964031292169279513262298675927913857779503979996873312307492886880395775490479219443232547493954881015699476991631549877137671288959241201077148275381481393622126213066169129702445241139954261382017875127051065040629086996326830183486235065300829075879984156539707783514360601870495654087886181644574889209943963644545908926996807701627574085306226602034983311641514955793882961103560781592170922029944256352670780889860958783485211813129364978566192015060250185146044446340937410799161732911320772473384560900649691041845231763323633506966239124822348223023958793079037546933803959455103174960462503957630654190235108076263887149923568009941343426087952772020208572099603758919980343300762185632289249746832113689787185880163346244324368777224166513207478834341563755736509313350377368416417907419714755323829318037233694907539827583208290629150609468209929482267837126550144329709985578509435734062116099890020131581792518275902008503363328084698883670312976940333766266861886185711978649707809787242715868139681051070872837625615727600382684310358504966709569329013605090578054834165924733521319655953386598698015346326768789685423880546932951294389274814327159091849559698214838335396141828547998029051268588177161581289160261216607793170485081671372242864700588575672435514138998109027276979394055802746505143043292530064212940913300438170354141707605841776034143587170906922886206202417749153677167803436598533393993902768587674094720443179976655212571758676682245216723582972216228937535109162307350962626701306697172854767870324696574070581941443842499744130021186165605241537404355166940196430808883337873388411179556131147272448350535772616919597094940664392394566382910799560628052073900116999961094306598565496600473683573834399745155500768226914403003964910470491290867533333330592580039564839190789350441335208539769515913360100690845301837741507142563958695745862705206654878529473705523114693158535665664771806443538261146523804578656540458674077481579019162886277793449081324507811803997856233836780015185027757417747935307563697091188903516313175665199019584350032090725244522909072641670072807554299521499048292998126098740713514578931168721881575573376678803193913729815879638231754470755363253172743097576966234869777477743431618233685288026087199751988870556267116803713377899699958575016862916531940065079107328154765476514991775232980809830192992198271702889155608638984805036775317993517600419299537087535468236264472488537952989040144405524172178658889854087212785562184778991777421820588348584418975947077680143181091945164166388720890351122906571798212717154151192601809992676065906098787451332550044730471514870452341111300052917353456529448479058135035971188918302893072991364582135393000891437114046005458117177011542977721587319972520868538265831230317109195032097327628542773472378403594926343017191057997305028732718383937408976404226132361906290657071536858743369484587800727885113323844274732320328524061288521570920405732678750736910973965717594747023071229087025374914269560791418917742322192320110446978822780704349110747901801004592418319382859874645220842876413382937557633102877501432318994036929109424242300543273153791239262119766799333083482302120064783941401665454338225710521056380282249267673205068730285886000957478996360018089015195680301052834576994311280940027527618491655339929162753929547029887345526258899163776888418236098823103098698573045912930972894719307207127606669581175664396570427993999527797740743491498157309096770819657539158022394592399923325518403557950462245888078933563088333297449338803236214736535409469328533251961658936341735552688593857939451419573945890467361442816593596828438841432047009722143698352254250898219914619558114385650211666633261405637645009149404316393218448779252168677514065285881201278779091362615802520668902427174289094105684673277000859363848823420794702364399985075225204510429809237546407880031192757677184668376310831625138711609184979692568612670349334920951465672001591866919084373571166546303267511679306046738894385345833358946041393256273039160415610752729723020235779682856592618608767718752912199664109057205781424335325251494303508914164169579042470005593036581618331513212461317622514373629730285042901356995576160815773159246735345149251477741917781386029003884044798272797770917636484127714156278932584503082186474849286154608203228333667796622053230846412086107884353465951910157541522535094999645778520857732284105986004866627840763831733851215161352390096773667292931670669796648548255664662105109591834450637265703202621931522979603351971265041241658914526032671207034176967068391815001607735198485756332875806501607558462310179083683339189608671207484774598305255032978454206515761851752346396772937441683012935901297422739820903360865412250769749040950739925078153422891298616407145922005834693888794253427034790190964664196661182141261888762507196724464832747523171036006939489719413565105508327509939084554889752570786746847838236047121196480372329347379030502078607926924123900976628058317346290658546018744204537624249781580710721644092232600396334674255662530612331704873785095587066972197871714692174240124916963244175009249898779900241628831124920999323600805193296563986988515391335637804556151699792441375854531355906655323951302798399730843224612718638598484958697474063355206463158784220925984908611997048632429920972271353875371855799877059085840551801172879713986935768894980119735634877609608862489696782324782061937966475264246835302085373890601865252006011762056872010651602794142384150126759671495376812379535790131056671634279133536216500876412479505179009783449487891133251303147260912132235789779208631958643384682314153961961084245545965510621363024546886417008303153747375425679695659728146926428314169333620828339057222845259291090246969954708363919857683443153045438059925777742736436977507506457287668749828767268384649299060531598488409033762189747443708788877304333075008650518089536915209736575304978225950586313002038240246562871529140040473053324043901927834450916444593158707772308325135084474589950693510676743575515297910523467785976311856859745841360348710444580836420856853934811729162225166469130609537170986571903436268488053304434336586425713089388897126147308191567929945639741648590184003529847455201822307108706163704803603984734510644096265542502244982940063547225245591342951512232604069306150050692774751999522058967708891940548419280788517019153910551234025818437184676589817318636179852339377551711987354971774732073377878002950170392732251331816493156029306900451040113764794544003970460984222987496421006247101437471035421634250887475198575369880611886319559963696637419453938217559903683612905520834349387863145987059300573796820921107799692387406981418293001852974804322930467468490290779170050560385755353028401917551789884327030665657741828037164785763767636248655995458547006519543762155117755255814669171305383119396085015740690182039001312554561514180746879995442751110457559939962693429331270662092485072101644946591745374491020080219805083395749655614870812026196899764248820992691064705643100536950575278164567269447167353947554872543159252934155418616953586283305982315183061347560088872239827315500508011835220271642976817636188509583944475955031028936644509355990215404628251609104852527524709803452784663062066935358982998098748455404636892513791718392379267838134369904399494411911684755913385170152438097150780158402167100334992832631932855511418764847400961300922186351165435684472029407465714119574307797847726937484894960287943755848853752111509839797167372243390731010709863026003482098894886963269513190942673708970008898793858696459187473263714779763818077498668867514580453563644148575257406625850534723046409534197370486617252576579077308597385212256219841573647825963515678501728082959737145035090293548726721808766049808934963624925753193392990238965282850940838886631989397391992736211048264967047412147866423559617281721055025242685357335208368325814632004529657384220448912155469686816031419171773087782570904802310549256234008741062779457533532488947078345347654755088869924902726177714795963103334519340118995639427348699537955632241633968287983621109205276243580184418104136270345148398576056946741957060203299675383952214411856802370154870793526005160438594859259414086005592988470808508740373388832068167800833437673520510838540668278883822128622281996038684268099748630138157838270416681729989501544675794591231202791392404876612624841249797107458431727458078286060269818608767528675465892166248106879557570385367741636013405886500033286753606119258067524053123995153686128945384547710640648655657308769913027782837602589692041232616721989107355863331302856438517610674869226840319428800078242043391694522836142804976945548421273946527059377285596058114718184222020970308678272801747466746692480038806474378577607106230904040214313354904821491277370245306142228017043590847764559535172063167360790466146319205430000786324333603431989564869969011254661580201617065659656345275222987999952058869637988432186112741567817982554008317069505590191104093607532495343115636200157963737343240018519101349950598490332808359145462815082704588303904599054745393598657169277895350545956821694872323693839349043901226081561790608947756939917459824220714132829875858502996895099336718794892227340475888486040273695526724033559224515275209597773649612766471394063417931929529212196524537415361874054018563143175559289125193547085167675526630762043012548476424150697082429994549678502011453014424195291453211609907975530959496226658478255757154710280623913802142768176947356228040986628315920154570142843491414126954517842474374003008525541355341339578693671422179193628902704119581265128071924484987691509453986840553684734344334736154196015713086296459042794078621989692879448060401945644483031837817402829524946511269201636683210388282104579943840088188949867130211836638132409273787893370611117979574348492322266673229008553883218257797822884439482201642412092720236458785881727472145625324841894344328971094336846775699208161118431931024095914227152277115525895102464060124797558395001438897607899024754651196343949383903316965069450015664167578921201403957139532592727445307781280706095985589073078875923319760807601293206295616066865573443640367573713185942777378158988147643269924520847617978850605059860689787297526777623341598884727148611662590298887101935988642951991629242578283072191342702426521624365120394701426993259796452529420758378567860082415167050179890695246901746146391607124452194724360114716117655844445710923672285200488775184998089649010816125746285132871426870584484115252921672933442173915715580706044981010101975295552493541981436129742931107465784014348757306964127252580180691368712614434454717964185196569158828246091160974538860191885130613185557637063932971323852410899387757582389725010656750036033619830277404705166486194173003380821370352173780146386380543924983246183784704401472688355792214916239011554817990631944932249340372591025124253191361815354032460229746854502003833490482215308753093960556330955543802701103345788193249062337760990817671089144201693562442391279222504496933748504896597863206841372904264898718730322955109151463853688234014252913285991917128864106850588451649435805956210363858970546806563624091694592688890218715543933702700704577595361911415411510536333645233458375290205781070897540022894910054337153263106303649260052311789423117702336222262244585330383464480437693262440880582399221194282517700076095411600017406406661238671296933794307574387044971870186483945526902772384308414735827130495389554987786467243506214291543253072537727892616633213042751556991291184932034725417094210092388452094521571179676868123540149498792518396952390588009163939189275347575698706102257625057769326131724319062840832701142570526563415153228875523763845670199161590624427644815835802596579655266894129371428075378814884673171126033655764660019743545422756827023826193548054757917012815296162241654166265323795908836151129943184276439214108492699850096066458628501131788058314887369679401139512152262803163467564819701332848376264986639318719153251980634730140198863007282809161886465956743763072804101607215926243943744065882148713606117552450597706181430892752533759971737788858263230956657616782708868732488882506953073936019348460929142686350962704894494757009426819039757622949919423797706647929003624633882870906250497763356475715079088491267012379452758351957779107743345919805847555941330958243653907853609571308725997493664587393881794000961518754778126904787044594643987660649355882675737908408811159108516257106936005810648567955678721491878208016657690811538151909812418173637897511037712697553636896591455735294165189957352455661744143696460418472865315726561218347862748861769571725789242501509280851555342203389724530918661118195748491839536903205355234161356754985597946914860942747982731569479740519662231697945340502752805715593468162614047388245246558885571659126248107759481992802363704530031438110502206091853165059847137538205560144986568754293084141722575992031115005910989427321005919700053997697645814865934958164214873703390570407226350279689904836999780089202557131408178548372514165877416807215765174121400968084907633691666021308737173043078988509969492527422639913671647448041979566399493367098757492146375441225237678486039142088014133088809204473935790473093522116448378330490755129374205756652116686169685062033533031478483019555262245525158291654461763368517371583191145806639074972478793439769875675331547744118870276865022415491435409547410875242385259533568275441662564061690424896642573970278360615720059477404838720107735410757987406229539804627021217053736737006679940768696705775523046164728331758194330525733489004372468921718179555083565936766421062210682929589746618504166847650780686402883594706299227438291337883397462763706107311353975153462793155210796259945314196602825277003060315853512492956627816292586764320483577845597999743448551011395313405066063762605176449306980851069885799099947225243260320583714547809725876048468690590341861002351543847777635539386012806178486783592366292183870857128976434016972985662632749672120449439156098489320073768036003638453836832935100072253171813653065734123752852952570143281575704375995331915184709336028925394689906794641787689860252096471837385940273942775728189125572198639854533052109699088349974393766770706076713683250676343645766860748083867136849925188359070447795999942535359525824300137556538394759493697610747348461812564926964977129614217430743867210037726795987383093701813229242785775330321479360084638231989660904899696919181002641446369000484738460254728666306400464173082572307794773938975335581223004230351065818838632419313125890063904594271376356949659168850063898721110506469102134589894022497808628821135085595774912636509338168503988005619398574836456605937785757494493611476810482180847430569743440419193382404486263757994042287785552901910148596336046971966438522584834536484881200830911990145037107164934601155480055734825742433611259787564639064869445122896996636802028134989306676604701015867485883177370508713853194922037237234262535966853214053903702264539766798537034237845425809799824057461854103598493656568020347138963206976269110497823181059122265457510273411693740502644824720282589006773951779938682908294572359828981090041898250045989346144971723362238658708017265605074904869661255483833096436514289760246720190493110412035335892829292353696776816389018012279604988982584468893840388113751592553242033131000363562818380418402960434577054159783267748893758203532535758635352369212181382721042142426115019161785372570355539657329110248868218776617959259399583268809026504823778636652102498618061051240138168046173189658629350951662701095912736906605044529290061918824986506917099475864166633897557715101187108924439373360672172919079314741174640369830639128824478525114087356973270520286052723309800314515129717177596465551284381160158036936990351370295144533256272204184178626762718236223098898188714120710133652653280143959810849449781837790653132185658759313192218441903231147178955916206382323280221634897309263420546530133462371964337282791287639363690902352411576435411514690289806446881047758748474099654413057890934914303688335977528647607971332465046682962888890454661839048898021793962109553077646092214729384302062041935558847762306870444469760383525398561928137790770621621043976924876493980460779262183453045687862259485944448748582959935578342199087644689488237420794117275390078218806834462087727807160127480149754173813201547587328363986089335097646410522719053421386820521633046179501897316204700821378880073541975625884667543311185663328696784412567574613181700103648129569749106530030969697396110893930212348001515930017830279417734610609893764089131092718486674868873344473037093260731401831109953523320671864061036011800077610394793544902909119867823308518819701183271777032911496055705827425269374329443343323829392336049325662441533907133443359650747618208598268780789697463840967452974717496774576144404009949452641565594143427574219736558323110067962582398216848667471658402087523403654995784583006109719389600102738278966776218328179727844870941224788098717514461033674140408783284476013965990613475194985092497860316596081621122568941928453532201380757769758473522389125200166623516797066190520248513821843146892160963200929686878916597352782455622182393543460235699708851218254443150396241815244681391250803753496885559910369654076188188890964596846301986450736935563702107997943102935832560085525875676881100179080187645416075968053297883437177362079357476482967356698601129568275475063160680288698629045844493690320148973444881771588753750903162270124480109376233731601723813551542542572140987506293135402357309891724254153813685011707153500032514958390235408260747577162118310212621005479464276658745443269398908964322891155884541653667146517579213618716387002636588724800221353523677277592917147151272885461991330747983624828956595232042196886737989823196780582846121963502124341431452959510149562700943365172061791909046875311491374689637114316083786590672915267121125416414927698135493925838079253682406740812859554524397220384492791186778506742561980054725212832612551050332507806672465573768856643444414414347648536897791320019751676175207781403193100665115126655754344841089326638360954937035224535862048064920696833035299144108357594052121750506930156171455352609605322295397295663389763862864066726332746363229131704898986821506417819647837636820385450068496242182790347007858619252505090557782646316778477556225806525384186297421789680385992624333395961714355957426804389084655835596500503584285630253811477096958690257468599584433210404826776787880606851320683806982306577652744233881178419830337406422534229753461496772533153727453839254226503881346717860891706975564339164624086798353579154584166795370182155051917711900636224775267891135588810866468887998649698289609032078156112050787890466206380031936152506254785738556932997552578778358161767806309615655163139797563680669694371078908509960746893138776151995880145533047764589207792033496380051232653581934105693117934961671242298106818844484376807680378238440548710525659538485222774467053405234862679238215156277110147755857860452897355584407009051851478544076139033180805130351223887254860430548005909393058475129633347744823420258722460729164998106958154007551093645455089608980615289195781270486490684548428719053663991128272635944504626544477902560996782964741186082016241498757635839541938817996365950362940115625215336669514033194209603143784824753872325247351424427108973611366367639301007628831691691059219040876647045722537946251733528752367711638700236434452057361240887048767589344773602707282368749300781313200149287861504747756596033561413663821545630738689441718737766701696997323123988269075853604133068210417212421352346651855958654178642663372340419076132823055950224744548229452556202433334549026996646104670664243117972286832967261811092181128698357146333060953057581416073878682686786890036031533954091363524784335823391547135892347812103835990212073349853248452166067338974942823268787878195570184189931362080139936441851497294898132114757932435708823226618727955078819232572785801443941046050782273689340537874776959696673281701264956618893635253104913791008498945067775216647020140282537745053209854004637706452846723044698573990247728249335413522999099234430135340449984110928540710630783762045793957959196497487210474002735589135530274834424483268073124067962980635847693451838479822702176054661723598676116960526989510965212568756940228695301549190385219360817830278818576171167289571001125798608060793671227397352823542035727812430015479615982116641878760473611782537720100179926419127534485157661247349791172153177169744491523883840039255912509634959048597624989020976638146017571827318793193335540193722771577528103906342248644026083696599905192392630685641051176588768093888289414743563380289111730572321174958244160963471092383442888075860149744063522112464211534701489857233476649539515356859423236774329901270123065034687218328618116074819147212355565087915435825766281359916996483618884141229276291364180158110769060891561568973610802094600890419123245197930763404459845195078723861188082894537430574948336697266351784645990202355869008975572448131130606283272736147332829097341144629896850469701226435708072653312897504755929702535945213245207212381729065004877013196165109491791468970841030289764036500096470034079587289346542409086439277022434725156261839177467806726134350491421340466690842280907250015126621144585966644624123625477655968590018604545265390625368542833340750758996927886317910228457607630864344855560225017626059678981764126196065458042466154528310516580601856341811483275292374104180767135628758043933831257161524254541644353779651767212908493121219661889229847342516804336711854762505142720380251852361108043526561516281027356412860352767853421736490406980764180292495319369055889578810481987863814860143816604294407864665876343448080624963396898732641716187214756698556001683528379852475865569535166431278358109612952013146620533498503733194011673313501236715463456079304517393040505679607936460882770294333406989384299347969533248597541293816574410069290499340433112221525101093931484493035893213395515658541003169656338879459476594973532654030266128504687290170929607410018490114489710695374119440842583531096018148063063762456829261800237368818760027439038011308505769814200907247619438724171949933636813541334349374065829044475628500593333778058606378853926685548254579459743939326944363694990857210060588846238612109396374007927257018052589229725400461313581401714263000847731348041667850256551287324394492656154252965931489542917886792353102822055460121925857754190621440048071574729877631439217018641883446416293987912133219149755446682239962824994460449621705729555182080688851833007458446599978297178370245968815410790642530019961379163906835781221038530213015080903227820745900827007578236954447463467567235829272525845196329377654263859967947892410328679206334719910718892902677517233190096962386207816128250457160881404896249846112140088112986126826419239472390352716334199237581068266866303871981925655125739186787780836752085748184132449254162737203372311095990407300879889490707142883286928422920979241131390499903888762901893560655064888185241298817742432386552325891357836055795075934608275669012713023490144713143475912600455365787438208226721862532983283835070091254725906873850401723975652493479217399885134703815260234436858631195333086148114233367870320280622425156678899950949084772412170184969854201236382279400417576050663828844985957043140003481731391313138725111494179677230766503048624278780996376531568808464206553534229209670498855616638017157474205268750649535945010253552189411655250792527210385053569789498259355503976444665721065053375481876236701339626665640861186942251248871264435250536480133911710809215540632443237182329156861379822962013209540401031731658542240468365511053172169694465095182749792572869785047574493862746404501772433890662925191712363558895869332660283246258764724717800778113372294049552580267471365648446731633716752669452317777742379261377902196658374894204063492466621268615536640555058583009554585951831921636473462492181962014959344017706218979170821210045675304909397411883517751174393162414589702894127651320711773120631516678220674306939381129496175656815600821142259958563605724246548647275896818453217757698512989912728203766346249823625574599410000081956414097533447326971067215247725206121927304776757783843886758274013416364972727371610802073868405687929652628320568363066059753400846701102555342875088522472587886194642972154107570781535159211291493704240345229822532196822498782269031035784959847668907993945622092046541974377695755988408427458942525630668665842926880775016504212587736401402456384441423030747469730295798036922896196357206859409155712993328888485987908964076635761700331548645210549343151784033703306308986707697245444764447359681382489723052276542797798256528220206427823797150726927784395944628068268859035043676028647319931246512343937415996621618818736912629445165051660910469528288805887773668045842017809149010861193538831503086376073004110290817333037782925450500795831647764033751579500121888800967719830225342504713942117734918282874022389886281655453114354974856321323590784156924839018850336413772752171641251872161684121761820510690952926387064300112396536214008756696569463995532550143904305120402810690340472702765383645231658084070675507597744777053727962282741625754499100538741098889046170100335742059109878851318288668751117364374373197075660382354175049536673258542186723453733983109569933956636315800395671392647854861519872317049047286894642280224559119659644329878116886794783926385749850993588682348469241483247095003569069393365080110010719889479319209819202667653087330930351918616963158181338549009519044262289472041730800074922688644241503066902336087452204877100768866015578953178819344061110453607272625268294607058750429273915182123332646754057220381363110500410146712870930028835753793813415485563986393520686863974768266331255983920105912231531219245803882917528754552562893120418974445117357255733951077593682528020218317394522262644024092970970822366436736880295452810054998094324414784929739109289685219206208317199671984121350520627440040304552225910026756370413073947776635211390214684272985638836795583585331393937556874546945408853105454953388510300343448836528710342467668767506276983574159662445617220608984505611534253101084838492992964101291833981824197556164028317209095390666764005449192494167827174445306369496034695958340131793014426961805494702493772677883569917122216268229068248914178307439397610532007273277277251092556100463767152188964055177685743550367962633335986926298497636097207593064342601128425670788911660509952614099324463353869337601970472775595892780359293856872010407929999923225744884331259320259830435844503616337025810628062582178526247501137963489497642168716699530791761109162574293074415357316989759870943441378552030555397522078059955468641159840490046110072248074018606923035569367847544287624392407705308033320809512816393857969078922777820526511709780365610391648325289984181141531683900167784919875641606113073273293025392353845855908114571828288050425155824275364045705948996817413498535628564573667064187563110772335949954062712490871572922738134275381487722984664964539954486638860135645493631872428832491269332676359819165021377509616131264560831069524491007767947904769161776800323873872997365215111277765355523934253239198073758906312530107893070992834163107264135841710779147307036949464244306534410721752190618181000808213031242699152280582989520931757456315713438577293975076341628891059941134451172059252010569893368555328079698446404651553051897998439120877466190446950756686962869040287844152110917375305223469266883517762668597172005222365414908972542902503105104529696390859528427534674273119250884083545526945857792743298082177014728190171557234493980759229455768217578405520435782431634794754245037830836171667144428463222326745550046097415326713033109628066241692223048863610334762289259489136966944006303892718499992056737509430470775464142144142406414711374118020535293276202566411189944085689839377703933288523131114482671414832804693184779975743396361638705300109678488371329050580588337801631236993315294436044284367786912670347450958062130876291414740010144835995712885595652616113099598549442701321548476680109261302369744491895742341525753816185576300120182687733176022712664791224073343418252845730767173464503176336468854974690869493755603970420969247174767178431621700243606310106277058256683270214759151920838301746313098448448752283711942924983137252528579492037069683875553005046645020993680828398526127934459195471600956814239668994881756162704823448619655633111376408192768902712538390700320709828153100458175417485591602563289998705114033282400641688513077990607513446135283771882714201002121370905270983187192988374524865564394051750353858503516458478251068414367816912928822298349771308490316637919972453345884482386455000422572194876323737268997997258455831844805758780515927111737761963535503522654820116752363018359416889472244589736178914068792035697404874487264939174478545937585181599992023666606827402073158828789699445353270703308699043748745167459550972034751899940427495258876517537379514058921501195731342911227436621585430746505353358256063822470910785393907599650408239818162803349933085246830973153255231608614977915380712404404097298312941491023311000039997909107689970732008184103689428750995117464314729453248230159691455198307764246733671801693113621483626529670324819530095967897168484462941652837910563878561343335520654771310683878696245637541434739463860769709868088247365767605139494593559050863564860996503585729004028520308506268443194602079901083223494418280151402920822648808038021193190725272975409830753230684262999966199467592405605114495502906667521867080624939332733074094402331228280826078293463948267238640637507037158454196991137745832320731755565761072216777591682288127576034583234502899050808031207004596954711374083328659366710543171319615729895068779332177101911235263659688757621157847779640578252325751606983663884494452600635164310148988158756091179527650829983259370761808430512171607860242477191120290553355984696462627565317721805030081767169033131728558515140389804305512746964081460530471873994101995508344942535660894999526849420686553701028997578212780482408875017519786033039874416318043104026721124482987625217988358111222573452245246147837317769775480175000274004852980582026212734433970651084350092564932086024690496266640042332672224082222529809743731446869127007248362302174012836665879152035853152037052018089138295492529360302835691255437032725391787718596133055503346823536383574063347753681287389093436421942481699018411516532272888375302602301779201233791976140952720016478662755527342786563658370697694918830539151655406938400761158449796034356934647289960731739016769129899716348000241070817307012490938287795803317124307456033139596303678675938288295934737260447458735983483850887560214965072436851863584097947358931276449994732977942762040274325804931189551214629860253467876246799657146343210641125469960852318248060701170902277276375672269703396965772045587990793768019674949587578438802970409602369696989566121261336500094908552207343790647118632333927413668907264292218765804992877398848283516326950394863250511089708245020073734369123642696505737575672879894226518248995330059163353475606961672191640234996461086663275623880179424368136414197191073132972283571862790949100050035248957006513966274935083586718494346204272199408654076415043399341052122056230403314030376940802955989392582681755211194557484280657357029553844684485259423770165417856999957212098249406064062253044271329440523628358764581550497558220197231447345246212268840763065825957962890698479250651456287150159845638859606964555589512017102382640348667429025428463472345298875524905247413255451364883597920767668664278427760932132028181938718387547472519936244820391290180320488813065636089655180058725078634865686572347669507579681167988877256236682861033467576370272971565587500046453034192391509135600833755892778041088786485865407725002676151746885795273416990995932397890881129811873563004008886449612225262316919848139790278201127613720161476773873448993938855583085460665084538367848463471371249711859637567122915647352341176652635234236098710170098773401121565915356970271529496511046083463917487488920092592966514757084668212086175825786971368192911808112841882992585692343616982219828089843026408230921480858242042577077984366165093469388271769378228548460767212225811771286792960716793278676255469011944618867942385634101625351514119169642102433455908970782061886796410220922273854880108594868739908116564505080486156095246325842649290806598966411646854154547258750829718473007592217331250302979558759076563783645053505917114608960201442931461099008736791393530845684309632912443389248378849366974164799665446829297654645302795012565023991986912657424636501038476329314554375237563894279821028202083259501193829937542185208556482312724691638279583474824195976110568579896673980061650399632755364169832047347345908304454341475146535074536256033970280520358393892479925553584041908167564167418206095330721110346660421824383576465365940510001099440522292890809287181159982901166549499325752868493497762142862518205058965079097456072989801416396058378245271281980420734273064926390802954446350977819742984732510082352659646468641202038343674110652158350430248904162209629794326062762186360336247754798571741578490154919214743679974042684705853852797249208900031496891477076096890237851154810771944024115138243456282458676480450588244139545506971761605153970011716581135835673838788137257479517200955532841704660012134673548388968439626219720412086856940141424950235805449218455092899116497585044128538128803912521652286510517273132634032738457449780307303194705487819414202451684062327895893071778450558016469243205411423535005723359279015594953531587611814686810754141942542290364846715491311339658011181547754314953894573973545388557974574948481699879465143013420617254374869043404479346692176570912597715627129979988137805038205998605186377590610936494710243115964052875035316773650738953327065903806205361274206325671663517517376853235484970410858412302847996297306311783137467480933947304840122407532279929466100872237735412500047769531123457139794304060221534192077820206549364148545910542014067780270761048159487036657670187401488987013894834113361162769351189849067992105389383787674785767569608780042964685848520010836025765907100389020783561659842295094668980667198364884362585567323626326703796663982853720187550505070633050248430742796240627669300527294847479893580574544842751028555449185428665355365884958252836188157780915401333742493804692257295747241127187213456065459328750131055316484467472578698150507065753423001280262429567055984923201136826696304966772405331362652949296143017357736753932248645691821866766625811678331384109995012569185950189299333855846213331449114034883437815626505103698542331645521112442498347278993085229247151270462716245005872304998862109751921548193581704068332194035037481959479679826003478502056896994808984382105348651425701032997025373420228760607757904409814007356914258105219645357826286689189804523125065438699361418049852222352358010653762978862910285033802959832746311142787091330655217327633971351194998558003932676318877905443763835289317214943633607462598415780397933495895164733253435656585883311531764428149969197933190253791607270374257941932730078420059032000408942989392785959452775166346060307185518503686946870582207324414976349471154298729953651858058848868694458433366809788442127127847796021141346023982639357711604084351295615644346020429113649175263200463594133976237983716741590616624569153498435462563428325625455636974678457190381274032478269162834536248202303629057508573859839901004616444220940073182169237960255588011049926358364129683850410032305384996058490788424598681364443427945784298974769382838980403368347974236893296749248788576223444399544012423839456294028705202751179839035399818300878111364319147379123914522003891535060853165564237582901977023513496839234963554844079046364015612127279877387528867837022597352020655147077913805016756376783943063671104958417708616067238608880712158951675209373290194296849063995486672329858212296435562460634705324224668726135598364031695769613610940249753416002736710104143826522299484762724546875450316886098455040513748047304985161198799749746855558492925178682299482378713645434615745884095320854592905845026030598537435547510775697953942662037718523297112975175296275072832262047915067554564639646511179226030901712488217786497177101379556388291565924739532875932870533595217496362891158916863383839893611660346145686842315213789693164269712040838990414527795421063378261491166784875469025110200621520790999800876492546306946093184485425894239186155278035500582570979984197453816073848485809104965500337963563804956324704708565670476552016482853073773295235194124492285111988110464205642251442371941891184059874825533250127569067444384833399579299973865967553276520794318561094614295319773210624653418264410178410707341137532276127454878545251204977542276351635449266746653107679200132080748427101566908269752583513175965736595941321682098719784555717032608593712440391537773208225276269252283292499051882369305848984249675217940899368270508897318600843303862201765556682207134936751706548343398113212659520688515545220361607068809996243543915120123742178544895308371694366752720146429626989921679946098654328094870161211670930619344313049861121428286775492671335750925340159528375995690970701444752802352873965636716689228275061981297891062814401722639099227622741563391646432227723137958175767636967937584978311459444039942249732932366012244485785562970888279551494729207833374639181711658605758933716330522672214078738555490523619659211902554734564521137354920883964892603663901579204357553374975449403221593691284192000651889780777305805336702965826826168807909635676304679274557194216825127497475467879842156987146655366440605594093108193690262399383059458104952343679424164283162382858092580156353818672903581907298071269250659572925480255439565884920690333589277551458648217828792671446869062208155318556955346640471321809258395399343996841290276644011243553886031899446900108739826535841940737800548824438531739555212045530644022727230572576916457984439984230931400123535491742078756235843849891303908854143643350891934253855711340618706859030658002992261415367517111970650855137099133292903419889890313072488781041474392997310800488713964562021033380500849139305795294191658806770778763700103686993159806155529993149357083485079380287956391300614131821612924811679886682431388913051237063761696620754658159276185861751624682579396028525024425237544487533129068477177753925987477597844567401315460636855765788235113482652783944329021250622800218153273003566798639296542874791195250545618508419535253906403644683545830549964346573081298020240499897374730592280256022288015471507169379706792215333866121388673453684939114873695676497190888790411847575964576601142211903016599053448641630239500884046387322978303506674123228555890291734668848704941221885379082088073724661699504230218008738765382184828387011282136186001998234865092163818921124984137030128569887687606810696630140451681215403705400371322973332373968889538405584497988764058732670894386117030090119498213430737576831921665626375672673726041813965346386260450644373898533795310889535361095139456439195488840356756930746753189246926199344772959034448740483816000734636800842252754596572769347829054879259725177186308202090247332979402925946794015629215348326952355624366113474780966277826701497701178784285129360129379110928250083479890579392274686961781845615892474491991013785746488246590893344887054957476675187959042603220394704224179900000104962240501828359653622630584680665966096754588829754202602392123768609819613996010464916579664989776802752206964549600847983236334023258841035432794459541222396145432977373674607580986090777887010171670709541364644027621381834431980469276707107996555882643032020797865728905790077334662982626429666046456958883104880402019446291391152722531542078028708939192753030166134535932826326652828424170385400054495062374694961619634550649105804840675512245657965698757504203728325841902425874923361875179109273999618778505914230231896246647211511816027776649603971821353947870920636695259265594959111244765821076479653391359463972604640179550403960485351268647701693371857231385402663973527683282696405913501424389781664056654435272505293338395462119228915527226511299175713124095834240001585208637651784705470164987546623563021380043001079256406066576108102293044178186619946598433757820108197800176877293789215867069190819739748677817216371942828574554478649751153640221160725699851115372648329206394727013302785496472045517967310694104483737797003684016539428306264510996254583505117109450863608606660586167202954182049251018131249823383770534938252119704585871114176495519490472795106305572122570031418330809479451171375857758274220914843028727287876095165527117077284864743817049405732431254555354786271668137187247219178598092196243954213141434658316273386700766981364824859857014385331094672615628035943827709063082013524187431772414547274083244176138257418029395548225984906872811033233719419189534003972841821234013612330883863403533273409618166281638394233177767993641812323099353369970635541490130911687977762540187102287879782903627223076592635507000367526446416798995809204969726504859769620410543538268937626461133773142991809193698641110769554958744801115734405498292168452068741518521275904843719765817687561636768346900436194832415601974159033916393419283307199612817648249952653002943321216790489085089012487979189440567424329691159757347894518632804496610308765523516506647135270642743471921089897667435623770048419662866596341841981238654141520776582140450935954176099493583388490003024211010450422341251873090438347295142460636135694575622751220698939687652004871067096292332909482951358831432747267117749362444790162054097395164912441315266872403785176907645223826429633502977737073896414287106977886198404327947432703669540477535453775606906461343860325158694830637246165205660919424826378583483446490381145950815465437862191276454050384374971989590086379105059466823571787821268491427223646049658055241551464758863585955119113715454414169771873161051669413647669200349917336036111160672586863561024851289917567463414101003689474623915850103233840598446086011113767865453879210555146125987158086647532848150991357050259212729409235886408178503420418825238441114282496717834076629615571622640942881040837067664082094947310300264209739258842763096301643946103138020936427632701384548648423946997872367448319227133501861829764640132774447289708787785095137591660932939515467802852403291812396452888430087983413203177877191366981730614655590302886176543368100843138985894289650497979841179570044717250399758551575306887829386520543684991570502025043978029136957219010356535810994306470045436802179399802016806306066042244227586178669966594225499270766576074900889019196809531282819234465603682255990110279738294176968403534198010547004752360979783123632601583496208230654426570965135157606024535256716319870139267994955819544393467774125631957938558302131428621038477918698308069343619828566733722195382723032957060802443117634163439016622837961027438750442979945004340832972566532775007016693871158097513051350011907275063692972802687985081683353855584575182286254943285699986303593409762169648057132831164971505603816051566997888648948340590645435657195315317754540024558207597769889751663989094443140785567737418938825613493311250251847747334493754332959763477048625672534078606014133803646625829900326540509292651172352680737976092936747386685766387582583245802619295098080657700339458455298270245611758427232901466555754597302464731229210082358695145700213944642654560901246515069466967644014344364747315031744238126498389837303762600799733597290613412373959409241340139167832213086204935536315930840756577722817998999942804806442157739982469208916788696205195192301088635331050753484348306241356123646125272802331365850494901257854215551054369111365445966535549344337380590001853878499588209007268514934820482708749170483444984092468211050537111356965459013067587931140061908490653219228059375315459463133314438882242292670299110325729711550389607823102548073661995511282530070132443071884178785473439970732248486558083904423378697233198901974272298901452217925273336936794520154510497325983541206372999804651223063596217466768015056692668904106116107888608729792781549258183161673155751113918263094482271741441623653749952659953029995269518507004425615158874479965874021521103764166575356032049654951048405902632806875726938140436129909200047603158712472588187932582000405077769663177866401950743198447218767539862788959806806539440846084545425659143627568430653772962505819070807990014934876085350099007544978525886353057726287716308067673210638372348309682735530337200537586169370320347618869935308502306665899834548084239155800495525414553451484796473850396935682303740332382576124614038553548420013652040314224981277542302298555297218449553015351161000430118040887049740690757406239947077357240877402775829117287452651576237816139613878776793727281908852658305071329526822687058787151785036738569483379891815557527103197711970880304785905466233030787947296388343973603645172808679696543468856651439136010140099425600370603945738420666581323914633532819369215497091500422147112872980565202849585847345088568466865374400829097250867165108647427590569614687366900210009052078544206898249967401756249656918502864850162838043434131450512737462096129221039702104502990185897289231760559355220605058827314105854809929196337460568796298391024804400060765162282396349200458272060339638059365798850762671162280916555011717886770563870568197200169342261097430334689212460869659021925504940116606741984895026994248941605868174067171139684366548698908763568531795699266926893770012459260646450880423859279128242291604761586978620429881371817661653967667418786918459455029660982211043657801833141043652537937075888676502833366052817195962200254626990231110721386202873950337971751643761477955233196914370617162258424108828223357481496317539643464551095593393035154244052704789363475850855922493526358719800803426547466938883458987236814132112578912838296542763343512508295383566968248879258497776612165139540452429648415771865833174521208309496470625486217210255840144713703750588878747370265231864926833682597971969887775992200182169200745403605795206753568784948453127167602227368844100642260672719910574057174257945070617218161921261727559397974354194691875561207179282148746982730050807320797792392153639779260470381715168253170363942309929450516479751112733097217486749296308610293931064012307446749862390515173543003835959500323708726016099918529749296865558173096019273945188826011922803992661540942665614830064868709479414011533986340150265689928738619936397279222934453426865729055427362927161864214184597826110032013974901690535369545127115798921896995701095207179529114222358324024498463754852784270832473661637265972810562278289661033878004729963559064151732285959912744431388599536471594628786182639753955593839169489633662476332452513831320532130881405160930925080219171850140220266574477788650519769925638391051722592477762898041436135441025565299757864594956189704210282149457342801089722682857475214571059323551147417173793108799602081198127088223541407523256443838935901422238755412718254920987206226768976152109971208060424164183630435475023767662472174438849578814513415391120617654694084443106219385005856650659266195300768306442788782463407279075661607420873686602586546873304305314971103704194924896485705514265092110178740764520562421510672661149036929714274464587353578507355429121810844920930864778331685262001533045959487811425027993703693981159396272354278669472151934339009676633451156772982458436834557072926429257924160180953516142245940729231929471233514871815613981862481784679328842895745181150476618888571243119994165524194471821130533657603016959641431926964492270781054971522588515848065674559453036095153074750838680701384796524064114080136437166055010144957941899106417806085910505492435700773467706294984144886326470687241826665704569231760116984872199109031347128738678692867843099387013444835849531828329137616050676052202412281007981573875191592944810271704443689671201144016598794359652964914142908781976552134307646480217795314955910493066359285182688392115430977300216114909171771412088709350509013993249786807976825098382925475768329952146410096860435672059718973045261558973525407301443192237393260210008507850548335024771896853006429629517508441248965067349151553322637770213622456605526426334328667186499648069762112276536039975331706307647405997078073342074127596984591215672961019953935082035675303009631941427652634349441299293608510383799310618870900738423140883927786497519890469036875084369973197313216599349597146236757862654169499395895235033594572367740423134700277007563250880113122416040381883600207214915186579907865259711019127859267913377267613469523318384036701596477651284367268880914934323636064732643731846346842049803645000653547688815955015419482715946101665349470666884221794423691032977828911478614572605444953359798019303400222194545044251415489330560664904677245740502795636627330788289793926179430666861421430026592667471063206977149466977214902661942071073558914318681250124075189401596025811475831448974114821189063372152562705359049114353968765895747155368167242975544027512723139570800191485503942946535162123674322164707356981097188449115641618498499484401692155884418082162380307245396200020753961429261280671199254853461538891473501976980618571473057831413642738541523756296068675855280872239449714119439745779803544635692387129266208298209413908961238632277427439996815054426620998866119441835303938252487861300133662718929316913513470423780151224721911854910445098690591070042219208873806585274221463019570982027219031043292238491375990661131024970370942359071666625003222018685884342080546188662035117084932093736158432800993429976788697084584186924018131616064808461175766700232738867188533814773231988872019366018599704928538414041937118874305514827738443881215633274681518645055616600884101854228301263025516203895946983296854201624197713993068909220728450122993468715384770637034737817733375237327639306621974486141356748999999363226997823870797477373538486021549762700458370607310755274787111627415941327328595558797547984501603011708549762078313831699945736872468252890759976391486423967913735993001525520977174623200701888186010977241954289419041004259728610762579937459104206548678254566947055508725279133218210633585531731349015061203925893822874462055970526181537838179308886046990221290158439779747327508032134231259593953515454039489705664411479492623967164290477162319708132353765386206531330022753388153162865715641223855145626841953448594968680072840094202988506642529404516437609326712233352252964297879224054238884954446208019926409273892496148967256719306333893775827463692613983420296590210110212424969654639022259844978759834633505138601440205271458009180258700088197987337531415274826562226830809605893189479812438699050134666019018228922621757769297457727428307328121171567170570634518752229878299703660561946566125115244452356684615679048423255985516379884675767520499217786416792352205868069904423323820042988062430041027907643864341476569114509600497525634067968642526489660805050050010593575104393579410126846790974445881701285858226080224859285234966143974546361515214215480767879375731831921066771104385861381431658065886520601430795589057828793080338116906871781932668705361247953556229903123718147850282035305467827476879960795860440380930313344440133953909186581528477193282005449374576997417181598007880366314460170260801895869574180170067392045538081078908624772762343162400655657097445858425876356716750586373049554785986089835374652757366284797259262968369034803664117131341089284494540161937053309200092151179408562422242833712909300132002302925596249321204573480741260385304924667945096365455955341999897731887564687319958579888995449953857817325189836333606040119401633100526890034552851099607067080152346300708557112544218826660678644240191807409260682642609805647261809981765794956853231174974054741661394075579214030706841528159855871377817765971538770026012613964870625291488636577181265281775554713945363557131413794768893690255611978989452402670821409943245716947196343987446684187970730905362874758088404914046352714049280178060020178802497067400399093019761555100360794177673968215484429785312155664637496086339952080010851964463614336375992540842206692695513838093821247314440072580909962673858198782619050532613566931837116104149638139595608565684502479124880634337383590939662837441281213049163970687875287221254474595814485403224240719641642829252829476003586376977947886251235699723887779563353126627181372929683998787389853828749645042847510389927550864448993854670111265397910228345974232950749933327187285059195737240246763135152536538028097395765387322846003714897833412139387695695246470379032536139572589756583363956389147722283704198258796727759786668963728864915332832110571582501729559510335671041026786043624928851702478031993335564758272631743810174934524955908361160944252112160289383258053645832204968597335876203668810661501434033234276483153395878757195749728313506299963231736537283011335830424575702741701416415922084818394772972615959065643702008927521643147900768895274328353023359699692425297309914256540486538169080640563479366846362817507218878729392319793368334478329762386014176110453772779364653379969280262719588259302770196984371273861858207522714917220654881855037277175818247526805476126094156955181713605798527995285020497543948946205202944423924895469506411670059684828561444414394858900505363289828488103237026257946406447133559870277064786776316144646566625449995914688657914726713071233763797101273942661314993720100974885218991556427806550759623747686904770137967937657678647726688433017282633413754283575663974441484636829226702745846821651600108757330383647674141195829796746526845721810462644951550678200932537816063243894844659528374467042622584059474878054144895590307294150435684573745775585128950845164676109038713343125079721326821583915853483552548536108348013543579252104737557054156474397110709374006708613399481611233439026713117673529503917924967889086460602311154019891715996332751129359449237201899418918996116036224204221571598601745237948659390020818902673811216305125451393772485565092342277495433948119723056400542327903152422882118957228471889114047182682594414974639336017174984992018529686001016504550071504536477902881357938350751446747474911614593194681227188608363504470917243229171657100227529871882352911159055186704232437806656530509561570032101855057026689798199242812624647127783353964075539548417715681721773528138553108688811223078754710258776234400501928838102972070630014416066163911769986061751419153743521815159473751651819209160548932597112712445568619958900696319670778438809012285791957092524183482833518044283026119217759318008912488644741063612432170152207437883358457608130831173014112250674842367996690370374971872651164866849244200311222475742391892173636937920205175568188907687562285933181895318210607342373588767684163010770187632249266642948163613541438177442359181542362181292053104502329169916795819058205276707510283548329617138938037440062546889022804635181649060781313887324758474571109552988831281649779353995528256439044670352188876982859992776307187183680904897028453629994787551835065680168734990492555860167004951798337954534446545765040979698395760238963480706934297445411008714272503225786589074376819148598005790147380170055013830001106746027627976670938050371702583485555448383636832537590578113690320597922020951225361645049940686679936906598275212606684653264736538999591038656794526083096570009063488283342494826779469195838901252163992802667428374618592608662468654197055884754387068158458190966785559120551795006080882965072426650860302181432114486905626775906874624570774609604392060101704595336267849922128232553545009087908672193826201361846337777317541614786792166121732223906194423352566881477398032337968351469732998269513441249541594942184228672730662034745839154186216711686878195864834972238948896839272994197266399195389789158832334147951101398400149602086569206144278266067698600196391323959939293222446139792600390353702802694657827788927311519771848312203194284027578585658041888025281102665256842900477623018301184348058439327460089051126810597604709332294580407444412777459325701243250643319697332516788020530715882195289011017122344772943298226085640516494268589692827407528283458682327259372976103836158927618813748295312758339484914692988204427428958725193880000665275665457118656715113328584606867489751580302209934928671661258253427333588979700292125033027421840536161042630837200646035712964465362185601111649936937246778737569484745355775904258183203260155746347768562972245664177433356247365688494327784363221764277131666901778308180881938630811604196454826415662750586075274602113337284272163352628097048878069693768091894355338209104160977405974226343991761747632164605073916435987060112835161327189257124816261351873390917075208871441031027845486961387004586128695219530965403841749912558305944624976127160668520140218377978228672012626750078515855333439319528390243631891150994276224071084202700955396799642661544388052547779761920207523635341775568942937358371756369989398498682020004192094343720765249517284277041479254828845913491035714271386718476987409228501705764875728384914264562220976989010678910884014476194914667760637442691844089589882252557548291416945252412433759381564563294999105668122990268147616869240709563010964959822724065851518115491573541332769907985160489273773091416340127047408647438564562258178450261841849800077796479896082929093015540226578019592549535789705925202248611368875989083582750545587551382048425681728678819430528075605216256126359456063320689941515825672949350508335645124308703591449163540529253930165715498034894989724320223315221683986143095113686584189322257512904657207560268156661293975521821214743428527657607727208192217928937193836815129118902025219263641686839497190886217316309773897990942719966002928118790375591244638917375706208326256640735833218850417783881483978765837557291673234302545681877298267159543508885836082421785641581031474059478300901265219720333157176914939116095018416140440553729492882459241726529184547700087806973385966559497146174188182104576320572424339599790498439805891227571948968909494674412009176962504415954353481029792157650062743142289478668438217375213507867314988500658383626004379552528051452548793105294567447129807812622098257248164827281114620389529552006809332541536389952681152737464398769575913907259928061579779705456244924229416289107773845241113192725671214185785167859547629635710795474787791018272840159098502128637577861863932531515823496390001042083625622423425028242004831494012706919538493467174623665556433328177814467186877359394599995360302762600605891990494149326434264101357598774511190263880023870493089758225488648507725539077814831113186851451264338981833629505518936542837670843297645111710772177450145073233785302322923698002943015516679492017323954629714264548380354994699281551580356423097138486519699293545697450922024446055062256443594346973764961460607203845392993717929158912320681068438899775752636790358970489584025592083677772486870713311596316246599456516566864061500731736703192733128877182000366883400172935700191619516374838431505393216543573195662261337493147469005502250619045733676549617774149042600524733503791441994794615145577879506137122886028439508428868382209278736880536536329818961304489761764988133814567735142293662335240636104114825250012988382284031713648635527803280477622468529181865669862780904124647328049057269080275492487488988614089721367676334881708764762402410507603247967565191558326577886426319980414728240584022016074983646117078815130055676597233014766096623988392679483055223500393090249300966474874233345559579915115123809783071679965176597144033118206655024356097477043572418059130819606911118576458134176598003209546452265210561900454093215236613456965338598046222638597073988334570053914161222617764911120875683759906662037401117626768810295932244533371951873418728299724624923279376215939483983985132163390526047086319493410979067715866937207172689111197213134715173215298058896547568737058039361823013780343284112357935581717266765727216926195278137761413502689809823247967417391196362535825086508789712873794778170238649696484825401943006636771306930852788601010350285223778737506980819630916736421681206334756915737228099669185185242463887933733518132299160963611595645537336516973273212823514504177966271209816864082833415888114429024777105402742480024928264287223954077097299349104080028763782930118664702674879016970414459560266866281386270773224368248864289870672661195125299165755463284171420307773451554676696452477797196900561462672774479119835855806060118942713760872011699418212389297004239713211002895780428415156785090379851703955282467679582972311655909886448403491831887871616224333281372594161519446593825772158622111499716543653844135173934370830534490608817065603457267064695327505562913225591344911380327570134068487583977901015572263991599613563649290308292736657438710352991732451228424948657774837111957541936473452867001271864509948414007113472797773897989283528927623612517899667873043071522253954177581286774099297472795137697112966217213319296065223436922239453249356255543942518968389741652637408733945484644405169343940753674437117574646266476744497451963887902466092730614830207841453647391635338999617817340959869005928811252049241919501829651677915935942808893958040116185903429339912977588253673325925335224076899669618537709709060722123361207668595659420429839783632239075238952918505113190965832071653065429918086735719284861031025248822414677419243805754425992736761701452397371275816408084160286686275430160572144145579006228466608304245110073973484336824851793620430730070206538353076265108773711413656402645345647223226480527481483674118725285090982554131703782549855374681867277730568972311338247912076499031161710118426661985723388521198640815825518623643560741750315308508154084876946877810335102333831365644957449777215042059603803833337894983728087155780902078169100039185141623326903179229953694007593880241103506590744103327595766604807154887062475371389158941113221184409594182328424708925986905299863167624364140400227669195077085764248316020457080758767267709903917675173261456126832021654164028484183486614190653698606579581138381488909004832791051179669809681099312079290738860738783140258696160322023815073883423935767330881679645110146883959891228196841567268880944693439623279958329796879639367792831799472560372866045511870759970627238873482679493818845591153163056291377608612941595015387807163408859915265806432783894868398902009872437886889351827347356444238941797141116923218870519806816690150439949188502115950995194545587146871801780589706249555644784706865942100894270120453211677591913222752005289272955494093154725622831396998624747889493490801980304082252562283486713055735833914078391672931414126712327647043631816232841164442266683197455861857600890540301884355585940556816287030800687340628131294765447056141198401426266432387740824200715573576662984536793149535415805234839240927844601981210878905747024753135668175044089381666246989852179528535444336671092703236409676946903082986708506912032668989575332574880190349700223237780196884458093287624455731641236339569336231894364221559858565452071999296453628948367202105931253854453525285508698775420157933385629218492918319349797426164153671287096313493167148731772013248781254979308388860464004482207384568021263419813597207842210305316054414964060975774664868815430349997515059529235570608307632950483505589391191010083421005997318254809378183800704525538824723612567837342011152171930758294286314993908606416271774248602930505515319889340182217264252071605086404613804477682395143448458048666598496115925787069251407372510101369178809331036177170297684302326256142988679906514354250615308660403304243535027406954155121294770837991334214061655452144871303420557843015003171147261095848609982710652158324250436433019309631285263524088360859309631796738537912998802507376899653248232149657405333630173106703456747570189013093674412789043560527865255353482231595003787121169543482296363840016969934495865700614267349999574010500849295964586083157019666797912386639590869211501682199268401340555635867299771215796072220238567339774694439778419622778467818059751950442684549887840534655215590600169328965743617108828543777285342144083680559985278939594941884915975944279878090886172219839467147797850607442430137424777281172691501180601656365627766578068742315254498666750828050751991013763835247568776379000973716070507794158309069910674121673521674311209985357553494331907939256586348841159757911309675658320501948864893096843681670658292177655623138968160290891565553512009958410265503800266347453063439609571874837572601460017159426750019507063484820183244830388788262692163730054666554841963684083296613835287898106481555798654554977288233590149315815159736913210297133497800783569185512902093507564481582146371751231668240824137757945166091848845737247408337820295093585022162136120871113372608940487112624558631077742469915152264415204771549275439791357994676882515438350057087487408888756256530297788170764973484662736961224370998362168041161968626369131521022145529714655969757812718813920335372922706059027353507921840627914509470492042504659411411173874306810499870009009150260939006887123641829565548007915738657824866060888602665016483989430127531662329519045287656300804170282378570693544088299381178243848860769042873731538966606383323434123191600919194643615368610532984873374861660575130137830656051947335739083152085026960234171486599584718629835905339341484635612964041078438177663349549616316325105061141541390581348822480682044078070790780894137239047011736479573353999699627507668473778690853689358222957101295960422408719763952800976915664354706383803968698997275008355146045823990691842392218820809366056918568870744562547219701435427127813024627422867949225036654369130045742156859157200996524107639222585046584820854153833443175421079353231168951479524819779681582791820214885601628381174143099437894061545801908711373168906926970024911030741823168596850702453099919198329067057082766097061913924725933223916066255764507784353310641081508700825280388487658392731363712619758656951636788016055249793007746015682402299906355660220785978588048689314150256033079366622230103448830475053178414607206307007218246344214000856251762125298512752154217782516580747388686346159680076930838498993555033359273800392008796740440029974623718637584434180093882954878304290426503366434666598657076510595037794043774955042982416629164448519931498295496899985084467574840004926455364015519090201906920999100273455834697057809688987138835018348728952914996632292868124835986363749480951344070153488350123186528803556837246379783465019162925144083410126217209715969925759199332004106807782632541286894504318654573130384060678987985763299347425476637409146662500119832284738724354788123383703389541858604893756807906159205017410640203986285148226451836807668865891093548553473685885945375206500015588439112399141818303544724945159232444253419270300282995737891792296092752574668948268862447626096833529885336027375177596312406180857904409818916630236387830444929474560108880742911221407771402592386649477250054768558375680711809497534942827448984722539176535919988616466287568568816545010782832920533946793509854975297984364003446262108768821060614057082470536502367747704352476132325023951918436653729144882314330734385321247960278871680088749102186513237320828603280777631492307033928945508311867219758186316545857240487248939762475102921392533146969462807095966997018116463222010126315660099737568014209797398170448314631362717709868488621502365345479839625048886767486821230440892337004524481875568116834728251529668205185274551541836128232112585628480899059922589078145512922907419296721411046870833285958707262306699982479898558207069578029572030529502715761968523851813349317202119830680131822145130089684554531566956151254534056792464927565499077147580584135937806892028215388980983662226803700833875535704663394571365574840699166079797383067506574806079132366318315291591853337163404776734853534063977848731020906895963109906851364587846660607272778431461130122255331863722805645421999915435276342334667600515995054305554888358006137755118178845509990802547448377144154694726393928731529935592033796425486012944220068422002274962775569491407156330955342403978829392686827796019442058377102959451829833765096024317690708252737586597743292175216491891563258845630960626331062151796694617149656866981113338152444140810806611982174173632995633843962008315747108460510435162362033631758056100620935172384023940118159432106119796765467015220614569166541316867706711846099686248879627593494263406984006584728797193763663932003825500377128081268107466831382026883771546276729001544452561114123231950416911475777952848951111018632251562873998057580074276570507830763130071364827557194131239060843043640113370245310152884220302929083527684823530829917492298182980722079684500310350863331227001459295675854283789944187111641258978451478436771563342912421750833820737934085495100037446616529824685730746273214827588670194654864850959528453213252676307736359324064512174070866818122848269033339636589659951206507327727193664008403776467071046815142562078385299735355171504222700339405980626476107685111878799702169576137661326095357622042933167973734186665734747564848062851268347506144386159114287068893213166192583279632971239770550582300824732737434402692039968135100449669034084179429854004877750150367684375878208142231349644129357380520917687565901622594804846651391018416335361194626747289951085634067683408557637742855496071822426975069966089433900819062227311601721092558730540643746976050347367059176151146876232722892063840411734706657846216672069399849392740523118609714662121646443024062683731320445298065450425439317989780452440449597330351525821829561542611682691686723528628470732114578560520929947018499431229336847715181002617285813922121192583637435063334464183842120369460885705889723639448973815197977765689241035029797962892531798119032348212013228552983861366699528343663711168747532984064664829625572224728891570129601893877301851694140872658501648024208853980998671175142196119285118973337649409803784206069910573113241992022737952542676690573295021414841673975026982375381243531514407014185255978645826276458161256434845174798256134868575197589664728088569363968014607323656845996185016303263547908172601356431617350399785905208386058085134936116306570044528907058126320174970537280119090071690921539404197710340539898382423242625580862713860074496869666517519159894681482140884928879275933256596673982385892671862806455084688565203773009854195467544120810407788669452317444066923115719937301306477192508491319404437514560275204539862645538965641547900977370887664903507114813257931703550511957529946006448229125838081692671320586733183867079557651603378429740398965915013567738747277124122640246559909758769184964387536822840132108107412255723867393960099294137760784586028705043842031360086570016764862802367188887972818892905767348677453491631879877593781106523962193371852601650220914006127790415577648335737583420103233659497127919734199731459152052004243699127037624835225298949181031527558210430968170430109865897151621768258546639301127871238213092219871995922539596950830354322522712987711221773539096779057062906385165669171519863291338037662223562272909043259448704919321611933648264174732932564373343824521863471056466383092199188474082759406347808530624334815879817774529860861919956647623458166374834158369025424934441241501292267919283778318809099252711868867442349142352961803244508630219789136837547238917476974131090107964288542761655143088856680417346027735200928219744156827112219289375363616340067414040740065784265741777031274641784842274458565633208782080091238399119413572161586250727002962831369719459109721687718507885648951800734631376032048053045197405329049310533464641971315269862739941136363496182398386103959950166738966944100412214085048029767011745706143914733960064013719907359451084656022611265383805997640461087199827502325456967108771815871901276313147585745062619633159157885138138932565320407520319026844954918147052594475695440723579048865665438573287619094350356372238055853800216860742523986393245366364309040447906159095276943980757010335187108237556020147276794747731257854991890912797681827675252995737369527370157347995132352347673608500866771455076539321766181479489447362825226211530573943247363055689269606173870604269428425971888126598687409883689621903716282250336077058210888912365674861538424191574828961936144259479944035503902521894575589103301797222610057808961455888470761424186538422311150567944105906530945776978660033405058703876666352246941877185471849600540210683059087319645014094848623338085642059972986156400418249597949489812599039208584244317223349273848253719958267356472867287549988279154031177869003381958862486858105213886608556466531205421502444121582905482597838713258828791320717606288657911871218975081174738476761065659736550749747695705712888678660784501854711880910522395623977629766219515431325022377046542289147655090487855949842336579896367996348906005686712684828677374177614085825625398284335491239251869416584652579200134718783753660137642660206738364328619436535583223331310168652012539102920450777773231812124090397268411714939499014416796176371723703219391566246587811802917938030925974428031676615464623042726880542432323841942703360347207414928384239781142841794834374070005613792098255687390234168557327543604376490514903226487556891639950265479295076920467249946014699365560386466828101922153172779903698150407769965552433604112892406643581082347140878232320766252938077182765502470691489313883866362447863295370767472212003758705999412290212903480740873046140293222752540518062232372168990234473090748880253784099895527501822722729567117402339204274191213647935649533771329961659343161630582425442467335940047470729708624011735442617588424146880118459700736171869893161410989814408903134186276589581820759458872301296756245629407616693194110009052901646975165059700945416727379716475510743833484367409752143293694037003071037224639462876106677144273368732429129958289443997638418917545210951287974156910644978745353044033937216739492246929574936264203332175401014098939743009236465560533248795364838385258760280573146861876809241477549874097569730584883413994394144671986783096699936256398236557066680306517850017993934534600014081608093127553335444684899164510280376051444621303518728617155261045038514454249563517587426536372374916882897325367978946513179678101100238747125120093172446228325961785001962806053949831338761840731680770140778209040884728313724351165942751139033587567935738183154159226262895453806339803969692692764189079490696476453796985977085707878396470892302828021408767834767096583542866358999841152968142495323972589312346296404624832368852928552480157771229083862358825913749542143872247915430699581418221730528552011833731941219290032897868261773620147644750461829550610151734621746667153305318862960608941228748253644529307326179815314781722866844300287654492408640265849058127093707697481175556064659604933914793641164201980094750587749839085656925320736694674121476532653014327580011359124975918769495162409617696210732685839999996722019255398142711731522310529849922997484232525942460057694277199700779369530714680614070282063971863864357891559496524293431345572509843311819959040367696323399638716266701490214541360179637165301354358981348910841213458438297901630577422046412079740331096936890945944437796001662571028089031894590788354821813585653817224651575830825910914650263558656336874958249735357110077706927991358315825372819262785018818958193254968866499874637700510656039326698264242543513984329361572165537156692886135252722566846108004055591981039831542530589109587419683075823540353683993199748833554055411673661781103509902426556379940796658692648481711254160280620243779581532641931654554160522473912056546884200936441928471788977219563559315413567491640924799938545820850395685426483012922428774481821075017715307689253637872540405226753882763449677775271380292223403977112639604789430437969303317620303000070049156111500888511954647139717977534212173846607370713672014833809184728731125464323889596960808203309396790003683630538406069840349369702064893804924041467339759127342140241224600915087413946466062463577042781647791099998093962882048619707082956004205885661503952828160053284224208866138203100755920996562795098579430443626340915100705028060596793162518438271949878637378351533164527085667803659544757855449191205072056316703354703894737851295216166015912780985226049873570490629803109811569257415160409819343507311302085704333455473506371048440903126549608047332246915466475098788283669320410861500428892773961646091248588490691585788184371786614097854381893058287867603315267148447630843459236841977285961814007431505674368983952370795249288166060622225388479055128724095354233086912071621351897735308936093711435092063832306187198298658558448953006214059580705036672421387527487550759120481170153117552695914053287850324211383623551797837646944960048486999195458197634629140527688426424844345218688280588940065761623437722706987845883480771766067517398924483534689852050354790265508768164533508680458824370434338258063152957841080895758279924557657854701391558097496614615162310165808543056625613777360908909620271769933797897710537571585366496253721880499418520606367520319400811690702130677106893035221812359600670340418975247215491413870070533744495377278909505342162868241614070521950256425505412630550432997626552034521897130190804380158033980243534199351261578518426422216912680801820243661485091436973581004697792448307067021430828588560660844272723696096713694530134018224296869651901151075345783636885748810818053462644659106331877309755082323795516987939574770390506587182980317491811486179270768222887570179207077182181759333415485634308091310317043639510499532558793798432878957386917320744355114857142067045986509178390076467886921658607531846364403343352627663681256911524193147168647447245198466788234612572242203223399032951908414178470782368254561386436858143320316089977940158219187456660886894260411903947430943283838720912282825112508164850745429230876501155430259383646186337040354061656634329658332383547062403711351332946893928904927030744734102149673087809818648818497011518445236423827157392084696551945697238681913967960203813315674047602204950488480163351284718203144097642778440140642434569920453524290239140047381867804022533749704365935806941779526884984898516750173522392616316624473159435337747838479703645151901064903421621245890490301894951622008031495547949600122726728559523049981241297144400276635249561843276380547829743900797196309218943286343184650696705715436279400608722672873976895832090506304091599305276125300904510640723084364755819281585796171070943509897936678837419617902318623880642109437768716472069368994742291525167085331510136333236073208948769188230869996153775232035139709384427499803312693569066496636933909804756073620754549342859110457056771342213639703896952199207810096004491501095642119772116984661696342997810660609124702001279513994389334914732896485970316680071919131755191211888180485765718218582291040784688618621637990663165494797867183872280335168187691712785435776213635851561869233916208171393569778103043871710638813102098879918681896455727568252347499648632945177701247395852014248638949427234059445058301230671708518247881464324852827365934151953021639259782889285238366901837248838099957660717246539764265405507306236556714115258417060018336944571547496463592628432307462049917179653161953800365947579202902776626453451943324521675173809754393880812703369352181421833110819849778177734447917494272823292909525977174652428979873341819337213111703330119182773132195706605329405469714626252485150870047285367533763264857111598174746278450774034507890572565684024217382472150248474867421246743199503349164039693230979320522211907689243941755488824624219459331597246550841463589202951374131774976115131542349163211258366828432529095304300436923525012734873013952586707334099537921312941511566944324971114976288991902331329258324941419118086920651438547421491291843233009896752834279713123217808048368366890956890136572783511231534417180654149466554545601597849640740333247490502181805054614765776719505813588232266265928634387800509870465345410421500431172262916173179457949655044143546904276308803434765011683072279570489543372403182820630947045371839258276036850141653156842595315439326947648528637098905960999499521185983726597360102256983645720424615659963051002058635604122211296582990085465209304903976721135085406845842546719256156781243743840223898646422291769023912469332067375059219186083981441213994292978670456827537938939593799404111019725994836486924336003156478848312087511162776851315923339825976847019066543044422846784637951623775189752848333479758365865722035187780370831806660272604686530887436408013271504393606869392595681124090406249116357176615406340094917733261281858876570663629748018949692068893554320760606273498532920599386607600847002476701730038903445950213251206620980933110941642381371323923509902871648328805352825591213836471257468225264384834618801896614366256774456135805328579176524097816126196084787070143077429160418090040553222210460758496892394301066043188849813596446550447042140234500541779527067765452737370539316143173106318883386384342943376395960383921654393875451144463222954975455780188146720281117722468879281515348557363830033487533206455915322087229695046713396361892594523890991407821895394599995618806508215759134107376408895373525069993830911240038342934725169379103520676028038980988121076546830895233212110161998016413413202030229160551567991692907437315167423235071368913150389002273983803171208218671801430068297724303871806798585275934519828784779214748996586052341540511301226348798305909761892197164527348719424797200034603328643003013471010598199760609144234943946296955967331146366926208879913068214326696604612899853979741648383982837869674096539556305164553779990880623683650676077153896886222766316342541184516306798059772698710441356248559214830615204379684377746109103571435914838678722710054973256582523858570321401880475713552045856575490040134635879556480352443187424134011701924744027031186275124309970633078100392599496588961311288200507742781182411950833234936923962555126911802007781571329776595489080198781504626642274965313549250510358548372872462041779074513118038539769684880296225453471250733152705129938500334812654436542497341140044841582066105874196858735727538149970570474285846373208383683756668206014207539916714410110909664898131533456472663654735419298202168801709408265949518444887537127838628287503534298222453139656580744741012812646004653263838108632853746659597228378207626671859961677299163611894231316264750874832397621809097093212839488853583100040981960606349403192209028220259761949796234073294311919643469635467679085355578827317319742253200411657943612229391366142512666260924837550760151609842985080110348776879778845311039957040960008176582055573221865183464955826872289924616174122521840531510245396686062032684959309401869362309105571176164752263515628922434306663088868064008754207178830141931776237581066267045200491573972420702688855726888179333119627891910918051547490550544791752464752364347934762014306798261800639547293949981912479933664396356465053446304320138050387502124402001563009286740708965227214627971292029801817213970606607300453908119687467134925182558785676316125066522485142319839021487302420659035872677664887442607427004943479657538503282301619935932648981875545588792546861998339863011041044369470023632521831365057801622824773559969748416276859123600848844406294454022782746939954185697563452318370634347025075891436303308101078984776237702846219452101551109679411905967426164045529751088777726036047486087683700035398683031383324054310322185426440028938037647258620822075223664625774108086152639539912876101510274887081684254411830529201833369054383856278282933284943051522047252826717504063394442113936753765149828601064357494656246861271208479478275049281292804349301793264220955496171489719247429760858756642296457462934022000724969643283452999731373528374630114117082149076725475985659471837734279434868622178418855389756177299802191969844810555318609867278464744442681819669258772868045403762722781208001909568695326211838128985865073917682823376432587155103271207409817934302681529722754180108390356548604094891308476822374781609715436300784774970407335694372480206941302675040823975968251680174579076191319709596109749510545018372676561037994986847652898829191464417321531965688734788194024036132689214903063126624752773450998316134673936586000679463945534476291780892336922136570849911938274031091468006409509195997060395218083153562510112392324251661978743306645495964808846025043182362282309284038068315741734209083984149409565654530410874981139835439778756151867067231734386812387458581290249664575772160098322299128200357959425801961234680283915998359824841211907772770616293624187562212652613495987105926252606775912112197250251328495698933078675793917065224151398626223757876021259139266051787038123242635519845881680256539472724231522041368001646461909048067078987582523385560328148743281759761448752133189862410184882286502222193552072129474327967389006677272197756009435205109693035067603502770535911748880962493277015079503970858446772978130901632789454051237216976526064979081543581916800691540332117308004272995763815100906925044827704383246742826088345427431841348920744318747816155864389208830038132046811669808635122835264910977945165568004018969377297932014460743746736379827652532159109961338459389930049612045016098380029000432910879810737294720580151289045747022277003722848094159421418001852911939136598211070378492392337863738966776710972350424930761111363134329536429093090224453694241373821374616591139915017382961651640038360879094633766687923216318932533078097302088825484027067685360845990107786547030854491511908926892247855463733293001517473065770425803706919286119913501848936093638597135378989500123730436440248803422516329162663236500644892142484336075293609610875327405603300841319394474702155752821319625570578919878651777761637534490368347002570200987211931527052490161903041327139612711691071935366487031679494435418212087855055285789004025575033023576382283046039187017205542692828900685331318119809741422269136859653077401100287270046333289868188179555375304761089950557952267973413938457680850329036329943959669802041747450055512158937263180630832444402495360673602095056257318568945636793362698527804315336522431355278659652544758632530799882825820406292637229179724583519402647611261805115818913128741738160816590341730305032769297818404287838606494227648978874079620328793135197501172586733515181286463090853451612713891972561296123586977278034689164052921433244250894906662115513264427147208992074754612651810899457809682024460538589693518967821409883575422646633868166222101814304297921520237301209551817501303129829669184219647180777800067286705190071457873178503067913127243266121720375566971130646925248718667632676741673012545856724163164019775845108736309105874673363341801213898879762010783511410205804055333232689357354856445153753814063264271205091309648332548188523953221979936570310641644829293541145927080298856933209326220356248842504262840585829440672703881719536853142405516703491030718992612506140733077382341126530527981988519121187242619308474078243811118471261839476911933394523279861491627345034653730742623370785844664654323499694397649906205817475815037170400491688041495858142133511249464793302606225376308442949516692815471974031139974962224384400546109211853765109431271604153401502947458316349044833477644340084096326131044199193502898771564560765843170675208074679247347312372568891677095588872645270233859720819663961728281396391333911404710951978564828499173580198941109335613611606869318002422812766970685304532324569577061752270747589827242230802287889499191277869250352694494325420283867989999904873350641508354654456004936694407279915940455914102579599299962632112874770122358594715551662464538014827174704550748968953539822775692936319274324316910042415387869195172995107338905532664378821232740498662679686657215459942141116451971300457931008474001042925909907750092711311731748009778968406962815263698623477690011136562140077794327762047546610109354913125922834303792725663144788290217305114226985093323984595325439753158580265270479049585664233077886394600377078058759740182720437569702514902706186137063429036764600527186267891228888322120296540108644532726322411434104157033662023302105139229567138822120638168067656615716275777538547410937409971290041931183205147964579086833026787082384687196064323652038545332724656892081787958922914592572051588149491772863778591109836428216071843860253888798940650229287108271917257129373877818853281176522875762794821020906654569496752538679217290382830059091502939121138044356177436000390676249589723720753678947579045072083963448329656548050712269858181222442467630028289151964240961743839360432730671291682941391194649791149892270981591423688228575599153710443134342147326165322023141262160544880252836474753903736240468703839898482541684974336586449684084624700093253020116590213716076733253904310551810696492127846122099211956638675353781361198370984598532299985226785455009673032090943616990164847522689267282411356027227221457277597721676165893695018381263524542613045398604713951431386995377275118443950265380653843437647092978429438474050383859799903996917345938856462875783210842483944613040420771181383715006179055625444301241875755079898013051676165128564382303679745266893495504528188198004599302800331093210684892056985933821757597109063310273896995184554956913356549308598071918530437618108340441008248893838199531256502646618413975272595894937142115305517245675780551122382745990870911065462397493157645406281663715932601528727870188272480506145516283896921002217716168513761494070444924488591182047285714342972053120246595867187074097668780122004068777934789225644843526809775282179789397511612244935933134028733181264589326044463669549502754098653733984019500152322170287386686039458235560738795877513850641329007465420206812106115420299937055672349431878363385926255640828655783909058819416896058198522502239508845839343241726195364238816761691033607043235902168061749894500827438907673114020887287461156406305401817466542781710407431510659151007238452974553101639750747635900674796059230369297556163773927007214199996556229379139255608031042561609850571148252425832771399011533322615300404560218444466791615701330740012451044348327102667029561027030818536593115498265352266855652043134160041042433132968411884056326222792038882279616571899138812603136424430202255624872110740338128555915762117250722105705203219704694413675767426342133887267996833788726062148653572967626279429280068199897509993865159463763702854942924307672153010710489152816106525161469726151778428341720310681911226910804700299969916589133809841440060892544401463182686022780151090739316255967290681076695049450300635610581699691021162212109128069526860813446413951675865348904508924594523664256492431142304944715310742405722820425347722150378238870613740951939460413585996430515132608926026624335123120504639512353153352203494832791763879362700405029466963859255976685114430259606737225499642346423133798599523853850269666994888858447900714274851648486614687648872179766789455905074871826034537882492898219432361286988110799090042493268174537044962692776987338183535805497514492955036373324550725483237141755108152286996435880733002834344691145214753420860544408775658426730828121214219314880509783738347940467340029109945003585793041028594960013203360614107186928441025898588621636879522159126043896872678484295206972932897786327399724472584537628533300916249219864214577780515316361932627721823362954458142656877940437168629008355772670001660654304892341401580621948530855194156232192945442048460010438755026007615002711912913491607983958777300090079714664618297908183180982677069755475826143937761710071046346886909697298181785469991720018105558454801062121722092757070768281146154497164167023916171691145924158757479674349863604129598965424586118691838508171177632470016403711611514441982284831046050649190768306431584434191905952827834131488546280731297900750305387085342706012127422682364757245340632962898931422617898406815117437758686217946447760187531356487753224617307066428222761108538686739598171352478605308403078555546795268455886794860865875326748648633932995755811761745372535124837862697230503797567174547184003997435907388097677227097447585693813753416445353454348254487354610271662809876619654489028257352623558184862542723110602421760414869337067234984382658272040218773707113476929087735666534748071291197242822005344175819824409562479225935980899528978284813955369464207241469178441707492616589689709597331996127730050758079056311201247476170895694850835507106178355575202508389017377096561358459104990340289687167013532157955429843671324127169668112867619414566897661190990354667015511305436164125907340705250552759235914097289888958927879706859720490382083178101389667312349533143729528681649961244588872675456096608608849100260741642810551329566505953665221865139544527087735284363197200491646295298681373714980616438924088330878022134868600991248232401480398603849989488326357789149048317403643008300584034311622987427335225436203922157963222858528859774139040490895441032863123914496251462889081336476676821522343917868873344199247044053763585501632933214477424121645449314736253075646628715978282335013046906963843755342441374050561264337270811177873835282702335007901333946016142860597333471414470822639659991788648387415802162576036465328086464652517777062578728210451685930751636158476452466964395167626367240850519445952669173227014015464586052912601409727416781290272348126126965986660279070316446945624937893859623476038561320595028298206087499790616485015152266871814066325415979667152584376417409525400520371674372427450005083872965230112088523368944371006697052701976038480387457369949626718231855295940255264518059574191836859444754889565952318937324478829120958124442151544743094734428259234150268558560961066359969532438968148524141215162667713539089306243827298789535168469916039309447660062183029954493215293156959531315475229148802628256766344869907122875584967985220680823012129577434859008588584667329362548439439960357991007787077206656610758650096394403640851088289270370279010071337594640130207447378520780264048230641740357826856593400318436543008550142054011907077078890724997030370372293886707995447844089108774395134950299152755899534245223781819834485702478846555845086563825069636887295197629748880559039239734459450640619373503212420504360470842661152658970240968410338206148069792923836400080419305693569581722651911267400360331754037546765971084370120706681663619435084491545100643230367626507526967941836990969853195560021966435711809206360760953597116275211615764832315811763666770339860296812953863563335364495598478239673885871906970532477940980264502401029738133895148123182625820082871987497435464421685299354240738232443045726987398469388523780763497006702421986476680724574576434211177603594319077770643695757890245677828824850614707861011412149568994827747876450560871897111295060612302388683995434678667970851073233228848676197421676967100795647580486469839088712380308233672398399620348242454926482813739637548408450779343513549818923336507656100325232344559290090404505649925775795812605315420289945198376614258376787927221116241884221008432947943040021821911584204440724613140182596421794193843462093502040086349068458403047176764832808069396407467315519681624784858014619478212337991501895267986093798366033322457776392329030718121337768644454814174698433615017900236253590163900523605662470028855300515877525119201580071235799643782016307443577862343941902416543569134406869827682123480129636377955053938165934039158614239135895812388160388821823001567979667164591472604505485973330340921530558429052138532118087981218763235354742878194262116267670382657673736667791520854895819870141772503472154077272938624222039889587582536951276620620651052026818916043466275791396607905232043886722588416028988283123369153869384927206898903075643873290628224915841030954751918884653439065767209266364330857734489327485648880874575511348428122412016716138408609305929767416944098290543127635665670728082729091190668798286079933974310642228468113811585178920308926455061974911876753133968594208398784873451146562177388559448953294788702210660324639228989821266701555151162733748027192978382472550491467298696664627922737815368702356341947430322941529595274460053218091986833058882904596308070109628355933029156461563305965336306162918272118776135974577316873419739729018950125838605565551100164397244504163533153619769939458655084677284762262202755464630651109287618948653722255503452019944338600933670098969229333720736668405897458027173067235708858101362842835256668548466407719875196327224672687888507694144215448221142010216224550152170502900034722639150962417135889386904558990899484051536818074737972598855374781011186676357308124597122170609171044969556618250966781657736239136505806548508935182126703619614637131733445188914648255641307084114864850657462470173641574829423681204889653230399335618060961148442918059657918349492435537574606761314122454507243881858206381463260907256564606201683006738682465067357279390429763901726645277548446968404439688617711444252588172533819760776974634708810521838549775078179815404615885080994833933026597272341251535154229723053936894076496547298820633671304556397085041767675632176051985213248274320311736437242954500605140236108387737022396976238676776432890260967004802193443756929578214265236225158721394736686800984679737765649271660491771510815174280140106250744720019910056286090822464144530108015312217556398041726703780342462949552203847886613308173376816118342951165821008478475678597598496597684665041513740344762543155705736514309966183034845100775466687093139313447492622604280450799953360881911115182965275226789464078486930777333722623306005555689937057723777326370412590497688285262038681501191363360300211974016489691669591410614594891917640377262397912934376281641065854463645883540891225584692606130878003131713585321941579258872333649244360350270822277910214379233061322330420817473340827025036803213515485568488450640052092550345258105173585724643606160980582232006588349733590147543008318340034753494266742195389480278349885782606481819701604671160477393015396258274814884282552480351574975324323949753300048549974961002852980232809819373986499117399484609666276697319577288316618162090834337597167681101707969459089416388931984299055469580779216151798309610570925383259757581561298640340755316076906837199290412537732406323808399152933397783175386969105230814672100299900651631618883418224350398271293824518350888351686355193068969934746810448311837768025472764458937956352207218378488636446528300888091696048860074511941650136116830118510045331023649842948075130469157835988442949030966875125082472855989160495507295702588611756731813966019176836496566885942016169070383213176886259072043836378323563279118192068558656261027576665066851291491645516384512215490555577737723892837705216440979733579455303875753731927677787494739900314843357906188375214707180237425947831547908183342941599160645944287908260038543006480670226367700324790923559419909060665288574052988578890112906451602413658467412635170088553426936059889251261217050799918895695842358030647483438501227067261890335840390091654013402906237771104512360942659516985600798735502609870478509742579339627218185609716101168428807315153769243369209898150482427811490597705243473684813716344373986336832440573172397793183606936810519677845739542805943239404943209980696307750623007442866570298379128351294938563963370493645541212600087948379552972015219467410606662522862488350344137411482135835316310757373852361370365556018994183609271683050311494476277939284377971571041489345818938288362015407791077677637853639539663138123755808757759861800024787412137755698145635440575895566343525850680720799793694070388257784164125583346665975312506282730553351677798518401805746625010414727076689107878310386333821231709216595063396791620967678633525210490090276552615232376870815140593087996185217715814514192441883166025443216424608003813378612197317737412154238307231148113069400659852199486972608419921470357690033314608911697676649151019955223876278701810894477867741648768068290021185997209175606091114760857793422455378153914330066021468662908549703493707112686761320676874173707979849516627937655394132957859771758563218133800128388225025486782532829358282552031910089835727310135769116803490069786441350840878630383633945522553550052477320534417917842220434700752576982751744619569983877062904408582799952981893377220655587112586693194201176042299903311458717918828863227622458402400873686973127886910871320473410939661367170507049271711314444635966814397215572327031182746863389645955363725251635231129686993425652413108874679804658781188380920039427013285899345394000031776676223628315033164858551890783757373898695869087153382542751178827270521517612037729432645675746058886265246065204827574991425045638130663091151200914526917617221743106020309443437970930332584780028101744786785126072372627267843195030834481856124808534262177135008628612105354083922825178053925453331062966360731981943107102838022492404495206516913835913430837560457690116072503673623643593018068296678140859675158504622607669026671816723507898096064010774405790616281652763484322007274444780385905023157512816709821552370653177970403370242375180142390989089174403533921194869727132111461540038844637225212732900162036495792479965138624466812534600509309793384975810323213908410697446359336703352163551619339650708037390945793276722923697037583445630478251785884400606552028926147296993543765666556444643653591941190331967265407499132784931776900582161127758793025996290669104424899008665417158462575433111579942411474098001483616547830970948130433546068554685156842777424529941294630800632796512732563326595868153924006105005891624379354743253802522377621295986502444468487013127644427987342112607938308995420373757118750007143952825340915862496267356738284769286990048334866793718466099495195963769330573663272363069520537638618451727688649334923001483108542090532037090035908431030891406503808160150538946302778432402670911509841666914820956907593546289823136298821740563280145985583345282642187903034065772560485159559290100584043552001836783884119121296284088357531628512146520240118056414149756421302420011997665354719702576777718496434153643768300766255006262323734215890526619345618888918597304378049683342399199148907212904025635665887665362285471235622583151608239801668475899631678591572939389891479871491782025314406255284302593364062298238112222763679894892756671693315279467916834725283385055784125057033154802985159962439739818797299669670956233750142347501147253854083589079668831969882939092173154784344463276330420097378270365493016626586012087244693126975143249559778125766394725609148547953415748289795736617547167206248293924205537248360679728548673566702740607555144628889526931217794772023320222150709208720153703717071857070184245416234514776846128390221688671783534897785609203662099468963038977662081148807061474882173572481049621039374794268335340291090123489183024233550921222060434582171185818513717006059179734195977402170658596880171317399575830086544031542597912164051900999569652682419039529891709085140721900521909941571906594546463381624673960111661168210230395185607259587982778150553787273827341565584400622029573006768747315727135213908346472404219233470387610721529809525176379367523994309322145993940123816370808611527080460909077758361983564025058821384093945223363139680143399158298066486350775283768918471531605957904898739890812952562853363108104393211155589214655174983099762462152504725993619919215358814831326995747942165935556221126786038614346426470233010621100832345244762793167507107808978104386667108688575231694363342295205417402792559301709196636456269680559114071854154915343269128931052181561153128327290885911103218410711786270776229260722727316591871458733674389977987737257431962294417968937085932556232123798215924493063435628179138463848388448676367776690055776824848294350220428808630110869167488087487400475121194234825132140622051304401950374267651937561765252648206627894230193531641170189463460209350573200710136587510779365505067857411028791547128438372538576984561108814220833225615577686231669779207515145089969771945177004874399179581504261269776092296952068059056262736221066279656356104014204954816591645974588754884074276218671176638152378705351640181974526241304823246667644603424776471561393085335352011176821374832916097460292054496221759825111243514776430922987890085668497765675255055353661017432161322347511345475380530870994762238457748360422694187615593292337878542057709690376078245525758608717603832741556686018460539627196057888721340366884337042572905187711969509318949235137216397744156090497670527341286824568301995799607952862761090553044464211476252710936071895081388601955130966674891910953828692978731693948681045144956639052971262710603126671935896346327995770823417780902380772320493862576725630487145360491206537607274857576444213000992362927586563345121591066485012485245713578089438161112390844623459467159208348437592339595449207249347214156458292783480047071191267561599668781925892903783934970629851239799642514691742712555262919229687380238683223697676925922528442163995306494494102090164431896873542257190583892573198339406425612183219366098468586225696943206014671739620967358052869856783421127883340421474300719636110404283337085188706064657284115160024081180486708944217504637116335556373800129012338261819319460380926035560198920299710041520142490783752549869639245311933703228542469316951554938660800896619871920649211193183097499153937863344466891464259497780930403650433656053757385316592915931199883866488939209575564419731170270331816087169578510913083986289568526893650688932373913529708860819458114422309905387379065690224365129667516639991798906001993640703501739897367766046114089651345188218744039478938823364942295924350041830619251541773439999232479158082070499100584805365956912139206512418410949979881432293292330545794722320735213495942006107677867733847347850283310553210752888502686839791755807447894392270803217599815792431403937670435544595652041693524795912406752472904585490595556853340083921484845453437961185501816042455120602068771318250014721810607101901653333487108549981094573217176786190105113465022106518925802441413039918649437841764121357061088068736047784117708369928784379336501350119892876412503154411506678491838438505515622715962487428726035365941074648312154881550734047799761058339386397466371116802568146958334425850744833445483913509871528587600283214636354643354769733708109903786037784041790382696424794360776789631106345928648090212650485528742367649044993372164631509937659895647370437367698043917484895206563489714128434932945352820076564164721421875878339282787036352834441250616270750003610626285400491260422891464720574541524413319691121861654520333879999494368009783988218057305654824024352843502222140058730149072005141021326117781602033009938049715016001112340512846588930549732811056134589581673376997641932080295876751194384238592886731871734696130917119702408578788477061304070730912287221561057144516836134570734115629680891163473053438447930303617879852139995219762965890352855159983804030756747446356419025225848935800160852505016436940151633862730188852108310221841627166224584081760207168949608161812436086344027411339656890740518993101787723224258636507974093398562494734157239074245081612033032825750372000096076735144523176132819993635312085715625362179152248306516621241047184345902993915616841741127089663134246195411987967600851946369651052560291936393133719228291610907616743409501106695194481703987221886402245299435895772636016836736483850005418080292350826294015883735213518393150310707471195165714371270049571748384335454840897456588038013439992987465349570815157215061372309868379487609910407893531111744140943473807196912191736641682277672700022330498362794605594262900973790248997121770806931038348851649797997589939994866748366854827087163848987963384048760795275081763025321436270862288998906606488275595829856458845663785857436981691587989548450572333052909396058818063291331458679234538693732754217650638190017388504995429777926125922591697589743198635792275590267895391767353622312195655585188001714011067596530214886285114556927081705623283987138159112863566646868080490425664464036074607135620237805756217047530732421340117728829664492875989823058367949619701295338402596497434646397565925228264386735612297445565862426711784387779544419734941007745386390825850653803280286463771141924407668545499473095286316123327157733087819921775789204222105272513114998959419658081797335637556993365007812353605254853938453246854977341646078683743356520041491191667886898846131017879260675007301633236110831366526029490552415761185295141060562949102286564010190260820648769961583393519565357464026727217871275045227445151149405404203309140159037758578468936332084953910888191180344120022454407653850727400476095346141466074498243814795875742190130473060571199156611776683032010155708047058906791757180054264111226872931248285677781270704229486838902258042487173707082836932713216994578394576906991947889693859010401200520368497125414976646550407354300994269210922830617985673279796671048605908537285999587121455502915938007697034905020821733814167596916427499616944497482791239288514503047299858852400350904991355200108033583576973634675588217483805308424651895157433150198766805519489647316061178511155672318319803766321836320439600509450634386504936054252640669411870384722903526921511237431212843876598363298087976740555517028587924849981125096424287413344444595952620867898940460713485450073880684072470802729351733374287973108754304654012552404816736550845464591375654784270624532027917456049214634340597396881254969150979726413391012210636201650351583182586960519520842606934649186681307754298872890055561727249057272848840356832346545185236355035883133151091920944299051357370585509558661796243531940431378340718514875600369585751153243743921706457403344441907517794706719986214694649259453231608956770903066357244743108265112007467404470870479801832233388778488630263495626426484480271798285876118010576951807075715008771519589726964847055112448244650323535539515165528417715304215133737523938527967764207091408532665765102112042155185444497167290134565317236710660978422734766382141780378675135907045921227786749193499590101073227690534538887965946187129927523610316365216759714653237248166952279734196880046227044898190236772504523242244793269109489400189176085353660387008927596519779016212151215110226144798290810913995438037072522555710577569374797469086680181195841225140149115148139390378054215578432739912656991837612030419046986848342310775071081921525947658548979118698194709072351186783409165625400697099663620354950817470494313999857938663490415620130984958160141885132983648626519409661985676474612868394714139401072110499893291723900329346310255579451137991244165351842227735126501234409652008215190247628049048054702978938528946745245034197931571124886724586397720069953671743223306967691493371696014347569238171191225227259204644342045805087374583883627858587281101961813801168060674402763327281603275010687238119479817921959878199702751767092623116134090862056601454228367663127867002996494342422151930105278504609068778138477318888242592247395665937247170008316462622109235592300217383366563496326437584329052421404452106791274342460967643172828413725277408716096838823170570599773478686569125971860693414762371214744684079430985068472913882728527277105640063711782118483547750551881347336957091904646097302683054813761469407248164265577182225748866690488412713129945397332250564523891848252433694915520621643691225634220941026402453860442107968659024589373894003518569640851773945361955359503682663359511832152301443298010559025668997711483689113798392528236267683533371903229621803180190628645846493848738795254759976149591226849362114515478118461773345539520307269054663571091369944044978315034137622476631791475561711932122121958486046173809152274056131260589586289910151440575790340949675053155513265796484595974180709237586997421510543474237261331063667032864668548999239738490274298829601446047585907341315922327011546318757124248414910772844346983983944490931011821053975349727365859088641361486148431307374674567418488245148466561421414835163223902766863689078097777062693968260535403404948910844929759014683434176280199890908651374002638013275281911294780466925542487913400421814303467736380625956541776340332667425351938497296176636471329515349674147286773802272335863998938419607233519853658910523390341355470183708534788984583751872811410672857262756081422139799704007699230502386423510077643217301193486365581652719531824917162845718940191988921114554674420326177462412634754705950190736567825153718105738536652262534528013801077262157315738154416268428976773828461552418338550213461392962266177800618443826459698290444748483352254205787536060197389715278352564012002725449347988668170119147655118530674832499718302914885728404153454222260588080448910660298312595662662641352868295328769658017676063028071267527227030828784052010375898041464125560416260235668335501419758603376094478842912383888806769105864350028313088130504367504879482722093699274282733892436502688632220257174584225497610407051695838504119390894889960839465865940184990944002374038691042606210503699105286058570886425849573024102432567912976187664294211232379107745352723016522132817515986041216645216198361341577153224106403534174813120708745579676756024539145736945512456444104253072322922459050984375311437790952586642991173826566696901425698142399178048139604619561252722527071966626503936087234319693183820979158211655576405445719532895142354616385925969727585625156933048805276669741486594727212247946769052046578592290412566997085085685680281170916895856235831514517451366450249891498905846728480854062143471838515299563766721684234823655451340076993049954612288459016000542299484106102056370676730734045118836291476993668738669786819540665190747178609902061038382089302630697374348734096208173242789111610345724847679527906879710088296743512387119037725248142441158805985582326443286635717783074925001725617883499576674130681421919875150730112431503426767764477775499611393231913456663318440224023246555294986327107019570067042620559214770000008899731185127651029562687876125010264913168751988503772776434008498597642666387087488780941817639159367023898319030170961920310586379654711763767752765069725360385057969764108334287935462989027842796264501505595490695932804395397696199108633842371394827608842232217395496990540867571567752530284860187890390452663884989414081931072629764030427030812125509025598582461509927233533594787095455249239339977809463295476516759169796801049505421946427224485605286531391265649119124202330494950053297689349972853140207980375412128594779922515112141036428051357777886745298564253245603858580392343444659282733121156927535937896580135151257121032050829968715580943005875862739198114268404901174259462008403080866275489064766373093677914091641466944414455485257103637189182676558422843447575871331331227105600992756222685219080911704790458236189432030970072550492978194869164826382290002961166437874674710913052413257606838509908819441654264464120456204466044365012710706734951418627108624717884602293984132885298370559170895657804100319850533059690607279872823634141737844536159653684426532731320690983093047293805299439104899572604506482082181488703373105181426482385300548876183300059324361375099396851008110889740937047188326081780758298535143415947028125745956281328354800195860585760773853290992113992688297011260741573944010824386776404258110984476343105184987957398508696415711958840614191097509364826913970945589153328687506143562630349630821637516450077272063549273574038750468831845113497450587019961834109679456397111196181859926200924825199920169218542072658180464852183843238781572369890164238424076480793733557362855097522469789285597336820728782084208596829316690757156338390944470599511871717377052346236463621298689497494747527240937095634297739226246421828116460233698664410701784605785865624404402662128531198625649092357138162883869487322157616662090477960164564533347860596794879053924289519413607699959197335044582565306138014783141267476728174474328345799831948111770150276822329530153310585656538111182029827358174843235896322102999430455348209170256737542029309177912990770202903238763458065710697536056825414302818131856491929094701071470675682258836192746695654829828741788514855501930391605874564943753546925728653911602543637332994271980698103372436232802906264434765977943378162569904935728510141738577610850497788788221325469476188616689918410398077471309600782793151390184774591454009920982470860886140836616763040310575187922838419876998005263418436268035915120677545628027152858680718634665320550275335245723738837692325614758826591330279410370880778176848053516288438850227869814292786728882590349743296373673317369589297804457510294479382518810852281999004165167693411754185685280905079383100740203843710640835351694978916056264807875664402125645838041854492299235869789573013334414753472731542350661743554622750534437459331525198147712923797598957920694239308784954734913494573095025258405049000617352828450226245324783440249502890860297159300896231501118159483750892665330484899136785761375743971333405954634768206179232790619768635126689790300672628641478490726776128045085338978051880809398620564826945165878190615872959991437726172951353250976356723268956457013972474480251466268880542768115476777790780946841717364968213273852348826547266551480016727832979640884720924570202716954230862273297014266923510954729824259017536552118510878712859333395034790025516288572597013913391931566892351577563533551411388090492292182011057122175812485157552662663652578553545513284058445268271904561125443888733942371302009491023977351050424745029392900303289575342796217900885617942579155167176763244810754769118893125962329751855034782944906180383239137437591605005507295707412806232459436254574705700699078930590905526977270405001300684925745471518288827264989043723880840861956170850498379043166892668467889807382986049815593592018686123430272457858089251154717596162260843387047159030744064013379919403800381970191383764012852238382603507863063858238724079906199202340347940764393202505420142152088599395023871915267029624739815610635957264981766088988813259656459200435221749802823387151251171456572390493221810961041828736919939436862029445107070865485155218876522316701210290102681742085637083849935460671996919905997457040459673082359427478920256426928738103328764119988039335819791718434622025977180950529817721392521888247409613998422251001157160066432891918501945273047685435285492801965777876026346813735609695392945871321094475297338431522691089249597674610941159770686183507415976109736024962618036662169760119167798772404016732541730330352443078737946679695154317170681691354013476764469476231790332743342288854983463886998834957548802442368856890434183518232548534934196253795494464274367070891036822089720130109354489379348800015738734343304909639537763736654347216666017344319638635689999574875941649945784580105758789287201473244364937054448044027118352881756050881469447479807454728756016577399566838834935957409140142206786511086630316326126053292093400692688739850796444678161631666485887391725789216349487959438419716810912195979729486273403114326955693791045054529162859097042574739186642143723363722909098350310711996289462408037988831979110013210649287457917208833329688792812327633467902254310806057823598224492162425228683718811359447402407248774501642395745720568950400254311410822840801046582694472786312507200121959301544405777261840046462332632878383217608580501300179640491120400138279130062855872039799918439800517064352075846727911067867092962979134528229379572712555055903559576718566600059450852998700994118910982288009405933193255426625875534067167249016921819384817953494965990281899607011419304645259606968589236754696016341023604421750228510590062929504732590122718197009248861315662605172318977358469045450117260759700182127568626688736319163812174838768718875324155883713743560405671725277195648042418622343439094457973500712274366364448844983452462733628884187385394908314708397367565449042622986736612403380063817236501030500830784525734580758008079214102458621414870412219682958585538936012520157211419294653049743885930666906302823111824039973204073859671173206318873697583996159802384610165020852759799439821901924787314023806988377278547629409995426581944863438874120495314280794016060892646454780612300681612776372801468103397654508732807838654191722843261765384366252412338159375308939461043665711727363131483080509285933117253177410353529381245320355626035589323567435804683443409135088290960570698790209367465773839856063260002242295085921254632045011197578468521516064984383442263173000025634597492576363632177390332349868645093795843176757985284311536026990031929448968322842522004902691537559691667419251831143531030623612652770651719217159830587934817256924490842645232115047874134934424326092608167690823798049122545851132825670329474902365400125992932813541677801098331782055782564078138841662549751958014168898528718483206827407688953405177692574129514158987917352137357039784162928905242710438307898672264144645947020375431943869314083817207417633846620677762511343226112741093688728938022110932068444420980648392822652500964059410881699042879813793247466119471185380502949256597827423393697570142251744554050227603956645735106469600136806323012837176938876298470321260143838056836372410751600191979699851441891057844874235419381599655649117721562549702901900178509436246488410596552382519552472641254370917799869747604787086380597806969693816830406701444867936939596032871006511946308706484222754406214782838334003395008047951025091167633899155291763718953403417957760981907877737309443096944597909934539470731467740118313413003617920993859544026731202231886926391966018147826107930775019501658354305979660698062219651292584409378049823730062099787697436931750080397931914968754546550161118009220452828909847396888610518093032583686042217820324928732352531534933181151451707865190845817261641793875175263831665627404236256404960427887450672500882797041683346519884611122734919234029136164609035353109055887760816014039181980146911877108009944147246697452054334095425205084789544919863579076262754866130985669077703053740847256554516874270036219059651822984119172203292699635750935700221548291057068519395525480824612187757383950742793826229448353199931817702304208618384966153497568978957802723317421201846767560400108796651127370666397626179879871754584335791691299770119473877860670458059693438991168587346950203783782312574079393975020767552953613036786563585650397299768397962628934252293484176151944706845099911151622710469852640809851299426303415379018746323084417772213375356854157957639261931729590470380603624835809071904672332998386601709998204009904087896561041952497519554063929710551446145452388969016590902270083315290397778321577653997701315326232648382568240408832465429300232611910660259322847026647399841262509212564121811606225856886618819614883920442857440598781215645506686809773014794737630623087833377608730056486844862180615733399722495683529331235785364173386746616576537501034666838090243973168316730517205139335044518222331305840909143231081017476613571233853920359866264026280581795233172600469537254807148941033335757821387223404933980000507274752233576495933920304479494943265279775963206588108954402985379720458213831483577346335206920671521708365931913311587497561513352346313997724402659400831426802064101233981526197607336077916497098524737302488129417601670821944786879261803202741424973280504783715033212126374550348401859823396161615655233175999416192448632551263113430003255029162173128263702429048853385598617568601353699324235906339777991390119758700806326765841593685419403311023493495422330961358535420334411789032551519885295749538537281093299273649365777813076045202752878406468111207561082935560452654789854704217627558356047630068347663189357791949036254838639733816986058481483125906239673339234881706211688955062213590408914782591660454664673168305324098488817506767976744275678389601882888434080289118880677487916528253288074653473971083026074178579767588335178751899585605283353054367399120578992190292399261913890268259521520200295372049603806386625214002959999774056177674426115281653280310598872731901623213259987857145675713082280594046635523064565128155810434754199027561872622545888045585553656885925688830546432631358911752231398526010382952019793125133907348116159999854671236395063380555958760476150598735818692437265227181255512013368300291151544225284622725361301890488799528188851371092867099487029454590094762109690595143790269026429789382962668437368782088713605662248922678021485823467162476266369056709155608412243216395982522933532198251382543198480425225031233980998093084177262694471073034966683157025485577061850235498386600595474432373124944825442725112972876624735713213774862892616720829085437994496845103352708165871909841506183904985399913175175564930836170259727353727998012757989722983472140630821039820681288843727933636497507910185498926400255807402988013593920892212325290089909568892361805482463488849107524417231276558859355852594654948447248901433902768810220181893003569416240446876849423462640686321427612734307421468538652060667185616862391228797505404224246433789017686409934266812894192612483707153643448251916927954277079817792001939889014708654377640608047964356153740810814805537823088217548288297331635248200940344395495386850379351005046570208176081945676172930719129477955560811393911133685494236376646703932329919509832062325908934682321580881739576976635113115140689410878931196481184987242331385310306829295848889081433525374832261219572491083909417301273750794935298694591603691094939390012347954085151634420522775226646908705499025265998883836311808587937694173356629008322921944157646034989193646216579474613319122658557684383699508370005752482453612442771670527059253371480518846382856804296336982503687365064232948115044566057899947381365067089022322072554779536298836856550355353808263439591715658098750956007889181773046634432239707697002126960254193061481007468833035330443294713273724057502075423793529348152214027832753714548761192845390840883752215279122115316174908562984559503522609877872164938009052432423128541553239415775505140519711664157065520298950639190624327963655162393443975907311449763830017702879946192986182552374966884899466162760783164389817258177045490568400302664102918082106756484336358905963632373451636039369224057438903124119345136261191361781010605479149566245244976692929473525038424573661610201820400478555974404350092200217239825878747520853404908190353816542864810945866252222844216790851563836150523884059529138672695094769328264310146273236447664042931149322030737114860697528847967667254114586294810650171923371058142389883965661633714246146909276581000138846950777788281941553275286161308130237662161351080999889300474623250787362992945063850864742032209660208456572952879346942236083591370354602167021669657753425848954826429564481714097154187499176730006338955472973824745552423869347794044205931348346809315280804921196169677918972096956681545518908059525267605952477954154669305609718612316423251631271430900892800617731989817349053322099935465967812072965040148243364478942192834060612168576090334668565223968795775649283708367270833211307727915729200259978138238433410590276888493964420042362171415455469130153604125272578404731603727346777690640914902448499463169931320133862522143524422679391148397926741147538409718544083454029926509276874437452133779614075847768325392955688061674385564501227315085210485927363824950636215684250189248497129659679384070985938511957379593195233819558826066379599763089303445279359042693802907616241611577024069914170973524407970038571891911692542586964714761745192546255410771044774070399737775726176687010315185864222810076957429082675778780708645855662863238758711151942358518719869452276250026696167157688663145324667114784205436754716419676696242412487669693214044718947639129025805489077255402895250400299585859916364534559480125684595647574742116785779954783960876489587997574554222280456584326935581312991352366719015504453923071418949483916826446268234217122301708006050224563681736852798580034756058050651416313865659824225961355661235883575277260338973846834111117369544434686594226235308693203276170321889174654353306022487225997827637109152825342469290987378547522944656193762823361881811195393742492847321148564870743419591069172165169922571564838958141671283477686855203162684530143949785871944638018262073914886241573882880641017014720616473225860792976274135669193423936565173002702386584045538285333828570970235749707099306052000634820190491197262455023376638405404095054633894614445210975906355860598928529258226138309205257818506265714637468199602281281755910121693827617352649567418780790642551402973767582200631096435730453671019486251129994372791482600964440376641230178705668891998790155732984138609577197504287231121438887274027143812725101703094393114086682669810419690568729054229768532523641360150703657362777205273237796502361466699292835356714840513734235690882533688535628597447274230620023936174499994752366340342250121377166504838272558901760705516702627043181833408290043029119980157136492880460964798198828495051899572310333691923592906919647519758177474639179880180277638915570518183405082223092038136366021222191395969710410291110010502267400337988022662208587238725978727389165515546808910705351698700367200685100162803393172454052091782326119660641005355490501611534825006656589958848726020398305508237009064480741285652566215676642479665455928918253900695562627358195802946125522695976075417595202746855965952860976165836173528654256872198465198643949226866018771646166146006302285083969060404856082781865064006647553990017876170470654323281513529874352066016167242878669389655346566534462490190737782159697923215092474368795616579157131117436634124649592011371063012413311701350650508578994961895041178882720431545794895029659548863551265856578989635246009705300540051141141600900674773871640435408292461324989709453222782744289855163315464279976888073101697169261640977901051954086577955894705605652934498335330946557861759702001667903845183473709180189716897038595966887357686230255005378600814199060961409232382502240821575237731090661284841702676197200992550517460194526918981909347702950310892335511186041282257845872936737415855647025121809612416452032680767318845331299362497733250403183682630224450116407734226511835485121179530079213666846838257700023815727212583758887730236579305571208726157593146909991047949317791228071740608702133462237675645646437142144493622932178961465987370369190876917233188964366870334627184117729654371559496727323741527623968743990129494682005229792433332707104120059573319843227802595532892848792662876835159875711464764751729617332272567377168974142163853752190182544531298203001757490572715106784378221551344906255066542264215289400065880782494660848566213340469646819630967243631101225354982041583110976151821931505448949528991925382089990882722077396981506812268593723799463062696043703110424855805656595453770256452367805780133261258113821883483868219022962260179128048341715755385551697549142703252260160114234112225407034265321528680262997448620885113325350495225835146234938654470380728264428441424384050860726254197566374972874774411995340695740131791631137047772668408771362651566103462260420571587105444853150378999480227463844104555395421379675420862769713661901285168795071053430992435855462386294029060302238437028913252765355200412868838807769212306453178786483642387616196322730180099131105161675535294910400772188931234454299185990565537559166657719741753038738463325486782971124901432561138971240655280342701051792492418949113599497462943600272041246733605679700206199029057076570600280688781121440193653242035505380717517757425767908150079869746945486590443740698981942721881503015522978721053872355978464496483652031597321983349820080171189031653815237679746249762456723596143276005471296844865627256524381202046253290823154769047546185680118634547848675284078204682332702899922794364123078750294517394079706611114073109882824534018544254726791519912384404889616103830407933632699755820289999726911681897611672008022973979020835348177151762629250180445984572721675686438481961988284913770513841620874779891467240640384697298584250232295986827318185276666131226978213127817037523749059167092936218744216312198489259863531571521865615258081852048139334264501462254200641112300310411107678956904056024659123735381524568794694716337424310323617095744416000115828868146287899773301286965656722682880917588324708387619985669513407507456576854769949733902776005507760826751928887632630205696587011304988863198527399807030380213948617474554916145002611712191681985430299589827082924890246125498274550085081124695052684927491764442452272483269752491453989651314361435701778616037275787573351986296019186894176830369472136681599578554861494398029565631234572338072493490729957172139658758877955062056606427312029403511143919588356450846848198167531759128347996281953708958192926518460327491821388881740043038493641383665304908794591014730440804296835121996608641566849749751754746417878052162636626532763736552245982080505941319654988662185822107584886522560890410445160444843083226893695126456471187903895748015565678273921727426348724032909170388134571839076044861083989012745473078910985651667221142907876496361183593065939781968697264239588148160595392506449107060953658839258088605280994581976187215983351037894320790642390069674532166917998242018742895432346401323206815685939989889124283145642057142035942260957065025449863885205158295207982235330684190449430805010511396426282568547332997239612356370974642169652128254639056400135503847827103046746662160159777725272897172261074831351177901735511451391762225779734910999845257446592719189752370960918502587916114191998754175012040915236263252910537697562689241672058911242638787510387376003321549330252213622357297758347722148643608097169653171555926480336272666767383580021343036377291775223165294176832477081707328509046134641455064922969487260359881747427530652790107438559966262111902483047016564482389062807183691302348484185524659328902847410646295340758902803857797589883424248503840111422588810909773345126672201751222254157512293539099504764151266045839909838706165824641320907384193115897801691190231511154053086555318304918468478412850980713084974187557284457332996488405904393839460049337393188882570607184477539407900077574811163374784570895187440935711127498738770817998013674100817324999739051567276258880195013100805816669344798240108657053526916529467808843849380249180538608337738433541965431453854815818068963147943761571035471618545500022556445916941162743769907746488287194459866840808169764155178622807567911230181233241237453074576076713602571260968458158491947183936321847602953307456975426588639534886840015922992753386839759790260235396915508939955934976123750293670627462277026700074671271940194233819208209004647477163007773029713492014188929608981456535601808515062250595768405468397079464629581130297462368777239112862429761387040276783071291925678616485056001250707299869770265533809733930398716536848070745576745657552985669211495440834652618953288382416181337753688787717391569309796899087575493201108618354521568461967684116255714182069796014976563861436653166756244945789424342669512838944717176527476632274927741383664391069392782423232885996582780548021817541321428413085688442474706994909218684781621243160569290139897477545600021863524038044693172112502062445191874245596447130090966264496290431976591640709568734385249422870709570919156898976661889565326779478123418570851837154136981408070408303570527131851619783528317013048698690716121732007909766112985066220306042099875373700437834647714968471488051882597936154410338717058048648294719374075463721873933927536620633034328462786479963274813603077529179097165609584100524878493167048477838791090650201284008536030544352594937706237953764522399542583586654206141243190455857208982050359717404506741044504142646536306692256443610568832178467163507140913565090371482989097715101921687633290929697152922707260423208024155147244754971522863109226037460183177236608935545382622357016751929394644292353375552593777095850634886444308611428250499506602017510855246626444319004693949072562389194055904131310719200089265948028559250449850380431083715983564290923790470402846008143323124149845552360299982901997033326087417849983914026021791617691951412883411392430425483844386543531724302583525001026013342155524065578651720619555752972461190255064558247589366076767715564017181743427521007902738440241379976955869876487902259456063357321470192406160444821042179009246030590528529116529268348341704759982784777658724715440517207589933048007418065942793323531470782252749303519113350226394880282319038211659279491147895705573857147507557557328325660281304753450789379009644890561088089798689328810376459747557975048864070149863371339983821247014787086576543260335799621132920328000565255103403964858873975671207497073934043663840274297546956358654572918184060092727380295190650425765752962896589123685009274957791348344405898644145051392434062623152744504638144932805885847052171927508020574304201240359946921152878490750192814794138604284815733653057070533536289727233235088203720172821263544008293282258668061523519242407151473981806946754244293443884482416374940558656404500070843020446315571463496301159093291142615521929257166251817545211173725954720856763088801644581111065990360557052930799772956400629354153729758493607168025313228618620638524404709200417475266474897649447359679149062339044946525166752423040483875625247609740001211096858768775928382899169871724551511366179768042856825329792562713221705035523145604451905122389931211914341471239818081379228853742862251623470957433909437660416809862244298636604617972759333014717893930929744933117184768270782298520380490251370976796008918613890911903407575516270183812787665449441591005289143398813154878552451002631117937675828727330275312270922909684150749052454789439092759881737445487135921683402173584804776230303478731119662658967611662265561089603075617335239468985423739223754801369942421405755906999128222665546071711613687946623150404909682828512720544950754536903777285331482598406805391979559798448678797992226306854614097980973348081570747831334407637933017197390892588806065749163088657153287685096260815467555235571417591847108057484234090593715664373763286362308818775931536553743820255379397968375742716107962791805123201514294827677427349925498563052948312815617673823321258694628856015533099301729470469576840866158280083056800746560206642020654575063272103868373836945238509355595332795851320492899085870654821987906907154885908695895746476604149038961923775700722906700284402031664021220147344043056887267743237850250687052185675489502140976291412261409134797118991910716874098933389897379406301544623823052913395819456949056642959623033680213840692488031738744843314515449619216133861262565887292935185399550074551169754947595166318080341378451289591714240496539032716035906191502568305795497013517787030262100327886619364466419196294053543912316817085453324085344118935183542062080728458501420694740798919027810963270602722507253052920693656760506336812163142185629023504536745024940383646216186857000850666459167377517303327320702311714589413210655234978016714823770624164972568576054304648256852656044650103454741004309160358843718706249004310180401045164392405683079898924096003120826848747468862823443811882815098879427481344014104147582271964715087840955220969056539594224871555729052420601476787115856469375230840343948325762410002893645869677009300389656666183110992846594162571871164352140129540275460884711260370524567876889667625309666829285447535802796114387535165580992054669405939424844207312104760268242082707716746114237336630484654044261124182676492480206766280743875661016434823635215656020388307666489132117827953983568058550077233161901539937043646457586123182573100333815399638614551593880989775707941499675189306257107450665209476862308137780450736525021357526929653590864763141665750470295389011467377860524622149880609970456076592536088793090334878017267224191378059083650353880401650578710079571728676226886180931465329343143616392956515598078107651128285950694941216369777561814051751883862667488873778046983285432101941104659608390477095441898254611014982966570031610147910314503184838529578151465518363244656355242264131259731838125047194133696186718731973791800045890584521636930695915300507978742913161873443295987683243384540234744896526249999461514344448681478990308661670827051864667801504615846552808783172633975936548203598059887045623956312373323560597343057589462465525088588272276318811218670300778524264022085989706251884816277026906109049007439604322287892422334309748221639979105373936549760233598825610094057178013955994999312698811741250760208246071456818993656869419133166006702429015529107800510773094642679154818131813895645745552517048215497255748410707886526613574576609009263092113467101147403988352642049635561974243486069263729475445135930255918015646610014260957174495588405068272340078426956838160372857549956306864971874038418122841605928011114322718029481878682307109255984932999615958170602780287111221438995797492611199967548498656991417905385096793104572822720343814750412187684525353762750669090413910786565102593843965124393371404539613159679728295886472175626983558811032352489726181719335892085985066090341084188780954442702235215374171275561706558956945911244901077489814273688563513713382422246558533299122903990706319755866310063203105415979970402934218420928766489938671525912337013319598559001952263334070796852474454378475069437845604689602262640462608024461101981542825955950672511836423069264687711715727318397894947171629059191457519638528069455166824680902191117548750110591278741039322205860598102040419594324228524074673815082466292596915039081863220262008033223196066335804841134901104105186356974137606242350625212986785556048010927721077824680795012432100072042061027657546908436156002330955125222792845775232605650243220549642279476809592840022541962817909211462019339594898221666789610119330192725313099110524171852847864272913407863020941692366487495544954715352811650943624739018788022745185130110945029487441333881552981439189003253260038187432502845465285819698940311378021481695202071512774238320876954801795243901571326490939536517273108331118072527336991659070316531021077591618037795835165191653038366292241807401858528900475856188291870853370270677029915290674273194885291208132181077571072753690544863990714349295066259096219014746009053269893083275206448795610770892302473380453733424192790806421826725307691616669254252156640058561731916022717005835235932521042940062735996115971865917691976835326279653148412949763807546919279011279055733943585937847240260231597720472472281585471617099776181658037231622747288387233664949223585275678948976296966887528819565348362210693062570794012884341546924786634542269412453806817861242230426572885971958521177630751494741688546422415330747827090994574338747412710467081218829334648924024029456969815470775930986913810873083254841086059715677679313172578326130151244386349344346109941980035821968328159233920377415615384240869695786643912894384019341752656284080630664462618436793329779362951217289358425845104266314016445414884160188200474972382853940329333197282027556339599178031650649649826540091751329259755918724659068877767228146049322699717511422227382532560904491110155549351213712931966789615343743852937889847370008760896642592870014183746511159762449910257103487212034290417227717116646886925697736866198437606401429676186857822916411907440081778656569257930024226793341278773833990334997426780145170737655213269316081441663970781011479875436038208034055785753751772307840137792193298788428733112947507456607884093566681221428746089011168732663237806955678990404868675711962603273654550506417046191808131859113818129409857312849759895758710493360901118133285706429508347126380311499895146950735060504986877986419744716268538556394627301987427630157227001011811324665237559870706937382511033945956988285528903056109101856351382788027379168021388171631873803776393579921695591269174595438286204150618057261986146528779931589792703374435823909956655921058447742266360666286092622921452215364041027768607948355506148536008533310003045286928439369937065489042107167361711773973054389220361378090685797546762609380720823616648646348470464911670397324395751774170392547040951600906609824798793720044467300440050317884683216700535965332085066962584217916870924672960859748325430512282242040155747072566662919830483607460238542489679049065082103624163750997858665312986000239401375211413118906047160308543621261906423667543229887403501912500252923086819531984681750804564981054258851493925059291985099717962806468677561392567696553007017141588526765770512703563980818036740438062908069949635917706547654191810179519311358892676465857736549418058250180933990781455422276657241099093168379360956130545157135960078374795771925325000920318241417673408319116592220145807656636744725407330746988205131490839277297377670564356454674822942251793642642572595581026361161544598882977951122348902706036322170486474269763815073738862309996053270843477455992299041615307836337902544069393755422424763597784166140210401090186091048713014261695559068402185382064747925737426877635825133899862121418480090467217295505166109074533756397887136536408137074059889697883409408947785609639476815310149886554728481943725670122434287282879694840933218715879976503703089445816197890722160037347118587251041438050165104247144826355033245977079854445998589935366785724880950156887297051523549265867208045939663629315890179390152517095943813571989932019518115256459460352583679887790975511236581493963395087432101850762095374646792034096870983653668347306321912050532187533699179801767872757242028843540009207658358948216206006162684755310053315610902266045553510263946054504068647605594771696943564069647723534126381324879056604207857212565835989815204380937827932373149660982661542137745106695611689878081024487742344530554484579917589171027658583040897900853063274441495169194788586047389087118608937516201358011162635067734747880972112816672182442966695249170823739984635107935376126525408467397097445022839561828122143854710391577876445933510049196465498775242620317155050411945142078163327479421830005895172148307934439213132804765201875332145553074068491668716960639314696725886594918112656724676956337102956291197466656763856611009469455600024474073424900065024128475575561386944667245525104686209789271790201130424631879896331166068875681182333029703488791973638477559222093145237447733874651807665826963243325911291762352367356107940026650845648998851338375268163051576375343425984747677451814779698389958330246940634284317646302766567684057927658259233459182382365508218989979952826684611903998870265287642136943978925267684187946984441181584574119549427233006498111792012792219309498867632988953257435509432383842391534816907581864003720652466378166009719860469484731781078530646898675266691285137179900854403926350043027150838117750248402247436825533632952516539887402482263954878930697360693761663329510055922116380268641651935885267626774099939452638198471122620732851032313286817194275674276113387647575204675796625533226853328147362480298720621680372746920081698768024227844281061161590844633107338676315090333789700478882519306783476168515897923264192811716769675356898948046771260635983780031524915963616494798112217105155884958264348446224582983591867879422202757071746259935161839196148724054528214670279828702662943258869510630853976987725588539981718895958694999123565237917037898150779741703457541691901426874629743246042083425763612660807861215313837077530126468760589040800396203153967320893595869485423532251751299951518226882269956920676071611840311160477045626148506057467891058189521644498202789460145755691486473839614461586211187742620853597906597643975667288009436442197770650731707380981100139611546479264920246915409912636631051894440118892480101804679239106595925779100839738151550744001996993200513544716228883228391439036306063191219890674616423430193529887986500626332879019624570195272505831640602072641996559733119670802301545319843439988988428450118039156957695777647576138963268480772036681586855670977184692747129046955415649193040613774479309367031631267828352426266637140679118830686512235403226491261875461873260225804130100471190876981893100731702263084666461162780124649671334623384193442283336838027360938798660637008970443476453832917074263732348922497845007047708352182903622949309892064666947785988705605625447003092087790251945894191377428347762911422286047049342022056573030858801986062317463804231760637016648007794989265395887601118436626893243809807061887921050158124730551787012606704766666127599442524081613666900853310458950333265584411997383629215894890708058613479582225283169966351986955476289468236819978602689459369073722192761671918906975710471775501097975180708250015879423602961530087448036274426151422337954428967293446667400473891146101154101280875565288126185758580408415791778910124400923960147185051918266744674849208364150189258250321621902671647993202358438851864624306923125999679848681605028567960780893843696339895742471915011557256795171423204158389509004294881390322234868572607586519397986591291454690715906517563892931150171727887796087691108285306717349201996762873744530836164732563844678019402354750845679501860964942630308139519228813575452344194703062670098071243868160192291186008243570486025077698244458043190038137327584380552447177618222061885536490112188631312338372424524992950859480626849032916180075346413237253404051006432586875333533652024141949838646584916000432159815237561549591158448407561460009717466379616945831724296694917608981610898699532638830784742694799188297091996253171919750464772862630910459119481419535194613578336425193072715626825837194726650793350756506189489159434748692811227972824950462243062848396552917304252209992089588285094500133813895210669863466777266660993068909435918883706288492957388344374488134383540965078757005040890084415363772378829196427423513413644398553103713408639715182639978599646126508128599284205768691593093177458075802858623271297053124397732508724586664416952847141980406024112662658586067756013498062826242031503359286679662625803864966330929047442281083303601289484470705444903286761672267373360177730691183910064439460370848671333438875317998119738808009993495983074803238425277037076422782402290923906563325069582361340572491935124168045489826472443778910923887979135087789965324773840899898108693485726363605054964636176830428366023431412418068480054401365118097478102234317327747950624572090576985147498194393031971218368848863529260640483989924148859803150793998979493351486574815317776940941583203919817311893478100861829394899633510911158961403093666159769937438131541295489881509930041200211032102083165984342431970445378060496094825172188609740904381251114999354984106975490211033523008278149066608455705261997180105371366183808499238003392521205052636617434013242890407025993660039188432514731071131261812956497731946240538858435416694619950390350792343344533176036350881860851520218137642970837843155600348517463430939892852045208336258973939378271728303396239273294423108965907014848656793555643439734484040030333409644427726534727735686902815833361923246570216890069122132978767950690369943530100873333562819458862882498719006194156889569644743206935967457763575734081209013017647875500646808960118074994372320179398981988802663832182026997950499175727445533353849519043131032264295518332898003705909470546478377977785864837418805877546053041476317491233486258569117400738597603427640253749588775464062829982747795979288174921237867779163234031108031501248535412837601631148882239183656218553615044520483838459319683677169812967072936860109000610808982148401833391964707595159615977229545246409803269567638794536469134094596705237152639577792437267770267991192604921921259546447457617977836022877012231916271233428107321531673383404597280977099592603479411103456427682826305746824957102891215583237121108798400303688791480035540678964031162046635740046781197728006298588007053727825979675909519413822141643918339776506555769094304553660237296175485748279335825058323086861807350543598409198324008783976236549824613309713031685042112623475085498501534362978355654840741288201157412854731192083117510364324227235462654795869535904085736117763376818580269207190877442059910268023611654176629778670260370892033508251046364189344907978021264706040237387767788391200102925583899566261721090962825280239438687267113095967765925096153327747863812439036440935256703472855515214571483239103209903180761348631578700690680445320691464768001436890836335835324272298388880995487043744904876715908869427947073189008113954181969124929423205633446138533965665303198015741956379730850921759300439378144623280054912007086590808205357560647608962694695430855082951775184528971485922575470158265975917813181825951374670997547050852524158246304895247870591434110861041968679475651166630103691650215563887741197638170942520892942269912424298628485199762850645329722196794195985095751792455566111876879856165769989384585201059476599121012332188127412249409980153027650282750240609347063372100448841805358785490239073792476676227456437454855017500018753736857149849282585180675118135545566590422531514113196767625991780857171123984890579333002532536363413725916738087782523994039706096849689862028978893993722406357669435928879201320691589365785779055034155916881931391735546512714541234456620892473945864666112325872824733816361811958128422277776003945751134781513496583845793923834491706065437481613098005150005136715681533066713429689224689626844881920229799692231206161877895240850211397058118690117655003541635913944164382647466592932763086491727080414380328278321585730761334863515195030733448142869305189357695090509689140762921506699226807671966200393630457979664192997267603313036896579618062925541309856720508693593847796146137527610393024870986619475558342217989382452083498456497393956850808864378575557081989527446952463479968389238834097364563578256262104373978908223496659289663945660098962913357497298533507657840609883356597616571547379726529872687865772401350399156464536054851995668422828465227122594200943375978966036007060147096482752339299369544848942952031210131675569451408497857363530817971967194409102186110220852104084079435726776056536810460013509220400027689057248628716134376104213759610330590632205670913471140571992792541465631346737887190836104704754114740975037468385934275420370981190244498815780933966496406190551147066235631522987326413270980957050312256404886948925548690079486694152542619789704400037895535990255093154957200772802180062597823235373198149750213534706308971709124408302335746269315497218902027652753918830515799564115194361132001857127185281459379763495916317047625716436709234389379074047132835341315500464776988012339280306514528850784113741831548321411871569492604198027973408120422307889044234026887597773095861995558660992415400373022697622912314406178472593356240177415275839154726073124945329502804314573944974462796407613453708154088874138811775840829631672499676542011868040444006341591706876527211935322548838618402831853507179473057790356069426208776278385597368356811417727379583878681437702183838357592521504378381644500876265287800807934314811519233239781736563732199402304191023024668789945421960474833928555842200816363634608858902187173037788676092852074115601247212474405961384570885985675364300222256056420701849303443106016260331625219550745036840200816678795947943271191651324620494613761461100020019190039858017411377402396267789609282043503866971368047632650568658173912148610408824145719532881346273426524790949265334126177904623984700065486772720990052443467005774522512414842090076240121601520478602829754588314220623354099497099346571661579711560143111597386712028438610291751755989191815723354436339709521565275170963321551902826708519348283977171149424515173536036565905859289206801663324642113174883980544091489651898133833043901981378320830938789969697676883120332501036825957881031543125320511096576460210910720001503569064649644505583288029383627144827042762532844029246355990558084239559280847490926574496066696931415615627557719857432190671412972320370840431099749616078956033621630340903280972034975373020007030879071535099062397921799167476962089775849061731477671294363531607457429635109607869806359679148319435028980119453222004320991669562178759009919610994149252110046560434106240086264163307984457701868190122936711632227587864550413277720906108931832228947069149974579676700660385955996878199202938914833157378799670395514552408495969715700183581159111565215550249897679553745295252941272242698391054993282925443215087647771016728214649770127254299631997106819105481254762435696922414854031650108011633831982067306269409456108444375319903947255156004727109154703415864440221445771681554139985995095946434954903580243620424120337057122029914419463841361171115706981717039986337824232511855791128048287879752280175108474066999189414958170629784139371185058298974703218022552118342565749242143649419488183265203748286693984434520621349452100508439244321976188784990733173159834907184203639905785999762382804685317011359829841933230119012203716233717034318640127201102467733374791990866920648657752557107034276493386225237799758842596375208238584991693246017841963478885863700848010608817793965482237113793260738556318465771871308037278261808357261146840348758287865205843045780775359439546941419803842545293238555340370457496240010807525631773949065756140446747333873298962613842561572946166108993168869921117956662253176645250621562366839842921359257356809078628733903726186914672299105020557599419036332738031901018078609311705947539368419203695811073517578825304389079813792850420789819167931385942653466441340382372514795176080265982121352374724222238863623330461551250719725417290269108850674505127312530631964897325538424441625287380264235253825753993088848236887164244305498109202312306106034710711715146468067852383615091512151345388581204410125156903760348887265009403383449549086837243423490826421664400323927288724068705298531959273205271080504001468886210460602847303753292283191454168892965425765635594936907088973536903409207062803275081944413263151200637422400581055194711881822418772314314259339058754816330874689688886933678602446383038676994552788095112061172295821986485663530616237502495990988786540875315264278824477284259405405505665684499015285727719377780738261718593092930126486839144799195481550929725921807609710052964855379739875425822677067660448073489792342920791628258489789835492891473321469322356610804651354964162373413502487826342437768137711856576178576292757226533380884875294120643477468403293874569346459535744110609574413712969025781766134758044252629443793410983031005013234149404900091860982664268833481481687140583612143354490702752651302225875391899990479815912702759890684736826455409625975131987308952319084382528751009480823493060601473419645323284361073242861725041198539454749254769434497602765409159111609436625568732234656342989749756665026670300694518256712875501617825286177072629641805578911207971279243523610428678845066513967241521513159311375094725248833867449070681170477571296443038169226396700276366227465697957081612058834113067849066404820499246148111149207792819103049299458290644209442852580334552996112441310511159546124217478138024642871224414938282574517767591412134531807922718391073636759411559681188916263254710548987031929444179087964515788280359713502697943635900114490283559715766018001058659287972818563040519998288186147234936752539233470799097276316689953249753619838363370159356641987357729552310633059391657442427029821393459862502370951177288346715117998938843336491162861505060574928128004947297144987909303918245022728393166061800634605028357282757286903033993621370439447533471636649503162363714350552429320209580774356146299324051425673849360433064652034757022080409266834523524545647659838268209554952186520255701618324521910079612494247840412811605149489141357909556598975248804093653153964968223412900363407918395678140452701955445439336270772578357145075165476315560331833125345744603432873580184510305289867540261181176436883379797344534049716818687482114546403398792824878649912694915819916305205056159954181554426165359444224791913251245091305266805682480657052419309060103317274685662942349260674757851596888694078518654881984455324107620171868407147145753530469362867027003613679924775756122414900129905935745813972157388982530926137513282661078295943710913109263692316575616544809869100356089480303871667825815410123005215545319183739436323175609850991196712749490881527843822701226663586770570629934555993234735766233071331756603994166701506471372594354560104862373486424256738778332620531275171258096854941265031484487794775589821074130979357495021819876004397895030144570549551136535940476825262940406085395901579457835133504001086247904857469989912241493260485409900732538387738014438874636594142569833808499009372818799252618219497696713821866243916748447177902767097354898609487889233859492347269072086856336844770679193431911419398406247132593539353663563488016164251148427143664501869202133160343846181970794471275574338295032716387171693531767426763612321565508231404610412384263502925922624375737149001132000854365069650770587662148550707811195997102133535882716556833669401340143367139458742929736650727007913477155814370988619728370578610213152661913423852610591136949243436579960696153853175341862160523206454262905753392405453491343038264662160427901475884480889446287904801577086473444277644137527896150677864322685166712200511603709773321354310110405074534759367983095278101687225072527563705052094820599708283395443845217582144827103014089079237698610959496856568274578502981420950201397609821509775121093929731256817506814509128540714676220561621184253645582097737475005246964339053058182015651856281784423432203356494128617140670599691487910465821528147918393848277928520153084432557790737925283894740231022685244878305612157537133749230855491672025729981830947820218774659861299895028070785254066857814873507110395959405122683068647804704915372183812083656112727322826996076968337639098706373296010896171040406086448438930940665015323832983273492020543786241516920097005417807704738577942730446347663940410717779899395982320069369422060582989014650444234624397844906438632449277340331802341494379404291870501742787507079642435684027198706508619631187950867461871616809328546788996052879958797629929335496914378875812800390673387951175672691921496118960068639142435393028435417343138226753933374557219411168915443784914587165220573320511102456458501479949574770868043287302930429283148820373066773775689994898496421544160516394057998607969711083891160349298258490258940722810158529353502699596747752185573538111427511920806451952815014130360782682202237376094761002894597452644165509274412489656521947320394302991666450396245854053478215026222695357516509359114857041582065858171499226206205623076733368250758358019573089646037295293057405053703964714445759513083421676468869188137538683048503669885980977300348393624067280822399135159629272930499167106742622617759816371046838107486103564244325544637660526435535593759345742422712525591727482668164551857109721848203596491473415278669009490418960892181076462821327177570680152938181524037222709494160076542679627347251169709395984333135332805608535746394320750852714904943422197243450360470487926160120970394351082117347085567686684645155350104468164372488982406143627518719392452430256138321229736566232184819688504080374848698312542819238332919661930731711178122408469114195726589188261254194264992534991224762070494728008885310744901345753828651739770680249260599615346192703482536811103399557248929322215171951042187861300320578246327936411604517052577010549072558323242152120343489433276663931857888594252515410403620942005485601827362606735065133136925379892851713389704589866522435955186214552584054190299498703543900164144504792815918320703848705450829616727697031376225687038671960445220225786160869584419470194997131355564671195593624697091369175855265676458889904282478474707168315836291899434886186648831979352924853676808508846560754565382289107782439652392227679417094920408076323438662033563247632097729054353663149854484500352576207999697584533687231926487564444809459071566503393638348859458253040786356908314473161946683341259370123219572083484016077336865443578519071366269508408849349803517859947656612891626746903981389845241567020171004137246144467237466100424489107078643736421950676242789958854432484246950595116121853022928000978488962794995766709971830837326153582079364689058891796937370360918733414267369262046820751259233170172138792847152921502911724063230001755079156921849309415109758423366783519596618484825093209806871293124262497813238265450921261398386111056511796241639755669688175916543509530065645409355526133443620727380546370784044864733497476901052084205706250116811839542401138761990572080633783639721529813694298900631306038942512814614980825721309479046682247191620358881568942541661926071559650927012443342558091421887353514532012927878561429862472715427247312359317483094090399947890182118042782274754020276803799579136452388709285127454670136462147250814669141979199812966854848453177629061619743606915981846586985308721453763872757546187292980932463042313911903962258177588555931129709047782171881680115935540855453983042942584567992140041667863083352748937958813744825440656081086267175234120174771486975764987933710247173600138927690332435252541323383038720769753946684757710735097019652136163514491589762480710345320061100673820213712681560168760408876814253912882297963802637094269917093349950345906239235201099757885811480630922143312440731256250295894436111418313551024787470399667376956728087694214194902915732768585840562654753377595377415654452427590642020018042856713050155723323204008587886058518576399638183903795226172473581861711388113096274201414942119593895925721640479808069056521474180415982771880415000214057271984811995615653479808503149929816432583382255883464129489670143482488527749170236801774064240439589867509756031551747263148068821015501251001032859734981513839547670504582839920220772878293284311497082399319389959601687615313645287677871571370986058862599367976814079045641303371553685592058438109463022285273668980966653684092796507936769342707900437126693895408989124884819207697986894353556355965243863942711835307634261723212007928213007678125819608899311150906016341426323400607314639656418805274020736411597667207016284750410156662001808879413595457868297121139382236200857949657679269282904336974496069645410442041062794026843126596089183863440617175487606402173041455972852541283069034642061698159667545961467889011838055195813232498189666761742849689114996342762522414361340252419863569109696155707649787578215722713949650897058723190918295738941220072657179204022161075559358988686983766090346175583059456530310921867262122207649175146836464828752569239847202106222983241817958543076152492298015066931731911172402250573787599959224118239540714135333809936023421565781599869183489231482704022319841707453459743716992899634571296051591976549858444944553130506263640799573759684703525264681881935066324206587483045852223895228458349586787180680568575468698238850475398292724717932463600160905910855998196924464898076612030416706879694498795087339425487895816153619071647699384529245860169632809561992223718654658588474990267361001748325377243288785599674479133704918874666977853640627097952255280837283256572820903945059447162525157157086126793129159315939728930461835836410000905106427433589588118641603020484091996271954840704785372409713580762963347017908565181934536058155624906242234440577928254319849549499985612754146518176325635050369623017206786901602168360353890001380034008778568830233530278814378775846049641434275153259327955449768702827802925888514860131159613447273920459501060233268023657270470910190251677146495277801323065765089294355986156594317459214920501401676365183239634599115224893437842091864734919669658553491022075447531565231502739513254762567827617589769489075154529367581910557039794341751277247179322873229570132281908747956556443829746295042627027922994792403132877157081582112675464935356176225654844036538530085358383416103776931255647696312861075993619422873864219956649848144715047769559923401774972323568306996313480582023089065627349637799404507891582474292040292799119339017632440540698427283827398885474197785784906118645911191600914380130007829595688467023811225674376491726361032489421512321318157723276907699601369774793068453519828503891681266868970906731986044954073953279289008587347586132769413888798706314727629037546403866832891059189522357535408945755264329530392739652798185015302091568448915128245053794999103473195935469162842460349915071365317546672121674336876881699492001843334210611322995451471269949347314844588088381363980193961830850128406320377361251455236594468455144932381108451702243991996627236692179254749229796905755257251507635956476179719923570580424924452605986398060224775588577041313385325756898883271735620247901460398937110433869591002020157876190074418895502767144448349315547914067003204837605773480174895602716619866422458942601486722247624238777635864880066335866212311401496145749251706086741816640305542730850391779385181677402611397910317898060653489964134483192877714887142286693270406224420366379102642532847570822380824948682442871140637541753837169670166909947244745778367857292635068123808814067144543188431692067539287175899867320512894339792987854452903612650324930768694672753547388585541800720054157385350816220469084920672921439819206463425769750420754601447152777561355359193030675055883201981924826306572430743187130765361844751714680768200159936882319382106529058720369798764428017220018461019798755581740787385031897958049046635638713638974447223216734666002455697687567061007119567354534894355047472272653975465201932967710719122757344870475740129824668278955415571417014709960413763726432960755174620791859602726112268647292832659087756536729653694236376461392569904074387719694957575939140903970165998813097871272753482939811948927456284267153719669780886942252737847880428721677081618535940685078893304097587536042129309756768665797579442395853219467735306312384719421504394967397984485212592910249738461499530540367894872048788736880297700327996783919137457277837936249286194118473057155241924675031187016236981474903555861715646224280104526133241566949469127277668946479299308982155047377044516413632294861066349003749778456845817035485974963946428060841532546710171063649979408526662964283369279727011886821313596167214048406137735578304793512266214671109995488422942777923147510632162943330371609360432759691251136063731942893672699239837368911074976488416248703618220770623045401323846648970410402462172737648742118031557555294379442445779169196784591220971930436774810108086896288873192061510331658980904877832349451869157155110892994430617483845346872573885624722578561189532215813538879567017817336616807865084149530978347304945096548797943403827739422122795022402398696088913179289284152549357917533588897442036362832529607587055004559088537027498577655274106894322953280555812308361811079123078893109781010152706659872536119227905486566517478256812209452503296026147524032036105278525082338275852729459787244254777789261769944592371505794385188713138528715024811662049657458660984463406350591051221458966697344494840261210617514219411499784587028476386767773160048198236234528283181362410215630485171027214921385192655625353329851389987586412195285641785887209406096037966360180312616025120000470456236257901120812558222495750504251724409141397935775846115932486777303234204532283468980087051392830828506999422986258691611919692274057628393377188917925973288387983856637379277710851591696783586542974981599283799527236461487215693657167910655771443696627959221959811894358472360161456887635323863502589276814257318571749549546080971070734720867794341086773527296376264112951157431774997675552143610064925056193157199693163605853235921735421043416153450084702071260670150414409392150443467657111123223222012602060647345953217086495526578718322404702533786869533204626962014909524843529636958795516475547993795039715131965918217900935269714903624362337054571672142657908178318255145667717483707642437050416796330161292778763841930653261177301366115712860114204570915199518274328316750403657096220252625179800692139527092183807085988034726207632819024439376582093443929940698247259069375307322897311083355368420968277997571491657705481469936587690915792324610063495193377432273852968074613998613148935197185334146901825434067764898915732188668114343849058428069241543001757927773293106570985556336611619591884721664693000381029840008979169111979567218794982248641214742809253230976690284595791533673471233472944724743630093688296567113376531712998866096229232010035171525969655080429634089916661592938691262250201086159873647616410675056328874326250056084447204195890994195952488622194773376657101950754547806010470449463405476169087472572263926309207927744924511245714749784740449354620773071030740568529831614129370718321624516765099838651265304572470137050732158886576141587249935110688767663412409544146497919727618274592633013851987452372768888486715765785070928838084409192001520608249870345371910422972780717381178681633298725863167482997282753382698847582929097709764952541727232628591531755840288667507491423015160464206736481920797919315387617673963889580555772810223726745664625607498711736373025093080521058044801320721036686022843693087514598558233857120731469050935327062930757574183008786846463808832586298329125205009794528991448946805700773228341765850866972503755484637164322615398395980431367595045984358407682138806057897236430455409919157534655790702759152426754014776250830931187536897234969446216988062416337051149996148470336521271336705760896548948092981572032813095795110218219253469631714262878345521891143278454260422666079996157692236907932288053340412427783675851671537850692424385247389949001168605129299070925898136461057870312367419333646630248909689541448058483940284092149547274331581514176295019376649402414982889390441635479584424718526923955217445840183025495796973314735573469499954312781462279255259491868030411994095567275063212799623596184555610353567557067925870472213421415388652652470958478962038390320268076772455255201810541949230367655140646454516190006023519504561946271130324981142645295571458755527713404229750143155003625994469542127368933050327667933665692358325944766507459510291379177212499449397432629178976219407300841367342957315432569771473008610565527953121647762589233754811373770913335884738975531437278017592885973863606168653832681288264612587283432040463589417378393533008684023953391942007433761715351727100329187479762050613671928611023844750399240483615502182327068880374602204904385449792471838711527698207536989588866876456863816921261596794143669396880369750287584810954127224587933160351647837066518738496070988977376919738063793306041378698609468503186891959761986536157509913213647206869743349554435207602869059886840499021303028205886458991322435584192611404847724070010755190258800925458072132318070245778789610570197570124470789684179976595263434830463850895571911546568798811322858891748791000865034641442696587445898576683758383147964555132700325002145585613077475675927600510048734120943354700560416750656727653101463026880884480266157462366858311071850291270487472359882210715363376503211909374031210712102655959923584584939688086235941718126598815761826424568081033206338934515222205661360625784863801963833823717158000794748372748665172432204239871808931771161506619294503058398403838488476030225088934671569704758935314512489611696150607598902830148846484822186592531762064451680236969350257041026028286872077737443441008899848754284175530676327020240008444099244639176260881786977697359493294015407284062929965730240196346430122188630119832138510400468914039518878764460822560203514893735761353764042569794927083558148984591992190586202335593035175575374938899054356569736426476551368586093437922940709862614172639821997266899043974819292821702464716094491950449188798781761641331914664115286418491390809467710941128468996022477662350034906949618643288621841915113845176798682432302027154972689330677684038531143704331099885354427620653676092500980990275455862166616327753915306143887973687218569935330272253146000608783576604597265938719536413267272973129632331076127782634302080803509983287478684002914878618018729121967425996457669377294230964516440922294581264126365947782543264832502396385475123482149757763576592435117041826859929867516636868769621955162929888218429641527608580777170681265141340316986987568452446145216648336332607187173252520899028297864363653427439574063586344441059099957460131601042351033870488967783305057636070155211461249765106267040399345349284486123273371272438353966056175249968363264942053764316127433921371401990081929194819804578862900425331161097207200304670999198571662235687395448930909367645128352734658135634691442698564264595609108410950203558116605834695958803299663951308131799805062233534031170804152137854686148092668688312908779675668344507553116140514496243706554135604314088164155905752813264433904585568428873268757424869092510996639704076512029671487230063321321615210664275684202166226754708939980930646712796969554118929374648464263122979335979024507291281610952250412489573357529819288282212468101781323072653278337353361714316922193393799657781570250567237708411569599650697862408708955463365073012356569472513751947040685247804593065519307720230376165936499363507998345954073913481421391880737708324874578191195418175032664688724903528484792949958369494175342556314352063536527820995062987686145113616486353846797370758752504194116547145720733473614986158315605954288623157293412064903124557114617208467576226038849774366975408128970976217987565205762624978555299858159847800738988322453751672867024848589766945967753438721281297125563028528572917733082064378868393065340225060184734083176910819281888226760954268922887770808850869498994661037169336765209883381506446342764827632192170969830318901598293847165743350571496864508717810521582886285464877931271938587879779536132792856800078585325100465105084606601462178066883721983035170320970806990524490808088205230903114429870655158412315563412198011760527628208669623355357574227229821619594743930599759877667585943947665375032614403326010429091241349676707198333079919326079190524547457367633705557538794656206392556220174373014848092436248155893658586284926126740255334662704938075052426801352937184098425555423271381838425061888044508633310693528589233033145310012354067609688582276647729581384792776333980222224694170207637756667623952678517592176953424085961814643370421370646148811853809152684277620969392331261942855977422267732587692807252297192410582344415418585792360478755028712739356714529308217609049835416162288044626198391730298828275047634204654149319408124438884965833544441192754764615595878221952341365656828740343577127232256601565909604857894777423438819812792513484443252802096056611690894364565193390272500797331439130388663842987313185313367985621916928596801346510503694389751473881921763778952980187429572793739879994548079435230122309452312464363670529800843904817111468414007559156648740502552848411123130634125867740738259875853256550622151177397293809236496496053649041746554474438183578889221649853621742165213460080657467834199614442188245184591274294662759797480195732714757180979106419199604001013169608283821982563849282859620472835003518432299043378395545897340167453743033195702342274115270169745541417151455673684547448918487769202414794547713335744492815856968909990097746155972545180507943421610558828597854078876122858008745103163959416680876330963574829814128348812786878016024266642376931748985574513317854332002555695596165527510807690810884908921650946294222131226022303844205316603576002272758333530044135981680473462489324097139679697454188177425181068389871596535559492648035352355786906900043062011888677838963254435421870320463903159606426031057910854953583632511146177009117387559350611322417151690027911809880444755234785400714936580600251316165824533577051565246820593901217779121067351524441160473199833984678575969175163036326303846975843231196261778404123190587043734903430252768994026278476346936676791145717096794558656251684240264767021191543545566568019797048313959267879773769946061456848079805109833215761848315687047740842833655828193930057093091573054791375309447147993155120310831213015516517073628882046469518314898845371328442288415836308197917337699481793455314678106800277111625846279211266372390645145719785363904092762275440729858673420995679289283326128549108809545668542874466843019309001193758055868159914303094014352063335440845046298877530358672056282509512719195313168149635822675307177416458799514757544970186914693754618982302548857323297719956671987648009408849129256368212735997001880727888555131355312304600580208665537890331960810047288227011679903613850963152044430979005869487338977141720416979549009711160707819529145331685796162405585025189804421106491709534619217852678890209280559033113194422370946605724035139507766386547729427188257891606040156989941055163364106391586647892832171690760947315587298073569949334584615288771287243174845912699124511283802082731563166511176998640738457152441024857876904986894892580638056859890153217755821190985954251466747191567530505833371119174255134186126359513775834025005603224452920708504595186084149586904575399199959051584889366408452663582033692190729312769833652341822780692696461070825511163088049495974080739813726245596960838228400352857815298983308859314344117733842227014802706648922742567387787863518938996917245864084345445830884397766137034843184201808445316627516464503119357450470261279791282570841389526186964490510943423151910540038223335574091105189565164047815912342423072086172149688555880876917615126326156046465202352918861331101493919511697624372413897287829246858715095968826524111083525450011474775334997720867117673999535396459148335536740703711391508795941282977149398486369609019618808636998343532198879702247198028004998249522572459455075014209622681702937987300423979437479170532073136387185689528580179566283546147001207814441008479062371922257329019608873446975452724460412660977131051493176959087769716757577094211931983114408894579569081450619954973292261673223858926465449246094174968548499865761988654647788228467428124429093966409921482889068767095683125262096926193376199499444126195492925468538799013686850759447178187795704871638101566501674077515731961765783240905225864567679362059569966057770523588871420825275495444957049275103037603919069261126497152860970383323876632349788312495272357923202490135604889449036146775502139831951121170589327200382881464883184061075493130901478388054379330859624859394205018541232856271846799981090051964460389132295284798225757687477820155497967343649478825437080259090898963553437972682313095819740830332372905030842790217815748024796123043702208549300996416181862380544375289966590415957908585492129429494899614004269973601672950070238208575791770601425681187601715749497390074479311464035723297721411656987622227673399081088444853007992747599834000998120691150160253042908866113104014517808392959898407999620281292032133147088996313163596824153815665053030362025235443186082866868557953253973074615223056761765906086629331635502518773645436379721697774480246950214500332310145005661446444963399010959612879763949661884529720837517376050424241512189937856825748880279032141971290902161188867869971844697890270518534585422908699179700375105032387838268160844342828074167271702551445255039251565924667223696642566995781292633867855176512934383801870173351949136310623102069790903219167046216191196518430058504752978722673155757884987159676378329118155671189378953737904986130132150796689881049875893825261416643155449207357753115336997064747428143071890978412454509635321203569708750666502162157586981644910503556092180883302309080928174145322990076325470117368302569216282065012058254524256327040815932515426841660998220628628523776348125296502181357436038194949054720354646225745613589725779115749699613972181587723181500676073192083439994245940934614735029310383432984307929460082836434837793609543935530333054613903384844087960326325405334094679460836954406872114687559664627198208705186709361600402043575252681697134375856989262222451138278773287758559312064341116403466119208751960942631619831725591787139548003357752850821063701867667795299723442306278339117616247002277871173152500301111443689374155903832939605806863622684548313753299933732541000913384870670968323398632657735684969159792941818487147632847122260674864818885508755637999404628815931723704161778768435943821906170807250355188360804680700112984058007987104300074793994318116903180204164002784377387042059705308212840104689133480187133602109979101334143077981319327177215633294136628581675306631696424870240655274158628302691673595381257040982004282564095414697367035573765994113086065693484384324715774049911973394077237392248008704025850929823763943859393531035816254795274886709556385085163088836105171217067544286723003862188150551046053929751304878795322035188582659088512532534917799218592886006843690470018527676537569207421530217678250623439938676978450978439460760278352913257078180414601744000221684931773783121202848109071993625388390812668230944442877982520398754350085865641403555861312113940350539207149278360046477274815059463008186172892829837550134764530186532359126046584794213419304651473774740852249016031816920625500870227805593938509094025457129051619953289225000113215545585495522573041231146085884510209620859951747412320765215558819527953526148365950132938057930868208758669189334893364913205350197035046354394678918125661247035898731650608552484694740278872607444750370216086366012449829729112443166805873223112129559858825334427411203021123407956738669846099151877660332896345896277040684075022130300581920700658500106806862378253987342822027636453810939772800053573114878804087157025329292990779690611147941431808968443245222382029032074558881257849696861190402171899803676231440532627706983203101944839581970430374880544352365429153256118402396440740149235574845064638832875197659071806037715182041293957407731407847817003245756257687639673127298963257256029558852910274588087611119015430513614856871283065702761466724204617178948272083436024770308780365456911353780940764536821249421292292976445007694562705579837950738461828646942535892262866730139434523769239386309919243802400785522807281560481909320005417194159582553936619806987184728323911027156346607843118311206499305624434503887219922705827387383640246883013134871920225244358700683869337159293671961285407478268641617390433389395779460388688489646560544305542085894300465648469873010468206041989863617635837869297190892709564375311572408759699224154747752037308881494247591255903881913963438659282035731677575842106203081796374588158833734270083021997589071244651594942451994679907284014280871991382655737535932735969753349767053145329842212238492737997380018302553737992275936083351906792204063264636995432924156873436892524286371875285913933101172364177778230634732089149983523291043126922093448286474926676515097065879359904914111783065828910954795465999971926219317190812996066828499120883027466879139693443407097301648999981115785057991971279692883912910144324987652132428438341231014714637442798114691230000666336430053856000907878279823888294270704412612770315772051446028326942816797330723968227543751644077779535072224431130125096123572780043394817689557732466667471526940333397429070458022348913795286403601570110985034623894028249576368176496937580551139690924988973639678110073997202623691603201960378326491154685720715109166687589651673116524498956768795234968190834876044545965912531813535449967693201383243857679455687332510869848604880209694604987606141251453169591590435449016588017784853200728777190684889967851890979186605146277560122232476959322143077454709057065420986017028743539450043571634596005524446170147371824951896516184932057682340077823096330099953110896140713776357369625809952707151379877340915882007734924088129286786335904936622354886949265770162951158700888684400055557124471503970064905563489984035247006963624310941440358813127722435355266216402020049388214844776290759803483461853193573878866343539163911040185165204065645876801917445477879417106929673082544504821673618983196702020699241113705571392940845317078588527020814573644640076553101698533302314622418138967553601227830763709208288087425298477527044714534306153747755086590100247608813690318633181681067441016179401493337838004696174128478169990745029017247048966281240545452906063476521462436441931827506978115387679607358495654915083674733225922052103915071690078260460178532165816836099252336777736904122277682384013513083812258450775837800664046167843761760808528759989845902563632035998035557702222316568627298401799401216107435624044419218771335131017133100982338887557382171268410901859892665136278780451334489465506987440508447787797648649019327671180400741488428861239185578375385344061521015449519561606336631725504109857775987587345581297382136903146935222227622627893845054844469012197528421379053288667513184345444550517237777236917243194700306488569259012497526496875410900025807701708693129755903369898466240583241542722557453837603572355435777655873485894732236390648772090099585381631191901029778981410611502244940368406679531726254736210946634705656737819905679781703406918939368134423299497558160580368069929776333754053657048673006294253392376772086064983273401438992921732428011546329077634936279835242019538701757204572620967825386724709355820535062393555271149335486948761086522897806772879270970962398513691572738534368333598797999451157638989251518823600596088156884097080964125659050744809058324021143637738828910580383205029630086305412388897011823141624535778900041909201727444573194871672698743004298527764940639953990569783953764012976802652114545049115928005424910235368170520313709917933681574586224207246566299548891336670656962282340033072473192363640510432082189020932979852770895596654697402489384024702180819843948215690921168052810072897340795180324214765855200619880103634780990602497280215594318073693526520076986733178130971093984653385738535266931433498808218090525634098016545365102882700342237179603512182065146983187683562896534920958666252893689566689880285441916750359478351425750304293376076846533612844436431925842077994074367615662729955666394003509956542647849943248266995336909048308591321571032741483240614245357040980891050406753561957492912743433383642051752554235481555089107609794170741295486030598556330731142768098315654062449062719684582454455942427628354601391035882667624090197466935144515719506703370531002037674361858923102523071074280973002549160270492994264284714090909972753269373865959402927702547211804018251516623073577035763849369097037528847399473461448946380047784156345698039726988332829297890430461175088716221580459514744396615900045222610369236963519892291396515937275512924143688874519786295172169535905051994461396445817927774187093694256439010020837149906682884845110011468055394723660312544620671107134440016544515757229522883580769618297745172013319494472074028202511769581064312696577686591653070007595492164233878395993408438165745314838355084894456452255969281117585949495818108873401952312339218296254239780494251735246669067368878287383930940709412412587528442018335909516911535238445250618534549507756841776032026465637843875985335266616944582817002515692789491154210118711453877461285094980624518399801920175819775257921337734852015779959329676137132494895080512288351999490915685383165295728828369873829557844168524995237454974217487527872882668781085528652955333677876429480562627369810396231990977066474576418594622336021837711236468648526609549735450345689466497916563281073666309573009191238898453244436012450806873475908184210750987868637480916117392836732325404216592773146336484221667911460427137946162521575459827871029738413120156917459509279189040720004766869032058796400107903008495709815493628723631946624857420733182070762219124321573669839673104853135803905389601153378927443346069177807240348665450532340064721264144308952942051608018163621618335612295743894749439760156865394928265838696668018173352269760246329191953118690329421295957280676011604805579715581165756361820733239682721490180746395320181854855438225230346452974128707318341879145816454372670465578010683455792680261033666273271601381806304223194966785398693320984103220702897546385233309963445666674135788789783006514073456156157125725823925201723148532615326391068252540887316008390260394769562852813587598739062265572901050219168929381148836319223979852179966574025589730155133317601832193238746388339033056013712376330867942030518143301083180797929952949472910465965801207165560952975949715549107567948368580760465251993381648156654034624490503522725962510031400802156187348304695301447813409108358711294279177302730037985601803209336830918039757976947886470096012868789375637155370553518507697308004700674312571824006495372122406317112119822995619838108496465546305158613303352353462167624737388935623680989246527156459390828719408095298693817158378120732759261143283328965240850486758900554412786244741590996414713610346461073589668164942534395843423783975094744129301271040873803072899040477586240172742516409314156409472891294276374288031243720645520925501007637357234122816388459795794153865656547449508523473019450067637346007372656766278096892445677035736950613557284928345697080217962373860717678481396161461997183661227612181393132653040788325388678871028071954696033785567259928208930448330760861922092302195858932970900986742108103462421539094041490611186899683679470982945929819062850816742676011189130099681051842335820019265566926971148244425635145077846442446599873013913658824347867083869826340095137761498627116727015037189681531899708499687513052955656551473473627197083253351838817866537586777944844773241087517906126042533001021860647429417185537791851544164216119907501453521777659440806172016685557301411994625574968228358510822815009264510341476373820356567829832093128356435208637596561105581653547658253127819179941873365905919877837083176726349850872189025160836783706597666181869021550762963213091011422391891508009744885205933226212719155245552268769188308011777816737478746088288811131076592746383174699520077526693308921117304207495243120647703869244965683426142359284109116062494240547937231451304857499182441579704384172293852666531691236861239222839210751754907880195108553974276588202668869066630523285157835910781536377709853825753354392940812191308315633855069308347935796503569866021164383812674996418538761985232655094766780852229090025899305229528448097676343174058732864523053024142811165818874918458376452196415687513697248685699715396226661202769675330014830936085517197036390060074139995053113874309181406371169193984775037520709666511720982435409151962753989723275788388305480313432565630163535276126553058648338740634256542518868894052397167249638965694727506307227183099078935005399134504767308634661028763917844900386370322451070814872617828317309387051401114895193381878635270454114890519599961216175927298271227447788803249812204344138397350069294039751288901450126917796650840394154473466817139631487981239956290397687661205312195679660139009659764150859212926609641144189554815283745429829739827077846999190941807163634590122648259022138708153046322297154596977681792589742013262556492702468528832139788287069815052759220487747671703807961099263870904273688391600248241230684784947722695133111818698122896422125469995486159999659774578451842566290980337543750446195802437339566997430887999813920570012470449880818361563588958372493669039825706458877066195221565593698011324992788475251356808962133319435486766059092641817773329736458100778349594225939018357582071518115058306926115576980625753618438692538629303874049389193438644411357262069318464145140083132625862274317511211925632325304568180894393068850620911922616983279213646475553015858398774144618537607557821752805658246745440740695609793184186066923192278323931080229768238206414351944939347949014473270645295521319892449632867186878309822000365739597212131429726183911796265930888175874249770086882957730810208398977587656406181556321308622680364653875599859820200681760409782479368239309175328945444599030401849066501955436482124765219452073670264850703467010038955394392421835017725643288941438248030051684796344581751366742224489140279251843897720624145802024680271416523803249302028064462547737384642191680848729264861730086707537483996208689146603172700626760843334755720685369658971436509559689715649038743594042145851893275052094773459761124849092956215655211196877813833273183541884937927900615213196295685689647204575848047735435278003160915374839112993962707740739802802410831623384847672824883250493886102077921715210558944514706871320145321286896958537350385252476308143011307366814273975775103702317424921440988322516766520392886499148903970663051104039556638611991086410853385511372376628901928770788761578544019753298350226874637179190809686151092657374050097298692057766200452962236467381656487597890251833159482735937164625577734991146012697529334153009467593467805395680330907941962717829146089053596400400730644356286369638184325512361772649848468924574150888726510534845618335646250871453578696677204965530257027352390166309729278098578564071345010945484407785510679315605781923025568490446430698588796633078290096260934023924473172869999872551738587203217021385292070130126677382844250949317766032370034264553569722278110567121794677782677035301596798458903380865479793894081347826385281452802725620443817081681589532615457254968594784571822169566458728356600876423424271420554536686606035914501911710756683405484513211839868943596627567597942594481380089344649572393137223324342368413565481174691118227890852555074860266667305423198074983163832130229946888329477387371401176004684732049534095972967401132353876282155440296408378292339734699318386104383605166995065687597749003252838758271998392950947291607097287409227899067210617099084359746694182496686098184954354973599468594006673835436194802198948237144528492852150433471880827358849504048832308581528990205148958757312120488876939191675046183579956683182507945329633991611867310845373781391119980933878628859852698773800640665981755731897223609106374777865270457276681017964996600921887004073511292458032215638119096771990425861202580777010582540036534427522072465631818342141919909778517795356213382761419857775578360358189629712795310751489394514380258415168130582652145047913394058501381643092602544158688232323319036858233618102184599613695350891145432846845402089853903774713929969984895377251179642743749876489605830689311619139068918011943056695386507035411276825111535490016905268094043893485059282249437373254138531412494736913426291559567553734417523522679553005176379466860867967295013915879341876864414210935280851897796001565113419962841243055596716802149517167532546320056739254150925869409138511953484924189567124490677046502966882184581100698133806033710861466818980414017162961789718168454859789801906789078818164020854449521429790642404773596041467224365042026409223485023997260716060127376763347133081820598141074601003661765261988042768492794015418220514300040806962532432413164079757840700163824977121246568690021916568515083246559596804720925393939517853115424514897918926460169765035706836185793262898210912631119040405130807666006278522105761675417593370474058344872102932491051186191492119475738407746666497099694401970051012963785926679127768895066080468305968788600149266770524151031104375090149818142304572768871633034141324132574717087079281342731925267464234588134546809614778318970996481725563072497640463746579951991677435356611606456521635268983004411939886923338967525371061843624160049918006442739092712126212456940857076427234630923248922384028719577903746355115007203027771075637044747515765763644499793282262693597547418292447167309304218430899167430792528842671681265037428172824241943668751201800436496119705838036312897228615492711830974499352272923191650159463234486810122033118092775348399622795506518001528936343866043316643295412690182524900999118472436705225639491329372164765751137667080676561999488145138321774366274514497441051221982836172300205978493704484973858127548699098272111942723693174504347531307298782118549393697071299382285652555748640174421382820211624431104295634250239636131107703805683614757703559211509244930829429953895850868547675653182196291892668171794962198478665095304226498632070294086532850589289280519175181388350260640713851181593023475553907243672539209900633217136281575095897602463701817406826517487384820474535564894354655002369052721162608949573273947959086375056704533667044339569831834730828316741786611584105307624809891028472676702736602166278087551639089165664450624809302843438428032899979262133270979562385364694911075033866471892510004881978512855869065304535998465381866955352032764705122522538680655952905331849143121351786861545186472215681772626231413554146322886205414420678833974381978775556569883899523671140078598671279538641208739700266928971247771122885814918327879795865465771738427743395019239875935403252297564536406340816493278092990492950953329477878530339322609331368684711452586348864208431174770296582483123992525758597039593448090123682606239923685253577629014016575307491371216323964345101400172344994912939512962338422090996384801052935291872448588023276666717712583507515447149768177208934950869828222997098773219253582577480686558765698373834954031773208193965973787188990015061089030849620365641098268837131425483395020305571196409589731359273687247843702571836556046625292618912603021610929057340600460842718702093804784362323895250542885204540616885676179964311256356050662034266558687414539397746902470033603636959505100248936309443230113616777142127849768759370035844426156880249405906193625034166384204103535930340127845266479019886486621756076434131906970947307283446987818169414259233060612720617984200336095982438026686912309642786438817228192436046083168506887819467706484424516907661753699728509528137824116988845732956161267449116557157577205869794312987685051975393372186121696806598007695193283548485594079129171555024396276327526089095349713979741986119592424659030481313885612736583179981411690667097015226804411698366398571852820099928443009105488869275393483858265129925232714105622045874105612632282252103121837434608535653333277835873147375030046165242914524319464341042369677394763147328361001630102868539550661433653460067143999224682424956094601558999254278124739513227823028459551954515895687963204040121187101231329277875142708768976059517735875051387294273007988667010824524418345009432637835933368293275177533293162951898177852099273465751085006626276391908498536756332848885937977334126173782517809439030179471706498064098707312977075735975716587268340593688382326423076123154021139846301065342154499013373257687327383162157649196455927139008614534528337117157889546554396289095927678061863988682883277227211629745856331469308499389102952221917994352433619938702293777292048835456462522184811693813223034554678437779159282991081692964490950434393177126827667908771995724848548208873252274814711355431533325672444332438869815815029312281115326933757704293092619276126707239740111465022633975633096436966102921327985038173010617815196937947955112702675369038388078995432644918615552960772982281082268206332733200089527942962388456537925694724026736772437246457980329381595092723919922849074417094949589970688272958643469836150906691076685744075734203911939239942992003553495450145965938125012929334375938652181440146625803074882603885996621672724157336748881776014764342509688174128784144723280488919090961109601181701248865613857009851081565579866410810230041719974435303970595931879775802416492852583425155688657152962021554839637812633925239805423980704160612329479792558156078186036867496240640199117729654088972860492541119243386859833367751947323501394139576562390118375401129166048818718444999796114113331842135959287406826073614611668796566445875156251151472541849035737119848688003405335407414022957413242733645358593194810455529190945707540523187136403678211792051263331117721262632492488996764360604400262006207886778141315248823552137631981973405696645817428681284438225181325619385471921956018463978975312253625937996964064436588044845362100183687392831688822426886712802391208310968443253723821066173936183177576616474060973603007616919637298512572441094097923486484091159475645995879585037012791407627887803739750479595014713148272447905791030967804699134840574703616288817497105212796350393754915619799769751146749041634415611872559955690363527925639490493520441009090840122520323121704571906366228802752928348160441094507270029771305676103123609811667478646305427894093532226501580051664411517201359010244215873497886904663440981078307950666183713630922792332025833839240722246699801147609022324751988136233821583911448347810968370145844120676027334385819182548982115635676572749843085276322507530194921811693644622862676620440250232398761077856533846475119968056703852072300484112268784290382484388134235604595292065385633223030051372619109518981199128434256010957667707975943240528229752901759135316902370253896005722432116297880182171670658632579617531341750657548796617308985057173385281548758876369616774900777268206919679748253627441342343471888730252367747316222757725585549469146154899985552912189382884977675274648662160770958112926362481585071214408433596578777125810618715248849677024653428534460559816000306381082654037355200093043122925213071763034904454946274371960191226574548264749895563722100038369218609344614355320721100891180720184272192069636441702209801335227414303830123575682264201465655395739479232538489214348759090454501014386167819621223766783136297978429584310664865521343907562232170200655946204546416407990133107748221001245197670103922916313139698144111412570898164546057405050042620258111024111309350293838324583483506972187642440686211653948084599418095041462888863149635947079845023240453554518340420801513314582132383967060320869450602591086570161602196495980442795797052555315082140033515378307760261692094839286327182394164712190229191181237340997315261738100472554334933786788878034559499949534569962897863136168065325392426419858904117584224925452184432062131059233033693575670979181805972529257488357005626886437785956245685042436538716343362227725271913342185806134516934521673582139217904131822988177490537696713504237864200479670796733861763888975908019410467416096328575786260030420096474897380476705647549876313894531901486974488823090794855748162327393315609220469863716384317456423591128750408115640971272795341337137849186940056229050613422826670693388820128710605470652179272875750258076968567929767275731363746572947073813410327781307731091900803773451152366725567704555644498467470111955385972595460747704647763952479089849953238525935463711004337901555882108620105636624776521615606452468075113675540859593547802227074018783204063141945537652524286284674008982284304151241969555603231745321589116319010624618440783784204906327895007059944237012762619613477031258124364825786423837822883709848012513352635547544038602399732216613087279896244569989523273119077216318333355894846892404893208098124048746676302379731943116572644413551252966347612957846843187341301171195922171296667264803607932420102683744564337969146476602387681486098985811103808961802929357207710034196617051343721154441888024879426991730601917811002732655138394652330842912245046571082856109978494385720561458760733047663542459583511150746426585886368341124897513887488128573747187667293129872115888941593250255878057061978740520784626574309631449318922569763178652288512623641672837426882040661277013796604844414680979606663550272084438956384006345748943543462378977897434504931244031552267811451902085671689151707562464073577565382966350144757223123811835797166602775936657284154682439199642880017391008630594101017018234391501541515809524822939966793256742411564094017265734108418212729427321079120263446436441277284893133095719068696774718388535818463808939379203661535289733905963593753795462944765241458646879289351467510169645147113291497830607831367274740084623134413606883821122561371796904293890557835396257106522698120005470917083376192961147927448106861955251552677162931632940363535825611254026963753771332197282272266692151097850507490370307567250178265106840181090218344342067513138032186988706645376328112535453609442545501203520769915909626668485295903328408501619709710127734758502919253433340625340594373209477484196991091469944576985815479572311969523603859590575873866922403008519665877013681030524484493870377285168700756430072617631563815040670016960327398112418542034180311104352600676643486055885121942610571633158657941274663981887054580631787281230481451159520165744149082073713918123053618470129366181994172690494822307828624744420574817649602436590938096622864484708279289832423857794448656895450985683626898571504069170896261800914738610945394675819975919325184413320287868276240892987368423320949740056388528843157975667368571180409064183656143377706442081662216887737267004031246745222272375650275842845580867484005914949075791087275542402195949107380071995419031958278275866584403930555252352818188252524817668330740522748218175810548004278153130865572195559818324959588300379607350944463081188436909358864272080918783233607700549135884209668360094790228620589507518850574371120493505111859926722931434391092737664522794052912136882045859357826974620917983104270785782461731433518730513808731158794086540972203012594454954245161582997502772120939252869721942371286666324358678513644163829567877072207879550837333837281636469853629296008424925327054508801697799245154870611116759573617369959354893445453114389694313201448032654197682410130751854870898243190496943063456236497993200703319810414363214795577561361985064519509685842098993062655625951264415406317854674651441346692878864693016993217061180520342364823064928727062784419445340946230271486026106397418308623012793412168824567913213795032311357081141667311000354509716886867651920131273765050663964088214387981316245017867829580694553726012288349135742251858528189530498391892122079830757611711718901141650629789024742846213226100421109225793846201279221273648143062081597405560366800249039954671628189300103226962522237935347963157067652047963013288884744854044443912607713471309588950764185074710393320844446587610934778331837220340079001530620456645630629984781602809571788214761296043050061439141508373640247169905909569283630636850726972217996775145965764199203740071853394763368790236471061689561449590545524226031292879615308852579588761201827201460974825272614098044421095313673874421416894706920942010398777870239155472606972337967875380599651301988755490232265880940623215084182299107885698625850104436204395758201114147302243273733132799527994764780140543147867901685378428072098917466313444605298707977459627329430828815825784000343837524387751629160690625730021662071318834991439445384096693669315721721950017967293512237857616062842017432118580985574083153894444572056533795052930565769432715380027204804819898642828394434631166831648815538231431071235597426235780352621557285644141801083784901088018795413907110665264406030043238057289188974088287248647561840700869819090701940893598555319563206198549283638851927866507647033497671677913257308085812330666250465031779388662029153337858417330789977239554714934874286132999381640912019108550051456043606496947447377583259665669756354199146956204587202568052563356329767232378520464710197088478338437709513173603487896464727979492287701414796628924150007741321395170030881583205169389103506165301277522354453280443876530826847272061061536088436803534951696855804899223527251447992159767096860512793211381578787348217655298430439575686276993668587631324179372639840838203704226291866738822001201194555105562110363340003698851265035545470689465816622227173896769277249414668687817273203042967451712329704206087454290500746892516227427792704766694847720417779669178212032249091973378983957157280375752485424281540804123951840534040379383359062577605841757231801584647169783129398806887844255371813068219229099277376419005210295517806658921569262292380362007591754416926840549785478610405696304659228521712852010493441150497540417194497884993446055599832572886919810902862420983235485867109865854221805213144295726053072762146787298574544275964697300549878485089371029709770083428976659718066715416460796550098050144088993492080630055650391928639844201922302292274265755697756959481741848797275939734971674798030914902478786026976871747968857184218402333129675521130716133216890534061325502264606866801099622033646945461806905526069557739628894660728607588852624663440122834549814177651753979170162517827843039991168274277994235038880554312134244658475899675651809201004827936780086484648495726042962345959891084245492032654167220198212739874457949860997176428482782542913730363969050331080110483767125713672866075988807231106376876868852237797807404085907531644461206180082489796936912820757937048284788779115805842340434808938371116206895957483318948474372467565401550028358904193796407122215312082392339372380620095737072256794200682914820131115733618768835380563225171486673399593971332866379248479160154841592739705483832241666407520553031615469257339000306226403418684221617409523983945036015792468645655320426603195796312966879863531569159354786356046880504107758415999625982247812695946469406911188340277510260133056675534547467863620682232519023252638935409143193289651806696103198830957283591288207200304704005810956023705554761344586404246931407502851818607549161983728565778498787637794280185330510603789476201900498836544542102748511895989132615974107034842076467214538135129930020717972809344842011474460470990813104573518179310711660434497398914793940248913362533430718322864641949900475194405540071435209414092112006494504334024491532090551524334097453089524233239187108012310211252361349396181855754342020229056944592683390878286444893323153470496617312037353073031427540298999217798140269354123423233016418473890775723727664709678604876434933725373073958437449547303002012711125362662365323898053789853907926032475355442485814797907870356442552189765020084703870383851667726627816439758067212355780293058780212378880776160549207083957350581991121991161306338267364098619465798058904222653258433094881473932968006531720301625045806558136257467242197958730958301182686475616578135104786294859998197828823074427293844577984059609623150851723829353871081066464864195701059322793072756757412555134934483747653488665646498362869348852415265262799253416419805833303163775873082763307901154259860296152388337893967678604262961489940391557254293628667139868594896001374211794579747464817592061197963652983936276206292901899449832174630193976880972669362150602813563563124039590577284137610932975570728103660626854161711716554172812348845932630945195437223284432524933374321007385027286765939505904222168123111566283872288235164374832216085174195533731496231650501900278154969901437683842118141126494010718565978664423270801243013732273169193519915842265905573136241941911286033038180666804202486700005848439364382249629327959785230243900156886980711499018627729441827466014326391812037599505474585806050304945635308272922865578465856514509562182406271254123315057808883960172321350083421057486375530084724214597101298180866835797279139217690955232451014712960025968643442189965297300241884401009812389753193856938734748256121083147001810067662728332036810724292674211449246829780686757315931661423965550255285454736985045477032606169885115498810348348729382631439156508192766480126698676847210657502320767657309175166052417917047789601919743899971859885616720331253006707493030883372179814875283910658901141701853616981124595649411481225891551254098169192542890269405183758418186694720845821192042331012295447335113039455264834125399644327888385706328847091405516225021796288831664653568780500722287298920638212648387774049768673982221976258408842076762638695393147164914268442086281528557711491082822127963491437171844183511557178705160426708655292553296795912947857675347503982636197613547774427780078393286502191794072331629070438246740672082180354903484425732769868994853639149569777095944084941131375567140594149339414397617048701556056654552298492866043252406626039804948721545002376870689087233486617174330222171216949560628077463941561403575310651220141719802202247348998315222064618315545579600260762323545033468445284549376742616154871345927674230914455870167781551175588059086609298993655108265761164028911868027823215092185311834422651283893307165914315891684188246674925130298034001347384391077951239018272813888197123404744945384945570035269899853720924007400051857040858703662197568341793886250154475838511151010467300123926377395181697943869526617528930276460566892736815683911411744295150971414935786794964935050508659678072406402353778650060265104932984780825573523510353257045923135233760812185237209580448657643207721462026537414763330914256049350899972702688128344088229533040569613061588351142614808971875601869377650173091043904066592825629651866848397047233946536116488819321678783847107100882551407109410933065344777196849061029322330168584302010068267247506688894535041040326708285690734789555397541628717604474316381169914745942609842976531007984290782594811306681480896773567881367634123803431716891583068414977559189831496732971605384041820616752631281847706245231183082957108902452710251292776512924742206650247209395146897447843415389545945020102374817761628938269602099331390568203265095181315438407922399726392214644097776313828552509026166324601275015964786910237429553066135367500434078523739068745677538749491795212821300081509996793796649166167425188969747844258011018240057477594630389061072133761156847964600870280304003625330568387445269456323835073195274141928799872476049737787076268833738804967328702402044332081406575552352907973863547262559736748362858788535033437777166277649755966456068193410767898749649944061543429314131973244253315016158494040803456320154800732233178275405106131843080430821929202077824280340940482869662178735712675852686227201554163723021792549477316337352556776722795717744496275138738716887219452906510111105637033144854269800622284718807515185061755198529851698874500590952130957844578085331704128995144312195020914468328192921543600046509930463874576280242205104974540536113723326168678288377678586829085436995746039092967341912202856215029383223697732823086904698565494982317258262651233766602141313885689554896374670722259494448453357119603667921089206754075099868551626324843550332536606863921962047678992876008301835613732344111245285576758354347195384706122038427509790892801731869748145929039701501086276309951324047517292094431335111315164005597346720857420423173226336476507229058349950582153978849061503117427227965558798699547759384037911875262137518123032850337461408052760590867933927225251849474806105246605501265360920364244659240614786006039499112007741818610264904463770889037395603189631722120540986523050919438070232010348242284157627087271963860473225776720414135325575307127186766103554521424714496103287106450364988977129601915209567427159650259170630773660047771248598721014228167372156286745201982621897197257574793662599655699304624170156162110098506054477123921259333489907893900734121266010289536138978933866601526885318354930231145471912514904347204513769418557061363490695176053016153881769273677456864654383318363984678351926527922370780087657690590915257948774369514531047345828999239893118994587356054957466680542121328479787106914478595163112504512022253631093327398549864651928612759282126267734045953635170823870612180056451785986434741451142874233625455144407072801031684456539274882055142836607416909058374466140361378418725827122541229292672544794166045698333053211966962193949677678193270979514601153602060521295940951367044879273177671959676023109570316396080091959030467671573381545936230600396080446250213582291248768998425832626858513846558044544021425556338557164476539135407031347806027759469175210648821198012138058419184227759433727923145424701725947733108361952594082269788460151012629841002812055587079236090450824253341358767685797384547559878285889447593956637082138476524740653917753448999290155657949654339537135099295885462757703908410741254879173408623352473521725394945465630281123297455424845852338365328738286689551233706195455753736079553718530217750482793181587719346375742522766639491707571082522819130093197303352792276759346492038432492533247142862990178755966136383665630479123008992490002003044524154890143945997335157189143264867441827784622043557003845660442452326027274097136195596746314852592037459592979569714131830536450530510738094228259694360559224027321905095421811266635245382203002044352659724879150600374784238662679234658045879574557113761068414417362421522728699647163726048310871381361139575009219363735468360022183896337739146872775903343162532528612342829555650433321839605122136452745439959163531574673835383624470840942596868342121555236665223081780322398959323625467965752556792663454251565177038548738545066803009062780703594568255081705513018156769831230841140256747751592326609900712603728486769745625860477943940864906967146005265080153090635796370034752877092484332894319556488581684958706276952202621933477384178760699133115239785934249023042542613689954574155799012948662832590689942705085985798133720621304168068716241963757944465757310587716246424859888658293675380316544546197583140427612986717275720866010961034523703656649192029129805041958817288293492888812808400386506549631204469031323475701828113606870761246883206965775582677209161278268680721966120058996070451834167395929336233258573166664254096844904976108189589453754779588487977308610390834115682947505695534158109708714457941587112539451054118424599210285134968701870163382175115516594025662383803840591631699133084296359678251883721685407940879265143017790416418416695299077282306346170077833144002844287638679051113734724338441733074828647458258717704827052250926760082960334496560107238434893057765933995047350823819089712320135510558977661637195644140086503875427498261453109607353988020516316400712169534295177143983189230771875650085089908497374341123812605279328840195820693060841003104198042976162574571544352180780126012058050814470311827395202537002595006585127753455046983181150396282818277407329536537967886800374283576520324263360481673865754881468962964419067346574530564547148759676504010304769209358236451631129992211196684326423612072227987345239570260881137446708797351576611151007597970796093680893167082570468073742256387631516219021919755059300368394364749083095436313129270164779559826431582975740964617859094584091458376771048241904004330342479579012930247868282238693901178341828232861227272709818296555434890404998734088080820124414694682854313661929324665259785649561938745328182054975241029736543455783162195743239846641496593401382574751442406044605257172453551946992323424467883161029127294437706182623592769976617412097417420868134073147224548547052932807808866369896713110327329683932187840665447185678194905129736248886106381327317859788109152867326831432053273763268595428790105460368810387920978531554423729276592945725735313165586635673831644441859834512650589629680436995283923523435523905744766557690486453038991338846118083995649484918504880082299081135503980631713339592676616731373053035388346142545399252614998892449847313559285794154950346558179367422280389432637693990586376184928015705678298096506639316619650246153727105062104909314204194796358862192070840196978403536650186209218333241071872891494833507354207579826050513762914147337581293918838804328779305474129063065662643591330591403475549801287273618080651544406801536306356363941859248280693697664488075753262484477385899524198815679204467538776717790543283432919758692505645604353348626455715414208829147751726807060505366546914671562041751751178134006685027517725707668595629942959516860923826318357390426655372843432770036388525119535945658897328748168637300024679459705918764753647844738630401572909982008325686007449191735295430472984219068640156548248434200736536473967480736537793520841327353120845050211106751472234312352567687722806380793055906874967821575266409782306313380529598663482561871105886714079368618158663728538776572532527404965672195081236320597306769847398995956531396549324561113461151115259400613426788930544140933054977468983888614371936545918210824791243370585457692784901041092438965028587931537028458969974019169989379341257411134277688495908859116835140718564265091437895139543748578996962190924015704530739452763200488137983403024024626720490461502435359020982445224657300868336794504951184997427720164853928118536302788775037604037161693598572660853828952649985597638864141054478693173945167099927236835217513982354323953242583087396193081403580878852311135774934826309757528576287056394842688414937572940508000561703938368123209505402938702896309408872614215029176461209341045438421135354164839006063612471171332670434691624310214640522048929539944617130622397862383206256610975653512986958754828619781852561455143749316472107324883673639180980220050774839801862750713451158072057312465600212308479286394240183336031955367518723306248866862395984313467247749744680340625675972076358573095765678274214227998971965660854278590838332319710152906015313363586745973343723643592189187029193206817127198166821024110058989059878767031085426425548465821394446113586235430303176715046444479226708163299029342096858693411321384108120125585125202559182640246667070545141564098686744601409796683009970673891509937609650629109791607253407826260743986179954102003769020494764053403817001879487070197302669178572205271945801604799917295868986159244938747806179141485357012071750756961094102552975977884453591808207172576012743775067455218465037397828262303349390656815094054907413948264430466853061235531628435662631743994497259332412290298446440601915857358136544428244963005337164695329424358596588120905365082821351240383365448457581942184873616200183558875767538772205508557039872840433666382807247010287335920096754233061312390309653390061385865420599008918073115493130291594822818831440311658016972171277806146468170554472456486453283587741947800956021776395336445648829469383793241449023401183747349245230683402831339796927285957668266054566652007759968730466063321448808727493778111560825759253059748712985379391255843677678332133136911729795450017206884460042801532318428395875003061260690092905992214382930133904609309597897924139290275971274001505891902831717411162957650908968676991115429033316151667241986949070917395918458919875226952820225302605550863812437337103598591900809696213888512143505277986155987932509613770845982640338203178034014313690140935796489825937294413751445211542203504296185063382574418776577142191120699218419959446940100520021442154758571528340714852126851555475026585811469098468691964544916656959037594446866601319326894337912127940234711934819479969132623193981812414173634598066063376864977043847314098760181096979918719821053966717538147176224775108585593470196793980502566058892920733646262758252420148648269727539753111195947038264095305123320645438112293908912404229897559262224309403248730102661105999666135323813473183134087220331707093962453921001078360426751286499936654544027095723578002643065459915085080074837711264405287544139142046731061851040071964370414655279097039477901197859361544106980022002310097008459803330682997816213256904455858138061998632574327404199434560344174855217847333035519899457217029186051733653779025838315666222155234302257162023514963755140245615081189746017580436143683764772812056300225303454527034105746991095630286592196397178618418125974049333198837608742885949057228265879956499010636465496042931226510639084919593568314870903227419862802995152287257716854954876404196116953643883616289363374688256272916437600648691661549528267167722693422322140709577691515673645701175615787706215894359426693317451398363086145987138224715819269334569750915782937821730966622743256360673649041329637067335002384300139046233061637538433163391344293544117428865647238593028621674568229429664717864926869309434996235974991046232069822721818759762673786981569199207736994794713373234937629340703006139724542698207551707176932170040310079036366609586710094559362862376216637436636141012522198557164226653530477122303869868936930944443419025487064483092001749579273569971332988260769890251451376421924433100375927862447871641824210551358524869422346902371125412132574064277067304402953093481762926894755570471117768191594940509024076795969863097870319700060833731410488833277233042770296972388402984010729688777503602938334058399423515303624558222298567304312551073190845250039799064981681998000006959564691142729599883292299908914739363285855426757351577169042273328881708101900074606629056200969537458964086828157409490507313892093604383670447150592233546484900123535315751256436032313189026872804193242816308658514495095125595357995588073503925297244427105255132552995029327614141243277146659309975650324648042141683455008723419329668567984881902766355283531422408473328920447347992505139617390721991377883981912919625368330152709907845185684846899878866317619003480938431896617185489326350400926997765918164397596462358634202907038629640231181207100794446257087627957401740300424630169812104755055160346773265705601113824172808965707968543343982313307564681479882309339360739347046998355417442581337968905800157428339153164297640042914642118763217281359782702721095071455838185609060085499417979318065530686372848380972465402670916302735066479847528473461451791588517395555146680250213520539590163698207709482054528285247656816330049874096898271120405791053421328141328985169859307627646245035338857985115333392443350458939681340226094302342902135289634617821513371702263491564741001550395548623335205951784813930784286681764349276990896338776861129533131481613539956240557628779566522945066835699497381076758946024647565645016467797718181032367505538574532690763447012438922603160351095521277935052892942142044282089319467471420975618253175567974208848505678498329521271326176520144472237322001967975157543835045214061510411895531506148413772011563800185429555827984862971582367987533942316925794900452074954191091050454577906787265989358928622021539228686013237799665496637684367375711091261533467815918281135499490382367562291699612970595732373438514151150185527263509961165167323395813541151649657377889911389946972507144980815646543055062275012536386455250096349548417304911734276338359235959997544075838577185883593908393126353263758668062105392166332583782329556975353737608570653779406771388434949036480567543261982814289188741194872216510534187417670335598104102087292497946835138991493975620362708946037946280453451230443332012659856840338230113300594386289414050287740948372235237843833038028167830679761947518684710654846018608023265455456507185470048856080714275533839852260347374512615416102422980056559568706153163684219567076558509366510248266074718087916148038947503091281520414950114593871884908989083382842690705195580970217042694140694244749462533711103321856257514950811942288123573342095106781288870181652545840513683058266879314398346808416006548838689292084454225699973194910153443101400259875791401162275503797777079816585949896326498789945675640941578412215980849589369553438861192290501055941077729742117843040375054593868201217830694578323734759640653424333720304374101905836592147222235101838747522417425208407312373568530317795046236534913943641434545116804391118931502614730917901244123197241605584840690678147241751304621245611243876630791928386160048179681547317065335770038422863767458067685129154095710837276711444240552524096326231473278832308583211333788086701623835788497596839169346825351771834280406023768798474820952472254992316005259388892737006820229923065227532834564788414637113890372667046794228962869889250350559440600295155606865628144800186774346614880154763211861837766409354372060007570833302178611533368454897124874112270861538336439684904009038313339060057135867522468734763645003612913531321200885149328862372091289945044926054953588690187401067538776358871048432943715072129900276556209980906102557777701168430392551668088002662645312491046924667326826455918373744021407991152538267665983244061299890702109427645243639614205448462404647643791408773029115737109758053093143120930029886495450580027491781990206207149525529224906487196648801527714893213596433815737432586527765395239697278033516882823378524188432097594890837297728267395125944488174386905212982962113837836556903956609156819819445374268641480199915844274989018934906215662822961777705379162457350720655152789874779542091809524752582401393338139294292715033087621370133911290195346254219392155558194560910832771132263124932593822298837608962846858769693868350159846677928722523203354530433716412343590544265429418367545376474037212173629268696182155579895215315582987463295845456979566953035126342868727252653544450133703692333521570639477653994824764275829421674360690967003557642986554663841076863516137268395040705747313400204086443101811204575963442527191439513587855893246524099560989488598139764112394991570591268614814386389303938847622852371497040953179182758568739387586190446433907361614945540375750630685290096787265212143776201896746259198040140887148668915760792275205240934722311170176529809501805313826102081545145229291520324755731068246601170158248954843254559873099463856959835717876478877169408796472333273943924463440972734722652234950804491969539428957129664681618185064079406871216276513200272092127152458844339195225399627260432399983551442666025887671133109264564928892261209461924270945207924104903847716493958601723138569153677725483167575746661429789153254532428242359489438097935694801578120326815740753598725889869816561790539561534865907572336390428675542045516905960817000890751407815355958897083571137790662446629786236656300287597307658275093521176418217466174340482281572176807090343425982574476342094039695961733732024423962199167935802532626574210341964060546124597621213399211590329420103829114626287915524793948257624378606071813771323067076006490884012502656329769701728230352248012823270050647212811283637465093338410455868391058039215557462417798413282162187288503319411639554519845572649313924087011120595925316124608233215073271095901565523872643076843651710650372605898848464222329265881305916462765342423850084192727114170043606364283499236400101883441346000953777691537904990653976655777882712056414469325303345311072319499957874046103556685606714085605680902287470588702590828848430608557729362449566564794476427130727486586824852585699232385134772152630769159188241025812804863804117604755973045367529965035135039608683035664822309121578861229184544808443220686854328994753275573059845460557040899188692729198200272152086015981858588086704861470956869856498027857705300644130008004777199111780615859240197066992368871423551746773404434996721138839792994405975590933830492920185266729360799244218422559088132012541353069964564675778337997228214037163890696755714037854776638324183513974445443055301286548743414003434637002560468295582341305670061940148595483139268737232195533679078353733549906484552925730381030344673624477177316860612279114428066549607470085640925015994755934211326025708789492976309402006744624579961405940492556733948889128062525967790453839844212043237593238042668111168104883095655177605337941442271704013230533373220181379259213419103062313910536153254002302911961443761823585725834879856902210502558723123260330400986180259621141556656701826800248783088704399896901852011660414918752846553103021951475723217182714866304947969242875433905046718341864580944744123448445553679076146168188389565034763761621293628509529451493401014331139172538049343406937655274593524476395478123723290987069911849138897930925157903449525361608638399834692188728278495751535851555716147716317277586900402778219133655023134118418209295145722184670421421386955427153819092377486566482680574854971174240627121199371239916449262804936063906787306787584249616565322100121759439207742385539681596276895691221338196105888059200371651728741356365346992217584262295001546997389333920699884153848316492121866870177984490099583379547599739535457644717772556053818909944011083639035688020870061002098319798915605857923209306159296812790631027439100566266273600168053745183715671173709047983162445018115152442345090338682813753201623785267081935297735617673396527494172388223195405185789043176538319411586994688839311198866214786851450445537719307089720474249092188415332494301209537209766206806346271256444869574683486909475807357737605874441989273034440667178925902224675407720798543911530357460998066178625871921504609244907851417592706849127489943222522071295713208145562266442160009753406611027519781392955345932442238397827447581837483052418649141045483231229862137588429493440351027987597609266489901522535029398562496244270004344526183175414735026038601073600717116940705259782179602838398344009316980365552024766819499585864631190138346190478051947878787050164546107196105587082331221521500476709399015907192439223844709364974948614248622880889830382323036293861924929551388233981458831018165394983020679342339616332863805131551930524098968378075515297135686050176606045229865909349195843208011011027338949745981023843590340509785347220708975972413696768951492869120988588185207489381230943973052315501871598132837793882002502411756818936752270314752829003957808456283247969557413528086326102609934645667051961202506089677787090638797999069132260749724911958230532934737372563071792503156964499510238359680843093250998861154233379290613629588631988451196417700281143459459315762602932036866448250600673689803491670571013605951933919161651496839738465951737405212794799152805376670308729367012761542498409424965350096093645826891567547086085386540107780795410111235516287533150696744030906399994109020289672441432745151391260543277724219266226628623035424856082532828926796958323506217602400917050192181752873264428223208950886552592475704635332957269743184554079131165466592334309502831451658421492935208375613607052984755881383650728766092085549018919696067642975696878062105765725849006597094929935148685960227994909777077115697294811105405620749163140790023449758689116607617302185559177116752719518909859447867217658683873417696061397825410955364119401926041321805349049944955060240344419967209567183717150131961433214186184916110812399214043971006002800510339611302599736573828313072730424803942112825883679720947262890158309247822942263925939916232244990559601063502583780437517363139719268650516159862270372347501391152108342502277879529948265808140571165205982774657861855375494118001497667314940408526905125442577275802230244589086119024788175072691028024259584101319745359090121629775954088474734065133916047471338763871796138111744235068149014321371724044758557129150998878719123290414452811420088041447666278076254981014294378687885514252707541068719259280164925776715835334128287135251957202037865164451976685744403800853552359028192255100701708410522033752349279018646316193644844981182303464150198682424225763437699598055418379240459256610672029926993106092085859298958332021830939774160602437425472418435018942486080223002746123758269090052705429273342139848976441226782974427351587837928232532240721150432202456585515557725675008783970932230790531745903809534382354983493002037844888877728704825832390831578522328564569063337177167693694943504137766586340955204309174852177681570336102881183968472052453350299461641838040107035174730801395614876371515845587347105806970384016113085175302040647996874084001718113403937762359768024401761865871806900153204932037251604953679091725769369344307353999050739290566782268714694148067471051936849665974785637057474475842568367542324147028146444748085557537927087245772377039259389289325530991965846556373198943685951649732579716188330012221263384347526124793108981313008288964099045109346009941137203958786020257364667368856393741699288155642673363243244684327930467610631329927972782514165040682951301798241378472670376698985430659647783311558551937107795507810270731576276335116281629048024050299684060707321028002774017380745329489788372617645273120799408216271715113022392236106295379000744568308067453492978193812216006670243649301544504193545316044719683096269239524452770481634410889012745286183778684839444030698083953109544395425467601789980253267769692668737045077186570529802328687283245018308037498006149664839461221404121475601662427199262930998058437545990793415268299396470474061165588672192680345270142850186620130875585812644246194272061153756498802792846672414923254764713652560900765172743620980238678406830036537690968770004412259836163871354995805558969190441613934252505753981811938802395014510036550212428890586488537258807039623826952971295513692727265066329688229707747022988598307635038003600121312228067056872588612056192410590327639920654102852802010955158223173782061009783962730428032943987754192965757129408001833885201945879034732826386223210606643690015217131666453984249546041978144356926273521218423834988728395161016917584525371301423647004001479043868216409775246186919886221331425049462238130508036576656885462803756812941814671006775887795911276510284498437185140665174846356351309014547324955814197895975425104317196310288033681616566779111685323881113146688798191201038847177449612818111590038074551178285807347828682707914932377675631627171890599374767567912458760639910646112919645878767549734314121881001585440427824675329434014123142397655560443123538726537633629162412506605745428982664175460746071138261173764227002372570272512156422554379325904502371781172976816406679456786479295973243893513936077364900238064260490473673337529348721846565143831897345418928635731058125595349376098300159590673778667185679280904098541296816808362185534853826305560375580233909811645344362894831095011340495984208302474716020546168519103124199731392664993126600569029468859792054905374580693059494083838230223802981680980967879391859496170625362170571108554791973589405711290616546686372947977855090899651349111370927855950323172724673567926752345121691894383641906027178972272651265098905819448896616363235938165979795832486298564596215804173781123555632797175699804652881681434320669377118800097971867810401948168976421248684073629136459747243671354037134112270262201114902659278228735941984020909656304828886487759300838099583554407196108762612837682733855829713132872214477423449565598381782753369363705723356891520479078256234444575712618789648473337069948252551575308877704637347702749142755998195905093681553180634881475251576572538424915891505842133871818798655071182815121298864354838096020203895806867675089088693130677162503701646586315262238796686554283136837657172002543864940407688565048295033917048909622439171539975440104342639337758244225146262387347276188792943787858611799839402631980753733357458050722971176566862660446008552366475699200546734793482009997918237944763089924730131307853377915876224760316474527805354046179271243760614019927141202327881112602778870552108236511672826778978132460528192366092008316051275341191730993826020350414654478277597047495227359495616101291118950923361088055461159824874957907554555639659132416130970355361241773036325841673393461359114548695364796530658314024512277012578338394268175258535371654466495346855213103701311210072154357761411518686053785459424923778563328696867669500588929347029929276257877519754771760651289137780188232775626105908050719257588080050519280111908001005307812115066281290539108682386019753946033798528815790856247984383192907246739378278559189839489899548613834948704191820139206106753021574684801887357287815342670338842993478759863221821991760324313447427061353773062098403547837162352603011695460421643902550219911900593411085910119060923249225174909523294613180594833641856755770747327117975177175111579541690450845045373810523692652041002760766737381049837965629395385510313560589952901748707939420235724306967957342810690114863894249120000560521709272813439734908878037158784296992741384961754169360294108324658821499065784515171474253835112539417803380305094905696637894263810797094744705427422885648597555379422424501310631488334467408813053156470406232333284701620497558376656494269936857836852768662149770983358641067126768862803721397453055927017477278832434009801621431806515461295241087230147851729349363488905714402650828223543756834491882117718220759840800891850643661685817363797281764421663012538292444147095462852794672005374780079090683346009999035390571105428973300862845855596689534377941720162078555715466389086742721815188887396429519955737533211919147399711228866252927781471026898759945458359165343882267336113298708676352153823282149959187816525574727358002050959452073145033869966954489913733784956912566834906908677238576934573213987734472082636587801708052253047839106851599117694433603092035564792142219858314897622186612340602028241173381881003355889163839319995214642414719233404392106250201597690358410424115883469838806503871814703995759393649981979223375662112194261931255683347232762225269558980111252070198945564047397276296277155294686057368867701998266697496307949551067351456282537586263919667637637151401397388471359084229266430367703606146274869031529676421511485075293921173991726660821849703200599090940766558587714767363565278472214214360398565069420219632895045679494300355426043848963993253145946095958122293518096208373886128199296447385015586261604881828505226780136362078076575630198613697477765870777695524559541349637238533091472874141897469839549075941809843445535035019115590200963431968696265654139536708596431299324411023832435207404333719240619080195847533226061010881943654488290776581950930092004058033981815371575862895105912775269237668904669713111240034689925290448790022998632796889155367593237217865840494298102097359777106418023505886271075214963306707031345005077613983409697183067029623029126552064781590626945738646811512965952863191968297317252117750097432829529445959337377322716470481723851590605651762569289627880209860641838002959000028301404927615484675186397688380130199008481509203544351096663058918386024482519723987343845012438682838488792692448562931115673301192877066450529449020339445308269306112140101959953450781003700663917731985047410018039568892993454055852191047523682338824320117765188237006302145258291374079359165587573504635895900076787155119161395747029423543549393668146359418318296827142882849440759872585147749923293363398020563876780395521428241039121983246626199326118182257015268880118552295330134902987904579286995385432860623829900508972072216352181477947061967124406193763478005081115223990169520347109116821195157266635904244680144854355535758646178967604208448059049732832319829778865862833604968449221469951941551048409794872250580513604982187427621307317174312935341129175048497797224172126125318878965355387704281351977294826616145783004285105019901539476317454341212627682446855444031282194711358608838149308710760318600993277044691298923363231775670839968354597907020858729090799555103190531615849215224474683191207658953256844599466484840700327392741437991637997316505177340119074723231701055912237241770355309413023067034595570426323296834629575509758364611266895053070194841407165394968652655044414703564132974549360288146665450076733183329170591990306352082872382517551306892602844923534530012392343200568519065535522165035573678806306808946098814809032662254143108882969988297222589888083562202239707153136528775130395457855712918677520257468910541863592702749741519751125411488970487908880421049026607435867116588534454759742528448252949509918527576536203849414605349968282068950689474659472228847445834925952070839953809534669551327261695358888087116613913378234625122249250551516309473053202352254202103237896523235322432577384634191679166266138493693240660078790820503992245973464434111532166274023378367364750895969480234721983184675613205558227774809572972014707407140419995712377152028132384539819694659489339977196558695991073507498838717864786857771197325517508707075147697310590902799624918048208432525279065820677909516783852226596036546612951634276497306127525497952295248887319299983082756754446762646371720031948010092675972832367420194048752455781004372027255030776452509938325681905346700251032086525583914402658777087911088121338750629928002742454102118135886287624595344738287021741310723919114326489319368508185864545823091608635465444300129038605203234075299973482554057558557781612293419990894017707911975522245012375202719054142435878610796593485414971165907306703445575504785704993082322703959107298483520774001863069669585082394023599089858206878804201803950265587353568601475872896289360717860005448799407993154702325585058471195288762362597646466462040096019648054190456466645580285153231099312400811124102335821768467109760313136416323654625895180103041900089306395307669083365866831944160748331245847882435500347356900447865760373242470367793011473794929919452153276690793163730471662064065248240842353883200814692782663880571816366736536433809130892323731938675159305079949716494630182073526477439859047893896039067099742899081211329343178831313554912407898670526581531126364402266100451311080385481838061491737121824453665046728351603624260904286302441608611944399627308361867715156631357383039866228962295290989485672262156695523929571537123400861306646283104169066212425820092490186875726526051817564975256610092834421352289868174252415714222367794652648850945580737190476063410253586643333309978417377699439546512424660481568536877684917375047606199244034001518952217583649458890119256030948453061241522921181048145082227290711629990974239238350525630487554253689419537615993336764580242101270691033895221566868135025665781775820019579530158415254544222832943748721020170181797578191236752839065317029138155708999325254691490161711219804458068980379070800212626236282969616124651217479781455961372000150776523902752452894012820048150197524781931675227077651891920226028313364912250569825077969612575889042854566605870916072404457815505204077734283314031769393032146852064357707028966691369846579960385427321001144163242701801177353148132521542063429287772175339815693307852647423099224824510505161724328223585917400369890680204163462490706574470251465833412776543909309644383476566510094494816158683652512886517707819642515302665329162530201855772455865322505208428129346531781087173072573942070530715649159478386070989784969585592154731702107130437191702318735484006786067384445908506671776900518065547581849052594308041342079634574398190648944059435322752520218768470407806889645236150945849662658707940954688088474202715683492736460082286318580085904549383785847530545020634569749373871301103275262693274503310079711185105166864403767601512569796673225802261180430961152096406548084121210620233948420794495979507655932621945501643629441494525955303048633174345414468982940619915745768031597096487234558714627691363277626273100228167477889501943372152700158965056364289560802575505361708856334402089616258838779177473581783045073198343395318776942927621671342599943506383266537522720123917959703290685989695299983991935379119128894436004389617911627972782717403461182408989654568219068283961170259151557776161867966128960926647312008449250832460384454608904940334745942202876111213334814039817942051085055942805931592605026145654406781745827193134140604225489239319192459727674160819562250903972269073463035997596695120237505948760989255791823046357139219341826927593684130168156604689134470942006250513657680657803106591008688236807659019837802719302412709244082259380605716435962573756976616624863874627956441443678299379149044502951733202531678245108623898502995752708408155207134738570970747811502862489390804071568566340136223631862198787647125315553278455419231196679258223790161805070739544533538731233825149434337893177249207085349431204975421268947470791150701576046597335613407630351274806232843212298569538179983150141179657347627172568767326287671131982055263982811308301945118495157789824027907339952205018631525106870177916504185275297649900700509502290336308873074704325968947186318813699173298640293063068700628624945402254941447545567801511250480572872526717880152979613635808828468549337367980177007792490679101452128714922067933053392460113675724051644092820679519425076071807896818548563218736699057467436463704534555040598401804231846494532151149797530977693501366172695861965266424057723873748637057580020178660498350038168078860162216811833993882664389422213834164433619875553696349044208096431435121095788553063855393897929000374284912789729431775114573407205013500746467439010794402651854796200644529114375367197502448135635996991383720267988172181189913850176649892390425913817341164899213750354231668983604635752334985611532314902794157096580280715010108590125068667444138344568575903733324168855112212213963930690614218654167739955303577760402486425736290780639589789426718220968480490026912124442120312056588628487028238374847563747789270837574553268189957788876188169286258631298341709746822271120640347172259766323126714283465529517700584355247527696060994130174939773620310272455056914522170458727182448921768000711969401953975121850396297767922185838126394829611590883115393576850908837170437283951616524812711820136843277816331197648901738346991674294915048701808975536629471512344257538127007923070538606823064578340615164924830446936772841353288678294462085315758372205570160968616439486541767071741205142426063903457930820374190748645152775598136160909519071217439808057745280868178673324473957264626683370864870419656125617893408375050546068072332459408445749552346600212459448312145970308583821079291145626329646037840694509649436119077559019768257771705341079220598331174543027526009943848099066350981094468334367342616516018029805205780720451171184866424338967087922923180995444917641313455250942481603003412400564243193767050434524843539016011907686848372494592739483080865213430786307411671098877797087928315421381280723575652081199739649954604570154548982250525930733683049016512535235491661827055834052907219692124561313488979692071265286805736558454244092587855333886827092745177480906586256407352956207707851848540221500257481126983045591756520961499013144403576232935223900713071790120294958188985989739737210216434609852526129262396258789348108779497857752410260483031718399135088821202090940553244668196703223343470908845840789369230960563517062501802070111161387668986189178106280760245544920480973562363342921675106051063856180011022954959597519008122199953535162989724376722955630788291450470245220404151970119163006472753262719674027478360824148384636602139837735613436616169833078123526467945868833460513892848257466010228293483407602518525803995061431757104576142815907067974359741816244645193416064492969188567829887500086334079472341191345210142923932070286734748844224407693501418761641304999770873105133375051347719398618047054264818805714508330273451593177415005861223369814124424527656592929351674796183421181212903679749274757130480149792650017354542611879398729803937547516959214061032208947592770673963455309431252485192557742845924365453208126812823076635856458683021569118046307509461493979189847579175035292376772724869675410857238296488382691212179790177214339051363165699930623329191743537758314061491434810976278786433604792430196421672196671838337303159139800668869457188789848178322378191548354648489405230541757456966462832237338741776314003083757227545029737427943204042412774621134729695468915738652120549672055088129271562722705467235472113296076546077445381069210561180401898732501778665311593869984306406907751607464332865323471615672160550448817754848030163043322094929429442169438592772008547638542989133278881782952950942348370295477533023866345582655152966595983484650164340348149855783714742667915072269851279484719730519688844908683754574154094951083530993231077781417630918845827705577511585861176922524614808555525337567637352160442207830749121138035077788978487164222550886158792269044555122274023462542404164063277340197691853063669484653678194532959471103302159883290431009590777768024626974031270743480978861385899344794351798172428572013461529425775808431960670687308264643940002512097653590128958417275248096867849009685690664578074034117585995001075210922597004963265184437291007332857094936117732719329219947757022711555474390408593308838375306650050983669554081395791739750144952173725358104104284166035538464298234903400024392249203685219178265399894927896581326087289019396578288245677326823990602947333097582014104467580532073460313971370395532611811570679764245616276239510849057764591182068692824177782858868856405618960335717663384386923997525252788508951048413473171881069362218084767307541494650828016337927466678562922050669719039324411128617687626367421012204774272892076101024735254535594086297194827449963427293719303909120993931595418892430669771998349412138084990400602988650913387739652707646342039173238819329170697183794464992936713368280830684133955335676255969287390187936818979435389356983709673365889173848651365799048815523632936057802411863266810451301699166134546767884197567062823224811332298299972684303321749989391645748384220414261477285561940240183090644536056710195137533496086868832052739484837924953373583472300679006319118009673307587582061959669614737854982391322319156250911528754234079362683863570032262684417203078643558406690990329397600443255648600519059834582151576702957865283899919292302119686215182095155484850751124272360366505733616257756025743240237570853957143721496244073769473857799352874316263626826452998455752989827528323161533054961743175201375945365691403398107026741309589405185851665690761052980970557860723617059332068507104276117964559538033241991762627088311721149313181902210673807449889245977252778369058119758708801721541382308390380600549915904139005310201814436462823077197046438469864999863113694811541391936006217619554061670487976084370624927351473728565412348423611697014912810349003913102587341120027906300932919089465708474109295940507921040539266336137764551395767861027311321451399630030247232770698019530936773558906651522376872842158920291442956581874250236059549634907879880057867520826681991620854028543039896611967161788310413433785554091344893754504495455386940786943006730759200944196150200289472088293705013286569228002332945980904357485983148147695287158183508323873951252828876190805205913295416944640375183944860650063704541094476851034053139817694911888246273051646687570922134339608908861258122822429062356690534465075725640378545231416297194177507120741452431429864124746280103407514172085279108083596417306757026356774883929251554868898047178946966161877286613214488624829710677457025085786502617794163366869369799825091387127940725908844811394887716541480799700390949535677952732484550020535192208249146728224776542111338316965277050078701048092177100988046302645371418588922839848021323074625064791178389326707143665519718399779001959676008138618269790932304477212317203669716159303159903887443771254509508479692696483333245116718300663245793701560222016641584438369304611080737490192548421201207846782089601194641360650950473966978965511573824342189853912905910919652008950915173228253757753588171765894615361867186587669218135619643286938036725238907605659948318934683681819214690468522431928330532138070922564445998804971313454273246525756384706317693714317058251687397878503145368184233574281991095132227193348880503167632099023097308219658683141974124729848080912287299141326380482399702668104967810614849248386553187665469461035276332744251603918734345058868493111280471153818541806600436716144535287496146735440286657146663852839664470013694297256374936499368097291806373581428101015659949792761593697845530295109141845475441169975719640348155419704312438485807048681255813749040210352800920414822517132654044000369119334978026977127185147668106267201538986890401625762831155323896635037828525823407072701507289215348561441863356534232404416497065714614501134215566789765959121929779022157348836065594577679412599153299620366614574633452561156843570767550634306152312348377507834643294875024133356161492919461195575892964975905778250357603985054369246233860399520005983729215656374371453153278903928042239448075008606341835259550786011350864720876859964108526881285082609686942850698707968799629631081816274452867384124667030632460654284788173447061247948031676652569124147774625908792978819367903252122646245029848195694659779379455840427704984683521470215038166696979253366430587149644952770160406243723167204213353791013512347045744807136870478308001970249266848616596406358094490875294751178534920246526521309602868178857498480212951161653808049024797067357134040098875283866009937217516373193715764344318246954060796939821725604782002468606032801982947774665098878756158993263440724670650294309655034789867309172311906121723522389542299659777015747172745525121896626865723666753574171977495840532683547320041753973170190171063266641332058889571987969623486175565171307719626510453848112866201231822940942538193531843433194066418450937192499759479349682165139139791610324946123566074621945138628718891338590681063140741580775073391145578600206599620966514782945999787172068239343228906105916145321090981876835614709141176916912672809713712633884536581168594168955331263282728022104246169080373409143032962488738088293851257209805947062070557497438938627921553669478917963999347226680368804358092995345430009051292851637262220116379534604177894367638940721714572672032680246220601202639916440462447904337435695506942138681934802441242809258734239566160296786206316108323936259652639669159816761167709489797975346109069366818348253093762085550627671540649390354287484569134771356534684036121688120781925532933681789334206042469937877925640401544073166696506071604440369362148604365628324206044184874126010086672866127294486554327733535676086495012381471248848426407141261622864449573359859172446768122483632646150695647042672768559242938260249185299069374802034773557462990589770236272209798286003405505271262565356831413416831844886431956942711177049524234029493821482570878669957751319276304370426689969672235942268765725046825130713458331964041566905603097912162098142226625348006742867925300695968425629184066663052036484014651303755396274023433313619709069166492123817484745185253672125582287961867310122330986144724189112451843333896887987339032179817091327854833171420540829882266714598252274331153611062657569711105773718706127698029989004678191520564308220244926478057698793094058964430866829558703678233410283802758892765565046673858859791437445275238186927940704227805793696557022141410662918442871928554481830012755615312621296492199715964657961008926825006304450376130143361672171795021516745388163976967489622300866265948235317430858658184717042164803508069183033839364795488087890805620141297568680290103556782181114675181156968076866802525032604176258113652464584731147948863931626169696618729938801525521643685214858052020406050316669499151223783109365697171714505480078710856911856299879289824667819461832412686204443506169971489957395863027415945036453707440024537555800622229693450487664047613218846760852411075703239006319108267148504963823981784841842132796238537892917312190912367595503128570027022127505725690141242821423819062605655210534939896936186432890225726858212371505014288511292988426369512279646248969031015369113483264507644244714425131988145749994176701197786713043449062712145494621048626071621867726581103455951123888324122768195990884087274340551162638359891567077193736077438491920297490746175885201288823846789411593000175672993304327080042471682950305097033330006845568117391515325361134666423328057512246990044086077715400936980357816821127589960236349737420984008130902038120441147293725082674005222716402281214787449413597590648454949240513550532663143142139559919147451754615712145290434262501776671621873692012000161975383122327538634842923075315513896910031284453790678025743383123502486421429693688099365815660198132184565572506306105379776495854803783453405561446502145262768743672412513947491419900947813869757347413588935516170541246110468357335236624679642318091272654327229088943575496414183062559931754950217566623169039830182301494419681023659015917932048091698241016267285450806282132860828541640181433065906400420087170741628898193229556816562423554721662264286832229293557664911440869750496843419042150870261529995386008648520641711691646719713040555488514700558756029967497987823126536644884151402581535629779786326890632453505580480100190008130289756702193881348637152015327318339393703503612236340134583210009071150355734273466974903658886902128444200341927964021593341422989032762588962505467158170343727567347437562722913491019955671358033144734437760817534993893453510447000638893916683773746892956341458437668977696922324457570577068604850052948454036860017184489111339280395119008531896472480943748436482795828898551960213203342730465360340017488463403582973628130311304147035921767559957212470962803817606042592059279279510902127187633202064955083733766842655387563624232504250665960607873449538374627503770547740127545870600891229921711792595034946386934773305919524013308175451979195576676571709862550463990037869694107624088775790238945118380323231598331639148008079915953622750804281963680407745219058423945657022489335200489071681249182090674067050824489602589129516874668289579944659922209082274475499579936180669988033000938914938980147300598609478606203884434001753639109145148859148216628382246749941391900582491962773694515627676837341266035238407634127291210982167531586055698381219559677203318744922792653385993475030555149600813905026555528589832434222684504153043834512944796203419186403099143219961875815852724030599672885106417759082498144566166531413196480772717166641812178431644386509034929986745419436631327365214298453553646971965643254181853562755181571087769934042377172637990387304529730946017951767815043304307513779633045448226484558746213693995348725029500695565305320039512692143751408730591418124707857877735553625011552042921914976955652888227773381030181635792255397632169469422904229085598675945166913692685724412035299165955915913741032715839200905837065122531541791647042662354117525887876235135987889002872929964936081372255935926126731966731824794837858397704085392153498729822158925842139897557757679194464621077147253078986206185803782028271663305863202021607494776153731798347620723621656389818999444461714299297546838528337505133151533754449320709929336459242024041971653912147714588170529099268186978643515908166351584582166407702389610854277001410277285382828909285770605341393108382351052579824098744096438842187497449789025026981302454031556903248127551412710921558980410677678167302726077851984616138512726048875620450933100409216538020181399250254917802529522664057403081609146249519937499607607628012962523953700312853110503840483113088084205782633060626063872455456347117274102108901403662635759803209736922865573515522904603890259451826472197718116917501536997206754514442044162521208790811285268869762038085068688053872712364995965567308548333422982597818545887917387779610459627921337735674613618313803577264135433764875462410662260855238199555321951222815188779860041224126225374913245033362630026042858406836538829882814281207814393420286803649177763247170196416561945857958627165934678632405253600309099956824875178214911463433850464078230801281907185877239688212417462000629191540958328866422193418663125348426161146382594425114863277582463174305109363796446284129143133965095150066604693824813866271090302644572918474632675921765791823713145917439114051929211187656606446545940862807838165650113009700179226926728833268126963993503693940622885627012070369768412353139248463195173671982671131111707447087756325138719515499561681761934427685372773090477874686300880822069919099906103832496022888223118978401469953206810138907611916930797401958026330643347308908430834136565129020113724186713280917972392239505276894009513653018229541180836136126376656773423035297642248427406915709389282304893183631285715523675224593902287883645572995704806895281642532823564418838502025141388888699506077009280466361399803069246553453206370364538452132625317604627491181199181534283725263633171795825926235367355228496184836301887110675740167850133660322256123500439945596578050449037340459565855937485155801068197943610676933105886060967607045510534959659964482474479896356146061808972528526867102873328571222764995190709671666805259057328421526991900122375806703500617144774737852501182836788974876678442829881045491297348961066683333860312027727934751729451058691384304586996436974196193799660511571273075459817984084712535969157357510195951849176985588804582596769615514724822487458081723702203020514208212938139027105656347904095547303803559101639856185461488315299840250440957280191297195583717261289890325959074828320483823355547620481414944902018051080932979009897492491645175378271039746189317416103149936157796007526378994279439433620567147234959360092934389582656780688726933444983572536563247296284131505541911150281307880378350614522584342581814540187206472822715348068067426910583062544946358709462927246720408684428545465584426785195165364167649593379493179637332867004147948883457226848453831554865087679239973650054653772826792166946378679297995054980042637452304469647151312010711366214452207376446572244204085208301120480276520340059287217513325525933217469994974677769277129279019040510249878648056879586299780904442262340093943700325705956905733884525007870132083711765854967199901346121982830767536743911735042698873067549846222651814647262111190403473839604480332701799366987785545162747165645797799333360285225028740427282251722554018488053280070835593689649817322656175770910948677403895338638355063878429961399906000428552930255857328582160988649371311645233646730195572510521566531959147615838405465673048902672769421932213196789242909620718998923940222248674506558824422749117455969943462954242417486663480747693203156641786581162907902962000152294995488882139486127520960864718954115727299630844087725314555973714978289668093507360924168490745633423593459769261941720604601251584892061989085309622009675067812840796957732130840151029835396276770451695665886165289915520788102066211887749798534122539929530223346723697249450123728394409071217306791128159563496139908515186709639316932114321286019602715517943936293488221133192501845430263017067651399812996492128027420646143284769891853445702429378761372569220531974833425008437561400398114649097966694964094453698958279583256325550028844556906555259253811391678143826161600535093372819445552618924357277561571075968806617969534000894453220196760818415682247954694040951370278658881700994763683981807105199712357187011055882347470896003001952775934822349670887762934040114784797427165692737174842509947821810759254237091487847314713675357926171691222281827103301087841741218121462640073465404248085087167705688734030480270842400192884110985831602133693433103188027139094270411087243806943607386714552278659518938919594955255584088997013185541237989135002543230620874193545507283340762552345452066185305061294381372206682228472551935977219232498412646155138296009135603577477819911106090604577397725323627114778564493384734981103025242241657625714505222801918048516911517805744010288960188587297526191228372544271369878908594635346352523397264995084497455325265132021547977535378587263265897332808226567372759366430091903849857797209907209633732275723529995172063204009658314184637105698892216738389948751584910476889927728324843893810011660919263036365995499872522814924356139156101409108176818014024685674392358482438543152844083138151249073617333820931806815674991770082012285529089738906325669545794405151668441091296791770219554265134684770754567394605403259033773997702022396088629169667167227542916721168815738251542295708690389063340925204701720040314809605829366903947231777475430639146473948388946149936350706912600410790607372593411230963819583058589734480945673576384282324646726143255131510799429281722075625785213830193128117615182110239168219301117541999038439073750603818878719831131097296044128717522441171931206868721997063192252303426317752045861821942987691545322728696969765845344521080248183653666854944619107893730117427723958341205002611532087031109175733720475669691600148415297104067368372518272889154958963170924515034060779318089145196267452583252821066001996931669607652843752097531052965071949705973434710923446801454477206560218162075496658782344716344814736907882718601410943333404144308865094934558697918715409528171913472699004095646137109254594095794239915958322216801901842552481610919170555320962107068209579859040580689843229338838163407674639081595462251167868690571132322716866228390879018108106184281592273635277274708666593518774633832977752242515306807917309981130174859816679388155757261774473079458859989971057457820978379433630759078796760011090490618669936066744458892002319042575916897824787310708075197668627791365541764215105379118217813903117049592064271168101676453940146731373531632965848909970634039163629588754666792787389407018063018619627532981771149311029363285546429095694042812814276069960401659596775922159003632135875057208188532382875447846673098815534271816762277606097062336132694947974347790982251826692291330464374704414024525181465123265986476386329032538424340474427006945013186876290038179530749448104913469857630141704076512867834969494022823174186579514076042365073374160040414671076486743073163024356342485422013540597296351379167750644306972667269026094743753912249726896860977997968202846841330878896875544564855982212645122180352932343801522990588574717382654277592851821347464145832524094598871576423335464699960564327778173468288622667023925304941240011916070528598878268107754304686651967891130647335915226327798655515124155084313051962416640397593564059918709736424174274726434641212441222919936243831470645322857433856685855528194589744306013561483938144596373704583189299866732694937645021151895572368895763300288335345733366443608508148491070703496116101954463710266142868895359039581032415053197991874165202669157703709863410366718048303892339558574542221293112685491516610431997779229443901475504374897752402040812209251723120679998003418831317834116579492639334781606599854536465342245357809466485367282873867130646883323337026396222779068261795152070022388259847809580989195962983127958533287083029098955129009812446767575710724000575056291877855540636207691000858834194195745104419109694706869758253284439736565130731440478174371584888680760008379498409238533538210796762552402853335474648789329838291258776075183793805592306148658167245419680933838566452224337190828893344381016022300015137320725827300239228624014902614226751249838159966315937221901089287461820821192108540113504185433032208484041272329875504922093535841617810774246937317024702748169752566994632794028027562840820295985939520779638091268091036451361372175250593008089004891475299375286119939522777259949285122071876804446043293891389037230993268712145915357613761533256178687643211104098477475480690737566619034241542764983152487901354883809754315612928623286816221548402123936402002628105124377647802811138548606569441140770353728359699562238662944241824255811408598813078780082194655931621598321305268928969787706457409151272170654779924071890384616920663608062744654765316159182777441986395607503619666835327076177605498671083052010411928817185515913861169772212571021755172138092194490725141141519370792765421989907958267407716916769086652307627725784908883234351314901886804761698868555590249895096417506867501426113200372445590041552025300377210408076713570097668601831447949115039397572298252888090169261896062380424035609895609966247546830094615376763945474119947763040795807263258985273585810725882478474306673468979515414874759339272817829290175730162230368963219515616608835908445332958628176006188150067324380725378812459030043318628328032001818966732188257823103641781705299009182957321284818282210632893572097622362231623932920805652775823726273081967921500166540796369679190662605334269283908951089142040306864783549559550141685307776767647694506555647443336113551683789390059238498703633763751891260117481318448911592001843906468467477361692407555485291577472720711427588446057921202888152598114063832363821716332148358951657087461617741692126041146292966039849920749695365371749687462387250203893337241646629151431391860828186247041987482893264629921091191978162065227995732355576090722776517820404659186934470991335632532244341053235556973577816049463589554891839903863641789396206836425102061840586883781117722394048273881748270476852846522534790421129344437950743847190884280669543189077899886900109494285302560157823075408805259366458642384876323732960560489200756387424451999724105634372139164232099388431390186942334183231076498293463196224733029666624895253529680523380121544336254193326292115025945144719853527671931178572660079083537956467023568174380229563047966634036387719239656989687474525502310216398191244984084132120886183356229439642094190069865159126260318572634346774583586541218222271529891240325195735700326040474162778157789809190237858759852832855258312217100626796351271798569086917622542678993645633100027024913337051428802441416088817148991821378748116076211143335850823844750410257259747267674938744954716636400692311135736276904105051172426113941895839316735915815236730583834902391443141352432208498494233313569192769341373326474466618359559695157030611524165910760238405374983075715563104957262194994248340630394087458233455637909041597928059104099444953072468945204702042966159113794398928781746431210229723856665764202619835956423334043248135791913372826659541480706208790732963856077919992497572757318547224640047360070499370633873485629679392399993088119524816553250087852040315718600221317747785749472267833890117452836312549114291259308430034901024947928328040877709952427032877749507166996427174496784583691679355358542388198822028790169675358245510442176101676765492325473276864488701282931429479138672848857164505680749936136824291662741893252296143038471473951973486819134148146916919588338174203024099595449235842201258712615882331516064856775783773070429876985338240940126495618751757064076854455856396988473205424861190345784098963739839259262829082348526610015432447055392496808467370171422202737214360736134400526379252929490051076681851215865126596828264770141173530858769859930097536044629574313936744968461959674872342379576881492285904513507661608425676902576712084145098746032072456876098511441972748892836670098199118407871210893126830746216387108443966960666905591745858539343098018503571248736541936836477700393078807081652173202135283090078247020537989802011931911342280876170933304502265630979796056396366181674657346076253805820332527616445663893516881566524208870620944179065162860609002125046924697515061026606491131090843613724594436185971746966779482354233216595395085734687975911299486500129701698551710860037131051057863987124630508585646589258964353425929141925919102618458086897823743057594224231313512422441688095117312417733726756233865273550724005683929991174870713440654165712418538045515496531963933017009939212247970290795995019523376321912296916738057546804383594805052470735158330485534626387098251021655208122595760149576697009318476428207899772472166025175493866522716285962801603223771738762644354717109358552045653901262297879232544417626861679689696429753865880618825227217981381095794645650291829395752273911159705485966544196518890279137969845066272119397086066450672872765568839570374297171280904234340003598543632199214792545624698726787039663590782662569807216832908543140936792402958508011493775403681154529901034505469248601350993577943894644192907818953658571336968666486779194674584742143271508940395292842159483488413476690847317494072324441379919480149105580894693237468986510794443264256956998352751019166936728146420091455357190990620618896293480549811955103216007424496260374820667328845871305317628957095999414376749602166540948485598271944755297064731267702977840421061463657733836950800684806342822631503296388089019980325089151733028579393252827134336380551597450531659279622801375289194077866521469148882737174211905384626899397658842259655889510507526349771155099804102984810788148971202486579238737064742031652836581714976317933840794867639533103581646501477691417459532856658347388518092037631344469433351835971259651079344072262852255827916250506213252820846239277245638567904160386292917427458707901626580313639284057106949729848783835522629425291622653406912053778325969036850111060310744401542603297420108947408125454090547377147332528382357112496738151518438991739461378667738328855848573120984330210990466193396064267483178174937645477218741120127915215618385932176529464618406409311321174564215133553353983161693216987083750347371021529557127083271674984222421197290558784791688595710108253291205660331038992379730714564814360283077256117547948619008293519446754621446940655118327307322842981679943798480578818995489873871198244603911070997780056936168349894687014241233553915160886031609413089489802949180978614566674989202311361664603058058617349822403161693797576890574161900771509018447886483768525028651035513349218757789156111578926377912649437140312152575666184271281113073460015105049455309530713945699251742262078537766322564524133664994151132239152801806099923137847874402028781555639233846843257806922650367182273459786260352744633319221533304883920299153897070262108366716166400391043471240713165045591564329130172706298309046048135711452330827475400721325688686367100490501342760018491257537989656942639954900560989552279118164864708868164124782131192851828709171942395286574764663089635180268837867357145144025523437937243929710003412883468289867403282230628234106202398162186717819676419620253745078283416822682877624691446604028417366783262680798463601002146377585033255212147781208350793906297176074463729308810782758060436990706183589240051075776638415667964572932580176188104192568056138176365113321902789275362862467798748933449057500017769429058133407450441723707860990544525328844937238594554964184812273731195152608587976096597945345730113371458965295011276551969541222316612693181677531318560583458722364747244854444783549227315842241098692314526845214443728259165356974806215012614673511901946337257904694679730018357274207091052767726233386846996278417386182239383408188182504542625919165701562313166424743118011240770934388236905899125483228219889827710434092268995540321015792779474842671700566982023472732421662743979607255618577238615291488039976875367713785622062192775681430882847245603492771057164794358805766630090192624677512591541788403060977853079303443231486353010150620785774976647822657559267012270719283290476832583484830328753319620019549440943023533870784956568473840545386302018072693478603561461916917725178420690551036052708708587245912817708926582088779575148975746503740981849993406365397676636687063863230588556410236806651236112934510644027491572796756806408650738582858169066516845512173284821412158693307742242572757446372518224406993428479317705049679456252647528053772377948468927980409051964412796886492055056869260303242008330308905782127217330647596386647618512308944756019278172071029615107494523787492733051573309585615549646277666558595462581685820149123300080446281169398218505679706981124702242758746280495997788856686595726316891418397012958187978329173690647443465144776552277162571490098980854137619077445599635010358210966998355333705673747559161535773302560487832758859883606251850568543559904139590680754838211931529181019700747838727973207783002765998290801189204105232104624161425471280356000436951150392190600232802898338776168614585917010903303205271451631050627128666644200997252691704191137357278820650872200067137231883538565714157071406687883114297733219515759679727844813661204171876768159132503514712369847549742707596316740036576741798921031005450574205559363860732097253576562862546460865798395119530828661676628758876748699699771424336752655623874219443717314030937011062861452521290009903835574904892813547623605305698784477194498997864199169246748739955021802300585724253492158841796684261488081049189056840272909659171356841120549495904287514378979956852475308549993948762226125172013528081541403767357485840804555352604386707666736178973199590789646312296095669050910784311118065733489281153827877137318022609313300944542824979855152911870037549699459420034484975095219935062175070143626009193979888703326039552273267528521192553850190109248989980428256902030254929794313649751223044265697257632914053646321794904782361334262583488032531645227095192749811428864215704771826679960252942981941789545785481886244436295961418058237353071010512062036949859236312840495452478076397833461244259574433654479434851413691719558655372125880682958942769780795853268612181206587067012332517153373942129438235018418699552341444911507847343986852960289669582126769631906221719891366150401474576677508259314547400744717870933506486995559308521405037651872721578195129988460802473475587266001863959038583481192660732541210072312832385395980382451073836902929501731796884392902645235875773047501003060831943670552872331747105637281668870256076471924834862874833153978614875361109894078772961591620757091943228449248458992265795388655878893016909529042516394302454353168290296518098687481385342607240219596280832697904572989941952287760489571401667075363616903383092114958582860418378329740390614444197886026447664228271328723705419673142129130171393152162068495223000990274358971616415454260508524687497195834027170229627408886116562532864200683315700452825887323736643528252583011066358559276589374273569157983871541099047949072769468072247584429170997552336668665488891777107864230299908327229063985647416548837256134357116144429725261186481331591272303498537146355762617519711139012841359084174568442169223618139735258395039442659852354979212531969281065664254593900323066398821026784081467186772493508104533422713287594730691084763771008257986456768824138027353490841568854213641875262405289237511458844748979628487315157849645902268361055977247396128418277027934034503715384527572336008230326725188446449600640475624153674788406112076071023117537658584569617004435419959355084660480001556255590936492005416637238226492847490354120884860545876212751361641311938931522245745681565245689287034725972265395220410656997653279034454496917901645401593778194904225632685377769292932550082659923444063569729954714664717333876285610093955034529773039349691610746594575059275290394424947593420485685862706580563707615270231497660741110990846654726702383598601901971712933286464904118178899370589037277014287820011148739839946746268647636899663267339427134710562281568966160202316615694446257340337679650823409625991147843678250063884659590928527568400134483468464499949700516832460421118691405527513148313264740785513840404543866582058049397633263554775345130360687334364765510198003030513325831009358257043206918059798436968961018175293534293200442929133275421092370277458268703467219949087788412936563547867418216568825912401770557243595259218720853329200997177570709659467636331966424944954365566937261037907388253918596429307894024711109601635451305868188682215478433742858337491812855974402892423807998905324334877037738856262784085810207499972970096342986077133413479662303821706313243126090406590465743645413253742528375804785717035328111115790165405567608381034728974154446453481833176069731158455231743420405441991276045252125081557521969198453248876268822793201489564322537331392357240908631142287599423823616885948150901780568134883985339492114290331931121182851606324779332617057307351367228282246420425445260312797946087546853011476273364585009938810759230350729015902944474809392057464165788663634949164299199883878573569325116867797216707082350106505111107041106163702505566082007780747094542505532933377271289315825787019638629348960549045605735992740970680313767228059385470018622018642961690538519856764889979167383983009233439830118792828088129168711032460565311539585646361814818115720030256804284074310403338238242928529063184455567666427983393951589262262336469261917355202547195025475032236349425692167377421177711913244987163164430917667364035041706999492185915486512088577550726964658349604445480385041361323504495964654778319310855781642009482472668955792208364105775315238298162824588233252561190597300166808270035145795869852982471072669234652529720249814044393357777345817913666431933753471354668734946294022519698126470470355527908649003416951946999678818761898258994556270132168560447793601234189577373092355965552289202325113406379700229118309823632184460514031983539712171126574526856592722114547810362337724954942915864079654382050514358133900539220679616854803831964241004805774759631295720789957636726543884883929970496472867516475440952685332940663919258252891462517686875228249505409770093751192338609024205942261992246994583872547871820285748730001784427004566459328270745395018759469187273357672969999767581780753748236147173319659974598020637079047741352471532497894314489003946169595344143077504080217038128033977583276023055519183290977561503212563980363867106714792115332970599098311754748700167850800540368288233866329460854284116516750568585784709367475293858764802690349879051395784919656522070542648132999218628742540117758457576761879613582405652335241924062939921726902175810112435962196417813288940627665429707161111696628873365335382245951795590256286054147027437641829249311951293311052420792328966457766814114623096149464741129729461277561212777150359203090485223101783650811692457261650157372259401307173127442335889889559299957366835891128908176616459513352986924324602726014736187555604064649031888510821017241140686124560571136801301510318777821259467938460477339432165466409988021327432488924415816680681812167187693681664964769822440556527600111352259220813923537462292885026718402466486520537753440837523348556753718601225126276345047370921943622120911564346261210153750546097302347842405573032865153077601509900921638366796767855155963330817856434863778504985436873880049392654887988768988627613804494683559641717066183497789573246982599314219290438395253071545672542231469608398692476354790620757507892795870256394605657588840016357147916467691400842607943061303533699097898034107129155426170831427474125915560485794790405342246684781148071717769109822042615725789383171608142858892731409159382128885370872861400519076745257193256424853980021287838763720084982898343283355857404805784743458091858324913400372259647366260316815793712017997009352369008643138388507853222730576328244460240214319546615534812817277996240800340734244837399883042052898222401017901917645322375140168225113614362064113709450439201646389389967158518231246681142208366115869832165046274562120717599416050124214918736779300862681877328666808305628085389880239679922098747815646218185911692674459357700751670625618660431568095598863025269009881841980825284145590894885368817811431588974130257475073710249367672891952510015104105805994451471609214325453544498608336047494992482027399749144653809247945871497084059148169408595187945884528658358025956419844064822629932465222758681741635023230137866597706086307685947146158081407329920578416450126058094671928420272378894722737368600262054598787192392415518558185487896948694174676367942684045405730123739715028735751165155227716636771186494561245189354254806040047395513436478024724141041403526623988813503827442272387988007520604622884685100216841191152583762870269749393085589047027789847615176503957870246680189715394084560696963906676569450287524257245475931811775584366630348781609099419002474185264758374540096011752882078859392584079501010731091102146051777452951094602666126273923483768150138705315469721359655714380207678545746251234742953559251035185182522654014598589151165217619651726771721703273015030041381308309878604960313287071665497462424898692476978354165330782012311990168442763528945500921671740675700592371183786865389502214338932912160230144128491810755838114419916104217846955609449026191942890719200846262539586453584091646279789444814074661257226662734955324056748742090551417215422175660670059834590374446540728318968945408238990289204101156501979275728756435393326330275811052661695071245538724921843072383487010661037711143671134847864458561505203311269363627109588355295002775406794708632003570443622111913978180308168820201019446805621726558758573565690559250982145109713765459127484128967513833239837064918697040570862288042594488409828042646042895639499172777452705677999424639623151681421954478665744606989841191038828899618246321331080961214795534094922730709316098236297843357334380154578898337102998550476130842602021154086302455402880007507582005933787751944940651952089428535992585092886256859302813606654534382311268019698409971102907827346708405710567277287059675479568410229233565644220378481524182413013203417352066041018697458824412524010085609186271393611235638845004395152442975476583112999090411740109938149766545717933967530175668949848814695150992123242733608470776408399101632656056872392761965328433007122661886626084702626060400256310143450919393647622607393477136622554712734687694886932988815416936988118257261445489099027958903870268371278955068589608920787656207855936356317357754217496556775916725259969774886418665277389421809823760004026294632581464080169912203512393277130266233104717263716391741874538274352474172479551547177073159307569434007111933891472473866499207326411276536481193376588768363792648900024760734083931589839047638879808560227951870696472480262570328736031051332100973034568165883007117468307830382887734206989061160100105678164503316901504256364697594901425215042884155937006695954324975405271218209291347893341322705426789067766925041496407274971045545196063026454130857221227987473088409906994525032871696186476443693715626562417461239407996302112223968242381133777486707794212485937104999394848293022616162770053660667931492991490545529136860066626398672147871187382738883471887028978282820642553548379256202024609008112980706400605961060515155438331228292802663494304362290259131531571613553162272409932442629842604849040462620719050874821225419829769165015855490481885646283650391425293340131031439416123192726762063925091088628350522311362161751920719075402097823666271567347102714740384681333056355818418573198787606361906127808554140037915890185501625882127790424993138308853571016646547201665889860570509366537740864484546087016073925819884938108101062914406318298786597471842756382387076545454602651943424625102855890438613151463996609279325203485257768787237000894745346224008858850317437900712422939448200625176958821582167816643608950790762863582685423516618092728006731653016085432505001080676949621455282888767187042486574742421573959337758642602566348565527365622735441549526252726523326351036770928228367075245615486906664739985003658797372717620382108895707115529232710820530387609449647106352907556847873010379546179232871634828432250589439420874329787624373195373611217859023408609649075646192650622869416400212296597685281532172686446151762620902610220909289596388188306875934713862560591099174719960999311775568540056028217705736478427186978999422816670748107246363870062533694757008559968169660031866071864851943930273670673791279245051331921533301334594981206180639348242482940192741713690912818639892275210348070471303210537875057253400866341085001372143118300049228594742700553017939895155138886401030789209094303956251710045759172846675678661370940259743422586220180971054870548521745638103492009227994319011826065819000289324275928872216017047977853071934002696013476962219750690331359855585384152430113111989223451284848991981416687103178934236858203866886224738420118703446505713398758881433651877246843834238687998170867038855169490826414206919224369388506785837941287190450367113001865357445575422468914086813424456267596691060605720535213212140788594227848135155974481400348744079290108057841009262490950392472835948551510139644428221647038044633937125620759080007469237264507487412886322867274138707514704356878415703486268908695596477979241656946314326354017341787326108026592587157077678004301658787332842434828719657709178317097114865324322846198482355789391678243208053923349108530801871481016655436208286706036864888544518344467442829419239871463910529340153357826615251259451652954193955936687212037314342423718581180127814458972128963901169788820687067160177891834516069512843643638747455809360182035710819811607051183780041404743242046078807872505783034561055311893275340455176538569367456520821853244790915262920348906940583555094754338299903230499400240962292803147994308690775269611056800942141803017475027978570320601546556147431588654941363790855912159548051323654368768152424586766829476945638361870835140326794437536963589468871612547407840201045427507866046882065440020522517629588358356724529584001809106749835938399472674619136889883255174115585673171341334189624115819117465531474495693662324707858748325262745782323403173455810543201496960842748344809681919431250002430151642079975954273748009987079588764399125320627202681836038637054303521496625593996173135940817936455596645751518373576701071955879399515996251359235677539255787711497955466010798811620353229797898223610907287760897829208576250494389105995825624711222381839502575563320551143285617153070459271165131971392693381601666963020993788051412068073217813363371545159210607026487171774997547525657576835437800020535778298325413427239236635582323652262399972143389470902732503019703466903005764484082498193935471747797026381802718093902310947768208842165241047232669247235522686921079400515403058126997314289215187122449580947014114801815737683900171360162584945459577461693146670895417458618783612438444806651254810800340472493768738392830928118663775239077098862699718335486541005878729534129712652740354731483086130471372983810757213849389960284397120653443553819581177622504433650102327857446565060979588376246289272110830237976934016191709609827049867665662913264689582778902231212294273800129554292603112468602016036617433510806882792652182052542377797800107329224492693026413206338297031179958368277157137515498326826379876072792563602945901854511490238736439772311003318482766803918745940254466102546923719554103803378527441353091615960838332915856783837877246631974511067839166271463621098469138481566015466790426532766304055469501515625535798371655996233554541880707883824488214690524104091535159982865189012899156039738354601606719821743729068125397193168104146851976112811024401146531937174065051402048128772134628288394683950107301110773262702461072225468924547967152927759470065751872275329332651681648972490196911491664894270048421330399709143767996342552853005512735507899303619117451912536210006519572499632158634998674006871551674067916470495787232997136384305361349645502759469155641397872050858182124370010700149588015564314316517884924403809859726376726054355671703326984064430381048277392864755461008013404393132421410667613729824876524645694186616278519314292119400290206856752966274310828506016961657735845128505040120902714191136782623233954661250171313163229906394788190491034163366251788664613871941383435547833227665374163002239552603428990999008159402411762622635119361938421099463289020566070893683761384227578446983461156626750735230321929619197358293637894032386756716092026837715337273081035121012015825875186300924207181253903664688561742615441494750479136569389751198825958035778401763514513952405070214163571052042937502392499953000722255906908752904693250792781271745525434125594596583559570547184139837161395841247494363706413958738727004448067022208435333822087914336201144348556346268980554382601430013611857524682292263956415679360746296384589987244186451359748669040061203644977348322002776430544575779886157102854173561055008382099966445135130639774417941653915076480331685370369137253945550481385607962016227512246294929554598607362151903224165936141845344076562971646166280188081252295839819230621446836477689569312123550149475162378780540266937025485384573322188169178405704404957517995551447287329403472559228445234493542211099969353416788660446420629944762045349535917691886510295325898601935061746342749304795051562296102416263181348782631883697202112495786364691043172024493816033061896061836727583689996548276864292656843487532886731955403982649881166485497520775553783916492017901776124637797711379284299699957677912326181615917981110271218757599653232940739049089881788008064916011296609968175043098683059864994502148745717551768957363407507048472516517310862811733324600604920123517089728337034029690271169683837457172928204045961977296660246392267317934644832110922373790118168357926588139257617114504214177601264714167110896938982490999749194140259119257746995297816722959406609430446061050236363772590932585960657350865666334947968469564523863000715053657555594287704410364756962333832825930017796206798286849358754884241522502940205375401135216233561399877161163062806388789926370813395954464330818305321334148972278448457684383552073549573777202379063009437189992267681818066898507373780370335575104761596630133805589828880897773399684136654093632426034718965271610679453049993176062525653125180915742336129309514148396603782072429896236711294005862011447340885174479076286457534159523282430975101369215674892045870509484169257182370325083515252026763503959489632932617491129861609480460827996900545365115359570471000443183452061664678122225776416880274869782210652819855424346085034603170951301017089151615689933355675309238738318150476428690487277915880745722220180919926523390110013555521865354601803797006471287181234161057447634759129842420790008477477818394791002137307955517528577801737859863297496105415897165383450952751856302776121846075865696693752182861610030775008829773764892243108737669829014348088402442239460154035627837521281956418656984022334680470169397879891280712685236968946253189879099302199706599755195543663985851319359221007857181762899343408937218591660307437424949675951430411306360726857600773827790024274663395083060595808458880962574326890055104856946855822869878992683858874868625831530634378271822309743528220451619928417184013485418131733587322906688973040278706340715221924258441310810097574340311414200201700868228698378921190412898237665395834501036562834067770638161407045006765756953939659958041113315559388627541312207566008202058188818654809489508984295308139575450056989253416991887668371975781211473608514279925445817216992045256283444622245176462836255870032744333001754262099174615886932479547164767161405212401925897437501552433778906450903848442042848008406757371858055054228783908775775016764484253913196201380355384142967630367257589510053965835692221867370223383682864707992297862462228700801352467821727709299130611462831214087482374332634032780952256826235236251980627274327780920162410612340338339067413024055482333227937442134940545252633076021464223499144466086203216053390335843716379853046864081551814650427150948230569752078430149886453924927485838044388203953786358352215448692734581730150731642094739121669771264809461080945229656772923741694081741197269640224828387706765864303423065728224452446139995901398321728726435335026062736876167916323466221935430965383999053657430621009942706088764952249123336065909317109314996038020578850146649049410513369322569862149389485765063307080211794664240397701344701511727642685385242577892013812702722460902814586160612453408247502215963085025692182912839097865220175750152243450568290754479398797592828850650629374032523203901736580766723722263174266260377600956757858437628801198930219844082263201037224015537667984578871586912737169913683183743587081734416866669194264321118992535032600550685061872350902911245460323818804169417718644299463215729461873578038261096914133551058334377058186086472424168068653907921599009736472287755298423088673092161925313812326508672022011949560803457272579353962011447590032179530104088650362139186665847886514400382571030378347745934309242444843086209774173204859774327265514058384363177103930046035269592882732373890556867836987199779963159742685784117761197824737176752795349110642608739606174974218598356470657536975710003250114069608023531430804282193299231022923855486160658526682146339646710264845418180016901513288193398797972786837758476339583646458080766067683235288928954828770656039254499520468490997343475696058373104251762018864856843368619128673992241751035040595549867081874575969767717389834630948889494467249486679577588940777270810159864314673930203841984067147946543024703420967887442768770831270923205212102883113104778978383900220666328841542855893206028800741053154982662415988741970532548333177995094094719759546959201418953646477710025812535841054250120131680880862019852736945500425080465171912727960586423587812664866501501459165869619884208770721163339656182651274582349100917863604366664879006577976055994666070413693542732917300969279997312139492499074971088681088542435877793618453179620180177054028156491967391289616881313382833667334941094711259923541401764579122145169691292211931016287798698125635781308627873354535726999078686553919280750212450260006500515714299316250690243643618221116662359121064494802940321042197537523742718765316882779947713309438805439184232299249691444283592264988257784814922635504172286440858061599008177667577706370567436347767019049332687640776297427288816721516741699824589176234895932290417421877347796392405643901185129847723835001142628687716022851119873281644224763484352998290698268587485724272657211221349299248006744182031350476010837793605120364538496700573385954932237278398971923730309467503067571030178758406080074800340641267549940303683451595632140159697390734436200019511735175669918278926371476352811640764825256348224550872605987787924603476782803496075013658859073383319611235868598254117707902368180090374234543621181708263142850997512257853755213600475695642877301252318006860373522256791820199331998532986862313616760213660987343588980559546926294983668450957300774000996054657429540240497161552254644761773195654086736371293954921440837201882779125230829971406521301996463634137550347296100345391901607176034074798307543335189209007070056773729657763275296682223224951141568695889828072679618059861500612788538541638367898833812033473774073911384130529834566044143261465667569702156058093703017951127164342411929630330766687554966040203782301159459476276946641556944673835346589392198644161803418057329879036004740558342650860620802858997808329621306360025824903707960166803697868410344608107050094322700902961541870422279424791071608203665913065494666094576537786830875995589557244788377760537873169199816912770942223130615369222617864180067107015732730420531121472488571814988936044880561250536122654539772557230374968052084649593154011617406479732958265355614103806526977617492839492207326759973712453743392699637126666884859091223870260899766732200211549774776915609713644917723776882885208407436350502773408195725655795171414985673738249477820865119080943342107019295977829519163537109615375931957969703462518730884403522624309977281490493935036985059584281971726310882917113890970759218019796289025580024584111880043645644011886918357918140478371638072918276928750601086904707674981672004262237818262015890185987538740109399791230151869173422147029457062586614398846755018418073681030910110172557340191309237090135727737163337436491279822489596735158910687068559363210534182084662902041661700125509975153871782322830497401754722552166806046879218987364065127552793029661554342726415734806121859304670165213143065653951196015171044037893805305275503066691857793019106414652901065471611735514808904152621621329235024186595833974365997365181010304022779769542626764628524928213025402011537458264361711423661610954377281241864949336357228926099255917711265249475467704059075849944833451841308657974119358162095917086225010907822457146249738893735974653572470021514151775844233315476862949002689814723422716874981964305063660746870977852787401685360841519510806969721082257866944668993011070449618169921454275921267722168586662858928356616820485584222396319850445487747382303940304135603487150844262743987048928936777407432171624831504003266512132404809665595761584008458884949312529382518333598621188540998862517554288804260991201101190242691504428219999218706242001731372428668311296472726655251295720364037256190731238336013328074572514554436967597117063751035345890181851285540633976092795340049654070366898463562665930944980856366953510660255697909096432988621979614347310181500702844488374719659156258778012547508629279812501867549000133721761401173769364626002337385612307923852837355859549173588995622938601649231625333963754095158374531611021529977003824766719554643067667205529207847846622837487433868151311422001214617575482175391952464407863097111950801682344352260718589210540930707869732120944267796232498905751130609526275023926873645329414694954910894639664008692513569598188479679346366593604665402123307870536117590433348730890688006899376336564780114552706992821030834610765126946732935659662018391273639721685451747651146653447001704717017723581654283436668950905257850939469685559606790721207496624431454945372492000067978382092842467388002112185796509093851510956738008984580863013266637435039081459034897703182010428398550276710734009817707850728311576827850049375772345301635780771927301812825834814699019360458071182133480383471119847083696293572897627999608371253304616103482809440070964001654394757621524282605033830031979890193876671174094210719143964362571352974005726095839401010642633300446660382026031235090044273819217314826387922824479218456048118861947860634226406803084675055983939593886472921550796682799515808900498762193965532102021003104600220103591275039748368222056045025935719827998159905188301363271078041650900538953942400156074044574126106087808129245321542591527005137312870307725983955425660801097064531986800292296436176332291063387220149872908115387822040506691974516183706665076011181582483267225481282358710568591864696383909879214183651418792601275877761669008767297021098098335863703544825080722447907711485057151350424438048703940602896709031768264498156174000606182135474361519922776164109484417465572448369817716090815317216617090580169379668998631618321966133495795756308933865523472269150798482425350616144771114057774334673089144559931861561655993302422909648209249292213664523950244516733417690839271779151395269755372869765148283559530776832728274182924442385208330432607089745446902516129063553853423290010269883472713325617001159987604770778066637453926873518397868070795139448697140285825138620201280694526895261783425614893137042066766795490775821342905961514246607250380147252802840987521261389342305264810320782039972049630511162470270197400426684971374144371776194395856141753226550937301505955913740623265716577503652333626074792552414284811072009626281449145267005743507907787399768543428016150733481420509500743856446790359745543504610241867452742256895373738016664195198143894383854020150512685441092132083016730577056648826001882964798055479254690704068384985067818686042871238533137954642049388248100266792256760355497224122533879120198552445101640332032335223791904123176082393569750428827398762380551103830663759107339672010255434620473757052656314354039301992869545797282389222740821875683267383942631229213176544052584096262035612182412277186439770765030341834206056269621127848198747049194802677391525723898327099954747609335763453907433457071354292228795593360840321031008013931996125710340679791622394056007551454328021574776912501427188517741904140420869697039381301468578075513448228292615935297749819798523200146011879653207101852314524974748451105807386583416421163750244698105817501463899862570531132675250110503643493295922506933873792085088292097135535992671341047996229896338084891102314126567077043234103349695172567971016349234392869217215775007120582888038440029675269980583502904525581298063588958121689286367583878284055307923451800624188090289643028999776243677628859312121014943242380562546438367788959855744884446545667651214331443326139877369157310229403411077867262708021014686331575459949340191517370177380421614955707468273823703545735462821516353290364297823678696894844646077416390181596299079981248913347404050090008763429057935202481437221790399726798358919098632708311793381835870280088704981446327355298996271461017853304923342837172508861036484306622560910721939877600666645375936771537860495156081027910135824460360271078914284349279685866390009072167324888207534012224386294898877812614592741936125904316383480021334629407516252913997416083327507892486330321767122678612954756238274457162838500239604105441598000206846488061238471314610790798893714075108306711425054272367237659267529416470993388330685476003325950305477771108889753009702208688939164885401410053748466108455795191865215647215647115808074931312540554720500577901231086868845634791274019663770153754665884904737838727111493754001122075844486845503319140304019668769039648165299291362142872962388017406216405466256934143174097171826882221366678232514608922498828227236281243850502751275128179601498999200923430576761043481331736177873519606049104497565644432231105414802165271673258360522464193826458029143049917568269452351235394747050564899376084656908788953409047571532513713278902118424860416894598861541801258736351432570587865502169405275257015724344071309990785851262965250895469061820980821813865499678730279685224342599191467368195526852682454804413692791798099376694255171546491819348776230040093464298261487891248996258194247272470250988780632920934262887679505798915284460081942676350299646931964176384927689619112625959674673325294764146728115920542657476790552971256595895145514882081152361512263597272346609578150950757334346354796981968374685486599208259233531439295290841794080779935540074689315083833176771328568842978090870143398228727759621412025452133429843544247501840666788412068601370218281975596605293408274170951878026655083535977412726204242975845479868285363207209923899776908972374873759663176674263462649371956175435910840774031637146219665962019161543906596611091797674180445242799551891909631757484190302738488858975381560824628387690523692267621355944870373901307652963337005610437123658320531626424974599670719305927441030423680571927003967162706182997992008431019425832030543834655650359371871298457372661637080034805105580089886723494130441106319863315999765089437797249044152612510461604244622655295789733890468021762642318333365178405983553818388301616111329792876485593893983046000561452204863142675535767418986224770655206328118683140848610980606213672326814362668373729226351725675347786723850831124911906201745704794602840224284231311029089967852720104282606345649148856300165187738298132911824290214234297374280441902461806866238475887599872760963042444556972134935964034021079708315684282814780006908737543697982131957252918536768175384068078240905088253799543614838975382822260336347047427024721660598336213639398762029661052961350850464056825933279525024580797891114053066439172370266031477347298615927782495118709552348666001867266756597986427793712097072118749874687157436516010011472784382581891798572397656486346471469670687532765375161756465503042810939885533514671707315660484118845774840235310627723164475329255668588459738406317365811695546078371109228631675489888500042045513398813563581760079069153052382343736064654370641058404241683552834889336184580173532861279407659488336020391160951300885714248985763718881397424738002541454985443197904664812879335580618449113022325897295393650940218302403158564703163916974534990527560080910265619237573094739765465589237286861417090866870239903504828872961289743366287691835699820456795355715319843060895430991977832470441596084795469625351105523072666718249029765603187620048309100059438544096936249290879193570162900666782925610214563081204889861030869818033896096230893438911755462993183754023985297194034435610742473132930927613231319909206301687481891800710616398439352182053293557460035786712102586147882787214995586554877038788293255941152777127272292769384326906150247009757950128167047550429810742775142216257967473838467335619543090202323999364385281453117696300687448488749288463344136943778288707641155963126215560058844646030210158758750367526106448866887303949551676980949824876199823349563747980623232224628972197126178225006442336247850637748096265127143371518383251815868745735905862090054094059176627506632647538305853964958388424534440096802157731040186090436432903583735962572654338131713442090654569491622596742605499524847421372990906326050056069709652622258126432730516928638887217655193551896700037908324927532271566071305596096932176796087666498621456570621416921312579277272370896185201212745910545323993952803317193376263326226247745970605727538853354373512128723062012357685377520896996145536058079035995344066112717518412904885822620726907723278220068874677894571834520786496294423425311328269551123968897678719787689999597961670473059715926897369358734941374478883518657378887796503196946392440349383803320919462777861911028711387384824382032040340765550761195642238323608696484595620060384347778648079131596442214111347531544522325846376054257474815960077799649134825360692749523167944911411539988875691648063546066145282656379857792865060714622509639438171110417056821424239821058927497106170930733611276085740744212541737111680194327583295817471421855816972363604145138255854149445033253676629397014291013952337041995458105256467322947246638448398125735452616852918487322011881414928253257460663450455800057037252424058970387295576651197213287470625312652505913065275005192772677635424496409936944746914181256518720789443169288149012625930151852033393233131646749015644713746259187836244033890276196776028387165972322345456468885852119962291505991846012926060347647367347940203570370562368031368386477965985126723197894792523401357511895074722882281175579608685324528390777971723241106656737908591596670286337130770456897219914792804753275837594029911315116318560292222476424540030733077279473629586194763175620619195945645846418526374431334107646231685311730602752487623871090467833399560876013230358802456168803774916793628370663480057279969854049382111210585329366253800443434143115103200958470662355845881566788352981481481320806475450990209958550217357304922132272603711425508415026317880358925974402380277948829977010710093181211020738625765416492253853833525139680584229664691212790871930634141176252442995477332774308007906054941343912744342606524062319271585741439334942343846343723886766853564146189697182004034049666034505887654005332904360132021806161286589156402733704273813820436673073967931085130495431785549775202527544156515910089567225636194227523695369673363555128544204659365505248872955553595921134230685532646776590532774708072084717472174040790779400050702990729387564267499549834722405459685436440641672438540683113945875880575782478422005231893162257533324974089589402181580995489400170331870225610627334862571054275704762762770516507471577594748471256870090194532128416582967087727641570944340413508869377739998155000092359139362868385058768207158334027483991942543085754743851413567520918740889820361359353300903382597942611123035302562137732174090580921696519562857491937893675786564571391968730082888965601877688967568256718039957783391666083592274588027197334660223039691198629823997578405159207939847692507410124597050539627562894742906279008396770321216319710063693656751889832297981554974333431090120628708619467376487530685715104059061847091915431328710113794391772840143899873619347132101301623193177065193725817886706870187958167324855433726976321788793754006471400178897597202461845101361742888268260020081166565303582492385963638997465115046792487719103374488280556385334850456731331355241378426775534306870922485317727956511523864007789672378579599706048146560538969435568559438379163221364997688454784561104234305155792742242395885734266679456579693173815096498111348292237959389588899185993447110888320721445636780517430032521831769458827403214763883010897258223433675230964289800630596541530358408460862857569980932395691887712465970639783920862670596829825006251592391354336861754623741537824624771938498078376675596999592503711211149802828972848758475920396174831599846346982839327133342716423032821967425458296159264202696152357925817138915589347752401783923297085107894822028193950092431825623689849699684528366708302756006786853563534825553262251427317979378054171213087880216618786095224252208086015826572898633509265020970541846067023050844335044619328451602436057929664008857509338380243076738361650857809327058020890091706450965605266934127587875340368171590916681017598242589392412712672912642215625702694299114337223156475142356435527398130266691829877056127718881448963624441762854550746934044881466317627718143613860481546912533089963055146721182526851397205509199432491941971328719758782263055440762052158361607327278327231748143276515279864907591977358193601257855019392960314761528860066399498131472721580741714492874402825622598910192009545201893091923359003092865870091527309356590828604835560784084586415666977193699472632219417015936390899203495506360204322381353022522088026856237919249966433765086909132493314284504496404799080831003935072299851562649152011718756161333005268413922171834860431683863256994782961999653502293060926726275996938785832224144358155121562124185178281233695532669602424285114862669958181233989059410069401568525004339870972519594667442839731964598645418797624634376537565233421733936300728440505221436172422359506496241782982602409233374058953480788398706701112148359800475193148113987626855420560559868515746401576695721855428240392448967628776848629446066976509488353818781744945387820427600979786646269991216602187511553522150297205359024830556003348171529235195331148136240154813926579072752797886806331284380274650706135513231879449089765945899417068495454610915055160549143200383449156127890961400000816521616470937346431562709830568981582787007123678808057572488804246855855637005068118095380561831829508488389601600408972126404082215082164124097821959585619721943027090332919389155980492825970334434128625985772092517097838277111155078963425545843752812810316924920046441224596420005144408586041284170756436893720584422960575920890984099743032175725034681803452374612601342659076914932135059317674640231817903975290558015546190670142109872713241975567846051278508037650723948147194501217915023441878027564957589233374091620048694940855941080854758286844205070934569555203075854676360559556376653356305780565514931665633111310614117435913756351631697026734843040668301710819496967881216569953734725469077622527256731398146982610612353070027511379800342121365673264622545188665963903509014813041810161099674930799564606379001290407917447404873526577658270335927222221959803987786817654203274385041912024459370484381268805243944871744219835440195670281790677665014917266130244549567215830987985707899502385126658012661303052163645442414029258781890401081428424350298447548200811315107434823796884841315894233515227666907636850409487101919473269298322730122488950560005259547019700387096219146511234320633806459321643043944823331349133774094193411607081765628715613797213251091950768113728567874415009650508307289946033834356968206642915656870237213179029052326193018145497581706533841180825750116171199200241430521071215927397281367484030716868951903351852155387010996246022957536160604784669064588281261155464028071103127355317773509680774828781671764318394152413619023509710591736028084688176342627828900568827683095228519146643927298163170203775474434801567742520948223541831886308783265725367561904335159276907109603807324520022725606961067367266921563541452112889896183451095587150972098454420234934519654129950516750363145930774657648798512806491737853041124089971039316611324766014381755475289192611865750374261867237734041702816953221432805990257655517548913073797824932857876721540506244636789686863414828066368694972656559059678971708955055886447429077940344495766796819063310240845426943144711798319561388731026499426747037696024105515281002153096403878037324384440549495089953505895330302656773728798658440616802911951653959863780841272878603861469936191773043282072617320098926025176902418668661501997358673549374799405592448600144999852821985207794994634456898822160266863025254607061645000108404080859148848719591473011879850512287417061391285701353954643973133291398807044603654420843015515330491236911454658250516146397191336373241128124962921576455635380354747839872464573850318176745778657104095040287065147849419769842099502077342003874629029559959542153378574702106664992293206437538498881150527197279701107692588833373977811235709245969281093159995261201538315053532715391900207792728616652806516907433149531295026485659213759900819186873389627929901282199745211270298065540011859875664443056631017135300922669815306206455325926086427940959923955389637776040442113859656979349041083429451541577820406795953316559328640399175860764997712023961096917767133066206866188146527373043398443099497637855002333665352279170248774748850224262451674034251301677649406480772157668923723009953014404458602658473161317971217177594552500466066758164838754665510214715360316580736882320747176112055506326021279975154694640638412358274189455167177481154113021398194129070225698324262340418988798358587360519589662585058622217833090637931664159859475017260215782385202446781202158293275218353694584835964306216321115312849238547811398586260221869272734491761128017946133848768630070116820497967288139010810247779771263756080883513353705519767405219418424727797165649536471613512773597246011952149148909262099431712693315424045644127068928694478579096437089862393126703554312524260240714950864816463569674277939369285847876979837400633850292760231138283196749689420528979965896602775602642807834749485195158706334100416206277243659155245621391934684889540581704099261869962435794378768199999636023344644734108192404644908691689185668526919373910465196116638555194118258477759746924245363008613438000516519505079862947166822057250457412498379165520637303974372156184998215593038175642543780194287381735389460894674568024399035132820738114508591507176346299266216443786305878387727290631819251724681751334707305935780021076166044615567486866294340814898507009792218666004004591750348211388824928314657522203819201200870378221708950538190738752346684053915773985591142221607537604951189279388284499740304067673959086881738858726367785246993374504379127112424982747772642688674443349824398893462843688996822791871591840533731105854093180967952504291345165587588983120361841412649065021957914429036242431822121483596427955529324795583645330290210305390013293120368037340887237470108115128790613454012972853383555772724579649292829593707298840125457452419293350316888085369946099907360504872045215062335763450216693272166339017626112548476848444672158979778982216507962185876018448186837759006860561064019295118836615722532481102755964753843965311843414543367918999453242439844637703756764966431252247378409088263000736066290103320338619096205190474371306433229025688723934097720673211482927617714048441117104785375246526542386833338969200175984301119145096197598263967100803506401301399161159838645604850691352372351881681629424716982582557589481321619222601965247179725715552656281148065584040340552792786095754599436895197657355181902879564790248925370269647495846250622000165058005980119557358236698401862399718821740277681002530371792552581754519112096950491059818149986390753118275120741288271080704757989161476915955968104767867122535838611513074515592573449219408846769774492484424194137873871148963083786334537334966396713957228103797777204970815730008692996744663404000744569494049187810720081341183430500278195689506350384186916446152286234237780445103931744923074039908778925954627646865369782384772055694112620796353470047627675461319746225479249762206803555983224928470653427541739757466581697253546599724688412177749458485900396822526689047803870282288163066191415711728974157103657436307021151199811403203838420640940698074763765362619415376527878245635567763763254123275544524542229305193354256902795637272877988957776022079249449767983322630098246543365340282279480837709667645601160247318845304492917284917153688605951070792192709316829599486651855974453457281075090799048819420709754758149715361954178543208509317520799033323937461663091415396796081205926034128223848805349600037960775327718206396392612969919885503323401966982997084222482892649222311178489276218895874117890663744356971879527212326512758157875656374921873655616395204891885274405590617402124009056490660962914218389317852458927631150465914560558940415055883054388509409491528182922402136554115446351337460121543398852494582583925594566787287335001439703954515663462786033613142336336002113088997952335860444520715446303947942336165859578624400239704997710234215062940287949609073166397235148406465786965336672193290978814192993963181033828582979748874847473232371608601243479874361120976052224269558083146101449093215847092139818526616300703432862481949307682172482466546305473884224769157221463201985150542171815223754543409127450933183308915524144474279978073986478208499322188242487309954906959843575797713547937240002417544694805225754979234203417859338920898766939809908961853710057239180205421012559209571563617528125522682365568097067030606324563278046146459828248983649862376379301195348772142820108663839159039126032991221618406518828926746124383848400940299578987532435409929638992367346607230203274483026366078304800678372591299778032176039507534148205997055937867031013260567446140456961736631485696847818463112898157885356437642487186073887806001668009431900021295964619422801994878186829209746883789503005495887987570923212157029832645383459929376718183804294260763569275002625871549336301138471200410080607810172423241767071541819215138073193864661306853041106174613336422913959674110958739560832273652809281823859826071251884086735258473452559532491417493985497796279627777523247732829085476128122709314471923421472367033302823843651149838357389721333951677361160871532858040821923842291360240454269688558651203105566642837052125907123857158869695145906851522030439811810485416120967192270638596017268736745073735308956648643595444392603728814354064241674133573182522744031044832475747495367866980800930315335717030882980087501175188764679241135876972330468119599651339895837116112465096434966704699403433614902357596131921254749588605974528379573975980858525741637258892608795374507052642703162322182801761786461749316879963125049019459461574060045068889532310486718980794073241205029202244267544467995742115694545395987525858632760897999613685529934531462059831958849887605089922985885835390560453583149862636598926454540386658453082888802348071118884622885777953087644511957955621421842023393596593705700005131500538476533141872448389005010969239634335576712369031103589119818028552261236227302474245101407771753997350254224620330500346008327178971999208548074978069967724474049254180563685464143897969818339909565478716396469263207329737563926416099842587237007171726410433673202588044661807757928788148964181684167243169638542344288925490120230908884597230514149272292124425922600082831373878306088732490177751286199792216560408420459423149693767712069838782460129075415650621314447570076521741125706923500384976215253418148735024079583594480582249230215631756463654152321806261398064550879667287274834367986093916521602607393044412545767737520788878729708015523269503700056905053674071604293402115640670174425512327216567771264024773115734541198651520308856077425766764544674519275989973253760244486357238139310735260683756503685296640543888446971858379728033346688357638557942096828500482239350976406749006400558414326141709885716560218286876161167108406166449306164059027476402583999559177831525592266676978464717037108966612643159639538152562789034667790754173497357378321326824383526750231247965799334497485788833658311310191167931327260992310636450886847161691068494905916743402029084495933170881328766940503105827491764306347733133554306015077295450219781080159811300865690934712103503527293593969216321107576117212611872817371259476818352723877253914996791315857251620083773240137684053626841301958456978810090424205220564409106519212069327837324825130726626959105087590511580510664659809866130255121420408368406655561749204911660677018053975324157848360352475926235550074199559016972758801628243225364155437488331759700934162535839472239641377281983876506147109133269499001185507768293540110721675367852918968326360227556522887143072748426378227244076240988092713680481682334972523469277673486743780313385432948003070203278905269198984936900606640861180781056754186126850919717464692498481903464360873212397730654858613284367508490007016800829621383699185210118386011397967911318872498429590315364190420202432682908516944588642431970093197962222647651440155545740417884464726620587888702953850159449238042232967533737952634949588808334762285399765431852292846841055884575306774062475455273317217881650525502856239033531959004705281428249528078825955814425394285563814276066461176268364158450770174329145417345382586883579128769682564998672734372838116007147342097732410936613157616952922412949558728704839830740011126266242279450277375113867485173575766785231485845163117952030030545904130293717144066290951009091720178327580056222485914104902442123229155198510288252662001167325386003745070490355954475850825040468526831993514273182314154887166246148870682655373798354826341952740379402086897581400617939920544720768377908167203391291419570951195620873023246951433277249984575422438046098569990949958614293620868918274953123394132140888844623640582170477646305328035500114556712269913640466679786239008014197219538998706586400366328089245818035723443330178645602438937571455530014490320331423916419074700586078140602668335546234604677394268729753262569456880514483793796208466406798189339596352147458964924394504981472337736280659803388352280884790675524492229352934941042190236458335324147634306277798679864192572013508164275677235859710699512324311889442362176181536671384419419574648462881022084902495660981209981723970115082473339812502013376003410070987304880313758685143417038039925292535793504839961559891235719096004081864695608060463241272041754935848335834736712315461359289207547166741399930223825287719045528930521181766099728353528852339049632415043427163004979924389713219568045644103679901512659579179730435665262493513119748538961262541786179905930046826301357211429787703064787443305984680703543401732118636612314079169044193446811904708362374872262785850160844821216440015217746717118129585380785521730700366021323073579706848827671036195865949351637632772864424275125247918321670823161322280786863409215246502543932349017303658524852455866005969868597714052223568883776382072925031159961838188951732905217101491490975425397608119396451437622111530961907609541785795846240828202709130969995873830932404270535922150635338810983469993393280951150536016593841104325751597978033903002326065766304967630398396696175411030851801072584722285634876780008762447929250987207352613662279780445051874533837259537271520168572780710715031833906630420754348902836660753051952032011962905057432116729164472900694835871275875449455263406018067089283182389792213370382758949540480136875769155977667978934412494974721528163727950297047632726615116562749789373560097919720800859432873328460092492556867701946513357842912834626835512528081218774513014113563295939038367492747377743115589802750626301284261323714187232735390112534623774008904107924751146667706680411084310331098206179718678736750203209121290411613582605341053105066827283970856554365651405873958294239042015466386729262195539536347926206704244426824428482286795588778852542995412987517004638124311500115025882850932563270911165277477671978540977220056069717068935658218268997356247696988201770581304365607380225641201046028204837651679790792485134102001377953332130177824008053444778620529386120744077452906344717710090752068452251761792467306364454366007824618929819710414047029035550233402161630808764829608767527398145878643417259513778683723776175952273786410623812462738402675279229344103370710803135076273626258585915299101020308065411526611748209844270088541360366274556766757966664061664124958502515203401477973816323119963591543496585288627702054459007338730373348032463764909213709667694160865381005166837744883788777903126719964061768316728061483787166162216937191049073197495859440945463935256699136467931644336584422250959439716332741420723961326595000779997071526027000809236327647937342030821861555074094735763077506579700527405410424349434466594076328503405595867700649191788866590765012834474842437723828704732394867686930647426623491759314804527209625287424705866341345370677864708913669959031404135210765883656959099603363610559432312240669714860726467838332362227390248645406774139094088975216445776167115191724837204585930194270385119492420752904439319073312647570565855906252152220508916783936956315563426803551879555147030222808557990426688268503332300473212758869373824027378975564070944490392625806012322216187368124070411553604378418379898004806986082404377250860504321121088988140256473133800532548104041946271688480854174706291608431380738120882177248340416472499816497687848579652216476218094079328314403569497785415779204731983164734663752296007499003738063104808657076247703806430252927278992058911744189598240916378663733412911246160109564892145236780580624034613066167652062627731595401751169765019368858258240510388553538735473044377728746887849014747686771463092679242016833847262479435615225778553034783455738015250658922116916172018029150668819663869986271821549798969086023673683616380836456329822359763138340519695456002731791568094670577383172140846770136723096394299364421635102380241870586577491491277419274276693196533524362046263774622385118555491938728972625796945647204937218678111727664085254983642012466450486280846082502090925439663317334196863120758264303819495828019650880227111295875380928891480195487722782709164794457999968411106176333188311340545591196831900667572124709794787216532720932962629060199022431998957255549771220761783108810814972878367864720621733499912830577824234393122066505053884121145239608071560011083204485808692677272471308871592491439371529944223769533788594589613455360763814806351788726239098425337769065631877939713882536312718544543807595361081323282537494718006358703241706491119459456270112991826314527630342271784595550363835091436702458046392157612015468706620066597381296818100416166215850712927413327484658947481526041597217393690312568676309288868020058232009996582237929809550578874715198445194219044972892393090440193814330195043310766365274110752902443915294409907341024543294207158079901824211085399601261986637763634680448521357790575691341464091003628456137318280049638035569008690135004470377390152343287329085523923575102080351697657802958362258303510172803193833566521691777110373634033492713252485681642288103705857104311406724698200502594185910054781745319385227047890786293893586200383461330008845020259759133330998770275029485676911263825046051681550776601612842591374439325617790140431375589220290731433854998966031263380913929204737082567161328383210047160985270699348607303315412949127841143928131839498683682332890688345621637778333167994302184332325143647326149867966221999785158890394180388591111944253502908781782813748753512543858633897314781730324278450702911450499153410576160698348057115935799374954312911893736637301164060712520317849664026858134719060439663618316230461122159848333789143959013611259146853460002610058978771991589154155141364978825820677487626676476951322659777346857375760680439452811299821291097199284669888815963963425803673736899088888791736009480078089505132246111428254343615057565640640884276498034990216822907122923514166428230539230499314160149772009839226695926771043635139263058072863233680242629659394119498623176759036144039367793951649584683942735249742114263316644382468095954690465028839842550300141683008160728990082364620842207142064949355447552556473787055481553672724386736245202843588230743899235238540339444060950228969411509987646344001466770000339721511108995416167056619758542201291411274853153257603193493487609254008059468000034880193900589674270459433428778001203449492929902863159285110921177525972858109260653259661771356405318212952923165422830314120402379062634768599385364588958643657766053705929532786066063610272220033324747241577505992367703255516988418632956750745049607572223121012852421141406199116872426991342060958119583633010344393571233402532251084931869842534110968165843053614079128869558020627206433101360695864141726439459704996973717235149512329331807354352733599858658708737284923086126217603024798553495259586883307915855326270802593060277776807930926902594479726619915652348917493358236565619668137029761828903102331698331660065293284269604090521161306223160312878631367480430406626759286360699973176181842092811972325874468561796350036718579882990420556056729178305361502055094953504245432304992048762665581140063998866002333652882279893108724392894912443907619164208700649002752908733237759498805746417250833549182501551525774266951723262171684624069491834907541012286012936494762769359485326991920853826369188459358319177364466001456128540387457820781878820689513248433691585295934251359959705279653816533326468496401810599861155735829927920240269060804850812640754927514220906579676900499398255680158047920867347599378515650630607041768943352223945155237436715014669977921383467432499576497171659914617235958560788425665541780990819094834073321678357014104990789094987733770996876335512667908311236108101692327964203845592052782208711090978648279063707029684380642626430555092728371072067519445192882457850384374943591424561028364285992483117483000618534259803979686511019741071578052550685388664462270377759216576598032263167502664718294188723597953186795978208326213309230614608537720929062084376178150830339360742839719451602200127654768073574047678488737604053975730550377232205010557271972747005251321857331218768146010646081122357138834107645275563405176396335055362925134491190923269795308858739008733434025846472373961653038019538123172309534692407464621488376005301093683176838890439264679331728050767443002699567088139233253168412820391659015509240171760465786909587653489933226341253898181035443992091335498683280681623571448543402079799118426056468486607146351883578247936857908482943988277984822858151689536647518655703848522097573766354686951649652087284128635297300561601522325975821216524681507405070226823378145671194662158187565769377332593848308462934318908890603584619074780909523888611578540096669610236802174998221525124691903207702864905505042801026652400647556291926264787584994981051286852025269532800707622064872085036905508609352722317289338706277211040887521438383509322818962164795303487774807321334024978557014757755325415122819802016692371286004068492398166583970313478954093595411281170556934107667288109478852982769500084421225471271503170799707094256269769336427976662612230114870450937634322504750003765923340606151295801508434292137899900903249792198436317619359653614399093888401301173101872109890485929484005316862866492074778571902359241920245838290345571996122683641223217606154966779251046708032202734079725396664340714647778000316989229329795728312081553303430217001770502834346829856351597411771383838575789829597011457738218969887256710187611949809823513230340335512660169103720889479132853688766448112768698560107861315551764811267278325064469635175771531649026042339691082971360376872635276156293892311361247346798620437918606283126524479252824585996019972419422021626011589642153918152360834905364544915257493566464812921979331126974101317101665154081551192699082033132158306722051143932332801009365765369981098085533338478241302021894176403367787384760721201130020331935141474515973506473652310605981258346505766522040334945875900151548869003931263026616718462564751483397336758212671195996319572851186554867251061933050061518442423789580620460966584611819433449372864688713804395437228543109638525210124958264343910458902099093382582299008657697595505326060606566478264146130473774220560883945803939936932182382296423610338407156613455574201418587201669830443808120108491929811321847458433457643008803602806735572540219369955925331576133956782207428588684702074914158760048798076025962029161672111833001262750757559131006897146354088156649182379047258285813725453649998240624419800723837708814612361121511142490536314399218598540817889827383279762209046501972215030646026878157636946093939771093588621506522440111641008122317928659717623577466431042649207662299199436499331812367566116378486773785429206904082581288660013362892031162928756653725739504996403032352677390140341825568870835632253957663437253516205074357576662082008350288868602579914087182320694755232649194236032993319222761152077156735073291854600724275356015472219032692066189655993045939584222344018974136867861691423523107491002426546591181187703079309584487511167518687108523111738846283014902898189024123979695244993611331565100279295964951562570197617746071351086905535114292830667769864943469618384573972097978786658123217162905178558363025536314436613398173723835389129337262860971901222014560058199168451403591742987453020126870120746199195776573969216928934319056656763472555003921435848921320397736863973145035833976655381624098603672767357502502546175884713016745711538308234310877127096850614654871410237472992186934903636073479511610794839477191841141598972224041280006112481855347769079454085285852194059817774987240651077579705139431560163313238063302013772182253847084558445243948303024169594129176612447388338974951638828264607588857303018938695984023392073847210970224790602996881826066384217746901568519088503015084886109518994380882813903435480625982488082204227611251590518464437764661346854115165681093548280165555982376813391718572876042027990445821981839052042028549286236457509523477961145946266487151541871642998022762806946692759137283491863260630445695397511432962281182003326193555998506660754372915808009429546154560063905935293759630412641504864293070811251415598448484708457464667450711805834966474613208764662739956045422964141580675257621493419963511888186687268888292524105765716436045266720352343714065269349094753800408112291782031592466702848848187803535926680094515711615367358560139451685762577817066144365226535758298474822731049084910817255021521901090055320092060730883033578073925954348653889532992486592426039371874499050987593399897233734525185522451857279166964525160937220618743336250717672343871844218703002977640794263237947394237133599011380375873163899147183351462775261918321182703404257721313393906003124010908276722521299809263159950460962982621490548179121322670841659886535824754438600744386131610749872798854132986396571453439003747406206502115818504434887703124603551701578623346811998290734418466604418979063314936991462402022219484147540266996995457268566203336950249842891013311531896953349961447606329508376394751365944206589455795130178511405484100995200182027395230470364160291519748909841265118565870160953801408216082764747010084235891250361223987035433074305245829324941158131553093930351570307822002329359944717773649961219018727912281385938952022039859356964564613135227073383582210379163128576302903940900333755748421917373866302834207450104312291170675218980935765549508563544587827180134876561545374055110926233969115763073963644457559912535400137775687679489563015840511543750601341431340350807893127237807685383418937821188927097104037487820815400128990244736225694075759035750334520818950884490158119013814437039457004735977107657935606041667451887242188885776183824967801536376100669018095970849929733985609226097496688982026463020458020652056374148331292830511243725841392774593755265171651930835607960451426605330684427290291429330457389031680121913569830047374812469364463445318353397167374084671629592517713313133298558589940935802917731886216017032263491247383116689655137840357491722102375977546296898581049628941084946256421339335515080163705413729647346065335186057775633372153745060007419215276085558980272637053962295420813195128778952403770837979406857847861242017304491670406148321697697591633158668292981503545106346392132472476306192392694580123996050032581718724397498948480093006231261549844491850396069134195614563227497428699843294752500421706695473240854793445087288890172937359241679496187626087896939557013424347278337877194372616291042115960032898201692988313422677140727520360143180524250724830979034549343693448780754763041595025726991715471531300852650936972273274198539623726548388711628804937711463616031999402559124110125702867673089288856351006540531104862728966540504589738951649214813953214037358550976354624514317202889600893665986875652540077880542865167699700002473684450349319424420345353809873803676031290576168877673552569101895139821252232201263680070218147952263692535178248566402420711349537504977612137881875978137279324950401869878273604395458691456748947081581229105686017350139484152084660788649429994829775622814844708760100915746480991252477300079989488583801201858650629265630721672282664638423792161977419405142632600662512480378548102932870443494019137601184111120562547066531323910337033105085760813673236487006051552418673320848309699964525223245432271487188506755117682597911029823246012903161326285387203787110283610348621630912902685020781131291393548681640815159465269333893109549798295369576086172312296199612021541457784760135254342269338257347150585197938114847823070109049801375039299469528888152696198046646505995796135677788663508206256375969628674566289783243731982009639905284311171297679264631812338546808185453561770679440624405759691595836684821891864647226274446351113986244069183850255984272581724681575062005183547993398907167570794741427308483407253502341526020889852187221393172838220761677757805731430677592436692745694210117421234344708156127450422108457636721923370805381582680195586040880544286780730332276952767293424241542546562263936238656037619233492049358757524597366518585668453019163324849088713523694208642812707728160547098266665071397658445404173507080336489638620395458469470032187392519270438307738499918528219202381577159026259664010812077074688171843819770650809318173854768929998794934317639961469002392957765820980984321738128429717561600922256208027884138527713261166242456505326949764365821158658629911068229762995189001143609559441286711183332931032821596985720836569923579684713577874726299381856429592636632770418354829408583874757568384074849712286391259719587053648746177911329620695357635476353262720032095420351196360448523647481527996738625521805813624824791472033819962489976167289486096429789095491291175628289761142791172360127864133368675506161604561251128754745734936288428512670302319940143840681148247183322606749274901784963955580278322228649861721962906283528271381162515169197943258332084698982238661324627407918059999606816801580013278405306918382412887984234498863922134693022868982560113113601057166040898738007107404177689338551282104428636103967940414767054756272831494877769915595116723853726302117309828238304701757030481135019489623910592959639048406367055575702738334281201965678787808624781585533559916222595211969688210621854415493800299850457684170747741895685803118748816240919218173391674649047127573281520757868983867311203706414676051431615041960015474735754540037277659620637101346815513759378172337537675420101155612280988499212215631245359676522070710267986198987324349415087712559510557020723166212794031472961312401076942726307230337885083223889891358321691861294611469286111930280122721004817909131273517393223240042097334167080463204534763862715464006593796344068989127722882637017466607284047375612643085894686701748468896896092847409134188518863618463967177183532196491919332330343217429097911798677360009638691476103403547114084514219511920989455688756467243561315695228045175505342595482853589275093451168993277314084554578977120351687353329630923392914782651986449226678107658231562073258904684034152962889413467914955446868755241652689594997866904939977241458296387194388184990238497230928224735720221744365496179576645509617932253397780106639018071984299198590840800647305045064066874717732061324544122278455459990782228250978808979795542920215392329290801362356159856746405677832293612949994224114100552789252351126751456539380379304986176985551964535520252432754604492287094402103269188937610519894973219845025200979672521568029253933340346170123464293215833396623718334942414895961259304696205385722082317554821095001329332497752167139382295799801707860460086592957747766991968031886726176721274033729777672881176454611788391872019756405739166185720665668713531121529550184857370880511205860660879883657184271703550472689236027808517596937560501274950335498697283908620229206231977764819402970862402135437951503568351599192745108547986739605509846161347486407694427434684917444896734916820607494188198248637211871339259098755923265553171660248508862371551814128977267650843276691671206447617071747740977536793606417572302817355746544518546644038342419179918543304050487572351183716126162797595226670689964334413962387009154152438637594907967171630119251422760426667388553470752325110424394018016895305115880640849282406527058193239354353360456307634922514412077246180729002308116505129182933131509565392701007032993200900922576386392475286578414065165950503226546143558722571449389649609169602104204837256004693059489509865978218497349365128659690539436289115914047654490417610194652716073869515072901993037148481804115802415414476564142843475416040114380276606051199591014527156353671047709884802667408773587580049914814784272759501582261574191070708455149462813147966797127760701756139814345454856192361908641441893704654109863611520307228420489658084990323596110797393395543154058472562261558605565364806540842473643201030990433214315368714815969939665432343921639507715858546149622166790776896832364205811536045220259465978051509270285117818217744748857357780043426735005928002770517243513666354441400679863983445765773824100930228153569758573709396763769613887989253547980764281425815747614620295540416938354831572592869691434808967998926937958289889944202929149976223173699714600012890394845657432626257555702614960855130302989061002603054043285414724573014880250715117860653197262476946049858242605064065139293620617294264102243794857041017616381531534561469311736599512196318789776639369487662666021269177252443793331583544248493944709001705478837375620282005499520307869677152839073663186522694662497373521328767346731697089007196588120978685172406368601585069494330276497670571010902909598245148511120660721319227592316528026106507518084605507442551380037933142482718418016248929347262232214823558300699339408605057993781613307406116578331017173919020277206493942414134212715558755137915376602965058538117078032736867777926475977416191410359927095509006035453405924765131352813335556664512174335563128064163212607089567839449301977044316963759140285729827374333404945436894386210655078209501811979710496096588910387896969654005160291339002081354641891523899123634581104508447407191872617502486319156728727604085797054264042011917689926115559267957895557508061057895084230677171196844783137242101403203013237260704907900712037610057079212341225044191049035274931837267344577410082498260499858473241434838803192782463021973429381495886235657694461473249026284698090880903322287696364304400354568345444302100752121207400187625916988848845628478780015182543781245233037953167730398494769489785209430356753747943313059046456516902273655404256627813620786652204120002697587367339913004856514608290590039626397507644712832150356031582485610230067912807267151792891266467118423564322174383802848018071611022133034426188777334114065580848971080104566504840382752101012005562995893939676044308916016700695640843094398007757525099494036556495050835077932260585657902607047419467103152003613239027368851617852833037094541284827129460432923411596206558460953556555141139925479074971364693690474709978742691085471162510722734269663329669713084721615621020707971878115953139966339247912881545517337026450580104616770127433103292144706949205045571674668133841388672628357101924643678085746502930559877425919967932592824991009360809581367634003318484285154215294493842407871924529166180458656491064206933386838548709315997819383132235453778787032499289760700359955552558039805345140276475142563880749179660229135123227933826022743460797901893328491368410495391791165372668446273564692070914133853758399056420912289331925001708085301502948556354214632256240686155146043873697452138968446732908625521874148473821922115572492390991677408603794036719518765313250837069091528630111153597000011636305529751781416172593965559617123802874698536503944468023389434333930828669403301291572167297280351398787716967823988451245552320335094074954376978170578685836059008229986615817489789278222389872152274686507241530143420134655344235668873398573995519749067631797376646424166461750149535696802329665040849232824451620177252978942427228698390910688196262871130377859040607970679773202687869099101008354099607430743115638220443103545936342179705337282114672462778902690909376047150139224267744927519062259419399862055112629417951706005973664408899484975708932889958400229405786151648771344985699770418384053602331814971851435150597355138598098891483766430523096288397808529625400161871136605163301396514122662203159461651315299953747821301955182377956654255391855842432924234748547269263668995607464659292345420561278069817169780553619572496890178730659886590573878720318660565179297323608727090981773243426072086754886308315077567714846221876145991808737205471471958228872334921625057579358449147438168734880912836996028659006902484583653714455635962172236763852420507478390988712949675671068620053468585052451317597685735514839930324314152978952551423528341453085263688660967893852115149334280083088679990240487347355758072104239290910136096013671460588111351757807023028404932081271567155078128948337032553840860241555729410184837720173188757296153260834280732340343547519458923526356236482752914371730945357489950112952256309221555808884685120178720188488961662968729379997641224119603344761358536823584644462319109577302731450759574642528841975844752607078502185989055452052931287699071686780766932504388858988701214848974369909296135423187317746899643319629773235237135097038401110338382064769677582553411178308187138670884345622892785244597980271467926953865217782880527409766772336531305300312111335970912050088389059300080811112811214212865070791488939636042929397876176892022913725995973787565848997954474028509834939321659817039116969662182944434601312629061433079474654820789587776488928248083989438410183297963248760594644345327174068687412622362899597859501179148988195925413816036158722019445993932551344316427179466038981500594318562258985845185841700731661658598124270799408555641084317732498922038780794960336597479431827538967272800833565369885364697252264053884300762305840469704183387785090446559222944175287019878663817681176353205724117167764463606757899601602720623186389271972938366053546052011586587078233056865376396777662941311834514041239631190932782057720140151804367870000963294044483498660143622645697951481889159683778042516025204773385056449814957815283862641515321732572271086698048444801652045522212881259661593474782498905587292842549706670414136931714940509126968626863736028770243450545291225170852265543064491074347899121985413539315835599178306364427773576763509836496132537854374299252145425953061216362401907896859717906546708940106751713156725506482677435919188199839612412182001266730571498922251748466399568242066553872539393056241738239311791542776367858694182963128110967051461633151006633956179203723948868510758020455511124254370843721770725480025355813528894824133568382370566413389645139524921698254013094846498075943521750422032286506459129632706859010479069613958578897407250205945827686079056438228825210589875190091620261050736230691036178658155492165528322023969342579162898042852713252058472847614263371154474398627150549009682810777050371505901773558537331918187884533326295530044812252566191792940583871591092031662160832211561509431874081321553206299743636209448338332703607870418731667445401110623272668991533568568948688491288990571443014618376536757466148022218353959524999191706373231456245057791952869441506393443285562659143937346635041386902902118611126995387454843676983439772240067262780998589031904996347080119646531802502495716264731686709797356875580894720637272187700289703128605555432118749344904582978681570573419430017284000004150061429976655825296606104083181094423190353628803948798397394026694316367364707662103173490177701507777132237468210852851164968010670369337582701124000059370817493925319887300797647700614134476135395011924934263973758450613650352364401075970923578028986883176297855280295043900933408656157630134038615533813460349741693199213475274682326268279213924169292237125126180895387162711086991381441861934793379332930877341904361133399085947546843415264228625881890445762488103127556083619217732284539013652527089970546159332291719976442671913443514953631464915597851059102705085808478220741365609795790113567590071895230948124202320749542916199384273750382426895752627680612940861787954721837545455941741799878299419165624106304471122920765369211745236786639867475469157107425768906351927636364284598714050874979135421586523345473093024744405645342567501369111925444030438469635473642272735264428376313742076757806202070786505848201639250393819998761852081496236023673702229641538062408677089416009731592104866438624309408569038832246681805656664497530328938440875006073001996331174550304190741984614603478002670396158269708199478944147704335040617718050233039362791637695000445765922094120060832762834662631199631872988374943336832226478316393930741395897294956040014270590500535239787658760643328945189464907796762583006469525430471646223242631356775473537643929351578238324942041036993870458977756287045656974474646295366379282349130685131134097686382022767404205922121916409645146150132019945933062621038080637025005500920381385292583681177549084261119119854533443787932771420467790154509219241125560051401943898222906430442664341873430434168200596389377446361671835323101249107595551980020744031488001654329478562408422262776272359333008209273945371415544299224887252612871927698729766198070128652250975224700503897593942508308456068376464052640800807950997062914959705065172312080288020897563401251200870757894861074204411204692754694344726545595748994868156786528251515982267651618173923183215024544647152256970804535438892033806769192049423205305428942324087644949524153660318476218934470304962246031977093507663893989019515557426561241494168087763118484219917591244047597479749659064734016814255952060977651624006358200128040381404105640031933218643110194184900937194406470447158099061660299063829929601557190359140756289141576399759036052346761633364180763474733408504187158089823672795257165147934810248693822321389985297239572552421799241119106465936952145579663124702455951671998279937239792730169472238314802698772672932644675987700638820831165989644034174935726793913765392459410588420119737546729571500800625211285289297901487127215041368200935113904355133601984244149524602317885995674909801579381209980727909511771265272433822697261824704521576747176176840630422880746075590331411105253160246202276029612168098176147274479289585853515901149581886349112304486639343351648120424897052025907107537495819364172858426893820477762464144974687486226533558261715779640665706615286363293045954137035400712796466757194887976173894611369625760070402395177499270862809794519317544205196428318347424149336288634615732737592517114314875119743427360464395950125836740232277638150091790553616273183974937976480496271888914580486425130982732030191640247267961300783559846217753705987837166456871842737498930320936992862313727363847201770770992261332895542400416001664209508677478286701216009472272341515723693765466214253647273100062893562143978522775259373232543138404619878473062036343502129883004292092392842841671387482205685189110802188584804120951837837918736291149801893251281132723714444459458014077411147940601013243109610963236446022935327565294666178993474263206459454659409666723705184587267463798376543394921912972941256412362549863423923394717968528861990673295856388583846664786775047391935582268432158159522624562121272278457541497948626351104404496071126441958715088418846244404682738655732189116058325320064296233369986735842136496409314856237163923373938384343433142851793228372509420043648171953709008594818402720919295523711862484745952236360228161819112630141335969251033360868935727659721445066628746888906570055455746872435581571920539002477303965497601114430077632852137221562873610926628076722910924803223607989562354387070811703116743676212496607909781484459678061996955705137474067849753413530917997240497007614597081266952218709476798766520473569963435297639113769504853593325784544380572454235827262211102840649844008050722836293264747184053879377395129776529892870487762612663136396313694233585130263911945632585051891375033413275044914763741672612147861915419142171627914599096753579418382552485827925966151085025194667111428221734635271735642417171351638530359705468482279230768935880942143514180603279910158307304923504304508731585140008351230802437779829994699497969352076705825560100132578282648303379148984226692071193831511977567029133127887407983924867123045639595999375587412227922173291286913014561257716077014346635088400475413105202207350971296767034601658104265254315766405847232523285195548195700336230384303888935296597991179779269497701938288183613472776047227502382570400524219975734356703226522299623228391285871260167208501397788565824468791071561534923709477363510044030283213982982563169886974401180777813354712085217211277226490210929002372093839328460886441886216046804102240244194414876735779484596585875842572791306803032206251674519587553104397834541340517324817634029707041369484854330782537530819607848500363762653234244197070915583933146284467405258098123183463328641971371244373088331843041785471781170847406329840082504030119782343246000463066517173179916237636751044759869351301888439476309808574938542545457348662233228576081380351394924700142902370195288417749618461694215740101205738521586857723512441005953261370631145852436465237819487143139952450737009379982664171966303349252306303860047723238919451191037080870380335700941184251039000689667343886850706577344439594752134250366002715252917457853549626275203718143249289274666107107939474467396030158269472492126562999093741892793126086671518880735613796828820421302557318349672662568340335563557703643508823854192124514421254811604586743391528571008567208301099270131002690487877431633277985642176215017155857949214073208399460407096641194113351852888484618648086991381081301648841207737027658982698743215007362619513290525621624861402349006301186231814887281175797027217149546777076236919206710186399065137444368715058436115249464498479711593582950991637391613649523711763901065636187144462595717161331076880968233319776759076509400344714232157208253782303672216610652736974318754178663401502339668115411092900102376171726196223860926705329632937252028154981548604691881613533595896614186118946731545234496883463914281316405507214817669930069984422996948717362375705659884513833962098826063530624122053348263612949071588514990979793239826964989278391519774745831758486313229708570020063916567083331584586727768760462157628207962512692190844152636153999136507041348152021670797681219615632264731337908906410822031387249498278697159133345513495838784175398253419653962446151734048958879924331815929451037802580359819593147417577473778195788645295100590929268110058773035392956170301117608233336245092480856295285481346827688520001134587562923985863560589645985753583765339159978927680376896368659245556771351995070701049303220732055508026251562994806325232568402316324634050214318525046161093855357395117832541175505418298939908125352380208075892254960010280319442678678694185968655821490684178126267337802184788111709803261362754338527901474847979275943549521997654761718588594860121877917437036870722833363515716429672029652231699579928897440603443274338276452837228516693629856366420213521757567462517752627502574919425148831613369491953312239921773728761951955374903803842284605272011102888178893447360797687337477574975405629592055537306513699816160634986120598041589225821220835786164751546122466999977375889716775266459211222942424138559449264046896205367808955495585733770640170732036335523720088260693042357676249869564429871120152496540385854466857013268659584495196202858413601795698555483914869405345152010601972635837094026070242221930242477642932166430488846020053009845844815598479685866767919683770262299018156453676722585528802353453574217496340542552171931441030749461871078514467039538201732039380854368777896461724093664218293607004276609430446986875342799525584381703078170489224130609582011569092116228134601868177488600754672388479075480745852817163897036066745659179328063933301804634676083613409725834640033731605708646837455384522606130415256932220382945757845599313360747020554869728156898530850575034248702386559640402644748616733330311718211280512168833030850581385101271714035754366402619815356117406881721648473395655318517718097972428043681030191071031763702847569461159464733901338150184702058311572760369824351617869103372852118390665005040713937187092323633767140611197554412970419544575342781756505220707065555473687356527227939026146019613645518965810137127735026863934601025507752222692103664054490967202177589780140794097433508674860480439954383520178909113281161417141351611048157480616997202878823476483417221816227838650127625103023707303690179609466444749290082639710406310400051909346585237914200605816545345364255581632748683240442310876965485206739284015089800654311842386996755628749890261337694384926647697820311436759018454576013087793988996460946183041319751438970733352309664342275300631294043693564282310019657885401502492494696818173808602889730822068282677744798427307713960363946299479773240320943880915146455005849482634645620518033763727740859174677796488828950325744117227907184071244328059891002806725086451628197343970742842169333250832578638616356129911857091743676324458339887665201654627866988833154892408228642538647921038477317245769879465878014972357340131930472798993176294100988509578939158191695032855619432880563458560984658863020715320196656234759824101781715175442945229165615826978075827529411058543487175858928541601611960494601168360921712861571184303404478165929251597849294966374739593933739984098845804178368012663531173790361907863609812888212780512559851234351625799917902289763005778165333678484245324111810334272794841728686017390860737744652760822756672315809339412861757064901332561899485696116351922628456506022928790540691267419598127893878054419685380592584582725110393226308432873376256106858707061311687997892204209908356520105417122370893956452821733201498655623880354917527025404873773360556801629787532165794287669252612687831638352071151214688985998217703501306900602430323309876547679821852913629829752190096097098640265541967740214038252144815765818557329625962069060353294726017394338912819919021835344546852548474195635551823711033041028742298767625054208874057004357361956921232178042483736172933896967454099033699015779128172088337055935299739452511482084787111476540649548056712540152162644432629769190867417071622828726860805211979581717812276257891413057651803212803194442100734456193439881863818247912146726228564216381508172485137221898969237190797677165186227856642227525039134311491008593113665898814584233044533544137532993700483625691091103280209443761552764222491021531430526547427195864357620442021577060989884410305699353214066120208395539145121670230399468219828582694949358382009481732961765995804491308443158054139081451245101439117278751748722739144722054267513536642352369091802145958805469516923273921533466696538435293687825062717085320660575380377734012714877060041527066702786904466547379915704954399671856747043131687682967920472545599246808615804446067483212371755091357482793233044626051081140933145899603292935614165381767713626053935054965304891117068927173170681585320273001779512336550536010226945804751119407641875793698655832526039701072803543980570949635720287763033714024771248131728029137834573078984943622088031287179785740278154583457835293476480903384554030737021008137626704208956442308329340441399484323735659473648913422407988159883443278855470730931895694460206729977885873208126036696651266330412891119741736530330114531951630014819017879449530555159471768636273228273416573280878647474246565179143271806138406171661988254613279734611360513434881328138303642345932426634732958569925651373475666108591060607280852270064629065025239514140639228155790731635573982286460691074706259748782296465096991808581656749104184787506588633609276254298816025093836070627105554382924059520187881508556823980195157433643044337270426872588206491728995293003752107881054117695626244420921796765594264940706405075698202497562542040526393633123585304096947104094698147593251289675652631180695524959456703782560523999990331866393773203658257372865119647546129266568547807901399970248030057912492560246960857096467815830418256253768760063719816679994903825661999470697775161688906215223236153605612880034100332943881937944836305733192101150935191794691728377967122999035758419325820432410748990261154186205454841093752523065200473977741041338491369129513970384679569138373568299093301318975027008568265941372006127438928536407012528060003611957846822141924184259876325539089644899095577320635626161860159398414225832639110306593321798562767943009815205636235856990841108085687785250970888284323570572625338833736772678194605868517227464984528950100696972957978396256318802135482439365977294775000304334954640612760530354354931222794798404834705736761494466275683567480655833822387603655327027819831791298687381964745383638320605397764652781118706557162927927672448203503991876310278940998365971352819903283194969039535428893540828518155502053022134389329280465187181873277593048889884259331399416201779833357827693463030613108362970008438848119199923473919960543988343245034342900149212148291391836562906609541889888760108903887235770211130235303787692168952962946439848385935042000311424741484024858584811806139788547483801034224529102549481758685898224410394850455559532036565771292059175705876346952933533259742772206671184776591542546853612728259014664291955500037927634251882838030172774785201434109531998991404364501062563627305139595972037229153941256132253394802449926076264417138538632693106814379812925991541287373868592892819679021431111668844900778095591790208643216054349677618491545475470090001399134244323753908402536932661665121825288425724189589056915061332990662697080490467029943674477500073459500319631284271464104093622857368893060910779460206290921981862631684914521613176100748302873500670224029819197794498704892795964815861265970417340188928817645731652099382802228385335224397368145172790457254239135706992352684777717284963455885551813747124721427289270964131480078000624282663212905410512528203673907577360758099152479823799073703203643267079833651846031434372896676068459336512488615083949481925591641696304696691381900562430938416175842263018361726498609814296517146541684631691224420585253548349072375195804113817488329396759967062551155905268006576555811580456189623408815513928020703861286553466124283768242830218218115818775680778357512164730718939632941314127689842488389555059671286485338547480829850542827409109107324523802364743022374726351782664870157783874327476680815159868617199734047346581055333044071901927803541384570107629840766838969754627424361329746014080164293242809997699680414933220512065530308884647536261868998526134934648688653310135420026179680353657959102336168492007717121754463671827629172954922407431537633447704789341158563678232524422351726493017856936539747236344922570727021198270501798209506788741096114806530084738210601972280129499766925257205934902966886437255229895892020229177695413582476382940243476405881326137535714375355177616952754091207760223565148729767965524391406107568715359439249852517998834787664229079490161434974995492807375846958324023976223134612917619805998715116952459160618964240926574622148576249448940686078194639578675722308740195624035877343300430482013300565360813901012581206167828601218326496553549861908138170502318611846001291913863101585110563126543262608521551434538085416575026311053391084233567784032216235060214083192277232822300318573401387359341300404663280917315677095596018808583361072548914476003889146493421251242052936152714674007080587378514151897077993407547498035741797271570498400422085372701548185826238947650804213174206708403022437676041880493548321826006599691323937526431335067196595832350938372396815355737878856506081133432552378859588004475194239246963058511016919787977616574640037432538649831306009316319880642369126564756989748117190320929544315272590417960019675566237276722319842287079244507593485112863096488011521898724030170927870445464343688248257631760183338887675890980489614145303966564711844225221860505014167392094213365749613132815428040458409020806633879416215394472922065895288415706711257917817713885546706067319719533176091148254810254065331103276766657693187789938218364770838180061553739707793859164948438099403114281164999073038752644391080934384565788427546943249423016995220959243785510203893318398628943332895030024847569406544125276387934052900180898038234888107945769714113689651096615229745776423225675977779412509614177068625190663805658913158578144221843855856471359711749398614052438428150155040219986443575355155818305377729688560577809487030476872987552831029434317041737478142219310129329499013898059902869878860598564384691707237149402412410659150424238549176982602581619671236295621487662475353277645253737471935893783567507504879150199685935625990485528343088578121996298764673361999789527113023095041248550399427665385234732038509719566684882405207974843460446691034454372197709604200746837284665933922613796283599109448421311521900752758311215626103139039450109496240092602163551373759064326249426026371657715415472943288880198269960841463443888925751295514551549495602239585016962429899666855561342920278055003191252099095776994386871486989758768135282892277241240603148845956904665466864824778166356333784094414524837222669899460543775867669734937512582288216896264982350940677030687107946478761546345806323598041861146284410794479729497049674059821434056629157597920040632974669144993915593062262854729594712895834721870366428797904544079697009058112111793155931567702131016114623082658172686697808257451564843974685954680355944859241936248361724670828996843834299512173820047372948609959968232894192332896711140456035257609184462931393922472468488955162202578075906224032887483624345751592064641399737085695926432517766572232615080389523063295285191573617293637064394245820505480531862732038513720420813868360462426009337333922551101710301610615888959598416624680198107916750099854009726150795003577835068152765780482075329061444453287013387298140045730503236478099204251757516676267828933550759997196497148590248255465208219201814600078542712413882881251892053069844204578253129782555521454961892806519477836428207440978370352517972445613268597066262308780456437534145462508777899546393012801836662133315393741691499295180166490724374061937529905768554923222370693576234939581290041723136610683197224689082342542847071739015264583652205957219670793604304829188895649505029152927670894607928455250115612639023213101206323384184063307768432326008637010228939966205328193247736264036955718460044869286588596111240261079140875323501715731079409474243600718687767383371023536915869058242045121999003267824794899008020459109146340491284469464260030319735645385090428857240753412942767169922871779356188771587822474876817634007185945477060435102178512698045086949906983811911091262691326620869194094882606369439654336043408202683068739372416346009045225887872931786117392792009414939792741571782009212593066241463790107600128610256670511038799469046515662243211866373080559294499628224657537218538859729177784715712934585979576614131187578668457544222774366701522398152577776356417242450550887772712927441355431716942637793587453885500940511054956988906898775616386152872170195538069912239367917247337809351956644508206560350731661603677587783327541155450943491616175126032903624041170217266751463997965563179171673366581638784497596793374079128092653305063877852251680205302549718995275005100376055359233605094468962761464295497700490928524251189916196693812524828430992903413657123921473208103373745282160068812544268805422068702053453456887199274671471670169475549739568293314181780668405943970848300097345811621951824771665442635188891546837125271251670032420611042623563632907820461117548068801221104556104883319139212614510054306282107595403045992234746939405370933105201362692707422849439247716210155003503305556860322171229212130293703523963894304779216074047960029988140880828354895794277435693644572238797174396850578707546236318723011998269921508870977728203707134571958673477318454276512107467972496449651783953962344090613942939418260338855621093633493892945986663405660696923828175289377006714190805824562711728880451684917296461684373410931943551915254081562210622547366219189177276894400436247673086937896873946028447560910473709603574207935301262008080049611109741246022883564050802102315953806289479411309016607948278387508225369105682589344982872987557045766310235930930820431741898887700331228059043589829974686847179095414250541040883538440310560505196542320534186633731421299177111297192434311986556074122283417513360613899510316143497769037340003487156455706434633586695146432049094420445104118800872293201927850247642773379342219140326757797836196651285326152409670297957874266797550538161411983446843190581012924139361823676785951604583556588275380975915140597731279144036665966291575026339717312145715046362960791804034303735519013304826071126611306468813856536985435093414933523206098070223687958753498820013456486388335967587898724955466709323047410682127836610594510686309825443318876023456112769736123629821285127452982771007284026613057422526629988803755951051646893362495368233557918518215547971386456140857468595695531218018069734065077789167185252986750022577381031262544977902733912995095843210297578502985037267708318616816201536303387513826035436263470934248921005169685985178684252655140910448971375144303025036669195690804443751780033882947260735520467996422225374040208536847885166302753485096039930281250696379902533853356301975185158964937298005882916014830341526763054380533482263160039403724331935131996893010112107447334790939404611133775966356643684979205459350907468476226235275157325717910752256780896232387985423741907855402439292328022824799222411833992021078329724887324787707642139566115398014080208844228747161338995139797680596607493911100794833640817979390786776837124765732541688260134572956231341050888325959606548580428892333339694005505015760767240558586644700642580357968278967959477966778846392856143248513053738597323230935619408266232944168568371395195064029332985568944409851782513630377788566181959738620955835068608174040972454600591956423924905507329354037291517372724686769419971739102665749981463785837742740634924960640789812211719950912608182601060518669662506761391962607267500007335837645578463480748558988982875503651821525003219540722315194473606588933507977000638525289714702837673384568505998654903074328452395609987726691416925711931575901263094479990301408840290749834653337607045325313937901401910375004043868745100804250744513706791315130987026346223731292378977956261330543376489207661203353975784787964208714178865700287190848680739226247121677633549801908995393078833495944576101417798146724141767489382767957181421393821015294677616652238402919595587110877802922021088163993446803833795617853166398195095378062374433509479373714193999954171259194505365137066653267827463266658672427501807188970585101199218500382382444798383780998616936873053994992906590314030022419295104972723941985814020480152074384884802038753868447418067262609350332657472743949025945171287169667494515521607098108132537993056477693722404071443333287857679990297249349991115430771240049469036096523162460878516252070260230348570571871383997806455649727623087049032793663395529118448423153298672086142991956541218554829042712027360400499339816518227765006653497578483965496826799030241865740712314046114826216684837011360441992110003256748690092744757373048961744695601136827840756216371459748638448650415335554916302631189807346686763042627215108056424755468249709059024601109732535504720802396043041456309293449295288118574582197532360927535660630443323590625185577396897641399675457341722055353728366423775899290082439587008631580990285771007710419359620412538305001834278246175648158634558340929431348347872346837212324225741444323153316129128807437864063932665842830599788449322150935075541868712719112030903375441153233123888584733705278195825029095856038224408204000789306388014621856841050383837410417393609689396229804112055316242205548943300103876913831582318699993285371951260198610026641406856482092440300856803050994277902092813436168977971434760961631872583523715517558714964711646551980739518751687866130614881867576233610121506812172711928648236569243039309533439258434750170377764532643636829823470007571078003527816394242482987350546376432293574969057303549506354527901785075813421526835050440795411999901847341764305945907092822272595666982548017121946161221979627286300221492890778730886905864125303148613361908876649555177886243359683970731040042748888265442834644299581634365666518417917481777974772287240759998592165009959965019225000551312462016262079016487460720308592808976833052363288422944674379079855991859141835854525993469982668631869077015666582956945180996010004618599777837726645084214820195897946785880725086397774277488674231492757691097631132656399178627160484150526199188360101824505968334999962587748757917503563556434202614582097375794771146787458448579633746350493168995592143142088497036713901853831414339453131000794897038668306972766037269396659098883170527517837121075702109211222175254476892465431734249146869847301498862149769934812686738950836850858287037280888833711933778682694468740276348591970765717384906372824037742367794082101439105782153729196977012504669885679139819763091746399660263337567447288703890430944890036395631015549174290450925810089303770679551564244110096404122039780629034455820536713730474375902173965121101208096239226871594221061838487907601100867858094452720563958665683529646579284785528907365477181325434127217748883864543247819635733551416112834241231718773565163874480124476127838249144328576268372533765527793172928097081111761089051803974368505879121471463372118143854740859180952454187366245658363571187770280797282082422903438185852416515329504846369595898231325753031319910096879278544816850979108807321464780269481081876341257169366549861220564290011984688524437181170522971416441642752010348892693900581731907516504679386579104482046175615148711075562878511564984491834175406753823649228940586040601389098334983315627231026652447662759216607393618320119030316209641995108334790641341386062618906010010384837312992131723368453808270437670579059329228706711276471091692085790996389052326017504557200246295995971893365952461800460313524717722432749848142008777911066497530385021514203587666812067734700239652341306650660223583206753872391025174429402374515948530824863408224156512329863922240092640661411824041517041750218305148521131956660099450540132274787751129038751707978165077660267884422077743989252101214859479893829265936601610282022104658873946591534612289880048538351323687319677201477876755437174801008535667411885198121082709408407310575547872263482016879124109779201582223577379932012926624602085578591980077488478419824782844598507377020689126734375282247916705615797107322779804164731057022548504305288751761817824715821910338099948046789774768593443756763595377800356798876611699206853376502940583844795717303449133723321589956598764371501998319852184296217086767016907111298734664570958764164589522584900882543733347645936023057476570231426195645493332831870329612345190454836488114431287072271429586511369164636493718511716593620755916028655712910417790308042755568530503770730597305321068766549799528454386063876601186736261231877816388851697923637168404053874164591396737105741654528965123902052371548226167272251584349822164655765108821667352206568852059103074696127969445850519700913848475911184627520395369973631786221414233487944670498599275689317074380797887127946386505234034551324787979784276342043865805575203794993272106127074953431289273641085408440514545804802282506831429745367533048430104327505118587619972582366662313472102109746534260836270344651104504759771162836094267589245944619443083172108347089984090613679888887241153846581616379735486240919709311846827600887763693416664651498294934567044700791281356852135060589369777587778173194693138787745917043276560014444660002558142797150587284554112755032126881786411909742167994081089596781569342573189815576284537786789246202516790518420442335979122000637813138118934563674778611476241449151346332022236998893065858089939770950908437959508526947697355775077880129526207216456592391986282263415211634631245576971867172586325887422878670127650086958998544091112343286663408847653723277445209557555766878641821608677933974508635866221872944862486097173537127286569241901094799593790840250172288644693217722093903081829066099105061243602166062768930256789758452870194935282546551140681457988341152338832081610238806124300904936523555300215565532506632041556530014999778120043269522230544029706036823760458473460819867127581576744794043898248885532428782758062385794489129438022757670306145977755490909711938532485013559549779004416690096189194618360915587436226570374414689747822149232355644580986011196638984355418178428632341752444509492198433724986982734296667912524002875980843062198128358957807971218192024422219449624389025894699318039480219515391242539816434529930084154990470456281089228938240235072681417840888944611276697245967739776948622828651912915751115673872503257166104538657875672573520926077256748175971569291844037739604003420801999275896222709830809453875249595793602850447776854622783834133093876559427502898041711941094727143842046086205390106031689363804012887379868775171340432920200794260042218786896066109912053001404658831860628064715782817431357604323700077023754997076385824066071492872859927925348329584167145148056254554377853003291999906894826141686535524312899995438960135820724371597572129640650233828971493717977992568307988283006033039018059146193522191406190562094675020614916787726426608903686766651801195203010953949712203435740690809120525388103906332246582149921011057411729404385456760165170131366208862371195099018773046358225559431288397993225342426283710818437643204364437567956850698165017458065837447373102867083657137451973414003827882315016529376153096585324839751325091850289661432212938206319998398994959894316647043584633837124241978168051575570158024680892188104792430455891818310507289879052154131003818542499172254738585919332522580704815151682920637666666332063248819093002632738525854875826133515561549967362917623282801633336852048719010218592555492638474452309449809837612922277657168489132938541593309762210803056124419575944535765503081990250952679927345653924581311628093234468994369361570133272222531852601767715095401220700032516342997360384390859257491744105083822762373930760691708432561085417604290177904259221605729765573026970455593403548130032807228075851476073033327156740192499264485599070361397667313852821759524032935203394004455766078706898829512929715883980864977725326656662130359803889327742393955874284797297267291131832994554947275740643528036172314432909735923829652270722864230466818803276616488947080950090685840328931411463218939905037634353004802819461139212267714044571841919476148643896431322904103966366948583470097654516782646190161497411565347888062321923508959545259055359408739097053287212779844811561848461159970116151575888157179413885392217940837816433034684825868407182429896192024814973086318243667176893310901176338132793706108578633702244022757701097125232647815777881995344752093690330053093334920678242557397258532169195024850520386055149787730901775893870120481083415782750979584380080147531095757961238510358465153340607403735935615884276706234991349014188226645815151097345217418050488606587657398264551197264303006067428124042126424323094694397290466939702317127102862131501476331861124246251763364476167312855265280163449427896193170577123888659194201711220427847742662185192157001113348319604165769786608853684307337091687823771028224192031435575852697781947473201697084137059330706439113787964912842419455631722808719937624097266658072877018551762779431427714718087787706526480190492434762346794835459592997881603087941776916858534110795869991293802457340917791375817770818835202437804409321929207242452282335320114974272868872685831850344782362880072130355305319769410965218087421508658945831335343653878468748517110461760140977133014895718859418103909023125700162825016850320786133326870027002933792556503213393806415009786484949343644543417410000564110873499486711822737504781049102172876928244672827700479499314450960346778217385899635542502457356791877350540137056858167917255702982313890449057668285276106814331299529177299971311524542631985450269677120247619613070912923297073001214150184040989312404192774602786751760335149946868696863461880175761769719277378381365909883897247356494632932338787152543101587845645361387189687143714218050951580835340464213005177027458619866691598869092179379475838262032722750647823800307161925155638317269458977718018746763114589488226657919573420180002234152615317993884081570784463329973030959521258615664618587093647528698711828248907828026536951623525580977723334768796821728350651804922413525701062779055990450309343964546066215848653654631321529157320260123527998590770286579417522068504403367214861477005139799974428188195511962410877647776304770489683991691074706118002760122784501959120033703367163416519289919480555111449598647432443326546091079500530800341152470068991327000981851400014768528958061217049313510622901921601986062781282159685188582015561382617482516570007185367575747923158196296255383708095365214285530306143110395489578216446996092150942212449202790838639233925919959640870736951723639991367884904951387315616831344860657138564630437715508929383757786552106379146257954143753824965714497929769774588826921961458040237662422422520274354366060885084431585600382409080695647992869500299564540428088990325370942327276738119834313463716730296021968471554066215010678768532320644168207102780439071058669738152333881551975296879201069318119358328412735422394306084585357093647988475157975893430843442336932401944191258063049671323375470822006170466071696311807706781403949276254172951621587741196753997109611174591034362403820520493304525424070018458058009539358514829916279411047448605380407399006971570761388846694287618498901996944935821686885782518475610551226224443561918277316445474813037621900651299772465340653944887713452731052253049368904312772670808283316994369763678604699416804574952451232724192933068316997806474213193112312308439621027036987729960239616286522246025437936139306284788770837582055833144957794476954964910951081333018139219671154033789210189799372514748343583697132483298189196295982013225919695149426375474515698085108096568687621148596055322975586120291078265873953190884825013178500926459594173806103218646213974460107360876931805635594862965003425964259922602476616409575252565823994466043519163584383331398281799889666087947526083687269178748879132605774463800963074723256017382179153194004368804428053563406970299209531958041217733889324298158828398981681677123868702174384954629278434203349407057791779472997489887057639972500100921465326916949729593664407422059230185623488716251046186601392409418098389371967600564449447763825699046767573898496211430908157306402597421416264832069294370411347777629156790545312436914054002180922511246867938512537397128116275806136030158844949754656565175554189366973288974502509869353793215394457985043383836583872083992893454172329900987717164973626971709797330563385347537184551712764223699794305846239419913458923936221744994355577600373812236874042534747956043742157783783625187786701564774652346986891663914898521192195179258946710982757696382258318474671454015984757484162835699576918548268293140654635506074873067512911648265895533776442750200947335842497953503935292802224229497951582915180404456959323403432203281233110569929849000639378706250543344368108450605825651617751683761992792461657945011432929837177804297738958934401419618836836941799400401290775213538443207832876509557055662403263778051024452230053234792927762227923000763456938448520007135902464382539568629289927964687928915347045045764449893787656886139281032951411156917852708874497489308101201723737771200419449674527004875509694785698520515363488241817474387734901335084238608566180938296855081726322117699120069568691021472847271392442510968364219450527859908693805225968654404451066579345719392470816072528575409889739592035686483683324078569179325247338949870525193589190128784300918502184936143872762998740119191009194300626485011679825399934283054838994227978099337250536705357714220634980059258323367002077067884478013439872509534144046746323287940267817254722851459910247271817483588127236480124529527254889840240147525883817801668082469011042690897035329151316435402773200163839457563208855525405510918095206145774049138880033292980286292264439606568739183643278766038282774966410930166031695211398970468635723158377100390403286263351429126772429625627808219038845586615088431691794498750638941169060352600308233909507451464080696260660626350303606513428454589159083250497085897561556708273937986254917834901008589267985293504764356418917472419052469209595446179159633102009735552372172409350114726063683650651165114158164593108466422944895649027731652375046165900821643458366891115611647545866270970301701928122161363835384151416072914774595849039847675391702065072845367913467585224824730049089184171900649865474014146675630068595813793329663553635540502472103516939857341398078356891763366660890989646454429169860598427969223242173374743084023397000910849468803943787013511388641870680782479476376915479889372919362068903713668950747021467829555860095239592311999100517114126226450753331239658466484144937539969423489761789902305750682910494221031493801547419499781980713784807120112064582904761596210913384833773917241853455663201897398842373307039394099146026354973137166888146714470189242484129761403479005541686654867784398921306943441406417638295638551242751648186089640627358550023645641298265622612794060846659416705271718102697943194952438068846369504111048448333576352351757199348513961214301046179655232897663197005248982189904589411815163784999166201282936248472369424739573147610104927211124557446452263333405267006140561293085490790888357848442581261454395612528733391256222733113940614252195576260694742234880233522968388875765320415239050923788102619905387735878047450247553444399595395013186438366539367804981839001637242449522827872663300327628501098413416900879526728955386571277220403204206329678069839808066916408653636412819565083945144786716856527810693273911902282759205625761013419286140381271484131006132187225088204063125131607490056693401530907258559089016202064844666189273396506495531598083201600139624898988658703485069780043280913627731797726644309279422720591243059954627046125970666655621181716377839337020868843244165651610517233034849807886534231610031495687597475276779478054426847269619873456996040809970382698046071504672533516738326781853847380501881846990750672016075810084346533023772877299422870811562568713194601802029358113242574237231703159515412295131296431869620393464339539556045688038095379762546660318293009893994747685149939654370840576449058995178059341744435376450287792501186267484103984427583456302642303918537193668436411238437366083441513365269003287910030898180005845388252817954310620848136459540398645412884911545595305568563592387139883610753820108333802173260751978016810043171068608920823713265911983785640599334893149115868078262582287149638249823118528638808217770174346117333102970096624525151964698720557557716625515677534612102719056701310195826323520329624918787469483488436087977471862500629850349262229205920199104362674258906781281488451770671875165652826163748898907598779467599843542601050699772665400149288359914239570521300603189772963116637842127140927726671672167633081793017265101638929216913357600316385045280648992957327613362259623364068770739796648858990628739861521203573305093502438308595910740625955423286612552444505061754094820050124937321474886289137126660053920823410614271385836233109244285312735170030694189184810658520700754878830143170711179818929559928915623600816762563095480351357082450125605072984040611484546371987500594342834311862079482086731838695498427047543333154904526776495891454180495606809143625901048118185974825934344016125283857505001910508344478145048046752386713510801383280478596717194910949843518713002145548201554704245913857799346192525909720602453423236624903348464816411808323640382542543451553018792624842299870174463967547884270521750846488631099089717775480200152903887896439936270547115621914728463340744295426849737024313358588377467766675423289752345390499645255383874136990847848319102660533790092157249219934715973900813659476577104737037375060612638820262847902495647455295759567016478633564814354178086909126516054507894069384870557347835695708313726951714408106481544350234871510944444231969466845534856248229163933325706599334670032975888044110134892501386254642012527874462494108684147025385647645013684322473427527793992105105580652258576768022335731475052414564784693977527540533500936453775474602077477389429508837153786694085776662856129481135168029093988009205794856251744352354780547686328521778294091293608374266068941226435699771355957721888065731194466011065163919519557396432165525327445192679377846405364389862280078602538344710844274357593425204585303569205831159016821806717028050487163508272529912364074759469121935183628136235522706462041819651786620091265378441820438549351639956915460927205630505448696261396059731783548144225132878372035542974770753424784799287056759594041207863921143405111112529851853011323854623042118821164541288766385193358887822510455927031335579803648021973034039329193416708481506457344803412406185650181569611171794290843475648543381451862499149498119130457233882484141488377166146416987131915491429465809762846837060889488085377748956115500861069717920043355539482789284935333276894260276239310645694487502772286590385363135387593325827884213857421745240439099941642012796979641579607042115454983225629032620469059454958679878249360648246670569062053216669553840407213489483591008009078839795824736737777548562181136257599501999658092800915848050619834610496890754516276737541454121925879110074937336545474376103340185845826152593216674073017777458036939363279198733663522868469293011233579985786245537733473274079901323111088271770211496617478549671406388081176912149385038550249251422204411948014345347276121225920372220409748087813660218462439319743844642699217845787371037437541720658583298326801394780177679359652873982101627497568486103608653264595503065858059651906838842252606355947628271667002158143232535778543692867475131816694555935249168807384804115220619988833982864375563217326291522275856566435286555430584088263511985365676313959109894460487737462652636498161328831931687724661225566794357680335494350495555546627947771469317472841014436616761743135839455582354986680944581808468003924701295561867590717677343485885824398892062629433721564515732787147329977767055259951397642079501304910913695220213566068533406937393121018902134729325286957521189150900376549032053307275453751920668069298418665736545571550818374781563601481677002133091405543630544305247348142847563888904116796718107320947772566152757296803313691587012510495282760173799510604679772986362975327191188544675534006181030943879985067905496635079164490013358416683009698908944972411845680610758059129815344486866182403030994482084529067861911542153951724886225846615379744251755028616466508265301847793952271264601358916556069761679663036393297067785756138619564875583878539448423853154320434542662869270234483327482853430780464719548006714277830813807421926292235637265582083008161638062825962234835374192153278043872727275431087212370494879252392048079924076950560018625032955919714199978845873359362477846951811779365290267517536559594942815578257223115526323132013366812606473470477792888225682604339158091812361107368590801767505043036434001537917668934979181718985815130517019352707540858029256030124456398965727026257129616594029423296657498908031533965075901572833586206646689662238662095836173152242007598347465751447469597914203138847705242259997967903588885431232841651307038307133798532297687583425731963525099813850176766060699690989671228864580509717902579056841885402416259248695929050944137693489213530664044145117729675527888686648023924407646248050430768823670879204712526753894728263041476154044966856536041474109168198369528780427814955329740510864582299703093495103702899506334164091638854552096241499452341211010853892813549194550667656187178179397832592880539199481436261559660474235157668308088913192573121409879662988193839183485852303954839181892079998971114718857408559897966019882888833995396675082641887567975742470045740801670848763837643276893168703743381779203686930706379054847787860599892668352591912302320087924206735378767007728211762509290335351978594330589731332858008924406298920173508928823926386634184812176714871571296663740160156032632586352668782613723834821924641965700760875735189342138362404657163285599538742095738532104493610315889062128631626093365679641820366860270938389719587316480475642896487030387967573466878204372218104869898485081407865453149859346900116913019277123088397296299286890712018529383600500904198514465826607625885134626408659866632402945109579259433987746629755707037050215122580794909618392172584843528650752167913437854914728252566245569087336913683988842936377386240151481577108268131260417563990532961585519864141079217806790707591030243457959014441702406927359509737030504921593730682628806280923681794126653093442511512279922977456867391784371038690554148195720024981723562501370926896046093017817123568045473841950017019669604768671140085292999138324335568276322219325366869351493687577303256338403719442374127955516055166479569399168436794723006936963143396011792102748268243589529247354827503222679211993310673652016826836919063465209012885027301141455925800416267800719994589425270516137542619855693923449225129076237822696482128794872869197372693057264687938958566601589815977602899998707491903842721794994920917691319684263516680278078016867059497844409504308044401929439606715973667460596953114336939047898918257422863193856394677973297058182290782851383604568784424488131608103672494747504832226576822555904568924095277660331970540186943896455760128633794669488094721928108435288021225720274077641915084115672052317427187703500520232427895493061371043517234663983650108343034433691421169319363820248031462165152512246619193131616672759659451070129959087321650338365234842805539704210529917050525417597898957404950137706531915684121730983252292679638035358619579745996929665407277708932709872573049253279413489681366863287317114710346559578287666917952407919252416516532101504484777190397211477757450084764294460202111640005411619814809462428533707627470281364967018890475241234323928561255154466555799194785413899307286726983854552400890454557443051022509489551961359998961476397110180757439676341655607956366585729391601006623991470727582073140657279770675662608827850310348958429638854193708833722870095587409045328746984543233620820837226703729180446622224470498253554402646548033034330433332515026065455163112733558469121648934907687377129497441229769366728643016995004688570601746841446876924148849565569181388387057958474065161318494795393962647034115639079695397677056817340247354834910153785125830689454257194907496474358461955839409828715363794936447321979882238245328548510425991039843612600668360481733296098486197291385586049017102981053769880302241021598162738007024722995339959230330071398776026559275250466797033485629808807040967662490238740778297685670651319723452196503470873925592980142428106032832988489109403675068569643771958979773188843373202439195472223181532973380602837421536650480170383482256086133917526479450161558916309974240050357432535722617748817435339933922931553142953049534499387649471372209875510822022492228351556004001530499135967419681714831239918540700360078948066694553417218483827636156656501832118141445374374558241181112105272029942421331807137407294780341122259034716552536999362389111772155728503662398227724797155054771604611168247390172616940249916692846940550891537743150787155723091701716652750404107602090201389805690622829735176037996002062296641492982507767524481524061990778851901274227389219049159603562107214158388525276492257579272604154152549540270810208879339159899309474611299413943898509981610383682319961787775397817753045412281889955101403080738141734487382613231978327633368641850567254790128045979319469291765415770551918919250239312782862283218817424932185889666499130483182769691799623533124181065931684034428233061313143474431844534654034020952696256377053999898824171455665035147785422452831567238339668050466661672537582418853524344371577578907370435887638883879720225128024357553319187979396097674567770862858049877939544247071369114505534507590257553457120517972672943418328746067252619418467815993947427032777966821957558356824782900126528980082678259773359460146241606076352246723099128896531982682175082597309532108980146204214307918421302200584000499513242267213845176562542856785684678816342453080460564006499730607901760005705932351790926303640131511792020769675062866131069921700089706928435334801007871541260930405417249619121463462075723783125635016354326465491051809238828682656745464501775231293253581178611765023584164271523438179417213175553139186831853451567384064394954549044720247732419101659713881707920878767636252786486370522513254813914474809227557646569031980016171916307523422910748124719674989090103983433621272680023033458445606870169390701882257131172956839431049240619206724425608817960434020562395687709539960643991161007840121938848693248999962701427437997654805208536173451870719437598419940603428019389960349105340399102252415138417134637975272201376309652591007995900403062975058383787482011942724303957384741172199377152255865470766125413295757814998713747832857666186767582808172834898017463718371617450548070293692503433308136075693678445784578913406355757742126197875422213845804640718169814721651834494104967375388701133935593861059399700232648724624378799926726827251436264591245634202814246441402593689799289482939561958912877568878521081546104679958684081382370986336148290114203749065260755422755880099924997713293098933283432650257377392670726990610069884286790794965837196925456607752351550553943485915921309117027831482527191407931004710111789758226299837390383013722114117133559809655962910051725774960646078420174340432418759565495342854741114759728705014668377173928589459983510642417354031352201464576516127498597289408143501617420978013345589410268251924271831593090931155971557888173040797943721617269041009557619291581493410819653845158903590973625237217453725806697691863968202993377270907900673619649712333992579256260195780266661506392880641888585178594946635823875558158343465824401255848337017823025103787449334124361733079550266421632925977899701149440640483410418425965472616529284159927568420070694339400159511186514136437511421097761012489207243476654155189757803257737105687014288086614128429402899752416987119437253645836362349903553773407616822523996225706769197334749760996474919174035553003306174199363930727119659227684816516884335054230120567703216172710541289709276366100328489932021368077795981245893218651438099327153058799080381957009217788636196766266143458876034705724159872546093778332537309413154285126748561590089039116725671963975568113358185186858150280621873200453851791775492987986873043406801276325684127658190987454127940802578572640826911943623152886419885298183169668623158465978876524312232295877436607437170809828635716587923096831075381507366777691969242834328241924537379669922729656136135458118717649838533404619654432997129462266259596800676653289414692875633118427790245439794319609139059585346095007637928213012552652488729984628785023770925543392284764324123372928789167961371085048474630092894603937114365636296952807822684122294679619479136390469721611954190035918836261245051845304313790308001376434011602775365764657730260599976424618758659781972684021417653409426294698401140685593396565291633532683524002837747756687930895248467197794764003328283991883683121989071791288295185689308745331887187772581614126263340681487592744029015060717628341261720800053446264571824291211768880583082495380601038187780698074568987787192155109312177664817316392039278854576750841516805396120660722555551824922081817918134292952191154096409582799530945908826731829456312346687678041612952067259684121873563812764024654298058052987562866780186684475830513196774640599038173771929232280951274846339737762067829101176350942543433051673766479430572312956154384231567493874655738733889989919607417259848692962476845945630049871631392657574241242618949701259195974110755709728359137443785820640520657298583553715275251892910782806492399400518001929849216629487710545460567260963706528588087927395807109233462158931166946265711510574995868265940560631873829434234329001003242695407944916433993355074701278671402497909084329422232462610584330742929574002137648367912951999689338783197072449756619666844387710003107804701073944833745601704186096246418823120627330445612534636282895550884078792633060948419704816771181465394930506439846360595129546565482633308453733781845915167992135179659912976432508715530066777778927009550982574661737338342237612330785588322658494777065832845455795860678244535897098515962304854981530264567798987941141213208736896059510375486387930988698735344099039033563797204921101731109945575751903350798233852366271991479115823453146988046144640992167646018155163837515300758598711723900237313944581240430188145847459524193642070595551967343070225930465144408439352647846829186322279313451147369766370539284286167831847144304032495893481899807703691570987527823621461646624378662113291106256952287072557563577088462912305350259885441115857623170009077275379371781801930452306687546899730450196047438387236109158022162370233551585059030880709900100343524071750521616598349195610366020863663492240547010816263120473906788073658269930313712661003954221514893006558902262729448740617526216869290927399156082335816352782083609634309705968716350051937539061975317068591183221489922811527532173133893909852476721208577098521552506172213414482933264495743531569605320708214347433055928587710446886712546966089513699924677529834220790087999218368202072599502484382098940652870165099559821352831568056913844978186564605584399630343139706061030063062007699049376494789455666465509717591679787303989804734993718712077979279464261193444065886289340045903223838831771417985691643210125628195527007356476323176000335341578195800814417744983924221318193365047245844078145914433932959958152474088311031355983280800480762396224975537411230883224287220356540134849663263588790654352022577325993253147389560733657496843485338192531068093657325155557377688547433748751798042014407702168218939707904077377066992107679257162058717096047355198922547976955867411621076241966367335070595845897118981286887793943424418153742515948868379013722667953273654070200035309730527847669724657296828886302149259104988924460636200921568543757677100350395345076336844905687508003906735378741338052608108412012321949250687921446018577887324090343049037456685381273548483218511398290071855082658389448861669809925560158650195910275968983811259222447420419561076600078842096131872991537461085784598561973358187364693580383998967264292595867818751205072151353654606370336129537050145484636541245631827701942963048332575960257723249212921605702901123807105710377427231693225234178080253597208082110568435801692680156473884820749052058665276046234199431427763995932760605799925569645345394175319905847358158647387111659076447715858484646735633024727286489846094259850461074384013344998604866086961172429016104215921787873775462086645374503142686273999900761219661023600435029747694848280697040917323434417211097917793692086794579284099521924986348261205524079819283556741570061725140076055281458073085472038963171136972702113751652170173386778706985845962725813289386242554835503815754770129806039373648674909735921553687826381031968588093006407080091925045179222913936379092894685674227306619083060207126819384258790984566472608462892010448958247476818753157070250832194104442089878700964321869297199109154235799254846104248583301506322718992540105560172001839219586212792446972337306573227430980274646372804611976200148826093096023334394548889747259727321266004127348401968084429610629414992508579558779179656022779726729662578945760837120231983888264095319259352121684756861486119320155680397182171072860202827868993793258020232522268620859924566813740380687203672376491163469740509361491759406179591396789129537613172064992251603083020646039203152011068098409779005679101220311278354388543327937920618175882989902056725331667858872480870490101561197170452827304696603548471784499500222420670013592356051205619398376259931195435546324477761302969967859403200722894756669349336369528568431681843029518870901206101125651789793109552275302961206954797822100572990134130402805701070554141131363239179827022792596605290732673078242195092341886120056866738891075738364380750858512421110801138551885425556754572667387338209671424890951475318523534538204293392313839139630287735006570784893755046987773329085672100798954275603161118581599460746263940010019265780512316633615702254101482198153805970791922494899021510222719429492718093725246842552588778462781567392815906222265348192857156981092789191301405765467245588789229012250331766041322217728070167965712175989747363210253103083249257477891762911888915978401060169213545317024252807007573383374196510941029307758807525105883850563834367783834558743892107313378853129093127161091430257523430718453915249540180786611645287367857718978656504574691923849232094093438854111985928463973166937465896193973780691737373198508944231339573503931778836727839794078009727163510844120351390740443268980984813931433224912267923715261372995966638271139492058362634492110486257080277552224335131183831437007434977228215020628378123881611907676818963400035146523321889642184469979562055350833503655770409011921761081181573474941477974627860135462435657481006026900049070880112058159829283790024233387383896054141108215192222824994512489776386451983622967170853673987426925938405691990124029394534034137280721777033530318609332421555496878402497270525717157319253272602914838188468886415542274738836768743921130228217553087140366679370053811643997017804394066777871390221626687501570373818240098624445261219918626146035733434575605967276424050429129590374328277731746247000198174814581846071719880719849225802443356858411518538411744901021766822350350047938792249179129547222555603423419526026808741801426269315220303531825515537222534543329228008817261698950867956688847253608279233412058813242572093383667254559281464426945194456642487912725613160194566791910776348540982484891178467526295034541352369145346037195868698865430890393433161732933753064578901471844753489860398473533156662086121647737818504342280209936635904870852883646390990437997032663076037965116864199178592564276789043549670652092367191626632832587996061818340148452894350586339287273378116823715499547089296388549086850369708285268075553726532103749321414279995130055858672912266262448477494085060993762810604713904537777821294929897361979744245742440019564196545230946842332844595224665999685745499154291547004584208751888741773257697095663932785395442819082628106623501571938402476002614466201665966168012498043531222231204435804922977062160339502551822190269874257313020101906998202478254939867211685695514490792508417599614968859352359203825117953373306388616047874334899879631979062811998946566227182549795350732436528137121457340897484410582729246106533400529277937654318693448266657809518551596230958135781297169508529418389422260677787373730391525247291154491915794971852787735609893778469850369918045033860756347963947140518302913848276118882686061052721567696033674241877907080896398620639911155472951856380741916249022314542518792887542055233198574526832607625380146905963535831803416137315638921934533234402985682932468829905786410803088444132491488632650139171329911204504066991287243458542085656057838023396097020898159215014339152725180485859394299626718805408090017368230580773107982246044438076084189581442768299751538462212097364310486221222460770150937187607560909954750492858367718551483029186546306290521222411458066615648406525207059949778509575023645545020935827479510441064088170257893444583701643312275757818693779162146459057557866161537549755012060578821014755514574142677681204459564221343856398041505645424403994724238648252303089129949875023727462533452875086210122307834592850523456102151476915992639210747315061464592974619750564782652754161125020004106648907906244287307042711178217246494194676008957405717169483345942283085986226822914391294573697372495443190317626118148762349145349837009631470261838811525204464988443095471089355909677558850574951724661392098987333625000499182777915350085262402295752786334643193329680788316145928794199538731901939253963024716594958818781375507008129730530021528606030259386633099178169953835801292245070222379668684829658123832041502302519450825349032530050896813402593412267467106026495914365416131571591302316321925532804349155172058537886852418304413225159568082147555496604284684975356082573079001718489164611709752716357460764194299599216240951509446301188205423498232405632181135500336410017903832586326041231319276063457271412240616770104763476495929397070017289487901861415420334541748258395426277073420980069089034456957536802223463821697112809848274308089138844206895212637815958053522507570064148939180070229693669948604636636934686170096807502951894305334089622600450318488528040777877546121060730891214039262361316170580429395130274511094981729288624553309723766252926450616800137292075977142124998344123934536590563223441827286066345033754970001102785743666304153365089146544825390755999904494589967331779995281787587431139953583551699777229701935093228079253997630414141750206292684943633402008754472168491551131749885866488607720291987861381583365555828397865056299781565429190051110599564431440254595663416953213666622078967310884548277477858020582206035889129640139306038604064729680234764494787268532702238601151429460522665760783273437540423758387868276084616506018941920220690563081166012000601286531665832571478321901565849823776731656218797897532825787214232989887164338204057286367528386960025032243703179141351886610020909184768246883937670632170065159947537286769974271266472243398603403226017942549459097789984617522327415121440179238278741061645668831976175101503443124039657964114608139136687307479529070454363500426614200793864560128737146663571808653912186048780727618652333962041999880782958915705170489274323117677086392868951992117169876182050286706986193055345661230143791716594756687074422008629997327023679786727764881693961282486273228197978029195249428103266065839806772169033001334230360210189447569558023461606129695526842557135952834928445080484391973602369040330749174898353396830491215788046843770677571006029004434757051618213571453655846552903160111620896373279299630388489297547005656470071801341435093957597560306645444456775692705684297434325777992716088648612894669849171181899363613850717890599037712849832081544992737045698656772617110622864773852736823159472111488331545733877889569087061326040498257997933376170848962816877704488435021220088377353932200904544012189677266512956710487359272320349168648613495173598377445961188418254957268942450733431250023585174480568405167871371579207409599635467981182760892331403537753204545392366585029483997920526830171276777788855372762223360910765638818270648902742682981537314275834249776779045537562999503738577069361966077512533871412631184734828135146117482822436312122274454170747810045863213169710490301524213899550146643990980114010778450974827040438648922227997392857336650825162430333702861340966871020507576219738639245117818862852855203896243537318392810573068775513352327893260532248844160963983880948836200671415124397320107077477607440872142326356192567959186791970222484222263577392795133919114250973551990920714560448713268163933169235400133267063544754145190130137569812508535991999666301977041318074088437301548844349639219099300914896878931744597104729528825755559337457419380978166648015405636453313720961863352808569186075749528899463936593473519707963735887486865173880006276530288539212151499454641139620125533568225483728428428653089285034907293824132336930754049448433806173264378954477355845260094155492607047396814637028935619997379930922603080386537114285825099680924859460230081292766302681019249759066520269739642142372706426166814385440452254419552429589203166321946753866550326932282989777175469957883834411592438981977813246575685523795104792137441923939711854809394136014986411732764783124685736957690339447720994885873931253449740425900586196682293557843693380395176950023854760598419344843458616798310025657789902431667158529229059391735827635840664518212608731391276669749278678207104530085624015420989760131731666028628962239884455957611212774088752354829982481174339871115281247561271205786522726674176047283088922912771932859985881770882921487689201986957929142480936733555670594440375225699408467850188332299299019331722367704564378951028138670059743019358917825378199310671672344654596960124220761458414949201906042869030192208866353865437798957472333385082485223794470856766913178355007844653255073709979960784953956414481101492392879405435835369304159024386818862660531240724597745342068018217733563048307539182563842322884028637091160475785223418585296795631950969743568543973396902605671459863713704225468796221779929837066416803883464764993733995258449034967097445180756654497833420438108800290850560127038988290650061705722611098603198218631554970250876022677464287465687396693973881423980823053023462465652402571321895921708115270687669366078638923159116896115181864019446578380606442253246529068845049324616739291365405355115330058440765074194431594893910407170733989341014732883303172280741795396048372683947392180166905421530260635061121967081937527592774537123945902633973102123122618092921735862657091799093338226862667103531388840108442123992845972724136879458421013254093206297543144314448302872162405158045282049171231649046494171880863552168648251646953642061600783426900695151703338256887187805966565933129179101828113361057258682494384240645322036553872176206618441364840174564843409476624500813838823707897070535779579282648961068570050646265831991633221037890779821616761400186806946570391775609300586737906195412731423461331636690803377840549299513951165430591343124162756919462437894421928744083174204444291685453401844096861203082375507583790703752043064479404456524506871398469598829889421569238375153124356785937076235825219751113525307600061196891000085633413874975346355190301791627740839937238192827020578454969745272246873878040985381673154988198691170897294530528096469677471188772093650174840616213893709347513476478654369096423779872506856954368723649180824276829416458599657461626234178573825024501078061808576590809995396762685367084174404141094849878597837152173188834731309655250279608982811986657359432170109340205768072774535926255058939828870396610333809239424954165731337558026863631948867131410593195549176461810358632514054047545085940354946308348738948352521496677442878411363597954569443188804088198659594269523896567115995824054010497896728990317501363535389001326823016230467459346358788481988217691759147092269712760563784120380004513714147441039577454187184847721067282050210725975377537727737410178618273014410368154923016383035917776336828397102054923620957751431792672619078010333202660435120223596479957024026622689212957095092295667394754029473136810747360443880621878878043135079118374657243183235515926917351465947056769110696436821980321909711061973400596281924574239172598020190412935775628915451678611709299335839718213639945830715551786384167733126997241013564624291382952781029947095912920402464761841934625009065917943431756296333762557231347869006812769124334908203974409505401286553787799184155691063208617809169961866404382031268801956431554379112108518774317372820103015769939868935140661507872226214207504048409585670925560136701110842679141719775969944718008728828675146059049885665540548375279241274733971888480554548050686420281272955698581172269413461854768189638369890167444891171681310416597851299232359457079239740161778287186586145761032100578777617864694820074966629131019698338156725893359736353784899146852426613209858362054640196341573092937559319760713436300595085983961722718994907774024296054012129576262777907303697221898824835337214305028892822708153052933256991923518771652685924228692726114937066735025145185728068557814663680258433251650232118920176447035080185304171425873881920480839508721316621611992361210583377021938889754375439596070856637592648010822442457275118817257456692672354470621478046353145451648371736957512046429015121389283004482784853056763068585295869398388666885716464451158013726321231342910306442264171906638906413189129659086229850215398555295262467509857217461126632662952427213011838009525664382094789036172621583215379160750688929767516299102233810354999503635669749221623665199722497904298336869455311369795376676817901880909564803051735706824091438990763476742597379996149228460570679149941982158860190349217712346975948937789676389692100031985004313605417190975800340917816151793142291530157302367350605982073872287627162801033485676446798921324284590531282163545115841037258922990125280781073802021739990430940619874160615774052349277456729507427395496540465510232163043734563216718389553463919448460049016694072963393113075477081936564628708522668002615210997960026569617010574540314108991078626241887882351653213768791033403598950522977127042883752454965766562170432562557649158500960293896744070548654765350189919702869125424848177504894949434559437375568747278418969209962255696306183424282466216074319198390316433691769867758923230564756493372494126919755952689185043420049726952782374915760195846503622427035545024511345906941085109821696712116396921137559879660351334598068561755578599793442503098120379335509900776151367252642335154843357924977864637003906152536315102197407313025288483165699065543607340413253086505635522218594013928536862582864088241276627565687125479135538582211113555512655985609197611584327667623197910967623411088647070737098260923261092899447197580472542412614447707177734528334932916091232427478477343108205556881278242477244971375654891622841564017597708174251267503087653138691018621873576402735630351522622879563211824806091149080493196344669494284969821407448700562530959652082430049566372577123574780846543459759405899685993479448567477402935584397147059935604850703550231895758954351914561100431612703305560224561267729589498650748185567295223630084191203231327805039863622559324251539490052529500594484275182455136057779050465517489491577648272235163929188374440116307990203529236429742107965065708798477809027816394899686074833014655219033210615682612743338689867447861765227567173253645573442137601003437712863604233718014548521071705084927032498801076596588594343280210516473731061241950668918601852556315489772453009577825874038954610248731093177233412800154526808094480692732155400659851860856926686882380633381905766662342485944616509609294109489148237887443216324506967651511180914189221565689966825556122954615482139700039709059601564382773983145006382535550793836769732512241081350796688911358031585903854599231014424806933591704090494044987908262181918326370121402917310922975719510282317876328752724732915694766894405370311705315439848681392543883211524549809563124856762986981257775727051332775387405947493259168236927248743684683736714080340742151985346014984046168785567343308253404795169255029465241283072164084687340074176325473051553425570346882134458973587163568777389668861037700916673180343498219847072843505865127803636448287469073921504058235570924354848119273494954031221870645455900310025988926769214311941081553981704123893879663305621056265556251506811893433219267966185121613846721300782283000593388029913465116472658565753148159930248988236064215753364634116891640958171413902120329101488009473609125734743026447684848069484979026442775111123872232779809531211601595191257665945951908484211820064618860278151348258049385021008054864556105488899094768563429753979416485400347259249301162057836701288175848053563781224630233520781019911234333670023747985770268335125204232911236494951835233540246878323966062930304222204217697756593133664241602879412950928991751998306123843016552424744135139872285299843082591816745954560361229897286502570713588392799566141200487428457437079280371707706039949568630180855844382333483815752782421480850361394887880882376179863115431686556617122502015090578153329134737366790247995725663286056014924910812871464668209322623815143653844700387345890449562240560029322286228267764255471535913625502943520863934670028483303963125978554659724320542562065781183248996139479331254462549081161950074264516619349542071614943675063512741841558716947425175569486702117337036238330148818715672944920385229743277001839083543460489768057391151676567721020792883619228856739935663426561747607714043510868136692399696343279892533300106598643061572320458431841761406224045442432474076948020791261387747934570587448880370950289432731792244623559636782045186163298454648343099073545082933650599560958817461526405353738556448644492415542629433681063140654215322683912037166753160254281510921576709677598002254068035299230789731562124997272605781815914621790653415537774038362117961637972217590177482201712251678185791003328904016789022009902601902635479058553563472406983535169095088073903839788107087054504859796814811514498970902305729162940450410746982780787725713998812808479256692625020448740147936790503665538926607114655023858460793887132316734264862404505982201322834803314436151107648752603011660129658028332338633717502344151874730593263398946850084039387486815123232446486680246385048039739383484365182469353883072938026804807981923245153109287246784820456799937388162581989958722545629509417635240243326932806470518748689559983376922812858582838473174689197926866798020002568494985830043784636984252305120897252338461766450774072097473608432946007081787124083851045934138280175794757078953993662718170261347103890642193987030796805538630303339318773213722716582030157149630295862435303923796099347410988005337785597784098484528264695060152330287557703686391715200273149944213594537151838826871988043471559381984236763680799517161187734587960215326005982714682590828587152580607906263403526106462042968143964131128357393552944861782296813457273845953078471030225031520405258784569367845114151361005187030734108542177307706790206350293874628716660222517822578835666068926515089806262660266463709286823168733435028844819877794780989016499492309584483888925856122925309789855757244970844262700869719962604367660022172326980446946596933882915917621111213492202619177370114430365411663329203903834909753609897254068953743345238222790412894978843857258020020182048145773744947825463496923562277488987473635758549927288612835043138817032864066609539760298195869694994766376377806363816412064766554004419266051159738701276984325268949862767391582138210246633663882785417168257372960006700150175867601430345668169273100955396291767032699206652029059243037887141769817473113184888842441211031637408460329670536816763742983665246366349015396508482797317165910909692029109938822617432103251973815641648759652089623432731088650985569543576365723759348167115989320526829100460620702158896743757768354779928600980961632419880238227974821885666451018665897815544409149051875122551091194199793695336580308104195909892269918482110962338765166831269591787437985211780724836695218602303404510174276631621365549096228741905478734100520366768978600866278766128286460681548942288054015878684906211314568073304494793904224111338115413559784452579846453339467043807325942267291464081818655600805482944910707401549973740430041308652385416127675048889028403168426741822215778342056143065456136432020415744775974384796856832754022498356992383815521262322919313731747181255744283109340656023109320580986171613805197807541968103991318864617046991219115196752327762176982315538779120043226022466868048192959448174727693428513501438876157117711391411718313568934774424240814866289704282356521796566904881961687651191775794364993823643609731503743450932559535416532877218661474256425254885070337870924243425225388373449060080828919190605416074503902206314842608708951587010826696213058269242347263625770160452475517929560074513072827710474790424096003624710478346041464225490675263622474401080936362403005489345010489563674361683487999103954827671220953335434421576122369963055921466899090692060524131270881306374743464308887712541894415113117848266715374959733190578309446960533350576973974468182733642207703100784061577689523023579671724386260913287341113797569498797192947465406728179089408651863051853979352677833616041545475087276517426129561525034693771188346079965118890355876837087477371383101848511804787491871047670487227694299526016735644274915447166267148230475841997686259657083114905410246886254572661418909533230399717105473770346296384296368666707890239264759098483809701857622422823814136252737028442231835162038021809823991028579768697260993739568189940275766092730477028860877608467926121172661788315402367802133860114406061648936439257122933610755979409448626746197602598001911004131515996890427804169636381361438984364313609185401000774133939324206547177874652081718926170089777234212983412686423455630116368977050744361590853265025983592850992883053359342379747754317586129731425050851042415449247864431990440816659278255870303280557377505612594822346311135921362085291608723205709371217592300132574015771503829365061041384721044229376838119606920267085323085687515586231144541054195083040677012357613019426962880488001509405246050937552761969839745073045312740925724935063413933368076082323529743253630914344825021595050788361923970044848045691889645818996012382110033836080944066952488026980647267976565038962503598732108926576224749493631820553003852837043709650237446660702151424467930382338240241816792175284917102244332314803946366174398237715707299522888785534147901781743061969924593176239092955357412051948674833276820085220648711343687291246288304407304814445437617437842607503772934520388165087639967547587442992482433451683749575529772680645035248325638114812854595652071188188736302950499471334731179181956677031830909456864267423620915874889029502595196188541089298604525923293340416214612414025962501680569098172198513446699951185119581527227059668262193693353492504782541566703446237610854563313868540175008811246270251334203772112429950501488349051277717899643230709752377609843016760604629283023225363212675494806650074581195467769422973687517305583918188324846445535921136355332158151334472791643602415685968167950447773314441286813843673520791078575815600436725848920513038323069085355692454416735417202193287268467309626122933904376148234767707395993656553621733873903797275997955385309435731870000220312057300549379934800837659810365957140087900519751992202297418534389146601537730578470969936648030875627952927915315401782768243623463533350392672816216675254310926001417677289898828403160781890524887768830063689454752453818691666025135759745781170609007813629611291869283260366473444524363655202989179963261199967815532169204890690498283052523797097395177964772666527805129634901185822945635144327080934555622444213382453617285628458016655465104670049195928970056212340130973623865961704320480638111551348980322977658810534962717304269569274620391712873479637638003568641389988632771972740255049103507808991140413764075050514588488195182449292731359357170857230554261793873920129264738771605056876137615510727883327146234986954487289049791348254609788903803801121932901347859356504596403997768092884991142633542947496789681736330221092390834219745424763863177416928986209274304168207510015381056856434824567679921768185940853504118932835705219602009824639464837780317950174829945506375691127948482252672585764105810698705811768256923647606294668025969258155391037018740074899908287705134300230403458404583060273968082628426992013149085436110937205188975153985116701593881689351370753307440416728356543664506806415194342390455995654594013910202313286850717508928793826236497242509449755551918588325912655147058553519085051548466758942720810273108205311017308794358376571942066689953396283918359507431426359366954701133654290968958488282389477692583201016924460791914500126365779118567184102645293189736550065906810948485889387210652424068398622664242336473430570598229803832432527246068711469776326454982706701741738727139697627831285498735449060336876233067209619341046844486346426159186508856589062334179528183603349066517877092991871160347906373975479175064288816987533114444914755399757097753977019895328680290985112575879043527950497347342893758401852135915697715558575746365476170393329287594584105444868751658075234326844747294082395747351627155358657575774129448507490704543529041971532942390545405740646680691299467517604154073488058863851736270403895705287928493306580471655687868066183950698823855112175453739701770757356839881479648421172481596555564798133532616813936600353986235537929867792369449668681295564155715840177870797781639916195237153964090481756765967232841604319265550086371416534529006631115811995367780844938188709267003675041258236592369934265057349463953208907070889140211029813026986401834271133397273159131463759752029216165233369719722957110530230817767850691523227444841326378101007954521889566596666500388474928928844711247100636930531736534482742061196245348496656513997446530617046649714140400569426773245028896836876004871254696970292905082097965013743009463022903565195004538113216904847158201082465180832807536147462120592158242716444070213488444194888314221558346213172791070385189953471755305309974405958742076958640639921563660227004347083502313597301339336346859914413293182421667154275774518375389443739124210893372214662290184219729537381231736799926758260325228559602516153473218131160566359902722212670403766506168626587465924005603104148035072691556975346853925641974948857170196647520506207912495570046743003897624777844425067732758748879469901762374244639523693405742851545350417986241123735468150559699403546705062954690062496282072762087168679166549728035543064406597658807994733160487152980527773914368169375058912306101133578376629509478360633000968616445510300108536406290237638015812579069517163762254505738475280130025906032454648053682173975440056869752925905788273386125285944093017890038403205864567799043787922721776581045571755473145135850147186182208017655001185910447133632399911725218138814284576791766482464274534740316736451268119982005677103743322905027174894493022808627123088727873726930942495679095795943279970547994619098537847259383074637087826297466098970950516025281063585774992925255158668367124142215815284701320431796381666472202468081645116953903500235972562003391481534362250643903022550739949452709623284285484624660761282873828650706145176190144237633939972942412575754777694955173822841797334774806517815541994030214647095882448422826375768790540593567651536860256149701060126490013958180058790667661372874714780977077731779570055249214696630809987606118968911445245338340843665510840497416929887123843313947119705102717933522041667595678729809301392663988758327839180459147053251003925255066279969756581637937154506520009528320598611682037874343301975603536694756030663805184372157330966603300124258254883920969246435418085573520004278641722981387076575131362257289282501397058193602171341840605021158587420349319614537960414431618341004983816616930673017557818407415177260752710107671026178751547920538025517916401255415819699169405966759017238785110417341180471367557527699271448287254172612707077535381049756284659923608838510923704013661863415064238629995296994137112616957179101950518340990676172124586500379978069624708964889519472105035757892444217871831840588194013655594996914616420615017313625596272681637045305702631287698353473684929395396719863151650061879300146660288475605960089978720812391291654483785136660058239877641970172205892107476325660319349211172890384257713160244574080076704842068056575392856306345741551617984927426327538130672855392338160162186378046153807457226532204582209799649698929992145177613094148829723283700424110219154918395707613700013022102134036126922628413176801112066182916732934786887982786557358547429581995059500931362778738609051095090117843503707207189736172676934893417119108216583099667310899298553966372093542729220574056422794828600166640935032802263405543669698634220941923174263500517121014918937090635041490966265108817371560375259541759109251227776908410905920532894780017256340359755683763228047675372856614420056569032567353454833725430724876939533355619581323176523196898276744039451561788052804437066132683490354833026399298070854097044558076025111290012617147526115502390274665966967420219383665888086056457196549852841758342265943485504424902670037116097386178225308696431110900086009844280161322262754978375925240360981985693697727487580793788459034836405810045679230954176151120313914049768411390236066278597233421296002439103524293802708643497861378919020812076885638390581103469690424996010270007567193903989048600717206183864873316399187361210796293592827884662444433719987979840764340611294868569148772412081332381749007865520027540694303739639583142560416533927875659049679186868002752897474090089213060394322248145902777677778334146317789585184840659386825280066704676410685089308794393709074354602700659520244556140737216494458167778089471726776549830437796621486165660940722504438840833727447585226239241242200203024721022303600972681552944295721386601645187559173217036786778292241194781327108578293918787799539498874200738886403335365042789979887138908502618800903470324514705924806627914523482141897578717146891182456338563096402506653215228833050353738021552818274125821391938481160623792057068234206665592220827124009744446121429004222929649019016002080650468124248183968638748986414442983537565120712356696170409967842439652869145306426414661607021684721404353768120828117663982249673612010511870511146239296471788149931632579522808976196172656289392189484056898293902810176858390634632972209607478505727187706329351295602995299275695468641912864946312729599264519451944939169687498862168193773862583412084852332449857269962965194367949101212623034823983949773696877423008695597112890719991618049035191198943269261613518913022196802386364161003020841790846099237499417971460639778324870559171081190978914970523894798376691177114859362317425082265861019906747722959054181081851314502208665618006332857917559589482545059420491760193043876789662162968997509056849923892353226081026521481792860758078577560235054502071775174745734951507917459178265335200870325074615895961890408986507535560885265027085873961324751592778824796360327490309309488852983816099108412977812664438621563544566031051732643111164345588297327927936199238102159810409668717148538669529023070066228625142454337119368247558668348843724414341681687660833639464816197706427740486179673942232797510864340425063150754844270215526081755832639524730655925412160275259350928878904638642463747306986949190091607744504564291461114997102150285106186046343741044264635600708091068008792473181697008941358373043908941115507657857452479227115583173784511805695241393053591824202792115597091069367542306824207521135046498800388006932917491698177997122878357517731937508724723985982187157774211082553613414140440235898115066477116902511894161787905845928521973858513286065856236520367427867995630052053253842124536230759908966383620676443666246577568361378107747825614770917894567763525012647331284829002600961871605203387692858056042635044884533911542959587267928583466448009544434088369232057407425318982003726465797149839818228212584224375616016212416210698799648807520731562913424513282187864678842565636869320296371954208856662148175217282609655992609839235568026961253313385076156107072430807118124979819217992991298479356786971689502380603158248770380932941595910019639275456410101269926255717570699346674425399179888044926214253154760813001864418586616474988377295170238491113785724347769940648197463636881731336355079769749617680294718617627399128311571224456785804090832900614085909621688444236224327954315184939262356223876644855550936159812288723360055826584564405675256656097171775048410738102542992505810469277421459507130643463908882355897457136430898954203833152592977146732861764816827417107786670394537220032280859932138308716321932950025457221366550553760081321273240976587565892336205511590336369979282596791908306498000568230584167917361959246188417102873398477695890950025004766964670037744059172588593039058262522529824240554323226936140134749922722829945651029813811514324965645422206734058138331241779795603264891224497884139015789790668720341001552242972331988121895898089855633386008033110745154175055072205721813881109184966258739571220168990649744033655479578346553909230786402474005086481284412530280142018151640106938292644598153198869205285159944262913408528608660504140960526175969418562942394206348021699478759954534844172301382822402263628435310353605967214330683329622222742044394657464766436739311387839047682638556182149872339464842186983365358352854929435393910571469304500057404807577966071282463964537177442568133818455527072784125291375174535051363063340511963371542153667434960921242157007249896374719564015414208738963055087050644132216912402364378048022433462295763907336224034244018800725690000729358210082725443965381306749514648654866924613885795035926490920086561885258370710150389749700482438999561453308328567410716027561899918643223642142893008564821326736755920083069221521852993131033241073106214472720857028439023258778297097097696279560377366808948503090558062443577802397717758518142759322079472015527685087158823518471506825410884023352480283449486830248780340352585231204156749604357440571698254032427081459402327029040160991253411645798132560353586075295227320174864641677112271409355137218085849334033260200805341837713352875426258601655723034932846199866597045535284167276351362179708652408204512520017834796067465169671447229437444695716606223995462583614618314776891078782764033440902267761620460161361896189634986387783883114002566956572977474999369388341991794427291275876239632046364712810736361125060992588413243167507964355861742974276754281602530144689274156601985638675822358083376129487813571632424208702806721791313038837528581842530150036420336602214519221222617671546848750123996836962713685911044246815096369007688639504773130295254571107516766855355506954289120770639023682721831975434222099760645712607720725557704710266229414953364246915450451746431192144897359012206759727180518809330118004885244036552127597041539959665502876990052156712228774249842858269795770839392495753280193687126510581639368898473018441156399539938039526590182133953406240876116454702695403322813238839155172993948776837320610087708949519407277208986779069777849017373718521468166502023350098005553810201580031832898967067698100833996225419566108048607278830356339541932028486927538306841101420190696003188235330104897515921438948565256915554821143084289271701837812719012034912444912413174521683500037514102087828702207908476864450859871856347822603436439778147963098252317375311414606750622521242925329157283986936137566654044080999105489241890503711796179708391860582821589188420598334664109747478479414417054468663732822841518339629740470897038375433561362563351103995477015380139765250947578249001605913719807764102535308378430440803913949629613066353608797704348954763090805788120810605684411151743587026004352522891934566209783848146664319027954291623351563774958453170438324919488804839421468900385663603074404556211756624976037008440652394066513230216156878696103488555578881955646785708595882254775484620857202630252120195432597487471315442417206460113555562282120306020180139316300144015993518519438478192042349397850070503375056586733898696064224967489677666451050639608574574607215884009814338048570868415873900504758303763847312858352240154763761427736862610252519843372004644033487506523544543081856525542356021033127376616077362356320470577276570050470766430305402475039731341288783354317797775475394576994419287801448892582442608358726200659048125455037411853666150865353218734283138441377071840822634737116814180452066248025299718432104802388516861808920807166728447783548089750203695383928553276061928691189363547244696230586952027864872975552426372279128752039362083660935395439164230773679865004102385002625532868653026605374731295585773103522083123367531950847435133431863152187628395741004620822745547745321231007880944290013028791639431143979486175287720889938805765513369081282413030112521600818803730999390524161907116108470869854639432602042355771307771333746680941188174209354173514250775191888024361591086370038079096422481246981531123256713406806045526162523523040292068477795665971289067354806751916972962113778168432163813949052173535713075065339746933760902051686624279383675097024736555188804540294666951936913541756018105622660308043012983930918945205112656840951515716175077004223284306973160378959329768389416405468635810023616999378344286744111223713584438909937717109561154321141037391548921808048250588208509180753252993298737842711928864312064617702167630070375609861358176425884631793313503170588412489720876429259187719617747257600536971584542564314898393810687345954898356198730559754389890329395633895515252955758867012538706660981426381857418519559121680671826081897614436332059231975083187903700040790448299861893380393393693970007266835055994609247599435231355195836967408046443087623576523906172118365940806466440691612237756660013976243252164642421110482391365970110532868824108732032730321350705295362728405481859595791819032198528637539849661361491176974474027262655576676195490211233779975801433349451272998567087175544907090352931227796444384737866218213358474796086591100137199164774088539175100325114978403725601284939339859430315422287482108521166487674647986302307801308538535388112678620352969080869776259348812687459687986368420082747373285955625036623357334449865696805327947385460058732742854048599404059516888916630341074004281801928903644036085416628938765779589092483925275231574108123131874948033852862155927911712948331516616882647464630136801291751327206868918082206198643438957921950298587556887904188685848773711527252743307291828621184499026868867714196105890993531603960895150012055244284509994011600204119980484204037876318852671577479645001800097754782695298685366583002630954229208367130623874652815702149140352103687644450258796384274770506836009885634846061745903201094906630269793881731803594330385381770199484465736140553889488305015428695702193037652586239149329155788526245470319244040544610243738449746561360643900802204184117340396483429300509035107126018883545220273036034597106832902302261956340042537325657484286620702854433792519210478453136965119947329964953722910432814705002832763972498837628429775045795181480595996422786116203697310521916423660079526569066142737194783465977432374194323216645110337733986046485510739644304447226040712387930921093521843229417598010202055789495046518107658868760555378864007157407444976396155252040346454984994097951936651144685760348020449953347196948897876787164264174250851842358421592466316655315184973172372234019913869302321879596203136377678600833306067922692324108906505312139410471864981897368933402759211563928761419571980717516457995091551869405682786604714914130813850154732812231528872791192381673234762888041120340355443107381557219330629319708281654916022968947532965757056562722761077079866117180313725027863636614863594303147487639367044579526572900972936035317201546267874266922669233211233931602500108222451329139771322661953642417716492125808856713189912856485885130004288877034225332621767253558673422270190480847940648461669697895644642505385321049857968907428509886113107641382590372022297798255825453295759477945906235088475773414094827420212957697171675752871106850004357632351341805805695697726507960747455226315503654227376583521358489416580911907537056278150057207412494706141801005788933976717607589746468265824093908261344886954138220461007809404187033577899505906699865173356733511925143200915062428160030157801938586019833453346964633366428235027599775919174052137187270220938657721782539911280729468405829426084937000506443055002879642907129591449023363559796976353154219993977376048650941632834234833291221680905351634565096569959833673105176951260520793588989369841059530046740233462281861031433676322323617760460411560896562567325380320941374418830504434431246117198913404632928486415743602572027876598818492428492887933704452892021027605657081787188647545210514761631048344138966998371189600443823371078412135912292318337045424842850561026410304498832021767981566126170151518199325003515583423494847447494857240978005421277597180636956801806168106040144189862560736191156584491058927545824778056990529411697093794534446008900163000965613359237095970842172621790146847868782302524792493751364839145073502794387669821251405655602547703112484116121485325378499398646543294677137663609153766318905464876000178604106426850026050375718194771991485456335143214237471075831277285404403343979460352652210322594350740666103032837393701169235796126324158332791995637499490283341495984518337819592611446785196384362040161594978276201976159773778078794587127410336776210338262555215378289741658091369977600578915135998224435191384790624700094032449442530111146578258125236870778413394491494649468212175900317499104645116917670907864455002388436471358543380727818950897980205903005413804293894967495811698744895391848891056054324402023444283046257029975391810501168111948825393156391035581336700676295137822255626011336857024219969958177669252746814639445057673266748025180438026386847414003589216697958667555800377197140069829245711730922506442969550508425996734291399078578890821125613680938221072380867946719354344325762191037916215057533893247146852302103763754605565918437980755235224245980725135973482247936270004839481722598399726614686482297980301232442242996434228067379868484437261135670214982674688087795640247147513776802396289663467752737948718161342561558035473999387396985667194710848393142436627141717314485989746145565046506804748107600455194630644659963302279410115030407337801052948181787502113762034138684562967385655869507985679542330982125715928835222247568281642882462056639393093700639240129330412805273154181603551195955147002316212240953965191481735324544209032672203584716252605522995252898727321982488541962411276477919896612143010703022106115126553365803142971530324894670339472134405187107599416507459398032214273017562842538043596202587780242317600583371253308979960670666655145648871501828851780207532936534386504386281868697014802360618235793222168931609565154181357449675336399044020553124574070117785353415330490490531372057994158192463654403958257973351795526980644570678862839500074221283349511578557440050553064181983703172661596400695242014200877273088652305739051154448201780534571779143997264797783733463572830627190431099845209750587381966255098354022139276901767617725906269279671697586058183854449083124290827512698234851053142820777476022384911142903658437655319792071688205431467682224037083718484418052027374867707885992265897525911729910787848046008255769207514868052075807960087733254806261545344244541940659640082796876254572192394723968732659058677049422365534359716508413180171775867910927159115105291419537882563035149032974620879972893355994354258367363023001289702654666817562545274213190689580047862105049658696041962626270687636785507205697868237098470835089838502504177556014464233980578483773213053600018887300345396475876096664886248359970828851774143947947976780346033112575752859372874899250035243294661170085860296293477827644068759065401184127635496834367777364366419324818178594865307798610223259695569123468994717034499671082484552403363499005706703025641234904086185702455058261363149363165735307340911044583381807248801340260334803290481226693622855164138228218076186209453962589962123571059973556642266244942752016833614883607850122414816954818423530172513718186856857403550756959649433090526571976140327827861589050041696040717032422782848126649194629969265624584593203506227930414689320418034077269526156193694324440380361153991499964803019552192307581400766023967944215025026952069592408651560017491398921900914560604296058961859366587425428827026568866073245974689617341491801061758860112671364135100769645043040305242358305401542153415431488765114950030384741179885639733491909563786721663813769891300880339726207787876191882444110550644564370263364806966246257247687796366641448118962818562300343283091174574784154313237355831366272612772429445052327612879731679481854984745859845071520858550400584408538194474487872403786474017415021556116539717778735967664979414660142544174912603155093647285509824996900571252762332174020751356259340504712181417630234057632988471644887748739758507938220286717831027466232055189806964335955016289226993494166916798425844268745048075890702530339871574564821232263849797555041028705936168476250324121480323274493285809140174006397721297507222642636705862516603846835790022568858856489973749506159786996548018749413381296292708684344738105305557250530262466665963031126689688205502456271538163490943754041684405944682511168907499617180370951977716974783493549632490496249025601509189134151446531321347125850262500544462768140736581736578126702590965797466655608685585561503374375107284353784792908856384790169134309079585239129138785210401496136046580078705024776620996879390852345565551577495823061489433686166424944034458557050544558676261880805566507150675997130611083016487907730429055850771998200740119757435181887033289015518968299563626429614805466515708951037376556303379495195010702685703049705816373605594252709504110597767617891711050787046865422978256302895011415971588200218281790519900878869684556175870906471275051262017023923182168623281589380522550786495678263623301677181389372948598857309383085147550561185524933286767994613716935200035695066020024845471488405979854075796837826794600935211875613270549124439773953575447066948686729976116769284861601569965782539558912246116121667296565280235496191841796149330636888956410517025678801849089763607509118538479501847301506024619358952092901946065812260481777262398381721826089968818576157506330619760391767328836375177422831455882708942045533458355994933945380433266285909482059406964310816706866119900747820783854852142375354861771459023493130781166471939533330950659963623391533768373233445995658613564975894994067469479204325934902670209063735981788106687931289028018604390031192987249129013739381759679809068526204992170089876538373673418938126662474297015649276654049717483819737518769818797959424913332674074833759953322091432390924925944523090040976454024469427284736793220556662859021642646224383292283668280735176286924523117343955109081731755196010044042684771394020916759066733147913749375487409929104395214868018754175852320724887149768234925912718270945572670329452323654679727130882533610671617622735120766097252772156142651622897183805183381418928905327624130768006575632769701503151702237433229084325670672700710416391231646936572375111175150821963462635778499807285950523931464883933302661321686501364827855772828672399872544663310834329887177896685605799536067085069038001890570358944956985591666776864274209287319411946893422942695824688991690882508581654818759295602042062733089354847621259210900603536370196753710677115158365742311537206170715179072794580802928409472187546050844139936526008515700210686227269469924333681418670106228958609660435137207655438160041105862062684813741007850584117104750900737825367025091256815355312738493439688669044917908839604716944251600170647702444511400273120879472670735692855899545038023821288579784673674151746471830181638381349931589064935677079693237475865216385536059765746222758930158690859651934069455661438048894373950520533151302877192641384775060608459249515087387808434419667890135621683558917471552818499640565988385549772562204565009993786354279650024100416134670001626050083760585061115160186078118271523465486936426255406388285071485124355365537026805805080326217237597661145449641038793509544076345201610066579809791030556437351732663323819699633728350591924877332505042066215401407877737417163489213020948032077275858608969227374856634728854326374183682290344447150437946339150191193443888088663278025564391603372404964065734396716853206653801266000935555987293302963648900025416993866985521159676743890965183011454640004356315568794252137242425773414377537859377307784630889721573485558896928127210520759316443170001091522538856791767269672917655926416353584062428610939768919649072153234124736587216581674352923285480984362484981540804093035461668664914289995236609840657035693697187245871019315538477325885166458303375761171039765435997873591664544645587974194261354515389167923006078632239887681498854293586703647949869572414181786115935075788765720888277576033519310238621046557913440973393703758367544200280644831078389892955790894414381981707914420316020102234124405095192488772409435818409616452736080356853047139381577176433091981143683749532759007870853019272074919684210411380944827245109850259330417394003437395324195578411870379456459122581854504581184761274011822836917491936788929671921049058337855000176630003220728080948868749234246427288378974595251081786004690885483660355385520763182483471421413011625887110939642300611040327029859819000289490271410496167716935443212605246979963952818257361006523774309115969329313698104630747650943455462309691811573869985529376217480969114223108961649568358806176640118869541341535043972865035537232323412738332058833403370570080101250143564697419638879857440367710142175740829749357536146952919040535370453711149781181600995577266182943250437567769966788525631389462721165712506573826358728172574092874154193393601797501200990673475242397858702860291670763709674215669283999311187776610310779215518969205023476787878065896316442845584881076576575688200370216318106411939332304519286766517039070256454610857826147357037540695335001907802469033291971396291530714539141182130896400582682193216222565055108551117472741032957116060004335484305049621601248322252242407361374510961278329817728809542747732091051395159154277676102589481013289862470264214576332825408726561912637169583921189742121973278861296312883825211379413030000616127196791996203608957366796816668294695476920347745225493300639366661938669678132326601431621305135892389911289651771602583324896454145649656264772344683160448497878731723212834238863976009671518741501380573315502260313483644159864769653885643806709714890354225363583563197822466628132279529910119096905753352235957193140133720670289686042692215604696035969125990196437729437737727151561839622365679328835705602945335674329054466648378861634533997811695992506089575865464419709781354626046807508716659309654425034519420278290443113734768135557587272007248516267026761584516361365940493976911114437650837494441397986564747162908264969316123695066773388056908412432508625558155639317590709720480258638876088262034130759306668555929715322486831147493789690536418698471636741398040323483278078980247998724601273512488021962631102743788536710181091107755562619694323317382520592398968882852304423174268702644451929672842542367227310378836969619040052235559600624477914284991080107399218898203627971817220066372987214610995415170682055306535971355625470271641092726113355579649328801588375324516305278709270229163341132928155112263224899726590195948159303689712627860842231449201685778965594050321856583202771037035694512087570051448567964771524956987405349596390408516262063007967507807215313309840702682026694012221479343962824589582627602269062107177659960567330755630409966162266896278699489566823812245804843712906149061301728013039149003141217288359428105251280907638729689620925256513307878535868675409357692089022254721667853854676168597308936771747224562206435126270022086933666175920968494547049418668169903321383829047828628943728562178835177053256376702808531848154102271009992805777456907459542347826646977042281735800298011291878181497850458180849790100172522814301155796685124143120374616103218474426531416187989386448657128038383763580380440460683093068263266886938559251543369369745835540515807634256494999661409043947863432644118936233385383447677213909822841803683132572176892632283651959147454435043215743078259171028029185684697398933840899495045831205401656371724259663289997754602919616357948869053088886143957535824213127436866582952850460435270549574242373915216628553014860029576292773484961398507928084401424287330808634549038076732690777944010547016480210701030009479204925919186455883495461705616089523541902769040155150174617741622064621800854842198715597021394913805911802862645817771409005009080414728683937099905249943044577569286005843536010541291824065720647676329860846390498591849249127678564374318578894046540355746177491220320528910850221837208295515508297505079976099832216131753965875619888621791507387817053565721127919656548279421253197212552329685305191779467357688210634685394444903857716590524683495220351303255715355278521174285125019559413696711330762091025136005170874471621729847153754676587151853652409419441888529550446430450800040149711429848825122994103912941252414952316757563385325487881633685780825531090636758810885278494460332091302818805514679830879940291221694049854837649429641149901203712492272259610451065493291817202041641374347136055932429063494949702195528211411955772166697398309215215730377286024237302972175857514935793322001076358951278238364245306178284478577731322060914349735253321354061643288126878523283492848959784480420902628092479995988911968766028538667501284878671353572921924098642532136575612222960137606123570421224593855023550251927505585591367694662349299618686748273396861026271234085600253110778027614398231478860241669691935296487163385149977108508489375423916194640104040075890910911575342858161848073204541695719059208430548723713223728655219845450414510882922102236481552073904662242127830447945973807244905034386280168014702162545422703814669461019789271116269976336194501255550473783536697908267642773516985767182277361871345478937244801833801091677416242450576249939762704555792951665914673743695575696555382011989426173247535194668438839914248219951265982596570173979536703488116648040918287494109998609690023645382678138965924029753562025678614211751776383950073132650708879302518196106008549675956414198643365922126128956038857545552664009413205372244613920697466397340810464142612943937651598136138129133387975627075675426002816090833267210019447553052655168681250009273207290426748675554780539125464886838551600984684059378338355769020754293625944366816414703935434867572618037688995728794745737867769935215275011472300340084361780514070631572342214859692978374006089474671703609190382210402427581762075561010892507724730148661278960650654493967090181981250427912777152364597950745849065134256470997990263025376899522509539952894679474905701157437291996483200835314182810349061865351106256789136784698613502899801213411948618419209603640052879737244328569172124798409940486328768050893759645386986594523834745982488980385696117877161510132954819503626683125713742553147505913521471227535124972024713434911220885817198424908834426557672849389878822176201090601050927751024899551260914035014580683029362381524716832308073818293515144790129211854411777104528667051979372508074901414081771439337553131256920084751063411078995854627407739371582285609449274176956009806700445483888235975055464597756554107963809586401609014458479094883034519791912794803723827624291094189729775878449528042605384183290156469120047695958789402335534975058852476285832201265061335500167463897253844468322282301670601989317809542931873437473578463443988310484174262189855697493215938901050303200480486128636441028321441070449463777191907550554579430842283241001648276293854045270680002494976397886308593687176152318447860293067655409540072767391819732755436509104957448097089187049322976520742364205021691342319415364731332019205329771007615483652217371807473553092896918147012354680838729698162196204195576461061018192095563400023983254419364754743902144692719369824640849298790163001206293323846088484382361515240721148439456577478418648111732067778946145522467351938564389235894534639388210941124317430116180976973429714676358437687567800169297050712736921255027429973842750228767344297322576995511120080495363515273064030782754619164921213823406554550257290817602003564322909805277537767393757055145996430565305459975175819413406258908161773619039929355601837975036276800587842039305580781243268008926087384961840925201381052483591972408809323938246610171058507951192131002499623892598245761673229662481124392864499738172578358969555184840444287739306042375262825055116762356203493947435494071647745925754277767295083687697162721781281132045096612799616097830401763148015948478242212795992153059142901332596605880386990863937997162351278499207001770137259290493799766522415016746464996389131454913333876617608216100846904918856123273897408836274567324634862999531065662535127691634053344023120115192967310164763634989816708420927091285557901967280871920926693568631308803774532485663792921634526481042323163516983325740804091251887914085581603933313790027783360780486988053436071570198021098289607799572670443094771729792940435723122462636219266657953754250895426408186900966708236493352511750146594139510335683449921695092560125154491916497539817871381149139419375595759038851779617707784977024139873378871015323690400753759781636022566996054130136801196322657153402138445666309314650785725128558552278897556377263997688151807755265293477045482212816802623688112193909902899135339909820680843142448041398440380477759291724724880631640745185511995136455453774091833479883178501555640665528825863528985316474782085597276874841089085645353150472202765329667501541354729259695648414953564507308473112272158228083292198724919700604203273432884874788184509737385794612443609274836864534081601890131458186087673214358294595250239569288319531142075248656684925724185906470172270898622110268979174796663091047979427571425274732261212088867285165437970101506344558363245803613292628208508935437003290579074098505599467829580170839731811434892792107103844995639050553449389481163130477910557779816974216314886930917111891646311237435467131453887852343944439346607537830284615168244786101287860658832372516851963909107542221105445076271327513515380594182782375378055317318467037495486938970637949161252351898495058450405576752530118900456606528809515291409709424280525424402266214185519301146731317302486692883360211554659272138364806358494928217370576181445561176715226560187838487425851146100288373173743363706951182509605828164334350784828916470316303844288789499998369144548775746789441369521822889508336872678364134056139082284577889326253399443246869966568123359091550554877620744865545560207478463671801933227764282045477892536371435761205435706705037411666137327530606617758514932639563461464216799413662626360460663722477569477616626522415430480572920616683442461300079500873094794880512388665242509548588805853451823917565673536805414051781063583424668971165026021706606891583112395649111191447087525417950163549403659736979253883521202287166882637489514011280927545698472356605015167878851131421741081817818833017486921978582214645323027223481151696569460662478511882020006272744765262908870186483479324015293727513655058849529471155330525511636664483752066032214835641417225197194609030484189615593748253028492603922908632797677062768795863414453561199535203553552764433615893723840975464168464288850509400814689231935126805369081614286309300674025482616941329046779038124869194294317833121711802452753727643016669775587766798186207183819524751443392412509191349610027445922689544179237941445575446882230144762987580652433155185209540786892810011193286545494296032908806933212014874580838709305875530754286711302780183598379644003815180624446964003434951133870648586114690039701119619641723634032245169811162668925511174633567406691471050853083180385964570315166782877237512728019094040727249791058720914552938263370907205563638172248746786504970281644254197890087723444744289402401468672002136016456561203816485694815655111093081391912951513526966443550841401987592948416783513244109335423829282265099382070303069985473899586868142718815329301720984602026372385953178211644284946871678386703015595120742025000503662638408533696380902465554297266413496404905047218282267474362525729011591455072357593983052003956799705821221008555331965505485230579342896025942448884041513333877865912426075774565215384063484227704836815431886480810891119431958638827216727736031230002425264729943531779151057725630404202467466744604083562672430544391958625778644287779379549779367440687512281119981859790177628580548160233220392659677471687925412293074914586136635195081510094428489986493716338327497397487988986814921079441389074509045478336541072601070260303627506888719468085699391149360196687127976657206867905766044669833020767410146033342176638858732410269549053869371666672348383061252320550194019178850962418516433469084763048093127723041739114097987877151681348856399788746843094787724514208820996531515227592803692666153272737608978782981448101874314739778293580147037674901470712450785395327668467728200491945373677007124181129516028217004386388532753545575318896000768072418900569381356690158757745783587615367199391173395585212405141206265558840537522991552543181447142228767774989920208165417586056799765783492982941573699341405536629979895447140656811770774960366689871391631126720568816193780965405024712125898413212037834297552527144424026872426224562221998239930158435757390507959437104410435226341568882929347937103023832114961947619682898975929519920294109173064677121980596438331588778581365497928382845595465662121483820043405652549490764227423135885969609731405023096875992472725294982835149108258154937038512520881153620463188599507254830769201953921663227892799932515805855464572764421265369808350656212016849637599261807390390191872764599084918668474932433438381408965156593834308315366005558487981573191043257613845409043254080487704463563722618823188121375538965464572968631965977877219385917391203809478393744562164103145974524718361809827814326424689503657145280911450232610160251598079389448373088853191057434647425564330976187231332577004101191874621963039973223583534821809221011093790097394908176321488554906850796894701601955147815954070160759577857509774524298280056511560073946313825561985067808921275240998530866200048573685799169954087175880212362865756896828555870503015377457250116542663804191857899135200842655437364554046905395070927611427092077291362715221923713514601518119802123277386714910231482879446655761940378958687565854322227060291499319008703267159241372855227222013676895803739851347290026682477018515758661704769080199894494110193611609643760994002946025194006566191588826857765036474362032538799536431988098060608071588639180246291969987045669801918090578081671044403645638517856720568462366537071964149835621864370019397543373426381091888465971362109758046192775774733381170035003822211598207769495461864436824757520338969460317005318919917808656961760911846053082570455476900701969093863042364304239540587422680975638697418828091193535509226266535315481043073913868056884929046170932211952312911522740048132485863998788335415377061036514136176905716290940811844621174742742155775300556448877255725885344365851746375330107367344270877714723830272836175496917610512169222944884449408048411209424783202972550582449976443184318087495458171037027417079664477275247156215049992966814697514623429010561718718094193766212065274410379527018430303731138165685471723086138642669301620966147608523059720962535379260707227444025275583953591819063815788720714453165312403284924533027885849800350697793314916234843152290217551986703709206096018714253071590283948076522422992119800131302266253231390891713007378647031061136983686085309748882335245801364716781428892726876894205939256391073669389986077042298636271113367465203844557618404402091708728903331292366187689924453683266048416188263523881593299605040414028633984913429360086632300125492455728833272336721593446580571104671139053428152817886637955642107963462367735898279137578456464175887116514232673966278394723475366876125036029840182929566528329423680770512356680978256315640678383051567089981577980031220874422843652650181948154417338211664460380818422578816698322110762389959793359367240077514505055162019185154590475814290768572088411455184271617147467475158195022516206947171844793717291114122070352353909210830664010611399355543697281570170320274139934502009115106509906432969892310389111236706494283131675459836123083528563045038107438692557510160241403951453411878170313285713197079033508931632485941340055160880316189194005454713554211190786686659104808833737278876038161148004939135304747156358415377957580939600837524259707432850942399604186711143364882827810076990810182743857616991383736834551452743592524273630021574843569213585230792111365040876164389558975542604206806023876657239980196239274130704423231640753641729134889109648377470803958826163933146935305642736954520137660078578892606153845940730617977787093908730277851203977544096278347378922503124753372075423082202267929206774311196900736414020822786741911712942677177419070532977081209310763368813608995718952379203442837423257764250346905177201274336381982297185793646723378900856923619147394585653329719313447873957191268726315903032066331040021486711039182299449939698822036464136280020350129786672059913315221707528692574388222433363747337739459586794718465680885875951627794750000568722082182365043539776046564765520045552747234242521465285918905386021666078962553614746274904248788269652631342646455934203127392186510140648184164590327916434957635199491537275048748958225803677542182013532234498567270370042557475737692606765752118744117984702970022702002167174632482066720258533288836159250356867024816829415196175730303227317722261375026699946004326065287443203627629567664540259470605541756442217627585895996377309370684260816774456769289914831635055527365531239897650256612370512761101769047339385393402106890584788073985403669715030607059689098515733702170060577626334904275602673001394553539334441316542116725249403492863261134056495411542087027171611005731188630834379470749760634341831549964106031458493399776317736864273649670323500583420082324263486875632873427586307684840207656645411521524169628677655880216480777548135767913860888512207946790557460725490233387705914816108538208589555602425122093387579991696801252616552506408992528431878574991348381797154195271163133100101679748268237634296796034565570038532334449879897928452923535553298119955870100846265581869801277660344002968332615841802533672097333646111620723600541214056261856861708619096172823139256901258242935802414669555570326966230266516409656295333465978135449063964895298935815762048885894056005120763411256559465341900381468120192608984818055689034697521523364491679050261124445364108521716879838515855161323918977191892460680251286632541022714531185292448065960271143475619531154437109236121155537020436422101641679545153478159827680069567025038335526090172140225799886178272352112833919893365649454757983682139796769741151246073248417338091643035877851984021032621303046452139018953394037095053486299484299132870352021690403859845243941511018527871774536956147300253285580690264513113553675502753611976949433345715128042750064364391508788972914744465603736535331914496472967741071832170681523925467403484808812688402348607524043964253644119938108809672389991614643878904841463164178997615449968480750712783373227608926250461020635703275363496197252577195566582436112793510108558630283524585002801476558843790069875074776741021531471055129278717519390740106448463068050860683318374504151420637467544152094534106984290939678577157882872288641068013714248595923613179088653344691128852361743930666672315354806846764261397264595922702974052157816926154709396744038798476366333983138743420681543278864304096355826075933581995679275400306361826015908405973583781940114954138946801837137863312907603581729419556394570024605128004900438247154906786555547099735358720908340843359715981735989794821845068314834191238404296140855921062513693244116482370268296219911994059719059790148347496072370401582362750478206833876713402347056912940905402500433106535332302334191574303249593006667515261890085625168673533772775841665396659109045810996702399047667855646774032795486914105648288086028898126623157942343829287284798102144217424043760416040338300478779182945100312996166690681772939232217649345160873633787765601520424340651940360795306098379908770300898485321771668105048999981439299576308055383840464449150877354421283425705783688808442294322630227762440408366990992554956832015691114996143731706171577227517343608213391576522547326811478311912936599767878687449868112704213744278519279825610697671007032795285208843575699645863675866788572553409326740453446764346289471017683356836626045973563007186226971724553176191049456027285279283235492223000233400521720498373385058826319652177206830612677436630335816162505390599518418733407706863570096673908045818416114055627872038567682719028463044795603170826361228870443841669154860994792075483362921742935919595390066121531931168497956087235945444053729627555662393207064816945681772498407012109358908116864131039368211641045117852789189650552403296550795005824014192175779475925437000696106754019191134328949342822429553992052062068411966604998692925672991059291828366920799295061584014170021074098592490269374256969877726908621241481149046492300239576946975615383366130627149875915722579401808848291240561055807149977609791726218827504477562728546348985260895676128689958733144047425198355133754955188679115031893719476427317362695605849317478332212098066668918681811324059935922635596012857782695764398664878842023031303828395132615871310940519407709227351761966711141454885440875844760573437092632966917344823504299483302413611292476710257047946832401887676554737777512698984831496569203493392822934218399374034887308257395200597032441167779643705642061143638817814470639648970189252149222068354220335927571718732397479840232969224567751107060664165869596529340489733677642403397853193705111131766953554125919618406718431328692543486371725193732227098474776715751481682631711929889841981774421907368533327638330840234447784804118460033737635776749100241041181884929780037101499396307854349436291626234426752007008747792733463452300993265383298570649378861157865826018224388915543147686406650770386393680354567067841291965787492528914132295618196101836767111539806067875313832580988996159496237763175578845616062424012176051182625960185145073025742039430376724145548850173130449968119548237564851751919445700120082265363055670239978052117799187913775678623332666052295155407158325284829148710335470493227639418170207738205984520045237557474359614244916809999459274430887962874861082753317996620516100777729699729032712615944146990198322832040114299310193936563612888511968280186967624640162437469501080125043040926665853218653021111503607736753247421227231610485870817760723604804152427595744042086799342879548459070384692675054814863426964976640406284687310894841423654824946428907487839329979565858822327287757734851279046859903387443543855062863403692484940347049948042415896526358564548098293764125924637719051768331246399834755188971772813178827286050970437654491593182503919009494217185860066851323192130294380140921208502756414559377919987587829630007192179407721474295883073525560545521425236017102777891151325540986681365588177473829018450941195796442412546772338731838547870133811200185304856257796847245410156127118982574226662042566251011160189334282344485753044459005001789788418773006746081979482067876991099212634561781353872054301602972910631766117635277958993891077687837398404236278721055519296590302579139196613263581374009500453106467359519562237087581464463520030857905319803167045524788179194912914141909081232717201839411599873834983888902375727771404143275651455515975904698538711389729209859964922335736888259183288187731882752861163771824384476707244224133041263294264006397132690038832361668887530391422691850266722735524195748126319472668640689006764416482022378314199568182659633073992822523247571937523724701637741172810274260165648814622662126435673519359063257665311370050836074563510934552684159496552020496609389058686199053320789010859144664438047712635697935656476312348214420266771495126673524597209243734402787585637036047072931333048166708254427909797054468051755513776503235277646311502204790346044939886778904850210799735601158453534417562528850085935260907024301024002770796195123841386668935182676187757232400762424134746972038634011063968432889239167856429152632178679421036424824471474333363401803129207407831727723652947172762090879655684942959798455335532276712157892506866030496200423016140196696479945772703496974189117985001960417172372817609513742697574491162044785188507216795751755507932264972687901720729854039574457610304986384619369684275825570048350241977595711989415252404091454019071231943106623735911236350241213279707476915530571116396866176180857092875681975295477831410091118206314151969113465047739512050264811870302673079743497858356990435078227948540983858097876572438318714236811138420426833968198426106799984539965722987558321440869983511731248029170185581220234387831475416606941196665572309520563831353278476378187476120935130176445605346882667634456711968287757759534773897602354380692320831063269808898063466719941904319080884429461890661827131520183627021441593613085827013358051398363157026567390600908234415552251092638605215113576336370545263514474606867294725083248481927239250491491313613747160691368924328721683112520510415571999522320758867340518994798208220510799997011631127806913895253272699966808171455932086571003282594845820017548539389462901051283421914192701348412878933997216641463719384209104432805785704820397597547168634873725899961016596943171348028511181832446280545261614661375744903284438762679352198331233689532368974859235704298541836864598756946444193350908710278692003079217033444678578804944838798772301192061322647677737196548662827794441454863531021697542186942591558673463860876863343033600610456380198916338262740370776093982268824427252245943237505086798017751864954876456637473717857602506670085510495793671247690266228880377133612359835504898313006742486793616479436862520450591382060306020810333568715133909927810875800601825779400556895034967198352694043779135243207262270760035787213592368251346451939982342875834596410430312726365342225579195880623609124591338172434516958908573313871072652399564704861708024234633935988965395756439226065539050273266799672185396164430983196586932503099385803478578592446596649777035034067867610427089612145112531126711207605033655049582822419710556147822218746227356054389781853381967745963975971058381635069095008372222960280122345294955556882561310069639902802874358268985309538190414343331327712919290183236833100570153913890845252935123956368399951243411856033728153045543784799545396948309458753274317475228764743907884806015083762002157560271948306572233341542781462357484999086759089977523672999799795560208000718801039360692950681325427946214014373876526324872218994763052599132967204748611118137463034472304867232483944707069714915516673419847854208990738249777568209799014233170860625613012460534565568724249030991343523063473939647379909761719617928732671693389955722167122480882938777058408053174039964714404957048252508868341924736142322199384700563272122401695004290593005438677775026922745898079045466382554232069543635799386480777042717753426752630198860157266099471303625359249382072898428188291588381157825901849942840971943123571777695921372734434630408339710397076273247956462131523277907873947330016455451243142056217651285220415652148998831522030750641242822225216771880172592097297089105235450079910314704462176145317051511976684524455977763219587400047847215580057660435281274521910059908547172492107448312664566694467750060668067947273720953635559623008003429242476108697950403860085438419580142820766314598847987572313747119766600840785046320222153003125239499992660369291555908168712973903968570761757346050337895224728718343550739176182808462856419441045471017114877307940847223487849185769398242844352476937441919351948905590638223748840881006870049131690201914257125283699886220394005463435504075427951137561234651353755426078380268754637495665822042147116888252763386436327103163792431058453482959729989987440770705205311252893158852749528749717948531056798273223787438320482636297336216668893308994556055531619343256433021236946801406206358813542172956931157975938315940554918183811055475906902781650196725276894378821388688626415600993173596652103508914423664770387539395222592710334838732497280890274047522460952222892200858028223657869131652522711017215355422223224139307073199536071172116532941170707640923718855703212740678817082499771079689762453729028272354316030941548892552314473155806188435693052655102610998583614352413365713372905831188020228797539263984754561831355401889489849108056473505133412355720340414997370981220034120045552904686283230626490423383557498719145779033652736584048712264321044031066048619250450565517386310036738488763007720522826185008852124015340460524967831418385629005366351884252412652633226875601379519816097024934476403223147244990330383438320509863024991152577512748616363937983614379649295460443500800684154395329066424958431956427640607048478073189984137825496605048030860436784222770943792561727149864292496239504455063284182170886372834111946240947800075121613809109408867812627263490907235872086884113750907232819795306842891378813501208961058809084399912315244594557569182637298050100308655678871881214842667041343239397671351272861326361339460227912510137745934627108593842152498059809445609460278387224686305970856385085115496277032308903034234134066822003931886858555470882218645861135930895307845087194569760444284455862088175251950487377047520058560168984523370422575253753548040455224704090481565235993430598315828679154036260945693849405585411353001471186492272403236123590321327243417325720403117688691020577751133973963557953601017347598771318366787957615799420493662177630851391220290318093785510124444314418973514453292439394137797430615998797983885294754387080449879335996351736018610455463706537582582519498291253494614509158471403337285309399821999241582925743230236926226397389722662486776707109516768974260479855707136561517671828922432918076605760792479698162643987378527501576805724928217206259968843030182079178672564437141665892504132956746236621178331991376608667558664711472415381509666792446313037870425923884583605945768747389883806661461378325666031766785847520460924150090341782815785822514136096035542182154433430023848230587541555680121453098069350542133153660795588068621547418137344578854353404549609873436080596032573735685578990521791457742406258034612389624183499268331365976201437484179584090328855875027509454197845585993416167208517690678076233905301534364319838944273016365798637505068013700159145590346745986225209533858871493564638438037393816448651593533570104162700679606943005213160663675058975335359074911839768781325575701466530844796922957753955131757433904301653039568241325720524752165288113531820707413228352050387841409879404192539642438437469271709348673004179481195981061505028432871746596429733429959282473698447325724476666348042061228174150266339007801587214623298291151596302199406057815052306122942567600947125805612194238714034186164759330707524252044413979593155304193559583592328984804358252340215098274648844168144347217897195685990734772149326807457574063100457809857750333854692785035564610741734168716333311552958957472967360403439429617967493172436510838986014391419575004614311614868277145680659719290325232989009404409361744991809274402540132853431699934873627239356203428347941613552040249842952878497573472811476599374404803422002938331350887780734250911593454154613623624670151956634474371185587940783915376672414375906565596773469486652770158000035201003805552857703382776728295053377120778410700524493865949144338321229522521532975266321386252046878178673252541732037398030850147342082904345303433436302578595903577513781395350193411147392223454188181180438369902913040409963286477278529379424372449853480437273285773943176686702791883623790300336916572814960015534356650665333120958943391993874418674786708819675347089256434627457769881182930042678136804405498438963370154153819913909937765439342740201356959287657769203891939350896761362175039292237116804233683045250784491171369169602685814302208720919200159529162924333542565843020993812296561773926125239269052519549729811415771556420958376973863924394270310938159194974659454704640038911307489942626896490893932025396107748227810267385310302627399386337721847178433966440609122092805943239910093067808368362854413080182879203500302593525428722255077477893328932252164549769756909432382464591200798474742082189505015716827445092730159080694493321839382804713119266275572040594444864407041614802913606140614036645914998998682780684538045187696420789735676834244170946933166326173235750811090012129593816619816198449459924841225285126660489280375137261948407956235373352841218765576181565150228159225350175387775278432370513746000508507934995561792420476489008751087935615292012072024719732958204617815958364168112472083129886323268481435895740291130768583455771590905059415255345346750362684530163674295233943726544917283271069706332162114963997346908776350610643121609412060441205790839840396496714153220897072740576084153948411173263577726303601870163571987795602375363347426502655721530442325266558552925962496878025657136544809841318420455885559452795233161077749243395108736041558558985547390320874331778097484970023068528981339115623363862289630516699916368319830809848001605614860847674559907038404097505013604147627728194864613944700481181956210529096490891022769345713248277491679871979888672175637476529707374042297539319337991463359383456589944301054384152182009450226052363024046288298303667504072494005969933607350691141471043420555654093792118817626018488218912575955895249648893329739450871148459633105475347991993461917318851080660638673698115123748293110638456155480974338903024611822404767886363907287896301902359760621060061735986710843755820657693779051321210338525207454922661566789634634021686992874388959632872959888331623852112969638286559727844719126258066466954640277142401124849947292036200768529831884580608013439341880029170125774141231412549190127232661642502037538132207811785454806763472707108304406472237463044157707664246391333443529701350674890460798692415260017229775063746150109801748076020144129268299958079748290883885148622400624204240624983256135529986910530381034402284465243598366294129557853153854744757250125429429314837451311281437391568502286357074509978671509539702825676647822123282336324466922886929415953491507970081343276706684009624252897372466477390837056986770701284399528184659455609025945161630157029307845552148039045119160200587800280819661064124353941428066554936827613624765988875994593415670836166098057584749411634491052085219699878687034321572600085441132022867735650718026332415699901922221828463711188686881662981813077183353212570252803397040258947513355180202034593101266430638669036931487277050905288212441642681976410424517973710928397671724726848903992012911774451090524447228936013025574085490280406447549272772747201367908831595825550327346730656723951170433177867441970623597968526427260229638046201531797642113781697276761846557643822848265422333109855571713964346333077992731617834350964684633263252403457269584690582269197649927082713256796776320496214966275794392153448005090946628756062005729863671705109258026567551824525219141309090727257266973950318763462611207968645422084994865230757756496606326530473861732269396493722812240299017064467847514868436402509634534690912918768042383197834656113643425771668476628337944582843970180942169768915765296764982287775125047614478988359208943158932182033942556950940689081558963384611066762474302298409273887121268021400961837051460175424844401915628505188268077762426680855760093201413314799300736438231490751385611364343004513835910672965872151641483336738823197293460325901115183726316221002019512566486927772429760211746177650529243797041933338550334956662247809713453148622985536052615720997527038305586081982990238398011301531746538427771126311566047270857717698648151390622177214323332365366260756701650060885721043788246417938602418994971143259074648626959076283961548116150829679146154745697124048201181299287688976321486636798024050367610583542254147330085796892715145299769781648136108682584592391193472663617006043806730826238150200883398401378799120821804010872236471914106332310489938106016516370371691468520185380135250416487347867381909913142068110808036174009239197572711832410475630241059221516141061670215060832197303282510474600923954049224998971162661470893873456626380654911838681746245090495729546672937580667740503884239700497000000738893097412014491741381333787491870593679775736012342504468199000871357436818675514983799124502768854356362319960523652076024869376980398326018103278598677040865347674109182601400351711820091640576283792829445984559876765738333100065999413357000900283061593000490170596766218578877574093494339534398357483209280179511660976879039630215440545877458147072087361201768704882569413374147925739095997073002212338084213533173128273382060061538676849946114145656478127000456760602098372785204177829856876920522554283854503040447856153997865509539964083811234989921192875821149379949732636458649083412555910905545623053360887862172492887145645473530313973852346158750769568519084951402904688185132661971978381149665783186156514079052749048367775669259529025286924499142473336922567211383813655342183424135795337269862069841541599764532005959284301012848010878297411339470480237872387952850187504573604617991265643457394091783295003897929073950433688944947012982325228029860281775141531940884011025198556539830649324168446737810057583748497254870463642598014572169663138431509020683465713597431937810267366813901542666617575708405268004562575473231498663760245409090945776112436601604699110223080797847314782167805496320030719303262897157296723852525907882330067107858885134608858843949460466438406875131796785886679842930475318070818138000064618876795751184448343469532870488291315238256285084232365663583543734789446193054836041696989530496998500816474187832571654124387141048107430465432957430232278366363341084854575196643807784798925232417527776780795738878600055647410077534728615261950726010933927144723100556251529905263600729699660760146303049044740659181452634902852258694454154396740760327115368995313987074726236571059010914932803036561074142944624688728973052367438917926829567457789774154640068960915432842943690854824498751261563962128464879307867531949467579015509448121647842429392775759538873011997644634639261523921368272008113028168191092106854434936234844147227978273275357384278009849164988449487876287942754754242784024142535887928418852466186921258885886699475615185760330506253414327407073477323915498050303777029260956390058198201889980126790912370297290529375710536845248071106338198573942014372956570155021747881897933166849115328948430069096266869060042689298000021280177729996779690666589107290856441051920297591434071699212877297765343970682051475070500091085467841953121459196071970571223513104856199857019052900613354895822244670477923670049182794162741609358509914574056862912384253048670798574919131287025954876333262095514731757403464641911398250809603604181618397565017517268339450493004480507410936114035703627113249179257337930109225487029601225152342928846917296238963143020491441220785961939735180695973205568960757863091614883429924860106074391679535093704088501428705716809195769921288579522525437954666568987094853369139814194705823214318505471789693241498796530108963408105731337155048159637292984552988243167973926567958109629671555218371862952661225615956265671875647526413747564193333962381220104729175654337045766797177531046249106284838872499490081272810944557363459457292721528812133455432626097645577890048340802167903338114529983477606258859940668567971550697413648355364926420476062679791208567131749447498457567739520227081821672659442227605056730875820893938378934913952557209447753706549580450988318300004926447905262565104628916390713320704576774434715343310926251818305231661901591878679525674776274000573160533902064490818964655197458591475838140187619750895874526279881378315437209780726313800803692285192424283674677108756403282040559422374793469823335430276501705285984311556218328505997636173231526992803940519143518526098715501759280999072604616937340901959770463681930018137856155483958325104748038451529594496399621862331688664547118899251473900421388245807791517630595162836264188246078143733348458069839301230030872857077560365381807640525964538137116803282027652175881549438189531485501495473618756471107985993404715223860775811500400988369535565464053008867229305587021584747352810121234418882776760384652941765334329866008475512032967257166631868952628345761576404342670973581785432131967000335118891351360452666208187036793693897092876320826502500807973456691222840896997985285418502844049305798700186763621002130458340422475552699919319707709022713516957003573392472158084054087402306098380033830169032442344986689618490500219734716102646575867424619300459777086554526721768991528443161662053275867020770694061451954173342646720993942391720664334270774856851934019256977041279455618038414338558198000643236856454692297569047586693149480093406619673068468364149118576837515856546794876173015771331067016070928262686531666104945531407461036096180018561993577063831812877615472297002523485913514012481488962752015911984842436851491582371892383377584348403644497562917005135505713696175724507390728805674752758300439589266197759285293963721974939971758496896417491620966068798340086231502225354484314671375917003903957929170691949645078312223424801165323267132163373444337332903603612248940956683436078205244916920523092380718802712476585691728412266662530951961208778285937421619655577864546893159091315433151800908219136485396620979608127519970448433745189780873474738033601647894403618714070127732855657542779032485967820667015801977696826078014805765335068620634456628977369401285359829781953379502704575341128842444522214996232520213407594289458929829378041558826278413862800893232892366106818212091444643058504320757975622322175448394846336751946690916403029315804856926356132034849253009618734070920621983543953535722585059607381402668355823214926636377717168891149235903078895189894507526350709961317196826389878340507959849222521565293575029594744743325771364449022480251849837536342274066415264727937785468954986728529918151967575528286141589998837469609138955878039133485264199491029231735585018900986776285523024089314735419038286077307769280711567852579432520904046703505335411678153535929484674686505801009099877685005990246652697119793687819106282249103819095337533730810956710015859386643916818244321803055005007259881956074705992079716057825628143788152020640873809196725445277736045904412985268526005554293679250898061364047109156911276874699960934989177909646939977942871524132788124187868588378881799381818669728035669970572682157669361525662935718544322090725240688821706969263502805108267452428102790078971689718582013484473421930242868790326949623220451860083238797516282339672344559560499245425724955630347577725042498217545536200849292672839418700656977179257535680962060107115584455189444975699018431870666626807444695100237653263980419371663957370854575188981752446668254690103923349873529541219601933413729133525240285361758423809111090094519592285929742228415143390288318657776191570559032469155398923681540157347590656930174307681139496305876423874088437176874363576676347489858287475784651502141985112674277528395062773936449857720152535622025840561207825470264649629953119103428033582110261127220090489752058647016008618895151935878100470344271017422759464727128892122841236690139877334297135203573941282343828874019263844177941487553039457784269271007733902702041604514133842632377850384512147794563485421354703993728614585849593733847311751572371426024097487275591734052058336267548122360234338581005378605048149079394517389795180260322162729586472213658285147104975916319600682394192921557269845801894366513975629077727471376258549804772125363353711248829858407628118101378978714314208121395397390201331076225836275628855044426448178123753792406211998125925684779998952542836041924556144164358802339492723355231167998532838497562636723907725872745826053201543312861088630208990601093152194905502453903904052739338101570415734129544983228653247358675451271660262070159647355380529736351588770995379349072532861868580692966745167767587710978289779745972976770447342332460169007275098967582540975196531937486253015469594692987914733662436982732170333454350253706656306565263433305692637434566070616458827736639983803232987555620433357852796362854693285634097503969342812251245769096290697270355276619839442479850312502679511771214122426218863398182589600689341933297043446181261711820685209939172998699062898309915115785189470992249868006402660786324452244742895574623356459081562388967694883355773755578213339869676551108663148204557724199155873594707506023381646625376287257723440626881398527247380711545552905092431021425556197609762663197208831284195099647026748993500707277692294883067062227781526440000665135248099884493457124283675955297063707835551094462340973816654112754137229289707893568113454390657104185115342831233908534537384021139223292909071943576766409394268530593663658130748629070505132051486698273929815963054986655547917128242887522242273581223018684160121385578746255076944855907116538223758234522046847917916088026260257861410968923413948709442908165894083449419791325920821903815035969876688557684747255072804556477021849618184466359794898670404262330386397418118469941522615677994547112739541033296582469323209487208142953743754917444252810812872224934843448221609309561017148554007125834808202887005182080379874787277257379140348876141418990493061188751552145327662874582572273837265603781257327942738208122735241589595342647633589780276981574055573808252344049814458868296988508621860910603669574589221706427997233102564797113793491219357703378569477272322413219549281632953126054237338691044940326570696601831134180182799906190457622917234312226158685569665330605946844283365957714793417873011681866144760247727847611740338952257452070222660216614153936857920665990371233696220401284193784241484841612376138272133854493746173210087100171910494438618131101918123519518893616263277973511295920532685203536384724821675481465104420510130146154801198309558056765577704657501749168191972497577745265191315172011074956839520200494155984558620073473322042695207176368459458238111107427470458322558747120787405920848445961892214378459968489419446018530023060846490406878695957932707933570662096150558262133918954634395316518533609644224801362848640915182574885493278168564421666428967213620404487230813346026298697358438749891211624628909013584562610972055776416976156970463437905500160501908584017816549881210146755340919477842590259023352108903474683837013341260929308261886874731587057877651069841859423182527045429547663958910337077762764698296585105822963626248776920638897886999809240437180408151355339541778098511318404964438954034287835697165212521428525862091123906805408372904843196201343282363442750475887642532760949763375410665652344266551144948017504534957590378692291520712249519941280965423829033446856546111274952281757164018383062992097496583054576940987460541492845149904974775220295814030965464542223394886042124223369517143381710907437847820793486534947355300712727279995451691652991513389468120265444484287530618409257038694084148599276368179038566455836427855651595131016890643429307259937984772253825453912165189904003779347876423327274809512394385427083910555080342422900159008576938349466519652765032434663341067463617637515243602783558055770875260294701832733948830801359221334618391633670452680808282486983670910035774037485525053466684249998904729942338781804705168448485656574759318659534018335005737629952287717010631781902390799453102079949724872627866435018695508584671633442989302442779252446794664655692279358567364270813071487326177570901090843771902855710919633385017958176464092086247870319981792082397442304681473615389621645103930980184006376366677954411716222271898032767357312692329398035386056556031264812944377057204845199664252213369659934630755822139270073968877471090647566848788305520941032360870060446629373268595480655489624689296888564978341524117683546771888873384258847985856387734025116426590666920263543819803303277049981249266302649877313003624890682328192919912441441819979807355133636343411887613505033995446041870101615165158674860818495952719582442819662640434970202776028050539996855250415281917612033877994396927393051987099403083446389444648227557319573137045855655393457119191916359478252935755339212512396746506885537503603277308413141112371727982059478756888845921220435586927674292240340436624790733123724370310349039905671698414672725224114234283926103057856677080239145456739195266381336502810515437913197778570924911311942056254988361270068438454907933885039133104078820981852691210134567407860371847022187513779825463138434751955199731827341105936888949279690699058358101577387847296654691209133170227677854139232678510022958162735584336990367388027413273828146841848552115657456631688924744829617326159503775581067952240438509655702255600956276733462398300948337862454631242771214782135046007626544829487905498184319712327461269632520434484423472733541690848617744040598739603334086915436980579201901776187720911609183082639197170375756830293201743131925132836908843111365201073516608695059394780610991143945074705000509214448419393037732674859880166204575163589910966858900912229110237009520352953854109143359339261847603953600021428219539304635748202523046780775537077525304899915689002208745465819304185687486010041903005572315276529051893977810618352768519315795705344591360555397653532002223372654472878283047590435594681582550136639839063889226224714709807216964570135105359006783182473108146384051288518878130782625016454143784312259195043326531306322206773967922810834479699808713846246592742653747061131661517644291842640236632300094546946154959425394664827215391044495951260804273598124686155192870022132231703979524212132135344987009347061526703549188035249987799962111481527083053240407345870110232433089866775924959731445133797057524338014186315121519391960920186694363055427510306629625230460888386163555584037532862364606064623927085838052665575601068695552532675944122929669315516859547230146382031971474435089104435419945737390401521825004110729233021415367667544899052749290642328340801157121730212489093204896796437914249193402247367154168273111671577963184386319212788236449190048701311099890364110009254322073230908801908649968797743934032026078004308026603811120786545018837662571178047475407700993180527791204810293653427491854384956467364001462528351536282251997652311363141750994232412503728818781849046910239494502029333774659537493615611887888664893115402789107687604949532136521201949452149799199720360509758293136065310554168654385627078062525208679127109391990071927837874233621116190234992266569544779184063711900730707847798734846699491263373622873137942072439119885468161166730433962658925208819055737273385477201169702274730815173557358689613785112016453889195725342757852769150767836271053255374359113780098120234961574652700587390645008133756768428131085327577033935696967064301374713167065505415833329990633697135883922184534350001897229708419561796787794758987229595828423221325280858674965979893678184240118109952393599480518050677969781666103573522561235027499836733176009550497107235494442507638066266121282589489838084708685761913441157030877161157302282896308759648703786972463640646338144431084785225955378521320003411422400904470182732677545414159598187793406466861856795375759068368332093049163296454610239465565800454995143056504557079915730455654334633839255995721127234314354645154379405784374571155936845536850970376480932766514450906240508950134597586497173115886735319021698200149823392340297457298753068275315118844720763578373082063057165608646538263230713361137185167183412847996310234489336676802526596920628832418704208918613348293897050475665605948061985266637641258478090992060096287337148715330684807825099636200001087992377795572527368218826587450332727232236082470473972893614034877552739870939127970086606731166662192430331410394311158500361116342165532551469372923600940758280705274992605275286447536892181839518758507694206872640446093969556777714981393895300150955782152485334873820527453842246460865406801302057640380676630637981547102610459747453142770696956242858238433236704641167373509338001509197872668097642342634566178461886370986726621798838307663336190816306691125051659151134933177564407365692249024954107559233387948656184148332942080523849583420380438241008098088985755730663128283807556885633979218354680400206417313992328356498719935631174062968807543979492630979130434312501118519972614723118976316761935383236935785818999831439366627030332993527928112429447702523263286607534456661703854068143282310994908642050234183615368383439592670606860076453394371954535406680505627450649687681047834615254948588646869505187828294013503941409940122496180437621250910757161506853172659861391618733406039083848683038514800233693824764298806563769384549238399544914845612924709978572008883810706912611629074775324934622575080814893853663170663567920761242366712770682703500251629367822218774021601009880431767353088731008652554762123717121102546920722789674567840455180564813080292673963744800581598665850237830117493099123834602468165572484399731067357759542806902689455454371149408760477366814130057666080197572188295340972761817461738841561155519514440771401160199397331859953006735817801172602507189538016059947962254466510902487710956261843957999284775225745149117642440373780707597148834844290247289993125514169565253134980404638732535547977713100886466281946243614066412396110093152865841574493698901161039795102404820537476011272330743109128718724596421784762426323325925710212204624190994887230181792767751000546712434164066315223269069407730477350076780093282026586700968633896747729028127147421481784951445922447222946428145280713915662023079097126951133463081565005042186681502272524682005842555074265136698744128790156320529863102546107249327899912940150033507093174304347762653166091315186069328776762910159721202787451132992378509869992901351795115060573624433143535581083797157284273716891928357307984747010751257041593404457030679993764734161731435166715843976599424316889814216777801080244248408195903605711693598558586059014231393585769041363315355852722393834229943530591109505622514901388652262493436368031320561604309000189891918288487532451424463978936503464737025150165750398785609571632030168789140643366607951360115407041163070984293323431395193930899952751829578054405035808519801043961136878834520031366080141516772033187087217522702070928133199884989147975487619659157968151309419589877406661814089984759402796503913482440809287182941250872174443381168326104885631875479239208566137358070140492015468323125567334645397564237794061872125626951791894217148060481368826840063652484629968462040380034243878133259261038906960478360799893031036166986554380071342027367238268986547455552084158775817817304291897267669773441577264498327217829196831403540840216972137687646701712953097876846960305722186047099983129530333261510501931179107883941127487927913775603943051557727136959174542056301659956671419225950085544279335226468618501102085525109675519586649960630644379171097338335374338741420462532235516638397018291001549468130282100874940362100963730385049680354748688954596023265833984696936004047667293592297658921727732724314442667288744689373568821776619000397155433692858772131428386070931105221867111807621159529731360798868713931378935726582385040625295292804328141976779736651803057895566854341204787816342667563165216186556824037648128774446415061065507625120072664369635880460923275304263601823322409166140786815208858269725322938562689872764336123667925236870203120116816916392632964556552727315987948995047638258776284149158039705541356099291217048196326982895256093429627611891079713754066344807936621304248121283776429112312406048706342983400648135986710979025360873890737698713562355510637030382288018523146793549601999268990279912150221558649275698181111973415142439380586379401488180866315087046160419201476585781744674424109207302736419139928240551744952075920529348192840960757208060432670463664918100284033679202484244347794250499829386618075762851214976231800617538229021573088370733536533651319792372665800133247540897104346907477845759381470977573310522686505668856585144026867607683813335294499082251717388684319767101801321327987989976089958523101202161302253679689727852019228564387894067225312359249727510117750609067528118658012707427668460116530141968582719745951347451503100289104989800841267522772011525797904462283238246908048069080366297525945328417818639262663342303081472874428413582523308072105724876443001775640080806685689240517773117069203103182677861804130106874327071624175108376258127603674214888341029221522091493189212183435447470990229453070757439853878604670755908235843813501097811399221246255236917383417060821051486399614521471648777229151415594130974469737621872244487790348469148006147683026829558779792542508067219739915676564534023633119881536991815804783562759208763342778032003371836992691548472026089452298670217881413578248207856696314273667671444191300798366455910898329715287576942449487832963763462399201097700396135413316033836897985347256170380692949957226211784848236273692448542815993219743267451772523069077771494290820646655126081682551566607790379372014095883289432007483837862609046494608523591939102567013462812020597770915748413908698990263296302647025157870459551589987857081039207706967696960772084271111629707386898573223739052366648359303332771243406980164784394971599056920183365008964395905428501099343456772144378966915269226220625721904333429469616978163904121142644713616120605057524942982934666308467222605589441496459573815243318754744967141930357419866664846575891803333513606734850699777567121201943303673448321067848608249049240502308926436052250859991206366252453867568771722957814388129106034324163684746995643954703001369331503005013617534886144894315584422243924495514290801202454013431577800116227491665247927749147593086568565082745838756612076040061616109555239956315095685112968402658019514992345089598324564445535206997292905344629101579274198432823890543763457537451331723920711657803309359878846257941924592154318451882338391223880790157767434212459526133801570752885672490711399063627995400971696678117852487833383424915856015543225544937976989379287473980699389982188332568925342403398002633149846732192817143029966059382282606966582055010602600833420973505040217489572960561749461987964893089137528274210464152688414456407773983926003087678252044845867991389487273127364274110532134267298332023743796587308689619717793117100120015092288289964862768042890493460475982484446028021007616268075640811074681774955702197816692587276597732008157119207324186450619163654082707563813554976749747989850236915517567070709331868644964345444998357434138143900155448410351482743862736096521935727261154139578311922033437669121774867228613111501248374585097710353297402381986257497384131879859308788295332153322152256313549821901322657481491717219878365412487930528360873625732708758342476029119913980214415689588674791560250868525007114327299607888013431627640800894679339499432628875500408120591927067755422986336482901669068672821401727913783364499227307731794148677421206336009368644454393370186656772298978168024481658682273191409948396183077595055997689829850982926015861703888911805783170780587131133110022271631895315298577578062932060596698751319782844804362775929513305965494830938008901534347251668266889031299621020224541411819410809402860784733790777966502866057133484858728029876932523931853307009877868895004592552489875977831699433249301270926416960270089679309271428834397614498313053553343696923575873746308334928683003703406521188356952040340427704588497652579707278795622328977205809265135308020102601694100384059976065489719825364881237376361895047675644025820489812538265030986209702016347936096075157878350718779188980101346594056993527742377270065471790599763332436982438398836755197560248376413705902234332082441576497344790758512925114199207142649695534163623350560660603253899576906611378479839414518306336223843432713990713807996930618411357085768923040074230998231303467226292893230131746080057253568325644839856233624069998837275453191694493365160935338866679604278513391479001735992906681088509970127460018968118848695587671548867495562223268566767961896584508113377365003173433024989825706476418040650551952870221341999410447262302274278822833381020512095253371109501340672362801118911383482422082058846709860904690732834878693456298862040481088824197477358912587310560039466074615482966242899401154839731329339194347203970318888175399817750653505378963627551431610484316366721793545885608924460255323530760426545039594529946288565254646580630359268450873378262222384129242154699964377295613886325395352616043157265254268095092742046684641211054129118995308079976568118532893488366612104218060578689163864463481800356908849815593734850353114030408125619585725961409666147158539446332166080472210396230003171570420567156419696498744423875600922971990429340971785838735220224399030786607793135347111958812330688445741402902038435287391611365663822828150469119062155015413363855565885188954265982729463598683541650981624423000939902065459785132387364929554168771751636811592881069458211532736902212139284179310577250564686988109687193190571027567986140943269941351249111812178529605131278462479244176733409016420494668111032199454856235664295596432152051448118928554252445178960298883493576418347992211511934448105748349128293910902210939239022216163937311020935817751266753098256234144830808356657329241722258066180923301731646066056620798693136418807664932592394963520085902392138952360564869160679122969497627063326399692953566747160835253269424100670542347155455265821056490027546242896361666091813121735713782128719594023553205500947626293360284120344976697184880342372848737423604646195417366749734946366449975507815864937647349356887048457741433953520895484540310626603085310299626913611107481318862249859575032376023208914878966980768250604036442420727196639921617555014621948948745653299056157719581707619763407171768355060852148734013590670717191096360463777163611302911491071898233660721493074486759361727727035622162045529936779376806421605152791087771369360939190398631469416984708383702844255327901091481613643261118342084938467036357634729353581920616797866986835589555691756388699337702307121883354408392189231610128890161814000880927808956620339098483660181797169087549207281128868137630948445668601245394269277381741261189313857902689939776366913680929433732318198209527218864446632306204066735406003933167552651137772099345306936288605605923205703069969812121617576423869020326842909633404332153018204505773108054075212144093793311088594293936424567844069354267671986893522828388020326739559252917208824414539390684457963944071823550910429261930229561901545988792186537720374717461304515132399961185564124459902786089515422277826195013975875863724070039870702065206502144175034940039412464786608946423935746459453005116593967253955856827684549763869744496189509601066219253583194395880013120339807365410408881978201690728159163929263381922801966140272107083706680207323493873107311533904722936329824324921923161288471255275751430827551583418983737708331809199098868139105906689856101011890237516026420514669551538342032776543723053551219848722986820116471714152644291572372028575245744988150860390881492157221133248191779586377065411645694741376175716695394270246188781299615357878609263061503269993895407178087203144676642327038269096347706466431782058275062640238896208317036937127853814595278398500686320811323455348579557020539416622905732875694107138989318417663057207129579106760105417030584536872312429246238630192223246571278873455977604788085063419227417602528982047988003744341237421760679678368670293924243747460880883102049483735829223611509327547477902286977030558813111240990664004491343970580895659815962539496535302570690668397021659295282479404566558061570902333796368750199095835390852746684392427383690965861110634200683400535184768544786091979556620047101788606935525078065880012057533996497055485580212832040313374054545188264200626708382539924443192760531863928491198497697745287562473186144569607014668576061691956154547650281716205974886760619987673627730945980003436758860749335798876478111940022441034138951745505790510611818562070516888100108815337178884370154521584951278929774468775332741140055575288034125465239531864825522452619634568631645874339589174021308748838483471990175919464541958522914348874820626887754365862893322809338343508338587684878397112565785474802540962120445058100603282923482105986756284423533178689255632942150447240003549162903485902521144709725055952544912027547947851116063469646133404885417651911275123737710591790945783924665418877406698371186308664762417102231446851240166583793974584064954912223028564149971101698290286202226674642749287194720696615357148491104451945954529287895932834515692841915267836418910851619278077028071393045806349907478199388242623442598019409101973325393668873233271635106743642096350822193865769994704508659778967341317946047762726331878580258825843477689106353973715045614112233771677874625635879589336687936845681706084204332041783603926998042168961993287596848346576046904842197699289306294774371667247355429300547001569424943050727437235232752259886436767399427180326749040361964271288007833505548734087447520837790763698153861127871432184455741716587024951604896986263448909782407157494507750957234159697932737619784021382962047062481822619332808440403986783035479157436348377119626202730559390048266753131648981952514978509349746827156986449356123246071343947680662834725744594329011550739795043372886912831816048310040799428838096468903248440490066529292718051845302351749886151683510050088291571647054503800579416938438997250685747232802027623552762522436707751157451127275739971058646337378792139648706397213061970075044221438611137891493472242965111427230000297613057433715085205032189630935568498676102894849546064588460475590066370388277698640538880632605940981548025432811552500339735909264415318446607288752836932754913190120546841218283159853617968220694295243424323045879810777860466886200139245373111994669918302087752996495633855219474123822120851226210778851541829445099069451581810117051701431358566953923135985070051161593761840567726457652551040634965225150356997137046334871390330856538313926394417501175531855480074360642877482580177928501726320947407587684952023418387380118595551799511392478517882159409528492736432659852031013800084605783180166701291134292268796546786284266716457273317247257298514493158300929814797193803081689951361092380927589336566196955980026926190152293942084734385782007332324026322500953262666128433686198326225487421873473271324306544401714672349556112173724688044417946129732192322708139200351609396915924463246607463743489597866300513213077232929570848707382715539959435801100746687234238486545240288508729315330477805852258421733123692153717645311388053729018387039125261383910799334661545457881845224788127511470077371552452531882347054879495545158484946893447807927854063596472296448582410866355382405079510356126640446672271155052403115421629596316696149670259670004029847390245559091774150317487265426826678911135721425860345179576412210464226716637716046940850367825424435544794091735649893710138287826777113490151535324644893528603047928152139106428986873173144343329087812215670241644889324179384406838948002474843354172829282173630387139420469474359243553561628767398382805506818189052355682238409680421585054283887159407978405471584750468219266871609008457803353770431755309495568560837070159943438738401635449568411880436699085072374153753526491468457611810681566003437770349821778556408592519685286054150643019719714903607661110902530927603311996613680237859694524549097476613998577296184465215005425989976782240719113554034836639774310251362324883577605727167590159923618076038842646327570404870100730412584048352166342933108351893287239566766284173523268265364474815559710866177117288040738672240877330617104475571512088794880423745402065742913469442256161306416685197046909418694168128075556844193246671331532420682522431962877809859035374961906552326222797853741963164412873378208985546625764305816764605105933533553189185932415405777592711482842866898536677314182530633375937588807517571830056000504627959294961328737226656235117052405955448639882725827839272906191617795720039699179864116751756212954413231558167265670942173305954460363593909150479367987549301628013862385707815719894759587317295949141445461511006644371985986470035370155814274301258735142237790709155764368826597207918143182839034024008524507105577595194455444191037373787010743212620638198183758204179635688697194717063323416040828172743770920740501553260859011836514684682126325526371470854688742766415884169994976103029033504098191834847343413571035893680903959972588533319820110063433588441944536757556484983858389349033624893213125930642383260859399785103111745254031995157007070473302822836206379756002499428507954776442263920166243887309688460257866681426755057934303867997047149508104932259071933495937946957193573417305350091110058267369093446154189227935491224754228084271274000644895333650887476550897871222924117841391355096531261630982571604592825700391942292908071651047180305612672195216347412506112719739290626690893923496256641697927915192278783174486178040198983329030040188858214475025914525719870231673230815320676278922818154824922445020377851393618202234654824925952258860314515882838021472573874434892025514299653155240228059917110849856718605810781849533406334897941823300955530347226522312267097192123047797114408085399903719277147845111662698585595036234788941761451177510434290593824638650910283109301335410153662866039043151114576643455789617692103098870585244478484424594845423153251645239412779430221605229111347691570735681193491212804131888225083134245383680775270955881314074304829714731128568489634184232277476710299663429693589473804296375276300656728114829401304204651043364939099530232321429416815114837804761977821268982548543181090565287675933973722413101588005341858867173048807918056506239933563016406079439415955486799451063711907866812340106347325015191634911033577732723815127690352616512550855715131154648294559321048641622334802612349361331514658878596174415871734537141912612477535207385764284201112294568487259880383268272873209806715659498720443168567098031473263396405042204719646910293068640429046679300914059412049333789999324537207639108843260155531018185043967323578677353329258806525308051516224415680037933296488201314312251651576139819905241914761092341853080566344982907823369935785068685373283772874289865543332806538137393002231588268641744775600700032262379240664369457176114302697494013006531257868683495854187006172461093522286007510677320210213478956192496080326744161908914827171935448554174216017514222294500769769266287259085634709177994183334359892967475694270242935747858872916938057700024956548562569754815951829869597103697493801376273168886492986554635004031752449638722949443845762472738475351477182600763482418445486052189400733085509179666581806411051072271179770078238596609943777443744340449664817131621278617685594466606529287371839805194125461550799752078701578750208902586286633722235104074240506558301123031213081337477504455896093220766295436811845584529833339931935988785601610964898888796765902571937952966012624917049911179440795133520020244048172127843483277791374261875974255423491531664942091736710947611294487227195733265674587169555053136396261529961627887158884365914369122541193933539815231826728952984240086618384089173503716682845988425165049193309385596603848740280712624124851657407662251134850178054978913369061743632843298154496861114230730356581051166502339948904251470707223431465899816332284915166732576768026661161382062546638572963948887838633977235723301207484592411778833603011874469472102499739294222522493518278963138682462823896600822113983383515353526120715097146048429645677685992123168270435590305236827167202998381756274271880414910453486206714441452542338394835268930996990584594182833834273484987571534842749761876280407292638380724105171873666175450766917097418315852193494451110826780115231264028380635630035433261547381208410880606750966458607234916135959528137966976988183283532430667462524908055732147848960794377930423252612507419897377074483826809107651341344400378905707969254145431760996885106142345132725429384258532800248960357055499900847720868488860173305228932258476439583980595282935264074951681439096215563414900560034688119492441128928649410716504219035446429196690378636585791727029062092581037601996403754173519336831391816128352007858567566265372757383536978923216975020662772187079486719916233398230002877019219901177136896351231185306097284676684144080512004221224273156060742157195989555407096075116736278063016327305955544140632698178092965781208546334037178255065033667259900681975489480630309939586446620063648589772967168875615019507933886379979503751041051791769575425678417729236886197578803349761376636912975878229800889114113138456149786419416956622206793950679836368512589100213853511873539930397791371528292321333804182763134062856102117160546887142064345052789136648550038373866730932694642687754906669169403618892271908998681931965040510442449801033142738827366068858912661632465720174849803531962564621754056261891278935241384914636333808817912061877135821058673702091332631414562341930914207632955725545581808040456547181921012825912738434523999874002362081960561865511728181111845308012602612304315879759918282067429756008580405158937703342460072725412557388926256258066036478761745380467109750207990256621303218443938472539662509485489095713938588930136355923685824923232594730919517631073796862621024641057925085420468956990087144828961950604765712086040834571885253031805749149587887439420909886011952097126905669872141200287131246498543579089293032001375413252102714894929237125812387708600142541182991707180090827290671542424481328454779675268462009173714243315572085889848392207029759368700301356629106481882907281102384842117736039552484542161622005005776492208526393238243261978908662437017190138223684615303703912958173198683052111888953013144876409239188249001152871863330452351179902343649246538459537383308651799390415766611611987731854525714925009625513455185216258886648836091908279240220113672777516771078235237549810607982326343758425805532334598820623203878815458450941252076115446198460352040781111198753705834011911953482459328346187331419554410110768449905216122800888011427153793975692300243743704363734421733070828124177742944154709681066334977793369051335149432577270110395128697350671765075015855119178084767607888344295965883716209249876118446674711870422832537158479295241316612791827350726848135691937394413583659105431992324419149354053893653226526582715983883399659094672985056592567908228499258718365263327454200202592819970768519230753747444312156312364533644279505513774935484317705041353297425039015620588705213413202824270251235867605925609689227725867789666205038357837577857501945179281445506458409894919367462846438226257048146345470878176278868216736723208779183581281501220838659293328658623770481518776708025217065935077279685698120183330676379564840968826133069271349989299215186409807132524370588403549321539569806129151890555450180816052883952287120148427185368119543000568947347644375064654603923347164170185646603504268700615231846283711446806873560069309348087592852765579176205405881489906111482052264471596032309828579429372213739901761320002188852166605696237840354207464642232449478380780419249262662217802107152550299931622956626468579090471552948101032173734083829174543383318625743650952753887810868808803159245162872112191229629700310320722060389745050225210502787790707496306186982314781008910791073567222419878469077570006150154411157251951041868493435001775457505256703334631900036803830572921958761351054238485712476930725887302061522733707146058125031586369345486166633112469503177410782569786696943533171823571958494431380856724500412632629105117706274962491681130445033919704419294008251566596437326607694589404719936675279034347827489264327793474057204794988731428786890862283743653650321336080583666812858124363885897719742232290606514155354758478776619776030373976196140345928768175768826191270804270106323366859514362296096027709538804059567537510157361328598768147598160059576072202109742537307038026908146039931660782810462222396904718716549486765247267016046430894028406705241070031867663059275229026048038159910029095991092937502718116752570690112301101689487752014881951067740108717784800036666092109694767829050201647856262209533505236524285778481354228962039425864236621154562814438374514999722524911844556456823285484709800475880878617415428815838749682167395471122186584074144862688995358758672751396367184826659038029214971296366005442624045192693645671372332055857911587414125021812219825093724004999281188798803050989006463090834559432748230871499893355506131356194580788811477957097372977455257898663311042773764670156387249789024323334161164256278106542225253279856938052586668895889962170005465543966841298564385741893551852708346942104326862592674074882517172117289620271381402747582000482892351135424102630027189671686214708697879385359998414146751823038515775106193147906563291823637745180665833166599705415251688875996180531522591969129292017826512765211881909233962308091268190093078427016341904134577382367661632734962790690448080059347877390162709520853101897704971780591060066329298143018976328405980140626704850607246437247026039438467532037544994704467731752409236328040458109356477014796465649319883207508014174378804435406931324768415516294616639621046758366114768680655204478472047937116265688491537620697931603949840550086877217825526509558385169171278587498351576863064163481359158440403080078028040857489364477637032852349509606143239939308605773371305894371285645429675595834868508085140264797835042418728866956701264559997196532001985068030186779914788912095135270060419382217825735143969605655774716099856545393091188616218199954633490888695349421515092614514604397105089494102507406452871804665781703663710686306314031240662223662668330801207126909341326230786913326815107039649848798632204566246393909330750352524398189707721989479190512120070443407215090311580178518223648700188500799766323831157263114722492254987000860572692848929591535484927697298804727095974279087692850314999729643972799263034499356574934129259256805872567179019155759947810476266335797854234415466131549426926388547291043904702429357027814563925698256906943579107985933006322049464514815881712737028533893370759049263120386363161804279614481780677505164566600414350720965576818371736779750057342845360110233076858510813296925688814314363126005966153120207444683868469600090134535614306961684786316822354320760390480585369963105071926906589894518493347690591228571183315631744957214715620435575142294749566334420858155703078523004985723831356052025812675436516286826468425628211229980880786360776280777832221640143831800336785614516617981032142849400916241424492083057030154832916938402611317187949981865664343685448105506551818753866860383367064498165426208359045367874229237772847881267641111179673831957278407434821935104242548914177102131520694746016703561017693838872372869091663376251626392231283679936513219694792753808053213238141059103023106097460390244371701724649646424516634106669546028654804785185879425208944307087016164655636539941946522926879874273140090941134397884407362337017939844879182383024880685342132101699183964935173370191268062148184816626572015013593932998412628197112133802187563763425294622653982394403601772468136942969004284431207726103168445246715572977702109623162375391301141714030613677902087040741923583733993872147920229760936765169221254628357106403196206385245602920689227054729906322293610432651987656396093837341202064113149341354344869697547753751180959833093286612873885494209530927616990504790629752597397160682708028333862096341526612960855176963397685043551562777747407216135420089914547391338468127004955516887425108105960760716380903392396279157427021890803352397885418806898498026600815052865188168013645377729443970092681247864536597812149018168546686156354229609104678577827198025926056977683144409476739768659628649438797359313271757013318723990994648284322915670906387226561556885025274032965531178585475458229564856352442620348408835575605112269393101885977073408356080056767250195707345905551551306067365379812053443793171259989170117071201093563074298036736254740797228449319673321192556387057529188493459098571892926458202164930655185351967998345956231285636112668693783511622635626484644215231775589080587203143337564448768429132439376882775233004010551097929003374666264923841836627547424916928995367323355156045518241660554041275837692429908526507026830892583863214125970243249987252775779862026969584391833070544976141816079097833706153539814587686716973909340680658885012179248731718803154279352896298332437970802118378579909115164830530557721220882487716591707057009418767180283603669069075691819977823355444732662284481298873195443959878833848769927965882520960255376327682806159072283072834448741619621538424299125213203583482286698102571281739731647302067578870556205526660948428380269286145552220719619672471290839110524432907899775785668964364974623340291182881144165559867942915676181617577561451938251963315624007105790930921410766929707719054735509867297504288556200382698154396705207803952097711566418556515143936744930897023429447388309668605253806361383660499658199580719054953695283956307944629341273246039236307732464140385500681416639134065726500557165945686822000940697931982400391748295126144159356242865216777219156076131674503451584991622812679580850920762801870002522362139883898417854510318986680898989499540117725556229520615777857189696203793183040827531394416055192703320581649214062460027682723963847627738307880879325853309402585798103530678652831683967116206835783128411991199640379247457508981273929988823346654952000845576119270884074048660259914338577459843815529580768200363746571368289483857740090651629358449022310038030257860945231374541139098864749163382525603753848556331205366401157964614597497254828947930598516852553756820933259339294042880177312014103840632900589464028917121971252053032200000469803705892555102034600586332634959175571096614109822796677854349977387615152435171249891104193051895129468777534877809306939589128435274849075953384997534603454928680150878767248362951741168346340305485405342304182074882684630872906511359280917548973919260906195830033642814076838322258894130506094562136948756621976164532125975478009452075302324481877466038594670477742812174624969693630981218159745475172914124649125535398444538336842230596450851211205735646291985576910586617371283532221119082347736776496543780666855303958125855504725068439787418027781560698825295233319786024997090855384553311879754873767927104799577412258086962434107758281673689395540866036079831629163446790188896312982907671797557834411877319156460711532833265200475585246282975618757000359665829759244620821881836185354107937405628822188392611021518626206011859244668207164545530563490018423135535053181765821448545029391707969784263536990165993711421786354808199570607052866011135781035840997013914721922459067533566643147467434703557419773200675366726436366793548049583128279118837690537101426500118676932705228733492481856021378647198690119979484606634083881331312339675012265118755022398982351231838529186813512837776644826436444992890987047801989604414334814816076590368246526609618468966421129020523447718138990354019752249512688153319257631522506078483192304400572647912729895282181827243445411368711772472490516752889304049983302072590710103030485704903331299436506242744776352528894486349709230624536405056142139721398302978173713943297769156804566272581539779687775339804652673638173775714247256535538868914020019021680143056887550030278267579236550203191012072141256773539892611252019154280130971427563690020034004561847530875083396881147653313552834383059225480872160355147310675736429250607577288208376970222480722337240212404087504091862645831942100583772087771918844567403809853094007664422538535777708530738405124049336438639878178892271191853455469521851476329049552088014304157591436711913048457002149075757955573147067673218253289014752340361046605233264567838237727979035348868982228144612663882216141402529765544440983079074971519046412527409937121732213711605961693744470509225910454661893715372051494320328331463834742473310400597462165997743128440974662445644168332555685482959079632057177976450489732588156394652638813065899808656003378729427238105676951862020915842004365562555614755142213847900863755528799564025831463353237726384324252686754728937248006925312748595419483160920235394717454903489413224574825430846269262139524073600383391278725496512395554732368493826446792564834412606909297956896973813809504518044670229266110317104224493598320182088228449866886345472572785325902309536656925618556198770635045887505321568393969605364585001229578965020925618282465433402339708356049450095569447523675757812992182815274223363262314477348291257111546940764467495318018450268472124566183924475067866511314511359848040586270017821923767190883106641199886353168691653721479239468381797863758016005710059163063846868194963860679750830825048949907381513237766836871654565761060038316693193884764911649692933212529280361371682259713270150930730124741968175181704529849319189519729189068735123876916061742468350770007213050803177445402873000278336777369440454811942779799562921315522814928861250242777010620237684793897067316232309613515961347849196456468690958350838435520079676031842165642993280917296139277612596500923331898764572726833196108969243430090911086892885576635347520033815538311410193221448693065693695081524938927734766568799586400007661008760868390824803441355643545316242679172655293165723168002737444385058838159158514945375563775079560542908529832161296577945286490327404099730248971661617475059145917267064964888500889520369222346906344275371088532996684607788063935720136348952442840995494289382205761511525658514266082049168128315793243453726404208676010110086559895418264199998526539866195772471731078451475625847187224955291058672769080589873839178300956233482184584796561634900284673294058089734868883234770424602631876074930392350258770923762659776523174768613180613088542407050685248072477298671066453458224164402054507675063441366068597643920912316615324325456996684721159341695064986967717584628115542971779341395800225644910349796537452273207667383634686945631517966911931646644082843612237559214979245802755854354451637523238802440621754278456619291273129843535861451534397047150868926535317519265987649920823177203726227657361875675872711574144056407191886875889930935695600908083320851212906578098629102994659224331714681138983528168582611980655298186592521709695657487400506591432698741382325141056420938568214587475575428413153648884035965820935029413260003754158431872717715523965605400109610888799756130621406105754538956120419647473726897668138272395361954307872923593639227478785182030658201246383446354257066278250235033554792380567915594755019625352732525500447203093140039204029190337079685101903326624038262421664996859437775687485468580154429340928861482899495871583017938303558337355530916132984058805021974732085976427135569048150098563007098840883357735705350130295025311178725864706350942270302890479551601404347142928100135683485857063193894050975282741017725234198171627214996585181095139892713267276536529726654709164795544356822540085678092799630376193537880834480018886646049034958268801883767127810100815600342570845947390290273897935518926142255665875572014155574520418749108956846398795606479648537000447153888636169059027315810104642958960815898897680409544548317794224711155994011439813367253353254970140102936029076332967747881453919813018910502426979509387638925633597721591299325390902121410187868372792512881301652477212640151387433174881194650507299722207444216139639317038997520889958694485252516025579349406590190632655265340905322031303812644215607735248947561773773247511928928893306992931796282433199939168097271766662477304340677654085192654986726192757036915844710026170737609269156162963172484453902972459674293923991349130388037725680118135229825914958424656061563758477530596843185410034838659305377907700760486670341287703329259873357892532828567372533217061472432317143863795338487717528148652324449752909621690590578422485866830677188415195568165326714310184212719919886227653573868639824663383278374573303956737523135119255479428989228537219663180012377476122074632082877232678012240280961014992910479634757283789479310723328525868878310859917553466990146723816586221935541014092739019199491269309665112301803173532653066937283787405377794479140112649020469522437872234964909416863828502461454929264336432571185115206819379373539681483591931430742773107634499548853480521861794116014332349614730113247276172054230964243867974401099254100993955527322732346910836200433253130351178686483416936389300739348555018924747944634515690197796269706758622722271637504988517980336530936853900583598809326781967253397749487105529846301231714577233075304509321430979092250563365781693866067528884230691912934534095480173370875858494722317320587027042606480849005097057891309069809590088743785990451511087391186830361825995327650631918915565703599658428297550546218552641358374330492973816469744663038672416418960508379397887448268077644209611140346922098142032381828382407556188347368016825591468925494617680120540880467584940278678615449785607391171398543052977877968694198175212596068505484242334182686453065952730634834195502285397117548355926858262618435421910863642826042652311518073916868710214757941946276289396078777403489862026847326603930608331273141501864157015314336441328771284779952958631509726977856171194686592487028896831356868656825215323720341926458424411893891853249061726098884380054843251513576304594587066611486406368620611855573735615477017862630598675933582719156127481617226891819854238769041627318650045670498955451997550133107749135349282653613927520642805076513550279203808430725455530390031685092527498807531107711253390467247544657997747824389734962348507310589217102942647074669669945538376430377625957194062250656481413111000613887096062905064811713703652102539948112515892845376132552508587647417795037907289860456623622082168538779233686235773601876207458083009343309943788616537583329351422464654045736697361404989877944232190795766798146043995006956634238710790571078123518263183737713470291224141421597594232055742903061978015170775293154483493364889422919112117805732790971925581987337739215771364895688807616635179197754527257966799084183102610663731335917917712338931567166032658499713895888966509216008069835732245525694563107681991119862334854921162048374627097809320724096895980526066631430991115410815891290035045070098194583336428180345996677458065933218902218612006215314756321316813541080599038873215859374020254520567123914657646560857920505473739576835111466087749249155642912395474522277169049559226136147769103104467560074773417291784834200570828682519806177787477216297703131943918605436201769183169579975963607219217766095214297444916527887261304109952953767816745588842876555382330238380495784006153228780964456512651051541833138300033390915658492702090846018133823311641764857778086728580960854311585422112705477273976911263486695103001813496199945037118525389204225781565568929497181850351997294699999004607693176130674307579775734209246757736610922393368648847829631025134450131729490904277355174689744457810584212905298122299434839661702670024740769356674334079821932787694186274003064160174931986645006101892483104590707746751711454476383877005060568511450438504711580325565126234436042606686224250332342048387557311094584724175278424902172999020267345788156894010217319652896553273612221473968243500781575556980775543382592992863647021934361836986647796908601225559521321914364104859624112870918529712038956087272758015121088014040991024687920570186742291520704998107271758534370472890469087220498374784686311282353393267028528580832280523799288431733581094032539834415253086155831497993334122723021330033393581758024492002109284050008341672393109537809715792879494534668171483918554936028812087153995205699560905556435884493868742029968660242244279773488718780661326741920531642736385657590887760723447461245601772524810352364181973291406025276341881819331518680187063634927671625504182872837801213927731006441092831665491576863300109568934627806726197531987867144717019406768536563091708459080981494986192083775088043094576034127932602041958036988622647321775048278239640433248521414476574625327632316333165841959965033659531984163062981600478534700085554957999962214395748770971895857996083969628283386865537559809459461659518236944292358205760394370122068698399084533975325611815516393636435376177191814938353295273471720862856430859353773024769636914555751371841254698298993599910602892554121332277746041818126049672085443698564795082261216334213462413940938887526677869685289392730258939147002566793118409111111465053650515901591159262520388254420314372101180961198738133290225615993481713971001144067278277291352403872803393253396490143994192197840270283027234262952295037829163038729759250359439563183580287117295610724364884621210840406023738414014822956205688468392502408427618307911213306191305189655467891414104546644207158862915945649387386786366292253062474862210887804927432912494453075474665357266552786343274332255924979700986390938937994763417966791399057755653682350031815392073303064527482734848215646728449303742136002242602559060909055219861923740256172461726321133622790258543396286254447399021584506171080980302926442056026119718575700466599805703550813717695951612855182712208607224814895962993171525660295316273110544976408288950461024430266279920405982471625861998257328635328087875281848336010298502825343389189684605763954406862019979853654503074268777553785209617969152154685928198369289132739783518790285343884078063959152294675844790417584023082428852491361236555572698989525192760550146212002042571830137977554958176276880033268308426481467612174152701611821845947945407755340460240541378857626036409126935737910963872670332067587074743264599201167055390347548621211161926313816729217897560730812853792462828367143170438992255209852056146774081684303091652224266882040727500231191747908743724195343537922466594738203063171361987355165515530263520222491721639235724650196214243804163029163798588431290322613909671619774181721423742014366929155832900151856869471545941371002163543191470805842642833913988955743576993680081346352874796405390805230685791098165371183455292371070580193269738384784255024409708974193960434865683103761136471756842750110243389518375048208219136683024308387517500022482425236471696327520953754711373123994693954120998086548273534969214988444815568309289572836362955924395140031466698038879352288572947907340993367911728497041477623921327919918099323950733219224443050738326870832391756950082512931014681300448586008990014608137717317999632699113705029785066328841858370433281795690905073644667526349813358362564162014544132322389806344706649316800568255483583278578639140238222643305630095406216884416987963622132755879579029799346372929453265805356356177825272846213958386087484581209867212344120186968945384970147068907421171945690649003180962386851384289372965396842593467678854552916500507207628340600086753355893149834813035390146668481760426881523145390062583207914784257848004859208832097307810017995777305688130225622124037125278050475321014327595553657638100725027174081915753785750553363925995837340446610987205505145389363859431649237630308534209109420995014430316874520676993753983897800341206419562000098581907010996336238684123208420589539941289288599447040477141956853563396213179479004795322917840070575159735050097908125542508173402730893228444700552379042500571584569483611933718092718115913815737359902006866737605409723491619813733392335425122618710823049034421745844391518447397455519926567447715364475667397175334262664812914822458572642894695684234737107259496862288514079315790139166939554987801171208095033980227494481499042020101362878040624822671400653984018639932196136524506796576513151094347179097792179070973417577935952821589037200728734357503421692638444242922796704776156457612148506864892819872638433727138162486394975012278344201387944678231500135361910342825376395312642299837782797077871061874234532595570480853738143218219353728681817790778444146808551686884061751050784433402670365694015189441462575983624241488626671141219929514264906955935260778084578985425273875108048298170581455515377716329368445821699427241870848247054672592633379234447851399481644218373469242460203789006541189086836188309187812221573692328256334682581552708027401328505772183866275619138614803979348003181618385966581841788915485565442555449061269811522278535426848872299689651768375586650112919362729950570381070447267869983294446102263806812218831234171515480112575967648974032660870598401623007654820443182620695405258477433043029522199575986264748505597688743669785291969102749170768611405403479525114327355452653957410749188383347198224592220756438214635315261034853374996977425651581646554934718988969209507869083004225534317477910317632908644124236874012799216135856972595711221485108858696139999558602120871934877305378324294564491394391595477490149493794978389150536209518095529115500002313067477266704263834005911539762575984461991213342180451266471457668850444991761844127165022408289915318729697160733597101239779544261589165323762809832058483731313639187791263780166289286688564029207464882890192952519950268217697756813785819441968164359758806467793723776281127961295194167798237577518406854537655268056099971290626843867833190736917231121092530476809809705665888797116800537656976130590621825225084751580861929414505474378161068870224853523648690256054456354617901890116639133593626647709766747691590779691392034603438496319772876966895349130341396721632313702945037698897702676508047169845293710314773903918003286604340020301529222875327766093545100506858653585532416175448635092809079622827750234171237416478090442983995979554117703303948832468075652466424166810670733189104386412200333686775449237880318497808669000747332169759631138054526335743053346837800536274417549435011975112407532429756061669424784341711771567790693095860369149746337401292133890348055174557883773038183236714558225080811951386328252233408160605484395762525708770240304433812888147505648470177066029497610910145038785734150600342125916310908188556107819782602790854207507854015927926155910060282446383797168667005075511536923211642775996087712618802830870400627479085707459979471388941973198424979512694713891939543595798924663273303570315766166579602498164108140220631536714485214660337323951546354153054132383020400934257795117594946484901304501996043459604643813789231616239080540049391198482783905016986342679431078138547973018995818079106672006900592880796414492529441324685375827646338002799276528654595474690558932843930944710225911990651431379345895319876440680969279864237023411378902375445437313019765451088155887533498467993666783019014053347434297909825155318551328411689933483234557250852210065982911915145928941587637601422439622570503169401641001413090392932548493556509259451008484831396965859792051440172622941701709619913334209809700666934006977221869531192274342913135148938955046296976895599940979861379580107119462936067443635812425830091699882558880751475086007371719308448942976562221576253298219315539168148918642759114332205200070412571824553952524556957077903835329908338928676771461112215849272784929038779811938430273037335005661218363379720003760650797733846878756777091800357103651846488827377364240363592517294640763179378761708682164374773125614630002784793424449622373687349264233255379639343138936826184109565496903389012062164440008105397998040761144440651080891040675682183953964262486758934799998261518888435889442120188561570496369164479336053827145282471481247805609394568085680361922872326017207589111841968697924647254124589430223803134739500572514438071825041497828615072644531163819777539180216105661762283615995653276060499303230686561799262317781506357841581559567766276639452511924786698291604247687110093310252060178600535735637924302782545922755177971650901206193302200792436606249501953332083176866752529078911810379154653742464004748117376143420488082522513519873228041119792008250331131807576791453882972224341535358973790455457937316827242566437153985920877053498367179268771859093403139025419000090620767557716609298277003484727459034411580660724088034763678064023278336432069539762792608706673319649368978650762317531156046949672482309673780515015539689845948210704564520265540638911910082183160211765492866612246825565527255828238819220848718762366994312901808150469764885588502132521801163017294339605270408966986952976657438934918177026270663166376981963528770246500689696523988144071476042011373173441501854620711916484812218525521024325840658751814833804099805295555788852897866770852952869498512972943067522399314831211570988775133354281932925350803631221153462359124161679117703546301519496862755093297897481688092866931481307660549976305474666562865770928096033121504636533735548359273507224537219344447563822047022554601467742167499319824943184663546877915249282524957537191761917897280618251969268132870182299726848169506972962276665873318635204545538048637473503341066594636774817665021451343227222957996500309833764959698804124733727597771304523303100559237164000764316996970459529448721687386074057409897839363340787321959408445767135973118687211835248545040069093043703114679257492520461847101248098928917046664787492830047031416956640003046798665493251447825353346102771551600605021958926200250574573327615037866828819493654783350279935287700654512035534314615583329582254656789206241719319072074431707087668355752571565594099580615111198540371553681372290588876060734838062474328435219719936817106207672978162586079844891973756971095827472614393133315090431648896661091209278965535791390113465053611594063486017195361316684665401309889208746912167476669441655882351937789553617583550919232751061621089467106317495703867437916036582161479505814222652294014076960945852820445348836200127250314538546176147733605886142188821712351544625277484112456916254870339545240607572918374442870940193410615340089805263649414981312262640410655302306178290759754419188414515875901415057590326113484562866416111175790684203974240035942456471946028537188499579830485241642717489411932888459130718527256895873646507286775261295913062652494836615931739075974526521280522876645570087760889590565064501559151601579179270110125270150260115562947198313332118743837031367391035072000983514482929353038962039336250519876474772898026771512498720187623155653537852779238518844804419313676612643757825010097573125999138126833221609569994482319732712355972436964694130265553522606587295339052681708626774053074138662412744972427460144560621180465744401103819833665358183502786534661029545806333640299719606430851858784870187509010198250148108341005961960702729218050518879721728965108663416811249436589282657067517775033589132480553122685525472108524378402041353060675779784709333566993503263583811893497749278146650957110454387155325164924828316108682599761990958734987911805335026575843419603755737859176804852034393578301061927625733744311518898844607440307726513783952773662731655278691677907552408862925168352889003834681427564701217758736010416521574887250208571636820705910534566215963360761960977302927684407210595589556994352148567896475579679764990338986688287382794266796845486985192593164343669905287924262280787546442097630019070421139817247411637704985111869851680618701984014358866730458092577986511582908472382465684793440756660046989085223731656276166059754378782831189225424781606788468807363158373869822545453163754231074234615913610278151633021095194999552561554377192391843231557241999845159954581065034451989320873004531646362989635085209380363408279101746740425235158360498710840742681879905508677289161905474965364362675079720765679689630789517776504733925695116701651486270241388603903316531346387326583563841768466051658718575479293574510666019456025343612351723229140031378434532231485883355588748038631533718685914619206855607696983564191887582467038432101617966042923841637950030265395374786772941103807909456079112090381754699136612530929193266774477698022344940812274749423454750376443349009626643886773126196300449608446815785482304016527768235718472303477956864941873553521473199560571077777134561971014398549993012644458040818222443255693381399954492987321951353167148856439686160476601437458308451651458030736536478259370198276771175311789274137830034639018416881373603970311787256818809629668025626683511564177438844601100168883752092625748438111521832457161132859365700246653473484731955596381466720270423516411647755854687876502884810191058979784399478696915065339808982358892556126610625412558869349592944124029806899136308891808600887704898511415346434292901695185138522883924524218850126189989290254268961669295198102055499654294563697262321598642648423930457357093767307315150608637015298891758777057867156569182023599542269687652437941793659254526876881454046474447070491850739222428642869926971106292020230180240886843355212447069815259702742350128475704518056317030214678152411547133432821603877828522801447980950934552325837708113366213846586328561485093806001206535900636166525115725089158938864732776050716667370590139933033127817100640373920486422195564520789511730584198740531753713605508271213409691246251232429947944591400926408932523231771751121090159183991749590258717495355419497304260773218740702760308018335067221895030858436389406199975542557315109821407386908020254599746102372180900909026248081547063605704733273408781096152871403484946263088446825388305359017884282890223245719677040805887930511341801757205880679909250643634851966651348241045906550464571891325172898987033736288499506086755293534231619687074445345719281992017713633602248874081455683111013657788952330607847045835105283114584542336083004937137220773538075932544256333743987434360273956644152221795348819576263721308273482343359089468713673989562574397632791235462099098259043401796798400344555699199394491156244139612340804715755651596921878406863916025119164389244878404207515879882372857589841202327046786222393595896209242859417954240120228101781150745130164644509876501691653448700212395863980513760964596948072239076611970103706207269631856202631101874178555793098239314724793756915722161560831709582588212067321198014372289197969926751671961480240579063107408666346036572517117508770878445436183027455489587074200033242654246468080231744215552535048303510960895787651109279542282221359430813964192154061561760960300555686515001417379030220596706413555615346618218681204582106312729646057031048812977291165029129149919162307420337198258685264608015931696423985065413765679578362349816956323040649118616379900996086147133755824027119489903800454352509386522645714389286707416443842934849058599272669534993124072744378907006915290356157837006005158017746160452869530376406589565431753740817852842014323876294642526621980906946083411454268465829637174903531075129132812374504213872705826757148513482248590329621542772526473839116188968610070768498960802852570698746410485372579064651145257580270500889695793183345922240923197053064515031776183771556709590554799522338692168023643741917681554444002935966826929030980831000364564256983371956293491338514584096447742146919412493091567785872689246454962523362597561257458703107286657555899095013673412816766777085883739441971319034795195619749928742903900338180393551845625867612902865416483708260020681227160213541829339666522204468345217243434918271336107537479439564486470047123551861432908329740750258962914042159802901942865000312526162018709234485452186544925940177415732438536229047825497745085985631484372914698757186255156946016175640378712288724968365400996932649574701550828685415755145288373039036833345805859518828830905399321888484394936098496386007032311706491104677843555186714569865840326757437743489273200942661170319160280796899286822162799891049373568881163452195674533286774189115997280560316580178062690124822786710143548018699093503784048401379039493632001873143150494617771061138789018626777749503415357357725702778355727815516019192396891438407210614965506363211194127142619178531003109782279273003594102220702995744826687177500812271461925910412857770865986525133780722764950682115432327513071909377933539023770767285086884653836666565570067403513540494651238925051479798246277491373008613841110782093090783924446007920415606134418612052458305240316998756059390508570831131477649106620279906963743789001184027986582994297923301101497033311473745232692065904919343679877271537826285993441667831164948453391635876416417267757721472674912338063544016837024995066326584082950166951931626503361603102977657524444919977539327819059424206276273359856322104590672373429720870498300236389602931080148245481746157404453529961331248909867946332630308113233465195925693683041175406138323002135860957822746245424466286361102087796164017162463761797962008148166906568579679055237557955284984192721943701499469739631288626453880857216854383985134612270539530037809778778999336951546642556778661385538236145211933864050399414741455272204892691046627454640393020725747599112897865990930368479149187783302966809598877493105429520874567455548872836944220308716262331941839550601490706903131853662564961074539879524765057982940074295839848150469136341706638952208015443126627379973327139283637788784753306146882037265957055026728953043107950602112703207423613844753213810485427196239471032650719910475128098030008110257817891982011011623373507622521317079133660715822182983545986709376469901980243840908308471298028484490920786196568981604514410392981067049579629375843399722151108704347054204129396576927781968337491615899967188060720400455013028709807084874394528055620940955982118655110701379322640445137088143105691465750797909510083071098147947559381275666419554545157876471427387740617228030821773735668456523364135402821237432539192119060050998246381934565438453845676149568895039775626709545595818928799462872563254319313709972263511690169221104781773621716181597296017210992572572991997911925215388968453915898580142082008305567811083128704081150297789625457768777444703752219493970740667290119530859975710560835987710391045864229468269415212807512665936666186753976254938043833864094553478549970475563574555318955381881904681580142494969953119329038657195590588336077111177650602073746599286341147012193428895986859515702979530886094885033206148893766817772854266183667102792137361126949687490273957845434029771772597963888973843042465541501523848553055337789537004304498588681574263617359473952523494067136462842942927626335391879412009680675687005610394680085935751673886998537144738959228408686726175230624034164434435422344700136277538034937995919371140016968395932413079087775504126125924079983218421012228134335000563630809951948015861901220864055369294180747072163975780486190252844811961454113480073453635368482077200018061571831984276527717468067348120743891411140171958121503329742392611213361901116406575706336513903986529485208979362714071703452266946418484638065069192524205458745774194133321425146764595210180111395041716949282977354115153769199928838790318546739195435008517806129675227325349294174008258603222422426204940947334626140330231797733436130400619927782706891213143630679338054212883186485491783951475766187250370409674818763539761453113669546038628324486876462563120831550901136854718766597508841900059765913413153609353797229627966738634988876889981365775044199792229848789957892492767699862509994448390498989889061030574357664264471985273588881626277210484633711959899266654314345897448828147279888854594447428243271085779586586400653706815841947969025676761046078709281701705988342123991272926517904646873793117445061216043883970920942989439053382119166843378133684446301972341272125832195359853267169094702752213659213300883533585338297749880723018153604287920035081188326361335552213837367238077233604277374756444942198575613077575833187174841446758052806256905523529509178844587657722753630886484393975988117830168562324185557765263231593223113139786829217004279587991293016448800012558011083055589634875383078425277013315275374319046694555440282170864595273366132865988459798826652525994308879718370813652023529485734845240379868024465444989892057660676073115160156371365541282860287760752916612913380593024536258931212729108107209082767759014164215538001152787195524078762860501579063436273769076834611892562476937398111589988718102979089639505730912636143963466176225336879672463889286549318962591868323436222541865812874269427284353916214513755342541080590351309821858285347681254789894534497046364881017822901971848044439629696718511305366341327772753944259212898037773891889754805942449034640125308897279249946744073233746953654269506196775051471925703911485401595894074079925598745457532686443610577949875806678913781625249300761484014769475496893329437487119439785297074226187207513997972629938175980591271374527767243564310380626710154297345777696829251300945565600522035262187087778697465603944560504094049042073824676913526426980997877780618753857241021732687745204550428218160921649666362635715428150083956969307085032229431125866059286661098116157193435173479376019844076128388023868499576341001709991124359498275181723219683151960270076915117668430275165068588238674113243172820658295569052135232931422082426099822892702107354181291900597608779317835997815311807185789103332529595271284509008450215098390228192697422395028007383408751930251638616823052655188588799012367668152377044797860122387307080118217718719386081589603030733805665031676547144357253905247371747258699388684393069553322687470241206039551123599632372169982530108681316600704477389473843457577098337788900492979903315648839717427342521982707275867663033622940471225420822176428898476888632658102049148552135025177462340112671693485743985425489621434904979575775690556201534028918517012522473052950340531668130814883164367326709038897940610026789701243372615739965036484130129158641661953891985960076525265852386247294369611533070050277442407649693834257988178129318484332832316437011599444636342312101666468213351072471402449560074019180725667553330843467888593358456659004256107710378440361140706208807909533247032923866052460546232287051453829997275039376497643421743057058422787615640836209913778867241440337628378063894293117089567061403792345883049905536652547625671506609124970701447056464232285716795863132285979617777603049154063680728898327120124208097562187282964687864490627627216746924614506891240960580990147151380044905059751616764089777858876092521182104574933961455633444989436801601385357500788815857559250489852490856043916639908842432015658115158611920642723375592404874293506734684371771747538182667679745005604264974108155235551839124125116195066653000474462215402032810389211046640542609232798341116679537056176583636456949839544531265834935846127809660751345688904848913021445515777479589234257867432547150543152885530693132346668647973795227424154087080481060004764812231464903944163598374999658806028195327062261454940577606443989150531748321876575136980954949146083899739158941031759410346333102607873014593441005697204689620877587408529980350754549883895464980857023415041790061652471436587560113835419171926631477316117218797609152982151374238899312412576659667532238467159933379703587763413989407466000379073650982989897529312699241533542729073448365727805403406850948189915653373856346061921432775162243312760811325965873106068703041128922419091717296288350949944221624191865697752374877425572363650143226906648846738197074405090153692735527343525776641017589660763849779882082303849697322324635501078836228218916301094277595899391134781771967161968501170238744173356436612073976040370033917501947063881110568982538964014898838715151229921211254105868902314517777349869473506581426527637335184334834735186627680007941479757204949834961130688084356609124428076992562692357856272867552091399351035819426131161788885951217716723558203642901747633570695931490263052581240852801656564459658201097006321273115760495679175584421122778166023220786554534491680612967763200338202709207881857303940122497876243239439092637350964600403123916449107270824778103909825222359995494616872533822329022426297454406694818169095461196857763561170180570181590103907989613348279144643037189121087085488493341800872828027549904337443209324241138151413303246661590425697915519061624266961812709525773254473029883362139525559895710043236436266874322905928566946203325135432323651984399650733600482494401417994728100085693075329244132028969211657893847368168448474425155183988605111816633734659390230185058654946577083460097469605226673000650703512231200545563882697081930241368490494166011588826233635816799741077464039477606808685949728537347731623953397689912664667923416019207194642969663759308630314059372917270215147308899802768263257111216030199758535936340713754518656078877034251476652255934309414767625833405786100401727718899340552177882069304550509788672303915566121198594012129086971334694609918031041957515857783144195156932075768573823907686568394563596662577536123345078867948849558962347609025013564274634338299261577255679414073374488720359508187988384121834084120310431961338984332733883374735657850654728482279618164702752477015316294731402379736572470954086096621505807774833135788464355890143204076080467447515122502337800560432228521321417132534671746839128581260841061946426214859857938086218142420446233630244423823803236545015971919412250095531046277972216915629527356542918936720251596199771042681518074067401878190810586814103132957492826323437208731018066562889717058897741900964374173285446714585297123486295310325142189761912405404170238864377111523852878160623060093848925321129302677787127685360740373456448990651670710713463612832420346436458683283937841230802903603269086999060916790743592370802581225112009661888429343162424510279397093033930387657706662688444415870191643904281812651831911530035345579737507734226856117100455590972097397727934539760209613169666294160599344881925607963626134195720060984537966441868190059249090916813788422077622092272389797405578218008401691034096727175031240270625111735711638715509295825493194099764632134463752212712902675183304456984535902121260990208913258415504794610732598114437556138033561952127056132285595546858942239151399896435151249158880776232695027593671783086003747161692304526138807941978584949672201473749535467681584287625343055881413364838448768991665722385936090484097578418434765995469583110599508842658229733758297141810373867383154617059885083684608963707364492920468102073154163731503011478691560344482208532122628701521967642657355882263990498189337666118788346388528825342386594030509764632903531089839922101924380395047723061398729970397967713443156185832058397085326428155704536537686295077173262869548905168618801595102272101109429679231199874704797168832053453262754636616087235546584403818722489475824583149972679635924267322186629129918278703714316405355788066531001662825476559659008892378355605952694741693980515065364555710596899252378401328931278955195759185138661048823055086427263529532830692015715573619743743718006615170136172483725793702630341634480236496677727627469252370833728389158595624454775699822347856021196580899991647023575413590226270819830883404385754359730907740022403704232932754115797706259969166338584261850306380932239158286381083137425095590135487281796999797468781424990329518507079901298724117624121596782291231408807572709842519772939335970822873525631113429614075558396655846983156106018730580326675846964136352708542579714740994714081756477760538027349016961866843903665703913196065936926190580342792453646110315353057710541289070243092313210348099437141694818026613946658218763876526144955547218003702168124824558894638319156254561381354534191021109948214659498085542133481645541192109912659712711538494417907109051773666301676699700331496570552334165426250505033088373609524418013777197314902142248607508006298673411668558921128140959414801429321993420055699669109742573292722557198020333779270763929961523497572908248232931383519155623106877384723991949934199438236444643604483560960534786137057668807932342984792098115930881141412040695721908193568025739476820489370392300013597184280246696425402413746581251742053864816670348631498650468640227779456200571246811553000297655370882383412853314439717231207747608504087250463373787590878634837751678958554276093091640831659829840471579182024160235945907083871753800115741961424019660247600686358059600819324614351955054169470273081052511899289757315430591680131068250810911843650774375539431816235536336507840437697497542679843667289651456413068662553542308448634024896279631456002794604732392459422068825907699119159224868397953844945697080254017751437569126211250589964193279793295394062536012550071245941382785195867597475866080686100907904998847584388388320526197017016064164864617006486455017654680142028665686827304708663597831649578288417146580915036403061482917099398585588860598879601028420463022652701183092222190885365838975628583600901991334566844213922227926615572194462204039337313481531132722424342564371672101497695320848491295918877319784346069698406487888163859800291157304373140081941608594525926141806665910670567820313428638255994608528070744319238621241007607702545261840595163948969334337267386869111194456282131372219746587673807998499529829186521435621092146017275238051386913439671038488162171075934459319838030846920294217280178765626227695926516903455751924768863188483053920310396152489013661690995425536098604673709519057783567478701990870315227361811076275801395515248141593441562690275275764569623638607654835950522408911382467506684358927372346381496306200683484467420738775110135300412366632367355612468071008744011224393008890965881879141253144481982878667135371654203340211542485497822059324821311194365195800407471302754901120608572669783030247972821650796409850979961444125971153151736794716282144271087551329694509368374161932404580962901598790064542784323610091409598259578934193581399897556546108335685894127972333418636774142228770767827752186283187547738486718805527353653587542515761206861469503456960171337330750740297368024178034966658621492567336141646809705621833570250117082975825861249196795944722428475860167863983430518754591367572794111554871888398771893520063882214789294797330539919226582458369926333248395586168698982072261638363289959338526569456858646119268596981812310257992761091466955282926764634887384559617481230006348614888829841115951405394060640019952329460388864326293102559502260698010274795405244816620281442545568619001339180079987527154583288284464285468221931307320966471007749185208538341869672591142884054147626180004233586264681580890206879341281365734875938730866810372591648451141013302872379691125405670390934565948488498247298501360791775926286461082038502609796315583191135035591749802349582098849652342287297026045855614961547696913235540465234293884414546926755305312556311742208070686163405828879973536025256835595920268218532107615396936023437115812258633849437207156381233901515002887665809018892937742041653605968455595781149697051328602194697849004562319127753153284230460310068353126566947864608793748942690986696062839626581085980770419971276712260414056577722504700178538210281988490634182467856306652375932816959068287130906011222442328506133112547926616931218011445180347593771776640566866231274325338431034462918120495537363714921198200160915725604555484541455610474089873487532500852792995695263047850534822439271349680663510790720986807065761933307518111483074288314698813705711178156783162130139982943386382249184340018575295591548517541225926641912065095653390263914319423773460549865729098014641917705781315115063647218461058992959886392569991744499365121868251961745322099192796098623755294642207931029200297407582770428602891616778155399572185195430767450513944036193081807457076009508759914475822141898723067501535635885794443237531689756536221160538287430690571929068482309698734755578775575137664104607963939225415601408204476180592134113393187260149414290818358692169778909949245109893093311786720247632348874212337901016305143141343139390420745328982685999880004827764847171961398242490651290422890686088052221409953598786755694901411197232512515833840489666206130718655560762252483133739535911011502742164588085378632760671647333115062375922863495959713219595302479222037349981994150154475478574502592607908006341635491460623528328692198801181170704357225754937767046179883751589320643567213810355188312141984949040611941276970746448169382540473790830721639971167393472761928750636518064026966658293277766594832431046934372278366246544196332529787122020689494563616230419447323980746699438124945339949186988398946800437040353690892895661918111354834722563151868003906066009622463523243417835862865541239729731090030041113892565999467101419611956212834798576557771050495896157829351172234821056943917926651429403932308119181079397312324386150140072352586486530026727348180832747455173843346669306068534158425488987308007167973612651510331874924416651932506170871070516415291324859385402739633955654615481029505350191626332505860907873583416925950225220840937858501716117601526332249174489294507386886688375460471558039113327395098923463011719267414694537958122375107225667688586258201931989822744471512681104915800154746204216907273432618004161333799593658449939137371542242672113989345252652196951017179752314251681672325863277353028609503982978908625955564765791880399487386049411925844945725140817228057234932358118318303027772450059340589838750574611548334614174301498681691446922918622774569802570838007553919493121407777544382177153896866111188185240694690322617637030795624564296764379469560860005075494901668572463134887498187671620399748371801215243632372477957921648672866137135916288451443943077832653408725489901637704250631823072235241858754707826398626730561346393762808912844823566184800700980835063186778236627284372345337862166697191285073865199047017087930144184002006533182863936246700101306358644842667926193410377537235384617738590610649809296208929140098836125423754153781994872046126793695289204885895397187072743839692069916801120661489406211867278150378888037565897974919365482917900033801325082357844109677169914288989330881522528693790108769361797861149912214128743668051775331513112461868604917878594104040531878963659701577756650146481367780941665574189143326145066173259817401743279489160082818402235762314797303221816663971548739242861407236945454601001173491286956688672077246717535344605949628682023512394193174854571930594954004260171351061687131913695544859444780473257625239263001626087470906751359308273757463325882651012079710833930593238182119201381343690751282951607430482616036419892667035204267124689092759732107586812396082416700548661348568063288492089280383229082956711749307574774107933456731518849765847542008927300632139831458654746797516940965243735326494481550011387810045426953329220538712635196874205144014597767806377808808718971208394629615816712713885204897276643386887444520971328026585437465181121564610017688984119206880610965023946597255218039870000390680576104996166110961173432792708232632500704699985453528426717291853811166119030393595380336708019022129005815629476274808024152697056581558488789202346362251401273651297333292533690464088926551475047713250913600334891424601883236710804703464500999975847645142087435594017797607192629808398737493765977266064735718873408893627176645166031115448764170968341241493999332995149112790549797985850226668284032006966670837097106519820992842827742315125378980628207962202061735866769902111759720540091832626752615292793321403154265469902344605430870638312439608364490259235684119159470198181633806760045516920548172088065321138222815437101178317877701875840793637990008683706711124074066436094069656054868667443875594092631576653345846038245591943994605278239541828120053352267326015451998567753530048307728830459638751944306159129875096849692437645218655934814878046721127452850419313750239313367467918456899289241202004051659433088112389738300240317150675849806899758449490160331026857433244693730116343589629021700520574763366097967844406997569795274147159599920126952692725415329362775695776315250036006941544830351787266634218750086184485992005000615111419129018772796327302594804491162036237897264255748470826311010686536493335493800789507911462084260416039020817331419533906786389010984469017526053069251721326945221858746836120707379310080291866824786928962238477772663603691347822713432981364944690281103840954422501600115203082752975606915442069751103094762424577884524271675062766770073822334701612748104797971520578554733188218287212601264600458151095301333843259975019260429353940384854127181494000134685643914940323347649974436824520150111709475639626198451501781493581929841968600173712799107090833789430889185440531014987696677213553231074941386491607530536737062143431680515315049547893750994701553813649253701890208203984523983979210617101301054397425018031924949534242042253304903989726317601768834863470775358539640651107302235853930908221543591142043145884993922803644680379099779877692270361365934603356455033901670986100460436952490029131194699261861236403614484186299312007706991432140149475591497856893222579033629423155120473522009450790644375215820354486800285407800235383288680579683494203049875722088648456520216128528369436944791841081096319556015250736959916792471320429930095283344160110931626277945237819167244665715079525628629036548616168217532815846605516197861097812941969621873879608292695670705605887834032441970957184036133856992421663610957464517272251808982404413385151928384870185297055270451212090020953366241739852708789935017224707688269960484304926686711474895144721156458670685461886197165410991562283520764102646819144450352024434879099220396739938472254672791493824584366748544274393325159597652077109586418056550012518076223643924964425680206542543633118840622827944073883714741977958506072162182597180562414628325968690689293044282955871496261339051680443278282368993690048021092191429583361527020819288617035654130184608077769578729591899199100331883585917397416281596956556836143176401390939218951996218923254254426123125698854437063384296286402792829966073511381440262154739420566462505929554803183636895794628161612556166460137166324504157229074237480816699800110487653909298242189121431463583060550928901075490221899175094976994491110784687741391212327780924817680407377617338354340122877159521733736087377901722328642488406166073009473463443105785845628594877678444962303302978352385458534970748433320014974053219584314073521253092209225726368252008386122201295784367367002320585894813221715832360354694082261070922362252672063221254412523933418428533242026632697822922849248884182798755385278288760449542208226105625105973920654634776952061491918876329942235501225976095137715498232249858592987722773234385500747810433267104394557959666648696110963502474258355393299211104347970703175010429162723238836380592977278005510781328971399393249566822163332108285915107396651488524713764863369147402711681358342564319189010210272292688000178345117464525711781309002698495712252628970049298568305115600042146860336710553401777510580807954732041807740471686642717591900409626899518217576401053602973802010043102300325260102831682361652214572243941125492151708592511561006494034270200047565367044851319044237837209003400852431174858837496788191279158722308383434901715005673237456812256072929233295739756599711857256516901917415872064786867965407888772053805885848749981842800279419474599923071001671816477165468469297071877595411102135516074029689457804733995273804701720452902898406398951849172645322925890076431393472959422337196196809325400164739097028451505759975662398906678572270640032828331724486416225381897127030410130697025046601545058827025325503347004669608677778302514718321115274981986708375018438410480541663629388844340808408405657156734051210367235743105834610341880522689668339092860020276749955269917708828695924029741976544095140903338982683243048618812668483104929651232285805832592755265651045552713621625221117031989180618544884069497863690632790553321442796883248968591240756780517076848895622706124220048704453269955722895156799577427760956216621410763594786281324741120382253558763815602841298145728287114360339531128224797110145662474835036665765236513391386768495483619605367691287969181409948504900583213147084544457988133404011260955925763248078472627707220834560311736925379907507916062444379127660227002508077421816262711821962191980047323785681349264324383585994473868191350285994903334810635988043621474025349797704296462924112509453327332509319858028114508958153837656283149588710964648499070817684734776198133252935747838500665527832327714991710144639557738111983869466549568862525312660530776273770439761282123452730169776278420777406756153431293667214745397389974916168438235854916889761011537509463775206515199934457013717284346837765292589015509740156397500224020645954908291670424054692286766153120033878853999897860495628092523092822180926763944446139878648319599978555173548338035559615305313047110492485087959665432645442949574602249708464601930757705227224392076405808476417217862456139763125579477984119491042779916036673781797292227474590227188066137763153081909749713935824020836516991343279006209086705339033235349616434550181445327043877211497946210607113543408516050820125211335307821124710316529427554042908212313022726106542653849397357293991444008456713417179080980180909362101505903953235577007296708071714752505281184292535019955403341525827947371878881689746020319837968444349650243738857207272921945855190907211819734237051500657410342392402685715871997216360513708430578516593635732706716613201912851978709018533434912912668786714696498349922687507626365575379965871405310394269558195626539216695083392749263791577140498898001014552157271970237922340688219602449427745875711647918504495851349799714730384366929252683762205578778446156671911490311774382835561220776347213290106032986386727688703604717962946173234558819418001930981658953770475760760454853086691908738247410707068028460705028902059457169624395380253994635072072955287187332895091313183274795694910374778909694278511550351335142616104853283636224915803295428781631504296326266190316930786133053336736686792279203894041859643984279557655983283551001660530559043970020494374357688620159854308181723505408992636073830180342975369985808081230703512548204272203762947412074092617215829313069817399338191716633302658937150983100743914906598962577257033975923005072751300843936857540905497915015746077056052510845430425033872802359585142905261712061778695934073267642360589572662912555389815610523487013486306804675237813881632160342245452603503711388325390859949869758742819077160958509834920313873646104274797796382796280988536766434314192341294166573720499222340514753434554758545274072557933282032113244180312130117162291871268724831460966368673987627183849578218037465584439739453026652247842734213089522496671784231170956894065990460124297810075115515413971961297085714321604774272833458847298168619456151755888129388833373364055199595690641760426685765620138892555489631224456965810836075027070084892785709283952603497857685481452891861395667017676343139506162412634036135618878101828602573605132142662690498090395298967055281220283702281241331722797536589476499509445420673527868926186248510551542341451405395626872764400242530505044380184192388844065399620439657971266374774714067426147527718645101059945134042227052437098927480449242449187295431733864334799531211385592723946211106630236037717092877121285544011095868043674951178788327796504820781529478199104072158276204960011125395228635102928138507225091131468353474512133870929954408367817155549138290890187870327368695921401722435072962805096484199109118480496294507291728500417028062876471169072253923924393162892553160596207259453877126711391347159687801907295793586699589306730462121751953557918808023896014898144921181696585422052712680780801436304114339917090221251399289933130707619736532444167071278332150944880133676791527105337620502280695622941683458905672448677851495367580190869993544743201842833437662089047424859020859263994984801326209260022647734564056558049980202855210123076163184191664800775475795367778281600001667215800165791330256033481174679743700873540663659987717167131590279981334827860769554211137684719419595320803812196236461653191010570340250806800557502505203223403613479808016794284917224162594032818903649666576602314135595743376255198481139338246641069121372624619985704018471587088800817784507840499329509694422702433416575760102238521068694819783799225067057846064115715142166844799725211656544291137359442463728405658347902467135788088420084496553433209098425734773876989942272253820196413818259598162285669274394244390092754494006652140339208783932853022531796253138060573011250927594504333850415349989539511517651012958954062140654266853786703833811482374548152354648403964487036776351186752558042220374776333263650638848483103821665065668946986604624047520065656437406710041276096280094222018131372130753989396417779719581041866057599622091423082086265989187965560155168157781533866047402794657695798554248566452649168454009892809152292221047038221078709975278188558462490749382931755411142164086705654814529617823781189701913132439827313778979132456144225643398628475336195805530592310907269708502377823026353691798378878287236098590631478312471438307558458351309284720627742560996390308334962754741070129176447913322854660101359972287813101404078879348626435202610806085140738632388605389496310641664437561447582972824598343985052445910356754411281556718768661928251697819562619612390326460982090344209749353595364480302310550816374534652497042819266021421166311353060924724714534218299380972926726851375466196472522767338935099492021544899853421241545009597651302562152072390705488951347955052108973793499298302936390374305641220276092970373334967216161430042616667685884281081597696184026319174357869520497475788673217930484957430504270638267373800330093940219519333381587521692756296850541275311369999831745308291171421738642635354197354049946815443378668806851351385708779514517734929981797304690465862854749456192265504046358599321433802499115593202045630752123021615960555059520521337879313915815477901713643795878972539884673682983890792622452101738322445894333626468236864024346392655492583736227407714725683703842989330265793863064394506546436756158455279637722013815374064083362010605255802503100695829051428059946290282594557953776075573384067015867400952111452794295547548435864138727824104648387121439610291338642190126762060462878935416778034026766151139635809620034243043748902150150564255712861093747169728542618265499648617889250634166658495419877514821280035398137369875623682923954191766708389858364706925862113982130233639190523951592999447391926529164354151008408220456233594201146811846732298794841105076429113431228520978364869936323980692137450642068902546252995475083881406267508263697993902013424760461127646910963610615305698653763667405972582707336141481678288719990730800273138375612793250806871626806583319409253263900451277456895114702647033211879905130792855756897088654872602521520206505612079874385551992310140991977050460129618931125204484045977815518386131745456441213798498829149037372891272406526734165016764135656633103251248102977480815511419355878201212779231901410041274502702772652855113175510048889036688572127031835670367104159303705052822844716197426320486251360928173904686247885574141466342955823464908342675433954597093651127862461345857487897486275104296802045962376494676426190167975434417695601646342766066835575272945918803072310563141038257887367870662264195921874822606771639004819922829967116625525660176460069298220294219609645406975595971969094694581965196963245732345172389130656803102873940221933331176546489009908060160069477979918831510809751579280465361675200995931665342825534019835446802618473551089850186500924288916184277197982715234037266307720905074119178361915522996208257803948696588894072654540949443613865920393964761310777731805522187440099188792776790073364982067339938054353739944781619600078785318316497748973494047430558996689917909005302827209558195180024053914153556495568427820340739344777757231140865587961635758499522018902791846359764805755994055896605420263954005929932637399107661468905467426130193261076474879177743357963469735934726409431086971794744649018559422075387993724582305718605845280203737448344453828830750441177846404408421102134553356769918788705850292571841758207233933132914574196172751524233830250422725578480573438858035545768379211029586511389654432492881968091885836496831033320621156765758338202296226569862510921669773718472166732806463706205978189782511771138476803010519057923938303475812904144356488326140109166126378339805735903947485295361478379391423515011570230337885166445571008784236928386013226926673108199983614144509880844494315953267472449088301580180618001193836340471652282040260432588058805075776497710518747216456262647701168404615642784067405488270290851960312282457959739317864205852503395906673845913252209439584807379693205849698674178887708680425537916772490719180155166378117169122123202850628541106902896001703113295096725755149931304079285886201495067411605908341043247677707194324236239785233826502215933738053216131314750000603338740827644326728840290143319639711248760757658400672482104861078631469327386359816127375232521552479273841971733226603581532374814910425986270552545163481055977741513679405530036349641463858128744333852502784329981615846316186264984781635722179367445038486136871229955053042313506624332607064010995699656429844935703881327880939142681982812582265917295741169331222643817325618709074287591715141941887781022310891239262175279555342897953472894798704483353630340098484838902252451116703577867073519245431676254300579153013499846902759148190943480800813932038886110390207419019674493002109772702998233884253745344001521438988778093639454848383480673202382248617792168310051531075921962105274160767108608200131433892632361388625783174076204408371153101292999726691281570549875382437044692221679713079050272577064114743075335944348523711653491498151982592258817458799192037730116670636893298251236871736369496821525366924078723578210232596733368907541324995783764985710577048950172644707225013267941084765158742392572976817725560612468561197508765589580042609712822199958558641980257592818167899147587829957158274811398390963993842004360180726005431795144138589726022934702222933205346394742072309758495267914099340628323049994186237167566676322160092907240878745228928065395044612978384808194193016421888016697873546814169006346593674066228938882937678366324062575540802396630236042581374415876356218130831334880610644024413725728002088696833158378290097821206236894238078443021043423524519205028198383357540434328842037598777971264967371472370557868621926485066863561797768068195227850130261015198308152589692559697265941193275962092227575980216423877046047129246925253353856310466693296556538234749180362778466402223091212394115528706394343690889606433712900746497615661577182926423781819842973313794526486429476063361132699880899222617982660631435537247418445933150040625399273611757917798054010240287598400004500694433478143622134470823403429054630189334878157127965466623969131106991388027848332539048766575009023964357136477150375115259426150814433601683245993054794369047274653753953310820517608028012002858508874751821176947667928653478468371480065230252339255617107696913082941350594652065900446365944813551052810388420121638649082132461836279712234113124178494206233261901272375807917133114054433124607803185227790774273770598914271049239820000372876686749091779609005404415451032355050558792163340457665407005709662625525447788761867986001653854705085168472876059261590710006488392941528526342956554244786430400492549234666653829400059722260208290668704064272466443851298164263300188102906570801018742750626556819583408180672174100648941942740470304444540771936114398152218280788534950925910284817533827380667574030797045129054554434219222367876042710979142461838662762932490825900825103956656550757818521617949375018926159711820732228720433485644250100806437349722332621968226419160486384695206159066479553541870097639939502495643229487560593210957217029149276831054687957456215374246842495496428442151776273951357530962325611643900310041778817540779548308307566121186998944641210200547505844362323647490246167543588419755773965406571696430717718048778643894212953349232259574068175280060257886197699343063867357822871102080384935962270993632832688579389501375588380380120440549290036523087598669392182428119180905787130845721107852569573697579368657692598611475279468257146118863508521414962542846799793373178349782736529656576084280074672583312372053973068805825659370471779418277808845108845474997482632299960935914864768968992641896475759297370348424155314006987703396088951823490471920057689222454890131872639411070670175303599560435460434868305881596457515820364544744429559597099650532761433203943494161579013963096975110692527602599370532089838019602966677483371046634859108441918939227676756106197948524993753112432324075284874732429224320522519163156431958688750240881846090901543605814022032526200561009649781724302676989852352640032528815711516897712113739979960754881799162082640825948591775822787611305372017420297940783246328615413087848061907199303518984415949564700271330920634858026756040716973878850362288556798573914806163396581514081290071416031636973172100296732534568450683636984366159899254054832265833176959398483796931422926706178998014255151863264061057903286571584727361174541519727202446752516829381385662573780307050258083022792378760899889077237321493708439535981549568617743590700828581266646666422832290040798052400350917268162628978633489961018246479528973001819862932819985032121895156681315696200285707420991807081334934304171239082274971850517451502311126072117025623384994966574274919290533932874621808918259971381865889884084823727815239565629479468907121141024897547737090944417049874128505725562025820293972784948927765309479439054079332874937379841563042487315739696824937815123453474295822245294007640995755223346261217340932206601525504463039184596690843245009609388997058973391053138937408414688477098342603747192240530753221386447653150301746584204364396602708507951631863869661950850018247514834705122303905530078060240457392631853071191824261302873909662110056779224508413583161740512355760392588146652188474122538268970110707095325785081138195836936889085280541328451388982889036073862730108931096459838589538887965711801277338568285996542877451149561374217071228027034505474190281295292375128353833839289469819539213521271353873819236940019639856377731238163696003123369225698801857376255769909896609790801123719435069527570464399996307846352828795250661196550325970022857310855007955276867954706385479473985747630132327693089919613623945834907250835971035740942847398248231890983952905329359936660256675298826673408276739315488193537735599787673754638354690188182799812108514390435604065105460117244416705953197586233213875578086176944649016873735173978538893070619044155648446003361162869950201841497118950606015876448815697698918476851618139081237359194988675636138279576008525357678626859588943742777381342061868814584157194838608620513001996141647866690899942332236045683207731096983853992134673760951651601418705751206809679887712947643244805875266006268686016832946233395918993196126514384861470641060585780911849661692046896221429370192648003362959389492643730364540047845448692750437825499485499149641268563357702787890931207132537659547488843912071556984094231589288320692267009854479695806923852925692331563896325908908559568594880430372593827492456466668909883319064883170412829042431088599226760545722295237709388907524704903686648611603284167867349844297991412520944651420542727086397740665483712276927256073552539675012742761782062454984243722158694204053497276947321050355227525874390532744105463092740049871551999655343167070009483875033906424632820990206030374284550149391256729728614162421725733327905290942117911206541375440898548308235571212971722042526513007620298058119672582834335679058107691022004573268291388144262261702637586391950817022387953873661347096929273097027466960860937460405038186665977593437311748828959600364195926090090457363293971709803634843397774652670909818651725273996151791938361430922158228016378403248047514372793930909440056635856107363917739326638457950906298608036223082511446242861403089938931229774674015819525550583668645465391737261503190494498416194670220547275933859561743186548081359820652160266459628129742354791834208325989155247552885075471529236373227626372072849612993239605426888402330514597289770226694195734413234169025118307234694892888194502412877366217057036131512189239164121032222726305091045897544960681558153564078233272443079930516747793486054056145584633761353290711138198535326932957362443904184028239106924277997909129131169570512524973342985146469146769315314011097051863579733868754345038856367997039892779423229460481465442906785982270369043317509009336169479019332695372459992837942813562800475436688066042878518761210659021367775006293168911640446220122082460518152474074295362271343562366220994177818529632647884673926395705514231054021960410388733533421046442510299972728040215325265385627794336747552308724909228977918792800719198857847934103657422121076919662343786051605907492458932804134652259577634493633395027363871586878816436361092104718818269751017957919317918745494759232085853617673889945743054851664129513483696474823326290151688943357531785641150674365557273209134927277196248766316780292755844479271197576615008681808916786093220433671386145007096808697127102461494024886858057593393273967362314517506659667302462076341382286605859953108462409572415835112003912682117315908642801984704753288443604253068042630715737806827485463425592940526286711581263704175077364723491473938734130638700554453482737522464143072585257760381317780782414915375097035780473162241145329822905172528637701530329370650364435399611809647682901164209854472111393479659458424891437173983490757020162837816409033155153060681831842373326247337638681107930784098237959526506502586646046210559023341767940831437373668595822827653310825568398387166979946681812614555927208704377889668474876823953754395317695717779681792323530162780953451714885587256357693562879417691478949228100563312271809168175737925279295102116836424527985401716550197731197615439438619241515691942619983578034351858083843233184045483712474017907924861290817854407542772342872951043366077530685684706578667323462816145870950448291872445479208191639985134007348109762331809579452846875541639859871586802205435108471839000488161508154232961414947932206447805071946787469582955666202526205741572991118065906012695605153027911030968055409865449028537257489697490361407459712755616907109267720452812810049295168193905898369642274552220049411822035322344584017575724209587839104888887158687213778735845101896019503072190259909637176488231087113866501184425861462154906083625453337215851046289474468859498846284603962324789980658269196825593669007076692489320239258656394055249777508913086087380561371579862517090153356506638114078129688116519357484614015971245810383337484955586114735762800124275643040062321192852527060067200444435972000291685949131657957213804676987460433752778346248342122415511068745892614614266281703651529646264285532604467981502563112343664437412658296019933174174720524419992456128281885127347916240861118380963307223245651355069470044344493010031848812202581807553772062615024215672986016750877258544384954936009875734003174133011462420902238017070492292347335952577383443521932065957154896494859476734906513720158771984321697986725970442872773589153724591437792681641513995847400044876687851417584314947037840600784616250568962921361385218073360279347178940265939453412490209264768701919681994069104415943107197377565381874758740530379912127343306794908841022052849665724791644249299526548727376025206935985991022040210587940986178654551291336397990800305033074050690016504441473970045831242448061202008105221973425822934525946952563723271398469007828079093238973273841836917385017831403784452214924385835308385338242111973010187531867871958870097537709465784452395888229941866480038493097441265265080301132211772260093861681451761411666335851485752343124325102104404876332775392766130500458931533113927622424425239124358519824563133481339206222212567646697342323420552318304392738778530843351543595418013070063189801381869478941705550987964761179233447845704218512965589674515866970057836386190888933717676061836136713531880382809925890232892073277300449021308144859488042996972180908230913866202886662744599787325565142001134015544674221981826280587118395551640961447650837600723802660544131837185009521157945376268859043845703459127030901005368426319771969109727801264319817769070288226047427393341892304675555336119865738608790534741278677527957857368846195264937970570876825770758437141875166648982569911136590113142153937634164913355693525817042000130398140809689677467702711022879867178267499453335659767247102895918957469029481386798300267749693835353092984432698468433633700806076705679160279951901337566396357246016284121202548597729332185724434378082540348380877324192798445140334412530911142179346961966785267356451840557682256751885018246695084922434640076373799152792823353607361186026130769083214382624654825299364241032463913560387612344215874836867731423198152924022962610369414609733508859252007860634049436377320336420379314057092121980995133352154681366074920655194880108668533645626523742825464211145406133658104057158281096327158348873305580123269254194801213327650413453251765144703587021334447711802095416468347095309360626014052238612654475786733402168560574231599240739226534640731285632013421098208044214343860879446972391081065620458796420606063890141639221773461308597463639740518472985314816622067352464210304875079439583312922064181694465154405446447483650101909862180813302891776449822009797908390359548729684128340953280848025461169766672663897269666758226969126848869089455723863250066547013665298125309223626043676376661870147809110349535574275067488730166702692460820993969326617115463037546430588770311789239263297486400965009464119111352018081878602199964934409942661747456227209615430869670896651852819110547317821351833816458996084107313201125989628107591195225363408127900097163179159238747293897498270710911287709251629485640686555031387317836866973680488971766151336584523130677409367359114657216275331563568631370582900293725953630515466046172347472124921148779603546344501447773221727017720359252942857559732299122022711242571328863715711236043496401562365702257261494926137793899197384499181699580827625534832781608333064173586428255602943170787038239504964037211820531546028555423935894408684507582489454054333848386137553155219506759511667521268687049694226962734312199235686759130833647270434064778164699901074692275335010512326946506073101304410767284245892751986277887728375979703367448786640464177539548005780144216190166357704944650392864623224432869336692545351462342879813324780261687725309775636131090768592802056667263030176558967631268377861948461590173309052462086499627100408572164609481280893609544655891920305606750817436730093865679788821923961534423878727625971179911839623700691236506149991270524244936220131286284402302792543747943732143417894261405783720913186065884362048028815665474891200548834491283777020939129767052306422237931831258858901353014380153659131585116905985081727737593190039102949744482823118423408708170710541202684180894664736832577620344202952841829701773710732301162989323036354185395598270389014446786351631041969097552731561759541758119788819371311364779823827212417857783126078021012749829676491218470207845494944981701039904097409479607116136873338074596301987723525695447656896013158356855550514471808436063002907295473369157577048434663369734299291047001743352187529994807311851329712979883069399734375110720234704987100489444961171068188278877075218907479333146905671397622594895914018173472547872608392118411598940606035487199373542732700425037415347574040434753977833469347412773921955543726618715372905845770503598365533576893640771506840909946432202833528144398474925278801993684464329950735380466321956263160150425190912054023224178952487491596299940240373192455441401820269636764206483589631200262043057075615239658596472246147581520426672368215917099245270876465249104479497629654118532639890207314598047425150487052311944472046681184559426214644374097842859029382414133354545354698101333399523514726328370205102589562464521683846494474872197335901767813439673521646244647568899558017106924604663295996821580403285817021275604700077700341525159463831951892157210594117953455193201582456030570049567036312797977431720619932285290647479702227237968162174352389057693902400579779203228699151902106330658015415519888149179513986675696409182347619412126460014562108050024145126848014116138432711450725611686852303574042400911095302823784512716443507709302991794456395544368876292419413079789091266187934531674703946473410679533165077922422263613024524420814646886053014301124264897951589183681866561586653125701441830296768377778832682526702520135930324745826217045828791999901186186237399464421398511144425408813927447135496723025966597193088762350880263745410267702331237508937311571790117320222332463698627500213720044540120546356507662936386406278626384911240157164872448965000862929962381100282645875162963509269312553835362403046055389221094625731543399904477810552014185156189298265012468636235470572469972669448501874735485177806630831187292451894819730962041192073837945741495255544609747854327996918949388403547373652778666186860231204321562685864321701923403421783598807052755553773909831226182140588351776138322199696759514252050455162151719080894654648806790119840104673309976362158647966274933848376299204631835387141123737392296546796922086297016352539311523690372874444531505983216448471459552523317611671276033181135258163139168312215816853054916730462571141241239198484333187285033116726295564399495039929569303743275393552388550685360218435203618374299092158685567290148385533140473817684394332422614260240989444473079758769106569139787511234510129733650774175570819760941456847208044907776035901619619960504203142414217283765031471889185017632216569504129219053357224330155028115182797659423883279488153623709248646815335963239269196393343894139017985772989965823357884442055175731672691610960066153852593157771779799238160111474272830453585101501877401047759391202011298656224362314558484678982450588481408235796588236148942897653410706560705498461223932823787993280301083707376450936352182886709252687472391594950290372036016259582670459813864170625853334999664473264063422120791803719168923411070725555492430706891606433320692862050053158561181234008869223536510546524585768743649277401449294139527897640487674208936652266307874329501487306683384159086845188403896764496064313423986328005312246899403265691012246859682198886313488336331907333463405123613783400103235833112623196646814891910768734499734467198209797601295371819354320934786784890415212325781849723185524157141837289452748013129691608660982504497103944899035649499843679982322141733334830576691974102741178221011797325450906627658300015992304707072694307346189704910984294945275171526508371109630154413435680684022626343996871414693542747285670605098055202887719402565454672542711737152508734343582649641094745599077704557897536900358436194118436854799798619597579919156439761720233094045560452864307177093632622393257629429825180493217059444009257493692992860495282458699254727074025490464365627846339777970344464061514496859655144576191422647227320952887677320570032460415780241680457138348987882754625876209623679093968424690760107010396033559757747990179502595591650814181986216393797480859923650915905495814866713363956546532374534492020931025218507549426773958129757110075933325326735810935867158753980478292663608909358741482822735181062966717688963255945063560527626587443813258645899213324057968005351080750800826415158260878214201041303519884859590845421394843530080850436554514989723871153708809335695536661002997274763943736978741757049439469764759956472208501972365481310425968543071501013983549557102854707313623002510561037910572009931892671001085036205237530583526736611076232303342052860054827989106981346530861377633957577131658550196511235089933755548989782485995343657911900090567755575219330875002807463183463354893524404174572519847737363464733649711359198735518676185434622750123465056291780714179766457386168124907488753555538531350661904083539045379094889214894681585172443535298782069071664097435185141367345847174614794214594732169062620898214871112250153289079442098939951577799317166736211873194044308015635228717217666743483757018685430627951859451294177411778796202072168036205806815006282264534305543788508581309432126459818409668362976387179527779763586713561128647492775293029465039164522682858261857787248425494638608683709201891044024974179533648029170553783206033817858065832690550622950072383074347048900373662133471390623960439469016136825974884103272983011969122457663486887636024348021457641850348504210902468533133794248555640684462601892013871428022918612296023203582798677075830932107493810767266633841007831527891999718805790079881460399975976760413142882915200276068476978747251178658158845990278235926762845558802199987156085542762305053251368916033880736075402841863620854393453079991116529220038983225300773822824374058945363007071850984158073651362326037449262739419270455061981449790722968406728591709653109910261870123211826087935535038381010170767968513495229436635497408670150407314639177211875116460738415061961099539208119742738918936847752198152331766477197937444497722980453073324327048746960437713222242215254179586972291788598010431298886234555369094276741011819376792424335113763490365847421886128407497892071890462431699160205216875404151237010377044844055127904493993416233431367012031885709281280407259075082706722217034644649718181487422000182643434861274492298410518965336608569527605699227062839757155951800908378418386714399096288539643499896790513954823597952019890717265255388555879750715591284515399287205415132516652732697286361092128608068052241830173651726229846698794545542438314327727243622313693106335938406569092245241626812785751431605991919534664993401240918175338335176646464441816667405474142128062986519060096666303514840102178817125690898713177628928009841836991558948123380527997382287976695008338492735136467806410766163437231871014251249053338537967919313557409798382621288477838100959285916962800113876414473907705657915694849943494119600974710320218610257798016040264438614216409604579813053212922803343605313456977052564805426552925153808027317472948259254599841101837914753400245029313386098100292948349010774279512507998377709009665990931576893048197682484297947999265643537425100194527654402711235620619710599052494221386516539352944194777647440597820270540034402900632337484331047613600438813487512887352796004394304594118992476123913841154969981673260901569428902163752068845837730100785061590688952779863785864584540723696915522816089539837245161280184323270057838147625707703126556196305714098509000425435963011458769171421804661915712037908391959642589947352735634083174399272297047780075121506260117326414878806881755863139135011581651057210886657257163084056559632488027320116539446685228163964979894461031076877323847965295939482143126032752280078631087513053496610070552368988144937387848676390039892060884113655944672035148720945959817561445182060580166131660537426017701867527593675613718066656005206708271425373731487590935710600995406999150759110158654479834249243318571417669600093175327722791043662513041683052744670538166117204564948046960973171440616032235205677417113156364582074761218976060070547737348328562010319647120104026683621372304452608847807855085818223662328012868805906761368455435685021261985617686048724730401387014534313084067659820581932587297222452365987464556876185686030328389154397931913298022526252250193023588867735116972780578992671223924823009928026178018995522680011791768098581409187344074472822543189853584561877043624166000607635816062151415096109734741492225118072560812687667827882872700816615813870277978077290338560103580222450118202365276676333067796740841331755270886298555542529784622438525336538446532951776915481772677066281778524799146426539495229629837761179955479610861680498199047957119103881240672933150858175442979841909869033860352728578182670963731943384988263256195284119933770768807934360013919798296448562758975593892636435903139274332800285404748136325430873974495392736394965479116685028036369204673325406070588993341707020027623216532220649495928172580698946391471364641334849720196067315688987508940973614822791992003753823162019158287317626507537213879103121268571183275699707112587350701910227015328319526862097848074405288924547623430326159582015364093512149459519101511989687229218197624872060480854314981362826784354184946174596083120890513564028701194987049232724657216473655492993863296984099239562269810972631002562828006393717871684310736854613423670997775606544893088538045210274536389584581097635407721345049796405246704947912100285393144722778291577245253058602437782237284647313221020078367441385420466278611104871417026656285733967091691052317047409980427429971306105396701980372222589483470775918131689577571531952750609434269219702434559773434174655872111179509649123099934813070869524386759172232549488260485182933882947622901527619005047082593753410881191724304097123779799362068044849329861560781210197849594920626673768176415827212323391847174961679976238869044891644475921026982085129336406360581530508333110822865481252321929549085016450043997186381733503262548699330364368533871852997205386568373479176062765578769179097415225837062428695352686279171021556843129095046451561426070604522486286750725365684499919859044153615778994326991221241617927624185070970482985946494827893683357340947227062944872311025196181927626646824292621484608805775839862376131796398566136308745132574577585784084742998516910190088903341159603892049930122998267027111566944270519969587819519897801838593138658008467043718798892331089482649331566733083784817191560678408166800888509055348027161490409117914185552271404555291608899565386405774994836271898348547371612451119856769309429833381356728861153073821201589431968067870404102973184692266418152443180853937423290281824342415588293637390985296929495245781172809614341555961612777766132975856774770512411520267004788036257578190926263297061591430300074020545204118697010665998432020788082107427462478331986990488769546893478905934459162572318701943042227184533671838233393604008395817291043097332423820404136922714537983309086801306725326807023734141120378186831254924058517179465875745503714675883564644022805668571477887252114258078916260795454933239350241828571636935669005227549397242960715319769633695092808566818178176252911224998691611657628434641567033699312052760200017809904617615227644397299683881156173567065675810194896322940360385291120530728449866781534589618784178771331625041431022551818020868193327599717372577749122672249200192229628392884455968758852733036739365245364749234012124918724075999024855095747582836187431633566717592314273118949319833628635510012820315662885318343173162617133671840591550654867265475324193396959202255345517913842105110720750090884887382183785298706146814846912019185909039758065107202162991770388189559807451164008857171936182417694007374388981653849180248668136314122672293679641948695184768910151368025334351538672956964533397709949782465425320167442905425977794210804343406104983620332896862333074439532591866134361216496714066052392128718584400938995955521216010606043003870946517666432872468207050512437478381218905173407364323484327134886065858581064132394899130581940496802897412966199670394021954416578066155283124017453295856082890152825490828723841475783714175152535221068985228639120735147626847070908143589377405250762853320741510627630420095968388210126093875784673691791216915104684415502714815263859615889524452097363926279589993382064405959027299297330377969065449792842232584143123713968348159047774192615867172900190592474258284567957708687102366852137442434732575003273646016981791656784436063717828679725946504968145823537497439302499553714058201009391391524139127312269927567096103737857629547748240904478208369439686592328628368775124059736143843072547712970245351744189356330573569480438884958679498530968964812379441212548214695722964408289124438880371201611669321253568205030528106566139459393494320223933551080833805586222442906339054110883037292194249591714411351902657562201225806780980578485626629047864855006101435400905757885531446827912563239372720620174733854860951818520665056586780262151963173024000586462892979788952618252680724829498435556750569984009214302692776633820425101850432595017776714730186053524959291113634588641181341392868897739964678833910993423128911589663285312215257857469488205183885684471100534717963171894990713752757734344021828396446006458415578500039752569344490375612538875125391597754133278520499555785414151561733075517230147586778535151442998184935665191120428819928623901044532781401618433585090196158774470070852149208978239248604644988809945333279972275557268215904301935983632427349713499635022584704419900506418610547394203923817493669980537843820299677056967838986856526913160610182177530538288523121397297696923981166858559186128553013537865071740917630566308697600254356405483908214406104928271178727792723281859637540045250708432665627854759510045088855988493725516807614593981599619383047610170800863548712403592419846381037850035576061958157184481425932446577494692147273703082128303111180865448050956369054483639246050699111141397397071935433389429738567915983633265683244989442344854170019097214608105259664303171952744837038072371168370673645720498321407845507619815814429216532205836825737109373815609926941757834045800122595826546413562900983960265628147290123392529638264069823009247649515801340882229161257437477165235755537453117315052650472779463005428227780938138834824134203025607940735613362854188776956503515343374535921289307295279614542766884596220109193033847765948345168046649716335248066411796402682334412776479972929433866590426137375190010453840928862095046520631058231988017614270019855730571978705869469149166169767950898872863967185071491463332612434137219589333705718228919511095936329684367972374660631043541138741560945216175656673153331573788242215033102236467390596312296616401145357469827596674285053486126079545816179742686000401176903957393045588568254847471003664001081470827002724098164978713833760813087929753524397314340825699239405630324576975316586543382470413097177399671516057587657434992603825308409183155109801525665088716157928868475061454633667583272030504030995783843279083061342493532523006679236959965565310639635555335260483144070814086313582062724544206650506126095405186601838928174007816210657191423644885516323513802795799719527024491552133132885913380104526214203902109119143355444949052799872964671396150221409346198182511487155029858403490728962459891519631749503900212615476462099479803246652756141911430636109560609813453319171613139436047361009608404703874539165402966676259306197041582892400829576227078253178032589006497235646466376593120792617712057934829761319967852172745344602877281748119804900071435800403876935950515205656473675705918401516552572688781819791011535913368636719400610127384513209876027941594174872987431900623133181752057736878587946298276494749160986155947536041722199063290375734781528921327315796637774934076440047714043680623249184579391416607311956815314749728685639997270774578461539589387809132993331678372369070526889685628421527141928744235570134729751537728613045130444465909624433572397994237375351035452652362091723391251754162249729000180560470930059196278526063265037763599926056487830479060009226517464075364540186108488292830753829472990087943943713197443037387062743956656873161432969403393429813767938522103537387866711412915670151988869364864055424408245324687023874910043103360077542786973848920887718027419886583655327751394892210823427655330074311073653149108067190033532417326517305315282807067011827517766554277936936744053349273356917188762535520209178603791331291932915534736517623986932713440639829099238787969747164100195111404179273441739280549759169419204449571666965476796060474205705864514628761656469704852632963515347511707002298971626014088047582550907863491004078581606846314834403046374215941188584996905832181991006419675899972226806835475424432384722852232074516025023771609507153640295150946882462176547766389479851700471724852609173741001656691662693513011156191591521227150307669666430298122627414305752454756000731166214498279547941301998008828621882935418798715009417286353774255370725231927112656509786942570446309704159903371663596774037595776019512854776984729224150385905987030246196168243177758045508826027499660822064667478946614873154110453497595999698960400589366775148189572133457930697575569856081561229200604480451233451684861711461937669175999349555021810532979699703223405683889521334262711551673221571479534191227851057166609576162541358150596209258596820946271767564249985036839263987197302572721142064304945521086501162654175023048609487987364522012271785410536017568097497379644428514692243965263630932955679018979538063161202819923693019149404114011090445013008412496042177846621646026180351055329055440867942140604110559007297652484307649373154424503632152345094738533794140503427688865970545510769970421467279252953639198668713389022979529461606975453361263816095539647627906158152138020501869290831684062436125889289504669820153196095285210979831431885174731084609095430447082885095989020919819239221591401319517492715432587521942872338596812989611887493284787971370530854111824688703111559447563260590566528685733442889408182639488743583641022360463398359393271338345503544114892668455385601378098889304463511915590192339233093390008730976015946184399096533686499966876371364291826519119276720318224819033147820928430628752790759879291165984566632209888261355834895593120125837738970837693044843027458927900470620380103974048778833793558076576958212297827235460976881073210863607192932917288082323187569373977978258770003093472733916983995555040987732593305096929452637900961138099852350936061638122871381178045105088571216870493944838717984453896286789132036731151664023568180745777104803593179432574907318801417146369103794069936045614872129470612520133096484357041983743287127170963459746072930753123593328532402222800420616646773208517931315142430748187638378692308625935212872862397323223583604276699568775630745393038739505699504236410700448027377027116996135026442545076546947393175067446558586760742516833071470757453596193209612544815942778995419852819111844117825290857816122960803857266249475069951786775590514762393157598488321479114199288282416419311858002246262454059646205429017290861797380972458686796635416145596155895769122862772873000525311938426489141432354055701888965299546128347537650889527089251371930922323484414717021262221785895770358409715037547565048451408044402053250142388326878181845991761639000816275449128310296973196021048640841763278449899480665606601572139297221760640420657239901133919171943212737579504334248471574459430519629656816619405415559880909170492030556195898792699042024117711785995741485479357188130478814179580279389036689338429609350964169489368142636984142131643542527862963000179432368341764700170601305915731725325022199811149188808727894263314343101677882757727533430653480351557677183090880537095149482812170008791490438887940521225277118206714972102889044529497429411060830019394743089068794210952754797999002587314111826818340563067614872727615287497871969257469750465312655074097348125896957623598853262651010512301756787188450488858171172557658814296457478599557649923253708904534080388548692784323416539725080613446273171961843865387702941811037725672067653780224027707021624463217443251460860726214592530936227387566465621278074427719109930332547424629301211801585235154814736047113343123649259823401551748579528694931569822452576524729110565868796808138732718355170401338814971039440164555529681042187569065248529266520867907367033412231706153760537299914803018120840646569006254145695984369536071403756865488965789434535703076310419777862980965495096379096140940727320340489029316927908769646086100606085234605575736502215953184260465756654075956957924263494445642991799453459879193647130686403303412260370583816909136938631868589614523620797013657014360868366696463735684357296759098315467176499569482404613900722692545516026081804553567593092864641410200370855525465584584545380141395562483274698529056886004639682600130092570798248701766270118858655811352141159514277000881347837559724976198809042421074222189282216946671822057711238082078241442556488213931884875655791370230770137047225789442059895544772066833724979747164465311024027395807215417608124838204425736535080860282231472767478743447191504293139809044010803216333508344088673178496742588294925705314332891832118344665432119694844308994709194853617783377216741242019041474189030592618663817824469635140045570203387131179858471884230025640752113268750846618378379651596933309579949420304241972819830529693696614374916998307588027753406266998743434749242346840545562756230534539673440021042539057419872729391915671280077644184656936539398146176144653056320538333010937070251964721595314887719501170918732490620488302241485074265658136354413776643427509038619076494850856647313344092387116010399968293925725821399700962876957543977886977802681374416133423002853370487905715678584139631582833597832493377498580516370010109814789157826990610548866901932505113350500811687646851210244855403078881578138534306745623674445881492801105439665255221917921299016966991229309318067339785789097431780052287727553353391156720855559891722042716930399025365325063379825331013292989480796401564992608649147836579165259900665085259388498402769826038557376169305718296534100953613203843932843085154692723817453539872922469726072533644110943318107417221664777331716037788491986192060622302296506737929747690954343337681886711806677463028043788774755106725079154862871862346152141944397720598802051306165296564639762692217546898841383724513336817638458500680123820431385710838501501001014105863178443693224329484580397683939219635029663457352183774736212420307115224257326321203179997986250137079708427276213831880250373935039277996169655338322974547654813721411145304834531406436548151848299492422546506976980483284975370196308169302245925251563173704193956060476986316267876417496894364418471876123351110841554309267331556055796598494777551931156994286743033984138528716741676983992369194673042705796131123327982967659215830466703081626478203482129509245661756000842311428228628951148605343087561400212270437619919881175161946779504807476802077214638928750866062361582560451788118947397375165137054143311220323949558145303420161345791778078731009751645816160537638896672622214911720664257384947999319773357054221589670571519927641953148341691311200311953610632468138375136452181854644038128162144065524791410389498361723645127362702922521205130353605954384574115999942611113845839895554987260871868119001881374769111524931727495473433640949968731508720563107011911639474156995152695727567733712036541049565130582013040534275750462513571873452661435147713753046990615101839584761697551737331273175652141088822921902643853788276423814999225439626289065559157392351699793516166060463000921905671179412464642826160590918679206512786362811445765696103229834999927014298140299798913089564830334680503802778270722812176877348441158562556190546492254530020202171291565524203143088840884475726124159878105446127251230852310691552907207478005520545265711345678429658608618476704465465504779491941170070739383881121177503358579348250896217963537064434663883250669961134757497025510024691784865341079756959146601957033810387780985980229812554131514239890437047008206694774440398569293052697383042343171212693165565248376969425928920399318755783644215643631403822808223726487676756719195550643253575703640954358509570380587889107762796832559941466681367522098422902361532635051837537488976713448883552469822675499062108954735063786779191358905697334883803604795143348614305494606413504246785319902969813958789879852306501352762461126389857856201090667021540706372867886084872652192791401748843811894045145341709679839584397952422322623003541412225387890368551420249087110400602718211049401358104406330849483856172598374259714570479560238303989682150209930114844436237350252421086908604857480472654060875682536882168579607427791599290324540010139524693404965842663462361813020897398816797343341784119887457872525620992570064569143473849813218259951274751512372087625752607674289651899073856168014472997501065057489205979421931001236954212184627580222828319847384473537576966153322922729041762746403341260059291665500308969473637662435767266573351899313916400763845528195523956040755604241776417197813928191526119186666269615333128567009031195517201702611239621218300236485586113905165070283674952987371946954253064865490418355001907196787428988275268845239361660310805735447985070098317798914352910331215007281926356608166856007089168910658533444744408367767153932017480546378288581457721307900808628284579051651796708177603807811910341877801852412370551283201601215160868778538092871139380634987874223704604166712261914082459098815463764380522434059409724147067234104474692522200084256767674627331536657783764411773418043800007132364428630226404782429273271617685542253687345729521302983340040982835402028229057566252885004513330772047895823598099586753379874064334555040241808143161905317456755828895123697306509310871737954871496421690122438426445660234763431181943442581373827956502462937772369953929651842041306529564454202215336014845303288998213295742640369178293588109023351057281418528403350502254346514014057910548979179533665493140786866591048389402974364680409701635279430562625532321018226860858435156488583970897624461011696564046230037815984394388147288833623856038040322034162489750052409947233239016728943707633566272710628002360653134520340340316561071272356569941836130545003768730129202040560171408511193616420435382957118402761804601160173005804427091453287629511590114001212825837238740037812257471879381124588154078341182002156615243174269496654126739003350563573926369353396049221658347204666009794925560720197293343607268668431822540052928851222644617828968916227547811878001791826391543210902886458792108854239061253369057563760362832110114988107645111910545617190825328678757161917838867265035554442252247312213997557922651976938550201635212953324695775179017731487024610198111843505441560143783590194656117356401912199800068545830858658904489740096676832180283951807934165841034156385425911395448541473919167920442179973273685128372007902409366865373046165743027593136074532158563567993327946610447328203779446030099793731395587597207185660231479809375265061217404262099057830016354588952996830633341592446375141091461935547593213107351035857171662110001804545484873170445198589756254082922954290611033807524481497801073507303102816796205271126875085371253510482743880069770387403804679988091791424796903399217876449783430009685167202123401549368187830893751625279902114297607761111334515782483083109750980205912905011473535908909267704650075315434782035132924320959338762796624487147657913971531922393422138561267378508904641171777059472296331136248697208182780598931286665059062488789230582779621317265855537013315846227699314743925172756026394666040414026987332754124541869133353266161322342265556499208841180380712882530923557986374220894303545181049609260719924911200527788479188522918991537440818038078523762728264270978371243915882672464639744646852998713174160458857857106336824284854682727391543295357665429524077607220486779325210611985059474652988361870137212610180070518178870694389582645876291308398903838049127198045869925270358885292558817077322611492676535239583810373588080433369178561592485917699190233751036989284107756374365199996106126362129134385189307431279687915437669443739147444378352781035313415913865719628908795105591261258362548454816289312739871591547135164633692796066232675232736251682542821581524908019388408446040302991268177749198556638754916516783851134761813817710314424043537282723315343775845223241665641118612810030792723154163896011121421739001290317886668647248990590711820620390270264949661576072506181113894484348431133547788680898167182849543227767302309646522723069832369321558027431631681009257589068192740268111214772879801472119624687433641960150666902444127528160662037488500624633549755642289189163232405769581680588687571254171887169027468994377385221597119104455995144490070126999412684824919068914482715735119459162238918189336297370670987923738511240908799717137269085067858014038537469214370998835511958557411813952883910337771597316919876472551258014687893634258373487478214668001910790681228526729230871147850085584491998173274760222853434786798983909598294815137420009556203174404085355889260846957374628300631457927857008710972535077749596560924000324892210494612139936602874599109379545766038687781781756151620613713554093578740315179969976536537603400748553868169754020867591901191724996842289409187004261417928720292503494593124025265504568062901656241364212633009262320238737724635044576647803647155654220734611296010239745183407604387117455874589221215953511142432280716885504494353431055307815013310001229108637298169165856266897874617239774021084056029552053183104454331274550608638859308669946864339247379171214636317346227847144094288539713212542207970758823824385200429430563406599508463836975370545077043727901537062359099629991898012409921956690518323119737665834646734861485436100719434996060984475703918679235642744497748122663434489749986774940499169026988568834642475653338465106415967639298430699042547588691855778558581972464855437695659177901123937880513851306305517840090234828059091962923901013864676934759064248882600823362287272853551291331040294022333101114209909583536534433462883840552076027755990403884418388318535665784859232567519798807005967788885749489162511580500705610872628575172484987230589191546411654065411805001919904183466869119334380212171796015435484491703211684367000438718941029754447891055968049247659281116159348482758616880082739548987918138755573794934620636049434049035157059833123644796495603161916614051112563317195712067993705817445385882472473421635259403510244027706054848165307766673054366852791447243158972391583266476155000794711555708692431371759954232633804644481810513210692753727840275633330423791061298735930388957187628966454622432463239328822445707551286336680021625306535628373011382245150738979619362340512710164032455992948975313229516516688029884821821338853073956725295920023664299143905006321762403558132045012867039280651494804348891397556902398859102507414649226793328533742704349342602241419395513405255258861832758558204504365586729588803969058775518609328141814579700216522009895392537608439037759035656140732786424624861090452618754547482470890608439111219244748301624958025564969281676595174326478951822657281378348019172062905116228397764958350073055337934087861211689034656484485114399771919741166314901745159535731037497194673142978622577387338493613815579322568422050503350296911956922134117865321312465510252365049109638469122104880315131562449741764213278882433901230559678422186850194904162200002927753963434099310444299071664686261616498856670108624697593179888658604122937605834182206757510448223395660236138967875371036280471153069669089338579848814490006568697516112702901917040057704848565570548317446840415833070223169719780435783159599471197994709815855678872574688212386933641869239271154072344482179057133971143469784058754452646385736265755110957900576232688582985558844854811222141175693540133427964773491028998139339815167248500199765506126139375509709811241760132071650786543423800066960156582243926944302792639200188912633540733772798280720775003133085341204829550662743540981283094681271508485657717797086876794751208292896769600356067314426033403571572229759406186430478678464488686150304632861097470122259966263585990878015751316591443762212500575656838125478647061460466601625669281628422718790270298112116327743406994064406164875705998548073866269786785523846885358518932073876313805437091845769907879799084137014834820270243957651360777365021774347898592269502336105821175409523935099422883785791472782627421338287581325037989750553104271019662133465158427943626061786499893740591702899863314856998426393741792827324160339475210226509269117240318422474056687248136258019207900696178802749444624746395254620219622985009324811658963302161405206908128392218809670934912866872806458124867530919451080299720402927968887389831213725778255375452344885410119965387043767972556165764330268825706269737249982955347677196402767637284003977200081064879860355587120859393216590277580681454326564224694778628225672466031396174205669254126976009255266551529901352909801950539049766072132789322054897875707784935244171031875334522271095421358862544523022270906015207954303806583124859026253815632224710260215602756390288271799660785851633277163943553380963745265609115447581032016039914878527155148600486220283849061825778346591498137711065705117598925100626671186329891690598794405526201087440211905001376809335988953596484144893154998337619703896285456236231043008889950349992854123967222472170430691112344898957790222567886908612788932522711190489865317896446545217890424689245081198795720424157864832087097207510784250010949414641186607439468492322612370889722768579604697140013335522830656957983762398758298631697918232023882676391125333798927799688096375538960911656737702200697651769755506784343317105675517294973759631887150606872377760131555004584217087981729455547222897602462227171849878985951507760481945698595218549037034692800634106087668018872019345475932328679950758529297938009109663612591088637848346563797997189154247868224644546180377876736828852625498286397016942743506882914798065832246527835753192602938941133034435744951339948714101734678840607954821216867137040779847110766541798546803243877707100225594345437083423482304312343732919924900775207337632065875623634368426154099690888059635908719392645087921977776882231717495701852814297856654455068145821590957851059289818927358731024719913580229302072341892534599565460468025460314970507390909967802908558613151215150094418468605723339803618061297785186113820966327348642691146282206403208659228654429495714145334113777850723747191867750110503608554413069058213235219248744079855209621812922785078771749567127982236119396462221044211763111338685869151467306558263412785638498152335486402312015393412628952817415782752365917780184334405625192783208415214461479198859492046338744745001214227419657615781783700073242846215155401730863512024860127196905267414253148893540400298866380221490393001381776488025182231863749329022707522935796433927858796732492749622929221682191268516584137810294197874044798651405187077818343507340988877775295972069295730822937357795857769495415512575729735356945860220307402564439386979613783545841050717725253108662788617191319054462368264439482527369644857274824453517852407504192609060480130387580539565968221579119919328335863593861668020319986742352516473648008613514717665455040371686240045101567724830305243610404663550778358114543668460779901362245491287646818930760619201808710322283197504079875724120264949667496861522580419985140465013833413561463674782757921072970377343278728570264639129454867370771301462876222249453036225015267085874532056511877642799454709520564708882335546753040968052008352644361017940903786049770569991460170102222996346602012465641048802087357610705689490941948827729278840800648712735699956353288430431785924307319791285988872226592660728574262541927219455397743677926883066184497286092735964773419399470667631880388509815491470556685076643746876808418984484482447163078154640761190839725534853198070612730338640578455314749019018316830249297351506126284619096096611263820093638986135136759625835384202581126626591719136715683521238744559370355759676617173799285162632937123886835758009369037620712609049885366810952746919949929799301978597589728605018379051576903734936968553838932982929711272887631228749444902334173706405024693527049257394856122524924627123932066324562136342205372085747387090668479553781183146009850584311393780013790674163477702858671234059293949974163527476121662064350821231051308122840409864467092716204161957018127012115305095066897469962616805166761435423229866534672298415709622396200031463756093178490522253803798217522780546641327127744044543395641990824702813259365053153778454583717247475294897007249624018086553485198908050549631699126033325954861003643153211905548051207012139392999114563995821993315857608477871868591442261885320991818693727958925556208409796598465967109429272184568211037969280438291512616210206029769768267561092443832951983283019063916181682068393613779321801901742316231298791824625316152890480025141976917854055674109162241790977249517722950816204560393994325805219638498278467680944115078849447960877336697042526021971276751808952500523986566585056340119064868591333094831574823765806621730169865640923070600323948874074537485948134909457051870068065281272273031776958216663888792957501178216707559024921499831200685248623377894329962612956122419004661609409334453922537065732154858383558486776504306045073165892179690550956000951041539123580370130608723360493545666985380182828854709124911707809945527058142373490701903709462858570785495409801373414971840155912154589702449229179545399822221803594684278879622091221701823991561504121306156917648249090666365254475855104085923679012367503926050408048887001026812675767656357169743094026408729781502415740683456664241430869561356741179754082461524517088843421809967123560669623697402150127159804119766675845057714281596245225136413025695885405781186908675878002130606800748252298762327719258661018026667671225001537039077343362406422371250309631781874392579598980121235629513576345552825581265341261064489835787591345948903565139398378723831483452478488000222703380756918826946782093034398974090608684663572372343138825591232034126858536395430845714425644786000712564812590067189535668673663780087703925427984276644094691129303354936521749016889810799053405832963909445094576835459996858268954881132376039462771432095990964971122895502972105191755486504424398976680645513863497735837776762066350507173563413606138560009462453108855426540501950590358261117162305855841934490331521233710648214470288758786456224581165436710187968678719679204778736391790784263146249522171751768857476216021419502992090997993067778671925399911569041021872643508451605487880786496380340099349747996558991344080148405055320833335849341167449239092122661984157478102759129681712896023403715176649367740392793932477985460620554246472136246451908367569399407082843746064113721359428963604901401264261267120799963992599878141683080722717311656458271361848879177488229138826893746323470274015878685062788703297318903500567909572073692074654317697747811535247539425849755947478818132211894655882326168006507870808095815254395461953483621466397206040481367106596581867127982724045717715813208005674822380196862462631905419206009406171078708824177792607567293041672467851190685391522855404241041014147627515280673340894009210572288646067029940946017699815033442121148663279271142931164393149910873467664405749155898137822368219640171277903325291951511336574141711776279417324222318498958089396505305712541439009163991427882464107446231243865540996236961539063796651976410564404872798907996036770460063377483790848977310968586009359670329172592547809680540622639979580218006550879721973071818296990115092464166617143689999317234283566999571480825632288454299629093061067458692476013867553709770623482538388615357414781213843987718072039757805118045559885754259194188086144300084538671570441509462644543998008261235238393892393226949250677353785051372656384674295542936264921115843326790120464512820160006239144028253132467140403781554517352880678058165349114512967090966177657475944783584230037416593997244054412999766094099149592808620124982018056798333493178708744036961123501938981371137348289104624904739040822118936494370182322059417479580700323327306315055546823182200397112399693303844073133440681840170094565400137268846922826391181271156820365162882503362835481082056376269482117575592044302402122657433211075016574236041243085190167355445257153609475334754532630170248686954098921546216038283555264692939231728215705417342279520213774898177322614451809675277269134230690335634975285819109026101220699571778623560528534548625541642252856463033637674186674753267066568822638978213046810520131547444315965615726106591287380464068474940308921092613760751792256320381542121634382790350793663146539397374365305816401611543492835059361319284468946466057173872535104883572184344317056442584691035267420441631091618833399739988996269154617480348409300446801479232432582455215233859772480693669286039224822215151204917084191799452656624340379090998725902918407404155829669473008286822576625113997134999913097140820510775019922053973209022281717612257552009407554034170931993907052651592451799703009195767739566762852582524545869266392910145841120018628097297884495710403646623612460785465467971692518287101131246199038080587564094568068536505985272358290597315632262417915443990422306759049292495243726593669749571515008848668675363422358467209816427560626559338293812480766891615897375785775271453239230211498807890395636276353740659136987555713409243909291976156470469152827491447931484664173188359587921992609140357487369042180034504955449754527680648170957947566079425186306670806288778806248508456366652982691108514606786150098076317274376043071933870967353313378055729072693875472147199663958858874228276418780881099402706141267439144732482391208929773919259964028132440685668397111135724209034540459093845542245129250808395628196973323391125991299476721101396078585058013961400143123269624279704101204620195251072036678143486092046330148110798624762340208168600765648552390165408477849338594881092771341301752091551271567871073001769577818456738692942264778993307718018893701672998204685440770503605231384381822840747701883028380978755565458412066401819937126968608481899233153401824481601358741119577443241794325821357828368127317555993717285496895974900049836257669722627099411764598618683896169949069896945599989257197678679736305102821880033918164118748789436951497206998406096313957693446035798600520873413236959535769402261406437117318709186754499329664432457708194576240436581568706047423194222702938500554038119430083116665901158451327779862538171562904001664598224631473760176247686463056910753985994837282724076142532523498891699117545316685332761212133174240358222108308740741614973376499321865875973656859672484742036184767268153823547872102967387213713114354163951918799359883430655917485596889999987998128617485042686083814208177938944208701099794192437413525976462358471065529174850152790106441213666472640538271672711461048035702437746322107364705187299539697580587605287778498480242661356185686867054936389703599212060627881798812106279135404398830133883564039994708563658860709761188399637698020248831916904508064206541932943418066062299077747079836785546535500473711301452608832328433758804762701641560168313122751086148289156303693517413973273808189604940276532588500119768357034334812614431470300317240077052100295148611978344294065920114973346652171086227076894912677373295945328001256108224890179138674061677607222310315013161674319991214603771593541973389363232256905677083702157706573650933764517537084918930686732932459056219557448847715105149820502780246659273919896515550809420736456642659096920228741432702514835275470546262375393396811918826411130258083619116166344393615863289482269158081902651131887286177439902657730846671639866230315718010866626657591234212079011438689938102679941693264401987765603180184598532759651211579210093305617662755752480952344092307622823529861984557785090256320807220607910683400801370216138595289746088756072849671488169533396899765061293555937820211920272757505381105331420404741110896639173638254310960285945180357127837867636210454097590847698861993306105622511401506728105037680604777702630291807578942996144797979479020207515630582114948650008755329917485987777281437722875426419264682011009496731665012039272347913431826033987134772790442597587827908520571906650799828496406910132661542521887104162933608022094955880312201278301681587675210579378969886507938127547755154988930526430253118224151677075673167302640769181186551324550022971733821884596849810644450630595474083332632740827943348058993742306743395893179580014025315143160588242721929920045539373976451743552998213815519412991426004620213655563614364227234081085634465246879938007136100430808280245762558062089136450127977164416947560499312873497643658929814364547591602209982071989841072605254802494986759280131582632545881477366052502794130817872388274251433406589265574064007111865983662461338405339980062825467822338381416030249278147484344343544998267850810660439249150135305831140874633200486157205373499826802725643752537087947536715081882114163676779977738835757934127535225779638676365968899742874995002796139362748245750862550074448743611438677507276947509141395431630579764961067196656284769657085247994780213181090606826625442474507341646912316058416804881863667660966185028573375370538215867582641464286589520976528587698517645027219877588793890512479837058935789139599197675774536887439532637444274482684355321636924497458102487360289155429005633179713372136200271771315195801193762153787171449806205196115940656733400474340294979038304140699163862169013005644991208411668103756299529679563712446691422713764693564467386642362301619424193067919142874869877876880880694725895623144852465072062847464786569827650308267165560868705879367143719554616544660386432257018594362111881714419920656531138322401288388725110050033183600160791123941139532942861407112900284762478833805134063572099167569366432835406103407732987637206764391767469024901637472472735409245485157721662461394848615040142657954868360700165886041032936434492049614955643099141880261830279947052134170101265437187115268958805434705318177463051503692323214835878913581102006823312386634677307376174158386219910048442567129359015838149735638014174319351706923683400856285568338009696445822825604726773651337655400283635213106182135020750829140508191181112218876742170276513413440229390072070254777367669997077992657900031490057923559469452402651614901355140438442661581634482923107526998644700453320025321615789150660136794237168669940206845821648639357934242150428483662484497187240605183872166997405699897322407830604235200662969747762645222076332122314859284088301767820249926105683372274106564733562678480436432840273632295608933089667097350235393479467535441087142755719082131112781934123874137421236640453570039035455365915196802101619384631642554596847868316199725969381988599790212380865530747753982763322975665485969281555168062769942157018819466004233469417005991818878460256761706373238759404602171145561716692065164915498616736735037022701812049386835664190061343843798329968879685204772075109295834097941935923441826648378859240932765257099971549601416156782537899762037155794654964762966783182053494735247383662349715649180317283925849433538408762107333429758656993189815329677838659858512505731215642202501775208963436601993317819122360051237574399350250716081810729318704844227170216899129619689483889090245925186116699336396294462850490546858650170802446360476576227288649279979444477397298602931597855937086977377911359554696219410205717192467930945485621247722359202916111605928403415314975708848286559644460751920490303752657720800325716158268760477931686747479270876146707370796282630819378082240173851405204550740239411253163892272410815407046197486552663471044638950974323438868136421282436030353689670262262418310150922943166314677245876385070754924482312927210702725728274244336521939712762797395141585300828836083969610081721351749242993704478128187787500914287366366118282404904311326881106825751519763176565808924703645768071879143287245988348463285152966157203706610948495504998363829904031327969584691448947972198833993829849792333924498064358407673361882757518523367900604956564956405649727684013995940881365292099531703775635805514013650160085683611723036703524696238243238722207732500984517056550137799181776062979590892423666226638611614966815167651264465946056846130574800087626692283280787521777253423353877612897405808056212829704166150108304770539366913171457953029033692040256703515553027882832739024606020053175223295940003345919305502084070228361880026372055805846670659564377933672718589401929852704350892006174683067652490263588059463502158346439088580935048358144325129756403892470685726862303318500982791970992240044175607939683231242169356207656024747486491671848601869906844587591272830999589061171772366738756558101237261271382799776981147150439414397364627707555990023072789027431509903064099411391450488460931393770729004602092256991448923492917204429990201306713130106237318568429161134764321427761993230900298331117321687176471367986465009908691170135003079068720700060034327472803463743172046599572046902308612467516250902568749761362203489171486345188262341741327672468997655085987293722283367473545115063164358118097160999574212357462557750909372303392358923163381727528068375069944075424403244829851589814098937158741117188206491191303871651711542750041565019920143979854421955413571788481177169623179392499096051207440435045011715414204074403145110064196832026065096592750419398073750754828781688948690871183312561240599907505308035307765374757142168296666824317197151945828840639683144776113473222601360193615023147270400397030412458019218587824863938067875586518174461615374491348272420679228763945390104592906175444372540403080956777758478128271268736250050017457426471350171807716893746319564882042485484162412313979665707383382681525327032946427360976456779566764589001534842893931360547644274386116546567882570692571918237158313009867113160704948538004040963009831346355978432402508933484251039824143611784477433280221707546477045698835909668155443300436604473262519158334821113863211391852494314428065479857024627009317706555635170566060074577971358016276577319214578221165308421117666530912009772806725041953308129431145407664319006944422948891645219183366677609881011570467109821514537378478871768291715040889358524322806507215791064591475311202457263729892509240219428577238402578400605609924207202915795861216561875047311279838700724410043282734221180266763208449184829299280482264381029764429125817270528494000964297088073325036988973931025953421799844614633268241713956676895356245580457681803975764021806908477124098829503198451443333361184656646545187937608551591418496944446351291481297756330745422511765065323643218068961047633651448403100782043467064899607918811180895142324778245485056225038590566098265597352643131339612999502268981971440770093010796392086610879369958083882222074104350848277105559075744961892027224936262534243886408434133110851555488312442977599428404576623299329205716035675802928071059333628067915820392169128909519519462859452420596727099242020685926921468362467959319695861144615090623489143307224680261975249082923148609335414502664449608815608070516129367414229339784084437906334570249872612717223456340128995948049489038216100927913391834308700128288218814083936277002393495684660077434256586076853579697655123788498646223441693809567839390421444899506672464135113730565963875426647274822318579055446593263523820105350144005892144162841649406597406244919781456906204893089664873983206254182419918199167231707580973399845416148156557796746567456903631376610316454743621925755407197809331844390012221152640230098532463899261208537974081795536383653833805070258297372543793339320597977312511388153530949461226028051109036834779034495863076763907531662006127912057200389531527011759672733949348652081052254640356289827842216438389867758803136515938082105091826633552752843843883547148586412956624000781463463590968733132832089606691583031055531120342521732407412451594786418454372040325727117725623946860595586971340914497494589962891896118518698856014158080333866882766468132469561732291552977114401169117459311745195647746752475838868004307339688825157097181271409557392597933360946303168506155247320495684931648119901487422956716224295115855266071024014857445430214423233929996915050962500877442040641174876477385030148456010759405297586225121448969761260448697871485255813108969704720597874053464304030786215341950753030685279743224536251277643138559438926340713158218984645358581928860220530364584661689702283977801550683698460608901598106743554465893738601526582982707699016321013558993482179742926394164452892730945539093887604950570368552967043847956483433970073869745451475162951522955736652314789244216803668520622793606266753735784541009653919557437536704443138765641426041661667361207551554554006995203348204760963676765617200036633257079244514295512164474183379108599752896062361165195888037887317478619254864582789043816779863893132009102099572754106064218083697313489334860747589633406186883298217599733076473601906410531524917697785673466154457720642429598172109534327938711963234398815156498247900444273691174995242257459626866188168789105797994885973982954948630011191490697828961434843979747241135154807792165756964769967259618385594297316422639573707636574979295631308042983732729056025197772303300938667494730877121539383910552975236828722683155331871934605690193828308859692167427622784941823557068400385528768909753864276714296374049141368681797499433159241348401485876380409850126602571877859999683182337425234339003034951039509331998266893784478352612313472083253883229140318325027701864844952986381559009080287165995340819392695685184741052049467287427332424007466660726153722768405005896450217243673819600172363750855237550562194152957906188388158063981003179276481219924500214243404996137795506409547997448238139407051231581016650257581757787262313360595743014699865819668804085651886187115664544170546644874381328940415154133999385204017600437944992813919430376656770043212902673791424389623110828993750092169702587901312435074234791352079616549541064662347509207945951998961756864586420834397640078593108509923199667370879695564575562130902527011124745619086761749047886586203709776608523216363009504707170451561586160521074609477974795694672302295622740061072231591364478525029780901817336941809359322866596429635004745155160975633400818944236941424590051106929052848260171307240246897205950690219451703055312449134254281039816579747798683915414987504601147590265216469875743916862500873685173094945106967660358779743827238640968720509176841056480080040191211333217109928685451312331704715349531650987293903947474391346427074064715266260006814591620524362689498530236299669944418415446518594567687557366442925756928544374511034131576174654222136742135040950882820935491297682584151102450393823077320088885411291701705850986089460483208746257905302080274942329861176723598963594268462844185798262070005624625880953126699263215809514210520390515146257670839056394944210804547111118745884088033549245773811251884476833538828074188717156423609118967059444635869946750901534634341792734749403048924660562735382179838648120256798454498733853582472490786176253294558292774945921630938633910978191841926762265076800996935306868866225944685980501355006873597169024759784721690053183031347766674704798318087055879850922872296602804106832998294071969707308232135996562358879732031669016418620941234059092203503885195922069540064043182401427350239929155684202671158471593487995550536126753026973729252757295587555071131062283185519537702173310349227979088824523598078882262286723079836791089379820018678237860355987581710094077460258281984423802079221062832666916427831234479862043339123888529843396131649001581853439213484870702795678385469600347216206213733231019054631253809708833123624909601126213745430220172506529058421319129023899951495145358647676083275994523519293289137066937421536234349450934461396074872243398714902858456968046683285033317414238599248948465609921038177777293583679368576076219397590235636802649049698685150809814323229443698659844695148051629106226626532673146818029584123997594476004088552072835630244324902618155705049841603921964873791817758933106915681732377455212160630979030575457067413580917030764775766515756681284271478459646991623762015915887421603972554611192124341050618730253217581717884304964653652022483003666980383290157436156363988349692574071696855068928881051101266441518905695803772022249405224242850889085344240313657697664208207021575877125300613892035277878408048084028530010766881526552941333472429606415080597017265654744674290288432962651581107859671492652979235830256749777433086113576452673840462544298815987945884355614272597412456367717228624746325965087102393230981691477063087242735802613096013168814826621383679767177921603017717266662950342007494785322464768296779926665604370493004368249933666575027866066435503087480760063146870787896421155637933247223066670525583102767440695738449256436871479129883890624077070684633816638400726281976867094996888106128455536471699130940595743908910253731774266752814269903046575540678129615254662925393736759366068394500165332650989347757435202365669002932216143832836265854603158227013531121757337268573176157605143398894522409471353691949880575202601126889825581609654605932804658668790544139559635208491475445591596318051825599564081741096379228160127351554719613769503751529086141945577629926681085407261788176896874304297995032012374931419760027026114720774067153519180186002821531829133292039941672037738273687851519046016935682029354721235185040860875071508487767931476314095212333920113159539360633118927888440151500376824202471712684421931418469528013500808881862880624096376649680982397465058955420531766683936839996906557396934002551143079521948625336077801307968950807913621959175465423956093288457199436026454448318937321681025624822344178281480048996819573928777882283896484765873869059974070348058018428745274352969634788801945257070668471914691950738754031491869981934322090156543793472698834613615985708173214868107313041486395164554497775159029795011593896976067579699942731081903951042138923271589671721478816856020887470982406429588860133975893773527262937542918014823029447907446667105268134431341623050662113263021787363589619776863274520123047882905281122506362746547905783324278899721473765285493075536547356524847303474917302320504537813976624596707952352962769310921066944171580317409221969746111486109653318463465839538833290221818715435739213461229376441284129411731347822691501543794884513153779704233376250232343200301501043818108868913715693706854505838148861884061347038113919765006843156348994538196698891045728994129128258464852884749673679022292194073373221886648157828914450788557306774352929081273154588124127679433672832251621384612939218393588937574939075421607758297263881466293413599620219722475213912534121589539449902269744871711505400647354084765816974108055890087448421249783833753108503504301754768493404849572971175666247903953619096670409890355769265726475652615046781934253295486581431994638239043142859266120690851675373955288310548438657532728374060966395145772152730068835600916582752309914188670192255463363558693606793003216986879630240016936320234024012124296837299396415773502029771602275805766870532412054142538554913038019225460522896033852545565179028960301087639172606937643419755522893201499220791063061232408489549466078579371559045414154154898012241912634197675031935793794730604771029892379463547786288157354917192143695239977405502208177451971786644470479590974483889035304807146192533007474613687185501146204296576434239827318094717298477436115693115140952637909493387027245881563215873279044497253948999066122723291758178311955110304832881109603975467813902540153409343860292102955802509513145175675744634312005417729044112554072688991458422124779313621126107396839837164809695645822534090763917602425389442459498694796868319716436246874753208927293032454613989572291775922346342137464963163735702901655828366900424120971056307322741809954801204578524981605582964124828773858004031246098735936877043313142509242523673958361043141561204982435692457298883763506468069986887918251127095601016004935086677687087691718218232948440765740147029162248929335352310423212309841327906515825158876531942876292467254902204459686538216781228389441631251122936032409328358544629244187978554172304197260447573434546002221765637722949859831569206304762422813320930551654398517137525130481398454480648336612314190412312608808907273024289005304605939472482048412823662498353535337449274467371332024197842193105492640740943968368248767887983199491696621158240549270636403480356552021000845738695465861765678629614243934677993863826124349122308836802920979984575433532531754759293393353795752457163538575410925324317287881308344018709037393046034651833802101586455807580931426647058269137089858625954826258262020188726273350930004639361468234542604387052429159448450023779247341539867089845223144526527465273664403252836750304790744720303726972142879482036826094981710906538915854678778481032642646139638910476918357055497683484674182323468003378358039127759005899519086850320941707317758023709280597614017266530283685605862207308057394052421914951057531452687702604677609715736480924551219656272020242285868802745910560013592037172893472612457489775476060405466013448025491389608117653922160686195493315408811739594746803409259212122182353716809439683043157378255346916405259671489182766608887195339617528362367509700010424837711552214664145716694078310668899731197690728580939350449856820378507654980066717492055762528771562787929038233488276797363842407562823273284172841578474214169105087115747953703314205957620379545281849609587032969414001177947270556362442368618269964789897638756043505317371793489428792086672169250842797677766560884358730121117062473936579006960385096275597922187070916684374648703859599340849301982724871562025457204934678288948147804986551215759280714254019229652003899525860835132109357758860919285141953182723606645562080953202859638088737289594702688518984244438236062542086769504317026124602399260363858054151423639474985943800237143540048132038935663102443401492683885959418202416432404017142292181330500834652752619433869975761644479712913509041019391806071537597660264669249527141063292183826730387653346650227251827514341443471678026589614064882456828635630219199124264471905316958914486339847071277332226860658317712898649525185381672682105611912865720775337940979663580742200923598005106066058440057027945722320057133534489860269412180917121601677697502250533864236570508403475066847392481299467591205147726329975113089097736139990736777074444873083020809159266715890492030557416737446332523455113700807997745629864989263121327906996876550616870534126940727823232520653044685445856535798744229120985487369098945004715909317305827188599633606712817293022206030449523568646715953219849218186427393286628602961651811778237387159316543539632929273818752857812400869123707996761569978562766282196127990887246086514712703725162641823465792018195491884683979662756779178353052863773812476083716751179341169468721946655172938454645752880252132425731321435121360157788923574789374615534926900978082360181048061002805753083836668832658056558328822990327469201830289228078230522766997405098155145768342740199155812458950391456816136459763545317017605244748790727469506285896810600477834874589778637974956987090347818931860235814931045468511290150338233800690822295001093158517160111297198447850412654893865769198739818756497857615695990922959652166480803812866335071952484473977228779807848423211074561806594447319038207493703772861357721688137866360911867631271497847502717842445923392647426724192169855249487732883349558862623983225807100736369767587653045615019578691095390462764970403735272388251284768101600177852753119452523042658881351149862293041783349798038315009117365707458320961816191531661012117823418175811175402409723844648828509926769830622149616816724032629483654639264908686012952027575269982081952187491020319746427151279584530729567514022466639003812360583139128451476089024325030145539790998848019249254585847041368049816173192097222081372841824559625830714304681869387453065643578098385311193284929974355009887695567652957541412936754829606598679653628249318999456775486559947934789812193658716943487985407465903555623306749490946975928747604218143123179193342319331564493773912939723973174264112407753297046476489854556988549602070433783027358397808311245063432601050505191164426166099660828003880103634600214913258278980915872230570484286913577383135888337672444850919542762492068032307368262668721809340307469982432860994508558491577693325558130753731897778474634465877999637158092069455540285224350863908409566517651190587456711544368838510357688675746728365128648777002014007178697496358047039204763686189377620417281865128059434897790083923893810114113412797048159558638152074420292235159970683034632959964508927778800172795441976161987891768258261485564998042436485678389852131280524786436446919018462839676800659782771678898006804326741310593679467163609733508017894199354585338407302326551950661360879313914178485352672508056822589239834057089186871710456455722133117177122691802349238052788698371946486291599930070236648246981167945573571802527657489562097594387818177576094056550692801770839208382050993265856870801669624689894623877859803521466518512600388884846176452499281151480915090288270381482859428598331801311233082601409370814059941017462773390716114516822834580715124985704169388451646224090442160927196937447665545253445897922357860057842890583860325428936654905010816602753604091639506980989965102296572166331194244549610689678996598560411413059808380727207371353094771734425040442676892455369913159583407305692844468034803837435437966611935936897516414692868476149006282015291367129032372308039026586318756342246217900388253240570925577675952532069103543278918001713239631139705604984215770763958235384907973150020236978133448875615878879863806200319201954970492815526274807391995895468032845488305825114872491039769357310825450969729106156337636043457476592588418506139699057273533535513320729935303659274881362809442731327065661688782038882233898980807306995766516578605941555350469265168541504994544387110102451708528531918190734392385026219910531328132258071980555878577060794625141903319748060637189949913935169123322224151584077295776979424611925193475149867489982997826192371565987221788189281303486667517757305437587183397378171001962799188100283162838263861399168307981384229163860996187271107734648715088752850423168429288868452939355694446797044506785234058787493535316851875198209792681358290190857677094099100689863402992159108017288109182337944133010785299915988529243941809685957566558969019983198881039893759936440215427733128018617949009953895648342882807048358449233651368720187934149614593635579444205529518540360446330697329890081732251690872358816984179840477207608917810426406023060478116330667542234422379862752587377235872296813021010410367694668948421646166011044609969703697023223750753988175357342729262368046108216983271990293278634509801357342459404061264128749810468835092649299611334937288862022471848454636347385359478133121173843236344508778602401751221462015421570524089611852080829747170085632232177188197714370021231887004151525331744006577197667886865962601800052149526078795582670101381730683075371249496325010093715836387944030416071250862544567197397291779048622366493891414679863143620340297871040955038361489274535283909198257247529674678337987024001045161605698879508662287633531731885649822313870097483775644483321544602809533878349790881480599559669584246536169238182742869767773227180031208346071774082396795045365841965775126930088733119798926467208632385710799124629522755919079213883509864455765185996332459263987271649952310551655239859264029926259345934957466722590091023245134385460009942303426804753559840668717515752309663047180098891184121361762752622266316825262831110083940865646741165858037979013740756692212239601146300748796641055676037833693419661020719521714520878621428324209068111246936448162467137765124594875674062571783227824177906180745125679759361444664738344198896548810702986057304611657595048172587421752389233855855225903387119388272871704059030417387809077514312715107176571858586342110301901456383729951838057917257001269745614802430158942000245992655338104778959371861375183240947798795191403225028185553607490292636123581162048183829531567544860507672938354615312919166093924301317931052280233999736515516205086832017873675638307269426749669982965951593022063586772206995090106972808469930268764016356212655566410804650469897793566257353482644729466050300683358883297226530196900785493140602324036413423472474273046872891786333040182693233193349880904861827457087622692933235224352984924205777812726838713212939176237188703817148493857077653004572324940183792364853575426240820232165247260046921102259942660489702347959652246305502277387617712497184706799188763518398965282436386518033082467020213162487937943949623478078821977035277718362952132221014990396168974555082408979965517488337118321024966567605028824376680717801141667609182513278940833269880955964636308335910036757625250502023235687805207544111713034551238413905146510064060119987817321586105106154894594523630746725214359221229734144201704351706357906909324888032200380358077447685798644679676714785338751185490109101428519969670898563829051482034127077466774053136193183697284849028843488711538332786996979625527217971510539461490748790313305779010793142073971806281556408602808812379032902958337620587296438130865030438408597578615939529385636211486586391744130476716348272382494829944876929822543325063244409213612199613150091379736480072781130078213983874568824886770294460545228208467110334935292665001907888757732226987779346416959494376177957980514367920005119230592543933585663394914255670674322435788904757966351357480600594595893804788866948333471685163058361616155191446639878061883480031669910090893486110362976407366711871186476904399713409454160269223839740599324536444242984897398667540822021493353662487629365976928484795453748386123071428998843498311409801048396331360672768822035143519558544914635493420998960983963467950493040833746941764925864403257656453540729261693694619736967164842666481578529036847463824262276685103771804705608106215711732473094648323720466500703280020032284240567623155714778463576789594807191243037200822929296120252530115864688182027960802243032422276100551427344292849537329345078589500779985213164046344969688378147552918557509067660652160170478676538818927538763399847415572429736115403800317824115826712727820467515151342682317926764907172900776500166128455053922115400053689099076821303200684895617149986921968587104787284245962969782784000518980175474930918604137251524827331091065780096307846103320842361464958265436518507997448184421627010133926550410861406828430717544646335631751753381109936509901845309201008254829250640392016327131694374726460084939335043367626457781989333030200107055032613303240512562258071401587994739317193913711599455697133210331382254750814269682169317459488741504744380924634711500224058538976859641020651691472441077893998519118072788948161661769314817375014651463730347125447416224272543671435999332455723091128545521629991199651676460388644971456190721845967486372369945931274131525733306207973035373860580576754226100406585547243960456200008631928711033538591546728532651098711318533452946189464027821586107701831156673292078450604315140078459961962454147945490547193103459832475750087190150020422114823136772618805223933234711896117202842877929476575124220308029557575254072308680563143696953847140803312244883705008784500734468022946746486473668899942531547505956625319770471150308175990921889398041525743943702025482035015625547207280616249334304987643591681248467083670750975188687222802890264960493224910834897751004787460474988848904030164717366885054943580217218458994069705628940853594801908286297295103546328864906708280752671264303776026325088857157806239063348923093908512686582778074221348022665143226773735286978111035658425989212460678131131875410733490248357787364341240198357412087290129057973673093329718116171830349317694737831964176195186817470366545303010731927672425434139505991595666163943365885158282616470397249837629253594546893701126279677008252634750771880842347575803189404835103802109208336577599652936464281630144383483828092027066927174691653026713930808749757878899458999105704013004260944753127943525605665137024438582680827255868687552159257049131263840878448525015883086994577052920784099852461416856710894567820349775916050093639008973640921007378945358660297826034343207962714631829085801938444605962238755313052161642825322906594554136528337894710935005974023310822010147051604187248440068342845440580878069861723931160981861315450857311653303770117538893430950849679256802970075368157673404659553380071754700086518207520274151086642052724045402743017768235577038856077334578425775262628665776700575599964977761767217711760852897853369100628909489004399675363252824811083888461921467504224156500643027098546512181096290294250873839140352148406271106478941708166858121600557322686568480428973911224426918748335749346859935311346020752565321681364454522794658697801042304776761258514505897947822806324062709617802581380156822255717771202759750866955654484285866307637142688432730481385081800109451569421805198499537246568518151370778315421423719597593387977405293170242421903988307480004958450630684148386183728231057981938282920808134757118938878406975851732554416457258096314013915286554298929083239581016900475149305067298683739198452150328194511882660952667066394976100944252872175485897832302345921281379954569435920917175911132259992959986283449224724942504219095559452970940219414846729184385820826313018325396403748775309388903009992086956087026083184510319228021263312943486346290928084283889128743622447866023204514506578119904273365878605654161677016434581160175663977894938372751128407167631426165002964829692981390585597521718413490519233433238049995106309782156342217705350705780896762307702004390650694270786115043949938626204139078640116877424917783844552055594370243472679066311438292755172242207374816247110840907137866477437323968732848123352663716575731731073322840383894232011766229081567038763365210595023153038948820849029589599232997400849970107513605094548327045671722509577255862976522500997826457979815254916595987273442451355158373513471906741161778057351582577295275474778744829935546643546986971065003506718718821012710443181041069495355956738735270913871719304757670809045160356133135165473876815807094975877474509381586550252383151944279191527976235542339643875231195778104750435496779300871415673146539294511048520236680813860397032221299453935669190713161168948381763000462970003973562228391875006376894026706169912426520494662685886635622327169810760244031982282857324447023804959277334905150602705887174144940293368633795333520249811620998248944429187761669062172268361868082314147383613346817286780213115587123826721361031423689873745130190079545356827407215028452799592955411613398731614041919182236650124302066483253478885225255611543753144767690188673817134495949236168207095590907691455188970461527363685244976956015264515255505839757420351187280087742361361476401329297450594821219533432651467975967201366619790687748235417763665850723863948428931053073569458681435614308848424523416983631843544264521350672022993722155025289114578280137791148037835333600648125944631028370351336303514505810425549692223756838216679026704025217458165648686299006058126982746274610955989343340796702014504693839156203276274394544048160905644076818820235513113162975753399845359301997022655253250673167311541244529935407139157678338534926715191157890312129922000242104352259856026762638993081202189767986076179554527100944124544637505362383604820051721224668190450846642352405101900853053934162291813703289957150587611735561468858447419503092794363043923300869273183599535315051536179891941782920066842494566252330868248902291821478458538366796877281085884206844501422546154656359112918498061474094725800249648308241842114938884059257148320973797452573624908951023322428327470043158734509782689113212798568016812507825064087980403088672304621500108840395864276161206379804844748575986109967501243208980970674153870111350488979091730707281381831105423282535047935630936142172026466927343572963981598533246591200976179146250704008433611661647575142616357415926928980507581950364659555840973662981251131352009960706465977672686051340134353021019780126778867769006877336088897224787691519078052179445340503035796333468377410945142558906172295002647868311185174442055044374984547443979033262384475506994083050590340366101419887538847907803419715606821389418070436267279386614795284272323799288752158767648506548133944116155177230737483721271569399295225889538597774517400490294368212719145915136063734549768093298699390544823393975152176494264367533694952312921560166564906588064699086915449536792528877400250185748136992425129253363123421455053616513927158670751306234184209073798313826299611372019044456097834630551800888960532336529662951819637312803550023106970578358020927886423694537185818878598373253006739980396722997455400874879702151916829930668470520643815057731823218120951891627437971137573410530109287689975057027608088118278190189394098698834924491171527253085456153835017034094283134651694547725908115145391450798391080389234222211417586658315508335954083519974657528760872759452174925721352940638353255489672808371798749197567965972258483274862872498911437249198321450362711526204959181865929797313014600280413450495666110290143734336027381632723565224747733100572356634745274093496359901032316153293672826987312830643867949423051843256506999178828532916042284384732499578338452167198731039752937968039695270597986297833545712117570616133475333162997058719113460539574309658859872054536678493746395818621941848026386472682517562085309052888170362026156698925985680940319475627658886564146040983797774181968304871665353715691589950787299702060804683383581327671096742651099335470069972184101473521384239502170309834175725943861872872469751205490280236576442965184927515845213193064472182108725881893545507311168228292989429168173990067482587165198226992481081157826248401449285773982710603957211140489744293849575306919363244740030422118297126199888719729493437544443038697823950982688342240133841642728391792731302439645961764494558884031863304259442743291425562122166766799402167855655550077925142529237266632280188258175254898720799510853522279265229064883429080835667618628543671709201814652726544128105495351351985574179084712446574722367279079899052962967832051274574463814318020174372932190451859402214705071960672415262879225816841953873504446809681190636623191575066276546705647234898918126826332594576273996148633560843518228553953408836592794282075584012172206693463335234500800441468764334983675221562711017273232463302345484154365400305630058102000532159781406291544857510325939010971797193318473092531777362240585300884683731958952895725534985277514846597439681252479898650678581631621618976312929279885828858866641110275741873180027502169841031550324528426251935317671355173605887471046210676774422411424909898393673993342384811119757524302626920463936408089795024276108935743891032420483940157078040536597357855923575889206057801383222353780792336084591473012696880879055538641950233584982509628564936137846555354594898785125977964588211072629804250064323494566472160388798783433577490011344475169856693276890632981135605759212043719593501256013682250511429481808769216172449019465999275863582572302259375350041649890345091779755883758765015982175170045088270964641552298692722800028468681760902843570243593461115144536403436380902441593930163171403185359384642828009252682024957401039121136822683781086683508418325102266592507131660303080567539885322879106747369609596315292370631790043628205772753601344944481617655056563816247942658467205097004657865250367527660531720247201694945474907685560816613928605601096816890826116674024017558749991699817531042729786888593286487131455880499887092945168985952486647544717916977557104129135338947327113123507169090473546811091438063661605788922500845535381748126025597280851394358695396828661473095249742103343091626394872285331176143380933831141264389468177954397510169168358715337139209203375327364786318568986853414179982125862251218950465107496481526290122500070765564369007550896123770031049830812345569798201267075786534644163709214195310043748360471240638061780054384079629763927501151694822431745313440519263930663071206255214482042357310582207063431731162245756212050470996810783164629501291921867432404085259399368168102631956904607518841811117036796908907096555679738696057622199077972424622255689131759051689442691318546607614415204123895191178086174732964033472633334243212932867318378985509744312110269271823262552833447692223076683068430641017400674064874346986609222058317001429025803158721693153283838058892893053699275376306601044981653600789993605267522493532925058807145712235726601018418774200402699570151048126598026107070941967924117988587188093764067345182875095512284187986394951336446696360142147483312757466146881549318850637171258407343932791925746797591380942795939868509620621754635676315081886042240998531907708268114359983454997440785425507967043845805098031194778311224994915513882774948340507063676986165460015997867077573055235400177775519489708603566286308417627347899313881015533792925703832211135087072218617775177488157857013512226327431509417752572923160751348992283666637112864163332712471945819830183040869620443860560068395319585045948429512457681308087239330694619314505335277506266371217236028200396554401510871589121712470134253073940817205173183521678519593668747197668264622136328519377285272790413420292144500202937081300722067931883183956578326448188381377019069246374096553899308732284261923318975867532969382223544362526302634429002417702730402345545634400344462037413304053514638434089588471756133683450052569407346298124780431418346886971269957600347495506622574239035756166322229312735553070714032803439162134309139214741042085339566827006248334138709953352846118415217380450062545687146295831988636068244176939099902468692262543539127968949616442185788605237052639882502839904001228500301279152366565692332341625838841005875929137781130626508614444941627984701583911631978361810407764496179858824612647310787165477514728325974214529864227760251320964442494558967411608137653789272197763325551381042598563053992331064527359076297119872603970691100938496904039248033463632792484062171656542700852187641880982948289734460376063093652827541926987599985054751886255740304063940290937342336561252262982528139695526184323044613225809782847028318651067308729246470450969154787278872950182344379886210589183334248733960305022688984907328339087721819070150963026529344203179207778536066980284775131837387577685016766569226904495930979011334172878322085717318412031630855258354531821087420075505405650001306545449528662509604542072831622724349861184089463931521549018541573447160176411603539722391156706490377046032042096440871192531405062510263591158741033320011549872088066351055475410853142466270437314231138941298888743024284462293397637059137764866554889400892649859579027026798694731241516123792199510490859727684256814450243424432587626082085207271383210302012608174179506112799367554904711066100435772824498328290692788256523998949362371760000807143155031003370802827423120957974298037375585608763643507223548284608976102255028990341183877464555067016710887012139599058164482983144599891049975988307656736792219023079874336663169012076331520038290890169462420321535580234922949514011056019629041873268578371023656193154261478366628335720874731948556580531747937643233750908372737702019208621356255017006503496384394757189391285622967865020623896779877896977573072082823878025425379690781587550027132309324368290958948634640001351090923089193460008547179034867838288817399725686767705003725196157247114478746896392708634128440681819378596329495620013128724578173956321986697757293330122760976348488008790002835370059512961591675590092731448601363630125472000486912577138197191955464891459234453319281493230051841810224914949534742201899941545274462344267952481026020185958899984882485098593443722318263099908519422213183021135881645648289617889081101509990583953722137042413170618982210180345834666050750822638483818714263892915022550364352237044009569499953211340823359060570481610279893929933983554256501196043244300125613955266742208708430491036486101119269954477922141035590779591226012398943136923387650184207576428778275960191820486732394489052789461772506901393490878817905890932543603095613106312698266629850897917247810626041618860674853640062393222898917942660131954200761356118605733458212337720059069250982581811744881903849489213560249144694799715762661930503063045504616832878135036397308960988142343572343738244806562982369881108660224898922859962639343953550639310650983714627480530798646662394891644690160555633207524347046570513336577732014446517452932166756683040990836915888404489092101915008977536674909075198911084179172453616732331352198994519851378325986895481775434274563335399583641890525213453588343607419606273403553515491635955628634760292147669382780294755920005779092582265557740521875641742797209612454875460037542057615132070095542962042646865471321568534311086704654866863866479660710277268110522916802839178507691094680910969533964490012096581545484372568811760124553746017982617813930865641475300867997439065412592545579314709520112724708688473083824769712510385791893982183597486582640352740629481370461694439143276000758567792712404658497303457097720089165979905307680791846590103538544168080976674339807809390655924561028984127852682849030738288438042726611118088626059688219881782900825266327772784861783399617811921870964831590890677924714391803441087149318967473832039260312230059379785295413370145049396656231259021888274056647980966230127686431566407141866919357464455522868035048346396038048054450012814279931436620663350585158066469481327601578965896506124690236842144569703829430649860892239481026180542916680720897728087101165557976864569647817962768832808512213074322861506140309189849966807756420413364159512099306425000522789264932090461794295169441892336748553341978569711906192150765888008445760201338503963429225798622371145158720465538914535067246922149725755227916740354641492914172213693643347463476294377368975145851139350589505750243206679138290426532775177617862086211621418671471257517577625788119865502326420653337695011758593647461822606824585975938050077049519055781835099423733696371888994110486931672430682996337144355361143926616520809350041334044549572381710021210693603045932998313037800928461139835059544179066937279815427821714211440963424226495197565913837042830655910859189144534850249093941985542221339300394972252276009005995511895439280323186195603953295240836856691609249220220260805796079142292646458139969501804415094655864845859495093613646271961962612759306878380053597230594882751635886581722826276791255961431101088899063742012376957754378391448617781678841020142402735443744743198015497061004852103348919449311345057659912966796386878143069791720976267671391545537977213683718143536249845781905613798977034845340261033736565982094413655200777008577971029597140511182080215469121553786924502095961562033103896811090174160090161387666826516545910975768195665749923506252984426203490601414079771694805370532189588154891889519433756944973923296061527570585309707797889014395830061398120567751242928339472381617254406395253991582766839544643905651014298133577746416417619623978959400231991735811927186079173407640468228696801969379797652267544111375086064717349242022136126092170856184543795105073601334916200299060488777961151198462396659666766111849827238079359468204616530689809263766694784282268088148161710493817299598460307589425772280370853537875372126461021910403177271555479867304637287486154698221171117223633924549663816363236687639401740690966488752430471367869198061832772045520622904945541028497636779578434816309132958560941193418894056982228074138625060218569198774770050717005122020352973927598876466507858665344353804877892170640599147270775283634793550428731223411241129573091841804768577435350335204980295888766508284153429621000631728621452792567766953877809952323707142901665571661368685854780194214660922084474836255680878127703158699488292191163457621296931801132137540726284873913823597629802901577389084880645556817264795213797261936899063316875665284286611949755474298361197509489997547865441464659092141178274154260302536722196360187437579628177737954865828701874707099759765224986709418348616183890126269037561640221893060505580304070304659840805103994502037606546572770919964215574902562316592756498550036655904267834653981819289200711819613898832522978615126719654209756610343458911109708498295931395268839556330916314761170351789254100580619776407361682957695557507552477912175449968875341669935645914886898901155973531577173612322588979084776130314519239735114010548359889402106416983152808181383019753708846353597382439950491834166364141899489108391438527527901509694163493674559066012002769480825165032227186464176325244094965187902480482406103004048425563166561704668503089276454292716598938914425792806267057193593914032321667760328603413399041609928851064343407725337254925331829436484991920101511262328707817011068752681473315803263024591235449658194281233373595901150837043030130761400094023418030038443042350632708046030188257927442630672580982880484578128228323153384380587625925414137954225187814623412662800779796255345873871360052724098524718350273788964816595695847067196982050301613710279633880683437068298111848554814851838307522116948269651266274719888337828918499634564229920073148784136774644268301650499473262141950257880480744445377504307675513530214977493993123056377250425593314301999623821675762505975990959099663393059002023604582306379936598797471639461638584100240208481571287289853584401579413822356467335151840976860508374539770232081034776578155795609430201591379836944732811959261502154727964582897218917516505396773828989079210428040641977122442149375421944460215537130887481567476922579186710820842965137411337418906944016711057541481852463437266173060405186894657475679439909535072901791433725035966418725389506103713531894804445082871693591952269871386000091014455457600686465050702544534084600548074046107216147767647381505557421480820394759963348916999785050345091070764792395796420081367956481485628261215363520272182026556257056007828605629981866015833973833302168317380618023156026142591069631673874321571411706844928200675828858597171259270740809579764887889277290815641666944132071467191679495456374075157991829474745112839910848160702799463671333196562105866167858490269951731582935992065763115174328013754094101396223495926345311839959696312787849092691640924514633828889290457628471955855525689430412069496468285385218965085699917595372188818983840971329665616978368927984928594133080437663751892630454432013655260752839206570541890351973458551645858556171858304802287632713236016676806000615143840280547910723402953613593894880489129852821604015208849765297614967102387110341778822158483569870603441839547823079919596970262756902258594799059396082195158007639862567023092311621630037377912204193258747110342207048469834703120741840327031378079855222927466661936543116497670642693466666164589627417810977855018733317346864718303689059903484358462891998529007820501456796381394646328477860136074689745582636312003397480049927396755678422801300625133366334135610728246218574856347777991876868242175876322668064448850580572682002571830567995990707499639994781678051422501944503315650301553854952229994078763176987868616507791802506615263016992660558771130605024431202948379584679748093889038164412831862153337633856634303494952647373636705868069070875782214056355026015510396119192860498300756324917734193137781115116494836319756446224275016119542791214977160890719467535299584742706871105431901185045094450899126191885759101045942844370756763742501794545875048033500056709358755351340724707995551983132134924657116620331909300860132114364344457879231018861919766059199154458018866959176885417752108344769846904285700769395378572049052686519914515452576598732989130337193829334678570882391874679385860684325666667042915310909879671239411762205631683429745994854920370590659871119155244005262712660287117708095412060051826945690275488421777275775253736022154469110983595423449282453630983614378771560596834577250365254124549715574132731709081535377086906774063061762248188992837874006473665407059008274070223093236457935549658871365703925161208801314354334193503954377340038152869884689625062962799084803463260408595618143827805880286146627397853656838994512321407184230473440705052856184222911482135868824431199606925843341946370847695618398378353390827366641548296510937746034498789227083936715076193876229248030145029107472934217807033213936781713211748047217155207989891839648744989190173303554940101744544188849073937293709844946054821965971287811207786403753993928630241871503387228410002049435412464389866130360138474198446208684365655253297475711620290676904582465619379790248861258702454210931459295555945489644955980835779456786886101970202416607002529305240031433402833048245892351002816281241958501270892472211792840561498379937456201034272541996137315175901809794432801117017951637413271840253948406195285298132119309525853443665762382327199181503690001863837195846889921409764406837348575209944406799332385928452848858883861188620641954140826424703889075534056052441940376774929348075074720399604645868123077054857995182524614036916479789077037826731620146898519102625130498787646535259619226013814574971610419881378303471215127163084696130950692665690407524793666843960967711617252362371069852602566187941329851705747528266972504367669852501079069104942004270862747514038914013308449632981043041317978465089543449593825050816056874621363009284983244429374692741043665587936942385125412306118324633253116747209120929852634644053812359985312189445762149390490478655884120708968315222233291781706529587632179156671158890932845997314539823366903756292669396206323105614236927710056491685432027399840289646339557035114405011350894271278348535147388077734435613002187699833938205048333929307943828480446171998678754014600161685021978057031628036185139851053669632892672265527565673692825826856117029463706421179446875560521833347437848022907186306692929958055449325827904592424037531973837411053784157085989228399402314926585957905277758445373180691323396197730897873444349464861967251550730380281933067565169665934603084740751255970974485710131700156892204209007430914515915856494293901701997999032935065564858515760239972304020918580815751774627835878943968048243205567246543563679152942404116597218031646455186946754656635313563755414752898507299576756265702726152454788558842276171184745775867336867074131086408532136399846253505021403106756988715194205813434374796969306141309725706452641784020793535836143080080645583180879762527585886947488384067551626856578332038648764450056465679561426541463878695556861348065832146658036653719006826405882847482918372719072057346769749459617629088279338489095083989513314273197709119822414383685401623847661724451505687967119845786699626025088932108538620112814493226701617324750571856315397012794364461466158332279942796792850230939836659624232817616565571209033117369455253437133333726036124669523732282426211362307129736296390079318558661320899976002769086188212601612374863164579586368338881413968474884745203068550866188982481593557890923761015603137290740834467874295377934788145684620866339593023617551145213445318772831362490097534331799102356723706148178807496807445688367688968282207866394829526529979659001642107208973686406976122370901375364612605953258535913661722352484533224735992559591639410073984924473541229465780773611925186510758444139741647085129746541402005463913224322863468862190687273094435736699942605516658559648498929575125700996712565556192175519323389106484352873809714058482229361484653834506978758767911079995876063367394343294640957545059372451166374797621758755082636514040258128760882287207243450830921732591818602448713189307509205145229887845403162225101239025436875901585924982884289310535918006308123904878668201011668237244068027735579900060754239489495111934025168065588087745729271241067725578891151613949970369428162834021419014322302995156631411476102474676952722645972257893214672175758959819430280128987920217706061861908881198932666144486738850951614856850048935259244499005401491930434159671789720634818855897147076744249988316467079086097766649351179521961194787509409557705519182143266786832453302175335990947376936913836552860984646846871236706666159140205722636526810871576999033942171229980500530292576611468495692760391469321236986038223163192627198266303265377981714789017636724264519020983546079159527063662724750014610699761002547686147332267341833854877447633804494929799578265949439101500727051314668476630869066804757743242384627105888112673884394643701442026645702185690284378601858410824649695212517442511624047790437321542954805690553802491567371269395584134387621210260641591537134000505910171280290123221304387387239126065241641424445980316738962997327631439096987411884153184468442406924665919117854747725169789469523047295323488202726897900665265370755416680120490179288754957528866806778213124778693992740884679123217608210021290404163774282457245226093460965882535309770413453543366242413948420222619440906483753120626354359106858191220323648698028113279623100853802873040002973543480292505080369549199318997768334726286893565670342581338795047950196204509978955395748665586270187142820924502100089424265221540136803480688052308257778455201054820590874720524302792172004571240031544575052942620709243668584285370034328218042573007028618071309163106846611909135164808268571051674864782386928951254688882968300029581178437372468086827649853154343952695952755231804186570633951645820200576748446286999825013891248081750792599991490264800256706032750438513969184890812352982311496452423902136082944732564473183071970536872594050717949873349067860719877645122279784890807294150234894022473697170253696891784308894106062242712296676712964194798073132992365627660201393041065751629439275759232716917296537604432719583666487743848042685322729861111118125235228067322253350020744254159670306352605103952080211318650296486124569408163234263942319459651968668369801544836905757591980943508573844284794072083718499189600272356895591466448346710007221656387544114768600877083474379224450590630596071507845337349743022432190989226106814605435377764440329671343678766777432031064915295990779201454911595993193248410231475250711461456306952276285851447215882268201312584224665412043395261787064499046299216226836456012969620383641661804626972908378289573076660804973714213345886546313714193602544830196873461906560114419887346052331361610696712673936140460353920251762853497056784974853007126020966574477576865513726305891272294366664021288858904183735296218376313596838046777370655006324372241243255007060666469467995148462040034197700900489295327227993697294830901414690451120712697335026891936378743211647150018052994128580401758716027179999171861862964265063303599070422694643203418459197740771500683593293883538893547664938206839427699233374411154103393329905175044233194504474000750587586811718232733611390219370696300063412625664304196408039115891947725650253000740632149559096284619655445663224792862986274085027717320785133839092984980430037550787289232316354293691472647433205080369034379574231305153508938527214055076385250384353077153315524735534847387815238843784743551048904833842961738158859735273013808825154255874685844769480838239493178005029060900787940766223697624079867185179388456313046122893068867507704403583565186569475558486788386468880836985580896688961057470202594848192295476404355313388794194126064555347308678394294871399274521653191051898566617829337007314584506283164812127748586861547728905479443273867447298337918910935441839488630287318945478770193742255546197165127221564466700245242294319277958692593489260481517913397028432071114562762763951686827232766111566566681610905408292029982264190363164244869719295603875459964242522312309092053003552294090419861025310195658459242899707850341497398331202725858807053132965424173042067558639302471246341985069801662628617458303376777672927175443982691812883382163821177072401464186214357448890582676322130532440871124971142663349745685554802506186530646284955691303089535207123071149812638325960013956688697507502176459387481548503516745111017385431588401540540391673050795054246543644343563785409643640719537919525082303740266549299138237209484067430059172083854526243711515372370595511459336904673516916613281702806836947707623388245793371819353066186949500257591361813764560161593041430619113180363896477082268777155141963626897398670230881369283634927443110405181640985156754917778564865626726189449964383919949791341651778953883124905390708078999266750538176574704701406305634528666891819341437388231067147421816689401456738185510349421030078708568615673731480776996732942782928046846925752191518035616127007134889839549174321649064257850791246643622608224358779538537665565588591587720016069820607287431309522437078779587183571713966988431246932505235678280960713545017795242498241019460023915946572929545285010358567208971086852664178261334604404443871433595638342478884331256211563250046425000339897808630032599291282363987656450735666690113468743716650005103887426965642047745956448420867878654418949800976381792876757478090267290895173482623110686132169065888422914234389304799807512414461267872598477115508450414452017921145597853705448204976813992091021910847630597937722705373487462137859910306634909982195262452813769598206233902888808760140695857862684019629371682494690741379127510154333941232025519662181552714466664870453044187606951686270722694096714267922408562993500022929365210129665985040847587588318980167970698644639467452853849165308735623519534952520205209371351407357339793024251430301104836906857035639506125124442953539469246443992220752597337417021272990000007123618928799306343124152464052751416570845202816534825103412553226560338012967941830908168132225699660651950413666383792427291497324992099341721292680549696648939144141539901125621739374864016331444954695653991079606220105074275095624173189865273987740185733772788474565914197624618625897515678134761179934143078666838944320431653199214588617292922110359054020785244671193483983740849570642633500618205603286630411961207213050458415313125201440015379198054580461353462650500704986531063235000700352400823175678185067233455607105082643007824404351972025349201827947317228535469759429228263973713311367133688354060337246975682151868385629965238454097665350374234729831872560294180504469430642183047969743106483648515513962687915308959355822384081523399111251914649980902641087635688302734681744810224207145844537040691630397510218788178627421465003421170976442325417552873890247810284624380230179593212714780334664480677857528483649114963920096033804880053770862470658711123976308679653632032967664040921484781209672212790451921502944089982183354656257740811452244103947075072341507075653498458871951798959457772687202229362197377760921837656467555359776190495657295683116945557159748890971949342774306581904668347448445788677138717807125709667121788886757031353593645164167350058456116672904878849249390142499834268440232078077101355030212903719922101874511364333548007275386850472973194400213049153926383079761512101335378437021074176089580021153160767060608803197752485822799711164034862078409608149519818132273932326358619497524646699838583709904291083103985001924727616145609391548549236584584036856430200011898769279422017551706368612225633023596719019825967118355982702086883625768195191790452451200194076215079378949275039872944645867006088982059970965040738102433604758218477882679854454605300582449256329348682622494688249558593752402814344626909270887420448176266533789470395756024904097249529414028771618355037808982768964903368676920178945068497204792916656010214542826935684403807999217258972718798794012045596839040312634339458280532007491105588697755442854816081807319629533880967110462525398969188103669582626883203243071850018830209210672078228512163473527865093109941954814210141643730968413509779963187095887443867461340048423284648662734349478084352170313625091063922017287884508274403538302796061799474512729359069334597254851384866276125405093076057489986693736428896777282731543355421243526371483088703976076631997189207144782957662157426620625034592151955644792170246623472325855257673405834942776495805662697744592460752805324564493913444552448773483719522715532228968939636221612126225037621661146542104308304133558482109426497630658739362516375802244912685007374996219298698573154938353343808714305458022873228244547800749669747364844654529731463272091154125928023323050960542719385213835989125412358794589005667265210269859211194398877760182085683602654501497441775046938076631704051233862342486827424941083492418277497225522103221102172967280297392019080618062333119760037476533207989523319774800513605734719196933956205220555426865276735820192249728867041971887860705138402332444708700704666297380123147548401640550109263935532728340456366464173238579557331025887043333726957717461695432461643319388517107207513915724568233346327433941195046218866173204394603922845538138447546847581042801717454584114868884982511545392355706042155988226858778385694201494653354905080732383632386614536239070058086020358166852169004070290304950877923835178854455257974554632044225320751261841652837764329504438579309016162148489534106529989500650206096691867132046397076684574686598930946739936359915899236971497675431812131056531529905303228069031313853588134800426784154692553499690602771061463578751238903825499820542874938856723554464248168213215741142839087480946703664221935592928716549610367655054431977831056129434459975671969072203438650170379706756208660573218880985399619038176156148187172004664208061335595270196523146638027781576070153949952930835749038897560659229149201347437043998968685788460062474218433230435801229369141720476612451857001861071703793646821584534521362350768392014292750912039849942133026662910200722980816500305823656004262438092694953146815589979708712530959007356911316635310976432478870932838059736956220330619331752598366648943713684070045174803077393036421114926486484827588190384327690048561320643216040464153532541141177580836679588220882121916475839510196843809763382390454779873847682016561753224429124438031518389324330783684432577020118994117599955430269392041697328997728367705436978370610679832141381777593493888048038218224019984512399784778028752086136216970626018141852754006662314855187708717839346240869027022655536092765695830192453085672095177326108337220839078869824178535931493545913824262781412306734008651946216475741036584526750603137833435124602264941044854246937434747849801496145549513500813803409531960369744583757097531764140010035841587058056663420925253670864274807436514754155257714299675662538935296856032557813868493070941275272963299119708768410935527031053324059116826198977790846442737155604148936233275061476863294205398380764245975086978485472785142752154499798595440797422592679788544074365051371983293066901022173110863844770273478339082330992140243417356775029834680687473984501710762706494593283773047532408806037167413762254755633078764730949805601697889379898706507882775351819215207766804072615715393471174775880144184178046320138765313772410149092604901523354507112195446187443044815010626417755680325272858062502411433742151015246487742438378920063749887322532436855531344895194415013656550384433934341417429733829265384744922678237307073883788294091762620932492023071078883603314359404109045285994038311867285595095958849846766143617278527586923435652491990338911874780766239308653897904532487200456524404874646878615394605141104967723994324050586098087649394735691964249888238396463301933111683926705137676210052718790215997259800554467404019554967691335058539151280865503535395491504520182259315004790331487680262588889059850801747142686657768338191616338360693868705897569811603032102471571219396861171705933029182104052296728778008836351710393619130661937960244534693239082674859488087719903978135540412401974544508041492987300166550069864945830785014277317521724747562416497439618643106067699400852738198217228475344525995172196997430323317033170140473552178212747529040289710676476722259244330329388908979016625243143967522721358147239918658839243179620136719892198468384950992943659558266484835585455104693907197649453582022765255172651740921308857790499943821662737722032991356528161767476107242563359592779060404505652667512493131368026759811625030617661688395089684010561504294493860416955031183814528096520928347679902433060560969709279898269368537604932829122564409659082877515284168048903043366910482824381457722039364980496852971565765920556039671811545983096202334652895918357958726931226949851200797205508253701222466431962027389872542590855134932843080397075876144191767133709389256560054703973299275400380812466178643388339282517495307230616660346007984487211730993284408774686977328245789529177281782048269846479743472692342154544972241607077399081726423301279960992618135946891653212136483025757836181488134210066311025342518778570594641335844650138551199288635252590959275309497104657989348152615605536603452282714491387407830605172077752123862499514705306529237910888293390668639448284973251054455526666716685151182839145784884249964535569258824071983425972534541574409366998860961117294612828714293404773815161094692999696253458942506489406159811231959138043114875060435570776474237312908643438946273392655199734754202022725926779119727252010693567939392943536034889874603380368686370122808660215045903017343401022316834253701015816704635473834900435607417463740652921710343791538255414981428903215771239745261684331873593507770945295401838145939240715821124063278052692411155842967825647447373465300965063777762500037631651280537449187796169438284396639951526275618613675992747929241214191061317257245110817895051660498295239412206070253004751846753691735311821556909850166747034918980595359295671561492417072619988376322828391191046930676545196050218416939230363776014457740975920797989818047707492797992456836610681562328060425621455309606162944182053718127511935220967509213419751147142203018732581321372228010367702410957165617003909241007931827068148547046427163990097702576567172266376832563130547797885608806668279038638915724398040976332875972387899652766985023477093799779225249974458240864748469429787831544310621342572157373188619152319985197961491391984600428115338339305329702313854913423404104291463909556069913121955133749630353045657188779446098032561422116956001050029253248706121526852065243137769437151863447187689387818459504939212686638787518095593562849208860669323623888800729261717693690983343847282559989112072154929353823729470680783629351197181330600079741124222169506116104287145669741999455464918973114773812147817530030272687369781699601363075083288725890490229041063220483392679605908665467325748083206579621506820134971574573864502574805737908420398322844120622464075417454251409835098483063135116774694851404053893035831763299862563187145987978617286594106045471231800424827441695425942795836844720863716354248299746853324347394738277507519809509712628064898492375671930110243635528866973134563586277451874038847878403721095688031096869046920647083838802557289631594923024404774298893375263542598037034644389983283250507308454599712773639563921576667194378094665492635771075854888250006302024375699202200588863306030078327070311233488273740789462947359772955755230912788024920602641119703726382357823724908801758563876746063559822786346294787053698476215415864688320716596406811917181741122524177477100422050750100140944922924779178089871028975727942290600092653454722370140964386402081355325380012322591786157883240613146537106192773225773535337898128047867356072660208681404200932534345879761331736573588856801328520001293760827775059957177071058285152556995288834209025870373483426340919665720377121023744627726899475014094329671532121467460377585930979697703983937599359492850626271026366948000384134471023726644036275997469325946550710608176982033445328441352596439374485754231348737527869923805438601416694366374239783855556132577033467273404726782164430721903659536578562528225631883956514232661627713137106403061303981865710794419336926348992221792372071375462084561767452850915691587630599822019568193187280919256272006537178207408400590780034600257137557884204420614471043644286534772722300919102757288435691821183271718766457992075121648609518712130848293355099577673714369876622705424526310915875263438264778807301519892654681857418488522902243562521110305208911285841580934761082253436559111498013782522424511654269672046231634574486701168267202129866258819545435709848066163643022558483615789042708597838694875349039232142694147828082088515507953446199945793275052491583502081136528013022509216534349771753439158719839427705595063473880187245042234611732532024823052343292521533813048987342988318477399264725676953068784086868053488036221608663989950131857903102760119537555414824783139980571982359639030556387779710690050386381755561318325290071423401628022281354713499615194423906188005073646275380749391605127103309330899596585960094774616210427141195170084123912732703062686388844224654488200699850898880161935784892464265408112332181401005482468471376677692439623231935416805386107232309472631085571297348394025516575895846276489090429444999764126178076429825772228810545704417401998707974101552015395656978558377586235011126311303630693578166915086266404435379558519340167357863076795894737631321336816826708097329060636575713257147049702950772451407757261223467514576034741965187379023551902191358455622844057743382288690949366666460633942098802013991924092986575369461325942749853199335858603770462572092462229084151490926265863989296517645500715312034313531349996428446564922998679215561631384268079989328390314913390981154441372953451630663802664659569121527540590260427614693654903576467431034410157525650696224675326723346770198956706990451304350580967242243650717315713400969642384159853951862534244947676510926926344129014684429858338170117816477070821759491289086576034709028507903643491297651080278446587820886710492875684206486720053687384955224248455398239844246035101367145832883641831566367641401932840322925415794457429616037559450436604103938082672599514814492297993772017421728449281689149867770720893191558598887544844042324460048665101122049131251176902915966470039686581667214524004375260032466052859549156131805441616408200076943475318804907429247938658071029863596832971740834734597615233070828165446924971845376525713075320294721868223880640433720327011524967775576296312627861433623663750730804508595922017121407556859955272602564837345513561332368701130283056821920869350608855573606628123949932740437411623641258305622730230456415508914920413217341738224541842572822500203048071197953371077199821552419639064397707120233890751786142669813887661085874795419183408414550527700168401397205236883574674849218758181213286842810346607269516347070583260411623707017536395115896186045383766220413655763366082805650056581212426942432143654327722235964270074978481767299797658301969836034912492842204435333427825948275853319478557887484018930521154826067538602953510013421552072883711962622332128212390459292629138467015190090316751431506158283032617869685206326230785986134856783295272500835810379418987145313328484670927457375141202495824596897046403667793050236202515113225434190067539584870455481455533380110534333754826162987325270712708212170783721665002774751852038393488012743539492345596349496405895411744815626534966049276535983840548383241810432070207084589537547644158401659391162841643621520975218169961593517951630867844600554140122075379504501163708905712031280784296823078558782320945003291456518513561926379460494127931086794023742976326233087297337547074660072412337125588802654959770611873753567175289486666393485469318487262539020184331152206490849514866502513822313003293601388455543074612917684167781986123287399751646085376254678585653834452987042616257654541848873259462475421089755844796878092782853315894161327079611046168041378937298242891023979793249577568990567437057221119850531888169548838526180959505792460100507531649413580210580766762446011351722495524280430790311576674393054747784513244888198756334172123184024387490364175905191928139103119035436394139695682615821945022680149793189602224565573804498457799030784845435466833488151914714760964858937861304778649400630787711255789233907034403194418161144921304093613598900152781804679749878916239129053514735413019863713514654380982489325724478075859109261875778351586433031104791520049087601939558762687655182151926073279541333202423338730054633205511209064756805257664496052290581838631161841129611894656846341603914573808610089913834200638560544324227224093418973301537020089914269190083618894136820759984914547186986476731607675290761158058919305157959823675055201064394236526737995507375292909316172891338200118982153710417808705489658806606676003198946994954523328432481818256451433184098316300878558834757304659119671193063764739244594961605220027497524465674580078603654106767921175116035237697241512894745945379201844914048375764438615075437310376324744111038664693991213529856283614274962937709849169915215667060686364128855058137878911448033289746158503019647506948960343255975126229592774692350985306842002384949475213382695175222315805740171257844536210767297926834018017908538794498761349380592532191508659105856794806336491862159946417627346206113441915480336868932439503418662865222727494596688431415555122942294800481553013718044231330146239415284653883854136206763142851083070698968021309528960537527931607685263658686843886546993643022143927188853433076747210744145150195213491524724847662435461060371181501506343925200850546268370713540643349586702422311357772473351776854674098202514021662205045576216866795937634309832531693044546859369441297935035916818938474870001473824436398003579465225671703738453695549323257135708519384485430078642970108800656644217995052287777530236251579491850571067152149778492146943994366435867409959970998196010169098609434046147620184706340975747235286568440200391745013331451405368648327260707458951361424014573079563703592986421248685939644119256129376182303124666018886679441370942163231869261500606360671785384644492715882368964012001042626308826431994759693413892382122579420358877583730717642514846397986448495709083864463640295057147106113699418770338016430596176209098962484294873425093030594386476239522281643468840852541039884005178196792519741365315964544156254341270996037447956746872840849011144141869725195634993607266494941119695398895777904244661458303166597385658514461371708516573228153797272342016491789178485166243361528850595102667196622535842847556843837262270345654890391438840138117873138382691646764370260645008494061579436021246654213201667205438793395547085621527983265573793555924501839569710543568937475644645893923540503779281524596173959941476557951925471306940973303070210768144407350510785028201986452682816334646200390929737638423322424465571083365714919798984197426078936116582483307635495615116108124639547361709253648110128265578715710952231644623026606548790517923658630233567290382132173618636805249697474350702822334772239673000615897372543977344068048406431012025917389249028665430635531999946724589872088279848124291427429649066112832214855326860357433336601047555859868571408052405321739382970599105929596082508181455644351167530692701352358389077368824567227586295108454091142639112147699017059532294864298259424039624822771895757211818963682989862697158812432408445641593886514738774973467622389011430046957192596153181775407656993153463341697405269222945900935504379675480115359533190160386935646002223327075757173479217775173753074765049653479973132049894517566537076524069545249392613950792352743730853374570637406140946109401181888085839613695894698014953639522768502713198612400348689091303139976757481405713401912302178550242518459773159282172839513009986112308510998501020447313870939387095678120394085068216517995301362143221186531737333471118875540901951835599452876571208725126022296616678639126425724685400162142311830568849419287847184792646231579034940610027664633564191687393672666397549960394307294090051462162310443534300457592802798580452891900639722009207754747971751867991428058652968337292015444859355991600783349055238389655205532890229883005116613328098370523349806163780300390005877012651380957356684018984381427346773123440055845942691154100292641048154356106760340311040028894697428087755246099526944374506151456013019523710232983995136620299801573711130693174708988772441818490084238212090336413642965817845292789204553901969556797606920593529802858989404880420480718347232548314049870047676669775851133523655701605140120856923474510913301489251364628136146680685230521674785755727819689115584522558255185587347097597659533403087128410871216896173155006364081461544557739674914644500159283950001733460348891404637856192312646823978698652504228678355122365623480556522586444392227512446095494682026005859776919081827665850287626481506983784425128985910650517269825899964842225926490910699097585742593421829568187253668029804596234661447107231744889304722536598781300102390559147244375221644155587144002620191908618743609729705592687630167168049374171066396013816086833460092481682130306217833130546052734432792998728477951336606015834306254918767588040353703744666503848139646634689282486754192086465969439805169817957494671450782627089890542977155102962550153099484031910727595965943838958321459613291117148570818546980069299849644881888086536720103675918877915602466770102753214555799253841096850066470436592370461013400296885847166000075016571684516952781332561627210257409366980901666575705439464721070362218763939487203890861486324492212221797579794865675356462796590599297081960092736556630479534177119145296379501499909129193679658060392084821379723696003325201468039931174237995231759781603740788390930858543901424360199699042927592001542296639189279763392154501217067542969240577308410298139450540229234543345618886538597012045158834818141687296734575958840850326334358637538663329435931123093553986193967559737120749211673502262156352150506406492320350209152331944654777377486987254188185670074448009257406032769612120106866067475999233010744010998438599116792848850344877894267499748028124129333669961757030484766155735946143856682215914201544471493878058394712824688509484555411537257925806685773002792337078900744036392393078782916194324019960231682872113738514188375226781875798937558396495118741941680049127244206784505320713030587801020934136678259628915276114849023951437399695726530896121508843804629523063753556686024687369017642166525101925474750127471857289232321105893214488734139240351821096518588135355768333621701125607770429936090139318229297764701176381843893257917826130084570093503283898172588011581170029942927574164504167500201413468692713499285574784663821669093293763641246191001590444676665499329299114846547634453987972183183186039452350140725913314689545767343601538280494645109538711511777273149094635679381634492661983436849646092209838472561658549919037503566500140059116312231060512393228481059577672748876970787518492542473669978978328688906481489346766239122651259550361591357716323531299076722275027978228057915168828969838359133334293282514014029069586973588843024612083177789941731445683660315440340208227076474942688317239187173989555799350602644418743429152639923727424006134860407980331457984318360855388608432832753951125078116831206710343817403661024721645215125813080398139254583554527107258495577812472051233594783468408824883114414320105842577121783770910221508745230162055286031658837991426083541764985114331440646681978000423954029002194669177619533798120687287115908289286660012385589129989650076065096101205831929803638412706122896900944140167966788769633627472765734957012275448439954807804916145210152347790295438904471450211532798245442928049798889547465461478703228149637168346111298161524931415049631823637691118426392402915973930880322436589187611477983420488195172949740064938087976590865300105200084685689815982388664395523949872122348808479783925360321125554537436420559444641101687857840396796044777821331236491726438932973097509948397672626230255134665247230934909378651326791230807420619494167778814293544088500881200626451984492936462360923436405410019769921003935227101909314183607078962712850876175185818514223025268168648208071698715691621151442073096135855325701118383607806027746516983710644409753222774668742051340184510261777858153232367076795424146385717557720441869298560313046356619426864458732378672567760502422342643890820503035617430889060249413495105975977338385644266825561715276756628315932862882737410804978569503452055662417872941095650001566072471525620630922721024285153830392392956936969150948617236962813233372326590729908616232687137048881862619019498424740632029179949851355209628929207978037073577994093107419641152631671446814736710750755612918119760023021985315864871544495725187969850567725342282512413295496925128702197553582033055427199359863060434076060050273930587055383369295317215678071205447767338278499267571373298876038336761987754543047584365128837910907804168388290025183113403086277664005470444929950340841338429471654492483243659231597970515195309982586586155292731808624638194740062435251608780956406977183855750029175504629806444845627140485768877590176148384710043608374658121482369784640797948745186877780045725528373635943779009213356915627262546332448883068269214266613901464973064058775892244017948795340544738771271258984665747432835911841278317344268726631907799240071518438350476173759890176813790457322122136268789697011556789923956903761147312272271275987154378181585081899856311810144613512264117825278159722412331562817666200200952143192622599214775684805737860071353153568912746205654783349586150937602365400415246286067815161467377914729088472150868084931374788538469967658325210099782707933632938938016599165431865368587532005652756386932406700584591086219767090231771168571143489281818371452026993547454065511862790417118966401087760871339190739499343373091251373728034423414334140623202054199218247431258852477945782503796037932690512651915585777981363006281863585960013808010586872895087638963935832494641564741526097804460298526432754508426365402946467750090767609455050742446148544205564927882884474349670234083960492391544379742071619497405939145904878532855386883816997924333344572626131450966950562703050094102949587895326738906596738073606092491000234955227531336937198631190108408437872540706832965669822702238166068537890527706783656934027269491058587793273364103571104348220241087707730680668202752378814379461038869617879579073621161915215937708483884152256427286189889367068946957306217250418870066291079920270976683190281747245935380777083031388532553932874559871403793446346604554611775759329230400934620667144845074460496599507204594470881228979585334067003223110741383955422056277842554644539680216385650692553122049963820704939738164012606910189911197302318998012952027194073610976629000789839415495916489867000114738523658712070493810432526386406917859294705887324933047283053696931185387106393811164816917615645023781771384587533476100838500120838066302693576848911381538436782877649546442513754842262397736203642828511545931360580943431695628703967812215180764786809291479260587349059130200725036839292065874203005452886669135455684487175046438680428555576860672315408993143313271281462186595320082268576659783271021833746079364552760533094159524135234991319922828495707739387863750107119429697359218376039680010439355902686744713935012777199241870619737795468511104135838359761382437043397833336106755025780541996736946534611766097477337034153395469846765286681358833965194362505004687286740852112259374504559392363117798372455930069984138003066763137730237804881494378944981697408262681302128522476929082140280851703628726973077057498830503433987203787806690770050617594144172705502262225758719264365099946842102019797621269507898803758078762150444417152530125389490246259248867809662477003303432376896061252650168745088890099230163593463024295942211133587251446279578069211204582227928650825817588348423329259008862838430610765538009901870057474041400373539117206601267560088300365652379087176225053852692236969712845886189397530312498466229929192899589889238905336252389862200866148031058128460697547272709466260929453823106791972488128505880310279432674801991215171666333093545731959587712634483639963153722787992114482367650737345427427708726969072875216180367750438305700442029620227097132586858109725689735847645781036086296635512193408434952476920221596538019707645427262298156302811385392970247756311915890936862778257665007418856392512108527912960423973982679357983470096531778235792102005863793300547360156300942873629132102541312306490548797437012595236162694307519383393259416029205301274740914447950332762501313128351792404097588247858669663506159820755978969390836577666911620929469238386519474920852630501582544111987395301022594868169047797410896422972620395868155942420363374709802351948017653184392928764313358454218997657417380546408423393814839360838928876798418982056529601916349948698210387980164879002608090981665940184394727893952573345246934653779067710285848868056849351030357902970329441079386305976075972682009391936518136096497449442576142734265228357073818425309846228220366186487260546506042958725727332161553939133455553896040758792799058218428168434675011310627857474651736607867538950783579940346186482045388967826867177442346362556356600340648728775592163600363683557659838674140113182490087708612256162850563800880559290399126760994645519945146885623606553466348177640467993338611876917175877260236148828451699818392341084712371579120783698536440419660889136649494466899142521073633843052043701896589240587268107229485761483312635030263252502702189966372628895699086995287016724923565807219440375902924803296386907620967440822369895568332753216054087061620371054694206180671190400587172236601000517156195020450582402839205451218684438263902727699257077975312639385706205667542900334981951323524612468738013061241792006865534583918978138132663394912792309240458777052257325638937101278472341537261491471279275366250937697019243295707444460247770596330695132642107137337993076926494254880133079099391603622136927938884746362077095864917994906786455619525853715645309965662427516376329653259055683578959501967524690554633985736744965354379075309116745468597339123824923126766669469175953461139581303561260746943865493780802885568559638818586054835072719314743379271386408491834081828772570436192658842532896615969019030815354178613972062079187210447545339212764708612588556076956613703768217338995554776961798228678844118787018043158574849762202837925293649702249936333887517511148972076155677914878628628914252523530192103330014321263169623147800787033530102065949236052188792349329295525466514810640385261127004171863283006343513614919695989021141755437221039842727286326311320661748854022626639763716835125926068561009298287466034888136876535959260957215032369451843370850846577548326973234061964608206325167745388584173025452392027077274466508155220724035457994873953440576967586823776825442435167907239974766458363699286158053275892880220574821392311819535536303554094145471102985339658929929149867290067994484010986529795244890322597536632629162258781698874964611637554248432991777630293678675594934348148073957243224594761273346957396129042506208728315307454528376932135583730187032394082364914126509545462991201882729055196676356341318026197005545556824616768564740507828898790816415888694307457454558015272240083250719190337459046022324720272485169252477970633956171586507346162562977802124889150770250075219798242882011675995815130068356405877061117893921061859893619328777820292813594283952168102011054516349116153759413139878165090482218133950713305607219591335073578805924990851562429000401817658690220179252522261528451525902584566236333319198756515264980500879700857833379385417025373732075709531656547285535176719853774075288866409331264444870524944859966333787328983244056296649844360290835669079915413325237925089628803755685263568070547884710409519783820080658228454059879669275995646819125417652396990588167946996699170366282621902927940648004438427778878892912534788279314725637582117801381533728202960834752127836341514362117501674113908358971190692586691166623926854428914352024617227092606114449043354336223660073283203481830440283508847637808717089308323023505044808087889494305145075825907855004902048687927798504217781775442715461078452387845652273856730029169695684482689841250405329251836237690909349126415220208261649285653556799020203742396120925321034914030320120375121654080198805210368680093259786919918945546488715304398885572152059283467091948744196374601816021079621762818875988965705513759686747412014276853683981421014158250547553152659143618184079096424543571872731451382691294124120388430301934561041076288597019293977081729790698715863767918295961528258740823389632958774438021204093706608873762822302739835777078317135782632116640664442970222882280501372881500760485113797248714502503324476379195014650912067381592756785564280949422446888983467270607264241329662194125966238474564772798293587413200472519582448226895816806632603748830655748840889481230422343778981084439144793783067192859608172371636091057222259873495172199208822473636418152315899707489975444528306866106366365116184335502906410854074800138698290344987746981815271487358670694423807878776884352952420184368644134571179918812914135130349601879938903056078498489613736447061199833099502016284015128081184023572901056174733533568685442849914080621565824425094479547520814456932049123009931008366516854720377105192300719751484684139908912867603478048112024597954360162772912913458522501894499366024260406246326927730442641681106452861833353363648590243489776901534696902819193265587537059595448137830645913848076902961284940682775383257900872256950749153108004389228431458979729672862700678424023053487916236759933064900550233808420013563916518556252367575082688133956138595908293750858687465589576720399725839984325478270656194843931641684954928968821994729356369686395102808820745398569201270810782752178422256261388989745151230264616107930444902081295378521509775266858558109730744218313884759035227024598448043817045034973695230804747535272169558278086681410971369805641251153732573861622444402939381962650424108039212599429899009385790394438912732777738014123698399007205387292849823277185313720666020185226953394499388175741220289950262132237528236264708832085084161753405092582624858761433576922593341157595520279955056121267487886913244667187628857147468468640028371154001000961593522331046215161247000851851240172089997230454773732506640331649431990581880193432249361295435450914625459192839168463831690291400199040094229135695381475930134344920952557598759859123876434497254790317671527532474491787101651824962210664172359307631002010175466515296259735115313021939108645124531849968785696418922077421571970732908346641072681115783929775197112014568702235575463904222165943456811258875058949666387134937309860826314758448091271222541757135583955893756838310156953602162353800307079123845378292088361447703411706765434657575089544738155599467800689878390394631732479511732450096768540297732375210342668677262670541846863973093577309943546883526775971919038691075440298068990544100444828634776367059685076458875287772581568935882008871635390660550193917830842071597697339009317310461692199507798284132193005653612353281881039252836298268246663012151311556578544839927134221166475093108537481037766779596142904085955619370788865100320119373521710131618777656480266535403197848057954102777189141187273296133898341941875480829793355396770551104245559335110160853386734094274317385461771670283361089211136941835338932511682883300275141884914113556873186220538760916529326326516929414793859722929459802760549372804566452445255179504482642133557722281424616347520069385970949673017513827804082901164235998653656303111966661632977057356284286963532901885158172338211132073309727312159114204987713780915525908346323578034223332739505120020305446695472624799926422698378096278678039368337213444474135750856483749979856235263095474227393995060537223482165074444490585612776882429371422092147642282264350211440350056771082518378290806916980218260676082467144556703404676186916234055703852445094753220651742495025113984648678968164836030973269477741000761604271776335930026469349821461358100224834238253059660426195853928597822537241170222891587283724874821394984249306858912370903570270517145742366150808697574633791068552781808472634299696284754171277255741981740044024193707868186541210695824903137288556503388007339089562952032121473833847902292195080238016869441303228642752183853857928162283096390564738759647307286041993427598764083320483647565511412081169873744744915249527030135233224074175830889267131342689745286462067076849272541673967601785493851428206346882324415989429632635948001238752019806518567178677949905671354130331744860298836989358338441520430108167142223252333388789261873192083268650929951850173377909543743060108814084855410165827708271974186793881723474450645232854254939709451419965287046904972608860331337501799973338714310826810662874103291373098097428633953101225961601134982793431872696982606670283838235492217552493167042710661757623237537635105177481494403799675665316540184870324099210761074606106228278831049541071224319204693307528706466656049722192948708133072985167699031721047209823443775070498220205821086653890394401469703153512754118205454723060039612472510231063220822730603317094528771690690281388432418882733369572596734499972415880442390124408116989287176251122931696259291789485887439751180811234739324761637508970922853331111587685097097921870486834283903267390496401495350949850459528131764628915527698058838771386266320123950006114358132429805660279807352387475216839326709112588296906526305406518513864663992803656703758745964427608743875251477294729971285996539344143792557875168229777109057188542113047716400724156813225904264037699287802838516407265940661518031476574903586974793110345021036609681200362504001391885073480974984264884926105268073550426028665092480226562382810371677768876519250962060590502189457957778546463008786540733881103793855458572485203536791147913791985160331118908604927211942739316408955492978954560191893251004733772012308395888491345380893949014456558300055434822064705696870551565230513730421652158341721096575323106179412170402964117084081636217417489161323766617895615820279924596920883914666029816260378128729081937720611461504592401057660343539204087409193979391879525461403645177007740741539311446605849430294548292678676682333475314681924483565277327367630801604585523433223171357254324991376857668695814353116185244027507580715736640641946812932449731475250238128745279338500916889669960381807440256359128516181160288191644628388745031683673942613328462528614288857823323112177093766755002640722433154901003442527059519289302950702830470593809934747919889866123701551765523448425678363055453519545080362779350206886539188382788171369397831317627173618534438336044397931972944308003448019091919128300343838404843243256800875429484594276097658446431586162296009422386231933480467798283301786144843748116066638587356395469997509557038089699471678184146541271627672434827878059399495612714066724498281277050336418105597150185335226518984340994233035030920850848048256171343549707604219353198910677643314762203599153041037670550597911530313154386661796177796615799044168995377724828033187338728993549121546737120847297305227078781116564920925180517530141172725762918298393515268510630087020301729772068266187738634330069274698272790469131408273924667827192913056555969651873592229496569505936441575847331108790325041234032631157100091657870692177238549307346154708881893230485301075282631560611957030179464445816429477072216145110774676852379063434226193764258501433110459245707569368975310398831663306931491194626713059230478550274250174628809766894295614646582681396516001081254585292218878648888293556253400950681505653966492399387402831392538846382504621630903247558476927113845707420974491886863725874240843417728549049336573054523505307251708272295258503211647521445908590695761986571198420274508360102392632205928570773915780412973203647727142729839912330068077468631354516521373274152282638789306665792570644494744218438819560318860972956583171235093073703393155559300445900089868784892121095864257357967837818677055310963639975150808661202481671056700464299803990415171978207959963895509826190606258800642265501333957498379118644220302968657263003792002166022590802241345069197042959747366442345192154546062260250859018312431559754659889949186839263801399957745595026845731056148424634779284138841765624880156970303266829678951821787507209186828977783088051272493345861976523403869450919078372803501988626698038585646931859991243595956823988730193489512425836169021233189086800805003034596874763986954020994823037250350667381221945252566627506637930741167440585930611726791156798561994301101547006053667951800713840570952268769804002092048573055852175958465898294726549103137105208259526815648105178293774049497038701122592424567970266237554708381826917391076842720544189797443949547982319097040382117797094218222466145008789564320796415496339233540361416320551805776453094588301245540168891621232663994735319690273220872488887421712366539857158973316605580280092375224440109543640947501802368121191069374631572869382090386229174873652865565196416900661502573748564359722994083658084674180941941297694669288420435031558662301903155301936156753539180497781446241895998044342502135253763996835567578727333980379081071916662573016527030640513801459211744386399902389966979394692208408060790263689746241312851273346964177058561151928585605224172465198852625078930819885214738197452433398354711556479885668609915716429785893449195301741976319078539967372829477317603488008511248103943239046518922880793723822675784897418073156152589184461705621623066251284480369090197150575696947312979325027246611162166003127758667184170424705894412464858655948629318857367340115936322709244584724755443102700100675300187447537324151095740483267643548830427564615365298339014661939479748423811157782080298734719876250307762724300143474465072456213860413411929532111175219759481335455336002692529101940247381770583277898681003016443374084207809938328031957144433865951057991202328543267347340737942060128219085782676058361452120705167759983715688519588026807521664479260824371871641967837813135854061061508827318522843513112595449896638582097371089702078882375998878230356063798892179530774504667475969475042563301186010828954647595925143876095652827235304088057822096633289074992179313741040002282988887977105312205904802306322539930872374732021946033318662583083906150312585937810436626633350967369104989167254525048943615733912320504890602659996042782462772894390751813239179143242625377948281248236327757414537786668146190470687710312403369417022986707799901215741354127567810611660473593837509973983681849666534502236602149845427273888119406276428809910805754838532374537912340841086263576730398400731493945804102849754325505637272341317329571967976006334426699604706691076735353426112971777399657689898121762871925872735482658905845378204758813521142452253626828029766180122902794919314273812865063070647864650648363932654494591001953477438546859551562595195881191603234381687811190782107824932749250142968459509164568964431661671289816100011862499178794085445799767018935027881163997660804662521340916253558757757736795603556133188999581395873813767085291220948224278093252263255154514113063101003167753761549704626669390824060436998845350496948168863959457156135688920691339807016285142511292722219876116562313053100380690203061901393261722499189514098490906891474509725375265671718653082352494375735920313879781474890012087270008689727282633157345708487516957294076517351978268725630252676873013393651499118053763169205954122630208596676933237184839944263941127039285988794314099317045480455614138677875470513828151803614199212029681107601055935030415814264273442710337343511181005780599545336327286275413574297852107128131730519810387708566612390632059656972783287959886102675949696642909370388661340600845682898604203417774016055721001160570330822788556402363742810703188577970490355433210288815393221658839341904322582703180174709363265848993478297021660078270749661279091472590832294169898998067771840320423848683299743629361495564305215966891196897231689150455133900895378005996777150615040249859605326208894020673468207014003024082848422725712833608696620876952409633863076962798912326510817882281077195397099519122569503998420623821513414763155660122126562554386215115822335545650135363694376807148596766224353301407287208736513066020748219669426032475685642766388328765481331713125981239225621367284452144694853161389951830267513443652088800441657401854997276626889532944872295639712154345682593684695101704181396534981240361960579208760547953163444032681295175211663380316798185630929572316657656500163219033846449443334212247152971606150735213830611363369639580720995212445532285385878678653041809095874293231577164969998491523946648012483241112526340556999669362336631153437152345795804919264346966757233993785390840181180524479032117669067263324630955460554308811997988658840059850318799620860494901765516992456346446535125942098927771528712378525848596677478826004811693601288621779024414123789684188585599718662041142633924041342514484798030135338459177015821455089894508833673293194519166051441897162532438289590613742841713840681526450603946415070422794174673081040703041665306101876318127059496710342605137944587541847820129856902513231305353831292517973274091058545702700729499305304319447454280637599056023676169224800811914333479080103905970454523439715580428883728734372758181760035902335302356012977202917534487044756570687705731542274683893096745251695432081896238940509235477413176323999174766671504115134206784988197715220669220391804583939524347653007186926117577245568978389271554069074151208645008915027218300641698492990562242012647146733009447021125716223060527278062370538278008863579905340085805598092840538492960835150450010949822934528268063583993391518239984389208670163401785180267301077020302809930674375515792225830484368705422725852462530828281781450556721122164741296059902749160294856653712820783619592930782058641278311500461910286689730694516328661016579748541051890749589304313758780049313874567462997179708756453766066501845674519380839031982513007530124131761078476933703901987993490144306182387919916298858916297814060721141984469231395122301568753644875773655958698812968632411795256040375887192237412074255259506413451016244661583160551644104296636343105673249694263371863793919750778650770562123583769238031701512092910125998894369730378208323300871950842863118622985176563704640356424003221657343768721385090782160979766423405047695870674245285914374412511021038202044661061394022395686294356114194632205904373142122401190597606712902736582714750501017612294155100917312209798416748415401415785006041579669129726635436242741544118832014353928042203296167505331996352731501787055518359187332084038048376812799140663122487969876530631009343601565523657540062807728151990488009609612270495904949768188491894196750852067946719042295272717910436478436427634438853085464119970777070386272484125237779250742730083991817230622574054416072889041071825431826014118416048117382865231359195067763857999383372511634333701162622984754820554642678993642033379660866506509128419549065980511976742993252008710253737770581127576250350132674269233396307754597538538682020649483386980012895914327677035974582522560530085310730600875017676968713977654022973073452339448202325796715350195202361035534753355199192453829974262147224510412830653484665396681021493337207838618454304767362460197646570385845864713148613369834390000088936571094654660376361639413306186695224434004720826858763323782309460153858930652672304407758791389929446850606107762219056930075139620597975787070084999552343971382087552966711492655297538632682541714088616246399176580622662877056753564053154835506674171144300010099448317399637238481395991492788881354503859309202965489783538888991075977107911223933925201757649674194043558719515067616835016838404186855186095216391807269705766657085421973508292973337813001472681755400375958787113102112276958010437310637454655225563603936770167396908857043538669444825837633748918491522716765347217401193794189007134198890891084273022481375444714008031482016864813569824776725605794988760292318017178733315832525876089787098717673807089232560225443321736824888932528022697090393340955569531157739795304222887498562509213269353344298903165250831147948327737398377345774755636227012379001021087260817786654864469116498966654139478788991323468088349515219158875511644418623464444240171148975792825397556198151982819818878581602922794527681572095178715009374502125163789888340824941396792257044918064921788069412665690546259373495974470416715127990702628418961795783242584813803936282585981914639411790958089614308509799789424988649586197815055463800116871430027294404220149799372070773662178934599428176851004053169376940282434110832285984556348092917284561043069878730448118964594481085924681722151180844407242548970536919748302939121578658474031899474743870194529827445375027494835964902306550019611899511789855370228663997096574276528512819447996995213099747924185370428050013111229277891099706674001011162339818525391392991186321040568595994852203016594817009893803742734114361399958229760810594643751251771901848147295624792598722873690750183145244794210101624381139752602791536834110336531095997539162000269864879804638844169435001971535182456038596119581817489425900610258951205293629552299900870570392917008073843246733004162664584839589748583622125733210595516955944939818026197471364284766128037877701340997663256893028324439758470509538192960245087612486426045717474581977989545840988334185226053090610497377051972826429046372798894515049599033065709459666107323410685552635998427720161767791499602973752342899649116192018179322988297635914651012929080142153317759398224944669517079955167086862306446094320106584489541051936113106226889802288259787569306613254191174373266676935759144554213881941420311899997199568953276453166871262406033273992509153274198132709707828032013533267471239975040218710620045012984419172778040922157417534532803052210731731661181264873474900099122403474979023606130741856808397888579936953435715707784003511650076008268025473934109433438134071222626237403627013525602863557613362219248755832106122272129162477417403515072823340366152034356956189561093282177389464209291735726639862038540088126799349940907872171007884265671841712341624056810095862521727970040200049804257869705045603325619225348628407061879971398730549089765859970985313284353092882707513974815236304063388912143368115228758729729341493304855239625636790191802752499031915359508522491801651959097218352662190084022739045656600793621561893536833360096354500311723310495083927659421197687412646135581881777028735146028336597465389451789028234041939126475670151850961341115479555959016326332352717549927018232861526604829162104008820094196411842768127787945181809466571132177522685194672592258989080319046774780801670752612489013516875075946182487144652887995875820453424371931925446788958577595819043868666132811263676961246036991339478998429365875494649674283990503658232282860853567067495096876886290623322204777453367109645019266396458064883635419876891677743497143111123286067735244157139135267286435927987350059623699060049786991405607300060744315820099965728843727991216518963579002319905186038583125057768744626255859349833571782469392228927079885732488034642162815256495714908782817250715575483264365905240416385127078929281108822737964393875966533162863006809659604766966474499687747038747512541706372689071436207123207300150872118325185442758993782670773543908430904702597623357988371561606339380911078926899819067754610291449337848693193937607229478885759573507444812574878984328031273265518270834355714332890582753464922119671186783778985221544147941109647659680536293786775043165947053849455992235007685027084729775951482632805015846075605763723399574857165070500359464997487890671056979044499305632101221065552536748564683173318204820886733967741270302014179598358159238158055895377341459459899886878189179593600270888326280172359822614387724335506059713123021856615218907374387505056128819412577127289159805677445041615679579294264216728335710456615887736819692157771440108392431553428795593757296268269357140673375992083046303640671361143016045732855756023057280790931537273756796020184786971564131450751795516626196919431858217987039003487133447404366497259289846352868962754802003067981090990585811853567663594665647759986798502979290582445155829206990726871899104153869171435438217242906262416445385351757396591205033636702096989724049560994512030102043479231960833002347389438820472281736317731265962930340766881136372465318663675904089179467219216247874810779959733364990166264401870223863838640216615809132090347818688535495360027530276031802062938252948395825301180867816664102674531357302147303393993638632047041707282237767643748376756410123413200978654383810410442794031379077010898593682657700718250841332717241869371042157312893149127365095272616704087185371283676801876229919986127117201417779585825263980081458381932103982106682365708507352773667663224250759051116019211532223129787207881020376002083670570617576303481179728776116869139699798046265657222730593006645686475422398941840750953504124197956099887869008901857896406540365470145921862067030583534559758867413279113238070752910556488633681559573542881426049226330916751515294978706717683036441334281090723658304705684589809538931510358657988111706148275150445461042090238261930710854143712562942142370301684280678685870531039321831016088951006656407199362487603481625822532055423040530022956599008750625743110632021306296196673706003846578651478197632908758896607280769380629643735524880794602350926339796715336572628215345238216280589653149382385447023381263510463016044392456481010822237651039180874887759783690044432997132757543852128331511390297929089350320293961174128852240691260162461434910573398516627276749715269107526968216215253397041636554804925724213386692961204209879655922768459568736879314814064297012134372853878104119122282549877513358350800285537508099756804846263125258663836254539336413311899121772615335564807191641284173099268001090238123124028590570674405544285161290862497427058929017874812992260847683708597144235033225397886275048273822112797765630298416486884721491236829639363033072329537488146112457708177494085725718243577285130970067760030526537316842225754823094115041357280052511825903211253308549703187623316716089466962279043616995698961334192357944467594577841570753813717598273918224958644025691200104275378632151084219349223444592835831623542435719945393065384996886724049355090460339352654249738448730904768842438805555320683781746948512486212056603828331801795777406280905588391826675100398559421104032956287817649871039815004462129282395656923787676593075426727235338913929272699174010684281473354790450169837954011537643095525082296952811241323411748666598752251723496560644516530049459376812279605758633332920959904591250860913413301295009771742422451913208189458818447785995775143180290053778186162007563976369071188919017376668533496330780945027396269804730263398555626660740611122868928068439152132664790544782387113548416917581898683986023420860552866561388608869988278395120271938354100782616715560262881040801572129130875764359493214809594921925905834423831659060443273844260788245189861564108481047053644605062594249204287520283295849493552268056898798801323580975582213255466217678546241789179064283748917536865781176425920632545016323472585721837624563241846293167857754684520806188690009783531118024202171294514278075554977147895169489164052115530342374346069357581048577505246353027745001432598688357619627824650227705370352574763752898870510036356674361542789600555196078988219396178941461601633046372234369633753470577117870268499280103443443619014033886394608402627749728348588123556937417707605788908090462079589444812982606124553029408701783328257230024721211331709397797812784889455848535759199981779298709828613905738907585095759817970638297933359325644346086734888563532092316253258439040145977084766501180320589889352530431556309317246360611308597790364271701487311677329388890285152177902481786382327293145423596230596159173211238395359492205636485926710504961299225751683893243080254002842272461755629916397923904668500924819821477659055273553124544041624823133151062379961357936344855622249665319197283905793696318721377715596896894112522800403526309965503410030233359465892516339601944797350394091298226077102415055536364982580560891769414259436114379495829779563675932704118456829546517055965266402624996744674421207783724019081910430350621543318106265469413112933353570059512366286916742893650084634341408462422353578413382227877943458584479459242454764725500353602508499358648267718883563066030425594445687636563481425298490111170173747552233437978789904665940060009997566559015141782102116945249345690014191462341836994871792434297719790481812789371829265193070903280831722745341422102533802429895628607892347574918064235312091320586560319520216649855713174093352537810992168479441398885204244805323705988214328837782162772142301967071673629478773157488796234339311336285970606713371537943808539937897799589738503747391738401170782331665454233668023100898567886135106657240674982755012754607319399255958996620786677779740290167481607377494779071713387068502486046869411485048474622194032043413712061921454130570102366533069073289737736981695577676819801672102214887884048709036766160702373247919848333484267954381313416882650964825402018357251338013124930135237375027050393166450893529361008871667897866347763525610438840482074758754975813834361430663162437665963988720044193035117066630307077310811191390966628588989082193631041227654495765869329919434670569439329984593474572093072922453966657388867031428791447210588114717203315119245229629463579709648826819624477610130725037704710813446502612095480068849200736575601033747089465900755223292039168754809085472003823325681094384317359561560616597560591596051828723179039711210610566132228008737165064737256046555476080819665167994497398017886820567525632246085108142549590392351735996655274945144944461855687054755150931457903036353494613020221881917591496561515415836012867123340402497742877473864314506829753814071346357351392680593819354843729182049128975745123320166035537374278351780587682930042702302363670141147324238173560138333410858518228023890188996759408446072716686651071862115011961755625380162405568563145695852485127104890826925589823021047813682265761909813067614957840822196737579770570992382130840049198531745621033512482249176527776636376991793140655094175697667153365558934833091828478893202736803815765244177512518924579893844584685281218876502840387083961276785254745522303762286094194559624201903124545225269055114774214102677940336237327948982456668327999706452026743906163447384490127068470578340091856363074399714127846432137496524024757986393090627846768042653030461535674547401782768523623680620962662063942961206202796546345934269028890943687293477304292352585513194245599139594764403010962452136774727063249275801369047885871344058719690408633065997049048558157741302031437484038561223460499540862011789647212657871635387541336586808819730216146096739351871766751348554627898629094602669590269863825077223908142719318115392624498453877727216993149036310402787350762992082790454101506580209055400060958505600204948443480178248588717071942504937470740484290382887422368784322859294942045266881378983475466416578069835163650703299204563431167717481361838548635097643182885545968392023140144710661100625138761049800652870532725968763150326473167881107183453758699511207686501759227635009367903650806415114730068698158608455210475609048533033476968321093441416674324921605121238719191645558765393259753151094204291662923223893773579339371439591395079486109965684310013757870764580911835325780546012966949372087347881812397132445883226456488048856546290432907781874985067007607087097688185485115437391691151386273201599144009284054975093630459586888150457697211977027042557095185896828266551731147885656273720569782689950532573745873393984697381369132022916156794759000996134002715107096424300243465983548892836371584405119757200645414856434042407122752937460025925417242726020748805902098801883023998407102250565114638034637457594382989318509469645213960161598814779605684252122537489788530800966997223734209288718868495313719901828486548285701540459058076392342021813646325817352683498309556555731944514518279693926724381712560564994706172393995959499236567120263919643205015263612165536033064423042907460455306345467430814684770285398587313548771253885252427049587517730302412529616377739832922599807463445404583534025239572088092001458851872332040052203724649643255039863364893816177008728845240002539064193049408493707814332811269499904025766481155558464138511141864866934733047269045838839473111322795741898727945713897981226408827043430659691374123132759192976781219536250150217666994947736607419927325316998618295978042669701983119697140895202316673691493300617752091891690639762788343971822551414573108174235263613003284548958880478339688917242287580946278079480182584885414756303067501403217891276483110145250544631522096179711447515923336800339950700006167365268942093537424595424092025534328197115316771661163313538808401801589067010358178403052139500538807391162447137722187295016699395560327771915810354700365739367312884415124294816059145669472983983173604407970739062400828234672857381692463153810063632941928057756589619330951065846447007567402812966019557102601055838020252557461082157045506316069888495668365236907096788242611687899677531059962693290082894368753082832712033810840346023950549760253897512216617357746342554630993247383656762355223277542970650847270908363242503672229153557517770554268004989012527643951767544901018492137682348997032759983543752376684977358629956697781411287309253831823099778352009580073532076506540792668621515667207514916669201063330401911279710408516227325697765281959188587708347407971436792520520754789100774622560905969103127144973182587222096964228162149298422811136332679052836403109692319173532266034625758721653520043460826338907680986164669898823030757333605318093781490164906257082661608101219502826807219589250954153293335765803709548322654146721682377892105270613761798195469940703408099120139410836539383271898391189728309943745605998983741038038931284130378100453513200009712592231272969200296181075207204238006794926829567596644796183967113483872274720297151605981561876408086257395440343970570770018452162289025689295754131098108218231816187961593359325850101651570372282803247604028528564195429762494412484876152215034550985908169994453022205517784160594567492778160186281110519294351809723363738515403144912571438668855260045684711988508835518462279080155997666511585513414234927222306625659237373663331017930504195234593173908546384352301484359564708182640030334501771569406247793715818965577885189052685633211563465330669023588090167365202697924477056073488041482414749085968065072504492287085306411861592345855166697756637758961123569843856970873601225319153441729988923172365847816462155693773831581151350195852982744031852271151840226622382746908328560230873404916121473012151522507383667167426298506689117957416092780760925275176678003880227586872870628776438672073962619150509545862593642681198566619676643626789709259636875752328401006292562237095131489795248122890174009074936405435783625885824048220737793683400052049629145130740862100979533446890011043238280292870192827903657615825025152595236416417907849349669756817970231554579460175609492201160904598985101937841163897655069564069342116736429553993177920198441680443167468072803654857012861625918317243310432504366057601317713408034943286651030592267766635234492579408547961729396667899922471740241157138543618873269702138264675070749137859850562423090655455780016811867474843599556515296970182585584514672788460188400475657672059152814077178230340482564174231638443416673301138396842028997333810941463848479585975285310962598350635828532023959822463491021671769981099118055436045236884104260484095020026875008876751523268384582853157294130309697552465533361064954818030179037042666932263326020712254739268594987687726299635134371204788468791838682220687282242922291272722520865881417587157532098883100653397557362337988149733402988246591604358411887686807215686452479393671797351457767795826787172361396727636283996799814463354829545068393339830634320100970338626365709370999677377657034473415290942600270826193691829988966963672372133683898009397718544372331691403540988881676676021766314290878469303802718958973127778410232003609977414894063007033520509019978060727116170569480171313269156684733747155616170460701539663635677793011257581824943219828033146597730049440382557326510980589087866527206795920065074336917089260413583943621788981592686563229796308698061077352629283626191258256183620663684213600629140505873461357897132874370587080875157409921716915438925157779167566041217814569085268137017517734330122521589558313917206888572240073701153552937999658112216319454819597816728027615087293036216116428223329637315123147348898829344949152844788353771359990374401747781642113818055063420151107710020731871175144583206004649582239607479182673670718504977746078514431397331527872794388902746278257627214273982580587441397016813805634858460790486301859989225832738010143306923097110218690920393948684624939246270279827921336595741778200630127030145547527524681912855214282610633442774533044035617581461968178516715418725980929237514963308350333315449173995556514010314400020270232219195251086644071460518087846329868264983934696918582680072556181775605155871540220695473408737835183831238002061714616656691129142319179521752333109417650853300785768731220573069587854601004781790140575769330923638543890216098717145111992703033752995869102049336478249234298565386464546876703280698651224147569213728836771571746557414609991687644581902267856678616693512324751639360741381914540296240504105712821164369457084980216127758324658002409915188531555183822556063936030459294231135097463595301418138047638136628691771041216825786686467051601947616835451100394570117382222443022863193365726474950533059103121607570010967623115500038315545733723722556191987727681936626045975094051295055600369666176957131949302081574709332284433880339028135993611312714911368525822060713942124189229374309595492323632934977305186119141739997398877965520373743006460420950530009152014731270859251354448668689276674283007844253002143019864772302489229126347836340197895587963232991208248050892813955907319268954699817634179644772529233961965622440163256266065682794287118118234464355968974183800890360818770820772145051532053614516034298842749273487339179042838444475196915595075679508360963325833916523051758190699325626102097250727203364919290723059524845466963051248486240894175678544847048062765880283870943452567672930118841442799674467255915129715744242878929597670041919587925617372430660216440939194679060934651870166336263672593216841907272372521019013993859441184455162039092551447590654479329578522283151554709703940065010751939646450776415188367314807402532744452384647007258476236091994069881923041389412971152591474312679088136895727629165802732426885288347549981245165339006314014258870159909508155130690842692043397486259691517463154180740149752615070093995347055865916574291122068866767642913585800016666751697521940811627575885341479113521876202581074853452264147257582734326524466150514454026501455957273872789285722802642945872722756575714248982974969201549087430578936379921977799341832118155633947681519710949605522460632098469730651693452048977652634698038851868829304475172040873424324869678258800939311599010128136085257286666414106869551926544308186591087789600479820538199755327408474631476127493867092669926734107626456597633622477271147955476936806963574562866892544809453433660146824159870329695851933416903162695497106550416888476670927607786511927308413690168631028213936156354949632510359237535176777447114788287427548550325568666362923306046119251665588550484251450415986406746012115458237918744170906953319886412733620782234448862994397328861065049616210791204828345993010188866920281063258408331589168110036637477985706054030010217035088508793239672513004419625738439452893605709064601144197990334173692585353779772244102324713766971439130125571525491150570725893827217099061780199891116685859934071096434435220332678047304205507786801673057222644036739814048721480064955212686889947730305038436491677644840497160160630577892770843935312950581595115884936648722068211051871433282383060406836923668504479412595469698402355757816531849172364181094849721187153858038645162847393289968122778025390643359613926442225321779140752224701377238565949166781944703314447731534251523675339187180217715984037370044043849322234645006245614415997910094883353946084686396437711112526900592840285808861405292454079959340299570218625464044663586472552270318138429940786474912804908871012099613642704500418161636455234967226791646175820568044536497156354744808310125277432151336468322056812812857676692475020697482443157548145787870753455746865203678298747405330182755566728709803591468772415214610780610409224216422853119677825626426611335088216102453527408262913203777568657509841383865772651517624068902131000110334167712109471301132873675522954273932925562448797214057650752851957340359129603624276374696885984823248772547909072155431577341114564415903016387996055217287982089524049814976478629379063810900458819296080076955784765288807401115074790350357711970970954979160475055661437905557136959167880983977835468185459305899378000968260442716110529209267968252221159213692448968118509910597010468842481547329690387647237943926455833127017260943840720365548631620498261587674335301033015222432926203042607986675680178114394315634501282575574651324369586816254014582212643537640480739553012625811598433464444693700176138982707571640497851537294600235563173897306009842892135494943227465635076233436833479080289399485506747619759224129828178624421780879228712334567548942181399550062073059720601898620502795620921767357989664435763811003740041453226487952606197042834625121003294306804044340017427913337129261592740189673941825200143912123752378569126614485114952459529791658477229563681181764845551607353595534127693549825585296649286179256606576708219459362467125623958521025796468026117895843209897579327091148324381208809030017797988604627534800232327406013670568363281515866008378020877421794044601593875298268879705370515670864499169481169910339769888941217319773642431528561204587396613239018487389411603872341715678716394412408065898049837421153335965949012266445149207250896748576757437294880198488468042446756537932333854250376937138884252600901590271503267211203793766504837927851082680989659942699825138356526186789076320783589543061232002120188352271440804138068639598075006831879764699593601757127825111354637184059293750711529101633326429907498626244957643642866661952885835485265885890247728496513803946843877008366651659366843034760300563140599544796389497707399667477137438306492732699513309665457250757762831428277064883968224370184007203893148988864436615658460309568267515913537175365188506210115766054760227320966380663838807224590723396947259495574872363021017457605879498086957140836008449843400940959997487874138925065969214054390238916743209991627461832977192859730321690011577759124885999883098378616072398424265949751714068005743985372883184407494584403690502864533564771568772606429482628079140853010609678799848748410774255354264854166019953828874174105666191987929872088933486708305922116457900883991557656924758174499507250726616407783836208055689223703627585885222552142571783003834956600651114679146358359091983731239212001259584939699048388013164132151583672650717402493276790638517443563229481255005515506551376579016945490123765976700005289349239997008939744878479856245184733726102199034387453750180559872719009012218964533057047835632990044912245425020216446673383900247718097618238118278930668716609730520672418644330495555819871988915593812417931559303732079764663581329677366428362468302525050476573334437106668697036998201108305770860774170788024398318679498911471097931437423946443506193930869261323252913341535017968556941515149854997446090106349567367603992306191935588716478375470178498919745034892385829717434999670884302894016088952928483460157706814196021013071434655930841161221794789609312349828393262658561494934151829953424567711217854061542345828294791727879234807185200450486794010065889240091148300146496559427881012290714194850045868675452358687067036425982898619197861896932229982062114959220089680283160172913789580476786521833285065903542161148817691293924993753183702301438601505784977571872897771163691739638224197531044247304763299409508094344716954458328623639352305760482435748337052510784351342628637799097546513118004358106179052491092712799103238805551112719751152911761731332215563950760357833479211573991837629992759667015385873145126058251148482442755394690431066706485964976157506949456146414746665684971611727447395995194867448336840458147783969894184094017423353729708162501355920333283310768537382847598730795761213504391674028890459598132036496266838761789046057262294327220017976927232369895056714233327110564655162113240459977271074437362827978549100153171653132202855963660618449422102077334449454743309386156702401285462750245630710089425713130864904450439045948284718293166081235011617603212878254057557871016139594898160430778656094870789614895407582212823928843344678888607738274272598574352327206845230792444783390013203687018653148349496528215468647660914528127678094522077176376078301125831555475277931608758990219682124756625351543770309787404676929103891156955202254113944462581663657203054306004714868780724916790095087521597991705365015850066944754781655504718820124389525702290694511699074820248938530528334620696167895746909076324729690885062203995972237991561712298357629878282675857670587696505275579012397209267338113450111410636828507171167744990377589766057322341045658514900822704912512771122974748748361068061067370822791953976479493478278378654635602213061538469595871659799574552501110327504905771866804492340305174979785710077209382301819683685718762233445553625242800530498294353936150220234531351236680095618505987564525763273360324104794853996700558046854394064779536239635690508731220335526549381433277692970915069970657855176961920665975617447670414317292163456063638510020227164109370774443455573971196878287027553318633212784494194794933228089292637684532225542542935406750463131289634030806568722517838702409513298481480727896243757904364075862084021849767960439786691095869692284514759625213957068687348914472571584030836525653072123501998848504433861491428399663626992599364468110590017830299368699014084797379262843416233794691176853794998853352277303703837916354957079870033811957810493226424214235721329076398495338633508614288099419217052090679639842465822121331700865379948903829140332514324336623870666502255064496881677105830164793736013850823193732443971554409610682920564686753411965811396622019887034975838023158218493473153210774866744777773804657038889138936670142752752701632853514267222410528910567464382895095922930948580417459475243578325794605275794463198346189605579860388992510328811100895573083601261868937200709425483909257049587253334571688536806815326491051850137799531169678314672929995106147784391285922519068141762916448790536608886404429346143126551617283770186168772225547178618975287391616536979204381398559821927824718904839773694460586742007615177851260956847928083116269034112148569734030790901730436219142817983853343562429888142139396488784673102676901953145423937261300563001555672513750759725720877143821891193507852849456906320497387831453864178392507676762044885861682939257162770838661418928227497573306604193338887520597660733823332293811904513747433441270951052189267780757225237771567939113084435076467446088114850792131865090144902373668387572418148612772592701645911229636167192908474587811370233979555569894184690833706923278183177644724494655548980962904882071092111519733242043825140917883755931202653773857724917965380514924808974968748348056546284120556872053220810564106570690023756513007944452109572125440829305340696336087394112198055718237822504565628718992310906442430983250901244861923830935776429089261133670317744876092391462314209141038309505951830119200989983850817853348886779697313453542760789717651043766161712174017605364051463628184211687083781450297238044156410126852222095223107438157491362191223228954564727412994487944194969835553577551708925460735724719680025366621420870280032064569130621410723742572388434676479872141384353743461096980803761699875664873002362746247075348330223727885175497850433268128642970803107059927880057475389259404819905575825564796699404682311343033645700929040398994002259699493821943405371630405190578978649709271378547040047610546587598320232723667081439440262364954435099087985958318054933170481953736394183748785057174283174338113886857060464663954013298208011854550319705101767090074253410870445879267018850860588291915267651123395174325128596731825022330052284617462008447182262266632154147328687286551592504285032764708026755907770067415613399373003267297929737631617651705741313749689861028436135165871072175612914501926963022748996247201085681805800274398863672432947316672297756771488943547677385940949668948535626622177538278304825362713997759563965270063227764302125043738861948388053941718228412898295455779589759032873438353389694420530762377087966792948055022604059289330349421523001900264642798173519820691245728870037747519853058541095681638702753792402600828908213901481503590399177646152884564595522349159811722143548987238054744644381584631486648603358577182321887182919869737444396632764985997061842660268237769701264834025408919202648661024487754550266316227550561827755130622711480575032918312564022649893413452078950596589052833808996532343011786316208950177840213420489661385482824943463671778188081946244117396234256882100212541118094510087314719960322621663755229669924615874269513055672095000325467366140192270069006644521989264122651417097914364942814758402815323791573707488706407678445494190266965610261379903570422175396445600798042208155005466874490471319320536860873238277656124787411824299040453235829788541032811626404629945356357061996282508925997671171914320412465800387236002575558627312595606870436617199807569330147322155355940586341361041873466927676635854652591147798792412895688761859040678514341967480922527558876402045083678350350708196498224849433806548789990450846874472659866419857571235269824480644490006887851893846584807871029165046307311684614264352019937174263676616477912045788925024482850622400106204363301296013158888400058268219378441469416201021804795765700606506781314631884490315686435975959919579947655098577377605863687447840378092382675137653999779992903567577561503440166537793727422831930410471155926838765328998150236240808306017382916260537329396643098703104477289226239485828184974129558793349380459650394618184991127582905383978932030273878383731796960417761049100784153021313455842300831869742232828186454514250240053567324124327671824610889017053969722521409991916699616580699348590158508590365466116547008787864445005329031598352027289650428857069538532528891375328629734043294431674043809773345223155544690004395390367750465665138328892924713801779660661359818137165342598639423511091428019662818860180505009223481689228296220891215297680835684280516209015604320939919155546143202954899097788362416401050295281225609695998462974104500896479154500261590969422145605603614778636379555283455015185589893875807264859495869507440317530083603844501995674152373511040955036582147172018144647729755967602656823713031677577756916099699527381405901618643872641783521281645926742935569563785574654547061396669121996097679947632350532750641445079305902947271408342755522908550165556448086558775538371579077179394644173868710555829817816740166352279821832131332576310550060239385501281349635965777160662944458942180803686287778511931314753960307244812892350162910154463945590787247490102940381804628064977609733688606828045107479123207106542086728397061397997251343960891118170888496976614214067557786408398082324202674489448897791032313772064097451948066872685780810906662927507195764025306316188748988740540747537008540434223148171354377961438503612780441476591357236816452184314033783727831752700240580282667480131623477811440319305757864825178573728056891641911855661384706702585276258414593538737630977583205697055201107593053965515071303974956884779910290516308265257657841311443394060714800883509439937952883414159198775495287332682927621531498070887621826499373478435527661121077856686334947085747192086693654283470618873512361242645822672913909233750460635043761198287558196246379853071135538960105427204551798941181215106063785788835270385689087568067554873763324187226371666663160318990474345972879083524451120934885353528322266154602428336570588685556437212373900443719135254094156789830930123230609254189713554039259758747597216813674921422829977371659178087194970192696640142657319485713581327695836396168793636210013007887842914360522495940109600948801108518533878973783190730639621049986911276002731919317195626487599035110696359741617459140738481737789549678838948146347168322066828175369480749532807113289596647188053196413836994910939691974826502071734072451740984628003669266827998264574064261891872055917968764809499832119286333686226234705955720680180967417527829124164940996534467002633608639870784614711897503827389411476830586527035971654965998003250115229765840920053068140527788953420450961593418765211679622345203794364177071205882134278325465449020404910172204999471893125605648001509566497974878839774198518542176532593720044138883698829946745684470006014690189618645885643407351700316351273970163517065099618159804399329173917631703622670781320443072997305538400148730987326758354597280396238998954908733318843571922217973173710264753780642258100855876029274306193574313714107442361014047597993187646899227197177660413791558923825951143264360520604980656120850644836209907975220925690256075540728714826945524973836187467112802491143071446674224013952682767927414632990701480455217697576172638150664790589619442982790165120372138560689565914670201308256436905119713898275478680245278053901053687850318658750718824239197950979322462680878504893027342180832988241863676781690057240707714769918627476752151942626352410676256186346537750583402057338387280177716189416934627205630005689606306987875042787048659349731911015831569132791933293049272797218065267368216427216444811812491271942796883124499272967876076357056028720531858145357500174350120784762090964761053684924658149733408598732582385454916204330889586167444829535401169964749274909622828370726725263718927646357480687544313045525959901333666221169223746785842372611912039579766039560098575958172602266750513867839221639931487172936244349305057244700811088355317126784863427136465695618152425389840135298166571047384877096229602291579517202838349224384681240555896202231833836871677719404226309489462380439757747345660243664843962950462398615944987173477514667238420527130059361883435774076821493762851877700689471353484720994125583298106453391645230882514683825319717238674192279558695005292766021864662548738599127365122812509045872724917426209789759387489596509117046259729005882932361164553640975072022651241124920950644443415704257273024285801731981036526474020609155628597710361611295222440804477762629784776645453470563690308864063637188933232013714979215014665920902541233265944899320934054406233717200484909386220649681811424539859784588347763281982517879318302759557185235243101182466432754354860325707589886662736969842195756698412446282585228105415745152459336776032338964276879707986502408328466232408589564646330435335070092573292048431621921518568917987546046164086369518702444395042810665159582997257078901417387326380746810084676614314639629197133402674113044871931892256465198781358870887255307185916044583938264052835838101280139454361011785319079641135618890196617905433590435274325141415916676503192264131360131594685051471039036503477246354617137216772919155484639631685179124337208436432011544653715034836969799729681167881755710846042468651787036121171699371666478173752185685277262444884348997755731334766491719394903764813476895056439717406750373094786852171630789920816289509472908484951672360223716287968530072908201966901760767288742662047631945165169942658108514120581446196037074706759343581544265166624287837494374497365273083336021099453831931158459007621968228890828654410931737117486219811456250214252837916319895415790744067816273260795401602357921294708201637274693517552134858948138408323102816828489139252105782398766406001987349331755515548795069088544500754139367529644562467443963770693757270253643274847485524443660521521937990378024719378438501362863080105188666611563925789510954595785904644071419889044305795085195045099091022873019539674471587423737199149847750276519235590578939039017718198241528919348057328179029721844470625314663210204659601739575821912988249749859330880961465053629864784733539333430147009576847859968585222410499458136198580157906098397184939440968959566150465277467924814920481125505540762887494313581520274703013729098260354919384118441849527142374376165679861715481687497753137284254025393499641313717255228277085279993627124868954282029645641804935301412780333739818624760508365784703792327003486107320024679604111778902439076808692631057040033823890584277407627367121197678709700938831443132090861119930720111661509971280012193231639850787061908569261057861353366593970834060628115854293213474173478728870386781239339765010111094732712724942922589261305925707574909971292020665816332877641368400324586913129577190186414070194996314157078120810767566636505000452169503205693715046234643900097462651472602016721070744409341896656259351003805021959174562229824710937723040493825177177362396627962082122812652919684526311474781772157839866034431223840130904653120317345596151960117194963709719793498423057363713615074705253745818547998213724858811423507352806202442990781841746348129564224827873179618091951763877535429063465347790867181800874001087572003992980040248936480630217304719049425710609949769539278109351489900685278671353759069484134578569737116522954036735060214425103691654703664793452098841234440040522041704465569249563231611697468200743911075167614834666808114685082148825722734388377058189383244541615928805202805208356963294205928317365342609919112508477167096533632519584827760459062712500615022319939501305016982817075297124936709265875114752620873439331778125657970684641769027336305088996317821742583195777335767949012542539218169960100804693287636975060621198667865142506645769986566911492546446450412527601416030370985245165765528655222485049310254468797141891781254434344163793311898789251992565383778928310379393897596615803883349918212910814560843362622182949731772269884856527087989239934903373513063436926467421432898305288051313870381867066383001681995069328928367428454223894540547397417206340233504331494181299240679364082276236417556901019352490428841115260698210869718340351594755748756484435732183076052950438025523040005198708987006047508324120101516920423434852838939577381901035547265592649880482349526807613019363122848428939468128521440039741204621417621789592383010573619503877329449865443552696032886804336061935051756195986765586212111510667325069432149163981609364488940497188184911876553848065630723847079874290860740951065970402283306980751484774268308213107895726138262458922422870323958648577356318706309815936521770730866740206080056527271625333050343758086928909977103602607656303034675070153474309012831746022900342761365350899890564055440450520708185917653623395961325237035939341549832415711276423914405380145969292774135524579200608844860101848185058500568842785532035683798773631981428835484419369322514111111576996832445316875462623742039279552354856612040791780862794930458573074070694241259718764397405725208516663833906634318592471253044235073194904957598713494529972449691234461197590625592868529807972484673625943449486071410879744010162168353877706920840102995858210526064501425559204707287489361546351695972602427918783592888897543664084593970409872239121163097290952415498132405374763592834037179142537844248655673858575183929859177043686226469846518496046885637114867669393967441862872440518215719212005048612152418077972889719691143716359864719500145440517350741548018273153276679648464912745783590322874629179563734271434802009606768299861594559152016405696331521939704721404244574818038842459336551745252289406874638337781329919164780884022034477134785988378787528679324630612689370556740377740684499579069803583285756682786907331125797356951008801893627428135620448143025417680971896606035527810849995192184284411468641682358029705598107276176454931018201358797164325566785363511388178563130356266005570220880456851435976111609518125460372968854669845546524675085682875649109326012485840455511330688066029302741809956937580069686401570805034566514392531770825883459197225607753360224753716699153191873410518420564499861735762419500976811420103422992214302195309606447431130190516573226999664107338785656241808602946634421213772961023680230041339149506943030358245931837254679716247772718485815956924460984656554352175214809687570366008629555503076750854438299317867535053592393094235265339578060613020660361601679726481220616221994821916732326441148356032379201999429928842060523531802678954038825298367069617410981243024620145638138842495062392687396895207386216881040713627697234600708827207880144285847684509083336051063463076144321957218360340392842758470881462529055752446691131198647257179038678635869194450617558110472947967562446805622698174192967681904930173269096616093655670655357596591357808141349031499081371494233552744672041492414928822004551822790147338412964827939170327893199834417921771376943606725007697647975041335070757196895099670881113198319363777455430402024540082750231393033633897937382199220283658919558769871217192196423959614653599945420058148641220243366709673824724004529743785546765048074713852702357281919235544908946848084285964957341394171589414145341433146734684407250161972419403908334303538272522226978773437966320961326320165613312077569421261972023073193239409190478135560019701914913134200524197440286946450887555453242031929554198044328656878172683014248326671643965132153191453136593911132328959619290944891981849372496534344890092472953686442147913020740175323720423241108262102610976315726504967956605217550436978704967725200510353656323264818555273387680148409557546733602802641879630942807417265009640114803428654384357606437572381019656587134388283950721959186967828683405731738687649020836637584411590540379562586776669163400009583450248677716211939122366027203396283045740893795348491638235437301804452145225715454253411755950066936064431159603126236207563715394894303920703593768705894372251560420159643944261709973614294627648559430560256499619210601391213429988789329438827502654398663802666481013685885877504833110023457226366977385686483312329104115558118237205595683967024256413831005044209118006967380862422577611018663573183708511246461828643089749132641197124262517810388064459253738801037618261671983944524939244719244167757184995815441117442853635872100048800485324227684012761066661338407945420081484513678292051796622806924411121138842236592754377867785665930759526851927494198708939839162661868099017901133918743297660843017951779905647241878617558471167139684617774526362401851560680335331197156060683332310354285867008724926895663307977695697979858330771057510618445804405281967425811049570909902188162969296595659850911252481580530935265017154926164963149857740912416002422448840070675700631991393082397415185509069311894679401137594259986217668015538612757249956248427930742002467470244594379082493274193693733627394177523564883346310500230076422395212948323161072822906822976482175492408212360383943871616325662774489292425620505768950103753477944303040078599913542624097151572593785089572900097690575251708673300996223870638147627188002016359095408586210030214859741009615256353711033036163537450881454998386399619370195376979379812043214673553389420609061085363166110111150953104812483784801359761586714960231438133538953714561931758810518018916655617475170491632694128790432402753530456256450299614687205078242753838547873817121266989528878788764267167183943218321575801418193936799576265403704422916445163417633135086067519255412144338437354051731694454823923122656897123369716197540366399790798834291650929142847190227387959780142175487587186520700711771261930244785622280404531685492959524392353765955838053223226485361630891749658689618513390851823025434609231730879448119049988400209673990325841465644056513436373379034209167547740606409029748266698694297245777069880852525759615101365272042787866410804943805133396537017262343563650334709970432960242218839857581721892673206081213626446056304526812731507148625406296664333080623299867538681806586681444046377770843959033641673215098828711398307924093907530726407271731386041050429448760969967153805221811227620595130145965827874756452131465824420003370979169254899923429039867188805677751808886178201772990381208267466251549927916673774584294663318533619794200996879384299400221728262250417135208344158234384772333502209440491739007569961860612792446016143294022431150723370642189841704830419093055197623854677594065601131814692883482217443516350668314538677282798784586759780569129458997522462410622573314271541105720779742610321630867307890402476781501593476201962793925745474964175824635165807924548560244485567875837916500669863443185606097848498822871677627449113258243865954808767144856605395141311881672800756829168670023242303902558418429757141760429728364165865852229223146858932036209012277336050205975445539099237077563456994280471029543420219174129110376513363154515332975624127596872690825130307327887118375522424632412167220296585191319801857547489893394266862485401569815295998066880767645859099965767223207128083806112639999321009714297933282464429249891474279044568551778958735826262524987732453753221636016652218270817833298370318643900938791181177101283914407088315550612068640681567085661966033531159024198167477435344557127025817817715637342091313221495699310471664849064971375105809937927166863802048993585257678203549910192192751169707116609426103403636351567162316325528033645957470072821104908757139216774172152313930154573107337291763143242941204978760152896904854918943813007276887501731207078191756118429748873617582105967421792602955518121716021988854761701745502773896497094077622937685237342309714304863894350833637461972030035646033029070220546437052415312980351779433141762560911419404530134286098134731058142938799293270319034771262896267544986166188683652539773689777179610116488185034313929339333442255178486363506422246433038334765279677276473406169221770118765163618051501569973834976718364157826910567848193518348875071311369172299805701803317265069408609452120834447637553494619711532010699261558665369892820527300485458379006972306508144668847552112469295893652271500920102636379908115573567042771751855588830913133078196229740419957898529153025418763449205458947375359354073163110346323336297914552050436299728302504194632540627716332027794203176082519767751594366103733052334651693526450577229188056735279363144420148456811683762187068176844638278463577984175987718043334299103049006485433569443673614590168585024809298012663568278072524628847045286416095173874537657308159913127926924703414425842339217463775547626893270926933190910920458225648283945793617976687973258065914937669949822407956234529765013788123743679462417339146345881377400835789949452525148255497564236832858645895960041952491806708761131628330714330260263441419558919138191201469615175002589315587274564609253141792324988933878248452517083696175464251607178144933001196228397959211694215488113209778632988829573205111749396310788973186393527168315698109103446625132420901592887131398793097981361710233683156414788967674976918580070313237765375986877006378601771834822173988288309678714550163701635598781964542984518299413699577347258266543568572736417041305251881685652634226023781518718868211083918876768774712361590285308145124815159484607219977305543775306524370306247677178482872041376399976923453178309643541797961031078206726514324346211875404338202535291979943338112498455312024210308642345809347226014159104215617079918806746751012971224206634370063410377651788082134401247925491176825565176479197400753814421207254482994717784937534064577534870187789756872269171878480994404449758624090830410187806352033914949575848178603364789208697580811847454856756472266934781595142757941296451463895995495062366709518499869418018996224867228312817225704210115802406932492241874772278167688375744777602530068535336831127773195309665600930928675221728861146899432200432393957115749040432987710109955012442860973016907426627165289809975480921293090327144287226996365374035753740400471699931920886874758637924626828344128837633591658013996595657036767220533060353525475852039821243701717070306618122468124911950452695714658301715890350102361157108059846380529159349432586117123958984996882886447355802162991375497412557521595841642891119008387728248877218298363909900196519300154245066925651343221250127675221357341021100027925809033753814969065726304036255815870140511013672246042792454542365014724071904066178942514468689011206579326923187300107140245374697802635293348297251285991172876896950034665390911912677152915977196263627360487994340014708162863799483810341995815437456842826396507836430968096323291732933396673524033062928578585052157428331164488035914133151578466881911574019624359917366005527024080583880940485658406676297970946491276543846146370696850816039548049013860833726492183355012565185252620850807812759363319050820106623598529439434414408255628389134327214897076574511460528506583635324268232889029328094214314596387487809818378372160721799953117880804991777907223197721860194837463434785896661438789038675621179866060899101234235761930027863310550006110389227639325870122527295090240997010626652682381136842501603598178816563310808869253795224574631655381931238012329600775855974349888712842571710812922849195141428130825972224330557589556381388513226722781967620360759330234170963138103332052732973488820169405436372969686491579204480997961770547662385999736898091417239444288195441949621655082188668408108658299308058228605882295460144255503497026289882138200839325512639650766018939759501315422113995125409626954512892433556679946402939825759295217339436646750437280165052219302032358828908914157633457624083839695548953559034590444920057404651916320282927995732830384080283496718956884854545538534868968162003638789076211798676617028036707910171543020340897964309793420344378599205000919153238762973607896742961141664360217161510517759763717484613911084060312617533948440698062596448280645929335831468788515265217576949358981574750873063238709380004865225256146344066549100936928455945047442020610697235612631255434947090210688293090990907728910074341762787910305062892069604163221851692830731465595141022122306100104943492493299344237727330127451167007922730633291476746276701818718310178421931185329200281714851619278466423611371312084629472031161074722221318245408242328348305169845357065236295166756155651439239686932435258755546510878656650892830668505372824705626024365769433591908558875155015531663562054911887664079313986577995764913344820151897267087999942187235395147300140105141905446233790239092667444770531443424334105364943735552461713567813106198599428711127974613867085386495239024869053746348397690250903552587743634596441787804426695661947547432938686767221782653687535167347965717457634502401641338474313459080849090611396386983210098307716562952406247320325438694451722322981359939497419789288316932574462845064613232274571949091601172612408184471862968704826791999651441230510632933902009624207026782481807327455540105348033049847482811213900541291283333274448546421851326909424528040494876683703765368443577638083276116663450644026142287490922023309416585168581608784997855033173811038318428487351326517975821477399352386660402938835904006535703392259726033797523136522280403034363127927430899009733610822515342311483665004147646194793316788824659461541165660020853745524416988293467766023585133188216042094312957839225247648758873670767237862764313763492341430669616585667687925868068262958809724428165170630473882049875653279340419907730275818729132035360272206233810025368654029153862372137992082658698727237153358955156558538425778225779585421716002622730060764807680039189709857259571124064169979763922025558553775306175007176069578137318927449638626295001237475101418858567065278752090337610388679427375624902645060792013298783795934225323088377382216904169736085924760646686512116843841251652243626041576513739621677397044020788280578545381075556932592204100949140193105365712193331361453837197065379646312819738244282911549008641810359162610595452948321839504642339001436235472928908690416233172386332683363755738667000979528488847189995476033633008123363031665353522095903843586364479534254721888592972782051808384431864327586611647437200188162107718312391194353858451076015305925171725011230699137047368390780855397433263659341411647594759755704616762597986598878911679678596892330685976454967002688776082363908220427009866433454889896407828117593502485211415876800235586103457750051103368031405843424202614709391535372995027126652811171392951790762723892165514118079877043059530824127601395022293761482204379702420618490488663466652022572401922856671361161864916525156279959440031879543337558281592924210676854398080549804310905880837225821612439952569317907319919946035630523381367729875693220949867246886893341996575831921671349899187502831771628927557303658350490235537640828267018334919428989515550805978902541171727886109856651039560737840693279384580452629119153687569738329256216769194692107076286961632862454214730699950902122523275810701994734381601760748074307360623525454450490752498045395776550980463349781195350573736301185034609062197300619110672121964787497319627283357023658829409222035569090637546773617080770174175916218025251494780624765030711764956340916318877521723821499421835455861594061019412317489987783996235508465919992104380280087159779585824643219279603003806698932321468223047949529268844241852984104713177999642475081599512797818015738809139143987281043814983099735482727659092067297328229278302609734833782478528719246090717408229283771854545164744678474950038550250772671206111317810616709201752256166945452317691422972873307793887951918359288032442945121926029428446115833235294870060795032226616642540919392662379113661446730021624527263771862255504846826450706308547539094382832244257584090357438860138483277354377166543391769601746593452162133374022883827872710312910545681279652966851510498438759737119343129777151355959191796874961929694682367204548304110999999986956425140369110966848290743970969732728298859087238203738136973403828734747863701047709393343618693662498449009314756916968409475367095271493811716943497582058415510139633317392649369972607290521954282094395764980961681597677451270907838313911648807021705817769497950570037638659822428118724591714781400745552577809812777908795758338377544388950982034881895314593240963980795387817540402232864207723311551957354739407435032891127139098289844029056020053053953545425150834183017661988400351370076210957781638626338669810648796418646740325309386814589824751564199114891991258420131965094360763051655313841398636357454139475129854500558714378922377871218140347748112525214855163036888543913812002684640938126866589657296114108573881847256899075500129968916793348931092456723089866306114627332474439081539419796012732769370034278050764718862464847892980437387601861942938023246980837771130991624866538912432926308815609169947825110024343413267474512427596479616553419279816137952547233412815418592140697972186313222831242498690242851860756906374679770063971520072211971468816744760481288569011721536414525703685756105785137254924943036428573725609923043434846165978521128876158419942139150486737836263494980977467909633212260541386934915294672890991869980189443397132719952994288748993393769153251572095679768831304920681877630017091478738847650416313908720488582484258497921936691102512842772086410725975535921996957035573078191689149009668128551748849140100205726199113920204866058357155862309204137438714997678830265236482566097671942176105778850325172025960212578508049756601857350721136874492749800343617965541227072120018277752043639262502636238338822224408565053496179299590296131778441633883513739331512082253863104851132509000731570313919374865237987605642728957881161600568446507694817680573001926829731910256570773092474321991785158432586195205940953085024670963321082500703769633541250319326169531534367019173742390582630611951677828012564320681942557007220078666342606675101549215247699148885857098120304134519492240443575513958162757176087723523874233471015580244059582975069160437667306602129409428864509573084167291517772165487944410672689450744223319592469366605373379421217874282351446541556946565010509945292673005338033085321999749740284923456057890159893548047918088750214817167554462581616997919462301541809561745697373603095979863830298848943456154115795049272651024678411949642983907501518887383744690939709177161787831902379370590532858074879895214598744923277673864360320909743105086408019882915810236751479949138294742997292791134885297502160673800449918138188882744804028023106466178503265374559645939904089959443943938307729949055132515156000093974379756443108608601485725672900263094921299805651282549640659950197445512872616555139898075764868342619694114941458975206822124185954885520852274262312297486654189162696404451875348381561675955613396383635425331765358387322457507410279077922172218447318716651680423305192266970856309157442048085987987669372906197435939917729389128224250769138850932082146101062684081378493637350964969935567093811499202049923413038393398444447089126253618859372646290353196674872701993495778338334818237752808440879779521213014963576969855503065589916834278819593159095921264809729712633591390813500381015373798390282221370206912414512392652430929361229774608683906356889454423122036632161826399680126939419492306890963652632443006863987020516699298039184192515755078436002856838196175234429561977440483129338498318003715104346449156487613562953659426826619575645305463702696364120759592899704426596542160028187070748619398993183523202614768189874538186842410166363229247082572872204285929571705940284527686513946523434812673125859814894267266830095110753374098324928152677119241314423903108105681161711944909025730510687370805266607772936757051332973912826667034025162213103822362515054580180405638928827780260318807426785147456073521629057872232467833706075614128739398843213000763881205475372433935030795827990617552294467683933860761288929391624557546824100705935696680348299633798164759878241327399143946763574794353964597111317468983951415946256966268060785501928262639754955412066910443288480333095972383778365436677098095203779812631083628928541513066375899738008836488981078649210005354652475678470649972009406378510875777408762003444733708661661512271748691157151066834195071923820389428975137193692077474268216385265814904565124458932540213278033351404383501874969082166458122642090337891752244026902259053703911964081312153185014331509898951885693162031329365211437552329434771217553889081215867566156343866805677505806733818713982528473169535723207916041289192091860324324799783523870469300565732342431262497638661735914628407260068103835231613437584071787549632170871132692344412064736210604665371048297161419137794817276059170157295421425887203494577664357703951123056918188231410582232582938723698537574867337813333715374459078482196907777322070018442194688276933394211570162050276446065124707293789356032492625479622314397760513741147909305740210478002305564851062895081015357330211763202290215579551221976360726054695300500362198918509152963204584680613794582468157558464240262885130802690972228405217963249603605329954887852309207395328893723839854813629478322659678648931364099528830517051418706826269178043636941404533775649773553691491840308694424950751447706745686775894173104248391343047202912757193798862114399466719253091926733114702063225958015168158301737059957411338355314278867779696577209545407007920036496300397562600480914561060037863130919070741638561249174760237254220617968836900547454268559271241969251204553766070167820115228666306810305623084993909263614814597693890204620295231749528652429816598988482523648189057905253064896101320021991493740575141691004292115226841190692049708285565471587364048049877126611388856499897011388520441445151619651226989216401378743854126151489204745735404135738106940205123820022408906607590230880060333689065598015406036856128218190762851626902300527562117120424371115143240724078598945810659286785718713079371190400678608655993841718870845160629644072801312617518736586638158032929527948859856965846406067106914336657973319312213463395156015132263957169249366540004998660832856793222766017074149139636903430074653805008381492485623607118832546329089162468976252483566585806295431455857180916255679361181976561047233465979013926556795948775587400769941836371288017748290770662885135062391917345284143327769015316463995308730242234490229783407651026409378345972594181897105304662817213320892106999515664706251145053492317268114491209064649352369062325996515738372204816959281654106942088650271632780566192839691917609995950280377204865798075964695053600534520061904998722992413986962481392096795547204659662911101873077235816846255804986563330280162775815831018404100418712808070000221422766057607108325414074898918385367477429719505827324161622484854231098398345852741564981464140518598490894793974920048850378108243256703316010684115845043906052061750021082875003339302406182765933601561591642362056890702604805220663124340584346763578128469729037150250791639199231078212598548427710097034100822262156596545631444728106837040929404385623112421716742776676188269642989957231190078100098624958618182869035943720832361405202489209958297251172595904844413544785831246533189776505622137255972052795325381185430103729068411150857553422499136443488592505491091311600615958684181801317090263716043663689669503830485288108824407156523894412088791060375133748224487257659889246108207035571636308733383175591544446020395680555499933229319303310410798074910764220520532223277337590125082210372983698730442090353672388056678517910343889279414146478203701536567364835961228544594121189861644020210630309788074781187429073634184036183361076827253304646452649160160620437811255556891642031685949078688143307840553334353560585540759127042918635136829321617703852988745654526046186790956047575138082653091153383437877760692381703599302653813627810621776899626642028863010652855327521828324029667806313291486233405926364274349822468490878652546135850727133176245720164226752725246129734356868020448926593759631508423450713876183615659067829018509096782858040507014206372287286344732850832552279172624182843152065771134090147359407717746387221599410808136376238742619148075290053345857321308067474335338553364429498053603960725604435903873229943456436913101883786438207712782014471833373974364777608161847363821707658972546867067609295629556440492639772354558756836274858067073632373589240546293139061686493723166100797929531443708933116675897919956627250487493542855479162782436715606180723193038281655243714612207241649078431841737365281288372568662825876629289604939659910485344411223265014531114841686555053812728085613744533239402637006542395522625950507770029723335900384494803796875906717021558470291270697539364438715979887086340395090910790907963142180682138432924031362677896175936904576133337715974266310184603052128108581113793072655187268987352661620057163187470136449231887559207504219047827409664560398672116564950027495346300637562452869596790338164211846840056059594200711167312124649255311649034873096162759499501116322961713617365987729510800434000340873010326172623438805143614672605398774108484675288950816839491762211453528033345951718474012484937763329824229144526343698432672513295702327987090500971899614719549729899160895119674766471983988057034807801721856895128912858580471649165091704415262559443328413153739296546760859406059074567073517705499165871427974471910001386042312806625591594734492229520032489592495450534145281464310535854113736393732452568736433937319152282238983733331029790856884876058423657917316161527624604300728009281590897338312197999526672471284371734369150620383892496528171314332922786246228615043984074884568904669489054268131251397085432029434278862636884215942842344026988556818177928652665403392482423095032964747218907096392707182259901277561586712344414055064470057174600226255465614083854841090576193180439485023126255318672172141095364099255189646861244722090778354297993302126772704772497086963254542359813129359033855293430779566579186507491939316311505706924519275573284274045839365935223311706817282023737203627471723056126580298084091180226744806923931270521441434983093841253439300632509817389952901403504665019635925335724180595978154129850619973423683482561544140902707796755254778466127786726464971929969390041191360882296940497545182204656818618353057110220528481504238414254513173300579573234694152348900465690166662967275498476323663388975976259415269177680424788158238053145797518366453973083487290553602970757733156577046883659265436292178730398481430927859348307952833948027658966451433108778329586851957492444479049776514068290871571874652432886254977548461343897913574601646914605072705913352318116642334942249936114314067334412712115226847310874092176909503807100503940552625503873565339881396871426270636832968280701282706957991496986657369494862593261998976408370717822716205256349801930527752238807605822239247659073158307781685828417718756455942638259703747520264219320460801926065676729288322064401596972568338873005758928629643929591467929418243410547119687993554969768852175267130566304941108526256894155394978151387796667521364306817124067010207981754057077916656384230989761039434912517245065016590185841247437475258621676762457643379312823732882006131163016724308705621101279765767873859099026957223269914977127326582027040564736326053884349916214893510936844291749261815636895723388139909496422143334731542979297485010128588235140448989826224729468036838878930087758123442924857359751102950393772269015925705798494164895735627196487494516934442170194671253348389703438574574794960074146638440445460268177605339773461595628175516380121832516907927037436479459553347437884340095715235377719296736460989980596833268407696796932475083590137955742787852851171582909419657675165630441865054836112313399066358733534849098650531119014008248734440770854372689928333929153349016350027073854579644827683950257092294365847331454806115703271251827056162330217685747482304719577318133260550066494742579154651308737022834032723701467458660931447785778604727412199400525059444882582474726493097511812897854347313254901394313913071099425215996156018048112843264509283180622108060766544935895923092134817413205727154086066143376334141486425394691769727811780479175627835007769796374879173312030624468490966849909518827765702279067234192359601811823862377221514717119937044621075626984729966571467189208541143452171450796378200712970402303783504445667366716277884683993201252296654023930670689309453107175701614866680697018437439906349333852849213395069704909990544208148648812071454582791572932040251855533104404314944185127467228607389080757705118228553559988992396134638241149778260682017719217801009452153404621316749996005916926882156573176433959865956747307841759877133188722693693786116598885708131834923382535746443632817947891237888603577652397271917854630705891308650134728542195272958648106861458135941583567760995282822353836704285033991157541198953014531869693320434975763400337339758283533991608732806716216673017351660051351652380243658946636485089429813704731834111022927447858973629218199504476416984976893051171031947423534350907789896736270270224655561096654083310677905550919506612767422739169254506888649634583801340026443452567389000697717594202478722513856879368717965769489704822310558375710125238461996560897624684448277983719395724568216678732371152198176001100695155311419524714465707720456266793928174591233468576630093578001234456486230532415022885217042805068994555519265040601086988957999649560698119095369383840515230543970142713231630044064604244118919229008828765153813108256272357591171908721217311499596991180932246925349522708733646002924981193512797277843336848044843630744614383287986146488639344498937811934396333826966731542326475575910248378766234733591281326848385656728518542690065521856820680771603608403870845228753454324652583383285612881365842610373841184767075147321697196014727564711028126243071796475412326626015903435358179749689512318621579270596094311983131585313895784839045926720103056233401917010182747275845843857910050097029409726889245636003434390793736621563950857974662900954741223629754774047229257459962092455737081992867057913087896716840299264860298297830202275612418134229810295418408628726269301828353490674126040522206310462225886766592568783264676122493865156745673278196493786925643990930889675912134425928282531110472463034018387418045115027072904174636261383665541160396603030608987737363393530327788672318362089156508992740324775986704435957155473448307432351517336921007083177490442822149181914383424656922909992631307849130968745925513110052593821836138578347527152550818583110795279326405766282655786209880341261001043046991412501710343215647814863544588119894098718388769663443844098061652913311010475379144807770462896426650677187627222245565475844274545164900859939296733651950043826428868269785645287980811831926629593016224697280471288147363652622118201109595174178973231508917484989872533444442700525717016314047416370216430123258453583222285708605379389077169363019365131415659722657903442194259157545502438745065302539141375315217630964659429110487631124745386441534850338528170587361797930437346148838593817482455254041030005652179717803249305310648848378591726420763438497980310387342872352391982397009493553619411382353845889455333429059676901081066713742426483835118656106321085066952176015883399670263196779036954294292073975754509374222423818410331870588469419456912944611827009229095440881069681218337051071153666935107452914644295671418637622833384985651154789247420336725536902841053348768645150758369731148881869736753165063303506537002722019770686524943052640374845750847905420556029870690625572205638329116047377729460253284572881190068442774802230138943461238698399126206463009237039241930075860682202635245033355027784773437735150094184439620564312467919743744497628055938586035221103897701331636683985105313170422717436866158413075167177643360005290381342192347468667180439921571745639814079351603441880315426081581438629243654284772916132454857502809539400953840969582534211083670255148251215502930974727459677197964632812822655409416159894966913195325099747306054450949763114045963506318633825310970661148108699499393323767067963244064710405293572635798142215746985653088404148686266891561720232238739108705744615623337187229949464047217816500089090600946690985861432257756680202971637026639617609465510198604165999804571016825729388522779684325388474628078162153312697451273221768904941569493107427782097901036677653181837965336393490196249737228494728597022803030088363751263442742529379705251699037192618386157063938973288880442365659641166142090641491915117817881845924165921484165953735667008379313371756746129993608681424276868883868865605649148195114857938705231063550632668123512546109940284338635781880439579084916798558383161253641938605647311347649962699224821420629410471959700785806987194601681352167494299458988429359321499210171273956837940606400183926833713056640742992892732570311201058924728144111165037563672644343788744452337994467400811748625933475950416287447460983172905364030673871023902920128306676918634337603042819412613385824020220830332215671074638274033769088114005936523582115006686136500759720672908277218109840026817650891959142764247134166624927069779107893082468547888601029336605748627529670063076159836239906766353519661441002762373786399787201788308200254130956736078525532954996648437071506813643388517616034789391752373731152825341620066725675405177351668459235861448011764408540044311341240159792161007074486513347545204900436473257372949925487122272547962595008451823783232369761552185861453319934243954300110334810524036851982547900965437774105183847406342738952640985709207863355383309136801767563319031377796975050254301143953675402213473575217540019596828950907396563840169311614323331598530449354631185054108675450333513986333968993707921057903994078272591299061018411960862817827500218751525033054454956625082141827296765359205006917188752697389835744654475211186049072732362724203464092017976633473300250388572318990507912638515562050053159892766427407367930179575971984034975997263758059622842778100236709823604442999442297018125808974898319201164709868299379634594395372430022558253340722541637341164276977808990422987191558529152139286284241484095944496686286832227301620073779944280637939616936515582384759229914964219192682192157627349664755585069107926146977850419559529936206360488513940902976482952985743603986207092795797591632522876930569999509708475447957246211371321968355480415379461623873988574663709611937949416499900174797051056596415015728077114056439130527357058108796352367702091795419409162423695072880584611849208930955747195514756113150966671471289549953709048895406865641216003288652035095857529322342675385954390268856163446539904933214098163959436826039811774945668860116391567861961881205107847492969247200835134608863136266888987637793636162958065674071299223000941671951835681187603283870371640329714542233897124479378583829567490712106383248887240965804730006638606769894856468598911219827614669116179558405778327949382190068305486313208286833881830436775079000059804018008620372170067314030617095791829209243243612641404759549826889172862123922960429577671220158484436863382541083919323378706700180151423691570249223532453235137624380388893601175799879978467368342085875054650740279484066050132781954846499761723564272506874144771943045822583893200914364881934162753566322690204575296764569142215390854542536602260315721803166020529221831520582549538368268106926746603053009652721296646395514503724479025496843740110239720200817569319588369713307082283708172497120521523787864705600233515154758607294530036726957949331211628800651845438339650404095884621711035791626755036966129860237349375383902379472762625458024211584128300028363753175283528413899827192589529157415808907877271605439277894441690464517861412288371754592784336965657016071724201649196394415733639689974981212925233653968530088277384516942981432182664558510226705316705677169898598099496154606531564438342946928576474603766507819629741974840902177840245127270157688842677973548057490266522452113353620098891396850003139512846588682189469154848358528343342483966447712134726402413777298476793466491222955994610450059749899678955366085638802409043060443841369813137347085657646660089091357652950366992357013763080259636972010625516659576481223756049395293407672169500191542124347088637414722663065090360312779487356980503942017356353600379088083288530626290535576896780014387300639522782697727701212890356585230452005150266837799018223637575607012649150407823568725062258513498324283904313090717000205370626842998214366862655041466273610332097454324723999922368610669348570820294294835800690603281324979609449152975447310456171799410752099129816684854550296229011888299612822025118442751269786051662483308781075441915691446882535189404471352347500455262853141968686652653436705465626875950264636878547733726730520696126776419171176035914309749253718500522327016055667849150812083437941080304948892397014976668058107934531195539463959683976247659148228577233574365265232489216640160667194995039148598555901717364486150795644667180699225936087283059314952280292286941037451361709096641344496601268002615318384131077253646069095671121146547146114670738197872514533423103609832197273151186260235177452051519241734512945468551521906630536152655112720785350784116110236437916538296092051564298299519830708124461285367648215538655442719554070800948842557325290376324516951154683413617359392184731452045273578079317836870235392700280964618248488993628670233985555744799343110855567916505808107233638321850339629496684059874177406533908843293500065024882078625983747778245301077530170243651993199717853975771410758676724339837623541678703722720883827908400169500418383412286449305249037482607066934324825031013501180520185512349350367788885736402113164785520932576250264649786448713883310317707401768693725055593836439690492077562627547686703220402699144046639390527719727339524889468315544583353829504149036005917329822894837200350823307066657276786745417555902506181828188335417688194212079885196384561038934529709680712499023126674366374052146187048840452562038882455231666140262264981646470193659755791557144214597603412326952401723169153144681026926462305078391892237830923089463667274061721736281765724716911830874418876770652223302867723067776856815227666383813091901243199043704373056433739123129960148342221571998343450334339063311219284428772000689007821096392264638550765459654225999328056760974996902925013732254601502281703350891364325977226944780707861602189799580293534674954497407365116785684461174360527658942062877561009180632055004859048039884517648080158085962281240783180603734646415875741372943879824319026510393060099811418560268153904602721331365375031458294697720561360082315587098819815750551034557995316791065498178999707985006555937572507981983835241227491390465311505098164644095670862164582353562419378848105180516653710108090241390665886338771537671747826209828397456644078105605840375651646363929631109444164927010079162693193271095896970961705523034823684272737160513668415600806154216316490310510609349720751283583643819010957641973541360775410307081204900924157757943759445353826703091066458896183480768011697117951261435811610389931873640252697273315259875990948552851190970617142901592197148014200012396255450821930825721304926197832833248422140505264154535445863925639603140405439154153686692152883496675181297066335302063145206711367934928513744992988086807629798833528611765560123935237666575659107201876896069850902546586742993659237460518069464936526544121712546065967827321050615786309326194268099283528200880567641796474285989947948662720018458819783124446500184478495104336889810891247424250588453553168598644478224569343847727230296236682728913732778355707888592434556805247659025373002851328925556911980328317340946414637410959821379629294023005381655420713881233845297055368425859544167501367507937362134180882812113734576977564457779041039540754450078017654384008488317583892228580603752212920356127740662048117968700221814219435424826878373106430420046158681778410987532610220121821989474083417726700434583061752631990910160506200513544400788822724934887595728984364011821014475753895643608620120224016953460504146347337286687802805666079843163028705654303881915806545248892371170200760728977289445992783402791503853619579655046394627830379869283190906035186687063659647009529886305058456992769321718698899858903991394889168613452316862907493072732500461243894475949026668281776803209719251980245855991662304203888964352934103188541271139044439149461071395742191379100483905640260271619565458144155629588583670452836596115199637664669313209672730308548060027388038892604098939731529103196666360052130382321336392326676968058023711991199323949257496931408925312974987065688950377492905300202096100298514732383340369111523435800707178580287606604842689921436430175175793082550222348906990659595371980562061729208045015403794829749156129476386567952728828529959332973082635648039923045757018961184356403884456317288737154545539728884436182197661028817384365321559517189092984303650221907115739198151091924725167061723557262669518108063075558557788505662466515789636849350107042502799343197262674734710071794444270940371324159531911932161024849183498650441561236169291322917818679508996838396203275409523885070614857943996306558735471047314922397974799710238533259836114652285231914349815383312285073683158162360185625993834058907815290187163930161794491510139842376112129430684856176295785146836440124243587447021162818103904465218931423272843876548024482131124232764267222934220596335727417410374613799891709147864624696907656488469726174524491045872418274472019179754000796013247331414446999492531358211650247175954020771796441787306593879049846851492240747552590523054256571373653195535200884324450025908749878117152499182760706131072185674657604243563853808257169092855774695573993304203815488736846039705970952362524053301383503303012381037969353929692494812369796679262409447731167243115407834903382723313963127523368827475028583819367976913541378774986196912587903112217852761859277894709723369659996101486560851245249595710645826842443594713525706607658351490608725952019698601950633667309770391474443009009259312131614820840095017409071011290919773566370799236521168491043104858351006284852566744751885960310612945554229602686254018874838072075801681273946610185778216153761589197437786011847112081973688419638287571860153676582566760164502976424122666334468944719866531191371679342618744207183627342856311062100446260431394215757353935991656708000484723801253423816594419307726651610029772999803872771737233660635315279652310914408924820621304890032822654805166396116338046820854151544353398531197977465071887769783906261555960348121215740142349010385059375370960304829688292425885734684373421362102182470204480974852597107191581749528220569942498996309472850038264927579929571085351286218832318556473788751690602933137553098831598067116263083727529093865678093750211150299295068218018714189351972138026022884819756918452251392370759440091015345774797988582199539053421968078646848418417664061240425526662375547207197717627642565887429700062547889756042657560404800384058110961144956939337587063519752777518854197450712311889498923237659967050734719503676293405257010825755274367178133347878335716506375520061308958183548519415702120240062150049991105077726210030974564547534205807055862000901914408961560578260074062037150908515616958592340319858474729511904444794628307751125240876426448014994910018595488858460387242467056999762539048653096478024803600499700228616975166292926458144817852668362006888120834233177888708712376004427746907293453505989569875838345588561486448568224408712868525598121220347385387857590886062470810141694572052070923413035659445632205664110467989045106704098519607786436869352916538415385168954347818880255200312698382695503374777250324251095901669413613246073620050267157544259245724541208153708569556986806026710169947637674533541066827841723662455962488729836108624868545022982493281524409634593198338971789731268633256805104917212348509135797723256132077896965878212844729524613743335833625492485343833261717247234673660239925848777527259612264779282940853735768735146162606127134417805716542579907619058354480850994440899804063745770973175922051101657583721305977904465248900382517413936336781907370950318093450772682191363341950132457318913302865668923256971007845487719294273291113836250010439467714507298218372736416928251360223522779138078363475908689457933259258543307603441417567521352222230671541056179262524078808686137060053176653210984567696066930581463604286620084563571076932516818061774619465582806633354578783295072306740688921076842298152760053350015527012244355678724761990877115055073993126057973902881146395921169245069772330690629298042546251277906681045467167662662127919571574522676252363296480464441329664816721789140695603614298933503356410073064004284431762342154671611182192906867163430514690200708646699779898758976107657930091730587727597050828817933088454835570069596381105119344339611829312476557581931483905019210326206727010639934255643114869013877659575341872629157154129497508100025769264856221289745976824141014001660073205296366498101566037024269201119189781637809618015922324026232398211769978774432610989974432447254135908360781995465540633353863522131650244094603708657015741027030558016547690820440367269014737348766414625775162635491659786997636432742457739898468195044397199893963369950550422335874410296522553078262003175472851974754625597768828139515786339705135932666181673364903990167440799950192437615569353082176297038607999957995549110407962259603905902745211783182364860650228994639656614499168128431879316740020380105662246618538881837140043163461976028780643270125075906024705957320407430935622654836173329392409871137118688678543979400656587559807916518493755520511477370768687703074519889521456419628324983336845689858442814751258132816010324020847487316556106861668423589260147424323234943425932808431733349315568263982598407942821970131608682349462713399834370026646219700365572322023011263414683543598877091442156170183758561967851144254156819693793294375805884368780990166989300833966398534281211918512854160851286166757805543567788411515228963841530558370158228502297965429797156561292151129712273163335566154837239244214954162939898640699849628030748947444360052889754168422475303145123903554858244362240224967904966124813526836092301195807274872006584544936406276532331794088250620000356348970499912016370353753994121262519337317168264891967693710124002725603119067407011333280837190312925960423312742105444508491915596141747656135950791834448499631747135516278640392669518809573401999847564723253444701727562031803645604912940631737917337757768323481676650029453209028778699988876263715060437054380303392487929781254981751285056736295695813781726294639999076574918639676606437312379371555504371885853637994213950435893474343109251850797157198781540734593254045605683912254698525354135349003780493568450426691428810663212863707777271440301100208301561085454531736916643087651952529837322477122305826378197775017298961195467939489669762373086020959050613576780469604315980383339473575370622771363168437805157422611874626310783165873264108126577082130177975407189817316487491746590960323825634439674312466566197513086374152821159709247322094470348867037053516649936160857051174589078952466634733858943919049613329716085421006913204238205597718325326739584405743021047653133331786439723259234154292954703482782742709038248456218916230803294975038970071592564260187519647891888548037072835669821601144262292801980798693720808356491846807878302128323307253958757931956192578516408846089316349604639736655401526618567944922381670397483323720459290878430778087418598616716238844143393679088645872725956122451472690902707560449685266452757773990437766832291794260489004503463219235114860261020068360661320820035091227716037515271262650323881235433152736553285888786884090050955992893292560615052957686186569795946162926688492161424238225610748204358296376402394005503249598675213802643425413924875818697635714468717829674552522540365480033835323513555432807174448584697400560398974920579998257356473602587308697732688315577545768032353829721836640583618994563176180061590968214185257149232423440735347641646883754416630903146454258287297079601880767850419581350654610454459110150865106471104696520790294407707394179989291465298232477764099388373632766704543305746802092425427571022780582878952496981317990056005148972994538993082066288863003351463989433789763347854756058928337288771296061478718546393814237800456808774659443106727659773512552207990283234517599507516274587310563158198854192378467829597219017379592167388095582831442871147364714533117218782635783531538563909237717658998404044802921673091351651572625420516714818334811177275788271961377167316467041006364085370048919889100101492606467459998386128794972849704117656769595935392015226796396395306420971464448660425913028076268560121781298677297635919295054955861461331301722988709999818503639766929667715154257139028386281943477429887098579918718092809128986904475637949622593586088162122460201517632149187973229961468446173597110548735104575815434044340117301999292346364826202420676074895792070266708774337745169609336336721668315786213805708056667064875127875673640685301118636798859780249619320958291044376993617648585120025683889736029955645367219006489989009059092962889575446862230497814330004674137838425499585669388916423065959923790652275294735291429458146172070064473151520111094458354873416850110173308738499078497331915407597635923127712461796914322775841943720644221671253623964083818885545322564581186025875996329017978321263643988132099614855534158562935539628453229829608193500170588463279463650956312338658518652207229836159906842988625762179424821226132321979954551565717053480339038368940751673317490902390093045294379715849926537784433616729736553847727724425078106954202719268484714877351989233975459694394741565804715210221075420197837172274794070594095954517412565867600654688546927052026393159996248731016102808049300361628007703091526706408314293361704853214140268320939677026678421690849527097485514373420617600750705163036285883225690188040903010997864436491438848005153289656851210206420803659827700101725488798042609249781200886355198651805564920340921057699338602492773901767345849103014404476031077835732879421425601463410989403749529322880570067241373904278408090355375555176928149643879186178806183351304098397000700727959802231724815895148052858052290940148226703326806081494025438590704408092792937033837738817286263817464481475426568339134986504330355550656879952587389573256752167449312955065138903398998689515641909157293139159798974178260324538994218164620017079145355048452344925176690626873461665018073967670263941627547211593525520167058715141294016877373099363014599667518102011651797736211145677421143347560417053984293748513362751905503024176626727946434991945219123011236317987490136944126734342898986343904675024733824202120575418776775944420879071476468957326564807786389087154814752062336072165023804096288410261179627155486694625369266717189316903886712614714549841831965865458366576715265926418428489259435061164207115574314698007379044714287832311550172059775725869163883768185581022446194157148037736981077765147404768055426367594308218769231423853018261127373599494698420691886726701374377854512774590936077819963316302136236328031617184346018797776756585216719577774788093775259744692332532071225791742544656818051346013201922643833581813799337623634031837017881339614755696830229018454137612855489146774641915888631204568227258106288600563785426655434866741902914944179637882251404518184593182597367157632129486749002551030001139114127802086108825320733671649353751083826856796379645111995318741056647670874377030085647804170790463517111697417839741007590530430127456078053150575321684805719905092723688179564310164611008275234668990824391951342961389143368573220569829910072256256663384479851286909496109442848993188756787631334101883049121426507690949094153998727191357312633005107444089930436779831896889890640012627691186887951644376680881408604695995861311667508374100114727833738059771477330058644358783645891115350494221175012451965518812760387430683781378457156520962045202658891068162593044329573303151581658428842919342619600614049000439013249979925433120626222728074004837343753924015283016006392436062168284957243478792915183664770860221468563016660700369196310808374961207269214647701111766963945805429769597655244959884725639127029000942406312464682950799464228022623310938745559549642592670635941732740852983959286581175020160636215269378091667604195233686373993022141596433058338705474912580712340619972739121723397266197368476609274538278699077021802933751603174201357608902769769010776778444995802934913643608809822729699597780059708200235621080771390039609803246013869765902282460854203526111378608286106143908020945939499417258435933973916785746017920145225114990195499937218533616453517592016431778860989975802327588760952534869435223686197833112544460074867570138007843358811481866796008719847927005140987587975428482708801269641794145794539690488555181168803940277451344385131942609086120112887641168949673776222127015389843982277160157162474626937146258559697956285552529658281027980862918854038830717351114284225427952759668536712637468037720356219662340123634208222500759751296293958879510897138332295329485649091150225967392602954103313996634692262615883082477876375586140797766480980204714514917764446589770948740574390063481802345878212533783611556668762553014868073417444407444832588400024115604198981751836072589298079213953937431224025800751702756059614540318960502736537132731324279389401768528898973231158516837334550256230407354668451077031813862661598502993641515658729087188348055275278692118059350062377315572582521704106541619044434043016041360319173365700566919831161450580975877243128579130853701729348114475654829815941571639879923707522680603212930167885582899489896429536457755668356911866867467748249128122585484898770539066628676086801759619032413519679093421799985394682107163123716416850882798626286416127441968173727148018690364191465839892219265655489252158523070864460317003741464864053721260287726716733510264388052975905172569339212517729333548933535722526764580268128447603715312494601799166745838493826542215800298364319347614852309187398408337452101720859637350752555689156924111667331867803285795932017828265609021367401269293603499169577176168094785213317271715124926285292779934945004809652612233258904033397599181445800854035710268251883275523842993826250206013438967459102736556497840081877855282039249113231708028125550191244649932026857718583424986932508296680748103363337742208174974458165008391063742151649223992110425186417242634013344120421364797229885036001075895399228348726633651102740606216464762868749679242148353654953120593813991108462899363819308092421409838440464599981580105528595058126288771085842158456469626811551188254986721149538243874586872389838497104054757227212612664095585915505016231929384624721301018431270605287904961852344974092401906539644201395942845006206588793585546838587730330615646283119823630575304611908963952772750247452520077684420696574676712167443231687107902380158971526666807215476409751550359415366561410033119635504705011619368192534513428300838201720166992743219903604178578984256067689233844113311341418287981736188215225492627811495386577180858100288404653723242722359407138954993043332822139121008602629902183132668684604705838239240058025042251655750255075986718842659276276387114061722610700976315169702312155310639031623638245540438326821803930876694696234927393491978517664571858759592462946901166836093467336917054326882242975338964652593711791900787377251828331581111951533973689532896909333734866400383149248846993785641956478459702517000075391136272248461296024543014022695285063487574769331991791004966912702857829174454483629624673531351052033137581299761694594510739452902001006544526242002537441138821764244739572664463333569985277232808469347495362151761293172194824976884081312342152045747689175627235086801598455769775848261811119080014442844453234169332451496023125818521781696098966122069122816672994092684506534994133769000575362609938811523390331313400581017801836555322209563419670763909056630355753982911842182867956953459164095431767438458866096037249817046048079264843449405956919093123280256979675151828976433016929203087350740935545850234127438656100479707865259971920906171429444230994530224551836598351030668505619376266764189384156420474420350725585670397107210245627552807618619890873827585771577417751957127868156924083336613426908289121139081848288708897333779332011563511481958415231039603531234815072154861175748484771889833370415068024230399076961240274424262321017164350274832331686816977051864404060143920676818030814305926536197058874594201390499112876655991856383314313022323946091086950880807320939031584383220555601631012962026608117244391286681978521674796978788439373216365989141432432707288046210764697916098032723885079332375912610462885512581723263694722335958651216904022229747646335444266574449932390791001018667893046963214212971082868948715286469090636009112070919782237134257871577159829409274115817903147595810842862754752812924531476986113172065516908689989598052313730619179384109417481792611392317629513138733870554518304124856894560664925254774857200286301645107582093971908954972427613355936814182885926025312333622014185216486961947930468573328316801026003438647277547348978574224637671110791429645123884883140175065629483956929841418426889992970475971851414052783780225684568485788635952038130165006829067698573519500179124337368379718599792595657401036202905638933203693163408984156448191858981430065567527199132572341628676678693570255353850165465240809599416387244699456770644134289059558075321052450236896963563549647548796939895872548779005665809023225868513347176359419106097734094452546466905941219053779705092937087717747473905205333297260807501985287016195221005268346265073192652097119586523672920905698548620406202673728845128950132074204814788986701922709097751953296679216745575318416901577426604645543242393537938764197566365985614896812290313171924851287403941607478408619560243591015924289464436171786911671697462312607460053146703768655373668332440679393008321231890119185035596355406828857716046976391301701728032850243580522138358696458462554009513441222722845878168253928291710147656127526870381042622197615907265323694538203073015453494337999900296724579902828019653308248906290190818721437894733015457967038926897937793019504351148072178541695901623727732571059035852235826733213116299841424061186591597193039998669772101808688226250444196273911541780609591206309659418183193521019522187714018801893820229431576346453853945210684577289359524586736671442744013979770246265647204009406171109818204223407662847035869628497789410435886404805677685986956391726568872438033915600169489043875342452584421732445003378547604121924492482254688987736124847734015133760634991204809448014135654416323043749843638866154553123688907781357821281394001626387689593165888321055098396359009769617271519860256306507788159704452341665908366015439962140421056895108442029755419315868996836086295902220346731743628839093823297137757842205459787073986803886370643043539090274528893459821981055478882947638292827787063903050767991161745767570752272344428384881257019915657812310648139601847709496025262755763368508748095349142826433296588672711626178053054524032778634321490978498482807691730717828475743966279442454008122724993087293574190609297874511780898900786752550850356002193320739941281179502735716739561347403805789200381124031167461918008537400852578906601927405914925528051124201587628967038888630075606167460605360262322236491811252838824135196230038721784934655915875502426057541166268156004685303475452534378827514519043016639907071201226192247152500008978597862990419421495958795927966831036534477222925515339803082529635799468209421385615673853062735260315603761282988098831935444830962315482673391218833166656980552702540860195652684651304787880595291867029689575281544920474607901530314008630022815881921333799836391584994122442912854773879614348451452042870331443971859345086035672840098105946097041618467842834334416579875637434352916336143668491957652302563719368746762348901744845673127369986974831011996653221971413470887626297781840382845974683177661464090437562486554885018418419796916701474791090117444266831290492978061843708594397276861894999023392024904444534229164142940180176894862005236983021888037638006476122114825757830815841171641243596182165105968370776762151329383111799720631344743439304373368868047623246141686751909980536137722344875870547545713854968030063598397835258028441976058106682003040641878301020278602234137387773715776254943089799901433394549392686388407875345644095562528799756404519405544475558625533923146009416384887034352706861156892332597900797462711478512734818770590978022472798902474338360245755441199622591571107793333371087118042321595951773317711274453082106372370872903846377365622977169455728678126137920874267421841673907916284640372358184147769177753054990804899894580186825308372783486348160174221890279377123114842391451043122349192542769338375707804192399046163457516255720699479102108482603888698123673729320071695078203894292739568795677281811476934921446897101569276985035633927097069094638336464458943011758435484065871750963419108982020665941686204130981107051803133167188552867893014135564300228670730108300479305502667911295015686942219158287013675298162902821350964731293276314292849294647069028796149020741823938378262136955667533617159842004489566156940471548396576710073078682248414409004747708900732526821092296218299077434591340630497380134109824755228983196318102340981722869444875311128831033128804234367925717605807511522568869392642540706601904106967980811949120952295386521486065074965018624798627093054553859440203112236090155431019343458154867573573530919769827816010836266609868095421403798382318724733023403673044054510942495671408816833182064965501989090457862016993232287103351818520197975644974939500462453160176719582296029474055345022784293142953172349003774645534804136378833554381503713312468341956140271011244635505958637964122018548462701254877407688199270913803558721423329495647571269571423333924172562257761573315477683887393655948277132156145104646667534539836852132759301038169087208824894412578180976508833845729689381607333006357887018277305894479072617773403532856884349015173220555423559271489196556234259140707199244394193632623250443651286187659182814597799693732081804431226846615814880221309165427573512993648736730816330571495864921008945681724356471048833597411480579636087596579614418992676725922393238031759023923085361329887577887335036973247705344132752994115603053981380945657032007095552336243132280727541856001169457061143488526427693923569498814819709956376841977942605178843401341140355079009047257937906932876683500656020173822830909545318684980067807985655347539674335573395691982592671085630175043794547914136131057716300465378984263525526907733957895837460647005278191456487894093532458573026889059553284230159856456895457286409088628454816950237865853006099688811102975301624059117424810680111467580755420952157922229465872853963783866145299979491942237436911449425935507791074853563502426694297073716309410743324217883639690923638751193324319479801494722778752576646596976791749062191135396692477073746833514821250234869545708651940203805726844843119769974851996164078627959283506680460338655062229275537600187460115038515594677437131526885154663991084327266974079577928595378915866363843809111629723098479039945163935237515663534202420772503505832368806517138221838733053415148009885081503572294199468766141034120208791742519866880116229201862557479134602088994013501282129754953930667522514025644242100532327645798553722770893603978015036400308570665325223070252980968537511276585647148630123467130358489562602811714335423255089652514407687795035577162129401379661211535176973155103577010207438972730378899307876103997107896349592380795148463630218838847316447913781507709742933879037514357804872614920198671587425581690154747728640075014147799565186544307628284000489517344340087241189686574215130856142477267697112189227548865233827621345521912705636421443906769687488123517197464281224006157358270816479375122761330124766634506996005075517932911100522328616223754615278863916705165292103374792806313304104248940347531487342752143501421150078800363609057021536308224571851073745863027049090052750662772475388525917730786770917750296067902852557515265299421742593348109557719286530052675469970090642098023574082859739732788207602323611405173881409128924358539582193697987414005518824706494740932403491021729383271157291206606277875841006098824062339926389204995808591484194480750474770750426476490249836332941303325894826508232245500120641851372208952159766122217995740664633303840636928900454800989342183757027013827239903564348724005607861429643514988299922030411157416261600191887386783906238675107994414307269998258353107182670810259442709411526830581626679535958907491536527762877702670990710249983172537021947874377772485050701254443494077258267992669268601923701483304708865138424501932834804192816966738313421053107961419900963125482157170181573708755009882655778347345255541619549083638751555573893312760308441984562957668565017151336679336396562771004995625026257621648394754408299294513339355546769055027128816518416596272828147205476778107724838158290030976234174213272076085399445618797645525117694454775132994124309044008609972147025873440578854276096230658186094417190929426337847025980658745493410065184895888431389638750532107419496792343308954093923650915440917054171810554499688944092826246352856562644202384490902603629603468677162459571705893361274130740961003123959247795674987578091925222811231678696901221760174065256419111758487094156927448361356755225090090619717031583485506186669170993865968777093442832551333971072689499803741817583677856588817565875330700943946718045112375876434200265804903209956017073996449289121268744733959672737721545314722982039370954948310116139469067685606600963297334668859184981881615790234944619488666362094726116139959820199370287167795886485982396088960658851928795422099407658921392404109031128449339506873489438368661616506052960037272286524066025382883698370794598502344550392707800375201232343118435144662894732699297676584283078359687998505958600310918253266809635769903548021612957075591832932578835185206426615332874053019120752532125587440272199623069845633792764865274169614647503857228190953137409002063437249305590291732710668415284223066178433739754675417107968763387806613458524843382843266229177739866519331918266581815371903331812092181961798784112754305724754500746578851133730827883185343794481832925149695500361241843272233134952354616082881305973311411907782518312977332968114700055256783221086262907519952023246511824602150442027201880057690277618162854908251150234162696543109046212122136934695263689888124911712602754341460822690521299499575699039238103691689894510396049140983954560621791839697822067061230350139838963501901508933545332362289932642493389465954886800553628119989094658770128017811827058345870167033168355101570383840104219919431116421438985594553283311237592922215660214390257944228915951444711372145341012323803662813110814327877965237273215316047392825774750370812568576840347706816911349486215832051713673954396008422170417318952911723146351076848256040987872606519788323874147487367825528478041502445016649073408653643312806707837415479101118764301033525234414805698496824456172371838745685717660868364000082262696365513091588115750923551739639576986676585410072111041147971089617386534862376728991754250501523575070357536168939844889343062073287046644661654089077388136710155229444834876361678705602681650557173976742075412135785544010555269472612793407382715216749914242632580408447601804388592290880662332067063287446052482151098866160960256041106552489761821965455741488894048588710909132001853122888829111668561561405301165405289326945039274153045430931946851444814534743543456965331069169819619522058030350731814313937191727016661236076803771371861720113293541862398846821404569168397899972190757932421480389165245643400047606775316637671547436562909496469169714571024527504689238252186434378405541677935042352363966413219223753098683652571978993986336203541152653806786464535916355910397456839224108034993877442620709996524648714900334901175365529690771908033419342382558904813128047681707227681338351999651999664222257307987921139574578801036476015186913131724701398003240284068470711263454310989386082879658274622043895510449192868845813961506128883084818339617092711312673607427740357297474265578865168031705400654376858648954493074279565148454863998667780632474638842984240288729078549718520225653200755966282659081121411989214118775283225110234979964379044370801233240628850653937708519427778863949217680391846840028525136166053493437124647819799302627203900772751987193275848423015991200641629587757724712734147740435796968807498614674635681401379293873117571900900034025947998671003086840319897455254523176355735628730417535799987873338257048561681368651611343253033879378734312543670285506595292040192384639653399205354131236039723348934920358266622014763606332802067928285314130845648109355397871379692708442936706265418272430625912036748311335782192720145418393957052369488514851646767527968667074924799290276857038801899365402725627118506919079797192477095653885060404314448473933461410757883684555077520943194046596626626590954059733699617795607897953621354894070925780891704582412386508467071924689973632359139510968606829115756049316413201486246034782497200706516074676404303462390906121255672171987764819899350336622305036924791342600500653565222809640467778312214751324963530379488868536923759566271305792533621406116781064145330507356296499297194084260486871628609945411017420497528173159435686070718343060249311394960212767162879589307519328290696017530509699645259024876587560542203726657156598163934487721294544974345495106210823128969842874824595329060269588163931886490516534387509953352658769095401175151100474819002297179658373088586804760344410262523624064607037477753194299992545362076316892083006770422117371536333677533701755767390721846439961587922683822255788466131572291041966702589675245949704958428077506274502322217367952647436012788122207020552813533221274519983037897219609759259993762735174553360903005891308502234723811912059318424602768309961888523942392804005329962112015683422328074162488088926902133454551732502398108948490624632166934464676154563397196896141122579444157270299769459533472724872306559917075906719692716664854423656814237527305577263423675229413323605567255061170585174847792705794663094942681782944305017988932219727279157609119036056132308882009025924846571415638387143637159103251872473650738239103645051357616971274454123162797149742039969296092184912553776379238047595868743396879767136074793310704450835901283606536086078443304322406781694654867432161291128850504663818744583773091831811586848591929999564008899287778470538961129400862179404584598625714344279624111050789943958424891375913265429865681007594445949528864653633648488107266408517675172886028744185528286440625738966756439126168913209571638714099973681310682166962312681515290265989334443065315542421239432192258054228231429970808807206070028745365364172613287711920331753416462994801981467189672722872854627347628591749859993067657336860602546438149918709632786734889553624826460938435510248317122191502761166801739949342095398869841140945852576208230485183841617216471935203884611117620693452576278353977506817798837389682090433770868904494401443729218141399561534770156450835710757102828478586001685419391762281529934310691765185078367262169944721070884656364902337703737026235456284626543844162670151239331795376751960515948797273639115533995385732246177510383410963261730326247844508485708744335022641734155775867336013049611099331678536981738640682292654240618820286115997495320344660052107872069822084761519610738146738445089955904733415757249832020173488781268928702000005992608309205771589989059227606481137649199599341350489572507349844543623357786175518396373397738413826282775920684661517531264631473088923157316678717445383096322749166357367831593445046622884475350441952438064406572195316798208203990159520071426077558903159079162142590337840200805156460537996746757912468841583252501668869642523451037819460803381079970078929217112776512831702446433806954289577494547126389836402102134162827846579135872651857589286639510782387933302467578858428700371975464625974182103585530324448766822050750253070752625774997109133833642742780764772654629591057301101950208530036506137024917537802291282493893718644030028550623686770055838016967302655943262333851939487146448405173863477014424915237352383632019423797525386476196274683280728669905541093283594117876571962538559444572187519343092330455478256373753041611481148396964064786318745905843465849479245344281358685760544106080978556613407594473511056268948399206392735506815858844782616589539211747903567296553139899331910324223833620758530476973566623438230699857498349024748294807946890671528798666057773701876741160869509031284241421095704746440006498817621279362310829866515333683460412320433804984422386745641922694108205605892601993389928629272961670572437819072523244945547408818380881094292328664868088604024262421240167430531327648869187929392613282119940506537534606011651989194621773546359510905363442956863469210894043456794342495161963794792761337341002506347325559889300751110245365577756173710692431912218286895527086239877584909833412292173823128074040348511088926064622295432396525661090438555421701666746077340376643136947475055329003639116810814475480541389227936918410347391311943082777799990498196369017171705949610786231885039182779662572818542997606313916134633196002416062106060835902908814468357157758030330081570413492239305971041962975612962777501927721746139697062893268562017787615648396337413777355977626011780135316678155335126034628795165580317247781608400331246917517378512355232428200214826229965939096683579979706480384069303446407132060018000046169221177747354669682490449398593085459331912836428999890597228536056369101193220658856000754691644059738628148560230423211585307228852438534035891496362358650751386682648671270625025471915061014664229083424064259304686481359502775917182015209968016342576763341067114675385359036231038483235090067206888758709184858754987322385473657434376214289492520589771858287206107186009115245449541272326583460648455021983243699799512711566226184492844764880968200860408751224077376808216762027460854770250839840760326653350361922246843738837856418113291378090151592678770110425729734245003449650749197402026796084136437777374741523862908828826836530920593484704434054130700441752411886711575463417440417142432962247689575029645079836195727475258980700038623508151736147617432617173431720073195463154506736124046310823121631570088906547993253980114283833859537407163404746646275331035420762180273348492993026250150696825957136575306144621126470657785302146505501960119263342215176095360632736553197652717968007105199689197416299204593721259955078177156957676144977994138676309949793533486933117876980491652605965577856152636298240632046006834969966629937255887516880313605908467840146396429224705098349494335361350768965280422422005049662512611990596826474531580278243994678346774833007080545520588548197146540496103756286124801421005575655232718800134026349758632389330446811030166526147620208981742021969683356830781974475287982961904161424878257469118968667512992799880982603146775858619588973604495962922838791350356406939334368667145350054796049791183083453585815441811936030644245626281778008797440488828689790763605662203124187980120199087078819856994089539662352012246386573709092067462959342171534321023304868353557525339846974363953803890967463771521254075458731361509754650174231674486950086438876334438495722726710010318104099676639823013625496921359478940303447166892903942972578188307622817167118096816728257443373557317697774819112073453919072040587946316737363623126500037041158845710045722133295223667718389559960546815978795903777033732454206498875969945498237434854321407403668441542256425552773372117783131053171775657975594420445377064270630734948497025225438033136762721458123424084652028367657987685800383861045217605912955592800149009569444904797467354306140795205758957303195006882815322222526554807461398856769229399404890432364684265418832735044355951145590956388991795568425107074495779350537988824335296876063295752780563929965382315479684414547281249266993522808158996440023002849403103616120574728077172453620564336647838223305113427635853500853735868315919156026128398863049066880738798304501322160625239663517964143324028985746023369745318601920859168307204675817635849221604341641968894253636057485450719261648329671709432689040586394962702223319658494634956538340774725832428914964706963252868183957492543714206998777726578689526925886143447742823303619717214728620727660093165522647243557219397055716407797364498256771052432272787544984064314135225030754684656230181754009806297267226861250840928800173192720925098621351322702587126766855424158694890720205890318855972622823695179884002015681383557538259057702065130996023583313151621553309485584824579723436166771464167611421156610528679931339458352152406028323804231141806126824128179661944076965736237054386387169975410544022113176385011220130547833607338623198135182214144979620827971530136511701396802415129984204639268122213856843576543044119932217574218168703431309563699677117408600345409514284707019867956199466870295354118926806121241033260147570715758899791335300875133155831278328472855872848109141852157855211464159049273100928704044752287327655537817730755731559085761685463216006230100453030323329181957695085974169857337143659827426670948570861342417986110221419088974077442829887153712642264012845849080428149418642348956031576272843569972305086716619084845185871998651902639998290860074717082668393023211118323044449189213404103368791704104499599574023929495330093823857625363034167636268470943554581698988261414994400239104917361507676673365451144623866377312736054794542597832301036264429277311791902951077797853000940610989593793238669853316313624153852914270891494933288374095227067223584169665548253438013437527329630279895964178218111307512865285316972444843097043476160326006891992127609632375493565055380356677163869727474431740021516961552753547525636880821896942411870913501315443822862029020681979670577625449270632784287336139144035804686427898011466200628270190902067265541227064298051545890902293123359943402333867290985851322064985083431440325388842555041277025088207422750729230647323987772922641766906547112337082159221212382594395841066310430788949635652008222976273823111516303948567477164037860560038936180802182237681503801285806805865170428279139635722911192506612870333628629444603206571012779467644318181207597783847639476897058498931775672156592968650541988323412779657603015993517855575799978676339879691804309121594312895761614324348393693581080803361840940084648997501842599497370440754263546803777290566846630100330533930528228136827875535131267112673483769120701070853534584213119743377186392433576135060161907843198945902987472626534452377133309614346440885076975309884398191885790181899029156216103470092421514359608777428197291065033039712390926734883690785068420149769470070264773674717434578971173027038351957577395584739562696606873935673574625949952642634603863080764304710582878347296584269667895387285189722790718037283943016432132814310131138306711531290540657340550812820697892579307806236501588879303421728636662579423236290290146987847786990684510722668749772654204744744558598303473366832701219557315637865990404299762494825125932262992724723901789733409501551400306784771274231272271972559221080552219921264928113742958486487528192784688935392756640092916180582444134854187455331995498054387818818685273733442742067466207300685407129003218249106941758848231997426060497319639399662582643606121078968302319850240362908327433306688590109721532434837823259348722034544381937902067241128439967251013677088707066875353251870912943866919392242357142787426352925488762248405158456482579072518411809974524726532864969028458701812460627831268938255555107326342871894776748109848825981454624751593109529211352542376431255571930579523157964517217783614359236914938165682345330228006906218835414175642940053241281182894657179423225328661552398544457040231870873652196742497407449496089677199936048813520851643518190795750262811506086988649431110859560804444669870151016605173452961544602243279227468496415032821996083708191086728351744862742500860944293545627341407971685391207407380295809100828049120973528502959223284770610373576534136787041094414098036157369747178860154947139951375149105061460971221053510974752705907585324728469344846268354793000732498783816976379013778918445353406394886437954241951537938506559734953628864285998922852164360676301802582938517137244013979276263378879547152027249021183748736315693520012579986000794601573872784235464006231651312856927513240403727435634056243123532885695972343214965807369129230236294946768458157711037028605519006353951946219770433324074681523974033885789159152127681980205574120825194074308648138993103193672556502660622609662573797231280864084287886768456618576143925798129101984830330161555076746871531565066114501165238459987843412602508281161152144644871481749852963565522510122584925097411822352390497524589260406169471793607284774318729270121974419486114842352546378241119894565181011408886613948759404454310779724276864320810544627448252304894962277373686902880594883259719980483107634732675799945918525397104204379997583346291240748126861287457887362561008583308787955631657828396173571958082168795768319244846048149622253168769176328323683338261711198167411813672356305544192518011290331255174780129741664527682470338883849455309771725787514764750575363922410907403686638141524689349313526033194902848788418021205309407377645580888975737385465688563532566409680694747056997604570283888898397820310411189126591395138194570906486060667465032164779728422333795258670048406445732117609481826814029265294346114288400122229001260092581042648258941806700036010586899073228748110406554321495397421446724310485574745982788391278481335970253060139034967999005502604256816020685595356103668229243760474302159875678315326363638713355964791541085617293194221162549081066884742487127946791828684888945257556198120731370327436690180424762605556048906114496484504863588406285122174591321924248140638639929429806606404887914459498714952059283658558242489039510856539294232782912434735349706466545065417689984077082874191721580702256375233562736429509968436930908019236858725178054694683937423559265822629884724041960504433478906150712225954274956879890910543476814844442004278697722928875556760322204280925027661076457914751360453482445058104151416845195902946674932852190249715828403670281526310811918676389237277834937685481112333965036647696112475197587680767203255018122923094640428968793767376369322148182871286435156554611255861249742443267807395083408096346816227408617101528263825376004861764141631869527025372370549179198544247936439577843805744163686637029941118318937399301082211799637371670570748845599914197685481602521958385259848341728577111259486123514368385610585384589069511892712832754857024600916040296309555289245239339115856962590098258436726231894504428243432477013998128116237905310296679869037155761792630853557766537775897189985437628725395577935271193962276735764372409602131155158710665568253247638687999866941726228464858036081519832886343453692267988931140955739844689808357702377864761801303552681118566337190133447615955552557559655893696975896132465672645484896645703079122646401767550328306497893494714877375079242257121535140910834752049345394566677600736513582173658290328406789497715440681442956469179690018538776982946521091536301138013044995667426586120466109986065242511564657045438865973839641213307245801167995088806947156498743120374587473127379417950326248753975494388841459902864453530820136530114045731004942093931074963411423996894968418847387780877593259089099945327737508840588156582159777521901809306827623604038683382816788957133834110371603986169473850535346196473625195599511787906337570450031044451274249330068427804265461378302013725956503893940213216006939718566046244347991155450045029856263833074194363814923149934294643610194070134189018434399147402950702940193855756737706541423360435421684593930535990452144486095123774448224080476502341275448757071856423657631853544294299182836708338774845089317657175446301827861389612386157955883144630001138054738931347804336816309371036319656620582697615824250046546040246281577120191007486520504875885492136208068760714011403421198415970107459207028938841642070067074808078469391372991545065389967634123287103728414952229918870921652468236996799957389146394892692460647131665879818796140970151651101872145596301293688790244433804996859795031955385623293238766378923343800193749590575073499480502004904143356975966177237754757198970637701266177966639858645396672653945647506073974154636066164955591485001906660780533152216510589379565499560244035669054807578919514122220392312932104280236347274748362542493231829641498629287633718431289087410366045015359361886090140642844303507865651853074478702837723514865311779439124632527744435319028427921754551752270148074164511960839535228053708620292367041833908003388500093493017389834491741054795926106936344948739828087572345183353726889959798125765411368480084924302796588247618286030547241205040890086414471541043518715946479503700444188312159219830063060685064357723836239113181182116728795502578790431990587071851119303127920183521030008545458374986562305309006619466075965855139998812910422834779980403499007787009686293380956211376933959571202371398582767812563196148860641095838568258372265927634784647518709785879541560270852251689362072472079793800758419559726527067111111588509437630443530258113354880125812746166778395585991180118038087586318549742506163239110435953893868114396246300277040687078706370057413990755017125603309644321812113823768582392769485288663754417159653311371986303696998508153810740434456526243919927110545698778912118116300945853149073508941183868328150839684421067686756742074983081007077494889160074881558879133511824926394024541280603968069723037472705352853819992969217759876676896590166820105462811312882200242229048802611780543452674931138758453048902932504876296995232747137365946471444683418937872466861590289298199375519047334178885749333022075050317300781124630006752545727742532856750683318917606525161432034684050151608081500189127513775429305626932091579489161802191465523014707307359210405666347444916627866544538873007585486097302656665180938981773698724142581210984556799460705856408153015202305008952437696687503442839286084646044195806525338865347154609407742142439982101611874245165890156391915721743339220850993033018088675055166178533126652068561762448564436566063514650442059942724936279773684864317405712030744626280236008688004598538665028249564131434315512555775891671187639052101135779350641725198644998116665113362224649189581927716851267831897612948093709947186063097871156124040638883997223534906988203381459015657931504733247393643362060208263027800983253973768315065414441088311914191901888430106452226625438655426140449051771405372143519159322631294030326885094111439697252834829317048730636790605967520540477913017006484305225697093671038921329234585548431440700897257060261102393113228178096092704293965513968585716080265377811496582443947544110785405460269110477866501101647928030500966600997179295833586180958260418012303456456692817643714098390439040176245356741619294703806328073897726713867004746183112453783241020433078687498577568926456484054123929553002787465468767730012030681864783889339123065087044100882398402769379455117534994940232246278210022016033948574694299556746163537268372685411587517693006802420359251905024117667384309313610026179472847105541755006352889924910216942942266179326186777314143686306266945750516255805851862058344328887277390775605034008224782039971581153747446455297675188157841046424602180019243656819271401223966312998317854465990722454321379357363954808214484707457031706273466755157397992944871704427154660810990984007237410570263924214526470788711674063291643561734577101726727274604190508933216234700183017680260611513280574305322275997847458956485899297629928890019767377525241999537745973683898065422000877111347413187123987472891202655274482656320295624289046606073414331835509971921667637717791776335379218717274508847193874550058113709757988878131985941236895652078453316518206377946097503885340384060820664609812891741283382592424844123244474019806247096410126845148315131505336482284113712171155377529187809322443352294959957211843235128085028679874689293978785839339613102212903230534117753441611094983601792618260147134444667378682044859301192377027353919043332891462894378740664331922696411168618301723992155442071744381626520140557458266025654838949871181146609371771783677273247823706414168540136126600040263567329462677254300613355800457486701232921772369711320269731162495353180030476336902244142003744496742494083997056837313279526848444848282650443219307642270543347334488388443881310277368593242850590380982389351456819530286350664421344342760505262893433246252482815200075495853572871320468525533409422190878085503940712297429218714346538036529110892714988818875125847739121637519276373792113292959972119509497260469461727710296552298048093395703521438110166305316605850933130868953723603543352216837755462582366309410766110315546460123158270554187130814826068199281907651783490199485670647891998304061189741470351293759919375030321290886144913988352921964623021024926765945026834172761495585380302599290445185514215626651934500990246115470897180947558651814969575260494432859652496840277748332300365501611976597554191365255646649989659522777532981786650151132929960129474635396922622275497714967447961871449506883184595708231286058329193285832161060345737179252628472649475596883669498563275152607956295737360830256473990315441656229946981774618141864673468848392173573927236723969463305054550073695994980700060153915196378001211331252466356834059008278290502857980189455225706412913186635681651191771472133890734277392253384819696259076688676143276465323785251425361208656578709410445186975503780838885804679959189701937680284340289555490069353786519532979380985508130425634688644440195321547628713646695145941257903192960623755242242592391443576091492278047272012112217075420142959264684953585470974707000264617946720685522490310074656847714752820644202018272174278958708782033170608557340029941695907375482732247685623379876561711560623825982617018976552307924925166868187319006989342533971054157016508154049379800325632594097673757220287332692319556676698187348721740321292646264751719070330534248981359751934763745332679937124828558358387749919863898137137875174846863183917363948811969072796661727563001269601641941744575296521994145674664912248038257767827670830470715620364723793324678981290828759285013301499609912329384726140358868588717674932112115349688624051587283398808294183270196084006895680416077382098450155853658691735902784148045592960483916604165119843583999769986877618803937073140348039644546099368289942830475922560360592222465397252050493817031032324834641669248851762526333521556969440477663370936470230631657134175136086594867819839799107927567400989615070926558059542419691652137468025830292265790205318011653651212654653830836219948134713392218015523615081749828391711602704309334175131738897108943098345657244165446035070937561958742136540672640473534734760357363112788695636851273190692272816115247619574971242667577830621981021329901682312464838824834232482132301935487945750758638056270589306425572697491915572508284193146786065409355218450492714017558075530309908585814734778935093412044994805702934704056700266101114253033913353955158196133621181293178741748499844162504078942193511887480435650703027061826605126799324838834526509094365069494719096048382472717021213260477623634554704069624863506175901007773554014952252826079073560111775369306129733769953389114600650886105286464366142143930158702473786941407148102697238523654813635299945531305499864378898101472106018919614984824025229283644122135522741080959807971887805847549961691268975273398885281001452531848871483718977961765388618879945842296816120859342379311945162812875950523198087044568847445934760560852218467309396213997117743374790639552226955344419981172828643102832103507990022939929953000044147398021843460940268798250242349069091283596292540279025357154090219653375208474047076082618626648642867654946971888425929615567717594776092594419733999351723581448055948037353919843153215365828599529846944940096833547222053311458516503541485640565077450916308914495613201029422897055241633506653249138672460265979521874971044020923497588168845413422712398009071136115775008301626794966874676918638424814885337876993797014298186318125976535037519237909195363942857538845193122672304165308216310470062637859853805220597653107955387288573798995931306052871282686787030311134825396704997135420279974977714536124041154969053489462857985156902909777562213074381391811495395097399469979821953115290635995685690035390064994056558168990696015158240397935707198409194770706924285700819003336735995808699877077108118068654724811772661136571131349296432085343625865536387312908784021310218563996804716791423376949088302186603938747714993658384585985134071643494886806357110462346909839269330859937055222024627640033916497507541326054493383380319262734698518810228398299112261864926918631184101422478251703045493582346064743232969104767663860021270986966919849323146886164105758800669181245392620416569202331163688037686443088848397099550292292206025872857982683198401403275173390742774941515644049535679907782939440173131376232926362785482335568977208039548425952427924256734927785312802315948593055335906894392649957665803019142630547927460257673551871551658394659823994481203057261793546517172833672177859125070889167520502074719426746242676906086446614728549002872094535644352259158736121074898945297891031653967911991134590820667011054063981447269136698002780749310301197933218067935996183700497466495461763791604540251196290120561227532492115569098135698754392519159235801585556031928049499337416526256004306286925510661802627640577177343301921322914002133821913285863967330448364149738222568881118804802303427364590521234520748398664376755286131962825157929948709357942407560443716632791384100530166473050268704874772437005079697565681624939461323842539220913605178963530397320913321311302672465596796538726557622207497241868958642211220667811790618789717963667364170264239867602038696088072827841303416798933170653841680645717453119062497811512020103463993291368318118217914834910438708223426956474563058067474391538108666772153071389879432416287751672343952022759685924418560222987785274337567022170192587486450374491205854559319023851207193119625819735908905191834603089016780543824029434714027405463562277814517510743002032815784003378297015848583136654346236305122401092202254787130461632003865895168951372078272263497678208493564646841804732486464069609472616927800681438050989545991528377827639968933008135010751187725193411519113691135629315349921265918312450235182326118277441082165558979612097088555542991367143668261603629530030917570190677006913046544162496269847939302590378381070334201969078880645300089218046326427989140156531480652478131142820132697913481730342991501810785744025196889684340877089230896381554983667455896135530259661569854269855464913587359495080107124984180332135394570310392483679605617905175913146296862064046148898455367995192842250321421392735163403705374489093749451347944650650995882570011260785536495959401484545260420735284601815777751709093047832571625537566585179015340379416136178939989330664831247195481854011302198961741084999225742877738810866727374916056846142094996600411273495539806708436804827907673481796086961664908059246257547575991381606197930027077650492819158870352234969484363750175819851999047464183128505994173404977244970441774210100673134885034595734176242279407561722757711677869290353294200440888963564867776341572387771776979215430535089896657502709875982416183845759083923123280062223753146994937961482875502074087970824200461088203476474871304168424349032034575454494446201335070845789716898610967354141292431150395059572895900854224815565677594287941734150764691990898304035340084085351763479840029296324411350977464865830866315575627394670553940333071074103805585015549623105943403166425095682252692671035149665962480357976958464535953910969642187463083386871988905600248700516646819192929226526340553274170102464166243867635768269747494400660824612140741070890923116047243276033673997489278174205782500662176278992609837558626136547772650951427216574417390277559321957572703855675989966874628110395416152083179725084403272898950873344294190735135158196785012170331706861059662610143670832326407651664136551133070600884661830028833800938082398043193714179985935241202826153421560995830380041477409198922353374127396112488109148726806306399414251041206767399259500566375438008318164563299989579082169937282387807376631117056428524732232017747601604429516536866217353980729725504194417619613313522662843423700164732533273110849119068332234869033533609672617625192392227577098473473017475666741169146170561137989332098766147483965281343055219821590494109777966786217195893136362559723793308166517178996760281340495288861221615673468588628454982069022814108419500148555764826116287800920918569703075756641948165197701564952325778788220498399576984883791933992201092397143335255134130533984898514884778222056193532869623514283876110084402277123006447292064174048128179440969248983473038540565910542193323568458626851122989841198588296903393066359242418449113743536564367424358700062175506482685102637079508177142281081825655152446500165279085633404230178783607519438341652791026560776841172296389932712853867440413786663474178996662793387133274615786078654898891992166411032094572832766831252178402058515609276545485235420789640049431549732157784611494797390666404150389951660599394598842652180836628445641635564038533380629168377531481531894078528026434740860470961493675752957592015086088812884070170496178576895673696604602445551071228230924977661135086302805778687723838473089838004451737296215037679181072243189142592488682707757827142296612472914293766806025245885062444544429337251772182419536044205981241717724969237913578421494508405220775969400184704754494775897306425936556181698599292107744909064834878683643023796512799464498411982951550143632306332008263970364894835903666193395493279596549066959724956543093874753500641059716856140552017116712540147579138994960772830539177296360096269894570634234974833951971876672045793100942084108966769052898799130604618823030442862336844529591210181735399822958981824399606604417228700039785067760770559718533181824356035864474334707939659293066267046936581421699614490972165723929964393126722524556979984799191438046951039279187153210497256061006316093016906442958872366502993039239641121948007595848525620143425190517570601763591450583488834268017355794565551907218682276881286671678495415153754281730455372555996004611667391369910195749969645630236207136684355529349527947265771347246830646573516749362623904282172590063618326717454296883060635408022965073918748473588758556005237777856987702793533857092360622470746613083435763340099303044722401978172635198029103371057851878510639176052721456104055177250951854274169246631055261489102817915747580856006735995906894756829934786407535060623277624894538886016905750648999375390195025939970873999743876081639904448040254070521788039647102364514667542987487301918953958573825042808736392278485690315333847838386305496550575670802539378849701886080123049295720937646955801662571804680121323166757101398894077846633744843703881145524597693347126842114403501353359590664577692273572951033338114054707741258458535074604908386308190296960348087379107150530624047724794099934898035658726415722561447755392259798783317871164119714384680828158712856725992525111029610770984072567597573512688973453246236073670198940525434975848703007621388191516679574230342726058773037931545726424218660597236547705023519438743230508294627471858239068537664825753105109887380772794608471761133455913905426645712279871523300816573566184943651761632398716121814363316416258669712350488569154101834855288414085337358799248701178083960415455568472424818876004264806500393546412708189453661258253681603816367906853156655107929238592171651667291467636836511435929229843730519114742956844760422060108056218138810049938218594008847706913700292115593180941197437004370101304898060314123550103455426521997320801578387479034561880467890073957901786102642739054571194207817949656829227578385459854111037864517309745910550401465857410663268663913795577536023943031827868591733734789194367426210290765670464333320708546280853419672765749896678351770350469383616076032836654318402543928262958046785535511773533796732980962658289111270346024724238049632468256525638541411242433994882222542909069358544552754085161582617182323898647854892830217663989847967564533505860624100895377767294750346744002058630646896431057828449110807029958350032844861723664589218303186225467795433945450735617224402751439865071835418562662706225726398901803868142003441296934866712960754569897746021872886690642483376248970661103024653154358945211477807020656290810803930103066511337254745725048031604076762862028101143472020896778511105506481394810007528098179730830775746506709004888640139699424188863405956616123587760085237074596642025809898693080531355132474866165429870170710807581771963382516690059996906627382004204483258787575996800947356995879482994556433281320284643036194638939949958111230962652516644421905854155601359516345171601109236991064913534568260956912105444570833690622359868755367247432064850880301552051514963336906935849108969423063286333590606876799155650189819142720321419919394731851868099108396803698157102816801990366343965300423828980371856884530056358964907676139403135560367354312816628784355201200638672812431400955429633108286578501284877942017539846746097112286314582840573510647140380150786706978543059864039319683089882762274821296244156301117681402764145625987816520001687295405717352811678541570522432247487774646431788272281560771766437779663979253093972450644007855091481408196333527586158015165587175657189599860600049268772213627144047251490232290997764281440782117720946115748167911615880354524031267734811833013002355185612745737916529373829548691668485025126526938180129265689316099414324085310642238355343870530119635662428010517971050288287638096007957778244217006403600687828569192733603133096399294219631196629993615479298117914332937901214712389136552273871987004427744522829657106849392565520421997149157666352258300997234868309163542695180952732618003592780664775801086375185440860888023841698313843699016686762382974442211244916094971935730521388518071475987486703955364275022187889786243702447956159458541582745554656696077955236262178279659848773382382765822112027150030091210406150504207734745209681223160497284382739093859795123888313163916895701413738959461638865211860190928526539757435462252801916073282803119026142279592329356009569465002545807517596341527811385806096692572936634783632416890630658524112706579544763225459373922597668918795747722396145601335302882614997712450703769089470422544123995063556990470396923427978168948742115321477932944721592817241443564652794976035570685770728345296807008598967530273669240621405185989698357838681836211504926373031794286000432252156043030451742563939706004723745544296804243875307114418945350413189919548612490793044016790098971714899299436885964215587883640857835636910956024766056333259231136681897809202878882547716356097853740653461826821923080325021544143015001931214041933529892038108898422167021038255732019857050813589307536054597361561084286359539164920375417233465473219713065676484710576937162585775982325532572375476666405184728483772173538726660912600366621072871195086960500300575333616264020671936053479241336066059921780432452603296042549272967335511098105248990710492064935886029330079764087934249039322084543284282520471879626676217229731621399352964734546625830731621531114324567078097818200864216716518890345882754308689772482892793486107427252106596188618556585924558033512788690106237398351406744331417792738527506515269213184766306799279236161943146802414516976402172512785077320658830916559753624779271883620936151389899262439171295193025164527535895652392673973908110031759543311295841256719437571713105261389619695722420910150271485955906840509373120764149031245940624537436177166823746693334008472739704968589883829854906440499951456963562549790646058187302364469971056042517182813846113823755081264196594991282344542780215019626587231386919496684986172023094628491506864068931428057380921314185271459836485735837028327919142586934773162636081493119770185332318104869110428264798680778832968987799066377524349629517429017827378586483692529633446798501827964810112542287689100609983374351165282752839100848779057197183189890687008102582362913678733540560258509521717726064657445957531525755472212298755730898674748336201212914599241940748732569194085009611402622158679209636482574840636305192287705932734610636510463563975892134291317316454497942070858291992440581162628991162299689945778237732088356394940878589988053920048159278204120006885247621455629145036295550296051914366087003583776480376920654731986983745649435964685853833110045358808030170142682316350222224852798952402163086760962622106464532529155224424399150497142197163672426253344622103190034052086440327407294982880712979485396224195448831664530427359935544414152658911251829508780317595298093192720240460153435590289804325526383906107719186972030323676221743049510685370033958839600259269745149410272917528507496710600387773850664341170642486960893765411491675487713451278909836353441008708258323971500969493197418199082073799662341945097111462056524353068170369131361173601875046725465345513727454820181106244269544499492173989904844041072544804003137627913551639719908674302597674352485525934178879600342566078177377440232023133165773491876039622686087131482140857125741773947168522866644717402278966112973239236342620098298114848680981762539806108185223574490743122707100740898911108028081750723161999962772535043250071183472332385906533019363222351590234106854161921031809962400341619045725297575721737629463298445056835232967524953388571864061461297593067452352081550698472683784848531097997318210189294957924139415935527122816828105869409812312383553982904349421354172831370256457044950219314335404299733067270363326050063308588486999928354867123379529345088020636966445422211702027067575579259428612182724646084175563810900920511411639582971042630953365269400437530846896372013196534250982825345923599691803645389425041137922340569288552403376258823749472029239145368580811062547882690882283734799626995465678495873450033052423353397923807948182756211791558636532359358661768195071340950008680146797660038470298747628591449305169895872207843151428785176844545881988009610805699547623271461589991063139843522120152774471856522843931178158118979940684665051548125565062070686259416064356744882669262549609508936038922230043613445846145558432758835073674723093776680888879800589227606249549488885660890717164715184487394572353908752227765927145450853521383147761545214737653942945096333504738341886246379278853187291204299009586415744570021714947970502623320414252423417183000011156068700349048435499453207178245605043260591661382868965987014358796045053426461210037017399288371412924909589166187476346177452268979818388467816297039760154188059457127049399512134446745074047175988342849245811190239463076636246608850722646853498848744061063220721996496643668701544124857695444288533234772886231930609575965221336248936924938366435381243112518791330730439257699556096240098149998562782072341189391019890372456643272146176299871860082300051417932350945299285357916513729098123940060699370782299095830149906803727920138040203922887896022861535478406235714697654505166597092571032589593227063628002503937473894855782830298965254522664583925554355013288977822754277792042091202752945619980019658348400667184492484811258600034998880768745291410320107601668701627547990190327854070152015394680305178454595649557203975519219497639090584837068923576108862127413015900416784627432818392125309519093228538708771711039313597914338948129818179623754370233987124455444511018803698213223753288836807437791775001120172421902179643545099071823636190256350994569149622363981135971023846101412632536829163239914748738073290341616573865472142064633251437376068054288656326663789615721660962752939980508642684846046203125394370853536807779004110967103606752212252899154511638863140298018550204959658341169789675203574853140842074543500189548693075876688986159235802076845010145014627676094151933995649234653706877196460299057160438087519993227578783901450615380110434342438962363319947376992504314320345249373074155781619889631868859215899026370902218700086400375896590606468651510082374394477194338435439870029893148784770366124407387927418690394165347596344057185003396795302669362647288413391379516810435966351443381982374326740786087973941291424842957795976428282122087683831059839044131995355420240006253429537893042508409522052347055549515850352359261844810218717481570410136047286430402812819636903071260448819493016781307674577975967143731200777952013579938509146679098898844649153387951419143446847190417763804269809133423438951870649546986902814937294216655084786216958945855760163097148404075114174968739100010697031613638062718244795320016357161905497673401769365710832780261798569174442706333174143613729133610555083375767836480349307863864072052229546699112193353106204981059529817263191215285139725199310781499897756263899820681857926443257112623008134391838593754587500847252180876280438013071770413142590238179798675210409985580551344190172955403679742880724482125433877571162966882410341600351307320841564981225595816757044351765255624380691470957721122118556042228122857702439528821876622134427317569878422661683606132453034712016336511235760874680993037530895293332413597218370172170251754092677707772294071663222586385710811535193461414367560210466436137805273859148317807249360495165252831626910446778039442096304921473079183153314368295177702268677959254264993060152761383783658591241582438169123638580689972550882601901781241790880020495054979173368747840876181516514548237246302216810676725877855844161260164973052612889366565123949117406306263116832472706783153541790654099849946205571912889530560762657571644224222625852656396861921189640099791883156462732811275077329216984608645804015047721946780665823959251994247066566546447947753399802815772925766409299628508293220990947869287681005802474295922732827086392922282622951113679532492421883349274625973247572753209714408851987185386945086308131817008335792375499988635329535814807186697756600264722478114667470836445400968276205990543127417260639150525514445084414272869959882098598599726502925708410619171203265381704315919086146939186628475368913868759571378008648304083424367272859838871137697955057485063314714652203293558887267521032092074643261328684292932516618641925893166106880915041754806336375483223462037331275382985074338536825747517643720867503472104742272763939696293312412991008919229865580606811535436163864390198500410199967130225828788222438192895131603589992727193955196610209622471102644412467019203966502185879147240202357891453946880535141414128809783901654674925945427554919444809041341846997496522914902915796006708388180986047365219387006327558073907376472711193789843582867545229141708971850865254148789833877365812938307042046410614564028591711745359956160485907015965822213727851859642105190771704724717588535567554245031151824542630933046347541816984193240471020932150052708552296851671650982709841504743252394538482727893981538908295503974808596699115569146095568285532569516153235363497184519839214102911991308340287796330123905212559379815294199418700283855668258786512722525822673014893526568976945644898325156487488163473489478674730140780043700874060368066607984120113940391959270134313987165831765727701577109492175263428118380761202278293243207922129818615110478819358362082780598829222767604757480451396445348154264148064153073762020681030568213445593272185615460070203212097073527270949392778801893976669083116000919806554601651920836925124291809462127488770841718661861635873354670232490378831611212094618242248023519907849247771135411800589373380327519095208383512337011516874800692736725459768063716002118548505836069985054061334217961482672598818836584841103082907245302892173372546026361756306110167352869373920202445547359212793689382072361919809798257444609679751317303837901168942158637512908082728709875936195332838235492695785423775735789997877770712342937756343822999468939514307725533228545151478046432531639750864511111032891566997399343574989435129124743133521645428587968983630245654028152473456750926206001097822694791714854213320688286659406256732458232350821171386473360003236290461275053675481603327519841193438585955490744670416532091992446680970383726001092373769667714982695253592232950806468434756097128126761137323465638378839174659228524276520510076462064758876317972635215793854017325539218107041668637108907059482427534145573011587089173236303373119053821544797143021970195650005710605455632706250298668324686468151774903044049137471636424371597221362553428827292449890831512802686751594966231292046162375214242690408251987291730498150176409961228771442514394431621163618084282108564566378253441836492353320980389193736200721809986417052031643704660750281920461187214417414933529947658000274226689208553503978123948015819564895543060143305354327516534652502495414749584915770622729484968328650699621980485578492331344132649680948512215472963890563850240604325711704931470024457384174087726510419462540963208657714479235064465360560879910503329065945279424671297743998837102539554641257753533010257433384754215296276521582251338436739802038868955305349321038911816859233250924088896578276826850824347507225011112913538615365156634579320292316133077934587776805587335457778951831948431163419618543381143905903116882389004755585527024202192379187138057976673661817279395227850469427917790441902580581086662108335198606524559938843101412261323199308093614039926251267674098088908221490792330271911307418520617172741662267008012861443720142294156142390995975152717965212217692414277259562427581603571686038545779296599250316472651323854299572104692969416157372318888923324423295589824164059563284626759113781717499288264265028943565463208198285387244968267460736199115918628559238272637419707991965288586056109515975081507785522824170964745994101968969790007257068033023187829512911589994983194820625614326346536450565024370478512552733991159641731914227587403798203206276282678866875907755225517458720108811182951789335803333819232797680125696949079974974598892922862037235820927469453729812979485267470234366261869973433145707707207111270115826096001953906153004783626747705722112710360589113501777278868944556505644490095842519984913384572672570935586845707674685258478873642114923163262407675467180730269587612815917238690212673425726705354454230633299991051862871476906326202455820418810401606599182133113490747825062167371010884882771862425594653609893927165232174859556449919233349612023595604693428542912184976431145667927947986389541606882226691043727768410332360589758029543641681233717420513869591412480808477454506322739193614899375135246350036005172818350198502300194499901572499689980853596205608331093489176366067611252874132966312280131184247542888523444823200707642408514312913495599916038625939038435078300085644114434248488362329922831049092800076086983462880416445074183716414450234004871013482336036002003021260627221818113224820800166605500831845860289377766349830696743740837431768535717064561771486766802775860516413403048649933974609446876874702123551086683113895252691894405135513336347543110306935171866196911336547576652127740423353625356672834349120625689698437843999659134521785914551838536266064343897062733375686345937282346565177432124185447979713359726681917184100109072639885078347349869705770257999341463048869376980015410394474960879839468143668617335847648267803172928772287297383488914564123682070496429293951157428024899288123840116124337703853343410264072324294827132322468686868707618265472468274100432844425135897437186542820276583565690898636054806144680264762091367062410236481813584651996505453103880254479122392746034934340264001994179197428367684730902884081292858471489889074902959156983600036626456231943865608528000112612777638289228369704940139053878374745223773576705905069280669725479605536097259855445386512262852207014815206179896519647671344488676433068213249351002894421472983997644918609816508153943091157423444236586086250447087705004808563376614933680831788824150172708111976870761805972038646669353518892944220029556627159429709438404182729478339956730205968579519443075660797704763646400493773845540170090088665599760461751684344149719383038032271892923170554140729347492408895932713979380339390530485676594039659759685725336669918305752529684093139231597087213295028069120782741876982557386159498477164661771707779960088135359271260639508330124780829691706839631068136806525850466337805722199971802837997264844576256016174712059782883322690695796068495496649788134859874811021762031797052268827258405084188256767088294849144006209816406415845063726433723581486920324700165607144312199991494322377299870987208112912481422442614332939175864520948857921379565226791411326823743098579491664309876438195617156210439010604371383445949604502181115672574215637636991153780982857639879808561120800326118748780511134010152096372628662366050692015519877790521204404958809397144367810047673930427841566122335625447850654956953053369321790618858806879462777232336154476122031787263802091532705481367953145509809655580518613561393898368569549328675679084324899069118932152717833717664709713461476945938261994564326303456039837139287210086571335397936138044241178787215608920383448102046329748810907358571161768560678436575303378294391048458258882874420999576457454619768765592269385650995490758917492136580351687465937601120823168108238328920434043086362690894128706589966849314006145950466632759909049296705744881633224485719270989982760376334792881781552752611679278579453335569420739124998883138488773546675503056822848088989968499830578890978078367913344754434724669540427581762016979630191997698851489654890733817050414063913796912117216959198932128659631851061672569157879606638673100535949920622145679564500221181814810559187780611990157905510582644115588192341798794901564278123503065289333583813846241710688092612502252093664961309407296576222858001446928330187344574684822128157040825303840489554190660508115808446610103976574560369090068012019990268543550518390542512644562050281979561010136456833322980405977568236506440680623260051691986104722390897964141724320781560962655534072446765666670098061044984150504095992697424267512846632335081939907609655991415199386422993254797855039693444025000636305157015462541219015402664552549307977622102269125839021065895918396223636690035122516147390780763615043865449855755476908924042475027130363936238780750507600875326858777386640490613399448955841564867614421945095039150518462737208143050561742358398406616327015093361115224076721841745039713122170543405134816622855789772434219465305439417326832229208339091663917495327939995264622437221577013358395464858137705946413054613916575884694082698788908884440236889633515859580422774386826309238419749730789895459007262650594046541524914642619603326495630551657726962519695688756939929711178764351195700262927397081558841309133902907827873779584886913431684808505052560033679634680061408349618585504310139203851733678173937228339793909273738272498265614241256474958003495372872710698783627680510929239254597476380491938099620908394727310259257867513040346336840282882645241160182890745325939319032812060814053494338360787097052997190319518813996131893308193349912138918658820328928553689775543290658314460508694670564160030206515890368203211911787325034902628749788002606093496642414953134749836198236887525229725127983648497278970736112953151029659684960813147126616355635105146498630446076110446265353707446568247859762176478123298625481030251416520064048895600666566688839392378503194879150326065346834378148724044080953805146715623020230297661272646620217196445049081605755853225255333353246237676467601853115761112183755117043725528354392359977296383218681371794930399108237303921065236463397749088697390171987171508110365744662048472520312933555226557350000026570392040614426256466578077618680821701426817464921737073244976960606235067092413785456927798447789399965556782966877994730997002703345999226475691978901855916304253533745716909722927853311532592987846563199767745173670403733533771602784065962596600732099221293821461438799808050539581213185559715437004380145918832288804880027097301061118911248719383305761621554145256434647777010578846064769458390008763599786386734384784011162490066280270302393845451029603490849214389388887565381518061344223506746557132326239754387446545241386967663687993602440798730592946876544675308613205267211062462959039520848452487786217318027629334726145739560150087068153742747518896275985259809413336905841458418281658679961562820029119205554164988431522959957617813767627502809239941172271653679368795576130517030551617610351927286044229460764565947193289094506045699915484429542622848337484732118602362424670637160261652030636252082539906488696813137111594983459498346998867066907100834309206309963273892647356750405025898808646436404724370867007204914801550639335620086105838800238310438199924955642125253086370293522154610425273421190883188239561755058932054375705854589695736605896658387904086013920230320733819018146288664254948507996535449209672962034134958909751218781674152103855141256200288622449002589755865308497088970893282972734502195688368674758589564277574191910224297257897156433660305498862343644435861916821831267593384746092784849057583492770373048117570878176624588462089753833024683027689854644080849176709964802382104665693885491140062170058436483454952807606061602971638705845667547322094338051258759473849308069338515003744277936257103925391427118909373653454063350611611736026853211611636017516196464565638020269015597839832998539021774153415992375410890607278616905002351838084357864951294177644254702420294753072681822622582069980118836720332540308935207921173040141766233841021976799038948939023893110990854585918130183706087244283328006782516569735845403811140469760253331543479367119441242309800419278699295172987925472197542520046116937991226833454748347261732382553852638971023875119749632025554833971444797646599552948144434561331433116124211944097363192527007684040836373536668480484107611374523238513817659238643461150262655636796700759070425144274764366383909061998895437334938996108085760818083250109102865848656594535074643921353528685907876654501543728368629521929716570520301037299959522094211247194525263857242313057320769653640119125479142901165783280994224189876564192677606272590009700092983057061399194444005908496872058714860533683128198720817344623355529307166357288498583540338087750112876582603853372782045385499323245249056023174929238612612740795155046749935851067449936736584866457831398555136136470003645115089552284836257987433319376674188619452487883494078954375392036423757264772406607035959277593012242262933510946617006451336936583769340003229075624738667408817955873658748187487010245316005430738391963345867765606384384631953854679204361339432268127539922353314016566768141557782388276316819057020929701878233786230984839232622414932774061299650279856872118324327654722289224377712892141595672031859386223942310862201012899617897282412799572634949593252773877053220529615051188547559102792287912309166272837560097689101683628265772648783030385067549990083863139421183305445309981913189723702694357105277069465192905690885154765844930663700568162515980983983549483005593021499672889407254091303983607451545643385091383082341537082983058161754094645448993488172839737569998502419617669389253537791363961550348279057025741388061971086519326847266501339867178940595796246543513625145850652041639298802799958404672167278732035992834629974613979068125875767165594109967493972387295327018388478094763181962073556481642803747281192243959423305752260620118152201507716513998694706555845917675954972143161342311168464278028178051686361273794393184076736287598732070364652762168252759658110937620880239890013131284827226125516453246504886259825742301676745561279512078600960258392152466071309264064432035376643398276822035330067021503467925849327035004347209035190871062556190802614791999028157199035469378960682920754199058897731553402144156506025248833344516673317491662970127961736854161717801147820006885635203386442109897954312949846698800172126280410489770333472118072236833560553625758599992863104428820561049605029497223692333015838449552077790787671631567385867899195529120351243018387017701547030629902757043662261387961547605489557505823100789883686354791322877663193512685358096161142742293996952969620410043976945319131667904146900505486862592086085401429476621616281700678681617471065751090673934672444128082988465450865487873551010412143567380487722871622786370223334281691162910396704202950098172976532964004539047271061159473222397161037368511914714353359679338745417096605288802092664685163351537499526433196081213080925943365191382858349957164792946495506109982324637808394463623771627107243613492050625324610732371915734983825370620321983138768834314494614793338837508275438828213490319593966289284954974872256271541010574979412959426663763193329394605176020570278848460158088478083144541184489755752694760725796649712826869014714100109877046452829967092717773409669717394292994167777126547702127370566695496421947295170342980831185550258023909515689398236979124446047772419623329607235608779793636528908679118351723581869765438571063039478225529805354289344599477890250959798879532107122596279948721729949087200482319272107680829845241621937943588367524928862976770472402134983648797040070246681011212003073741923406546921350196710722203673891717808375431177807424129390721044178725977925302762404764698095491921939068659326690534061167727393557686464205813083581280312640985602681088500070080924777290920312433435580303781234611651208770504949105474947250411702709595016155498215303203476178590641287452486067293869337647083558115179018562630262915168472881923217117746866087301812003278539888959461339774608178987826836170836548533887236037428768408960531534807636375623648703262496785318437827145932919019141413966097580315971414638951108538200410660961363532635482725106251558869809940220266321748747157283262461730305751015691413694012776928029598991030713243033399155342360543848413658020489538231800776367005015240807205154628744922533731472906976293626184941383710257617786371682203574315923990567573823142080816653961022918523716104187215951067525555527585382954038020010669871793186917765968157581947061045485753183785206201706759005785193687689624415028130198701973939142857237684594452081291933109648417922376187430110407344563363996046780464450815563678901743452926319301723458039225314486087411201169253180958184667326092456755695074436486495638856563006907408081369655142261039246008450600376814310152492354231925119551451295295986695477085631684350042811755258177381208684869110227477164202773781026207771797612498493712620046021815613453844560402175772037976813258903499034057965446665095565369295533321089394100915407342507947451092940065715295809930740983929688822608480690898697785189434568117889930734665825317812735741981073734266881253598037062823377224286484055769764142673292191677675071988963888284568352770800353717150100160712224873526006810987111783412047145591767865456632063012393234020842509933165748127982651958936291789046909325565153128537026625544681787478738983538901371039651650623140537709172731074925028133297963036469692302027283378780222203893813181495225350152344300525881520658864233376037589816627848109548895335074362556184409071365268840752760136854008436451115312776137707856550082871006252072537104729346379530269765188978392168697746641108111849877310664056006155436120945550187974375447335495206314376874161971643280733163761902471766507028685822638399941587073660387292925273838355346669965723492094376000076379639964690866925657724587523443686734491458952107303261736448857415906580892581930127466852602597347871051797011916741711937353054208241959035090800856552933840167920582855474934816309613844042113146067586685107353273461925056441702036717244818387653787750087063979164232679254167107218725531694315754539690358422891388823607879029402663365912931475618031994621654820003107885144370262661320221455426883840618406398868024776799033398726098577501948284654368557527798082571026416394301467255832617562147287265157586485134043767954978079571281598357357738949544327464197116745365330545498482123986068470547039296010052300402322054882599629540914122935078930053759787520436009821108827956548429478004380238192156211782428558141901115076677536549860095655294227493384559437293703128571513038198710503124640318262188905892598591510337194660232928434955652499207701134138050171845558610885022619058824425419726917758991137314169711764391452563092351642353051202634015639139742768309099635151600813600597323963910580742182756629232111425402940464505158658987467931327169080593153182763825213529606079195534434188255787291313609739743301642271150536221056774540699974079550412527528633541081851792870964681788071349625208796481458490704221807531823134043773530392114792080407668368542084781701292116977739532086537620286188530959471559684319258031619754554091228551494682787710007496737967484244561891212602730245826776719195341074654784273477369949221200581556506050738657929424569661616368274241122273061509648386446090112134395907989367139100523391875815623182450652093672528157993264784657892128823211583788179994557863564349448281409442377980522020978862386628218633717813032332533907982229978800346053448337643946051851003815638590858456983230310850823605614353279019169032641681730937044600031660140853545603673731575726563944702523787351321926613734624992391666107208522053931901443422272386058051482147910685652631395109225363357752714957689553224511936835389144187912798421790461190788168929630357132171185548647844023946257253607398991474841736430129576439043701395980569936346751832736898261938112550290669508081594455897274023442097288622800602437556398772595837172300233254699868781988659230201677587396807599035499452456918806531964730092891327715319637923776260886421524533170518520776025873968889824861305177168076769914397084914328873351204342360636142818971155620796377188950221426180468957056709126084067408850437200896913059371776685527600630506585001040695718239692083489084812750809085328372605692628298933918789593975394482325810168329972154860792744616950736842715158116251010057557773515500725131912475338695526326870676313690307097834895732617982878768393925732469756302702383954639523468126347272297604151908112287941683991492825108380677590786201341637273956002916217360464422371954942195182852811298598188845732376873065055415359421456212304772519675310833704925493316495273804318827056024308392900344264625690049421287856084988796650570363318526613747510951497507697174277147166925092219693803987498392414305381880466661984772130095534234473923917376575162347981779729376965940904417431918950484030478953266191772740112244807740435492837241176275387293963086490491792618345032560128364633702350447392395151274936289703944538635500494727036444521775675583516211844513131995361918361281711567323081464966539269890621723336058816497487668094981862511899977820351112525099759649913364053507823104162573289393984772332930716857069648754333369795971328416889855348085592335983470042560850566180765691286028515411249710931022660656955243526279538628773613087952766245800327404886363459309579554877269139889181483044699732663850330397759866042327836799466417965754705304517334047545062238277392267872755723805743603324949372536996332328861487056141556615021459323561552869701153874411624740531706273236348201972331723349734715004397479043363784607068153764469023822466121233290254644653596124572775776637116409469778945551501628106454413554741122207312906304624645236836733421883635399056599591748152267100735619963888100426589811601449448169351935184318459587440543506176949615129053786869268949293699738276537605310877174173859532499432806181550604360412955794894763129368757457625947738132893592102954181364173876022728359799049198534395865090265474572865709813026465942071280214769650513729417418847073441442648476705457507577247367772800839720834702132388190780048418929621604897598043470938577415509999213180235202975245887533434441855887089273348919191546684076434302943162274862043755997316462824639449232856371551505653374200035856042298375991557374027470504865908486852371050984898497430265248943107354538835283455226638080176689180566695947454691890526017590593718838834311789101588952832161225186077255817131293729576421158010796585937874754398629360103975111294788686206950643547237931763387207179379175466523080442114992788102732407278013841751877587933202054685570565342123229545423320635010719845694562833950131836036231968719805398921497698178917907536100000780028825700826441383382423147203009461045516139342701514230466393293444674264268130018220389337555378275246263480819331119624244773006891871802202051241315219150729052320223676571933319239851113991663321540177117468713377976994626129205456185836840295127933640426508228528935989430577332469864826527566551694593417121453106458608511945552945991388883839238188283007612404285604813540143459920111090248357699361884342910482995485390661374826240373793835847322456720503134262452879298477942061137097150759327479758670295096386707243939378771984744058862497375221691014702830012515951099472967055402357781271260074911290757584739354627109645544968329941002864145609285773702259950175198394710184964869249652588313313698413857982572940413012772791816773188048187057397265720548602807596984272424556682104467632346304237031233103574751810461075458504885084383387580576210966247558822170378514329988818745791643833388536772700564278145148903713284316618231691509563832359006389731998529987639890837288742083065256622371330060425106161245490894604213271623978592183976108177223415009506684943175684571432108320777152881550271380116407813999834413875614911380114847072895842480101899523670465117558343413370994211557023565073171401407885497692422900089730620652982770293824741462099758092048716137145297261368793660316777724173524987608389088989498546986686316184437649973844203501856548188467913012280308853430719169671823118805114736695897370373662394631685795622647035968989106919020804670062216046350202736527390000764771044703092935745947061402087489461202235074003246575204551965148553781784984066483966502113500108788167988518096623282080921671851574272134383292697070033672989047409120220541494461457554694647124087395063256675299136888464441110839403025110265536663941588872610235126369321560992844379920797861790544035597786277226963368797849289045529696705921468046943541628142119770631455603298687134014901774840515119407155483571999004839138173399747591540284795018257299581992673100620314691587402075584959042193579783152388434369916133351722841578693781855124766683060612838280045687129641308217462690338231231347238703849409742602805053949434393768273499816891239096776613208572798424274255346010105277905676408373014488020874171587912142693913157335400013982221684161027611338377869433687406097714568581511901312442577909218118093552919239394354476585185859484025689583598611978823999633517253592180784600182608857147902184853427746866689030300208587597857569061066158269547398767550479988313676166354192642508710204162135975273356927191856032979836949181941462076020800758587712650754762261444356011369138524615782440340253201802082653224678673702856623296220657642190849737969869214790367053772163944150688972855160619559611996871895276031523852072344665360914835751496569785477391524419175013534495587670029529482684498833239475994491261430090618858289342409318320713935219985490067779702529235980248411858170641095535307047750461113840963754288035107997765816854359523068200862427154701848811331634006166480393922131317708403299235069040474229697167852345606604073460592929206778492170574294384303372217709684901136868929978365052019264982928786181269709742279092230555376877710826987262947881862921588434756792944299892391190537388780820129175574275258338575394746018163771110300913189411858326228475225451726859643952450458278480192828080346691198074708389915679219516149381555497978078404397293165187073476141433490392647421811540302179868047744326863898531784517524011000328697198602910557587417162996974668806633558073254518432931904872765456089640836608646719045838353526964620305642429436568355523349562713806322339572782638988893030133500456031457528481798399593203736280169617032847736832712404537308281872071314825569909192106352705144716680231325579177902535997600162468504187058504164850999763614120249860350676312806303412906589645944284242747707332080241952077954643886179263228692139562390992426550305383715249403756771749801783133723960907755237789583112694196437289687132376346965613716202889627378172409072407182586885077722613029019307984816959485739140692979973675553578378607530335668633923199600141931671102446646014441515825376616109328109348970319648692787225756061409811294231509442835378123246264799045629432304233840058619400944084270198238932682036800783356806366709083996066515659072041811109951354924836876739933433059784259870332707181258299733296407368446609659808728821971296674477894127340927219017108512980080477050335133279472631811809228569970357030375045671212149593857583521318680224729469877680968646240056598316405443563645667108170566430881347691308436295803476539609006640388682324054444578074337461578150711971814388030110340968187573679560645422101976298582663239066700798159894723746540284563759878936076883188631060049965658907984145279858668470693757201053771758972228446075188157027210177985312127304568588233575327298893484591495321836102727100437862233323480533140015269372932925244114307189768494697514513845337081147781567489118546012711927208677227997015121215361193533854746957939150450008665690350112379683601865732617903274607683049510162615950690861903503421737064044825617189412502595727590865627273380656120541545935928804131467566925457338822777705945734284807036213334906662025186226541070292809655624238331749258649966100519911725914740334827807777525766898385854314423536263764125410865074840805007019950414197934070425530361341336556282260763224204467927647238483360945670868504182038639296686307337955898125238479365919032995004219380583667787866409133162475006835971315769758953293856296013225513858227236906887342495993317167926586860351503039676742521219297714339762575987636558800009985727608533901610180362841241827771888343412547170380569407278115626357043909192003875026047033480037264724525494302046886739284630163751208206791320059002731415672675793592495129709922812334000821360419134694819176706818555075435963973918473213793414410711294586008607136180238437880093031490409496625496906093031058483725521495329442671086914170617572750721886013232107768057830686773707136808354742583139145383157261072922272254245503720544868660981431020187030271728909596318512369955739272491462473411494548015330861411503640212184230557464073422003930239122538403361515604537565231322843781805006897045222170795292512641029905380247453731407787115329318278049489420516020399306144997725106147407632133967413790899885927657050657733652207014293718153468768140217301043230494414005950684408724217629700600556971109222162027637731796680842270085921495634195365263187213605172769186635504406241388009742054009222508768064075978151114581811049450025738530694954403832027662813314347161871507815950781317675731485356955177900698690372891013955242651688710096198727333882123435608214289552216425241493331789133361983075957282259467969730631904104045864311509870509098368863772706176536434770394382329754635567734680061868669687622533437894286993123009246687870535751461978127172538293077795621712383030175088252688084182324110472742942715838764922648564987158945420599331146522583622770966127987611112543698911223607213682553874485638408481267843875140176386053186333236132966363378171125414269155869161806994597180204860387541041238394952764136487387090075616113352822988269215546357732018337347458036235070298245066588736314123311162376511141220463922577497586977361222510742567199971884080019809199992471761932321643793200915407269859479837584458818953851414028474676146073740171778603602621951341530991124108040679459263296596392701659802817370376561476103132976390559826181687545215859489961743407769055408951743242859718056814845101689325811073809285482501365367026152494004951135601377946240111461503767181202444586352153115795863014804975575760738616376696881256877812548436906850879498544531274624288966095663295114067775430497066107264284358051867670767467635235798610092994499315566244800598587509900140186844410590552762452833445678199440523565465959101800409807025687133560772740812269103740763581673184681285007906061231738436313977231824972099214737517150859078241585400707724387984694303428714833207233107104437609545480495203690643789321941028639117853443325995519287728734996828246597088144551373076891415269301860291359896421758226201524844796079616182724270909506467414057040751386273961412623930833090564374229827386796944475774776550868654803850989543123347752082548361152016993804135325333940978763233528547122637329423701457310837502961966322361467433934687553274152967998863190007689582869180828435555813404308227371412352708563932155852125069161665309735615821121411202728589113518525346624797724692760127940250979981845723347536260116822531322891336471158834485524918376296782558183316618554456850820035653119555134108973356706237051233924044196286516788554812601428063606075240313134415617933320927013620564079192942861355853674780038600012016560035109495461002030745639628881546538759923555517135174986860402163286743405225877001324898391421072657891588592737190991685180838337236306423487258189817772063300044052023762520535506559022906583898641139683173580072697684489244543948162762729508161583159010655404005992867462907656072974283039480986449684759263598386373068034876626009542317895075914781446337311687447967663347613578487478831863405416425956702310666113462491681377136810692641142602096400024796497178634268760160312909046220346419218990601000060372165640607475553908307508051909881210545412920753044112914745031646865513389624746700135293710671057137619956633830057274618426707777309501686580810911246960761798475866688650707615618328538136830030443941911789323355760016930565704733764097299552206401030836752468784762380944612191093267994534706450473814783467256716476618627902186824338086955810169940624196199722716768800007291551183421339099437802965827069193507906063177369684773538866413015496079696270160646423795063970439049218971916118253593169358681994408271387886571684305224523908460334847959680574730348378135309483271413592679935100052720375664570746707825106495822956257668594741046055610605140278134767813187545223756675745054518898849481723441335852962668187311475874374184371687504732701677422369877642055677467110527478338861960929214609737386260159425220573574619655041843444673804645382631989468897111336939973893787164058405924414127804055175869930238250788670831217251961977756256482760940688939540611956552226623795282197785366131424941261421838670408079620848919476339217440174201439937476267394687085539880734067175528601759532268604346615814237597730927467484052399566591810547862754055876369119442961321999095492672855350747220704191248474156603316586938094237266157081703259031511605265351450356335616977820398159662121578687129268077524587426812793565043906570572563761341172447928245710245917151088329697053154549998206143991182623172456183260173740328546030662054349867233596634505908639721591571560137623875215491013765924453142351085703890791728611149403042942438280566559359427071643559474734976618965038748916928102073096710974560711178222790656119000370648867964443614607634829037190639195681221707429942528172252531815225127412742457368784252717194759054774948619928578098394323888875398907474237344917030290001107084258637812558600231275272517619181605075960419329484429290358849649596219938574825451813317375279744548350453653304623741065057951412269089694937230048978212225804859301381133350035641147714035861295858562961967078129395306280895942510928266868805927680327650079381332921657054228343571820230103279405804104748149329334451674440760576803011096252046300819493848135790777831883871282090606274264956940922835218501612354014419902351158315728700002282719947890177017666201809334203162343644979447123618767334874344012703220675331175921027999609347458667058633339866728474078459651127940423181880183259123420327794350065151463682825519836217611243513743537579918920010711858776700691455626002561237406479957342041452685823060039238006798243996993720293707905232920455385780575954708460364365479398249461725741109941445806268658386831887061653366420243209876442411460041127824767570476548100365914510511919469791884942414849785449163337771733629721940725132458431299843032830393730224098227584995604659928669029104303694489932636355491700967373215754112523072003474721617346473517291417910861638521457370531719596540656378075463741641417438925125693774086648699195882361922245029390613772350904777110935683269565865669065104683229068421649872878685829959841536542041548396250195251552075225338807568016867152733257240235957785714377267964125779185288404850207701978455967841885653325475781606326095451985092506685062986126174953172407367001817558563357571509529764373641003941056473774053415646248647845043712743176232634179605138408922192849597575284686223791915613102826669754732789748343934487208454517320227470001259525274259778099251126520508425158843995188077905877903644978919433945807320281228879924779168932718560110086550770176661496494579780950294999004673846931155651739062485824877547254899338867190317441918259700977641197367208663221346604886398277345425789480542460368798188741532944301337530763855059519011832550068100040188379298261227834027847384074821277315558454352079753926793190998403426461536618632423872326377050295051490582405422003021219512879107923142869863088571090055451314432126098276204049777222530189935891996602114396587677561432301733285972603789811933990711709185905356529303783611099954569184175990949864888134507778405158504427780344406153385746825975445235678297541893478137709628148876137808564147501067972813199071400258895721760473085314663056123553286003938254547861647961124913687305781245340577528909310151191144577433677976579434585686810736789265058787643395940125490923641633132368325212192406288817518806716216645120529432666862901393254600166234567580688206032427005178147950302011092033490995919830299601138097098590901640163597971567513418225783929307790637635599333176322031901916269904379089735092151589014239066984140490907911243977154955743484793733191109845943333988782693666055781383004784973040512196687039051833525397711649980935445444722132301451932618842576386995964261466888608875738509176051221637506939946953270632949709700506126496471288845230535839007999809212129287279496455873395394182432493958455677163190959694189092275946977459775391273205263816820948899935519513130867658613833331103586074319646507781034675365148242716748607699611271775204442098086169625823638484730353914948194673096678423275708534893074512441181211792861011331108073048207142151609572059954550085263377971536038754166618366999280145308972607962534450436364316231351764022799832613661073511998227041342684082364928264610340974902120059810325780442300335405710641457083147479789854940720818110129433338482745413209816008742859045214999538190792132033461212489318756550301904752456937857832508322444569847426453364676904543536660935316664886893226416733629483958235339806992023950101331576461378237443095758121522931972494171801608225093827897987639197493964918890602596827108807058559023702081455513800276737819665482776709449943659260875035476677268790672314906066411891562941757056452469601851547284178647508904558854598145884850265701879298955907747091286819024681498949502237400535015835342034275941806266838544354048434084465147838193690695416315700520032805182433737232591720553151038634048626985621424535511148000795272285222979450194726359787553012325769567285474601251093335628314113962983393359490810148167182868547658324003562369954474386732994392008847855481948158382894200630485000734082811450978992983928637431202040259550464281500569048886511584327388554569309228474045544656063326093719992961990362956827466539793050089424239223550197843011085245957431316430141404404080962179505789272634802309666637736326232628694335482622343468890475298194355899249014334848930651537770110154850072499121640121479681932630065242024684727446887593629397523752537997478251814710476428098285155731100723035079296547942554719120851063025925737694861108360630244859679712517239320462958165566700421633402887562209698875456903962429819701305932193812072887507019978980404896251952368887303500954409669369610757306427070969927823642721093530810374450227917368486716699041883227202701512353663948126806415687159235409518888506817568547528740764916069818519391241756071764843606567567610280012061755583445001498983420306646809033962863315806107078884747021249877434613741370863374556777658829240495796313637194773001968192096529598863719279519770129571582433128435651441309107254002427700751429775664483768569116856722964542441931897416333001947513212664006346949300471345433974769685121366226451825787509221211016227597766637420092113250554287848526117114840020480075915366366883778080451913631227391184156974776918777945064737129229459322940280305065641223212344286627934760929105736452785458013266932749449317684895521636228574014015427083927877492084307134258617621092836684181893555552558878036591345809286844132183033026341810673370162993298061371626473145423518977037757618236543371470280768482210492019202318707921216957281791070400796916331574623824023668978424548487995172105384674683610920324199056143231115599399234954963602955055067399689343646912146064071779456952753938984249479469467301967395590043445233736805691211582015942667729865283595364507063670024066430000400295831315253094436973196998538624374216991434182565021066088256346414727820033895977263759070186214195809378972924428164391895373872973055855442317101462941444180709829777272859131296681437147353953299288442990104032423373388244449285401819867220713533908404739550317532647610369301855663898701201205419513945227663507066805173356332130082670314098956254017896228748752190682919752556695955740326476936621661040038077873124906838665177886190442717306579404641353410249176931278990678035956059910210248492742621079424635873341957585122378042403093045963892317959167744265702711948525529213371478629309549620522487386560839212460090407333865646865577715506561848445455694134103189019130268357953888225638300756350923886357184103801473610183488955469865108592069542134758740308580744742530699435638906102108977781709979491081088645614543142055885357164724329266639637865613235877368422345620147553038360291338220983278820516521722914663093890856742704990346124106963532391021014108503433578100180359471191060175172372346977316009255048758983989599891911372888814343765718189292553743655455744827161002369017983705293765890934937872152419611363522957349300443144900371519329416587987880888583485439024973587052715345723567886335561908615283476807693520089974557082453686650382490663547620814631950842830215619200124116906493188450776699449322201772573922596162189948030263024593176910531584227108836321042032938157333764873248665601987578144852592894754015544554056392926872831142400833433946159404366567544993807576351618190070196806498057244833888104530683430553486968714452758472003670056467776591111105931763552522363761952180596626602490820375434433495676613075804513164852535491955780941004470900574665733786749112377709140240574971889219678457727008034333515079308708030501278643292682162070833479236218082731890281682285822305791221756571478439374418278918330456793906130962911512279112877578968979191662954454926049459436761179281086511675872665945283783946644991895905653292879432911797267436661453965681209315978074075937104985113674592128781361021181861585058926141714709635218562778445202135935724687350959792917679950998567868956297117164444231270849109206360602211828824458634593424399009719403941810567461211618083672401799428055165235612726791895441004947557968619648730096973109304258426923204243870871422396866203353642148664449800701072716081067824656101327983412681416653298002791592506289298634564815491474633153474926531115148705365820400503766436646167665001195977069060725666121739048047732817402932428530038686761786326500302709414902167878414926954508935605084771198197682649896843686136586574207504546719549121998773148141945165357190348886239716820670109517910198705240559974544000647855718565654614338372194255398319012105705991276198038737664003695610433152373502330502794107666719761609917513957453130301751767210939337199103880407563219518300283164911841709888806402421804450850358538064381680753586538834621451006559725713912907670321705104876614903018602876157487285557479915336104558925137755214096046248653979633531154483127098907575827386407224725555746861882809037065305878837130361603354494427522775109737140775030710516408902091957618000649740855845980972555827515796385902454552306804334146347660185426061931878387650226362848590417943296466325269805674238146297002596319233990741586341362628817945905311526495156882954227674772312384479483156010867662694046489031111165435972822403549284281892442181412287288069768069956656958122162890385895999298177747890213824651390653634288097805822374546219481903084477360036238282557970188288487994149552818703935924536939245011525479766152025321613047168153744522974989707173984479090848328944997355165320787636311770024897818378591957126102685486685875322737961451016392570348375476493444488413213456613254348572804199005038242502628006554856540247016469784706146543850965253040461559220536440511367417438600990281784231377336948583582524570399765716765959314015258253009777920473124799332565486759495929928807295742835336095901489311680344463092735790608548661318251023097909895357404451178500471138537036445093279104934316167321064117112264322924846362050028058726924862959911270805944545970471392703101525796714288526073008502873673408344784822764985606945322671086611318127641539945405093543708717452780830436543844255731477437450076973634333901226098167119834088220323337559119319278269945794634615275737911632424967282100753122067128440929695378073533190132963234535443879933655578932322247278558796181776437513883569505586110775864759821334444043722141065207711477465338523053703505029305492931074496917314129750353401061558044770201622058916745848707052175096478186479247696632103291935065918913404654522157018258630077004471855539867945258255794583799999253984762324459880653261465797705322901158854301493868883615826006180956506616202951554839617256642151055793466349198349391243834824329960729357805546054211504316704916219337176422210004288313923691119943372316277513770705280012012542326162355257397711776377184452387993223742207342305902489012910499698455016927627611571083743168588533166897674915953882973810754868330307827477579148587513653948869143105516229926516876910340411007008352175562040224763885208734869230247176148392604821157988938781560121709797357148971296867197335984828052286392343834897970520194870299849787322046220079505513890043149749850640091729596637065975638519037637229507215140138787340399128919895580525267059662836521500164028425532001354776775267662039180072620312806408942895564636147593146844278403506849287090324251307351152611417995597514009195762086887879684376270441353983797206399926528375750347715965993880443309094530040631613827202524532350189088668641197584730106838577690425481085816081611741576402760433302545466786197155683731679360469789567986920444908206641682374943041245577494169898007349866701658056912894273794652809985757876497171563817177250011368604858005355635917765372403662768192616929739762275289061330770689181282386182866629284713297574926323471685291193367234648268544369461728841214167170814900389918754807657089005574138373744995059550535885523021356409092273184984256307011046047901732158884284612688823886310001484855946978354795399817609858638874059356236124343378183969640436498150009271104577752673441878292480440263868132638423177834766603806314315274987951320690025621106285237317696932492130644180354205071355567995525410712153294664488169965999211558472279028906188104585218998277737182288189376525813424322083025507070598667281125967527416872509934087446682765233235253137836150078479142536865253100990312802025070569763193102001193562158701805050585948665348406695844177809624776901058963186584655293838734264314124367953544043684029914001181207672264949694718864153999735687035590544022560950259720125854671298590521358415692027471136049625947868375213897773777124364936514773062190192577860646890696248572006668018725587449610636322047526283445687609733606576268360781283315985698155925019295777781585401659253918755319035595969343930989719690782313079241081692671703313348703439137324104491308035736241733912500306925595869968274715975981876457975441660751736600346979483965262169282206025421731040955871223342291209218520303260862625748450795279589113032750710975177130529957234904159101877033596509475760212263013153270276165999471691223590095955341704719197946408072083783715063229251121799937590258815529184752066891797781833302996221750841584918180185622745638281235272451799295046712114650054133465663609748477360052305374404374815589358788984785893465755534706772506632595798011656404958690959751395823034970166053271487949292072644495051191683111276080360140830822082765495016773579874116245998799181267591294986617059183647780179656685363094780322240505491059050488162813472108579040457558829111460602712371675537699246686021599194314846455516091968001996551863472386894635098026072877239933277029015321387828333145305317763583507740142956927475500899780258353667488134579889265064723437961045635955373491250628805169317939469960579451097961094503814923273817163596016196349775147769750633799071179595760220481426191146265438843123090985101272987527934807368743994967747723251387466684542718885338154852925777223777292467609320822069152698594299066206260399046175059057400413752971599964940582131264746260983296152883008199316664206408666773218396299017991903922194233424000943886557411464681999340080703579249687227767712143163508926824674546924910849867471737712102833557372443768771177696590361817428651110637147119697352886301842305201848931921256010258036741676091673781062062310389416662764001666049797816510928991145928051647764998237149011606779569418931115143261701362208359068733024692443848914486789571593999078140641295206382102601271108240004983264556298013886570643888176943100915489689762462708831673618060642458291878105873891598519278795452236790964906422417873149518331050958626024098409365503674807134143857987649011560757718977004377384821184224601139092051567513512528083640869364288460703919374816425390327821502440888131048840336570988804683467450842494282519789008464852173474449299219091142963054159779840270798586297875981135187473215297019810073847726810678746763464176704722526955547892710340742965330149326741753420500598801558219108303646274412248419016111380023598102324657735541422534866092527901984817484602582116841731395686766329858037312613038962673914996611559352449267242921222106272545307757211845086217980618211879135713902500686853299741511117130020361230212543532045195827036630402529597270690755451595014329023003999754036857749466845124595451703614050068788554398091985304892073353149678027719990876578124629908658364521107465905937261108136933482574943709277749998840452179632699328816047434176563738809576799624692576181566179548184110271868955247639420647031606740399170807476781368157273133084757473122358506272250973142699809133339994412735430676052766704799373629805939944764004699729892029183237160127202241194818439928522546822053801821020768613479749267023397673377585525746755345960459851397949012970913301794378747083912770258711283224454577470557125005218380651719840912611603717094702855601798036334455738780570546013847889744283003364539281218586340336426489425023677266689522493077206334279965185324337924331916651226129999140359226090244185491535661706179275875547403051744412416351965457828004783899522341071863751007275572391180343148293712816148836114425936796649278555387570893840752213556062012699094581493890751933198542003231004315882732894937256659692193941479995605907392370091145184158019015465994580527641312990987594342533384890971110116059234552442262402844523090095492375804813617290667230813652852646313716891233057392886351597160767658913028153394767332336883202020787192804876385809150048500423724328474920848327719524801489966754613641177918710650932395801349003675967868611533069474144846158167003750865112700909770893231127440861725782817334103426516164014201136305298109508237455057191892391240402013554965172035572749523418807994241418848855611708239406235770991090462243389625198972416773890093115581833900528501599137945869526731696803035557549239522339241435520773991624841239642620320965689171469452300845429222656328611827295886238909961855395781963367070800698337588053944433420289276475969692615815736099121205956500675150671436496120304791307765333527086637298232730170980980020858803942167846158541650858746635484624658268812019565083931789038664625353332827103128674780539273011279491822126779621214413679987043855114452631290984397739768757889701331760270877579422063860390143695494501754065108513361410764738261807135557286029676167008353453513824653299889485281546217051178169723431034729459896066713126556651798744724514493993736705610953009097820185899246796422207061201668243871832152459853568193587496531487736915219150402766918443200297194889104979341466368086272739232067714438281568840296313641840125091991478646895212630436091454383064477020071074859878352606435122975007223028862517975204835482190259719517154832503147826842022688157650896353482013788412918677681658194474377923416949295687264392527856537810200836953223381705565546897712785520887680521135521164468210728542376181907625225802587573531774020456799567762235828720556274731192533141562819648201800335990456408538565707961863390385712612964788198573654207968253066479048892671798833410594391645323623912164229158718785323395937625089355017611380100572814100507999441017114308247991155545023480448605088308756338549549844769528988907664241429808795307366810397598513605447813350731688743886840714313875350881440165683008832812180987428544596706605038641950176596885095654140385470954747637644827756483835771911021239335521203096758932171183144277399873588068887703094680286988809283836045015876439866728223957258092487445225144765147104961042079997198893455769386623688538929786688268099196959546271015863070017940682816237621552905256610769288912487012744585461385112589252340999752199447638012071117346643305363306915972233587949024099170687016281293075817792309038735697636730170377826902238149044942782455083037195970652934309052019590297663388530878352937114468868008975912588588762861311628727012642483751598537727762880209328379976347315459781848762335767463895342008353224612709882091002859665280937260599047435864476896502677192517951167622080690414373286497210103566249126435071727638046088754057056549149035600002184395747340878295870871166502242553807317253847455279772693570298337866321145005697823446220957928050060940321954720637427329062246840282942046521943336974957991708441858077045179651520448242457321215994928953003995911143572481621214136297721190083543659168329221951518108655366178430840435329455928798889735607504060667658792864743609178362556238987480149270100361201631310138875737961920117576537313533678339344421114886973125809764486978165913775442095086293729777902197970695873327511115790004679511152063826774902883488118151527325747465294430944367308486825655933569275577414005077663242471782412330197798289535423311235045782687121525061365753844735893595919667898438157341976231202307407326272575896623247880917973254253191475777269032603809598146625304239960980980110086894955399183069393913715403830290441459200999011377596003164200514542352923668258160833183225432009337829690496546643662813780567254219099655908068117897126041519814137678108312947319030205746309764349260424341044840985117892232788560772610748966572720160620154482253613054347770188102258142546974364562592107491318277454254713711334350773132914916245838016722396188314948922404908673261337306743134289181050681486308767431777460624901194914353087204054047944979339543757521219627583309219323202085229366490037902656008075201187713345845164776496412324089174547633698811943515071311225236054316683411692380842795656777011466362556295451053818962027305753461201881900452735709146661615773461065172750180285060269439664857077029187896252064310381318101044182164205047339767364511786998831819793233238858024770403320154301570875995820697930389877354372291818313240696821823981229462638415061361961480926187714025123818526782916240623351151701205382430372334740074750194073981026676027091563161469471428748224023038820378057490858873998446842186246724717123348854446998695982868647977877669705953940785353244948768251341829058083081739557882862025509443079696203053611696783318292614952998499694296452513293989629238276114637392522040027616663499976762745141809538520255183904377587660752806466322578834970873022081264623516635302716779395682042682830483113840901126414785066612910676969164265087069880176608702787307944171319811065297381605780943323771492186486374430425420431372751413706207737084535948172277517719201813914987148660997734065911944073270478304645725534017523317909713087404073942448406660334342407061522152095726439350282812706025603357237872386753506819748257887116557453997143289738963008682520781956796407601456295336913942130054502411473715118239677309182045319881345495611168104761738328117004151375837535445773806749303990575501902671310416687006020386923070360387170860093684225976415810560554430489256524193679645449853120672409887305231152268173629426410000519384812962715678417153414078117536881581420334784965549213800948167351627029322629935269192620479355969929972426790784895829853867238714496601881945368432449834858768950108517082506719069952080942297466595902266361318804365038201368831563445406512141210710039331307274814646932311314267579437890405346592105800034820019219493114581425814807925921186661931781330078821910583924173236918022672889976789755934847671283669982523758594585235194118856610104400271519207951457265968900699100998305103059184099029950064134512457104061040669834604938066866279001207588195565477483444456077267437210561188858663062107389672313606022437649901921112967747496123357782238292462705484008205115354564348495427128224653189147802306854832382983563624348292036727186817571800937999742154405747763740343073341086142395524091391587825435564060798609861430772046394869071808137701224536194274618359475758102233130474390976428776951442421808173656558236590973468179915570004148111025739117950005886013270504977647521913059698980756411478746918452474560057494359685692304655162485920401665951910854453952999711547531330186497477975180715189094327360046077002153376775121868972654111084509777754598335938282290720695243451368200789299263154480789338899013074607727287509861095569919169121819893802453380851256572945797879311050873325313798127481675875279355130710768226756369415923700075820566201747435470647242004092138476001619766824388143200732323689868744486697860903322028460544921872762582833058639711907398918017938074619275632617653560842807460029740669827561016082782966002247468063579277353946334688968513038848003801674657124400837881354626257424599562943893642691872900936372101018071178530294655771674053206692572769894623881163442421406707386407077007891357186948077834261420868780574860656126645584325929345052540015517760999225880312453716726956508364184874674963923511181617938543956171295829461305986716941849756107564706020810489090207282728356932665464437894442263675407491450479030582563329194492207501839355892151770945127405945546504922532374591385510496385102374172418934738086828510925138571199929336806836709376018992646992691805617966038143006186402473624591504729337611266018455553473811515337665581646087840428342004384366188600708713636525519620803841494212999931188662591704153615776871378706780608984438195295141435371234903114600162345584830222022368963549846416643959129052906979270670274094138609794452749327755022693956016688936483742180154356816219291693725770781101489855919348942175820238386222498013195533637091955507451458832979064748700377760795783009669920176885030547244306459745522242601155799497823975292032722808168951966397013918899422704428513035585219333400664599085396352789470911459986101131255261347342213476784897055754798530470002217095144261690975674144852718473347080445752977120569272208084116587944855644581413779738117688354342350975348103006814855093983877114178880397455009426328198564451696245212995054347081351129317699433116133966288717336656435621635127968881599585311139585971875663748795219203450501614038178017824366378735361644515443777012628415328455136684266528335601606820450923296995424604770365670904064054445081909644968075153572797708943033237317618670553762660947296392053536992363444110236011495007990855691542476860139264999016723638811846664632134212132995559761556940319089739172008271327358244640594656301933281576703712773335709089386687278567240415125706772391202111535561834035671003089786535180283189939309034058602363559778023432357585850094230619371054662607677863829886558230323701103910922330007678381478508456462156591909261389058501098579906119254577268456565813274246756908675327283680063542975848403519392707351216723029451498856946745676749762366448540220385424846868387938625036483170475778500998227936658031065591900390188993312231816521903949982289037301924923868295585487215637220833748191710746769295407405145708307465781414042815665083127067167656365677555778250349672943119563939873188721909659936172841799558853966195959067955801505046028928147024685557569043716593868126276863130849530021524691667047744169786627821039112456039349016422714651869001819556796976973728809462964560671403631788597852469380244576631038635167959692487871376034631582221180495633064308103071472189436696066279659173118052152801423009901733617118742112000438538663959982171249895699877174608103327930192015610169697932233914825189399581152847320632104418574730935792214143841999841675685080645161000914233105281158328271935951386591299227769323467322564303013715278931131486395942779316587606330279999528480242130246672373166237682564436754996420266181165782500001187839741069620957594041173267347888777856380831139225581005176571651100140325643825792253634892988872526274032585922352103757654874041629560580264081103945870715998458909920256526012737957837634845986115779028162229127939629471989109207626003917052512172421905314998550260739694585524420873790800351370716029272057582611738559118488427363553308917466991844921443510260922439904616567962273202245480751790367697491412800097308024055664167893736139678352070356227990174226788415727257154288887373272979702233763646314187355506185726819514938520945148326360047079748569795096184312934948620896130515411155058053112385879412111664531730582167477778471617816274285870289798919856993326201405379000065085056860301570032901472283766749479285763567906833873051493784934932767362179433472771250478824699291007904231949040819081911189070814858751439841896337464922337424550538790930061065687518245324723226949153305765343573111821767869850564864720655062548955257995985584623797938136613209343904495425523618904767949772924661173522518888225420818799559173385803416353714098263074416235540607440654441848676864146257214621323023636031980457763946641145317461202124323219946412628740250515252586666854740186481681331774009135628421797047536115677180375679687385935651413411538175600144411892961872515644204074314537358957087194992201395068949480578527433547912487030642256869598079582069121903448060829294668337784464023966986091288161969137745920155547699899686170153863064269122723476355889495264999374399516838102391200838933675067299377183273537916361352663034648946320161510293870649380855723581268520769722105848314282960515974423760170562621136785338751766867797573549301007789054270599522619867436953919867662562557228061289126607008251969856545902137463269631614688504687577249008703017716137482299792645261477925596604804859665252228264252270404969928937785408132277346389283484096275901444304965096809411720150309988360159314103536022547243746313460279357303235205684996272262205361194736803344365726731762771144290382751577428433107122090816101310593195891691072677660893908181151492446959392228004981313575699933053117222368645948987644790163856938374411552491411063952590259429675236533495415085533156116267956586195252136104391758672143350475800343278562462580148232392243310922838613761288270254911570326744729065837260696459266739516510991220651882323785643135419101363909318028995655568158850881136132281366638585046285843618579467240442212370727879651849906165836045869880505928066155372552601188611169270802671244141680449808974240304193327425701631659416419284179832597990711428609680227220260785924991413919393849133171082106417228228700970285809150208216660905795545866207163172591548302252919905689644106984877698396564499663318175041420931493266358291672058336398467126669840486575420548759101268031891217737107549212813498663612313975329357195361638126981212512363083584535555689212337604265005470201306345553073063812402851715307881881875294338473700875217261558697209183547695828266764873377206902648384267228728695002583350567948969049219722841863252309190115353957958261673690233802393177062780740696650312196860058517411881250190314311320906621266887228136014062448103340526368846130408883084717078163069326152928560812802946186394325782044944443912675675547227628869760403116644302020452941275151381649983957703313124117403544534445780367024836966966877375949117760398595936428177872076971818014076397410205855222094475819938500230431232507884722853764211968699157346408578041221867257925223940497884968864141677720683358494743118537881242916104069654407738067016426867605122947048840575441937575189176003756224457651946893301787726229176348336961336452672775547133090765047410521646890071224374606460587985808923821871238669598684601585983094721657081748832597967829287280381540978007913012734316819033633154473490330733191315702006254032790342652266680771665420151172765499312387780910101139886205027169511933537051410045244787362485396188401191560790416095018098609562955238493991092277751655012621187321808488574192835519581402218199190592111508659395049409816397188632460890770959126949076608773569304919824369077133951266349647674212564693193799884462248513042170006374592308855845223904075437210670710743181307440805650050445389103147780595067374264733930369895712903020807697801555811259797684091138316793586971609720104184545998169439667725283919516458264744526602942144455643297288873301665954029245263101585506497376352373284446563622485020982244311248315730643502788689331879419380507516701099919742196920625161464712296550730296569727865829116822331312476379006556696073534381128951038837282346402647952818459567254173358866445830797093685374188772489979517620569875105550411641398176589603208288198428986381772478429800985759720946219230499856990956410231015536393455104540571870284679049083908018411227516478317795178552911462322922138979252035288685884824088364578875122212691507520790957622273713776590913332991850065752828890147128775816557408193390483626876252431707179976913839478208791167546570215288094593958659479327068114427410078845030153376971897104838985320076163447700767609963890193227136595055760788259819281963865166488707158498446346754500651252143566177839412204826383876274313871005122992763581125571728405761680338896094089015938602788955985891697729968511396573613906359983913592741682045251010973537335222135848776334986052524431842525664463270773664196847380077211434412490765431483626526664236804307661302617137142703744838159908014053061825231266454745799740396147770489914224812870864546713585753073761423487951762795333824102487932166575802786318278699184413355079381736293573526978843212190355164868964278491457798314227361769512912634287347568186465419784401123126021620777898525533354760897671270452488765762008705795935407524658168441216815755672009391964327081994494702769768815295514500223330388000899042960611046230932951425227194553136462942813167173021647786133123566926811756034933832751385440794377422301893008293549693114654916185672943658465759466925778606140178448381482378225703975081224465585963673528445701107584757953146393959675391712552128788743235789667539527257949924588871512072557721144577194673394146279840782808108634621469677132878663372420010402807091788578961665450835592654543117588783665567303593650609747086008045823917459052560283190934290508311954312911975115028707713511180053587784324852718526366416360620710142553693021161122047303392222861851703146699945050586909337991456521218911961612853758631819281348167201574428974556680157660025931167076732207521363814429330330620764013460960115613221794378675137937193418063021748588204208927441851537420463540279534615966668579665835041900151803297691217648088048883765423138955015052276246194458728748216993023275824743052874707765483685749722881497084984470971011547145665291240917232929040475558469234257390163673406068542291102964847607290581180798069252435124892322601382791485517507131435642198604650455931688270091057773975916682658767707481373261603858286621331803059492190817884443871730138602716030115211764812471219379937128152425607344047816562671703651703531698967435065369668453860909615981598733309273614054714379424226275320315075946761539107944929136113856628406986791027371439084869307635923902927463908439275045292983502098105383307486371881263486958325904917639412074107178678014633764166493858207580890650571549800139152162982455898335704759842367427290197628532868378918700524820467328001127011380197749482479526541277504957439005261800473026418735794604629106623394134056814496256924867426940914024410987869980678110201282456161772963442332377718742209729420253640050430367548613747607582995550914486173732954645895252465816187999750732099845540646611055367467977868864275927967510439952127479818972805214977306582707087997476820927975946541604737316948294698515818527846237136836859733062531545318356854095566836412505286402509942789163648359464842925950769474916886744178339558613165089265114542255942389899373109637671320186768111344743601781223454920593226415439271095623315833343496558425565270195923011447861728638982787642257966200001628660629462562068504785583824787754872977597533593225556309968350827032178555918282417205741050391048793702602515947761975551372863879671485074036925617388856683291677767418787649541366112142081283701346079772741730808273013842741757997730734107906369161379548493425780352976898188306703742279840994160693925062629440288680653461906103216602909884918654846574818755078298971716868105177930287113926993367543897569435194462597308054466131237750608885534506753066075740390605761959940064332644203140365061213636278445594509612903664750869028315778571843374636209140907442923037569766408083723876708755240079883047001887381701985209629945811162002628985744282693892480991500136745321208201251552459638166321375288121764638003971212192172856617992782947956886048658436397901137749295664871464354097761863969180776829971938240298306983005063139565214972701127329283065629784842129407231767133331373782841251968377916663452052131132300752726161146614397621763508809327793043795504566446221346965405600924953661593366685182397923907177245801808948257003603875361816631825780140629190734095741398428703706900194329437247595147934076556256788817970471117781521974157308230727928237898610355967554061971431125203727343987979060345123017040913342560749775053423093620708599839726114037578162842088112607592454290343401654512473942226465066407097885364224939174387306506031200122593773123646552755995505143535278240962890298463339853552385002838893929939153826076198863258674460720891976180576611304969683204869268466156849443676531008050137935626073563172378303562089100280671990330325140306392195664631916957022248724167131067415405691031940132661586782992438234821531426528948765575157691747247625723415452830432835382498605138950584857088125749588271822882845780032603920193069450050604418658557718344373391638586725871915717701363985839169735736432496911980286308522493798398538436761032081656429794545439884707527905562012615006669398087754747986449862781789824302553923572604708542847637009593894262106232322374933453217644846295331762125595989455296772455236827080569551357675094767080308538267569420561481542732642863703804221412409798471859620523310071874102495459430758986318029508202422412566280235012442478615916690719922774881121600350192928920951011212318617573739629561267613281859876587145560438770152112968177180646875092714696718712282682167934166003821709332419677999561114085718140027865478251897684438767933171983525903380745131018950586824056343905781963595614155107632114557381915864379697028040436721415019587746784257293779409085683601342290726121324180262025990011601622977630766589624394249910318744283475547732947848958791169214735086003679964176624932993671771680521588094935319354163701867735230854138292420760144239387420452321256154063733099614546510322842325256013798067443280963400404638785135555583261427914471523602232324632734123100835342470871407389147603117603796270441476476340853870650137668012178914568877634405278205000607489973814798154739342971019606532474848987283307309565503828254525897363922203576349497852531847520605895028444954161372064766639729676877290906032566340907074391537426991856856376296614707824366864258972681220617658270877978051012555277005551893397515904727588759399352797742506366173548994736344104467615105316382610991129101671509891284798135235323288359385089565607259874738865657348475565175376160820481002548588579640605890678930660647427034524404332941511068095171582403263435038998968936449315544766843616222276682870079091569871780321829491204380531197974583276058821656235793748578003323707893877309565176274149238360524833862262821769169886613442479653092693587814792426975518996839979355137222895504412429723155287922671329910190124046271122230824087475777350428191141819555951817519740011609274271237519211242430061086963184792222439042120427760890753211267008813434989827988563141532475036237255787739065244097782321902021888928556198050376458570449203727759891949669023762754633719257718541267672256882564906211292518853069615151818080061564032067991357861848072717588484706481736860774544291150271446254397803308923334122664216009149063656967872040716515410516351968537410834119094406253515453892018074831829068390165030222759637666182251158669975044086754162574367995374899156993599902996901261688547113672108886403198082251871960279945727518481983056794158293412324121870486412751731070507616020987923247353122029788909171661888167235697178264530757150660407546804877341574971881266021857759613426637493299559810320664774297438576327238365677318788689820020036434577795873175022865891038729377880655879208410230431119750022326910832826162162637285666591412184067426409146209576414988804609972103881512795361457619818991953313200193826014359805435103426167108263994082867001652039714191260269300173148874774760707536049079303192591379177020388478713544574244025774122036527682670479614991694179768426641025966877878034631452128250677897344663937632393835079208508832777496497174952495283803982107136664371118454018373126903007439706412498697131588930305554502263152245995622484703060635762330720797066378626349939251656013836785290599932691976836228602764550386231312596783091283279106954883491544152446034429475139558752931225832434959307027019635541853518692412250251007909084666420809011128613529410935721775393805620992481758161145922304314490951358958874446825935584658096289346127856716933425660848469247947827972747834373642560698897586346335754641037997320467083841220396313564397407483087280717653676275655986807976109522889993045334661116271330329427508623542929988717861737262299233373666568883634703444929770131598374606706100813149498784745618502817803566375094824646290047273529533529422863229568655594724534061887326506555316276508748442276849821224712957422229386098266100921810842839789225205262863398050319111402618312742847344574908341170715242134202927983310452274101145700793775762524123805248931541722158542318129847710458756980382290065460651320248553947401658211899027735899400419460361831254191242759413401959406048923243358639889277211950590335850858719077695242159221475480705057127445376952840525051613983962991019793451531464381046603321474908394538319974439055925630826110642487179482385057089290761852186233402791801788219560919822399098896279523708127202668391538797107478606788467046222967554694660526063194309861376365100407582662772626606855814477323959416399333113609328958792667586781106303075857115117872453012704308501874425570997923646989887160141400303339919891979845174837559472070243118760845060055717403169820116587206562467648745724485017665733400099754734247248876792418333113034624427743081448860910092115290954139237563823603988864905998516369330815645397834266543715189914854520116799469816728561440706745561934053019703384179676585065326988638681558548015934228482060970191022553937446839090972076810043994876678111496587815728988610421236928683110392292021099423660224854361790516859567431282114331631120597835940201268288676244521744179863127674397324469756472434161437187448350113889840879271739326020985614087516376194880656058259764176632270130852316963378748003372037070997411655839589114958116073139702919663983407771664397828310397692553891104156774453307644496420098349323869637409607604189727776297863041404247528837374317819362788691654082163361034432751678983073223915494059215353575596797552840656418016019402597588453608368626129756190228667420929892427297819828101130073869214160184383022959215819353317830615885259170933290991058972681338601240473141708814255093681710279112488658757420527312459250045930433562387961245984267668384161227822556589211802626575063295731504337477339186538674344365296250302466287674950626748839162309796859095559994874372671147956064904989827350521984998304952869649255369443009813416826477720955012775255473603690323644959425246152774536425940947679999080032962087388080446634167494291931765818496508986690233455099235628260894566029583150089954787870549464382578965569333348255126330452808558799734781499555982071412829020195152666608474797261707087061724835175238879881390962130843810754068411198472787018133208360556842136160100011705381677660065302014368695256112146863458452140014508257917806710748698300960825862282681808381291542310726075788820006858199993251671955750345005236116240801983582788544016314778015357973322287421604573961822902411947658723100928907063467424096445344774635200021398206238638697661698292427395306846579351638557701586561647518412983562030911038246548633453353847574375782770715681154284435253338465030025850653659263421528929640812505550617254196126187915866588656638555709762762296699142619673701536328480099233657379670080598990052695453820334181586798692363111922071137913663228251460519686394061793348728159947019158428092899331054915787910019607398245507725325111954071211224927614213358539905033114147133955954737143232984116999919427489040419235242215009968917055942278701877714363350743708419366225222704739114357109809682956465511142701138155446099518075152811550174295075956436785420098954487703864797921191733311430121736792872604387751042671403912592166392003441893140496932969070344910899965705094899614145963609892726967335782936607691313167659404982879724351741899645048420433780251128955866859149520106912300295193351088717518597745535198244908403840571200086491438287680483575057007958897359660871006762920107763643208477781130805436117547655488000827456177444048446528460674975403043705718740289692268172551766213787621759694651994543709031207885955380868851423584367393226103508781983439989099222210514315216736926815417469136294426049218683677069600008489718132815196362791225879563098948866014484482155353136192633718020830961346110366731048380532745529541025634243746435318689192608487114647184256727103099767195860811167184046964667228291508462625543706402600161630444987709386432700691317496961181248752645816122113602987060321569019921134662579713929160619050062329349485083332304935931027783151840359812513175103436776947957521284059492923593258796409380004680287388965559661845221727362779606489711672833405713125635251591033986111638105646124392261033312072327639921147270615249362871680050518633943417942322751302275653634654753261178582755799852309781592464671192970743282176395555925470298030698037448469834931991059374854105181061215314814223842172961160315286856577904525823569975931187855094847022625321255315867967416631220111422995836197813742241639392153759159369521143335429468247149477244471337083680915637465500074590029438428975794998647671579393334062192752433958664816923259699355994772519679151997669779078033520030466668240694557565825325973471160159406926922040063384603848876001148772437409005798098443843691200225859571427361538083587011302492137314220952660524765084466371801586810070565106156329037287434521346572629136747634819420711120497364665705195612015687481484307375653424348135511005738530966138641682406942025687748427481292348914640589377765603855654699977403036234209927666231495638572748916913281311071305784145521399327834775648196982025595934823849161419967035840972666827234340542116337849633170565282221534467303491662768913993264634137991487041634832827789118352918891125017327154582827728628123624084877491099710164262772950755815666021636909801473766243748970080120336182595198330742666595357608890095725443918533582348011278715510805558622420179230123716438541496986891228163040457409914288766390950379551411751821049640425290079563316750795466049330974406585055998353007827234019962408122907634177948393255112726306443767723289425308358987514751328342883718800191224444485811980209816821378460566568127092285811787486896534633119325249539204335432062235134460514940672933346159185573979205021690882928762161418011187564983883852054562527211436776473118633085044193250396175676217879226585212182512576857044302247943967833667604694271748054633085459079939038363179071967304067065990751744135856869606351292229507345485605215996813119960096158342226769917564098913931572566630583216807067249800345286091395653928418267363750234930562439798136396159160479612511429685273426062829491966557045276828772615529732076739478476325083266583779320985353199797512922520435470439421431212124892136412554230241718897540027826153104439211360663631232740809724502582547192255283793074500069244330042775568252229793789366774769578006240168819663033013979736143601712356228983841420691785607794242333647327570667415946697081787648715175207810916370301742278556019474233850226683278749829742375814342954482454340906062804194904390801479026806986680401031105374142590917810925735098144356450489237070055793890045006129763364562568252366207717054699450154684890074370491396720920060866949933505028923601275668235471381030879869893415329313729665983112896301563767846655731366829798218895591725035683445635559986207013399901545537346208069305985725594212922369162905689271861107993083353757400517620364151293667043379323958870121709487700668021024275189238687134120469861603761231915809407968921311768077722174678890154897961386062760533749384564756684487978495186667888178658076863077847167707797494488385526668223210719617604189944955435770000334068493688072039376019989603165360190645826014809442071909941070534173737658691648928671495311610708823516869362699579748521483990319193110660750733222653164565062273386469109884685796153128295926976088910896708964695420550430305633776143647820724148338235121214724323731531029639858141398020115771138049495757179386341896900299733305880603115234253632485216245814357993890843858661274391817468944170420538785882589110413316677801116416326047245199365137596744657905350093454086753292609777837414535550574106975449179717041352913086527575821170143844238967224610239954267940551341566571557238650279734788724109017950556436801343829238199665553605588173882878001152365472391546390506599583367675046640732371542987682520262260090436008989392887373483279218768525358331058512568032473429621945775078449098297132928104193982068452552584940262600480568565159098129878608455532665499134819495963684732525886346141499390266462369957054069054941293711490953773130669820898785895694643692401436112566719415166103958700475247999834016159495233696037707575314498659202722387559866306015402709414248427020261077586717834622433950911091286785606659949101207955688949600983248409423005528547401177256029799511076862182075183520990475538496988689688134194238065463546972503318750420937363245615125763704292211285547207019638877686165380929971335329880455894165165735923881916726636836370748275257157612773144813356022184033848869991576541539990009085593152033131692100646251062704096168215536503643849039335341188238959921431071885966835935002002446031275731770140976096126066853184018061970254117493698677762617501518643630135473576021706395881518645905424243520103372296026563757120335321496263657092743883046947670539878021318988857853367188698593847549648822161626516598096306680847449414178911124315477795008315138405380885277484935641310571631095092767518380500304386406007349528883889382622985543730801411849647803184862141575599387951844627811740634110925152268423110232412530661171101509584165596453260536352152258953903302786690111312031826688942279931207409577193284844702830917350903656626996003357239247211468651807652947000058630704560679547120793802686978804150372847580634161855640959396549770139008152152896159669495503613046271840821737481529979530151410755222865696339804192069910661731959452795244940458294765113939941685419792689632469708616106734300571191241587037972001492270539521611670247463641226647380781296588521965415684840338997847314822248539603398183147429161883010876306626757921235096970148714301439677491859319225757383502575719381177863183665210845550654254272478334728494564023483611386622013293890911460183866495217972676833070611487335260066327119596548034918223420920040992163425507152036206575875940267632719295950031733401636213916376833445328635057883650562833578353719271626091659295644361282058395585640753411477198269247968362004541444687213119148572369970181571248212557158466934803419474508955921224204285082865134320487932672178190189849086601943119051865591222160586490262597855102021149718702604107289737244465945353617620983103410581528049962628015291326475026198409727119125253946228745562470368319227953965022387437409499482673472377548998646012885241696428050089794156519493049621840617509327287728650546879569689523124222548209729135142473723625434969835199875283191836397990967555329120949118795504992070967432539240406032190951800204069750822590974299909523160913430485233783807219359247633937193275917919572974999021538570775587281870302189000941993610540350458970933058311643762910835076797999938790322590806869138761103098879416863504790271569267653597138117073629743153421775163796465312140454973939629292902044409027905454000041694825064738051529454381724338300566654252076529801051041286346521699617537745121039131280355766776025566703599131144172310337339236466182108660450282183533763580817889932060531632280596729431232627490404422885051776600195685195065629940452263974516229772358982349504326423325828033269675083391013036266758555932413750380448785916649083368395507539411276069551430280638867647647880014211678932236941536219166389743861100229966881963390837257547380712694739599314006144249888669069005815766026166773170786135392503575053032279524205218731954969494763328133463980514474642122668874549955611789284104199685408769107822797230322174690304855101672210700538163475600669211061134930009811159383935023232677359664484847126873619517712867787471327290953736579164590866259078417194168415297368050870477668456203692277008889957903900836269964464194992745124131216784796875939324725110155288311998621088537957539766560451379633960044379417846156688852032997306438513409740408945256816135135003702026414884104510656498429104970029522874328957225407010130667093303672314949297921885958133616996347210620404063756697857266679407443607681885100385131918844657187365719774939577427150364395713100626267060567684097312099764723961643311131447535310250947589756039585507502282881722652877156093101142054874903475049904639362713000333314294413313112160989267604903735279121315415780319056781261907920238537049234845950027033537180248260022506256303707191955441255497426382374935260916410953548637537366937580523911298060127005985303377218596278947371773607716978748855474154537978264928817831097681456957485598792209503318279795414006834521203366602082400350038220476532883379268478757819035437085167108108582824922616739709105086131143891698114333258911894804947923403527157825334673981128444486911227814886561865241304906340093317390313941505752231401071508467729866641017358251544164070317775995547419929783805047672085074011672433931211866582293425899971035584818481687195151747906508309378258397744912813687066345897019591728469857602552444762187592149102570394030156234445627979949519051085691502339089293387088890845638228870620999302323136505104906501039271123731976366531950941814695871248673488226608887067405863890881148546857263638123148066411408890348468059699516243891264757834989964456271832202122119959755440636216411027274427955048682140694134782161772082352188140264756678541716615606153172528560566068513494433789872153790681955532985689603981411924778265517043692256064860864261545988081890679359199624343305002333724116707818897627089376292845386451202684213342627611342918717701947602234714673729501007364649889453284171230909559559925528212898611078768107155901603932265121193522341745224341977751548999556086691525527114931761331105825528583925761838424424638559447411705818638133729485279614628556021887228636997827691152509520651810520159301159932338017736360085007739793931141166835279118148992268449340239867181602030737185103826842948797131054456787943442119562623071855801584674038643514420884714991137843076489443907178874503550020462789954835836498313617003074256454287259074827768718063938247550010544632225165485225299618890056972518633593614227661654543796150090565584212937088953893034130544767943815715814152041432530592637603177291070779522740173411017214102571063921857859992143721915632081998240447722738843119010623488454930534849542129730424314163517533053261149338015843557747347074820002106892014553029087268852615352779416654075151649515763911548996271847034010465275115521966998706132480582523367040244263136647639271346399355620522710472218765238287274719184311056411380373924653951829690214069727794359826028187751883940093868440317251416186235675559355670761228044440244599149341917715478834970788645109859600653730731272443839906680053313498462003035610695878161034366582378325681836656529286140397418855500084075935041776844378681277455412002053128083062293730626075597499170234608206000884999479620333133346406861731156755513361760438011734181476163516851320656338585713432764954672169073781728736403906095716789834749605018056590382431174881552446367016380671191047575344649441933281297422274740258343513698517776664115953752636940391498086162725998098925825786839236158873214130652976118414884739881503479039400495661623540419866521914335710124075793035313935560364241791689997711608772871750141064529023653527788966022619971793656476773398691332915949285683386171840051125254287865787861417588563547270977807960144678147138341172661764707835928239585839236928245166863330949664235710074726665687340543481284779408964851773916579468465117531840123637318003476163269198506171267294807034089538604630682376888626703599852184571191313560394902242128404693898615590523457835888542360845328284656485798847404605085119441016803360392173003986309223337865710898311426006368587191504299814570354355261968643842207206764582136181725415047937510376585697562753928972540521624845103080155552138157937466417894266740737807700492011890605313265772325219580361768908873313793010785642564914257579299498348065783592743424753892000439533459819524054609444682421710340309321630443631448947632631939145443285588797563014801776821907586986617678368755742704528693822317283491695415966694710471625864919445941790666900588760991309293563968356290784750928217037547186820405455566756892666818934522210114215343438172938252127518590531978243240845917985243430896788332278049688903875394433618992439464236698813873367968036037966066780309481053396651658227774943089066299495058308987555305806847479537668984561670082027675892148797245462212915018920987645365327476736307964472930191297456445064659945673980855380461134462891217819464509337149967628256604172301284578789195403968629023796519001637021485351963392268839973732747936921433390758522544373715732758966298523452954092386922939992723626727667110615894849055721159469515135234927984396547446224881344090797345023466887421314531150272832527815846116586080985143362150444622515962685532997018207495097035969176843316171398429237350565971144294712644383315841238748121655761444463500958936450632374523702197472788663730438039086765516298197870126974546712781409825326549530674364656412970056996345560613374155179113066072799463184266478007842331931998241878245606819512042272325077944475382291856481735621044892235939428772796236340953860527132190545458722558981222294668015546544782544686585232346210250286170818379099808888948938837035655960167553163268078229181289222246994000419997007254735894531513368569238704732485723646803608073282973518949681504030614045552679740474439053725120698367731650054635058737597619170780838075309755789039764914739972194659297745757510086027330816242074878306335006242154302754134054136059985306486142443124653590256084625432344756026445608078785506191064029553251738948538900553265879084469052255917391866430916983075826807688194158400631527756359596442932900402819368078986674269109432820713207099415023478366715805408398827217333806050464708510997683350087117582197832094158991757775861231057573117706190134653359763006973742340119716185423620875140997105886230541094271956038808355748402763207581218873869671055369318911972820053602416186512245134062497793938135436259133660762935843117292424724618327633626173680379374118635043703984182674753352715028965887508364578046323657548613364121780163158586877928827454958559676240876980229654154185622235171007410089368053203186334745138829644037269701646922671724519787819601382466682997393720458134341300145277755442427852673266738171034085613578172055627577864369230587429723511389957721701579449196650893573774832953104311375211356450678411113753124606225092715810802927036843913822272967320123072246147217546158526323379977674006394152585745132031270705932283286934621957956444724832465906650317469629180779993709034169567100629774403275765014218686655981412343569037226433786765970311781180456125212204828824569569684165579695516553703033207715583807909620080217807508662737246608303076904088654072078634845642022733289733736888981992609657184288051987619915077571121094458295917168475978615677302012190406289340035758283888287705220711813069103642947256875071623581016431657256711248480158415242362305386548412072514599127742843557232589774644092192281719433387970599601936669009009441618615203598711907863214332715049953937369986471096316911193329112919801492305523072388065521388623887062134074801613617657085623534065427173705231638081888596046145606676296910383555675385275530779026687236234174399423568326040936356294361969190751492605431815357539563425671348341057741411109500297703028246018195402134657938440451428384161267112814908925076928078964316347601350241702777539487901416323347621042987360337707761265836632377094530378211518001991799286031301803850726724857774205207932448954801285752897130652328018038608016172796166013727108001150377922620343198759624034363653375385319071319289295368196489365158717992590425064481180929550771730749202094002009037080213090102901862866581747435703578442764416052547593173072574057404750761507598989984461216566648477748926294349893851834843216394156582484065003841058178700511480533484010903253245871990210438520066825269595950665945897503479275123588377695295748936245527938303863589916988915017743852864409121255011104315896484072841100509158875444316159057890796171567078647214705227019555051080935093623774166070186310481918994648738361897119217358470358441302469519185147758814163490752551801829421897699441278506766306628841801770665347955778490674608639329808178350362912145279384060306547803508199443202707127119557888343552793577892379135459973504685662653741861356801430552135581164041940824305324469289313390797414829901985080680920051943669101932289883572772296641846698755994607223640906504779758114666875434124379240997769436089932150174864005747313158605243429337131608405982450531304702894878959416176141176517448577935994534868001845308061403080979206116695859446527103473098999707456794607786815462627804768509382809554751505137096901893155696894762859287203647060421219788140626564724340099435691643226351729116810136591308026819477142352993520029505240631092455737379476383943067547035461374881023878786651893258287774410103804733729852436561837561275797599497116775317810542280760461100629885357411970440356571708025483721366964695963473847274653527715790636320700011100066013904909574093781726327908067878533678557360792946117926664179928654998201143867443455530226239926072990702420992935847139254359862760718756171840283894088570085652014714558048711133483045207907047649707798828123237893069360021549655305389603576032489705401237273118534688209438048785467226757585384603097112311468522967788660066675118262591654558772341230566009310019228368498157108199563473488866410669678409032982068394749867446513048298027656866676990965716254394213394385565161606912853132612992380105025529624387349818918234922630363865127086112437303229076647863484887313120738366237246354305567474524223979205449398823148131719006902130115162827619331540049561755740234546231650685963980813444472046527037984229525804229825590838703627517613152852717680804133774262952428079589302127174228273521692511043526394250895179271200176184428495116658256191830217643149107805533625527109543799750970578232226144668569288644578193109647542010367711174434450107045946366120233533768150258874214076841750679922818218736584637339980702826780279589834563087567283211065157454285084443245711882270687840690961030360735087972520700804084059431979732158490474319213389772104446614684414188271665366456145118109961544302670930901949274011387578671547745376891837736040204849762692940154681489427313942377129590638235050282165513123835853666496153761681165749090368730311218853323584309655329962558682696416574677302187953607772800854185267311169629649801964567670880830639002383855382488125451817713499524464188644143997339848425621555132809688652991539909151482238115258808894976728887207592294636071732892765227859149861529277992091504492553261224224779647336414568693960572758326952665661077797376123158320834891579806672742304577432623123789346632509499517544758059342990507303044489387453585771656201381931945494992086067169135631582577612809679626113771510600958877673235972678471774936035051966723385432570987058486897126416075153605840110790056113610585260882731571662794033373250581507656620068776132032036873557392180814474127012898057106814162293467729554192404963068160519122601097517866802712345603271329672707507650641235730778952660508984013848742017024985306204235619459347071648547652956556735225860572196959253870587040042953719210419309696653172512035920985694555967558865216511313971740760341375195727913915643856927785691886179036895560345128441757746345286082767100119386829879633512350769648750140925242752094898751014756562473908787760250923349274990910490191636607442604072199686223523104134083561744481478805410243504652857432720222172575441798864413085082272904306527365056329292601502703886968144738961801613170656716360279857743725587607659173746137784779205055811068641186501904470989281677045655450227974630558263881319371752880473577624029091658447270314147982845754987702490755462731790818222514767602359876830332416216967625681063231555561106520480133900385956725071455305003629146742889601721806151530951481290236852358790448624676941861553581039125235372993566814293632892813643911031130643384803093496645542617162186406463474679597558966747864606874691031162943505956483569118202949279301903742508058548039661458245239131165614230514063727045153146814482523138868693572167647970377258576240172373671097745380574955768152831408366501606618269302790300635284510785301095839408064769522288566618067019602901075997475300736891026626875075578307209656296038235128757272352657340006119696077167000867733638927659207278856343987308324126883542229858911019250655452363639510084617139864182101930991152352191062383406833680573968164035791057611839798646171347425972835829482597788792902707213844097080299937236831245010003194106697942760025104131044159825586420571886249433778287453911039749701618677944371364627010588543619385121105414540679603990092310587061326534336563624397066906379123655881284685669349132573205221870695346352089598996709679995772037579671521024564982909761778380646141143772175688934902278906341286260342144747608233774479357593898684408176940441158664126784816245598390293772912158210622613859788298603160035378356854788285864457972699989174765746152369414323646152657858132796803775975524703850395809731252096988002661260503764729572659667436122921482616496564499693720417260456388504770406869608959423752919660083832138961739389355638583378054157445587796643708212468876031313348358277237277988945481637610958472826743277604023441966075741010571436968549607669217464021402075748401999838844207982054203939398680418864341946267015790018178302541023176495339324544706141364973183159026656527003787554323078101579391777592977070561775354641460712342446568922822246239934280967241764089513254246825596395232381876375037852832373721817555272342620647228930591244805604740076306634285170462519844424242190076010097233142086883484391882899391407578544031150867675549400006150646154262275036876415867209215611724783839704861060858024440210266050161649369596212207168352244937517964283241196859931542039909788298929836879714279638495642109151735653795702045088091858363667696443978030617978472910720215887037572461009887630163932850754238477280639669277236363082836623719977473617284802931604959859523874685111612954603177203582289201454385746215720371792546310643701216824386886964819954451818315892221333556278183730758987363939584843045305844582714163353912960434599133247320567120481023384797822369368441624955642342940756900602681915921369244928416587046335442560726627012263691518722873362736154187149597654910013987418941566495745658359931148653034249432183414740381736006676600628049054795823800293970091370621979879671623605830086257751754392776764385970776493664164938073389222956288340080480445675156896566663621949935767009172458986001129189577203269451514355613834775458703241749543225946162867714270735945362736309627812342646714621845917676238585157480719911206135818734088528450628812330142935070248023969293072025736681892335346525820150517762847986488862531080256982848143143553186008216291424816870783346775514528748846709647733569800181913790830551517544922696087146021207122326757064909307060678759614524870208564699216249586884634080554407480585386864898199635073358848617090167431927143802295327651578725446013325581668215549285793043679281613080440863652571175355003673342262304064251779906297447741046295422170565172781952825756023691904827647176742867984136772725693443976850140985693365115869201035042389348994487318114205108712943105383582291619486685045752640788093807405693325917017144398515974311665609151016339691618246517666160111662728339996499229729015819840690219341215164496105282951744503660778204487555946534096668994189577002362048563365486225004868023676222587886292662532816728465173622535984711337899791050098696864315834730873113537909085425001364984296325019225813074773595778323953168972840910028426197222977467963911325422723024558106394802051628703319215769537369854882900896671835960455233039041265425494468955091231491096875771552781341916416670238614738092828328700490467534254135035773561086912629544419047046616422931427246819120291707439201481874000576634567363554071623698260473393019974164480354708542889611956731899331627270440518522415341913245741031302172175723840079899718634074544134409848052196533461442800795804811156167461801003761202848795099454218245019109932827530151781985627373437976146894046137369955605914788215048007450963625236821764286448990896094161437484198185468427617526144670669444145090902114344094263095232324028806702666074683414331281361512989099811333485941635180133304069478537143506480199135030667130471557364363217843605134128382835096399609084972764402003473670287974695782400053126104192851008653522443428142811736730530425065488956010830815823595847543534109075116506012782095457661424875752598081596819123099171419238960028689013786606232862335153565950536578138536132298258735067836869229868213899656036652783151721952647961021568674633390861093249583637183180598101618653234102462201737833654856455732349862143141410989953171079284566926182385147339262401721016834772203702351272534752636545628616756575324625929231735189531719324777092329260470789387688315257881741918749836282363030964118162043115890930783225489252348766701237416521685016868891907912164334920543068694820481573355214473152092244290383194455844235520333542687611706213366289110380121067673357641859202925693117526983153338220470904452850727679032211893477265993207507922293144036904170961961691470117745953322678386512979287904880705756908365216830098679820880018481399430319918982230355159213526762274424773709607307557532971257204648255472990601056587118642371084315159475693935460897912991164482589785802588782589310482011711885725515058829574131474130962323757841017705286626805458720833828369982959703464884349433679687875989057695399605988319302166286538226064021015522027077774637344203711724406755397357060172736198349874882490789964525988832949874683618818603513474804711540554865704865880371666690482866666123460409395668112429107284166134262395187896835093021829363561585543267059426185142341781257587609259056466163586918225959631568435143692195596582028194089817174293948022111201591726352423270327884966987726297698433988702211027505275629459828988035928896979954782872492267850197695091977598288325995995352817946388999639316072615091085869357575365866788750932014863110683677146056198145627544655584217409030997960984244591574293609092630719353586030123248207469094907801377893521848426617839462986427470030148638148126780465400709071454195299537172355842347019409914613316669390271014496908928392748245436545607883632821214332244184069219255967827858792580490773044774359532701558263450337764113780787430124765631781630881793208603758480068578977119150885050525900460999554097532583888889356533319982365411429336869950081112000118557099963341385106343945099508491243443676338517754112456700854146184965400629253681628842220287823517617697412998164237601971767078075586590802727617745203895079334285192762214212025099394499962129136992393705106860728855337144051279061992125535988704574130267737397401578527072313740621806040111466033844585884681792428773244341528604059694685902481185015671842688325943306139797982412275601856741242704565879658026848563276633214481543240043358615400614370308186606166708245992907351835165418700761757554930248662793593287280188319166239823609281810413553174554079855954968651664936461501094728613800959848726814603664491300543825546523925109005793412013745432198133094994211793035661625217725258012156576441355608237723158151731808806163646514999771708595903938585605037580776783821501312570043849927299123627691159720679899149074435681790836165586906480939488100857489083352138491769667950199508355431216033872618426979326612693733981490647432933644346156546419933851258491223445782015900946189531328875622541522447366510317627259047157037719926743044474608607078342609071084703816608227247412097093258193137412468465070689924054736064260545892043116698201152458853564641577039556974985366106162506573045763141872908422163968447429058761335962793250294135479386746177805548974790858498302765339554626872475564935766442241744419837623582660415084907714739679574083965937699065296543123351264589535435442886937985053523726018720626710247464664791413708493874213177771035905128341640333976750156263305587830697125205631726185248279714527683402035092902866561372837385853733063569876020646657108460934955293790329151519382795436290144259006594603344957172596265150323814579528471441031194670498581479211774066820239251052864483747683182156322331505678985561716899223913211842434885275527468250381802293984349032371610163302342351372718608851482057971701349546158135535564503566215278521661641988078302169776068761381945317786614905531767532833836976961554296440226484615006267042938980637146735792712383633222053739322015991123078116140820097806039071904702026726868795670169699006056782574262956114673852597189289731954450869383356852962876172750936085641349823266853496281686774259044312138475020180108115679543780607107894437204150601018861905593864497161102725141397002378294648250394803534043784987702791350380993272053430283183076025905115335750821775599181982524507030396298174872780024829033852342538111351994653583341348808864859604994478428233364497860194659906883694221949592758759776873664638170276287273541709909337415222257213548953060581041241527308302383635354400015547498902851035580908926074149558709097795030441098035580992857849622697126803108319521754171481272760129084018429276566186237098672688162575874099278660232685727468514161723876920188318526020602944392367147819915175000421637407473110554982729541256164629965091413158978369437786844846398298505196085528017302505562781301152191064639170372610616173396264145676320190978521504244905959874066637733030659211016984856428143891355168997979779101379741675335670101799381958505679426249485302625701577454486119139452120447774267775194321827654550361793583334929384562571758454283425370353388872164191389467839463938647202339614093941538657492246002225114137781108617927073594475556057847692789657908685554362598187103614646702110636392256119727061718073132642327906507884508527337677480545869564609622037093143410173235531394022234223459150665706969262568020362110882957306037029199263959579486810746400750824207020519517792164602985921697675613867535181353113851572966154861914930270039568230703141608178008755270398926269258090912351269928836346774631992823956561219894740125602136221324029431410764210214260472648152653622188216195508839608806808293052666720566511970737418634001869256686458852461479917941334960383869617224877391460410838847974736131686661620066019405510788067952343681944453171139230858141596373606747785246454810156554179763059297805250134792458161715788630423717521770344288929035205407095670974830617214224986487801979664004019078055416549671922440592015566652509244998019106823833414431258363139567705991154676795805734454601142816505361139422413747484182244281992877575099188657808506106019474283785417392641695327740238915445843398460168838178220202234698285365172508003836859749363969702374080538950891915146346871833500722506643880591049506915756436109864273436305729641519382107042121187139451442145100232490151089414456283248544083981781992525229823010107235240047074561054676146129915682247933489393971437949526616516898898190615027247926682446404528143218777928388523467396426874871664113766821207494601221956865383544256449563698539555538279727484388673103905812952029844588362115990234304764569296495469523125693903201185755363247786349962669715617077780860501958149657477284598725564905281338235668482776469236729042908761277496684456969430820702193764499700853206379764861088252812448040166324234259182665096542686810974433431118202675727932787218979354451016253630647913019674994871344238075151421407177870023243664667588065251367423959391107139676040808071065131693023524427024732235756046217907178984855078530491915527947880954712909697711935802423915857793029576949408528177437420456823935766894372961050423012484320496067651710795316842037865131602075889295521875369743867852696484544972169212272324675884550952738553660844538423853648718108453356748447780995785461415500519541097031186322210741035913716741706815221324722487313746491623533892073261750961672362359087197712871382473488245044791954157243459456292582636738533307191530263626014573946708337344380474128266745439760040181074164322693829469451537791269737202753226364660526382092753476908289441582467008028624871897460922360657322940478278052369146733549726951634983897522766965453918253956584037119626998003611701518961724433630009165527829427408018721960370272963200968014162774432541527407844526517575617596690070279149508422060908610523823960009954219669686836320207023321722946946187290532730674438126242520310356186633256423321638025528020518228868756969706660489528755222485390578096194050014617851560622479229667615479781693091101410491726232676349105629091405724548066396389826751013860031369089753560176045201962970696047821509145976895294567639588361256684866563679242598628173983468974507345671785734824600768230571404569987715275914149588977065166145791073639264565228385903718487993471954567987596107621608785205952268471127605855787083458046761740954480551099250473731743077984558080327913968922504077295256396073434165985751732111613806610421471654125317167963991138156401378173063657885437063193332881339006367053468672879002538107602259702767459569086669716316889668888227028049097170574931334590857159030011973727606817537730642058599370810950727251332339888916783516542191972210490781453193182367029525464233503680294502533931963382083169431905435893337076849812588280037638233554241719007144586913658939785131631749252990646952485329542110419320294810956404610667601077402492295119787695015661023997998772975659538035216416111269182642454952015456404557211667057111209718805877760169212673462728515905690411191535982112349069755356817939294403665077153766360452769985890468835665571000170012777876355357358712612685401874671490532532292318684652791826568519208661735589471553207413750592476534814669404225589196500452901806568445334448302331278208574608570126406531532227091360532186000828230837321542129462851757290799530628590293080022814649278999633742036181304339579420503533912127230750762739882601191053368282686532300109302157929209510213189769199319319039506896332610574990830463546223201349224655646275525247719764576174904600184302256918086558112062455856780678108239755595906409720641759928750312913344663174111504711917775546990740862358879931226832143230895818042235908058323690692361500888478677171710945037916691681918270960915696100209735773853860443714534040023883180057786024823907047931283163403336837478169918240574137725550677358850011215345773729054842599262733414601480264198709914790460899594153623068378101257527174136563261545874034039832375922374538657525278439751321387944819025396990825311675953788159705084890945749378972860013096815743952292197395719828417783911389356050038578572903148683976113066905966481751799269645690471604393698832419374567404457203732380684274652741916928620940032589495712445793986263223923404517188200413784658424782814783549497089190544681719350284991339582512361463040666096985853778091074078863639941310548211529895471360657478501842106091759387693054152749696556960998390478551764984386748044168041313513738619357679313258993695360485748467276260831246100011476325201449580264024312690681686552188693354478616746618776671933443673418668553346563219556459678999826203264711074241002822579451643640314850756475687968381008394391127458524731701342710632330023774656463909647542968167836655402218211509998094960627681945197135245169060740568766428803474046211419042558011296696238254596739400694597870498153515491351503939826149774491501815968995117355761976715697534868252616403176463184589153070114522299365196726791018381834750054121515777511744080451131784904037005678098736796742627982005607559755447464026134480454887267299193770942564207393549499686496276691325018187508718277433852457699922884794124559378868181633564475400874472551851359934040357591458432924031955469904401970374780614902896176425100276432446928490435857138972415646000702057908483871644720237572395747799596990966208173986382837503964575980426349252122067425309546912332320066929071247012178726661432359835168853556214742479396802641423270944136664334677193664735610470258144219546839784618220913891443900917459481404851815480168899742747247163194984366113505950170551683486995830038899014035196373092546219285544794301278908784038251845427742464049320721698245599622525953182502122221290278320650033328788179086857458197775684058188043348003567616490556714789177189482983786663585511535074155928579416585398635284874755762918822902946508116283747865012364645391448885238187545641288883325241084595005247168187806341297206173052946703200678909273866888835111187195637474967299974295959223909647016636845839591671810669826571142649975214389578645471628447993578005632930686325303287037698954646092023260973332584002817510411985116761436677176980204805735764162713807184472665875255665566256997822369510972986802354896497992220228485176573452621665546209692751939460371657348645567615147447232811496307677054094678259202933929553539759504070402167632119475392611508120609941426732062976634927374116899218611164274367154677255484477336313189095429731247702985681816828384871340110664116676209143374802735026156023930277093781519694513170058562108360179366250758451740061251575298204238306527538211948537873463637327640484265511709686532909354756725567527768189004579437579553674139172738732227878963780579361240881425610364227321303667956587645164360594464544287599111331668762671781624951362158345286524725136230066701678180053475013235782207788819173247889784918672548836763893624812462692327012016060392305210901711385397346058620361291367105579111939186815092868851660072500475969744628509723894920252726271076935975479989246702240327185719825187824377259469671925021472871946777013654839427492747261394690049681778359232589401625328216054944228518219056849005718024344159893712957939798086506495936076046848655020264526036016869874357215053787693673403951178207942844522530651564952089437805439082999451962399337438552543243053107601835738260550714862672953921178510542430219310393467754954114245986960611984885499895489669664985873659135352408108221370208579108076254800940390935802414217065902542379720106548666374559856934507201529515995611729403948676786729044381084609047912255568816166223512063120632101609664871357218018431752793382761442148375050357018326476963943898708025542358975712096410255091049128432255404815787687701026085744914939605518679363079535512881139156922287415882236126338842752818470131680117849331154503670115749148778422624309706749388727654722234125876471346056805997309669620175071866454429476273325071572838808100292628704410545350139043286293954159693953210980500785870343939136778180228417173705061254591050725075477768754055970749550679079540518974538821870069496017620630211786231346137479546465969599981428839034935483984913990247678628991958072867189031287141792790973636139468567978137387432626271155253131948622494106027234454210326048549733857788853263458800397488345924480864871367815474517723001206701095026953993221527549544475372478299171716194724551576070951728824638204294611115614429866068583651785035204101782348555641270607161821542250269647555781938732228082118364783223232028337328666019134757703014278124285196990151470804397854405759943905601542634131035786097231082744933224506342435312930346839357876497004992972568985113751783791718248046136875453096391151412781086949665190767295245748513991106378170736027946617372747040724737260796947805917295944085600398398611208856569874382787479393910072331924377392557351217368495266678009813786420126295074853417289902246133926898224380103443612245112080730577190504956751543190989099018043267224592522791898046793125319727477903837040788731102976834439545165116315054247846991125620388583392439216776907251580825220427474140934934447927520293957456881860251561053034348464897912154161768901478212490985624897971809959484383232841787038514611621387664063940109545237554790711406584157137634464242443128970563382352348088882576096559553871116585982835455241488870311259447540896127527304700262796098456044519655055700357404483262720419319723083759854376013493470942123932847238649488248598537029771080759501193647876520653104990023078013915611260766753540283507280339038610004023684254506166682304757820588306107161801503112706084172840247347985220981040347434994245509754619843563276300576425120190709940565138211873358963399197220314538236623196185009904017461919827793591856815370904770250527697452134529428704001061740858575156012011912822197825711316679614481878741477510794823391611640418135196986342683683459344179498271519472000465004580774476001903488978179573562465610898424623406984807227848719647873346175930499364148165425410852060997343277343220891121599437717799886965243225596102140807042674936078705272608376821963702745492754377432956798946716247410844202739078294321267200727335471238103137329264156173747029364882603670500195779906130250579172845856726536136278919692653648396532355600975989906960275366778718214005034000124455112286040898438372418694440375858155747630468245572219778785926632422169034080321706787273649260463149764396284005131190732884425245583896756065346689745511917840299338991177522994964352913337130938678254432506976660660864760682054340784890861857459064577967157862219026998917704817680056466412526444533798606711057748311841227333155236461325835901703086180643892818752932497109645092964142239931508542518666685219639902174227462249042536656952771117172257211195979160369010844690445985641847078063939657013377146543570716215457350133059809560746864413691426822198090610944448107899741457730641145970731363570419494817471449341104985364751462590251866470089955998547049674442447128627039594000790594554636743049156586891854564853043396112145972308562040793859169491296896307509641204774483696618061608091097582939705158363710427112913536599955651715009422241515108729167189414455222218113581151809228101334921270179073645081365648654596760256818301488567807708717565293913262240044473634250430501660442412787834152075187041135928896031529808163877054113533856797614626185291790710091968873430502714525199393132710132739371162587201675533878986183782538012266059765293307400020581663573190091292333264983016674619088329271934515094324274902263512435115968326565580447652045898996149195497091496352735873689594848884765812714227759702712615813782441283119966310621923816330754733101544666148335829687111851210844057320774399572590016671693954952939679323735814024154069871644045495192245655767621302129566861312018601897888255265930555382990954829133276213453889966756006854868208674414003131286255528075603502353764202383508080710715112261313861047481654411495420248998494608171087860305739198991013224936955908469095814594328618167681364978637468744842716820553113734130104411557623997949166535156347766856493103128270904702406861940721276771803614490774990322513458434456329299129602472395873628843971481669641495364410510613552701517644989277710546654456846822617927759841328554494546461820550676109491352650034004252726122291987712527640192302385588570842783625732816188464576128287668933644954502837078751457203157911367998640171874095938485797869505736646841027085418194684920734433516721323113976746256526686349861531848718024763712683688656427473251104326350742423000116735859113533435937744400095876531547471853670636093751850862938430300348594320182602861136405664280401638880817935104718937233325750382901959877495296030995593318374191926014578958297989328267091106079297343077374078976346357332450575211280179539967551431751899168539921261244268765438096365205297491502368898044435235730157217887745591201507422664196638978723349200710235339797488088562011399279717548374867776701530157352710695890306973176416690336563892163270879817006313785910888416245475573302401681416592732075052096718637350827834399179306854769162165027057761659250618071936385958373338645619756621730665493915540240235455118713201348743168443525269904471180605316601793601808466559956410825439215943782362981605637753117135141111640683560870969883649403384631400266352391446132487767369217480625364075119235072402841744162093267619797725286686304645999728174340801955122710687810423512889808415381809333723788429675708561906630473961014290324941063871357720733508439039240299165022389486287894668178659714428709372228765155473732074200066741659295887997383566404477497958847945037914499275803728251901022647415252460393558691227134711117920498254564125664639243250823972839566604648116341875284453103194151170677123411208727823160158120007146335095971335361238933906423107479998846111476164599070655664589503668730992087643926261463532486334049233793111733459395257019274856265598259803391850812514122429204913827765836779234982670752169990657694389926010900451991745301086972641010146726950534705935926951344071810811756908166590770847569928796014819481148656087524696146839742269554243034998317715176952051313893151793674323678618303909476452847081984374499901220803485362078019415165284961009214833918204122429357165910905146016668159045480653050946491540623753279026228107347199458964435207456912038340317990178840216678352800610505653826286671300619246031713101185189489078228207843841639664180954679657526621646313743220149276167792547776130685576371322739005899764399495844562708826550358677296189003492996177603289745501759894721624081104702354814890808472178516820704575823136957360587689591355329897626084369030884013231450750607977114761136156716166857665307878880145982089706741164354928788671781881071996645767161076009093476761371129879739216739018021645855025742651143622490766178083368529175745485812512875978532363991983886145285478861277238022762928864713924986535191981125872698725184446804047463640189204726570534806349776984910710027769417249113973913993829726397961706689224047396707355297093246616341206854061435142456149450395001707243334985060543647918409987561345826532595493813592515689318058360740128271701223297340321265150714729837457517513073263804304597628508125553551120899371072167834638768333831154295547881932810491963386791319322382195396585337833274379336590056111360444048785862367112192470885466977314744204098036061511851024774683803424680290364842403637205808099971684729669771087941431456000120762143060377501265212222977938850986879669540824815075505055659930423446990619579632423584028352248118371191733114098360788764130341450226360096083337351441170911802972942781650267624343753791194623046582324147066698317272403245919442864141120194513429218133250820424655875461846499036031275513987295807939901739997793131612668400325137707188008890793613247450114831420469032234653596665345127353252106778914039662539313632459562920493672630139458961749875594051528260567794682149020041851406671451253552197083237123597297335849894891172620288832123305217525857985256355902704675469775755805205823513674991060148060013887831551154056642621681399207905605881470867894894924654745720846747956149063652737684628719138390368732213670155539740581923673934002519753924735987981233852071970451099918181981189364672674323973679873420491909967505574888170543181984011603903814711856387660752125693040634591103869999763253005142173118090796825356407230587416208109175840022106221832371219546286571013524845112491012711107061291199436828871313173205806802759587601062725145109900724485594251383145780030595047437932779764245082604849320887409120866831730579246654074993678549305437094305625469989032042324217353583018975797486010389768135617412827832021613051597774043189307541658745998809754464974545905346588452581028478100534404847993075304306002833231423681977616821698747983342573835113211464164899679773862225502921488954387941779283332875509937204871224897337365138556600279077804846959454596313920405501846094473885481254735162304091001131755756078210850930456810061663810422183820475298095446159758397306641322403709292541637546468306150755386801073135890903713847024202698847560960346846467271283402139072395795359171249708485684334434896732543673937875451712522220531894627480526557629111786732413749871031118553691055478220523687792596205025315470252680540328363568165315960862441518546000129534770011941763495975333318032596080663971716312812104064749771891969862147391386836945692381389421634609309960945515668597636451118972759735252286717383164569148788435922052559036426683091947180997875623760437036954675066729960810782651357011646809084990658696127090739018910122401575302837899140898541483509669521313947450665700258603985219091942852150970850199945800936189538389468383498847973751518271548881757129140641486069421645982531380972709412968217312116824856384775273086748292418690988177054372812426793871216715452305737597110974334851035028307394316542720216284599699692642177514213098017620410343058700913766578723357821460878946722302316973387975147849036946101125099750128335991487719564087575448556835754589461493261249577143297600131765584990345412000423807219937452073091741922330138832922721567763033363138695451172119523683291339275969293497058733154415174832636506547836825175875629694683516125928734674799531554641695572696575153370038496840596383242299972254747400095441917436692725116786723187606191207333083787334745327985594843424531877683865418302821378204681686659622184125247852284094789933837530676198852733361667081910768609748826176663693125759507056991466942573978119002283689414865558083639985870389101927342034209078740304792987841718937589700734437671409955177852116859627388406670049427257125513721487060130816057330939474552167493817712943927162671383900382860474473470810940774960110441826681061067526140479848141374462548395143034819475862790419745816040218272180007688663480373455900922499279607882669268737986064053069999507385540361657736883413209673818256145769887942485465066039398416458562615423818887463648674280357455622476824427918758323467409355811571989234288994489831732010893705440229771475261606425830182498054276040809398073368509575839450089850509550371878436285263549843004626475475049834604730559939453750075408926856445532832235113858198851810847552249624168815053726713377203899193122187188140677840944307936896314012329357248906405777191540458813891303294783704907826693727007965169042311044903905845452866998345526158454831355880885028766242187602454613940814692295531683733038063706475846103114609842802439994181437268347464986299866427800254226528149645738909265508174593219749686069545843570318430435859210706392788694202309971674981275325354210036759958285763658145602379792229884485482408581719490220423252043779472566377865723437122092787952882041768653592981273881511525133222123059907437840147872490248868256603916736827581849612631139421863059946076525859234324536955312074643080435974212760087649133797958945038311790946674920301233288906718225467800154205094805518310006041994882994100682821413624542609895520269920172732621354573160196607845091078975427600310020928026138568609778267262963065092228897698632610100772944103121022630824212247763552298399140708090897027060850380955460623677605128817870460871548173322628497178930227544590911023251984549097198008780978663961895643895552924509278853398042983996264877418056725021273260803370272845322368159422525490441947149533116571475823054192242931908509119047328162235655153153955695768963740943898668390049515543540270328417459968596426523362520100228934388541540495416006872732058716534478130466324489545988870367066333502477575985740514330156641230178931090980694087070992763170508696735327551911259749420328035577903182974337044795040289353165427717826773305790795665559219934465277677263856888921528851099102863257920161905316924726599016942921697807497251018357340059739865506163932735481394999072621023863376577804554789067409407474011328512803497181126431103578282742202115145705605643779153709810618224729024107816944341593623999193937293943462605673275172658264372908414676787278229433803299172075603217997339284114461442108301495830554335014851465469257767348948065151138481980337116543170637094939927203598243325986261677372718173052597510091296937074558956760586416395034709218725993365523214816082910203884231418748331588541345601088465693054408685170918878816506710842732500126873418405520452238392849449404587271898220563069926985164643422180225712387191418215117354715086911028462650340549039145569408546431953851258473252566498884725596096954589310945534189884015837659937176500830410823110757341214676628217700983335834699196958936485690278720548233130728219976835383350009760714899232229439252620211229601197196215998370132645917407409334006707003897837297164726745040936355750256060519117251265325247720735113792502714641942216214942249367097198772831251601041899862455224911064428279063347007732009182557526732787693637715643469010004593649019336867246983561413268735554446093182972948113254716752862216838559306732675251518441445369604600941260615317313084123034722996503896419629311087127877250124486035145501282049305285807688781298944916586051831483377774889579301878429282290436322020888019447263774835574398782980176451446996789987635445472298332102567633047011484407785611174830357926670876960419495318337562779309179528111722503783903715498424695171834708079123588576111194830374558328031999178801482259880546137251397800741164239067665483652831462979520040609801024458445985628674585918517342268967629267935133530123480820897564987722848566673874551397872284637080862012241493659463972123805144218896556796976421089961585625860745602851956639590918677901683209283908565838610654418599250201840575749134908651901311897326205185045244115628715205233497890651851436910201496143308204068120327302700406010699223876271254206293725778339484311472011755975181794296262999572391204694708168567654751556256300400792817429964850926210112730943997017007129507417044171066445080333896286263483216620270818005213478533324435961028208076316173821563673157006841303873507839740218159383128936036794665555521084139838411453386125845875457043791739236709102425365948363166375511363507424944747794257478436381020507986189089549001939785376214620420181126159514663549146938735049118097220890465046547132636059649580190806618231462370649980348395735589109340527443692539104576291001794482727583963454019228691605071299988588807463739612375894416477176401062528022545342294275101748355416156405673801319646420372725426124516271913889065637217621247838343916011617585672424394144104100968499076894581734233282125706594386772031729262557855639311399640282693514919371689459858629101401312633509336637267343225502868939007382176675534982006506343902121110520652212249713013769902962424328363169802955123104491978571497533336731250603706194456838139397247406909302752461376219303885596748833203231434492790922070432020843356134153109591850329036723198950473371040884402939676461882664653337253035654273558164196308550789340241741311830451720350992514039091685034239596796409143983377627160292258993138196564013558435603346074490868635867913670936442128944213749977822974009068263002133013409025059607030769756395966545617842131057960351842323307315625133422493211183591465317788338547310304152699111259957095550173010760166789232352313895459879729653011172950023408218450745327104255483665173256776850445135655365865144491320224336928115139413319880908200486670829964691288776689246398971676161811832000456136422438503651870678073743555538641121247436753898650649640715373139115930311261968266012817767595342586920542078999054902842024064052268564166665558383230406662676160831572539117157942532367577451209982770813117155556626127275485224643057140261684796320645241157114009068361481455955837976233601061342434717050742166581887298903305139796128028663663714434933739806456376219627485743181328682783262184243128082247336963359992300648322431381909261752828619732357205270933618454598275415259105237128057073457402324045021159662016275751698286339936572647208324441160535096142000093967106989759464011843503871874811573897118314937397224249913978002125595145883721375211038539864879670146127433026744065481067877699438163778459065190259116265165109477510455060478829966432664222902208833760734085370038689045025470129746272473965510184017693027464906908585313289393076986798758014126468157299147013287131251923825234510687931198109781657958971510568737466059383191857127720616885020546392274121645259453109858888530556976382501548650090453368529427637415900230188592193628571748786036996193491310952202332663145154279643197723041925268587094565131122687315627202232375070582634908168814315165803979661310496985135103956303474804165761322019357660985129111825778412582749349735205816263725313614356769067142884741373144930853213687223294597592000358717474900693610356928438764697501649213684472178020521822945798254905019456996661603828312623859271989454979596170027936480063346039440000663160197263949409267273648821154199032543837419881854139575689599061596412012463429448337662692201371769948091201362936987740876802204292991344689499848983523183720488930100303511814540129495277127438430853093741495621862087225401223871535125447961785127518035785234125365308742289134143712307995954135656218243402841491711275951789818701395901804149997760607361358947649946087400556957577335107106537497012020902117842407809751098897063042778643208964023841409387888094284482940944989881193235448142975981110175243224190741481558275368418132059746852330929421580831671984716273547724783889675081361650537389693435530268715336869665756090674996450671314726923470209212062192925755874932421856645487891640469148034072926020844671264442999751423834392576418004282665180408213177200724345915379297731944054065045352953999004699564952387884241199319901609400505766530922193518842673276820174926707496239941971348014776082512708309943973570586289171515725169775519474509283390825865974075873029515135015299574252071452263388286170930788807859747407387222053478802733888153709865933377195037039161214194943295904067126424388977521502892809960962106920401172803188472616425130122934821801993178331584094373399409364909850964782126833138812312611683663814768074442306768529138686418755916505761480582376259788543472010907186733943191809369417846816214265864588919697381850009504909880569980181567751553021247986635080559746071968669971196753685894667705168945607817697348913233448613681606875061964350093399786964541329476711224458745340753337414517941338546817127015297935277116183306828319858133431768345999341884137007964825499592035050006120190977854570854620822148623244826103576519314246972389915840349818449990546482785451586925995405324756004025463518382764265452503060787384104281470709622206232737451140432010900794451908751415944280084933079707055738837564254321574819139493320900191886738743358368962518223574923287165068903554598916002602210397723039480133912838076183705131731656745924654409667721286450723115439822283921099199794578934522294201855746754292838977557485622854129242219581606938335198926390621960391626356196106268812529895661412228137722386133972806783004899379045989250717322516622045720511352478693346066105539594109431275310727456029208331120105575084718570202615740841981313157280676657622007333531949540139932002053885112506859333810271975993655684830882122327700998196923114439119749420138240256030672897129943131752253145198542388799604388627103520579689176843058136061712998129344407643293639597420505473500216625501706379570639784952466921973520813868156738412205619229269317501756781304290593675171538476962658467999202873903650848644333921572548314578027409375090622752173148145292225595278682132853839078916082648160351198618234926485160324013697890188084374162255198387679442932932722724065777065097473318651559830085410077472561229308439510034009264881997991779744226175585295401324968172148388918639614177550794997269072595606657578471297960947949142340150217572798186625216240084688141921013614503951044809785257969870693000213200178927700135924794376093943832841042546220790107029777295583857478004529408176517110532657805444373640174553420161121808348224037091403281448515266290494497769882405327196658609775960699347100598091116340677264645091989265840679029645586398725513513756464451540228174448065441666150316456760993314876878697513610651993471385106342337535082241611207666359488038238017345150903855017295204249242269160121519200050966860320094866803867718307253106839520851614177660508258554971459414512635164022814410299888296278328083471806277564138194747249699651444744281865835827592165952468583514272056785802283475032280592197693185048991964972143191918388778911550096850135144556510074521394625742459750559924914542218890691559972860232383826593750559078392729709628595591083227821945080038142112264466137442651128397336971196639393688179203004557478729546755701379587258578629341110843628392730660114636167035659972974040605010935916178047907900184665966602227714849571146164155750492420460330250009456933190614172055662383518897624151779195616563296778934167638476576312342433756449594454840953385579215004858413743736647457539649774434466592023811855720259481480220484041094152158152376085699854039381547800264647347691023625618302422527454022099218266509010040562675003261029039588600387231385753646237238094993962891435676927787756968146665150386587375964353805960216117377160471551684260774253004555631266044381030876830295776814867670689810541983697051558922395297378224693586963156595903372214050553676853286021648137217666609362683236743695732707526523865136208194987997788257359350944663703017451493653975972968545169793586215115962433630494347233323203479279591082945718917402194487569608353165946928305948256592420151229472256873785262816596612448749827629929857127850651952072320495224943131711770813020574579966165746677958427654836531416302669651234149251718981445887718835347436950589743913713054315825051313056537308860382613514133639365320593830650101322194406337899165933534777192530203834679122739649954889442391130977466848407301033497348911557681058107186190318648381652926689173442671694936007906186004729872529546010667736832728778463267425438349516155852506400492523416700263772459860770518407442160890709973937462089128976889099409965812983254571998507930286403816425179315465240888984930883582286240154520859666636069416415466937319481794090429407430886178485663349192469265760144341942002485051360243520623442783725421816759365160001959839341280455639294711854526428270595456914574472603355958189878540816972102199016431350971185148934494354430330171559258019529366137025111906433051359010940171705183510716133407252571531657400187372683386191418514994072033622163717074628621410958921916012025567592212930363350769922992419072205518388004828224142142147448222735061236391112477579229650525942102968469004925811309773829734896978461558370061092098541597939271572245887612492000821774708881362673384804971715602471596081836581650575332521477020305565269856824555438259102181072585838311209475155507572467663891722651547276163354468110622922963214897964412317543556558279309927886957380358653583642374237309101568409165222047085113534869006182395721730635596391797264904992312984371101350830957888272833183065894425496267938246364411853302264817951265346159044315458069475365541467508783558185601323837211183388088940029465624935183783444926659192898412805866201334568188558134421659387466967166074950028795160475953821421506583151006908140672576857414040789259548878824921277841006492527856870556871236252449941170320364422679183013133106146015271131140980756589318915375391463761009331616344344380939389663296464851799811133322421047742360318823980531335247549071228849914787822586875169432108204652938465813909829565931017999520208664555696181620984421365245422809886136949886819470617844045270775903920762536538105117785155751055659366810615727379152964034070715793587681685848729694805306924211578474359567766975362665848317684052911217476756905719492107598207804209495686474119988061294417731378286500121411434607938920159078573302633076525634271458352299236908264876700307948875474359049708205701693874860503547931960816375642210086179339724242865704243285313561911896091649959271696284125652082607486352965717591826968375352380439305042359180721738264467483783595017082663395234197977807453119182476797830507347784789326280609939707938476272114306700884757113462196958588679466811992753153566646497037012380162700022885819885199509424566435141706653970094213186408819535093129818295542086394516582119349644168722201190005040896550219740697861638467264649298914505616463997080177244256338098464133089873004646347709135357377726664525437363638909181606620498811937011451853645974374546226331296875251968051659051827462713335818855347322179510860061086870717213079039811828907622733888283289975805675278227381708531982305269558188944888600425227419583202092293034997145746832332067084581906878118247507133846876212702993562317031205300427013371756763648189066906351944933030092833804756292948979437535793217831632047633007728137691858334726118018078567181256632194171736908317511217459366221196887919880754516950482740831667848480849206662262252393810214534303689577518827121404179197732037873887459831847276625427063416614657728471225392454987040154783424483714948998110325358810936471815016687966795555652787835890742246831945608565653981305439533281394591663650940192245421408290481662268268695138406189096340831636086973993562766336202036035034346430763551293745119128937425518235467385422325988429694747768499367584902650683455332654455034494051733045226614040783640897086849169613232665318398929438248948998079864698611756328444700306503681671285965407770181471749898915634152073308636220070341440384720003543947900700343347156721916398344462635713102612690362025627157542930339098973705626800251246673751598154902350343300104097445439258349494573980974172011782700242291051188301239512555515945021049875017415576706332102934640475173287351496211455037451908519472047096776036060785612737700929746959087013034278401611546468935362524464025049594679707474012402058825686884989353463559723759329435279283731711590411935061524902049735189848996099332843974271009016791356353592712008756702316426695787317577778466936634194851842118938013428791973683797939934928430272181575125874067633615229003503854770571165753300757439548345997574086580385839466235446330031909425148235464482831056328644542053013731278237883494925430890595162908353769249343934458672062420679331589462005984689186822712681644270665390908865215234146500488189681969238283112671662225213113071664164044510053118215492429142377019642944777478594620078312313579527227546003448621664335326237975333043130756098262651821640604293635334720548467359794973878302698757484755723652699593878521734737762157430554374700339251860363594408628145466965851856356482365951712769032220098571895565589893635339559182380693416660988376047252515698084784809683606128867163956854542398631172025773899501869570857049202092215188543829577385135361734300628305431287389047204129999113797827110753074189517059931642407556279097263103678820583998121625923258864561854266721500952975740722761612725639823285036245877185973317342948155884237659522481039194952796826692792491665614795119387826748531768416126762504419307291257200776463825175427746085552168118275519114393395146652001772940465242859759516374343953819763493385749742633888046582930018899482287653158130948464203533470742540620689819256548113807467282414890658872594040258862848937427673476654799214335236345126004061564690302212941893892323936145956597604047530585708713197280654249119071156845497106114969938849849936698310948208393909429987193880597385851083312334797979735173479755092735869347991935247383761584200918202129823324170528563449856344341867178218603263888484251220980320914626894919668990385379547512772693650041324410263436615825561255436963150995169700106294023279717915884680229348270218750387165564421991513675374431320979156251629169858648263599797689369519880222148586954103352588992410268231767965113931558219300830566717518339202787934173432171277133980865246499178048840644054942380498259634740902686418224570751718539010786387164450006437641607955733798641524555909587275189700552559904075637085636334141618264411117466607107714932897242877342647647230138923552483389501840627977370494657394686808303879882918504639806499136091752116449120562022576489999041268379843021368956074405939456289209383873675108484780025801983541636054159279489241990206988986131946620269534600922449794257635271450046144233209841474752632526162123387423672316671144553625719223730308096077031711052812939736300910208560431961612546088619614071234657605281690189564441797717906292994192947582825686954463656481344285121306375387435442112616535577544564089505142563619653095602710306225107133090131854777098560663471383003348613626034652620391895504212915435072598658900995693908145176769595317818372868857401337869497995656737954678383999045457156152162784604499922010639946992078214856220934672743686891668064826160718703690280951655851993380781937117376262902004464018200264877775031237007324538494677384122115119314034349445875563521999124942231449227089297883662153995361925592617317132285995790583241630220525054494054856184149581539799276865439869933534737882934146130488233528613692815699807221673047460520430797141742401683423584183851823273875951105847402889237069903520123356499221895900189804704460453259566663032218015406489009263120775397759526566416226509761100577774114440004385438593040690146560999353961691070708776650401888336858956256032930683663043932602427354905335688034306391157792811116900467294981799109789422400129835808495184895434857640806280861094076854062018189283692908142775586171510927790951184278858002998517713383555936004119832298083293795135404922079926226073911208346989410078733345123836745585018017342467636025911182878916396505985328581793624652438921806612977748542608969732837906935022210683913040158574033913909274448869660457811935829444005025626571771082676369409386129014107195137383052438197387266144197825807465185242756599692534962623502350916063133877979312277622032559864204750742690323309577258361499977933347097308188693435504491212809846828881280510276292534652583846957006681529270390567195471900039679168657351873950461389988305829964426713628967162130677617437906363161989991446580565863186116234332180054237438997190064354950897342528794923029691559122121025807030397562101860308810921384452257966016698380205485924937266801233358969291551388646867716128624857852310344086734847015710537430237836918313944871293697866693264980389889794111859131709995815835138201314853705766819237361364763624933637211527820528257182628606970480101660193669425533336365324057451214393973427190541664850560820941963321812549594268815231763291587539215971339551477723847442503235813297956518863845572923570967346751746574239904663150762061189386663128896135418319620648603232301576288240065854661196706479676414376765070312932263294882935980606609167882513006903920601179238127924260116348962097319585107256338305333387520375098024776911619237528742939417145213249616125403309233462643108451538140829746951340176035678688650670029309931895651070050608344667817004258985616317207912334052339243988731646145776638934576560297903984120215440776522255307167045253646954494109019190415582217519182640796066727385010910823810130232070516224875283102905384451971494924106409851885534838130838415544498272036903832175225427251813791120082252324051097012836931057434319609287923835808467328767622939947249646502043132196802493402455525159730478933192372110871360988236435269138083662408979418173346707230960864708204833935163865734375126429987896211754458549136267876365293758892361048071962262530404978769381528624292442350370584574912966962228880868010003928696118376296925064872579844292843779852059581658343144726419838929849751482610975995695511258097822783710356464000841174473515599410867739604787956269466948484899875571672253708285385535413486722827894676305111558322755324445769993925854599017478666132456993236847593923272843540189132191130875558903573269996903029727095255193443081732490119042459426650014787958978446748461993636290067763739336421915580894788563708766397009729560735034135031289961491796666490974858152041915963530237887575414310974704967717773098209851895247907497591782011282483810830577981281629865766001027291773139547984290988626157482711823146499896800088558187821518195683278776607792715396701154412737552758951166359178114718101642358738888239406609614897750403956819968199934714632553103970162534431000615769549813720100013379354925514420393132148331219527711082171598214123774274070954427532623342887104205758640761415602677941899921770506739358600474206622209106995419122020939346523084753709944370738352346280888766854788854472772673464065295132373408200372528410695244233168481963958505477508072064745973790733292636134040049562923874253405654715700294717537820711091377578487869008633628360639375886438727356332565551824616996825324584908978387502043748107720091145105021675455941555701075608215463103922872783277748475268306533552007447881593762775587246278919810899810993369383987728013185472566132092181840917224587712353036079607037587610614944913816524505176858925947304323964733967567691231227217096281289074741429678184509358283861507977423067506703454714374079063882757772617760990011740431137926046191164878154770907136197062749516225565370612697569474347246779603960653597529008002554437125634833043529439487909088940580734641071528450270861059780523147999849616151685506588488138834915290837523305681958701724771379816598211186227434267223618650414273164872945467238983043370331667692951543468186687936108826102407017458529780535479474785204088217173436599526507758342277461336366714107838874289085918490503323033970628599392600286812208293657956902949354478244320681354618176741937539464907490437968144686400416596600896250142678455495277565405103753496718617328260482367062481506971498603794123230566877599197835574831785028833848022589366864749779868231572572438664274254246913435869349868943852678886617799996486380233656082424806812408337812759809198710051718575267735498113281732997028862778087655083861224977221837039061126827301278532688551927756498726527018592636199010935510325108915596127496829947826276866733354874104428072036421614795827170302905067261195750886280023176066388792817039693532423882456395487441791077754514499583788915567380463922775274174361121235310655066702678268925720329865051738875649918311843279563974294915266375067035289740417307208650472248833163458532843991613489305262980240648046795964303477772363768771780932176297600953527291975067743758285297772755786904454185043650219416264448034087421831419187998315261253675711727868938813039232144053126647027682876032913103688823608015900431240979007872740045534859575592536322392068366326454428630474725989291986424667922493663138871374226506828497048400687015893602429145689800758731395395791524358828165357511202010016962164026760076630893144487295907153713013022967956548254437782174355538151338699064133105302297218043862902155610683746592483209325593337678192761225041221254975620757677292954660957657769208467401927766458289289270150880694720107171216265750760604040229468723633616815260782925538859501965828151843967969835407974429846465988171138243167812365225163152606202657021689339082062192430877578316981179259388786508386239896749933633129719048162609506256441705978393307838595023027206306796012406987722985915095957065343526699570211430550634168329646699209052072643483778169226171445415475899053238012221368470744501285852494605389408165424219189072784816677641694738443757244624502089525571614454152869276354177025802667375721738456807736455121297551098113440009939632606348998614099014411111374335356339729585962649420897351087392704024664215580010571442841756203155735270575891626686178795720186235219627426481663288145238095324820265232178054268545952236299003246638519189469255458456385347568103789444212079220266397025571519351845282738132647500815855703497852146695279617367711752748407277138947226530735445069975766719734035905947140357290039972730172086440514848402299002725008219554185896073755957699538152298998316508127345971053488044318771137258189102324913981190929048379406252307791935728107797002653081533511988914837105965306761042643375096514242123949191641788990542652655106362431027545459593132223630929901839720811719345860393890211922574725211069195284407637422556210865552279035928099228956710893541438141043700556679618486640813165150102847601598364638725363236951501685385571249833492984929283815161741155287951186028310595199096297657810238645603450334560743111745577904046063961246879269246368199324392669677822766257396069082920219224927214343434055822401359455483153438620959740299090476298688896566294940548550693302033810752470536841124967864864769046663960687092151360871820605864713825630605043480158620840343856338147559848011700354143855916076582913902094850250058667706796000781748606003940307387214315718092106526036755022817023401330058625983579844563631350511375372149649500032158093950454109342408514718461225090584869982877843008641777243396227975661997607120364866855948219062676744875601180161648577901544711046250626834946599397346842842436053323250756110328601660944967634567118632616660165748518289537860528425483406545247076446626141111742167215524346423578952344758961146616611579097752099632239741192866381594515050753117397700029850083369194848781043207917437010694017259459546520746772272701304517835014422712129334860343894391385152124655719883823682912327981498849975401171436971271210013393746911227828622285740834183551579497624842490286160241849568720643949285574601946124454947143463578713407652334748884077518149903311769209053835245318409960072300060390080671572880673556572903934181081750988946387533733478899338956066135378499011835816089290662078791971125742314727072653249639084780544819047160437517123096317255060221242249060680667328684051508572490521164889585512776299272302933783627049318071588412593756820837337598002627728999426499194850409277202613889739833527308964444877715187623968118044467476691341857755256897349203141656939432481038034872956935350330997199521375346273150290848340533598621023557921709317843658621915246037912751910792257415513618085257893401009622020105280685605602480301647126307615191346539348058484359794726296018685431274131781312261494240089403813393032708371522716268977806246853919533336122805208747725692680714952320881654529001443299813527684145781850577751833842002901188547053978993466872335106525405082449684798114717739168545389755106820330851385702892388021016717652868657750231341811023222653145495502293300487178377806280226311324946092597034764010469441120748937427062023134138164773165819396295898528717911423275178247497299993898502907948905947809396187531699444397132984746194056572869886711948774806852010108218984538228610950278212488043389766021316988070874731361104765312476102949464529112791209925814924933579705078326187032597369563227091783026043130441996111656202588214634500916067669056102089075179822711186982484066099533363310282266323794199306089985908833064157962197025130734570563232848503970626812656500981962924087642132685528697394538484818339647313568192209993058783660235602797799157480362338927711837107128685587125063470505801319888080607420934113184532264311363083703618037509113356904054190606634174153098469562000291840442953798866078628783743901032360424582766357161615402151269335258232265903946509097562824236716749833196106805207117388796725458893333205598610635940739910743578023739058268327695438328601104243481509311337995273876786283148332848818468599846548442645144754532323237540235335406545906972533487264652195979402131147628223948568340291252318936776704217161347620813820920181065284670003899095275316365571878654236931260085485773076051182617085269604868180481334448613093110406127000199349101037372118671561880800117607507198066119216883800541003987446481637046483332546578654261569797889069780480011658903331499603943113749138371311371878429616631190065913727428811512161082878276870542338313192484396161085843720389345338425378008468286537669977472437691302631822821989069031102366276402406253180447107248923995413117565793924631505302245780516047602538835414356826929948113890266754631032093685403822906002259059659737235399317654435418153076159772948760311475759625173640174728717923113724302726606856418282808905683408757038303611878747426942293796059429427118650611181448435022747517616476107914433311955150966716090531398059265684423376533342748498546241947678725056423126758433729040125055177576166482796120884932663255827899174508965564688746515330282766565439769945544671334218624213324332175836696247719007360934275709971459484566801267993241246345220310833042782716230876855091527957982229793429508793802375126495445642556169698424949791976084951340532574560907195942074845453294396907888116728515288969752299181290885583734494124104120097378648070740401868751439059155444676443740698486146134936243605858140768673530933247976434011633028090567851214428499112699824115598002464512150351625025290529117976189495455617008220408899403467449033689964285076379684862434160415009265364290137526002153422260986487111703562628640180653710833943733031397884358742541110249433386222053547738491537039237516890742464650522215030024337510166132668540448159221738620054643681950338311419517649689957113918712778379491620364464965186037546678509376660773805541498276909469125030230464792364822710050264867675242654184787953208809974838043536836750501653417947781023069552427106143380167328813621965754144096781502802633779482835733905961871953220262939713084219829913581461530556100319198192681029876674426494570807125079747535876566197493960085183419777286857583082299028987293009486449078012216915488570043289917389953419149304902962182389872256156183127799763816829215473246204785372124007399887057066848238723514069389646217100556058277944488768816001058606645577409889545699658635846606175435290273941221532380957080141082771418125925973359651621335253494629800926214398395457637061766014103425576822493213812733236969164980125410783518776855032327961671853360068920017081269870357316328998220775140672449962418843651559539630671874564470368680766374920271443341548015121498638446652629762635351565363208690668839661990856363597497055966434325486862163870946338676294721381271847225632558870210068661771747932880048396284168048371645371247170883220402206772362893944488716970319967465973017006968873388890245221027128769854875004796580243277660275748918390000705002344534878513603779411974618657299098135072033178020065343430649813994572731192872476279605409672480527852829932602032119293333601255685053439195448342690283246733241236066040305048539143595668809948737303496114201442121075915369813721856952082820402410402970454611039886331308191652091084423350861194391623098579832790571741840238891484604968007706331945005834116942329442679191576239948320557707628017994944204090785108062929074196202868130716312943014704751202767402635619660073862902471008898095630954910462270234901682018852562448027217762259883215741650281757022921580255794053815598584785965710187110090016348784805413910736718953054560260931479694289732444782931103107222953195951741579889094904455225226697151770557957090297035092190155353310688144217976806650569269660608611988902666370325329364794589129140511755354790999535103670959114919809003159686889552632296452185382152799239788870852401256916615703877233910371902410337864684372069716194849767556995986523819954973919965101660874031554298901569491040488496122066900323706412723876033136919242313554020973098388792674892777699143529250706871818767072705266873754353972832931977281244798202316223427227462003631437696283640263209575110053199967228554212645964767150499697073778065189409287560289371770521774173388332130302405841474162199562350564618613303966661946085636629572951100111207452212872806347473769583456470771333154016298969641295376441581982310187450783520155772727637319951710652547668845531045975480684178622739892965499743570779460276922835805989566982019016665296997130673475551280901191512023737079067608371692168911539109817473226376532983404390477921788576890351638615110131776436279786753421541983633629486521182954779814810453790179427829478565878514957301745247978182279483088375809812052781797069185543033506811999831820396089099158537670887396577919003813657584264402138572259113865503624850551775195399559562794639044447033105096765918773492087665547596387099331743241950086417558045217537340476225029727969257379204546509811235570718908409233161780498195918304615612134415982156434784954331478282431292421882409981739256478404250346296587804384451951094014511053779325293628622141610404183634068018694384819395606029539271631817273209874791986088635607462113575208800784814932925437132996401524605895845782243935882675818143396100585252286409441931970844190294591365468739540102208158100731731999627826858050697673889315240423158402185938785607388285539057130179605741286505358502612774828179852606340904691540257302432750065549966591980851637174170625634094290594213948600279415726493624218640917295689746437665259552807063499015770267642017032824211163951888428614321577331819145390467119888483538365912662254549644731209668336238000157986256818500012311017554573986301567680832219777826399581428778770887338710381305387783707604386643204114778626607945230248456626701698118066018416112005434949577819722999023800989015250776020111584311144287722630166202689725404912513318548443970874672617346426292536611823662367083230340802703067299176868080939723658498204986675865422260174966136222018142672192200628516945723592636444359885555803875935425702571580926783682648466269362927386390699293453198824173633996607456381497355539466669853974394109504966443043602002269481050170254394998485051495282186434630239630059661336445709721459105490203816662614493020553181911496602797494064525449447875185387286386965559942173114007363371399930911192162394373241268189172471787305250849080584461549970330546090134856674765866723689456583464717200224909988237237237535711280444100292536357506620237432687922546901981594953398635870054574130756806286483359071399454033292424607913081936868065796809687212649613150993173679657968183653474576867138272448573399529233119372480677041809246652397749465543718510426930643613893128085653159916873748403476465182876894224712661280354752994417155488343086000619290075914977890811988387774313736160062356437172249016422351654034429575393888580163421317715162808331378852196495828598590971976722452045585322506660111245821333305951618983682306281580487175656500405445143882346711241346630290656132608276404585461945395265432341700587754648808611059361403215853557526166687347606549529280991358002732448895104461756614702546687940099755118681116343816611046565495837747678359597770692166814314175423873116044458459084717950792905597284605811672511865385555122263359922084519817925087547865400434855225902192628663073075858786113902140944600274185677181850823015519851820113446123318314303024431786768341491223945181378900802289002033265792415908101460207546573911547602396691353924831154923938233012284056520236123138967343679395832270108551709436853955915625676509924942954122891201255298519799917115024557418690412905957534802834885355646411862709575823801208606855237149351915391367580329643570981960907752381004568662820472503623798861933049410916476625433920509931335066983700351292542481552804133211615453013885067464585057684934776360209902735211373039903729510814939435484981642147620786127021048408537840578938992133306527484699679333623998118064638194285580096497397784167041749172737945406573539485708121532480071812849666634155114661553776164367392563831096388313256631560069673381666107146195063150857411440325443970982446525829911743426585438022450331726327106416694327903138950249033916138947386341348002400194090592937351617248496897399898284464804590289284111567494983114109797140982135492666935169855644613965111837792613268450841880388768602114534935481390824142984742906492011698935805002801236549653375972867296004261593568992164152282436755379028423606601069606009954556536280012611931883463524353471626012661781557917441587722663423317746989309400822025573700849138410716710137893874574020556068082446041749544877290624073051636926624670685073391769022757029139079037392391486606351940680771067048775873208656272522443293833025708776876387158607072152321322232498127217100542392389656222242766231680625827704703319864363896219987138361551271411609282425177321403166896650146952317717540481685252309926059301289935019395048678660641248368797886314347370268967248619923198914654554028806491665701567738818420996186958729484871905850031366888124893662528560601309230178235569403266115499691100227292825339610518261978499712865314403232876965627504328465651685378610026359679900615321388095428997158848025831888563269370712200379976108193748116388084175043785161019146270444797900138586433779528392766726053986854142466202947885488911949240595873836583210580774752381352812326553038386249874866546385342431115407041395279292886107215538376830248208727667414288829159475595409662585739030378941101127070174133273267833039558853222314336269947354542364553519697337526617896621063782990924622396710147890615253463999299800504724517664536022763359208327950786189976660696745044156711512289661163643930336289524270274028344943099421745702230752736412819824996393756219777044580091415559385956190985055578516077473809735737482486802577544455491858235217815783730772095240479228775571809549917702767763652406365285445284523375054226204693455124685579087124615399181973538951690643991733111108613914049625130583751473575089446290761760482148199746597137205364210397105699608977890598306380539138729275804082078245059488054926149797257343237824898827685189075253896040048507738491120624893750253869578748683205891528497252061955497013670164150273344386669142355370983639222970405583042041202146825183188445461021247039329953615373785602538314729273384529936519187453571111139179325615274894614513461830140665515956476560510830037112027660158802837828269895093940827363706139671885106708095827361325738982760288704433004443498261226651554574968581936727232984483672254838701787716460740728630204305431152537453692590686348954692571568762032022555877746908105285279147114603393122710724766737346472629893860327529434940341030154867188901787899382037149559526496602245265197197507371461524340255887080018669183159417174849496217694534082585969240214094880553504746772644727638238675304232850668015803093756045420481574937739775592175253045451702666944718867079494135299340876046836934547525260358550458942442778351858013438797138495858038688584845608656390905328424162685032223206469735690213543109315860829370426851549707857801058148643714599525991271230775302075672050998114808215124787255738544155487913332783891281108550058242509611019947181794857597898872806679256259054001121313074867221067394380037684713622055269688516166897666911344802280582653453324658001254706589927021992305491982286096663289519828304017873342936087490469730618504312785674254752861623484189143707764328891850668314361059423339396197691298143521289372350593768659597255473375546684468857741926336329856596219425814143163724003841837320109734684187738787222365190564860024847038811425990465513746838905397791858425713325164380409245215762258522727133660043697763585030897219966456691469892609474302163325194540882349101828998463634634610983054937156085622804433818184258450484330594671026178340925464075299683452559042343837793886272608000206306637587029014430996934124475293830754423217715583331254016189137685718250894088108097379127467161770602178117350686125371675702082973052154381477121596632667794439998580687070118738689838903252164050231289795912521342373648497923107410192801827163259062916966995142902617890957833755916962915842877123224066215269191769352264591927569677109282770861418458595651335972984857661751128519495103920561127374548734628854699326389346239323565513762220846850515318973928106377420676225631000697174115645248207445180863053359187975794219718656992147890657480311448990454081606322359125532018153987764712065136499219819417650349084426034988952458729575440138398128538973658956665437092408689166768552409348425712145610876370518805008873551378664001858098474322678894319836724182054643407294890684901782606827700515416957355327053186977774524926509314090381644877525115045636266607285526142359308107773932192733670987370789693617869420191817336831997759643342042820726529727138507359447103343933683961149920906162330469878014763825829589186758530355829106390539948174038067518238745473945262630288745912760550924744489145917545899768376533422128548116118090625820342661057283925160566718570211344617103254664393317350266678973385723596900006484847981248716127887904362376818909310201979106457429761761442470448836590135572923393310661265849800178137628200368814173907203045103015955637082285596582606707829598422212795618922580904801457974700133189905970069061150772080630081293947903709346082197843383990653587107179166053387451386925819729556323267644213029826182161158453091158800054926869937973380001324839517552463789236557709079285639096415071442383670277642753525088579667862787002134130372387958541331907940137119923044162704468776209709611192878858528157729838907053682897860626511153432293619904651605790455852389073452921055567842658094037878561968087442132883983759940200786889358425921010772425786166067402635528948424987424172922647865172022685085120304147605801853592771515249519646491623352439375625958225383559920066506006149770414924720672303757627473519667562572287793998145236342742664431921927750957923280558037341720073019822050877035257614264945427131525356348463851220049046543682464279530064780952663216670455689345070821279946513028267880738876762354310720030715647737410950869918552305325113343532536745616890825778746332199074214954335142164628130197032271556005130367162539190566021246285799499868401235556065821796145929746956962025599485034623175614042243613778017093248737301769803885799086024707396772296652933183872973898232759293965279194487246524991639173541964306642764280106928217599214988005531457944601676781148477118553523488491093830821909606604837584126573490582319914998652378992648919615775548333062146433029375233333523789560143115031204682044855165866652839264056848070245507622626979362281898417707148821862895597240265828441603970826035260113646958435610268061473387031469922639646903595816649260057208983998943953430019953248931752946962578938091901641602027465126579231008046665549218656071925058004743900426233614558882094030649696494913345609396864433684964711545767864088411701947457076997277610738705575891453161502590612059569259241685368444914302213236403395396561726171220715085324071787267748900815633177607338766034929647168460645467476517800594822334533113576759283213803331490811458292445351100338288127924789076345700469146368415797970586871400374346386951914175165368764605009839772628834978296171519094171672720000270569133329402916256223827937538152533868587799810451803537229377855352080806708128444513760664980181787378470947572774614381756437725681838046776485419008940016020580057177651898999972124037366338541206902789019209609119745329463776838723523356066476729157163286339281024522410040927385059936226781306882757057600029366594001345548466037339809095168755275276757057739599813261137553919172589524929146506268800196797664840826723779035279173963633083718718434473963731805599716668604458426484011381427077917654820148214152617180122433038541961791667592349783666348285589597098059653401846614736160970763958175839146087311114293014647166497367915610349064113415324522230062959996383711492470969569868369003252770725465950304636176731144158303579838871606889861608865320008760857697494729931196829579799701571679551501208402571204003875436061096737075301597037833002467960286423316075326429445949122087658393078319421581644713240538252975238302365396577652971902540968645617070189689622354497021208527307458434558544867613191831626001910306099226106183855735607422203950826332195726404337040311656763629264694198115037706510345413734893092342262648387126126105758024397073508302212938023256503579922899360404363751354010712392586294033074155723894160398974983287724862346206585905709995178548774248116721919821168504642800302796360352530709920149227762488936509768491673553151376261382686263903037277552193567103058069006600701634083139920287495990565827423129066316776919203416441964050670151278730049161675367577223442022144055224891700020035706610671448587280399165929683266059052853784558419096679670996899295015849932216568186537907842601215533854063298097607927541946216746674147759116603835332115615993728171328484203236686874205850400682859431040505011233646941269318125889080751321549471016596629040264201835812333961810542923857546673510994661835047432896807266670707004954864830292009177988765164193627728421292789064100204463359086903455753906137258126823085907405022996036686072367447650202523553697141819033290110856348171048274571975474712453621977097833639526577361779920356313719748070852308419814975975928982528621256514799600476503308986504522182835746172702472153423421861002096201989033998281338640304025336320585609272960216323230585739185452226338229223368803896819166562328723340193478736651613550328203313111368192376690183070460845250364068140703201226003242214999070242433303025901794502980900312497460400550131753098420495764298634845036400589857569818624953027679368287069383556784815215059303385270473900090710436831380660724443022068551781665061193262414384077876653177519695360343497807235219272807700163020645552517851259589442026743836425853140315708625675297830302819620890099887193784932049249983197256416841335564046137253562425805160763757194863917646730943956069523166795235957028844621853986510026108301213497355687874484860071418328373316036367448390844247007867590535032887296327605765753221523579105054372409058449640027247550816913509218271830562442103956048566124836267620581949112350938335263129349338253603086746192022703419054731212542226585691240880652128850696933350190513865760181074949425230030798676082924859336363267160428792070067141969986714121603772810737218956780180901826734613338008036116440761615372199504768626913571125460342134128997434894534769214962807345328062654311560077214331550161813248684386622649963849384465054980500375221863759938218502544008583547586442306457430388250438319067105071491525881394083675612373543134166478584029784059940585002432157063242395160810387741815909005581035988511429985607715543529018302415169069085137026245374057530398009068482838850146889526811591516347522300744546516621481402398651974705469335725772870944799062783983898061469175440629485361670750484258655315363349660012985264094144922275588748888685994458758742882236209939771598353845064301183819403470953492830323975427384230194470966459377750288746830175806700648005204675401743600613778437742249647476155331608809833852887251398701529219751069152214266962044969360844209760499785594811543235182339093727148701892721957319352398348946622611709637730793807751196360525891657662181248193449276933780370205991710560856999326260160681451051030179648358870501837589157401247443908171577767151820390744652217610491254447976910624737364739291644756431851204818417835283285878849824580171751310215728440258717793384592910401869870197147581106020957030606911284058701305633907702072555502048596399383168961787862782026587889972825679274166715934421851889990264015095275355537117979133769297339732141148632268179061305791234829882407224137005323028192509059842370228441869045217045357690771063863379742555756610400140441159375264231067686336153372406195860713947862454236133441459085745002244041514651336693794940944385025645944277084940185642645493701921213943237287518948077126755199355126308430398601136558789418535621237257412982640801978534489640033522433853429859456173622765137839135920984723762384571888922475867272469122284497332911238071807144713820858667990847087624783365622708283946527018848939909158112403411860966940322963434475697966988924718551222079662503437507714688740337485296139847881170020772456627809358989414026892847054763018010602153999886105032336076247949930038643340394564671810961361905994226361831166498808034118997072915177345746352565109173655924472261331042313766834510061144994177233797771957748072023786511083994893331649422688682767513611266172761313030757561803397596171416002452085435268204861700237629296536295554287095462709624734808380043928099514037128133664509823096366098753847647389134976340990614649197445013433196312582758048050691941447729205935195239568588588476580690339703769199771638885323082931241182155100741156019666571230172234748103102675706141739258997327486831261371213848069963228295338775250250935437994421416898392894645949134571990724606071195210889338432366864800311978807764063574507874404507886169075484786738554460867681939963039454453551788124958597536189767923255545035913107961732343926069222893966497827182876939063681574570876640669632024074400574343767197672390259952998578426403936365707437049295174535920269459506155116762672762672275875728251851870041034276867732279456997719874604641000939072827998600215235839115881698142085453754548815206216418040488568626955189360293786634021309354395228945438298283422196467739979880348199898882521235264207055424899892566859522068085177654879550745738408546983844364370055157596570070863840036986512380292108161868333302160950509914785551883341015896510407743355501111140208784757229050691748718509421357193979246756625866752042951118181756713584580042365165527496226687390764410043990217758679946176749766269163060887824636359391829791722820162514844972295553371791688785808357377554021188389355738492778711147239445234161675876330885127468997491521220609545126252428760379863204137469302682486299622859108351667386941796443295169261626986335411648651553160747023626450409239930195125699668597939520242267531980948001606618677597901893902135717488624951700312669509424416261916514911077511357381382045937944704420376037603625908056740323943490459031736945197351529774904414072557668018914123513402452442058433947486766925297802442820902961521864355969059535318340266498107227536115012633431133736799968203998635485754860826499008909013320732737608006450531500189790950033809413314109689921896926709847102633756243598714068488591872275932193679101566750734193689221857815133673232455349355841299200663144339628282416514148852526521277772157387668236557812211330392944325253975280302415676574644735559223555646880764841867270674380150845019570078209234084820648080139066167303256194161869082910747965998884096422255764373140060264962958480207244176262894717897916402425705677243654532077767253322613008520748218552148288248341189079315679006800834831048090251983165210027035433755839397919008017297687634198881810107999135105573968539548099518232291953601868144834388969698260221923402853866190906769040759784585839098835488736040698703046993962829630544882785981739414638296943017754920903055586523993723466995660167909360116433562305564083533946032526496146580865433708172799502259210408575284141254179772610963692255160124574989331867677043923189952034469350822513104303394274512318448866140484029254133746812053041728911558887156080767228060717288580316414040213294529578785970768478072401398223635673288271144808168594823892536024571712496391496694682181213526893367269228021776689534547707602263605728408794646531581286549498591448852005159907799245030708889698334930609483488380500404777550970633597566240043367703491095790926557903050537497323890910915525191432744101308851843288534946034612710764581284087218687890415682055828867375106915181798954649860972063863515728260395558546995992891670319474812666680467350691468277967591634901291640789765477089335972266623139088238183352389348786172069882361874280500015445873375065199576971999375069491163393708399061842775041364995825661807475826263230066334007664827782456034451470712758726778639163550125599379437423014297860728577831468559038322969147115901716469218342914278319139053597808022092316524687368596739437920916565204018016752569598251479234646472037547579636371994242578662835637049091332267478038147208100513575895302538443216963101899877652580410623469597599857585560511778735724023063319936425909104414683440826754620317479907353331532875665114570250962228742629769496331510276208673609254481143417674592807874587812572180737850213024303990757897823012169798939802429611933975599403796408607658231631304519667613563545669073291150091561527665904346426605620148203870904894343140625283153114628156078955628195159358222889858233740033410450448006283178587870483929207556547256856196139462603535852088830971480482508165583760335352897982977313930646947720379451690271978481601763857911040772748153353787221750548064782462235702841526903526051144926336019380166156810445865933093923902833077061002907800452105834555476386518796293343271138797570811540350550941265347956936281769874961080024215561344038957522744898079164659237179161912284241702944578885845547890039780371248209910483175918251649485213514859879190014995148385575593238389554142333984107916763894440648828489537028451320541955714041641519832154966883463429318163318439485476017303306189207744275634418609565767220121544623747334491668066980895866628239824871884409240998051243223109385069656791111379690022994450978486468509203034517724614724120890555796843128865242699968534063944601369469069001268722923556787160017822108233894829706634653637443783216511564263870083353088285415802652496491356763384085546799379164532594662221296952768097173342867903227693286713313688710909426710056601261917819608604221430838379164461153912580844252891219455614408075310969611040624558404918227126154929976719047119868090908322863144472089582940233473864982980776945586796062758409523043242858303709572822788861940852277288923728233739018170423187735416540919684974947031459261391658250184858329325056452670960028282525872089188159145939802996329731304090732344908895368968859203048552441776552258794733819559940425262381255946877809632741490887264354390884379425329662190055464652836462329288026197369019236905084813447309330352187377446120708082690840764377164733138606677439356891147558586121581326277620407743997394881076061361879434354461403174953930885830288661301283945778967269934899591875033080519515023616870612744986677037198134053003148288554479209461139697915035751185490491089831000187160914851276574102833181850308483170781805150069710393641449016870474321719181017089965768504250645591689109781226498563392657973844183998919572285800355210345313510489048434753580963508322239358536233065619471147384078423693442372252774265062684780820660040781174317192208292952364500528193257822654487592844147714243115560734932929709580978108855402514547991133121510216765810561742712266308452189166671288755198085497878637326251151242806190425609056272846053156502246263412172335790047615449228192306936214723758021496363931020012073725092076109390199989175992337144060845359420332351233047580431878566474550928719059945642086227158189564228909465343785265668928851081756563834243207081447876566359090727298037819098361213743210721926939100909546376686475607570567299144070859031355653195342005303124241880781488591444553466200602132752046028802589818322819934209778454934443680265611508248966042331408368867651498063703276454058678195724494940148022719731392809516513570322467894255063714345031742547808574780279986589204447286432573582361486692115093637538684383711698144906202765079150777698342414006897221555480222939905182490635981374061310445387144068779450332237526785368124265572051215663666794232418936497802740779493068826547893769875777702136366594497404846657548235783205285252703816687558628564521485269884754760760748465636344382482958895639271968643060607902718271529519101639161487303035122893648451984102630043735989426437768663846930762001870529886210272562510030356649144046799183238306348603569969950241457891043710176937548690145266370646119231233554552358655357875991926781558294401765100270168566761678269874425758522389707562915118713866404574819856671191590558305373551670597754349155716029013952503229950488765308861793531776636602157535032251766893931065692510324817988446526062898349745692747935910035115037402860156769315426750767701565744251850521662368530242260254687352419360851040952489939697188683172941371593715520787952930180521224693782653036424227875110548164354987668205313399174055065253431563815137474603535663651825162797000270050198611548539320860003690382913690178114926976332408098601274894306361115220607625143871715743088022819725862013206190686121694533671402073354891036285262748212167344303070400494592497221004231765559450713708273686027137347089879760322246212748535321408608751933138601782142276198148134142386660937931494244382050600298646183159413536971862987554182585891430967420700849601502011269135511646416972080281419840643839270734313209205656473104113423578100547826654455820788862322875976587354282648358548183700373424623080192775396428748820866646239264170778167673341858032880595966512859090333194181518305825410871511020060524117972912282118001521884357615912719028743219713472670817216302703635266603827522550699222145944098093616185711434495453951217580389682587275841744071191782488967381037650277554356415127441985198791112646043097151588023291656046620555298548619790534865251011638594424223406970428127501851249582711122852684755373407251751284976019617586532538476169363901999112020124656187529959557906632136759653122317280325577626343690676941759420192442261812242754990852801917889209576784581885978116626295050706803413587131707470059148042164809095164056820084731862748762546995354488811552695444668117484114318143378675563877074064991486212413070273026479448823652719515151762450645686193965129412747966569869714243714651713253836692326169465915851573316890572361881065575792030705838939550331762892862258832692802909864445973310049361502703291394258856424403161952802612878958165207985374200789118854948481269059204528089721670302287256217340701962742359542288691481579748386928246311873654627548386538696902676125174153702218646447770648961902300899224019728290603716312842089740039506666622261679587695805418013360388198961382691001714348430405557405803873841426236045793971951636524338642838061004726891042668298036808525071933450369216597503420432553090545937806521139437252048950207632021238765964392939982124803970611736465599422742973035559029364605913130884970690360471647282726179289022117922028915166797239948806782419959312062657434414460901984011307937020712275095133600676081409442328341420081486921658307129295429866313848604899909922690118991982853328624241940419214586109745858614500634106565827025390965777031193252327238802282606032634247999465677385301843348159136218777640971957909947724879217870845181631665919332138940753883299217642133699066864239827761241258043955339471327804254906741976546710285791211680607328989231274560163933819385148946662738081222829717761915364467816535372525714509141649601246862407731357266697764331795029784452668348727470482950451287410338864290615468528875367285916672668358421346139249703168546684730505266236466609168221074595899484379481447941846242346091184246874901298022141237288277016848688602339103080192636802486823052464744677885994468432184383906445266434395703863307678174384500649203225765253860688377235492577381493174791499577867078929149428098983546353151919691128640734503604557163311333702564271723125318245059091144056264797669928901251904342648076245621585635222529491907396012794177981382701264059731464998358787812141766815442502127272145027894782065916883112213763057927902198210253735873681666845111940345936773495458010604851599877683115125113765154487922847205198083502321512257641997605039237911871485821003728314842600030957823679185506593648002115335412387958918700302235203420276302197204545573266936140473416463609744854436762826585654118938147142526819550490717037399471014479831366089410208064970374158486112888403373233261720803917489968634448849243249563261822804630701657431505949093689335569180237399281408847545544716956251574188798747206624157188209842715760494800241689922771833501460771334729811719742136074436158547737384747760801682821892011229465613118495079973952682316321992682423173507642735841287517972801219494842841112789310880788143320333194558863586837867610838658656754574580762958287685850867038678224226684075686766079400585384762410625858978334870334665122488870553217012757894155610673318485376434139521728439256693939752676696434328968502664550704949579235731227735095347735390314658881707848800256760174691344758818790446468008356952378909362922824299198876363764507856799585778687115533539806326383394854550523907733831743753481750519333325390279823702607307834862360182789191431883680426093217946094516018527186036154780491222465860289817676374682481698105549032616412846774471409201326781743623296937083277078227599394729312744229377194835395378432238135095903212201118803887427960586380297383379993595933277314219574701455081888878721352766088235875251557193930823288535285324502568397735143500599024698077261963849659509689343503156239416899714693436279985333297232111530550420157892189342445954279322028951264339746148159487597547549374162581789131924877977182390588352195398234336900793089611598774150284551216420405984134426315147925307275048725276771333872409988873014650115526922433628543647776295702117771869462804668400760814589840901462475409016770709437780403314537201572065278454046440183008667248412569665372677886684351957718510955663261531946160975841056143125133565402592162998167224514525285412889230018440801039497551883221964334264421706132361389277256587124907574768469479222304321480539513264845952576021671433936678558769739265160479479700182300552414671862838343943142854539792415574680157394661397319011574201323233807726648830145447274076421008720977603763676568237310201117175906780348586782858014929624180110940088356368015266655935888381848101662935305935604902839078806057920717398928999298092303439020341873140246823737842798080464145973059813713172998325962251329043891502579421322268333208369123188508634278207268510248847861059567985723296037760999905799498939634050670521965778529163856662072894200976005264018418130900947724999061142829284717576814233752785069615604859959383556258993832551174128382359279436217670560627927816600188812236016695100430661715634355113782966431140251804176082272626735309727950215103170603768397928203108003557543252516330033332958280490176167981516146237586851712292084830992923268884945397516918493089110681707528805649883403977377043760520227449495016397800673192391692345858348338440599835789074553813898256927803894913101746857385370160578561088872186449250996132081844695652009743570973051672960224517967598458261983569503262596755060598030763067199629235142062270670684406326393718548033055897827581488512134472923626916362127985545267381543728684260452435596024591426474737883227399924321173314792656065472396225903304018550317280379547064689862368648160891310722908000738090289403152993353768243552215888765344609509211911076740038374309022639436921492532106118429754378514953945493157346803100716504581034941105183492081511524604303792182060667764306937475911906002132176536641452487990791819376699458550075642167689541119082934924116195364561557170551319550670030036362668718182144011216215113654054706057776721932926441089673135230446808317418235761330896174893731962779773032890929231423664210032900885677441981319433411132772888321667417954703420360697993911664494347070471516796646833186180147323027000636673259381275468930984888356781116098820294382882723311364710349356735830375296217519545882187146273887907722096366515560821656522886477080014276612633262768031500042261162512225897914833508985686153338779495118206486568062012017395974131878797594860984849499079946144521072358867238093892347212116735837167949086387288531136140454806241268827652690010824633563083980421864574615271320500207001733654504894783482558620262279932825406571520629913973225947194575152584354489212314052678202300081912493247615590764407030486238214596038275092310847095163285159066937586455776233251711205426845623798343681403775702582322336860246258572960607505788198189484753142721212144359459879405533729978382253845089419952406027382534090358257156021052353959923803941588153920054625727202520492816623909697901690279708244049920843120328722417990658077470634738406350697613934163520739806617640890469353206789993880931519729076370973468555590692818630460910346734981157418207578280209229733891341102956324785044648668144268575838961668102722379103529288276516646999525460098769864730427258042878231711046781113558236491077006632526610513530137379674368433406963628143299049200643326187194592569704932059355037009650201921014241908209219260876244235509161402316803975196738951642670872926193128856838954272153626921060748227061526402613759869586348113560745992160181290669912792577765768875620504389674045911834711049865926038758315130412612440648702750821409159502074674176851004056484299861974423264774426009907594191321458051205531395458259444256053003408508643805938058794158755167899465484457473963952270289278519355105482393761954189165596248321261107435852077653059723263334463584301411624682302774915125772501257642083650695144043469436173440103461547935803751944911091047627553974044309086837934383552956647467564573298488647584984117364831315919059364687910163808641517427981563392315587944380824279549846240261178619594193287864939955593644620328155760520200531363741723189872144463502911232194281503864869898603003463246815853047276942158523048274230235045628915823395265604670076832463431684771217045280699466825208238373944121624344694867116775419341848442048605262022681267109854742608391601255377181434841010062977843290151204221284459370227041642906523796509620044917140084379512332041820057583237881067365193294253182450334268535621819195563067972277352016057936033591415608071985655382942445488412345675148920009922512077140069569618043351309736882046828467962748892745786108026303592857764680694781524595376732253811308838764549548059303807758784000953932701682509333976361511808814258477622946691884266811739954793146198310376255811238252479855785957671272727426571955082219534083511922947325389819357732905819786510791815711237537779104967774950441220954664965181193787126855775672080261076564146463113809404746898053041033348046111418162174833606915606337148582981075839900232319750335410304558439916746733368856993154180859754959999938042837421252357759129947806984068799427353283164158509528742458205800235266556028361702755518034267826726391205681087328582172090842010550090311132775147951587784950467372468850505588940168951747774899222030162285175901662771747667675666987038960813101913833609736865713719295949971714739901938808688894206605176695145730007964829491308031712233595190008946995683854031978422527758700832028340238486869605303747414015109407673260458592483769925986616707787570627508882483041912251046453931091716986609390237194877299922087016204650744273558241064349221694152593001650899958752672381276376152093712097222716388908092845622659679046721642182085541065726546760707221396425431125624731254671635056294489468676013850314892840612989352814463491874898016660231511996486788631747886489323000424920775850757995743179306699039283677699701562643184257185815106924565075011421146378947856463578326644140154390329901500623161920858226276748665906318836400871460062664126309746582246719884740516096942179016928405936867953645154287521621193658091719292848355965501524486691766582500759454219689456369498644731214633647312994167965469173316167842591474786432968469647931739387998359893429301003613621977813200156445573534275440366866868950465455407787442204881736351125703481352421231902229743764799924497791801425122334665622687006200575812389657882971631623505220595208318625917006070991394449381124119788031694749991196108797033920284111819621707201740255959565016078065163996758910820024403104688767595785688372571548054236573805606752290714407225233524503044431754462200723731332219749858191820549682635179694563661337347608140891755357941704018613116929607241314242689214933356219781992674023370400578735630819899923445345887473249767261830348162060895267670475354708248925453871889804636265217690829173183753252438418581128957196728432987375080891970810112662810037348846256456513025174076292308940847467202518798099087302419946787146362234359371227948644275749457145177994625257957510521254787830050290147435907736149650697528052342843832743503074794207128755788622641962495746587414712765848025640307692576762247310632406789376727184609786774845475573223261500085863674825507863696169265753113000649656708159898122979227974667734583160753713825213802919951028676581030602736070566536602040789080245463533483159257690174884742940298268806895661563802382426939190431191148362841264574350568239335192585910008800995005051489324570652652083943065977532307462387694507527612942643754793843353326158961244530409584960202158924353735881412221386362841053010707154297446818911962113680880725509468536219811508341038367817109689752557079289718515474343579208209505333529406256026186098623630633294539525241885457160537546093449812093116714145523942105234547516894090341537434520569222401650506206623786261366447119962676623373004512809126760672690876393015672102382934150922628432602350275510572934539498161445963695146880429557993065626937780845133819891224001015760107545100311916916596376076064373493589619604721002519347706695956740741150148039693104299912798360128037648253024374684090735271138055324232019741324280652456787636396480241218245414324051330977098453690475183716682675595968105174679190607521455192683540911829293696412045863414759496935046647915223237971172334850047432731603029119530453060808020902265604609701376575010199985197995568633442744536550821386595060923186235251754693822924551079102179891843597774791381122815371838842201619551697130262002245605602691592243057448293842033070286828065434724645024549781557363587985877590226234072584618749873447469798729531888572464473477020761385741746546071058773086280309598039586967794243755066301609051446997514588157078712219667132659464097945501335285005749233477301331069303991331815398354107705245018484521257075295634415316369627629077153076450464394637964373156348234184121051162764284378124870726328715511478621495643663145100594113122084674066541111624390131340336204638516501516727845587428990042611867184796570877198084458364102313062123490166411087797612835296281372596338125299364658006766684129482572813463232164884584570696682317938172936219154750835093769601992222889097297788597524977564985553436813596679682190893190659325590896303847415366090087389364134199233894393234388701565637597584802160875827227159998248205429343674073689325479279905599009946156866130845631499000181639845302063202704885696255128243869292726793342489620885068583611617459370151682231299437455287649944743240617177284956636476062285157362483651533108569562190755404941933173790173398968151851833210017955431159826237004477823959935598856880156320107408578218163020138362819222791205659861153649016985877938169146099201158825948151859092984899629986588229460714113026791435044157230891117022501768451716328623476917587404621098703274532780811480031287253917785937345544464955035690597709894101208342756249805953310248570076446434141835661403174091475379732721029595701461860589602370078430411579345205138474484382094323751995426948325372925555662847725463433689644852229359791069797040465734289754643198078841257697863452277844152609017916976369914004475052573638640889716252573289625446684546382110070371201213850386039568321744187519295451524678532117780899127062453938882183291585817769638534649749373174933884507923262404183371067699017273092842419198762584521258466272013231267668924580101815723236928349506452705840006726864885719729356823068839903640021430388740428650941210904234751049234264836804704723579763214406007626068304509509832062551627344274553185310434638212253478581692497920507951284178151996842881723612803606829119298131636085755879141903034868277946222306266930916350006325664542980275382236268188910222394536114551823669084535213942062305560803916910700414024415238553092608142192626141212382158027095683589596447011218473518600452320736091663601235787435229900884861856226709932713589592345208007227750679265259935433189200565079214728929927051454520347506886216994342831893707459535787660408561984758202414365754985014981195963313921752943135252724874512942170931954675777480389737167152966958387027999106035604973041195967165660743355249864319722586388468422759203199789682896844386483897844206272420615812343576926647607550792946532634727502752624131177297744478933753517228428557716196653712309240555831093149912169418870243701577845192500573359563645869196774728353154271339123939676414345619778068643726758099667052584754699585286311764542584561417531486482176347973402940208507135815610369080003198560031091453806742855706004963671779614863399277261075562571456198180173704564042701664048261667789396120348624925968011494230943299889504364299229936463712073524997014383503418643812611253786616016521220772694657167833393889165669227375244175179977535784548403431169870010057196817381349989412776805849127029210116584655412038501270138757903193975798892815505766206863094187544931771933639155885260570047362419187351374040638410031275148308793191178179543471151918820445722228748507335394318794364657535993377014340753153953379759648468470581924656235053393807368458199292684769101535324399320099060340284687080821923242978212758492027520390494575723940349994144467631867658095636846509257752979763824599264804331652545292218893381396716510769010685746440026104158673329990932437404592913360929384028352915743281163942649117993380711675349193187208984358069619157520678231330082158277556832994157400087646796747131977939320765627704164935257816031181087154873833150046161702600729460454993315829395904243248168007859202283714063142600411653877734283597117126362425491648707473669268584622302053356255721770656390480484255463761890070339660549366874315626381747380492877823972317682034094299877650354125784462985465978320895571564176093916473218392897423589917075916130783677843198898109256356667832042980941840085714202185438868451494378505374572858758512585687262586417170875050587520152356342107046956036703063533752893337783667366035591510867693730603801849067301257882448422008438474875291185333795692010808399616035891123274355609878602329814067007790771219900802064659944275103180116925851983115646968199729199951233852355336037743067452010229185214853839655355678947876240589894833757158346567429968678593392628048044172620991933023410910743461951955666281600706291078761428712522266773610105437875137603122709457050317948892718773402728244193508401721562242837814313508052629764017633552273563914562720184121467272791499371780568892657869818578739349705408524193972313052586278589048198665645162408187677272896825478215504190893041410688497532427807389769623610072072836527161052603628900601410044703174188973967470722233728963720112397660025700175025440344720332023893848140342915891701895979313818413404253021097040210486838031920107064208643564668769940917123406427226269966544350935199788271309920290352766108938025452007866981880528943565226942896877710897168136442989292606012938131678017241459791166674166063095045088613351786841808509776420813783965970144509601471132901884384617315103976098749869491150510232803735650307338658484967528838292672166819367862351484101744872935891610352324251716603095392186418281450296343977386030288439430830675418357097382094941807039661013227035431365129369033914649056608806411845339931606825871033783228131393359503217437644791427286675446213401534429803499522602728209255291483912145946867675750390156296451484445745369478437453862081155625015548077887599082803033048404814300181643678937114758721164057673574130969815712879838873823161819462549077495862672897834039143348851746698189848150363242170587460642882570500623412280833320903923411693790863003507498067690745530537744286270006938364069394950384920577769979832574682160876299305055323257589425684656237783091002407273351513226122297853396533195753760796057135608118318310128646892533434950219909320593578890563495237127085758191080744073701324571404971569626952925275674187633848199138864262363394667197300380976379299110061246360308734471368727304053099597735329067180098824089177461377153799007236864580915608091844332106286504828811951356168990069944593743493775289502334329411373688066055364460997658049438837315795151937002649146622842934423732347576302801350409103688876239909599422086107363173808783130270207272916402226845241006974897851275780405453324199141672344147166908528475985916794735744859175676451848340745233795378684456123892393509090898622368197608356392645203161835091154188282827870010916699325962104986830602589512787577591602077348396544518154495868406073308111856673639769456799007989405823345158536862278823582786171154292172306311087755026440243277570706540860595769722947009735996527322820359350664306882159556729129206125635172382231857900801271919636399905440933790786663994279838823189240735361760208782293068278064903027583039134403471898382894463224184666837126439272286785363439009759625038766873789825591963461754618782872518794458221807542463982778461554513253826317676162323004971362031237539136702890774785773080475145315865044363241929435732644827771046140216773931861258392973539419360656500001610092084424929608575597389099345654401047218310286969733191911787535133935001564460615321131326764364763599213285643755096683680502466272497506924276607904637847078961872478393315104201939499306506270648068139837891344494117885805871922906049208013548027618265965323400473020513183812819724040240374053397645032652250883799090654722167283614594977582342896095517840412489848955320070512893132028489278066498889911166753891426660033908065466900523366641504175024386645839598869604540435426577817536450075816397444353541591144719723976258018672283117273865992787889294393449391680128722200100889727023978883506637988199162128155400000641318660475488454491966245129777948804385152127830582391108994148410127618355071395292681463421487935750136459788175160623073488138691117518007611851668320546704395828990475595816717988744490131441761555733205370078688799617053880682999330862906448424986024344715776060606372762799646407069017444649008515737467567305565702069959272465856866031397103877624596059695246408056587728839834666452698051194083341515537872369178714243031200999807221750702478642518385245890657471261371171256103842860468947853124432100350895478350641184402246078949756516782034410097737786801724504566855175999598285218230692447661760770249413246915587622824429337317973207257106346596454875306840314921737455034868767844579211140542693207166704474137762256655941242107498342668881541231104901142095125472144876267907216750702838485545478359674995294967658592764155497588836597144471790651571383132209199683077170616925871846362272232983113235072985345321182847743173094080377236415320588926075252829203103898622856543849030487056821502898846184182548710678919751552680064471031297599506736966706389295550615686973697919070754294297117820619490477690739278618527052596987167512007024988279620643032439078287441384144498830982056857484393077587438581415155107767440412468082775664538465860322913470231726464055887083846970995155873079938613510528119520998723089196266569944153755456332953486785774167995480469688382718020092510830839319496504356334445299538444895381044122949318177468365528950771918986944232639627807712349665360862879810393712631280443555225942081357859170688829515632669035833846028283765771547992348451713574594958280058781527777053071045494797089834378235629579684690429296578894612607409370733932048957960786860989710514057320527289918812535319284876838682331218310115533866204519823478615783547701514529122131984585842953779630715001406999916424570166863976217255448198967261115494905567436496169233122764081032298593371664185589897533433389060769149236930503890999057969337638571755850082108010025611397831338463045292214589156944484195719255211139513587457501753140528335170027279816031808378598912381158775457143671650049102553602764195954453360042449411026088610971341507474262985513945648398736250399657522761244299878373158016008465656175701817738484348172424458615080228926802268326088783560513229840904735406960049072867481818494944832370260844403536716561224725770972417296497790111719795277154928042374174073391879048987952969069799646375869642214254131223006823289822684716744714362670947240420745761582175236553565524669184974941338442341333363186805582573130529239658596144503134712073319848735370942318644938560815618123268009847442017880741485697921672172586547355240206198860049623453829724451955062093549819308377038452286019636950735176832814140492494318394532063160354159178381198825466540665162632017549502406190059790750770328667693545814024838202532365152736051974593257035892142096135353126635192315582552329584680181274278678989798042295663607877091643105404247124600566310216452225116992218543972857036536890301469118288794994935716697178925543300476184854935001606198861908407107350846428817528300201877799157123261931806005813336507245401537716089680565573032288333489114503863555218063864324936780733013401890224590643692878685240942571373004813342844353721411352276003173965234863819100062189000820850635757248014692010493674836749689108093141322701373273965640808234882543209224928014342373853243745765429070844067874190097638579703540006145620240434345994366847625298695165264782741955108777921570647077404538334908924444562256226885704472311913092486312222612112225113304828020668096404565146200695367127620360926774902510461390744429243672710053999255406578513264484099791760003957651794506967854898913846763157672382567445107081296239549193839009831036803961979324817804886261173569466693424887053168277551791829727470535782021766178109680248108667179302191221891431598439889226644695154215432804965622439189819719423910594337764266034155701922846976293653534094645090421731907626965163447593459156655864453242206230098965755322157047860262246418599715835498272051067944696865759569666293572922708783819225305107533940629466410757482628672033655813459353279576936788742474417547187248688836819486326534057203346428601999430320122188536967293553915827575915961070661511430283422991554806503997219983813235710169681654069180610381464094189780928596870177208682614361169714432459135122066789784015328443386063210544093053452171857292062509919042489137942116140556552262587724937998617713031922380868705530054300572609933555608965242932027991327228084879804265225757394588848451156656226578782097667870155008064008597910521484363592122434069536067979513669660233905417118390314700994241726773174682072186339699148370174174346444718709029215830454283972047696883039791580339145009383281331163312715919943300175143210608587139719406405572468161624457354396218875793315391278266747568966043817047761985188656309570763613859472663272157053143462695872172099620587537927308243968909597478476116736516219770410510523658510579487613738099994770316104929695104900720119124881013592667505430750804450335893925974326175800255251733134623771469380168051364554116443320564738049496520807658728219316429587506560970181977982549162406267012800483479447538480735638948305121429383654534409084363608306017088794450481203312707781608161916200387040146977602592107064696686821251793148372000741050339998255030969594348190218627211127700692901811019849918431183893967577043783773054433307439344224969240283890973623602645386613298320682041543880598227408680183447134085426360958630397597037351944947902039396029411666906672236056438237158552080358566459972869406114343564281305399094484307475859136027093354712829951721532030786715624533824179847477773052046038810098202145764302609960009097690301695014980914994590948541190226961999962240380010632797138805128491017208794749120403193427574579317984839083559868374597432876631514377997000815808763038157887207400037761422891508953339429329319382809649053047444592927643478653213051967758298393087784782694682391316364752094480299043634984587256800141585256883919135960464559585769874051730004905783807082337649838022746230031371788552136479131459147024353656885550390145102713600018934384943059226378863694999572703942588781009202752643378161029963135370810499446984826686212357059372236992665374367798148641444068165221752143461936512284785564834137050158552927763944113392122665208232688590682222543145543368673098516143058423048606424061435660370409101782150361868316742273287262663745870900816382505854359686515508714757039805084643874731122373057434076626544609049011515833726017078570836984405623990104038696034524833677877431347038657537641279266451905148004740802796086460047786114752589326587666492290516004321693498018979904368381540397127949900209884853913729348338133621734853947345438712577203645046008051859948507658009540122076971457267463072145622965581960043122753944845926449423369330023863374081353142135185768204247731371180084106218293352525952840959852100539354127414337564815844199664618115616003467878523027261908480327620137836828970926382141971854235464726245415855292997781596706149968453822946860606772204505718992532057077662082863877417216114285370098911331943968225528775960514131964919255235516956134129049400773490530642618833421073619308397034100968185981324341196931731461423389926877562186652686746955787582127964606999572332530978341282254410699993391293695676173352484686336801982874485602544101310314850890111016634659869820224321386075332740581582801939423554584523343251770379529841630196568115473200633371570610585025522874247368263390892493719657092573193201885041879579675783301766206463754271660708810640403931590511222340105731046871400838229394897617225621922195683630401881930696717954698386983414197994961529171155219308866499229501050561924926686774105921087696441493272549606755236243267810511734316949512420779195707284017216671745752619147509380022237361873336726354512806895399705220117744032698768427585876491358222871166561332339399838555368013434534223296300840507155473736663755610069564709226784308747150329965004819528829171910898744195322480242513985444199626165206720563918001346883235392856732915615569575713130727738188238815151656905390354861434963667417313335986397537788814217417335471968372253301251964800689616337035936962613233128122345684039711491533643668620146070670512236261667667581307361305122979797696926174028621365384619647144777357930251469137452531030744123958753845498920828804897650944030583028741884980887960850023821898574400654101656553712987763131782989991283587533505825067166849414736776322103891732963693751900821674800993997873125568762079077802242850678991944904738447658120446269306124139438666983668481190255095669017043887449384347623716369419553653501634978496115221036227880995413303299726096449529139130728973294565291752696795520315792852508958277418756143037492885953266126595106008921819946169416855353103119222064405456191479772934193324049964110459359796444253218883090943983283411940595091440783692026148268381292345348205961702770685459272627985520942113211597667933721062316717693440613767852436187693907777240937378009183564169754807570322304108157816010303421389775112867037541840336237684246504866607229528688474133213348880310163741777805865035183367969716106854580799505791117366455036170675468751880779770668474020634533068275520478013019582145798012594244521819556922163397426167175773703583247221428765837445095350346662551828459674333266282036737647424756446381014150659623647400240265670333306573052394423118055398935947216622601139765841222896324787998936705916955673824958045494622262164532127970390012326334732521748862581547645261213857864642587158322193872436234755952223034818670822892821990047043915591401156016262011075881552579129841892999799538834133501813784258869039305304346898716896498095734314502656837978707143101775974535136978454233867295344336721099658287816094435920075473832676039886174410071273015475382379743141229814010442136775605054921366269026133056640491133160645468831811300997474668558943460182442109593775796238141971137410485898568667945538215946509441431674236797922049717281192712016405483902441645024326022315243512018754180783070146914225656601629705650772262159300978875448482868146557682054928635353795188359471944100029219957820421226875319168120779137373163193899228378524467146921083782856565663733031549440052106706530755411673459302806481320265360844612356446805844130080845479820948983264077738972627830071983529699487830897901258415114161443949088703005174083507606125830397609885326232749155697567421039205173270262588338492411147188699867508941289515604518694235255400404348114671231866302201015193137876132398856742850837318315210044846446297925623861631227337803838292105277870173826420731202888595329550478973526369977672147501025690041732110069692687909471623513817813289630578860250663698228194156597270016123700002846045140538131382096917678448361514028016464714471906090491124817468371563473432712357560172501561959069778166794719064839471442842864085949888107866010085053991437022450458174918931166568398861531226762639088510842361516070934594996696489079886960633463921617618799109479655877002233183113070631033025013638693692853578499486696447885873401807508426033081442367621739211665274203190595453365770392500859941210570063465967652557386671862669361970577491960208918209531217085121801972440934610615619706222235041920083166489993203430807633782318178397396278403428422123639311130943335600592504448002246747261374257645610685178182704292260618022216017309508994846444367878675490053400511255688570254689424399002479624598948600392866531971662002942432642313273931917319114201365784372836309787649779743577036946308695599547837533756997111604574406623214149834594863373647892669846188710758196503941688869493531687864233860815446875750985393366920842827496204686003498278398838019620850601989997359218406241928355942701621707498273834777146624591194601722646760770695249240739084722040686037252347846598122862945956477391075981740773105451114829277249956867676431730290794948176387018738969797243627889911320779767013533992088672578744169879758942145255835504975056353901130599454233892110382287776167199221638596381657129946875759874575025698266701774985702166978469900333408519405603339006887622744359399490573409848057832747297533247125358875032528512847775060870737466551841069022864086802016426079894900580790366827623751995613725447936669992955986914689524050259709545904659701932176833652649409637545069333571710040040004479797392252994337823302971081120378145522510112827947479896851549419180726344939991142663506931228116365433801859235301921033464227772457405290147007025007718291692041935496845220613946885756107885595102210346179968411667811882890060063432323925655273348375882769260638085817753670499870904403778913766113389208530690937059173876832807600137118676980762465339115948608540603860447702925218185898532595664625273327594086886295847982243550424923011379066778679397011067033587693944962390762970070375959220685819691921180399809768805894076720372784463953530593712988671130463500588062951083602245032431564805115666686244346135937844699804933218661859306595038789352721214842040312109026116322582585958028872736890391689463633803605169302356930418174606073982165210149038370605618825668481432907995417376210177234737880209218217426354812694056001590915107657639208152974795950206381324408758065062837181622232345349638308890645586596372050860482114932151479022268617112285881741648980302815564988538336566739030840812210944205129257281336272805551958844186144946578566391640223769343475547322713011589741234760990360652669135712476819436239163639809632744993076884696136782418932670954818447880204730779497634932539076425592806635035321774075955486160608384996528618474724499475642490471856454935109616029019566959551830894916552284227768185354878382659315006802756716387496762164653883568244967287656203549113520015392366310714940014720435186299004013583050475172364168066661040969351976950745407073499575105467964669050136446311805859320131350478767620699697189395028656731197520087600148928352206647177495746688836046811644254652466481063858308303282592155886920200287639368265483184211533310303474452970251921006631129463034008224420966517381251393536899067247826933634949457556131131952348642205449507789402327922479709382404035319357412868944593150406632780199218015471467021117078449648209756162600121961139198910126808862835276055449363733394251721465119330651507785639350313401372395185514447891568262418390372093364246518093752532497736832878216926163711322260943307201854889510104941686536994729116781842554119690373544527327892409306997880369293103290927181341683876349307842560672371969711235528846081760271443911303475299344826317717851300076753073503977526448896767398422787481383003934193217584874082817481441438604693836644508967432242995139469207566548289063106231566226844855751640469930282020535939066553751864254580680840748369385954033292652093018872977868632661142216064039824275058911541446172318415512894157492223733907657835130275668359056625641933446053907374566937815513989961356382644766917677572767114721806727229579305403397452323848230983412862686394576202784008842846169869744417765170805757981941057897571455403193213756348321696578653407056249736151563741221229908895953867225253407139041613181828702772772427779171088042998645688509544743460647563916494463329177685926254661406266756426144008513576487438577008459272796720246010561772458944905593341662117377154443658730802711575372031578911004032192208359366457046902720565165371194591072397500576608151150759865074376113388770906990538561595669673298860985915971388476000274438413413753007551853871188613026632259274725742570674826208120050556494961058028852559446007429048074048680746110795790738440286885233885277710518991277096133853380702495884656764607240069849680215092900279384127200388431010696084615577114078514958077331211714743987320682011803565840462548355183135021584558225634558270729427316446892775658846068946769772238470722738651538873746646755486048556560137736489948308741890244390186221395627154400893526293490440581063492977901397355166767898246788127428988670952228250626642914636404038400931418840210385983022678208400691966098505896111951170487370537267360234273507401014913520927603394437724938560985196330793258105605327096594625481707673632223122894951131528716437268415349889900175127137717404859629134427420844263662642095698656283714813236022226882991278332108298641544657366862101625340148088588617183250410421642134321914078182214474869207095597542352419237982826163266587431187073868085706422236023548754670838256969315406773953249815174631498024275464582825112840622741354448733171677374294549932420756333347336914586915395951172766075961150323357325471458013310358934925644961096272730659362320139491638802758211322941196134811509058892069519103665262721949553041497736031879538345776462544631738269444313786697195444824464063488326070614221245445404302600931151885974174932247479332082211576289152021607069365682569299649466517678983474258827402049712140960587381002055672074214437578260660327439862242387876133809305917430674538638966665088040336294734565492798712973413650692153783723488341944452418589510875966187602230124607208203342973757491968770741588907022159033461642699380677208637221304297931093623315937092831528570806799979186711660749146919488586232514680215203642622016564881662672495545887602247673014803080776327811842246490169938235803266192877510392325271376132302409567587013528840578848601938969692515546910115552855597368506796052190427937615362695752692956384808381374372104341322991543538561919369798577181104494437878328016452133427811030427643507523429828022091170257977932374961318676856844271927109440052318026985236331671550317558895309111817353453474197200943188799940446932729166031880942831864038090256748802319551094451312047792826236781990664182432008401330429067967810074053455032617731055976462831047870878628628210292098425147600875344476884884901230041435017776084571406959185808579917721856369032340480865454666058752704897700731312883631612574519254094057988373103222940345844707162337370874566962099619094517810959316410343168340158927749040307442947523672917310455588863966568467651818546803190339162332973350045969479959319583008390422778248678854655105240427062789361515025115472471769624812396254151056254305247699095159527379614496811362007295344202022531862508576420181293011655137340040532029210052585125196213858184741477509581409114553837893125946406366441652423303734713800184405116266032172152128458257049961144143374267757141150656707724807779090913970857701214542935210214050009152670338424038953941390868740246456298597174187759289616310339736529860773196233171888086405009142280659633120413081164543327313581764496286874552447507969261818800220784175651984313579153229136064375918204444292765074165227352315866671156042472630711258480166217529539846076691768374960339906858094466770586898199908042369890893840466309013546635030276984134035547811141052795366418700323353124780543547750074282338420890566243151505993100029542403983144602153400752595843428650218912399399017466851464307585445904049971138702708330861599421961412371878662369935863604494839102707342710539322652289179342431354770420378097855885722326802257049955152096965732376269643436313412335641770660120113489465454500073934956629622344326929095293932999563529559753320806437669997811226062692228211892995712973115891700332361794485669384334730937434152007566453911593662910560883733457705584976610865834912766340690944457590771385292665973586095854598304948111788587592911024828801474255437724598553622951213593446423650095721000660620159196881793646387900998382199689939780506757283749358512073140817338277454256211820229164622582268637399147142346400240550794843569799128414515835284211079482576968640976228451372884749399275850419705596651680631468611444055971892360856626471327492287913235967486801451243005946045941086021671139489928017732934820030318910439520022826462145128920220140553483210068060054115217183009445669603600396643857981167071445898381430642858821583479160548399051528243850893495139891596403439198849449325387735921778493261471934294045008180959543424973406700319018388143171975048787028893446977101130359092191677090737185123132425348389820046543803841615831916985626095588532131919548512164572465109527453663865845450071399722360637315432376806252625881990728452678208756986325892315997474425810557287390002281992366275434708978660313744446040223182108745775467967326489073423540084566741291290334070180281347756625227729563132928370658040205092494550648056274552272528919932775445929561552116750456483618040058191684491419313529895777506904478591098328271868985796037594242755423364755420814246808379028246788984870882922139573982048036797069317988919513487916171615305960708129262372212111485274823166885550560725851307866938176049775313343932444568574948323700924681524815854675305076008098520250217070769349027289556602848727421342829531721659697972148962954323296134819646487264231855584839760101384339252940703393987927587919434180094804449928042037183278064879225818637338891851222829300201933703869864879295696599591911892629790362919684458258237986111735328688117126275294259772158561192850127129538985305971501933329139531357026857784199460057374448952212658784061653692195278602953261366000398134601986642082535178487020619863607101841724180882009389726728372039123319206801573461229317730303803736963043820555008384904995141057765788992164349833152683340709163697524287356171135404327403364119737599877233567670700513444546686161797824845020220698717749731932851530849648154215526648514552520012987738039507436883260876570984088010628363218438945355672625959342292591125435227719596079928746620797412529215383524359687704279596727034755242403283170820372738381215472499036459740725613172291806894634569685688084810891381975038221696691929917003625731100325240438029508186564813921711954320360887317277632597007021884311111768439692316072889287663363747468486788789699831505909309867129643113596510632495166659737185791666474018778182899191622585388170980539932904071483440700112481775712851969914161788863637517363884133355938646914087139787937014614653805014400948144444317134035293144215394749219003933099450545408913985482877834588529873970491213994337135393082298698428945042076574973098833419081440363171988876042378380854792480027483347860278693020593799346300745049607914887463561098142964712995979850417666840468262891535767344032266474161478228949233497334685423693504559208254235494396195193138006308775903447201347215996839207395104276789915878393862473381768592871667515461835982248934607890597972411660726355796869833592534555548142680127854468120453708188420936311447561667283171813903714496653981816778777004508954575225389878161070198841391985536489834319243706884855695465814733915837304216137431523340002658335575502066657459704017405182026456437030784400272852614945530573928480189428685501982848787387039867048267050903299479086270147301094874249111287288843603237940955891760082046388672466593483745822684969248627144635970508581453837863161270270481751154676971382348797105439495563895402520347765874256737237265806014394566490983037207426882240036650422874941543044602714930181717089787952097747327214884040500891809721881221008489090103359605875009961227914524726352131095048245004982325880875021339462789538949062624731347103754983234184924923986174878300726437051137176170527690184178634253720933382327621502050175830047279856898150927058089007948518708578716148277486382229164832816628833660114716722119465039887349637633222545913655659191358993353769920435050640834754812458375083125929173432525387671737284952244540060079114702989003589466141006372663784913092299561170728866349066271277877861007941681136963514640660045544324683885420191357381228071263826211918651465539382269656599530525180078554760862458409351196022855752455988686135104750120392862082250948949104014128907539406687465530866778829446585657597652615130082598664594365985695180147566022646485323215053893204178860659075003070524280387370882298170599395370364238360058687111446009549658215440797285578344806413597830633580433637484877320625956063083268745477574937977762816374583215396976617144651437197542250994860048484692187735998371126985901310052883298453382784663390160277656398042530795687568536064226059429189617935722307381713006621024459278608446161532724711163142468033180515248566357586961426660339711967360444574184954138654351124899695397406581535670293339694893430844032084602418534113872709904969874846343252787458435503486641342320949355189217774070653306887539997255488790270305432343029570390325357336132138105210233156240336924676169278166464189742219214794395392244588125945292704790263055988396192892996951929988877597676810117979626553112675864255961216374629555770923738464449078210165885813565364846176682476484931008255607501498204685219498168417912193673931397542405637070898868288769929669578517102014481701844673721755648090259968925158965625403855986475052240509259169229099818752006369396965611043769789264146293457857111632322657876576299053293625069152798754891109574419705691636065585712322142147001033510165726844515876845815482314844512230956299284761077790920437980916630567274583583524519595011710486681202419932542769842612780890090306718526244966995458528560660322782939814893525103194108731958466513620244554271212446693291578079426472792484230707063739669529820280757992464824118616054526789278607161771872954933779935194403494384447003048086572640046695730011236814989206293937934892079515831875255984809340294361831892013544454620084185398830674562443249282947080284847590138547037397995589543044771915755534809360578997412669710459591006535976887222402064355492927157126038889453965603501558230908668206530140861361271581167982448944114863221941788189010870216279621073811463497282182864987632365735686809612997733781460896175269645359791185960614818864396435805521312502519465589531343075397279397837666548695334099581412254293243338657747870482930203321252080415293970707865977431009985825141412430697587836702889684808437437104345029624406406014393232727090847446956801328463411124759715600777386454559359486441142282880094619238708312940164932935782695748107121736955737376818441646132898382439781052025753560739576422350268689459345658762156508856856149952816637480740209664952238349324164446595650142266448891297581019451321188388035378968596057237811908040321947119992068181140072333503079428194723328010303369055988864851604069639511953039884571700226416075133684893523471886935661041578071797624685940295100189565648357926096692820036953058515402518296183169344819101836719725795264061049897058038105560643789016595041961435264727092207478324435095676853653285399145352135191515330995778353883235116846741228375227793533702764579609722231540634633177288965289937717706038778959936933293068143755549057812085235602315662285292915927283245992637960374692330870614673452430902006509900465991250003934217566998013076420812337691897725243039377089136384667392953396958167185178772614302954372708273137638607261934943771148881235838764960816800876890550563517072085900733091510219534079658005297346964375043952010808910635528970975702254223706576025771061285415632938809442462446923038590409106233726183347110954971838981160825387885014035683056540732289174340744492132422923880594869961488002433668240603287210848330835697174910276821043175160595079670792090514109042987962325174926799910733311243188322169230425038022694723604000684263010034249676718668499345273790315082690070491712571468439698626543477022852018535792875422191796316135223483342835958580375148542554641685990746731223252864314783624838175242011905772138064049673503884073066789518882355736119508273412001568827390367105286309614202584838674661407520380353759088625989900134627029483914115146999521025280055897017219446578550405744315138744135728132752626259963683982328827463433178537192752223235704154358427880385134304245872774333573652522645007226827520046984089605370373019197529481655237490996776363276297983729100888908360594874439282958428848319184582628646385625883276175778024336271848181159358036043657959193841195429748496614345540629946056472503843549160904705627100509348204435485235365087317435716001978872080230019306316524099156081733697666906680240327418315216207460712670917157509170207758676285894426917930890001724463032268599323770583289384062916647709355206547348808396904490059481611534643420588776911725593882459182987137559253808707975672468446076699418245904599010670411095039248397271603782946546464682715746920633645044102782296585137900170392312005435046326633752482253689973958085815099651837061606564861670536290718260236265893820174703019857458549991963076672416322851641616018135972248660688702496018189374781758905581653644558995627540748352201602555033730559683145601595468115973060294307615659640893276600433894038598953884473986174590861310194773567936362096652200592457144125065161127416814547006575015852078939300543353398079334169357352766429715679901682760804105210704172097411017608277464133321777131939919853874971022626476001352322216796495804456912960339986295792078790400128683385956818548997258989151240809223733147803866745014948223901981782883183039044779638087133153863875895696012053986193351057496391725144192561491521663946493402528159940096911497303674431844916701396897286049096312420827342563940463958333655537538188195300833158465300864289854911477338810889035763298286329999995307579686675194088933138111088847523502824408782106604428422998684429259624390759294067685814708817279112773157108044373915300864626803117919784739327817704976645013195837054227456681935792719168877048143155452454532983802549333893349414255345410504707066951125661181164812202664846189694733851426998116815996727602885188173867806947936519935975787391472374890830113419675314133319931310884739319614823128575759919118892687804163907093159397665219792758327857835854739207930187161882770893312905438103194838420595573512041237753052143720877241117303891494481578488569612937151914297150781285914453217878956979437748851413590117201690455455480771353963832503461302273453910010390367192154716240696612086496873977693063398684361190211885921106207422625110268493750728507232058739133223026072157309597714770992637697464917882638195494052508548736875665704349398379401869698488812722814583364307309447368748477776132993097550487148382026525049121175684826511593822626443368830017252405126892434365762367359166498939159051336389888430643420986281562540366775924876640279423132480337232421707597452892751582181266896510327630942595484702459956815176766865718784550379645215231563601681342459525037724436766266049539120733056708842746495132762176121902417582554691377891471863141043935062782310802747159296630047641098245289611218959398649803878418032940619664999694539002650523798550940349636180252156021455165077730132261825190612608618710759007465427467189555576859962462577756300245817692294444900124944619312269953506241198065629586024886227293655778401282329838906933786158253660703938241167566526247086012971504583285235625350453833890556688638846534084862015369437505916519382442521430745593915489534623135701987039043929497950552832240150314639703106044399640170733129297183491132908700214683544443296885132773201545933616589322234766844481089578482733235512946137104617244416367780948260680142186470852379147067651606290338992945956818636035096936265786191143378803531076810402267600074818494603333938043919393084334087281022856853757430314149371477407356323243458903235397510828778215832209381083980031261544335274964637070519945274292150445205416432657241565405430398107717761989065444390939655866510320795380370415528064939058222787630437257398416100973143535344296859841255480037680598606055747834930587433837585974724543760298197633242907533652467649509264694210692161192544754156258484753895570423520228840354797979515153696645803220800361250675447861729842969365045325641040697696633167722157896453059691265373420373872185201104662792257298522618759987891194420580216310624846417831489918633206829631122033746676975195132877815097701402162992331495336413391816453339651857983080976077783760513154038328024171952143619892824566587651046465779794959520204194692959702871754706271414922216107493539687934646155996246654354131535706249199158082082854625283368318677893794638829500936466411832265001344228219435251502096358547584571373493223624603811886082749655677257694876966314102718126683248110977901268517320380708282267536251879336648506367168949753398675006211131111528151659248807377903153220863922646119422546415749099641851629620338648438323547460603054183568864849921554447090794930763423225231692283277536805108275233254834394437052924553398257295976122667193548358854649732757297401265617175727984141514413627305061775028429466812613964828494880642112255024958888344643642253412452876784745485035288864481817195738897399062210735153223346393887072949403601056919363903194545679856239149783014608801324757263502779895520637146021539602121790744950719764690623893373145328230819120119197514516978303179343966836665939168054732004481591963159025343904122379674028217693614442784356950260478920470550451107677964565935036996168802672402976253333980731484304839730268732864719004484375626641595896291525974064630502198692891902684757834616084575686362320971410315470403461890218048931076947690607140637570402217469853646232108204996714284583213600067259810087048170223745367098976272661203725157289960476815979074245705329581317976999115390179806323627437885036046898062326654308311144225417512404492950486702310272071883136893136260396479938818725850902587485903204987895264555477889530011406839171021210095228676576725069881799263975679687120699297298819890439795372466685095934819817425785720854044474642695702166037877579761325513880211054249885385256844835867722268827694355595613731478086214222158232322505329383779428782954869141932833269971005593220902404738408996196528104465130320609712013329048366354971929184225655830234273476929639372698351890262192937414779501145794410969977798948619255407452588586440575944351256514447343872379365857417321287332797570234497930294128165239006015150035400985655485553424772281899378660183275180104383026298803841537513505948596467968938943159333284912220899705427476420580253314273953931856459599756303142879417032213921068777526258098147829450186132627491781681896681602018678550754208397003229089883325497396263628501393990631562113922787293423383866457110255748987572077239135760010483043447221120397501600463634561397676857099095947065128610244938754243568678417486606809592355382699432463997478361410057437294358006962066488619182289409382568235243111004912655180548186001599871869524614686947103173684036885656934396280551432454814961671636596642824749260238043132533329502595037213426701333608860355039493116102057598417624040803290062522838850504794000389668448246239162813300112067731394863976195520481774205653733507943769254174359025125170938133465199097980176869677504734002339376524143334364684485597824665673449340333848203230357265309328455251085177342749185456587243132947714457780189416044586003918884761390264633592768210655631726822391157151389670489341929371549538783809694175794612334415266210229035071898814462222186886446353332707037630602834241886676494719521540675964336740796026834083681771988914292209186086889455827867254521925543686119191230222079781771435616231039202453047179350164670806540106840447691482867554795234966098004097509540006613551557825155316079929683483541672293448994182197715332140133993516722116160422643074559275448133418333382840381164506142522347140551147791653616280632820570705099105494140884237708558240103321067019678134460914210836659949863121241250218421483398276300488305026652271011346912501351354241964293580060424378886124730809632162862937960047052225172511704274562475669799749032996746633967363205528214140176613563809296976186870705670601160199641799967465716908277364615448955112534965903228188904673070450642914749220779976427677718650149709453830584763344347923338653435838963665268456853470114786666733392901677733280202703881991024038191450278885697484599169007727944253085299100508152411062685037116020530964468044166512241536778078614359372529692414170005720232398037197319720707722140183984795999452290257116189339214154702247767662774335600284456103362891631002048945763374294617011589105270539417712799324910169398421690542972433719041282969754568292715005041202391119145959687118735300139554511814310760976259972671478814851716590879467681013132440745604365065759512999427026215802658379230778686699901449166969133621064486703366410309963275420777020597146578918449106692685568090299995258597387832646233803601452653895161462448114044250174738909801508762403582596286628236808673745883732140285198254098729291346990255672009829771706489001380721885859779377445382751126303493205341910127322713178367876644862858303787630765554567442241023574242804602907492055314197834316596521807260437428606062693234081402244994869720773733041815547103263603083037238698995510778571961397399779920947960283744100596383856532165555464710897356096107688020517065298358649506722081300440554777519716645432745843429966816245130381212198913772656667964511850838152149081951167429694417449742603826898598388897950129532398404982555774245571491041917430825735562971017772793950229597313124828050924382029555486015998139245523492874147215129624432452678261434499532268647989638809898076056319531893042799338250901306590801439025375365716148600975284436276398700399265759404374821063039019324728888925047440525098968699346293243637758839878298200749216387635300517367289652526177161591383053747469338240710066184062340835737213020167641391728225855146171746434306609761294828722703364882138128222675223444821844496768609833755335936365437072643529739959940833208982583509623134975859659290458619559578311287325708915159195454680213692510642509200744025172880825905393592554991547904112609587142069951826962377296356078531426005740529270160266641391796910010349561803991820918581762881213409739505630775213685066284464413034868005704541744110906511203592332355872484021718278585934653644826894865478394775471592156648079991289855289076433982143459976021097921589025882473523472058910967469880505295241217809083610648663425727713387022296458006602271789343130095893452170716318742860170684211787132842118489431136199760299833416071394825653317069831853105023574940520962764752372419217731628196354353268147734601544550895098103145874939221393496188549427142029878036530395011420116849349722392652606863694945700619507714812075814183036868471189686700754226602449126493124470854479586657651370201969527687016661431444902213414990408118631572807799568323719813465958725609983783954889931686470354343435922863869719405462710725571581442013715785782004994014508583730235681828171682691525611227974684987471847464810768517603232639393952468259986314571809876458046539466090958221361745526871304244849088707078522592976678326777472999918982586690255154005940923216510736669163796211881009547736199041727339495509444981157295661306322107774683482003999731154327064941035593398735232976208370533338490630734770642902669482384037989408635638584186367164760707520043478777132074250431349235411270264959713444616206507220752172643057731661164381769918088820486353576992129917346143869435032669526903939403396828276095876881966978836305606629606731312048453662223962071482086978652904814003243584388775493301442528568187437654759525745451595753225865523051469235566628150336389345338716666807656134654019343696648603752874069776465157321055435569695900887740362170999142210700403569433610713806106439400601346826394403471040875243225403310637313494689302623450616333804998041063973983329540921307473946797151384733485029581747042726871192205098643520368029102442775558466012929621958370983870115468045824553423850356946851797433885132294487065175706233879296636371626985160739464171912243659086264902869746219686027096896702100463100380018728526547832056932947235042413106165750423457975585376743190080307856556648525081339419155315804316417913703500122647837572860524921146028245730476602551220361798858992346769990184484539673394508146095991691293550289293510383745854807875707854198651929519364982369353660003051905896317994495004685520497959311694731236728103325194725437878062726647070394397068245208733288829917495359883641331205287072094757339244534751019598683839895263980188992383202414206487572657527286409981694784808643094700560082531431163784984543863562661646095692062121553502211013773110655360692211790396932678429655485159925444271184637833709836390468729736392810737276722509826393976029777939939172737117779150969491440471095013134204600454192299609782554675209874333058653986226392530059192277110618135158995388706695716497534893727025889891911157715322442840981844271160798932105692649376481464395276587335554531986870321840298737450333556902780001737724843978917886878314395638902186343742996362628069177269278951411898642567504321218817925564917381024570693021329104304098440529428514734295441210435459426566153271322583481945076932547488216738362807907726899268560125021388384018548398694642431804279008542969431894670466225904065695591375846282926289500252691162714824286753800294210303021367311325476772186038711562656517960959641448002047610428950153286236291317591511354678556913915307794402542012863711419461066515717184650374245636199575079957665355366185975739436136430865637174548393642363237806141078126021441665219225793869369645152810391104199216669744873543829111747101221950763338661278943923188303237644306075772511201025734127031732096497050283747270473912828305326393872694696028523678460447742863620099369472322173934931943676435566848253215258222437240769621719440794792346181583906359466500626667007030715313289179532154993829208235494537126195556083042377031805640644313268540555123439284214731101983630759135586460758207052999670994202710972964170684365559733444658156181536369221277357285673488341286824298604523192972348417128887560356491584306066777032731189837197074189604036128771754644365867895757617616070231217105377859382267788577688717959041227558722704578664563600430656724923036583229063200648668847398146316824039893443447032581120588812287177088366512484765494617120370383231762296165066357491068402422606632752003020793519696852517444536510208725881329051889017054857466509801915612698368191137451464734431415487282205573582018018620093039705542592656809662312308155562426297398884338301312978770418189528138562803011695964323368384557377769127532458645660151707173232330271100081982282229100853404128822857928248346154929089464916543823140604442075040654136774125156765549085363813846314383292489857371892039262008172241238989767689489643333869509969738289756204402361557932298939606815065073070963087533852081462886827240332801274266499894797482172848874344176797302539165450302122842275468391173918174447056167791022053900692549347175182266716848558935352837238457586379611456701734614777320016980834613375454524581892222187216845519464465671946312380727693008637991123519613768134732466918930737753718465985656653275863016634137667048999518827069109883490268647990112373063235008722357698852320756470736529455036380037686085499879643270203709906908892614697239593277114637389918768786715275043045015427529086538563579450160551087924866893869483650200295381488146863836068977159962370247626615485268239156586089612932268737489328020154384212088401980735571587611902208874876871088442518114833331649603730569630356165216103469582834645768753948151837750853634385249056301111671998647132628972725982326887716010900115917953327897704877092143056282750918967538212482028381692588531765903220669092171699035607231747095786879966200195500650228767881576926499202994096483679271535464965614445276804481867603502318590196966458620570858634295242849561574618573245571834990962063578832251557949462497507933432876912534879264464850393576704643930043704479762781856613960871475051376209911780036370634638116742931806073996099476491794177503436961102521852180929008435129696361955756493928522490226411758089974350034694141429429211327625364226295098161760821437927338546745932808584716029503194425427471867862348611453326689024631914371384206414724750715325767334164662331433494115134205861217860840870136194430649825672367690392052545745271598953855878753727904490101230828528373877206270185579851343165609875359177397984784702829502332996710334067990625326563707080034801009446215220368268839363865280317570180559447802649716179526612052012760591802144350467162761888709519786719421612865042303958148853602870353795393274475998739751950423679135023354143694988512321108999442045559724347561535909960504784645859892536023959996976828966314957852460738478966504714022278684119692150503969874472961719538257232183843292450379814330843859187940407667884826485584663446479677714649295148456829822627050618236126061807168541984827968899072758730354521509584969126075233461365791540142873644949794108296281807287192458103606618833544274343533223489528726252045466858940954272790624623347515088424098018244555394474529467527745040257637561272284420281693669617071901778041506521044206230064313685490098794616047639339666433053192768327092154063207047762872051525703369259967579874562580957458665262313178937761807231956439593232638678293122782261904868847609258097435025675985440820689006734031276285565534451291046841909742418804889210167723643570062699974101626565751785562531148999175571823979551928939026127440914990154244737649412120826780186192378728366961831356470238333218067320379386841813003895709447580803841449762725256950549978954913160623008629517356443941116712611060678094493004129146763884170045133436094765346939227922221436233609717131507060645530267203977676365824371219726906885460017312583360137552037245303690181734987145494770924577463035687124878562604050586462937141641443644127131108624216916079557679530388769941965691042035021709629202620345942319113933378607045659175287651128987529318163589886397759239270278520476639794379773353890141535246544373649430234231636804808280750622841657099472116178754141398357571041630878728391968007910662903428100950804273812985254978141291145629974083226624946263478761396800397394173645152324122800535026610441508658107471581125061102430238453566900589519990651778496907283724790815569384856179020095581117765431962538376145023141036166869136599646637265749879846116550379775469017957448156644532869447775561484810686119728163874362454403411022775629308839401655937678892266324040563103864930115179423826040217336693216099787989441506807667528976641744703202851080945405688010094127776253511020057370971692611667220623599248121483860462892845780850217827542563423093892144496600377056894716579872906033904359089617662545713565634618693248731426580841457037678890127785615461988940978404164760834572557395601627648451564891137304396440924979572923506199244156943979968601948988930381092464502813648431541874784545738830460490376000209401561774310943543885750433094366966979047408490103284847118483533921892130230226678815908977320094974004813092954510402351629467191793066692610250496263362496786806934884597708042211658109240587239299370096608214454325079784128950863688177072516013654093615936784635901947277894614828642493497826086943049414164044636981846704000680772476558919760188407765088225013742757757619016493218147069770364876086094094909590818572901259511846862276634019905084256143121690682499633318091514496274677199384206208630182861388826367083207582844955166070492525255451966327597559180823121895624707875417733760504654054343614871846623126552570745929876645308991744167861706247290165129693983276570285466042032938777059881813061293182999596395381491414841543491237806295577314205658920839368087401662920856726150902388763624279074612984977750638920087079853653226989349393755736698177847858925748779316322239258354578051085654623045792084932332160866762232753814796107757403508998717796564969275210206866198996655767921943905992511024224605411844536776544216787933182141808681121000558857456109111184935152666843694403881704009192094545351245444996729726912166225613579890988002175874521133270414090865833707990079789049260173960706486994230578872202884873009479699058685036373104236736399499994324503164195471201411829401476103233454547110969932912692381511078875879593105215674045636841234543288019535730144239474715801907434338893662744641954689151846119380789936591735904532457090244674197374640756977863075066114340560530243169823526185540570218052269460995995639911924425808350400268073133316501834252608509974252913636322588155303818144576490938454407785583329568206757231767053722996261794289346763463874126623844591986946594382022598661642862402274760195215247569797710921055976277032255719231326207443840501878176572157100340904695378918446435821658610504866692679456530507100855067414789436943323131497631530909209698431714676436279452580618082478571474731668683081644790756321196823840597257475217470393662419722252464780167337960362761317988183099148575314059900610920061343820047775737010372184611433210266072877267672590501921136396188256232052421164044648856716750980311926794485877693710146951551558581037408115356268871298136784200609589506396667405539464898641564916502961338321557835736566920148134158558706194794555561333434302611280757587633171892098830150643010058490184884043561192514478592497666926331237271679830035047205938776264255605461488493423325102954087437051436059111843001079203416404458078084927495929766942099340020668339706248803902736762932298415874577796298247050587748077842462200863274258070645315928810038242969773501307905753643647368787842780218333888246736837602712102626285348633109044920104087355591973962132285031023314418063285503141763590021557750904968760578245269461767283538243673085104315996913819883900255736862299637408532265391414712574332452450868155499503433247352000881120820548638786720146729166040742709785942204283409383841302667995440397673490960850338802792674259304306264884047981637939970435125100031564648052438554717077800878256863112884348955283289781365726031482691495985371633504270690845686253405926748128775981271239935638583050272801692548926027329406208538646737038489794070189285777775647745444540557987841489772339070812143615239776087144074338950439664062474517663831703788406630055034813941459255265262407544035569573120604805452867268774539660726640477282714952901699508979665163047627271537866434440438802860375833660239766178907735367849230544516895620486695085875214868964475900953219946396362478317542768848237589005145714712974242209440627447411786907975820337286846260746144735798265075698785093404310648083465286471753772264055326714363046218424565599203762524520983120986677640365120801294296472805305422445957828681385618845274528986998236953301251901606623034852775999769086582912603622592379046398667211458202565964399005173023099927605633457147020531401810511330870993075428225982109802193188735177400609972196152591348630833009534796487015614414422102740940832875522453625074267873372022667864366230736751067188739959506973879866639773531506510756022412754746666819034092690653414488468520884487537703035635393229616117336052324075317028214242578735213612520932859159911046105201835320563782294422663249484440495575227804396216764210696220932019595322138235246077930486414133433241075228075384201907075173996738740911502679206203765249130249815796591060410628035923476158634457967446411469993515479305097343546687245362449464090080347679112618810795525913073549050328122598649817343447987473578004561010083579841989929453426202342393689422103626745761457367275870291393803359885660908589890550158311702351899592018489202394542936997466801084045819421379523853195469753210866714513797633526419179305490059795921455772816580443005215943198004557428091965705908408820486227103578953631944140784123543336225433598245249812405576655019414858623482882685576692983039578904273345672950325500112077584069671329976443998772307232793993177109813622274467699289430358877215836449651878403229295815239725694439681895823030782131053976783285060865551990649260709268890066050833386501854684671969991677512808523034956386388415684105639605991465185075922356120501685549880199084698667699733317484015271498082776123868466652112312292200112305273691058317792956060378280489391428342438930520366605131737917367047573817896572889834483215880837001311345469922231359465520582451342270520821131990175740958155464817576396474033005078669371918599360236785454292595627597889623142426368146037076657082598323670938869805633416789176094991129260652612599968417531112145060134387308714587210903052955909713052557648338419609589749375997952871994541016991732730820819944450161770011275722997750556558019796774619146334600931314328561600980796419731145343839717578890656314250899404159358694640682639372095788776709203157832538211424753171166481230243569721083167165389117876846734079903476163639429328884356983859839045606279463846962577322796686666621942556322810098635027823139279272052156361120058385368602186952286968632877348582407955460358072853641300514229510313255076522447253582075590304636263422998893249873036785058342227116689090574815071428390937293615315675550960553763407104555543232653734636749005630327919360120632974495549686103010764489599804989434160053472741243354603816912979726331202351806335778830225567530603964347182529166104881271741203618524512454302078124889656510326656075214319704195067990606710563219796885498639518552371984305106324719533559829590534932460506526219404510474845931367845003239752070327095048095559397337664048977120072844236367038713409362149296799739588314712324684962664158742002230587632451244834081133246297770659424206667153993906596429442738826772162532763664133674908538680907101088810104525727465597742303975960452394696238889314858284175392590617392000307158119093003313758594074405778536187659361906181743735656280749477189390062817296290406890788975851180205003601688146901364487231823488185718191410553123352159538774693146558848462316430835729652582214129951657690998696665630810131070218650888982145484499726413552205948424387877197449376273089086253109604671761221797672684381184105545009818053004991914947535199434374832863222015824235783486506756734382122970020309717881467860353453102730616092307491037752431516638256788951171742186126773259818520194075569461636957986057129081337158364136244983660235855951749462011715533456771718052903929469839665538859261682373394051741631530061166368490849175219650873811966423663974831881386263640070325869838155207057951139441747092751462367435232667073070561066136699168305817504052565318673819900105177034160655464469671772753962597565328683804851899697306930986626019287495604570185613163467722050243416101312737655431188490908076567224856422311175991912117799257709207467499515013358841814142350443128022130974599884075887305604559047460571219351633521199247414773122865045485978306373661720847679043065758545816384468580850127308483688965007902055672183461567206429192101924194325156271555080569304592055662313699436839653336801404521105345593853152979263005977602115258533267499201046594703210581145881046123462254523727996824717900373736459629201746032748821807812928971546588886366585697762473854113614105581889958724223037450203134280243906948800901305609804541786365072282222684770499285001423653508414697841991560838936699930872827183872824242535416431122863424755235039519392752217438914613161191796213540226684213332555031755547052113741087158630962300061156673528581344284890983340640517491672442482356720453147686541815529746242715583353241929154109999258928237894923133115015475645979632348160063572093244335767272298920444025813691808365787995449777970381668423784340063912304408407138430558318751314794941281908761402997537883821983351323633667165883101941522790270254734132597202557602615533034561914808999454748658523131822509317097314447061354830346656557311326444797581342339720590068084322411335414595362222857322338927599691361159199479298651726766795441006736028360194503449923906719040442251182247291797767939431192535558136408244485024893411468029074667063405959669867019600540200250313486580151297395435060719096978235662474499687912975770312797852829715373581458262362549719731420681659317112964030145094999557214108608670855917401953417487226271315181037270313429166498164640951214083170237214995430692449716160605855851416592230761688835270112504524756081562768511463063547512955423025098068609259653724026708080486700854464302364534088166191714222117081735299662212545165100787089384849103001604921861202462774612404514544571739715960381593143936002171622420465688413566295764970729625538194322111818319805579679435529438677307168038699391209541907711637584313213430138143612227669000005929050923861580107683263079188565633216833814403911415339819215635437586094339330911187864488559563918169418119350030942552910274918444944967768360955618223024042828479275134155405056488845940187645236685885022146498024658910981997877409305258841330516134216699890217873983014471078071216129788735479216146928098047939249750817108756475915184982953124106694957389737073767061469375292143133490913966851434146698868531469832901051809451563242468265155363816262011305068865932044821114004192360587394445931129818923352260218654310614601668869421030430627171691483597217907713140878450768588342515944967469210655930336765852841266118347225498088880215868304452693074222184956193701761407330265564261207932327667581491438059578875296883351967499437852117329179529656179055626168979787897313514396678440771152625813410518839943882476643173793878318245192183545067143107198791644110277711882102174508107083624450929346735110403164799599077312406359705546328992079468264188935829533043313626868182333854209612096889856953078015469974302792203665585913036296464817105068405717138884270838713746829185441688536156807135670389748071503020488676716960297326681186894145512366068745968067381533759670528321914839501508639682740369365962376389619166457739533343674241118347077731501676607503457515199465029736789342349270429853046708140864002002286317436066169681121935676201500677409970712628205514004234344709821538447609912770188094819383555328939929255148003721634881013725466144727980731659372839432161748466171141434238753349918673133165901270006555124180839861904491967697705482340637375094320675510601369805175896469369328450595271712492383988221492177254768245844590169595876761547543980741768768114265154874204076355602254864406066288020234627439079657489082198917272726425401744971124379170722568309446813281938420057027560468085825777266207608254877499478630473116506316426031185755618893819000297818092164198460578706482671938434565312248462453222561276459425653257962708337587038184375429964685365150950458352335249833453169507297418504866453928527323635344309223714767323987546877108685210122652345112774474767505596923180971113336737579383536609789315721850847672826459294994072782196231023529282318044708598009667515708040729212749079791279588120855851019647526136503100128742918328111514007437065988134266063563659805028574886301765567362655081645940081669597993545465181975796200656582155697275366957645152774982084978866668422231683533605186118466057870255189884085359826637464654367663175425161861523826891353786014735382038584165316800609130234624452484180921539862203241664087360134674207835059585355619235479856651328767674384700340267472655193087727429483924671005386841756274606487729437809501757214756247705503883622838140056588385850562502399717468278029993348729587236788130395035823839812919577742732023260993590094246093589717259503733013994836821148956443146843165750955307618566090256391929902500198171470483657006069017541301128629117688294966485966809941560163087736751067704870012241206451615937853050487369698440163998571348350824218838919214905149061353253189212293811067101558231178757101945147974883618445091331591279509260695682335501918264164082113290769124253737058282555832199292154161569016422311976203861940863701561946293387464907262772803892993709615416890631887851929850870011405253965514226282491397829070189630560958881587592318495564110723719983287537526271172681949107258482238731603234580542773954522316097819229761132971356029428735655136297084211615597246094812402539008271029863104196731884633788336810357794503988094008684689070850379369082125952373822348079211116553469043135061697963592515205971510776025106712494325139402604447772360500869910534070909735926572254383100454698778396820932125405478533346973125079507034463807970069771769498787052987021418600704823731116708391258685085952175746189079969756410924965446765581259712368152302169260124619111490567081377889777173435830299661914573399154046173502178533444638550878502085231581219154508934142710876298401354684919670805067447603096838750439965584304103428234739026425788408036967963701632548436903043213248310599531943185280353630866063161005585367428682569913711410523051860895850783779102828858700248384880827316042544002854231942216384473925634846378170547581602793381612248599488776928260746171645788054928162939344855723888771145246048069512124175319862472856514459946461902667095865555100966786374631199869315456616183782456192409414500809962272573777276316049574439186920244183425032883268465860616027887883700193722197981688101360870905024261916455302569304327962157322824766002518074949190777689840981926953289544829156655910712523679923538106488960461139221314446729835310142779944383850462118122572374819850174198847989418271122740429997280639891458951536613439496001783875542914834332705440285468124790602955260152589209501506514944630741640341410528594609172077788165746124652826082748199244631962150139702250780091326706824134586359021808192442840669852117188445028396654696822923825752274123215705641749621277835673926214107907694249891512665615842282543932753418264183342741139422717555142875023159800256813734075052544814323451323231003402739931597510046612986921420233770492491277743548930307075285132889362526543462953309780172213798326538266137580871614952826734966208579435776213938683443728973454722307792196729753115725276826207227581690864809794598699297524275221505627934801212181345829540161497344701138520595989447667616511179986813033259436723659048725957895459286737537213720322492536135898589316050936418723096582711425251284649694096296184380586584677929448183727157246537770484285950176708356569274360139907051230973577800752104972007879025525094522676060936052730618231180030268661387190816171574790856251936969215646773622609880079414948686926291940772867342758113058842493678111001387142241281888107633649594760137076727075160361499400737511082783668504287656964811953125739016531564704739281047934683167353824244023052826659062137768503681107089253499440656909790424792126068278091080032407383065601867206721219096878039956402021423714482252477505921750690314273785821306923553748194389119077280573530042072118009050539443272806678924290978621231061033076814041821753399060805891358391278438548272331838956909084489222567550910220184996596804966579481400808406023168208947725140131482293902357440045279363293112494471536674143172162177202630419093523712704233981614942918110868012867410458853302085686403919269331655642230041149715422170157301496515535491571261870766242251700581482497710042416565195197458527604720963543927782313456034935763328809724893065838343270827004871724295127147146050375809708728859640863328954725108458246933848627496423472150806424367605922252446409507360842730110023599734841160289711087765583904043137124850022514420739945165133147292091360906961770696510376300652668788271159968021477769740205726108755975894532982741512570433802180485798123087659419423496081610616521879216733818994607398914074450101625043825758161904540446975270604786271551552677996485372278829491593408967332923440840390113286269696997071920403030567614727268394329852637996417165298167128767061097122018434035690561009671949900541259035923227756054403302078286580775437310039562018228635689785821935343513720555981904332140433112999521362459953622218575515609086103968867848049336252487315850178577626645567170832994670097017233387767615869869192059728667421739570947129432694838445592952054870484396881318107509696950499802691804528523170649440417120690842698353632858258561023257460974901133055157898259764321365680057669213964746644743120483407467800794424728011565888012219578701347113199039515524450512649478749782023449307485303654788650287976528071335392386220408968198330569842573777426457097409613425096607354557015972496980280514565249792752685221013847276818506855178368898033873767878952198417452170961315193072534500432538631137273321443890633396016095008608708722522396911452483400655208436178678131539522394920480873889924437021141605926053380102629282651749137970296109965138852951909349998813535424259184534539341344400185300857012799523580145777878904583272973885256199023517851121475489975633659455679207011473959868986386172712889481495449620489816772569718945137665989938796489595589075371485583155810376891323375521497859993645216350040931218271941742516069552163487105918887745792457830942992171554780984423243799327495403892086455051617957100835868330612556481111435741398358779295265280516500020911550953049069034198344661615895330911489057704751766571880455587672853219528506676554149726901221485841646542792301324445198896773573385216810462936313636209245928681198828292892711112504347548980453799400306072818204064819965820268180726060881211786347981386468915159277961745057430754810062960532269977887034607287225310041171805752167979611137315767070941660915663564473591065303134793730905212378535085939921730369469386269706796191610964230072458957126702930635430801946193796885037665070210307103580361826214295428249842901883512799658696142617013560669536176183209370079276389084478414548466041119366050512041301582054713270708336676719237841040590733958944489008805170870359222557307122254887928315622228880904552362786415463354912828792310144659839278183572570244293419412988403148996390574358092113159096901833442287270591685685640925487035494122406303686116048760715107759241632193666419019353724851836216547228298265528604049147292884529424188121677548379491611295214178645508983451166021221444658800466084396594410553440251562445117469125270349926478016294005959711609015320402634697891784021411109137770798621844390250083786230862553832950562987362405185670789248837437944695075080103944753277760485793223083743698744487761572586615279954629598993545727471102713131697280056379498314549533023919887521954395797487640917666936658462802512521103316546557932823810096532284496614178544482614029990873011593799555598582992688991449689427593970200348952279144099460447671284070033303587777809318607535261093351498054985238873665973086120164294954426831343899926040340535378038746993690564756190001269403192048075958006320821062288753085091291546886851258484460416866115255827695097734614217060374850382843317217194302894625337568719344360581127478025589714821486178635470152910550720027586128041380459291025925786395052010116026930524693879930528036752055084627333378774094629611977065173127762161775308186732727011662338284663159531296952937956751656923815227445177164021350937556900811537441918713371151194369362430520096869491805171740193715992389435541097913235847211311735963955715811659870300990692012590700018237631099059548433724001983442852964862030011078637557077451343044244244410047832485051127513869231057746808137026726570214262527396393935697543212185506765470129050230490669700139297122550225616077165819499197030207972730863225374894575832110976265388738033035029016393934154276005940242039019722623662340489128170536121623836166907079922004722348952723520258240011735496538322349653029887888223984176984686476555236559268598339486785701479450820775898026891227930178803228553795169028021003326419334983827981025178042666040903521860225516344354035030556229602308131338149742318610792829090474428886100466217876838950688672817384196615253329358499463525286516469609575232453096951107972131698108308987687576915230681591250668131141440431609264609809856296900506724343314393286225860532199026248702869851124471837013194345676662387821611397924177381390893598478596424439106090201309239990222293468032803530617617709078167685501112257966561354130028436513922096114976427848409734874159813983514081082982876728921131165901633297787286116172959054167656086243634469162246229082074010494448072914125162166504791916311208414837876726655881915254556031038383120394425713837567853657441467317581557417351562657765534165903545443311961489224919465017924612548229855758762923302805222169108936609710858609983852345834486584540727635403542583806981782254973493406340811235138128726302295726723028655473404215408123924688891457762477813128896708821864504893600322648402958890072157030401899295822835153337803489299873126023178922104888267908502206288888949233356249521455234013818608986041832999361131640575284731366788719905332227438405350275618965177388438293366667025289422697840434587504332333845391390879122385615046501323333500736462955537604826874778331773432711428925376078348835332340540122429682523900011153278350079944379026657518141312427269944501223260667784026947017020312512755624112886244327046437438489841326463189818310850091167708352426529119409755729135637280381759293504959525070307578302245433968357150600331133299122250029255903925392700901013436864922978114642226558148320624859442935576258107515627881220446450717746220194248426582227881710548036349536500474446013193647002641768671973341105751654357250399591657300547075268211412562022539444048977876492545577838650482541410971149697444525207597052329821068444802938451108952877336965090115470521906351255415644790871520768109891491775414715355144199652334466486158122832694175606128853610708307812937422412827488202815152240549635361388725437405236935329905643593444245359408806688343398382818256280738103489488795592128236046507321500294007981011346699814117469955906798731509094554503559498277650591271018594426512572863905984303846501791663573462889674260947472016392677873857275398478127590750087954585999556523637476343669646620298800118371146774160869500655298669195810002662311673947985818418725256880304637280535162927931306256725521210998683959002370964796407453025241450956621591584831606986321384637262410872773476468062084182901244850164531269088301396544260432443229315265451140801379461993031719736365321942423720976366367022175477373517381547563450333266979615010518557530066768991070149229764055071213823423815451565089576311939348387882320378843231856436440749673682380800330305134029309321792272653793368065605016640505818763161572793271398826836912797441704467805181301777651281821643107220611458595647341705808703217055740657375766839409049859345392264817806635820066199066507541379799582846322716035957914479302015060791663635554138205409025846535632528179771181315880071086942329058283235553980762711538445478083742494806247916016226878596285335215485874406277116052055757127004798680867286388470890485388699893385639360159180746354830576165391431024397451260837968486890543906455140309338908355077626679674821335612123351315195605261068601621076043893651084358826709209211463977271782632676656908630543453367045651429496581707064004294228330740850204489412958428500684482127120541487705796655581118976227460214338942467980988325785813023356983243802617318133341119985647435478351599905984216662720044239443277892989693859418083125105319094636111741936306931687825019842885243344703805034034964709787882740534607556541790692016514384675977649611108134459646264545110966555635560599108808584061541243912274365179039051171408600410935818543716445046777103362331277829028156166815975604212666727854314358510078365992858183305451685210016295658303041516701690446406995339554574546518074097465827565946534929293538677161972879575876006376360464212609956562490528957131512285441059147225696242948966762594372899419985916892613814046244426571696386062437314097617320473997380083166150777022402286982466951706614925995349601099284028607585325447456682767367501809935139419514341536114049647604599660148461678214903043693023671161997199202481563720952545266203360233397077488864686800823754738344624470115900622075847506885826913936733414451802465545355754097213666158711655737194832669597721605099340333917459143285981109177049949710254508427567709455845237333451867363584205693748112896685113490097167607369263174465341528916905363443743888822327018169359262210606504844007843723699795741584010761134533223358345935470483239971102890632925559960722170895705264310272360501340176928682984745837192879036309903107676620691264914481398197571387189111324206061092585561366478408237874504895487204586334102719426913709812945079699025967893956789333149344506340805563716549034722156717942728533223691421917656360946776500027138423860630711188071207054414291597375432397781770121600649986899876465825484372945931265312534449617866920648406930878060381010325709093740425682272341086592356999987353982447206127378875034131692902180400684206426465084507666828309511150500712692553648703574937369406025399361218229984327229082246173731420320947341047835282016638775912175025553356816724186803128538928216293696953040838656124560767901229794109150052214660034107554380143064893525396360517283680822046931359101591488690681223495656053343017706950823836520593665251867453695375093243387584111811839599707193764103508227645923395691175373272754921425801606341550800807335818725497467417063581628042702662972427091607044522511243392687205217075044374175421594389168524302174761459183524509383187571794788460429954978909719383546299138526153277766406548735230545667315025035573844683376628006719705574378378188536623877294808025140256618017401313016252633009841479769941455366344852384470702590958572820645959765495113317143842632782201169738851720052775155879627058984881404040998284575032809707786625374332049419795001852268547352755342106526131053900981170128376588914197908265966734768412376128615681834302474602812642748898512490258585655253468205771502028555136409321532682725621015176298824049529900111570880512621018616455155921022706327448297248430836751256562849807800161135349240224995133916149013637830755364309153534622516573115152175009621095746499171177671428575969527796045674595698355065649040207009025538851163468638417475872155510200057730694739372757945690574350276269045409514207540929545863070244056049316842495244328488630496728775191650230084525852789436780343813565429889911418235119515055793505123307807374284485358393142127874181936151580908228941927176332263507929113623852947970497171140884907608565011140503444332800304517529719497546920983442734459215611337175519722052333124435088354328471441415992495658456320439183220850242537076858047031906325435338732938976023889499522551666470350476648283769922445774471321543397193820884359706473937429795020732690306199245891921234260862954584607858604239231971661095850675937522197725063701968318798974982484072203929498238276325885426906578693366607897450561933331755735045328450799035655541287506740904434324763042765692916297060412411556634842215850286281104620934096760127835335247263135602793919397132471831644537007816732852726818763133588607451259270676124062793722168846775964408678317908652076716441387821475627126729732271725758086241253363285520777765510987046939409367504037250121761853769068963532468871021680442716848139608499961714129914262355949554854452587496013295258457908823123095133972206791359624469573138595390895399299433078788994398949675185147480205233128939922224550855513560041213359789383933058813322051396276978626198537026579492979722656130607661122537607611505244983881049214432738144704000955885413619459407720895197799164091080310787530960676664573452005057230753805357329610416620472943289562648795683809018031050243306648550270173157996225816345488568454499778222847308335379525113181964112220180159676122814870908603672464589247084094454323405682074934898969052779054910583661609739952827048866807944086832759976804833698101916476076793615370804328930034689041286157583780871685311960228223654558236379964059522667291501130117497033551472045731287683538611840427373626216896155671372774203365013440769530351781701328412967077469028215603602845076811077446196195449414913374896145245970480417209409891766283926845834233651296654760828119769615130516058323451215428041550355362805566360194526004495563046124453868080724877480888518746841360037394942662462315962977253937440560946141711360649845384658699969698452322102920563410825683333708717676771645029210513183572844245029635756276452730416163698416332521529089255018536038096346645479499688004667778245469351610207482834843066501581215909500844350353544218006066917463394772283164101492571526945687329115332451141102112891715546934880597510927811144526189955894570237764053903083924426000125052139416842384691166206902974471501718417465154309544421368942730502370416540338775851227530652822121512909938038535305107259543866982953769977389358219432803509824174247917408654213666844089871419416795482633277923245876587862370230477276770726068335775502560403503338850817241639458910327187692127760946963773915052064463702500899148594379288230237842106877916214711855303608157660209445382417650590766156952328519124187364906404304582986018824979078907827008805806414610360529464858995429209427249396905126423806237597966366530005326443395471800819429186297177782145075214242254328403395793018708295589900002539573140573610328099834194531599535725524431693121787718980457971819117827214350851899260256352212484220770234636981285179211405663038875549286379385662141547929961814001096828382445435380006206316198807948474985068253008853147909385699096331874127870734069285493657403943014803715216296242494256308563604843778325571923691327772317380112495252306786666599043699559563619589416633283834170728016862295502676404383093735706630017078709218370061306305017246719535962263111806786636098976705370808144980093686296177714216597907667330157690990772126253141458880663034377377699045147915935165180081205224952987099331548697205112073044218562965655970022191478648157538673190158670061148046303328864716052921627499743213047141331032375174486724173337320216622350690550813092059037765911299705573176460698639888038791310277441617083769055654825814982419113294416622801599834316070219776652577822375474829985391678077336959529839178021791824898921834130675742864409756189160786368428898120495200226197184373586331387843405336115459724587614487774574211292052946150161738274726083657623891640000858319836579914069460120174216408191387601344305235486097977566943991492587715953224279902229015949443740810328158388656526549344793114217359850934214667085141809436438467519542821963325121541633144997994068604211760290533076167005155003458656236918203481621639285737930585565242723740478916932108491063151050478648446273996238599984162556051767050960440756654831306585593618569296710050506252628268937666833872506586800462090882722828676925762961816600292978647688729136489973385491054195997927230382615305419877244260694561210157433552384785961080539777846910657059203312002515925952792341771691581465317345591873692139180389776718640062005809069675998748785366161374281951451682968505023679424693854143880348263055808680637051732504806158161496533661957412059792535942986689902414202106348953090833616473893112477236277328162032833813344859104372126743508089532346959328503976171730352173173631891002318176124944513397480632257187232414328288499601682439654359283468323730316828161047884350013547898594205547381360116028807576453611945045529253753044174122259404998520175271016063151100327731488983311583301862856526509954102063330623986430531673984191761682170025894327811839192292674340833359916294246710371673699123361396373632842957968089166913647275649698278364531567056119860201978300345073534273479050124188768001717643690911982737545928642512666377828555520322641538413002894168539502627001986611889431207374553492608152034457813604505864818569894420614586894114697722127692631647407247497501786696835451512541030689020944629578800940767032396728877112374483631620143518328238437929533315902156470034387219811824944654819677987396900153920630725218103258549302818724928179827827346825171526185866724690063537859276095725888976378388698594074895311881666003806817828510893371498470321484140923827799380444080076388905432235013534581014859467146386743406800192088658261391225607398224970283992732875950662702761561461941183440285435280061473748986876018344897537343694704773046282660302056388559700800087890774042828570124334489769340111972858124635715009158751537546041107827198636021498504475667183991167649859761424836453266707988442171235651901975526634393355891216409722895270127643275620909706682710362774151763928948201293489181045317922105322624371261775935694449946299905526492792002378662997899149763664602831575629421735664379288778107948779514426238284406310774608441548780253362005706751676493104577570060022205960531347917398955342780946739648144879539625755390365438978350021504054961432126715481588666675225321940745802300933275179246950694709065076913511004845320512987773083279569845886788693814406331909352990149060878511014227855036606442664007762202943907047105440267066347803095956908253717407095850015637868627634311337117999765858099144176008552713073738599232055554624682901059451998615722296821618342549494745874676764438746135263899941955737238887860511753500386231926989290756075232103478664653970470872658730558307130665552344170760325534795868738212949486293446116036284724985568689331463736139600693753529181204082186583425264902232731273813450356100475733532934266501598537329274354088423153033461457436796558774524168200808612637293241064750152037711282414410503004756800775518522043273268138113153817622203504139360242614347435476850854934445792693900620746444825304331924657919290423659565369440823381633216604676384763973392193143995852860880188042116269158295647209555187543029822941730387040604707364244220451144006306655820246870718520251378576421975593777024315022437196449781234884820115623959339563116698731328514052114784651735873812688630327178305355449626702965325823142553791754092542267804043393821879796242053174322431609093783108265568466213772369248440213538885470611770038916979924204474458192500947046737880904427344487563950995029385879387242584386364808469910597488675241476080388347078800107928535654218352005541757231349171002248693453607628744185964998699209565000715985369829202549311655233297942988135337632899815021008077415555223757913162639461460924062433846488160445085754366375404263055179265946180789545535407318277354081668201560780646730592162590576619207928410490640237358513662091037129379512636233228917272130150944456229937700612365759685471448871062293927181053936817517892164955436438335133980282850939528305665315266004549200537896656916490706212228961191707324284088602902185607184765797896146426695998162706844752750743883197490126554519008408241483146879645494429792388144302677918707157322992209586257677579228772096517916538489805791962244063992128697823002727524999070711598265936380270713250046137099843230049703134505206733851871003827908509879401807995204099871502421463590116623040584429245629335592756786855278075912306375706059630596407660741735063631790223883901861311725331901564374891768231727109733141871516988747714626345196701276986783386730054381577432058671576163583708784740985768105830198330425743551235097930707952772352298319353976606948953543035491933085285253574488220898522017862169171039108032064639830720776466681961515200575253535072546912141257548678409119960399751469267587962815881139867255971877670184150334607491307739533125198924004008179548711485284303840232064002782325120345303145215386030021301335281352672349170404962610210686858974284562418896625445221579143874460657688493568772432558051583148199110944837263181034958249113473094181955545233624591590425213831220386037759717868956647304924764270992747101131957244523755205043003539436703705199894376378955480139986339408368495476736018432679533630794227679888882552091585971675148969993315404283578684282437033944974358452547399796510577569940116537404214905294297264596125332619062930150379765767200214002486993749744881283016924598466202367151785542421608531929175006854864942054237267254689238194126557667220268349090872223759343207988909412328023883540516507077090249719134036358841320230450986143874737188840353899070702270080901500022902915282553348746483243071925332643573313488718926764864002016435092021397512177482436665467375973481836451785349337375048744457385800871501075795149178768153358764352886155244580973362590867831867434111593555077914414810437330803145171043897635586106242429049586586528207045429384708673346652286098316328618783531735865464362187911459590313853031481338082641570580890938577173253716311927457880193488425994885115616613073804881320959306109752391682914138065610895628643256996646406957280216970196402392526795937489199307440141614773438136107397695368212374346408649701304240267439484284181155940125689769392793783819467015570560341747532479889928393036546400987366839045510567323007758145529444657296247360922065600272870075581054387371498553261314009470508137227720259181324880122468440235172989048489359710392608459432218905342373126136573386841771194019291471991005966875569825601150557228097765760090010580687532180096392788282852140114850980313096219726221997643386105872783680979948546255217398232321247774542604997721116601448927864233063817186297993064922897518009631949346882277964118001922549473805542119713211783819510191943261568674604849141167659051033566117692992983052867796571504990268023243261892694285487819846512550506037682674179851368671733559615924350116231375876794671192360637962595812259497433148400961024976760136569962901073808332077197618916263069223041393241610762585997547856195577291770950037437458460713156231014647254462732277366583616407955229514232171750720786368738857840467434696609351951888135750020780559626397998844274784818686973810133557703064346284380066829984446447614397059899313317397402756479215552494191592952238830784813381690773881713891060343016003187014141604525328845850062292454315943622731108327692671588330035418590388513733737052987990489716824445660614270891608470515459279097095612791022919521585654245151264089534212082537715637330103446188317657228802035576569098388101776913692365211788265862154093277901332228051799742019207440629881574074575154216908239863909974404510162814715271201990372051561981226877892103473702013021481646887618177476212372692883736006237296186140276728084650518926099230720182613119673842512727826185406552994030450263240837542367820728021092326362098448320417415048643230386704543466508234416275404491690780644620009283080306303316757852379616581634169363378909550932012079024597256440858415610944960999843046625406628933824176960256357154663768616797710055812994193196220439708958293873500348198279314917984614780068472880622750884226198416819605228486080322018381540450196397342617791822377844565847507507019502737217950351431093942722550347520710768254927318078104964447187689812104866457176882555523807579868270906456597627918457486037114502760353783190116239559978570270711076440683734446109564017590985286865371370160234396073028289390642805708480302565841273934355530194231906825009173170106192736376242735464214637136943436207751418033893862609506763737411211736659879564296119132904173726588491381049766608617624105117212393655642357213362292886973951956068314861707599370474795110910453068547175630401778791775633068416320318120795425534355297865057691377418447356643446307115156807690593052177545839242740868397828498922499127485867763773629599612057569359605678713818471927116374090004015379618272045770061618293934204677469762321507631117854335997064715796076041989709960931810813377536803230110977184842996803121334316708986779342253133689799361973658046113198028471378303994585814384533084726254161997294251043799749626291920963251665517659043934406413350670742127740469278415331713347572706228325739170761847933456042172595476095047467388680072960683801928214695127111253875175844814411138538876970516271482662681526550903641027551399404825333516923928398846063028430454274552239508884459309172701662125793039586315103111634708777652614945244587926278526371689156042834935556413912833522789717797239976919065006373407195622866607001622045176096444837582750171476906918163242232846616777135404873150703315604712082693412346367059643914039301884163477489858719573322059764319371021818918513863771814060857447159779861676483166298669115613119858550949057535259345071812901672691611981439970008086469459491003338552193141540694209900795026322228542028747111458874802150556227503132745307269630247694996531700901714199818427524438968454109761156998332832153532784196220852457957934932431053017417874174782970280893680144299845067752267688927043125819873356194042924900699852897032003699423017314318124743638385409567041471871600751861423585754242994250843917040566404658370415921907905824068152035476231901489950926619188674544998109115936661382558066228361580834192093517067493056079879890969059671751734744407338355642549334619507464036511300274513338219453237150508377000729819961936661021168517170977143966491532120858520282915558984111531722946558156000862571925848116967519146764192535357176644210091631112580617149912369439427280751544703343211991327797099052798275075676003975628012012987491898328515321131780026535309825526874003958879422241029578681266846745202209854697806852800522276826514710443389639867540718353169163118745632287696183724423253208335260516987932922281091480627975323626125256895893830097776271691969055408847908150848193780240329462631490494550201462262218841887411305668215983964877184030405533267651135302058152677307345419648558701755421476166891635818674745723305762125377842711184176975321070485160850539778924221863092343803589004723316626055311413543240218542707381814357160620935599117200486176600003922940593296965073846652607288892854431212041538726784821184851739572126317865669075676391746504665079317518167066052629179964081882899180646195354934293569490974212409563564612084019534565116664016714856720676470767735591674654452130063160414826037717625848846548116590900740945246952204657186966776590636837844430725741039499616400889235938872433012802730802670291967355634291731601644738755329724500191495624348425717492683735662126679298842031215127536959158553175401904207145897828206883702273708300560466817866386913344272424878375818351738335339124431079998135439690100664453630870076889673312314337035041082419060692238055605604482474101792399958329392051730422612538919270642645596779403067416578183331611907429280984966743384545067120312819015455009076069946619814858054959008208972357315374542337014517756924173720747964029842323442564743598373377399817352308164700537727195586822432586951022256302187894103158719226142479080614173597586639197825101324614000313069931991715522596601009071913598746096847056501920865330742322540414773066596641374929540296062739784215626297228652898568218446464789797805489939164107691270176062171335159324940450682542052522938041736556293553340601996695980436015827296560753640196315200507587071304243686592790455619736799219601582507854911866408794451730684967945289469559478163124899872518333700536907166931159799754046598927109070829437489781034186756492247925604872131628698206628928407454686567742305961874201788692424287085257917790186054484633580695799051552180947867217500703382052132538678156481926966667303542073346306895246807566957167209914444615106876638471638895034403806613119907987517066066180803912046155934178142247287394725813216522306574854016037982866810144744007935170395245135771621220353178792424926119644942116740859384078993978605860288808849294487149080033903081803817030131337384469039582801507872327369816894057728536675917023113726264812082080959204635514361015465527678391863793827518754108227764828491004294427908201526144786905379734408732112780203950689023939490956721599803891594631295242053824938432942409255027240526783213714318694349008436756733708771183300680980019287659753354566503969435713134112202491178555431964186412540926180675647422286988131618168155608268137559289753887194973872779435518704145976887378205802697578254722231681033689083078068959718062193091383736002505038852308875806407851039695366486995102826748783649320904265900894597267709816958022839102964245188714341583867006157867737651334608379666681858370052501623477851996374751644020446253716931701015331341596019804060634644951617005589842037946267709306566640741096421427384830220484821185700971031449720711838161701688256671034171189265444753364003898760829807841724570754379221096145096575226580716192236164995393606345528443048784686673084317661752695280880764914672155640126364968640070178430139598174337875927222661213271554841904180086733438200370667087242292438087710678760365163972496879862473758042046392514041642892606246133349731613930552688632038793249146089697261894309632200058862943934303517742928805442170391377569812089606202579335559631396817483434902977253712204128449900650293487861962336842383167476345063402308543541269623872463076783513145822026025945659363920768308270056316907188621731130729478928830692848479738566377506147160065277210798318458641674828646284867641158812559155760675372595917058713717122883102576159359975351005382537401982427139573516156272523109355466316938750425546532821082303123614745357862727558445707585032299953681125186943003815280454261394915598345898218807046300335143359472484658592367917168184550623383831914789161516192708583915533434576732287186204564077985842206096543558288685771802340484128307282352682954553513675746753942125392947577918123687078474997291263046058309287358397349694616810907918403969229676740441763021760441479437553111620441473691277383922324656389850005242912343285822490769760871965223068414655988154564209139504670459862658439628068663564899270738769558917347638328721427768819930720280911124753292451417425735527365545402151297337068529901877638471344180921394045940137980957661255311824071725377276862217931222933527331150650135616399780156754436638948434804009913900262339615530909432349300320718073081626005250288085492599743753488508089458156409253512185693993964708356275913559263557495491208260229891261877012629607048879220436634308307741310292829377117042850064465469509823679502741783232358162432382231280402782616340430014787037194406689401478222594682091048889689750470105518261942270836866337041826213834288256602058716676031372209160445371573879071225582980410536743624237790489040163996268948316028331461818081898402147913201121467369479057110519740171300782354950597745165349907205997632082701375636647695908605951453922312038810761553672232244989147415885297562958258811938282419457282588672473996249382810269227987865377516051348696764952536366863360497331998208690927829485188961690801121741853308628533943338499189668382873235518231422720425126492149915661570440794257852229065065132608802369052338193814975652737323057214846333475720892302260049254049141908885499652476356451969715492453236494248920833720418944520836389071779922799142726645671192390025096571577065448238745215054496095434296893677339080686008441846632960682448227916299178596618294354927730481225315329471011568783609680160206843672622429504646937748368910065321941322099966523894757761527604094869037219449183494478076085184051873823473765501517733700341095225829158993949076129840136494875769390626036271399044800420860636173780042326363273111064202868349968841467669634930754679000233305346945567492332094685776448796334028104821001454274076905419723759045495804025692238218728504118788513812667347945612679029907341604992077423995118696493914439020426401165325960157501662407614762153327287205291907788564793389154774125130200206186656051284187683275849921799184347679384715567988967584571762629141998154301044977011754675762581624891072649503730571483696201062523393913536358330976538783767186578939828711496184415798482214842593988400800135484537632430203879988809867986336897812543910049748817967635859498777441835642208302856838559351010311314000597104403638349675829009451095586521457285602688621102196900539409810431933456791844559289797041277931723770067592893876219787410289341508364612751788918858293581077643538822651815519188178423937071601013572955954856011536579282842158659895582576770279287983797965456227442838267181785837320418791646556054041974564162959960124440454799466548831131472412660100383157213479774443832223824130127274897080057803856750834560101421698376331033805436024184001946279924157268053914047296568558605841449617718061374811243555962349516451411804150813609931382043453077563146848537771014335370583105186546388384018794108090558396868425826190816809329650509141908676554768299118108746518317022369357753192142963298624128358248864199644824904950767058287642205840715682690193466586190201240638148274640811149807623487330722273245123393182944395730525565672248604263761851040221450848797755257088651925701414241308169432230385154174970059658550755021241703629007615792705164418793022250018434353136452807537129640162997192397213430889010620011672399103620450653974392251601463056575277757167219476113915587226696639849193004865585740182286730483795960879375668379099920910146904921078667132053854005296225191706350792967521638712772086194512759324984202049700218106295803482440669987094515886407533474042562554682697979988332816318283094081632367817862088627588868790221472378335395676802298387354035423440672252213283111417991461193009278202564554560302377800365920344499096985749815251749808119924824953679339840887278238295203092100595679548635479834631217636874498343624096466663134070931113417147782187585345172063021394503762474790513940016371550643450056991637567807464970112780583566393857379300492604772158505373726884128274908790408865481088648296300343544335568547475476546567700350079128458732741697098610449344817538534200980974903759222976358530800300567356226286642904190039689177372707614236518113796426174297920790169568272927961947716693840029090015445681910443043569272506992798752808891144079205280034829034243117769356427647079280661626266350294735985502856155372009695740578996168333922002065285755627384055560655904076726378534391509269309220028369165857127487758132109190551774236240100470367999894377543527698558467839667452755562697795046049236937614215874651721423033457328564382501620907408831156126365654436296631202993488349285474276999950650129160895363313448965020516298649965440768873975950676281254384766592317299299667203318478544121086977014060826466832829022086211527920920634974645785423089668670352219443679842710781988361799403594953693717652244935975127384266357756176795571052934886748705274258722354337541019912261080697371360547124771004740561780061268376686671279579158591547933612044659681619467933939428984262157874259181894215486276463745779449609929046828474648758130105101367738659113100426915002167550172684431589966729494201234385620251046929628831101556569347707505800996894204207875378603962427758041709992261241780356461711029961139475954075494351202948297829522115314154408721130483781958856773293262499250780554105033440893748033502650150512561325076700941861771518526752659421323760627441381841013513152430128629633718744362665401735401302858703767835021008680355731728825971714409264689238534615627211999892514690313567777993743200309292477524314820882036739817845671153602085580723558479600147442821458139380029238494359138872114572066211856263971792898583897072335470957771220008866568372734690112561257148004420664979600970241741369348767457025195460255682380774846468814993030507761968018417422759277688936101536310789601497607091748673311529770226537534676851271371488932189224019740123974699292341830780014735974966533874595315825123310916839569291576961012932150426883178091733073334382079945460232578267786154670728652518131149811679380319638667500999074006534058312954128718512241827526114733793172540768631892352588498215172838143118219004797126218760105282453428882090929794149556730445688382909059400236871713352411638107887337340645207901161074098414906730286444910503983004972408076474067429562047577990039650283322826854614780496099552947356792513205117713431354003884335473152080657509923298823174798496630765883073655614688391701713819184314266998660392818139982159401633249809882343280306367642495202032619549530081770017282503200082668903321433963329498863891002677652825268864568996214302443064882329386586067070781328668741106634464462955702226667080092516861272817733277480938165315988087319329050324580252327025416903507778315001792470295970200389702957994397977520046431573296914188974061580053602528667976470573496458275311066107996606119711066814191941412784944255424261025581517785976739490036855708513119380582454355947589056753344043105374017326368341373236939182456623161372131560647314195163876719808263147536091659704745807543355059123516994501515637332998327483175302483147769419643150923537519785381153990232459404815629879524099107652063910542920742962581921817441683558943245703769966623661860401828176165729990413209986863568968880130926984380784756249155307437019867528368516033857434253826826330399933984531125382063717290055557227016335388732994319037938367283700869148359139821379237594472332162491428623683565740956557095759695905503506798666726881341101434077785738811333013957007570549113521776925977299284120305743498172246819464225716929265810062807385298804778380640355475690873376137102546098725295325099946502037399549466718291210069718700234886651456436924032006300621995153019144908054078082428901214817347953882310941021183827615463285545050516955815906368462708113979458985538090268528133226261581284707266261594843281610360879795730757423226488775970236995944222408478814529845504235765395309878134130917961540230500442249585778633058903952824979473508412241185303713536335082355014508809644871887293206629452817145925224430719545523099035791243600236996090167667029459601056072392978213172091143959362283781724996193823353220680272203078725557720681985807311265063640537191989811285056779852780976551865504159576941061057309253557485335165954017143711362041257827942002853242455605076418724326973963575394940906284726786570881875832260113667013292977203450982975313468943225215674602876941919726211469194717321472278475825447937079458613255552601654861566231744564148329447475412747425576851660904080968117223101376356728251722618476105368474778537361108357941441301849536093131225965352236124862584256152642435153927147753597275318366200128437751423633832199120442991520736094604488663827886573324266982755667375248998533685662844438226284887798397622108518502621890944372693217134223970949273974661208549171369207727170342845718954642700606310756913463307604066480144046091849721383958062671172269687024927080685302186668247734562507877714837801437138606758709825883118269555363388791754514358293192013172228856557721067250776130918237289564307394266206371884358374852916657119146736769479663214041053770190138129641432070854781923303038725069422955663108218120268453635879285116739898492004525645045252754118738731374953922022368013988565117982036453949607265385024566125487676480720502159326539160993823660723711545301658554316412558695748244162393649321586742328392053308181900482084159233204402908025400910504474439409763510872885339904517012705823214523353778055931502867899614174007484077981622035585338769815046134533783394237828649329578603217031799728464935715669928290450575841837812526944007514165841898513617910436523572121548706508014034637814351095486315549651576798600096397226438382535023398846723805953689172550189425148856145559048533961239539978397303662008630951931245203012549538483690296913349180918826727744507471976982714692995208511326459412508532280725100881866652204598371639452069836497721584972391293515911426563165577488547253916866041084732127843482667536601350652549748306839952744650616135464785901529932030866880859855414275705951149962069765384504229664108256425283822507362469683984256856977210462576448014583294933835748616777608122810751438793285156134834431631224702606674989859783636606457546372571419406370606266738552704377821136645842173904778832216652585578896630712666547746731537727845638725430748470667846481678187627575279357441595106800778465186027580117854244634999482622961381938317564258786560953609820348180935583627210783312965037648415914133462219664582706685800541984296711095090986711346360208387013649774416627752847775522662557227277097183069582647758213271345313448064608493341256397860977168543456796077579081924317874935993924791250252139489599465417361645682731862335857810138597893668932713489697100152877858916814688106469636686516152797233271333697324947738132651873380180075054959779709639727824191829750602333982494370180566635762688040849996727170597185236610527270084763712504442383864526145007584029914477369718702477622521706763137145577930503832700080148520495649826592001966515482921095829663995764810750598570077969404389351356153017704774792933113302036403537943703249001253614430874912139905198587997240820989165724509724412577876493910915122712330670415609961261066293992743004133040415231122444969342180813054578865247933243332851827577807901080144078884168054460287383213593868527821514582184206679502681256326533941073778946160960824048885188947120036527613361442195189962880901308587228021721192988936254825185891013759365384602429642900137512904677144350102276508867242145811002049688056043041862076784040899933790440402507848201780397987403267871322108995111577858232659041250518955497688000264022094853384036381639389989464172335803337544299705108496282313774937637258146043931436393955815159764071726010511426798459466701259302185350275550190731464035929021718151391191999866764365933335089487870790245267987966007068594227896309256735382415800414254538688648811976636828572230233556271498689377077386924820386046607116044059077107719423833150575772926526774364000649094614955158291283172894451870283619193287371690549960212198666225652517688378881313814954845549797920792555653522662044568644279635849366618738298719099433849051316511905280458296129259967315052588492526094641446182474767510399410718454143556161948281974370818457153338026353545095977080660892667502606539106812496997938022418610886468621973123616766077508486947816827454254723347975688706447458779451636463129145764760582946643144305376608805292333811960874911633292830626882588530813974319426073894159417563546090807779764902528286006205214243072148237945593280020212664063285695093383068126308948874847097175236600894964158566834461962315059346309757802722089055195657774271291388117766352670931337188735151176221157492334800660058626554313207951864824478604499020140662682375794998357041113389506266241812795275036104682247821937331970702735149150659474644661429830277335723735773420948053008863111358310271930725014702817922553620095912219553010726437728473624588037864746635295019484140301369586703231592854405248341708515499125403110651961513219381712663806104695538668186484666175954466156558720954054285088830294582534426326664695629032073333255780460684880689583128180236502805854116181402748591591257891656248159572961731809014256252448286485865068004662325604657392092808612587341306023660683597082595537100958724821098750949773311161440525192905979907022422054324128710946394903604559663000980930356421931567796615541519625258955151191870783441207209489900215805325710849445834491037016543619520669632702355028904228766974006761433624944303209041019631828973251664278220412275839786389357695586811656651546402621992367202024383457699536321304839460475195172359410807616557926307176247843146039182131757587327535132343677089321920369785734912055812519288809597206606025882618304280196668230406126876895567139853840807736218141639486685662958674381979774068326739934071115131781635732374628388617846296348193377077635506182058448484635802194256553853862606502222855440222384096187215792581013563720336113292303150480133736288304612541352506871082239433986227394542726120981755348821812730873195993957855593109487910964602739804553742702360427623304461393249791694940894524616706382324984357496095968267577635911891273512683181424155127114082848341642884115784662707498485584114787985943035617795188256060697048451868453310481472313418790588688368935076946405741539298292357219096594038938039595151863722046209645746316043162989963078611467931015471799426318902758945875174474906095167640202425303128037876178060195820417381483303061811867262917788609303652230157188704259866350315595246033467247956863579575429806285967954721528858792895790599381851237508774970299371447376645446761482429370068154197221764392703447147688078625205376194518448272235720359145384523621385484017554220370751552536881319560190675230813276527252368000128660148613191066084204701526814516238499848119303388166437517389747395082431860043787986609504449791192094917220929751192794051963199857339000722634322290434523706482400719626823244148403145019556720357401110628710143056260109437716184750334718086593403554538858313263918383234436174644944965624086925100390875572228209542291638962238780908730561332507941328594202903244162804129195388468637716141966304410428665740446638101215132763707153445799367639037616504184690825150211122776501918506036019738912536634481868096060901089485845795009053710633626993702503986252037702556541754607321175732598488355656507993894408950501226563424052767786672675902361380486879306385755698350341387381765309006685157460074284376486110430551443153904148134163111443568160129300665081255408249024847628252248917476336789691104449368355418054151688494462402304972686893710984477407278354180952863809984801716982589270871557858091875971218625602292791875313181429273868196505384196573614544300093317700921793661412449446083157639411092248581484723162406117568915224173986556644081245463568508305751731905637740802026190547126927737559397116907190731338334451756963205409446350308703833121211910739658898148804532682228191063893797806112337878729276252249913402058714008387786596206097391125238712188620356516036676250814106825026938436684615058490879977389563383914094899719093936497533353941814083546028152472150326997337111498607670752478725904072995090123931815858311102775084082690322826668804669865851994868230520096568235746895045385238410302845867024028179964200387771530996573717194426406260190423898887348448969894514574152838619173778310225932903812120496258344294207823155130417410968112543300647934637440554834186212033117002745838403834736716251993675628173922219791930370982606637464926427045137364692417148282552713602884414545466262730255007298263015317427922046889691774222911973144474565760686730845557304026736023907485447917955004301664608796358842651535931995139730519007242838269360609275171269040090885251259859404015278218212395995639181266538049683029416951192820934484119286895893558429430323050933225358106514243746915342270253169791079958328856060500872173057052589930004932094546086809851551927316333446758846766709898087082964607561678060172545843272718977669298862260389555630517189843474503303655578774731111196999198058302994555549416126142504011050745196494595539186577448545282225828839380242925291592827488781482866356403987884787335032108827231638414855551264708943846700421718061245572044737187770332468466921684563171828785521932310880076331161993037842320239768287242564135051860906677381761881996314307564909853017626891863939922476540985471981373081934572500712888584948075393604891060030161506600304581871747173203373194048000966056476861334456555298772481917677071718833567735160106679658538047677866910622150702984895310836011037210956636178854113894224750459106503188209955170082841227488488512317953622100076861443279391438097520167893518740757026545273064327057944529987697548998366840468497537759333285157584982698499962495659326724068202388425169696415655446358048216988861009773147379432946496325953201813230471311164787804605939431839610020281754088101551169535999421842928941646361180733281968326809486657639595592543190846164074113877179987515949938849685971098165207340222561538533484135289732601359292174611258543390795353756570761285408342582612825356869037955886603919216411393018277093629676136927139797132710935014638033916441900760414856817806412891050676196579906479341985416371959796805724243782272221182884973847249894012887556714401265854808892536372081447122682186104845586282941874776164111012812665185860772945469665004963802196482881140775795293660040214727891545325854233900935394174600889336200108961136696986672883546785523659805800664138710312300016709595452962713566311461014246881033674651952702493314529683926038893185933664732689291820220326378577005527962809039097715104198497244134020039354407221226822632382346513685700690104418521278000328576563443900132597875388885630608908882528356404667627045712194477885996474646398480869977066375883794468911960170031774736494797310602750678370516627028206569031374168653481055013852284289579221094477592615382582398591861106590428822793945238104995900813441815555049328028953149558067024273534340401537171235877422855655930263021781712543949016101532340018609456847299959104564149634471248417373707277350744000513832138233750627317004839977470917118410047293583965691566845916931139800181798688126743767423841807410874400904833574232616680754070496479152820296631438083813006151646780153788740486884002492622867010595619118409336666120164085775016699568334180018076228757297558964308025690421018176008269953486385919421601931308348806782626234707542410039109282350768140268064520727132338248551577198674904386798761109445583917192162476354230221040376181140393886663829219798055569584038985369830975147565401082443530101939113705597012619021608786167893212082622630086368429160204149040939316102383738444470546265082017338453431332731363087059853759086639156035548811577921710438329520492552257737785235982934707682742229661408186038679262771309532047099447138092666271465752933221142693351302465554625389455469481284250488336497522380264512005392935539757517257553529694739133736538687409550516050892036410692388381570522816423262218531077252232339273139233413871012560660697224838478116021546562467157314779692869472850793573492541795815531087082836048778321766905546711949313452204463690195857595052773685310585311027512128750581141588875810242316527676496675573157880906062167720547314381177416467919377883168935712877760083327372463219011831282802409032570857809218319690987190541524553200405743806837301110824761926378499527483660665693921607060968490081379670999999934652917268337599977074945018415148717089078005642101267418098595220923502194428189953234095359778772436777735566034358747085801433690420324654347468959614116422026103482375738655956988201836833637012288287161032596337241516014517934384098700978114989612994411956214961490340256558548736301144253203006768659081391143188058292318571885141029628779275930908790297518314750621716296849142767748497189041912492084468052230283617151986486407194703377325676324764381192201158946669100932356952283669035647189811820208564773509407711275159048165899257066319878541541826120507025738746299732052489896762794031559892689418317347543134983637700424658215484675767010259414398149866883554365738013047980995726626467012696768986271209929838783553077891402358942641323566581443991050024670378751725121304181378882389260727975050730690232852298189396383574501414186926850026061434484712563750845800971731535880455169633275504896569513253381556787181794553207579554382253758509985098645458213286981427286476598857863286664199277019420116945575576449536926480191674733173668191704973484484885993126453507887810471525318608057082764129328245320534844042678184301452927844615888735975070080871952588321347232318673977470485492210093892625389110603842000186385862436898203538274721739960041276756964237595289226832437071363124252828981133954992341835797610536325365579455259072094405345676241802669359365499376838803326281956772994893247705641925169099386488326444761750905747976368891525610529511916247965176306413809335311923964820203521794141121995958777139744806611151071218896711898757644071341661027814114652068697498849278011514666006316577691184026664105614328812454108826828146414672402078336508321806014521465650759017788088729429714860608033557980503857260263425294419065486050644478436089886494914994081498525673053534598717791044837510958044003619305385553099297121789753365929145283480130945778622069045919357903748131471455825265336964299785986573006739095361085147103168756358300027629412222678217559594588675177087035077299045738666088102803062232781642062011328813943939011015080045733674111753489864875262912786352456618984234136733034761287131627456378713950202705389510934019343520240596199213873958121884731256896797956159741980848270350841750547917405562659951295753852005734899440237188822785677971691280899720938948151204874456168553267487224634785468390715603450843154589109502420203969665147430519375799088532943809489649861520285943469191644090499211704837756405495391969200968854779664646386354805520894004098909813850654161586430581840251843827274171466601307299008763132051720661276252301712274700148822851726178625600392959065787962599910147029716406586465287447014368383914488369123806461217707178666554061597238007120021570670208111866313825816576840460331947578290069533329360518282266938389125107592274585405785404678006041468907038162716115500618258930344308814808127483863254112318166122206529214080271993107710648256312337898504884746184916114349093068215132888436383739236022314220939187220663660337717697685595043560612114941307240162790000320779796864322990462065775566119967417051082798778720977567668958442512072661780738913148638868831547813214335198265131432866600956188656381499298760827620900945341834719875532656115586531525671591466575179755547369753988970631362155637784246391032383518530446795972271544461556113863535572329206493474636162857591869614072582252510513232714589864740907258899807631786522156181319776551153790711943834692278518659135122270195240049974678463112076830813695624640119651439095995261784409373924261597719048021339690146763953153742400830438247830395082571685138111126056864477773046001801332232329540258001062052864348592646965989293726797806300673605902748235861245205656860669355235792533569976924805949005372073178805705910633070856722922375681059273571694999833115128871182108865699107083009285563760717059777625341435271179860843583533465060327333860710121512905453814696101387592438892023772872062861750240156728850869486556838436924724910576827563063123074094384851278360879669056527808631525275842974005328058915620840308495126382613304540619230510030975271058384994982328599616179041397185794860529527073832292966619231966887682892882367702017696690132805489199359156850695959515631456526227865535922009259435166671383233775398875881495979238487047565300245821503765497153254512081502350241445578560226039264917732680878061067978435629940724825008003759756780112824417961774577841054779040303521962484974244710493955080366383844839474655190599905911087387615126314012502699313838101445910732652336276539799348677957410044590422612231249028660390195041152410957023293279108473119864772723194448502819375417808117486867111124223780167248507976282672453929598062305697295921684254874792611174788666162830051126789442514577449985821828936634867636004865429295207217643662375707903305790496415251475586532905118669624808347797595416481060102876249394647735159083001045515373596679891076574439751994505270583945404912607813553167211514736985733771094037325208243906203526274493959714885196697230717924297605353491620945924016776281114023514552142742295517285533629327980466636633533401111930789050751130096205690782769640277946456227053654666178858108266817619498297702913528457648298899381437257125262238110321522084828541021610843677137176217395898267171931135624430520797844781109873859190242052329878356586408029982867234505752061257807027845742751914590405109312333809133655929123282024326909665570110576539569386027314965452551779869366421003050457631333735295903559083491032469660285852004367586987794413110597499978633931726050583940219591769425999955581669831582739305181749221437639758302300582764826356565856262257214221875992752386867619155820010915790178612257695441915293428217602533342391854912874487274755742136521686920488632780360613589898147251469801845778034368240609266456294328911273557445127854170678888933978636595838210790261721593088830616242231164493996971967912916030485424583011017119445893088133205484969780574604666557921878266703266086203260097764880958257960282982349927999423943758629731107536773160870999722560983206253870121245604157382784098996965471502234195735417704433677039129848586598491820345491672986701623481395193723927088362284977615358884901647106235769634681817884671544918575595859424542264019058596676515742135821169708275821606421429526641360450600600249608930383525913005208216790112821647194423480065655100811348854373383495040404134012921784958505924970060156383840696582107474209507791634605518912393445848864630760002295572411456596097936607952528973216652609130033298420944941217261109910047344323909284226584809895882381204612504606321223799290906244732522904868316038172532302673797476837296058279446005088104809998222835644696670736031605499772275275880949210392299199595175604240569387836207542729405786797058452709732557352482188220876286124469807491379920246275363916449796841530086061125806728790027361685188367327118541326578296469073438355418396550544120413312145896821283589351581945724297092076666615028845323624123781918042346568637787324679193061589731217041004742963840970809870901324364837586705730171078374506416047914085972427804975403511580026491452223820539070692152229345154351116626865511686294947333938318585082584578874981020480050508307643297764600956048835758955483658374455784395313564963311449122856970921067629478477929436494614392085214877024753334785642405562514742640468730315362342145206896129515184421696865054052308237031978235874952663020909962905492208557217762673108533016748601229326827010541223298415454902576236511375700640299161906766232544274158902666288900616498973759246103093960577811759890920903698884110311865196722572157952614174639891199157820463140160182784975920744522960646223715134796967972462366961615141161717802707482234378594650428533253468662396092287060480525619735860082578572734259762347887431959454346529303385094182621384961645996796390191637654921479476893836723710714362997172342262068523669393278757538220842734013798978186765464962171552219797099305547907797917916389105806820059962022974438145848371032201833742332887923493918060331067023887737371397176567253940122249977052280605743361866889292263092095591379907363562871843492647406263219154353537210926907026875946148762249668277697018984410146730656419592981880522799564679519809677006874823523307759451222001101499740755658050633676128639811577323968350223480087234216282187475971383046284343992852247327851578143986245082302146223154635474366115528969235948672468781467604267270053585103306940258366723167783503932615226460635068391416184811150215241807589335684794030741681290065606183625529346882935046559759388242655053091768683054462034318483872878919357128237746816930390276119967473689713663523471326788283156902367803329975718995482338644081222325770575967297213322108739353871194002154439743899168291242512533521993160167816507727109060915561698722287858201650675645016975958245202982477521761166582925615532335679326342044887909744050204699010798910640424030897153331757631939373716037881587509775421352201159663542195969529608260579025821458393956504841061371217176462989487829956425951464250038239122239641984362525886661381767179430563522067273141192891170206942154688495898463619199577595616134176218639452734544943202741794321001824333819341968312219894638965096645421430132966716485015284372516150180880193405359786355134196822462924533912255057639204083022947913901877898299883220706521769157521944879362002093347090587873320222613921901510837932510461416492180446917240064448290068510066380336024960089479162326836633167832350064787959452490527646762892909749613951900362634587179633581092357516672534890312893888632168567154524308794551183681237406141790534043051626324601618443992284438890323103059821064919887966653428527317931473543171995723467701107288707968616034067420905456983364486421725342985221060400319707593595862757403554692909671035573661801570838568586175392479309439850075279772886782574405517019343400286516971567306776307412046597601934623630626084343379619296834500609345608815635701215247620018174436145929282484437783319890712565518717940883449335632837497202256723306961674156956199802887421824831053322256785516955301492626663172437622916122539241818241040982768919081423314152803796369293648400887631929892286266425538866108516752256754368053982592598306313264901596231977629024373646117813348929145245072195920870662474656344483887912034528228818258460416462254231998878114916654117894028299682122327228704223873868588007850132218146571614320955539118313514992707041186087811282279646742449957028539622326146071396163836085074634186560399846118253754555394209449596914862788652186609855598609561799064162191034958378778838556787651619854766227862758585256526354224378897790643444271209094163806105411588927852568131336323703636133849042114491448347134998601693826391521862876894983058869208416684634476805512949183792187235366757401334670678304617664512489025971388249618163905045270723129793104946530857838481478910988292896618446939907997411541575685507780452571759797010931749547443324213976340475138033338141729686420995759419612114162595609796262590088296650933910257207911905884382931750791633234600501445783354673776347268210922924758107311607544029311665088311908454247717721405152668204652440371002287433846642031615659519309297852012506132755818694377946884968856156936888744713425465775071473385833337708837508939612876661406319627868826668554096977485778255413704228052469656612639199272965210791108857243079934891376049588916937991910564979207245757849131406192396837582661013862607926908513995840921860651013322898020076094497567852799965328633123565791018080009353971392175274255338536469281486835717357961080398245542808155007383177598997473789726323492109139595846867325154645617753081366650349115190777591006201846843474234174836879697467049657133755975362289554950072662437951304567964903392695790814398102199309329723614111070946049729053296459023632417136067887657295256848174200994039339143693778308169791241020249509387005014111504148102574928296072456639556494344687881289349161650586527574881938595826629325308929831333973107295312901879991492837914433993662663239458230708817972147138075742391526810861256844885856936535800981319882072276867928156232001767706125352611425991484167569098574295843321359273201838086464264102100737941895576686309412824558115114356322509698562189674871646095944557743230695155814685937185921854057276233176482015036537558795026342987936516360823633418177283733402744755334565390046420107154162427737483863443204505068906623755593530058283817574544128050029572601671308362183379189756961066575019618729722595475372083299741780344655900111903860420155355973443835156760073184713880886679673984207847964604336565494632272860133443748844471576824259414710203533120934968225663179579321211400056485740499684816556421086052148742569944743194895189585594251143032620008248099137608119648363976166100533611150398455612894071581854165566250350790379569115566846671518736807305188120992449405445695394786138343770926695978836486821590512614478676803337248390665230119723911751274643782434140071449170820929458321646042564487525717691431220036634839996166315871342027375758551296423150035251886052835364003724353639823645191798986394426557413276701162139867567469647285812690404998432776236033727815144733742084887182279764141226261030105091073204848858505647533653098770702383503354994568784811276006611510141536289572574385870247851488638589220353303414464134223431187127902629945158098977805259097597930379191976253760872877704492631675109263849105000695687477988058643850944140119072760944256598725094210727231717528426477896183644598649876632057966344026092345440534018328562513260228233201724893960812135257926016760397787667338318868878137019650620273994071974824875861280901869245604399572290276010664367392983717905021232334065942638378729498634756873640954080297185905358658123769945342625846400354312542885497822574668469358785542253089849327539238058489318095843067830173155215195808696511405759885104371872736702085531703029405351767101384077311805955243040803658747496203628334502473077345294965449771278156784778415400431805833444650005929115149503288889122715871355655018847683664165776424334007720956304523015240309145572639285319215827208642632144739015865909482834151863491171075323190126470574269702802531966796476647605688589400557713627911600632253065638744395350421390326723534153726349381313241215119281937913322506662819600590628825172554311298702790561194203121276497124605033606296981787987156714096024050248461753526026579660319055872075290241380497471330380884699591102854269583855379851806134738916585459733372465039791191875223610212642438027310563057940607557229460003806085797503271985262390851726640343513897814149701404240535361344866912984087290497056238334972280597223589007992619235254420243126697542500465103361010931421856393937921707259250916707416686570374561010247383739235719024050170180439424867946974701093261469329048077843834727579857826811406292423398873448394200634072476947872669719224208072917020546362523350755208778069616818019283364831514514761855324824282041491263595871680416469822375902966571041524897476997391283696437776595902529625162342230917541540010866078287004215351825142923525292341910907959775095317670846926740550502908371825150250026779657697143676220069744712706619597361705344878963412741790002833243943685785971266083303147205864392083880391561017896436636700107012625152177155212285898703161421862404861468772938012802360092117349157305725239647448619264242035301370004070570860436931972266959707926161711708738738718697735145456675469891210746889461686240929535192745482756267169324038702703024041987571720961723694707412158976895299810031992485363518891565301925019267471039890389518451527554682635324066591723151727962149901324924550442810132620272348068642640957320473186461155715688288553340490732967613024579796416168055533910972339280590563727900339282725372831841229204509755943048579808359354443468635750009069585949623159882472927424085188013353350036182099493398547394237952178429580571771354519592188463518091116440078032179627486534939211460659756660253302187843076359479662963646594072889793166764608912501130051048595648401579759425600226053397028492501802641857984523794213295635335932322741803657102988367945569247400934746789499085303449991152501145889706482047525983619763729485709586664244019707961376413513597950727894803207229790066944674213718338177489318643880705728481721566487941477970241515110980804035169295304519893206589055490317377992026443213607005369187538163091150632289717480939183467493552637812960276450886479800563886784231999951022512444992664927535327939403897301419715009709819562272930134499448631735884748537275872455275729183142954844129843706479012341947376096143927585572697115084451596232944248995157847355500102667914095979588236428422231554546331554738922132151750384898551786554951867675393234871046394552584605184602193393870500576226156796617885810376020885275241731012804868525800458020903700376538881314641719462019519863206650643647111161474670522764698522683930398561627783859325812292834628156567489489150679658081069856908439503855675815943651608259887227123618092465412507845613973099499153376617013026737361416949497771374897131655331496519986165795498421519898698881187932004750488259247018653982635040892534546215939122852127723004363561583703433695324885819844273249789829206130862308713462203001498625677198827719882073401674698756437169214470955586457668762397580739917949626918641209096409657962397179527461284760697688058356781809864223137105540124060437891942451911964561336123455221449151675901616635887727845317731844576890148328474664327381129519992627589473491320504985270785170562307668205765408642297144496123286535884674901386516235289653352966219764093688333510812037907141217846796545513197718266946730273830958984342823983993985011755956600710166601738736967678424241889302034425084398407215500854157304853560292573208861829076638926565073041211908764965225402376613073855113970984564883266278391109869727810493536833331556012204429958961538387837938030650743234201560335444774671808908174734966789204615312621425204593566132221438082247146702703821459150042739965264323325953228286966790950965747741041335952638093299159277967017551073826184088159281202208519971804418877059128835664507503886968359781492403436453187054830696781020213200821708656558922774774607915520175069397493386744813330616941276416089353916369483859301845844820266941331386540644951368490854149740229150466179183135870150143322727379351346683196285705569670797704638311590837181262446191545589296331590395547395220015830036546296867254706828102369741586480349056588454584347652608873801668817705021310923892255784229105370754467402197795795832251379707845397041036631936564654826131472583327029191764984649224954129700443754286061692483186831066928307045949336673443531220092905305854005382199909114172553657452461279614651167697250310039072480832176581972568857618686507881028926752276342395413978965440496077032169585016813753949303242017821754330086435573896280478218483785507831374250312465016801814634713612819394289443300149083647990076825101262427379212906459650539621304465670853514593368309678458016432386457260215509125233738612241365551409068271852819551774888869864254652682309874897440045878864903439129687623177165756527354828401157894430827919038450135359102380551190284144276014899185145519933608272086936900243343414192544516053709696412531959123393365476784173223723969681782268830703782882832183833875502391582967595112052586727570742470649520798469822944769430502248638910474221578359940996322489244568027859585559389789850934702673414617873405043209295341932465945267435901333356711928464597377319970972974841482123490533914165005374007509616481090341265374992897873193512713795918152120753513316635778466847976018113310546089234200742241895891968601470557409914495536882787048561837246725505654300807736084591650646340333669972654760461884849928459365903421976902881767907216103012518199957210689112587289884216719959402492613066590049934101233763762058219296752482460744226520595672026783425212803180634032524521377197925588979238190053557031711541960104669343507300243889931007669248058475661645091005638491906717128011643519087158796605775388381788758419378862529487629795795166360240334288778717755135776249548499696371914631468651709262246783750050040052655134896456303470419293284369084145612655614141343080559505749694761575268679937881622595467095887394061667813760186017172864949617245201605387709208106110780510998789733532485630699049462879083666150638990242167561857676870056740953183159013744973045213308241334121913109849708892198769571405840135245141145481711476766593728737857814367034965112678886281601194733382602472039874995942409932950156588387303045308350770833665021205479622380771529747676628347424399411979374542237939176043573459198877412049551097408580669898118427041759472675527659424618696731911300297522627654043927294194702238601150990395379494576906526478850782511808504164956807083321128874526031100410435206857017153371242194841873118287563672508969715862051722338817078276839886004827036183070495898696585216613750090711181298418755622569227449287330866358785034007859549381349085918646560409266735339248071238133426176867893905587907618464202504684949111813372053194607096575156990463542282208989074323213445209517305369339633677091640646329598808479037707616232902241600686838776381281835995419118106642348570473794552901317546184377474576254587480292071483567815980622898793384038791339576705741402982845501933415291549180439316284078130534221980361230411370336150254932959755213141697572468618919041012745981736970653675717197506166352496783817840623962828846523624111274999889462364140937504658883755931384263215419074904452696292813989671917531649613408418441627273473451473230446545373445167754369730124828736379753578337877532172460541371448837292010114285592252106610688103277314118629227189899450207231097326219380850969717306251706577518846615545792246307957839730022377876208971858845872541238248958841692644880315799194058802483526281696484436540882100291448424650260655759383503075300821939045149339089964552881622574408597199930088376976916335007416801268672904885201179342388999113319664904483953053409353825807242632705297928269137648671374769572758636214267848581683863439163072432118697602085153318332728947254102621674521128107300880725130144774633504131157029498477608920252099129880504828190024796897558950386134712001842276416481625845267533580053370308157065797353726733997301049562420203317333691956914864977972358694997228790345310981180125483762952392821917681423825733534625741886200945192397415974943159780662749652298149517609924651957722887679972789273126318772242450884020915502317555342336119253075302728743902772901092240130065054209732908054314755123519883925735916232567398989620399748793205239140752527003039602867696890355930020469712830157268079946262392424586520403330499479520384596292351341601865896555221119356591668839839875372704028116602489269437336617184186984331165060386085689742216174321239777045613477363353147943552508443359818367402639284226055935441462940058487613032320248209622736206772126302776333812446179329705857302705424023415896858211711509103430146574936313577551643659129744585952376066596620459493829630293191746970541107464452339522665227734733111003905095589532405278898217520798969688292795948447447080083270272684591537346227987525762062342022027196009600095468497267941287090428619045954633164060564882449112943077608124479108552734004907031593614829792085934497044966002669038890754718866000571605890134444886300144037723119905449552118476735378153121271563803164751101786894214670414124561543218284809580416654534370255964987372747648834847401393797227767212945536460682487798838154381067996269243856701417730330472354559321146712237533435099279705674930037755878341846045569721066587016717965051162520766343063970086402875227299963521697779776006006683039969228768374898682675539937212679462546142191192727436575588321666161218987225291512102851264786777622974105860947103215693861721037682576903228417516836051368934557667366875156822554987572544730969721709817117296065665342080276562331771638721037170019489411765982986748273304842139233959246861825167657338981535192707863326369502639853772164294670615012265609545013884062354495176366248362578521651140434753149539234728242483460214937098343282414236536415251234013434671735035895951811602364961493890685934673224145392541443861830480141735271575441393189791457882356222249693875062845786754801292664347371591676812799390246285604824564485755759376665452557567568982191511787120772774040554296779512799701812343851770019713127634016674183156761727271165322508409725975623894154819924630389967563569980520315963693281746402185015410035674091707646711452031050826085533918968252599609192465059726166599403825736225065943884416070585072250452818564663055645642307248010702513021770918921295062479075178465916266206995545139953125460528831684868463962865610188023569550557480570180175232127910396557667571732726105496981112931604515037455010393177704013148350156830280062256560491191104561674627842822369616173663389997285417494673654484404802435898394984829557764409581160918441806959675540830253084315331593479920106835023691809440835516631749903557262436679310039125231074975342520554862993278487627211355347744715291773326280778384675006378307110066986809023036157807866795863650181397973031412463975241730151095673838582244043284679358497379893074842834287608886701862628881685211030138030446778301157780067394256923072167510946349845414810206039329077140640221819493134245297649949998866303178914671666923100059242704531978909522279642752551103871092124103757176711039731607941067127200930341353794670303512727435412207673744217108526125648276089642413517226306315051917782044377693279582063231221026663261631728443951198880502500952053973386178956616646710727200197873168189950939817768184372442476102687505509241891766882809690691955606712055628894603091014295685028406234568377492430180769014551971907073795527345853290445413130815182208386602543632506725325435441566537774109255779662761478020805339176260250611172697088209233309753981783757940230984012381582952073793424350748668592132437977553836724517739750750490629048073428009894600275520757791858608422166949965157342484539599297821756239656151334247621124187134918592153010839140601756351126563591826347539902922226735920095230758172093022691690417248646990061728344526152012366533746900242887234921569418236665285104165456181576823330436219349154532168942373755895563503605726491081679447378618743643985861122110792878829020058712917357742044919546649028725097392219774673395318970457373402932845774037294749828306942666497436116604299449690130393564530700579409457973297232361629520182642119263386430950076041850294244453634921262879211323607738069083858188993086859896850679782973426382313102005485024443159150479960181866009867457824319793764373322746539172435456255233017819065052822971207440122775359826564218906531206043296877638987242842577584862103752317252245964116022184789482471531974327666017667046949204362529522866064730452365449974458439340891427120081937204185958544854318192657426545146601751508125109425636448065294981063013780283863505631557976877050085844541683181669247929128082662969291989535381633100202022813583491731980370319496967948257228004162728942784722234291699016084261598967910424131511904600490386835770582956752119267369258298162247556207819208924742676706154792689945278005685401620553868111761431100013148918761398962145958536657268877617360879091317126249746442924066313280705006555680283927830707797721049177217173307139088733835973459496476966113386006705320885871719797793784467109033493018924330809046725163369428901013909766842393332467936761856919373102897468151505672877565046244862369289187525718871939607008200233612819613851812889959537126374874581517955320201004446798838174577747770753013194308879579800741548447067437265596729410170062261073312885602779671754664664968921190981363900113659965462269928751728917177950247449616766738174486763693182445023003959087950117985830205463144544050812259038659506031583662576038708338214851391976163823608744559262133575279458107086269250530056645410915332607049410446123047887060620428297063953026390744730435310017122722817699576051974869956211506042644304654263065066626266702421610665056747957767704323204770963560886451344754892926396762840312543418709324977087826170395392214363773928688088546834671135114050725089625701205649401603621788368770118492838407289311097727700766837064972491227278202310259914801008666098003486480668648059099152058579457164959618251741821360877527909916809598896676519301610733577471756568403444466952912602810153779025896686620824742068099707625935930614298305217611357837806810707592536053744486236708253832716440126070676278317512964631056794174325211011793695053352029973866766231309105969108288697369087954911344832702200373622073265366489401188986520552393596041500751449747988208445198128721946936512111302959987885903183720577411350985639536060328871162701136136411183090364032326227012846542162072574435546780976606484990798561995832114879208363251614847926762168101150260151908785517273398496406376651142350446645918307855811284226712655546471969774631267456064118143754977606393972050954278838671368331908849555386399069416317349426145101297549446390719612165769849019227896434566772042507310023721097278814806127497276677570441332546226682499433984238515875171516455364740812053810830516534226870953661206955740037173624655572286302699804778084244848037009701919799047361020321816515507731992653314481236496702521515722329422936245821987892889403635758159766881667108942771236844088155381249493709350427124848611973865968871159240399535142082999142694477091463262664252825233685794167035832749705765763451668553544301687861709024617626424572603556743479355853788369652449508408641894324338089997178545914638782029702520808232982097719537852803812623681616850602482962346943486768569835009463657832697895266446766360315833533095642213337294573459652255689581149581703721168710120489534713549028833138384552635917063312294790449822305233179659352184152869767949900764650959896948302541592225420519008447666600238785305850802618675970839113696727251188030459833832637815553248022328299980454578512933116282042116309237790818971257829494770297027598685775989576284484834530242345360517154742280041861352837444400665409940910209392788742641329984481050676643831647720529447076007116013718007745477943895529634241339270957306107801800754711230909319448474579957699613990212854843391968662024423217066469317279488315205319417541607251296626061621922604036751082886425273134654238535318137187362097470846034053117748472827861655909258216383920160038123082503987388082831600730730333532669530437753281894862999556419305571857343107940124694362025811227552290849923754951548077435520753142845278345364433111078122745547606034503884408644750172037300407492074779131281089324342227794089321876037209697721734767501717108505622200011516894520087417161188799138134040448848661155879394158736391302015157734031574569496851121344020033960606141373400903027347620555348482083387770501310481135520059177397387010638970576888912010844349242468579496421238639114821691428092020930104487347085350366208772002828730160191470442538733454792851603761852929827832772271226202273737692293057363734409487116655897050810960613832314206798024311259818440812766083073639944909526718654572049415648232353329560637294520620432508028135106507508386795684795850239369636866143801463604517831209790857270521640916811245172161040725953910706330677504787399855697511056341834020448298158945521594669224644119202537584978288344491832841761792383775629297617974856175919562495255412984271228870533571496177692200365530584959611981316022322824467040969039860075380408674787004534917511025518048650499257323626031183749649489992353098425437476133209492705387209299174712607036104568231088716209551233489988730934714113883952102281044220543376507349565333019096802402253430719129892960084786804405757027478148438298328865267090832295354510603872190390998907236135926647234752709511689292657529702311531950742903047826761382269513124150795156157059757920081074346156506707556370874079222326363492135422170712631312332392404636850499346779839309191385519623730728659357059842725607796372501258390017038586745748188750646372967746171246052904858037414596043463291374691356242118252223640165767065399504227663803168279028059168086730563394121048437876754974184721646495952998867020280505176215520856407375297065414143880052792765587860858129561787103143721736858580643801614662526541172987197227817360387908506909078572210252158222071049162279592076570023796698088948412194105047576258749021549322336111610504867352419629178668975109244463233038960422018431018276002801944210541508974859491455159721997473456441516809179628824078375441961812583037627175874436993651433375565157333837814827506180048845857239338736857266011307469898026123711529099523908082692918168298385913321182110155370164586468944177858713048851169034790112485912084253249751021979289774343605187891556925063437147356615063251727873785504522067698316958313934577285990322949518862628810867396786648366405321437209103864816350599547133506358210531293180444737841326487080383853815386899977208348543765190417110577491511926705317628696319379211333466317227382470329606804336570044768368684373799446056481424882410539040955851025344419893941504189355112958962228793092019178452387849451199352141672130622250883381030516442495963218012928578842473308234962019980594762126506093542755125052488276799907756606168873759686020004636325319206529785764457608925480812592496544751268217473100212841804858280162540258468266613619642990618016589410117571604207846882654094453779274901523909684947924378261162488349806208706472810376901584070636812391870390808456026812592287758661163135927288920766641512424879498423456066213855784114499014305213277823654811373443069149810919750804600940319609730171317185849858816149543051947217536513922749960080858043847774098179606640039556122768318760510305271469791565844666895552496049897032786890004819902201643202416581898342725663996931845587642306505795771876213692664406292275642319851363170323266888497466046669840246823882505790570394494805780066394598835925969954985964505553851179187320831729461835610415580659202503664244789263978458420454750181559309068637384579746005574964445344766111807132540393055690941126485367851472435721870902410367583388024006015132980268623563869417306810463893307397437968484362446862948312851267424430160461461007903535103665092088659081600123799057560434894570142757382288022793700136095262180185636235187023552456747917090475397383339182555247818344986224466579756372658687840812494061367389547425022621222733386884724282222364405222343386634078311271504849911650947950626303097120505783364641027900495074864675795791664044539748794733037481271446135299041405903125914567490225715865731312414052649328928474514533856254594474994587572963982069941615161284064355972560492502417395497347954074817737267654817565402664563822175867440349736731327708446199374918499643254925457854145318145352976177130364803448505911217620504829449093687071857815422437948244066872154949692654401063144611828065664129398826996323361198608523401979367571552524511032774444908269747913607909823931173425321247603110361429228898608431476823808595761695302392042318383336894015413997952991110071507756290480896171762363213309148439054835298988808422663442236035807995866391353611120523503367994471042377139283878755455865659288292841601000726817460355736260484033946477412282572882991591465934608324357386452197520337610373400456375510736265018295312066318235461018260223293665797791267135926311132697702533560442623289933674641777985409534120347882113562822431491758218491843484311706510089286097083297291645063118826442283077934063876453013189205443464396871004095116191956240893707132288753487180755740318136427711890695880521079192076825443330466693544008589832514963152625769539189634975147899287425154448842545294302129507392131889299581671565369566224179258037425715663489872318389553448517459140689525267332809295212577944618265658631271214712978009605562120168162271420552481999549077654322565996795932805160658910547953088284662568634909448758288588516622699281872509856878874069210074690885841749975606950945431046774461618263338467889610486856984896514956490962318667299698911395751138231689847810913151195509242050101241136984497719698032275559788766597713224172819356046995473889129598102476576943909323853583091154750052065396559064746895582140250561397006571009538460436866016354858305730856749675957110189111134062012835514051468024921996807161165763336867578979355002808640896831517782984018838868853275328599597202106041150798349964285291366744517022538998145491114000776698637138218241756531910485358127344058785984542253142528684282574606881580392938695440433722304190056123655994119009431910205792926119632696113406291642424101442318849401942333950983185849383644807388568665034609114670872908953809429807386797116650776774945859780116649853005171421595333352946835659410787307528788968179715087646912498335898438764510613220416338414436555525391922541923934515227023729809552878961194189316461019880190930130899022436418992149171714885205866114578075482642298181087733909970392399193065776299659459305289737087759087869419009389379796289966058047429724069089559972753571798169016633950388844540372327204937021632085169042037487091896715377762766342464328032702635231944403100216732474874148627134891237105101697464275457532254577691922218794582644927631686852215152381936672560567445147941251261330514580552534628522287337689553743349324884194902082625864206509487115949566330180268512450656653708100551554322813076664251667359412685780597504464150387388277644584302323242570312736698632963275926906843593645516002378420941231575467402242528759841346226649412124329506071498771136053198372231141073911018340191343983447819719575934191352028900619000211004576942354783252698196968584554612933383584750271674181721419168345565615803845053764917230381877698785183147054146894831258185650639379885416799475846723313576916850921694690111554487378030761633577574303365613398251005991743826053477579379185917021493612879108960552974620023466443121455974382467597099895085639031900963903717248914282555203544208553651179469821510950753145502813126694885690602951274873989484290421062537664376849769398752781914348583512713662867728452983966587075628599098847514558732511799901861762957260409062388721599740704148310972831687377448209507578061271781295523591797345041706239887154853050015833737042144050017869027081522468705105691042684752289377212818113584504292969681508513936176642318150868083342409429572840271719091832726291597614329031308233082220945095179452052620717554124247079403539536620438861830965440473185055848807147513103931996765872740384903704118271134928986305149596412517719343192188325947523030165836283417092173414046631642574919297230493780154372577416893782521017966489543622940359711044787320267013169822006681091810985993994627932652953256913135647098225674271422498774172862607017548737677044169423462463700366287631711246542118754279682092415170135154265589164651968026909257984264926323255162079332952492965637955942152783289313909968450333092809393326695730612136653504177417428527954631466817741937676341260976590400213487292206176820447247700073240293374519084725921185918975445151104212547213731913301216339331490192275076845833690450258418440916157894628430919159636535360839895483927415307191253738719576259440384182875599708094303831084056791420115036359771553372291442151085314599865407965577643210383014612574871837034556365142105517235073372216818217920431616349592094751751426793232576135301850878137399872948593299027646019575697635657511047019948262407152337038992581042976939810797229628476524756423212601900668921817003703019740476770709179653998808573470770770425033743326586395344624972045188715728020422743739402635321759254758097520203296557984551203292358183729363027135363591463681979418647033083379620392298656354965519340465116343120495816930054985550480121477045855762236515908824486710157951206117596880174997429883478609928278759345374950185632842793355041103370409256187044856976841522752165005427943543414930079932629834155962262786540804830302092429794284963628179170735113554329617252038621968034042083836847737791143203850869340354151688389137161540920908452656557871422013592701593548646607023546536344954982231488196143646657512414868960383858461584299945075239705703220586021753550644366849510417867052273392827423268035522538479687039233524695862475755559976273441418500295567976691417441467065185375550271128771453874996471496466590769672996363926665044254735534421760389458048507611364062242141756743188062740919182888791498518047459781659299371572757310842695980663610765242784093239266631190801261529499671093521278572604947028288987559043423654409188779157975821974481634687495366201161204355151857521353304545511905382661967079643879681262507695945267229396316272823195569483822419352581409802809172286023745170388058683898274003933156616873488179132856834751039917042956033854979438697611464383181855669187808093655015121019595257553189915478406404400616442793744694731841976622419076332328751436192521810052170824775924813123571446976540404276954564232392193788123813898711218100473539397946010144316177467042454815437923242661252869349445181302949364984448366232616572002084223136432639159326295062085018872519033479167791189601427324840863661246594561551745157872501634758101352103794910456079716649986211313978982646648877287100454356154534378214241512221670500179399018839288816411999136289626287466096370318903468151360031496855884580261708890391429853305018301954590591366117005133807919906741533021812066715635051961413290974081762370300807626983891320913814500889267380120419810121190381979615110980585116174519668169404212802135884500566162612207702080935083793356376551061916908344430368597058058615721488199654394040514195580735395458130727903319586107524823319879788841831377905299835381071682197966003122375609819519379186936157148794869238891030205779675447741465489238486894177536875338161544819955989422116726918871838382133142171606519510725612016647284551611846332869617125672148443668898081523265221318287491181633040778380625797999525913980128730973097098017825094798054184333997215879176762512690160986968695863305877939096370394705788767512560942460873745820462655115940105878805121129802164122125526897073518325077447392098165834906579597277793381901511577666812549057893367135262521385375252260381187966722747514191968054790765841794141044232192343670334111135053957299185687803548384149910920623111286795112567230299165455059445086769368369500548616055740444076188775570170380051021006384134077558961305214207924606393659746810535866631600418486824813582596372611367484514982613444722464403760349908325363058775233882009307226027136033908828184621332945458468897931199902979540479648161625647125988593736276813046026144720171834569212706551961234783425417848288729855146715562793310600753833384435127083895673937310863190907182494566874988895064307633153783659195972884426143073420284423584375013872326503310749835055039279267546998552037350798811005558352215596885047009163416477622671354974593438552100271921124263286519958878813796900955220917524464127190721166062251134419070884796994809105205916146173282567214944978968591128317206228306661571833366205070376155601027516787377003076116492757956284572193142114374763740066601651118612886342203175867127943799569975581714185938892450901699845669717491318954177523681786736078426776252174929717353835815816954177760599469413310569960313271600532837698724658075135515740989164965366265333430339446151506932981651226939830884250223158258266041141905852911908327811631082116251200534962176483012209849995124423237709126961483749028739338070547688433804720798881863567797454509792918246370798388086253740066700146043827323816179828725033156970828325660967876871582978745959863574826886021205419495327702886708040983680796222148462303303196819346924938361710507719370988475581992728588218309056938648908727305665958447270659979150243537497137157907988955290574030505852413898287241816096727613184588020775831934107368918307995798346026183292667115129439923120873274060405005001904382942114603619865205808132807251305152835686712006875592619775579409748778912173744979895748859871923251193021594983696001458377963404151241169171405044703802856188003585025179156676500707791203074575294713211696124132048051656803728453296487284080518365764757257468313105683899698835565028111334261108455701768276571050724699635554838400015425244428356493250082880297446292286713985150505182583908437306002305035278138034443845135632386186524745334948165040992759356030433908717877566656354795376354368183179338577848589046394630588777505467005940585486748037859628038957800373376153469174685271701899204957917845718298339876609916079756967403428901061771246198439824094766553992768888032012369562573179549975161994436079353017816180749766078415704762338422517709537092883519038117092636174944297923675409732458219731704185686336203648355253068945118621838673275463970596824305493804842631305251305545766013760619613088077010565802650731533431578593072429137648024166887207804126814037796610643808764733690592773819694166899376009841954343039554057906853250314904607795351202674245084473557768649074005441720144704513104950733412826296269427171082842382883787849959509206613744780709948231965187602939235426538292723714201851447979318905647679751815328464194225948859122161770973307744711813974035501563361730970678258163593370824773890407669938182531462061866309307842980389017024635899470175221502579386776600098677568525824108607188403874941291802961709102781182666349680273397522952516780214341353963007715617135706409397868295125678029628185100105756163170529593390633145253755501774198835674340405917145517764954842194994614615389462607374978162029601508347656553378936955914876692241020865756002252606539776790061602104006611952343719497164286445291896751487243468535478413919749745141153941546832959029747762413063300892172234027462715340091534106154480376378961705989090245191980412200271494707378395428645128749245696195210505992956444384138774421062871162391446127802729131597174010783394173566006952920072706833442515119131625474095303849143280929655589693924622715872667218354951482823568591238495184555658308729859312555430472653988268764671369717845384041768284103125728219521882288976100189686888889699013329112118255359612911523633578266592719479855975695342540862017740191764992689802728738334573523209662275132299865804989259965234425490813395172106498029614062651154678146070767591881881388572331429399090477873212528683470911281074243782915949394792755734696027808727376754266087858373809562450941893197226422074007554204869076503856931601230673207436126108486676847546342978402330201058028290822287009764637722226167286938935558764287798419100320301555171206074809359271835580933998639805388357516745729864690544865809591848198775324991948443991763531663431240625105203433462403414126068242991817693778594071932818568672989522317355216572393942520732629367209531894872255928082867873929253089460557105563210307404956565658375323831075374184655483697171310665819485601361753566936001839360859877222253518677647957723036653756784043432466576854462645890327115837295637678045962841305728494232962538722677661943837343918516926595721081220208951967970627162123211739328218440899654899398307561655683111266190765274978390293116785588853909215857057497397424681796937487279867096611614989545659894189666263921363242737455151222107266445225517036216002448067930530615375220481653206142900983193088356032122801746441455677027352874520628729728880365871650092191141937509007592440965731308246388271516591918679413818202135949418586431765220936589384699319567082023446387869399910589421437743794886604674542136837375821413087449142060302389023488580486698031165366886494471598642594735099477574156810898952271453063920298950731571201815055794573438766865865348093613201598086424996012943979734706712799297060888357566882518350493243368164015660626805780028388581167694652183966486616839940260446300294685890150874856545298443653117974872865369339892390746916039184103352644836315080411101120352896734377591785685558671811230054071232679144650057662866398721310824778582718190509644236014067353662064450892090198523910546424546350167034719336799765494782044908062048997630401314148829539171478471245441154869788698928222100984244311437742592352978815913412699955398940687194848303565599797816248010219498285194229914903406359877510032749816807197462800123001994919622697565558571626267976333799808549094325118778159450769298764066826120006151795177849839069045580221315085727550327397408334703225393704113336236901983403768565788607497917480075394342052924215611674051333462012810914188532884604137590820811366324832933092057247908299618407105985214185171194899089227872855437626955151524210349133653160696513304782163722940233908215349413431043085079983221478971176592277485744217196448281810868961796480870799260914202132848068825677063560845560871619506045643712855880039632446261101699943107064503448828377037934984727974272036915275780674403655582245576031493355108628384684509759900422121877584886667531161167150843177895647262618206272553035067197489620869259152669748077094437210820684256163618527289703173269004232359612692263434210313343454691223251576107097981761373922927280220913396455397289084601952551286849966333106201383387327858976963711257965442761549503159432940106414865985667976905540913754917914103890406560733071891128191005349987827542017325817580996717282111492617608371185764062066753442934008814943210139602838590191725858585961670357430297938154996743475228035365152575523205702391706792041348267871379793519555776478446371767279954059507878252648558824638542464238879020003948823162085514024848921830506323929212435347462665018451241154031706342466074624049283484591879398314183091108007028208442200290195036661265294790123408262504162970812806499959482674143485128758704941355182105891964719642911918046154127438729456326591692209930769020508906641202257906240461142317964056475199421131435519381735389895892377548331955992496939292304391013372450234402030419999052238871054834717861477248438802194107902124888521786415023166281860677374752598357451549509857576003591096449921447954543657663969712056623048170361743254172043649104423233126104660097028920706962429688617053392191350346637628873020933375803097083030324001727059936981387294484049247222499707648906533321042700040970089449676668439551675809369847805528481662177469633714732091307772558151088141559020447784278311032364924143873712815090581923128729553049784141455303558668183280617175487851067100581152552577756659126762668126821549408810591313732492548682713593118425573763476303072736320918710402190077083622608543653008513111204376210642746180174240697349454722160506241216460153690255830598399999263710660397993998636241520892391075597965772302210294308220289570414748591255460838113376453468952825009067622943160736660203328199320936984803224621202078937687930835572603529183290952280698273793318310980347133597331502368174772982124993790675541317058961499110497634368497957993717798819872281024969103081640426754891544531178699707073388541249959537771211126544416074394804094056258131280329054538432034851980160394861253388708477119167293638061165937545510374202478940726489321136346777771577121982751052684420241750559418883615071959373895510528453261783171448781169667775349787771313809753270883794610508588974401608948760460612884079355832117690569106672625967362339261653022631115581767160654230923705270520796446715130987661684691625871552697577866388071472507440514105707100967919718059193327682662843860772678903790558877190613039433764126265760178456875092667490150714115320349115163087202749774204531285409200402866815139742829987909018758378871032510089965246951882807858940529858018703686586442444491424696274765036050482742047483500234707937193562580758179786926400828356942387579558930559647281268974360861662715053154400673484480013016954111708954058076029322914885941820618015702468181084640375849798110432334476415497833604168470457472937490315138839472481871436117015995796600044294195511115276206609462051166416686666128994899892095432687047544922156051077863387718165399668346063970691866948121854039727445027915010991109982062331787318218424266794001880613488103195830830406653194999819507038663996083566378124639752481371179591278507305071036819718316075127540414584481491709955155062930369473008355516781754889065746779309698413825280716937616426891701047814765550519654988301046740489170918720379795588845741576683033911066303961972063889085394976557176411001948745291892654669102492987913155399129524326485783756323579380084352540392229300030686916258781067344194821062975869755188163773661650242987216872442955547310542179708364126727023481113123228349333323944292763821254854278845945961305475121365761508399842444843841855518974220003460711375216272174547436566460392855162231693983427467528360987968143683220845683307261754274882973786465271582213959989785682146184935869008416308754296689041405827277266085622177830603347265499803809734908992152599845240874466266808513933569862923625531687235376141506517210466055794211942732298421669162123381808837018709664721302824583930774013840178644563234138719753320969662918679070085937454413002124604142952762124969807646923110108359329451072758368381864122928618047740595000838121937092531484516497249884777651552721369647096405036804418058441410468743473239777644361843526945959028701425183679951008079741812462360522611655060831568513486866247612645577480526658502101063497250609442277162989174178314638301948334405107772075604901424195005343039225972589417096606283549099645838466184063957267110765302733247922692324669235461815271628246714646196784953189654366018558837927819719520749915530443660459189482102984982778155775986958809157030035691724340127043377373684180631165366087254199521926289251073223221614384303650638564604249451207146286456015963991359453063585191185323936368449786668293097224374067635971948465050424517842525681293070290608138953280967625053451306502076133571869967272511285961076625140822268284448748868446809172644913619621192011582081413761807154979622408387097261620368506559727758393994284766156387884324455879322872063518433929964276784095191479105005183936832304352643376335004047382764970179829781471036984317517368488588699293209942283542372784712120597686986531891692834120506533114979625715387484594936185172972155441815208743593371410486924997930150501956892011436553773232351814528949338206894498962848522640583808667151208880939153106160945537489110562712517275009321884735169746580211751029963942574874708366200955957913101928800316649372425282213303659464385803548657578335854756102182074671905015143947129914069420113550893774021974219180909763729132683751048363983724280853775764290663809419374453495087041519134511408393055722160778694969583484116813935606743949330196802218351197185948948835895477365734999802183355961814667179194532387357049564499929007522262780179129651747469758283431211148658882908273183198576228143952587660628408099797641095716512291009481545710709523695775431482690268857956983009347071948562445293393485758180438981685113037987272650117234018446790599643044986367848972601468868961477369374598535430916795138440285049137500258155951973818182032779299853106068911796380117674078355247414350582836004811905052882355316405321739188755791621618357525968761038957951770505181120836125535047734353501520920211282264624062256574520837352970596665991918885856870199322256957944337724185960992804856340365168912057245601513601026862641050954958115746882533451079030148538547025215220159721022013745767747841558470305146962518353109091694636699531797047303767802415971473354412160678376988686364223283479103901310766285165493884731322686036449404109019623270643376457783703501024823582796092848330194131014700127000855186282118317852877444209660895719778200236439279165183852889881024772465458466397291022768612065660135142716665208700518213067592621133271643067973378528889041475971272850359489933800193627937756099562765639672435144249229451577554869633745835525691189284759908567234861914748220135345004889656858948965533402256276936723250681998640530714631501280794878354982828277643401220605720409599587496329016871905781128075910928105508112868495896672106572095620103478542925672445768706525816008124922426709162515440638994128509833803834499267641934267653728902040978506859536546172997714755112342616283413771002593711179910857678566282822929625067414953379404847608067256188796857125526783885969518937221439475430797046768175997569289290068537170145486186844064970039343079657162966970608485261196481589865838396134412136226654810530334490777106448352240536745519658791919981320383516980036647761233892124035049054041870373321664720227681211077810049541584772213669553534583806554869562390698446512986361253034051444759935659048222446044909920580170099160188795833218756690245340309669692648682506767639640122110420229334177987811633944578346009367146728343675021036081216747874438633607165214554635643107952106257811026049602058259905308949641091800129514592738004857492496862353932960203312821113737011070149817505784018906198813536082800418165151091457883647826535755752450490297264905038891136700646701941043441265480901778864340977842526556087172781807948462874499138689781614928042406071533083920554441766703660371418582187544331012116352449282636245030092310116159919587196701601090846287937217076323840950959343751615131106592262384014061441837875403633506523428467044344901214696164637881760508814179610002526379132267728108315039078067168463704672185911291932158950900733345379207940657093062789350881324455063025117476864123997759895293074829699148045029158990336262158149943733689180290248564872732503201921507741699901959118429725567398479575417485460716088313061244588054913264520492755056621967016568559393242960927174959198876888082841769854844706281018546968189212937681517691260800521567637621622616568550588149046679820242702201271379339975348285958560589268266912225280429038560573364090809795087953444522823385951187012296324155339648800379669090132897179179853461504529016224883584841161737519751700873463629856834740478475019684822886405494047427627154486659096132779176560910041251234444240352203194400973755415389561519650440637178156143175850666508550628028005407471993262715621422913101224084567142331470508001507139668596359302981457786586720722449147466330561922450643347687944657218917996954268920184945002765994540432676602996473349808351746799168964243088818790576229829134631571499309003166824998691095643936749564034631601540237762711717654569258611178401979735152029729893237398127160539166463078288830445900654138732156162628377694215357737667828366786598638840899209757924235292585645647389033942862204256678400901722672673637607944402573573446739085614800158744133054670233310931706861008186016227191182085619252688482076385322170194299105454598297466337773238412246409576343327025251142058432513436970128341380031666352457211016033031709493263964256627158114494883029113766565951841067601273525292772294975143168174158229249920055846225484035175785257025233970240310853933809586601903768904698889920524869508219880162061340736310565667315744653047059421755712240567463651506743757203984040754792602152549576722227617306545379415393384673766396636350957291849738022967146185049185823141238326088217967131690950000432325754415860595916326226979820736178173779660198880661165989047771360875506238097881225219778329150676271118836301149733628323045537362915296710058451215374744903341735143197244276162069168785117678251872989418555801805232764977146952993613831290215657896855012606214152636831984847956367404215647160630665022383826064486621819154634908077753708855130571786569551561815354604015877537702284131632211587087121038501025047088645287043786385716718832698264827749328133674704064490319516308408634737078804269843442842902889646938233611131399334393436221155434222871541607843275567771144554129071076388893713001283163246791245694079516815919821491733841144750960655874705696586803976581118875245812932686142444765402847441341369979554925379455993785758021112817892986656724573164913411305216768429674776776778346348352896740305876408146996179585346672178888224263471926205960499388955887244343979458333947155804518356617449600811438498547452247760376386579600379224020089649822158232730664522078345275795935641726593783684486452385653008808873135727793013602458775265289230825354749504538192091135947905000399613128847936852348500170899462005836381730924481485604711627944532817063061442808388697568908269153664273563978835288391311343365610979705927416140169275479477467242059481611067675751440116737937907262956078119649981543997355565914382563116748128179195074318343890719506691994068594679944458057307197433194861779878828263106886267676593109761148183540305204195108479820123039555112267435068009615506623053488347331799399289948240467102797874895392149499375124684333743728201870481143895599367247095278256881073576320518681021315274192913576473379108903602720504242740763762297953686606688376130750740599946262408926330263420287252015134216421394939506840104494610460983670173508341920316193401237150711500784877399835710812440633666864657029393154950242325503094483148582541576219868061691368330243911660746401411037558063706535733862085441677998782702538380026160229950502110551732056493407322342104460096004058267526073649974528312411015137650410923125898930540288119198878475479991763221011653459551202442187098061927998335708851006098659529966024009876247991473139784190532067389328734739541295010246022288581985188325230781241407387888731701296691105153432059545238168094656366075532972348005150653584553377601106781476117262652108408735198639315712371697059595132443927397844258723595304379370729445027533859334746672770941486314967532854028709432551121925385863429696966554135658875848496882699984987796923334526951358610637196873247316225749634009925716320114656301913129253990368319468567334768951149617160436213570024371565097638880089500831255343526359056333018911684792516427600951857296183413238290883093978002814710619540581858987870550087563610741876921446416483884057371271878081565273177012416909967312487201235428866546345704364223758434706844471247054756189365973235406290530034174702037963830801212947112520676703910086953768295547654353956620768513312330437827522148110755180384635866618246949511675608152938774651379512422114480251879624741673974604974869509396209486630455458519098227864358465635845275077644569568598864029920354279861470327446497019786671744949492021513904252899749877737204651266406371920662520804423510906909991403086787396674876153441456487423640027883476498968953922042904205058773298740235246638784396694512226805237574782989213929750957584071217868671865220793536323122376427125761755304665901736906919371254853644342845634377262823798805535511408634475216519325659750798290707008561616926026153001661990271001216354002910475620041836077733534578710633855183490273917452370742696802939485455489251520573279476143160388208032681249821126465411763314491770050659401541146296064398697293754039219586540391914599326274005917643055325791439014768868963333647256070750507276576048540525074723154943409507869932260768699596079520443785363643842614120460113045153071616918767711918049198754844718996538062736300273952203398044090056008594841377541268899767501250249195600810438746452481403532984492395133863211180043000297796930627508686732364318795910609110061528240066568814378254933505159895454577628329739459890232813862117429709069868409361564969746653401491463018874974333112410815892855867417473619814938842564759539478436046954742783624429042406496274024787547993925355071468129537870449054927207151442084128760527814643671217156292267279949782460982917655788742970587725437719733368828947277338082725371291586661869957646226607179755520170966466813235859852968822882536052009998256273380044921234765821422707150893224360217148647143322257518295615100637489990667916856534321861283458106213830666695981608036716226042725034589751037318069208057166146813738910409980667434895254656381030625271469297331856737386116342280974403100794147084247306307651716680597645398359439027640777005212394118257130636172679288425038294979898660153753761490615273383381727885898670805300982561650520455545976022634847186092115504260991145397774904437075978332231244200863272246546371425583912075442018550344928498298618124668919725915129497001847687888037959805513125074130879187744656433372197268131517505249840162304112321025398069004797397263662789775977795906353900273044989301512774591047917684024037737762708316526597443614079700171172724174245051690548364707238929755405868700049502832252636711897082192188589314071796536818240820712530157690994326575223319716569137230434011121487857577688192960213476620584144611016455404778793857891889037852352861573791898713816553981931789006356068462349493200547786933552050218710585182575407786427109788677893205758770402078538554966669690631156292847471871865044525907195374302158497270757410346955880075500995258956883563658867175001173591785349671197547332644763247547443798691312583950941973990459852952408812554452799427534559696500611292591007611450712192053057012359702921241929711050847175809398425617341160760172762255222664755576380471705845364017418207279965093053715806675223759452707903773987853723805882910822044595634781983496812126112938137929737281440011112535161773264221707296429083401211996030941005044374368992944255630514747357705287478541304800928746843050302684208327243146935272046367499939978529058290189771730357946213487992995016454373176012493987832496256251975038149422729632271589343547253496020382092338270400234815733433672066408384710121940014957245410978814271176072318983714580405300316263370629965425378941618986212730926568586499551902105266140529917035757685043821965682885384838902648678412763574260770604134835079886478461391885281416384875771122202145794278784338649173951004058215555273326364281388990977239611205353527372789577386313445873653435081088600231645479872416344425610453562888731840023252571743498102983783693033766119756034353409563664642902512057180920734779872799225359881503632802832049187953903040983173843109030802825474516979186362132258861884397403354507448269863050626867489254579092595487781022758702732326736123282973136985964449934799033816775302067909225171942296003158579650358226839363527836199317017817633870668394900321433237023520907281523110944274417975939358514977377340660307718003289149870671824340372702012897794343440488487952426426725818995125539619979042995652951618179678781435392628765688243506683053276313236737633387943860336490151505776960658455038924280953323289387759395880260449924974086220201898472069232145750509121145277906211402390020390217672088011461362219671249857794604304377563643791289165500985047790461129385444199368364629624046280481158295289379895048316757684657605338895696032958010633495200961054145639562086001045333998836111147053189960139788389795286184806684099335719157592359934115233444438317196940199022762153496551421614596784044007907525022068383920538793606307411444955410899523516225220910028319025866277617048723505378062757872921176047181248449104366521655917676092506030330943238798299235016281617038437938387762602283716721000647216399594166039145118903419678927304210679228783034880305486772057798888363983803148962422002949151241319179063476759443526819915571255528867046415353655378643184759140235070506960656153936161262554586411310417506338948892485054506213452580694721485878116120233836110369552800947801056882353315698469716741475509185427668676562134189634591909331317760713777859803110500132908825885664788400049602654777066780302331465627260694229966812395394384847160379999158528289478649158172349497540445415342285242747977179707341355674392248369706271037400786306389098555701674095535465704293885048048073391785872834295979721931790544298380477099943959273177879028284698852447955202394386899708520898426826644696349220599863897266930437415344698652218261125040259873742205472272693489167482016352260315446585140714188843696428464009924605156620261359761262100099473892603887936671891974034518642504235224859214020612232828075562431860083728550033680744606892835058772346203097172094595718630438166991391634316922338105400861614772996515418808767897062579606667367495702802900376395496972107463798951886367334157245276269305786724465144295680273869181816935507765263547325209626420428906480628469500861715515490468188295174327505256940804024385126476147387838827656949715236460800948970402864709129518245398515763224569639211172246850169243564544266767601307960740929200130448199797105244845434201816186806282394072575896559736581010195491981261774798122213566748382046568539194047595150240794439211157991712074941228876109572964300768593360698832784104150722777648003488299033670920572884291924171827583278787057892895030934967641517080034485920783307028787845557780783270292191205245736128578119841990194789099291860613481894144284698624198823380970474268480619274787714268692939239719428537838573416914930745893047372378347549166818154406038906691058140691918036856419069772790090829352042166106800010276321796028370617290730323326429111124974648647496342471971806304148371380668134141656208338956364337117479140505738949720889168148217530448887451092608276958101103414105079621712341479762211477081225489836959536620221879693481920996066281225518026064005255759330569500879179183866767762330176032399141139676274998968096208884480769150997647938208911859701373532585156128180516459427033520689543143158277908660117564353615933913423041715867323494157777172196087897671946248926744345395697949821940906823832716550726577343566453611083655777895870229957439513556690195579983700215583938421997665275141766888447716262323748560106602845336355849924085222158412364986413411516038775211964336687852815766491550999081881384086338639428478963522856477363457730863792533172030583799851720688475378627865595553153647472552236004253451363259182637029285762706537587829363409428758497110121926000399250549771163040124912324027590012035917567645712623516334744538766167202177526450483330248476098087458624662833341591823034821790095560734613107824412344803974196366856405069982620739307614730280340985001358731591215249853076673451828983451869533488916622823748246297608181700382634921757459238449378934274580880777932437586106630286935348684602926269051691273671342536992403554530067764364012263447235917688341986859739047296254161126493038347037752006602957674305746994948886455619740101095034185934650558887470600882873464242386394889670815140524597555302384809735849795694761229981833954628612372042059560896115779097256939628567704966920388712682802459909952201029566069543675764093576836590232800885828625949772908433724157691834043170183727696717748745170601533918658109619882949484307748397908141344299219064417640218932164646154050529940748541909780859410656545449683950178618067129616641886547667283547362857888979342790595017289763489452141386043177507506305905938098617071907090854416764293123166276131287204130775245290645328395418185434833351247435384357612348710074252519930169363847850876846792383872635937258201531544648374805631291642370795956890831569791566880950867614989843368281626098399992638566786438428504215644985347800043591187298635005661898183585699070229509637846069158574826491652431360563022967781886829238507537787729841912193406691028718263795736515116569912467881644667018496261024092538090165016707787624628185340216995805662333726834277320702730547266653604328876277591660179935761204256561836156640200357289233683648674543750267973768723868112415371205208443923935537588488698190721749159240019488972972061645549965662038875920893751387481389157553153550676215932266579289416859588841075307047524874593023908751470818537928417545222593830566082103444700832117569318430269027359978172252195557828475578610107188315413548493092825160597324438236143510033691910666817685860155653044805006264266207955194660884481333669406179366091408303752752301378186667680170891469475947863619636287117409409324311728109710642163745871552619635234891431018465529563613209855651118411290812633723904334353300722214799455557533629843371208156455751564680677949248071086085381346605244520930632896521093115747394859965575978126006833830330120159818662915981668469606953128874474990780518234861665440749337108784333889357478344160908968122039503511092621880173972385304156355315029218716630391392613429657491124174179804490716274142040379050041246816295628208753135067141213170788977598236078308257896729771984140242969487441376339473513536605223007421125961114321728130108017942688196412106275357525235859660096254019412038303458396047435237242857489266530676979603086605364268088286023152976085817102763215059431691333654433874418408009501844814920428897496553683178492538659078774681490529810620233157492359025356959976511675010776305848124206171444434696678776087453999859378651755871476322703215454212995131651434740646821373582928701580742219700975381790538591630688667265717823216330037366738470971152576122041741124014640507680850949912199024212874068319993313637255795690275189799360319419337478862732924665706153697163889431565181910145457839854658809051456063579173327439647210900483791534432111137556406455131119283745120559299652037175526931598433536334096994426741771808741225703006044411974662304456328667083828377349216824620401797875183769564808844871326696800775016263723745229678503402688610256388561554748010818795183872721218033888213910037345313266324827657077383348208827621898793897400795546049968437778307815423946442313013734510509361644794394457796530284870205442529135801805439351763119761360052774506297342055091491783221657701175669371341619897591337326296048942074937936445177018425575065684347305986707185242113436194407225709512060178877737930897043656159774583343609176456671522435352960025354016253588186114569848561978239352027053615897587889458533675003633926337250062529047759548359146834015949817870355609690789018270941583804743589856628304220981994570966826381294474664517718167799027094789374394778077536964385621515248745125137738911952995851214196334242007791159759372886595922861098716017615353210099982200753393558354708327400616296492935207264886002865943512143713088759688769758928478426036478343319662551965599311441430345584095101468764990198465254745131090878539472039143607107679596836744253881631205285200280186354944517788983007356690636310867739467326600999205038362735547251839096089518799637520507476680674630076083457465855070987389871584437770598494147476783017621237459486423065017456548916740900578722375683033995428244461032071811447108319569029369451454748272117517610175353844677875181115137527784613126487263582233782373559884682367830932683197898047449066169598592030723489012836079330485692870534875565718073740261369374940585412082168419438583330644197553440749362059727248036113092515559885975178619889240145650126520494723937447520760780734337745872896432400497542286261133876782094241606185533634928002579015981303650660613098132319153860315737644408251581454869647208704813517129326145677026608968828495477027928094985132378744769070173647153314024768273389075071555471460915031518476892426459961611923099642023303681523578527341031163949155840396662277358875272803609621139952166689354495840173893390609168817761897624301394514244991709877446441186424171883137330613304813752800329989867619888047154723891920014940178558440890702081657529431983069824202941660686733027628021010230350309966964333456557752886997723360854313013404085036805673946193550607929524158130266822341308236356296147590387340549704693853173985035098020026986706433720589925203166236080720884006495646641394107915848018213437650606512051907324955506263169882567479426974056592288326058288376581666414187708444803230625477935406915729549718058514968781380464345913062218796226414879967778279723798707294036252919204137844939134284844619078161069643899142368764335304993898510152301198722237310579457688995744824801427535172887652003166584282150040442429627928294794773136538342674404162996005808678355306330336305245312989252445450181649504559389459469540191601991865728734333476760820165407454811588987777723457105929985270833438732581685272266664058735862028938133093241650665513766747387607763211332293001582078200948265099613150903050784188110539985130055205285201405997856955171162276456510336315337918143572421215854542681563588284701646870651717494620429569141248218089999301309392216408441920006018437864639365962837913778741579064727054056639105269742571308965650863328277638283867894235859225903638376471190793982753228750024304778836662207765851553153226691207517101672372926404799202850520429688720487377977221570547854836363369302364734964569998218202661547856353994858691642787271620026166636637741104271335040967192812032546432826687548438270269652261763327458719809020441208062243456588177002208863679583399319218578462454810586290347839026747445419030574460126831486038712059383837107656086281758970703333054240848662431966709981791436662304472767158818470006328738884063514887939118877442655151833904917501671329128240822287190120122380757267735057330720900227872940773460402320369564073457241983041067685098891906286717249948874674609352058643581234486964499034714178387701102420185012603736949202684611220028392721567576930086272348303099678297574225176513857941660793160338905381211943758250838637205196255763579720038382264035434854679810510638788078779406189693508444357007503645224537946120527447712397137415799115238512819959971771582334371222104102481134191959372729387123373057650885705050171336306325077156158480345638331790818328819425758438052808612569909546910981899531553354659290570925886865371937645388873286963557158625184343707022865092538906741975436297085659648947172753326417001941881662031453512305985696604573924130078404724915507791280570410151418908987198668377436649328247385100769205566390134448797439171389606554082727109476494776516928718774214917195083594055127620389587086312765944833569597565426292826904936422959351926515644620347431019572614202013174793634079522978814961716011671602637695789850784800063638051176062020347843870852249147024966064981426671652428242697013233148706970793274389817976104289427518773821166749816927020215306203538751590002668399604794150874507399564558754939254849054572407925580033725657581187481005692259341395913090372801601070916750153864873651274596988580592987979947142119923002804797580059895591544897691590917178071271328641625546367640288412561743960045869318408623523186127116369344362740125349159435592316167076953863877621376056938956288974287269702811137961967077835996887787241715646786632667291106691424950348710347105362206251488096287396010273137971832641111162000037546989017620105515009732900670495313082594422992368274635419691688363208348388568453983468099717778021457860920734269380799678447572126677718125814464521351935988731273320323997937853835106394927830646981582327059556463211258433017433968351137679569794884392984166773551270355517677839599093398835130079014729395739335308670212079517766721867884561931264388978687187523944414743738677916373465847391115383117839419368720114448709877654605632764355518101003304019282850891888910698305174742570730724508733335373330483744463216705171179345606707223564141261187627256861072627510663794361986218181222751442374406915925492453278421738735483612027147518538651816507950952478226166862122149300627765786356179662405732515379801405829436435605959550864280839438216833916776551117286658644404491245046985616026858115319488009619831639824079913179511351190189541957413461261616868341983778416874916030233857612988042906709147924719830415003269089557880342764098587388955211416878378173329235348796137493898118965221313943438763899096093077804173479945761918530051474945565582387349681774592587764145818469188480557327919520718423510282596322667444556232450219856916644369003979676155961759855730601841738936761443876617694226828839370611275187638966689404590925931124201599460565599900299319486957902721079177813169122966134458776038313926487262752494316189937737222179705388723923356038752395947493747316738702849586916531906331543058984136617788875437165322159822272975122733244288868641868973826842097299060540274238954421812682794609997037612126681788182704628588700288788644100151820022730985385480619655520036284037610750384251812264009160306222776402031726523531002726751916057436816305807781829697395585957384686161149555069005727219730836523682959165299776542295582636000658997507865494595955416021713604017859951405608266461289243780075590786444751703795575256162586256735266281952565226846793118004488794980070515475915125373492031929692700292064837972719294412739342577617234259036841310500298474579112505233986085737126137188594119770609537632014392256087790582200706819756952388475976221725691352568700985709714762152617197932601382554422763308193062546220532365298744101816396774823067907172856134486235278765691929689126860554341656221963148126848973258950217141588700947275470297483813259821181620778220691837741596152567624830907647529683571002805107466091394225235933583994417824621751558718363653410491658979349116147005603537419116288661772194838178307054430585207549286612069175778468153263972854602041638156143289481107154848444268278070385084699135768755196421481823815752827844788584898857474632769050815929704109433600651725741289567961450777570013004846431400005380561618198572211045664324146609634961458864677658267156943775974436149094245970457009007021413715716301932041378941486398341890052603585595152320537097868214706780547850767741310966313913188611413887837338853811110261607519477487402377747846363584401951236081140154739116231662140166679545078505629143588238012871058883054504021834805500360363802333047344107926503501883641134380973396313814338163223890582792853740036373896832120239059275852671384709031195571921895389232829006516400805035508513716853488621150148071067231499352446660013479087575854571353963470983221449583339076431118161685025595893123034183825045932287915232404796709346769066528022751470738632145991239321006953843401921094098584320806234240586507381521634372335229819302097533725162625305235104066824645397271543185680082604110103657377981903874150994716975650683750876317772753813906188969567597080690034187588407210773133930861620350461619212463441699530839473072752851286941160660166756227490676642267367068418046638981555461883957108562787093171687076141865263391973940022828630240337442569232315877546979395862883347531071061590943947551150447785642147881090169956171517280233888088586709386284452883302143683568326222047686850255577353439919362343679367133546159268011881998070430311160411852223037623502417455211827569349893041091984248005733771255359302016657386304646029236328642199980758878498247578157939874749860719086010963666860757613082218515128271597289101866239994352177739835675413483985833657148564000554103129541388412703174335753860221394713581939313357072630384355890403434822557821956074486340521680482394807478913155975937258899970825285957006040937349136822280640721946180397020381153795242310649826938499637166502110884664304669920570992954170521620240910314631698414846486919713936456975289927566371891402962557593585974455644151636060377628882555891207890932225813825204105320409875256212393285717654210650069845753396280616163939043922728444698907034126837737508121568591830520465904591627485990023522529303680600022433067631851992913791241931131633297082826761938045450767182924592650874888257681556734012567463549027294469851125429454002927145712178883793402522437443346619705616733054989819398768909043893695223737225077999587036729002468173894585196540266968489391166779970523390845093726590802558847658066422879848162286020869792736681173516915185413929362685503489831940422705740909052817702488280279607490753985684450393596942034122480773059469615564003887556966202584742940722540392269936214208505901890199984822121301599108816482344427138839468448853841437580426458011203256054987461638897829776914945190479340494041042520967151391390526383122625356013596794190720084582680886151015733005594647294723211532695890589218970519204978655108954663301043702044772277768671567844179580598919263868642762974907156665204234821115597924895052000082045897252288780046128206957741587165756518935646136816262961022643621907834357422737011662915527012732239817916212302390539431832055296697350385170876397519154608212831916815266978682777053916625923774661821835777189636434645053708841439195987783223297636526637887313805394222685043259045049343922119801018141708850193900297762772917561269418024184431623737306441791112014287759826693852312282553453396140298101352823827650298169110994796228666696549828191624886966876934760784205344507636864471481469656011883323281829483409653677176218405794524244286966807814272918315956453872350591935165418400551983120705203868731030722340397340420358382220926042655247111992446592015146458781261921745140746080683871557414692373942756688359395079755168304628748410999706100545047215055364421040623181266271058042058373319947155449448427646264686367328285884957071561697400644270037372471933515655837346578287219193569061813399917462259230838479037119518387302564231673627038223084041587230331203115073344795936174057133719582514445454752469998253886105254080585386141674135924931063273094864450336807791674305109811408139249126128940925774659694090218294411216256230503557292767791663475791551996810722555691563592384432166580929293124853853981166315687910705800857232956596452470958799354299950187332954894205630375830282433451778665737330398316052182071532133277874821882977063716742784480686399919788122188157036211045830055444559666337781960282974782323742855255239234894053409717571091959442669508759856715456083190306770246258813908817517044663536037087521015944331084743663056736724695602148762300849234815825588478780791504601227705911792505151025680023004681007972282292875620501416290751145290311868768379926575302532070801420053682757267438505833656362718947189891970748490976336489873823533591880586617913008253352131595488185743326573091631483370814723537424525049843933534548746273407334503721471474967391441640168055119162721835253952303471620504817616306888636920240415685312495352824995278513490867018070105096791899517380831701449934698056261971521400273087426853960932732521050879580407286429614779689575460594256559309105324903391219186757858183689284815203522148533812139651930915388566709123381566701789777408679673779691834499947553397638085200329490066215955543952482593330455819956321036097588694517288052083083313258856908617026337327308478190077372765379407419601511637703205636737883227119158090217240988780649514391039710289003548012252997885140127884905013765244369511782254955361709428609349214699441178862462025048593581324055188383239272429079735417315854959737787495312906614243545753375569078169935085130324582552460404449884121520806158042280645465657035336604152018027972382166358581661781986121882230909820603179306090324439857674457113711453755037695874801790744023927549799787161607829758616074036334752695214423954356793595655741319309891524038022566890050573457356239417431073033510430275231192642661471578626905266871360945826095085941258799289305282466308551673165903837568305814394419151473983826893844899421373115869736086962720998347318817641992413461884355517609207817746254665397574597869087694203817289093981762961549503939215284263553639668141374430260271063827763724333799228296691916732300409341457428040456646485248078865155693797947232898829796919267301655477638901611179338230227051605381157032831695145454766212922924693359359481135367349205352060439319190771857927636235723689666250407498581982185685189929625908631530296150339853359416761818184817576385661670397053668605700442138489481504158811533270237443547680364480039438747595469764050037846274426139271663459048754707621295802337731708147221789432806136320735990925382071091863310286788993786937160010105512278304239070097944986488214433011437654994075852813899130710246810706648852451448164112608323066139989983295317958139946862822554057868923218328900947661667775250134223277195226188592981260995294875988890817228293649662173668968290227693145095606376977036250528625232338511998764219540854417767765890027639619983340236239449520549800907416308137370929621992464250802869114783445364089893630478339222481674427454581191276049254335319239620610805094707968446247898561568683591087344003346878747167920939170377215405550220033406165268804274727306838453149079995553876435688176708837186020708881923574889242152018886769140416333669003338366047961212171643502244961963354577096221869397170266887935285590815861818896855648678517707204180121376215757066792407795614570173268977493228084195907678673959014450916663888816474671239597599356349696972441185693186759968153474246834046849023191612175555081289066679617817420407240246163670940757136346885652846380348744077290573017693980921897993197650053787639532711364388591501715898468537268357215157406355380522085679123316018324896625876878211808188360009168647667893033557503691697778232296267365731549023705463517953464025677329121110907837841201664130464446775095542203231664485312647577181497570350847215234208111511455031039305498296663090549675511631444181614663302047109810559276109503146736697050657132736146056114730036366900308148634304404139555753368031535334968815699512425802217911334558470720945563920876184014437757986296008370953770099799463035299911153773502572493190365526190501152837030352452145522583912766352952063707691857225283568305011671333821707580814553868466550197494607725599856778257547335223795306838654288002301240049935736107016172387416721963245318079168973649971094070012300284235078892923889671324891598865973927772298486189035830425728407624353849554520210041354860978857898723241850771708079851896794982344052604505589831363780817225486610962008019686984157726498498199613769471727203035208981551530541259139489342519719686328176695775137832925117512834793521183103688938894016976037432030346505942839494968132438242546718348210833526731539299772690786214287051481087459642779356959237682011226237608801612570881185270809457922071233285202762375190605647500507525912478281928754901307296587426236349311995419212802340178470836680500348586752336259421931170505985232252406480168831949061811143369742838277593804400392084366695802908825168924822173228793553732421107414330198922944242633314470716872949678372736121254111476265002131810069340218663751360623953156113193754139001653887412352994938562992760264187157693959800514498327838097595302028614828056237965308774176700789247898752515241682703899198002874488939876196563261636652540882865136912701259107268950204057231896442493984292150844895827556350501730787343597203144764769073343254372010432153514313285736817845402825663613899828824844820147514209724946183489814513630284830956899494304970082670962966438202207027692240313085301514107526979724206897025958438456339615667226045935725962056269103950813231496761253245009308961368878002321814578139944751580058597966016467383885583304089625433680296438775577688297335372441867453692539867864399415581479044608326392064060579312917129292098055352819603526498737585273473543810860155891720969466684986996910386905821803096774199805976874666261708408808435691664362839421866153104689813774487871682186982793473567350650013758888368287460717119798542803522005745708959586738309060800685483868502031591829321492318578102233154034871514042294859747879799861813372529961460436638492493255061010438041318901627299891328759249899782077591581610682879371114899379097839376656033522542011787144329816029367432971069787604836947984086783246841910388704788804454578248844070802387000577215848494357353350193155174496769840904489211399284372646510347882815581688591890051365156129536882876669181430619870298994817106734844446352549693891916455065264362291775308630109077831756168275667579433023923962098728659075412503238342205984189641207315751859912673869011615849774053338564594593408383511276048442676980792842435185191364115427529859982308833857652619843414243832788876550109509286424235706754679897728447620794224605859660049833950698274444063767889531846128694999347889054810430109347669698782200315011468879538741608299880778076042165496763014132731529242350538352711299569193062467962011181736065063380819295267658050170681618976289454046713712167591996379775011170003066791487889161948104314489320990826768343868734142398596340599506001738954601576911064234996419386545908587937047624127626613007476788159150223850350351340824008636928733500429766842984982497246803274412486843454354822012757447669055014882650441675725158943438614044879461411975771028061443863114769724587816567305761485116522799256343873067960386968504121236941414110410796625999319416944126371129993432625395113255082839115303753543381542810134960990108462133621317868260626872513566342727441896918279448435524908345721745063965930735982553678261595109220411183716920991008504087311157811912744202856047248379479889238203978253488526589624688569739617008050486609553171681340285721700491256284819463408395835590136260995657685792893112075226211210225610384972084384571779548591819797292383704151969940574933067844673001267558518545963434059476810181394874348689248914422888871337812479605502311508793224696561786706964009597109785965336749438605583389193858967563978561770074164141429824928295023341548445430618658905047977907295123549962489298967479360019225139435803656018532070305640618499154994706715010616293056090446344494214059534901304322109486224052941100307801045171388637283170826394317029656615853227257132723561144809868040924225033193417943174966616172223383848511683165486565745013786798980342973234328147308284683378822345822865095958892512909697873246464555383171065600908768135757239302730438166846597774845133190422195022239137271433951152516290609860454634410277504492192134301137746181346210125439704536380711456177953959046440361740366762337545532155260971532343489367533094824355659425401581978042902684120520517771738530418680330151532826436998013482167353974675201878307691183146019411738779463267884584165977340044214980870075304084022504632608469496869682852548383990814504879862649747517285623571076406351640459823214740152882002491575736936791435482253455688646787591005535301274437501106238143943135246056202206284586983119202776306032392882319934834358751106953083296010293915466049627936585995447373325849637635231607646320053816288870657605531752178590718402598068779506165765486916913235661529934362192994041326514243265140895949545113312035921164626725892171001708804448683547316378092024699654005331314541906457120162315513076193597872432439163070289246118993735292971626245343221834515826604774752216410814610870439002275932382216724621572417935789255736868827780150303342639802891280269977089595596268780135121899354125328967115207812700077244412242737502361097176023866296619685821098936032024675693086926299561991207547314850251165071769216619023857919356594868977589625228729039963212338311597450244931112753540604181092611908160506767670056063066682118024155657496781347330448316991171634053736681342271976852287417587915553476566634299117791110571381593233969342110760623727791327108772710255018054003819126517326569020803082205945352986889089933974332753317239979480829217907521634710501235644938675687316015147878380212503531206218121186128241457068276977637106329743259961708716854135620939317368023187229818553492868405542168376710965929798152647542795894023560191364371457265338066511945136455599489048617387602022246204822422646644857344989578609876248432865098365666694899005356154357703631312663058326837079627078690915081590290967170512188959173195963262725140924275430599335068013084110552270899940623369022325331772034737297398870341553205093910606103850385110475745867883824889827847561714431242484117460934895775786125170751601005258560296356930767518334175866250568802435413080461546999230266110498998349085257869226981559239023761351004254303330330174992110819958845037077700692868576285340703127568411446393611644474974544515120040489541599655678689641300010916811258916101392915279234061866373377130477956434739949762570184516365039644789775246652407312225321465542778641184352249894637462987313969152972043521842130359355329816791100842006260801065253063478504185939756970793325021157109182545346128625364852528714950930808878812818236359481520993499935044019185466414594015649194672802930887669920460197994200543800551251599842662222781865984053623554066544379492053068576549385570563495474365237289519638215771150481177205680583127319444187997880128721543457493296718764538676235398981878437510563039272170358894014600553997053177508964413071289125476479363467786682019728444811412456474114004331061790396280262626861166070220069472756910511683970627395313113910498451708501572255540022153412270381201559372311468855248568411813019188468030118404405771123049372431230255848299058661761079337051678891660798887178919926148818141387230034425154875238600370881248889881606966379959749138750236241242144374483963937151107222268504584853694665073578545250873427389131599148355470140536126690614520514564126875080109418204628664311419300180764564758620044409884892121931475636604034447336296613851972751232279913581263800227861284332819742023575180286917832222597197121695604639393762740397993873030771240653238385135368628486210100430440256649937857276206658317826493043974548719728157674155106134798020171956359935505952000810601859524624938006625168922870568847316855339268502949179469794347911204534716425682034845818830999004880903835302296143486815039002456817527265269902321388894472777229521394894205723249924149716087606998909367364406001050899006824462270497778006866931804063389764787937632782571064616344029068785968390605951904557734924230768738538571577497916271210166617408731069690534027498768716086650599856222135231318174697882516986130536005700354038585192826024665988652058253733921015894717765013090958989402962894921255912321870861211611367507823725728448179823184231364281654976912615309221960961641787208074435879861711287574672816265728092687359789082243562007445924755899660663757819895019487911302387158016316787341175910123171155582518610235296591264375496494949342394146252283903462613549374730294859787390273022827467006228745770271542155840957463619930517629672781629420309170252267850507792005737415126909084240454109790864945529655335203240157387971663682419108143014167764002392063743351157669343383910051827459009319101302308445269644578992587418124363488624308355230291435569298357204893053843693255490427440013953523047590555215810085798272147988670312623844401860231345338691820439237409681631582762395813966524039986437200371153341447041041482394130070257128187581769070195524047041153194920770951132126347087732897679664995238073147015194898300098876173997751828540853287320399235415799770984939929556080488745918611147651226246118076549741693356152455128912723676425486387323139009858943264227690984699720345140507896288708110157613633527117826885584786036602955671692188720378619558041684987755387794144182098936726585766240170450702989728911649535878929989133380337363272153512354157762059687353535558892030761061111929153469594995490628930304990418501246347540021476017416972158578991324500087184146735387121455839280366369182096741524346486738665829639030762927672253176992763957469710896065857946597515453304867800046213858052051158525594040803903590451023492706933368677559842146635384136733903019112346077850042526843876911732202071619364106904893068489632325874126443155962224898172314369184701960868361253870446835983015122765493000295939218870582517642604912621283273027285074938123693778328303621206444653819260606782204668508757238907769481963716394837210271656907789679483721948012148870768261796253748218014137728532555955713113144171988393601833352965214405149118753473858398775714146463841377530042918366057804850395582292744613952199066750580993804472982885152117746012994642621961721659306980202523950536518848156043449103863954682261308502338938596083609123264172027059923656641860112978931277371804126068508645073705245523665210142366040162700478771464349920139858874299625421802834473915261060087973406449018398067259516990493265828129513070130026943217017024325353372225016915586994531861238674320158444560653890706159821670124106765966428500318312542906168356748648221044902884437244996672702114523715808616121251285997455592375161923420836321788143087786600461892468748041891734504569352009141129948685039451437836795342775604601200402415467292104825867348482751921218651597449992711542808172633824829884147330206731485784059400137356421135795021286167380963590841867188976107680010126584589803603949008372237813487953392211700154938701994562799687323852338752673643329691655945626699726351458447971666621539196421139218300669274187470013967852222023159016149205676041093109159781147227805504848686723234461359682258864596705113357309410419572309856497153671852326482339045984666358887634135823630566892244599832631109480402241798297534696969440341790415734493095298449246901357056535302364007677565886416602231775838455842037329478565205797259757470143250497097958739200913502411799141216374828145430733918944148661790593819925286568483947109196514282269738180290113861358769850085723345829662724775346637029760751053020050152378030181735503032590750584621428875706753628099742221406572694376279071981199433226691687549367301803098844290103695314134648644644636675659802320871317389657681703143265424989449354947099301813380035279979185633503040244664468156095388977956897824008524723699796087695297147332586831547173607188592559628524426168947198892145955764397659697304037785192667540268069357758084346560044336859452059156382957765313249736531774109627305733138987696040799645035171108180143031543953663222364073906270044397314485147603896248305369937653528768911874314654438359940907479801673757281267233984535326215150510094210142123074705769165732598602262354478251962476815453050275719654055113533839648287523905877359106203832485045207105164540978514186907982383990545080316750321857248752566690591584497015650933129332807032481637083333889264183717407447539394607547121437313552041519666076075749548540630479229160136904556504836045835265255769405830923967393896336173612208654660834993752094132979229522625835258171517234705808875441793511069451286422724471944193614267231832744638663017632794082726183893954524685270572491690630287862691447876288160523495097536731034183526633978171341079855839129372250853640088377842815562560018186122435928299881458129294339525036898446723057190405458762756668467264473067143835952239253933320594737519157682524567939153374390765189976902957888451089945804072101790435816963561365054967136495720263025163412705837539383372028220098307149852239843453411050061772990474723060256807826952659543292654162565253767953651787634770097973716415213312326785934290445169186395937254180292178665574522469652121517767097107041315253044248853493572388916172207750964751510146811521617997898974944839519483429032230855901406431241732820266636672418165423228665453394908342944022793825856141619049468212430066949991333760118060619735951532318943290063019342224000949616124866700888510573794817601732512656369489335151517167212373269279865493084173225340055923666485636497656850950345663491097161518844190133427605169559427236085714427609697281226065419058425888297071238648876662897555618742175441219386414982046765534765769014564688778347984786217769262102618907351629362137559541679285558626706405170326586394534813611217715683963657322254865855011914047840668308616591520386683037503209807157133295295779328813213555882669015014047115104915594463899467494692453240180053440913148171933939038058712759679508557573192769423973964852516738123749688896559225880361869561838203222112845346493356980233520247971394939511135978675672762831349826036735465065091763919300852440053377093800749549144264230449357508970734262930062579817117411089184920000054681897714708215091999094439279907064656864692072828187928689490291256231576890862578621358505055150511182210191322200408817923119683456662399153957170459968453371695178103743871811078657440717008048907184782883120459280643248544965871644630900041074149182027002604796198043184450698630430350310122171640124921725142103914611356178034093671372168906924998601788308706062588503345096766710160541514013101871172752983686413237047577698062313719100297182087237715808678392929635577268975587730411783861587591990829016123444229021276749119544236848216782632330760793619685428426892275550148777571294739056277436804246645790755577149722554431376300597082393377018076439897280730350434483628953052582281245545159315537835566478039628304223670825694372648747630224523368771379131533546676132965598120218039888363068469659613487186274212639861624205976006870248083806672637287552342827383993718765661118624749201787424031016728116642970873326807333279979112668318670775546844379769535672013285083645892774606511744949996433458302007057793300993698232259336535070633520004545655315924356752623916844297640015920583246389570682339158641719585272957551105386497158137107857153713965192662846606477480921103697550144214448728901079435255964296800264707664618482077004119074389043246334287463908903548088605528184058267737134046649788756709357573452513303636354470230383500779021349820169985858561368562157009414311088647171975168214350776011478973131518387669761581006313713653690053345818716084657462799394743522738307570022612112617225346612920014127284410507251652049539953137093404013976522758069970369817696477378211874071185662582818611679778514987605834035200552328892046834237622618346115508477938313022868552327073859353040535782747353449916953088321663705387166481778921166697002476200307553433679049933873611574316310486866472076902786234963742496172184295864233265657840941761824097845515069340455794297906050692171873814879210593484534521528323400160440758817148676613644000145525358780321633078494738667494537590884937985077253601905187780361617740199292555430314297493250983770899474315433441857681258222013703866049991023689225662420210443909064974234049377380688602591357799869405721907919749040836300236902022853120499010587732246841706950612230029780970342037819604198028453693105532028473387117511487336104674094362665311232610397853921027648187135072056004947163657842334540560884400393340756303185821751173722022587487987938597453756132463290742300794653121122466787672282705107609869947919149826869397554866689455010812913376357551529115372019919478422401220793377798200402233899226689659428532510041768024420135891198099114703450964350600912145718811497076943961865665428541108192033077163595172408408671066027660840225563366148876126870900175168924722272100643369833364789097444719775855100707391018796737585904775017106302199661859332278439756622529736744783356341643999655609188723500169311674125973643817662124314909779739874034236086791980792117870816298397189844130056666407310343855915200626880456021060253465126753538066438601243097071382070013578486760218322164736731675793888652133609054238979312819269379441338910512715630399983481989635749611511599161852101425523864311661744800000032495492955321713255454556044497739969916849606482898348782114958068333303814680501697422574303579030892883945224189331121644567009858917987753805816875795040958740367739356967252474268448381272570355063870418520740506136611450190845135358605086203840706458774548147277771575991351926387023832635290024203869824406792355465752391491462331125805112864577175247080758282927265938170815234627341836346212353231076355839203235489018121188588733000414611556767928486567069108051136863206506140374725584682158500199048856655901392024792531566328418584657779915060575907772009678270814872690727897969440618312816744040125654181700932890037337020260010261772467275650792660986185376612174151351862192545232667372232269031686129694697770555562824858548737542093489144482088617143412361595735650346519631001823573937951919531612716134142699413864960961656882220072467932140294922763055446338577990250575827367274550904516726118786347771419398939651648022692686276179757237065145608273799065451806210356148543152004142042833507131951866559928371865297821382110445334651100984163455801107934685030331289418103207126946822022521642351500199535974189128696572746503676678608647840222408096932175137150280455676694729909403435397480881279874131352190778584031508471282537628376871884713021275825047292729957466169876237018369579045424273774148944137695496504098398644229493818750920903867914582909077871552605449033776076073760348405952531382017452574593331414178252118522457025912858515575611137891925628627239153582667092146487709436385912166836433240356154586031132558202364968942774186743450613504079060502171341497797490344835042636033825209982552849761662875145762041175980257278174415154983044439616549633014198775139443556853448098316930806311578667444891865739829247058105621814787414159455957034447341735123596378550033796414489391219522282392709237815937284762485341912672421488047082777496152792117124591433836513105084931289725132765886961500846944335961912363957628550085065449551440193749192056977608672717062085356663742769572738192907350619226616772236516774874461235990488716790129221088876169595564647299605913690796235132412892908844974242078171583212605315921676326493020937434325603632315565083934739859080945688223551646646035412750502998706280046072173671373577926866064022746341877107879808765802706018442257685669581307095580658837891380311868273723927370044639568386182586162948766524784687687576862140905446008208602826280795691922922562799962987304105516845277840005927984648723131395017342602336837566786610396839611701387070858848688124636066796545605656295010801311526109361472463188242345361490325001204862310220093288445039266908477870219006040080912534497101362077363219298613208964955412109462217422619195644587218858595052014484374481490785630003027140922122421942997301303567085788835124472407351060167709262277760656010044882897154256492097879342387442449206733271740478611807017946728716605097138842971644236521545382099427220411937406995342461254951967733436614415899906782879537354886892315916143288505555529222846197304068577110043680193228694998776525904893439911207551855678189054016926677906806037570256310616811607949288938462377803637883150789703569087552234850900235753845954298858092260208013597736145672566219684727915817931385608691465362208425974636653168735490987753688312687067475365366331043968088356638662330969750156503029300696462054086439972547064290577534621250236606282851838693968925864517054252397742112983817756287441920744150766768492614900400637062675052142130905301756183463717021403642417025096938558258452787063669248645566038854510487898667211518963375398364831575581462973867955584617972884895215438536829243246261453157052140846919616708290314640854154112229311383221496648880741314753580087256031045020192648699716267334051740863587320940742419379586694093498103365305095480351333778320259597882451338128664021333564261135814330238687586826631927032738808794123789258913351587343418349892177253530808254099396396403655879089905337645686827117402040577686698974899194492634752782428991899141908941962889414531457793275756812262590411262516106214163296452161928391241918060653932230735829109887669128534968939723606739760809214384001637030084624055573266502146683567372749848788012004024213729060854982862929734120650022300587421213748140935223211381901006709667515371849013357031558640528450984008515451745263693429749030603737671041554619263133002486476728206587062082139632146751995577462198188589345351257477571406702781389740233320416338969307123859977275896213853359562075491581453826084931686314577029206205369131056562693454964056100379153207242121643526484911745425393106414249995389558768968518901598403823066286155450684278620011296817164903092495181667099950547220653886679438650208511558333465522425689848970320315586108684190963032874803632360650568902389121141441971002535171082338557307268146943672794995971037704556677348009726365800827825812073113415363996660634491253656572204037556313214629554801286713286634270145213135104915568456553042216522100742507525810856356233952390554479139164515929130807917262032289903368328232604756572789671755376948133459054961375358857928726763912037480696126620439620379000415423750690179253097425876399224791333213383368542905990648239048164083693284281402741254070190361166250189348206212023978551066731653828807581328191783212537742038889039072640674484791597154356154913961413000644681058991538461050912406206222864895231324540371628281849983497647941257935621273935616543371871530925999574100575946524637741829851992176033634345264756826258053854167987785835511986975385492100765614906379826402474018244039778357270297464123918815790033155127774528996920248058922931645565191951362352564574035350774321841719623205634610324128722440515926865250570444743316397719263875580944039959890827461219140560849104122772354030470568799119406636325876989135034100550950080598032496756324850387545533544653197314508647828191314116382906778810506729908363719994852795540655093861532407917067017445505697654049359394849451203908386053166728743193309945223526768366193059239430111717027565822074680772503682306260786244678278797857135926296341223357616105976435030690413306883720859156151550727456956437655491541257512919627597041421837564469372804105186426457122665428201922362466027255940599591733875627216439114551657668765310435251121334061037969287853604976335011634007170994505550739239607369282360254383687172641646055979323802191107904409623099010521655365894218052983461528068456396871690606943519983007256426849587196209222030361425856160650882095990189495381993468283372265099422511610548433805001778886682311801988892418492943689536054817568855103576857053290317012339903039761194812705889831014312925551506772993805223395278972679811447947009579054193063648422792809819512412744957037020781882934029389266148162099720512705833541518506839806779564724120044231653292292710384130636763160816995431609541827829630049118242573554133657671654003398426632036873694931769179740447987218761897310178717009146649928948435543657969103266238155568906359479382090023601607040348609370038892272586820254017644727269894388683716750550593952902719054019422485716194382092605792685980716079635032204017815514664281895017252641586337204545855404847088100602645876832707257211849454384328394579447244760085452431562338665326480517364693290020708112249400061346625917490466419636911739623276547972922731264387889763117985141701980952250815501834990634957261350115324063920858088183494323066709627311488327971446460611795775332580033978970654660653923251901335530014876394547284677682321086688893373174032634326296748324690641532366144877537500609766861836103797445503930901719161268764631380936522047325691664868461068191590152820508735212290467837113057357373691510836487648094675927638411162695264923428884603633773668072813680494731284098084712751078496429537735456059611238049844120698337111119425301001969929205586419896508004502681104612185271106464406221635859729856362821969996165941454492144148284012349246308085574560513565068471703516006194094558747479266725474521252288281300265948481651947707889571960272961232556419619207703759525295952879508496341139311949521817167770039553480885078807394403703677746270705575311620305299227800722591593237017431157669557683860019818231082731799160119109987215340073015516898793272775235536126960320578333785413772048333382352128521184097844132324400069539230582413306048204086697498792510984962034986881258741394408329964409667939425919949267674226365805982113077168533823950360305350595381093184988021759404367825150441848738111835564744923873388304360053390812941526968627657011839633120074603180890163356751552767743761587661825912238326550359531809030812588692449741282374220208215498673879162668849984450824243778507702303197287147188960448218320286182510066592863262389700989196715664284656637413381234255340100642917677891473274955772331294770162700081176781127221741211430108385212162910874641538199339576855632384557799621772168489331094519406879497692299724268014386448085915118679773479305710100392522881384199207048013971328264805867078566748991889796533034831603037984470209291964542043333888392812257202118499676700879336565735591924595479903369698507962150714044396497822494008521717040762668388309958505498090032463440940745243302082610372786923760951992145225581427467242504006479337220819993746347419296944987941680361742847440103511290245532480077907229716172771630968123664458362433703509831203166750939272900294865931494172602589509979752016263145650174547523065411385477293840461918498881953302196447781531414130427453264669949001493847237198612898472119095488369885657805228054293823626339317204533035965795393078726634442071259312052675789681848246272194281285522388806749864077008710574357196997378373500980354093858687346363769860054179456265588892830342035732213598682755429584569183325296724318186774346363992347404113914885024389207740631003647628118835075421940499928666286301699315708257374373421242131663245958467292232257525481207585578050004155507780840322763763899219453229826308102303121081306029839097952033090298163031811579377780377212927003631426786087718903550600805274766605581643310708078408735956507421794435865729809015314545655440487695275714099913278659663253304969937601818559142599985898415829701364791218101835055793949082305150154862909217743458428353108302638951828869580518610055451558337371695932246624227363515766110346411104850644798483270401724106650964855112238075432628442186650828659849104713411167142867582920316727872049899563128340591912815059839753678003860079499120075164604314876392082009651272794942720412643830127374992885253830442593971357005557030579170790851863259500756426426353197097447488598441309061992921020586870051544425936139379959873457533788958019404048240725533473284882131342758777671778242221163298484599150743003232713381947852745261845293524873855249940571039288564924432468673476347561517846782073970834105768218724013664155867352363415176947896333109539954936102867035504711493309242621944724011789537439141645959052122232241335829353163868851411761784711943019620215361921743423992544521544138015820517404232076286174861216365016646048817766556337627561256073095405341102898185521633937606430174197627764573130504862528426004668080210424413240331309916443011835868850556253485848091613231533444969203442156962023068728679161454705599350435245218113773770819396408655817790090606203554182611600981011475294518041168879561237358491001639146526130878165858781492211001209452314348230510085400108888278273515735072389359309701721731547883433433680937830659424402115372571992689587248812063816549499524457024497113068367773372921540347420920487145863011796744215868730112257356971771354313668280998191753079252961390005122411576333992466566635572571452990845908605509317392301631237429991542728965922183830539669486612815531845204986963907964037332956365189430286056722351269353158210753263706884264055443779788609889513538613140855292247030877013480820222502601870198339967314998879388844231166722851852513728504451280991720287741072381952901592500539397012559916736210893360051435236806476434243364273148793137684052951077048302221198224275977671863626785490925544184502065927745398816458915980389177484128746054468934836961651391795876543477288576366868323227513481773281966381131315880376272632950925264931055340448682154922246300031037752217224860850047180023482274839409652909556365822828185781921955295207694686476145173627495745183788748159586837750285597653222945937354115473799388335662251551848760311069280290822384789385065011460721085036166420003484431401906309951412335600591791094636391679419100301836120341416469579363948977334665097574625323854186580105813672657823381180532456375954171051877839845099670812940186879193634699637679582921615669880569415764451319409031485080344572210860998055473572575024928346527245355923117621268519377017087191194475368086362326738611015974643241823014491417536874578572251865219048390918870937811764991269588255274738083138084797046581625234561934915556574493485287121404719772989192141040070987977624077044026118890169066412499796381972115081723775282011248993419963046695389324078552972752395982431790550272924802536520190723849011975064247396637416247283081074814075486474455499013084356179956288540169738854724078711418098367604946033662495494300926302599672195453938979993975422217232873947801228506833285893834678710602835008476083637404477835922034874987655226285123895569566057372834798382189260301351077355841732590070581883651924140847234947225680209311359540649844358595076161888052531849924927181315601642545473958430824701939796806824756779138851741929105304281318640635899043021936528141216330794965523856121287599848010999944389290697595119690057091384636094943403874243013162544417219394289306328175338952068770396643401933369819989383710279638368000102471623302049673824921418474484805429700391821851288182527063175387677321341110050110711404983991870878979320617166981954950621592370953318611196718233980437714680144351740360594793952629708133457625101108224066398082487050515840082203204749531795763339072281305727233554799480866924378791704882339058876458947434628533264561984932231984818883906178381229907035519146623240768792811130626333800972197518852606797015296297028811017667404555117597732464452756135506737477832591517400161914608953013811304247251931722726452166591030665978282558120281309152261285299721157393140170111905472983378085765690734161077673088668230902615404850561405916999594218746643135400182413370423739877253981615940513191229927741173932024718776116668808701871803905357554634173006660748504504955186519247910140382178251758128006346953806448442512665503300549985408247926135671712593208866847640310174582975989920021661382027171625329192310902589455178546993892909499820818765934369223689908768947173373685852416464950482119874740282163732327776186378842705082068512592119451586316089667401818158588192307550876491558243580253200397783647789447153871384211662961760925573379716574355498435157947688544934332052694637304638733242404664414926609813079808819274732243745718707241219843534796258677568444597967864551752140676525978019176780850175496437223957921068526570034530983350423861025529135487949007309255610485733876604335580822528548448030698216444440622880175801858388362425402154167308259616623133505262472038655325797060626177709219849376997032288627014159181432086774778806090853401131053427371831638140082710327405901142554728211238361496569317793513701701458144112159315217278935117800155056031228988025227899384659008938440382008955523906395233433254939523377927037019340365888451036695952432877599741367810909117659500982886634060089859126293779011301753233317285571949069446257820558616721968233810422051085240439508927158517798464352455534350843740123727611074687630725545332680349927643024576341545843759386603940120129601209175568434399075813075132219002176049321456982477507430566778422383222791868644919650940908855584635701310881315434568021458814515958188736852909722677260025976825323961023431346433988220023976927532249202785070649012820066912232572968452976388828632568723965363105762567665885188398623140908974511472449530866744956286031995185523583255098632007299382310748522879933165601125163181775472898995402297443414694497961062663766071932599257079464191446656746353345951887919707092725506041551256525980791515517533301162473117256355297764924910912701025274561703410194688564650612983203222886553494157355471405916809954218766452141154879027940237759683823406015871897853352473789842607886950274732867545217897078742903710145474039068489744565634452198123695869863054287319115253046237841096529736464676255116352789808909512901632981960860230278182890965246684346939241670898202074237300763147806385620446054544517243952171889032494525718308034579816812825218161500512735099126952977654494641404886113256924719553016882817020180769343145032929064784965438132709102658718655864156724299042293661848306125503733415421384236609929775078202004889801743941913515841445288693542962136219595657722916942421920933855961763536794540733150949763768018616050443657787654415971805675711221591820275121664608254037793740252758726481726170811030332521330604514425073636247343975192824040879050498936264280819744559867235154382154863932206564690420924565398254479250505174279876092888301318041704072407747717395742594303874125599024299851266080531303458603094298330631059311115560024388846983778200642940472070234128880459175723797824773548388491446785511515590109825785292440808621947269862252014162994581605365529632052484033967955586186586249221451620984478294049759881738436591218652717027714121881634003794880194756015558261779323259522844955743976662605889721222554593863347399188995208858720726405564791437830784922671485811256119747996877984244530424511267051260549303670343926920812495476676287270174013984466995781380991375625999233063315693525467932298368309481423009047956161350061313255950352193235704533754600207981569501644289289194055051249796173910836831173808413995907002655380811756000082080723038810870427643408777568143543355813745390256756378065723336909514434433353059441707298549369725940560690518083712869109499717283828080635064361713206209743922371382819083279097625170182997025856242380379879880304433411132715120290396083146250622996758994351244714583021017788843954494092654951671311747073777820102627967212727683918919804889255560206565650421639777384894488106247583616375471976135230964497356402141987967017106311608088247806019462377485678018078491412945332588875840653740412958871322868469264522431458923234399420757650211889313159157988903266780421450462703752854275125459002804842019022306199034666312610069910611569134913531133745101803016385437980395911448132004975463452145813492390340940163850507844070671155440807840103764073276629256009907151276788983926940481533083421027177515508011850518595393464764866365825559655447931154684517740382010873369811064499716217266038505562685635794388143951153494622065387352369898705996895245315684039158202215025231218852347937051894186688558695273928117931042100337528317602958256780740426890354266109260143430423550542972883558442786253555387121943979394470593289791083806050648439299354396199982761112402308906353349132883461322143595673807141243897888362832510090060297728542981970132728096152902411442654100873302873882733483855217024507477454765745687082845016316974507169032707247953878776801452144283681560689923256144277032256041426424408016173194915421108411653984052061641943614790743369625905409297336835558900143276123074009927212313388643733039339073591423675527139457844461119804484797206547972854505067191113155480497415762352428146360513893985463614880265329361967786194411055225204601276353241882166627961181917960101538207498349607857745057745832304628493563174216336711725956652023454975821634917877682534675885043214839909360724093960861915255915182023680562740436489651139250546349062043632264724743402143865412756048038766271238553240450078703392732404593877379439986448554826828966316291154665218777027684384376842387214884199189458036296404958665909669358052160342007754986473683201035790936291567273514445259144677471224098696246765009380601176090920184871638935282991338906988004592429468970253111282983788281145830450433375630458663337964130876751332283119768858550783776764154577075570019395728523947928926750453160465302736259064474974438099419541685589641254552056552186661566811135943818410267071258912762470354535337717376943879141376070936364401416240492913118366476740568450269171771639927187142048131675254269453439584929544827449813693745527281303302919002170685112863745205646861072156542170207162824877575750166717658805921982624596173220599455698750605183273293630422980624241399770904750774218179525539811418374020760098209801678966813923986340298199374706101450823645451875459270613376917895358724006270692443370342898926046344286427817307094711946027073725076247350823367809426181585895742258601035985396588102322776564191570202562809552320451019264441649565397733946632062399287534867745974088234781379231627971501058884507701442208082388665490082884539340538351596949986066856667025433389914994542331518708229937165886322382205867995079367014971552637617639005324568172443302527826047063030044727623251087863323506226916479814675444156581949549075184866595920572578382319797492343579539545904213511692973935985264719047688423205566109944964036066425999854649581751448638534080890609714648793596547700407038737201266776139427307924127309328803411902341986435808481891479887895014065797369763913462867615782103907229461717504232086286276724183487315400432783309040629242791255477930438173496047113024658917032239712800774651005791671569309567018868647157736125054499604489824262952081567347719538052347619922998829454825632990513065436100707587359078743564099554563890191687914003349413916562410499712019758545107364561433364831898189695222561524126871852956604602347334515875116749890024009664950491999238704440587861192854565333010858742079864358768718999489885382149024429262730627668336120796917830831125306328511809367464264644075687360702328149749767010969436005330903022942973996925616127079257325621365514115421828311655487719349317848360303460647658412678213503049381320773622287674912942777192420716520008893858711498165926715136435693500624602090673673739321860444717579782473407271290046448050745352942968898226270445278848223274066057280121869152777500327277784400990417432909477695101858201452134852496797661112238373933983720712629568214034711993479664477901544202692986829437139745847897671366300611797702579742437859115738524508064381026943851775215516885959154510934334154716222791317520764084068152555042419393248997292064557602513406490888089295977159296885782046142592831957337249876656253785852050106691218077367712376709414278931709290234811748541654066063913695928054266060332658169460699057397143305263364959614627359071963695701082299865529984492641296472135339660774100538088485514488927469617831505954276142965951947773361572141819155960471292803030307946671898294570644890446580271788388773909063122200923174322849370834757081873008840541948944550312788080500411098881148404194960029010671342303274431590545600589537290703147249594496795378217817654163824931797769802693779486157635915509058286372976069005163158061010927450043742935712233289966143640754728639770543535580654437467434555621925600939082003178221069199495123505141052063583942573090398317466705593753458276377931452503194370401903030163037531658717670138660917787332035114775961708308852856637155064597637917496541331951888393513151309831020627566084335714855761442860973469885471042686037287082180776441608203582060968734287673736214876401583710895790209311425397147220401789361356594437368890608482939906643412558271364839230681341542026433541117991101004394580224418992571241691189814494804998621515083380640429690852641975107461035464598307115682820582008118148080613852571432959799068386281318246248590794712875509472307286826709705097353560360494124022740198410298273244248741589519211596791190282899221278812256881743568666976119527482956358505966342866634034331132569000455931332616739641045622321047132200670336863751905280930750282083585437465846088577656969721094608106406878599849495331215489701844583639375539795839946371424421377325740871922795995935300921302905022920514750318744223521424374447664400483248868597063611152119384357694731030435577969680913765522346772618198073926583855309628806850979853038260723620048782193146584644273179127856884742389361441212410572340834715971162864792950524520104612160470649614083507605045972304235644492186422800635587475271055689276370227841328463631372033148352333196901185404064109171903307622336044546511343729580949536740179132224633988003528626394106911905439766587117804236126631329511591263297670258605589194004285473167685409139493078236670729475693339013864149161315361866385782294536597092062702141983256019462976590797797633406836899035708270927964570027377367262327840699448117418968569307810713888324871925125090525374587979290314025088809824327113552760100917154115273704146204046222289624950932913999811093050988355378762228560606448126112148944236958381772438397951718782695328213742654555793100930198389138395827111394054400400487163849601464758187826817238983090374182498808717133699856206236074869374231496156341488562122898314884105585044424746124112837942307321060869722807398411652383901162620293405882612313387910279501387464117580965530097209914740984546630772767743810602863009167192024799845513066505008633202083695683413659442061044772314237207914791893178267185216894401201312687928013694648332706972773138157161057107139803769000234082809233740935448197310611788103072563040814313558886604802374775235521394795490872147960272777566007873443141626803333645733715814780723836795203095907034299960476432110209941530516114787699085276333878345683491067607036775668567242453550778917600876449156540002244492417751695799570148152936859900935213946419435021211700511322672280321760193760869953802902372036041314731946650276380890151567245985434738028505149295857126897368459756272921811015324333738938284363256746456690712791130566269156303055535925952462340434393731018637295157118499520563848072955567162238021336868170287057938091508108392147009780284845245752340078896846391199827078076663091730171253668230562021802639528858573372199416153483718689502438594141177601905188445142955167581221126737407496475988757382126083002328138918444616516307620584392710564765449914657363162411854907116723216797469617625792953683281163002564265209609846240599649356965095068168959616308503892764378820957021169948545713745812461899240945361312778941464399779405227863030573228906510865073429117081684606395247204088065771947244292222853221066158464914116591442509531742086616418033850541900226725218554484316728777729796931983166785189790866169027787987442765484547879186469169418737910192649258647717094542035325785778676940542302381593681960598592248109562379852919309243864845780168622185882895796862132884820900328758135178109890717518004654147800001740660229254866044809352418638670596695007138151789942652555652800563193380129302962470361380025871372119984099563866879007390828709367700278962246456783216945989788807819176119575781706327372308850597386807677960640989950947632226764175604543367899575883245361434358197127132171257909816128644323358224966326864420825026971623030010465428486303719382289203641372705413817167603367664266606216036021231797506050979371410752199263244187711356813814872963809257254725594572468320781508317220010218066983195738192579803676186663311695903673803111035534980861101109105194347166672933717654526220677056000371937311868335679681303911981577512992414692844326978567204645613506058108655627688657875571328644384499932115077764013787614685353903671357801825979738364861004059590667435740226888623409154338889636252605591890178645760291379107653894994463345297973460854722207261780741214663919038150880909505545186780372859196111295114357227423932014724083265264457131736049099321478047545063609018916958131968190563738641289290455019969306939765703106671284182391212463710979904533880945991437835421508035415082824665804827837895298529867123325650207588808185848872903788235114473652122695506147643037430623777828212296634593202697457128635842050205789883367410346189950359695009425773434802986969222750766039656099033406358394673396772929858592558405659363795774329311987439043655893528714960240030119193193276334454841827119585873722739397913299291610045928843250182797108108488419805789533760369386047807634432132813581551235134735030585462326133196653112972492874529197320648673500226478837694316763056636186766029230771257688416447453494880263183904604499419964302744566749260162879740393666810021119431725482063482471670188397760724595011826337887558800169698170403825749208607564097157717108886874758558548056763253657483339147142313385707212907582811284424907837802299853351468817024902938304346117369225589115634521353696175696393366424673377439539521316759165806070459706880620458021840198192781373093207280970598553331261424519153474370001821012252556449815043210556651484068911981899634134197129739830786998587279918816831989554624909125732375509588574550980879802454358842158773861755077107559142186659489146497435251726637371913482007037686726361297967011808523599466459635809783356477226160457506040741798933837367932770501529419728861965684987544913100286237318645147448502712706224392299739269983828113543847234852724388954136257774102522675561256590518196029515454182372022665272102878021646364293092626710395514705537095591500284426902671190516721336971600836694701255463457279623379739384408934880477251968584859843111120726299188828327209013594789421735903145864216364659767527144861293160026032040771458784741067994556251991118471167604058218080590561891827229186313606186794986912255641511413244453901313294621506811598539071324418993223695534825099554657035732417766984425626478489416072937434240608593600300245399489315407851325283527591872275263553135932808094735926065283573812403299732534337378602256801327336837227866391824165077599875259350712540342312530591518832074656159896106490652782452822823090215171076397965643663546929216383308201421129815527548349342079709351078862692062444523266620608830343901896049082304367572403767784253662111135370187472259465763774242118865899362282421628746631669586306957934346068275614344091127358927299299234224224564663614731342483963376130810980418335388903659783413883158363582233356983812568430698319658671256186127794141737676486771073406659780788520879671473180229786555618011522595216703583125869488557878663234413207206013433257071769733132996752644541038910647603604991968221280626254046727749729222637704324568731026454640771626941581082109134417929415250755085823934592759065077787406838086609455258954494831918620764379474005168390442868516747320098222662130622738942205609257243171630728755809904294524788858770226042404983867874157306945004879601958409877586233461665937177315164754169833538979151715819895078124533385613070079213868771130237395123830950559119724197343843107712517868479528042682630132339908777836783470383183001151491310357684231698997998783373601291947156597374420683156624789779037568403966234002475752788462085464821795921661112661682333516559989755267875457962364563073143290546272510282550094574523719562994875440182277900138428721500225932016918471935812985588079943208152623765589021338105454150581180544604277994119210723783878384435640786977203542841517811487313386359098401973829052050400544776670697549959838387740888559506862539774516976457249456386425334118271005076617070280817065117327446680899057350887278166872540102697064606601051603328065175858349649021215511708973059849557165058711845531826724114848704150992434299401323731080280374820833226928383274862693564167627502579229087663133337279427972287003747024148368583179919352349505422404409983278189501169295979125010101449477602920114610388480992246910261956428135080496405962384886266241715068407642696228562579823963122941421572446968777654632736736155855909693685568989564860874763005188823597079857126032634870274696408540159855160737509276270371278570890658831514503395277217475841582013515052811981095035926766606887932439889651094018981464751570951867003277659871624985124891697961077010585322736948283625738038891415759975244261515194516462774155812171298694685825637625849843606246727152071665936917166616266047473793657748655577266892162575290457296474250357808826848594544924835718217435231291579512118296934126202140801521729504728091842308139959369556711160343763428796081029692782698759044122320925053228227446148755714330684509090277352690044452952822758613258135479775029487680138661695842432879551893279695237073964168796732950931981983416454294054607802766085431030462018369655820317619411818397779491144202584135309162377305406609544360170849081983225443968618818278550930923933888280464004781426000139558168399234401545137779997438620271825686547038051647331749986550845659635637414903248707168225341239449964943359771582876298421220184842211255524024323237371530393999957008549844159332661584042603868575578224713535984966907770305892761038323908141835991416663505892760907593393886320541153234630984344124958057550302926113978796180007057671515683854448489531960980025440216213571382546741204907054555985115397465911810089723739851584079915985221227637903893368193877474074777149168055121514464534329687531327461974361254111554496959559725849336388867231581970530620923723779589091165676025239509746427403184897970809165526061422061998570714264675199168069716401155820448090300951479916044142698092746448283428805643150882386915835053120539821509654772905260296924459507095137825985442542567384858868881141643687126639417461342169546886880862008541986648400026689359825639910616579590654592115176118834266685223273122412479036578399319958024249724543587611988391830026909986787451559724759195398715870609605068189644433371534080067137313124925024474921113141098921822947628339620376388533937357602813553881575218385445905233620086770632968111074328178127082272969597692625956299902475701067364664499823062462290887732794308740998845715542354811800299802424317101071982399048306980436454890991181792801507833920456314008196692224357847807850183925154426836775774684404325930510892897945003953904929630768530061519686102556474616726014067210898839834157566823062359384893601120672853301095222062610262790678361356388855560772999231182568618266183130266136269356472303523921078183241732719410638389088822522106647246501247200259237706470050825339312811051607172460323953342461829851984159313391287726495455949636124039521727491399996277361999224823603812028846969258723317659092239586673131805852613087339437444389076429344926703581911093068299914746190541060085872167623840472093009053005588833956695873016625305224059560800321822956595411974018557656250808041847009331828653845370788454432173176738466796438283017802276128093558939898724239119878065084326911438562929081868053566281829957970563535777852241884377776980064824699594310759823606676156322286042042473745660967231081845063224808855263118157265351365909265898225108893095525653959672157715662973996692399535951468805436086438289351451970888460976547691731334522007906002280018779848510890173588229956054332741278062406664450894702729294470375596622238220951506014467321655719526430906943007004276387759058853348577174360387449860423774232340493084523076500196133992905003258285681120682513917406125391098210202140371427764530051375012254177770193938312255922056631813868137735248054444353820943922205061851259559777649683668654199200282348656158443342764631028901973100379222064910850610607539590600050643761841499457072691150240274726786743199165298740409946196506650630800924854631733863857192271578863676146850973277810180259635073370191069622596129841213743562315814202170029483227245316178002563475070919012775493645137579168857012340665602348904291303274954532680281702832294471814666135115528372075234672689306659318030363518856463841641536814789355676176607531485083766609643043513323028558051169030781043657996903739397203265137623984653259108641458549192450772962998769199268006364968974226343504280202700138044149738394915456743866488913510097108103090495253884533932072811414169373060488479357581219658664790329433092456010964835718933955394820627828139701870563895385655818223334807770355244144637090037979526530804470006778141011914317634903520488140802801934254636993286119328243866466289440939873119303528731702233838213766064026663180403507478286500978847813896487204048614625683552300629892992890279339138127480822131046458902743127142396503868598595637647706853077493097489777409715024273101705888463160188646073845972602177879260154150704733281803307154754808393473939496387278321167542761157133103757097596913081809697396066883358508574945004461874377241356280440949965122338501270212583379091796412981491857909386866741642074222347888789866646883001282961737982382230312200279549748707398951988972099482707807244583458842782195563183093776766711761929385132276675540197850606805683253850740639379576687627811183042598106607727358686219594387492254590271490294814337479725155606945041604837094679900883243894340497654636563475456095668213132531857825153992107347932867359000563304813505964815392356501603684484726686388490789417845604668354187258335528656738013915501487803125275930830353016588794856724381361173742887649470865072714096474091885356414821872617149538083573939532009667178760208221862503072600709536403506691231874813079216698452657163067197373579624066995372329234137256133392825651989220906627268191068472490749508728009620662853162085066951223470631823636099931522233795529725910161330537650838841051649769764094072584767160083013925671942333440333520977130797158324933062104922228782319695121950843109325056355808668265209174663150289106997831515407286404694174403882874053376106817470904713190606698801426210612330553850890911379838783331983702756697625914478525859885160960350656779436899417790197755304298616706367250238420933755246875963827124528082719058018980294370510056120912573318633318940761002519801030309522121171663359171030355764075114096013188690659089972076962404127385787694980756835633230533838867463650481596367408884870405502792070009874389092123505724676300834775982760523305526166237337373456332040738848041886160580830148573956047934190974079742469380571193459507350461648076219493809748503906425766146015227809386593850213572470250165742986475501748137779700723591241396495869039485039737744852076696164022695933350318286459643850478427713281410609343079700065288531491342115270926522197277242556911646002795295615647916461676154844884587393282995159874655556232674300357111158151265515807489852616726178754688952368757280584559259168349014151662510000599816934972379183488626855623525930552706341788524677518454870747157508670407927774500713631016873729679783981545032888059845784373062575116909149665916823663466129677143200888085696323274121135589572367299533223114385936901158146149366720774332867604452881005174331942955609177180332447741336753105807746312880001055223334964566072612828627565136625875479949642819327023257141028331513120918661207907602367999447147371890941349621970394155617246415179084130702919452038389027264255941411524162390203151201175010565915747370867796016513273574753340198883094940764496067235906320725919514751336789874439202709572831950332849861339286261087549980860978156125202029537391770193803522318379215397014433849929798767623663475775963917964178327857261231480979235526504825370823006970200289157102316268320953421485411987732038422027622441346128419269826428909663355834404259490670809089835238386025573093010746664847157389148557979205456184668816293506252571481340053699327286925754557144371972804340257640792718153912960236963001940805010396383992327625939875152522331529455018719174629192238653521389884786603272277052500138171339505557124864533635744919188743692456457594942630187658395484961904674672793206214396806509298084724298791438352949039864017723837212066744486536490597957780607501045864269620672094351497333348775714844342709301071297497703106904478535990334099208446248328099639352576040504841668888745425085812623952325420020126101186297648767862602657040433995094155778666615371399726163306616275384320739780921146269150111319435927899772018230343390805911159225697480205472495051044851845677771818060133084657472918207676134204054839843884793126114151168764167282914637813198504268732318579784542482141805829827356665070064983579710154875889120375332398908164420170220796806115663327297772453309948331618045201719021742336829565032163886545264597243448540330417185526019975837975124986932192102378331602373757947590484926361723035250329190300084186470789475036491333056202063891728510443834231007476152532464261713212899326071496982127469740132649338113574177408902833411665215786340294408572858825360073709708873832090310558669263629241907692365946533802591195595996913131747959239401391231351335187663163034233459881451098696965243542216062259161017359548289563444013736195010557574601088147356978399431502690325762816459302257226602111482154910466044087442374535430734595903912712463722897319867366596865913991706771100683056243643039527038392864971118084253050594185257063004520970169670372833639194293092966229391432854286503407230544990429010856970362436966515858958574743951824143249523537162814310880683930269983142580521338004064056494684586833769632183222017552499883695663171200417054030224374484228866034740213030981563466162076594708907625904929482864415840208860024356278545234745447173648302281339582734815066484701002782244674508865778468766055875155308997443022356566558432365800605495276607378190156058120840191667216710698698562337673514626840596851382510171691697971669554899668724151040832887285599631846250370795461590096141027776224678278204048736074911302473493153883333346799685954252304339445535421162426921626614042956855686324969852334893096399769978374995556739194603931620263442050907941041886113995050538608509856449815751737911035943845025365652082869557141568641561974098308630680331963210678239715009399554313302266897868907283280909382546599848434502343745984031496934364067431653064519135488879105456142010054959024619809828230340127106762383895501720292821085380622644916177923133406837992398998896267866860340055969908708325373489302117945873420656671711479448117061894010408831884008612253426843689297805535213587342506849959553617312031822588660674212001147231217384990409381695729223169712004975978593575779201951856593112404023746637871285248784311617112489823293061806819274660890104753521857738716415552717134743950260327528225888990825554117778885659862789936690311271491892919399903488400284909768074228802258085876277707492371723865218822885117698414142222610972989621041080588547196978240276954549612505859199087433108370938352362898671284136115531480737533395747073404043715363672096652352066768980299625517239566987104238998521730679366567619452467560770556248961257561544344505809148038782009524246261115565522784560452492944342391741472520580007734537515042035295453724622631767908944153346652690393901083726894513229739527377371886940386768707422290404958928145576469627988899664354242611584144337708297501825883818469021970979358420364385805697751586292561647863948765048167740873825375035784643171505524055536596990810997202256688279593859435540379962333957265171636584920770086347175588740161357726523483588027186139438992352711369501822097922148236947544211880093831329720049165191928020738626088385065312334723608422024697884876020564383917419694333438731312258119639769329626006848566942658264654605463275772015515960067899640838168812828174822215296477855180720545401840026200704487854693708201007894858406272201463361319059700077774361185173377105140789712082898381837628142944713952729601191939345574990342496855904850898509738464072816745795667544481171960410860347826865773019978265107619969282385750115704023293040532472987980891920084696287588924442031369071537881273172327239934765627731635390151793684946320620987331504652109510199738697771031044979875014469513436060900124851012330761401113935687588265662129073796946535977999224569008694267611889640918387298751701029665794231676158766235281078016371651508645524688652161692480434007872203929897357610313600132430753633612022054173910910065042652243412058341826899719918554350499231355235553369115366745129604971676950562459452028518507274533130337735548553701821033887333920942330489193086783966117602138593264468953802657500700372877865219007906868039768927933587835765745424887047113086789737297171291437705881098202180557876422179004610712126481359648439965296616813226368649622912552791726715962908427992603907636206403971778625291287607244530498607401454526915813472413107941391194697246811853720978977772378974282497427497184259212969428969847065870983904481616248039705040831543075729105477420212734116654455645243483091827527198202457607991927179968505915130387969863684358476026230933419397216284918022431614194409023964838213370165956004251258822288486810038104234937202551315721212594750204135691139536797987378384057105885134219897867912878904193865452228578014054527432651960823744849160027352250606170072253145573854090230496091183367967735360081952462360051073587064944498856576979411374324872407222387889169187484940134760420063935763925213625608038888329656240792277591131244708430271712782979305458834864087044070643073813217669776343584022805172022203797044090635999385732834832115454333680602223239929423211670291282196792364136244169660126525923275157202165804564197789066621766917027769156463606580841617517177513137518911346501357190941423838830613214601059870732105427460258354392937980331316480705890336884948074414898583633092763588783356002577809816035584820045137606412776436079072971481896532212901125820840453856940967561617758749481736610938485454342390537083205603988355560717051703239139543710863161829860768343419509199802274454162971504696427862134734631656165316691839561522967243700584533090026899450242208271800146923503085872445842983934027709213177726524131274712318419491843334752991239438001983735342768770387968351225818126875267143282640546728285569193986165237290940278651099372585733099141636966819390814990522820473764795887606921439747200470318394997568720944365500677445968275295263830305234324838787634116363319302745473103972746154527905736794776527451288141578415902953333306094873316850222964095118066469672777963845317562073723821995107662709001868672778747244447817052544712400769266341240429681722183541701976254171823868698296773720330972393265416086416135433020957712344245560432299863861722502989815690554111609602317806192062063686459319627227570596371917679427861249967146425673851675002389473842132935824432962654845448550051820263587064504308100837416094131024104587391146748574221660478965608562841952391182506351743418279550925701249552243677955801400338157419498893293933971744809778087667423034233362623921043132712617564198710130268396145829383768890452720974191548220229193872777518248940429462785300396990132102408467343286325204899945095232598800475717056062322583615574289053786445054519916311435561723794272666564453429042520520187140525844760850510134959946922877925361620428050765311655039896349330788996247150266103646337788595057097191514179278131497439979148236308832953948792027622634529503831700367504483569077764188932194455186141167452209495861803175593988027647244084579541857717796465723920958808154037862293049387367703298767159983145636980368199312987505696610826127197188592338165883025976477917630737136064311870052206019187791188015585322070676655111729891358540988912634230956799706389063822629417299456734078474241711841650077111919946192520267385032366051436759906308893594388081425169807684764386323248259719590066038380804882930490016214411440757934509308718051669564074744339444734381343092357622715413160667518738572374247743709765145495999647797696834120109280788823583073300796925378058212824936101318997017444516506703231869015018881904994019436091709475252802774968632042425185267317264730520742274260197850492007491893158341994627121510191143808633464440042426460978177843330284989201924855000248258381482858291693579040887121272943897079874308687769999993909967712331885818406297673072561978742890861577991617461527427102436829292516542049045248517853218022657782813962757193774323861794316434436646756315306477647201101350321254885186776813711486508026807853037899419202208545971928088527273391566147726658311819445885995208140543697951614204101447299450599385393302177663929892531758485878601781895470641298015536606662284541692005269131881111851827786557527217122460087495193046838961090732640635982510276305913058065780880757602034961109891116019049358109695389441189974973939634992734210075672993454476342551601174260055641154877389853602398620392865393037130193070920919994243646588592455861667721024204224398978670472087350939993354825270877033538153761353754796797361047990654533905038221379279810979461166543535421568310961840488965337658534328854646948808635435236370766938606196352174959954737133831209057702850614311945723754430525520887810966060813440852359257386356211928868277022351906766191944660182796697333042482210495995126055702363149942995122615634160097135417669362384526440330599084511475654683003443604943834276036058027796874873992511795123915645556536178914099068288506984452102621924285334484247296398258699449540800661117936280113661144832983829133945476156669535945446144396991429137268234685810417499310474877426051611026874213082541836457037441993912834260588668043140391211966712969317443126258208095119319606043244531808282995440834370373524761752375687606132963108977562262658725524126515423206899424241791790272297876792709453917150419947548160701536345911082076465890075203077229038043622007815411694639326268032381355506858956936430645393548802626858049572782635924510503696870754098366240235796103420842686338892810832864436999361667909272400265559773907715758104468786543619372590724873007409141784468967603821894201277535188281077060767113862862519978610428425117629604679475880117581522162347756816135983864157631845388419821267950771714221598587256513017293796439535385445865588696712978410970142564697342905232396496164365489219840921504269950903915951101997765479741662086898791992202819646567926976850855245183321423347097808781188135181138368321460675746073345357788603001849716600327859588771662442209368618006271131822217829712882876015961540180448771796698243863334539078959228369248996217380421564455190221103527531107925037539769255426602085766947968533534718661057389960329619745765569693421288042973824442105441776162538924627132098871786669217193845660838882313095133912809819056617140782580872333534888371397717152097745517841209868690035891089272018135531977837853397281552664191524677115537437125040279387638681745484911020547515812144392340722559269855166035195420744429637492096621662693217777653150800240797184849402432598989955932407419830231121178065433864899721111446412807373008608674630484753832252446916177733417443451728179802289564574394184812132121004002977368706193449423758394373132703282790663173883683649013204528629235746802070518611587840786999120092370247291274824415611320612489206221196473485432038133503682799187053978781845864906578063915710970960833481208849094677132425074784118550146703400336338075405424948489449759221696163092275047262886569712781060308106195531423096110262547657532052271288929130600442790805141015133551061355672243846712985241665298762953029705217541351285803416892581788736490812886379173918468743876042687174478502804932697732200519099722483814786510750021016261729286065515623012215520472041579218361269829849341990571787401616382073030025908135387385799736183019447465723979568712069646609466530363290681052087500693353020573840581327041444143209654473924401773599694335266465013170199271614707572269856371430432468909328967754295275185290859298464773461767794030679743490558021577426526585726665616233050232584143307221623848540349963926348306865258536901333082066627696708671115830028370807850039218584082549823249264152879148385976974115160137288353400103690735519638509690989885375347420181510647809513993238077396095857616379196823463401504342936277551822173508174473118563842010654973589232188140906063105648169287786919831596053542628966053368455201010867622836685295239447824002713802627152317534365800765671549112333889942283027953920797588898665790753950434702900992866648888540542657889557707067090971120242545248474006806991537557362465871668096760517475660755123998202129307599350314735692808327680779485458008980055147892317314665510709822040702102282948244342996715958510385978472264818149592574142779471243750898244657484430033503556245463898041934976897606547436930526805871663502858435954946383589553452003881785540074119456146238891090033143270504326107048529375172526455495484988166701604530985163132394341779538034307718511033268878988235406821717641875181136778077787775044559676661451256340095080440551279406885685794401308974861961989028153199985015423356853052819354395714036598686552395980922267696779749668158971553856836262149275017128980401534901296330646270884149548585243364491050004352552451052753282591793411333899463360839090680120261599847700495252537638791075238107981672672036250423334213421086918699083227284162355340259955008711497879035109180064881608941913493313078327037942808982009542688626804448340022443279092552072740564723711531357702822418546262367010067847482930763278783980117733424912192549204792648188504907763135145435919562081424268249195148152727388565683573540133240112273824745104389427344370418798584079093907739769312723658080728169721825332636194410365982157386901895935103277319477206155414935743437688291995914186712431659538257632902641684749290577441719218592095773385551049583061666578146489431549315415557135687000155248068232141678859036564099959717647097142895442604274347756020036480584425534490657450449915026229623530276526355429083144097999890407459374185765904715250992318408611939423908876709968007168869939951267721103904813418079267426709102556906631627146485720701860120265118236162836863990504832185207606816713409151268759456028510293497900873678276191973098957275119542197098555847745282923967580759549696651848765500368430983782708254429802752693193475873705683243896374318892455100566990682584714314416449906434453783121733060191029982307973019508309461756731377216231961318823961765401520078126714869833347399935127806565853544980876432140866474882424807069526959504575444987254620248927171352390610921989957177456182497622195705221716559600286099783499119004323944926224080305225074030736784369467437414368042051627272475052108199295999148651657362738045023098319568219443760652798154543676845019175616147313715164216868741028777371351865692002469064356655980377158857467761404467993765039284800974412894439601421648685565529590617767637259408953268265478948860628910376951306177886772196406060242658467360939250657912758168938444993513592198259032590156538243481095297934156212791544006328291821591078326225623969975134686026958569011789575198725563970262584886736248251371928213332938029599067545787387236983205624668713092655073676362684319630335170698314345569331942542737846910451619300341812998101755867773554706304554768778234864005460888876820252104997982287114766466832810557966352290674154404650521749809509791511339863226612077326837106717183533172171802974878569023145253295090637505704119114341540239927074927946800694231486263236477412566801732115123551894487234854934093165081663511890150867300792802826659083491583628656254016882658524703263378722525108978961938560161631219384085751942595473017412092571785641282316101283317443032556856895574906202935451686723166824619797558345012075586597697506361922275770428322837071815649669025754989381992354359854340257578901190978636631587282660988194995198049457771063958443405806921485021188304724991898329046190709921741281651951332304571037359872388708601243615549037973136472502929814867661159740223284333928102768431683658615541620657671667282356911235142016279502814862654936831880881940920600450819096929423548890748084971205492480708687168478416160309488694018237817011111530502667178885438589334586642508718840473299397292293793918118585220751192534067866747795479893546372251617407246351729454922983297776769693335685113970663780537525399791834776577073635526740239879076227493877427447240431995069333766673575660692078631367631618157801258184911788401772688948576648004022603557777811451475592336554872364539297192994774071160002054575046495384539143825507338196034953265496202257158338850615963752049784865935988702777546755729511865416277516041244074569945094389173266987812211832919808123307592717801696616792399385135528258728858284567283772837622913194071703612416628389483079557458810586150041360109710017298160212900896071709852438856898072601250695258971143618321816401536788432175761751226564182631063190863249551054354050442015193767748763627958869664995636074608184307466277079123945115805872177266971996108816053711074192122915241495145208729675400961862490961049631280791371806793334792563907470393367403313280724247540284991873099294696354215149194289830602199820683875465768011008393675447003982709141011727300523847776558336605091144473503542535643880120728473735873591901864138738924453763770351036894107965980098965815207693282348541481309406856476975366115169901635314055445664565443567883477692684211303889702426240336135064796918426581367416751998893893371692466146900969319538779340152049114426339896659577316902851151440206514150614583164341808421022660758481107406906574839944079237522050334178985428302359707572600383487625530004955607600659748360070593291258762673291443022485876531604859167554969218079947553399786912470469349685376301759530030905706192320797381013264922529188435116249065586003563164410325986461635065854634035862289198167099198764094267770457571039311007442481557765070785419144304032371494099406380551266461093030588636323394751555509863406062762208253805914083717748141803981341186708951758979839987531837160623357482109686223095805593101590948285621531054478902092110720393661632738434863341315997156896091304940511494524312578806131355809469429369510327411615779225190520262734575904110433066457926333822987378642697168733214287326514432040984649964812350253109281273635681635108277532534085909159819734632216991300990128223831272480767281702805530671265793648897046393320534102593368803501805257864958838049931830753842223464265136540360824361610084393425248730389368750708226334777738151713385557626554033533164013597164374049377214826655138149207284576937311812246386870746480391857621814724161461045843094741773671263669644440397878763356349005414966555371397271696043339208635668782197224690940049137399267237095934753112278573530103571412596696321812821655613216017602453146439941750582243564353823490331245363373077509863610075643645009748040692110422647621527998508938990760395068770648810440838476389884506558553140931302772559405848338446826646396017013751802778233796235690081814394004359284109085127479083469879768698393410960475754176848753053232965466953705214493888209456006245772523105821112053215066858108381739633248023442870062841580270928746497405996565461958080640547559976975912596346709105468413254272715177653569853144788387896842005873223254507399556401188139212774999845467981104335306652239222799084482648051407941155912840879976628581384965034899327633349243829013903787754589932227685210564768625961381140280706838175852358516789836114044124854896068528149644518321389300785691602730362039066901824055940111038205283499669468780711684004447975543575853076370964638302166261063213031622530877625655773631787426608809232800349677350494245281749167729827920866073848400795870414966086559085460689905360548931171483133424351983489179128014878165290030543281257412042155523268888507576007240647419849520224754607883759937080261870238262877741801447221278976849172662696582080110038135777143877202665556873045406253516254164217027767481725356473594359620718294942613033048092000096305870628257449319802699299656500917926405414258174050300323395635763133830059580431858090131032887066731905374620745672441519491041169702384489770712691249184832342285681820495237847319243626229163450519458678246665174409675526211767271531059549372394076134499567722034429101165456049123691725540074699771234601928522032965143819894872340388849342104070162800479176291288789843644785407196227432008798367888901615683417453182144274315114219555096869443007654543556054686608887005482215190146629739104498305901923932218445355593302513149113947708890861767416537621895800946954148756372206481919470119644614121036358841526530427958530614135802899169255589783374954988150166524524021587092433069306970966235234889536557421100156497395576044071497375372888240516099921006143439349041576322141842590035738697367541284362179371468496790106424365889269923003957539499479563452108492726647911802219763750041033181226216516914584442138469422403115909881419184640682100708458621672648927573033444617798019591619776707119941651056874178395183891583394179615868235486451490066809601195866540436291577361928855783380232130423774530682328492848706217423843722501854937096327971752282295346932834385476105779731821501127110369610507854382575277019762984643715794863574519866230426300527323482204884464466941747833662284526353628328729344672519160421639352538342345638275210749048812288110909793298040883807074586948701243835340127483684805414485750399509357383106922099124426913667182636236751880350366143829053411320113003648599501133617826481518312731279074376652713086441534166286910404675249253482384323849116714719414427222361594569421745552101907981154997573095896808337777762482935241800438416918395022680960373199347958691973743809949615028907063454637853496786133802372511443471327030571884795797351908331976876849021740648548188131113649211713267423562560854091966440454101625713986747514366062213761551958796312976045301971981448198386949916778444895508417060744867347245381760621614420136068295182791004279115447964971166284842655619636894748207336943698656865787467736398926310098910299963323424454220265535063286306651641620522093689132376794725160309454755133887726334467868375845443664785304156764870470065776447745108846587364614181247856655949921933431295108936042242940032269247398531024587588545304618216743304756364178388816775398532366874416614304721258545465748061590576019472604084452012557866019568200426378142207837323666955892249673245223425308686984839631607212800973087878531125360985817660305935953190203054806275583886251330636632077057796424566544156279749526923717705622887309345510789072509837641943540069312518610299875588941794551747789284648161733059760887584191842678154174483191453548744301741705111126595316134659131151010263096153883690015490668705337447593962172941641763750476512330741391048499948827052804255206803702218214117822722530155044674909736355641868991199377917808214087521469191799890015805532756582006010592457346676296162796192156883082925299607572127119261991902661678718774797762398107811083410843216814821506612195801997416628180924341815929096375351558589125318722242522539125706300614885204890956577606886848851586938478054248614385523427147581386054084818487219686126709346583544470846896752658695614754668843878302396943036870064692815879135305421099267091953322186163646536737472467904161235873681398256131934905423728616916815512076945674936480906124787139762568414558888560339998051762238109240527486263053383343563526936291047220438164916456174944785753842056168203142931531132143878559507702631716996911919448503339833480629054583340082125838991391025942086711485371342217892125067333901680872670129596296885652102875238897272312188379524889376388118418318386988649419939047621592172972934927513116490979735898999669025941058399015105648433363040288005864360960386580539298944822128861394218977162254900649304804154050003026480023189526816625606725776004294297528639563158250838004274405265344268941660563928314356223389381986308901898848390929245830581458072764607805893245364295694100574390152222454277524000347379643292529472107168816016515312969783951972634565206088531081816696339283316332499688364430676469999461908378999181315972909326183868282146844595630494320193259445394640198065947440404678340711496268685925273371211082374072665738624982274910809813523344928496564295201660214363536852353452076378406309560241670978717786772025660609068332811757268605659309621546286842986283713639307665399653426452586682975460507764041230223350237823027616270102161253349627111201874187422940009694435552913518211915462414402284744746275498420720408367414411535249344688244666302512161898923185528545017923260405435614313882927286941647800177594107107841297422213174664362913382111506159238515674746417797592072552233411458846640811560481290716808558525231291051310662799810189243314025233920700299537555814423395202140971998035880510671560153423277266068167468420364329219107676034386282204598255144746737069728938301198442331176511595031027381658437576704675219952737601336454439399593247056232386690018440890772393781247357855156789717191903272047209986358519045443281389121004944171577043681222606326238718266761472856514385408119033930193742770727980149082580367804128217473070803827656385103523090521302294638261139408115477138968932566989368049868188498136717618480025998657772343327467253825230082172439314567770923844951513983070907212445014605328382866555225727792093102488490242448036802224081820692855687561753350414704485876405447500984134604338907952958134733581247997625210213256600930328744936845707856600526327772825765026759568228778439037363339472770863401749504742332765117310696206075851218479463304772066030706033263916897095372072110656572296873095363103477567223646526237481405683224359224411382467970826665640467994994049831343477804395911653428938854694039014381078167817436413671684786830350337687616057215626863492003972843446304513242545112359284979876406970380366545213202924948594555350432732713347446865745098210501493487390136298538442236015324044752370713623185833512273673972090043384472444387426441308626676845001054467499971051821834503516323383974080718341244649416701792775891324320240769654853832394895106733355277632062589516978889621365275898667252731397434411487031185789904572427959011103354247629515034488328734572718582486486387162362938793882880977176612549324956374242972338173793386626479138516693731055047963853097266536212682508604865871109186568272463199062289770757396039309884645926369052197817701273627709314599376806945527095913723137234455384596769641350443934838551266626361880472187694937921271266205710326739240549716868511177971692420130621562994259352640623131459000421181528103788646925161277177648077436022580121385717537118616699321767548549346798405812866468401301175018412292402023448195633361834163922639107934039679434972786748244606013903106648008140353634140336575098559286267534464135527572065083180782475061963018405829958700395505768608556530132034974043389633912563585943550930798545292144308629942946078727497193294236248914186980884621625018232113998982226747616284804911322776704698620266710951452223131029326918572052795267748485593079071489853645785676775126172877162609874095376153732673119420575150107015235073954813807121756896560734941582545748582379086061491933626105363466605249370326509701707631681797278524423561965413060406944611259636603085780727647579353321877808669358712471491422048199497366813053586902561237555073521040147781409958298465968948663851250231088685784630374581830857132068146368604841076539456548388621860453647419513122800717741535337671333029115751225015419191287737259509058885395891691714622208638428662495915283703031197887891966094523422265326840466292367342876537626025501988798728676178784694881546591672234761404947850253734411084199866040489706598220165469243735458019565771995006265586630849570726802866418805539923729390003053106843399425987554521197919289166203602482025771344355844484886792558260163372474444146179528947824018368673257009935665732369925540560880979362868387134453931113137161886230933801679176319124942352066649660609436328864024456593412138297330886584476690725631980454069565402393192306089612314121207103783519408063195185870059805607007957838810677614106122253853635037620617280706554578848937762604646344415001325879596399695314124960259464013152287495755971129594710278601760935947082011632695245325241513137057691084745691302976534287385708766270810287938545838492950880399889672651310741962146851239418408464342480012013079025986863339274212414401355129864034371945107958551930724194850092049699496685469925856967072805638198133513767700319664024067175637805121836640945335428364548002599163965709076110444841460637376576544163844429408236538452698458212384998225930998966534042576061326018119488496704631132342819541302349005579444843894209383223882812839905944421027780465692758487504472451996675283960737521030379301755197646636064876829223091011150068569890485672086431580388071106221574663153122589128581674210029815277952982484895802163346353485765523906848569915354434013262586501403782161671892149530831518105385300800960869099915275892800404385058028924594449020196090631681320079535257874997455313310737012489343547052384369313886261088571513835682354036510283020987423350043656146618039106705928843382546679416407868570537130735668890379435843889679029892510060169157002087616398560178960670881993591895070951868173593557615150667673719609911368305091676920926197210123194073427195010460788759405394730586309447853575197279071791654558056373082082875874399604118245027308270747013076876581700852871174095559910994814350037086577748684556404178324179351359938678252064112518519765111334183140875286471435959174456169444124759598170240979160274806917495354797697859783238694623443843192688993591870594310970255317224001721977710744881002427551432206323541483878053896945270828468078494830215156565569557429896928751515088071734329048938603341201718274779142783005865165685349556222351351445670978584555246985808266506761437343734626243617910887447834834936276774786776917628452670330262069668678296719020513607969665302041008292750517433766353794276409059327430163789872199888588422004314442668106024555459916809563329609296765313995832192799445924210214644515543236890705334281236263369195288303658806754599513730642033304691250890057659839009479596241800923835647908346325769631353246262035795473703392767140208232617873544903506511593675915883677634109544101539684667473998041301652855929603240121973967173195865681465495465966018703509067694768712251565357634323084407828201389076460218615459976671263502985336951029094478192189552930361436693663766161050327356969135563605547748454190646309646056121023425432777974626648939181972659544969859688710326213562822234517333992693344153069181946936163206866844783721479519490892272006885769959858141771816103600638896534658022139058744965828393320932260428780274335715632832221195168015750492175444274621055284583250635376639208590797487751307525546770733556498713610278155859166424155481441308539918982991292281328241775294269733538624080876444788478632399147712839812111702992252104173195674852541952796057585086652454413536127981379924718207666972224415371547754705796435743291093057177739411406523589647508678642756286285124447196777881605519491496365022232470342202878315463558564244207586009911033085846839528730502830810358821551144360529287968262528870915201466606090251624986136657244959127693431879279265000819029322098278159645025308925814848783546736159153222570866928257848423112989087211943828309686205693063778316034134694610460581853655858930306825089397862991005800053919430769227136315991448389819594996680743360558035583397949173737906488326821678221716025846344472054078930481739376484937481067890290025897786155349543655045854758444612226913718189050014023176914199260135230876787290189326064750330530836087798055689291630372080387721820996829758491889234376337852195378510973353464715935817059022464079802962490284610444716171399694380033491121037629591128829106648065122040850869268856899656829411161601428684075839711602072069042592498394975610204964913871026124392369017558451129369196095232748686279683679082729237415513293947821414510058479639118431503859958340030086056725563497023113511497939685329933066531029063934225885260056390790026617540837773834282471466215102600635650629966730399759153284537796993253327921557458593330023123511755909598491160597231350041627348650853502414791530595250863645560265766070736128678964247753011099067323806489136249622647578922480248649565686757218381252968109550568929461933946270330323900634172454551697670937119772267993284732543636068140218124887218664296436375863820256138447227595495642626592623011623215013316614561676689161710387805460887614500937536229830062989272059167518352240997673207464376081309051223222361427646114154672490216811800267182591502373884576833481202433520614117574942204509305231028820911641487623684575059992998256913765602809243518108941098501727994626042038376893861115511318271810813300767250225353392040772378622808814239812366274634174318657123520888462530846100454487841754037762217681609379929101591876670242885663926353163220709107064601033137314327410176309695765157363840153370439021896102215337746679576920314001082697125791977104816996770206123572989509162687175235404342997540226643820580362689841932107224259683614125191889380217829458646865726560053536684912860340421055743113544564567064057179039077760454071829378877965183884272311144013316680072289998929500756380025848111524293936657028705857190186744518928562538280604821786024532063856946890202117134212592433955865703432632033766869556613234978376772973499188527072679520923010416526579018623666365387854334325211301646636761009981999720840086548201834113261805789709628333400394848336712524195961154462097703961754778067579235723325415959761754604149001077128789319147451151011437889636586990036125930059254554881852124402728441257087469712873393980916871255415504721928614889886906183511771500556734267535357446088815203294473928615106578082569341991857683124254966973478615775991178885631787416592964747580818258197807339370151004291484205283126653318240423364642016430382338171194184189691496938678488399626922409198971208567275443608130300831012781390366120286810498617994099117036064433025707983550507143774683645057091069002439256332468844053215413170249883302741604767345497726442986331024720548174482684800137685994781498715340055475645428818364994719845377792522624643687330666665371850882206878111800525537629016172722344533305564199287981121005263761499525981294382815442491810234307200083035203240981717169475537265527032017417584754419734222386901507192863923225955060202283077539932552279223264578414077774978398835356381000173606901436701364557401770215588807230774313670884058842344668568866367621475982354978412894758264999564631435143733805068051602712209733546146037145843968615539279243498925663580598841717746568333304084038100518370468473243447038606684778370014683913623456750715152041623342545146031022024628153312692844403485299253920136090570118322306430116592460315149689983400029512001277384715154657552273146969748210449499250242980120772170220858405920693289501635811311449401022664864303517634940209554806043253126228433597152433598596470739958053466104249537769960015236404673171837282989887029728269875916996404237970898212637428365970076297478573262925193394819559563431167215184738312686262145508444996490035303472671120480648195815443935651772098532309936323021452987115819478210084569129831510401271874619390986928801281040739319435883238929142389852076031406613022213302216117102407829779890519287042839024094909136432002276474879019666553322670275221968030640905029944420025335707687617563972523911750374705282809277466158337802947208209121725193151143877619500479339025284758629277868273380213592289689213959584974239792983330422174997318092114388798517099287339292563986440761354214606236245039886684185432277093115807444921593059817661610282860994864128689582960081535337737023051040120461380453680538351294789657904818300308278871042573524000444379793470190510333632141342174834649020834654969045523138082386368783341361173586008212341829503981744465895394932924924696148339623723853018988953590836314252289893062139914947524461523091842098255549226235043793056976170417309202127484956816046843905974177873419410575682155733670434107134559212843039753982496180149871505823678587096332670107705941061012118121361810291448354116149555842822397425344890917671657794681732760593498248990631017181768791618924619834219262210244505279298255414702421645541368154392747142995633456601700338868175247254899407071590697010028943674371927833946559013684614395252542921996220947370745262050842741715888619529198566644428322943097068722166068492466707175378231604450750537737412729348335065681365516503636049387174397517923473760880932916694363542188687674797741879423273392749004588886174595013406436525110780609811599479954886521166213034846319269825940277469849363181637996321065054724544658421041463433923007354254586994520813427692915213839697866880932138446208978221275635300862968244819543430005660667669343117610484096648700329870239390512991906333237963398211150843533827617099040820448958678466865843206864316840042775809651133052234701588009067963613476982515805783702099888318288495195639112509414806243613378974029569572544487111000901975902080783878621371067684125720170204752839030124356050546343122112320658870157139915596118025946484789715983465314621895686846926113308251319280118485816782987574986768213693508403632703003432865803335521050969332133948034038757425832364484904603651873142418826933148827206344541776223219802735359976190521851026670274261524224675909885681920767035400075953171965369747561349597692053907460099900034598720887912384680703946689620612539150638738695086690364086458044471069676153669136161322947847951211977244906061884597452028254688127547070020160340138129505187640564843608520094902734786440424238745035414993915099358107072557027444814164820164006238699073575384480981344330597722475465526549221828575741389099942166955963483135618601279316127169070678085887062080498169729469549327045363684226467971386474486189957461672282537901552270891803496565803974201393619856119719616848212145320585489110281907497547001513290642611124281188441824083896436446150214046446019637123779142051718039575455949591443867735408273104514665573321960626058164452294550707434433742501481460281295970726105983213007118114586262269100067336904726587850113545095793956046000247262157273254756008792706586352335264597950062103516766359676698214824847552006108437605845449775162606096229149144258461518858732114307753600226471557837698476412854916983601845099914990296728806872764701623595280237926480091775463076269628379864690626712175746683430025937696745603634524715157876033141112240715916871718857997945764286105902801559780160560688481179733546828036238813907982995807365159038162620983059472067098715436261079985619529111025382409889569851978498832695831071954541744974741825915257958109374540316708064250957873750244119016058840958169124430121215532868681036342428821987105674605156252492709077395417306732841143906378978255307805733885815080891938445775705426070022469527086748960510296938759209118554861878185908238948836828861104311256609055232506119568239232060552927644110534842332500743750590911321390879821672024733076165223414646686896661219377950104307805147781651749201270881056261886253081054022302593369942472329901844414043220869778928044610935729003766025169834377031422507781119664931877893802091731975320374139499392323343650065907246723536578302630823804552967152012786081834397683036661154672737501544331521267799276110012444255191518362693994086688164695794332091986388751146006761211291888937554719960080170248655289730292720241965627952368252292386039546396282883816060623835007728484562358040801428243417031408958087514658396987349416837301157160009091217906474693683837595176449092464017507368928931902538136397859443884477873558306143094910731762141942033996121738338404547402357504085884266744796797064780212330684425947880459878508191634027763399882486662899450706038314055370489240688189497592522068589464574112570931410118985870786516823891335151157921732749469542851064687798321972546779858994884231917083904584937396244451363357626658763575107018794816061954544768132447634599801662034215237605849602035045694195115178973581809201005886401863656944045738944925489512553120840279154761879015725503945312333440440961241129270663087471056824249142077826653537970263835583157272291776125953862043064287608966102599223097339349589479401739493981738797231054643056605496875085754851974139940496908672374450993963726633203555656152071471804523742663025855826014094335566466248728277183734912919720382863507885724801233400290016799207869834660755596408347752845643517999908494267357191795967003741707977653805088257946999491546734341478981798119703283514901813819799184279310761627325141977577470573242346542180660495339449709067336060476657053611609269225235409409172598318820349640081676767601395452081382638606790936678668992830250198320215600966504098811031180290748839105112301227211749105695048080220772998711783545343350357339882391503166972058037119085839361028508989018275681771925428774958942472367992724105335505537883834578584957160397677503155308573409484136084269515147109920585352498241148508485110721929214595604436727504239341009618069640253138634860814509424999331408477450333337822591796918230526342362038698766749391526551189211352704288711331150972653201115527490194453088251955790643733898613567092991485294901066328909543386497349729654148437429181955189342819396740946354905637353284963849943139969059694330799646109500292254244853773855760593758836524397879361180017354696100722733027899050811194094344264004261902753093064475466472863626620335928581610710875547575765074316257236628807961815340723762561814707859141066755751057248298521747975572425965944429352977674002006472255144493055142042773346465649828593976805367896412816860742142339302407798324562417080030421663253258159167418207943334300805912763587669588939980494685213129198016535042231474887008333117110455927949952268131849186916809390565575223837113316699414310886439618960781274263143023533283724516358305302004861382617884904132079753533482084998522295801891373754101176646073032066317062568761776358186025241143164312014470674819130485627694162655011596808001368019650630662963398174784958942872877604432583928502122818597725043934960462352074012672028940226702876638626313748867512953362924366776381789747435059791937010541372883767600156310321064866528008834351839800654613933800945498565794911335416105237635559225209804354494157230068876696765565409612966973737661161031073248290636920421278683941276879998715126547092515580505891009595845797803122962000942523468744241964069485657896396574396501127305248720237683525084127559112434768868019756631524491149562519416373475023916420819335533713105639686034891830812314141673967891047825706693397294857425060216965900772642729488488381390181014547712158894780420486423456252556655265890046680364649979261736509959792677171157383636333972478799504099578410295713598201253119037548566465235698393737948702691779869025323270895846365217255040036430040118057927218385521125340664818624426922255832079534494460817716922067959596164062545659064572732177969851139380090721408145866483757250190505087425276585177454838553587640123140299052849873453600222506651556183852791480849845586174134266014202523088791601085871249693381179072366447657732078525680560141115941888026375765316655814915406729391800110943375414023114854088089392734953427380571101628195396421271887275704356158678024358817666194208844974154118822864378579088108879351523549169274561970341906518665918815448875167314174901355929664623766756495313785639949409874378702398392890571503525513048604869213809203053758000400075201626454033738338660410171306048860888056964624837147925838386293803138498484458543841176388686896075709725186134849707860944613332950049405246909752068549243833242538168917679634950335065852741893895759281825379631950474966384106164373472263861321374835474945624417190455488905205673434659260479686239697304740840895155931161199254920460519401924376692552757967231285004134692067102897133989281098353231977769316073324282841184501065527179386691283399552372949041964282806507335726324202201186456667966473012415312446490297848027367805160645920943276323533432665069408721233136986237487330685918737128004538315634938945994431079694004280564544888705817526606386840016558139462040097106959795770391398804512567909411593184253894118507175903687257115063757651241147278763779244410707484146198041753354791537754977047816789030984956898287318962587645852455880526944333714598732174316330895011230215475081316706095283157621662078837815137461565877791591891298630945174458597695700275252476536369007470109340508688152562021561374670660085550032323574310947370866765984732969779078771934039260585687847837779283024743063053913785882203240747034564201337680619379089726887617364196632974036782532744158175871948869204065849748880405321900820746443442627575832043698493004286006333329293063113427408479001441785492684233407210134754695753071660187509658892688306625804260318576350266207275444718009275889907957449264899124514100972454101219801062668248647453517764998883755305488387253293418206028101958514374055195712549319822565194615271111628005743033446319619866507237975370880967717930131302823007186114407550695230913987132020752867915357495809383992717500112583799170666450852632165810882866228059914425571060454750769179821700715448332483302416981969421966312894043698717974365235860242176078543570920998391180274148862641861451850107833157965589112274825149621976984635912050672990517466229306078017077594069618048759403333477029826361341037245174151261034555509330939709628444985315867488088812628641772001242387141973400258976915790738751632801063293825024937270575218366566699887233593423969667327249506238161088804786603694903310957675475199202540007069036675931561792456710165689603066713421993134255975998861484371098458907370930961210972796761625501382611940836157285456532437200869400485628831135014718121026830721420825946092537502397430171547212626074941294583631335248241113288942015956812415614938641764952890796732673217814947394372326407493319982457761956753950255073109198286905091148778609187487349054349391890426905376762100974795810991103531829169701956085037560222776747101748120537348838423785348468758284119508110870928845503157543695881507988906730041248358594585333009727868863810231530417736377180594699127743848507645613505520149177636486605934837101164875389640217392135788304456080940770020079646299715025586953879124402644398850091349505220660056265308486873964771659521482209822619143109562934175517861814942699078114973758939578800613735060614443438174981962145760553071971539499768883152794832914921600205086058630611208826057421212431308747886285862067777640684263174149512164541352837787468386723612871219543044905460041146360807265645646649131669122221196588520669339349093275374166538413434153695085499144975968253315402397158899293026742172148796385577101602625531864671663523527942062865970448723499640772902621834391548252979425619338588184978785825618785125855756190489260213318072095343474183909782401884380552963256252558033840143426527069350687264249653585166720246268362310984302720978766303280829177936184697144825298636265341805423008118997552080546242135803601671599657499428038160123714407991420598290160569728778803186454864931822575051384928688797377767849274497593717615146467678421080599355477612379418375091041959951135351298415339616366229592209525501090945545902844417538516461788928912257501737987315912300613674102882593769302238122377257826563766228402077587111344896486655725514523773025587878565034214660799380467529473370944276191876118044058376257294357808768533889564041466229534633506479108799136009070753421390208488870499201639308882618598686907310871712616668534538413996924519821270163811357527407500085265375404754725056057416854496851189859708487553184085565566556710859445059027040988514646606289003385770379902203777900289550096843625508579003279017923886989007264538216659304240006998352116535063641344011770530357327337691590384198842507617593649201812586760687147628048789316741082760114876308989137073603996130956338296388490740201002176115525660427203654277607148427868386676235121283650814381017106974409736204093266735098402074244389551466709245131758580836768233106684255303291518591807285349999016228782494456693477216628829648338152430951130441614428969693047179071514088171272450919770082537819573985284992735377524349100050496612716978148126460700042361719852046135333289140821185589234081197602299677043215632594721225768979700720855747312295418014703110968163901617310454520721665830609968816498699760654631693654443216269321721275460551351343270672106394067132680892605656940371729443490199014194261355713869003960938437934870521081175795058578434427236547887138733605294017704612141466053284582716550276425023517086900437231952156742471516929089603009559049181861790919265277539128280621853181319416611605123729223059752022642069569311408743661570701799166836706519929208527369962577008115439154360904419234696367466597032984252304213457613854457204823612402733711099212289692532977504735242339767901778550335007051028878663413596011771173566510856174916553293300312781084360515244638031326597109646919655225948396390735638613592637957420009438331587479875010303871086429391257179679288252908882402201565772661712374946801562867102581971858408250824779643886335303502152493887555829133882669317961987584392952545428732302340455313527525845580993160069542180043668298395099623050734284531168133638258588964662349023390688186310912533665896149026599219668989865872354653431095840762112865206287296395456630152738064298176697891234256556704458285907918245191903215802442060184526797171933122413516547388756465329708847221800142332003100061316084708579502816368121114170367446700329838946969357486027440595603863621258661908983469266390798609239743257062861858261427968631955232822674522912013351407300961411060721530302426076582291455033689583465898656316754166560243767727314628052872274718483145671690425596373203476018796089261474518493880182817796466019890548755171517972407083223815525086493701034703424164727572042813665106955776094799962651224776425438261002710699697290485219363061777770170395841928322594977114139229481874754943439928182833111444574263077139209242054836269403889659349477957930546010437102679832431661513738432257796942918069424293520060062860765384074293533640004384243858740503497020604396400092665099051148627968150289515753869142233405983530674298389881883675647138650806876878338171041626380864052537351340789521297903975766280642360231905642830136988999478351176466928611258390865038289745745988352760571013645702584011582702123937711650860522474519094621260443230283419284103711016836451574369343528734027092340436951218057300069556669916489056180269321235160525360286014357348374808812139596241269566852711442986366933312541051131088344536376490766489721320724276455259352867215307523693445931277032171494908155149398262657135800525274971830416642061247857184471139084515448551021935416724198217241242449467687036341282442755102102977043649454733045689242509911049105921030855964460678653267504514016925675593071109972043424187424842052008813783207962341889113019688115857129103839919324839555474179040649067978985775877789823921525979350317395511896084201309548191857530474375488151061377122250594224658655032220440502220087773949214311807821038371093355366171367353067314363713057696485409045843000106895664899828692358151164445884246887383572108133140177555847493433706637514141230763456629294237922541489507180665766193629527729626527939101737054794101644937921699118445092219698754590180899360414589627377559245818785690389186956643364748784916526723777330332869032503510006706717260768246707992524432146583310321711498522764744005924531875293438802823682599119827834708882785521005451733630695710159803806583046453991640041398311125125802736690498030937105127460388229758679078572851712761471945105768429291200298255622425108853081825466808628039131776479935998437119001651316928213685819171352677072516696652503565310375406092168628711335331870445086587965604413614301547648351151111425725947390279707619879580588746181434438960643005340881179381781992056263816283013992196391924760466859372124081393289043243439070449270637692356059755511269081136060376912368161652495744961902815083815319642537500407069950949799981992745878104340015939762333237297577510774701980240676424302989782305353766969942868831908171092085106141271828089673229430738882918824881009005222850463267780808945049861767350120469240358818670296611339910813922118101260692688563423691071242125783168584027556047184272336482610189912643786870366644290681130378719510690156801273439176113995074289688052659934319072721748965845698222453387070982438198273363836785167442382127965828029471602526876062698302613417573010114926124592256737254707763142408565826041702072921419681088636238274370308767704969982822870127302232195824215333793629031476748109833735861906589084539110255907945109810154046822993123971081962440684460778254034516696088569769133384053688870669525610395562598166957015498547152083769048902684060609160221521052699394900723316305085812559073678495591064660283749565743153170746172759631294237121931444940236038691753414621540325770714657604020087611769139308051217256160129993261792639245695002248452418249428158057878337828605644065031332744936889767161440746892539612675773399099012542338708285197043973662678780237077057783836893896991670081119566879328928275244825710450838255793424406706048157449189399558333482945267204268988911306727305362770438881883476666538916288461575725444231813569988406671359394362039517512649845994016184373504674569804131456155853187051580306542876987669699062660684709094269697945222520658352769461376006804009626426295718227645775595083872429346733863018290119492508875723849770204189183746037812327513586060717348138433486620833307356543240851036692847071767022270589135201792212440270343326467904221113160813274606246769674211775730114986520373539441793535774168523527663509827905852265580594361963112154435557857050702311065553978691326802209014287933577780625375642329871728563491090397011789631147097122456667624254594686566659292412655855715719276380061328337665670040946252174091791497386120916271612509900760928391370994138936998575737599495546171402422398279174346810326731534371442687693759456101753687855170411118410597817676157419192734239992351874885921090949775371701917289775029237407863761062280189701490673995628127966886349092729162734639512426171719786296320152570244274903035835883408393557317625426360186962484303238958106551764376930323170078387486195134927197170647384754005713433759403470826059597198930958101032745793667516028176001618922590576547618173012340679807554745657122563908004316540121675214803465655863130661343715531854780765937904031224564530175959761257128935822010619186084807899979887668964259026345857842645923755270037697642862664641490461480882467917269103509964827063095181569404453089530781373571563319198702452192445887845281244658408300304086732912307511125381057150833638974352145754757361363848709300222966602555031445033457679043228908126751775903375844645327480186702979457872678792517264661648159375539184865178747794167762664055020455538372191932740529155738100277219623009129172854234740278455269109127194419968294183100023856070446988454012611039773418729002291609566139044005106582212833367539539723802215857877395104498512699713168319616122540235414057000276260270516787217820572743014697836775456642417225007901246157232645614968728522514050290684982084789703614427608083846901146847557818779475803680954431382928852036616426267933165242973708921644043968956811633731526460468912262845983015894773782200626555044735509141523568937786577851813298883151354986551777934984604230405043567726867770748803558692467359297210764694190136268202700522758575865361101288718385023998010099458539722311797227775001719919161987483063806397892631529928114698496146334802363967884958581792104340967185402040262451125474863616973528487937672869191148800345692418026823993101683440382616131337521529657513016807160479623929970457559746788070775549802251521873230003895629641333276810885866596970656809878882315733393336054761544232725961902959171045387194284448257657044761383312562399092061305400605864658602690129585141591851405689575432211059749994647005886672278084923039872094892598439832339810590797052559769516234332670092676499846008674669953704142925846171243497412441463792636302283704075739722699207367101314260751091159834094844502777011066994458459137551867520250887517915266147276840000931173758504623578978820856642017696154826766966692884530725388939997522182877110612424647549295905234986150970967100100597680387394005606124087669555437654823625071631297161099141060862765505254625569356027002020140534941865603101644778948374760814518374537217786141947520006215705823378613633572719519290272027433903742466039373577549797188804638341488995257976765906787801802595193227883511142781546405492301110770978834393743193043948608539983335103542581084128267636105455826500368142614727119363650323742170504300150938433917853545830622936399143321524203847997454509151229222665526033277201820761177132258273322712032044753168379577661792095970683104749710317485541652803877893712079001072969416669880817202184404538014257868136486117140500733677646259729140586427727984363843262446526254049669445500359970425902632588765309938998304788797877113815020214938792505328195174703308219988098714872751236257526618319041056675117038909192957280244260501555532515352340291341910939740757619680845955628142046624052453512268644067231529440724293734161670803965746268763023053634532907823739454548991143260271831387380852462333908375122257629289435222857688231667773456648428436029791465876190587738620494323488091823838952230980616570710516015412394349035966469961308712362447528823312796150756391517106776884784539238873203317124866161496570930746732672639995715233958125897944336989953818674684839633675446496248255508768221027324850217140256832139798172075660855530748605781289283452682970878885654825510158011686401492422460546295808516957359251102337027390176834756240168328996375318245915979143325324792329458278113366164758717845846507779596814452589997238282586628147999684992022363933775419419084088596207793163874346052417209187965514115976738914518057962754176915101803498541304262510042283606034348063482437283069765930043485976651090553040213235451647066698021259955409194312294184150621084133731971675164809892221086665617038693883061332842083896969435025731276817409347770333790997224668563980699495196577218089295624044066166688518321615858234653815256742781551544694453090723653830677591096066004033459879700186844217157601651964891462586847408918548046273364715167450420768185171316692098704135216564363016407916164661690181105498510421695890188221156233222732888140625898226275939507677215482644024832885189392214792473582637698955179314644123035074603803160995893221325787952070673382627164282261703545146869264529575537466106347544010080688050569428716392472358021395564094200370044301804977204294920662442288720815944497539820721769635000686257630896463942154691062409573560038761438800825454362753725919344855719921109177912456859898046916628038966720664061634391054719607502154996654100424442991088107092162125383027429190673711665775070794043273934028529793104428042809401597328398349964408404335789311245845876528145362806316073150806064110493387164778698474536510360923418616846544572721738928301757274494506543182389474837525495269167853978476050712352735899483229316547779730114506673552318300494080499142528349551681926432863803377534280959160973278510537548788994180213242876329170403832689795725324323290425679138505202175494836360356830478315548873095255163936994938217608824883872318224410286066246354844097876896075857221483568460751062334583973040002640663331764913538194164886407055713700246313214686364676241456841056277097610047814139849608475087059722048190506379750354299912953187844707171784661726104602954133705952922094327253389275217011314103961138575894001242711503947634304145221145755528586224818160080571200799102376810848344794827509878142276344517686087370650466036874988874660373242930045196300947905345703657434460901001703667680525034345955088982339314440577555802868103179428361501005838232709821757811329735122326643395838935135791987782211525732791646629617254263266291651860251593365688885418456072085569759263591854071988877088339287279701841772052666671581075828050028645918121149602191522920012029791773740109064917898387688416138973969291028947646803191053773171633694782743846104999099444435119200863322343410397521367423367358261246351259212359432263265095662398742916584345128494169788645131576186255607798242981652298004593828096788551593813395349128249783939496827068375754715325728005348783312675180637467967195400475682037681563761289212078947039217227665547144844992727727346976946932945593425536704041083837806766175237319517853814774684685574445008170374276980566643189008434580468671534820909635706355693210623921606632154846766655497259993586115214803545388822620942248939023803513638007063548935994062611924499459611144807597265989966276634965642660154007820107052502924736988925073530380668439253828033430721712137817321841178078115721801286961148558292950872106068419437557304523247272483758923603534940421600660275798590440276554902227261841187181548264979565713292244023592009228801314335598818051931252610393098690164127219382948029255601399799517943877665031416135806772265918833003084970773017575371441326233960988953910949728819279290674174211097087206792494123275182766011187295712829990340561499992627058504055719385410169004925612679805253124437653143670674386182561215889029319120740385719946834097216303290286487951549483578064242070282437904247544668185473098870936302767345239743411391890025449319629061479270708571488904862189579634319233761351433693891459295331228384665692521100914460078053272631602707963535231954888861174635536087564769782973562453024354176164358014801613908754319974456392788630510936000998173537806682923756229362953924308852523305145571218617303798652873236151394353242869444619280800583263822177959028597515155802294612091975570361500749524062441109047109806966115237608799183013829641254526028400316925723826210233322708681667840331529857104862528918501454839213844046943641031514814571244349768541932134522041734057522700691937700267685857744606736267375322747066343315120848019811698807450912590474434085989749994168477463052782529032818274921957352840100272325873304572077819780467308117812669292775494091012426554715126841506752569677653704127620123780988761967183836673256315316392609819621239089964066119025887119182289362428466760899825001232740794566098923485765650458990546633376372847102195534586179975748548935116553596547877261120098128468349868063621555187601103722207679071903185735107268088799008035353880320662763184252992937503126802698134671262926713927225122627654759318461321452132358749112113063777924126014651706137104213474020279735437567695680091643313543198161095378923950868371701233310478032790184412094894567841096102718609387391431382878513638603962006061409155744969995683348303108261523008326041352968820488928923490552776650274739429969582246461490646743715678342088071518471431587110961488391710650442891217601469156079847024067923605420284648774044374210911852818750444913976886837088569232105114279858093992011949199007052230786981411764447893901408065883456052072210063691321625986097192468157686639884588033125641711162290136496332834338010316343608993305650476013441425539960997158971283389312799232821879574111400176835149372879275398832101140358361889127117657470413354619492829793303012310681595419699614126848246561270683757721009362276095093282127747873070581089289222255299598814613741033854119172297696110247988567224026405801834862011928856899303282344421084733573782007790726553489319848705199402028054564044300750348779430660067372130709148478384720035856529186280593231720637043787864657019180851967800764007919780923098243553762926861157304600622382525872610008120409708804915722074820007879993041491438242482120475646134326888305187344725295019032222767249690342038701429173980951682118713724183411595529909334989064538826292685108504963274985051685982950119714815581141795576435856040938837273525516244218617296565220592666344322876046241716907746867222502440134409734735898697310998943351966079441334853425636807506089954312767194069603709793071061564531428047033648946628218651885886308845328451411327796873842293909344642196333026701486640852854716047729768742667681488008107521094047309910422308391226433088064851490525843230802173774265308369183500029590970909777839360356967639819858827785927848144222156621391717538838411804858814756275718186091484172547988452265755356881020656531415510213366498747634716122295946194847869551374198871436295195329464819251224741521073922089775057960428377183262992404194001258225915029426663744411832073754521780780299383636827889414710304975018371165147558965618133264391199822345543675643028965205533857652442529004075186036882637648943676874014250974314708567129042375631868124566957592727732218653253539582603242287351683826103933339356520973268581701059266388320665574206065446084297621922601875964460253550645185315190668708448511242659630762766720372248379028063712249641933500409061336952543623868709080697758736395469443038391239859874019148547388304148026819474766362868414305836616618528089107401545041472913932670997151442364164169824513627617982143715167585603986998135633317487046181402582622734912823598347046166397637489607985527487039845672326052703687045812487289532472638103175562109688969037960183756211161755355621826538968994972495584978876788094145468340382650750310198217048356154296355210827789718818873660862680714567854876561190063959607623555094083110270678488137851834054520465751623393720673089466173525699029058707140775589659084328924816303490974111784830702716368328830467012291272496560855916032499810453197501884581891390766253926550364311333656725191396823339307049216272025694630419981445901951921746002854669773753840763258117713914112964156441343493462140158969937822793157735773944128439705327213693200628590184978406950600706213743811153797387949648349854627670398348053618921702204352364026247874636545507992750562293140435115255971199781461376186991102823303421827457562307975453570329644323424322693887989202275505654999878026240037708552082741831944556841862802769947494407665405441509556816047359605306251533087087681782489918477780040915253953964797217848777461340452499048026519894752568725617772580843475944509700431147610379113722008754697272016713916173306552926757219758454488595578920289483286115077393352946874997979896948678054918261786700633515816983760663605931809091215888819036970109834246627233310097376764245227456419687966606683532852531518756211869319728938824999538667472746242993561859834893789077564125594534215378622722924015891781184394214887307554849278835205973770442917296076230040695439184365748436306029920592393306920981080458528841798798133506006030807107821468624355783458725131501706899774327179103534745467668526598620391069328220066917640113104253402151528957401468797384905087643720852664285384253306036035935817718968864339619887985488724849844796054131566893234481683903091055756578359794971786239942342773139929347801948274859250104779376410320187277051743658131065519703896177989428293161793898927479183475464720432863548653149559572933078887410170932310966345826719509028263472201482993805155591503597902684666089679436719253808773016382626424093567507929448449313734925360452763353890220414828157817268306682437610403522966200442207599139329384111274330880401750354225616556346116863476103345979981443239830251877303187572789733057361207706708578582865548892590244531802588625496472708498667545066426264787752630422595315858625773077423198396719144226558036821962815660327125134502223644850718812386886796174958350461778800556662012344148467106308551705826768894629889461491256714807794291821407273311956262011183218752951363050444301853545257496164826121603619039503878530356650251107361179695635589681952985986477419839156193158085343089205555657939708479774985989597708884210706628705869407601746954523983095510914089008980383908730219117641287664594832974152035201777474796078448723481814096698567652661426203281974666481218302669239555941673019994419873631908536649177833956493789669674106752736983303443077767889029809971413426930483298104751248863722648350971064317657051760811578877789376732441964254255052030254429455035511609699179767737557108996981242825445265106854389406435480353294937960883476424812453063453484958133652205801170522661069135104046447371305325883199821331611372245441184990143037902935531919388341895040502386439505026481380122430985645511586631378422747814215948362351583585527099911409610890491937166570778897530617677371758270266704170726449276225229330375314657605549662383507357000144489408490357443735770339958094974979965352803870104959988997582347705092860857097953657460788410414402318308788239012785910233250747222746352912263800465615742450869320912719298315025825044812637128703632159674536935690464235032298093833440362633341606581350581063905483133850528290003784842294811786663019645391592012898187314511370270913164449731421829140549893203215166326501487032242042087408841180173183506703561317052427285756107641685968510553338207646838445578738918620578229200136773707930463527939192237896207894979379320762101801414062019383405409020382072903107627268439554605493044421359831001159032885935874231164603368370673125975017636186402569806399014232929841684846848325451395093459755132874118328671465053778220268103939034469966820134897166528207998499569321577648370925264627148629155846156128843000019967406859293051538345024896930122180843263514360461901690435484448064953869369747807210223721844222776133599985381417936626748601476657520983563069323517775226732760284024829178086862279880816057510289180291232928243353037132603181457549290647041609622998858052609597544214668294156856070831363821953384981784631840988350456794301465177011826543245723038072303820207636406201582098895799014143224760758101394076803340268167266119714328604429398974517368178373918571427233676463319191871129064311381023375781333411695581394104007001620967469805578649677344177756817754444938559802279092480088927728530025794772789621732806154899991021916443371963040143964031116509681529857806593014988966488095466602544374021236765792403610897746000304160143628169516011047864137432194689321735008154374728082596340895402006535361359970441793438516213418677649637562092520924842547498027894296826567632193236925308767337151768634692440410134030086591560419206443181331978202083485328928391884141521845969200477295991431884126042110343955446342005992266126934896118750036139429315945990276435462097998039124821939767722534495582086550927105905602346451312009765504624788261709698590912268716343770630404647759806309808584104839188677882313269448629920583129913866875292565942868991237728096989448245172762032604126940327881184807140429855281816562994852790776305896220551034988168669966851416387916534570969372433851834816127329693484176104902485894277483366358722262132866760692975563075365514908859310175313737727332179106694534037910591179507490655078627282675244407085202302764517514650686196363449183643278408473769734398450086065569473102914876304306502948274686596139178334363462860472041754514481916717743402087458635228852583920507272868614483341248022214711211783794711227162160242298538272646507606503287949938745973746217497831447211219247936128719833325828217618159575117750996597854771289202140563640804871459165173946784626651365875905075386582282164909219608597090427404273638029919842294186608376126133850415988146671136956795832781316781565479806775425605079022256887134697527745302857251493585212433193342962152605514240748466002748263934131654400774662987060042265756921626911842214977922839934337655775841859414743063729195759085560644330006146235114450045532735863678154133459325152022027952232859490075467784529907594773648645923506437748706552995237713435693270329281376511524867091956490840881318443227000771876113839323473768568824647547517966369979015408076031095022250506146793340024280196797450559514251481983089425828047531924428113640069813847744289451134222614066418337698826257081912984541001451837456642000971333034744943118539549487324709773623928965375757069877007588487451280302632873852421014460156133468852634730549134899517714081856381494300881199926527983595266973910664885406112728843044395701067407347167846815909372871924837484946068646491009135397228919959395920227255365097327021105006672362695064314857897573244702255244651878805538941685934547714784870071338933819332088968593585358259484262044953507738887891734862770173494238229728274656679703091889957496766121583216495477389452740393164422493658303054168960759465756815230033504920069900820078457334141275765796499907227925973457129840283411237480221122965021290320003729936808190005760485794802890001174998085494703018923696813034726401629194959223259801155442137852398909381394436011190020744346125472359289688602534832782749763806764579266848531814674476974108307836617118480820421750572457718771206436007847914830854147981023743144145230347652965850768322053858938502859269962337576318341593755550303328046966071970642657863909392330203159001461179844994005141258333915026353672680618282306794206350973439400457139181889220290382571590721773373320506800278430939773657006905499530230711629626858647801497242980648458351617535601022777466737054402408436176345594848503446381645601166009487713132588644358581875364548877814199812200224083218746250879299279221659699316781697809502656605213790066004733119514441293330779012555276288286548331688090431623211182968871123688056211400487135980787736442097122408394760667227296153747987247075244608357349158154064986760013525943762477250343756878280529128045602108899788566766179242262279905625788128019770036494822895043037466118340765283642512623629019463987659292841103471063726159476724507418308380845317086313737607014233019653565655069105141779261500010875713453354222966115794475957046154420707518979512590131883017657955998774661740752104821003877322195630230795712691484976206676882371989607452984552236001190225988129147087738654710124662712920849402692922856631593429551520017153685307950255965618653663943968873268523950921838080299389185660913538713719473070105253659898444926135343236088872897750050441371156548017514748163776536928217163733162741967792620330223755649354737903024596909530028665486542756603436759212761844589056273862391056046310018679591311178531651868685985705212877161241385299457785252584805919094995139169595317206786338541636400710049231065468960526602854677414248007973879269146182737115052451737133640782983509450021110826109539287767687339016056802588365077819135297652627691015393593928597276132907301215694066867470309815173322198586091461221885132755108748364543016230789969543905871005398415600240898477371022909949546545527066327826463228992426584280075940397767806256604048471444621313137921992320328851656462478981715599631318321311739011729366823521844769885479198406552499801477753714062246494271815730790710579585602960092202092163978302453880752639230504039178580140614596777120828103338263091916758643492748325922424198640230529910853573451251526201414175305228169905197343458408435786154636734874598540376616491028957726362420307684016924870178730399415203436650247975235794733240738621890148516520148136893080392766975445721431998563796723182006088323332851190792971790405254894743563394379943216620831152398038965745008924572073016078976319096762388883607367881758675145234867742280201919803096307116312484643434188553901521700744773607062660390988442840758064766375017333364026118703580994021274839672597405273904595975443819275308345015753311083439156514950260799867074140599627381650648979342995382071384926320211152296534290655480614410240882533706073921028624747517947328846309033068500262390899928664591063360129102615519360242959987641659762344898885800425919239417432992926411216576550999908615813376502481006380452096905846849395589272329785411170191815428917267974852133468757293406389818943892953556827695998886537725294254671597229743244347553400810932099182868927549669339725983803360905525143968480095648793832888871522762169033659271989751228611965861848524290277187656630558075036323813651286038858652561360713709914446348326673309572467542730648214831696331013722598154881731311149321316419684599332023008634624361517476856178701266871649702163213039357810814007067175799958981506227805146764863586910218755464853170359946224234235464404023023703401835206370853619258830834904799508873010595676568010663071312918764709330193650290915868348242886474031301189232466450389667816298331995631241814038338038442468237278253115978783633125839029728353324696494314826349117488396263118041664623112782422062043731526717741204459084074215958426741972292385548003507437935301616685691274570497554479808097042352614037752305325901281050680677404832441751764102875619577441645050021717664615651838045007158033882340151447753020629747339840980483226254804366110033007924053109164780834457994465933103131558222550212251865081814960947243937502796941059275510225048513791178238232399645394149667458945028409586022414630822330836067827873068005460939986198187547526493314863061555681408850208931657626464279450223212603145837208322044308468809715003198069766049990202453659929697966999553526089715742983051669530754510275370104269590493244856148940335532610704585980986394106055321821996896073432579518062492936998168539333663805982694930332236327890517493524847608281394368055949113051414837483385722029133567236138032607766763146945063084808137598040203831665436795083992947870628832376518598715036419725817542569465704755833564273336817173358695698348772550944131492528952005124809915555959333905373598425586263550657893647594514330482360393439370156931381076229027075120037377433801672768324999694687556322758274768618143277295404438744181473991693688003134787478861763133518573952263745202762337626931295435925784370075311365574641891930785815468038447360033063139158561233785827089762890280896658796067172233472572469550709399411307925537750546497220307734728988078349267562963317856947567195144051804842684107693411319741937800493382337630911646605354955102691503641559264984439688544697453645740147868589134450048349319518864317459402632249262759996093679814845625823742786268492880233215259442254572825527974185676177833109046178543504590964710589805783671881407723099138803648200383048460329174949895534614787922360782625052376873821705943044331102863239660043932906676294631808729821350254858464931702318134245601846061125774269854113223442289649926393807109740415602108827506463987408550338106073646094587428962974413467306564698218286743577551866722598420555348525048764578751861952131247670776661576078393364726529618525776804998365830375062004739133816944048538625217850274324256325158869692935641674045604024703208153813184835414862748550792344705995290478205647768630204230715999036854872073853013886306673329762932607579303071987997545415401365767238188561859321179525719050383207868998269721690925083515165820544768508342365799037132106251512282867648690963776007735645074161050735694279030131061712988170458375374525589998488925741005200555907216547319138868590396692354185799158810706284788936606402993405120506328767789544129936609749854695244283500909214302476885395338849661087512970067095860754291420751077255619578336576201920220222225535760192495648752654955505350223545759645414229543178621519987994924049995405293515579231956257200692082462071368752841020974565966975333699065976077239163397013230421030695901046014551071705550302771382744103646355488289870877010173275716685393228485806282307807255746153851045889971371861582943022702155377111319961833137213976492112030257016306026715996478095817809412365326546640742597112594536906002681693279292056222766869896891533015794373806552494458030389201623836518942575375864083951908249855050205113871987545451951532219984713914140903884869119284093830575984514480728650192312573617841798340759892088278153499404557964282036807448683737813304807349675477503035934122695141494447568733417076175002651045613940002275381471168985291265295495675351230054621597569242020580236645247663306647450726767385061677452062413178533117335521740601441688767980922675263021129400470735137806154698369803072316391821430478007549077319295112073561490868642225377250870617529248602357630246454774025414472090423268136790749221267841644870463540915496326091133766757285271236089582758836986932526663925278502603103919464694883422760630896179450087539662551029329651573995664736144460623897883105378435454922323566536620129231026773124073667317075295209769939841848692873069899631441914412682745865795989491381704219058126715476807160211917112657532935640553560122250840645995890133188704246504907919418076990329390523432677483515667531253492087400703394374685471479046557726286611838018178786995942958909435218319152734917188509231021098960264041015433146473366431629302353436094516501488804113079948074263034409935149793872578075833713999903415570644108806545613847004919977780923190765879021961542815074774850760975416232554053294469935340094697501303955982577264152243594681142076897826622722146237917869886462074545230645689764500969591822884372307207859023741334268063647752092289439781102465713884044513435589892349650076142870496833769961393667873201510956024284872165237268005523134287707241428535530793165162385094991122382564173653788292151434832185805295542290591621358931037363628269119321849641386437980095804062293302263469908931136067053456644287824415551266941583948568771859412648740135495364781929470305113131261868199302839846451962009229398573837333378726072714302791360138161289089068577372603290889922929517226113808727356662069589651387054093780521904838674404169729592361429153943071980525125476674563181125274377035423524992661966847718743507430093435392948032016502803757656036314057897391581379932800886556974452224647137292034281513005711308350777308267556391178861659660961643185313333620851986035688628307220637485697770532628363395693624575353167558506001526694854189667960836022987987815392055375207544675559875014453592948885527591441374520811406925940109553537343126345559993987879911256954485252476909237250132294238305721535921569482830229274470023144386252684434287616572970223899225603830318697487006456141505656079858493525708792848795327401542288748917209734175516693828888108101769909962093839548908165037625663922543180953549949874961717534363788751408142727698564779384805797399466791612765189159897255574901346746553869420228714296861845020466274903469572194834976947669726004728617168688961233645811317747143806674777498899493807494828242009817225031846464798922271694181141334734351662340081970768552970970958373814344907505684782641080967800398820998093567952234673691058914709424320216456826814657863386721030494584691399938758692486723792996385935444182404642323041323399506202392044194551061689132191488603028744683725356957411544261767961905920860784185700055260284387443418991851868010660376757742192093932085991382438280441096612373758466618607047417565180208951489344662088503008969022345161040421889206706923854364288345070198785841733063711636067545881243754856226717067537296187317652920835259553995394925185356767632882100847824479681809141361555027089657600803810210483970942179740443983145753830640958749967167864693779777092177791174476309158142493780863111568176609826657337008247641386752015405192136308080445117703640963472965689930915749741732962676554219311750511688319650892946590093287991786220276741209212458660181512415793694452078835536123639522296718726742018847514054775679430588332501114628734001792023805338022949434698249287896314016803773664079335388605196994668416404202049984534813110500747554492092917216979139646579104643156763469732633265655440365091722935720609576145663727909624100245784456974323249391954083812233651343704378004272870716094740530451872302395974924925897169642129271343171891222123991147626040748328529022960528718307204315250725643756203991556731115181005820900227387941345437878093713962636739964456954107100788517601699648733702285099789437809609301352786542090999394307420204229503335761734468607978935992308746442980668307889598388909371019267960373691320303276708079915956379207599009098695516618185780568447049539415388268605220664550695247491203690741489139045248087221035871632470835893651878175372393141668311571646300586112645905340713415135670426973437402287727853492034752161985702369787860803996455273756562213769226557744839821645546353241900550006362034532641291645784860688373739495163360047492520540245297481570618019052929527831325611486952985833773432966919292233767449257181798266661826060177929009991902821365292888751043216095474845140986692842248177538002134202472243197477945855898026737713952757368036759862794915017142001355952423707699949815021873804770556893193864295445528867733429216388846159511129535612203764842895428634017470695477346986571481126663587428167131699285547096382219337958967757634189466976089250787690770154256014884575266115463909608735916135842287523839202719443002017417457509633855214596514235038910730937864224051282578203368381343870331765245749396691805837905746206650879014439789609240189774265458343280227888423070848782040540833140012129908263334926934634103965623887049043717089594015487058411918072433256225351409767203323782563875215823101060550246418532876993096829227012488882557211072774702414029866332622095151797098940293413954333668294282907046388927835748479630150464210280148026643536726716253132712841417476218080031741364435072562879356336522150145760487503427241453274493817104801199163398119133281399624850493799404541651768522723092357381022894764814338370822560131886542291993847582857233728170124842168004432024715946426129822770051871977252468292286566686790081683259749704446246264672300060804891436578902229479253425982823764158415242028660863440993529541529541175719661018023505970819264348812872386247290846945366752087353765517812896919786698367486370750433920305520314182630123782635322385578524084046885430489508133067709400253565001877192100350339981027559253460192578296231840763121940911416123684919849538200288574261084246254123457544532211679374129906435889047223709942434489931603214018673389859214671548249838293070063960397085382755329879594782300522944627846686455194353764751494054776356493984815000914489134195767090464266191703235205941220717848942041157588904005053994428574089833339201632151793687420266072346394064681592978365175825211518249227183988469896301117621624820067389411384849849788276228571946058568039040415316708240879452436221664390136100306717620176338932148472426907366313454485150960668733290789621181654253629287080739614014808313304233964605147008175373420062277365280844826573892949556731127625147809729946979932028246232013705812115430359679833390605552538578502868518374604035774772141748746428724445592793341094319240323561067399243376362284205686254828397126526293061262881592363030754549253796806320300553142095507870617264034300784466557448165073244749347666205602127489504939394175299075450027618659357358047823501215971511447475195977763040555706254419838348015347236126485748516454979587573368866971670088787921186321660497189710059805555433598866538269340620383891052921687760777248669598642688184326010670252173565920352580702437738968159434229030247723200795453297799883936418901817994504977235980912298974283112281082658342432230231324882667879954568615395560940572552532165187675904561960561960380165854379526149273446497112918717384028141387938435684199421914086149100029866444607778077050299212944854115338946030464031429195515964694226098777240614917251196344144985792370996457667768550106367577021423445545380487246420391674611576708912934745630871475540981246583154503069963256644258904751889488141579318535543397655988529749393936124806955104825805783181490632893022416342886463975353852760611292238179807036604823573721924947050379627348417350768378493651265050621817233708685364080805444822889150439090955506705034068596222940430677609280263419993304999060547026622528426703133796017251375501899172944647008553494801369240287802433047735419554881426114469875247873100471842025252647412529085679649324477854573665524915939243361803858727238396046064606954793065905554818957518515722238292662170608558443571036538020122937722572360083717192892889984176079273010214761363576872647693646554070060471911514786143202749547111277023834221863342442630537323902225547489954618384648726734187554936551556867679279517696574192605382783748368986449161916364120911081960212907145661623188584966500658774144081680091724216095757150393513098152786373241303649725695880413010247674231683918797797715943281495326262462692765929490327283131244255334884513223778854062560323957585843954500460466875324875581031716080743689856298193948486386512158233849533782476807681479561329587712791958153330929385993972208816886103109470575911688522673183796138302340495220494151672485471913278991650325589368155893843239897719703146530463618207122791585765902266842016328242794880995377893028383554419467165556393561612021888236139310570126940070072177200693512000178528918338168530826028878273934651443127313224233667776664622289979504107321609646090915008165859706493947547781616506349359579424880905709849129984872459068184372996443977674414714870006995264820718069641133416637569727419187394507204693576970104894222851074268205514790221698613933970281628476092142757721547751948014578281766496282302868556578037602785486393695202781465164147087480796861606881864352421987214930088692050470743739255915108199956921051652217555175624239307303504977875342739369477291855491660447508717653029479907616890941336328613610972420645298372055399678801469849508685496920290462392207763084820486667751737460622704853916118395964901437531141240689719275879573014481780719219588252475108889726094975313758009018481648549287048270086226565584440376432591861814460300213330072068226173474388287702847661059712484206016564557090660877727079523901055593685119614067739104662129146966961176768987771893745449101014235676246978608419678201831816536298223488071180519462996903643354774475020322951047346422160023356710600748931281436485722650184663169852176226522797840813236331346020742500740131891390103994232718399448379038669429403830048734644934070195856825318194998720045407887555572920883619448896631803315068888741217856979731674299463944399262958572888632979768748401603672431275251881893980523471224773215221067522257307468945458199492214145060865762884643928149017022412347818300697123203661199377509642892694728003426231025469237185009572781981117490690731854669285725165058470234273237006289414977790942271593443636435725421402132820433009995606497352619587037810517943268467762896779496272544671231692413527166826212336231068346619568375867116906787047013519413624451069262592223540091619425802819343741453583736846989457578312624216154095611525119395927771831679132308022350595665989519571887764962948338673330752729587785148954157813849985106975636565976653549326813112152705484932789676867336550047271750494595485541013171028562080007544450380994506805067420984148694190625996925088624380586688686977486852448681964609458109516996624794494154260930771677138738929886371453876474278357362707760927647682739445262152291238028363534792480375957515168455400778371845632327682923527701468615859388509546734834499940731405613268738620707280278707040809705023384302517091821401403815558382407945627970395496082928714689906527529367700750416495840198041443257109256240737866848662263857695734746071976701480940071134678956646525667415273600230015533266201171228492470853300154490703776112964417128580875111831167064981323529900564606670862577743214415893351442017859230156231464689928142972578748363333934558190812657508597515762287708058577709284631986236294738457156604013821678369475930449141393500374258379036971322188359143587881329589509882572598457700080024460163010091721204760791639686601071361942632013800622972571227350497919601673177199823345952672497205091399269267695019662332137565488295856987529217444022495506253080118546635611985794853012771165954597886897855559555191519500371171627369681745491545167838346857272281102853863231321249106551924723105325779874119138766883211025366742154157672351567267386352446304029849847615205841404104976329949398571797805664117038835945777914559495203088819012443845246214956815549805278028639224029519489836807526795120573273306008839243600103941321818562405566298467258175891443849683211467969978365485789934174085797947339208698813251783113804255369686853930412053883635420297374617847942390416318615392700080646015890990608057908827384423123131657841038646080965380542846747450498592234712204055445456450765001501957154345135714253506798687878756424010797698272202162230948167874378233902187477112003139075050853238953308997508004760115043173553762677298457594297619303834309170432187818038698458656060134732528673251666104687838106649283530671293853765601861785624720907672138468135130572062531890195974385284483819031234047000991627456830889185238148569038792579614443390327820169717065794426435177799408398260276359097236991455214784399105711063474717128548548764295030522143095767568591728617767782830355767302577897202324272128596598474370239493214055884335233935064141274916691967016383675938806980012375900535543289050107865559432562337311328974030723603273309713264250251434372067322256010702417369576657993935130256836227850334338454348176106933891260152498672699620787209471615464216266444580042979402784969174870626876377604034499421117978470219627706419198857725069852836625901518498566733735345361727957476389863301607209601716858711975808248652520515086007402467754456468220369475953530212666685269696335208346483334100112267713631471344859532027020671539494383846413423447505279351896930311216245421729887434568420356495237481900488646805098903662806452471029024979823162750322379875869780686835278840254793129375691062981401596156563867562009248579764620472007459852554379374369362714888495006232024056239600463769779020580595811203756226599070116507467962025308055437044249334405477045468734147386626450072802078604957449678754076118894802554720350561152825516457641512033760252552172997959518574971222282354468687715183444988397972917591322991302489373927386383750450339825671764939698649568965273365834624136371770790365636811599392689023470345285607627720991877533196929758309931794786962565527589866960577753982135220792520063266318004117615283630112053328234925045612601333079422097245622555187534341750266741307268031699006557433699552269303808415395796005997778289486371604218475861392789078479004582645182334951501763644374835200727461705754978278263442609200840654021881029138661861678776943329271185787495326407918125661952299624316646632429442075686407258919289349781680426130651285938166907694142515532125719565676328557232936254563934201219919954568135248559026521720039612186220856337994097340680077706371176223480449919111438905400406835416625662880104742844503389326058730423498298010271740513375451837375374112845618501514511571347909362875059121796149859028880208480317300396635874718254768497428176784712752064736476520425893971250968208438804284145593035035112827209347640979745351164235476089278858260495994906894337300757588662658863037203621114212616106768574768352774013200736835665122091291059995453089974392395952458670439091760001550081667651141485719511202229987742278570043612783656689251764847045289704796720991824481145563254247655961513102445182774552345442268746446848120597508814961822090313640009665668211753143562152103699038924973064379067002164105404525256354855362675511756304009737124865929406131250047260774825866339973954058077869455980425185329424660576176819826580298925466546033073560779314099686282873916075031870138933158342386752757370960431106815229359121790507114287732399862783728352833684358290494298391227380493888801907610316955254858964838506998631323713863354262993565598475922683490478461297556292511702436050288383798273827731337472330480050226890158383976070135094564062206335020247977803807812491374775581187170099393800888286948517832090063506701302999006008752444525784487675446209501907559054432004882918524424815355087528304913851838005206916017623338919530409702201241599644046210871056349461436338522091366028248251104330873681031345939812895797393282094865729649867554007883290903948276179794392911053057984419245925433219408774995012619233687837151636441231047916159226227786471271519867067508699334483962586846772222137362205623702544763315686410524882355074492234897498943396931512171107785422440419389071037740287677708043909152262344866344806902956178796023316980630926583109397252518519928584599742106746179826596070894646195527667837865943982561687749381370577585533659609245210230199431606205687268221591793522968180306902638319372110658243107619654777399264231487232787075476686403540825247131307963359679262086695467813142398851526712900022341038758629044710477037692850822213900936611311372640019840299931826992748329138065591781625217296017330878106081147004807896028255992035846262205269164273539582241153211218236592864406497355672477288149752448851998911187092598882212145373446471578816863941445557978621760209521567301931641734040708973436769946483361642816740642045815675785352246609244115514387111660886591999478786213244148003679629050527108450470698390413494473085758309900667819833519894467259395088743977707594178600431560169421650033584793481912129053786364811546025436157159208933996202655318000929566870531234971398084572697723187350085299186092406942721484266298733209725468291264156772928626270680758740667020532845575741881189049112998434763978793026749985083153995529051589765335691384852485663685112239948421112177692722169706843100787161415315249559255284314462459972728823300964460002489438481617438810362777915363363928678482270692411458437830647336183748249235725165565629362296580248946090917055075187897939154709776262788792450971985528333915942409430240371169135896692932189813889320784504393779582131035177264554859833056239122027815598814737462633496145940650241460270387931405099561935428000430881337588385549568084652984377248709874705825450970252753888244069446740563805942595852303552524325785680561143683333272014136782141075981636169038508665965004741899844393044962327329972170317119865926911397741597984954525928261785848951766145762476497981126773688583644965461324493952957586472031664643223058940515406278042012157001145623791039006450959199060502845440298750558072362094289272432309843278922516538025596276607122305469228676110897601974656541244711133349370671716836688124093690528078539303689200067382677808880049623581005778196776464384959626466459662174723656653631699777127728959472684549011158219076495846949591708652257468825820108474627773091129878042801091380208294181401299213246737223611691192627502993221551892294240066021201933097921260660723648981691734035657107650514693140229302813180893060765532432088357099571789825762097782877962508006756209725660975636505600395201934513389901008371014644791176134191615904316222296114797471702900578984113315353991712481637153684118699315019512821923269688970285742162459557428047020432018214822463291487501004293526480213863933209256627583610902333709624806534701612457475492051474882380305172720440475442537609820254289182751380317695143025935098573095330185576138557607791533844478120529345094696021768448139952818792596381635178864347930521561538890271934614323033562179655218260764235588762009077314336173010905384407806213881255169153393574511763769362612746317278208732035010067431402797041810791639138794605128711569828842952335546387487798159059237173986247290717975444352007506686443439737117725501474010951875929779370052292411341930457777735165774351024654645811289648144951896702259544810956179423381871597330931392961239483119675480296860376770931277856617343972337367896043910713068665544870052527655195910417395585541823949071460191788227313619188977867792851829028352084848832868020071114419743201617622499926966739542768606097530915104116416111013938139461626549434908445048131868751488236744252815244390991999511893103075422422311403389617420502792345911431767409149732130541618561830337033645320465157830559291283415719793517661049929155740068669098396248994759274786991076740193079750985796104313633007892664924012127428462996185589005514883782593756512181139184951849667282053360249704499757215188437080060762393522286097894643317007331856221263533075242591573468843114003940987874178554255480225456834222543603240655495361440438773739495793566810697298765370334802761766221080691891841198477003332959640470785942205396104230542101273001128919084452334979069842170406010266383119205343985895907788746471650972945814954859440019816552382802553710160136039594130434974943171407656184784423416085395486981087578972979170553294086774589295876024223001954348550518955295519717750385704716967222201748538398766234294700362021121541764968246324597648671609645772190429531468669923415023320959105960147014700232345627577061589782096584647875768740734297933969000155172572566414767689354939352761199346940529443520396150418977387208771526402403461054883578637890320983159028728093614338963652577886964930737623132071813461962293234394001706665185286144834080372285775698297504779475914013313969476801853199027917360367971960665690229651797797524548753049043204525534743018074727508551131730179276222925133529941066994575142287303471982942472747679521260600019873618128352225889134041267036059457649458010226690792182090006818312142476997450332175001075722403788424959230489425692165324974335851459679481740439290623928056742194339923892519914696641575361358243026393999587879473204309523750716287057285053359697047546842418011902223724592692247896518654687777566142469127155201198639614155750026670650278690497393572340147467715083348748707138317473109543331086488041107729638878735555494729960517697177295322426696867542151786795368555449586401559764397565326958965771787447657210082791049124287054717805851348040962894707979592334847389549483668309910970630957159056347205728967423892125146982573641358080072349181094720776725859509897872807270887026227542256055131164360044307779442750892191651624073910578177537611198544544849442426161804028813999858521698916405513092945176899829062190129291061292633549347303730922888660591297242733119042026694216566956436949560467894777645068058190255485799526059686145883602861464563577732185392389326750059079678148014523353958012297775792197713081791226124512286550700935070464950725645805716381175565442289341923051015577411795859402441888078437644672415277327297963959453501992704751108133667483927928809168970817094586965182675653032196494713926311748918535332381628645675257494248802365269253011245275009905725820413098529777827271195925446316648442856793651048714427914907872325962217515351083831856659343762461008324379826612255394742201209496086768774178602985281213932762244253837591119590904756937928383056221949701469333030949787776282973725002034510064417522526896381145457850114488965769085842022916050927399025627503816793153036255845146857979493797337740996154913564115933926590490135768657982360703296984437815424699674466093100703813893938215712248886557274224069148874760498021823141391490728000519056426831126611774082520949919853059770672490325418044505077333990115281514961707196777295973336994018318546563900134519772592584915227824217243782891127014210897266512369117076797107139286168661465115996031246857140226741612326105456827391655548384956454801344917400390815176479195984159427425684136411180188060727789097704948907639851438832938865996330682828742367495927743371104850888905226034051438727531355860646372374268149990341617697974175037714726780947390447366072492415914987031089719252503894392936424777483447224454686900239828175884063543631109919619582499170385407335556884901826052407802397201100040820802123695394765142967264008214182518559641697904732516918262455778766215746654514482814809020247281702987257573595102543767652940882115873739532163116278968244912831448326910591405938474567098068553496395522488126033151673288022059701928941140248496875520533588404763293777630091930363528831865035164949367042228750152863322438430936218614214000843995732990390758640751038790221811668772756459175903097497262056608519557116678721032641324572924126025662574969269944600798729821718118038145546621190265349643266634678355514098865545978534514926637860828798626155518835069199816300805922104187341024855521306918752606490094696042047670876719747827206141691056034850919358593666701699866248928669790304111006919990048177345744950429103312370392706896522504929669004412639068652862992607930239159633946187797763166100779576721490181925349685333023261592750226076575329394904252906327969607642229136771708955059239490581226183507317236631669325966413018434587852948621471918003929416138279168227896579487181058957559683682936194982275369157828206705360843372546443147470647383903893852764894570632190442316445571057896537843113711571957046075805099599508768872386975188687204533745704615183955442592814940994025732631366836542041726623143013611734134043975322709623201702022556562360665737391813407914545228920196602324506947837221647951136394542334247478924847022872045385971737119857858660801323825512167534013561486420437292504393654207480322108325125565133440291488560154848415615501686093535097585242293509695374168620624313731850370636579133821629993349466398141889981433469464482981980367780725768226296311314980805412199266015542484665673878404585118940070565989362876077070867943471421478691574657407764011915765658110392503308037116973327407154671295222271968168750148165594089011727469729588744039706456658718054472152716262965973037955882753538096945078716359737550259408942636958012868310354691498604431480886385642080813413824999887179255828552296186328251719858694550239213982707952477386395451383961074312068007895280211732882513929927179429363415233497323009424252231447026126569736536731551545190740972623922534426780819617568581707172872710581377865802379151541562970015299721071370918018024563202378088048515765934003402202954053857755928095489642434674444761398407636598048268909266372962049357133516247606996077401194843823750271405348567908607500350213074286866438510050298015415407599445899291035936951150060297017893889713677623229870920535405720269517831029086483071923385509384618742576636412528172237128939570267560351374834788496170092087079414964506735306043663556103928546183210885865248857252632856725863981710838287384017024485520950772745562872811717707686226273748883598918678000516170986854736962068350478641723133045926281669300534894570626067956823047807123381842666926651781341063262470677783970326811319748176643897590088583303751686525107486612786260704298936172178324441020001212864255618817968413567511009093390426084531151034645365329589387097994646216776885675093608082641153463933249392064721329844849391859326270140632533162507226158650695366767113923084894299121472322682227704152419530479472370178010588412898239376799006310467088005182722464063784332009136171397230945066157433884273281186852021672368322642150294928680841402570311128600498899837706680576686136484749966057190492009231930164049120147876986936978222467812968105893689524563928708160720901092584937610710274561128148636184886976827633350878666024414049838119407483748270708156781809227533059651317098399710965522436725966279914932439123311741802901699142099678751779996896288461934317227992228365223614258216984491550946972865095926828078743638032437607015400238980222028563416394438115118207390744186379767794991701582002198574217331286584625386954894504660693924014611568463882695421086470149142996889200827454431087122043834889119112404153248098694924789348130456220702824747365199440293995817481921813409052062807916358156422114619722763972460948440120460148248493310983012126808322472192081175034720553992878406443718750555591657269036591074071522209074535287538474509811088817778338025851957442591258860802071533861910541976857558428890111375124711669199908314780947401845374843679182697356856972023754907562913139366318962626518655286092857866516381528960480573972982232851551856851947052872928911829689039155261408660821947264515391291097838320368297089820161501885482370187729072196707686244314059818562714429563642649742580132359987617197749696409088186261948123228154590540917994523869329403125643372737548937283340678731094015879048293716794373532669555473477828609863315582079567353563445584222264692477050253871474909348767505243431442361670497290069098058139532076438527700492884051248278925337992223130388147350785822204152699430278342692057513017577998164447368918558651626755577778896795152942940887052177771492912666600761495274068689158775769692913656324348212236505662284728171722032601711156307042823807367216437126458652061232864498043402605776329452107233552539730449456046816174245838683479980043307486542615308827065208953917970211978946623000552952830222725072800470662107562881069281715104600206647950314737376911210447335138415357209462698182669037961076622169493968713075327620641371762182600814377408188672363289813665360195700924041194971465039151940616716593634500345978823136416422288347373205431924734487221691206208607517156984276927330980986531024777184412154168928582730282784755774183078570131551491429158381348411906272005520828716224008647978456555712919652690325853099727518576816513717816211676300339242447403858508570273075437617604230878142307331075899507873632049870009916348907156279039811028827432434671368771495349313150647605256755581354141251270036703991668317596998317696192058934755115542639051040390679909324338600939111231504464127474376058220209202837139872145116663456942893274120004782358889828128567299106481664242019549211949976512568066835565878754810576037061686679825659176130250112052436007748057621697585799575940720512031947668300359653760791629699882283104288957894209199110498014168116668772734726853817712772130434462808652856485345865913037164408584732331102985846374043864959121141514872918868923893751513922110331272659164648237318050464417966016761716580900504335228276282520810611824886934118352309945662913868997848801176235919937934728601083003232541560522182949774114462104077074185402998971316098868600370505918903335072708749607163915133547560534923151497931399613097302694105794172095417290309304805569897248580445514879605493574494075258377434306452037862092602555001615754808261357727848319302504134955606925850576471109282512409937282686914398828551710468715718606827152958363570828937068258284237665621294884136778437110071190635711770612494452212787339677775374545554328113996813766916993902447045094821253007322402085498086522642635821010193773185725061308735096114850057407665000059547523234750237225472821792073262846737830849971524462623842282499085018908364516995711015990723237159344350629237369475134861457786599860089129330869685679678458124861637626887627824260479588989945646791556631952307466747270323560053236303059493704817807363680006950535145754661269145223478320108698810912984191652009622718421834098575616787397843792984872625628268523732760015568691443257668222741093568900617734147906691992487424360626789863517101300981168474909280736186442303789435702365069016936429125286608581211501297268530101785786156952349735357994330852428179873229977257796908495932606836898911474185271832128459147661958329022170671278449529179233505779082214039156997240743807827040945371833416407884703250092522917683929109251694453240952277713163238180026446510561839761167400574226774106124983817461827300712221630802288996199541042901017266998083361989639360516616221005734998009891562515233469126312242680826048789711037683024177564788004088611177961299044302623864986705840587502153668897439548786423949688707545467194435213084416060957161218446093434632518264902802998308141866889731118198002643865630333694811689092558110382648235160915886482597732808325041259981894073783500398582072618826641147288688758957370864494261930591317979239962016156421817121088413221432113166460485029904140619589895454190100427080462307141137301289587121837645517349962476687663090043733015237682203689259155278380782303389980694404825756022934182619976408551125398190979169998893955840112311812188977009255682234481433590273004661279187017711485649121488491138080525497431920515553801309409150090960875889739068190311693694761133479730578682850136647314821862058562320745650566937356487648746699320495709286402364634686151934167612885380201797508670500477100596401796282603276896330657665414364447586983576895426659212033471911761872876359972507560791389520307274724705550655631187743634856430439038205204432502987118405275215798887946010509129858460260023929072218474151013242665529829071776246848757640674958713020387944499979569074241407555484317506593245401878660559476778992005613381988904124869556605032603244464836227289766123403998870813617295982673488324823462004990350274611619376958471324625554711751768086443086883541793993359858161952671356045228067392249773628107189442122971363298521050857595645823146714631514486842828677728531860489241867372642344954489162348272207739964936494260073645057790021583256672686448200407778888504388867343442724831951184616839936094040427708320684616679848781148192385654428436160733030141302962871430991403609336680208535377786780168824556759213907883302464980025501635881463602822904619000550141459669467931804994614389626642480589529235430448456831122362901991235433037420594990459207641889321632419814144419617334663499251411352844784999027270077276123694928945159641590875828553652745363082972417357427570524285643793776234394683625066453275427467580506513080154963005954969636240829967704541682033913570339846054273736014085862290826416902833633553813011809046570687751255009625421505755601905620896759795537397141828543309852105230846423879562581494145254718822513998421166410290891054934089300873446472043771653781450970909816412986110669208629486006855977750451439445934384687737934303189002499870187497470281528012062992940682249712006678083315080139368320899736287643736977939112991506172261414362994922503165759569384132531451498992717475140246166743915452906578241990736178889523216249278855666185514641144832805270299729927694111496750634462839173319029775126588013718386155936702993804761044246258609541537921974825586319362853321777933179180412190973152349896735446960849899793769111241868326710541621638510825304022845897014908154904418518407338762041511375498390311324391975744888450775326101113124683595082854010384391321559431876549580331943444005083036460402202182086103560126567231051963998340716251172626052303596473461020894223782079114666208926346158395767959657996632945930192510299681337693955736207194271027511491253423367131536138360866559052424072898893312244110615086156161620546187750041182986562173889550303841647255686218519158353876597669967851292377670784575989223597743283197699356563622989773027735781031841315852244313144775616217126417747710113797619935813950649491034409591925779898439966035054583501581498897414094643259543543955332742859102175548844483889526070523126338739717332348315910528799894588815161887663641335408276169127487650306760997947989471757640911030822833819234097579636240697507622337751666034639285863809970421234084201799354002830067159100906524848969565639083638224860989771183616941939575920343152392067239237188773252207683956985297508758122703556675256184732021396777422290270780229653148193999532830992862615199050318530964504525869366605438138485420696124827884088311303014722609209820068192015588504479471215181839040656744061724023299046999069965923507437808302260672211334350663681344987270987653665331613111516244956867692530632537492593644060232921302781089459340928353522895556314359803155171280832300338252999675072837422442984790555075142364386401267450925596385494228353280055293887578460774727635766085575569320060238939462389828142466211670268552249560480670728806897186645355594603455912004796206538917236887269875201809651261197155735571561922111743091505658092922751277972559530434847165748386262623451288986935366443762628851512161200704761708644048662229436158133304199114431180178461400893830723100742058736767771583229030834551643949180915030181783194569810874362414726528547623168576741140706281303318879546211178461233191503351022975960214870956409880069361542640630569419955570364425087248375249950049988154079934756116658199697229935197328362389138202209584345074706249218329219502141502703505926061127423654790766509321717582885137302951089020094610716712597197440147048748853863235018351006721642543292212145960053359487296789843126369502108965607932222480548570636742892827355630219735726756972106450921594467377832712968712355943044063789067944414985168551307852267447007184672520945984702037305024114828445298111899296240886502712205794956498316450230991032677517356024620417544722226233040668951113930098763649658459485745288739919413119024485217366360590053179747123339712641589900089419119762872447740687494245229764400974677794038924399450741338848194944426301687580699600028824332655084156266221759651221880696779082402793468993622085875611433466206985565948992381919773410563347557062844863584733808386827657233900378330877985290512239950522885715893866736339217262797514182816155426071768462909951089315728487889516139049983504005737414201552562210325983670457063082737315098236684907196657070394228110880865345584206496033650544638784679370194041130566222524810069239628387777031183472858514682453898028912199793501874996114468537749613789880612282399546187728282652142204695926702331351225547910697892305560633292315689230296685138437589491419620226011882375896431691906893716876639149077191982468513436177867344820231376876494187224507444928069284194712705918883765150061808752944399129274676601334857592509071313451519155498731765544585362819718737804807377238565455034185736358703461067051839675457367503996220168380899550109788214892484488022581474877329349230072125144204802726002234709279420703575515875226548051197946742811043459867606992109461065525652285176645799534723356987879882569797969365295972874720617178872738502025560732922704336549279806475144636002106715906709847521540717553193907619737559585603304140785725180909672911437831271638892909194632105250661232276662386773070579112754361128965950232054327446051119809280163852231242271860322932997023426237864192477617035814999740125080425008479140347307988507811498629999417337674956765692371087212407749637167119161618094604658033904138885047031229934872976477326548114792534581343848197615040091267417065705224507426857215713399471451056372821457858645620504901209456749358617843564141911814992403831325174564547254630133084331881807821266946652024340654895267516791617625079542358344792558818391788558870823360910575255498788977030130980901940263074792762456775134415743262812778644817280052297992105275450932396599759199163397370908710114297075570612133535034825837039278965331050728259616188280985772286603092896372523329718275585498029865523619217008255117559465543777440269679186806331793220364223696762455145185615883402970282252286185969118095009427291980286209537470422933371291636240934690009902249112782093520955694384295832806385880505915414689723382044246418000953039796659645435286164563777393614126214438961699888849690993948871997186678825986404104255202530023866926292032808923161066245213197655034917544738564027822999429837423301117942272397323418761022450732283511548819862382602388263085990202542446318764115951047608349544481884570139691532167781884591010889431065865710090114144101919401908220640591679915177034826469099460554693392856915041586878049649353692719583443256854147954815063089905287162864313311573470192675717363761865295023912486309843938920393994123243329674790156973741584519365510335215226009757639150292135531930350620284845293528597385797665058372897277567210044415367453423291086616360925014432879220929882147036005189570269785270634023480784003987636502207624453633330326893741169195516433400391926046018093016629080953579713587481375159167075687096047824902804398379924427964771925624901205966769356840748179912121050364002910377026031237521237418869750061132108799811801104953463154661894176561863026296200946557385523583181418742770055930496200259098656109184939159472407579665847825205582922359542179164404405999229970695212988908662142328431017591608156076524935897766853670198229571543200215692169880450554525319327051879558567928539590795163170353457492186477982049431105800414822913488305838333305241940062115088927398941534202180033378737232176569249613466350590691313556877296826119841360815363431473931505531226009823797056152597630162964157064029338210413168387906218256144624039631794017048233624681988397940658362113076091737898494301943991454875498450589892813999377533063879186118920335921872749833456611769373969709043282582657218339581487844887940119265035421855493273490269300275080983723959122949163903731421279796232777214612047230801457493553722502022119069004364107986501167455193514268765275723928124144576093651650260216890839546623178063948303967770055827678543651900924809124453474622240565433936084699518050962936526069473453336792353187888047337206690166358204439151970252374529749924091868483636414931881715921869172801536935938852946914172493359046870666474024633084914442125947257283641170633075711699266040936719900495394445004054820507291247907050313910344983343287835254494488475410248780336269320817557385775030174156928445486127201525790126315217352075025003345214336158975103894880874158885231263682582921421043571130117131807066778904436352266848218086070129682097655911277051020927122624858745350923546349117514806002207355101001067731574027619996550455420845160555552688364974261943026654539394545849736130090265571190298784845251841040261667895069825148205256946768308389253722656047629285936014722996012791817573876026546860242468550197037279548728696711591118348607733326700819772536028622802251662862607931851564269980575778469220627803434768867709613690789427718558671277714618121200209198324515989069731392558001521887105234880887462543965896223216851531410144806133172965147066257030426523192437921981480713098570586616740662693320462795897525955324642982423198726509323282201586345099415174165198572410194465399298524171215770010371904136044124336581489679049461881597780086897929154859978548263093190260678138236989811339328332461776828878559209644119912654993620284579282776486746334665321698051764675151740074458444386762365054839894379680102061337569587427746120631269012039582629434455141911970394170778579056607428347649184183118352872425273714600983675358939291365202643173263894936858515506730288450721117831739826940464096211957455356524186677420805453543088798557434898883771217713237275517374511464930979287587562811147474859644979349127298805056925624356144763659182255639667859749121258234652378752173652106298920454082626450687907898253118410997516296088674525673262632950337856207390643551800510316970996807678054121799667869409460934390489832615090361292706651800457707087161838386420117638258900567655528568251152865941130824705598769501033965499984165436090314901209566441498973557222762063672396037589080436357642257613542703088442243820585655833027024460364199455642162563030018741965510250041697426541479100877900737726674090910411853816692449914362460450386264654867705608861781366568140629322896556641827527640687840445764995044617512745613193209697871212257605012160541674667585976006681087659070153461453736163995373644607199726581380554397589625954409615899050331320430000089693585007947200721808185117202875178438659620839050944078555357113602193528745289076602208763051850476332175371065381114683229336196016777840822770496600267992557733461846522323496846249340981561812865774971522768778533770154547653285116472346435110154173295181118925275082481168228800054731714642144717736412385380967471003155717281603264231172370924808715866963003336089239670787820510650328383679303740867017347960828652865769318450893972318146192228794410721759944293758095929212474215315119634943095265157330417870691930261325610788139401875214525479570937335053367936944488608960000705772554042414695373716577061447149250551519179321965872117606641594471972534309667053165819550730061329767731359052303607942864202129000424575630264120622909479314067581789789190867367656161196082210999217084508357422087243001164437965463206169585884366618288889945278405479430401298795029503980759613555417890933557418149650230841803669089313377385184436506013600269979709373248979456558567435429912889795625742606922956196021657914508412578904359880590190763712333100847275064445495467629671075363307292593425231705057369538806023918613698836800689944278639241333604834319085800290377693693829961215481527244000623095195851628007850148208280710976813154511753222536698579670593110337144568229997417916807535959131580366552311559356933701097611348644832644088386046894885480034882696996258593258979841742343061937077638389485705938793364672981657081621776794746426090532092912965898918882360142431502277205393541377937508034176429378512291819896321060031249387385467277973603782075596506538139150049696393551849608073301711503220598737884290252008052689637626114113591708247448409193132995984886774427764924991769111706419987464238419734564143009492819412276493589889125272879222361539476150310772165795625815782902634027965378219301075770566009823203551330355575620066504115591982161725625968975295648282104305241687397495851380410354309460798986238135125181028397425004853377601817857920676015926835609126011286652258799001608501334003876614995605411869881187804277569440744888557108654192311552774937923289979776877770330598346427433913173314590487882245314191773881084323666137155518292151788104527798316874483952306694145415496646027925821570471443098779344200467829926760721813787237512275863386823640214866490051106281239084001511557829018282636287030747759166865391122661610628203144878365375241071671916546344874948432385378104076540227858206665335171504702819990307439466462284628922255017151974160877424645076749136412493113832283965095877216414660404057480962834984371585617353496861624232597014144811123392982326050012082742010201154068241844203128356835460472583648473053004419203272740072183227482004909940629334508643247148164145623932645658315896500402721464128189383787240896222613668125726030826096225104792696550055395636531625151071601739571875960997156489424981650784330057657104906398735776769529665939489380871774642694941706173343236587457372564868792276382748836436861085582853287785829781970263379331818601924084626897866222750942299955158561695992597357818692804672539080901385553533836514046740762538909991440818143932898893273058129462529508298658594905679434491901510212578792977506115720088022959829800689228789692861909217067420797949245111039527783464019890321329229704957969776169189739726419353014266591048988549745369938187571031784757506132712983005486948175589403237362652035206276558200188181821836232862920263165055590892817378018793931948079791855257538832231184122042108755736636071394798521512290857800490331077329402969318993936434582784274609369908831140095971424902590641181959291428470263721679196264395114316401385751235697758336411505820716133759339628843171868731382701453623623156455888537581002705760595391583851789794701051840609475807470505739194944494840433012353388279982285177902301018923147473696813244340882286392598836478157179598216814449737767531704668827639989734656422387055341397132151974733295997609762691448901334465149857200211451337580176373620696957312545534992702789070925800854657557581789743453833343406943799497627781593768088542251772261300097588689805744407049337772007810600408466812740325958991805059099350569249317787036096530188255077818260142430770181084896297215438707595409655376884377291748377928499135976400498596594157782609767705716483140908034166817062030491635872101530271790772570708499346360644241774769715537792083271198040389253850298921528197902215982246806283170367757864975120201415140661839717067146267338641045322124149541018461003069410719148753180369756701275718278144441394914087012442032608025209342677353373523338699018364838735245712649795391913177751199196740412411977832263463083337720388869866581427697116805689409846246329628731584246825412997179345328256803111832253392958342889674460470586370744735913801735617460453941732541648596179919591405989381951040614447052756268936579325004567067022332403687247002290736785286343794917525136134215712990952703344474758944207989672441286196686355355271837790581746901071354125121296736213082208165556276311804602047677835553097719972004897474647858577496316143599728702135647762849028601995322787420191927666186534370296572309509640878682962682113558289026898494884273555194303604303961906945058451566829354720146834148291551459366119365891787535131844581552184863809101603864434783113751556908917576991030659320324114725711758175087236082712910854527934222373335508647227145361631689012813232764993506781098022190369855096877834056068217601066882980630064045393023305349619050748761929013599325721042655258900241724242210929331939318152026202084411864043406358319431796427040276855957191491573194043492477859330189437081010021955729805074075234839624031044538242471122588615444187798957453483741518864173125946427245652677807693085761745174311852721324075268582509103490256723136316425943115300552643139659829146357102602735285829737580648219252339890149636321303579545504248752961816428120846272418555663026990975640566847877031665893023794029026349690047056103286320062687299823739307621703629652137708236178859106736909900331716729606902164290242817988222708541508588721308061984609568810671330519407194788745216563668710536010028551980289753679919664711755377110837476446169453871047194440449600016139446207516784342683956122282277675958532780263292559613568960900427181880736601720183433737384690763823977031365224407127404686110687416601372367498414655750056377863698246087244973363397176235468656652222496287286859137495495114301993708303091610536029451832358554775665393331567790669726493613292017544233085233314794602076590495640428736672947859898929659884079311113172320898261080557092703866827320057252614299530893629550776370809619708959927975465432552260531264356603337121252637514532566407200694746060758494202824446600886345598624527558470076913662170454847403219907024507505324883986614567493706936541788771644608313798023500705901684341772470165693720624845303840748247166597553200889782345339628829419508632085178211460919999201289506133073125510034075043974743190460948915818578904169145472804231558931472954683835654077659744800359075163093382959161164448702282993309384370906818854372007740495118565617289125537550279572091021527480427417237457146221648627280438123951052970158378486483678513725748777869990417256837186958108671727608296346411674372032796944207562359732378161654010613527497429433324768297702861428565759986787639663913647045925008660805066647352065355626636751151277702330136740820676903537046822046608397227665250142706575685697333679582414380874203109129204416949805329488649115889728076240220079874833815832143880213704156888132283470555554861022332998807293449408522602071496221569801241850070409970413881486210825037598130346740378191842110629524101193851010618083774921990498720698989584089896886426647961010843070108098004788491985223349591874668461248777168913259928531705545110377832633114277681548810272930148456325048758971220960033933286925608822393693427508219166031719638909212391339948371743640679905260591595077004152170968714656580258708429142128694955417168615957569265971178381268575036026643379530140099762640322035397027651475327642356083602064490186658638687251621101961118892849116626781426658129180818364156896960376759294388437702798338791396768226480523726968985493227627670045698650039297058796589166702608857109883885880343428481563694412039063745325334416430095608540689489549676303656669008630735116777097414199708905023982157805208027685183430682870544226999221259386926176799815194528712694555070702428301117112504111096814690310514303967579991920323019776678754587386323749988021309609267213422678027681746271118626290206583202983773549765032315552147516926462720693497597431159448199272617046271056996990591118820314065334650053762199090914492486577150443998012732193879842488914348923674604825824724602752955563019919451646564336678616896457487841430622356504062655907263490654663162542249368348136798167543351099093831988677026996019010976956404033400837705937685945819464217496290624355737434833563537887913313437978193288178870357489240266591151925693210019079900392463262260008603221251942157307465769090508851197209747219149984613128953005913432776395086093027887365889421036445561477459614639462583397345824189953220206420167528679435999140118810141961101174553228085659030533374243991701123922430245264698037454037200547642477082592439619541422236462937084563286807290478564058413383330398319745295025827806637185700465667910599776471317527190298278689285229668554295937687586879219525010320076210698589211983702021306410530859169259794520625249433819066765822597288550804320144584773015415455300563517030239975102864151988978813974928599106471532619967765998032147784000457634006395163030989938970487796601498831468877234130037107807430125095565647064067103538075264340595529828827810546629760541309816114834785468994863354015150927451090348149926450747539826367993705776848351948064537086209676417255733401916825968984214541864547825563109946331092567904844069618616441841258786498541912119978263289703630035226367735798628162094823919404538970336801146292592140683970775035370695826301799204999925604020922227082313933419209885855093656952380369343726929999035419764387801767717155460355535372449447877139372986936129921097738042824898066587353426969893463717415527070565370309918544089676946021666557034137964075064348921830073350409187470075855926792809956455827533796907525658872004589395205116465513461093009916795266958667526702263114095330381536599592021515479562983824549487732349747488388402089099582784524554037686128803888174537099066072574262892861904761475178615109196729485666932184450123585281349609248677137933994626946900611060624056335086071865416032394945592834959457260721885608019066435556895143680323989587898979381804728572828954933909329972559311280531781121067731478056177703814500715332233231599539515316691678603632247343436118474527553031928393572937388803907032898605588215298928124083076686254871871380400675775445580277568043009577015397270738543613113274555655716779807910700217643256486541532083415115392561484436554073499132697643753954029813888591230257282214010932926370335526805394289299502724845020490946677509226638436197664366838640987613420582617543263726393874494056705704852555606520727830500891849082635362964502343393908738777812178173731444722620973042730948765771361194320856737396509172919025778198128938220783346301935171466584736359930912353244035652982469288182524716482638477041412358752507419792755089388116822506271621220575302546177657475072617910729532455325444600589524979431738549500292108479444655858054592582001048676009456294610994814435577748953532669862004942465049279920586074554884705186765026975587578785404303555915362522823488711943592667911777104722227954239016761967958585883483513961247940903005130499440825755441107403068640110518632019137878299333454325098171952722036090058147788033573931131899601289598394903480134560092731781374821516569420906418951264185166697500568516509917178651197842217514335596874259739078998743416295852283594534031111635472073594762697293666179463746021820436722194162001835247953167761311573092007806824104512679443736156849941299109168575734769959238515743021482690833164152227802581266256225789720226986342134967546522687459375038207170304829779112463361563787175055751596005964504481694193178960955916541409285626805495316905174323836183513969744164677301382618975012620927360811770226091885966816815595660224160699823231779012636519449727297898120819284864531781198755140819291610117017011897780561543932494277927827369097985712036987150378042896847411961761274234688055629864402742043411675709160079067900785237273044734429304396838463600589018376701145566656076794597174600023603187929463411909447883565452153557208942214780609150082457822137199937003287900858829324830549126372413422398376051944335288284240816673991031384772684003417986276312061300407508829136527030320795221562444721747292375264243438904204309553720964344393776405422791477049448149270393423999647028469841986116857342916188918054939865467857028693084730105554225043736588037220475141652709031557189578042339029069568430108029815957291403571173241967282481024405007382041345876422056056189246612984526063204473983824689006264417422825725571988499365980491191736565717646566897610037587342802987053102892828223121509492779117020555467705334931286352568220567744977883196345978606734828207834568663934928401220994254254912162330710154922531725634155796726299275770781482882101970234126240193822155411569540968046225012355958562003681867086461290817950324561358708609191738316504441144872392121735084803239892373175258488081405827967280544969408874825688082520655130709861356834589426629422872564370407173110287772778546763746438832087067093507378318291269882097508160909901102491685875717262590370074490243239140301647259912140327762004715611480511156085147937486382104577431108847634917386913484737170024053013086097317809874536748943853056785209050602622919398147255062279900061511272668936843865739481613310806220073593696349892661551802107003478662740765017657563075449729477316036680853360829854797383348024401334837159630847800260540670696605348952411086339767369351081902060290697290791676133147766644879810122127661510232580928633409019845392817568111608883658776849204007797845167095403968051009654433532975374321712882557427294854584928934678104876931212255462472885012195195012646754230942258995059690936642311123653942461792489581574947916139841924426499120930257808566094173876574357682170610672393957157076407557109269208381478626934246647136362268472888269979983799517754799515490316558101246743305978629658377728612642639205234922677751226850967463249870735971902258611313716044794586095085131833500395899483323463846569048269587262331320385635840416457378273128492985211396250121828149676687141046704500043120935246172588915999921743164770958246226669144535736666576258620212483371406030127881846558613004544660834727679289056886380507432057048638044161686216061242967008073576662539876680203293794412693842285167817757815860713741636920263045333224569830881334991379222337892592916141400896230576749313662237025219468295411697087916177930998273007638847445527438638043503053975831489839152219647684611033336755157735514736046359970800604681640157461574646942400377552519838463102171936584514238655273036660356233745526500890308222305561925134602382638656766195767148030780133647113228154133707364188999215491728927209795578466985682420817483196237228507440093812073688647547224251247647242243737778800512114801956545441759933061258318758661056645562955531521762645292130013967729762467482304909119118163644868357288673586807897671979351198331039892171128263477344736359938121139541587968831972659533489341908656898583778027526040366845788540873346140006711005122681953393425191726543983195946536631030343224610690777178478248100142890948601884810218568414214856081433057702796897248175572137706139900520344208661250714832487976679960815967882195766364619458835485518504764176745810413379342576392239018757725268831732469275474619612945134114826526888756564663680180895222088459124904863474473661155375922881470170114303308995830304457762993515104230140298490334771277909223757968058908175319730361478744397938020827916327879316756612299480349858146380638160614807785391230548635651316936926448735890308484139453880074924419160664406533869985185097747894007746346948127674553769839199917213983621221250632675649959454267552825099721788466385011604524260750700074511535599373667303629946735822324838443959522909332642048516793981223070132748502375309761915167894769387266425816080903513530618099313445975502912678418500182217262739306961107640364942719390672456557987036407742575148404305827940336069146849085878657775679320943025211592805583444144666820479505596363286861316970103850973169039063071289094451055582096512964309301218031830195105958949512796685805206566805566325638215452330791885929889127300916245568391043513257292914810607379430755920873545683329653410975412710984443386519325385990627615275687975397996918822693597831085798977620164731587792693932740467237152911782850186897844862342076629124448166137590472840326966717820848560125361237451929108823596311363695155125880813592630419928141615245958944671730535312108718269198654560158511231511277670678465346899163884948542821525991541642057627092579825094736361417522431801088280756481482237383476346434956059834367884354747994901110971118336228295091313574328728854155518896266062319381339529798207076896937340222677724156009461104897809303247813789543413552871448728062825112782493912850280768723614797816225670790577329436695725852782727297380183915751215021679527052991083888621929054204520264265280513781091630837161805171333377498460569788682912305104247533104757134888288829309902352454728819464495709305885035563552953119224789597430750530245121386800832316187136559813956080919136808970910884414369378876991340070889919041733522742909697318439476059253574919446490954547780783557831279829794842192082091415123508997762422147751788841877952712416265213252348744596495668086509346120429273343145874615151003097645542461538457411701732519535903689859885937947350053718986353972247454866374690137635727052093526108845063057616801909970046031530015924639461447226126717084066788325229103251957747918599344277698968603169893511956508098584157062510985318465282732625536129867713718880893874728164905848728793562160690505888668315096084131242582098134378809319278128820845978509306125568268664969808302590971986219387111057831425656986712003404551949894197316415055635919295178802018408245761386951579487532955837675453246668014904089010752450690453034455209773965975853909307781625723659657085910417257098186168605337216775229412883975187128615437343348390876048648539352423744927981845731947366591287763835874518620273467614886301442245235759410665799188180546421268958245391170327087241493155887706887903905867380036168769640257682264528991084210732203964510296932774978712145024178362235120372563101039775006612047353979874053235468859783517105155467454696880354287163108340204149514425518107740321659565668347272590058633630221235363676018929722543622050895793757489656273258454607360913324852962554013082403938181683897327063278777674678398961050256301387713269571338140860069148132300347906988439446574063687635657947493203783722365664765946510961872776876705096479422795928111594170312515781767484629192235131702291994857541069960677903282135387716751103750884824611859057919687802184095653024460199681184545040228503306857488676906704575144744625537427312515044001702267717423828478807274904791733951801562458667392164219610464610105540096104299387712972725536695191867255436520223438462178417405225314594469051700958097028032975045644377530025253607844536271764152431099373589888407607314989645510217721271449763907409763468094292895681089601406450676561651524636295059795800548981382752130698126240786898725734995395310418075534686790236453229788313356746462584167912818171535073272229932670442776548699761948660895113926792890525881322080689478904100875692675257937992764816956531358602048711435413617747647474102472520319931937705955984008148848580521911970320044760929202500191517757158032553459367040445053409614005514530394093779928364341682080180607804702167022838788353432830316455078309708179747549989152580989861388283670586552637435897387444022421797217711776354030144114168007430700943522851400879316431691252553606338491840421810310310953042036116475073406905711959820288412978260675934232269556380326579107578448477462502922582162093223560354102947973469884739661340385511599512666102293577682126979274462673821891713006612416852493730973031056105493134629542762728880043497553642487131123486615072502744990284416050050083970319423495727580510291277300916076415141324963888536181833975545029850235569986338291073791439579250307508877142908993430799640974373390759570762843874272506269905304931735331229424887078622460932873444328376355437654999616982623961937519829836216573688185800392794084751149578253966329301077094614688347467889209562908194200605542285389889765394583555827579564666217431927249041086991309479298027912069039636741796155955696303528936993820852460996345843837582151403383543734605727576103328958345280892117880231118656621398141275285126711568281140482340528372828718392312832134208082730532268690490224231296130726866286564276747130533963652909386653893461899587202765533036692317141873740950062815682528853198183580481538499229810686512920393905210637504004998091592775635753697657872384068270967283038354174721804513996672995672127787258204123194813008401671799848580879777264394591822141636853396529723052050676074432923370382454336622389312811826826627921833657092482997057725406058604819152846484415945083476499364778983561730575968317547826454521371079695605317559382293649643515951653206542576877666103625942911822703912175548799985550957226781621995052242041764879854487516153429726363031442104339791939808732569297199234309082260231779392415880171157246598255030424859453482657088502601828022593953684963891214166945107659953529485357664017905098558623456301786805984478720168905876912383577723855084390960763695451610896099540821446973332829018189255657841080725936932949341696310280367178508969409381455042725588008541807550130369330363261898569788926884534560512311363443874610681339989882195010763927884613501354712563630803201666400721405592572044270320250497717289677946844572788876911163519918587717482397829318727050948352226822998699794459764579238911746760144519562771489714094699843079821859669180455831994916293760030661095796770133668941398362040107552686522467371774728754285876773995725011236923517224690830268607812237871938202355737184994843417558056759592072791713229266783489530852619499240877029551179790562924464698429996762767855375971767243044325756181080778195326436916097621250442466739658740417897020414012434344234730560700666292026892245363406105195654895008579452937965911937615154832250925598312929799744512551331597832141274698704514494530281555041275430866175745275104798352771265421124342211202103751591258589926783133044048323659050010578612398642572412910769858032740698557131393155299574048763661108303972768617214770307390297322719872084691344065182442811941157827489091986815667091398739041129449480780053694240627703779405353564059476110841871221472064649157007537766215335463442957233025529766314799948274990051898085380949642306648965895272456566050960654265912129239600904550469989464291777968094637488392212649263565220970252581403415884770480305317972065216645576757334622417066460820950309571674106252352337747178552099283571932330524612162275703138050981247118634574765763380204913586265806797482962782588776536431289993597326516230066336877622409687774463821297493322562861947446961642054912959956528461142876140077733910814517067255095331116536493261627044083069666352375024983713151598514948108462380764401236806575854412772868383679856005759840808478123030551429026617675358772046012932935598008218402535449267635665403000955141721257576004914466114783458314619025611383852910780287496637454997081073032329964383599078302752246128791460054157924804965743221725990243472191059843924776210752106774917906969409988689763375657273795412811063963801350174544429775776056143714551961315907509545326927382619262846269887682310077505378571363095047306871291868410871462770529104930314531985374948230047955351491879881540287328211457015194310637269554050896162106144488184220342917731552422467750074424165362799585112965959685205210459254138173172056666929217899359949793620361629420782996626651580771431778619558130285910744354144867616132309351134185152263730985089257363467714263665621846318920171121827557258805577735213027415983065944463285074038172780839063543598778104651006731068442122433968958760814016871248578465909749505949585520351088388382308655943269850877141824219203778701738953662922133566633751125487340182402411149053616178041691177002615951500622121222058160195615684043655835540438975501632388532466482649064585834604536210363997059394829802805930496449305023396922265644673271290952803481267225036512705670179553606693251295694751953736350341263902038792951881271164684741341589729750405237420115339864152884313589706654003542306210958072518095132426255452426845798423688387661580754069686146065680917556301973011217314752971730628470638028848452863353542584527193674496672501982130482220574553557916490084812465040508373754215437558314477401089420863640685303884828534070482800474917862563699838749069695081411377055826128718502657625174138289620767347965148008847782086006295915497873194983496140352001881522937971193115911717429371513486049382031919852551283578361584845083684030858009339180352717880374965941052872712671900099268495427966045351634762529794050145507689737484473921202984809187542584523774868293289755142360014779632493890072633730352325612732420780548145783026612178731823106741138326643389296524611583119908391016631931266637644858802284156127233572887269535117250979953174874987935982668322498913835936733005660622130545843892081495816040746298669868774826780306651169327114880625073071544103588721468936955527978798086435728005278110653914342860151166563432697915753722417150611001355132368187763806360311595930144149079963322503746162624233527073349838122576014757307269906511388217052131122844490495289422324508284112388223250563691061589920728705461643987134467910181090753322077774165174344480496927598408396469020236565051673221619000605893209530058091665954110026422961114141356154655302331406371378496334409063682700972856259021480410847716689309802582495577990058958272333288515716263297519405996705915016526700716204701005614565711875202046872921506255248924495986728946626801581161468536967294386746554569615089142046314708969139193917057844706718377805304867549392003682493010424298044683958993218593745961034423576685376504655314596858950072297348721636375241327259903163476773858332196004707889207247947044988782247115295978404269824403054464547877745343092585382867676309758085872358880611691609452045186434055219964647728606502289024140106570583613195469357349149309189221596522398044869772319742149835438847579008268092823117209926264216109376384703258450774360015035125872212605425410049209471291691217864514375485072627014910240650786206326574652207156590638833645320940381852265602784372282440193511051034765444184612634604225472330713449306961524736269930629655525668097901566162028755857763741281520552364852794780889467242669781929863054128968071612286755362908106284787495781024468859869136151394874171422578599879620963089922554129417343476772199462094464433660318012033425690142034914933575469484167550811787526001302587854171693863136062978028249056152104123940768942905770802177252211429974583126632870973485613304873589399627402598244664854253196270096797137721547600320463565879921095217739960086688901094265207923642369135515879403193067800646814913545036006815134087176371999306316751905235030859955959456979216904163856197125674708828490511742713980668563654576651307398039600646706770066013192864672433000630136906279532582668859910884330010219253602524214562615453714911253249889653439849719546492818555086352065951100128995018261536811536844029967292665324643294896496132307886282963589740016147702424055369266516096600059587909101439273313259099171243540672232812415769037144945159747800787895048040227598301493675256596966501948400077191623612752016678568798045479454126467447135521543501449149405339666643673862923724170663502546144098454454688159874283723217136135313711678875137963373487515521236283751544517444890858641202755249301864549181190848927137592070068105263309852818199739910470753120536105744085873582991681475419683057779542083952455330650331978793564945671149906966389386967990516335057805893209139541946795618696469043990881401578224932795558337392632016413151648982433489302117236891340317449011865103121077675258309292035941960982997638391124321122804803250776198821816917076028267321905741136528455577063817296792531475193059416432185515456803333789869901527741075215132729563832185393895284725129440777431036548112074875621923730605614936751844211891043334382749557097066443886426747264797938715882250764788748580774215962550260413332057120918701338349034237566312291689812134498775439066143173705801823525136679427225499394873648234513111119814218019285813902981896670952029144731783185694780612710541611836215703706432658142657561295650452428760093073953892717231452977626543155439936544518036484287992057449594999622083665268071234769540116487073029088353409175548386747194770335443490838792416471419935631265174381104066377370292774794446087658355464781494037872994174328386876784915019124120486755991720045913654243138964821463416380726894137969895988514129154752334596823604423612049785303695334146253362466058840659747461069072293795237469371957543619549436500996654786100026603979289417665079525457138691845204720086343174134685219742524991731462579546205847220677507242007529859277166772662575116402024249460189443902818743526595761751341243734843260261954184611025511834255650644947327069902131763366252618440728543576143844820827911298583772820156609817133336194160860243340139758664168353405939312542344063908731453818744696369998160411970963870199746827447051803129205578311741555477635772583417491568232151382718363361019802188152481727754772874802140715869312741608386341118941022830593730671441980078019467718051611512480513361522552851990788007160272929712443068827917953692103172961205033659300429120223846323641463508411042261540381657761140725923358552843677995187917835557721200891284130285008178275119288846663097660632029740620395796107645474810915215734674639288652064943227764502284433108726168381405101081872091798905160840781299031721453885527658493485296088021972555170440792846903609388225480206745039242997713614167612936604371372703659229665363042526474969474197294074020445003771497499551521171375150369394703273597924421519293482030226533618722988766803675187613315964176521884935353987054080792188233190121943177779308943279736425245200027287817924947841044212525048326180875356537883788107067289063244665598862415439963048687713414449483223952623999377122702002529326270683776718037866060468661398289695040509738131805852485505354891070864021310400921081424375300427559711286469707998773494286733445625690485756861090312670002735832396271321377713560442376807850607666033012402304926975188308014520218881936479326859660673086297187186764836848031947173550638061879476217317929522498353321276021417848048280357408183222800627434299948743099750384812312852263856491242340904255084026007762721333506819015101582348761095528531694821773805777731583877514299391710138998786856238067690185590971202627967310534435961020806765947041979824270016851581965323817124434908655709273329869293627743301102879486764767518166388373317281428475760933316173029894789663470617479893361189058043577591955346700000650445656138947456502131608133791221853505736431744843523089549023248321113427104044519946409534804618665316622663246344234665782621880709670705034409395505085239447409581789711690014746738859253853967980946332157934637879195560170931650696418839481655781701517875308920290672253845875059942395796753253534364828593341439588684297012574220036273910045910194664655275027075712340209578851120384809130608798582017824610172968436321134475041214693943819503788862545027094374824704486121819174207514353337682833887826253852294041109104033817991079291186383802070458028195177299571497093446791133212906910139462016407276951195321494618151048873299216063654904617040398682586117406046876337580943369371385818473859490491072583355276083172084297378125497760996441343885156726366810313059289692467747484748161791372231304705114773477268739080788636265247149812309268145418711594671949563061187009944279895316641506656803370245572597451296200796813794811051086110148353437602370927149315241667820602721731118622186580466909799084934549556968282772246807949960970261276400417849077784623470892874578283888558577818462626875802101096718560813030695255292237112404881667716185890343700543703077744172289497041207992075958625999391423859361268719923341938955266558045768572965290526710198049692413855930340602452084533145277810052283362942214714471722531497235089334196782009580795729027046884940365366454445187211823801735430371613073536289675893532564761284376791348304013851715316789298668000483387808049816398754039899112780482413796601127406514164858279448343493029789545644465995236938499864926378335982849056024239162357628387650652892197880433919758939685896370148470971402055176412811395451959409844768547252205040150670444322098725990774358376757508337698117501205703842451841924640664752732367317847460047632168855007781398975845555860585011636503906841386317743088170777974259775300561024572668349959874568260521139407487660793653671408792092782912735469158707737026479212713193128348521994942778428809006392501108664715140058983726781617627348887871751291230710001129695440587306902752786174334491173574132892109940367095683810021036646911010273120643867745302239203141097964466824112257649554500178448454531400296278654621520962843717081451944896082732702075078627185317388756974208337186493249879119899904377482492886050113021430924856905636035286662968669678159243377050390536333903042471912603039645156393539222521721351357152397079180089652329861680875078162237847592704280787475459344524079702015560987261312238057340853644154487177860264176162133770282595737014250055210846884458497826267782804914361901914438515989054971778065019832929711531445280176578214679472733862156901877713395325889029100212224344777852087891013707088970478080971414888893572572802781372442226970640118676212253662558576667148862347506930530717996211126387213617926046717057533295004994903816864047547324709032269694291489980199623842612747486393975295956059529065604811137624211139137730661406866840725257497576236456295176627501198767289184691826054685108642812382057697881368092208955441303962251085217933039284188820154155139264899885041439630638176676782634062860151374574442770661478271153963323875422704117727438395145213622931239344133838691122672400747052697633928484884106887144347118454129347525293843574846621769596216410188530986484543086094945774560295801155482593312052935010663812261202329810220682058733723966999743630697393160447625887129149952870002271390102488201603897457762625743272811549670242864134371986592410885745537113225539671861747678128207121474736001390764229148804518070344188592289862884222942261016761518901174903356748646006731619165083974983238292516150919272557087529302076624032688762326683063206993549972068698868884905152419806113325993538396284971509852947072249011323938434915312161391052657899416439271466023734662617635587180724403404974029017737117822197779463001676459721083136013893728013667250530253446430182299979228518109815580480497624069512402096457300105897444847272281438181564299806084644520294531590017180913452296264975351607802238940159338962069195740795255527842414418954275031204095864570369129021843208748878124762766233180861741056406702886372016028903166210270403888324715536112500865371679868779766684815314446161097648852429127110654748267504830609360371095824942696277889174263944402723011614585337146598176269197632179948623591390558053251443298552058558001713574896577846711099857599693478063137752968925530766428526240930767469923502034318377754141177540038161044613036944659384236569132594553000911510631225400284992325437207661382173594661576242530883882289342426610709097702777853447812806883674083805209704842911576200401919771457464281840944411726663376003644992748281280507198557429582845238950477009057212494949126609357377469827582953003400297723533421490004442540304544057311635232156194990404309810602759220706366708458049278762107138455562107774739944974500716176130207000640891403350475493498529916706263179180977525930790381078819870958545355695200755493914436893417057549645924980304101206923811678339753457778742247714192572276991211888086568132884057971276777053280250966869267467176344677676640145347767588198411668247956012660640179895148824462884877406277789282427847352098343885342815266295097912896222127696504366906892550067686635555643328718542821904937921846665490488968924273544054244579811425906963920502759561714940127999660505746012433075881295138908548529701926220909445356316143794431066450577037695539377770086734584373737006389579122952975942744432138128163308405570257751592918503367961446267581350810837258033715151295986959606531530940991763319334430615507237541456073994796517002153404983223561226573107208889074987382345397059124773436174291505863092412406631140813268161534916338432960641092031912368345637323956079206738089268033536725677845806227750074417608597989978319096540469303563483392783478784556973005689950982492602634315566422531016330271380190913732348962114235157622732475607157533255389624435076186372178366478052564424327321430068053410704717076808090662924283661357367266253381924718529989652377305350793172904478098615469023114556223396015657170673337060214358189301933567605215043964344341322274419359218375771341214162261974239982319994726792800550684330588310774150469889246327607733941942956954205211582851645034536898235543724333360525155871129215969476403928632295148348851040230960695074664666110463388614942355782994216204152972286408946062221008530539993047984591224468837664999120935181665428822151068825487182988891013272570822597677073457810752797073890678824930272390056381696485789020327417565678744986674586414995911319849522576093756903222908448787423980941779435016624664905343867374911767447859645332552357136692031896609106013175103980280158012556212989639339092052510768970107504110501008827230749701039792290466105848571462330899955847308740280022280819931755178143006744942318657381067219435666285644782687311172753675124785740423189425709179342245456267195818753919254268871356054619763809983624409590617658816641068387605899511988244120200863712498389045020867954159093606302822696725277084212201724326240598202469957533893521442468561648029809860421764765282117463827581492739367723070260017141880568065415470897715886885084850823736677948014303929306773837273164093256820366639223637970479735875656281270761330106516319317086116287020584396077159497229536120394521666663480941484977033327902102277048769770679763697565351472276549016568813701201414136547696659692972268579421284744767628698238858426596522985704828901147553529920106608332688181247640070249532136675939264415309339653672845201625051888050489669403867853542089476330554356833235525183010501664182165992671492983694588220728084329400370808852226283941105169716122135912274610745449146033307245882078228969107091845344480997338354876575391260216391100985343294621041040310616701451536925615729410591798297288901489684381920726856836482664739927041499745334469110360396772719718736623587933026513644050646375938030249579536162907470917804710240826439821370765772817736841699012842820110792831017403345385696060032969576731534298233464637909783026760485595497055714930491372574875063157199128096759981381319426946303136450359765612720433258415043285805703360793684510306401575013228118250276837256591706767242477256972448558078645024249322003067338880155128608905849102655298066501265005407271946439492997762831509336557978644250016622106784451073084488287894088037099407861906519215759212601878393676358441731784496096278983586890312904740944336859927841895284962453072908248188303251619629557295587909870066264391319510268543555248970772331973458342996052153404330108063296598009790112373234592551311958996660836736880380219221583241861178001460598128473853098664289873186486207678610478272671904926578829908228420923575825110860389255319751404971630110068249103355895720066962524459159049897846738817914245254633463460183124850491673728319291281962010901521603285669198378097357389848456190229932052809148434825241331618479235446721877748404484065452332036452528490751293593357115775980712037517692820024601977777018269798584092716215112336706719312213954995683815896426258146623040635682261956952697252641963246690382235092146389232183539802644144433800198345409095112339593562666710786344201194545462065556683486646786388780593367840251943707200886219932565653423908474915180818457633490054078134770495106034127443690883386773250344010189546026845797346538161431282121066455312166303339894021356319370323368523236575231615175336418510461537762065358926483843913356310872282921203373019222352118971168710750099885049416431273511230325028900177039278234167546005200111118953916997590122825193821372346892287123285339732926153598951385083825296511497806310011365569121394400678615604081608495380046754393659941328143304329926005629134921953854263727687248712248760667741497209128801418292171831685057168411178779992326545853038869432437069156994813856938299510867330704869407236664433031758828029964254580362880060100414515810637408889266533266897291286292097546351321137758795535140809614032968428631577298399252865019590304028505871977816331900376772914119885527353773067314725784218973935560404299593512620914841531361497653261986590993135666433348924760014387271509347336666423412077854682775083539304255504386019206386029700858963901068250902325112623213346324939528014271835284189454957338742818921544579481025683421709968671965861581824299370428835546255763859788795834467242830693838307214171924587724217744125025167725530230437611420147730363287690843229950193375942957537025959365453377662943847882090985906641898101668055672347192844251069620851832707641489845907102061159016242800901444332215471741374981870034586522525807692364690181327653354480736548281727108513746271246045708024168988266613689642906490847679701577539323909553336624646257603577101113273657071144080495831739609192260854415846841070460369559521177942782457561564630553363161883431906494973062787053108568185149993954060395860783575891738484557485262120484678373248540225873374649439586314607735425821859382081745937468049271871574134338987030441247473352408270550631223432068989716800682782011361293734643976703613927301236664736737949149273315886796546270426478834044922947637570771422158444385482503001040486008203341113588843721861240903514233052376297839597114707113746262750723773782510571836184425886689092829793960099571582645100503349473157848802133381033752552073490679253328324123022835811904032239019305928218369825668944374590538628826204015514199045007160909789284654599403763756910482104113609649991385834419009896087535392896814745718617546005980398213223020035808459769468639587311338243385553060305870779150220260417986676373564420925608318748381820358255088289414224172403666316609177937043231483006956543676667154450678239286128214380277518907526607884485159618745834926577693452675676179905789572838592698922271053448970586743792902590133392401138248254605637026698688013870049884941732039745058249227508496267821028650613264197536364503888327392704749655467480969084980869938377304388306789247075625274525023852228258759512458416706041956484435926103283974541487654560985029548919833111709099104939111417329343365946334274770392156615318950032862758259614689755021338390251031632150269100439751459762798336582944736734169112829672321205252521114586475886895953270139485897751004866193620116946604667082779130084168578911426061257115182463246845789368457430399718241688044344710342141653648177524203842309032812419709131935847589431808936438169475570701122437729842802477095864356960104533743563629164622866220433110929248269936004668634975137878384963233698899833542089669691723860591629529111935199285358046612748121298875150549827922627135769207020128080433271676515919470114760859810326944451430220071102080064075776822814497088134401394826800271395553526680641067924241997804267031188929000201072173382569472586718566596002041186993648663561631017136716062842303006551068685299341187162313060652500521086482617169250410815866078069417122042801845829380546093972137127871702411953604109472919140687955697760764704775453067755847607348050745259211642238992372617321770087196797345342853433487467829016928479244544134079253140641582408518710088422870414426793516677790051163181571945187082509861613813633026543235717991487030729509178034575037439134233402116682876526232349832564076604806089732544611495311988013417490053813639402173601667775375551392987180146716537096406418206955779001100293519543542855689701731177568002677119778122291122974566190776350548512892386791748119758608113851208108405235607364245253897269060748507960949168790980686928668885201946344217805639395147613722127600462559649376996183401425213356372662756877449606563247914404809791543343299493296214464732217643741379065100108883301034619841329457244428454111347842253570438204128967359159334989858396975898503113045027776719637675081823985142884862097811547587416035024353017840283186018460802913730785240300885434021844597178418822191383023481089780773932852464368869678167388163904625512122408622199157237385583391984848417309103714636379111732141935874422375142183869651277704476540935640511638006951923885896762761241413977859638960771991916037892990518096898301816804514679463314149858773692683057893373946129729797635380435980680421541071845087472675681355626053639158591213860514657045322844264183051106140098292444881731767365068206647495114049651548216854964195399331706729160019818143845260618740545439057660989417859843299414052858492713698860224707882715379634866511039862844581245061402766117071178847068001146040356811687771042706600961864864648565333119017448402462905963511178378303429090698879379152074420033154547139840812882603454637495479008022963509660259415527063090960734327270817114734649603431137942108843880636076270837315253721311177804665524728855794529316493936362879195369217808257440363981877522144278012459700020297519462630856603172728226117649531613881840149647571732996194385681996172774464051812262708451309201173504239084538481082716113935494013887481253479642284167914436737913825069150885019927304563090886650599728671520292679496272599143542898755877026560037965479304773716698882187785269355291574665318382704613644761571732317087441772043284290968329202329628780359823885729150204584063204095849492924054189530917726139840406311684925760392667199589872747894011668399755590535396601704045048426879045071162790363456947979793505264646860325941337166957230309195457073271328064446236354921327771459356764058953590350637455475707623574281589756022118417150564666495945749734412280048600942534863297899984260494221671196030007477019549308273720455243420378796508859448856174050795974558414250063645733779219558783215977478409458429626291895198698150691099592059135166668575454477845896604771112922463802762567791399677963500963190849944980018169878687053303514543982786024782968163300890351824913750895104090901268833556606053115551536777503174174233236204700382331394295886531937098502892521712408486789940266695583670749183397331320837807929694184654009436180668405341080631635641425516356871109417718500950035216037734589063970679240024086991547275117941351906795903926130248251991425313124754261888072609951389628036584537559453440937429336183639536752502070592811126696090555574862807869695716178561716094032980700942093728784207824048328851777257382768281813178355948551653652139457823054511088079441628759293054099495695921858930205380395516288031158700920040581797769205712554181146836339893324572720559116340202665788671300948124478870603308679985272827348757027827046781130514299065837499696392675918637746667386484418537125611326892535812059828337570110752028681868992018869452829529657184429314250501834098626168399684980989349536438270587615618474810415959124880237400442189221750640121310124163978504345239142543309286122046502223161431436378969562823113023407480129796342923689771587485299441636143965475569439205058598404704324867035742812989741872711716574956437089922392149553451693296151388102811337370982648394652130575332985971777484245512616025998034467604390297497070525361864145890631893423366179831233948877587620937781230084650933999665395529367443573194531699952140290804264811557837052585430523272142044589450182286824029410304659539405719527191265085961227561445311002693739342831979434046714607163971075992517325666131545975941170076738326345715941489674187638804847470346910476193343929927505113936781738333819193545880242447870552075890571698690000145774494836996708265124707949206498394485806526713426511989238013434393548108644245136876644921350410611543418935237823704517958013863234983512498338991414797857838999323297527741032153330269654661777564017962771893584854478098133948772887315316454038054373495617946181509362597685033046920445691050802694536966233841440849313106371329487971088965292436065642647033143084149320988386905704140130564025293603086204288603803742584659029428768897686163433762678066591314946842044507064267727406225568971094354676232755033566636662762208424112488990912059751298092844528077140666150774299008110865228681873546960963024160686600038979550933368847849647807493966341523329316122055237169202847013471485340384372050153742923716872436014605723300395429560171577708191862209700594145029849133891420390431527226311436093727212933079237774592453395727778094246880486854242465010746756313142532564190786233683569725835808049599955416993597027502661954170827199206263521987193975711616322464500778016837692488684891874573021319387783656919110105541839808129316153024461975381246394602294630895286107781970159469389130807812483220173707085079865311706369907301975205675405935639931883124835854339205752456252703817076509780735680739089807640924303989230322503768468988355420528473157864808262311702583747820229227747139070848666423018082744820974052384145413573026509613908037432540692806366085718693464045926642312002547457631476847324567687857037874364752716870461507225187127469298374548662442416502987902661224578016292959938142667625750521801056128657145510206593389115324941833631788684140000155138721860015601661476433629701927398670993624345048731321338135428186368437463454432569601931612766120258851198368748259640096801594850005244121038269912346596337300484725563040640324375202067026343425412479299499721649047519020597047365803064448935517589202040818090981422645673173180064650144394384743148111302503269546012196962764423272306054717762502702108088201681858618277526247459814280753605797482111301865061562377344324010374026190871732244133407130028855025891589693081038270685678698527578705302864896880077638399579402820500666744278641486712062625628146243906792285977020743676633066529401347035049302027285478310616770616660733788360069704157614872916734007312555542578646658500957830691088461418832932004786427772930880669477166571879722279168810917505016091976760429670845315047844005542988498105526915215969610903076294966850821816832758947837374868350016435257305684715038128690946529022955675936576579843447886585359976429626058437769147631129604981570446878788694680308041575114759441393136845956273943887295857762042903340420743650819688977934618312695999310237977060075535628118687235486275002200585845150638552059067112357115867407542769125261867926155491952774010696604573823450821328986168292484534379538209793928235557031070370661695240760560919916411905704879295901899617459637221155588798634905481722985227615218580635218789691761913636495104135756455553650466496112029167392884463381709699901402047902533467428659117178655846173825295963499084379245689808302736914041897600431953068305806979924179991954485150924627563530052877902363350495604046065742634651637113576071613081020109042020323039737346029627105346593482725094777628303118717345478175291062521452587790809739971145962873241395205969267702625051825547861558532412125428535252996317397212458541380081076431664431130896371953851326838388702670185601254473635636040337437926024872571233709635000279810426763817648702676865678417610413361512459864617653563143048496686668213234930044525260064596377165113781741110189646508498432439712070789778231279813136267654142637967522362762154482250546403595759867520574175901256341487218303984911601402527584702198318386827784211821685226782032063044476855217114674331444033531906518413474618815114020786195280007809959083916846256953368873810243030596475509743003113795215727098419206142072835515488553845827548566839124403072076299466918943162932840709254242631900226393232011775893073379542402909744176554559047124898891611478257687891821940282520545914074131554457892474602311030604398958824686688568864205859760516393146096752380120475259278351211442248589645404003196395691345643409540347352356984263380285043094838164225146484607143204516122603355232104470953232390316106301586049029461707265041629626537273048118732828200076256561300897024299335694708766768088184197193513179823373644386470837250649373261866852906162392558755489635705194137147163237011388008633350653830994501019894967828002982928546442039418452872259783874086953546745187718214264581257990907233893124032718301181800078974569988663888049147988334376171573196257390028708851364654077353721409966758858354535986161502036753035105348539115563859570910210238136363393955996388689286370775920146265192155598235720386584178495918423711794509997231184188051340490144640308429239213985805570021692133342309838282470711757330291307100310268164418879121852045710761131901735009645410292873126184653297119018779599420678328604160283732044008860378771832251162783327067731779742520123105775895279136148421059227579432080958889479868087099065729240032720078172344884829764536336961858191282478810451710903947046642992548816818637455156411165598610339529956464419407950147614389095009947028084984041023942006634818775718518848994861669281411782608699435942970665691221125925048388707341804732900426180710491169378684980905400075192037652920127580485955853713949636419106892696139971151755541767578674367772275394990067926682448018551957183565465206523424912445943939425699618619955659044164821422673247179113964514837460718661811792189471125529380653847262436840701629175036488254076999420400173629925478983275062901384036022972001296938523238008685868489088684780563301679548005203552247077261642938353278765699390985188095785194547581326864166072328148782080010737348849197154073852667975408483472724964474033020943185347049974078725486812126139028778784705176576647086108897860649741740308252964486571576023112093864667861380274321244218533865274964476976945790216025175129994854668383193158374101710418201451799237211350342712699558372013854321070186303612786458673574585940513901514707201680397288458637365824981962253365526415409475721940601051699291332584260681777327988925833774654758303469111540094056116700752182427440301678717611401807078238004499426863068376875685668807415747519966210526761813889418237335328757140338847250343898444966541250989208411857238417545288007190365239879311593801629713956609123722925149001813038468163692335513222543219292657907708217204627927380376358840052876947027017367678196057506738625981813309145199135470500763847371353576435389386700269091308942303603239578409947856283185866050975194497302611031398457861481761822472624268898765333509269327314543004941148225421284881460776924276777184127180855022586062713237007936351525647525013080091240166550104647790711190089917674950828586400016498267600452301968577264399047653598247266722877523301121374782409437126736153374905178081983697593398962392677998303919136469646782182115219063415894704531917858967324993726292494643027792540609687760873655574387064239992144195628740635124680830811733279164164863634920018407857617036365736361072451584437682656978640297569817791381952346373831156846450432862511672077407638142844215067096684697339807499473568946373265272593117818866870284288083891327700636760117078797632976122152044875086211232455906503513578329565538326072959971746651231163002971918137086232538695449842435085342511466108855255013667226358159782510459501633290799608195513934507847603975019856770344951706617358510203078993560605026385540142213478274448209805562333052040289441964666508688951555822179560428941195016685541455463405671462065045282711463426018320222437170015675342971573795085032881079361343809363727530426848486144576465432558763450151859783005355259086695583926719886546921469603317907366763220886250182148221321122423732415954488512711835402181243459831909026979475560206627703699415048377607339820518865265251530082844744429809442506591774666853834718339277775645927263400323078959670937020179901913056131813057039522954688355736003979419078613530018266240697676684674970424554037043853679275601775473620627608330195076178697645683437793538001601778806865268292709818086970975569667740627948104146680282074351405151441108017394557509053195500273073776993069978911427832976456023821844237773511746524183957004356162422449580960321336544839531284854543288377092925806495498726339720555835122559055195995804835748107083848724283474019823642571718511112709574884282935487307981614479746614769672729476255202387436780515049109969950066894317867988862387666720965239924973667973135905231355240345500918367331404840567346207490574394022197697088873651362450353036324383554631960754122549678731663895804835204401110265943475441439038822308077212236289477155384098335140030122344029301828691190217099521288103537154092131780133313621058864754333389627690003871139318200265345270325835588095085850550712507344902093360153078748787777832173558177801808855386991221243808050568339048461572037563773774861583980547125561119915202775351244417694898293096452212749496683432615308510169375858819721778807965703431405295623065893278078201408726038197831729998732144272485996747688422211067498878295782669649920509372405062486840927866076038443287343146421301811351617101912054401609896411162815098457062612076311373943892990254774299325628198940752130701316182361896332562877716556419692375658104337047156210727244468571662363931593267031286851137399799787418111818580912839802831267573077932168847129466961546254493294971202646681913558643998075948337261358328333729970512980734849974734347080631004988163432807981445207681765318269214220872619153623875711019384825431750519875830550021518886275097261469618608036936074078495921369165252770672157798178550092621387076598240511712351528053825453733689679008216923558868229279571539290471590320774376819933896811245952292224352450807391763128803147389432564488032331566570388099893192773840346557524703594080923384814894750798805566870475120436741697193112035552410562363012124944755078483245932604708008986144330429774034536126971253944975022092201003859635166063411260006330761003855599909968329081834383206276374252431643969553761952328398613589578157174236027245696159323407095745057529542594951789025386536831422723133396201346133180498719884930766609736352123576324692791114572009254511694655892447110317989424931811189736513575417996679090786489867613800719088099955594077187808386191568843399119567713067136755972481106721552152130778919458844341713719656469454095676623005318123268370917749247786018332117372758148837157371153190057687555183693105532357982406666844555450413922025992508624370508035307349066412561379365534557354226183387671020306974089799671201419330732226586731508890333792564909291110107652782717623842179935816264563706417225000870738780312429091412278500044402845218855475716218912995974021782529141358304356953304715939423150356847355397507791989652544685234394191952948906701618164108364789927652920556033903015326028061512413754950332465231103628598562282186758312586284286918371509748892965995549137897137493939741553205038343586242368243743842646047894636907040574810084249737869377426541683845305372602254890242002456145053211604192428690493122605832308999350974497914550868767614167474832375541124144334467737183665968178452046264057868033685748012044812865535002171292038533739630443177593019065525472888088515131275914459179490505523442810615982258997936402837589474872864292884247575236327607290866727191772939247688970832359127875509517298563942657705965159712453129878163506830062621610801065105580590464642389308769893214486195361528652557893606281758648542220961500984983310033650215511243712230270563177561447082156185681262966799880987646456281247405049758836341167601272871134652545869118812508519819068290507738563813116686844322200529410798618440669104989701519562780431456530734913141562173015472358594698058391866685310135434174331541088564313808596414108803253550430358226728381413690615429003153895538718047011563269706319523453115932047283674528252074589777489883082848417477297513919043571888657417055250532384924637226657646333143167517985627476121153397896831346545758374665503396366726345497559558025091105303433523389469648213046149203284295844671982590222371287206028479346621762670049647052396047802158896975433521621020563097744731621078350435016501610073683758036222070278791003607045021918761857953514376330993834653874604340658357949668692319798598202775479035398156375172591393812568490622105848603109884698413795157250108045283996162725923572041497259127630256199245880447745259680792109203526366137927725777719053001688750655209435748875845071638828423549060584479949969001232159582266679593052740499330804031494861343144170824251788089969399180015246002831054358746496935939676956995221149627282048027153966438870784046063391786317060485277825821780014701856069178421952587122529238761088403574641935849270950710730046584572519435613241076548553558115114542012548887766195993702730664586385616353847071965470491546645280521539528348896545727886206796113361028229236383974106491906958393899594512594417780598231242331561996738892413321662123066090694239194827846905251230463149795283341206034982708968696295185751453885792824897777691480922388435352948915618306684164050429503298231143279702268045544938696505832264086114581930561921276370093001338243712402628771643812896074954559194983421783806382417706453419676874456408352148173248478554926551809194223724223991932431999498333604121735362323659543451911039220856978978032575051500268517722789274610266590431969333696098054363304279208125600634439924102761165859072486105488506321309966696489526950232244043632476225591719353120168524146706519761020750348376007289523219031377961266374883317978812973890307580117945851288890177614063461024283368797108715944679891692123436370903549524387703751805087383525046404268160166072873654409238444794675326500252148282549472595616969159247568320673326495531971806981237485142636463735583829152922180447263240724588497821142199665663845829259328795098396935526202617313555615715355754722572536054338228213772071234187957071963336192686973499820611960616054525605767016660016016155237804749139783851218208290479686548899495922385835013017389710608275282449994254457644133745424171621879668150509567326644587177091728503363978731511846566232248831546320190474704214800873146516317709717333788946186991874268687116960464360210151717721240521873745335230752028669368670073562257140041471595171047154974292594941394646244250116914156982583855986797398964382772636458671152794762615032715270418544620445698681187140241723871320376745971479998340625255782005130683053158453220940653985137234533095649261622709695524474797625403942615344436717951653555688534052112689824675810662606106356799800358047977011215811519913216333457052433905810024703024923437514040355331396052605359930148872654973770022525965428984221219529848150269483138220859480329251930312821671381743530277802227884208892180946269329030081838792360052751105061175028484417064026839319285555269467530469252609537076324824726055833735382221815542775858947535590027150768391151920009378255947671700783985638380483465118543192512377143787980192475219377388662273147875206445051119859303585309051503078305075382260669612420009724351595332269935679073859527073284939775272485045036651631290173744575959885700130037165628111663718547347570170270736807276670346994723888789515614642452300842789750983036565777992398601843183005693674247895327606526036986715853040841710462673056642052050351781879160205177753200923836694088848114047180137698856321888878881864741703526801637791434195061358271600164620931686932278928589402454132093523057911949164163908243376780556307772058155380761392441540500624978173576386998262082903101021655304837834637302712348332415737834463452008424683814900165318259778911233477514377546759564492532927451059580822122993294806467759405573291111841309272261611990300899330268644535606038561048942691206181604910896623532666248835674019236743026826283358826376777146089179626936476728079355525260279953113117618047473533875257976890539483924384111883485105978823923997533951139139986358096050614709496341269117678570976340291336149752183390094837317309825410205465574655635667923286868362590619839131301582101221309014363029011926614522357289152513268654387247820802244211752854062026946196100935915754477125278829209492161961509748316483194494156616592468921044810118502153882419496698923587034560917163534505186293245886637593219915699565558469597947434117380639988322854011172762700279427282897487249740748353512438404460995520509208079725325215258502726458749524877499207725832782049848475440366118699576219182950496874314644172468835345757888783787387781112423782345342154071535906851939596596923771949044133307922221284710234925441541180130455159712286246088617872788059819636609830600560266851379639990233812658122507045197001098240694102425929076401949439005437004221481549932533844748511610285563607470653952718579578005956721402164398311001680437630623930864901311005985445371115306595719659815618642263968225179029751123907693978117937234356890649159274372220903958647908286969064457571606027955165831822932674475779145258538362968461678048651375334611848472453382970215736161157544209339081883656284553861012600532934274486747858074374887989932876228328555431377052596909796947889137740074319185193769374607326046440645138204924386474843279979763552496754975895653083750291371953210418377831081840950403655560665824576388631816654800009684549427433830637632302573335043860437582924940421102656864154535604533600830668458543904215187866975978427881543546288910596242499984729015667154295218836698280207145470236364226689010413828096655965956171081974649647811016879510833299660082674904150845876040727909697374488758478908463805594296844336660259383381431133521876083770778010922579540518883365233139407624193431211800869905595913934187786849820408689243962063484206628168854003158596651178492690655141353893522188930520547424072701117939766188605145798782049504217396304844730206938475602147941521466619709066960959221945088962781978093681511069280639544560500636319080547717612071814779627633327773885612503079942425894488650548702182758821516750336909857234392033844483181744209598996671589119190495055425241722909362276036152177746081432082757100081696091624349671580330519237350202448048933953204387215386236227222233632033760822897281190549881112010090981891018512736677500126378237484283760563065144209911839540052784733846922264215306138750264727282901860147400702925219996591836196850573245467069505089555426365291002738533821040703666408243052086804411927747273460081224542438759994363766690220438307149071928478166317476228800820466965794637571622616734549338961824141227773018267333565046247206935487193115142533430546759047348623583890771896349599834033434777170914171259077054146738409496766174280650934541119915186604976147358366789966077921413930263504636688789489519181146347359050958210416263791620362836817276217038391976619356446787934715559785337722190082792070798141118550704136535561812881544994606563546071176560476500997228827258212523116840532228635421114631673907686708002295123461460200521789762445111149627490344897679864964701576111228571074877168165851892167695952049942072476250133829404700053682596519120058965836509364963090589733979154180077797702377592851801310939207407278410604608714487883918108287567565880883070193383314528510174610836332834180367258633835088818825016336337721856765177971384124249792458666761200324965127058050993417943135962577562742475044532194696842104107484978591875770360775411140939322852537780522305141898231428445380837203105123907229521625281116073398630477947805299472504174035548860406593746846949669810136394669381741287687516461900577700352325433245511839492815894454847317360539488849247831099681977740883911550805749534304104962129481043731624997151314930358391779544329799279299733240525668370109804589826114876685675420178736469636797251434276003608449014759237328705823924776026139221470846412589117247491541977134094511232174454061646593506610081432427036976605452714835079170162002221703816108416340123928750450072929321862535723757743110394645660921539507550707567904259178878202228888169391446614979807083547966794394523939350313581932710554551120870432628451935877292830749241068278737957268658573509913889442558004444884711488477573880493787381466078807126568361410878514836813746001227120992662310075115060101934107821880635567946888825512728933367548514872695817874915988833350747487004582274175019739200458429997663149917965911313542516593708353619408589744715298535594687489584577662867124398836258991492639033956262145133825844095792625872280462425475141303840109124255677975125855571138664204106763564947515472058215584072993849543383146245896752045205674479563415163263402494549395034939016146100847473669795337190049194282583485174490178898162089210740553110126635339831323746032922426150948688402985893992681211765179520254137823902766820159164362459629544705144473424751009145551088203346918905132681240075787119835037443574525921194158196802202656744057681553888511334208833309337641497946392354199706675007521044206247867769908671164541078122449799022972217603992366328235174334831219562543836128556637375463043216825972339327615941928429713176985050260744628684661646233013963061059368422226279405880124759509906853583551085979796018072601558785787876731964776326811136886769553626917197399950029542468777204957303068524712516897344990602431833286754871215511896884923171952571592842680143353971221222223839346121997729288382875735306016291793109699283841760406722659435503554153342821491754906174332206540627257796340229861378414195975593498780450762384841839938558350183994457501132996175666602041792536643611107666453665501667496327044635769177800332682428606787226799261592505539000959749958799649853328343537535659561767681036361804803619928641988705214646403433668519356641236326400231377610999277175168146466586559946817462967031747731209446603455377615146892582038685625221118119919087574035788019288260045009655512375915795921064072747763344610744905796417147173555032326776869483109344338423274724088830683729855176388714429107881373416009394625916381656403116304189699967645147775262003928557078143258616158259782365252098042574460962149669300312563342657409555265690390658026184347848829080106408102261799218862223482859675450203026170728248536409738900212852796035937423277448990047632761509341274708329682610445941170613704674117022494803687047586034363917907090387343257229910297876904863314362692211251710194137835830102341640379149277133130572583810058148662643592486678356455224216033352186522131838706930199499816136294086958912832947503249807488584298573918007193682477961534799443651057708760666957986218296906768296480597965093404916633935472876396712980659083612837780698388058413865863669400441951248951005548215629902399493158123771813415178738061903593968599383833125680932643768393070036259223763513037978041002138471723293172186245509255307192921178633813010691760900086109157802242254559251966151923250804916855508724398868965998527882807073976543724031309151021826565331598200139402054826856098858168811752692429636440521652958941192510910927709723195200114368867058223896701887217669951821866652424626481510979108712803381109037695776893762744503371170131129643264243797479801211250994693820636737939708616956976614028684648018342322234841997397804907094461950595618795473165764479072996848176139558158707965001784467171972540862043373715673035514640818377986341707629320145323979247755900418139726468681206947825584384195122989819074389020064034254816978583062535756530033293607434447565830636383052303398951088457411761057044963444451474316603744323196503968260019543299082416808363799865892807287706304453742961587508203951960722090890546491065238233690984813751808805973800579394833726644066167497999026670683818642241369400019130202301221583929887042609912333950538467815088404443968774568479426900674046510637488051845138541627364803659674966323210184784420666074401429497146841424642190970588664293904167364597512009019450413586401438717923197249787184851768191581647505000100352398222906193112291480831603769001530948038793914454041526578259178542952356668915780725710545238754478294850742203843195032009169251009688073477435217418163833069925972150948653669528828631426091617777247689882651997110146843257950066406180225293176502494313673629715612826046016630901046536869513512787746241627280090140005365087195286307783329890473043830229103242314923791176355409652834940102956663597930291853514996163145585863959085153654052958855082417820962661170396159636957715886749105809202934944959406549725135325261719977402441348427731468310366808760733491529067336176436010051120270764323067650743221828776964020471960344559067009177014075228406281157556963452912916981180812925539427689085916638859073310460968268987905654049856148387086661969295943916348289263716982128746853199896503741979749607652932196887821559020809142554538689998156920495827387746419661884806295361929733197645637172484562733207299238130431554451486348310722516870992771220038638613371738827824636252377128210584028594914644074178157132090615385386297620559806165734205736787732807566785002786574412732760212597191971775129567152618193517719814654148999327525383015545310418706530717124196790909038770406793783425230032343705146517347050097408769820519115275683032824483153908328946409855688651519374183374144826494576610327720590550278891421806286389240922971973517312824712373539150413071305015485403528570442931775130686313276384017089882329589144826522644823356514110408635785934851693910883295587979963237674007106486320684730519212030538280638390598191739979744697443312938079882345710342006484361838621261450898679228741951830431331329220263544064621847087331217255752588606193139511794228477633344378136907886708175623421635161278429120806834500581331348242403704819731311359938798723563830899318379365009150522834589328449091159559936024795320391766390840566951418624653407259963609816474420764437629921988448828255583468815436193558918968218091247947380013342471346080661739049364102464720177829743716839721469993604145577124654188039136983204617496633592841275263941463035126981484248406983747662316649552733585161054875804465519896725794799309652790524197722314822565660497583522629687748504838915280992719137239712036766272907619571085069484311054305250333996931591634251733635959664048742125710103773238384677000582477129060211569553133016093613394787101164866109755056595219172341194064497277303676716441446544926459678868821508517188176528373588014689061029921370541540187553365792352138167630561286505115679571199216082311351000303935083906771599662642092486889812014865007248584906069691225669061784268639125413384297845535759821354942358438186126018223078452006155061940304112014045306458334965474640190171888377621998100372590616505775304284318030794137150779051769314035603528984422389179968836545200463113539070176135803747389611157965688924520915663099141417724657353054864174477415074419701411494869175582506306397958165919937306813743118044954134835787087454131357494315651622958207725826462417054496000302588081774632385322613153364865657039687244751734885071481209270993781862547734271340553881334905643304311090938163986994779872594411622901276964356129164128682254564883444166619235073100229124215121732441228600226578558039385468927827434015912991682866500741352377777575254901858417535673662396288447503222805427852334053188195344470023025047794955982791255290172186231056841813341229446325413355149261696475329529351983695954280938954739112503579009757537262589945515668456046729364392858273499402043550547986503653448664058004179527152158216938567398820519570788226718374572814867974515362322842317236390219184777851198084349218201378195163326434135085947199553358264792832026501996722288794084665915726646499559948326706597954680121060696627530146389571861514679518702682035100921844544298989185431222744782293335989224020136288060078436449183159323497102023229163680594209639637080427335371081498561372535777657844370074475789710251440966217203399933438499628275686697438009237523508703862269587463722845906396271409702249582988899830945456597838857553252763553177493182009099489845754455230115539100037281234959994774830337185563730545351506251788876162646661698090707073393014964038576719637899758255814198501336238156658112878948688818803998979254294204259810833203042351354822684833336237667076782864711849514658878682563147574843192937569867517269337044142300330171621512218666559909680983065931583950992726752084612773292795243116666980266301294479661736407144427242935563844132859982553258636943893150710702443347030443459285544990692283637146310074916482480623410459822981911079970574469908773344700883849015879030928616274899328131688780660612486709591952800635743461082197834645267778528092363519835410289451968187448915844426435286551396553650066545173978939446879759400571606263444260185243971950598659670226062543613477317675434765017622056919259596534275636146066909300668505802396519834192934425489761069566796848343678599988360217059157559566334310849044787694283249968982447206606953142562950434310999363834571039971931287384694640921129140376402322105250298262010817629108835074618822645926246490729812290462007306418566900099751767508147918796362490858346862358386506997764774753770437229004844434029487208884249128667643490050458873766663490949565416214807015211711472416965827511138381172970518692393734827559437920525528030715204273276266155223495913270989968464027374793484617095286534990622685131611200406264484901420612706606668363618929190440819181387447564493471111998502798447528288808498322497667054046178621323094810142820259557648101323858001378770591162799106966304551122481724765063788158187558000494393976075957195440624750797889027059587911503533724002305473550257936032497670239767196252165958269998713317266282234360888663656282235967703587066014803504650427832134103249882322221286801566645940512292801489209459390150803010405324401013962111249235744189519875001434047612641817330680163115112673257279141529242958755207055186061488055070822752946189261229827747940823082722467912265432605695456294086426322033785876330235314979527535098620568720403338436293183800724069884663034990123226727482657792696841392324433874808368003576103719055843950677946334612901543942181126070854083693563444278441801487536228342554818973467119019534771168862949071121007036021396841562977226033165897023324887741755913969402373317139268397966842719237267820872340972381963007246724127099803501689339672597757444207335333598490560108339106553732172618727765854005279824576569846641955655078387605860432549289885089785924486424440860824851158624855460383692307263082782178396992987316792753026868825887741049119330191084398984659356055016946367554209289778296461434035331264292460048468159146943552279443876123036298324726144625954275249380311572128399594121172473330740209883644927337810869168104702633751308647328807914182316769482207985203922532364048518929273351224052201182375467582567878245297491722915614940308433086034449565407114394367671465059818304903047676120236094545592205763263169011829770103853971594868100804639537032076234726225045990402081429359271102764893962605315584102240132938186199613907739305197789834767937034643272690865677683738191545736405808374029972565293717780000839240591763211959981085363024134974386941891346203842057828774665847252416153628610513318452160816550980356037717991095468053733778961170852353702538242701480055019351255178479361997495081764301995625511422948963460094959119604161429593742724060339395399612275484325897761328896162962546346467999583756685949058731651531176271263494580706096820707682817114780109843571138721406665927558527253246424566634888648855938003052785931474628914705940481499732078080115270893754547892556132512939427033447216935460874192875326005899723068985667267698667380886252472288166094468938690145832608330866608183179209375301771478474810147143867724650053794107527159614871935085883577193611268256054819487424785351421683624678792270035285556621965478710567010489237434335911698563046286541847307736784877043467688598290104341249770768776272697750763925109654762307136096887411761558920427969121360510943779012056004335185437609564472133736620720304089075052017173408157712139810228768922260986826132454100272245952699763870000361299547962518388556148617923792618702744639699443249174234769007224375801981475477014967070607873326910668603493063844206699987380179385880525573874158652990418704102257534745485746483166424120400480517158162320124117877887178817702727126124949529061990047163544423019333142353393779657176712440685914876894959394204750448451621474568805857239605187267990986545136470425620311557655320334681190300959735279369740546708596916742699369964161400570835443589431655451545199982883857753327330475122071999415280331624219724593206057139767233549746895494527000858194570354919248277048533439864661597220177835050295529675809451386230234116193680117270464405270398176546328723493222695798710031393420683766568020549693889403949439266785017439882467101061986807583393566817335788213751420026262221533655824938935035787542192490902250905350386777739877114256057660929675536106629201774081882558316496205943144986982416383799343437568907190538642575309116802163832613245642207104339141366075725486304200041433186955781846258444962141528596460299699546816210196239426196333801524236205234700414810992608298501757626650541731950312926933930007329153653070218555103071465453371454068776894121327553788454438376299643218129918602304032506179106479910497979308401156169030906210081472860554594275089512394583951620653869833477884655128904045470806441544178990415712792509310374831083280666874483100540241548299478091595154795571470430073018182319995035959179976553985643200629931089534465646292483359141186212879774878946935821868174128154278759383419908151429427785444879723434798752229118426122718881187974393069289315801035233539185656853299711852534840910613210382181580608213731488074753486622061944243052711868853169679593399698350333753165879741711029588044605395679007432437620057283542460432806732560091700238774429910360301570684732862050062596824327301362284419623101971851268360916623709439475195562386829497582844442112462457596816237820770496673730241843055049006142585170306264823988986267052713968203368617723113379579809740327896372801103303365109905703117198114250034511045361893052307751557897894546548056196678919675423641025003977167934357794245229602787824061985300129489916246740365773203459610858019917176449230359819530083828714117025967553767115360272455983211660416073289582880703447102945817982692195255047679404593294992056765958245706420950424006002167925295739466652791669875416622235672778082296938574003506860443063398306165334597924864826541989815136663490294339757750985201819000075500697247677842929432200155078455284043495580365823345073393783831872846122369770061467070756300345715283255183901478600526685906664396413111165107137720542635783466690597141975921278962686285995388037595390285328848842131355211081089406770125432985998720892956702254909972028473239521729197285164572270249779285568089072898421490228136323939464616213338205540241161658118339867754884201442765763003667216867048170765216912735606429466458132213958751293002431024515413779525266548422806203359850248081545740282530627991106258737759879150491919440449891086647917026267913131386968158551817904745669557619210076657333563002157237597697390952775099941248870597737878802917670594218143656320725014579594783118939327858226863617024967187990959626059566433015812563219323245385076900363291154527325605753458469142176794891181785740523139990120022100476313557152860427305987959646467740972359582991247973819565058366955422933767506085076403252529016777272394512484699154753267615903623872877201610846021109363997767014736630573850657807027169782516222209820214871093503157692894399141505860250949609096942535022986812195468743619807540362583647923477066078575087946575945240433319475727790519639751126286872033105951682726724795074643149630181216791868821336459661950379748042120763806175284188813054458196897371250269662885552062723996848326923036856213116338757821098032927245692156079939972681127819998646671638051034483996773312282684168786304121893155219321468040446531517573914439158952455986333079543602004149114560627909289598269104033821067324078307794049731480600423424373699642443798812705872614020381229682626566932765430752687879693867834572562656930910545358731722364862601535158733387472934373703729863708593334684215175104506458112876326730205154034918055690748299295906993964950921876951881514463432308498294107228949598763552021516155383737806219204472634106027906935261669177739703502115902703282644482584734246293872856446452830887702856971191075421744819076046634272465977859305104012619726373913228627154214054880977250027499309158963722409454312572887288529427066979741713857435734834593938848588763662826067720335850634529824613245753532100774339029781490961963049198039653051090364043796797341729578114924439294563629901492327664151264036463239461743805548078093483835882178426967306270907114076940675413910894118316800974922880077874050510008763455421029160279438066520128076901360830943485996918154947639323706661358274357070693683757097369889272752504033835216019167196119685925669966137521465029230867570237685247837676027519938644751097949661624077868833027595191515653820151611721244302831478329560270818463467241803526314546159223028373477829106141438541558085779868218814293199723646957698175278775785559745284419409444267564662129172710533796686980436574453884769585571259440796404598296989313131390011661429954713213467803919390673055917403999541716062408563684840590049313917471410004041557902385500152819078067761522323597489123636683184786511569430505936386175019812180611051416521007255315749011563053340951836161285674998866713458914519038573805793961513814833008992523447814961276977264928589313858400782075521467039098330685181899140215153226493483375054268658987802534752772489249680655097147614821060064373012270755498973054960021292298400050495670584893685874921716311762580924946628272724608592587576186473214532422540411137120368761771054508066090056790368154471423575221247951192600847477759224939593124862431823110170327346642815749746417545601424557951108992701260334246140402514668581589692792177817314081056657384823461986764306857947380287875644201918470573208428381825913199701474486271191196750366491525967649568468776651401158789259567224466158501686976210041606981942318003994180498144736262611949608615999513670843409195861863894850037322727846193608942306454782529979651676200920484312387793221498310502196322954287624234321059212179824222700608635326457360493234649846891462845138524089718087466459798639569430903938146108647175537534209848462192311758239203727432337871717788304725121681106252430527352370903854176556752124122490503461064450173392616443925930581703662541629173748053335260983483907768102579076190177747203005010827219423634040029215734474485510651793007534445484422908686019756497496013065468457066783460308411437203678254216397736700742101973324886543000506259382934422991141327031850459218445415955163737877015694696526707547022028136804293358654313924228034817819032433093895414286641325121113831461631499186978280313832876703764816380848384090806343502309720592336892850703233160659726079811600052338826595170055357726763356464332553173366786849590575754865468682005585322774114561561937043809650589181776789788067045715016880637121944696666724101055605739089050873463180712724514244876398587025750082574683207075398126384653744756892652523589291901994516046087026027134630442934662150040913545247106636309200038911353397162850956776176599953540611387678042039230981083684763953221137255467690174672567184056609337256764282516106869448221538380799904122760754149870046301974759156266024344693825867329400506429577846988610520088719461638681862778969682916391684592351828440345248837988403512631801641421916766869425736969817061779064130483136336426318275199827791341066658213061727976774994085430635593169635323708671036860299633262966647255346085774140124031960244295527773263801656922483503806657788764309055922662712727153621096479810077159230052290635107259708101069952989281720942747905337692664384783623903943642595021412147241293206714912256538540846321333379051096196761562020350695603916423037715700436436126834888085982208271979661838366819543984469586725270531632060510206546022994570964863603176588634143187737554602349508253659317470873855143454113825499693542876635826870890104963733325960847343197196647629656408001815664750280039955009098617391823863711339811943383808232366169545377377951418633320527710815316254958737241952272714157011111178662503250810657817733327200480087789047370761400619102861395764188361199807858599568559322969154258931887888287699844698249267942951585704477380752459122940173220184888614078647093230217381312427245870137197313006976180643976814940956883166538195717363494401522784862906719334034969136582232243121369873182547081503491919858264296198442083602360024995369745561146303685354527175670551207531700093099576353918540209467221328431360187271550474855710226530580625047486134499243206333729689807931377548047124547496850740842326916547884478631321138037601346726256299611637667924143164260310698618991774543498899948652932886876605715256109870573457443053023218007465002073723878009095664299996493749432322858655662283555016296828456388515487084812083109923807451524026626700549986103777919284164180528061695723441561806468961208874571482987683539687538796977252704809941519922073670409205339614030987910817882974119959373913478311898751746477390864584889406331590707931169829134080401344012235160727566223517559334986418354809553873540557924646873515021874809300516380316119695035278069050931953076500794898555594127096048103708867741723939367855309112340617044739985110325240426216992869387755189368143751772517101366239622827433622528562543955183916762478659586232619871360841176258362369875213260084798556096134716571404974823021951188300955883304632929526598102118642609545605617071323721570483245284056529495217621151571349933832548962248153032813650971454071504139387706217543090494598014585049418953040806828500247432516046355437063614435707562331145690255153327461228629950399425530488840156260170489103733203093733065787268279835944044509794616455910607054180984006258404798806989460408074084994449780003400090067954967392811721649740642410084867087111673092813018239550421615876349953354992039148129160939668322643690254953091877267288828751672096753153566234438043561072043842809172059217718206089063396473863048461621821332311940402542439544125502932228806686568114732563328361275105983103357270173785479486535792459356728900939039208757426846636112419950500402066573534611183909398314647502351240087823474728098919913533109584824418489828698537611498333285799325056050403621897283575903435852552921628396940471503029441171416227379176732391745344057217293675388926791767895292032510579942121673942072545067528868302118937208357299611141627042609055585647490257159721343578854777208192540167266512707355240559813051417639240328754372794709282812497354599169457423608225866533719830871260006241495211985654373668718631358385663984975596032082533437967691737856765276894037815410717397224314147861642424394314438081034126292214564980582802533676411871088325355313502835622909916615325707044597974252553713053587971331885160158467622633987480112197608846059753692279187930301233916901326653190665360477800528072023701018247537740987522288555336161563239603187792641378938725340020364536124842579244395553476051565476447547200617992676580503672567045466538845566149602352897086667224365447980724605514094019187668975422110568854504910184478378303743432852913549307819058281923782254500328063228288260938467048279853675528660171786215033055982059613447175449164491630314580321495245275486621426599525951087239816392013027146040945962083738018033621551081122435714494173509200108391134534714615264856802893244044020645915373431912729005367732249108755396316112544254797694667361046494814361393152825401010811863278886214190479789900769374517858344324197974694803841395564628471870418793068435047632372972300888374982460124334381104251724859525460267680966012963945323762731573312463155776568675567897163102810286096927097839304383618994696807967736940625219405912886189162842970123658362993383555586369621313897778206670787289741493446960717087305528704306640198891848463166228536538735919678327310553919014534160560255520239605624105087642744002854093888850534671037674164410283673918949693126148813498785972968444578867025257856293038258145027833983480887803530912409108780201707665906038249329584543142847703586229575036736360242457225726109185116217408485285642069173303681340473332122528678245175290052576934563724743073924157020665953505118044516925861154062147215147733337982420592878644237128118288635091910479288537243365011014915129891359417998341934655160364123718645159885986201020017907910667553735026789847201019719904763819622734605762837969920501194274589828232176367368271765876142170382934132564055269238480669349191986500407424255732614205713092132208903284963274300578415771089570374103768224445987638447179594126161992064042006549605414136623604928666955218560181937113235376067653993464271125272060185182895104068299711386233727966443560336279200554121073020692082162652858444451783325985581818295580463374281749864788299871944556040393235959689827044410484997442401031818582811390181652508068458296696089751478788074745578580732400594701814667409255555044293685437537971001797809751806929292826838981701553352776070029706917837206800216518907109602178852469985698103306327892764699800794736051626646375261835053537316485384680567530392993381019188004288713403892585417037722360656164764386264821926903936556950734845723466236901052621949094806872020872100586442367893705337866912579936784214447390704245254589178301166396398870461052290985124673356810763516640766095908226056915296967214278352754135273008086437481984539161969151151427784708269794561613439630238381673788748775199238627844372773162655658179172755607484181460380700267874232036978616361077277236859873247703712864068152490771607068118035524600069156779842840905114112550279504332447789451794404561352387037147454311870492497943441716204981402187538553204825205456887302164833192830360567210844868055671744985717144494149153669518962321448610584034636214033816343706991705025309226759319813534560210774143025132707977978400023954869447474148660197108167951143586108580293525155593722395769101794217766342015847860042625258342500305373494130177146604503320589625730912858870315528821087416933655801297255370261865334408729400610736677449350539543645134676360686861227438305109428086562805160028590731633285283759934504152349999210349991990256014684103282473542896839618766068375736869917223536305520189466502599520820410123066247398134024503938263237105103377028651224707042299850595677958292925447979107824180113824598829385259520922083978229456259330102170286787228435583603016693846040126307425537246295283678385769407700266617944900553765925815395527678628743647886288836370609048200725204761670731696973508598866790312730357712728887918707150051301309000340433699788663712924923670898590313444455810804006247550525946117997749621485823421379662531565931792578055136565498184950734309753057581934448789783215766534206746215073223278326617009957233851693757750017416135272081067469655959835353513362104239824299110633516147221714488120078426805772108807457295184597222988649226146587145434016630967859403912765587350627909256144351825021511399992268369767834284655482988132682549684238430993122685365447818671538630229829576256048307389287148167230422532738591957712658584171429387364903551508405731566127141319171568762969518058970338054629480504738446671842414604220009914249569038357069719884211487788930819421489702982095743838307505398014629137765077453494465156071066900389166215930356804344965316200747907806255891700318365371926944717892115039339850910414367739021708258606731279675681142340739953678191881459663450424237527430894833214225532198768491898952004445978280056947031895487791987124623465399372104041444309517268247645402125023045544170141117293820183806814509008788050020334330409986432872644699725535111324373358630902088469726610636293131895532273614536419171060257966758015985080346215290091967685660001718820243092157486393069387151929168886677513788259801971638119465975639785099604840039499024290932073218479573620142802291939670742846231708741557548458872345689007982030438035289294166574678893309197259572383013124102462372591182424143256447317583902048911868923168261374919612346463568127223090099694127488602755750488135693846845678511703994101938617937535219034199689421257988813060419959068360215326705052955415927270811154513221970209111846184416250537974345918746381277795622149243590235590207107754702772706878738305325620336551525527952172215462384754984580785382271096541363599226308715836304713846083903202056456578173775655908620319017336311561935692961509389623250717260794030682256300013134927037312480097776833900572909719305586111109973850638913995862657611378172216810298183137227941801549353505844136687669403146694405892276832046868108451333733467280963710499773492616152151731356569667324052935238268631554142174917223216309113741322014339724989953934518289308208934182734624156025424735942025047075714650412925547439553820089622756033919588909686264851123232656201045366645361069909081865627784568874966618811715357532664074479657476715938941829480051972229277553795940753218934747828297247613395023900921193322194267632130544131897052770571797004988216377807217037080899486997730802797090917552669696118716456369407271504534100142511569050349152817384786759789572577850336574323810826151467410906445828191836030891733808792068068596834500826382404279592121307029997972824270028254648250286281892594625217672598732848043502345349288384834954478189492585196671447754363537638275337959851233253397782452233024522424195065905436919527921184851066005591384042200990384060019990709737412802884700721290272207173203798221242206880251681817688610574065487727376248282673030445439225295923364761231730339765127257813695539172296155932902788508074371759122443257574311306634404160092325783022578354452836484670395430165555092388622219882125500488914635929667162468732133070578326011310256220417682655038145889552768436597588522231128125556888313725207479157388746810935786288150025471741294063690032082330759208825606725315608578533206849065985842712352541488305534712172965927881084762535666928432210530413713564964437570981998944625404229683327692660918896014472358964562193219953716965335035487869663815691856150300778338120536090903025514331732894355227752611869029170641919544857698817337507208758053644057860761251889444610205431953332594583595685247878456797666640239034220618577655591130035184482320052638145218119765917127158243725008437567938176167150303456664710777402269668972716564140466135629601974645733634636321887085395446638486349777726717310073178189310911371311003296180927696606370263560909800038707481688279668129245183043207402705206956864838673668645437658899391866197623214795724877541757297348558155576546341020591019158109128685208919775763372083671437456538357349547095992666290486133725985844285327873024919724409911334968540652741905009013078833812748139094757677278841095928327817659813894139344642840193360655697586240830995876105096204458590232367771493679868430611299552694322287718574302025912224519647491260218992356732240997851836062053836158277101147995032786394914198551124394479508260882120557616236199761832827958135469062207832941753127229821258800719758863074040059520815537330474476899456855720503725994220555612548220484119278010829536110695602541339287808992219963837401874091351010674456473782087332364092668771180062872581092027328280902182172712167193931332950438355767947904666859719527206802145140466456208157104862156318640858519434535285178259513612713578021633071837996072164988806600767768587563152014177008230112623715082722366456121099143284513886378897698853518709930498534174506998521544389927441125524125230010270918036585721830397200201374259910897365162672694661177196642963844796907614803071380385832365533888624738512158014633719789504389571058482426639680234454817170068704966338525979588655351353687956210323573587779779401656312372110900917675644909460644597122709484582711275993362760086761624945102536707241136710411441405035585422048332500099861799374021844846557955217233735755881135849127297515458942702273754859818756119938430966223753210119539550007711871030941735612759189491066185031149269072723776979255005170485355884045149071568868966189615829854081696958145880483375894082967911955244938667190622194937096661404354080575035510903517921707622750690714936930008906805088941378211017297220745195175934814777749155858234881824622240576089000989900049496142147425439991517949095967067521200839421785950007257498769354640966245367097945613831742849240166906719510520661291566569438967968464232240404218070901667757606439436027440074753579726315064344457264101204138002304557229860292225850322939483322341733017115622656946645680026352299551375180747083975876986937101687119189209863160323040337206705359330876855701631346238901563018558612033974777691468760736977218255576221035770753823821029593294162220442818598940502102423957062252142739646664197173336517036349246451344472342986408240762514004588382022697861564194600652193924277201744742787948393537792800015794557697402843101296463937302688679078537643958227434626798781221473399389030333606952654380289105481149427757124942686318209922443681617594883017486769333718529104095093845437190350587372695306148772930451009833726416342424889068255063841457305767839100808970098207289631030294507811258784602979821180355970971648514924819430535016634380449833698795238457029803858672582817053886594978987397932379887242870416114621758272586712481495820850999183314205442887132278811738319298667689996555055851196396543903959665336793211802379922754950081816406064835870626905134851451472705899521138498904419090025402505970780564085473268647871232837940857412203307960877274750674605807137760619270837265672766411094965651447832520303040875388249146869938913072680071665497205469030149418221312165864742242955379386639308288507740572696173498391199232577441667539195387835124672837490148471102204707679041647034915473575472530872143428471116350811426128104426949411584557082588776880494192737211735806133004280340282416687384317891896251216083496172517114016152290101340860927424008500560670003269692888850258633078014067942519136614317180592009476718682344657734737939737520508884479814037132879103982205688836747508672724628599572669514504561352288378744776449198429602149550274007881790130169932869405840265155110539559223289664038420960736810598597625054806031127503672221494042636535864985176236178004769016221930201943157336136057176539905835529752741002018009911884420953979655160218148521973060064971842863427872567776684623555122379391624771895318573306495177460669035629215833883586813356652064097367593065278177438134112508830392196967614363795460507051800804065441643246136783136033919528725337768320803112101396850563466722144976353843293579866490280241343442724318444517931937830807545734315562863535675718857253087434759987885962602249354326234235620497053487851242657147958846414105916120884613081769515983330261262405119162260796498969373305620507701322053007254859611158425626862597746111504679165665255973845038351734412607226853093732501609716852244991393623992853827964305594068594439456176999180304298471332749107255505375713766976215573802371767846989649512111514522583429602662911271810355117081652306542696520722766487737795200361754342017128494165610054859789372082107031975661294934858764968724640316143636005240094738983929791452910442269415109376060048787854158489573444209782876398964760347353551334057497989106637257428803959370705800326674748918657736431707890078129745703116275805510832786118207061800754624133932530203990388257969032495203189028211527140976248235181830074843497634010747762398747276000063249550738526170835994491857102330409592611222288565122359432263040233229104846564102210760545342674936902231203281175535676357120432349916313668528044617620370429587248692703643927546273430140468178445948933089560837849009474681997016534596181791093772117429891321441261183615105469535745255532308966153197683675570033387342706507439410475559460830389773671626216601874718381039565529612344875049658912078296079799063763499290608600825898124517172804309027813647124754379352272296059219272497633070934134602460781236155371084383473520474278693328132300676759082700772128598675594152318044817922928757314198699730301684283796021354243386323184038351384595334203265963619189714144171619828944259960977771255738521077810567268460915457096268188065113753788662465732866680548556283151348826560646233336223642318389997133021814845157955909603479633715974271925732072537622978795905969023295448349822001006157919398675132619509603530192408683144105389663286402722334196208709196344227578128194822613759226779048917368786314251887092287670847173494069018136790367667640315624742650316091079227551530325513964974773575210275993712845563561067139847248435027524263996728136543126666305725718053778996204798433709897000286530674999321659026839235484649359779689558488502004788450920719782393061625252163703541071986713023665047102835501722985082499565250403277022639429540368363136081351765298381771869402975948680181702925078774413313528860739121618121230774124451231822865707399689248485773716109011852024288601812694180854670251188160297553786620616026410540116623951432893180507498736045568289115380984693056536499408137868417197953925757060331876708618164033504687799843279495343964798738693842938689624806186189347797825470619627748685514929962728077633600259134840683143230073024615774214376255043869897860357571493783135367343351174818996969142467002165047791083792685744080501937630679436659189700034713977740441076865862920769942301231836346165946403166286491625294862775320123920567456059979832517233819788990621373672632042991259818084830602349580704846616902173132125540348097705629605217007017091979674976398016570138669790515043126518712099108664238456303233619301686317463458732678317916453872092042932743001168846638119805531183977574936300862913595874382078560489521558184821443744776646082720301358059313906749755054759351853480907761879182412305501109462785045386187486501077734371402423239739111411898391251302874792473841336328568381055421997289952587143149739834566181261814248057605475257804767696691612202107253555220434653795684795698166709894537599318872353976170605137859895975573117245022690726381804678056812971774002714763055353458974482507180755061001113553440123429761316038478284759206255643651690487468180367109826528930512951109267191200118769984299391266375835752911846571704356294729035429546627557477810345588882581807252896517305635351245926389362597646302484932283618127054258715357661925942286372730980850926532472369085256543706702209800947639945194823700357128792830832238623312580151516210675328332520088432264399126592602988514209458132670993879770345700978990801349446147083292416078839612957187913157598853902357975089744914011366473387157933137060002710019823857874596732845775895282036607676162762492619041242380316160866073623328059606307707147626987977512801525987780491973728473594591759490454084286139500852150323764990841840338772996797561900514389396665125105751008734822034367208427249780237884684111071889956991338831526457573011269457177545242149374075772420667439568990347093975261824445036299915241307852515200194405037383652643679196955472868240180572081860261294204245286511027462672805689568767786412571666027475768399090475229801722890143441513702852605872002231282981987718336646683287996972883702874527869054337506590092233390821722626225291645812104781593667549767916059131575178020278967959991455537603595243927088952335463919188157140410669538167073678480854574590655461315875015081035459636746939102864819903311460875796529380993544762528801874924942033836044072293837451724874928960599702246628630680720379501378070532746329642532272540054274516441651915494643703969873681462570593228458289708914447942336206597558095708025097962741810186546986375990231868397833009843920373723145491138938609801470542451936812086901907181776554472017760432199282011997450885357798253997281549472275543732985388855818539302165251939075597640286002115053392173206591851154149536835830915124962876192626567453171327578423436986828560976663529677517009061614463420313606662471788998809564403051172793438700203023985944762851566599873150449656665917086758612011144828056897393031461001600355552997925283853493857970003045055877683589659312338430510512124631145095086816596728826186151768562409225996858643886188385262367846849918929398920520415574880333921679915679283259627874034068998462142919206869037063559091111489993042252234239048522522435544879738118675042355781732166500203368000966267507828738426541210416261476210279853598141409273722274196014801556148889151542563468975291543706753507180215422458455320360707160855364819281198825186358086238694396096602083051998541565009128219906218836760387734832732668400705029842359255852597751096530408454877355348684724351387846219695057050194978783388045816584496213847485599651353225074866803915976912811973808828639057509346420814337095589823895991547916990271936014491948102894657511353297236513120935584258288495870037427609844866021028965261288929263202791800175044780299588972501417784421396977120220967422662799961616978649166668506059929188053750389262810582829622579830018753961890156973217119624700179060178352777792291990298503876014679816593551386887696708718690785087353615519285787594490301401567713443769459559753330904928662539857279778335013433779556330059420574313209846516639460570594396429360770099154952504651836654700446340131779054007844439118578422383166136963160434065956898186719772423195537962241133637762073750659313771251898492914464055778605120673050073472830335728127302264429791480630956173989714341995862079873626400006225518914519235838130173012756776136694139149909290864655075445423592367916494341915989915504093207936111782490870179174322345097238023976189297544046896899221571079392165850016914943867177774866512788728890738710943881733586201431874319816751126681488556925617063761516809595427119988399461097292197215781167491665116197308561560802555440104334730475717336286767186240327483310958787620958172136907641746289074037539783931054056131735654845673191989330036250787376217277143501637739162342387602037861510582417173476063123281892912908625440210353814632852024725511843384322491970983072489560599531005882167190940468565758747653454974541500537052642662480206871694850163190124250564307971917771063900182689070183224976727796773054670818559927320591729399424732726977145765370739341706126058762760883065963619916537967050838422300723059031507008126673602601617154074638883932972774007608577758852219880492296854101691454420669542487958634442407376805501663265485795667156342483745080543469398789053645183618032932051222885798403435051940330025666218574821717915751902938769036290258489591804172847591212958251902633874534857160407669935497131644527902495725917906779545238400768462566714462438049899171804769655451130243060145570541371878227716403221781092506450100417885908434780115625050556514505118301732616527767612863217481533182293689424918777561881099446752228844058218647024665998015485999584354654280977916343335943999695731388537907148192932917898468266315376462111425940603403906132014426610630801264634910358599477510299834252333844410089702543835577157272367926687482859744871618976184380314936833217866449514296777966437224152450472457418316388242748757562528434835748983972940505305180709039795507190585981003755721191204548275585542099667869013896161594299282310645301987545934919751673044636632547395304347268625191000777860242271193459133991203897550888867558868952441774278666590577302810682836162084513853751299974641602388204309976088137896922177817298896031007968039001165715848506815700395665105549360354196565270793175271217296031842151163642035218277279340982684442034090943455547659796644747739776172880402788920454869923543386580900667799308877482451071935513403272499989968715170009712633463145111804665278072411769667811868767146443002521261692115687845673176872883220377265568470786631854251812204842146266298485284867919566658866324276768934790257380940079854538834873907937894766056512760515716623463076770200584483503070750650574683390284052543723170968014375665691457788149455159986974325068018228942805079140194491337146167271682276371050489260859322149297563935780457649445781941258251379893912019321187362510712846926105371661650057011899796191638143896032787377188648049867734204209403581757711680153349203371552984133827458406136683609689603813615996505128386051020992563689765936341316404085192480806677338411226814381593480618886519968649126796147979427904442714439155392637813280687306283625280530514424103280499761628348008722000309158098044289732065346393789594181748171429910585750955861282236675251274916787511115188077554483593386305753735019500190020725236234922769275642804969279383566367580524345175402636187264031965659362132571535166428830359529473840027769348044345621168608036651824785004321399956007647711100329647412641877543767930284988965419752910376523725603577045317043165742995254270562085177385117889114674783439938130637328824665425969912459898315025378555824724280174423241608339261977111780869830393396940211704648428230086673860070329062900582327225919672506091191450418024776322211183708987873763014527015068176814284056100625700070661433023737090388876361807100284858639731114659108696038588336885627050463004335996522740959481116328432114160351089993415369004234793403272173347851306823435628132279891778872664729796072772445626266579167163429064493334766052148474174213771308096787713415996885782727377926770777972468331224745909282032061276808885885293612581708043500129638620216456920133532391476303453085443741465883111803724377154151969341074598026413342861942092184789967066987021472699519838819911325797725808300130664926958668619652586557032229885788909317653949013030646862421169058054357987479205324439482561128908897648396570272902345278053052357938853278269496705114641359760853868481958059005975742861191611611496879753198625184881522663628598890636428874296959823993807239999787152462759552616340931182895347307734149173291030448912790670232395465869952293621457550348843577249299100299188112463635938184460092003308080527745134921581913880982129721272915607697083303297152908973433856938394091190775172505108840490854335784819908161272996858291732181740019814454628496499203405254319320248814822197991161270472454674428800233782336680791945721697497789215995092631146971274434765355475563992119873451944684459155441387332429642595508505653379960187295709796373475205823075100407488921369377499232318170762051121837422869370801797542379118417110504447199105371160300486492795689567427114824964923152088797328204651359260047819385685585976187466692197967772300813025006582047849252567786275803074762890754105090385030092986410974211441128897160250019031111699787341846637079963787711383017173414326793882761271511329021441212814839603191547263626182103622160233745232299123751475740406707213501856724343165597695254507394555501718434957228140961465456851021749849510299500598421929350975860729186208326586659788181427707952895847766336191970923812444751246636245811355638059662612073076618290383114220698777334404060437281629591522483041727526281324239725595335348008070766615991304639927532191665258233089621209598994809218320441797286964140777408137811315957904958406317762590371135763769061954717444547063159697146261178706337078505487476538999558195506338296530698979296711584874609883850511714310936355906867899213169131986037135905903438843776445871218096713600096504995305224331078470254198142222076261895190911895910404580446865440309821101000666182612761688088267142288222028523156265285769890341145725584037518171136876932639480034112822488550852854219706690590179159984755578501983244287547761263174521212442858640429645440018061496643080562721505210876002783054433431241395267626025627158069572157896220948623401464540697741476098502530007043019067046064096745790341484028995845196603293618916316396631482822249720860637070181364383674854801523311784568871077499013921503185580344820687152819924833038401408991708339858751194281822313071816949581488155646085635858634780336547243797026464174778165733690007485570927215127698299572725735867397669207740377131157602373459712025157536902425387362545378798245610901133309351232359258768124166992062073812380511473404729348060746012207721594244964295723267533896054974135599214306107864454444602886947407698205287529214471828369091940095147581948097354586792320646646825638278301380122549911408526188079168982621116029397685994160553730126032802694626007226320322341645499835433454562702185084622522779345267200934801167586313989463177867981948122276150618017280961736672362403498930577443770459345208829668810502580285960719365353768060263733445075422670139151404602738305556990671048955074079417832209249300872409430070411208598352481547429652671346222702785452355246748309976757069509855505321097589380995383474437365377341492246220559700037903756066630623952843423791453021335107618375562885618563329537079656792617309237176520271894822607503208011655812746448208064191589509874641278542121401936951348240935129436815974027524421973536506369614298876900921180028655186705566606798434233615286045624448642417906471459308729083742942941897495244088130374175547644604097272000505251076470097579373625912415168288876579073048586904180592059474230488108506955957157937891522143180626024563406960153162307525285877564403321673287661362927472933069980881569330801033537980176201061626935587593490193876500460486927910361941754624447454979881098466443593986324050075628392873203143249748453794218898639095818466058359696028748858253536475459824090062147304876166339905854695588220197193550803954731275941747166391751348282004333900868556403980356769985403404403158258217168491027877461933672227326841117123436682760697688516443643506621570501141319695680238020231164542531615127441221663077103286392644342310482130601503097019339538567478325350381420567615065763425875304151550363070396152114630309075464424744228841779078071927815607493188948351859970702895209517842319145938745140572082967643666080219734132229305906427473387301829604935597843594151940409385544791841216491344416196069478092503454904254937010427922505217247392774657428086991931819840268760025664240394651378127988308911022024430707418453378474692829482352815102118471278759255896415443535608095761234974121337822934607474945088977895342493708201475433466907239734262575856014289726211450168365822069251183374366774003015711606015165611705016942019550932089448782123141611603936841426654007732008649076456486917741380281915793270107895143229584107687685718289014070783716263598251706331989326005832010196362932495899383824563640366637015438201874288574864467023903011382625093419434716600452808354988778789653256748945229292938604080338472595214230445413270918222357237858709860675096686387172027886136533137298520970033220798167365517293895322838973566703062841234074623546471648645483480936026410648458936210372051540640264440619714059150324452851560678638451932768998812145362191482555307881402167009909468738554856104268201252298618693473493335572884001064667708362250942015058525877121683192164528720008726113947327319554616709024313247866451258102283424318422405389354779494427688616685310752801175721231670821933963264579931398790398014252858284809936846238887043559252706766347423629598947211334911488954368478522484116814614213179435706078128085277793091065489099522974069474482565670924898648231503467643248994994527626068725068620550376081124056970159279216134717039514988866664975102648544640136831345718700663406133825080080351959320245618367785575582326536720239894346309802015124850025283631450613411930956718402568406109084911939966717179803971131813705657311973148717811601742798784685431954808947542194713086256359565092436678027759114433963752580099163645378835444439513577427470376690220228689149712947533633148782605462043122055172284359299848958693561637023952308781358838770936312840940131886477183718628616311739524165427015422892047325595278957405001453855867879390365398656973358730772373021707121453239822277704432471853290480034353168472187668049156903918846142423650416985510839042583732486866868967704512149576339260319780882253417886526758636879532138713066650667235942364914241368736345898314748911578485548983813285220433982713156605893618711243633077744681709939511641922532146144950019832598935377879114946961177026439822299607110999138830963463009414104294125602511849483253149001677270271478502704219968430431969441997652935878258859696322928277082776942527864926948100959197011213575175067152041028597111586529467717275764148382159706602839147562715677288996354359892593405391812005159759683516351241618168013280093380534633678537492219682724891870988387636314130504262721108642900379518289073104688101878148890678448322836726154493265565735562382680907703104469915937517660856019148129162915739879498771343501101988679087312929047919894415757420150915278630900033594150629945432427701433944405761379353174217875120579910285895676525877076921984384606059228715620299834486814523436272353393363584491698232112731121019279171556034030288719040983711486861545942709540451933230874892406462676524338244204820764655411708562649875674590596838376904296760672111943656785462881030072938412246195445299696889153568627972521594257108499647026544436871891367408263327424229309609156184974227538349074901821005134529299946882332767412244867271386452064932804178811110213457334426607181468810384712843253493473474071347996500146505579896998202079059232399284171009031088653865572458177078291829661117126034254343257640264703248060320617774257805425254559746130048271024671858443546986488391861035982302030068678674531174941420358163914965801933651519886166637332811555366087271224747277497303457845885693450910773602729912014499690378167348315992385114896382129936520855948689707273624168723503901410096501539433479776189414942633759630473511524385599988112416287074519228873133998856858646358953897109760585585995258115055902884267516116146451975057064402475807048502616152874669536450192329111029302521894977563680460583830091286594231419102796202118517241674124883751113869247420012683088190352563686696003327621098069720721324503830101659517143448597858487350159021525086322364358623242029118434568514975114157645143330538136247494723321573364346433718727501515267823211961863382241704245931779789804264518361039370946326761448641385259418361747534861335336387536525421326324042881702393701856606865904558855878264957589820676746908168214790967632865531503558803863868160651516255229682549022092867420053712116895541495245197170709758204838103124131888034207041039090604806701236842566885946259419118611918726507892833176821968380115772268255245453939222572591149460109600821812890585884508071283533832677653958710340329695907469660387462605726393372509844635531318740027617458391174948473852991720492932202102338824391109140960491929586646218402261183423944343881693491430440673231293795051064395864676731814418223863394360596897059205297558142514122615362056667339707830074727731860063858448604004477270789608861252935182565737138359290279063233378519643768935585125904330345596188606391151876330148476750800693060558777084804574031778692365721071642090669759171707397345160482826229800172694148479822085957729098698741314068813229153386642989963885613993283613050451540984997152310661694921688613031962146106113122685260433689702151133131327048546186429224175882641034548360053676449134524800266343330385143624886195369176826089342554472075867520358971058563813385704885059564431362742228213250854448330322222084789220821221389874575242803322074006975615138262563505005352884233324645421174904959710638837287603039743992418425646714123441145612372724829237594601675823368992035793584563483147503207854604835135572096426207726475198027246451787093084313635390263755584356863354232829354729701857196486719509972185731691196328717507388739322428325542907356521402367767880708022615199017260205548688174080353725905121138770521840394973998770058324391004829957887698468135393494471268067305702039146962033650786610657518482723344696464129205303006431476258189879892520881264344074981100196947372553967518210682149676590048192900529572880593326361669591056604322623126184155686757723526788869542108047374409017213327837159206064717736871177415635334548419898128077436724840268401578052781820004012381764677109498023820729872033482713444091864823925820181074381542250526076554097752666964930870124057345931822973460950915374588155894725097776864967248620251074453157836392612094264676361622782037828296620104884793647131516231732062052627563436314793123948109717340349151152315689476409666626085458736376563228462235455724116927214340899607495845368367499704042787520333737934381739842397920398878980806413783261322536929117419790247108920856244726314609693263353004571441770596146376119989162623859243851790709873079317914793428733506708241802469019998913876672906557111153655982528829844127403051539171508634696144456794619933726450944563937041650086977689623982459397147364156548786962956568065108834062806937474711967824714188360908599022731332669665774274673161693604598363623350890738409429399352315126640465566331233817177020109583782018715068488140441802443891773468854221777125488678222291329114856749267940657051821487829154011684117675407363030065667987886007755253898719078843314012138640724570105603531066554796214257620955251117026301564736054197261550528346136063115257245259739031103585885897003818510081167247061654674597716584698351954767976617519916928687671766480915276786341098036116880764146037902587132003949299438158888643058325678133961991447638098781986609691776653134441686781241331418445888575772824025002115559396545379070420026650706663572049964609948158090981720131997797003476795264859576454652779399525616360427989000735381359981105171254845210529387637909963461297850282989864845404361006113450426634255015790995496287316725524616412287153192140894020794131185907250066221793365648340890065756708559328291267385921329448017749285624342796529319800752396034498064061419323910574848900139581227007252667172196140188969640361365641846935909787894660515338629505168458101978388269937648260863845950449565315391965891274129473805898984220497539933829990134538640768138011985056230120327990012226420537322373892942327288108926798964421454553730541679235614283758179619186803131118900880485868180834656900453167564658251159111390589420894591575760842387412829449732491733279268674172213557932886337703318318439402164579547234582268023491287760941552391993961766247533363676128457674827381663695060244813909561372686011504233427141453265121954951365349794899275273093732608591269447100524590657176856167499035841094222826100241619730003648049649140591701702997445073529087624043484480194181818960066783864770860050239143952407956394544621342099147432972524658171742131970180210790251515548986398951422785722071454655059878291806291624857059078968362295880265823239946640993186086384330894405072684855757464973822196060775103658991496786622553620019938557427823154067879971422262150675044062226027274355866663021451568925474477048819941787066450333731336183986780598603269275231870840345104654549918512827246233245041445289911782231907322022802475224159976299863619551724651158003979081164136385164454998073062421655234043001312635116067468277086215496657340832505946998677820057709187030449271380856753154383016126915639932783510171624231243619278205878654410589794408743340255211156537112178433847992401110785824594594774219902302115122349642947218612725877192030283836766225273794893144999711045564570625320898331668598702767714630840359336354672262181252003837077167300256137030270428129698004346787512214192202148063379316716570847074658413378594613372920633281743618078775119364253620923477627959135318867160053469218130743139277170034444911450271475697945982106389814771360823806156111389515596487580952650355271454501660491473334165156288560469442630951327505279761359168464131142978872034727977847611553363506643338936282251050776890516710570593218591936600877842284120045102373652947850348625466572265538028605550492458838660112217857775847422472666456345419435277258843007240971423920088218529429677705745435734640171892273049822123217844503132397445669933602181252189306348444784257673862234979696444966073842211704848293519372428161117952387235500462436130520918331035220616817590690515481208932889102031130725013776576130573757510042624282831742045223667928481458863555641038636081174334131399440769504131001812286108640732840610262097850172802964129156174217620503075490728979832015815441211821543309898532504759800632656194271263539028026593374777433839654336138788919322508235080824199202584621810774851953234223151534027901492259459059946394335349272601857654615150674431337330743365369197767724090175914912781699357725442999085064474445904659116349265145641210231814745127090610926764205827469599265760542242519482849365102299325510302710179288409559638666896860385035629232861498528268508928070943227361859846554813006861346077496749921022454438567382073819350655333931208401863013420414392130937642046193560527928441607460799501882930594515672638871005646324738534331511374578283577544751888739290021515082539321637105267430024430162646249444732953751379773445461197715504523811491586155536995786449534658494319130543676960207670499334219110081291066700284925852721660367260063031361858196756149514718746322860912044589767043634794457330780252930429640627827614383994958481477134063028086085421744140802683373061125203855093902578068201910240201899535483967339752504606082490605993969975590658760548343992710983072952817197639184720745211700222534689700580216350797038099630836206289525824970917796434361185253699898547864626421523090662634822168481785754495552257062185457525947440524232250325593195779344194546990889448939185417409185343016423857559606270966176093125502315130746484106960129911525702021276662243770087184666031697217264858852149843245426186337755642766946300176999074904623120687663923903313020068515162985899482930572326074222705915605495504347305617474761144221894069203304308219668852444285285683343382036578764587657141388390407884517478737005069796972543148610351122781868163332923858306041695824272381507185242017896550418629165555801220665666466681896707250145627064423758053573726813477658844466960146482996995689265692055519836651293363561419094096659236974828199797480730064392932603700693234657018550161538939486948580344610414502865025481461273608473369945651219050097337579532015110183227310158887043413539603817934224584590824164073739859884172970668398849408171784737479642435561020050615744771035349906911620261146594257351687139796372195761950621709666592701292783279465947767421232966622632542266071465389802190100875835111319653027045248526232405107553559961761392945350642046916390423182260233207739004505000361356161477503492193092941943761900751128195289104776662283888826383511527590653674381990289352640529707911712542830644738698719102906054789708779826951307079794636133660082615718244365922715770494928422498400964942765597263690478547446256292779034741621299699998487240000864919276587535920291580121622092507989203576920958817025051702482614260012829888206632107590867421342250496591615703128210293564351277926550976024525414822698981261373282044546946741360142437438849807619584769685223078860263502868583529372203957455856804295214197400543066741741128517470557801410154626055457354593240858062677947488139427259871971287457274942322684178357607838035661771415191048595228806786277742297137357839512597305201131818233111193685002453605183685796409572084373181659643563161776633307073216791729958258240148345325708347813749896591985951354406679663330626495589030334448946017377685527630318437994672213701839982797989979436586434930201018628083935936449001616711228970390692080112598350806054793564235394723136980929129184573674389584593608295644460772783246570192803196716896508287282108487790068925670905673805332328365146356544388888708833707328235557229769908468053224160851404026029421686584277812308024239104318968087118358015803179304499937392063300086962546622019394516757692389328388935074283818460678307715869431824657909137607285241460275994247345834285957692289265361776185294043459998199611104816006894158785409589488682573659468081883522817499265685046441811436031919385852881668209537819747509982335029082788051610220242443787144471739065088220822179622585958185009581358048681363079839080522217905730286178009900696654641791381106069558898864474524195342274773310095411323497120231137694468914320398479554551068669842144267046100793454287557013093013869338868619148886048127579702826255818192894817374388080787811016249722294509087494459358070942258019798546654158487802643881532050289942890559446533576069369326983627028795945863100662528895615128997012854212475594133200298814765679536686128588318856584496525230103844984136549710932441646046908237541604081463869396948802510227818061603375158186745354856286371546393330804545907480432950912592025702934990409857430437441435468811244467630357955532257177108844504564069856038854686817449096965837355039668101400118739594119387920444210930543875867286696088034892005273696488367680279267248801432518698415352427407827900844771024524741496712612452310884282061992043096559793247574718107067404479539395004618788776948875389215134571415835856806737683448722561217373601297864845574806213516665975301026088383275981765117084463777359400386062863195772918715692091123152025484732546536968616490909742907420445921502740979732525528989039247105288535282769224205882504982420924849749965855232535538826959988931537401514242837521835950524028276906319486518133749245990365641989927206902514058490554597069988321438080572610924575520539694936761982451239311591825374783839112913183817207370581793614465627696956990671191664527048357427348555251607704479182647151416031453665911950704664703527513778808008199046158010692881683461037876850176267796040390194420735702012383413649836641351852340785504453179487376388326368293647258844829981538025763467344158522939174063680254944778849179746995619675223737344010777830549890737617831928300504239517678908873751051630821251844339453380919979149812823879816643183076873341668571404506740128656961075042699012494713865991521647760714083367964311112183081361930500157770795053970669225250771105239591252854686512223828137923703377071288486544423091807108967595803639130733816029855872935954519891738525057122548724059730904708371288984913973007611309520761313237550171277707143149074256385541089334092512322267947783607703318581426631907152519080179271704238016145845831952972814007314037955279935521028151086490530120078844349668257567778446885019210751210647278197597439648852467561887387369393116513079934422519434328961438594032499568230513656756566673703444356926381454483084389886051664990208083814112528949572780122504956013377161170062273059793023680439125070972850914038249302734001835087335868021619817447240288500622149927657718647617060299532482245444306260274342092388208770309698516622576158106589960761730383928018911764259811500983945315490089709307173540510263520839933383466828124253683691220277008995506838518260199339882069945995883429241917077291684980402767329288028460349643530670680217162442248952641157407501859999131877644303425736340978960051140992524775704491556486279105706705950092420929513710745704208233300849543021788486460196179399873299534756810704684506480029351127353401158109215208621712179983751622091878799399183591754730421824635341134972007520953704391576792863751319072281604452228325412612047714874436485624241214059095873124338245452990436947329056685708587587016966972853707442454603604699186262168976348673542020779852749787134633187882959534848822515294248436362680457503125383619766829344332206499044240663867255825369954994097971284518359899300817050888188135303553104372026168663864944669651888075082730757341667130818069013980149475778864923752857804850125582292985732380457204862747377059741252112453615296144885549704192026338635031711793228140225105750015075685707888299421658359661910054859804204061729544704409776115308528152826800135779628141095661586705083831943918779476988260001691526543277597022411014700209884894632331361933132126835108550042224139609525501698695922262779073700040809875925652244674153701662457039095135215352951783042112247197397935053718248342787121842325677275881872274745311263285849759424225727983470523634046610070802686342584781353606400553870576132474956745497168967087944156348484686189671608649835416242892372008035806536469081068816220720564373143251049617347421574203575934395900435373381620197214988191269148426084201478204411297478749708681511801270352897868508646092533704907842431695236235942941364854353618825633565776640432987080213350598918207285626543287375635705499365851001966120054517424827798824357564022451602044644976898974465804933043967602747623161532381135495943785011447656535222196961471390860497492335849999424081464693833468417884566330262119036670522614115243262728440389687276982602319944442629110551765111810125565851759703041596043776193618057754440142589149827803854650146006114438147639993596638039695989924056841836280687176734002375012695982114334755202657282929012018055901183180320273365594385280424074801304122837551193168777167641395588571131432012537683090651052725091122490742452971160286689265147756497080248520117734614644019255036807105321781916187299940929714616041384405024333335001676480940607247088323050381083310053599445074032603635249961073296832678489258251547571078048100752629769197194561145467449038654856726624976818560672059174549624226583240436766653461473327284986256905813858859361489113368411836071224362640216733150769309307561141897113979535953688112079509934056724453046646137506207370044369622519144996620536746194821781065293096983605475991080362711186807934999920397500616827095794510156277157662203631720444497487477569684279730763919137760415002500533426959453604599092680848440324571631144070206630754194363057466349917891971594065279440674080093165300391226494118164749985826782450189490985020111375365742531136039276049333780132554410832410220391977555728062860978418914459977444554766599286594323709028407712476885290049048896466750540965651417584450962680374130074518399952060557605131320948877788915934288103171961346147943542532849938227341751267192668386547416642514224219698806577526359057877262012997673857647226941730132631285931441985272877688626123411491806149474937149137043135870345798759786644075090467191401843478536035268560636402038533794587831698816525910022295818271554160655704741752371279572393319706625532127526419321825312750739465900506624372416868080347412488396486743043553001700613041272212083970676753249178978655859203039840093824265579834341996149275913522965212496480585489804181393651683916269233155223493569874099669150043238254892182084348322008082438499749726294623316994569244313911569759743552776324920349657782628288427977324563067483834956698831262654659270055275654344121914523969466667566560995145485119368965475772862618516412282974229796818706156280196436955440597497778685738077786982176987458768437654953041357829428375775364174244586455331738507751529199747483686777429422201677295128314023393017428378812759895896625299632802490884389480708008254626609836138342892901019820052030148595380588616174310948887295970154651477818265691613956030621402288436405092639809717289012756016217185504060417941860978421630479554668972562495728945133637084908061699824035779155854122824864320291859061374309619420476092910865353135686571156539233711964673800487811613547401040382144668373243506381686364896125132288876952396001708867289716292853024100847356391217898069486791577915558787138072290601549829400421103262255273535095856755248255173732628277665457507007740092675238124519496891211895270887078395641369784539819809637188307266765925590544031049366087711764015172570765286931636095105764436202735260989818048465601749376186121857850827428496847625375502911093688023022388670726059520178636468698742432350917701800167766525731674069255839423894826916840290035641391196836707456186710871912926242440634309159389244938063498474029943748470306651733154670480564597513909473069070518900940786940432678358837757991627635930573201161629029719572889799454533099888933719652666054937300256956815873482126412137198627964720553053167856137255811732305488530951967999060497981484083652334587243760459950122037139775481072555753309534615332941882930008972835260847611166075185256679183767701808490037072837011759984615003423224380006758612842914403099268727126818378468443808849014423107850649198111783762305715709099834934363327413052829301351459160342344615348968461171020232415559727651405503156454518146485376121120045106410554760061211266909038773147585381621166987686660576211508413992476786463983266327311142220437265807823544093293591045118359896795170250544739789160490782944695207850187876630479171593983247827038628437307339532689083952666697606347717326994228188603733675366750784301304286287811787324424869347294998434392833830543704029744530659064608761602275753826354971834161536612360015033762064547659393317058061428518504991118075511375664542785450169740048602849658340609909500851803203583286321564370951490467273031990274241391680550907807461525213692682915554054227487538353481566228956909130325878717023898283817622465492235100942628578981491633280934314141138532796251394847165986996186140884157166299835259326117637283173402467336272546111908910345285911200221691099725683343767814657279596651574338581204529427930863626455154596202543149112925918624247157836530147998522378222610706955035179558194348148776008849535159314929460748871189518458260430706446187043698319246842659113333624828234621914571312809227780120760951834116571253996371230264175839027683798331343434139910697085974297464132868720835419385975320258952777038338935019927717761049869577851527270945841495983746846337077966863584366043519033713173113146542553801627618351090626075805182051467896362092754712171197005331792308641845266525394874992670813996573194499720774207197858554226500586900146427972889282364005595454186241710728953985713789628411480675228108371169607291241793893341449671262335456637442698364755246945478544723293678906696289617994404521666436938202688752733836172580320422280060066003678891959996652246277875580301275959986786730586371746091403447978665060022714541182678109109646733767291939973480645787089566990204752359637191995978882955875777610136139781309491688024474421853756969783399382235748751395428401383339472316467411731260020585389069684209743565613203580865730547563114344968687818206636033473487629227385504475365998155815003851986548328782012924990966549905357388456747185750594643695996308042202835298306498740976489083638986300015364553006473343393626667739911465073457628920539536438706866296337751894398207875826697162786444337632945622367187751307163837827233007112697426744281214706476586781030978448781991135096970067383453976449389164473697849782016669095452067367303240430298425934933334452318378321189701015993771793281260894153136058885707713803569619813573359016983981017184929042827588292777001597511339036120181500416300934745463022983078323220216062611022571272321894574885410163349310597549609817272701038815809542782919571213629293566859257995530316073608772118128213168993627029394051997336766693049545184813731783307114098583944250596304476839022154448873103320100341647162392205090950802109231352851971412222837600064322704571683713737576605120173056149477880402980676338830666921924103993212185153231573158517000141005639672147528191377179805376970708711898678229730982086662011010801685903377057365733813044228633674534456202212469259282737736993405339189862341546578974073988405718216417331687860696162224264085171266533054588034053822683609025390458708169533391529030968781275757679602457034904043045333279932154108210179661860898821440029961656383841338568149116778668982390561950468143672864613289309497179050766092701907381295233442641881521941560034892897780390278468189575125348453925490101743383595736907067196825775371427326794406077921236197490794212418773919517824446875684498614943188887702153115294689333172339969039490524942686091012318286845428420519256055668974312339894033808092349751989926355523970227819857037301897281572287076338951974662366628833927955797761658517698713627074586894227734989277755065274320073183980367134802845184836275608405072243442207774989259884905566803961260870820640504685537431523544822926814648111650246500653331971421918849262143091476893726665199662667935453234397133259835506298138265466563026319766280729040437936451451262042801525915793091865737864798436405691699471462242114589421105715935006236010184122087588135623661801202344807314934450286083678908370150482214641655251437808400694527311285455428239739926467502579982127242747596416825147964108843696572165900083474477030497604263868552060706882074003088947911388782166931296275610219356240260789352460226428589028550696122338946774897138979643941682629540848360279265322950791920976518664087738114983923065705392842890774861156316300483284597363376477347145583360114969916756726653823593682387209370595760392355291401289166278753008683820358373894901997234564283791361798380600199383160954018107101840651809582064042125057272239227514261160058077677593887732147199920531257182404640914911745709012591639146600874611983294327646455379231406092679108455657687594153504957455386475746576811837862428101219278431333787704923596225992401965594882598050167104969128093170551602727852886370141906592119089183227069693626974633231414534910282925839530017218602270244573309616070628614651423293048554253134340550307780486175361878206327542213148037936654973417107637850702015645640898774252124903560256993947013741101914845185466788513441441837772755701550263763102929196002477537354814914829981682021033673783457432462654631250594978628024393398292309286711148870948441329067224905385739285493653567109027337954856622437574722845554077255261700661901910480642664167439660946422624538721156212495169405546977674137098252016514394289351756368698910755057902483235997628096640628777507757465623871107718749722690143051134252520975819669868805559681696843621393824891414651793974172452645229819808394307253662573163925797607511209056328250528244048571663652915721579484221275903873874333686510600889665633994564333131372857908875211928154470417623700561557411830007047623379769956451996838902556865955755127498497078504993898631750718705681511100156615075561025385153122006834072429608395505334029334173816008997225825233145586841330672435371846382614461837736895130075881870911066170470463102211548292101849224836725848847678464781540991513346337062624045285959983134035330699900542052701467590043684105708271760884726665762107377911812658717502185770189360539190579642133918673660582807392124563150266602699138155648035986702596059637745280392459709448489713838184031433815030406419818639701836370266194028616666820753094914406203237914445930263901317313919931179866302613585005964920595809597871618734047467697985332122367792545781162763214519992511978751186934027701827572431252301828384764456699445528886196913457340867763678178000271190241316647717611973812921031432908679364507156954752748875792140257352355398322811628779617635445434231489728532427536961136654268767009638657950597704955654369351434229847491470875152504204574112204102951621774457920014333107985149636771436325211373640942887314295479252245970985137115130629023232187380360448456545314274908370223949369357012837775009618128868473593292008095784103969582904960019538021199943521806198860246186419553279250993880154285012922571296470092640855973601671058724993277548684925641080311987876325703309359736239335928798221174552664281095827870346480375361454155050761602328854634939099314517765910853766000352566328384869665856015827097294652110083008575626426694913873436087830981228864076232973672887837452546375921271257287064620898116718075231950655055721732329438198744233660877112847976144234714895081305508321735939255648279118403119397787386185141684987095218865080557401910825644181239508853457940930249096627930932993859317593443540143034308083530512874068930607862837423493513542503141654420314488683004859151344191586837104314421156661283045888107929440831353900779031584390356712788369099110752166143810966623158229053799041567034189063212956473890121036292688730719040778936873378074859688270844841671605290439679443687534086468136450363814463802150591126422446551927435529368585798461212227102660006872773846029888619127415771573979387602316752743459146032532972261165923583775421685256075557490194724498789491623135123007676044340955177775911181841618833372292995226537850929514157508583262122427007513127537036699132876619417023322077740952426036031902706180767541786333216218510185009750608484730586154305501652086639660254826107508993724853769457900967510740293396321724196356469399159939460738196323931376767411025650862738072995604972123726739147930973888926505592674959566356257715031061137288541366050929525283881502056575692946456845806170366350537044027158502640141051061311440525288381082122122928749342431771846695221765490498923326240593877315605960503495766995057521528533362160549409292854115948794417055946151613548592847454063192546611909606769286460547355389569461807185300633946467903257370239908671428727725008295972923925978279104801561689545945685842852295486673108757706455321886417331079675744874622008939462145887424904679502377251873857669323257689500283686351185362119102737977235009069642072950556798039332671487849295337752984711194236729385117629560587379535013277951479883752612917289206298042009961260524631173477245676713881210474424683282491445466203098361808290666291506262938241119625862615819437369147505926089412467940351755324397495253768501731438667756515080525135354721865289345254742434988785123294542580135490627105314249979900085557223495759969970016750893635247262601390802184622103187796595259416887685359637635438353126761681045862935471262072513521853135023123875051318556051001113798213450114728640204789409848517704808315315662466677065529284577181860150344370902338952984503280399625483789363167758729939561185196560810528888410016065030348076198296625127646649726687649466790748970526483461259708476200473560909033937649591546477064477027230691469253585749149208399048324774865227518449388548327132443169465788335778727252699546946236181540890661345949464383786316277253282588968899747530473532808855575033523656620999522524174213182161597816466548294901175104847890429719630206653392974211093070727301858663530785513004332062663080626850276999194177598214475699538183130634920745796786391952693623912298169962663823358246782184437186766554923634624976002106884660565618044593938165877997440434818960703884845773911606646268808482837568673316689504576439535030608631379743663014591090093285058006816240569197470394832694328455962890752152152336576016251175070327871967904505003704808477359951606542147540727309324668716571136876231672692161648009760239253170476562010748339759839611372594656753406261577272055332744677497864517373244251644691385749095745492784805325545036751037157248257446440919302784896931405286327283508895332021894581049245041509651966225682246511864780455217678697077819177016660127993061583079182860750968461782965921578459455852988343529637291266184467997936172982721898371811029029490533988216747490758142191217797215255156005540174621197807968894435341421076790758113519790928477627844463904290390842541236667709386088902064178334034531406609427995958677991560662358063166351729734175068497684520801235211366935351272976333774799574947304416048045449629206051305292756889625029213035549220835301408120394646549000177397064024516803957512215043270233466259540286347074215904651596804788123238872073151920565994357817775050687443437523623449730327549347194015323743949868183500707816298521538360450252326020139209503370849803191131080699303490424781544052633108558104709775309455943645192186137613267819357400370344423396905996880528701238117559864366749214097020350830656569241831591078340502232389256807882924354483789127522272669873011316915952002302599675908799634247248359156906417723032409302851532662195583993434239854031768354129635325167752863290443710969407048464295373171839310363378082781545628836319095585145089515454290114085395723612210081540954879899279735160308496188916902872575239529511052540462510617183116528961848851678802133885150037323592676065338405456383533345170844279551214049734749830564713625748235198712257618437569348571262109914980324433857200786575158105720809349950376651106358722713395489093867235682068700987973947999612855820416703250811428379834958159324638063642112430591431987366393162310603287657585504806845248958966572292103503830250493960703496632292125235351904780318439159241594749068057937981361243721987461632925862626615378575604200218054561995899445281897375356098911178714439079158162451213955208665078095597270746904884848267544747224248436033024989877295392208612817627953568231957037026487565220041196072042023783563799725509215849546368659141478904172752611840988115056275150488293684975017732250804912753286894762208183518517381553315407231099018891889140763892842510823064544083781282323743731698195120699251665633395586416144083824517204158400170846754306179805630883523765092074319544695543942166585089336987916241521140221273892029058306463085017771663156638237722152469564122355859458099756786613751949951414208540653213986334399521036874563851770543207344986007167241894523577067879432307210925696962124539192007459242285453237126267158178293053365821069722057751523769480933680256736463113753760440755781349486287357493399962832871341853091297387270358116058878824590707116202148486883904219087199464805726294751899626740749105139222396114176273409445694690025171650925644065322523650039793618847204994849788744166881322734407101412332523276912849821302243186667045211298284506867533239946116167604414435409713751439080994727218106859910406568989334200743052087409569623425115213076007487225018111520749737784962537252087245718113113203036023918380579360941873581038501705293008009753011083080256612140857063947473142525761558470011247848746407699947969321271459982462729882947675098480524721926648640673078548001481120297213536100311973896143877980867578153884460162206070133856121817692138432243785084628143954070211528233763105101439625940381182852495829473255947575121793420484268123296693711500502998908941563721558899733224948084196897681371039992692455690852069497485258519669524887117385121388936417473762658708447650666841189260137175070962502264262019490112871436851722868451683114502285704836609725108758264806372025689879912728763624872021828046206768837320332268621862366851441003106172045618866780694871789854504844492348254700724190358392308397889672030339176860669909482604486864515081055222366248335227227296320924899042199049080884159665183069755738326574575168274212838757416768431960999857226405558425993696037171555810128475954867580170557413543196629640484639165344528820336837094157824934749007576079069399172259054331057578656232435834382299996290137464594961920970596227100281067551545860008566623444956489708043055531990817016785176981406049975473500842730044378981232740734981598606511420191196706471092461989572918357861182612071193441928799922031694093055972118392373574128667939835975643758539589714276636616736180278608052339172746480945603473800602854228837064141178984969180270324479413306507822867373803360992161266692997036738065984964142967930361763735706052811169971764983335905312433614961219110539385609916360406860727224932796471868061680768682029131046259974553762781803293908217712833896080506548111327652731229819391977818043522088907449543322264946984430794139963238286470100088406638397038224093638289625474414155070794740599433489182863045109276426808891229546157898498880157778803640711314693820194249774875130584563388603893848487212437942376153494026117895320427605530279110712041701480740676701812257987204915811362460643482086788764222946459275838223146100505994973277967834337296988160058166099545515780809969872325948023202654130874758995930923801774541520871197749440536455377076637158848702817984607339244112248069165883764338182482454902230048153256922036135266245160147606014894494054306226357399947465457763000656108260656512802412590138428213103683108654110181253205131394587915404011336792611244284127516131281743922785932053547674613419198252151243371171570460991676823798558972142435707475523007229751881997804410538532749879178026787732867820843356395226517230503156028292112978023116819289895858567936056581400703860841253480153967682355483595437213471250443797148882616940862248895542854958344676587664374494513201854273581173404676865619777324689705839122676849055913532251397128607834080578291095038069445341245981564419860196758609272170674750404136110670658733848398178530025081797769709034627652055049906107321250918573675412071926066747175054832115694016234989425305171797729776205277867055143877763547833338394188284670620777773913876064066494054443236989356972026213274547107534521491706861343613684661870155245293384338981688644689866039575242332283841469334218047087514985204304293834766091809059653570862790255061012330214186452501526176269662095292797067444026970392320795148195606384338907443229615809700959671307164133656003730445423434530823286594766245887514856685992224825657719236333184436425965672238445793616925830255481211608998925068433765739598460814701491483643431235863448138897247975148143080114811320148886784380319191070454841090444129035598896014522230604140595318352660031270219342372206326306622215750365165531981019468351628910735051683230647646878441965849681724665655574902157226998696497885575491999598472931924440951561863193862347275173187248620577114482227156029389078373689030181958383208713573604524057306460926051737352119918943243570112527665426201488758096789932717656822768074819185687528891302140726075115185068023592741439002583304514367054006549185207517768117098338693059867554620298159086110309014750001208442362263686737551238228532361858119950399843270901310202751271893423650038459895371552689301262745724631245411219492993659444247290651377461327673951337594518752662470749936076006677411971561873527288242383495155416170874835219714956332762402324834538758077331150997760731560955486835030156290997378305761794579766917164916373031934318732656301701652387396381911018278592416919278077554677309927554103821668295217454082329853820533597555393461393574345326409171172793220135293540093132064850120519166200486859385908564717271304009388924425016841665984213616244043373595512317168943454664995803718492021119654957676139730092121102473812841955446808920457039046352916886177483395082196957048302975550817486627483995570772931373535130912772185008506635195969310502554182078020962102039319973545981493623009339645363891687079947655964297195352022706483577671598246476323384916932939648743699763147440863098463223856751336459554467578062169543656001659716651897684134062184938540657740396170290811415497916194618231385331041649796181970160325353166469569409727307455343861398835426719248552332919259352946797875821617454305907999476762086643266606151332047079283566839485250617469092153943515447510858954621557376615491873063434549213236543801053459215546342641347781316439201686578299996930019251711275943064362475156154752010020036815013446542209470468552450688835903975238740769232286050445857246923556079953713354382171246894888762071315822037356723685817693884449004692634891193190953545178285744679062856125558937985116565909114367933481875099610038596510499416732180068206533761622370977176886893583553819177039976882232322041285450935777405585763271566096760814821033060205784152783620607442190841052122456939102144049145301386392239121716418873081854979312942147801909318682835446160319579532399025761070343082489177418415461546096532514115275360805392070277337500271731868341850394678365736700416174833984782186108201820123825375934533041642100545561175792980540982746565530361764007703484679548499263966803927098755471186235598422958113699972253061234264668661057186332145949933393530672509900845574770602252310143953267828678493346957004358077664433823363160827029467736768017040764399856407179182775242191672400485525930438418843453315429296953678669574236103987890573113732615171698944379737542863797713841194835019732288975460942820838797497655082684169903144131542989936781434021573238511501961958130175314693539704038564773075184626442236280016413414600135140442151671543409421395751643168229111136249006628523226393776423312246623433233939995448670997177610263088912374591629013678827105791198736141668403550242179828242940887355592735505155432414298480542753202163511169952462726881328004160054460667433097489522469577229455820546642827410811036232174585818693316771425615446672816864177255350812581584310858896911230765974614706029566642351094137277159211946525702399108852383432432330873623317651865692663003354437846266528982867273294976586828551509790600754679872267093451454530065618901244471957070577258593426464177749988918205831019536488474919593399158036529834611390842482784371471510545513478219462296708721656009824626688151613833224041154488670623722734617087466745432377397083934468602629639676468828058967060776318482425216689511322031489939410465036931169551549144684942984327438654139045201620685813091927580025949132803672462801962444066092256649409071364281990155174958215691604312646889352961286444654520815021976199400660050383824356306305360701688819643331588674473052662771308598611788885512603068187118301393637106801440843110675138811612454344774864650096561112730390137014735519882076995301418599167084091328477076138515681592846087827839823039403077258995331367147521099784307252627764278794884333593267432264786686184270625264403904883406921441753513860857076650022390920019761048287282582284848532047832755300409881368574948403462983727288254207373579565078308959089822199994269705430492981330488946281622766776400758945326555745749400670648986509090734612912039547874694781631996366629851265127787036602913467001855301520489838027130635778510833217152334607958017247712158915543340150724167540401132007553368157555903724610959829577778509290121695296855990890354641718082661708902484405933353790164798987848923735250257535186062745713619493683477663505532375739739536297596856523106224471345466193673781698715255440319186012617484578603492907150444952885826021977554624025628127281034446418945080304979330994386730836839897864660153347919186330981570981411860174171318453368453374134254417894272882092493456956606168032058003365232803440451528024282227103804157639705973624931422579871977900819110281302996171309531148365043515799507971101451916695898328366340509138252719501813115105724418230752714254948188271229139941370241946498576293612107225481532233858916768680725462107919658055123434043787187423385273869867349769207206670415620548668863975157744675107821408660909072030705718962383559502199407192698998928192912624411288367976134300682869903384718113637419675385577235142454218692603648870451421433167497199675408461748278738409692188330761814537386735307516991719180553844970561621382930540140488846616269613358653017372654514386612122009668751212589337743196500898608080434643178400117695095987975319036579946066550390152259120788795018315461278315051315700271081152223146153925143858479014622052039223595692771225767789143322049675160215859075230712710490576331457054311288332885893376730320387579410334915411051765254073286019741237718422129593671765021800777394359797823869529035981488030149999419647617752800678154107572393747768968897695528689821159338342928868213053291418710129599900179231922146069857602219115440421455318609524001988676110083727930818038918463448742488369601256452886021130922770881243719385881778003474917752623962947939211493501262311794912912301964878591677592790700810568884957683581747792079778628981678723444760392056716088202165072492178868487897824896389212212741772928549018620487325121648634363780676301201294879817240176499405646162698503004580386616980574913647056845907937595735152667026192037266482693548192608405586599400668452697599921351772825011296589028050162779660049616919173212929821902311796753653110607882608321673549643824124871378225884832627328968587555931429394764718863169973481886462014279819440879418824160535024782879914309780897283476365091569832010368721830772758976356605675486875907271455250146901115167666926327263494627880654909335592271198085183786064728242655136667341509592383686396315713765302193446564700894783287458317551637124259203824457677556704045039174043787550885174719752450044274547160808837989036437512476192314500268184779003593165380103301377075957308717525081383989930196243935208514749448783857587361243192380010880734289054447498665255582012048135885878589070050932036038492252567870388433670455731789948146429641910389576722676214925472823181653297564044998588337215451716010252865442517643374449453235000693715906356245205237861460378324977617363425784193111241283057027961743211968539825788616607400249372925375001478182864464875342008325998342304843785422096623588211628337954597030675632901573548368940413791456875653542236347757817301309082032255293932474666533080232790136778258542665555298251415883106578720104524345446641573040091745106996421077950723822660966376841129251282719951231023163685592799444808697901295785927353470830691623069557422141924857621540178476895270303869029751385277793886008196648795805643910849429944456741252777075176299554694302192184050243130457684573421995522499411804532001623937425372847631065422201293095350463186873488124300336403835279704019571367174486827440954608086815732021356035296915366919394644470604882966026262214315446113997399403696974854352118835634818226299332884372347888899013792226970053254785407551980584792005599612661464118575359296237783994786344062214884172459596766780193922963934879311125359979805271942527045651751999778889327699283287427466182827072046647207681932478169509284922308989065140419685921110577001724044852698969720551039047435918563917753050997377873196436363161153584354207442533018335155354083976918338276793597001165558410623705074323510450055708207792705653913176155471147591613742940882231788823886093433971835164909987958471545702810372069394679224502759105380077547206232620393868168765935006483702115341551727951236931199195081316261242096427912531158014868100632459440042614602873644568711708009940604542302716086165784112777365307419100414290415078323416829387588411053805678709534635460767613221519612892425656483940858668163832540862553899318063571953658430793686623851165186879926462883940128294893053894547497606872711803565411653373325238206510184431313379603009511522540524664637627356066047395725389159690145710408368093635983494840428121929107618722558458103082414919555676324180682289330183317231194346582236887836692405280605442903569141682471461417030232165162651657153431868758245135451105551043133787747839934478625624043963146037652238457775891673271023447660942885807101345979161228526940625663345350703746409553290042130745989971688705084458619238245602300988513225463232195361902448089264995629444147160646699304117389030678933888975972407023285985322693604138526352019746372945171077390852128560076633755058201844010711810468084878597193159546826719953536075474821901755785557434228376263748974043247394962722784362417168899164952221188840059248709277412725307017462269764077325713947152384346612717044904103637930233189839190108982413580300079358791557971517021780589604563787455131283033800697215956326195006269033319639286816436189707278882827182275311568520749160729323705227506682297025323451589410267162116693494548873294180735720780787228153343814297430265929473934660825134727063500710249630002614008451456355332783174279310234438402343151058976640876299972372558479643307125670041937810220132241488483587775626678571013688957877344871583393751778673823172038380211968907133850921553943240722487223331102861523667125829916925273934961259790617670680478402136930031379695851031403282837961941769823622598410972643316751974852934462243920632499742624949460796286673507018200939879876244273501969051097007480689362370760850098681297388859254556643374355489135328657918841825799376867793157813421107294823339097561470601817835199499467709835226427002125650084151784505338682273649982553139891488008061158715652112872710640472700401930753463974195669716233074008545144370359906042237102752447736721417459158331843137376398627540199004944799014320556530686421012171112276029980497808169685634442890513700347618095549981035134710786981527347427688227306238383073083299719716334783444472902263129291101911128530754211513873637442778696153849960612042164710505922549171969821838439671892129414033572133027494040204473517863179683078684770862074473474564358051681137220959108435076386526545873744368287769947438508959405572902124633894708678381598825413637130415759505491426448337812673384492054491061245094950785594976875618738335005069247281131166208895158562041084485415223025266959364151951097524937511615130091721056734707652147630403598261212545370963082071130051691785110502270060021119045946402956942030872003659860169330677867833650034223157250855431859610293363166158262067741691504372676107480532765532144293253369893816487699109885754585945884175029742903398343084511317483423389456487555504881821715510933112481537151864376905895172949935152643056319506445081456322367070993898895960326123192654101577578534497492632936540257003179045163744936019015931259218492913930322484895264091527174968171848403608189631005134167838147593305731347112909725282329564116747307165499854703099226099576850503752408361494705777222395615480760052442279107830140043072765766585275326838210435386958795385750276539290502765418395057857745753162037913924350112594256905799926892648013262483135617956800785199194233311634351627133188006029027342935488524463080968558934172360176673054173533060106987827378656224497807017349566869187278942296019235133155824716886892544250520603497010969657096651696701436459055055397529123660603238205838888510743625528210828927656358898784638194511643917467673578149119253206500682582216177443071262642948600586333247156545574967413720351059667066275925498155326746142739352910640677092319836109645294489363449559418577879986764667327982954541890683124452733329375220518812453605552963246532881353790627630321127370591912225629758091144780749239601469366059976010775502214891849581168949259347149220785776608862228821001591527064598179457628225101700245980886003236657633748269783374532032998685443743374205487064096978528994377730903573231749722578078961543340391225435265954887274690708984681776968374656720897477772050525669290671646381555186750487213995445706261387615796933056875024432771747968736301274388777732294141462564736669443916136569868670235490025470125393065384862439072667850039832708192793533486450833876422208820894038278223289040439713384514906667322986987036187048164822732438289529867098981793941930976793748596127737056586871128118041985865824263223466485335557114411548699582510868385317469014436922261009036953287421119971330820228840809558593309904593390204749233334946131986176464217929553707908694623315554341801058602892883039628113124163961529308693900772294165014846320440170232136433624191804072548872004125222412153220378662063070114245932693804162435315818838647809933142241523040327932883829713203079025937203943151508681351514889652797794006752275528471065891282358893876853122705837923802135978875895990842362482963937070826559491873284902965456007482873685287966215183879708782565544600467232334132208856433334511274575535620569270358145029979719515016053251410969606029131533098232347690922187875327114302762876560167645537651444089965896315786480545055817968389514933198137324325104596985973830165266271857632529615112344644174639862822789091937125970787151197145789639857966522065838048689634661027220889520708689158514600553967835580654143021197548275383907680742564115598402574894972072450639523737655245180785463711069412605697606273395295234498249232039988495201481092266859451365161376594808256607038942064127631214139143398423714850874433647695293432961523395686178794967516803910911588885195657132609926486598006201798650277509265717143208142742626300918309407263618933838226663039228067078949444830147255991103515826132536354861286284322484979469229931627048922679888451253990467485735945968555429011246242201489997607094270544998102638906007642397413468795012674187229811642071024126316126405251501323771496110294911708481666090042540029193314884135340388866479485997820052961837867778630306616184288002438851083455492373331756229238495360494021296992459795729330823896376843829539686162097907667595153111630496462848104880383233696572991680062018912421974502631135637749826087422559125627007163971310853003791672298006118108145545689244857097208110867484196423170957081551371328633621567191328530250103988675078012195902673790544389596665733690212934286300394046642322522537653310323216640811221793204154371774367169794885541705847010560107352255976047254206570789241218801326016300389391191108354889462515306741432165653811202008199624150208454279659072197640856054041652379453739635038105665019087962520179333425455593901495026025942533908599979402706770586264671978571762960493509558953786016145084183312279321348066694459011415433822739809894078001774329160485187637721651868186573909768202342492631369247411816392727386861649279345428763783147679370510605440598322064164209679482373691511568562437096076997699112566510653802102011467553706468853243616372279045835062845495308550051761076721773375035474486748661461412769974452135945250770120487543911239961242369157393780916934580369143219622286046913507500971790371200214622503226905590610644172273819233464445951847959744915272240673252082019454903645620205438227159189132796241029239088152321932846999544875639342475484768283759969764687216245619428732145261955357290013028983946369339800880967408685967430518154426402311853834504089692254300819191054845578694431661148420392794908021212197785322304140110376613735508973322541412713578733415443015866213823714641687511673774606454093616040893849823294899393429100684556870161472564660891912436349354829059454253981978992774535261719753803308061280504841230204519224969961825516700239449693608764003833594973943972829971552065004772254588867125853483868574964562471416631993494791550773941925052162892798476480977948184615790748127622175945199334567666331495137484030802660574067506692468355867384185169680826137699237754366400937026995604657295900595466401548629879225492514408683499840659478799987614652977405741135368194170299419337780190633603197443951552607733943095391981292582164121333283106186410849266033369609096738448832033883301048547255582420072112467032859626675138346563820613796167947542586819409778779986554768441230253832549684296578219096561543928861880201914686977545610795986297953899863176831867797817535772530987497824736631991775675868272238275872574607243922135622387069249885548774341473114556494845363714997519848217094753326951557058784090806256492447175538575694366174998968194123897287572982104450498181203835054233268710736947057315871646156035714481132212332849688000709973490963388507512989884959608567036147242564973129799586870639814968396915606295267843398343842210392403971871676647267217280157610324971670268418290105391638747085805162969324184865599464447417670242391015650105515243337185779082766790083131060136841635057116639234078292334139353446971468796203701872276081568721791548546422607399671670454343760522869526128870423940111643505508214779705721289130071371585005285277562429785406382090666594867592874409942276234184607800127418813210531415353814242547552100521076896332550612972144694743627724721603818843650955970095806106119725736729071406555125731198124031620603314309872674388388529166747694341595931269219383476953691534129513697830878956222124891216010726140061639333491945951128789488978711276885651681231847721492253192690776398400975079951006445026217083074454339543908181315715618795818439660073890284432848261609610710764438815956076154865295841944882142304334158669615182866476385160926404835918727772379584021156314184573332477048470233180029799143052769427440667695432606928103387115453041998412259888678171222195221584608131001998671769022775648021058866504474789843222441329021909942361067329236108722622805861988928893932982002031073243607330766659593843094253514141570072471931943045459308775024200112895405559688536959241081816385011746851511584883588864007480544918607907857751088170781308750102042666859609869806061872843025698093268076644981885485713368766550076459631076013462548044453925538345627289611720548437361176837084817057807254720010025242421749968879715074583142019306765276418782629548505249118757217686988851544928841915376192266028192138984578700051400728328713317205612168554054855947839443144296830183903957110561652877660173939946721770249742953122698877774240711752179732015169523455011835066789264098660291465400923417275542249716265329798790548789434021056787824921298447239604919166180970795286672493393299632109047626466401043866322168975316119098491977998976119094561164607229757599414038191741757375853086194797335133155691099608718342458567605671370608508732086143845345940886041932195659543472599210072056410734009888232918422308055944981259070712425708898787480773948000828701741395314247541395222771204960587217422905335814646458360752574777926946348980690586216677476221470694985748850005497282858529276283326694620514856139303933526375590972874521466611321025734643940968550024576762027700537428399307040288320472874166590670658946608953663056377633173962613925168695249556230813654969646211797108265230628851002025700523600006470628055277899497350643266396142068383896208029114221660280427839776681125511519948340337905190375259752956301388318201928830273697877085671774740928981514213889221546082249883242742895344476537532518000691225597590907100396398697420884195557975843973230726382346954607901020469148681355644581390826524532263161099605772950591122999637962450768384020109873813034445631765671344875534672729885736241323577469551860689482982891774522640285621729891216919679040287894366875515353140205064265216890626233390099638809464666265092525370257920489485043945042970592285322436483792042858207941455672943720832310577619473063593388934558694619894693798315628656378146670489678153441757499462192335068349110479553536607488896012624880011842000881724600109845985094447507240578625643285904497273411897879510413423480115890413738994503326747999475008756695086953453781930339528376951912996500552488733326851200834235579008689708890954428362974886304692207647124172594683212650678516574078877650084748980862033982931021488317127987011268065888771123981835037787668660633583103355569346393903183381858381627657469933948102242672235113275899229774182998774851169931531921762238574247793085965242057476462916511729827606475394628165561423102676193785564836305229854379397532140932545724724910501958265390613527114779369166514721976833372525429231320790984093616182202530630515915766238959208307011235802357909523097421155168191939618511443850184348979564607223058366143874101416352201132243684864024784815355847057456659930185631082943141099194083269483830559035089432239996306811552137598202671777121168526938051513800113083606588495505074450239403074105030824753584496898136849448362977646801719412667140942366979869382834203629502950877255159430335676800234834617761040158144411460626394360416832827116186472394006414212584271363020438995989091770409118763363121044341619137916557432999241867898374068044300540240496633297943414318103702401954516019441680795990282534918323547675830565345888985543445200284413438469060999224226799095669697009131590125223795625948052290177802560983972873119827800122276166172052928605383187237938071023837882872454477818129399575867436905294856522735483845489688315838335081349269792421512236910141546977403671799282107245157286048487709001761168944587875401533582994054201888839431360642048435722874325080357642277272816364248730946485293765989794321946630074148449831923376973491248492336253761071951851326766096937886650866496178144076562006160243304459888509675611960365055665819387758718703998250397759544997144973515207477879548236810387011254227748241234978401249086685076081843166713293617308438564434549901143557761309157832046443090656162623033745139047727807956571306471319475411099822183832308039205803801606171930578838977618211145689903006513167692751299130594401383260529731384156547926795868092672152000893539270515900944451851008643929937918281259310990025957079523317420910766586390127573291581295764648348063215858423778975750917051896152074395704068948639302447383394210557589274497247093453345328985852082767769985426373608502786164792209309453586518094555593062052306144183673338979336260410446818920681483501572325808683747085623003653099554622627591402492443868581394248826616345136682839659634089508864527954779795605398528885509363239742505609100927621330014338334879542010641344720071669850694820231428139951321226450230576223331630561401362969873175751997718315457315582124841632227672553336604578851020725943613764201609891920743139396921207763264550005800514722552525712900824925308051325996991004452524260810492776642168120683691154159691504996344022174538679847223439637224437639430553190093058647533390184503450125016309663952839685485800577784225102895926822859746322451199830496125988202323622612683515821999205084279536497398696986381322504409125829025880127979953835069496660594139870211281978447550336981119660348690472752430945477544176044791713345052807941154268263614182151662814465600339532192253863212149971068171614307539315441395214819818353923864261435338993369194407851696014506292555062286643997375339263150800514291325538116386955583295457976182939500894144791721124323160748129039732073479819117889049946711552835610537312263409840693105474713989412800813050024883536775371900130650392238782347201220015051878947277985074027296774619602987455318057246918815924516042376502841505014423747570725318553252960650875235292676310462749149724511310472595532382089664939077419463432445789122127282789446050634012458148229306781230696018770927439676226124177372694337712018958718106488911140654439629955281411560321053515715308277727288354127698637725049871082599019089474482751947754289895240221196264185998509419245946434931458225225170259916180945123498893746886822142145702987950388763885138953335263977527113217661453734160773660740582316675461963540890913777007286778613998461838998200748985084696750978276999436871860418212286932246916532004614601753945419331425469758455702025504661698522463178309661002379954747105383518853108412267167830464531962290890973127674992575621346395337308981395371488035350105735836929923989346461588946768284356852030437528147485269287206045348206706308146002397765934279847982830243548007488462577434898167326321322391564532616004074879428345084375207550399361310089838526727153269939759440637717756918031462924038026244282933227257006340648099804015818276550788456576681943891564688523091040385576346863287050962983200104092967247108606885194089412012072376343716009233825760371541238376324743906958291129927189733182243175437705157292256704928448375225566310807559526374966130365454253345596332233889582958327075836460740149685946843394350919729838935183837411546815478937374910940270062888443551984402816305825405558562530310552465850068573718136947768867262179046020547679867957709699609953203901784389326482723982662834760262558715046254495643353894259834641292157196802050306027373326902863076077932082793316285463358640585509889296396048672226816644094269450174120831190591478826504926277868719968671509069864273820579451703701930690848394238042258429796032242346984840438531671837883171521189217716377615723288104165581362110868516893680018526316161686409449014188266206392335350741192066874708495134130071335187574388545137754487886504341986923476543028488439983348440292249828057970089432093701150985084815886158739520227531973669159523677907430567207712293472022041368543616648627227612817835778623492085365340257473237232947748238103881248772672352973102191064059931316940986653576534686458617487575449282038433153067832893601506101731880985670226434921426162680888886514914883952766455373222477289949618373405020785783905820411998273337498843137393548281616573338260995129841183893054550503876134285472105194753133134679441334862855895699885978273771452570012396227483440857633040687241114440222272433823517629506223383095859034157475698215949016090927334322017890660664396493949777587403456508756298202614708297968999860902292670456240510758689970779959348531921171128171902567010643377258183304020715048156423679270565509528423110297625285080338258253454364432115093778602970491845454790634505718941719275776302090340446796904464115943905639903642711317183038391281966385340971603629518695124667868347019994400946124938109413068129026119966272280448849983678149774143164405677971637844015251185325335804204843969802248396845592622703979896877576478828731383306278611660039985236532178061440954098233170757038693551670590453249057577553758649697168150371787443727445015252588600965827146723898341324034527979281894991593047955555026905553718080460176306982972716633115992305995903149404746771379734443840503853463536815032101312279374722760827701341190099384067761621063290617010665976058626913650708294594481680483036054314800053925322180280655162158990313017015573617802125956948993881001503721335394856290894002792886088118685363195295156089218326031128112038978137516120986660137073450890293216158406173963232687512404706407488589377219435542850191433679647942477814839221677237660280301164701262704902720078048756045694697690704671085222360000032517041961648229249440455454819689516404510206481111594548609042208446306316963677339543324907418463976752958150316882016846008832458255764029978075166171068320441670552616363172543428341331923803821165462571201766568986692317578946321286685912252998624127131655624943325450470057123079525281092573326492353254733581635857788060826446318290957067212420069300710281469498519896083595153572047191715624618216314306935813483100735532527603400057235530514379207153719257671797541010599771677157245217226989052680938882157755810302321988996878994766283425815126793407047182868261645223529864649941949812403204178432220798931583294273001055561222400803628344231880688833154254740213769229183637328581316565809794252816651214766249622631377709956045856926124889722346069648462897871266532558740581201160703993545196375178883387595731920570510691426625172011892260956089219844364047790566549272671978510730062138368987156766319739331548750496816649133029154582978885627665368437928158075035416073731515077335536625066607033343973667634731925919635102179787641130679711929053170390365794353334596478450168268587691865714402817621831087305865482605211430742361329556096994624028603570804851826613871204967214162194504004659870788297433756414075362300666962261234365699546237032320736133617343096538954009357997233705389025490511069222484765159310333329939917968340345501575958997787113212666306641148229820514667344833606041847026257999733761983081135803083575656239698794966085152451483164684691211336481369499398699175224175944852994427836175023142257292835441316434531422030781023866059614063228096991360918968549954544588136866337506911275170315057832177824589942263435308512618750486685629559244737529542082676710891787024721156091171070837845280762227776980694672412977240389505999397821772916318957976994771216986465227461736500812546688314689107120650988977766314380883239169560450281804743779337954332618056853007595096484115905910123930017297965804359042594211973715367676481905428439343935753640917723946652528612890687931896912367202816771049040015886386091108826084658797076637955965746379783061674375723461308349968557129884655899319520870140942616422501218412797883377447696202273857014711440570546612043974865013964020234434115518727245468321480305268514483922669347922488852881724838478451229556082886728540890703794614666816041723282028687578758909131609476135698689870734289825833108166914792680084472481042017600170352064946933779014747414252316798829080553735946984195728508209682517771455707292644952942191772094921140895173428825325283716461343034971943421031464038357879177053315959639265882372558784395121685294017851460282325883642710751625229348173168126334847398094013435958152276026372912821451290812941427369138301307754810171252911359992582372923109816404092711664305637246835607800171101750203804869201910036625742717895212017330015296853257672582127068090606380621433774437068852342078045486571748961962504178597362042860162348887840295704022869296617328401936095040244378937937777344706140768757187429531731905538684583570725332352305551205191299759242481842999012367762806419060625896088296740781858499712120134424050922161417089447536782290585500967705652434145206051606221638621220785955512385230594604063243766577891690866974435155908540478334671568690114729299400223756722644697337968620990438981564790049700920869310078817611838433964816016493263608841435818164197537633663793645762681317912732198641679121787037722755636408767661623323052696418578030495720869233042306458056011257449025577487592653837720948019987122363415337497047814741319626091311385890945811500894085437488896967975798383380177422778479579494533808758777580102302385898115844072536364225062972825387391567887941275254529683277571686678443303015407586108116603857959576551004023522014871395552548585319989103122934727644579309848667602231996223796486109770845454271441876921145500616407923875725362808100153215761055116099674977009904544349622836111129472646746530259134048162085217055656979340150657049682887957578215042599474580402902162944062580187747860287317778667982147627583869066515641873412987408846332756791977629928410853081826496275091477387268772462646250045600095204819115803978826296179789727685483005487646496684467073401869558931755217205354085097266121518564103576827065410650711464868373366436537879721334861354183479300601850038905538690640889932007408963926852933442127197499091367332074688566087130063689650646589498915117229792320152282734344398385095320131787413309240332417819208142344137734713210951968315174197964172633271345510893908650629244905592987250306577405903380706692357522939796851439054563067074878968558225952360402161423742782608222161944622943668226630072721114388173333925904176870309326453458868694470643549244716289827875199763579544290272306094593035547830919063012483119599919446934541622921323637888369238159486820641306615322056884650957714009481578025740206878742025045751624798458785192504907458123262641193433110537287824565375472543841596369011706493666613347688191812922711403429786308110077011029095949137883371606955250095957182310495674047059157882596937746326399743380639905160090490392330801322418296989757666469120325528611727089177262163411239416704217299467111989951887446254236293837623248480092900727574594531737459891490756759675487575440069346580627322148822859170050323850695981087082364895603836220080970099305137533261518865799259372788679127803931192788474156051201186374098422649930667867951007318165163933140446597982461699694602373912437989388362403374560275527543714662710715362541727166907731161940376635799909114887172336352293819031707307808632434480250377147507699474737505125963718342385690154702389948575861742645313534222625964051154368001875043994056375084818226024114037252519485690743053859059702623651154490870323157668537790726099320585956807889262054786423869118351441249975315725537728632357780860358458513768568106199869952480480223539138168595552605926450617410214002869816593261898373360823087834915838842472875149433480860815387588409271967751013659219517198078743807775762783728861334297363698018441158416098407063267485136594417647271893384220614650060830025644458922521308589455596969360339542952068397167741764781955468798528814172663824653101195719619802473676856492789825704372425674941227009576675835992497239832629412942504646207948020890409933100962137832017252617822649301997309816555635225199788884836572924579873845881493455403072015043916070760207760462575050390847274582012075787607646676026248843856077474011721184726375701548302960159194199274310690139334923683025564796061297002417929966046718060481548245419374545595419796054467771469903907158463932511127785819652645533873001177781675268152175912165366321797519935634399975289256389807892290761728713485295989259145038824307689063006718321439421794842373501412327338985086288701590159913928320628853185100132611621626838358907880675681400942595705827743890601135312075483544475931482168295650746373884634835781326211800252626943658314994578371211107107793540901181594988660349010404292923778681628471488760778378543186863042064258815121141127162697217993006328648882021974917547901073337648317813477611284010691349420809048042231811287745357103713064666657012453380508025195421269360848560310773316082610879970249292893503000261802555094257701904001120129076598915353581963321092119675100774671522092038021502070396985599064085754063266914123691770103430494076279871241464279760454435323921339843936957467634727491857250534197061327048357106106683116557371950737045912604946230081696523836634517279869439858970946177646922644573460850335446169819790336462981942163813754392553738529478974643252008595802216081794069476708398803320647266085257543651431714910275699096975813291064239531880322613580657822015462183431831620241955530114479823638950590762908176988092614471818381696340715700039041035700723618525913312848335846916915485994511790916826145837755205556541617082247663902914268288199409368294640169845157025376925425183482368001126685980126317207704773621102276385175083099714160323091118684842487709545114996666546148346174740486232624863968218019848359376586562542984779102130343682325575863581325028821279767973178219432548454028481992265793118024561563313440243563847200627758162655031132521925159351219383815349184977485054645756547577033929721420265710521660225632810298707477158985060067316490608644493467624982812953468903862515503228093095814424518131226167777056980130211603707839619018195196506681035338402616973079454106732863871702266380535945624475101974915777023345204870177942431646374396312083653539149349584413234918150500643260625661536824861523963100214766898480587907770865491393963957847544796533821588525139264843673459354330750087640222456060290241695081888154158278096966755203712497153368020392697260408909384859491276043882944010983541298541744078641573483122412466036703897744158148035002336956212398013159235882308435766051120558300968546611385991747106597194072697576446999322367014298982773071942333861395571364263183514616525190486471640653395615628010441413674285035158385669829675978927313514403956061854066755506153795672767274159591317753242409283967784510574127475902191785352288181158796413336857714207822189989504272435462842194280582380177799484641647455189896618829018213774697392962630414068066948127002026695616555522711911237845129405859143270270748358062540006601434770853971334179177659080346917818157677291534485174762322176364152086111772912451335439329209201161949262972545938323588289338062187289189731697186491967020528139010506187708476385469264361579106639453037305801137864512660791907823081579990094695568802915835929728843892614904385677853050222640647811441372517535351512365930792069431579053490894865903581886528515658463728648009065260770736767589655149863423196748191106378043279500416890525992669500559561132899234603467366723597754636162388593174591355381414441797965593656499754324157647390260672949460788972099329331244806547631865256182912082250773735272296730440915657700229846874176149394027442219521862856108895054729421828545866201661186078546593467767333994324623810076856863465259550128160961494301644169383965871940472676233595833481071214816929276219420064379483041599360522350069759765565966041748995611980359002747969006569662135902275846268726054279391731656622721853983049045940283842604374496044287932043131883863488031781854022899335531132307950316321611685414436344373514060782239023997570898560227435708338005511959848750384607506711205671940541979145125484532251546827848414572961108091960901598648211242006876920145217576693872220375361369384619377675008801403566016740645267736870296417998940301417781038354982062230868533315087958123297283267413913684043471617542838048271387756879070763798426682784992640356176568712263267953894264739365404366194637654201916715730744830460975818829303231301629562204824686973717618618847171153577580921753265419664996574924351066668789196612960676946839421677298536652374482919345296718067226010866924415027429451159698471370188425214459498118051192865633797314516450614299871252410672595434779532606101690878223825914287554990342003194178354535929160271151112709333761059180095096023306694773467071833978863715588017361973679834817789431893011857730564086252839678087560079242955810073251977721511522782159018085891932428355305766245289851064961021650366613784235986400517950328686954120006914532874027891170999945831959148929210582593117461693638773074789752122134016123618176235450003817758919687781311377132276056150136300777687852603886893762518372856681191500604029345421131161949408305044974254929864620625458439213071089958364895744933137044004284982418938533890776138637135374518590464816916960249860624439710328311231498228754083469818795911511879434206735556870630995475517795049989902044553947171375428154645233192381481698344206093105948824160812131225823329086648728045392533393932227650229258692374459455014859905840035461093374585268574115901916809528562061894090061461855831481697911458342823657127392237504866726614671432750214324017374117331916869552748175181793430042006220403431937106694311112644842582692356757566040583798966480104553587823506086482718516982278167028485854660346666705554395980662837482414619397322504257456630143391245692515104071965607125163781981293016597434613569558830212697230379310498163632866662835064618153229440649251578947006030257258598945921702728454192530613865026213139338453580450539570402872852359169168924625412937854854109856553257528332658350116524425138012349726843369457239080359919922259852324947359687618251823203800103554233017171936219491971481599618753892882841890138709533543119823934046561942382684294290075684339559314842515640942524428841279706978622321482168119469398152550343406912635228017872639442930905558793637289599099866847193696074490408274812114482338917272246097771738416241574062112042685111677800858128756723492563033665619129810560467342558099088914712737424284606779935086220034072609648464831166909073456243630784878698451531449877661815895953142744527226103499922444425158602559023597499824477324632305111428428204433238271472507716756586524242052507187074566433356086766265897295264225750096947181181532573402724276561452634958987979618638681628982825417284922198912899785300923463477800478533023926059645519958921768259056684259536407846846075316948390432547837558220929427715672144750267583284043470004405913921077709781199801435748160930803544488515801924863790527051042004162011956934421230768591470623322638259118435839068612663755948768663891430083373585560328757814635471856585743012112496027632446934932751139911583235355374184502923684683607852240695907917796702546167124121155587114255358506394992650404486352080183128126875054821993555583500870345618101709823280948083248531458068925949093759285438596077540435514534845144897353372229227132104404483375279011914260779186778450068521796705942113576336881252983089038283896949467467220558704053318411550981306874327122263686066145597414867409396510501530808841355409370198237806413474390891381481816250705209952379067630389223958737411133147201687875065128059599452879918603953527833152944467950611437073964941384650995835602741934158309765787098144898036832798369338907865979511840536513587687511681327420183208387918537641072713105446168701132288629932434390538171241290865330290705495933960691670076982640123189681138867998368209181075885893380924140253400774478367582847871047237454004117503394284566526831830292131864386029964352051713664308174518210475144586125874143629378378384447580170390192371766370601153242459972126636706215721998633405430961951854831975263579450526124657677129176182899324206014117283930898932088492001848129078721934571691938830026196478484724907242228750920698167217372823278889858132137834650131144109769645132434180976644215098500055627330465162446239395136426709393815537893725779623428611606004775458778121598392099736903826472508806185665084455328256699060226462319283027665197313472325172566462297248098436934772122327772928730061677760927461569397382093863964716337007352734798807250569802027575817466584835061522425941009173015397967827265255880700336662750060340496020429572117431131754852496765062199582163904958467377560159637762778726870753430912372136984316464539424308997073067301337512610899224255808572863692993814800419205866905216900876648558950549920175040744731743327037459144082610708882834250212961851177986366315979712524331055460348724103480403666924225953492802869611168178449483796381766245311375113430905517125064096277339094591137074657224995315680931543504875852808469485592003576922874647708780734271493463475754187952158792435856702653474957443435899702559337820972433883197852207417221180564078155889685607816304279377459050794174972201532442984437926839311635250384618868846362728862031134377650199399418503579427067576607552542254218778924315646366687410786680839175766914058679986077793058259347831733642472639597894096615499376992433315878284351624712962418308490221942043407089567163282978160920149721933882794564483194832128966650854454955016301697523871961987770344135358382149099998775097144161806981565467438246004044359559478356311409502080283374625654236769943755957070040317854894942077985235366811473097571891970281946506514240680503163447178477499694304985013834281500649108346049305282205977126114132516423020736906148235775850214164226791048337893796122612656599121998258236017394063175865782813037088520360694375357694898927420822105120533263574344672676813344968444522052931462825478803125151312857516199000406197192244694291200038503871540694071666475272115937498279945759663308496995156700605148530881238617454259475819171142595315229588426010362117404291904972179153327569998369879754457538388581719954684085808170191637825328505473947710655433932761132058438270766196328867448856767724598156619571095187009023551662374602418700923885162233097689529799047760084034339688333589417133803262060988265858123483248981314965678874664241566052227389134081215617994744755619417433679668934351364292118294447142470322641691958011883576796342487099206920590745835095989913917834510459535389609724021188150048232809597214930829856088793975731140600537250038829511584899683099401016717952376661933005682895456994630322557171847662241075423478714936943800948001888935340624325937287988807381938210961635884801787204077517823903676128308225930222504280762824564824137408296329607153063186048055783275328651590859191289143953405345645968450548999413855231342972169084040842076014822351453005321981548589446881166492013899892002650689837035109157344195753211458394818812636719602625688383958626555935635281732076859358556625810124219426723697592795597458187840704823990448046313937222451793353640647749535927338081150342885081904405629060907137708230208280481342734114203676899027342371939839908005931592744356000162115768863633972900107307786791454764664033149804495764040263747685027125810907203999451836725727763277046487559261112707654987853904220774057468895638870345286723074657538665409787928150053606653895939884745849144502726985967562934717839774745382740942975119179658410887460012524713962073411798370351408166198436749070254244797063786422739419606481911086441005908146369734486198944342618858604681840435807945868522120027078453784980985098766868509947864304449675642674718773916053507444756303589388118736649993623199092379799465143215966503602748839488435494935281728324556089115426021864240171526250221636292054288809116609717589982780447021024113744240746904841918663179040633922105878922313320560476709047482258561515664303690373559736400427493565341024916942853111156071768971921692477658166806455304676298760613172261870859641621204560837196896735556438174683548784146346525385969454254715878260511597242951464800020814236003961515311280018040416838086198497112834639879551990083699518356620178085408376566786292502998866168756802225178257199856944142051382103353687987533420147870676994108212826992696783247659032536924177852961378713017625792298833110322871554779759554776635673934014353735764775353854211970420119456461074216212798196958771725925353336303613089678075401813180933624351896039962468735834975618887240282563192326078355561734173877214149351420310497399612671088773105869834896230437928840166998435604744750116766432935560637004476860199431011690995738362974539956944744649424369532552688565243029803479917817719743406307095145551629026163217817794473910617059292788857650551927171851262009209628932947358115912548905233778830652917211629895523269630262193504552509746573289259454804130209876677603526195518228336660884202452573269426471741679011878133001164237600595657998156860019783417009204291675654027450890506303559890091116778366497776123331198200388609100274504071872938001732331867583138203344695914042864981902792702872753628672553800016215809755031408593585666800326956508466594474197749565106742914449155908844965880484772654230072936650146835705896727052398350942370150613666083742197459049441141939790524871666020297217903128466460192726648955901443467175747943008634511083613309383584096981087757060877333284532323532991214324630453555944429635182352342486858682360965226187406626034094697987945597304411718080364479559898306262737919912538981403998922421164166067912526762812123522063882012855736502665110862672300186703605016110951197441862082603334140777861551356132793466788988295388579105161413754148829548308210710770998248361720751534057003957118336667094219419943828918632145432880185681781449995754327652579090472107946680965351835177034978258050592545625928837013344233662003423047904253887204603854141470185813409202329315150274227392488783785211932108579575495337305246242654718988487497645941178930178801605489974049199134223355051754728986268207115940137656779048361518549769207779513992641857394622703384777079180740452081170430129745919341160192703608094804722469053084080863153602638712008419487398402215727690569938512620417450126866775139608729398708892246139119041209096111806904348597354132100394647639529160762464622303668534488184508161371111552787277272661499944823387327457474532777427254705338956356019894704212544251916210273423777299739001934656091252443241851470779117748695791191535746884108764082527827842265006800330609434312290937913646192534801904291325999879099016361612146945462955790588428076994187212639937427782411107697223393709656013985929795780396415975200454533800035179866131110190198349918240886985435232325124968572014319862622001527939872943054924178598970366371343462892273250159402190133684312772748043686610908273395557421811805183858950515521662949945180737055641369300184599789328266255891034927915163765118768184857740961551256508517681452389179237579786512709198162456245864476127634032084941642103865409348307025192487601130888734294332616994226366327976955399514532127106275393173275305676478880363948017627020976228918873550211117368211481748499117409241187100645126876168642214205721716657261726940589659417103247684077229514251530558798873942754189547294095598310594743010503497159913927147699301797951737920725629631514909213888175359233880442492161858085036541059570357615752775306130722058739177179450464757827948888966718587463105227625296635783014915476579109578283492357853207362892737391641926284426862992957138359435218184894194893550176133911019255192991758832342259428283920224715848650760822191276462854121450954290322623802073551110491102677846105198375093097421789945295436289761237845126847767232416664974865208484656784250857564852034309173726714163819465930073710419843878255646093126964309502970865062803363288831290780071678500763282530678326770235560665091656582255757896846980539276773901358523184005504039803801107722888548506886731003593064759474573041746059045837264936347644565908479129122301001224175532355295461888758814651793106102425976873610895718060236317468889119940838376519156647109019647146761400475688568400271487140735991840172871380695968677596929173071505546126076072365324969950319155844894090571482041617331305234882089722528183917682106356325899928861180493709252341314867336141625290551858333562736693496690281223450295116496952761220800966866122435861449302374864584768187445568211343162821448738719831527762042797578787473253229137296863026686938105641171387577846946661435217701406929111799548523026817745489926597073451522392634602334447522190192827818624746207145511641778344824411646836639789203391526677161403503973408513271375431839006166510904712125269704172695913300010816000505613180520018974280020191471862759053689629837340828555396682462358358288288031089670262123688617015871381945895644643818377823437274538121193309598895788829598455073050572856858004966146573418444901363670605129773316329415647185796943005804077918932745203210042617096375816238195879271198445746691410381627107311956847826713598726937916790090193494546349703528036763272868858449121597194143746168202168358795359883697276498374379281768091780002014558505980457784661838846944259194914691327210341469256390182606544197949596871286415998786500214615486555211543410653484695353464847927825208012443947454722778986054200513703058860773821465488863721935159448368765258322987691492025865232559399841527488020587034933474738550786881065293546134126546232923637497077368339244255522394117100173492334426145901371389365991572598966040225939985390351526107991830384233145106254843882626721924929605598173485887357020287274490073664686870395785850646217401746495276224248294326835777373186345274083554553625320484565128325370178179711925901260847248990734872732216528295491044408832797235830765895380056650148076884940999879376852031975732338365810433886265116442944518020802456095909899534213405811119467173239677885010386971988782004238513140033212319855826057498743167943085632259569318133394070778567586639652071316603488518628147141267222098959025080032106055547658654601857867758033594755102410497570185980547481669754876792892460160999510652819530239997727198598249044424487332176282541806050174782177030339869948751973460840437344176317738043768817573043038530560380457470667618168818684947049716880570051378985375824842523826917857441912755219044999031237458665690552168603610012136503141287290745640438444511314310983377137899922826153225805529936567190561070604640337652261599377112092073638745994545809321321443457171227860706070929123418688543020059723015920279536637628610491570463942804533287079393466192999016297395168476075026340211682008892866399144346458911363433005389228814693094174048751922947386612706612001453908992989662847526666890400312446848343359923090522625594280338906976520797545069543197630468614111982978086195831690625774903042907193394529837875482088015612754671829703923103537621055083450491993867325905252876859910211136082201408653662952032669872591956931605073613048772131917070593848859640383695077902674741806193154158713520201346591418409170046677778767496463140410289275371905318016305397289610738838048978351185270510211242444456241535546621423907345110005798423217077576565713439480079451992058683622707340917462358866203368533221646056052605332594088639394391505048704215874807475538635311793652305985789487153268891479035512842596413979949587936076979940835048072182349171736256701085312710710477115163160122107819016987373041621170643088441063917830029933741011481921675621463311766594925227231805498877967350749169589851905679037546972635512735799003205900789894822372481864690616961215575781831508053487725080023610660147789549550737505102993519819839002068969709564297950842195345214109735059722775507866139195630241534459175927284900995939081690054934266198464511644588603429750930672258005517262353026764854782425817216786949779899730783697289089122516748083102586348002173931485217995441559109672143675975483570242847201115065920196226375379488889733198801637061148723461881193312666079431817056552854222417560164937579796407628152459380478444205949092165743286011572827204900281044455044050290983998846817642959264784450150941755932031296135669705332474551680449230204581273313814785057942213447879153254385203477721059394287889438058611063463024677363285702013417936863054730572009792215872058687824754945262393584846209485968940073126265398570287415751234067264843267437764888729877006156917806059364539645868496238094934716073454235869041998795596729776022693493454179225923165790033953579994988392081161940163390338557353346916059419342495893563281820603810038253331373019941473328432482091903227624521750922601136984370158059207424376088575246543633976821918285617715601457309124805247333349180706467271144397211748512543883805486734119833683684130039128864436598626092126558567801286989820085799853781452052378278551566126260321411382863744426238421892956185719586072078939242930928362216218386088950483679546680052987042843210308565460964217477379720411110652889830135333424444674046883256441361003853736413856358318211450377995604660669856001292900152619529586015919647596348002417488675526418677815498556467179439166214353312251884166091371872800843236155243979873025318557456619216690004659905706353035768084991851405131563878281172412114048768154526702215648286026362613946343988531497857200720753778388672514805868310008068919075547528120809652869043008436913107060395299954141053493125690239327548848286700523707397196723786061244111045861319934830786216494329578337298382825190519178922560820334172561329675619003052202327745637430037197720436773008260857674277223894494743085855980732917400661263721529790078674819167212373576680260354202080776702340805321422050519260883608957653253676034524852215628037609628111937508205483117215371971610798536096983082004269129125815683156013405704508396859544878913549349989132194608317301029419756460066427722577746853277829043091768023436881720768141354827027525175554320754201781984762707466641382688861851011394113645512374928823609986807014703557490060837285595803515210053563440021425352594625141243336357035080360893639653800835039048356755965507368282395354852748919047651610846226959442240623180010860919960401270413671700697340933225798274168229366820354693855784819194028264538586619784794537644046179982026545979132298371001932103206250791342305878474331217104166505128438123375599283047312704750009766374772984524100439953304177647716168616512184731024757368802068330158954530751966178137044706770719542558873299579934762156971897999440167187002515424308104946617561765928605069147554065883776957942511011156792573908522618594037496106126881631123244361982871284536334469090023091774956264926138417779114022941464922789929807682477581609720276222278962101145686029618769766607306652970000431885117847993931488100447214467433036604471403394213611419803767648765548450823689552228088870514346163359847857191353717693143732415884898981693726558393493565052724141371072292659823506722897032199288807483317103345302457709834624207067860054072099388079120879688787008150787547413914654621905889886661069061007905110458661973998471733517424785811755696082460565917749948371791212301644058196947888454672248613201334225373851491523551040502399028551873620515418134887203144253891413705886197980050336771781323573593933365150159657528424250707754510890203242455094857875168331405879868338350147408592228685658950343153552870190445213577542638125460698580298873601465865970895168134279627980341096148770636976495052251467091413657615452390700857656455695081246094776067420867640243125896686264439373715934371879047294394381091142021174028405905480033410924552913887876916850899548443943451604744082221534832645632264504346282230026789031015732095239329475681227001978690789057304601932463658339343053901781429366759196708871894036806902455869658622381461981614297166214814094417867135811659585845835183869688934549366398120896304370384169633493072068142508931245129027556334197817549133802850034170106625793602466323213712444627311206325344616408882625122908666431689542653401545177906349601029316976802024221648645936262608021595467631786418708492892823469406479344021550616221136212746854611598634421793306292916166319868224310004719057396729442432840128743321541972107573282169086638966083068715349669598719724334723977237505994708323248203187257900017172242130305843662704502269097801753013744105909655390385535448000824892302058145911021724875257782022194072799303366039803153616783363239735327198193491122700398267733060367349744007403609328766534836137216165199207679310638593578352834639214294327763618340719728383950476251399927030496581034068151422356147515927971718909264394259563690857437916468966246493038850794843753122614251769628534276187115928385989663983340410924294343659512170200046658280434964772727439028729619985836614042364763936944009369881869721716709196864754591708260157207238359090947236115210273358406660950902585408482763243363780915017798769269298305001438661963293515967269543706021949311627026565980235611049497851642983743660277325779875135344652195135166685939039468676339222262184190254483281158451664422869837179370937492160506966176555621457759387784724689398489872584201967992944655442434208536571050629982786168959910435213246908287627599317226740110961898490902223304676457305305440383861796895562046719747202016801571252881504519873045746186009659611379640725921363703253585865153235728112080375148291177038040710630934784296387726238571215306509021108603776418144896858588102124885840669992830824331094291354119551011573138661500785297230688483174467459791741188037080128738393202423610800508952194915221162429107242710727573971699276364697123186023681452071023182797970634743144618463968762031477034347739977002536244791123685790337608990632502326775446371849020321120534349133349806630229292050733851613643266380138038760744180816629856268188605759002799617953759698794288286943755944357535042061355693702060647467189042492811922906560325793276962589018356760223889429413254879232426761125834918332647996633121733443802516866327715475484425616594048746962267519672604001525047448451692870516457878485265124856498530407512463006085360229706580176828158586121098719470908150287061869433727211979491504602205572386541640750135083788818520542724899691750644724402782260956887112958070970053317362461847900726032807510353334553977623564364905658582642311451752925679007911748141288311486824386909922439501685491223306973165977409871487201637433267761577175598578701502218397562744213700702369801974504216592166281424876133510175850320219386780582901073441056565285932878861538951301793337929526396773435772175768154270503459833927333046740297680326805843166933928989053157308153760676811353638220344842758452988940021090785918128139880473248455001127212486350185305461471929833406661727226236276245708620945654942593062557152625445354747257257370662062260985392664484453524221279401852509298478329340791562676554231145116460527103696065065290888105187025757370688801057603733796680707172241406025768124510588289680440686913413307543200491048869230409051086773513633519111117240234114216983850689974675311688195848999445579116704662719489829665398842699406318844116670521867184232282614452727104652498645869931671194684768790430343920446961562922019065165805708542616721560099357741856347696520266302146232941490207677325172728055532789124173643068547609504920776357191358998534891151016620201507735953663209037925773133141715826003821778303471751058080238914265996119755054814380699262740431694725104862475120877830035940082015270132915041974446046166245243693513538641702447028941039006680505006452063671830039950082454952279107929981020444899660598295727925696112875142512158909249958393703647013054851049630784908598484204728314999893571362028051106484974526263358691344752565503125832869762545579232680251627142878924062495381183456768757353883398684412954481646903986320471553536464904726070477507735224877470446316038528460131736890549610296573898559658269691299929183083718146029083624687098951702541434631707843686712896521767846270658375025443507519818868370054376715956205487037899739833222699483431817086881777182113071317110663153805888340795519988694682198062950435172461111717523118099590399265624706694541909184096576829841011370705928414917464900096520320348431308791445938860428092687619551912120118735346235634234816188353861475354201471275517771991048481689257445367208431562412399266081307409481442914428245083227419937643744752012295385623164581690750007967253834888210180832851244541141912611199759909424798329564987334818991337795275877403512577836556620248530654305881348217215319164008063256295655336222235422867120617361691770474683322884457275211020919550566116815067568519500103072821689498232382717035169847512852054296501211242393259578317203615496199152802354447968493590182378770867412014353335585045623898954033096239957292000002113971986700124825538068952536663116578139176487478083974294200191447513914396320851329389800105153193974152558591719641680643170909836227878896877597101943831519480310062051241946198749806788111290093684160341869455977056860434029218853384183715761644409679658403292679779211538696304596469660709156672158380017798986077012710221209306235998325654143879949915830121838736635335027478726691164331087326257455807557498598626456590796810536283278989536177680698191711157342928199872515721733747017127470232917828608674967265238623907891042780627641620628220709915669497648701103859507000704703078254537225356369437684829777357405568870448424769191291017373630474232848112628298770681405901399930834959685297825536298361708255611765373186817594216962703229450805837949257939594853817882090802998351001606210906150014061552003164861267387126243759447424334095571022476261199144788436753655389571407753049669804815671969828961419550197614043788844124745198686449380780080229995116638489582208649292049688083663419653168490540757874291992305453967211563824816315291415968658566397222259005602868855528913371519137224564429006066567988875040045089385558161393171272415932386956753985749697323786430782452709037668842572539794380108681506085611942336931739570408903957963204814826488953267610099728181643381175609673129691793463550039146843005940244769587655500256522388782955892298700246537640631870978440910236534469203561234404930656866939329171042728945940477713832093564650566136306068499070615488771027246743436934168250584807670221919708744173551081798943872623186184392781443181212442110952418902945655148644184930434887680353588295670441347356692461774611994932059065368080306441134949946516560090357760764602782372223837269438413325840190503321287278835153607975554752977237009848206384879678427614745169339262153160978788225119325228648034119551022423893064825853180493326269668630116741903682786886177295021533577784073676449292274393344838767220984415930401804983114048939356079122233398078876766928959357107444393925646126813437986048934334623933142370010902831449903210855871437630281746582865632124044969038656996048860345489405100038660706507352249656567956946016036488663845703505769244898207681052139561756631862946026650923528018215729610699725349775935753997639345088778576941763781586442992717479685571056155819476385870194585508740910197204267673874206631016182501631533309459345762230864213552168804331919156585482232049941211062935439919909804328872600030376262876191479371268703243345738062192042320025785609881485272862995092280747198555832203345829505372402413324949117006849281627431364466426692975599978863424562093346022682504583265798224918786670177495066987174075716937493927436148456394285495448089378686081446725758112159148749827866809706062831894700480563349299311233615134051088543011244226146170865832348092090823125124843450420228674142055681293447573308852065977427581471254786953299552555934063367721382381361438049701987022955956726638692049421974765610758071597785431551445226263133512436976760656195184228124590856876958662254876224613477500701736266102529294065716046183748421925869684863034484416946366534639660920239247617335036617977515127470676675591365216920960947065430755251832373095305104669819961729653339743199439169223601651426317118229311487268994519339932668310626103129470584698051469603823017791856858200380150834524604176850909477397865804863860660962569426904308737559731354784700672038965364307486262676396600285817880099738317788516494331429442585571806738205100629123872421226421550090533362066696682231066260826399141921393748968997103508408330768257451223534476303118899802087166269023887574728391039052491472611066103425017301354735355159109026166843967921850423160505053400059640808433877840300183034298230158740139396748052290851728154353137458571103078470287602975126571815032553904936112632482502396619058166677734719163587121281944246205971066717335851385922817236925521143402129072836556451260886539974878723440891624564622589357041074774720415545845383026586222993160095832012432620993326835086182437885710813602831379523539068673112081234616515884861837348952729829389486492595682554533076642433597741392163751749890830668996691028568249476280928297238721165950885064900554452969092248105378765893561294048837470173898450185624123927357659438496477962398731106915415889689530797630941598007568152325025066257901659170437721944450657804387152924465607610401718045479285128376293542970440836627305876060137509308448100371577468714802430530408107982891999621122269110321987146835948588195258534379533836376557262733374568444535227971975437620148309949801047969059225812614716123518772358861582650402579327537174383877367068946086215643223588462771496170951015894671768346760816149066079465365723621579513031952716446880158168487013076507399345240115503761896447725728068164149349660956579566507863369354523293024487151858937886734256636932496367678454069372898053539858068479241304003390347877703589100819250233848445043341016679408745559312069482037121752575321517065125261208419893945287718219873316724978543934252919660166166997365494484723793652704735573392472098335619249482445504237095439607036602563220353288433980949046740040552331636202856300702922146680348018443062711500781827722020011708891734077570308583024470297212040995194998247663241737439912988579276645490118911223872493801625780209172806932386146342976334486198042459554433993898678034683487580243020004344458474770650797779551650892682456595455266485742475569322273430821799984067639366594496245253807820501942883586050733480474427042074708287491365473653321094200634284195803777457725659612176418554300314189597721114564653353089137217749914006911168011453710586242676182911804949340760811795168158832150932830322793101033732711632309094871409803658789078634864833998386725641970003937194318048853118440150995701154267584317783090751275876703477255589639696845329929164296146161224781207098713621516237529147820913925551447473830287915869633683579734964822251638608322695590709159491379562619475832986727763229562984607909559494005399422109894241049533398935256043001681396397695422240508517528969236718187683115182127660007311962094131636032055653374869170420043905143260943470470997631353830462217607370924287943210744755501286765103712543630917782798666303959692048467702126714729473574220529308679540596243938689387351183591857236349907481453689580813987743037966705405123567069730649481068599008039043417175441818143517976554834170209853168367356074073690573688316808446076710606660071920684665888727782317884116552206406100175190579259521655783561430323564465303749743733007960070808056331167483329139190873486205055774941609876570611592524120783276026377426686619407500961845512084246317582903978552177894988653478351827455730033774688247092006521176083330322327642541436255563353752298182909916373945476308445910000863421292907378175810466807718929121005556084946247145546773126767415434792665555882531747741035991912575712791834480347981169819554422474890881075790115632432579293144369353396503183322962700973173448599665730282268637710276632189658936526563070293403180834347948295663633931212213769893582715739308708522430781195673121485207293598076767297781842849303259797665223146455080786246772979886823541771804809093438729404985723715266409937123614049901451323222129116234708953931421915704096424254300125778171337561219985860330712552239892269958058714752480699666521657173082563411188643283962731566692883741349444693700781175867021686974570342963649190624915954593808452298134753308442560059078725979545090894994460787297072753881178937782125173135464904212649842237097793551100290271489805581686855761833404099746948332139596115435793992863919950692255783795765203630607627687410585784458266192911622794600921085866790874046515848514436613841389147475907902240823289234666518277792739941946500149435556296526524664967937498066865464993801183079434334707551259682393015259458206678670452300292838911024312154570922746075811844169918731020713504104015241269076658415789735840126280895824229521137902195447447259236778796467413400434701170228583795724594617025160791071245757517952895341632780869893218646866419536964092159827075815533822538182490713286030477050436144909905002168701620848347324048314929596483618235513728658062699733689189140416570645275371770494801047942303674929688514548995025604132224035787436910579884459004387565787928097388764878273969192383095966026756704524759953474565239280825573193786127377555539118769972141962540347150798523931874623969828373490324162852536740420683724522521917481278302458342049222783712541392328291668210209644217073565201688675251537894374621770231529685226713309121737098709779280985655318591014165046176886794516792249231337377492858011663983780025957208294284756095275575147359484407800747479829194458468581055835898260418276054799594702686694039088380419703700092131420514116015792679923745400084288643279944506227571400789085283971585367822172532723913764380476631848468457169067143223289898488719236363049016642775474773158582283944043631821832750977155541834324590033953167493350443867468498992174145515815473585981140339667448438703500686902745918111076358919791986531345620046938558025133002809681844568912849684158216873477281196957848859605148452074878416061311113665891527047969693415904842380985943377952600610327880286760046210790051475536792976233910683897596804303005298099471065841612799271971275253380907364299143718971073248368168921612122367530265791304843820459013274858893863646532675612926511999020888575064945338593758998513896386015619151976261720923463731150280926070016642304380790811758689277763345296337562853806662325291153273512761242149614795191641109865136721510799913748545331076476333968189290124578726112174669482660374008952721930221631282871597135361230956473082834645896884855159580281752765706859855633238764573007439085947417139455497925080108451776332450883811694737536185516310755524417598208038162915795562813250222106952343402050365882069662971492479977065984235312402217871294554043106155696943461405528097237891998118779513291857521060841724965591020001594247836762851626656810295358479968643437956863067152799765585383819069210270693820259074736379784380255084303187803692844447407769869506707794623292427221982655126812377187819397864546472181535637514892090249952904558440986453998025859907165631139802965828819808190887970763211335787884144719020845419767342908205143210295814848913231306168928882705162213103013786556024237044526029079951182737473609599635702012087039867259288835759298591684384544487096861890247912064045868232335039315684891941322268259475017437007054579264580126714360014375352132439397293057817046118191984921836432708226409604142113282350052236781156197727691128045570194889453114746108406766118161038238939519703713867056881548544307295315906433111218545510977074329347047460873696720144318837179293622820461755122662593927158658394399190462089715300281939744832100228614028548579417411489726692564441716477492425476236496562562416724976875696661194995933919731770651532888701655650813839370538575714627951627042164663593237264952741602026552684900253930430653013424537731269620569534297795384105356327364779284064654817551530240896722718487119956162307808347436786882147232396643066402607614422504725439870077169910912574526332533437126975795937658636363623202044946409546675562612049554876839197192480839161983859032724422544048421255366759860746946190119310829580055098539064809824709053879097899221929762824914321741916894606769835828165320989602717353837382197170695387267461005832483352824194335454524997906714614065219198827279224716188465309112511974027735896627483630582205406652918069591261300934655014175379024092194089711199336486371125053069914661133974990521624616751361299393025877624024873262621005291760357527489130873434474135430409839368505511943790510192574260505980570237298440841503417613026947073245218518818606742885944782335034936748395678422315090037436071383219956925622730484480809975297409165245319488651672379652024729787316654105862177981643973198323457830228081896631681590709859148124597726952011174995032534344585777620643435352446414940505739045878504010593092250034979826966488424462473208636750468427418590304896515455714141342972901433803562512181817005652423623882996284550720851259826278645794641606084097733350884782520243161816479263246553225289827661492437758349105331913499753281812896279516682066555503998634205150233787993514115312387907619592795835685058307821265664261430129851669116861147453227848373020237868456514319141439150708556042319441610904078898240718444121901790928271762538521248833587192204710511655668365984975017537563087239160451607770424164900274157319733248345494410972149083628160438855136700492752032005729673076370399814521803212796318221665415714944063545359912166962983774960403772597053149187587094563028599714456585892566475551317061331311895536427883500623506543008971825750292191990227407038037045736980371781478939199322719624580419161734471587875785578662942601539685698805764561873821692477168365072612198673204775363357573948599118497568055267312847357361911372455541000617616028258059805087426226423169887436801458193849532464323866875600852999770122694471740535297846945983139168451950815903434262395557646133817958278537011096566060481609023446807830976284543785785691209695693849100237232945290330367453434294667081063995701512813676581811298510412108659814178437526230231181551223940846316976303484950117154564679998206001507813252626159524711989103660469312860584508772535452954713591731755996833485152719102634660548111222546620891559579723786692319635126016396665141410503102765925008592601848407134618831088267444938617283959885125142400326554794956890332510446907614128898743059264053047678890043590774734879222849183292345507899189302794736191796218619711623029314079091567878266595638839625918766708268139553955498728556762606965766077104753302427037466917849412515493627577471466748412755048147809655949144889538123492087879026971318893647059089425902421089492518221320481180780889157518304606106291074075114275142436310547938430002773345095061963343734273061058430254033852305927695377124050658886827387827863638104015290695190379873275034031770341934451290962547082740100192793451179394736852206764281906706330110761736100729469282385438007901561845593734362044239648193025585747818434687962333966431695381078501319180604839522827475345090446703487396311990916134708997739234408143415262857687020485636797849755471774692145216462207389842156094698732936541257932926885745948933806901888967313709191892285932841972157260558976628005093315087380237327615944175238009065121826007206020590642018194741320475289582847897760881681249905180331195334870957866230938558529224270247428197156899966810069960076582384516369601988058577896724245351663710967952560404295036005430693311239868444101462262437972841375407953879712339843125146921894016633832014248074484418339332600103384353931916933938842194253370615836359058142477304290947375897286468389960974617080960902349805737133705092512746908768314257756883517623686135546835453298590077272662248350540115963864093415847692646274490525596617932454110927143794875846878376289236296363262321373226267364382887503348590225804319988001839114363132338346319193311453060572698559410674507650535998169721920168883161792272297542308378993486362197866400558719183211495664819372493930583721028104092594981860686246363642496200872432759025984489058320306148496678328119599380846243641405166576241354416539856234813642588924608556800429009554914699520566980716331858298554619131861390827698789947902353794107836057085117136475038628113250526988172933154426006016465243732464758565469436339734565516660147848121131430313418057836637014539530759034784720143115768012084311467811749107675217523627135898114026841607458623786900103553157752142740167741959966425521327589156034163779441944272623064744661210703894575484509493910170772113074420460094627644557114688169919364406505101785529421280859514270792860786242358771723919606312758427956199802540242139668800739845143729833954578948733004089795128541666331049245385880402798029667480622328257457267747314153653794048685853307227343099588383013302931911198775313417990756282733097187641198936441807277811068388325483919389415765874533324600240626201809338623159429796932479420496181075588734335781554109151113119766686509406461239862770600137931057350237973247464917662585900322306223178504768499623553550068546741074703077755279735522858035226199853555365291523636219019465528994977272796899084318239252544597081492649074716067115184024546818770304782432471209420343234374927824301382905550459576414860093600993219595591098148760336538296478436037221979414021605348686283241508466709268179762954433967797266572831734540574158605770006066105035850169188190726603340997937404814838843616610822428709527832786722139572460816109312727791828221630048102847270814265726761858004335899155872974017315354627755987133232019408912885006625748209086329393364598276862103918343270549602973104235793269263924016336543505839341736025086234284878222556781398172358737662221302657470223612644519805283055099936049815484176034930805885815766508850963066674640014880558977884132623680205921797180703204033125899157483710474633268783854680346996397354623163286523513768459108164687177914788880254104383897116759070130932005429362984871182665893279348572041613986500277632884211449456052851878511073864266489869425856229207597504671215683628508186430118261900096539553643946015116748658117557865753434459249818008605090865349365565780500081769136954823489325490812829209456905620664294421533914193858589882137057018971356439180949941018311081587099518322812701152196163784473366326661639219296131016486225641902002480969446705255464490168743299939203624810260360903381600172424816052344462342964257378128149579937453398772423159248175255557567882977799638472589328972707822073462350521064035883035528872156974596066362439670962021384245085206708511648967667204091442389563188934476376689221108414077033383447250820038737459142358940628243826622936915878805030247393967895636024715685828660343530162821752189823668713202029452892175108956250803753290859442577737076301752852552025098966863018593245309536897533347959400857524054972641586165087983382793485810233179537454524192627251407591409523194719022330369254365416888139078165284871312490702981356772025100587893871560545990687535056393236524716133144627362460959318556156196843300060032373599149684195928373870092116708184994319826026305681536123279408350298733913098475681451785894040738469506244022912626547686873835595182044193720095243214893432677429060385770674995514830276658279278243921686149933255038429147097624918907103137353924606460787813408688326870575178787262877764966572096154977378134799930722915933253538818442909998222930543400235164908525647820006134418932901233714420337504880478200485008517667277287817003244483134037082472020842536804311187035836373327553386865682510607443489226739464582246086096889686314700795551116160813954565227306070049943111822653460342158399187913967498316902231159483495891315394511169273781854720081048962062031982198593285022844345544997465352905921661121328161677585475865587453373834456355434602741205988192842415368282669874986920940770424317566507653630296724752176626464136606395906575054465011867024534935619827242584422084888751501549644061912392856069415616766918764962958209022691832735979892347575698939700950745346261155294569387514518569201404253162142401920510059305311003908267932236478174657032261615044458974820799543425089915542251952690350521835707071102686176437666767286118015758375264954948475069936290132800339384022482431636237417387794425068606030521805643135731342556098937156230895334616681717087007674734844831470061593052805581681567137262803545963282301622315467604776824257062100258936751356492194428999519577946541234706925506394148998218522526215779082407200192734594573939529684068153192983505163148371656600929678001345830275769592786548329559937624597346094576115403500419522587995780117135658876304394632476778270490538049200403284556707149715073385971316520953485567938928730140845000057222032090014118701295203959880543434382171249465001098047728723982263051996264608117283971005434349233766782354393165617764992776461748660656367646599221628448744084170334385056668698058824011142059145428956715345756405161076313124684738828731202907844289751465968586495979425932006935599614283251806608903280321130101072156431989280651315087854230716045366058027162126728096401555357338129223172759525397099869634112807311224594735222255118466727389035186373645049365000876023237158512076807438939374878737358258397845176514843176064738209612462237434822355300595243181911989901266613670118236583831822048615939845360406017382213762712073145344512601804338642952351370635086308605206274921985822505103195605322167383045366106031926509818660456798234507715794044498587889633560779984441336163971991652277976489034859456969477120578114657777306232072623511606694199792725346398834564678213573242971826548477927743415546673729570637733117990063964532927385675169923276488923663823827141814944319216197339623609263582143694909518039338776350992647952696072968976902806778880791126594954817616588851848143797676716399553815868984817665786075668202509042560206000173591244332012735084564056725603843704389489517112846006037420065606011353850077414238992949190712112940295129887601865789142204410036756451288527436890798552034396904006212202508450766038090285773149816484993798984796181862511335831446145867004766264211689699494121352490483636871775957131924803643624140996826800771199856787498604930100475794021984391634148852848266350977067485034199415856710518221010836858848921438560840774476411738905632604330478328916205953261920864919968000470225148622951209424717024348426387734437591014635561787697831616254051448538324578200040520240960293113648295913832876948828242867972065887252365910472759020311124936135223283807481973124959742889294554777629524520691211596529847100970927148729916479882180950715074664751187705975838669790304226423256503259553363602828894349399851147991723401091345847664118058001009760168065214107284657441409060288376432305042201911073435505889118166219660340694979454904783742261340094180927307555774578067311364689187415880925628701284535497577073042520322830399908419067270134785355759613682449579658508652364269017982086456363574879381005923277459457466437605880054491970254111765290205476912080762098892205715684897659279382023901633465620335191472164202417328080963829921273369569172136320522312468554829476818216826772870119941876645466977165747782933922693541471578518543965064532807577025895745917844840389736849048657614260746470483678179574300919215113381362803737732096273360779305481979958393884708242692480587083825869495062961257956397290121838012089632457225859064543324497530313964738384631354491104469841464251816685008900461828232238329487902702060936234259133621875864960077094500207867532951750009387896173064955082068330978790959978986992228442280981392033313296182487951543696958195209348013315326506351416614796194065719195097770366901543164579347898710803877713754402565180306612601728875665338067266238990810236038931681236657740131241540200982241179011429868936797934518068587425359562477733378139918524277422209441161475647565062043464388479012798461529707501690351091241119421353391925339519447541182359934971129800681795701149867252337542678462975776686531126011276969538643463242620673204426726317599295055477434979093622216117935665086833505147115564262395148775651426057277775819225046385119437212019877137239883590299075444261549460980888410388645985964051596260506802156754988822660043952057675647843686662050651619043459436061890530005506286243780756321317564930585992552614721080392040592618421700108786578323073320918012398850655821486804092245265988830562789020077686653250271781755095282167817256025542554566973163866172726363247346636533367839938402922845929536816026860275437813091899900215087841298233922825178771776869183913634287757566571082296384942536374664954799470863318330213487584788563716947096926841157652913938915970536266732189610445444525040798160088209849371325484036482289776501624507030728635243220508206481914535153779459401573948918650312652038640963538576226859639120125934825904300566932917516213404565218254544761533589349314716296611160949779749517913074662634069403151265917351162471560625354613132100108502481022281578377678315970133907511724934194445091302192223344230368556419581963157666248979133388284310453227947665690806091956950156175687537040368565040430082091381200892719212978408716027327748224111755339427203510921017429588586521072759462537809216616831646693299431467249831465848542437731670711414550461993103579485329702260697033193409594185847306464877813693077654222960406560454364346452307097316008598887948006705984756181402641791429202810926524588187287056347689729911956760056134003334012053762953380861105965178966490005010169640535027741515933472617771795844371937556007772995434566698626009508852707714099058898759954221596048537799150510431414567031871554565154310242916029988271094561628842828108084750166009537310093236004710875363219619257748630693691353559284633705662681595811745878699678750488424349782347447005445948210839508146040912574120814131002426467600593215914988620522867717791919567279601084796453905418503435692017058560355528637489924314843911462665612939698762836498231868829973474761891604139784224873614127640426209764473029603937514688391328175069338571321795761544612394696972217256848456666602875221314133364864884262874905406457572452108119730247344752235872109003589330239361877690911696307144170060065513579420797323801909825336340897202116208465258417772129502867525555950748216450524209810476475290251954119589359715451291788978233243810687516653424600850184684324300127832879351061628113307410329503498342766359398758811905201371064768561000543356439490076335485290742333473775992557357779511633276906652582795258741331718584067147259985877258110267584292986516230179504074466871262397233187231352056514446283112617440098019375523595616115175748146695249474401267223410584887370609925163588261520997861443394331746541108518093859883072880375963715045959467554471374255213798215547663364719314917197246414933484998362094205690311153899339190375823440329207013820587322200267228555460496365137688811547143681819668986180623960703561592339227215371588563831000913761532083994616580385782463131391017403197871350950722868700015148198070060461768113906116101743693790639894999601445927690550436105828072790936899557372037619067065403334017202586156047694393571838701383106142050496434932422989753595921396012065105208411368099497606668029355515374784112309076311947585047616355587365198481565316905570105567608546172395882697624406076797950461858020459329521217685431824642977128440149821370299316645180060556226168895653337972959740860495301212357696626446347185202956301581706564247406024662000510343742994628716544103016282769168372103255646582778000743656319923812173366654211976540484851608962326578753462926035592446375211800428763710139957808584034644889460925245561711069694891442122588256899864612165200239236202607132567819181709157780133070815040961635617572809589255399780520531860866219858759639317642061867332421987333363921212820637750199602454291688725327717685127898655007905470627294213924143630132571312001506854053268227034038160641203746781910752932956847020137018847220996055385338969555878737590789078266983034679322772977813101981401685536884750118927906825881629187120674315275942007110705126945800078778307281125488007325211899712582640415752693740728423288842789130855943307433450982556342775937793319250869599480321576334791853995942563654469453803486912800764086054794450813304790088852941786978957864938093851515432882004993826276544964602859813115897381769485738855034682525733973099185801165914711457409232392113923102466866086239952107224357242007716694278315806363816845788364596986170654429380400259334465613267951572556426254404988713856191346149038413059458573852175532319095173007898555893975974192027567205106544276390419760428021320593277988327434463558269719428675847061863740435384766390143844181653169691590635082948587275628684618461031220721841714358944271515427433692757411578643052948350592962616108678252761316001618802007307994683109551319563713047985117391594927722906140873005672647432224629030192167694134029122562848093603906166310804225041007438677458005327955422871673048351291072927880711310330358627050858688472847684714327037752099168873222480547995050288648947240714516672011098372046456695123466919005627063282499211901830172840802672986194137682935696641473272716382458746003732168107420135421992155265077626024345640775025447162898246306153048376238079755030589967759265898363550443523673683363406079858704927460089202465809781581353719804680439553004654754760496426171661388428113920428752105287610316001468848295976451996605036851483121914073570946055169980479876446527269154387076756081818722518696399727438211281741670306882956573212661210660996460078017549796837418572929016716105194061066974296446115425378259150201789441735165656933820393826322781336022019609396634336018579625302892418553954921435457435630329270574762174548219517418932206655227803631403445210770533876329721008166742956374371125206848200515979651400293621495229696495163506201037503259058628664668290175143399135575167230913235331801170641070779893298583013673764693712997700471986075143924284273037068374883696747582554141597296454754837902550538064058093720624908315864918044465859085689049890052181484366127567050960200998564125152103637921796250771720306319564310772294183273740297115958808489467392698649734438730364346745616237707824731036146190132440637987261851591177525373299151962085797239526686414674311291768771773632539950754963142560359324396770613366760785206698008979206106783294507716846019095601491231997411778495410069303669830617305380506539826662079584445155679641372601639795108564868583793905780229883618162231803654971001888495840471344290578645061840810898215021029339201487760334064914664171810274839140066444611069238671845275663722658316064596369003965404876872083714260022571778854513014557088140760660358308165938961643476101891866654900086676525581073631079631718237407418387883123926435424480063343781225924535848865563300587891193264122615492184694297477844943618938816640156319133877418455405212070810162719371523216034891759894198345210607890362887828910589112993409247212671593882394337890141052220854893061917433665697035620907110998806739610756345335002721436293639801578093753349142855752609389409248614675546557610491099576392798698187460255402382690937111687884049516497669262344717212068209279553904142191556067425993324214928798644133647071806820249362081105405031162837659354086506453651774987698913124057568116446079320865754286253563266735356097200850530517194852684452922882609631041774050940460861134271154149084629311290856666764114697819081254333565706105552479394842167662716270087897313840314737862646743785584403043297413251713412352933643498674035736710822390344741646730626769254779104615150781608245138459469435166610515461262977747817260470316897187436444239817719859183009118131879483845150362778902596607009152212957622039588484853940796773892795929102955036830314751721692453766425889596016156419019496916422807623213125940783544126343480131489883374390603347536897835165358187706757469977523928248558979520199123371222359178130840064543977821233946851574329778519408034846535859882003412440885340938353894686407412069475306884464727938065614433200062912006176797846844989688190187939063123618734521744407348518150354049114586438834041643056380111336671810512959110595459241843979368803552252586138038968800409747518377715958586311650020754356923120730954245004774307597001278983283076415097466661439335849281646891598393508370170158850677988098895161881695652362705715525612536956420809543451427877423549614272699820862736893678129505984593545294727389633798298364627244807810463361706654333952588345337878644416677225084763576781379837171012656388824129616849795255239499562657901687741450400075604905128426097799580469207807039393114126476690945397460408020526551841696182663371928540923726019541134754225230315559543142023999389811920504864841598627427549420212007155512514582513754623601600523445520235731623148969055922813882557356212307185878183945695481156009567894886361548970772130786344230507874487200317439826552317353211794542016327474386818786268442982833976015990209880919058082753330922898876353920941698722097599186719091528693724953329149805993617152066572411811187933827172206174527039027525850443968754757315683712219313429248423864309028853480092945738290527796797721911559367078602286325268190128649584198921020794630000062565369810238593459202538973819502922492200370143395854021362083731631474874758862174809575303364040767751785793088157244728424896368097159967706719462464017744692856120729443746012418253151720073254747262319061030970495504631607845613479816821082632728666893732589106780808763658186618595522272012359052227923157078695709977124324284462967985080100937225490012930014227042791969045337937341523418044848594429677479422207606385142773109916464986085547754120557991451295523967003510731624274651095115509851661670298441519925988895689004176892502777961050006025582896401426638546115437217403851992483977294774569745267437427693068922151014707197276155589051155429590376566548509023708784130084173272925085034569414216128636266501164145454087483674821384295584965446975945836310409844101408238377863508094901700768762975533921606245478838260630146915221744713960496009167709195372348864645945137688067392831784313161706561782515996436562362739117801053530737678680930911350891540617095341313905170201563417391607710435280744411953544835723720122855000556919139424941866814970855531861346661192801697613237205888057272012507990832925741038703928355988827548823151562915209274532915787462489829611098277751904954801306708089491425220524667341971758748112195804114921547370510979711269024950030867926496688580260228862882641645165030145971300639751873264315900557639782953382698512424873326073905766866923763097410133662749080912122523739853215656623029062789316110819648353887582403808765044747947301902788873693627054663457546943214545962385728002988723668123654879932775754155707700602727315392356194618253305917662719221436471369975961194597742512503105603534636145918029122665015150525286442620509961562322224891198983900881524695337772458234416064174171240016566076988723451091450983785077200590279665421857487534022869801762867246668132370433153914514880408043263274297621045413562548794887695978452500356182026866516670717930685147341164091185058414117114797835871009205987303725566815216614599068342337874755389576857405496611967697583525882934192301998060915122065400062422567950847329098924419369426764001663404389801217890508497309711581737263014509838020149348075545080425964397252560724992306293585438435595858219189921538000668048063373484704083926657478786840888649385803806259159431428469670438566967927998275003972780495140556823502351479236496909896696894347995479060128201354646073469485730923933519576750660018169276798885383675954607720659893684729024800355281866547226083745495328959154236977651624174591779222771535745186294924244334438715661396438524521630317130986680177137747275873676787584061013407001843193687585059032761946636716779866535713572053635427057560959007420200506438555422445976741381087035247904704708212115605518410708393138776109270872321570926793321195983522674848047299807490442524420337652804218409014426813527160183275533522744009380066196840736455968790461575478840803839711446705934083638643007794801699463539900434407099270073979029901261584579027182005194042346737430475507604697870181978245059353497740160400640791685495445579688404299347218347767518695592128272212600058161042518186329835865169464861835736010969181463704732604480167629934232478278517598867107273371276024055968704371325279662950200223189611360287159210785189674549666870260149545499026795083157370983982047535920585680770033433575235155705525428572389256118287736062939634035058529596134524265647870923203002064139058159531662990493437745747888414144255175795957298273685098076624702048176487416619868701960989268719274679403588308640747648918149957491278343490387911133326961114806753183971277587325044924201645536815588668565272374442423545664825287142515042892776526071804435522318434184310790713559123553803472909725862783428170112385638560526724820686968711557241178734383640115193799612262368136840913351321390063804894428225304026845549369593429881427813777297958313715729012835514888518050759070063987962644742958099033278352309644130778414139983920151227142964353561133181722910833725875010263802595701745114448377456130789920360698151864180947134152336389994904960192542467849900245776082492053244684552877094054500541170196829090380906572271548287163903864945256204172353970955982500474392890565073331418595719263171560491602972795591390051093077742800737474293219911083047144423478860855183729869831457001383152249642373269884458416445380554089991371381322893408735412124406290093555649217468148829679398927090897531663575721137434110025136489212101533458497259355334221155435693387387052923858163005793955600671735153860233853908856802757636297802038733337051964258839656923079225820336595956975021699899905395057920849704177347900314507654896819352095807927457279448859554338578438581535820953585728114260603630967425032429081900082804444854104104687579904218305329180984465412757886515287329143599229154115554709733675436900548265733926610014565690499044435716722458921651514121158700107744273222298293145896015612203749962461315789722172744080667383605636063261931804596690610072351877687485931865291966779522361706714758742552977173310075621020880952097732116340556686820252372668271950664662125839682183623738360800828656953944114366912959137443290371351784691463835072701706943064250739359641161440393239309625104359196296275122182967194063507578210992361548188486747514654783986675036389908862850732030746539521666473558888205016467919612923848679234234004708042398298059063621744168903637873059718289290698704051989682417844793955772553758563471324779654711867552636603090235003443186232851331013886214562084713688090939332892173251497147317341374592445062172929099212423686131115213946918698064076150829577744716835291616559811885246200860390194352346719715219602469103979197000450143827198885639694241576991418306640716529997491611082774780019793399610950871370279388318964152312705262459952684752634590932890023618925223763180010155680959394066598580206259481435109072445301148088281851596584386284559482218776954311720239063656937137013721270131408149254265632569514553153649206318848261906155973776504957601474134851485463642497022200568739574515964412088710117163540621981960341210412699227452942095420603226536719410452960351941006566695611384308327529632951975898843532608524289543410003628158629691304323298951850301561834266874965018318608006566480881632224530836972420036414993117568961368800638205133308454791805944697492405344372366803690088705728448928661769209788542025552435418950050429825684861591190453356738992886745803855814551727149301698417863131703406514496922457114277695103152749408774477494727413834351788607319319651673186688832573850728517232056693041222178364216717206384960078607511357976624826958586096144577791086899750038258027905047807072815950204354458301033303380892062908237035065362955858093812915207377746502912238164353390243345699597269394440667996284363404602285439443340102510782147756090924813232287573166465303042491005532468135652444089407836573725612873170378058807270545741787466564087014966297973934847230816427383542775887905401425452770774899919237183937323033056228353964431513844241868974373607510010226771585371298915215815617944316169799185852718715478440602759442766060823910876317505371434460974004575305485371782335383373433122463114042899660140831419020898578106036732555651545041203320787817038127845393030453699308751652308499079641851082816335543907836052641698661520778816098635904188115842533810183679784028528707275876646441708431699273968522526698862095544901027706628605389147017727670740155791656137274906680300289748610948156804248871747823407102974983509056795997680314457744538777798685339296625918314962237688802031131669011246120618409204427668828400572728196207179004992846760355239538991219105644670451165153214075117173888668757471824070392547365434324185547461309402719652439899218909067905197405895020452471492210784863124219844086882893953603483204039263862087656276123026294579192714762662892335922489170155492969886102617994613879502611064559283314582283261264954145548587975925184790700612163707859806120184815938036148783399520748550865403036448638829894806563429101189373638688822531266163869314203936571985060743530601891655100785819676182529445750852489158166586418402060451572727248743310530411181658099527852592539165334595438592103843278316107268837441407737828469213202598764456739073520534292897424173833474336785553890761725411123231561424808394777955602843804805271221231849350936277556625042309395157861900008941157273088474669059388017952250583425977978304836762192301427908569549667656501805209440568858914150588181374743916452261806516796291948567281176534415865337731207590171576469802693738793689665982988119870422303179845249587738781564400807222225975577232649638218744902852163095014098731656602695695444297721496142377894909157546277725177415327209569547560555199395527543905843053607002781260031523622976392119768514194942806838490193124935712760444751983450087923726705007938395962026214237169430112129620383106191527993889486708340510793120431161865865375827687516833716328562736724435128575760385903783213319593360092008356663187079910535365942531309343240213254877479872985354932301258373749212916962713479520161539588154309135572368154255355080171615479848330758990671945776073897109320301626368887264055102417203961652832419244569551224322764851397118344086209131535736740904138154828038498384871229841715819038194473737946729042979043353746917177330908988836129181194715620921557566517736652820630822868243126957857140419300702499013813842699129689579271140425919575828504275029127460533793898075573371870689261279165888166758785070525630838967265464193921460131750440632544819618869445911467880797338074425060494833896629493174323746862887826133125805724587343274147180304980806433411077527385569365700680217455253799714113963037126122832895176526384438896956063264996268349287341508024889229553783639441152541495629934764790067745664966458348349694554174814091254809866995714114588216728463637865339540352918285232227322394778770097456961187931298794372655254579421250535505495831487608947166422711808926544811615736526784487123829388901365971883024902025991800278624840478310760887183919186935188965337476520083311254655218535602695188224848807037882074113715002169127332722491543361617800259493683428738247071544336791586212494374667332590968265838950068372267948243255568796306645820759730930083247017489439136303350107206192347035354854492819117838333824543912153263568241807487252875160916141014185124414230132699920436613275010517920322014821956058392359354979598953672226981929929866856540118236815084610840226468433671286365915604743180051429522012790531268191996454772446027422538265453522759573816356914679065114356617137172977334945339002551745936820893841168748307799729026323387799393623585119705273933553584151388130162916001452591518478567600221576276476894772654301646693296044868359103441628602925845533474260897186033650523418069933012004983999407247854041133417984289033840472844020018272753232227759951899321457323815284667324478711985573915619281984753289875223225393295749778132621976557841688981381913799603493222872838786529967490755978181871250160616965485780739679748459214230324032937146849888340554856926493280698225063891866457043547489042450790246101019958077631597003017918827235773146127409125410017782459246611125397053687800781474042061285531647321556926156910955734055405314244439126024287095948141388243520560541076661009370772796223226295011030031349201338763524185289339040401540218948578160922848898244971831983046619256883635437005922534989740519395177096460891427828804242977324401273782821652738276752331632296968645977567372505752992777273716960732461790231846337978459743892508199350987271384525661351044662822563651671581950289890038468162819097306405151603988772432372104737827202333057640337143447706762149166037508106847620785066549913758195078369412572806429015024829535408624418236299944913691022516671764564346110475788981742782904023921331989735473865358820016767078308156381942512445855678216612263543803629360379604616354624474080523278659396379392003706970257228942506577841322308614136750812318428603085836799907747171840843215976757956590784660146470349385790999239956653263958325086906092098336746089578961075195238876580033979963323018636927055876861462967297922117332274145857979905794662127456893254913383074152457952172075064135752995163207156346369982504123246869328323700812724676220943903937352289797619912590949455036463013118856118045415281978026513124129915633083162004870017405791428224554019478737507932904290644509575701137912742657118317286004914821582833261821650792566694559606671775285882888293422532083213733038923842210640720454674933404077699314972085608632509143945946384440808325731269046708170110131784478020840505810363473147733201501338641944241324864145292447147061457590472486599144613237024557333495000492987374721615828007489267416230612556614402913392952767447206990081735328127332873567150051777346331516849993688381774726355324619666348072320804454284449950007990264215258702618374786982780500285022919481946015192163179064053705452673247571330695952120270022152545808770323755685150287096482250483135277534495183443212923939798025522911385404939728508267293727447872594431850289261724152864705232433541727126051038142064224376624529484124730681526677312636374354767486125379456411061128430401003599973054258431733358581816626935601308458544929228071684903765690371293401973599942407420724463374390402037634004228926761689256498517206977002415562644932188764327572097625843961918074436394177566075270923783538837822636437938020762015970174898403751063366097200749295316298846951803743277322288225449519250524593095165065475864665155786234362256267512099386273641439501133589674698058660565047335572342978640194083590442165170269711518583459756772059653436019808421747160523922288901280476649238417616445906761494093096254303128119676224163484490742222067502092491605533241496197378849851969548360172059121342275537033886002161121159917896167485331996210345828774979383381455491852639095646945942184614244673238602583769427423938514070651843224676274758410016716475932410532065398347822995709799532368814302605197139311870817640006589306801229221861211271295429427969431606360628390194550575668360498980661931252647883164395566710290848880126377297720431673136132388156640932746973301527035846381249704117671138253591275620398436450090750391047919615128020748811968622326356093970076189822329201188462486318386362920377331664110523243851947867160630336730775306880261524057813332169452195761403067733371388292769565433345330056797943384745466455745461917009001394008223539347803088057468651544157256814773395773771730801557252076736226516850670600474285482904155383409648861005426922426883566417731724545719542430308651775313421989963230348508045048173596103934469062244757177029778932294695957723490034155237477126955605185035603112116477172227581022489080001588030394455736392996108711219003315326841295975265938476927379632679700693054035998682688175644795069763419739911705078885084634232348310674330646617764962653215694382422377805523694547104642563906053480427896868120091589917824541520403163935844234300286319046015832869309528710314911464209861956671667327918614869765353134771736000829650415120240403968334181674469478039607628065869707231498431268347241307037192407197115503233375607298379186390482862887132935478918154485348047077422684394190826345236373857153602212745559271271308149115327940332740617522583466720942608342944983473779077261327151308586055694358316324446361269141921237326584845644864017353449605528143972033500591798941646435893336709609717481565864879373979434049629645351670022977275923626675963029789042144651618944339285636573881477926210578809897869579003786871405782987802776193367408355414980727850775080631178283213880849217747318001337250032354571885935252265020859953305198259310187504313555834637111971475753453420896501046299577608833264283878238075475205477997365636143041832089734009784900249391322541326607815245984901315883044305381323182371988886029818115877073119265872535742496395422351438861967754542379662393275525842676071698032882294162953896463948632028072629873352897239023968907980511892748850555565775957224272121733287655379921030292094894883586496588680886591461566065422511571997724170543817257426563861382891965063154770219897812143735224424910614564420508732201435722604210880194635326613047923135633201735406593484625297543964553222600066144504003310238456200219638407822129483089603474665702304069970333438419818090060440006959540426312130363709105735425735538385919854840378251078645730879436781273923202829252872202339438828165475601816949895752165831078912852242080233942362823764149177534720841259859566652253928957608157688112247301932675477699150457323060395630664445592412445297981278996904335649417108435690510661136666581683727846978949182349033865314609989570205288881313385833930338368529668683359132679359874667940487672335253055492373663087145744726163205143422760704505632855570023860503693506348297638124272973223459387558110600899196976513761734807024457504341854312786401353267492839515699474522427098034206987506764968216403104198233590978427810382417812268222799285023310572997899754921547250265536106988408966048863394681759780838212859000664559682876417537531673754843889543554541246316635775770080761304985450580539874651521562640791738356622847852719228532225605236574855193466008254436703128916247170467959211275728030959891835550208975483069759101702605898443236687143000815345852557169540482184182016563652730905257772551347264735608188374109031848059949661157436766065400720134725940563242392151389098330937083092021251972859675703107533550643414936153661654669453093244876294377469696282951918593554359567958299981485663002311175556580147263717647505780148103647018713058516052569795296877411406804995793633848185861685764546864031740218683353120181448353690059255169357014053681265203165969739832487206326099454203684906434451237347346832226118922362700126965207357471503209273973284901926245514961446879114384832885074026148419265559641508332049616303241105062904683974715677033873644074061538839545034971132067220454287111118886317933542280869600171251705391132974072696355406064207014569351968201392105191240223388503637183476166294543494225978628971026134369998596847896426333495120911286463986239085208389949957242692361794416442297297682993764655063509755036048773746667835813935883546177061247248060695823157448748623847921177680812073473038024793336889683866519012053879490604985920751203147736908801086105310080845103472317389627188068923652715209522387917399040935779597058724702921041544428078768987787762761693389379000291126302082845630769034203582578683741332615481498386994655002871987350610153915950716166224169880306716462286844564165297428695536818255433178726353357637336658500679622006629933684222386698912177652293092503181541983145187676836991756257446855486286765315589175700308641172192371893571391907020328497749552758233010529683268035334650979194416227767295260164895642288148478333810134661138632801713223546017572771879234336353162174607914505257891932604263082328229430618795568310669488292441426870009022244611898348719501342636917937606717341378861109957952949686240026483080330362535943767896045348542983885206905301651939837942109562049980791137910771932603444092964562627630968335812698919263224048864365629287621504362083592298824514210494054020702401843598371748938916694888817587761691521402819101764187678223912422958104374578699644626374175905691585635109255133179052213818150622500245425987536465884631372666554309821408495466580283490448828587120241792939895126324762584349216880940423013594827378010947963924535689609379734700024603618447210613842138377215366884422986451356872075703523826537928584183160815431577245859771515089502052804174174469236330087566909833200168471791345459234320648086509001469836868285143127676566067460478884571252836569959128270697355949016655652816903298776265384586821051528431842171655171843123745033038543335682183316795848863882735501727710493798979627055240992491245216991179613327071320214833519614338268649422466039381679748000838931182403476861561509972424339276383376473962985576000833599109933780955530306193920558360112770701099105743870253245084692342082082579839815228373013661401183974975530782098442770227230095618045238574622147719455412696607307908544827339538592717838345144931895441581303732152758772303723394083280355311370082091445530634601395854340838178483250007344657116287677159257277847482586008330577310052932568324358682034639507867584246240425951964323848437450357447597580006150202618428725060560473857179980556984232588167149241311352815785385220915262294432177084529990187346058716403259782725685209002079234166959100666714120129893038375486861136528192435322033962777145921216765448724553699559484856496030995772852746195612139158671655997210828225923889700999248225865120149939108928834527946608736065390572689720389166102156991217172580347844153933322714527377943015403445356897378460860969419645846888209197984532263198632887984782252280589701696608887823996687417183700024751663181010406255510751200919344949994280395520876884144322668084939922004966553559135891982632844432276969049349189922576467897720516145358847658351350607745142069597017981932686831200081311973879631199290851581080448472382435235922336350914953102339452884329358194634213893266968783351961112306381262765913187628862403429063693839482635061202813412745220183097316570601890860230436548219052338883915209893008655264590906841806959695249097903551046147926383451093137370216904479899468691567433433130844643988290287627100636079946349907055598428314800540291779204705167399528558988023202991548842867741464166192858968178804155084108416796352479306717465722594657912428945229948257052849333369178372895242895921778109630365893176795258108117286458038567715364715294914583411977174234229314086239734848159017448496127933644333708282897432757547167007804508771887556756379934006785094215212160304880061286790267527640536294961844405828061310576532806063168761882930500609520338792039279089854410111107460915560572351441007143807453721844230813253313860543781393476250051330152143309197927366486597613203744771437039573572932206692842904080981984703430511021106312450547033055148804362128954629295448375550474657831929758218449573454766085521199271563542690455566524547584557705523644884427270529276779261436272774093725024784584078177220818296765224144523231495912052045314416176565991607092645863988265357271588611206999922530791618372139077980869434685147665026797882905862415816186753403887836722408262841305926311596199548210155630553679171950953336834810014173709773889638831867086319769825014801004282080572883567155672276683601756922681004089688229661352421109063764327292597521544619983132871180367585697482072020786288690811765013457067601835020072254876455367718670438414155542879857550054511612923495381166620465517211924587348268474194466028159229850252528764379741239054918298558590082384669387041767977191260449568016559339890782600202998750800411191889610897111277375391569740601907319043525677689333924373263803797489681121933083218420454845641870167092069989076298002739852966229104798832049820552079240912547579537226963817403990771573848543878113231296646898649506886684627090499574961301686402164983963616849965614951946218722231749799389895036397265657946947268860564645730663149167357941424407427071479255018332126732370290804689472804863575866654873658207228311731292652368831241524319715226084742820813200791306550280467276461868398645823537083257931446247562635054303281024510767644447295971153998060842222986858230266717286211093333443123138701368848986242023011298375093905492420092451977474220298755293121193729411027737380382094760224780840305935919252023511113801246656755902288563628128020597154132441342548747964810276278761348672849939882856528040401422021239498864101164007783250832748940324821118888813343775956430023000554988196949819436729178836796123613703482318244951738252327414295614387446077611092845388731867124788417870671768767276668085764511796213031039863053314878890143368828942798853295191644859083769497065970463942271947489424980928554872317107210070348834672074889325285858659513191116917800114018728362026480555456291005406467606390241051102336755653515313977193174658457544206577190282096628992273070789928780973722884387006084898067740538881735128493927184971264332599331696265655961102840815311891880550633849981140586237867340473134079289949631941378185157933447211355564894643595275419097140453521697602379951766480974829556195762204670160483168179074771841511196978101421861583262487556078637378265633714312273330282465589462529186262634412357087875972841826003844517159200159958820340966287265064504769802453856639192654668264350751686505022113734768751963871447623184380522107684528910254230682601458019379183230884230918732829730413300321284642154365241858169091300963982999047082929648821846016414365526880679051618857371736432857670176139768800811080981837872075776385551467418194816513900052343396410712746711479053586949251224175337286993226899821774060324370808250376504305245853429122736404504636779684263317045404400021464629159697069528925962672961748968051550792170196997066286777041647260371065267388766345348855991765140345996244171412691724120598987082239403865355217545339299702769523974944067334980507390556619004888265697559540760951282814308859872794089917536444136255215040902839279715334606027732445145415291817677594737366315860114843554395313854985826193019764247734463789512038565607347535740403548278472478163240102710826671094124594919819754625815934195854033512555387159846964469014646813793719339177392089616011875672539597207507450673696228490831163541775770576339676134129584328677309772211293604647160175794502592428947249126825697658793950240304387776252842093930547633988412017364774529402645587802166369215889236238292930527064162275065875918002788423562395536041310791587868726683929358840687728866432276118236526803972567220938727478321720021080485704002398477767693739359012081515083428686658268407830040824158986919264345356343933265012830958820031324093745531468925057719849248930592302096798717827731462166582420047636783633137547463515353438941740372249471809211603481449117215202990895447142633720382591147141590144048251323470699532786484485747421112104691218644225067768592330501259812005478031312764326961822165455663771607029812966451944201032250668183647545261292259948396638585376199479371338092363424058106013883209386893468125652215210847496261670002851874761078131420424004147173105792576120310740128868617769992710034758495159201098376487058826178510623074956494324597678127699402186068085843980008500412592157449162455863418441703605830177513721967303559395206517972615710327164725568032051252916302876576939515526761745477411626947760289627170544203329315887061868522378137542661853020754268596659371175090484847703380585126299093130582236256168539488454458256884519556819703175851298195401142764043867046663903787245242041994080313963287912611693554255438875775269293040559389071546473787299319156641095838649492152735571299336185263466956841248862593023101738196090634568323532988365547052972082792685617813280612081577203534221813344739421279747721827058286986711225936594630945758642862157166948803716229144169195849947407846218307680291577345942617782043063769260345482788721314261970531099146899304660675228293148299119241018956034999170085042128233293830602254969686175033215021559581418196293267999102098560441918370802344336522873708936432261125306506427079149921483393204591522303324383810485069348523372095275027716379307260276452264213101217270543311540932937551949445058383095070458829054146121325060849109731709830706446481309585643358161784181151476200914760467758132129600851909669336089870214097143633087847726142078804598004761232164782986694028957810120945484611576533637671424835810698837086835067198465858600787685751594643564624997853627473414734204580359035906342277772757405093745954149229306566616583545460266495304326311979866245654410143374914715035154958040155304840938518115527457231716100453201183179173119908681868868786501147141820235201798748544324370715143173363670285694175278618797182541937369593552571501813270943305524392648206720042335978956292654378209059467984300579970469708501656497474425466826094167687563659196283203929772005835730818797877472964231231873702421547532014083033398616606398731060688156739723818935481693248233721328129708484465632997732186510838289854464862588774783532246213238811664315275509064263625605727973149664510970158478236831991538090948218668595365193019366465431388803169191315845403940436098501417583399075201217051526650551303075213949552594481950358670453180138318970850519863003824720984345143548630902047234312214915211664546890848333739624788839228642987742495304227558055447754286534712289007165701521468442512421267336590299918363827818419468429652265290626789301982292444121424665015307539128823947494024611125430382587737718235845469358099195281541078418813492681579176141734152135700269804484415836479708138448139043324601466550813227830144357639609059353820269073035005632997133959575313252197058268976104028091075957594530536048251804667233343190048153992946287731092945915857428368719822975526455891472346979257360915452988941600633245202360940824721770714850408546444526578453724637787153536339435251027882705440547675011949568402869240285258446328283702132254447547096345059191514499060668675848041589533063013766334722639203620496831561609490122659125609064897318460671511100685163718336062884096270726046376633257731687053113612948068751476915741142061074418147472817989618796430937976620725732003009281809319856134606986297382838942103182912060775516868497883361593493625715793128179477520600455634242552252933568190321323706358060717701354357105501444885154816264721057255683291463126116078460185113289678770853139512420885116980586196596982518651850352280843178412606544508673403497449076702945937156228044067153266124583349097237721706222535649363308247453826989575060210257624111953452700510449294709955753125891831341279930033213592306129013198747691804629753931766420232227621013497710926614353934531665918379669708751824104899529294147094000794486071735571659610223129524457092756212038932937194445508704384165377538925564292186409568965482195755178890371480727017766833435248555133395710254312192454428112049637951227134764140586994920537684327196643131320609113678402444591678363832010202836049202200545880905842285316956572391856792597158686219504340366817317035424526067903523812429034009641429646994452542916431008547746189477732198270157901797796163573428661020606461885234421843362596249350066710850642587848798051579409187436417740660342616644376151957619176662529372035848376444438735474453163942211561191280892048006828936286802253421393761366947972530625849077344801995751840383702435906789630377704394797731534654289635462298330830865615849881039399044578197460043719062456440874280498669644411712442736992526349028704288250252789978372040553949058411861594316201027346600205299372800112995178634912269364261058495099344844372020660631899654965459791617906354251484851963731206869698070295902282500574552517728130487754902935070023316818564119129491906201385064185777845089445798282146515866087496358462637644774137319310538106168416644474347182694693741557508528920342466810416326182825810075971671327333048470511019726113699717220751709932829950490803539021018360656750628859546896534385388803075328578772153747894331455063729577102190453479443748692143737223804351871016227591418892685654831082954770951024977968649834882797107200381919966880236239574165189393415852431594318846155212729038597616492482258371477064115930107933370421708491731751216895793353280587095031629095068490082925934325763133724552556566364627041878408060817673850063805479787413322885031302030467556665384872413090220501902292062655166492010644479996230824657099706543173112627706521225257765581762421583425439179881017569418152299349313913492410179039550598723055551212869094266548033531448642822741122954654435994062638084268230446370672256657563986681378058444714256656017019936862006488585077869972562293384135713029139297214935604865560456750612408134513353095616773564027899495979613486098527842783247594990286704441168367742694272022461729190869400003259835968053604934259469729158439571984259073676840658248933858761859690516763652987871739292424583065410011778015071735165987015746402457216589200349500956515592434937976148557531765732310695908164636239784553242905469475715912680503845392573648112682213725446447966544923809002810551464668012954119258948583453250354921915625080702673408267524788385503137872459511808963386491165620262598611028061382250394272981902336034878701651939371107735786624263519964099616177930644833854006123341789211813765737334665170463647615520802525862818893598770107414867846264323958357307203166803295787145815902516192557354459045783144720547470303623517514696681272918054200064751853723811955976662937478413125227681305302232138824083281697208785341049746055971811956785063811364349340179862640148019939772691212349206933194541519386881900324786491601864087875569342561754020284446729373570451507177939873457026899292467670593018290815142317502033544704594158233434807992651226594122841378923229855017220180565316115456245055012095393159548153449633719660747063837953198012951812848889670520265528481589599079447059684429947948333278535470868923979422919997416531599016703759098144552991064075098732796613848901426862017435014277573289087351300457126984411489573528927262872827593310719884226790143196807242181084430224885659141718630412282200886355041947731469180142390537027548533856057154486775171108376267980961571953340746586296303762368826337779614596077072074564983446632409241772654263556725615315403990720817059156692234530017632849249347282153895769305781138650068661619572767950140319170448744230753626736884916870141526210973614459051399970777174027386332355531793337368860721194173511629961223951998154374640801490693593934928733804900329730015754795990165395060954806995451814527094940393555572699883747185086352055477445053834509018973993819570119345085790739719435923597200364338294762973963252286932024380379961636391423792040373643274780168629253909115016205242411036682647149003216102068822841705284871370378492714502779818722784975488793348137393542778129146103251129697123781271931580536347731505903624766505182019854888522606236597262537458297489624042973280049659021250259885194168295396975111339262060863219196805277401161977362902870863152483373945353644146586034801492881310571480023629793901658097997718584842547430909185840480108740382006865628390342977284932688840388490921848915037729124429422201267694034584527188435484943915760038145493026881203513081062899231648610438712154838575679283329288937580679323969783102072907045783481748815027832862106536504075371947176938639485227945789764329275778792248097678253317047985428265485989387322804008226837664087973779508440784577132891024336260020133507030751607506195122683631054849576380656406564818693670722219243027118550373752362681916852793894799259679520453046562052642497081943206885764460331000039576982718633559767477922416650585994655134426730942067558871618641383088554886047790532865764048565884902289192036762429402723388526395359215609089511757568956728348759205968383229787787418171844675130713888092445299523718535816353712332642983793751310557558793622632205872561654881440530956391659746166374844764948719753045246692922562143579991865138566359992300128435793004592610896212918360458009398789972630569633519508516546342744937300993857816477403904486908268937784337244526682468104225061665216425089132155776777481797469425546467465874207117851953636805385906712197851426734873906643901050187067861450441487398124325210064550465395568786907964736148032186450805573276946781358558716757567522110548356012021204983841548566485509358034061586588236821608595691663541841440240221534588058403646907583942309776944664342979504350568861979765492593258696635254137423186953247651330212612362104500748051501387701239230859321838834519965834967864169800064417805915853060364327415816303130951790577757072990060739016306197169202655415610586766471733144215069874407009657212631194302691976944890579293420271181156237114232191344619672278630569507254553006601117740662956526412331455402092070488319038800051184840856050661063675234321703218124759928321028958005862044327144224920373921662940966496851511755833858358588660770656129669679267983074880580053080466679256082744853846652916913433369465059039693671338310104010911007425895024930297155061716641634278340393327875069457472338790417007232650056720699465199668933422210491581690278998445993345938987655273893141910655107504500271240908289404661213965138081903308278527338069422673448321608214194370271097115211324039542520494944036752114058869617849184832780470067185248095116351312329198599314194375500915220210920627885605794568173296395728965633460546256673058095680990690986793266896441873222964408671180691696083309715134623422661185009469386416670076497878892026234493994122191511862479504161023199633358779838252104888121398347161413327283596218191669082982854405541731080240437565985153829085453627700776528557329503105405724786739389884070652658535464076899359769606458398258870638663465068008483046352711102535289681995623390024136542808396462518914459699598611427947097479052125895174088933764200481413456445049161781434951885166045834720952881042864146020444604051092334376913265109543233062274731347060630623521422132289365592684319822184075103126196193703845615486090387160595985152560325557288891390706920151771220823433002315766233507752376617815172153539553171221115866432879176260741676583526031134399206417627877577448665634602357947986358903997138432516381307496418913891861787551231352065446160260846482425402793129915445944573662616341944582740068070383585596579679874472379123229139083340583855589348026425456319678880213303396033472901372592616740830952377001838770211817675446410135957851167366298678518757182228918288556566132342051535541848677002464654312165605038479403041928010967507831486313947220246249025603274345776348617777310495593542708130973064651778426990466997741010987712342632972211685994618936202296945049810107115330692176425290166312096990518983490349606171558865116903691059508159299425261494049539264506626510796949190082665843502778790107617971502852891848147652051990983307989409471233564564532998524723407544327679608295306266745207584444898083317685214274767538950857114321739385216944051946302052337694947697409533665827711108470257630590498647343095860737092220674860727356289498958297790861924177951479426853677017144114151404578875763571595582085560982389466234689750324609150396308205133570600335467312277195636919069577170133567040377679570263168598250485960572751069167989943118660636353883868160992156619949842644192686816660672454690504338070678102592806925884491318628350446551806263129155800980731174989744272127954399443359633150680444249384101596743392038590530916093529889470789063759771670676681525642558784087363768012230502680587746987194980390709640603986458511088163934946291403728254692957264543510380135938917287747503895798109914841174568002977710300519626507645583282417992367488506120002401929939013372944468532954324492253317230669012230489768097516702671662882193938764592387623383425383560295826041942449682004400770877501324942000982195225911153732870324741240577777180476218433908234935280930634052912025108456110813164981082174807604387018904116275559862934572567901913850159151414782172897275759948250534224678536865601711210551658485733278941446334422197427867073656359791550137510153308137833312730597459405121964992486810614198675469258194657057982016586435083386062326460872229606750484140828212122897228061722865199293689631882047883950865326662030486670185865397166264936547903620412144344165255906460346495596589860390473804887441944527588455556324255016593346527241787957135604317284903420630208928736025880095796900039553883003336510748053635140555175559773203855659031604704501285434349358935583661785274687466923645766627091546918705714299718622834463616484600014222936902551165361159761969420627433916560878433934363148331824827957792437116377740090198941279832940441421925242012355225772538585931982402757173377626098741323191080428367274442429846287969827710090418252671190646269601707930782718758800272600824172421808825400649239176278481058027674843240227726111090569239081276210595060220681690735349214797551149636926045192121208158836482083058150383775521437312031990565258704354736047587931289213752024536340527983114750095092227599078496159288068773721011951560396542019583841089003513628444872316465664888326052922511809067543198389020969074322632403798216324846579318108222638108231184897364558407058456025691919912114521697410880852065594986650380028779829868526984291429889607070698865949346791982279320400110895525065937026039357731074827322403136991252576789324032460987258956673591354446544261899949342057132353549259406169366792197058927307613149608097135324720301678146403197249419805348346467962983256065754775499070327307257116810204531480093602351794279528039469505804679962679273512931522791298155823558755253591853948412778344278893741086239342855709291855677507758533672806163570076556327908664985055279429372952878032486266833345742246732931067736210242202006100615951938497880530322501617440032100744289517341827882853963213673222048200615029835493043001102886189873756841619317064596504294021802447972304556340576843696965934200237326464042820951026656847497680992884269053253123606924583208390095732835185425084747539197046636062899470196851547222289068615590113877098554883146664610496207075631354653931058598054081821972619453766052705230928579529792619222400616760953390761733097026649226840994758006528589723827238113531492301073724833381276846056173165207553276725557078321163050337116317060908747575063344107742150426993434690904872531244712824502269213196005505254062960486901602517533792700358949565787564499879876067768154535448240134254549836649387810903795353530792042828987321093433153542237895619449004276632966265093567440913176034907151578213005262055812374285085339390244232622531846497188090756934642246237241730773512818234030899870709131607241672241552128769481788511096143354944166675521900606182361709094131212293446717331088191352121123178586734375263006775923710576547481278060779477385874281605874921201558148720253954796681226456529047169187396604242056261725888550427729201134301893701875668380545352665369195144916395333935930254250969774298290524888145481745150685928775936703409911749465102682996974037657954564281523157529761120256348599959764114137615405748720716133013811209646375306358618384524933177729545162467538200564135053625620062748439907092685929569437985800353243241680785409599028609893567659031668006816636310984493581539563717670149213748517795104003194302632852455902667933914968213137018695348758485892704918104503013529934425925347269037491222059985886236016344797770204338003090858989286391612402637255645259368264432643166099861493432312819715464800808780119560728787409259327850289418032112927257126408937144194102023122890415533616290174790698156370811593086863798848590860686531321351654588232100088704916753454839385086934283095607917183574398836200595918160358406820617344976920210080984054716089417251780938874987689060865237899717697121183436958837849568959175465849290214416802195501485855426004538462924034441820084895560030810159791366722315229265698835269262681975046690339782600575178431678843961496284671291958764492802172312465966460023297015290007895386638144332681877586651896706037137254736915852725416533467737912900099924367574851785123986993497450263037775440316638678409625307196827819604683004976023772385088518843384781952102466322835476735809444675163035997239017920719368547356462652929580761301381035438430064155497900026502911653386458344664449052899380484380316546314300067660550784459578496052756955601925960509145205921824967474069964867602521769341772827738089717531892938669580399635304060790423123787419954650216124546347873781427990404615719310666633133415144310748867373135769421536996217615394694114346306509674278947681524591656261585443382680782593681169672844562335557389030559812605679312733239707946542337359995407630776208256161563906258545349288087642658465779090479560067335949464538778213894959288300061586883104961249882320815636407061484607506568425204110055590894422305465781750607517716846564373916289759453656175684768566709214676762227040478378227287344555940774697994583525326358858947034408938716263254811436547619046307400222773076335413107847457175301617070698533063975349530982510775802163612182819376498090303961992448497342174699837750023828094581383825295961929083595135723602692907887557654324477333097590587508486245700795258129266403439360747255013634531423891302564653075562658015568081765202913926197893752356917099185852535151418977835121400819152170646139649340415076708412605834618803272473375067753661751211247810643969007844091315999856370216786218585549131556073420054227181920808626094798732221182554530118139295190941040581161643654729537744417276378816932333783862549725765899967707297054699438102457079290624454916765931277099090495561681835536234611110039116511953639571692363030753235663412299970890417758303395782586351245369212621534815162630931381403282631376404673340063601313061569587474005411927271904710818080307450001665839012936480116251275285264652131641409172248040975721964092373251423747870995821133772057284391659409107357715276929610028674436209099651298039680517887113963885587041294391497946726843797856527766309331115494903061767642327985607334142040271219329970416948469109310131986453066939969371076284240307980165238345131445070456712885279983873982195934587266399575604494757956399456627093901320329258210937774972578189043422243166265236160448501719770607366166710729990034437494428658537811135972241189488582748431239076211639613255798481392337930099063202122390054196169983755425053934973321519244589534276349080195189830598437634208041944082071046799911343798330174314483419622929924182836830971817523867113860920923750387900950024646945222496721905723647329501620905329783936606471203319210449424178506028788072318217203478039338903339087159059936527738515856816735190579541726786413934276037301690638693820625752832591543051321501448832698292214533078147086339728772069187462084726909897738425428144790388215596702454207445661703768252914901441834132289038880762546610818323310038550747130705538044292228845755336596971318196130023978380800367136286759721067953223633494163522429460197259870039162263644601574471791155031911418347096198868646786666025109537709441600617162754506114836664607017847119855104327982365248829711564662792848655942118740164237866803303699551155233075883567577027528738278300788427307544229150183023355110393120553722797785209264290481134095897607521078945003260966102541424571929382819179371484381241255338105789096102996230240388839609795797643794183643142608056592440864881128622071636993353033136919298171643729072712621343540529027284931695164931626530599061035388767212319202642539316757962316235263367477147890912204996699026143034443177561972249972174229710931061582901123279995231599565267736332097184299858358087958920158703437560607494721753568506763195451942164845592214864751660000344961065461949652310900850120604583646970714414218855948282210174107449020711216068126816900163793764451386927186607505844429277320749218933962541191673269302133360169922719401463920599669557358213254497693595950339301547338298017873757070808217161767538074101286668375408269675037815703906615128621729132021603311482362137857873816572385888792042584566362550299046086564943554907130991406652120786139821138590827396873708312685983344964574329285838725244706461109754524703807307220964298892614986801895730591960220691101454046427949974906674318151959132325363536476682435363783009938167617534628451003946417105416485655250063423277140956738545672894012534515048967445039463031573020004220511671891442153053244646887082198468767167946766949684881719292721537508174343022543276323970654242633527355169085473386411186984954741423628187920468532265543324202317789320395326718547318192149411103276186174637822265698311779539309306487478613244746551444352499002385140643642185667732180774754410023101216545774225640232760379271949218438403286672873502684556150404212934062684624748115046777851454413724358323070945737061827284574407750467358214357807185700485337618233357146234022978584901150421420291995987563524091567294755504716565909817726468562627118111691787770511500956138344808370919887560302432259504850761869374812597253931855726955125293078688386624347190308859633517803705778980372468647515074077713098486980690062427233924722150383947622650396675152404475874405422742821426067758710783670014356396978048335713305252328667333841918331980454010444987672255259125630670570148985103122057858249107749186589314299074740325151899919195339483363732410214943124021214812807270782740330127255632878053163052723385776081702803802753209925158427280542262681952423843619729549412635807480166468751296876169277071325366843821523438210456998321169303332375945614046654457988325960113803785859967836023993690696842218176796540568579305877601357567767162954148249812098890142871804108008026061100964694896230444052035464477926962852601759107629251453980368536232443535989875315291128848083713267356204612476635152768877038041514102087173834769452379691538940589920538402440769514659901496475837254410123572523309729649639488953260704438181849338813847848995303893944344191139694240294645735071167844951573496147517241844563653141750308900896704888126606918542218416405275434085234283239914506149882090527923894753141133698354346339204109303156668600088803586336367610837276664547113096662825815004437638472992374398056544686037310250000549255366521037136995672154969663820163596151531316524758320080873041874688389029439611696763876170883833184920309936609045563500523690924806857237534504002393426635497980403167313989327452469174390380961914613557257404650230770815896808590687528182931475914363130898710910880536001499437940727599775253832264350686053443073009942123046339418969084905444663552844986857215133111179789007040388442862682926737199846723816008870150828864531831231502435598291948692868046121839445207518639468910702980222839331135139765656250290094332156005649632067429978862457556681727517937970612801779791440352988343512412583074779439022533846171189872088017168629417160894379546782470257310430813110529746694362735196702335210046428458639603317802269000022493755562835175919804946494533439414488337863666921428161983588163333638613638777936437404178995142399345200967527391466181290077603738303496023233419222332252584249996836357237365102780441326165264625590041302218718290839760253574481327479069810796886653291338804473123448263981037715956527749125036778765330075648114138752704235804244493516573577406515890580301255498842651619144633899602234278218873753460594478313181699029016179285875426580571962964318667045960179871818376570411693546341270446352691120621978811642133593797119375243487366843091793771609710571787654111178319862244379534482771899968594828782750322220255594410764374666812960479777804934498205447010489138667907134098928104093081632865027424503612268828477242719813455034235538825485843758677856031498646952310680642130911084015464602881608929692817737952380738131472025496180142385672693445507190763417221235308203387851928535000007284279595266170472165051282055571978196386838926633133374048237995623745897598994118216768865757404085002022369644478430149177850954748170632447004387681181473913083990146100929013269376418738521882851106207837554658292610594727765308897519443432654833845670519366331970860077974259357194029875613082192260996832780518646163439784734802452680275641238107576315397688561755805754469146705768700994890931478768768741492822348569159381610922738959696091503336961245870825742310254892544435879739344939934870037405157457081607362296084908152984496774395704480059234593969834479650847815201640229362882058322566348547382121164464167207464273433906023978697646602334460602034047346703192476399844115978727002365607851881055340484820989413584915996547481144245949500960562204735783491540989356837433851612099102951263339323851676996178993274645184533546649059627473615934275152775963422725694525849300986148263489039674636308756988772564473704434674654678840216449026023610742754713801406206666382978045833484612967297385326501706061303003857970318256745754744735652327835036511525592150824912380351694387729419273017635122968587734086497822412521116236577409971219659965111765168661334343352043474623893572851807453213260892599752382306769688615629964156849042705145295989911670486196840864823286260395014289753854893831602831608673138671639346474315669762288102102452035921459487204227265147004850133586445003594906840236944749488290032541228751729438592917116020022768346921713349694568088831612183062989187238562045315916221751152619674470448419262670231068032089766186410783214901646365386463406181789593598194556198917752784255721301991702632786102591408061275999567902383671504360067379475137602317641763446790677547551633345931963172352531484493888024455755490397395327148668114034567834385696738122677973446674669010516397209333306003415786157526090676954087136096245438716725535094127118228112329044395626514910287667488013721233171399064582885450344085900883145117979556530995373603861161154316570920771456659735210583616537117216727212176803625777335631616158455773791367916871629237802899130599084580893044276340874599504996434562667528289476197910071345102191442907350200357154847466550729262993476224616412229825587763640626881532379876964636234644779387170200571530841791156576271102852840476193225136358564969596465515264960719242260484511873452875151029840888285596990203223996792311612873236415649311544112122984810728877605064223181219691613297599152212344222744299654212904663174018302100350006181133950798376772270639913588117294133320355184350027417017775501396568782151554593578728010516863120239512578903126142265195503246287877000563578206541323264248154397376186643003213616251114279885559406954454908457850216135246930915950330898870925638964241923792964776486613259184671293487661659751499446408778804252047273890835815923410491134099658197764268061109551266910406085827897784193613330508902334543517493294558992646868416920658696773594345501424722003807071884390509519665822207108462759456124178740695067376929021826640156847504935916716986550353829756985053322317089014260446630173152889610771248061485393176479602119966909485118670926050351330806888060452461881428296498114561321768785633722767554859310512117650052594567011077150898768648613549110404599450677697604296893451529514179260062012695170164616881557132843434217043002403483772907319004485058188516300160393579469354452735021620478226930713693969132487388480975864809958114554681855282306423916519173851456893960900486555324476268895230349936410028465131204142889643223437789993575598335574635783353063759230103440282644172087943831018551921462631914539697465570611210112245912329236366744424503596069716287425439417186552719980008085826647086042215295921538397628626137092742564585651786134948851345907728611133196202222525254759854923023378529951712579128077573360227678630395558313677493194281881394520804419420492549940726313393194742027574368371981647749071627743512859465500865202495270626520389534197262299358923096740515680981807330040378260939914191131331284879860826197757282637334620147992811559107479440096481405395576471126691829856157950368134898015449288914355160630073409043300176349529461031355300398963826579340823517748474310229035468110640863230221053032493475905368623530420030784395980112965333147596407404272345279731264181248181971500733850532884156342964706946650063843600789587595435084723370588991068164025553858460911449151819797467891630606396252330650598042332394206260289174827489236787366828601985133015032620427492437715029451145941986190334025759384140940941000501207180897475581092221795552968739687271431693211827194189570930229707909398804942989883253279333668296549953915711300804067078974697657389842395493418782750333424255699712876723921999089007124890975495230000064240562099795685283547137290777138505526395836977088184822375173817120587468384299002418992857801136296545303636876108074115009780820957887866295013286568097040874200023818515512858043817998705274172015600482423363168787728469952378096099428376286628877173717536752180016075632443841787100169393252218046985789549503582582837805280966565892151392167335930506281165804861573010829658632670787228404063677509796755443130634959707559688949012849469845475435728297715796705705437345070235597290503927219220971571807696290381335754613807032454541052296677611961557464431607742541491800282594185948590648104430094081493968685934032579574308547577842512551619667493605097739221786099331695874833240253806602948524823347128646548592204533861385945438988363317040416886116749371734955725419551823243567604858060472573781095437891002965625237369405784941805751705961286071050438376925089361208583814243801652749802928834900881627024522161495377369676781726568941734688742709394918945632230478795003359325551636797766194077129554791182614929719602843389355933249798728553130174963027483418548292580301714819945132000243769354680149940276687142023924400835664149941707559606067872587264015483111003464825883036474040901920671183722112926127105809271554430510927749265181045253338375420037246152266886209977397854179810795676752391850249936657573450792773664001927198898369561016843730754903474294847148414328077421020463370548901227410453084474659180863997731817869934144701388102934008687177108604634042225181594013013660912866501522637506653111239715056845591426854162966666468112025473822421771962282648203777340709520943379026183919988106381273545514086708108612847172234353217605942388515448874633639561417762622967190389810936606016899176084575518028818400702954766342239908463905207788685675613954511303289641073671648181547887522012553363296770432561865845394394447966842892684681948337618510511469050147575663638965593729436929700517194962104320808674818174530581432234239199787600718364488145518788376148908463163482349639567951649230440150172007702980762985001986805977787298586150707345472433357252401013487855569083552738235509872855833980945971957947844343410519777987188059598246665216145814464136098962145730469602694337205061471467694664902300160288449633961681695299723042490279237670811524869694533261306772219714507603588847429223535484266275365367274173789241160682997126556361998055226455784365173615857562229101943379655196241757336203346148955348539536861833086162421238563542402706238944060089478077897652244913283794039141968340433216692700550264517857974815693354007417840650390085367208588303149489437630212913605839452285343805255465631359857548448759443171981758402759995893057195075825783220166007789467961009101249676168368450959049648407333377695760623139568104759630275777583559438097925030796678187692175240828397094231018948445825808090780668248821858704192281952420786553688580492902505385383408379408459893215146660555191138584461735015451435096008089863633612462180450004260195351325447533006439517677659243198997715310027841886770685102940660033900444225004737439264366347013181038146635579831764008744827067450016287067825992162522870909625489424660513976889335614499027215290916420735837554837166795886378197443688359063244289806317685513811828830472950501890391849826882878256988844152954787058599000185094582963368050741011773861374302075112831582391902244530907497619085272589310074902255625290540608881724186075726705847986661827556093995527568929190262624270777012304114879131347570159631419861410627355491518492779641937302851524734857475754375378665082840694319042945108589675252279344049380093961983161422903246932525756694588731386240644730503089299239214681690095440002314083181918913262844059901550761421921980379692838258661431358079161255915516895754601437609881496332900933177929191651010362646888509853202480075254238026163857384442662721552078564299988950763000328886432701484046711662380530127950488877656347771596679442744049907739346780408305320906683048901385076380964967119148912156378054564212191370402347844733264008727752829692578825604124581263028977426402341303062147248604436301312685429026483358106366937979167679069256119741828645127018579208229652058956801842727774453877486826796162188934777629487161470595643602166118989161175144924427597947123961810779974895143601134355429114716271414760244416555688712732321001827236216460543292258588005076124252441011164154926097810374966877004194088111613886762369450832742695087637228422822225082860995135570681309198472317760934040085588670643801516877579589030244652639356098685221519123085867500103833749853752118387657144292860853780865469606169200970395995044847483853910757879654894321601381761513274877191414887111835614836720835293377124732432770317819847447802624498097954306784728725895637090559795063568985544326284121364124638059026501784251757628590243438083127847703559453834394506315932274366926225984935331300294406695997611054082149619961136616387149230578770256538511739580376751692762347324735834068069187713134017207012098264409361199249824884285963262188553325943104294289320082310140271645330857174660014920820513293128501395008843801644049663531413639814570238917598307349803857351226315032740609106068819051679870911879580941325042958475729528588118192184200480666972563210567355579865697147022839302606621922386117863870507533689126185584719975972147191418485241336027129221392689095120778156128632544807736502177560027374870727519319878787731253665889734758197227239593526568310977176347843420359672547710864928543281494637435611958139332524867382603429092438238172389695947319251682593129628336368204952646327716960249742410087156419576197648421531915130775413001632582505100741367313730127329890741606766178904224384863384717015519129072180501322181863097848154550877256939600476213775341401612737677849968219361549366130594927939471295257356684971195860023107171309687161806266050849334419448201071235195288911440690953486368508692250205912790438627613063450301445461815812482165171543300480336025980765572574909546638069695021570550892148157544978483524285316465754549739967514189557426817939352161212597645996640805506468786151182233775996211786046246638940775509425662465074827993492179876329934691924142581185749946666745200787540386835230640487284457177773766117126983435622399598696706532182100794753138817309746999764674375577087783939511836950570948526503804803259889228756775296763858202000904285409567321679079379022517271590729517429623445468494272567365333006701157083759850414588907439375947035428797006529721598726446588092953662402499733625777130279282748616091635715756051229896877457056382761584150919970585070125179238177309109795642057121229144855734150137588178007977536932269791518852441161578876143757116292157363139600146636323196262313137327128645491617313225801733066658954643264003644897290079675716932269961421021352265431095585223382007893986650307148033581114596365495918585113707375452676532709376294895718998960978224089796033390958406651683595289381985625212760557827872437540899217336841791715679050929048750364387089329134044023155678004798230382439799416970362299305769136409930249452190507647269126289760870720017406270416500551443271011174197014405856219928082251296409854459098022497070895270369449578947435091787138749944529474918219025856409368723857449135797877812427221095031495725497566992742000812632342280257009974571942747757731341161587083034304308095878188370884296719355280500934425462364266701906799411645792381898216079789449618469189886565076042372658576230202039794583506416032093113591773615770565341235510722593703292695021168743671239062880616428266145588817011523778162126578049202872150775007563488345111919094664372527808290732082485176781882705466132323773420924240663820153000469442591880644665902252336870876353740840515492923819461699597544059381162753767081882068974508802582961921203661918578211556337825697912334375980862439842923067080950369055468504876559095228158799348030231983831134063311004881529632173899379413553072479435665368416395617093049437970119912236403408190177589242349179587920102147123457181586350581615750714731479349407419419381724602846811305456564109214846463103107265581072083770840965233110699201710218407308020870624933615302194018600089479333467505546172141751657439746245146451198007963341020124828408228072065799579630502224362021191589074741865897346919606083958440477183477129809567472148822497460211482352733212884489760927547890606569457857255993260441806684683371157662786648582242241202904408130990395378873470778890176729207964179720339094254060542445292659944133247927865276457287319402347760120049659175044349466324106782615324401672473587521278557813338324839446663305037336549493400657664928747165855858075857231926960658616722809105509460858348733738809928397264907365904396942842680952344151607616785249932726230090774593857901574630811493186103919384375782908080546602398960052518396507041293128809826706343573478306129639951106722187597694338815208483575942181593455701345223037151064726528806741754818079716385023693413309074226334280025836644670586502833093383887066373981483320159894928776615165895365608749947727143616956669535649604320277867490786530479010022936181781362856435022865828213145016019083396386462834768147397256271909435972510486529404010083917418403029756936545848274578633930544872622576921046644477913030448736930148507312699722403252294627503754200109884106357782018587649851117171541717478136441794780820430363131919124328373027390379618095483880758147462788677842638964660355089315671493219411227162513084352031991588586063525737116152703407138952418958021018057078926449616610043684433389046401520677064739384514142032380620386288688044120187413022662114950885477087160322930063984235773319661455888892642673613343405022982543059115881435373579835971344723108231763381131702555495246530017317615002405237345843795329794415175348154383119582994777923405551198201420065979761556215908295405053194279127330941060019538049332821625128762882627116707819676719165347846916491072135349745555556954586823176667067263691011626808159758335895870233308388867258161649765961196072257564226365124892703035284535297123429232584465295891062132474388791256478196034025700678869060837811505458510786891977268550981311667313482624811881632171357696239572229956529385090627005741190252305851023509404062875434675767983695844085430596639510017235527378617944006144578444322806762308116579145989794092275056233732521950048222012967364024729614600079133715957636949471466583878143220808365584120202644248680536574582308504392664630898983327497523431277982020825364173438506383263663792288448907817851503061930702154310668546550934418070018390176915693650838677519398072075859337970571768873405541883941814411106855075181357321313340840617324215962427252451269981696417400140470735051450602702574507044663728631083908127752763011093119821305124508726955797500938507546432980619702516529378719920569205561173087478318465181792293333808279576766556079351053857359700543173710641037490243421851176913098941469920581379371619867632150560881389611617238497690960546550290011506975936019716440093739713704041827868694231317692298165970038751232205681770350484403882842811037861994365024986109941835520910861676762749822261090179088697727210980280166004234770823061087652847360061949397548359077766353996833178801071579658896002878350512769391529405144767640612004371954432443262067321729090065203363280827486174433205659071230214070909411544965718365889635537415714947748577575281606828562629328297597086668162113577868985823472572990526129019210998217145430409143422381148893030321159992658610472295601284561974093142237112757020800927719246767703695232929964812698135067442696578709066918079012824654582785998531187703250822604366290121974944132365587698465805056729085103751953672718041487819274345712778001285785047070172051735810833487987954044115801062123518883437897309549555110603832765235220768892428974226072054984958773995482880624601054720733877358796683465022049506516162062956417998729676374010514131827052406778075175877876322109086907399262684774729801879024403243507941160882402786589206211678111974323105225540682578072386957040991032160409177476731247429264152034142160295821291386953858028849827212565101042923480614253550707201388104334269682395689907586238669403161934052966273508868188934064928259512810914944512948214508101103265314341595199436922873516295858010209791322699560165378147224114411157618854866742048581897183685289462212509994092083159224508494944582781437317523573609424573284002783241188173616976890545735575681130144946223333794410358084459377940921519494632795692970172114995624553486868538624585245290499731650029521546642433835197072229261786129042828072729732123176233039732684497636456082258260127831448187407439931296078440420084565236729957446821668471078292466057976876531298349401033693125303947002694292864745452686143421046185966460352507144015717493642268197160589262374439126043634033732751567526270220042986992947539497833748189316719990207035328678754438993871275991505811614730349629199342190007544581717774903581136273177330251693247777949920905383700359950736597790754610602021277787648061932809102011897794179526519961187630094189268729045533208999735759558009814590999968747481629034376871038452185842665803096819567969393920741739881444229336443635953940725203503529228616342952717587144779342045085431438258100289848615943015621923237650501262022547093079414155316561809564330759391006960827215777796739081648167013089077908110056400306735847490757266001656802309103923433036167059958691830316854457301356855213869378877694210462935156110676441919212958822934629846654635314627685710263559237706574724430722109909166373250900241188063906997002755241115225159447600982955648583936151033095509468271876033234639910839615380849120344129268064504638440855795449334253791439766418157624556979621624468250506295719237838143685961753501900484933676099432783115542827723064634526341619961293147297305647664702499534893024206857745903731126849108501372441716632985165519347855736903124690843762962918984117638634945604384820167927025013799219454540602298815963943442873948867120989509750378491838995291293275519164019604447124141442995680023305088794174465756799858812592593247235930353982891888920828841591718089325970925658857114074761112287679429388971916332513991416550528446845876894298441310077795178020625884487305914896675509133267412946396843529836205987175712058563294240779509185256661175550578457123499445481801381795517520040285514646995732146280487814371336039397482188252069598943979266880047230903885330943515359886554426479594333323674859620272823122597569700971585483615999590708274526589049796347456503494730431235442967413671421527783513664297662019043627143333427780741439030328777252986110239873843996367727683491555108368519333962585967431627955445876401144213811043647875327045753906896317605328107065352199826136211869498291559517288759867782403408740535653046182342548707261719677653355417455714166012661343402520803747724648166742718017285510653937879420327466835477873971030385777125196394733220754650700583001745013568151027452297241459892780383733054581330311808519812165197929844752538235435785032502038217428846020569730113406637954231374413861219302416837749289807725807676094649249533264911568660330380987981978064161616844331369021407140396858087029517215263753696190251707714524083408412247463529651682975150574529038662913475574003884883241347851213960577544710584318347359724671279538441383293236153717099161307608481945034657210861176719749122491044370960495041720816050410786001734744254246731973592009152117009086421665684706503199484711580403898687022677558578631048475497016483690939286783693950842738661122598005172195628332376055495749514061029280978803370400174321243744140390612205316091055773958238525861761875221084489460122596762012114841705276448097445115701059403955182650905296884151781448763901991517825604249576919498748180635090686855339395356987297836744425373747139179272560007026790564440556876092388396757696444035230268676284682467452665244450386971212132928817136073920381918761535247817267812697996804517144655803718324436612328670386787319157332587996063010198681378772976663704457968962799686236061561283435271643600868285091207663977019505409907172341741124795890247034550743412626148124934093551953122474008105541460393422086023743687636455498457127995568617208863062879397386282594563524159519317100647771529727462037364558017849156381525889810657836045927859952716979134571665112903345396197540309603737574194397025564050710650129026505306555741139141564170512299085854854554317114981019094468592097222214735693286429052735851340151843706458018449542512654945997866460453874616359586415986856427961400717819012767810213595921694028466267952947897159544505565957155945152972816255023705080281433808168452858852719580337032350078226455311055362655013005387342936720856584057540634427616589821284123417569671150675772587341708873459478835077535078181078002480666286666271981784422538384737845236107466470907457579405022436209647020694078523160600235070218117144245074144072001162408524617396642637732804154179650661004795254221532394276310533832367176051433749365722961536512767640461020300231277480177912081129022466130597982007349672912981092065571921994692213579802043098616923637624081345886715975238152043930740279502225276930203573425030103935797139972230408301677571092367055635438276988682242347325168072007715811115260820949445025980774916129742353978418489633885098280066599714433953160349426234667685772334344847299975645964243981754172273976700464637172054424614405902371017140936494730616742676206295295622144318944911267451993634499956395849280220464562949839212994865789575891693865949977682685033540772369601290610977983059536773361460022723691894463281349193365396435054079353544293267362446154110595206577438425020817316877444411909172845487103956670120104520750670742231833139945637063589545936963494555526748021532549213671944419458542676953826489776370180910701307037100849268634496680328775272104678828144145671485175731747188817912071114625074332202049484843455034146983047655625952127080785881009399186252504182364034365089414348100273072928327096030482620481797775034250963701957831485195626438507274808408490220032213667408644615588848474699127301280443865986941384616644206077050900152355834933918979667518356004208776871827486735412339969021050774864535727410125023238256432562642205253528402015692109595571301758012054037573871300070066919254924305631476459351850479709234439715750010111623844551371852484867563901002486657411024372380303757423268835825766316837865171161287841968787907222783274796610041326267624432474235090480768335118998462062069286647549680424819866233091854524442662218233565392140367259412473176773976178472568957533553944856285864899359741426016892986371398550342714725037652742704771540183707748067330701237430438597552949553441997465574190493392560385461650829255208597102502418634290680826242088828771871201291816175196450836267629952893461560977312914280262047754817075610470755824804900669645703811095414551000661146251734134933846490614619874859470296379935912033481486705917151941013609599947108718833899839504490619324913819364849273927106269396211704426076377807700946554976915203589022714402274827834404017444901416860575753320160006043375322489928921251752061827037874655270558491468090022065712399712677482642225273223504404185932519876318993830804128299556468279746490675415477520693535392397471399080810429750431512789933830724454280149038481716865195548669182144750022765598720173656483702668892214090480112240052275658913591347967536527007542182634834530989003572355168144534856382276412386109683828685951556675225933944897925585736143078901408432356988639415252830695603803000375900240997212513328964725780849522819886229563660642417321487121665795597437972640179287859602067757198349802559041544653803710982920368781895434891129764601286046983500240247812410966007611174724450646993812919478722463461105838233879546365363561456592970490830872928685006854267393231941267069725684261711719348404349213573145591013217305249667063752243022490850251241435518003574443845784110472094584340393145545204786478470203469321533743072669461073003340705873787893417811990921886411875468484730782797720871586263625639092378357676477082579732697260348488913634103702996401169340676228305078491299033212014199102315343463547198898630995352402237949083320320154789214856460434343243372732145928223111000292986663298100108187789840089192314586671630318918609532756546141933475742856069588411226681350321424249975787768149548075298406222724773602313711545153413969022500207385466492896077144873967174806443458411987285194857697969764169458692506052087907328313378047773564230049653886024527258781115613995710071748950800826236962793135294008885122410775250676367640846754281336495964653054350200711750063745081613420562564870174342788063129735835845126008432821376865992259567542769908788134903598630326024513415808831992812626082678252432624824468756110479197679890744805623776376175666969664975601646032492782644334393090670170565407502366659251410434391875968995962532095274531133650116785705852731006998644695801611301250825083965023721686433159811049675786471678951753197728670402458422181631757384819666712325633848009414118956424065483980774981958174076370269921306374209864912437122868733083584361869390993268372705847214074398864749489174511763988676732946196251824095726850275062548101510622184402667583842141199340252229456910673059669954400111211249215707436394894361605493720884978618163123485678148808777191462493220305535306325219574987339683858272661151870920112830455154922132982000436194654759313876980561457424933229328763628239313682559301586853278532370961597608864954634748047318599205176564901060297947021628979886688804507680028785060442330940955045572381530408869425940981841597736720743716349187325914188274648858062136393802168542322700051170021536712294108146308393039276098317092063056597470978806284626117845303246314784486055701571773561245777133153471569273324318822307154419710236935733254945812618127534071468912390771114322912271984297128332204815482640387096620859656475004794649595545008107528743845270923116305722640173088113418294321574705044569606031977659143489166506532330181805858448591409360349684185026652446811695778340289997122517036477172381922392126825298893019183742780261506491081948137337908637909300925216248330885017369595795945652088530172293697568735143015429007893308585052115934821955343453389991009008130300153521912104819994136052833449835850215003288602077144859623579133565341298724204656984823822605551645344655054946429662028016556431122017594409665580022341626180748672775986503726086124960860291684051760022128701634265351150485121327259103939608431047345547595511078908394817832190564926227278202156635946247957644089507419928348014356399441211028602977831898416800270095561851688052871279630390263280026636486287469735252723194704698255770170705319224695546572102410771423783936868979550295438387936578736586173737645296188970655675411787381744153251913274523681996996567699207317517293558665768799622046484685666751262111423987249436358768826605217286957883495052928747757368508965493967750576776137219170537778419752729826130496441454102121845744863630698560793068419751302250402009594803754359873403836520510217110443554077737707413784713626294358745826086536282984598860187778289565150033677734998782794909360656199281789061175335410909808658870426864243392353259298104678311986527038630978348694739459116182522306271359921451794411067658663796894839195768695954845769911643802809725972343639815156143722330440557398627901486497183862916167427901169095568677582981700084162434620203380778769410535777145877641417655357471164690966740132273781211535039683937541383991416466922932361705369843320495519028427213011912108390455223567093502206506329219955146100379383426835229619974366284340664062231834665172250023961956915206498702088940284265009599870253871376149948616974282998934880635311581971816619288443222515125230152450387225331920247121998905567518443052304891691033169521229259938002584917268557474393869963607625905593514291241630170025858162714111455271111812825723091131046728612133264623825576484684441785651194352196635891432043986855533093247847266454945328071905720948217172079184601505626846962389773735184386967457142026673177890670654307011672662809708960897354105002382974246024885061361620227003053008393002348527675472792629084895877403003141730399883733873775715224988369542762576934201053534488321159647545658975612539270148271043246831400518572768496768418813367554738562773073289022035804075536285223653239973387405716325993577678804201434530784502031588921880331389424712852931298565045427564617175995957391458888495145902634714162626406356699617613162232607789953783189821081354066512288753047776609140093297676050053134626652846025197069234452193103294273563307075443799913098913600372468957783590695775237536702219886002227201636213182576698519493058814617831012902229511424631358003376117681747421698973545376509736904068089558689999950140851127729760381795366171948816962527839366810752048739911293179558689612816526578452757408571844600201276155307413140383450119582074758592036674281519035097107810202249917505520355505872495196583995708624257558541457031299284887045675900365269928604374198251368612505997695163006297098375947914542802479355292727318528795727520972789042630011507869088288881026988385765667038851481154417615792548366110899763371402103313044390583393571387632263945349182767369246463960179491105379237238912856593733338650967153326524823341114727303686254403577373843171103463787371782159747566015094630023873095195758942877581992651495566120714614575190557842474220509918317698981049218393626352928039751336305499207275754261447921083148362956412776118514813746801210012079686517400121618572537013499336824272390193630027724165971326911254377713167402616902084501557366851505244723988736846984200462371506363712663687259479152944712561470096157435858370601195873169012091912454675954943550910750839008292817609488132846510394691945126979974457648813937886457591336762535496121772654849973064343033459220360295099292692324058075197255292245866264026252318302863279056434317032085408718589751103678945860395489191297841482836770968779167170447880791741275253641067682518616877472350207936503080834196063842087615105051752436764406757574269136774874019181946333583242746377890727749990956319408778701661554110878866673621782175538854875403519051776275099367899471573504655397124689625042647924072402355792903504052034686389658376423603092214812008834106268348480579204786705088805773561087822204837367189863533266507547977603513213726168522025825590913364188144412699275038228264046659614762544752565474230956535738647131098499181687993579347136784255367498783369151915256142838095014879018773584905705412434039106582851591691348410838962741236843831199903614325281564477418262054229655068656925251830073597889027551100117020829429960781127674486652179065549250101106969810705996271004105354878483064958329946795804139925932187182644163914637962513990074275754794250561497343453760989925635337265146508955985638979132928781139298367768128067995120954295040352002525466539000441758652649139167880464477113961112284398644585105672027263574186370263770743257705016932302764777394584353370171451956772937936167874284501934955987701884255037071530291319847867578976484886930637937492470379688421567749917086098352871389385970230371291671486356870350808042674731491034209302004028374272493689440647665114606093235039277605380824628874584715957854879040185447358126715127814442051506594169359798045809549409746240067209159155084744882678577084489629140248582515321065245191687685543091339906172186340123168534083981640649864348118272012107400101663827533367949417641164980797636297148219301143872428297131423249783088244428568329168469258646239606266731357153398678342544384530205098916329656249157550462917510341368448730211116115473971343511551362203580649448111171544620122135006342023243142163508319148863405899253476681766891932478899277293249977307898168365791124299929081974951808459061427797040486793465875040239130436566872306510386693127925196080596672381651946895894549537175548267722747298179652337658703451954670022333521906891314430765289117084956615916333101852128125152358583715964388822484200201709192409982751641596067886139037692763639817270086722609714754039332540297521452143699784794736282772592303186202823939968239506676448579682037096353492254827812320383108887037428985546429927492254944287173659954321497961439495646530519517772864197659877209124886793960975876988566124720700351192230906724719617488506477114623082160148401597808889821399522410373968787596204586429664099976068836911288335460653697341881586823632653117655218122104942272872577759826740555109595208044056564296362213895744593711243781170565528473118891571153661595312605134698126657338220530592469631953077345035907194861846978671570961370718446654469603241533622504874900095161507246473122558342706170452361830966690449576833589285565108666310073546020666980820585261560292293423830780967523197285474932561502633882229054839277113162526447946381496768669542660113326518442028012276378798655276571554976575930108298851444057719635945638572811856134779827003744470834070226070829539488741171718116064220667547288218232790312451551279876499419107477884497465228846454794798509399147611905594930907803274576299805517833310867279553944075280418397050114497251084517897575769706742877641261417802905672046096810778803766003614387797871845615356412321890474188155905624590833918563205252086716870017890379516187723742365427204763784252050482757413707965233534743501393936162423391321003168131060821384512446000295519492692416009943845448894066072305110978125839632919904141047145395417547516441938688483310803707966817023198958036461039146033588950628766756470894281579543138662309270845210900669446544406421733185349143957671912707780372729106844939422791331906679431911207528257671535949170599242073075748280346787017097852520343600646284799153451983341875618721278889862646214242665872415648657276414815607613798551300543317713154924464334645477872325846214175864955693269711257298884614050579109435952173331826418083604922239189839795890904885500642731306695900718915062085213230150929848994208171865898527032478400466421023865233654058264023139320708278718076318918822900472783286481517607431490739430488797560654520279486949408997707349499287518231262608748523651136154350039912166160438519750666206498765897339180169969247739447363563724557175236179928792151118688783866766819244040729469404549065831305334593056405573228289974900045810406482593598139141550121565176395839002917977700045794389656671036520711778479841250659276899449316082727873481997577723192793069312689891127731575914596301847265246950758144688528717555033955657423885536325221826955272028253115081703260595887271675861135360382227701786606350817573548240515573475641199072216490412856547510712882406449592947904685691084520562787141205416199026845869101842901347183033069079691984399195794268728372073964979134914144116814881714242871588910427685012173023119347952356182473837545367590449405222704512107023733916811813638249595752382469798480630393975629059714189324402901483108978532328445353784709009532647603001738726591704852820819129521158510647183545916579290476125348225642036340262772125646974619820531253937519582455078567974267078993150343699812833288468746623693641652423802323302354869966121998185298072457518330139741385678426242472040168373900419177241598292962304956600017637150516444920673984131419600517903565339148332712285859819105608956209115838170919056794713035188145077375231275381107504230809012668241192356178252318666354734073289367630230572663447160418902184315795299865466572938596085329389397591513146253126335479689169647433395486064364038779101279739054432488146496675994800842957149232516415782956651434605871430570325406220832354417843119600836325045819276648513573952006599005999457183393459515291341301853566182348848098790312366088320643752456499132159111123102919970385586514361840251728111412077992709198775060904997501184771757606097297157818323642222820748524744656617338700957871158835936996146931178956269143561334365216621317578490890561837212737241564258631567747126689611678661852572646003002022424331938226349572267210549687724536243046799415285652630405672254508038146727132822605576635937756705119509786851227033390856745774849729215388121772148752203623507812030324676057410012233232798685163337229259651620216685625154549517973193613459685850902528840897513739401757313854460693664285107335791740862697766109974293169432631719721893628567002026226845384874294225503530299796570083039170134117643789307351272432761173412981027825089683203904031436114158779747490750222943361202950702247228993323244355223602504772097324665370927180665994006134002353456630673060226826141711318445471868210763611494836030198918469701364874105121338679846397923331538671587898088297667762050275134578080069347783326605675689691588839121119183467430043935205057788121707815098190791988068783343970239400871618761974323974435092109097875284110907491820800979780972638887634835182674853665011375991924175757715975290826292663115955377132511561594693730297078813720825537803416069370799069632646567928627239357925585464588762118508230194001264035492013146428070114573589776167657830460018031227796191694523447104119518778147262832418469381017500606911718403204964562408555347480268276986797477574534777082564635597260134276711612484537620895171858625271556194300884813037140122776386071535192709803869443248253820819025029074491156138495582155378687259052424976995515064592214456755633098146939535391731618086960550308686671965776219089405718958459534345464865973721945355270993549146292607902399640169297916731606856427672255830049356512196342832459309311438787673125156344073178121323008929115038728244856562648234346397832791137620521051656073911198363831029951886560573689563289351235710474019369417321899533299996232717901819610439039320846892551775596066984300724090272719157113688321709740269956894585366622351191499378947824246969352949162939454018876869105865688035901292295518132322842466332916523813996770982895241104428101370033952461740449269801949406978062031384410004372259228245206878095421643312732198734360370092269081072069523392967815451573937739604911247215879487248426155416251246982809660095084466663976735895164042378149472073639911924796311923807558843615483319277505410408399199436299265046774285676326055363103287784148359517505866528985510661248845778235917951905842656210742474872488749373954044818312396683561775793466212954354035115285660778944511994299665530125039662119100385453690528144235594441916914555072567972360492860382423213190290967550139202091006844043971575260006111593233281788375153122332699063240359243947257605489921721820371798292663119439209004412546542096663635300036686631683772788079501046790723628472874260261870377588386632170769637640608622109194867438658174535037200204820977231614547302712230080367638103925989614094905096402227419897519825685584323365240018021304849988340127137617471654748814568278561863013083024381513511812930912260073483077352444244786735587154401431299744883841675024876788259507116377294683863345180092798271440474199164535678274138988987311756628506414987429592747191520826500370545259758882734538496881237624402692710184543351292522872502612426945728786823253323096588546699064507412071941351635796837726274790988449337432340506757230874842350882299275699499400566784220076218918426405313522345457738123584913757544375659699907618108115127615891283866428771225724336815655886515811481849630528939304243779770529009111624489536522347582235072437484386841539137230686974005259032608287807986724743442687994259541067048048235737957065305582575423150290868237947971820530223505349942405014844757099624672179710040711735490112853615495185738776836597690542967427791450213596279467888976993709260044290358873185049356870848833209285386039721377155014321478389860438259303774727012483249153908723631999802647675557341720678429908174091675694498736541904580429771089395703041854801775907489521559453083324983350055742962977884585741472293881501294359962469251970087197542100131730601731501500310344207851020000969925940482178506828186696345510620589480163287440771550260024780346790289179551483966329155782697586017108324840538320045814832567474009539846219991326428007656737624520272484839861907017896761727425247062345548472586456259519092970638740320258859681103795776963909986201466749148309844634742383957957241373078041822031625035902454676173709733721977135587534955823270876255109878033423956579603393304622556542872110039954441008132234561318848768106306483481256572194764232080988062722796144781500491293809933872125614105225975771529962339831772166360084613999900961101533761162295289575767842304157255449189948460344246676141368397190553899347873505092389304318003524391122353245218639420391197816962675912615901697982096437260414840009159215973264559774778342492396932773995316007993963301189597936203399917053919657622810287541146928938261792824636403940987487469706996889639577302250056132301225667127262946554211160354025655415712588588455052329173800068274058327426639564449863323031700407786749280449881796264106550332390899204988249869135537213245279140116200234732435596265736661251222842308794675738368918140955819376565838144623949688000766140995448956588989046861505960471134553716504426660253414620148867560099330523960037208155631918144235727522345891619100298147694996332550893311415691485120560524218076649602811398985508961341378153675851872296443651016720776352169774950687093822377994500094956340809515779965620708096721242838355253340866259959687735684477759336514937223440676095054087213024297035323697439498188001124310601838902413734659163902741302891526822680100383117800762686194759228325332466749806509332392653842440774196266978451532850935126306951376476953342823298919297757412739300373055738620686969516166260992159753780493693632332112457605970883303901389046209463072878625675290073451430236536886483161323449090526661450184763210089836940691429245714891588328030340506214742848961971651216332365999993388218237275167570690305208096977144160422914601338649603516828022389469716186563381814635541500566480219622891345634751369558640292279530015329288613404637640826849669478926178047713324307512891979969558759866115805506408471154197178802574788738307061550549190260586768458467799273323653271862262132243277740455205275673851368467444413312838656290486802156965587296532143765473481162149833591991830211424395538135832936883849916195977374052164184130042946561427150263838583446368148378644294080642571609366030381241090372384308511596425630428434841243862276788866371020704696708201689563053406737854630590517394672110759451878189320480299460761164888733947652156998259154432687667816250662495684000514639749176390991063968321448360318653647079053681553908083315694646464948431952016855781781538862046488594591157925697541778090497257847780985994385202856990509838229188862822813516263196980724659561466630550879952858395369519871928488232183103403212587668334054366548233813439502237057519537065862506339870788816761150512628865799841129363225966174261209877887668354158378947618487726354393260097699028070962875669778328574793629422511750950010726774009042590655982561059204758985454525048526280055143956005928640933856245939323635767991379085170444435741968178680593743506240585782114971846509678252469696110956138819069751811032956276101038043690625410624858279314366224216173831432119442865484551180653085114662064080131608055878533508003159514969606680327216984274553385354487772247639825062742249778398539149739995328885130395483716342747786412621366733038318855854313498007931091836540319423722338215476484940176966805123166949682344094167969969207963684511865770467713250432870804945183389205302055236093717642850957216493642987249294937058288225794036748181681917322177056382389085094421133542209393129842095844246181096569579868901785161921791363524603821899426956459530465951706321969035888608893459586656711360008974086759769800935767916265533099444026828209848541215602372270448556690249920179519303516911877496398170877240187587639721434375112557424971268864594525899440374635214464822656647375123692185563938437596769052736172148670112825925660986369920224938196637091195425467313490612884241245691330720589914501337888780393641029285143027583220510143901741037843960975396672817731995152429031552636758435488884535790284102861744001786421001456647884801758180205944506142051028338428656394238932355763329521348752461572525094892239137816888415034410845188603173111535878579825307599439814318392812377023125476391817444686937254030349067340034955478016936041782504566562897803446949454312453748746138337457078734972890254279996960092299040250927682293246400614008215630119238724044557850485288533676056706956974059310131503747809466085529183139182825145944126228199234344579732375975461253704411389888155001984457775896052553364932581347895312030844990210258508326589813669435618279348959347507707901840197223459469492647080264497124579048242034560181397153601020033995531036326639677405377009914883704888794362284375214557799539644936834176687890323430232841802092077132543415058277377150565196976141717716375279529748304316832739539857418573830514128039421953672286770284866127710511585540788816471026521184660483138135540995356479392377485010577444555627766822301028685383074852118577952506884340594532350394768051709375103953884660421112291760453003053628487424870635830301490768615884109210532447159227852092679564163359999911832227005204228087438475200993183629869483354173583114832088667655224057362584779047633128417887872273994405396151261399923793241624676964607923265626584058204834106429117296354944305156593771310124683702235895625321004877758627439507066086166640918530608776815698612219300245506943559695208596465715585884329574132821363386575108433107990381086362273535019318622554404217047598356535110330966566282263501586380929317287566497725311473138873135548479724577687869967193944405666388454239232345621406161090071455107407672841091592810249449206057690709591202935576553294164198414521497095581097817125507319179103576510745272432595743328743090538444980273130972293610292200811333906259140235204825363729462763791574574852776662200635833400163664864125221810741484260073086920620180260294786336387221432886398133935053227601652349344238740015939613754084505319589938717764657435136091140129095701647077961110744358817478293366454954428891610378739093748184638525556601734545918352540279370877071340402928351709697651734490366967693744287003269813059400200503506487255930278851003699556744203706478575801799464241798608291374921844812230512290662601233827532795544098110628032841037666280139239773744706909890658593561280932406754598451797654531262289822489834646910941651075411635080490265442738636195154907726920915350376299813234900762858843028192894869387631568083365168784225759271775542612153474451216488888860280359892269383097100065288319105165725220187038956289989177457128673535695253716289785380624960233498174819984334989973103772795930380725132194410826139643428319813476881585676893360371088099442516234760337416608423049208283439854411547399149917034846910225348016576025502091534044163387132479846040316176209487735903513055842757614320954082552481855235557560486183698040795889752928502040539430851894417597428240335935199336114216288011028964787901816617514985725397839818883760821035402169358283051959826283491446580009810605841211504148042036319364848183598776705583000710845294361210133609583385465166698989418233133208168606350956942089994526754875507624046977624405946167419211764224299574004078764831000333033943079886488019202732025849984369801205142292997541650271568703282238166147982774872212241488125834796697158088242689237521964722973677798617821654447838193525919671588023310104302959415322777607378590132316189181338781564609996712030916783171100108344968276119277027426662955383203251710633692701316243441796600218812685766963886165384664098863205900933582368132652889081133304313268967301874474584512644285141472983381290763459161369576394614619880718611142981664521213666965195777939334025507266150086597858683043826877871131532669748461040616661247687363459782074587359426028980085477629781169035388496472001692270316384190548134448855494367521189229078772948469600802982697761919145295370064229311018063627418196122765339440433812646132586014164041642707093431161208008655001852110833834502495859518532147186299656335828924892542129709438950939931640713659134796477503709773174704018868888646565942045640206942408541094459680464444728923613044546976053364506966319723734003441763856839945848487955132161568643357217322677709480462391036293883943028076464820325280905201004434338023047657682093918830372332280916288990074329511572921257322934074413004084331521670606122592001887035860176908091367069708081480498467243848617147609790469202424441209302483211373106990631131867611830482399925595601051848227622687211994462144224319566098206169031555590511278355205460678344206689336219103215733691874088074215660119402528199043867085244149078388327226033894096753154055058690096307979738234302509894072645465879994665568629428765602570922643289038984578760402451844301472934627895097809789046507832893165308750554373029975623375539871985969322284128362961528270305008891520711342066066496623937055449854013496340079763126378164752988753340307595584080491213693817493817778556675817525540987778167076941253878554767684483452228146113220028526597037969304498266931831253577181933455255963106265261848407451472669783478997011627405309234038922819543807294720121010448156916915157091225398775689820306818247797031030256241438041217485954504770117191019024896544777862999381991132313734669797167532146199547754040511764032883152997374091032292885053467823129573783432804838177795687773198174495012666247235955469249582621987286818154938454376983381913686192051630054495132123120407135624935725894492479868219870055456800298723334517334911578459861075456693572775961048929545587722717667193393456013409644358490629301629435148891452884759223318392158711406660729260156513037993971671082516693124891378181396864684825727366129896701724418889759355178219386433123470174257211472522607744793010970552446497190933616294962043862162200229824046077960414493337955401757812641864398924735550629957865017428127662511058941974902307941097383672684195400941675474992483539383175691961297066823298186198732710717403909091998020698412348049884210579866493819716142222278631264697265647599499113322202508720902886323941347669497955430764847973699929519050407147455105944893967459207484193404330767688597195148559830612489698417081297082066560879016336709793639435190872993222047578454223737443184903849443267312198331799598855917642827748643472546048066375777474568833568260357108820678093905958311292731934140325770504966858580742087935343425766503061589788968025038207395431287170429981512624537930504163454857636891989260284070674856372229951571381978518195624637337390858765259290769771696522167693948316208894577593579931904889235356720164711779794088112417808271216029482994640783174515336615053282391475307662757547186751262124784137956349162901333589055719956481790468080891957902518680724203641835615976138129630878721046746548310530070747387379320343267518251954807927549385301704370285855559167004101476415644143660415825863907261443813265823641185256543134673807057509676048216731697126320760536944927198162660071927861921484214138776534754733597884256005703317562463361913398215230733915182302375419610266368358947696008496065139601156656195391254155299230715034448692644480313920292691323730725869709868081605771515255088673706836874558306848567616812548781373460887142852412113418522236294176757591594968389863777093276813632439865873840713775214393010197733319083936750687528802329443936550651574030129462664715433636222993244726962747233932001904152768100471826844693040174864498263402687616122250927375475083454523962162093891485583941267302028971223977130547630818260633458932969552953513200874999770822450669407903050451778046839677820757204238526915218689524055532117558280773901756578010843983340745981195664272202607372109119887716235557164555264224777987049918642590251287954509225068688072377004239763840608331455974552978573025473214911692978665764314802934497809371644809308195686090910469054123682125575816794581638123470848828760856109230207721590908542504205857591826033590048588103891817393385242379913257358942761876981703892932208944014880637169564135144163016782107880226736880050278424727777502604587368782678520796909502319418401414418155948364667297441281178283607515714491516407782234806274440638874610072994365068232779232828273478444221697615339706814118300016806412080217361287188351601967442469138488994223740836765842780605365642271933373981864696634830092994455348197504155490662770000048141622890215471646882626381278273787519408369354221813312658620992234467944303383122016250317879676184623149024620787688973006275223079288583374174324130958753963206759407426495338226075098691458863059100293372970323007536026398518417182826162188787703535511278435876563493173439942907009134189610429081780177674511553833420829630208225635025985109842319070054693521894495606480315860879779658961455855296080858232898634612484489729554294887795963673334331005742188655265279798683439245173876748803124733387049835708169335898482983382360501812556962795327883422128509573296646039104050735448458446710008722753489379852858676170575988713241214039519850998124647697589215061038617378147878642629752866855536235717798160321367077350666808827342276479048418742272707872791229496259746832152642851491936691764001052971967825556095797700820461007985734851523982067164911221975216544088004518174121368814513901454159243117176738658949004691723055966757550869545181743928133357587196001154406307032160044926219338382294132853420109017874195461393167891637553004598107982126610848192587092747777369899084723355944550430128838056698304120205867534717632099439582619503176905990721088521049961834860142333972793898317216428907377781303356420752785282529936878397875404976546356771198606350342719914082224762554746143590357231400481574526931613194942824288486401865889336488676914423581937623958476644325184771634230344186235703064675392240572341420357463292472007919165828162319275113055291969947980382427898615725436515245265909762120379432347464233532795196286177952716507012118573010950328065443634251999963856729152593718304138006328298785520102057669388670734235976995405611926955333187990971600867031352841945856119155762766745956401823008755879319230297523486731617141840981603666361279627638925923005739146273450246177644454132009032660910059784258984274246656497842700656300266026384385027952085285119707925870466834063396261684521427504378433752103687953131001886348188709553311387219380265364878821154429198354076951604521964497524668712069418231629895734685692627862107126054726603393925823844475402196803275407747704491277000461341248805235844459152658787662478829873044793136191136625996399338223328297986651605046523909182614161224564333410563526804954337226077799659875873989919044941325366275711588070743432321650795790222324370460693913777604621789684384774475069229889708718701534360845750235809590454728110851707321943669313456561370338523109142895315106033158924916776763648097878672427789488272523512867496815460026973137553988467611257039466376345134767771326249356335644470262545570877093828771392960559669535509272030456441228673814627451894574328686914664857292616357678773415754317593912338298870054614946069102216012917640134688865089052806489411636618954850658021047391906890123927083009104354563739348260899521779698772419307301870404869356708701598869956493206709801532306905018391963052737387355115070213667843789137519904467284990367088050697421666825515604729348837108888795078963364190394993060330593314484420381571781657612043673873096823224083023765522038921901589120188831079094300401664947600073968981828503265399529900125075402775796748194201921406735409536407765528458390374839408296580746942698717546154861016123085597294815700174155228817707411438500109022084274959595965408281057732410076065000041676749634066155065232377351783411567659426554403869765150958735626252142259635780594914568563669389841705883376687170960742098041355721680982362992221799075222234198463344132779460630818850284728352752801784669744271517234796705061726677596369710182318522017647437473200266257083834539254956284297608011051306061415026476553497741845240129052712372717348281436594093368187230767463363547681736104150891384349566254696940440179504628871821016360289477299313611387341808714391514514737247143338762060375800565058901773932786146632501466986813352287705671469798108665250155056382309064231183157590416507636944894694055110517364081152199171918575771114645969373674160933434712128135267207377098426429899767359493964391256617353753299293581874646799565091481315164790639620679838694037054985288635535759266848687888731585575441639376615004492561165859923422546594614686891624651554914135037298117706289159921111323917986376783438295350717872321321091764280227311114993092237798385037688689327112593892374309058780957778959817114686733169861855497098594086339829186094969794450077399085227697829357983198789785301790943804917834507482955128898368411290683752647977861456148345680343223243339240996584402326316571766211373304758101780937776072683928842793244161664417426390789896472161793284962485982429302441326757377208807119666835816770013392295710886359083103814774584049431921946238510805703384847758366117943806578361995155089504847460822719989396432113767645122828884933029470500779003588657030716076594659152008729233111066167340712903806439735714828643289283505189600549375941539728920611885408260762083363251201599843647880171471848252323063425736688602557615199676257623711872025332864058983452646433685134537086107311529560943123544563624824394379292558640292502466509503625942633092300291816044135326213224969082788198787469864184530494143446849752198949147187138895933554011459628657956558231808165037126384692780504036604450621760408267478132906187561842368917692999996927984753575752081510062077302002838876013883759322082914638760224638019499014757941138221582499679191577901056526072682342053752427002234033955596749331604036502689360960170365016177326434741599005990659088825668918738310269545150315552260753802314089048052904228722939293271282213670856688656443354105033426575430923205596609548567510905253112980950396253929845032094655635237542870302489542550100879702743975962248294079922371951176213576860784199974795132340426755680633033118727690285646192266299332308422400212697110794347851206430678259960851312364344046781212982342137673965154217762102908766466498205784288972925650171539157190832509739664591178018401268075404952438221706543101036584204674699065216276498395944287593504663460860149373399281718287688351559908849377178707721960022140199700048486927465405306812045329247336172015621478876304427981791406216970243617850376551210551494245057667432352510907860027942928949544121020032066912812436314276154792853408759468025943072800718664667343643576780709039417399743127340560370952529490951276061933537656113421622434487474669997911742681582383776002305385148800714454179836524134762875144722240149390736186486026123050646470086514344060617029183737389339300698778976254393325326281111732542134741709436783134003407127730460349619150437663996919140780811263473165212473071812758615347906681757259141939006339579172797721413448152814013181492335099692030758294554550648652405901652478189148878995210978834775372426312976370263055186182808466229940883522596922018332921561499773343238583733449589454740071339152253395170358084841499600390142444133160033798387938754555005884658870547645455090379074257392144787566624524145792495236441669323054159667758123270740243641469779321947158394288121163429439206845555393677673208010902360142009764498991555729057133925684812931804692058085139203566518125850609574092194631866203668865343727184446570177273875926651488706636713297020020703000923411485302535770143967503062133274597038226961644962440840165189500357638183604137941666793044731278773454031933298217141737041947659201346744883866957681371667566826679912157787423533649249200843560982142813702115573424774339118638486073950096181742146314508112422227716599772648032118430835295702115325847429541395311205669254799858646417111146981612577979586521575417915802978377795520583104636533424081730919505585325459139774022363196665499776762565978964711812651997146333541192754691401455662765955936426286854628754019366454846458124608525127186883441584396037767261815600508289554271187923263124285482017744106713264070471167069338073325240585222204669335782030288659695696189931531536021582191985204395870666169136802930277649809071252613247323729845032494850520779460641685746186025077227694753245305007797479531613855711269697358647475096907682837003815104342838296438188214749283555230924796742133547059317023504201461541953899709833514564686072448360625976867861995324078876253576864102693817508412429197833305500928482302685478802806089584736319528133931367174342014381969072172443634559064294722887489620061703512079894842072329662227261507549853968014104622293219082207089342665064458688232534744651903837093210020876193224796788702912351044111744071403170664475679983368605157738960944570474657542903199424919718741406628058726069169779325839983983442312669142310192504785619588132943609694448361200090831632120914681472609703733147580343658834971655902340118896794289888489746012577309440077877654056263947362788727065988284598482032219828498801430475382809276446380768984002017279295544577584758332976590617922133167163160553445621314326398797824399230608514221634543541188611126504400939344926577909372136666481368965059596590284657037226674133173310286241405361658979376189414376949963653028081163523678252207006856019326334335759773268824496841708581323305724611283271991774144946895779139663704797227735011640215338217719717360607566883212637164911789147120848011100638630828254159169502262716204880844390272274339609648410561463293357587553211409056144437836767730729748441983197493047253998631815623021747580335206240922099224388543895797418088931884910140411147727237827328227202982929689091542704363862685773388745041754565301633048917400225905967984596120457737406377885905032733232950448026830131582352790595047008208670887387977612640258236702042699648159690737496925183683411623728886672125624189909886640326257884773762518499621379559366630609456043607072852657469870149698859442546569023739770325903456929944920474242496126780194279194971262256576213110503562930453258550333063295768381871806408395214214108068789199616011885553430816222868240858837104960392488167881775336973262011246170553161091657526663496487815372726608693023457851929206829779100523490748833865084337019638076742502202321089446630119488884952987721670085318025396778845396047413168614646077775547213804905870093534532211918938293089527167278845225240378909123322582260859482802761934389224851495767650341249422155370026429135371561615963129977126184882089202810825504339400032243779573089825385094161967342162935111693927123694943600568985320302736290427478997951068460544787097654429274338840850976197158169991354093449011841480298815925650198741517938679621234512190123935568314050417702073102725097871693505800716565969865283045950916810317518502577397377276616675083417139494214223504075332507839388194616397267665716061422324263350771612939749990432769534675684828144863372913476595245149375777811763057204249414508168979171216670389244435042608306026963967545145428980875240534844519861228474949753345211201082083004727464033390991913639816431119643667909535630361642470371703042935543913994078312022840411338696391088818878922574775112406256021452616465922652485293812343075061444569423023712324761992863078783872483312866866081646888654109324028456151405509274477306543414208296895155031453717217264084093003268215109671542872907054015773913575284986180945543778434246569479075711001203821397024869527227393091528366092602549506739414685828605772594007932938379852034319257897899009061964989833594641032444574058470665658029100842586222258489753635414819525678383494130013179288298434118250879916241752119096810921527085052695913349762485723312956167625471445183812163657582602117979294092464174418361849745769532906662564457683163720517602381331763290796641860207815054866458655868891347180831959706313094231155338935298991260227042702423900666275031840080835946931563087850911617420323209016317731769729702095735384982923404167906235746257342220112875312803905586196776668843404270762323327644533031614738010945492304334767327584327295228852775148586257684806404544816924071053755671324183973144216689122443785462667815680798486092462102492672490022669292159561111168207441668786663025808214156473200191846337089694742331210977631587235722242048047896830330569439976922482654695174313958999049562240982105066470500949513420375097155886294241242015666427398615920115087875009618171414357804023967585637386092900329833532040293359347706498541845953607769707869188480536680601303413914198623324871082882989765746083731162607993435206350394115678553482360307102197657755742938069645545455238210549717373029753216332514820743901309595619671644339763401866572099311164155545051452994953742777979737064406599861668483499765326638138083352334597671712517512090946000169912986409371555855416006657179569452832893789394773933210991463150504614805649264813134672853840474946578204406491207554542290193797068451047375960411512888725031861118083169495439978516964177976653246203278576858344305172324930530779368897282383949352894352047238430270508386374057520751868293973225213766091807036569597973630790741834796266192611588183574599941859294217357221789598619005545774390698087989478544104270490809847552996270549789074781247228753824428894187555945783883787565514273763319536739434553746311369718036817747624369469560987889480447398635498521114531621896382014010700022652250811380323872765268077372535299341045573740590645918918416906100242992054005572912901453391193582264373426149731672564083949177240266390849602918076507602007646961790449344952232517059420067141394797982955283215243228475272590498340557577510031988683197076891463296251877599749726087049037964692238307848572733312314662224978659093952924861052477714314708128799228390961910921640334704020922487124176052006747127440710311233290657374640353942154521260327621428031362339501563992429692311004859282415063537745570453550845074064071688945343092878651131370231976342851444209826471137526451636530157740673514291488547686546558115005096946709685848623163935618366535423683222348232723692134960541311075256328118256831809513875458143916126591254009014224823401276675569847978137269290753610545191391152581102824224677914604625456765446261517050281554195142737321501640985935694487367733253833963138662697998546472118145238618268711391496456912278175797960261340996881420604290348253760188889268392275829020590744059353032024537233268272920599785835375994612121654989817609795316588632764057437329902830187308380857849309880038699267287821827125537077836110110166199194909610936085689614651214202971925438568369477529948916869351677230958925617950011373893790826887740603957214832652964824364059465699729656567071493204926027845266447392059136800177821799930296656426514801492708070702353890289116653361689031350253099316303385646605217677745145468899391672803586179128027312086747432915329442932186368425942605318045306066142523903164265484860479921929167375318337671444947662483774843145536116915891756295185453973984699125225579622051546965338201972729019732466970403250108192490269910105345212172089421454233305729208829469386999357871926006112109504385413043462938046742656204173208782742947022300859370507794192452919291926040331057554903744908510188201939639923966066204884729124792577339783743624574090090832194045213519305538297180614302919088208810660851137928457898231423343392479757736663074882724975218257958922685656090955958464671007806591999340119006436379874966572931013000793464328250594036986579587541348527424102579321057113583941642362304362767353657259123252599207158188283817862358905807434558724049129057979408386970646082082391476527402559051444846204458576943997147718140138684451935528706927790490474951172496589933152890411172214948122711288929806674166026735457246745177440791179007069725881535317181299344629881556159114964112169542369405481629612337498715185968625540984130166506813160362288153440761863012263977332534487170773759247226220123935056544308588281619077998662538582360234668668707714776418592591840027277947626302633078031607063391971938455075948711281257948182657167966941609747919277797822143344541618951168684581844966312363389061387398380788108995364739072363884485023381835467529196062015583263510115741029097448949548918869178196370264894947187860285397291990992741157352112794218855801930602515533264820278979439876311698374791330161357455107148170521223986398501893671991969221990180590259026859068004943246113957647651031257691688086264192028228836008870583182706327789553442710349070915475195068332694030705893998360033050349044215125596514362204561400683679840232306562019443082468752595763495902993417563421630954633266423036760815280348949648163893291057999377896675064650502496539723926330569988598264974631565551801584369021879759263326656312459123276511255613349428348453049324351545040854676004101468819077127262901728830742511090698982417481609436916971164439084927035366879715574802537377101449786631526184068337939674907261459153657420726626998243925791400200712716004092749360465381378604468840380819525943163330460106978573598133992726657605839857931088159953859036024288156445481607427502190214334396683764970907776108278585004916640391208557174189549785595214677444953378087164905149199575369988826554043215332943190434085460564964848144036925088723448118520864277282652073983454037953394322411315016774654121602306608314941364675330248238066885242841239029871271379804362838593621146187246347838818042952032248578337006283555519056862085192195575183489208586469656926178109858089140547285664912114571713878788538211556493023298073901036326801889238336800856057970411910536389996626832462988620685297492234712334935361055014850213758991735370499326112733775687592631308219935867701327781803511780149456312872412744607358531724248017682569859046156700616072947610576399889921349145468996311246584147217451039820888789267441172680619548848018185661712690083725190417144945810721323201182351173584550578782188759226527593373995554056586577973190401457426271718387775802820694324584456303925075305393589060447325577391413363175231267090192104515948100216970413616583896844080065167323929161458117193694235214651508332210779154595541558474652650135929702232304800222849598787380528779801057977020482073069359502779416719302943357677575908751540445959776977445907815401809800157452133557303343139093478000309419906659405273437922572545246604802906673049220945709006620191430809013428061892630587016517472569562868021618090504621071233284577292212245072518413461963897135614032419483413446592005441062286128617981422218744874277781096677790437546466141352085416993966674802372092328275960093871856198362638747510760914588964024810659355053349065833919375514433587683089590488196798834759903476610831677663016675032691440908516967988472219313091246059209209893296459271015974266730579010316740797357960844352129212121347807958696493025491778432845047753262638431149616821095419828050241276111164334970927695801015652147716529513432247636220007784861664992039116174771238877366194405681952899624573910368373526870635553420661338966337439688899333271804692570519834655411920524978880054866857678366104937497935457656103182224370127300361827704598239013501051707290496807586101044099504963420478812051229828947884343815581594597587839327712978311212045980898469463069075342856931356283254216816304087091010083733203981639626140412773221769647709279730009347872653193641262261844477205468834349983340634071756182538537964337990468356017968657106886093391756139886569052872539788703984160093734301454513898005953618337690763015591823537647705667317158513763622533231893738816587839629662775728665646852549563660221195949250665378006938231651821865828239757415417670177092800050035645568498306271313756524460925043501605980870806715137057492392314740061690593668381378080461182614314795003389424745536277455466352594279023304854646104822099414890777968536154211739885432874987393363993713131497869084504060823298776366113479287502688254189969341560815123056496741107794291975554582791984234224209571203017136626187642338457257379074483325185143756423217793897062765151129679763527851611302075573059079251787940620311025672641878844160705548802760452372831818770473120167157714924670585687260377883142131985121711828258766430168823121454316599263765496574353785990973736418030250502492438121442381011618313522657495837541857992705320437631223351906857170064698308244552254180858876494530901195557953674283839752183397546799771447742943827728241288904448215394859926367762873075923534330651942570854041413564784095812703962514891720974541664624574381069132952828773280471809200345707517659407490596350335211846662057621079839866910896907249433633910203593721170432369527528382629134659063228276934679593827881058852500719769074037502585469392209523945083884923584271838803072638994025720204448433094189924823872733638178215651703792165652848742887221065952574608972632776130438155839763617600207934291525260048096295475556519268383626035982960318209986487883286417123878514416087707937972270285417327292145322048202844896541090038111622339282830136561363789257903824276251888277166180056304049993714242174277457787824739827903504557196916048725354704967999023120403848413395643165966737308935244409491544749982044531903083306874621079436079031388809497729437580820272888824960593402631628452822719794505288644192251024423442071145032794389346233166814635600878714258471944137546750720319008974736921760596755521690604311829853852486804770975239212786413813089229415589401596489341965527599167607853107738861573650881120046432207177944669111878590896667203572923567189454714061318470311296792750967433083098726355908926616448146591568157997953946122395482551107420924810402521673290284079444355045101306193039089794125722940403477901965477437719469744948938692219436228570090786639366179584791516439408767611176090103688559118713525861758735602423819313701118152043281157360077455199255900143499248067199867485937312604610097893406647994723758740105341829616856543974460607778298981077477531988161865221496867470314877979372661567729780135266844073806610741387849488771539361007425882083242504149423625360835661575572934084314929661591522290658399348069091685665081001249272519223540004406836351868522088322758951722870689871560611615563524243578710632118433438597569254431675918988001335399285942649211732586716788434690283166303831969096094889257577184353108624676240106937477880019475985733113022155491676443270811202593068323380230928253268978166679124404541907989742427157722081402898252761000130968322523247147047570987595801386994318402183161851499454201168645184278489059070006037481316299158530882348174708828521323366581981959239496613769953988456265664091960447157913006223907795273210709250930369710677257121125017746246066509046599946071340334319918632440261577048583224168689799535943696491098641155300475751915913000005051481181671458911553445258250315485523750852831082041496319329197104212359687245432762758050061255619423363596841593310402148901305662875995494311715348459424025883383353145598623488016723772651959158925223101913949126951634128686251468221362124696413324186866187280293457710659363496133517002811969789470668029946219785455050764649502997318488968092552228306852493182736118977279874661217475635989241023546912497936756595969792185044456399199036806583248829136236545852601897814737942334732421186742291132245760010755819757119207268219650103886561132867769207536919577377736572527986890741128010461971871889374483463936684207011338179151944862662002577390964516412414810112068502489811828949393856686559749417368534661091195551229767784716142380040996467288361163522946081443053507750014228558674460714777810203756856512940809408798925772277804235133852787672272850493261502699753583000376367733900583996032988821927941171452754255455890564446875479880789067249084233079324558186735093266830383765246806105843450547746162069178446650136582088552475370583824364897809538454647350870013369790330898802406283751655589590481256352236189119100320648397114398787942763907929533875577312612047564510959465026867899781299694912818981246333962573374721683533920062538093879953640016982064419156354358594724219184126359352904149100755702035818261076011932667102500490733942706493399423048812751707476459507676313517792089816300540517770061389846347789883487113901156984413599853245336565623231823709054807026701952373750976920341271890909574613623143069751543302914945885617744858693604251452132833607563679646285983818491862802251237995301385830080518524149126881437307965501251077397162124898667183137124340674269656652661876580462503093459306964482148760207412737122968710351229940194546250084338781698874694273796096076852473232207032024887561386672346253185302810085304941313111032260579925258662143252452693829539855951790735129142183352751213635827620472302738007696373008888190515591861358954401562312713169335885113256807967182410894694653400729986027917322351371363066472509057254741020691307790941306395473810758460251084343842429578497881351741799997528206978235104539246484289822140377636630177947817961634077161408758048698587245445899571883173919307502446724000082023201436103885791103055304089750818746229636633670797291812761887417173764119886493020052309202219297766036235837553336550475550102893341569349407579098581414461682707760784194318879810691062941795924166296138404106177853438749217941112944638292370803933262885841335071479582599860949165601065501269668314658672353484236363868858427917743823676809685838575896949162396492533545507866700348214007083376012447018124489405128460671462525165974074783142410422874561512138526458165021473837544463248195009779025048357813029343552305562358206335404033766266926567951473008952299948683707179817835573440872995361160500002288604186328383010510514784281958461672545507580012850783432924191039208345187057159699138985185098816836887174431690772816023177751317960897669373685020977505259911914496737757397541866039086041694711072379163326160853627604182273967950612457880968990530723732414681914409822406010769667135835120315154268267583955142783311635606106464613789442791908215854676686629091633374058142972327045168155440821544782837999002591398708093946524174064362449382982588352062930482121287114482807298021502271994797354055549230779745926612771585359543343365230937125141910032502371230438374103353063408902580778814589154626442983777745103512420113647531581835623599025670286156952759730750394748584378917431665321416787488632809693741293690396887333531761655208245456023015704010204743783538524482941537076488885240547248287517697852656214266158555095479070662823037453975647335267273763885395334074741851147480756922273324480211113785070852308852703175550345266380356666875227379476806310253946908048553715904887050807491720584983496950535189637399543722911336211613825555148796898619100477134667417273157806348882197099215684630563293539612099471613419809501381208030650169310654578042247572955957346033824656516320297366164674475683071672532835267010663595312024973449713560895349666893582422475835647771460429829440668669650339227951397385541219256855086599182139153074462240773862442161796461592476756926396035234095032368398510370892943293600770390403454981785934555025652142767794156328903195215005128891231058685962932431294417223971408236752496924611142590042206333891020448115004216501954514233704760253854805832197378123486889876716506453912915837041916583510005869571063501930789428920405278349586793888449954825224476087453374469186276210002950969912499509590903063340189760170892236901056644390126787626700146291216709550202230380139222450978855280582907966688898794929220930099110409327334326466378282336192342637434974898014830681304683435777845792115907675999974409646194401010419042471915595625465740653745228916775972803481947363512937367123701701539305406641370429033192147116785888230479997419283625784509454768958287021907485733862566931571776282097894340724936958436600923091586741241755690403736590358071213532721969494991533386840828076337136154490935484375193916145506337929513988537688447815665524187530213109571419163539163231896745418224855974775928012922244643384824170069881256530725279532842119689245314296493186104105802937767041047498944543841443372504356728486986656350975139189697456635678076643527943016033332801368457664378150332600972261569911319696997558029089346030722272819261201026240895137384562821416290073117790335811872584612979309679273970550823307830479611422432281398347990453691813596958908564947954996928274167905445694363737001215625429318606603931697219263674743032792760795202135879421267930008855020941702825036701163802212752961326087196561199355859680741274820651870384375526190074032387747863975057503383100482639712732825585586168971703674817963646291470919189987136273237241628160612287370337199349936220074174987737864901139042667495272276600516834663753534827901053658911094824164445712522239892542935156874397650983396126472445454382249591636580994084553186834636884668982256164379524890303896563913317383466794180479160209686381406406604975761912340046446074023424546672909206104285342083300862318697449472029996043145481422387484793748911780146414524085008162554679206641301107074851666785160219146129406168669154260928833711361456361092007120132566718377967958468464921044841903545250001787708753848980706069202081175017318412772034325272396480880999597163892591727599289594083050321138135261515338562274331196167584320533299124661660557954202194762776154586985971854710909855305792654730855490498821148300742729398565029758708936227859965371816860377927819979282251808243028593269299957787798684720175135722914932366243865398178282707896048596472657377399834908734801223570112700609456848321981689440800614018448477413750443093398022080058906647310674085036904817789674494943932153596732174353219047132150749163000983938842798486115382773417322458308132492147776348613482573347256898888979339788567398400191470458494643994014351880927324984634687751426913713490679217733210620914130663898277097793600751079008609922503097406074999384547424792960586790431351372555818661143730080383783478897889899114186480852812875453016582986203201093742240764658412964874005731577042674631041318949881219865935251801508063084290368150130757655321443964110773586055668515973574513763310224486096261775348355030638242824622504538825998355193044098761312854381398383908570283945651495001780239544284561878805029879011001971606963629612852286557934358304049993598960098186592713970334326157527682079804585507062431174536166343174974979190102714179572404625479294724555332315858016956035090279371285253462771703149175082129521548852104246271066633505452356881672137346270956996500451600068901835520691907634315496711679735553294443337381161785905968794363357106205206979484778328506383187582876076294384712011675855894743281918098620381482137535196394691588257715418764898584100455004642307680360612231184257109993753238874676871891110365404669956059927460443199889501683612876525184203515604351119026716913702107926674592315916069029309242128787147395221570571044000449932942904296496253465983939581264750698886627753316293200739070799190804723592575292136693281571340514114265110704044419480671882609588556121792154448940814917940683382669307175655148587058426942787776710185779895453225057166088726844931628569155160130916245041445604770633715848796910697398187954854624809325928680528455507822105622612619839113818874361004643044223201973925136649681265370923107270313892148254938971562740176531523899609914005207649255865818008962632364133698180625409810261468404812387857481284831064949227123111247491606233588813367206035203351273442952690908045691315974690432864739690550600108450886500386474843758899235610045442153218050949994002722443763370771672616043524780594192619260834381351078324433811580655084359642588574382555940942040016809785414912707221769220960812879976301939499516463784106251731523919427857942952232350632626391032914569330982505053903355928499373768916840588613925370594415895553620351115662498289064164824962619410343734854137710358701701241440335165060897571893387606094236287123596275503706658526856480700355550835912148952408013637371544993598880647514677143350059393048835798200753594954287844056834629289716811836644782953329622140570198364618776829934807998053703249810828590149818431072214029700342917030755974677473411478836435761351197996311103471167200819964221808219303635893322759913865596116397317457921470341814644763476914763744474523668468749248585836169979457507867373046692011464334150781666418838132206732628493732048784078601077716366781847005907426907178195180785102621787016298094256660262420504174001943521043924818705392169712131719589173055229846042076576261444154124235552583156245069553604827959583093889085431667457637240012364418990722438433249524832185888335958412907235066878880796563781872335514790175828706528521004986771194128683524248182651753904647664211496858736024451387819684558565051820484119360014545287407274152324900962072824751617385902993333800648616064966640979002453214187840772780926289413883033331862443994029994615823487982094312864056020698324145495820677166331972410684991369198278034363058457930085460036026705983664557750537296008439471515563101982693094586174634442886871053465062911999188379516612502393588331903435961374922739491274988443619640937600584247968416350313143630517819932028980493018414887067988553916095956558688313442095746500388148882048957658269895316570931344389020110239745934784825213872926569432800157501094474533978003120860252730387743488517183044828081083027973086368292264729400772694359321828370166528626092423215510133448777215421300636817742178925637524595599212285273440952917588847980357267247312214130202929327622602089837430964491908415080672297212845580465764187479149118219832582506398115105743888852951519517904679335977353092356029562122990964238475053688579774090270002153797844770862658174856609669448469796313709342127351732622554369740222222170992304297049322542519855784600976727548294778927814678343857292975406162392306038392875360907050638498492340426316322022734780853822519620607463881425077730662053037440592261010054897626198029177961441943730414518308609826108033302518955869657162843554482272234927392382544740976875531697874316835618083241619221702894994742049062009752434207620225998094663575880001067187870164545772830093801521456343755022673433414808461447601118188177468373802618649192094832986606620807642168605797929376511809603365459971661215340478887394194707674503117433823387382152930828781351540251773794331887991783190470619417184809734305330706069201670517576581572237643936870958221031356223948475950815060123361153508078268623075258501631877322085843781133919234361171875939592528283365619886521863462030234446869572220926913873959011345111174561302084430210452010606710393561018842380512751688291992051908693173483627336076956960534595612062462109225326414748975815662149145872562501079882452247116495088575709592170342935627837240049310109323470272707948421108179449553243895443568055958807167585764657425109536074017326616695961288369208441352201356618989686535752608094042724221010485990642136888604562609671878919093799167436258196854008876311186181676645773068621041114128309308618360702072260225537373541915912385727101034557886354706908464920508765482360307426947250298876154150297201988242872785081993598178950065294526964803729948092217354947437739718261022455595811543905020397130473820538193852040353523770539908785521115495856233989697675328374536754566911240768763775142016801359461833158018853365837183503487379586804017002741698790131368953583206930785001639971193286670110181018166998001940373059607144594415139150875631286458143891036356476263334060016401895791763545046735968364281379652929749511592104367852301171386700925086101169575529126493124424988836600987897589095377853222891006133141871974103640642519764910777868479721019407281844595795488134042852173245576495399369864596665100227434314707159674544602514236208089998468370200085673416414237405957907045819246081617458741050073210335359781281661080763824731704465822496230804593723194801124305993992288268337182222234061530004161897314813430124141996471044097390150978121111424303751459057051853034601715259106129106935425195649113076569638832844680749109805750174469785052534859638833344021430136548769028657766670983702710836990948815471839321612314889654871515502109208373249737842057894945311991748439767298289780612787940137129074596724363534758097546218162008487623552200799762181193732549966244646207168117177117333976553735619158946192530565532157280042742234711648973714455092258329062865072767597027595842665015431521571170773583207388151239911612174139070135285764845451636712640629058756161415308506992282908932401620684604548460054432626586076338900691231613304118696446302058432445767678517432691500152126675190879488056331684483787538826437792249579705343370977562825628640677206630187879068530110077354166111531795535310021095676213175684735037709989231585996383798766779635360693754350311771842093767189299065653146793846891037738336791047963139940000995832199372196216613040110870550237228467493165106435330764698373546906467125737320466566573190574998906360438457869748847644453373052379462111502859114386660384110976619161695860895324853263618519787404149660711296454135847694363103305142867747677211622853383544547665381844515375407933306409799529700880353672406377377698426434700359454881691632822087948184837387285075531570345214097463177763281354981429238638946650175073865066794550701181644761216584962191388260587907362120690907211923107623689556912859073046924527771338842458776720818088703118990281850552184533879354751202361159698146706916076186379419005070095602703339521582229110719191008820940176015327333625888922791131467755163696040947904932144086397824314214876351521946393223647960199023843536736072818157675590207774340245557772363930715437204380617816679604729577937753031400251574410113784909564972601383688717131777192807019307101568932617754182943050876720738786307704201714392733258423479874580512494875188661209990640179692845837457720969594965887318286417993046853365985253766884604043550664713852184110834755012129527407924701404002965249460347202197507864837954816210040144947023175431474461035616328472155327939901793159946333436198848734538976579254664895777759643397113468311594569506510924713925131554441104926935191484277373598611556290621451124970546579586194795451026894459467231470233757951696187815041060551693616302520132314063003310385591476828359696309880842263553988589639058856098970989716785890070385500002194655587943816288443134054777511293794780969718361668475935897961813871889086013600837659576875589107251545130280881115486155948403374791562082316541827965349838093850594089537649821164761156391281809820033091052772249462440650244493351545652820748066027701461958083244850221672705915273632516022457753224472844814300546748719251746333778722499147599583080519694737927723723520290945737659160911149491212445994067001645730052813660071787066708157951400296681390512585979079423603548482664452813541546595515775329642707072907296137471588547165275569266740345318612696555031026955855244729188343914724612519334077000824518523038810738793238988716355732223308243493487073341357664024483482731297096975906233546437477057150026814122709997224522968575125445762741277374845817007282621449052227286248342680912244595597388041762046134599364217991146031872715972484333986306649983154777148416368009514399501268195651200232765009646070775082997398747152545903781403243391191404221448702564364549823555994442505370791759600530758306140116378454873795826243341033870761761447019598289618579786028896263452624455988608466684873228273541920702939003056422624103540199422086092891355998059038115063927902215158362352661230087833912424439049125820707839739394095859373729605382592899672208090316226886634447970336390509591366810252589626410597009904090697658168740948999103501989188017631655642239550133107104403105299807731179614462296155773211906885381766586925296229149884127185466567341291531326338784469297722573847031007182245948739939685877257236019252314134217697540344043524913842009090640368586434189543399714539445055111945012719441497814043296665618855017761002077842729453364661117399513443625004984406143006294153100901217975193598511586695751608616300104364328033511439490367779167624670223542917922762846526367373843800236421718971308848429615856710489976718765335883397462582303401788493778100491277641616458968788280234236213070309339952415885004331654999750067620821687284612190226541491968607119252548781767850271306093551730582973583413846442416180622618347596442607210848265834145994689075771041712633338290220796075470912035192554141272991951747093649349856618313891143143455163470655327322132810725912516201122094387195173417602121776287726832889569910413277560513732512373974037694908995818972961839797409364095318333433112445149862589516401812567091656488460956737141160008567401708913981454985505315013542448826104054308107887975556702303282194573258733403646459059278337860216735346939595703726750466976635430561202409214467187294580319464715763646078455124322990969133341536219469422489446109828865655284141405735196468607505596775157128576215592545903281396666345709927577265117140167107489512293993442213870395658562037057766967663410217284803853530619305059763597694293963967482142415747653763031351422253229435205979948719053844111186194678282874832731639975212317640113806518369315874256352350924623838204932935783631283427690650085707943645357980122881520701909874730678264545531861791050184680256386601327463237584511196942005225213249613200370898529065425561296364028706274791501963923987394528594825783982435874886908990874541051208034255967338283802051352384493967987545336790927362461055110379660536735289220369946989968019598600249646754140282982324923899739214158147082907264488442740838396945054127121715038306741126584525743605985845381576684188583833154980035870210277061793840416219330377699722052259028297435506467150019820365835389845129077337241165296262146770623907227495807300168668108942258708569382056052800420010389436835577869355071900066547678528333915848263963145172286988214381489765356099849773682169602039458631506598183620307429011625942534662656626697246232507697459923500721024902164100704310001586759822029133510650761017903347921293550622535308704548421035659298311117534531795625345178523278704889689470975395634077718848268745196542322556935782054065107956022119797056010317258297468137497858677375311763217339346565483916221448491649480867408768267913769810632514266436574508895613597719775812449548689361914274537263556383728121575699612697403183881376823185994561262816559738410387167378261393980379184387261096583753034282304122461182582997106773716541816245348138379874901844192200125321337881889662135402016659836525731709592840780307091777775263975893994976910513936038428808349730088129619797348352925492184594204253611582090615567355091660262924643337544915234017253378995848984090244849720917958707911184237968699939791919186731320457618642381094086135449830915893157812073313202258179738198665261407800783780156971235911991513563626227834313323424458354855816502003788721512449687034811710896648509599175558687770945891990749171894472114678632101778776226336672631404428029103893076352622354532057259113394294609168005010546932483665047610352554593059896333381910909831986732516143791634136473449930180600925151811584780116083801904325940313294972811606746038938200807612753906827799279556826006957714485718773942238233573880567513108127566044383672479938092512991784366661173094467502515796012474027529261319976891009847193697911126056043910350772681276693286987119286659646971617648266993440898151380253532318753155860293594079011000403668131703718468574728149834525626225520044356775660932917146524182299304457763132514644638726828326509394114341529675712296906360902947614373352687396561666307085129529737612044180586669900383438952988955804176393762646172167653221403746265174721260069860988614499217872823793572176239875864891299069972085212141188101872001474769208019297059766690759453014264721845961433971763913963742972695329953595237014291748120893476791749532669815248768017334937030374795045898244813812757869916623945734768251126085011664451639756508226600758305327613726902056926360455866024205513388109727442199585834159981509669506094203375312306938655351949459189757381786103134216634825949311877980931408755189593157311028639447083946304450904109401386655021308899602920350555603519887160099799999372792215516855793348984095475707536133533098834905897250380240583643799416461894068776175678148621898368299221335226854206664408713650172244405438705356250480843100224809509803139235824911156412295922036148461793649470858301202842818181345489917929537950528382999753183075044006562478012755398895614679562984098830302882218578160736698466929908643595901669776420142320374661051867659528216385198696661452220029183770621036910378889434237640482348509118352712381868578530483462137729021208010948384429912587865965022391379888903779909517471777862016788654028774690765278531314160306805857430129500774047220485048188651851967064748127454569677757613952233621605940472376374647355800732689237964749423845340293115231932553184892401926809078442484509746728945215421872493098067442440369898676065820386393865303755387909668968916702138229002254821528106878870070312000292282946317384723443945901090086519061453151118430597789790542930230613960581409825832984826049198932794391572085557834707739035006605295043089283771622037863545520578457283334055211394409001438867149905434594039212111524927318260216318044857512953762798470371673643120072755484658787183093978806489208563574831054154333195040136855938509629019245973622563755183555295196899922522472920718294575726339081457918116060042806927940268857064244405984502937474941357210558704121168794505763519392753757345710853728419656376386684607313624094764519397294257582846558751382549207437809761493527313932877741210735846624049888741938610614695326733675516717604394521952009709021423383082788384160999212438164790541484861886629109265332312814634320566749641766169960997262143660235106640218637441930586179971192180969299760935671236227998001993042797296632875817987300143810874269965639065427649143979326178044618258170112061673854885125084000215340532772738074586354025408812218724010646466133602818779491484448345401640344606847024863453591716036787581274117178495707286155888842761357833480665338252070574182719190821963688730068257899682102645283839156900368091568100464655210411530164505878092610638443990579558880684422653009979985070048966168277679114779388840528177693119974226032513983138030349286313857417054155242203623735979621062784549803509603453983427474464549599784126467160364150704328931066270806285478542050266010697640890592513100885895285681074009719043855441143578453008773897269939031333987260447280700473425795859578048333533877332815799919640285691317016430505441151098914068296795440655193305770859674841772847848976599986660425626225045611122680335820841170155101291071110713067574040856055244345085604778129516214985205062460729386142855952922430947763041666503586596397907137093214235513878442956349128585287108702889091743240689350825910048761161539959882249948805063887620602744385917203514685957555976886313123855769154618967447449741634384856262175768772454121846409097376933509393100574994801364687710536774575198235504326139076728763651953182790705169973247020804939859997181861888220410430250091854460875345541679196550895102470853731898419449373989051977498976086896351800083394314208845269212533616160262866133294661731635258399120298349778332232425475190137015216381572195757994952377307628659035103038858988645332820130069556010429725794887592045479843738170211019014961473160464157508523101647595568988665467383248391482179761040575734565104194714633673341920127346731604529845407997267590979250506402863373841745763063548097746204181291101912650996513330431292380029035337268436699292508436421432124813020814192010065106816083664112403473740059921293838343617848163452953824311988697914408184305124557073954426246352727286026133586447210611163619934842205391537982854191334929630302762295915403683397577210246591532103453589389247111933878172540841167962785979614011923554023240576247837764144864205150464869384773586291596275797713160098815847702742521354669088513401287980655385074913408194610587187003137803997766793196035418097251650902423063373384290020026714812885793956281066872745370817059956528201697772455629503109388245040526571915362371300245684737810840699218700343672807087726804189349056254020513890081599853977043875904272467903096691837978399078958153950987236661560599770655435253668129207431576053509987153933983939935377775200300295976856353183914142799522626357394981240193516839436239372458315641525009111796441637139927848490239941658144187653834040586529091829111453515361559002194395897812138025211619950927769543065981620570753926764553395595918587723324392610145314482674424343476315452539283904830172353907137858385761905184313743174415538761388061117564063499067217609561060837516801029590018859188654555652664018890311532597411581754511770881260751052611223998434544506707193685470261757527748475888212478893832181726990995543040805250205552722676595560827325875182424105572030292875102588988522692440358793722754891942758228036576184300789748891908821963185863226600300496030353680519920532340022503373868502521351113911861980544914985652051807063014487044679591186630083893681385896466703616320542286810448110802180074145800674181499063563060338123348930914021475368068283738843717529306030999039695752010577043415782185834108236540174915764371947066240009156021897377231276260154276841372524176742212003065426553637535179357050412415974641765428116793340987103140878643350169026272968266610635476191728583372137158192747802321485884246952631150772152115459810848340621766281644543793978848918588404784965404730055257160666568216661029753796209193920589191992560800157117243545126963996400069675421834867610165778687293607933061230510101261279529572019853925829437730687727734748446787180943327412341646382318703212964570769717823370417954005354792283055705074789336321155070393666296000397652436591620125876556751656092553123612610193899081179908276579217435688308846919496647677937764500888977451514161448590887850469391784764120749350712650858626126456231937263219405534857335651365251922678278228072378597533820336190741932224759890786130627747908071810494544591887817066187497776992524177883351741642204774664153421605529736646953034685010440381462541997204365759186258617573877801755121462640690943973486870362632146338264743699872656402439797143779307854474162600350459575068662599206577354389241784250343978215612717699786769110537438045010831968395638406179615329413384270835950900981390380624693718890087648750671194700483770873662399889041250909573811849526409243006513857972208652541680346105463484572753673037084952966774789627950126275047645355342443674573834851855834609398265786921489693851545619909387609436592118835775561774136379360976212378899037863603610251710289050771683622767020625215554996023104490038683375742895884656027742478839659322268980127818238750052692932652653815693471145750775185236274643683184885800275913119354099401449799958780113633675137532384414143132644502121736783223678256581306983943504261056914847509094185264415670136049004884897325860989260586405794239025738932282083539411415952663930172187946305682273222805650935202603865600462215316548108548551586523778780037758883520513307101975447378503490199365321284081890772809822046220658969090858027831816574835355807753528076101494513140723369691273266196364828477017822125095260393703759880477683938195556892932064426881034228716744029852447536072614115331061962446627902884817754904329274494186441033864916099050954459443783221105846870501729483251894802104973630183460955002329276271579355172963947624735791130908137877466940282737708614756259951181866777670885424052511497096220209794420599452114433930747524298061924847004828905457753770222803502818040216739335142257894611793276892341993647681561280241326660727599000977326551538438087783047180837240002064849351077636105605546393685894934066651521240951959775040376071417810818659580658113260933665746440124638283207656082225914024735876473089352057512148665736630747836661360835732383627484689911866744115735361052776089323487146539433253176826322154018267395836422266555500471041044977871721640329884131125184381917026353600540180221474655519259209865963231229941858877661592321276777710700480273417801852139944502513661330805097633077382763887829686239053165554168679329412154748270482826990201505933784960201411032886011703781296360241243344924909483358024792214045544874225731313411325656552359411849006998355667666373413062497706187587078404413435591212181151543548028017018199030937422226494569267167291389715187738109264815973014884503130976160453250123227466392545045157966563302867815343140060087065542085752653854595141992594230622212896613553585565533859971759676031282072357758358769101853362702892350117902196572445485204684362081278257094898649600534009301308306102655205694374399412742556831141236758271588644675380675928257962938274996065040870506096171218615158702201210272685879516561833240199758948906359291488194569503008577296526200290928747363657878838508137306585762625668925809657700940768287707774427147870768896557985461852907229932701721138796589716770298367364719002986866567807678490366957710964784337195575052878679275257698107717632540649076526703697793836931584854693818315982683708251269899186570081724479207038106633612765544335432678843203404368779834744632350420222338244133944429782765166891220814255494323743744019972643229307238095621058119029034558141759111526760109309351807798678365213655008199046047668541498727680012752164352951133228396777564897038448305718536080768438087647080783224865396724934087468088296380174719295128422917013098439091588810108264719699770898654213738501429369050011465989223716698894039199759707242303188734733165535265664918252690731943552070893273465856305267933656523430786376526266306648786858269193837335301763995419652022528358976624269904940694099512793598401338326979344402696569490474690431543835569073555051398890513036997563333887371827530032036018399912600633580756525251882383110967062490537183235129885891976772872464327481658102952316387486510807004580977755564606120985791780880857149707846178694514823425951841984135805032655070528260938439280671361675696331952539869860860271524393674426222408908783301665132005516160485936102024451250949325341393116265680122939791973916420334473663255654622539310216469814735280956448756075535406785121820552441675239967724165506192320043020883541158695413188034424343135106624649964943538304932476511170521945293280657028504605164736029664345267452080355529417970053499689155513168881842969738786467500717534762291789580148291069310222402149952146984043108984235391563248630476259217413936066152152938148494017486995421254541896581888074935136191095396753584141351086283616687795998567507171362039734974661042610028785904666843861585572149160804395035004766965981713912196644913724352545346363971477536345066071130281932188759845775802726830782417682173778048417336265754469580068949545975434203308737178228975782635683308736694862092602035504236196081046232529577519658317158056207710594148330860844701774658485091550124883616519598844446581231149194238151598666627258748972734259355671103525347304149506039166338815372377064900877423564449579535398401574666941917530664053139604686406962755285515088586965184743302903646105201561344606071319254318090914563556126066920679346931143251184518296664120916432076422157892002363456072128504551411393692275064225611557748087006092301546675283363145717025070442674277072433168323798530030172083796394987298819557672664234346243882678634090357942597924677341547810758301804624834347618438011465348970725115334722411153852843505281007907155144137616553187881880318418984248983699808297251002551698682286583228524033554148357151229090126096591636962583304131772271824562707819023315758576371701473014529684204476346156040759764241545738673032090015657025926423907004674053053962360539800940597232015661439618846693809766351051364485532334191517910674825602838530410097432083422177627467760887313017649914064696856785401818342668099455798729287124480616283141220638321823863460565255467706256587872205214063871737196772605149044043546212446916088787429178398427921681703224659228397131864872275496835299390867455950463656365579499835267950999284170260972709304585549289350231404320323295876614480295213943353242964284379934568941602305155784015904069204133181857395874299189630850813214666963240741677052586246786950726958752511287376410974841601454947044550788898940627266347120170848562147153304254076436156655283748837875770642493611651510627605174432794638865119252387714822539114636365176171841891242217320255833157755901769187220854640649418724610688878413356544726886218626437166427458896512353591182724968527582784859149078147415478728631029055831742937536248309197447652701667985312750810174699647045457557540205012122262291557999989761281683965161557550496178581137441001956290520058294820529155049380459087099338595920637325008717631271480395403691293864156492741421799608777204741060117658420701356393133664577328228585656481950439350980268539754472680638808856970053188043245485080414669634659335596265956639292244314728954795540420281456128130327419903982692552207812147986837298552799060943626774850077925811838691366838738596893061299864160134317094972584309029294191698730379225282625420077509353319736593750548324726200637709684040527748412140032088001425373582497769101687787280525605572339531128406132834532707983460249241716050493052389086941276774204530061721855728287641749496138437358519515935422462188876260803476038980688392184833548169115032244670523612397565484385464530248253625293432260733779489582950329085602434895549369783121086472382398326035481905810039097157340315492224325086331516786361685542260361653693145637435736418585017690121776028626358878442091425622401363388417103559446018049309856987424830251995753099664211000757749220943225981705972937985763665399987094902858756753163813815303680918934518803631421846350073606217026465830400222136043655956447515416702826449183438836047452574289260078734994631573063821224278408158194767657614225196740270168210411311635855878756129912583955522652583045092492760268541474894910537466683164304999850116020921668895916100165884065124315441058775598859403108774288758235233355874618005065914970995467786440574297378464013555081495737593218989615401627845679666476320119088384797159000302153196294299346255289906193489773865804590386426708449710603638036021029779060232479754781194305419117798253604646359200357910009993113629912689520327422908277855577750158603778974600092393638780931643887234191225628863443213290640190748683235401299123414467252801651999084946454100345298810952516100852290152810249064107894307053052008518191014796825166491162623576732465518035752633999022595668704244355441183768156920471485066553042379576133968951435694518077790351837960168431922078023383072425121808688313878391382664543463890652632941736152489642501279294654275143796251547644320517472343660208937590136438929077522804328319892053810657824348985162541627437595432170263485261738708604511829740196106376560263862157176423003549684868856712605954797781851083928573283826890071139607301630232501603886443240899305953474574342520957233303096656043804969807321612985446235836830076648196071844384206091131829590002157522927786854988771784289378776150614615598918195257938780530732555310548965021326187582733847747969782496432310976219648341582741214625168907045624202652784876370401896367601518604404138201652466808359815051157277106934077752447328718133448479383617271790988429891920799575387610921622140938659427597183378722596001687084194137650489600742626337366618139923132562531293563176741395975927182756382454417673541875659821792493419286876184863783743038188545762493425652696067062034926043580371534693796518246325545370940438438612983043200712685833784215554491558873677372794929191247943106914220764802907717441650299421473976284943168858432711409497188236059983584651105971713876211608427290563943117888748921975466505736532449288425050340564218166310056163186867129110985746079567773102599018795925405743990554484854646594602330918735060819990792333552572829238620274408857760229241441409422154128646353642153911406077058974903900821278399115904996300345079029656674954843211969118609439389289057982041260983429014951002848576741549918213802173301769277094762083041661116912800161691961136620911311403336046448052153847265509186492988333805073047428203069327741378399432795735413055421027570252124193332677484726358849976478520365167639420637900527304241903591024553113427194518385447531839983062101849592227787011445289738234692723545146728752134935469710971072584655932884834491375964279363569057337687950216821418460535728026288264577303097061446045383618921942404890174255839191292743612177399647345831398585170371611923161857218648157502637055238741156062482259286253993414868293748195729222316281209146753086751343755433532108121317699488929782192458818113135097197506248892651236965564210937139917327717457258634709592820901506150784428647732372498804893706440879378939646781667432596872298822917685781831028012980538606689956026900480763500681842717224820300643283904286130840960360858912715938931344061180639721002979541514867380449600597513332290456978016406275314262246193508828129993087521807954122305876424782312861018794881912329105777359499460417800978339223923939976348538094966990328131248966328395773946674437454780212217370952907263988522407239921757229516890483791117818861161870442735365572940519646935696392835747165607004082976503450334425456540376740821489624286186591708875489434243651666260224331821282545791964591506919399269634477835209504321677534213342353060714568071398807318000633528198935823187043363097080902173364851843469777816461185331004836787735932417238093114154845561424727861840830862805456877908901845037739194362683603129816796643429407004194968822271950750652014811974872273372462010881050819857062254931926156153853330845867006399401255201382408740957145306150111156180292989385044367872480063952238086562544404479599853489594475710960471727153178017691590322278508802158437513866800814306245252111466007481541184588565903928535714076685972534100458979946701694868183327953572481546777634410924371788032099646277889433920130580741770130770574340257366828650452738337101460800840011933690286638161559933499275309861692924747061127113536341736927623165367895146727784299080502709515568238943777992967765164896262263864395814140269255964165957891392312982768828286551265988996072724235377582243012408605509419221628307138077200379595920416768572159650129595659119196233136468113257436856944088518605252623830472943150509793715971333952145322871708291388209296942159049775240424321636634129335426106147663270272337669059478700131881726665764662461132936773557173293930644443170311153854482022224294270920336891226570629490484859310829999776105306397167941632454553092777870284976756340875191141934494211355946596300025132773233114682179275486392122518544369943608919573828616987416296256924945958840124609078630184717443322927951090521301422942103374327891838477803030970696896586935239863083608083784457087416194599814982685832210943775034713238201183162487371494274546929142574184164129692432481840112006365323530708795447527370452924765000115427546746050042262410060823977854216918442305749626456853633707519425438954873695751518656388501458532712174314835726532330539109227020703901945356226761765330302604304932519492295731608398129003027204449664515445665843083037607488478826558032863262823217694821370022438992456639909949257774649261360208984884629694098433837696570936868869344168480087901769277838220027721171327228602670433107852218872039714466894589487536084767191424907910180477179856590390107908057211729302036658710644686575841244598912715475610443927473163801094294433125126311770021976048280911999715932330343219464230609870522774436104143985136279372111863100616504541626742880620817189294435333059655627866075191481486325573923947521035928111161686885944846988229133569611362625979469341694424556394284777166461926020191791436455486698323438223327514926253513782336368708946064513718109342899196715962436803835695076454266818485550178590700398922906620812245068132809404313674595034200202549887139632334544436263301638065443976471339960318892855063488233680233533065546723433616369609362361101515667440136467424559023348413455203908223726957661893076893856116354685175002612115677801848907634428350415700321625242955631443975294236351821654804222120531985000154975694385172735966592756107974650858335870474797341544995915387907826087140675348698175274406349282774868489248531259051002541442157813152656226752997959478514420837873651352090988222667003895888325439145829239630451334937234439908594216427400916827612259266421135877221189572835481873852423766500676907422606018307777360058179444752903043687002137836613035033376754808566719424304362249291331573094262278641636718087561378312583743247684864290473479513782630252578704256619127643778386567576828213785955322898027584105981286149324038033681357558935349115284382614679552808983812962905377615180359104699083828832556979548598250112503578679734098810553365667040470151567281570719198338535515700651541858370862066005367161319082909930631912531821682578758326169026974571847244166740248897805522966199080464763167584696344334087489149883781768538555860155220650235177128907939897776715711251524651478652062065889385014936743608547527084764335084681824524732664502552108705657051669332023787732171842140099500929315008788521099783270993170341871872823288211042579046836821688029132732093190275154618026942692894803730081357452985363174458548602138541383848393222039643804416190199505471755531174885516909764212508669695399617844961003862108262569827564355658241481895201999790948189264095878600418239220726572743189080205757287382414171227305200173249878029748132029575835046163521602200274954439731553684883351475137174327771767115492033560013028958135925389175450295922747932782828780514914431908395904575583013365698429749127120969844117238394593432024786774166535806856032961761795138078122351669723020638471713167831143623825372609069539226414708454969970412652733574680003641134493976402141961780139836715175789532424065696852624255944201447000042700880854807672771515936471766863098481632161284569853354310537291736643750059820763044477903555797100354919724140332340189885251666396487315398170557065616613359486253371810123669081716882013097507032051987877248557054909493669196312761732612881885327423439928669370808425169869539435026236253866896348117781563979145669569100220681155677715734180598249654858553717427047193824263107096248754403863075422032589088738118524360830657939124042095986612183366163094391985346038520403351820818806039090003012890249458580083315159809430212664695983835740834770188436707375582655281412188913632824218397990627949310904755791978986225944267389956184894941767595848216756882091424634511395076072547798264529913338691002347927989753045295986508185577526619183162035041669401961770580283940580632805992564327724960653006496384015099059008477042871685070458253260957025032872245829507937516674356097695483095652383228542346046115707953209838533268997129406637535375536916812489504253236490842160075900176773320538861825706005579793959419224833240227632438263575425126084817106860599246972614046758079842209545464270318839284255563722606430369894733312193675197931412578961497083124490666505748675049835411038620700199817146842510272226572629503926405800126986985976743885598610810283600147250733638201431219270931152692124828197793708726627420699171928928955739000113467853837853047380557178433789656478300587564529433356445656535315481018479862823752076230712868931492126449404902909807436274878357432231231243901961771512929033959074266172639704528454341782875726036750886944187835259427972319413661212388061284350255345002777975900025151862944726077746937863778122705139755962841816513784825691074215428253884654844058570610372958492346332137984707728226833117995690990088652063439264818141987668218210052338319776075979514784109206828155811508696258860320819741980158802141628480478681215780366816358001186860400227382519015654462298283811157389337233368740426989407524565074482397305084626360878917822475791956744974261233527336605301201406666289775569029723044912942698197850231699782851602027843855808057799064348088425949085074342706832487513345303167054411518980401268782261613861760828109356504910512310486433035131483329387872966403312143525589149545600511799824329425791245422528663329606387236148188235013645506168782695643418334651025104240017606136733265403202058935062658920572603232680990018924014330480552260586075434224109358772304973936720043442241844993492744759428012646602222661373301953957560447735825137916967182656903097127572862167664816163389659728929262457080884561116842252323381677900337902047709218492770693953062332582083272708718337714769443137879669917743667054742596033802174831486614771954651981172094398455994755334932410849783058592984873982859364856009448184477755803307533707459603153379611025494084235704214057399464726948044003103856805945234390037236304017688953556555894101273995581333464474426127561962435452665912904226870765042483036478376477763437173374052495150942065350735637618403431022520850701168248913622493788394173259517308619170076606649220341526034352045328351489399231893367522519062101159186086576461528147698861504128941457158703777671429352679162685056619460304264595325604055082754495126004592714934957883309545195692259672030935146296342604948775222835878516227905236730218195721812576045856012001168489030602600808972104758825464460660792938713260678587159469243553146571736889888678681722954660834526469388090415431460785988887742117059134963559292635730578763150069606859502879903871592529075784566057781637675643423402962110292407289883272046919214352647134330248079832815986993611632109761330097354149240702989423493020171320631208621097782538417017204401583578011602596767425490971201032964924755230215717634639311430231696523340677746156600965830226622255948076283210213922658110733172723908661254428047057508903429906435203895437783035184888479664296452271279321834827130714588805506882562752427599817628138833727218093555604905403298247079827130089925598952394039288277808916823465206751496240287124183737368656546063465233189687205310248954462329012117018111519439694757448371966118698313358227813908808420712544757713436348907168854039121822322714543005583528678417237019436904230907075584597099673136400587334529399979192774687470205488488079908065374707429889246118861492554371871037083159339095116462442230385038842244204700726781411363429329355952609988689203190675351478462625576506872298966804097693060446493013070797307457119548900459359976656504780687238751625856779189767531225876859707313036137128551032044927902439547161004441585758595687310189729045159704717909286260607393895452422840393982731911842521642542575183514431023278462402717729493269179785164077283989046356379192874799445289080965102087675382002033211575394943425998403900520334865883377620472040278759140103398436526919890509593287317774863841178529340295600968429554897435613295003021422319609866666143056441739843136954842146647686654865892617487486036715973445788412283235975593106845971649920952802177230553339306748361901363117631510668999684300365902198005244703498033408762822833953956532638587859382595450147623918166468095072550692314133366715755162533616249216065368872409318143123823718343147008711018869315885724394841945788576031352865068773665628473304571378733510150627449501058227625296259008283530021083064256253188096340286188127387291368322793654301005096219027077853160207862903496464624301335539516456996477786044437218633620111533349346268186848739280492532613419561812862801764039765415832832007653363309418859435823165485570934986759682888422724989935535247088586267299921974220743407738672706803653032450339062826707945947117119898152967846415866199114195156044403381666219065905826934280373963574160266471327287249861721851756041317767999175869032079473143439990294658709955699325097413197354937786208975669693725953901775251658410776327402588668728120017034072753685867385006180348157658784548612404575670639584892361279187856219234985811241703697318019512099190857611856983089955513448132806865882608729857307364470987717612896630352470828981619118365761617155722648697575906982430057200596474986857116920980458200767427418396891347800862212923234582291280242538146759149537608550247351344310739246298603142944452102699866324348728451902520743826041408316440840540804962132183943857411346539593168670404513466315817279497460048239471877361712548531934413225359300910235850609078378038700586535694384982307428005767266783147797983020410531779584531980754983035900601236775354403831976357361171466117365997954595925599234337672120656583049206367362316608643422118775074359851178647747742066754260992321214448474097071874463464231815693421246118448820502706765827131476740363827340343692346853847613523401633671772738682995363618007073866036911564710302585994340067168333817386010431068765325172651278729764077370488324356043692338202499600828387401966759731667447847779949725770684691231000778821116326336392363233530245019536469147813167680309884906924076556452135050967239876852250646115180352482902413458698398876151849752570526099006354659766498614798359466661854284890453201844900646076681620997016240542229089556116950046587797984357889312018419581741503443020025748197811745923319551012198717412927874216538081075968067235761937329138797402412640140613663079141767258724200865791810067077963095420046643540853817732758151108580690095445372011457130144435136824356136052775799511005729227302595943727093609356132736278989263020744628274523300538118489066349819472546030767362401147798167242296120371504639376534381001400481486466975763930545798817646219936625937300081549523753105294445579412685446471970837199441402749630978317287738740640923075840070994648452439850582371639557999866348481056020614357281672773744452548076380992946509978483933944043310860250742142870697236240313253751832145438087623976223264120800387878766124091293851114120769077509380214881634242129099606189953376111799130660192936098775370827517193587962713458161948445988908384331299714400219991777541336012347124594073082889961039874098992590212413757835078274300040424896108936972217830756662256447592563456724394857288583931226668918026796458205066759565435564294769263138096854255441969508780199035698313467451033981907395315467499437426183801525694377608855486023415418042285086248146937663909684904441702627177857696494541347358797716173335338967857447758316564834764667297916108551748533636406600088035163985123627167165367643591229600303977392275796421641416707026582054663785279155889650180206031524924723495364820694067474718706048508675990465672791947524926185774506502560301218000595267411329749204233392657967578660132501354088623701075285159812695683460294702628917641204972073317992720220637600298622984849486195906220776006478897382488421992244639761706518143670266887784757810198253017301906450932764218453371073071469773025269237644844721114879640672495008971674685521667879269571864454766502653325994014599269292934466564341225022747603761627363301057794063308702268504199651724300439353314215555002177443674733039720216234323598975588825170862297423492608360730324533856643271284173394231460215615996477061987135775044444302418116699303759262703074625735795994683600426287698866155575438133273779217953805494657536133119844995638144663227686016749263469251430637186087484310518914365301526961118181253516117421441883906814213219116262384593788499663840102418673019003612574796510627882254018685317838567483801396666820665195431733482862910102816027163390949937446906204554654268653428505371811829318799661568072664537014558521117863961942537719824644810959705053646360072902611969113723447885773574469349286089604965698515895859472092960522270430904972192150865265968017912455682863053582992831335655784834540708114448950325601671046575169401209406027296547723936884996209415351627703922946228264276042905220429794958272688044812201613422743881049252059206737941708869692456166350794665272443261144109966258169008329548649455831274865600597095638123032041427529397831918256103624672955272776461697649939120435810090583110222696587611412729934494163045305233553883960182276657264145454688315074450116711986273940167551434346987133718530852588370062154776434396029849755277802060268353291131745754574641090926880191758695915903602706648671733120058660957544626255774480275261507337577983004077920825500964898348724945738253473901386832074710473557393486905462348037882410295619076629879017165490973440497387793395906182503281158401312987280515769502426452096812040638785031454155078774159922919390243586358022118395344063344292227968687917705918421181035879352961367726976777994787606141771726677814450931083490247673699152287570237334299158000460083309657696335011241567103026135666193178653055621168085802200937253162755218129330057268814912814677764874031759252262443052079364768607659597345461356950516843575650571624457447361148072373061083985040346647177949730122549504959982944213262158918023273897186590875369255313964257040988729398299617873668794516508123407243142693924946193429796425477462037421203283649295849450344565753826136220038485645801891470586711994370288215926313555798430691492889233610898899180337704914437884178679550350524759420671991218285082200093254423574525419619483653455998228400301165779059540255781606063207959559189668779529602483021935390048612244270654304251881527483428204978265988673482049496709575086016899222519202311356273133290308541578223297853625199029152057489668327980896382117672437892570176751782796270346784997434565671718351416135056721437738031946539558050505478656756296495636880066106595344327188538826701636673636378749018500993938821064522401412749368371820092950354533839740767866082984015561383600660260873760377488096057762602059156620324256283503273954197322320691186795400276738910794325920566228845936485709626967847532939552012011828028350948896191044720041199680131206865762258726551104461997269574761506203197768743494541689439663238194813780088996637593758076167275284367448244368082526189190844110691020038934941437284698353696590919077053301995734637434790830623488915605656689839980469800999211066718967122183937912797963026395852706011396519565362011704663030114659296506042752316074546228402677361408429716799015033013398414498639814665766509436736370170318951980302124438923808927399272197327077845688505681594205251584841352465481728029975601783462490899795576934068958979145929242507151559638165267166853482306000224133542632510388441437488923435638908822829868282471756224704623347421305608682691440051922401294126763990799383655053959502719970822157867036243666646783911123002353415979525270735759894762249158946428037166308159540259411784714132207863858521453009463020933563066489473696449234355457717074886729212687685888510415925356348328239267669232567627241869598371513573243158318068968008469248720780863400481189417319392407895482360170618036422901582810381388528177873754623881447824519469677246787177508986811972076604094163452852655258998657628038787713200249838396627566011369953244436873311753922038381974951700483205175181061234030407885329231167490425213042386332395140783207838160582798023792340351401555119159563934867543224148709860240802014972574078972633408755095155140187095691378323670112625968178739724867223892762208870065280630309460913454338923345797153076019116022931792588017529956945228963444032239288677803456477649934797892830542016048328171855906143827795062910043659701298850706039548101744658784298402885670489349559035499035954983659968865150302010072105879935281827265142294123503146261313279083641777077318088509175127554045336700199285025462094075079904258829034372358095916496662460137423621482067825263329434409609672316817825308230525278682707334374788131654414992888504608968050168796610537594753757046940271727492863925264739226599145798657980798269306528919107716465032819664504695299992133310323569600121450171731111735696588627111358399556438113445077226134086213445690316869067056231941065632692266608851278672163250197718356134157007693125825634744024287024024710302325860445957560118069755039274334756484067970614706475346578742849205718748313430086996274446758121609119450173307186908865711090304313780900704783057512513368459536931102221534205610111099924644892882735331136027588671405426522057841308095684970963581758917018008305916091367738932090280005781984574582111906628590483899086013055216135092730776161185905991496003004140500729191245977288338891542269695907824543420482265154473390836890642689829006087960038266147932837990265875355566706049118097554573499187906030669956014480962922134252847726096990173161226464623034275790315871088494841283560465994253931134606247258423613762264237618286329541352294889899892819586002701828262671925985312253236946282657812465300144817148794466721543035467002549288565146729663109688676301606731836517934809620975135971725139028597937002768682060446669951819288653095732055688541312955071620648327123372959709742494830316792845459757758470349482019535097705496493045959412594532294275485799792903357854790627526082573298175969223036934658592316417343418393550260324411725826473236131581368251119615709025664282235015146756622747512022403350568591077001165677628355159830549665102876584204896237732806221186600509925958125244074176524127866307105206916609192672134276393820105556735263866436204590952048292562191005698399177838932981412122648727303743121775159527987404520853345277766861846886049181232731155302679229033648437896616971178771785000691614205952984316210136179915816519513575729727430740377569778575591696302303592345020858592398267623453238428144149677202169168868271495795308384456856764370857874271275595924409507073494276075076709668478190642080187961851385179668173007984571785393737000254829333951720885394191997259769599302711976492271646869963389626573201909436501275551569644267500717949242969831300617633571983096238299298034419665763822133877697116511522296061171728664949250482703002626636984941637578229528060520038418128230117602305471976251127816579936604811197234760250064609585418043221266757481364310015106843148160380379847735646865898457580653595360326562867302815317817615437971387714976569630653393723274091632841613373445563715682841571441076787671130017483881305604887297687208483041522694597233425505813428320422268771461809070466187265352689720344861127935521906943501298188217473080292213689218817811844185135622480683124292492286796698141617564847955836064380303618341508239566525166275165883776187325721617927175497912899917193421330552730990889391937737391855786066412331013580361286843118160220037808868881379103475047873010769150972881657244340857252007164912736440300068025745128870861447114247256608066856552786099578224573112947024052635496436565815115741548302583064456859841120524399500964453669175638860012046955772470726476901906291039235950151931165812120210792451928501564111949779969243675393421858526892397831830198865989282401680540212069287204245156428926823451686138028786151310637643977309611974651244552873096338300883535980144404246810023329073840817194152977250780601865574034528516708283474878775360077343887386070246294426303489506415524958916278233113582690074059927637582792544741553610911592766202278269428106048325866632100510870156449494878559987890514675852551220107310489813310754132351172991392814751353904545499749217091894230737847824407038861311376009790168217193338429578009510129553274924893203545331868924870207278772919293852462662818830412231505837641772864331941509636657070341890492635531465872536748394172110096860608506042103661130756564388742662023111538387188617486674268734500759707068192983590134869876854635393413193675086119563888757495740976753399225334540394121426157691667797978413500942352502584920444533105373184755599664379210345160323169077866895340703863765568704208557626966451992528519931607430656819803439932878992264976957008450429845917155292914376465369433632979066031724749470599397509207941343719471891669637775084528201143745188348238872716820085427819897756265947025081242885186882008875508901021032828125680616925102406087772570290115123878509709099060064302014656496969266771913142407286623893867587603551652260119592834968750199032780817849694248231852330279178125521319439487248689632381808680566540895096196880010203288927358740534129096179982842863788818942816633122052240357721497889311670301496992969960255511873111558667103152747782401733657863686266003768764159579965321845387162164715109922545629522663224426319812448930125264928735736701154705667918052948919006612956307134887925681970184607550207216387556564633607541627663373384986881887036480923657275517828995263882587259978825841966776316579970054048542227377710563074281057715386336474736684823329402303669962794598104656378381531052867019500200885372978729777670416024469173349106909790190417374906824181116960973519407609339830198149788290898755148604351608852941675818574968471436740742724850331061939487623640275237509633664817290964849955477087072278968008839512539775866113113652840092096303320819942738471416386322102358763212149008784799456771529202131500180010612573702605602633957694732180377806936198394383877913758198983002897055933327989077825864779356038199961731190761562821768621508049517078482552397662412407686098751696231038663270944979430645786107459234714393730914874226855430738980473927559633406775847324100836703051895002500268306228773039725050256069461226028422128397164413066493427347807956599318639426504839662145053799148300187219589339966433499331931536077846986610122371449623618530566297634425546485682011865170583243395436152255948177082327063927751254193088448090063046550194349759435282343475224891060466504414550526275365461767966125046307830746102544454706247010151291060345791851754442109217458589859718022093003721549517001252630324211937610449754316884984902439982195526245624177513501286465671979272790236421174321974385065499355322620640196728166544415648661203588903020541676561451500827199914179052826961571256225745468199924669258356651133290527882202021265248995888473684599341366940460805446928446232030956690251027971328326358684234697332395524487272207331206803387243457152897106154235747220285252311321697060342104208510457630453490746851320734172613727175810117064604481784085099162904467065762153865098063858731060753417900400566774270125146542644566409489420229446120353437131330464222088252204049288462058411286703485285557452315688014390158704445664949744682739830869271044442081689543537886347377632419734562838464082726412280412504057285322190208133406215127182838734931452922387488985276243174107629489145392510846818117679799559176039220572915389162562077313305443555458874567420091738910089454599807584167725030343259769383908947577077413914137326367997735720644982351030045196024239086514532058337832702289944981438407141667702789982959547209622913461150580384136592943454083016253119731646389795511912033057650142325555268186238529422111169745400007651293371729089213926979097197625523888090383750816892559545053839015023280187748475343005488139903129275604699109573425213162076976048000174740135944648775295233935034582427884678414613747483768682849963159667020697888255801890452892750020745907820128165293702251789067381811536646526359658361541390473352161902990658951475118628525591490520736493505936785826736621502380929422928737433099218321947683013854308904964637019239596660636483254931671385846702775870771639911668572648477171817602441174274443039380759681582908597811255121554648506113847258547942261216862476280213286551933434778008035204440223592574662504887512475130105997725181774327645610912219468423003970692965607419387207418961699569207330005083438509957671354314399985920733352609694919782999027296064047508598438481846420551731213936502225913130137775719658026077893407528697219719475113189891091089842935429845020182266205354138709184834896758492433498181178295899214552091685797647529833543950420729111221711821475290462618647142077009294860517000832327022659518003628187245623868541457173312269928251557349273505607973159129008722689419566312230709389524665371379528850683019464164761493674169934176866845769647973791065115108207017421337748515208897234274856945390143345762756923128070697668930603344015393093406639329392170773463567876474939649412180859135939304172118075259664183425665209927626080733782424928245749024944691769534110984173779703962317010113891698076408785203233422472042884626152218347078263850905000695026656024744745992210148141242839823430571675444080353696929496448036913051172700554760322680816298696979748983733171610789442266852391776436523234906034727882991463139500357583778107474307144861435924556942998545519505763583248984353537316921947941261107495413434880258993766220361408977325001074367292943856937382337866946278451850224383122439305158509202177701935929008503029935653876286236594466988993070112587614522905403935769399786560602230213848305596539003375779697432432648483302965544382157661278094161641931381040723851738286610940695998067893235622652593944733544948286690014034654749927576344405145801842924959837813544874715204869130123181134140249301541317214602146094542922796546060495197699395920140134984200461831688426064758187105537521842773990263870634976934965521495846198764121469268072051915240914711398725203235100888376824517608741808956236262102393763754675154928429131259672525079430347647564362128008281198357202308257098076043483926624467071165199282043357591485856618042928224261462530395572377486689175069005296717684715538349958057906597771767624310036720395713965568305405543157502684054044840269800246985665505635511647253808225959626566891526138370974834770000498804808871192913664950679942228587421467345039282057599948403073630023974811565850149483611915300032634204839128038686405143150725545892700651272244145647025012809519742715135396396721330937802764738031421316363496267544350230276112146177340669648283290933748587891202615251249088147128850068883890727827423412916265415081862249655703847544575695330379407833383965154538905682472239479257485917142016710289156075125223310244372754238598582834585590445998866382394171575966451786439115646271425459305538436459173957194879227523319122717362109832238302172839293365830339974993745242658003026050914952066388205114250923601164666568071613360044870693836129550588025633881986403068979800850118485025382873269746874441271248169863865457219026695898784551811874181152128642636737173478237000062410040494077649882876530215198179805405424933119380012587714748367372448252924860557400444994715596883652791102283061535543417230846483332645242472639073522000077896343346394603850780109670286791829412065751563861156443153697112274028697523754808144878878004210130121248028059909177959216926947699454633757062350857345091326729571498844451689380510851065256902357428469684845991163560290768309384055732567999403092539337613203558874524366362630604401669438634335911648185068061598915308223349272136061015065661688043845492565491125622463347100599808217863366441187492379190029894044533488063633253078229609005451532612119911716033182622479239893173776327579219918386584719808506983938592866451185973072477901978185760226255689322530200047506366851606920287892344758682164007911437780497913318929510043571215770569969241371034031028295950509879520645563049398169696911870085384556143219970261914746525734773974036465307818939021536327222743109244875941033669318395986150569079920260211229178979225188169733536669893417820110495052732980249556917625176327445115127436045212674098441822201538182960605203657132596450408952752888368870295258826987669630897352407838595604925939346449446723959384064417298594899402378689295041434482120078060265863951519683034671624343682924559913146194262162116823253728066104486871330709947252948996280603540854260365169093977163982904264037226740270617418603715852456293877139630177150535172830383657446729077853759179732139601928106116606799345958242013021610649972904076678038098044595612950515769861793372123223998297810871423896227660156135174893461616863597446457307943320485621339704087681514250998650494624992604998714017909919643330576145347321743238004798156902006589727851124339937138130408570527519365623754319328939976634066493519073387209287868987200769863148912930361356739608045887726266656021572875192193688083111002802183242301715197511769328557831043097236978508439346257629306957200546810273687725400696444763114288333412187517687659382834343719200330756349559228153507298106897153763534412909631825532491350165830689070647771089647530070567325463396715282633877150200071310818255328962405438805685593740659249089931286935697412274722348876622402053908293142237880816533078015964647615726725797354574113996719910026159592949831361563857606780640818601307865889868917657163103341711119265494629518800608587881316206340638420012637639595053055164377229243872932875542237750497108829987283066249223923202668286503392422671275396124002547264463137978028163828939997913201505978436826814403389436066265330430099278138608650213172002370518066345098004333938742500287661386467076048939133376915339913752767050704981243837959406932864201671582904397244547324972599881297159866237010946360276036088297115742723589343082776574516693646548063767817653641106727126204099388410482866992951983571700027038432691701372500774023097817531968577696434756217993683987764494313402463972828063275145247277542675205150718462612118894502153087985187548669911413929722066376121610623715015304403901848572677507363283201645764263071121610205628272307963799233946440814658937474317692153278983679727523623487014902866174361489958503532475560254606502795068043827026787410278693523207261111040810033624273204749295492305068989323013322066586093016873719451808705518830755830161964058716962686503126831958689910975714126645676294758832023041561751495255117932951427584279221975082193299376119312231250846308876232584698141350168073608677322103476902654911554083675546785866829185121499528977228149096069156387732663372258353745575151011657296276740742212458948056932646261711465998327163824252328954148356649480034993111001600048265088899842130302678336217436022734664007432683110176532586624859821365865603449767477914988851168503387639280768806688863993286832637596797919343630508012477769170231812841688140615854095999427765528167997565270258749334874757340713700528813801853563743055477146639067631444705536894924187104675968527922946444978423730766606828362460571831494411761188342266860965591383290529578361982597955273022020637646827791638203956024918070926193540945453479363947558406749922314653079879965918651360091864027283654189814096219919111278777695990149928787788225065223924594408825860760482018298633421203022421365464750251570802927409708380078231064432524089265876742959164890561596480699703076961660304535839007192070849384481257472771795049972616807899128909610380018548809694524687915691382815728055716231173623815769938102010620146148706406528288524223261007806883693576249317612112785796883222293428507385017713467566005772289155199832712190976341757939914868482003166165599546804375914989653850654184734047171263555753584451805554266052266170771716243306405502640168133992583285910424989581335019307469991525758336382094878443653172135460108752230010787239817054490730614495814072711117522198315453231068475512868676339397988597066368159766971087532739018824519925657241134095496479432079608374460627078206547017675197427998238375744987980306177141527131654663893271511744432676177064386507335226455262172799777001897515498898318863736384630237762930626660743716381814762383938211291326525937972230522973891265851152501888995947623288623037916582185008259470955618060477829347924726221419741654597121354655498920930286588918020302439348229380684139313225164373573632906646888388529744282327076307229076111484450488082606789783058118930760102526130179251450822723042044136895352900305682079942283603134020748439704048110000514134529986187443239310066799376344330280889604548143068203884914737022265890132078348729032878387027116105939135278614041538380561837881420214976577208027428240173769170514008532128038059618601914242257432766044611392120332664261100215851602671669049501279202338393715166144248582829326620422737712696753530631310839247570980412271442336945151763065543329289301237880966628734635617380127405315318048646393258586239390370518401681680911716911214050858594304338028480046043728973437348196504771151265478133138984718658795415805081205156246793381298540626234534063173633395414840794554431607247857013119700927079653182191016997353814666996405494722110586969816831110573196086831318814029682278562861065275878769557615419896614192914473842046855881845724476739746205403171992341011655259260748540252371522560562513138977984654706740272102628541705481882213252181733336215505214788829230594873588755340361712139146862998934843945329138183214721579185397928525136395072018743476516048628091618066794001367237670650632905985077438278876799157474482198172929337963222814029409624529285587143330674037133250027057134521053504047187040704180692518343159316708351858465253514127877378013998652012104709271989814614690703899905885238283739102402502480455101787329155650390476857102094318320657566482588165484921381023566987675745905638749031828390618739507382733252778975761943963012797885594868121119782178645968661710387592451583162893557121767232316294505425525664616349140585836845673881964954787484199986192094313713943536208575084404133306046734525536153557203492810452574566661093360731599487967908611445056838241698279148563426939856395355453018379750872432584046759417243572318073589140817000988798317076344623976475145438259329756432303572450536106466309358404149712540721729154265933732842672258971510155471494636055230670705214075867102639170452748031415102026247013172609056435908647118533254825896054349195826445816431482524351950015264106115931590951070095213817883498953722091814000602414022555398885116544700409800645027908828838211082658405541444357489746199514994104152923321982223900014997990093485308649580366469079366359036360413172190361429614890467063231686914038364209134095000764704632339027431064215542954384915640278926570409759448490701451984764515954114900395502933452092959558588901460657064496410729611108575195057887421699875684639733759414267961986954794583536743229282346356221335126700231306608779273798980478782202324647538843612783503571019867262749325662966987821960967007665121550758698846817791047485518519154467006114177167965412810329947144335944521873158293912595154012287417254859864060325303353224957922088391990634739345815124659117841206897782176019385391395894444612245782524549464756287633761861472041604597867294178328203218885277875822296538946658904883242917345798051279561732444311054098497341139802652132425490314319031118011264093917615348689772683793324745680644214990583684507618872085491833660425637629977700262851037535414609928259026948679525031445068743041270874541858779396404615649659262821525089621502463213539892591677831874092285319841872150117959682927585181499598201970030529033943836875389975951322650874425827633992582291919223976162684828141187300402738703276204095076637003382946467809987030471733743329029820217236492529734674751309510800160238036048647006613215459239313078174171472812302334490903059113276725509501634562785095950176003247679607095910628497785308612515163876895096502922370305484467139517818212594553267558404796569180937468195421287455195932733714835904133345694715721431906233741786710153453803056678717510904118553289216393973530832703608795811172577941770993683731544854038710916163323611322491858496489570824701649868022789400355205779544575583644833468977579366537006850047234744170021466061667004938407267841781948537016035793743096246344943402734717642544920541815720819969745626580610421546444164449309125129986063642097119104451533534208660466015137571694639728827900962544049116826346526146117640554294969434682622080793406667447306683627981140430054928150099878883083911897992633659998090857349711543390274683961099874136165935603704140232782591840437137881340833175216919669743757479270835296659306354185334451002542472636503351082689769743155435149507219648076737885961604243130823904962597781403427825625815502348041257262970507926858965940380993554610567529650573832959116849647423002183094984658724042125661057159441445467139913100640048841045986183659725557066964998043948100576026286419516291446802002909382328692275844523429340091994735362126165151467472270177937004059721933576203795011103849976926395600060116027122608683429645027945932475130201519810912594923603734827047285468894449434146748204371415697029621906922810486034039066228225902115027964054795189289940961857194151858573296860138945051369993548249319626515005967086812357185854089826936351138914092451612164245955487858423972934325051616191485177417954616865468925354238285421360161139533919554830978465904659201477671139867601927876934120624100975676810648938843846481937054034733202952416773949806210206091094927713730281494038399463277749203312287913470095317483882211759464163469689534005372263381644832910210035897736586267606436485369393334422464141521536567053220053545305797170849333420552221211902944267117891365858741714333252486820263919913926582013033235702038283398871539411407850804450308576007081931126828923252459498475548923726262680713828227114475055508980519456420554760066144196847627222220622543364326819230229883583075913517797862669163348087481539062995950153110821474452252634197473128558346998571156779982830962774649352194075171448729188464707185184656592977705812426814725036359462234944648601531425950234961037045906945557302927221844962971912252797849028260173652901059339131889142134115547506060384626468352162046563191157815943179306449742824060950709089537528860269687680040530313046590086569174673037299371769005452847700326756204829832752312362698866557409085177115852521553126230346872711229224675145483544834405654731741048351866200568505017838881529575467717140174188522621435836888354793166050064291663617252901723651769404790654248673283410220059283737763515560532685093825848296394953364182538490630599577387432179553974172169844991520235350130891410305844776052874164399868433522897558555745381193010041897788129321267747802893352187857519655301662186327410516488466448184352634701520598447009563396802043480437328177230835891264272267659217186984768575193485963084463829812249546036909233587685267050289485781856517691778513226296194805151044983176171031591754501195440501008757024699225612289082350555055500654553813277462521874777393031439411328896985137534235668272305591070327307714136373128166776079162692977396602936649783586881958738238921091849964147829640361531671130361961789137077154286643561984206995131831798243655221105587528807132790394077993326139922133132437145072259847784614449648130482780208796754853892208468688132707029680220224286130158581460193674510318823389151245478271450477396726170088553907616246506957289781747822480667805434028584715593134708373166182714122769282978941775242164429923907483575516418351444922798429500545538068736754653107332586576976116532072197849274253127289167579962338211982967770355699766387348206833483668437933178304052839670356027468365414077860626745901743760366347195379490522077169514055995590808104609245805972594507804348804687714292079243129194525444938241258252991077370150276510417882519518160845548746202726976624790002396243340185852661350173957816476459316146572706299878752965144666119387767167320493997265286682121591860551737277595811726854149180634574671317825807935209449076103837348057349408976550228971179145433818086573846939819431714274501412622463293581330945116930248019904455904810396577618279504679905817992168257850394414159858349718269032449359423049931678997059946852736167641285931084455407259098663566472445862948387094957597086038279561057991917932927690340199147396766989819401055428770251735668095518526752975892438213864109002712100946613586100387741571995682233638847478342875455960657234650700527057281639075462015703964703640226638229240337485418920822908519531736132164367838185708410724154522242007371240949429839436762810986827438549255533409960552363832700866451406015517791387478802296085734640612302200509709059601203468707516857230299188891316653797189559331897659225866556963437649711874316395724746039096247805658420143872483137733367858284463565742749306076674968049075462805744514036538393414284339737429564306270463520632413986328624267197417999130599170437572077365165899348051635296078812417046537881124622569357373294500997708260051870436930146956759253791104893456799091018948551394759366268312189067949263944628769618049893069634901346999404635456147076561063846155543747035455604350793587316129731764891987116474179363608954652409667361453513039314497773326439690177816986074731363364516280530219800301271617532346569896781618275595958211544719626266600708168781647250361307680419244249807836431338727470200032794320254412751398659683919921269390404663564134451642935540058840660943481463563084546305072057160471195927528411582503288389652875363045843474621433035338725200063609609497274231636562266498534033854109657446238294286040465988359043252609920321134345000192708778549367804380245947579983730749702095363131455406290320749418481480891457225872669111189984775521807339537825666334455780796577000186036811777288000532987304792109029299966490290407347939162129456379392757957367653963832164145947243999861048373416686388463960599114742980219807024542895452705959971811596763679372032109940585408500430782205246886640658065582640780399671389326758894950757185497796129837154413580380262800706647189064009349172189998103654491008046761127392313308227564928579106144835735783395963363111651848554030564924618010366250585379695908236952239229233421793589554003951144439046371064613596740992816574332860044635174468981749960104606085557308547837918334728450839203508242800399236219562219082754934991804578266923619149512432337020643993547530255039951698318319560988631066098669969664879494695380138215649037871255248978650019970942394567440530710853312144536922516580901717471369460462629212309190503986033157242344895550187969133605630082230985799592275094241316362222083357415922467578957041048955362688907888572422199591557391071294182918461192937857337792115823785128238050525535755606306390126427938417590073557921880050518616169827437652347898325174083555223142468841894352945245896147797705507457832663295860802651096154241738543298726152147486251251529083034870140364524955129799143159705838098899912367027059503554311071131391712147863776710353688604674950366280753213687298414175991380533862629439647983379677371939328567740891471642664900701971348150049721595647976008542349751202632392375624118853566967606750525451603603004614765733179363461614027943510848723577115898150813339975129565246856558452454523592112468307237489167207558533671169613539516591292460735101754143865157945731452053459316222994823593897650527585825043470541778652607490427209150212160549305445524569122596722165244113239856961225841703865146821337329367749198057563974925082811648291423645025695845295207053067185223398244618901730287803206283176800995151625094298736498124329283233661416491545714280336884503945431138336689712668606073234202516713049414737013934038088176488565907979263006193290348418927498572491836380163472125961883306734750162828519739397005196274453046153374041876762773102066046411189689276195751790201609753095007709453838425155778108612242968223087129031923953796386647832107532689432757267885949274117458388550015430886857095112954236349700787937775896981210828108414171181781095315779118453639252994372903307116534769142626639043874938400157336866032365511103526047184889060148394087330613469557849365242619847032922396342315828438836011321560554193723314285695417369088194648319569223023840917358213275110457821094475352899991008965676302365817857457868267834877770727556845542280939131162082954064709734021102712003943809291396426420118864060525187953126494673628172077308074874950898555839251467204357717536010373743609281197376737205747561105044089773869510687265969873099831339855240290947853458122007813487043653883168917571209627826954808049780813705614083353549883059642384697379611367182724165910265500820711524797510560346831561526589279583158087535179827721052171041118803036520263827134288006398716241978652194314055078839703415416248420446879225172534327012121993556973645623569633334521655704235827759802953316207751120790152271722292997654699735817058195191396991423401285525125163066458496189588406646790353382305851867376921893607217658313517155349159902933939343909425144262670852813655193849981154807175712272986778466203328652689616735196698786562861800475599025756780774760554380861620018878094500781171036082009359550088821229476830958762866033868911379610507963838038837342433161019051003052165161854866007208985374506857048362251036962238660007957669367185823052922169410712137639548577369486012924690068177449577939496456362924771700889498218024631107100345977355457458915986961925360844734853635644765149974641096426060236788751579213525354799517579872011736122798312007968059537262424556760914418090521175249906927477423997036901252419531393153179837217414224970683230167023065013552587140792682135015574305435542916143784894376211392966393197101539310195566330079751444822999598287778936995217956204745417488203350142154453443416651214980306132514528584717119221109136443231853217329343843313423347226226557676454508355686070924487078306302400724620448723346844043739858175042123690442536770165242561803398341516043047007969057570671200583994514401481548330924367067478775629241980753439021896483233637280740443538928930940246720264367666549897317379799812460450101131848656429322704022768390954064818927547468258123083480871771708923348526362752527517074489728510140904157829512176487026226962986400490431961055888634609150758818815068870819945032782023559988737043356627095009687044081584915176205826421976277054111790684009073824373518659643802070688536716115468293851489480189118316141807278118730607595901926788908691499248644047982102685556903256890578108084623727623643382961343814844783293729747751701075034718317802382256030636456043065888940853980817789915784190853269919864605842547100300060833228781158117884506585402281236266264648031156711751113121128877110854065792040255496113808163927217116005689664726544836396289678339628923326705021902140568637815184139334503456762486694666223500350434035765519046626110934721076060893940756738169797269755542188617896564788353577778852306870965690901084042136704741140459073477643742284670417699362876971771510697646898239273537006851347979966351030539356530314142825469931334529960717242159746684662485749921989517674220176923406854647442468048863345058287514939508604402957717918288041000405316307738341371853446042036797389586750149680415683066663530900299874793372278601703406175429778359904769076788851545540364880370319207551398146182805225675502474891576330181937220615819048103103994020424357914913927559147200811753465854946707024551183009170277446198144507881356515748665434116351445143716121053989787749146338502341032226199824150724770370055008567703157643627779407731297166395222874615620929992103717484972318925371664238148529810730845377772190736953807713565881243876571943740054623324242962208402541307209454063790386815981128941283138466945187930743637346108058675117125102251285974810768583022322273021821746164773299862741050956122707274217786149268293381504510089778499335624914214933234590935776288603069616866538384843162162331291245431705314766248776664564527988672801386676836668398105112550204817250686630330776763400588498572050046540539324104090438065580709172505102930177675584908251026142806004968278148867932603823794800157687318817719050196963379689478456397689967517051105137680196491965305032732045554010450117100615807364994730227770436833122925491461312959888991822309429026474688283556050680862243138033544517109509069499299986392918248044176056811549786312656931227491385356576223938285054651523306008724460346174525094052733137775508867452804844000322812579421050497041626054791831242325499618649857704573832794822017419973096642827439288158035510783213386838777283468245727719998263615310431168413082558816621282955533962560727002996682454366426790845024926066472208698839906478962847977847909966569853116911999102600123624375152913138664619093027237266476643041919228196724640240110905455164326130815341260060659372494258926456823480662364930454961332052253463105108566984567918879718055106513313623223580298201340063459555554497682915425566716268682324437352725311953157076924112862700615127430386951239870093186602352656169593203389407431460328300849350630564762499015703300203822135392442197203406334334200362294298169304158373411039490656338023061946007923655178550192109936626515078525706943871515024370958565531732657861244987822934234907429813677083423424828116636996783725382639743077802333684195639155416419829554899160689261953952800070173073190019638065768312461470262123513777296629301616124538688378481124629840819944712893777616546681914458936349460464388546519984572352270970796176381972249794788579998885104233372230922236816017578494934423761426669464196196760589363408743509353706540719357528196486306784501860002840402668835297510523739811881732948087184605101807288587460955871162968172597406723048268139134404743304125205007074083750029424672119769723636409423757949224306048138656909691278374090602982771579344617709126888173182995563978833335166729525578733229751829558574003276330516635610728719684207506475848170195485675774411435447451759360240619628255719831743518877135715093470042240832579440632810140880526572054707230162794472307327712515479066957775129408414616243425845413475047063183978651376719494405834611132707537859241966943872552265516511031045466725865554362209461723469866176058512452645157171457893062760425272726870600485013634519918468036813021664450059445738917672349366579281250460513854473731547436341997643156700302894941443887462104618647209606317034758215593150112929682904786668634747964662578937201001507993262113506840414563363888992132330184882482689493973264486165792411481438611105493277914535969653036057128405852513932083329930732199631242194724152451512299408600694876538926207559466845860609524220232504313709683019925572844305072449626696084922056898193794134684010980038755526061769719370890983810940967851531329562917554189122838262525597203190937369531831792852605675950993273723005855699873202377147484526328980176944102711433662229712356248463692382298312164696282064160078926433681208719323922174633286861542695770365827466350485685627244334620139813309733339782468456348998831561244353646890076598527454273829652570314196037179473213565821771236047034342946130574541371303627745743094684141243256356361341953953650437810118178118099287947836301128978924337812546234743282333707721334288489727391821807079171188245203942451635306660744294718142252304491266448291412200569610993688817750170364381830327063374952982896613494546235134314371425285774340171949975996278766907681982565639030808891553450479986957594674179764575483459794844503146592439934818591341245936682215684570222629265166448470726066515783167515392693094320760834963237011218856985471970955361395388895440740737917421680270670399049757752814365933117521023307453424276313683372065075201561175297628205172046093867121084333203821647934618673729648678398230556756592444946034333823608570631360674240711470846439718487294086805421275749010789643048312631336365241089316469061263908489326709315766934845014702500503917620958838855875060029182788792105211541398866078280205370379844220891356407261886476286791194466718008539227520799478692729056034296553785788909637402042689622835879277759735946431377949165578810985790610472291548354559108432149620080534144481008121563806426015789458888108958822851200327219492114138070859444900194880836167369181336224652434454753427764038910466792826912620845070132175432383375624148218442512940599193837782030135315513491463031756529952635373037196036136904245405061825604266553302234675093998413832642955989513606877419038364661046941229621439113441171844166971493849710636131513092074410055590683416200691407966149706192991450156961262175872831230244645366051497881844501959588333001152852752922652301822377506135070628172825176134691062020613206928502176867224592830083861097540231733280787123055029459074345863186818007532128431863346719271595219219289723221381077620089570296484795099551187730841983474362240862432055788723815867012795061549533968899513928163859056492972895569767605910887474599337703420325049836706385407768707661294342773349787224456914884919118837342828018462588452958945625835475743924270001453678727032406767434163641937770222833684057070331795284168207505097420951872569546071943306224485851305876013722781494268522501724445223494984256319180331638896303290928472747714088171160318423381115419844341955388143752192738204605624655418842584863441821877911586387876142799119480716749799914463432661896559922499211800994864960257831032689142407260695403874894284718066605878648417194026482101192661172333996668538930727696388031870563815422371111645111670377953049091068943038432347717650649459859441477364978781646736290425483398312172103202548730993048016852742799159520995072095887511215141325152683604801970884719438854050017766732872639016435688380908496425584114167458628661637066718283166975797014360527327424443277724357567491421635298774423040805021334371775955442926471740223535096620489708096097807438006244175145053543519744060936826988798872097189643677614210016904014559002003565153864298129320407712685025637426034535458776948422306113004790469480319337181037400241473592150343998809583862225130029249370930799977013109679232172716374564736086148341725528636774039711516843141070115375790222867469275095656527583648723694072466643816035749384486896284880217021637325913402969605316566475686671917970765590788386757553194690807271677470423480374260112905679754325377546990601811883333403076455090966737928762443303273867043297319294067877545743551269674355214237395798892827606894190597271940910995187560896556408192770136025318460923004038471977716812289510372947830558267850575269626121378042309910242013837607125853903241733834755372395246752929189252764603915781739544918767326861530705778427493040220002153405019792627512809563885126982184408866716697105872293429286720364489446118018703350776313330461312401666433707019138557612992078970913227805875124260943936982217831825556301560382217462938108225013428263292615956781595291908167242674445643929740756907741260179665065647623939308188874934356644997417598931814342936948088126412311415895187190182251072287172151568397005610755716548081026533559200871051786299802047320828279641431622143403099621444434329640459062208550265972888501179848986973810949284288594919638794606911109879472939627146052723224239730704711627335587550884976623591639289809536704228583884079924960495953666874703792370071349966908949373840643181951046150792813226633334229856439660987547741728058680168142091248607409376669792275777621438001105584048303877652942747171774523719501860440237934543840274211371190850049934704319389762677841279635164679563448708996313755648662848744760293680008628996278688250711820747810621960152788302516479816035780782701517365184024685076785781134875011068965809249393928649514601680395604294653471702710297927718416320035885109864049774548940926078732012705284022505572100501317206241437942596606240962184773961419672542845206013188427573172342924591167950302011736502367497627507390767044014107671675604880515909711320002046830504166601737102017103640657861541618371804579551433533848264765630202378196410219587843577662174636944987181085706190616918038828643629069603643322057488110935897414567268703412387066212160320087313609960867603128973389252431972000095593776938483284223810165897882834359029761870127986062418439679463770497877935240306245287855526102832023183650948020413288888185847773384631550115796552716328340231027787452995681710156456541208821126370127979404703886495412979877575742439551927856180169271179219867384170214261525042862975908279529982540580690925904675810169694158419068175209991589346403410375478793482086334680734033210869738843302470906049967526653148926610319317699990440060135128159730907416748596210323282651996826294265401468371097912198237042305007296558370645514641231216610241333471207548840620011547594753996692552776013937735921980573613175059290578809855767516989623615473571286783984107661935109653637771041813595163771329634875568727100804367531931448427747298454306998683543553416884729478994004224346199171737289128877328247587948374057122686532599538245901007304432671931793355735713670024584719525287126541884499412732268608588961910524725808468999533954259346576123007571059660266605210492969686124031358734092097564161622414112176386305833825066467690795791665962706421266128450972144173136375596576934408710339748648207302367260425587364366093792456084326329106581592337918378852452682195779397374131531982968960402608054541246382318761251914877486038183983292841324698921760690189691445263812109889207414421987642794149771794962670548753725602637227337719800324978991970700337271489021369072994938984524903185884957902244410206856641970857268547503392909447399842399938306359190108904013295536117097985456556679521885972853090031337212154612737008185934348745910783975383707143611415704212123459659608512761081374553112114258772888437994345444785322009418760150395497617753979880754487179128225982754331354677958814509751548587643637867621398612492332053970663340621850825411466825724570376483251148614273523147272571541407585361341001908689529279373342887276009541339869175932313447712883105853525407879309849644556236367682266948714719874921230952751022042234369277208255485658261843202824749111351560978905477795843387927084262269754768438845417559448386790982727057614535719528649113977577750937346345919186796176056898127921167792498326977333183245615688374181518573896254561177772212225269107003578859968698566001002041156132046511614336625188191588204730256618256193106454524598564892194582245376227424356477663528150267847909982622743709375565710742512511695731942653988882353976240095686789274191374187159696065519102777124410122549463049655426205791493133655638595727474499459888159694064926763068350472966241527598045599811150344096015740241242155259652940821297759412491669675234935212841649404425884215551790654192013794101747955242581931424407572911490172210160085264873797438929720908639832608923464647871007351265656848890964860931979770533553226039501646825466699709605913645586508130653789916126152369500337574545024443067440201495438340981567187800323458170289028541900668551852418720157985070736804570686070020184043503002937550969168229982263886949220204530677052117519338153554530033930184723376497494570366517043145856710763206543349946985775420144388549107953196146281009374637334754886805615995401875443266486515072374993955585887872567183010316604013928006390477611939492001717546148949210859252770965952430136477328594931887361623430391412844234266932561545140961547429790705136751616320300165848933212850703425202620321058601734175525084494673007288935835567101584739988734854960987223312250471197523548682514509503744959582785421332503091640227874300199101685782174329366747368441229792969367490386280773139946881908519673896972277517124732398185711198468327102331285428786122829582357047245831727374314506419632532575802929656421551346737737481502149945737392078977938804224695733731571478947927614124485598872306218063352777822922762166432411248777009312256390497742707394169209003417445424293599044194750921727183065240835607309558821507695806817811492890960619952246425491370438300217677805399539644002977870744496625819310997810380539125776784283707080410157859650977384606708050967331073326309666445001911778023781148240818274384253414920968058672952311546942580012387132664577642757165972349639136626273160688524392652252221546136392441486657191023673150062556491394859905119333735207653872737782041060259875636315086185651160970436651328421604360109877128424588225373375443498675599985307733193183530003592880015044573541672971772354505275451119717583079711287480138304036935002761082905277635962236622545071449318363619079057257204198538419257592183537469785003088364641614941642275676821267102834802977361087995159654804010673236244299213384577925802743804398972906959959214399953487435652748409416464649411171072449512836290696140476541390846540108180658419088105959915733327588084511597868276334407160550700694460491606743722085085069047714008108614760145098131713112945380252229163239116626432021771344260914335513966529168663665045212254776980723122782391328489273461753329915460988095542187833454548545461497659814614749668687345455356623935031129934955245030699878119395290841457098453936862396744972145182411701821641127582198178723680124911279357755898822591004450762107654829032645072112557165497684895262331276854704413452150976786033388592426712212292906251566238340203517203276056491909829677558262145988615280754267234909465856792174185596771892854368188594249449644424785428651864930880051235607683938465463808362298619639749822634450589647159135138120156078137496078437185899958875539873648654799540858315740427001234837059103086933357204552512569456863764862840530880006930078264855227427757554400599276969930137280613817657131597423859021605731466455438202481945151097263003724122436572150027482720827677418806440770276849842135991075816170863214750813939077314922479419212118255969311252406936021984695944462124266647418139631813068543682886233474520751305893574398916089863436313598385775021598851162181739844459982401966461725193874385843155054862201455500268142855015573761973565294039711369702226888310608800326887759217138639861142496423231558710425387748994745265476865215741647758703921346084350366091726109284687296546139384375087048085331580440136978940911811540363097167440769253799233849825473999662643365885893443538739268577177824030806621138219269552802046479323238478538177693397343477542498691225340750296696201316830189843438465850110055604865045253849371533793165014597494939144580339970219082624826222606512300556145555046120961822217292480637091966301452563897176659821925555216289994420831729881615493244503578749733927231709651041481565450829787086823994912717176566952452178393760261259378549635849527959909308418829565455459497172375135654038347077678512273230225178282891560878404653149767063313476737099568582966554272185966027009976105778410158752408321961578879096797411862166791361863508343786803921454241577330569103794243598600530825804090826598565108545984671633382239256789896231631827277624499172911195993587704156774747675165912742503231990631582848531140703558455146190706055390703712550234228786420023969718686005721802685307921822484174535217044425631382555458827775096365418458128786337934383058481819390287171307083329870603879986628432321125370463967687350707887034434648760465536902355642680823050774628460537145044949109722220151043762001810878757421748744721916879324241976281244386141329057245091280771569700158069741626075582286292185106931697100431921041636682377414372204230581013916951479694725542821974707197209419150495028548551758522550561378868178689766551259653903171317024942986010965022016520877846292380314091782823567306180789829604701500177886424603031387217473793388714730499199523006600513794385206350839203064055312557476899355776353368394103280283621642432672763038009968820003392172863580370931023005231791568871866791501045881198470542518453632983356188313918652216859332085018335320401929994656787669634121281128024677197901091311009499744149285163793824561978797167177403058783054279428534994151180146185847574614973571174677607318625015644418486511294989860533620614032129148296749873206252154434392687179187987131495458649429979381690930688808412550218643920067092221596281983768435345828688087432314813369228040881219441089400260299533287646746697006157052502058899488826081537331738659775793456635290239672492770963811726819478524870506161997187593004306998704629968395010584646678596752735356000172526511833750624579430774926270210150146432115755453742529450929095701367862790570038297997906523167030993635253265861646449596447139501308538622295722571753927504423298057432849054864554540955869703028160588462376655591438357780991103864279061746116396468481972935329988919065515954862904548127093264580140819421995578426373973916562323502974424189951577796619005110858056169986700091419511534357595585388129026748708440614168649204807734059569050568781334142501001917687299112374643961317603483864671874869318874694138690583427330105469443125274721824583836304119641234168704675672172102762479118222515720046338401544546751490266046570088777908552650495258264752924886675499561564604674128197191042611287711151723920123211460817947078007711569733881103796052939329174813144755205265838994212559634882795925858513286365351966458530958711454289042194485248788398117141597020757071297228626547219174471994783279501714256130049381488556857244354896743706933176968688745814769032019260124209496370070344989710580910585239099968631458968211417043153302731672782307369241021146221553885477645030168509674044439944836322348457973329286688775341581031464859357158219495556568637078028036258187568571160141720088708063847887679517488925709713239160095382666042498033878791414012426739098609481523008344841856771907609573608125062716762871414780488675626391011456805689747260233616637333934823600397714014362580764410108878585138008444197292647714110247085533144689364463566834653575390345011351198415612522375500721225720228554845191224784625986346722025248984724443687025335922472631674176050039211283764192137306916536013010929231220106073724589054898227703673690154359243169877880056423371424701934290358455025649134946273454958344897911266946733484675196063895845395010848599287344112408512355481275396748980283636283901376909264537201828850433559382178656919474982038168739880691191128671500762001369265454997611752558490499201686888617106629894482520422270786507014434403198982173152650679467694741110545176575296800154374375157862603612704076225732853865596150495751756744503380444012239667998658799805636122038787219023179446824232420564133389705014188807182769234459639657353194221422824997466922398957980067968229338697030745029013676126435146931990479750037466778804487290844531016757002068886421334062716848286828492990650838792404743281038224192789159286876540470701048874499312361929038787095462287978380738473125305627365324480296388304302534318851391958398985890681763616663026058166574524771898251633695282882907185929052394330947506702184031031691437495254571323157897567200741159013121417095515244496404236041388583287541174170881149239585858746569309846951613346632334991307908741476433158501377556892109172304325300859802407974165879333259503231177645779317224678191017925992107789433517182734146316619560213865287007498922957327514027554325279703570840874801536372029509334763707231606571733601323018314664372041797592220160500630237591663212747471636520236026749840568001119618498457647380507649481738448736789249403795541182650544616649248428935828457941384637074395715965734946283478804941974271829593503169540381479420290363037897080463887217003575926822652442882815222561567005111041253487753187183235626528904610769949130875372731788271623335667716262326982917654953016033947086052441975760309456429282152413410777567185727595032853726445466039476509699515173939018040635172458702838804266943904730709186088769868239312209812323437489475438618255551756765423173772030001611597732355238435236307288045659569139201100501818194481958861326079169319309380390854524306989842811195217082115383473523344163579268212091044301565320940681270141374763231878874065648284115876534356517249392780101684772901948138233410999248204454118629120500073854995004915740783086191022734421087955342567682614773758299480599434206941283710635235177311377524510617107139530497059607479592025696268812383382505084014230566967329325362944900601508714525391946745119057096708357970231117441067847242344967597405961308822541276012583190698593860196529602743953076663345191426750761780110791517886101587036098049201491834863884258133693660559150497616209285340797669331845408585082207049359672409205307393785986530237140199760344377496769926390288327884151399563123039901618871772539475114283491829615692829405159602952674871334217791511187802289854629868939499115645875520557402510526968992986302121545515479880261881927947830810398840001504643677271810448818321221720217406051641845813176928823724517413018031538970634667410344450130304571809882892190390616476169818644174781029382450281915786613898611977182682934565121064139955954569455355015437813461652408766717409958679143620136714131172055790431879139717719453133723010739730462201726290998703150290554397249177935804742301538463834412181322192319642065044368532632124451120561190129581523193384934032559734170404785283868400995733766167198709851237293953310857569146760480170466400975411638978095064966286744983588372075077687058561088850913328689268250899592186808551946204326354454562639224352479751096145156892179479876534233387352002308954736296628959727940191406555869733757080406646712309168580933094206397036982662051162821888548513035923175135463700537361021887652113679382924293761939134576010036819517497304465051923898036823189905811944017085619769976090392867425772694607662219874076292031361754892840271446020518415670279509307926630559738408126220462887138692975832035990357392741580897909452155826339001139814096608827057162219040927546158285404305552191985031827455339491758129642743413402652170278650346836656047214873565544580045884960457423253194945424225703681825627035153269888282975914979614530161021570023638397682733029929687309193271415615704914372236079534338318195110498418301428951574065900153695549964091928780793249464086551912588354476253960478169445345141222966286862710157161964428877024559901311402401237037129736594999806507892615013191450510632080559000039624670011480615405584428289214486810544273766508601318841036480319506126932402868823154801106049887163317203099859507881698748868078548907516237745217948914583479387070099669974335338355981643245513828235977099066562894630949700049818373624283245772022329463150664063163796319908556017347148763088583021466549905735288584201804985872277331478369650957117403402704834398419593549903610646455913023414209990841802050258705672813522522690776708431017601971137000009432495471491725301975469093156391397812872346090754747565036706837621835487940599604746377068818133432927389289171434261497611242984314588321177835107533158997951245232564731810852412921038368087093838361714963800331788762962470312182818790414422158446444966066161305907862460476416135867371287492589244068049393305815389630114271800465157635048219633307226768002726128608635281364107186484878019904952967374350454507683867319189551060938667072788991827936199052147702623700232886598920597567670724118724533361053816402300920898506694204706925257063032145787985583460829160701610522407446907411673530711022406706960664234341591389287490116887473153075957553481389993865129935884624519166415774248000731750047580601623995424757514815435147582777978992250780074789899899530538638732621596825965175721797212063870478722877154355078196125890672373678155165926500865650095849521995833824781719739052665665157244033032386542075960580467506124732250961087460494261607685217632931532071029805013511350378878799462475719226918206720827791964654988781492294375168964728514309773441909591397199177179580532825282765843142661248044898492334891852871240247437454680578324136724394931035558561931078137604720335397830101618756812298591255674834274960296453135969646863209712842444660012471536740086699576690891500651383217674846178118163870373175316626749528046581484985148330360228105349878852845878194404462529562555190149179562486100193210684151951810716802786416424450841665312902843174000497310262091707529943108630424581090462709958424324488439148074560689643238348754248124385247771043478793907423269330424902074242655929543407907855719619118172951151829720569732338439041900879174875175682364407930645382241366140813880884323273969806243222650211785129013720643031448010748960617220532363468422785877559288706490346407440358024014353001533878975212694822507085156236345177632744281157369375656361045687541653068467925952228390374116592849288143526252335799101370844509278529932313272509483277721196646674867777087315436319518700253972188647495826240631319717380445680181184521454704762648477152260601279781412347746784136320991741413296737573075285932756477471806946697055276075491537290419269650165340219822030858049892447399302258787602523275905728139459959972521586466641704210324287584648624203185839389996148424839509401462954865146107798982140217676766616952030195716829489555839597548656271429268572602075368191804075822104848665559511315171099515008138332185311734508797798952701235588887967774291944389825315650006669350599232789625487722970985934905614207425642708166157337537095686664444999189507278650441228035492980890278223285326356226084371838371509229047828299817183275815093071955047840162163949609476018808681441485419844422757938026511220236296682938746842448243406133596526287895837173803615082198217508029916573784346125264375472232325048224162496389531809375567385928665294877840458691150955275500939833536994167817995119700809632861788137874374718273608516068928321969346609605030297711534404544794172369740085917758845781388248004003477989792512795042264003453169686709281227701497478049394148730906380752126701392868297156921177597656828805341100226732893152451735845725053685263319591155749536370102217093692742339862773450621617330644218043878263691901025674526403405705489119669045572705651283188544611704862341774788159921935532226346873382089230631571346503311371662048812137131883220915419718638210361216721159381047720828306468357131443070390981674738937271655667793668289656200049645274423311461260255579032821839241551760273876709697931253086315931891490931928472327196319430663306582785524272778850203418394756169536180420351738806641509950547817587887327711946878467407457187815504802655953907265754262226862264846545430078741803936317695209415862834114510293358618003148091143118263777633945669800012344633077187706920244621603665953724760284445680056969158468233189394373124716513260196422347323782163554170614911064943850353981569519182798165290804474426302863974252026933275337884524016617364688530667997480654330183475234495608367605121971965347353363795393200825030624982599474886492769319750185613526345943597289816888722548781344214963510583972594885268655953220736973505394785794213536544459417808318115058505944591674584245661342647146802428150209750270662319508405673747464511671988030448126200723392685142841357961478756289503302594941346019085682068588481797358853472903607331160484334746811842444590834440346350280369953620915725078714843344223190738626774207890698358575981347356223107565049459337101642065046634818193695761716023787524621675110621679913398695616939179212693279037532947122891457529588161897261159042881002190634560287493719423227614948139555893490958901069679605331859215865529611924342570217446402275817898197325798747149165669523907167562126811894750659973591700869542149776789092208296048847293297373961971783665704050638461645879282868148299157315130859119536408431848132854393011775886792592917071574012291200453194463220059532487823136929130789754096394355415204946949359364496047068125245863193477680354434474923708572270009862274439640336610471822561190274947027547595728486734562218553717571402869294267606269882495883647714059628019781456814133755136203520696945077432789314773913914385120933502738052851122504394308034036362158717845407073425786326332680734794566419562424315986497567722873903358943181579698464673052388502293059407747987885780391629521953676077895778818324062480645487518217180007102536926462259600798097864801700548628319834962268279516829933484708152034202636288659863583022279655315395765956950325804174572598775748657222364216343950028278946330461823299807610723545203864908870153986613616113870847823452241904541668864492136353800988734865886594570799894035325414439915054404354825464057934541113255980507675299076262039024950362372763341672946470964399121230431465552458064330798146341924935326764759257808349350403878485263747733745465045169327556858574643383473052160112261229431212891220037842011490893367683318873305369778630201646984651969672152697781038063643222461988023837348996457228325272968257237490369437808465229429196565686409835093738507879457168415163630739616838052657372645018098925598931565942638475842537726293431975623460756216661926721528743363471328896762871374350079637650036295851163355073363462105041640162051936581898259608402362632703962728618038295809091455282780933703758826337966031747069081257637016461200194442977148347308834705007188076366885426540390735275809737716540518825418692860301967463511324788610567279425242609824707982510258466022822305191454494388441171359987748969727384853409977988438504353874115117256053541568450523687855954506794614849584065291352871385277340663588109865371401558623441383881925801743773681746981256810037917160416123086956083247696343046961168949048201248891880809787866702538799377863118769864401206197420497323967414081182922856774866108197694789544003803421824738337996399573498901921638065481479473359513985267151790751217506907039043049920285419384017819745293249425472285506951296769088463696224106004829705062906693925994174817358864811589320121913323939989502105221986944022298151600394633951351662055723888712232450824284076565369107450881546141966908425298468105922810916430643338272224030996463319049470118625869473036937077932292784892546501469154166442940901246659180766435083480441543864050732503715696815519653245381407551068189445104151653047156633394993044097342721882864219896911489592806408376926304259027356013620024549545185773446664113389660247955544237307131920643159947016342039132084869060692254597005512325768777690034604693897730657726757838586758011526291324808583777515929562418005275306703660813422084782706261312796570332461785781544327161154652169695943987419741500491357308505505024376445193232443751818123735498118297033274674920592397474976374157963855655502194160169334573482877480173052112325896451693837748833333111959241876928869877270060415219230476223994357892033998524554154483902295201210729013212602039110472852906411630428679502470992032428272008856892658910251675051579621780668524520623155713665537024380971312086539161405338681115689229566422224310365309660489408865486657682463319246692775839457475292413607735088170318792949076725359293293662907212753349406015244411184229198844962821780097370224524101659898097543155281048091097694162112803231451116398117395242183993331755598286879513624168210228541899970112068088978893075970983265874387029137705320155034430439310691941102709776081318214975107981821334327161813659284757284428429841208934526579036743916272857690230073149006720918062534840358284482399012517293715519895015672474584289240666549858750507758563906850281608996988147147619354166115774890011881834058618760209746785364722777196054423459617138078783360281269210244468115469828513150151911636333051289705604802107063755914138056622066952724737725819473218918312892521351995977105977416714806948668507375619372214292428314688360397583176756787974415854178454328842225569353954707888026637618112064420486374507236743304608142650438888075712490332435000096081322389033468823425946830690327967701258390311954005740485194861921694058574322185106134576935061153908137804389524601865816219969862435821393253070198948901708474876172747793073738266701939428559211486828049298627744133574135188896533119445695177307646100785300404394566594955061313190720111142410247552693365697911700476942203506655187805862480661925809049413242320291073991970136968471738774386483881949195355950840023112992450665576436587991903049622025209760802295608260582608365545022925717726237580269776303625122769640225213058345408069713365334256125883839100043901118880816861960471111200940937035809752216306793472356241744563326923711921449544380519356932114789609990612447609430837344613253515620631257598840603728703810111020326644563785032239268676359128014840394521376911266816838083694025927690467562373328133601271416471777826248782852106120006071076015568210596152153929198069061846590998777920104099516285542322178290771508630633500232447734335720836544633333588373418081653759755619616326212823442436882591655553051883092370584397106100957957779362569564091992461000985403237825276855724261214917934905473742604210292278198939553967312861597455922336552777617211964920639653172604661001942998180166762092004931025148184455501555883428942782743004328528299671122365093563197293127847542511468499791226481380939868443898639686991662799162339951303854536390836160771456737593696149332556855549573128512267243825614945516115058904674653717978048738616723839459166861623578778432894390137531784086060832399274771909195732924235290051962862014247933730311256343733211836293296849566722902902167285324013960106227678377485551670827452985794416675341665098427578804285025403825934414106829522010249380475034031355949072394959482369113104732666493605725592344613171676198318782863421722248293971450115922784035212192492266783009985480887857271854847526545023050782179985411189460808218798077785141132913687890010266698493844661964391172351139964844604925226000406278610569090012333725678377744681388224409783849115552142235223073492096652113362396098113750043177569882173057112774793498635531385141778231028163955236939980882085992848875935273430393515232536341187466629235584895226930953251411923719257473484076491994449992159819750280090160957281503575690765281804114795712830965312255897953274918044416654334691332382640947028665349239656415437888735671179620018150059998649634537920661257167600704255883207805227491287219862075462738889331305500152336363343721300767905949924093779632522592622945601351764792475265768056585750064546752623479445376798383254645293669762555509726698708612498195846616890701781343895279882158067628269109745569948068456138246809364294419050414719026081235532245200697617190808574387844294007287798713622136895601801892767808019613975555473692703230778361890674344778313099277216916824394405791712203015597604115234495325728657791906449748242386206353418754433000275065051132660603563862335225236085171807725032861935985565820965816898664966288656621686254966737281211317989872838645180294179751890037931005141892787838789492329955602312036380400953945470021399388241578804344519652700375033309612213852169103683944338407950130266418276363145585094311363170868827238453097495531684412896535617586853382656964630142530513549285464799250097160536792869371818410116622827217533712858226451966477213842578584849812264291945832102678137688791919740012443579116443256247963179865694281069168184419111870039167057692339636636945449431421505813830147556380916864344838257351244202857072271713111509102456311780848812179497408680426670210205546227819898037582255313295266821302564579634668650264488781058551504171497515609738334795034995505306699780853533840853245239141800234230193938275072654578481532610253377408696912519718848965988923059011859915910139238492520017974261452819243852200128375222491047310232281934407005197208919197223422814927411019975793232795695478842315253843745305573262129870950605704537844253730493681707586306132368795207717417634393230285988633311377699791220315741526011554502055320523234293875406066667259547918316329504635251145390790842620968901976646848799772926909573543242042401850568768414864387890729288568316289114368928972382467872640643339826922630776333611364122815916257810683034802961953739376206551826088574225439166857552844355070264250629146673247485115088189160412991744524062977453714486388829682949813386448450419138757067171929894028468766970094415610095501297775902015179274353587671600452218113675241624589210316658270116223353373958403773769544812264529878693662552097128023696664274113843589487061391957404823122352495576216607324681382044483104762138372777846876420531029426418332731056038382105588303970740628787940506729044781039592235366584175161368254781505828756062166442051482031111749150994776637354285416108993988739606040754256318403500965547824917062561116842993682178877537572335570221616251449773881817963484395204411532195970329039803143017040263239099295861387550262095735505151881044897406535163278001202358969675565528749984334398334411217478572798116699497159056036453383189244190853849240353398457737643661752752850310375008257309073490125071782911160077220955388706192836411404100477691500414109837948532619759932383747645557160686301131391206188046338228354335263555940800647848453848535944958672437154431738067148580471856659450282514159376365454233973076462812568808687056604431832040703775813552035300283398544615297799629256728917225473883103576496657403491474590502702257189756551517169183847428378205680752640556894798498689798417992465640546140920512468897259092220841567582951403620976286093302387593805567757811183454694637970231852815383618433284898087086574703946756492910920394174957475205979956423173003102834479307196924793213494279646205925243155219477279769601732040940392711754510442618544218666170499241495803716100977988565794956471057928807439612513707994503995932134574996970861864572793176145045816287889019886866101441059100306417507282718654987387056067665210787055857887536933170882501014540575776753184948976448681856501642528731698648117985683485360744257793769858878441539858006715282547114350098364701275808607968473956826422682066722261240172125836726594334292733745068565790464932964384271908292518411929490376303386354131582400337744952014220574308059710634044357102447653231034259690521838170017548938115154277358481577134823306235976163520942776717701423378819274269238733216861367244414522867812310478769354114561076846095635096266131675339216897440675145396222466733785543594487688559969006769222567167618947488742353229982617324077617525549896657539156437193638680969321526713681084476139248051508262366333674794935361367434887235803048145711070126342152008824856995199776639122770996833885278916768856199608758885812837202422342612764596872080802896133187311845522326699066950915630666026341129359951637208185443609159891010105351905203703025745921678759443187069289695359553545882860419374535969820375320017501051038288691706117309405026644113846987339049636122924556533958007099931488945546341490725694839520869798839635882009800492070179239965072916040381281579968560058272189729139235719035815134508000513586878576121425687537124120317256516179685274798868993908234334071461498416120281966224130288651386176093132947477410688757029656392554192191589426839515817600079217404466793261250106694062443497388353934416904595711349603329587814104501248221960031327780507294527905466553260814054088174381414700395053664263053474965159275233249203815916713267734148335508272521445597600309453063146210952580642309764411588675402585398089213457428201839138992423240818035332554346463656044598726393759769236571827980402345440278112197302033461282590789434627539315363274455370090193410821084681679629117350349577401098033048031645050812179786471605472807991174139011607159397295140387293517881622689506869421287838254123126281925633004522425337997786310074461147376854715523402587996836610662232986087310612618795986860997057299889921799296381508422653116824274141435270969386412021495475576579127600125945935116546239754457959742723428168302950185570279382391692740917787715311507542517014033307325037346504433677947254109772192772416308525368470135245737069443695199600554712090821829134009549509384703949541501099667078155499417508113883451114190648844550119891251277426262768511638410379846933801229288899330083079696880636532110340993931823058463491834795035771001756432300862503669723832608270973113765061038282085043778207675391090057697450145782636932550422710851763003351722763513727673827771625885758906845098477968548895621213560152876871941930964720455003473299627398176612401710968750080931971208344017018888419761414598289918963890726372543522996392648478735579143741426396733842380214289261396758114083250618335581893933109797555273993176829279182825655561758927837127477154730223702665920552654063007739888011551896931638395574458027323638392311697299605634445292131120294213887417844558173206483680595855702912458184883910816625718721921268813410673384913711865513904179485592505378802567506649459649832712592686709519308117558373056043285771358967395797411986699485785888931048743622618415726770916808793558735803700534791261477530197577209620859925994834863569961649834561064367701516306154733050805822728984357623697643392884441950286182077227748505778382201834094907895910389241644820796003511710734433014269635398003469806187180091002133740959271383100773406619498022291443103308037391716707419299603006147454227249203166082054094017726524398993540082030012177892192540368302734948298272739526192252572951806781454769631277444427527667595854126138351495964351584879282746771475703071977440322365712203343341826073185499006164340103418350581773794469532370162269813760861570967124729473024882442026115447530048380201211115840567690004523781091013061072730445041232903714590863596906512797599152871750517052544024553571402558874160540418213544088543323267361905782524878836325298365983482911240635456407950540219990674075403110330226512801816169968204277927891976838122635280134024034263661895452510126555960219349403078078813060418258753265131183031604402237920792431513416076561811903263982422175655736933506611764914048132853429922497619312959217351745368991570392414596612930670296331382186454016949076183665909537296570783248853444477677610516054536169241066970686155510442119553876115079883129855966689880938498222444500526800533549998078859549410590569912789484161803328734622464890578854376094304298613417916184491563067131042266640679728846224273344261124409287555108600245786806256269877244076334481872159470626887653870659521664540904121174446849309268061517788708254801334737078426409678666584801740034416094239231194597272867538811370993066823914625070801076746316046957351475161220763860208262573905376758312327713974442659892693497477650154518680944291551837582225154729985576227771868004499984156458713619026167717338458494987370325024355047548149477241376261247530983702537087567299303496761853164709719364488860969842333331774088435705709996597310745975820271250483912483230077318365743395584395516337432711804976273008520820837230788546773218197492548165436135649628298341166471608578003938921638535768955364345692923810289192191340598576738496412161515317614211948178607352136205648341986507048849741444317319147393270954535829711522671177421215229656891396936075729488758903571878640929132981008689282447090113047766072907819414247152329111157335140745790009889624354659995221497038558304268436362726791840449731367022831624046312853262669050801284815291060227216517565480462705417499568319512792289836287676338516918715123531238459987965066282885327031337755687174405428218058730209711000268535523792099661901829449015341973572780837378266202663800371967174712759016055942875045530402301357709699924896002584562616821878468974032664488205442407846302394092287482180668904268252798828482781987985650640249374208925574930822170710792397685359101150515380111462686472118154889936835192475708083580803710259692182653199770972468031309432283738330387977243676535915053597371937109515450377049986413924783895798398778270379591367423880691104215041491400072932359654591617320751909158695355330137244551292013969181802382803758557446170273363732745946514843737943529912300032049375583516542402950748900264366923545983384480378634754533071575515195238678675884965972350031908037427917794057370173188831447492123232142405975966978668027840992634512842014265433063227780981416547663631469497371337365887629998367547286840494866857602739949517486703112734929043601131741101870394481506840851468000588822744376688254669847032529584956502132683245684078397205739946629060993720367339111364578928637175848860933600639667161671906541034551529336184489769061976801894853868576770866427919992817473709906564722564806767244827223477186099378378497820561846063178716001410970877815088219524252072138359279835031696879655939284290926684014612269168248810627798364951614405071612471657682297964706109994762092114748414472119487718431512506051035973775231816234686136607896469170348687948838940727939799878099928764216164468298365082273536136756634162603664999036429761979816335659404008507582930769526473328092913449615728600998508517795543965546219148080598009548034906266628825270962597013622410508753868671015250742846396488848208523893299565944230938942041892691976108630396449336017527076819948548429639523399007763825487259354751597670879419739577873100236028475696604907281365645516336589669244381788666002481286551158130140597580319476732359829953919081573776064532292264511120252223693602295353188130874798206469519928453632377378203173600262146770280072890914992839778155775719922843165611116667743374785173489051495937225114562445218915294797104515096131737938192634106106224447302981234944222953844667274546279876632465582057548995244481281576614071315873127711083260187365155043000294730872739725249493779428928945262009991528004756659147676303826854970685292584067398036254242264726588768583994908474321030774209123868320740304210602454324601891457829607377564903226503366390220760515557827211657528792135992059187079448241005874300812271194546135442820647491165480611984582217647937221385644813997449765823280415995918260874266741356997794167747020375379318836837486819920116337864202568762986780807227352464489068464740685964994382077839319073467922129447370076925165488631166029806838001170412337022696297613721253151908002268147551143411444365216453276328918825636764429685973458297145188532635198262357091061064205605230698275300420978124052244396685714278848496107537741286185787959992676522228359002839887748790139303225478131419632847689626883800243653532877590221211365227373037639861301966892397741554546910874156608886552630177689502157106893441884698176954317595150314116003297028084494779621133539471484075294332529154361583994999409533496866828748128551836360262431804172091757620730562633705941828281699273258998115149314400812173616527887870861670748546445181677387530537472429298541781857562418949608466680667892806394973836543552199481845386348325257858324973474577643185016339459783584920829803363944118917522939868667039433526324798545489166339135513176297156617661517631806001100744013276476082888285354155401692443850710017196856989138632561663593005441773757169910361000647355641282523357895833596167956547682880245465768856516732624208522436222571302051704310436326216550367989173185097822956758197136569489274883789658368464204209865663028881741221990034701789003400234791116390310257724451878603940573151072217122207631935023163044911021813929065146829421046709074828712920561481624256982797434515697206171198256834870816161911209148387221232577166009852364806323112723055618941443261124027014008347526562559337153249201815164730531271115828178462103023742621892509955320198607385568885013808041128850251986476484271529333769827243302042158126450366693041227875670293894257507071729778953033087346707662244139730115200556682946881875451768608274772984295555050669163746081859170793222993557030317823885951066063308131713832590516435826718195535377260688412573001676691008109766727785109049336784280420436742786205681113596863367754306694604497941185043798651661292048184697417479212804865312418591117183269638137175806990755388832093927633920513787832247684265581986914411832308047522711341092512992965826496069194973017331515465709553744862148937957025803930080387373366693419782461740010354176763429324973922096929687353933454604223084961770368512594876785304166592944564601991730980982173238860134928797871505393904531266034614098016774611321396151278504469493638281519103845883062019924868455703690796181935109154250179723865645695515615756154083471533930061469932423826530507808747061190574071563698265711350118871753609029953005416036488626739734227240460419101894739262359164035565726557240453455459042937270457795962062205219923443550791302049689054405439308251680557592792170556173785252695963261991258380548091725970372857607465086447641340967665129137177824749323697114039991485804316249662846405332567583555484537540017261821769618326067926955742342401838224775299408008672850371006121728757201783393295750105327557204503197443678338594400591403436469537363002533116716250596886014551152173127339733536399406497849014801756095263867614825264518691203149138648932295922848630001185715926409090036517655222220879076973489915844817746321497987398176384300836901879028084002283188183563936764402842757887686486889641829387959737379077574223677476115562161555586302349232398470678636929960453787744022164950800791667248040358497227962444300670914011757545212069919455731443084490846519114154327658002776831347155449062442988435423844230101731487019328079355698518744550950512433283066198731470628344740979457149923862665865458656377069853334702824806499856359413995817118219663612254995481298436443365458525091554723975059988689347263007587423144803122130614868484201396917678934924449209518366271987618094130390955362915692836404090535445828757276017141493583182206363918033678487678084127922390071259309725068349301626783709923449896236095029987349124598773736054401628374041540000555222485527290056050165942909762584973008834384264225738989076187876589864811452941543101976926445729433258902473159726269821271489138295068271401504963355914683398271645957681360016903010469693188227880262746854469298244397341162803023316168795790959560808501878827932834131053403267360215357251816149917465274915863843590604669212262325542595747114418724943934000698979653093002815943693066360990459825002566479977289738509112808686609342876473224349426716622128879843246844963564723456469419627504778937349523399584630750943824195750571932644335623751636590016655322697552528919747666899664147242018145111010383320071109836890207857142843039005645934823350992472979565801709743689382440749220418884745096450763193077692978290354479934773822453175777799201247475859978023135134198004709149435367792337004474913654810253776402485770111894485491208731359543368625085657599627475771089139783926055879010966779952201919863252307117588304039049728945490713473341914742626371196863177794835591766045354395090393421513525785819764295922833069403628144265828484120557962944685556974983242810296807253876179363495134034305897578360666429665941072037416618175917945904258685860177908377439490007020823459450142790335695570607715473466240801443664348162928982531454076200049807480186951579592595080849123161364838962025123299259755044807886653998183567558017446451182240055520444965623121103734000990946919851812749938799834497250239511968787353317898334713685123014068695639074173663551019672928069519893759213121251035595488269833010022965116782602450262324408834603450924491366025230594688366495283278982508626034256078245840656304670399192319415157018046969267591705173411570666545256451552647457192621337121047098125705548700365275798676130141687598302001304052110427103436393960412776137389609297774178957514028905558459328566756697370692847468780371701650653785194636566412641057493833041535312326769019646500941169089480159045612287136761145942885966577955066702221002112354577600257149784211298136826594042125757483139765372414463863775667509718443179037363456781929477187951524660857099518784370751551798832321014505471228736051307837965965195517331654514147207173376205064110346592593125912518523127280358489374166558662493633423354103270992902011094045631202638900576156096064332843430544429604007085801169336770852584583586014582840753097421024607816032164917213716351254151643142367100872942819223103418981747223566481433413958938995140327643473517627518062229075095926145851479465532373683950578853101210539223758040792328896363121086326817507149145533771432406943519727343726889906644715934178970480175062735627054109949205683426510447028375102100005884787221289135595923646993439501496967389235523295724132016628924667803787361165492033513648533041503495748627803763723453073370376834075206297816126853310928942646813425064163909683386224998320846711534628139265386215425439974488039718175801786317913135255129656120037372712005383334656324154070233805740471147009284108483177522223978686871536463743713773938906682527982357164473838752448038157242737763450799664342420383745162797784862764458687840366812912806545560791704257194245018296258338290966102073025411526247021408911329067399400758238126415554663707371259795846443976171031914900477678597464265347081058569438016545793572782902931344419121815740799625230788146870702018597712149364589532174089221191668610572472793986350692897924354676998579886533326302377207508137082006697888260949120014106836609605157628354975919872338266384278064899655864847659679727555322326588707544965183511116567598279944395610204411001758198364543268427103577860126802329398675916371755813620863213272252266096318119421579303328916230964356661954480203230001424382145986419721680995620522973281854069019701229815373474899103279041979417968597046482517327648561413537720351413090744035547765136712815258399072790722293346219786407145697037495189555177176967316921630244412773531536345481440062224660057535746574113935509357095363804560869624671091884331937243755044452108973475317796163884375328521417024471369930900346718625195169262344250192449777657232422754328636431309667339987479594253142688801671806476100124171633866797624312544592065625545496236729925398814892527516367274276320760955327274883471482461129406552813948848133398037893874095846919100392224400744840719615824169895000318121576256789090642766012211150006603833328424065448643698074841631884768903526391750024902010558624980554533355769341870770812502290658528486242617373031684358512542196694720352673212283089398103949397508451398542480541547800111318801701167735245182638797602773502384855460719946890770807808969514824719491998891640691488471762876591860762481509804663793028015725450947849278211982087877884999490319459697036220634726022727558785964100980902690144877978859534193313783201904203643007724784187073346471637240550832504972525425818013748780018010058706399703980027986005858926709467640241724168633132408315670378394351186130126930325324663707329585309104883348058452311889202554721809709741646269770913860409913689853991059597713284130898931386008079643912872342161090569727370494972592054720158597073407490098664739182163846175634227973668448093093266427062654065519252857254544857502861546334265770827820141706690252394952309201670984852294344311790696204157385143357491273485925031048049622438583386486794671751314774635723288534748510064007080419911982590002023450934295847318899535113801856186030687011683079971724644527067064584249550924490658801140815747523624113500956795005636109845992526611795397127112267666568663190488785031257523915071237373411956767863535677411684271768587510661396418231154255373777279252063102651598083901304033038044945067882033024299352999912722921050021703939942867622873630740547331144540579769210032460359488399142605559612820881981366078929242884136884918080407871739089591825971081537563963071192382155078254559617134084106951908640974294839955605626478925013365822013027206180953620749655116464663842264326660930163616809423555033199792574332354057976604106343450749295019029927014907120123515130152479914152231724257700405708652949181751646614126805678345267466959653785255921337976161656902138107007755718055198942662544514487732070752431212101336954540700202865809023440459929878137652866470231168484213263491608085491924017278288096781596076223466895259609282492950396382551523738624945254814649395967888010190274134562930501379348637002696529889957276683127922978556787692661084558135923914564564963539875509420080371313977254447101389259907773364940934967497181608396727490649479505126982864501120270309729510175107679696475491134303724231296333971472090509216491033322181917618977003214900420854709270497250727295711193627080394941336106540882556471342081611036890674861185817688467186684776207776671629698213239521619423921459134816978729905841231366239856385019971133761994625171453643158866851502589657597502040075813195346605655842834769069701931388155540044053929891136888937670694119210051050964374410828518053042668230153495680891940475915059985181686908245185329397633084259349392149648535769539553252012721808722388470558972249329708326899207824308889814093915580529066559691781990034215469343136931020783293257682429151613762769362671120101882427072126202220846247942763887039242699116253691258346524873262363678791401744301475805735627002193894011416047669294810951962175790781460621423296370073446103220241084582938558448301323646895285279603542517978535233765066584303477822184705270782069126450499992530650559460059365869981747310423658961617207584277150821094950577736574052517105508003984657071182475717988548466288611198451195299566013833061578815204813483508016013177995987965428149404392063351899568139865995252381068313531006446439291775567852449895035917481806461171291087350507310235501910693417666872815925279114095851441878335746034432332427970449904194198725464548920408079510645204725292217751393569305954125003640278346227943934351237235579433218880398944862126227151728175460913374609577852681891529963655876362784356473896298011828270618466300607043815307375549599201685071843512172681425307775911501392340552572050694413514198911456800872513660305126966236760853040449368279583825013176367446830367135913900019372594531943758077133342879156405868886350139604963501923305769736141406091444776986442682677397579936027865961496798903715981267212380374371966750353506205659391983234946567079731941488311883808787848119263953919445652750509368618270799381376604560040766465641573882580936880378275885367383036346544424919853304483962767222981663474439161177654075807500330743221791656275727888536342874006528761296705508857251746679502960930477056597354814761887710061488738916641461157092553455674237739518780534534407650198038181533055435723031378085087004304796096834892574793422251944662985576010285109069281913354695759903836065911658597482586210931838405915526694505217264981309345423298312948889016462085433340618508981041382577749026338317612775168772370185182003233775357957063820650183570399507008680851850767523859210453597863248815679759610894634140661721461717144074644822544588601548692849067326897570208670741473170329354196778919412020113209759742241339041066121629985014093769231868366262054924482647470604777787240118161241747367087182945092339035743351600314323376966340022578231334493844282737646531575387964920059488943632632914442101080936917487412933990128127267872640597402805637263409725912213441479655829279961708826191434334536709468228388988348663162517303639275247955935177103047435001690724419376146336191744369086097431343621687041127515119313735230211526383266228823302182855677268973701226009982333277516100858380240265963952099515536178449863851145439039027811526450213540654063300430336477835921234807950392140357675688017904683823403914951279113424082850704079446613885033338041871023733526834365026844428369635884961259684375702799479432123878853521986030320122552728810684294240599357900592535019843400889048611169077642563609007990043079770196571940491530272758738664586985129712967117786551873235060416496506071921334754595743694641592807395921428118790694977997813596455505804881769618289000200955046684083650079321551677154877652729060714098900968612915079861978557146070281892879483219007832118967459223237118974853961128583510488162272432663762465047745334558904067211815233996351332676412280714556051776510211701822952057886721171053382341015558964011678574579916943149154248412302422733916013037829433947455647577230641397058205720080535707561635196463270233258623651578036176317464293433253692102939446492614371254777478935748406143745917185727941697169885561819879343691798661504919381603207194336079689187940761304167312505070229412845650583522716632163715732194043560152846588534822861166344976478109207362789641218610732136514841388483894901827599617564399702894253520499818311241871354512349444306147481557295848197819926825686012073855816887458087625155585195752316548498433981686283623248368702211995810415542865783140776119359146996170627288431149200076338884035190489212303473318672852405682877905479458438516748687301629254386006434459657524249766035780018895190284874462526314935585581248940780606278932201020198957767842607809671778125938509530645586555479463571812320129463886376831754673409291140983373264152268435361976736982485269554012670870925285753785325355258395296776441815019709276314818319982584784450175414714037560890726505395207487783275617453404878799962223934358687417110941996496276732194526847113045547353080268007990710096966183291708293156623685782574819127478110262576411917924258403422225678404771699422188084671021627975185380496285276162026279713222063014495146331751115337400628712743017602702183649744787791440625650290186778444877204125556961704651468822715718158221138788467454479875300710262762470561460409168938836383498995297586514173791134647529819939223882952585098025520749015980325423982184060250420534187300230569363414718152500008421303563868456957357033668974140648029659249136230215121077441162600251938679014355909967217303124705123097422869233177345309590204125633119931580588013317023360442055222885477863963175197502129540038267765798096358134277674860813255068310117007894995045589080456641384112097150802117893589960414367295433852505668216001019536497325113444225161472318237631678500449683713514820694461772286609374779011015829326355730257400497942499989107872332535885149133366426939562537410178573808163094151605858437168239035849063137933221798945592447914518873109735319546439756362955993476488863817454964877900738197412167117183378154963231693863755998757754408707012744410168934060901460347311975762247246724127417232548078120014000511063429758071860985873882270314293585977626348187216877301462115773738606929761960335186552358098924471813718879006923986316406075556679736690653552012162075228084905452840745075604266394764364961145381428493077650731576559021656603160505757991569379457458133157811945038915105921636430323527192018055981618842011934580732881361352561451362649727703653137305761114068181630193012618042311434269781049611792614444304607271850172544126041202873492025176334599575345199914369353611219910820161705911487645647730306518447279430927585134403247059294857629850286315154016090993804680812236789909401126339358624524203836650157386675973200459605135463100850070268905067709507824938496706625932607260519391951890080792792825337821908363850227253013537689387305445404005611986469481539599437831132908196766282642352203951530303639869697963598947710850809262000312665553567960563355139390302806972310599859920626504612841280401372559787530562156802162824056204889388012217047822382818863089419899354928552283425011612744728405105145518966588652137632883922528535014174803572815315236585086417543154705753260497035316539810848657228485815531385582136297904041735025949898921265091049518264834832866268242697047522735675663021725936705029362841514828470600056887364599167812682206432692056570746674761413128724399272658719692869240752724725973998007526755477501213690693586967327193188465217623588248242132840740289822404982673852173032278417463253860725332237492779524833130498184281023882551924831895069214667006695159136207182958693684233569111444908265199184564754103880884838617351284082011678705583720019952216129912306641493745876938248352014749199367664810666331606436744412496332213647686561922644539310918772238048378537147523002602029305274561341836535195427364707126251970650416329668445160364478902594942048092073303807709055357313511481581815906422305411225764501217572402877147625521987416738444406858235122665689689703155170095759359137170143606587435072680090496005900050345579164943664171554878826898848850611261497738024762413634102688693049958156558375432413119573509417200328274837503149118507023242258116453887058351053372138480055649817237824051392457789801404991801238343580016448591011266670090088393743046142214930962871463160123152027814011122647777455993147090262647603891419530169471710144653874175762539547704593507360540050952092868242808533781782197242324958344272264420063925419929088279645630295528314368071770142142723790259859211315511731372346693861825288870373790784679284705730440739147019185656902368721340352312184404076972733276106495310649347157337475677602074414083398617953458863477931959112620937850108029826018961460648270728394177111808798256606960209758563465399229450821252002742900147391715084897107932552755468484262675726696375878556023758455068424814262177365488579423161379607241652315924760667789809637155421957908617881588190020053818675398335161905162354979751486816797566951231527622693130522773290399996885158164956780708646864735465835163298696033134895596566804689593523894615414824302745445649674290455728369709259511531825374323767705465033800663430551731122328310854127838574760705980433261703902791660280318835551972821091751133609246686592547959220276427214229512964181455701944331584454101698792067229494654770086260384340479467426866766499315172378796208568633337214816296498078149238073028603983554633073129520814591517346600487171336829895633704468281000618735763435635932002207611538209845628315912187110394831967939703744095391563606529353039673597652365264476655289445454224946749669329926643552930643957733422415929275122237359411181972782403505572206016065621372639886281155779201196694045336692743399241346398620567462909287280431045157434988180383343532618338882230671107197087424774664616283998095505944994107417723527820668636186276397113375224992519058239289942909310877918074032326671740629608172608029058641006281125427578352494773126806741161164278759448083619643916388203080656330513859478938536595138908961190723911084035780988992214040091355752932444660323258393017656779258980541217459478041247152474555127564013077064205721656829332858856714331900660068418687825937636494544414068371604379909095927848644172213352633388725791510085556262537237354405650154876052776391076204560481956774171690868052537501941612976108755625274707807301037867157760502146142236344417483258684291636749144682966609855717234840763361612718550566455940614777492729029539223726252781053681514909013672170992580578062481568189050642649467578128202291853859110139048263465820292947453505411907537722646056337886450322242037192273193491117991065791271858588264067793563382307766615551488902456953688437937509414918474899730910963794287732523766166376826619678306477524489100560997974951300508056478831778095866971707550866287447582232816870368306994530340371946479147337636412983983532507074477734606314245280684156138224099309554734416715426708004767443478562449106497801223250765689725618610690795721416157687459022808812129739526562010405571834180749083833898444428611433839608918401643527963696760469318865098454142060929371637407850647520263959100622433059529320126409914572944915030167269723833105857766642698092903407052533782319822805260658867741573923065115341626578167913369320407175029068090872059957122481210932365946637783800924935122628234838420862485081618240069081211159401897067365900708100986729320849223561832135088953024568216030934649505580179603150300154661585018933564553354470380252665509585738406146929808703889474290600519651295945610798942848093383379359511741347996067160631928233892704515498069763227767641752113921504338216831399464747410910626488237283964723097981451142706588074334033914773235021772770869760738305383904553634990509189252734994641667505814072981677963195418817662867193005828467543242770140255671279196537844889173826577326639659972178101717734467300953148163985000761572850276783542794360216977579278472708892564913041098323505408972325339775287613831930969353967185275620332248978216374146148197727610038290893227748792747557967081359885013490673740881104207543760799235757940151935707862641731413155939406881329455989890589820786465514764024346931115286293303331306612799624911975553043281268199077865847433011817775746149616217845296434827308671034446359791240123586389410524595938346007608852995691242891432731380908776947957456914507044377283004995222588540614189964489589201260441188932715480825895832810967948063121307446877315494679380848457173228578840202899498247624305722698439040296154266124094089816685655937210023566711227283326641181202495510723917603510565793338866153104597943975913086581526487376557898395237093630956001530995777591789484523381529692063798094523274699406175358458612285027933381184566900283479483827132809869819409433375389990512526713050474769418977941653463961913709850828941484986502969159640825780808289641979140626726878978570850790349854777704989019695494186216801364574306888775483972020332800845012918592208110128454735931263175208358928090999558133315131230611621432382685430845697004557924156350847170873672020131642550253181377671530654314432472537290930504005909995258814945338764442816298846747690819766128636830273173171305069300683288649006304313538856454898182775317020723541429383254494327410301409645538044998332875651245015066629821991995215044173988228223823038008792819241087949597931156040897661894726438619127145553023654384677332924882846190547727873917963256848021149899682321261332439723981071345661989094971658704078459812131862601657871060548781902107795892300624404518729132109663473286286733388668469732495315111411990748816803396698097177730613651176060240440608038770717566958145306811059326507985121246452552889206466090048541168089171907638163154693223913298164689490174655892535354892741543221262090703558299781790642340054128610754755768620330627934330015779272244008144308768691912002160135416108721349694351419999092441827659519399890576035796415416751359016762621086697055023786937189527273335454292639710748448480174418911635287462756458121180824120304631419028000445027715130944698590488579050448099965337607556347857955628831489704481719291591294244825405607287524457433142830337096063254586692371610654816006546821677618272704220361155543321067501896140427622830571019426573118180546675622853378824183976372071222352872232460848554060925696880274171371698774892021386265873985537345404430594291199997350995190794694375838616589475594069886102178478831949387750455047889114824472101778996013976694377840296070728382673328464184135738839068637326334696657220711347103226689330395639262645653796411330284239586404418146454626034053469575778327961911956027212248087449141585443848112480501237648764942690456451471514138021332326779268237948440761486433672243466389607212711510491108388994714926075586311297493046257386323002082470550697613718102047152698332511103060114157642004192350349869439783326455180164777852683700545527504567893868358927467267772257989059138996595058614934180116375842097078150047666646477362153475795037317874584255450945151464213161524113081895376882536580366703943908239327700293031258831278239541953602494695375679427818144040933235327729539102780794886926805274916478304081042879259122646732369894659683309788609373148216782463902886406953351128427175197413935440343294027519167476183118397313692780244384655793320166943823447002357425410918241962878158558201755459189592350154168340487511088755885008755315242230480111400140237641117495755404684003921168680206844817167809694488995370448964707734837743148014536061689736521307196699638324221021228459346558863693717360756227073521678829596962408731435449271412658702206878970740990782393200141764916280675224264216022255318139072760342854072328561156530556893796535606958318070080986803578895922630621404607061540118275711609564540635859986781365424591122653553913795189170918429559367673029771646230405115221911524931714135634322333219837991287533980375774694255410221003382534595298460595200041323378527755894802358626965643428366702922997093159619778195700816090551489035289826958449039337135848743969975694509463016416956195293355860780125032422367265280548392252321967826795107303561015697186666491769641713830296076901962225682920022022263601764169351508986999410609173824446697873745488477903401616948251747622054541885088534980254902869430125898168723137345789771928438607402522836006474795806986647705442571415087753364950810290218611520895203007748920254199218651445619646778903093275822169318729726502730003805676204722056568338192907532649123199336594818296704696905939246262354650576433303010245730601703678488127868888287230988191386546531720108005589434832845285507383766876320201584915279219990821006952423759018580734111842030302308041515119563558634672516142837125704143883410358348059254908102550942789967231154272783662603555397570219162706668276856619220533623916686069595269030333903375587714746741321320941098532348996498124778947022091012244566804276666219239112247125475813614714849722249966411125193377231033531693665171371040221659471178808219450243373035791065524674822928816877311650773847070375984231865981635519097025781070962794774388739535406248254986778792989097989593796126529925001176435306898204798189499915840797712630886741055848767039042032002904246499585355612239081236982573291200179232433013914799679183043603535431304986113264443600432051113514003251026438081285980728619284019497886853164234835953622533470069405567439115998124617589096533733947569752937194469038461885559647733374208152675954837050973537201373870690705862702000874001771950821527105799845113818778994178864174764613620155098473929712005843300852743214300733227974249412614317410607556287826347051907655495885616521051326432957468903967390437729142426173789981760727919531510548597549111552404314008659170443132428254295680805317970267557318703408478425855851450909532129454389076597973156650964565918802535855423630482526068930271419184189461089734544174381409810482039687419705528466947672390514731143036176032095594311976035853650659505306966815824644566784070691759096905656711870672373613389674504632651096192770090523525591243522781143841184237394667655153474554753327070179743642268210161566363848675050745169287999892165548268625857700293495647264242829102326812600275709045502982623162763069716363386170338385905088379877517883785796180201678481922215636372633359864543471328725246903725566305331745859361953546771847404279005079412199188653107082763686049957740100449065558846486004753382876513412602232248281562912120239899713570328858152888543847004236664779850902474998188290452365318219592252456239964492261200344800523611740505189664735386409731344151240423825430618114044582583715509472018188489567053411008376584049683055832049606838463494560815371831019711469907123575091454518259284447478554269629134221609977054661494991483446989255463452123060458142024163067307034694541679382990645244358690337534573565772359795490702168910900599196999086721769592551801893526582968425331437221019307129380078074422247542498053748162905645025625947284376910020263004511479484395394191008206714926191156075101013540892557469523923486434078937181413974368732748975275300618481557658923461791126287880225937948898773775793653100227315801938575392427830260360688517199869817842545283529368789940146046111035449767748651066743218284595208235989985522926365290273281824437849751586574600508687773133442000837237638612141220377972360704592724922882195892755808158089416656781772585998456673304344929103569461047986425976294996508081859767193218374923230809707619614807492080692827149633268872920444826005856075196439382487396917867994990662416584562770911341906476214872437235967350579377496890109016017139954583891403697617186403070660817014727547125474269163739438059588413462162591425904556242610329904629439746347198809074789074219550028024784119093794329720175596438614550070891223386906716272793881901344837394327130840440251399397209177324841482718983955428129237118871680749945487792644311981741793571091745497876747347955367530112687751950676297410961451648833485238574238725457982603362856235419115506092574767836287346269720965706909289400572837445505364004431014698244160466832706473474046525856536380715932041961386607809041089580065731051948491327584068209449986871820392667874607381176857453295458083871085575534580833355010903986668685209825261273244317759332154261807140813101132512635997476620422858097643331846059087360281635448831690342248890547359810415047533610560706388406758198976663846592537673210255512631521749960022597579006204499669151972485683146509055588807119113884333032381374372038018408475167965821683965150248502707076932138292620394712207940582894994460652636416310704908131399366593150232194682624988675360898819428405362040546362705776945947019555692702855750147108444033379830030334800419637826111053721554406737609955621418156281598655055194651518705764627750273979195711661457434269394113443230656902557555631402390641314819984868328040242996655714538169740642001525983671899490523742779155963381445624722963492763666112370079051993161864796909445741565180592712537653519977146150424388864357701471966538485168728551535967913506070752843627486284877192055020972471879404107350958998607141546879302104708255416206343281812502215076716491899866919896577941846710300188468635406603964492859303396520107426063352995660597375230791336411405132951926152909895549338203453277706103940363834379161757728418345244717883784556745051436978660930521705235860936878157291035638085149064144562181393556497495288097354619865960351574760454703893045911153995950855558053661516228305045489489483692809242487267459583398484775814991796426013234681062732800861901154434238679157649624389201229709119121844571213927929958189860825096053309984603651237386861737518232846586576931923296686598136494587489927093175108957961317491738613304343501157526478905381450473540901218339501350018787327972184015904241369492940334405516346704179071824204078486040225170595853662098298220774310822838051340391788174408567414508768900518719414324413733824332737596338421854234486714497523775417180295271161778025967368708566490405715786903997064634652879787200461473986485740672206500889970836542218001253427840472193329127572149267061995298638479187506081097334056298477146679844537337406975450363879579709229026807547083366946650668176901907644144710999592938024593057283651563131853289974648511505323381248782976648719941635851350789405158274220260361840060999317349741401301306103568460528600012320631394903957768390650333074049838746381489473208527614422853188527901838366208206239051282629589445985593985308725865386125457297761522133547034686709283555267974062200817179692543006450295374547417435548921305222076208726024642679300597051203782454727534504836192771683891704909285655584475722022385826300580191039135453368106543928803794409058473564027260867208264539966782557920306722292682832347878643933641934664052180538144398216516520679617859956732397910510704196185129350232612726436241268962523170415359508132819575141353469362077951634172083023634694809432584115308169497910528065897766681119112663813091585264803788742317175938423134245574735777940544817933579863689902358622474478656691094136143772788638075474949493053256508146834902109599194091497626444730514647444918313029424579204786420674757065098512211229027768016945712099205599834054120910631389259476194099682643701310095766486889985299973448521320603565029537143852560883034578896675076429663029656308901529173189184076149397381391112711196550618382638284932137219487296348151383169422569724319584674788215626314042933916250381513809605850006743900103854862926130510960068516160589890457355711899703476328130256672890395946907454306867607706914074207716628090760094480810878418396383906914848764871688158815996813592015727157519628194109213067538495550825149973885939939526698200359057139942705112819655268252193670132115391269034195913559183314299818708232453943525261917518364764377955932119685740092059713790956695629214859919813757532604244176843100993173939395666674102440237844471797046143267628453463889031673423861286080660034947893436400735322723886852656956410692652463999888489079053773491805341469536833791854874982581084120289277373030632300322341900108772799786607834111590615283270534002548833250396274423383568799559469631110662827263442802143323335549408147372700438052911622101097075633077694414915622411049679338843123388147475495529509999952925198902940777045575348570852634748597528792414405618266246872348922220075971165639210425269671711834232493760687898550460085276754358265808544424699060988323012948353900315295764979190782319419575846045924350383022974563164458798500284686640854421031671173249104445217952500723129706472296719785578547383788765752877757986054619426437234263993286454936739626929426762700919844823565127694476752267349582919173372566495230318835393102760798910505908202404846562243383700802593083029122774271895028361481361799052263520778424338512043938369418604442376377306878065586604325311549703908862247559824724865470910983791750024579330379709172280575549311142881313790088038756591606937293297190392363367784200609040084861120930489039930555072645118361800678693361115641195003381298128504778071214977421869086061284927474811351308822278021155309758730143012280195996251166480870302322615354174310484571963161584394697141061428474976107810088492558881029529788120298616025818125467235552502985695677740122243360860957716280575780201372893733042582291894506728393158650212064742253783564012503225675318603171273480775600078550321066089283955549438030314604752031324815741379912002175339210692303896408164364187594095026815945222883892624003154636864840989749252724455700224909564397417560440117920422326622939787119607729527731078888661564585956862815344026314639845638086852679590600888789740808793461897763257258237518092139538520039952655975106869851606438615023874968243202781169381076304998105547817344129915825388149202563553890608887225380496008319874483092413596418222591808384624605575782903604091263895627075586836465974592244525316304518743112994087662984273370219057948085774777190285103604395973982358773141315199807007576983568130736394517657863117310245996390850613502488695929146470484713196173750042222403441444788503729156248460210407837324467111174834258951916272999588555767284032534414885484510606415107362229177540139177228462763942658009989168087124077726963784296573506340090988892277603369489491203733550399315045075413625421512988793150582836904784341018345133811224319494126114718213730313416191176441761078692870070444500661613564506204776572991082546854201176351822571271629688248772900513099304183434670348235598749351048548218224993642030800747350653516827775618250776782178601220103795607712888782588803414640139739247599217289564079538884463367452371031533152816859879011323685886015871430294211623383245473734208952333726209554619385016049732919436011449877485345215434874479165692267264854440227841467721983812858166381832180110235633523606261324765182533404450671861681315971998981451573246533348626107689181048513388268034035164737007264622071426801742120070713564606621715208036972383033064762347030983456289815061176175085406464366146434796425283265694219220298545622348610943411258642022787690578820884826093231129698916170713432400423769420564292205975546520598532163252622920465477891792334884796516365485120384875981147355680021497238910819949248898568519837790058374023694331588891019681117075504420877196945458335705304836620518055858454989577074981049337862198783563582689837446750377579736143993431041273671046139926670337900235607006030866811278732694115446918488944909833299677180278579358075408956110037215607753794176015327421636116945481419309418387257436965702321878137223310304593318564760999930822883612687035317158803896583793638615763628341879857983059978369130579591560853251652487448903143931552167583379467150461873763252311067776761652447601585097834195950423965553096944290622106678561256022733856059818084044662494651761511096272302063597984220946800752706394721956266058404915806590883345964071487482613055018450190314318834917245864899211328333975034975107760595489823516598199828596717355645891268060748768340113659113113283668539858843066669064208030198987185212190126972618539006177438617399680784056606798151235609580254115139255088891549549919820425605535854028861330702577333900219687442078486499484921135060372667988937637882554466516778967634688785976246741196198735201237312909100418686409854754120656623003456118612386257556895786159751897563960944781247060068954025958724093280669363502811354804259796387040367787912200707422348462354320603655784784264660914603113293821630839900390665380057906941585715642250238313213300684392575362069326720324488383290533787189850811039271392200128444888464565230385319979357997638901552117597234988293561851270289690877769872335856754853769614642863751188466103654824787489334883395030109178512345048438981507059588785463328487304789776617938251352880090936631176939220196162052319624179236637701037081689669951234684386625003324165432168745876274719762980768757874369469766591987773351425568604696135354720888066721423391880771436066420423464022562254328516607790110945988169766560521391425921219627970167377057588622928868890284184474041398688183348709033830276575866280075205588852616214949682283476378189310224654145473292550994653884417898135901050670749383124295598370837421896310370051532749864389161005985078878774619212343760074456466561583116522248348176104896624177756533254033092019256266925914123155418425308599739541823150033839095592156150333597975953149823546619078922990254830977226860880904336302164556726457226136645293972717313068061136555651273505648361583458785845902215962428080911025900568934767988920688580589522341854743934701190268023581838907941207197223274010609976788521058747065170073646317000088654731797910827885573033347205273424176007532712552293571361131032729000799250414210340313788370848228327487928710234018355910300642858626796414408351275677255891859015049979776483067727736895819674973084730469515581336877942132108064727085360040481333455092697510827507153724940846652940164114985497234576266382447959974129537597272817406590109676759710725715004110192281512417564200841132065893048048914634343644505984538247678329187322886990921565142759291915217044240749251710338829730487742379070384080531987748304243022814485711611544197180772550258328301943011699806432365320879306181336525267907163148423968808480221228638486043181988204650618378613576952869827370143908613745904953469731928079525915684395565546470219532685197790145170762565401876689284260784866349299571238445903960887971215985270277659923930661617016399070262557231707949632450631170445149487153528934365708254588863781805064312599621474966263346845915540843731746365802906428729311094407219358339664870202788531356740116516129407173463115466888114469742950842790458976669207819831466991138365063857980500159175134144478998024472201872883799435958471526152792876370037130627570372827462117036814983812427551395348438055903094168945512364709305639287276373426171190853235214884076871326655433154199187995807535635804208334658514592430167763241186966997387934102052981479506672795859058730384512543211809165672581045595804995019324525096144050276732221506070730374889078419806117937405408063052239708838450233844135741484903638649815009730293774424600943151372491515872141370690954780901174139136968218997706857669830155256171897875611339323839095181588076334060185261922411827422869787387665821925010325545076949553164028456036291757489531908718769339432252543642138408920365794303217811549524653297006458579789290113121604913322714465384804311009558528441973228861383764230062591272693831248706387646533888089407686201280975107891751130990529208152245776830152667668423465297041678918883471309149913099523035194126231652837239122565540748600744905052507915288350739820600051706140773041524420984990179229727921679281379771059693930666316951976330076276665603539310167159066505805020297619668902876503006463258725310374609899469303590780056410244452552439282611374726339275893722062749155751178633972273446256698765872976629196451119787188182597817660629887770467826555198157670638318743067668346159467037889358141942254379321718887215257404889031143313776394534799049838978143620729631905848658989418883099645475984723154641893665080932404643812208958559519874117513976180048995541296052390275662196279600681581873731149812752033826777252392128031191344130055483194460688630455601176328788862914582922287526939147139423436391882332697507383647805229646990748760625015897006624690553993222522066000123635802473507928829106624498127883340799483593941012882642017757326703522455470782243114526493026581833078260921193439450068093551001599748705485920770186290768816317980635028453556078478770464165735347985144785481579881645486377715670340948420975099416103049107928681763176834870300144441726798771005837494759615201025448575532026762815950886571170579149474701650930708157348960897208456161443747738715637608038183349444805506518341695934501344091392658041949476057314923960673696089225632857320689491964348379694474979532768505949012242122057318662498347579902340599102867242578276446647441836080133173224850046085300521308549231871966271350385551946385440938377670330818216241625814363614329941243748465531820694232920212214482032188546366824478674878203157209868529764302036989605319537838179984438484725070704151293799033288015522063932179814196101637209530789810275074441395757617148877033139105141698078910187914306217319212708402502332027371686307860360112140587099996891433119213636413699354868840932506003303285420555270658843909124324686080689981604542987900771588678580182762191079528192964183541867572608772508988734600586263667884210217127646169702494767448693810815394910035430522577713031759570410214943944563277937154991864553236182229472899824705446503169517990121446303805682865478161036004727044870823646078028338980535812915269028245268383147142727571293893698766290240224479624353707026607968713131730269022774064108143141811033045049685892264254799923871753433023153940757926172661630204219178009911667309032492486386909540435111302538744887539360508658526371593303463138900603939887128037131760455876102720830479390386787347183996898608745505466512187516115524780603367604576383054682414530948782353305333250270594130756395370586715469095782816844297512183601663835519147207778204619396676569664992403804006967973905249051485654912659416294541004843120132864738902825814036819785679105303334468220034090702108366378604865889815180084675282000794543297972833854033213441910179801441537450255871508446635955074202640262174954491977050318375981238548522163535662950188880299350723747172782778153978083734875630415680838754971425898789631154874571902341158349349053869037596790396061675845061127053853377057725940486663489211485391510049178783095843361164631740471957951070458240669481033342379691870308612292929800176336680063397787411275198400447534786188765635178722196997146626924836924165872157022752400853066428708517238417619133864593087166984695394861037451040925380402489427027095900220244266822454559210281310427010307795605646283513258414329990190681236253210688754932030834429784543577451052842777195693716211324527816355950009538052044082117723186376735523523334129606811154964795767011648863853753962614804576314494496212217250118393657265710752145141111612665244520105168630997864272034142045353517283766250377944284626050406720995932831602755033582741260953072450146095475096794589380509892947342648748701806007037391374792269265444421661352672717073248179581006221047365506322747224516662139016320991409259667768029981388329801812026621464961915997676187294027063760350468778040232553858641979361046520373644151345463744258602894438221546361914872018016541887285012825293734308683298634550884431016902641378885639200033118351226817099610053022482751399562195740390311377547549252277735839104365147397352265398821301820277843240312320448083984286355565614174605366852260823762003089979389190409076278724238331365699338648398836842533158343678093481564285899135390328217525865524347843955663953813986174965254958045341313633320216691731994730983587307325964630936363387623789054160249881351235106311738664950924719864047167868279523557385152944973331354679483822023183000959435978260126051859363132059608178094063852013573541877966619252603095010984719925295659233496432121325771128786985759113714905962131926582014208283150953012377704256594794405309835353100369285209002771712437571139583814097362713534062990681197261357148106108852987289113602402789610469298795180385668440019069911468022507573895505703024792555484533498036800379909949826890430263115235006078093438525883877801499271088396596824360148607494114358530354723882056291807741614769669922616524964264783629116312797127799244173043225149422743260009975754686191459680705949119709427073838837452266129635122378558674054435393146591629105985192718136231000065384684989743416951371773820025259494323064661914072610994118393888913328476571580618575078158603063850933556841641106246407954087284159166703483148221232234104002534767515553689423171849300853690947738778223044447688079131139681794553073923014227147330691774668503769792726351907800839979057731164812063057134865665619492458313502502220445070726347845927324956661827626826572405405244903730299489277450164828712977095479923551868454347962640169070382641084119603707960821117156882616526321768331050602468629118705936651221899124408219521574996109216237481253968892386272412075486798701301361238949868616387126942550730769110686742638705180531276751776991146386052216602167919796039222442002400218349167484096395397878131301727876932302053985949492581189067443028701279035140996915111726449777751783781440068871869963566970197045078871497517713949459223605604752826204236690834810908418724805766830277768413268367338347106935296611629727464621237386955230585556950127292756530673130474736754099989186067755281630129977333377559725887057111175417102597710365667022060239192034679886548910301334564713668897561867727214283267371716506470121961461953964480057659113353590329436989188902930002300152971973153484343275494266559376853674951425732820093204310622782673552998250048416370932066416492527118979467249163601731702950276673764411535579067852768764289433305515802286184295512353803644196038037180788289775391021732722997180533940911845407623606168797443965624621927062279878412897087971579440817666963497127396871192105488923449565536246069347311036154371317260536999014947397411857713439360463295391217148417827022103475562637523824659465844501749257374537054632699798196409567729145945577411986118062276914232922254537802574847172840918835524998199803712641429297046226277462149022065275627255621119396186722084229763172361565187103407597172027266850554012069678114536132308277465634603428287025534567279772807893266397855187451450814471334071768455995392760968227625612422498532768889712602061494884791845939704850716700329049558937933395109010959518763794934412211907867970126954304524872958131610642950376610433175309579238601170243919785222630030055657169244747204773199516216873875934856180198953733720548999761199345045349528869395691777266984314359871354502105976127608867616187355524734076906797829439521451258918118697290363702397061215019276270197163719742333162457769778841264412904572787863298716015670526438347859055117925059136822324131805212846745040485073560540084624201947402395053248109961041466687332108740098360336802344705079584330595312503210174301615875818177856100242577447830147443058935789425151660882868662235169062249419489022298464472606699276490566167610024719673931501017816783033848972187531888920612466382159386683171796448006625470842079362496678653767150349612077320560797399611704057728941362997667586361605019931225741319745014060090909939301661265560329557518128136462813514466743316841083986274537972601730619836605448701454835646658339051392657818257174954219015891843152230452181366647189187364456965236585882405722026253218186136447995815969738920355217026938432722972112399197560903455286686799008463889036002766184586224444134936866180030316707937297640115781345845643292652620022448259986551574734704493066178236968374619789550439532841609856517228884608529076285839734041587243023818197295507953096437951623014377575490438338329069053348582616662477659291196620784632424511573208399611872427650570053274230535625826325444922122661486073925536127043673792631778675044080922824332109237704570340250905559747866618914508556326686077751974036535517430104971469526556259360642606534903326912774069606075322129911695324084810849408870058397760502665276149453035532013736825057552649362519047490210631546664309835959221978992839760614391381970607099659939593099819295978276585558212648505955507893146529965866327946401710424679346143345608540357086704227565141524286683930164634107522598490050314230931209464611354666927372021546384987886674244988134539378204280254999762528705814603693709713901831887038653508308630156396840570387372852890483387974149906514770959575175156405262582085341290791639964083484503220871816569547388199502029092608978638923769751785690491357971401666319815919793538111150526209118698801980011403033226669835213038677270306404120287499769701554437680199582155704595827235477409468707083901764455295054001052702103699410477489040310830614751645026961322936703993833391480068448787711878938327606976251333907054279450626034648482414159022494950716392977215821275003416068968303323789122120755585484893228596378563360467479886286940728058249524405252593269702933366320892407839001278029667729641626182613723246063352114689511233691049433373107708051929717894731288779568245312684584708497362246107418313767264496868267647396914942226473694894464776751570305428638852085955489736654497500406644273558398794337087665097199922085575582629348011313952886201553981481227159907612477474990312082071878399209923523734847147226804237457668568625821494328220681123767722327756892861195960040942070172465127796502682412747911227257772806350252511854478234203563664603105266261737055687480777398990640578013439713782203412174993628322772595448054411225599725151402211201157786940712413477621177493867473670226807446143949480561726040024525444017612300388933115866330602587734783427496238311243392966418578393004078223287579133600105649573517874872045025947394962832480026289097258586235150909883188961302067886155591250090789763123913585790545408447469422038506387460726358546761299893367460384946968470509739081947862519596387335641672489163284381535780708791362946090198084630045769896740576163154524082201264976283044140663058310893796274689067160329911345987361200387753582674222035672383282010210224739284905896366145497354145491692894633985652376396929534377293987403313408198748497595784145746835309361579872529526215720368729200671702830216643157529264850215944108602742368199863482980583007742155118615052984841159131513738210890439702070047793931620319006528225517302425485435338166400510527233514719127506986468946950104047820764780356649153014771498181579031111128015508258390836445265992710585999879065378681315196670274536849540703420968712685113275430756808415428883283847901125570855395656401652821348138035279977814830997837348827651942089969448388657418615172298508872409485875623414374425432753565818888250071585149500417242603607483499863750196217715311056656092092273011802950733596657111585107292673973357887909565287995895269748498006354886880445818416423334497075259091441709531453208447706711462289887342702140378160449516777074118151121566311732995434368098672380970140580383898495717145290796952073453669669175517621701448957282397805402846027743880820687877639498716742880072003126189318137678697172824418421734884508285016207126822630161667627268323711088974061337294319131156539012514449103935379722618033370365492940228674876588163615958757032062989644922304680140807606457500655327409627045545504744417726821466757152259737469449279006442429380874199103067932681968792609934847185918656297523707703771808913888384585157978906170471800995960015049052203575623170459538502807104489626587549845890550349722813667198876082820650375075032818781029995907976699772615391542312634704184649694788949967115361928889595027951388825449880512331565979046705352547495760480550646646094818933030488688953404913157357281435487570112644399948008898137095375721159044363688967621269235927104152170459830606796086839657209324477960081252415194992210059523140447769782000455877576551663937085289455055530908843533232310354121565327279645820755217699096253874394503126057275276637224205262517770313296798896841451725727321662351981983169010470402454270588574924713327744816188186876125340310950756628575431160424841773576882043564083489871377178380928756022065054969340305415887097188375222226512173522357428704427122612490422628003531707861832634303873516833863380352882775246546029292938131715229967576095730461601635197439297550173243237206441564202753795892883291383594054531233143287792926005471138118892537770265829619469806432350287050866196868932366601864242399673344959151359484962482633370089742081675448301731432006138202754306895415359337347582430198677827286839383757661716324933190802710500558046696844411835269158268069054178849991964883849489515335534500244306788049535032048332811759312451610072248857744115617845819355337386826545690183003526397839582317750865245426376430412730744091628296389004204093885072731479722293707529785189429252191967728852754542779911224292112949146630655293007915040190501122448598936835534784215931024322161850088018898927340959749269952823047203695576316028822919785031742043024405384262284232074590618506142580243529301410042179533854944121957665812669782010578431648347347133696449626007620718386393022093410554012041082438707654092605081510291580040409009608650404493274032332546659318533421139286841625223356683995266138764376259986747683331647959456222639457617370739856722466408886987521723617788661059541028333976303518969562456384188633592717199527940494925370096878007346818610871178306806865130952971154678995989627522233260217969692901394760102338096233541634153620196020101471322463729701700535289303677220776676960841237374176221693880653559960571837427767398327458684190460499054146702467639216134773530142143870173315926360015670237727794743699151097973890113037212658265466404505386882512866216990830404094785595501553752331014467773001398648232297029300400501976566530607362054242591007836550937762647744807428538039215428107360331634863061437518609167152523891858094114819187928414067039279597336741205869878300025429708905894620821698278364064918199459096794372802675154581696116752748156666065204008590484757137859009328175136707344308742673619342739345212738285809412565844333251330242251516859062008970841422224882614026907891191838862008001725880684180753292336047806045342962031197138992071958188824901099452776314363023220296085745532787477134532352228629263840445578912144710616367030376179125095481883102460193448426902231803552463542237869850381735740361096368187593719651367180952844660821427232439947122516838474083791902586314390685991999336348788532682150512756249410363598064414637402426796186385000215436581908433837796801503551450907886685169912941288608228018291885355962787912431348648048324464795305594894039855479572493270338993644884701432862842782425475287886069657081426598320949647682518055920459262742073956445977776195612356233761016597322239431814665584351471336545260617380638461669921874990586547094930924049012516921851574799331013152269541392807888673335852796475634660132038671755558151815640358617297948751031492947886985702996957662881332201958170570115772665421737156214172654317860624916806391710018835082304333997720266698588817316855244455426760767370031034112511618698712607424097617662172807998533480360044259889111110065325409284339558758798777216259016271352253547503724347623219487076184589762799623099929074634676402592364622137423280225661819525881613087838884571110603146825889643580957419795957005474461085946631154634945786968801688155283879253284637109277313780289982601891929783351831711569177857888093426766701799259214124167815793862796779970115535565306398270848234027293541087747132626726302426724322809400586550002198454738468769979253564835708873629447486556532070472468634818572977177553799889027792701417217578499256988995103410677985799623553276218277853567977448839025502553531656511295405507295968763393365300293345723868540970488496504440097376026703301856945972221714401288025283857858391498666540331761800107087071619426316782723674379833168458407982617410850176140732319782834869034699056336461015618073477494277761495188028708648658976518434425614641591704392846814953428604669685460032660109419148679577107203458050055008701118671463384787529401026956783804597149110290027572953592327892371936631101569412405207457084804119799058251236228250270636503843839034721596428029734916384603939347154663986937196561362645206967212929348419106685711887937331250852510757143881491080525680517856257104344572162237713301861197727942427686944115688295318520088301045268206501127442345822562282845293463397706979945441606814265680018237899470311563417610813324687962701578635516570921775161233964061454138649203255469905469378541253417652984367014533457933120181355516935710740520792960118416205837767406789297864122280092643818313645891841734359364554497852619130344025553236936418498279302585039339131063960934190732995754747864833724204560646644711736271335553490328504863947235566313316821706373654544592447725416861407407530660948453248431716869322268953499928310159176956267851964094769242021158181214461977798518703801485728689828318798937842426807283585338884155292820457404188636894735158731539513814227656960942271580562626729541031708816543737533885520485025596884050248600589507533054417745759293019719290541352139743881084357534679996227044824443408148728361298026723119922068109055133477703405603126995911142826195080411866313232789334241202168212563537605508053286401102282814227330737043668138783495592442229672871423174014585971747452844051335684213396676021564375663034933735499037236536146233362959433636428821791313714362533381644239477885352109748983546499048995488890885249059406303534563768289984019178011958508019470393756596365631145069214400606463655945792594642864360381151756797988494920271819279325651015437681105858824077349629032494469850882809843108820322575744819357316170357830073156768007770010170461758687049315618992202656493018964016989584571888945011133472843096614112150528859265575902259394825186588576371396582431183769198706189005926584557029906080962337481355813377946127614752632472422331777661519974132702807960351553663523678724069268592045365802124291887465151809478792527751734937846514026438888627051665600938532558637726042919067068476413962470408588825956205102877719640953965957879866467028343557557504289320750513041719824041754980957197638002048750271216918358837856818344293629028175200380390627857501119364893326210001529701266977407293911526753293402025287556468773937555576952547889248545424792329878298738415942897571349483457460658292082091870869935214286567875597602437878550661577812768741874360256382939643718985915244110507730361631734578688127692310594076654488389145802539365233735082130193550064517978881970775818552392143123800248967505029715383433079959083665750320859337369760316742623563556987878509011808567428427579327430557561819304408766418000823074260193665074086643482133626954085077789050656035038032986511352684885903414812224872076285635201158827426704254781696796295224454494674477684903852794203232277681951590229024486117621814987382704312608753667743916056218987642820660053519809063506804636402483195016532120279017166928144611062577233195476590155612990594971117773610771324428919384347566733374538305509915115390814536250009547583672311367975764782183994084671982189327336606495410544716982069288036694861517659755952180855598126451696578628979797744786905833911742011141582615399204919624160697947877788752090720013012103782804415844780378238718683968438235615077277356742850290988835904488205415753988540218587562044867173720444157108468904978899449553659378172962115539768244631491578180107945847339034850922815493155088405779469315927276809002910008221753526446477181784678970623618171822216475480846769570663072338312618954927518435636213550136275951273366567195259342355498184367524431942039502404863376299122557977469734055561561157324129019348353205166737142092286804142124462957962627465225585834645106563340100365483173783532355111845268595125804794988372735737535393472121787211612490702980720858013749460725256463159397306745141720417860133566353921269227670112727088656755764095014169864742620760295908025281122966160971211331051511579379354896114061168560028259086028230674087894477789665534358567519218883666706651500901990931631733714470313815823872767528139861441573828348697561803782531957059261998138830337089873668660521339562603266153865916032756656897339697046183409288497880097487599950574463047596317654005328042033872447881594224708903660642152395051774067932802865352843243512224192302950846381202660811099892602230978321947887649987107481927516538215442377042192595164210654409528074925563581327084298757304932839433296686458341901824327144654417254152526363100594928202797311075473256120682968347486447425010615272984171270644171156178797846393817455382957063310276213284420477902339811141921671491314718162574092499261108693671620743649112875986564987480838086292863828915156914632484296487108452805411866212054645960597641791294330539380858234024971084894230137006340885987384785342612402169868107859334996477216393741269521616979719243675365196309959462585738217770282337426665173228331138107022911475255661194217700347107144659819617320614086674509544758010312742195408484384092386215050649268701533641385178371026316033991244053699004347694060947531629634405815223853032665548275524381373915849261321672438181291274499370140087588163876152643077741326781070347801162099601757472917537857273881230674964089454311876757349041619896859542535207074443379885051990265804430738872864352325280974109559298037738472155664685481499186617016825713244607307900490293946498698186179510401599048477229099341466880049709466941371333607146242511353445199507629004132545543810482511240319665086283658954325111504536361700951402226780983666191334388766721723005487904336008538867908752697283298727569228271366953238753389576669256117642775929035516272518718103858215150532417760773089306006304159772282894452237188058159889506924369410745827621018181193849158972875463147377963781954799337285851283895916470857333256233234437176431905988630000310824504110954747476279002929821828874959395171725808255498006475648017965022609975960573589041371387148454452963788870710686316545352308162513279935900868664657124386079484902937686482412473892673443323032849753937096732911599911401069770031648124368621895185323076019547237278986862263604926822696264274212526919324740062570894963161443423738523516195519499282399815141901962722475291835566727201036005778521774082330661660095409238823375141204116829906503190134627098629891874446413316834249604712916521231854616195621400857283655728666766156752544726869154940960613770846888896768424033555988133815272015352767329221249792851704654277609116796202150036392839385965728081415836314131600314702019842475846306157830284812574465345767783448974765431150636134036133086274621600612067954043240981647854233846523637208613950056086717673740950448846505161716401223570426946538976931657483028543141517228047610716257779096986326253434092180277756860540419633797690385845063587096032323704328892373075096822936862143251412263202717986919699984031148976641245343167288427297968647412483766338939502735092859611106491013324364781574739329798748664706861507282421278535248881219787499331711412252353926527378548377674933625771254687513116951561169087914285723738671770057351609061072287961356128312809239494208781504836056339440685820013876393054899099707607138862511236002796713356437366798588130835291487999812076718821969232416354006319066010211655447567749907204402647774564288868600255531297403901601730191919419645231991700564373008540122700679847905042721913778045692178754127818140233767382668697219107737476712976778152362184711216638457622633051813492234033019076038048621638134845338414040370341246087143318208661174601124084977623047934943313189079244268400228510518748984145226016328447104600456884117834979383274548206757255564012875340739020899708496756645561895951327956468445725297156949810150225781430156534993435874402960130611701806435211493103987559270400940102313584208944035820199661385204201607223464924379660749048027853282670880533679429771256314917725887668489861034578847320536079357301434310585115047090550656182780519799698669520429002041108193813383743542426511614058757938666863264177335536540598677483334200759197593732856837890831609156247587081484366375591032871147320079809400212468375963277248405325610896763120042479365936515372179799378542274430340728625049267985576844810191685804025852917109309901594047398842303145372252240720175189683697583327535483898884144775380634124228828751398010502437819299555718024407219016648221982594904697939683752353205673790648364937536059909912668374400302914215099291575412572596875145680057028867992468448817611935635050270463862774014398282612364490339462495440708969971490846385490284944064445815332388988228227589727733295385797568531251078747675067132542914194231900611315258373336644987029606538198168844282745720168286657058875580956809938658341039141511416889289104000721825546841509074087823988835393108769036246158655832394644385884049647315263074265630372293593900575851296801497573434786478164583819044253598563324975646069653210150085983156204437823243691768442247107115215120644940845849874439207560828342818847176331847949749588512063664330720853144034005552988362212770931849004111511959472616880241871989875182861449893455131808410359746181931928860284421215484496511190106153081967237672499886311497239562676683336431777560219860153270206750759374684533086729887624179525249457097407873424549312996713539207839181454571081938941729587436470322689456892248160686040902476811457005386428831450803839893842698137783829140380503136386537814742636353812152933891204454961862256877504542642551917096254841369973460769406498613324575516832942567084929162967395560527875915991832463784282134181633463335081456785234580754382232739946614021836339394263572443375899711452053714831679328238708779301482086389935854160925217635968926005805030946398238289760787965550627929263620012626575401268483202631839348317359671144973497227723530815257348777585392688184477891829945723710189191324646823434972768987162627229628818161691841939921145375315340269905824534050232255411672678984249454020219089869830667752993001337361650258447456654697743672506637003041642455323263110991293335762873825795049098255064875179090650418329340717404149646183464998125203395713591408910392239493617494453230023598795247430783328710502088039753186198901702902228598768275394869928795292098736386982133184286096462145205919018420333610264042986586678801308808803499471365088730152431602282803759781797525549460692648963974999597949504327245891655077457186378233162031389287139052322501341201235373762946104851696628600273158365628469793495706571875628611892683863261816581152122315882829841554614789979025910658234587987199852030738655220473622857243439466835048296726432286420782958388113493188390726478563403765564474395757594129062050855945457600821081322007961147572618801113423641586228247073601343489309375655095684466575434280997521987256033474620539904311959520908190709723927829758024963535389532099597638732248334843943029581516756228571060188266378394421162637033527994915144534517682453432368254300768951831577773779402570012369644525679222275719548818035263390125835033826305994902717395422184696233726104795555632997265588693731477998588323094552386367121503603750187266373274906207283645444162073303010869841849383600184679140791654501208555968302234987708039367809229573756758196424299454882624075555084315253505087294235956212937678533626753767799715771221887994719344916807716446598633395463578991722598482907629497968294588331527694647984432361805443910191870735945384063729777056224713903097613138521369075503337684942322067303770826862589019748584313000471366419266048353051698826968019205179619682950991232410624071796873900781118930336319758295116559883486314951589769938065313186975922525670094057273763985275380666447162504102223168112725167661486940140663555909959869749333769002230332561669255038273203701786293305021339763807005686467787695581007887385181026740218600711260161644459605573734108226882072357007024767194809887961713841591850042085411464317921899361240898028933136257718692895284254941408677341779763405898709115957478352713143222014062007275648024710718712058204976864045758807092725948558496860844984703530789026782154515757781181729617258505990786466709821054805495741058771979119887758325481316474385434350094491888204008497728213011973984361500052214530857686402967954695012979064605230205960952066130124697629355936969057222942761353679411132231223094166291349381547208482566222701234848469225045532581860432022699837092646090467862107472165868221269367300807504734994093468809488917379739289808034146786411135324056836429096379783534230614205690922673270309219717492206354528896850922551971544336010755920902505025991877965231955922240013849767551263033557462818295639030956095364325800261852951320996716822171411357722002073788564117209159634156602072299688644042779445548510709647318351940330452248949264216387227261130842668204004665306148515037845426421468343270154846898776220571745508969666016204019032525754297260552967219287327742909236920400875618442113880279966433629720917615775190101105812121461653179163331430684359861367571473496390142688285647697365170248679932491153611267827907374252177923470018217900741370557658573318946416132912982413987133211785178340008053033741991503754735170134467508348184586460559808080475256608719908339601475176858150083847235800938332623669401413681649778343242765857578041348604793011417224962226255720926674037508559267773140392112393849277514342394574012711610497658722028481991517886151935602534275061785914957728047124626079488404544375327327603748360473797723064158260846528260378433756467066924562789178617423538486619719323005446755413893260877433805167015939283322300041714438579588606493793504595433535827775223146396944942215058487327880063066981442192675459374926346365048192254173024271868829325444868256433896275650759528468484325623059606772929849679003885857469204555204048384579871833624008119332124845508144315437237386202569623182403337502338383238626235060071460499046812246596921054350373944410027355571155573913721683702974024562198178886788523889906294683159013128413865112658803531445389207917237774804221475820346402382385024828041949214511024067318421411641774736760564367364007127384351490380604539520319815927707727295623584117313188313241826292922894468987931296331487972010545598794626179323307447297438392785061979615108237442498203737864331722549284314027270609956146720699594354383756763867680996892936215091346025775516937733768286151883589044348995799972256935278502168415779085079465625654045831275276981844542043075090541632271319205912459185297557019991735934735614575001642237609152246524731021190012792958034239409414135832416385278895284622920999883100042832147719864515258227373155738123726132167034693120190507367796122493750494464723419668975304403208531145638863423087707932932590679287674546955423378551461952979433515888439030368008704107962858455255657522695739895742767893572305809807563692629456075931265604171173659637507985636168979124404197804766331245947953436222965711707036714136188456316045607806497677333880077862313705529344458349169069846016313008647172331742537401650445122051377015320112773670065757060735831093782236018751230037220145189001065991702136027996300655259981874135825289045699856113378895643232331695002378598662539945252258115348971837715692829627107949391869012644871940747057041606550244658246953948601388460741011489329741148601728983206149946840932825340470902286470680099956374498080818719428344672379848368627016635803380085113296925863091891635051550826768581187980963343380629477957906832960228487748449736050784419635311305708659089106352418435804754284606065974990659117753296086256407399129010543580163974528102972553002534740317970066810802591754138606397173257792427872313135444552229872051994877555116030071449923560101731204442075988546771672045408063770140721035353522017852300646179437980132497263505427647220377511663650351701353146986637138063538252570947547963445538639334627396611249727817498504688544942771228845991429791322468643659525101731752208369856004102152183643111534396251306164285246825828434453317358536430454673371975887358552869002343301916432678124186783323308923731113262613697867344829158500905114503246658516465182865081671661640370751872835279782530370613570101359836267137546881181045334128267932397023741799370866526655378455506206091197104524152620796196789431975977459729839280551773064905730665911225355602091298316733187618460244961890822350813538191405080660978315452114958370999260427765879951565967192455433620890286475265963346612633700431531065469198772303206259581418718463732771713558657473754465087707014116136052808925605577316867365762290089857286536907432986435713977643158905274582865397930100186918979237950369317642276703389195710587523209299466588216812254019767420230187420663475968414128915998991219746903513236092830261210051574377280513044315353766325123171547757244757208395951206770234464380768243180477080592595970712962454142633368023657123007391613475937873053472563811737050721351568373466857464421400417094516553712857457867696776182655237095873979756912134376394187146154426245841703126500779496812090964021962997694144751180573171193540314111185888564227730394980730822609416036671445989219660365226302319898935643239576349755573739232980832535762871326391267675725658522019605099424135285214956161538156872579914047775530545853274415992669227400780662275989795898567282826709072545911069203922555309221684630131731870307102979250575843937153344906666217635158245038359026746662395429363038338949167627312719462866138130517859471955491871480337884886010290794049147185026279666810672160481474608517350513252881930924530395079957217038845846946207381904417358400836115695759961712839505106355269693792861045362767608947642807976407362119815788579368598656962202631604792328047352933164789926064429723259739953197688384055684484283330991152052711378420060851281505300327339327692892551620404884652503019100615463543657484187480311556014738341829819261197780945563758335615624389125344078569078601972246847883824179492816531235253459229905665614344487997940753345744009020630733372393814640678792485834453279764535231533546906726014966025080865454960693705286257580511912283266878210501065104269850871372727414294264739168186688136390817024794554227364906099341036832722162402750218627745803397492938992273691006465921853323989497500534117827053420037647002670436638870373091183787291107966266707808448092283338672346981233621160557829404925108656809117208423456521389775669693142033158173743588924743143844262076821152408177029649097394763710742222776634597678414488905644917252086081739730793356573923459962195558332228959385075030135067844840002385050611585937771443136549617650337068912303504817501847895689784054728061413993277951328741191689674034256166457958290366332121688923040334702330965689673960487441097754233798415876539177004520245731905402696580117185396108474399378195278695469555219728594823038372324635389914977066424434089940191967411113341065376671100823395183892119139683181586888666423682264682249800761195067098561708865715911092950764797818121112020705276196011072521603397155405437149736747011134760590932559453451163693065824662286728805472284012360820591972616632014991400577656578285955931595053199947520185259949537125788816277492994511881565286018905238398771536174276256999116544971669953388122783447467363775357152456224925699369762259256406146959220168583814099985939509664195438175502647443462862238479948385099570456699665748519219077087319011665828688321846607963553745694297020396461648256000793212721664008311054534228096948612613941770497487881321086098475090387574784652353435229602353015281546451183223258790797427004208131104880124779362680148015200380986127564910943489139921970634611222428003856748195359300222280743694662386334620301687624795152894578554341539503068803220188239914324929871559299135472391255105671327365302927103194337003353839523257486664606172420979519296121103542976374911469543894956666910818754681042503244275814130529905465921686570987675924425188722401307405397506868043008917643753866030556141253338251126980314922022915425281734592616053412292195177185327021602890627823317430702117962797989807365332647334892934881013840145772222112442896760122061867260012241526807281576354658247538239131682044700031953332740949583530437336912197864937154135017873094899300192117190159846056733103433245682117399619769142555438388925647942081337842519922903982312782435144055924248626209627568121328010236501641594087305563824612743378725822963829017690475943223475366385388695032523160907696981042337977274615457599838767556230255455687528558207651736733195357193985788958504647000389364738210723414899921657359739429027613271631994577453203276574677029667504298888262254064846833990887613000310410086784480362977196972260951839140995420162022752634794154645238081961120087764851787193408350528064198298098316325439512845649778001265693252837603007512190874347121950651213225579843530260579198436117671672036304400872367485597181925145371234637133271159211606472816481131319375460542599687382758319600828181681705906258826023466540786368114947301160083540528846872717247276845760216793432694670139162223020459729221550012514497270957251118902345331466144675683344735377651457429338561241708497848505562530744295494870745541514103024944806466712652312423263605338228704406427561945351399469576033539520843388786013208312373732197553220712246863918560056364545474842601729313288937149951649095665920256053907071299180590141355361622365733751844220973158138228842605557207462804222861573974092135077961456285433752828041123677003460078450476357714712156083976652416513791157731477958561421428961884000244842794170555454670044105036638094651624447877765067148336191951154117306900425874302723714638667970890284531750653722565545514945838385397754129973938121374778062168430893941841609525045888628610554807650653850001311474304491044344755274990282635143320498418964222560825579199310281301160220571076508687144846170574857625352914990166146168136271795962534305415612164731446841159595726594893945276822223269776386983332920525677437566139992407129936791608944903363888876477202891553255749087247419632625350987540974368152342117743813899053825231117006765847310459055208955674838327565114155390827611903128618485166014683620886807904914709343875125517584319463747833710720220773758781030584435494241928463762241227622300217070649594813200095616004063158456720182687851536833548685241932645960751823059373143797144397358555193865396625970530514812945828629680920511315603592866123679933618360429964702828936325719988204256927203310379212096056739999896130917662139841782901792870614742990010180443462272833184063496637668440898801802738533228981635933569244276042359603220001102322651458242217306097412197900594628595893618099326900082432113410690780926970558886718951774619331163264946097321733948406136501123993726851136417024817142600966396943074688702724626617793680558827003805679086485132108711989283963824355307789198155368028010133779121871608845497588252589193937343291988296107819212015687997488802896887712868882447987210594308310807021222334234899108781540448483346196237620455733279020954668693257360087858579478048184462381504284775096527992211732506457211131637730389765199453111796509855686952181562119424005929907866568314316959511393852281598809948022770044305781758926258901086139342402244081216203783576076929266447925830118994049440229074997911348700697971709857639357662327367339572062363161632964784772748609411930446931177018269230292568163028933754336429211815057903314185560207498951637454680535994209398330409718282465055678856550053670706412506088168363064556637679460429440951332652898628273929074617475615747014014645868282083244505377293049980622806031877319089566245900648267799377066027394579295735299875740315800654266580109508904652055400106599490334847193229754638508932394775690277157221119233941698737246540457440991246448641190430004909909255786402190973819035161113291275401719429902539240338271889937501619110211992226976552332065899749409497309197753412415432648610050012660757845009285625019950562392975329343780151426245481163572715175710947340562921166413213406570414533544695795330510354064207515135126461943738295306751622151015243486654648243165402187046385588288737180085743997327864241205188235775924547207450220075408348603653389585301498344083297080986139560614107320510112106164009359083720292555973343804825242445314673197201981719886944651117283065453663757469188371663381331518187205884728994402244173663569241855567928072444252178242507520514587277869562410212114756938528156954072603257979917681540230402975449165271984119745982038435366824889661529937552343892731223982691624667623314530115244054439679973104175004470707379089489248814395088834421918680384029274266136656537723515928565737020984240131119020197695127016311715545765037659870947604424224704754933633675963028117340538150606827550563210490970215921806109416390745964588844411866108280346953883211591472958377508279537504792378369820853754563051203905526222592667429459633704601818352844932747850951527941893425189026289511711295898555018925903372924065490011464987763923963283131430100587497673585201848942477206334414108031292003484525155107917093434693667577597249103949665407596058834513761675151718975362840741663983076436222233829722756021988575874085806851259940068475152567953444196108274623514401774756406342877573455701782778223196447724228096272371241813243233552404185221228544045269090215634426206464358453428504293836675238062483210429379640026057845238568312702309698900480437211155928819699399981373524515155312203968006149484680180606181312241218868681230061117741955278057038069226121045196141523243037147563706353987026348551196297394251080007617603052080962567270485988288482143950299379736767973858960519286696517720514550978047057147067779271973001181599675923932024253893425561769528307567317986055619189464566818436509927819182800538926687430012859186123604585842798001877864423460188369946416860779883726628393748218627823455738437792209912413827320663216184190127241985909385842864950008967061537336017639931147532969282956489910463681067600321385752586708642045443367755518648360544291008258652119027113296283736048380334013757831163086906781451413343264284878464586414477012175108634573823143504083090736922234041135752261964302553747756482549160943761764239826080113079954916198037390861530798399398975444955357646224607876134598711987408511614342443532117311964279362225511837338673316614189114391105056043326226973375387846687723617221214838554218787975135984767782043122933894097314655650634973056261529385618383687248162480095429805112103773072021682715875850476754317349856806844587929611571649360736728919709984553947563389253620365066153328114969851648546463889289972227666679663148577281955831479223904899808220693909135057042965057068930328416625798586254756987031205747176081045739801561162878931151889092648280886163510003962820307145201459727678664862755195191103619372039017546214832570730576759622215613227988293334493853702830467781071390042165365534873980410973456535430525685308647051745247185735809995871184786762470049071457087511158593447456581678168753123399639008766117024686237356911601832352446898633117861509624723372269324946281603996238993460830274049914097280001811167945272181773772907095843649906987652055483220179652855460028787468407850489728648731504415737088122355426415075369349286644306230570373743014520493061631724359857975032735104595365539038094667347397222096414217576763817238738429134735049586314755421753390156535109891543220379123997050683666770078601152570713859147726439193612135619621352512890678801451133303147363497895026100019987343391180643417866823586237796982496061072992433242889791019254266644895884941331376863833131319803303275434911391936823225605264045390719914791773786048125465245263128794522195415728054550521565626523046314660489847990370197261753287951165605997928090700530000477684732953224900723248489599749778422039703137103677671644085978969372218809620870855426623743278361447336864671129960808245153954692217074016125836959381644362709937768149931692288706500525439435317117798205955666330944257055549329464271176324406111912111846201344143234486708698317625154665728811736854682511040224604416563340258222035065745677776347976499234591940167479768862376975793099856548450719931403159794938968853266460805867985057019487872455956613207402765721635644319149069115247456013562128098227836044256934319566428222006600921434087964055650113777703328412466348145130198469312950587780960559146419962618286666440307366051229382151741343170144546140734564370662365970380983864165834652989113513573362604465300309410433984374105881646808950978466425455987322169481833438404949087923008999437302094425844765666168316511039995689030305660826832524801673598820617522450729977600421732267607910085304658555637522946051499332422114010176143312864492305238138054926833523849947143225262225666819831245417772383240935029149200777833924203558999297733409673399049696385985808403738976015848240450461697087307297138007609497601291196433401552703942489858525648137060174251084307733567362494085181502314353016923672887059187513807363284835752129833296771420112653044186003138798509725260057605375063409032745404226516727181394706093233240745130713795041228413122588246180883411184824732611918991796599554557093570549955793246617655588758592177097540848732848857782432301861674295965772084125083166807938905503845723995727142614695587626347799165405985542185602359980572464511102685163159570811950527441003823654851460806163663574111330106876822003068899087480047605383302477061739917843102913628940883867725674215823700606378312687444730929174285501924597440220547067310248552480734331626634147715164028448667019927119996057882148694525878108825409885014427826503173125446858804141933207247714530614977603368398202723138926213158113405368228578629454743123595074401157204841073306797474622294619397899645859486883588041173426223389410435836145760015857838023921813794808595809396084243645151208536725172472995456967892759266127597757241550704936381639296054920507109748254125549199638868503405864673435741827959827468248723445059043061321778714635492539896753828248325642715650584351390416635756540005599887064651811673822836866785525414071668917953362540470353330443671800800587022107666408829449436119165009913462435900252325063063970415181992495307462778114958370837783245443895386760582315528745952147873792087280368887044860337120103087606787951844290520076278393026935174928101816325269792058183775522068036575447573635252286991550528871246934705857691207222948133264099842798775282154629434899178155735456508486835346213169545021848912487786001898560338573823041802868729834157173008796191516257921260829596017773558592288325978444735616335863030355721966696370322927700037703966227709428933563968134204083284911840254938335065614026153694047363950625727811169254558255194910535020582593877099080561602195137458345566054440668215441404758297328622055831326947329062289642684554947974131264892206254026427452737686407262611435164452964784124685698704240191095670427647756952899238359417631044475917773599531697619691217040969821839640316856442904456428723705987604106553871127313350589613043582662793116075473951474315012934778012466604180468320070182446604786711000981493064541050972068627344558493645385252083150903239089535281813597366848034153808519439334832012629177156987782826997292967526327996012090196573328958391879262455767302471595588336345955059038517312067481209411289820777750417759765654313335662863800732899739748736129309380104606413435038019418245191415837457630643636673351007622248297472727376018371542950014707226547531609686057142455685307798191318496951276639867732544298521442073832103615893576936883121483468021836886464982279581766286589485666396476004561293572630391457408251365233515241332604068501681205758807596229854789896634494831796830266023606499177970629117812161169526860669855036947772351408553136814100734698859056499984379786662111949822870033877580893201822137646894911973949693878179161479562661703932972680406372352657514140744373425136367773636548534651243645905609466695997644386825101377930677443671875879238682047249714932032803355454382072256559193357184145494755923857639599458571517771908875292839361815952410299696194035740671238219389927315744771501894796031157518430525233394071503918752597011518934737597496369104871674197449266904468081296019280045047066819922407133447055907336946723151747930292356772504252040944631239381264751443495817560004297356082015299565909225171310516895208216500775442306367028519067085425829734686792912790640945975210762371623586266205493303716553448844053711948832315489144332792319189077961887124870400235672778791051846726345561430774058263229601704916612720615633677382099027529282308021576606836565719174605410972650680925755207856075855951148600743251949633138747959758123109554470600179636623312943394494804190483055558531950570052521662929603001852349366579686041667007558385101516855503425460301503058798099983603869506973863711491276567032829678583042600412870190719875276795875174082506421031711053297113889116766966176828797963112774448027646982984903054502673937342662668271713140797738129937164061900777970813578304545555258595564819979440609673733526020516147942508251882993204282299945210060771112670012087386455590113680590157957918548163231597756368443578565527485188761374518989173448124930344514192965482760807551210081717191171290227455035177332478159567336112498543394670704649139447298937571029536642460300083544812203730831164259866936072694950335822247866655524909009816979882284253868248936888744836290592992456511385649027599601197518421409874710569582585109182415747964441003071680807586212521715611854903790173639400909989992486922850260064942045928685823785179306829722651432556894764295581187224978580496491258646623594877225848382230154030931040873623969862143716994662019760203758312242122311118796994045864346215741012799932017375513528854807830316217387434968396726991772740909945274479350062919979655264314382469727821185084710018107369607196469807732529762201557285356448901793580382824839041131411708634586985414543411939690935927655994128611991510688194201179082602439888557776739933113041000168083710019811136949505369272347317063973714726147061442868106972672370921081164603330579231287890446960135173638781586604696121110373216372288065590045646554982718666738499289707162209960871675469245865043338659426900897514278149205028307254594038937647051350950095346093688702642420547420644139427456401885956483489918107648257577728633928354027475157414846411751311351172563892810490146431339943714182313070753525855807286451989048443221946710449250591012353729279424257778291462186901290286513908502859309043017551978397093812390482055255183468553325606908743698408376772262167260878796668529629776592886950722479882029638249726897798229625392848974209091807807561406245593543808484133948373169093689647291205991201196966937828163414409352159581511626490471842638204790892532232740512300267543670013862239307080629414131835666199799926860362065820988352168782704552988146231473635277464966652210067176591256280270257994135561378635193236965790131741124856747797273135516348201988048999866483668118895552792278435373993512503191868009213549912317347893645947937335746564984176230438196235145350085876092405234075132157286560870080612742555412255765386970252209818534760260312359155154843282467462059314937303384479888285540373374446586946747054373443710927844346531191561323219922495480932357946415364252324895080155886153409959331699413151484447590871862080663332331015811902966847957825119708058457702928709616612678311476243950827680814177780213915347418299007126432140998160127488531526813887078056906577463676938831083209516999587651068902453466751204077514030141382525441784157633193964439913392850038527445187147871572301608824102493180834470016130330981466662341226882098884454391216065830434759866898522131270546164259159938999770230846134621034764985074507436197923721192354256670998254036167458721781269906576203580393843454308746569399987829378280729295007960932422525020082119250159245189727909234061640268180071892339228938385063394842843205859976439921502154006781361230042233797620316848489448679707612022035340340456294456592829054434052906438367590932018266611766958462411033105766564894009624930403830106558276955709899779844768018592204457167325000144697835158046544604692764865528849190678085286352627059064819991761915812704523780942862268713429076906770287321594901604334552701125139864348836779912914885327006169944828019532451440870429916093623198887048554408891191853610507760643474067899904478856084056387416909736774721374686999271062745839383119770132133965946109754930144762999476070803063434024135056637388425604430683336802957672753242306936579207069616286771454924173099582019411173616230138468650221188798197996275650599236331781309759969534784115759256048290815816612396723576870414219181829422280605240842598387490802288619630954738929246872552699205909555591325655432705922593941639425248801465604509437599486001731083827142232370713052091554379556457730873569091931481388845848281491318352469907836139829314304313586280793504980234124555625947920876765540705838543198383735432387373714409994260408230268835275728495643080716949642873270759318812166058045148895765285810319647874387131120059353011842599946278173286149292149843750191705245634735520369429028129340234754186631946154211632205917080232121946803375610485141999613400052803942953288787699255729319598999453650866645384291404016933997592492752944451324354428333949939623155319585737955172917079500475654355119832633593266759987064816963548426376056262149633280832183768025117404988111221135907307647594650541064379567242665844626435771431073332419990423500297850985127265803751682996967679810183539292119222207569474365509654174536379790780195607812704968078871162961214641262337610221163052766040419911592792893881111799538866187905864865187424674150966955126742937686928552531593374374507740410154009421983148495103287943289885517614947950853879437571987022099008817146782501954079789391527863956769929634583421716852823677774912670755917881597239615017685735115857814082698003045622495886723783449739485707571410304503888122135862944241878456709454429625782342482371448496764230022704287372012607756741116687314994865335542208110532728839988930423464972788033063101267087351949827408336127577917357256534065930018495665823777790645782150752362428907083687156256243790806828849417763546439323364326376793261657431387400923772096214495314717933261141942653094963600919562866897367876202819558735998327864859055658397055193435344425214386549198427998339415947182755116820191651427090736411620788479830887611524545360435004908675705231751385683641537221693761075919331542336113458297483235428596355303412675739714545179715144003285281068349514219065182595385230485225452192103881210351283900921460043872968000983972135640578815616457432655795594290736967332292309312772731711723442414169935394097081809879958839519583163581717211877324093330127143175360731630738595620448407910514926040060627974158876122623591338034811924821050146850215325193945468081147960914013111697064202299302562144860134819028891877645315181248263150660034659457886295149124314760566561725676754117610618369406566244325596135575715664591898933185334259343760989744412247436469430523236915913430996920134095399423649272023845877106448524172368476973551762192056028488763307906145000575868124566093468761995236911811999014607125166945493903847284188393117871502843712828053839708771142820649211710837461981905718791136735961556176794907404420020386721513689387574747989250316186607455382618310204192176808128386421513945120341179653114008959539002845252152995417284919947758998873440225193124063343411529569260222638170805725881553711268307002339065868071108167316348116287123466493922418086144130137266049634560455201665879666216924405304177188475417545455412670559903780649726813870149125460834631125393286339269679676522986490718512897230134529673409645377059191223963550148906327179977961940199408313081756885655156664988022399622153219579540106397198353056308757998581754257827730936442681402563817557708350090503994403803855983521596320411232251936530921623932754876497115919262159499790607040344342955967025924624147383319449270710849948952752870644650698159391341040307484873016671984302860716097000888278638810487087180936601712909226616812764459301170442677260377117438527806106585084098277082213052916679950869003797524429182464051521163604811002869029290017753017977626724703650874852066274422624533141263714577723310665712362033949290913882115255409077359889346049346478173232966565467528534103222660544968300970624015312719346158901148432117031287881844719654122851765967844483146758988980371807389514266976877206599707736469837079749670295435385126455735112532349546503403735302363100710329813633952213106527347411928393612680992869739850818930470023687717442154395546795016252215591689802065632117607453809880664157460437378182859050232177881805049782894475641044098411869505358844350881089357934251246749224266784764692473213572794203582955722540636308165090491734422959221367088120114283920726399587882909525518930376753239579612095189462491881482666771765651307841087844305054348427682824016274852291093049009968581343933295422147685975613349623204819260038758331405578608336971549049221934891617241369599439013218941241177374749665168920864458260654250522843715675842872670291069157351779433923389634718855914581797762939501168051461153273235653379219207193333687863821112207642854031109013057726006757542168031258511699155834323888580832411404576934261111381974805261718531778495826741819838079913666613557536313209050744215637534990236823598774433610852925836839398685635736318480650369225337174944993856929143122638904544851084630324014926092340236719341558510933455857601390889262747899854515310729332492821128932674933038382869905311235506625207353261268590525484540387810179336281671901034260422383493809871107133175929492722222291304285789678180628502314292425546404731784651825592629670731525450941082425541489617533722965269165348149463970007077125934381204675614728455367094307007425587306724693626657514364477340908691356999757751852681346235723185919160087377070706151471232949870339464522039613140888653511037601317964871295513264925733411028978411804852315616398842225529231817661078867482032432078315582027724167996435241670199403228986577840101205999308704962309784568493948696232340227343747974432939274669441893413911347930342657567946222797645991600433899839216932502519310731614660612200233236201170626194741361965994240164832337620821150892773198338111199722725899829972823614958109600326900369227540691121178620041579494817899527856099977201790784766614522399197156223139115001566383963383653975616588577387989080359244697965173677536981977064818431821880094347584642453956510585702760506562642985306733665649486351297827898404983060752834478477051103618789662351122794804877932486665075929867600886320304936238283453660814642011524617520639542605091331624108751583116331219533740255461208868831918045195492029303021587830933028027125195547985748057081936622075798466201975789482852986452216060496580903408178205011678018560013976765996882042407478060696579340462219951991547526284804978950538166396393098360344023080990844961893675726582402675827519958604930745117810690283391436193414423789848930076750177587244991045976509756356670728319321471530844213562606570523190731680215550507529686513362073919546518187222761566433306094041711107770655041763927601141349382749127063865721831804283382720398466828449397355260333055072968005210740379009779777350582617442454997137296564552256158228545334258980955476212444200730923425371003371096110673552296930249821989216428790252414932950346717802546459813566018333466536326870163097273011755419671158064197476597127070576993210447820021034884898843482081265053034124180141759439891379990705625694498711155312526859576573533925712010535713052530715737260402738879094569571084185568133901416492368928219770045288692198471292387125113793539911563239621309732421360247735243286168017145442222451987925343810650848575890067267145199399932099306883804125325408750379039348526636047194270423702481283393401486144365149332397218432568101718691073408876902131070112297960443663590674712785463758995805804350247120535696599325016080023188316487176882374775690111616382856797414309923827660232278106444362472541960677220668037835690665642241961098261152153808634449158559987650773750941959057118949716447681066945970260231407913422724933413488676451243787037765956409113459981235463868355610683092516229002077677720907852685874196601617740437012381898812537410882265668640407066328970451415281591809573447144292506480509546166502720126820553870501664105227022108198890506286005846269452333547193007149999877012068707332190657344010054474320950166981398557187609175122953785872084253577882806062969579054703961812053193008661973094941238063646177887972637284995034684381181342381540093213814213423752620916020827783372707522299563116050353185178603022687267528546215005618446235901591745421552532095805028001301685803318018134333228693715804736167699794808944475682636017684267105211687437676545115416230406305953510319035903476395180795520839163074676118015181086702779442694303673527141409273980843899266101791384900378618714904303982071301676741403767195137593101469285685968644588003128548372685240940892877260094211447288267681109763029998081351047127860111355279365705976637325636925894034429329527441895813321638748650537044405581524638802596948638774989597509031670300315369862656010138901596840081290815530091635390348070322667011748765236466710967534488834403733152119582825566487004855029316507392284799272552465486220276872198163213569390903909033258654346929320444748026936299675669402486466373328835143155813065906551602146426571189744400918372679951124291446622843353148617903381265775906452551610818092554675921547074684270059672995810632522511774001321499607738610427952451246354955193013848393774772830558593563614178658151780269111546029488142327129615455419172722779098385728583773594669764451870679324576654398909950125616081827094876206079010255830142927592822431538781216382174068330694466806994982893395031600342155432775220551514565941387867279115665480084666188662982544584500726430920170703965398857190177513557363165027696293710515521247754551159736056668280039919035279828775394271324474815555795994319293441248317697881365568735594058828885172940085821697371728336504069116940840737433475056430056185396459688440703212704433466930848420936085366404432531279541724398709222814406502452410143771452058274878415445244991780078245762385237064924306857694483338438470856388751177184822030098631291157528908149788641280952215667008208370487844840010488174162965663557257450128537030237377278681485450616519505529711019746209059102708991245133640889492179667494654231950374270101695468541512097791521849769134868508881560733878845681338436245225402615968948702041102284194529158557985625435598001934025920432378214912874503660037044948409449722023065198061379209934429914054068817542961066011693225491562788151835402894564034685163579473487802318844836733723353375124644949553967521640072078609434942253496133081435377092751115781028568780076745297978345237872594285939937960754191501964136664946788206936443553942180425170611176010700156409071621515898058654265651835867769192810393555563210796516268047271949868030541149477890947209516871686646707668238783843147858750857912727711780168647849129720140591172907206877132923806637955631437601752847387675384668091941565885511488555646685488069183056089610662413185026977693759351867282451630480893076275852937597305799316557425751598217536560283413966749822359749338743852377843466553875165812803419071204915270124493115093781779661251791066648982713728051235464356339081137598811139846651154522734725915319421480995628051529651370628289518555741270622856433827226669497698154003337875531690167734795863144503414752469056672066000590269155575633180597858613891486350183521087801586087023695657211626728074645979630780680533234403324193573520108101150480300546024097276926630995326903638017877376771862467339697579405778552181011826568137494787755250307595523437776224330513159044275614300932327188240513660353584061424588955027504946288853093767651214990418983637668691434749758907183932845981171896005183993158635848222784322372555078767873611635081751918188741433654047025137048039753851272916530190643749711785359408562289385187437141710513613698635952162497385500236764125245577122111917863252097157469448103505709226084217885050944360062002741965378815028533376443910476138864795570066520764031185652702387054665374275460644224227100278336803844399127719334662537315410281924727419968346155327956712926286987207103048691008899674548457230018929783558041753542546917998001694551418699769204196271608614251920421297278465569739001039948663917126608271721084523502187205193513488957869948342371690177462583597959884321136678056316629199246268589957992626198453536277695227706204595849618811056982608120770043960221865348368553733783552192299237589796765661931944983958542876263103874343898374948194806942036567081799187515094189760416010864852984388398665437823794765396102071619850243953598484966147539196249254985579600240306349242843763998605054633058306820515794253314147977813339726032803445719010395755542568089385668995740217830354221898855661416627710009904031561216222035015800339064178547117239293435887907635726810911472153371665459397328478833626694999846363271912294826365274706386070730344082862432618808662984854179818873149751631758389640939281460979250560046268240572469785942107179186110114112830166378275535443942573884881481848124332965920724476931225451469063180715232038980748179239949375710384167457177942414192188760318870102434009077528471649961367679098378624746583187528671865925396487291852034298116458927726145448177262598074057475286330093824130446036650458713271748132766334628000111253279381652523574493287710144017156734920587046778227131297674228828433787478726331004426278227702550764846760565052004556464915647644735887950678854979296043399586270352293313048348529212030763475229084579608454731583915990822383910353233753647535671647756459623162358936366824923917507430373868622382959850731818833116592437653238161838615639981033742513668930552361333400071214887836253767824378400774862369003694328435146442215614569487530291687763015414713222804896082382019235503733630341240975883400070250758552671934846565876170960605046503278922559599117322905435426545631154551953557040282318106915197462411048264862108404887445864254859998158048359430518358647938576008836258489210554417653665916584859323620013514665433847105175353864000400638295137254623025584851818156359421088239477476081066638976595401807881839960734680489340911289836821124974237580423084289311659193142090963699445304206012373617464504345502772220351966483626782694249180105134767588672839219854624601420807834584784817418438977049371879493386664165060947308950216824377064986110342809825040373848352465295721945961107417492531319000031654120929805686936020487522994970762099650177108349757497725462366959060884026572983712781284987701223485951062669954411785962402594554781387148435928894680535935168434253451383439686855740485038250464127508652339622346645196891627484263603903398512798582417725328385975522493457205569015748715377440076188220771061346618548275421889465842098246059884466176000646516772511150186285294320607828345855452583971165664365376762545502046525854312472659457904166744925952411401229450321119080477087553268658633608402094009782356757545982760761185856406811578936677716239511445922276573199343174110655948268349444706506442906706367624419163701852460024869133704121640485146084909662276958160531987743988361332638557384629131493576597712051615543733917756901725043077967016632549140270179900655623776093621996143655333833206044551405893692807239004105078762667219348398387925446351940914162411312717291175584214613134762199298563726261963017347601459028833283908963658062997012783298835422167856667479731550656281111264681351492063063670506423133389363716083038219868011315675199883065079408588878005735022888449220945998326298801877871545151426475612621087646794789029622073216279075397184805658411212782328869073539258960221813431608605026268016850068037337467810278584928832069400652889182114577290992581064660833028868864338640033599567368253445752128093522846957875388296126109939852169339345319113252778762178818892260175555569647495515579668559458996985407214085623443387877074010101810008488767890518974120830841504250096000696042138039699205407401852449656415759442954072340049744260901902941606412804931552431846518794011464885584986656937229719779373874883086327333591011863630324703107349226011799494731533097490613908670126105654872900971845168425843228319687055652730125350495753642832380716107413422908883435919255614074413068030962777781907400558363066203254526402479923471722872509001846415937330790915509915852292553366518048383213338780337887555916396243256208909460644255624908910472099894555024410394883805631685044648533364539036067575938574848905082471575863078235708659972794652388413048224987453918865983749075400565655773013053968484363547684088924565489939223460513745052761145603841955234553905403085288241429108788756746654214293862899412088078094330369939442449175725281321477120532174255851114488680206019109926071046793924388794265946970432865830212296530148987687993422079468714089024721629352206915281799736575966069208664512320341756296997336502454093583815013925295249550015121524714650931776670651146323352279134626278557551817108554969850208541107398532052191777273327427623703914182919284011273199478522084258928992996998522683554064878687760036861051577890458765441652162053755115345456747787743035040095426314790884997166541432063387956349287766437342726533665697476535158878687830969473970573450049007595352291711504609640474377806663115615621383541418599484598491253312663301245577310077711944344707057148955297423014929511894772159363788808380792529170153336886455791712626078760339664132731939661781696543715529686589266016480863798692325148839834917011132277949894389207875738271556044736747745749750826314877560452705572517404152881306331256093489210845736989187494083939875654819634363699597458895746089287481065936879349082294254813013607444783974137658472698140861737256454816629564273247406234933603181035749708741310111521129760690293004085224780523636213136716986402468801617484864664722271574792139401502240957890375167668535117838945739711466891167660040659830107467700902305896197441846521712279756075500758662096135681599492585915269760642766320788424461003248226538388494040773716710998019018418772719728985238579053640312161035768347791370825533872770564945426317695553256832586007917296954721354303635605905112786264655585862123687557106677370119478947815974846377397967132917007781322343397656093215166378634884597879323254663731014959262436470684040608392225062375004091364112140252954439969337249759947686831127087650417088948566968990994242404349063488692790503526455176302419872273276037410718625176634678181404297498023298171475491092270864214324734281031996086428661358407887585519922126741117658910609886501682240244805541216359718116677684966826961446689104680830363402727233024945409527323514647409086357066905477258783287618309926575362156684812588940496176783920932689409906617838515931470381356577145349953490493600869348134555512687512338364925365559759394829425008096955311416673584344999492635064336484091488887822146595807781568912359874594027537353816426227571359000458398263565892528991531398580019605686985589502919158542273740149971657927232828349750034251941455397790256563358137479733465747944706970298867406153902003783742117055463384011904342706274661067639563092012958071472013992986501317771156692672368916836425460813403547316158886988481318728630235651760707976729793769711640369413371674831507421512785334121449320864220927649786570198266385003921460367360723681935335838348220856989311690222494205976299813706298766740300307711283596703767402051506569372448880563918490927944836300597945165197797563772876482043824042041291183649334272241162829954176371121398362121801465290435070094985267277266289600089432042314372684105288473412633920057598182465766924829234082169400004750197493110141874742415460408248575746703783264099610077939548453675081070709337236438982940692387962201249540445723755600510379451679164909025259324690789681083292507829362889757949511072704727836673245522494856081496352915328931179686075578324747316918366838335008726389456872081668946380113135126491448230755015757086247172184389981408343963603823562694167803789794563185142728210089538175428128301274082543525138839721032094776781492666294856101576167712369354814654900220225617493994483882220195543944961513743352041207711396364458705029636504580123199391817724314456620277635006677766523389069028261092902205848589981524477339751993974593956197964588378933763350463545402508547397687406055111909904950643162604594446629821357492223364178603102885126753995375318558557668297418852851821787022075149396419383457344701693358331230248509630126973404078764784574361374996681550284990918814656203051862986632081680288009655143528437730832380712397331599481708681098018825598309669974905573909447262502312793334289156584266655563782018110941518576871653179406215868629890143662171183066424519419259533302809518635714997687881664481174887187231925295398819732645606770699096106982676191794801673134502324508909127548698777696765586163769707611884251164624805840871510584597428910323382317324847714319620670257657294331658460072555673473679363127973066770319983087160244756985952098095942442367295697098911425209885786144378827057395148725006984614421306249159896027239106562184018384419828860040073068170081412477384808733575136894001959217758883211550962318772987251071260417092170645497572861118342374797138782779642572155826477424241424655919807665173653239170725722742358000398087382601383247612887056152154316669854046727081372047519990394923450007666721580787458969664399228594194327633817113829021486239074084893026146073065619199210916927120204372200863601709432420525940595356879741995981306939003251820883152797722618095098713731036203250932202704467253038931679547012133083359891736369152576238613464813578203854251617551352863050908040665305546783564046255752283860631015807225599363155397499663823415734368213196810163645929050522497000269790261451034097391476809457082021878704904558202267671999908001461996558656811994005950750132805507999564880219245563395054760594426402619731231044460845741706949352105339177173617297938025405791532706174657191158010097327623366133164382484530652437003005477916319849906572451084338798876003115841288034446831526515407895542889347611807162224456812884877621233834522048407580528422255470414465208341467245937150214981459082870660843498845482471521834708058717708659142541196644322000332438975186001156764807223868944582892690481222576196803998831345090289206942252532932914846368262417015572253464032593718175436551663152311543554312011745788079315876125096876299387189109448796402000646649487741312198221998203761797247124159479941437499389453899286364999760795378603146837575911920851962985280280221883636560606194154380820594541327937571979978712141447968185841864651819512074643017545209307610151496926358994703374479887839719887712824162670389482037166635307382378791023936905202481745902409881546056838703284977365931764901878206606005021198679410401388588769895140009751149956370922969586207200440759333148863815340004104104883338683207545415447849953969282347841711409168018218377122689243795717170462856557979235025539078290364824072831918685188573562882587709251363048977102160506724135870392340597086166387623916215072695326179268413010754864714958015668648610958382819859996042858508748553549691384940547814282399330623764744441435507722665668673532529482593621652559051455694245969777853353746791630526577815531458734524444349936611812320274476929179312528854608153982590164487687471702541035033395003985435118070427490204532090392086422246148823703253691678629990387821145389416001313481225810806042219759620481543057013382839650338970175318413736768667551554509442996151184831845703269146172954155239259890595797882291105787094619760926371684885546295738764059028864407246303987539804084681989207614112619566092428380831232698926454810628131181478207924954845534683074467546821810255213251114911899522329239262047352824395550541640434523235267966230888637352745426636989850777851788263835727429643264956861793964646741773070212172437589657734301517904352428334570039148220657076337330305681702457011980608599279948573408548120422170036107959612590176976230844957498320772296717573440225220076400238053694471824847596902148974527464475976065203476140168680013632437079037591660490810186699811722617013370563596617493783262990885521836688511985978109828993101971406034510351354321630875682334635153788697955757503164239400481989628259164431022693959664564577222285042466263751240057733910581764651345314559928173555747172241690316792378495085425551705764432474676328151704063317900563631374086737886922978515597788931926647018009631466439611807668581474980495663110914076141219704180660942888468884310895661337408931575586864657171279196839642376644061567154489988552129766735307328864794961217434886652710913010603757017509428841902173561057083874202196093754184457818291566883554218598540760436798769487000640911617299171854196995411831154051162022564131848298313210168426388204232276161685389629074818432244619707317160261764221395201664410233228508633510772778426598845740327495128047826590557453695029756293802342370180352508595789253845031891987959542391317132064391143986259232949216473885536051709450301518975154347648189893711872816294951875324107779220277550848518065285105059398239697271282348049639919666252077447631251635142906198771546375904679458360988528942118453079989099558046499138585002688501791200188401479750819061569105771133026089979459564965454517290343163582396590002938576604180173325615307076986395899099845563030959970579076797947215422151948627671789870417929233469733499240362072447885261088982397690276331744233344142542441541733384461455503712469664054329077643667907054970343079384015680056361583623834182645427257001873141557081282754982349011721705802286341322343994022180392088874294696564784119255846324265868321547780090044382017017458363548837982036185728819489561117279608611940870985828943911082118756271775918574889846345882336222420427330429568606268455298401158932811849238271575807931442769364306464448028154093338576822921883321534762942721882615764436900181745627913210450860365264513256605288370333288224231716855050999316810885507069914985122010368544659565294345102991076982017739166011662248364661625062724497621879222467894261606173130245060822903234914894711929072965973646436840208757648485291646217569295803034269245032914307716898227726993886331760570223707987792341726747582471058205626831332908121831463934422389319691193220570550146632194742074865471321801546698970142521325752877490114606003561575395815955297388995142968482399100604026838733758862578066730893507157974020495506917305161740117153908512215690072097019889325835807108019646871976905430765966161142172298499863363902964365326514533903309905691938156921261200146792215579092041536049979951311345217144080766754797367467857096112049101795145305215636739504006042460224055198466425807709819282197959080925108530712085311684369292412628931136451386598828716737031558177445054654315069199209979757894266726511267507976967307818958062837258176836099766372895367906562115537015292264884169357564542727483908521919750874976757080651259450034526373532433474186297511198172977229546631480915502131499198663928130062685139959481828636379749679079676540755958046908162663786833330142298330217784797978310140435057041861238979141300902208053348313922907125245452957155486858638998583211841042331683014692951623986350045979603887481297396265152641886759646334728072637844041556182833820183593856155401265577253369894426683043595919339436601649584540932301951204169382333862499412868748648023054746747850016979334341677065932032452167236358401885794155687296852737204670901787947672451600584967211086030121542425546088784540817558012034512795785224030482644179985949335767911529222197002905620349355835427995105098331535876608047731827793438340146939442591994255209755835692744161082496397093443199524027755309968488857345801967832957342235917986761440222195543536802823977379290001870469193038611018778730264424996153015549022464545372200234406547797110950911727206453159302547299294858822205961497008627185262679348076981211642710644742228694840299604368442332732342900564229912847979363827304484185818253201615466055902564769239378503090232015465155723220819087869343521784110405401637200182410700175800336037616405189849530629010676273161950169189479062472229391849599468189024547092816901401398232744450775411455414670820138186018217419628139923421588033328935774774731208602382955805993091763331622188654350772749636909463871297091431880463284024089493988214378993875796012393995807936644454749554729659961243051887674426906449475939180861023013804356172441967523582433965081658537027455229080321106725856018864752749304987672002840788296520820852600583544168526071597305492890585258892678957216634449330784036848457796897955153018305873261961719750672229987925733034683011904576535850119746243021451401652633535122262933956031776765379849772035172595982185000537495267976762044520118817274251819670767396530213132045818701276110233185905573125506661713023503572927156210135405641844034469574707950506528858821133611806409076009851722514797935551360825811655976526370920369809983252253403048977843312566538656329921838858931766342442349288286940359420725681203662124145664421624255600525623965228959326519017263866234098899452622744422828431166885588801143871491012696399818133961565919295133914403990250642551701754259943299215066593400384248891068227069098997956305780287684665491384924113883772130073208759233975771463271389791673898589951079954715462123263107451405461549140471873303896736368499035710269551539850201576706507641513778042967318678851673595840412824936956766935292458561596671280359690093773457438541131082994221625751299906736740717521015146920047944897189902456068888558023676504557348022763081425692143056991066084534032978449922594006878268004250584601356142715575281643354449729761213983999965382617517127927072146642308080203474067486552700106303373369346008267826441032199555141396292919967816454689646652197527920327767722110129688483729229067235940144133679883552557822065909463890095509114855458897118122805572601022916097596188906851280491022727461858923792017779824663851745263117379104058068178078360621804955477129868247379019759919730226866439935332900462671087913571449695054284247413486671425888700537747490051516360549780550338407029558434516130991324943687077030663962726302315653813834541806312507943330732242418553248178611385065519250820359833731813906355267887663630557627749803222118865955999973335098237338936614001808490232461009316476006376110160129352031735058782131740276587118212465771992193279593717614767887860553495214975471965767731099322590582279668348548291051429743716195334212564848031935896678078541987729552378077794318370285644409266237592056955505405146511440690344118905449798771626686288388153013962033920174896922527278201162297213554616339547564724738686750086945434932384052678809463744879410120668814680861454174048039267890528848123224325693496056067998162763738394274391107380447437591538168767553895636629203502622545390378049791397384718039133896578273207767927055818168302502234859954772050972860585018429552806573140321681605486541672695225443729997218322378231795774402341225843474805128480727485332404444284176457996365415630418304611185296611905044018605528045371902734277701306863606639291879910632225869300474395215629389976879578820120091610202661004964332212062080965959305913387299199719751149199657821359359165128629506520821857940114264130768817884234594909175792074538543531836781390498746606526491925928110700878404181530695828065573207913787183986430748766572836900665804002828784448103021142288307669412809125459374340532780720327389344182756020793985857859766075432251266623401460010758131956057916815858691944698106084249498510105592947972579235340086768456313871134619467029962314987015648235103918580337172048436843648811853974660074070014584500005682432713589779010021905607374564659098933611671841788841636653295555438536778109662090572119738331681721402216862403855023340092497279939321105497302293223925028071812759744912058881084431544149062323511577429306913116527367707212232748425110589675814447292783339944989315475585686306842491073988156483373053035620049064231781122804169262891255591260985176706612156261308294444039606874989752376735810619375107344436910834937971680638785678822757198394563726982201557168892892496510758409555142523926721554432144384486973765052685006971819021849735382965703641021345290077675533986753639755659659475843468860037727437712266654687471891729800619241627855305863251715362229528540976070870034465625296548894826604870148195798675333009959406645142806801112760876097411774837109846065643223430359773370887744500173576959596724357316732283683576314375342873358015167441285750722840874112831239282617293891297420897162266382164876494814800085535270938504049836183914631264112516009771216466234584395190499681698400527093198369148908125545409321668453435862022468923086113381565608417295656167507624204428515829423618478680828892164158155390857386908515419315812346053827920788642745728593192183286170640086031219340124378440235269417039831250561948118013573964362243310885172651707089482759522976180194819808080495723654033509920472726782306839841386171810695836762875241781073882590877441097740029973676617898382125969188151294424353397976606587921143147330626758403614496822084175029126719376528640171140659940521474927940455024114499762058947847393910408152604562015161147011661619539341372440833232850093639997955244410762386271626230637693084861700407824806821428951415064486296254569922404031659966398551424465221792723054879264993261687237176195023620319331653773695941710789982609316790936758897802883175778621362327525678961891009159934581754310475299517523366203384030528554287306373507335123031204069684841152195129634233077384199553350594339188025377060435113092794611264473211147718820646131206860087913913190607616466690364698157386287983398934900082595604185141634064142598497452213604664960341973998568615227292552894651466637454940375583969413273020750477622363714867895964115727392632023923522351100380313618069218322960574248775817357147784285978357826092662249219440913133874456608798513058395423535190810530214714095483358271511264063236402352381590355343833546602016308263896279830648733889083397030027193336208502079463737506119230602985093458967191173812858926819835891907435635781372687791399746880289169911601706749143545072439050740224830568152372515751999153113127776953267372685946687639683719984181747474178890430974586722298174319552263296082289584476823046745089156663790023792486566211799758935871281530327688664212857984113814639268179562277767149719353660145225616867239195358724544336917893783991099309680941041409564082310206047652958816166428972721078710673179755222934249179488837708682835537298197647793096559371652419587550637931829761794970920478235624146596354498066789846004501523710037006720062326547993498736246215209613909819121478420259632323017814075112049144037434560660429297915798751021242337445480681322100980920290561419200520738128518206537595608456060399579703942255188889270432404269473885328499575180834614514102224637319490152488172980699823853592258184663987440776104759497354753334374661298700481303358021854786757778923158472101638551144022798362313259941072981108188736961449843774755245487879256303623941083727473123084964661000667414906953916185392320584124005385879846584140066242316441356702390944178075015294245464129606779383360633648610269516627594250274663146666950457542296756329636207611493824439558705990747916133822962305024132668291957451119062747309301256394247711317131932497800263793277997555498855457849798361875237785093059012917913595671780205802419813343768062369167640199817906148776004368372225708080036088509247983495125836736837285821930481319093440828121191910381678320970195137485470054615173035854662444598111734583891085439429347189701901363765086700542944525223124554569633997735344447634014049779028045329398410505224940704384028931219329324068567400553773104012105236198392722610583803984841019175061857147729127330124438065678038829131756275313546791133798283869479459431566135690916896444009668687638079179760455679675550990841995437119084470962163179758701822138095460431187217010983767106617630598309539077980460971027825343523443033051804597906760960818055268673603688418924658782320736018996933723270873145892972793689820346964425385247354059020184551013522729847660807409452115123937481547774183373025508296279458814496666858039688736810294147614151960409934170604672009074956397860120386878468802348106383776242746747896526936241703278904451728228366604032537049851968565820091269357685685843925263722278836156381959234280528747516227799147334960348388137763155995234873011419975963704824616193528609936926757153441607916781633153740650597726108902881920350385418871595164414096412700040117602718443953726562500483558661225879361649162063349829661435851048319851541814894830107972262148031884079930570269116681631569371337481339916023124378366219071078501528605580810325363774860017066803485132950169335302235420409796069218056158986686902544219861348856291760501977793914604489981637867435522831331355020602163675564103604898032713027028321326151523184736741027694025172029237066008262905620153080638399689053038483720121659469207283876308350910583159176012282802765035101478935203723846139104446269887909891924694970421051778941586863819763080935290153946576094514749431927644099287974500678022619686576125597488958836566334873911573939909424688703660733508648497853086757925148811264360921223140735049087854173913231728587876741942258984826992414983244743333712914589988592795577170334811646216477630155500144863892249817582404452419644402337491492174433051624550248925576543560420627627173351412497987406263140090467236539803810211359366695544850719171068367793134588794895326249788260026263092079828655823780614977983192559035340050575579088533406767200405323451222659638039368986698045777853397494015708997068660294030967320812525565252990109977611053875418858772407558679469995188959226645202570675100616748131808465051062816257331178191866022287766610937938636569090547718432739751856414623569380057149187688821878822627454570539639528135817290347652641353637091449737014222086882130022545108284940881145968459567617624450037556409496004224988966376968542461093082473664869297184778372299521845226017688384114268323981331181528134783220667414054687072447749156921479472842893067363264493752149262329505603862717180770233082038828395295562571137472225515716368490631371629125221526079349130316960160096804912070514953677875187358609208915453544276749291334306079024310622889009938977850706050960335317802753867366013882854147535380684975610311464904113868748980685266335693653548079562296380332599174016172008539680975514899422858592518410159592011246170853805774180766123170414919659862519467104551747687908525952664144862406146552532962509770812252057208136152130407194280240215805865595635297908836300119623707441859158414397146536736684659814322326657658495213461216512141301525767142825504657121666555726764949203929813528423349948780215241525643425974719888869843396156943422292766131515666340823297314878584049352699767024237688758034587325178893415829669764059565191767512476811095585057883284361323981655329317129181677162535068059730582495146557355199298776387917911219510215254851571020275609656522374840175700038832611043312425457360985310342088433039620091606028219180259114777451484431358667950313998237376395063915064008701809471245384349016134495949512754974916276620529214963685219053047102336622753673858645441588213678224648865360234320987596212890456291712786904882822424361731662307698023946796407018799622579460801490781859648555731051909163069269772053175590794348348309108429879042746131166073436157840234197928777006050528726323751648252440089990306966496967068604902125055945261457205412177720934933366233568590792940320939259587990686212880252168391646370465088338921388568410437720312727758462640985476085783871882581934496557144763313318431963649554305525031623336144126935236965992858806870980749734649351820785823686143034310317930167274129214330711267586525718953486379882526133218395323345546121036032311696173279049170369251133556572037098948887695328762419537529997396415071552946699765771326516596122497064895347189929430568803359809381526933729637982320446267042867840421995944667015192799820819665579927919921211526349754607859063713404648507269167916195160347288973622532641653754373825504500170330080546628268469906092787065029054060385391750229382383117693396381292157462751104435514167869945236494090916545407738183260228085609137114718401119831817291933450379599667294336105900549507947140097116903289995491801542017690879077326100014575785619815355669749767559992461783633629113898766762974420146297394616618086377209092498362426441045429153091640159675644915857103626679183542216974337878898427606930148401269675325280804127415639142318901166634456294078845178070317539408601676486308420155671169698651958336764014977742159649537213358800268064646524604102188979802135311384732794244157219021188725331150996067712795922698853893452849188213664852218367261305354083538419728196934964704180908678012795431985514608042575437459046376015270667189772073456177919582263283913050336804487694353983884410392431369679648659605318048792178089526400058112824469311476547184443608782736313757503872466804218584125145645291978245520658199819360425961816451953137910456233260947201457582220163398718121560043032299040154926554797933782972282036107867669654933793237670353447385688882410217516409513176963261113693993636730110577943600410893755790780780168229890751928171412759753387075016724292850583413602549920994722134966572295755180293989818126414068027117568652942760816399108254943304141318729209079068428892833952584182857664843318558033651304763426607807692239331007184510333557501374297704758252431682075663823364330020187428201755125934746622815581298437561663330245569513615011730476737147695027145579438854093313869279455168192189806173685303949314206538683300163838316433656554607398014409040457723158860546531102986504588920363584973465916582162937423834453580863950952078299077148781972437631489602782745063889217533746219672390173506910643399859736494960064693672825752406437979619785040440524183242640228473658231749415028837243646694551046270541638706813049664096732568069572942199298409211172925436950659175740908908406820976175647814576050039750934142913427275597253155168532163189858112496140448057861439865457115285429031690952479305029915666395725333259640642903732449782346352441871002741852170588526100903310090618163313864337375866554700754219054869614602552544706567948981924107820830336050109836228860336957978178725151718211583689738858178331343799711334674534413451218422881723878296029225635181066264119678877766423316936052353388254636537218383526360496589509263014768769835528250287067270185293388888051223340479729463905012212143896403048758788596540288515144178595576796928471268365313355386068351227955548290828173952596482886873489702178320268964989361124910685394477733518411088351208011316220324779668627755235394856068974513668487062839923468924640662583539193907063335121770908794302641747312025278073164437250611406401679500685172828028575039465313069938635560347474764298892244066077060463329478419852952115890879494990389127650049121256423116419771632804857623223068718654853387935776241727802882686104539132743732815568803313646643471711520985916155572589523036629225446670284058084436771110737937455848049392345713246403772183818040571586164645256391168752918746827376975247394935685207403850065006487430851496951328866518122394118937277833587608363135076715860677800207593224677753308684812078898016644304000987327175985457983701672156433796871288348027582211819049383977785710529307337692591030340923875461791061509054414870957976564512937242608876343938238161488450114914567468566685619291422653455647399377030750442130954333294292039539193990609265008099968955214889536187982025764489289267175811575246322155670961425534933397600462016359428022144464588612651233377305198454604351928860010939161242704249422379010090733210187598774419430411089375293258566418660852846437712726166439709269515870167158493143292565133219915850755499261452256617496929212456029356674499898280247566164563261907325847484134910410624136804458544367656717623269215122322484753469419281891021480644073071952035730447279486413029926340211627533036987312852304261492636878536378065319513917370300730890660849421017027813855550018372062165124256276982454296274216388716530019641183272483637122724865554284151710632944511162421175739723126729381150713239917718920085950843271880008333902307619681801851611574973146557930846432904771866787510601981509579676742784673446852668634467573860781549162937675722608180616609855674297342781816793782622565211558466121348576443949961953935532070550960469399699997466784753277635084617215652791247530483422711804538134755645948429247877754426043619223817216704901665335136074601906473108114538543373867438944034390398173288145373508751922658517412249062065678037188073288234276707235554209258107787520461798405536071989853012454148729425870485049490067290104445139914324579461777416699168746457556828105076198932139818459773688313376827659301887136083170486036577011737794661646220476314280445612773683021377806199203577745681250943253233389488789935652176944042447824423017856367953187237886347912194460369025934035097056546253472594239295364580883130948619793414543166530386916067849288975215552804068032679846778637131884891135774034320685836024687564641505803009038675920750063316742240830299564671686176853165955209560589393580356866024470573342144252300863021715897146383770931209417909549785313266141546636780454344709144927316986209299933737795535469326767862657188995566787158616570496719519223662890995389791681666086498376413714808411375295543617011985123052107571340389512193053081533070304596129042068302280294856955596470550643210097279398356978834722739703912805494758891643908681164610797430989399141705821179594362401381835121996948029430958356939332665816846963053201734031408826811012410236036346039372742764381040330862594598298939289560538396069326470472393190649590943835528258590505158286573815510061997694131034841711127221001018827013316353316276776739732370869646338803812708165600439095299911945333977600562547451819222968642364905534815244273541892488844962083459920752355417990896301103281765810488437785866001246952841857076592280558952239570326938703307419568800268901625528310159984987460308258351595131806853269553554910055650628147716517499925681352852945558854182008302192711047418401963450543869571081507048303991974446304823618297638867894047172416501525584295195318424126584223536651793839573235271278263225123954306411532146351155835132624192498636400082124199215904970534220601426987154969178682341624286775633720862326040245261553842943184191473275345551423335081785921212514231907876655787037219668257262840139784274867703471944036565065046770064250723534574523308731909157608553785310622435657556691246685758598973530789110955072664115698859077834797193782320298511202183264612673388236267502310418674504490253899793731162306381691473048533460438982337485167283455586458470721729789017653993350235940485635863240200705532506613236833623346339805744736814009118110115649048305752830005466814019349279257114321209018120974446460189261633747621049292982348789891966610273701908950093288670072954996363487644371637203148179810099251645106047342736825507090736457875842596342299020284042370517118789322104167971348463372931602239201648621750385593356883480693493775293009744377068617668193297234172862480223544361626735141989629455370024659579163228271034721116366473034281450167692507155991506026432645068925868724316832995988786907553692839619368430504601736752804408019699464757540820236699795976658527931646220259522947812271989271168212526113082301996704747806033125795506643624131095774121806023970459974218776470365618345122821284755442246327623230571471686651387135587323427481928918809479403950227639912409425360501928057654664427800199355018275646722003510755585008166030376797907847848112314880598448929669102713448747833979919805534376377135818003711008453450020496684282827330783795446803391442498184430310821215670259102527738625452166483752622725575917665617799017089279683020005163718898354237510884846401954628965609090195052405423623108855868243887764304476080946524328526059308765676069534861789426118092373597673827614004734632683358619039500709831268079410525886843784728850657656879363831638509915902438181929185249032374182890257738666323329429124860794868392889761453539142773074140490206115871674555125885675983494164924054916068089804654258743980234633766908448856672925642054817169096712445868030161491940318254545584229678132110818346943805769910842190527967677203554121356379103466257543942941763064471743841944448144173626397926462989881386709655974047920820715732817045080619322866389709271998690162797338335128105650275512373035019311240537271019801223908573095920093046460018103526623746377312034421497396774095406781484476190163179217071315669336772685975990543334048982235579174047841832505511239645883582679577318286919909513978910025186461902385750021404126780409102732361359384553816863607925597895416756758730082515807030356009422074361338774596525057280779252271236814847934580965392116048523206435153780362704424194537790570963801292051229507870327062538864888889416182637175223760773830111237511347234232692081123238420479469406402912482097484478061730229340164552191138085791590540825377958594092150229976374434744824500813683660224220394066884658821706849797814406157663822778807910569398049832222113230753411435184383937713387343571699131725139484167203288962107411759470821114123265369573251636577280269617327995077705915403969119065169314420678308566165403863258171106896866962084414166112912108815039195369057433098486246410316917502575758311277482445398505183317242115002568374402859776748525150392716706488281963746614851255771227341684724410482797400624749477605646945595160203336159380583057047419627872660701820131208048230511835482940034982294843666925761589414629965016988796229249237387584050674214651563626181089882322384659172452210818283017249635476725880909959930646053502718087731911851990574481917420019066608946081511601039907348048033678940309412762054341653405715694236052203817540622684629980778314049990036927050444616927893779455763305032716996238347580914308836291056421142790771098861688764389269538078043236075902783111387459473111923965625608257346102453617673459035085711639980139458998586597366654315001819663376619105833013610893980220699609355900572052217476710117525396358863016629265888845462237931937983098108830701095383618022541233375814010973421118595519917081019063870063216472599092158410895413543788457232683929683228067749055576385522181638816012264295890816071195066026744440563357589787960045168538939041009346632611909174972237391239909118578776098583351582084034830799992276748048490415550325323149451222460012810865970638057626208256865077162207379126184597448240141894736814446252349251092067255829256225065388812467018678922146344355746925227856426354751381720958281424987504797408729074571393904519381002929336750558566698484826661232172743705752403367609357722612777192788897125390725019984426984641851564740479190083022052797324259852537586832796248566818348709629315473942893982485363646406635289920296671143011172725595216325637173490251664710133193111710144673205037354533519039952228902225305251325401783147812564148998734212771379085094852323006976890411740561759143126279131147757697162632157362532301558166516604093253957672827685116675329340832664347060861944027183638686942520881842996234746207514550746555764423091803201417671554012120084157178524088986437468905271511901401072803202767091508130243501351988860424929452670051051050037933170961371445012200139021751466632306704689339043366694564241938454738701263395866753050502044184747721223119710669626163605305897875469191786845430923817599781117349136640312839617309325394868176177169849096622641708134008025133175241890145263942861191713668982931962118994039613522173456407640754108643837090267700396776031219674062042422247258754278253704306691063658744519263162536519679723639224147222532587514845988255146090049758756852631720269784206815297279568337571839114357264136560662243524422392840021718514046137101829300543400853580894104553161668145880621425519708436351121870961146709797205348286590523639917791694980023818503353134091691885428302712589849815544874423767557609949356342631001053059158045263595936130683387303465364911671377237943542005626925735501908595656801077458807348532581832280624659938538745794142941448415761711845611739379828259262777685547319123622973107694282190913493078423853855634054108632814864306595115554451729280030782374706380566677608782434726158578446566401428906789688968523448734885929383422760524686678067325559947240318549952113865200373517053397030756252833393951057706999711391778522025997310295530217367460739291733512201298877750438921466147058518276581908865395494629354104634668925097702344042891158308063511449987246573398733590167718100813241625603205309163840281170641482013677470862361729049855382326107619469433689320143507991375013780114042833639551709871567573281783530462058588289635367247260961116625233963921894043433114847903827662149666844982013505592687272309710317010354281494322608363633565825324668791353329808295166640295063765357146998218811904097539081467186493667340502212678618753851762065874867635191669821497125600144994718846247350373787212285650840319990956990423047841834475731843832753045477064715418501984444864214754925640320586289608984855129750163317430838606583844487606444839289262204892966428549746564292746618691806095687011876345700780198579113937944368458716014426182262993770807216023400823534053452402937086963909427572965445086487988645435143074053870430901560251660367576830010730931726682777598808762570180499344508257102920900467074415254518857848320284077740500893093820634773810183498152001132400556795852802802236310598797961884267218913140533494274404041798921853364135422161853511432692356058811517877999267281590195100116730084850311933990480950097542643515335468320669426422146115200016906855216430728075776500191158601012193091161741748461813748739854367440949811870473878754197761347018582713133489810890117904261240491332237741199396340352800214566664839812998617990036182979185423231737010439283914765422265039235420336042128325129134597103583005447189235691049597566508686306214582464230566187587362887097905318777144920467998674220952445098658148489506348242939926145480103462765264847788961619830935214722126731220547374663679860741593181016830240264053862833787426841753755862506522499325496507280949816148099558217791507081601629720758442135786200225173154428309810158614175047594667335690901116612027938404328373057456542702064266674307677267301986808187798781336605842263239093200009078739221629524390231074901145126890534213488636454309166896244721596601655551211164554311087108330260329968788785195020256306992110653997758491161778880787829849079540508995884802589960528236805595347419331376894576340425064668808473277272982982099665344072830165575692062663163847264143183255999833706392672684898062678677721598102867182890519641260649124823727651177672201304495021305898458327187133070803340421448947543604353938018934676772366043864680559348204432757375979464767583643544512843752975767232964149548092446781135141096733239175776537858248927415341729379489594177788280225369560547242538278094548587422285420801701876632011920011790241442574964103525359164333773734568826667558234166125254297793340970977853158669622165840013297262716099857484749587990543624335903073010127874670739477129773126950016911568491591669829976223795387240877782545576354576465872034853327537251386335008767941124737491370553782096764744051266923506333203028040323136139739743346023669954325881068239049929532084663305339310117588382650761276891978472798412960057596362167860903142055243495821296204801042494854809203442944108733825572794255714175171714501279270242104014503939555324869197835038500470367623052427429893140393182379355744098029157997632641106690551051697702353334708120112167662579910563268532170558385817089736773502194460400789537903680025550931851629591203734500520936916516678248293012860392310439495457260866949173260487257338230945543630697964383572170013077052298095857715977035548579848677012677704766549657632819845981774098310348691025866809779998451113679216037271864009417602313251460610749446969899867156270209771909792542442880295699387310158336407794346937891185105167503425778927676999456083719140815202229479541989884374179586168565685048535728582243635664501484416686412545135050053198388103640376018837149629216356671415675645864867532078214910461498798818252911981114280936156837091502702947530543589687599756285780292552682548479596813203185531306468996818858912885187525214736723022539622818455267770939444035312823075712382034164097092032920870910298815483660063045933126842061835527706054003530209134244139331930128189620774725245855484038312925478237148783997723774932957153886446617354707762756878446051868963457584081606690292583596817007102955629241856582413597571890190012327979314989519685423159389671566839257068371791245067262912996249881064258975875498230115276566824454178321987696926999926730695928446429202601224680713618374745863706799912472629987226462719645904424185364435935400185636997709403095051826126363850645191592951844716039758996711698881212076824922883738947117308866985652485083963376023395711812466775111947429295179747829697435967478498982405738959696062819094750397220478675942861895790250054984358138893077387199459179518061214382750801496726008456543275853328121516030133765242107081298772828949484836608144738091466637641811812477090417794712927891728594935650109204981806612012281949076234559676541839213448388057165080787371729987983571425530966590254307900413373773193667929079358124562873464180607354878346057630988269673109111071531752429283075312881705532193823862903855850829309737666225974208011761691220831759926139552839944696170207128666397330003359406756199556885566159428583093882468300661241045193444564473105135082415266283169171784333289692633374255291242217912882372148114460743204060977104212801984477537871155667431342661299074819348501083013656946476717814040378703615731171346868885143622955145111116556851389537273562974700595046614755269510855095896959762567859533433362606437737337542698031865709456492089431037483507657217845027264744192562420497577978380250152612015660673994187241406324205150710978121960349032115021249738780105359851186981066219505150101123466275597114936410954447620927891115159400970679413323362959965610408192440754120341143266368071529602849725944320690863101879823632833838780588960669847050108468397288166615765049259956223131211339110927766448073475488964851561129379965038342301807387395046907529788346969774616655983183970770344729064435937959674966280085470082723970156496646348271622546999586611820525494592914281925534581521777355014482365062313273671132412659381174834483847756984231927318636917360431753245978312013329113229150128152144193891440496483994726614609172059155603559481148259884807179104100736325625106727235900293861880829666994238347205110733450149654009182204571817911488872494522512515926618313370611478949107134714672798454644898515996783111775781735892106165855810671795711700330153432558208614514684574175244134686742412468242178231478167748218708572513145732782394950938230759074198640071757059505051914641548889098344691245909361123671130044199047170032454416548976432385964812610965262213688977650583880504007375577751709071439018762510676319259159759889160126448603993366286718167186450683049042769194498092928729602208640309029528452138404715914140817188258062406571032510200064880048209081451885367392254043445944136825225131119072570441865700501404776644978971251610496881136663852330589425200879150319542888877339725520199616549881197011659315786229892282222060874782427346529333843688202683066029595939887888770284454543887165506991844830182915024040008556921573371755862933945176563279235319412030331971975586961146825543333212541780488544165351821380070295570354455984370261344938276175651203068617275617128521575141999288055589690875552640848291334615279357693408160665963388735093462160158886268083066944739032217168277673039486088096921350824540789106963250464196452739548909995965720023321667607895292273156502901954740272931194572701066376907723950286660852303877712178639512283080912310866515224464147524101773176471397028409979402221663196509414605533058794273185487112363655968611002808891651721485639148702427265816790353003958786387872540651085930487689865456380713749641767698073662470063549038603048482901459800322356590003636212502867883212296567458867436667840300227241574688741067426417060142824408771933376590667245491828186133138509252927784089594549085231900841243985599735229050144340168777104611850435278959171147478456723763578530004491794972549704908407526739046530039996031728246132939202094013685370639858255618478782312433292280706502571267993881555626737231762951057291560765636001677927279185452565514197651713191112431722093722412072513935509173372339159926923790869191922560013584750998086954862962257509352714743492339900755149707117705331767735549955517640942555217564413536028349971133012363857296954072767244851893936185812923476107829021996044324696992908504458471504211312967804927557193072937347967655717797519951778075661034203385866475648846612355434553981086437723667192308461403912396589406088921794695853687153907883002321908762660687639344516075287015930583463322523103580171807021824901963990860680440475579781389689675338446669082803135571679413562035696302453451388847751462869101732990649084927352176399233123829351458899749867936203349554550800587002759808775049814925007659464548128131815557090230141074935217547690818241650028099247344527218514612360490516520369066998316127754607070600224922235496679387999803271516887427509298547054002709673463889830638150412177146056961790231581312135872872900104298246377123811836448367729627233144627096652461761226697132163452856260216374832485686521703494964738052304234952409266990913152024313223373591215621692017826613057458260052786546290251573808050761097532160827953697571693570443265960278670590955314730160913642285581368898005872247848152822258030773134951182134143636250211254057770158911947619983337139067980677789181368889537707072245840964722046803996272521893787789792383368880537064368338713971849681394862141325903187749468829872355913105347172930388220483349383287184775853139814712377063247911232438771533798868364539364360700104850995143902049961866472181405220779572221365940977176552585465545439978544961033115407236093511903176098655234155250444185329398686194071178216782002291150314104044753857723763794987000937641688454619449227437598193256182991975872768398043221794312329356195459108105305656773587025231773131266138945417324454152766570839872429900243290615763930840334975686741058516427301130465636899181734359405891937815797442305515842563208207266551718668161406699304411637218421500496624155732175407546414510784333908092614812520733952198952000329222473734985697259271965916512851168913964554589228153657951341196601606828894443503245491433722393788975282900440693065000306117717873282794182049469653410805744358201402248170934624390891320103089628211365014751089872921024427651438563898502338259939577653896355892692020048196826461155377865479607790833011643593054974031753753462192000846348864262768382215717838252377409569338489920640993242954854694909145666674200293936399011996300929704336228305169279350260921003099567077870789716793929516478013957391957198293447452413820182869534793005832092739507783861072142227333722020789888556713433363872116738454170388079397013547687037325915797536988266735507546556428602547004552105081819792477363445700686149391832205659695914564676412225756754245997663616942417175405079805137496996279720303295750549876949805607226747208737876725185602843443399092796815507407955218426295912958044460088804806719251145544836074312842703143318453864154555866868513802378138640744741873168094736954437783544072478414331507792782169000332392448050059263805320039555816719435472495092203201596378605493752013907981749123618824965775822963705966867681785668898224074016407257498940482814915667950604830068336071287934234291705746288111856919774878372635286288228125039395334037316557952205602666422747001014115222779819950564233770464863738739576005549362049091804996187542412031061545233135429329209090137662084185584467414847478377033771462660705145532988945261362837280009111354576757412667031812680493001428005235813323812431198812442633215041584179832472850244980694961312048615025856807040583273381527483705299313999006534835672065761360663037286906994350501647983916341246530546439377183084690480371044137523361402294697626649130451535484855436574028715476727354862590663958575445459746683630354957770294004309949365945950572472495204909097594235931364564340951360275410001837037557257883096472633866005220824284749146161227339107910324821688692055893327067879011865927884611976236641680210356071359344315411167845058559779662083488005849964071739023756624463394571698244198378903859391794280500092093596013908739409500025758828401174267229643328456956309996658537743527095116839495699012413662980660791158893509742191122970988446699074340578173224302340297358186097808330724221538598669025952041429120601981439404986802970151419306045513359842868772129410893346675372772359787523961160050333727242104837464680002838406058338039388387647447351455837807229781750602207470344794086367451691380359568166338523801834228407235863286039627273442159222351220171951400993260423285554673211552026151741562089982099106051130822386175944477353802261949037461433895840050229743696368126215615648160543872184328522257649957873760977120276932164598401228508430686994919137136745308906555746494563759765432072418706851890036626364308608974643780164618235903336149321926534019089375858239241759215511607030258219592511787106462489362911605410672586939845822347180277044098476318989748831771299352671420727726269190187572768614064319221192946214930182413771744695542904364509628593929615937410406784725836030317998760201836764128562923946857961284409457578877267634378167290766503158243772341488466615921871932528558633696505812020422775429944274237963403248971860480767073385265303368941971485964892781267487685619017130878852538529017956556715037663292952668174348735077724580552199914155700043828851558794751299626691659138703436527147665854872624254062490954743789439290630657553267157868039163796241692357407578613285553622964649905636437863656098952814065295509565928080481395781164905862668219674215909130545405904244919313497219343278946261748478219503735855888627454019947778144039500928793583845258075034020793530719339850167220467048133842316089540336445393978400086135483233004975754470643134991072320049817966100364536222106779710489365505106034300080869497343085244966213036953913082696484457601159724014575899118444376067640356207446649997052104197748973197790039107336999367826550248567895798492045742303151952831427382976880725257433231940423235214609660153243901959587703121832112122296494174295628594809155902354623180604819539299956940245459638984044197963720340391036447301595964005919789602383648647046587654000158831571470689159349252744627837121941350250501850493068740994530952488000773407833095367935591414303241423201656082092478681902159403490990672769453903338615788995009321986858880885043601480865115610893190577505466692792016289346816828535391196953518181698850969153545021555498791581081995162357963968326510165169730004821972628864498017738761160203616849358180584126622197990412209296017973871572483379823557597628903367267108915038292220210693665020018866213734224986429388356849159697491418827019843398762234686037509931375493581496220935371957825541796024438434136084072704786981947896416560309279405010038405962263949206716806723755365630663001625803059744491863056858531411365854840960470264602897299638662335049854217682217030502769658421908742008504130555980632200261092344697007910410862914841437058072391125055402572337008531815431477061551104898321200471235576952654437703685370088644172710401412745828582974282039797493745182836241179904444728947861503907574923758570952334386031222789632409469546801579182275917102331531532819880473750298040870195658051805386199994152543714761330037737324021407554039962888682095377920437356816955937995778837982660639625283338252314463645811227799977260140831971371429594750235692409413874013128187005850960946284624092952032761515543352401408984958937390739591513497410606479097176655443851294292451491480372235439102604515604984364642871022897122500546541885245994398456069437011334020784394413652300190064073235149389192563198795444902243072201324074561469363568360509413116399344473147100501466268374236853532740774545070706523265762132507417607394143874238987910525505849690303080876852492384597965302486019996142381766542572999714483808558539904387345832532452507451415868345977411794630493336242190718974430723013550247818892487262638446340455141534997823754274899421046235668481919407843000517126180110246325560968888136552641807077456362632722691551636325324766927682110947070003245702171126799010955726222996973678693866762210091048831903508884367107298522867231386023646021538847739556337856205522735193038594105741253231024430617756782650168656402058221795046616416902655295305664712605390030108811372488855482934662282557405408741691559339663333079729271240728084644100135816995929622758055972814529507810886977193898671351613839343179399572377440525880928201986599525530409578243683866921572251829186086779564371527320608861448910182042865774566124885656365857323022694198295419073274574606004539531576910631221495868256042215625474048095621787119350223562413588675640582534674938176664840620446433480672319315846826459484291448394081809223817887767730059931329615559620147487568171199016056899048855802811064895486146835113140870687562253071706072218057041425817744293609547904064566699363290206573612945754844210343114701448598545694581201001166561168726194690780410355377404963457771857579861597247141013641859219377510237320560156066633009861984064223360412148040009888563417607706621955440746886932174568148532082156197032639352707887393442331080694693518103062537045767063300738381635229751088428989340398704985884289840827013823046707984429789320470445628991190335228388740143086678680105292568646257477746035664484158031683753729596162023180446170696344288579718045294157087773721324234559164434684770662537456514385611704112913767117296034501583780435094982682394363921354982518059167236197321604458276557645229215152293062003110538740324638868907909051517398748051255911540249805283371522899929513268316731536385767522250389241926822582904839967808664305644302011826570283237373614814452903282277822994605697364686052144540168908694601664848650018342874407096983090002588523784540864448218174481286554647151425348255799043779920446779501308447934115662154373371108421852041803923249419054496902040486154785888646399464417686116862218615296303180755587715920519516907658957102768627480434057670453578673416818471107228304581324796703369529570984637084334650441578593272131941852831362019162326224396546147205659440964445961611548764717880474789265316272338791027882705316583124485840710819102178549583560749880829157961752401583467067223473229217429367328483632269786158941967564207991689538798380319233348541288191224049126492310934261856006598754371324943734893505252274694531460630341735780387854858433051078457702398759984714609554744416333932873728853380355354150843982710322777241202471614662474347540859634302548435214116753101914944480360335809544292392314911578967339469512714760942850873663044082381315284592683360407617156989978117052620001160201961226895587357526209421230837737079772439222991557364927269572465653000574116896285811923275309470334170813556204654820165518102446583843938619259135645590247390048608345206520213366667548533362004871514670384000255911927395888149104445555396671625393009383312815909398664192630189625446500293673319136117395909233871718912007178981996813074085222667737889153246222078506969274938673798218239239036766658308373421456119224889991291530694031135504520910827310280505894274916766006883019231647013324239955967803672060402307305300446323095250477353468322879843021818618913720745683072733337650445753333691760842895756334380221086348790366259834062519864807801484086678405453971268945342912562998459402968651085416492420548756382127014684714190092892279420064607002961591668838215850072133588010354238559538015990332509524929942744136495300334067206735475567796309709771261648666055869473883072251641284630732145524536136780190941151494460361454858772915371300965377657993594428802276923831972674402595734271631911194875006311145311951004410941348273770336923218549438651852795413031084781193618525458324638050984047615637721029334879721404559371629336358339082594965581972359184553297898749674018941854291931825450261239587642881947963191621398528990569934949957717770542956236537770565272790387802051870473673958013279352841833030285891497402458552204321021000947758906192286752902726965385891223559177091556895013129311410615493919515635080071015729430706355593575119968966013780067291822223285124537056428394405353583925759257563195653488473101564230116951044048854475210850826944386029444147820489670275435516650678765346047367305310013480551688520575019654356559923640374769688499786489538522450349607464476691817550449173453041302210715518773498754058063343508229040696735697040742748098238898329737653832104431869803245933077201527778281289000414547599069882562982839172516978893705476107918832877981671775957455154188210002799829201473312528333555365695411280960364262368852930882377663657149455807936035755306428182282735811402730458740855616962647852070961360530455874312138852111897341832362627895602165371428308825877341041003822561682112093804197617677616043341061192262817982991449177170511744096052888842651723474992204050278480335295547881432345326166868494891599218222059332247225596478142468103199336632971770151570684299712920809464364707804357107912489443993820130109687978366671423234973564179397188186126374154440995815130559168826869528181376290340013264915512363453688785495600163507712906956331834393941908770916789745681405815456218579810526305311224867812690315255997464426434284636143275509539596952358193468256727489418858765975641786882968107440664653778232826557369179803454902134849639168252347533888839155457114171893757339051135073410428841078358944952636813124344571971886905557646713241589307334687420849958703666938124399851260184803762491544090027868515629041472108491939259920191378662663126242471264669105739552676043538148564918736533001426398681221028490524607607518734576665018808623028152329425472165814714095835282125524765601066252567722475212011305217738374587456647918191906531459491797249573353875460775557070379273983977276384272615733482844903057503062511920831703837699819796550744704964166447005639545375692676607796954690861782101764494611051198221071401199173465994833803483929374301231789817450206088249780925653577147447004718226754789113642093567682183564838492121738718835182521421928157582349121660272357558235924683723536440845334316108425996998260591911159001001551083506519975101410004055920089877903103580307724330820707494123140855290662001340981223903313011210922796608317605016155222854086420356354460861532807613180308261669086303691739456987643148199454584371402123841726417339451987069455304697723275992931350530887114529878487625486860643417985158051115920216110197379692816060880299267079654592035303952525705673050394615923806610406581460141216513719227821072351173654712760727806979236072993010121082295986372378321451664938956165023367536540613807722501866288362445811287761962538657238649581430542062680301022411983529423198443540440572145882662702382541856540317779794840239804597356458371475101443056499660309555273821530193950241013800402335030580924942621012261080520557470783052488526856648639786513123325827994101596702611132817727115612704469968262778622976408441183152827672828639068877011139682692806586780015171431162882030225111659351871363442736240213847265755886278354546196792048392551208609555150051909473507660034043654970633019244627261694214314289208001144944310423607036085124283094107563457919515405895326050449569423398618913220246969085405480701252712358433492021986727249018372551716392093883888793263508449931636105241233390275050120055606570349905699412777889807769499804920710001993505659496951889084992738805514157766683139876098650342535216961634493180469903249253574650641253562118682140460072803317072842275338176957571394698144936941277074151355932347777030377329281782388075825248406379986095958091730913237502996605676662516406096700694332568276671155155838921536715490577444298284888678868534771968330770523077343757158527515270857842835279409598174292246948277992546735738324103811984845480989062777544459764041607475102693583328674888286780364715959652525799227564884453599079802201706919732749344652931490550733678303260000706176765791619200507193038036874032740123967069274459289518184304615144104069322412586359320962830616243820235860703936728690939930418820288677619707853118661158708086658490385768545909361917750201469906389714623110618324318603781414202846992776675661778179010981554413561066577285474092466208068288318760438853162677700771224761129316734294073487662347629164351227286464461192754011868703124076770740318547157416511443052919299396297764776638645064876270464482724419736040858928491402141207960150318947064499871363241606091733127025519631697264346242418871359266823885731222972380239312901680683921068776714625819836038869383337490602106938137042946325635122388885532984080999534983675921726933796969827790718227430444648013413435639275293808974844154610845878945950841585694489595190724602313239943031430623802384375589300243373088216715008531215117591848856055655088708767444081920628764584007825255396073843216917563185933855736777287628159547705475870634508277507425022313390312711627420040790637892260960236594474909074520252039738780449727108245570771723205974495054602857687517747200038810656012134647114350732894158473379270279532482504683902994995778068540492610819162645333146445246915064251418814119301395692661571381542936547838357335260189398246668932753385123825906037558044592935912919443463129565145724144335673213782496919505736829816851027020243098224841582920044744682009733377009675579687251087744345462307115008276801416478427184962191870281819291171476910635684926961745797667024770145306057058617532475546595559211613352944356412002303267343724801161447808862997209861203467934607337387387423982095329460442734388357784741512702245624946646786241845898105307892577784841817948192360038665420965709276591590146642085886516764578143588564820177247478008612565761335100887455136995962125971199379201016541375099851128702560010374906769315338657717130234800764839591486467018938376935512193111995274300319886909038350592548847999397668938702910004705195958262596281763017307512638941896055763868465572138427072376689376541966175395189958913815346838959047488778753199907052010849169159429588371659663953700126609724706474939392564672892693598453078764778632568080311595422486831373354722136783027286041399058383789706666372810524740740970929094420010022035032254292535037492336280352286009405907661189496791723805431017263291619037518116885573743409465763146405960744408774237511873971047722404700368408423998958929839078565620152230633390977204883493992348292005690924126051514428875187693833840451625783820905558244828454572546257955924638407504660862357203009096848345396552718744602920472039080077663226051324849437461392916228201388693291701602702092439934520952070076430741473337632307234516828714147820008993619373692197023575556819099773246294261015606190633881187610847088484961399881716068962684655931335890139781599416630847761547182003586625934287646481603056658960542723130334908929057764808200194987598398060878793426691929962178372143770582300645336504130067117346460357456510628340613713743757893351682462562791364891690404672864488481215366547494032143768736829158125436956294734281586232950192539928257138428952589475938775301442421136416332125926730806496388815238229548203771991568266874016159500057681634688683218173417203523310832635699552520668708783375436761097529069471934907479321433566527576391233898708991490052281662209434273000424102330896428682735015866222953971245389941713343981418620851738883238558199574616060027612206719749290141954816359549909718867685860987282691263831061730561042245278539061605329956445450358457708781924393272666794505807468178211845518745739047924995886768268726739478089678760834620748802146522997585327183885659558127514640142827918682260321349242329931484257583175319971487771524103217390228742039721730530725396130742697842187032172821025487469096210988733939687132776685408257544313384778297081452796962943240752004144521022342736057044500153593119537899423394798760308650032293096971914173758916138762228431099306773947417818563855847744510838312418479666591896104228387710380260103711705080141026031271807245414084714649117214721509846921541064117873930369757153511222551311870516571531271231083136209680489691405421592667092525340005834893923109673568637101398941563862881725066692255380892994165589804864080900663432288076339998410138767319450613754751629710496218577632007622653624897548908623625668841207512349222845079402880451672607237330019706644926437592285389521420459200709998185282464117593822090634268258169435993445612820291908856580170371896089490854377606052318374461461618647257013177940942875168855751308888309126294242511739813511718208408222927135423765884809597848428167109916308769762719027523046674557201971246513491004488553237123233809648822287388958914497026625709216143680634721157443929312313224140418358870335764887528674611833442998045939804040356834000583060731654743729514119348625259890321728387370651968914834469521826468907027114309539757580653454063029360279017419906859620170981200882574483450305208629839367672853385051436958887289707176877169455411928185237528691852543753662165876382158850126546464825320814743812602222832405120953904683963696070686073442133891492674176184040361513029841025448140911279556788899616873782804981679313470458143094501499542808739852444091856947250896883555016403241190919082790411672170528054120409805218340115426975492721277217707631701834336786860585110812950509718186534483194922116335176575823513192573990097808376892028881426667119684840531908655211529891861505064774486018991819353062085303677931010661818258272655818539418668141156088627809445870938595154525955222955465912827637787823812635157927716706679624768500954546159614073434649141036056180971341412846825714429405066826162868587245586537348088355196275662526079484004751896617726433872108693434140636249201001551035239914343525570686362727188622663851964214992813439192711324809280457362146108430840797618517679784901661512920447789860448451853888567852884207608537030451892577293938060437731948638305676467360319622030893248608491308719977057257124391517349242410250660366365940609614781313633046700773567209007275249380905327231429495538597118033723092361436334485777798743552524995859325279309194103789198968030827118808140333613159623437511389109610771147625015450748931632683783501489871158086465783162804598046454985790532589384765647647480052446986308216001455812064202037532338825794548259704629836301176437259215601503233538296330185225158441571082854474845859814012754953773098905562699225459417074406517436155674005457885755909614002960757073654589342258083593067943822774756132982633289754512594684703272358791150782789174812388579529836116600644808516129599906529543037435102657547129681280213829699346862787082792196375533156343258813485948778691596524303990471051475622150179759125242045790127123937936561615514184093176993899513557972698944168033599976422568469966128074895422849444969742819877668632963864257662429520465627849636061740097715504418345058479766168806227078993098563443877720796878852129289562692908670495696400944461666277685893310234445744862453366643177183654992524858407929318260671936294643282973049034919821079456642848258378404548691248481907270695452609890684208226492074019243705125262288296455189125655528346085699949224476875831409057208753526074044367090990468395307347698866619720151717495584533748945081537154087827625391140882305124369734887352345792727292563225364966266172340313203020692855049560353983077630026453841267563236828742166831933787968067453015961322240295337737818525347287829283933926160850777054088254090656753366277408982903988966105940522004890907604011093749421125173097625532718554365218772410411819225111482343112232473733854919969522751154452878340027828681086977113878329786751117166295079796271808693421388625196235172598844952540142708505357499143929899892925604198766513097995221426033755633427904711902070016647271841015319402231429684192489487171074913896501158305265255944341399970275900145066668848185184286447375487499724327091843360804724630122097925619710370523078819888120728764899710903146449581030966170182183795989657784128435189512676493888836008255269878416600904551326970627127914177581861024763986787631581017227795893812534812034967011679439222095419523505077990966669306992683934763950951353618544123871522242574708803435123385583207664629174464660189547149678446073223051300099722222523333729218635578463978623474088689909397997325078291636588193483696493574317862590291327925597783057725355470074870329991074092524387511186710541519636982449325088499097908117447305789325188758349690761760108575138762285530495621922778354486451475462529718734928357920575008348895964741792132104771081082301692820111631962732730979615559090804468339368210198330302474605687550911203750442373810754381876828827019614377621481981849266166819086617201262735045867884231040508334508432241246624826871777914302583631496312084506831873071075299907817820098020461290831082111099966560687225590171257702253948691461977744626634769312171202951585376085242600034535822227535637212307114983231188919509878660050767993138280456799859156981262487512879350576474559689696242656026675380732588382274523856876461348685655147855921049408983246467793601776097769128031373325635090517087242571101231129138143992505288164627474667132454650027412749536209150485344993080882211541463772872585786075749624214946259846156583271573545884750538484846860445447389115125137434443581385810807052899558101358209345577624777325096974335400885223018900226749167631861023195627878221581087056752030898679939928509008428193012923410302871122605872605200430591784943060239327015547073699017541847240098230675716262072581922768780300529769398036678252721302403716945784275646027325919413309952281240609313677650476042174765430434878291320958664192408010458134549654113160507734061218857688962630010102799256178912676991556303785829098516726827804332606608445644805546718572761637051188450862259893490475995642370642135172925517223089462484443721112774847966132942472088490520604316573876778860962064257609890894743867363612002359884421386467553293160282907492145415848894998486671611017469263672863907880970193538944455729994634147921230588597664543456765112724885817144374333346946507688937443939030666720823024806819362691860075356348702285076056606095615361175109784516576561991763529948514721155061596383870549295473470825433578585116572041822188266239810445497580535085576024869831183966781168403023518111665578050088195610906309104506455865110429220781629202264081619796865203849530145500726205769486586579346054670741376550296648345530861050873180961653136426944217042640067523816156128131028838866195821322483728131804714013033291382342338378811960484102213969315128680432451468877324235434107076725065576988661805230011499923538031918037513354872606052729645995042815456511056472116638617329988965629196550257688239294237482705482002014181973456517653881733223823659358979443857289696630632004857769215986042055445740363815304694749197589624338958657952517730712260329144018437083281431026741863999762524251256707013094627310961231355930011136985130403365092228273649411262096150412983440230466979183983240296297557044047191066559814439688843398735563760425626597862802360075437627575585033565945713565154300548499844052319646559409571215516203952908864397578721546984603837397307192416700742502294991554143486857630210941456859005792606087790135304057491898313058008684677098937958175639356237996116619218240209450888668928098724520467422277359370461211303469769401834163284602728450113027046503655405912414047028107247393295753612562424613532370039040064696204927242075052156030779744394680150938549621902552888833830560265504760617710590157027402982441676498258561139527148398014317348239371850079900577973937654798046206588861575167569940521585939043260112861748893409354854751346803274946930447409714309465088868478822150196529295765593417598191860717540247965896280517505236317531344646452716013613646475593409529866118168821977460650381906135735287522024287267780025627562109407261680744336595616268721681739382536003050181227848013035040660634158898998499927899914056377462534005698366460488562105930020428489146854483250334937034302427179973873829030664049717453294897715769174701955969056886307362882229587693930384627429445940878151591801143934202223329991422828695302449210758835938194559016225356456096074831764574800322715235389325556008160409077368082127587079954719297812392569708131352838707889704738487784162942138038090185518098956231792229358686801460921474335382430297994294137878032262055830349018645450263832160659805851392171648562561419793775562588534836115024396286166160580783197159573076560193690521178326883501963790239560581438638554644606774673545495088605942023263437936427388682344614852859484312347408353638154946063691764078397642554454245515824482361908882563980863940348357399672926771807874863494316055689413510814214842711565228737447142664875541689142626316776632337494418479980797123385568234552828878056005321063110024646096621948188808858092863752640608912441873108675182087825134104949351840459306377794453009883774816477231010733813698429340763956428650717615952393003051078404021441805414480738895770160258386141526857727803253506737712656291333470066759983526423365241278098452076614426717453840918254960580684664101801291868414747569326722296103005971042266665990704220392368050847096664417061202219325294927576708751179061375172854009387433140826449667857335860716282404889795545123564167004300833930769983560652815369199488946593160311348561910053240849035188356740792374305713185748628804136618033655968274315177674992398992142082887445754745880146606496210964961622595959929742895695861361224856946550652077710083841566576772600290394296329989148726925470284011725942567585220630407853851752123722652991344029615858098347232923820268529066907562440120901289265243923709796317984739121578586380321873851128029833756836182211370716831068127457690815406355952406218244966917551823420172994659010951477876039988319734131438994445207554642384574611432017600877352962425685440179479940401097769760942130195781858418305501055573571990359237843827986710375045153703892382597836214956715703442184230865304192826335914429403985734018490088113761374180703518422167807248918772834667712857326559041426757715347493997982090752139935507758108679617120778649803115297709488808282668960134165236482022911301156039298780325765095788921201256724010632917399798684036203708014903828718610050090815117384211956536616651077459399080271938378630604321406278085006242182718572517661171879192445835421827655496210831374952478671528443592989950605932761095937339965484514182655239874692498507751599485891849179319651909148450062646565595511660932176765401653626134904319693864692059591844876991063557341646775352406617632687501788006732844426802047803885544894945158489281227134816962977398253105057311714557001751676347084290732051410087185364764528367250506456302659344593323849129683021481189295570985877444597025783519953024306202814430458498653933971552816063058715095305675237746856928229845441596526047864888328025771524855534539492900617369420590069089790889963897805376503051945414933568570616818709482084496071447651332196317575951363640342679219891659310254117227756281306722258056295850003275477171615610277715969863995982363173722277782033723701050483596464853648749626368082591298086581827447497482197102342604318121087523338561900984450296378725378957166571202919300885792575359034136062964675507214267602566775174188642186599313015971129392599476125261997212898400130268559318764855086620798559141520974990313170190308313003452820766454284164927241639316556611291795684673014464202869315911435040360966650614736143637235982802443419735257208952670182696992710911783626034647440183696982813869701348395381217961583525890071310157253615495783579151418520295407992260375743066123572619469448564401755721445446983085258713902868860738897235385208049353832417598793794206046799889858705603433387552869777556603527988463111355139834721599349561977479360879795358256663702831961225229341169338916976144762480645988692829448043024317545696445439012955737918872911555694993966693215851428588501609770562568144222330167177107880953469736271200121653162723429292043420562918916190830584784379432480469725592751244016429516737064316144695396108416094099495330360146463841222504670551265004654716859461309686452981591826466036698558640233629978938778059347963537796771134487060962477537036352168249584962070919647909454228471028884470672863377438948877210324202262585180928995329097320216426502753884308037647982341925150770110362519657654394771799235104113521831501871770222247361541284600619774280437372389087856382666925903230082846336964019907277614395474342545303141449774932591591547863137113061381374166028376192496011600058664066640336900449443024672291385775813927627367179673101370065496959471513272278623187177708056294020089221794963963799239821701878846850677510841018824735463093915757434973004176837776755847460929628012673942341179164303712226582080517162970198791823888293278165451002459963520635567745912541540529065953965184463757119643805791606344463336750819820265148744126328923680859686859551400477972868239492378536114240578474339136358210540856787963550302084895002724068605680593902798498683335733889861985011698576119142372882691571319343593440484367132350049751660443558036278998560406069345079262355741597315422754891996161193736177193971400117398174198522768139613125085591983291840274676195251751319478887542672021349329957916807027817973465340802879849337801134753185319372973763024169263876831636651480337330686925366780687472217010822402384536234092188349853613516045964663372212852948815157639073345477529812235810267565893742519916348601970289675856744997283758638778182473882225719545751176661704473770143446862282516604522594863331986543573273350042574151475618591137094585874530677339801868344347974796272717820989970008403429565663906359083043709826954572309655286696278756648199406262172944063043527923914253600739093234960003416825858133254876758181133151102663736269581976954746689723117062864753905128146478858566670219055478017339219915114094790437893704532748915292217463852581104764584074573766024374129651818536170203274365430679479810835114547081919681216416335786768816057919993078454397663356315857711276625580429602783625448116194829738575590713274827816909984589780325361874669858386206870555798095052480689532704918922424106552622418266524312080322013642196748778528089877049633659906839136856188308696756919556895441979743207278233025956798877602471342560502817086392765803852739558120760342477153609338987979412243024422676756513074495360752488374153508387322146520958363279940552664684309809661750301753986295881795540146368297241710860145232039149552749298641706131241844247723049439307619356694485228763180894480447945465917010485947800251217731044714320576269632563882173771397716615978793882683092697979615563204272059540551933160317274091754879112312921576260178160190344726448311544406133243481657494191177394405735030293427864495739087008468462285641896299693633498892410951901247916180727250939114341352549130395788257324915955238472794065402238367313557270813353590025053080123404359017793890570750583429760705907962933259493880278756955146872930785338995438538878925255808842879541578445538243129177203402194324917105766740204308345138062392929878554643793900363211592239142554215627328979732510523060639501102084184009235103862256312496377153398538566205870771071767751150126875429471011684720878916086708309145478912952131096104285750363324428084886091513445140917430785042513370982691915882877441031422876711377190237950496140670122418016300339831641872565371140812713980258778789589580618241685122971166372171822508111717550637855288889352137504403874844208121628653366932702044723689988365099160857097908806051626841602016490291714086190618725869056500717541518766568124594758894585884328219459252988369878938454589599724199555410013122459403738557985181952129061067538434847313619153056618576284968458496042843517922347895457525952799692979187693181521773303780325418069817591301979700234989808692418473340095937263127106409410894832993644368864158588939613751230767009918322320589256200232400129178911396887636728169127509579288336280360132957231329969919710689390650898356289858328969629332328120828105522469654779219225672687131348362214697637104330310226578784491987218694650597025655307543589634845398835898814938568968303679568619764702874118433107575481766368151369756545494412715568481503426970461665106842637279258435980593768371353817727902657840536832767244452347417654068119043496623203913908066374688708177610994189958245927715567013462318203566933640392317365081064510724084958824682512883378498586866324157245370236704038049683371219727426181431929782244444700962689621593474003715567218231086545894219650325638306726246448435831456588297104492883051378890634598567849950279568276163904025472857080438119765293780767859301681909261889929270734491603876865540265904764501563009730147064770978214007857855175142658558328263902742133677565616289744040439872366542014461007320328489773696111074160293959275627903887139212619772015545893853956231498887557072699963787478478710678182559774077148158568721638042906480970772377585858191167171756158778569546717611919092467867922605226513705347794376350145393941812258926962148250209797943611713474996581314290409145055862983013164233706813396955581255542636071644325357669881220631634875570565068927761935898566155277504110503189695635492639264840702943590405368687157002318742631622761452972066429762711707758976513930920208581740459133479920978433226243150738801100739160763382907471189031678167251672225835887139035646315037493558381344214793036937032348587091072503178552716216951349164033262934514792313689922382052494216460849912714270333011603043923345937770086515159186142616280619915551409444815934330459900726987525103638103302674644866318540240157145765606858957884102734454084808069869772214047768680460780584583607941828508302572438186747018927534387786388103190536795545860047413060345493623044383124686149387400961282035715731522532362133950009982749255537684243455900919978134365213298842392447731718364200169006118718393053470835093741667145086746908693641055102130898097425174527246251232659978536059948663624177602050738418560124272315433933620318347781865016119853630318404888486758632872307927874314374961039449036863210807568325612606583031923347376444689895055734768867459619479543279002908158220772850489346523290261216561097087476989228533843139476850704352778781357425478952226239903623947394476379804551025980212229509647279697093469338802779016987758818221244795055887922867628814424739915257122907207105013564076540263105363109011297593617324316194864710068872335302603943495214071199357676028835965675942466918190008781646065163607223235018531637515693156943030811542673898757934171030935757876474433109968538781805218703510690033449571051364265869442563405008532762290144791589284745860354676295601865410122601038895218752620673404068798211518994774389565907492053782427316779134424397992796847762886519150131239260297606060324887609961719646771051694385297993445559120199857463175590660454665053365163931130639267135552637207234764031868277904020375649273021942073639935812404418710081332239919365228519703624648526665323315085796015727935172948426504791284962948330917594438598435277426089840537167084567569192141794736561596990303419430865582390626691023965326077545975126682038882736281289441784081592983582132280038073905425877855768310560658142819073267918700745921261028489280908985731627778054294187160074212251889158220442992907956046903358646089651295985991178256362249721946919103342714058353834165248497881694898664798347240224104670328113074291968403854765206346599518973221234336467249233840491584104139188587777509138322848609326677118980418343484385669244544415625080990885559485949093365934566926017538864534840410083885171664954947815878136558147604303558348699370833879885179791919176139370073781955771458207708910452521168479245445622715032495597804176397416338569132203958115858552293397220332741274456009151131356402083680139180705168465608603677545927624950193365317989852455222357887377083755694382507476536651310627889246990508985944251452693744668580895086728404707964608086752365438000378263608462064640424765984013075956787714717337306223141585812409780871970298624390535412200777977797932583236006464813303571658420661378221770819286759939897710005222123103826491121289250305454000762423705708325138615132393559078187005414692305855456938129205622366518358504495797030635962805588594052626312836399126454429556338540448185177606615952844215704696395300069665434787429617647735609920889085435677907654403581021620821055415481045497690696379077097443374855019100409315951111223714351883250339540110551006934145163156792617509066420517807098913269348359695756420225320012291950149107881938259401617150958573809988430216328796613923046651728592881261373816316013740540280813168939519102480578340519067576020540719196919052038528655626172495047944088536365790955859734464873749447571799128944342912155055396922039123760596138497925842038617221086690247807020694558309192532356621368406232827345346025679640340154109309430672744656118358878530720531919384122295126367466423759672734553567280523428057760845487647378506333336128723833985091715630163856640190679221287182904603668253275008098409141253816894172264643902913248220327182682839336489500490719738028661255495320882054494896570580421876208443863864081234078957001160294640999038537712147490728850359242345102666953953848675349913666107682408557242303290569160299013767723291173764251684163554621814922463617772457540151356467414555714372840831539927956884340781595114556728531799200112368678665366401482914957008797509730231819785474397033860741584533333109910829340397109298934604572034978940747479744936705809846263044188265010483350204567409447884630009729202964224766403294451391218582637313700712031972987383370268759628165506124764375556505241250757139591960417218940066256944141604670702598107862245341349800564650806634007856360144024609089150012431889539759505521867891274007927618193788837571273614185295839334844383765191233656913463561529198889496227512708951475330129124281638009188169650210363171144694288962794858495539971314182669399583658923674331392031199926394257006705367189549914669497540939182020941455283094546917627815326139205995403290390244953262960607193415658386265699385840932640407477543438945236512657277583369812912015210592220658665111099308344856081350609721129180647628538820835964338476217097970368408732168857900218317390288900269390914471431503013716305851856669277731286822324148313584982743614333298963010996273078158512654127005765830603578318362979907626703418373214925764517782972948436303920198188719871335763937214704828846284858222929015261274040131431188035526385873449078019101855095403210877873568041618090144818857696358961367430339163393093991890572215947634587411240946712194745468196048820644749600558412914870663267402645091835749284131371929444173133934132056953922538711739021530963036604519072630749624524988630486070120199262833514330059365870244712030657697399728508292579548675059725901148137964162994094930694979826980192554291361166831305106658720656744746338346713828418309706037942235989115091848681953518944504769884466292283787917089633955344403585695268692694344723466272261801115237514234439621981896900769100115473000967652836415017769282716465327473249744492025172634490806183533214970776217229300562215073788154199598916400704792608634411681662993765332284451954818363462651500159796533873096499517730291896303221237053621721235130425830744627610757117909710040878402666871349768725556333747327177545415095936851737304796369184152746008525434124269980557712291677558189598897735372066875087772100594953131862704425936504019379263847962314059493600863216484849956906345655281247378274239885357565507467911718096589246617672738659390677988868084718964258876622786474959552018923601919405703761300148112560596023151335506706475690422818096914556552410112311898252580755061275146372190915189831270758952244942543228663695093536744455747594282123217480647517147829193835584355334024461031105457293385578795347792697048737967038151144379856626204362336810401257500901220333803955189875734301177738346262575874666824555020986887488730936336061562250226170602040087686865849187578511415872503014938786390895054094705353016070414899025523081342398646447546250508509685734860475616082690566786879492901854578907333597384698656571359802203436407909624910720736549142401419060605258481776105162478619703787329450240233400617616176520245011985776971055061979572666958272742713024117182518367495106829879377763853970587544876601570765484765250395503603052359130062668286563013771096401234126052413142823300885284673099495505296593243131185256980840170508692202832723799395076711024114541424822335517925977743312010966314375271110441173518036651845906339359303712105381894146369752863559659481432659832053772062661001022734523804225689786395923157992183658644706327871001901990861349173807110719926933659708787376535156653217240690322832927126945337605968540114349379429834063994863821954464629831775264290338482573563563281690996884393237152019689243107133926636806857306109793521816237584641825312030848987001559319788544640261484763576081494337199281244989634417870637136188482331515846393640110028961124198382081800600255133091954296143192113707500510649550776008183974291768564711208885081036261792643914941321852450295987236012575195497886151524723619916799328668589568514783634733005643496827615502655543623370075714982877386926068504660625459668301059255273452510986595276336867630919788878635822659912334250736852177869670054099265282106474796810154022250162576829761112510866192607258609565809229888669802252844588480442902856732751789496933775858338894342393235867681418878092628110470360444480058263145119906478810596718371330921969084921919918379583148479174385991844633866041188406796964112331823828652590235439194840938015336600102838352439309756861057808560935566678177775768161942428456432175114605483591823568283881155921567203712047016139639571737370489240680575599956277372419821013811275413707598788871503292727903265950459130972685864819688145536400377315669455812721271924602170963990607877407965393205849294589339276707715684081664241219784353215072810969203226688664436008605414692922608135930984650779749755925544230476181202562203103713446699012429874030148490721376829883085826744071794329840350272762404573980223971770496090017285318720703459968972303349123689586183849548683739644186994924292350776398961733711072519002868314445877158843521952190854959711679056001138364580952277739718065812598713287886928456861863242324918920693131159222219566477394654597962278653371799240884516619069936329566479996082969780734688762149001891992486213142330596801374056693893313294750903977679899807664451584158378227638628563752757999494168667610774953228337104485695312212747074035949597857086116190831107454626095669819125000661122939590266598877410425462636865221596401020136743006554196928826307050805786606203262211277707456423142036969624824460242854479083216561495399488259983590259372498773728680819058690128506549314833163101488715121830734848692004616056289774899284412023297081689857234028808987003639152089316583603672343111209258086616030852499365010603270594851617037614184444154109397308821477129789935528816984385284283837981279888654030699338962997778102857518513356935143234987836413706506748275951354682007045383676021434138299348323611640248538751010745106829186244405002038607438376704847945926861307730291743245410359218303722893503238938603723976287155913517276913423742240454912238694317152654223931945151530180610765375803549192009153869788820631346116836280005060402661063276169430081654280205612516346289892228588461971739505404084504409479536412998493436572044694714289986498486572755576518737315288691849889321583746570115311987051779634517518878374125760455550137075037138407189224324546292559255613683904260365715386609127421549360625001494844180952529854004124993678585666579154807818201821256459126368264291095193030945939214896679290338745640663951223393710479678437935765809964015247431878431476808508401303846985569997652272320765559323112716677357876383259296956397650101141202241480498390436742665172492636131211344193599446804266640828760898916874171469326249222403409383687316172899370457290545340413537981267893235906596454184546888732805020292615404526816797446249945965252548843761796092510241747624985266386453229662315079811905199835126297199264870145415383999548205251777395414793322283761228268633139942180151436108115649559748532706384750482713517881933657186462758214968149230432624112403211438521328115825168946054121217132770228128154921113536422803339119653185455084622474441514312336044496302697587167176806067235070195913060200247508281920149217242013943146945872622976306142973402577610629788529613674682743449939828019240411446990902143302137479188385050599954149418526348183309914197932473683754109815427821224533361833549051264529343744579613076808408528422383226856378763661050285745330118989193710061974843378536571286790787878788084110014750702794204079864924623342942830221677117542513260456082361662411143395198374748168855682509310577292119196074885361917354019081084598483661442346260683853780024129373402923400183399602267375045585596536939372320930243958829889500718639926815207389219732320126209480808080425794972028103462917692154600488613076086435485738894071112977534169828021441272826723915151013565665951428744095705113022785752983124152275053596102592810008763687339997113244453009246136552554477132427784825562705533393671743967567432804021106528240466339007962840255817034211887250453808323360846198943522415115397500920645397851567053623869672670690469536737034038091168187303767777429702840616622777177988090992258047568619460453090570196627817134306647561129355441691637644620154523333125399284573735397572852885230538817222470045594913968262033396864869895074571979970245120054059726808288822291289707537360207168509929648901161038827535718411010231015982443151629981727477433779095859632308758583857092599929170446681578739390429264864531067139606630357360871562516691174874678034886838473553991389345917747634011575590053800796357481891393601474063136125388263060483959688186848244487728207844226867744203763178246790761144731742713094118325943021553596586235237201418860344020060633966465309358249537328592836254295287597322417788101062771062469724280406525619156877935031980022079384983647570419502246103071976560760681270240479508968792155567494883485805266038175465242981360005999815808787531093790431966344768075208566751649581965987992371207291850703518951166768571181227544832106081438247171245000394018847860885660342192727825638852620295713242962563585643814817797926665496700383119699631995761237708645956505894007574696302179640411412196746575016275582774169630854991025274234589935115522132395573568022845343049171551347488676321919573917559178824615257926373975385552028875953357857196341406306474581553433657180078433612240128129142234944517133637573506431369926204591780513249488570873471345284050022464248499640787166413568791180829298139483522355325898230837194927882428295600004878429901136857707596287726530685618989935005701117613622792739051216116557430253863987618127355245204085843870918764502887469509784854928165905672573101694362800265236846920061042795058939866230866834661214531349588225259291245735152839638364548123823408259881431125562640118881598594673200788454337912458597368415371107389809091204403691867389368931531081967334180578952949500682802935087860624270095761492535106025288173013713746465356901677947340964998679479802291857459929770942044341138987140574609091809409190755380596050460040496115466488172474702296730690962885078213401227592241660522864741340903483985492802181483919294454152657283380180619165218610962108766752631655152154157789540913933584173108671121990808112265357667656025346387847347591442382975257131467701896346695338151090537001133288773734024241990001334111653790673125579298304876186619714591912230646293440918394798918317151588887545165670925017282686047369104420940597851890947321761545690863093626734270290473858910264528717573495432108147229086053731210693549915782177406233540641294291332719071529280531290960701216058974758067582143752348235952449193311111730536177018231547694913839325863131548907596052617113762371822049728218108869262734221840980270859799013083984684101563530460195142847786093511042867897843454596875909081262899326514675731828895806326015843593945820981866282471075977684376366653046500335647027665911226915760632156397735433480347118933655115801203805949359664463090741839023042360920125614462093725991566326063704592110120987671534960809478264537984164312765952165019108841620523118515797092488855440541947443355206114041591001329599631384402890566617057107795580597304860066080032110529648242281985805215663407452351764352966803575779304737514533380210170616975245557915024498971533915635054818310083981410621656738362047956438502609585527344707540442411409954782978242395961973155019096757057805946582636229885990899645401218043605309401797477758389154522869245393094026300611504919823232271631405146992383155554578281590782176663443890202465563911692850122531872412411866220250870636072487885622301462135482891994736220893709984561408961389248005722686357512155226903326801681931744201411139972143540650148505857106699849522292995034538012525863985999656895655280226145628985509176740879674003852279123462036803550027503180780834566493446380083524067042705344931971340903736994466499442508208823816593572313912384546196216889337542864243996415793867468611615997397226225037092706891237551440857002407805887392036396407113619091338439206922349043756631495904333643622244501310428769480538574223368472136257918807984742691245785564197108894452688311937602388597140282624336257623429922751822844656633589683861309523418942792930369977499809361540622770497812220794422845495351774803131642726411174077523260417844938088162721600816330602351275110297907648035927183955132191718085708331596626001320856640704574557767222295825185235935821486783378004374109187222721246507841464504872345115889366692864766364900639692088515717219591788942858834966625024220122918965579535259187104758836342900577010973711946228708913928305466765828930472799119093501748878508303869129559060071257444047998369352077149076808520592756163866740790882464551115965835990409317331805662047347855624593715448190780971463025651151364339011565076382966726208421774937275697419901628610927638314643803079583687793696974258797337688228313484938330852658975361697207232315190320804727442589173420121251410659321833196145159369578080547867201981696941558439515949878545463347821682231360543765182897381488952129385024270893560316441858569849801313866156550506975012690470358998433895925297169695536701135945334692522737535820865563986583271948796248373533616478096625603310776269817525576129776179626872615253069224110519654437521374915351256909604124660843218303423633587560737558382496670770238351091946303208415528174575680556457324287251599654195979843444935071630481564861963701987962064072318107888772841037474373408128531769945134724365836871906892629666938091451026933851775974487208015301252844041071965172786413610625784180935287957466511418235955829846378411807459534281231810169708725587218221070386246768150543489876414287930770693326946871525330843246342761338667781973168609368560888338853081933997767325581395999222767080399228227947891268531844340303994426877609847971813718354858299738451918619994488024973758830357366564605226526011602070406096851218261243992819574945439533219708807377005281232725102832421493649741053668949250859588107799081252903953698545208670357665705288082091233399202229994764196313140343346097635801550436681082149939626032823332020740684249897008868958446132184862813138921944623008511786288183328194448102415724031441175453616243751476569986542645669456161396089376057854587885498727185690777900010364990758261992859297601864468428861237165570259200237833448497317141762056526758202234545894651198621185203331640075796546217516612212980039580909339510975818576783275205479910634887487480219532953516843091404082121241425900265945766656897533994378320051635508883088677462597265029223328159987400942252620991376693621278288440296763000464758321812705412075163679947194087723645193861112140302055520972236941718434534126855471264690135080695867086133032355830685189694287689016951757089902539051500463891467453563351356424149585018736276598214869570136962978269869754266214801210088444327279395435073966063509359619816035574732049892701734853771912067262510556818916568291892020550250274936593077863273653511303794228685449436980122812817980391904806821744055983367807903021990454974897370547910031080348348202590850157698320057934407956627711049583535298531152148555187528876349315917521185573634720565809320996480837017549119702241056060266378365840918613173315305676836934720298917565717323731018811951530207087993137458004295797591984264319309817316686580177029721826055285676446258230125810307331613093890194248294871692773944703388384717662993450853237967667602094483496138984772030401280340841458623660149653129759686218993154069649615340736614506183459378418957406780715260817992801734451861658673558261696715516345117175323008728584521436036667377194006694337504896090407323465206795036351903980405003875433325215729466127098952755313703789576640511148686564314613429549939018269725738337810394751115193175924603999358712132244075306975828762802649371569545821407716503111887508391520507496161935610262079598934386491715784683590969474939402511182265188644617491899301828846450227982230519341275326908599426389734956682141753752559267083953199922370049214769096681959229059720774123967141889068251829095776881828628210050122143156750846169563668223528922217030625446388066755783157656648629044679304466626314451814587497534480248922538866395183625866469492167942849929270026829517703931107544612336675594509281691684651634433420930627908680396598093584842562858333620492621434508932945179388139040976882291589809766548851282163892311536426119322712834757915681957059821064491190765678277473358251682930458155035907924146124110292975865912796425312217414457694096895117806261525018762185294759072514926889834267729215919823047781074003419040520036490399648280744982485518995708322844623950648104623673751424293710124619269649591195647588056606392910406844255585193728601906759332481995379353880768217166494801635551248952597771594039132305062663042472798992375097818968205204180988674344818056481856075435779495232147706896736766177029891350343542093563073166674426984252014214840255914664669640705236458238250129492337240539780995748693051359301178470811871265224218394240698493836360912906789554969696329339869378888044076687233067679151723466268454923871152854540378061030360133539830069103914412743163675242012412666745980552241839628862038407503748173164600328129730843685402893817457006974268692644113370285207377321131585487328875602464677270825178913279199189898873213097371598870168444707951295268872869826115004203347789252259164373855888277292498125620719349461364422079788458699177922970312792958490331624468315495129609625017191202541818348450503361115419347925597137241719263898595976400934079841229915195826413307095330142539973459790153651064903907852654185396308345485140620074923695451420458347372722263784750659733914524691346772977202218593618608817073637391386699784746976614137182804576363847680362206875347287067015538834300233889878098278973202333813702479970723129878243851189457074293473398030559017212524083918561240838253706394655900735381517000132471775236738242748521000649046671019351056679185729811657724154987057564390721825852345724105523789851463800334979366517885174369954710120219503609608516397339678796021605744807572429652610327795467904393250048408852733770300933660521252154508528106937967370986255704218579005880784584720998358460589158855534581370124507040662726881849303946099785130818610545921895341816479056687236825812939327335748399717742496837596768317483412557390917094112216639652272723675055532081221059371331788477110566447547846483375373120018257055546713131097365507769706414203902133956875217266487412003926410148524017264264762463222854864065802324337391931760210093546297143477755786295197211331731768779469335297044753197133382881054082817940381064553358609919861536421243932394648897907803140220071703056283799531684962919600286692291694401379613746793566397923873756899676464252799306169313743603494953802242644822612339487977496064643719699524189681326777677172944305359530894620200005907904001076276129033377583435836295751931582282953538165922481654796133437573547116316284551387934148377944380172934932666456775313482660326698643787898838902654076995106185846790869329832196981142252224462401542549755246852129183737850649165606681091974038308603055857210326000608577625377163552286472820901557213895271444546252045128799502396709759934150315168209782126464303154015517821477916668875633626843589792189853847920073235758332921066986185476623870243532052715210716713934912590961098472338698558872433732114801372587146955026449831055443002138996102239479463840292399312201849103941109714846470524130852285490394274832447241242140966662290781849358371030630516978606818777499557306152734564246010277483554676567961943383225666495411939019847995999644692996282099518874797692706168528147955775937782718497212295779293413249040166826189242502338838820030731598127926408320211114065713414516418416885652166152209089839869705632245202189724923740797819371819461534736484443078994851295270949530872578857896501146497416982482020927622807354385880071121258476076841218077315740307173586791997003940850103405967924333211852352055268294520078790981316023074570115733835619936928337188249716820400410010034793747802419536491692934805553761603812204233761322932821705032404490622754803088529859910665517062053386821640574801275037619992786320505571560100291994966144549550853473408606902768056366210410859221711847407705093183700267483306025356637297078571033990250810262322119530370564144573941329807784962861599367400137954419165417053099435645232315262836363221492644532775535596885410649919637713074099145458333913521355798717964309851385348308423035752393257499544960638091110293349913157779352945807279448639891532809759347098996423110358304460278734153678028125170041345481494296480958880582951493273020081496592292898415784354311659097205652302193636091352055208452370619550578647449230056675163947751028045117507129942891368622177895520799688446676414163841645540236712049489113454486737604481294727003459577968861209203392341886429821482488794612761297946747510523926134658318474563809855267611883197508622191014231965694710888488332079639998930786920092478133265997306620357525372145120619908871618073806659791491727696427419078121436546946022777593395356696912511027021491568215506026271535186237197487060662353663416938380667639457467944864955697821136685476623732346572002033577425688633554276246389564455529922332616600610527710582154678980148017934714593402711999569646798290704281067470221429746141124594569783465386276440320696647979189301448374753738329493468778906737843312914651070717853707907769841901939569541258252537426633243853235641600434737313486138639378840387508554819239091913469692955736142456457303512914859539740649883422590875538474848327668007744511297163967899490866688801393019544908269681450889486393982632733197840509644599504979660172360845182031714199878969031808295884717583473321084178015887764502724544280742485894275415785846357486152218370729097650292170117690298852355403329777995007611585644413396789374317233639507915039121249348194366467747297597447817210346721127045793157567856962048096827888712624969960313379795278064589418561387563460379608269043322310817088316495596642026947952331334245204002616667927085827054037295672054677129500479865158331613655197576323992635384757111758431896774577297550621136027687106857307860802038383832897102411758537415185749961473971323015460018402290616401767686019909382901828343314847388993074762753051354112291648607200771782795702652430518032367373395193845092946472661368943926780959186548109728744132717372585267312757317956326995414556894614487862997232202627901274140882110402812506198197630283695194409863478768378011283612912968628345440275700295011694376985728381670627889754962115196920923117368226364992480013189737396362171486697704942765690360595326278967642147814824081985204218507928211021052468048221542895035097724073168290117536604143231254765667068684212248798129137004800330195927331693899803971547985941278770965303422054589003682641844777498399013296580135793253879215102251679314142866919643852761802545418592909700325896939782967070287927412494402442247154862814375114218979641728428782275800214669379127121616707392439082998837330589518103220183844237481632026974780534597606747824571887961779205790171083553851520147788418095638512014192468355318448685394822467002456050893061463167014513147455041484680391358590480825069789511764785847586612958746168728988768610901371274206558894201458944573225381133855796078384341183607174637110000672744982580000499163149320343910998268011584065415266723929339879948485297913337378942276395673526605375029262308915519646342577854457320592727151215267618642204853380969276770254158932856468640702594536835147305127060891693781989044827586171272745136704378524980053315868751774703939362452567774303151758252923347195233380181006481306354589211553031233244036955099641804415596011737757351596344768106874557468257047416027079677117190865068095413246979051716708126476384119705428395792099928964971136075476980600871929049970368301148495089431205326832756597086190311355693537988056019418360954083101636068988709390593404018134036797462419365722922653314597092295155434235216350992484965979186862079116875552734428504685703601886846575401776791441292568463412870663538058004834097417269084838730813601153856007263763025836878670347850762589082166989456481262038883012034082637495711959420254451566059612966646055627267808822967124261377536623048487046455843766444064267904349793095235212139115657882692891133696950028634583133716797893227268047385144894750506516501425922806863117049688178619031626906313685434444061395218415754867636356393040029552437309280064817919361657286268762229548941362782606101711225138922683998657754527967498278969714393825043709917662979962430507709531464234234134117164679331953311465830072995934197985977673149943004099254603544661176725277513800789361653940095483177529743871672581400271725272763643732348646904701611448890072847777270217589959201984831281149399818507549393156064359857533335139849013399084435457350206768255736245093575581991168393542196628695816100521602444253512030343812977011067879366227324102888691557287346462759541458897683645242689922299824451851122123256037358662876909710218361045602827093890543453878089010455971002708069453125816171390917598067492241311362707773078866577306645545012559791010511819975863458953088845866304699080653479401094669355330970503596294205325173627342767508771947618385836733688066501324109667933409688982305911129506674470877985142511214135974167499439014635877993585527329667476637507279514661893731731930458939507495567308773044394249010124284401093414488698093962326623386079268079659862716785027502858817729021503900124430810335976966984204004045357625597828731474018090774425194696561101384685399662672971761343832872075113963701735482004633076980660839024919233309947599420936409456272334195263380829807870960530959602221083840523978831891116139863507828288243011558357925534145831858305695734287692867566658393034425206432651432031794449501751365593904152777695148717809346643738461595416961569733817835630773758539577573768032623755461557301751267366135804676606783199935262505885244246801129566970964768444180100765278407429400202344603947745644643413982163533952955592727771761985556768624908613844330520069801354107585642300233602901932543428068263216388115035376232507011486212969518545836813501350495991105944426164436439460952513557829457004005803931977539767238146817842228543728184897832938892893269059250602435244375018087014461576538093514730786355296693996759355035625205308294196060263313399925066300934358525690370525393684025403238261350894076606399523962507969068146292661275827371900116543174191281359732620134984405043246451920595282098188092490614456476773378870590155186675051342088459718978362901334984673584731007430694420834300610818813665897105313521076673510614460597397187958058029188661655032042837741507964377376636659614785336159773975188927142246410671352791112975296264233873102210768773528920675007895576967750450218159576100342059201784831264164909611728204584327296019789962959408004717625620331296069240277053322785661445499742583617033888567059351249532591413582018815389135191772773950655792222998422958744016402600500872611342032893884707870527051573092391676087512050564609777545580256869610258124982123220845983130205804606497606326573515725550720235765579198602587219326023135843357729232100783152044459059562707626373274287861099126178460174797504461214073056495894499162046629797218212664099317931401143259662185568652160202601871497954273033636507650764923738392479580412903861549861246808571498034705536467518311300638906634260989084151672277010202371460964303052060730020770132853365170331573467847439061417805914846460391057414116711597228880928639416206424531417067233351112531282928613495443070777949998665100900025218198415940248667239140922344809130799767962875815906249537713784697378170801373156278217583162237644052905978592822489663101481560495390187311939671703415689434323076211987414027292281055920323045118310636756654083942259983212878857993180849538486460776769123652891622442861903162020541980873448077129847336827072746422668998070479596263101178928011047280278341013880512958462111980014947780239913229646599334059309281519026527191538882964908384175844734239899094931751777655693724892417740222847075788651349089873108790424200974810324339656223478974847359849193365982405908669846914499012889521706107776582278001309888499235487622303118729361769798399830333289994751874017462378311486391740444765985376684811203021095159956242106355787200997695415803818322462989878929081751148014791436736927420798687650878083029838268771172431950276410351008427093324875166835895401504173354473686106826441603185412818473205328000602911989056112001834455934491053383410978432240615940794724691967975839628940957134159461574352535007827082754926953866793170577201180260793836742877637642209555950592132847607351272181611105419203626906668570145024651410308998719854053365718223072624196792035639727973508566671039851976854764476634459927150487450178039806395677834763465650541516430300315889892592998518061695841649367226541303167236060050060220700310594606671652020710730664198254433167364686344129880737077391387607757537604012686872408805676858800702974330031327336131662783764309162280327769352269100413639460870287206800518177414436728776406603343844187968750891779333081610115906788100080080981935827091039501865529994118499187762503650261326588097247123280692708932958516358720600253053309028895308247652408783898814139597693877567849650867463463823197444611667761660287966828838233057754318239087376122208243929060391816892443860378058505781531050661756689708775081829852337569616894590886505062607319228994645296247171624875961747761299877344816807090482587794333922878561888271850845281724546826696825137465295442813219651670403788994126531397522096716655637734770443841553538337606686797670979152375139493775846029059837744321791391721170174038450938876858993280779357484542082485747099914978057073408332566709640161850091981370745139453717427014248126094131160301104049493449207406329929911171951167701514802645837949498035129650200635340917146400026365780511699323497604274601791305902262381897008213283707165780523768338711587849069172586288427624098753783739077892013579817030252547608898341820146061140557870744195906527550784959682489314574629982792234985389944834723971368856602103729627518689878879279864497683441236995460503711966413934709575901013747965195272866952247432693441090916440611197140987149805584448893284129179595899105821365319231300274356632688148310100343494974060897189530913647642428954620810462749879072635224684449224268192765589606828094133454909290226160209989613753602022801931521665248939617718257480748046299332768630158421300634298097697299991585776800153293453908327894688311333097310750992844101924759066537654977133712640564009870606884061424967798304810345414945052589862035602556965825764141642190446387888352009076829339582447617914038597562273208024523225006882092265534409680695020875540781184875063370816094284624752914855287352761210203887174408683069356366755540317953821382371428571918535169246830573224385959549719811259023553217164541599132470321903743303165557911756393516219119708546140174038426046639522586530852905431334205298914238493907834521700299483567381299097739544408877725432863583734689601440862918047417081086374922276829958284494718055606745155509499411628989381489459904477665793588470367236652245740153261925284557794510094151814188436427900084071192559599437065018375015128477094010094158285940424104193753526821789540647062044600032904410056284437845388727274979946886461775761854060781241230072179914804502728417237553880663146474353586519844999944726521951415712535904722328851529993831538675722120275623107051630466932952863869592714827407996288652101989093437834927982005403849846285739579156641144353143006268438342291697290839088681750832597789719712388949542194513748682970176452200610793626681072968405876380354929896679261837308704967637043612717606502828715834162114146819397000506351543658261037056725477911562627490102805270466034648486658438967363289868570389179462607504219082452990514037312717567493188906418261253660457238343101808695336969048387775643868866296919254781639609757166012492471914617669610759413262018211296455579212653921359767710546784459648383635778456382945887829633104124719557991568787943135296033828339300305407192380403494140553836904184655927252695938973198973654962596851491472544220515326052808093241468694247891828985851433328925911762264944176729898596217039488332065578151606282196188926832401895963538253027524565401293903684779344068629765362602222638335698671937712155973314639621539865214199871130274456754961249951333686689392376099015975342973940667884188314762434726805511402142402901264536164741866105791379485440925973508024166019310644580267910250168714916269085039186170155057321511810520064769630129437131130392286382009870622521534654299090194545280542139164220303045754310359939555351868784907359552475692867448089769363402947857485541903454765768044012951942656904294849410758700400013090714432375878672541087620876120328213773790549136007493567037866706287921543011930352007410649512248317006417448825226249633643983426030736928642159679291856488434971813498755810128547171738023584537073924446138981950311498594145774241310398569547795279367032987871790201363283621113207050304504768676673076116072424095522239480481946690384675783647349950629546357059625279133663341345887520283754294680372400125196994069101345437688248284577306230167562220068671371506980475252273933228779142059007974026569076085076709277350665113302971193969382243274774868152170774756270900279663099911982503190396434550335194910414804655846320694842896673691865175099280644743639774593975518917028304689641462865430609257916174495756481709350405438806311338735397215733830142605711566991196987409244550260522188953592267696628748061622018403858561088160222303608146001354292373343200118829196058540046293350350255663541575417351688272016862754828500237292568361287720230993185350808620762800830467588694732946335125164937890318631536685529644692352220697613330853668662759436489072323412306743999697556799842804622494635947231446311995123117010957391935613552275261644426507913186742438491172700426473726940780015137999185182038493677370528184554872777706190468478325413778595723875220510741223296160985799190721971187057827000540252320450121496219758087066912860663060894051241550583319782255884224408506068649322441777703783645373837778460404626894938364186943232752807560573457008849352792303426489854313563363151764847687875615872294668780568913258023285905007760261223315200248041187706828708214143372250039268564957523440257290976177109891550897622282554645982135779479393313979842939634938439847820612324767060006951348586059972686925225783152788995555289827897313639728770072349746987499768063402183552217251520360512053771268415131881593767040493050828738489266183262498067907702547491868454438535580282898604023508681720654500519096852532497564514002390260746096395855765712411504524107174668538996751682518059567290299137439783020110346684402630135747455494756294496058435583586939907968451301263884278132254554276917639971885029396324946695425551587347466119988087931162642787693297799170309370775300249359107550814709566176266905232150140826591485815763807064555223138140888786682791334968748256635256817993508050455609794633341808810176233379173589431275975486576403708280195368945193107632330369431649091573076717676792126115416016124497834699194258281873153079958597453045111598417740627582849207053706964376764346082940422680197573824019545515290579997968226622680577990425570854639602165771491943432363711169199857273714010601451945711236560029966327599678695993952353435304440375726186546867545520834753316347543969314123688879102695343350219434857617220636447121825868933012793623476610508263898433838206463551268012470539828735843094133663493691761844804624415051352661018639629071993608538835644943582301572551766678296329201262849681684767481276288343015892311922711922510742215562377555336167273936438933549419626689028880100725933633817447534367407971667241913460686551967752993164165343419798003215841649083644173248200735166671924133397024336842054531481589797068196714871549336476321843544194027393818739555297860662012597755604806369830886398927070702812474162052474935886334359460367312510246600104503603109886369353887618942110706309290628883085303500515884001775049416283261756822208594948632261084170789685809189297093091480923444716176968140381698236176383499908056248011917414662466085439632284477708488884558634981263330688410620758895760208986229950154578843339533437083156338174623450230560129100739580567634982649336287929248157708427524889011947157755744563497318172556519611716582664113133058141720516547776741115574902272601539470813468875679361376878971682815842891802604792984730818187251274481974579467864353580355606760047403838880244367812979615997190129535602318437438391133061811865974154068413553553915496910464381379870604878610828651586191158452970033742277646337165662951101284342870078885813842461592009022470110645592842922477365150348388323514398084415648314023450324521348347214958940892170813792444643720297554814508901970238932735292159856729158907491423910971880273911095158617395439664355153364488954770274494474303194297513671783634201942005097501998525033233635523183455824937403498827032555929410074610862472494482564532312441536684009614324063144245691850617202371799829939916982435497566820295787933363780260422992469123069899281722674680430191043783443169424342140196529202391098313150967381843113920774554950209860208831406963936282523920342745990391349512124983865147467342487240721109111555292780628305488955747687854428601333356415394999585831879257631168285856649177775808080804171173078191826300836121100834373865481335405020950526463719981413713620910572161417171160576915988609672479848388105864540259324364642103070278160331049968619658148399699961899137433787214679303927054465076233401462564511920056890225750830406326491201852016071476948441609675804172570729496433686698604738789415403296870512606576625129456885681196884518584552968082282725264311878510743450331941600456735653229567906613195664503629448169627082313906532365509287451275498196843618758742358441989054364133167832518555889700542557590043626102538062138358426807021028636357285676797090951099554783174279155392401776501553030724359525453256111082748276567457704516636933176758156823323206872580314840896137024388407137388914254007913071490583377955215103053307293379657402261659976416754841163396808905193411831098137278798779120464720636949895258211775735078277429913216184765511092244631132135584044549170457325436005649522404640260372891470406312442297285161516542232879201957202009252884544772779832249773257812867885528594696447954544698033565722287963971472331455501593067216419349835955001716302119687454351636005593434328064573772802146843070900594405380196502850204646209899276589386716772809856865409781415827095799466891458424949435903399923337230937224811949050639871238387440041800320426301760138607665867920462448477909640021903389420200707797679381733916569225802471838320103223257146310216095899250638238872607701912690082933496301739559006514329463354075946052315485605275108535273573806730612018938416539025504346052557306756958227130768491594409682176823474483469480912604087803616720735917473307238423394139447173538786328219240575575468350495183685756947350211957693734916812061866581739808371459384949582610823164557185420994094440744516212214311447848440554718835872809268632775143080882632473115148291804604107524133735976598527286044867402647179242769770589819402953026618452543617208695312140655926493593588317093712228048180672638275109312495176595266394794124673748529244977367041366554604943721943465339702072228712157070961280634206736359960395088026432808189970124553342473574779418693487574249790445764773965450010257406208762386333804253029875289328246022676351139518955269226652658301442881769106158104053964973499000833572907594025755270608343593955267593535468141265612656496356289799761031623329609224773364007851939540543293414266825205061601154113707996850911764321675547483997636331245905898413657925519901798983700170711795731319006331538277964703981949696415532739752333814448739893689893431217355749805021436894718346861723755095298038536989437015604027641030481675869895337811156645430784990103617933429716231202874872525946279436279728728312572943862337908556506837461486020554971044638808261502330398230396495953042768211062110695973240276641178271473204361265191810582770121956389867696353052984557267141534948280341947356571605167355302040291343684976669013224126090088342833021956668002406482701265868234446756558589710779475536630963661742015309036623826837106839596838227960764694351157618064585456329623993811955189056798481642668012123655357798538687884984510656454120402115750300172336109863670814188185197640091247241957811355617870197524773343725695922656151966691457994705922188987185021250107890057283140428160016781280408846245155552935070776392890824600609811435931806007091971720788917385326284112892802042579203235887483998138354198067417301006433462579037416770066416778747170697827294982341022229117864762301853762964789789987756953615288404217226856410676846824633855217495826905593421913340206372689007401934146460038861407516267609319478062535111297804453744282063051628143861425519676161277911299990118124829055804883686759217673787901430862113583031674987390393143325705080524523033983453755137885700082008740884175352625845812217300315742528718099903422969715353392793331468818218435870167100918021304821431045510055957017031893762916668108813734162399309608431198208947692750883889776367529621500994782192040513828009441539801229976814767760278391003359880313836583837437238383598039627851899947240747499349458994440971136785838562073250074689161583097527869537411470255286380838516567798246125611334696373039247187127536938361255689045060167634328857426589215744479625823128328649432821566885824725879676492927714978136492890112854118266011723570126654282064835014272676970081141354528235520760909459204492324357884247377805859361443291104020140484249822685274368878246509054336968316022768210903609665894740723786645264159814450004280869300566821674628500494747398670874426779538176331997654736230383658272019070965932627177178105545739664932641450059128353542106143442677487154225471697581360646899764250170886231742017372778220685776703277016946406304545460984211692885526809543974691080738054632000637237964269243619796097950368931258450540361035189966192721815464627069641825020129709238042950718672124931926613760928777244951460799008899535346848002508368527861941498378857347855883562174672193418078237807796149378827835713910172322224610203222404782559698607398334335621718575540636367432198547855936009671863124686735414592145726315715988650566680828045524220882100425578732421185063872588834228452867406557099964558674705805433442939730181403929848297478174328806243966003843918651973795015926863249972514709813226227255571205864008434448493562438511830750504305463742032438016523500744113226598601270806568081235533076436861135059821986293856123465949063997724857351349309085011931768841630168879231731920788164536848257294756864242561917150794546940730545021736810648653424334179010205047741616956951431838459491225181832279372155269148898690139306017013074624048212176930042038624913569695674154196575397479438482344035623251606033410526396303485710224138663971368009852871969104975121314265519724929916810058414083893458068800663623949248838023203589778080000858890098896385738592711852418838211737439339839783233850489950339284581183481937010110282727316931239720482599006722510156873168439185700930771273193778244154639295615782530642127186979078404706004984201125352342107456040969907586162795296211023458736227992407169496102264284559328976038268792505769403416902172049004894188201606049119735837735337686111201220444987610189817651932573514920760801891349585081297945969055398034147776019557776923096775033338034096236880748905687928692770433316082116553738766985803667531226160862894058286977681164795025090925299667817323617983887683879156579022075187916419927797293886974645390863406564070753383388047685950831709666046792900513432719192629887821179231933050842735588060307717283877600752747298439902648670775523142143106282132210657276561675884639896876488633221474151430080988127263629967191606885181861885498755757387306930527342923162918271788487302983758272068612091164375709086884094229870939538415348424220605404287062930626565472471768893438423828754854781917723166096156869176830000873963289030132306879358578834870652136048148496432656452309321001362191156091631443222388346544178015618428149654482703769205032657792514559127554203654088482685836137440758581388245612691196863371074187138841231133186271581338918223025841256957626933499100290012590303161220629374737899429404479781076049516595059374122055115664102944300706955025262781175345638929307933195519012098431037022981731231696883061762536316682316769400303497803481536858532850696217814054151321674588525216058013639887501975311836707927870215095575842820336347260548643887379693387090773892451964742200503484631888032734802799209043661677961813444680849389379308418701679840004790264768846595513607936739177082318762554456204340375396593942955890892992634983754171273497605646004035484575539744881237407646233096552732066515458136046475834784890352348766409474660294868150469239743891895839463267120197466731883739558006660024064422314034732994294877756155872465174702930824412599591861678691876728097967490505113725754085154184393318519002810710755633696202464098751149748764769725655349205849244025742625870850352537122711299968735363450374624897897915968339579319986327482647960268796650750342227518141233915896570307681120207414340975380338275987727945226051051097265625666537872726403184848919609616888261926669701323891940889973137544362270977932504542069877085403250474463359094761535372195187334774239244448092623890684647471636676992041641676372056033305975640094762202015384212558521836662197324114255486598620087563357737519724509705252560577670325193689304354327138429515379192495869058568588028443460515118450187148756989569999286874638355899500099124142869592822621489884037156605732709820267670954090813391010319343069097797169785143657627356121990061816941451346974660023629452536415742346430323686498823176625250945347766814058059925758890350979693069102231440852977299697360347840338017774181637522718090909890628778532080330136499194936207417352945493816326565720662637580531781458043560789426213160797833004723173361255428481471032590349838727812686024798219085875876910247428395808280954612877386800150391574777166509759541467523122413003257721423726541976865657045261710431514595737759325209689029872934599919172484030890386185216139535476698749072868477030828621186659283384949931192756308960407620886758322063859821546656479733901525391107680272775246337211409045661242296345617997419575573482038449225518344585582279673606157058820280417093831704816465804508116805066421476559840613166498351072870012003473501504731591752597481886792469694794508354525590955409357918077691094518816916414710595256331640193579948191583351096871215031558484420312317483866914962574050685989328125298668612144090420953225916016410749421498821025429312777066168966122603556291766649659662935977126243117288790582894838662718961164641682040546102817667147960999359134439836766688804655553377466720415619847305082364778253306011315629251598249289262565472425257266582737192525274509955104478776817763217813714502072645538507578560863041310080473913069296854385996925057750898422630004354404150484364178559424744612230460401085549058854765427663509501415892997631636106294430623198237790797670929475238174594217633600288766806600231944801295298713826037582508593456599112174127131018195637702423334245492845209850677337330163509366906876869075262570341430542753144712375878813322087202770171202853701861244919574869960273383779098067836230168545211723063438760830961648227576810168960824239668539934499117581173784280166534921495752003034921907988488681931502540103340442247775891701248513594859731819484447639678162643587284360605241677559964089506163639058188964418161113612618048839292751853500334598989445769572731596904443378232133719106670938613790686939736705342151148982061862284006146087881168086713958015929231218595954636522655476061407197235874003489073041147167060760252321471386576505579520163529408430779579613162623527701826946985607156611343711000624923506361729808988601690296204063459201847116030120500827562406657672679715359134040294529768845203702608511642825791873065514223853105134937471113055482415705545893744989717088699296237255175530830641095318354706085999167324837076632340947387700897196814241067917031073192183643646494760699549027488962099461115586283299305722839485223114717980034686850070448145661673486179913935482823364511318543063070421044219924837678900428124988579906075490672325027286278959540604414389165816964037601504338406950516217834692320448520883357734225389889937638292055072724543545322636995749226933104936878672104047536246218077640044529835705990052017105635086939160718205495877719315385300073482482271077013100380320120416123954013764272312467123045148732697349236376723727757141516522569082310135860759660701772398544594306552186428914218178364340605659126674322493117648324449521915306896130030727983250354634320405289215994560849820880289516857578563549538476088939414559619981739104503578802423581930499559009893105090100467749312332173162678499603512823185094583496476402567094489647126389346811715336038863018069498884845623890348691078023704261530661569698199954951608700077592870471559362809059208726626281962338476510865829036451832368734801217806208735442169283965368811178239110802478638042681339791233960186147817154983711864452119701376702688614037077358713381758232617604490699813320710917708721018835329777935926699517699005246244452490922074602389518905522217286072288189842401323812309351504472058956144402649489523051150641218932881966378689893260168595034775144605280941200359217813897874957957433870886663059031768026983958956552098963059108470540595965995743902197198372944458336266128563939683024159852482610094424997914659162123101973057176790691331366581026264358457501729363789601801539149631936299016216160129857186333706214174248242029876348624641410650337460575746100941756493172003329738923843666493111738278547311650432074402953756632234881122239721135099715574544221852942555505798939400516680528846233577268620807198831460183907744158631331040914478876310525360097688544694647727277972959579113128774514350590435593877559609077036113902873921923552606174854892025437955093102764151906679924289908557019314309361842484400485604878880796690774394923223818202171175014601482919323012236536387668213672759704203560521903054302345809203868162131956826295703192338793707752286117160563782459059664188873907558900441161190864054020353733996702971524342655219051160662159214767283319808509654756789007896185034715549779011487429302616055784169974764316426650214932356100065545086577355504603599149248043598712756156594481532997408257661735938143544951345704790601209388640644634934970661064838731935672647301062795347931220331923269997286150553605235595510045458487691905737611709983037648710942670784977348059102635594404833865597741281648336970620393308826995993866325488889018490788333388207674546845567707999518054167216632260529373246480501811116377398895317277431267917634237504017877695216622899468007484525765818405846061210754819439599049193368425816206372086704393017115152671491602853276856204584270076400940021629641867206548985966798243145649320995399098266860276626702258016341853789794303840618381386683531276329051576332547302066847292373642318614552972202886098362508278533261882838438682331529896060215079467524097877540822375975616613564652333862918571412534409042532233381272331631663717478954554443403454757424639562881712460751545331796706453078044912598349077814362865390182985044224855990838160677059280261164810552595094523351404413325363344629579124557430797020518159031731146373913423893835829380270741795160250057814969256724484909785838201351053995927026768780753683507850557313357767607963229538859870489190349227770022318589076656277578753206355090659327977464219098229763060323955311729001399041420152407291034377830128467400511947267852071000843159023745241892262945035423094430826815623735097701879037722664001668332329940598559378064274562624121725525425894749966262869365805966996774923695838221921734123957420910532344836285834481001963943283257772622589862929889874511134682221467906352952839908552047143274189454641369612784563149186662362651241024238282364270952979857151999933643769143644819960306063423232250268632132271402165295073540253732095373014815692946598259565087541419555034035347100702547832400138238548551905500093524656413980229106377689128332327645823721012155917011396206316805857202650596008761546530228642524119289478183066465756824823141796734083369046469042391489434081643103021611492554200842226407249928362093766090477235529739703738692822241610976566027306862030940665118084248601982648208021044154738651797131545530350882040007421956057502851373004220627298434161089636448328072721214757305551944289781061391491265265541424806382394226478870237226284278146022435271157473029173578620644504085977951338446765412517701067678503237897546104468578283559460118152591410674683867332595875674340232127968343288235635608712482817341870985986491044506769783272799371702350066792210009896547061275043513726140229142149005605005889479649738871474792447938852441733187278704310355493804656266016284944518564667397552113530767571490565541165568081078147580789958624202498073340688157082063623423124420837028754798396538127208280440387030319861602024978299880025040915509441891113321505691212617720384719442536575938644673359106692118501009291765740260634855127096218513799600937445228473467102387382290149249455356515263784893007936448671195362578719376371477429169785040917167559098166450644168881852502035032801177976240107221903415157290870521038205043515334644869198377836479869034965722353890054699673289074998016118142943658704488932098439290803737873945637955814955390860742869113289120930446818697343108399074153392410830029092810396546829499591038356002919037384638240773426721016462117027417381643826433229925461630735596505646575700692834319902048123956785239549298843834089530011177801192766653876129995931376688899037567797076879404345721896191844603168264178110155030957139868257429487004673035782398067494279341662488344050965320938978115552148427681899350020754768360793724710530815009711965027560779058751211814795304305618144189598627907692085502584158383492617829816089998772305202448769209927194263995724053207740595571902087816694890070343154171269348719485091394026737731081661303188271312880671601797190456295809390335112994569393530370817667754274171145580034439190968193112510409974134708640857933651909265857772164857124183565513830056041430571220089268835702817845868161866963535828823024520312379790167860611478163706662109940767561258791476412815639960715203180707150164228046363188166438183186113022927324802739435134297015954435398951530418650423674461152973107311236271601680572103965037258688095227734893734431060377952341268710607969972456834931898018701710088054150366735445044427253829865338079266823170416402095216395152781731967240082849881516394783409376991476983396161898002528741617469967682283440025304421428520895961710188341884985244901876389776796904044524011799445347779068080352298797337205263179404618543250947934037437403922099355187456249066517073070626476928818686354639170693843591806556864436590452214391734848503806934678068173083445865071493442547152968088027405574102231015757417366531842663218660458178396825957772832057717693583731830018295386723875426529471952262879242203993625979501983644230726196426461283596808993859495996948211976357736392837991148464909907968154705013881039929379421772288998524784860978256059128297185349059927948946986778500423728785619327050716694048970368577125491726311259886337180524781696306246137652617341915247463664411318242313961704732787747587014263758637860932112041450549616324939206811905401303295117860598730483965019577870960332716488689635720972725585188841770676171691292024057712579769359185378581130118009089555360498691195589772176441809312716318181332954272137318389877848816651160859774766148805366179074640169802524227342400760193535437924619847149779185153786266626522138523960991540514084238222769912092602062459870408376349924766200734284608399825579583032878087496693954717424346048331053072227912437571940401920987602596754361877472924588316233086053587118074010422445715748992077708599528203491574458282968903716682833218715131970559643937315545803924554007819621389725143861300313443250220263065020365774706119847173603606852202049576383994442633218912609420944277549479623900345815298619326344546477376461321546216154575314065872972054483181253169439930589983386365473633794922167767908135700853477455174599341101068795917373346816571249924085668035800784057578551915152554117169460329772254789778252407475329361252584663212467736787718952988740239467869324894931728660446695845126109059470305150506044357295573556243867113327292264569793464830302767081132389126053904619298365127930449547389472401615008201178441305232549949660719495102006036110573970956622763097780264800807789287657073677539941608050591934193429941024361078119090051033911633822084720885005612745571272956408262174796470585848745302806322502428866021050902039169546826505230143851882209126742938919871172812425696503567716646007521175672646736491978586813579904757737949242291419190470929010124110651565951483651558957160232428829841958289843776205010445671576827338503078037787089636075750267951286549736184717242570725746747771276457505656183470524863184580258960637339451981177941280747098311967991472041487551381881898079612339425390716286786121870554205799077199452214341940627393467939625059637933181653242886465645647414536979620021210731263744907276319438724472307554544861470564632376464649104481397702438860413565936019402063137027682493145236165096472068329414724114508097476039431341272220799052259165300742832743607736260621936745135402211117453665900903909023242042366754207555564021130034674878867587893965939412856083236805273653775876569455594944535591596650481107939599485062297531643250291757188047464803458997704858719703740915532823895597092185002793685640245859905192890848867758535998653098530620955513135855425329428290418292567532721501601058432074624123091881100437916292982827707812564613290301400077891890758589831185694500539518728468561070715375381110964573632757948982165755734514378050308644238211437236272830158152273759684041458196114649689041256739979585957099424185182751965595833550787231740074557838412504453087425839364078827155748533224949358132783712709376461190841374633645464164630361155320871169507000989347214186978071245798126109013830938955611358301946535624972769865167969483640293922492332326748962697961455464459846738025938818704348444879566770094384436204014297721833791544902165312501147126005707402613043157212909440798677700170639514894221219332740512367213005031077578963373329113452835638912742057741559563421508389331485172347687291200358891536232953930064143758666617779750023188375906259147413505764324104024205549307414104205591744964148822262593292315070789940781881365371447345370092225077406917885019778516618576486459077324817051990237368770750148281214120791675948425169139858300346669852204392366127985683913614031673818008257936699146571349744937501666383781693363774109853118912235537515410423780149134987586585491454889477316253341342272173764931565568336217139090279387357705938359376716822370167728461317047482826657715719894956975297234676832050833664934157191894097943896819988329253151199040354407008356470466006679528638006473587333621170429420017490281654816045716029401426726335487097679701801964270276477888743056012804450425697763060948390216342865175327098401578704778497001729293342380470276020190568115651408382566122272243624633167536675025322323669127839639529440725919486292199140436616651138741049928530007784733781118056304979725077208334138690157456601718077372528331471093440894356234159827239759697716176952199594797018248942999113981181469963283568432125544039913650061733163976764248231797633599257643123000675537541267184679559296730653045448109881347290687832817792421186918633773461237658520977430653006997062504334588433271633614158628763367681163232259813927784517556677139882971363267836924412406314084595414990235762996755564333254862729797049987147347879309600503808702515341916345472627366969323632451119361147315323723574318036756452717243705400728755985322354810123402483659265152099224547479510984253897233455282285553083745151619643726106044349302773228277832313141261658342333271009894501776098384809642378301970740142311008952270795413200215255232408131727551146698581762447180185771245114908634177965002759147601712402670932562996642574648714539300935467978045291447732053557387836323094224851343014778453947207196479832976453784173360759427031296588431890044750838478933343943343523078484378513701248611061979004035206819446047982354834114425677567790913666094331579317469200459116017674299296206120537670884441590472115339025905108386223801848826955274745834802888745019897963010325863805443003403089652008799760371220672300477042771476926278869592115644482373101099562668050056950619728621703552234504336212407733676066940851035956509771929368287050925076220489167285412978969530814489782178418716202916534849317324250147413882844619351882212257733976815383961397474227620086561078273579208735831039783078107564891509042798314382741241572614643382924351834085915279293270080308856791909355541001781738927527548925951630937740088430550222123199158166761744217161136587903770486764451551883752596433509394228271708229611255028799323807110610011433955986689619592576284852885937271051932780765282863756718200649029836288597250096951762418318058970215560880370984839138062504161168176033184586930130120050193616322101117701136321874966037652873815877878539302368982900309590806810118536671692059036845590316768048820806653696540774276227638197575896148420786767954009864616529067716183308109920864797945824913777115351842229511858700759315095172990672707922273160242816191723363342747969280794361259496287788959281765949028273127312188785117108460311571756985343175989748318347270993793765982979111442766206945478803781245583689663231761009732516077267845610539988257094666294485613276771849830431232092367650377692104765507593518931150824874342638637254831308638558135255200432130725061920758828068023067693984339297947705462484567416744331157998078975879062991431084170853418448181586476982055123996295249444002301033469596108912854325879408272858010267878234613436910406513553211572512464221658063401481692885484796484041252713182578981692037659811581891506757376988398488303425014535407737621540055884522566483901525477430264540297689014691738701898904410251721050470190869108114167328568806435852719771345620749227927250350266078078128999518204715000584068127617704699425337557326139125817091880210306505728379704108137891694510692188394768996076968810028808344474573337261526880802097073400531500964454163889437064165309830282626976158686316398995537313727479229292603647982283676795605385312478538708951809956289932823437398583030164950481570608011194279030679764960655605217179479488270255623487701590235465525598108204947443421867506983881535434050498002918348950532596386527178579199516195888549722680995909051373524517574017616725587826779554476438669124907433014521714852080286887171411846839319543308328354073508279119750231636754874985577253818460180948553941963870387230023126669923716900410150907528906639921560678979706125480772890152174390722168159257620385117308697178986301284296554443154132329443348527698135655715332436902070411972935515127356910953850131293622540329611413241437821164784182527695518645672975109105040490757190506195642470754545893760061286917268516596411829746010208856145521376717913005809771178575368040118485925684577812074122847301695605129828929143608745666096995688494840025229236959308688959981611914907648693013091006633202636961440183427830052260852694249305473656109469083951964437935880759887081140819050929904091462522342050875792042864993750423970432486593556519374076062483933942527062534564539129158595523419470572667064007704632048883378202698248056215635203166977441413418135918380854165085242840388125857519901070976439396612989154459067025996369262487533563684733176016536941720439076410738805651878066749396237285571851224438139109184189903033134966851873669746914942915065428754087347015420419290305918185600018045279665207337891937843667453448371072196032033535334936959095901546499408546630706954834754114286389449412891890391916792091341388181456066024035287017741904387577644340209270330492803813627327131789771817257863574490293523943731627299731413989499856538880812575787421150594203133254746580945672394034927982896616750587310079786898087317644590308785350724778161971858588283004457565917684080628406973036242379303481178424907785960271597538102863853343975810166387343730293053995748603131446833636676603357365742781356039912518476476196384174721407897167784018397072610749920145547548063253213490042160532537201322372341749296106415935925317680271049939872824787425991769002810418671103800468068680541624981644657075832903122599309593145526448258253335217753670942823988341387246212346120768589635858281882278559430508609332100923290489386271871245106236555308864221012020144678259554010764198755700201274896282104962366657673028284552132242514896120873132189324999188406074686868188953234302392245027905916005133547172395167463047925835636341586291881545943785003867838996422662247582585380388859243547600504215610232352105615929255348768905368575433242898565968937804884495547741957168139866320151346439502424238128818161222819786168431507411237469649855745861379391222298181698117852223653492968907586215377895635897231485653774451986772834977845981675447971938533605414886912921984947270499903880359729183133952134893434655086915437519870075194152179256883219794874343789302641578362168210486099234279437941662016089695665053440301014858986251820022976622213112877736382503008937144333264588718792322545853586206181771323179845478199541824770023489208002928411475418368350857431113217784596528937129295123871016777856949267700595559814761964340630471771566274675598787605114996240738739931629651699974933002504230167048875101171410444623203927127722398134817208863452752159737783706312269347040505683472525951159053722602872893301677730436215828175790189397295493630390699932113114226390037240626110615234086699953178336218894281506783830662860934971175411814051119019459088928822340889721073616052675406028644090488300415823645064303603116078707205375705798957307460469931038556141837060637309005522423974271807677000497069589532047993127044209031509320549286288083886059777091844397143204914547225254278625620835128441707041845430885553112424708908906418429524810431095133334278283348521838281886946645278516583288220597900535142951763148524880116916290455950622400300493553078428678298937127874117490835505789002866667382118355335926199004071751700998757086657251709592689223935203980267124909930615898271486054955560473895740197166439845546643103128699455932636872159250205563407864286174160375050102600496013650922548750912580842321897262028587445092020137266970116117396360292572786860088094464559891014107137360264714229308169958763751771401321112925902934902264057617529267904733857167235408896530489746609230675245653677578713405516941307241535915132831596087062346180010663601795965281711162787935257092028316753208850717405950907883517756962110985042448123007847156689337956645571056257653563454724254816700459664797817449070687527553304224790394746712803579374891748233189998261664965803919564436332696967035510243987242484306978064078575836155106089627127577699708430639844586338621422160025098598734990963173719874102362460545975896158898006940164859224985945587706601365135058115778707708791578875071050134588223004500723246030764921807292525339065800541494930340768778157430424480020482096071368811839290075711876441879064630505534012638637700545174346163141439502489003091356820393596040670590383583435462722691396249544661779015017432943641501694739836425246903353103077462931862524040181185460646976611289273355910818113147013313475792348739017479515601035772825414049761063280699322419856680435339383107928682711136198409512973862808443719014264329073570451834680633918209911581967633405201629965202534505188349482801640749885883382056259752587034335605850390424505224475070640459593493013273788820530961282704063225765865310774082611206737697998166226449330809583676483500556753421500649953496379894154939335542440812711905167168295897775641772074212408308068244618683759272396184539332536343036318375603222233918508341016747592131990110889935572904856945813011512526635466961684358053649173684975344727298295742894600143472953021543095113948820008087766461275209637473676314219474408134176227740498975360108143188685716194513473597995856488316202746281350161935361174119395079143191259942374687718671506629603328113456077359005469425855431056276238739776637087119401934558910367966083394732902744241912206521277761257369496845488580377364154213207114525011501451851859875195647332372505590014020921977229889277128815250488199589979636471256943098525753314445710502944556307092950109461903442661323491838653621623634084899941221134092544069444854793566018077105737752183693282308573159527333443897334110446841915982570013375172314584076928717448552000278309667660834301155728663859403756818230748583858914286555157291026363743238433779984640236990906194363544389192453883236674185117791750869900274891512567898285140047713853935433690482364230893049270492159889310570729633814732677389081760245773559012028258848347274876692424290073288194639520018724898220072827649279886926817124371329246988060197210212892030904186976019164990089137651748409033475137066491390434950342587253866932487457754966123478082577407934541083693768437874452701149083409150156588933949178213765170238635438129229762096213961469713718771569969535595181398245443302106014822556534300156180071330240588227803954760516740584353831095385052439054186335969191028432342183154019951801704870116367881153971931681605425654642409723182880423229020872082924363429829017942044089778948181333688579333393923075552826698246871418679795029816355420596984563686179154950441094276116135634068328655725170600261912882436914349041085806972382835004834839282363617718043834583409085403580785606953363782479794586069253001032110320890820912061994231575983892886475365931383067875583482926174813028479953423818569655603561408469187986688070545647091450652963119425636774942448128831435554991240788654739999958535751844200226851559567200514818911842481180100291080254110713825285204945542513392838517290027595411828458869328818279783877248532333798278978462110676644492679163273794008526126076108579011270853775298459042572024893741275349138633683192981236408277712124401899446091378037920397199899545232484363687415359745426120854620384910306196345786839633433263289886310943061868235349384968626433013326601801385910398939285831658891837634204670433761670199943322249302600696685742574411506105491570016756355709590685528158196531823982532416476148118430232373257114982567237373447516791469427128250814037915285202218516740138515843958903693705668463495998897898396491036642847943381379858545036401833168897327801780554302412492780815303386898170179717309795787915962562451630470306049866371256508929960518395289930725763343593725542802516796308882127258742403708390346489964215740380084355149984093192231418285323535671974095550914893392414766542515010411676165538478131721623820935840062665621524729766464458209494191595091104862863001556050706458878107504779861011079283680062357465241654879676502615908813208987008513220197342703728731767063324156205929037565579010456031029448663182645782933359680084624282122352252132366501564505865537877857178560895891752414840217527500636358955095671683813058285269455561959824770165768895832747413007254539055022428964671493707487247893697928205189168325502202514717068084469878811452759502409513823295003036818093056635842160332816176630376373639878097695287669564856978357147628350514371707841875332003191456353622436632986440581408434340731316733858502237931621757221455142105994804402351469593747742125674038417660323672939610379023500179634537332770920722855462439005444248962113531245177903498785073177670908455219278120649553998281156234733608991425545263032655566470666629641217109877992462342251308103179029961141431642103174441501906878520108759310605383586033203535746377130265601002909706435344575443143518451492733121979098251411034707681471224403366044758220748558980107043961252997374762674548508542027446878746109088799497513179836376436225359810922470009949558447372688983252956042117910070441811509654241483073835803815443464208714283939047082909198838700519573435290844990860404846315585861121812897703340899398286671950738501340893402250942023488820808116553764436584715775512558537926614664907259310468779657180261336351813442023597401620190179398148195297321623389449868652314255756539413687205630086693115718096156514973826535743634258112824607890049574693058606103936526886724177244829263284936318100606418068538970780167853241183593020196169153394695132466205424680083561031266324081674884549988816223566597298459645842564717622276297850931793214447261553244076670818721192096172488173136985919612406663525657586929662025595196077001656363733914282867208311526654320594342852489468050830891323673441032546877682528067271017770896469374951947185841324255890675108031683754841833906799639509028377818425359791267190172587941923604174095750471235815032207465466346626205621385722071662046264284664503821001971904005720110477769347582150623811616041378448526051688359426238300825025815155186331791890125410058198900995215606453387633890814043982744239292159356277728684037341990844124032415491327786267886861667232948159615898435512312567224275663751250817406296250263634732494429217738995324467385378181757261303646982565618289061350452171903425270000300505530660454421882003685091857414522106878520618486132459038042644360460754440691214696660202784655516983731948777622152268917048945989732037794618750523734982192298432366543138071020481117063377648897795406305280883180125230522513095007740894454241468230159821324707406566938537936475736027323383613527961214478011293508002971564146312685743743145892203009262487231967367990053369954636628289435461996468633671717837131417208069687885979520900481530546676280349399245157718411758713476660151692895162727475383415468858044626693629888929083279645335639930349701809175659090591369903897480733562298584052498488597968061409736383979596916107347761541440018122939134883352191762417597901683268425197126014107741734157369271702187592192778283622707196537332454511266699194402109661872443535052187655540368580305501475545851196240065589586128985353611322363260273059714967285986107112786044232011472759441663685382896920918370323765113204602093494855329287631257926232542246302469495492300443784767760289345364858785397179103195367575163830103716304303824765824187122343010863288992544844742325807707742616195667865764816731154891861515179210781609761390379145685719347146201415953305396796170709537139553303056026786457011439841609957548285834210289892364936112195530838282094101660111609238823831543868676535736899058872390940288377304027102862152312677415103146165685026878368712344241729183299477638674552870440947125210474781023306387656535659226302639532111227256097020865429733153720168875638773711573068831117492824942459898547638107513098435817446790155903712658862570002872397106722495175947089486913926188775695911863056234570618823340096154366154643208351139922748455705346683726469168809367218766084324456465486836115837370705676560189026042871998233767574598516894944612360351868434488528481316490772754241042169181015207373784790500522514350962429477470481875889041924906280816763759769948306212188134595330747203875159744459834528893799629540079443447849751768499391092109866978155643527491337723724155186432086629332418384784228635546944790561266989978498981615221157949031062416362601208406717301832941685561240323549720417765272241676288223048227305415263949977541866123151350982241042413772830000279121383157474747115100937022024700453846611753174499009745206428648926374171048686075479325752463235153218497174677065157206825034423917090933910017732652661259880242445831350413898409975495780432009525859485102325519244646700708742147424880914625144462260877338595508145463393079518049162789201411915511264625131872750855421896000900961444276985221695526512050599903051307338615464043242446330228333025480358619844701817796079601264185776913259181054508471574261428521150739750244777785259370845510760420407390993960797276734519349205509200036390023075018822456932540449882450357256759557748757335675305159295898262592334269904132596442312186162733954809719325849804224993948550244450733391293342393012583812930240171211390088331060822737719805538962262285868278675225322866528177957972733156536794846071146497862480725265866079430557668310829445237210434358396282894620349145098702551838340375112639739818039836705310638681467937630016994188467766820826922845813345661111342698984761232546421690819641524479082635298585435606909400080428087373934166592870880418094311420014348685817935061904655545434654432428040238908226017087786732762495257634169188665642778037659001010292622077315803635925173564354091195739126736547108302337258129191949239505763299731370814955799763982878441319114250402040880897424718639610745367796918785685627634497996498363025017455736018194442392898279713204459680321096587351933311004545212992020093904114899121847238759286317759530569721791011703377548476905102611826509789137867571616156132991913295627475888425289543098720715242099635551729508091878249094501714051627040067200140657122278866260550519437504728333481109388377654902549390829918124321917356582242584728992797246338233959350052789074502667621788167602298317023553062007913827027867235583507881442952234424446667598859936192604158897206268334733333924114306175703172481861936148370387335122149456179675379256284405950897147390718222323528619560162771805768509942346803207631738568738770542505123949870001375270387899401504096824617967144886698145491386010253591265386028703174706601221983642198567595878981592147780393393567710268648416030442473648955833080425812623744309762688704470457019856616139116957095232254374935163120960361456306254097223112030048991191940135086410478329499137072217961556181719560383160715201393829352545911345598179164387742483390265833281515988709648464466757103623189274496188857517158062395623422354730348440537950842309098050587926582116256856854010495011723843489787977583680448967183124702902327554365106517192259231495941057168855306799111573388264454813045434310660712484013981730443963812989398278948199795836421447763272526986186475728838170312090191986730386309438602074381540458077177092030674947465259021739465549028258354643239284622551969528867883388102383873676693222278466693534699797938435728752396023060375446638893333025626615855884788494702427568521558577197338436252091760806257953574801139533267510902897760058067001139324412574625831170004392828820788639595480676075728589917583802127669113513232006678685262729725183693114199188412911315790379519576313148816303402111748724386341573558109697060395654902009657655881594404574640877159921400474251822669725634578239347637213949196315795993678110739163519691398424481284993656762959822016416835502578829371171607452445749772190393558217792542732653836793377501604873807161804126318877366471869105765353567021292128882402914094791770402157453180788755113350221019658406386912047027407271086220608257458894123631020514708915076707964387908139822264953481564936494108399666550604820882372832775950227182453403504697363785925044670582441452593176014901525183412767724481284142600824330257530630215568955758144109151431685553647738282786022706460595645673186076489920653654808053489821566043161118435836305894552824844020856551686630455687343432226043750333324592283181462322942016948876898906260327615071300616835463045177595377500212529776830815956128180178876713408831186549148224343115992206233002810433377438049551558185225996083351866396059298644955258895481321552371907454167143478660038980463063194134805843419044380083839204345269565687488542807623439228243660663221159566444826271165594993069999415247503926269339264656421437668855527742199348100351947931369666214248221228391158089203057731518533624504114317889926600057361566311945001691980936108163287905713221997150179223720296638103890950256567105076406860175218034778998768080557043439174475676434468933195178632442901581202983123514362807966804258778972754896240571936445815142192113030276786745195269683608169127341551443378861405322083739710813398818000893896166492654945538798327435753187644566500737430615861733816554263981698967842331412925483568603996226835464318221695992012507313957670843234589509758436632352315773838090932252210980862956233487131210238585998483726647652365727045554362381921007952492699738404775650003975574839073445856425817264988878214723798549839523657183173358846554049491484020849871797187465826844858613275330524702525016497234142617528962224865456572923821467224143059229341218937942576559887492221049587374735015395821119851440047799933190881445732526316381598091584439136946184506847746470640621797937129470768531106512060687358290050652822329638726442964660704621856995771395870895424665349153958328158853982945495628152672326992363091731001088149815280645398733691693509068744879037977071940898022093599365777498168424980779390547114740069862675047971314423155898730352041613724298811331833687253745203866354696345009195964017619431745395539825227343017785922675150197770449825001812475448730396957070741225716003491716660898058802336166434460681112829775918357758725054027820346994761208559792063457091892012934441472807301603528188021708949319011331310769079434446362095738307060075329637320479929072921104565935868260356040246836708732388823401074091196548286236053597928958616529526043354604509949997902838648232763294287796370122637639867596553080199235453660127340837985657674654257056234727884393161758248578436864690047677544827484189309979984270490449636899922204919239905049969967769033064728827603278089790175396561572234061246493907185175664819748822636247212094261694277930939838680479271045416590416589706427023789649726121038939573092530796157243556733500354062034129392837215299760509255864985703926698515262990362721874128682037541500493665991563660115308634301346639548031879064370425858590556791270821430406195635397825709334112254995522690278291177339760494705905807185740432040158455772100175226153661574251031841027134987886026047808429090885037190846320581532274194156831317564972680026152614990872254197012295191258171290068987411754616644429970110550351135549335206144028035525945022696661050094352480219757626597577723083925902270499739641371285824502790013010928169801963471117262234193313523843285089144672024553356051652235927919851839998172060069523499537655434103752585634110009268644783248404806122908845341415459392967877929949257205785208945198206340686903841710688794515410830264987029621144315634600063217946145956346733401280344052275504010455982726661923772016679435020106550704893763065009076159473196753322628111094871498796391885452166061740079646616327768845007839292940548179554564788796052073858692510999055238270124138200706576199856752936859867211387228924808992780479643694948462021849215393442795624553610920956021668434864400459774641490944700005236083457399152159141586025049729134452057034608152651352896989002425142746784083306035376456338768944815100215721395347974476274335940148499400731305035548307176145305747420073908540564262038278272761700840192021556205674425057126224580398904574313727015245128275356468872919104252168946865623133208640444337128120668043847573950859062962091029136436099488476258460030959430774221891251100289038648759552269346457858883955409742989475050708355722750976315466513806867446279521949242628455439011444690649914232878970618804728253332234497274570103849486297392119123514526815512731758216383770151194696525086577831972957845434259957707796147737510078525158969965739680106113898819655984845449999609843276385439279278733232337608690567495117084813152216412042829499413173856240136637927267992825518644130037422561648986277884500509585230329147267999675416839848359489075229197098860492444205060403896273040576272283787433672988182555165568284320302697514208015969802774273591022440622986008677326943439070639266977931819086522422968979090963725228661153150635217119169276226665590215105777337860703351162128696145450358887952557547403294527602195480237033533254206238795705164001594471981846180810362840204436331607454894850303452529780861619111694772419457816992027588507436434831909822584400347199418305905939040160402322932673788325177065859686655855478445475235537171980332969736569866587726766918467573009303713578002751244608189396624277041529416322363916464181462306673003046417899208648885130516187407988028472989915388048061653304562605101056002506621789625187289743460300699323464797560244673005470843223402827307899700531142382535881228317105872882635916823060557209112905042021460027065731303497523165202551686300413384345839446999015864342167995900043585533350181761291778267924959802813249427494959864649366149127434765362585239260141743874152906543998057428982802542116238276708661290364962625963846030144347138749424847574482421261056535704637171136454822157943243823666942919276771492014192849449746947958945121285777491772652207581368123502037097199743644141308530717345183596846905045804100582833596223757096988182361403267736991428604150459000698859876907533948731670133008482569586625177052435765565606762732921635800791398104471009725550103821461129216404961746145664051020593208269572248855044654458140474164206003199105623659364045183600975636345113881396827532969236381693441858999329134845544564902391090061826773818409987696277615078794487032970938799990373144585113824686614906392956670446450867306632409982218875160948927602294060783567361605333339672036461885071395663004783431678851990383582348582953557557251465024260711451472671025268678596906456758614074098984409946811973427643916264745782873811919026510114463886866910883400334849856875990155674319490288026451371584220120828499065987089970719420410805758009126793328115755464866059623431352196273147489701818996797539131910322267607896585851997557220060649712089854711293346386504143229715389925694086143826069473124267643015147040399174251661965843950331451344123874437862995269073955964275292090457313013026311519859502559571582541883210502916478664898798266937760762317004507422650015941977133892088341636746381559286253038427414095151817834423131340508279488592480808499998978640519685068471292910791105181603236113441770514089778869468297610284014270130090267172773263949773809174721610730060862419925635281719004737234703955473992226499142180963396977283397663673004294744231309705961712447929522946831321760997582547515108713159663846003608778291479953231173178752219169786940574897213292235584581303014486611834376853347266294463233585168805608452124799643092354354433533023967420961825208865186460359619325456611518654951289992844434627467650351990286513937036533127630999054113081919711580634517168497210638558647565911378284321024741281204178543361205376009844966021293019947685004903639112885561873148467496140312386265150778137529843220251443700599002116026375146851699171706820401338178699629372617225906503880648256200671225063513812033799386421044060889671106316956052792455277524644500952697342576228203856112633273426061645070599397757035598325800128100292735283498425770657921868060578422538704927766335790958641952907096698971299245934557600779205335750904220061620794619844222931902372911144325827237644971791349420205418162101486588638337780724959509323236441364409877486847904357152616063035812700384465484186894260873545965067483928096180930449722161719349547579902860631988652695071551658186349174143585972713828922156063488472313029074235088058884672948479694155679163420173726805255510652928855254946561782196296473041901107534098836673507051402737084411086419559292226793929362759276378944795914740946925394886147479216068005523252849753226013563658708776369457313202157449625776172704567052193877666634383901892908512408030136964518790843299107412229279421098239525379598997552732752301625013425827359868228740173234681461072860705415645842081639640199018413805937463432452918005991167009736437368375727014403189219499196884888516269541796554671490703267585645496407270095092623600286136974097732653107506663447216170478249151801084054394484522399313506449448746494444408825611872289402681155275898016155157268971067628226618561337072319386773975994440774844692242874796344355214936108845312414124552386169508130314823086299729528465444782771479219542181747655391144508227139570895233919402034052416600907785694411031358125026809326891265674417037041026138980347228715436362032051148503854881520816015900456208509070987898797034807671129666407185675733949793764049151739281245728365052702753844087715060583259650808617080685809787676035207331130324402123942494834967607022261114925937197715345616716306149093602697710105025189576663736800323630106350776667145146923586918707707264097068533156540938274363877559573102132055397157383401740731383171679788898593305055587688180925903159502272146015113343840168682969446079449974947586075021265742465136233909670069613656712840072614974954530191890345781896621783649785988616495351572241068646768246755096874114443237085855196594668612653775923010832706315046707860397092355775868003098429754787912389331627421400567994595633696414504525007894671424198081181634872578079044464971824871386190758538087089191234925767008140902285346597166124355021996785174871229368873943014634077709739128132744580303504351515578637485943365570678106079422207045004466205066164711708301717713501921069259482046085467654007295848306979892879382427700207560814027946041988801069720074016143852498426442773894645471364616057251367150913721341813543151955347473797251453318972080666910234216452610817820161006536513618874324124455134411158475660296808137188275848456295228356203874246679525906493042355875331238479406188485505754404433663430257661249041681027439900128771814265904470422540249327198106226636275432808046201143823923964246471014208064137792768522185945173828225776044160076541174646010373745058313260291981787370053923368126538272804512751391647404976188287162849778416505827811647148339976090388150185463603017510766795127339510587481317591869870909012330495526501402168704215004201389393947317204444082277719433226916170355696658423228763349912791298175919969541288486520541074812443249862587924271878537987539901983797191330565751628241127358790638195656989574893732906903209738721304214148097061844415521209978086304246142532602377968065106508039029221714137605205406245817050373929708800922587241652065338110738914863757797720464223671208157291521151064200023421588366016931400922045631841070843942929489202878096929931139107094552352529585213995485031744225680261953566683323290144392475761067668057748976446840727737143170660915967497810533902671166951907243710320467655100288253045151424487171025627516868051744872491607140538133941223145335462365284480632592996022667771915018614358333921369541318376978741031893463519655468601540420689840880649253786879793772346784962540973692376047259654734120764654367315575613280582268106556900782151471321313212450516789619655552763305862824737932449749357137195623937210561514883790121520451879779294115976507769839797242879088453465665135066100572443470736053969599279025499029375929521138938095909335284149186462534058008770898017109659138854746763633623802518421127944117483921254807750105370859069092251689962328382327803267322046155781506384839129704422267370896902668569777743591927019205380489473146130289635253438655191562827510661540234839705435215748598898246075691708868301513119303419844491850508633069952609427232262805892930492281193726184271548689859126037803772235719265371267890713457128228720058799997022328733648302116549572822412147333131453646749871860969383603479582635294733286158159556272733869152864980741645170802229648567965111087789077559121673436205638010580921222276328606334755369448540311475128417738397165068351148319770274242051192146950040386129617807435734369448835308017908796031005831091636706815575024460318389369266944616496291387156545580241311285771179245862476941275248196211762412157589209692216729809494623279807221079075367325983723873641319809059980755077400018643435727825422269130228321963883783909843785193716569751607411636060846192816545877728598696897561722218652494144157729279486915338746887810170491625437368442045015997319254646058735404320119226965810701860516017146112179450578786190986004390365238128601657041513788167698061385587441203821215751916520069225664369014468088739614626775788579169980057238099120310552382617063353295450763516767714251039907615964971300472182372026536574512380092932432703233614485308843731978062127361152838204066495367098407443584199738606858828221154844097859436408598992523391672263745318445908848942155916555853221080754825835375078663969398889203511975549350074423184836455538925300095067493456678027378967610084322093396954724881524283811721726368762544080722560954222865330450573402890100367438677942954884609233454242927853121556960975298843142325240620736488359881601294064062803015393469958431032432915632289727089710409605930783705629278471506598483483606800737869089253119563830773983488788720263715796646963344318790893942148258919893152462462545437143816168707599657313069096435082054657570568959619231735428020173522940008927117707102410234336582024170320331162938230009484269636780492835261202876307302036439439360423188612856035392370918239793671901647044513009512096012594532711478007062720071214781758378908908975572022433811789770287196176375892949369363126805770403015907263331731827039943529877938109737213337076551747061108836446733950581091007198067372951603473405638051946750914773703111581054288830221355308211333792037104553651876913714281445676257898523696714152285205142501771003262903970300330008286199506527582584474051914544384362040543124233451230994088156054821175732483171604454396552319628901228657661188080943647968004926075813493191234288397602395197843186081740555062730330294155331558746738462608746097202417318187564262250921206513930177304660743229740951254296484277750630034734488885774970494297996506089034626413372065932040899445712674220114675829311219366770099327097631818579083961796866199266668348286249156352307883311633074007520479789985548775553408540157035402399426524477484001184380447179385066831187346765557734741708114809737065528304872092936681811324776113652579417222712266105865366399384396034282854038318348143787753791689074298190168822333289129931446463914473500687979676003105559211741052131804785141397157350314351446794081566240135953713341289637026659120271724804348260472315049423332397138665066016278495326492650517883863294590047789298445641890113422988149176095422860076912236747890999549306519866064528869669293138517823886408357324425822630044750828944511342332014829096959569395830572782698160843654315596550842807285465412606143532210015048588043060471038938380840492200545328209152037113747892695455573056212705143892404904251520963712037893846109860856912921170829409745315526232706159818308463467211619930138746396907259775754496660454124259255448475166252517952543362964016449686453396931557523573818219767386526937263680082826910115344453800963765590961598362298023849040612024936526444962442870133614721255723024959025361841444873963964261558195930067139174012524726211860099479798106658007553581795900773922338773358386392824765175646104434346369551536136312574039598987535562334734329212298474919064559064115604195103067973067691952290279764112762890369626442478420034504765068932726650213270840317773723752146774913446385747723232278484741661159157835503138553064124367612893204752693056239287821169809120433169141325100470241800158599809907224610398423329357109894235454705309604626618252270742439726173938388111109286364348386952764001750173714614201276086329809739525792766544989182107650684683012342981061296548250698203092335694678912044270804200822922741152028133658657605417854113952747051649785910655942166450384199346491471250119089693879702255698580616207814111619501654706744468673658566308591605086869146744190949836262377105897008478703598221199869251239082858463196323144749781352137838021669358363059881670175908479109638298252450692996915691334920786794805477956774709528456113083333551174797801111738165511871107802337555901462691278746341696655356140815534542452529037414737116382387390729955737603626597444673953431595624423250092389804434121982939219341133181135865533258204360073636500790253744725873426657656631953717135594127243502345725803842991517262307427866826923602101492658412278410215503106054780801412098451545938274470596197966595051945201451149758402047507152408835941648217194543028124863894524202284373879240009208659738764717422684284855165159010491525036966881147742269297836298171622715367787672315711828674328019217363146233257679212998167102122975578590847730437129450088794983841727949608178183556310261199844999558713072961798064379467831683958890930913424101601945047570259956385109057705083045116713601719199639142440699375643737717584426143686435375532988294148169967501032827101778396076656301606692534893002173387984971042263167788554589732415007323392668392885657205886479214153166815411742464400352448968853046452872499805257527006756969696507156483460685895165470284332744676194053260185035935311759654201988652189405613168856287660990955967527833359642906799267868432885797219584187573531633959169830771628170366829949436398538769372315640616811858769359326969166959460692766877672284071131891575387521057249060740140330767868848037922793695076865943413755020973729958248757036696289419452220515051844923236225400061782087664822234723838690836218761995024542065697260638663199770295434175008621234220575998388161321642368576127124811895150256564377216941881289718914232911288010270818167072384932285332458550451035443316923177084355696792401848379680596520508648398722713635806939112090197058023606569116277710741232165978343331263128071820121198566436475136783174078537425667582616057777005970024817711091981635878151764969099793937956209293799698638081286721999294264389022735568213714033649530479463442524194483026873142931746509215226876027526191822780845158340678727055146336215426637001511578529956411308663369433974818557431828250252972355024206039990841053343272366551186468585623841810088604512909385813963061033991789406542054812510857530566283432762755847128589036943067225443098557493533474785707077526781555576452124803608955909274886657291948292968536405223548469266890319857622505044994086247951011246617534895181845293331975470831875446172496525640215612582183372328534134448434493313133406786022580934218696425830002240388460288271941696080442735591890902431704145765681932065162239496456309710324979543898773316971605184406683456441293768873940996199199056900601921690969368022815732165386071307555849452424274021555452179274602805449263393780211519758351891366767965122127710055973392656617305960475182787227569068662621808019486323492990359721929488757076333951563199289263656595965874858926939009470037647030929683216835007902548985306359022839026100685026574808027686050931598906246746753387095645853738176580011129897960187889600946563798061423184434225509396921244071996456637186232148155445614789503040877565200706233545124400704694166793796766162363991728490531810951517158328648617500645232124732504710171627235281893803675163717829661009721723585118576270866327196825983081600641656991826836383902079673023045496224300760262457497193308084024404951979170106324827994209324153570609358841564414539897731791172547481445057277762545001596899061642052286824062734387280264981695431849249204470361715603450948309448327507491097796586305638950383300622191400716901734721758546541183154783889327828791962257607622475277830939110935384604905188662701021015560645315600220043582394072131487629044737395319838746540975981849256311311595241925530147305209519694322685277988346303494574045975915269946855984910927038999469706880475412015296249336872974073798467275820380743496643984995424464301518284809772655059130113604985186833909484907933742549086415313787171067915711718410496070334984751570683002393438264397310708535703721076770054297776501861116392998567644076532697692115073783681679062503531011577607511614431889609398063648750766244984902117517567775366360001971636586527247529392825865466310189258116780743506227313031488356592643697605811423347795174230075953183441741158854251434268110232732391806629205127350372576340201892160509587088410595224535613053741273418848262267783881601414717489177746636700527016483354045998329695498723037444806451252993144832598670400199224340228922592960284566139598132183024745159312306974204282302633082216116087049720998800473865814324178502597986452063070033569813042475828799212154736103474766118828954525289176108859024362352934288459425778014497995682432287061285450854632989188223592454153586165879500277166378706978341806836293182586555813727861167628544057863172932171889711298783988224709894963371666234450891366121801367489793408530857232043193949311184998705176441774888168757390637635829906229946999772998963971942996693922132642107924093829090075028651121507398781504334836786053312030950639753322184932175439658294806880859898114533717022171376561665197454221060230898202130976892386694349952371003628430334417668329651068386185940508306875080809870068774462560641559677575089864597954392598029154606999252838021948226795145862569575549438533683017269664943987247650523147884254498167079457090041951082894761067670538451544854042020776546696615371413819370164064333469364506440608415994751160318347286261365553242679747695397987694571693860089042015079671782241913111956166242294382077226106531356832589355484674389692597133942892031750091182150770561754774538111618173622647380924648295639237077718668679892853225753754978483465051034313472039811092627294223077865706948939215852885743838347765103224414193176759199898202042731730662043439828298254706042445991544537599741347395122320738357296473732987692362789585643880295202510063214348595692930875256253555014275232577445130837054994915116154141023597150103377370892322737829899055791208581954217481816808818972045592295635853333273360968345755788617517429796565425442104536772556365623600608507835581795653834293948113397779817961813578441356950674884376346145466929567137142942439627025757321805984577373942107528906683704810893295760984314707619259482025839636433844865050212457806664357588949180166830602998832154330560599111654926782551343377992850634757062690134573428525617402206479886635357776326677358208670266511689984427520771904118363582940343301807973293346712453046986505281747556357282673444354644809815942340542234406238562302543493378637925657298318344555760279909279053314936471290977613402313608572296357156591400775166529207942314382175576165056692141625758239585252848856122456363098658141211599634481901621621605044601154375771055862192835679592993056077015926884836234725178348586870163854443053452064345512351947845704571176890063107625405295311604236785865357834281581081031766207134353784954835330045410766360805113179830577316071189008325489911394093701819786729479225367669125440538135662566069098770280643901723112246939113644505709152800637295104480111613333367427289044215704798112450297784801082999284937077238290032320138197396909670786821544372142654482948016481049901146324832132528989366754447010088986336207512609953645212118351026441978306002527410642782400922042357353891657361164822833992954146024907600397397520022258881427870320998739736347196832775919899724005522945892599872728080197758389132469401758229428527427771922958137385616792882587152742122199754440574917634265242917650829179931440160845218520760482265614079031609264322238227863894937336381851737250102589444551131809776524423401639516275521357162550425215720584419052584278265482503340979076162963485149054866510173450705576333974756344172024162325911607295481444252263241206505010204467901124020419006426272746850686645227116708053491409958229344613614804360387533724422254685147753744956517817962053344155629326216596239681256588246594823382801171720661292188504324171711228283646784197732760272034883776518339686591143000206470644332396844619898017488477299185283991533311360069255630183353878580237816927728463946311397551871216330207318687878659486870288092129849740681933241780175775517384903772771530389437572067042055017300270355384015145314068212741805107137258738018037461485980725539222815253953305639361956962946267684075401460787901195888897176992590985153586080858699924305103266734696504709890849222336554048192651341090951705013196798709157693119431199106963931767600654795954883297098614126910969398106237962562865239032611466011071928078178042863515487414234807707532313348246839660777159742999402469033789360361132134020977053382137177250271774634407555075914960476706102079142423937510083340343521091815977012498228949344964003536530603686815158593068985068560904830139334355932839825394221385442807697215059188573261994537253527500689507218853137537044227268943837930891763503616935529137512454869211438398603747474649960252743264863275490933886106274802376787736072346373062553161988735783884735567293092084387566037800593848972956780016948329803292454972580866967063609460739171008605161893879454681244819033780727624461055302639708999806104742310121204445620163607871760055373952145769386772020399929131551394831449825819017918813331530873208647111442481692480732255183727781856388437855738324186168758511257965190809213921120246642219285317221448242937946277734482881755815689918885507965333287323796231204659545388219054868204809632661506074325770219201448609346351984263184151667277504824676857876666689107376098544572279362665040636470870174721701528926133651029426073891127803713005016477692883130122945072094672798942315834544301168746289377493888886154194164897094000007102678738219349976325818805372453176410130281997584458587356319945424325662488764672122644034773863737024751811808084241223144075340801947173924437252664235519954238013835818781102661391324964163663141927773015920271546110187921030992671752167865270522270481373417319164487213661250107343125238218610115741733611415830499393580420338863564500854280616094830020735117693025503699517074302006497579867028699296334267406253312918975121336030540725005940685158237442017570356040279200649168351079075273541924104279536027753681726604058406564072503160930015651802571466393213675503350588472246414103713711020343398774361998036469782967484989311006812180620559753664558585281384887150953839495470985864157225399627768207762887812537387777360386533111087052508407196985698646016079009647857317466551651214733407709755993897005097134602820065551166797035398747410381758518721946027257145882414666962538616485406195273394459369814477437329947769544982273240519288940989767730500938727879752250546053210906468384494643828789568107238060609346034257087186456118706153367386679910685524393926256664003181778811300985206842567740658310591321478021511901695424158823143309995536040885743019036425127446048928944403346491261577670249518328711502710982267608242907380389668617670130135589212914696050867292556499820814921766304742977958830966542586684263590348016951301195816335277431535442882036971626336219309065550568487076728275645229213479299308023025658437764278472689005606825796797291311392953873148423218729526930269781975856908911180170991824171559141751556130009338736586354289503538341512849183909502776713369713818217608144599944940964599805787042350671433376022375897170771577308322336817650072873187462972923482905348845821636531003390059322564937684126251942206103480848633644945788099059851131958947065213808082553169363538516466558913482410419754067427761459285545491469652770495452841739051207080878339160717822179252701486675757033201096723595434373440281013672182453214650087821057047972835919886704171621261230635316170405155023061239048682095203616818911488055047402279025835599231312976096268665115762803261503585096879396808607459750334084658723916791839580387800569361418794603308685762538897735686779295414736295122202033833796313118536205361706479488278230061271230202659785158019746134207275189268515139662237602703051710785314907071963410472165094787172178242270179156899629323985108989490098044302333366482537089344932100347202483959180763179595724084795273764097064637320048909288505189528736717947629063861301717801856325517906578642815931316553766397588685193569287947055581229724609851139782467304675208331702126732181213323479313646690282479040369647080063332691949014535990236446750552162564556993380437463347154698959720772134126148166039610158386538046705462206436143344110639443682288443315704756254731691884540181933710897449781400240021460957199465370196068347671174459822065357596691935935644718512164262745603063344316804432423392263933953446554917029334767632058268732627645415492465088069467182385201596750470807679093267109249192708955645149321396816521077460560390544790083083231154852039997600322646393085124070134146631815278409741130143496549693146070006829785569653609333508852430061669581205505567556057558009851695650001872507060470296792567033898164274079226826036594338170890931880154508163069277648295479358632036730761133906415787666371340096721088818293282620665219321305326894520176274421442783652196818190038349360478562583538017756007156021884763793511279873709155471624000377986482866098208965619405508583325305308572959300664977317222168621537947875111949480902974599459258955622002318867279819009315959657420761915391651599111145298801762673344132005749241270918474318758744148715926507462263795556163989831475358235202363802676248457389401255388991940747987340056447500049606464681937486712871062931940551337858528557307435428029124450867392134331525147820976804628891757365058378995889308535526074439324568403986880754767053286002342768498221505114311736216236436480202835457501455345297460825938551225080622430760834346217481123658223811806902978601917916277471457118144453476464572573287287911101168687896124403333613219251289828226890008265216805900979923857958691071218439928951083473890626813539069907023781892266092009895435278875298709237968104911893363797434473070960192899673165783649671558508211863510948043849359285444812980654365509526595127785890354682091426839215352232072035220365484243090921096596845920216024085740851052994337811862778453897295073197090693660253317707952227003045412705006508632918700687201507793296000944324867386894649508056100431876604864774579356696368628964025019261326057107241736902910587284685978696570775368737154276573721683696117886013353707691143488936048599291335547052763931512734764689377921698609921241139414961053490378624710989603144964239288369464981565867517014013150223055464871250194922858745937236100460770825917640419024995744007761115607040368455193354166296662756905209777651756896211831927146260346172066764994289809870145218171373008091439827272117518632644106957463658670766178398068822996499427238598126836172145480473859958931513784052190873791488094656248468604875081222887054703184367537843142228401205924306676462049357272082103136516623611682491703120689544017704902434951364094721790423770946633158405421054903826502486698730610144532823423784794925620087708128897040738312862328924210463046959314442204397098327885054925048516991738167648900067633922218203021963829627403872174005395221155669550522418608150982605145675262796858234467548350388092108161093371713569691823500713070955190650571477539550406803328041680774275905945642040555692777419030021125272419394392930082820446855788188213630355871714370176372794886697501939010514631520516129334567355950651208657058723454128588420230416823474098671339594460192800230984717152570399415629981578231275439588378139736110823837106488212468515220789413865575112282236958922345111333630823606479077959792799482497184750588155338453072726289995615736048889907213575523100361621181446932956420814316994355664063143196485708080294678430572012666022445529404319011302329164820303720687634556951978024634612871214281130116410614944990581405555626533792780569919711369954667455792998483158806076818890739244082928769742688592855009768250633371323965139349830697305757693097110789378703978654972345093775415276158643718991326060447123857361300206163738111226204378309876950012589169658731508589824214314111254942834384784121785397448344950979244551538668045103660589873732441669269802497408165241124328813649355785231836948871326879519219155894993961131250021382325327857021892950164218321705064850266941917759736805639270012818023466795080263224969134967267645769851038550325804686189776842435183234347825359895346559481801781774512606381575267976519437845920350646938553995088791907662013342582175715073175182340969636683510824278653282409434581002101299169363839855940703822724228406489767782964821846746092025956978425381004271015836186553223861397379251770224631798067738091799870657761975710479199390832003025859117469407011936769866388733162685282502099899110827023269052864966470152901200399538934781293810729523636088968189939383079767721577585362419509395882611237532698351759999184671292304938151538158105271269228238386269984619193504155210451863197662456657860042373493451462007876519751966163250217667542067470937966457052274101540294742088155330480652383340018017040104218354648198323786637251592273330568879922658199921300718028897483189576422425228276725693700203323328304845759726013369804754464689152047366681395200277577833432807406199392298246554627556873808897563984603812447484035868162788619037226697299449246025213290409659080692923350916752059653005787961892638527709938522984522521305484011287972308723956003825210603895007468326567729101308053982073097837649542513056470689736918076966693461421194030199427898017258909057211172452489712408718638969736252469454985292562095270971097422537632133808316470947574986555012856798042772078696835807415729318133479657584756100906547543553627297729266496004380252383838635835465928790451962458237190216854139178024729001054279558334339031438863132101841484702884719024674635909670313270444310065896514723141881206357217552208708504479405657853257468564780192957764300640579581941283701932685104223837046536639563799412821180668510831158879896434316237542405814534371394600437902822478032650390002174071055735102373926337895031399619264017342069624588511551381819275304432796436674233573198550993466860716178102118988803292048586851606942877644608384885316821159305522657069404936310787501033482927901261944492599850979323179866325104301336522039031201354881831407019831456059949141943001385361718179544992933684605516530518348502614460385453201159717009755712930987074935624352858414492819798923470188503424203097381276286861755316335115552905487547945462600088050849656314245215319437690420875135561501213904799934228205478860436866964105693833680924313105163287802695370380021795575159500018901886512633527363686219927228114891601606830382238556998462609015140332279887382241452833452999541160147142969413098193325338184151006323884391210186623185553524660870855551811470799657256575745862425893153646271511943533461957973246218039145117378977970850721824485200396732847451015617784774044613213877647386829561653930585590769478072121153602441072317692690865933834892630901068796859218602148462441004250372040146127589739693422970184711761411613449100890995901588896120309179020473578426113090127978561713610709341410773658059580588641686086629916494817290740825226143103502947981935515395991136829020814746551694515855168750292357723268530919007588203733472236071417776822880303716345878571790531196954330506493507430177513656373493616219830815912809989222462913218992784323432374364943641372728153504567816938063813674943088201451239888865884681155178248750515180224446298665944402467802591725979570157338593397694236734271335858235989043797688945190291006347325207291642769543340495039230503589146576791597929456867649603368273693406895479559752286568586860537283920539005471426294598916132198475401555910843923508653680190128718310540937765094857324755123687945969110131622693909693754007333897159713111949563538758783355286916145196500339705307070038679795053935470927158478986742459419805634431085836664559891515551046941200143410598936273296569102274793374292440901485345744605497236143565521633023417232964669146490037574943644176873021004021799360501357739443660826138296340737686757448065277349567994864457605490188345758057643295487817892673432978616832591685853417461960541871490021551763351448979965754380180892944018693439970441107119496141790420421817610028265538995262091536470929385448146345719685213683793329327162599377484210910365387978660547761013228708458367947018061805422385044450825101709324635549531271074975087159339872511090339398223005975273154458310340845889009348948094535066816635277172788128527406619278823997403275991842212229285924855230449864570529401581700057205017370101506623991473475139247848983161262653830909648609294746356080128071365154969153718401764843841215647430508278067520686919790613485232112372205936430666914902369829890869726467485775403252660400102408280143176120124227158613321935876701863896299546722754043054183987143588686440087491969180278227059471210029130879645832420887695615222254153895658771453959187112800895119259960166526841932998947798765599397729620739285876331971749339752954468521876380966580647333768949565504375675407577967437496904952648998515327766650267847392027940323418562434376869807711534444104991391736705633914153435435996809346237174192889826750853220366434339303517944483605904975151593748455910074861507751927196532683683446420481053221700877693842176169802115967369893310829168270958352924153399699824736868311438600101680142293749666205933729328172747004203304472570719306029795571021016026704680541235420077777990550027489319183903318334067589832242815804037998980852823791714957432867827826759797856721230038040631239667860544877762989579751074258054840653924805548152983966818910027217891425101790251407308378475236722109638941411970571346941259144340762136253467379338411060791957081268162601909989766069788533150056014451986959392890941169193362208728013008900664070275176495223794281334564318113415569654410104440190795803891545744819092518013336474943075368206420659578643866665834221633458676265170887659942970067195233247259966287938075911366149412055215309794286497260767877451570687370259726470518992732146718103348810756789191574803732741878967799713836293786367480846334515601320407133465760703306003126833428385381803123872015351915366895366302368603195162876391427871164038983659813080729057470436198158255240871886026707279477318585986203769710590910471646040159157291153664268745954765057932286609758449569402002213043927536842153552248810693733676489601483426288952446351648583931361447092306570552122498532383031497784730323064583679373158356676339748781341189903350954486229394178659820539396089324948455114505221702548115908453823871147737901906033829160100563601065882175465262795451078727024048186864998427132285672225834132138679246150653445295333223024625965850468901749422179774470651547148738461155541007271284532250158947784373333763548294330613863057803603336168303703463850543616461929585031794991143121201517279835997748032213046584023336067336965048348392718350978291250765289178736344726019373076439365453048290884476364174470849452006714552941982194257171651258362959522831395941412628972620683395218730839131939634471552976097679705345725035843532070977296017540830535248748571289200324237227335289401432958113669839042682659220679732787379967969958536257375729987317577830220098357265224712138535877130521887131292330258337944482100641028519145147500327748209726048263444416885989149675821933322561535356464283145964547759048474276461865858642562376182715634814374013863534933956847825599467310344346055351785488063241961987131055567065706675130664305936269638197574508647081721410187499303034552367830767384048576650139653147438925082989355823982615226196127429233812717152182447655927529817004907229938478528128174411855406810004014405390656928325523777225834019966282964317833408536968921352519839745667992165214680969832981106771696983907279231938139321732331181394863389124222445663023773347560736332813106834030362011762966775129399319713687770141090883115059508027707305943538759345373140073994713911209976698131493844782648976559971480670329444129306597755324878881985974351293924072812799310863459742242563243470869557174495534075474291155194514237120828261125898885427505669187302420264820403456824683836208423749092141579207947529513879821878614040832946336770640011398592245433068530643761604027831800499291807074657451082190721834447904885588465734717298694869263503074785196507381889851206126761510426712906893377519435572572458967218207689312865560151168792007348797358531867779803898146033307198124383519263256682818314836135980120861054928585477090283811022572117913363777602729710910842720776135953748694920791870227693724050288958949795800825291874017479661103004967219824354212233391025218393859012595240896546288903305998411337269474885024438513594910757016191649098617169421273320322150680231581089507269742460139226256260454572073281372292723971571203149769415860182425847850630526883057206480833553939178949480506989692131912247776516658740667158475674176987971788870951110147411051690977848707803083307687644651770388521229453247481234653209273347710710148561994997360183547021301304151949537974269582586751777142780641346643019063189539692436559420980329822599359479929471608399885913590680273274168415067143902580150579126093001786439737549787945059207909724246827767349220783760713149656759460548869181105815197645626721533779214589176001093915162384741467814371499322140198932265386612783096293206841775434460632175817750954158050067779683516986716398718501634635891610245528699165624484000629323157072550753522781014387265769177719949428026643480570644750028886714499649416927174859497405505362736551803353913095699604357243258145273328488038759743984892129164453959186435520184831942886792829899765454264904504915233199757956826540555905642821647283573268587666980768034355603795121272238851513982218340673063284227074155911550240717130965361455617399566869274613381336657171209352107204198568338503705265706489197046007237623322811454687278904592517689857687406810832426403266993620268646259387097497067834819261858587862153947094509911192475417718114159818002671912125684489290231553147425257327216602420235986076510254585089127520322475508526800331566959931533941193213872760562606815542750122190562883474687677584482061016737101550814838655912436313401827024526128460232439587611744978179082219913275836323459220203197475909685572807370046968548300978899748257133312654435482478724658067968460515156510765766601998025122152085058817130588168994066087810199987619989679671186646933526039159003472347581151939990332123627376099406175989578411770817476465148756288678094401904976240156867675531420172566995567100286749648067330988814121931082217714131096931854505349982421988543985311387548740429881013820268198233196214163968208252223728632451694721624520122758769373241745008481653317017507481649639853959879373005649081202685935465153886715674118357422209738055648643571425439002280835433239505297355297518588502400894615931714163709712780180082523041931342983088277255300109137913954657890342590495071580270222733137233616281537491353256805581380485839705326784933059997630021884052862269752580802219616373892888587603740933559134529425778629015963044525049328464738449855626736175427254951890127126631657525232064706186745240410274678360596736326044930617781995808765894494889699943523692660134317527513907308317692137318951668151280595304091294188352949154155051292777375864496789266190692241380939902903745215305677373477244017042731803359287242986839983566790439975275506985220038109685986004613050602652865899636138740447869975407651379530940980650763440427782334593802495515655882691313811591445239261850641117725646870689158656671333788816626472465456807236252194734036972116067071895935933463249464278365715805500060895280482962550306734476802789567756736941724589665334409174613061285125514032775722827780698729873657218335031274128837981916858657773176618233253154392178015262691937158467359396424351517734775757910974631368791722770757596300260551675924900613389401699740324784407652973446184145965245082920856374906716939675250624162194861419696291277090557742707644486937642655065474527720529645906086283126219906709010585634910739154276065266904907556843380507225044148453682109914945999785078901892091883325815815068972109708555168183420550255538037206829617648843176882749779783230882006122795690568283081856224591724915839214439856424654853637014658246655208414533817772419562041851239117671350916758471263303889233206768632020012593730396739378118771542359934524908648069766693545914689949255851286983448976952495484258061555302006479077246226646074411478661305866146461683774901619167399188049292707917993503074720161120881649926046472797252148142833113212549805487832848040537646607824483459530794908294932118222229523792976843725156204169452703427155645805891219418416510110546296204848961763830786463615531993126953550032632158584396827580690116593638023055981743925159362385476076648595274119584665692178256921885628102078275932051417645045622235726097304719618762232258265006347138869878704823201642413800372895185788478048314664818498775596906000899887446645286037936198552324943021935551969613896370546632797043518184439716400102472434647834518742058832591811638993799214950156096498792845021683968075057181021090835914652026919237598780753846255738594233496332435309943968663988668222277603108795045132224448103006762893681819824346271870060794288592829160798397519440966419060973213617205052070392898566302110727457843563161012657139050665962945591343965801290152502659480632747215107239846623754384965117410467176288001564821528428722503247623340773215609602322982245951886605398987752152712609734317079881028406502893862418743447184289805161144810983764383948318689929469647482858003458318734735094819468329495884788077443390810793931879674605104101664180576880073322670473651662110823158307686058334647496168299920326262401674839229641458994044267207237263022090975351701551246223567946797345119900543149365430356406099299954383031806087852986955646077482438298201792140399089933091114883371535592326430313696315586506785569958194550928052420649222343444382745202812215831402988577998327004484917882292610735856930497584319148140714778987412822791656744089779282299690588093562954695137265049304146766312283799334443469114039423487197388042732761465647040977785132032615563689691867072494918667221612551827140515616424081010163436393001778792638166389448560009415873629177030525746438488314255370143663896625121686766251211411534476041291360140048937532270474026193888684438692243955835597838773201110674987311411631800740087645639612113741094229559421376983063427428700370673625038874682481203091143576223423696609272893049158710991610411892820770443398730209553768902408420039888397465903190246866941320716247306556605421627799155642011712803124988443277683355401939498152822903563564300836253863876680827538148036473980931903716429912291437591973536934931172643151727183677241003743539486681257614598163780448000955245922782315120356034383888294347290100202065012257719005976369599534734719690108185444049868470177243649620379360486679360607063287505046496827657215251248196656666105204366478269543628603436388743700751667324223231157291825624674267790092371008077821626352952473792803308256682371451018942136260292953058475529669909799493859133451534654788985849789920739658324889278217959084431101224897492644976956643489429319111999360023795550950739916155298822811121323094673966084246139450628987549486332230769089433051770769959072039795533956586675705475144803989626079702591107677656789064650083001898118641428034778636399818048124960768820059586507275632503916858391413050947292809404830727758603874620664492527974660523372190535752239024571456496259596166503857873285342571067316278888844861706140919552316152166954979979116842363421020320584380023325932356751283723588647120894290778367022100564123329217015140259436106098387360934817864644164472240938437299067837655556306597918435653207532357349701088572338374882654554101983466387661987165135293437608573305805183980191468750316402260508880617301872206950534051842751653568506054276828524237644176932164334812270261994653170570999925460498708357716773398060520515607718598785278549504080975111234755459734975316033597571509582095634834879532931454912977756099838091397966813810662688451365932131024359698340940768468178326043782396048660296573592046326788209884804195129919403893440764182575440876723230546667791970749994761638723343959659991710279516118870444239097468553799827582141771773932331675556261875709081291542761496609059723961756230836673198066389960741230897216244087787314719686516309086399790958235875587109112021320210386447163572883712621424637351119881755364317279414526335552064592500172444683239782988165000572168241476128224508352567843337316909831939273286529281131833255835036788459290607965559719093183667040661562166231334554356525759742257137063938139194802023017255273954259473623331178819776059200256686078995831628446260862002903373428100789789729199276677407070671982134770758263650114843775881974795809332456082093487318247147779268505269243989788744665574234509056568154723409406410387063308549289145713820350455279220380165522706165826234231328781268461875204118303501895427721079334936799926003662697189270971722710834642591183039206159174311147016245300557031123841351578925676901919036049370975525915148831795714875617067368219313764667778749724438761170483257921525067106629906952109356395744468226603288593149373699133848347393879745087150150716494618313928165328454635259642234559005740701916201269771482348745217562603094149006738837966146581338920004395529906095880542967023919058515571722208220043618050007485955575820531934700774705012012847516314921671069747603750605480543095315394792428719406150833471472475214981059575296614470426950660054726897409943254852128859432665994669722459105834631301465445985033008335973716073160355854906642097026606672051182344463847577429756081211775691904956541502270011626340234861142442619725473547894190472215102823531863677609795778549005540927217717409165057328854599274434960622306100093582089787734361991643411228933331741208756562619257577500687252376545719815301674885270751729845916404978591134305190515675187905367832191581167476549581326034482413177729207564472923619198300540833482424699481828241781206276981839140520511888055740407980894041119609785204124950747023983041004460887049968009439782175221414335206352864428048667912667679868169424926515253977530964461266339844877666438374072360843945790412326562285341257735379161553527074716183901844414829721615408363873229223987448110504325986735178488967741052850305859070283760451950363753085838688431804346322963141493442342022809239906188887861335170573505804684106815891445215289179195677844437461799270443067392799100627539401604848028643881095884323973582678785835600734661149430160294363415960007604155460347086267042983440708602871334438618568476340665125497463011201117819630885550580522740406907544785247460206172109026100998033982348792647171864129273251344994551633518852906771860512306514658988143400674428844164650092003821808086573679199118856344219140638257607006258684962283660015276886153423870009548232742818813277450532881603448573187828217633051844569407464277645890713166670153023141620975384738015589994065848688176346237757683222510163130078206261677886911852042775162383206319046390914545417490519357782565419488149887682972681969465511184439186631824119132455309414548107118031346548876946214213196891836209240612880662774805039428392733923822634362627526320146491051090034908059636730049967790412684914318214542650753150746291300664198258257561797783578199557230929617147692250456380711865860454936191968178419906038171928951882052630664282089920036430364297938551638788769173426165244466593015349773154332691731367678927914892712111071576692436828422971455741506489545154702109062598934502716947231157175568331498320167096435375267676661641550393274352836864680001020917833452661830980790017861372864207573418203645985625214401817708221672168029557319339132521213070795786472065477026484210162406251077478274647979494435432612284936742291318117294701271071241982660980048307868546124069071257380183736089924537299724267347472175421415142420711978582027086879648175707424331015993844052406765202796301793145802592675011739014951875322566958224350323126928883927207177769937756444824066689452892594018731155650588559337512993300352708490794896426014760468816242938230711424013781200225783951510097833093501190851009797638238189064760224090645965179904170984795173332061895701047977041016841870972930672548271227066290296160771638021584649614237724251014163960632168820838922153978866237613318768894646778135064118467617301776816704822729253560384650436278350604867166729393579280622182214938249084894400662636052636936156331049178700862629043588437130934467516105560520725103196697221513193733084189159010778045019030040288486382443408337470621631239385694569032494266649168459920547910161831809601202551733291678883675969372941034730841913145881791202336477480145609181845370207222548902416153099202331815373096420912235600864132246505241719679128852105116690838796589152807715646007432692753171306621964226263321659623632472546932405447199702327858105475318877082413882068028709544093277782565829294754334107866473748851879205934182009642606122701542439343181295149511459860188527080590906771331000489524161520818496629581875608484958113564710625560927020642351674005181982671725460737344681542082286938008300780296862875735330442801443171578403399170227774051394905488440645200182893816789631998690234301755137669990817502667388175274570042664218631911155279965954259015895402357041397172927434831733269054858487137467617548049688321381688341392056568991558345622683829037981103658067198482055915751234590497343425323237916350693849103211588203464276448043158037876333786951181148134099436822375807875269121542533445234877985556463349036026553535951047342664039942648894613667691967163329480803642419499895474301869554592477659945705559040683662870395716371494164630320266401664842122046032890224207764970074167804017761768122634328201074335372958072864954661066797779436384625226187810831594801543077850437569531326108629994610529758580816183093041513971987318627969601863226038634714754032207026340488530874538703925406869446686278761922789724047617413234858028623614384054320242795153293431196058755381832015457041455450940933425700265835538003908133319535845078484824938752714430745134045536509107605577570605798907880527737562509606492673903345506954002541475072678318512066264953422744430263434489413545985033100834494459518953351046013551856813230616006372379214323788506410395843902142116814992132973072407558597384379935959905637802506383349558599182572109231583763673301649342308012829479148037273669722998479123879027175838330468718788113261490033964863314437068484370657355306108872400155217003122108347644037674477044958087288896437671237660883826265877190178792362949651229299750593326814585186458603304034125532586121719692998987855643341118725520268300280067567111724780621618074973338036112714119488823339147147839974519210863587886551603562294600976783180736709742584565076314492235887701054877281523085521559318537036989174619901595514459510812091317846938793089703499960475922364697490255964988034728298824762981130402751095625521170054531053102260336809023000276718358617214868490388606536757543137206689981791271356066192740586503132722773442785125879039203522071072878983582582143404129656046053926947466371278974124996884342950080055653511782200530760701665549909676680996578587081195618411177101079635337228704891633673534200271946613215937380081577592914160684406356321154767910480729541085233402337976890042397463800536472609361729521712730581983161492849303872482452458769959156290379592669922888183317595802269601616375860222262069448356554435570432102413903129020210553673703800534663433708142011784399411392405821109438557514386881667935743775426002156022179061584428710758118059285963204965412351711361393379832334686415514174076830678376245306746323038658782675945470979557185378083412447131433895268995302961964587313244419882813297835315496169396898148031920308957061800851649347532703600812517642429859431582686200631453594645318048215243706844347327179692394909071321466743894865299542568183023785921524739763603941114791990739821599201123847160101033996151405758499833351789795792365232762799660306032753132364643980989157958362181990972371313912551334576271912827849061511675734779283034189638898965097266360006781931643389252064429481446431122525239117746513570134133102040725478404852679381888491343539101480373667671968964202418720537688073231931804649070777074624121190575426318675213825475337394666086339218125655875624709902431492115832050041641626522673244270159767775446237667530029432852695390141053016286665313057405009626692845476742077115537396474608704329577502027809061919252540445748514015797453366006252640943461094976918450684313863865253004764352452812138479286247258971747903322018386870301287599033744491915170577714288796209854578507688335047736642014745674727078913493195809292628926429120297314091304660551706953170003971239209646298163797230199322019563127801459164704390549568932967450207758507247532564880502747490996215881180312589676595597544713843560906609783521259249650236115160559209498141482952523834411904513477728631435292159091692905546475912260138690251233884549825905357493367633977146447501924046028735614668367894665802513733837070900354583367185904905898052666451202472612854076755885723091635948635336394307101567284352890773199309202065278689458479288129500049778995115054566731575592794818568164165083375200181450768994731341692640904020725834587827349848358270706491330111247584132418811304773896154012649182476245625458804048559602539500645884835202921621499957524571244466744181516909986697750254586455311161412102566714936781866314117247150708753196160323952838587294103820961254720818821886179681679762655334117707044856170742499406534898977639159133145862551759369715383582029647038524313449374051262212956968147094158780071631592533857332706766587612856757611071683035047474638644778742834229536384842258717224313351173781496417092814281028900781720955026987316398780706585265694709485059678042404521394357425845681665452447360874835019753758961657869773716277614170411601109463971104201966643941232878175594650838758598154831394686193395361772716510357918519330238624455909168563620776957597795862571855570578536984951018856335050213991162787552405976459731699175386235992444354958551582921088689416528826081764601295530897726883085825744777907715076942745023845902991516165200476141098641225693126445458630737742983711794407279805518868907729661755993636503182225437921546416732029745545279955884397012513168444535759959677614777239408433636975202617395537609214987643588986579400011246738871273497355392274600077490721473305795072605063664050144353865046197394645879349267862072937301639458348996950336427939442615962842514497506518290484695863201126293972042994261826675389293404089436144862003824625070896599616191246957615241748027813284851753536979503478685683332952636354258918971754042819606470497968470667338052744099191268679513894621434034710211373901270869821648236032133652992285441850684379086236022684369531900252670183918561693235284764588265235674154245171243510174002399872309040563889465446616824123904905524885066479296063075355593362062407986634551351484968474396736985956696497029541447798661376700008691723700421130676975477758782196849205731017329166076674048724649469899738706575958580560765096632354032909247294969038629190246099275094477992921178211133780715224862428346154126854917255999672085725447718759861374447149682002689467790717398496689138468359683219330867106736928149181240386504443294391743123252786486075527304314007275769877037130104482989408740140913741691043784126987002197357215851134928864968285222587872049330247972257063820675389545382471158826523001447825877605342380167538357284656685896183638838837843279812072677936219190159439090319015632189392367109477099280773170437571899093255297560369915503069259241958737886125407578150522583224266181915240518658900849924231797921354743219980347449623339456535313996251946876459531845187826850205389008089739715357185389152792043209054924359587015992527734486898346136279912635858244634549296033446047261794466825471110827575860425855136531246174304683424689800429579002084795561845028458302062060263843403458346656727888639343539386380498580449848065659313527209622777575097623651918419716135381150947076302271267913209375809915741784866767140517686878230060421375632453222901563889375456285314216154575817031759303433999280506284898678260618533734575114888361896450860119788486239246633600104355603141100725002808231364057571037351313044262434569126082269141056633825857764375260357431351284319541647266309275097862880801224361042274729829473495611539341739674816728732666537638854286810692514284408317755650742789000645063537975396462403732996434790096345023903781014663086764202376220264532071957607374668011257232047144600576338330485248136114397517263106187740309226946216757583689995068663584963170657265742635139291323735995237211414206854259050363703497920070241586012338608417473111162762096932390472171535215023116841821968418303257903966200131520041244943755527902839293919916205284967546474354531385792221968880224794486338402637818296297510465137786737832600042733318810217789921737848522993012129565620929076293720416798338875062879094394726640948568958473429599087411765864609511310790859479085197656060485402679259239092002459615401042611864745406240277469011065337370957598268393299850319355603182220474320776829260626934671858242480591827872611380120361973937489535110558697439859182848017174121779546850364323140461389448076173586774658871770132248235968580181062370418977096839158103591009690749693908828810444346811968526921150000427097522208926803922638677521189752281911588642840155604156615879033920503995297415477193862822051369850336620704894655987076717845042837142524228702211107769934642322161786462723621801185037715573848343770493201756085108577185906704669620463737042155402336696382888195566923341936314031086606363955553335836104351380646243904186463958237753801512367221511619613632927371846565587695064247829606802490064307163952690548023728134402753212952456196516843118248433040338941166202403372438219334255662804310665263433716678771073354257636719359741580371424775845372169012224055519265770140300069091795656780512059085195581379351016054024328101179453270973497226198864817699693570997330040579201880978469048583487663454412430840839944538654385803109193580363966752933878463467625386725355161440184747917267103290048804032666016812566204321473657471871393552305237775664320773876644848235443051010157752857065258493477555704863377492468204584717970079822058328587353778520436336226151434492979509299524568399388284622418602697552655521836263680442773958298781016591716747268772227536661770692151324931636652900821589043419912499513043362724845855550852788900087880001055378718236373035270121596076546650068158812839536527006807158471124454196794124422031464202817661134520168134333701190674099167328376559739651867774657749857960917307446790222453022684528399527977348453032399115189824382883796157908134399889463516797165397505757884986109916743427333212964291026621406736265075756309861708721144529594659293619040038147750218171629087350327151354035066367890711711674945740274130455759933331979621265336987146949323167416559948917651249020933794891797251459093420443590434925789231956311618520541763806408782135354468597355961854656007275953262872721122599567985771443856027812247635375115656702984356895929918900654282424700503785846353251295901685855651526436634584442102203558669120426384793444056690641273297004540213233067245206501703763312217963259151976407350234284197535873553384758303838577221924593202336870206716761761318524959260912466107382130572606643652012167606446098469223725824441745970567148573171095089588074182229851014925477738057848782815242837561994584389484891284433778218596494857371322635395170831072486873480067231964905370173173034894643320178518505909755277678897825059464620040539307963470526752707785556861652083030482332863251110126537679719543984989544478345889040729692428206044636778495838892289188386246408470367409630657718536711436549025443345690181063141755249742183889383327069779111968560832973807996197787828171269092034910638392325036680938477734990759495977147485902386244277985528276842768412874798393661052960788714052459980140637807173898868430186884494317743057130374826676222772325944221813273071123093364466225745191065495635788095803428368682788695934458889979855747293839774007418306058167993362306359429828171851046487048270954232783321208303828730098654415050776359467081307354270457008780525873230108143254145621375363416055232928525863471969288249397047165225003559810966997554183711583914753213005246111221426612973207725962102645165436822648928427711444513808375399224593574777762037487311669923539422970705223535196450525268856882511270964750640392530936659150827118283935128117949148174995370698648774331199047032124855948054643522289666712209802876774068798328297746628505290857235098031278585415218863385629147279161289069852027901057147111666603998675519295865907314324434333204793188373097879146896105726763856597172456190318634125615046194237750824310814250540139703900839693212713962067470634010437692830357793904679709435232205256809544429152482416986772335736813765441224993110721035765825249128074170666344621254087570597114231175451074167809949020984224505973362035403296304255075212706124806267252452466791338854962000555217788442865062079149457715366232490089843092667048786884724359770508044149792259753439436581698291665313449673416097415278078975885486035716439385702052046241692940370790230478223595033291829180235928962856013201419239266247133980993849139522084396973154923503778983491304001249861585677730544160644274425929569285901458603706808737888581392210469229595141731050639807245881816744799709360161393235277835448513174820406068335390472990258009587329376446802720932620232776090101925325144856452498372709531470597018742372387658572552941942677844175695963587923285671774986065533433753246883719381352330282899502144332589143679754847193020780040470303216050200288774992044085263045984663684917556752657522180568794751110592964151356503182636221377424116120758443038012801763271367508009564505797595197099585798094337358226788323729444770128199597157694685100854196609908462905518773368191777415838744927235119196579784616505491065645496667434560015858708697699651060968887996701317656426669496212003891545072354001896670211594987111078158732779583954469670547743624691284015994187507979582596770086838670738152581581568799885388120519536730316425054475394143636824133704679470204351503147163095903669751837369616998801067422447887622628052493518119704168174223170918737836035048557894971117085792297438298963962742168540802578198736957231524743487276764426963279893717676577981688445945630346479924797048008125354576152262009516579687525824402661032504152128347625972543435901608752877247781575668452532167854270271357694706370867474162130159807917163813664249468660959105325269611454252855948367073583671134663048869754941891944925567305242659157177506619142692325813504222283334648616094748947775235920233412612343154207930037644861942927723645861729447762636964046105366051835399353387999048997999219780401525121446527911999402768652041874342125437797786843515845203776909536561113244101373819664774819502844772726394826861382382018826789242682987763198866715997948543025390417616140608330073959867345753878178422662655853127903135149610406443729526580461630972200083441152122732446996838095590260488103887122665155599529896336676779427552985352855732615786869327771420346913498605145968286636010765070080978220983614135529332873179164989081340959127957626631806231197479219407481963725895862866689623754167161732147535973019166415043054560650064278709488492961752934161260733881901526295673997047168862958887429014006857531915170289353287609365125143823628834065467118278173613075354427932549329613926050839391952291992051047054972683779503730289409250908748605118147503966897409015946257783828868910773961573337252948040996585176214214759083216399185163168576772803611263235739564773383609778171761842985391095841434865543157556444569104615671550883225017868767823496109710386314729801695853431178156000790740092650758874539833112012185971403617984772659340113664369332388151577932498693898203335857767837001131871336387615143564774443486312694657412891195571574505329144149059571554279032754572579186759832766576253093177820540824686220246004467706979274852671186871335617134597526099980002667975684406674361807328436476381157269883919747526805398890887318997248423725507877141009545619447230987999350981978414893472942779005276039520274439023587137239957332066880249112865624840279152950560726259253186246574816552904834458266941288365951827320230995472925045728392111652662741256094096008501178628754361314034831380990692847938439811086796290646674543496481025270249103780141648291108019858180610273619888290781096137245811023857536603038133271710305420026949036731143863572964229209598223592417579462678488833817102994311671441658212193535936159846452970577326912604292604502513773930629432417983826924201273286545454156101483871053072179810979476963382886411209227359486637129533004703034546437817788815097143439713728009081156846242129636982238978978882156356267846422094550868545799075372760073700201372127935560790844814676692713615152060507439517189711498369181057841460877808422773718434862292695729340237531573205151932948175939035122888120421091351963168641792498073147947982043083687205125599908032349788014281620976009369325209591290035327568643582216108822337236066434168265698250987999135215454294148088940599378886365115873998806315734397707753246062815928450479295414133946533237267912386012451171317348316660916017077054663169047517666700653680470300706419961397115896617434590973360178660570569868738598226698412334032702928971010303366757073450318665395885128857718030073113613086251340611359861858852973590607490418030187330391528441937394168792208896764505379482549196209062421357776550862111282074918063039190048571312178987196173994211101017012521081953491348930637187064362990022579847934297679130568860328451985911566175200018361622003962109281327880850476085742653004008121803932053830086915462415169045007146529824145617652950392952899099742481030297656476689283300479884107124001298851614520700297809929961273302561134260195378441764863938379994090522525468184477192861285296920522034470028107409073937932351916174785466541636914764301039240917407525013413939038994321488637121669799356868906237392653345036657746466414801162151473311813824452522857642337426612183646394956176922910972830002227317590644951432584186427577657225360311793424124482649002996654719717361444730759675670718178381381994351875263963828179871104744301298674789906650205868287323356163999972939089733556764148545696639019578979635663612592547860609919544025409645666804532783658430843340248577035725557819749636205163927053841353004498730331937113526742104789036041953571936881834915581286978775963137442331273805236634984426567066251327775369999293270644040524586073458926242963968152394504676261542795618465058569290338973054896495362518854627396994152573443413836489192707223468340457837958717255950224300155227560051510911996118978487011228104682659621872630694380640820332007466584959223771393415718273994925846332690256258361506018909175597532029628834034647475767178462436135098932499304840701867822216446413084727520243326711452797591950458227801970164718772471990724524692393736956815436648583314389738247348329189162120537026081076643176862966792122383429851548222148732026436956154575831024298004600870940653947668840274979710125210312177244128025746644969737038102277690479668073879573227744720792554767915932032602141593433466534394136803694842808196435339812583683910874886950236163085692135666155958764182107295175088710670142735203778113874765445998406134449694622413523546058665231809741396729521833872800453563238344830195481242324677966801660549689933946297174108376700758463003192434559758499055788302962352234259464306904078483434785479125340946985370675576971637608115608367276238433738750518271353659459851741739080108645547075168503895833163351612376393270719243940125321141826013545844512642030108763221558800342355551751265877748732352363890140252132567187415132998658759365432832075439683130915520591590087156560191202213202636034881686471879169553929227530950647461545145025066035292180561962690711838303877271604964939231413783260308484597210787025895433431883636776030597698692615448636349119171711621965789020402053018612409153945925380674944080082501638765304807828191519632107008344309390103928684599402002464324629031102088353119493553486014925412339477275195302973050262186323497055422213954395755856903230801310206161882633709869108826052234052281559378788864988512601521393787931121204986506829583635313876672985432870115604209120506614098972164435072479000720410635491866060414762934919143034106442462978889947294411480445583217076439581568266575699926353531292193307445523665210534262492818809463736649899316472150082607360861031833643985092760807586575748455828714397407608761540528422917696686762807717854332060567626594513445921497801574985542419664359571134263201535426083198475008041751412829275007843363543615943917024199424707948616873462146275078889669624937719095814211190997472955226263768935279368692134057125437806233198730884417378948463613142341824633374742720102665651107948005676386707892635543504165408656137624207205978432810444164330677691644792174107697630238589604109619067092259302944164123560129446382364827277665300628822554887516731725079043600750932488331165006517825556604988986122752050149351106205740661123391536838850503921848926205310522733953262692906068597203033817580372725771582334702419175844698427310735673012770563969671024328092066440974599026910983042512984434057780525060442578541055245600844700593492601551334806039183519018264206559843167058122805898785198310545786839556195019489773116123287106887074243374422776954728730571175946795264483162103115244388555839991292959060097997940657497367774606392496427301365695495740463549213995264348253726032093204994448390070583855343424499403130013389686559403353424235959191248190551474407950630634840313900017229210357167523198084641635208517634244070780322198196511261010267579525623364532783005042708778767002659786091561486762584518270375041829949101857226328588659924153231992738296750938761819771033746644482712882040663653441619117774229708168754478081411596157183705005624110980566545461487243205927006623331356801709629887733328380066044788799405085892595436124751493546107571825713376928592639127491354395979205407113927126360152479457905658808008029781814358457449188074611652711329358065349114994828529232006878673872214149397446718761856091344191452564033810449571729345241711018135393607748044680175177812984467523445547708916007421385150383126731984257177910472102153991453801803198713957554569301677170707319457241624170394113440129250790538849346792521524020390957071203910289913273758275023867892790659913213818410771884121223978385925637848685549339611709735712127353092756843212123939930298584244872842867781531485436936524190928502769806441462454988008727089338581655156706982268203718489540372073765218932965675413895662501204761965884255430418791432745532651879603620551376584838113655770427072122959744915934825142044071753813068107412250062141327498891040418539647635877882849506626351667036958571978967038492627912249432564959534549279438254670192803301048266237352439846062157606595119294769538116679169565226661859685070360390192445200301653032132307162630693496340400836787563247383053029361825517347302099651800523666760621957558008646893543363669280662422173747883457848639787737866490291202960592184570453918587488576404083271067468283558336207561508443991180734890100003602088645367540346883670886793032463188926922673390210173450745532859445754278901269641664903409646928575839824850052040509573134826106805014331649643589167987319108628415352811330464477363559362156718860964533322614675979692367935970022803866717534939116013201713265428502223792989673212533619544604445486449316615744780804701484286829056189653579728169818183245557868882584414068337416344175879446725172547229512085823468203197066308393256063731941164457820162465836458927572168188684465297783947089912608496753455783080099686769426511150661310449970383810497988976303059739379356778832303156619915374259970109093862081550968823052031791554763502575810287844321834957568317933125780683157135955663749868275101562020490392351322696687145128588039131391145352004545946133241495192731073086993076398174534334894933193418087792921066202599073203913606443731350960332616979769866147910701002781753123014172626285696478461302001449868381730047542146998077652110086828346913526878066231511394534709073068893008993519854223756835995187180127751113867279988093537684976605783447857337557883910328193692832042713955033665072890882314756487665985499433175752470599313352057933254210596871673628240245927432397303962845618611745155868757612740005774009551984977069919953554921000689759288642538646765594254025112448568338668276330971300221887201473220296735347040179325361468132321696092809985365538854624414719001647796085759437219302062281753336853406755238556980956544083200648163559580392517659190264028496019330890916580935925885961138499243007421432230633989940303555397467225117552507046933569251439467215449093989292151132728679558227309742684371205228918998774454237405894355787917321233864443915279257392021875703646715060400337820888924207816695153410523571163839312078560127458435296113335736854759797499928196262727478184591900185711348801360080875950056485570194523445496805175796564549954261976687407572086691561314481427405766694032145832614067402344094590729728971146486477637026636518050865404357713122331739032336336075968732946723254368342330207993610377840832025065252258348207572612960130122701581066898853251166041858332000214974740935840118216677588318447026873425016148437182206282384375232630582818238257791475659301632509014366434234973631940566730913181879335698957463980592834970745770810614389036745639703273560230585737009979375222865507448594020268590000249541812768158969451205196227113483589177818485072672058014971165413285472399624956415835070354967855125377491035259953793930195112870858585503456300093555764693361913698127665963400175312910958265490648785568801835344500115813256069357907100800867969887865788502150083412030971118346930039615193521180898076429680726168544366575615908934008929713110081310957719546575334467483780870032895373310285936853179658149528032122835543964826397768639264844554844361620898092181302371474515330061802472235103301281726796383056345268514244492378509489141889377405306224673238418661821817266337025505557261098619278028455716079085171367538232302650886996313719352172941254699128540670121770862978566214690173648975536268098585837098339227562689247656485156134570657508499486332933064908926246652666675985588286821227636650139773884526107934503108129370668900469221027916295111599841431010437017772542652577449939042180522066204830966801132745486055590645429573828344310821028075119078100895874922412737429782753699314310456111380797560016820010220697747868443545882406244069641700527932168113568381663764071725542838138474413037511517446412941509322967720843873766508046559392647133961658104910857446201482282612093735993082425037506361615901136725300288544268533327995470193891594581205267896286336105167906736104792293771448962223456452102009813255676966965403543683483365986119435819325680123412745303498626286798707972156398485137518273362776587147292404694870617436926756678710065493159653538561228032886160449869179872624197780208853711905920999067007875543109058836096586495236316902645953805940380310885749386418293125642972125333526013187397797179141936113670605020756389207931911111448124607276631575667732968268954177893961632978591298267761224256583088388126865362861914762202575830023548726544782370589991032787927403153681526495338353863068946534155295613715186516819508694820407259620513375348575745267046765267876377739212821559754633733536129746186391965041744036178743988001480203496533549552829890636772632773316519107824424398569378846480659037593302144639693320446696178397177230574800344065613832506898370728776773227080231204560211793413987492728796425439218329790973833024047533472295225563007376844216928034892310338123639972470522477111627168733129891521949812941530070451414978838833127133985399439077092839456881925349587911046589033412102510100816140963622585699870483562562934096607074770409630270667562535139780327162455234353867504059423206906808608773868050798686171139389927296601000769234596067587999216750939979024151783096593707911232030328465816405906037637450016316992384064006096700481973775850614160401002177727221606475593177455713798012737420500436800126929928172058299203895418521462455413569996758867365423706898188801876079872483277375578507524954261986427007959947243469843927965016934780003960505410282670108083391769108328149157229671539461583883565057679486151608877888516384303215371048570744733218241311389830192709212642933618717781907913557168713599345414800282653299447961172313957114101294656371900789171216904164769679414221920800842185552878621214831895257647254261168100552378626801636316428271619260939791240668771315405076113848127973400985464277925916313907032853654295446853246231615411631707823563193781417419906740819020956726571633595033041351263814654312368675241215439610714022735062533785590248623270626225393048030949565547872970555880679194684182360900749920152169056867535171718396789459423559766076941537400645475794803951808616332409284511606958524560391046843284254640376842315982632756973314531702177515659417587391510400944901904565736813315441389119260557411698008312999858157339986890549317907531389759460878754520678468315022746305674835977551610968257101874005270094787891935384018292784281907876686598029850169612389507170047331267181057125948706692795131513648259579126828661312645461135445642611344228219333934486210419718340656493736151770811630630314160516545276593383551944176295990595245844929593655740192103713383261600426409855175817730289944649449632644214234722788991838285246950476261545544555067834128323195581639336117351997179572072736939387256142097722304902569986119390782932655412848470604567831815038641178158617794464408613689412931752037247641965094696177092741878855054465016139554130866319152580580627122759961204715606119005911143985622757220311515512700460494306839878056216424972395319179393644125477999762506023172569849685362979347704088442040732399611318549544052061083320474074239403873564081103137992372172844650001149633751418775909690426484446960670817893305105279209467775247745835568037605516611756898761656974736199308010170635177235314605227182425941013706521158771211017189115021729480234966599145103784027599506359213060124835562443655474226703059424680950552097629009385700507059839027503921963701129877168185682992458634154265738639998054552806092935820629322936906141215228961290416531983772846579993783079124686952165689655640864835262904327101408444969777939972754156575721985612262287838580567577182489210852103448320468527545601952718722813432473130001965830152179178037120664400954256272166896317526893906682505722839121334538632061242009738199136402497224042250269637508650559840207520901246577270665595553487533536398328223756130760743270810493656130390720124398450048397069682114346712484420980819016063213807227866956053245465977684325044225701603826291032975552034340231719164819446153466608098809958520449710956663802407703262428359276708081894275986694885899937300761252264147264710682014327281618693390228065484879602532370890756091075813280273475009077987928023086773616176782642594596157634843310107596172599045098959124001037425836570242020503730116814956931084146757900490029538757970373468043597637234475415057274030861966581027066575760435303564397631637906406877406563779454289635466275084862691901869833753987791246099749664178054164486558663422299602768852098803109978558746653881735130235864008065293055336149394143507237015232491033581586484024823325817191889209488604296010549792611428472789685423065642931911627702348110893448814595943527070880174691971435299193648919883797241396828885131873917843658346717970996391530464847962595185157947848445488649615766574748306705670000191253268745484071325680106471123102893816181673276849427347369628457890952937799548434944719285028003640570882037583399391191246005825373873631856724228035645942398382086560048256476759805344695427260577588633270451289226922155815860357972619429573486970041862726136143916065422526787752404317051700854738824862196593411991503985457413578949593417083579880407427975413786988556066836102997928462165114259083283925923050366876986480289560128498160199910509582046441957122345082141926607336128815028433026607827279786289528141241008406580963174902386963972884440906120172459564667085679890968496825974895354146200531643907654531471793825002499766765007256762350109860840920639162863997554464248113559961532666794538835828234426984810887503086049923159385209878508885354717330313803648807017262915150131937706658417106784875839815696030033596747525937497585859547602673452768993652076853454255778260513847350322738128888422978016459482954993001246765987999684143685072163979386554958338574161575678075763004049459017493977990890306126950969533188008720285779059881500598758291664204503340529889144787789071078922764125859483799264486962661677262793485576270416937541318017671122530124802226173379262245490937355274957592310508242006779282291186739835929696137447656079478521236807893565054745000123215257132736757139363270330062034053934077099341331444502694587364579695813539558907298883742951820766717596134710726782111578194206400199410767972307046899577895816224135558077162273252634665518274959467565015580675805753938118673174202575254964891975330931014379108780682440828274109016839282094094174780929194191691168570631557416086846808116246182158190652846682881813434262984769572387269582218528434430892800523387920533257986174380596809520423708949704987509651316562935013000304898131043692601465727393035697829782296484620753344651519427872989044759402928232437740786305055585334444841216949744128855358335675160885181162157550001652826783842826841776688860944181471793980038180586048117784937402602727435088601467017989836820795034870828235355322481781228126099586398508363110366612394377679514558221967408803523953570876842307076347218571697418716892004364187022446766701212320142873112934209179167877808560523078340650404432240762342816282787358348869194456417896628033815298717407165381070019877893880262806137349206115391472506969625551320140539771609271871007951827475159371635858717931605089346014609932922093541737183201714904982993361472095454655522767312992593465077894175390625440713751878648260988524104049492074564915863198509900856687255096477623148379892161681722533411336025845833841850928405418400912530789876152210305756274386890822687292133655868352341455697650678270801355743415264553385927449135609973353302394267709621221203791049159550010224362298146168763097628124411034870140699362539500902483867521957299348615087078449726988364425509259839570860069184376776942727117931084006658340245614947134391333620895435591471064852743358500712829425573335685602030076000144770647017287624556889375963819312274023456771952618793766326641799918716946246662303509390385967249975012179866735220531766500760643271383336184996685130294054763461560939015252782013540460827890741070060830564728614053001975483042699036698713335587857821913189720508726709587456164482861578874843567053365242704684039358210613066241676039518939736019371310286120452826514694305155905699018113535928946588436624518800439851551278104545482958493834305224889786422630878421577303461934757650053660649898117989290718504009566442445576108603792529194571384644270639033633351172429157071729310442010834110517374647780432681587802282737136632950946705636830706751817344418646268119572684886377181638432128451788597865349342290927735501923751660451001662957713893908396961484196208197349003347889416284133575355950990494934083235438198290307787104552058118952172208150739839488602205856563723704137190345497437813193474744244911315094982833633572027785645414484348457445582695316958719949323337758213726854213339762267264325229385031210031884500486106113978445071571681888734435276306463768657786087438811974447335925456227555925994350483818113263540886808248375010656385852675516766947576285995276785135131542451124754018573945900429205802300654555592386616891399413069988751476294827296631356617370631006574180697899703013801422866483628222799864461343873339474121444872477663300201250793835713864914952032061612872028917312935559523983031337039073818159107585361728110733008814444433544783460396782175435982140788396486165429998020084651973149149130256640656637091058963640910553945700937982528232362329126757708393637374218032979231004162503552773843409860248615816998544642273099481232440975756827509909417411230353128883625608975731263961290585163989203776786830055157576578695464962541124113023556944953150880017516287983061722100779785628788019832181679344634629057037099192423721845918241374966871187342104518446236956898302694595087365193501926073868978069087460645981167551845222598845584189154638520319719284986798421090818264537183312488282915022444706137712594834620704829820873208614997767243562404896497625909032634061521899759841558314471864676641733935320308270091870511390170078323860821290748900648571442800543484669596582305355184303437734195366776391660428284148475492156036777583287141141428858887359381052193108926124704660029266244096808343606831348966732250119766593515413917538631507666215140655562214160931584811108413642200467671145019533290060860224053156656712781679850840889331530733066312048125275151490242567440685770244887771083030017455933287181436870698703343338295554995913268360675414228924518876232232212686884484151025606073759801498785693728466197468009670744873892101185131781791447015976351142475250528972856180363427273311773716463568197951539556468590417780537476938218472382596233187931145452325415451364799258013730130824706651529966003722596010282604872134381063436742940863168433238883636045641748324413312060631054926826985248046363342646214998965940127810671409440085481857438367544227492666730261267934267686172667910128115659294089427569120351342552279181280844664208967744134949858046786084395356607103505344289526251655471171557180492301454851759503539495698607055060506377762654750211851446547966159915008592675829900298405180179542503334746008495957687035340886268676320382096453101471142996125277374550608524275849392319767053978711178987740155227977783409403376522487879798211081290267962654954925669204683324497170422404092449489878982110700479361149015900811383136596066306417557781133710250472557300221148103247414259081856507716774161745657970421615613018463735436718565922854380326805573627459850093870117474555157111296862386248891371061839526203095509261419920575987022341826323979976528798339808754771247004213630988212815568788304951230117882170056565832321502855039372257904250185098489707103261975769314661649686997145364759966545157083815582172816832457302227665115254806763393192956015448761748393607120075021300960188998959977137055754615093626337325212712128099635297988581458651152978939850883115351920779280990376183290781427994981893545431684461543587235618157704077047965421975241752497199343203471453070506332276308761702709242196981252414512651003393167990345352231972347175628549749242210457939468673393661275499888019422851140937741304802774570704033279263220480924435553424455622852852888820589916622480979069777545761282189182840312224412144692789976099154662528524370628943842272343674111959284169329586199753361194631106370167678195574751542025200451933563906206132598932357771490668034571487114223249805364918879016566103063079060123015487932145340719563774653249918773662871693005517888429474233549145003400917126899384428662608038863761560143851588345255631658370397818800579046795613456625664651956530857794922888767626009278448739702796157930599277157147920495360678650155917110928650481143076110446214919653499283155126081371904020628510468705919853073296356193281416261262570308032955384589918386893347270069387453611633663787202647355468411927495442230250204809061186050560621035073993228386100162313000760140685190087575815191241763144049268801437587643369488866913586724528307895266734629884376834806261534945211071595180797972776801347832413132075768231393383416020762305762614902365276686052042399270633926980009911808106650538027367856256665505672676900056686813987374564871568743839735467043525945847953760153082073171710856301901253156416814356044000626449111323237821711845071048424626922200396081676356181455637152333963207299952765814533818130459590886576969039482597638629342719821754457921035483599450391971862267871086655484514633315716785078574474677918827608236536330467700344649622969061159704224791182826668938495572909198230683340875381459649889061071501309177859890160102122655201635353759220123441277509161013916589631780392621024660794435229203057575416891146592023157526933281076493515747125396297281814618800483080206601082753462023967568943336123540094684906857142035061940016543434349337913608798757848761664163423019113246205439750869552219771181843553760187311199711295100939233581542873367245191727851196853066866494077263252225018547878592024342052889819101602954542027581074645974744445369954685806697121088021354235518729571319626832252916584488428234336951836770264142079763028685362007789499692497920820569319583083844901141663107583161490508436901974263115598916782915387978291194036800378489462988276884677319737367594735784488316780020482886127792973622247112281056053168961028548561882909692986269696530838082697634632660441989911919137107052077203911612777814376803314826969482010305894396451885498083443594803593521824204309425394806543169759242432161058225896381981330899747730247148679023682498459959821822521611697639000618218949293744160332030801139498498552763733481730094204700705304160196171449512405730528116126401647496965722821168648187450027445881853210370709483225603545193164524380988946873898279429229385988236807779773222807399014716442309782847529871689923247978942190316072599913102581409980964718088151572893502302154827645573477615687701204542089915803244918257607914180703552538922924676351992838491086827185718109554737018196652706572765208709735455376095611922842145029721854624062970936383496381026049752049712593535797227544957782463265695878734610569842798653218537885376208831900273244234462984407615502226255123463319914738780631643478448283971848155327544631435876090505304866629066011952440659391706359951295316573587564435693892519110443139978074582251134436848728276311355488566607230216878011487500087302278955521060673146565293641923085926682830293788519775338774780370085221755259764353991390173842699573876138527548643157756161717722820337308863902452984353421568975686415051475702001257525417240558731378619793301606159663720257019036234290263460353080419431473224134808678731634629122623273770306745654405801154415676653148721032226369059970925601703267474032219065795917411189698806219501345195535144555810948483578696790330871529657783720058231871122442492729985436815083549857199251472157552127451918182334548622791694649421697207003482944370399446014083857408100765260394830996333063497456070847883738056996873707501810900146941846161951554752719230958962302320025852091806203307214641168228837588911674816881843477961007996585223791550878958293844919801249081688841918431613829835831801966102672874356514555830639416230791484832370075227431378082788942265243133465456734957482155983679530829484910469672722658441420737118594919508216982801752127971238621465961550973107439623248252472946337516092947180013686437196324017015623573450133619894546250149623197947505809474604761871554700433594142088308284072332797473496231137446878954623035069219962008975359877045623281165802682491043765189964769226343259347141043764939196187545725107952523486868380384311524965958135933746963143913982669577907378260244299691153910996326717115419212255539126625649463818425959241582622421163065282304533725316377060235283085483536657844120308734879346383795105973574331247023284060472353310753510237048061187386799857137437538463035026179362514360536603077412085144097629215568447633865023890308359310719953929429500464452843677733133408188014154933589219429537983881322817788486594533396184217519876527278343654351252694132015210304399358004124365396938393033708737396959800113816626909321510030941524712794961917826067775863515927186246126444059080576002755569448205177771686261701373000120457307805204236981394539919673837893476677554248653583030201774552821296597766740107917804446158227325734605868235283894249043849956377506504251111571665608017571594926305483926152879140987127989814993686531485203959067074150364012032232200602562081887890674460306228402533677506819029320129937175132392718047221353976920369015819495734987899216371627712238903741818110033129521616782033668906845639866893518587358191863131981740584799503674600556172370126162952008620345915291415020266141643635326403409263147993056094772784029303575056556322527817624864795138944108677072492940299226418092476029997548430413094489004100985189473497960819829556685529758827027743320948399742913899018095684975715548323026923791166908472221460861679354951046606898678432719383419674092114261803847129894547887364348596344287918420197211330237920745310554342966659337306047066968778387215548471911980338063411167276481143050744668509319367918553019389418267662858897192058669849752793950255297291002262918309998518335583286295098945627363985982418941159789104074897147457299513480702453789035853339687517966576261780897005798882412296186290260783694528488893529901616354045315896740165007198243613696774846985690277735639100795168506569534438334631265492659263186164999227147192194275807531243974258421881188418198224396869547799078736452929053173441831781441566815203095387206456159759001774764861373637635834918755037220439826107120476870460436952882230450343723992877885775064632945631687782299658839212662610068284232886574276807865878214818975665500043331508582561494720762863266249774078632798174069855523960197493934153154993975846464720698667556260940696610507535886335176587834722681140675927182372532352662728011316642764002987677370419343746338470737970523909452250283692941558703640557510331047663455116815861115740580666355478062185403352089681182183872417929398462500517223332650252706628612053343097894273724086745900063535815543897936125893398613287235214428374185846452513949114396828037589874714958036692026434599106888860191905932875741462434166620271869467202816482861532918069262224987091275063435840592034449429850872195696742333339321969333154337783062270814361847597415891282395735117096645103931403703720356573212537655494132097084134357313730804908064909280176143295857504639464994866650584777918396519034492161354030402214190043056714186101715948967178396631404609241685280852670042432259004953806128916846504226961353247908362406314317249939892442996183996620378566740366199432244297285832225299332616857396202770866250093147327002622500306818733337758175728883563990946400789234603884864078527357225865053003122049470180148955177699642158407033630199670965625936571642305014558478156641093920351867621488532043051221037185729589950370688328602235304787004883048176731738016939672887613096481673863293123967515546723211265929990804435514500638312693574776766499917540592946645307258121365848861499892759356428946043678414830919626897818344156802526080303825397362348136203748875876491153608188358936967345922289321155646483094244970213334240161472262065402654807641863999913457644911097693282192834078254524512113955863544184759331701958660003571668383917616418861950715115602139158164901284702139705079766093212298444381043546762112374632657997776804060448824153083613913194458625598882700013024095640861825551504201649238458772543935571021142564437689326960506516503994062762659771294091243272341403914339379680555445608269919732438545687090891084065805533869438743808986492917292964610972108371583701837714505255121492637063412904251829778377943530135306208724273264545645192971587714138667152282002542129193509954100040227273673963098150233363776111440920977903071874411647356597814263247604833322384638972309131105429556344764639171061698760860000098105100582090742641151924628412296658312311858785612619627796184826965775780809678720303568403592611641562852808368549466074751054473730709031473775695949294932664032840167562224309349014728324191071008292941486851242099119259880271505840142036430290898656218865206028549414010095890727821181714017039417912721185821724602122896604879282729551561196815048352970818595765537184307623945103902683797575582915305726152405819124126380052675660906981007354217235686124894409932936026457698796378988012573409340768832019587348432127277681991613023161422388735149350197697389809485641253069858958181727221362495423635467075122632069334906513324182075218481156945981772354297480670765315899573427492399708509796076550662790681911473599084076606192096549258815449040686021314281939012839360877214750075554848147638460987662421087437898134112979404028460507217296297402657425468014567369561952827646365615777144132530004995498571336728914345159696447510514759287281686146542092061701514758957457108032533956289337046048479345903789359667626023998716701682643082653325476018165065272210878371286122995797339841685670112655513530031988871208030558675668235539446949117354682491315054345917346307278291886637082813934127163991108415309360769630662979707721421277106053979337099946722493355577031490944023335433583917922492935160141659286498495197992322007336925102768134188962812392377760448109906654090145979147394850416396067047847832486584375206391610721736738195342930768499167023330096070170049159557997908976946444333039160272238532772146028912668717277082175083521745346321124076349414069582948417872359933578978578799400461723086277191858730042153559611701281950310530795284910985796947136618781519123168883724329628523376861749906342869940202341597546279390526168493937251239593053287264258629593066332153728871620553375036860254770212128820936315421575914186425896206836447142768233777977200150385867016350630425848515807872559203742820892858511833181681732916411266185242553453183198598456037346044542627557845858623303475295106240842316781153735994255085006514527026816606075122621948935202072826455497783634577992165820096347921358885400846667658316167210126018710548764856980984088404362037327552262274327156471671768826617966136755584915705977717595625294669017990559278655360808224227937182310169419905838396212642019838198084852579305900029218493088672782080083525242846120718652686901996061862787169474899339347047730160555390573423239884864957656142717923164905318468123587466131866883832363295039730761928900933798429890513688308570018044438920972527501550398800884317830514430452019739896582329041277114124696471970719139425626238337422302241301247198589090160910915486414195007749471407130896416275828676113711445773798571194966139883344445294653608340096434445056936405180235631750096101468579113201993374118095311101678427544099677113070646849194446410230613648736624391180206594660352432221282629002872228350344780681806650079477791683282947235114932739634685037918200054649618332672139518270257409175174684204653841728243487949758856187080406958406862443112254457939350753486798400302762068565337841130387350883231794590867735565702466599702307066035247706814619595072769834322437477948968909050435997915912920949958096657948653248659527193893651290430909491152678673131840234502609953657421681964378874766700942577327181989152374934643787197655515948789353673623894043552207693059403012511493279044351779630967083704893372087698716141028336664991241116510599593094124308146455730743687457971304554169793361886347112636233987179773134750009395614072509553837708973675105221451183734939579172333013669324312630389160003112705232305336035044797896877234425143427341418474514667078437747437134800414548167677997196512165955959706245867556556143277237027325973323412535380425582871366060817808683136900016724195070629363954947313661886701380179188773875544925666019926417502714646276560651450489035929505676238687272741072713053469303480653577372304798347456340315739738619898807543365226524945774223037800564140557959986392382820978329378295039796090205537433478232227177332709301747496016073569769745146328736897827632925163877763805823610909820241441342816935646140012759257902034302800534066809732412615390889875686045473405723374952903995627176328780335933754354516693289329622420598617700495639639178618499763642940091470991091012906754801294838195495778871822546964824489731081659387041351279750152298286963512415603516209597909290187717701461780164128852655118783399186037675414451205811782858712998541725309218388199522204380289228546289235914330871520472125889899445361425317211053690822597420099244414542843870531610053046974287457153354915509495459780307274279868415562213670613138841991523535489293786345683715475510082123151617845496418711674049323033031939726769690252276936984853326818315528035950724266366122628450664257153346048501777963352939819149750224397608584351400427300560414898246027818368207087329298882460961786687310621074955944282570266303555443882572102050212092110797583742405919613692139224693572084142963786543821087570784332543727227762506951233620288659957105882862409270731555381578594753789813445247063283259871348838073058440695665160064253278609500027201235485305104256182517163796324251394169267827353296568076324627241199468694727291195112992003021826207013651682811159390480090704850231205918081827105121316469925868706576037149981448774050669711547781783470045008199806911609022683066657202968128195197269486568138134614393063482113637839043917046865900431485014522106193848654709812914213911292899581785417199301189823511518408763706570833881352354645912484500178582056286463825187688245265457063656025941933871139623156003439412921687337858790236805774255041617761045576358475989679273919372042086027345608352102403343199073087601180617320544508389618328949727741550419887480258214997618658597826981785490649950457849586048297819950220789832688479444682206793939617624008775790067741704820254947459840161091788323792651093148510451932317552823189038588014129318361187419116525920022277403613008231597474031365867552902556860410299740104938901266867346772903947748188799569218204861383651468134977429539928755444324827589133824664285809873917297736622244318273521928198079316608925898935630248382835043552596133296332436394404057094223663326195543967337083588286514170278302616743013720349015287234138182670427583231089688840244274049508356261151463913473399302819892969278583720099529798101040973412228660742716830789650245543962894077163936611458600999285334644826268259759514185670580032181700626659492617203333766859274615426160750531982082720486018977719159132604934578718425788332966783882044284406473595976251969412607176069737902199954805218622885011213258129253851537692576504340527160083572942704390296678790445238873230709490476596738460068783801266377382276011042533377184560693832428756503003223779242676828013032223051357213704626189717759238031242877314777167795240363884469437338395847461216267299578635437734590419901112802644007064008254345201065371936790586956949413632157628218043486888994172798499537793603503301404891729668796725070724532269344132187365607557107841600394792129122498744323009966624415993332895112801102832430650550701686896626531148610222143798380222567589276093761748612952566045217060833521648622480881039575023348009748174649831462052577925704308760235975892063619047843539419324945621153351879016075958504269423281294911084417705777548687198139762170609399620441608602108809428018346036213592233231360243614941825704477863259835926639882007932010486655329121894074162978434336091135013503768402326277106405694547161491402495349641940370804300355306793708176900015166855105930715073411926878649520556864661901934799108784362548186947549206766987119322157244720307438783325847275984621798828828633525467225373595680971330718421829681817262086834060244018200449038887953357031607937181753275071521607244682149682703669937896060738899870897465741753103613300317150099697520309783351543776952917165368496985662496770391770340420385876674864398972459626110460254387595491971305921956780285038071183830354015708834802100316226791661530428206952425874874086609767090503045648531865855244515934530821227933955328708872465704492988918229570101303088357640843254145458113166233437664143184435193117678040908350056720354031483602159416137420572212705994913948615641038039815767449843222881148110994896018835823809649515907077453183674596302980379520613390373921271659568797591098260581691105644468054695561607097750828626559677535601872422989931453588594594145356914218559467703418741450043368594720353593029321217906140264027049607834740041330408105537458288626798485993999568993238359113172887236370900522659198969907941862494314694892988288490411469853716842645894717000848818657626594882625905840765705376479675515261234732370911936352968157660219499712314746357635893157130391280319977782846136933446208652307102984146336934708744054450791764737488282809865937025909751404417055209073777880136140712773980228018970527557114810267841463907044184904057954813752232080168671079074705401004567089183159463253841963751963938698992323847310803926514231951574449043400982499843585368525995249920863397268042415166980088604909192680048381001002163377855472467184010323873123105234879942926759566964496128252324723500119254062943424689267800766707788414917048533267842500981074814037393042634222022449951928923779425638832852935107318920117868907556618979363144361851702347442885817639854029974486830983972226658992797707882216588283339910648413713387070034029935530189340715442743123755836351367431396282964528377726048398917021424948105094116914111283381958565440854387491777323898210465271565321248746337599848973996310537952040659934812371921907695416303830948377812282427647113904850672732527176182149934662200083695427052242383280469164302026188014530344897701205229877477144487135662886859897521565338159341094936476407192215089641428889167393149122080632626544481548240995637463283209404261409395887951527227768329147573592240993706522200277500351699257021176715183470265872894222039897900886416815857915251964777008069696763488505270092401094052063355175667283959801965892140814755539231160897873788002852949798727672990429996987109625181808649682994710196527557698267518752593085382235548456218304568882549097006517660706427290443107316400121567335522783765922632175819170949755890566019538997413400760276342511855744103965217526204380686917834490795715747932285865551971655539592291865878427061786455325850953854569190006398412638033480090029192925555332405792619919032275603660579926326750755257781256591908570635270052181098486477481892678135718870380526457747794370498109672370838897538482159877067256391628521789849966686603650466710491562693183892399671884317010081844128735996361855657987319238093218853283935468801901248679003170920162297081199685076736340343495556825341123079587086045007825084660711034298689213316493067529145321451481786951089754057978867440520764857287751721476312835252219217486433215027656041222521605519938089491285713453818207287957041819683963226566670026071730308635371059775169413445832352400036748152819816533930368018171288181177385548089550293326624113808569588528081035713405177106127822624706552652431101759508748983525431945235780392846135745578686561070135207349578951589734671319471543188131536321908192823468154956262193804759753718605612628851594824645475770519074203137015584705443520630294263295462056486421593688379072934885133452984068231390557781585631803471351868021708091325838360474826687687113185455172283737319052958032596279825477074582866554433558181720038548217654538792460525872247981963700445098839842098608168018533979331903139326043331895925046454481131743981969298901877530515218016128076729052084630264584077611357946314301421238327353621799588015307741455888092325483803049441167029326089166938036728062662095362661027420570108786040016867202699704682435525769005497375358153973322156423441449400610327295636046265292338816971067885463070735248601428046596862437566979266677194202330277886002299934702329793529092960732569269720496301570157542498098132500168995478570650549021764169698747215369720667696623838294241878979497356769217788225278467804671314349670338024155017170925647286888271259015658493655843410338404365624162520196038888154859531393837634106139552672450725076235710726871279723894222444612950802293291481088509493920185425126258600946601783345184804273742700121059086339861461704919939415876112393164530736566838284983374068389018401031101225251165847057698275276980768825434007269398556477353625846279077866334736272810002426500008291872493152973147282848285365053691381017174898591839100963107139115535074026062158820341243133781018280278339969895116399488462000315633096668857400704954211218605287010665580633933634965245319231035075901565931903211154541784742917814177720431098835549250295230462426296017269133951922222832427216546478638763586895130776834597713298199823081663117681621989942894531509326545147149257816103933592358658472102326884919541979896000163055228209835434395448529046968155581960057436020327187888142186057077403204782191185730804841833135084014436253838702807785271214162894574217389265048046377283268650005172694906427326741600813356250220501382977726854282115022076626808522226121321980882989983879987568259708295467771636942884431341953143966263910435840792460861251080603586432911150205689520131447419080721572840750762660838407068314124963116255065219225952267018543350123465621450821350874868692221091848065120543238439316760105513821327670087424893356064180184445808246105505759263227225465095224022636655017703943681573673306454231361241532762446467876076920691822569186969715637983482381286006602667398781913534464531261635265899432934690432086818973388307148974738136314644193053853964405651943353256293866542320967634640071358898100905062225823507899946402684857484107177652892652235014814393220314184394113688854126948542851015436926906808807747442446402243463209503928042166764868295397930763972414808882052915163219313490813748075481406011829837869999091375173530565083113389497069457452550068156915363407054484378930317719465412787061456547157604016483846823843532427344148254253648269492624128224280953327378060427812530051791658130372949081713869753970190749630771457441817124901412404158741393644042668887175219261369550136040729633880900635621642103827507181015601853496848694328132200631018682618982658232828643456196687003454901858067249243715298443494536885801032736886036020185221788829058514736476238242748666744513034531231194672819788008287722054174266572257027207195019851161941311596961704957840028684173810610402581906095948455306992188282836057618731229130692958124764625437949537966458766387217950070353568997461807311800654005850662452907698358873235301498078983103711724388428134130304735114489356333762177443695077724539103386788260139485691747940035525010250793064207373570474295352181211283888434352789748995557174235685680769607054504468257283430333174697047947219627959318811687045320542547291871420559355179207265863147432399018488700837797820486380452650292807660588592135906314219716104465737090216501649067155514861866933752230055886547689959987279707453681460335767846373230580820356750025115980668167647078352224633600184393072053358162943329119955087894966435557529631162732257905740245471497029169300684129121272164654131768990115457004150150665458032042186893930297879490228974404386271032585955584618282867435031335885710709682524999782994449061391896676437658604256425318830170623293299127761450266278113364039402572507668655695393284594935861237355939511194343956867167452904284875525044988262662825085043345191947962395101979618939214871770938299899027403944741454305144484128091559258073463609379269320480748382115000144119831075577339661698221171199347731724879648797627407550892853956984426646675887049486436775402102136447576338882800666447767920697140921644151034759956396271955596282826508351538183448999347550414793830920397608625659897153811193095664249695050138516612665359762022552048455872893150004404644428352233237994077028316053306783611272424304157265177022939100760755321674192858010245177625973900002796398180380226063406755417486709024525904674407163341221351001328213730593842717090065717546223779062592833573978490449199689060321329320804130733089650887409661778750284809958969440847392278640656873582966074047960839491953599443782495369689471755863243653981988938719279438285696825319925822290833998915957327081086774029665155398061680693857470316034721414078573876875852544582191744089636304053229429049991482982812139285189294238081833666827144537625981773693380410736754774769092733437247690873228318728211413060167238853855496389921640688086979536917357131473565615282808148239765877056939620218162600678425574692715784418612666786022736148741579220124706103730337105373396222519719457772898224510990723424652816918222568820825800703266585277464453349123772876608583816416654344800966659154705921053648943932770314089054867894295873280526423361031840517135527727385399121567153508874931286257304229929529222301385419345609561426379127863284807531554508927707733928447604002570934847423547789176500338284127206676994681291389114027721081504085319104162566581399148856760225040372004412454122478559520703346063705692621274226738595621784548819683430887420270793766420439277316254706214956472766557396631258855711243541346825053905182782373061801159775275192325062979876489052229170513639717411274492787262706896919028775007864937242272870270204224703638518068685857009380687438746460889977296141058100029235014978878963966041342114599100614100174853774425195642524289185680115801460631671942638123589033017108846730632378609736267961810420249269579139795863079506774641581022115700572856529756714692185602197807985370619420091574859284883584898553720421963213048299170424307520713280346011236028849658515066866555540167890466306349150597762661264719488739581724597552143725956222160970652145781048606607168643868309685414833884496911670532532743171471146130972902238354519531193532626084227946262232913862845878163961604483581543596395589328425001335718627344424211670684656609410183798925831549401009446957567945648466808231556497561838780022003350169664089176414685628588373774784422314710042526849771299063268554862695438133498863050485504038172056134558409990717941391825295414739660120115261437964148321693883423920829848786499473071941985576544808628629506017767152698733909781511205137082607925270395216299944240674058076044267702589538861293356255996702348623986550835785263962115516163809437933055990470390287745480419023099542794422199005554668458532321395745728538778691496443291256829247123709609225665925626572316211611029791305287676834677564489914158044457037298212293855850385777067315277326684140213795386963062006766607319797447523950445654906678560124674643219727887235780681134893764989518334455798345082738063628183019502263943788330545825170173778974836048682477144211512434237552510924689849271161445069898402805961973642707769842635612212270758148417011568232843734498235756266070424642965829195368611667387164379748870894905123339353675768566564637587934838006749228975899079639602477271877290965176999828711839712117568281936880681353200052351404077480429732822324932518488359641720474915700140181443403211346016074000495011103602804537430688662471863254701588305032099988176126515619599183620467664420961873682476989964294333017669574819387574597491466363432651842158324397010189739584793608342423521720386074800948072196674879050922870500590156981246431512691768420570260126465311522624402978464772313758790018094128915329308914099140319384916536683667059038659590530798549973941081302179603807181353557298088294825368033812182451248673305272853547289742728485421618260645474113103363674039705342829200322978914971468633263078147314047165702660317943695728470586274047692463052763530915588961964774743785720867797569470657438459022988070931315121391722840501277719469329629612760367805613430643176034215072254414975090763813735665723961298072683472769612655923307783930920434730584338671130164221754989438984368719896721564242961120001886293574074578233538124513189781554173526973132805493195618484518523701042330968527469749303593064458933067103128312501965103446560524146136903344655568184707861323041432872102789559606985646307204755505147465332132951390787453872664854710353730528993934452204655709880841157856946586025814376867191806883020526660893376125319058110165097638947201812260100118356885714813906294843983788659820087157963662554080531674419319083419084311023633098411117383602537073583015200209060897520601277808927535218370036244228946502543163422045473241783064244447778985773366304803159041863339368977486003337132682170632976111877698830574055396673722762695562490399086358845177531453253867182499016209529946365098677529256057260714785250794356346832392301245227608785462847707634619165056847503753364625167064803293321677563634920713254667459829644878529620580602399886578261231195453173119895096340216213255384363501105746467927454291377799841764010674563442878613487783924886938222527251950072592865018815091269357722767265473001514690102814435006678849562535471696153470189526992258248992568094381285788759359673622138332023555296114211730226818051277476569771743056296415106924126919807483761689475533277570739323091155655826103062749583418156511091534065967646095946957986546346958473107423286348498422980496507052332079477352777747812586288164109374159549418606273340211971376654285515949976676921339095587520807544654114706899860154090950597109712366048775213395579260088695825905851188714022809382098746804473727376955218951392593159911665770853955927914620111750253598688721357898047931752840938948782427940233093585297517297292964455298538074490035649061820055506132603291318453395769899639918316072311795668815470868385453682129244091826150614743975869136108370783644390618782209987034291194092514948438058901593604993620130452769374319239595172155774521551247777967121394056418905176681338185303745317130992583980974512669683819006999610584865442951133144259946130160425826454915037204714937480842177706472919994298509430775688725879487538428774349277419781592560515148789975378367105757709788035687170692111459810323057579514498922671085971218823603731043816574025562692462272022388510780378887958833150966466793263043552471016679732771827049866540608760856957953381599097965205959093757286466420021712805811885029744230084692534863619956646750380504452512587050722682724324365775047469737388229095399445310175954566043139725338060406437594319383190465832525238923976966355869527282170897820741216269452318913022921874615873219310855585974192807110398010601389852699848301064817574886143628193824723047189574230566786697853071569924024818470974218997674205519307435058640702660021019729967316037009506683353819988304363145052887216875146984179544015766197595555241230808694311072905212649210322042966657749829547206697419073289074173822219004721741920524868288818743427912849689904591053642649737719829124828354175479578824855868763892853139742545574495953152430973033500643219114051967315729665210753915290656698756337156475312281599612758711759694330878839408103590479370871811613681039303225881943400211150438129838553358167446975453312765601436761651272900569696727324104275050871058018720019613183242780679984208764269005271493672706141439233533233235221635853321404007943048970185940145015641344890572225132405616840264080261481797593547908423317187675825550663497564974113362198918638256471781950942982033880367726806744004388946577384283927231020331767443847420056085058478805588152567509052140062943634580875363437646294594467021946963658791247311380536904105851643787717122312427842426001326060538745417263793496237007207206771020366524291534750590778623559986373553013415123348215147815522256732651697749440384129749580803924142742966450269120242430372929951231355614964182624138277806674787988363300683982759416072006903072847160274045406711002868123304796291209229108455627651524575964881181370678033196610480796011785946465111959897054001247336651224403595150905998750568681717707738548050545377218429324479101209178096455819398660307433912854794284377850304320772269363088496291051295561489697435629838752713349231010849188671920869987087699786763006205946509321920464565269784157975049742375515968236602865089897332804642430186751023489054226165978288451322882010177681642749903430428022363602072739790587340932129746055231104673587668059340807918843903466045487599881774042059161090126212468418362384045871452704649697122882715892582611197378703954999543710405449477817431624465197676846687763284142134907233476724462323251342313958768850351299956336825698093707225655717496615496048233821520037499203492512038205844869184697840035717680155382493009131853920565964531041043114373999577660232333334783491311203546779025975766417735351860558872824420383297756953703457217144564590265093990514982343379451108319809460894959948356572216557153936809909552817554380584622518728441831101102706753034581869431727222279018261642925658350187727926852498694004208050172414336215090227531568708888173126040425445116184401252862154212022763772315353100193939209993310255951305138110171822979603308018262360088178585243282403811560599606111821457310456395720671078311152408332259131839229842601607361408903167795259966782950370968442022142814083572726893945651368489279111385867394348086164994026004002525076281360880758950617148672933912083178703242526990755780558952376679173602856868267582612593888079825200171057559063495566444035229158554233149136417072026029507949934504652105295705835961996360639481538925289587725085448706200286879515004720763202575632036162662783831360743571639346914625027908961792000751575325523543758236610806523071237010366965778124816019551888679395523222538058922641536878557438924025756893139910807031018329810656654950185858000123645492837216460821229288405859417521430311552247156502331364325643006408449212014640775215323504263712463540095645948657320406910759203693959168901406633727785891409456826390611659209401882825034733371095924718256121601712778260366056097538020313121902063158686097031681724679683869605067634979958024876675582253730462165382442462058433840054778183891934848673272086781568669516510716535764272638462816070617955300010197440213120057680109641909503673345910875213882406067048689981553563875895283405924070034227278083547332987643839921188689046881625026696865310359608680773539934824944735145510079519327060324209499872948002079374863966372462162166928641812640460340175118738109827196461382328582770434546073642154332438133937634700893342151278514286852694002356175536927784023655946823890193156768762791626756191693766649319023779494061359975664420568317132210373367659070225662698375645370862238136909892167892035465133898442427622753220170410686961669286855803654200323715546386113402817118239631766129168521039967573929907235571489256442441194472937649346129453110677101277083236302928269485546184416240866375975697965881912806842784268105248876682049946761364902474486328205793384356329001873131811050801215758225416850875629796384196353617075399585110821169182176849677508984883739531095304774710040266936310008472455758931852806897680342288316974271220197676608265601780549097084216129271202774533756382129186502376721319246419153364702204507082702691815299107501895895129223492718915351613093174854973455786134287125004713728197632846513894150463173169366570508103076911121282947098923575459621274258688505314356308438250330246181205188044556667110255533111343875956770078770683731472153408085470229955935590710494161720877102926879929510337912338806774112655238729863912773155843261315884038118128702578021503089611729743308190638740476144471021077783403435724403770358220815687826844657008641234698080135820734820657544694973545042542306535506298618855330416407213271964559534479094218670156170485531776068131893281107250803990160603287946541156644517194692716917233616719579183222152287153451841525830120356916909525847308764383992477357191476832659072025470336287664244923816787337667203482240685506999997652061939702147977639652678468484558904108718790843453458162051905342978242816504943795792911597056752703244393819957682385786948862541829445338348726227864063359466040602308955357800172833088073599495653367772830892413771196505571804487819902549470964751975866226825921037371069728118010893584170089146189882772618478640496158353776972228956751056405717490351706150160009932533932592550371617509672316043740697070725411834228802279916721200687812829796379902687875874899515633001671698517832667333363784013478071635768831905763364391384600183331217956956709024149235666645663788399329300843263978223358788921690483843564968899621294108909677490245630459071278827439958577230071907949634554184378795460109290468013696094345637195504530487134671225401263136663982001739891161508188239969090047166645829925988071071082096248743045819134721536023672078630117439936260441901076047073031697532693074850620250444461303395427862309577633392210429310084641768162538213721686755493211958356843186370749393687658844565588361303403626766874974152517945852261025052281304123977954221257255705713214711399027908149275947520550720556799813755044082619285873687267865105143220045431669716211306823389249771332923945975282958626808942854362625191500477702305748690513119564959655892907249970376792151276441745175009009028460909323778864130501959456931141969104111792305109300013496012665348823819345048771493715474242799669999831672843001533113373767209955306739413322125256554687659111632783643888551242757362952861534504955307009925946966244686706804993269582285352277200112297054873592421394873562813790418660556655740513419081187828838554443300123700973811591471468877232897897707736011710424541847717871431461474987683953884984429463167905468596637649494021619490191518345473189518024838861365832275073364542447669632046978550010799277847895566482504122740414057955754561948594288308399000015405619334179424862529306272938980006663603094510280348861778783615555196572490161196763811434333700760826239826269644058513576889264246982490835926774181338481680983649775781379327989143275350968616368261580101063022348613433446296948944651828909356089683486044103392606741885799620913026266391237346115811136778329472033067134756093888764218150820108029028276320556254364952764033081619919409851756834440851146125227165435538673795558187896112382792724798650295523768166048907539930205162081952590658142597779113254246456428495701211186023047285094079430958601351210913267022853011490427256623109185432613565275895453324863656210492988565689522382041075869013250951260093300184336242290228658158030437709795313645766990509502162336360922251768149500338195594873587421504005619720586827063917930536225324087357302743258160008840933157454019970769423104718016174306222565610739045859053866825371200725424351741933021705880944015558025248069448243322849356631079697173946977806092144985099684784068071501359346948373714344657563034120323592571888438575413597351087144446339617902509908380224965713006848901992292766212173749535625533823406981833770770243839735153815325476046762104884395044880337442199162553092910172873204487719372746264530491085850613726713650443780987030403024048969563347993448723479332977744589732131132326279039404410120103087945161333375307429483375592242719319422911102264927122453523085235110048650132973856936689097418095373321075106342960103223385481392142909750904946252231597455632363828227020478955178000364712079710620694064050582429460478784614317687985392795765707010332002755212645763795150165873074027003111014599960595286954670259250192669583749685002988734436654388422511692496847183234334963095142007820585009133376412640985440210178690882159700068844320386504884961119329625265723878333596670756794888737361325329823163710109193974366554798872848786719732775634182076215440513754337925691492217730171769441565214047399585976835743762889274883734762099686029239767358974165734578829003964660959454628275742506674742755713617599737993985125593251110373975818225022618820326438593167001509364192502365564760739178820765563840392903943122932698549410669390721950579445010515261110752897204755140223646904616664523849243060452778301484829287495082266056418301747188501375464290115857117938201130436263512149705831861576937049805289216525849645051687934336709521587025901235540638499790674421086672953934188010652870785320332786716019760414747176348206692567141637772853299571376431276787975356632898795686264405249309537743303008333877520930589553955229521918592943589483289977587742801833855204288857328932327890752774028170461477157736023029206759081077892394838259385400596467048477957221339721753679048123828571812900510780948371912948337086460648137376773913021174744688470462114812376582259766096076222586105554640607889253518129449299664868294845045128775379946555441912583272679741154274153743272119600580005141457845464595277861294696873728977038502595134291423186508946096776750720147912033517322642813010252934269819763248696384092307097505532378599332796287599267551992457977710702038329732254612607138073574105814302989952348301986935247916943162531215063622441418405029855172771678005205883564161135053118082835591103017033154970036885390349691354462333941055808811870833498787507530931704678952080498414900947402030348819635801260621398875425043160102981176141922018546253644855448922959932928150164536268182910424463455462454876699047245061571512834909488177976453642512979342139046690560705604881027714250089415268816447129123773246929694809880823887765342323961364672296230793584225996446348096122145773494096158777353509984364848116465374581674425481438859340753915026368894841051719951594817745527932148047588935907050972028338373157258099483922445451756396491364262932288758324532974052173242788048961657924336953450852543475859179419392317670900204066590842731214494282203981663796244849737350356135101833702756510230556370213540107932616022215588245872390151288340161444558087831398008175916166719822784590229776815430396016794816620872411498911399563916235995861425027402882041973686541597113631954189846288856158142669450585136710131990765003760085267599423707471440812189036807662483713056490472384126994014716454547481634873662588838918080340584635190737795549533135909634620829305693660907862967337192006334137784152960928644148367552687322198917764586462352573393226674675910136329959970349789029335855181622880404611063151800154800505232774642225087298091409257260966938037634649308038029632199236727548551281206485503172001449344439340664611291529967336661290649095392631194689981711031727497886994850804875289160929096804847114278268153598313434762186642710861229521136608204971926958244917382448598889053823521401769510556444351320577994783970038019271004064882421392154440794246663356183058478978176809627783966016656542132684056069902239097659102190701941581597361781321806595036580206339562709010231376479278193557350602423233664945077356168503435275151294731794251519181709814064406715617826003891170089269658424554651654354280233446985157249407774049621639455477061262215109956580963167063484216500648753120269259721200655878385892010597102691351408297037047148046745437898032033528816150537883920719799391715903973402183385552227435974750829104948879480131706693376301420468234346263304664612305651995272653280859705191282270641829810018656670655836781410219218066575174172524935916959398370874209421236881214931322683870754819770639292334247590183443728156193664894173071494034750021199207612833563208614844991688773171171397093368256658574058936019794138512029267271787522316626072073102110132872135752395653294652666230773128606639185229079435685112330496964692740572162408641223086368154604480904498859581441025706423907348033463884059193437416142436538270511773364950557318744941445340548390545867880710641340311954400617516622350571315457011564552268007316543269482397385165642720149170842322209949713295237007715524851562355696232016280987636517454201098981978920067939075393957261953759403012170954849129568976265690128171489594671199316372035376474839841846985156018767067225459841792832751966533912915031859135493186211629784271053104102328146059194032764822441946360746016869498901687703867271222581021738561903770924293120226494974571612593835150675145553853615310728521152582722077512071572850637561748566122251305666776470929462934513979280952326635734799348387691580991797198344209490926023629686452412187739450386623364934805043058819348522539403099131958657787009249040114273843880627911181350092974527897127257088350510100833956841758614692233930990058288284835326751230674755760055571557624472898690940965639632489299181351121011894140084770705796546476682349453114402770227591297287335280263727959389081602434750269050625836968746200030798860177915560472928871813516458989828221857155438758327037907066918115484557907313783427061201564777613122126196502808319800926320091222829651945734472595754002740034973739966657291581101795617571046064416620826789666044346308713763051534667925113820382900588051298918559362696954362395825178773215707653689703183536777438943130338819552138107632330562885509945107116327952459573355438171714050769970647573187248710409972201393357456152956903891397732886696827298344903061453112286185265677435791100231986158048107164893601616613993265828635814812971374714841498976549216534173538294869471926824662105867888885925895545413755178604017222573732476347982763399153140527743152497700004926262682826767039281626522736811492670166480990771766936972333132146570114684245100428356259347217202504443861225652283856349362807777577577258007910923619127703001256816523717571262964364607511256554711302086919541661171189883180116281999934193400712619718940483293436154073816711317098697107074032306999078064529135644685022558711862206207362965319579154780718595506915255529678923719178519055458401002521769368959693048667579582507077072330896434889842307282138592841351024389697613757917669074046129073735105102807887410886435151542740003983264772875465794301816793841793666503895021609727648267446706722248056012314316872443475368373531504081241666253314790107331559309115976736023575963799153027647327056844267063144863793880648740836870285889832800636500589020718815135030419841089165271816949851736312070013913155936672107063166125049030672429328621975092562349148225977367156513050438359470537607256167571201707150752687513228654197368264987466080581388653708291569783224814003265103900542604217578978516781608709874280115924687502854988272594023031632658428426214104688434087787318037786380358793849709413523220241223120349917657142004454631451443511203272102760063648252094762750377224856219979187943697972647499498256145074044758060055651440400553186448397342857743548159242676882470272259859802361979002209584458898405002286083216699227924910349254324492463963068894806025165366590001696635545139910261226173856391007703886389504315374198054110335653850803732678997618024172619471002475592761240613566722056218123204683153660340655701493727630689008071846103184744079015776286526425231568073044477722094865797727516819156565079681853523866954560678024786070477883991497851358905514351928256458610487302988156961731376896451299647904978485236262719895126987294569512448912802397399800985426429546274728350675133154114522096037025294025012014230515535798858972994465202060332623721573485307537154272816710525723256938413590857701223055026594457119151401092060705126917313994266690525500246388320042715413558817708542133272456020833458981800532556353058539326017541801533657720084233405273859432853965327969362615550868667501529375121515355630370550751270102942837462263254691175022166735007343123157409270148144818676297855703413142064303681052411294930773047216981733387318313243615159250591955666674387627815709290936348168937550311717725969164123740026471634744617189798561261606588174827294327385230909406111121463189294693246263294440711924311219514315098873848799703224766491279336918675426081387523175580799592855211521289804068395372331343757080762486634521724201802051014458106953075837614592609166632729879014777879650825922352904730992724287078702400472329817979618668019275827541332252152752039111246897985267160480356085993117892765969163545447531396629109760166764337012150675080492233415687023315917551193412856209173336208207987747026662225985950500185892101721658503526838301421480728652969934128525059038557127010536970058946282188032377497544315762233111677624659269889065192107295444395989420150943232008998908684586192468000686877197152385709897092149339279877159896377089233380000750794792012258935344238202722925578227825678969404230095966699560515713981060495983218988285810820190534480492829657121801115418456823226485777507914151480277139296602061496497029141503429759197961881371060829822787771330971434339461965305367847385670453827711633137819847685245678596569792576942001770133879830457038915125780146291995117321362556268572883055910398452478513114663600951024875471354009851327206396262805475144803806424525429243329480601941187420015226502322918649400164897637186479632106119538525386214047033397479076884388391984595509500476598591285197772420284218114720732849908382876803366444174471711223368829353321903970306864394841179055342278337283899158463449641376202204214555282117596457263212879637756060520873553606898139577697314690492387030613973747380098713644509808809238893062166847873986114326420738668285774858902720771598343196980148323341507404950407578394888242985516233216546316508307500150602835388138942446390068323127220005649550449952308829225409233191550997508559394981686757315433208901588529594598305754640564819656259159539700638304840779862299476849382098946729957471796293142406206609128989162253063769380395822185286710792983427494298713890483149828716736803320588573648256362384158943995293564747313931543954336051955509902033548416538406815706920256815327187632571010052299251762606385112137976537166732810327983307084402512600081450222512529239419375466961529374496194846552095195708061649753371934653584670170210135934475510551949209425464403621988787762981776471658318889025580546223040882599266006030623173765442122715171597298273963371261568952365894258449659251834692886595458658434853620875177466097960273431876350342717036741212506512390085890754357519995485034339146888468059730992102625367991777643637768169581889393711235552660198270431733906501651982385499786763841683931190895881448714750756707379276235029754824513714305766736829275901154689843881108497143538128053419086777312411769585322896115920568916160085798071439042516207372075217824327581686246463335948669468921832422130357824877874581264950223886452354518140139613153085851595296695844635301073979814904966567781915047640232709555790622862011750140618166288528648378926206440293821820119572464452614467121800435960961490267740626900269583336885365321054420335071863118855463977752515024004458277176021544442164803078994202001901063671892069614894768579173115239990353556879870023593253332252819749409904767942582348992896129641925756775408415767352279148316803768965604555816286001199919848861600123098074843479752399498087614287397434732834458661080391134594423628525181276094194676445546247292181223033572383447954399149734994814540294125162156511502802991504543233196080655504828572469449806967477240060157965841490685400344075960602794652323499702589471893573558767227071024776634797533703126044540110367707608142392296781422390168742222430624734190341385079975485179141006323839018224369269858544946203197483112794085881119130661780152859607803572563381000940767182095531439129103725759048438803622921754488184129310230195891625726065062135924405852220250339900690744358995527976761455914288827981379097575341968988596555180930095313482474944668809379918519815015617172325595305299674551681189435908926795711188885350118456464146249898168876886316059885958450341877899336567966202317326763603273433141895043828624291393617092263261468834578103532532574800899466324407522441927515140055607820540391942401495735279082682414756996045499317782558217707352087368623628834439766506926215303815307953970001254413578033279350652227010635621801680854986823987510404433053468342024280016397800986987481318968142865462568404293671420050773932194864126210962452493681847852731715738171039696385896186889174927257140749145241040551163089224553623574141310966548153979840877228318559110653099928780097893449108418727295582584331518790143154889545391583309033252504508048254958745683239232002494621636137898013343404139309193125679813028101564945908520273051409892485051814812042851774460106627932807273081906278150110406792979745945872581411887905387762314231485011977239248639444311881047105082302033015345148193463313169929910760841203488145876168394397749012531062666473871965093940290082448857412586639190383213843818690053454136354082733719928404803196820772275931980639386418675187061187126292342744580942796948549241055921791307431473500944421859255485019017738772078057161840534179437511012998221875270737298506248169377797531619394334673099627516840968696227880457555068990469862212447739496243830288924582681687195796372115541973146275031981051222912252258144203203728224535797391868100885456325203496661660390039163595254919339798997278545746980710948356532032575239014570200876662094832863271152353646608345194262648117456408928537030713269266782081117586226210577374034786800820858251942217044211819213750899960747799887961562924302898344133081487462540276438497479352577699195833088559839928745599083307169891522592975775120105775492361251561645794269473303370879317878925154445610353081401262885863744718550860621849013335888691597822912596912955360237871463890314540054451310366726102300351993863793657046190523611044939205667099556456715726779189429036086730463823465657816108455320096212772866940298108259365699885399809353458750864203138730218996507416834328798849860941762696710327353326879731863757731034202400423545560898190370669334961286571377077404649878066506250614234554069197586819126169305844346962116946292088041403319191140590842456210977681153331285906958599835140631394308071581417102323418725074169528313441414643471643690397691448599890019091360906332057517808284787899057620287603101397534601454506716085604009110763544314759592726875470963331617661791540530621211927433521763442995128240210777073355079536386431120019098632143845512963758593340295300444071232357844491495098824982231733953270884990857793544749200359029482659422827137659669408470721672219639328078743045120357177264080400160226801280937334052644387286106259721038794069421313129892754633616511507516260107019379204946545151576564193905172197462825262472902837534168429353937029143204462718583739155133033190698611074570118149727251317473368349207330317313843366596249263007335406023464347650458762993396041285811031319459426416874895023613160597452928204179307963366351881529397334669607389879546565849145234557035900176234297925776451368065423036928724980400786015267965274863884825558328411955255403550358380989067726628454114335233651423271002001155737296320216872112375821529273941461901420815093818337118591983241735972325714698237881500481406393763239886941890645812141990403894948172148087329417783185516736468196861050829873167367026012966402582690657616837964162359220708842449296696759157604264128268241130466417216459405304375578200073902819001313142244583164010734467767894171708386319047899663705952474486468366566518043656995436833832073329005399576123363909497280961220012912609870011880267951676826905623931597237886925978259687920952583912853192060709245169310241647023885719941989099706789398810983949901498389448663835892411098425434942237223347029754911547224927206276519057790811574672764525837989199702903518937691243731566309364892588018813648520138318600509272697755748911192733856132905587329149030512119589131262038283822637200918729299385011928682089058314308948447048082801390622357726078341708773556664875775320711484305181314347728181349248038593845632010776858691595589074434032807958957305870135888659855196286223688133149789331795852293459197206466287825651362554832501742218757818987471183901395999855311023426002512282580740465674790468096473668605242445160247649318939484002149655533437975106819399606380850164599436051047727274909838481457166460513757556469848438706260687262434966775097897849486943246262378627172186633097581192787108795701621428834620638671091333585113593385145912189842681172440346625995587186117567149109523320781478208968273021606889255193650391720001942597076583794069694023557159778332399296386746075815391898298963755890148601986368868602865959364179601476194526025450850573288696449126940437176325465048429353122937457255954467186394860162152398948078625107043838160966349170957302454204098576454165223032756911907685735591074106293738786191399603497881938768852337122894039860165649277217031724859958809587118208942218017833456876972794830028107166860430435396364782979684932130261938338266138134502607729784997365660574168151859766430169546620641932205461575862712683196136296100861798632719416524362759766111377233695216200189368880742156074473571647421337286227018937193916024375263067576714141979154246557326924134493229442652975512347209469513920091480242238950369018620526395800731774338951904596778740192823183705497461765774586323613171956984424884502426880194324312756018000839877918963006296318402601397435610046602530087726755320563186610792260173964227522341197548326136682533215386256129618084118981011376381358001599671462974646128715863173844752736885016452155446886322254954317230807491262793823121177343597345584486919638782181853298224234377351887955025804085652534512030507780482806894302165447198348155471385207837184856909663216152702378994677934671840993309544127476194403910372565822210768526066492755936000986591982871671246151635226489910994185874047398224809417213980496454226898572146400045105053039222879363478319503031359704448432962663492337578188956907457744933109090727513061736106372780618554717167354311264815842412043846939803395426890514854121999534832176448783951023844153782101543563478421442032920245395185511383469724584755809591197261768870175772787614776128747167489200672426694385460338007434031592009494322094745716487055167024250516167228047155375519711004619024057986845065097866891905685496531290206140533237128117085402114907294237162093306412686899859194993116268915961415085057395604890415536621085519445328876513635372744587991671877809957132589228788839945245138924102713840653850283511920236190139782468208673850319620580923816807168226267315530543896981410284705824996667273546464686218078220010249763273631616409007179364859055407026212483838328715903066760180418020207768479883277452169155467376994748736523737359392205211302345286478254223860817926900808681252816454142555062660861960027266086253197063595495093307729084436724714623884001032090973631832143720507096426471174804536073552102922637496489977258169967041892386104505563976598190278663732491014584122607551714415184669852953348177482068608019523887941992248967852027769630346514053248871864914473294107018715086941040360297790236388666640227246239749475056550560620355298175355330257072607765608398491015285368681618771702948734928501729086699507011105352635236569840633257523009391702441279628602815667317943533531445371832701352672477062535540911410426590755221695138016167237591485477328397083453384341123063676219284648621686987762717892151311929661042436583192900313294479511251255597685726906995650436500619394107083127314958965346848797231505659793537113890254408567516482456263551048505223952331872280958204507672675578493923650922619917725211023044855714585351613171085456100143814549745143611576700937663185856113342046358648739970465255496057284801277846381483482717951942127193850824678481868688433284657922014553147019877708809717210114136011941112115974249198244550414404971555915306632321480741348967198293049421355532318345804555465826523890032558706774222633400971366598383654766264509643260675607022337322657891051194754570416217614249453920681034349983963688675913167168378238405677210600916011763787610262381445620704804148569108534678247818667669372818202869664384638834003225030122841709731753202781451305174698460512539369655020474067536018929612624246704926276219021048006563928252769445682591397612916954374903078228366736362599680852649686255589939263261298415421629748128242470231611109232140093726364099166778504307724577314402317634325108442065984513811088506869496959678272407550995463637210941305526330715723525275327188217994951704700734806313490624338257406318384277825546672561611342193869913011466890611977391736867503880360905027534192170463142259432266720070995611411490593220971452359961567725898543003143564706565741402895680631906634279447636043497677739557859915610637187659259589485525819494908513768611843760437508036167700215097834833588463944582527696275029149539025267968502347176449288617928601590079505808913361155747869669374961273095937148370739659737643949776905382146672854397412086149549639827154570568838338529561342927952555020142558457453895132651991090943242750157668433546982037818736014662767329649434555456989079677705639646158813356272122418841538437205496537814504156801995240530242153451597756256577259501051389962778981941469097705819801325072634680064689687186146874410712465166603755541504939115810947534690757948750432013912306999679517109088316904961430508487009366093292163212413349197800320944993402805331716829517895053407363686568883482014615509647012856436558616032593931216570369602868111581681956193169586934018659275644470714296546365475296209275589940137830347755476767388666139035728306765525797662375940998835490027210667759015442393174410048871038535868027513393878042009195686487825484464455870825825294722388562194232659517031489847196616613387315130629014130086439321861774722618349247374452810467242262924831788547561238688090584161733944296014666478319356410020031704452189741304853835104987121142096081258660547981522681714435671965763820977437774179696650159469170428459515750805428543168492573891791871603186272949539122382624235667233184403059440856818560039265426975629810732188896777499756322015211810150334359956738035875927398901220678588638483197276616895408925239970136573793207568704032812753247864774298180602713700877992338725161760895117147990364144390162912481571224831746644956193748289188904409864043757550318842325876035908333798020139913134690415080693567161813384873237619720908569200980931960962369246619457233738844371886476638307338411213192554776619254663132941769545306077734705099966667975274927284078689519788364566014615665304896403119029452152745527853999039711855772745636823861933288166699649011694591239893878080496464060723206511624460598749147953578568798449518722125124191615186874845605862480603887753297212880063239943654993322274173210991172793944977652246370253819655326934340167256815887936632646175961309195147826566940955161280464530267148781751799363356431910895440442610796448389199281648718452666088574862602421651897264587718594413212652672136341052092111318055744517332080878847521161252578859270911215991431110825318306361885542696983029720723871616786967191804415147181802190215465279940102773283449928694804844896898579514839554596573132530737947718911031903168737923404362289428939880613535303188560683475629418435003810346039600824525534009764687208308599293879596824233254356707832928602551276964474913279466104778690098309926702661940561303293468927863304752156878535021532459743348751170230685498203096524339075327026848478185729268412418168716437503168176568524745085761643551015309366561862117985600089205534697377570302771348210801456413243420312036402417020650536818685733446931943884436885037828268870762429401441485861719893752482560815805584858113931693911439687982692813990176484135505932335229803155539740561970431367587645171483414422784545894992989270161074036508259088077547682653795297184498327472058437693867609137245967194834352523728604397092536884792196537710994174767413030604379655999845872514174628440780591395911135514305243108663633403675644775514363182010420113414223695098935774968469235936140498280499427245051709010890148047736708667190932310698044382590126492513859879207569512589943192201993121337510522784181430570224061026084993940048973527536371555886142422010637828783722425562831016729114620309699527774792144125364610347325552012555024613766076924353034997045456930048330665235172704876700759356445357115452010902201750138029825165496063294216097176552265240910125113402903872753050371266827799578120972175806092088514534433684969121634304247264128569014510794769945226812937975955937333348552720102155656828132496514727295891262201782454929455857874025017069905987631857238963836026090313630839239040167936515171126422993943524549576321424212024349866746062839983613491564997055545007954317804127649719911689982302031159698532562815718264172692134819188572331646811417538944719585665804487320541773693548230639788009667827492119856618251821824411929830286371094242254376761143299159969423258931004172365354584355479937476882808232318462865242559378245988755817330801633768578154654442359990783395384685138323512383371491251401641553147231070570788530233340146771865968822140063604453443292840341939292658541032359610776199917906944742000606142184707454391056529015261721419379069894871757881822095621309960068174186554156368322273232662287391668245803162805510450179389191988071003132448204297873221180040994343636727654619630524709779244056107254242851955844515875335285419092068724185137529307002065406849195816824315073869943784235591012689474441652234754828260280323737354384653103137984786696843532574179415222115790425619883830479863962282155810077013263876966198365301670241267045319639233928310797752043268785519286544332724871646021684437425827900734755862246520726117991212344604576864387933986874234041070006606511890477653349803813437705946669680544287722639241116798669709382755905566531366187466767492690827650365996296961563868491197508363441801317345138685962579275662941822748567455572452017545513108174342214479604257238442189502431333399178830494419988195858608464410997962536179632443384867835912077606826073771871827131274253642973671799341846410000671136657130388478116504326875732874382186589726543837309327968235706781522200884647826602006828175058576973202730466111867692824544493016921865948683679810783392581694130048435449690820748687226883018883975998011634818286164946171343785243918683509375494847428371101641141211690588667209285038222651462201446433319412122126918741367716425875781500455031697512626615232652865485822136291079266481821886913691187243803324872522604357979481917961556881328176655174592315039475995014374811984742683928999306359863606066577905870902803901849614166406063509246532078098497962992841440785312965273503519764293945463458462554694136582461570932100462323475117623224312813060422737890523067826599333244435529965260686558449038508103133975368568571855622026427175627639514495237982270430332758311858986087741386852509368841072908956079754293965917599146727939447602692854718498268703196708769316265044266208729448427201365089102328672494349840647351344630891122460053794313627697237045312064407062634799074737545309202199063714836620600557149200150328405786225104530774655453019266850979312777285050557409028558645314880588329853608551111080050683095477332028392145978258776336510021796948359991033747682401919187390463342618360348173308743444962082799702247158031224379151498714108727803813403271920164205008026341667448838393950331412679772062374514769000993049535691661404694462313269057687829706301465496380798313559174730529803077180371931893758936523753754589885411810909163969583909054350898509859739730700255628783620851135016734268475602072136881789937893829475011193685707520064211953909067165452599451073193717744887210234277586973435753893945999197535991823023531897030759011920780832389354286314112217481560527533623840405603334833150146328631515499064793024466722885470557248996010479937342590362195248404027725057550497164274108634920325623811086841098113569161842342186735710671035772930335528085522998761571590948202941382165363086482567614582084161484235702926233615626694684171406669324177336093927080389862778810791945638637940941176165071194253287787150333237570471295932462844381370371305029198119256157111025518805217217245334125084509786818768312271387810631208043095577618890387134169889050398217142346607346589168702155894604810858099201398468055454001624328097944585787016549974308607276793389475081900123146064823731090188303177613985663157570958014497088588517835955800985324132034852419966337257521664139872581780628827734501842584707037567212759714207299597704393349151281958024234771409165280521848221729806788243753349867302042022690423106760147717671200649707424355148595810100355719882849260997242372855165007887156760420118780520388699332295515282572570047275178523487115280107097773113999661562399938806062142682835328479494813006798971966767169557107941808940420872043245921798916107622864202604870137753609503487849601556939704276355492861231295076752297700379504428896990661390291809107827858746217369778623898770633637861327979054935747168626953933144080016357685040931529510465204359565536183022037274794008867944006102967049228923458477694353180903258299583616754961784090280571036608241451000448717815148811988598344580670697957586807949188932138967142524773044886153928057422501126217899428599831019258830098588578125471181697933612312860065996641208392104154339147942478913568240359772772525910034400316301100901287857728484628361138644130463909685011453637690312361370791322742660565052864103197968278245134692472175710427835787403229481743418146783375545897466565325852070570930635151268741872701670971816374422254976364206129365724144429275549561562368393395670516992161633911327228940499431671714082983704242881365030473771798720916747415123744355137715891634577380428879147799696319409977826373545238230665121548583871222264367708251078378748599219023107094413442949624493000848901754437417156303754486352100544311969213999362836873329664474938665989893985884456744705573459023649863260027445351311459206834435757939865167621217993529558776094612056591138892300466979806939591094627314284271444472412963400401853696433659449115437906215818829943552670222821422061875335192109585557791988919962943721619505475134257505170719876897647272261709446641260217445595170363195394217015450892356250203037802584127395310240577926622897395821702657136161359315850940546547644443530628038092058292638598777278856639138839026502089044107726871196847853081136848567407064918967896576053240269657224416193546449506811561851370689831639925250583898737571399776405897017902437367604744453763335026484197702931892689366795713756805445396354775885084624250044476772196092383934071504025216545807474084147149659632439176063475144931753631095152697902946784844727157610327888178390258221304860658792558656383524819962899341592506471566021063712339025293355688368555468068815019744938739372717009392230626028838759609854971133590623047244321222928405754993599261202504676443300194521344136310820009975205152229806324960238368188079350835966031963180995524097056280864650180133486560524022363752132502263854691124433423333732477186540783600555887900795239827039619994283252097746156414966491808316970436280439222681543801305386704275666874861591560610783255242230085839991253363525987608905060357318593419235177485819501102967791643294880860750735218481747377551854550260133661000243306333363927589366746120085700054682383401596215091427070646520558237557166215649258818238565196267792307171866602906786252598638420769002762641920149866999552981040330010252971047410082863742150842814594832373906802829344806219308578532822988524621136918999160671509935208689396998746858280490219041945635759423274992204157155874596266752611448771347999861722476125246620109216577639393320485889396830310961814020040663184416142975484024811686218477493311448777992827181699363635063219784883006130606933832164920889732203503518419777613266628734351496287249818898581965472320685198871989701832595722920507526899989397062684799405645266553158604809753407608468625039824085214104448870444310155009934157758303297220463092680783012767267315852645370237370613981345418423450895183683908097945731551179332386584688874687029520311158637565884933848794309509162882391737878361957788703328365079578264330622544613345715122245215261738385610060196214982457392600008710181140680433258181870673700240781797592745705742751741600450861101124605430299109396899619811101611654952303297191701998216385332316147883791986962689967709661821171477864164100199936712022203080787223710374561011767663936229714624607876221323045068863318797296771319009593702541997764643394331355169102561019540060466371363306154888996716014488936984088507246544831329861799150919533870602211708914940683164827861260147387541892156959842462199020829565841128197337009538727331830089987512906316931168250838196302098290344821000497346776595468901787110289068197094880413969594857257652598223885281538473883911991888892370261878224361496073732654750476396741671945517640794296023441278922479968078037691725161142612494329130974009104409908511367307241093813644612756667739506712249022177296760800139953079522409384879842490906577614586982339122557751354881349757833547948413018391097318436724941026237314489220224713709891622458744447713856080608196878933721972521232871833492232017462964561208507672465466009888824441524544721418043944210491580152797709575086023994709869050461574579672851466364972615180160503596237518880127063877574277633730202996493634001183445045934345879576385292903121619697346356350063963346932165922378701675005992868770655480221409704892592342049640879992047279542369075063975186461597248065949186366144644094173613383328121689563626074746572952160180509541293690893503348622177807526693559661713471810467211680718623079961268861331110666597204602923096273906305404910835557661029992691007098251320640457818643542950050991052791312806965734073214584578552126070654025983813146288290664842132108380718878861337278410216839924729105621703967875567660917848016572155671967939709537359561394758303877132806372413261771717392572510278148238259424147893137587568364294807703801767135230394982126928154907032489774241301795798390715547110695328648251678697021401239816218546373220405323702183340774701398060151147786771559207197156042872702497867205038580046007412358735106544061395222697192928348361858990572805585106024471924186322325706815362760153625787257802906004462170553898666313024940399852012930902168965193124616712377657050810255332760685567928707433552077864735685881887959591638925678279288245614898061196971548330991427676633202466878266226905486748349693995721995788436905089681005847155199417673384689231027893121140937808112979478823669088833983616666424820586208395533796407882556312592721823736431444421487553257908587851456046614729042802931227258854204390138808279409065591176985880778616177499125058433556848504435015177917679756224883311497821939518618401731939972617818143448834220396879932222299256464465933040587649613409663108215875475021977193303922230874591187586820941889927672031726041152559640935443642653512820022897184672404444733494712447750555287068182396190403090824684216953690966483921856718498917933950971923628365593495554645065893975228244268375705405766313073886891778076039168144265560499563492009157423098755614449679647483375276566025865762791505038131031350741488604099448057129696311840153193499898488815108249072038720655691010057637179950223923691484084084002288320777912697959471441820763810513325144911487653126235400289318933044621307475795359545673179514631150407850952958212885707565702961793682392247241633348560810338842405063965936382646814841980835201537829131970962883125247588354491062843878197728720294482758010871098972863408471494553401265156539930914877958076786946282610288166767643080140954237312511917643856751172227019062671364765267231251596460967063362421048157499501887832148151255080357027458872603462765881680104316082055520292189875181391777268638520422223380301706237482092657594570502459619119747033417448707591595890046886373470331235001018145819368662296137765715998692976543392855671808745023654917239543413863747741584856324926123366514645719122255740935841860337734857765146041005962038076606421081003418345986817587388725352356688420039280589868937587771817587199122522484908640426096681764107946505457542896111486897667763931229135316135481725273826277475520766447398718011509128400657090987275864570135929416714091463195882209037205381548781614477959661279417116101300001257013605515272840034997298215433732326452796776711320082348952418095490492140742960926824343844104870595067256261095904782052461448273405637412114742057376581443899793405184098492028815424077449117245781452313619426584896287296174027592176579154190340498053640061702316732592016636967774842125193840821190402288832057504322039083098294414974680153884655810622306933163706979574824716348684844946072043136000545366922266304147307050738076155811827726970788605515061703435063946717275601359140645356007024992500848930276242078917229602432293014395356572032046719922121938479122960112925949205687901123580461707278061470094363215532389192516927799357054164517047797891653442495365243160572308842164312117396784495222010049454196499662336500622248029589002798231654021921029246737445016583802415608917123098394324677375733685601348305522860431998577306400723959841457123353811302532987177748267644981614652441263285652194725327710448491561256018040869425679054402570623489444115686716040238058536061965454201674045598423448790054571859500818485010828557399699089522618101675307865387292665797155441602669217715255202589801097220946497701710222661178611269360232413384134121193046540620036361452927012049008022037689425385566081268625631654973466905717411683601104988783925419505531215826606843550603124984554001217954006969210347211456989954423292428411086321978214884861243694041691047159186676134385031020551084254328173080989803592227942340096539629910255860439187356757576428591468922172670768433447963129232432517274350296299880559808811894110604231826239290617449923562242712470712376223124987902986204560861771926577906480837817292410064126236909440513160433048350406520083840345807112277994009183501465614231412676385303598131911161784069494909052267502195901073095218934839070518342602241361266973119214316813645863651418786529207155898568738864172652618983521529074338666273042988721164946280352532041938593557366904486187658151888889274104657133417899050267492169570109500336128879552204364474291537371171509690550025765755288158773260961936180382741270218522593345443910501514625341417139966993993590179032327095479467533686480661875292892783381290341326512179717728977612937490250901534669126478339042524889235262110236971958062562816164329996236993454460766617268080104448535361592880856034176595707761272042044619510130660313320224133467535800972113831772461889945333831699896579848462627937456797578100731972655499574777518130230954324542691121090508140703371112934964786950817315726477971728495368217106245620627761814283268058867764166328533649060703544089129576356684432482301222120817496566092242677770272227438246026739541074016917241562136596181634771879776741100475409921995302198496091041295135484613820573328904415964620675938472432257724634603555592018597939281111609655066356071687950815109001938681406425964575000961160122679183749120830681179823723456476974792032019525327826236281693736747729239427725891693182725070429656743541918986003166270851033734087625073181769668075214080715134097255382998613687563925468216218763334052176623119932849793223130799942328382911613783469974607348259607597140865459623650003421200875632994090387026655632341549005445035818567515522317265853661317146054418564413561439143510180444338052940482822776811459713792417667565506196329790064666825930077724983817334477658363147244479597337670276165336460406220678924026442750415531175537844915945080658431744338715951900357970329883696082860606665008049193700162964990672818739989571812181669579257345655498894175670452174027244213414098728531449447365808793819131176444667762263447187787838782161759327479753184933134276159614427135314308158776327656148401125898356369965129065416349839648739634096569560944806580577322333354077540472374018994781108544544191802306599812087750819095543262489968725464517043503785936162562724309296147002987871377485675887271893369959054918809671844953669986848148329093989520551338213861361347120335794358757909791780851950736004746587888482066250785981787833825780379498373793309529974493793420076867483195106970022683155128568604636538808441559568647070310353254158556005928667226485908683849148370292043800636645804044923083896822284894032186425134871205790576264120915148938348716979428360595649515492145909844351050786275855317487442084604304055364569783464440045762247419755003461983588032794236910571406844309144766586138918030201937193286758650433882808794802230045974225737169468255559639652914505780517681881102566501508389878039759531543312704286129514348607777880213344404762968957428003893675421096180068505057242068075404155661792806995862982844534260787024843811972098635402203405558327556179802525033838365708988574190500127308539067908248221998124311084736695638183133272291636740158649716247306855901549125780699430518552026539986505836435685321831885174329034033930961716453983232872792209801971828113368612685498917895699387841501707253786775473012393122617081656589591692328857451460758512041052947302052950849064338505455753746988999310218844600516814990131699655048556777009948231725819582606480119803398057821968900726640603492899312022506752937350290801044379174894889156008755085604933189379440124872088632777907734691076138473662597289759793011596166547522485519572143145767976436231142437059874909202987535066561723001684534397172178109914340415307209512137354623590537730874434901372087398081194059178480911928858992644255088706429225255764987907180939473090013701420681351467931417602229179911387195043287724543867158725022491936335660739553222678800570469875219514321245021752477829902149727815290054586315152894101797241231695668343790793510335490266287558699194003734987245278784250244833649429807669362835791400711935687318631955754183241766395928719747479551439700562622455462994674992770090213349009912777855550453796954818343865934850862173751048912632343198359404922946836338026784304946693805584583165870430244787707596257680793435169076167048615482456479428054896239138543364701677319433055099588022165148555387183212967675371200649687525129821274134403320005572245731040126587274517530355504709261129447940681628052818292591796548528204906681650031455935197468791173613660625760693624538113462928997879371675449495904970292581350153278494526149283675896717005024253340569595797305374259474569003738037975319772451562021133588913353828988830313248305767316044059197970891459975512164472606422027543397973119521042650958147891308285422028165535358893542218696067945572853926059832107148026069844831356494862506359244836612641814861996572624960843732600143513037051572254456948646092657715693656387226861235823015380616423155947418666084385031558197219279938368401463562915914235846344541734321036643754438522672613414641500520483613813894093651946572781447645076521775644321299444614724340367620103995722062968998926542809943062851495934580677331799488966197914109710623055467811053094820658668690418523915485386971043480659192823898125724916134248543378921412848103744709304949697841565952666765670117858315873576808890404719466746443605000521824896364309903189580618451637138198958255172114640202878138170004471174239441397260787004238053689811206440372146304903598575784350305651480793963691120611950850172236866923370667923636274130197961247924522662660815525411503638329342898604060449962426987987099230399564213592262150753376550264576733878641564578733758372496681955487432607027033577375014572416131753887818321787544062608882824110926051242874374409513664998348144660568497724987352410317706663302609187737730062218860144764158615744473307446132823783605952853853127589152251552979239412174986768661829983686722576606384018075467876537137454942416834108866196099792792402275825489708325310385936042019981139822678807407003582398717337662815202456791990639505528156439543422538665314143088280491585525169477411804908792553217963462235245229560957199597186795469954699343588027371483882916522706825304816555998809462562135599372130707698589660038591500355044324457031107249490423696375803082275108824337357397273507067133726850159610930067312148369805781740784960090468561122122121928840630210104390636753746867264978656042419729226237948529761276608113801670271265363690784771094761593158353315494030120887587624121423720520496282023286417245534716303045270914674207477838414964120952852361944426175725851915381942080589060937394081481611639590104971891107001534257215130133689540546773171233603828029874803591535489414851602640931264230479625941907935064343289448960219733769073097867059216142052617097287513107316531576156070087868297012872498483867393017580118986660883212680609050373766050880313732999478343158086063314855598717452645048066551019548416721415039588375088941163922051913038484453844076194174915447596487933097753212167915021986842666730773583050527459939628009166998991964000085383642214620284464944922661464693759329501113279775399008146281491778190827336925371715775632548950377804601380972526590849753407139653569498128722732358320481499854554024634152918759283186536890230225957132141108295744972714111332573099991023368273863825982476781404123071212858019616432392330178380405588763732972055992446916317534173647778315088181754897873682013191874823402963983147182764388468165446791883953833072369829857182023601932713034257843742709380180343580926366597932574012106456135273785995271858484766140420843386247983011363902817430864962292557771843586184328028115343431668818868106545266757678879820777297827961297128697901786864714791410974099593460573198605561681045732794080529467769748114137125082228381247829582966325665639917692931819635942518388297355783800113072308037571628507601727673591788544448075601637889602050767993876689019819363811231537309447005557276895162992795792683463265819519373087892241411084636175001525584185083490311022672071966538278087832866266704596486102729323312697668341412709953175949074158970517581276926114416568388545373061505547318400949364763727201116914833799082938007441006937939550641995216600974246021908024228151302332907899785157779411866999516589897104722926602788182076469279814135740926044837574822243656068071560622028463093110703245708665241828558089026568692312249817363899454760117192980702809065409551070544582072770604362001945923909448175192527479225993351317506434972401844143408757677575822446745981324073596718116504423758640346598092834242279850348587449195363556896611673439913510842168978954900116439198700766015048050411241446531143857815575078981174169477325761823762905665718754585594753955164935053354845570297869344020465873206555394501282687186123165428411177054698102559363823824226951942506031705103526804625752820866603426962852371117200614756812420556584353911688116089527173790513050493057568085713300802954169277657701200660200254423150003404857700793854742585527979620715524254775374136236459377379799827901347898432434204733726817314263349098609424072441534995287598950774424463823794408772308025658197931625307403988707996320753144321120945139519686295308876912356764592006780969023263133024748052551183123211936172926769283198692949549537050833761922392887435269208812902773759372599600775216210553265394449852575922878727492568355609540640566372223916717843647758871630540483971580851216493925565257395063496557752813183847186313296863707700100724880270683184690576650214665567388080265467606818300796316599272345688638540805713623414265198947933613232056122954837376440819815878131082118658280224837763289289173620872908690402567752041779541666314879079753745383942427990011135666499454126623275274090471782086514898828886672877750486867783837898739171538104941922769506313709785436388804015439881763297704176459827114031462525646549705084961325910210103074443034160272569037251291710975977820389881129785832555206321345224057256021838193431434719403564793043209266143963613877503654920957952520444878668926413932301915808871051532960649086846368940480774784392755789185908054342800671188097626446923423187125444552054080786753871315696418614888014075766222248664645736811808851002036872082363234832900745537615008256696112330421948680810578115204408678362746944271560446717932365754958005640606730297264786554173549455961129547381816247326725344205096192950614860640235138396207536863982892321453463789804123747105261981508830802309197632143646615289819547287366652446484188536830058565518860903014594502111502244779282696866946799658290138391264430175116473706540221765296812853323008937506633221030584224355873168962032286781953958660352823256595761908543582738328609784286803757020011894771264609157654474421944109423149659652771465110177273710632930009000812427312717443303403368534366881049700910746188373710746280486858525562305746880937609115181739934747853177525780615051508123241015403952094576783392283626036502158721995584812180965839720620092771847246246004704564784961740440884077709819738502317449196260032013692370198356059046782902285225232315538985387760900704222008272841176795127481625110837546529919726941276494916705938275672461865834834164691487354750991705016518246568522782360725285205450743942872331839736134151576018808498719995878738995876522678795233017581135582837935530991813098878986676327143790034064103641322619045617681452918761466719759940961513199431458448070434582350804558811314304052018796445772993177979784034150554068799262681857719601608934918219153460689821107486964594582087752265258648186061616550546861299097812638477164224954469338095408324747175094127154374769635275847340990331130917138791336287953934094580052681378898858287787730389625951547797076392515594586606927818463466246686461726916604344869410257720460613732198105802744563311945376787522404751963002544736031980608846137288029383718825587083556635854593731808689338984672805188586783372807985469979478219850412888997124376213672385205562405303526828688733054836167627110323370213992810919065491053851152783197264803599223111187188248969587738708297850099436385953699999223638915744338192770183287363291640934628465270643783261819506106660494360014101927245577035685205764428264617207070260705197930557532478847062298967626675455792333123363972909520322026557955192873700785705421476078924767474446871307076687573003731573983640085833946766048460336403807911612898490422368987875668748981531537954721497495774760878329419835874595472633583232958524442411168980570140862978961784911631745811935267107281215693333275236664786732744920378244933449492253951826153602338606648582405647477060286013911894192335215666644874170323760876458071522290678270664112373851170582833760289283921450528277854736883326437066272950896404477948955617461553363284101345407271455348474684399816899851251726510707402897826858326534067609434069997959209590131839385482246097074409594538337519311767754220173169586872830044164963963231267254442337588841644869430365165946168092637533933032369996222494873777594491158605106875091378705021946584783381771770392305794208255078879320322238601319845617469878431567228367882067634400840796941909027553114467565837887699630949901153104933960709832952539997172135740921032099292402488208540611405587768683905942310109994493263020128397579019649093468645248982734106077823835586295990206834051874153891546953925704588312216257697610418806579410974724541353224720664857993416313651764935315897506472296313814559740006914250190839421675857217680783253583327640253855407429007307069812168604346432302582269506993716552432865612802320642276247466956466659601543127218597180030882656338050406342095559846112564864215612374861774347903208222052033862317083505915271069658093096163278258612747728648420524119477225669198528538239531329174094673810293071181556129028266418601927419309836420175228117093624528772004272285524372202355326020152009449776247543712211620764016997244217552264928984360056392803030668290695192421896602021887291160865927741412861763197838334082630232236936090420796344411374768285847193217090402360036946684341949537930742468854217654695142258489905364868401121289370093979112592338930129373724768723438896584501589846158309474937056929239293197750365956067439500973677646132316871193886751154637656368969366476658043644496859330770344032187962017694974655099224627421774270869000328219911734482193432290434435449332173543079202747055224925946521956481290835977929264442516974125362124805317294544208749523975301574083928063362502242122023467183066754828014626759533382771623578786070359576003810359796709427447924945801762832583066267555474684432386614327949022262247421316629359706510632194403846815467949619138939892165919947495105301043837886487926961417713923296632893609535339180256663505564940042161894084230673342258204751170605217977010798609459207587337738084465598216937466626329687007612714359716487588804876441394135783635649027648269074454952135306910432615352606861998222431019211381682909113371165755093873060918153754903929012928948693792439556163844068172418678940377173210456974147454177691121716897294964584934890638500469339488103696351434146615627398327653882281568481514076982704785478302591155342624399472068133806538187957268828508814015483803588632138009815870487532523701287479826114614825474418439870697901356167338780005491954121935258928803260744031383047697983860864463745156685157311401460790068415457197915712813697180968896552764388886320476709013212603140468043824709923978615371582203331996299724298497330499059670891500388802372433956927314725336300000406854392883188692981017373003587999727510660690629808454387596659312757969424172931254992700500688736861589419908028022903152526796519385718464621017457960720195298958410241815643139404616336029499832849154353435400123115933695820587278235077211353458730797771366983883645397166246251810366117923925513800687344802831906584162750676298783952207360619372982442103630847288168527629146737323285848539981087072628904951631092945829014603166285185311507557414481567182097115309537396598408535114444951741763303371414284527346648748228437696662937972032337684688105034719535012036026612013370490675279602932686360838113627218910676498536448715000012874020394945088585756772726153682336143797022140305379088157176831474940484596419144771648847564468870911829659995659518394633207438422697604607796739318933828444575092622537417113210937359786901802654265257743639829166366507437553977815068789360048815595856674609190244570204609155760936501818343838139143225448908507710960170146189088613969881685330771421917466915593116706561186450016511047213771612524329160936397510738064438588864576541675883824961037869361794375632010972401625616869755978536013265159524635241894367154720335991661273752060724349073709495199857050058602844071785131884015314151239647480361983872016000227982905806769102382175049041136139966134644356383286981306523450746732237726887004677151874309671323271420219255991583812687076807468559960014339569888478878063307060815600383853465934923010377863380273397877660150349521329845818144586745101301424252053066138551918408450215459725292427642502473964375603277926482986319869722431384125222519647732284668261521360820519199114041606310381091170338221518295643492929349396672187231022665956545504064853716001071629456252362975142898667211225561050138561337216811061128981267931093643794063789738986914079779782820364490944080910491230883505326805141381696920909490624259067080741711065978396684346616243804736795449572293853751138947483840079005050394434468918991277239670498253828465000695686274843710784338791021660320099705772262189719351518420687900895066657820970209252852601476790201140698145156442240197912411463234214945147761869441254279704403237818969817970503946134105126442905485598195985985436636035070760172359776978861777082523719411561451927086625067345811140660188497142543720899284251213900772688074095740720438849611533366664542812650991754163481499848697715956043780453506788669779217320111850244201000102713667118184702159903639563730605793792010609814824031484837505028887470622894325157998963017733836654202765553216529692816024550132146580132817982936404668594874034730842409089065964690306990140409630091594767008735206171261245157072078478791279975605747051612349691799392447508548912572420095397355540127907210789324428392668168991637140576967130485112275125357916079102753917163304691248892086390698098650328927353271542721701532556449553975610728006769967427269085233901097160626180048133083800499030594018885885842619755175751643418277281781095716180869231289309961385398770643667298155831572428732311479351014919835692002554475904998774982426388893666814257120367673517764571818533672184834636681869372624131885724491315093389826086681640941996391731751468876378542302631978286468659749272206337402517212836425309909757550865633397714741940184312222848752804088978599743229766791515352173002990848702966938169726005011540246320831603728165426941268491873374509012158302557579143200392402866703922643324243946642819748630686088983817947805563138966901776266397769080597911816822829740918877997608656406575877690698105868942287225306599587657096990666904249822962872901095481017711442520373562900335029732622000137512401222497770629170521412951007865655396079111286708348278887943082245948207379684171778413246654378657408622593330620835860994211339098666437070077226259206207956254807764677924489460324564083483878062224199774408941027995187696165190297600444036399730265005717107700834628639693756083070431369148077467306468449125790606196757085261477851110273104720415732689596657475535329263531355765774823230835422172663938868567196720025170707760892786949487724643908946922136487535154672640718133610913397952341113973413727285300449454540874925175314962774469316976902648088630254977089807065648663880682936763303144198536442824048000914950794817458976998992048522381272996820514766162624512713949786272474272521444488205766169599656765253695411769898932773979050744865908127935720147462206545330070816110735921744640377501480359755064710192306112356045628127591680011433128726258296286359584878945332671029589732241722225438955105591397423038584570599873176345216047434309647864092258591955852861440395632128530400121073654153432112283109248501667151088822880731070675647042898497109789975511092345749539754115181263442673053600096013048442397508581826804974095589617915611899822519360633817217345825364909210604699531586228202426265157521986684143951214397753812538414989705580003725200749859984734532264503116735003252889322349232931565428486505397543908647408192085365107766855852015940757512150632760530698913907510323053062467521930410310558364695637999138984338272430246732728958242629688850725529468601803000087679314823977068462689082993365098392689554573144642331321150912722617674323321087873884009235982177719799015313775220780534089644899506452530976920922223678121373581214169739420378048373023234560166167952799793425114464231488359963425821168582321021184012529466324504972752853637085551060490257785436797472063575783061575927847323593387538796359835581388255053024900622872280603441777037361152176744827973023684695508680183962679894247285173908430296201600484743748574886911027312730174911147331459885453803696492628474651632556371700647664966443587434777577950978389251825714086806825959271818239594084598775471481930369958061900193532284517138815175971386341164625266335142350087983537130149599935786434939962664552764948486534004923150391515041277675833409036060764614402380877337829472127223196949668268070717690809868163492769410624218042956751181721031844865021473788116865535435150454911623685018829564365569425713239451716048201036690279169780517213420995955256654223338731644200239573563167106366712437399007911764569161829459197427604488151299818488099466456826975593405084517862564158789194037313809209620713556368340249941384912235404595739105520429511173489603180385587128004844036526675017152081860149793049563871699939322566218277269814037733184303173749273176599903058363326374547640396511585828684839255542331719192569109441604236809871402095574408709445414480340350040070836607314462934604656490075745535137686209777834900331608140858323116717661673469900310124277530168202099725055580657924215719648405711232387347213503278676733758611226419431505192561820091360509215288183142772853850185797087074027874776331718147280645608169949364215291917173221911415640593134128095186972434706025177099994924030732180041231941968831299329658055717738273991753350396578518850529758647567330944138478787134705230412732193725050414055067525266717235710102178068786098101533595935009512734854441497470295897645058937769475276451504598685431688169176893218909914201813443736587568017831757522423196087205099514842081141443901400091283626253497907627723413004831304435928078021020652332343031644385525718939874654856833574962458037511504113978245317032253179145056278336033029464615378046943964079488232614582574213505060674507998728118564979889097207123330456249988137659063828525421286996902253619725980218749985756550774871691886529469470759671299920782148569719489439057575979071118676815403548792646504658285116079141155924027064021256023941925208106842527884046795035052276120168355057709019072790225883474524650139135367693487911385038792708300630067842089548269091247945762598299385071834434270740469031226167372962922353447268277088964741991416604630872282028107731277411625332782576737988463370884130750154628438128842504113591447947799870054462748768748224372913311012628767842590426699675375138267196456345302408648766792007253941484690754096087062064530258071050306974726635800671927753451935316868474105054684306487693250782684979959972189478431159645490649056593584561960020015073426518280913608142492416222157062327246528342240402558562659330001441517381032786513129460741133151056187060688429770032843805840716572837622755007518083958442288257031895594082666874503268635349464719231087922268942392696065845035177477325348618896934912555212631657484667452132924794977895009959466453227762993867566713820769070624473877441447665026135769830760295743682734171382913337887522109217946877111505877105832819297977554055931607760561676000317163156649670475654516737992097673588768454903423232113954255221908515680656214958055970426173895295777271621829501571927383248867702450831617911371948789818480893592581624873583776085755345931634493120106346573348608610214929181536520291569544115771177156726142579322869086630543091670574728816929718073251800970024409392771857164726226863466564474658794222891356109841042986263295092121103233034588253254833208661640662895865961277765504241825547063576713249844297581191275655209829045892920842062930056748141760386998797250533871829050735647487378720935011990217604095152342965729169534589778834320172512597920564021492708302220550836738137639173336266022335598914199358601412341613282646034463532106877087478011860516659774813281732849485047855198245944096390318805331727344595838005801342834082175612332628166949606623720550304248465378171991780069972706902409331701012347349219071280295856028608956907659851793408931123760455718660627129117955938519896118130510298231018136885073080659129897819332153145424078211466207845266109663798692509521244045136079196958351919860132362538438132464052783155771365365552024110939619383327881903432027111736565040171349368179327457140721083277151782527513110258696143297933078090972723678307534667208336487241712135791091048299416534137439201439273535886351687359108003118179639165172337389855096005402636288796003411310343024305182551308760782485972614585115343298334442727549683003919031333758532006023716110782062031183568669691572739702969564984769438410469059749889990714854125686375114068011235950759636578053120864302133673185569713345791865508456388067250657059493545841094695326094697446261560177291855213853766281219599711503501776382881569467688236168358959080509289796016698010862201704047064081531174362061534438433623814204716993255726730546235882966400114520864125929585269933099289319162216010075188555237993364296634915092139150734903950760726856562221282613453363392206415578457327335315589090287863567777719256642269599394706591516366353708986642086123579246695822607176576540980335685177343839081078570879560270105535114973348082789323963014552515445189942160277895252279434164282362470760183286128516402921793128945716980996472112457726626883999483828046863016760070623577862794738878748434149267114377958970048325512084719420792614923214558599725517418914554546906184250646430307924967050953080252098547493685604504496483776593808667303327098301790495426591389581509220141197178441111657092023557525895283273459037240644026103366798500822302252803473240373323539447476834299016771607564180591704683306792265307464817123507036955032522215607699263381553559710496582298367073660641747251273902711862420791855647299644769610056720996515879047242606749414743998523162309906033474937596215976225949055826631133968811307972482543402837102458869587362224435715765064304064539269407280136841410307284655955536410740980659939041224411690333583269854404150246725419194900385506964641106735729356812882014311684234186046552039645638014190283180533623119972307364324903776773974798708768645366462453617287984216423908988609148960218017277160612580998536481289215926250012765329561952868648493276427216122377205033125459044634013816732869267694330887992883806130362023097462646678583632989892877517061297650339039278073082348929072925263801811265662936025865939468052759337065863341895069984617229711260087628587842809289455729132471758621853144874178033317269183356698621564387851290226152586023665567727936040026748140555939182813500725077891698174801317906110046471369570604626636030104117654158291640401052394046657015798475207107952778993244720692012958858327470685209824783945793826058463749358876334732508765037766091075828143990328301310566727119304864344887519964685139020836904937947156343069721347628342265512818046740614198269678472505961017933550168610941415969819088128494418487197037319572532764098277081863378856716348145837291248997695299563749654648035929210237868798308066773369968377634197855618425890578406977036015758208017751201675116143891399131236156804390264919765416458859311362142821710476663870521992744036237446813733514048144420423840732126292808004448566298088790515472393122286772784563923446235684946469433334626462626868547132931340378735171251993995581989338547577679314817803760585989689933166835048158894337077637442014572268043541730553753992032435572459672280315239333212232953477195080113506434400443997321104370521085289149695718974837465428892317259706997829503945830124659815619127884131389167724413390031450600828586930833637697731184187014929431037204085879343166686318062318570582722627205334166659812045199496129457076371838488031007651227505045333300508922374298945372011228832301734540120719059844409493676832533599789633672493915562911054340445856497488885193678976376304792889279186219684620990315254521771323535362056889647708428305590646896198784805247138401698862086559583556137459091537148807508544899925030412608462676113908853484040704352091979940535752320446307799761637440175152645675674264114497862818006801042966818201212747669777190734738438325878720933500561000288770789514273564308557899160998309909023867186348075642790114252703578859304894080737619106289013393667550388597972712331440088465101321715541024772018383466804816817879492137329361297478375362324974488981408610059201471999135884965459695971067046342804579603815506236879853048013282150736929241523685998028481755058305588440080709050811678185197923603611263388892283380160691119915242457120415324839978956538311734608548062368108522418142347739733001111291450611176624541551018696301724421354945382348709807230014547698996076120599927117770677734515778202665391054271767872767742444586767785010773827675740066031000798803806088467788834575247701828712640924692879301669014543373266826624651709673508615994531202587335537584006692064867963035841224509052264070822793488771265410516484888240150917418070543164668630218436975522844698221259070006916478362659841371905710350343253959614162947785849276215237731616471828189547630878085015720838787289955616838572316058786894672572828468800130660650401424712700058612178584615261758785740958877287131297623712913689938336390935343958341972695536219747932700321766897796215974264546748106744471047466119405753961210148633395604405659411085505503684704917509842215868878212199069527075085009049937148813412430272885096671698495987992614371792438410321080269606410400177554653700671390407975064059459147885870863410775096224303264087663921431017874293296386418267273072798669629575911953275749382529255849159992014541365814166310143113233646074216735385475219963550028225423172611357696598575961356214529022503349358744781145058131674409499247552240292708018277947931321001789074247605161362450686709483189214663185133269846508932026932256398747096240476602423396608734945199290238825943983467207651851070937965021287262433453634226841904146661214458416731553714781283453343123861845120919245983167227294535777982659563722418463181077602884692238878700818328132208758300852323100164961525004682643884234248664138636636854333425536346896491904913499858258371508811494874153308245565987129009148106316250674917499846809336356735258491607805524686177286339339120985219195912147845163506661887263572419272940567574816053877321502572137504668386700682663015572293304547289848737313126272681848016047538113917213266101368407491210858101207243184906699029750387763436133130514237687109681319478477087644562014569668378112446130609849713286594986745278617168552238985238079530258503973992249916084274527529131496142302609379909580661282268813125359032220005874113663307887584731475996842981623324719956898213342342436438955742333824897836661613570632755213343606581976322470729499006279431984793222695297948150225416618815249755418741139948396083415605884556618162248969820081431557542204646697223429488003806702593520881193319427151002956898469782015857029797510389796431528929041202851009984451716879109165823221651341316771155398754632196369282914216342031612804031171886734402460362931759016658150366584854344617913799171195264497083747117344429546346245238274007353890187478033891392294773563483091190724366660827737540705489015873849066316018442816159591160720325210865568470942373149555622946806993246287283504609568599806557622470208307795760884673909151789451813855033302359831926541509749226046990043211513056975658468986047122484746718777412448113408743852019325328220873520602307616306694730169053379360294276866400134237049962312296947009786906000593197936331439634104149263689058940681577662320740730203816369460464883660615426458443648799579622169243706280938090419191844556460765685768559601656378746615122700672830788140552968887092316815240779480274365445183015386573379437667019278503628217966472560763169363272899712195985311484607369026771977540584544725032355607508026908486686157060533516139225155563067146507991613259596071627648191239702578550793391549583207942393904862405054099272163891664909323431420530049599753707684401410186453138682315859228267226422873314405050225234470617267934364575556603087819971435652559588326604635119389025187601034947217493339956607061816686758995342193979263492480722300059329656429559727635208016602615688608466454283725126577289247236100377648146503948863056641100274519962651495913578890527293882270442631618784849518013194730317244854878655245489351649909894153208714445861573918654594737550480183815299656621727085151958005261470630803546218209482160578694125094722615906755555082573177562088881928997645625045948992187350709796638934026560728292645887581380437302291042371181104523318096270889465393942789630589697881406923860739961328945593400022553630977512601345732183942483629467235278650774044229752681427993411522202171489729941789705195980137222386473832807225001898494353000349587754816195502066418125115327286473405553997272442203784591961536656766773460697904748799256896327047441404540897504036211694117095241557925616871608739529041269130492664299641300545952572679255291181081074328147580575292088258569413448423074196629380591984616721896408010653111217461395415922766053937590492022053729870773824938338373868212312357962306634276065224768393255824462417949036979928336503533928385121915748655181926584405546898244294515193429042070309310439978342511534093185033608258084992180104339636430833806300945031641307563691566655382143017171214033347734025908083199526709112456805786339247341234857487675932768098529189979595566165695303024880766521674228369934183792194868927765489320540419702835756199933364827363993926946725399889189381133294169605923724071890330390987111270655473429474383650905028662885061565373557976705008508884754692515489453595964854100384008991250750025444398592389330040206733136530553087260021999558837722780106354530615909225126287292047744923801006323594677667186035229646063247070262801559637421465007997965767505614018459290304215711016215279478706102660463427453254660044320875120291336505320595394194065209587946443646683763473365957727195590783056642401279597615202240609572384848048304097314667772054882125239604005532197411544227008884658399460463180194393122917868332192378957600717442727181241854878285717632906365336680335601734079021873258740261374136800581502102740828920248789026715694950078091641701144797194063018818599734929306505019065252748070085527167529586931246293941317558586589563662080897540427570190122711688680049108812235742987512065668959903873553396745477788094279404636909870693500341062467883404057177170998301437102187637205550998646225659215388555858319281795063859989867554465998069581211757561310040567736814485471544746267856170891400274032670089305122678451038521579417461941305453114778248080425307641563653780508028023826382091976309344216939035048230193463575987171681883349328199012896690961167980488892290866137806835372359317696477470161924004867798431945147133038704736622899731755375251115500822916247428975923110217672938907562492403367052855781783475111099626957019362263758457663327696298134230162009395733993618365725646709973839841162745436092450127286032024826293578826758678410165254190093486771178949316103357349317545159736741906424063781153481623189156444031545534936823146056347161339255658723960773633843123287677649507150122351004630073276279458070772948927726269078207017669307672627486372350038962006625042004997560682571920389949515262751442739151116104745760287465105696209142187043269212193698351322872905452005242865836598539633049618306215507571413085098046177236492208791930572642850339184962177136225181627587074151956265268829056899119912027940915607234407315219659980450800897919542025481877416967342368442894310953456285732509833241600961820400448731008164623573847306812196723850052842318210960947125158211443138806473569536112830406607478120116318643053020635648587468790637197018988776938984353364298710837044776162209020464153265764790867742604216037036071464738253687609649500838542804671969523211740406102558591494797836828345244089882865017704714732240984502083689030095205184173914473577423355586152634144897906547782380706067580482002188413582493883933706409665409531085558724809155545678708446642095894119176450436093450048004246127193509845023539557436141662463785052713435812567792174746125015120713599735611803025120230174020740490269373495381694091873047716322815374000010792252433975044488963924796416632482938762587520472983862368042534175831679600898514700864805318205312095535478753928793659936266971531707648019693532680544648769006231472722973602524136501888332525619928469849907597266583407163009053229708244132230245999865258507290506216796583775546228123150818365019252870343139084768359827690612467550289670377194028624798145547484396625122378824208347595666439881788261084319783332035243558340952096956362703577907133109706826141484704895830730014476273769401735215078795847167515434229198049870738937165928319337056229892536824852233565068585543307031396845911610678555876881088218783505391918424583541143222704208340653325978300798626127014269343546267519310390877762812149269125545045106842922957339581556382412203877725411750731568188414340657094504981230716373449737135889463941006810002124377178726439192800579668265015368807318830043910452759728991596067394874778709378539677925679450567391574503625171052406703961451081275195222214634173549149605188029974057478072726575252258496481266107543843266917931110558204658328925381743310726087251590295537332569773826136544071165444120250788221832570586660335501456924844837937460351054784215923624715486121661766704246979255562302894708734248631228787235355752846031286141727282249515301916610324549006152204862104933302984643480976245488166039037933401446385937159486677959964777636901712843732639759643934320651143896984660262099805092757663001039431944912677848778615188909679202768639481772411413100595049092090033107026214327856969694200144803708473779498973636422370238901364026337765488109063129490608479598290620413920635621868329608797973955016286470917344874481530494693908267783403432928117794434466363528864730792927810060450654191241739407728964594458958260874261102518029937553026007723129274236551495886304228549311407375485799654002494777351423764007808484416835573615481000413234981410702894758989851772864412240947025215252066608761130576422628547627581044415680128914955045935134691897606149990561896489288009303178314245036120774846159682665374467885442512724341528034620491940844551686247371340346474109138138630369171438166741003831509328735365998677914291712753446653974149926978028499797028294235846470881058266380416277946355955159438549540767240165222185870079663901045752877182272764271667521709505835899053259042150444961341977591009859969550721175595858793777132100333352204471380480926954186862969199567330337756431723750630253384192000061444356506394502315614957810026294769548560893128065267608266010492644530251023390908948631578795905246829553042446565909513796092756524722365746953871006773737259024509058161208797579186939750252169463287499122628231523231795526825483244542211251277672763866280141520461566769663002723235243866952286648553308197096244250486439511175191429452543077869653329293416918727423067457374142574082490716949851763254123315556243145936883877705601140411328979379658616099612397908181065690787558330437716781969137777169345276679775871082139406132561630355300333120009437565279436747962673946978624317229376138332781313544699230784933471438888939655420364049244556829756996931037890985306311458271936426442883649750221844212308281918745289401823345150386306695960947802369476664684794760078982247377218672609619259436590764896496485265022100672751885677151603456490780509742808661089893917953910359722621807524168263129314421042006114059869708040212038292884735210399535911942656275065010649648347427141791220292295897754330920589159295269576449770061348190222765111400999190057803194937698487006681962116981772908143012296061655855050016279657350020996407201669327817282120449910507503632019330145993516126517997616311317216386684982059367842541794409182267680020359567866759258536772618959200776753631584553975888185315428641982801917860480861795595325020342929832261613344176596397124053086996836680223934644946366342375243398961285350238246176621851740217518426302584314667962116925206829961238801572145201392417072782308018030817648120478078966722170197888327497325030841478231653041565752453249126198894237407946568529359693255068899628270551008140155889638679858374438478672627879942908417428385326110980668742339343632991752691580207997469569267847773056508636218576891497179429466913633457678006979082872518781437720568938091170557456024746586516033168143057566572095971278074299313029660662412020035995318565255303834943424194750779552516549046278201416402861945545595809379038024000695922805473365645891320084573894408100373084167476720657466101619146669062579842985644869863035986330583641514573130696523381910996958205445508444601524430086422033391200221557366534414878283300595096499020039564573729846749910266543709676493501603166208564417639947600167876473071179338722904989644578481796769831684246268972434567850412106946625536987633197120868189017708152874307719961962659886028329965432276657625415306678178510381441820469815771566027869729045274002454771584203447277767209076948631159469786316097794780627268137844291742474491761662769038085943999461434076694737992548181326078767813794810585085742908583889184250660166028497030786212625990488031289380695081188653480663398638880616823558045120952573560677729161149067170630211061995626229646624832949155803968587541150078373834722505776654509267218656962268495286787792550222534540500392254684138960086220095860144435522951426238399201369909967444262476153488714595868071369885766317470536205324097481170601515057276524317107841768680729799324539580910788486046726597846393037969154132101416972195599240082034430112507647591964283436654969748388450532034596653371474760069147120493735476569902495502517194428040614171061688145202170385712752230361732341456393466161673503030027407541550489092666960368091351197027833126329558088721315116169103929812852685937827997445205343785066411844531258356630862605009106463416198475860040203962863753719739036269596554976210669738641976789331492976958015232919914676322199743499012981142407778989487504917569977564676779352768678540132563789119201011946628401525785875135860830606437298370699360390962239676479993124453312086519873525596301476557382007153488309898535075724776496966168926945360804297002485837454049447366651723280787916908146334600244565115040317069751560636977373891144250745846782963984042887317736981348355404121556240704872931071111760634865826448742215258182653499157058384891108412785755711154606528080047847814678118335528930508572873019700403312605173768156371589736946563503594427007104050354237496551733428077637128382532690422996688034948561700714039305897968361899171638747741983897535540250744452643953955151743251203415863941604819341770202925694973455881825096543030120780921220900761576307550287766585782897554902924664174844603698008560744270513051904369257367720832126154022357048702435834424403098536362568547001940339027105033854114391537763594241214640659779287662386841981204267635756516710633621550469527452765067270737760578928462483707524822439945847230673804662455451534597055103490376386532240449335654674152344800881961088250158683981453367566306593602217368102588726500537760347371664414270144330197995920141654328439684639639519433711745791734286393255836241206026436468983960858872540168035909739991798188738755049299262319704669212641717638281587972286834570463677285376117107967057828659304358368050845991143587452687602581481093572364179436068092532532970947007237483092980255445597999475488067665413267226576423666937113543247420607328018811026260482540156209125023606809154946309818640938511333184290763828042416783226928154325822242964458843845344952314863426396409893142015919516100898673854885309026739286128076160675247289060433245579798715012785944273983178139866736637899260186157236691285609162230934549250528736365165725753884437040236697452881787078807584206254395079182303217568181901441281085307749059119596869846216700162990052062877852968930095987174933084390365487636572901532267025594892077902213681040198226908752145894321755674897140655078711622785044692825163264833482874511002470747819520133232333513394961959344867858201118319151132255700936785482226094331189546858449197184897649568297610425553951000945808269363290359778425289500895521294711923114322743921409115680491940818116406397501596585407113018671292948184312104767016623050225718513869016106942911848966484154931037713332688436125336580616269379349265047298995402220435998701128086414955308250057330542496970386979296690470732350258024188438563573143817055345274263996582006568938334614556789889078384153339032107440068017166411326402290504081676847647088142015857820388204017588508314898447755034601952137658885436442231333858758744157350437261926586572293473858581580333179407424336340688617276622478537248435385297398539812191805294486936815317763230426520709860586346772255111859363049839270963502277959476921856534543173650088787561621555713533790030560325291219134829715256266450606600002721993681424603502895292252190238337887934572311191942729124547800570239368508702506966996667973243294256207985751808562549599231065349041885032111483398064875155617491741277391255024326048802672278159583280991851735061781696579042227591997998066509204089370451565388383439111207768013506807730894199296632934041787037044111373022040134947622983736581401566406855826897508792244099554191803357743289446901584020911848799046741132074827404617037470428020396246073156801855613385164125418175523938455502637234563976459999455452434639448891677840557876948708674655777105254872589472291427214455076951175701010592386319732501717449846564720689630328446306934056048846260050950971928470290473967453863188694984968895017092312608955475576576556681812812424130729747760754992609005459546023431107176060189520749581491804960835328342744086904068243519841452073631229404557522821981060635123862881801792059778944774146965038283924457947292988358439468539061423159720664210964246779439814097404530994105064074371328871028139680922582149506661730637206588375755383740871641514392929147131690680329767980181535645788425003228916381049445995313253092575870795067767855728230730929606805405727888661008060681377314174718279615675777881021650090582568260420149877723518207714688954283902973862532741512159786404697004006627959292433545114189210552404422642904254518752686367212742817071478373976694915945999174985267819095599878053312989736065752419167126327011368769604014372374042162698864515741726059850864992245313332682422339768577745574485191134204215162337270827148843076458188676379628218320311182591057313024688523803618986624928086229888069978131273745749709579438873003231531543949274308522580030446858877800595049384448242510347890651780792590857964294286260001769310178015485250466717754770944196883701544586930910488617853223663753948473005678050042692326145523628226243895282850931512118219350116087868536398499142307872976051563140157234368654729975502106091241333138464535400192207841340468082845121388121251740082477657398256084415439067402421866409737164551488962963289987569823653904962265292741911998589622723471512411357940168994757752423519159436162009807592232960507602822145056442898233617763326399946833145664003162653741905551075736575257487076240986138001774495728275747158716088503843864971794450639105298721637763335919907048291504622306524833294475848026864439472149214332883722041655904973635789192249106555024615201773550440659345496476053569393584106155281527260434045142114288216292572312131311251884197044836550888627962852339088247660835382316056275422703755610402362517334011020164949573194839106546665459964649154914890888926550005537834557423647337672846193754267834147209893474112706783407858282490947124125235867619482112818884895470554961037097150882017369590158643102602946543616820406232109806637051768055054832136876235704228885243101454262560465651739649712789887584996950737605403486981262120670630856890402124165290410254511004281789812295062583706049372365649782954417499404975324809975599144475514656927681935448272438322599975502897543803425985878103738826520745067195703263699176450524229593594682781641514150232433590661903748163788458955638116305882097190478391462153681881891590317784110397568927412084976520518127763955824714699298889403714495052270084180658894377954284683215766445714514310704250904756683361964857417193861393012090402650051845643683265451099045573572125712554331291959848625366984908489712440581374259176458338063562107197999286812294123107862756126618660961935814286855652397032864938941887754836747393624658782281260059141136199416329477775154633211804285960877102448639969982861917650331094826627971837933345282996082153068227358570184044123466654923487066019119979761390342536522305242294256709950047004338732085741130989850537101326015434343529741963380696935129504249802958522132141257091981630232731020269059360253487786113044044895216673042667543410292122480707643111742597895037958273818511369607700492053657385617870685393201005069804409823073747735301063097209695488004632703880354935726109636114800517648758014085223595332752744700376815035280712072431685299518966427799708923717797775816101119119214899859994830077449944110964966382312901631087447717022448672398409059218702561099464454597750728082469974324514392064152268400895746643817142388213168177539229676487114218766024950143006863131223967744924596146922712230875470746742587517225337518477467260351546112088504687621449148510248232731065088959436365716037251216996699917022034981915136542443594206005933987409016800410105040407886477792817191286438953712576868428951532921235099832283117711310825927939915706803131446760774749545055822697704055915582715875418402068280804780953456754362053055852295805267698979730197623208053846842615105388024089086122154270015862564892478363845283433850713756583900835342280914812363707619077485207997478816874397909394549684142782702681897586957660238473056036917423119244606176744944640317504974428361746982955886577556853914162683587676999050530980804738592141231735646745741561120345353027712510576360729471115497211240502429979584022144468605631618376878503924401568553265521745722272444776845161263894842199184529043859392846955399502268813723528689993005156564554069195049860793319206194187908861732628118927919951242856959790188897100503121562816569399352322186655835311166759392254554501925441172766542408301828634110293969091494052650204529978175529539552671398930100807883136504300519731021929121225754410645973139349193744538401854268525647248985113058982327078310964806779235433183329584204630145645587482212296551929760994963815500176576268763564108092261623509543625514476771829740337815343347832311882325322484783955418000827951887764704025106781567391176499190932152703791958478759196726953731069344233725231483109258972562677395244415539524475617641609910858422093615538750654122729357679078282881390822524531260888283043490712188190440305706093166373792487716249054500496101761849644188769178374137212421737855046107691512332258975919028131609325244062152916173099124599008231680659107748949353103742235792302064715829583467103334309825474653373688097214675363622810488609858309049683019735298144306842079173224059805297316068929316850065867077855894626803148290572870851838073752591699761595793479331115837831091274205216041655008723648507519107556696599469927800426786878873042382940402843837106794599460754504108785388190293749862633327042201004721073827973468148861004919608041690316409489379151354399479610616494299011428113441261058872673623640542185649006265685172509542955217544391825930401096023424464110956666583545846258879401476293414337487961732848989213544846347958246239477067481531885034633464906793328632034138181304384706333991723557240392730460866680434306848337323999162660594883997005130733006424403935229344489626904935426133040543149219502801139976950403953708428023073077929108482180617114292016103833004081761613754728637303185793980770454387567451279170378251410872802608249861962908803097285909192876320092365430360150025852057810781876866226238795085961252228091485077503610980984543309643187438028603821081243899962814210524944203823122634569790680911698597779163039506891499714621748129046979526340581425432388739798612823354954582224751580497052269910319026148958326058907195416300182276567683948031377198753566839307493571303277284350476419385162307366879699566937053156518509386942197730129913481934816835742670591164405543365233698728528919858997405489551910386516230749060694264103776613081966620663122178913936459289723311167320562892399942616627240927371671061944091771328710314557939151136990765093264115605713902030866129486235898091470019888155083790742552274781512701360358284043894787043305972539744563392549436954804443125777411338659942786979724824087291668175774864703580410442441027032261847514235710572513355423972745555364553404097452833357211900644028083699431538765108710434634584599623056595269253360203735911815718131252738973497776373039727227041495896926939786807516237765824439263436197538704317156868906564365326748323764107289699506521617677020433744035893080646657633008270808085670931136286501780778833347234827517194703919297704226296158370796162433952281893994622387268410979949586016750234628342008846926580528332438168717242084906683395989760487313645751029679998832389965774719508064818707121272120103638161134370189352355725284240432988141340762270215688725055598309725724712340407198616329430809874831852014207917196182463904175096567632915488914677708294330094344443650459261930824799248572055491090060448281223497648672161788789155603388433233715441905202573209585712805760711499585223247446880701908454016927238102095686208803397699181907995813646674826095050100984422955319463024020547056400880687820698604854977694160644853122527825388221111846351450221645984752190585671004836468409830494882771631036322057026825004177490771735278952255180911663141781116956660499509200819339820737070668632823564744983852256541465757366338460896914411344822798105401613129836984747551116463277399200840478441812998049999095579878664269448728536429510526094370043087595910343935348229229406131645987940102460632464950347420117190942110146388884489642530613476942029897186925956220279483594039867147834323446781915951619233504058017039574869271018590748768049684953027540512898472219737175572542305500925616134574161938983621837479554642175979475465822806542559168890373302955284565841750022667508671554004276133866277738194492229756224684794533058588688480957288478118396807551922675101825354503565576365357079225537119766636380637669563626451259586239377823914536365681852238638319949513432359584512661825536698622260949667231691636357272702473781862993483892156887837873285105460098943737003999569636708654602906699147196892091067762026846907979309227035354626400347414995007958644906411827081050883899216777375603188539673754025335568328572373261319737235138122437574824836697279695251115582200693687204294773998425968307680676459620732463165938491411975920048114259554099782446370942912773360446063968495705652414983221975108524222796592626269454445203850203055200128052581133378883274352105414319900298585445863407814672678710832636114969909647479692228399283625506477655869427799790038401522286458883601200900687200397809646532328800121474519893569939222401174111983569373765472498600448200116015519233765533377593440490289302571975832631360934814437542666000958809939865143717200924462949534016295523574917692589499283939802706221637655797933227401937210007304277627473644338532841885429347535561071131687980515525094150015872664311444644599178961783159869921750080674003522527264280300327627112091428384784140016423834171815878735348547714969623014222876863492994333467967799592692187324446205601742321575938963662335980996048939940358207962036023712994238403014211718876885045554924881164398763464289970147404361993183569093782656377621711189300689759014195329868241815827260261290034645949532753507818623589786323151542910619370376162885573526245591496863746190565169808970841340033415340782289393168765587037274806221583978779454895265677339152953349428775939133083875811219579303865073399654662789527794213889062498987026104000310156004846347020577326963835206641397174018920975728487592986041053052905286074258916991205323092131873455346495396624767334204454058993991611868221617626073953708401750053223554160519638320519597497034117941971141964448463711752526001128131291660879187887076950563250413141022973951889130274613637829739454350550996061183403399314608198065155417790479645395722489215814289098260466288146414812285491369769993999241249915657742100219047719629378487088983762024542448749972873372297730541097153551985089675328372955879080623627549742746506521690130515591155136057592097158449952319555297202778224025100804622133996838687256169628856729303083676243160451485797730907315899794009407660769586878060853248398223911891965863562724965429062119265338785982256920973531594637989760526142806753612284558770878919249244319972513212547901574185793783998763562116558187184959332673885477531425662814435804975526061853559505390808141253769520900358409777839246113120651042138745599402605559421272742093747163024720671439217323175742909916148981931246011950687584688140489612843162705534676314985537950960317146453227239841963528041660308888666616874126766034077116534242904526313730679288368338818643108788796943591760861234575376133070211585609349602147825690035816335371546185236036132725623523151226724601689874366537456987632823802358817587350107199347040497593234565787933655483041982870455171183918826464618909447309811665908513054552183436097804686271895685359108551281751212978826922761523322626532721727788831516029238501292808896734286983293706567492752922725655081227470551408382954687195429199559838246647762409173784395280623290679815118597338191719412364442984911558318664285740834214037790951412049354473737473143453808377805245721274652801501687179294250871148123208907744013486885849303142462850135510697116654625121711220413153003225537705346216663496491182683122422229849364592810424705570964620728940850517644115426846180833929691114514699052222312573334308609119388647735550499845737930820876035708612193678224653831366241226401112455551087177993924006174185755058331568563691718468397184364345497663155337413574904675630842781900793721833211410832654228512849883601113494490396597210768217973925701423627585291287176359826651098923943490970515466381463843038775483356948118973304014310956739349349850962002527310598324409640235813317890865521981507480206987608345594067624772526299151688176106643943553205004055999683260643565741014701792274661902438291404082301400343541618677826673090242296929835069200716979505179574401778039024161535508252717156381425418448731080383381667954560304848806842711684983278350803886732445275994952170683613090790739599197781506365687767833263800685390559528479825818023313893570123437242398343283036666543593158311244439037175387934333291947601933903367947957718426350887654134907805851541410537070289321320312773419999546440449204849558508401577706076166418531139537434370503019325240315494912979336899307800740521748705864401025829471464128625866276245918562003193929705165054047564612985864393547487647080059160955077528120178276956625012408431779209981169393648524977399980767215357170158371796194675095355833886835926463144738193656205393946297295143693935224348508956127425387194700866391356534499762955490557447931961580482191046666277953121667610150573896341149795605072771527006831193820671981572762801201486339580135338466700844412422527812933808710704789892529571622207388867230887579179832422844161974127239883125069266508398137001308922493166331826471371418605235860019707274092071095384582822959964839666537908346684619895453770572243808772113756977183121660256715891225162678768870630075799570741706099796232807357898833941456801692165811619584166641520128520835640793974803985326514931507040199331836299229716401515948895379831802879279254810591340667166346193430527597360477391078321673208947617013852212271470526126333122611644712464575588097589020683400553962656662605847057518361207056352082960052214365011843102183847909120278365954758172074916644455337064014894202469273998816020161262495758728094747548772164848580814572297216837216706410131694247169993189439470001756035615028754593803693558863152508652063308447798568477336738552069784885258378937404581342016981404203290688767515599611432319576316420096452752152604984283789422734057331260949730147940028277325978863778679900888295535451117463492777932391251844335954558146502475370746371513999877452592684509320172539186383991760143878181106221224930552505489166028755813179503734483440427505102499934323413666061474601251037785613954577934379943481958573856955124468878621460678811742619983951183800948802762865891006630817193697080992431820415773964898092170086383224071263772575018822182332445139400307268224366056113436991306532999568857205725223600176558174875439882175397427641926740376214411498863312150128152313446084405314441415324793511227440328506432626254342691961490289485730288195833352712114218840845410476149441370289627132616308611910455775342077921734396505490111323239214167098406868363343422483510525503269647512214584337100501894962264394608777551610779887406268983259463234955462724207038871935893591215167791764810703582894385803146090162894759169248424162653988243780709964178228804364803943356937805293728107229320865687863559871400503254441560543278975102513995884175947647945761087410218819908709397025183019313897650192547835814162510153627888613166552655906058740615180572985137390538474858094044731705783445745851959514017401201109392266336921641484221684841895154365184895424367918252931496459734351154940760577129174113508723606743819486294890411519190901888970211724897752665889167601163682878972687984066306015998965380172458549370941538553541726310748154025046537394101221183875429779559653216663418472787947455702224578146807346652263169357937794632424833827390886316238941083035461179388679246911553672186059610261722526167455789165927725465788249473363564098729323344440972904061487357308822935639793439179801978262762291736248931069574623039297109346905194772645752283673655640413449301620212380453706667432423054668330582861698103990127155104636148124624774715553532134829817832341629704339620393928858413159636804002451008470860071120496205201997366425007430671869698602634916534203546841516514903052282123952921891378207036241674510603315288290834779415032399806213182562370594740933644292752653481034382250927903510498023362594246638671845498218987821960479962232417332819290288688258062492397678508271616273214469209864260293354565297256977993896327567973390927371461365286596039681546065554100347089839862829122826416581851083121810639759487948676794459019002170790287347246593610691208308483717288095526594349706038701676936801719969285744521130073020009276904236257306889781128459193902672140813667429528716990888924250671639739915618494664465855708074164681938471481738111316181300222245418645295701332105338745849740216457122020120216610569345706563711753384439988853845651187528028453870013553142745689280351740556559761287779126099029484552124195675080752189770971307874089923621376834985067545461634073836956124616613765639838530088972233378601410479118456674306425259257282626624758412488101174587848685059465449905451220444894479485088495730427151358703411356892836540824452945120548436584070134167313213987317586930296626415488872539165829195967891322759771490184549164323721609115996665745513106449858006740619780128676837407329254138928808910785246062886026383314094849637331200429261826727342454997361954648373089445434997054833716355095956386141482197885279849191069044945223126245124813082204909489033282180147396002047877320850570264514270314827399042455177855897453861565181210307684002231458908528214066828081973996929943675213591770217384218201086007027896080059812823002897517260855120812353626788797488479949199377631828629731140995215965579988125724170697388732458564874658700153764272689648857687633628554563771014678797028850218675201887325162460147272091456633207960932894824936043317247480661169376650459548574272907090247635722159128275084609981733288509582876715946675638887951871488304636516059087631598933174096175379231424661472694124970227509494969649053808264082313267270861941205062000639734943878008794988800244393222433610775311763995078946351746368353429690978968874192035870944784531341271595530274117288557253667128924127270446717283679586590027373236583387249036801650293090857886535676387685739819881881314677933477363402353054558276653724470257063508716352252379160303626489939973258608599674642226175594843831589020249208645965490616938480307253783139409553763558932205736251136806732732014358721890641366773754802119258541221944950227988507895159590766099340072188807044196631989729258520368240079508464252138292236086468353528274471645626995027413271775793717197519964424641701980138976177829996833160853243139685210011917792938176531938086872563047843345381890251337596690311034254652155158967797650709737593885268414752269801067084564682934718905416749380328199527708907874834669376144787714967503213112227938443672773917186319509500411719343560818410403417559159917428658924589253928114939858110240409667651991577232887167419861342236976981346841881409916330990281615275969120149014940230926673978470978095695069711990942378427861204658742517258818742003354629608745849337072682734958440514816140205485723643080620266008268073786987092295827480908754038568878297776980960200657718152988759483909556759426174788140490669193665667745406002317977636442475074990086569894393099307209366542694782171932358459849280945037389968713650744187158574144183624164593096974442087433852141885199217611207565509765232804816750160073990368145918141781918778470249313628075532201073497047406551993263039539928628443182542967317653704467559068888654470142273259774145683035014053711167085467746990207188712619913855571458713612981584166166917300447451943284026198240141599517909116192151249384863071092515925185941690196530690718452462493816220008142097150996217687714942714688757199350077741477943430934917476521889256948772146595545503224616238501086694561326721670396428242991349099551529702426655339258684157706807933405816120505699500267719355507542283174539916353629277447158301777556181372904307867812920191912840342532545901234531776095404822959120462235331199676444688655837552758341210665430749492878565824948239029517192806673280362925108745674674023092808718147306147449463915583870950957716445254706870211930174758893509358573956141212708888119837067431291045017195158392194026944021353565319146191306876568760327736944050089150406916161862249530276803141204954793147301556065107371628574234066294420909436372555426621457686118458913482866262901584499546064532743752226540546473930310053101733372283177050878146498089727623842555682094447175790565662911655532402900180525678938334763742076685543855170866643801874202316899227834578976922387905699219121870466710877014171161885792733883480329332597120436560701424564736677330407332184583650941991357680529099874116904091710832198532520371214925143177156828440749681885476290139832068318361881080420177095022610999363765517180800877889197274691483949176995119666732893433248678890998777913285605790837056014584837446018532745665956814603118526419174660476874485597118449650915501167840976849211451929292438433490288154034477048460792685722467832890133072200833644988001236958847550465868288936307516224031814368612388967627084461964799176399363790661544774265459369332311522250717598067779001078383287432729502354818527838780638579292317292437273946000720901967862427299593351845613770051928063289361075224446601702827852634946263356898989501304251118000241924440075766268480023231597607719677593457205593457872488336082265857428757050449789941712391305195767952633086724872093608029003557303588258611252978948996273035825576800005134324893894862606882465918620241013981098944412674333787064311179653430690976478672806582889765978054360093956560884272885328816925631770796829346960129737973422274802158670121500118249846900523551444130686207391548654838007944833544664296539587005473581392473007911527157582558892965090121638689924152414691754225615463345624855539138785501495802400124900214658632702153984597106042512923683068549209034828107709379832782710147028476068715139405110500032532248933760909327245517171624121617849529393954652486609661294225302755938586107254756059328066893234488633267030242029929190797364896304918066693557037231083990261153593003450653740685007987635418245527137735337641488340008544293399648619531469488878588655996344923508804868431750264698149334108405517977434120144685997215041945935598776920730199547804433091292916469449309552302976011867573045127306457066288186605058585917039337334951884547573154097397305127421535401910273648526833279280273010888534017806500097455605647274301031359606622385865247225197879108132626432324412672141322576755397939175632602059447560714188503335721569022042593078792019629183124588496582699312948736630164733706100879892796253035695346326192650238816332052360060696667977539520996953692021092365289521732376681552659025713135466343654221291755240577765850310470184768135660419600006333802052338899386333868092135668312875293974933558502294332463738415020813132826953320250441919132180398644001516890182890872070720444213763014309394759755575172702854904350520713614434999622250189829399028484948900203587228577762178788721843928342085610684899447656093436158766998132348609131528567112849368349996011935977296926249733187646560249684584461655258085417994686282428306702113807648834421630195625560521087535107441494445625519568518651058728796111476748070023450856905844612061432805604592164642967436815527883172954690418620160909211473805408751965672234244471816802657646791538529090857572597282896353578940506385059808878553164823881988113102655541934976322028527013576728467550036316668329809116558468654273602701579318189463368713983297173140439587240130727401222032032405235849676393721134821797869805101612013972385035528272958060843550096176136064625529697050895199489784902199981258879434781760371004568327539459574611183075089781685059515176616354230168706364554998116145727134954334455828353733760521620631753627316887617869360701536481118910901634736730369812292664987155449711743364918669194343766347733487198545188146018534642006477870348330837808011339637130306156748169849617859054339115504322476981877695389923344779376942181808351660417576522559560123267971102257372331202486131714471435420462636471688120047006520114859402794185977467609208323856495011482883179517558602269963434446663329846539846314343605952010938374171532712371859695706796050038265732376002827974572461962138353579067945168813775972941783860224753625012740350728484876958391418151864965303301062160953945133949792208151987377371768922333742415273694614032901969767097464855399996205501382837175386366207741144485087104927674829768202691566028007036989349504031381514246418370020112100545488756059001940820529317295248951926662657593367353556578122255431194829967808323175393199613378360415979780130453153610226575136591958723719947475488705179480503318155691726253369992810562263458509487718050079022571781841401030653080001659442219789570976712327682922528124185469869406289854786878949665017452582374548248299831529177874312246706282799932938826483083948188260534524468899889263181892888962277139281989891320145357472332710481501706893176675746211379235671671739402611663921808249619372716262815026976671408729867148301415330905432702171029805712182626051535534512821887970996381384088607939500797569238634853853665228522270590712448176879765092001513167733759854750353852100797309450225506817284278553752423994583388726658522524831377128937631576555116399297681684345652739771526204642246086840930222663894486103889849778175056860464294718537498827309153444660062605040427231239573825231536290428203709200074424475563509987053582109423709562884316113623968875752719449013492091018717181674298666163943110347201330215539001674736099219613341009979914598436459767181030010434862824959002153314247394714570706438904512009390395976376576196509268106487686316750461999976850270609023877880997928658396870715994676326701037272750771928451079109185094296327180023005310816967862934617955531915437320734958471717034585803607933156565658812080021538616738769203437302703700266431032017154834983053292577904041088094988330405100956680759633221590697122771185078541573988463852913014274442978600699301875971821857801170241868179204067578805003592720288413605403790570254424661372956577521248899744788127230773705860704176989409652024657286053008880114180652132974308179196956641007122277790342572580136204800381408934230207847286397805947921667277893954102731537930345242081340390848509335610268469792957634366848005154647377741339978322348992532043371467455257625067121440887654353561542590884253236800843780345345350234934480242049787075412829014812688476813343916867002260987162651036433672615512086083547587555215770823723966972812429350739271362866986620013125417218124644372864591481335369785538421825149998099031714967639048153491631512563271696006925223944253053212325148588664186848144194003254260066224619505478933169885773732292778520559589152514561364615089525411468168110674450014129885056515187605910390007058396180871116450702893539245464444134723917708018557011406946048096141527323261757961263605741998376328083682148314217013075152364878867388923538496684640579137079976043471274014571725721459871418963784601556443055000936378510714178907416985531461703553694824586482847794141156474932551427110954040282703272227975950494788053345270824311340834450053301189869532465819659488351942912965723742463908807488566785993670696556328677022342907278957258041092115213102989138704587523184334565354727452238600538154791072356078071760617126697880833536254626646821168953701901876943485090840994484560002393067368239709003177104995698677077990962685016629490172330429598733129950721811016930382001894787012665829078739133991067192976602696450995901791100857546401807575541914600691824284899433473440334168623779460806767324514935535095638871625807268588116527100434873289955664072161456935782561340026881596373451806525630631120921141800544424351941635603684147427931725763123901539166702269211307348207900645046974488383628947233067733463986871256239610666091073655410643888340484402231384046964682375265710156135463880977906389923235956616921863466772759113289753988507184506548659738024160520657344966751554353457208140118528194251748654655098999534577297702241214140023068231309447066633762073429522219880576403186503055388242746918166275873353957909791202487740828638083646786671154600421656257931332012287392002871676464298055212320960613670773660925895560685136464345849416231543852237171584323408003242843816933676954145013501049216867050194308443680219932600777554987172897392035374429728583833135910865339097762046964231379856898710533746755620370187017523099334946686293814754145781912207728529954100824738531481964919068904969070740971223869404144174689196522514432752291043666498374818641871856336554963412780996485414290851508993360699596279917381182640649384166195499380940924787442637419355972404511797428093597648800958793107687594633631783207361311036954166013912761776159295290441414539296955995074097945347613422031555286081352926048825314359217415203591841279729668484684286452333081305423645058687972112195562240277986482479696124517395354940564687839733251597966651078392740867046523847780888882323234386528414364040699386005085183619655061006918176754583710075671840297373936874209963372600792716068284497951311288946370094976956489444952178259949887707727960927695489933464491249157612785796272101891575032012605500417349317026589328708424499606424739770878190552335254198346297664535661469775185056735507747413212119620146790670538098176968904563831862201531594924196534102304726010198834722173518866566406517265145986145072070166069433922309580385471222811471801206485980413358019126443303255096022822849048211172515946307447985302569066128827064314951545185885948398010517420014517386907467117821815331642283551259185667573933271759008805342550251303542094404385468348974750785598810560061071802047513850426322837160604779162016597709412734167752003145942573640126489392525405162578325025107604178656255089797243228366536169929952900781743898622879559526098824958955346694255298767636697163419612423986476773455301909314603505167893644129547153046913311244996051295464227533936499324158980954621475910430426361610336282321175597469580557123176957075188182239990919702258548005183574880846494758264118550307396371591881850985722271176482290331834597255646201641471348820495914676452119475025066038788176175219475212062146531038245298178398856913765253272923033807635948077057713772819006489991606601536085200094518427663939240401823677815847770750946849031513940662823346612929534375768418559294173899946196130216544981029136525619536051438375245935958302410123511393666015527482322120081299461835934951960823085060986217019059443448939484241812341701792628847266257178623499738599014837379966095543938051621612524411587995089325043387326199557112866682608718925805177342773631481199547248638524563385556928025036318887030486487933691181835323540767087528342943480877463652381476849915656013566714963859110040819041261877734544534316224393248376338249059183868059248754033283268182631997258183047925087762258621330414831370170036133213674530259128757345708578829506658848651388473232315062943299661375056687451136033560691552828378239717346024826925606917470096792806287655367736834272033946166689167396698377864510039986740365043754142449178240317029986336884020144976101678093526831955255842149531531027793744528944039461007411240811339725362663464553886012431062050688206504472000128494706747690520698702060073136590047592597572778127723368585767581401416643215882735096159409894545279460315547922298944798087391711163412095581754349806754224244903969866387538415713745511833982711959352779956632334422179427501626479181405694580681035201388848713919716988233005663497050210694321422865570692097302927672755950288600617555058404602117300593809642855609570948097035276105808039615550165126567753337555284316744810176597553011995485624719861866228175199002435571187876688744358291548927241551165533044571113624462374742449075010700867244135336183111702349402488966721415375017862816172156579822677180518975331808091993797884572100909733116625527752279806916272468924688900771283397656548486031733821150933860245538080268694881548701688784681738099125436531830608377760715077743339999204282857892399447673563381195345131933998667015306747339757117812909150435354248119910418365949788570187708813314424952654596657602156734844078818649940128494319173012305796734336688587601467836760728046323765684072743500596528043924701364075813951755215994340890465526345767108389782150722801698798715128350174003888188642140305572795253233428090780880581972420901217945383803197625166330907993165163802578444201398521323720050886886241564341675058010053883737353504405093948978230949419444172403917157884893847407437348801658837395476886174558254165810473126586131729434149815969308128500127724305752160301395679324908510700027292033757235749086854315551080060037912131706682213740675091353259700475313808221420556323140773393326896875684957788304173058120777012278019108587282337183015117674231087388805384225805850451243544967552817873665007349638371049762425735540261779253510030120832025172267870377449440335000827764591212478471639120269678019851482649697311047655563548796226960720468645019236672220247926145107659936261081755772216617134419751823230370484391156872260306708551245485494298120812369038532495245533057918431528415776750434444633692959125814704050340429842246344756767959485502826749723906086278688726393815975324864969188797370739934498490271942827744077156426277510279979789843852478606978337253968263461904933348867195270602736797846361182115014352193926870287710492670105395633145793116909015577376369171164709648691747069011813268464023690819831449208174431415028264843131322900939794148124197442738109743250367687879493075116748034480714099493735550181202833531869621292567163585347019601353189294579102418408319441845771827864888642832210158989085589568981720605903927965678745692154215576844561296501346784393776305161244535427931433221386770601685434838928431015451309997188894832155404861217987582222308118859203990486805309825017448702141935439738444808490603817805645693862379559183193109799128262010148672911241587442323623189120141638038027234857334762993782937157144403162287905546457220548304048712523705403256538853500575220486175906558178835248262237273506274850729338360647057225210679992577758947123623995349950134255688670270331278820662677111987712433146897728350373675136050229736158179649709195642136625657832879048666366943679068898289595452261766232900504763391202573336456014106121614246278899967867415860339325888517334195211453116860325597339493972592936327635219411156341249661184516605817811508511144607920052514334556358025861188177965406755053903953930196764707218983427263747415100638461594168378980624988893443438616502965122724771355642125222967021552159680065320192800436941831737811871742664763750091894487485171862884534247562299122729824800700793772965469860464234347095501025560350925136279708551970974088363538084081949355628253474432186730758429935935916598046583000871998982798635939498778372207933596942666992663598476472492045563279316041353472540949191896534839270315048691076197268350661992958147180990165759443176933264219652271203230387349814433286240377881864758874409189979303599337175155206850539941760293581963480041335334416409434207998269941084237763352471439206819216397200912604648473896533144888314819141575990311385209020963749088989593650475138067766214994163155344655087425462640893678627916521585552319640590872440874092468721002913993002594347163821498421573883809589617338637368953846789207507830036870911197820257313509728995632454604738694464281107963430492864939543238856619484207929679390934375084756736830856504778076489522277465549670047045805794989029336429088582533691791479164580557928418553583656651439059123389560636499941781312905248735548381360180618249664036030269950033795076267767669079566768362497524352674083380696528490410174793856164291057078671178444268457638786862529935317810027957844436835224045970776046047355536584579392951757571938464908927417879730856787903584761047695078249568047404648073121154918919904485716348007126491400909834831303354155293152089025918766556381589062933943978868204453603025965155605295148313307266642027281090034378174431651758600426453634648262213662620042749321905684358408210001787041425153494631535204021958625460418492833094989458050584102933463267075021320439877027480319452154760350380700089191730161673002242033027048993405432305448549237666990847224134788747829015688193801466237741794938460229466382813245162654699689317820578545338565308302991147107279072364591665141211645910471337879345902367299985299416084743916867539945183017291054122290375056681203873094586550511104128618773117197181307307932745484009716968811986408104727543114054070714115751210561844469199799531855383543708084052816145317466633009372332532665899908897370918517410239048989267051793868787631478524691736119217916396425137968400522033863718132450247043758433035574073671084284857786833621771694756940947308821545766594602569060013774952293066039604864467337071776945146022089242717960335739260606086604150380943913277551591953256769065525964036205038841643558899934431543425660182580516157309305012513205747421697386052255384536264195618028865312846674798877709516098712321287726335136948505519319350162703190841213414611756950764903119584564081888990923882062992204305171031032410132765424325396125203030701468067894333705813581946699288738402493888180564839424901097392653022418885936939284875730277463724877925986573134626305564788503535601912232000818036489001396499073332302921843949499634319033271260537768354770667506070836813482143942068396222287929949114620097713234551693029512001546929614070422007316559934847087931290591322203974738636743896252246828926439024984243711699456235524264083021889472529472545236845903268721550220622027281578693023207732997143252484005247799302320594395571137992488319513035965886555165651887962049111227747709979715606938959874510871415606903258333116536485625807075488310144646906534058658394978382237666610113424492056544457632439910028257508494500523003173367583333764361152645381538040690631748700504416320566171304974652586554361800253351186542822124106880309337121865960811298235931188967278029738908817996794393471124491937334401305476639880392487748930332486479981895271491974977208112167565107167878909095168215160397409476877632568004677852220390080442050789214074900644272358171325195731675803737849553860235044485187858116046318258182667571036030987845436623140563761070694331325807616158209114347004179814266662190477590165283397438061902703973652785867227410211302730137952385565729867292628155414849327117581982359228792023600502750559190744352132822180220461020959065138016343179577173099790936438016207219830964409809647234825721646272300898109698924088705121898214629239435754817227951747198465890207440581386486049201696313614025172540970554015719162162619836582272475282468886730939507336681518242337910353702143437944802232594127154709384918048614350688606063962509100733457207785826888094984529353857576566958098494948105146733304222372815383719115554711413773299151845592099649906636159277731856360355597810864177079241862582370201856669050663007005921162511889822933197475042026828639661675701567002042596495551366805208069187634513993402913197379037522364970353501030820613317732658691831724684536851248535256506809892749916617527472050356984663273331925253782647181027396966164124552886382313349496299239898486818923497947555027895773095904961262134911529884797346763121070533006421336449605060344802170639617717963435301799464431561637593937488478012597001929603126023509857875488048658814896219329574832992248339395373258846397883941988361416853657253731797117346135497023253321607436386274535040085026391520674029761670273294604356823776759305674273203038278712366787979671051752288990923472270065882584337345109284184013154176325674543378980494351718173688690065615089641271050939493347031078905495882540695035297124271491282401720448256335411633593228299905536972929113750703704368339445394807891085845785872571242155984126821338472648858722338057620504994626571278637567210078141154626789789669848789122746122546552848441236827750528566694892789558095366608923417254024820460712172691508682314963258992585929448837621233704095493589296946928078331495406017745147135669314107815788977809623487539829389297968761816952930278392981211921553564168083029406481951492955045347790456661051878889906863043530397402620821994813746311022380407064812470280920755273664283196738192532379263709514476087895472264119186121195214990802568131915409751232068384620887462993350689101196526070355744825504706461635009778527691666255277622505581123291931043656608026197056363847391883425427460946861947319427570375108714278250000061841511270251444853535811977925960533579721967068288210117492006141319939768418482647352390179609580686995236028981191076411129602491527135270833083491967646848799200840963844664046352077804438356529159839530124032938041796967161054378485681296927290176494500022565908180565301485549710359724162878677467867939074363634520700399037880544331088132134693646971326728353450704941542179707395706456555437735918611818625442401910866841922424185354337161974666320649896878039586555575100569395652141514349033180733717369316706032307251941586601026906936375002492700144315309185171497280614319415269274384253136890864472887046663420783935734333443547627087063175037689893016595754958524956526256781674068109158318771451641508132526168387010009956863430163153507372810606653599041908789880856689182857043369958276382612256110796734050569433320984916915562373319466454251861417148125910832483438751058954923291793883242764916302633280607044199764439930257747802063460469915606485479543368235311898684325961346047039246742399039267400481056849130641041222509227061075925924965386292716583893904523930449030663529903223013035051305815919069347302405128116394639832075046798252021134303008328077090158435793591317795740877982755411169116512865900041220503502823559123684590799591527300008698185826299210803498196268976987715029915612869413721863118755170944946466660575666231378473556578896914718093224514759386084915334040331869491194596215936402829931405795086613102485612657621383461515915453162780827794905400356034764995835941512029291015359314956333221635654598927640216404129848079177540855515938615111240024564802159493620516242370914641950471373799635407759366726845305095660680298759816785396849509175908538715121240292978632593041218176726724086355949869804217561273595198938749767658312391849691088605845020823551998124910976498030400586075068658917450557681568029368642266068368484924675901173670878714424359679587371877250552764836658320593249714268277570435695846133903661847558664223071472229090620711583479039744917524369584225432441217592432148800760403847102880851596771491570448862952898255293581927554199614378952397777214109357723050696457626174392357699259453877332234722518741868048369173216184243735736767616621103725722773767382838275160246790968827550746346598005075768652308253503325001991095794964168263814703783283093976928914098258566446325106411080276354108734882973444847738324102608329316693927374263701583127715260747400990857509125666897429525932657179650088649350937672779121397309837075817078060918953152234687945217465141192130209086077648346110277189756601478253761530423539704897459297878578132052365986194876902048087689358582639302757533821941473655263423260461191685934800099824154875469162493401634184216145313633115773502306646484577876702033622604004826606663597180759611995450189439699020051311958071846104311757975882206665975993086721754332356546679761932732121185726494789242805825366154918196321099096997277629012138458176676387680069739053650402333497952772513437445087533204379973041974630844153331398456921861531639322650431713202717670986412124980616280036088524964404759375234889628348992209471155140300761689010712630220912763257338278805328171732027804783130773625142153593457126439977160695509202405759846163625255168840417286652373912604630538167336099270639359183310227312750644431608904133069859905913130562053099700386342984593888306827893537723523116323149031271075939810646531396907898603816640099006315510832614770329738364643091215960348593708553663581608739517622384839125817745206183858093798214814115322939233846392357811256207318079641438199482625318356131583463766454304581064295736146058653036019240597933901109670113458097386471484602912901725096557081402217474381556709135174144441667813918421572654791966430569188073692541701274036905416120706376238132983558915219451054733614300771053431365403486643998497041096879273410339348116511453248945103243916598185554899840270217163971624644078710616351412062832251979468061393791597869210408852210201767214494438414255203307487992904466118300371533441013894475278338369772799190632560220866160742518730390121516802998964882217106727092850441830361319276422246025779478613469674773118121195270283838918722502389558072941953985016960515568188464532754920963621599502889299219762386253739607110531121826476247081790780195500934901637562015061715840010117989387238932446731709316015972872376929710780165264565887429793707334477124910253341310456749983761791371849220196831760906863919704707081955248400777107026366659344252323942975200913158634792419737966935521469257555435255553776399321360936888431423539270139751384803895640440644426768259717336757997278644126291458314426769595462048208950538789663237852716942556972385082429103693100547530377484412974313396964233483636162294613906943877931154648594140898124042688029061012216111543226839293800670961252011153062629976998114014786533567405493297094671367570261736297835008754557708643534035685024619770131735293061947381583394479096855527746243228134646966770919840838932459123140400484200879184758295210693326249087086357698404296156140393237098286578955689406552500358489636958267221017638604509154109598012315569239475067598106636822424960480956209865301662514740846151935854655511246163802422265579868886155090263670922703912088977870548083161942554191159930610351814171212872060711003965929553730150613581465210129499390259349740401101661558391882724967842878789216961704425726983277744332515219354811986114042764633071341020327815310525636968749515746004643504770579074491950090518776614636735216383322022533676258828446963435380039325014908754940916331829560119247867187626658800852190231774728450020078127767765047534537040727561659551979997629108109978893903426520793690370137820066374092583901304733805643948740789295714718616193916504660629646461434419095044684435757292136111597556357479662420119335323099594461792030554005125286849958485976261383296740058343049689961740784752500991938303217121097345352163374160769718389458943741111146388851661220531685114121515796018694468023344066342332881997742429870037362358295585222252506936249346258210949563831852999757965556781247911840080676992786745175341976707799542753056883154307835018471579631331837803085959446901516741751632598140879016339790302647813975827323574071539763732147934918570110456591793365113542765835543213037643343519606647945993809570957972506500461613410338343775644543190902928802115054337604833549496702387598223682177562361442291179733759905587508258991033093790320799860731657522441989121578132215559746380881464877526078380244862545400936373736672536025680998612406113577830880987276842097377220005679413160872823375401454507449256730989283206521726179613221489815666195691228469120688704847452317447316329568955572504798215525208803755291331016348569747013718817373083539506593649510424017687720235345877955610298014093010073117148502701852382724586450042993199198596885645156896362508703415731899523446803984991670664265025892127805360644582823619593571583525693249653650519745957111582789742926902164340655578544709837605491297349429200118114669533262231100511649582954764262781194437126676657530841812597167759313067604342982415715246108452424813804114792936462181453713521221523490049108655986680258402110783295626547260149567685854067129799415475380324868641441240433374726794202528761512482185090357267750958174580530911937823739768205616692959414329451407052211212205210572805234286666341749022536705865291752215970657577047242818380773513366403516351139734792960943280715518804640461522324327580372371317205897071611916912045994443350622701784365954217226767977786767506683936561088533363454564268320760686238184581692678413439335990526068306416163688748890052330273133018606193039087672516703092480571765225325834801020834451547873584394322394397937014737605179439195570920249040150547832472766086931118718744616340250390020101599012773487328606253199343211390615882142718289189383117871425787053720528130780212530273788127339194432169430050787625016485385753757324999658192146031830842761428638064372104604921335887545478077876581343394317220312837940226551853798029284476630387431381011394058581914238401442442112337561433032727978853360172615361814806533741210128031925310006487977411460054202690651480627152308264797149389144870855893476103681387312381499867720959608911027620273783993296536336101020897594494040587056220040274346593885385394747541728029876618983647517288330243469956376487649562601143755612221278683250609830853127528356110740137493088462711074848469414981198744616325301316128602690402719092471836500222121747589909767222378286342774392345561674598679094876252226814365021800189549511751768238863661855780990545144434897445346203950241885257653744336509708067741144510849579952340895247342775780960415587088574674618547138913904046737005945800565859189957126572406536582336171630009314541483832497060378132225863546536164654812496396311365080589190739753642903511323393441421938666838572012880110702749544861817360313368105363843083276469200077658441115306706798524703220735408716670046010631715286582577104131595359866823128632746611017242461773048942101959930774338176307510802888768995068775894406949946631479326066424133318597598864839180269919101342532651987407877389950992169012804431265758411437527857315471239544877389315301103608631607294744796042946165254111929356627096706031630918950739345707690863852325798828462352965488005095086378018968627629731097990975139315984979309728430913096773461260027314174080253922688601903472116398645172985790797661070408167506038619992039827046784818810897399657713537538043637853604382746261444629500223587043168312712006295748299245684469676672876717431882720195595720814795886201763943463882804231194142315420878297700861392105274622141006330799035458148329164583965969761267267193693110908251013213348112799936079003549179753020720130297559938132732908764593929780080478896505527094627511863131870539148739273639594493235584214688332288291877106695566884677674681323689489532932059836583928415750005429937558640277891389563812251637099671784671415357750467333592012881358029164973072572114472760615680056474985439186225782106891182662478544520263795933161113025624508340607430424608304570693921005151658951701823914635149577612996369824424466146875104796620994565943406249480579816268254011564978112228478204178038124527095973268230105644381782235955387762364872319489264580246702326218197013422425127428810748691297655353198490267790867966883541968409523148936068941618584007111540357946420049398564200767780366947520067475928053386475843750879310394731472731509935936498844836165652168848085167589269013393941389651312730024469953098243856835700971191186721096705775495805669598430123510340092078611020174176338839156858443802677488036766355627044631732388665095868596542945074520774402239233723248674758805181338127063102833587884397572671116985728638304302047724110106448553563030483551414717230495276248401912023286825898397543295785322374621959803011377099048284461432826873909026881017947070303180814803270225882260750171369814335745764714751472015309701888742572349688362310934726788740550646285850058617426942161714017926427207836763874125112702918129242134391680951301116542659664976039329694000498826918403888771906283504552952483440096723642832150914981861204022875308243327000436831286976988455653649463535800035511751925279126427509122536680201861406482735861648896605916389459516412346865725982716292277266673726400503922481787106556347106179067770051587628963853501099583427604031873555324766016370798643000932283116534276231585960883240236703760419576967610788560518101842345656420800392052494539289880393596289631150093016296196449046476169261464001806646736507849772388697469890411971879863044592824514911283586268721944562526382448597744101642971573033735587767468992614213070055018651155072025096133399599323387435033683609763909795921995722004055626099186847467600229414842626893230982049706473023557527023757193625266848273401483563879178696842318594097044366805601007018617033513104966489166479614551792561174858730284300334484749051726391051085637243553844483122140174603436477493388532170217707187937114652759874353500241630006405647913362271776241054631715560890340853022461790881023292860006352790862563104404535208586759669249834652410276127319860839657956169557734516341849999624729728375893076755966546424771016047316386970159366951684706664015277479090042611238069028388317141606153336132818146561618300117615747240752552254133105232763071103962745188964861727376694239020241159800280265218251258752719018140579289936888225015602270948421962512715678056688682517972437786227551558205567231457279933278354132180128556579836391317859708028901592992862337052694529737432609903951416576891082985800082621075096704741628550685738690778683168675424969780774632628354535111448800314934334241139890906577990553240186260024548913454303007822653185919030186754001962635231685975202520375994871533401625060896358328376016255191082273284572845166500153221954476913987656075133282148631112988205276404106187638331216671055362174015406983091036308420302529738833587582958179502800604291871555611340748467341079479160094486654239596225333134100235180496785219037954251013429108121634011572731570493520858633209026356897101618404078383001210397392825141971289776017558085511569281887688871074417756818090116768443081837195571882517461973402801082092754033186927199362875731095687121197031798510985107453309362545643718643533975219569301483661882062786312385929586783935034703528411680448329203144051524651173335047255558382838756494759059403798430256716329021768054469865548393778695520251527439314247556186743208585943944872559740437006043290867612900315246882058266158780737633291955199603805393183812481533620184411890056363148621304188514895308068741446112595499828182530985089449885508778000363586787001244306410847373839121058495571980582292478249396393133762612944817477188905557361738383330673485539196231252416446929461212044393834674496935160052644074078301878123988839874504458691277131020930006322126941579538944700460237494378835060169706690673808048436390462908112318512941369652874075072695266122320882294317813123133053807737090142800773240034762039074019856122935530648222901334067262481123128793846676972370460416541408731552827704160296057712536700710937247514082860865901067993832704673324187029497685856495960460861242806967173275534515415450438602233642886758555122304978450942185312561481559465509161431509471222585377352559793148056674843362199330772306618898351084124033246390780089164903749557225364233645608654036594605051000918670162020690089899255613996635786666669443100827183026497624316408343835613033895298071237011991389692766231358543640488232051888373769193919702709387488601106313492831866130500558869723781235436344249353780621351533639233567090690535922117637490390353753048043404984110934923182766429102037482634113369705569639392209510757269004633803953070088775035596529413069381001163887776618985011311472240833907765575965906519873485731687398071915596012070473620549958783370735653751056136246808204033799836738548457732032418855377759021218486053719275316515313560733472039144642702670931845183882416009366884686677446883890378018864588230118413470277413002451561635816261212610985247842654469827835180662916745219318882359956253894841195420959632240333484742639259469202013570508538991348155481187567993388533643644188307094619257046954315584191032822889111476392030935197860002612582347039826001572163902289637957154874069101700001526766007199658515832160531623121904652100113451363066512237923479407026375461330905293218708839498786747623078672134281342388975234884558184606361229020072086196375331992325556702469516396866997113940143170554840111951822990992988873587411736211800261980651055606358637530203941414424170865233797558120843474684086586318595100901403540488562746718039483304072053853906170328436901042129322785637796246970494343446099371022363065073881478274924189025301987617473541755919767768893124840643493990037084225920921711802983488573165394712632483762563261740567817840306106407056102792734752845655751355522546826935839986091204325850941876808448846445139238673021348792711571970073714335576078495427337997979707260185340944584856763411448049539703062754217670869595546128682873535981888498728698500656730339642732699915191399206173071145838233153343546780694636065563188878166984334675219852726395662913910333725355580096984413181981222616106792153828892047448093298236417524896025708012218078506953180979124161067587763498971618056118470668950559255990250798547631324385293858672307495061899603550634006788927071317960224458419048602209318263115281541903585692633420397225078148567005347759238746151523459101284527241368786367999556847589701659799705641918893605969074768201100270701050739164025830782176576389064120836165064822229260240691978653018624030151287613915869052618373269956633899754497131983292184240752736949531691848454244520498789151468305918182784130114903266147202655440889198720849492938234327358442551419844658075047590681575744600805163431761483038258292945329770239949143198745695270490558149106833202419587114343006172773501246572340957972446110125482067548671606080440934333198433153211641011429570374373542190293424515609675136043425373680105822183577451554203512156053665196669367401380495327457521402086927118975386315113163527336308261694892624396951385327821749238436265153855437361289108941401301958117824016610052348968391270697930405373391950591682325702852318022340340198266471793220822047409745969732898441246285332917222233296313794353975833242415191697412528378460547334381100388089375573942927057183949109234942023181748224207349066446538725803543376961920588176358223163754483051575885603534906388210311465073593731383318573860152053893343476910122350285813491631040263351431881044337689910936560205806284143786885471354898033533919142863581373303217389067481073032285778281179327026192525837616667917590488833456453646329928492582638911723903281950165985395140452951773378703698618735839043267462297424584453148099059627452887063410794928941422431320423826676382664811717018930979500409727180207791362117725531241927911166695859667249012858117329351438832040109413861390805353425997261260151706839019496084259189692805335487094785703821038336218171454046129499570956009026853967328811876695757302933856219335821030259787303436019786871391227469023470743311017249434330419707249433592877703209513926857829377280984433483150212870478626358294438541029777907366132033145671381784058352074121586117254248703962633944710483194677182875265636401549429467044984673998180340108429550097911785747737747070958489615111028336773592573005432964881710107703238348104047050170101616134911505227650354648321960440390559551900247954506146347667899401466633646289447837798498040002553993823805780036218769627475842441476991127086240705518328454454494723016488437459154397583592638658269181402781500076493718968506339511004320764607952910262855007423019036948383204166655800656439899292424815959557909165173285838790158306768138543685239206278684629270452636248572385926643084038329113547870409746667815137037964052214723231287496451069456263912116411956449388149270023789604869266267778499036726687835052445851573223936413477815622982803238031140212081029266363770871191267267377928703572034293727989152547307463431602872408776811828126632520470907076839608260507632647517045513856509991764708651308162584875059692078828353317284140634975132397376569695752610012221990911028640999408898073215918158766121165957819294748173626147663019529639496127603009199817695597239231465567401952180897767208852251890355094478890101609976157608140165327262388658492109289067686372632502566080070513900101421143498553367874260782755354730161764122978821492170526382718640353531201185457439419184090796498059482645847078799267191146161056050697381816196140488913227460074559757087589191679059459966409238683851556361888222867757188020344135147023023402771298873551868266285421510664025655008078645300759994071960217782108114932712447251939616185277401967392405607662130612223931198015378655844311770168872187230615587968033626304710716059846659182800893867434932741771092117157281343935194513733524390056078608580189562911486363083749743611017355138093631385353496879342790472198775596865758241087677488437082211382524669331665898818592818327060697547050380403697505386203920774676713549282795299698183527941680846027146892975248603113795301393996198810832578150960473036257697870249821794486447854759450140225957858349234649355722809141938346969717987469710936588201746199872436713958231574853270266983512635020323774860438287610860321755505890850931228056634375895836802877867789656464851277160157966881996149296654604445505586870837479639772740882864516028464530540460160743575828750147393226531645095980173971270987387688731562669976909470351446734669118607522001338769065447736429609991282218362959220752797102453854315558907453576066724700247475709704094026733620200868532188716351723531092510339543938040227329668206259326276947795320806126502252758251679137096924120360982214330299871007167792902023161709550562850959697311801592611464762820206921187942304365133816935897592181609541266691694321768024463507038898966857430958498243884785345212256987995567715951860532504334852775926504166187022091319776531755741403046652743235011684551454270347766103435573534615813804448540443122003209672119949472425933035591950535387822713592885788650670615566910132894071880572596984648569785051527232357320694047966862106339456412645051156191332312313275019746543886797099010318643186136682516143537643894915369246591291243056092426638912247607197714712608872856379083964200770352828882000918887962394007275454444996492436186526349989706777497149241195468499852261292879894274902420635574895898989189218056707758528214131074968007061303521704772251342298483629102182295697103934600313614203904112301305379161721885328874232733336193493458199355539262710998279218447334540118689467526560085955200988514795815644918707395306554318493013588675283299955243677090227147377550549109389702480634648523136229330840393199694717515739624583153864276745916677289179037440273374585486197290756450491174635089015492415986837184048816261195241433701069928885303616209173348920135127206884929735994010069899580492960432146998963370143937155483392118314322451370495797150555078036922215489573807203725047929569720835101654788013806315734364921077219403451429868542993389130826737536169985557333824363269525947725477668576745220259375178104623063240249572382237395305227126290483914030160388843351430675596266874164000527885442087720976661429825166553118450210102837157348326524805852938512755546145881184889570639944589123254722734047400305397607828651595989846956249224057687704010046450222232556738293941513694620572506144334763208189562799104209159600605706114475153503249815171332679560364319910033923094701769104599276092479421294507480278327226304005045481652818312801709146552324613888668148039258146164884474925869641756082606955956755126874467755571136907866678753148946540475757477575863412267042560385253957110694193775615644651913642202739456783667638733005666743738574767613262995702266558606754878675917800749257036053717408078743779273900136868795202903067639958961918368781054220672781366137420895497333480414792099109045133888740043503962481712551717803189867831010148592729993668044455572500683396583247027527000481582239136482040714605512947751246835781458381189238929215009379610435682465142644659673521768626273492892261856499954657456809560461116706645430419322043449473943867526349874600910220866485435570701379762294571846843350320509190411600773512643119652523914404980805045290320130594842901959738505738679124588970672339367448892524340719696429492728629198367647265819544932538944471993534666033221939368254897258318967470126615150110119305748520819711407130336283469946386545743353103815103367368396265414958173032902339905301123241266705877932940484128929407162192050740857969405760620049531614841685752805174559891427564592007701478366897853312668066882056517859689779637578941070926964644625610871058974554462370187079794906333086184299697203934943310049103416306637068584946675395253633691399535750262761787006340624189837454289746384248471112535985659366918401877453019083312819445989033878942168806959237403074996793424546069097194954941652962882163446948859983596292855637070976030881454198117244290479476346900662709467811954806125199535597430551412157664637102116702735699587548593731571672712345239012824062310952763139503266915929689384440718825395353078925855834755580364881257175218394543449694419063974979966933726395081599937160730471486221123334610680694497523808784999870068878686951627679657174459112746041416964716837658232809494830903618639925395088782195070504159154416142690954199160166950155669956707600835982218926092446225670170490196787863425906363322458098773920484584223361757030241000218337404699465600536628847641688046593000421701700337826574790518831259249580666688299716185903678721969636599302820431847261924180687841178910539342519839899985615021023783086730573477509560424999940745112929238039253150268363027028327196049384542149956068989963739558374813971520903578256779673472603381506985959576865706821186634817728693250234213835391874305979317549331089137092857556135130413151521028147767705805413109362754181112414863839989036429327451457992681162382192822190781101509590079698143349984850688671285500504786529830320947475898040845653601331790896983957017906307327068991900421602230485125703374110431685481016775521403543110371216811563992013305261058871381376168412267236971104821784133782723685994636619728890568429660185100569634425469889007775097356577597603863114217518714672648987002225288337274701640172256512670345494280453744727996284345396569897458110141675046563972765652769574777017448856348347394461298364786072297516150293138550173454412108512208539864635106483896741116532841830565262915863230717700238008737314550744187733811394241971625310701614528493612177160308528877183137013791085577929679656941702352574579036070130419306259582747622315642924197892047195566546233600969296984965189322302411472513539436895453338095463412690599219192328417497980970130196752976267718418587507011928010522664832692931520528509837821541394460093697960222577912020200586247723362368543473481983736137981115669876507402919015817653172349143823199239633817818390791353600619359714175846588731076264964786914536691140476722781353878964935888791149923326991267622012033721742724227681544346874708943917078752576396338333249993363529727963369627562516765588207606664714495079865892598850721014262871544000087694599687180138883908632080726801203860161200927767484250802200315294144923730783597823803893069262846988068016769689570240122365207863118515738365055755933533342894159215482689226386300334404269303846192330636691158831176434142317635039229828938116233089214242796636846738511368754202249998914708057982253905868725891385213271631468772440067369119573528719493733767108248773019618616034519749514095706140536966217788476945888442550015652671805882659112199618860883404191239778885531351171412132291622968384158361400015885275869316538019840632706266124306231946506683134635281118262335791363272419902019019862677287316249196776688001800675301337226002458165298598533825505568349867435002412655609348934352287575887074036221930720990725002798423136696314477771012624803707513234182303586290919201387123696726344286243998817814313842995178995578443868324297555330408476652516797937181448655771813398179287270453360892366391950089955474667114537481051656042770560319138177373605969127817902781460664510160485199661233831002990264415851993815763531158969431519503032773404550704010188673977485135847529312051747483074726163333389052997699527533482415115858549162666608927822169508486831232044595889774987846314675992634031510304997649994476997920518377457363102707187698354832833311166523305078229164766161719009847319578010219670906074349683660369591310919613429001391337256675099623817548722027621022094856859343700024572963550563569362292066384325245516505130199497123789842853333271679938657369292185130831442098141647550059113108713674533270022661565975546065439106625314199373907305061037966444999654903847421826896844248432674740741130579510680885689219201773079022537769301003954221236197552403120255266789238735878934031637435237626229638598868283675328209158603690411818049319921941422934335386491899496123473017012658798738640626035726409159486858755370134964667327265438352238578347027237282807842562102528094566571155628282844316447323007949872807123114876167979967658349516347449319602023091906742184969956078957316625555315721827717576486665171034879898458704016907297846184496644743579351495045411581524534824729535887511940539828120148839641740553889598121973931762678479719197961173111068496001324711282579382599973498743725685021009795326398689933806831612305571276038779179317827739900826082904226207162992370548638285745795846597690169537556296114263337772975224595290314631144318207009349603170124191467722405354699688908021922217457994398105843793719288299421389574556135359607305229618072107739239900748194819885596006131737629649218867115711900553447438218235029751775536252562567858146857727507028175202377221125401026646225491741654771763139056468768249243818753499600155033236204280928874412846245719063948811731208178481061072874084141915705691368644894671466954239503923045536161491324204425201358344693185273870208786135971872108145762005441358761500024383027748746160756574472496304232798520454181181098463119921879557441396447193670698607095484178907047930125821601933274948012597650752153514388926505216599856398160784331148077533218485100588659434924321723449961519665797171598509746884742044582373457374580209727221767916289590355382071435220726292467081558753559360607406553882818675381881887377787829872316148873594062922987843343106113780443198591935290443717965620232280559389503919186408233543704672767458857668561822910587305478972873323352807711531178033962046074876838513704736175105219642711130721647023551303661278913221662559692658656934670011309127951248243765939043586954486870208786050976227295728142044018627291973678982848611213075652059723479256253794779268900098044862798841254870117912786955546004675615717460914235406294083876763428291321038180084442280732356803671385055302624222486346542092593130094907129509280093472277651647829857749389976226861779165533970279428278056697173185707754016285200489827336630285512948955711023321846789967244586468610102768831971003489181221751445447075489099377206089552373070290875727301332683419254565390266819734132656145436801920093192478701511807245022930711371742457205081197804064513801879485074487527105730637479539716201175735866833214346619811808880440581550399995928129257413084742805506559883905729901009610474913273348338526488626415720184087833758080764635463285800506513793178599070688618337658955148366309554579395418702747857082535567252936732151846209520526869668362190143822878931395084111512665375063382632418595376918023178286815733910422913364268556941290513218802139078426470559057729544175487698270228659592702134573927462418087971983816339869078534743442085898203255324015449432316926683635711808733829950001248371991921378709218552340925890233221811448485597476412523834726299828819589166531197936988301676030709840716568478397545937500467515539062749850015245150089235431595939243126360021100845650095711234068357958423984758670389433185774844167652461184984399797170031577564536558999184894500923970656620926050194607737092969663592382790109886843472594571909521701826925653760866131830253443276793267271178766386350199916191923372735828651964331816085638136357295831794177583897624412403894761890761963280549286330100406082210480205445872867075305218243752462310966290650414855629535500684116725334164636826088858507598516597561709399932536261650249419000554041264110693151036177894154819682760562940844777676255375595733995208762111725361989729501205688615236232022256691845471457197783772860019377398602194822605773073580617455714725452481040891660545576800451494485638934655566562565575112053124751892633211251568845337755651849051677579204801266383761135655071698436740946252327820559521777513371522044887859499745049173706296094576619806020738606914956033560550201282689606824950956254592617437652499218040302093611384164674536429780699876304396736225087541124501895134880461663165908199340836523727279695270343993849506846515685848495553069085470937084646942278927165068668279240912366545765420948655983737081043302536973538951861882138389102403306452554746517577114797609048281959695040279770894124325389917885609126224682551524842014294705732860076502202950910103748241160916274175004048841607057269851594336167294312248676160590053799895349035867065480043452503394528734482501646305939320731199504254472942483357648263230717381953948361983330890337588621089806616990344294035016314341989217155275435243263590951470747401557190195073012225049360246508378440921904157131824333615034235054304008661125376687075663555686811507252235522496559598756823810795073218452234533162341384441663901540604760552088431688330276731970960889480995746377037110389375724689292018211557908537791507921618247086584317077913784277252580772200079020960998772485118173775756157994336873420541114608187614766027907681892450293322463367164545332795085105974617232503774177568951587991071644521805676476446321459443563302962695995075014987738933945763513087410452247871314305493502549645043126351948755549721174661084207664157517898328283168398334694334636647593919373587433403867929280047445505963313540390280789884168591978870854755518259585597728781095991811549471331358553938321495285454615992204857129001610244626443390245961772772720910797105454715572014846960728283675924830052208503524457183902906194430066723109028141058831090595352129183566217714012936345113718519227540142334965540656477205548334521601335517668354131691707894860481705612271300476900360136763438449164908223360925811643235206022374964984890708820336976088098272983101463425500361333692841777674188402927817152917646773327728110906125826786034738613553657895259578623007404096770254920060833316019689080703832709917403186916192270877865663264377054817717003662034624810837688238532637144604566592121148287116679416245312324100710235480243709024594256320486312391648374396142024143803275980445648574174727678367765878860679249742846439466247057808529807378268833088343348033615724892240474837464211095587838272716237946504269576223388502290299001388991202226799021941331593711095102521550088064539345468239377358052377751731829578452621594470919872987222160926755871908400722749346541698082321738476293415033463643707964148832625576087949303059820455576222618095819238390234665970872070802739340235047860378391519877760820887171928296392600488801191067508303724436137539687683911360958277190477247544205667227369243986491572831992652950584605903786644319870033731656821791079792897734466289466026361979471893712964025695969170528596264018602213444863959980435241016820825286469194113656444537941914115551961899731178515580054156489122680161997350073133229556612776253223903612639346686011772224820680186158923615947243133450216574406256822394092438274837508047040440377610359324217729355008999048882402254227582238723803377671298006960878476521529074383264496596756763470044775608965411699153465342748327725736123310026054264983727931358863588513457928044846143105590167731216878636231881634874124815491463513062667650653836915718762561485102003178534694680682353033765915765390516595085275655903565057128710578349288933166481769211437660873393901422465503182513984046414573347110489421408896412591898118278204801244870085262039722727595433054000105630748628603064242460947380535350723133381391667340765750464227586131269093910919872110486243062961406872127415540243431811074646236701602654424397235735828957743545324020636557688961054261132401002301724123697092162508022924520538213963844488832296387064487350475055846922113218487780603617086414278556165415899599881720623391283346767288701217594003031359802484394511249289823738144992679622528927355481287043021270193589096468623055186791621064632687858002985934333907720361770049262605001950358078524526078439081970263927753213447020374934152132786414823929900537179908053453981520790004219210103098598195951931817087381229489471138797276624172823876706069058858200085679089573193107150575108740709424909439536671149714084605155922416549589295666798418991167176181384182227355248559071135476281573305206680984301751443052091113470098589134179339193163013633461881407072072313284714042861814955025425110569210527342907472066393649470087310226461735489813768761228885582451913402698951841462012799355674302846160113995849886567370915811235684509785409878494160928880075615376225200538552440296453199028980949331934874127968287653869612359492823350484570819022046131804984877229298937921428202683161293012198059215769042838488982642816355527409062801789931650594636745060927364597009209002047980239913446256076398628448517022311832885289911059328849543180240682413478557671288607549946137743072094272338433009232634107325852813847368202325863010652524264775886631701082370048805921839399514107349604445611917606262957382965750603800465591249901374946748760281922224281836856078364947575931035729216313719899221224274570615318231516659199139381054668751751225786477152908238543466007285858788916042380059651531940986254810408698932041062355970767889746078862091887173714224166586645187260728625893020704733298203690394136405385846100438892361775863984978897386572012575521784689211669295690633812910721966796745749951678925634304655567159735553147668660246997972896029519456671194151815230187306779149034691992972396277444414876975001225564829232971602477564850411644029260424834420754067637816594902542252787321601585290289430941007188630236969996239158309537957886772953882193433795485473776744396958493721432233024073497331093516294678468631978087035604909807270348213422999963551584249523676929831506180301612862260284046991683220822821994420677317004276546268128110395300800137113576504193462994152071818906720375450185508227045224250115472788119973102971675974341060048954074749193760718757240531832634513935737504029418454930986057293472314968231463191949895128963844577422042031960607932624038681031778269061326419137035713968847551368529988769701464443721049015622986835396922509157009748720708012497678957584688403154461107006187451253984688353371453165536404493276782106092924489397427815201205852863212824228287789370499389762185875096441980401231722030399292386930060613983820678112056138293031561851901717241190310603218263239976473822397832895297156225053228375803972625342275469184099794719884821435635339416403840801852285271281529143563461275538836691064819207801045184020387496724045289264762026172340507280525869259374356273013638428165785385043587110281364470736246858294214624576404713787591153606699338298788664590866461567505157999497364947054149064934054732487183300917132656677571341968790057659057073033084851961167459837146887212367472028120512923546185617695251713426689317160826545494252227173180816455287149907537518987478981283490060841258274627744407795644340958028607645703941296153655526986019856130931331247291733254825161188048566728726664394431292000463826141247226231095050110452533306834343507746529098693699955289679405900498932510095515538593062656136685122557469978108478123389270077077390263433502999353242709620209403918134986410218277813384476340677321528994026698193029518922028914741800325310424873932843115662996407116980491956682615310951728164849624281822411010439073304106748536923293901254735017943800806203681416001674998286115414782960014268628212749737089559895478986195217562105624940181274882954794116936676256594368178680151963196285939945967262307917900641675859983086941418696709180090643056459472878312710763238547671328766699924005032357594438748213945139270815493924683823763827205922696973572751640965224167915404145373065001446781578372205577528806592891143810058556297254517367131061100397737711131492160230273518160321599774097118373890853381728129072322045825817279989646885871709181769709064936960198186683644173718307776196131137723707925470406563878357995320421353264345041712316482797688799763227880280530050119412556597109489592303377909718641328485837563411165157083990112475892719067143326284490715463995533851566241625435109689798095298702229131605316240084422599018402751133727451933139161813046955513273306227318325672349973742443466582265019801892660946119771606035037985532287051124925578093616638386422275927537331398215217544590946505672793382626241414405266281090994641220082501118102636677008199401532462008467759219447553155215475633124171720516614590465012654762027069097189827803305994293697230578870394932705079680997945133959032569383468642913445601195035440298909384548509692565463212599644768807016389089429177226837247364703107463434937780936396859102019065369607606412365427315579630356163017381726363718424922140242650641122944006178902945947300424217388704839805257927828320213609515184662913905273538497307695166125155711811110195989939675413055434498289028468521358097289904983562751865431901061214653988126130627345690277849907010816049330825483669854928815343394723469623421542244458147325279430570391969850567994542297134730955684291790007833150852614452254027417541988512544154347419175407480962497918931880877434440004728863661480456805939117948066260045824517841824246862458613571488362239058393587448442698711853529095922626887168079851409671451494164629380609868829492487632853136183888204070496399838748664516091094314292646716211908416605152604706526171897851219583385881601220276781226521836459470269651353301983173834953161074335134917214901096979386504560030740298631166829568767491485572480199489949161972368013276118655716369796380963397290897909716573448771975915860586335533219850791273425545904933275846820958734238832668543748551024270147668967519100102315740900321696825581756946247754150127050473756685239646669195855399919662274481573985717313232628185723167536351784869732136527592018494268035361757485152322720988647527197368644040615804560231531379041041319335893815885644757826578750016494713281499710945151650067906574662159904380816410923769463895962673182353053225213951312372448879205792008227179240298621575318994247184634412421475130092288739066521614894865540963448138550747951714079149105751431645083552547863330604583582920854750136069225583455596353749939710493015081747065907928071908640906319206519406397376766667125947848230137898612358469600042853166979254074277527052183489106054497360282409545563350944346164040142388986096717805143492120854081376669553689902773890040429623998841977033856171023246174880869968253951823399965341076318852159546196982503061686508072896969166807200022389287956840325105557960456814652871183293506235361567392964535742480318866741269371176672671175042623138616319222693199142077781009386799625032997526076354037974186446203225209404423282569691789219790378703776493512066026351023617698154974251669895544462123440586822544275177092906582120586637601510735201406944941067153237503607710539280756337720041171139545422254472008296073866830718619850951229023268939653604006823259648163394536824682941910318500870146315018201374864989153608400295921578733481633397538434347760671947724790013936566702139782197348677053072454070883209304565905881867732113469501670161564191228116918537322440599208602751581924530810335286980943812484176057780484993743166739258552429688145935233259824689582186860499203390592109612061763384877220285192876797124859644673184227511204879946983252971105384086306063910699092103119444574284814003706822678219129090128773103223041363174837423541767908377917795574541587491115051999601084359415785866180731777075780820499461285303300218718651211095163907427619358289047379922373024464695841681631481888255436942845488883431366266040287867670842119369842685634259199370905623781453283053651291192152925341122103426143156807108453444703463724954293127987734343174604932145737761320634787043648358088661102590988597000720427176864941174848058350140579259683931913917198041545454293915304653003651351404185083433627811174965228731229374096610616367787977294842165804178401088221368738670560769948015883655361844280221890464198072071415767659147586922934566053702811423504549077303523277611350752540758922624565559959757068301131259048912600095503657068140771388522561297479607075347764878659197524994603520747993445049707003048311398433202290865493198215219245078556914725049096712481908372666354179964646265642126891595200409575183067876023481600861793656561247727464965134218747506150049775037797598653188105574911164435630965693875079765560123164934871282939520036567376630644798671486487465411750756035198102699565765013775785893816449922661753288135998321319537045203764584605234092910061786486885238808654460727944609198199847016281179474380945089122040049991304959410390045483939302436137940563671128131168249183731762629160843065359315530404072695577056914034925835878468481068531814145758693240867971273974982058997178427176704863918597673732440927110347176095293070832534279472916580187448222776173848204088540510742124449188442067411160780262126864120992864009133736097270271816809254460288944655882414341778017819213150775649741493693663378791828367948319488050045961568898888725324730424928574667786673992808981550516648401697029518582771834169613692606905989810822173590714063110609423045289513084093022863931474456600633040983291506141300701642555857555070181901711304189711162959707893557899492491539401990192912368649062794098159092347518623320746145643762439385914828661230362591084802045457302627369198186018097497220850695238788109945877650671930673988646129708810514905731938154710602695834859474879911830704242778290125912084756171317390673185980569906922170087290868231918510949775636342159233729067504369197651810974128422510898127187471554565379563191782706178046298935622401031212943564544337660542356240256897035989793928705798392036082274170428063050723027921197883222753562675184399444235116019771136185151228942175263978319635026751221777087022128472001808417160987687429913485800891259229422213275987608242174228311009859360054547004188434534456551237779884342877067204604360312612249475243607776297712505841202907829939162885211357217016130467039535986980737851436254634434859973788461251348765620593118779141554055245529999367629307139502334511871967098421683087512830568896475231462004255289540628366844531292368699026818520805133739894761546663370374817230008664825287073469242191399449077861592837819490826937761217047272757652008948808263558938946150713118094428129139326007079468834524738500028041651470644555836871855077556832038121876838991284804001549774410233115569221205114979194748128504598465598660770612094454304684516343075584252355108436900994596269135318361939866852594594730093166189726554577184678563297123470274604854954724976245494314637757187773203072053346606844012269708972790344964918173944429723693351969092074212073108497393908639237601438272441789878062145408733071404724172013445886124020009962182313475124632262903245096229332495742898064712896462264502290700943954465320397288909571637098579065838616599010071363453275482116029998340181040333191570680570960906218202716934379975491196358921635722551799595297936709589874560669435313699531397060456307031039140540571773212493041448646960922154219722308547106407369174805114363041727715868462218280487810671457568556848224133309510004361976436808191812751936293565921611933393055968918192156267539000523805693407773513876199351423893756207290373409370993039477318915322010825636753678319006797150980677818097809082988049355565608603633193490922776685243899050635786839930254055311190135850639598972444640594454894931081022188285725681537834348100717995909888268426916778536135850431552250396324980784337578570666577063106938187896891100328210250330077878790359546289782658884170466035692640830839792319115380629559247098769535714023519427297284837836000653307431721372574924584443671503118783018464489714037752136469364565224706183800026855075720644322340788213184096736285990762380750530072760642607979179101637812002315070561983499793863383577600796457038874138361293871696889913928345276580897741990201347013731317586339347882172664563741839638894228787847018774849978430643288077635209763026408160463081855019919894832918507130579714840291250865251238941371730194097386940147839655976479014664272282107041347525276442796101459631946932786686502467770749402032790605121138132840422069680734428052653833192062655658664210291828936053303767760733471742917862327610663629953526577644440414655445751277562127641396517774462459688425633872143475349377897122390686353359643880011839982242595594877579984060388437820764166778664205312975692781249389589349168083573615302910434934683386641429832401200807393966492258125485330728607216287883227537481777309678022192563736428807280673049869624849901814344973068076606200021952088275782803509385377171476815160668025237051959486302859585462995112249620471745247259168885052586733479259268906510580598099307989466195712480156176210034518277588019006472228472369413603980823790762334632764977036293070449440276823295171731056891758751887156642129061329677187009022251746344436296259155965268713432170505919758944571005924641597211486090558553284178443852295565504930393543266095686822252316536812395689294916950592004685654703408826160998102051657613487918812910794011986912961825351392048156149601162627761710723216378379944899176181833020799207704602873654773854447420939213308806171819661850222043103826536032696398879657175414238029730917458088015946559803251458991795755512734632288297544566301827822620929664859727783107636935108319377852128575844899235738777664525745789721216864436817416698901635176618873951651383392458185338948821239006983572225285351414664287967869366237150698404585057633350267987653885883739871761813291090287230605549810564156198063220043706773967074575057453949381074458221379948211779862777547291272177215261415064470033690997942383655253019322548819365703229709243224779434959405050462812192948952628120000371458894737683187085681100309816474192670437888155052974170189622247731538078312116548707109293656395409647575297430843379932712046236295018970613905484850938266280009500151749993630750953033663164495533954778816885784481654794700304525215880419001350788145376865844086826512719943923874201533243542248558042858165620070777456473393194658345914747456157669604306146341499433117190908084393301641539558548716291643498036274609461059093349297312241107869497512116177081253365834718199144508021183458100628254666432124599768992781555223937579317431078234174053075602395521738644496819324335329727664375748910974355845990960229251221450239878231525842890994710385710519249668419221335120022667306122815389021502005832511470050786813255528430854483014074060722388805241613109754551139790497561555003704731318425803336071048684108698945145921169416232645605128804525578306793511459521011642111779222177294700183100068494888532492914521664813775641416331551598861611721825712937247713003323486668605445047451813156213347742119920339153391242459348861689035084679426733608882028164308982371732467718195749744382626138025048453033495006693757152971941009925388537544660622042474573157913210769218903871550087604164337503629820215125857960614599353159783389347917107721049154909063482185873589891665573757434279124230895151838279126767381896755125558936938823478206168488763559941586326416296295297596466214456251710914237665656044197069011023765697345384796907046038652263137405605453155762034030690672454018968902737250330652920279864200783209474302947423057547396126221683264373447050659701339996734499903005847061062016026992376770798179091456238055395127102655178424790337693682283321638499700152683266669519998972212769506290980181600905503371431142756332012999175785767690098232075070500652469223715134074921629486893224317711862784902873782639355961971692352140414358834499195610591675375596976886015333678621016904026610804595260464298486589521440365774004175775987062479802182402515629596706695456996122816853166570553786526022480786444903608079779408342508151850662589303462772057188369764457832141192497214193811855538375520438371658361418842876684443010808040714482093961951224313245472361127185646248390154385323355624070425681579374538861507583027123417748963464105595461225492794548498762426184667819409920870811843665438800190276399095187602000520680574666559498923411363761563137206103201034970197704241174953376577896807288119316622547688291637521614725488186792275424345572772558090186384213575547336920514367108693467528026610254807040065736300470495284397440316693720732008035660842335860407222518019743152834454496952118251318095266265124720445112615336327111410885446532163268154858049030374616988758484779327948220992149746387238559021606184376388147796693231290732324293099605318303728999658811339063497260277177973627158189058451638027734913836772825236007573275227476733659631823283406687734358974382776319077923676999844172830700488475281391317176857542470542278895750792048322801956704340917999749288223441175385473022752551795631793713344841464292360737356613994581155413343643433154681236297764869160001987545308246694927119472732428941265788510514839706240206292126793312919185665983612493284732239126210386804720680024945100744244322518494458510704766891381407979819556228555083901623267894594419610960877852915916697631529640948861570897262474987759872172041644859336652021539486698069426982007226039835385605795552506635243392674455573025747649872652061325427745169496465170814759859583759116634825887507079407802898064540107292203440604500485182705652614410255532669683641110249286107086064237185171414012004966568502077833711770370782700247726371318598822507629320228584911071657195577731981656614886665683565369344000608046200684266827943984696667981308319478636156551029783727292363913141383782594752536821731006544633069111447597350622216772583560713091034576657097014011992480810083351684110210218963035060209246347251923600997499636040921773461177111561049890640166968159096535335783261750582315385890344988526627035272917629748647927477456901814812221161007981041620410270704717767164909954988381058960070758353148411655698470318891044964996262982450506935792813419595941709388902186662994202070356119311961600648955439110172506940513462531892690798481071950840878841984096182539818795999119757964411508653262540284186008284499986289075819391684918083947209335729733119131346588936046356503941868742897534349449220393784787013706669988761073990755099844382539724500751326084047603305575398408002139246407683340202073870841547759250735177669631030044934116743193903785629674579830677286977180358566893921331683048718834145887737807914377327610655543312518354053161164940438434819364278375765588907266724656651799729932398795558920092539400517811947738375779504424893871252422547306097502098262345596327457343270003755070177255190392819204235806747913345956145474766523501749338733609552637078289504187460117423846004473742494410087769998788890756127542362854643985727770496146131371336990649209527651304992755153916618550914662323617708382227096069767855150136240169376363446887169470362138051099323491654395122518688137824628419262724462538178709530493055005446932372354498715337668853545241919682364744694096273274306806872496312216345152208879566851038310781420186899697558512054085517846654492677960787242601464621412937943918453315403133677563329104692317123776317652106329724685207975583144206595578745069372653998855533083646990630509403189430240268376942398124641168837487151420259768922297608503674981483074696454653714902647123413735564334281152396950417196492823118368065474460550459589294075938705747777953514360108241792351618157671265996995697010417891732926911834837714152094106130713588957547061454071297231690072044991909578818852901084228784284084775635064336547273663470509446886719685415868014832224296203253713427780724341792112579800090693745754824098172253034478042698112469765546186631698691488134230320098526133931027176806752974553984918299402707373256584784264113306499242127342762195416066297123383641525206811624402242213590877041994183353194639069492703512316109298219034065301118248240148662573595197975835160508731940805187601465208004689409364692760627953822057452670374222632779219642709641433151692202474583005652225162758041039718634284861347257238374440254176704168972146198434669544440092635638527639717208817514862726727189192853889561528357024903041993317855709006594050977865233251773367995853358776983819426162144558919247902747525963816604749916682109585914374919881822806590658584179961881251491976509697599161211483413627830060702736220122235058688858084244728382540153139389834889709661011909383323867261722672957796921741593420719135685411493423203605112954899123599013462959217470903078633555990363874488670816820318167354436020637646457131020121489076277675967583778066393862593178790656958054336311866484969544746850790153130574823682690389460190410985458685227120211361435918250632261923291923097230032285946927501076248134334641207326987949542810010773616978424685239239542939045317225427836914547168348395023944351756363548243197599730117404388118439782885386991880671473600143222853975936988918031858948632919346671848498273509470306119233723455403289470304026298979237790107884523411121835312183002011445110889944633711606012514176335979291703620413751855782030523164738490462662953711431040895655801014396366250005426988213401622801948452644197115138463691529884528608144976015954152736189253783673834041032400291414361113333437274179153206614332857222814457317403186096738019191061768360460623315608771591906702450100443666473112099904469547327541399202264147159785541981856707086453879775834797651057175269515288205262310923760892473917001731668534690045469474875929098786580284036120306782307862441854047048230109792032488271228515046281862204048487421099829986152283548306704997851918853324643634350459184372532996867806972388769765744706888737493364469549369324945684151910084825183051045643905625051852791225467681009180493039626089640422044987352363121101314983757444654188945811022158755687242222078248443276522509748302173011568747261705589551028712322558527838947172836188809762989234603502410179980144966589764121296144470478086938533852060824434606082712484835352773014052182962894062805784280247400614689767992828506854972895367071254177940097605609547697027602029865705289219804806301800307819080792816343965808135716462069645129119455062208565047363433881592205712795451988787201227521260418782881871035084395730888499376082625227436342748436578307690464900054605272970663075826026965315794734307738187453915696633255848756812928772639539064699933463250899127925487549197866000256859221798587482928572935799843424231247683246704101400422388895311613076416580055799809724292535047593910918092770654881522837097696898670534961975246113359564490613758030078968478703916396375218464403376526435725173357828325379493909534078298592754311644612782655238257497165778226201629217287322409085147323426884969624191879006835489386139571109374251368155856037284776581217077120787762156443186553864161272573140393028757725207318375712360910801417662237236490850125205135664983098183190542319359829074687866165610742299447012308421890495130821571622043472450805012011783041354500915362203747641225613787134821115285159673517832448113003541157196300503792616885735255054257692082202477132162066428455374946790502574281836048953097130179392605627766760108815192398760167299248398343125575627332391282451211934627457855945728495948632247051505610148535732167077462114607669221065951886463208856982572408536137335948868128857929224816007860769296631667039854864497371248473535228737219492643686768560324607641390850514436918262897942111814936600684651955044644398129143008221662902710010751735309259901629509834377193092626888130022101353421897260303092389831765773397412322564672815349949035352283564415003555020574102914654597902918068222284873345062132348662940191949332897971154874782190211911221098804118576854959005631587911684417178274718653291584028400453277066096887138508937562913017445200509962323572054054452762135989672999537802081236217658758957174384540430932811718227962640418983163799992259954509190019076368519922411633730446095458185907807330601784888386619312570287135855985298241449190704053976397020463674099871530544895072317576612788242533057592239627263557279937922996305497038022528376948084790746318320504038132121633929690245678213482407679853206431861650406905574917418657184672635126483144102121020407409013750792671690197439785341857097713398586362440069736365567349889753294755955149624088150379920799385622624934050958985413414226422930945701656050572997435944093242702730389604619797698245706565270794212271889924136321651942050472290247896515554134688459202975448233494540578265079830604347169190826909380722277596652496826506394709534608573224015672096353762046077700765437801812499464703908090251831502477107175715562191878928413010180354718901410009523973507876022905162459067487136272006759708746977471688587786197876613638439749820094154453127610521338581891529915608456007350313614169900705610773072951081090044508504643760149865104951221830910300846779534110950724205892262155281975758387777750523811440379420810823455956239906283611175403249420827428543382478032181395871113144559290034591538970775927777916602000430754932039300442627251147116559805283955937350625412234061440389712498624153658911454267436560502751938595530878758774176646273375974506647866829208380688857521038572258818502751388884352483563879766716259162921365656552892871121416005807654205780735349119498593134062874496263037120024161479587826744502096139393613320167016124132905362196811471385477888899493999282226134712389389818348026769415563847492106732356642739743051724611191533092720953608483481829630597434735037228853386951520464337315643716786596969850125484378346664211271303826683129930292715789115254634065394189465590728454073038737248617197213240586365199093992407647897098617115126637083646062401281301583261397841135907101105738954293653464132018131096230145328226718944143952859165694932850276389923443001056847867913464717493661210922937020424997834750363002023451661670295153695308105965379250946688416525984081399006562743363973526332152833306457499475946725715765782975430143320652245813629469240948361222030995509023630633217699507531573494702773324280844763558997483317235270996467004063141343560657419518025141533237726384078868367856050026532256769213614512618901088156813542260034326232834410120091168821623852220524978776710186744546017886296428346606570536444018244004933280603224450441461896229000302999597445835439286900437434069272885036262844951414433422825426710936073637080173747645228296859214167184960353501179272384230989570321135657472281679534776408445038828585296148762541749562978837079665572612679039062465994038618384352316618291173524522167962408738208116149964413864371068629129090731442398987547752961356219399292257762126974603725108584252165324290825779343165590968976149444778677265757047290832219935919104694014454864987068484809869746069885334834167935440405941732494544360918647788097818481252917544209853159555123728167150785087716813773032834015777462668114818006937525427386595581060542038112892006746198216877184220428290121715061123239872050796205426789749606956244744225818852659351419380026738391411842741702008101106533808685006207755982984147538649216680108408321403813910096989103013467568945125184525297802366599775255637760779207038192601380916544629779310057034854091579515207082093480690515181832023797504446992970851844488881274431516677367718344327616101112259664915784831600429748357181525478115582285310493017925899640327989651373821532465130009658489161381493868167648784229108046214405395049186022606718713024535722932829954760147436595415964083092895451173450591704373179687225738138853773559241062732484907975807422234954671195261995068875837955018271595963061945966788991547464337625930819438312940939307190445893069315964845260363632949908229090980050040701609257978168288349373761916343677791880388622061065115613039152811057994010776569404561206012496111602971483315025138980201287436837257864761308542811912705562053424901403885507453875196026882229647834425308781681788924933136392337288290296052229530834689232146555226523579625393849280349461726252316211116845730955666101498167481130417747070994047687345437073992053444635550652421557393156805327598452288170726031740705094116243041919782873600554493808745297837211033435526487397434687133599002404399539997331252985967520520440123006633757105808174687721040379213492843537953933389829384824652362928993852446528170586648150282758832486593692475985027242434507261738994464939242596177295416268084976266096482537096709296991626646827854323119628053026100694114100684523461220526004470099834146888429519677051831635444338097626110938960955422192501668287325446910676614718838118981564316980708720615557780402035480551293763254207465434271066186421176771763074637960323090034203280221389952814684886437567799701605155792489435275630295326421218872145276154597522503646298525688444159053872012645570682732658694471830225665632169237854190460907898508553919459380267733231556540496395709289699252449431392281626743434696969265686076737912836747046983595981333337627196635448832855860334519820063861868415495455168584131028664098323330726620289258693237320480485068650210956423885157927859275112506782483581606058679035310778110133599813327129992824037327902135824108460070721278137365561672598284488839342920907389763763972008509727535688706555385511916010604358042641909050026054780288981284177950681580829529347098787742333805186803173728172207160586703053438950668298215488746114846515813688994278759962416724257490928420513110763817603046555742265709825096242541758758678023788096887134593558800247510565677844767748179758387958095585340640406010855891284954275822410703525407694886329987808866861869132680454418415925536914373371422758989447301358077336294495215281408047154123160382825007664428607679693546901541270080902133544524867159577956458181646430374118049823361549370828005095657441887123897960553886412145717825884877975164732912109703569893867015905971290153924876063032724052190691538480618525551610360405361873619803149491530678788953397317793179145332939521980539850801244724245882877943228256662805276064778528604324705170722071162584468111945300229727312384348585010685178413361139033278948437569134994389198037276994678980750672174082403086685786185056809350464125173362144362129107015680185484671008870069032991384864113494289410702552045576383555833992025224146097742233380650480700258577114401397717852617320653965141042298940919804819884630848138736165556064868984102218955710831007379365290174832555372528387313365232093931905078486867297833925404543542614492736305998779489620951928486582744939298594779247104107937914753549234292022095779607331861379127512902107455391899688504618160080636323803257887221151912604622908182173817648307206010548619497315341073526385284171362671759326644678211233272461118336779145867609241459885943685106227661103077066935776454622688106754277229821901252657803451470072430099799932743954975975395252055317306597230427095524694954842775132004049110583281766788156746263156315506683194454824642298725976111537043694225777345472082444603713508886656627628476530932860114725832480942910624992755233471002495894163796355936829170186810724796192826188455706424798922567336893186342781715286355815362935900830323835473774562947777274653174117574842407780371821993503957069919227789538387509156207852598427751936486358266355300005286378300884255893739700388617339682706134105896161514835436841699326058473245377478738183116679039108170042417014995244540203670678530674264702687572089631506297322899574396959602450211534279909260125825828911418980833242150073918730416305310268172943899189078813972715665340157093483684514641682993147047839260698645470183593267438771699322503501053370369294138261391002227301444938337473074074170420619021039418200376279146153055915413291258518290129706203761106940125737608641567042065362740118658243424754532991829447285499389090987657098928634637919079390289167723492874679973603470859739049821646560601489461028553368982153249144159572062899791962459455176823993742610446575880586273797495073291866213874041667208107375355803627436903060714992953105431760798825058979749804074683166359680867929521585820601990228162758608906584205732379388114075923437001101352695777791506214519012028461166615254121316186759751845259260573381291025295314857607543663587464387252913198789396880154843335397289650956546531305389823943495371663999711906659964576825240959911950574616875808272947328963875400868063009023676021300014993324734775842435247232925543334331877904571834446203613737473628625110920213044749203203674768414156763954441957741030564126514733763310607657542885203498074250311126968121439479472393448987634927436553781733947324679200119203549656670435859085382199322647807860110041801121739131086831533779003595502176096400680690138329296039053793289982022673899133073739322632425513985468244407966095571027435705981346312787868610848597380355448961981025651569061038432970042553890768213874167232193944733694067469725318912494013052570447271448053033857415668579879026298105557456107726110190733283900423230132136767773256958693851687706604793829537837736136290636852523589931213595367984246789970409799818203196953919585594150058910723274940447363555471432462307733098732411699884070285525771441911472087675368002247831027113352118076132228439536571031318120800397420991767389061861341552612805011672134429933842628283976872574995093661353295620364941773430425551934446075939669581186088321725561344714779748097671459112102122431026751371917922834053247855496354821752033481301835870378305582939726969035663754304878767547717945724107010670166728650741587874732035724808305545064791140542317558963380841434112592347437533344622780405870847559205083494225329818920951431962533684212382374846917892006393883284429888381479412901299750388360546239535231321942023924384032189148558133305481360253564352429895093019280271538420412105449479024192232961428527561111663511279943759552508926446680237867247043325994088243629571065540547778216783314828155025871033356254799444990803003484941728780861231256632029092746937051500790278288470494886565534729648370263841532482063375072164982585155883561189019703971664272638308579772078659737188664675000190679524035295592523468561737416350198185359150136855542718710520238236386381259894539809474949679640355171871230648613040039226344826678518824852609142000003187731694041175393858868374110553477998354330334721388069131790435472821838171793995326743111806693570935183114547073230471100608474577175615909106405835135849638280801027587470104220389490728739044374750365466555031889305089982529695840051018049165790313379363156648733841485939815151164619903730513495707739364340074802994822902803840603589340161843093381211669096308324145473300776998369990396751770633354478577585318960341090134685812806227805840289683017775516500321193825433682909040150389036223686738567312665026298464635076973546887901132772491021662591480734599638480861636488725241565713677744673980091165601871031395058111932285182145688228196131694567106647699071294685919567284770288952073824483312179544261917185495050586427097982877935211670622921253456707366010156718002305145259622480261616541926345578185996160749431219963892261261540126248537337956284168511895593719234665218205884555696576019939822317668953814538243878776449589453566714392620700043730619915294859517922517872392441676815929206951988866263797787310962721176949496069809330992198147942819166457958050795705667960814464679241505107715683070563171406597914182421710034810947341612825293172470597236677804178254900518259887756883012572165221063043524699113538778983609053637827299470065684323503946218982453015344832920422839823703649361356087599735278804239533646995385352361031150755896053783135510224814681632172701955123268364843093724571199497497034946452685978871592949368032260571257121795756141606443942952634130693265192720183669271113874786896022599786008548259547235443356494445923622505836495912166052998291634504067761820115397619835100496787471909092848603044576253498867284847422156420871147001386174976462707870220210092657763139600926607387069344700863427430082784654710846038462761974309594721626695130077503455610265891442804480962152891606083881065920237786548703944614119498514200810867277363761902306769431715896428365191851146712837370862446863661761989804947394294064905915561127876769491013047498291637236876342276163428957859257982893920059777160645915459619050297819194676803719601614841923633513371101233808559952631118458678210136084539860702754380022022971155112400824094109339321615590061791149427046234091788838176444665443438390218002870613236349335323921296020377846455206573937478808615753885526241520982038333353140043550724781414123802200122283493981887323935079337210594813818635023972886573592340287080429663993234142080749818978298267180138944623762307021990571286104682941608939166915197712354737363097472221747732049510013176551791040962438943024479770401393362474171377012890141492572654454686221177610515452266289631506222451744990219700251906582188055031966812326305507351030409102053257200262121042984747523819207359109502160218178247974145061024039373558900970848640615024932968436987228415328969460275466021562454098382718671820227185225464259484528187796562884089600068439134645276641905516853522041388799199007460778273662546076689424333446036879076750540253437829104029706714148124718897799056898726305938720071804737238687982137079135219255470221548687960876205151146249055273943969080447252973748930711408138977295106866686249420012468759198030218240933382208340416388062569086815185840730785174869952811015619901512026976126196149105699920198058627312024829591878741674203497049142508431479863095801026813917760948797504706051844962545603356515579190188126585210404380821775236823264112448923629460690089013380251333181256211149041271103886289307373283665536393619363208075701353829781210575630335215632187243003355313518361067283532345503184616175255278988014980870016768630426447492308353255531218234719246344401746650831961670670189070251289996187103175046139322517567496461363513900965330166937667953057872131720680685627144445151134876431361840668606423347640876691513987028613099446419129967223082500230214489061508687480844651102733836102644356216960807267062663794627347630160549561113756842036053639650480000164354876442736216045123931545178282057563042836959961931942084441384657989065205576508465894908489043211160686741292352345153600937269575001182819532146243464588508815904349585529015521245038567574388792076078742729437563343349194373420497337607526499377377506826084636345090344472118802365088929813272246779686581369861158098153700118736354081263298101676480799114486131112150918454271194660879322232883444682947424256099060242043102094781287164470901045460984811439391003109505264450475810459017557086525194009308478001404541578922324525155420632714776808018188929706405406518667671726173494742365515213037608466810350760453368416352159981704110523503602317518693915484300186815213100918724360061999777766101748114484673341936556611290834344756230940462776010847983286157316103405227044097436450666537114722864741077558220539342383296150942669165532744861667653182640416819924123680473608594756041251140447911712810729915625082072087634300542868007620673813231137366763655502375216779579770030266966994157687114008318999416414359554666788162132109498722094314880061254337632211288340781974463319562282053554517496306145229980899574891487747202574515026617781610984270736649775250973581573330499465942907265313938925684755141718671956813161622713839232567433342693400020046976781639943332777835408216545757418639664991336339000278475898875833746419802977181431140442582988946327876375637737389267645488817913529725243204557076532384305888877594550331227757932040373633482028063713653170174790029877141820885712597512808813016945520046480125697018578656879467271042681762762928510581314679122065746168111950356406016025202583673190550636308637056247844408613942358711004905290594307812281707506468068943213753048029252836171339084910108324322167127034374017287590599968474528764478928459835373316637195396076724457563363311700921125538354636092708399461150911120879301724067413552587659910873926682361120203201532128814682928431469242522740488611001732258973251975792196550212409891384988398970198710415476695237272292532893095901401544861815647033102200265759450105092373890030376494325111970839598606344831199755471502506283891067247146028871316000019965889655586514542933489391267268955261942193054786504856331979018030348998802774987274358991833668945291971347085376792818193532831325579844731158072665742504993759202697684713997392418793202434404502890043721292140179750422299915376801933398780957901047273846739385490399230094179976282595488003705186604402709657411271953617488306735915090275363912389643337971406216578732878902169702445747175049978787177376132552519298246884657478884400049715723950635550888128477467832173285937877737260521396193026483922837194295200153373187660849030586717142890087064768173480360134406606918119761918159942873553799093343207309533309542316940023742815359489073917294867728589349631494652921969241544323554472340463237276674640284298117466476078728862724481962037188236021227490448149060152760117467128535162821930595002578195378948012788341777156820821405623935202166599321805216220607548512302338818261349377818174386881276561590562035634426395514400531295116333818196573520701224297733668843501328109529843753640593905544697955458757238960028464267490452361734009184491036876716942849304650255085282331816910924534126598509918545330964004294436233748886659869955526572585885268526308923321809376235886011026984035437008170573557456962454024202112680528008296866537900906923527446405366295380592638237992809910120437580907373594598950101889283966418387581073278650108945977253177959698464708334113759872443609027279478079063456805367053724909995756732885337408656651084406731521892236192115477282948132965749837380220904830139945115773249969133005508452204202429623056271789917309472000935265228431628270552148803854716528209632315837168481573360827392641443138145445739990698663301350064132680990525602841810301899935717384658321056646622827225332931546307175883800739386520766934871945545447407495344265984727275101806517743161478451452595398442106940100245527968495327395340536845971644475227094834093537936439961521045624000717680821210609066906135047288637104343921050831373732484369417665900925521764012657159283705941361246058511910831430331371598482477650981734003185009237682163645524081250488112904197456852110566692436446966265020915843531061319549497218555516259747543722690464186784758322328135513125930639911932575218803552913256265429074771998152176258696446302381638693679426348358134400141991825436050805719765881438270931475267462997041476068819974101367107878953247122629996211290833881650896041587913862782509746225289635258197244659206295164552181178243866579049618834502365192335658987804369412594580411308423757639870808287549545197111421487703148084077339979138663483062808620456261583868500616632830843745460155121291442109057663217503425156145265746002141823147630666134553420949562001881711146440943062513783980354406789078411844253536853787958959464776217762583136260206317829656082496012763973348508924651531802704449819068991936394239746924914855351628475294137612306970282342451975427935848195678609069533801832692619514592425950362095784153034066292007287884765750595359966769615743948192063298410098189989353530814419701803818771895917620297145474513644148034099037025019683828986756451982602948214895912562241222205885112553692269208126508204186082074903207622662072178440977206474041355917947486103395572078405344223849803061370123874587348267237582574672234613698690182148843088351354748769244657901807101243660613134406269636431095385489745048830680755493265424339949389536716951304206577743213114744936974884459356286806604753426642775465396037103644395210361176458618352032211701726750678472318463787384343186611794017783341693649574035603289933399882323151086531412716223517080698443797521966909886104903601191940917713788695996527790678538910014416286767152142566789618622699194737334060557521014099549109862569464093037818785521365956291161413303148335713725950522854751058048269783188552767020021806746847156777162754019525787300964073160082544906752705964030067274007766313068589851113476748149802247821010242111716760350194589084982417699906920145210099207595115789241834816779379473906646302295402868732687804921833588950262027424494484403172042603155222708154648375135696387844811374755059585481979847258478320494983561526119651873800762232155147950583595054377400918930212722555284728267603807715608646979095875399284623534960500841354837411912540649390098190453952084965496171165314389537610963552952754881031346285942887237002674956128770997002763621165828214487407903282881855773858179144829236767030161060516906823827775491426239389068838373442682287589094459098634895340079360305898538820638976845492183800214220623216880285765379899316836106412178643348776449373354791023165604161047869781652433270447753460642471557437765008186300415627571583164133862381970458014351663585732352043141393024475733611621272459654863819215919340613788293798354737735144665515125931670362440107159895075048938075295920854495736875209678201041730879420864181187606895314811735382868193970790350821493909266952512175623407871355104095692573412569265171526600515470300545493339269815023364003480036570968769940757515579202985851677843061401289909739521681731271940281876094024540129474372068088832393185474794634168677156285242069295798192292900694357955332192083650881568705147702346776997467144217486832389418547191036301944921915344420891340379255738383815341296309724275633190707403798584316368598368355210639847964054769737288201033514380599333459561360695442858749500940712648004496411995722836265335753083812588138356122337109623087668224629906969644207467117410765497497356061518127236375241657514435515784642763750546803265977932139673516830777475271719565466500371710148197361650872201400656947870486215116489686347655735090590936008299728190951668619262598194283019861879680215755683009126744241660406245106877711295642204454634903175799006831780643696396376573299035756346722168804587862653958270169832870109841497480044922850723910907595865808755557217058858351661192343327645679438279848266296947125800459964854594031220366990117003535967054543422115359128415919900744430593390953892443712924764311631454682169319023337465713822986161178793033801336346303017497017303237344212659806151792174327148443562897535394760890908633466615889108619401667870161740400244051832641486126232869175272836215906681871921283215426675679709397331187679581799556126934646866349079294876696864736633360217183355347596957244946193200659489457113377870141388980063558479927976818629009494848920952929266993719085128431819262726092678548282448789335006081904395615270997327479933600322516133740536624270334332003488569518317013504078330233930558916756074914111377115198355843488582755284530733202977600773448447064202286409659817165734837747057484836402192193379346645741884882584332885723556124719267071123163714302516602988632834542093932224983004369578356999728773749568984273490404600439002026048027941254216779012972111267095770701479608722189412785197503708929100394206684378698323901904981348786314973534506710171176353177930199820742039634027998920998792618463476591336809056430133793939263514083754477368866801796581550795747339425289146305313304182347088058959934347321604670626994402721272895540652604604039811017051754813632780587135428917556752635646801434929793389900694140607768375760694860833175351360013828803629086163742064913503632838806485671520129598070154648285596418606758086742470894554582881183180652875523086674413188806545354119159590859617969798284481564327915426816535673362340621627263975517010538920749793642202949811729682687961523595253690841818484487646032645857788634131359527658074136112365611207725178760617840864807387160439952250734919861482250257435610489872791273983573513974756442743595936575641558356385817497230254934317436072975188958026282205236461379368766768363699486788768686049091008884051172766134353073078602636193095708654419587137728454431685025670054945320007975628596324494790029688301573187277830614125408202411910128305598946465331745543920550174384723748682154739916004543624689888271082609890768606700052284796220935275089757225699910671908370223971129704026238639587995177986514359248694361390769859730605450178653111315505355710357828174182358365535682550805067256934452204218935933272439719521453248543473011094521352279994697231790540416530392453677751564306908240437228866827040062219159188462353223119500599444625887094878561535440726140060224930161294931719241216204171046733489159212059246204654240745541075490366092508679181089089452904604117918745203027962807093215468756567644414132375855051984027622094578948921389897147273390065733590861033945994601232461481753543451849998933543710056718934731511264674143550123658581706671397054148243878293884004917906035416334185784899682553472443964169983458796769640271533361811305207558467658968006756045987347891737494672623074297946783766852861814258483327136455696683422637548343124807344028770199524430256333918594611893367231389891597303410750543171154289431294768683649805669728162831218464469378313301625055444294391126660094568967012179582066480579265402711680076193927209138540025341983774676862386353181680760985802062669392689110788368637002336605299969861781996123247311657211196249372187205315963861128301687413247689751778847816584941414792006052288896017047126077418165826638101793944606733466205883045297204814338082000922988594398043655419401568208636729657780448974055507574912895940914057049355644241561069998832109525612574974520293678431247161064763887542586847328025464903624328265879648086700255481569141073124998327131449369759909322450322894348358638746484207217887019291147192350513649354437870930679827667291756535284601613283126117789859984022811065074897882936669469024407871008786510581048190221187108542114715364693479052614260987974328502067902230986948194287706166884945992525740019883254327104991293194440699617317480308594413599364304489880988995204690778489726905037573308497729892708126942486257780050113754181720793708205660526499778775373710223555152695150451303194632598279704695010757285593463586033554167757125935994585210759838642452666697874585776462172451852350305205681899147949849257507804107790493126374186043473646733569856987825210477107904417949432828909881981633555902946547529015591366438081229794357400828365562728073885340232330208139635650910050438138144811063470187136872665269412060941513198950470240156210063857479742415298614184818167847710777157170394270973797458336758567755540197113000190459771057316011899473666568660690685261444432674785313665874995523134836448655328816033202171257790037145960562578184649621103095334205926598939727080575474068308880975813780430569679611105010638032550296843095738583217247085537694674277007302031729643225269075109755852374025074598872217491643147599454440425253649520932242545863529729353441109077636300263320578089120193049244624229898330930525695685476787225184526130760068640342412144864639871892002068052129031405316456447629145005153510639819021749323524674458997379880196519180592710490633788216086015304098905586815724424422468115423846502270625826150707470617857600247801013492766233531241133526480348487100415528526389811656289618219776028532880349301924511347256036822000642202708549526630542121174635838520824691198226614877405655423251433753892816578403612998114289135436038822622580714662325144565417619676982705059657693972797847052270315799799021954602855910084666219467136557791332874800860103001783160409819967839316897319461251179051917303005118386957396663686804573618159582170725225202341950250350976106300190609166439191155664896586054959806555986513347862957805471715807878109003170351977095193141877208572821003406398393203101571156780976925075125490089960644573201982392689592421529190758790378765525794785006920590384007110712664495940270270297333774410616316378866984225429031052032484371619046061411079233650218074660345474838017197979911134975001920794844749124593006550270791096557331871979875694963973349456084517116500702910768261436026990290954139692077919256730146690769708910549608192776177205040961150978654443774130130167148345242864052834044651398082531048382877894955853749072905659516931773656326305023642081877255122293113558769324145602563989704340989068956528224915863674514987055827934177917083728099465134818540536299041846374312481709148633430523363221622188815201492749957377766565996457862406262376631617446644884296501094612485777866574748202108738524868866715638432076983575295718032898690899236539534258501708899545122638775526296527024974420256792321003681177238050536566261687943621929691989010624871584267190667082906007323513942185004292896543057784659810388278154509094830456804617198831161229127601012072685614181049338442683038661607980639025471327984687844966553228068373689011320436068467894457357971943141776629852314038124862947498919919742596940231317193806107578922694892359984610868742242828491290905090377857796304980895016832673312524886724170768625900527472337603617310622156449966643173271646712527626768069755039483580496491485636074255327219917188650968464850562572930443091370535159774795355048123118731138253496286631434249700391821826006489666957990062657047939690173285137930569290816259551709908879046979147687620808416119176816358755331680480994192491108430264569148167618126058509322593459079353667471219268090571364997969704560620963334234929943557965020836802171189114054556988086317280351333296227649733477833056170846782233545916257822431426981589715440135774663871326116962222274147869294046572427359615064912344129288842315078549799090715341480574455737161795718261561742103747198541257519183974017230106116523924762611811158008200578063261416513751237142011488645054810827186165453721428935163371083384184236648006298897647349344631787876817254721766077890247900058117640951439282177699148580899129950161213444730444332668607566219629706233330900338768544463324037901429106239329832964963380248790526365193088941144075672159433052813802546675940033401326196623585400027112936607662145462244132572651611320923622723207753503313381618174096347272588818317736855304367077844559948558342485879298912661708247748634357451680448437526320694766061391862877125198966569207005505548716233968286510073656559115130287739596921053918408411409931213864752304160430649004748841555675790453923520844505796626726494809537385976378698901950526176641820648862072251950758540016204497481487382407944432303427673214761440889381016381750466999024954856519772319845681678625056873395550348614937539351995540127568517867722032602026798676468243070327461699939309635973143762507968312934182530424984020804811356317247425464542204491752493860848746114896001175927969266071323517846564399504780689981266657297511606338217723230348751785549389014988817738000038267001030653558571784619015309773984477471326436599552994279334739504540444109162978365712498698032636610220573750332866624091688919394671227661099453450985048111071831512903012575058099935336809510481603332614312997104447578950265306786829806908155831950285615294961387937365500591187226218326047441370209011287069277201625674063809437865908003548131413455746644917474254570461505174019874211972419537040569217743942735460229019301857822736844273793409485619858197616434739932441327664638909944568251504243054433014666651065254937856389378815645812931225755990066424295008406271295853837771648217133320557581341792844957804048018409378995502967611756809834950001264155099316192283548147607697457625209197417605145766343219019376899810747019364956633410553085936374762354500121453758642065795302472616868658924641262647170804431299976282743075599079622387674018395345986872414401563312058278677707714143347582196757199526377151527966537128450096085442092125463722727789935721459360529163147775692852494525606424867813026089845299380052475493982532608244387944286533427211472899099473450220261487278549116591225478894765324577197913543286052861454632647291341769783047217934336094815049764891445991489542647785577477836535667760926534992535776454243672679976979207768662969288573918272547870936890715896380137510261400599224546222723268570079212314996653435306769410210960911693844235763973635455951900238839813557193941404359201352020590672670363244675186924945200455980490301831223775851585876282569892350203356858684365397647314879557595484277841137019091034770295042401380473386546665138354090608089130414139656078943591643023762361682061194389683989393784029296716711503064714912285739476190922509470493978669409981300405719399364843119921184183315818535849759280868166607139803123027678469245507264278551781879099232134671912259895010806439651109009164455144737666427848514721701342904758160438668941466785105034482272261370247334522805217930035568595664150814795393753438821942861477426324222237772405091423005001466668563356215285037379048773268419346403586547247843604747880551547978096120871879142062147895561958474209174529867891717602300426170173908908881496340796854385820090517695139062564687528327203688509095031848717012923795809288807102308095594812786427994156647080438720803102405906564580751840530563810187646622422107852405254135772592713791266850582416588864168515155946516087266041806096173647583239595151550862550405592241202581135243564199883501490822725231804191181610530018401676115344837001452096290199734095033455702911757415844157948209300491533156232881141188290697050591655608562293768408043466160108335090815558221057788700711711598350018078304225611942950949275954381037150616080142355643683719705988902013720376432701818826650798718170803562864625255380446614260047646962895092490759611414899154797688300915826079678704502011946674361018876173026654381206496969885253352680825216617880362914341142921028927348811761260395401481686670589581306572987322298421830023416683205209083220241115008161474626371662943294966701181092322762020202530033213382831021048116255486197960511200477551298553768190425436028931653297967766592902761180072059949374493167397706239071734150480883393093132889196640061253429111013819958578069071192986531651722548805412893035020961325797766880243064603666618923200558706997717353102611607630192836582973575840659424499270676468129635224198644864520382067718826298623436172190406011909860936174377702822921579286879744813735211526034245122014065881541325961908930682710771071302422924047144334817420897496150899856496614083278845966355072255285622057674384215961917797112548392168790371312318289925023490095598161492613981967617152273667223567058309806464666477843176385248655051902867565940720846068476535536092607506323334104388233556698684234065492429752080609998305815556423349607289279414860986250897836942353750464831165644795085410376352408177832406886487287581253406588065260657681190040153379181011812943772915633124373111303593576603466298393343581748963529244483387368237828328821411265158586464921705810676938065314311877525833048761038160356946450927993319145677147506842553680516721895392084334233679947025232026287535135610750185827013440891397284332906666558178864609275514657863083825749230979920448108640861050701544043658188371872583098913610386789616192847633602965589334740617191963464012481011780413168594493875318943157261292201559828541021734659310344620961446577394477132202987420760040802315534278564734443816584903907837399814017771091676292081280294475033850498659965445122996397218418533281717556439333399818705457856180126057031501539082906694754219969570648668369010312821540841115696858007494638354484222534845301612303603626697081250399448579181328083547444940896062320407635499108430910613547395417439972948879766010899478504298856244981193785938512651234722013298292589054041018908102019149782310640078824705550302277287634133617477462067764499681894689660397095100082004379010268073306436619242061090227126694786200436808479146715273769077974576944319330434535166414345472500120357171305625069451536565538892847712764496465070450908593545659201780802565635885589236083010409643549785850281903900595010925275681690091198118763035465164046904105644105194654826284972858502535593799492274077289551421864684860955869088576147657124300638410526818113646928711870063885631437881109925803276544909377975658130933028311682440504844802161677532377538697264625357741112388772811274396638594362820659903246049968804244977113112651482867923453892143861957310765337759314019299502204150624373379473284290946347566225152959106499969755676204953496055299772648670545532175356776298886188839135952564121230144773321771143634274398840779235606017035402793531128094450123098224852332284746949316777670728808903120179919314360989005525502828715489577336337615575131731654351949542917504071568990403125118338682899353021016588005999358746193222525191762660761441255400795284683468861891955441010506416555532201278910321918113632476621120889075346532757496828854367202554904776768684787256317354103889786332800467613253308007295810284664936683799199127789716657491460369554014448712494568196611088507797780158958588986503406278300185640252784827969798310360839621970466525387881376428165157586179063265900069602477985410512150192645803145699480214035987186435371240609395527786180124091213827293167564500175158042585174936063603217800965454537181459356299008914937680867085108310024983648045765914848243257588415146129366563475125656356779519222848229479152247960605875925749933653893805857074910818860258150566369417544418809876509445186994061873902120343835895121268986391748870512043330548031929379602546925015308563315095645880042074436587524376378512610166624955029022999033396141975063626809784890383952859916434210698871996722215465061030577763946480972174409707349368811033971738715881022422554513080552238129814963477217230823913115942507099091080416966520344297180627687602619579691991456718569336785507310680964353207776229051230533144329399261567265414372630136976839521125869688331665421166113353054082945372218390813261810378547348076556004100215512353093972863776836091377669175657445086261146016487702988606649222455110190248360596468505370026406972179759903603586994619609790660286612551088749062211581935718126757626957363941515892776923524738667954369606095175471901863310936846337967996500747948017465483942091744440483485974763384693555500716676994248874462159370566130664511951228181487155495962452274601277291469905901593095250838059727578529064175017866712234060683190769275099120493189086788227641727235741686732910580437627849555854276287107220490533043121738188350593102669844218274912586284215417060630698791862149028094020926110303574983728340532600285791894839340203355404799936635456563928086836937801614211557008093017019612554520050935349640955121958553704078129183547529790637870417778653873969795888493996622676917428281469128847903428589991521968840241806752510154583323755181803116579289960456291298726556826694608184565771757605457053110006818901804602110599598838664709665496983175535077856526589180715537212201841123482754850148731745085135416120124207521066147084800825776030543893766914954866545189995223080598019117175968003991905064394978953691258816124516568971643332826940594477414594092444284163583688765702234107716639339919102008370001210268246316075540681848915064059481431913644570404509940570626818818738981223002811916857851493512341948409692578858273477827358198452923943077589952257367691461510799503437244589520064271408775047508376445447389447886498677767334038958851440950698713614618552121232734641128218382470717658054271373629872500976240968884732378515919028504368231785849549317221854668112043580939320261151143012367879844336405623149388685666868627998728676414616742053595331235228497340160870401395142165492978073034919844825810048257493870327620862694306796818402190962848050230200391264319081875287497816849777170815315585839920138081039686242030336165226053322291741137155115808429882540004743149394210443310256798435491734213170331275569120242484272113083390777466663111807242633457196267281466985109247496005783507672125281597905156350829773495840534001354685326047322064477877263759823793666222000675239447543214261301780822286239010991200553206025819955547808637389779603247221911964324416475196399156697771716118804390532600258527414147162758875988183272570051173881337862061291132543107761206349310589386424240285451135714418488000318116819722504671202881380816507350718197937590351868773134416904786750301844359262800172954921786038545856452379188825440975180757259443025402310111543735784381032625006075089136998027023551838555557223363071682280644516180844416488654754666757082646771270582262007253690190927599102547156543496643319163299797691501387934368708484599484431450450968952901539186889300318244916927141595120903272903115352342694179051046721641065967686457614976601104511192723230611439226320379169182139921318884127912718112328085627744949304711913708445183216150623227243368621360373555964286549469043459469548722464860459078473710506055658415374976013952891356303315397256635235425265826612710081945448090615991250534868615081886222709039091036396863175177241255231174843556915235498079335443325925981562646252359246148650437676077275980929562862068822815304903752132576566742351683466698123992327580514115829709410096646060333747580421808687103932317712134188101602304884053734957668707895286474726988756792471733667563609508532768868223103197038539911121194798158537972569978880941255978482160052027177894107607700966648820837026729204500970060887616190339909025905892622200519279805106136749587716555220984602393670869880587230930940630718652394154656681670485411766075826805710984423908528793902121436207461192426119854280113641679455729048618352450859514526468125726452021562727381432362260725711551905683422924181375177884292257048318961841409417428823511795509426463879770453007813271979984054373053245753296498818093800366930546479102037732790211355562585124827875235456726474922947392034423844268148413478889411715973202676552411460086718387657333053614126604379361590630757285715272368113969794744764502949970936301352363779311492078947033743171511958403125212241272878504239268908063735952713241905405444957120832724521034955348725474856770548280898938882662325750127595192064437064710315683566368547774936311595889731666038035574493684833513800866350729626423596235261377948327327045110287028530724967647565316591653357116263392370056730479095808872572192021869209822808796213197827944502643503596950085920139409546560508861978875824049045153494691908469499476361698284408282020104449156227574571479073581849822576170419904149433843158891236962552179898589457379183811013992720784135793036284566553502617092456725302084081170056500856148713158159562601104318141971585202190777247407678351129456493574892896357776242571200541306172363544381470235312941912668785408167463112208675322022756323087350980581749061361513594250237285399361192564763406911713248561700760096544856101151998011648769465302487892522842429253931485339131488263009010864166454025944788462111540365793448718253193765802567827425828585002633390299180397163498327988782236648135743894701575360517366210205516752831000868880285759324480348863506122452744912639656684585593864406971505960866171790240606206937694013506101438637065686452224276980870215133518830657968396660423422427056305981434897935874806972761222140811785612355868807754793706906331468053144402562340443663238902119721263121481807469991182618169663143917551186680199191524285864189595754967387009357485728283514104171986605459149468241091578441362537424191756475080106326005095456917005144274171819992528850241653736751158018281345147279429215529164535921473121826723717399098695052221152808194828070196843159195010741216089603554645742605497524047088700239625312763785068331236419278842366784497582409132229831644956336177826952143125093717861284081042123801792112400676378831165740356462781627202073958954839956043089944615633874663174782885701705243069872043055828376614992795226178698524149534661776234898083220796003467603067192037950360654780921432669790004932737546794277041607177864881264755324565555856496859477743628188304077532405340406114637129802804520531735736674422466011505024908984981063580229198601387561331727120486618939292763109833927324311944275662960503732148563157322187915969477238914259599014652605113481611427394939231075568249336025342219692251380905126336549193191895650812820714898913817995587939129071289727527620506710963203442505679106509856554966459167270592770022110744856804883153513763560320380709910367094194136348250709045087603660002599172472721674084670481512140378159919430620667684054944072848233283691131238984009472056554495458120011690752769513166340778031071257036874935227741497707535857601346002555794253569883374560205530489102260024707658000418637101751915895638306906490819659674227365268144421318928273340270049276030131061643616210521027285125946781827831702969590717413670495798414745141434577329814738166260031375977282069997812145914198972573572133037711661138335600480569624433304820896980325952526679942591350895147013290645938041332984182049996915535754004368229317613964037099782584659892419319538858818280014175061270489335906807889127081276138957542601959196117985985770426950419518116950765011844682152742864731928076169592139430149670347378126554255715879149032551291612545792099295472412973787318135643253433443933681934662593992880392178383858248139554716620945182271341409602509123958897590237228095256975460899247963090886120188407240625197948380545835643473598110884302989684966052300664636185782622269833788386356187132853424606986907170776422551287788764040620903880746392765261881421181829166895452038510379515858077157522571853355691425466764156998179036148608266955616077537388288555153513210614665149516450459182511818613476123940225784795385346795293195743970871285990692153993560860515643720407863582600770423838533693100874497968865664678391967698950013773465634792585411905282052402762234746062918262083332535901348519547828766807137761386216963334310798568263886924202625540653904861662122946877569618447232209741148656825630433583151855269832784824981696110320187046396375167278211915058397236011197162026948744423611387393803922118358913520664226448763763183957180844408263647856152460363604940883621326847911108918152748703568494384256274075927658615439818408355169956350061192405711728604394355003050922600321633950506374576406086135835377673136876288624922546325122529655514346470139147857122867601468517211398977971799314121378693991254964848207000668266617172427310344691950109025145254660331116194391173131172133823676709127209121468817075349226231296454620030014012094024577393179981367636055587828469897277252792181745536063836202780310709746853622560205701748751372549436781339177290669334230233144149943099362986630088818243597088908176295756089239944264036151814270352833195207805981330247612338054477534462870234001328968045437211228927151622196051625269062122822810418108591160145286677072673906205914625549746896853269816747438693168396014679476027273374819013957614289577706292676412874728329124907649269770436931269107642559843402867840284094793293866012032069586390807164936751384309925930834988586713196088795588273967612016780560682582961285019261996367277330747198708807359311053140442273683151859959016289669389654130569993614297895849861384857084453107203666011851388999451720589647436356886826343247042240772213250899068692781857564593580907543394729686711086521787122975567882942424718629011245701994765364680909887664314291109989029297456993827629091468499232448141608421012534946534157330196655856607645586771266498783945677454029922703095041236356316950196717644133996452153867381781097063757347547617032671462024844375508137555175149690657219193378067882595582704308411062167517036829534407686652341706767088696488235211331985889491775363314296344475124594867662336932982157028629095564813171945216299116646853171500385861963681587846722443875171128830194339771161872955096161800134566513020448713049942487069990676063207909845217029839560203424877543107189997759684363759731793967545098534537159540053316044115946877405985154456724761688403100009293666089178836429224757207017825466896804905886324054107426247975515770686680897500866921050243774629590194199061648290598895002405404289884983855134285997093729180121509507999112780517736405040513774022813686219309507868984905080279365827663295399757192435451900891857607749060597689183313955382177264800028548821809128986058239062259742492493652777343167935830261375304557365362212007765795259167023968708849026121262043929780338836889890774148000725882494024906843353003456528656344898684814203855295446450742083444763267971802323257857425230343570357419942887975146688265801557793967211493665780457138240804856318652402428549335373596937899334058550575826107163071688105515327083935253133230228748265132063515215028639488548249568085774963716087758279157797883659006490549004308661181758943741777221271638107698432151914906612529241025017112195887470444406259533049037721563255078002752391263431298318037857081610887860410625102916127468059145564091250875738172817068154729215725722555389967222043517196514119297480298131810710401852726433677968070440181717162898808340504079970634998685336276471473703036988979121117661559038808009163416766822050400419571085195190522714867351272338215007837790100055403980502818405928656609290872329457036268175602470551869518038063054030745133076915167421666098035245066857219072571149042608424017752658163678846926023775464074829773088017261606290546722123683254123245991640145897838728414903790599976057611607682373627455999164969219142218011251633591936734510083874683360024455217353949496655015250508268901277430134556811728725424301465211999930723935870316108596974387430641765971254781983570534270125951166760790538235488289214280290138116326760753271583322115212569268406719546233475581625496925760478145472383266757230543326442729532652048349662232048326326771035529344983074010644609094826808486712704982905861789212737954364235344402919390256775248663755396542149450438055036520960907471195149491544012680490945234589775508772376739093256162432733474659214610437458699639174702642813064433985521332391557372506565538812836981203110527253787111009866918961041752635809865436391085454721488980974806067261604635572115817437486734924479547782833517451794409683454178821762794083323933996178018747931578439050575639657038033952688040484956232120888550180051097550515152055378057917204197281730427240258994065340562447471262781003170463535948720042981092908738440128700426481777777822722359764426988937048966760760608619479449023694684329147726091115304463139950775548032443559588192161569894529819070811422941974482794454194507858264328307114461478119713289384600061876099138834896712031151384432170534111216809989826959958361052049603960767759439134513358467316276591604949614892680302778550006070194191849836660507522401497138331912319842424030813349641993287884771114387605082809919953905905074169262243629979165567409687093655929208727427727564208451633030423780073141164343981421614620386328014789467559165935975748558671924045789013152359698832407916160961489339883652296769611135088120974101569080309162604835769838172791126826484375189282944136797667955746506403140899700285669776769297162967572688451421395468191874043221343410064611617103273480605020191811180204642609992760663438752102310565419944840372533010890448942629199282151787796753320767070785691041522916293856980926767118774297148511346341796075041469582373387971656998790074180625374674107011218650000731749346137561692971443174031957185912465210495767657879930281328041948967732696902984258526203372550781901622190890926831089830795106748096079968940233257876397044962454588272837763477514000552429723906369018293842825892661496046648261605470399439237911203161223223915399144922440711964524552320449703896607882988468952138920389089466934641601489856106851848984696966736055177509966345317353887214880456684778328404317662297339101133088154477350165502191376246668582503627561043114273271825370269932228860875817160968914561508163797770429191371397713510619874589077359316349646575981480662006477313021132919580166422706573964100438640669009499279727217893999319856426816546150185156213277951299188867851363148003284299715812802482469138301440378479282809700280563828199415259385078315250668782309241674875823427191564624999246869236712671605469467202523917396323355620804360044553206006476023658656921186198243993426658179363797228982185163678723496982752016564047761411422093692478941343863334864177608921827250694123428812211420636857594116004446472815663399718771623764845554208210249506017688158306314984777048197425919751902587001772329936820773395624875408817268567007904052400439527506640253414637386008418889569654361514660708488045155877851192836315859821108959759331543038625247644898582131097227715330907144442246130102249294536296316840874589339751656357712889150784817511685687255644234595536999928376801793103485374210597755975267787416059992068378156774646190422676133529643830858134667314485958709930529396662908499616701549097618115141507223001136596422766338079533062063743745199097071056436525287853124915581094577503628305792161319918591047368608448560145586150145140560955016326106068890924865278912121879723762062091294315007354056842628781955115115150997566068349893361227182679876607139516421461101727980218729139811374950733226495978232853714667739729506380465028165939505680028349445269682497820917013854061953256169684232422052191286264944913923236262706873657029687825762844602862835773867909639847539883684503757940962205702999526302015479075321302330543665325496693884881076402321778473009297937355039929910225779858140077379833396493818095563393646048016244096545921374448583843393109569616229692406706224629333571715600695979861297320224600192479263410027302166954376951096124158399904043696250033511094688273200481934626823020249945554782411437906709967115915682577635828599821486284375962336765461681725679737786960792294302833711159735267048009291412834919625339146893389570381178772430964176910188015647141539789708577014091878181293999777323100610507108042044666411851018418645070323306423712226609935610117905346097770476822290821939340588235814500216578045406217127969596028619192415944031499322553036568216410071282945501027138881760647264961502716914162748444812850410470208196729510855890300583920886797514130664996142917961087156877012485482883356805522651579758028047472479375174637562107105366975800294398548090925475605985583562480024818185554347315502050906431149966783135764273010651014272259117409956305145789736504581777816193115580250959981073353414038293250353697947392976550028711393753313587749902725345626732569194124111744495809300886142956049872095917530762278170076780977672041770158113565304514358448487391356475338291913451808699738507450487873055778367439110448852113376914116228942627565667969984392344807441180449875686922192039778027662425208219237059281033920474650865405318212118634252365573103408776166154125510899776727369782307731565058075282745926128250918744223859754047044374702944615763019181397483815886396632817036552258613553047237986078343307981058710032695602027028955063904792358854814432878232069208941328621354306743064300512821926853595045085674728897741078717251621401847518397351050341610212855586003657658383086293961852778684643429397366735900845684278189216183445170934658395192714132660739809351666170439211162878750447387353884445336425316627144093149092470548740120438465980859575005687035558174014371356980799085507707738088355399820790617264123851720349926657708262819861808521750494749003613842029924544903864960578673867981099102358136473530966058966058473121252278008888040684537047850915098621963984648708711132758354581507262914420533352353110903571255430202818448948616493573072515284691048336145298077042283652412018927821638574026156652204287967806648218460030729692189139275695773544156331257006951332233579620895226861021475328582182171072081112930689489749222441871450082281348663774454283489613003730560194456945098000827842568348546673312497596914785828341809204155997440929378751431967446284164908815787279496469918553278795484557515915403570763988026474046768075979429368459784629894971655724088399670259515933809889126702776552209952512143760940645049980442586517644660683893792990593453641476018071802103090910237717809542176081314912129189007260264799574711961437595860624722335160102722278623814584492772788722067787808217823105025295849821111728997904770435067025336313915728966581248177804993898855728707522970218184237650698607390221938860173947342762959615002583363746736549623292196912807648486162153307807649761647379098493827341310639265239976352689284045937693724944987941791677634285317528464248041981119719772486143000813791286720220262647740244751301375683678174838955068918288408981353435428814503936106651310947082815630706371718931826543643641751933401865650967409939064213666809309088617093521374060651820632149788374885376274294885846797398026310731943566689898676825996670714605124521858869707358902972886574267509379650922854264914992456706083268684357480252807825040581416562740871581445595644662535089053187019501812512838897378381916447067485025013743439305055059199828811973197679808504614948818058509635853855702799204882434667180031381181950175801011514258213613943273700363010319333082967870186422746089709458588840532962725668630628885141012154530170593758311315639441314988965599218767444118386567867551210720988267321555451557669689966754478029840277006818540212442598360442248435842184652335749624333995363380619808836796472626885579797560272721624856681450984221854531157964385576919659817372781575732567953179525695472254519667581073063470719256709427498911939699832770158406155779801529611805856132852648224126145313823814273276204964817437450067634530652346092946295790337404447007656917255423963185757760302547203487125448692009600477090142972558239813013797676234391197878370541062743204505056653165637071924667147238671040285491367765865499192459334639096710011730193067151318938751214829624436321443732027584981694930804947703756501457393601213202579378122580220266548657954582708404898597042722840871185310301827017117918371550031638091570916112607781464761258059634783535002916653194299953546065611304348877917778251906362246774134877950477002624381332411284916771189030373119827594215912172851010325068285279386928930828098513801974232788355224689701636138703710612459475425782675690382290748219131701879851536728799865051357114993113721945504881933187983368588809412806894079775853838762949766732305314040306871234646249372273561446142725853551053549324736257503889514653037390228180972573298597696926324790333773073667392830391854191452423872645254648495057950039246027541891820971368111643162987426167279052580596029323134132865232316289103298354253651037221231990604232324860369302646574278232881283340559480852433471243601729519174873608468631273084511727685544928516626182685639105490520894852298521562520145566310626280269178432667124602680223938487049523443026529562904636085136583251230934733077401210727746995295198715482483015964471220789575492998848799642826943630069502324138532097687166794116539059931853765029257674665419520178407567138780669835143914223331493280131459181007698454855662189014772955446472280193232950761538097811594604715136790856013769570826329264214715480216824852558840177711177843838547166742622509645561311191300841970827652879448997386486591435818677765539199617923038780410973696656146236163761211777257821872979473886698463984593933076843896468313990107390683942546237336726246516208254841129217877855020988899615006125878691343335945449850932577063397487471274511640402307979484290182037131253516363407513974126835432425933008040992881586810686642077613874423795621077909321447856850030438287455779268913072093518424456402134131649167137416023325267044932476321613761922697054996695871675447924075054547426345449173598913193637544590791659214876414561637002660906088501583915137728039796274178853206502089995597114654146106499720419930690959116401186759958647436632804608049478922219449829988579206117416378228815015092064853506264879956452420655131518861922588600333128669158154406768506280395980230706240628308551556196172132102692942669395677603848707760937223265204165721028307054903753976981949886445473765881597692435104601756148037186583919475894359217023648184475294936944092758967435951281366548181015673800603264248126559739690650159460727392442115707600822439028491009692326752340611367882443659778740127902751651699602563055021293691260506073694387091021288886738627086512085910579789326299003838266096907754649370562991998775974857231891110530757903544057664120407973453862148361698842446317530142354699649376622032887328371578052319868119189505855950740418794885839828550338839217872978100278720079232148376501287327222497316346434681312718357255378760045191968277782423643118087623701306388739467084692977691206959555965632121191339943669340412471209077280337388782850944606439081498939797242471422623534594263972530492603120851454669070024331512984597023909871076257504683255886810165913455524446611794240790244013623794410427901235035357782812577941265626636122316922305264443446869545254097044152492811044450779865807377510534429891419136126663682223639540715898729749277661950767932296144971224286151007396083022651280545882002457920150809219123424417970243417131234568524660828111417404820270580918203994791233178310087797695369660260751471360900147930674430801406819270591361328950905002596284446281222358209645765949360342847806955890339011505041875049875522580881351407540751121251577362804549145288773995164185804011012372270962176352793454699670985348870836728211139024490490974887472516183316564580060347238758589896133583160252248034673964619911798629697191665550884070436352121594203964258577341498106035820014190624621660415071226314962610876252149121921612293730563913668441608327456623622667790315358626148296399740746405643041922858385835906896529954050898593106760397206230300163913420391289535528605122309230374799211417350736732169305339491344006910288824634721834135956696098751839244890521852932658975756685646379015318699301205519812874078486978961896348613177193393696087144685035788765434829693945797333262494280114983520313512511651164869340245856794381138368341782708291181262336717865147778623457939727883226774534006958448582285178020818132477741860363753091508345639236686523852284070135511561605638201743059012698735882531299709601357668966273104474248740561458802743075284631232412006222273265421707294902531468933022176965528913524495329589945149724226100059163362265612714216731404777706656903521422397419200652046871412798370215315762368533041220893706396591193128383453514078449143613887415700743563702412591222947238331926523237533652942492205119732065521138116173977694073775152926383158411167861673062364359883917497897768597927888569816643944243506046637226314963190996661820394867851504308785876883173557022260590366323472460652036347771428859723803262210332303807249790829890087062130971286952243915571310247605216943989654143782645308953160107261530170410975829181780277046340732893513964048135577903736163165501243438690799275046341597721614699064039966177548993597856005781166772226244864147473931610013040833373657609806294710362851309658911920070774390529700066890622585963325727755007607067178364583650328449100370575987749283610368607183352093731133149573075552220321955095558929170527815028037268703967172279826678273439792482479524714446557499547486539689022668306096990805159129227582991262550749253872496473691420081980592349490451683833822447227253845440653459407516998532094225305946175230258536674558785572059952934441202733374881996393939619550623524653917767597926891382463450808053045305706151918270443070415428194665300948737865603762403676561971703728678316104146531016492731973245109284725556199938533722516233727314114172836902270144503751276487954134453837728081461933336407934681439971434448803167351772228792372483535983892471856480904787585795873170609671339085359731280769929584449655255478928654066621832195322769912958614042247774898599229469484745038517947824885487704377319024820734341138072309901715633364768602317242461613274210913570135967096230499930870632140737329173473785729133072661851077616970798550302981281567454742069840350466646245261592169504561438916636144864763240165915504504263290577355072780398900912045344099549489612791089714550961070356992306673007220254895424335166375599285552973949225694575496888146296054149195828025170035415798253647244576330053337271370114695151377462124514019355778815555353021204524928403714424181206663004410902407231418299425695693256153505608544217093164727360620219868717191010498433582106200827760070684333078586550563041352916897654587167728159168470098023648994028657255750043016266208627387797685569053799546572551016383093471846347712340027508821974091268428365901125728999836714907800235623600128858250967906415605277674337918435716565100606178184710484117146452543883200111894548202154880016705089833428630040464415353857300499336144329040256997554061456737364616515042536803397319209801497576410791114972598530368201618389229042415085651121555888012522560926285315624497898611524529216636538592496054903493455491991272044657441686488788301793800961257537202411019626472542319120519165024029492246095613357729587357491234369724821810166622733480082909843038765914508378945640425161676361746795179893346631508094792049536936637031407521549579292633694625868889283477459485675569255707181634224218827704384172671623836335856649072014545981222844005192129704128364873333882865889091279925477247434419172215121880771686014007189329029055238081498538913949916650240596058915798873572587859717453426762551526310741847231037992015800822764743710230313999268099184770553369284256568047735542061585061943013165205140799789818313296684832216592891593378289101182022327858053237483343030541184024152556963808308638776702072124600727889787021605997655901483222706220190978638447239521931348565553534698223620138394106910320284227886882007725173329195482523809703100606210342411640161983195945299887904912016953753539660706688406682511628559108605387394727576764936600090450969268074588367519336554388698604712196830498210211453275200135454295125753356026167604896711287355771792948362063562790730306515413306660875204696577356438375118128564452533220433083971526542541261247885956249005888501254785432636318646370635296908527090447606285541632208088545732894546586530285544686722944029956409069126810576227377126541615760064107426231052664599208279429624098750282391090323453149223942620189052702196459368704227818305029006969906155861065764879315521127023872402324766114416786322995704924868923878950028071376413265883773961140661849933769439839212316625982106278317685490624343231662427317044728857609095464738786558772946039253632550163929730677147713375996597342653904771399452645074594687908619071262907280916495657522518006490214934705167443636578809622042734669718875251086525836098036461563000815594872729876279349911190292960161659219155383929040844330944016684039687432876671223665353804918811282778587201372614037565889090623436152544333317596645454144116365585600614818531223112121655602045658473407680073648694398306489050842678152475503160682723170859460877204320428735885497589792565724215500491501162488735314460895613905006487906051083571368243857182953760325373422209592096972989616421080812092637578988284123033619890548237564628734322055164633441326099339491981310947488896216594985751091895124893036967964964433099716782910040971994788631136273722736581764204396708434512533684655680710675114753549053983126276844632734522304449393711606050593672787703742611612034529674169016222290372656939468089032298329543639393969694374846106931424378014884908907262340224840638246373412913656867781105514396912852659248846012548338724409397960348267304188195148076624036175178659971245731137924909741345734776618451534906198385408823712068302837256125124591849241228841027017619593666853158703750724567877922826629328593787646696739544179870067084609239150229873910495739198808105573857047060356883880952828424286359422005645211289508899786888627458114991662294782830643652321984193163082115871899480479048624683867375777296481359246874816715307030956751646203796454926239744491173980783798098425344924511502851915759120787130334562372192361391337242707203208583150003640074323408187079972020002060858130510397514961889306093175880410768786696306636260386017423783203904373247238455397077771377517320828247394016204695140350630123403425195093193441874146519720057822870399197270656423478385491908844912844727077248696804188330080982750811769200356501826211099688152421567031361119462269661111846700565194045450311812422173668462335573177088266200987527768032305337700740801593380315498301481358529133472691795460449465497970864965529715975861240505154945930154454983863832955479003615367266816725529189491670696248726049486862961764999950095502906150154858301096434361090061765554721438624058623879827701901322813160329614600949095760641892162278496601712016163126378269332752594964888773631686496786988221999715915586640916418216133360030564348941032061762192185207713936610855738011123515888613966946129231675055005249382569271836962417126002725700100939362536248500719298252325748642314536694099468516769469654786228513941491337886571452045056341385290127327168710083597111969875617718791084678288553419873350860871627782750180879728036020491917325727246962149601264503711198758253053379809815030823994591996762935600365577434493142057176898505025822142851108673800721340436352499035637952337600923992317636415341905130637829568876780594707671906915491929068887454297072627788876958271919954075784184991836634160950934309036796544219665681397294946456276790908106772828217059911562146824823532064019687875191120305091004060999729650648275395319527338113507598450880643944991226873619165367396592953892310604065856621220527248337947607927698298768641127297699589316667859174133364287887882293219619388916637969289432580229715098553435283619002863161930008796539547264235048423209699804562559431726194894598208993613796837845390062625380142179900859872267497575767409166366628508018969262643820010811739672074090644505643297374474829280755163643893796294397001896903081034560799297882816920211367232388441133450061689786708774190320162957546257880836815054598682213214756271223642254373223536980597610996170937724860758000174217260980457626047722450772743925265508359937585516000375174597986808300743426037675029402870190112095223313273170310617694205080951204883389390202245169911793183648201813651993283051025562650052621326534815186829574138650784777328696717237829297814519468962936952717600616529478651512926150164806722587958540193975868490603605189734033610976971618887784511407630729742601084101241305815633967740167381580779025527664422978365945217941323442728048243852123164223705420578326319467768825032017692274353950810495134655812516289520726440988072073222184599380061768914315417617837965391571742097399774690001768197682641648240546247364336729220146086098282088664297020917699341985190627309694065315218055335246716587273822884795578449977319917926478982286156582412268419170177081132031197240709536860744314314523191359691582820748623372053534165767916782068044283570190107349731518408715106561210791604953267718701888829964273733042085455740216987820306188050994634252429648008488016064597059636169761201072475318234652029810066111898786401754962688981882233782466328273313573001283813743299848973990051912664756536078247539000957814271233491779807772563488877347761297953641077567671117558524646640834015468758868659039488458043610193089002745055553099966675741861083995110064354400239500788141527295945016569961572811457640132031166555164466356735248112472457095804436963742746747610543231935627428920099318670327005827963679423539343882095290005618280091530145925417990657480463062967369323268583229636659801183655103291189282095558515799223912050431533064836887102467838624621282695375176143986803046134012501003904969070639426567131665186188171838224765205867637955470202811969550320607219836838461908753912682628753609426831414215752323201968979341201671709997141214345929173946519365621043514645702830216771842419230689951824602568781340900920303273516754246212532050088575815586248642695800885936040022977019612440774751681678023385062915390870080840585202603382369733094543286697175286136744555382746861685881921888862818399864773704858813164124064385328594791204706651005719215019881111899429693562834785262694243318308174472240241392933441436281618555572834827269523957917971447409668995533331023331855272759837808526769644192551524847448469127471535062097316326281348995295188581100327177064232996682211319661737964586705720179009270385894277306754774968954367147060764905438557594990935892463410493523495460320682158769527390634264133120024478397923563775767371904678974108675326459443490812162692728472091452936112901682929113820299162027814487844280388227516277893763543934218397903145794546054193997112223852818153023391187654306978349738304590755037343574504154493883242391618667545494067334759493506911593845176871060705183109232620576810525384968292148528587070816434107949640123336729163261167029887685226755653388678891598366625739932299151509140832308445595377197643535740588285296189379697778172970107623504280906163659762716268593137841924083180872878602284018168437617847717591317578021661776924300626746574043517794848315181016751507874988489649075167131944008321521127666683809251127130927619056705741976947782085717712457869311027174017665696482250349685261131271707796450405685133795252958209269303420225049039160369359781083302324150340786516157085614059222451682090364017926880207870093760159073563470335263995334888101099963671425346829628669618559614346407707124452004050670683033776149456309414163832998836779978282599317505971143303151475027527354458480570239383919456179572798235049615164838241093875363902613289090998381954559753570564845070854327201917281596710167886997771474161606696893249740036014930544089966372326431973350301529342965068161158305955039866973101670358132508409123817062725248769635268658029586916294214643496141658456043143652048250109355965497493888432206313310052910780082889132814026357904085863070017857518252411461213033916471247563005116975651077923222561386406703502991455687254043730012717880604003543001647721218916629459899268856092366629602282320512849553917481686863136674160771951326413453436474527418516226963943129689457840858729369840549180645832175431000104480339844163350142502260815374086439298149696029032483030690783550318434847594252564752067628145827684257569688487937274596178345556111693773538910641312231703899086208467009021361513532583385569053413276050695692162216827004590744377567040745812898519816786167954973633508692114958444706697943347168832207698778076628811922995188464834968075218403412349688671863549054545000361705691227348806706520153182878621308269909251300279688944030684059486928024144058407116860016278137715098038514084553291095819619200543234865926786323378978475916525223330801222619628016677080358526824717593850664318981305801617780262055076481878406155384584192001209449379389120523744598545974519098592396233606579800244621204947941242642583565156509267136275179859869528782985660583442251200708234958118626906701515366589759905472218124907684150853041527740885316300324556972840080552286936103155172231027907221454434819467709854730704567966601914202884080053443637172802487833334263826675512415400207862430278410384633129979054599755822209227125393754634508436479040085627060346243436637633459301870490083121038244872256396245452201079183799686311182697321621880530853530308703383363042668649704863649046553829342003591244205646739522341146427981546661151598918084873837446239640192949552972400732390582590877502598194512187953040511286287814582973812829896186118854921600693932719732088242649130000116036054250054377484352291969144289069727518077521940184635184988667907686133401675221626990060801986015861004990983437381460619176856005642683366152340205077772638145561755803397715880779332594391006576498692923193630629790950198537422822991595530954360289333420608459497391636732521270237287398212912276618162353456010370083367232296768645171881549717774989190599896735149722496708376517363866985995905776158956177048146007533244842688879317168599726900165780218830387800323301886991173575164361294430713555610204369566150708977922514534326192449397696013614748413530144921267477913189072679732426015525913547724824573434942007171788928096229287967397766805945193226525462134519976402521160233405225613284059869748163781968039841192801738094158876820066792460402063795013905365400190425951354601623914168211056577448237464744455663885997320402838421813570451906416619697343464204029554212481134094005828477598660486914846656863183000163002878985241607922439293181457423885007608525087327614151395301495883497423663211536557585269240920941719840874762505580646079185782974076120578014646169307328502605468532158777915547287620311395257122205683391054944728823433574201222218883229059308119996652319491085070465547302317481358858765979403132742949246436528435987287117978381498708352613294930179610057916001015243100186092252627257563667786149832133397472297670292929091278675516116673046351806476091600636144610095532748472523108710864160899184307586219303647300465837749448642929864341728934484010559263847300476461754071599298665588822816363480136397605017039245555945799417617953449213136750472508600944577252262101308989192336296892763342185719130539964951519450069584819980475760495055754594282953118258532216904522154950446024447022460716341322492393980695926487069547308352521883037909822327584271346867978384685434996991102432891899964499372330044011771248426292907140036357398835870392369108217191236874600837407105620791244863054183336801652223130775505216484033257273977242521324453962229856774502079439348634888822254980887213393225956169927254289541090727156872097134452292329444437752057333524573482908497755202615766841958361434614338523971659313544630833058594750652974839743209651154320064228636304262309936661051208683039948998597529908977552145834530276976486074811879603168474340986519146027651069011554347076727362818194253756321243411650068133538825025243112175717272978042874170340947852956427992900107188586990043371881895187408222149732193175128539366616807270592772342979150287859523314738567476032060210498772873896674234607440470270296768349842455695474811372716694121696910191480097444630978275264395953926967080986139521180300724366424476309576149069761709775983267363231944092819154025520517720739213759250746577389786196562078307573472599857380787772334145257467062356110666727932038465667411678070052599399415907057405315946136101046624235329091937506519419041476577740555906046768743980710225738283998484474082528453545390707390195611331262019255293749521651201744716451255621406183421699463243740152724434195362986916605187781117079824541675426517464735941358916125625034909013715715292135369506464432753007773329748236512001444461792176464876422749087323883403138888515452592963647152124517831846514596920404816249957104287023820635916447859744992191088428199724510435706132628265244113095499221353003387758807722180665982311727308398257051586207199612867708007642536062221299938730588138321722751096610993181204207346595986109156826906988330065975279228073630541891793262312571678546748425216560172355149515936053118013399966272552287046095835762418414162914402466735227174049458128954565900666975080049294497578094128865345939294290296656172121402778059756048426661289419927764782089452241708830019970197684170873143601128259132036270372675253269502393703833571724017983643450650228096295348144534034773100411065325731234806252285600633490046374686037865908796281026347344827464760532254727158117729566752216314854998952989450713970567319699780781227112609758812539666527210433287143696245850618169957041560894703021917740228950487347497550200035900533626913556095303068443354896224637251625731733033392732593781867674692617304140236071424827826134193690955386945200681889678423816162069583770560256443137976156902329015658753680104171516439708452556775904402124206251453414647701533536917582228200208770484188024248531508930763295555608663469587713482433468365630430998607378160704716670990535633484768976521034255084561386698699831750636746378325886375789402209858713228572578591639672188243616847219827210988153584427425882385639381208414234381896123829252010437221015165244833670156457167808597148064439189365422770490665504881499202535603262819055738646038860530055324259346199591470974457530978201212296008162644013190960237028719078748130648879254726829349158235473680830495305848895646368981871195758368445058266255865987536955194942093418558285810646506646269674073842280912812538656194385660880543000936821034691463242610173445363902484194940023985060718175308150067986642159905762486451820447425644762326896346361762152575503814650563268146003475359189936293762361422460435707975203597640081569148934031575017433345057354739195547245260042922316737657672739929592410930740756855086120920563481039968070553465523283072903064039659877926421444755328472445095438172856140475381124679376556082445289022341402505546790650003107094586414778644866253193235190838858368944628090083415152145303241327661262573300053789476309602787193482326482984220041274941601857946812936654316984835838137368536670464116742487727569587020872073069697125221172082379088929001003565039184417062699668600427208413915264953145328385967830077001959082870803500655429655847060277367529491461132152686386146153790957383630768045708706200628268499772037442571695118056565993601384613073841826290768869992078555994928122138154307347795303638425986721293614480455833059582161571231880772375494241714062585961700635379057180829064214983192860063844422810818852613308381634681220008747151241460347767530663004012668170564077628077712726128581597898175684531845291638603425104093985522940620396247605122998482663581493765149765734154778403574659950926690538704702779230475314898099193747398441758480660821556577255777599548716009907828415778720269650674945636340555414709095569584768438432067288859322010066286362368783672548796410970537197292091710642144619853268861870169203582643296624866819865980305198681935910290936479556570888645641007582302874415437577603242166722076101165885377352499672321730426861871341707793029527418393602367631971728902415055803362273475004876728627710704714638814124623140787740122763619332359672882460201552023330099953061818163644392439723347266857416799679273110380937001830452376279399872910315385690412151510004957090669792795134555938094288609724116214418099881181471493006779498894143873104513906725410776539836331178055785433551875311473907498808297599079243904192790210653716074950194399595111687037735048649926552414551902337918228024404356671175598153727409814833199654753578901899390881292749606317876565329949348624468929222820029932987828669265162922073072776739291096382628942534369187762186744211405325752610220076076360089843407746268716878572573964280839389972293003167251301223889147869818588702758017564159428750353517689141002082703212708569491501388472373560691295075257865868359058379022580885674525725430462299719374910464589026367362636945138815213365971627257380779299034455603599953866438435823920105749278885040072033945462932250829608219199237360868336299674689174626850639541474377325564388487572236933222157859382934268254651931886391317060277960815275533109059136068523649007192498468289313862582494906000844845339336589493057868978563544612678352890747671152421565081770613928484978384090306305919022509516272232459252519768095295729851709091130033621431519885566622856583611633735105929200746191559337850711843041816630253390802603358791384974716891140317512991717302954972441653644544795968322778760991086230060918662756478054902876454253241372258863684313473567663511456393793372773380221300351656354644965577648270724509042794742478048013239017607332718944456350757751707766306748452286051486959874502921867934092847459064336277759357809254387346016931982255031234646582972225408995424120271931344251497184073096986296568653821228716747604939629406563221112070863654969163037632775987699311314888698405061784809632854309997251311142051256124559455753573223304914577156747167410906800789281628454275257283601464961527066651648527096227788833273330246431600019895563483322144148059341423226778862503564957543446439787594534826036286613074290039608557278641864929499123969522887585548995775463050908072348536062420520461917958012247598740778776945683334372359516095783072063896174539792858495053611287666776799036162530723452021128797409847254914073358454489117834603621336290123366141111514851086796227987157303092796924273252654450923948629456141539102257648658783675485602708423301258164984165881570267545956635152346509549329607450288665948350547473516540174575139247314655081342582637544461368683447206724007272959852953885983922699939102743410467585058592834967124847399127566421216363608943557937010286314678907115950435157890147650077307991167034704431303543089423206549276450014969243231213910183941789752799444083054847995144294074705455568604843012700006670986421881905163367501205555223253401814474787122004621952583639557627311136024509576853926147086221699098483283132832017274369651749603503981902344726442781729479683486282856985714070293134931871331524269842017599870711551212867840016624544058185040000918739483252804268710087910655002383894440809147133191483811581998090522570467359428879569418406030370505810440542125795401773931428321506927839577271014815904604284088010175709129989327764389344339116542599605115276838539606176250900444044124113818600740841301218299657883859899170641512813820494007458348577988562091473635286748403462878345164796131420359951257194507820638269365491598472222389751928815510246004811212821873973913881028900972764627482328346345152420164968528304768399309040953183372434049115739601764020788161914581241218760742579977703103121345946277203884403108640682564570774108241604540070929754946372836674564265381486851668804504714681184615796383466127965540790954093163087960356703835620616352558290817559029087885373166800327017310499849809746833209862460637392987127706555316780253243188538502634032544909242401738490478318094614329715073309136632308580973018226380104165990513722207388110401832640616711215920423679300357012993055487714459124925597026923455960139416024887803487246374907928161250458994398889945696647031342697589494384877249848537513462468218136427372415356679708924488676273883851298212108795312533630406161956002980662377739444604039952170051694900800265675165961058287074995698191859988586558968605280387281498119300220424732430632642023415043077783951877782959564260500531286120865088286133136439274009010086729217329908855372297040442597612066700551154581613432694722335956828968145205944227296775439847619999068105274689759329088305549074974286517997128899530681984126634863926697442601457890736555198618907231116573136872051705940773844319533741696595965406729112439717661859179644585076120340105623990525513814549835009667059749143717599466137242882895557689207308177330921369505013909645094960309633871948644446659008612874779021157090570882304391871772985567139864758538885033835678640545445398572349507284511279882411843863035285287232327130252002430679123594392218699448228589572183540553066710314365709237238026678371919394682064671485333021033342311527291405856044616194721579238162122430036669806597607728099439952998017530175434559528536524081527590793134624786166048607514254142057868426534424133805476234645706826353548683701295075426046858002195771224406695620384345649442706142591360014604023399541539530182844716848016751541705603308472201294889733709470599317516004839922403844485046494571247008253361806104096550814560544250362234745728143404421940509103109682901942787278113428843159262089804080292441827154714001166827107468939600367220738802786903471206988551940086723022044600699361579518588075755706001100264620449089803927306701323063223769847680113176111180805282287973336466117003958092574086312928546194800471378922760305702667298964770214702162949279793379669720081182074138750554265662776202890985564048324957932039120064249807873902528164048000629951461306270454175106623050372207652990672874400126507579787433595934165248197235961071493744577401895172841045709176961171872622434418881126149456724435005288437939399184534462749511289835971686317714553390101046462812908263098958046208332424582135965631758552456620622538656810121657187537632641245099410971734529351226756027654976698165982178260259946409843472382920387055687085085971742164916064269508890503227742663060369105058885440756061970712315397897283944345184472069063816022956737258502399142993698104499286393494379573534300184404875600339255620240633343636682180120580295955392038623742409877548165995971069400349041082947209576256875012773964747127242926165320639837381947220258549941942527259142925934655800931579206548797013469105622751848463329058976794912561138152193018491387895321300430973235788224224617433152413621293589491332228488592745209184339763340504601543066098585189592489375792457410266928718345009442275371988480266134593854033563586987570852888056624358200590940020872023179366021524088593028575827687906894215320542615018926169377084441354988554665611137946372907169589472418751785775417240907463917903543844183406660356986876283078176822426660353100362382624669577883290059114992511641582271308272934143008352640854223827599855881587490658442811195940410386350844093509548044204731833577747388020860899304227092244751648863788274053175133844411823636909234007531885692545163770903186298853357010703333325417145173266778595158334386310188574679523618803891366538571312817418437503222878433809157856620952434094243964962870563368502817222518027653812094407948848610578911224180143310695971242168054279986130084608824582456033368933671506997643878146463040672100791949424028031188421578895084613201325339525679663719952945826461400187507112358447509848725672504260417986505110789562340628802653794690122038980329318585230837040006671122982161579012980145471738836621646172601889487339828793191791414928048048717012850459498880639260120759077018258658468424979406198500172063210453976689767196701167537017008244020199667271097927558512026293420798653175989384291680619371928806751604787757227707370582089367708524825213604737840894290092331568398606263728435557920116676381227993495767588147580173794149882215111834224764794019326243717128099111492854303920613675357658763818914520817931362041703493253268939105242067289994149091443538629338727297285702170165033417074174731360857738128503220031692631507304966159376743803075489235823848523681273999668177603946494262142423148200473062173212944504769976503949375644896881199845134568786451322621740388802117793605046586429079174646049961580502278972439001066622641225419070932662098158922646870909601245458346567527684418332885855504556081378249408485243314396069544020159588137816437759686347916337111072862835345574986069515244765727123069977179892404067576160268630290678869644595001676197421969364616433967106727408223474171181975987765031441279681345765377757856505564926278993752569119607015334182279141756859295694502136574429422111439668613118509999175924323826097239344813120242768020515977665126639177699294287169866020424338634093275130819187355085788759071361328548315049926337217237403220447586897054234440401416234690483900199106904985277195007596413193995386750532644234594100297452720303256675834035641580969535120615299709214621634924455834955912445828478322966475765754150848401897745726727802017870911393620302806053877784346992894668409624141370590337456749966162370680034171044161898514767458073326151711830212900768140350785147128322915359776484149886859660553299551519094296383166840491283935920543343886112737114607209632324129360478007559258640083493710552516882417978193387023635353346179585668966579553459441094211075092847306746761265013812950601454464390103685045291507238252959582484160026298920191257531548654821027636718908707563645869866949530784326037530841540056783795455225009158106704670229690017276777091917079132972919025081034804775134620320202699300068487332132679268646355446772635473278298305863158975450760281529162761353888148338584870106889408335016220892495702580234762924263052845214151412652291813351055842297966055062194943754370202657935226037820556185738585973052134600424945515380259933719860192810169682093278700685141573754067733367746911749763674556019975653773688022598555198159355854635455165179784838558699788681372427727715318542494701892612210973013044110996432798019382097230345675391822928106441726138840846639737421767150222967285538957884208121242804447326457084991810312599985247136773701202708704382960505416293283344771472408377937523188536675767868707587853868759323971325179304707967861085140185246958483888295745965442842734165564941628100958929177048697482501923485481276024267277981063907432871049382516657939520473090346830991271679094260702876397324031324398486356794665669726828264137198772813283925647839257361871582867238589744867651084632758543206283743441529144556638627427849702219510978602189772305919929420081086088925851553289622002797605929335123214797308465746551017238957749578607164394085997323179795650092396347827935928704222933775695293069471805798831658357494149436004995484445312670806331747444922826650115330548999208126534958332375420885804114173422206731490092394928499644843865835679290697665083299279873055326400786749543285124027648515072446830007378619181857622315747874295674513091457734036474203382766247808337673353575001190641358858618852554033111963072302464729078954599392144635072751155368317397946818921651700165671337933153249777964588862497711031635876546774730806315312178264689322639722454910794037588358793435986151161008225216185812925893591258617834632544455120646568537017844714222681851895474289998592660012590754983342279986399449147796381193396540152969405994412267510070616133529578489658959988813701821505473402012717240749969152557422472282954021462422804137362362133439214542634230380165761410567869333946847663648832974414489866282845804256909720174175471695293544898908792012214904220014100423166916618093564927215625778849157875265300554230245080392555493981531583393702908116038205360390145701247667898552745061424367828906178819627089952646457834216809327487872598850739320076630082922695420621019619392500297843528986184144230765032660346370483927191201601677264385448331392325703371515699318212471830801048447628344442920768727245009737956620570662045500846466870808022073202440104232849671084873701897184397578796811413843268908670163839605429728383948718667819394652053901332621845600188932436392409725285245459280196674120530371570264704215780834856371719063360090693983943624985160369161824234870066425029386809569292064336782744130551149711929635622075861063965591697235464596507097858256677408114525405998230906798803525266065034186986815139652093735624760066377623756760505646705588361199376628095483878825673778423201951289346974797666889634297165205970456696265414321064136038726041812619899511107360424795676171145642071647765224653506466021508017120389529917284269907869028720592876601490531293455754330638677382777014999025705858901886806262559289345444909403688244046898220318011696365666772029048758835625266867620257736882804905152561124459867468084869651990619257459402263884441162760872208301974046902891095179429101068038121732128431132334631968281697240472597456158539951707294329853159846393191775364889422912684924963823900248701067573559564428462096384029143667930708253609226483635610083370143622512603640901088749432745862886994967570623903743766009406646365750849896182194105084539056091554953352641580664110110346057667075270821142924504450198418327097687401085613667772892406280255431225366406309013441639215768603917525185055448111526508848475914356823740236897656245891105342202521121778042890230585449615587559934335257363944704641122546703090610136547930957291692420010532286876021168717141849865049366787029720130830531476723491014412217464276254013771882092237237987571969593212111793995359622756719194042003506806889976087369787686699638228472374817949808160321545920141366771702736894342733736849923157362468842781596170124565304830564108998769254861714389097050632201946513944934559502364119960330808372933172532242302928508837143535357683669904904409585746459475971241188830815176280705724118764039182813548282082139612157801730142835722261158284284624324167008688489651801089314217166847315777427641126909828816965999966755112609845006106599722276774936144484793218083853630917219217103200132251802553218387396614070670004402506887160155641507864944875392380852109988090394707636730218916270269151884858016089273144893838658959657666087541827902508009745247745533669571584606275211123493331536702356108019303424819607905128698477965100248124961963302773849951794359338074162971898530642122520618629624327832877381042918807067251861435142306217780045008422362389478663614678950953193988122097835506151958883550633283382232697969841070616534547515011304505359303192080969467854823162084909507501488208315701258137456729143052482653579870446554719364654917930262275559088813175777043250214994244854354356875310687367049883600772370178700166234701181956399944906187972889719074932674345540968493155392718353883644203288768497561827095102913760365842809829338008931622232329244357471750864009987916461087693713276234161377656730028710961892018654585293712088428321074557399961540084391239136440386755517925854254625748417670508526067594935883199633668430537114303588009270236421032344693005103431232683482643544236901095040008761079531217605997460451190546146906235762788860601781842742241391495511728932980387794373921759826986878753564802314123144560245035116586369326177346310573945077268169950105121661163611573944221334515887020854166087554294324247718644547343794842551586949027662928724585564168536028484695872305273237971716973023586994504303425267843631075026096034881932972652417093294013362856862600079960140046807104123369171314467018269087394277183237197037963708038978206314164727529977012791199446143752820493343344410576988192077303426583166023885714417605900677353108503127759206493514223962184458537651783861897216693660516681064252322831842538364069749262563670369374667070213474783745309022629561469240123044366348226393224503680116270784616297640064372338614887995580412777477319893830230514174187282731551371953355263798959733819306946917434736029041654252684863972026209862263739812396232880309630764530487990142674031426532828661559044279614637659507772990422311056332510288240446252689529520585289252352761733032740939995817165480103032676397053875372752610728540123896003811074703541412682033919095355189939754630498963951070320356331647626915426671884042346881877855806232794133711958499004352005858623021223932018310503142245925230552310983907373527040876088888589822445360387024746895483441110391231231253543486224666821184765642973979262517408880020333770891024860901990742020107440737114371172442679862076401021590939394905263988556179454981633384084330749583310584051016209135994325953179564896479844214430419480218558803527446334202451496792513576698987797944973019549904493107604809746966380063200275585984201466517195713644158365410348208832013742776949346185773779815817015050010010596378716139810057005406410173241891137675644617389513970504464967753248056423925121904141782244027412981745555920275827447176766172924102421783521029015999320489376662131700070796187170221100514806495810029723000711603202272227089253374268495769414503840372425766987446094843097774816102085429525306238769211682092054659508749507235168978128071892397857008099299046525659153770299277124354142270601493113715381644908608381570448804207523118044946718799579710088038668371309529890146282380565791091941805301818885686709531359468295218939897151582292174807213853610326279071107110602604217818760460576620095780847054773076458408506856778147417700146275736611285735865461661998073773012270179074384204183684710480614825736059987810106740393124232049833730467826879496922205445560454903887826889268354751436894197185675245477021956524229639127579095376869711052534284012186950846890485921063315055438605901202099522453424839831704687355976052158369373546568623003586713845444977249515490894918343951734128381231916043608066512085249770297620176068482325521333253503384350834845421338402748150031622285248692053348708602871625705249978193778172284073791760513813349091023911408601558895255180722763439245760304701757450692906651576059430745824312709480204287254364272276035734773310500035294010830650849887491515271823178317946516345278471701576998564674000210203830648262537405108852297351794020334869870249756800034982113782819052305659599643167687348985175275033438779382290562793933203657644094105608584876219611617750029404789744788679562004308880991530435408704534938319281187265496512313488964689934981146896628002459485896850809834840475167426514059961647269378996129792286653458968003515584078233681182414564666887795004659122653028397720793536144557643915254797288230354208167411145760173650541251569770238304601960337238046164827482665648909472050593192867524013065121485764487676956810285961239166840164063387272076138957665622178642056787779398766874448338731246109695256872993437895807078607639810008062841212331993083068946988499594098394099835744433258896544675633445835478996389190274429670106508140101753807764170968619493998646261305288245047549138755542040764905360566829094954362910365772277978044077024327812618358190598850311001295722208632389204717319515709693571606418859291353132246571475299124296254761236501335063579737202281019913490412733608127983075837689014087360110851698836701628090587678761503482358363425672603306323623432021439600065553010696764063845230448771651423359745844667625645286870602162393008063507904828893913673974523738149593595779174445759392093355713389692142365945103638597262891086303164463653971543760361635665235289275923771829028821878152640934963968839295651304961231359722776903190975141747015075305972130131214039894881514595188522410898247102117877690092354924245312731281939462230013781375165957022430609204139005797303810998716421776876513669445749050365148854867727693694526734915240174527189292274841321084591154703447818575511100051013898468977283084594205815117424279469642265327128413294340156378224114753225583706657469864900990287627719833416359545933100643761119412804881594011113049612070990834301927391514960729156444354604591209149062728743719613289199408860868216192032772447519671825602617737588207197235335084065899517771724107801612522691215470153661650485637459371979771833728614526515324733645582199167084325516953127520430689446811246482713302649575920027153781973681091402402896291939795360439127391850506441344260326851019510484305896291255485436305705463780466760557655079825624499285253770274965840856397212998484107715009784291477362079557609651127628436995768406436959832238805904437547058453853099063719153430881535518944460819324499485143921862116255328443891099282862791654723564647582375344102558728404160920559513602321061551207249563510556020874809935291195160826836482946450137747591527963771893383009796781135907203210181889324646418432515035880727301349287914711496086355600398554702036099140714979773428800339855270738602461722438027282252398664879074626247399950977953124592982790649913660426137968919703699272063278522269702734520483082231148705695624263098901731164498923806204317981382100876421059587387634939119989794219630811694754196917360965964606722527118953300600769141313822705014411983548432056384573599283483256630066108311470790518471746021096326920098217432509031396764984024074253332545529781139777311495032215183407944252322849831135365813972087400570973232137367413695332826684069155916661066437975817707123585216663379097049093384267804335483205915209635718626308887161216875908584954276866775572448246934692061901389553810910689335732180534374399505675026584431700406745700092129021634961258283984866880090169314264141524349946754025504704461864931055475977370124426601540744765628769627386669886806680174140760356940577893284183412459349052461770452343978839504076759801966550882717414480249660533023030337566651948323572208855350571711475963905164541095851768967470879727634423322314283996083480324585346544855029274187353728093492525770710220274077064712987816613840608840353574144987105191442616416286227686794089720005106959865320428812008383280804930504026770180756943053471161233554513016808954970585560534320599150548086917098366992188416612175225387859925433879463757562271189728714282367680425082777321274214526014314261709997643850956099512143049749855171869677445167486865027247866856009807341007716432562599539275951916775720867715206277836612227267684879428650647394974304892378481221966848627778809885745258766635189951200546381216228892502656375154939569388101699254932306990406363491103480365019483869388074772741009767091087050192273329602623163614659928213043906716803620105861954878578930949802780099229841728122346350221103305176745769835041290315499397355757309137891229841578725941547476439795706337269638410167579345837703458590254858099367716045743621690801931363295128687107444425009332144825881713650614618895500252362426116140264688071209803651326254370474734222450981657528280584151131103786429703467910651589255685232565010554561667461060587612469048228204189980537968013842020501839797781749309848438349402066972067397373384922284189617876699927079892995739967679305281399863449055850660918345137845669247333408271436372086974201844557205414265245314777313101852906037990089163438302286898874816640787882983045526785722769527588396514329467440119866109147960383172476587535149878387897516697129293927895026000038832610910063138365997318853455930443716125121750090784420253827492396599540430534325205007875937584331588788351276123658564490919718626752055174542989043386194477857555962521689964291391229281779128818744162383431916533603540599394664529059031758021762721994077266385034190899148655609777243316471392436664657314585381019592275567606992648740073898907210265749092333630077939332438734475371051142692674178069914505466881593022663113260325625528997924857983892420928699239019768990971340996745791653816963245410861764367037195548482969605238546963458983043545602077142218039635916866051803474135903948506125237094485943946389532159159146663190569291657143336866131483272701397655475073768577778438260926066737881518853519386441378970085451089452899725472663183632345957022412633696251008735739829805976827127404811191624334532718763929410401570671316023730889949943043197384087358409313756896495013289189808518429945697223746470679779422966617477544227127355949557841291917377574788845227843053272852234357822249206656817017898008264819200312496123121415156224480778540830509618779842978461184363850779092576134635958731018665886223158065596346623678036234270836166492697021453854521237261955126970145597864296696316038845522372849685343588719266154446244498763734306101820939091198752350268338442757099729560132146249831497393650409871409656251870101611242308219004209164228842577353463424312650979856390203018622353619346637948512991087304277024938581845775486813479077441175988978281073751399733524556585487464571417346566298409399673594387500951800041407027192757017471605538963927036532528727621228826565941712599006118323272901225559487478981765366614585385897785326970379821462687760034169041640270745310577814997718879048957025999245501677190957293326600966655784728487928733515947967160009523692722674493525647361038422444088567018635689191306077193376057670233812426493357231369660261551141994963940995165176098576267982685268296783571899760289035490191749155744123664126576635238989933573434338136814904456511792134276179822262203688621421966581411138972627521139319482251472737895762148581613157041881655403012945414115744574323315973865082431633114999187512528560789957697730903657954242738412787942759959045179931551480423993909599926761006972623296105168996025832541777534252168478426040618130844216329767939923017201632702733894735023938178151785586856269261394472461257998159911149480243172869425980953690651504572526430902442620384502263777776791163351231119868083386510369935554572294437651939254131725880885280913193572062817886135122035632374280407661103976637064433085902060908636956109862768177980772846080542137138093638527969281877941284289565438818132542195009007072816370977523286629592815346266563014941289033347351901824755401736637887003678265497189210569299189792545540631223143076597879298109724415592300644414809416981501230082606176375164818246729758163769150280195809092711601372653147195079828364065223304736260707091543881204115541069461758457276068023569648136926279873379432374352221915822667327925653049101180656386873235049944783028684501208083578968410178724206709178622962748701820902328428325484592446649310835500488966646840857662820107724687980019014437411098263634306934642149018734166168270005127367573641967135674342429291365124301260027732639750564516102497302194752166913232650260478730523226674677903076044699550322478490602270466640930798716847186032476546751893215708056463767984861620427791919400957943178362936565639815356086960537898015887983664441201819069361088137158309726630433655803165757174957596982103165187452446360674143369031025810279704986239271671313255542780466644588273868804549452489994639644201747122631774555288729474338910026138512934187059256185084833020838690775160817403528860020963970130618585466897868182734758625960019032759324777720599693435617549078604145141056478355613108166653437864621698766772061414005459639926793254437890908917871439648918460882888120411515076120993240431222667777449061165103493020580823705614244754577611156130693957668442545332485381160235052626220999403868263681835588813545964162343621855423786908046053927094594706549241700448902254636772371906607078703933244565436726629470543340760394802812014814170150491140024683664331001428500640701750311542230260430785699108917758025136573631273964636777851078070973255663115052622030758587270955084226204110357745115405822838491211990587304889940308877123112766325262624484468675342684395903457237381310266272400681180708879184487041869235118253921730121814171875228640598091564444685420634508909552964787941590664808073314579283115373847043031410483301025938946336354134054082103388026004494662567059043026587467406483019920672820618058437386699397822835585071063692723907362642849738457766988472704003352068771616228895617686260437520241153783127255790587918219500060095679417111962282250168746048173512922133774832933169696321295857140537550772377971662812508818163566634676111857150852949783512821050287227826720059312353911473172436026348205038130444144703130238801831529160746930331231878477369206460769557988980245812750335799801912386522155658526385086981084512965666406084485726673901353008353364036328212921883138570347439106366913066467878397893197587395359906216388520496134714222507159649119851778937722788954795252950026043269965103704939595405880858198998528544718885625684465126801727811988774130653710685014016878925387653655552692531251729875264164950707055458726841906525205951962915618505458149863646427154985711372120733194435486161984636672542078695919034052211676538420164115265516372699991794331406651542357722790996488624289029379426299186961575327373267779960115676288320156760505984831718629391741585853524125649584104008737496811886086306397630730089799593271102985146868189398577758483332282337857709247989808762634259793579489636328025129944027716797978637237116480010323821749934288240232726158595805369780066361852866829025973772777402403203547871945720518843197623004342560990225328922077569510381614296221971120968266589410215889377451520633072590140263170818329759053062811112167240677023829594939407594764154142279276196429651437064406258076911263636256713612640881172780782411522929063811074062280196445093982329479814290598038828156522310551387196353301599878043923552019883896780083819498197665704451930341693405591903384458567335648017508678171780766150126152104926851136381615474860486243529707866332423285892208781714047848900390237954039802771848462563131187544771293319137215339213118399731998792838107867377365247991987713156788589107037552380849649597328376182634100207359244967793382822331896047551231521038534054486360774919663958946886590358392190686643352303515057553365952911072946457931725226272291812092983728299376308927823565203067442238106202223804917663098109687497713739378732935104234191815458885393478282684976903955514653565006752457419389244243001350040444656838980470961311967094027489021576444584964405739310124519239900522219220440708206382936284265981106585859271731010022349199127586295130727502931487772740652406521035254594583146725895865509938962704673958148968908771450906317107972520585702080182687586176384861817549561234391940072133141201380833503190441262594584252638805112069022813679209370929182788104029916960240007334020035483547460529539465240130932289649515349522442571878456899678221877011570352723985988557024992656519847603704768356235464274994150723484376330815344882112097442851004447946875681815411273146386108124178755350531110250339152041959739464070530241270777054434388012576316482199828351540094659067365437357387674307534040320578916847598871800378700135825427295835905211233742191122871635980656034824871984231397124946377965556443864660358161716528348040493000204809595776426223536923335904403637624075593539782405191275831890498959505699839386226863736574061009017213852710431379381437811151544377023082539493261264782065576306573418007305327393803343285369044105094304607101019620129366838020430282448718631311753899358671835366476377551176113210255621392766876885040024497396455696990733054218122535138115106534851241785076491929363307472946185806205090110788560465066344736980327245902377651354955498850154054904535009055662401265229147000146659420329980665514873015336098095686957725836428515905553645460777032918600377875040949908847797774473270895317935119651881256810947529897541060779423803429796869288877113191010043374892697329892756305516197548552683723263067636451652488848691920349691870366810361804585774676953476244901856392936895169752849561717639112953967083667454967165556678794505588487230732503524297809074753897738696261269329034375505838532869862603175868791103220008742674729103886295947958249339828404226427625389656449320050187170947364237342010718571871004075812428890423159016357057885455767001933778559374900344998679527024710476051630527736876536769713003011206757952909018993167558781574890596205570252686556975957331099440817529314052172972483676915287195087801900724494810412939137558645390469189882452250133380609981191342544074542275841076765495711731485495449041975596491453086073613836730802330036279293880298667623978810903427073643173179207041152200576431694331946446102967943648339999716480278160675920071427637609197797193372780596410710500948306672747951040682311398906828219355081473491180807378653033280467938217554709650950096307820308861903984006972690434807508581916484217785394230379728815913120505554009936594067610525444474926723692115940606720207447432287214507697197136409439305290026223739556489663890223370135561028589562767320563202643270770887035197344964519785894893312929223579281495006777215893145039462844637721847605616355991901207150188618684796802377996225433043623432592109382481621703384926375155361602319451462459721070834894317942434505093384603419916661937852303061197792674752273727717245370645211676384069844520720988011539233347617178023000521711290345934428611608297078494435894404396045327128284828827618130639613602789635134580433178609336699571184181162187231626563980110622049451799342968668832479221731375648835058006280617286308337345597412955494841628518646104928940303849030125830092218333553274172717412164789550797690018585444892200832863957438180391030837360572923238762793592720143473290294977362937531038227505270711928051780352001056060790584289152790219014140651463867977656603917471141916592620873277304046853193291267336168645238026079286912380495994779020032464967664910283433424141403699247836022024177972019406791195346130803544602438387826631359144453558546249338198404294637519468560933913219976080320203970428372416795469914571763977211853588241629965826201187203594297743765022615805315529571437069407346935468990815036787437162105153413550193262994567786147232746972524521224660366756857302657085791052927258013441107957612746061250749365003734473967895116766022185916233242082094117608858593722205467232589505433935293754550833823920411507810890777534711026771196667440630884615962849613000222992814609236184147798131760994392164686049612064014759999274420377191516175358225294504533442631399788505580330736918641232499533525643075610860315343977170377982078897866999418166087906240171538175454479401848272601072649981851373479443214184545207872048242466279587222754800688149224706919352838264817650337947414117418747141298053672138790116668867900017873953947912956823169661462069189518217618577506693392752275397540590351033102630278483046142215844576607781178529621561754429619255723259936174370468745136800827292309932484094469895732779003049898953809144065928104109127291015061245931663422006190139886039850888416107566776265136768975094109490791186115625363513273934621903507958963978920617568689111192049881750177974492983732406010518253242654912138381919445086005446925439381983002874728631388886886608806567224689049787458874519003793878001988920127237980063578451854156370171645096312545109718485474487506775611598252807994493248537257821734816270061105295342154561816828806594541081662062407099502278967890498347287055135791842870561494331848127999227194309560263652199435393770435266181766627431516860358534352757836597984320504241775425057643494174491823203584291101642155644788044327013361722597229458662337706467068552157737838586176412820925000894229316302803916337202864343474562284816365425595717574073804341937651929380148232569538690658482625905120866110719522840246661876605229751214614905701665783314266391292125745479361330430769122809117727048756108117504928632435042427368992826744586896304123654207870369222202453816813991692972166584757324298683787812762331473313367911423296188144978592273204123493436675098718072381958775924854737464255886755581173130796943678326669267872944236470147490693190708032446588652057395366012561284828616887864101564722673736220306554785050534372480200143503258928480703309191014406990631663469346298943188251998110218608024541754358200068992505310857562217742968971233284386192697281013217194558427381485320165973814108688462689735763174004504507569024970743356174620145673004849300357578647775172098862847313864629981452713635059278765345190500203983835973729969015389126267287523152761273778185283370243397067773728778873657778345130810941886629388160012899451735018121725341563460854935492289895363983778083411112395182123285735357106135817950071360579809742872747538956159034088768085564155339208553324645282543210297416161051803741188035194985974167325568778389885204757440047650139743073145243985062678320317236452578770033743440370790747411001155689513008174624236981013301910967690574204714793380826851544672020248447822672839437917997970895298936525741491935588123411184892207847059903159310680569389939316563636640983890783303179050032491630763434172497875143575026744870408408921801644239689624404431682863435711654251479746455766593227427902799550732560101733090990258081262337492385468366552619456141996280675736805982704186527919376205251697331093182308845702659410623109766105743432843474679405458152244277975029199496245763234404826514780773400941392892206122266675694054148651341560480426731283008335255227408772168079226830123259137473423171199018712371724951386473209344384182737149671510386971344626757419680251259566532343004665308072036392767470185621374530329786402592248017599038236436831833709851066254976394334342980270411505677693421997065731195533443345286448395348591598702242860864085662435564793292698464599600941539209854352935595369312527369917722371530943531763990291523535465608683890658880071805274766095847640919379728285493304982826507943849141936553956897308518871241674102792415978702997884588044434553998875018547680566322980591203487221848424775565934044320497648587174509299628209735995881731795426213759945772468240037700027810393916981672246519847652752277469201129268366092885776039848942993391843593646007271068933555066004967256161830902984569073906199506255154104231478208131148886607657800143611091831722312863681659104611479304768231519751977494061037621460267509171683469153809238798535034060545651630676089576571410392018946373304309375531721595510562782391598897377905849563863227604767903285732206319227462145894998796539675591771099379939402232228549805396001295699487279237642678187710819128740870678405935744041156638213406533779494745700469366210679366394062114192491178564305119549450464940739028141741595014578070138366126438494626101048682881649571344007943561761328747464069906033015107615494221136350022050342906251602527128185571269951799665813065014075100143426039843903007097757068460662673837203116216803162959904834624051441708560875556962287840154024094621666393169768047739259038039675350051071872155156846758829997255375399386026864552775752847531166925967069473347804377830522460365173183332108622042118526012329437867626794274228227387597983339984236341054964855626527099221757028597907085868778981423870878299938640437117038730468151957465964356789430527036626727110052422784751920776314907135375097150062630905121251497999971366695631903997435771448034180882555987878344953607850790703528046535127018593888637567444116957337480393488913428320491086050072836494067287302699501714443358578811947845334923984747455118310614662683663377832282467934463085040704696927754121547729942219247310082370797353529901029406167903144287682120164156126339717119201854325527153888988708416483244702951639357614585105060969938624126672024241783076290743400304248790109108136935753041606071110452065798241926226697173908385560203424467218361682258373256005648261945243992274481716191087285994878902754469891880558974231169820057205290728114629332657149833135707308179912248382567635248543396794994464833159907353108211557619197414906196286377599207474479809595874368998925693505760841266327135381075686283543872416312481504322567393085295749327456641657440630590619126699337553039853049443052051856587761471836600004478473421036711912996212762345054055545792018370171515099139873547490663600180087767726128063984672685237023982780936846384220631008244308922200468611980794005622170921710476028742289211284016562757896080312544772809429998044039718886264053465338105346949431948389810546210616223937711820327578733435535074735701631630265111474684069003336548907714584664618629104506847666190773724567840935170502940359740554238272204820271433968777204343264711696460045019365761889224740831228543176244064767657628920364056235093488917275976946796781490295761793952830950442415384199980559553589809608536180764293422758403547131796820342679527335613375615354082795485017659588326148413926899858576095695169068797347672616113020306543942061732889281782092977969882937135106513385268251370673687128630095944989033215066742592409328457572540924737729283337300455850302902980166998750139428424057051111091537219539383988967505255013338533029394611997734962265443773802664558023888516334688087131689230885551974261606234714772717018356766348301584529809801407559276695489137878932099932754318383506375516043407486694396731662407724902201938804497670928510130545825326257344747974527175511901631288039175293436667626479358246273886758831486857702370294753349830480405131603551323747438078549066654885359607115778067127295708162738540202682348054919373627538114915970154623359300639627023965814779377438796130210017233704267097377410653067906046326478110901442990765411214448072092347481150441737650908936262923766495701030951951272798883188590295331801779388936669351240311016575149646706529487525116548122546216193749217138635410008545764203610916007270729122259163628491838616036214870207047011284045418366711848620181937341229529296605641382086772440582717556508977040287774943253155422658327676803775627964203442422941444348402031447463642198394618948660421581620724111866377827952456624392637010783169004245013160915682943566885099167482422435781572579643285410155765130506039095600586060706093464878870743076132808090655782331075378208688144486782004084939337411713403654661831401337519437257759089452863388101998359498714985626358774655577070894129034142065318512407433048080128717544537016192298952115261342381343716429063772015984942763689544003744372809170798982055445006924807833356965346450076760725560416353984313608062509704491780784306891130581842893076157620137059506610309746823093957628929726473959597423411359686262408003211897785655109290571261477534288620591875876539360172358384197058218505408520788168001576026906425486364071823891041595960279838155309168034382091097118427099938195585329484710044707586628054759513934209411347622165410071703191690751554259412970682210854392453989463801694250786000666782577532974287856534976623873836454020941725262981836361417605834063248639735635204812167130327240388638482324589769937768604689019127952461107520742632885805416004700547724010143643693326335612335952609701674908045978376724565530509997968829793411053272482399928713112669701787206048541233568032845672269968625976356164990093350862315218627323923925085622394873596331373306474775076425301322806324792243420123154182698422250050835832737896525912561062742360201352858882543220979337429949168287230520529649035521051117790904730897353503811655379962640616786026859163231417510384896014960861660265721340585459915539955060792239332878271922489853427487067054201768981075615835268506279678339862688247000351491610328601324938535887677656924950585605645174878631501976189820450324339259029725601512787690940302369248838624815609811904372920766365086925608671904856959950369042748025044678744858712539723671051605218865434001778778809465092774715902730655812197203765686200426539766502839421023365868593590421932314538636129324908473906214011732494470178270229729505258046673352053481796525506951913570382252253155890983909284357014689361729418978219656229156943805660638092104746492344296945134830371349270154107164137291544829357494052243068091464880354461844358805357159315826629107593879303130615313131215994317953901953156629925304034615617140611284707060858224022568292344388524210940345384420895992869807729693651616024447166532466043604947425139667186890252033550259729873354330036067176903563153491372290190016936020132402248170204226470441308386563589287251321371761937275885769845982591483257181743515517285428746281714261541237892578496583150057059632840016307135608532966743168646279730364442427905685966271260101310178916211805293229010861532290434408120048643463487509260762702376409028211322858848008247496252494787474658716880127474043276079587094740041907638376867730201997866825884382627547659175240817718698652598829559051914504893822927699196219402133806243806083143902609879801261882978168470486998300076219716203255745697811037792866161539228046309171454248422465127737284338806216433818422569185474686597753587114778309131201790292103257690834252280876061960365873026296050453828620888460916152276002352378385042472190399506911028262128554304908925399044468780895847370045339648209500157738368729996789678341762836249870539230990184182400719388257596124061629668657934600201867335800472736285571863453700817105263363882398701204455046381415827147312174632743062869183953665354194709019860751480974559175583407924543529410237629383401053122394107877105529532079351343829070635423497411147939278422820933892203623708486762171968012628399125512723683332946573832217585773937065058559772430090846673814306447373976877350739479930460549980477955822656248460082079964046795765823088896502992383591824679343698682768942305400766031989842545288758172390411666366336156715078976559551240426330020955654125626621206165928839212160173539850367179769592687440544298961714944706865829861837993690327638016602792670091870943320336099515798380467819427838643067140069917078258026745342431775223437322159693705086468158389465024934691642803005978927835240920510750351470401027808018570428059450218712015433205768572456411491661869914631308868675431203218916480446279415561740162890071380843280971534608930464343375191637833957021435503752918011494463022781184518362498235817298505995237552921028503811628188143544196549368308465915171267946451663153393521518276133050581137783335294819670426401273053181706828726309757059781530528053971227447655743811143709745799556319238032958608636873988578960177856900657458187934726870558932381487640380066499427093183827500736664621524590117406143942561135981389012254873785424267978469629011106573980797709994137151704329360224649111448108203811148366151252590022151396431811712781019061562681682674544184529010112429116821455345264031438779848316406874967538606098419597204440877605580456172412821870249210162908090293393650660429971916063541703058124848288332142538389201756000214613843431002839007529405847989886430417272644992539481232461725223941661844004786450400049903472861408964276957103238152695566302161144112187691395013588249572140950594332529462782063246387124076621349332863240081448972282104211925168777335955575809718518909804045180380102244483202393426244431420995576965868512269709970173107350224082772100050468241403394331432915873843463763337618044092843063955068710980982340979119942905723144487223437153501606123657780516995699019812144062248208371666640335369106220456479403768344714072545703059428579119752555748638374169392564326055978497301810590825681332541003275445586579917840222716068322936083407986308981135786813717907779731459553283816551288243460851224120868266673668654884502028527721127580319896524381300237491014867552186884691852241193552304948314846517810752197719462138215369804885551957577105527831936915765234026932660305347288473009022980439202716797506830167053412070019036439969592144984848452824731760578527939048863986693891526462268243991686185422800306094038694825671882503506823880431062406073537178279338787314050267443994518721053281679323636066014185224650711499001247919968134929705833060098492981484801352267304135077934221916660875769798792734073268769472799465022034969579574073669622616695774958167893174773780115376897221004994246164967493409794029354213655517906053741196664206491006033452054473757256514022192565986322125073831261209821062776327496200585696777946390611278829886287838304020671853777941828477662013209430764263405278082927755985673698352278837001382322170356977960530237683502277287334060591642787587881517990715905135398386130909026016550495015008160279469879839346973819405677203914469461709300189637218587517372916947729217175707659602730551820040388916919516199554459905021605081210642781678751240416142141084717633111616655077632882296944707762570303451023715960682866197495608669975444452919496841302302767702442441297594519349389590027564301256062525979419050707465176930536663581246098278531778290022419424059544381906182702094703791303547356918626343357194414735876100918047151907646418022772759212008542123874631607541069627072696743275209156697209666654093325306948805406909593908661876598016970362191351073153106012464909637835536131915571703066537412339820029053233471233077520501733493658002650894707583225886020947763161024923103356821120569459091313792505601023882064491737710453653078807001713517058460360782033326978988113021418636843169805531209392039189751359398620318536548911935381295609363137234808102362457094098368663933900955290431651938564545260126947499770570133073369191790752452276080105634892368656497390559487271164229092532573933210865594444107631138011498296780439721671605270349058288721220534148060187071871834820942974552257603845634636650767677424203290721188746554429884106387938454250826841195365671159491780679558595258382025574805977307540554472223342938720246755535658756359736764102408269634946989569570826010121084327504646713748927678890386965851582335469672784869671375415118306116043536024336545943732635098390684597834516216958502622049882423499029270040237716009684805342917344511413981695722174688885566335184303198551709659232394438436600386278719296152894201730133913402009302832573379067868485526390729949981139314884508507423166943553576625432980905182003833892443066242038801486310101248918503418856512175523273263960879648042238025522531968921689670942425412367389124361868403777357826259467715680953928057528390793685362603014995688926974230802415765158262331938040723840528726085938945714226019544526803255327134743715960635510900749270023416406943077063991984178393924044307672875901313523184064146825699427950622001676021187657432982765751453566390478964890181486425310898135256669063828512136995026538290939948238460851378049179662013104984375676611752491488442017808058646307713748633510559428596311070724699435209087358795854673350271917451679674390386319114585129171592826600792807502848628580402849993555582051342062880938151951635681425743255883179194729411847911189328014850943759190330202469547921933370311656189570831495787853618358955428141349033805203484569493819747508821302222127833210503970068188963287152557826917238508213477567780867330583772749205253395207170732398834777715975660703479074554137241538048128815656955917008159046685919087773130107457591959361395352089921384357077369183778998996895878438850317397717354316958328457317251538268940596493514081100526975911842954482972386798287407460632919342501721181659493596535495328477290647116340710700775325883606493631158621996944920067651929649920628796594667357194683563916180200585774390515774422227528900226275253331864760654395153769478413203706596404883206201071176989617602432786962898060431051183682025885408768842998907912636594210894872543857681898841231367601647396741862372817827117206360172799366758107823962439098223747962351432508007120786494086949306613403472843673564907543065064386369525754608519206830793521563774234184390733208830699679129207575037474923803101884146131133363187217939611102360070154795107135668550573821007739393651972913741497529102408048604626744583677303108771077790509401722293711845866774838120068445140930013755500009887878469417485197269002023106702307313687271946039770576495184513698830622927252138521434533754896218572283900041112149217107890076928988927299542200888433798011774384488808854340852441284532947157715524342151199535363718642455704447465471617003556898933066406032348992943501481013261886074788529377386470679327730313414227273172007395829243711708369411077213533164408423358462959886898041592272175462437025768794785795392273601012507133491254587626053587941047462840009752076367576810973455407296024223162665643778956269362498645720336966021198322713818446621369402498747579287588978870213298567728241841432112546778368933848024858735587186738096840973211916851045697349453509198775481971806968612765746160267101050869785005363176842703589302501168097740475227998191258971705319489542831350836387536360098044052924967622193663755894290342950462809343654670657480655376014723361657555175551738620515968566177768813925379710919497549717773907261595511086011222399507954463477192799444633898921207710262188303205751806557138503117666942783452916352367711965254380972445496681417125070870620996747565024729719297353122958295847463570075842139926909951569912129170129559302138814696738982034501860397023452493037773836188963075564737597235613101354541672612141075256506551066533364179019650387689712147165498036479867674240538010756770387782854545555889462216471940993249393138569632086446235854564129771491783170180424188566001520028021334506050857845469228209984334469595472422253776713273312244122722741097697546710386445619104837345418525400818586316848868301986930024202285618380930811500603714268647858515269387659128756572003827864418058327588959214825037176287938388632069464956978850106711350585250782958707170155105377929521291778658602025851665348009597018206217533555865932155370973787296892874294960985490240092059871925005528593231882405642540597658881647415042685427445980367167876515893163778842327646287808364514721546687212460441470224570589340822277103140146769656874429083122950822417823735240865160629074163068417354899742659557364716082605328823224933471551007608955066803051672333736136189117745654042678854502144105687416370892820726201650881310747100852738985237555880145149037833183827954799990640023433737300604847361628064830043584572954289077459053178840851555299179404211109316874614924323409147317088238801440010327697125758704270525609884515977017452663732870718889560591543075302188875814464968151402547110317263096279620069013520762297913557563858198881386674079962262059827908827082208979243839963481050845417363944805484985055379058042237438190958045565795921169041924312653530152535365560434416589838144874067467914059189506942463730541840236819244927194984916569977419439660838544275884790872081271474531601123145268202684450080448827022508165252811817205871983142206668429397795647822326014593984038354830147140992553982426806461472547189534684552064817726920861577797162590819974380765242608902630729883448005708605169996672141314506069122893368466482505352292475867512713999230363827992956298379601567836557578479143638425347539676320532571628772615587368129974068047344812802997389241327083193545993416752127338539451678019763004905180467310091494237398758489006458789371005371218124635015933838352852304232337519286850295774490605389557830940557117499789578875208207479745315608319249816969750821195545812202454121504131667928345260139479443955555662605713886566735756760116464714486630181552498490693997648811927178290027156068414950040279397636834035940251749942193249803642159323893724514996038063416891099666219880587746775340961576290677207358535586675332465525106950019067560228484288856373766673239960497713424067541988278547537985041229987223880738701098513634835521682170640823210266384208612414701519897230654938652045251320481221573132714063910690872984590029519183592265467613816035677419860894126228937823922732787811853023909103676203400459933899001812458198362217788584235420517546641878637670424917760556999950427998345729510050167825448388700659948960715839027761688755338776849720069220671245183986050090966791960317679469887689747484741167783354796261587132430341890217447882659619645067265212887779309093842450951657443716631774088919025630533995149395641919490982274996171301288486434598794942481611580612175090520129506074765124655600820690832551036717575448763784554425208194672513018490460986920477642298243057596259866048884674331727543113653594159339729150956718247935730432668902275180934395545797160794417070497862749921319629373038130221293260931267106580584669475162558053653673317374761302314718338106266761672038703116287329554138539318029036446349266685988457305022118665419340494074906244174960039059998552127912516457859836276299313947580349053066055187084961269209126643309531933396761175255139065408580459512046304158243131175192342622953453338051586052504294261854429246075125621878949614243952106477177139799934211031646935150493128596929489717532129771875822182395958139632753038931643813003841871446067128847227350259209576389557754477770436983646089281532770822169104164864791885892129671178664264062750826777535478752706256402205984755019031216746064895762716939753159725496074777564015360998175287887188988340710144285218516511725785755319976350952279050301166955588938139260878843840202462339812339354819022245293259740878266163631846107329522583183525782134068026015343781798130409514241395805166335644739860946235713071358064956323082998306432761644617436746940307028126753204628332270336419202443393714931859347406504420844715874131298631363131065204710585060182403227605231676960129908463728885171277271360322388433082439005119591122279370863247098230817813126583459332812879760383465672234603215455744548433508036151782665548076848869277015607754463230467070302518028687848872276473901123371072992542942243636558045139154525253730321814084140691058071690725171189768243783112701635005587561428313903947369045833788035777304140323687593621756412433481102473758476511625960117201399419662732452400134672530985235041429082976933954090293706486169122371527670793627917191167816548934387736622495207244641446782156684009353058631373760593272466918276166192795238816179969538789001362923390104724946548714713861025249983938086251822302968706645147973085497058234734242762567624294973350997828995041687431568155897758000742720603125788724481706583305700642546057324768402040323682134592027144560107203680211912130492812524408127626245216594299407100560942487469591291814761020268983491044024504594879301706372938666631713166922071926992991227674714001293434033935414569483601067269534239496268273788494319723803787307288839775902649376243694929755848118881225870144909090557421834452278362958156163407951497397063257510338460243853263606245331464387991915407464095312314767004703094055955447246263203653502024537703771173017139599569980905535610119207880795403204665672642879369987488186385558116360081037282283972424220767444842557091405365210267503743534460318230850484103714566617515367911361443989690963750730258832186122306505120083544365374968635646665978727170008181831938866340885040862837139110380300620305261288753421943644351457017274941623281505188896081120691077220784234989677030104259091014408009747151310714886479005676116208217777884114693325126605745461374932106886710989862711333463084412394023837690291807194500512445230008677454781227275539994002827693501702023289340193499520531788875726588852011747670134375476340802531904829758743386600629111926424520862130668565370165275563282142881382348578080739030708148744522201206081346116096094470507695059489293003524886957632654945698089338000839663561819405797504538873371874709518755949696516414017943275709373249341873188268618058766463115379784520511855785324354528389249294656764595876803785095340757699593502847555594579727940887588267001319826005683068705818649152139828388499439906124139456839392503894862545780755065947734320217781853039427764965904070332636585695815218307015987643596458992928805174575089359062713104463671803662799492899349422641374711069668832836833019040320432004791011376990583318167435370955874324027097763637006133285111327032200454944485904496012463932895385907682748573971602391893941983054672517078224025755584763447950347055847006783076674897063200935953032417361115886292177589835439555590886562281215514851443564382849096156754929123136228634651264826762938704364517336900468851685522373471955833757837784851894197687283609400784346798008093891738751604154414988682068875173680827240886552986848534198671970977733482368917002437551207952364270891001716185473160408127024527470390445846981481804615411469309942106901206713181876853220786978496337595093090215337429333319131965487708591581338314765863890321266790327409006620536468744493933428610321559068810312342144653280612968418744615008357249254863369534617770682604857137404436638369223593012002088675704748814162865716901504157640250436099066095472669810216302861219093486287264337803993379361364576985788826934860617206467431306225709062303551211407582977020507886408080284951457232238778182494099472840076877928811207653491504307786973385822139223045955496150677429490902187599234277336441571110579575017198017603689263154385449390308387886253816005997563552543183011996585058969257344926866781153061445610674061666141936230054012221984815640507135554706533353727661825730348721868167173116014379248097282172665232900517514482642952267350508906966232787870861371039679151327552207945689119789377374475912717332243003357730680271730231159468990333933361324452049943942078951624281807501790071057199004730048625615315589456687070897518581305945411469683151829978817055975696580732450990310291523404468271054883456968075257030567227971727597607251026205905647685279323513160800835220508324561823321486578815517126433573183656884950288011815211121776051535142598384294243724965487553932802432669406366949484998323145574379814396640533582838670775145834952776566689612448493813662110850132373190482799296279784065377221843803365739919108263458299413483511775491668936260516746406256285891606355265173280214910020964424236009875010160230179246202241750713385454696063130671600491267969425234322438490138186784363198421939409950019534058136785881833117256930239054592930405118257316948156887067018172232367242670643178043420637535890878875105439442988585060555940303442674495336450643170704745317314968648221500294192068401405915951675674312067690277154551817069344961698138196736447386066925422489108431133683721373507082345070690098390281906606704814636622629282422847825283988455839616503153284092229290672103986530135215713788529609367783728692012996444560306153124472249959261207578910945796096887593046403700361308754574147612344206197979017010739195813438336031460233431043894140189660414804745312847526366885023310368360349656553876736217052722847480594318783190665157405471660773474190660615815537794421177425803050204370288274687579950480408979927750689830764455242637795624475489113416822453614013423262630620161926797709326420805031185474470939766989381414521818560144062285334127282269108061226275419956821973203150850965452236730196177766342230499749165168355457057098205796882432166182259406308716000250911383689965186468755124223761410156518745748833606310385540098342884186102632602639177318147081296070633150285314326746014774973268869237954290536828475718827949189216505445479963033497009818087326781418504559131178082452721300760469581301522290880010764805959538623862847701319689167922812725006660736704017495712168472904909610988856052390763224340589469772828860089696216866349108551713122267042521379954304836496750382910710128659426939603683674008515756107771378642949739729838918355949977372831555566847159618300008080918148812514577356040196768263860640774175355857183758133696259100658311241837515116771257064000305687005082190625933716215893151704997693931499175189122444531969648613770775867557208516924881872669557492339163395464860998875814076048883584263172381751325206319925436690067629336548361315502047364574706941721979315223222415627096278841659834595526075204496462402385249004820222229327880321335596944914239321518085443312203820954061869958463117336714078464660111042439156873014042004632181976028767832014247207697676195501295999525541763804018323910377368653538176310772158071677817883326492053664190555472860474077263883150629191984198261357249517057168980998528303871112788813010498357219191911170512821153266195603564680309625709499155870760328629535908683237473589214978895525789130877926814766375767654920092589493327041853756838501744755678772370006379360008960065166925536400212553108601524160752829606609492056659415893583454760865234936903372122474049857280644532585031398277620827152689662807532516231383428545725201268052598225836362276294782506777002638116671749313035911236688579417416371039147372376977075730453394616820183667161472744645987849622205209728680728015592665118089710948083630293676076317978817405276054878940127270070990286261680606105354017460644652510371822699980695239984951751453305271931019942899482081233328574588593887474368905010833172222009407004992586864375826603770547176015446863360256508643312921696010643285972036575501428511770679416749178713739460084017046650865975006276061518463170651956463141140798245167032461332309261144600527858161914337175352525817537864707085286413068602300892715104519257182979715233195561277837801738328259347260087848435324084032533696496804731147912078836904384320732765859144908010458388580899904324518276973431826143444047345960259061404245089022615404362037283635310643442774045416880405088682131094996810292780096991717724266350017515797209817897129315676514492170581121542330599666735324354874949595554451673494202114045789185699961775641588944735881891090052920379567201087281512369269191969207979309478848403988987184535815990606503487618906611564996627800515741572604983758668983743260401086803929712929943376798614743581451361847957982432104657124092613320336619819748462328794442608986160958913654842055267973505533242280388384862377194453951869951466234484735940165685357520803523548023107420892869316826698138783839867759516760041400834239286007308488753491948514769074577090405867391264623080153349730857784333453064271954873522545732608841870238146916894326828881465348837982275646846231032012615763045141404233315306544054530934055584215601340505554896500345395664162981925151058049851966576520854389977795193521110100656033698667072391647082965732949760044623374564088288265763637215327835612973830770353665115173799764492850841193612200689066243419889724210454558718978284783528177225830185819719456280527213037224663503553233681366349766926559065916269205713817471454489971702375749345025866484784484882775490960923209949717544513355019784042594202658913049047733883103614963346629464382800946461121388100471968474916867612855411495465197080041195876944645801517124516820554741592808037852978622655982937625117097908986841417329699108274100341764408117000922674852703099302205039715492897936683024891215784126987936373469810735157021204553207126929765798011992104442679984793715016451374056643923606253181421981859317365321086519971219749118308880643603881759867522735838467669463777094876053679173334328526125729923728940503284973748387358450911118627763291062690878725684786646602856161792645385143048418485415670653208092800943801370399263389663570774164883788206459665148547969970378084736774786896864464556692258169285285575899986263151164189864094703745882187618484834175142374944548320698193021461269657065628480881099750483059264695799122858667374179811001454685794110385147751858885362383765103579671635701828263922898628721026097749721713451875120118503253779539121746705331330110499748890391851230065284905423752594573979634185088751178224025489541726181797438135461449747004617917586545650868853987619536945434550805202710600211671759841945553314304439394668285866685501816019116789079117157461251083877864466861775419349092560505897411862306176672811807006389988794955554528367533707097132199801805070654866769346015269143457367370630378545675362970590028330468067169317624722597416170754007582208423396322983747257365717538807256360561614322238875963656606489620028095610381957789355035069992975921181950112063426945060379911130484642917091349483609432413702756079190468383558750213390373301220464587966400088193692198736869020000335635226542136431395543209424992417909932671274932391978020013606436125304061100580678887637448617061910650796514569337158697888924216941284491716577860248298303973853353420045698510977499207416730992814100884828753292494050284280726224037832242986529156579696235479767424533344819632387759529687950492517230907382554935467845703041283827183324242232767732116544233685365702565192993681517223323134176304206470032373423814065860450788493297666903150455659973433895689663584709086758971719986750633808068119581510042465485960603508036690895584558984835501655143160037702497072665740986644730374368915832994215150532724311332999654754349570399138582838727287550356994744410608086932317814604367123035857360008530322121964829870455841947285343038853799333657790173539960775157224215265253252817331686355696282889116308032540535340723316617814184535418349454752390011031471685530090862590188966289858526090941274073454218667425766567762035153432950300322490525717010677849731892843702615687529682829564178284105005569101575987683129524762565484061959618780771806951193523267287561869476783244962806812139626036105857677595905225302452063735009755204131566693892577873489083744042807863297739482488741719257789146614007148285234174864406977968684202993389378955880446064775038628415049914619921668765989816650892870731133507177560991696972537226278914714491989274568516040741058298275385371547863449394032022551987481813557723773946601543893235942881347927428887754329615617018804108317576748996517717970647276572285738469934341976030428964452736643073893735474219303018659443022791653805674169001818850691658073346174168088704214650354095949203371084543042010519352833377376827677437672398825728589227726176045362456177468437779060418279665298022580981430272026616001791035120284226617655826335124537755968828337242783543966038465719045634972671041370344669540013220905535409178111643337482791012712843648857268393659667037527916279391057638966600600619002687192766109881027840007893098174860755137783377075798659212382220652828498829614685932129643313637426197114780190212525871511912693732109837245052159445159161775161596711415871708899227260928659284778826863625650935339376762629042768708601125200524110938568870056844609799758227516705765919970775537849852077871377458081740785945804145879410511419766188671720373156637831441582377280454308947647082891817666313304911063610753565831696808291070578540544865951545416397964247843636459456008394585876711917403302602239956652352852008625944652498639235815637991041760349155332554684069973599118133746677572705485267036252356254077147451364558345700552862753928116188475345623160029959872441902932382781395331374654103117844548284006807596081268240805744083084191968205737055642020617568824827527019859356069573620642550613893928598479453954105902207322298890795377501131705959201467510293859412237461939030676176153074158902963525354478815309849693501253255928528616993077697433714494547507597039887705260497326254569585518832488887648129282478555501560195071513222573601582775977834726545264183881873758760614402592303517496375897316158141323746903433474317498391930470272528349297933690718536327010969012164011919386372086433289675979981878841469112914234110306298354926153898046799712258446670701878869908188194289258223516092789949584683121141897259175031780113252388142714328564699048771806008601799517916754212914146450777122668124328543120875606750099253803723294489360322339374569840462020040564331669083616708539256783430545844146833628547740614336678460351787913566907742047967582106738766047850936703345702479160027856660303184031930615326682707305821560767690203002732754385406490228125317849793882994113149635369971282415717146835211473791187065200991707885483623207848054824920112895337983215979797530723195282543981821417161170050378604603920857348449449707842746358437541996552488286344317559642880607477287849238281360272482882058528775883655718688707395314053763150409787084547183108186778499016917563715503055520128748538322780399482107863283887863365087180577113664420847790249157496626696675713766490591748611004609341443806901217793851412482631194546310871224157096977922783268507626606298082268660260014649347818612020799316318093389243480481270416943062986481278693031022246872027814421700220013145917163944004198858035138682979742295483851978359619735853828033011383823373140499225228026510248036114239992555474780825271376820618914973325057666374735016624435541382522300999817736695487141339679155719299456569095482966571515485950509453184772097339769187372762580165382946720857573782941944780191580636854197366198868693394292753759145582597418150892906640636498758777606592240669986098234554022961999749339794557621895128071763374744936420502096562207220007562091746324718169861222815259232580164332379324887661238926484916294508380739484053330547120602480560811307477133678074987628688143513665528228990226507472305420685862096980204376949935759195499013034626202867010694290627978141896098381549395427920309573436651148557077799804860121217236369196043571934233775009984469130767177186686223054855808706786560205177106812853754999480977180050675500888961102739938592270824713481120320346885034038491033211191425627641288159731469436758516617272568761264909563808951490715292683002377011027252117354580828762538233218231720300823809079097454747823898190523557042496606474916582933351786618032016360267698862736062668381216762957724216936524876590695251549247268164250170867945817017041596925948946743525347172001520609876040179178250862216169699594660813503600962340909805788238598993502308596355854091324018357489534997728834027682383039178134010028402500285237014777528031506700945117631850729795132705998503749352785150604226830148407480039208420116444695875489633538619754459348664185059475984767854498582291801383698427349578213621075212107986905311381629692441909566020091080811532809929221266111010271822976315095691111905134179110358033234590528920653434587055433044689477819497924741445522156636504166900106528950006210229635917620983326798829998022137591150345552758022899484286358820020874668515819766132852190558357362502371850064554716698629402471777267379551351918858769616083299090993116862566857972103076357340460852780519037154530622076404541446557601064209530770347644113640436830844398530363337382095343321637983157223971423451346122057982743268153313466752668931810266244186437424347789352629414057732730298916053750557565335128980063534856730178591853584682339848300025292684166552647664932635539611777654935356056702861868130012293007020728003163458699191717022834177040192929823894034142529128023481971903444739250778527286318107084867369226270902984643326621631535763616195915105053008658582262263885842708657215447310952671026805524642851652906548387592958317372892232995445507776463751353611612193410945089312507119017141054895502644138975332530513789809647266503356087284010306713861869184986693639961997282512827393473042535448506134313206258720111031163284434000108345951197472600018825096107086676152435604978818507909698600546060696877698964564393487790799067575441121579226402117579683513924307151726991300070706349493106009444341357494068640973829047541236837582084554024956230454071182365025599841386608452474317966492155257805144436910794830834768197661704488099378489189260448471647582399180258078189465125113938399911993034243937040866393281414140448731883411564483223719595414699457208813066590719373833473319395624723934918541073367676382410920193661498713640777094332397194411716360334937255503146378625124734354197571573663923601609330435708110254530058326050023748261683834524167951721277692040341825010290963150228552877896212823326737724079901273821572834045504006598316237771667734327161116234943812531766927480561688274612997029810721581063555204815660225873339462155198219196846646001377375944469780467920015292695114912849108780070962899787248629391023235058300440733281037939717728488684427326789624781752980778845059978543909907369451574012864546547530179356853735120512307136900407291992878079774887890076527676237178180271363360076257098493387393246319833101114188039172000717277400759635544953101334085648377805974720844901665418065296533624179978007134714814827565722941315761339392773170059424252193851233421443136757089766068767469294142876765892204456570142781300604837836946375121933164116457817295738869512591598074212234963063598225366662798742157781187612444001635814517120162832277695495506912424341079458268756475940950111024641020208440697825709083276000129218711946450751154599206694418428345211595727758751647586286333626120885395248029645816742423542670963357538013986168365073413757572585266193179727265398329054983006409612000913006472059250277985361677876061665710827355905703959844328491335345352593096989630593771159273066492309221754597122992068135807796469794459084673408448274833003036255096177714948391017702159509199403541261045398571802314844764882361368741633315431256417993160102263238042996823009360681917498730460242998396295802301715824694102398936454340502323813884246036365599223243791299104799199911595627603189764441528258109103349267716157416933374756621458005090388181604463897000466714951130181284797338840441932611535437908631878050239953146830531739174096626578376343315797042876437855437696205333769840370161750160083234640829463574955116114390964198678810907611206767713948541976365450870187582265744780615144410343909127335837175808680405333230803443222193531428174887939999695977302077168997985783990323522807595253230328546248217620348495341959134942593501825415472067337586544293634289895811858556206621210607231056082389083686692041299679777910847347196557398207991920918122253721923389690249759435831842133949701777315024256666620383788734126904988225598969675472204411834588672396808944774939637908030135021537708808541684538919495616411359851696005624457714430512319250760625220681824581004399883929562624134748501558211130711502841293456922040916154896499929289251018310714908478374270599544437703947333529816744491021931353137880070119777513333994515652336127561100934807859865619394005624221514974083479086815012160722441273827525575677427243243828075921857839888695939940712528846050548678463461040500644255601493269515171165625555424218228445450476898285063991986492305972200015423438420602387503187944005396574731438471856136962214499173563522519317521869948884290312752012040707033849041702784857245756307114443822388145677150258632491020993129780957803469492118476455941306257851167529438342818051909834682821158112053749786323422277488464106883293802594503314662359037567619335127033377471815855282639259160028167153466323547371266137160053037446220023893249631583476542036582450804483713218882759490538814366195370936392102680763794511449385346664816058948268110830501989199096000733435335073969121249187693565083625648142467449475011564165529568100459182511068557931192063402646911245085514962041970760011000264690404639931035464270408833527123552001284876824340540913769679254013631071353473114132429783650745015955005611095823771683301032468518758921157286223384447897892927012154041727433364976515457019845063123766524398228957244453707402919540654710856555714782868420142067674247460005726653708052583109740095164111067794877995628383898285573348819469523431543045536783684049186638587649795025793055604923250063790627287318431151006328305151247536116138657343883134945526220720505755837320995619667426818902004534032124257474897296024853124180336150067251734818996558209511622549878871894351110524046249224052291557190400996254821887840306946366758902167557436242034712900929357321645769942105243474658982621020563470740421641358093330480718930627502087820981010693512381369362983437493202292811267166679563926536894883040389834940957723180103079170258695050267070009749043039212729932339864471474375768181849636475877226583232597873908282906304085119296064269477824544437068414680631681255844382223023554225989856558863878141779509897353314002839372249388483719221316135338520321853349814241923673195111757255096601217625228599417400234784050382838870562615177919398509449387104163571560187795080205817363136689650323068784618396790080050535728575608555288505132222445151637047483943757378390081004147492863005663873772018188357901630594850925973389787480589975674694915146464571490053048705411629284013942243138463842101776015959670561699385305648205748727460023513017189302813574303034550877991560671617108291824437896266702773456939402594009498560239902344095584140271269335587136272781200377145468865856660930798269034413270813778260563978383262550933027070007393975500374143605504255787853298296609331841490511165909508986888015002775065396677079168553942303550115076693148478363539710332366411577425405851533878555203207100953932945827253400341894350147940838039611703410587682528860237366709005158110875099886383023389401648511793819668865572946329006374556132202718211574875319442993522810159067182040574680134240729657872017127329222066548013695414302716769729399485470243418775288310949765885599536596226575400931872725371282592087274401899675351330429583467650686885861575915065523015753866172277469220832076801889950795603130073252862056125350213200694676914417085434756425420671325595103468273552344474130137178805551754841732152554797152945890385012808553096864017811128110752657673844102639276755207487158872536679566620433173156315716049773752906056749229476307968766308998951615733365978877165244353617625843816271362824788483407117321568791981470583481937408855869010853956871373001371710395338319216052750741972400984216548816645209985098794192794124450584730627627908441653517792685080111683282521036491038476131043621456052474294123556098858872264396373062430116396442165666111384789316033645846768665090673107112624422391601543496689691182589202069042072208073744280446206481302049422756443818034546543537167573083695884274250945285889767341536309563088581640540245661697501421791195865513411248483884966846650774827447245903787556764685274777977342435172414881828428726293592064126770649095947034195554741196081862489897809876072353804858723918878056829173712169884996943231167952604284029694306047683710871948836315300828792380538252153273233065467202436335711614334088695469165612126583608989825566058399788890585058000998743460526198336206409789676200244120005238584278218900922689678270861933021464051757729970647558694381147844241033279428205832850146010311414016640796749618867018820190838382416401009894251741420261745741299575967399019355864199525908693158565436444771598756976898755695859676945662490481951180620236443531813074458218784802828165297722359283921100852781719990928681899000673334520391581701186734087920190660289812067118255134339206142454191912897842573514928261784920747842309431851656271826984055612460125810711278504652588629191227847342817480658465100689073922205782959319477075132514238193982377973811890043418976015600106973508348882181904767506406026928801947090901969359031120632980526333722443205757665845728272399314125854388325807292228029423462379210678267222986432670906367821971009886374805230097296963213964525847409402693118402347228044645339916423832645314904954746634971647950200043952848295909997436907173743771837896506364348062807301101257059412107858935219547560228083606640323836943595654148903075871362627174034641880115719681092647637348857849055833457650921288685045242783358347605134224299212465926134862202434663466466543364358751992684116424221489573918985556108740026360977222332265057206012984774805354351051313418830552517877217828424992351744750119664771127416922685019763920084203150516346235181816559688802192043291756838272163454941123946406725575659967275830438049367055549982571518131071997087966614088522800864217355981249979724005393513213758297771886723751752527829652776855745373099287307252067464328625534452313324051252746114309265299028840448671454778019462900647053091054967918646179100403303038266097018029629289156621701387328687299368526197512014026155989718458778210086996061444013375146816755031034837441121723068799635879089476054814952318370465928060794515285815360378004520455530342729650468363505781450229030030920567715091469729092590830719985569934943414723602442028649624267476489926809755003129244555551053454644350416049663072222549327982886463450496806061241904775383839365795736316923603725341245862629108949654054486356621613851079365994883609588961500793693888158033798232740206263045215446600125787643572708101750135380187125986778885232037373830164840064850748686089424814800292844601068069426755062845438603759773533022805001670479080449821696287523441661939463678649177059085695197855634066351479576905506457385429422843060160743191304624424355439130842049669343495720318458553231353522505982590642669829531134593483746920316481086071373751042986289385289533059245452482687328893112529190974657478703212455539286265004545104226684884522353430129230375599626554527610887122325419518308979451571809162943389403937668928741282760504561470344275938365804559857914446842866460700574813078026670617877155381848364265239062334968429964734098622968503133302258103467218459531599799005574801885768132082000556837463042638424810459920559738454237469039858659313195148052912648494704629207764544482781383384731082448764032735384252126372680962977041843792287790661244432974765617625629897350298332365751491334779755771315498358981882968249678262760587208412295831805287193380556269424822457412686953613632137826301836709176452149663557142180536293314382334475482517977165145245088536039977152309698760478600770159060442402462131678805429781364645684757354718909886855895593450389220791188576066139092090765399820325909000428693007301947682710416863880934196636352981456657225960713155013716051218808272235066574734222205122136805163233176751532521575158108169707165019126215386161995860499140244290282875234894107415289972271561582098852250520691576786153475627412189148547661726890618821460741548024764753262094022795968360032306837395165174336185647795515295652638470701015431912057846804517062663845300541254365742211158468376978628305368298327724525399455602927700247974387063394319164110763852826613347775812500726042492874984242319236081019809640780222744469322629265949434660925091249125984673516975699627128535827237286308114482139009445183221681812561927467248247486775362219239836395107317634225627991238709887345935417492533678187750900237953942906534237540934090777990299852610928554378776551423660467280459878355456853806839493711718578044671313106994322820173278947305033815112562893258307768245880648443767035902309024946118398068611535458852300617843971070412012089824241439149582059411493989606480190737676918259633602246292022947581847457491546493600823724797959688977999466352254406226701151014485043711080208655137734157226897764906349544123303429910972033249500599563844353111519719168594075689054783370467767734300128012040984536394081904132711208679632285868139319250953344005873535047200835341721936862297788373273030822528394147800410391916806108848326335961676373765358696401313658816646462532901661076428143845122049204330072579365976717332670126413403188393585752148352755989150542787193625483563703886815395219725014311373464431104977091012905669054755548694532268359523930160267060565745926342373521396632889239623556526866950266208314376906151184579328526744580058511586270539170987169811412001211756833129846767391327046754327245698888175084463202272039205971513798302718095290001353074496111744154108080624624116266094879000951164621113933228949386358764164192103356034124482508564048570418757762006354507579381064193588189533435665053232528261445574421607528010969269138159740839018108787905431396023517594417268937641381054917991381289541422115831276205878087812175894299755058260669248321383766109894986608277197854116620202483488571724763768248281234725348374200007334043548940673264632829647564803976893548040701355172070838464468465947757712541346081694005229889659791675900599539116220475768233331544910590132303248829392816415642433192653596730013951150985015254000580042714192036485477103127827551244445371381574071838889989577957177276605237789953316602121261180501642313815136111101271721773382998297141526609695361843554669601860028442085845845344932874056123721071337463193887930393149946499656638093239721201268549025676923435472550309526530122057003383588652222897856391770364596844847895613864685890430771874381844867871751485089234027443745020129473053974803928492516797114704329086793696551969227682820716473166858681482041683198668688829895019419943022088547683345892069299581203758207870543996664703270297084003902990632044669413313060336425941419324096141557564062627599038022857037419415009757058676001334098112311035726945665074086111016654270375246987200335614416982124351501367128783852074024589826184521185339546844505787307171910773677291737349395388600919233497429110624088810338071008468344760337372963984197084868371331875750696706985852833361162311399586820800574554795752766781941850880866867998247995236262024395797700107979654819294613633130961711010905864783855631459666007446538654342833119445938280192938447308466383318992307737807757592184324640502431916531270932501607488440548803278841870765771379198008251936550995779917108771897277168068498305966033658303884975663309695429732609237597190890814506769362959521379336814346107957360055125820448442382415279391530873859289109959986948367054465822474363715140748787634338441826905708158611622656156568293306189255339302774224241587414749218468781279682074837248005679867542646643841364253574912685597431939270880937289140006290186076167715931753338630095236855247870865071766016727937670707174815861649433161158173279755692265590146562200649948734162503097039714639365520988583882666774329160262574466458365464006244618304051547319454571752035093174307867759386893974580083679685031454272731168569969314173373881321883669127283790710539447710888357274368345241864173146735737032133691683687146293349676211281905463496706668958343290822470340256686838638584958950116041635829441065675665989221512201780434030603155610585995393326147288554563286541853221141532993250667304185051104728714983763606815261165985517846170859009947554412979496365064494357909353630241398736745478535550439887790563951343830756251103971103187136355816816768887933940565320181216619582078862385409889575720810142552112398757788629714806651564816686591129698647738521381224485347832807775644794136250644554913395836951878607824802527614470800307403301290369340003578252823141939184353089492988493127890215526412024819592593196156455830825510263712033606536118740089625738970262752642491851759870362103469452110838399649724899121150027118638755817508994435781108855358123140560004249415864319229085369375974799116212275994434672330520026407842695839107980179014719988276785065448906551929728274527396602039682974079546203239125083887863199985559045541306383166665630906085097026350103157214555139961465897345494494947549647573799728581266655787403636781055480978552778387951488969634329497913146915127510734425810215174344581706329464499975427731626820246871618821210544166201655071073262746604192973593617597760677487315763830766968347551733163264042411744424109372474678923233395775752892583204399681745140599816204736405138612336100447058748997277120026792153815291085636380987616887979946095415015960714927108541047171379087969033562666400481489905732328573978436555521247611494199283108323832340557409276692036847153867308538895290375989580004389356280109738640293608336041366587279721824157735828476137191659389324433348367215474378685177196786178896654803373607015115178436009990307882349219797225298106274074847502318379157833732182684306248023993121847039974291662101484055594700688877463352275225856772586897252610691230742418699658612933758763347966362915794721976476342306276093562224626217461816199795061272150623699854024795199759047119158004107772267561137420998285398862439053155373873384843099038878225911090509155546628528839777919183545976048849767304900756147073822828722314212594065937097045107174704434324817064445517159363801195428397066843948715252694182847916185554774348184059059959041732808671796747632724385550384468373262356233482704991913599580048515728592560364198647095006380743026363125443454650102604129364048476222674826866929957266343299819347663871526117998470443668295819459504179260367491839591744868795154943646445477063219681260828391289352934921805074119111907994592086289106692024922891696199514054162819806255332422147765343597399179503803868969420780318330228840025725397599642923092046705208649510912867762838295324404021149070116536834102168952249080107254164876088549428414273608947396882447231386971916803703845128220869333151955212512464635670670146912995284473798569020381147962220183808312827399804532579983762341409380682283377948269474618585634596294939220257588868901117986250910499720569207038569171027203092326686466486507669086723995137898967479472773426757498290061563704711261387092711027429520055255141732921025544537521071954676745154002835794572528278269821612483925295975298145246087246595573505295049461408150986664116988461828194715800396644624568338419022588144096766194149656246202525081083140485788364069671618266858638637974559860643058837721424544987654539293482025132234675071766921029069562001995073908490293958166581512572069287741105720130111219913367899344380157088811857215664685767150360918335447150243651838804374466088720014272175866959568075618357784052361430344285137605806547055984389482380229450645251818653058699786619358273956213126238216772157409817539591146194296100430528231605614567395653411854199045637420231590985244763883888879245214584938908935003650155804209913773950215539091055473477016442749737847178882104214895997116343194218505113783182047273465598734986757421039981889547330013983570125228010053492468978292642893605710813748585215296342922280030840108046045055613852663353341862980985199172509853749847214006157118958806238665782766540324387229671561675398699380243546090481525175383830862571192021452634165066707851844798918221513237126285210489074270842882424593716357898367446974475475281345072730992854855022383186862000244326840418982712874748832385134427269598178507925972094046868986937305867455468514669480840722987875012982507935576377089252306414407487787253493867876884334707863176859727447663986695626674494431956136625557718495827952236772472304617066561845503019435396055491513560590564097336622599587826911330196367074349661696491203297543852889696719931363864728812301159251312028031371836601781891956805487275323009092051554437238719353751632748873184886181722255394081977223481724443930910322905953544380515549665424422359249037981225181139185997481764347530443747559401422469745249361022419395266809960234389831091766130076432563852954804623596222438215840994769220571587798587578492047921999786835398989854557996707777896546468087066101047820534164232512575840344583541572155372903601636012611538430553471050175454904623574639894110473192687716171880350616934489800646112372914337540037213158634069532226507386906224856637351843753290368202701278163353007664223991246823231687416824072585157203236780540588936591014997089290291167897467043100859922012352917365592080205044176381954997755744122175296816156733163718233981812632388441780224013389979697186027476038987562962654546806592851027956001395660754353902716854143839305288802726413394603126394839695656808862549166857277086084645484602926924478268951946498104100459399496956217951274471367776132889611738234485997831618370215450348746252008462892314495867960909331781060959222920694549284863430481049134228053412781673243883300445952302089679137129019140895036130968470727580582950631798477647340036270457612994645471130963736841673002945269495532920118326004892651764730595978483204677127992761953456442917683104784412322316842230988765170858158727316191934589035182764112477735756166041337005693945151854308500655762259222029268822251883010413769240951070403072902703430506643953699912434849735051895820795342143510934954899448532543984308346051625291354880299066135569641266825938303380160447510282726348728659862633582198492311122679882426236656899596569164660738345110468748232253498858416608593591046802824652239417373826582688054439797056947668506336257487657498985539304272756572513816451643740320202440154547136735625200577769678832333814271180922319205948018556832892092356743007976366360903124006879350663468460131652662373936822126425392431836591278392422512697030372376581055003066222112233125623003002982332212853674199091009370810676274394531778277001868195174670672107494435850061671156334827679352282677421822300571768712264267250170220724882778833656305149356151043919447932084653469985088263902922751586882345297969981362077221473736523428107606918696643364848264822699743801742915582609210577701309286236666423711148714260857650081452472986381501684348906028761382267787747808625684795393645520225369517743199608528608098229329357301209105257881016683798311177273228535103959930138006529648999036031120725302740292578319063530607507423424981387511962530019873900355308493341843078587915559123281645479144893568869342362623525224546797032006072015366812143553664114180426511798380978558208458891614934288243416822413190874519963363641760207356123298037694002824702362910595905998024971105101857514718726421778487463858031578615621917062951831757339134302224278590438852216166117715967294455198622864378161065795366121511902413335959158306779403243825783270972432448420860283090224703638530861042244400468806826241976581759698215269673652352897718913106547965970507252291923071562246311024862705045029551841826065422993348391439327301053198217009452910702642701373669351834158409372534775814071884268806836170508478298836461101877842872291529004847754978409704329000748262849115879802676098674645271525936065073287431025832072788366680952987094288272899409515380698161782937809462887085565618893095438882762558180780873222913459698778101405058766883420370554950656793959878803142467496739666022090550887347136166193690368749304070538340832300543857438005550028861535640545914182146273214018683993390325651669177249991307674071500337832597561246125743581800463026377120468984626385630304400029828970010219501793721932768096822692129557956551417480917868015272361472627465156409386738368918607765251996811744960983702218167822211794093991034709611063775552451324240789808754088977208952614989822602524819849400930995314965438113706519485810220932358749616737752747898792008717086743085627232262838442772754491156179856136923416023085934643209408415501577330207736799972138980626169931975294005830280022341343019694576884775570239809542127764688033327733548205482080403895080821739306245077779863047885601297645606813663645506948909140354846172534307640138387534410851050180357287750366124925902114676861952590419379981296832155400751149987041815852707280970471787163743045813625424839146098139713023006766461872376428301189383931817690730186610824059090676526627566291233474106083361321735451353790831578429674980175369194332349682013461823320876363851153535139503051251357861005611373197823589695871971353570047196570490530954899070002806127693592778504485946949082388212333371207454405443628128983928480406878658600171892498810145482416638790432501292101374015590231143424285920327389804144975664605742989745452124064159032830671128556697671414883664244200896543329524848160239968732995867621377622664426268790283092159361443911675553208651385623296161268067352609015609463715725142920754143637830677557252300905853107347537769378329990002992298027006054946381055975072274098330756794117599475404899124684390543625498887828925482331690566199994996219802349415606545273399381925772288505829381742279651348411349701860050658068186672372984053961330742163164385993358772752981778428608906040373278907397573788337588364641506121742302259939398534337774693029375493356308705966765143192042251252934021789161737200837125285656383932075815436949421337429033292984204049091384000184947840467163200864782985539954254762180005477932255905238955937467575211961086036382285705379597994460409719594327021663473449389992078849255951449617680329316231910296290487107091927746541670884948765751212269066223509456603125152353745302203603083268514010381033406001427998851309056028185319631672579194380102933203948389761090927165241132720313679615355251596731303207879518153348557166862842536605633041515672177157141092174823234132372933494121995766265065840483652895553209664436092566199223967615017564460446611128246299931652569255356225807262537709350722206680607141653122710003208588975475477169677829873391550627947289152614002639621308876073745357945851924582755569866088947219912971715085120454503735102347245982008009242967770584524514323233897708275184454379633672890826006350039061875435772712752252301526593380169077009726741827518784005586819397576520079678590761357205214534395451469378775890169124033438038450532305854226768785770180488018044422690581943474578891353846583642174639218125433394900995381811873160581524088624627067859956666853367503340026339683699183091716894791887246440320514794463615514101406351057485880680180720495781624809013490464395500557353270757865468431303873778868269569799535989350435618924319333625743915890146549869693796583888545533139724458399911258341735015979019250788234564031658109551296248634368152644831219280804526395294209432890575128093452369861674600612868589256357614693618820464113179130407665624246230390570932997451715516544968478142741313575954980738293794210989208795879376392534229563405913618615408296490279412767671779339577292315985263463927716565216838153690848123822530736587466634597395604838569402365073482875933067766714603086272262036772472780240492440509609170720888460113368609019545712761081496348476020166669763982431660829923221095073971719145088662188701732312452476452686134974396294377109956470907762364958350172460348077552793402638051825694898302905453424009839037304335594267294077462526014718283702648117688663229176707983158314207805898963721357913970947957222600572316732334446992750510676788093886283606852159070470307795576708641752809063961057149323012133521721201456313889541987714421531675620214449713728222435325757355295885777703925680833091234221535731998594009508621984873465101995998546882530572553851388175962404745133883699963582943966877310440453448534534878008909584257635328790097801277854910584237700000793858572405884188418732194396113351201025351257875178562735408695855444259213003220311956078684922467687871595644382671605713931744839935489895245926749454397210971988290213773898987210321504302387419884894487842036766043959613834608135222486986633212433804973802021122749012097655011909030420421337552326314259878559126920786423683147968236404790874470888051965825311510411485175778134969413900222811367192589080688255026382209482027958946597611752429041348707855684797378472562333833589072623574748601635529248274210420793342958190508551226068261072360941867122374945329097889058761133728941991055482011945859878394755360172267577037000544650323040302423393700630168181950269181678417727658464941044538108659559677867779817088291562368640831644249320769143014911945151289436667278348880232273885465285463467913506606865606096248392570883931987309507004878119056643122600099993085075959520564985519292640099882022535907901745102683359380105770433909845732612638518325394598501398631853659769130074244494654586568390424612116283032438107468618293504490939137373840578250071534823012015864302128176173851404502966390803681165984889877981228427498968677308823337529592665471571887125560355636744285535060865575107130760422667031234662405157328130680121675918657447135407649553713257799698592535724566368908920131424782004569914124156443248435427463799484774401685539951313854560778650722254502467181104512161082732014776001948162651607184414182033226786645579935843935041772697275180680520171654121530016055318062003963561710875743834937192369085725174722729280463561149794220880475503924018105597554338717575797356680683002730479321849967875063681862510733566563171789563337071274744207822275938261851887049402038000288693224274142684439927103466691370447437698843770272648600665334573283145296629854907799321373873213748373124950811349877216664468011408544914709517629708231208188578835397266290972200174716901211688052664827070587977840258200244719507927199547598171739158502588423081323602482900424643191274048267433352907447421438812377137218765542700042770572824957460235141879187662907946858531364492639286477412123493121744787934615898243243339757468103236462653288222352902511622359884859915722997250219948610077809797846042971559884983885991165960422023857594700815192399455273953753803862279178470169945261396186084052049835127382497638677583093595382324630918749542030595206996728588584216418467821999279406365280981020602030141653964004882528808534893632137214766885173665288160835356059123072547194204814536752483775238428101369180900873156758234842324538487609402875908239905086046086545764863633937164375581097591143731597979392986126434371478497250708219014291806579203989383364181544593012612585006982747987500690910681914182381151794374889288672090480968093149102499655011587617060179223680624743536576483022149314259601461296827449936096565336948582775904096670496628168934852142104449853080410436856362467181252176834345200238986021289519522895057682342063698034688766713930685860375946985272822431226154402193438736109434011023401911342058866606660184673040216684792083929956191535585645202500983543967134344517361386618808642334770729288313477064327555745836302205991043288229174888623215360937300510013243819578076317854412757130604172449599630802483288012793616203938939581504736877120139482883152235480394344711250761200217089044300711289978295673154661135959480451365551473384512525963038868743087885511983130329548303773208067291405599107394887997677246100310413618760181494070093135402705484464762569108443137044725153520144296879253657205114873323903923284180706277172413858614078404290827591627592122586049124775013826357838322907489731341570159025637575733565188081408510480413621064473188450050107299064362647533342969478557115063406271329010342592147330868471672826051407130137972330964509365719028697336542030878726741477148195476315667732638604038623627610970120957655057123432162361262870247689899125408540789876681944480352647514729673821209758360026244317104419280499440766727893218279131887594686477080677528112416500840715419443471232990308144358801786958086753425586319939622364454241295898413856103960500474081399107015631114594798247932163273719437615185913994180819336460388435974001761863694753050013088649110598422151459497890171589066131501101443255794890590147858072379800402831370931644170695848329253836027191550234176916061379569236263940836709239581561631017991309659148798844675167487406310207146079843580681452392375384602701114840350337610737172291131764841147703948058008958757296921099774791072789265395275989533517285974339349173171922029751002448658529121523026615437585035859296332515276638606623229216075932698205334995061926659670265934344475804560258595361457308387252507039633901956699625018525703090608767129591341370209193643066705058123879497062861542793989105189901356763994053712207530215236867157405885877147141133903507186340908943232270341638770410915776380040941960164445730852187630003413185273902153212882608063061315444078978985755230325031416181499966395803705116248758048268838882719487951913310090773258905762256191996301987278072855571017949139610094139052724580014339620614929692719019823890060219470433581790942158432632833378952064901522365915905924583711023710077722113795803199681750319784038255436584201001503748271769851170122640146956817338243297439850105176318413993038659190184365354838037475342123026744454263489597469792992550655805732740073887143771563221640881602983895688368982029099593802743456346245564906835002131205911138043108433318191838285435124059182901717969956107388951899864140596883039024645163653218240531336263390013213369972188617910725372147694182411172196623774872741708742631570479669725077335271567527952413822702426684368551522781495460919267609710855680665060666039844366572583281904445670035898511364807661249434306335120669945188897540914975950590555739848706098164887394827238559903767145195953531315148861944680491358751579289964175214771723646421475137045988449201097051550683473931215076630391378577548981635927963180976419267864277550423704107048902127630129821811656217170491883087705026300632475073327802066640475313053710730388906926245328380463939320385545312650910901258812820714917311369902765904921651338658830712107227601964342703523801966154184341207301567066501242912999787529853188078086804606295806144832558212649607731011203734613001585856570094186552605496880920025594550924785729198605371198749043966123193198693783453419014245340708321501749517427158968474183341462314386853278424720949720491135987379215677112647327104238597176053317735081229631737132787958095050450359182850077822594651929849346335300642896981178843607950678660850479323211767809491325984529869594230886420988311074353326119179005597634823620176377602267803481163166209125872597542468630939754433612991579749461121299255221143651253543678874552138475747744708458084146988450647542651431537053582198977648068272597264223301408174291999653403704932109148404906667942115208470746875175012882012365251606847797179784556355150697467116761626593314906704422252157818448696764475554186637312841846426829732073829275339023548568351597256410493900084274173776058716377752028773156722178084760554378497420454147361557249740328832260913611967823760232364889930517251019802467189148526671907438584321406154805058064992703638969330701550482590059712086874328587884139710800338488340747716509106766858049870913959554859455102036585040742201021877235205826669221288117681406461074168675492354067964634034366289422323762779357071583979443827298748866829449874151099587336907838571875680135608597892457757078264211123619827611509274452149271066473793384076170572516744310906930694614654089865024770167709849306712854709476373087479917384724386674664519637989396001200117552233885510639801550259441907861366262028388774130955470916552449526336220456958776401213058558183623011946226157624561932319496113269804988494390804317569312358359088114117430052064105390038756654040957955755540422059376514523967927791230624434454489269338952562877641572775141886651967732125205014358543556404898200694348074033266980033532497571891034405080338054201033525680533782987767414123573354403306814754964785632400472609570877638674519534130617744053063620619007592424161260110712421517858763478321543716333090476398117873507788868610768152810231836935892130517329180920295932401397825605324454202100821122600435140093462338085697699070402447300841141994623273124328835488914372798688151926439630269186918052096581847482870317297968845594449577057319452980252853424393251343693251885732960307367833190226007554731019665349940346260618669102195017637336238612022525578996027889990059289164629926931220749546154142571703439249417148627298160603218094256533635806425551236206870365464489719163119102549992230662902716179067989405055672097481071378334004833553595453834636680112008612055259509371307781480584590308577910520941076076979636545876386617265030764717935190709212796491843262897975732072719635027144299904380049177337858107004879235535454453138722735446571534668173664446283199768913216990643299140107719275944139394397025633841952763703172809952165074526151041812918914808419625582194113373782497328770110180752005157313997439715454844334491103251589405345084810182130925277977820589068606913518068307628163949178831439522646486536192809832854062665708410494485477092478063699354028173348047134376660112356430508753416194225661237748470206822650797803644557009840874511788632174903131736692836624469663885802714287801475680241954621297976893556759377207712957354571792117954402058822426814136872112378983920917388339492517144860307360895375621726261952239255885106795679481102900007921465165124042188510082690777638346169062674057919527688035315131990263373615151643034546241379390953463525195798240704722299083192423966142667209601188963269061096739106597908489014114522794995154418538355320950344256115072365284768241508655232819932517828083731377805978956384273823193284186509558603422850484816496656330228198656630516212633593665101804167097424109498466863322328899373482969139168431534844565475843774147932700549139999799064574763464977995003872847626049472294095713661807172675993262470131553278941597135190718551677227038215120625530185386948630676397916810059433883868587926842233810604852152103592458859201452109022919637502602406910544083243236644650027680301533447452384831918731847274316682603676622929711488022492358746613930993303661538945168603709414043134592806868001322194982846957334519387104572048021880821116902606495934029333115619735947308183426750509527433106998059327902220149157250673257408511072682931256540567360240769622966159716354727793740083786128619704176445633093902304157945404506231854684792915393044305334796095218070477058065614768101178773845185394136266587318909229911740461162130311088401358832244819402377315606741332036703175905607549904302655312446768706700529361507098703310776303618318835765425408165115907768261436810253851164716735735762522246150897063211089691104653442384062461121977183963131921209157692276334665409630142468991704062216330547193981690811493242551758488891979979700865043303411540865886270239561573151444602638914812853644214075229776080795709049812844439415881529582039115654826408436625525884385635138053280335562401415418155774554650024066263813857534037807952303956826971452869154291514403094264286762138751190259270335567878819277724322317315265048455199220075709009058146005880736234595907305307379048507776918540693777779649006501183045635188035068016215455670789038673709638245791490658088413336804530205871260606487420526352662149203590527302226357048354973058103136668657575112218120347800373674613811055566696320862772822472850990031770034705951491008635927392038814324620478664380079576117057065977644945316685915691920278968838555122425317336195249310891808253367100256054365099169151196332330297368461189225455633977879047873615728283680011002541164391942352375655787135297072778987506308377278222561624533580989499172866744141619668934619192794195402103001398988027153371719349528326541428239946475726178888465118899732308097172344195574630935812758638941143594166275393947468892228512767371917487326835861366908938568501476731208597436635532052438592453831973236110051982811859687117563114313567278676031167725462823806394580109308430041239005399059755632030398204192658218752504090638944500682461750485895230867355632550431871342588137408707419446394540394328881730741925784811048169937312015606345943369931468157388352450679988691366495316716582868790207389777902209749021172355424459567713035970714556386640897491715314558487680135369723353778728800132097863285004679743670029676302725764469946002260357727147858767986173962255570627165977581847205792812704637893612322047307317518238983794456345646049080473301999073330854191610655215212432884375498941779261052651501892411878414571840528555399237223552549063369190320732501143318182120061302212545622082969060735569398646674766133589380646841889723848340127939176195998944865498747466649676251472611196730669640012797141595777934507636867787545415078721469768775686726796577950842277447915809536713402054145532808230581869922348192043802741745557373421704812607779507667083004878398543241002308058594272869037286321067792056851777495681641186896264078709098487200354257895856404210823493061040178600236475682403350523672841179223160167830763775195593397541693274243770418233655616005185710125249362424321441298500608816624934218227418161956038227488852173242761092421678168240969731827371473531613622705474508616412816229352197865039063739895098685789455938371886189736783554455153952850951454149060000127901107876987275462615677756653709565758995031260593041642970537639217256611536619752385108286761541844927594748860472538107133974027557848027115471376713786167327336763660352106232457915469890563926795524888493907057336938690642653978024310226765063487747106757857264027684765402297230674055386767775938978367604543402025629766491735231283227702536212413890713122849886162302176076460051597242490687305445715695555612349616832167213593897320446108973388768075502948705982056128446336777216766554605252965643930025116437322619280638495713393181606577293759961490599287532027067713397466353371468947756514432631487171169259225466993141693828916676204650291903921121545976475873614787574041567413192936864822185426815827957534051138179014969236263187839066888466898139353503558990161863861015461027610601446543816703351538582993747890988266833084026608969182878892903937996415248494957308141085017451042069061995920435721064588222841183048965821708158221578282952353542734010941195915209848632696334743177189754826717316889474439790523669412259035952119474392462602266143483407431417309605274508210476014669326487371123531645487800950813490182345706519800501426467554125307876118665817387147193964153443795546247088585704452068804558759687243502959899181716956830749148077685355004144570244828324572467916475758410870738785275785237290959808418163755271063787018402511143182834767832229731166241854048470024814614195427865487650451569013056737389033573548671710425777965883813935096503955045477621375549475680948688512367126138700023632581116678350747926993259578155067034277138272148196332073910272388416857550296450063044007098793632231447996895931387767567690100677020187967027731851881877653471691809517000896726926211364930609469690351144450102180512095684769974607286340796951350363289007762902423044658525548076256129812875292548720604171126417164827427867496479140464939534185528436148182298522454126614355238980069552841240927912665530082516408780407207793500272926157092051075933707529682111404834405236243332640958389998845505360906239968056056570661422456190969027654660884316065745172767231596540325340231321622717717726449602997203720239360759019555979039169832816758949937837750198242254197856734068119109832516910386056623517951301406041490346133787161694423769729165052594938997815853060297987463405621393772589632246203752703592841117636602287601849347686421692713067301109494584566839853873623752705594608672143548596384314525768557295481637260793463237012267950093104944957396591544047329563555485361597437739863488843269003293242286028102391916594480082421576930225098411640470204444199046902546720501180370428576719971807087589198996003275263701515545342665653253445061563045320650992496041661437115600773424321082679725907042819817908626570499813343520846286909242063036577857055225210495444521519222925754416737127477068180617368484356321589283793494401757659461807404582070019510629179077675731235864017780464427949716645330285445906432309468271719280516676062271795452027586500569427384814238914946531072044025733472389052809641642192311791223916181442833790966435529425055266801541606103893806436296464118839078308500459617635709695625712292033496353467913638408071448826932045896062255054101066424351315664097828314190174451107930865036744440705822769054950358432971491672503423652988436486610752924131131620884830166010370221560327175974906323316932026253653181371726922397483165367716915345412056137458144935886089554255781673071407340002562684584815017280369959402548616545220290613145605615306871224137204379861068507421627136619438696144967769024120878040885994958078720583728017979549129624308172047334430332944277718438179811069740853362247985354749648237838786289614211002572205019855973063565527203330222231638765744479316946243126767589313591535066047706739341900793447883868483449610725216457640109202806273787184417496111644921892019055107246462935604037578203651800675073632169733212726147105929500673536214485069249789547896380523848022441385919186468657720944584796587460103281084830594337720826073247414922923522181624508418250396809455664762541256252815991336822871685627740022304444705147617475622185438486146395551970673145532735474786999198069960201237320380953414239979779319683677923108618668683821560596100090746650435519912391686848343758547546992224630984221464660430082576634945967110535342944993119522037058462476446991178087037712095925793998384991460322782465068170826434679022647185944838814523895821600418555691098101538769417111071786792295780249799776324982499433899380273963657467431663063338856515917927465394598681784312354302623326802064048470490359515248166264834645287268339291924591381608942689336629396497464405310510709251462952216603128135215137706826903065889203732245908782159829818427319305655978746463610894977752094854283720686737060819904570689565828312745436911462086461925109252181622598817997520602140593389982148454905660816577288353783395442923007383587575667010918349189521637361564898230480757668984190483972822019975452977003081783291277032982752335216429310303797422654068041253860455615832779844998156284174297107792024296523143009853530562848586726459415134553449429478659372856967864815549417215547419727795252094619555965539473334547947540682222162400410207666848137074734615178866368771075806520345045880868339636752277312659847991803849890472865601045834730173743229441641794702802279323990346553159415956451657875577408048700534078719601889334494331195782306467590320974212913934638028625987377980788216700242207204283823775567000182094515653452375811261696310378356782661670613047654610708730186619615393151927987667599342446882666463795738430410002506014437204859433203255440022156658427880797800241139434227401410600306589340797705523171153535386919181119251450360188169068927019847821079463131922521757519044465443355500455862260294042096635824691416997601900844443669860021444472778586075976628679161349788728686737435960296879353168153559627376413694827667052370116885442308269994370977173035322256049810262434180191402472970255412491824318193422471117208390180550372681948998649123019729352625319499075312505526728532128430303586361882615414188551263026168880681203022248429590689534014362442955113777975291313769158497828584783970672350593384586050758040968891803777057900101444117594851613440773127661844719227754137213162368936432484799687322884734921333241163911113900742917590800900493022650730731627755802048883206436414679214068045055106157735945663269256284360730342346962349123185019344604928368429877499173115075508552581874242152373206465751500619927774430132107845133412526616835440291020239986589882788983935792969858461909777844279032579336231530918315818562039998322982692648341908559282044661459150833440096440064734796722487870249344939726853262687089201629902892553534424526741426038874702262884456163073813190051318186519086027769895457759285715674014983347687941797887685764736030072549093578318179161450470660355615393882381277572736729851328751414875148961697192241869215965789977189614196542694356457242839318382355719871011389742610522731448339220414399458610013727764749739362875361274872215797319385022154968473199509479920906130787668582494723231855538085408748648888054643281844741974546773951387703190497206660806660204587207845275766169048049766981350525388213833826920235630234040128351465929729578065435379808790943123344795903474113846108172679554776391985874791700552691565084982047987912057747510617245564063528863842001723874661078893672790704307495598973088801134198943556627872311255641433665949340943614879888691434858714683691840131081854129778180937024591917983566577687624489959632220712857742927861455956140721353456740890169145034220697902047773466302845960350414848854205326564157348813607233556416851479716259290927011286283537557110672520356986097875064721143565969892824287482690056004033990616610959541952529480288058393377860848480678584298309325454813755643918446466645213801373801067307685554696541378144954435136269473579718999786412543663782885878918953839110150327421823560497812859426687648533657664573503477567555564488086886576686183370181330868455234268291946305749214025971364163438554510418239769382035450973434486258542076139138433263213782169886239310127373354522058355656281309779691230577268122059242888492011365147255006989251765347933614284017685439997542659853155123228747505927795751164128089678538589718819389761005034741512877730099750415610894793386948436990858751750703904171013820772090810235418200104091322876171326834567225061711015316215129378281591306733686554479585801388866847269259566094528383307189022296196926274674183936705610220576376624013739467491791587273591749102551841029107724912934822915315951452980695739244976732234919616866557691698673994684493974482681416942436560522232377670257194632231837844581888503648922309194015475180177486137810840306314504350148685452154118976640011041854038789652875697209122354652481470666262450740464857475269685919146906318689539991366615655882649663216203958862456524206837025684651607492187723538855491987800564394825054690931366809047553580891459926247746293563615305823679755167376475759413796069214750192627246133685130826054661729628544820648518848772259379216643099246623151401287489665100611098234826577182288582816678487346587972267356905782782760510152678187523615336810721053479772586495113313785191387511180051476259444877819989505369840035656051006458335082743308948796147365284910700680355533700487333745692454028327547609730552263828677550275274543922880453371431884208311009874532918965192016741485707314819389177053294084649902633629017694320714826824884549740460640511465273933143316060262944575184507319446508938376810889998383311089696671877398393487920983863480461732306443706369334386140221986895975313782096422377049534809860823288313016583568747134967905661326498453253815881402460726539794497908536445074256860044862393112737705571261493994905710259740299506350214002281130516142450804995649570904774901807447664276285356025184461401429725137052761818246510234975469606940493709190949145768842711060430408280270779620767523503107517306625036978829309679022007350386449039755583579311628130776562111121535353487058470918834180888186801314849122983036292666919204826248946831758280478895613036564153159616613975748370193517153484101084068570023026012083309916817016527387634058299088287227620847483779688617417257057026374396285890073856578836907105787859398252075161937915458498685279511110877869865301994325086090392614888665782249555693909461504159929870177955489886107686523760838272845278648130994941008927779134211956463611641833088448464007376256507620304028232084761275501851400752953782904638101415015088467205110362339927461617332797154705026141668864742192016762213288969757792061011457346877285495495304003102095661999274135849319756890115673647247568315347258101274452472305488252813344703464342177752947576316916206220275949694398834400925649565870600447850530490230399694626577986001020294029245731538186103511558230393950041397953060023356230616883678178893597039355682656442700473430184829464690451305710954660896238056585591504066238449272770137300629330136602309276463620219226880018951318324608434363701803135684504895813424867761838517141150007964384215178087843759692129645819632842774326678886032286852042724399901763094760666147950328112732341463939936538107735637546862680272793533665465667326779341314120469306487591512347086991497023884027140137599620797892981075866303206697702021954198758328768819423218409534416197470477654439919247668253742307002606405447915526057632936618566366440494364946382042713339580471177005808039366048735967116197303366492283076203416693222772506109071946419874128217114232998365796772910966979932571126665189679069872819167060835673943374947616304106892298871977841232764686492153464209005414647008643533952919407925866314661703270237348162912628957992454504586610647232278669082015506769402124516569031948224793113840780333517778107908877578302136574303715790301609062193061462850366094129343377012998919563954340284102354927578649992171800056690216182390786646248008163231233190736626734036821050386616485541698058874557534959851959217041469257492674321235379165867914392849766034278701640610273768491066286747215733278134483499809388267706723074212873482050464327173524575186725194153648085293269624654052717360067917579707738349333710574069602847438457296431064632146423422888841929771166538841847828983980853977311912748478555924451419813379405859924637810577360486732703555740714660767332586744066391393050028453490203727039031026868417851378580644545569461574308511968429887569127182888711616535813706339193777026663523851358672571848074820423270892251798768179508389230088812860783953004362239415453657674861500454489793787864131139540982979199568008826198577873499179191175203978903350865536065441329512111471606585153133410050144922687338349888133350107865294349331706895800015637752550168756553261575015154935943085804965486839762583275538045447046211144401311102120175644766551538797478540981493084984657234471633719758802033277196230901050135495070139671184393384117921350583466536803443058569672444582690913766551392032183231191041400242474773390127101242962619524813334914125332175506139475342992904389451120157328296871167484788370108211049408262911530701044525283515432375689832475707181870504067773237999544541284168053892761268001049712218435264893663356602894919706802890121449602192307642194888323105901727633638090034547752743105078198271409903281407696286069673372672931262932728563880016084345768682106667476853103879071282527484932199289068480411436481338164537823023668368963934811349732254986324211551674220887419710901463935133106435470055882692348449638701716401174121950384260657548961977168483138533007482924697366815739300581793587714174585908792416248449137202448763780936477521648790583004349703610073454689149237859154324196187523500010814131185327739125261641028514475575777439520490411686513255669676446495269463778439088185331425935260971130349869729226726270294047041010372122970631758976462048527511823279956176845025856852670323229308355517316076293938873845381734951219722308973650009665570008562356268891399455013538372822160596836330731457534321448998434690612182471505707666640250272016296128366906753396874046627249549548237955127941638581215461094259362635059842133258427962312213513852433586906092834918215207691799603945858476210669566573881596627421065609920069825205728157799335120990409858328793504425203549425836697842737422905379570563645856822890722806287012196458392140659911823263259678470703791022358006951373455130009165819619145286810871460673088249189396103755639720305397138549203969268817634872633225728133549961013251004444971258705809527522467845209926850273139313581922884321595813123259424297973950137604476722530260949764157906729935114742183173455413087769996946388739653716394277009929137073281285554336007731288172076319716404798017504715686774429113878823478861908062149109884003439212935325727329007004308123197975980191265519199712184626961504163560560406390229112725083626998350589779783708519923815708002358935684149294552335534097831515069523747719755178432959426834920261909091103779491958673471030781158895911883667242940187491266973028686125993678237984181479367825863669421064588418103903791186159931228345743303605330780421808724467310359424490340774536844415028283082579918016210478301953857436085696227979080091016342401554058737710352217191259810053755116990909084219477092103264987263497105972601400344699476077236901998091716821043358346736829410017609983431374293710106348010967948449467761742606200890060554424648713451352067825389484228569614712280779208904199331240713660933791340008689446620736939705818543238119699352815368766760558041099651607313411265203734429388150863585634347322141413658034143767434122988802385614617706706770578608987322838922617922216981514281142993648346294874700305162791727301837983805412282452363019677839403963491517509586112168188579051695726798851380290835341769733449730141944058336348848172800462219659225105950128798635665791321181431729684529816807461464698482565616359915942899530186403712462759558397983793031912705465088315060728884120063073299794482725848676459528481035766260302462240731754217992202148250331365939827436418540094389411373684654767336352200341539824972915067784035583991054600293033881596046689550944026031220479555235430743699148012295324979369418381952836642458443026896802643742873345961095582249493950030274300448964195773127683389860615386162940444209692806381795750221475374017205338163388835052785608838250650981307146115386280804474378665063242543742351842164012295074302717036343920396999666824104504107161466793618881725381434233838982309113987574607842583576396281944888075101731084805731601578189145870115416127768411231669942523954374011390173701053726242451137350983206344376214785810469287649735622516441641812764910184753978453478981697800586578919225342478756363881041146818189819905951809855221005645008750426727972678421359368186847882041202329728598636758934246272882684888928450248072347684992408001144014691891072380247099866209153963880149739734491354970982038817140016464681650043826848801779758981250536410348419204535710293968896831225531418418373291017038451936791104482586486950662922201571950416157196476189607447123265604268727521259133526737630507596123773199490518352815274552961905431452925795277881497784171653295881545907047697569970055442305494258610381126185452444070541797847619981273926046843013394128950788857467322367197056574696154506387297085939030911763634117144132444280954403066567547614005735714310795114689100852742530492673725504047090926640470537451679029678633200369300253621365564914955650404772305035021584697343316097451522192783704277140033503383961824574048715855024326819396372814616374515438970510599626796461444626540548812630007064446914080602156714392925385484044230308349178482571345078605010485989553788606941489902978742450516187535959259151597098233461790182577269767804427323487715750500425240388952291919679008486064087455211402089877924974946208017463834517414305296811060735895710312897343655621443373738198892654717423359904721375839056194817116086847859547214042635983446223559451583486166308522440788450513752835923593042374104194881487004427577108731922519442165243031659633125026431864614934474158528335064199558259505706428723009035616063037747153957592955752818823515339595879760639692095689157976857883727944280784673746551670989255527921280682590237870573191704302561873531670377426201415498219196822783375436264172714279632077101453925425306832609316350329842827357432190754359125303111550504177349160510437876250040919411735158884117260365018658519626506520670073423666059889716952348015714960655201140833446904166210384482777206164582218719371136291227601939995630144408137940245639916639478902597823797764234267229088257846024544921904192033419225427395283679120781866605637066764862819012363343490094257289162613555114333647648896987955697224354737312367341559236014817684110175588143726423922455164173857748609302184624352171353454003348817687056994532030922226213846231949572304627511719678462441768141498387372294280391949649090930433532353735343420324958957280745401993766842633300274778995462203084439706239268606078430009775421036542597438389482508104622375333385752245941361993330750651530698955655544259922055240514431726899403158419451757821942008342408414184777615808811362067583348911549733443336520394378491109905928706214783901089841851715979452667907041877901034829939134040099751308500908768345445207781105166460006116447717805016978605530972636736377021904867538067668092385945278006724068235575391578672785341811591392346120192545662588618237302539571067372624705569523882045175208408477812413902591912769227596300713315741404237974249930866433312224863164397023151620526770857235522785365117001426997177305344908482949557856055279944911857756497330598026280575579703242345040445517454985433432067111273695177100727317370654512816332455684590194976194843548682850859533438609327764630320058231256211809503885982510790185981394051449698634809848493829338719476767756579250677903334025576619259202043387905297801821833902833514914148868970299408734991154988656283854832960254691616686986352717051622065176148248593552147702037674046597565192004995328754329366997975162696233696990902731314022966163126329783053861017214250458482912017267038432412756688879549855016801432755781313589030886337139799976190183908609827358391791796142804460469024209600373531427804463724667577003848816248437252158537621446050048170836571689271503392461360908806073299812014191917480944561343572397490321105524169382409623761995821636375389739423472009701290488376759149257115041439687685243975894599172208503487645475240621527244877226583217878878957181768607896321980957062501668049726841345553478988903292782044167409016074278775431860217365164688052518481968212079859597997340996227795081477008591162388320989895890395010857821261679330289488344568969565662513019389100694963988914779929723246957781714682108599252158130562235035130109636456696809178567216088098478759904129501441242813658173465947861636843350179344361719899861003090697478219705566622073013033313462655916803912306891790569290812979874348654163448774918999577571660441407114375642968298355745535556057140999744511261298233715405425861683593537117430533040931234711212722204571942243960237135953711971898205253642419107762005513735433724401455863028018463292719859413777147964964420678617285843612555380761914073189846590222053829280003193858622266640971837408570517651163231298710563331601286074462438728044149497445731554896438227154722650156447475850766184054341864189091410255951833028801166168727395957092008158290621845021190026529528816547672240342789811315605092202524751785685183473505208339635305943683097852133215405851344490654779949252271864241903667091618469874721830348176283885667421285731612505820946961969944997545737797234347007910764847024966079751194345064164602928654325431494053021286013851943098199409808321415834944495243615475697557455359775513597832525136288413979351845797507716368999313805739659700230471973158895560992738322045902687877315568356450815479951330856105244676070334085662621036279688342658833909963340633875471347176503197982585309462128417487913130477413476967462970371608163454271003198177421042495071173900720857857421916149392703482486435295732397730995387627831434458275084730938417205346787617631423160093628594477788459749126126552249051743171739173679289716152900158805840536208236343771417459639765515065154126734087846146708439867220196762498557618585179276520985855559801569225906131398535792285988546946881273539020452060412320899935760002947397676458577423246494631853440848164464973168526424636116183226262636420151218140845515956908539529648183661730994914769121381076190569802428877435062095861836753170026425088580542851811306721065096994757086463732588091653226507744044073690071164565075989838252326092515453563222782316370749988030543305201725460761351608562556566539457692378325057527714315755592118856391481992401220524095912478116422767896835924758774047693111836568148919211956077997836819787310103778445808000886327983981850852414142392082197335307489004766507704827623472564753091600055459788562377432610506759399430811178421158664619079449571079210520381285302228224771336926810501788002999682990544558078687906897531070001127581076952813118648803197927644912755814426751019686550327317003652553508390989741798454886527601205158959375098162427909113340284733622640138072091325629617101297275390755368483341330835429222741043403887472750746618606922363517050024698909616675686120365412158286977059761624979239726985978918726989247343892502458989776010758209245067635916198946837658911422740949530949277518190783867137763681412271592618801018314282605828340930043036073213515441507468907676676512528525530124972827079440601970519084881919511878818018398864601927187643096194169426261020741763973564845505111701679960143364798858846918105584920656040324336078867330421781541941764178535779957001103851027009669403426220323337197520422922020063842073429548927617312949772168140130838247503688215650306493346049210028726426170782329082772348200287975957389263430343877733456102416474263149861111424336305394925967523275589645068287121753254355515520599268636096119593914076120729654684341348386732991800530620098892863802291166703816179450342227102938944633012510595258584099976470628695620222358973182650801254080045680774111618981121938395108956249299420422284272521573380392023421233299320672424042519928454490151196607620139329622882307432138381152607112762003986378269215956294763240224828032072599968924630628114863658563885647960886154915549397559285150395354896342107453013890700558112630631555437398868384053717018142167728640155048031784397205712434957421395093144491492691188413266421711422530169161686578810417420609711156730829217834618214483921290466023641889834046635516755058745935470591806823692976004697563855447993052369017328463596954703036550370210089289404878164163519831356699922162992510908238516876489931667383894878136923343972853499738989565572030746275334993596324568245471859498795114044007012305505860096051608058148254902195987603564150540833904133638581466883989757422553962728567260403368203956187175557524585449442536210907289120786185203520415548985378904924557778188037565214166071965468734125885231133500161938837807501987719723372879037206134360973820909159260040725487323564826337259348142938112973485235357471623566306361173165546158191198287013184328291034299800656766114021016615722997931271447071220543707692719236225851845086212341019576071780319319314202266337901394667252515558635880739170219042403740492100861748794677917709035375221006875100527699518270872972233450679106196580731097105073454726008460444851996433170434444198196726036777069500301738581350695793378700786855479702030555541182114589175220773397128837643010275962623621308648460027382897241571788462820314476806809483807849215972392316378695100692682753180754193119810869948180490854662781792280174131479226229822232608880449011661462124373044097123050930434183572179212671246217069254196131373938240658458024793948817922641165165520088608095985666007133403253544935493342741810809794694703408848048863553243058747478813011728515838871972655336556790764688829646089878641159057505270344244257032110876871978264774942356941143343891268067514718301694802727857342643744440671356498344378754455860654904190161139004909638149427772935313084294947827754921860776627898311472997953172922876936600290111488817368822656138627014427210616748171174342004762104810860620000106871789430827452303330695825075786995288633686667004825954149231917710407820472110237630390469384403386083495008375230523815636813394180948740171986709580332991946590046654762723217846653809705923012412181171710386442255779215512995245644032811245428789781247621558499030889586449470718563534761150646879388721232192032755351151355188598317678729065119977930063897544509786007832317952713559459769045576386840661763156355278556155771916157243153819882768755586142932595811441273480385429433773493385574186730332484156479556874939483654266339751729817152544183662652512827702476757160019311685028018423216270427971800512910718824297558199615810626420782822452684610205647089792069204032446812157712844666089452194200844482276310899830592287150767657276136591285978441573737109026939631647458101524850731581518504702569423052873266767706313880169780542866990745803279533871570677591941777876317858106868207470790848021920719045900034555680545002745236275783250158419365632018053465138290132631707435550706318661916297371389266964577651890404711928215404782260357722416092536746387633464956772940158786261784631013948739899314049174050455140463405723864422541954458121115882136769620865561958705835311981974716501227155934117877731707453773668355609669893248286557141608653370957468847537846483293603814189940158002103396457228996874403459501564364065310812817179165895720137888873117199686891650114284725578094567560648083377888540101249551438434348157495823739628839011033911952842708186586622817024118752603072235467492901014395605747907685151129604217879721581865305866509570661886472319547890344173268428095055641118533157739294241002760812124207142515375754643193647035603707980846148314069810662826823336832936497707493589671408916262402512652381143318206207062186835498725020856349846655244421567407777603799045285984299273539118848218276974130507291384068958092335679682255771042515154879829167962515248230993476909214013583611296894394177548979800311810195928696524409836933711979048103081795917259758460700522047797150768895187038482329934776477688550698540361272214774493606549745969245940422352035730630974440330550160197947023197624608705670773788827446285275366300012793985337414000202253356800768268450624775023756934750934976898747750789754955240710315592619676037213731712831589360243494067632266437884460706761225234720756643511768196639619793874633469161181425698207263361878502052759290588462954365038958954532848764539073534260804576165078971762447390595682895720919708282119875237806502972055026089748001388658193255003652161123492366516483231637362593413291408006148906074426859710681040418881044935202862269241648442034004420354502299781923587733093527759738941930902599612505590041111401176508097608395755205791838060959017440721626654459806772722649462651831005968251574222870005668110588242774639149208074803799245166363607314713314149930533824885639986050197977645988304621703589399798617372104571072391938651403001420398693798251678304066876308162604835670681175363799857066138256934513951198366181306907271199728149021644874721060793201842565782278557900139790869418146608935218592103038801326046433655988793221925627468407438752808370222997814540547322805387316039601269093236689936381357723440350821036320774411805430158689349659653182860783211501987990762458255991189485101377634176812995629835791504698536037684585389976110007220912362312770554522415648502916357601031965798739960070405845751915590207313825594066248653277135271516250862665132984734282855790384796758049340313994789484505596624976125721899453484835809387039560905714451079927147370457260732753844110606660224972616730528340512025409822449871889611083323351209125943411151248727814863463488556131676241596523196142352437428965329471405228697377032209541016390783890750767096111425467808769225292354983715738326815515683427297163668837752661945711370074043696778293110952494863146817304730623154711757656751341184147917833411746214845409354498608208703308618724397628855938237501646119335472031756523992529424249807484623601153877548764981948650270744221378826354665131407097292395210227472156771636844330903664045845217121980876294391199193043389572904500538581216681116918054503175524132554653822345867021712406952908464906754356088470486341345813240727670969865129854306061891273332427469329115030355419350125526261114726406239455489011297463044568570707799276938253161800917034110227555422151965764769669905042683502798774856904449208488510947091357312452933407255587422768116740482216784711614797323594266913454299562267412531503333762763569004481632098753263686183463711723307825690606943654759838667526733475890262325892413484214753104949623661147388805609667663707075466268751521052627828974894117908185916301070184337108055074408379618539961574833680716893563093478843768231440169599655211863137431494508179521423474316532064432670428130579696286623511774004380032377974611165381892904083828108178653180562039684233779371110271660377684382310464169379191983762108403844973467420680440304087061928504810058521922880748329989117843750724074683743942491931881711008303560962571338753100572434140301697788868670841141134310854760654877507082367060456328008142129513126782103727360177292172872135799879448044961355071866210178903110959173785336676595069747965391138380673200411718512994255478451643963356759177988942832215329154767264669415254738095070761175521486476281424756948662105680334729853968375557536540100680200728480914585642552235417224282124489803930202212662103311704331845564891645613530298010607397241551280537182178013269131564821389737043989001499518607622617630285338665323126869779713002577301778166127648439086058622192811196544788293922579323423428528294314027166220179683949792022811301413072745472079366875272909032055109735865514611978384479710158773819138284151820043193240054793110507179640293063835768036103856907807721686985960426621466277071800673686000572371335423374312154446311000887402126849197253595349477000732165454252907115949238429928307936182502645032797641011342626437274362117334186487313186635215581704422626781915583156359006855035328681852145462721316821260446464809006180887301411766481890630217750556045634808674489318969146262183833362675628638352482437975401974969746765723939130144457090288214866122575503007724813140997315584409133859235093374256080699036865520916268279326134205997355324341049478269688484960146373805803362653927284762581092614027822279088857771323717094669998505203093867536454170004645383339496776513804964282987238462663203505102959236797077005651438674003801552699530406155352894731178759305902735167393006887406180147548447544261451584087562598650292587306453265296437824682661690711717464149197751360639006820731973662525866315001708207634166521749593765511748978746137405556426116761671359593804954724124456805174657273732103848306591357016339944420110464968818658609983169820039645813092679156219920560712030884209746675684276432014278249681643960176848105384122489041168930258249315425473986061322158568949553629631687760887462363266521081824354512195056597363921115684427789614460001021781347880784573695058669627763467311691262597493784358638788552819962494881829181298886531263335997911280777748107226103881687461777564712700864712036165986128149387367693371211666484291058153051684854842615012213967394196832332760238196543964885511840836040639151126701920546111737293473903766401288691184430457575510166910410514017507675746691806680286905350666144454665103412693314343630188271911307398147496396320425155317542329239585604953435734455201673452043819903203335147401503648000664411456719933039750970306651910906361735568036968416764278630721479346536232862812309504398930495538555379382870130529555048883904755986895960920976750388320119282193807470129912156245709483571430712600527992045104462208150056738443353469085084529788555759085538530790126269128510872814042527171092385121706623227415327164240139095020018946227479691814909909326773214680573472015825434405583021703727955359628583803327130973536509714574087882570917982575437518024610990517274905063752457526903699867184278512661180195838439883385812823017841033109202503436786161772575353132175278467620578069733341416973322608072183035415696489025040614534309536170643740032529206085803038345332546809909486592274044764634589771778491660851330882822911779993334639765954719949989044060940793864684690228909254108605872897521601294871248547953912242695198513972496682257856096411805661618364394718986212378902627477956530884680668837213881527052905556727953664312729649482138275881075707523088195359082850829521367314759934818675761668178850761324710553738731295401799129170808856187331568620482664717355483681531834633492692737117661318535572595472989590274214157957787411703379453241494349515210857638901501806334445335778899447917835495219522940871879147564622573448113456526542222835842837861713647650137194418646971357915489062148253299841696030608945661822803951761113642406231484906686915385068431141137949754348921724887693827649593477775761553493375202178556632717369298989484857193714810036705545990137498234954354279009176180607706147312013998900070051784826104798615326896275739489354129481643058127227804709000900588818248909862483637904768990171074443217016815809061893580059513372470566653017394454954123046899514183526509073794697404990301816477984982844863801648257647062572329472650946016860984923267357685333860815101427006044013643483969806040659261142194774569972335606619632944278684653035711465668900299668646671219442479200615074379827649108585818502974137005708418903231285304529969722037312157997319557972461221272582250482170218925614277792647971059968308967796700992804883154836878918567303091334030922487644893598008297920796991453603841533537111078581167553999590638979750632464499357318420343754078679074309421691737100274065475528668804256989637767930998462992071695315567897378997601110377537649882545935677517366971633737505736875485927458893077382628359134958508913321352555435912479119108626773283649140882644113976378775709318643049592587737394809599647539042142005607799032308118088693633422007605185115691438827167696460145725110712891385608636839990712441584756432538560485951932855348234430570417775121223845113051490112839343302784759804181200068799317970067750250520814151755407580888127899768766015750067992079316965127332668282303185436990698715740248430856794525707967525787628312602520299169535781709171370612570718267757798787673439609363080799104678972339915722128982328705310725663125266489160524464905069285204400092810347164888795031437375976343238131289266407135199894094624442580553428587952198237940467567656073964171738450785950135064952410452385143584353514324212609386197179661966112355051437387015403715723328159341681659606469049129426287875436440664977858349166658975383221796479925926097936246800502081230650839221221607413386146786003763943269481504966699027829480538317376675963232566170373531634355456156625860286196366989361241036359949414240845130210327373546749917338359497697737373324188784427719199825320271006876430026566259398557396801001938658700928853692054753834277826058667496219368451932601292219713576492678774384040393450206648795235302599442678623317056289049662318806672652527431331021712249611355883738585856771134049301859580932069029411652024878652049215513979831876582938086330649280739649615142365668629623055041066811702779332673391870403968022610532722637740429690571301509491709701232809908395465330517978413651488179697873866713086756210598483997151889908929708092119819080052492676881673082270032828338853036439240428591999974541354305206175437067607631067294605759628505083720690313441745688956595585325448941748727124577073357937979002412765804668054956080149134379930956756220825413162174777924585923389171516441852556584105128649367578212428932113191819723845529846291402432367941119739882928551609267767477709141381347953917390411533606610775782301083045463526667002013916431873524592495753706319847175241091094183276184550747634818645923230663870854758867266587487623528230176136641602903267260974698433766602674683171973493285115354234578983751375155956337905443653644427122830992194505646598887365244874823798187895137973589203337552704376396935187743473248775985888737831641738350051937772958954782555935186747808956228999737847809346649075245029464748244419984314301551027363295084361973324549615362015659666162416120845742334211619817411202903249454718647960683666172739667482727580444805727698888441876324788446534657059240468952013970201283846604022686251999342205663383854939629486080609601659168984773331767185778106141731996001029919811326647853866000197200314862169967216069185964501055935158798745680753559487689598652750112666866294285555623276690317050665471479278248612153656743328787005829637732113459394767152573732820512470844610526513860523962011278342001536137764917786575710279880314065817130490326666483283549543622808525495709099735889413051907734328874847436244313011958387355850456604813584166790110124018310140502030953741239608753993601010896179577417210648877103298234868680130739038166355457851581194619300920726521669427237227307614456152390113376212170215206954013114778905963650891889434473737565730186610170065905962761181655094925138411598917002564682032837087821905594496262039651906149359156559411796867686889477813379572215607859987595540535456017486813734920259917322588781092385466905289817974502668124794913590248273365707249977351812523732021112625697920750572904015831304816256207318179121351332065271891082451154377107763475207904402611601813662423224382329765102323910726060937635653547364844668984324369730356731995445101112127123001712041729345181585710631684518103451076613178531738677452890314332778984373774450051798580628394460333269439815566337138064813573900574653282693981313690498968372169682174454533951655744314261750291852474221031665321432054900250185207044787087898940927520409186641861141805225395823573465906871435096027904667266171192347854495951583523196163087566149049418696414631902671492179978590777815982649431589389030535859991120008610987654722742713162066768918465574049654717001812800171215181805971262551272560724015431810566097804003165437349814329760168855260021649079520201362459518728732286149445637133793726302207005798488506435871735497255396101284791857537605482725518804564571911413118839105282578329045530699574225076679192395447783965773802368653102850937603168468069448181942142219814912218084226818001962173626039288354843853959507493992385962541914221894424653900443961292249543648395802673732061178185550787619024271682701698567008145262755589384162986078385847779876872063412584852232087474431325023968118294133719999903053467616698366719459000456524072474192864863072719198093730108570421479318352127147002496817042496714636844384189387934549701561578834469338365784792975524000717589965443593234789412645751596727933692708950134413622309316512581992141310116622107710217823198924880333877621837841433692914880190826199005388060492139903382038191046385072878185763924407594624493587881710165755977086261151699129422025052935294135128803950495578598104739584726644405167410919621031502515222846264442952606393264576899870160347654367111655566712831396721018513341416193852634318976270590376690692824877801707666883489500957528272920389834595662510008479356829585525539199249172784938744132929289003178671306714160153692476537711456053443101269395274303211748080847536508642158453371932002063197572475177406492501862035620410047822695769210635443501913676467305185789013578583950174181877615008819621767231869577646113929045727071772508092191116343805683533801511384352844089112453638380386040551246230191841296005491090497937733699164811402467494502779996601202511618646890079729010287798219649588407500167412830495101410071845053705287986159272754866281358575538795835462716182544780812977289214109678381687976082943022597289070102705762611427660741781912372649005277008474574126521662771594753076008214406623974099758408222977494214720678407432093236460737402446828958210677030630719736534944242560720013522154666326356413534678337682946592604672061302344742975194426416897438235783710140523961773896640049479889756104417759332508967464117920464990540577523633390458610170959669654997195029333215902222005843204755483324370596039030485454181778113542667269524321213639041053914506556785545273896676436808062324406616518544816831709019112064056147099408820467863592745439977584015172042872222373821793523655133467892242182217739208045101022257453940878071919664086562336458057637267675359868112392044578083788987845153011157527317392929166690648350040050019396150880728214276653523871021410037875316577986561667516003386983359979989299097291772877497685170192991456353689823860281203183198575105376282394226472661352403525635363494128735209565798856136579142711897887086209445566704759525434373545704496336990142592365258208142212179511688666441240909357856924722825795957942532080015536368828535048163597557177033175956701840398177982994712489630953298971038811729611678150591574864568597139702223168859961787681698239155702378313521671160174872109606679034359422724914275178571529340730497239671037348974674276166094096108577694167205582443406584728318805842902566508753996797873585550286512494229462235169324237662002290403123659803310275456884300598680585611398000726107755503980115440228031639467003790816510922213928036644843042439978254452219997080666115652998004197015756086648929861963864860991447445784867665349877404761579815731164605845113742241129988878677572596384608015559511988666472512105043499892129036984913136831811600618731831287796517517350126974260127256326653364947532728441669416913901891722101128161533051743762895547547471689294182643105226348872247665267139419196122634596998849374738146098426337359553068751624487466769800713039869852299057569118070498236823768479154083304457203887833945126756030894731358014387995455782388093660717648786210970461845533247546654276256420659414721866071741817847305434403604221593208637821506788472780057001106304142437806488347230184863553822103930439435385221492752275774100319147037805622675693950548305833494046626061261627902035421837913837682235695620382186927145730546035372373302237326357065850133516677110502643605453423035853275690584268282137521218092948200597717118814639953477822083751261716134990438814913946025135718837868787262448936005822623032193840212306866865308872279970749026705328125440947518926545145115552410281475740590920518855003770842408399767490364407395380223594405670504676922640273764080235112752956152742859006733146971602365967166329396048315296754484403972105541415742033989110939681266666781581780373268902895268018848888460050590294194920375068516806310586871265639613127163036511955953769268011790181226433597976378358166913329562457090513197662306954678917568152732762111722323656540271176300744650355496440043364485926734038103058930471733073732103579370337396841734911817198148936255685311235354633073643856922677378847262240441688101475835886022128533928088950151443620439743948019242481782261352657939586513613215777557843924169176819240174166076259829599748066697202495240942188367543507773643215021094140215682412565510936095780164783493501732704573312275128256469924543791660214408504257751845165015698732157554791718312990312805088657051759733320228785087318269524941006465417967322720421019581929595972755780738744894967818885192166802880752050775509648924668366472291634360379682145884923143656606075366408494213604866379863317507167575807952585236909781448549172864491303536085917327669268230594132854926988877798585051565185086094872319289316671932723657201787002237679921488387884789161786460768895114127634702292224526691131828804277533821346426579318924990047837582173301885242212899729100395675803098156168382562213021584960167876379156383302334781398157863339781552526877795627500633062953307054223722543741362482652832113260692712131252836305321860614711434288687296598306585498145761928705838576990704999139100837561927981528399647269879848080924441134851395004937803434374666921839433370404161209887370096489963413870827577751501557114781358194218609157968244877412799569942319845100732192082577093797892271705019419898725024596420500769083119578311588503069865204658410267556276885714982230445141367012363018086467677468967152104473997213364135228262126773419530389941226364344873774399277152376685708726521049800921260529542665179204656724524289084467417638350571850682470432898279862069755533926418323497122356236431729549171224451646439887504425654650433879739623434507822037216328605702539544604179651768373018153096612748004499281658130947834472529061570606886144074537526466041136358647700311749370540104892824416767355246655126554013354326805588434234753061766625845405390670399478164766067289219998355412694753696763809062012959530960024148493002983533880068884945302035675690532574187497714707134515965240233278205046909921987720012611016707360878982999642966801334253299025791711066300845235977432254687536047306670628129912264929806446998002961847994725833241068065919860792081727373534975512781770500215192456778023898739356369730284803095911009434641512359887183051698000271379435590587548065651939983190370081022351295133048384150411801088705663399519988006316111559514969225520880526262934625112631099695694002283179432914416593310386104050442390957381944694750026227786738400637959476300800268321997319616644243413217775814357073931947146221433264181818228620389876496310292242198215373230222991483270908060967187064464441628634070892615034381902706977140705175969150205641140828260164577637362490059247686436735115111874503364749768419578788751869196911226111239894498957401463826018448668799418124593476082672954180410267966908085529923614876970986294842306034863787581895353695395598468423511472204254205254069784512752664408409197264701830709739672923085969053584036405109639482474476649263066218750246758998533061911621966576311643086090763236027579847852233917072461327225049356254155942973704949803163701919713949974267043422430540899999408164689974015781346408003935475529845822061338119364484001625770514163755547010304074920943525060109925449373064645721547159807942487791117986493942907857707765210934743264602923128504429538587655247886734867587112241000539487456774042771684449318797510996719253606715506983049111350732781729107038399927048502609445986623980606308191118705277135182737656092231267525439030064267184172677635417596673615873375211621249114410118292213397900584750452727275325875912896997137688145267989208189065107952468607204121631400502633917389639640446138860989917816067953458976532642674577816530388597560345440059154110236261686104657123542140014859260308929577422951596474899294801593121213170356187733532642587235657638587322559218135673039935877536660619728170571828543624978303221527708388896141528519228612936624952105755239141316374583545642982783890395609103984651542137039721825311409468484972262886507724425870140461165754849927037182588964196437700138422830313581492519215404164847461199916992741937943376580921632103755312931636849258233997409413314979760513340452802001011996582076442367263729688194912120108136599432126529152456789075189699210585122263185035002706834824395273317172765528386884304107044381529095766479840807339904494595937623359589259491896410335962165868456282011358754946497997196608693369347789820074512603348448575207688386689835334522527350793260943530850527627644485409775568731926372852846477235593053047949769486555359964069905333451642863530482448967090982762641171652083306100351155226438057538011173765984972098168201040968663395232269059809657546646889254107238250108881812200975397006324549805217569433616492605065985278291356680252093624176818124666378792847322087016373267735420678707907764947179114070866357836548081286219565318314587726323326977989406349912808068610036185252454809115697181500336977978022754434599774131654597389853800127771349890172988597233911244817311132428420997393364503212185767199843416315986024513152835816857151426736124362214428456415948464108852045889163818947223494216843248485602347513212680408901060588871935421561778317038320163994664041901321375547366061759503975361139921191084291487115179442720082741509509885723846523808003549660719059880398271115943428404226666673027017045309871268672416661541349457746778768499600971958923411348819542969791430190664953798143879307518644264236717662709183127481333807153884153715990921859548302113086180013146438119122674668490365973270988712395493336089018942445637193136979103948598480317028096988646603302769375144837095059907822010650511063108712366938384719495754915380847731821964581685812836190583443060143741447476176175763814354318009585418556791435581162233190070421947390970558642410596628368297624083694051980907770588952708200776904548971588226985308306314349898586386971482120181864202645406638941273504252546477909975169378873936344387914174146921174973800308022125015205821221669800862461958179537573350686155292294369675972942476751767768159081956448899811736574381255399683707730310376475807287045432685310678526926733649383445233902866214794054479109218296557250260897200015470453620064603430658860428052712433546901620059606939567527462162260907661049768028098055648386426226233266489555555328088025421648810149653756628523508885488052129175105470687763249043038172775974996001949676464923224644401187350387929300241883280158472108829340909545456337032670371494126454570593150561034237741692768693542306479519110071600996848821308999881613961028172456521388849246964220049836712885031014967127527959973306608329047068819511021277980020018433305755703763483429130817656844056767670918564388753840921698764265995106069311545808569757120082329223499491337532129789331879403272536217992116248075059133547467696352197167795935791059622400812634185952305644472904678651750451225898032716608051270077480483611896168644107435078106239651513531558601665945434970478522713668633603794915657404050806523418188720531211936212026256444163560649010002564018560387453159065619885776706024578861885518202527142410696239095867712820961894333079575814817506691282111277842019631433078389622976273469636409897155420363146845223412204626262429717488106915858265313169204552112296354624893451622988640976010904320610431544208901040510828432525331946481148338393694918882059682800837282281110744125008587731315971173172450668469020718604038525980058146274997851612348795409022067343283377566551448049245804209053692320301369707060180732026844735824101019972937581223086334708412534968823551991559898345387526298475095260753707371685621534528036305558225390175918545679188514567123144961484933924517362915248657137296821964145999095555836526939697011223501530217136893458156574635960618005765016573195629776942154450979452031219078365811465003868904989522085802260043786692651551889011307837975516221200356355929808048956602113558643223185654759970329498250833838853891721815784330543220834583372125308551877180715370187050152279330994857331304860436127800330120673076475378991528259131727544014903574422533563486441840958639687085253869314161028945889953825324322320215898884317297351171177567297906731260223731509631591258965324998413461722590683975267691320858889434769555743377772565227880113742239884685087509886284468021195152017867833620868899034921920222540484934209851854820249965809230362294748013717605403091062622208189585152486857760679941437403415760584976044059840594622840958044028851681122355163423117773212531750843546641031587957599918218902737852022100171875121283223365285522935767432562418895990524835199984841895979621522345431871438527315475460751239927141605593925306879990751254406564785820221634245951251796894149506672998654061897948673540177576325234910054518647926550989822387608650810367632981050027792043886127794167219064809026912843358627974064608305760414500313607814151925573508041964964854598385045249578236056800145733845060250448530888425023283934715597689384878170959211452721977134969517671024203598550526076206682002468562779780642401900369829410281481614325390297414045438398059104175342527095357373358074593144696654538920140552700102523922859205685289550286770740787157151967228338398255513978946924180478315030565828391468474224064574345548425772418471103484973541979712380542720902545247402929317002047896635091824726488932772398909507822148450458204891560981341374883348022250273262274052156295144981208540623276127487843730543647422942672248914929960337432974984900921852435717411147710172305424976615086557439118120843997375169001471744400639297537475169110138317186598571041477585635575708837461181256195142437340914546955376554647879255755352714962466964889772958795406393832184636398734948693316608581627728115491804127101468086230147263227370743082183956391445248850873170352167294464542383290448146781519327348036315095174736452488650615313948701873072711569898749718592608181947899569305029183891509224420845322611459428948345228198009578713167607513908040286474324371927693433361760859503287165120862126804147133676364004192250448380060669615803795138768070853867297079853765200841210602889793387443557039642217348758441559383927244325040732445778214638198126054176551867509311187399992594723515553858702150571115755511133015721225459715925902324339881749742358180135374872044947980627813445366474256000618851617970189374041990542488190168668050257083654226542057850970011977110634295309030637342785606196098950328827805129316472092876648184548601337050965583405531379939451966626006759674697215221232673627113273594605374140950091202722832688440005558831355274346524878539125340868829275857205542312469098793166012036597493048080036476936780819205777976806766144238408803479340179142862687773769756461564814954127505925540719799329772646264996704516119658188991903794608945770692911276070965875043512627488780041757264721628045999235218128685396765637597459516243568602087710741893399354679899958308969277859512844970958914817384805993901441156789984898745219994631112701348857375315012580719813501399164399419023388109779931542266227463523350085103889760509525294129192427798013525437651924480268685407822649920281614157338209043614787541673418430915833816862733080267735022216803759936605084425162290361975388730159646908316527687498327638460255694943147626952696366927908436936736322167798504653964829737750106639401280308435078948787752233508605833710803314104901400652839648470975704303383891296704065200106996713261169495108130426736175404014661985160947110932580602606384765882078636852457036705386166679015287847500328232184260946897925956421299532334609509002576034111301516243314689201165525889221583475452771087136398964430719439062439258958090017576979579240464900777736590670921430664391305900784029402760794732182842163330869011977932877179379103808300290739331474701776214652145710039686608480999082827295083959864768929632118179305604238523008639389564001207491647035518973177288711657507098714722614340922096821607516329634211877630840159786842568691019936107185748765753968827405569019493032727537351073658708038880364534933901640368658305669556090452455974356381498777278161694761490356590483471892345962869251078808926906590213795476545879515937497010156777703751052397198026754900685972412273759390697843702425059043777468626739875577874492374782391657961969429174461805764438681736309219924456805296537808902885634826531538341789420637494361323051543707047112114734000456391938758003662823977777715823070575659046678988196951076999276964126281533020781299939328342742131285039868284207639425022736307081418875342854993274869060910886151494955256092703139170158505335802364716570408138325073781021540910716164256382597385121875004896690599920533131241868294155036584847072053274044887887242000836937815196596089973925333427015378828767728977422387479444635403227009850088938827448426685047072564153850721877373601156668475436151805956233976138403726670078302539176257610615279304783321741807097286399736720756138324939700505206338113566510232227096410389394418940443898541036442194435132409984971638536225463265067422491847104718899026552154778259993729802088437884957128008185939484813277646376353985571203542723932388201022298754356130485203503795917727409374107764834800903940285817854624988762229709672247458042121502426094298584851123564482442796421456409529469603871827914663926293583745075903383702259078079935905047060974252570294500010241363729668457104593789134828583730064138760566748620990558639011407792008455065848880822652938979959927964134559692231600633384898047611713418346245237568864401627764315581035849202404606867532472976692747617000745624912686069067756087514166999744368205905363762542167124843712548459908703250184721182747737999994515780414310356133498305643248015487899856395541938193356076911504104946945129735546212864799546935048638528735913638726042973538589062668769501390620666491461084422200170443383810451407828375178801477339337819478063332802566181360333127904308482077687779813021044015051178234311823734696098189342277996412845360996760239999574076664128052223558206214444821181602390869880099680453055177779142266251041431993507507335764030932562979113775934166456189662292526152298408124961811586558726487749426896178289257135146666608117212318869571178629914078566260190414347394754585208031741051676956065913862153094202390049854521064967156295872637418880669167867267645885609015263373584976581276820709895202275042580938140071289349029537283709354953573340981326536218252987574590971560215890892345782383784395569068498292552065511594871666108230753434197838771669152914265181100185461816022551595968783862822334981147313054330943254312329543963216514919539348647818099611804306238375040857644446389951294150196235266108319465393797568045503544246230617270506586328838798790218749280240332649577740914691497923595648344171174946995094944018939332250192336609304152043251899247852155304130680285448933270448569255284577733307772796206491506732674829161190360378560218601867589211527540662738239567849672438522805555727869663168020385904250879355072685767706101885859584095599418403280410574535793081395574865806420470592655920936431675615827196453992091773770096428902822911648537091321737994823476109976300547081111743332023757082407284502798127242106268451287752947495882933917880049340005276347526062156138998411592921883755810067329231438031873843186348172012667577776140950175689525481122339295743482554370293453025250508917036059868365205863555422560726192509896906443568179524653525402838361914872022752031326124786475654385647031632171117649414408493969528794365919621742236321576834744795376610923095963561349351682116237128826609881371847405904320544543250183043649340032527012390349378394784424763500376725541479137357844544634813832958779710653584392524837479848749855472873875397273084986721579008912783117515292449409997467151691683596505170826045038857478070958242973698333962292850994512857491577695776519446127771383266095766985198480115876245563635931342592353937237539015341277398298892927755317519337382322934931873785692336959754486335957426416430559159689178558551578316822148617879895594115624241325272909658668024489902743833401349763546320500196678185627312686419397493973574720475929349583689544208032733456975412312004612802503726266147756176025490774847852159073220091163347028261205191232798747911480776607497531065888031838641383197134686497002031365791734093551790711635763200889048917643236474300769907321355439924022434840469393613118847312478306613637655001183197951414903572208235749977115755937912925725339072047556838317336127457339285311645264348333134516247361291397769055770994867583642327831413930696402252198560282450474804949782412809605552076497907534582978152252971766081956186503669011214912420984842129278410593972897137478835604634737192091351268664457882913111075173995392323816511379397642986299584026865943666725214034624910923735811244198938627907933738120504999077381538697064147836656910548157325536020684449536449989197001838859426848680092755026890082015430148002329089931669283216543026057273084031482100452880425328387345671403008760910071391037280269256498434525003454229007726995284191185097978125643701413586779499340121027009348439140790597378938148870128134349034255114068002368276958659759413766630346209212285433709326677333017250343798483730058780980186714165434967086146305682755777899324013386666483318882473605460013868536815634278713620863198954512496794932404831405822780122247493247919295252992186760836696648270950526572828341236025457718801265314086643047040779795027532040468541875768537132888826623501541269354215879348080174152017964916927987629780755739845790251143047721923145509191565798236667370506310911862659369312962992326332760318140015797871234981149502259034354191057655817689145946097349788072074822536939871848937123168064146127438476870851191595832536008385322338829153954480096186910570901681615153755842022182616236039127137015309400058306804479714480595893837094784074089815099563611178804867403158775072970437362459962763021970509242677081430130333876250151043959589775044941533233175521062983092412371613557892938334566241103235617190247693999414413020968393270483256636670313075664162166599338444163589029284743713944874273291572743720243058615092196154443680624857857768064408115876072136731836917423880143431243863497746546292721647947855180584389873838175303176458259552067402564217342354647681128408727215403743264307485982046550581825979654575003773870955025044677750443991268503134028218005240336900360302251370680276679808734611503333046614884732280964076053670209854131341072965564516870620026353189671808096089858769299670138286906597488615081035354513222718390429391081316997753253334106123021932269753644713255952857114532231146284634752463807529080627504667763560059139006395777326251654995572142629760550858780377610451323636955546045684708864500640195539023796131812620488321837732847000539505677211090557695449489701335871681292609736961653937392326934922401378767382692580251330906403679007702316344160399443055658021510629177270943508103241703587259443944777313057774248981527403108108567314968383053972146514201361937824340959595678121514617068074668291798751858414566642195955668272899963024147019527472925621565336054167261850693919624935503476345096131455054066007337071233758713240363489297488724262292625594792285010959685444641436551179119714922879999724953748025542278473826104517221862707756403386479349044657234466599790101317738839178309262987387843432282946660194268531691704733244864049574294560509376407636502521610654983841346788543998942637213290707241424063320571337234543347724237313885531047304414751328634785597558670765998619720279010699251773871582065949617505349611019396920285842883470109728637217476593111603362349374469000509238327232599669074427019634401833989196935976400733019561776380499966557226324160053807279412972223165582532382164328955696604030882509620288715868211131307593787699237113350310193019966687071471060046396729466327207655674176248542010080120777044733870204533033623876572358164624728059010420489927665225630851514843190978622159199728469172831202651338134927381259896402149043445999249535074396846613633002117380634353608725690520064772491431794808016965457302903482466984943541594070741323561114889483313239161951698347449287184297787062996000563224891868032119555747308745760144670141061317954780373179750823758569087730563578005314630852373454775835170985081833431077200147203413970453777448992457546746823583070971808856214117107813083651569544842618443224038893061660033710451212234588873199610813944027012168692280178518290245295381477143438147474133063325522798877878921080292268561199845226920782797457558316041342712721237142634053716603802306179678802103134489065803412150005962778364669068997315965069592971387313605075727037048240966566830540068035469099710120860475460218979379436506814123092654583647906833165711738863029043714701225518208867940647770510350949321500054380463819532509012160866565866892033957573341182031219940416704331094994198725045167901324500459904639689306222028244053283151263463031960152022965641030480679362863853256529960046980808643377913686374514949620060030781250782167423428718732128223465109304589462311460116999549808601820441058994623552232836169477596465694894385622921914807529543399807411947730984077277690820018356767643632338450678464406030797042784650342291524866953943706221601242106516248158251968944250976389322711044182580252296614438491672009503806387149521778888252277146886075953772882888748644771928095366032211582057675838056418740860822172238165741510853221832592139160690017944983771137958570107106381791963787857298415161741678258174814738369600575611619771886988117812040460351195664571486260727552599022918335918170525845284074628876007339387090839288689727623372300725744675113761838582327320739539804071784021687618208489308458030185560403885811900376686570543786369728073581906737691643917216342633597980836551696032306740963692003439491703333952028508699297842152111601489795481583115982092695245612562522068917413336241002139818464099690452678470141864123098643857258176473106059956202144292333701280321130279542038892251755383027904632034980337685332650585141278728040431126629381433060187335253592213247930469931719987052771219248668325048280556120288770490764858403544889471167274220652783489016717116476386201983566540215352790667835046313598436396653637968987452525841305721925285109951656215002811531853113841387080229662639262668309991007244510850398813167290119818688383904738117021693538840424171784503147732500816348531889256757825202932570356771675888196307497508101096951715130730578799697843534153657778019923434984882104313892278529295811548658567689497858965502802193372367007409311957632704474454397162573383293356359370686168062187959796365219563686760745618984115671280151333828267529179944836067960355103481776008948822208551852303901578249372261440736169946883701424468799524096456722507974713998281318280110168118242887609279990952551168261160624380956392561514770341384979603994930727796513918520671688074507326824048788583262487355851923352346919656316294213647947109597741479033959124429914937225155290283161029817750206620322586135702216901065836347135904966947376269124026863035199273470083755346690345401605272111428705436231213876921668340452037164230760401189005111807116536530216421901948831794207234939394620131548452078122562995727687472071946694762516334242039527710826468670585623473495293327411930428446920597674600208148551743556547310705489000178239619079545206581355432736015926263586201879677630708997566120293024464937440134853027736920912426630267475196351684660359269482907044798456821330999830593549752145328005155263453955460224554427829246972490419070969744906457503931096445872465171054608240259124049210729426166225549217756049246629429335498972258984181492327747398622924665978174863244196086350152463233236196331943951969381841771281802444329152150328687329013728997106789093410709324303482445929891277936315526254945901071317334510655761121891289027405829123305226984508470173922815317747300595252056897349014059461002149402634192597713102566443384085956152152605405319265097802861939070142246059310787655455094835351110976330925111740243263081785278814465302054892350694928166141145905121328378974411685355078054602005822243287585857806196662910188885468570009397194566925031055861536533461973124495397217641705869921238284852137118108354410791800881353446362331817966936180357053697516380556633042911790918665173730929482888607261346427238221102394421209381445406186164029731222269444336135614848016853116336300090928068742944243821679889426583044349728421381587759258317592723679880858814985549896467163758255848892568259397974598949472571736522588027374582285807006146924101604065857195328454932367025876507554935020079161375523429131851178622231498448992534633665360576571726946122672324956921593098734119033622576785213096018973459337163228909089141760376273386454435742601464607412764751018857830209335004662056977790815202559412575055492658406488525784745733916803502986851464330682793081834213242366117199125902436686629897092892076671105476939215543833383537162244183162867571546643903731722553608858627946492071942648016446011287159153166875051523781782468982680472508740109047662230599780940639212809163882073252683873245037964697603994435823990777088378703997331951382630756320989378270052705619526496752002915661226572843302002616882466818543884533335000006666086738783807073104835559823958279263067072561716241641377350056781855493352855835833836565125380668315944020552536730791560550035367059724493722477967190765449378490816280837048104196021549946855098132689416731236051974530305751670075345253720293545089392014147673929420500438564008460445417768569938628130214141569581969212331392629664331881390935835380081716130630471240639589162684485214843929964767821453216870298350335827093308206393345798310351538005985204133249635538513714504982398128057984778886450524986355716749970643605576643723766601062932624859658682965587046031435855284798812949676248980592018955433186221728891054203749249559431634026768543848349910551769677257635441286464903985530453213470771246480224542839805180207703738789588401990454620464962301439234278235449411796448143149429122167011243320586477091547267139135142281940278341037288074094720308608570021310577472542728166766946313388820562570569291390353865211998458223832175784681480292165898658845680139780972664043849898493494157217010479856645175290573821768553456464918148933092703183969000730985175842397520426542809390383757357369266727355374746081164384161447568003080262186625759183788319876679004635331219854919601985449546853471834796854062949181433944036449938111908925577877325705755161069578631167001484838020104019464306667588792622160966320388365015465848871771879430166952655942633336380061945258129999561579697826989596491898357745480757615992065523275796016417815774112293562053456907419469046173741291513827931065273539914159102116452825407493424667757353059997335293896053424698426631632474526637168888997614891745711865966035946932447381315053193610390491874780716492837807587542935306807695043310658749106601528504708251388744152737714606758453742485623042634975041067190431801185822012065560023023443056628060139596993021357897119806285256582821277450595852337372870105058392111777430593316058938623006780686318342719135091424010165015495597247903275704796005804011143864185954370150606350563879965302495099708958122043233941314203574291700090432683206389795339887042318353844240058827361927788389091632626249604596305991659475407341210364288673685757752883057061070941717900176627100779121757716523012459471447047608034496929957698706903108836561112428923675750068405709431960084318677202535805997144545230580817646198103331625179084092276172273703176903962508513635767044516934946009625249331920386428177573772066752446954362566957263100292090081038376715902088534003519934820802536950484254271551168193175135521600329975233140817878335408774114012846939220976792090917519779678487063112433813186548826796694865432239983104822068106567784121191119938117857977831712414934861051330013568835912094120224214379240755880465774346664568001658692826816275837064104981418582537747066739541593981084526851030189906147525695204395236528419485742802113043354679745152252700967269494712139325183166236952179241730429865731252489616213068872405690900668163603477470796909098917087680775048237620999338600130273287254065401387769604166972534670787938505554593646943726125289930846593759532641305882821830907422354689326823408228627535110099868258950652646016035179377660658467766069480180293875541410003830752255800066646290626218111777184636467849385657465475600339372149989651013868089475315696689829390954089986268403647444992703452364180782014370295001161082603447986443583903033017611763046692010202422739416550921076583318676539904712333365067453799561545739145199981332534248742513714899514689900016136876216271843976043424825347838599731529935264106214770507924611692581721813185348821978294177812591362637080786759535906809522300215292246706163629734700648409819547357473288156544731426817116692322962356489994424735387292382593691271145877858403848785078040614719698202282924003536057646095691653299984565954870581355780366474845665244314413291841917065648066521930119644821389874058451405192761007260955899748208479569161225712909136364109301714841343337620517231650330114125065556627394108280647160415333457591438689139719663141205225207931335754373077401368590443541864907892279521353747510706388631247676669908317255673698234037976492670412112289170579261155260004771432148979639821833597054986206954256049982101565880582973830994679992329307755437057662164012634492536652067725256189811829575908250738936416085049533572557718375612443812147130134871697688075621629028044620628475417021996630828799143370565987427422184809615364323034153109844534851731898026784246638857511468726118818828041764680173382993516101698275469211117878795471578740694575092762703984821236257952725844933302357009141953798529548186529929000361158331331125708634963509927694089170560355717093405908870951406493216178455917439781901212543626405199648116494229741632983784277405343652583284536356549419628615607321637047428953939475557812568453389965479288044335127175661928312808787229220493954060765150067831175466297022797737431901797825374512852313951677010454632243343838490851061026435762212422237012772332729272646470075781273077790967250861622573172221869209712463336466812167899334866281615786960512042125260543374082103938212973307252093315659119152668903784643068753188486869370882801749574650469430414983347338651517199396381362619513330977776618698116190347021603855866443295940164662903325152837724772294439124538241359893314997520041797377414489388158159840881331153475274165595703708640248024157047784367093499407070970039023169083610758317973354427099744856721020649402668132267398607113606245184029293180403649909969701269416268438267113320202334896327419577093521024005373811193955165248493724962065491229061541264612771483862063643317475677381768027149764712546159064856442823814417581040248489121832600369470847319411416604640546256342863561166745402992707194504879372845055224122864328875044182350534195822262273898681430853130812709608237387011203973126771937459517703942931627370943901852691881362487914697426630532771819270769949561981809550100358456231628554242671032389794341316078694748515111630798525013723848131998495948045935820974628692310086829544757300986409245475605162527931982872884260350604404200144935152333930863122336817821611757464407004011129588277718210354610121190279215403274869598502816431265426070084223557534109954840109891542423226799447407212911850774902508541249862871317046839500616659951366016922809049637568759554647786611426803747311120511423159770697846700218381552580326059052582670699347989944630445246714923678580976058152235650190215998977536799665368344924477886401992238236722242050058091009199778444661559056238826166984040395033300370991486956354118821284934626709655251277446248880299262553305140037807268569184518809267524739991926949097872304365935280048197142783686332281184110787394660616692411158751389547194637955223085528034238039453396988427008352337361116905880919886670066776248476302082290597256523424084942994258977576100727727519713592590137002563091021801597402624681077592829727686438186745903318700993200880038633579556220692250405129354389447193809625777044995066191172299097686984557241801619456702331126531584176683368917691238079102304140460720665456029881294172018091288885785861857054319339586932667297352313684120641909277150769342092276609021186297080071517169656322523924374623061257014762596974306953881372442695891368572377528670102292754538363623555396529836246497000100061342552804288354161285929938906784773907055860406239237039811954818640531816051535104722547943639073351407367605087668302580778811496014485528273769088946504245231913295833146327655481806729507744328088237309348211211417922404240518277753495968404055457418883942252610128020467394087240815552295013307007345028995722412208740190689754595378201234994003601992883579651042843481992562151936729347251286745662765624076664245986809340032597660642366223368138896198116018327083578154837049409802834188974255349244270344767090130225157363607826444800245553254158008590210553341929479509773118263564900458027888237485493114618111145923206569037306568774228214220665889622775508315984422381945185288209743918518847581848966445830430711929714450373579843898114241783306662226496433055832948668414620370990149072916283985244077294288957020143508084381660707617368119538976915020515043548699925537474259028818259585360868163532043347451340726248344690374005790971758182635730664853712516633616450436127689702117305210935244292187635213211279689039298499101465857704482169655742539616007326212142498643029106062060596914804395181602374544950041668179771783457643642084781502773299936899891187472572115160412285877024709960357598191259546108885165396499018853237053980730754848087228285176153666036703000247884691051845156265755792306259324870130538905598911664333513734082947881474638911676970658517983554125872785114074217018049025750784212491020474512322722801784217124673400657053597421571717855179858336898609432856705842639430702375230902070337251090614886194324274517981156246864741687617114926142711368744680993149711770540835439086458987746278237835114317678058578907971412906409802102692718727445996773563870546504938109551890615492919405711625829267904830956678329039370965328537364306199770971996488588141104774458982925613611120326184412773123579306329692337533251372690876888230641067465030997814812008915193322601346081764116433138729629888051834472285890273721880547979880161138633669633303358133180286411382314260587710271272996550852805397484526610258400563772798642149849806632429455890782921352055577884630704015384716597793352318605381025061771164286758199715512429196929622454284218923781508532910097340749048334925808757237382413811661925673451843259909676350484767751304379397480020401825773222140067905651894512020014560426813871297942529278149685479926840300171024880963775811689530875581323616606370982036657563247424826306232309018657629530019649888055487700288728609375954108485883087964541798480124766351978050189088237252974335049104406301676396866018472870273455325971867847416668823734051742775552902919809266013196200211294834745743155874079746357940765512308707967871831261826430876625047870822539123306675973393063041232549877084642717165168796661079625253189971582576457930664143821102474657556294627717850753691889631234583808778719580394826524528429280946156635546865388229467796752592793263660447306851305476813209125255769228395502593441135570338292376610785137482135197472832199142091816114413242636486866474748387038010265451609371706274100316956421491499618812003897420480908515440735709771301751023259086100738324661708736207242783357824279451824340559773678837713006053584436637957647813432463292334986830269624342257905255181617446120317850727810877934921220163985647684794943680238189143519518822295733171960658862973834500993124540424815764131295291539972297910744168570535322148713369962244968154650474624485828284710730476146065718789466015763921351627714536181618444851497995096965548176709342162154685934223769626786460544328107509544633068751338391210251427436043526081033678974396658474376078027660825482868365687514069696567571371812370396687131282403561971369990331260876315633604908543422908775274419958758124471087557266934970741328281659594647962136203913771003921812869763275835500876521153929469117603431058956309642669286794296986146428321207893288336018480986242626939323489316196130839167206217585644898293608964482866483878239316815676215475079398674298318192453927956464583175590538959022573076933745166609550826081918062173653607654731122712785692762099524005930374683841113217721003517563795586147321807314178005662864681563264776694970271049989409376982248091949997154238677318105136542143596348627464284490324623101973293414253021239018996821845866412237030722812336599304251088398139743720804136724183963504491438869105817284990210051992887024119245237942539489192264408648095304448700222299207592476554392107806915573425070683582430259493543845845147864275052012484268539587463583776142509635629311035739243011139278435247562263349450052062026162128045395375420073757025482693435214234773681645664312751719808254073918270823989700992204659859531965852343577920539019963881366472771643218012573547911584887364978071495922959022896582056956822431214769954196580965635701914354713121763848805736780453942147510094265838500527631197260729047134840721822289763001368419037693608383049889440987805724510886334352936046451234811846923147838958979025983676570311576925402318939915436515354198403898306212823338049406589148027525647522800324858540908669490856411950260661663932556006557637715572202774931934460612964007450403803202683509068917435451871225447576376377293718486626823071383740577467294286642990347652852343028007604418704534618931132020793397503428167713439164664602222849811531259937934447243548029030466832048942273227395176662246383855035786861839078929735129781391472913401511471112996623608835694613543723735070880761851904381385291686403533057194502848666524796754567036766152086267908862047336381216577859222455440105630226134293156182290630359765347533567522773321232947999269202914618514868065943660479075140036835924720103626328482555349114941565144353750737863365758116129696386264718447710010508455930115034520675556673869715567680535802220272715988754695241639495600861125533274983697581191120541219285401691324362906104121416704463319647627792181059339342653872558483596871585228146083338163390181950151993747117764154146641060891703207831169957603510040652421938214515445027107643139089348605111745469732526811573881303304549512363534238854337578737774613798898146533551634890790678610635117748191931515032931123180859299777876274666267436669853078966735403421587658661997863673977543890949334032330741293278139876916692812484589516139400636086502657604667507706136069876015227439895824542896002667835523110336783962141691733757718611207473484424537888492883619132878703819360149453762185108424531056039185566727711661072687731675358373294167768003539856403239028937610423111354870874036041492612449086417438705368385313410421066100361572541921954129703690916071916275485404523253833399470259030983921206130850579097380005507083141260334557716443764515087516479944164798973520116378709489231043509511475200430982313009051762782937088165727063871250511156768920498414317503678263882263564672664622620016582932473827838806721178913577801681414287361567843138052444119343185198679334984186065197100137599166790612735599319979007032690861777516300392095075334329379144085856737220371189787623278012660130418892475075963398255454127469024654747709441809260961726461516104306946915558558419330999202069198872324442152738051595521380890027267908364180898186346421680953977837054930479186622097415716234109589792572994882400557913926386742810701595935924644948233964610560723448463649692625126934105570703074724248621371686764133148003767547031543986696771516654050128900041775280079194306259624772748618836933846477870946969605473092214758202110892594791811452925231703869353668253180079811291242847399605257546691010969876013044147706444969530133428725055721045605372015949729551021588041577891411941800410483645400549300581465995422586450598692345374537527308639468153893428072736239767482992461344589325706522212478493464169576389279282464715518136928390981961355653157357108383787341870418184372339706373116050029892877033585541735870542276124237281341915451744765553051421812761765426951334782565096535300244792891619897835480583396045594526684181831824304294718907130138431704503844092648637271267705712023766019943934621114718221256324838397702121214421924379066360425032953267279117433362276383274303168160184951276519951355309986702896954555389343982234450115955218140678171193934041022791519973094832824541867611422901749397231490810961298327459541173757707563071328173804614282437495386984105040957935782911769123527845015473039408624275932224508834495098066928548129778509308752669091376749407717560137473387025032874614612969168416184594197902761280545694616273741977413743514695271665040983455762424577106788304339516274482576396679426596742779325490319039809167235764035734741946485161466569831727034240027277790781819951418656978667692527255445052553815194172696721069671232758700505284007304779141763187186123280703063323073655889811675840506115230989017683888655925788732298009379951585100687705580631726795450072270052011938669869440055148405314831953703844766189854207593561941283834442685286347439724840727547868570685384243859726783285431198232308869329149566095198229729590510300605880319913043171460928377357866255289419885154449750142043599655045916536115182283025836504191340441399084848774892338897551813213120546481425371383824573539821448618204309258303343448806487773930951848099476013667628191771153389792620988930154866612915359934067274901274007406953521869889063655076949917065935825707269242568139161319330652191735934182590658388186600508246848923356852104716902199399630861361832698111429077522119634832479295272849678079592624443303387355161749386269064121008346698149604726655925491372039863341049404512972217103744650101373992673448570335792181146553601143884007679193249559252667542765861838895807517970820863467793346934789408751631386040548451112233904602356342441760418181239669422549434167741977933109198048434434523435170257605614835324875852436958221136800773359896776180400739587805857702470333402237516911630256798512112764612514304771849685606858057207681678318714656697329219497013491844884813525768971146843019962956469776762166403810337830064224190393409791987587879248628253160238276319414072578929683673712199065617301223167435725590704277035968164430170063998295036443310114538250104678052612275061281853390801417922216768232605465742918110106331205811457755641829157601492136610016920437109395919762972624814054285821386404569184226098530678425592892304013491133540814773075040679948449200105583026048963358791146573072292406832503001954658890251598598320655738980585598111872337233027136866954185832689579826300641066441303343734028837242855402849986153373980780146800368079565033873611797256834007804398537561308455460495485607402312747018773707973266781013323286133825377597154936444459610648592779044633877215524785859038959969562259038040378945642987524567277947170524813168122193532057589717645871331647344740490271391306279371436467260169932854920470605273561252417058484073396807172356870792666975334330782153287635108775388483486499480393767658503266607365563523993721724486491834970813632891591727502521582432936158154305467432125255300310288829075346816800048858711400109743098534951462276148141469345332345726690222244543626080884247027412765423473660963924065177367568685220897553984718147134834862249122654014789166392405694687425819218825356926693075124812126874817118982176048640701014991075596743540952522615723359216842038054753647301950836954969930640088994339434214873807205588562073753230361332504147694552782485104180960019169138444463520804487798445735984484896323914835825304090529685100459626621178673423000870986923299329784890566396130002830584231710765544686590168935032201856012953002483145756391621843818649276679256360638891669173732787771280749402224488283735117813888182356942266534207431757845474243838299865480208205985702873959193040116414096366014792321945888125658907642258080929802822820729732433526504579920156747457279595646614619562600019021694823761579926912625623475861897627021877223921669699732724623146590136771844781902027084122511544239452819440993489402890770579959559851914438837630702213442258565135200040322386887090586018637004915091217491920165811695443591161972554390162320505133101986266599782352111214204901357157977602593390185352254456879325324364346630915087882574275596639318344147658424274451478839921068530102317089080877874393111773671520065415870856026135605309469498448419836051905807323730620227072295758876112782190312593821130156698602076563747952867545347488125304421556870404148907186079465803821293373677541683901016902038034895990948990861249442361784562264032325827090306615604137377759492318777570615935754542473367575717936397688377991470854668244826866720285830075826848382803711390334777474051823511718375530748358819360240813357602749696354545448642876688632808368812497175968238500117874315651847831462937771775696943587172882360267422325789704645080853685232430139998333461649203242964139226497306788816744730632544869221731412906545079438925727630608127767271230546322439774879462442232637570221670918148083334272347191352339985416033269359126900973719322445351275148549968055002538917440123700310377657874846416716436683585790164176816467094941410787498227085527693888171113736734622987929087409856146769368789816651504388540775596034821054240750824604789520242493440829666414630535842254594706896916623035103924347129006481585084668226265337249665580519604163486826201377419158776765693706526147825557294310500877008587959643768941246573055472848979566781874142031109145538716925196697532536836909196502366135893559914656296420151766877497577656548268925144383544447622385620709940133004970301214610929236770161967862880975567446462563267755643901134173070412799122808442408070293128666566963678889756700939632439091621247736303654743744781389999299040783641705949327536622182047945797346665087925009720897681094266139778098274277689365302181799034658216904536848009061879552144977805133062975555886582506462793455345337466394650728969429994051499764748550376209581793688639796602810930185837466552164899304983152522556171174241160780153655949586401648257100545422152529975935342558908457277547628290200294466422455301715505405279681242551288272521837420146284914215026151111744064813019569426800814476974741581690004869995136355489222513456609239059124912258205210769330686119781294456351083553559900813929758235628705503360074746954878093894474980425739575310244705271391262882807118616666135269252771881694648127787361807672642352589689058024352006873661148515597274511693127419147661802946136562799504199996501100602954990785148122891879864678520302403505395877725726868563301545796739276037293159173423643484778398643918343626507762813494748258961673149028546520273463737307842180621712651517998323587454064997220884992005502098388145301217473563289237877900057151094264309261693702138082310335400793738994569316792255993469556369868450857878862143096911702791764768817113498299492434621742010604925853912632542556627118274758362021579240882192066507746125990518215165158300367400731592367026600473075924560114512283525896450288219890929139701486185821192900078927662942497657914685349071972348616537292170888790057009658739977893924965041591620738826933112831773082570730054649175569305696866475287353891858610171413955123040710420487903305297611392920360301689246142918077577503080919342074121148148167108364487545597374958911432601375786427899796126261970696558091680327513887829049218446018546980142499944019224790305447092518451399015994014569375170805469633453961993345191710736942134748466673752260653257685701711649067448149741072432708176797927858505299508764016464361397942449773985750478552420442238550511732777707062550371084965973119894273446640702001656714646633735845113124264325130018816583223584384769294759611533994169213822462563886390854833532993233229225969896722122378592581832861730321275721897025760904227726594781295495936603967105075182969848560685989799460647106560617632188654081089187850327378751151172040669016822155235334569253725555519215584569179324850774385462439604430281378234426671943813079622489281096211626088934965961859341995279881724605910038350593378306240657654354796895316540427851752547328267142292182302663756412413021207814558801938957757253261666255179188832237605881955062845289557580467016502133485845769816405938284910942207578227802679323259437464203315448163833131213018153557694833975538292534725263628450107368838242302795370228484194925709517910633318855373086165220636461369211510177871264406879415981080000059485700247263790471990784090098330375319137152389139674463943177465506082732739191702078301707747417960189847127617960625792518935923291299841105269814205635155352745981222346273696487990209384222359235573529553934569369218967507274614250174592918807045739144984577917879679395107494087103320394490708888630071505119774437975855148525393036124029955363601665248608358205001360591012212549569522123469789897430348405973123744693462820931867744633292737745437513564579418776856237986167381318581920949385463312163037524101162884950676982704614612428203530115684984815667431314223749666211734929367881748219720721086616743141125802283222683001794193505336177151632455079179120463054463430901913535101707925118346285552418236711526720032676253837788810694704192195098343549148326218103786795430363903447584493755278791702860738897359419312976047180784149366353454137029159119898623433481722827325702613723712799967337326105094115194325572785005604504699639588151030970811622831974898626819278464097209685123794970919637997668854971360692040899114950504966515075427554430598133557505986722521119886367416766411010918806917132543261138016823713292673073337646596513672699475568107049430615358004494784520239317619812868828034010642623206329026998838395386691137271053810515483827954645915519059155931487395093701857051728123834004926880533455565949432140228914297936345469570839931644205625594847589853958579193333281261927151838844815364954917417627234166216212408618519576905609532295361731601851395320461623497496181036531076909823423943175632685338802395566685435139591914673160908775555116754415136610512255861960563899525063944194248083431716462809054034113060254773570610943634292360788532913895051937298603278865415568498369589054156668079251574603533742371716762061403197597153673015346920577049977984112127021287377094466131297441809615570149643519368313943461795137450951002599741564017176247254547715524665740753705445050786484612127127140391224420345068049598573267058975627372288481060333945874912323176625842811857881361916860052235821347156084158237201281243836717957126457351706454570437548144435565633580640857086918547754372542191225751521554591027478963854492846895773399098766282109364173369200314452739952834826962710000723804181755672246808499660560650296529040134543422799847978431592286597605124973335321731880234994053797268189639002785789317637788597828804087215816942261255990825703479600037551856993926274233179608683208098513360719496113210086194800741704470997276013033760193671245997162134580228020505009991448155390650057640294589507175723377727516254396938365918760972359782273581516302761719311623843971753501424339196769413443745194815719842572506998164943625783934720156683065169304674232121808210664570259736750923260142084629995031106894879668506438777016206884292261617081468538326054607011523073990646415275518134269190766392484670565136250863523835191736497402226948222288814223070656152181553922332355176364014568575610180323820353987516303755178350949586008423788788083107912616078203481923232904106321597362705413802456451758839423059873263555646780075811879510584128556997649351514620496336874706324106279969012751041652793234105878009893736843895917495989752313500583166160348974314095580616521798373240211757228008378835302503497504692086854543048084314867874151668329596754310336166185236086650965622299164675666931174938247392970741549069783957635435912537572178472879905712978187410274017380112950508420159966644028030840148261579121026075404684670930357657618324457650894042213636494224358640987681482367351005319834475289839479824023906752075780659892692505458583854742364306433733375405083008044633029188107784485187364848750658257093588395560425827893403428688857123329971029875543356896559491382826072802306235377426525689161107972379326150111916828047667739233894867836988253878732508843659804937711621500402721526771177791377846776182404672376099729667046790342770411937778814538632909749093479176873149987920658125997139633949696890807721686007672284683870407063151670774752325455197096417055700578104293373049304683540458147579780347445700995667528100546840340951385097542570694020459874454051468877967451920791048543653919928285594774463456021360789867391160980579608278387477398675038397979578548574355854492339687322265610426644069712733799215943558540821735276700231633987054302147486288617138362524774008129864763777876832534576735956565337878360273297735542245533294457554106764545768996720267336383162089600876301186823667094665387616975572238741988263678702009648942018363300729979665132173972255219319330739612873009372973898650025647397127414939627114564870546683171811650947066305559532686242178673029730057486548713694799558990418127552021985844101201301975426019871799844460332605063466251923348064151192973274507178735212745542547412075638633066260701081182338226811719264198574090452514724900667301863978357943084847956920264197306432122041144089967531286590311927000073968293081843398510526524457697261455616894722369560408505278490633894082839330813086263178849922146323652078030543545168701489708350689610178466523537051760076789224598742495446529275217746499892529613735980555714436859235752767873996053561454538612615319422670922053848145645410659072575315512181274383456857853060320351618827082931141798537433213537983388991201609886043776347329929314228586812793162434230808184777598770059805722906047469516612458426113857707900549344836158104091343467775376036147206053354486928133897872474760625220939676062970057987083694745214407872400751931949520783126456265596056480373041957351618305184044674602382613224997540569242861240618209982359474942444622324247288452660158762696790957074066141425716509552194337040204192902765184216971550168753370419634594662838221053805130879575430697769007951006974525665865100841584809206781677275510880838200580940582454731909588231535079699642622422638114042276692873291634697294805032529593723419766855881211435609303038758967978150958666518413618672671172390004121942754108982343954709497564092017273490252988400314311869262496150809145080496578938408704707363832167203708648367434439562796344223625309885076370441759223917604999264386489114220445252799404692863756646716042661385449321605955730817924231316728788670575899007303099965932210354619575440651573045916939539764145741243299246430403626710847805092134255735351939326011040697821392741354291981718469472414257453204728410519276160652523186419514148720274593074486068713242324875165811916335968783541850788530464999349822629361168961473342769917483442280251522417842799655198788478769040541249224775175949210639958060218906822497439597655245902037838011012241194547672119086643471398481429233739358608685132874832224530504923286525858976454572355047860101347905864730337048623065145529900638564944382089345593543068514095346380696804003701841873139568301413687707611098922703330373980618932066281665880746002783151163108306335641020446042624021888614066805919069370314562502003486734758291375264298215944425888786833940899835402356159232935851519959771268691384727721841256100370297351713556134404362306831733244657768051473952799028575058729460578099190383162713928358423035821494749760219420280900491401931196177247704510300447754531859560076897385800827387630528708430106940761150135593823758157205840364977338543546987779063626654940126201722654789365701524394896284765274180922457238373740577646907430790638426344891033304020965332306226594553555816570066732578712485885910035184086482658623394125071668197075681025916391485731687525972912403684556002019136086621790948361419441315570994749142336839464079977064535811567758607971823482570944576493056247001853009604972723538118592851769608017528862680965647929185735272019218980881916424686535347570870828135319861957059323901840077723034564294487737356509806262761994452583973633722061685911079128643724251457256636042641238694154436868489553907098240512669351699387243691274769883752954502332643213410821161882318711672056543220558175668146106183026227525859394018817072699143350896353823075732249854086211016184193902161336442233250052310611690474675429894853038525489566137966076913049031812530800817451526536483331041179797968274482116353501877240111634644954127817066535517292472214374777590908409096482164815775278339103470274679625536499592174146264092161468347041129316468376214393037365023035035985766053386584857046554301223028001188784603932755762296469272941409724078343832947067203475339354623737327449191360636763602538766373174920556765296610509618646832591720284962180341743505213872932563772972025355791004574161735547525111232197594056703726631281153922555173087677263469400156882036680724575834496673061603490689170721680507997492244377791811338907899222264413094689734922101914454025208722277348677028190865483295913869848081234676778324190305337572589160395829165292087497102142484457738346209041270135637836198899628310352981296143343462213968629670074292001468210760484744929215180197999638837030216339498918923732310725507783403322986226932834687664661465792938087242258544170772094558848038194297002545471666831660541190468979847644742873024576194981506330512583231665346702270861566481304575747411785601142562050982257084372387614661415852002753827036336889200309123256400039086569373629993609991988970004214968030470312082674750029858829581844413970492878277648233995631014013801210932387061513522916383968268796930364017044689087837418425711390838487775199857248700635609721449512871223607981367759069828236567865029531791402016629562146087948625240479896123875969690217248009974583869533775013227357439130507409426167244247378790315311411032144838758127341751783882336838783743362057669994604846397994218365623148468169498436919431874088408205864014841510865731097194234638916309568810234500962789228280163933223802019225374917177972819696502493920149881352821492569621570533619817276434063993254258572762377734666852116121561510059788575605371785444307828491980930768096632498940174817898076652046564262661127255942446813236009564978118521391388331701749788158747406324631943693423739154346591296723123003402942710470173553913992839625316436281201585113091926251216813809316390139171794914896491974219079249669295331489301781813393486184332780215945050099198307573370815742915064174690013619893976221986969964025694549520182880068658552558185374099313783189726268126513584879476077494299439751970420631666478507415038526418501372044753116390954854606870336034361041882179920573568451649539981827692495710788408998783904526890979831644352309655549915996243026037098773990928425271331193215708711847953263337108039923439442674892665251791897051151857914431681761000147455908204327420291827232436866480398090521320084219140205836750044100871031901868073495583486290367666219878589383106601832576933645613114277646738991403061551359681319237490656385277171230479711215343675957411477322252516422121733866611400606293621064746298320589387581709999155544353172949732886021591004715059903209224117449547437016887800051373795282235357697068451931174332608923814022277846366663702559160176419283116700584771156713419886377969980403122963980136381690586615892316143937671918454992082209868379625116739343591276657437588482115335781847328768144901200948086052762839541536669255802828117992613720060365736924943016995513440419552139834557007721819904884198868869638183461740324946777981295053550137218720997934032157061120972351634945104598187116336536600337240085504903087448364127635313469403570930932233804319871670718428136677652716465110127891527334109401700457955698742572622257136020173229820778155599210076703143785299094874014661832531453774601722680296909024607433096486992536998469837717655097720559504504522848158847153398329063383072801591031854198777645645725998236178471229903233611940215675694663854253309823122101214853645332708941729336219420853633081017741372758979772134959582720420112881329712581670384777292826517920695080761397570343642780263550945784859511925750109227946432325616759218548297918354909135201662157844255265967816465640887704872435265112836112529143983454225882257839938461932931351523955948794377526944519720738037014844107241983598675369026448995786454755839416612236681476315364412897939209150599795476952582130885197350803726465036125457988763730596506815210356533280062881185526131904933630044124066902120004835224890269034285348512526193203228665727863811937203407371139161894468905091665970205262824240688759705526362911095895306919932696941606143735954527975779443065662624512664615616726805300578377014198590880866093185265386452400754086871444515934788719607312033482853026988713659841106134459545246571174390616081406667824105232130388531189172344219212042425041645512866493704934221049666015016305507386860684775291854278195855586193362218352106688294764997288040912850114832056634304745322012453478103895013838729403549192393836347965999559306245520514644373818393536508906719082532465834196782414678974720427149040472697027550135685861720613854002557530048246269351941612484691021719464248104216090668814141526623382858008818040525221432290579193377044436393743440253148195747483670185105041768539089023498279380359340154733175895334847518039810150844246037509467222809598543989512701138592928426064607081932299896258161444174496546563496850735741787378950206534934835214138805389780375846703829800233018033600402965800232472400101317420348343227810248587951120541748022941752201794690294768223859297836678124286739041024817024914565349083652565805616949418191408296084420085957074413454628322564518443823879530492179407868011972672827586360422983463212957056413931882028247116377782544224053066610922661958578657605400505257059036657876723516256538911845416578042593434941924953972438086062370567064557804093620137833547356689082520091415310795224386276024775402075714164233445720660387784712858541329777441148185996515958136331794734886413013805934500700770527270861527380560788221333777513782893314468278348919786310637796211332461174738436892171887365760137463851239819197934748890475028266803614716837787069299733732856232338843513445303317265732403572922519682431641503729415907343181799716313148903732163302017001457539636490283581462024085050686824428947826589383530731054507377660584989295929609784258645333580456030932065926393611744277587932604176950048453685745004234900780461181307867191476740811186386026781783281321729199654724514284317641469534056905858072306513881754453325159906562679375490088917911864565866203732773600345753799521449942442037744045805314793512091508667036518218446268602135543239161054902202371118238465743430845731026487864864138620283368269342496161884462050081215984063258907523892360523879538063276584005285942812484712828002185087482886293042872134035246704988884587042010346363397715800318182348642521054352123516140958314991218799826052853783941355232631832131631318176907471333553793161539814376812675666934577667579128924748795228531056455259495224788259861099495939730707008893173469499151354479761870391519699266833266087553093280594945306768343925717800595795610706428604924678514653447725176595341657251036273132542062506483205554032205230224157762821614445350244193814510788290050462730189116404697456198746987423954462290389655047433624349745330258801385717929917002509930376018246029139695598669721284077822258802007737428096981784231576836675803781269972351520884504247623394092730951318558935348800010887490735374071746321226044714596926732824715725342921715625880829120999219538786251568808812616966004001238142481504018189187819551057243546070346356894225861833443322351451111790209424616980678720491767370419152652288027584420797090071699754274376933965068181960391169109053857964574148110996849620481475955309340068520806839075504638400842645490065521216859628273462712665223869669859161360377451986956051773116290034993859264389505278216070269621278563137356636342699044220549862833935746585422125505131529126551778245129641901414417696945193251596589571224359633129561276484524427764686317685630049063546267411470855093030800619269222899671783596291650821973146080540567847248995715658821669324761345201972408015181429455200251831531452535552658569086769322276928279081979752791877243050006308492953793200462802973603124419660858708124844409939886043573681854436125742414744600688913832894198290781088975612175416385953746056785108230431026510897480684559558946303814560901880779204184895495746539132004133151420461795137827173162302898402826984824143887295506853707449728569465897594537040499937649505933871749791850407826107694889905697179693618619632044508936782353388535548881430496417942620811449065137959200931643205738934621348171285522456452811184816128092650463366685336985430134022675049070218577975034018912993727466778332274965000864755522124343107869669229342942024808555035035965167789876582856844977917397552787262449747637652539064297450014513563068566812621705792194262023086577839793450901852441496762213681673697024073171269736454329939707055596374239791371785300136618976621079786069454256885496243872902092271844432669798662031635303955441951474644971434591647690298002326248893412201806035974820204500188569609631635128246860057876645342970740893650445135456944742398261081551373470226391857369022495650925811797804700087586810186826913970880363249458319189198431485339831980653098537609139973811827055367312540020640496173047152355004758453672690480036081777787271457031650748851099901127082521862572246178519776191457953549888505208269963301931241353888439288277154767912780500553388066562371307409250532071868397155400841821525872445819187467151727139149515293891029670663599001894921241018338818892551004828528458940097566153920837417407686738179377050484585457376248316389271947215091890558269931074870494159765056576878256104338177258062981576851426392601765897686069131781965852132705172769071211724037545918536935166580243526177282861126071009632181872185102943429351318498378212570622531033646777014131327385383289444715618923166881461064117746193361092469611526540209401642931132516672723950123443303025397702329745163033629172379267460241405849136488056941787258349577042226784772420444712890847506707148071012870698830615714660843301383738553428571642998301258963050730169155247400507733827606102552140928095755357537726367876620701836490466476920610791181112960873697621862976529571238387665218035122113443570369197683201158236006904968253515453443078874850256523325803372494432643425579865879521816267063855725128166502038114934954364852777146422364047270288300756175533883915938178232553068370414248968291322522305116261726707309625693896453620981206795400018629654495612498770043281836130445880639291928567268328447254954391646507413210046864790963793847286608615686224494829662741529666541664659971574935172753894169601200204899667299504532815005562188699242749955276375356911101638263006535326853371099454389053808580812484705309017791480781165022971963976785814657300514398955342917791151062576861580673841735468232966548893172803057142678444861084379846441151771437811909924856701100298052023163811815689007423407036549498718688128393981864315553172284077859691222726979759114480556953604201400348404919725056873024393426109970376431001134285725318612563871717071678419867862383097244890631255811198665352456150673532060393194962542645813003879195863312461812392795695289575685624361802332257187213878578284782644350550635187361773381026358427554146036159793032451907598625402093058292175098600855541255986400661667332995575520313793167616224353271331246803888862635838678772834098839654818309824179735571869969964464894792602265544619332412123472311692836142742614358531254102198421990782801670832193445437517172570163311529366942125125991190400248371986689421532677210798554122682722885730793749651226628628186119926529216478183807567580607799537070764377004283106796052543144926562940333372144783772286875816084886625583350978920373537283649427152378011263127776944532821937060939434402023579777820900582166884616904099326598629389348407533048821365637885616955773157814522685727108549252734516932075409845084073164364580873404192096708728739394348583501752637752032962360800360167538240069732336702247998593199642233792516443885666028838749015004901873561711977381099544550802348022283325220609504445277070727835655415565224393376381434798121617285520443730831352258127481504227959296980328655874804024433700534068196830384436738397819937548804425030337883315104086759019033426286856245853544938034299611318909563705385435449181401473004097450754031678400140810096300894576001021601620038451895269957779854796965041906185266425921256727967915178068008657916669984047622740061165655368240965048825798000680928137188981431303752600882575022394369703065933505269966871875018944717969041810720374901842798110081087511339667924678701550236381594473142340816379629525207503841832340496041889927785135711811607233993729740387516814852399256355405650138154770437894427220819669115446686957562367735204976417587094521340362820006570216951127385124847654520660350823685500436826015769800638333627163651024020758314863763121264801006721303520893101772397689844026977300254745373922316197113124736085792533057046704651085432047200030715635606715126842086282963194395008017383572013873858550339710282470538904657656066914437786422643732163855541455130542300435571870754189440076514370931140375855069872263421132751358976212195757042453353538554962532283563793983179328824678537418633674670312105136796513030728167811539488199459449491742901255423282973537194257328335395873517219598211163288377454730104481504811236281458197139144140132592908566091644902458062927828183089199313528580786396839152480046374276659799799281008518574720366113124250730095765320241158260274734176770826667914663167959747463500021077198984729244887366810529912080663468080571478346160331509488453830840928795194072271392636048159232622565398118270807767962902712570516924156518130658933372061865134316401254970185834213756313870808220564403803542661643790916317006172701222743003981349271662223018438844941321637931244685400467282997454661574715732918897965633020779905799963084347465396645710661110226312446773064199522839098734813018899119885179253390538261984320997454992762940639921992746084505127072794964193207399635832600577790896683169675756627344011777524326340157136998202867087636594930366688586744688415204608951418627502123992922003372669193076754402110035100815066660333398922030768601226361216010093364478024371847148964246257166049877439159725293141700827738299721130741532289949487894998638971364222127233114785909042246823716456567011807014945847906338184085133431330393191591375775634176534098255708537129086035969980825021031422946786633062994355319886108489712967474529844071684107081814667657905064193766597242077391478139044130387899665071533516206478532253341112745697799387081224522083641652968799686167335181560574248711772662126313994095830176949815605362343250759813241104467665084510641340495755931340504840834908605046452512008965603471379042042597830036968001219496059206742171933092364857665728505329175544855103789327068832947423034969574981797045383405575114379806672386302007950622651809315062173777016628769209665849763138008304697099309691186339652149153890598195876104576814927913392257350699126873838619732151399090139566373484950632147098176067927029428486208693445025753694760379609832729844145692095794428219714548918804936122963127898388058839382331183615176358790961191366558357984078080463827444044776900516618701761283067826684138688916509513733208705360854501373061086147095969247625215999599453880633928008779836520601568081155048846774359754508705266558859090145402193990303570472700193239922650032541363943880106390360942088645013200488496441275579842744802485407911696028656487153453575494341927085469970619886780096238248213138582623584509411353098450293796312819181773570133585480003231111580716938979871100988522046472747942244433846485522178548937797835454898819393769088789345025122055296913160655623161653094100909068126814548145859139529270191996487135766114678817916118032601991288136049422494429192659839278525044637945250303115427453622881528752136700301021578221983659062272206217189875708890596094468089751638020876422792892998313665510801872894370930566843914696041405857241801399300493808684655600613148455907522268049246710140166417133394377275004242159649213009927530386262782079710643343508044581722603546951067214229984982511834510917073279859295946019855750910185978960142919869055888091286738344913110898330809501157128868349602951225007848659394373060722306016384358780328337202678042430616230731317661634970100243664287946476665249115635171320174297200579942161606918582651253034144810554895757494234058935561373150959610103561903398301136576252308044878021999014756879565299933810436742057574294783236637002567495923522313705343697127548078480011742821364593365379128384806921127120041313063118192504930191157299527272883624169024818845381685778080271601638840857882146815074738134668878162981536632916972547036677136267654108502282875504263139027214773359957035081186713687515904686097524080085411042610325393323925708834875447519420497548633363379971604648644803366416476631927761873751020459376214109026079538254131191943683761419882723528937806340257660574114937593108526966539989083872350290617252633803807671123751448133967196275183032586853045279117567659638779727172690219127508391582110853312977569952087491567981356174416560894198195622564012813043579712109905848105059715858128500726299895589023525522959729929702274277251825447240017759192628830787919773938306046894306730665557318009857809683423480222152869965184307789064986966667533690044043060014524607137688250139978795172273248409620803215077191266040101913579915721449979086224050456920578329428766837241360663853084250279639078895053935434160583956579847470718077247954091642828184623914875846465084044612681461595530707560077665525515551943953943460839604654127385538610538081287590676493385966792142205543556534129480983013464797648881037078510763563922799069539567823869954406812937002288700771752745240625668443398635990063407375933700902281785238468314786177669316976387475576906573523660555322862251041421442142501304027169688269408056908311517300446704602796808422300029143096664839035479966098634308423749835265008841934667762768595876178671706302409365459395319313242011130389715162338539199946022662483562622181056005693016121867348596238409056916580536822933164826227535332943248536422076449185230697849855624355706347980203058800084483637207256117123340782855104810597354133740383174687843543284918182540207528756378976682661347633991489114512117138225060685479310816776067556922666544364126898674709253306067146068237615193580211307549513532292764804940921260002131836433404980907327569738577297149023494000603630490624098904929339672002926173507711114054187344016698478352829973665329371677766922126152861461717554433456231337943502369668396875056474210937451302053134762795554266368662051441052211732301380137924799025399196535992561335501212181170572905745081378425784382773360539482832011113481235040761825223993460327259588534553143930502827236761319418080636594977835739881640519124762986533954634363895929847498587514044363766567205342383586501162111568950111619626803157999645319764382010350011928989103764886253206196587681797240695140940663554791220956621086491840193751635148327398091968430638189426702239039370581525591681908370792976211278316208533800890366587960821140912218189850377098691685805091552479434654098562960054629829686777774576542931024658314000755350197314082594069787732133027036461650412074149464396915160838142594652620843157473426384197939557279666029077616105014133823162804356548614874152974683234802828450168131648052706385677808445866921860841998319842194818583354646280912164112573892954651124372237412096653929387721176494877086805479304515517393004698367949537353618082748817596986471343337717442559698980211994620787172769673740117467965252053554717205001032190499828960393167986808217139896363160772248022533235638920474062742608662758400836622962541895282814200462350494748331343977858959356345359449043293668922254197771126697079541674652906357430639654843203259856418222357934156849099659625261231900100992297221656756346148022149316119584869282328503704272218592455555154884874822695451763976185450033525859309610267306735782806054647854882114218195743347751952446634106226410239518933497921879846969689409286199960167486399679795572613378785104777259421004336828711825949319349784032466367534695863104386485139779051624871429122436318709850606861562363367681161039451473730659372180524116651760514737336024475470788121725930524746834792259445534657688449399432428701023364952825669582465514113137923356432716376964186423272877150618053851869478659260624850462364397878001610458928652308079585801079791947437385908029202357597286227788663187410242228706058839504798997770738547029541908299354093301981417254070324510724953129695966371879016744795022045998059304240979416462393455710275662113002328760256091792556779825956455937010359447286568580580657341063314454102982751789492655457928900590263467209378479019137690587353901933530417505221487434072032326221582154767489119173144056277183923490992884428201106877026330241896779422288604156104352332571007786997750772392949696332581161922792375636769777613877056302415874269606916180057006354310553700189951679502683351652342700786687192496900618915842598467922557501264297396406398090541886290426857101647562827487109691110650402121555585594329305812148343353961289949461477503494955806875308612811293020925076054490867610273924351851027391425432582160588868589517374358910442574602342543056672797117134546288812858421733854430472962273409577453037057028977468594182934473172156814555944162177829018945225824213531304929558296454078073410317697941932701486791101075654073932196314846959184895322381884500841721866566441436436487555320505481400835708897971593825780615430429476943216159044156818010363417691482005789433235130496287067726007192319671564911118700513524587101604605467328114860859096284095673868964714262554567817550255424941566376090975366689049091086200053070889396506941991922968214320523389466391323791207366769270373213201938520636739509045836299593434056271581185382745350708250382438862789520822602651102896812640714299378579860190152121129446890520331814465676461970047469735821586791297676971145791526711915795844702948368491029351407278539635153157610825427619927945792993450156719013302489317425368042034130944296471135179039308238854721928957324928682467845038967928760438540208637852333154083231380098872909454879594185797426322565463074937055322110053534341250224296426940383881791066071497119421329888428238764214994435426010394343610848758510095145631929399345340337553170603262726516703636557811179345846522735206465599434397607308835128547796912226181573113182262806042712461623409536720115233635832073792317015198580330874220063517212370901471343934488458719156744545760473445001201205235136297320758781805183973522797086454063747870349770078366137823743746684142300228241818947667566695655351044909860446201307402299715612921285516059615783019158648515960797172737022251604274264710623793100515343171987447027323697228247883827858470186359620487767745214829027970684516121933354842636198701891116165361470983884813929088181049688163672695561575361598764615576357812231905400231323249588842080550601055729141055320832154012168635265222391922147329723540595312509764873017468209057300692977706978227759918420038693981471473743228677055406474870814237052772069821998179407012333313117006618724720650473589888979328437778190679564650890690990134555845039748434152467471539526858628357786140079935001065482087917126032349914370193289919916077413502263094445844048002022506236311131620495992182385318207708128248039232500997664691113496970889873138375848670217784603542407216874593818835084069144922307304279285235322541990848716381062701495140380377847313622535891672573097372362760758122362522831900215060365391172217887800898116082962112194443690473423014066492939779627833584416252984582916890742709754749299688370541765122689884543836466818987788704344415618406379695466559421715346528178886781524155541916414079494733966146761239111523628840421126709160828493117926444795291384553875630885243425415760597570310167800176691653952862824840708855583024375095089534143296635893663467433091279693958422808852962327039642753997609936133520125445466059478794217154900666517331455248004365635086386052019298954067986936949343866444530771228746798022350953403755323527585828300077242607469747399647063033892011434365982016004003009302732882026713145412472560750461036702118594520382216969525915534445920837119668569392758098208800619323707667873364242807818828960537849806780685291360976902665465844416970965490410439800829000877631194420814697140802701655406162350864802201205758228083280159906074338681478651072476259213309772216493541022286579985020848453324964661073453825735763751452942499413761822794981344255541336343253697840855873065474324553007263411997770246665624748390287394598970947170094449182642560310461326201800719335839461197340348399261643447785980208579469903953354715639255601289798063110222665860543681319361451279145712992293529056408764060314133559004465805885936740203745461260624609330839125452109032527394652038026251558137150828390120378361134489598965636558871435068084595457295509630413150644929214230630102126133716162969632502853465040839623397825519963470487170790822125573400642943075323928571656182982743886598029699307017356369332599105564918529900789581485584692317690817017525527414349519039985912922646229980901901956387643953686991032107875486046064574218997639912467054225391106702285173497103114873279302494172451659068175777208186530684782946329559483098357138430051063117453709459961552539796886159033060095779314540754795668511714001846406800759296161654583397964296237249486918017187711397067656765868050159894664514257784835803661174506546742221531082910271196806441580219288873089394902907310397360001396003347686063759930460478249538195616256002339482926944532881538017060637226542425440383210313546341752131356192564736617634753197548942600436695012734997269189475087947212115474628969196135971736251474380460571446619163685999211137613814749574156367578922731336068362011688340317505046441121086562649653684001946077516026924919739785421206675337198707363791909524043718274163831124182332353898896773493679798629151956381511230358232058284734692867039775558180799544256097574650683533051865101295219108097644871130147075691825362352013774218091645067092646648958497511708275720700405869237217408048240780696440843623976377151109513187178889886181725879238528613862327170696601720485881636047335637955676533512981012022990880270208274364364793719669019073990404194371254536563177047330150638866491486282164083693627462318306395978947705779734810240800939899994319653478061437785590118393621401396445504921954537671390409502803405252768926979790429471062521010331143800656938590736096159093632240627375050203658109584235698985184962215674974599323647309242319660288023534232685148765339481706087887238524815139695057435978351296956088521103960530421380248225979741353539663680765000509832460002086513714784043380578732416252256303645550764413728243626401454537192713574834719443557542314406317713123542670574991932815484843217490150626127197192432385086704985299332619106054885885204086224686425844543408738800956064993271181036519788884368403122827127289836819264262849849195890974032320753477733828727925293673421825219820071777180372657062315221079682830414102825572334860900601242760602017691295833314460095833453235607444130399196841891979581313430590996082342538045969884627192654799478677177488285670190512223396061167791066446707832972726780897843429244122776447606567689501224625138464232789634536922592645639465888238528149495518393732861599386336823279154710485739796023480569100727313850062196655977467712920186290309903238098583238967243948377611567711908194782053500584246573198066995994096569928216716898551175383475987694588425797556237071993813400518198338785461894672626889330418564450522729863736894006571459971842302288103116357781470146523797040214064280028968531246040107009294382971035004708481927044632093327968145439195334732729771423805441955444485960036020140755830211184516856450868342630635104015801239688607664645431891964219631899523491025492510235367527190119986128061153613598190503037383944839787178123499687254170208114188376751678521129163824677543743146513761629531247070085931560079050944910986534497875470407787468186301146054495965776085524797949154038251053958690852018437434310326081884765839594647985593738641152739559689313678632113782341421371052961528618081079015202195405031587809578959604593264705421337931069855799235509335011224923607194446876172869500430136041590892360570849757623265792577630876442989228034151882857182904643864820859637547984474118598592437603544879804192137331069178302786977201483256615390513958172113086995596321590555725702605497503137743682630711018987743025420626863159172582174144326340003661745084734213926897510730657711233533303469542052175768357227111040470621591099937282431492146062143590016342231549510961443756914187127825462106266491485323735514762811551562689380590590976481888216891361018952003082668495914163496953794877942469732513890147020656521432579636989261785049047899849777928806275869457590663285052157588353819177459085837943510924195438875074701184445413297458534533324442063854565813748576704501663914089096169758282582826536133465462735757328072163951968612071117064287463859332353268663843201867810713549569092671531982405368361189465835413824234124004707382922876073467546636962672428782057826446207639680344299275260269113202542455654814322787689313212497655620266957307227246632725741124439242240953446928943729073485186482878541065654601444402043917528797781832890261637504025844795912477742280456740683211531957508083293613383228837079964453590146303230318560173325970467878250593220081903315160728683176896180974868024368560687783599512686787706048903862290658285359180618119459428713955664318551453991140554261222819921056936261213365722309061773683723680748607353791444040394699608929972496115612147590186206358511889051134203933730589223927121211860061376633950109936000068075099867906550111572569707918456940802329314039223088308706669156864932145724246856683018682968615458734813762729492519236836787969033789029793956541814210823726538406572197387921195240396936539531925342772187376835796102218339468780094912309139505754136551348509950920534825359959315500494829402590807941652224577313401416584393682158703165125987346953837936943835758447555730187719961913090924940095604804295380079462403592304023926504830104366841066284247887904889774629563802695950855447559162180868798314400411178009696607018417619563047812713100308345796822636199945154312387248878813421000367677030784037594734227608984718517409917785917033292225865463409072367004815471031791059775466420486384945409875258267353368196590872550330732728325333059072604281468666210402314904541246823317269228602798204473553009575719823509553096907406046255125832145585042537757049247836086303947802361329817604236283611580535475257796452475011952577599008469713872709296486041713936508781497911509163042488890171816189339234045837815838628254809450301780382486793737097457873794774949902566938116297200010205121948479279452033727145269085264096836189711163502025894816440423792501364886525291675503301691787376733620775433297442609753926560865548539885122743284022418015989294160478318987254794544931494191382890366716409009091670143836459422229959599146561528934920308738422683503506701660340135445283070658956870782542433443357555567266970032264081643184099665873266117237515159959397662648244732129878421961898198003810398214799197479202381468674888186517122167682067462851304359952993879886298330376810654983067322510462270970578142897753421352754683384678507303319450449144711499512379697775881787995880070784959345271576388793046090356392451398025373543805502291375457780395471023882386570242516982650760004391987928061208874947711698228432056112468407031287559366685101846457382655616239010192509588460523330118981815007595884425785293312207133186277342887873676848230893756407188756153319005325942848049433413489200003943605936424710191238519675921969912165169643141222777942335055553466680600614648352636161235001883835880015735800967670384772021093110089387581621744089867120955032234868358565684962202026442736461717386667961401054824720619368613391486793587877630236017604607150009135472291102594734848206877997782377652596160228643010083582270179854739155306084448544788851876016262499137158502942555399898896134676601927067482957371123962499889033669609014111216173801084949478322877889149290719800420954706543739530034133333622109056312593554167573393385403668848579473061702557318434807032573474966436680624433477862106386001697368519533398034692399142071655431693985292615838429075144407819346366320096609523941612227448421620283268518164426155823118506504668098698143643996170628062399716386524866961242391377220163912719451773367697060463818536690291000091741226699620113538405111818801673782083982935751762040073134340617212868006955412086775804260011489684172353573994255204282565169645672045188283587119149868476714386427130564975488257032693119404934066167204525951634171135433765803139624095246181195407974477305176887104175666896155032397057475247547609870108798762435351718782903343687881133725126755797316159595195109177922330328341139546510626570846195810303975115925508578002263550120094566673763141408479277225488206990932455989104786223355624217044973517068568530929211252373130338037281493500207889138922596555837114001216219591766176338737420630667386061835012758405753485975811642101780600301422456045566148577939296215757058737834435719196730057766352537390187900385517326858439292779744713738627517605066602128822743681334203074224421173443383836894058606624512428560432914107303173694695307309144019690338448548180604415413815337483188746357386372687836920585260367052532196660321131284955292730486967742884842998087677401499806620495690060855338944691805715273642809157722011068627850134362343890324229282216618750794128672913488681140757891934850136630058296224992435168385002538283164265297367350357161164839306229488667645791273484882247642672775361808413972004616522593380996794685251326484354789298349069569448920381858518475426375171324587099306334851479278953829164680925597220984595447786947983797917791835681655257755426836513541621383803866117126156127167140423098637263871903612455161501920507624075991258153094094318530951743497647008777688424564981968570818760108505945509062560319070152199467483658977133827305802562493501836913689097245394115101275926658963925675834874696997898209754346624918537946658301908722495844824585644802346944077673762811585307956049348634798762035708360905017203629459995539317785305192482215546249188993217952366148817643229384423253617386178435620775612126476044112696981628563797189804007341067189370270301479580990658247164024788079525871978711935862279182319532583171457184688181708351424129518231218465507873372207448761624160633090441124486451342364481230145778448264688645779089869343031759069219352652266711654069938741235955582145047924920247938652672564227330861175025837361022973410261933075114946462136194756791539131057874062554149217477069581756511501314246064960145281856935281567054377758068883651012481150538613644017461002056784938000375104603783790187194603615349836363970368165694051772792831033317228180944136656335817176327410329455723913515400486812935540143535808604357264368609577462168532644286709537704495881811917018560327641497310231855461324764553263662229889710233676492902885184478758959939804548673671204936644837652385956512919435049784192189938089646236125698128951910256771476494431675738138206535209552436970258250260122378897812086372948408619071718785139304100227910261725050598435920345041890249937770123026707671881838236456866825262191090632839311369484644789644390334381615109203527442055557166193822452295375275456880117238418746203436130331067134791012141677998600471590941600845540441637936120112402136694484728538862429555671582233284680932447297993430474382654136559614927921107632349936150547692288266656752029798356572845961277851627470218844396831305425432115174788710816563949359505418755585849371899656256500954120045500343226432039079436281577674623052140274564287353746219140469905082169967814254909317491863008779979394493411133882055399664804054036679374264147471102056973155588856240703585960613979002957996084430940891486710992443863767080730581902109693080372243059854168598526565438889798579609747597358997034306710033790025353222574083783590568603046871412820046475524544461089189381539091480163111439558298882842300986666743223329637463353637014639486436480370033033887646649993053578030561367439084025345843072916606760259648369037112222857327010540568922429943808443396865375746980823174879884841381311125756286350188216539553057428047666799542208682818448612184615266619166833067410938109015617573570563835729920247941442080687539227562046654172358216848445028022146259525523016609908372772738569524383615624876429996964203214702695853165630260427072034812010075509124447151150062906000324311728887692739868359618115120409201798008734469347886301984666145695179822708524655177274734784488015828060235718960326556241967931886099212652940899963843545057793259289509008002730605490476440175937839208004099047243529187420222659958410953257337730675537425653248469108299754746006876864960871030586041805446003943371142299195600554800410116175260256404910588720850173199718857625051900423156601926607984252149668509336631159564303786707676039138338823416595182138397279868692598835385717865997425040042687825973883958570280227066082694106469981195651548597812561932525037074456229835357286294082587141768176800743920926017434900658053551911042405771309825307691663713254899030651126956334893402568285816664873825900657917468458568766036725718206017486182583340424767769327737794902407611311624772866447104862335153557764727475967376011240242041136343573088649863103360439076166711935941907989431191226162264057893673585841808721993351424831973061830733511066315881859371823741244228721338651820578956007449741342689355273643854121915229772949865884349175618216938178480872293944224455388701577345847562336799467629741962897766072500998033233231805803518032666175249536576186964257040066103296396763598132617674169249948991494074715509673363316458407065960288882007971269044638412931236181895492010424332667088176267596979870355679310328253394232390140887061806821888965358527517866391689701246629454660216538225729627057379319641604865836802859404935543318528166713570598921570849814895608699035444090949034330144239721717202367258549996927123842127334466751006359428806282262603685581147850826439105037476548787363724112410649789342997582563461268614589874585020827805502966159528547725148169476537196001876050849299715502218272521289107386501813991220062247135085983647588137753893743097728675688787644408811288831961841307381289590735073475518959661737724451759508292793116042341731116048913207598728916598696405304010239583244902263533827599084628275398223271486160005532044182556504256959290034504263117185449404360688655337530923259586614379253312597008732150377460849527300492853423927173357960335148300233548802793923917134141401757623340496701679807285978870005512344711315492807902516664821321686497346275648378310263470094383791826854534866212808986683059913415916460847365888502385677992563153374681460240623436034045855524424310905162754190558810112714771690757026416217125205984050958516209911994487979508049980077076959036826425132851518977482211375846153538136773611469497648381946650624605566067822942710941893517105234993205141508811467255076124899143782678813519981686565880919626382244804163314120361169025005526369975346519949928689351447770574841937744250817069451620163823919392214691487712810799865996920036879972582306203921128980590867749154053810405620308609907483005320431187717796908938879837817401168659238491425896788308232175636576910043926994461628186017155818816089569074625543787018428597777154588876336745629328611969141975557753836959494507599985083624375542988224820220908234619612460933542998669695076448255863516621569536626199126435928441547878736539771621714335874526529036364694243320633081673994542789661072078869246214558251877983412097600212316572256428571136189347410074575218449530710260112076868893076379589475376856731422554608530016444627303673705261248682505306386537839574699543983594103469656307637328100296687169475445102338816793490824578415568658927764198801423338115783307522376731100872980937859077468619371983745801211192478442477947564645713487528161398358932581068353138023209045506012084244263005521599494497376875668602516761129960244025511974753914656281336694752193411841464473931901223800875418151481031375896531437839506189736771287331154148615981949083040573357525057604732903668467469547426685136377871964999612846887034213845964396434621267945188059943009880313069519227302412591264831231719073688641702901272169046873484717564859887689833185150263984688005259758360915106797358416612415259292990674959755338077727318461366340708474680037110011674263449895860673717563703997717208553432488342375554991238773330814783390769330533929928494900689713499184482609116539790639142633109754100210030784133895005212385241900394515385897178711761143825297407653957517300131858283676652787713264960628951899020055168205935342040075869003988234914496884812648083678121212051934085137082029871178815488107614057128801235129577746434534847342256858597019228835491037572530523774053331111141353977032903355243917272468024372468276638698932105738480266911306551912661564757266637352698076408586996210661823334050313941547284325601981191555316483808724846160806854791423066359643469617915790578316465918246950288630652661442730475559937804745392277577270691897571515527804442441893918322967180243554475189609990174410503420858099336767690438008817082922609794526820859088918546407975384909258819539689569062653779507623803927971017023084920434116101578506871482816462676317708199460340328319850599781896665922588182810135750705774970794164489822257538156942472279424951759820493257183449349903779518341014576672860305939129897454447930625809177992605942411875605126136347578224665578334458592575854342111811077823740947449719862680947285817129814001259851796202549077035254961948796613025424183976420611349911301711040703231479775787804167609451241331036433123626243327563592692454178250737347158355537130313059891599732512351777739498221783440839760519226164611843254824104001643204891761525685321405850170240373886827446543378206137140828638148786746142093667371345336796728172321136277966139932580346959835784388966449621388642207209137021459355977028162889458145171109239236556684396694606694734964506173650136793138220848042776219930930684517470938581131038403042592680734416829577709041293064987429630317362537630965544338463556456191228079861846524891018363265992013043692249689195113304523015115651672855860530445116740926886720670887912260696214760613705108171621705265750099868713052214138165916879997141785245368458822759418130449561836323514568935572993320716602829833746775642961485049391734057596799529111205588656882829890116899730831976397394172446481212275229334265510146226541383643515912591275613804459295811129472805375581825296325942186449199408664207910180792898008932691615469397030031825205689120090890822658226455724973814418594169944871817214853367606389037994371163023761221454697879100236947316064020912315517041100733991393866672272870965553635902235277943182326462209753168187279176811162621592152259063837460921659084567789153192497852779461130495749096371428912879724964410961650845329466868503862588260730672356124249202807441751913028984499726071465215504693611777554479866350753948043204978835257426320832725914409016057331758623296853275783260521969222975864573157551159405497933365639508452987603583930519672732725154773458965732859359259654631452009468808532614794333865170510215660190882392284835621986885617129359245223344539853089956922468776758178417489534330916203302189620435344722169325023823614726438440107878347125142375857824835559410950063019064579612913413046677544740457268505415438664840219023024986980208833526280873130389122968739783031625519976694409580203625131319067811601042334471312076938649081760080304952574125494102304956582058818995972849261026763395706898841601534271591141632541048510014685187517612184468060655433969061914512599204038077240512330721224740659780000761210719408868393505083044356386050811940867452432122799209449033434802450575626889579023727857895419674933365371520633257914645859822657611808076992884595671816063635103252075406423696343266680674908652774765722447593599327330214100723787220746440519308021493291164238872254270713757508452701777858378278479051701144269667483328375374451814797365886151950885268970821322201911199339439515106888857682077038366465800279483153745539519036203018273131766130963329274670073482017459688742730056209009516837366765560227722372632653923568478378148599441532064453027582233845559046237497355759425303094860655628514702997440696039804631848509658711992275292215825003601008657914775929624042755313601809282837055694999822635905781157547407960931760771436161035365539824402893469092102662246079004321187365719763797501532994611807321935424486636263007030921067753507318603773014902889601703828211333407561969985003335846906852780356275231787174065250190896567051982913607765950386424159028718858062166767602373265312513230167058112585330145216881185474298812914282292072265149854837126853839428838167379102157171144275138751424208230822861289451252645947509279976091248627558827409975936110134835475788128777235468453510914524349593219890324846805346284505939351361766104474058582305052682851569548382260092229870521190050692273044891091208461366312894591889829869613658413669414459994447425756346472546232273215872335187686541306365052408192143096576522296203310696986038478811366300819996958805605075824129057029989238721436739575202727848926301320852943972322270362154863546495437124513563855309353873313682156716063842508259684485489836835485490033305837485507075255511380670149905764002055009189608690934545253114464508629987330105068319662433523551709489908958773590105054907393737449996817857837210252008387230166869262876389515117596971882517884819940289622152334802891902720005565089048480208857792751713957265482191553923217260330200322102140362228187897277217265889954261252878617657376635379328986671132270008982079679508438071426612495357187402917461919026764852929552133602230935498174107712070645949568753694134181049112066746119322799842441141941437046384399847395027681118185589119060948833804487650272516751028147266392537020025432440778904437177859479789315651569375986036455772951639092723289156119237812260593342728180823566437775386887708831725963462126034564585861425766111334139128074436614008955545803749120450648505851084204249930706751941712717334293652547459450067447215598912156810055100399777156215726614760278616298559651336748137708211014552619969389300939092090974415230899135844648050023697657481576922508876395456618550103764077278780905834469594940728808359110148709913677448959184260825002417372606573992327661124488547251280218956698489547861810381666994281745494881511731323534414398750565032681200276513032655037220076466634255098445102891770461624151777461197732561400349079717889522257524539851175505967799200083240502275415972838087695628711130329571086472969213200587815694676838150739433890023170579277393473653122717414850788846902243228493191252192506463179046903032322087377365284143313447886683208154500767050287203178953018626933628084493122380344293850916544134696879651368071118113156184051865693328071761529817422696027227847690867515948644161092836631784709433104656939765283249281068045605539020894652177827216311558727193073459561520288268925356774897008960689419767172375238190684095355010059964879359270330640580088545253018530509058845225243867874594081973040879404784785567717791135951840231332483547743606732817035765509730393064024330942657881824687486439453664013775893566440468651683656294931313310293656744315683105526419761952103153634953496212349250494860525434562208274764399361042871763519735781655379624061399315877312554368486617770431523420037461826675325050627196775118810170131835740446676395475923661318403785863656955928705994644650589448432094738710466204694427576648310376635555028017050873250713948564344298558063944652155865263752667774662018411020489408087649359680329088399096385026999661969827213786812592331818676378444561900831215841874248175681867275955371699660217858679999172310075871611538063702665678058582188986277802009457624708236775387202042293181230933533240374482716836097090499407897259909109647798870478717783816369180833700370606373612738837256151284009207345533367776808620491316445130676644395326028760611677940540751851942053012640575408699262992612754006092015204382783029644679658792361900637437430158407186190436218150561123588296587189135872426525081999936164754374270502310941896065242032011467739704386157313765921864990082577289561093548586445321901568109921459260364121338248020349899141259166751078122506345984141064256233209194995023458966439462084636359784149872719910259182179117514039530972053302743115284826863907137676330501035705255616936928527899775159777709453409458899169945525112267957759041019443795348295660540347895492387029807654776449873937470209873970126621699320986262927350757090464949662431313682935199435958349273249620178620755140288339151048714734388999174735213908233302074377533511056015469224369138570900178124952505660655035119047692313094934643801163791253037588605028901124408027980580230283589491898323921432118882146448083048720830907353632621723801812088110108370505018509193084828787243048261239082521529528127842302928378154168150250771147852608396939643855204450722978929088441820058044552406734021525076323943592493715700236232355660471880678700391344267459807199936514270520550601774717487992134097770572362866769100722588862746721897106205592349055082133561788350231386316766660485684950375650034785405930603341716775395574130126571065707138962027728051826132122043810635168721060076561599933799447364478073324826349552009363803864948928588533862496668437085599940215341351729806135177729445374068464589259158615856855960440488168120667101712077662465625066634373176488443065035660706925236434884618358463459707441956782150386444445933500739392625973943679178402672172518349150174638362556727348466483807280398987400575165247544249981720019044963057408292331292085135097376766109216978172291355772307582996281747047231596900793137772141294961184526818432945330885147309776349862633632665590872198022005052383970523487090764432362852235000042990451580306095707207279361211445610554057298303126406998789991443160070459623248857811511211794229016267011531398571662885977295257158321590308993004265219676482162168264673872748085112891054046010971668403105149801715477653936506344523318944839758989357216166988781917327655841892441543001088953686761807248154191097121328050429726874099487430350813151780262521768351778952651787689714465252452925507912739428254656253712215386196449782949492271966906521967657577708579339775836406985916555331764773336004051370035277302625958811659446073269314316238324163842715816803853905859779378195697003033505754526189877187210715347828368116460717107348077233744479346357518869058012652355874685745484763515606894260547506479735203420176856653026779239372607392129231006227430696371506230196912984060930097215774621454791636963241171655705599322359687076215206253070208142969383303731847894948843224618005203125078012303924831261451560131951377254530200124313010572317483146056912685993705824353627866758674456593448474696698665049267552808844509694341580874187425343144151242110285190153085236123313427177616139491702612199661318957145614689533719287432878367365271671700194822352371802822019246793758361974837981909387256494596979455549289613548684164649847835295262398404958299076661920016823447201165473234038774038810615162775018897690140981210019090367376071010618460254060816438368684582822778422738644613791538556657540348488394001620582583946192640462407192107571259310393137878484523328506065206961665601744288733666072357577801169045521328431122621250751956526335024187449460538157244909500440463374150996855437451367843113138800907711589313432156568219167746678591772627536737679469080858857640504270958088025582953111647964526663269844081537245921472212309630237572336826316991303859287359427752849253159638404217530689252490361014513835010259321926029691887314149312942010926720557989345347245473698413321153570570681687763511293956373961395434801431834404692424876626749478271174523430229407795595169313185939695915804676392360507883969752984031484197153664326716980377929431518076327218305877504221040739895046364553397908360797189036518976326725192308699099397160782949875255599561777028479508278847574691013060595368233294992431220801017521809891321202072449336515576096994441156910920087994903192614095423631724781498271596286297934639278662059432673624079740985996276968379303328837435822556699087393224772319265517981657576078055196486586904857199945767363290762122735534297790310932062917315588053900589050497646809776910735650904953763289622438222076896565003724382119131577132831701764616282055373102523475489722248825873715837084913914333405137860206987583003411745609889176522462626103722139372988098124911179920319858161358593148360672895893403405192207739795105834683157990409054817610102928631306102269712172311054546180734539659407724317120382804705187432414173557717536528104324309241450492519216206320711296206500374441486245592641701729977365306685586709157101859161659961762628396638638546265312598547778452206021076137462749127285057484351429004372774715343148369881550117612427607315717766410701456933326826956489405050946176927981546240500651194618611046133555191405641049306842739361075901504967169472025502240123951560013585988091735374709055083687620539241239318034973136004334161231551216339711113999425700141411808583466072351768676766617906772748689805664187797259564534476254986135985222123974418473155892177613765244639295465594285380657203624803696766275982732946276275879815932588528065016498861835497002932030092496437050865628291939924796691207785835464931043562243311349285289567010610851649375737396836842926523776729872473164273795334996269313345938908306399517275595992472045037947275867583558944167926423215967683925222422244514592223695524086164331584977869098165829129924195589837745909486728233506180326040944084171561812309829993824051621881234400085373622597270032803871296311770193834100853679193175161477392726296259551825777949490612479241131224962451743481101445725012501449425273700994885588201696168869424319087960820560826348993250583775811953392834909558877970830966576096802261430023222347424593408561765625444851946869213379295237257930785966127504116436742304320486963163043782165611223845988222172120191435254233993382078207945079661832541318855860009934685937614021394576730266500109955545144313448213874542408458502490300090350182646344534196106767044453832837254217189852357714363456412060311280975128370843756446893203006461206706512759523394875716803199184478410235707337459328470977863381210241539231987954660239086223403151182673647961463196159614643220909606563337293877543229883784160991429511011802095550523940415689292811089409872711580176885763701468941939849428600894024242158457815994729369124835136818694304530899179176628354786874621070069374364235831214910123194771405886364381276028029837299007801235382424710850142702660590783759969941016858551284567855226507712560976059384585642553514530807958306645367771401702750397362589546435515178032625431529495994740577272301086636248149975238728174147410610634691818279255452442126370693006909070562113714247107062673829276667448281137938982940510534959605352214135889188427186505006158861536897559663871007456542218035929916051342818198439554818244185415513227012441567381385983590406801827397940652444197332300370315523418432883853871301933377030868235444603117340706961293844703939187341146622083273008108871807431650140433483666313641745331500773827086491834861952097952221789083443110215969237040456139569244611077014903745623991484273364691721219804998143854704168264895460137074394793810598055739331007015320244210317485915092686948942588991902441270811404671599776915698331608946616813782717124953297866404735748989358821168830063817677680610698414425705804835102652919977675870307013588185231197197667696846834117183897546077922624455021954946701319266370665590070334614492417894562585863982843605644006142823129822414171811999663224759546226722901451226474910572989673745446894797884966929857089602228787403603770915614649147265017448312447487882825059956575284562989621711275567849961998608368517937938723686353704941548320626693840676029274791297749545404909118020399336630362787530259162629995325989006802165691901569579167216243644882809786462682693113468904877565181325999996377511170223627526499873212212549413949506212809709749563364285759524422260654912859937713680476783017924119909740755746015049928957765143920028754135769667655054632640178648271384334127930062916937779672590145117129939788306741593311266699287261131982893836504647495234029099137937953479192319770020527054551630589388516907978415498830737295275330865883599096992163197779003207185092173373431325997973923846559469547520280560206307843416116570534402827585410973125282348130542258689467165695933008975017639182508147542183551296973318315059449398079689644405405333694995639883779473528850840617647560337397199754689544928423667027085800690206839140125770185872777893228333438938927189295376649255613632861830613790565284075559149669383240960621952207648443716081351573802692270776117525792572421688175595993609189148545621279149630093077704724871851491807463060513186730855700368182727972703425831136104367717142226129013793517400845851424186269536616184172851468651310895241291630545718676268851343117849705704176172049582788761579213224696566130592547743654709106306224310144424787533513447177383073019167746501748734854936454394507363678251437840583008024477890813586748133366018013840219714176712884523273136848943891342144690620804372014288940412307520391794500362563225845944324091056266847068522753942382839084759292019311562932048959245121706757134748214921165883332451704687034891132568032935069501345525190116436014747871948610289724140729434855198665217649512151081130769409284854114496013178288036412394841586807428761796557770399171063330202644776719333121506871636974928921753624534083478372858587735038458189257614204058827317670215597247453480121987730973953714605461898515641398779112206986212649572076585790527040203418111066025855229259759047008031291333943848806990225920597974540540113827981680349766879407305568940552041935998674054872207525591479757066513154192852350034466698937768418373151676199411871406585311956355570907106125975023554737244133303269740933582167749604521812884741038053543755592806190036647107836954048559925256172644819003694845494900910997567140759693546367032706878153345187031404048266220189603156502836312738098203841457900460717850381768820840646657619844048711583439427353131939822342418494680834727369815468869006370754764322369896606815958971439753781758421505194275926369530745229264069487996255271204625658011595109692293917296486084365960675099306852308321932698625310556724947219581126478129552844769064681923842501841233944466254806226349253073252702923020176347852338875421304427345449017882654289879809231788818334975812707715655257678609381762030745246908181501663923307072197109546634657467471857113447037034631080823208181777566038322070552775448236912126507837632178983192916408373704476384384236884525325096221414852188454710271598714103126067421760023804436495938576451362842373495231941316354847001033596499261561048957478187300814625597884348559258736633215539666826593132143683395901823066075635144816835007067607653202241787261826019307383799219922080811542483261070546716061827715036863317081498872588918628841543418693100609875911546694497864795343931239872379147670738547287001946112250579952009971959128056626461618558189777890624895354188345174000827530407680395195638094285699051686042835569875423020970313558516354259380289597671156387350350650509004133186411741486370207774022529034624007690646983178723505490863963489256652282876398191141013981597824872721141808140818489641160521273658774778628285134939894386996017095557786291378974247360944321620543293299731230040321022393550455850828623526940715669452062767572886396092108779316374441108874008938821746582871135439304107497604568353980573158116013500024311675960855526067957487061739570056099386659225432852749561415139142101082736495485814480124719337377957248455824422742916305501355466517917304642963925437242664012593793433908479397352228236311795815564419875586599009483560859211076394129318700310264398665638984681416859916846745118930834976639326119600655201330723898401744903329661096757393780039911652578602639573873375863113391514467219392861168959141362634520707757969154440448165976609479974766784363834915847547783309362790362799942808797216288766145986329139548608807524870206666736522073415734967218214962105560833229677482557698445592617774522020650502152111238750712140090325681986269881246080185739120801236603822357510911985870779260736454169025991607029026192190336113083778145554062271641388659617728662964397070997520503650005250025421856622583853312093595077834465970610883160968487877491192628211306322430890135757029475165629927890677327956103571430615299200299240302091412733419868864179559857089176771339428819141321064662856739852743679810743112080644393722758061921234184300180884650755444362266557827537132120067344626438147848932246262546660530107541312733366824348019595165847234557555629297031399599955091613487329226248657008175822275451503590639704614980871525098754559457273465509480116578840331598844873699469435289734282581655405807574628556128882741005012300270091068391385694034485473786010492925378764759810381121140480487590919077041772511292823269993408329748499480542961143073800239546062073368841669681150368674020050275841518722778619353716574867689900204947267526527316365003538407591757266733116937040408561182053879401855845055956004661856350356385731527170644736527352610821416970798974318588070958390604098877911807459089875895966130733954819580484675263569085417509971390890198040112883507178110545599968846661369342413004096848291136967592034914432629704246506226323490349434621035937992814687162964248174417973276247452900049164362030951400850290697552977672115251266879268272229184337613575856871021124770678087019471643314616893983595186051204898346639512641040083316029043866544780684070397619988694770860687757456327914961723879339432821032619828243877131757801438192397627047737107533036879863609817507702910904413336363062965074849170421480008351261516913821331487280128946457388852876695756024645995454536178814313284349753167222992441371044995911091197967660788216309957127483886499795949500286177616121157939492647036059647296412182398276658806907910565620583791847129992465096990786364290559541386814241421307865312509915453523939725508427327915385136072413190873457462651311611973437696929927051390620861885869925020694145438092780784073645463271988661844307681024201832971886409971290231731319081862496622584262633582278641823369869770569982621105206362772161326284540059040187018397950549755825970228353585677630946647942409622353451392635620936933895167390822449621147993920901764793034192349041067898333523994971249136026409409142055100305925037432070518362215255472048304771468841643815992818911923474382452002616525700417904483682189339207451253906307802984387099481316032347136467683400788506501314601716492524024783972207891550372203198352843607332132742145660132600572507661114175563486802308539493610742408701776579458079914125862371432322032039315557544227727174213632218663370070825890573832490581412964472472541695867316307149695765257779820783853924295194751273614457950180110090428085207453307033553355414585788409423574789491376226445031385098694518838393835236996721197393780751013488133331203666146726365109138195906114276720918974999299863542072469128722991859851389915463884994461064105615473195716556485732212236940695276617376882258430019313383213661974118246575628229601939676615362495863805273546690515349390653830199058607149020968893264037443466069603046907746214069714840860049459769165392161520982415118383888484875525648477147238449009572900501452899878880378673210991735604564567999519608184374471773066467585419329953736342011165435510606193679598595119871376371335668468839495761233885889336544872466814326730845382641697657859925982984875061129060793840176542322382348668285996073512881065237002999301117281259416089687523932202947600257791116900315657913479494236133783952776511547059602466921836950111641455603425495369020637063702719002345200104610625344053899569817776659017696065854814233428598604177663934921360180937066198053562959702898925807410095115424105056763048465398907180464759337793298913414859158256960707844077541926737043862732073161935886705819631941704523025774453549768950325343308659421518700811991698936033901013642368485624432615342039812338920107906020812618087785641555427072691587155227553315784119144396350713157296181064841575818491392925219741521896547955280170332772519791171707999461133404308053754304732023204781149129496902666409197116026948164355958535439762503493734723550789053637727404057703730100966977531215948085283645593094838712405292210705637595507554332157357780919862371292332439466143556746429349461611077942126793083109931326486759773300129553032299239077900581456736430133207633444953131823259251925003293554291280898035172108068841150583998036701551054760230486507520076424794056238463078526780442886441716447048245645015613778971834823866633153161733925600074132307484423082688611678037691698548674761404419524268710896019803595838105386787259727959413784777054561100762149865428018405134360057659537043200026901808870589017943922547469839392396012096774814825753349442922005991583042947036347903618624689601925230608299985059782071331500464127809668965146308135660975749933593524676544801078693818821303860001730506981883529815544443634130862086702447083076724344764568284795588758165367155005537367230994947898823170157921631085396919204140142998938482927993888425984646261416847661501993670837698347314576270975137761938083224262001404790000708479433079272293588054873992714453716599732759114806192760366510120500063621687428158115076256352975124453350723176338758282821942142175417041447934350614399309344578424121522570422386548556321280475977019401798190191063645759912571581042736314315062697482135100228588772594869790411196947777371402760100524621181756006510191576012244026000951633892776679417349337193284038078515404040378987476371190769499883562516060319026767895051959679155797326661238061053710076756799509394816821110856577410313940370033727609377025247217969861607960642955909236231672322067624234499376942925492662796155593402632115049551313451964694536494135032036366697889040982427671869664109291185058453258188271822899112842299715068652491002117700397957617453447018664286100778732646259315286382911927805985686491231121090770570578436153503924678258423921355243857503243295964865151250363273482780636339310681167082252740169071823214865800156860408457024537379288993044463832448070002618198810817223058803198397526854357685368596379513242085451543082120740248576541114360072090551796312439064129844378208289907669260568862998206872738888506817637918927986616177010771943372373919673135597896553085214990074879319631139781863979409706830478146954125947502439534616723883555401823205974594377747882687456889916461664063125627793578778634669291287162569930147032968934809288577876127353817729134961707785886026755380820554627886994602955664154397855160756101509149477517428909860996664301290507513699715401253742935553449872679205438637790943789865131369135121218644251268910477212849900148701923862828217987807778912571121274494871221159271393306652827200321299809395621366746455268473711441993441322633115887866718275485344612852845743876104423159417289055811471711822343410853744542025169053683512852265481892707919055875625453410648629682597949074415008908841330452437276288861153573282938293137191516190215970954695477337518044073164161498605981428529840058953658214236793891688200103709073641498636738468055084341416107328736032115609841737975787880642843108406553789967021576493763444569872333421648017058499578570280542743435311194307597631585232226146836060817187650138072080027241118357294231393996178480169977895286968994998995174003607616302882009065107843666674746521304457067466816622172511691838188097495031853316920928684882481951534784245207471814233809546062618273544170505918363453714215798795665464946778042554664204538806185972813324980371531900027850487113194753735029529931944528222355313258274313521087546071647004625586264959931382706792377362141363461260774852779579815722521119535408650940247147961560456422611126268312277279868314426145163994397599094375478514305382419572174581032107814476763301169121397681073854724579158430229054811483368480604918706164866757047907637353688567947743506806477737661860987262363816387816180015298881378652288154609835931986612617952681817361291273265641704264107677603280328705838201795156427642445669653855455245703271197839910562089575041019424116253338634125459830095506438612990397933188647142673427304526007007460225526085474426953444843647221061955067630275265170667076215306173017718805458000912138994873706662349979057634613156297443212237537810376785743492573151068898812199114392361765809818442637613149460437711744079220622240650763006099074044235334654259259503356130187311897145970600350784698219208009155681701171016485309843924043518726071367204922585379091614866248434235762130423782591397586059590457894900814756433002911005236438166140226513296794439322675636466504476065458409588976542257813683517610886670163695189743113927746708527881119861774995408675435110646285338225506383229978900219310576659211856796526213416478506751464540744520823256209273093147590068879621303248850275966321325428528692313494146000821785635968900093259534370456351015271553772962162590539160213101442872549820030803940370562382358841595809645284078824894661840041084777266534901920240831063014927474585211939293994990382831079899718414278431607060813873358188037039262221719600883909468075958565365990945145679990222851679951815648834258408477988128249859305874842292411068820589748784776791958655181722572534993363037403175535600860853346752257106433651183576892911103418266888392914573686510978609782993993767645253325270438025476740502060598841395301192371314541011268696625229251863473054757071529287845865262352724317923176572934596153947549595807688429029070299797516217483111440728480648443678491614185586865996224028107905514014699816523885794326832493415600104490406812793117391959603201373211047801129697476696325671347496207435061248872621383049691972903162106838418005235048454927600847743649667576310220774247143450303830179135967712131752114148834290572831259490019333731526807695955263199003878921900206961079997881611071634163297726982803149842701849542280387638552797242498457018453802998887940089170151843868935669973511467139961903898285782388820149660774051745052044634203367608687090175015263875795215122651038126976852575321085325469711241615049592261929571834808512605426492993243619308312250160308257348203233920914875624700608710930657443035369881201129987909319490283360860042587390750442393557690050373263606349280986750871682739426766000163765668407838224851805690197626945389905045885270981198275459385876733895521343248793364977621283412802763528391894138325054837294843390277954749650100977405620023501148088887324563475126732421772284816639658702204884682112544010606924887505582549591941961808562819055643134493059381980475827934733950929800959676628748654439685976354651065511041831242846785829025364044989491961656462103464104971662764938653847231013120560365623038042020070671617589315118704068020412156690540869675521891650271656016014038397471308313287268358854580205446932209534459264332288472623051226609516125062332231601844323136790631186256493572429730819986337330868885517434530617857026218588802568017606918777969001852177314183174515478420975763292406145735118873817411157325613088597360124020859484132514285602847170773622883859928454742392352023744032621387031888906504910675713721946502681050503510882261497845519689316999947793201092594985630024115855856807941389798138293007664435355515127578106879392332799856238706363373551708930161862873706205011417530991429506922638013072143028975870888928372125938337086036529843781474690301843311450611542857404714629673336947002019241266397379907130668220602508053179313426563216685185994352746970669446851013769863796982619952488489953090923106697711976141454667160155952690508579332287441660809554838281038262915500529501980525937503368054292984838125299204893959976109418763186122241880069853293745417595012947438013091362373518420333304549581102299633935877366225701695687739141557613444821930666679286939570899289579490983517416869802569799436363593141231784168370999630119851466071999172013275967881774897835263338665584555968372558067678513683210971840171173925146936275941736009061265416591406457171603333764794864526751682447191892269821275030901352760428165968751326867392456984949392273502915858444131421660648721493335368167629926594174389222946383989670669652100366073473354487982896477444788865551801010794946587689745399880784507281023612154466394408358730233331950878033679914536550991114701813430637367483152021240307597635596984516627227776501624835999757946841929811470797992019523387628039488516159480561886363304589045494079367808792374874317031158850242791991489589258151680503408801524990298901289454891671361410042645265718695760778532878057857291960254344340408095408523970643322164926842727025494905920657404736569998998518940354146817880222387894900474811860677534540200031734079403039692808286672853855884795693375274700670104249510917651320045190714395622255466676644519748665683813075705272666764176247183978310666336006793325042826915066378573825243010622264639038426306764945463198542939012719184813525287849418418997964446006231652848346667331554748262115196906730968429766489800453901649444477974225921617419087843242813226403730311860342943053454568492526185974359012375604815396824082088209736421472349153083963986444465093107255234503882404262357569606172811706232893630389395494527174751779911076922049234068746925408530910511045150737188847372214781963736293845118849087136197521340589092174965006844438279215274408498432364838538232317104888792168469238762997635875467362408971062878572226080130233483059155255265469385991502171278067584805584147742871278470388409946565022858911958225728442691929151955852465722593495932040489739872437597450889474822038621919114380421297540983225271660430798576668767310531998337985200914857872900088806826939758600495090909645489389649916480714970624402202230251164750472975903859051118294166331855409441019401565594006044526660477687486046416248900820234069003495213577407638707580122070578091750554281811882389850380388057135995471792812220168187187588803443932988423708422501840071010565067216521268223676635029098891729556057835943785557783241188597544677587680186782915245137340498234820764992512429809354523849335188125399898168758015831098363347733831823163978074663729919453386252062733987104538150542574177772824282873392210818681594471394110762063211376169122336309618532303230335750866641743349283883720272452179515181417708723009830005915459424153274293136996134855178466052308619703003958160539833362547317978019672934409266719513925324047490298118845713888427649013346758140110264176476969990415769553121257595946989457114058324630817118549675565948472565465589384744743656397884955605267393762274916196024775907909595634169484616700389901298005539156387285171263745508528486964008489301016117310376486866270313210673490374519578534930324016808337599136031501886019239803929857739320104943110082847343650193236280743518894975517346459213607048987725939577689485941260534784872706764564528039444855641618780074977513643388207731546868428605541983904601834771824403014223593934321893148974445019044723326687990858961227811521224915307507777189048958355525857927933775180420807091316726840289375631192475040024615387209330412323640211672423933423800946527719209533563056242812823826761276129820503430253274713315885569878255178371154378365052213027854626034268859808476230851138087384880302213955323926099196263896120157378003105207233861740722967830200898421854544489614168117382277045899487671127655595496063004329869068996168996190116379323328862590630345833436032111517167647071997225395829230499254575439456890419424198912355739410382561074678956849096345133859611233558947425524827993123224390293226760072724563028516939197917743729457818591009021650829493575521404551050332155637758423524515561119376079391279292573095848683828377861481034886083162089975196009413278196161038416353973582313127615545855845210194419505611883246987167021572532903611983951060212539008302600738984972548771835649738225722942532750688764683423918438645654833886626288428283593807944801267138524900338416142266561498895952198309202623634031787925007664041572459686524183306734176902901984645952731855875750919695151728848790648191549994963630696046190310454471526226374922541365586972189314766813756183342287583013136077048198868851925442313097007726532532507710496810821119102444751780411894367545103802825602793842554695124354121491311779076912002519437025995140840066343468340533884705338741521386315902000350529315234888889327290131349939030549517057805196471834355137710613683499208024047650453780826714239815411155147864794980236289792655247013152222539530713138000417833558288062468888673234539886246226536434564220607104814332998585066914048498071854416594805942382143413086840084037958348692289442381722461733139264691839023283803052188619818650723565439914163746026727024338008351390691357189793994412159657757753815142370494506123774054017511669699178351959414425347068914705546554498504956692308768418569034186762292650339988219245240008703907278289290505783013948743025135950600300571366981262766239120906650305664091170177615190499706372598357092615433603404624306151683919365012832399144318323781672972031482550829170077937101452647800265565868863654431830793120999927103639360742148891034907726049357387996698846799533990887264594591036287433786435669487199130500718664567917495561682379550869148463327802544658888142709839883976740450619385379304278822602600401313093481085471838314833661587654155452384693612742955037257115356773296331434837015271637510432564524396704091478901717145135803601559012281764079190389420899944201290697641022543212401930832930367227038701816475873894663592289923981621348855045311198101563588424191188858533125022804975079877113717631124624159809159677475744157378286253610638486719306884650090458555856688159117096867862783942909756541892661669180348065462983318801849973150064829773294732457643599237356227227519023036346438298138765890925234124427851025120238217754965720909723972457107588718042528087146337636185738100540604547602049027055568372064005976033039464274356359725982790466352216735227818635885232590825515596153883317763417542477955137587926680075745328702061201102168895997226159451646888339913219846894538221368385474680251060517417319297891101567330281219011632602960041969299749880134921467440813285290026258100495925175035645357102157838579780592343098498774582677921429125007792419841621191256082684085231917641467854226085689979063173386803066541714473232262598998585867910291227356608772760027682513161813447451753693072645397743664858797664462796887566817520312370367952159049249735051094135560687107035926273904567802970671322218651313393781734726197595733119222171360430871536772002337042352901927441532799666307174539905406433684167294216536186821761618657639852924747257098042768647632934616782379860702891266714369961578827498774916002496476513497989601411144815856992422545907164432359526052102220209246558291805410200390836007865395497737061276484585612416324595513374060359030807784386351083892040499673830269895242288866826072982758146448211064947773357250290548116566663676031404239583452944078198421618535763027382888328441715545272337169626360296423011314686503226514475082664152953753992555134504063294489381905141449884671690712835410555411734049129950428489994943165950230529230686501308689293175916010547157118338365715842144185341598508051563782785566590671052862450106396954428869567347408439640734510738756342401960424678396112111770957746335571052771111702826336115318901938234619104828951870816731782508016602198614892449254922059426620688888311299533433038180655886367075088241775167994201568172110387932492924069749505462525491338074679215682203647709959329343521943840533460893057028054054359896887710879036126240515309754658359319732561850689785384817215224355091755187705059865880335451148654613813131445990084522313551442844258237195614340799643606988518386308210478457914589682113237740287251914704045409826939402754836949360188232182623460967332213455097878174276542388083158331824575543284868373164283710457950441710435977530674051555808729732006263665165140362895610216186285794823189932045502260104471860553203211105946938492228650351890232660457793433871406541712078087246810181638087324300268169130763089109208101525239958432650736960557594974417515928863495220488150332517357076406723210728338531519152786033869382876481841064946198740114171555156088954041232827773363858464780759130372478730785885642678550975363992766391175215279125613901776386063290516759600543478013937218968848649529671406605080954540525412814870545877674113747929851595298545079015467607278197783873873423891935297412158316935487830572061042240484998310482173623395144320598622133255881597835787174717577285556221442496364636138562349998307291088749962065279076933535283060014713282391221323258055887289766122719341208753769124264002197371700370350836419037846735464390098044777674758163891628170491100114909973380851905512552777159499191396392312844559591433502650226772862496069146538474598813587898056592672602991771863151304598406815023299804115909052414302948609130112420178229357109443653939946980399761312433262567720682765527681860621141034857812611958438530300961157275385317096426999365492298325973718105401676987796893891884304964521875802886318158579256694799871609555144570111806334037050692056094326618578365242934002252036876540761170158958097035946017553014948193817843589925972767817384840660018235112235735393999639512710524365414817225635339675484511042297521155558164860253876396088968417854661324435587868811830325141291414614903808722197640735775563977810813860442823501390370341051848939393195765511070775334240253861791408152166700486120872678557501932560693891681642785934129338197581406057995395228539581421465649701316140091904997153270030424307188538833384572306308665946941785056523781723688018711870459516993638768461682968446014618764467681456937137063745804544138993132544323114354817181580523025967542409708158636451654879735824995667409719509665716324894854405646644336764606663059840531190222042629749708763915063031882680061835414362072575662692834064092197721377607378027209790766897510682988929867663858300968150017469637700043124777769155330762465570835685250873367290323732120374935314563653440431778041226752714521366094722525401429615893686832909569332283325920289947714475516816731024856186744383512448938482858734840610669086174914369383091720985504012155553804235552472204923573891147254275206457768667105828353836920655983627183515057015922267913833865917439030645703424581169165115718087960167262520927297287041340159182696538464039163406487705252200128357518188378443114938244216074818177688817706125831245354145824923882989937521706748225893635322005039598732801146211073091992756608881563517628522045834035926510202649083548764534102458517879957147739003722710797617039954590218584384845284116388329478625057750690444492873170322107923878286453308231381915798877625026349950050045399391332060470506479146212044357492263510452339780425288685549808839420329162073279053798819171418589097937585972589281939362895056707510253298813133567640350957774434609815395491058457945037425969448013031910100993702523774073999292634959371423442754714694891117927333823031083778645151950521571200565820335613334288783657875211832717375048060857089302866324745786343613775333901473343887718630696523751613574727056664400532454659608145850888714377604058339623949463550798436499414358246032567095101928115651085571521088440831685004416979085605646041055988002439647308783373249246125078161048923970686293485486691087488146792022039356783390119423811010984935325785747716793428237065360206499577638342467075441536155332202426003524367620653737821320697065540085089525010015590018432273320111829630137243155561305213277304164728964644108454685399728065074622470652419725079214190031378422229719549478786828931623892904568797539105900739697787061088939320487789578537223143791434978227119031215924950195437542132322271639661332695299712822162423455864701366690279820170267871006497143584758997693240320674723574274272619692091598594404376157376504622119979156517053436387601198162915509186980996542704906319197702973285764693574393008467376196806714533859839293777966567596261303898948228073997082292480500093983297558609637815360127976506889819582550005150652828176747440204148234574896521000480685488094141468648431406467698428670263580247763874966597257774724467355715974318086232383764234036236388641941418901130447130145625064132763858321816124675264525699627867290663592770988462295602805793634494023164982322256624440316403500105557480154199709968305629425087411709120530914549159466156761760436430921094106008242755092653369247323691637381243623278053192418938508570612887954760086723137476055543174207212560532915115676377058065737846315642314707443351749825604532944870381915326752991600576113114862471868461354090024259574808167883883920143340523534528133421412754350257480355395508069088361329193742346316617495373509091080647778540898834843597758435529208684666956847634987390558868694464100359197407874899676064818861022485733714611425227941876123976358726178514288668386614063684707817533159858511151108826573293224713692841475142595192773198349667994958816184752826290357957060520310691728403970065598723283302408150038868415115023596890892130808112947574385257886755342530506068845594156245975317799053684559419869805693211214394696959132275396437527188310049262388735501600452776873844756696021756469251802459784936366247581844628938843854850093410551477578691755789350763602679182507127511591111857805753597029628393907590674694912730912876819876521348557424533279947373042079823304233336429203669255915286219002919770702731903604802621169024592254040154127880112849149224045801783016725298305900391707265985147048881976991046547904853666079624165751554024066180813298319931232928449066547791066580720570754221433924152631114616642779233078546068230132434808059009409474578344084187596437704254773089423973253564212375177665540196143027667499302958144148500374039664029033840550967643175274298033888637490805783802522601228096784971141900365612147385459124908206784081259691275975381663954618914990259692202316974758367894148701222891977012123760588089067841460135637310518989594711227264934229032789561473588718969279330661873956711125540169063775244853665028702364922401520238430815267221588523474464218797195689567315121285574700598934365977957102137410671232933345473311805840160366353015642039787905522887608857508985501724795043083794260124490661639102307622718628577033818585594532853655077828293533345612617820250258407146951440671420500369463857734111536722789912247889511465856877089680855991937083285620935281984449918562271114246635733510417394657265015972083700259131260632205833956786526542286621301903123190207054463946313345908909157339104601311485719917199294035685699097086076182339869296832239885164893930804494690827325308848331105620296663167331538051006199433549434202300449866687163090881451487237595502365931829015572348496007975441108870403741321990091900303502207277442962113993766483340057286435618334227620740208312893707890811848129066590663933036546941587205077004755942571865028805844191330659481701532070717416247033255519224747432300787579571192024755591557204169809688506525096937052227393856210845918330241235618650027801482712572612381897232236616989215191423289208992552834631511202632823279848594542752335464880572818815446479822641860752612565531374734958868858718836989846027087741817967009607291336063559062727655725074456651657061874080555722878197963682829094992880573906885205420471931832201418710830599992937765069737883981973578360500815042773320069262974767824451238545193742369497395030970827130997886918617521191558645593991025702782616882134238349162120870713219750459646540775834077902210723271817972979652996092557963380367927160902955406043438228414134661472058999569208489814400077350668263505688641267196949864420865612803486656517538429919910633328125053689104560123992840052899888043186300824866860511580029119836587862388364270052401117210996188355062215109496948544649219590189364767862368533354062241936046044168922201105106052006024901429887082670572961810404778601195634917625866471847766791446039668870035766601253382522685222838690036750914587146702922092931609417209842262835372985013060318260642678375428124282748684001541056999712231448258955582411846281173629304186057629124494088242428086936034768600647921762702457805938289393728660485994889912103566581114906948958996189414913565904996152878360284874602208190852221473253344100639515101792777968942339188095962123083601497642174557017269847318959650233413471038727677764199793551088426779624995269417128271757600358579361515299726244318702802329676039029649861517298602591775209268933367103383528756343706710377108762627310695682131285821667015601085298443067795876824210852426821650274101826678942111287541437004295898437906069002636576024802008566147221694211747694439836694135990591108812992574229347810289371674546256594151426685817105063889958925389060425429334320531792452821243035766922922779330509210875263010837130704027343568364659801568303457936209195507986226619494834981063860607226853174348690413970332813820958404471173608561652290507914350094022274846838460489787413065655799984182619395451205974986531982799424474213267283890271140617886105939038989031412179158182456318397087518929650743712744635187818553078379914483055895913285317090012462194373872906487174892250093024831993232712295954161451267692535332240006289121243874004932230803957544445718174680951028072368068201589063416559057670199001702500148027562311138315987457199168330583096770787282051860172137491739043779421747772514293246325699429817114548883429197024472697466976013003424677477531171894582686782639554084088962792653944931936305145266187089488517885733957422136200530231248360706011221611811848438219429549246030438557904801608990996629100859757398691078709057689526229118019396032483741763725076651180147883651864183622671782930122888019926849104100821043721082993563413218666792314788260048392956761539632745838076864869047970312789990103002916675247907285045548553492860814985166838367375914810401700354500760429227457562528761310657000029337588651836894771228220149701218031980895015621486426658458399098546743654616803650545369702216432780452221494528352978271337304933942724314348667551708610604772458828359497302914979512085574548909806026787245474313176035566843995020446665914603082546933202696368346955493454135147456967928565949340360412878876220795027510528377716791274472148682460051219381366171538925563006407266696003444999632624487772077325525042854820994589016913584211708037888784658197529037337866383028048795428218654139371922674147947660930416210497210529965714074441699337441048184009404989361099130577148851019700102476038913248868895469863298107708914047433427928126898349166732313579895468459815139407367561739799664673237017472833615527040931788185821412995270415248146106481445752204172882984203861858982301668997809224319486970363464989171163638103490467118774385638127120365440460817681366585626345432550227692733277973179354176518208858493833949936821760434280593881067004702918139284009522428952546682787380661628920956981005580577327207343632229366702258065998396715837904766936720627692986446397946537672086155040612657385965683747480048706161530139697684997400572152263115071835312523166822636941977813430712406068613505704362400013134366513677484080057845444055896178896986124886592184707215805654002240466447232536663196003028527024668641351033899643186509663493804099256800368260665515718104023798348939462241897345631426133350813959550550717710535856560179788889994729898445695119354959343610071944191675434285888738139051798674014167372653449446451128827851694159620636875967955225360128930431795635651886419937126004917510063050194696188416851721480360973662641925600245622608292837161785847768798056355407216103920564547565622117154793753787497775835531876087291389564660295414932682410349145937611910707362236312639082209925048537209278329710950766865717964852903067917064520449542720552781297450452971603423105460068833583135133522577173001128140921195855431214108308544873695585940195006295730558856036256603524573332542913745920445069512052091549092888541337787943325670510160555950986454547475572884640692252646999008935222094982514530397563725483878778229733791182656131891220960142036214522322357527558519873457761101006656206529084128842893500248852112114124266165017727913578811411883242540994229058208466420076726090948659004708559134417229720313395025569498162537362750844858338378332735252704077675873475804465103097002978367754585339981244655891006582356460563651186912486779274038031774981569700721827362224657997762570113100073880645119593737851695990653052352118601274343478105352846934270665129668353335639995381880856016692492713249094002457305764341329873853184963002772272852017688077102179761692926012498532166599860484106032089568110764612012248972537796631439131490580644609530871655931072119326503934630931093545325167190358412997939492066765575341236098523758064261985699586483611382197347670067555597932647402953098486791100352003757201395236952897619639696957790009705142753609834604315786197998619073356631659993871249009505921294731290922120828679882848817064436662242688684784505133022153704286114274565307570767865348813634608746764273000726821284952812131142132477256239667188423296480652763771728642007877009416660566074296121500205175527183866889941455512267407891489057515420667124773733736184789337360293251373989229934629346617975621602636723091996878204117481970986959962991845817845916577738693305476604958519032769565831242472810753435497452604712610273374173275747849200857291568568287798775159955894129970611704454226174386122747874807741605680409965382274295765402285151348351922518795540586152285009598780477183056166533790037033450476869622988368293842177636069767394192374769784350496234104699838622417177961803070504474916037712353729504344397108543813799785100144739321591305960380373370636563941182896095093193444456139159245932703403059842271827591547979760077499526063404636651975873661270453149374832892683506476120149745327105947895704403650573865333134424220071478758421655914807093257935585551624968585720271104201963944270283157132472055693585342048006383878123948675468875961535814218540529594155111123039646436696226469121800154833859503522657809581858997322110160378970771080178628361837610989383438339431031250696806514639698299894577133939693061499839464323812932185138135896318597942926145123150662772151323671199805157045951790394757498356354680886115166584575389116049821118101057016981209263596579403764299232085791329020730397881822789174827794784100971275117298750920856174681262700525297507231130548774936306385727620206432012927292525630054157473102681209050115156828726216251122193234757128835756779973886196947306604753046138418605958663617538687789033583400760387069610584667482428915807932689559013683147269073126911274396760281064326686691358543105388009184008038123840670665448568035272132808098546668940240842018276701142786136713141276684059120419056158235228831416339713073375376132799360960857214112590495492677954527199916688293680908962728547800865176616956361880711131255426806127529219516894316032985791119397913432053448239774660268717374872701658979438202801970245210948834681406584375135386511286688000129667442726901911711753568075053763536158302236872989395346292871221800540168199023420741340139160694159365175151023681978264636957518660522937107663738225996332409406002345942287647265370652522806344565515650396391526712066232004967547063768363131402721113048511269720714259943388774057931952476996977051686678697418108522525900579095399345235855340249597383337002644093088197306221728844281011022805503793378453480003465177874092040457391917289924798224622603351110634064112504115832412314748122617534316175074016275179327516977615982447553638313331199647728209251626306606107770495651203679610413838252312776991114257525921491572985422848212752311682502290951256059107557152466137232850889977753351782689820619621965103355085924188772992740735913992297474713210367727191606799037778760685105166997280222063545475154039912788547332246013808408026492371973704840324891530136981714400931035703013180382452743610155834412000506618376320473176729996998821842324311222708761975889990619644534125474428832399991552597791326814413156409295507278784240362695898683139140857173166548519782816036422172481623966996962158662139283414161842163084002076322225383040200497206069692282746661750617265605324288825175470942779823555715674639519751700267667051239605636184066914677509732855542046374252566147954119876396040869707380994011732072661120619561310855762408766672416510200788428598563860935127292333469308628692289150511206916908020500061537087150852179798945837030545790053901838707213102151143111369805171413116565179529605444407921229242126779732167241505368714397225804142542290291761843531192873442832792601232638207351710448413463467945966613777888104690985989105984682040350990479640276546662278076642018696909074006482865270189790372216219469613264076867816722061137872302770076112690154896647677390063221707741751219535147915021114908992447895456210992302397201719423124875194410928329884019067824742622648583680075236087316816058950221075768582103467843362113106010757859634148303658777820685351567270739082211912041590039911362261316140234610074573209026853453492902403438820423496480803722347932516394365724624280249928762042586324502400310432862119105859496522752248964672292837158995447629321703447004757647358612223118928578105835025421875488993088162042516399502974581378030790762710193608489790911896968480229628117281477630186078375703893064656383333165946611685017596371402293008889432572058929812625254159679414840544866677686631022880008790346668669627427840284904786153877397336356929990808511169838623882482577866785020077996240815398246909676625152558339353161027823040666251146904282170090668364276826164310578613721028090490423646604601199817592432963606772354459854276839566886486542668954853157683316698162352772269827335807384550219713155148950898077572687722153285886648986155824481113892183745973527144355517915949567594795522677258300018663564715838750027240768901044222152289465454446120587086212119556061371711148999072742619085844188409646831384315146393163123550107013391071526209747870340406419855839355973635297971801174795863979580733616621492715194897189612011917485609729687859037924902039595621030412061593061421000430096868463117231605031204005808769970972641118114209447402074503176461684944205809672026102358075597083659543196557475770772420334028619987016772970756788289049164615769901866326812748690078265084678883171891878035887163816384326167284306600630631078321845110396448639824007543310188309563905443042045492088911543010626455582211922753394792752540976830556717775627324634428532671296350911484965938301185775272387823446513098049580722549491083725728757136716496218675143939199198325905012415695437344587706877977649926970370590348076994770462320736989779103001286093631602055577662478241663668089982502456980679718961941672495067180112458214145493444848650647807544854160362068598487850951521954819273691260183359691398448589228647806037051251912073756763378954821813859901138783903143234991275499767307779305352250900614856975942630778869564407619456158926162221733485293372132668292675355457222682325110304499405806107497435255977790115997007123507672594857000534496765728611242270471022688373773272366024380825830767513331103899481938597658806369297467928162522903579549125321231766717465466377528617496615235819191935191532258883746076825760990797603695351210291886369807527268182809164239084917962028064064640873168358984350256084869319272547171911731017391720546452208128331199621721583088137142388036909533229113708082961085665991986453230510896184578066559383567204594637861824092352049999786420581441993690475292586886966216237100774357584597352833740522902298414972066492769726101778415781748615725836063936979639658314472210644075666888556403897332070861365655796255839019254648198364548093310548736317291426689424644334237315389796832301292642622593220284234235748271023006800449310176682375444606872695202108541518189891722719951641498536240526588327470278884836684500588900843579502005826443571157742669381212848232277959134804098193812457993669969844335761335447631334745445820891262228067529905075698230838961312480319771409473881275519631393235582189910310078973571196671923745078248554692184017381675037517540620303612659520288864848187779896340449170811884556783970671297863585935282328089617582033692722951215067102199447307328785140479711534994836535600094513015896293532672055797256074774260838431666148186992615655705311756186080232947844104484441338666739001734973357781867496190280575716683201705528737260365237116012768303159953366259775391218383634616813651249493363999194153559745137519631007423271738038496646061090627881788805235277630096824300827234970389136951701179607982076651258634250683451545117269204607109233213785718819480151721581465301408462839065113061476047785473538902287277646445263786152513071085219668958182909017508142444618363686207798748434811753041549765621899776644658755261224685851012391202465729034965481037893287974811959904825585421779320105568798219508434765479972240055727848215520350557433397835161401663940909323934554403095873728677750535739987088912400961558770484728967088901530972307740435628371919691048637351212042177451073573195545774854834186165246947960642616343498236868273980838626604756034803908822399090158854169906975300388376999542453867004697900992227132565118175558197889510795210409645335989508698085483707635494554187177140330767736042469084555855342963541132722009084159755009229883278249132453635104682917091342675006070388909590134987714517575089301039257027851360285960598508711029369504654407724643818201581143807986246106264512080441507521527758196351822235219328092935799404354513543114174109126354590880360468480999815631351509524274248378285757196969325440373593248956814172254251690650455778878492062080265656705178146083174983168578823310702474753467179778124480562906497513928366577350622546356625532458111205523826868824174413802314464581788344890692626364743870063203424246774586312411418083360436093127943989073466127500623911899751201308656026958874822497558513857769551886271045077457615550561916719628576717341148020747432804858450796141563647077177782684726927536916742193566829955449386473454917059647296686608628154841933554457365387113452348413646486228735360510674897970776072621307393879689983194261420597698563747761042555583374444616446371320260045610678000229246912394356977523270834295716712572543350591828509188950581691428377277066272970134014635304532813876960915425370050323525420318718361030684330059216000514709143342821276076804267518971170107035069164591578925423748331334317770660903595409418822358112939807695943771991879243939245654859347663510048899529945614598901930495640096959480830849454377512204022921554142945485513476378934386330506847820587285869111598728950714589578507050593525348506287820325210854673169542119486530917139359269943283898086113724567679580707427048559353720736550039382792749421516748647231524970458618040621337787931553567724822695394844639192725141858794582970972788398023324273246770940098193997327645109181008669706046914214783037353918617509564190727083715956001819462819806644012080489116680635087856925063675282911418282756625867901482992371365851387867852790542003486868457279675454418291339310718355548921749252124159440078352482381749850421771130915617923711753695280283733726301519832926098046153648525734626919119255273244771921548393150227230769270427668594192397103990002926081442644906675723973357497789585682582035034377920886331691621016944391862582707197537843588770103696368245624989682461167054098813129009456281491607782994591369388160505350205461513972328939014934987055781245398753756596776546691220666936935527451047776345863583745334756234950544116527284422524389436902430615822525701947692852366159051377892825853104132227446326239218891638131290356241100838169885457064926705686232319526275238210809202870895009705396115846138628422186516530315416344832528125974543250650947403496558410441949503921890224285299451025850893583586757125356706538450520318932012719423452702825250395715631813728412134074337233154682881189271511304111663433970789336576547272159197054799499472217238144596636228500591810471652841691689085933030229870319169598483773097129641144869626346869503721887067262806450077308601692626222697150057403026399398085392384923989071275443429815749445527448599981313672314836984383911827190809381172103290937209199665123321550543956784506321882186613682536601313423324337176359542723773022516258655842595831407062263436632279729630244288897452030815700526361486858429002778301212460590657782257010456888811896903056038392340209635070397303954627031751054797810968830368846156161983331409663907103075076692335311783689531430832725490125898516205030333271517517877906350016031365152310472790251131354783603301130058394632894664396581261176451525792919859696983981321617718851249039787742365873741989498661482577821163468349561712648784034802201009913298801847419662046566005655720127825231835478374356368275294289654866772824147437015337673241522741372485324048762006536911566414074875436741280535785767108246831635920840657072889378804258142233170876518272076928089790614896382187548873800466987564899050170913878392092778746497987668177624745963183546510855510117154486808559805190340326165942170515597025751431269167331990147797015249160744201391713942713094033473204976579112932549424180579492973093740387342043182281764586192723760415369570926064152818940510872236043718894742062993518755883881127500558044412218255980391709704669102474280099357429665143633036475605506266970544469441813550053257657678746482432924502383868971669980964579841287847664058421640916605994156465246856704067596623575196025213557957107788450475128552060848540998455522270493699471269808467672050590485868114348692994255472325436565055491336465841148188308566332998301585111800227506111182943663807739991438267859850967658388866595966950413445652288102759274044245204288460288840749115269798752431814365250533134174785472326097546646825952391302449930681930147665385077594698470850211840336819397401641966730807554002177018979332114292837031968652432758524015060165630329025782656473352445816575007017943087395563833957483889773370671964351772017405549756747828238597886715224262838709766512936270502801027089544548230895063657880013819960197756596121985004109488727209017264400919620487905982847957864955939410973118573657260424882427541899400289192292864507099662772683063083121738016201603873904445942610822283552359994883713832657814063843708325576928629504537230603633260823259629084121828888793940756775008210775358115942697958982431413971043487928741262014903937787767057267076692214898922479903967185848785001120815136875327536533430093023128735793800881399889033086598962222377778829392444968173087078878167196183550418172205032505836348681189104710714432356113085322265824552551947863667730849920644785598557136079208765411157409367310280412155757380280113383540922140723919031941477461336024864170659901682914238696004717571043294019345464565656828296831771021713550828496864435299524629947429566774508238032185156722971678497616404221697519359642083456667199036244137067883838784395455081240803676457453808675561585931156002690490616968129129332849520568528972239753202123004534364371685885748856301856918729032932044755445254914426830009240350263795131046029418819278498582446432223020445454012407322399606789044902473027257911901102203421119782016005341668147135607749160809649736608036932982219378693637453885376799378090682833081712520449272288524393703965003248491462242635608353109820816340157710040534768787194471713985976099913123715960983726928165039142689870461606291431609808353517849369452979120725421985726201470979719020331190954418773562259197610283311925569362449218640703453341260173315577489234522538511352232664017257707834934786634092047653138928209200680036398852991791206859031074293872250861779513160335171844628769627900251675978930252153593927272685136441996449277872158819883004592028079197421997989137124554237599061374843000482593637678285617150161313328871323662982040994160683986719688993547018916538168864450767076799401204586789177494633800148574190684404244155438073929259181808544622029058277307231091505064809219927652116663288550026200200555520098981693344266264120640491571213914229415334692161387258230888997342964047249303411991076158248376381297463783885530740515721926851041998140318100760137810273754924269268012963745039622424829836851092740165242266187492701886672953507741377535140956540621258799882361452058181638568528076243472095741894205071881123668485364770953398355906971157567329838509629717799201520628695273595433973535771231851816687644880279085244379326548143924625154826466308343234726457049943965954927757244486881197789134104127636320619352003016183147343661540621100156508666214059826241217205498836706614746575222984415141799201797010816279044549125819733308178434190566094450207618709019856554251308690272979617448284107290571194036925037697749385726009710889439120242218775803171024083695103169908353847829487150848266558211828086432769534802561241915226226516722742584797765440167315207091954060854318478493845954263653352971707692305152298585531297579184383868256789830210945784972376634786214860500052347257790443271839013666115857362259103797431374984987979550790455743964622422691304576693495296198567843168797739513540940203234415563746786026857836617246019342207056114975007904184494618954638615479363491856590016816147759251977083093625122190267954318555312499122890354171578732599271176635567178219808489050750301559994727470164120791959373820161404630031868105070089073958101512814409070965991825155729472910726346368600962710880017056022928137043081223921630888240208897054592226408043898824834423822510180461735602274359677711182224250407790683292202157918263918086312742319910786591284490777212950206833312135006513758349191345064329495788957609096645442998073838393392133195566831299971719940762074314281056949794884744977431566857546010466819909141118110996671509973060338110293588888370489876896572001936588825468187582154392396614572350853372121428192905454965980063287706803007346180130268016033795928290907266372245635284140794362612005044512087262143504251897583839347578542278904433123157757259317415058251487399024367402028746431770634979153505764207278587527184166902275836211365273179364579164616270444998167557624862938576662999822242197946037341974426105934594267092778120149127972984644086854228499966740894198141024079806730273483130509665208451239111187469428880099533771524299217161672275303823422262208991671139773399973823490895116646484134720065936166895403646066580886535697727038605902555289457807764585015263100047838540272481658525017032393930562591122823258661089804931204757381461722477461089521086268656736763244404305526049907068901659446905088715879455675149897531125823669822092818881148515222673608806813068238051950337594445953758495751005267218349262477798225898544782177674054918541105738814472245557893950215371844942108186439904668010760784905004022472816293037416886149688363775008524869493426681111222300708260804201863720189792920634398085011232956752927871126294962219058610275914161828717756299626210370794902097509397337167029412472606893703333255291848432604141697844932908957288891779824342844370019954123640087427654660776396087127902859121276377928875224549240011053612405698796808171869529675199066542659997851894934724718744568038855744821126284047415529903490541623283662357005400968986544884917713196230747206580714400363287254908136603998842819967497649152740453909865176477958506617532602993479649018403028527814168347636993247543129700847605706104500113292851816347119808805999914208146296452850308782432364174060097948770363698171879795613878005388684960910336249144197362548281773009725694209048713863944310291335965031097858651009930396673722795488610361311744564457370174633377202509153708157372384092695483456939890682664950646279442878253588402142472706989077285225744436135501714592510852083510887466032073918669648128306854661239979847426857900382450868519638662174268346143684306622054406549023229101080701320383777648885574957112949049374391346437615343270972755467124387317055321940076813453650749317931595367931631906552633769258252394200947002125875025613427635886966492319180417713247806873638875756322642856908540175624770360985115010339733682517815730840831055725179537234240554717098207516070903494216581123537401149320303816524065393935927530434362813274584218363027336686161343249319885036924836860053691763002126439004249621827206126033626366442842757620282065346188978511228579604265149511182873850310520846072966668161078515674948570714706447054864497038888463455740507365604479950443313411760701748131771076303291278734254359404774716790105735392252848962345344389030864734508906193677103130059001011389964464539751321618802835912983344270536160223825610236393422184771689137694498869505338184822274105768444205180670924062664452601608192409707325804108390753756700061653047650367835928793687655765114507983400196667024555968346919359441439698383415726752151587672887553407329639942465417608219721269083672687321366835589230774950674166148531793123742609307859155078772916142947707622462298727888956805404560846887812611739490882536285989874253301293677332180929934169787737054242341119217027320669578959276222998463928549181197070154009013570078263484182131487536252075634851171970751367721269871455264337242533904067332359016095926536920756792483574876279704531735208131525741876375305043689525483654230751460700808822668109499935885182625093004320018687698542319021017147046525182628672854658772929920310372212430908144275564834271083497149053045832217949338975098572352065082073774303910863039414572069743887171915391702990613842530897365764842815692256094331272721936935205656191968090849390724970394980835810946159940864252806519272512530437284571483111457435630712331166010768854157592866414335619194075870139657820774724196184897551965660463455249878428859171113619301128182466424508391462117138208818935297329204266364791868063804511612171837250156119212271414108938067381012486268342679715751615398698858435071602974987672887513145753571562275681196962061301847252762754699705723851310568540812470789061993915055947073641786341486491719990299660003135383448919055968202045039379313140560925132280262067322441397859793349710903866902984299013581430748842340870943418596058952449976257544630237507589924395271090915182053948068269704628612434166671217208178469439265421871167197098899940729877544764260212885632329802384080465422400922073419221240364503591270722917326817476918074167403989011087063719748728188098449945178099041100844769294995359467231267079390894997425054156357789729364800788470222035732144980630806867317567580807298593533576100803302495856156171842846520144067853182686809006919237586309802498810639989591859759102800824989722261147108462927727841241514891322418400455698968140457414289000065507196469037511449463631223757855340339256159413152897493067037073413269038608482299873006348709142923078637657201846991900435109333028874681487842847943729702013465979790567736856282060325751754994486213392031658131613962406507219896516871966976085761465708617809750649033082377476586687101498082726933217789436456892211985866669057948811536975107301957641901868782765232907635571410748247158810062342980426613428144858183059357040770786322173209234318171946888581370610473291737284042647372393737320708656973605029622577445774020032193124432705099715576627669884552218996852424895735263548033030191070002660095969700112578262384907571124841277459864501689287174059815222643551076994036655596017185196927892269876716640363263076041884544675011499076107132381523470682666532363829767983571661077867765725427157659343050970707329846355377687567594356532035950437714248565995169954128269003460282480346114108895643782264334196554176425790328411332082107370533136572110646357379484366711542496384933484103878545130918886278433060235644408351686403739269728570858123418000195196204062450155304389108223131941397629620719257894012190643998611383695620267740203338995865817854227551184552892187136706213447865824113141070310250658658552980301324599535097023464711128739549381017492844043797522674669273078184446321730793214955311688336227255751511736874174131503841217437057004678819451278465091779520527034807308042810983361325881163942581064067570740451653182916094605552715650953150249652420522523358811263833018440856930325400993017129050185395413802523726110203012016624243456993132645482912438419316210436237481146559591707480074246252342724284053230702077614898276431774151306280607046165814006966315597431382976716154116353923001346481899930016896265241686994870528052683059727628056855675879128762060435046008725179903620819353662750313901646789363078567065131914379665633032650342659297331609460599839734010791224698230033878284173870384284219845951121347569770764837315362127105629150644572624515408959280286851296594748241370089269024272253225059302633780992956990432916031762430975593100941658917828724269069321699933188498061255187340381341525416739255553896542433303934773513774728987971280783782508313927791296981423045002481749070522108711196957521893061922929267161371999917030478602906463299628045064799595566609139749829900690663001454190506813553116092193492265930499799429251586940021459911788968224268068971402037510392455935477384050580949788016294472214852616752187905436745040550024867284521720902872166213601667655811733081012076228847215854197251251430691985769793404811984435604692906071881454552161227806221948719019832878270131230974564666829954870171886298219746231879930430862193684858029288637539920822837233853283600391374302450736504671044461238761128816274287351828731699388887673041280094958044533606090749880569975138429812138158964503077919659045071013652625312039004738302332579925331296527557827940128087765516002137539014187446761018244774698934282090364600347707626111992232868155581506740183339272131829466213493445609208647883055512552562014721951349459691028659359603246148252907281846553540567359840045664127777476224952299284297422905465147516345796819365211430279259682325816232300469245386442980825201623633777427462433762877884602963245594399708414904386799475334430749543295233134101595713489369944127522632502628772214461074672546981688070779058775481747742012498680084438017116668288867158052237466966391983182860803832651391564730681946045542031873582167051028516889547602167295446446097071567577891818948625629441354830010902185328145660611073870513321646356247242484867422114494165288467016487080284624882717133401859456566087645372613175624105356729297352366872652547484004842315395750938853957845915005921633502258872888625276002120255187381218727548094672747595631830660905294546406378669388907510880625491505632400993933060497311899182242852657617739688748149911220299781094493108295715036523377148437073461812475038408493261633879937101011493650687368348554951739677482090133992054153958879844003076074253566984060701562888399238182135927377280362501580283932020029748098543070624119041062755652630199760490837134764871596902320618646927188499614079972296847789423233508046233675616438156828996229005161401023131212428251927634704346888738806153957748081490800839872556311165058335629941552066381352323030779296854641204828915132604146155376997628688904736872713571610856369877594974259908470563418597331227347666742350507463931375753354536525778942169629124214390163613288388270447786908223644248056733104537533101819824159419929052058177914754093913352567421438246396801020331560106162232334796476138887848334640802530762237503239113632519288982777740861425523733559154006045741313412373766005234395392989736262879281858376261191247402712344143294703027552946167321807175694134814122989515328202567440182623801241578991057939051378948931227940094709558936395108005358627212696723447263241732674522655609724921021500987979344654849880715697792013292821221081318384940260135675302012343023701062353002752099116107298851731407938880312212897947284306507417043716548284472029445146048893047695359192217438527782296866639605908821972489992215703966611524993831041292260728152169337980462816011047948143961760835635303093418315466302761358798665252676383998145729728085033802456881628213474175030988675308367414358160419385052062347270770766452894045575049832478006076587596934013141002747413570909149562792233292663176274667286636334164213140377370584483276255171093813172779021339431605476143074132621798679261769557822369060709988499241694615514724223054306633817269383262532149057187747564865690660946269274051485757612153799343048475525623442785305180143545269676292260402605938878038023109243527774395524419079248089275548844555089174307506044283466727304846055593960119518288880693615126079125117774360980110736125969663211602018056872468782557106513340768051729210620565528873417989345826361468546139876884687552900625372245616859186369677784085496324159888274046148193796097842688592117447086001267436425407740467066086947150462747794809486218913330430540270872110900724940097474158546685869392432743570587013134548975664529333521534760695289147865337531870753437851655644155573580450839025190397250689820159118117678433252748540864697048847346065584748091010373409408799936990137999363262123520017982575340540395050297734224941150083062106346994360778206906999992616918146292017673693976375397237836765603607207153842449428296480386491785566353045852506230995816677748840508942575860567584311446994870430660528513483616233548899707955270049849548350557273351419342173609501649256171584610625499104254759018881797783596340368779154227450845702041878829678301049488581720548748965334698816828628025709030725644753079184412881371139135674428291558170532044252109125638843152814162529374688344355743491176507741832156622560858554245678679795419317885893740723383876853681655437577950586439105649875760212580342092539022727627212691166056568566947572721355675780216556365195531825041297083735527727278955566603529029893595924666822993234515737619158690280325800998660556251607066036184594235132086887204531469115131153857099879376568409184058013323649416543884542814759730568115498798677915353792113663943547162257645970643183893502935639987787220311933256111796919536803195120373075851126021321668320443461702193318617622588364761905492406972222590060455193891609356147583512216974501257402059260664267400777978409062269797378839529259402006058659958696204681327455980780773905829407712624118148178350834788855854156990865495234731991058633216157155338958171907268115353935497449226315979563939742068171111740963239256852498903571648410973078292474187878387676776845311918588720934356444699819154167417267333008443305830268425981533598718027964182276570962366980103870096565872204979229119456793750980075629894863500804021816313196320567075182089582213512436545832062316072363744779373657573682198953101143777488819752616701273489647007535616235503678791017274341100302494193849567658404823864658490503550932888617004347703946808419380386764697018283635497465528176677767412819147213505611605554125434716499917037644916077483401985262831299786330911967172216834328201253594982645528470048881058792979468337010814018847467933444689924909003665029142437695976302785132952198065855929425206812625422987045455735301385467919941400876274905284696472512020000185753799167992998222459530244178209205254680905145818605001292041238766369544325913934499595402809711822701190004551439615907415067325858535541220556739611048813192506647854581141352095546449378050695883367804304542055457955340311165789150428321443926505981307619614183233071155287574397161622637535213151033411262196503116777876215210497743999677658185491203532853499674070592571252766016898159695933959586275083981679217788506921021114661575260678988121917138100580736269497617042517228326161441716881081327978490331571945301061948808562465086696254669619653119460171748889091748010198952488538214958423231319170083083096428967924880685216818913251460661376997899695013272215132451598990565186761016197265959989888472877068519643951098694256980861585756731863316829090996330280211896406455917270420479582464469608413522809383648806896279182076692019102443755697670714159687718236997867396229137339908874580981396976140160086816607319044892194289807021849756051285901266250201793578653973514604936531636922702854289388365623803565254852807256822855034937445607537020927093699380024588906930005163227853239378796285222300329603683254127320742452034092938402537653581217867911449946719837440732698499053462730947954278007984417167681745100851693235550772259789437730859069530348711345651752063458722507429232421525103593083951260394482560088526009634362787551650450264504633214372327494033119656018316748844251397659236289523224850680732198155310920697109135473939218455859398745602424848754853494884091656194561831047874546181680007967704042354122665620731156059982313831045247741772881544750240999041031724695248559210194601622148023777335397338351447264051165108826961982951438852558434241928704820644564875672648191191842660046485140343762535789379340757514934880985070034689092286969611971139731468640500816719942853606291591313095646297751418220829714528061866783603996544489189925559765803662360389385616232168739843067138690653360730739689532340617574697143105734425653783803098978153518838578498628934685163086569735650684212150948300022415338204758217676171162009892194392750692623347506765765933448809550425574471193803706137911930200918263681310441014662683763661354051823089074019594722595613580654116438746069505044799535289397537529841588548063115769196280299538472330952005421027579061043732425785750545519856720243473249398745035980901279645938564782954758963170883021971673188336872663206924323555285257047615938505633409938267811261186981462343090685685216497329333283966584784863350701009971399503595677872587739057431020122078532414837735186698173131715178061127150921369300688700139172228328337673786239000612742965472791672333121232438125780353802184960059072221368740479630299230727008875567437317445090134535416775335557467942348684739304928747333899843763937728644289702504328753695325962005299764099542394600812561762174403597809933570529480940250591410756133695124958869260829626921168761499472575552164100573143534414905434700873405323228451192705461537249577906685030448134800737923071979337952132181497791251486857991947671835620495146397203616513221767762438960913740763287882804604530277516677279699086111817055449032081990287033535954670971249666891076827994151428240095041375009164195968618084487127183763347944973480328380017536847115586294451227823164008757915918598857121036836945992871069356792434755733982767945000803152368408890522917035434275469406459318987458498882897790464925707018830133715885018049763929552245813501062749685317785774666665011183257128103803911176810631679566797429742895094447751033090311575244123410444185488414969435561771615806633171777284966355482328109878464314678463216168007200502945821170074135231486321239895147672739874978013631989541729168919971350654714070101842759413997530727138719144116888854362963324123022594688925839557106263139128922086787192226393760994347362037734514282952689970347810220604264370285132483584990024647690596904030351717169930289631301445990671790382584884556435437082322716215446271362115026025979261691807289463748990137774531410595009017818050558007063803140115650367413902335775304601682691806906381775905002230453001549129923566375916657257180228931810836925553570517488050933798982770587894726831491302738455994053850778294834659973608546073656124328845629746718072849077879683766191481628943820901941037663849370149525123558823402828790567540982154756331427698941518757720526844108322499628878567749979465177764059563427465088812939543152607980197039085188806698132890477233843229542012397125873093879945770567764388381203155559622248732874606300249806196566897252068523960967804213626531166840028984263534023290574155572830565204615955369180029479387483836795910418929273019517583627262251381010240205274125400721974650757717110592872493973910484593873534148961660093315054227947762783934324145986290566492877949365306100385396375695239295455098988258651050998915306225311406097086553786413515738037619342196977736757361324264962814734026024599606547183175668458232900526572634881090544321290758385395458113198288400032585577412226434746593782727512504535396674189349759417712149591785421617297872011216229807823485617995848895815539472547953274315408321964567628788119223374604113468706418695901419960282426039005212726571867348570006219419907318774648813751003879536275512623560843881238121368764120224598058134402419537575265138726973838642630389293323231507457361341841441174737418698632625018964295458823316206268085593372217231919868196321613249518107515491499820349339788433687875391405832842929772005855990750159969347973527083243253658760484616307577662812684537102118681233789524360088066931426190070224491475402013936941905761438568993178785157804128651080511001805693836250879552894153860745414774117742266009579482118642901505354103440589887625464670846872639710635189222423662760251891028945593167490167871314653965933298544096170290271392144113039341083275168254066644813934317028538373105748631977577416519277012298920449529883785983425678101322491204074560414890191682881843483650972021700473169977070200121189981785221248553340597668485296347753664413126373664106553289969569641913792885527337983550036588337757575865080928647052304761323821615259225941841824594136216166409240006751207457894799483747312065598650699952510701381678239248410718260143771808403832248602477746015973331849738930881023426291102845350978356108240850149949035707927742820394353403813634819504413277491290992063066176882895779604367836182912619763101233526274632455862393107318036609230113277934360928152593712750262982176508339829600102924683968814016889456114266404675472962965649954754752882529044809310821218359677725253200741076187468234535773828138487486061394115765960833286983048851728632852618457139165078751131263000768935345342343810016565127471282007019185607223589910571110867501928008617066775358049642374147681524836455901885293833562493062089779778734610507164518587800868174250166174931754321828965324339276365602428487818055077255813361270416810600884952357717574576070404598361745759292136519209873706498122513359244417005027835165044565691700048771878994607956340514273163947754383879263612700419566895112514687435785302992335885941960505585717686276677631854649222824514442149382592174294843611064366944500939190548544708776125976927433945859023295683076222138868047085799593042002087597181215564874707291489302786403193479902476911036803402431902959038290960449134771567412739004502572795334696704135677059636755498736668285719122180162121670470605036968821775355090973053826965952096294166465080962883333724602432830599892570066547347460329050585446863924277917949354767248407950515305623863544090359349562649825609372183781356701113795207966489659567915762136657709012030596410416070208000824349979014038118649131614313158388963414232501842457973463034139976783195117947351913686722187400422424833584788718422520400450327660920646391998071694748733038395971683122813981280817794895660453228612901081233608502794642256616917285008728463573636504241170922373427184144853664606308500844733189056464890365316403054985744132518216731573681416053822914058854774121226438408993534217644321309212281794530943280300307890212470334532549843696935293742647954133425528740185791946137593724046311132547212484861522430144510724109673458218178625114828092916157275251779825486921465352053166895711707087161861299041473634381739347712959278072760512652873816228935791308497567993908136844281189108313661531389373969213940798111842656039182812765007908086447703085171557153867897173403605670650945822992656088975839832962750929250544254158673956605453543281769629112230865826968769700023044289369550941416931451460236501572620064699336823481360690521952028594262722837259955055721140318286911535910766687852339845878379089616375672173433202612295400391322550175939063970177060402384749690884937180538207989829754682522432055812716769540730318632956756979154325956981081197647296095578798897706854389338559276582726315056063200673228923628942031227042334977379143702055398765571170687089960423648352318969247782668111910770944618781334537887122614631000202999386366108540890352922212228822638743896379546885161060698974378503106793468086605439491496233816638417240507527669864739699047304958815680466661118137023130548409095283676991282584999635025478758065123399109740074834835176167137798404822519119040248132453766560740418155503396896307620855396504666276028509291343593368314279616638173800779216808184618680002626836886234581036601708933690497447133792146061506770183929750288155218211896085152841587445159214713269291862528265227289982393910844967650105998192078281943259712576808519201266822602247396187261169189636237394948569708107357857920059700262700509430383676827328876218015102006260208931978757629182907317277743143420756100878329346451063424058761328219207946730927006302524047886695324450309789099109897440599803629508900460679304443834759326073830633890122111612381636326147813597000688237619951355420276069552695126548775882731077209435376772270723887985858099794909272065802267181526492907866969632736660743361322163176120474435466666422226770095013404531696130646301127458956137249250709611884634090593613583825117934422025496359378324828216452675851253170758698238603229954142423474249527916818338966470019146965417023833528642554516724196446914393482163070263165338013273475715873431715809081759029780842618342213988862948058883402033778226259667926964869242003813831957356978655026700121203776895889095461987310969888549848363773740713926682509653200479960192105515671426595487747812378278758504691013752176775304177530381287425702576201059488012369966085253299467251207382657160396731648627273132642902265689059292086933699968827414932797609178126698209726056601514072374702317419128466587913632895865995066667851914223976941434805477146193923123613030516266203422864584168171838870430469427832547397357276019660386346719334074042948385072255046521645345649427844950476790327907114159114067314126906070318564044035805177094706595410901621706314914428452042345139691606368105519759630674182898682538400395108957619920109116018994359766615536955680159359146389940482124732275917781733705897908567437227681288951256278862172688786734456359108436699810665434227785362975876346071147366510809324824254342498334823473874460737616672505281638227479199956712581366355553258875521047669938813677195372888857892680983516590671227610888474701952892986784912661902737169899322695122727122740581911746750032020485506963993938849704722711322889119655567466693639746709866935461581161285847169186120840068157101806679420234820632394124608870222059430887401997400971557812981802684203676609137366032758309167905826815310264303117432370125742992923750599158091779061568514136363355736388742828315582977249967574787012573955642041133956278082373702796747600416043950494459881865344072745813247029497867051100652062923346293142450624177813500107242393884931607964221124577438846780234718446177340813014455038240891424997943409400404673649986502675226638999948693190375327691107212325954837974729023329928057301247282772490897030306445617880847616991601030635728094004971527597442259868146917226520148981546667509454986090747827964746707932774234831974897462982995553147600496394769253483376483293960229613251408634027121102590433222148014311374624405720272231079726376905511254483233190233941245542533899200807126194588436641869321008740336633544008175959704173858217693958205448744671995903379300968938436719339851640473181197885029816332233105121314578670179426521820403848994446742106642667450822990796462442168355721150473843939757747363044048989008764557459772369108020029911952670607994254941473410076700982298742620274883888679845332998160754541068699008584403227251073901572290764140734573635435082628938046408783394420533253480709507008060672187549686602255111927348904929347876806716239252232219972629722367351120692799560325984749950368524783706421900292669430811175599855230451851403813811409943669688542763843394612599472555943554404600276832822136037950863634281392089826589220443168764141319575576476977980089926312424312777521399435805737296178225619286550263042550212530733391893438336279324925234676392852971006549191813046520759245622881817643515221727880605610419240926437792323679587237359618828672442277608749918801358871281932361205028067922270293169384823645032111422426951397206470064289938049124577179106941875107475079885055417463201220976092174250924226591552518433928143432955841680914582366941334186421540013023021146678081372273785658849684166480757545186380141199082480181957258591275973837518184820119540426631912548728092972386671891431906325219065456368240477000135337099331009951058748781152215320055220962122818127166933552940203807865233379613159389961954673814464710884965501028595102447467237219663361003543241796993598833064893276549158368677631145383565875250737590266431352990404124333320267967666962930429433069447043062848046505498166279058633626160447221133340899753343556916877178684971936042796847576052245256148740238251888915102551878663186713358344353916758460679676421800975783941373725526238924123561568527183220833837572610035697477113205998329883096675293538047163121278219987136195627549122525288763218531137818262580851234237128522249471503723835959715483563311070180517801819041048497764789019568013859205015309985273908957666041014156084718287133712422993491082881855249678454212858610678628056983296687236429672383730199225324729851117898707983002489897001275902049181420400245345485678268441145756915135935561046598852435667578018940714748604566501219449845705776281644471300294351533068064116610915990112336376438850144478499496715324905931880206116928214115012731312990665950420847671842901963772601446965350862134737455436838819405093398757814927530628929553797302271350964705146532308963632468880956386061353837484531846104328251145330170719920273751403040193807187542945097787603951252036816752852054504628346046927219519245421112316365244390644410548137444967385253498980418813345183516977483941126954852723116942172496182212160535909201982957476035769871629017442914329124850739945338899919296787807069700742946415055706816248495237429348855009511926247719827652948523265234051117847743857868601966314467517058274680771940497049037842454109728153497996060414164652572903084191581697530817747905705970482104194399003051052968632055723871377710629720968594967062419578786386010588072478686737100359643838231855019691387984848532206743992524566567238115435083288541784924164824735008595071943262181905152335122416433531969274328260574864570140465969919482921381215050424982504199939080933500525958148846497860143687864341327754903898894332939057833301082689323466265906634856254865385708290337155252971070955516906104150706834448540113825937811862324001844500368455249871945997723532495493554015855786969963239192461630787822537737949431336024937208657039768844085450770044129286050266138964521148205195183505324077109631407668089647097105668026664576201137887875427369946121041105574989466692247406393506663044207581314686695648859972593728287010297677720945998879525546733363772277300786608917134487210916846827930393696992736572138751433933566817547250867487580849867360785252900682183068447503456453544762263750411900942135689219765541671831082867420549965017935867129705012482745053990841212343135739213848178960059262918573934588036344649340402884235753329084449863000999932813876662879299570393898355054565409446267385482006244893781175724362140826228021741861874315205696392101768740990663599486644992623283656618189027933930568824914939561542520858879514319492640475621869827549690512980847505673937430970671786810157285133135221377976628017738406131237471559333397905776418534456348675226081073642656785559991239072310809894725142610094283866832656648502655452016495166185276209953426220248144807502090955072306013077999524924582336821990311368166374425088188631338612858655238639362029395784447786673404423768347913144403706909015551207375711710836891377909366302167273775846675382567821243510147502362002705088836560398111042890398654560121421528885350348358936003946782657999073374293923441393876169561328452971468449918383509878212234680197844978196176639661445569497996150399969925252861296300104059459960882176466847259733207466577380024077884397481744327032824340201073549020050335376548970925396970116184332732141886613682061326714906797162524105184442686154074304542096982378351332581665422530779534947958795536641297480030573688236669450750554786034658050882580550656306229354148713434909701466962326279820896975434610432829208196996439011133325343361402432370817039096270342541957453401927623736087302525256555328247331889691182436992090688496627435717694826488455481943103853118539437060941625164906759328804096465910564733985277666399326748495391764459037886844493177165027163586333587791051926731722149761797523526670900888873466174883687608785038223069608415768266835844470519334744336059930442355263505597325200269045557858212472384733484166712724606562178172856481766269240914484680240198042290629990254234249320535489509168224835341419956701103505563459725645151701680731068965966630617903986489846790986820127770998690693909151270112890058601575542606577902956250103178649607109628030185295605029397144028173232898656574525491431651667760000635541916268823584057219777910530672668341514474652046000219467679896737568598780223312817385417592480380843975687833607658213292763090927647325512538128121948156121235403079398388832719041224334836649371591289639520613331846780244173378813761173207376658597203572034088782407080510466454565033121064235474191319234719673025384425666632230641721216600383307517423106731973153957275286971529931694828013209168146058869065169150805047290869236924748662117572677403953215599193865806089937189659387408208932808334721190321335795402129949766320695101768043366332632544586428023972781009927787722281118743553184539230672899517586867231015483184935865394847297799085573850504961421954304130666808188997393711088890174224463443113643989006698311327881172538281752830996051595548626173396349338166351898053749495135942151136541174873468844502205604280411305389089006039316109609887128299910841899000867298311473099924994247377511399275650138703595197084304802738280691865087556645043546744723142598686211840828173870235103655778306408452628817981468290616505682032383251209509224420061230192686070753131047581152201657760563487094963006321958627082625980581013172593676152041344756942373451522716980320455800865109926457347090429363580630297847619725663494687215333618246535688983484104261375622507589144465232552669897520431583510933374090810759529959495527744876926961539689602522544413761954407651017129048137880271224884069060152883680589539797380657476728036781614285559106196653168611230197659887459347885428225091256829172432819932311756211546236850558240118783499128804409282524020529868010581119216689628150594883095875811239760094946468215506137909968381837315451311187427511211741201365589729836441490798742127592949983228389708494694757306961197631425193467616384042940687763519175124825415277536250023227280707223511860555629326908255653425845741656261333895967667997348512412264239857076247459065178719000807728651558988788213769088949252561108613452510499615324441318906825131779176604258557981905065632794707659244416691740724616111867009263139021052738128970138793199074749213941912206039656951916635927983162014832710517781879457011959253019780114661249068631681638154322274837417233462251921925807973011677217749146096728825245276447834183569845102977671777171464101829946309171871881729652682389010816578550935087947727716419382362891606514138850922527446551117716079457870378332694354961096753694023513597024056709385847578424652238892855217259302129789602389633169891197374344618214612037526229586664221962578839973232219232448757291288653946343233638082248523727552375264704026800124484232904039698042606240064529315020643354772928979173937710531090158880234284941398017031578280783647968310243466774497199780418487620001216721785184049298223229988651268144349642891219316266796719774064140958364774655324634262451410314064592862219916329592310035206418152603298787819031692759852503943484950935808028078781955536453694093447581726663432700156669924488595233830985217330079032980068277972858990734054737120512278347738878137792082140182653307281737905575125694673684614701549677391549391425765862663465912211064383434837924762908088696334800850341600680219206766379560743897263616068398365816530113385478258041959551279403399208826796908300280789444732223704640717725089001847202062117749350699250348868219215892111069579446733350658803039819820522367116725451185440915450702869843766352266431151267691598550643286714699523671624285542907433355326811980536193067321222711759549954605633782413061557173479926430869109101703119608219097026648056388119320437545556055143840280869236007451290355747862957673527650788285595295379371617397538283522466040304033169642735759856090181122383281220581810754494178606901639305709823570458796431943912221742913225104743601752091766131409396199229209882335501148637440031009887974641996168006228542853029100783723600301767240648964002953159959093243955042046705212858385525181907188089745853516589921526958468294651071380382440250181409399086430924607361815663842339423460081287610811082178183935272244634238433560461225974351010965310592802006660051972350292305895020398452576596215241336456675353061681213114105804387060624042126185307499960784522165745594144481659567993505320436773861078932087265696712381346923101519567688832756173619912449895726281242649249708128239295402154638835342113915846665316279837743690127563054534332921741265975504981282189339581219913393722866686702575470279234318399183114079842119447860402512102449280959519134425156656329577981149043996834279814157148627874039555692697583781652810790788558500187220042932568741016794895977812551409491412011828956329995586192061824923222177770236233495671646335735665159249898902945590847338444385004803006034183066822844891596647036646450131921051154727733324155161319817275474582018129369822625382782884751677261920476215377876047339927665006802596410643030205617881154292390216020209479792854069073279470585639775213780525606035897637210845050888650257474404099712187964270447192221764430946710573419017577268226936071679291320051689002031472650350868611549520822641753831268410305515419137266784404011732260572369529438192285944525723468665665847288934439528244925574530004912360136276437366399467591435523503636415473386944821191246672131709675334779388114228923601477075113542325155901326034259094825267743053091474564370549090321512609029810024615168646258573924564393698205368268953853903879010325577526706011067427637212526730269953295277907495784828657186072257587362463030639798306159766844077835728057595617143108858661447821604620300753601253154104369923991479876008663164858301939354836657210084725743486129296770537242500594645573464381170934200940301689458248091798767980153553388393771717453791164484492244638605032585835695564024272992335494174462170226945558414381129150605992582081491088908198267747240230672968127256452927667729626533728924351139190873630473777447960307213573346716123675853307092430041478244421022069954358595679066463307146393579971358968564861155050015449036202805840471038069169556828687284735276665427366789332093218013500615351236403827581407230234398551016989539779903940014710280244847699388825239253962854053006583162937485357656343893800881569854193621408958929683962737834592826849793925701153289583135222443271890794182733947620157238429718036935649408194208635640741090251377687417933130617038994569018659727632243021070398788093169364556930451558831044792178328867871932146163496916515369995004689329766734052204054495950221241242613216196307206101067222761280351004166840452329481555727684789595707600457781347861019739096687472873766396462354531159043581840516655603105668666088980830597682856621930366964592699808296426063280652341901617603952902054270300194135764283993048782998206233861876101927790399972583780950472742863330035655236629527230507828600286140584898082623859700618682247676254316192627470739334882089344866678115067821460845568889199662070605863677232443228287433123963102611373084801789895415923342662856137833029796902858101625763728226090239637703052660049085146757735807697892448617684537939895809182305215243622633563298542795860090375604803579957692199959850521512356960784838085085806917443541043972135138137026896191070566176661291223036920764510270625272543894941788635661762471732299225750299744420040977916438004516973177175040977265481745807579379655697210058426035640035313950178943467713710386262183657257999245116310695758615816421409024483488127534709292976396829460715489391875750196403680488870289719574758223278702847275139561881180338849307275837459526546325788917180516621921938167082315694329135545683027250394717403802809138497399736327965721851191723047627813769172553624684211123743788791107404342428788422312116490878296094171500060485178300810766498081888885540733881129809705743672054847790266057026159678597188628392068374942128791337435729619053889450734005356850250615715924793917600817277970510903192930966050751288893200857458822481169639687984597439069227100150130645974139267908491696289983934261554132143190371140401965535588754335489235152698849427492599001909104409115154977278603156644152753408416895022952424328944810288438176348369258092179925408184595098898033655710534513464168838398428751826476510227137650893743801430425304071074599639423805441889214970663986657716437864122486355576975799828281951059307768221725544676708039774535603311123379067155437505866057865681199623105770354958265704358633764864623124795860151803347125704451984592001669250005871611655664369346354039317874424445641557852804057929752643372595659958874208492197060109206248173654503086516107469617535150645723931320333359874916008028183676514439626888069490810772203531945492471641727173264737392321825871019894519613331480075503304715364894544127017215645191701671492227150580089361303881374641104656546799171390550457556390921914718477684221073201426471764182448500696042448120673850749220083586658566671008778851507496349190861457693886019537867248737294706866887457432131799006218466777530295298264172698441934052300287760178443157403886034454239599295109464623741339446138692349667353602601813100717298912614559859774508990324016507273953046815666599220146668072238769706308791031502325070024453066148819998079284883541133372471063982618871694174030888253372603894753853211718591061436065280475054553708685920928934843819942360667048811746129651493705944204768632159080931130009422388332848681472833053220474373097118372570426844482597293851813828682681236276714245445762646067569776335273096560339184601192238088393642650906729759302908031712014930675686993552306834284961411598563001122487483395926644637860128254003020815086485859555792641522084351548640491020734191601558613603489859445335495128316020852696443176379981319207231797064382431983202219473727479732702295428537128767962508831002174667568337746564744186298462278643277051289405783037442009409382833425389123823536739971385197075511925441788759761356636295304318004388320021334693787705696549666774366158008735555797977603026019045841308891813191335897642660456632996683162673833118998686407592675357604422049814042235914210970158048617658378184166125154646918202678862122050482768917404645296344192515266879651763709067095553829824009621974644070389103310388484559370835528806894246729620568304806069519204033406889708600573556193527685120598590057261103298620755139705649276225376547277400710468522023811442300944632042672166723790875930078380804369677538559892496292228840405430465206718930462029781494887682804130045494215192235447368127868203819603684728208194223976982688549648275232273217973168908661253324173932737533673010982334077688410036012074285555458011997597004747960657678950519393844327222350754129933908558021892454893386921504330787431299466342214786962784523471176546137519887373943320929134710067437626490398941529535857816322284008794457477257683533823246718302848819847805013461471506340743810091794939534655914354037102074315540575843915458551631426699029903632943518637464467862432736609227901685883948444364545251598711691933684207394765760921391296620453733684051185032018423884111053076883932896558003998077018320478897775741512692779473534495034346376225876487159542584328524762777202519820489636250347331329732019630693585927339684603501366645673364461590796289433305783268418086294884353516548560957432128397700000053076408279085093125167272347207306540334290404715337158030411001424443694628591968525950539153457286875743660870328972620555168786859504175550494321637682928781311628776587294076737184667663744487419089700241763880330646744937187570993257816609833946407037950610969243958939727389796305138034175855057101147690352040988647725904110645989641367540682105906031746367545704451122341419275770518831477102889060224926521127461884949862111762958491133822943024002540291171944578898277220192530623688372114482450123227160531890398249697743535687937451923155986295082169587899009603977254244438321989356737974278273750419374799919332266212603935662946941037791157138428877862314603120496765833050093348312975269162459643387850097223238001289432221672002504274585985794854696971279408629822177401414560328369022831980973519680205502109483234651820359850272425088106759693591014135633078766962337813213443287269543312206975046889555364716781146316464502953433050037670068378089949576142477077977969485737124716558109766437573881589788409508218168560719631875159543185489420520724082651159446202555750743282704564080928226149086091649241850150101854017704171554188135211750629034850882361241534882851010100605897488347562759116334249567673888678752295175981536911293408257433953236197470380118190078895077788218985098182943097923022431204884771718276870438893608039160010342459289655253768045167438969786029156407873030653361466686147304955963851298308268805290868308719501235314113026257783366949986686054189216254620203434348369886216939379921994961744936313039453171829029929761206585016957880145247522502954110974256353847857332134319992026853438214772072964098673161080922339928515164697735564382690356496102165509846648862947047563187704551310736846968217816157281403320987132299869088825609207786682209205453584425932871379738780039979157313027762734035745713897205682746008612603373933102006213687314281331238948364829989198194683827564290223629054071733893185092725883682187926490901587977544694156454619207922746195295621832910710257142966184616023501655516301634132210425325466633408348644248044818489136638949745417207676124186884724663921214135797060630134391048140927176859090920772096382268013578286830965151641774232106251298799845961329578757240846192848503240829710019274256053726336842783665829794035967490749771738212941159880127801236144969240528268294627195290080574377321001529773956852826350347233606202964364150635059533508593901811740647986194147668590334174399474306253672909167476775661847908673276977058467171097214368177507322806634154247301401159781907724598993186602184208259939199639500044831991149238840505134831096014214876888749155402387439105538065516055021105774879175081122482103250843699706515267162648067780340400371048589303304289579261110443937486592479409398269382314603513981994230021758085897583580911551106510430367522600852647038559020510745339926944807804579402597541454985152298905957896526114765416624794394737752906837931233461399395071510055431031825067596696422379631608265904459973933133252812907144817918938783087314081043807610750263177359870911674623973916696305665288128828969196862913916329885535524078712853629611354578291447371255996417314532486057891056719486668220123932801612857844918970236394863763513658423654394081754694920934202861623477324479448004715008046053903403893623936360110431043435012444938416441316051606569773147715296296777925121771822989051319393683461884890983182246513495266909871669248907053235898046189720899850308083292959958885618065706722975737427744332348113989562204765738584688304089172111914794412364722522751407194694878272729863326473634259980801576309500527500958809294024764417332948545279132058897188655366361659447486504064507273068184894260607813406659922872351651155229509197672176067841896418334540022159619221840669437125833586926912117675258185190172433342406510625646447731253618095245404143045196981910177451019189085801263828192242114075181689834719539242503645326580148054401723130734129582243692950509196060584823520980985423509885410745507346000436276938216831979907445393013181908628871541383291692783993760667466959681673704720634976776779580035651483435711714641157090322536959424768546451242562106725967791006844861897329959165488503119380022225750687013509229264847792683901697490623473381294664276639324496644102399583333556693042954414607915087667325281276032777182696871666946904918498326996008174757395931956110434696256666051239937176507597772193205324547873422590573722805667510802279130007318252522378803040636709056322785881386066688241929175992007313437211669623803010251081062721799023469519890928413708288852333964471374004812129520409767613732147744920227312752510382560348433600839593747476125204254214720923734175450922353393451852915867920917639507692955301882927744695899647130784864694094137606235681618461064234661066906855127261867614462800542323810397431365167947173005728794328480105457676317589863075454490515229785289380256764563606609788457422925683703061477669120817831771142673716274640630956606368136580940926796797661197508121800285982833368951364224064580101533802816838547375369764541381992843153047730854697419674481457582358501704924378712039727218984914498110104703532161912782116094947713971477128981636916536863391759679420766812031559294865106606403774244525161975562675584059915308639192669127971323569369364010262214769190200261536803271471851339787454996154428418034562987448702113565569972051988652578400452415901608502436844169932835192616007886054862142366832456175197240156973561206358312722698596175964023083456637903796274532678711612206245790610089768868259509988983073018856989299278145764706905391086017841503381888678617617060496830672144487897303736905537476400648048067386252385822633993944337945425017766620789424363213233393723859945147052142601368394748337116703128668894204633734314413110753079512424713848627085099797972945315066589330533110648344221459395620856315622086572207383117255004865695718451298153207056308904085770050534083405353435712523989232897062504507511958394788727991200410238935089245848890034905530509773757174266389759903655870829404347855304309189220496766938140176773099485096369245457566576978533518702050050712547520581558634002349362374896151592932100425150215182549131519490443846418256242393312135210083821858034699437683706067226908758604630185092522339218681002745664095262195981540866838866904270686679673709924079295486140426119303868665560786600078542731034850863130416728737226009852554430905201586416786732068269789191039702446572529771678971568777048291399399307394105582940846331970400599552832122264620715474165663369770257796876589869628366718635479889665483101925756685002216615886101932409975056030341025658518399767746306842346161042759189153513507247046522996853487020639225506046147721188802197475847389964069716129175490353866505135245877840341738642106315132518319401298737716726412931106136674056459549427963025688025172611488287011579029944059492860990454116158743662463990637491355320989796572016425931229386291360856014369531993875446424574500533856708680739502770396116710354791984697973429424647970365077983181526009548885159503053359769244749064424698352806881185149585565676271343543550155994160474454196844740844276593437354210999996008768694305752815943936549547977775048885914369008522389554178739214783408720419287393955844738970647213730768853146958763798866629481682790289060854065070428048485878316157133747748826330543964022489872618919953370099740311958700456430753541604854511045928631235379173698700434591107525082059418911091287687212953317347463276600873163312314490175157435452782184204085257821594663388621653616448535330544818163877506758495909075757466830471275858193370539985713713259013404269271736909915422293663984871550261535249831200409160131416339117335406865327448642032472841015487432425574390900960110426696599844662393526079006475645072153570242109010402578659645915244839905696080466469161118371240038795718156247261519541056409257731815588558499705947472640235214657258227281620148691624572821649160172457819302932592173618949812131596346195445244008959119312295050463380370849745285006637356121871137436842428317450321013429435480679965166009789477552031797888822017376671027410372758925234681825519699985407551203261122209829350944058548864601960022949927376089634055749904133045762668232305056779789187580938979331408466984856813643342035996933644483113339540130204936669378881255696114541207983662466733747674400938630260695713116775906934757951790094916963688220586114283771483624625824316821135314272099915125048608307569239647267150772015941043405282157976703700260822633363580590910626260869641358959782656617334527759232196071316451429845922853210846987786367697894966743893760564593238682464524923542567891391682414378372677294636065815330075068548636038727144254067884511385749884309145308051082325126308428283591212900426172187968948980543222931402094681145195346542046059027140828288310853997631961923184386520804945224721733184249133749818723793808507172380590986393176104892957687295210651995721410370559653154305929888052082521229645578080718477724838078635705395297149371009210553856458835330403494170800341991107310865500042777818818282000007371944056335516743390119973503935799776169229522141928695635570891867397824400520248045196024668426319371575509469712341050999246268434676711290794130862766804026532266825469473882428608692743794414066628110796517442851338301311002878510774696765460147223985026245800381176316718722230835695984826566319219811850672991545110260905855716722107414628728236206711770819206565518527900263155599770831204832139778385569176842626395589734838399781972834232318775074017217250377876082743047465229638588173939950765357025467911385143393561179066128729590195974450024918745249011763374769404031961164615985865702601413064587423173254554785711681455674086613632796051659029677121564917294810854039095560464723469588562141381190972972586344513592688320061492596606639185295758872545282750518924691738718689623924401566648708050292917431858216566511106238862141379519312443863688270173397997201779889548323669862502647798902341860927877030744101213670205916223056386595758597281976909386857534167599733160150852303884947532677313833389721853178078810041443163749660494632588396935432405205331939011553558448324730418959665484397685297688574066630428565234301958706576702175568554143308500950134888570530918600332779374333309124594902423285413157453382172184635912521983116224430001065848847362510442791241840627569702257880228994446987793956985602775083208390511875351620310684567493631988506001989982100477341320442572471998653952184031316343559279521362750298419544589379253211747539295009780231372355636903860526528734227399223816592728311526852773612317355853134652493050161081674852998023092925300759171330707390637222977689943304665933709153845196617002845172920453740883587130620842814986838468356854502751465522482429941932348449624588249732761554873436176927680534443194338808241972952836801092646108608909464796451687199537376442392952390920289079746366517730814769942234336690258510594423083430400604443214219362547377696742460546009479170777884729912969011350859284556282960107809795273552211909073939016940184926522129192121030455296425032754634626785638828886461127423826622120247465794152620140087139550924385463274850779636510152963991120336091860943775195217874821651673964454517587651065295491657914052553719835983602253467542974741116865183690132470094790596486350619388009534932316753931905915472073208741732661601204657426704622194566079461878314446045301513623943211816307212209906690072385373722063748318593078567030746452362706269744392989160076117216261484652168099433320780947571583220321557256913407355149562319794305202128210290331775882517915096456582419975207257916983854589305310520357554707281793288965907497943996981347604737275549595663922155195775438737875721102264656146856039449914138249822217772647724935126229010993001588293636752233038159367797930065226125540446374932253486336602410319490201146645248604262978782166774284489709066442893598076015074829842678834906489953884937591368257599140193227021490684778988037620881849150205792124173424759003618391035558740503888154783394261868845209700800229699417997305534445523860723609176927391338502057276022263029369023614166375278301012820160155776652589834761122978745070015585230856508350372180526082222370935675449888082344365968989588405649122798951631488766615192961222673019300703277020083056006888583570140742113744909454998478030111433243075068722824584123052048357096572659634889989869032763168454738212125648105362276724249456029799810657806520732585763417605193224896282026953904368926812182490533979363610519284991713567304073480791989237746069979235322807484035561420982885072140005780961668810991573077504838631951520560163148580468561530339720420909921117826289571756764795130461337345905517620570325609536010769778385587535702715822057672188322960900137620542790987000481693378063260928879240786418138192341614485447320644927039949257938888392555621520475144589074460372812051287366456593181682471460349431760492519865713510214497720755939686474458023173088560495111163541388808749445687113448397430541267183814392195211111092361300898533602507148994464496176179303855541827249255772734846830458016701823028698413706702806857205196459256027407248123078996653664038664956483789874572167551346241318167780885841623264286061459150525839259124629795503348431364820668028831254306275391731438590316346736041036568016749688862560703707349738141801294669169784675017115718344415780659293906722906337719230057507218546858617434306668083112361473210458601673398218044152503722391606080723432304877304349840299641411422616264343153381866617368673689847605803402892345324750716267557881533501577566170545654023934399874847405265645853697769820949479166086817577717378317510160123490400179829647561748108392590629193175192601456996862722484749330844068689018211158241256777675184667053381225873527572957613733662043261427927290142069665988023414004620130052596082292271553641645092004503919861124271891692963838373188080543977260651982072524699916853179515124022475915255305692669464944682285018504401229307898453893264066088964002679861438115986517302100437480423922692809980145343366422618369940652255284461895850870928023042356279446383203028378142867271482136366725668465744347835439590737245170147214170302140016292609630374890598488651921999287083104958812148934318151996023900462561560434969673456136834675219699101597130767987022968436493142498505718746164212690741025217818524805112831817013470984742391194905628682510481709045173455024374782398211287514977394441851261739249097372906724061263040238582842800220653261348721272439567528335032074591663728130781739868093432648223121815946239537654887546366120550609372148675939329565094826293867481944983436545986433456618940815019207344031029644987594973126572539072633622520635063892815069381017290596976294972956803061523786206819797912265986621402243528463760919276022365201657015139326273926089208376823319888678410946848015543307096879209010165566065571234847597761849378481072046957569127983406573368040142592205093253946555081952666658038682774525442806359603133045945157412559313741654154752699842269675953401648297753167260046904741547609455755684780010468982870595342880789859245731580256368393418055076914690820399404880511757917599460037945708226325356304549523971713132535564457308390862565401774621889369175468662598896233386381776287638637286729135729897736913755260840636698855571518001015538088303491184605509806213788417154132117366502228755517432683089596775403231092281868837342374422821037573908261499984376522141751243213383195076815918131267638798258058230594674559102220306107204972475812415489093403061802145144451204621758262537900124151339594601079845352833518619998521681540157319986970052886418966903429828583850163886621899109229463033966484506030897719676250867072618189751777452265600183095646983112921699595820645407296213527688036538621412035650355886146923728919369646593818854997066585696378934742307357099624900576894878912250183313626009949280567970936050597181538881682400337343969352451927984266100780198347620636223001658249360388479349794062689165354571943421855573293376095732672356232552733723165652820094686665942735790499571923171580574957748718438833468076486385425940734199287731444789639709856346291029156561322670315641582534354177400913655099022365174126680916788881255913873145476187829765594976947649538936106536623421551489686843707117272376030994576454756119992618988644918334068027030184182809423805312426042078371963989780815418533976054080179264533721371396355909741074213270573346866461679377939410676134242663924156491964668129130023789931940954758651781193743324090229948945850885738865865038236787075176185558224358160210285874934034169299417239110047194420926363421467699954634636588966471437083975350768429674170138984779355002710848600443406383597706166676000838786000665219161851370671431761982948120973695188881543156551924730620272400273796120022300475687661410251290943991221689089138238708922457667549317887688674726976503277377835372816296537900234515051612804364312215433121506632049224737312950161260589634165972262310480262042730607636409989541952030491258261009557197427341035299264441631791486633271400014614059873678479228131954214039625086996290681358266368849870348500014630340969660187483640922847371890047713184131034338143793748518047740036693517780240301642066812974089670046149539709026555705295916650825580668270717439221775440410020259167791280420641063007712128290303363797707869907933998124619304368505795491704657160506861637583236077411543535506879686489888222811951288208015721383659009136176490455054815908314430761606953671112929071843109672658806867911078149757208567586856283317133601390634452026503385567072313760177201437149157983985314697716186721565252449970672300273184512389057376132871358567858431773891807901723423262708340906311971080191154426386764409902513686133931176047108440544580672543028072762846414217637053079262077173377918769526494893237565256132232055838412416089410180560876772188602835725450518615881253582390101116976359466582133106918246950320291850031478400972983320445835863943283146059830033934288825057923274304099008211040326774844062302918371891825471327574270868239402873485790975274520908718616182090633582905538498657496510238573487306945290272221883077105204146667772358482933556238246760018510304112968530724525397124866251775079031690086645370766399119566803687293474731792048951163112845278492054226561137662216674539764179115142592872076583387303675895849635932582841543981726587268056914811875680213216477415202399912748248406662158731728635667881208166490873779558052405982523962295402558496109174025486524757900110987993156334140228563923012577420914465183775769166851725337151038328803523154608329070495510624418133159514900929461034425192146703224027174198504140102448331582261698800702071820357501833658656918277801387194065573162735774364410469148479783198819528863521688343926417659987371419925873750387981418331656403121596934525172735286346037044921010781445498322300674602014837277071117068185623231789853482607208903739534719823534001947348332173129540907837469440863761570369445993896469947088841398400529730822979595497550281708638924531431641236000785149903396226438342171666363414705803616006966037453449733587218601178078890014855401308242548545065280980900548026691513680248362222764072632832472768932709772321789210835124432977951657384201659583895477064412372654231937463362674457230138626315280147279274709381860176361018236663580638538825078283832339701888065731513381527147197142580757848943096429436533907457370619622778172763749537505248781140647913522880287584289091066289119562959916510496284263876172759788941735221456724922880485203008316659528455242929731441595326601963953089094930284551144749685288190421835281670213443740426156929932850469515668766854935504178180864725266432675010245837162233968085516403738604094923209113354995532558105085487949640643964329865410290185593115861887545281858037192704832221669525705643011954275305486575469041248714304386322846086008388874888381831802727933848300473414415522653657450922029734028012148036445993267590850936581280240570527203918733639082246252782538782545371768993108558598883748023039458817014314702105244384541139952978400584063983094656936138896292603499650738396981971074474901528644193136868453014579417090121356280975435880298119729078460067109551006418620525654604336057781607448125118305518004554225696185177544806814105042089876767790866196055825964297010663964424231044642792715165935722694943777024618568855522021604652557414768511300198839758268131478679321426166085868196506762907047559543671736642574546893962092944669856953728623505837298771134594684101524728224056923276434990185506513178948770209423111544096380671587605278831282886741328415377672390217675492675934165453398832178832234122114663854927491162717165209341477228474065066685029955268384676782346838376152090977123584240052688350613278321414445368328196034989226025620481384197106766950367907835569173004981289382727652394339858444728126148235120289570346455686530344225150490357810620084273467023763102573248911741113181497992683437834120171114143872600564667168714020975689685298043890453797365874590275748491354499132118882071204199312546491072480448010284214306152034949830053024929899392443709357839506481063372444872341186619916627334533500383029653740276705446052224117035366877527867185618706641457192553865343309497908923130140356114054457747799590196960610272140432153779790804981308068674080458982957986553088835332402262350680155353909309952281292829732434837715346541699693920457053067149458989986045857315079233653091073204368730864012180294145256948226453618029789706958235041738074004249296667486490778727657208678172488199292477984663644348278010908433332048237001794618452294688258672643793015698705795984741594393379219906392569861694795974368206344746087374957136479647728592032982938308784051185032432437300711361879783359076036058137406468016284278199625748257557937905876779630123369044105687335722508328832449192691806500201893068237317682051564375049382116028006100336984966613727783057290407411372778791131195313245464305705688015656154737084758083983818266254969484740905144407264255770334837199710791235076597349301104874955393742516787658773508927657343097029241493481459518423176934740068928240896259384035701701386272946000452658569820631108916844623330057187696095296029136655982744325942323157276920995940898193403559014443115287518158232522099409584316151562862196543005665703867911714659540607451092812992553425962675304416534144112621629746703060208890278563024696363618174738524975381501859442919691354794818253113252746979667799118720526191069641464630614457006455663253849471022762795467989435334885284212344968992304177062361566940656646522678233573423790199080575734826917310588245381710903897516502312783667007738537193100789836544281596880565924027907862138814503262620610718431679047599152746514263209868254851724233519630521142818442085514361902471210886854348242169920666514339929314204319201976783703816020484361285476354262081941837582489562368711137970582507004928573738600414136884547414426288864131649703463248349455054838510955013352109287315179099483472616770314024347003512528326507455839391839001490251459455812015354467457982339183087552539403874545231275915229465489773863557498010276490150318308672444736096005980709491996461765026274164192558734582143162253012421391664908832645070913959798647972814003664291988191128414595637763439910156558545626433356393647821060579195330174771050534144203566659096158965384655960518575890373811962683102568579845455479444990699871300267846938941918467467936792789936098197983054879664510695433335913192953034577902246081796311020612021676061249047926970614374418399383219694437595292302271620920072177619181527165392286549017829473377342028766307046310621214916497386243667617123292884970597935678762286052189611363599108600521702841233893832487162598095385922164200703888826457452405229059999108316615850082196736049428682123623172077491936492661843995172545989542049316046305746701683312154839724324673251539108018464177963290980160332779429577312160414740550004063671038671208200830988019219733114754355620272968526797228226721445222129866590248327227320380398164557567489776051737055716714517641178792473331806568414301371663877801231523948168014786523779729328091602674590220846191088793195431923614913972160149646211186041231468291062252885584084919736247494220275828299966446690664482877190842176435131445876485668486854544957982928508769630719300210366377925994939444312537184515950034519845884461070220101761463678573294195668874745972060572159883922136623966922626729828239652214532292059310698169835720859215405396429294768343292980472924158966200170896485034001115620284855705105859244650493429355792227482508877893816775711627374031763138531418383757334525539215535390529953845627354059067089395070470931827986720630828247757688479809861168248804857690272389745495619060015341943341324309399914604174823566160546956821071781994365997024071112690714273141147098606002764257663042635696183894212588659074403643694066267065538754210154137971852997944063550792738410496362841958029676844290822676101729792997665470724460758370840657557666839206136529321855791037193600878490833218142329010604220138719567619278363483415942848038525663916201210345711790871710237692975775075984307590230358861611025259253790719021186679097861486947294007112040582893249894647952583914269616445567160045703128354882904574468261696237902583504180410531475346034458984932609872172606939425383055612479621746189927419610932517412953602846559433237277747752679800808273258336148225198605250246624915479718786805344110392240963734812716648664722821594564980549450901584839904195226893776276983097394304444363157320682015660824736385360232412945355090714540299596320245924071128229520436749271012629671711403310772607702881348187717330125793856807502595880487835733761374649551163923935054205885396288622595077747467583483675806545286530907903260912667979535120837061500972990191868403403031023469314550001557992987050401715289961512448434344369631136512194199756178793593084033335903248044627402462215306473181788260537421875808908174044068961132751478221094107345616515132340195778924652867972824965524508175736229301951696223656751008863733688223990551406910881360511079920923520057692605459343069180893592439397729980096712574574085673906032641855777564363889672598490946148842120811853396180091470923725194915853933068031026769227171369050291287466806795835164654364873501721534747818891032649289590891774848309760692270551811365394330481456346964418873528671201767608951679005081937931625704605122154807364558814447942160978923445754805925129648811447263618321343889454196148953784573638793345421436579427943532194296474860615243995259135471938320975218447616575634865772220048061833930283767519695744427618833720633762486432665924966329218749525215209204872741693984021743249891182337344874368323846682492703169556002558655550183251826267503505472094990478386894000544429730032125691061630387367466063505452084772274916984002434977136862669497963551849508048223448058825667195043027287778470206327349885380405869797862319822764567073157049710657033120425407049515995580566653150688708997110666034495218784589629326049801711856764274096226665906005400105266558391513808209422463491417695056924717303245281906518784167484183667675017757760075635847414469373184441796534052067038223882695037239642047931773836247940101607084756616021507048426833016222247603016494930529691700713987684341598385341060670804287990138523757778806319486436717025691325151880770978952500709524021924701614560803173741593965960105999768799098776822199088283827895557589336104559967805380693760821596794125922911288771180719408337341380913811656309415993829004941613078526539096046996871510329915704499715629113745060269185465919493203186312524213075462633073583848557786189859828249232634686262535227091571700379919823557667631443098796122761285924702968880578838604655154246183269070704092724227544541169283426737818883107168822047941192072894734413980239041269203000560130949469238203858577655455989321957805047074494250073100663179908297212970456617336776928981803671634725032707220890430625119348402097507591196474565606760035493482798533614535391479156316026512923498359592188864541619992464320636353872260515959079045010675620186776007707792233789461642584454387273312516120921698020283506407367594100670051544119969334567042831757094957986425818200741092342220404384469548959095287077177959466866723430152498260398655863550482494627849354858131935678841828993528803676930106538382204762990004531267690708581497890531680802815897245921917614985101338569676988540639392802436889388933783676770396280850399579910936017130303200531629862664546277937022389053571393627359569415057440063859722421996441518410593699621972582380822893528113919001677608759912735846899432222287312860552507619976553085987865360047966745831287668694601894728382698269291533260700948185573534698902802456129543939277088168151411208165369370997574617861642745637596916758066698626857475597830103765973663386597513898244529720410464899006686268301807899943884475986595859414766750217191969901564728431985592706521324561498502949267633531505237269876103453837758934982714080127158872112855750766442196697590012469234044406867362009427042557466488065086297878695160130209707793278586018065775190792247711868883170227333969922850240696118530189344875561403727368581360416788143325574781364389273860334558980774990975946941402903656302010238713363947009197191522939819161736287089371210736966205205434287899821899549264524880556201846937432113773864089863049165653940107643930589238322326762442680906607810319048061929181725003159358917853098986515796538078687193104311905876635465441279763189582481471657376456706342655296076671200136201591318264455466932164493332187379504371041220300473427064764749860012693947779020242381486274311818478483338639055970548704605696304832048164650920190343244458248064614026067645279658883637580839149915630138349595691134392907981307028250115449900406262752748516773350814204555535235611202852826332682112331739305192832570349121020289044611629043357582085234674362275928552827414137468597186534869036692578605141748114704677202442137531851662061345227708401691001676655128944426329727146283818058924497634146727687165308684480106785633056008173552881889629361797864122916494052397459942185865216577054689886964203348905574698367169194370021129029166684926790200118737259948651210911516910505563331518884457837868646742000368348175891613975522108044485049569368642263310910679105325346212984614858699939582365707793603323059236671639589086532204033353364219879691322685885252496726740071119544393208356134743252240926534867017817888802227019921273248760206484002741052579060408693116967152020250166536399485668985937103815703795089853435271492963750323459271058802881452689880877114371844512099414739731073291561667331292491153792163630315019168494585956083871394144063738052237237605408706447044278405600846489088548016367293145358076647650200246584554508543932211186153864177583432040466989164419197452152916601464408887023038855360897452872898695614050811880404573582628940540980726598041745079690419698921063879962598187146022040413753434674309624498057919144327468052979660735826516157951967518460029664954603337327778763213586724474599386595610707566502623068345784418075969097122806104317396551010992811979499065286277256812647712924029817473949169768640571191337728295789059431901739685588624381565816545870827250276978352842163779745525873019368946502888185447496743063860303652042300065195964322051488957301565205106553805868594303147510345180478588472155167156353500187313507222229423896750894598828743171704674805401234882661867290772956869635774805864998523489076706082797576642136089226641035461104847315693081522015187313348374904037396990161993829979018637062835431143350346385342531003549724972149457961299848488258758343155829438574469618210481426726880876370460800377845286618797903313602898284896388837566741208448165456961870832559532525735036535965088720911478459816892961732457122559191098242154133816847377067737836834482366012937090641429841916487453629812337037274088683319295917663636368415159120122641970086256327517584748499442810430715378653137213864777235061419649134485256398599919104322581450441477563810352451430343946334565240991103374059931305714124150097389930942189049497102131922592516461032561925746940464765715015834691818111334147689217933388189831334923579971122440944252504470753263743437864588848908813761177744197003209990390481685897622144443873416460219206675016828719835914442222512090396139191953060148509614138334557244056442707754617692034024251871553069790618058829184267987883550144567329868192900133565599064881507369501064124581305114933231307611019278240946265518571952680396984772535422758819518919984583601569802580944452573118180661384104483626146579112483468908767799684295542144030471282918793490090481659579083857855397751635997357698610808612500783196010711350324939026695613220977044487310349129500191543890852750340853737641222298885685447853172230004507946101781862306094997092354615414353872059258675576093021170513388785156787826394450161840679255841907931830226880772715636565318517396198828523972538309615176668011227176868414748756584290221115666874703789685195310093090649661575455956599074564659127682186338512082652422085527051223730614260956417640590965112872070473105229429679032009429178111391809013440407988102246617889184199687708808308939062236279908761661098725567985776028780200004348383654806543793091500024592297616179729693187280774876432129358876891050208300447203065942891544900535853079913243323890772014461634421281536756652631493208622925631908590527982701181458122628346905860115541609359752493091201997750542342121812876344512257752907754829944377652722720149865249626106540152678174142617232684916840211253034793399146380576758304567671696150883755085733488358627650497777455479720419495760081099968096968134981416504177284974869783679229445902582141019458942827650580753134723516748686248625242916070306767015185546260784103286152145899887970922508877410970722919921915929476013311654011508847470085971547078445490842389364508141603802009002352563458773814554064160488383308036206521638825673729695587058326631526599855948630683113454979165442077361090390877766095506365564251404500543328385240398565948731169390985101100354839514683705340009763997031010123887168483489918346206996201168379400520859159110526778582858561872645678852689893329477080915326110421710255055787878725578770448735269665955891102570746475930156571270673400695958678587657988015481957093846838576700513231416639409528812023747650946573867005613678547876428259096207603051552696587496694003529523365436913446961580148891198152376302729367017552572299280984442181525564971040047505113700803116935298220111640290005795185287712301854130167741614594816936806382083045620325466104436823237405066737078707039258857250887923679822357563752692519242579280124036027388225583829826064579380613461641286587220058084266376830226264311670905046783884427424788205608654797370261227940821896652662614843964116470399398076515189269558809324311144910657378796076244340078138731740020121635877705889568578825977145221194880467235010256232230409567700966500904500892630367843046583426249260791120476391537160251096715142217243388215020816482600151114689010495008979680184229273603788926929413027980136772822616976509215365956304600069445595375029495705968819788228365195557771296940047351153438063618906216909378289277428316786602468894989671542493982086546382180607580890217293415964857564296363058370947873097316920749754157353280455522898637386011787931074892213596918047414227490994388834357667967944481904366339767092433646846155226689856597302904861108619756512775509768711297215650333610186848692371889138481849617036765004809536769023560557208105260117128525781532238596390929551238757896228018286991976079991046491009827468214670878032996684726894906143443984162678212980976862235498352878905673750171470664428899989435357667145956749138723074523215156943073467270274015495543520527710523999587840259430937673131015462044389192816746500523534132166097321070226579250988152401742342549183684025494619670850668462361917679651009166616598950789985027148292253166818187438336384226046246662009700394563894420433637441774274480164964339530652118819466765704823856140713420987230368610770350545800229888610258677611962768297288987161812786629389970593966724959649304109389300353978621273681105629537070548149411827789313417662346981961368281670147735586420344043784763835027741021013930534291318692016446480652496998015531008808421963800642677369778373147605937782651366249374697289202281796788894752050235487729208271325800570973897261245965717210613876554915819530445771113296599492399402607745415793147487576271302780867779143663584396511023496223317933775867521172930399045507458516261158618791546767011341353466217273580277259522315597205851405928406457784399654973746529299273621882472983156197471437301252022478675895222130830589732715487769206015395864359602024596259102179890701803460165280522632630182598128202176821111082140177219969415351060713653800078320755829002211129077635175058268139872816695778918638113144812799654608731177418324830905729690424500206248225685073415345389327008161393826304850967404532842962129047874799937539228220430129276848192375557870445011346537362613364919440719272613035198487380867139020846339228523983006701328872067962202776869990098738128775584377588178205857250374408601483866064662603437334474135977653816496396960884213167030006208815482600647667877300293735323057894492056266197220997321681312452118526060062463061914494354333570380028650248690382183463874220954168687916036114944719436127336502378126967731099282462977043797473839258980340837486305973366423119113642597056356545976994022148541158776301722460091229203145039167381565210653195046004475459560149520418736033854216723293268748280841725187042438788333179388679829617066464284076350425382574745076922309655812727056838115987217154926828162236067477662804607625917172121801112882415416392755586341351362813055086483147441535587739421762615327723064370804594223611988927665093899146143251917180490002199996290557114728292545732252047224580168095180745970904520451571023885083577409544725721785520861442916084295210607958327012616441854888414160343312109729035930881056556979735132060181916784642937838368198489955090323777869376594955599702349276189527111418794254779072609156126908490754179310873028835869655836129698242309774579537393647189372610864568118194277597306150166513993773017083402226148291526761336891449022552136012416184870520601420262129183048195803900919690140965305536866824442126767767805678029126197006543765437364727116435280466176251626112003121446251874775869838445132686557661579801329041388054668141295439584470368729424434295087085109524615584433382853742386308333642167804650268231237686370095435671671417458592875712211782967875750474516783105725148960176650118179191981962650017528710645119915368427116872681598018473050085157322817018140464137236862856986340513767710692402237487392713335743084439521874276800006576589907274587632413797459685439849504799333515811947076193392359795129347874540177684782933652482211236090754955108791472770694886811179293514286169851970474381366161455974990042486260853880283773520428288140271396268046450777753536825065269478054531914602021627213953305112185984215875674633080875056301648643718862620145708948741127819701408595622839859316053500733666048707458928336185910269513271756806443774500687703609482240767554788846342612369067019807984281711184279365221580926506745623211870172067487009405478481140498859179552265921192775865090583399764414445760872394520831738561313832950050110747578986277239312692595469781198928109578456417629439403849139961595035890333308125406088510489637908907743649539598769426976059054335410348904783270111401371336431737979178768174336954904173169526639685580824565522270544363883353369117312786199152419460159512341111682963114561925415508260744660133780042842459288030587427369779760176498600756753603004537785609991646660864958898776643336696151372852348851335186212167716718527133545566650479519803360428531090193749704017094723167551431693398940020329615573105579817961276342502336054947367002458410825629506683848774452206936722071465530706837687832041918114901846691649606403875220490487517886098047292268064362709724902981568636596921968102438166656918109563383704734698813022340964975933589212302496416893834959380117927185648096984681073947709980962598898926252009707062317014456014795323304459874090204868793495996113549454539417428628007575659568013786009812889098400211483358098801671608745529292079347180770255612028453577194807238452645501300199833512787470129775531123835114541719561076764925685548256301095317257933284903125949715875624908807365999960518781508298334834708939632063247270069373289723705586234310568509774275080831625991151747317276940923712355723385770823525903884176498657962073036406403018045712875283978531461985389344183046353484386025620622957922061415290665229372802692368654491872286452069076038117290796759363737858626706760714838017756062579182151807152691887453254407635513896870083628437761193899056306067291391193852135245218105846401874698016876139478484987293683904472253485994356456682952947128342515440024905203452284938811067207848389742328633078852635918167102131991501659697217280763599047075276143047659785621097737542576556353606606479568205256312857258912039761369351931650441324155659033906771027009440474082144434202637615781822629511390895632802487553887140229698919287859512816264809301492909068774039945209321846774102432528370520636720133650347269204311560171712513902333577293627850804666717733307171096295187617868026005533365861254939891999910933230290434970188505667818185297597819275100474124778889733898720595950203661753396795669073036130326189601873180547808863857395889208441524073475619403944113934982723868788186461415691565994877796184808485250591827437779593350008522646029395173668211946281029757965022379675145429142739189764782766419671044712891836990533654392808938884553652195982762937957467715176154104960074193041572150713773345242868322453822925940770096706461442113775508439028013596496649249172939124807410499883080617649667119462492598802946019910690028040760035063747929182178094759982094058492382487190734003008662231367762009386199616619822295196682978461455628730285997846016393182393290147391266373305932668427209901537266645564603870097404179139912501724852534506262234746028353347232517924681391310745409775625973283920281155978895227260962715139101345186940134814562519919568751959681015068161363532801685231844566039438503341452347847009709329887493174870773991254879053328350797313045027816832916657149235079137935775003659759586935646293705876015306829304178657728049466873407856879837941108168520559081589421569964519699679369252729037634006554876790422090415141680206281554281009945369998835743252492533318367736287792933949120540630826254872729628199517410621608007123099420117542153145930442925569882489222698374426222965506252907302427113547731822302063535576662453066522330278502023379308060981331545635558064707044171539149062697159049455847058815514381146067055897418419450404168709575571666964347989273288626927269887633133829545680635361062148909168433169176079237413804095908854713029234225883418199192999750857461071445126348350912967970877253309754973090859468862066009719543447595376204713915314387596299016320408878899379974663455970024283588333156739196006645480856481327439717216957469865223007167364480787488846326729648433819008704283746319778962646133919030648144835343318621641776889457096567817615841442517157368663495318321181838595044687876316565754476562573945744522764991525424195358375102735664364200633666171564533704889750023569387654350147123906289959146811121062424447258205130275229858008133619654204466788940594155482199354645023007322424286916401155790254927928346524626954483209371466697624302434541767207410598178110316675249915470155666733086053614737974704462204140171218086472215886845386113764507904546075473609633744867801476421906750116831763572388031355424113021611474379992723348629591751258122028789644925534689353241905134957570808945256129913620394786979259807494534232429697040024581054250336869728000286005029541481440171223556736775476274111669849584217922535561862098441564603908345551594838377215036197307313144261255812469492214040329089293553600964976749028635693188672757658752921749453230054042425929458210037162523037304753325834252191731027159316694966640158176371289411949689539332477234551873476557030793352404815819134202470909815919477672169733447903216610299360236175872701047499571931102528069127013121152077274463819585106847164914215464912351023720557259544746880582700858187907372248782812288289619313287718361249645628279654106706967935523455874248439376387468154862976850050066817477473647096434967768787763568082713892560434426525874301572410863199427626272672657307550449243542590749562761846655954088530024029608727312809128501632724891763619265536727523585150714417318062015129354544834030012594288463096161909292831780724937715346559836622315614050315503775605697241245659240969715884389444334286754376169516439748763747213787138122303055163668975892696423355663679991055951298402546171580541568051227128839936235250481879350871801980796934152368364590955263892385744198764910208120035093821009136527574618421432296343701993305302604102975773275297033496931773835844568454562352064724568134034961526327631610669688482525035210588748905907766637889123074719237992731806281708101628829720637157426733739810424479202768552228717917468696819771560674805623767276863766814338403407745925841406755513386212872715220767563358610430039916750153805911392678029623869894142804932429501505862703549743264827861612141669124207268649319467018326331897042606258857202267089243515043081595960258175342966807079498417745758638411205689645068025015909783072865902682372095831415892123874806341189405116460505403578659328144393879520418059299238298096168573048000845120781119453203657109334375206317015569829759881663931673566529494937663137991185887625172229977151222139568422888025431063538897595310244722719233415668173209349505200529942593750309010557416724011477434469626365359439940525127103302612471324569378854928005235049573702041091093950642512621749669992864618965552999123102813340296536451446378448802178333293297515116952981835377199105230305766878593263697822606737579882599316832689611556903811885311803758590602254486761644301037214792721486840514856034664540677084969627096114927561259045572815426100101737875991385852442133592034481013350511449191440365924083670345603692088645741208614546724742973067623302807682770381944342321765383825522965328801699184304685326108791409618319822486296775955803492668096769035325976338659457693026516134065510735457333361551913995308091755571099657908692485430323409063898466953709151101838582243987183237838212195004855005301260647730084619774804586726008443030792805153722012870874319833062921530041764263631914740355047816446663850968510866966842833608047722987724139122334058814199790790282550147957984037670593452409059277872462199755062097147765652908364776952619524031302741191208697575375895229553184647818117388245900887824871976838342935528327735417010713029385067359619512739576255811975140142120261807138135593259080737657149613107311223565576486573530322927888438870073812017120048167512104594468700830208120652187883870158475407101963562652621198992187650715551619287301000776996245336590105831232374446008015157323115485115842841078497585423744577918486007975844794804462668018146961959358286875361583088370544856022417804497944135008725355472968291842034748444546494909134941467463839661596661906146666896019516847506752463392806099514966304288170895447856268380143228968014886917292320032667455685777937227480306251393520901859201808357437818773278486396223189504474860368304147821674669803717589780894498093574074108291000764798159261418991892190234807267967984808415912237202054368247988473182386230254653350291398615379975603472716279426793181971544081379345244545401373899625848441574611833319405818245122608635037245578986864831550198050108332489639313887728699453663553204514579971913842690224357164762505002553199043298185786956325325852030770458700622499362309059924936057069377391546713378180905109102352409445849216044144455490899258069600808731030891899043144535616525225252665752791904920165088376191628490077809155711550992032270487172239874068800372978869469184733624591565318228290243943014122618040133151356071685563917057088498674159470630125931858714743002048031570885960874907341725032123769742405061196788957372006167789819003328645386444994831047807164072326887284935464347240279645050475103359860237826963562995026054372559223526038015304093252785888463963419350317496525036396818267680314515777072256956674561466469748662894092528009265391444017053264086674499233996253562066408199386315239935452656270430875337134806021900017721738748607894450072342471395194174484503723909776455837804905656233282843162206841501559700129142525485158157427141143732068247721238727215127930173255239008805503038882395668333455742209308569714503818226081866437464973330739597989686166225621397569804916544059548481315084567299497251630113537573359737611744564259030578888663142822132461359513404653970236897065611616636038361078274359146033723063750799944577248162115566921961884195191315589181819275288758959712027679359148303807687299189490560628748701195997083121689965116189715982034497994414205854914880273261460829726322284601240160566047406509376764309502160413028575264521853892217900272049332626662140350008284492414542186493590333275168686158327087780623136592486021874761174773759578986148151301143957809454181954644064114768694661839011408007315260013511746947341003748429387757685644842210997114516961937112522941112307853067243330026424832566473395236282107970479266461236431216355970917158415351265661855444300523306808422753398120277975790694546839268338185510963050120387996659610372787807382027364090173700532740807802943753733101368204538251484244295522723275356620717604049710845468792538876574158323627369523885322545050804428822569214560828448838897356510720508809457793811248967553408732376798972229999544704467426607508634174150806616451864988205321701141345034436682239509429228131270746287959475071667577767270554883436683817908815081377633090096482382566814840035533069210049649399298115016445933919297413119334895963223784128733724452181592414277168692301443380243541801436469577039759748490598281726027678593676183247092649160960697031829899884174838520662242121363722689321097257450226945708026152050064693397642378990276953035183700634975815181951567161264568616746002656034008272760441799794341015787581082639601830120616847032860034583402129379099678931579699651634944684227540922358656668509127727217714924446926162989355175728102387127554696069387690741443358794591797925899322481679497989740437812780235283442780745556729337107768216578580366742213070582836288488599109353663644359110256153901091608536514950768469815790626244335658665571451790622994629571393071870553787855059798988710684285261282254183093840718502037500338245737868755539473896231828343295386767496500274473064576219494651788671864058907950898025041051541907575930404601982233630095809637554927960118260828140569764299173443910450119793491194269750829857347433319887467425757812906141370585411955139328870900493616976037518681403845691947369819230416099860084023260169230831514493009160488584704548452587476669312935519463953434253795804218678624772702188151182114560204257552740604265578606760207221445723335620435781619597400864977287033692813637228334256248356231336461987064358715898774752964010958060093547437397440808052618582206029757596845536801040717284785085224155675883021916500423314471064341688286201255757543512970604045117147134295075942040655353464761252315713095002889282207528171251806920459692468561839238691944660035745527686128997457735434327237720310394724736530973424318097642724404970630696497497136550131888872874044499283826333790053493823212002655021137147589470634768126562960683586610352511188944331464633941459724579443889671677041816072889791220468315302773414244320079715136149722931167687119806344210590948113863498417568727892020955271899065859137789478973215090535265004994079732981327044647510035157577040753883000845734903832842386127849030218606647575126707247109482489752924657087263997127778313213918530097762368625980758504876088909230101302429210357599315917929138917414901605582644579933305872444086617000626739300783600537100733640478278985393080997136912507732407360916297645957789622851890471027417662188902263661506467774722115408170491653440547274320730064327258227523952876925524810181432383803667390102378545465871032828176752334847359432292019721660593960040705354720390416287722029509150794906091474811802743090464840624350693669192122068990503723367146647232256889467533056118396640785367787881344803472967511555389335004048738284413449681373532217333329942134063083874127960325749851190245800324732299190522677892449350158566825872594749015387117223372249984792286213089291637622985691800959551549031478090162179101548034681545216648723991702274166688729287164640264243846012514117805957161857410849734406887943710328357653347772538584665382054099190417002184918647693665117234607322973273705806670079535061674099948571421142926526978163312807032830185870526176508894036920499820073700459632452846140873906813400241223908438850428873080169747282452950194121352848466723506312586851837758864688249825697860153385958415594602908570664091552634215027501132207067150138673464392191762981518590255156944797610349057605849460043697895005352932147501907558651143991930509559187586209029518495205985528962867479151385035027789156112467843486388616219495316517345335922328928244675668923828903649600889680637760760469797423511225772163849506903791618195727851325368872834166394896623682441892747492059099712556134577644849962532456435556924538291257205232946685156409591500469218483345312046340477726712716061176314188743986156108855670466618386144288198257044951404164785193587556957240488826639628425596806470267068520515994748444271877547046130852534436567156834319009102416196671635712033291052413443768007006274418957048905031345433108965151363555107115457858840255812162164253093788417684674099310782402758095932947291145551900591445145123979448385988770026085393021742735844164738366625600743091569221581497447991627631395129937882246515922891946579423820356918013416449840188936394710259379322938341552656778870107895618567111181930351321644011212825883873100517602171704697073892971043227821427395175215448175570435099534936304982637691824898031363856999957903413048277095545116473774644025798018079940011570842717670217530347484285902447721718602156852963059117960698689293370084761113547618434331950669726376909530774439254985055262143590226591844365857387691279516260200722451700431315133049980056609312820054700710515679069700226988168214362173680380005679718396018122282016956838511180372836172101374528562582418850214822276711715410317437995818002985486477626093833013860278070725405587360558266799423314104994440008097155341536327631246848445374708429396034644575228259898685828561023735952021086070613056457653867192662133691589468160783652797906560804504183553061753470672756879078330206702676990353877039033885639947988449456074487305755044605674690975906994075335238686244387430635190369465830836487826102749605412018623372053046443392473149164361838546700209479262655033857193075445788352602428315034876387069178830534629298943300527230585384941638560246877016495795642971192535764021143525796915259741996286062901576294471703587868607616145132994934275730486903619109754505099127083621308513363482980082969137179737371090694123872181822509163812014304286281282874700375620953430600512641203854343415585111200258306906528262018823405822266575757004356299556210618001047070514005043755104291702025063016392305438766100009640476919601644990389290711776511590115855591718557781092767011785331109823502360595294908287764890349255981441758225886721041106294260149756128073650272645665927419469426490560772300042620962156709920957306788883299439089534440366164371086508410260667005666064025927274237590310560416842081750157475404804107864322353376700012247326111305890215518117819697874392204746855617703945934037961725356564036172283379630505227410827965375553071908759549480383299748689645920751345669675761612418751953204697233844332456065371139773949485598220569583267203983734136146233142493458938331741149333504704780590274060470896877728809767009434695038050001960411517376551410293410445488469415654267615993840339339092856321950034233328232845661483831881151510739329151551615830373692337399976014130759271691290865316830319167591496592799317024517274917088966270440002268987192841946284519296541471684620002280708520402644331937687650013821570315142984013519110073167310226848599174270203560342717204777456854356039044486195352365898039604112606983014676807042260539220428106844520118517919879979908108098848597831474775305713766907610219213733819178765321850531295411394277331784429500874504159382642879767735476955754368859562770724436621132633680318730634441764874186895067920780602284843090582124594666933135668867213685580899408825822140397143454088639996103523999363681918798728411015079236926954469675939281639626525043280821413918416744713085009859948265319040267580206818555711885404524146784512195771772788652687748762410950281146030348820952036246931997091109801030531016473358426024534957681644422300271027779505088138126251326441630192681976016737120811264987740159747412555122214137871911741931023048777529919818721997987284961726786243943704751227345849958897752090262861863784779922505708500726885575848304435974344665698550859045585016475334612676245369983614127160629788187000620514780294783080652505295269661603762724254145127092948342225896394661838363889514740987094110958443370307612849286745916743499007481601981752003819258975127148660215617626009899554789906004110700366824332914845057779942751467611791037729885575435756835223161941580598978039347432322275459104765593635469503433607533994818277897700079602163096226160099120230085611167080098070510149744147085846299077949455229832004882881831099807775779670417080668171398043131849473088518117539312636393687025367629664830294141239940027550438929519270219361176679436815433239258079207904752975964660225074742036150362074855018855460746344412840259601772054166397199783136763113255453367712202907771255886986591464350890450353835322950963687008982140296063778648310095102203707858773122136974917440127772245091443552092445103057836967264361612774579535677849215200545383991776174510999192959738586205144764154307948665472862821390293337419534296869574431857641905977192928834542031233835707893217204183565591066739058533546126529068783023718470611130290561303335656008560296713586651721919701495618955634361462303621549633914620279576284381626029243216024248344813068657804575514330325197258115047023149192727513325758808657190604640390061116775284186321221314002016054901833693255265848933929549923397799214764009248789504366641703688903484369913135082236116620295554079472997198773666055124537289584813689231837354860947510223324228707212891599286849967223966934230925997154864114927605020221150199471864885569970776207130052293046587678485782722954962544955429880206112452684638761577543836372225338088263270448779362310031825517261427249510750380112321100086574799798576170044967022231444849190872989040817723195444281194643269831607112632483367128742491628477755410741755869314351919513948458017623798889605582710768848670913592666123643803118613909301460235421063738970985481281722507233602674891100412721303849936599716634286989564386753276884604372019762243410126891020570063145510088178295980631064798872513150123643174078397750229795986385305295666801050137435851550878638415655049801490894655514689149718974769597936537859725838636772367556584145401699290455688205642607890571406175462341347622878738367104018183192135720475398358141999828043270248602868732524943417798517034628565778132638671074056804125987395410954755190123790640934211085581541499989348599043680113337172764017011177582848796620031520953306123244763798742419001614811330123322927651054337814642596613113044427467597792421610086028244531231067013183269775923501330327394545798585832475323920461939653883341380879522851216364580739758611019660342785812997470027496665242428588136259799181553267310624690984427067857473026726823654183762381729677609082296118658797944567295053432535511727859861239216808086087455437410178582933089455539954015541775870188025625459312861245075449184289587414612877640144527182597047457439851346630196752436371004886305700118362955336147395887728787164727438848648510564449419669646647790120424677609547157957754851399991370974363868885759609189161430280019658457498056127914309174393206601721984388829333452348975289574934179229824474895237362793993720539123905482378788182924475960986920298158324473177627936163208683411330957565409342982276058494911869058937557551304543283936703119128541443120846814350872626355746388898399887434230865076158156805768390893578265647955080237951487131696350463327103234446054204899763044686114531539161562267830046467733340630416300851355599567152943466791949657088837721220662277655559792797059519850497061010244307591577584067850673109839810334076644080005137139707355645217139772498737228921040800876057443700430065136831657561104927222200496442561099023331925116139979019698605013794614884580197567895397772023387899540904454749706251152821300303996488759416028020060327403052742210080495329526051981774113843288270700233368535532204474404892762566410297584583045981493907240756778370219495004591031581400268690559088547242757021486475368771481978057767987715261185531447661504928246468542262317638376417476523854932452488082298095465046501040779493685205251625415739283214168276171880133487145368779194930049560772988778126468172165488166805962147687793479438990125534042350957455191915174582808987748597684981180819021151178345703389413830733524231748565508112785785593780142171482674679465412420357934006831754757828573895897043702108403373544695570777554234983807911324893727398692842178919098855024445378418295718797704575534735189838369943047766561564058922499276068614493183218350006320535904210368356626190955913069980521278570323732180235635881398291072544364532888627470352420538599017905344575041267760364592584275745299867176448950352948815853097288472649066673443357814338120840890908942450577056207608152068655873279830594896121847635397648581295402336566939962042726766223060709702284727533440993351414552272794193974752405762940008732609067283051222736360717026962179754538551078823502673059205240658549097700537278022077623414906742194497860439391215316559743924031916956635601584439424381267699778502501903400223140647544408610894482257755835520177213117769187222737817620914428076492387281957426096090235952512426860287022821127580559635180462567397134087179732856269255652197218706401405753139548926032333774604552414969612913978001705360679640674883272412523295884481423020496854755028688258615619995491714185801514559647374328757457263520324983482919221499917358055148950830383838945592477138575918449728001924005197257750103039838563621293600965914323325508081971350856170352521692297599190279005861597632621100489569549191022433719693877125837681173579216197326478938593287621785837386636139208774819315220461806535447979488298217760517153858679656661105981960792290481788417412575370863253880444907543117352339173016713593677760936976552692213506442700888113474459118859622756568393528095896081498612082658696683507721350950128341340631373046087941405937303785393487931183420275406431518870057618808596106296599477335789465218081111894027857263328219976285046192446875828834560416434021171528188084978937017470365728201220833282225462943441935533899968253795892228540784101842552699386313853997398643855363379378820357291457362868820908233319209180957472780720705308681237250607042020270308889477946671263121747912048939439100217476790442620309741949635962378055141059316765391468663004859953319820511823929228636344077672416131904967273993128998862123212953305911201333900942486143737769191338434144277490491658878982923911349713151053020586969853551862066810709073787732659157066532795746729740340829363525689338944506174119227475671656219728588529827186790212008138519584896505505162170355436401696830173163569675892679875119296412561185931309587617582261657212967978584806250912767602505624022790032404912155578226691326111881745640337719311491395699997134539726701579745956661707457488270768074121577883963064144738673778622146433060288576997165216899832768239679593768492306541708169401158685881103360041751457938742528819958025638591014428187657203376348118634764640388275068824386124798120122262239868060745756249019882411886047040812869812724934767114423804160573653732849674258361692354525456689875755128105377918187119141942931005590202550596891283335936017064357481198006848452166663946451361947457808527119050702209370523457803928134826839326672256628615557060110615653000909210470942943364244392287811421145177384295902328537453792707632038234556930048488090314896050021464312296398498048744164037244789346409185187911365835174838045762735042016780834437665400392282010426793744472659815090690816257240866484950125177271896799155111830964756146451290848311383485008566517503724099569847658289775343532450932275637389414483680607435230070796124417294274299406797538028181858372532858437280507650138366955947622821847930276735497889266579292523489838399034860444720879631374951047840801540141910910433700339582670798523301961648634672892258481114303895698686350478371973024596917094909477762940358236503202943926861032221757981574875439247396688764620996329520174373675853292324892855625027746594626119843257109455640273656502802668260092907093323527878045483476835333458491101701620010803626855121568000133854233828046346889770388801142757107874802158712984508830826153836484172279873476573907911395059594569773961435120846388977649630578693038602489035901830764223717098531783243301065124475726181434338418318349858658783536401753340697036072231736565782280171885483137931859385131068365869504185063808457380714490075757578715635432843343042351774396160728441087137426489613767455309688778664066311629742068668128261187206602452372060734160198551544853572228891780778507438447757469527721724258299649320609795582692662876235790949371582170168818696114017309759680327893583679057154007637433511804982890949411005085288923993826832768501578574616691039327124726564375682736000134780672910168114877846748532246904745986874579238180338297422821721953289959831874043602629116380016107171116423691214286876124275764179396108722799386241465827502659336100696361200845539423107537167360540447027491104777451873989890259010224480269794659111883581224077844258664500988653078618584042455107542960729889591070983637960049491669595900009688972429072717536707215680886831272901223448754754762011584697253114314725028350927525510568700393597491432035023687355611654332031832223142851615867843106940001421178252874212904212007603803538653266293556889471081835839478544229420936334183099039506267740493458873639992814760805835094990355259507345362078873944166698332940563315096162442063377120008944984335998166432176736238189278741481095526492304996199584677008127164636864426426028649058032140318000228084875679828298072909466245327152480185279994199394238359726448553501862853010091087520251029796138203788864375234329553292036621524914601276626754443540766283441515427576979755710240615546488828319280494768650402065591985024329410791856703570044706800599613633516904742680558155620728388777073560405948282374711903543785547649803523928941885464705549786595994719375943954135458563593490508729239442088703783950301008574465519009440120432206507325558672486309260184098614743318208881607676608867903422545096324378247379870601987858236800563508351105272478514279035865078717745471405109008472858784556756027572350747013755607503305976184669408190206346523043479751519049108969335896129483458454459030726927193781045513083482237648203908446732070811737702337400090289591368262973991179185449758673592870608467383079337696524130439366334505182657914102839053568647530688255693156257428764350860684424439323394213814797248577441932202183553304882106375761466044837390068160162309468826314994269870712267721595577727386749046627068141868454084775377361855329868813216500150138265173477051629466483901163485592471436177249972198042164897098440983420663057932729406104876050741002117906764031645115399210426595311012124389731794137854991004705833121834911813010791286640606934243254360712153633362579068144459839840451084112282659501721695937968492072332339182474089374234248490464077413972360498768650914697868311284213751382517062961176778708886806797384893058710293453120407845825275283636966970177930973090938783336936957536579128528223869362101648102182445205676206477744777198114579954999766415187235676706369631085317607359641968564509550187689914429868858875072079828380711013842864950480188877586301537097663851493728700860581919260937451104820434493010856381656781882534316727359283135024237393790415749603791030286745261307218757086199087092533545206846570271183277289055845812588537218376162367893221468078925746331225618284531862907366727376662403344507764160499769724977227030291553623510432411766266453595336201042564871490813847655625417580977353362635834046106075210423690456776660829155559807548029704203871140454136559984948065179175675043128576700160190925456413381663485878316418172164921763112381914622632395187717976336508551859942553145108530360957153128262374455121454243160681188749754551315630905667100910015391270558019385366957491157577965528756984205305673547083387774700157886387535764629636693750193627212809880388513296103295218578108869870502913804542389547265637486302196826089678574389545788537984552915890276989179381658053525631440959809809665596238670084647816303989940458373838468349114610671864293126481747705281248766707519127561411548263633203869797655538696136872862159060580577397302005167493587530490049220639580160453897856336039521482889791998576061491769991350890959851105127738528252714881532775333644488885380081213404841673005864833424809796071386261298205758512683102847104262941552138483081935504404636046108791596502029911639041919813319441218907391040515707954769356841164586592125035485939309805762476485652853495443113538203064367246462100171481883575283943038226243933621458111971095876671786055340726556127686241773378620250971507418720671865880132023487247516049591713093736269477025395655687022625531261129347733141363204137130708980569983460516867414630671457967479153625399945156075798487456734573763480430110428995060522985691578974857813647439969694282393388531693714405846790655414415516177192554738896780529047300726153297818179265433061192084481580246772119471630216846207001619354654785266530307403999282695186556290358769343447066584972582877284936215389274644791423650512932718886996699310878590452055254925433072774028066779888768685717861075411435641817494915764181620453014985503641379811630555787078719633857268366584856981519483984878381875688360726495715445657943476997758928676827775061253460414285045655875388236567575370117535845481563594865783217687794343221789930315874850430563035736990857834662121161578858888429187383101971404745596706497155752163226803582010536784377648115574286599327960048285884775685374942074052676190141782329459548971275069454733135040069318560443580306773936700597546113165539048344762085241581313492973453577859113463526510340368190136395602791062676929508938516324328616018985537685564494075557373471454074642425525871401331028043976970517225101363447077120969529594106697819266604077241538700084465508533427495249723485953054376733606616626916382702793204446055902441771642876980437793972740682060450181544918794210874519108809148204639293891970429363707453724137138568920213605755281601200945142565280812664380073261505006410211370949086516319688031520313336661111007863947706012632949731190123755953863463856723677232928537286182535260932411545102589734291577535856507875018986266435590978010118553052420076326426811399652834010378625556617274882696764760537475609967031046248161235150208213972188390352026496971240919347239281864630365425106140494009447869205215049604608923454627681130269973953861037613057661822462687927800570929655889952088722098173357083781139284398369971336315642806045677811429549910016288270105288605912920689022921921297252512619316501652766639460606083304527112645038440435481366768700680424863193791418112644456445311279314529118414663534337895689847303334338552689522774412584721984847722331552112923610556060269182452882108428592015197109204646483463165624488784559787183444028857695495476352405862714369792918924499113146500055041797165579722697846018158549618983608289555302692823025905515955125251950121356801315201541092931264227092877130112271580127466539135450010213980991942616716040511941019731747793870462129566045426999965274836946467168126914612742460225035557687768193027357728999603675962135287815931083167924389156116210064375832317553112511942930964796121688313307377812479786599295282742842110765446913415130824301885910489786995414217656711359021599885170282094245693746693034340349248883925938231671921721174364640072477084554985947052177419469796094438527284651091958211312156971149255706900203037880460103396471501684568743848446731705068291252656713620427908364285285403808079934940104679555112614369506135501127345794910095262311615653623244648581976577841286134164914738974791070654097616692520043001215122927671594942323316360562097904532531140850052700499190676975825430009249922467907060910448525654461865054931078812576858047781806470910359115327653443965888700893145230796135178107881917652108102233800800540141257936862262883291844613228880127460735750547841658815333676692109531433489886375979239492925314076074216346661555393523127452591748157836301370972859848889091809316714628913254326045285907665408875800854098920891275790597397648371818630334705908769504030264927104918479423388475852626247410685625050243286452320385676759311065055711444150599493868759465827089803164885854452179181452109129650018079369650563433141018008606047587105126802358021083641005933857029795071025892403682066608583012959873039132189451303837817659788669477895426165559352296574713161738427443969911840528463792721599099388572388844950565575788164638733674442658195241429273109773556604635161359607841382086201128050749324335299035629537391824511118263785480885847586145810506055761831860391213125945666427436032103180415982997150832623865245825719916637457482802025627245763249918477273857921831144830167454583777639454181848818387487447530991485676707784045239872430560572456587200468924345591128557905923765597443691375404651880608733630903047529731314533552216910097755563923817868947707417406593590488177758557485059446182825727557639426111785734328329851550408919251639392722005385859527086526946364849652137432940661319968076785507636631273978411451290366426952906573639412632286878207820328257365877014865657474315098436119531844382522663779676596410369939394970982066913364214146246126902846524272753731650010746331649585668555301709614737591711058503622504789163004239861665537166597860695890133196391375563781540180580093277286721993448168043613082861606361912887337141646518811920526201104855794014759341348165185160485623774152554569056140479076596786001121730542849975327862112196091243335861106463513320251425496407959772813340461614778393453001757388593193853235893994589936352263459355041502754448078446836904888945563498895580017039235704009867842619742794251015162355786699620993798901496167327817001787031303649417969042904193154646247733502619830014077655061780662291708217025525835290652331947958161169820551635424843589475538183567751512938717157911652960614902414938737653545746051027071049099947212739292860314360304260069310728004118677796069427070863346181664891334491641638775644845878340617276851156917816220115351558228498235762154435187614343078526298725525600205641523670552254035414091301036782272906904206023301839746655124676440983804500097563463347563856582662787925119417282658555815898925909449634859511664529504992828721350549149156777842245478184250607207120802772657432040901326556117107424043746612380978068343513231517447275314355947613698051569162681765565750298399402984654162257758295183891121402366396396486158865260436749036629998692231286484192315029307036463802064265187055438755535985163825520820781971182141670068710945115357787515558345040763025475528483677807681543164120519005914880064217282812797515250465035879267660982006253017109722576038615435938012936174290954644102842925874121757208707153016184600517659268222769274255670354074222993538437056707001642245558414105696397198995609236605389509427059009546537112312318989633068799046092212133068152537262989878709693989445155985102171424411145015708394679235710808261481112869100295793464176549353917074486577258386022173826453619648933538799042126770432767826879647422452792850119790781990223662973595082681545652297482641243078805427126206367000333147207265836522873399736747972637674139980671842739872625589060107790448792494379234451121990361722823182998592405849962102656683804284500539001382269537944398763203887698977309398687809706745987437865484431123148755396775031325756941346446830897866621657530884933098582490058222970191985726976569686584917200661598374474591259449921208535967576271429520172047179760686242508728400299812913080749711264187235032505625354931963330622941925460190303751304195380858037966973351578791278164874965189682093198707489004253283161596611933161652167191880022330872023560822744433952093554209284279479949445714802968575726844406186017230183985219389959470848730337091267945222140721598342492947262623447435525750717551487000646687345099452020560217630337959569312204835822855883314291081964176211823567023358516834025352461664590143386766504620885845595430505900023109279191861184453655698908098330089261459033411913667462152419531213597909080500659515026729626481238105037252795404074831122004742573070680579784957837828616550859102393707972660660466960027406059828796261635402801935935002466556011807965071633538421007533943603766466841715306185049224245791321705811915878910578573277108469587950934025113338082231653898865973898546446046279377302978728772172459031561877129057838610136466153435039665113457401986305055023349526834374280011449311738877101236764745202139320886817573876127825913705100588371907769888940675493698694789601884919895046425075466355666690172180507880878762144459723769056297562449625665918329665783883241045773043721146792458463685480730047770671872777551442443285835792799905800341863768477570790115220202558300480533608083269216981084435353630899373986741085805758056511865396836177337758431843589774262542725323517045605268737406387598311455119252981035443990066717612229406817916797814884437735761526634889112092687467999189871132302009610434791573667486817187921492155175936260975401206777491303484414960791302825165284613806547788567485002373971921994662195557144405746601025600341433529040662345038211234419951336635049261861112767585986640124393396031614419571954512504253874761689594238252750160977216775610144240882447501987997543506912378804865678640308369903215497340775068000724007545730028986789254112717547231317237064538989817972559002299236042131012769530150587149800176434350898589623113348451011386021692378327822921473093974185123726289503698369643438200148322014009288010318629393931278073984750924870629867241025855808263723585675862970478655433322206883852594243397601998459726157584327208606461996593996740508304789965007021527722355524450863885595315217838692941810977173462732283193132524438955172669380174098527673466340171438265388712742492210442170804807247777604101655639934636275190528313019941408905826197899850182671229481079394593576991548988222786149879445699605337121082239236191089777249220649277750138437874335340494124697473290659377144134693883688035626887190852100841276055024910227978053908945800772013627178447995157074550407761967135278194608077199393997614797411707173510593739917373941645317652586349163347376180900675633766978568943626491954164570722179366871556020167851171898990068977188006720212808798662630041428720660407699264384764342749131875848869651349413576349093998224025771888996982822476889926192984579551190937616376969914177906532790843592618433221395024612518154202492480649392192050699101613618565336885102266876896699917431502511394743945131581335213995475379458206329653115047078314246666780345824208336295287171232864388402714305007748407313008910091365125646855597168628989830983482605397107132389474401427053581710789156722673501050255606392299878657191544633931809647709477712658175746671200844789664494123379866262660366595299565434818318887025273214063271602603541292393087636949352015259608778083605559593515388563428189471531479152458019179413523990415130833229897490832346236778777922462098155489608496105433454458529864003335385738090087044111107510205329840466227072644176324602606047963816014907893817796324051268119507526794555739325231161420276709380598576445623147051122238418971484652618966006820212048792976397342656729420123732701629570998663083368317232893384247433619300603535953259689014151517461174963102971855677241482367225020700985443390508876981793323659702084142320697708785291380878542185302102082506013485077395089547846593100334030969605873852075006714205342106085447662247339764712851023942438057037978313719112627052923253589467272634272764844569308737698689113093598684507990275221209325409060995773156592148334876837306043587534902427256079125410331366135201341610938976646508007058022872247426870800298858590158628740718395241383201958263566612685268182167966232260259870617730319517507634925997905496736010869465594898321850190032390104361893416595964700986432118469972745535066631368992513116174797620293080564774642833630433236703848641120371702748038865805887328940070745855224941357171959783256813358855210843771455663346657084052826176112557267617717038528355083071808525030889745182794334847064746228005188601016567897603999315493957885322914655253103456127584037489001939171978110544871037501190884053680587202670201459868105104328037678057657220393665786865026471817472426740063246043907195514304529247599851652694708426642871008393303104759480064251439952258981968291823563686992975774544908613231699972841025645085193210553166784294803654991345641855481715226703536928689710436789487834588718897723868699654363873906660504369614672706765220384941481981608824090289941027774951910041943719517077739036985089917942705725330537415824290859666216674702872479338309892622074598465852971473289281005007434253532424539442809839026417703289936813234221054368356341970348037851384574851087193855626387992032915262314694616459164978064123972727016400860933113984932822055628841288058832606694092453037629677056555347672417251350395937482663446211618338677981390395352130167963306469189891547942899180579886432074284925956839500960137469362268339105616552029866735603850804553073800543175832244755368082841674593256937040693827517177347386224019942730071497678237512270098253161948206232676976720654106416415880593160409298247013085249258081028115365624965158464382725801392167175629697305455700996548515373575706175224401560479869230607166284230719481384305289509984122762697457369985468833724213162462003975805290060668593307986986643328779088762793639384356866038498445833482712601362441599544363188712845518442813457620349187971314526518401396650290761176181828624881672693519630465813228290687259868626237946186569014308713240605414811613152291936425408477587075979691531477728038410728164394814769193356070493501524403106023803139203155723777828379292423016067459598844393180148500526423158648833732328026493474181753193577060516956881061374437568554675600777071720660206396284343605062116239868531955563371179853194934147708013180681676689755571277213111040568062432641117434102635514755174867710922726547912230143528167696083569390708170648475302801856842043696311716566359754003542661426548121986796459748927004998539824174328562677516652447917953594494933670407563883488558783335222629909147391244318563284036224425760640847862168105196013728576451465756236605426232120584998971887233580988401815395384095653316627033141748872002710944091316238746697658700061214820231016236482337348126061330610623425779848918462001894602150936664726840177887632309394813110778795168015987827393470776537268029867993607969144950047957013507542079363054887910112639404704984861248804452027789187064181739092896917559682597160955069572174485342994931741538154419885480268170699883591709716436957338612027101952491671756944348816935729330513575007084088127798933324347240304013381113741698235077946502950043678655210189414296905368224896927936086430232334708623136183097387965125536891127077636717931147483081943436096480002981415534717793277387854137331713901340737951127471822272312584605309334902596060478526176523619026129462224619661125836561260020530505470866158335245162448863776482129060757007756918004265697612194937801273164864605842631228570488792217076519423019565802561915363703409002201938858834686407521685855582168349155599593218651333551384741343352134102595893730008923070225693996144275357591209837135901996192559937323555187175501507309162982296570331552486830768740800800307133949673994190061247646522800800657493017025640569386505283554778243630967335937353762333363053631898195639754804313867300071262605522934154678457367475907127510502012945729955800517044132896298124813036945504945669861368190566631643109945384461264031991542451115474981862484726282145298363998909286379556209219686732979774356141255880728115230045359549580368234826689175588072146290092464041135477680523270621174098227280469923300372144681738163582231429967198465872372793243924983454955259608128970917261596788925620353834355856333780812521864688322478096993087773178077984395047192571114185541018258336770865213649704241772290463512951523191344507057028671346789875196331840709406609393442452459451535272594173439234985691944496520384101067251270986002892842982127079435928724111916079860809135733079125995100649844946066707390421901127137745188163999032090887325013434411170267679578983445232382948977679134813508032621827416995268951257271905831503858145402088278214284286623743504421546640945075374067562134385477216641187951866849289327698376344612547074318461902783337376320571823743747830798296908424173108073575209446316033221015240657448554433073048802203539815435800999297521228688026177239436825837133601544317879162135227143133865841678899040739637429632676959191009172580072740231386333044144699197769674067108311029837325053918975840253943928740255000297105763907949541483637287258250138342840724411534936568590331128940351437235187522632838273864212022165974362221627715707199718198115966833606484978483767018001674606152242111977439284922514005344239325556279404581806587316599100964786390556705413808126412737868441592440377949137850012592604267441128120375036394543800437907144297020155163747601657825766098867931959280022963516193143861668437035980080038519356738675488792304093782563442359763505702310846035180995300962160638881433235847722550415095269901256612775316761797615425423600116528162428065484130295457285663664186541721908296137369251686373874478004051326054843493699539907345643669208351553607421113820719360215762454658335452077072082710386678548781767372660229685611714006342778221735269404592835071881443073075795085123026129437851566379063323404670253907573083935921258273657394561452572301924164129220415250131454951177447643355004582298262166931418021142043011042933535070287947828796141675028112740425524013280086199789423172276513674119566439335973925823081745830171333535061673198275719001807275180168217466478315784591199130461880921667048044225824762608251004686421873660752623279160756134925340912151006030216657514257098256136932309122711962091315311568849457848934280116985918773980404272615396802322702346617658814895992990224828145707082416378388738631229813536971311005560828633948518860939826901970090179941791698364873984198518447978837721225468188548125810263207123971886847801500311157105072677544623246753071706669550929384750232168290997215347798341239460070924309256864845347432939733414534365571557072442882433828012803983372155726105632887545229316711738563704120171328031555587906700098861072536120685526129546257220389219572757425831271489129787947726583559729764245146740271574562501711841453301390329172016776062112664091928719137425196539250571899225876868363595843328698515938607972818160155745026900513961687910721297615968326763618493647522526522437076434674978586008763161013802133608137882996108358855588476526705177937465407982452584844851055801087331737335687497808158150275653199629895060843902350599251602568283842111868953952421437849479655809684681920016816216666955746791427728912612326872478760637317059528626232495258566752439297767570875851773782930625036936236746883925100652115519240377259242161286082090119905090872501528129617064478334526089666172473572818211349886593762680242646030870137210124736323350666867018083461366751136053831715238937716394923448573311156903768636282811750123507081331866874693018262190351970413761947182676691922828294566708463839291971121884198527753681349973117537082059638955622783115696395320484012553478265701875673503924711784818950459525153670451117864734654492208696995128599419121824326837051564024167563252836403494111168456294690269630107768689252770614820011078950705013314674221561177105286101145379227313924048866442736691944653177589412807485627687734125412038773388413669462905777146352549692210935016527248222475049752445713217247902908275330157899432567838800498786798400059120226696643574718605818313973630568964634170762608447253438460320092908006865546463959283024262868498063038614669245856735338588676640772435039643089972733015670020655910191098783477859120765021816708614841706615967100855423346538935880907886335637346830491245916096426646106422594822496196249227398336240653371017918499261332009510177903933661070844694544856607607690974716462478153674393600289532172395585088593393202690881728667148023491775641531353663523241961274465985535316992655006282610377149018321473321643015638264616201511446332221951558487487323439102562359142605659419404955661038309818841206527583411945758337621722434351653872071449904059710620289236681757255915784314036712926003391046841882833563485992403721042582886165716927252855144430876767211098366901113013711703465327087111147631727017405893654720537626884188272628643544157364333090512136091567995981112816588290593438815363175146740265217478335067240105294403059027799447250156977314898279833821100030159066479532698198665522571172186828780186006968105533897173282454376482392614006419624597754991784847118077123327977483630127696463834937154500449903175017048389376436902274456207387625393345486812445502828452503539534848057247136972402634627891052378754354163058771850630382382061556562133298043158588392439864763238609683770395150851261071888002130081385789081673542405753318183373333388730750708896670973277317130566043000876576288684398407573296788958760634211485950421326219354668195874820320986924857639025212387988704983097302163418162201964366919801713995708620185001948011536244083860587870001277129604179156558854397673590372960059194143549127111439487633169489187836024525081411101065204335191250409896904443567307634710770502003408815124853651658263798700284025101976567465616003702706770361988392110964197317211899794202587297834257232436871764982904754809194802313612602267840732552620660719245654633052663270262491716776180914513765578749907306999629616620069347504279040301010632396277888669206059967332482296144019621900339092326332209365192959805593522864213694683067856325559020105837461665847676638081294492440668698343324028457853751648678291170951584340230643965831972250541262646225549801870087265153145880205625155355288044464670773188642778183433014943511557847287702833870647543517365442347600329053728187252264642708923316625288531544367557517464631832515737330497614852718318098436404253527652304629136275044353694634457062712772213962440927565702704554089456700553123414619831347742478235524350285642440803350248166237032982449800430968188438553106300150679417687913283282106131406685116733008854000998921327339369308731996343032011795564494791072625138378519314249099829009457620329018823412096151209379479087943640317753809927263655997213201591754583135614685624689452878819540691085768183081582361223322292941825791659056571814001196929554123535006225527303727473960377581062004326412335768406002266795211604269667464515426423785585506243918996389124533145015298427737091327447396627495547229651065066431492117937153469313318231906312975289484518403824123554868212852206408504624892338109733767679038070200535151712406767013569777136437262383185996911705417089144651880252769620626259590492448502314102096169388178670264525405641239149255503442435427515826062239168116732211149217746285955275419116923588993873744663336956167759521096402465021570836187952086214943690803841910973182735098688227967764256302251687757274367849217935247285460959810287927068810918799705371810210775304721035441561700359240167550060649464458228324198403922085393981676169399167061612599669622402494445528929513921107753643414177023361204237121800099427533272247513251342054925850431331019849300425094976788516623811156308605074073971265523156622324157352402511864296562569764644499213327204023786684174401563210175859708986826625431540774624148783936083955154513610422903881280289630488356658265993184953276641217377915852816791383860814379668447151867612212476627571079645011233792598933275061058021390036092155505156081635972355011247699352900925325456585860646986242737050701307666588982902384342136590176730885349149282688073667467538778545350680017149050391151810315278771134350174957437978883653969207256592296980433627384041612071067958534225993076796177267596362649523710968454987460739056359222893881254409619538338204125886475912415960443791955608369892038876231556505801791927620804924509494849397851637316959962672837919137577965694389441196497874119901255630637782760398830466482089092808304439574581377754978578257908290733091969862140635637002448514414612553603898813786673881870720571064397651281652513311253325198148787759216079771608984979219616924499224490260202948806341432406419063196292903136665100328334418944616893510572489043154749972514812398811332385113575226836471560845948817006791074716121282192275670202252867865426408511754077420191283043929365880165028959156623663979198673091220754789266354877017517424915567941238677574767120479556752584367504055871039655596172550140069845573262424773876896519778455599883263013569407517905885065299859843468700862511211428664687598271008114269905897651325528128183511827866216275193254504930269898004799467938467126265224649873650640525688221345624542951632681260302116420629662944711603504055479479304229633781670326960147826634668026794574117659463892394601613584758164905287909594612945424216611089260813292168808190070615105838101550855658847364370741747622575614569223463901928399661807814882849949049896675195712325258387829157264861259508226001574481820721836046199038067093065234168359719507624876516504775243843442293699049511373003287499560003171532004561817848809979459077579468016828006631153293936657820700484780440161470072800995858192325128053546957087235383940074592939465277805159746249038204629428783574234279857377072154450760204301051117567141980795123017668511837541151624589460910418319361795799830584286482504580359596366277087100792133638788326187333966333163070431028841504012192853243587792911264314544933898767383938218476153735295897173049973689479917528967757038758145116064078347086493642565564077823264737861458838436928997855628984264108914023135457747481261012887105855427402223306661010624488947618189231939092380989256714716094389471236970957122776404494186893307385803151766594794948763476502823034880824084068212125503277146310864834686535617780378177015915072042783421789106647262155577953401903054348220804815657994342530943245819087173828823326366353633959012603157947760255129405382708496950170000965657985557304302624945031672245352948808260953950109262830489787020347243991012899925629065849716620487839865665660579792198945101545201773184933902861415784124201130965237812061994614486474612588355358548433953067297108645812577366855019839405380683309389347554724414776610315118165859374716538334443214478524462758500544168700816688643536680695780738207893869636999070471464568838487813020255218945030030205548435016811913111994577889071746167978544381113827264032551228215567085099908849693336876150373501442032683894670406079809284535904063481009359977703325160143776492105593111076131214916728689726098240059094287367830819331344925366001652889782591643621996678422124774246596684551041672433065786950645414144601434598258017056255368826832279081171159283708258223378822677467029814607044234222319863094124190861886592458564328097794728361638966583682884341032036110339290252961577416050684538362922203216986603609652454696741492880804699227595258163312773741290559835984600930672618092075273343289648613250707151425228983871040955717849068086923559903921058388572999847183778952787182967401472657552125877830739041366184489119982439639908940414522798131772609907120700844799353801653168805223745785510776533557843325476924792693148460996116819126717901399299111267181558349120299726832277866671705039555187794419530538222629928261286201165945569939067240889850868324468986911961207590801807548327933493458275117321877915828327283984129424316940204885194294720725085302661029511061733041960030558509980312519455881732475740867031472526483087902666858295764982157174636047924163443102242951010556965400939496350134097881199684155220111203395519575851218625440577407877653469202179713063643608310617476901830304376224438370288544195921001141250217497418893707533654388909653510529151192080186407985858489894784553956899372911112631981422915005669950489063603420123668390258640435148404663694021787056943830799824181813425741245675267269580168376302244451141994160101113915041923166800408965665857115464152229412102708365541146282878809307817730444393645925745108183896245719204239212685318030822108469145008453492544056444936032422613333306163608557415440454469330055656383943701403548080287305353374260098102673458369922295994856270347875223778467364813033945905667188438130654934920827815824859367137841920555450263020154255848306622672174832109313365627427129102356169734982634181611446521629969406944521633296430018273127040635874964788030437846329585359551481592893560814033187190899093326834909932004693170298704874730214807160160055000403882395743204652909263282557145034175157147487644618908409009709567547824534547255068550859240229561924275109574573373312047945349270583455974545239155257807041056971342732770648899761309754766363834744391223556607077655832297872427293146813128704115220452935490337991920241710224703202386439965630836470903017532861409365900567106823207490589477100106222007097294563005094786400047477005456281269886588093057643097007156433551812850485484535914498585552261517107021472215418267202606650170140320945609794557536506988295374072799897968629218007320705068941794003642185313701851426264249733847439930997526491136174119691770774274891582234831373120152490431017481649014413523848476988281776643306862536367136988600284272796911074481759154984738527441924218375523703163858021791961688359707182707177221280538733840947036793199478272331641847461258225070974059330480658540930070374911250230226234907391472214071250195737417436247737031653702724497394911313713876917998744645646902649725772962391055471074705371981492927300362433219702606609336610126622093561125764017316519159687191111775774772226374132538408399968806347019914575277791714402246317174698850299357225340850407594475233272961601319176620113823527485505270417582794959922525425756077769970020066396526085489892746771394407142369742041568100199763313880737796956517942861757207016685195030592809656863394506766555972169446073738551014126982388269956046802873393619747724784636295862701462478440074251382737822952310518493960768855446265490252473349129579585451207554308859356025198401420486690354926127384825061979012659912482512483219211145602058348802900699453254952860050128648550277701305563854567229736755651034812483931268488377206404897882918524547504752797602232397666030181151826158994056291777149636856869534302752352721292504918308236472754698804955657465286151639138113217307554472201019733885146406331262269557592985114137047193780625708880599993992049083765693438161649729475587801069391323918342368769803762825405152172306408959556140414357945585671345438276496202873271202598448271772370985003832076284817407335110367896064844412882296996216726875903093839176124526106110720829768860769569955610568090987869798808104621272396479278869395491364036773525561583836188819285901794021428282329253216896494944894383607507127416543694613908477407523937069708455885519197161452050221669335400644955111808295438137970360016217161194809887782884573078078487949860437416313918453952020462945534570723554328543171198390040551106298030609122241449472977511180924548814828310158418219839328440141670476780506039521486685777937621596918784612680249773073080923308567675677385580067517427636473359307023751581832977626517462354492633448442290399247885649645659632792673280121280472509604783388098011588784753164791047995902175486315136669830943946429505883844976146383257112330716017111098368961501533129867607150412635932912398550600708283060961213600636341513607350305188264290885769329004511333780008942310411600370638603897703091451848241685369219616056445905898989815832114598860778369910278006710078721852433458460634970081050355355807984039542372018670893954795908117469273625084192640980863846901956142736400466223942541266483385075204869005983459572172405456208177282149424389624897829867806883991191165212164546528930349722572390576942256635253342360593330513196873078164326759916530455123268203625098118355915409618574259396262270348077190066099522396374136034442420006428964387703130242279477194967475737369674259397314038037292742292835680430750558944103410287795078979906663029349254202973972712247259560531115750191400122339172310598095613364894665298840311516488626179505926141968330907055061782527052315599273619277019467737621853548851988531420416656396671454594579327616790615148235497217803453624710545059340765481613685888041811675983208698270842112466565892868115483587777450382968673049467297850859103435853584396248711470197523389263425716775593780617012047852134968468068609832596300885454491497702372485678551008273536544635553423486624186553225596780678999877510507164817740873522265537674237867059454699587463362817395460532219098410149268050652851550792461211478110719556117739940017275100723457553507610294734038410342669026011552622712879200600303679091118118862054090675269253775997463333948413480865116943061704323760582574419686616495485351068581818991969728541313114793971394487812822896941264183451879421428969691737319716622895253959556781172082419075133558799880859457933901180398152023468985327762188697956963905928994596952546655613126716379817802293787394435237106238573675835021780415713393356427222064700162162319149600993787035460080712662050441338113388320960855899939717572221699594932639217106206101403932289610739881536494161556376589269223370475974088224559582904793090473348934568769880961966758593985032474792469814971677551034225068948336827389365044835209686545391559394040982052039155496764436089144971402688390878172915947481309101614335963366798345218981662357459565337960556943868892504755463050229996630549768702561912088346952476915629002816596978945588033525408379240157456405289823893421100609616674421446465887413934446246158173104134646572951545742814447413337066552083979407010641322412750600655819772526014443800427474944852773111068506875150053604565897838505052461721564213060183136973654864023168807255978976237411482505339202155716729626235019286570823769579960798411123617714893492317896674064644850702563276743762514007293913642645931180838295363734880288526349715470283405258117711263442523317072214632279532282154006710989071002959344160470469049404527605133065083313479000117541548159584060813215151158385403653281376534085900379817244303986551564115046648153833850117474374162803306521376704544706516293041539782259019858306322390217584582567879603947064735783652930978045012352619968061069139766061445119435660785958072275741192271495334057270517064477214536781679650504422329519258653920689281364564891145855574067616195506524814592408481849159472386915224021799554574103038935951385200982014290562462049959826422607714880638326652217253562630743059703812482170111635281031159263477512720218664647550487337135271921055055747299284415111350049037752689492580363082836593716345904484904226603766928982886600220730605374352381355375487329121353032452025070744451876671019422781914117648717706526550489385414794908535326174963651384322427489996391677249272558966209272096344976500811794147164243160063524236234215269449621459900270628561792873751010884204746769498759832032014983526827857814980183188891992599154108186470838344877166438267844730523253442214913792650440319108186045348185460791048582474000996891470294629228461790522722465225249914056900240247031642376042624384478864901100258922173791370266508143413407005280360138960511037058138984605547412419861251853974764592996881211780946340444067719308050131256885110391577776651062015945812706197958152572650581637532069512921817127772157177503653565074393280031181342858673948276081144750756699453319896235497365784234733674333032744485151132166149466846095402319907231482631669674801715661360726176282811961347619232301036688219160402727365115882345660210588682305687927407612298364499311120665158176222466110163149787825378593796612220851400583668636170916447809791391731501976657759522777702913214973498607203889411676162682010919786470260573652421626132257249933330915380349240502494212400971803951728957564873789821299549490373310971314501553577386090383947173517689168887997563914029209296575471136350239048375587958452171515251075935977221982216036720835355417321113829625645893325935124981731737784539586085289261874241413599512465964128624854688991150157638895128384875427228766110419246583191272892008626691270172738659937892010924327256459247918293922011231150251718774215658666393595654542310485682378126079083145464159918461377655559758970685306953322551741911075873250299633423971233159480911908162752063672298417441253187628269191295553201557876066136689137012601299574272038891797843408231032187125337811565905654959874153177120131044300492616618650398645606180721886928587909198996775904514588629746247992101802035059379252392357898304811561864858083902899890902559139732039500565945153388616817348705490287851270034575259550802083721048766219249056125282868677985218269186948705479668434099139646360006700541468499472759211031307048264262407902758905388048244599268638915915175197538345494379150589104139554786573145028122699744862807741535063374647146512986002688634736781184025447577530348841441448936658027395491689513460208173614051852067172833448229503428057809761924917064709860624153187204688867019061132326311063430552603466253139856721480835156203957392784780509211741766043416673023220585215800041079139555158314729250114062895038949442222673493181269599769055312310703638903332327994584815521941085917654690519938120875781683760760133724369876698205266468282016977842038543729285079931174509132841119960066190618113348707956737488922243534032290467773952064138758604751001086244698779435734478918449860486081525552642702306466979290025507654198815554088561648293304339940411042028540715284897380222158773550520055325643129055379296165448164581977677514299313074924904577972482911888934400808142518231605949786174030053227985070254076061291606069142758514721939067103355007130795501930742891971955242985615267921652778647973581940216997894238045588178806731786678409185527132154859317776297418362351207183740522593391573112584534288271131431895817969761721827247089679412936368835943206149913136586508339359427242247162571920182282538677358143466987999263645329579094937676679320808214809121065189477066838606400595701602119444124765148950892092383962275157411708931313444037349385783650615043716891999154726592411309985962019862060929961377124244971703545381158056589895190962481967485769680076561259354043614919057332732232922086933536388552685277224706888182526168668798746942791416179042075283007577174429041139582635699420771924256832502700097257239417229830621908308476607574520302424184065567211063580796722242304928289096825671835832734245307665070761970209402014988116430660462161633472775454188442540312404720329148368862914762015663310918201047057035420292260400941567217313688243932587521760909446223546662386719064290340452066315209286961424975313840412384162018114615917086910233214353799588384384177772782901397500102658840838271885431375881236901065121792888227081590930949336448695789775468053970596586509326428157445200199696022489036171355338026243141930484406113406296276578317348085863448929767023521298272133784473981261125583307526764903089315204103650442962339321850591129628904110286009767048162348118373511957287206705276256093496909907937140013495541525236410652560851446619626587589109490792343626105123850752261855721630190297783811612375219434650592230042833375328458423852510343518337208855857725278681221683072390361631534499628036278034994298061408494337327112528812581107761889412044399513571539874869197415959814427805736465109191148441000081444970943053149431699575342655518854505999780462727514016857611478486185687835894375390303966143089915164147273711502681872040641211050146212500837568562009519686586464486977714836479366883996765323340727056623082850425846815295115527101045602570132512259402205196232193807612068991643679702161058531878927958752715410470005435677965501278134965730800606909560031052187017684973319478111382795089676025475082350978588777674322298101763641963331774807047787943035850923343101345295549490503302811256462313601305331719829904910515726865001459804899529849229944531364648943155234024222075943605513745641396199012239200850343486007760744702501595268729960050601697807509496176927853427229772730790385805382399847993405278016807673919137137595422490317110007605388929685109165711531844357675102142006572627908816887395360198408725155282173342864956328713519077327052484274282145549556469539251711903600641279814945936361151239886857441365428254425193661048909154823903259819568534662127901206211122041889005657451952588496403476837596991936317573757560299302004381849824824553194554616306972993590682748870467750537704615952916900350427740559239610927127333608172276686054827794429934012973235801630782583646446934261796926019955122505780844841056641542802732569390444195448141302479425905815104022358775223468876416063589275892441092550958220511327200067023978408531352734315283749036038531529125156626570191380893162991003772387976072047572214101363563657752110522260826782922873057546338052551961539722958079135640987233688588170990132136735087926149580774157721278056740896405244277179040927481533695287916672158382213315840919465733124411020261293293729644896981443483692724138807177011569326850197295703766587755427418015593558370236401057051275631001080009538947078571089067830212397398797065634497377796140532146095651212030444821552105601272185478372825496083437466559925225801032200495002837010294035274248705380725925688802923971041130607637356983817170589105702908828665425284111363402676934573526581384110071002661829851892936418416845196902400595129228877704933589827498046069533339517902572534432763059068226847345455444973144263551557033192549477793933455099528129344986771395640565083093284282731136309679012646553141209622653444366696445210036658189304292479640372979179093310493100472431673646607214589886905222938733880127200309592818465641761477720809120306997968604565504852355880253700044983047149063843125157024839387914080206584824723670159952551092306925930851767592069763655689178262920441933402815906998072534332541747231133231781962204253870707532229822485791156375583292308986594566419076492232017614794362370806645064637777469359268150643675731422368049316012549056461057567086889259781115719712674304667494240728710547132906479823891463226139542934706496973606090149207795630775165435382980732811728504390589672178814167877222944301260887722091984589559547633187803366674268308704919096127717775772863660746742352868381458917070584446856311440779297771553854958803842826679810240508836732332249290644865238279528934712620257410545169434839794834403280401708531625845173456107731788783331905059770270029206015593642258868520913665386691560281578243288343153775801260430273074501686544995186316351943690565727932247214695460278717294185603826515562688432663881949850229599292541785562548827066676804020020112828795044904771214344359842876862895844945202248838794918601610501236835266432825857151848550429912426472998059758873849112520120029923728395955922721251517619232538814349570273325949362881490558167314324464947736462281546813716102624845451708788591252718116505027837054651421600528544989450943725584978320896422509642757573749306576946214643336822428801000598576452130613982110743066864835934724665634395920711488518135036999823640879392919321648042519781990230316632954789249836030459582639340359419266745590950887804075723274776101571529206371207864085461447053985217717043635899815607235916827036584447987446756441064004579878541845169206402194820433308515418068500879924559343950953582902652521103551900549862472168955481089961152083105645658528039582361723058329763580400057051860470687448961341324478241965564501369846296977930247336152602395231336120493234623311126927009156866593410879363045508664818515707156887544413864266166419590602803362019784489451216354244234369308590470597004852611320009648728128246356739035234054595267607192065714851851065837517420227300157584444325636356355896855348602901184595353231583725161229699283797363388250869563920100813180887303318067156480610275873989478512050655751925208915728505584332184788349061451802070627481297305963002304153534016790189158679040726125428352183126569524175875598245256844408263923879768544903275685477798567886700022750355005286437328941889365193748340707546452980118670435537611159412216225796768207022819942105899668616002407630153683131021515537764116452062055875450086562829280509419293162939667044229840142347786290207254434445039370756836334179575969107949939129216418123684086881247930366600943800835897253055526429417811231949897633187300310108700750212802357522238648608528967198797837982188243586669177204481171275580483937205220688055281436593264685351987208380189176398612320466703275650012537959465346892677842534174336530553509802071587816827843880110006576455712503344729394854667181295944539236814229341559277457490284630309589482929254733903717327171093249667033393992449659326086019386751710704830280476215916941030597149268605094382054234213777175442263278706406013991894913950025974375994315313795137257100774479151801560796299501633596266392090274707121176354512868644886372270707447967047610044741600395291781653007517521923048073618151266319440118734635606759990975866437199504834979510570981029139728357141174346989220868908795497458164682448631954439801484759586141994099175153501139382422358699550640597988748400435102692167360666626063667944227344787063891816836630383930137255021990654327246177898915406339761516041862185423685909317714107412072072616560043567660512578030785889503959722936089011569778494192038787661558578915669790671891774648617193787853213280477822814819472745565339398867748554978770030833807465771571828510352620714274702499238093547319533448619862662555226763710109779024788933208014868702434658559128291856672368975013078791713224059017041573886566481181437753872881342834019067199532257781343704388484257499673715902149949742454751313472200576018823428840806819406738635768932940963076771543535061654447832453817027338969496728976377242960434059876370278193164214959811150104412744544722872877389640395392029299970303584064382061734498076031925050258423714336354546045973747429832477400350598939443781395569608954121836800551279466623582734058037823174716136663983688387724407448120553182667025852837992663973408330080948990683893446774443939235654846666847733879539047607485886606136679124725203308249474945561672829206380916617399143372317045838505051155039457848672269340331872634074279536240982473839924562408190200428764037464906488626711468073683667335345054511848897561805873882548879495666447157928901017279155344718123581900445239412286174206353583622298113541091231178853929148747281945348838308170378552515096463969395670264309884333422208345760468578078241063660675050990329243545096130042057425831254897960708886634541624285801947896120774756664288100916326636706112648711215912974574241526562640460758659909483332116852153179624424907606992665601668362153548330982954458119965089856982340815626274523054162794387211260164847816204559567614769677525947417999485699124493384866499297675209048104562783369604917307917887383214870343120907849140349510144989349421529272457636360066919125380585349892250316650036368757369109210311361545939255243631206747882916112409223892493842310473130783343833790684061161482633536643061796684283308896236004413072646129732070640725819813349906571415310812521946086949853673817998868824882842047507037767338302706399140212446430813980899387738561387426391618550351705565726198693091527018452906829443881602598192385232870130269950457755786668833902060141212687443670356199091038731153799391737406646556692726876679768250780419367079535913407744307795195527207443121143932227794141338971468312516884585312341185501460589552625331544898489902688289425368294715690310534037578050553366238929243477876400779485162149412987954544878122771429077050453116093011773326247251890391831815876089420199234350037544047777834826958361426725477455171074058910049874123749815137689637441627588979790490348264036015054943689142158840075211688811841756136706971764142295481312623278454469973976638162096510635906075257367544858200797508447574039001841650325430788646571000243503433391245354945107881351720908285915946911422299258728984913084506601741902529248965766453546560405575330314377703458803614274604259927866007729093746631082268842236221788111835016991519753596584608784684382603866846832711554987148733955717788186537221696720982869145254665886194902840415937741835319495670479276488036288128693756932350232263176386892788075498749625637786366690495159781635560282698586954820065501713063876967738916487260084107530552098170868564673681975387562161744510303620633455660118128457169847529750514991689260671612313747761310534005644882940164500430105935479124239518484132560607924950218838780536024248628231919693952885824205193107557342492226213615729966316992559770385012784478848942645065596807885215960113470756446915029053325001897457183533473939316845453090826688747273737589757097622460725052743429642003177398090577753215813931525523221019850003784973231841635636897223741907088915014004169118723739119773381718969572878013890773325328602535227459157083603488924613417244440083581873749035863779891527963970331340182852346527061147649411496842028319872311008383284780630739852683571759802530397161240663662004130669409590740610190004820127794978970969710794025095520201701374929586660575222368893279075289689688441160583884840105368094564027203452518485204617734080191913226728318883888735820427719835632422727617874131896271065778214072808228186384380230576225154654481342409129737714619372371368383215242567677928317633439313553666781729666439452436240144331618905450454856850433107353817003300177189162180592273972762722969640252764011987102818174175843021894424596831759567361669529829383643682790144284788413468982455760838779891321413731702687888261505840021303406997915390826138052730818046729193397071497983463639345243535696333167234752199898910802258364953560465554991391421902688799134481747590947656328796301497167900354534763190984950957476747125885308351059386011437075641037772017772903542279978760415750740693215740234911180368272910734227899658000390747977895993926320768214570022482210115669058448008123376234714784046751488316500805833637062639370688479142715277137643145654500612994027139582671239672081314745860469581232055497324967732527862810297871496158530312516336171309842424283411731163241399406237117488225015993205393323640785403721101268525607741347569120969070499006235510186073600705411051697971760853985749891449519612013771078301606797038233398977312512559183608181667921907476055094314948166971184327494606699730802427304941822473203829055427509445006600953219629937276354648084754082194644538713084521331658725177682110952318657777893897529079204552343152399880070593179279660340538826552492568727596205985432287814633475790535654191047362146599437863126558023282430622377349044010348678667215301267709812670166406955595855877372346734110321268430587415955305575753229320901828198340736868360881009091024853449682352235976063878235523949941323862468407654754498330967242355207495090923475663844217114486947237300778264325126547546590533015077043477180303592680108736453285984119381727531295963981084301543615609999427673707295114608169401296437711252492604354987487497057029455111483130462551371584002498221774844431239887283594199625268676171978316271304565240048841283150493077361455716017718823064403797769063717001853788999318624610310730020139878198204913089315919959799380337242808466520673866680824870871947000300077036737805033818663543719417309385752589619103790990105379332374853524435984762729804292161428976355395737962292119497458062417211394860099418497605876935842296054782094912302808537673794745648869794795745752239761038605207846001181266838164737751643155228932940791561543534532077607481332875007466766233072965781263626655450201281834924586548445162567773375245303320506526525542128201832558110207511520974986861765617412025028282717399728129495650326682645018104911486402217797095970706391921998297300231873289765346900031165190430110331850893431174188753829958607098836342056901537370386967485745208105666928602966595317414128763283000036174997457394031348237585533372819351324375781395596805177087503350862654165419432307073265214243156467708686003410318320467358145276028734868983443838379679826380349344986650993260922593524651734719261127377478233221804673533831323351236627014303373025892476871909217577921659236772556709659374251907546274778415824554512152360657550619072281623331570009013827053717567803967368571413619912885910700253057626150259282307577727985547637182721188650555579948862381051813960484130215078091485336547887221365281197164999738399673017383364628773914068633910437452274734890671573507931735616296262913241973585652246995272063713597248174613583882539120034978061075304219815122722052906115163183576362087732825706948937484414993402713527515015656824656374445191170133832113220288183974642440248880245533470481261283085699383948452270606544950231122206821402586328584011672253488814886547673216461162729461147412266062985522947893359703209069107380505785278455657421105540103077184954729307727313043740945364752848815948362154404931152507269925201428963483760737351370509442657588885924682351495177686043670865760580190069881981550214240821940869312196651887212145283333141227552632180225070847383601968017269227973228268127134027435004798748243910554330951976218401616220900858842482515075381710759594349093436916491423171339769407119740039766550952748417901777152555002556701048873995379665108224684135536623783697173571323680316370712482100866058207113703522510431967966149126058660181328742151080631226538391655561233081717361923695643864248800359027534716014776820814353703129769329033903565642686555982714736425209827690387008839200763756749617288036138514618615073141804254797018106738995492347604103331562307140715693506217511628815607747735081737251361018603428933251125556547651594256388281034989375308508317358002275559615852739688246177391553311795127951149210131867449438308039878168808571243087772182293689533054552430824756590566079727973808693502840350547716068298782369133253487212644379110543521436253651031260172101360772851614721385973519825712163817329421282903747591336730454743457269146237293684976043276602320543185900204165437629214923516870394712511366999711861433578901575183229524275727003271541897715713278018027947919212949183667519064083125738988286781666322686358632778744952519817811247692275852399715122111217175823795682659371298989282614493669623991900702553233037485056290011121609786740329888018004571921789938121782292183375528408585045752406212334350212967621216691183973611461598499377162882130967632705348221775137633104605424075977501541482384933482370319585371611898203110802537490043423266362428067724719888374141757324237965465674273900307536314061710104153416578105234634196690631180127432164887898194769380416183420659569546968544111849566766362925212235249017044037410609848274212709891823094467607064089554944653845147382904481725189003810299511227612136768245934929964785491073422073345650163392831101845863219309058253454447226090097108946567494634138293749801080650488869724894935107123459413115143291542226051001846940911795333496642588749089193525381206961401835817049283284361205524141375348689498069481297379873130070632550439900985458029506760598338208562654800809311958150136735941371690095533825569566251862588898828228100168207001713030062785211796854404780107525018941706407212292019167611734381208721391433879347699785691910822763940645491796825839585170332807031808374994543267677991698092299370704651201569758602166228800182521357291008743063135708310923299326008096653117886025543046904309694552144503294398973656194953320897263340071403138826769837692593872777356916571507627942334789120847570172827571497506198746249297037729244136870582729938557325878061622589343732400212503851219899656096182164439786164060584213349154356261664945104811116730389522182851696508805259859793206202173778986477029433135840991849374562928364265535243411139625400312339833542927612894599561574732040999595223189900658485351955262549297076680353996743725442443132184250026358246385432644901757022914788163606022888737795163147982780970748413951507332443240758367862288372787230848324430389231827712278215125538871076721311351116301201998368416304102833519325053008796763870210171897460834782918214325779467699996886041561280585961849134967918809055604598912972065933664570888193675309298111650955587649901705771927200448546173849502011427508361684514709772879146233588222609626207489333722243039279708653695244493062865063389928090646351363949992814240314280732243917350176941568406276373978199899737133853318296805338485082859685698817060507973400813381924758273468070226866672970185356759774989474099491606372091052787244812957112754583292293409872988112235851972823391347431336096705825465842103191104662495877336740400659568417152409934801525604569151673427970133429956160677680856316344271611717304154052396165743409388158844464373340119763632005469954867828549455341567247942750215925251927346530354158115371788429628826852247258418312655677554474182239848974836043105071465947666030214215809126946910221288351884955253808275245227753330393817143761336448527366641856885684944853507241098151056345974492600454635574718532447384095042307329798279010644418141628779190704875955184896825132632599592234633659790089980734471087677141947475960162822991205783258357610604742201767262011446877457674682817186541962139415657553408411011657505482328757118910982965866482013476216251640266299262571850998765959176423009047447274654269790799493944998392157680429566983370280501053279603033506371998156474567991908872801235088845067440190232528481082453570120383038729740793879964856741556592050977835515774608091879750478639988718016529847185768133010967737085132581665723477961564647008120223959232643010576551098861835132382576394380661295849288691383467180331665711751545353221796794954405456292995080828964185140419000436876394981345736366367038045170042613856571917494718653084194817593844563880748550075637461223829351251186805326992631717054516723797999191407036405291458176731313912978843912942946878396762053676891663179771245120616831136405524375178273027482063606884256450633182698872140834146256387263047434895881110041554400894355479864098993544748302703049471791284135479081229416572691001969869346653399292138347475180494523196106996528220548605378397164701967413315724911727637691135919416508140926711261573067192143378429511591493009767234103135815634056961804621283052752571561442360994635653489425046473076983313672461272731712079003853659202848485856018995416475500238058427041472375512015420577447447965969603071256600724580589692422581348684128421086916970289298777611012331796158268668161517069256354399349756801826868653786208422067946978502271116169753490764856759409622506870292627092846544071395708213346710161394131065906889191457882665273688513165482917517207995769633989765632958302815734867107287115729486826625409220011538460857337938773168911855532752686600662105023237503798765966005183805194833257811497276292031932364615440939955078350138572245395035949370592854849261426934698508924989175827694538703920796388109553714527249423136968346857726666038042163610706997130926320667336571587566288608084467438457058393415535069138374073269027508775477869052855044687499665798510904698602617949272569091314607127220502947236939351652007953246119300633752972875697859806905724676280616121628325092150144912463873549648715267935661143162541325235605958097595398732030082521350211650943832447086278720464790734177218658392855260705625209198554109230386202691311315519093785336742963164633147255269531667561803528586438670352156328929439803733704499730305403142507310629620584568175221988466497975038592136773130956528900748933632601408070579296300492513715637428813365247290436262175895446251173912413155202325784317767673479489738945101079032926980008268460061073680972912571597502412237613444495216020444631119093187107486892388206274838653938729372997628719091085363367548441222600448738989721828205571095106990332717710352308327265303344432696071958516113103875017007195150932482335676348677817172759028544076528553346241726880610651050604979283547650854947834963975265735287435943199367696528396459148413319299457116494311754830921396750111822094093269557033125930192395988994782503770482491009048667351489543669856344726395113797046097128767392855800591582966893554275389260526544455852577582489237822523429394219739763498116850445132220354693955138326898426827761238495381422270356416328718008012657551981137124105301077935761109809282194679518019366872652696684115799003379028752556948207355167188420284420110761402523357281150857776624658303203637339856230102782861305950956645761651156399878698018892794014296268735072684479247776348295675065231409111003738867831113562311639611848818300580927528534705025062874068158735288922056270001474052790982964578692100996468027180903366217162948523653399393019621693459525341377824052503115051858543815263470568160626290118839783305207439870567712537411755486805604374410418930026912417926041606864990345518850144495949745519611254924543390325597519734285718394089611515577412319745394656702233729496739459561818925726133786067170240348212578848029501626925033638348882637495865694008798578092682340610874703012642272477798614339525002510295832467854352815277166908609267780240616219380441450396283048514767638406367484008464509103924332259440957851139175729890996176549699598172601033352157700654383776780748468401825439321399246171088044958266639380566817106408842947314520927617140635024323201000639179928949534886490338172340622850282811237221647128273799204814962235452142069463141431718083224214085748795665779625648440905739673535255303422564945982197442250870662744306424445900244894668534824084005193731743748350106334816775743894287135233625663746975102321199823906809675951134566119718813933970911296373140743716657283192989023142798102766898435284972843559783194971791763997177714986150972136879824559159433398831155770603468895966016660636363458281919859670131354645074810983041541605373717723861560749304652764848800394585886480557165390295669175926758889281102510598924794426144659650417660728559388780440612972144735745546669637557653888907259895822153836567951275503923385895266761539177481477172676353697463445966356316129064143366217049981989370218553619192622620040301279742735536876996497536160472110111487109741107662497073525795903413713257724243260732800707266325538089874248268346241175846232974071224095628248940898004658781110732493790062881279357358099259762903119990405441913917371927371894226211368768562565008091527866001872539888698993207179022952015280466410140810845024736528516508134865852709686925207002245926015260346958998003252300662747349759627414208737969878014686394406194271009462360488952490650380366503344715206220407471431225625172730036330861986748776281513870087073060400245832767157917134200689811785648576505335477417462311882077227970304211290002340181669325559802748376863508037322124913995001070553114306088857704376922836366791421796407136198852861020527825129560048611721716079901460027428429716288106994163637883842747665292158007797664462082403627678572866846490737281483467548642983565844662011766125192770149411590765805371908813426180742416798728574253534850141965497552920842017800360231031855666758883656739475537911475763091645084868457321265724684446470393834832077018189088369096861003826019686929835785172852635486393823853739843387008325558506782631896499195954580445380540141135404987569923542015178821286804834566850436200852122424240659476764428073612724346039867409481244806089488973649393228929726239515207804729924312262786003812367016537745947789018156430111110061414896822657807979342028632809666068173081314258296452257108255524342762413877497350774915231363577275178955799445792367262982993399940448415468777888909401211365281550517097376120812443311156389695951815167581365912765516453820176426779669144085816175827514213100330195956189788584785369797529792052990286554117066271459903122615675023923686212705063634110856079820576707672121728875564434038206959490505299646287201629938141028597567500152298706212203837058968042800575164002309098712925419025499338761545893563919030544558214363249511943402099588627424671796935645925786156774301788719514450994748473144910490439435308149533450575743412206889474445723458476220755096362044944103863781022599993457880633264541718473235654401962688422784118607434381013695544993398281749964242230793595440255844896792358408995221781618502726025751553109202798673549766437288057729550531307365661451587945982911367833873194801463388288527335302413841910664155080229555880495673304552474777285913255396379756966434288187017501755493380971068974060272051234263904441391128807903519270620564830258395949493014606747441900409174457511271489463587816547330475173593427204230938520953249318035276662568136430465591744101718054870895639101724651716747335216115533023177921996277846720668231409007452023526069810530705793438871640302723400196880854852876494607138385371306769374199294854141881565834910696402776361312998321600180497011435372733802222947287036018596528335913117289812202545216195950260861442116348128138199524918866252055017990863423994299952480796276312139451511842625820983067496838101169052003949738365015289859594333252057230979314136451845652185836351812567136502791212080322776615944697135680025733071880692047892897994463746184112755051010295508571883841617287715942928697100951781024227313320549868574312779376578664206642191915328185660515864101025682062134264009729757402346583456436875626261793569437648227475981136306494982868127361119371736751212081261076870338483896323456580027231388191636087049067764632736839105632948298328804228186352859885755993434410198771926282695074462233589394340837029439036934245226162457873410033228364491032822845096957674540604871770138107284453445215848705558484681116633864551413789895890456922257525068948145250227090815065576222617912571084827797064458563940097959964731923145321348987506846707244109174969753759201132354636079344690051405796140355870170678867203288365504009325605782026654890670398280569435400863114226353537324839557489036014004458672077065725228074296673684329583561893049126619944070484292578638538510326352163877574947252623713855322848616848962865967054773155690189480830206511278228769768484391206657568786053405842084339778899346937545054051708037971087731518513103233710136907524136150022747598805543272218270861780513110869653412266427169524748656357186223587784488046263179721937998125366649448596715878139982197690087471796203552029266295292134628840901862887742418436788613483469295075327844582838359410890621549756502566103738331832269891771869134709540781202389376585960483790949241716110292571560214599177656902876546841011914838403770360694653225720776823662670572188302469815867435357086055645358716397564601962845410217960456801100949960463596992892263928617574461202156185288748800959781307282765807800577346063996538176936249023320473522105920898657292354189936214576834584788891742796429155189563725212841457623295119168194666591602243346902174471259591858962104353993646871947562510773411371102590114261451673475597791836836152532724770411487627147662103027221954908587204400864227378133433083608003270744954346939191751602795543917285658711647700389614571523871326505250010080795611405646885090166819265215896441129866740436393076189360684060315414136995460116422961446073661670603716151200279119582188496339517201402972260548504061470404811116613095446068267796997246708753825715621160502685984469779117785625914329378079393699161583726667536619210873905469079510556851571018721218599613812811741139324779845648495593638530523277256885708540217474827597390208975697577288949154296573100983535498996735814574709183793719763400462054664944959118713151081991755324223329587869388706222645598021330574458326906644614581015745709153950161261170165428145507590208280236985098460014593595206658852513432541770079805759866364253458090596926897956339039945927533721698321387279351870359845023987028606116079599689093482197804579699117716541957458224463579484574952696836581707893104101718887989442537934276047791589769938342889470040516799928150496776485620931287301388115573732403965257862872769214202001533223594280867122817838775379076053767007441176943517612554597055484540044898192777687586010191041206210383321409028812188861209355222750443200821760633524966103608947582010321578154240837549703925302822559911170649534888151303705366067270438403071205386395345504632504396890705003253027121846558057573825381278770882734816974879413278755890482927764671593215655892870014167687049705409920617787315814793942821993641162525256908515377780814889245339308979418254921363202191345421368053333324519843923523188207567546497425572077901236346030202636193075174117290023299302785078190122439505189498548662375163647306711167894194528923459636400683190829206562740967444736876159839978977064419056280380980102724387391442624269372115832034410152167142058747805679018530911987843597939947662496663209970749402177679456391503401568088166945473703616522822547718140341578760357927531728787985301894481118661385454660600330362628624597320060123252988615322321153441071753178781968133727609511334274313693195100378215562147071526320968929671675866911094543634945074386640642295843453554098506137686656067040131901805294079780200397300126757676539615570282308165335093829015111935818172406432140950086539439195502146566547214215268807384630505765807846709106643575021086872799441355066832662487042235962746068230512350944999682367820542716334625411530938429399388441933702073010537107259319756967376478385859106933566077774928725541689830463258652185262419820658204554696119107245287796850086135950911325871141401842196406352667450918981708111988823356376689441688753100726858673550803942780952536614078382375762641554592810458273444890489755640650436133761718638453314250005342028199042453963820224694973284559234029771858013881965712046487890499377752701686343004428337980401561497606353340527198340917940370421062837657554381846867438572201777565342892991557065506281392693595556305144247822679498777332439909878168746074843405406686005485619850841866503051191029968081766291163784371604536169355721688463008972433079108693262610707933363151272876987686485357028004102225933920725284415977019650606767146455244257305310551004220937988815823179510608203846906031022414438048835843783757742444545061706833668714496395854145951888760677481698205008188905303633034687640953482999544193929702158467858004598036081741259940738624547542346728731994189959949968943163447094377414795735893915145368309972749661097001004347852424951527887970857018033473741346346903249273067409517684806618851505994703044542659765454306526843175341704319576525678817476412233583866122241716547996511831491174737116419194699485479590052629149596953883046374107381052235347608661834889707625187187793572250677710781883915982551463602475037698774408717078000158371349462523049260236185805971037324145247537479408977571867743381356856042566897785935469093220757040498352957399730699556812833157232550305467398847106008726859999023121727439134602988958887081870244815232870807408539164124644258236109143496627056241061836856474070735252071026689391375926022218923924871374227120153674016278316764398148690888276901821057960161405130530481345801536610084271478205547283191229142176667402436909032441075729470364501850576827862515769750776213013191172367139164203103514714934331959944255136130111556916771520322549435528505251870148588355061017925180104988284030397444196373736088625391488692743837352899147298532342496209409001050263348408982969176266934974720171977847012429033801682942906493727396207281670945089420670916429194142592181028788041576130424918461484856969195738596809024205369392493989668734311820378140100304731556049659325472323130517316987664871203632809553919812052180916572401934327310676995016925095676889139961233671128063515028226636869076722455312964024609846651032888371567612689891581921960711890490739680942303599852808639346336991777973030383266055021472267269560983557369354227721130494185154210253583145422028910463283340996029366504554789258681642583169862299127052246219337722126007271936565467122355098095791689543365492178917697242445745496555411479226803962552375397551784722769791989553365080544399484733910805146588605415917453953676833230788867925422534328592399237822593513600387674775939237717023962646782672592678192979284653061699569891756973106301556201565043220950112090153381233789845067811187438941165177565817735064357636428105190046625162370381972376199053809904211326301109042328370269595691686290154488503501982243441661156409204193452565316189952135043516131330024690600646566991325673915428878524692678678919994242261806817364488140175110545789363702438424669491457218440898701358963942718396147163359368094289917209469386971261385881081788760757444720273919400234728227914561037153145229284134533603434375259874236513323681169883838392383377091126701764476374784708557649933617919216791713411365649236516225570449831764488184269054330260202965462149746172067965727782732134184859023474138378263909953498055898228280481409090474886480901182212868151178886386238724090412077396758686918419930334981456876777562285107127105542769982798576507738119290755137288102523201519394760153368220762703863149681436521124094047128030433076646793560992135361412539280781786496690523734352869328226408511703885246552724263689287325118186829899802756566937273741889271536165319524482863830902093791878762241509419384917828448062045014454605304549695507595685833085286039591789025391427279406507521141724080167800506091355961925946008970558263492402940826613581173723194745182958871184758419860785838377342412074256483242774954304083137098401210852361380397311024714875504554717705079810296159766926627929510545226923253289673208411243861577124999537254730778174693576670300468320117949987852241130591003455061203280366038091840960286601905058995132755299773784113913079711879042327104129095178278695349161561041209468202495110604490744709249488503919507736333235634265200242478668840261763384879011119568503512394444076800963539620620333064759415191609820511309434582211395669850265596663484606616502643974980087081812901908112150653971710235390946212759760327797118659182407427460524575333682692461600073691867981022933194225574252417086495902926627730580345550986755221631346235019020022326649971714719539296894510441221771493972563940674780017595622138904899182618945011620169932995767459278991161473296870565574761511175765408241379887470429407220849078140120836339894133044829663415053252335108672898180256847452081960436480212723577569981162855023679841157024732599358395938682449453590940153406497968284740652251273093889526216164848373766838195704346269009175152475055842955240399185373609784079653246004058700389010017926368653303751570319130851618962494060837314197270360615660369766185524362287335303282033196256268261197852402521608697944319393421933729758752438112728626708102168989813639685432086180428400926985525842464457879440343420021750501974154084763636182054309371294504356072943980926705079940857751781284332501568644865049326084621731957046995210772465415762473129285889341466792833715523144192055623853453697712577922536832751425156741700793785328037733672928299593506284386581664346627999683898687060684539806274678297616256218370129973382533538819504925302849515757664485912805315753865795045517257342989671757208277167404258952249625074319080092256037106983316232865332073864151678460141244515843640526152360634632087438276193806348668471853899862481422083164996712477549079846762232253243985307088693427056543117539193795363624238104364450487841946907866782192869402922394979858464848187892018354013813220143427385993418621503526753167436718754048921542608897345337035016080809019012380078773202850602169483672095447321637259200903313052997466358766618029937816034959886280750643628978745261510695853901401327976791994525685752963220819460860860438835439102855440157367606081519112204409169381935755355908705450861020234880647435479007424636411254399533336063236179703434272550118851393653379766222082759623344138209594853660890531927055889439472565722327756662297879510977086399892060773987862290429372973345739924813058873977994290751979889749591260942751893284306147319662756451394314874973121284283625879480534687361448475217434550472875354992801504878351687158077412846481955164599066446258157169479704209286126859746652003852491301173371093295363633476001585923537794948893960594188482130854364476683549622004947090455370806043265124881164052462242061156944006774360592208256991865319580031263868827508283605548084233476254760046701496002737755151023695578135015427923126588528739761931490988103894285713209614174878779709543149866408693318525005318984706679000214052752425701336963338211568055196778209142086383854475748065248815016076243387290055639797171266788527512850269366564280896589605677738916631018080290497462539208244435430789634533703608136670552058845960607134662731614867292896309992265205806518173909400480897530769065688141432492575458232211681864859563682011603442462380186599268198435362929794685625458524589361365053123200992525260014158682785264882169245878615273186778791840654639094273999563119266763930775830134685758972332228043957059368744420340951782303399531702394828673206427579731961306038333869816550906714976211627002696871000701730424929185025160472204982740261820579934658654545601524146657058858458203932952671717955803144333137101826406819372942749474950199300652977093275762971742667340304372323619170395751309007017913036985138559172855185011717987197376390697437971758866191014472891552917242920571760207122318812063708320203559941592752568080286440638291138887993562073067493767747181342809216080400815202161212925159230250669016028630380239866600776133733339917242504016230315076201119894862617197169510232868476186983318079417475621994848481814102778672058103761234802569731957674327168488650388675859914332152270436609955942634284749850409289097449289374981747072075894956336191249157512631680218315729127105174778749428632612783345398649116174164278871424989327184827605113355462761202993487897850162090525033900588278583271233433777153520523245739142616759788577252199060890962540672279999969966427756185661058296051168108792983899678548210914842152467608094035931871953837042264235859660257930169541785932345731842142301851160125900426817657220437401179730048091634442117289895069503676831183253192514427568044742840294700758463138966024932111378193349932358916783736845347300120096914732807833503825468234659443708945466393521569342755837551078770159644475114454302467399056065650951137897324026470602571352088549276182650525347149534306117267536709520590294960856110011875617187615641459687304179897748651454784907284830905988876108032792034539879187361225809831028001297755927339550263642829744528093819688846096065657796221389849687276517933659254536186522540325997556134418174428544087844282214183410959247835991271166873946595911930194493067108593838861860093338734785459536918162700467782059575028647656067213872588090596051858816235645264609042405216603556700315239158489400497672250708907073621768605300564652531246035652004392687053807884559243157699977750659545813198133424365572590149067830740782470612514715471674314415160153457409563351485678911295168267813560034985659867213084411213125418886430734821802924509783838647095200382083286733988744631629516692636408716346487702794458614900615866221620883775626803572317280023121832102548896071555086992060915090590441130871232417982045957609829677622443174658840667572431309409493213683436184026732096936285786408039904903989348412802279588951592244358861566565352483485646592918777885177478439006138684563172414882548938418743489325011260565828391587312817596961334656014143419619795954366657125039237666276614297766589194615538329625832046139685365158665408102153237054683987143721062743918394659383421316678991218114889059427175525491907252755547950796605011270107791358503522351023851925671675262685827364047121813763815831795307582293092751143664123721097898477947551397807346024318888718518061554578263904586481812221780337327827439756191462716527000466200300147532413021931544118489108860062407191075678673257764359313993513095206640686910185842299911282743316460830783733756406216189030162620123130614192894796810966912016515925673107902111387386290876327248567573857300536226061519588612045742602072648977443997634575179040340618900735136277659317553476888546446924424733557058991491552197958265478004609786127340832567417570654808250574323243884635524105484951146288467003910070632753386870521239100746362488501439302651842872719018877011386258441488478468088138435062648259285840940583092893370245690197235612300103677381590772537478308803544789735726033584757047377004181964546123355039063108526390539656135705899738355422467254988395741399522701745375527689012404038043314417762519725447934106875047241408721610499148306158594304155211435677764783349898165609324362157697281099955841099987152300305896783355945496004761510354413628272792218983613234679822755182695933501861317886506115593324559021685854218380513910055498680968610920085602596938006531957727696273780684106567975500210773184896718705188234655066611244777903771940151255939167239208049027397170038747687755970847142556414624234092767254756427357751757810401669181225719326117735022989157759133232660060597842044532293762774967311783966853495350775259180923949733264689617920592355320869211969400736424180876184025796317260479585709902862626085459160149046133752929360127486991885818818548149599321387562009296591846091171956061532789309139516232848657489897396242484452572463090779529744273261694004853146863461309771506128860402484771249359056389405361783144469221105221543708359680128426936570829565135467377862916222255538046330519588056242888645273482242930085754925710412314684000760849819752407971694634406091540268721719439024634177412799467552942444478814814031005516871058152150522188631849033065351308037047763310444120766707363530626800407133225122274968742933863901535106642009901472162661726420172666086819469541596820850329810077045762390290763926981368144633791125760512051032549718612425668584424512541345553077612222471287178134490452929069317317856709681779619458672263741786095806057672530516997030537036577859021728081836139622314901167437862214491092395195592575038505837900618590474332263582065164168470729272176331739358992034419605910755222350485021618331509476531388153514610095945887007739482940594740654231522173445577718142699983042241089710446410550898450661195333769884557837736006322132898523066230212911863969168612405176651158292754054563442214368563644807046322911596625776816496184016953385838854150167836666700031617450575468697758855263511017359969965783389854912716760183323998435607610120379738591767661048925890897512747079650152715589432120698546037934014444813077450508653762108917383917576907591311235734215462043722201285925989116993247702247618920458598486436961552605445794911883666926991871359404807827741483377374914488608757268000188157852837160143703859196309466803302368010457890538374303059069146744336643805970778179150925166661877530478110507402474669519756427625195556376043604684526520911492825729598676322196371157700976981318525989987295283887103700003182704699446518059317288585016108744791601488934785265678907781888019624521432226460519689974407264951165625097709451988977937870674833792406887814362474525463003138980215950806433127548564329225645497855471534947173832501935625537045785480603351996372839556330155774067779827560483050309274295233549839513897406795808771574514960818905312524102440576575328078848319988410766454223193651639998468503628666249407551114889053495082902817241163489425395923626259372262487123399615043667197019835930787432809392079798068812962759925071899553166266579201523046085501524156119875766186798379666632371718023270121525770269774230189472876549959371168747696833002098586946092923037306093406175770378714213505185206366907523374655126377199052750500591954785035724769770399810007889050812836895372772529525827422648295219204440801827744898100469260696873494406935352233308447534793366400365893410137062193713512064241329925326237961234567123295486916812891194619698801146471959784887596018581729374090572800092490704264653962106148382484824591045573615900076406430606252590618282010784187387534455620578052234072387977025762574032180080006089124154199378780128379486442161051427259772011374948110218775175038196484049608723840448719196230156501508879164922369358634512441055992005745871808383909407911429568046875012661123894490942362968149542977341501506170856363841333242040396134170760611356892792187416933648356213494000526874012821320252576259828186424907765350994406689135297063909905995083218435838122217973616043143005419681458686291865407661377313307471909402950623262932014034249894333525323297195742763313545547374071890801920102050585416306981138884597707985115221074854245573059401520726244993087133019451771662802148298420984818444258143475546363210561440455807813060292650780078408188249644736109732680741614219586457984698491035142113575549666390712725643720552252845132933344316701680096331444445660156722766540862732557247276461872848801733582378345877687566933904357006971376411264127379807185398497683640439006399342308107839739244686975593501920297507425406788863044288760152008470941306493547379140363158235786677376259988633836041576021237867596583583108485804737301941691117796064655373641255576847205711320135233902248939618865146887750607398460002454617371756921228860291288131670763740049763241677429015959213683532768897937311084076600107335848725240299431598782222991184544129065998503027121965015547922002690238218289920267336260487710277076658701719591906424905132529381222818148850241184744509987045469290176804145221219087425347217991470116772681502984129646165557898288719771189796877595068384696187137189938803583233283579103644917776126399843880158638224765108523893194694617412472600207939016205783684238609950379455947865951826376736353171848200450161211661400086714537556644366021395598501952573488517643338104972623831214649546396271381547362230209939759176370350537468037742187310136325964223136756356176521678159947873994688481962404592475752469242816934502042158919651563650679425154847164008061883697253932850411881031721599504364811935576668724520655694939668563500725372945829288238608991901141981591495429584289804715758476509533868981552815520966348819815649993812075049254075664643966481963078778247738464625320875796574782506072548067391604878586521428821795737419370880838729270367535863712560686899559886076799324724161353698138737996169027870767096807938973873924216424569978128847907941023756368527370121738626945533622966692206502966232625482057581890645199927431589297207439563088821702910953185916292309014354684762636137607460732058206017651880547886434051282038093907556512289932050903778867905644705455839452524460080677912449264502893340112745394698412015598106629828102247064493084752433254604127821192511709055454891463153318910409040889543245807918953196387701847500862472377584487841398787859417969981832108744746599153790346040093246974645667140170641175143001870416119717257301218635295085764748982052836162426027320965610151576066267634404087696040946226150316184176819774887163493975217978560298956348993606985241003547208681819836990633995206669552095871286211238176189600988911177532263045319998324665689649252853352283155042374482147933967614599593717607982380785089587686012692008137887778852294900462622819153808153756177854559722314703919001393807449702466899462356136188746760556178997747176850695007349393808231517735633093384035783126365275337983499049584923703260922199739686356862125762818225950794560060062300183795266938862162188288116418737563608437503279779343356696451248610616354723546361902467246012749133452838397028987715687988115079501184616401798621848971472188000651067286912199799228289386949596385662645544081387193110448884469346892082987038734681882251288838533709207151462974654756951411980947049544103898193494933916136837541185417693938375091414890229480138746892809081253604638835821184688092972452341849005836143450835007964153303020147005501125228278638398305320895353478681449914501258126178126879167905183980935975030709107078834020867317668852258835277212221232486232286271581607483461818005619655044330457915287336970314629821211845500629935205789859121599945138405011562404604079802186865261530263598820900080023600677229721933360427052947030391100719570964853194452545331451170352424941035131928650161395510180271781169641613268312168659113007371162618727642395266405238402331899261548280887606405868918389930577643501418726963834115562940009291891329354398635555278147388988614898543332039874821295127939672262341730682376773255414299788620852867703797003392403352026111838220895243584776087294234645628039236413852633230550314504017274199086788514116126248084991884682229172764349141974105996802255010974234789534940217180550992037483715899397825748208766922929004948659943329026329706930491532166240856324726613855972965905828891423956202549193907730696530797597528029607712743297210312751629535874709038088736046300634272352229190845222846188386267722556704452552657841379058700321211595206857032851964128793235478416862355925811226749995486150734339532560017880105735893944107369074162421229511378846334750719549799437073078810932168100281542136266997912518131874004564239858569376042280983569125381377779774692832706476304835892955393829229873884872879579011623806067575794525934600308528685827630655075009601258160973495768073230546077636484491361999869719794775117948326335091351826748787760770975868602531162507721709460551863419797889193289639323572816459084653758258048653114532451072125423408510249414009896071560056736372342261632042538077038601407419213442900324379218905224084934094975384376103965794516781941031805040009845768838277686671689151940861062726590879423127515255240122699389394696940835437188177176653620321833347701515682660300268437005879907917073839904097971963495487262119922952174610320698628060506176881954965128715762167958847157644163980018912994654729541294030106063668015171481724817382568241713735813935848054699386462859977434696721084222899282809131749612353765549176232120154858838239811206993831157942745588769025015552816676308517276500883318356199345445759042967459145237444223683638493606538191932518817828567449726826855007594033043992531001925962631877469596757382141594705648800820733847968968848876098449905543909288828314020582014595411499944395361585955569062211133943047849190259496758827664053991720232911022458040228210649770406964921144762841971555648807027985817178362197037908522273002546601744306284331697763863223766402937466108888275118364266218431603596393020809222998708969663286578761492878306862771938325991865944513538269095697531933076861291876307703283057896525206892622928828209501289927947700689705835719874457690892854334474589429104493399295101624368899578980784033069689673271683578204863381516240619796740335395408166692154098422110138821853940814101724536414923343957017644972129966149854564537924613196059084960901550267695797580219149604497909370987947198723025501995939278634502198791362364208103453581697353482362211156830967508209182020658291087650662214174793575657255269425287742055419469470798112144686551445791612026358479723904617115322880400505532671541200350398605549478008987518855887625302532710143486995122025240685102737549503800719424755503168741858778984320625212304081474183491676268250739885583049037064573135878211386741814854527575908209354509881506266844132772354877783705648052034846668730960529208995034302473478993298677094565472601153416670507003872180858488846848519787136118751170509472306759257214889127092251122219563878079140381619493037072788527464504223746714950653084956033487712920130010591059001547411244804861439955288007042229033512506397116186545481685538312855917775013501455595562704262234538937014728702398389448884023153731225824669228928189614295956136221345633335898061208288735658752529896971791347000039471929121651459424759497249554728552038656558600418487371628331356644115290132840117832640930855824969781183065527858073535396736320740230259186343901686489567844954640105917444251651716419889934404689319126689210931071918934605027335752592811730825264001192672039290908463183480022185252746956645173449901719681186220672801454202250389730232383537055997862108792316366202970449742331966376526459277216622681075847608491419475256612479510721435839548151259644062810730958031063248895830426869470982980622450219626222650999724381893776510558705125396660295095710656611898812890626611416262866890456341171884278345790822623507316507888774147423338991812701588945617458572992741964895723601440953070113418766356775688781930499276508754338017514095885336399332148827639734081630854648784394439553832116681074664520079574668140701284782854111971138298886916998820412693580528859051230678214755099044174477605297329932994105259772634517709517107656510522014692067873821465194978092172747593767911265380540044819390234618707104182218407316383189220379187712333232884717881646943498217607467897761726122316292325511660059039952134152113105578881079887463830431902788410841002681457877153490440833235429233465143152832510025650766261155367638042245304504652894628169577941758101559217572836174066872177725127033641187505182015539035936099151591041974883880394370961719601353121525264491675737449269298349115788256568248946096444286853274248652707628322703431635535482709790302427979835721997665617678200946741739851088959944104704760180462836764499725312476190817496568014557063475599592633737127875595202252570449301991063325948410658509535868779166660582318250341080871108784991539039316003523659358954728369283275299613844230733431245072860838183719221557379268859194786103288403600246962582072844093400448100340485670275479830591283808483497045275900362160978670885217368525104344227758460401359771157846707612205655001799541935402721340793869466645414593846193977258104154794535811605996226982281208085865483313727824231866767234126765041125761636571516000505350216860032464118769493087421684759264077387953247546064678569050092006258393150576281902131379521970874690034160757724614871393754234610317057380786915932896797098975951624489160953627367377906794905593830675579642075830175292627519111406454228854347853973949144437569929571050590187688604113429481217148949405375454470170014746332642816494239853891214588970775624303750712858323205662069275367704682789816226688857270586787070012879249173161619908829177925406349623319269053409697757043069250401167225155497568558515342291137891004041075399940828633752408660261315054687342385661091997202240097085735311570902370348500767034476929919766808754841780724334490850195462506749200087991960786872650891357060717119808304660534207705192786998403601142757553115286386322030060925654512062269752371887145665518478746901779284162450156173651030598061024748254636008757001155045568291651521435736413319030747414756270985372323338350786707487366226183276178304179532256991716424502984621266069467200120810262879715389075452184012732373988903057698943758325175180804223541004160635553935953583871125515659890244369717159354796435336949849886346692926735430521042077453018273652020644428754808169420304091141627081518205019065563235786238056377007106602199040160746018146397400668130106934366456489731601867303951647809804984004610041040902193946173444232334378848828078849849135062582297089560884429591833296599535079679130221030498050468120213043681224368053832475451494809245671240364610141047683069210743022950226468757583375196044150236842991934643530030769398795720497707439826492270197256442828274138724429851271818845596362810048061377861382953755734890727833809620921262382800763592489658176981160958417612512220679100997268467094029841466001205530674030839463767461109740160086567928734737940575013590750814902313175853539195750787667714781921200236079258399117026336991023941396726925174920490853873661311811336702549978710420798478990479799981831515367288709623036269414742758510426756830261609825645543880562986878225853076967996178554145147384999937780222674383472681795260585549441635924935299167784405520404310102218078592961266301488394275322449449567155924029566695845030922048033072204057150478418969063271667118966197224211187390421381273172396432472935368805277006825259678465096120217504814476183004432316454605631599024973602522900439964653242140964481177811033269870519888997104514604677475961064828940215156368368754489670112521730662253350033963857643476430319871932588745962844685102286535999256876154406118723750436889419974914600538321414656891124295018696664079664362562478259032093880519466635494579523169308571891408043275107146372664814943557552084578872598944726835911710309327119326537356133786552235206080606416383811792930640074911348322604945325165109750140483634763462585635302033814095540692204530237473062483386956754252776928161248902854357365877657984985864947205777996029917614540663221665360473444745375579113656155385923607365297717593833879095049314719377121799910572642837742812410447139625034931163121515735881806759775741149976990186293794425968883904119757030897653640690708804945445303948055335153307916763515090756195238046531626700827505868071445778030321738965059186120409175147715990575398880438970092489303604865658734009605670293585535879748844830329427166923382456438263495040964398937145837581018517594306701271706814264516103544577641803864934807865421272954215123294590815330224255918699211967232547448050184713424376248507438736811488659180909152290943262787452093149739660094673677327136017638533745962664085454371253745947528951613201751880648185680115084446070253877409497636877089085334165614806638671792191214704652138322191942846308462659634794277216346520106921942905933325105397996030864317346319984305019013152782269350803815840116178040213022029780855956817302931351976081655915143762827992474537684320868858445697174530375064830809543869745682333043798049011147926109592256956418989703334993085115142345880833351365987666443486055748202608361929110714273892731874545041938192198257549208902230437210611721304112599120774051983825411678459213275015932484702767034045589855635826102473461589577345852180672739477061845706464512259148845890573062079641745661454508130657662252738252673827251351496308531133487180657949647761718898015660142884573398989322513642373483950988169936162864737762601540543649218147481321327371263512197484860430195630688037781802260706689126970074512165310488704726666434344359692597953924398736789624719411797820930954023568682874082874750277062740740605975746340086416230341633809327686472927987013310955350287646790695095378502049446048564125340663690371206275937231248884396693226448844482448315258008690904428635051857784104627810852681310544886693962277433352102839893148888415908018938609127449878540279826355170530813110955628539701478362389666988166125932984855785044849362479203389844821624435987293499370492655665607919375382972304141082244998196916799096257966058319881606335995107267423448730305781882113002687934861948705130385265408113056017973984297773201531507492154073869365662812373739013090554383862046431603920776271378465707012493719261985680668349069486341727001364197394258126524025666497722693485181482180550372914417450888825223292985988562365467180825115410908100495637339324592374775804249844483307219666982329837437202014294114882821722457124335191854829573596162684916193655478569422425802128655742782526294127245573167855368322697639397722338176066664099514540087826764362887338733436916536663754866379485810876236734622163691428751870034503738134620106951717372586221948926027919973823706695704318597647027701686503310693759822037122927438921062047527838525055215427228622158259261644525060009878637290829972499763298896556139890692784998615767533187698967605535921557231225042351115140199263755425023430634012925724903701139218207772468216472733184863380566282753452594186464414680684359148587949155420768825128833133432799997117697006085396055079387200777342176843030458958301947335660455481476324338021021269026058713598870729930398503879017920458442537822372989613584363867487208371745573744307982604866204585071485285465826883654048378214741235131338082633169249672191611956017457059312280151969578894961540124122763181184048260275970028629120469256760133080341308477679818050597734994877289045525632032743148171203490530672341690195820921266227140534730575037764987877273502467786878224831977116782422371283137895677905332930634713011867060715672754762338552431952811332140988916606695328300822895906891659022566500240895244397385512297689742882637643054933100986074050748346026331513158637353770549254710488903513174606763026230315762368871352878922791569977829737072850140762815887548848754961742275263934510649340073199263714481369331103720980836201122823722045700425274645813864804843967678263766837401491226455811980360266365352405908437890623228254794509880316843021585829275419277678451531720308963167536036837682962112896822827380646730460990115704020939824222876834645176545171602735784682825032519589527362690870847669427009990204478535899139624145380951945719320179058795050525371865983762855107924830284183723395993991305658954861903604442760054490781712579702691317915341809586152082333973001549198730574576042933953548851666293275022438218806011001403097708853294303054467968039889492005567645695470232310631615994241306642099683213518788062394320290471354642932340556225635675850592268330827114615899404766772615083191173504265377878560307497001029763928089542768343471141877438861297328126599186999392492752587435607430992424389128475441584467348340432162554084003687294373635290733579799395200405334149139770530631456570855130579465139344817070324136753605660616687124085072934217519761629796332271220693640050441686350919902163341303350464356521886546611887548444428690148151126457409697638737154622161874324689350948777310003203161965382990818859683843956065448113054909293679985608205828300978914597760619518872401407508016596164018245905366985426217830096848600006573030293252707500424229922543493785128484263339446609372672640805133380014327041889349211517345231177000090714163683997569774416323992995954255534059856516057390758956927763000227506066826695141664275592168062570130762405350808238272023139654354103050537757029994698311158186279634092172690711357223849567104032419113869059257269066307514551498632806401101506858059135565924281528978615059677921080405985676999625727746596640563711370021116799578166467132895241120971635533355560497252188374751730544793624491740407323182438071010767379649563289181748499783608541457686367474078545081790444625262276591307486666825957500115876146901711821201873599800700092019634068939383688853925801227033769615408014328608366138687706470999740880857975595142807814307004697147600455828654101826199397143804938301144800588992254085419809092642259532935020028569363741457912186493508135660407048861218316184418589989767953003922696197827216699217522335556194619570350813830848071970662974009311744696371135982485037135983205013198931649823329386916498120430616135477841277287501153924120189618380508800292795986068882758754853736971702534846138706466352067315403437118561852835468269684402047523685826484416224196325681427380899891588741542134446928337723153715987698955596705620734670144190037644393228605464370128881894299823026651036967172312600295380959872075689361857384230797182479450295109488270388986241416712777023292646921063284616374035233563096673652443508497301317856192676430742185873121286583756847703653336017637542891274730949468423866377147336927082256433742889362699469458512562546523376284576494396477546706441113707958365761442117634868752728340411396930721897917779126654206009664633843926819497303438540782513163832944643532326656424433962272408560607648069811759713346678313347006584638095125891416365198458231178983976503246161265971524853319522753256076887256934175663842507413447029850056610083186818215471657591025105380541797301856849402602673683016016757475555518277802354336959463665046357221052611513389456726825264979323528642208250940090880378840942241585644765597127903180110401556472623239738628367764112327824855779011179170322334922815760428267128273651746214013671340558921999117886559199444783552171999488289379499548068606592765380688117800250004424988754781708428359039890187996234571037304232944304499017043008828074974751172976193560919146101343255432262616133607452257923797285942281589920829151235692928350299597314118331877039159164858181237157551924096912765320478206182659661982690880588590313675691306491143003295532864082963501130722855764300134216707463575323822984838412540197584907482090714602465904571169546501958762447126299681855028113882237637392462554687196439066216149137358143461924927327074043205803252275272588282766372349285032565678859999185510160060594430477279293909707456633915573333992996752206070834507155418433655850254252383823001164435925431426660204249501879697199007373924440037163469683445672001699891266230864362914658761032596066722722388433575149111612311128291445656414761597110395248982235138212503433246428251881566720473726196275963836582055612926993174015276996841803926355096393041483016753269824199252813999914377712151147309731737764709892596080666869212529893730810025254132267624179274855865917565511433113719175073223924107801246174028399261176608916381683916857422738258558733337144962465075165869820829262394395367389620587129468052103331609727417646030871157581304368194792777614651798008070952898160228530656374743049874958509893557678720191720128803881239702879452934880939005247801226711998367450383354892767042111016923169728001166636096380637750688760088470741103385591610210942940348818174511311025873998058873841017168040413407341885554416615727454656089065226356002674615368197932206703654634478522758356754300157128935221553284329703824979672115095862391156557735830638689723642683507316235520073612770903743624085511761665966205701735249658779501627955973274665256161635767483066605724486963918554869993887544748029880650709798203120812600471177685183411532139145349088915067791099885347099503662684730906269413510064743621571039454930512236910575476360801127733848780766900436921512275065481096666621071316414036590917708206439345430535246300540773221589220325115049303578513110641194032896218076926974906897787775205312916238374924693080092701644195959541960155540121839309911146382284705919152450452640987762344259242447545141128878180187587770578654337002107396031298478769278607639556851171411302485893176767912308650175771300060231567844616972438023822850332672845168548397031432902573631867658657612489630385217436622159515441795809352822865271233957182628553992327099800437930991065420802873745658395397632381037507348993393252115028602533913192307017786607145872243289863865421710821002355906044739702470015805602833583324780332297618280470507942496966828530102718625079157628135457746412694905762568918512548411328541212336222496798398223404905553426554503853215554152926477166378992763080043680125148189525254952536029315139420993985779324602332905167431451324619144267822282614143785090383080531494346583311668127435579482847163583623477609267369268329043733069403420342641747037663891448655926080216708535885081691199658589272721963450069366292874950021490425010130285272233786058291720428469769814461402688363647294321806075715700675133707919357148580066888754181792511868586059565889000747530631176874017457077515067250442441799534847224011331512325155245916278871835510810057995873707787026870345677793098704850687130104836396311008161372887436741006707118371114605283014965759241476711871845002585089799139174792675616199326522364385931083461678537644547863641869000511527622126207895557332747395307735679553418391146647411448652735369188475986159285647369483234374459816484478858197739635744984718039461709239365233074137146353746280801390417362888431775874239630319018674200272891495476126505549078946302136685276161344510714399935725783435262849909183872394829798144821434256612612928542006869343990290532141738732828459076400154690602143610458381776163957519397644996777738732046727501792033348446451029357476059717438077989587653206388966825474823578145478499149227569498466319815316429708925231372334394792416655400431436814358066657346926555341801145700305149289015613789592884323166970101844718646865873323562818256576577288003283162499925141563324330578279126148396113068345918505341733703606404525416608746682272088152560266625376754985575422215151945430810236261890898910450190308040791115486288061525666754618944526911580942202962117208414868517846381240024512952312833859283297019666627326240502562285354180574795765642982337636680259153205698761223786941627609261550212428298760947205000087137500506167567991978129853790232050446281031343502343630050605500476926246982247723495778013221630644991379151770556913624961530340511045476420652620244535017936990083025400040329256703491764587026085859918247626394277594768639682446654890412363063700839060591467870936204779594670858916346961593741586966849658662982926565554973778250842146146568012710676323431110150221303628512903803704760868358597972915196269490934771040680484067562313560125600819122217047987043844027482009451535897974005041223371382126939618997347298760422560496206400582257612321977806577249370651390589896024448162069667777934427110267438028524545820587804857920577615114347833920633583830741074618107248196386404384147948225693526097761070640523199371437690278855738432501854196309232757921500080212759792076852517947982325126975988877372970788775744700381441167191593234928364789534463430615578401081845321880410452928989765002230732606896603399857948163272423089238254840202916991358893476598376975830779663962823451896635439531587469873809048469659937472410207700561775888754640337934127003350678868671069043576255847247121259751430900166619978488874863858297655984651320727726259970639730894925740494961799416996557929759804872580734210129904999961525860651850777624759714286156911216887211635080707823231518864737680297946594554398125354537925284763803327082525961311416035671773211926162540344771076873839268205733365377677245594270778118416586077493678737735176708234793416756676631612426545953552952666270947291804434062548263741028019384105222146551068456267633015137851267312319962000159905630469090439974812963463173745767633884516141266173766751740640015665992314160755596728265957152993997138563342257390037001318965548092811291674925776909758552222572706688770250344281263364696563512148015350482124194455264693211429256327484465136425881971869244359102169655731815977868045205200603906497895292450749012703895720348757341539213246125004753108570951436401834028916526917297200074427059212271885725881444583544529458007935452574687067428759309961918834620499353834508934153013750538890017605198022696945074342605393730912654714937433159354260455765706092935631170000479094226818538931330730156776136348402078741546583789467581888475044465909080529520365264306690051387503493141001543602570549202456145950340509148525041035187443454663952869148833486463823035525138374942329093590341007962230899224857214043744723539586369071568680216457908055544446596035131504543798906254437530260564669042865923707743965490763036538661332614636432463026496316653738750504969584204279714138006269804304603597304205136700850611016307233398471212071002576676713456559314497196192900608109520843743445142395161585892406580082998250194518812236487967527428847607595533216229675711880980024903042472318142527237370568554666254611110528980713460705606881431177220110868070105802760595588340181242104829302726726737240686511555532990215252406215260370253962977179928055694634633175019044329511342750247326987016886198073851937138437999482794974721697448127673809774003084828362942380088405570633353689856123623583946574156250335070304147527780480854830948920657107259727234490076995206815610476648371140647579142156186842402083614398037215107009770773836502506799962146148993945846819162214450198876577323976424722994939920938078917844179354174858409961161720569565676888625339774759851076326323255254012398873260345763291941781738264095169031221885862464036267974407878306423706665623009490285275310170958292463290984017399436017316255064308587487605731287165604211037380112707582891591110900096207965901564670435384107647708661793278936601104126689768569763829583152270948842587437737160819022171067813093128316849475271593987844349035343076838407964650935017375105877333866856409895051548715274193421256531192949543010884466968814508283456833233693233251135492160073956433789167132748914329827318949902039425953259932928897553783559548515316233608498521744120857250308662991320926629272541393916257836697098821597385010142893222255199242091530777293189072725040991381933955159720823912448211033550311271914299903681560658747117800855673023884751374365239975645531525737359573933740594727426337772146893452377206369713111024074740775481218949420699348561428309907594706861819896349776688851899416871344560024615997075630135830260916593051600343166766906347440319469532813955395421086889060212901532671979571897008010996405083883918240000857603730758994814294468964184928138368603037427485182667681476228994777938720599276520083058820253225802121288728481341034535528709319128110634200777596981925985561249841588386478649396610806942633140040492092586057907664472272615951861201372803444633927032686224152543720528347416248453467609808624349385003475031018141796787263339192023710176273834904517241789156840979813002020285442884244825524933130020611164760306092084784417154720951766787443490357504573168689194968549939049316052788920302681323246894769140775051801137462183873334299812668323270679523238787763187690151607526200060337614925351244759441674906076903413392432836454760159347224206955390031768008744162600670206188528203431722803499209293705256084907719169031297700404913742016784040016096031008355657095682776261483354222475917872454944508631095733011168240525935042808184201090482441272670442527650096890730935598115874753282176365457280338321581369817115738671736552116976338825381100568658536913856394225092874406049295125512573527178448650902451380946790457472421105225962980069436494154528896315079693515540838207236187958532843891173381300341299070131176415183513299903212513469310227554361329677208650483315033746624109908895967823214522894729266630463359516783626836077436324829774417366419435206539105908501805661082250397712254441665226740720889141026295806387110406826466886676939932677259897246931044781277124744842049096054429341355359268928807688941945771520052593301799936526084586367231352930765403210247894292267679178389837644052597117119246281332904438542414643432293450828148865398223612314342170986295217471166717650100125835940600349439012905421186570346179427142466490180866684256615666899647094691612542285275134126648863484835038003351570075714292482008429720875830076302402082796130613934876944794237234527013878105119466070891019182795513958599704771880402985092335025588801263975508909398401788371637563840220861917203755488213412251118410352439414826020537998770440293712296865529629586789800381409831152391247005648783694412057980792413867925573020337214446547323035476862476849816750137809183886743034923254632857617377242826586440909701620234042776718598234244076507190765795467942240342648338116931398694557995796228725362036650308095892400842381349829622929102746834234038846022503428288500910082572849478695900502854298806665779931703443301708029079409912267924316662226731888147754408738328066671344894046694092835068084401061245599432548145874466040246532448651753393265493348455242560230480658379192371375611610046160955998682862083301200971997895285195828754421415722734804095020534019495162767644748826178916608848391541750842039129320204401662916713707238476358323984936867245077454210674674260495174910301330863653817811187818506345712112662751041883317348065970949631133276530747137385834031189374175777294084966825203537920655536713890423026488902690967931990709109260055163573253635798088427605499186671919864500710914042969290033494033479687920081872630592365602679191234206364738664613049258803368190954560385111067162214931049945004814315203465897997041920680835467638646567283554583931437125024686072001375171346347379689892570681723311043097588502824611393603665754300124727000774265832533791131386607532414399245332793763489930485159197975818137473190629183333596025941243613576544811129577722396716915554650914938702956383535155078962158735787966460929866769093587620278786005551426080196902672041726323014197988220196702693994217111822085755226966980969738330831203842999021889563709984017145439600954035748595411107203138388343466964473555864062120454008494009817799464778949276862797597316146403969696902924975860093681403657336978331035734876668811143537735006445981074000927812209812289165675996552829088408855329647416358345023616746102854033590621875725286642132448420503667214873517363985081569935866201693006952856367803299049201159945040267489289921142592137675307264196988898670824505442415465437151459719768304868294491910420696780705251392525116739749554449882812683858068787945548671207463254792959951882455161605610240961982778193641016296430900977438060080586710694691118923342635962558609048739605788291318682220909012833572475394057457308847397767394076720995942106233001057921406362795299843010002661743196457682590051072580053364052729431243709048242269239325808447485572471541006492966125441337685939620907881456866219879342852896089037602880380886989292150138691949048353476756652409882443055099701517251713550364322632878470651455147593842154147282757519457637000601130857667325026456915879630312758191859693187372110209503746162968750487436029195098915455490283679450352396929305100281647135072470162529975843588149053540239271118015199616791701823358047301685645893286601259167308475109633359409061147517257316914550276590493993122347977209555344076647364680845562737503857555168457333561948571392166955595295279107779457093370556178893400915315770356621344470224023379152277222783981341603959318366339762347260601528794057555155496413998543896827608589901176823131922210273944827868958861690137707836554130043005847061471386966141907227396068216403514316798344769767347099619455966499633787616831699981554170924025761675131927640098476580600822418867124072100216407365827614057036177756201235011664338229318404311392123277874771461369743171372572685613025331621525501295390077062626495441315095478539889333239822633011580116236007886735186240102755987310666349394581468173857369650112330153686438069467327516099576479323903020871571750195044644351251996215425069655237705509928525880992335307468891890633485098235141112164084254318439392743435825917458387519857772305677931625784729238183074168507455491092304787788386286089606390357530142885454205486416603863587621228975177363020242528615653143728809323483138836513221588725602125587789006539612337248849627244482520456934537782051876717765121938415693694590499685614123492923819172630427723299443057734566467320922711934011989605874837624189214895695933009130063231825596120249033199796728268096858383883690141673557202276976624849866668080894831241285988275534957071522244577742313566017409117870085367566147754826922843660953359346055521411346904714603581405414322339058677161759995347605081981603919061756313505865991361299608954263797702267274861987527502831920828363876844839573708568939972331594708566550479222521709392159208142177616543078011939387437455847464257396739795316073064429482237131089175091068097005603615661988776913432447575111680423535454030788645501786133286609500549887768259998788353359787218381433658430996453706425362276633385110736612015371048544670993699111402016828364631423041062508609099721301736190710721460766788540089144091522520469131908594858559966457685435298582079568166171914464784934845327370957049691665129239141700076515311093350695682184631001477884067308520770295472687162603050266657756737343793388565256405337234498685743264461033353104893977612160790685148909686569344353555282814733160480707500871332702108721048259360185713614478094368818150998963833769365980794765672294712716592737915546340384959186135095925688440804885055994031904112092066459383285402900030756141261107265652529943322873794148339549001777204512740523924570166865638127865158157690313271912600398879841075167078796423981583138359939764007871741883717285727195291043126287349211779608807515900463581230406768562572688309914080841915229263366740786793256758993269382504775185959609579322103261831536697069204313145597683965278299873589668024779454188164377317999587723340861190166233731493646517570177262676761374756877754261734072442346503600823488233116491226963717137934246583278516003993262005633160059873679753003718857349774438203967489028751570746652198774824464405882400720884821304567629890743347818136020814949495215553269770367473655436807242845572006159052063994290170927086916611085577197694487904297129829359254255621575557912777113949234633016775481903813579602124347984830559947588690560493096737739638393837074580474303257844658625549295672345345507670853974216607442563168819950437066569348283886532771267098958093674403501760506840276768686911668455234763210048493326380160189741335144463318226043010032695116604744351930771830371825031220965562227421806752985496274010027133937601520982575217114059398892916733661401618518794923366711811037691523747905408335977204688978524717432793892308499086801280855293366927915501904605608314726242995213138264347377804882819084716098852822717281558066877860947277157382456511119076126545897798264785377000303225049623106781097573572295624236167236205739434468461008816008734464536394153958987477799773820775602029451384592144793770779665256377305747016511963578742646639826114214622713756612317598886423735413458630672325683805417390216728712208558622846228156116138362373939916710214154938261083952389043941304114639361654922653185197475124279506922900342207646759286618676643645749258432722342241665646927554206825173311350446098187127477080800323208212845264462813675447597197404547422867251717768787092344943827556682163579114393609864070287757836496304892727964138539461728686413907525987002687653946822431918761062697915541785429494324804805982573456329060855498907829407793601050191602439744393261494997026811084396510602404939888691854627131363647849424193943745461347535510415960496077611704247069449097688472418363290935320802980247179921227045721829996519619746794014670663778516966604890629839204763944243987935836331441271204171229475967896995914889582785484263200963340580694566485327803633796803381183863761763269222669480051716591307907334583728877179228170845907104005555263634791270397891124442783343908118328764266045894926411176860143333620305990676853227209761857619738545938530299588130759216156062652468009116724177978889373696472006344124068053799263464797616644630513306318998087417272577385280441826179979187012846961639261564228196406841966428669656739401605842917563148144251571717159343274472565172713362641169600026555557737338457627974815043573731878920057283339118519176930396101251563719791988104544969945469890075536461015450951687772471181759067460148791213746653691870703973917940953231921539482313803709494168306767456557172009670124873767752326187542084060326348845898914353345896757554263678065594351272363211268764724071879204275422939957776798839857042142767198416701413685753677503129594902654083744155403237722851665360476315398111185069607882167625033819301883800988458931135744897797715268529526300465528491565997967916021295443532057745465675735634807653533718724630479993948954990742947643265918621211615135179297684925689786891740065566669494635971999699851017645285109653638758596244197975494046649043421460527106569331670627274207156349034373870113042469875176221285271800567962288110328021566713093551475264138079339500860129591466998856110877205176228145803612002442208320927504234248327093322866338276221107886605570248592207743020340866299476087069902914428780904507587095244346231279715504637517804021771424753954150718474871880322110116296656901932051831486078117453956278083791982604029455343244576774700638418465609042403495710077181967302845895482002989478112708206523184844004317626955951709958839236558170068862577159249328645042993930472267246692613347567078981974329275801622770278327608489349751086772382520319069950574613632487401395216479436835384595823164161129442466092675736927091911997143536670431181060732783761927659962431655276840139809520653563727829300647464265027036180115496277080267058689948855140117395227182478618020869076625817240737912754699471210149314965396143436208984289080554406710106950769520231865012628935489613349865533115212950239668854538743499073068540998555618902905475059780576345409746436472548758512312370207024326230677149581520713331190775894423056332809656241184793572996181593613086865103991706549597818274504745521820027787526806432481410491697538712051461826568935520044034287380787900276869943978828760140476762468490594307561944994000148865208310649336991181161037936345394833352417323657451926043676929330908867490857099770039592479678412431576995102734593792751110287881227567661913678889265714543215543771274385895435945496557118323596916955565993138515383734289640885938602963224506272434942304329958598659625391650049392542892284263064089588752584195775958029426777210801893651298854181057926056528925573660033352068237956709064408704290723691617271322087333286323147347404277274692628591912075915156352739898487183726846813683225755186058773557142208952864283317598648443025203233174950441898211404650445383170429558046199689501456967957863622759042371841287590930772629589660533650655509030811972196703857337454483014788548420655568332415459046638572623774316456070846191636907563257636131740000717619661093564850134373864970404882847252625809090378096723402991296200371581482727605329255560529985971922131882329370822489865103807299372584352968560208010602494342221497309707640833616873797246829355039025411578794556999317057894309104847208953602015485858922998413995244757887474951380349587525700802498220407298972871574946303318131222523770262362654649940015964187714906523195973212380301218481930694925691243633624565091803100262363371101172229638138465551142035824556747849765060196815707909736756600268228411652125909761565801292585578205355201497965247782156543951021194760377021868902809519053730395587064787010779779434210906535113647150021318137165508554855139326644653466358759473609935227083970188096965537218028002126257766001791171443309368500736911814044013413849471164694753569708307106606702855621140718488839825026812301238547961081606484440820692249244891028680826772155870865782316810692500695196292674743503133902095690005659529086129674402361383291099730816880843191709010524247025076445607092645266379130653342530838302084721900291224702063592814924575385275370803174342175173779278187899321103917285783240926055294283418171595431855520975043504400179761684187680375336156172051574141335605840137269448012508854723107642671635159448304341123384210482989135078690937291972870079204932853040808573524581946687456878491977634053966485650044424851812506254224198467210989634097077253744941977302108942744326975058692076106507831911560684651675206086923532331298368941653780364473612311632570082084099506508004128754968983968099825940837205881356980776091286385439289172093223772760907951506049567794150419424118338061494003029371793144263887177447811766260841677260325079383298763572565258002890271577655110365443001095296174985529793909701834849324986465678161197622156893500110904126009248518138202683556354589023629120569801184520660186097568143143074932852205730759243261832545047112195504145980499384880364011570312196729209494279671697060469096175124270792469981336515078166367213652180248549081991904685610246226527283350989987195686333564512546691893081855457459679076508821533847515111897758803191261521344781314452471072544151547868665543719951215526166757753115799108718852785086469244786868079036202268979431113771463966247161223734864399157475116127463057197045793138756606575723627144622156478186886839372742562743979701478674190461315311879255167853119846756943151125718122703415641860005644826660314660928162068776820327630359370828285725292615759449023450743887709428979473617523621636440628321362619330082837232830309676057732127176742202702984799419825015880769777408591380795324524680032606217652009624251812590496545189258580018471847803312487717465730597294015290176154163302709406179062655626562225959494880236817576509330698132917139541898729637370947838179337530503489525692983984195440318531118624985550656671153078700714281451014405501452968357631454485651856585457217659417672563522074067744564008319341576739140267300292976240522355620982896384332984277229065165754579280539534813570444767830202466195487497595802103729202057192427814140306198160341625258823335024384909468996278275367567544144352335599450677882731704205476660592586026154751084818720594830278351215662564239189767647906759524035495393828128982972323810068468475509495551308105682904026422904364951704442504872205273566892081567252873100557306642890513626662712515035096475388378149400191805830669491164010025770966553435768236146102153809126541440921871775423558926749777014292422714810103852016494813399181231557449264892510859168240993212476249131029335276479556266394717398923284365075879243691675864085200190969361110068868889980384194560643815974063030309119093936461959066447950739466193758202253465499176207251653439465679338962795955294288732377864372662275183395474402611365801797752631898990534473322260603797095588551824188706342729753176095256831858752996344169254383832912281425226624647498104924810842586547125933339359478860044304471453802214048224368113794339193769338701827894106740894162227835375078014264907632385890461577505117435037764945596505215000745233954267026343779588046954642153932954821988170910460543375417651635610392079132651667905014911443149025767787507210349699587001285328567654104985383794586175686955560458215716461823737529892241546613650368597872597263196688606203965184663865257335083362465269096460490879946088438219521211800107309850633455722944576684801970385199948467639440910030488616581667942979686980000451306814871660427005993504158102711759113779666833157176818731802384421850010684713749133028054890354108979079435591305626313117480336861893066432626547873851316055481234766590026033291960771925170970853624144393466736009330669956650190620627942870083845573082854782486290804475204744512898357306172274844415295568228098635338925069700558178991147614205858044974126151459595419042136795882193636813081135873596104538043289816959066087567192753468091324501158735929399403203524311622684510232160582657922265796776046191475952047130046003206480940304721056883827108566178346935503022080022786186824566984487926848468047906547128493213962191751936672548983214113799839676676669612191120660903171038190442575418807311441921028502842509420657991300002343211359962455856311690244493239935237412823117889236243829965889567206730393460431615946976144631110242356397338252413476221688996100940273460309066958824193221344944983992748331563306824283047662181381088215419977874457276485787716106353315647482940128381127185317123931030842229433549627028238955705500532567433214012605996188118901129481367693818202837147260344495821315963724464133389100995508504679407335634157108008006409739932796176742870401446867896469240874419880769004951649276279159051028013910552602342767520954887312348762287024107730067918584249282367136663596210192882803205853910065705762909692941587253600460829401136752236239166971615064046044751804862184665033150361815872389803464462406224845006542402030336135132187006294677407043872713495263509398000045250942628126427280612173809674603307061856573619421371897315301873403309392748139154503316210781060950341833178191296586083380938940403647523009422618597801338926879274328028889955963851462627584887233225115537668895286194285232847864928677051746479735673492921230171450968028145493940167521917535985068847780939949813700769714344041704490828131891611299795914433629797338728150438994225201878087711092895705360814694270180036838727797717145394267295938058069466424626600433508137093948223879636874788190718236064225840034857665376950278266134134928142246947340197178571959188002875250930827124814370004307846954456263199142489602905129641169552538900933354260299052883917870813821742770457354552897430746543658743790628981428328548527205760064094569304981923051654863052106835309363524972007579865100467839465288660378002519885296059147519972983100265716695757382714351786583606426713872842652166614916768583351551927589141845008737191908272020274062450687342839518653389013591174243634613346240218917290141807967862431535818131477015301007774184342318656936632643185055791201542799302247011250413661843140726170374266640488707821440476360940009560387575309300796264483659272383493733091065369646013173439802698680785994561565475658049190935480916893191917105527871954853017805318202756639188576093963491502766971713830132035209441522372500866671195823619912738133210406347086928151794081320256260640592520987831186385272051846569368837225138887886382641784065272203493135247489047028589530739726876194577306856152385555519668290937700599035092582032700241432651443674767975129986497643803440846656309452308507663676940442754417307082192057754135773490869233883873885899227465167235662801666700482809327932445241971174711265702301986661466579991806931860696696073958791411780263040951455845142020763068045738471980140818280435821893378645131654162843734702148355743270514883730528710732346521509132937948681339308820422829416101400950580333061463027072398095722442537623426716783151771767885837134835400638658650931408401447423066494224232650336527328248120781901837520728608764567707486399876976464013368152091154130502066910019698933799904674427497363575259606642671943908297382885631276780836452125385773842675559359888835512757160591638319835152522587855320402514978367965974162220560153208623060212548464659581953181404180079638019429979536406382211282043869886985451288426183163047167006722423418763980472292409350321148594209579069779523429397669328081814196689076651331950843464872859335027159458696488959660318183215363936060797471285275562329150829361289253759635380833990891106730430364950843971438971849555977046592456626168445579577169903025451522572202594436060443289851649484786705196577053158864436072372281313705921400705293074323661680034114496459212980917169007188082261329924604631431343533389691581147112395087209538415220401869534630878537794854099915572492422351231134221425959932260611258528657399296602593629455228324093008394108493084046158396941284778983337185291851067581799285590054809867901419984304777084588463761892652969776558866185958335253466628708415001804331304418559314435023813248439367129028961111910693586602083668846859469476983439212412110431655956294855225856240032563382575681275699707696851545327973115161619901647795264349738150711643312328750240822584891582729710736199303438583119379314657696901932937284534319397070572821934002594008392741311110444780628756841160324288133053654242362621317950301577291697502275150096278510831985987835211702562626886401960857806980403651940413690242130515152614677077333176642718060788363515525360740914632878300949079546669299157229572756208660576120875104615020742980055428896558485183359796841316557187322310695090838611234286730550946058017841318499209369435648857912526191075811307235744973370657525094903810432345509842120886501671565456838941286777756284238210341944961235215034096227864027671317915035778899387929961544070844578039097313502400462330126873649252000578873518302302545172254809210698583755850429696242452929761565611578997402704882563725844792957707305007961787086185235862302368468865910043884284877578106152185223278738847800654508870460187584802753747728207663066702552504560246747818285813128707778866684193926174153871003059580432216366761817746175242603696985135886954601432922471398358349852827431148606957586741478880683426778735070057718288281183350848528393962068817874265621518078278378930830358116927171961633949358466357131935593932025346939540479822425201343701217612213509820516898342903740045041873977174421417588542323137643732328434471596995600045545143146273985429592786799299113565473141540318346313226534478069263849925218919414830131343866658019604521466557247871401916040202894702405847273290997521034048421677676335917230611029767853466418944165103703690555974037685585816386520566452677690752586164976805160194619432088128994599328801794319668480364202347882451196689470582485601017018314769535742968034431443117285468940346138740908596116651836181110725198155329413462989938350608886871964240471896788096921723735503438530502550006772407376047149518224675409184266837576463971916120554089664532111908446009545218913297879107705111142081695128643800482441197853508279966877335115268130619458691013136017200295993097650240409780889934300493208315274272200569930709793280374111591738420540917213526973668019309616011939604834657203316521306139388555286697560304896106192819012816094843689347398825863296953571273575003333516869869086380271415909468229948635224925599100201103008320310184930640202826066663151775581154855543396016222371699000346775236967726507045251430801224791142142987746397642471650929884188390222992674060947297187031169527308774944650426282166026468040523614087659264480722648516311411485473634122373647662132458195372084675851337463931612909858419744971796582753394656538444350815472417343511125345996644830886788303850253132306901795554260865864312221226088839469244780002290991721145283886957190369057328544866458456295352651675181483102747035007966623498087640527884192704566432377160298232121220923372696447932659293360151350415048533207977267808574249965729629884010983778562389278956134306729635322861809555866343047466570205835002909550665825850574707450287551298692507046043050881305083287106650954274119264344079662190778630276534596125314334462591981226211178127150201995101620283045917092073167287080206229366027045860332759699494049678780867173204940398895949506931962304956121169930966754782406599159959538076704352135607982342190665801337945829461102045440964084012128607874777435913868391063696253026688390528985892800466768648162787068574944376947605963402968390909017722586004335267272810679194149998951314189242600271028915757443148390577722693113718464101807060763991731483990186466909615354559758232865740246454610989232134054045625450402756817520447191123876980256093031447937092537763405277618955911406908787358323720262682034414100330655154750502678598394304243572862292058706200753564715696814944357845227342366405165028574394877154967131180096828887047399922632667384066319583659989080518651756072565711738719129713152459173584550928654712513789697379971477680175708981256119679676904224964885572470383098927882189956428981385501503331237832650469291660720772865535311706106396308618565307592121027451119733381062487197383966217120162915508542833729367803545151996725248328632726049192465091110110140044307119126498242088662824224003508478290050067008573255744438794092700950291775982515222894940628971382917638969390639857358187702144373737021320318039230744258760007966033473158300966064661398474501141119394612162444653261643342507486445548604383532447682202189241532566935909961881903965082483558927312547364358041353115007900323857183343271126084267682044181406370161267947477662424165852655459455703322605027831647255667805986293892774338654979478116510284576994175144888964764040087741474372736463590073145008659860729904701957013877188699038800085881129468593083719793656270364779050631584665595538496063535721603831966056763054862621105137852067329656567900850773569534422617317298993392743144966102187491540087130825712729566775097363792481529663711031859285565681096664688741812298013669384436790369831628286819743607393279009257503801096361682780741823137465495361561212666119260543981725083019827367522982250305911257449172268440071550830004964559564404717974624910496090138631796278364766559312734812279960234800069092505269602769020354929859253232103042696484458316757232800520232768121361433719038643933069969351469709163186888739498559243010249079842507280362321490112190005346170344858834245317023225669330947557594019877425915456880206386581035290805930241226816726591005997219423472173128107151202713358945638114162061970486747052555711830455847150666234334192543575734712583039958193903754125021221089571079109386306364637945792847405581124891885535815332082173135488752370116433590567013454486656632651767144719728009634791249497279025382842771099508545994206367283534722163130866438270097763689994611950491071849105306388410777217757169243768480806319351786643176387313477573928425732097596834297592403306979609346527338214475138881776837001516318810838051536009964586506325548783666625424197262444893564301666419335906931978694032892702436060977711874780822927320542841176267822428028144160280167927442348794867602408457304436226929545923581904514549983505747828197410047244314491743276569912056607964429174663924119485354454632741511647966195382939212687307372294801463977300877247750753527597709273239221132899327402277492325205711577301382970731550380366640102666866972657413157773969045218023666590785648447901454634123452652254943353149110587229116266374838531879450633794460160069965844644581517049997747768185164639056213510793503918359429113439067688915398778748476044467501459947448390602853635047798718340337321626462825866171828274194547971122313657643983861206701575712312397746791061499123135532387288493912929733750216180229777507066053318422531176576252266667310135559568218104514429865314382781643677609115471723538251018520701976684337913898698172218639500433253603777592512464696274337162176441815838549927172226647668110021349947802953049410235148573171188773323727502300060177488141771075512110835489896242678254690180240875582423609012953941558258660078930486810978719341206492998765404772707397955746601476359107386762405097651041096315583289472623830349640965142071941152465295954563369178628567356067281006282772268144287057674445418963892083443312814985097210793714617946345455174221912185267071722737083985202654044385637278675741097245606109263943471000865150318240549863911514888379464796675417373661843424855795743650876805738715348245909294836832342941777880351769235954556716013553905981634480979903070665190840068535504803279531677662740855561203807916280067331939783626220569277763922267307302629619263263496895975915425040613563569077707740445806906153639286604153706584375940486790593638510768530929540099221687129430181117216031896015479709721950484798037144560186345535005181131335236005728520014640749515392158102220822844102289080919243891224092328781970193567286574193991050590872938866260542621802953248265234959397853321476097703756236178466203137590152174319324265458422001048416353484371062169324872864130531293505619276459823462321936723058107734002625899538704002502507584398438898131608182167187561973069559619563007312872690303748025721734955504695219028413651746724533442987677294102133592251374491718455256981194737430383574253955166671302282127839361755291982242782128014685603930681148571304720593689751292597386569979249175180996577183288992632919727322196388601917377698194991687023341291810436338849190374051314724577103692109242196782347872602857358753833136764982759744401957676380490137555632090755168810709990858489249548401657731569014805822402863574135214369110027979066641219524103986646676389183925499516327984782376180644631504088176725053959908142250365409090701431382811538157192750906643158698381856438887684830476978131751375758857131449324624696548855299891872228416723196211317330922572463028278351922735361587167644920595478505287743444717812855654683785053002127693728804193306289283522626736436296078347149984027057129767849089263008266300798775604200747757354059786710079539935976171208276823847594252123629936741055717206615101542675111743694191839142201265337564510555898707146371895119945061783461898182236058846534262965118009986477119750966192852938974868339954570167276929297814599289726163433528756445555861786703590461876233962175584871288136983356670631373916505631253918186539034264109368883632442769905069629001756685224838808396817333561040707077930957789539991353370702889826461835925239676919458876938747701192766620438535995818232459655507826245816932138999990691900540737037941469194582951356836629917437202600110577404410190553537404922525045506242748393656091220906885887240557091050945791604072536910442467360103052290527026075643523717124262121323303394153070624483682914413811075520531417410277102604194486783745367036493931649749866872583363454329264505625126733643215362110162464873362483072207581298809839822458293340165252748018714948941910914300009047055913817745673737285171987565217719723410151363778399101367738507027587662600873512116548203041126592408728360348388925691448718126949474272309956667125886276789676032820494933778603778050776957945277544269202539387555710212289134550753585611646463958265317731213115801553670997893584789483582742988511427679481561054023366557316994224976277583359835872229610465024404231140271387856520194924046524541542820428327782067742502823664217682371167087944684971348984842936364198857766758187113177292133519430091593568310460102818762214670076473080173716352442770447719107673067745139082083035199326689552649610041565462106950600216686882446875936482108051223809593892685498140512436297274810678710118822367680759830130346505796079353028593234257203217559177037463525315731960193431931663627299469056080277837964722171755599363992059883179051195518025738956371725282177114991728176580014353608977457929150577118596129759153681180834824030114766366886845218894106543399903158079439940384050409033955023077406070075638533700382768108868694361271072278758098125944184344090080205174170703827268187371645006132584855236783829122137104425754667816410694085969734105968050326833691562471428671651535842600277570666133519740321784037202640704772382618326991709295591472177410755187825920533776198847298643990039535380583147172732686326352325160675785289092479130537688150287659067887025519961276078223656300145177088556440947974541826612982182531448110677280803283191526905604485346687281030869330334598585140161107231745650214594211734618439840503208413504877270986437480559972925580692365000358867554490416542335110765370349075596916544221995104133460416548795208056789647988176716867441173824991236740384216845160415939524030649855049727406515920203422862928012168432862210515263326857454243946273621799075618368733976191063587091079663908972324735608979117348781625359760754768007230702158800866046632636979509751072658261711590416066187286117900301799124468592630556819232331784170897911061581677090512807364254231643185873103701761937732158967574060037771520951448652403944779917444626586022504185934747675996174884255568295333286447817950966815647401198126132424297674543511150040520103127948150204896684528621674616831747624087635506430105631522653772130125440760542083744004679989252154954568789333241251330211830585395446547410947665851416533438698610938708073357442954721937889544396945678781495856182604660011886673192696740446785578877090270219239400631361174378221607107806656402046654374375954720790651493903924993447931366651979969423288305949059072131804020637963646534226632144521289043285264220438931154461400898552267729840586135733750283837598428145801547944835145245732011405959069173952836785263072412597040682196460817952574672098653898448129847937012489555882871208855563058342232128692170750251896274575398350579296099871628832686435444296576468844529343044519226341586537027011543912737354522568353041949105515293339445613907778180691798957032032104938435994942709243359577757522447556706210258272197288800346517266536183053225082180477422497458214685687841350630776323391444610127452641407741684523166565050831925789581987046699240510858529609281159657763624989483574353400310468831460337339035969724801940684788574221698521879929747027734735497728235947066246454894529667145631428519923641751918245480344704136201423355345553079706384421132325559193726257630723890269774489173448458661955108115398541206844638265693076447037146137267584207344388827917446697638475548878405770506268756493586325522689761705540657507183371341457933604506305346223572292686602977282788466547707743346943125591189178348939837286374564398857016548214553148148025800995464571250742953540201142822944114584567002769798367016965389954049898353421929621093052633173320107426749313635060984991643977971725547233981573262859961341987765434242715664751758841375503441826624865629342313033868910784190932688586272589619123824237279188734645696602129707427787391902813794590054957729834505658952134248486335597689400514259937744614733066443628959611587284640662217229362524930896932421567641141748965317446661295113010090896229839486375418218587309889371837233327556436840731441747877685597816415470484888997657407996147156792171888120272988311618459121556286814745687608072890340949272700926483595820223566243961724327169078828919041694474587597839674374333880254833515547254744151482417923312507770595506394641249254405732435208089902885282733871174932750032231980726012798399493201320819754150659190097574136668619038006018805366505359831278870740016925793147786307432690650769351809700627835177774085818195274315226858673930990087620583015210035681391645231144659864012229423363227776669399364286719506764668205577846388821988360437887193982183189969938415563234778124868855113498156239390595555599016253501027322690841703641133016462051944533928422740757413036758174358117355077017191898217944198808313701993109976983974784047517159419898290060887414242672517306034669642743817101009577288287736230015294639705411746061526744804876979496589178377270665674283098234006059098251319242205457318068211659431797486148040746014520810423931089235581893592516911129484242463010060257515470316910364645209585516624613195197142334074830528942235163350817712309469004658273197583813972493576795495865118668838981718113123088535191313756392163195192998526823754706544341088475572619557865074853254476837882090769568898470463147625206970066167722705854747192159854071029402675456658703078808334628459689410363672512105199697805851100044470698611333007412247152380785368583631252628119313163990793244604318105760009193951596261474942279934717303377054716477944347073986144642259066282830981550770682230564082006345427885196071609628941235311221372909625840467123182827821378801707450125947288269697666109965743909605795290246245760255018931958235932089313974504254446250832044632907063620608476638093945717606584021137933884754979144763235279467464277673803395300147599525904359016700774992000208471442616708840009993860950896205330398708821595356298370323485822749499397474020875898609715652970992039959494587363336297816587244369455626912175996102870425680329074395353118756177182017323639990018415501426193853418755144988237275558534273614122538794392705668241882769736876928396954479222980034404908239969784370770220632523372756089631878757032234898155316351404851236542452439047874539445686829674880732930040818336695752959011867886091564512052358414881121496721018470364375156029068723282119549759070437165768490063926132914514911915329766266409066205671779502933941969779689924792110010704287065634525700378805295743944075970990731646649749545155263918778415943270616747581786635299635773718043999789603145935907526969760324916826434406214523873786087625778694249529210911387794321731433156950352712282677020963855035764781566064342961335259141822627642786818131445617126627413564097312917109217494217927032083187732625645359414706960961161547219462983077152632887375864027766799052105427572607712208793484625571278484748112129960438688017281270958194168590129271983010015415201309142519455049785810137344310176110825650846040728892369412585712343417889096316842445877746439395107690309517598431903252133356726044092280970291963503483946943573242486523102268874190937621497498023706315439503334478885166396222603798725692185389981361981656735515553301492173381619530003459851880752629698896007482043370438027996383142433118306670376810425337105075073792912391982679132612511723581603474150182612498244187482244098088999547893119753503009850654551947257353397230924801976090008583473163837471779228181947679317307759889762917094231486822578074992125149185727367820013221658265144100780478115834828231053206550329055616219771758125386349165762173197172024624517572609817437150355113920722316111326859994970522622638187165167274783581269050372416847672430357876275884467183829549938353589927164787668219840899392057692976957939414172179285519970472895726144066105767203960563127802282021997441321449677169811520160880225693308536517416083485625087682969842041152895391744835508533905202795158906453738072227956626841532398647004034008866726732835906198604240095462726497798374053659273097846213916139237595010552780031029812313822893866162721717355358358551289093294982756603059853121261424889868156303272856147653566598551010148681553652256783849237180311368754993370040773569375853820248067541685184972175824251193398406522798142117908929332296806790154342961582568500873698224818266140082314360903788428597538629233816598427663947436578738854215653682998411622310983954999245860445001573202383787766192712722447530581170296507280218491709428649519877366881207162268780568939530464129248369985404972755369748766505620637310098360570298206806102256420272559062527575229222463410712040055522793322463691189474703901218210386705367080545933207295238241094075890137630357932472870844908991682318941924287245769079098155207496454221877583934099463155775625906153834535217584434249406069862793831057029451861826593725906820606274124891074950764291647958268951661067081579165228059002108658376266666592245227804050605987427195065728768437976416228701543167459719395374978490980397113796950408985252550220037987600439531545439997297214550152580237786517556022642395292164923553740737520585505598099482991982667439357791246984718376930535037633232373552406592937115399875695809177261796045442590685960973378853647509783693455244111047551171170837252812272684458750661025058345966693828704587192461889866134650786132613181157815091272804919576760179420720039948464250645214501658960555286564446625719452020835341960047048293937596329890869979885381389297034471701942872988934986278264429753794729314094260112628787982012461503536992056413184627056892126546919177995790044778525125294049456622753789235688271579028012451225273594136088514649756857228804442878331909590836434256053906483861217447792755316894811799277457113829305638986769528054643341257532493652406120866835886719232807480069756749250220225370837671917019975322955000881514304798947273411237872662799160484444395293663238435941926329574658487384242547125468431368264230102402467335236022926306561305770298969320131850262000856560343765446213392875131457982704153103283906543168385064296258389467350843506036686796443055479666580540760324451338313419165407789816081875152151031383833461471332134879918604044822890822418257514402243347021485191725867224771904223001610469213937817286997606125920684510012299560296317696191281914247991918166151567068572823977503878160153305418883139771637002253389786213237610467295019063770687311803647040199525017622420485172834220406869363975894159772740098094903680559058637387217900437583610079427311297964296702269024384832403408265457319454862970195071327179049511550832053011511420122202377824630340817662620629312780759715824766948743379021567222088986052830176024986736309819820483853832804010623024444981039330927060771743606497932900864903922189091294485772631106943982425198925592064378552735475239933253589781700467980504154976726022018191421532119736482713769180969902406513487607189084985219053445511069708883867776692293747413640619045250713128542668224977917276640930075703664941747110529486213269488461839254566442388752788312481665660837621254805594028605675455548288507592976187351589448999745474882819199006406846500081222886416024730044314572010425825508730223975315309525543146865059502863489541232011299090865457838631456628081419156061105026817729386545254237903690141896204332713362676889325850908343140440955104306452135310655044632226369989332481023120840775153946050845157402200228411166187422365774219722291587840875992499282839616173652342020371444969043161097037194446956415681480603958868416177736830808544994299319682558512376994331599980062642894564307080545025846221503500651400092712109885352681040517271738308928475870209338121827767490081092328601537828291023373219569461886208160207464673400970387722313528512905389180413356233051442274589604369729196288384148549342795620949444260628390233131840577177036748797351590768870381001030326664349521958810352594259300137436766441987898040080472821139569067833787413002363812656385157868846763294323067398108874526760203807165239051588349786237212231649853278514869507960455660862060595904377577312980702374367916569600185981147667123833712573240776341629455643183476880123184302794492827838520573920354356962192103676264889432523686957461218736296598055696660540860505951767404891711088590632570263631416674987802590978570808391673262406461421883819681543146799112302805608077844545446809072000555718597107085769284014421745818442898633837818875854454325913992803607014326011411533973298957996857685499586535650748341722450345901943714842673273975286893412012258371961627299891774464029277140308288568305360157189958850156228456071491500640258186084157984804806783319934045117665022291134444052477559346008023801461202492335264405078899417580237953788527793084154015729844787447341878966914445187992788858117959290173204790703866852378667066918740138653135461340134968669421511038944448149470515853357960829629613753483855834742633412438020016280310079160562630869474569017781770579499779269136619088763834599759967979264323141632490726677988598347790661765623749627377350118204059186552704931650325476687439414077994732395821340247132435037247745010176405814408501716601941394947227520895682471459916531662731713540054369106204961833769748619677652432073650680589108386172350195476607331386935189579135105032639569854041388637401685622734145794688738280794892372409522007609401935157824238249903118401525388202213346003487255533172443531601331120113287982284274081400196319972658776626407323896003593188687815404391838832403317486528252367696373604150784905910151895041120114322015498735691854764063133313745891808433152639423033010272536710396038267758639012534830309707196075703054342835999655674719244382692448984152936769394809020294211301342172462204354068723068121448410033950544026565973180774119947881950437361460211087238705515235066071425289559580496297782642587274855839811355058699639785255296082103056992572946240712528749613450379295697482278489869222513955139348177275550686184512133681677063410324695478243125618178467463333927689175680703851035432572940067073568010745971916112822082088845897755068050489037214298936303364757115857140793809474989610646957397725962686870840165429020841304267001440156790509497990872167852207450116443841298564626465100726120087738524700956823022080485517554567517145347815408313006015419054776599094931262764850011298739501431098391932961130248019967176526762553843727582758556766773693055525035259816307196289315751890217300774031362010878611489090910941445069806645440323590513543632242488258008769216321158945146508300866951661783905339442540935878663479567289669145405190621702308064664445873411063378194918908678941145758939355127571733059359719734618729003544042933909688334911953408918644690586760945973479951013308355175324654866045654709840103976063967997785965262925843022921882116603683715565134631213467943057525595345202326223718670156072570784950417510922116922216323777716763505453427285900249666199327507266697229375883439552873129042861566340426102281229366922564032478906593209011994397344151910672064143462619397399530961482432638384264597947877644657735833038240843851617228267956481286687828871224316507494940660054068217879915153993155447894415018908825493600006785656831040312581350803631998615170746346260153569868401585034775323261808528393687329246876027202657995917767651814041279607513346023087822843655653734079018424153194051310731672244368973179171562102226046948563343715386458412996214525836592700994079399670884116047048017831599374331109923748021087996515422948295692997091752671191048504161000423864527254527885695472081665948890878082613861823155052481233409851526150384456518811790011906771986259583429339835964648448616527427143108433843597606406672435233877390328301615420528116577099311508181114914681554306900303926782701067848496188587832463157560577303862880436241125841677389362426522992122241480576940250866435504943478447512491346717927315617276138892441932232888462134609907065483977938418550380777298826409052731729557559056049677904489775554218372233234183917456400240490589519202694866980223778515398109619070015894781139885299101341831478895146260810273334732148789477288648786332020418712438269703365275571773645289545575436562639089440224544352943149119957764171600363092864621584589393620734468417022031557376486362189081593216344880254458882057543806125170613657287186367575779307456869758862656706097549268467487182941454206140072177521071376667175833348947150886511126203978472405421042868265920903075611417909067407862624016972751499511420587064044915527367736819839358725870841549638473882602340687603594716356249228379608528654567626090429385656016967670536056664563371985960612377449871164637499444377020969811846696591840484322602613208645766443277453653195350127714268260922272042666049860790904523698116821369783994317702106730948904636158881219078772894724994876339765652540612560603736084324044818036061012164144815238356671626617747305185809443312355937689822738567350314568993733004948149149813837602236048473246360918789009661451162844579113095895342032553553723516439192764358063392099043081268123942875169048513361606832845121364434072167222532185545242182298921801596685166392226849707257188384862500035160506333982034357650500276301019694476690666485671642170496013225191431657055584231659255141442091670702816564451282288412917540186069271794619021362652878405208094062823660226838413527939028096428055556468612997656870684815645724705434030929794268179414714479115215479992984830253283329412153161947126110010172517586598572194343176002494760259755093964340178501512802250765579558052297132103703931270898071959068996161047657604043457769280444587623468338483826627129832006554379722406540694441299129710811220760173198843054116542377458909017941267679917207138456221781210146220550115871476488564711548939628439478471996963243846589898585403196468063495874003814008218363791923661194644564839598183352722548344638914988813204727514674870639880824308719991665085438129803842532183473157555761205285313369628058223477257910515021470443252576151094886646670225432292088390788940050070148295590631050032208600414171226597090609628384167048089645297883061885660605500808492229429352509118204737379718332685128996966205929605248052574751179230856230849455571235488079739536915814479638425232643424821581053211505245150275191003436391472154160211552865841368798527343787159692963160539504553516406827439492108490820857966680852331464279678689538841732649554453956556857082665737938969754585598177150719682677534800542475112583651229048346748236496116412247080934634687377974212850540468419605627937203490573750121526453864322505951627879059182068821481384907884473326547642321148661079146488618911380490865403621476432803847289510330190074891057672114970872216269601177564466697289248366771193987980503099877335489394703074653708595852827769259488688269985735549123381313446352718640880636973954856959896733867672379662046882971963846450470667482381387560424564518636697771186359635296485928701653221113839979102292816487412319346334757218515680091518256718199249144143978667592117876485508902745289986638551489755633926840312189724698202059691588312062295142657115569768305431386032564095724130743634754800327305703894261215362179639376374459902812115611476846645951694909085113317156865515834250155820617209607768128299079117908704038473725721630224019578597721015883162948107840886986637135474625047064600102386924318286107565772365077832246050914507645290897306763837866953548050344294406018436558582184742623006596590206974593252372180672730266280785219101661477756435133135323778221746446608717479094837491576606642136123591485478831187510429254107630395023431262661178997295071649467178460729677905920526207422677851667197246599665656729429411362811216238649022673938231285414801732347854632062450562242676837790873978160506533300371872501407972017085855603313247329527553226391452105202058208279757825402856134776865205534376530075464629531715482090246493244545253735555658576505065752630796805057699927978020324181181357307437538524977596871942074540945138687293919284036565430736764923354239035060147260097161858038769774817366433965344636527237288842543937005345534922322083718638889639980583677972913752225244817395606632310458328759779656163384867642665420141986776322402494277055404767432292173804425083733272680644088423514982734057938020378795114327185781302267002228849186032379752293264524711892692796198421084769839840379520754289817921523341344793173507136529276950946894479844313816326788030063834449394084742150082699001251821014134952081380523317723052936749217110547403870110892895004277435002547572541342383550632394640046841628314689421125673625595600487946740487846107287091090168691446445701607257580579592496175960108252943444212616740233020688092140647126009827776558662266200325840135440826619035779820995350073466517143244705527036880242805367640018947615284686610797964658912962572018893277665957508581516665421781951136213177194104822250344437492500438699975136179605287401727881844475093760362144327857637039321225456159116033958663080282156174557876186939881950877084362743485384378106439123888518895417013701013914799493088479097466408161822334215175568472734602198133091627653278275832808282585219971568387758618413580463988522063042722781759159154396964884084299764511956408468380865777591445749566733686096892522883254506210992774490107769492530938865660122277616409412311989837103576004445913076000644361116677036685845254718338013328954074889035572666297558712782285970265829449298619753203676404373552288041188807339606517773071992467122877850916122665723298640650133778034307408641859269795970737501807563906580633850006328698373107253903837961982590401513370237678355265995986552854896423247356104227512851242090305950495976499016019422852474389906066671547649002409433456204830099008294279227987298058852027118125861024458659158194379339280046212950543258759607989805903219559567284535442949631394474726710721261931928721622341010316087548577201648941950938794717766447353025098079434451135693144764765712029649503250949109054680493750457758040831645646582023322290633475987199742760771692161883814363729016261016530039127738295702517549035275394525032497525854454508275120955374886428489680812407716795453730959710457246448195582025581603260773030790422073537331186422053590284059516126447238069841818727381635990338792117703790448413879427501887734792565662941563860762284649526811518108696220015141387284940686175692441781289006008260229977717301797365094584201016987478885356100954278269134564319581239372243188961154724536501059713371297740816480868314746305508301347979899082045379374281737046141139344148455622673471408090765343734600114526360683617407740022577481236948844364716907139533313152470574921136488824635736062700918513986611761107745511399140887027400312909773242296717931045977880242837707756239368388998729589335296067009416952498332369911596902700229679654696169750678269142656205878149819215157021061652209663777016683318777714217236764753391359861739632575376397213992632022288865799194509819801663826939954816756169724750204423160162059119948974808159900219555585561404849969455768164633958184954045156255512402556393866899252155392718037653734107035910510076181356987116660932943682851278924184150846568835313076425509828342738608067076737422305770470494139984866795003408539782158351910374351044930080845404796604470542717860294753673096065441798833794720527271614534856509109362427099158129925064808744323842512923548212694699970426690750687759478943265018314802120166700204333585121551189732111731759316903863598709060659666756960740156588290910150824424496586501727273738472521634359418203021313011319418045271237587029302193911778633029693026512295854738140259104419967252774195973775134060558566018863625519771722540642359911742952097802408544588140706280730827736207314590137863078451014278131505774737965607051146743711519815805999355262847067837753913231849595330713796065672587688553176993977379861577282374731020150503812742838690562941054523437530956525240136010161231617481298966569498674497678750064521428833805783362286754384505667758853558510404934970348897007624593018502680018264207275191094858450107831372496002247904141556829878487325166301395886805401610853275239089664840034262818719683897628457612636244312478444029951825889308150113108738693896190740872180965085161290400361588452494820735827895067593162635227765964301494630182652980473203524872057678650888712906842837342853757786087031399309148662094773547702058056791643539176702660479136320767981548459538105518453989420308773750410340610709207029456188310609203843769016902920338251906255069513250046758250273621063116234837787294087657181573474700760813157723521299361576308822101752382125742108862571028895877599461773746578252133355859803993656981999827485566432075677630206430277476303642289380944890259383465463969741491476580867296974327561831796542494738813906948810887034299649222486949213729764460064719231965442669236582672741566041043788298130975657625512619974660191876414362382208057158369118358639300899488441025111248710407699592749454152412478704542485055129911204242519187456415909221044908825645181185513392145323804263144550997494716468412454102504964199128730964472735120757415479691599764571888531432259203727448289080921159938595335629453610570100395512778076593407875377600425926820368893697377753413624022999228391714043242696570850610731793430545315887814909941028120499104173187798801755284194743781213725141275402004204976476754850497719124194193387465964211045820377675096168675297447545871553331379038737169678384651872063536610893355689750984993584283755879541249786368853471496738320474629019477079786435681918984780039162299644276136708951408524782303147110697672544829408417386323066646152532442851988391922102647345070408540731837759076888549517537325091052160940547807917310691261439502568285767132912913717231503674879052646930501157411269520264117147344723433150615774212736039149327081638428784971487373266358395085844050056534653578495193712537908584650767332666112281597898532037040811404416424090269111289613256808497031311695937106400324231316353979828913563043285811154170617426698692429133211007088004132285566967741420686827050449237299561539568819470923718221398226767128446514960378859870536186740725754870619744916157484916634153452823323291880687423352265428034061730078227760247197865151874547537801341708858773268326922652552134725177864280041262902346253669829937773792107648054249348492487594078433514280614914096177198755272489814697844292574669188266844600073470893679899394700224720514189254868152341750802345702021629055299346724810946530231387327630029334072166317410823858162408347477145725810156316972926870420584493081550495910847401578452235360045113876122462977426358690140734486366326442385565307817210317447823645489430122614771226298878537002736982853814704034564275721079510603461091344883675665735243567071417700325203812466735228143216166092566091445829013547846195259631464531777427434744930198203980556124952732549724530086900998520091192931274813821814087687359255818052142866574658519837930725720157001239543009982401549910577285058295388003067495985351417168334448881842568544414209891343239366934869004428575452045826278725077510356776140995277879912655990378646056704858623716424814758330675556917074542021001824789877496806786636364361873946409759172166271010700992769554355310672515183134775201477549327774657943491840828720206485542597294856153323673241842894225651153271567752038384253557755321388025584383946023012054858233567762337096664525006595429888324338438965765819541984195863941212299600404824717859817719294717826357947582726158212923537606720097125746268945815991199527910678735310535671859145537133239060390718347727961206036668455163397216436368609829043541755484740797714628462469153652323807876713091978504258614523734275018918593588106960762036214481791295328509516290967811726374836666880575250779294687493084875743284794683992851328488039633460685838239738305861953912139767953194943591602864256558022999565348357699384025803123768690605342957946482364715395925791651631038235245196621255220001855838758774733811032235886596027564843979231465122493085733246718255681255860633395885981868434888106899566038600118976425214271139009369722977756641907988592606478385956373683060242695511656367657484640110699152042424016375612276297260140903158068537212088433354784486733860907884431575832869652125407973475644971752946542621461655873879850826827327932432378969313281423373196929278474979234185244063771190910366267394661468133375048384355804632696974073598127941717835349946409389242066834327664993805140601908592499477802594203154442071884622323684976676764995963946766632529070866933461317229181557660270278117356955244031985647214723775225397378382545124106180286045334579228290533150225390339628810004548207831223540141356739261223761274123986764432828693576604293170970849527389686028956629149804197533158415451700131158040433923605299118866058121914675063744165367479156009577527257632629727221616060243959318505575551709268452486670700448115969622942505280907566564748934223263646087307093863533575630511154347415240453385288616911528740062263415688656392960563120404542237257202057776502806769603151581471673516187819109271701664609700907318991726525577255723146660992075723566007683128222350968006291326844217641671347918941299153216430303733028131556590424671264397025449624923139866088379557347078573439382091302280291620056487795906358979653256160996293110811682131950132500024963056673627065333834023226710693118905927269306771604362409378731229416645257043748211752780422326455651408599974309431463950468748961301507571803000617272885460554039470489903957382080520084628377671628724091051426397410712443443364993287234640725328764517742929350616421868941698940357523895944362642181210505855597599298440138016592507600619913902875569641704129582349953723928422782954506488397526574516108429827903524595037618116155422679204456928318681147691141378179207434992848237651008591061575838396996052862716133323959035754535030409622629134265260249841088371306043108324949704175470558565015281624899455747725887648263780555966751195901307138557900544455052039723567965085808193467974251989230494035655428920198119102189748516253336140369625195510341674239640347264247291690810191252458806000798400999042056415658601775167795971293281412340599087097462056916699574658688832368086937329587088402731569183571603463221541059461800923442507256883588773094525682543947734428285093635178680068727223918917428203772600922787583844890255900102962411378549781579393917335846816468346233778005834717103782399711917672659666459682200932338540143289549171280931502097757130464085363498692723255244463285356252372617625908518686616203277178870099404919463988122310273445134161525255874296554328890235054043057262642909241266660304402185343040683472252226109210853937222994151733948149162527234285029226233291560314942323984076775642806554785997207850459804437768111145098579968189092551744990923131764934204753709859799198077878723706928573422887849058588385289568172894896547288345190460386762597935236521054688525180500745033224170768844140268385790231068259676074161381154309793430793036912721835749672793475610482008784800858130608742418684315811066486675792182742902130136827006815464677349467169261759672257243020501743866436720373714131134802523051586562199222053733502425859033652805410735504780300737256732325270372955804104447390608246608839991899305556940075437013662329020457206962784461723331975772419860557009796742774083396560670691229959790774736653083951147499645832348780243343989753258157422649956829867033091693020319241139716647445660792768240001173648658565257229246662779932508144354432526965096165837381416279898837430672394290303877670785352090567921109431418871558237257084183878062546103714068067941186039748022698485711486746866506312454071827422931098871574191748261305701700654256166852546781479450754173350972415169761319864210813668890442506393330628051362973150309693858254107577265120659838423209253865793972862659869180509470589886499683468333368425976069677333306486155734339247018994618745954890499452404563935103073943239319544000479848059441267639929732029111689859597844439607243749902007990440787781200207813404550960119674137701703333572643105038955244534780674932435881989223738660215219924433374137203484516614748564392744879913875841536546928516327866368041138454173280481756463421500397982947445290736599240875534436769835371751536326927541144755113735370552879321188385703231801820707872655347198989162633960311890891172719429175624283373460850302384196284390349516509749240388295429638680293516164940694281375979404497185256519211138854600197769511648207244685739445584299048755133859910104769919692127408713203664196785475971283802486329220858756070353296821872649473071987041319515067101165739225668230272763979166750679542872349046976062174369888230621695924081816008826030581982416170513047548996121322793942459311182459834094832388992296262946403998331885728087735936627841448010821678782385331596902220025561220909647160382875336477932939151024977386386896349132723172252784016588495356741264517438428086007425985922762224389554683149483624633155336406662925745299705818331680721105636866422527834525924029707357558210014561105750014388765640930619245021895759971611382682719779981667273923019308068192187106690477158030007794141895536021514387683182982788225392961842033834799548971682733469799070894814827556243862328183080318297407167734715679615960878892318922216853900347417099310348184151367264759574715691966763898989462421956750107838556844636455059403753859127797142560755881737353726458208791186514495295871705676561451804254834295043618029065268704717518694991236700586631904598774070170587318056798804213607927088706792844680642864418530214190666889727138879059691011858658607917946137513850943676673429890497040955696550641415609996480505355503158409856402625576618030063683493062558780908346901898097886536564552847113708702610198532098508255013934735513858025538056362296877893105424472878750074789020934755229080489647235578447949935449754388705445430211633130342259366450881737994336738949777654396883971344472713311288266300850167224459048011587979211406939922764317265938359930026709347483279651592777989761554229483645560848925713689434589299047759464074741726123567437630068002713613782045599140999354696895036383600126785140190544285134247456218029274214844876883145198864373533361007910521955568091671461262118575963671044584100981564835627644941875683324989417904482815373868499819995217520234979390206051293768852977338410256994950016618335980999725417941204104343732378565325102601183021657126783756924572774441835947034352961937791715397497409432304978788563519749663996214051600386369457903452524170425549942927428094178435788036156231454426029955945026766661656794284755959400719217371045242613099354334594648843964592850080866319313588994160727723696835040216286296210211317161367265452463563540108097815452056818135794707026711959659556796521511849469180869630923606299855699905697371040392828903352269630423594013381984059874875387662548496316780080599055834762320947426145814041465080196121648054347064833705257506685658185814328696790082627805500755639650876663457631168914730721752740181566112070562052410220441520357987128187475363182792135399811230662679460993837512174995274934172629006186395104333777420971535908297000129352798696310743143398154503220012923397163006753951287836729478376255768611077663857152825125399704234456808011377401550587849831069267930852986022928210638540867525885583939438052495239342113808912834451564185163950275198992989072683275239193010824943193525590702188089195678361047754495890934872929917376847899740663726561181569503021871280204515635332920435862062110853813030293048793312597769602326901469455244930581382330002545500181698987729190381734184878629472252300209890763812628011733833834752344131474678487966467997592489181048132308096967213468623809900692078291021809375716521218513922872375650716213460362363416528845223038303130408665070225249115978624950606625150192373583312612966810341762995693505640576508939917849572033920101911885819568754192139908549109868886949896408314587105095929290497501082848146662016699474346772209061812457202226585917673228859097216353585344397468859968100284328681072756749736222492963171059540869432182858249348513725246664574184673066348173851255278970975606201514320632205774703986669589199762353282952841689446530805614665858226911280439479015524838399662108164328463634937164326188867869164340347577379733679356691872869767411301786010772618962493644022988500701207390486643591904559325460688687392354911537291047081387705397761681229896790453029069239932090156189114445102278097740663923821012200348482518258060052007494097791390520998058375043599755048407425366176827998715125505407221765313088229102726050333471026489991879106737982775227237013719976890545855884393067891228463718449830999492917426525102160392533599942586508028190246593334168090610087650399541656387198313633515207412963300728831881455506373506078904989455453524752318515830678312557731467176036836725401993533877993862321750655075058470339391439879643679533170112045618711618931956106673935238800936531970416071288877017607915031725030782297863183088726837278992996628825904472435209377860024083033892664401590946453073599096889665124230575831981761873762801952376928826861825243461491936619210548162134380746086068152289974734327953523887591828206016351428062226888382824004048372045592160447729970813638122922081297789135375253714158590245318713182307172931205477158151838761792757770457230126761365321580020357806055039221646186483219070134766875174879638934450539442136822532832193043430271416958430168174848359501158976697840442335571357269541748243993300268996192554254487007621119280331571993093785285350581752578272872811271401044002556313488543511759340446426032294825258483930383324763078737327420815710976837389794945124082764193948040175574967104384572248585287167435621364915719457332906328370276436089675927122269312935491916780149048509931087887103770848862278190896659340988857732843747242986100332992201350159795218545314234477504509044640583545905205638737677822797143029844091728430689060962946162865332140664300618446722156825034376444497923376033256505646345843255669870486906975441520185923331962999165840453588102528520757989618121435134753969046975489754774479780325273292414958415302542681620189350146482824723482542145115992642146335859756137261603868896165194649270199527085561477191142158023945607774684798306141778532681331247539671678541215498441153109307773949151745050815512477986416660985651091088678712233598812185298855097775276662976353946347573048127039141318411596137845311652871087879013281671281230015848902050527329195586778966412580782682348131370268261978413353130192035358150444843798659296725166668172004153974562006225425301016671398191578174351213247705937723287791607193975370765573870576247639786584954985135103089133644242544574120032969749788738654431752729639893303097716488434110129133498572715703446191274851534918249804182732595957279058438020661994508314110185826616575039605637025632681573517282388213514316460602442299762471623270909514271628450004460805725926875037340223705703837444801829858713896424010803180425320620159220339090568754733549387206254623218176967581217865710870709021213352921872923261674874167465534185339726580766907150195123811323247932298595186322602646167124974398297095800177823408163882335046855182953874516114172079480915325364889918880795912083459339082529504371079871357682639705360277732818832695747796532528007418329516856042007272476749764424351005459956880694759996799114770046008105659919669799289574399083511420308983011810502295080837980186707836876216375630377470839156840862452819574783000526489615865314866534954510546041961375460196211782211455837149541396546874574089439931606454425432620613630446108836454949027137491922358067516607439591338413210220537670814846884490090031814087504027493739060857797864273367330462351000801342024060715606223462144398381633666948385949191036916661460200786720217344280681749515730570043456055478610051521093968843350588341953647382890176700243627157999897334147100880367210653177879671854284011124209777438331967749897318224721410459731439725013337455055486220861600588285745357264541881921502134894629056684565349112360494393994340104433338116942780614883005472329038294240733132525509589095441549328617465542447022575503074327894832691480255988324562916304317367848569847665398605380931877219958008754787876894091084709620016658764083256595206077806395801221881575532345101022787256647878326978689334861259583990496907686689964263344481445509670046983836183130101608484810941961259408837212966785002359224680242890148491429327503605825178038273152974450486481158375153577038963811651193435871359882680609773570536179525648676388645981704081384778430076716617515752639053552099452206098853214135440690144957093663657622650074280558515311239153407476270273455145681559863493683092345283036632932337004363364976482480484063042007359499019192469123909874288516742577263643358807551976026067778910475000868895586277821984902379870263497572732176651835130558662600254682737307421532244152552537123891013989655906044252388921883627869814959789860965933147264925774380345710136263298012771300548823275570093752303974355567275499601274599728801596101512614867520564071765223120840984600886322902761555811464689119890194696660969972011669438895240483918023347784931713000742185869564524091334088452962261693904982819422296807416349169137645990253653261410194822723887271644327960195094635585925759978663737661509566422592383069783045581657058504537370299441659865547380848602472174544949520393193046347610452613520984093512502871100043933425868167622279507186444654428803800973085850791475756755793176675821444486158383974975717911697137301311444509526022131829773232898801389355763228197572445951072764541657410459298923902139137475327884106905369363202088939865383083714784143149347980186070291763293697040349169040270203066502832529262061667325998588054876385739552665173288972024323033949504330018385975826856133530954078104094816702267076281398838196009131522197832511641368033547046171367716368760155425815116071690693448526421095840929132408284045005806634081530309146171183998993885178157317635657350845412748876017539625808828123450897768831694231345037452070423047432867042225465573017959721665607715757633115069470569354685009944196419336225910898004573452306791791444893816785064918098971482122029038093982296642482167507108527028784362440589780117289217832325829477732026582628480204924061845929542223503976252201460714413166319268481096928935460918872727801424496001680629139212459561134081611715331122160413273042504956642486817771612725994431239540976191943433562148368314773555199043623803136087577716912222325741942505139365214126700053009172826673464324784129670432433541368602095641683713704703055402877493428329321072952247534159431774892617212485049919639166551567589066701695200722322152303872094613975200050888283622954166396089558329965172952007178906844778865693265326368012129186817943277744433060058166514826719040528652302999622638425566554910514000891748537806397196439153946866967959299994447402504490079277935275134903646215046372777906510819511334500654230384871976367577440265586456996534602962927229349716348356561089417443167798456155051823871299248830618355458872206337796788796331348272026615007097488258626788321837161506929948601312121416931051170230116844275715886084636069373915088635009097902900124156801483967399845825842883339684829652607553075262421008918423206782194894156720635705829812419523922231352312930271678457354697898093109940826557918634675128182853104281528058172445588237895239329033078257607402788097729151863834720263498458563092241502638486998259316108355126318105427134189626065618195600531109270783705901006071491049622196370058976533641910269860864800399901694233391474650916450111976456821986748160671955820032686692191827539960964756132323963591950380719346590065276179087727021499031331620369035650661640117075464615676941776825527569134388291313312736885096840415685241174304833289230695896984091735837295872193693742903106857278080006138692531722841969122273307059729257115125134505106148354333860097584860294595418599733012216903124390235886318035980528951510863572779891745237760899972820218227967691998432893491066832998602802154358863908529754390482123834019005442592581924273993877278019610983442882818745647281956396705656512591800787778313430542575911183973024456517628754751969342973085621352036934503852892538729413694243179928436780277294664013600602405712065861496254756714983423123348564365845458563227376333405957398099403467272525887761592878165935890491380945464386307774401332642011572290127576008485823354021181107072975215599436680874497282894807115897038726707699583494728990975449072983496334795553995748277078834423703820090626296114339273821234081686455505383039787663136514910581173623051237496733219690109820939401416205707610897075296743308153309127872517925709387350033667150988532287875990337457222135220927322302287105566477978661971344679069480007116756069820167489154280084695447321480359449828075526703043347811249733785277520123363878978367050954091874948485554652732115351532300682012744666820326848896099137497567276254096272832693313729409951113098995344216570402094060015432844084006403536514709337481832652873663666417913180072137767561044597771157845919063489944217691033495178893966547970309659129020591325060663639730562746197900129744218578186806539899040009362627742175419158120586477240641102904540684307962928207878924565987928767919527869956284484698127408958996303352269526229222455313651124913668865505341485848975115090711524543041619683108887809647594389442016103433239385572099291408810041519785087073046523486947547130485368576212233908193442570239401072826538561607579259482839131398949971290134881010130787164755651635151602471620046281529795859744297976283219032081260037446326747081499767906833385414470699743572119416115847277912473363582113982180037276652272294941648043377851792954687427470375658107927015167224748184716919611595298758788051189851939154690541411389171553806741245589751608443964626780302684389542069325911823661076553152743115826851275094030797632926337673760025614055892235385353969445762334126067537475767122577140847274608062154235617299188652910861091472405227218314144605961019233727578122025804118476650208082336035085833436730936879402789882131971671562887313964105203828607838935535486649505642420373622261724584170336154012172431308230039960547092951153691997985015529419645146786440927982949183313607396308622182665836458416667980871769455032681289798794086149044739493961684223275136858377577798456233794319180725813372283030102665095209509250108721208471208026392380098527800196216287761138218839141957342171124701363674454834261877641679328323510311464617011131103990100291550025615925285332642760101312606697648293031322053604262183027278812951471722413288845861930615181044430508837747184379315568075581020566488930919014558446891988902827270540051477202076504193633390671420319581570062709708191720482315855646831918865034013424602720687444009003547059511131239186553234722038040780196903038624671003386293360645951320499326422781134480374178857813707329545879608240223097904393043226931844930084627877102609863514362955307463486539327767117141593763617356916299901469286447842048494512878014518125642544781929002982380060568312982593109376492032014277810002655876699928860248107475795855843956400658858831312962520816423944076110101693926037584362597562337574183036417668030180947351769383230307878770032663323443395140816938459025178293953818314739124650889369587869339627837721151513309950518233801562603784028000379893057681376742661967965427656429548577198851289303749057468760494186774121692275526874957914344599036424942704545125686105717944613751696292737679023374962796480231323586685928135708600662080340489489168786362671217928876748638915430885811242315110843779717349464471570673444190373005563276841270149712866538266069317435951790567623242613573579305936685578286313539986322312265492871808594220777286619408719284145408829156222356402353617250105362398074142282935836585078818451589920484585871763313682542310069429525771127799227431472673576580086239291562359733558728900661758274824750380958715053340164242055184103128883904561635642376997624414418332625898260075995101239527182128572636830396029667161394857826891103948546341167905169607365405219659326278270814663750518279181368631793722283740484724929682649464625353784508826773908541288050915436924458790256288494742888149847206026731217421040108810642687196123374223352816795341026308157416463174646293066735611337037904705052970047169943138361597318856095154825267201335764075678350039734320020110779920539800860408818379303489960515291995672625316448087720657602806377682771123442701046742482809633453761073676906409050029831932085189437178738966683899696071191401662261569231733076053749449503195109699246003567461038416966221539115019722222366643645889528282570865484934173704481708355051222061283057122918403137816825600460666311427249269805712047488216692713691634151910893944863067406360466638354235910405100377274345993430032584895544738260129189144049601289767619884838586468461785243388671636429269965799679060110828048344416243185303264946361726371203853589151331132505867389685667799831781112945564770462430415995142819976876742806581225685240418808792284821476228370203594112257559931380609505634067965803084859912661088528942793587805661240227190233782255150213795026735792575352705290217783590438828834878310429933339413941088038799014180264883424047982129794339752472708352470537970314789701788745369173781556687187011561276714997503266701409433959082762731708577901687675537111178797203360102239740890276708024819120110134811212697830556876998167875040153157700170633565707884931908389065268226900026336727489297969423068488728180062135125037929891423469956665041342996443537303674962855332732798232614008022474608815073710406356523379834937429649472809703263212211920449774469625595580116450633265910613037482707620044228624392885047039709294302915205499652968760369571763472714345850757722651155765292151094770928728003852174588774894009654920712846311417904107391928416513596648039925376226828506046271637450846249592861435378799817935130040846098419902502442641610995119234671230197232046544103144707275279476567263308556485042316216606058618313322730404533734362558845289022396803368379102929916846840964446963481283082986330930727176061210907788507698111640902403803080982147175823356282340704810907205284456427002135657364142004728937723681224105285661762389296432639417275240316244895741623240096164006055734542613253379005534561372146306097538798784395889189477758568832511385447032089514741522924240642674776948611618133740932886990251532293361877780176940632855140957404725845620332680216153537926519889336538437252278093021767467643170673832440516219736656592314743724418193738064207878234176885937818420437480250897121598955083406124629641369020036216195142074389928603542249370260823680864866127177007111755059983555381173420103801538263085651330053295606378397986990390010000609707563367633675101551369726726375112102904421057562598872423967287238450744921986568645225293132102070015422148126872925887589786888151781808054497473196629286174265836240793106162622230080973661548795449532032654353609682819006525617304528473074148527727745730277692539937140745523369791610621086747852644551350703977693102100709340150280490406057419523658372112668601498557028005357861308888417469114831745633969801728064098663892365221766877363618607535812382777226283201203397220260147622663432568765634055088223244788723330087600930258322326836829991304027423181754006511419021895146898946954930097421537074038779638389696946338352428331759610728549108774673835950989932632011662721470124247873477303756339387055436127412321228491287856937858052191685322775077438757599068662405460504157180700109277097062941238927207434800258837343478037698055512086584154172173625676580636667232889739588541713520051896573669554056652479352060173254013638697218294322585980226071181351262312788742820871537308162220507582910328818244444572014632067153801692819807911284005013376582573339749752067884906575236088346949403670335279312344994201844887766003836928080995367277238039419941997143606257169234701623832410814605235318660534031802618834862410749827631849162428983247211090887341982927300852150705601801225207254924082422991516564543710754053283242652112166956834264493781198496542072224090344034808631572759100289892433966101556771415738008871954938412861124714451942009874690540717138592824105169905354191156047420654164346618675781700401695945548788126855947648102138711406783005191293777439103129267091388532565364539036199278889568772831424069763013394996851263757535927445974726427710744530757282582775634111128328768144163309663472203360811951162136278344399650617687997640859012234610977176220298663982925637983723125312087225120342829618526308077952666232554037808762657809324126075779598830271497979667948242226007238004453192559988245860698278884977634050830588992677544492122991106774365604909818561482950001579376584259406912760664868948761939749860212994496814088698954991095152471719608265427706348663959791194180483241382848618647994269425629503681242579625277795764127334615145314922783901022447929711647834449066690082414937118363436309711594587013681629503562140436939749846820697236322657086741800272920295340053814068177177412928697370119893720670953112079699603717777543240198853165504694445680485637048917033831754395533029669924873969311248075838800245130789134821807430075434290128753503088652328088315915140917526915509862414958838672903813061061767489735352535949132127762033534546463783390596515667371842905767103351134873756444222518422192705558602714738448509374298488450470071059731158117274337276395386611505366925253825029446822045249021890827719170761870382522009481373018282053762813162074938848364408111299046887073772309619080573940460673584618175891258315419318118111473120495260724509824613674294809667365723667316855574191779391733374989350720458164864088325513271612546364526312528338768346711344812279022825860447735148834758291647753390636330270926760102479505478511585398363369300938707440394281620284641737408710868251275484119479786923298438795731372911505842088596869010587625537027604301553658907967589925242152442856486234733420883569918620598734105014027268063201804704235288113874228869258862432952625997219333247398252755228427059664926634930559343423109693838792964999932905571758406356039048743594918940443048133107308298019015472544979204900656806164220071726805891102057309623204501909983060695173187887706571732043041313830837252226891429030492100294197801056839577028046939260629633986086531446770070842604823859905973198954983272750670147544581961283400593602372702931978462070895840974557607841502263864554616904570835231312759272496732345638710390777926071909751048249612707546452150387588622559022606820863914637979918096443882389567606334935765229780923154614983912776915859357836290635343077527683558300384464661219317317462736176504784629618982431324083763623861831837438088830544529559511543498067238673493077538535447225751936051417729409264320150964142599063406133909669851023295782975684664774339443752720157500553478161341888014376087840396219969122947001500259034135076883439190741191821096204388463081173295484810584886277068312371753969734759922921869025687770836617285507333388618289492022579113024291663917687603256874486056123984835461957354021364332616784975061169845993813445329777385555716809002665401076272814681974506301763443385264435310072117936914190184409193123980555607649413051175225982812613652167914653349172990470018788395080084076924528630891280206492940164229383849775502222204759246927168784362651829847007434994067511327518833560114239471193051455285483399474250488898216486020460448893936966478206292154683323445612266276559361270993235713933369285278472762957504311805849204124399379459818708231338012131490240371526903176810343842681548882266656569414545812694686533155301288668251323611302254055480054824817486531150981003505303279134820630897916813410585691942089872104274918187312789224216556054213308047751649946867554026653844877604449170726945509587004818856132865090886526819024574569493176514907260746748759675861165621226649650522084987233786004052322942241699193972531736507230117525299404486278326601569518004759164576516204749758597892016365192468716040909604790084727756177064732518710676664404301344564182019020415595892532743051757987916472217157241501571249143793635133394644535676472357860149765371975315057701114014536576398792300006578859343484570769237063601817122585770724896484501773900598821221383550212387391501722427814302048501320764691226260545348007862746916700933837610976600536997808483922221159219314414054763692330301826333516764522919307401245396976307214538862598998647130611245982943510543506970539649167724963895842591710291664280540299232663868377339403393990626060944526118966382886164407479733032049496674013580765703410852716259076604789473474795612777054499812228615195779406889380602028148094861582183955404034361227606648788178504985083248184082023966279279603517632022055960082584868075934030060232430259844090064302811273870242484311900593282410998082554539110518512316378103642616105726122558442935283764379919270636587206347263228280799752206395788659260133661300113699296449537918644389814086561384815738761052032672022867859065150413019358384195974875378336212226384083465213806588683457374228525902097524528447502360078638306855530339997909748081093233065320255533322530718751453821884017703548011878275522452156992390090336582865740235300411755845277897753961627396227450534783269070003217467574106438822281747493039448676416303567774654861425432548834819124204386236805711537065476807199672156713726827563040537602221242979269875598586389839456580455540025146414814980914877746624682038341508746142709283329471815951700919310250375800857102382489673455825125034672948444627957771824126524483002027780889194242192499962247745082339153161995399150632655812359592903092647175955701457701271487505301487522730327882942236505851404190075672914218331762367751636422646953263213669193733160159693064973952450026853619774070157519605795682226809267540481933397489711691132572016627935399052038566895072346514973491075406127399264792356088922282604511665544776903603253633672692372902982848034449662819372309932745942533537508933089736962673472914896940994085582691585937928953415623659728216863851981420082847920287263589133061137127307320366659040572419530396421772616363399633994305958838582277999721822931505666126214133372800225932496061649174561254522684839977955310472080491599746362350738020606542269441628330365274414641795652283863463832923694103138473481887807873955641619046605032285629114265924809421489147244366692723310408539403505430555047843829317677096777733312943852224919565851057649663859921937264293540575614454455098394710317444994141342872045334676041364629954565865319614480020951868710979130841934871709342256959692691290028336943804120297789590894725939862278355767278434825849265543008312750178950114796871956537418588239512468899567083962405526018301618255754780497510222025721941419935313297078375246506244799621704726790153977833600687591131556926394923398937068730193687995889462381234459799769876431322978501808176845236710937531684984706094732701445356689614564502108118699347255844689349779494431320945339310394154298269012736154659260713967884892611246944832212350398706512627157014188899024697740531122031898623771176936164914278173556769898024976956245692838494603313324078495100492024452259539351230926889288940575643476875140065360026729001977541047422942162272488728826500808578876524111760102821503819965243677822157587377165455591606112550747948488076371311663868214087041887045733223602658710567127371901896331233714706559152932380811899249742542528988356100633427453746631450147218309233648862037899930049363424737426688954068959952032276159039139907333831147665386870104327139211894415018047335941777768972164792301723422032235283198580915368991871281180404850569794370103465563885143439158916139188398360063990290139009051320870107213626711598140635632121950708509877507637805769776513512582679761836685733594231020134763746384898920180771262592913834860650854366777815395500062541691447051231894529807241215213570214656664453153870158105773674256120475062285116201207403380311281861591927771535917019921059578465423622798129541401353497103263616700371340209429438439712094034370179506237747219525688362425966710863112169674766811730656207159473826021860119029899706651844173986961411111702913031164949922155263919591580858415240820198997174719979344588564004221574736505694612448173005321803406613559502923113302400125211015428198103166523725534265802729398853813226570720499755692445055188474400349517359522961342030894125920466392607508099868610224578192878062555007089067604436296494989570241687519534306689760435631678679495586733466353287241047544265394912242181407934945920065618880449937800537032927398936024475272817786306256138257507312534521855889704553006411306348406816176602825434143451168011942638374007692002964501442948644372214162956588238247448648088561611944720353493561126675147607228545286502922681431224571867188225476503708849295536409340339916603599703555130218110471967503230626564061342218661517547330336799016142598825902158045571111589496953137554236096751257322387930515965839691957288620819198835509379415950604685729261439400081613884106270804162297347620890443217672016768035029307838234254259241936034524124293630278412029327129983010672148164535937725992524497417336727848100603032540951152572090133189151508691341700924229208283044633164075156558049387920378429590131469893372336907625293066680516688465100498585073147661204123010790201800253726851602965007456439556706250852669172877905060505283619566473474268110956438759108029903155375468537399572472016603423541262188364151301158852955668537209028600887712832567283274928475458815994671031066938272843248558906746162790666581828085544505346369593498190327371234467505362941426889815611125062812031648926077001805651661337657656108119027013066266227846358834753324481620612340405764078048454527919209038667050019448959512844394572094538345567514266711585877303438507128137161875611531374645168087436291847576810731375263752767844465792034594545728626635974285475667698614812378136611299194697758812927473409252307072456620227084866485570080785728584820684142862413775586848773993091070820993514822878876580711760839587911434730795771526196405772040080666589257094181154747176597366010934078259338668215723954822809831679994673798075049776990344318857630088238605188189060813704196959216252103570065987834911753098306862799171337208687989994234644811246562094589136956403655920453043620449939732141304722829571589389226777667188342358340562390160008730868359841536909806870280700411369289475326935213716213705146329016459591775058286528692149507827906618111446193506460653337150440152920316070638334316425393431490271299761183046762849058438791162968004623159599595273413388957730002634935834755226797963540909373520790952650786785011492966185098973698369923299823189956170047707607589732557921396004809266790921924109424857165846848163646231358273445554603587229267734315747807280526128788091708066567378835666117143631571676218223831078596729945834957457472342240504537331116492915875416984646084804425347042136557703600266438747410547143821521006199327002864090046321510159693357258901771870874967571405198032727947925590801736805754155570992002551704696018322089319152735582397632454953137624862572609835282854881539009174032784014493279129430507300732031577610200254559747009619853151892385133858377639968016189981772823761333666546700786507933313796061263001013755701546609254031637243663344079596919201396777688274978482075737247822390552226179603190136779272877399381273907842083720707849645614535183056299015116180817783480406517444956304699014598564868216126153486354304335652686512209245151698134880847962080713021984807605460554084651057671692061839898138858752763240516271831798359204437315140418327686653427334546088569376742166328190435127806681569743778846557327466947284061744831945947682209596912960972869471438129539457844787959311471861863325654693857509243510327049730328699073833908686364004551411951100625147046739511179540326249964119271501962650036572504650212685266334835575084094009045134674093615119159130927712494052325445276143297176178566214857539483897337136549599943357254420267048320020715260093999647127170232790746979747671142457898474329351187005267353385568895708036368824986193935811136978297142248734857024399942347824941806407954123253763098133798809552207182277650303464509304853828162615541975977714776247932561635740058665893006246099573356274508389860607621978830619989939761253208910982618566476073791092688372425748960576944034944739273207608492150920311165774899680330805128755587138865469706152592146487527030547250416174195707297112290447008587931891981134858463565579075157001566148782526868196275334152523191969648547774802381805891978713074902928385029860029818714238201277497819589676237924776161619141010954569505592270880134138322959101728832221992824864097746725933343186065206998620299178120480062770125138497126173703745030628912702040969924509516036307450315230810967574037456048247402750989555533949002465830361574752328081000042826330694850483810733972342906804273030169347441334741423010230997191469205900872016966712014054309158945647188857689305768748647487500360959713801350146276581488041159552980205374487394072389657201015169842030978690920636384871909595023705140437294446830643529831587242688861029491103613570215790355648592772317371036299418232366453979905709792296422334120348692419705144773857699442169899606024158960772373817609086750205373149634257757924458689747720133692224184824795969928915802739104932419733877433003517922084262452257273198667831371990434400571844159422982902997096388330150183447385050211963533594397758541927166713848696411564496120389830242106935874817401014648794704174608135171656316113865739804766410142754879153994864019579371126963869171677458051356133205265593480882657571995075794763042573062263938469607929422284246294162883245299780654681139248557604107180322392542219602403117913171834664255009852698657867613787028251963324298223311959532207783927409409564698927690183514497201599461819630492544609319060787748748582984973343251035521147429002141843145136006733074643787916530683729572338074183620151619070756309241890700570488552872516828889316852572169941433393485003074656106663494989611423404456605488057070478355092716148187103865738577674442976821595588529474162407844370670674939423872873349868992779697336235320277078272786505398325039414153944795373155297852055107181711629115417925042031038180449567291826164168402589730264901069902247140635325727855609298487185251627123653238797050063097719500828608468476399386630213040246844142139783743555391692835375292781577139152862000662060909606727140651567259078503850615937911016596523690576345855309236977990276393294149118511535961841364204531684892946511411497560171509621622105421538106027754483767018099065928643993218162023131517427038712419384770463953265969008567180532258467728472542499630169853669842744662086987492695204441895361349315718798841004059217513257343691045296370219054267099444417669965747541094772410648440524063157825778058523278082580110143323437470919084117978691357222102330281427112403436026641580574874878881740922597811571157295968675563312031992639156037678189949411449418938957452391606538106497858570927329790939915698396807276625533499763336721953361361256776355663530226629604374913342089929834671706352933404048588654033784054115749230674183289649116121717979182398333210560821465921198205471414161035663966801350742466392267307632174401782037823644065238193603809294373216599670169453938395062843739340965603693229949699182510370367606704919740260207980403694231192765736954912333846239026504016474193275609070867579448260775090147400245228809489957927609507373835690458163425249936816983260933056331062110049081568036340509658173953990305592837339620333930684559956802341503940281119135539903741118446094405363586084483983178529036225400393809570046275381352121954541496943636565616289984140880574977307136564830881251606404937510748374072615708644441030530939725771362447291610597466051126027897002197937079176282132010552304746981143727481272369585562611443452662767159100921288463431241956785146237973737557919917415071621242695514764630792670464782427030497435508292262250257930758849543750557150138382086596548741401405128651645001487121896361658824614983403170001631647936386341289641179111302373653142866318679652431280600942309487579505039657681527322493842484370848542312970224390884731242121332685254564832556243685477032574961356871555280787809171371646627491045028096041687178823584245955679983023481171419996991350629633487589971050439081574447680050521798994479944358169126137938818974564134310511760660302589489268959892288209002391552141661088734502635597399412555631061366106147468920132909362639519017006690956271990298380101043278359592296870008577031133701325123946267933889398404462149196363632899399280141030676290751402962559280853401983829818612631822879987981184907779235374067850342437456669009894381930309279091995975383070781496517632051289798609070289856412265287124186189153896491997079872337225876780893301785454262902865212092669956744960571197495549553768570185757183131586769956417187931138259055584962166256354053437180410644327707560658589421297785403506123570080958042917625137101939408413451995709496201662838480125548837466212717162853599636921343616335256783270991845653855159866555525666544122176185524500395618398269321582052209281748478130044298243013179955900621515281578999278392484185786729722512229787580965382196031243398055030671514274194290271972696309248474977627565642583717983639832822058792720623672752703580936027514081678241891920931656576789973048509734792266594745492904048371186796531576298702539688128242180525535085047979868626972045883863300240266477478536805870568324386908813430707934559346998942300869314492753246199708433165535044849864344442982593122028480312265695278281479569432906886268640287452845630956915111845825486980910185222674917720492314227525898324167613688175126003929972760265380908846877917670642470301688473600816441091640866782335781842989828259898060134041476093958359421826006308071566085187662415719143923573882212328849972883410892729546609167187804472210114618027908026064082189209733154729898144851307709494398171095424641771009492818225228163458781924890611160061656668579807104048340362158626143769418504390938217039940854613318651274425180860019089632150960827582930300602501507342251520621323014090174102500929040818548752271073006303648230211481610895089021794676389197422866691924275963033640650884906500583505547398835035268293322315601131138763510994482737551847966645818767156636086682870620732151800799475215172539487545618350601022006956009124880152412301414522527731799033185736336738783000638373649226600747594232387516339083116904792251726065972317518256679756708943275677930192821537186912981903277573151844255254903003934511631763666447078357862701139481046086851823541286632115970497890639584653504408281787747230452435362494899958430591713197959003801455187938883055505309265093220785444305562815824148025539648983241986241262977180774753719665437369231643514207361767603596075559906551272781777437765580314253941081653536185247276559070247518732119043616632922176965139361455169654481211890612206337610662008319807042526154317452779864637181832088314305444548031694587972086285658352390033166230330811826076024800759081995378892530048012638597343138267877744656937060163726366527826953371575939027429792346152070701500445999239812857124260942776258189981272922232343173174089431445048169875784614936351844624727020326061392752032081046906494143818018298799527803759729969264944590189502397488259429475153202437600041903198689126107009059340084587385422904135721586343144455162989601877247082511043573892859404463083038489960990871072338434289019295297412612557033394315931797739940040025797772115840479090309043085611195636906580388314470077888779067316289947073489280706585730539375297738684481988554802110516179746966710141944791756299596693687995599568221796889410213216461860576473617913031847933384513709036301751423336803980900649019831811215711498716343822634873826002375971738632614208062167162944531932864528353955752660362901848032119688657309069454808792694155334922801744074586477308999875579036116085919069015872133231273786794644431697887563479037371697210678457008347047768038038776441542537077071689669122869851372341605766960054637922071260440554600867353169198990210789649747857994859282003431781543180406626526920288896437675957392603895169477873297388043761125264716093782977009119799941294968399072740915941063199103292449867551075750993304918952427662072971524411736851666148798422528861619402432576864284408797841123166663597412936950600797366166273356799847079355455469265283407410538970922644835907233806245974769600892107630564594479372162734931896801154974337259003172837501091425588817444883077898345412584824836914334775379026062798194387201722169139171270093328799830906867500046472847457337045120859013556752363954087268687733270598781504671188545893989854046911656959325607619552173750981350597330877365721747739965398172068528287223783634473890240685374815077236667174088988260829380634418515614419201492925089597867136625297234866980404494322119138458238440708605240489048859897283824615433792524841213101206199736913828634507670429991629562434282325004895258056123315487152808688707747483339584284034819747228907988248883431097593408944193471528135674458337510960038386463180375269984982037515117827603730183785519506374297080055188412149916440853692407658162948651536189523831899904511145007135997125544218996706352991283632894272466734555845439477893472134950023321886908415923278734805765589125510395035473180973068490116093012695282904553335423113897685691653536569803704094739496969222357706636804340147715956612241565429042235932825178379799872320652862503935746955370196458274136435776201219209783077877662810711018072556410330250397843649296206854354657516901938856292369784632744089724293772012523065490858259302121239315296831190975688562439816148340351933166345541518340227320010169438755365986268253428922780792803096655999461335529321561163742937127576427440992569401086306138706679783272785715260350907739403558999961292538884067198962661129777722041537600394835559713127445963920119490684134289264878919457104572171808241369569448507662244951963276894208747699005166890503643344041370273089728050908173710956541753029854290737063209392100721430218731277653480683711934737612576936950321376825511041508178535292033487179237512423542551772917195100698463181715249699819243197811829350358198296906922495131635664676370477445584589634659827262672200814172997521575835755037620349193309977924668596268138567944543930391475730351104835463743173417590061010189742182348796272791329727319735177090099516030336873920783663835595667649138275239257466140705679596707734527870137922035627973241020753989862405504934789545752840801053338511317050027891428733659282177368205558518928427796950056888112467973503993534164857552042343998869534967911470783081597585398605901908599513023517333773828035606175625320153777219787191920980373264186316668697964585464950296813190539786618686405897969718866193390393128143302790135458820128659703384087897789529187980410856390826778888637611370604273686436325697859770807370305462207275696092590201892778983832588182162172664450079154786130912705476982369299713123565567260834485106107327305692925480354052593206467544511844575835777757819617562002838963703007083275626779415161463368246717498813637128509385986500015527876986453631001922562542745858700909249939297841313674378467234539619170712815076740148808577073857620488201951123507822740671435921312071657262487150756015350363636330850964787359755804322803726672604081487352602871137827737149313424467768308560661077872777188132607302662084838864099174995648397206257774727660476015656570381307490772828240929647891943017544976384267578761161986275604292174415820192287825794300858958836721862015076451666325007989502103619129542570451211723741983193066704094735025165189135380219923853567043347288879991848908079587642413255980617308124538611103345746827037878973445951333691828237640149418545328248184966684575112989057277899719022707342643459510956210818000602712197242405748644042992171056239915573585417607932269943193992850136059330517253419832731756996157354860268464183230047904811361455006923563655569323426513541415878062900598571786288155688862089251289350794372617382697007080817537686360776926745062970721848647246092095506386548977231657445094436389716790369258179587795807137480034710628192841720944804939139129930062121321040423047483564533124541462225861627976798790011984028525236612371505345626383529073678171568373423794940162324391769028603920339268742918934969493289007238504062639700737903565025235327058500819198791711387580344818464460368621549672215227429230132175935171998501704068813776414465938901225952723322922048889439399789813992869217696059640542113253701647579413249023196729249961729297576755666542910490961325430971476429632767410635086225782287235516108192342490246586218507445175935384452427581667318848948719030879230471016501110342230604768204022682512670237911869424235217897787459990638194747421371708556934047445623094851478572166257382506758592891857638006477388515618430452009039616571301601144422474208703560494658729720974259647782919742737008885055408757407906169153761177257870642716640220363020201979444056597347802814672927263339832738394108651465596188381051013563837932232785630475486025895954062163510144002833655674323989359143332657528356782611024126881067070926506193908075116967843945682747122194349990643758969137265287792162872026835532621069227027611377994251549846717065537268625520724079472841778415604683857785907592514366134792254608748993410524071924485980559396836247052025127898335781545016399695751560748763298402601981306702924945603805516586042645406590429178191121880003957571555693023477292792563980535422526927330215433538948198145469332956476096464121950914810044559348715929472476458844525993559652485074615190693380455005965346837148068656502760516013999934994362384290145543613342022401187117958492497841933315656145320596686291824997386248871232142854918265976791657594522076571607519930670437369555347280183154369917831566803286956631184442720318358574811530347198486387382207289835851291994855844857684622802736905695696528167541670989527070346266238282846776446606966155210008437275901445630770125978220956494794732111111975894579525598771379840918928445605283853296719214564133701576733628515812273800986300768003492574913506765550807778141443327396114667767634096192022207295540027469081835143629929110410078887656953573893507024989497904973107226794724721853158825212253499014225768775360817505544240129064724729157226803000218301191484606802877654401754100835997014982142063205247479615372369858416663055950998325183087569022635106648205927540437649204299233696467239770710666774235000253612770518449044148465888201488080907947349258288031744930207339258309652618706264737796866755950897197236866626395418158071773815524888480402772943859082538397107590782416672998310931152736910296054687408837405708780855607737471686177506393757523302564284093046837513107783004182082820936628964613816181530017145511573358105514367674885485773511853439017082485907909254236276669022765107590055223308589850198065768292733238534153229002776461791658097216184100245284860935279521895655204053317139905444035336525001238573685363552810642625830482205881785476013237322979559210290298377510743046772592217283728310110665169207841135133141935223660048638431857609044218727220620090408091287639988673761360682905520027272458760601768620924217201206485339130275003347660390748954717002086876320385931103592687390080278858093935198584738419412006478788610534077920609159036495487893354775441385068626975172076896799278104136604880174617074609015534278190676808285417736859230707026920729058641034279247188443296314245342674274152806678134963750658499400345084355346619070216642928662348682440058359141270701943944809103087672195167842827106232360240115407682637614859015074981489694323703597995895087569291452420495350132307940639966932238402203390120666739840163343916560930762035410885284396239199270733433217173755458568076226056612901988101502569039421547263466884294354208250010747588111389616029200628949169312071940742960674954094156323249772873933072685523387229808979765047908365441438076772015391977341100963868602699674954812610080612031358016122164761063795915711176355244936599646043624865983879248533755025876720512099296481981599912197001881615302651431370853213998494150455191283496252848149896917075679598806381188753312980644456514451161280805518187795762312890918236530226669722921561506032618923013937716870043752657693572983161872511832677679057053435828049977346085360775294598478704311789472560346714649953200534677166963058075950934161990955731367962646097712125531734147980746120025439839918348249096583910733634458199066035133517181666349643243518322756226823371923572169133932269151819202019443749955026732641333529043405583844176915012768867062900985207815203846085265398482039272183296503198457756715038125519604570773885693928973911510494958895429858683057121428595107074181897850100228763271024124364489080100969491609035832558351639367237353566426927719877567348546875049343409092876677911564226571732497939125488163160688173794665694415543518287382446324224785660459828466082071863705637018369203946208845050570664920917344881091494629096174356145334694795581090428693400999491925610844838961496512823823725510703506313066885792726429655043378615296199847903570273035474908092815707426536087231884242413093356267390159246619639639667717373629487000292924322118014662714532948580512146066568721476586040392049478692941328449214783632831944574238152332585733692848588972968115359185397264235025724356722244732067475112468381273865671944545801548213861408159608552370241863055102262101533107476673612711008009021300048177837274190022566781031830117003493636699440588584033501833812283130907598210691570337456080356881631139613106398020091149664355857021055537109956495093721999883149142522186963178377333313227920073826761409965950834130773477479200148530826229876500555457827294160129052663548398005640171051232728886386290874595929436968327073353836048671879715561393840565179434136004744883488692021531299097825906111019768663645301034982501124499919197310900692411633491515833246849898016850642032895886159974044986186484532806105676333579013810053687355979006592047616020896547707821496218836044264139625486432561841395165997167760924314621699082556594559749761083463963712230468515169649595757777301501465081831415555648973888947993477904849710596026206346903514690968447534129224392346264359995394282589031949539921008575244664011020688516014547944816396751400720229754207414813779030378159813579614998402915738821256774892942116651990022269486491699323557147783932908121941843707090043312191426168666202936395731109623670892337667513586279322727337998982290147098803081888226315010310267615362195306086656319425291430186308989438196802344315032402488677954464184201624043088283291715138253248899153571082880864536044477201012423302591596046649082823433180034995805060064748424663093929254718349277233410748550046882965966974790202691467837942678464750846726912999905985707201637563075890559507821731194383713498794841632676651536041837255822981398826710730940012846558134516894527020663509779209625291231302983502360995144431821336636099155783143308212439028827678248648027828686469972798060636661276817432040021139469529537734161505176584061263959133802867573316702006616063837326689330006718334053927800711619129111430141847546096821308944818475903561003336116291813424715807366948780284339647232624965098773792947605363993575307635308938689460184601396927561732816899239601706184810821472054259113377897937822850360408448365080307060725764658496903712762659909899322201075160186031481805059027374899028030296364750129239760425197561802172869239953949648801142983604867305572152600891185259848295185307463622469035711325742458893622042292891842384771980262978195420949373374060533754178892795106329267773958976158451276236464861490414358919400805688945418468704661243836837559458366717175240195445728038726749396950753175516534324550364190639317006151631030538754822308713052932638199171106935519483881789975464732858978407346821279465924015844987141419236667490871717023624218876454620282229876120269555134436388248887834029089567209707286274179106147965993491400057137136403666166925993496802150239442701825830980837241014080789094254984118631317217822180757759801120537260053927737425397282960564360670116776897530265317792176774247937189946832311677910867140589829248886998786295353194417362268549283414928417255151784817967328722259059596884626403529168501473161590782801446671662922202924748270469030583669058700208821534085655005100483082293663062025794554215937527503595785370715544442876632933350110285438442694292760682418748542807748953960466190838030914051128701731119741680401478161055614530520205473511979984987361354729323055500589819491066494507977206676056491080056161043907113916876533593220453881719097536867227966383270897626241483554167386940607015841134087055821405200619494820610651034548471378808670749209078156892605985468374347448568834263248380736901473448853052581703519942818768135060301534185490787489279712161714310107290260541755794782044858345888172527767695024189332181108443318320511601844667652070999283767112696962636331170728853367629144348082908936581584811351080318805142434403379112459924478506336559585358393055988226561689731200817428738834888832142693134156718961576818603184696251768233124668241890934453551433770817823715025690238295182643274897161804890256753039174065885748018143137411158096435378769577403793143879536149895997871729024637230719706347341222411390904312469046817651081964861418293694750599638006891115112866684970637756006380539294013532481273762020949977742494621565522552773631465124372512476393180905080684475187877842759018555954698709294477124049270939688975996043689991864924707964361843909805929022522632730894627294970295257469251160450279140182506270546148131355198844063020070613810791357274963137586789754555187915335948294295420495381459962844496270278526544444913403482639597444038981112656357238651964399856858213904092338892674138976123356707779867460220964522305086239726660457060711864518156015163706671969756610722487222711473518761771142089918927072290980111619430099265120923922845018124190095970932089707127269090457650225918122033391219479985802913696247878475417831771548794534048523398982761095657386961743012878337020567153825630352766411719571449608768317386116438336052223544648432078429259514713424330484452246016194045286802211739297401075614710064660602999010760221357314490687368212154728739998020290180638433119053023406554327253559453892120713993782239847713933716483191711880103999118208345143607162488249042214185374980859918366890019301466510955882231296300850514690435763772497683918231522207992202857789718333289507351494576537124682313026027109539011278598165735790809341304778501601148458665437134715691633513519763416077329001398604305988025652182335118620179774773459671468116916631112949192349168423252268278410423047925422400720348931699548555936301594442609178983429327014517911741020558741901377769196924036565875605007939220378423979289953385573852447421370772225976762777269303035821244739315982559277219912585955988081837929934758779502345323269069461852698493673577151000486279529498806147473658938240207956360907110683122279007467989580353824844880946575616157814735625473274097419508016433891680013253763525416481543304041684393864886043669085754680892241805414055360994811292732264561558518242939585392768179374969596674614425713229195446699773153505332142570320113659228783498321472144735759277869946461220688204383272164865881916940814291548755441448295992636802375186059996181283586237444264706370344298435565458228649282987892712753431084279560396568950401072995520093921752124450533357377720417371003398635744617758491218179715085175018688601058404172013061594808101298143057681627052389891084949193575331236373380336143124999449125414953292585644744089443588734827504742313890319225505676461761055255903838157706779135471895526621386033245364007254815682011576276615457548266673395892608757326379261695997887420009670709935013501720240631434634400544250455727267074029782379964649763462111524772067183341146198473472263743168000025770754646823719947813793217958016676422994411872675477553935747326033986920962085223926491895418161801955310440943977260193506804716508009995807420375856588721144524898078935659404756585991274717565496327961512057466635146455589153101324173218542046353737714975052452398968517866189153909070001054489491589342194602641879869140337051610429762231896680382660390049852849858903291958972072305476252729762053147825788211458840304232034215890260327937242725386377836405683564732429792578445402833318847646446104782460217696778667611844467582767593160399265278230484149177739341226835825722076850006370602977210655038359519504828723346575729494443544180009067695020902686846600258946078754954936629764036907864082985113556332995189154755790505992101642715606902162421901572641316821591437382393076766885439150493026243039733728387247755509750943303470531686617854767445798429390639938663902405999391194704423930745001316177172045171041434341028590701868486557092529907644217407801674436689288600544711485257842986775580325990216639706008393394771779473344590496028613444655858209348461918946178247322325530239605096049020468299173271875166239064123857096101874003304806017611221987270951141269399185911590859528713716409920591178381922752236480301363521630438987694514715639086782002822303624260422197840688308805983113286070359404393827982522895119387279866852169443700203117439526416490586673669792642402424649501543427340096175120654662035304035861399068162217674468342492671367177112579258572828325095666634399047827796711922406139007288752520618260252490750117614550316595895865768805465713895293720347538796920666396211807045761465165779627242691981555776090422065867235465119629920994076880898501451466138745554190137196005032399075562068607440927413161015697758099945868023268154861616941415258948361482613688381339493557309942915438124544425811055344768950988656978707451770459901934755537894277164668972863066604047093286720039062717412134474354973705051470373704818691129910106057990363978258039397516137492678863853527610601939190636259430994608099676043145397667776931320688263490274303279905912927223796624957874658105400837015404087633861688424617360351198763472830825715715869613519213795498805982380305108346639919917170138476004322493226085544412821370977138016201436787838668671917850005012405249770562224529894935224006559643711999898251078647787473311543646011273919603463514499395305816098913303820053433776404639983121650941851340918263340244291566507800256200342719804625913685127338616218755543805339079595339617801945138039737076605956510493127484817881204615106162483066180316239935770723597972873904661628657343937568063064841316102370171855935320609945317886382572492884367672118755951358758590145527889800469086332879092761808696936753326907915410704972090119726937393694186398282835252440261773846181818015757587594831261756794708996041561586247216554138911435060115604986567485121536079586489374569381694819502692266901708894839596266017850286775434633761005445137203702255016840956080267631482371956531128240822798549114626022200145446837879481336920138679281871861272621582627511276909991067599007619873772513600652645695012295407060935601615861222930922741486598760345056530340654708876382935918511350794867636481982843604021425732739547261665772212714359569898811790980858388226929499697890154522208529059327540610485857685933886654593034945649826165973971386676173989820747990094094876032216559181251139790799880398321165441116017653273789826466378164856114788142575471227062445824512901491051704603018066991263140213453257464895058928366699911339132058571427695285761135221727789000596455299046016975486038272143934224494816242358346700188160074895914225210657363985752320741168419425637959425416417897180802097019002743595326985088910563694489119228636374014996235878562524661956140272318385864710968751314342419232406557880808162436004507318536253600557797027698903916786192709187900990519986842219943714872887760608194166194302426960250297616347369560457962173691610465222192785622736820796956800303613258745590125939673524858467141055881927387486680434560090060003557691813020489229280215089122646407139570329728646848467417812325476728164600797619626144961171206494774086276715436020526802784750556059702942219686928202901593038648807436627572495291850893025735552592872951514115777815549124690679377617540954934465264513533834340872437443019876639065038590361138094467350028518787058241381360420934881821180947642644113528347448652374869838243367695942284581562107557853047168013754588199697231703241212325805855501791447355340161897485188364002412033494412354160129481901853406257543666913314877418025592154025004262647802456762592055349972896660032377309284296927764551906514423417692629706917511844239736356582594932547407715646642962763639206297638508127330276259339350902116827193007442860464846261933730520773509595889361884308177729472067872354921239368521048546960048226358235937787544948564320889470157569625222016650574151242909650665279588189033528600902470641605522009216757161241793716909232477087534774847993210826435801196650092026687242090684554245296738377043605496049398933939359289746654534470070042516345437751971629108708967313023197927261846985360105280214702309283900713930933857756215483998190394821466363500912467198935306390493533622603348620355136698637173988270575563614627937341099919066898234652732267430723910679145537299885093538373079720888517452418828837391451244886713803720267769088271866104346360457871247207539353555955117913504855896380112395989918166172716117770646685113536202196025758182932359474821404485099176226705723434665871019034702508266283694456765386540988828363358773424949517737477059828446130292823441723232053758066767958260353982293257197931346634872174002063626382194665003162290053074038325041543964539152748034580004222226216090137629337626187197243695250320955846789266803057768750994857062291717219306906317226462990881024493115116556175260560066425398117596125451462522877916900302297650595898078679781828327721532549107535678459993287346469343514588837607822807402469774654540268678896212965120754176688124049305979356029468071544179901286442001466620316135738874209420789478517369381850828984178439288114123672935669172461984240231645273171568908891094849197004507526178249244288345392551456775609867394031824270986610845355173438259842510723184206960433469702549886556722134049286929884494567328382478892708426893438059213829057076249686410677680024923195244898276231231188510945131927753592565867497689549683841388551216312923817768141227339913101624429608525731041999711540753845631699484940167051024201462683900229636090816015249840500519188342244237124742229759439247729675057750502383317769029870500692075459585589299264332583644993616395002776180603364030679164976045405333271317153776935118653368073037038383634972094314019161247286480856951277360412057005241845088569273969309896624405783915029882272258586728648470306364691760709344696311475997598701419884358654905324458886250856651249807712035198444608563383194436739180941128682919308163741021725931306275900153664830511460737117809975799270098261902929769237469513186609050065104063427899520820432573906637927189578627008890858331040668646047577378506144381167454005078674222876061770535386539485132324406365861906666069521799576704643809016490565245084997558470140246671358583585120714049746731378832343761156007344668387577617728273373379953432478892921817129889523527396559838098966622912478262308330763926610123152675537858984571489009966314412814773857844819056726558688963936084039426026669301907682258477649153805388336684106116673936862887928534487114079002315128152678132499580817443477095640409201923928320832626638901604208108671662242927165682269109270724475135636262488151666101410120646755302928148138803274653388398824666074663766057943116826339010431623668844891630153758467421985614749478979323554359495296971780664185988890616287791389182388258013938930034553530036830269816459888847104018321604312604398107464677531004779317562497636638273917783013813193696878570539786232308007939069503978541925164994041349931258466304692925625308278315226397356955733649283657176760341188588593143611602303008622864960421116469353157820270536006170713634680204328128378556561231044900931921407294686337858949893588957062590634632313463988820962378075734121740731984511450878497093044788628555352183062638205893163743054614160627800353025828175879910980958590136267638187186183969934294929312083854150485784575879190391938248313570499611971115190346927168431735743616681544337775616919504537844962417504724228969392420232099122890202369564077322724056520583210583618528753830641861084129064383597146658606995184611636998112260864219436478909542128701428132969657139863604863331353311748589470778971010610319821661088774140058514408423583712199232839802961879465937903791858391512264594739642773832955657659003775775992784993004648736713320603459549004100053838460624825011595897142649905441939571430084739627694499610992977632903014271320407212669829856342282069910019056489686013854972729732485409247602476281744616548475780585508347426110673469977303101741471299698381817560609902014783064380222877672865124034979639756565579519392621166567486402185313930253256687651270985928114678778703660758149567002974893343346980037340243358434650531114531735245466895020049820415486949495727901586831543738651219770875906161989940198003939693810932668995808229319704242551026288747983322103568148890249660152477360958811961676795900945086917830517458680991649326778268291454511309976295512619971871265717046497114389921392226498621080206467543191076302415029575480990461813586893856032436137733868522742922513092354196127486248377538234130126100137498587599101400210347518949152952094709306145895856092607425223732322009638737348686112094243608739714909926729372152257295082172065448545267553661645824975159364892864383181935094330864189384900902405087689240103353919580690594770785488817833843965375884195724038470946817597484188112977308432818320685470808507907477033440278927171729957873122925588844104829672811140979460139037288384589085993012491913565132951856990032025427681224272626462679695931420344190676585167899252399105393202286897094843484199641349669042209876534994894466322973195401722187221850964801397835737692524249805759894034488045945160579950202778612695014173243610611288200579990527842901935323559392899711774770677489955950727101823923648478619913749237282503337008232824829536297855683039252080296625840819893101091897861299416490676659844525482559503258857619703135222405947614757882699958068467491046330023083141936063493006098145351348031339345841105321321196049811750512672009400156846762892649153580302741390867155449990758827215971354661274877469657308762606462233747672325064003510635781097896050490350528518673385650803547218050653665183633251034006387796518981726044951829822471382832431531673016323429013799532932701617409082003676608197281074221021794989011692169744858461751639497965867279536095394959680373962103901228835265225307122440061811004410431801067576997962227373438591777689406083312926536042311101991954810536590356437105419627622267792750905521532023871722514519739391094759466903162588778549196684400543576580794871707782290080849382638553120027054063744926447839249642951071230324283252855114544944087468276357663335949412562056149318079915804060245335583441355490274127527439751778672146360978212747293292967616677994816984863447319430725507044788617239825251253288068217797191062468789779301803991126833866839546261147867643050266831472128606769588214399554255514807953028578661565195925954724469721696108802441471860807130542159298403030179087548307460150423156301304101881545733469519351692066828907102652647235648950070534937055590721298025789616217732886541391020679447983967155053173777790542711739237335593350417309448032080499209344507556812906678772133424170331611510895802601623062624577946962194147567574332402655418154717807177571537655655949697720236299850095064127093973633300376555754302489492790825573708642220631636720163548881897798290489451936497050976155238508356117861974250746278785443359300765142348695080247291653775381755455287253423523719323917386224026567901231525889248428418642190250405672402880910228842803605831951214089484371968965306001283283680439293832930325458291127730364382719340871765918569473710964662100463654756801561329647695692930317301817889918765759145994789935022804762520730232609771528461951160777065628041825763588260807908310711809403115500120182645837553067383042273515655583566104156598636897617814469133849311008224126955043976844207985013308006567851822986113343042099368966698256275243588187537072618848092052067213595478679041282419908493973415246482493992912290303725986825973386426869515482847786663052810885902223992398105264022821077750242073677745340612752869518574317073326242447526848764346612590873527228465077592159324289338977765712585581493125578156390338314418410159814730957742723928584522677383471255317004035809353170412716836918913452996407427089183974587487781447226639630401492887664779671014312930658912440890940550480666437194011408730622335770116426762536741793918556472894095586120113518989365776160135247579085572636328278299865433332279405300524040900279146189796072860857009488301715144793617135121384776711146464318909926672252787263069344310692949665898830427696959115562945040671826187527794509348055688359803994530962948006175787744568868987425962527203122161167551619783619631754378222614199593655846641851052616482150768603682737031261728257468754910565189969576168235960198140383349695708314624679159315023883061002295052815707369683263099482111157325378173084216450570476850947912292585003164638366769544866492502976906989494974492449984892773023363437068384938442544084785983164960626518185800208558296771481877701498788411245626612869301278506782726109008407729423492193238279804420132407274118114081826026211681043140193793091466401315087831245735373421358098858162870763652362186549713452241048037910699938768260305817111084843385060706044615762815420692157431414929263600465968517154891385208190851089705594242485303495971550737426864198495323283754686469343674110782575515856684416585770526757500045208818515573487546934235695298630960875409332454104566528598026901011756348640725833459335993285517239584880929310925971188330011449488311587281956000884135645894075215948481602018759116154521468762882796991870827536784996745627315920787295261904152264651955413286394589841831497075434554779939449529781149232382072325223743972069734846284656613700680157265738674683556756826532634763414482763010535587515823823594257366834147850612088368217569874555323872098978424220089591884032949485025400602534361027344299173623323298719450592961377845214907326972504648869532988013664264616190057868873157044058056349025862890081587576966093095632025894707092794601745689588032691993637328931505040060735439951695993630781741221077591871643855596282582064543716928293443111024397657085921414630677817147583956611912679204246087570607230981010044115323864491606970365163405557649684341616489454794772151536327654444899385687834894416226879316998037158317506271506244415636062991006896092420220748535702787194446120495232986385934057162903201868183785769082281235670693182494984244552014487044468003910813208117764818588688808445556487509339493527343163326541597359965669547312387524838770748227417220722171018125274229752229285744739783440731171687373708695644644558516741376070890184625989864135236902821497663553517952274220545144349404505853952418684475455667334088148257853604901222712260191559217861290358757951391490854756991163639263752605261153130201302211966789661705559608237645842409603007074721370841049397832812239880283435401920009516752636653317971186363335715782685124969826152218389801804148203004768775451100453916192543046609556301644704387713455498780785266164675817706646015672756216913221583786603554111007829626223669478207264138516028056956377474818916346915137882455625173307606363019713235933314268635196251081673414836373234866986922244834459359067320883763376374018028132327145844695764712413193348452532181240043237723826385206477219604872178803497516169483985125926051922617559701455722338040939015841959964294073589301802663344974643764435854062943135507040985218645997671351653667621469315825747110890771512869208621875908776056746750723853546185395629606471970421123778421249003168218346772035421649520973721324980491902889546502365526223737250267461191910503341134448545874594037626513888757896517024783158148230120835596145767194649001812580760859087332736900100691001951464133485226582286605585731604016365044010951702274379951873294623756256528208921336175304626819862322941683113025083898214818708556848625274300707986070954830236628627039779386200469922797418314930685405374309336594551858367494819794552025637168288263685031343967708915563149151478531222767740375401182583266200480825871598339436792359964159310204512753836914657804506404725604211190776392996256395294280637459260884996267133493999753242272103325932421492363742518095994968658949383599875840067401410661693932663097446956494740999856843559145707503426041883178285160398656029703970647691314074655322991873347008642292077231841728497720000192278585059071329951784234925668385709926151623116895299821767701639195028923066681015729886384129505328044207685021227313722395981595149343089265828959422344945995515501873095390783980053797365925102475132994781524481858659144445046503008688152957916571993817036058974212371831247199854307446503065267782346331672854416967383458726922198049717434487114835714829843717080847719011783717838718086599784313438863681214962036376767765168768014206295573081710181623519652874802435592046621547510654908112690442078466762248831732743034909833563541509374800771244131106810569485166697433989022845892166796613455035555318756813101273747225147091089357234309739855708119895473737233253050582644562978582941671302460667601754083148793220438772581149105046737928070963328002760400252001306296499102178416017277251303730400235620193557697697434387895680567751629846105860862772202630824425270391871566818470323883860149757506634548846117858469132948597010707210631170440330909678337649504705065380163123501757192991648695283508361465303403290901620466919793515309034289503554812510050892564556323274556072209908713261882254735843848559220854327936171217463434404269088314344302872012832375743184112803101670429591697151529174759603157507393757255392255658671262225047533660228959111120036335309997380224051812374214063521409317863883533082062966897452716437431320085875548133347926950973541639691302089636333981703056371489512219045227017498687268367918537123325666240159727487237069331681757773535905688381536534545704340291979047544089249335797511218380482891005862336617117918785386293053474057448919630466572793122480990501159330420980125961654279992334245520559538932434739519862752776821679233802084039913500846842276937505474063558565609309906182551296656173852723241563227445003548906161626469397555375490406293313741513767735617470181290426683347029318744977451871377901416284176224567486767543093221891396125960995513471284396202337929223667136239989396059341104913567056528537719958778647570624723460448555255412741105092433312103761902539227213489022357131690763790802162121993062447745671060974407365321004742781675958519988982476620106949776495768790083528937559277705413088299210337954333001010212770723029318247558239159938494999596489421869898617678167175505314074617404343444770278417462920433723737255747398858379615803853957498065602926187755009150363350652881587606994443249989401560977890049928273930148047829239168880191946510089648129633013595258077301132120965704395381982159478790232074976616698256043342226737514098267906678289422215826987864682660326350194070260360923555746752088956511630167118706059138794960410649752757546114235508800543868580084428479700755899799644183853360271154782566989944197457234612312898877105787310477206131226708033074187495408340204739925410430829045396067727555888305185147583505357494526465159231380243260942805458778840420602340566008943996100855284280648490270812258453987775109684820239006335683689172547596358274199627820145782319301387819049362324397135753531010163324206578976585022356139148429885192786330557566411037719635325485995088648294519330659449620813405796201767776656115311044719451466498276486969841507243729338361043965676098762088017534131561648987745632372819284231118559531665021591245743727844104921106575043953146238914956914056500495393059124445961298462460701275952793800659449245657301349251445570273710422793970639770977086060795677911753470907433664329160555049216081967851373696948959510012963292119057712157579445889297151319544215683805045413204893731031602541120548964680978445213091054060028897540440147698000158258949343778910247820280286583500175119059668317826871902051680162222088831654754574352081558808875003979729957343614355165800523758685268856668653981754647053400759397011344253982511136745267273164842439059171426553126815847185816750890471198690348116314682102231546574316170756766001927108256032210736809539251678487661544525141270082359288330885151471647462990186585663311071894037495403338854333583622180338878581594030588937149468232998766567570221248203470795804362857070070287910630052798789886924782254528061255119559414804932933639230127160408627935369062870630941737168371419881282229949155549718767394019108039680495554990003633012337287746815065001513798019273602706468823777887389441997287369979361327796947081080047411442630052395937095917322568281273506462575877195171522737111825509686201978567125288300748186600864597021837520218962345448418056870191919791767198646431259516771426944522338373887473829853516683553725297313843827186172142900167705856044121564173747400079503034928513228329449777953970377638292393675677080778157804046287501372262422788973240665630730465410243373339362444844637186650441780674516589572494609984150309559987337935271582078571493976463843318116836762113698986307364395965350620806647170983837358892684289505392704933558316251723686099875682518116967249490604170994675196278285164597400939528322506729668124777116660953049838529212138632845789277698982761717411922386058674930637229384072907745657937501781837939727828680413508669664732508701442090291952901492430522271331554062869597406711594051742247105280511551868284362612857306932749276134893500336278110370918443425670735061698402779695854073543222748179985653230260956447493117812212472851195557080612663991416337464251023294816034034165736705294842513694744073954750265885436761200343810686184746840389149189393924915661651520205467454621412810119969698159819553196142299095097218949875974152910956619530633733489485656096538178493086867569531321051447148896007241950783134767899382816055153229804134083560388561824797213130775494075931432332603797393613575089190948841082832392554601107377076738359283310060349509227733253282635243511376829632194548509544361623726279603373303816028924610137573568762219672606601710375527790109484340006216279516093180002582496755128091153762870157527224065306115690565646509148810690623883912985341048857863385809717034482080678078304807418789840392943300177497165530540385251965249210941219039345372706399747354594323493652688961458065421376790484983242210424231098175764228362483682058445731091866510315362862601308278433697116403218491256599978350279265559716793086413933087412114480391594833137678706690510306340355738592937034829855259162088427872363622628417530759574220750678546000525363992882258457294649720922241567248703856231541012007883877064737103702468957898777714040535399261202498966408861821966233471935775258182483874129432271857766917794301287299471578389420636418198172096014879551009140535669788080540601764089242856984489576851634877289523772614204146965545618408197393573027121833648932767587210067098122203672465671483357909144580366024415003707177487431579688480202204290613320831426361761660930368991629506546249270624389699863565422843689512479787680577647600323142193077679477811620902567099861504188304511301650948838285064557607211886802989498246100695744506118810215071073897540158155626175856891740817003076711239051583748639209460830227466427476109441400870194398111622305714793059285238553411480237509746235539130893447543495982195551200157436796735992317359291650754388948233440932789091996873730149622152709002040123883429056882659259630222618871406673645581209067793244075875020518539206663063403279628015376106321537067297614055788105095313426824997445210389185889634322751394317772925880015188876233001420474934747663692963321434264555313311942417357507642899134892788015568695948653969634575935083755336769246677533470250045290318868929199900097601959297989651688788196441276005072126961381865764083464874687789014061218595300597293073967323269632678987202536730359249057689146370495876146026302129920176406411810449381525892684494921514213866623305719808130136664086506257511823708421475060565112278261468631113728277788396696404969147081877823843297730363034613806450211029907265696441971466867680157816650469487736964749278103647019756219296174929389086300200164374978364827057402490506522799793164455492484581764662077657699596003013219261468594547604304037336778560445867000336265429685571289168004508844008861562491042427550555712109558520402068869521555963043272502119499324991533207505412759233567237496940481802959417523281838708118293406986197111947363286384882346413967215558506957555394280422850037285038532591390041079049225019308021027006274615452791351080005941726574292077378674715257888053575214355256647966003387828874262123892889314035345425045441311793588063567603776300766012690786823132225524496224676642801733909998621763530095731845107467500073473590313214806751633043383312833414428065966929693862232900658736915003843355408753453060447498618950287546175562265225316044430592854520932778122227245480453561430267768488874508454545680905404221578377469856208683448569024238049989877567755857023171510952666165213145940964526561954293685981127227990646796116415041430389740093297288668819402074553211352426871830885113662525219467935113622488154462994440785345426762300969922657045404306339371789885447280355924149058347458398271934160098094867643843529226565129318691059405858162059343889947117513812123401687898995671075166455176140035848210969122463535885359314611054425316057135411296632723069192930304540692305972257780630373137194070223895158838522979146719878809712638267140798229543653692034853540461635129323593972851409666020272051579002346567747136481015790900252185991044689699796135303541328708457666203704397391565329231922898421381023681012300560269117280737008559457083801784275110354552662745417693291039038946664341636265207784226873769092950571191380560796340656905027110871666755024157906093689254811906898049971736932863033304421326055140942248480175288727672020156163339700085174163793857542749574595603968041913893839377188079847064383637388122492172400934803987509914833781917953336963972093571941987171119184576403492272792133549151231443493262379156674514972576215474754681545520398281795411916063674176147125389357519881943144889421912073190851652851916415056506558436572561171818061224099166295992081413869135608158510645965900841647084265804680307868832414323890962248200983934576855585187918004865973076130208746301731439548821608054417250641049715101178700252935966211689763043607006195030807698253232727060637986088514382933303043710273995071810606784242874905434532968149362796505153301920369700915738004736480851835807573518193215694526438816248896038037002990347953671225180917790915670375901164449720063775549917457969816500293131628791959237801918825552949183764917554168450969693702654106880327696661711149516640899520513237054327289024088608476948835859188090524729462105218013360526790668630834786749128498778572777542148947848436391954415537140554942656162379267029070010639969094511307804355013068477134179920650881671860203135517590645062648460292165879364750788215206340325906264451380500682971111904201925091960109738565588682028084003025560225833809228678502075183675756484729809387088398859778681044274847318958216012598994476498264268853300221838878601382217900212112046743000393281057946108688999796729831072251346026966011817570505944250801363186777769962706999126494383395963515132379280608702988186976513385492424502544436571241270710294203791919622717163485473186289563665465415963833852608323984687459115327792443358890877383279943625617230106153206496406437652918544004754718877931023932657680421560044704497935436129146162420110730747838511826932653098731879797929810162100092176919061924924139262623687283970865515910674159208200307163396122075099587150451580911459244745616922005753383996185670291669194752240206674260013873190768059886986230532568453713214869375892695359665422296641832059120011626830770539375599346305640317536970398416474346945774224331533076183469856503870079978981512880822510691105447797778214075438168541952799562694587698610857786574928614116184805533556901501144423375398741351408501775641503247370458932089636388588183962190432974526518512777357473695636607671033551837295763601694411149517765849290690084301756614359095872600038931281931825016836001141771563913552898820522523255524771805066112015759302464042066104574147071100591483463182587094107964930428635614333322307125446796715810552704098621064814362144776307912313136467164658113271002941096642847851412383494545407057197353051653557672655392126021529133823721163544660611321245143091198495377020990480314321216549340127583246148562814628786468873231668731841125809783042718252402929560390685521127236655550202040947170827671586927701992333954649473705660906081296810011259380001078716703434167422076636637077590967663763642223541643485437807847552953303352640055547650308997376405583509580670697502032619509223480577048528766818991634304211923346621285679263659680643313334061140498272680410162178553674079115744488557974235483753891168223219562911917609329844956420799292269434472252452483668355272423131150438652419360027881548615653792660659449018488575020296578257485245926062614177737833639917228721682734939813072857915577153433142544040432059024451819411458553349390817855842194804919299343580843013424356392617371379100863004999372485960556086405438064433686822366701638940690674187133343882565116842966537510893084755734841873864440966074504096384110192136845882057648081875380229675264600000159038679570899608463666560932442986794444639531180312074181716188766650436377925262410144983099691042252266598922873619766911313285317781601644514705319120467694189433711167373304806332848124603064453053048126987027982904779999025053930742225992188923723073532399072361115373247736407868783657441500702804195383601754333082620130162091715993633080015945526630342577328220939356056743235119971998513536897721157076261786732511379965586565165302305046046393637562227132597826654562037256207090619220628471131133330203832229638838058773761487536681248554579450980332304259069537195619759611125140004340991065576764710493596934576241779255868426700746481724418961379788398588158500900486958747240009248854312493173887144380860298824565880495826582122292932673476621000693342298877767976322787794465018065442596859397786620320935270970317323711911882313291667097027690929465709273872502342108604525582126230179376812121133836718597299091767440209353570938765904399998402463194437209654343973756650475371459435630755257457010076153886014528242054460147152146556263923890779430174501674147419136649533097172003103554485902454591242424686452796794157488156142585338879080932882427985000150015604011904848680890295821401670196844183543442251740968678766587277229701817365402107665355334446428899809303514753508122991123786268402525787587252453501147413731322715543113319512664465985671260643200961469290409970531354909385456606628641160279809151779523299521286643255379207660904470635771462075074688042621543922328401170882900635511075861366966185410962702643044371269626092483453157131358425596348665683702589486207425744702319314790357281755264334124666527814295804647339427081798923993667391905385670054812359145477938987121387026850642115673606007802490771197949377081213872179772893417206423746573477038702767897144429618463977326166633648717330889630236385652928583175809732657872130031342941605983743637214878495548716867297566375381330130120231113047359250315155915796981132546156763208310136986760345690383095244527437647555808997843209936106578622099964540287540479737046271513999903012990967862718956854890780449663541100236212129930001148952301261993908466579486408475673079106547010255691405489224695861292230049400662088437040823174502603854764568749991515651547507152061252559797947019876331019768896697499010210379116252530986210233001600389039270182423067883874072952646409235112211695850031832246191694534046294838310657495541788079485482538303558686061777202015566996943061560155664495853765460958008154607263257284115361194611321269804389159781521689554311423668641762792897364760413344954821826351219818288706980099002084035665486722732708625065667716525677781532985702772433673063403037049202739843051267128880826902543292374626647867429075762286727289827452093816264792593964221213054416963552648349349730562775225013145325118712313792645605621212621330028414461840078205157509791856679723397347246513230715189007987875664998578196029319230177734856647633425171037126413782054874937856852342550201518386323607254872527190580329612204867451128826273190240585348735739231908012132319684551089292591852438597040831369721413692077384465232650468558588665720550882040372561126692387481320673195753204011989750311353420650066950703255610836419359378605617127514065189980766883222063940563211412050876567094676583146131642342250772558486052339089690854291302003864976737537071772425205699045708469819910135988570662595798272529630937341768354036864324982634279598273034655414810335847260193429140287990664074291592978995302288978863294412897391590555663517506509292395771172647291230319146659705731584865207918161382845208250603002383846410160678457246238306819948764555806711074091541500137668724899566529744909184442879276470953556887437892863514336315054049943748587934106115600002906496272057657007897127059348509979005952505221447605945981977303253478158408344279730684790967586612844624104958299915400356773097540657424328615723642086745658081358834439750419614236819520990313285590090427176765438278567544752550367084825043725491102509890242888584855749871721605697829445133603954832800061624691414124241270609163281019011997897802016686814272026368891516733797719217057442043929325723665654720132461432696560468908573017708869181418566156678570467047680896993099329420672203410824781081729440099126659433558372203079006559120447253260999547680711324510831151148446427520650911768165398475536300596224332989872469693260324272578457408101921241859988602514252013306705552446201476685442973796348131751954254717293955379296990674919271731086604500419646110496446734067936786146958577685476751288425360740987699370738887775710949061145594722628887113515754132561128304104208404129124095279398840672229906717976596816880063378943412272654960760216761078653286319085885731477615681639231568953486168623137054206587130100910724742317998079647936880131438585912386370149764558006224436836408828689033201393356164605447451774013264122949036524554347373914543796623827848343838362010767933509599880474176335132264541570527155534042134580056714869395512640445297553762265532105408574324165421477555722213671503689759471807718302213762660754027613000499440202061393064930952521834968651057017275951265620426855056293746422426877116896754739526265165085064227840821260902535965168878752369833718341446913412439823563663485998714394941415305045703778922264688153796590531842612238560847780321568559694863197185178208740369089031507391298822076764295762220192984108077626758162414132154201166521755766933933860454456856899865607191181681511392400455626815883324158725429943175283281030572229199737622363647818448781605867884925540604829182003006395129885830302218321968511335692572425369476303528496359155772209230329275520362716205700281287521672975741232551215793718720084728662185657739918100487031586903461788488413068131879865911075682364315496456871848098652546161146673324671328393105238619778083463786400166736654793086545108205192803381495174726754509289684269010744739601645282884775375067772276504104028218092333149466806554159175428739639346064964157766237940617015277755625473621937530705676117297416173046862228734599832268688315628326665305658210477225000820864042160666976981642870455551216508881934098306525907730369839058394997983503157144136218515339612220480286049915226856993995846000826177259423366017728250697384636321416800397269224281163073060054358863911101221270382510260655103031715706645221450338190437328667722280625104739077825871994671321836446617163119063795895937220427211531274049099750184216610847409006641750026193704408705326776739096413610477894876660623468408473657999419703844714074037488729931050313052480906034427208835249276304000952328749429974375391700806908538789058223765919197600333643294820334791568202170634592220308666345175475785145290752813034150964028612103727267156879679364485524025817452925784663585302750163006261236435007500770829958731645565402390425527889176146464721238973011627131612536208516300421120748740769394263930350503216877398852197521493853303048032339221291684469456917372972442215591378216388101103334589871071923213330609582066312681501427557343329347948451383119804496852386549315686769383963468913269577444385695071364663694202905103080590073575628049333048210732678396781579747162383901629119152206387452917689782778023568406291678739952542833720176406241437809117870673893519964707274317773915416773667723205142009829035017267692297781134418126695210348316950359901569874665012986408502981048249671473365360270124318909047850712958378646795599339405780880165197418937053441367949311839794382890143083754717340108449969771803149207840597327935912367137873768409977854300364299191292146866235042448191073136650975287112090747764636588590148195281825962833949965587142971601036579989876798256360735778358841501375907892194251040654740425882306681201131821293608703100273004908884347626393817273029645195107863917783655920579580379010252594158366647061734016857033021957142612776061976161290953289112936262986161316271746058908604455093573433399584008433821264978815505026136832230546387014156411282546681944138705055484845374382918828149402213461441226276325661492006285096895594182403262927938623664079340680275057696395000660582631071058090363622720297143849347940882080168251979456081994660609804028700934955102669049656144215616040581454152243707137830794372010729921048135434867824555733972082676005010475459744909120918623781395424802311345646654667242728966098415736541228607063729501390973825221473279380164518566963423309823445206466961527566586688081214058845095928547049858165770894271961330052900146556580908484220768005878405261988132447506822791547165135528860066666979666984857730198577877208737477156297727003427301172772269975272365101393927048820884743454989597901955384155540874634869833769458544754998423755061037029128916153824079426013510856986536697053662824779893871588925156320110406542620955895864663370200673812703863667646333414228781225844030397843283146010933819916802112303676480778545276388512029328690594016183736030895813828382572189989670380418288044622840443853553066613071242146493673854120376871658892860811162842312272712758243920273395276590247241185960679916761127699261272391239372523771850992099839523561721260420125348060403504558094336613363175533881369150445792800845719926551341536067378559479092334035639601528270703753487174864532968173147099987708868783491160178186434700740858516837014598733502376805710221174950770691425925004595129053012690280312352757272231122008633934080776030624185756438814941401981742590924198410333674124564441271322687652472860625949562259360506749280855432568803910351734918200532344038124139261484311805356827557536973354385629890783128167140641478429764819963931550615213429627607972708225881430729563358062131069334819765564385208195553586203913675659716631160699384073480376119792435605014572479455380546374406475199911741829153801559040233045116954973021760546479309963809478144752045026887806537093540412344891733035637196720899000668923878714999969694849288330521993119313627918218665717014448574581242471144854611914668480468526275809385405685852545591275832458525642654997359899335325211824280487249748738962265970829619643718430529789863381662612592774503475410758609725531825665985784536013234217950604631413788440618405114835900729797159071016640937369597285089743498569715904381959379230440820444878525948562225291727100786531253453308161534709337355056145676253342664028554556594741148551427992891528923782061386804622152706184655765743224813022251319191210959303380716725202371333642240069593474759961235942208400646329680825529918883258824721814176508492652380615354965797841114919492255025135498011284970271476851310536802667137358457265142948043516923134911368348437504561402494568698725110147597781890241867618624359275913821170751501113881232475868108175062387314666323502147112553052960728931510495515022211698761831802653930473866321703219739632931945398501921004625848791669093588813145009572064076799560237141460590963968104545847031752079317592943215883841702800402448709686821672823498527194993468048857621300257439656478848253082346335937708851865232135215645651859944912484468511774701952813898380372599992684794719240944608540014803046053263763481801963067222178304095941953934568243178590568298481169314208649998289215816619812460362620207126471657318847643018417917752712553502072710701961081856304788265665118078469053508887260027388503682912530693945698000384231376075409094288433002153572099433739528767210184940315854304827495119161557013555850675718780351852428779145208166095417827694989294061216548338816449936603443127931163504070851345607045747981555611862717588608371769583070109464997504203029417947924459219798937904981497583028916946895535892562319325543784165891817139566450866194690811300064674269497075915747349095070452217968474362513565804405925355642593247589646850379663044856797394873946803957899569742631012790948925990904535992964457012894363243752192226436951182007516172965051536962591228769507579381215884537993006224936434836171733824940807034313372925588539688782799835598570830986016123575623368116050329121212351404048836000773402407313087269529705782863923667154994348366347057734626079734554669047962428048873446940323910791311003730987011706944772121884588495462912873770697337393173953071248431034651534979107445524139850167377909242048803198217992947930893294619090840085540894424805610490380713254745516848875427997801965777842743539961439498296655938791496031188113677952471284962669046076531780509708643375316995742074105113987560750364049047370987906054194460566826404836100714214906241617634755642372775920605526763197164824985185008792737939458733920628541834162782634553300130997013955085974687726127558330122611358393244300128770341808452277191037429739155487866053166927229962072824863749929045254053359552706268306817951494413448514410480538311420536405849601829517921067448407567167790705171439831648155699472577295716080109625939977262662925781884018824331789052996269058064305802153120884533966782098867451227582928059726644843930723232554763992109917147169915717962986883134118329440822123921954034082612286943184304781859628000502710622330735974799162179812307571377804096868956079345215430340652788347340192379079589522813561105692321158634120669427575013234378209516659714357464163976463046348430648134558169093794054168523715540370626284851680035123391931928016530102742341107850719065194504038738657424999866149647807802510491802909954810693969143136045275253972695835765836586143054854788489768146258220117463302236740153347847804232360089628692479155433193881750937457288121198278986901883101692467607491075636801352661094650268917782932108975611651217381187284318758337061165920331146298999381441533601822093064710604253086364828870512707116603827043265265292348170256776891783216251803418082975309457969027650233617855011844587370946692394106368089531501341743606214405167358680197520224512258937557443544608768684242929400643186340995672910019642229140029544054213525248972572999274450697375264525773619528742515063849284168947253162541016925673302439595200468524745442737191748991354562593486390065466592657252578142313476990342270104919586758588053616779580522024890484328553548123876603041256230305811656796488138545571189165249911465539789248301964874730285065542056523314347929171842949095935083875077129004779660429566453481614637345871211782393716243985970816117432448338325487034715812173828290243119299168574428395837473015993871925664399822030269148159417790135640177026899483209010775741623435748584017122846413561328668271909038659007976263784478190765328219338263285453840379598328177053810560832454166942171354551204179012273313680976016506560137191718158583004417517809242703783321115508215925011944707026441577184165696340546756137335550509000320323281473099926994620360457078116446983445488311060206947204952433526704356338412553558433707718815467057163042190245181058916289243316129809389612853300562500902218628654135848248284465109949763522733823158910882006253892478198756517530358564665077821405620529467881159143781801425105208328469669975304394656398098750569635304833260399477563182898756153908633673948308300842834857225891914573351182341540569249167865342792775896443703611731539921476975243937805832528751266880916997388813430164432204627434499550079068744827201340630150367866430406805008630331528342086729967023784116603407277602035681308684821993279259085198216709246427281783558873272477963285803429459955549799689946328890453622705676907527778656200414353577320827323313261682895632719230138212503879295727688385015677533662690191666931374334817780660200895934415870669341523691103365462184906111189907882860078878130303331162657997051470317681251264670877969569600031155945718368371667933777907780452830393763481452164685783957018767749923870995665866736164840883701604560791500067873973055011726847971097264438915774713991945605463816222189371946453457543613190741451579436298695667876495118518227763788004049726916403653741544033123648425906847608385587363028268896993579088015932410513529124240628556888196194428959311544899816723602279406323347110983511009326569596490511393406083159064194517426473978338867102489559242911468900494627802695313574114995592039612526810137928026058196005796958746089748040044149958413529961018039300375510405640085689959750570324541684278392872546952927750429679273904330686168853183740038165285246176774289229967916997905435076810922473371992687911647698879655415320172675429286495067829201833055265677380012277434957806737522283022152958813571068165050737612838311985315694137542609513316575278767074758558221596342448999861618402499684139668101776680201025150435743607971045323142395644239560831747116114799268884008501948316444157904609484754050028256776039734418418973691190386647405600586556322587074712341986084772260694529945003814736863154479486204523335756274496030895654310482092900342678509508267470659731398300262190077689134465012465742792851819386117931857536851020001934593181172032202562051352340869391559605716627123063593574830087420591996102928638167630570524920607900731360596144997872711107790015111267331858202858829292851638683690903812439325196233843728423380322663719310539466872810388193542313317684528573888773384216391589193801086954527156947917727455152839617035991031563701601169329001963745469419206728249662011973188065918199959320366473982211179655787734516184560843497542799614302434076149776241648140712397466696083669804602101142019616907238357876466266087678030951767914624599093797716399329901324598704937808462813202369686059577715321874263770223366220887507023951248577854339680512433761195782348087202229421273800452538955790706954530054083913120594983816830531000794129003999184396615716421997142736249709695585412176416930343752834323040982752651188530774352201613141476706680333778743221825751062615266868674488591797713916548890965657516501645006690557375047084207135785296115791861599525017236931902070349857798520473299908610621190662719486544606963369121308750285111112620590998389056089826653440872122468505371273181493524603621236949774967715547552026389788352975704895954629149770760785796988934040369565861981287825549191538852945662899844599586363468154650805653743186489283195121450901915388561672803589170357875017302391888975110550026505838279249013240510382538731946753373137372275431082192513738635938353640148355220474891259721501574622023468612341305291714416018722994398222763025758682101999120430768763230198605146986187437368868709100596625914965208614477678613140504453001879975227680394316281675019256875394881620306227639390915564328400708779493660010270564722350643192292871280748853361826876746794911012965013936010062801242995272529787313958327970231427443347236769062983218842337085595849902595342875766775697716274775120531238614257268378463963510670517214668938695932785634486745329914157935184171712207495138767566993212641546062531237949304544347392190234552762559959153250516253648423871710252362231801090431089274311441370183331684322359777593857987437325511616502085336200657116236891793387326658284069202561038757917972915525620837229100402849327151869194011410283177042388712354391121095484624908953903994059977863414479079861923747238448884147647607465287763271140385316539855652401000974210680093633743845019891126282671121563427921827179299177339319918247520689710809001046132361113622564896130661394399453761940347283664850970018990172074235877037285800392809226214934183313247042079105442495704234464167578323354363044624257546218478775151239870296167441312082444072104237954037606309206220341275994624758308284305032190738449736474731323465136470656814080324029574065923302520105570520563590305283574420094859438942751472256081382972641555653007193271284500193459691977598554016456235105239322740584483621736113031512147586601616155762772240924237348945806283310978584911385350753754546019132816855064921258050235385325591214143229004761652274718260121226946465821479798055289857837041659991217761035959567340531316856853975658630744185809730170743906924284255469140411858965758772369707041643698070014276495651900121484713771975932437389056336866937559330798988947567506656311875740371499596031863249277702800400488557775396186451152628616878436987365275869857300967430812358568582688989126898424408105296881491104600118237282160492512152498070383666383353777142102664381419620397914533245112583072812848310834189615755666466340228092846195053761445064525519968985493600175851178664781450308774841747721219662031436836896891578116716579100522032856955037471096100247220632692407240460802877680844191093402150775589335848763548372404381842443361729527974061651371824879587403045526671145709908506577046078138629357122832565526043080963538345836979101816571172281095039580089468012574759161142999117218525416558676153420137278498391654560541726536016526731980167975258034264185743289946914267884539998124791332400628531953433051472148170043925710517010513646226384960914812450287164802525231375433780040965733029337549385634611046684114866215453436380093786619498478102155937450757037813365522290208110569643071014574531831215894397507725374830471010233632393393217842554645613510417523599104420497872612826562341490346315701186663247267999451320869811295967919336121458773758906839355601568128261048299999594707367411798413613466382721762716938991557448131550179199256191488467322450012500833625729436759304941224807583758745152480461092432489671103424224320294970131566057692818100421879631285219157483803070890338615406714822472495249477509644551060254129417180941022397759634002447304466439955820199734235538702534005790306369264685192542523963535045637096504297005176920436924426613951434525927073597175229537397301733075090438601732130983478175348820050199920445674432011004267803376002988211475854968915394603103059973089751467114876018242504848861218222663874217392647913594569184845894363357928333114283691807280032613434938408234075096283448903962313201236262371276504549687843047206830309842798661107457309097677949301418858847427097161206534580374020505410917410510196712381529538002081422160602562897837923863380651601821168892464213576357955644003717835627320349778482404587185002690289312752748859291498014454027836007650722451292334768536584589219322475814237024954573756076227494793419874239910500713107337691396628051981506227255625839203616563701218644164039421129089456487228828976022402948245727101108508709418090037309460972296203471277663196823221136167320095422289952261569905199382044893917096025603228597200702926910128954418450545007710317498796522665364928199866508872178768727524989626896021782094221171785890801956555161434809504252166135160424954595019181715537255524802488541585470125319634194868464384410634341266776876613671088907406473370753728369124690939204355950732615336722549576644746032250340702734319071639862726861434311738426442359590665455928728341149657231392305450196280159353716351877105718860387700295963097421618962561529433232416168875462808334484989752577879843675744411632725786282072184226922516390222193142837292709757458928978761794386097147333569468351729309325544542029749155224463435992569501305472198091004792304380526002480016703501526066408431507345959602342125181037922789216722958485308603567536330748336837164240932063051901164189842769070799392848243983935205336194203559121774361359022550344345217885173698595684018306932395784757394015148204502014856167818994465862782844222575271435375822999683734242045823549825717216152335523864808702335449630695387693094232712860819337498155819233885502617205884144398301264037111998643773215347109791074937213463932805725465466062075636782241262791230994513722171441553413119271275878626819989283240936040474793648126929541686878145309487239868559741848946972249889969555766897710831178792570963519606026647194566135270226687814350513811010832143866117002529968358944506229409380684009615837093373568765020462320517109577888967723632787622795573827664519256177826230656488127265765944745789662470532805328780585316655732571628413207815389752743147738069956354111010049802964750147540350195790386846914150439423343525713983774482383607853565199261373734674951086798109410916649447819826577060986796350428938952155117451969937059533906782509933962038429027585013492357663200935433961117938687355140292164973462919219707153088499016755083783428304255081908245652484450919685046640372797689909414819950899037417753303864009170514632484126365122406656383600768858600943887374590422686448689148890307122199650396051329771278465872301477276316556285907102498213502916865431960965717984769626024234178363493392919132642338576246055900241502030994902794479855473160660503239537621459867428364772972778837473771322395111041038175826282443802905375042066298227215399754171450796989678464901728978271541467418454983541874148295228362560115589562782697689002987610138261055981321854026238670782192008595946300489099163419412428435189538632697478029843634546870701441756626191674701005157820420880656454926072744916431355570547826313810137954700581705961247043783611406512072991549716140009465864706440822251152989928525469901335070453959223929732091030909577264469453383307835837650132497445682198302003545457777753486197527224553940139978505287892611916932589233354399141304766827645263291772603093850806052330184366190790051067192238726012916880535023650164961066311741689065692302112950777826305941299820065353272159611701699243785464259717858387166827732964174801124750187512689483140503484456160265905932802150798514130918320905375031259341154914417659196558724052400971229575468928353775196848585086756583356537342960476607482391253531194566583591471199666272151339396869666423289991395523806344915593846591810788939204294821864731853605308351165933623492326568090768226200245291493657819051882288955574343016822218479330151883414081340088508232765283781052302285111037718552492671152133015094352181365227595539399960760920050536383074682020999696465166037533337212648481814554342934507380951500362970592693610325987390347769407722935196096849773659562980804299692769566271127826636637895161004432647294778225513060538414660290671848051985313756563215725928343538757198478361850459935893654806357908864618131373820272175759281020181088585157390856527734594472266927100190561309628650764136516575385466090906569852581653231470502300062342245834757130504281598738448039742929579720469255125667524164642185148728463934433527555484344480332887155851796132449008736812696979242065610489421918460921068810032978098251730564129696210659257033067813666994665430333660660550814410171084029613715767683555139128293232439169746742805326694629679911429593572199228151493392509889482422102481074483473338967186486619697301288795899825403592618439985689118152758706838854163031881248299500136752968089454442473320663479162525656116813093022595311394219411560642930432398209090252928928734593789256068439281328576587654774257637071343076115896199451263647801223574723284618401049052989228195611104121571879780455026800143226572422374735177570676722389990824463642513935635041169986287327545890295742225005260825879639842363198816145751596704754282015646693057324280724676914222337274652111199359834884551234147234075296978157659278738946045484456375265744021322527540372320754399800131129595675464494871162790234492093317382186023554409002051864490019980950984743676994506925245507997218671659519986332479838022652081818965550624325109162439692643481256948023002180431661009816262500608739437346042420216901577391918295032005962247403583724678911363368181067256618522883013194118029999548876844998078436995475393271320921611670978469606995942558514214675358841651460301261362655194808687308064290872524636083139031599381853451921458217537505119173850738812729350294971152444849395261391705099293818114182864063262435547029404550581680970307403704801243307939427575876446914396869944560322255495514069174162586473696542758611380036929708126345324100775290483726956929483504575545110653012778380948864017261757092705113652913418273096335797189523623500364841633960779976585486119439752737778916812457910493443325449876892489929293986796543886388774576718604987296762687046949796457484846212003855713635116591987137811218112056827444905152647659603080187098770069652662559976141551157257359320403205470798123266848946834200548291714576376712839074543525631210756016498517021219800784872509697795131857194441388531835854615910783265973533677231979928336687186150032551958963470522977664951544538655998174163809104055811233989801528227576780586226050244073363200208614347148565785251165173971476047261974491379571626869165067658317304924589429765446061815225838400235432029441488390158292542138901123114781593087887706127003484768601805736656690626986428895437196230187752684963283266855544751459622015573078210791689958409940312510639276840520782723895036248469582564346414782201500207204508735297428193895266848505304592101725083012315294970248995460140773435259772019519765035678599038707403258333915170275753082719622082832842164608598477001856724618594572088350204404310995018283241902278905495805298177132825628437222161466069223488382039336962344168884223780181586430145178559768277744562912060255147731273132065212694178249336104010055711664892937718660697234520305407353750293734110407936963288912202360637543936221108405760997278078559844182131151525543103327199923752466946585452329845365927317561717443934865205345649069169678258517937411149479056973260452535615119558854054291801959755730065435875798935496567117591620699967729853995703983798571361612350381043544328088424349328199338716779700719286598029376268501458060876375028535121459079632886053538245088941182081021182475461557083152513023459059051044535106872094844930271883066392851839599274487694199617155774754562935940054095049985024242762218846411863363813632629607210930413231903476940588301735343753963424509948780171163707374117817876192791659519005004655456205171811110348843105797668029330336352730337456325635074439415990663552298984207433176378306482393848004269651406195123423633008376468450618206608446748114791391192001613253367875504677612851279897237268283651919894052338531640782463950329325923087783605321581563455587269913168118250349198573983654082432419256718506791455286038703456304694005856187858980131632299642270207158082521928304126375850565930010884490764754870611031806081395541840904130016202192171886022412332425715176940011218399043025941734939547075573079306166188289692747824070742149308027143660315768215246015671022152178361563974812799571538061841864219616387028151735127514046644857883875116170179026701921394259020900353224823129879495713804412905627583308001625336452872142155883205874904541743238216025473552558505961546973994576098785457139781783722160007420530432106300752967816204242657001217048767004460623092591214272771633321398162987786667245860648259042846085865621555368440737226431581040774808779369972186070539958976473333193076274691942661714175883297381202568605886000435737691761323927657164631923635891311397499213022848272968043527082193779275214490375160132060913394686148966477447557940690486858119120838603984755242718283955098880943351347004935800395821047849222398554718357214142697047584132052851092492241640959926034488477832486290011777040222887205938234603103245506651436418393981655166134101199795874674784933299181123680530533685224327251167812660258723467963288817662444810980528971136723145829478874450924165806064669124937817323837538165001415231923018474865791807804689535135653587517055025796999919813652948585839436790092672503566369655840011854055946717283388407762845614423936003177031244927787465745883656687096961455340928134338642483071352718410391556316056400446255191366267234403163785370587894069122121606166937148417359908844277052961828138682935347079884843516220788310328374872546338391509196629998799342029089873808497883394271205813064337840894794096748086748831784853897117446592177581459225806668364352232727913642924035970456562196569868578513298164812239134580495015261998195790672903076282458167518962987161081227119786809676706096618184039588467810177119617741666628181257084502716429611497189001760523582023642694603381561867793949439386196126076552396560657157065199669498883364409882287088767952303983327160393695490286708971803453829857874077542065920152180930928882148343687489582079888983003400111422877251118591072640617694072589744200507444473049510472506578522963881941921701030610628188897768365358552128055683122203210379896375949882728663248382117545326806632264440027545384290217052988006528705020045398493616702034665293413619680402923345397231647098456887980560428530279561120423660301784265924763598170721698105508839651460414164122554303741435469750255564044571878291479951439595185862923952601015803015998432141664003492936710073191870122893156443086463974627351210410900079574444972334487813398225190656435453012145580811627106570993296439521261600170679154879747783407684526587293592811182736290559862985595560357771804054563613516318511478697195398551760726706722493686353792924310347432054707897037300975305761521123367113916062139385478137418316940816281192154212691771213161821003273386255875119468421783055758461293061999894027451752757083995495785939072382454562588929420882171637396794845912378520554569079779013116740951507458671758890900129813438608337405360536565412151793309337769340607517249965194097248493347942765331413392984259918431911036146098089174440146549142017823491995237955640729237724166083065030382444819535445265790605960214667100459682105248514182481381248201457343170359817457487319527383896100827191003396306748078653908671437950110551666697533460233788854958198246086185208840152490043812462883703012368486890562004014942401977408868986185636662278942741389361058871781591908780440746571574645844834492969046617405207682615772514205324998553265790358629932649669250076714899546769313858581663708197561701703474580526862692441200081126331489562119532180531610800023729401170037262937397564697491310024302276708796815741991142407294360102506725105239792221523904150738000149068679870283582370670254848030086683039962490770292426657931711025163209627135038468815914313110933805134965972393883999946240595891164509030579160236352684009221121551021742444423631505036502960991601974530181679852418144081443598031181401439008925642244870781411459499486167192676056548831611964936162305277241457922791232280179162432999352283314260665395779719954293077563841642160604042649989048436611565864426506617777477412108594664901248229813275847012216541786760826277240898921815596752185236920548423440213059712299288291520575536276897177326422580620320169056344327720943113925968749070984471023294091768574781626458254469032372885377686115218136346008577913151427872705464712408460958875773824848320848219200063519693079384957276687819979003145738151447101272274337677133507475670950648912567949691825754917204554080915420314742589027045920916959305510370825907841668493424130036054455848765244483012897977230259456685382271679425118307145269643334135114693531905187910849203645333348931930576802158315693508139345051438631759135238426938071158234682414449209224861051030216622412955601698503497969920840504942078297364651624236506798562902559623606856004210891908423443255121536105091395214200670581001553485960420125637644884673784139739828170257870514010385975198034129982360800327982776577489123666073204094688309923033037829809157715274850386218219023215520855792884498730280824322575576769261490925901002220996149860638894587275013466354573806709406061884437445781942185254493913580202860713513796469257341470779908965545332675864812398197242624728394860233197299898215272217207630981081296672855032130742967667703540216295544404210399486753410931299937930362836751557443356895276085374077078785050248432037830153819228986245844204296533187954041150854885913353496232938473755323845038642236601412341942008179542352794609104940331125684273828301447086534071360035903585898876446005689073123704876500083846410518239324559096270446723611573608804259145227751755340211345940607759960776547784726733427538796782460808459309100371694374963856364639285754660593266139506961084367744261087438540521345234733968632988702327487542244616199431198585506908049067942338106306486705108973043473477096392487337070314030451451658484254716154467174174785261361542668028526841321253484336381844885504703177427238500619969610112150354695936759143507942418972683141977423273884819748238203124050577128619824078338809266091539424312569012889309187700242929001846092373630069691313927291204567490323491289899126977249103639493098773134116036529117615666124720413089147650827164976287178308089793578304724496842312720199561424720017395685937327912792398987114082567683264549585376456398427612629921678064630171095049735415776007264581859411624726523696145297991357577967130237768604678466802257595550798908960655154530318835239358074168921936115500104045409933910196147341114035355808270688993517987472360744242558459609962809673946938509135188804780071219406066675431282022092967034684024876178655071824915263125309421391052161733716366479829886086288953653325204631749616800157163370633653255435996593906638823994043684764810137112922631407223907068794420769709251570317511506725380178620232843139188561271101821815397081103371715920777138788491328570156924078659759339360916851536718087417662831933207536599725163051304143500017650706729761800779602193118412878484800880960688434695383084724990487314597768270132031129413241185374276500704443455472507568033477127338755200454289492107789995788550509830775223287591116603912778486009839378049477307826865953300295615716557112887618766286287916236348662700824000600948558493221996333559484960037692351582564068189420983952617868932131770663815375566305738642268177379516608236214083206225625050037244685119156761610698421781114696811083730752957218212930072908673007066679642882830614449667000481263070737349560905783512098526305403710262717932916914244919320737800594508901370777556832046045223048741172232442979400246550277211058287618398200897742333985828945003378461759336255039370869311519734329219253404757344017642564968824336188063163019838684414748186754424679976320579380852792306355865419316069122047002602080540022550652986431096256590525926335189371768920126077317851618719704925399499784258920934829026733705586903577587512431764843659318656019878438255022689315631678715077815596823451581719844279119260874553896987986104544465334798463320752782386847598625460037553413094796826546559679341818125516413594085097428830862685905100649165526580679678758118914757672671097419941527357533643102987089677884688176841782473963968051946821775282307559147191930716185046193493957790286798723340853193321314344531320193639195855489472572002288068602907721022449893137337496692831384473298028853689049656729097945756198777482950591170312143125997808157660020117355628799366560255030093882560164443304656934588182317011890305357482114982813749885815562860227899294683985155236332642463931003641486350011795411727282158641655970378892354807158953526788914333551359543134697769945004574797162309571368793648573670093848591041929760180445074703908301629106346840552194374118748998140128452437048258013899481559500042328050533144440180946855924441461259907125721451666066194836703525797541597698772784420082366154825768023268351184775584400646249219046639987386919071029152628209159100593548504983795050119249408812958537013267090375914998892073868451772639685036078679503677104131833247772413467606138177950895865513633965584152671954464296971201367696482054550588921636271700941091702556916134474004023313771216833821754157578781295105673939487179627027419359132418090592554466827475645070430019639536101977866432111257336825290238384315116787157426621181071125063730081709960951692423815688573722077253852227663845491285542460231283061713063547233991381238438696529485072544553351152485664385302027377912389644247253245106177075627267999405781270955166011515811234099668897375237762527859847216414128718739048613928824986786219777780235926412440228203816319026266442470594430210303936827212688614771808958356005735845292005905845694846273225037869430153312009837633702893603530770904226863432840500408780468390821808210170535257045808337034651101781532553069384302778701031824419444083315809869209557238641868582803882529322178693916385519244721607606126434341653716312865428756412003549011554762911065282978687436297722663072826233131791824124388909884172316864340065292776436057667738655149459525612736227943755559788587611976756676017001632925399947110042989906603915753099710403596646284877825806333275363761586465560784865204182219611978600744153178370263819505429346303245982490400525866772488647712140500911906989344466451698147542150742899718700959142988124537699304888497549704255598677008679842071793987366698344731599490638835725165051536523032939589465511083104529110711032828732366803505008739182643914005536421764648453625869118685682075885668954146241152272876737943872172127583224066661451007238101274572583115244733411810185288115352352893392015352250778987873524271609687336496760414421286803219977087951092850381226929129193101017169072550273923780221881476594498797565415525501368502639136906311827144455855475899912541663569535517739674864346870272002100743647416994408029348810729844956214895479876795960308040567201741791774294605960610581142831362815785670230209384105712730622569817753347126686214990750199611968261331625292455655216859632016148889521141167492138718222592672343268835138512691035916770286381434169182489056031525312186460085733541141016551737023073136432923299730523260801358799853735181045667668682396698977208423418649211028861413242305309236490980023404983168147848210778684207643182408567184600359183885259758860551929087916430821191591425504604184834206702413521198015458101421366929079525578974906793489064230746061081577599025130324468861196478325981653074966395059776441496858225123879095393837436291767403840370547875757557257234775580341990269474768401522951865181761471417088033299702299761369796751564105154788882296856091187034101562229718369744647164690226452404801073136520384644351611739580686440874524024726079313838156222730028885401457956978922613340084868628543315940616225895618268781820180312002412890484946269767287307251142072244078211040679464959807943836265111502879557995958964008566810567362383934559015106596847063539858251049986409382375817243082943893956903762367300182245992504005943242577802698678567750253313526611271374307616922105340228873755630953076479832737707516046081673126441769136663518641657349062718741710911759474570256764185339523251341954326191059941188900403903642587395493472492588876151128403477465221277004240714350394965362469547519167900671362537704240555090105665541267055564101694538765160528843808411501530388710027250586623648821439677212130424717317547345834831895967685543050147131946160274373316969134967734317857082460719682740024686740963791969357422396402835820269740089091557550040613359794417800090805960499021397177436351268279286438431934976927726509145980022141107914525057530723384154772707331722895544979573647148162752262768627867182099692023384402786950289428792674005610143070717044784781653045834382202297744280543194957382291172628800345954867385492372737738196250444172487105010686179356136144498832859062375270399702806370904966420452119213761464298548723519246358861893584838739043526510914155272313761419261713679045209676949592372166084917599222001923259066699526205307162054635137909967854223559325489026362775390382265478302359606205052042742819983522839808414833035886790621794900510897479579894716506638214583953620441374162199685140716767252008489283068975596073566900027135390479394932411296394044837667841579652635217018578106824085395154878778426164619159199644439985738805337398996817698392916642729835299132158057582497344479697487868479556075049738887928181203113658326164942157424615749462017142864994460031881971812778257169366678797765400501443369348231729618056108027241528458069533003779138087465443207651212381751201056466307154809840441695780109460182376991282119969080537684722007237866785145969506302614273589059512464695979820301441665407078464561040820191543356035222340195728748375707238596954290270826681112433665775152776483934744760979204066561609349106790230809796190170835191667389824180542613868420179600073419006264941992855863799323969026246580861985668382555114516835745092529208157426424973253091713888030890599365065138087500240017912298983941612913673752572870537407554307224623160583161296216527314031992372758107048505840614783059257953886629586664390434433256359816644289407428581505723354917589971032601515274958636201914271739620973975915426570873656789224142725270037908813862417946538739809991160664676643977383085965389499222851477758702508136165412185166986583971291713296591455592527782929095776261251758975501263002065682577275860959038710082976206474421986950646292399352856795131135832234012770454224966029384164153845281624419719086737629898194030734715810189154457434837630364399314005327113660570544265901283242969928013404684646265123854492723524970460316283652253075249457063705695889764935295244489635877162291998456069499138725803610376391543384529828944098539644685042231704942073803623020191321519825668098557512933830594840461019043284978938845602425141812928071679827586621581304407057431634948880910317883004435485091553139683008934560185078953205226176798186932969831914216904375659961576295198319294008604778726900476050144316973500426760707844237110758968797242694068005177791275757390256581168863943574884399678788139028191894910176731078878930169748034346236099099737748047769971443274584152398324567935984984431400119983816886214516341585220630898222617896128610039685035556037600997682480659307086064323144862379591547759197182718650681660939790823039064580382261454019950860664995219098839159579688891952929988619764519199888364244151574425035879487289662763802389878131200242014070904184369079605001876830789475297988867434143877262681112677425135492820186092173600792540975871702784511285383641356231867920319552443001333742112092376566399371269893391949548214889240009808100935569349988698235556022276368893279856261421148104801687575337154971436655395728688518810475310822744269163854797402155508745181983011882194050660226356636221790890588017169643125620374543879125900902101612196203327427035762200000830602627790314207577300595486753704980391838121648788113683135364375042499624396584127718343588338145733853299852067016552096564552589223683123858072327593817269005088689670507584851421215112118447396727873843382911387184736795142622510829250710692496992170458837099780718814311954281762696026607896514037012968147773196228016350101157287117928126278355806693446643440593701588470005280009965617105304222427436988550904592623811982662206264911617307218830188548096940294370390432529439757504220086017667234730690229927318086254747518606466854427330868696493659381297175915373092469860148794074099998827836431736093083225660036743114851848455009781346974913112497588816759255719474772055454059722225795558283254132773856259644073443642567002834326801984364667268849895005599284869215524390680563193056585065453424347420418184397643463427560057395735284341168200406306842556216738548140525505991113366822459967340577829578597709738649951063414127864010242462210593643512286743359215002242808783507971235970006693327691956448625006118391279725483153200360958255229302965827343556448390171646198028922542700669820831352709337014077189448428722035230767537776154473396945107432140336044432159986171786824699876222776396589508744322025453669122820535278370448925970876827719144998025197188836370943097205835306082613236411961138870489955102088647705947080709830084922389332137626152286881805992489910766583821498086963843567931432775911496931839765289480954648178113093631907741070769161364338319420710312788351182794587919096089521434357285222076631145441487490423728103750408969609449708720591323994092214511457614765799924080616796681676032054049658997264841951007355894897485099265291318035423963079221999246428707233670680810265849531748639490055180492518951552503383242292900199351155810087502534652545050251541263432010106117288277874894356468271891509293298953117806106779074911285759745727520989493828391215647956561326233620417816351725599743806688336121058398671412286485326775952407282085116601894195205772044617916355453422311057951712286918362195786021969772394161459055319993222322508010125868190986775881035004065904031373288488986315908061551165653623506583705088023857101900459265639347226211307974129798067457818125459533076780587666161695124315795840685900412825551329962709613383811901427774391083351806170747692915995349406207846441955649662898632225280595024932625519696166347306825707157360120590046325959773615185342838318772436496865603609849871138491193917100315848486020729889745741790866510028934278297287871360479666004842933358374542944089338119803745541364719998611903291691741134796338132765724923826990125673685403008780940943572817168218116870216640946257185622604102986338095944289188303156955389374004370103851316404245921504934433771114568100136260650501503584266220005733588001335232272706010560068611710552554558590843656480469943471504007735042072017518117344235099775152831338227463757962559934753374007026548309487637361701412288911234817126452171567942470492353144988813339166093958529813527070306456004808670620441701866344510478747558199495146337910909724467839052508827996767863997786949050669583412833724992133624243901747893374826737981864917336049983390871973768756319345795638077565480693444114845066895980958616085668582307095731881102592076159374140571561658764440386329372967418262567110527683989818691791064061335822094818876551711141599005835053478072292812165314810617875450867509747843125144716969840235070765162524807195445059196951666428674198415875323865891812361958255198804356062560388674423632545067362314525040379840594760372722207836572276321459489315283536804906823508932430684396690560588645952830479788966774563393814745999833803353328601594865540257673441572838038656958275128031004790342911774403752303985135347202840412324181142740784859412569728474923519290038092519552774142435409213167201384308008183677458381041586327075857912207838653652346357358621627701994858057598636575141079465925933117442492002700520833889074018483875478544344036025156236827662590994520188118828151689495259050910376945661182027038873216068755256548178156059231819985728782197345823545577130142047802167562246820500623859392784782117299349501290238691398820155222979822836807004357375304199726100687518132027699963463529070893398230672682508013358851690805089677999915231241524985849106597645167300028735261789030390922448592299389346662852048358171989350414236825233298993567118574017027026768588542393151554906058128754095369085263851819704784249288185818890105805934622415959737450458818717752882354547861050403476254708340858583745246095617435317442415994446689502836921694836815911141451454118486413399418108736850913224920858458255680424276301210606315321415264783285786060361276580566468956237418475758330972777733985362023546964065763214904252241130091995562788974553908145905174459680944287093063849573516683411804935841249974589840456515671947888174677610002960635104798819739870444422509938614692891411911458453376504409119049142429637114385928670975495925286041004432767722628089196503227612076969500267376633297619062928263667891174444855895756492169156195652691665681160840170731703415234422099989742902215665950554066806396740530473367715381777198612147384097720904617780786298624380280283038990256294701192932908891200493197967999914370767272521139936685429658594179345665934785016125078688747084830703211828790710202703857725373493241067808857383907483900422845731013814786754832704337566480694426274475041089325768902102415363637542533842785376409176185224235271261657961818100189428035800583346294736309684503331408065507605733829103176455499669915040720596438872728461283178239548754560931203891678652189265439719123519077052107942706401176546510087361899616243017293108348463596206410218060684988197309600675550282497529120459605890162903886643532372689425063556742802931922312971787897097150057498603414779428673746862063239734903784418893941950534001254967261591808914609738491646306350248342586783655670061075630913280867325636741653883657062328332929041482153869406545619500268493053878543598726367574739500164407612990753805971796778529682089060469198476065891028024440089276411174005293961102646948413068585672159844637835927840314882356352076775876845270401983606354273938460894141378797807472871898116299055084218567786417550066617933783845065823941218406150024404083213912562086976817663133004222011978607604374001868266046672545075238385171083880394944245069935564287084454167527318834882315390738009981037799150201494025407424091096954499163689156883590659405070604785072795891473678183585558032779802764629948872171039357870448236846033356925512428077346842415913999054414140693054115173094381155375324638382123906764162266500017929004904681478336356473351757180220914237044249267699311178889489367694760994055237319102858359354646279884627819539555028929677921206583219431173033747548219127327610796186942070117164745182114721905375599667139516414653344493177491935189743523043652189464600777859305756883968267699572476642791164949840216335846105288697198359936162346558460902090403796619010905026102319815570618784905580130927361376448755810012059315353336206492144214614981669892166405158752177588347562596462529677980997877022873519610488548255206856999396112519736384328985315623267619175106160371337361009714705479922434579358553485148853112892906091933830872266232398639185953096649916476656338923138655186012203573841218002788740203987765703469274013166143522550209097642204114201331280094982484762746680837095589158854364073590378872010282008310782334029125852632943942561916806862737258363075169851648856691823984872208015447165725096045384175330077512250673556080706861947739590612522203792972198456166934509551355375727036168483148342402881480528365350991637377546945081423952903361210167251065360917995972072745447394745861614879555458628525789246256176503679778280072710716681869184540510053438196166773211851553412613695999739846982095800733061304086030392609550159597532459805008900812378389774757717108777985327547197553632362628746565879866070911613183645419713069794656011477321631199800108416213596671776074612540752347656193379857685952707488057827120455685601563629694916821918435093871380048888053756630747639183283666077536934854189624325896160367568608284324113230259402557539968054075244232765724281102448772915841768761262324616524141749263239602409004314208526291430033246326363055808778972188312107775742970453305312633004100225049714158216130963694702714382179667751138605312842432154347171508655146645873538680846010164407009936041008858023279330754850000382076732768642887746830733371573453790557780640597113806908032408584707448206884038740250450061978440996593450505742671454561496828997976963594265978570144977742899320415374075597166098568468892717606444638031274937427995594871203470265970165525665106623187525668352024079908459642421374563654012625089181338895835741855404347013677723483259912967122363947346551151615528113460692347648954217682756736283905375611591524205548482881492780667518111807807774445428047048045336659921124001320256056403013519876197894497378651356627170423604781653846146297640681276887112375300461755503588906250166615184286166042809604925855744459202138842724047293813204937797599084076979745511887563361364892277928546917071056419655198697250452229755692372965035252974739335507237817478823520583699883839636538930200094149596584112338630479150075201023008870848811748579634355698338821006174097693870682123742801460568929265901682885339068239003762753915489169143484763457118498385973170143713212249733848163616825385416818365676739684428414543291414704221852249410158359320073655474192100337108748505259978846555636021321122595207858652304215484546620334906021754666288759973305379922795637661327742954519869435312945541862276606494328988561718808372873356509126535941320756595284802484121398784838699255189701405519803913412198562272368277638903516797161316483403613538382687884234174976530643453314189445725711012849607971428463780880765004199357470562218789136346073669555778036706047300193633114346262962295746794355370736111097549264818880824436489761873459134725805345492911269368721363681659049314518148267484741339913020704824147560339516034845198303910119516133705719575763858049951943377990446564002459883167150675723957247366996438758296889296556929647441321610140756824420601682661387900879101385760887179626214745717411276099177602028561880707050189354877893189501888938332212923247915079204093349748067070972653821400582190311811213565978375128905256487064650797797862941896548224383139435694014738073377135995598296024994570383488472978238134353183577200223802641450191769597592313669851365923230810138514247422282480578399390887511513607059063121509844107342912592824047400642577920215398646812602223873334945995574083959999094751201109185689706583646410616868327535806171896428745918548239417732860700008047352900829109856811441087173475506422572031053798796806743561584696947633074058168994144394557294182495467036489888545408734097253883256095334637190265102590851995019416384794729399415776922553431417956357388938891476761563870963150159083126681080289891423577036021685184438540148492761221936383093893050851872849780896684792534222191229900070727782407702940555677797645213853290168951256698804643511309741823444231231664964124839505919992918484460442567945429957283016789066530936065266984406583889237929335405179834331018541546499649795804798790508546007381720438631801950969913553704281874818155412426090059701960852283304239590438735355389355917696374505273146918445858524198635187508201777030932796076535375755910816145565508269626620053025599295348008153646568457000308375427836813900792678518084087167585775264538135093869802385277723650213271263771446550944632516561724754101711630839800034786675902393772941363138158405771821686607041219422748313792887500620477531993485278388706691976834870628685382952204521339102620621605422586415564401013894923148241811292615551153396568594034398347936284781094749775869166089980192425796435966127886869105863959639316737911478270359383979851549794732307607344172171382078515992799751548513680637459748397780624830007400903399101081079828398440630277011307571698802598443862988994096646236240492831868832226518616575971144105867197800108131099022056479217607051399830925537785344163216289324487124857895108647153153072652141734298169694759139316140043288656308331206671100687128587011449464281636833579392838568093612143623472214756507979631535848695620155655192187744219402197112769227365193266774783751400345558750220488950107227323299985736807007419407244773213034300479082482424215671484189899160663843128210888961010846080199895776117416817320212084950673575759183754408925076147959127671974292438656988175228707566016634564785412085820437482254248788600713240522457215534291142872071459334083626447601953007203829029458410636986157328893461261391526753359611220804070372222075062538855194317773428069577493069006820172658430735979212098310933881471786495814687211680070906721494334472508708044817441117937630965632588880311768116874198243835927446968721214765862173269021314898936835816666799904139833537522545896332800971055650922582321467445176133881391152059626359505205747326323130425003718630065671613185143295777852695440562215895580011318577072608436901796177291336594330687993692063225995036215633148257165647791195991272544524809536883471715465284155610320165251539027885990215196497139380340950950433118423565444217548343122050802516950676107413147112329794266716274149576508074927618955340389747517171962958536689813294619582841033278952084740366507345152785145499722079824282851317224423695996756207095211885593714983213760801627576059585791770852174911821665407332662166692301807189508335335866227061057219241199594536645153258007397681746997612196848227084540063981769646670276474566727020952221622814111537779175515003682929870235891224600971725729451783595502014029747187257407915041901223224596479877904498144090696985776020696893470194009795490659418606679100599245930593221774597469803218586900714239521022435583943943795450026765413620685849498387394247682469873637358896685651820680362026594463282565481240808152211142276566841945924664132799789770474151646450443012038821878432295743685591855029181705712391703391555643521686606651464083950912312906878884767182349615432239159048795734087328852450701802020631149964110991853175241520025736945181840111118774251123614228119800203379051159462637550438698421715659690698000930650102374914260668256563661308217893880249393200686421210570114161094790210122407707360772973582608543170519174301219908598830044798376568689714345182454141011388042802630396976258054844009951518046773355036115960886633308766046292267107531599150594792983888601093641844235326487450894151077941503742249515014312134426582928446409063073815621224994495670338672298260046623980034444830478351547027937952511050345182089565288661773069274332665725465720216862076714675730227794353197583411421862894828250844147428537193691837246965206307785167282336932894983086012333868254244629302121663441874575618344703897599111383320556319517249003461764207797704653323888444761000093848205714479485925922650504918359899770398359728505787586451646492228091598045528395432876036999305948334932759110507971119663086673011676984050576729974209842237787401232049600140771351839763612708516674920756854657989619778336015209147705050586449568509830041959303246783447129476201271252134839238414195856078052254290178906268213666864825167011504956381324727672274490273297603056215668631939229332911231817699729254584003813285082158872612008667953650972703201025977408609783177536351973284527136228744682085403528213265213633942844682777673206377054791963433347771516150460605240851203018736483751893667658191299688199041923534256499225772024161693355940658356480872443893050261743156219691751348740755649121608061314524017646553320653477714813358674487587001522382754739528593325268622852216262450852669283657218573357209045954057990468343226024757991274132424779882600489405849469953411528806108058360151546475046263370073000101407296355696390156841058800763477228744367621354124442419321396680852526798418310641456614903970164019945743846825113160102986121154238327734931780675281045881653606697444953927351979491591649155258671215511535045071894509160624467095014768684740522101772834748203937584310700894065428004274344500910811716503113115612356664631732726153207460039761928560293288784356955154925328466830989169195242609915302346115652361570145916327099671920046402287641465600528512418382778383883935918067012646472572291592974879149313468610185640627381047079471058368169889528221052056871515753124547909777833525945971138807192439939519559747922357286338901738753691781804466563062364495656015262567970372821882660365868614777710381368044653246275362042586710223728526579026301378604033712185629127950017144072271759850543455468832806694112009107524675610066253010428311878492023575439153304445313538573031714113042086227566240713155142419077072947708394147191861891580889345536991533565449822025961822787132786739913498759750838242057600856476797338932037818311821436919311079365167761333016609819360826698883173286444658887367178026527364002203331963971381221877120603694615026232276470717485180236112171876668139104215568646520311715854640978674246454954287046128642296860072196665629847313295503016318026953222818108938179172332473983263048582085440317663671908889313951894144941962150265498391973706191342135136252609935271258226465088396691909268493467531545733265537225888742552066004404426003090819488305618288190161380897295833271538572434090730776637262224018535043214098950325709727274708545494901188190800257940107737772292883456203844125277175199421768415746554048199435340166010456157568178731048118886749289167847506893214836864324457489809231891315465146250098967546008492791340051460818333166607455081794800021410441472913541959439065875806243485681751186156410770481120330144267171557268150068508948032832472135862102610209051226230122614439166219560396495671562438502061033947557845698479467791226048932699022678746333547474129227953701747257711440962661591576119122842165214263797985835253775753342767561967994642214999656355439995525431321137591301612398353488262942300624921697742749369009860316980048084998110073736221114158841250579178494015174141809739057254346438700814137505078756697162127245642215651807588420417956016461765600187137488360607284499567329507199803573187276165301433512282804230833616608883923511653917474515857020436059032169190862049345942684221725025978859694216541682077979962869887139466271212681494020379855916899524462179977749250429684733893943200039916514204125202605915623565724715054132652124755232165719246939860565913022151359139096733051028189286246651717527295240356385802252544613012854070073578570433549767416622991973671361104600507607097813262905228641056582168513118036761234833570932910173790665913139501467477655496719470959292522448077572014583467625837272898269247695806972454642221841450787017953882216625463212118768654784462311074182614036602662611578207861786163343394593846833917362134243219811947039326950340623056772290094289081003373144041146268154445458754424862999798655625386561275289214462019133094475063732430432656889855507373172061404283920669047238200854766403017574437469207627001595536349075340976946240667038971985660214700724578324818892788942131554243826083390160447048117759353034160337911666904026740797660169506780045672856969851109527182262771948728945390916000642744949349739811075194739150878838646765186633655966665338579752358006623891093805096936645149788015841994439104618916825033334457883832608532348764409190437152349044812278190134079347072966003132141142935962791296517218560463147832473783019515717546210170071517494365492995547427955350326776012008116067480407422439279743918354990252749125301047622366165265223071638947762445830981943600802952412832447321643150951940702206528590726192470779718551015636841720381931110496683709173743083649285415864727419813947761609646861817677568707739978575354705060555236516490641301464007580776220202182970611203182965720629172382734802621750622304724483893513476849242870542085138975954238102129688133224218595003299824626447872478968503889146488601840834447612242870106831686586185691336537363267407678972018058846935238534922366303015562181122272547296487941806113077663721381838029417795042401210561117666898611385637720017500506623605262461558276211313444335829774152050181882840043730667343614447421827826049027813440521862232405901106175634083586567424091465697626322144728357499041623098886279155760255827440430791912611726287768163909016133141174573319325487436683455151415715075291940246337273539148998200172576116848246873301283968347093954983447743808888805417808316408048919469867222091118326191389188589008653031207626660479383547227652595342858618314245905038258268631324406104569530961990049448322791264839875507029290302970425771387625836654697180482984186460346636435845705862705213682327038356257837802125629355506637784486360282229473048246666314567512556922425518802168370117557637901053061543352179680657850104905173871762010016571042647175916787472697711846203992638384533144711129813200175125948685048621003746451594987230730686292631760349782534224064415188676090380618658700707559295059433079964067782779162790658704273934592868057430321268403663336081453753698483851349440749144262886366441795713347447955284611788574872728224066989457099874345418994508754634269273667776380321174998162277928334391782167248432324805075176370594678315556818646237374682852700091435406065816451138634568668487566933380627935116305702037923768311820870255663796089927281967034067001704816170820457455586009399617385577562936737390973118395219822329852534468272552319836683000924731619084139688088344221653735948419790436364218306722700415640652121592560878278657078791109128226497125308541948247407251126314461651704830980361130568085739932550406314418019616043458609045892181706368975777954193709028446912058390813186302942790020186218042529349313854666195623983850986224934342883042259530481224767972218460444514338852436552060571578780588971642350994760618277021410047550419078250058145327624384058119278920666380597840654851025109640259634637328128896341386353890908838689756294093510038408289391784982371327143861960721088993326257918193321167158290680117317637879826769483770028232034491255743728029214054610060706946412584625524449308135571625882973355133580735161690703506188259562093144967918389722850278454061094319627363623664062063247261021356479889755841671925081869598128513335912738407220681753984452574231407032632539275211049524669341663897715553447567113639436562605443265545379805315421483382189843274764110772023059943541981725508909344059159267641890456701846397200120746126819842518879340777497744118755881805594009581320489423490327774522630821935832823654581230066171067498331729206869851754785603401141606777012522240382858803900766825791850303492232454881965611273912349477798486409064489764734008150115215893802111594223800052441202212163809490993531887534201268498623963358214162176927195095501709987816143921382600983376909912014141641302163540841694679336272620024008512902786258190459859918299688754496267385663591096641126554687205455471412328536310732848442935718223385088711867839467638060656479934940350317817102771333236049216001141369441675837496687359167587088984782429999486207473847541786814630991898269391683661696206434929905879726628729544493194704852466473892439781766677798681991634757641987941148801616756544807582826851564667124219851593827215597964685621994667297266136605755551207205133807415751755034679640429406339625785295880924821155300980137451938613407805923799849525630077112217915822873333316802213596643029714107169083329526551971566019997815973854257123735140791114361653684336692657916374954318401474434844915564128433131289485041324607766809002515754215398307415017431169920852089795153939087016324453333944882491728350565632853448901954292723192558879832554071566293167500520388069475649787831020537219812152105444565553699531532649408898747450708853424971058161626376062466082055757220575836482059316408825155519763811488566018692456261577147159906935631240015239919947489901906952345760232804722357830267856840723706865902182916505863216444441773885860789252502423316931320754826542739717410745308916931745613887803438024713917255949154657424498928844028709676650924085336642063832410211554179188273132539890180417451120612822235515926229218215438415247332531424040359328473874242599897281532879088980690566448049124493030163422486793446424481036292452018183465526433099291225243569558689691601463522531645599323279462575369707630894163587705285232233969560820259781776402721021426875939022695220561577477885841481263565573405995615263769699830898138317226048933235218916720620162341432443309305861455206066038755660664356980984848718159208288104289133018824112936906288408179607305260131620411689299670642216043353743076258656262555989277569444456661500324688528575229715458670724711857069573309958766932061103718193121117646121106563696320821794328884153007560496705062339577018897184260874624766775665809074119828693032857287161940659541593000841282143271195141371442230453240184117374595741856166029513538390354392967950625143426818938050975089720182992088110872772068404121979444416755776048611907821293120363019218831370016932260248636025868118863642185839696619144930190481483346739278832437489569602773078721802759074118161963228656578170263133335136739389183004760034545666679334701182004055273258142284554229690441729298976462923632871887419877388901595531600737803030810417099719614221433592764543768575303684407748526228428523761688597475613020944676141894529506955803002661692775192613225133570193338237892835602816898995568159030423542834503232355049565304846583606193219525097236261072633938890805781563799528967389578537440007248599500595723815730174404670017632746389037647776395474777636658807238192409800157102354498013644513439004641290898724292988080181763542814764136611501394328289328986820002984620603350030858993552272249591302960674021564752497595286259535174676865005689942747605957598925721317004101348553265946197687860216768210354440411322748444262631065111087552280790698851290507050551729719047955537622997031161776729508885945609463776033688456477884703460972119785270295879622048873969748538861594953354100491134158737067614775458557347567174331946923476171392378306051226388672104435649481415061105022575346553460610767399715023688310839454488995938779815539642534791647767394140661541248946258839404189076770456669431085152288755826961227648488877536740668825232857028685134532899803532155209191051577240256727074471918461465211461792262756737791466168352935458751221076767529905705222590564387350849718363904263204563860325612054011682084642576098638599391635318552953254261784410063750088814473651232551745495730637178580991452596543899471670353748567913765237890728361646404069419865470181562027539411078126996748787837172287951627246120330648685843458391477328370131212273727816802191116050911430325494415994211689942843109158786077425183634921003135995065008384396737769711922751239625923895791508814218353250965253516983821579882247944353079385477828249333758284626401408044347681327473684346211193034980933153448920979732583153690343243384295441205591845014224693579480426200956886273820011059358886567712888115193951275291791866793986403525195559722784159810350567345216146830883702397965441962293566064337909259742957188475977842670176386832628697091923698010988304480696036306672206818947469361787599631871322336873735879391873463608818327881258815765283721612162851769494999051321318399685998754415393238829223232443345563082575734206225123611788857404430944965494320537123746303434459345384860041220547712171068615936878849213902566458445332510792586324085186965054220354356943481380452877006244511948495952528258423680056774228597359283993135448248575043458345297364056101137583678859286650153356114206934035067432722852586615686515660541874976084671012093208460179739785012169121081972246389721744934994472849395026159616540702516322248573281845933346050850926847716855227491763869675777901395125207462505389643355941899755702826459581116604657868428532309387222087645104609522298499154062328887255700477897608385175412271231418409143736587309890708929177986635131233021577563785589202384809856927900929400975332126896670852197047992753656237659521702227508221766615140593621152121718001050271792016283153920357648705322922297815637078543488724443285831072057056978929113364631381733445063759761963434612920063578115346844104170403674012741577558293072982568989950809827675372107872497577949319106672870852471369816838896392151978199258962424939566405400892379542407643463145274782452501181339645246829406233730812524132903288508786803707196082092641760734143723332790445140184679804939764967660638169372401292127324006118282531003684855321938936429294670700875167104382735992240605688104775247259526040285302450777651007428851935656623587048609951098606837056332548667086195358592222560415497333779122452701311522095244878931323419133536010082468233582227449685088906861940406185308864253470067333680020606872008501501049883565706253184390655644499203028151796644501356812158145459698314241915754411098602714198326596259422209649886313554811263737339954725055193250023904386910799042529204846310180178084452206681326197614563719591386293871848757176310080836240675519868217974831828374814097438674783840204242435378046443596667209226346853289133691558199811686854682152196746648581058227010840478308551226041940599776588890688743301660667693468279838687341590201987318779961736038384208051948471810740272559136076385869860991219504201016968331708686226526803894727315753583718745129714768638282300274089244103568203090571935587297376147747804553017852577787588668470830741104883418215346717013255276311742826844012432910637125462798177183177950790710722521186588693516357430955126744931892397330897531672113654748723289041815651474733774640215270981393006198248433485576004429865423857304087235589149065577995267271776980351297002253139865279402466525177320925293256579020146484402979024037408021775545281124249209136427997962874176301821664000229496294434171094258578895927011336479708610445397667305672112638071444260676296110601083099608791762804291002765816403016083949183083812745422224300602405987737075341942490892326130131574066570445213047791616018728191526086568771815215069310686976516372426322328683411666147532182251400914336947034352612415193667277771880831526974948911350358967327820098358090333619703414183490787281118005071932473663662416963672205968700394444203976593090961947642350251089463885695378720660623536068911734501232047713912905802670690160732641865131106446200678460377584530059901339587246237585366031170751362211132105581304282624610278136346366979373791650046023323796372433649118591543193980517260404640876748513722575278903821020641841288652400922951149063737712115706676698673178308713149018004510627478658607686463949360406629276948809405653280819465917919967816393411455773906190961640937134821558310132833750669676246848712234678236069612866523385364524714754847157783538596978291335272127534041530622183083078448405564591088132690984243494143886477228520084664303184944210506009221268035550132531425465436485415136341695306976784767698128482622733325691536435572636318314039820491751785769231925298813111850232694000075063713673984463189310592119509428282119708340153351848178929523676796114048985911250742604041844185986281545878012012466629424955819549711249191418773776882846371127434288019112376256022639238414674327538400153552528933706882841399959463323652834550594303959094197509327687765437194957058199116515210986520973939081116046756964049698473922189789670596810463803971210712139537231314718779536213533821928598870106043825958981488030901537332057236172909127347895515272583016134634235388798302389868716728020759554637362005619495080984193815579117321548890225335449494860304428733805801591028448710059180411667538821536265364686364737957504915044540624320775822408325550515942980614640951000680221445956243751395388160455287109403693063645618869207631426894805374106193861899189086749507145160575194296047940663988250763683217336235003193540718965540711593500959124153031666024498195932156565945109371875270665309741200607212801613577452689164762577931144184068133763387534793973295182517301199529772634864076679417887160427988140588222764148754323555187681930977515432873052331289098085632063650956400449885292853028731304523569766117092242151895201813059832590526449496199163681495137782060021338466919507411044430756881418289776900709519731365857717192170378795924910007081959426145283578996485020325803531980055647211297235739848177705257406167427175913319458556286921271228292862851279476616304704880522997203483476125210144750834574663327019478712610435750015784101578523768051074290711780106056990485937924909856175775659530148480448755060423254137559254669575821742089248344222787829180491174150836907925475453179388271598189412781632080742483717998587125430263409282792244708093467721272771892309963368986942554159100263282508406782842193757646173576584559930745028535980220481472862392834851355374887291733535731082688499630119846471765256430016255133721979161831414462854399890638674932941077489408747883335968206538956722137583808974225990381992549524507829423809981399156514646798347777793319745620367253534598517123070180378670029131794671219781164590969637533114907167467797062028275302533838435129145852683551692639574165068241630722490067896320136754732045364116698283143337271642628357842024985425238990501479104125763996495798522194938007541551221055633749241519695466572586480058158897214996299087700610598481683382375627292094891519450915310817649229199957897311589218541780084209170259456100953432538600985316366433407409631871770318798685907095420014214528153760731772516814027125871826539000063809485714453407896699134370048343711640413774953097274176323626463238165733751240633879957395931805005337756240911358265026243699312541564827838450789186538022664955073939599255682360869464828230349969855464105958507489133855072873798988716643325014751600594901571648188792997508948595011176689084185181846273160648265220177465681141577015764284712462346023107641010806795472947212898892408682804778785670508768740839423006540327939486099996375660603766477764502771356830899225022568538263870420732122239671322170457833910543296347904205811088145264593191528055811354156365696249762958297585846211291881308808253301315508695075060774655884036738346988030435025223504724210660737416428331122065322923139312733653160343177846993824174793004510682250312292643265293711159168252475773278715559479487095521484943228310114943458213664208681959606582263839471440505021608285121982098929734364149771077757661978872055694385833812338080357547885615629690916795944888584634723289901396955527994131363871201283420018404191160794672529046787263057501590152857156164722827750858299624114113143875456465208729428230560875973660512550055363685655705208757359170157010418209512753166049477494360671567035538130194072827367046633464401213007400458365977782776951592925187475714715437175818627573561753676316179784998944633742983198214647701028742094120533187212969744568517391351182976395370037927906787245503090306444569706801930042506815301231920697576474653741534583551526424539871629311856150511540471950026200575690443086847195967074138565928384767056924424389339945555008184471729812763103279922889859163525712898855027424565170938815760750100486253907696963943350399606821996012085018135232950384957181160648956396304408866839222603628310709688295934316445722390996660681694229798879631088197548314694328657458824604281203699912207312958453696487838782821072689499385271502679767936758582477599222691992643033961649301051130931645040409716620765626396654717809823857308948460828178139098647925492497155981681433567541082607489478154001049298538884343197114030250089933942645475684663060876656873682280665498538169181948679276002461408143120188378495122490942531579135554564488062224725667659202665682918063877382021300217965145324304137239983415288823541375304636963325813635979185519634285343930019639922729983968548124256890063384291975997468480851282602305873477914226225386999863426144239201654966814666924174688466806027859491536350346148721258433042562816913572943857122725680089541937145818621119003310090287911561913936074815284583520591066723333153059562200563996880704477760966503830987855213653125041901761703611025739079142860879141457179946777857692470110250074737747786558781188609065999569048852988855703114601277066822053763041899590943626104133303188080764007401671336652146206226382511354622447006429548580328645022270134003666973132302628502479929837756413019485020232836969902867808479247959321684355033285610702875323497243025254990141528322463571216608920184936313534455240557899561146633764304292297574726824354570550010092269698888451812557010958617486044454611954208877447347938712159773608409777716353456361928601952151094179119869033413355923389557336871237975562173914942230292092880548763742652521061362801891168825170666961386080748532453575202773720199488103079097638271315759152487794266131243009084860179859344056902044135918022439122386469685228008242447501074722649193671359354064068564726238425375546939833125478250947009469521894129344607468392941485664409400679080601546302021423307098947637747144110026593782087307884669210679362476562656654885204096235700825065111197016393856714641121946611892615505085844193704058632454623094842136930896971636686716976776550548594653864279356587937923021190815461966800650938379903610145647842202377573621760576708032378408625434440457556504959596905277345163339884700082657796032182543886416448714775770071440876711213329107478047034748431928389793906699609703401243206046943660482989560998928146817833670872447863823801066891160421719531787778309371457071064917225919282121197121573974793335074801845175288460977771727073366644904460204859764309461389774968024520161583834061029510148526976040154103299627448033767074116833765855598537505090689939840601059851219952565161276459069067807927321292080430024595518411293725993634675266289296856670573997175972739716465328908922569158468430370835416777213583012716005145185873706843855505212305299937516218844108397365053919728164788525157329255777040994625286905529360322467412789582740029217570916995849025158493845485069604241052927537958312463320614296116654829641036484646287336120850091464535686867478242021052751513864448890234499830727623988001498492341793186225396006866438679569585238199320831545990148200086314424484353506106542252416683365058188954043671034521651935300195700447307570224517555487296870760805552129180968949497042822038769766770833819147730023610771396525540134664186604964403114186230400709307895421440739608236328754797258609232288996908795665873808316156483597311375738777335705346802288860592766463824416557409827188258314049088414157977163149365506124066435222238410509683326942297004313277627980873666195944091037157705776458363439293267682784507070826135000799375508452882521710629593832141233654038492286754788018000014107393631501651905139462026215843850858155829473868973587967932719677739515858394369576933115158959011891181782020544825406029090338774428244016617212817220837350470372469705965536471837872308169997683938965501726863829062464703031580966235862201819368856869522884697131645136516439286993081600407113988081386527479189241307930882528651929534192398074322186310967023758789037642325385888168469089331398967677338710775708525884492829883553450156158693420264214551870016394896375252484502306288445491792131983363209889894992362443784792969277223272083382846719570848557385043992091872781868054529657064537004872747619457947980285299898186505433430288864722779047657869895052615934577653690394122890828491757093524520367833198387263460970568530619565186423437494777293136478656055412780632975465442324199860718607610157536617091321269065667850304635543497003060164115218666648607559886599800685489035160475595373710826520127913375578537224704597444373989316781237143708226106950474180376283348551763198700921655645294663926458723340414844163793703983561912314982343835514941772211964755793296539829120854572143845315838963440552156835237010545462877087072635993208595865958515069478574007434240408830962747351369330917254733485555465738880892474408776716437024651271564032280467285952831206942676446193445482970331475182699978783972067006629559995437300632878378169458116580557319560067032321248656313044025858563062485591045331925490264048106013062891228370920340512382158647364161900133991139563314349873332473967713064201850939891868034032632194827315295430469551966347036803269528302196649406314623811639813099666352046959791606492194055007425904257258358975102926381848248341880915377046895325064230501999553202110401364714549696266960779003415605350307965976081848628120881734181754814917530459884797307391496576893156775726767464537368363266263428915169330186082869854109151051917029272537565740790255097656145005479544986863635347037665561016784161515028407512005072475341893999385182235562885318079539455983234055398728878001726111233641002826228933043084421859274035466931360599030939268189376351615321136216314319192929947854965475545017440230196492305896096435132930537819263929592789100820309270098207674490025459295837608994424297010961646674008575427847562714855663458449051970759275194187226682456070283472574848830321340650526997076979599295879763435525265667866423290116341769390856980873727332037480408085341056320157389543236678869349745748665933517460864091135153888901894566732611726235439557660693009694109710939940965154408482471467527638388737734646186592852766135925185198380666841813691622768456341779277776444385847170895319094164992485517578487755123298882273179836068021590709371952815776170772980099522882666494025210277135490943395467492281741052103567777885173540391560124598382169947332041683827792418349525899180835988204307122642075059194624104184762612340095490004871867615869867906348849378387113582705818919327153471500452578840072133347823892565026469640267063802847308081563572275449282990120567909710758480763015268147725519562546396993698155091692345272022706482075099155195388954406002153301236477971308895100027250884005079377581996500811491250806382363392525678730130873863878143509452012155823130847584254817532125772373286480836057306656703106887641568495042588134501653244303388194475183663294059211630737816334446133281401554609544762438252616628032474409129545511094192690726481963381505802480646155405087623709811511478441929525533786468282723555175313552162443275309578003888179064763185816802980993645694237526615267274826949388360723642580161774610392166632156005486792897994166760237884107965911493941996302196589302323484281516516269953261080234371549786030568478612755858551220210667199582172237979623961979269751376380500310821607914965570686132496189726219406157204072046338020299284338169556776595511685456306949051142735943048572701620825845276869825726445218395921909376257139585727615207752513518378078681305152423404179450148444526944216302172713897270022832028667607234499714671961047087638745711921469198703539632220292687333997489170404469628016323629351610137945724711406178727787964346857181748331824530906468451310389554451340692508249534195201775265773440091249432099997320349341574833563041305399784484635709534599855262527871860247303648370394579470955397176511886037448180845411824393617882933217839948438600946749278930455554653458081394438869074528690958854118640059462757487437159949264959028282003292830663861962522586022688915036699826943349473518639074178771354234363578773106944769498206040681802401016037950391945682309457695347114201980212705548472090973179338188979042436263076016225891738732746500167333436924503792946030568283401876037527409722118132400689708297831871285230038216492679456926529368816619594973652976293985630619392976947158751599508768940217622970020357146880087773762619653744447008362283199746947142098306412833566094680410868492160707251358988726593771613704519515587519334958453373713050462174349561761744770786209722169630373895776964198254503574940225017305745529556170073580872518504490337199345674141948642363540589412846921913347544631494110023109552950418859044410653286936968789693590157234693691625632062461790693101184070473451093450890496898293384179201413500504654092855081902699487470849395730797372935892245684970576920671751396489420424346374397173781571468561176172335967538692403094013934712949820317994918000364327269275007651679174683590004019411193299896524100280453048289890940522960769103814047109850811928582836010280731183800199776283617618594116609457688431775081818289334910192536880123527026132206330744774531082685999085797126381730528793328891807745135874558330449189184778090215914089194034445890344361169079397378689031970876176616283217348013216997959928062544921453415511920769342538826590126211702662382064750329666123702310074353181606873801446724950855395073707346473255333645271162020706016296530071503924394323592925589755416625720880194504280647458566836479087137569234876819291677971557650144024064768780549836745903416855829944503082587515203357091865246171295123264314098417285546669075644125586662187266670382537015199129191978162283890021276440309668555705598634132697218442765617652046396857333171420191813320290676784007981321721881778937712344771947855307816192371245443515356051986017549120627170627642391006810566822299875583574454001738698748666291856930778271545991636794897429787973450445716279023485958241892941418846495199825308651813792989496013072652034392210469358312831566314129952940091917942778662150527524644256402115009608533072792256004534338627522461054941500407046794009871969461562016753602290232717213414267508857512631996447073942897575978933903504713353158875033059183121580958020850134490512367841855014263175906183918928523515510430494370547356393125850176679110376511396007403173951183873493314026468724469234696464960326303213950970053194010703130079127502066992064325791565725568360283329496024385698213324260618604083580720466981164124646986981253392567659119885655490765418096423206575838593876728292546068639259205896795437611146777314667746569294986312897642575411743139253728318859812496880058226484838549564198683813353702334612492735970325585004207821171073017092783085943196590937062788762303704336821854030073381923918305230424503408980698432454936629983654158178034390244712360699038134354047003203408617413792315029024670402014002795751635954523295918783827868308585897414880023959289765945056172872015860275344750543961404117281485297259365106495197610847808632856982154211760055589552450918402395578526496562111964398996024582592499815093235048574908701949595502370470840889587614351908289093660694049561349626354712613815316528741884083192920239673820895065056318480967712937084089342353843554764332423003907196456811817501466842207284060167722251367964396493525937655712814929963195965926591800330513903835643967190780177798002542086432898396311973291945255613049545364912893107354270256426166546892966432236837495732537315585802405367698857040365581555610693203697391323851781477548196730017105873069331745996789542649906744635876623146391925002090416782441212011847164101095122606532624459523580637352008517638200140193565846364916194324456928150908014719045338921494813915283922179160886746169180857382698179865630013873877451820857294357276016296357967003769974396544985755837847140090833047222234790065792375127583754002301020278089201691361584254257889430493538159405766938533214084409892446269750266105146631398025104621499848185908608932345291380321540204543414749108230666259089624579694433391008322051608866573757733930819042751672359606299544671454555805990681528987836550270183600472492235631613786773216822195375226365400099294512962759559544575248624729858872436745825979740930492529998860947831682873215120671954063527908052723620194802001552108079233053537565189926936674892276832281109030217838008354240752034658202012189438078117631206564396016202790724879186482969496290721674243185487097693612292986749518105241672655454005522033715488305517679491910893722170258478637543396995952754355595313092622784246575867663583367756396802545646089380396249975651163159833007697207405705003231532772960798075362232234650791754366095693707180987467229019246601901732506703647755340729808979266606341395892943509112444829028515311540475943060585230858644388677865527915641089376088410874974943562863581947301309475992531260703635804072169729999384533327918494965067220096414568355889226862455390850797258438694057562497236156081492175316432026909129729383680954494787577487507972342500978683476706347711511565689780512708453858159090099369332910011905982107638957614268179509221739812052075615452357212171557264659412689946785223988837430257253476480169799014859554508544483970791315612050739001357908998073924746819797461164513317052475907569044647845966183006158137784875632227764346659697567876358233829019090667761814644947790154518376241683182608732208353519664644189506899953970167955487823292711713552056268451231405978866050435174220780288727797530250526415551759895016068758814667883481993684316912971683744560701973238271068217581913516171266354948342536193903775082908625472812077842905942806736689277008468189274412524208184602923930141747246469866747523828823192290754900213364860679921596007272741676456375110209785906746047249930827951844285843968821363768192397282985175904499816384621985853312578214542859675338590853975383218346497059741783102149873734778481005487319193451358383528317740821364174268344303776789936175345707179831941047185906541848032692753140876782606846621710789379435162101064272369315626273360427046539579183231388593070718951111884340644094021244773126374634141373747689230494568337585887712802193851757009211816950920404576893787094922840594527908488582720932560458037417776103870080122699996953672750999528339633118904957374216355751134354131949678363086287045811456629319008725265526437042332209451541951205342006321491702444618347524863635925271405615103828029426774599382020030463693839666575768336644295919539336656918048194497842201504573831418544123311997710113207754723968102209465443980400677764320176172940834973622522240384463409990019735099515859458495739345029816642783745049173079286790116650172885243475610939355175951571222340386728273458077078238346678874259877838233246051832465805064305085398965299588688610780087437281185429015892926720350945890510399130777180559093303811923679760512570542403635637692287021510967245241802410948124934833690633897119527416817128983612205357810891003635949548819750891406172304966445550886645639828465812460426621155219199678990020192506604606536949754409667500751846785665327527698580235384053643719327099910026597381497368263904423650927030133394424469513484014202097713098135523131578067841280597896280918312075835975469396972089127596494599320900001837641159464967022195734282586027202796781378214605743462217844693012330542475586479900190523348705557784102058976040907160301181346894001137838307565100008731151673022775252274225959546456906298640220608862225651522352057923482700729199611935807593577097892226537939959120015559201113804158364073543631021301080970607525659579548969191933906841935530297757376262972205419368385842116914011083106916770017157767138396183335190054821610204209151974046877988837361472275989118770760862827411150478126039356027897654697458663406012387167291996355905996840455325517025100379376858671147692631155775443078492429923373211629321899661249730721906186678019549108269722182091859045280685041497738722590068561125063225983503856300408327094680456647100177918459868992193158652998822254171324382264220761774774670439927516901141037523844428838924937810311433017250446114150232842504852623776731682698677556911403545183041893514194629425990557415669354342368532797401692151686300026081533062669729996606862497156446039725959356429371416864299769960686735185300411121945216942527841618632438180111467694676666118698342106249486777801677739254222713261217475571991741703241519058033380200336359672343547662654777386825264715922915011980073955239440821233897979914666184134606400137310567134304073379805927557004513141990540138599787726283297204659144017573588400504956838582845068403554541572380467735910303234956141655372873735454873498393497867562814496626520060085223088977748802899084668369539036556862337280358554611053146287264265681090240096860612197257955127151163969369255337852857975675859720066015936592003356185629097259776432802157541667053787108696025679908715100986529756124252564449920278830345129854821960514755602608601493946161221627351185331264577773321795438395086448999290713394563410971890231492757208079169828935229881139388903118333508357689220115078581481985002779540405921354329173353994736753466585591031420376006294797685805419929259601416597234988858453050689282476504481455222061921734437810204079966597689726045810394291904907917128542224672474364548905098237905645392552985836672452185464903382199752497144402370508008447022902902666913993281804317486428763786900141448852401355799812159020678508296717461635460401797248797101834249449194175428997655664723646843164703849723228742822347473925150780293116563820474235588980264714228373272403700911709011314431811347270579586548531501060152472772645400898903530572780707929669926244686369999979147435812870796645932680233277394544777384786140091567992743014503182614423026955778649287888111294924163699162320895799759334748801979928368689235587697662214427766872864598526115250688266904125656728660141620592843889135064028991126490072051728670315337088683166496598072975841551504574574327476202042245520876684239815345852431138120940045202727485924047940832898410114085201716534010037843918552904831238012764783321043083268213266358946684649058466620610181308116152342395511393734854754044305422245560992586306549545275037178259382485605100630033546703212917049297176757293174400705113139331983353354422606888030915254189155640630453905323591612935275784393861085663045573354120099996792525733174983738580410088471539134477858779840995511005145940728961360283692530824056299922280927243994369738623103017506084736247261245622025818656955229704646311471630720768726949892463395374474377141868932368192472379394616286565090958408612065260210335734402582876907027131803265816896226433304918487025462563113612287858853689485348396473816014330248736632874398774738626585258234040048014216812500834920533260243271474292080590140954896438823778864679373693902133448355107196637850500706433931049166189214005861982998587288866743863431840792697797381819021909118347872168532917410069459759766142044530115392397017804655551138629191866445074042303674359577133066680029144376091317181047371121772776989105608502016220764368626167743254275201535892432407574120306545866219042377540825187159186369167825211623618365452216650513952518755678584491778327048776047220277777216691918393825370244306111045292728453881207631340266431022472578124086425403550587946875351057810723156352998955764900811083233549583036996770873315521670087071055468858077893706555137515784208665737921421867138648467168856853944730921939963380123182883279324265426067440726379074740262946292021679250860303425240640658367115510642300003402352943062054166470850234666220951319487120224861322774324502636982410038627086481208998162416900883339343560244187198517592358011636178792957413074499062491295117162649899389911655255674892372203419331060926159554043693057094906309546379677336216956469184309806612540785441844170549354608409778248008361422295797671110792664454314444244987468791529700003433270058782341093109458354673464687256531860156562061112891057961444717625407766598715516944197634481021218579220690496053523323884644446519324566829701991098520967850753807065822062398833233956131273039326788026698447954159818327482059900481170204951322982314127142696097113749708720943614665136525425119911944767849773348634749969493734227909512413832379927737317489771241666920489979156232635314327235519316923269460320045805416308663651658895920805582480669148323313067183405494460928338903512196157051606137589939975128670091888136439727773049223259582214339711663122584166935748666648604695551542424149865418984346721660572092545799343001196435045428303909485914376363019113109643654832697377846879985279225936727786165040681920655691136768539793193779296380941237617525472284255325709208082969768145100300129200049865970154852113204956466261417104658548704334449136735381805586154259838334663050643131675713536506689290546888912301562461112211812507683320428264147147871742301321595690709753032775183427351828548975107730943773792251312606322632672791537514980131953555554069718681414261187214300018178879135537012843958185924412079228787394593463989849327532941748072451831113872851022589732624764964689982142004778104740038083373808148013956184935744090884556367820382072685049729106297177695085964726565195041499282106424926440560571689372082928066700690437531626946858468355939758275026824066761763670569215917886649806815593817141655042452771277901773187732138992165389540334154331374524872901394433034451077344118575972082291969719763666913015474686015354126703562099407456657369953562811620919329501946624118129988748281599914279944394303290753798825241969081876653164587688105765589638234608543693317140233502061118653883073124558131192941056241694955649776900213864991105150535171751958123305090416343019508932972548645927087087134733925918413376799018462243496843011434993108833152402590773165406638615329825420849273622074256122614625796096107768819160066126760842778213631526748065594302413628739185506411260358454521386983773496108457694400146107111203933099360354195115297619767940828170456652078262504994393045054585418366794088366563438455221223220592530265080989313407065915238375354273160950909778714602812161750860317136372396418775089029918870017580171794446249994498856308937523031379074902050892899192643499903764125377881440878896958410791332782409483594155234897203822531342995203420471442282772713573563602719403495651597589299288388761994940944428931826159176575764339127784879951454309333234442745463164287947264666144372956241818768539008166062749235039672846114528291511575272329680562787605002196226596038477710544154432352987570312588275642186893338932533849970544018672397157618217589380964645561225350860053418577446704690989804904231246234737620128620120673670817497065849277721661378488599063238915561301580961407026855607549972855918798971563137337330636893139100399832338921364809734204713063543324912316331709902420030546005077381338816988809045567802472064215339779166169869079024139764712293904817469791088813444239623932723180875852361803400598838951698753324516497441981425254479296048229066539959186106107163626798543168531087185396353734586601951615632859914052871269373551592770705622062895756147019975302253948452314931757275441319770816531676347206207117818379934123081263029624262455931161660876831932462067810751044220027416804908572617088366796940077690591039052834199882081141938705505972982346931051317485097343495710098075301392893432540889116650889363038445357076690763917846001030411656843906790886883372350992392819687371252437026219227756142407711501880574825969614278233789565652001047708780125852268758900876849339169844034014517392939482595111079131084720940063636783824199204815123591904464752972310829855581011447812662356756728906673919182239879964864088774509453269579500505675891659238288987044567513462257662031131604537927757745295684608787555713795863399725637827443706988953525239190548043020730508505058626592675722437965194335180674378903823392232245964146325618042514792871828096920857751005580380229151925736365686930702117326356695749465218071512746354042826738061208922623598199821727504873894762818993919323511874156474230126286069592108888097551983883653994219607327034238275325588764776810495365461424113579076195510090312354974148967578521728890183486058943817457608986262908662113959442500221828206823100159745365181801402274253830051492796629778639894254929755162845077189988248359008487623533084551818915607525963576338135314200639304255673028940506063472218003171273121909870336908931165801012070325347423370555003669011623310722297577248705676866965220722034083658940729230861132080830788609171584497001310694472144283282214125150657184946435971198636438192982345114865539550286735333822687820017473588886409650566679939853367671637673314174113393897529290574310739072886973472893773208055443741027515096037382296476898506276456214490254925325766560952226466663042095266727638243123183086368059588800889373261255155358104039312155853279945573122134142782943681687552392524184504551032316860370147515537258135522764455083624968517355140361304495275896808429350989872908245458412743776507355559688874121052245932332382693899987543884559683711694171451548102913824590940699772225873777249413740904602069487665068446507711311827551925831868719761089401674803273984498801663349943239611953695917676307797085313144215162877989260682095344400551560957356909154537110992420256837592358242390672279105935226223163078456940333108220183885823701901123902536924252279304095697449628385231767271547274387755521336180178621722302952602436250975727090476785173130899952144267205193255482386380912900899366125651050183578764607373847113437339912196679573337592314187117091025969809342108393241103725029484055752405552444803164814175069911729550169334021525375826697509696664464268377786161318178036471108972303951124521654501814543466966555974508279623487618905641179050900910457536110360525101157173314459852348611966797263458118275142924546815473861101407109032519426989307212567733995145889130771128974350135650598314239357662466246216164806447863322477295867088712326735454447928821051913421596425688937251698412415407989555160520513025588522419047585687684006225650554220987420628844103824181310349389154895330559954135037937378725513173282852099306129708954270506813885727013290668486325935141442347497047003916447726916130433068267965528637696944897993128211873584945561720166794961350594024724313616797913705447787953011966366025994943465221330866747988641433733443094995896651348859934282434110408088337517234488967544440127011663974491097582911493703178769523320298790468015550114122281084741001444152053871713853907705425388745716093266846873789328335218856204441395218025135510513920135986496145604458881748568965511082636847341064192846250036878859288313518173040072041748341420115783339788855202733789707061299681739408232844380948215582933726973800582655484344604050848306027868831232405160618536367969342811750034677611417222461975988930615158839336813923355822448897916743310458456633433507180990502488080448077346207543688175143159170270049624755061715580155229287966803021126691402278082394224731862066693461298362897732198172484684854336105277058895006079587347495316725936054009298564435811039703456242663120598580632245041872108009710994026788894446622168947664117008670898953732787168420434267358383895535448723448566821552034595034228045738505606586353608031297927074808077607004516573810648506730263887724090713928072314143819149564024685649065514977578968085386529183411739222583864680807686573537990881345577988332535654976767732003094022914573956996123047276881057392752586944369025570772909255475905585374706593538415078485869925720493330527628424860780900705611083086024854592614651459020774699575996421575702127733983881266868163138309909501326572827781901227837459424235587914647108459712937571162256440288368955552258365168126797017392045580986250246114213014467719038915020744996563232279502971109819239866619595448245871387776891970534664056922573268526389595450055500874217862364248940480978908550298002038604254625601888699839611547913204401963637216415191366006080732237767640135437521751888475018108132579220624797327406117120555190169221847487650034800665404755882039473963241262480124041807267479710747660420080929465037737840175674224701527598872941917517387437751970146719535523214463460594957192806056059100539973682643045889434322403852372070522030034941077352519717272556963561796877338129623305653361410430716467556700244647966217768415104630061208877308808387307760996487388529531929413199765924104932498975162780121417847847571525417490515749870140031462738614278769173637595480692593781668361800489793318412421394107310237827166499268798204514004197955115368069775583647469604721661458600705565487725775747397286144947702749124026456467526982236317973149669314821277905837124508574111182584636464576055326210027320739698865268590754580561931770273352178646600859869533384518541729558570272443141598042191885585629565585508786671243023320802756443412374288785866632078425754595924839096131159832874641417787308329135047007622627013029599399739300610469910071278443671816134908036694884407808668377881552163852585399724649106367284305272384058767050440951024879725214256500129765593608204271576988297398900659075038104563339959313767534914327449655479702369679524386617968196352965546956550691647691816342470675709392255450376088774405458441878973817074983534402978948156410066945626679620455944786940047589457955201478812370501906665098254505432542041843354793052511755361108698815851661470527985521560520182595954479446926710927191088702768332232046434718173871168769666954938350895269145246516942985590001639994983183685481517776952733768519118358200812441521035125855219244044769027366994566316016744086038226722700924577988236548292134873014189489312607255186849673001232436110079150311987080699234842383520052329851924487697700349241680862336486455025268529480350989436234289147033410968081752118025870784491859350711715601482373583950671023410416827387902923727026943718267156223765160802796957025539728436233947986728178294791585191009612738937242063444841446036281674612816918346795896153407383506723723251321577397616087858966336638323918533565311465100386627902161813199060632688723128258184705550670546010831742141656398374873086773948258134499359726123633767043952433466177948941436404540435773826444104305435991933504535306973955830548532080519294184861795135953733645952320036688691772591239915978690016715326240374432235235338808541749852634746440563821462207242494441065436149188337641882934565938741152379132900774677186383896119707116109000619862211325655762222243770433920962859853427346889808541566475584245240883495387036874956781308105524055336915174002255208502201062107746144670806085197195157745113729641996737493768709615602501471636599848046096620871967538297558465728943568934869628785840327125799759309609334106885828357593662370675788034803669781716135255973706640243497332165400692355554993842454124111857723370628491610153900273614676223742580916559543553243066863582405060999005007489119280470383305698348701594516123214425146708478880640300642555157188686469524243751971741789461482043291852006262630486219043748584837928513459513556572253279081776728941212380468398263846843757436444766174112273444866163262361918113786979439066524871449454404643051349912123673063131246636510022546055790565358459948163032733713347103436634667577864626574175277188321317596434607785837640360137484728872136301429950239389103925832602448731599152750455523480121194706328897688114853268437810542380967897823498415649218460492332038624351443627964217069214904975136676740517530180572575330050109972473741810242235334370391337113599730223451108131371320860991808407192834494746549253117327799276814751253101422269072844645438110183184541785582738630015111187532166958547368068284120582400878947279537379197750373085201544978152773818748247746133522090600100306727393991776284117927707673917179000001989380743886139647594418023394545986414171031411834746319885980446416230413312848664620058546706060608842669241909312712818385380864804612397342486286086470654402539605881723789598606504343186029728575826645137396695352296517733483358953251349737033447103909747619368625090988181858299251397599963796990328673460131937073128112641390103291663231688787270548829710084781426872921547164546178425086460569052995342584401912717719640713288365310905484331119426844635478471762072599226406396746022021741000561754613649544348317794515889818098856880363084710839332258634242083786810663711346474657414314776271103171211132586008769298988602437547541656789659751981589090057321026443099531909988707234649736235505991724649779464350745410844632924986882634350256324086140622239367971968831071476798548937535884353596429959711591176398015570384336061120153479484738749292716407333303078054493940717320772778499444812222012574699658704159248109386080315428731288731272463696144766529781456452753035211840063487316697137806375312342716756285258590758407215689428149220872140431252039564125084623521732063274030697840864819999260325788418776550400748803307063858601616139855756035009278794275484367717525467961481327902226861475424212129516323297804147670803791318545267392698241805952949659861046941347372395180052743205188417559587674199115355038376805782173382183862283939708940726440416254480641386315637020875716862310206701726702464019036645094936744452097011993716071093795701985312166587248326679131052848406931431164585732011484834163946892831801340995507070899931889567577137029040882529052386264906206015917191748518417350525437123617447559949736415138034295738464786105781893700128048571876590601215757832649091230376530434811742404908027529971446254222982434320348148260064395138159428927058878128780727116547231101147157219679180496594338775276826068817105048920856911306798078529441968430952192113663442744319644561134253022912291488829884842084133942525582496593870364914457167557059958653409521804132212709247103260663344165826349997895465320645572746630825947781651613850160872156171010872821296738464985133422440451320879795677735729342746195265800584631891342508199898956016516325311914531777698394771587056791960992769984628567960028367233471439082665492545304396512634921890557194009184993284373776795860433080752358631158231584846012109157183169363802230124947571528071852257452880438053789290543412129813483841362373931909367860353764025812957276100766993789437059426852657194474715830933111921889209424438877200686097244771503423450866206750718884518594562132153690281464359358368880495380602533132390591765995216379800349531980055845461703051373323336850657197110555957328695794191890939585369986642310977559068518701252400314474025450470448893331382513669533105052146289024018259195390701130607971273280438901221518911368353562094381671348329495562980506869797576952892575618920980391198989302339097508996372133086164842578083698459661538101043312787108177892222740323476602652131399580570627848435982406547783030407306262733411164385723151197082453434061714469666452316952785533016812027045738847279742449957926223206530485747439617689382595576338866588222129911197515736495463007160621662996835278178805498845322561232670489715013201293791737466723176257512435045658942634693413045130232417526999038408235116468503887132743967412670584260709481671382323383225040746775154525784653790092823151700786650458174159333443636497465045540828083648500977340578560625901318381391061905847966526475982890921489564210188455464606289238594228484071148133208328205803709164640538762370743649280657380176799888676541579327417305285480981998045997263800179735436133533318981098216928023597036622269028137428745705349016243384815541502958082140751325940748989318047438487789706464107898088647600261524286115772115146511479129232033191221343978143256271139040852193118724077076055890560926503292337089172110328891082874710796023581096732999742661347540418996167583401092504719642927143271328007735670235472382929318684666689139238706741424440865893136577818467140763405734292941106687858242995344876771481884655447618403958844391728899457400537440628085325951421679109301917950838862599968156983880858041246268503420230060671043621793698512316763824522831407213557309682339758822417296771667678506914150569045596758024065429199178111745939016297437042599705358983630430688423732493113978508835046109875344287463149217075318152914421790855797771846796476998403968635023201278288757694894849386847923022189901182471134383347955494609250787666155233190855755528684814416790975003069302103728538137967597783923265547746556858783471987356742090601151831518303858582676786666346813247171776714815117143934134465217410084285282971796896182779828955114593077555042244231660601712984424546542784631661345813001053322920235392799295315585272919868212472309737528346368299847267254855359034238297883609857191153043993597926150323262703684778389772607702493144200867127729204703450059088746142534991621877713646264659919454119074598455469198500792477448854861511056716545314487399418807687430526903561120800262608578150474408869594610875829945874969196737288966859261845274248125415929008906703610343592432754151387621760479323514099125056581027179394931544904650276093516637055684501634040242005317036102137545950516420418480085841545863928601953543907298938582176804530109626605947644935245174113235942324807560335879374489449731009527534436733822577402293508439930837989138747987749547729636754333173202239714410706646340343721116875323856002766056336091630574463300539347297666487599669922849188270469139663605297782928979033577827790955718493260703398529219623390440841114599087392313267089608751683940729066544419283660020095022454435898845384776171376192983094780981633402562266612501837783121951832123291665539466833049360037189140989113975668267263408745567987445955949499535980656255087760020670095039164218770473856651649677838709562781761819189460721348793833317247910486154721428703611345942416204016119330348921610707157500829480899068590947186970172774682827240130184271884071463649538351629834350751727314514073948529690209261870346917891750504880457796865651654985695139382651957420252856721380271275675741021054857199698592577071629824529498109427688300209105932305080003042141800114067832846576700701134417491243276583640734469287380098737693683257354566312262389628934649766404719581721493597121270605536127367797271547322645115736838192278838902985760183964053838474491687533131149962588151685377919844520580133803944432498132096182153300958722307202395255424099814123180704178290638651743411184655170743112382501891740763535519503060800152482927754478236278755442210025992322079790092677422324134803623239001599507924475009727108645068414230497291330799644243503052633064383124992305240827939373963922023979768408987645404605186766624464297795713189087489648071199473739795490126193455642515357162885738775937963240169568434045796617819230272500680337115183894698928208175829908603475228123844221085349338550958716656299238609807931435984864019540904433584929656224031996264623303457199919220266337121402939156041998401671327987303156445306996694640997363498833410552990953538228832895513670062754670355915102190238240603114225945580280037971284024183100689225551231847964843180872427405290603235423107207265909576812937316703163066357639861136653982512692038305248430858950433415899386003092756241559095763147059687730887165305926524493688570160910402160977153303151432725369186822565070619616733704366708115956134029018078085338952075590599622858440697268285654563341087098798012840220644887223381893646332102092059688984649383682060539929285351892164259458470455588546437158945986643282879798813572404064774783493401918910738758302684446069616753313846111431047776864175943772709683637019142137382408999546894223615819671533448414140786779574455618746422542650789569731438040430977567449457979418361381861922446731103975026675799405534934902254820686592504842561914922691761063824639012181179572569204025647923986996925164740497797304011229047258743851035656273262160292300579344525040512827483260174001093972064683578452040854543053632380342141341506458776013960271223275711682656701764299100147287287430869969258209762229781297287312604993620413817801262892162381547345803410461821380869087076994402771768705964358234829937453201402468939176181274199899063107092563107934561234131621860634350933753578834933999375898775109532324071956355164209681624092946929828620483240266238676499514754211109673391676910886001674558874816902753785754567385257035401587846879017010466346673868295127231626390263740003528387652436790378511364848293215327349634814583200637669661900208405579371763081428626581997183302480824668296795633020099037385359167364327153641521672088148523100381259154659680157228946810827481397319742000025600361088581177733951079515751798204408328137632058523188168590346321000749050012117687343946175988349114093612487438586272774545168422503570418031088037070916192153085729651381410305650051974406278039682139777608239107811860822713964434489985999536297339430669171429733979945757721848410204963759656101440932033655169036347791290848384411447972070198164914307013730756964832077987486191451149610335637775834354465435754539865270193015160496009881715256742619743711744799007436309073944792264793984766182048275932273859394474089954155290850272437745191200712084918437223078335192348958056860314214955892009747259624738833533771190326436260886872923694323321506354098415993344315391541905860129085985375400069298018000507362112821018402557813419493663634952689400835496006514341254185992390583272523202666832329469791209596605193849359283897796513691093355626820731585401018442268588414089294034466686004417103368990792231160553811489310443486072465987194764137930330617622772052815964608901962598383876878183511875995375808837893949847701510973596869211444945390005672408676411225303022719315872485693010498638962541934520469373567973571741272671736223205038510607782502080686481949609550381948801109343072096587396595525335374633025082432827738513834294900984289063910362625799173702373069002806598803334510117491455177582973226849066574250575453648751176025638808515851754459034577476251033795202306379186676193194050721149677425622024173241642044258250245413774450405359711553559361912408854976054627391007717615585204840883674247075291183474874876028665482225371802480471231908846196339073174103405650227959576562705254934382226650193505679300193342863187933963902100294146994626548142335400627466339462707911908677092139025316331752508955180276562645085246510779184505237616344737152886945307918714825101420687724635725037150118061337648845697815987573779373346128842499354675378206165292669427688987588960810293668576824186886465397714057846979382622042886942784171270551017053751935552910625182421711232314750844028118921784677255568702492663755082911041185533240931946822964206177578112230107528980602136570257020534916508912150995339155707883971463815173541673741491663666952167933799869037772926004914122503385499177406653738056823847545718444997944705682216625588295348519645424776305837288499864557767926730724411846580440431314258632232289127802320207623680537536520226490244225931712811232448929434676985877429923205721969780241646590366466296694330262645751650198747014471636037865483732760877074172109185526769899066373217082906017869109629856068102840526430242070157801995694825037444698869043668223096488747477750521275677441483045230817073173728070395102798818478194028135325076575155700782659572843524823127365570104166298111185022434858141004692564928163774480991729836971663354070727388321192752633414331209267683989384654942346290151338927756272250421796604232061135724486703984564731906172215839013597948533583791613540741527466498376865844710687421005994921844868987633939462080709287810946964088311670385410279991372025092968991094399188698253234862232013946401360088373876037234962789732858190279420848819255196410734580073479284609979154185669197565003894379503116172300551024647564190585261888436749125002229687992176005034943783951438272684238637048147730356644427207557089193068560912573280891600513522558534052419101051718412178726305847341286584172564111200144812582801660123511259531567810071487334273018008803943201679577430803055150008159510918137214774207853118465974629127389586758493911517548045184011561177163198642344279480002291734147308955837672242548884036017614456371676178907071500757315620170501595612586286461121027504249322056024194981386509685351916986686654394470798166997170977470859245778554071858589787943153386421125371600025848883818519152042143990716363479916292436109602181736337618331871108011977663992461975019023404046517169448853954009210307833392440095782854265674886429590067372086843093924245913906600285127780717563402205286451811698994398366109167329011676909677980843308493723094501032390288536343256283895174718024517849449690119078598921588141932515802838874713688753379929085975737270323372428788684885129853740800878147867225160789192869712132974771469344313550809932512226403362851873033487663464008377206578397011757786683568700054006907446814643336823874560210822557333571560555434619912570063283898540244123739740623921830328976875259659798833653055815435154473583126327168687060843024954689283880242972864846876302532811674951627437437694903937271953776605551881722980286925300919414525942374492289502285327388914752119769673064008456388046006746515573302999660786091205984829997658760510175891538830575856893087170372987341185567394508893406466917472238514189833945700972340100473645413300549059427989145489717097767542834747897300194731077915660183579960543572705104250324719201017080164741441765212225972820351143902402726046749722175352332582385010333021333507346875095436234359741799033884066842334558486911296023426945130726552597411519694938715525859511421723827175916685061647982205434058377190481381445499945682356267407048775568495972643256125822518023020520163606868859268146464356090539225071946837639469775687195572462020099274464656720327760665390668836545762820056865197908895786479211394665122816793140305735900214050968505616615022940739601807109074264276205762218093331004419894092005311098153784053508683396691386362928241886758108697521917440809467194560369326491763619706118607936148665495172041261311126730959059673296512615594454447621269707037657576943441660754120170398390286222461266251950686578022913422765647906449076161456877179274272634607137455532661739837084383441589213928112956612797957430919642906494750605285101063329445635561969530775940718781741994383732465312540240248298680607020260148986415262960545970743735929069648387077470955621915372157060547662797613116606241835864244417064640610382006408201132559117433475584558398699848768192444498974905181960947228127172117758421730142456922634621950141747949028845808372886661000034291995785692307891336443409600620955170851319404729891108387148781464130179298168663418587240827276488916111230152342034058986241314301757024424888264389866148823690402814734513084928845605621997033120396017604919643977777902634396274913212099709092103081243414793364432820935120233702997644413356837445756314004610831344377792028497110730895662405577137445561500545280635607327422710465684916161006877053477885300934582267185612101742661739752338146187175804083617203377443132350706384179679535807028577672614153257392211905542139350092934149621631424807009201845869201182368969550633385589980595827302609325653514498277519958357073080059093580636980198659765069624026151265514752265421778649484567528596415273726269080101208221228524549513110922122063023384638577534586942658015991349135001395208513645733282978294362145524224958632948233139603383465798263235778301508756860779666764125202768736735361463569504584869666687788998139545429920472690069629877656283982900748169626239398464687980082837870799275318094873746172580721790384896701082602694976163706908395467091986701781492465929664616690533403248517363049644107085684126421045958686833553653830622635022112756895754354919160019254532965745573194197376814767312156424615566571121475711576632020396465441577796751643789282138447822049776224705439583687267899941991191308408128102606559160772979601507854569785663260500938011606977240702327427942373749226228387021386256539906897845152383562017532403833322115352245224208458083289578676107750396711037312914972661278687358622639580131160379214014051591057141168323462745073288444768945717533199248660750230483810416807822375114529122202016301242006606551690935845168745384285526204196740403071645029227127824626200039910262178751515302990740808279155753623647699403771780956868800701102871936776749047287332049140802400317713818238475969203434193326709096019191080929387101410325350561348261288314956390638150077589329715642275448814831421845129154547721236735400746111098596434178175621112770747876896098697556773796466233536577736918088508920391018883545010140129463409033939265233142353629494375849984143120045288066915823048449398471798642660886565484608127306383835785871328878127022508551487231486766705291901717374608827298078869923504860601915543973966973880706408239858178863822191804647220964975698751665559317647197956237899747850371087772679157585246517983014373831868983495850531854459031908685113090008895319927805320459222278620342830408327940096602566429897737566535234252161956029196917335110708766690276060212305477403650012703051324125397021842548879931782852201631539015250276353427320117306087279526706862142847209150079475921311054884000777804466277325393982356577869162722631696847215009452630553015927410561089679044514561370893547663871151216344518016603366888318542219122664349024763489987816203301189393361497680819908016487750367925241852372679704782542252354948891975599968961769899305032876266927384835020177746755369623389829430853707246177596976280829957288795224786147383059075074078748401698717091725757650722264161918346885742633771016220960016871162970178666795836934295113812508553170096202854760615063589715206107597898586368661404475178793995052585238651523654789061559653948256806195077861229162497051214150289335363306957276573666199694968484521747359930095694647748788542926972220164438929289907717821723251632918253311456622961963600412923247399472276122939544104375012543394668649146534434892339700575306203441530044057663474895624568305650523699584528399538060294283156006187990006139633497803849389836829203941716468909919131686629539028249156441921231623958922132109866101599049517130449328231710104145223735494706981789314728918010767466908666126093366927764385616059497595277654489398673648996890140082825291176126502999252878491550856969458452399219196404087725313642408284580852916297099598020971591269635560926515196175143809615227277135808707846518688082250628676204408386494007443688262674242994792876553423592628523967811559396883744548041619706539589598225742974108202094128834577497218008350848476168126567801368150530595885099682387473097819510082259227902596254837676035913986020442390391599034253534375987670207260203380497153175637177187982247476095759985548197042870651496057649278126490230371829305166955208411220967887426336131617771403047095627127165897749771764647771683118105202409315808667340824628095194116799900475099064461950682236105492131641955599071181302074797573491407828166371968757932011075330016149011249968452234255273507252104361943173346904405692356527213192000737627737778701588042580956499710576507578443343786935633658947953811849848469147827041482563924537817698841269824241269118386470912966133310235401312748875861260608958705225253648619812579120978801131950625482213394140469671773808705083637520666023983537283318766833635691023116903297512738759846886464192137760589067289604309565985626726648784960564866769009672375942460098599094235002381484634769163638393586748348588453964419918172414811805612057799202300472597116800921299171089733008002190743000247463107181202958777208364904924887198239962252000373778014526235620413533542633641716981928408292557050268683018028159239086455815475371594971347827105725675867311465989611156391432717801180136612785824069921767209220027055551168671742066785840519483170978685778802744057167023252789985604088546320276668941888985959873081595177438925783404429777571075446005178387628241312181979109286692239129595026908791993424454567945255286007686423833796438230229358166486541307245423633262893991652775548409675172450608919466969967834638456069120476946869217043361238070627940505631189080541764850332096764210816325869809754819129453553285884693636488175224874030448131957940349975907381629726003430275557338003802865617728873451505783459099478162455759752825473754468108288331426427983370923872960776962054904069055432022575102713866355207406505225280837818639692446259284421200657857060051862045019222110098569650494066416698885578076304211775726382219221194440181947944214956804242086836684572676517944791074792107383099768096895299121262049284392241345827305436870122723816013635724776014856952537344865358333709443187285183714417958521749420584748036266494808648304229058354155591195679457494164404675979801372604412781485672109893835972024818265808414876506161878335777360696034583278950870866277829674684819921830062679135375730958403270149870670971691350702998040281638668282756726788565453151132337172287541019648028941778225464534496430947518227000939983793579619906951110914538196897540399424917439719948171265754139665297983966483744840534721731988719592962821010396285527896163706962846738181334675137396186877697332987339904517567298871280863391874082470999070834931851822976639933798262000926904208570462950083308205481155067060932103093569431617589046128642731578514914905049427661155394750083193360726470917251425677935455954049376787385018061705152490475824924167908306063981262553215132652217299639988375523773200454554212739415297455278768062931344203396704806443231817760489249544621750034472844126462722024004427280365741089424907934226816177725893896246014783901526456884511258801865924006295533246493178682401653899147869158243065787126777260279734764098661814241677510342743389789622952245759946125693799253791316450615461209674258578791894318088963652058162195649171548597944516589003314320678251345182908939528589683541453048843165971626218973756724773289551741904575825785883155402300834125290679784221588237062310229339696792120323545704127749582848969551820189503547813232814288723549277471793519049919825170001959173695956395629767720735060777394986161363607467788165622242994087108098102734401785944639853694000286487173098065691772313299657758408986717108360869470305919667936900707305234143721159904527000461843195068931295414905022338847154638820562809903620592115739294453932574789950504872220363639537077648212831101095524570533328728110511113180021943442968108254283535282462475406595702117384914467047355011121305820895530357689444735092900150256673102574348139838730329143462981811239916707826967102124584235476132184599177682972170695870876533708706705958314845383072479044216123223108482759338673519787364065277020072438643616173029788819890131493007032970806940707618192650766427328515933224421752952217147314023256491203204328179000101357330621019874513106026509843519279276367481991128083615834297709989997473240602109018999064669487724042082986991023721559655181016313755898291429785212411605423840373333285111999934014432011657903657049855726433289850044865041523842721162069709396708516412416839892808141038793217979747587146885898128597887992026391462699037489428284347551838340735704904168860111129735017399689466161812339954076966002334849095101991464236338733489097488887869742559732866635965350358503340861030304401929846214249575976386542032144568744514803236263140595108511121271881787019540885404965100501771920041699816133858749216070801237726663678703377207969288861798184890689398911830972326752760628922874450812806483146147044274810747550838953475693607248854097448008006332939979101519858952576746683407396646846079180698396575468162103507585735047163551352112973110505397112568618485648546270739373876790116602302487556992968681989115761303739833660291656447210020379392292247929339467863263001127277135646791497960665749623503468296645407716502366637561613852655008936875170358505932140294611362574912263719026331396839883966488509752608700633791789656501188200194459871123859966742430446666809065580399949764158025764669489737045751732608353867935381074089281424988594886877499366919102226877090458695186732066312405762089941983447331304703977456506058538449126996168318685923632875571895066130626396199910257434044103341313821560186698598631778943079654506640047936979606938938480258056200411492920526701264269267036671730584475763600789468447496942143256974645654895712882427823241578651154239000528094234650618152850735912315041408630731935919562637468561853257123070121309959953702395887723023972836120238000442568505579742724943954912909291120497735322664216723205189487345460971677106616055924120133084426893026374968769779947639587692620253355184670225465663659666052192591075380186520817145024962292163419375184298237752576283050934397012945916544162701119231061870697298180488953793240806816509425758174969578123724941707021539162828255175566689369622309523249524089488737064888490636182039489941545652290554968914201339301834691531213480590133391213234026180201320472098242872722302869961744145441606062348929386045796091430462974864357753425677462308937300700934983450655884822164198087292001895757949835799542263143030147394335708674896729205612149676974668794726197584385343901980781429631415204606975112986980033088110194555864343688142869475657221612781092232609846033831167745504524739424734347228914584530197396926690318211682436957726616634579140420875412691718141168914220773432144164248756630545604834522384461769799553309617196526253031823257404343795551736094970986000060587428798930925962945239169630845963247173276818873934335255847769852968228295373513186376009889288761264254940151507247695552835232211026975358606680383073411515897417250938829681294514533679349330158528212080031486094611160189501474712603546862059480629059565891882154836320224409799214482940595649979137936022302205037758704074285495047348033242496352627462246823425970323881014230845494307419123119966309688633181644696226261999006563722838640148652973428881190295649242523164242462527184718223658505373660046432380440113203322615535419713897338097396800780588329764962763029441570362042495906380516058054565154079308831311114552558581079841592615817324976459814991544500610303808112371528306461669217748977526732388530380727422524659771536047410986405055050640225033773770617217641132140104382894512868953746557818384023566660178492340459693704014904296031427364170871670080198928675745598813085451439475081516107822173186167441700568225633138805325184468522523268576352623794784444869896122283137796469664556487826065673348205621928144275783509115903096874259174158931563476617067396721640753982279115199158448220140731026969501672634565773416428181139211289062935203333275032533395605325680313160747007753235212754933878534717964414582134584609064166543254010876930456099773010095592276591753631472839900500808130588826596015339540597839294074510326458092752117968463003686490722059921802752889901996776816942957948401159751549001020362442165003899059067475009397248257694125545158535968706584878030839400755145186010209218291126174119176061958004791374462009352397095374944243877122320036868704718171127080451573033066068986234108855073876852749789351984006670022102523702028597727523593185206131054326017260742995870251575012731578349520471608644409669777576494885378416142465972887964719419077984147088093382670190482741915131215101152885939916914019972216785297816586740699802486740502928302817242734236505801605318023709591940331461603595386023842078260383041377743889130893795947744744523339435261854006996270728458090714785250000287307150021176451424217983597427086055297928863387569932927677010851264053083931008170896450167342174571958962617594261081819543577771387108374880037520556783142226549693337980471313453510624521889603340374404399804987686676359258087351817798530772784053170656920279394150184998419615438557662643655520155102764752326663241787500010751393732253693475880964644632029283035984370813315898316488336615529134205074305739821746074141278165550034542123592695027916505532958809154733936064991336009366578888950969777756090400067536981305133054722660506810930801100703071584144510315507956642810420682127278778346352294907751743530768733607507938911094969622041681283134261491240426209263502535520106828234743710270416009034028716156148063693539613175782394300177440379823279084898215595175180228404705333155207742208771902384231545610145105094200641266628421170482582844751414723626044138724898330610236943020614310904855650093851548819843761070816248471944240966287568593463039566385367938792074779213379507402451407221555759917679868521009015625360059832980286392847715301526965968594246597023289043549987916725188528069437844516641617622304996285456204294420239234012953986028511958027042212209851806888730521127176220209787140460878316927254745747164544891484048754085044312162317623049095345126338158395564526721709973297392390791810760030718978992109524233903000774779047263032207531828110714395420881656965240148056341851430052662938453547991554014307301397065607095795476050422265770108102162275900271646724161695055207390843397365692859731762039741553700971918596341934485754348705079396439392857944722918184970176255815892100342156487385373298617755397450964683745113767542114850488913698810530832051106023243237013452435493727036865817806354053726481320461938008886936834448959564667789245652947414975148202713999233172855956312096871231908804797950655154107600848228922241613586978434353657512872507793106405653171436962373123232992181835114864154772246864652797050873687771826761372334697270605109186150315641035456766669542500600535825497937116335790465334352320744727897672529014115010832478955583940980967608322948181758279981535357328419031082416743886764010298253845482207569631776792204209758345480210884456812289931081174718452466077439587053155798193937786047953200798192650112856808893470002020443213542528019671731146546735070172020238910964538293362668659140762769636707985224122694000300479946333350570084320597756254629383243837529986343866782024254266377266995488666154086269091670065001962817239448704678228634738347944079190894375954829099697945951141652205336158685612221769768420058779090603087817619696993994610630232262608867517759862993912969874656719709047109658698495580611051388313312696609075277866674517214358027670559400410031958491735774492418454943668139709316928523689648525464105101764250814228319304627121122635699102355992842736958403208731040896008207004850802975957780105520437225178998891600100868532485786045515527802948108874101288493498699434942012976360613527487429473097321160037686499802542940796889764804169808897289855987225004459501068146763037355213551367837063623449804840581851388374901832351942790589754621968989196416564243186959967810242697806282606880311987903270828988106605623328609139071575279981167364719497100055678596263743669726668200522598747044536844790942129340669835182908676501489574848057943630321757326738693028130312778469819235438577113568757805308898337529231680028815416851843482084299000979035382963007363691068530080344207193665172593381702846794639608439303620019600600820518896877471566092268779189260233840772151179146939740588965157567719618834845975743156697765332275157751214209673840910564697103525263525644144798298910465873543016099215129322282723951928077937245905388949382696040845747005181403239677858115142751466704931218077663843464406530850494923540678602820914138950174821565576493863276999775534958730799801216082813519733486654093383372679391641982144683447592194999696168855956366969422461568465210455570887127678801820951729831536853394588711675472658088145436816884795119389001424617824100653246015617340134004625871873218911481610132933326894800436961394644264852629576593660439030451448081904889975912259823194308775065115010590271505321201466258704998219613193512672451451013300585859390771910676693446905792025400140255312842663817756707268300115240232620728611212255489788671385374452909034895633224972767699188087188924415539571258520872475458667382064944117711674390206545694588088467537413639067411872836868727006289979535676459067898210721317662192011785263279929019009295328927627034965184730774006293614468390417447845288565187656995816099496780512012508013735547857178028539193153833194212424153178035565947519318950662134448767604363616946647176559606208861201919585638727654139524368351760746924108779316625702559025371633879291169130840729097401173932846549652243004271837343171833836872140176190077257935440715785715014707290130209956323498446867179860426183225919196910975836699932349565887824108011138838789984582643078206820546834205455432923590759790881235795458200991523663795708719477275886062086338428052172247322642894497978336855307066427893492272974134966633858808136656137472845961281526608618817319964111381622960192420971806157991747021683129252681555543283699088767580358288347648608121118093806868789659290065816895324835345029045881144299244375315786347786067445152067825738892701063776128167847692389189575584338557336413226347501617402027526570938331592171421821650211668118906580397954082886078109142266049114815403227299920232407467783803337229382728184062309135303318486248087104460616679464355183021158253170386835550448458731465883780244644321573984308867104292797626895223468380014325544687457270131145463896480197681593837504749260943204833439146202867094024619138818065342335526022398714916102984838616556970981550445590041382691711478154484930402293522290765729800267675907235145921220061386646548648554815964689582103432901673467358663424437797259387756357261268540912270474895330623408882012272424655431690784681846910567902214558363793534477543957814312880016810617359842483790514342906550254792008439173685887772146301686680803864375718841924956193542133870677133360041497862594404359646264206993295488623715741607860638921330105747727201377488406523864871803370789867670459256988058301287407137130255328534486799704159451733051965904762733112966451006609918500299171157686415923375739821427992034456375670668454381162738718465164279129975175284189617367771463947736086802359886970198270643215190890278772744942489107079405930018663457042395498344118189438286040925198991747311575283221921700266363912046520212340348494551342160334255583424538056632647095746698736109491641595446490788864168568194374077666693508463134413374735511499371562439102171019168405913798479085756906661872475275418812365496382849528946868494693357700234541840998059349918127185059118050890389172878962558925960609460037770893072375140000265573870852649482380072380400584871917006570820366118358253801193317656057680957571752924669293673503048588028584497226087188010772080860033114957746411831574931051481966536716041124046420839492374321503034690966865533314451528238831134209248753177312891417218346122335039272038177791973172182958754218198782745547527175722140572484509518837630252145471229829035264640880420082519190387782483322605933532952348041030550141846862641007724778247260476747603948496716375054729481572755827659897351214296915078912272405585404174063342888907886573038181541280393908631115138308242680973864358377493182260874077130465926713434940595041629642631448115377947928558724050824907748014258698555461618152243929749465164152034471020503565188278654779379904628140366336177374178271080038844666423364664279642572897301363318306163537568568901398143229649654945722557270152654075134473135754886609003466097416710450597761547155981113214354039175605563729605019611131922526486416207993135321966309955069107518906740236965842308131616834958954767432428594030507183224418146216629749967883669648970845758607963641129008628307538590599030771546065917577587035399591728433362454013020768567967228250255602032499714118976915205861389577381261067520554960951569065825923709817688149334928863170706607573089431343405297224782975527859316477492510239496071101302720963960023151564751347079681719480239028654102424213505952198185909500497257688375850899918767233752227479457228621369380273755343751935230030554328255338403350631904244631359122418506465965483997410775295198389926166149121475773338847734628432043594546200352504235400740021882394610484010578144516772961184665427792010930736584498871936593584463440447314886026887796737001430607681125544789023166487095706267886798985322849191975292952957616654572918927978632354602522626643482909350043101160533471168873106633319690362486163394604434777337738395976352696219864910254160187173997349760663021720805128157297081964763413418235502040213731663146039374710101500523944852741169932812123863981207591640076253184607895566455464312677156361348919241367033059527386907371965118787277297647459779917996261934522954373495822863083260249219437494968809463008880520782469438337474115887830210901811894689712628001506317151833426713005535542557129916233681711022947644680794192088766109656919413088897465265983181716860053621633657816519906533535777794858041362659409820074087008389906612960613482788593000607427644499255160429683218059806631702044167421010011066211614503115915328814149346371237448268974645325790352475343630297794049453665740882037996189691654247003360895711911586407887505084864643358746193306865026167490199895265733648642894976214925500870985942250647735790598966653611448083702735515584386370253567174820299943130579064262559909103210634524484307618938043862126698529617721766725992700078134791523232398013685086315363978040471578915153281015339504148467052990793138529530918270776918930109470234209678663284867200487448900643859111484768720516470914073999865468565534868044231594900260403849651515172725033281508948105684317497366497282277222024135111357682929563214682907012057555992763573755058438402976600441607054225547336146421732503613264493114002131478671046318631668550663293912339855233291106956482963738086551713286585292605416511773061541628153172561410271702121729348814420444274530467760345985173715393425217039373723824040811849771904490173134133601009937991127327391834187048977403923810416958025695135853571970815852518958502444680341057418411978070184879543809329772966605971362536039302310776628978456022635394568541184279742661768910879474197104637928095356842701311144423963632263088799589511630485102477209819494875262131897840249815460095524523526967081068640527080342018538104649968097751212470239549119326799890494909062394563835348039086866862768342586950141508855731129687668016186260439505525857105867310708526784062437648858280392383468579214190685596169505115250846772568703152447676617835646398160697191988890903219891457121779299737637154755463934136815006187164756134027276471697658600347697091697561909631891213115996954420880419713823506413277814545967923492274181315293593969611655926759418415697912146738613379746668124340754121142822856313091964332449290933763160991911558766058757564042268213071603190795406529090071841850816117312860324383215369690458195476690846233239371149294258642343398769801761869429559090172544000371712144151297641981422306439984241102514166773054053412332555717358548234558418309079174517995078679318166393276588175933147290071704681912830240138098595938955232901842588651572921640415901531283288702799712699446981090681616722193494605193698502353762237305688407421739515886597502870881944662048624254443428643611294576225719274157221318557225988259593024223698261542281369214520983711827660253262324121959696396327029695979153445114833890778176063969062887464518829866579947980727568691464408850681930834778499880652016922704996068946012886473626293296216590460915642699114990184227141458258146931596451296918468487814953788705859208594062698647399142151214699275294475460070332000252772880601236995750407631990129186101363384892470377623064789346927376312505740318112528425449099136437057263810149326743591118318143651316238029127787991306375138579769004164898395314022536428311866793387783728074038724850850502018802802574452063663608286835631322603837289965475240188150709162908424777580835323839298946092866979633154032514874185895742967920661659027281323786814822874651805631768605331364302352248845981636463760819212595055656882639402518066665423289355672453156486808232559809076815689270410697966474628583435756960141312277016067654162311438936768721544546995993778571301703429706760259910960907428067114796605751323254929715943791625913192300807709697963358595471737909590063714374601566264169633425670340620496348337644754556909378176571843967253232017265038465990847549280117739931942987787734559244216110896609283182271477396218352294469910681455103045932541411635134663851964910283813366366330135835424346039001037407503766464459460868337671891687381003580794112751786118659392560569300111554897122691397912228387409207347533389356581753660045192242655014965542723473974541934484444066339417069192283144022728591983133702168037392188759380496393724490500720860762405443902179911826916913695476964808079839532806642034499074401864511770623542687235008751346517072250289489774913650732474256106510023409995936114441463577758036143069850746586550585295392375077490942449429366179133617736205410854670106072305079849161017980366238353931950241859699763998402057337748126001315498284153577156167172365568815609516219019213330374733139248192778774572934240652872061262049181572402189932398558764861067360140694332508156035043772046246156928630427124359638168243744485893509620956332785382478389120814829210903574373581100783035988111176905289516835399577187626606623815711686640897986182196325634938363046176155785423703923048420944481407216031375747789836170140587157289203995861467809683535146473749430576344991857534849567063918794772627293214686760609577858434672039151074548229000775149077909178218672990706256669396127020277594377220074635913827469565604807828427764867917288024185380917669511312588013421089935124564520612986112258226763383133937770884821861947221943576800051058464140528657274424905400898484011902244253751225398736844608330485859044396280671356309659774807739244515294105900714472831239423560500315569078007077142512914684567550444203605579327295857727803170979907314383893141058576215766051593570990210017387654107971952027870270219157055670677744649974599280486607493304387180446224942592971269619659820304261931801957052138792017547147595483830847067397895499234502462058494314969597207641926385131330404552673491580096823444075013024135954877335674102794045079812022440381876580257957616721364048719356333567956318791727762165706131437445431913065878163471883290847210264454827680188692176165135373695663585299060968112951779993969693979264794860390720135537357453186574162412123060878800235544246319129655409249730960417537455786982211949302825291797907161787674356876165535498363192349292587119800467267663516877318026460230105198954511705507614035211868174488667885238937465039447808852654439078237454286869745096660792993796054282637459864745746009270981070899511576277517907591517590410405373810572145671959633367342733628794245283353843416631499445852209643016432794924593510524506461011430878503504198023082222507540160426992035550473335905363072659199161817835899058568776013111137402427082803682436493136848197648261582360225554100245645715852445155229320199943085112077105893172015685481015649221770871172539498996228955903680574584034914270323171617271724953597930714420505213335289101683194865602162413934401276518178991458532217944606128627773396564107078387631221949657837940252810266528134385129651111359151153928234903191901626725122444340634968677479588124732216114261391706875673862871853425228892810227497761600788994393563378482561588929926097717907988755198791793995578597288648706391371501585353496615646656574283385223596691223652932450194838428169954047340896631523371477403106585424878712714717356962728386327347493476904068504026214550210384218351976005487050878793622448605853703101628715894010195817098270572838983981048629953218039560012333546914158113414568798407282311889504415128106061577895539537651713989225180663182451083605173858198848099850723704389634404820159526861323280033074305915607450562974242072895723026888708991880074244579980387643502311388968359288039778971058092605369635301392144212167440790926762756393866080924210594612620293393820697845129336118346949340413881013976412523751285815500229362290389797648970062158396784839939382476415025351261510739822528094495335696750596129610687664265894688184385495891726024515875571139724100527514012185649240738487641642606750299516209396714442755198638173227407180979709581197954624026641566218009119793876541237535177392458794023489374837238518501407633082947439390601371504240325385064449899840058672444880778237155253641911269932724779326295339765627685107020775974926763944983091134353107576891874017639414430409696707793637796960831051556168446935148075371778341874471547882749505223025437979002868601528204851394358370358390127205551933283412385333391090768179279900407357548503612927980969511847197913727724832352006607070804890512112325867736613700013886509798388784880301389167626482685104328725829358967215324301486763668489574738309690573860481088296252446408754120140170352978936796150090045498849417523339076157753805102231045328128379572941896095143094683323578167015938169359884666213436259723465538182294770757429002899690568356744234810400933037906890750125196913268739010471845119589325730949715895811043416538017610874353465004450051220578984870998957813026069240008077067041163943296148628345237413182838690842444440087580823846413972237866240380350810347390310337883611396440899964033156636895692164750809425880506792543326497348252473529152997515287516418441325799905890778323712179644428156098693691288020277060305191149657534325431546272071600813970323305508999208609207724217034453912555088799206885777640456413477163857768674562884599087345489405004309485605122260799541792940442287540453562620208406980929266012807353478237588933100931309949148188347136316512857873360778226637700348085215117287293014910345173855121553869539102661402291115606534088438163646747126118155402273210036410871663102540335004957578166866279789767393314143964566004625334319051176299173792690696483592050307250813401318264257442729232744954844721834764735981455061026636763723422238337163363913468526353734077165923169177228417747403168327217891023592180016754433058967498458600988283180007580295985175557209648008042678868077075493786694617770085359863952629956413407170738146957700728797314246318963868848505026472792846628891556739955887695258382352098898770523214506709323508336568921705106796044974759652563344539929859546077223888604948865810120000998897921969322181822767597105786347548865905888972539149494289431396727113094941228872261148857653739347794598594541792187296683606638728128582023387315464073908557096873166233370022403353091333192477094225064816474092447104207965420392884650906596342372654305196296480271120673595676296935584495645056101030570094356783039182187406285952282711675201359000204601549836594918830010870044041974628833837934234556329111991420698268705563197971195415041031721395242867964720881067607278630771685845437748392910483288100384412789037527912212629623154949847719275818590821194159700889735375025460827348923145317150238616628168643150373865173742396029809418584561375391488257249979093427417549329523729672082358807977483491171933982271914537149581162346799759821558977245508367281356250732919576725947063293633932665874798885906308370670086873920543021132381082512120154986452257643615993180906308555320935331205785314463096302197997213639263615204293373486945381936813211890523851668976375318561107430043501443827820875374734103358167591217392467264390805609657740424504550118782531199841836656960127031569469449223527657688175822351507729249702423519050332077458632945595830861450551976901349561569791268609343077019689971448316556954680442091296422136295060235766828292713726996217677199139758387429557802433666660813834786435465148632901848308737592059743423539180086862880670216307059521971166577168055677027171922225703634118829415858480600578077946514446113187304314889333846960676034847621494599600088658226188495774066033082141536831851656406077917584657546008260314964081347633733414598718964770671631389713306977221108641214826810555154130895942952788536418896815130135481322817592997935286435557122373488365665222860732218266014637350795237417794177886348696092416715084780096919215472037408331879534163976738643371598064419932591135687688905793570282391013054020012895101937323201708832241972123134913437320344019100099836994105568936671638123483819214052381532387270403149475382917180326893684005085458949967975651496776255879683690194023627066541465608222039591254891643832787286423869405906992140322595086949172014174665745601078032239987666382765069027871419340215838994205452739216992258008154991136484568866511880595344949063658836474615488911548888735943230313349231217417831743454213849038666043663571083142942555594800168228528359233630373799149656020829790164852949131978893449307432921749841105446577624649100028933590554840884480898913447097310216274601355694941113785236343593883417835686144793715649535623558116849823444652378649724354573724541564740167365763795794065036148842719814088006886280906822752342852246844974122987361015212550252967870565838235458162792158216521662171714034916454419163817548229195607354134375527602079380758600863941125885717701526882051188040426496128842240945251363350039060813354903557641202005004237467552133037374299395273966028035004853094467374650646670623067515486910587471190268839821070051339065133342035082359847289375251339271951946422456502271645710775498107779993401214871659484116648997702249767935764527546432137546178699253223325664895895620273506367026340437374541337793497870429184883076848839070912040528384549996811085361582184805680507522675628786274297667073770242963969168449580671683570967232825080561248653168621681549801777362437175345128869907963446811472340155956256739510488340473447686129466649786905785618802713567290436643194134928363757710964982101986001264914562288386849291327034050298710738845602388996652257913876421689254563026571057680082542350671910901361644311015869336097927275662308853806665989620404243944433016928468136329897842840470779462609965412138861955898933354890664802279324433901332895383947892287958334486342460962969264960753145515216362952769229868320612921963221865535995445667662030298375520373089767703912169629552310098887779592745362397387582140756395626260108071421489854256234476284896316431684855437125588166990530946242663248695485755883076533038752887670283654717802071339676384101736769460317864403032169235424345642259076982134566027995348935963455040896809943399185476913866132822383909678937905773536885924139582319769911270071440237446868968102136381585331076656360656008958692049732071222987928705394188443822659317978931554414050014575251762131337328186055834855089165986308575773676276594603045193578871433238435174595822858115030075155420629226986131291047499637475713428617357041790102680752671235541251859265876710996245584975738595395576318160401648754516659047300086494552297916869305927535912754956385290842468794499890694603394821084443270831043292214454047632318714516589553584751920091317220140308829012853178395312902495760694795348291942731773604241011755605607664488989082101312669674857707963383471424268485418481072642825111195349386649121705950172864391006507634991462257797543402362962134765681791547556416597850752744819728591755017122442935900058488374870193047892437235957129984081477287812687028179046291636068990468546403879344018952040050079707814520862325189722254834644736849485362926952998337662762908174131102072071911969398797478699758069497428056713245593701576075672282541094587272471544007982169847290838122026289211458002474293493231007234518019645830408149432199014897104046215675463670482257222073206960367171855639535460585069557348231622440345096681893002643777258954683501312160501613681236220251325447722669847975465777871243878116470573719962502015880794529555960510760053861567848381189204945236982880820283239408722291683012427217725920993281225173054905841403070384783449097106594436920449661040449915688970583346452358222867880157497273797835736984394860030749235645345782320143405617408853799481323818646352688544216051849008306002030788045419959516948515896525474955401142238228520004078725241330861428059029092152341013939381753584281439804230378622266506165867759719710935592179839254499869167933355238665098778282143659737744635980113364183043151492479226415108463979896492617367093092812052126998611494660556852955279883118509237748472682098481960894976099633423015265252030498125926014758274337975109422547714747312438055574862201274818916672245444711143492390943237497392179307469203542267873362497300190111507757767511550709869001268515806115347954178718992018558342567954098497662720847684967950425263960766182612915562957555991135107815717195194585433058552452252966405498381198231848547104655524880242697146328206977811450224406412078551724729409176771662782333564955617078578318114939203361504563131559167119476498043751845395228495574756992072484391930001660857096880018563469023356604412959816992504131652882453493475841734025548125247022717019538716222537626057901233462951016753744654647256355755047510172261994519090377404413188099843564202107528902378960090207957051071703816054722035113729531730595892289797659248851357862499254404386594813835655653103324387064163583583334952965450239862225774517402898099914762622290230813787987533477928099225115317057902171996447978345544457150747932005455217947021702053881274065700918328813286913154454365565050273770945115761120558972984980058801454906385448441079040897440871079504003726539916690122556049160660749160683922208853028292746394011963456944077764540973393108572077747397187460450833805504455391945207061130268103380461533616521894299079117909673043005294645819347757389307904728779656772698101867086609834970943618557910885680900522521360268351313049589520787815250524891618066348735599235701400744047032178843800487607078677599036738832263162624551400359930137527731661796103408731193237453256710507128100809058186832125839782371834522035724137073258745681699591985280930065448589143414518655640445637614359902768910736725041761890947947623767733988493680175554137046806941585985759445827675670932781668184141158656395589632667671742389186726772460826926418332857928187073721184017090275520229707336164979329639453085704640175912696946885962960811345327807641285141378328210190966011265614432511694835982749939306606481076856505629870603269014641591990011184800443316249614815772170335165184936981134891651150607806522931612432196985238285365698208590385909414481140601934296036434844075360123516663386528321263346881552079283322421590661105806620890587144763648055616195033090814673630008509520080767834231294321076420674201636891343944073142719015168541759640344110489910669540492860579165374370129378731631256231394474346181080739528813426579363474135870788995177255804614361012931031543370571669546492716479117118628312023882847939817412900744248892199535165205786547791435314169525565580806430051003210755871739784328410138802678452417191139905615071364090868632402655740102922301855756479197716028545489470159959311781904636790222116219674530081559916409591427781016175288795127107761154034037231396309926136631201837266429721518273830581327877768952472025432379705094993810348732645824841969977642842692515049703201033507371187209276178296682624943873998350783774146972380850115223599982562576818424046352125742830655469636114317459401735218753390632981313065620551257647763924882481599293835363776512394344476575326210693264526687509679545272687634886527261456383359813368698740662278380435821732587965410763714170533391452297944884590917363994224613632874593754362589041859805783664533378797183108164729222395109376093809584010671791373241127203374147089090064237048374436448528937938221594274544048452692447583112635586328329166302931554841730463416572831683930365928199162139623831540969728114033007092256844054942120458121200443510987549366275800469162296598607319753366796444208560015634083264767185777033963352210057129643209303282293142002267727506681175202893223998638766637433502854480593084370522858906746936236161209511610484670915496063118026502126373349320336493015424955402149134082614043008573867041419435717508448576515179485515486173764869900535244825506322459626760679252897184589383513075634537130335621113958434515189166449185016918980375039936606867625771676206997295590436308346531269107025974821905687321211917397066794590465776908826761018206221170004429755605884590829377110346464946305569683081296221818175916137164704833849572042339271482561414574985203024595751652186848274394148729151837990481054325786585889962035854672681498640266331537384641407280667478278067207783740864254296031759325194178934061128894908636070107066510579844364096892776448252618837009547808948474799258489851920007254210792912195638570541793404140340697888292227840191860328992188993850033582873876093531940173364994061514121670684227834357730390003760395719779130226308065691656246956796979807944161038414355996957770600752604572525043703676365282408700988596537830261665081082557640257076663371686570124955405378558579501504797794953142729839788047598585040831073394600373207435336831460682571497336658025505621786826085536853093090335803035392326050760904999362831375013787207813738406046906037114424790653349422561652382641974858890679272925307413027207220659467376675497829758890802339675341048062522991079350092325134251599280810531835878726878210424485898793257795822487587559633432513240503595531625470346855934522594006745296489906545693974493117914238145005114167855853063374297034233817347078342751925631305307127322449580164009323568624921336420231960126347349067173406783312394553565718127318305880094663290904593431223862596032656787568570304689710613077294736940259853596853376347960906222523658936348894315632174918509393896253946181591987958125605647542454000216882028946069372151092929908962754119550169943268665114790236267729358461243126800631853142378416113469728314794573544599982459708941969403764351327783388496935233893755254494263134687968445282870332761141412153647407197720071480747795280042019275507301715319342454211900556797568649275518957846950724315507792897940364300711335950076959748989773485985470424567462377418418477133972930995110241376799813817280878892654847799191616930038186294056286453585258270356328390196872513249040595162241229453679890630049182588680592789026985159389717352972387078420302638604276628216243595071520672899561624971284869010305020253592331146949719569712127037275937595365658746245574150638887804986475687698385109830071662037975897512052715279392921515637074588035779887199903992371769339559892404018794352116430820956651377878986812842921440239389022627722473995079734420387362020470637914529015755719086418971599680460355985663203737135717985947054496906336075311944630327625020050599684090992991192895289191852091952376865796957134500360751707967985868224656136342467324099840804013268806397572563193274265265556613128256708836324936256520649770848545513535867131094594529490432780121409086710062645277003863644723007473024740693678427367808830494450858338994287081527030048441828278526603213588664953994972630472095610766390080773528691140287515257446980979853412288883633469809015998572583780608787362312936668964444536406110311635620612407707841388248660659631799523203534718456898916219533759380887679702965893985064574872633499547740255932999072510919949647917428724051773664171335175780018608670566516488133565611873613286443341969262001242888717276931839318380424566609899711152155944529888692304612526328338613369229673614471082364510107769138502558084131672417248528940347132651124001547990756870122872857421437843920090542787339635513232618247835488031056003265878335262482360357963161414168798723450149362089154608053706997533105567892085406763162864719275143860960179138082158043458514831939029282705559264267599515002830953428653783806452134709331591134627783613310866062260211840814590877189394390885518039491829488191171313344723736343763147636754604796942459211588559782917982981350713461575610658552130168461129957456356166656923254911050196368359927546219548024961193410325548265947897178671062786405525156688235417752603098146526620623661223354837046714069260233476990536691242573998397977501969557919686744126501758943177973787747866329180374230568200551185397573866020410538978065546071981895668128984968394931110358491102539458697137068622708285557239794861661831469384080559242269398525972640083328888576884902084749922693461255150807710429260213996302168076948227163781738032515462539211921886469176114664886687370767719488715322372110765604772760436319795482281603311704945095584520909329698065348827619590074243827989516053013992728020056578663603199521978072460482298402757090234956514047419180381957445449101357759560306492022956721821387761136939197647848013632489116434290119929297682230536138456713246864458292944179968136342584953060477385130370041020827908465833958850672997909721549355993533926029708752610157886048831053974701387301200239856705333668074827568127803589100774370811368235774987574953713341725570598598568661412780729843648717489623792336745758513185091389833520877948320327983640332088486795631843371828415601291050842135849163183677363323052453902553983763206489192017128782946855972207354982063143391554949080231934948559134597211004079295751182737999092837289994845447265762502099093589366377062718432050574785182269016682407687806540666089183594054811988952955872932990756307727456206672052651686157424166130890724473928161847869223145808216677708529312440828414010724879385180620977054422016596173313550991265099061908391253326492216532594459727418524350688925493139575302200093886883836706850627002304483897741802213342285699181604222465724812501299019487661494073324183024362008295145718696398265485209509932967762377421356323423962002645202401338350199430898967006054709275757557584693259442089465243738569291232811264269437675857196104024658411239847319707826186388616349448336180916792811830024605824109584963111445268308012689817716451827809147437900639773746355261686421106820959784962432551016406420826405775686490882283306326668856224946017219045993901201856739445919152330481296517665800100236044683143087532904812753053587423736347124328666256436736650014401696545682111298323811892304041531901196364405797265094195775093976900245597038390487396682973049764855735565357366033671130303334342103463545816134968043459218312000607200478215024511795395106653463611686932865143947514124084360285367434066204977020163028277022315156894867392967158047516124896012991380662509930232487926563951625568986094145634474201524607381361923718807846243833542625765675611892612751250359392422680057557623892290373464352966013851260632325812029108388839940395105188923212734599957735301368781519447171938852166469842957342723772029303594029982924955097364718520756479028489682906648005510139566165301564426898933006308809879471779887989973813590304722016600398866483378134968722324535625640882899756996156362028682783151703927589020421085620465569588066658945760219202938781416686171627331511461683273364653866815265392346742693070617172696233403011060099598034054450830098233447530528553452319993218512685060690778863972707989524571691358753848142459563289625237996172647462370706149530691180716518706632500852207293019389211138819223826730581013828453612609391270439918580785090439697772281477886503554729950533694683077668560075986969901379088721012466379214719514342168927965373053215663233046934264187007052683278099069931670648536935737044172073854513001059473491860795122769867623603362806434308295469143804058259205003565575890771498966321547996253805945379062810437897129894386522390187643350639973229357395951032874059274559679001470355156638744965335628096623780068834345784941249020780077331625993580138228952673740953064372001882963376957657360945365138390824851386529058953809282779257333287416398623068518341875532230410087951649435699691119882375233804036744246308432071483555807445238651437085116848385970072306192054625663427021788850291482689370066604698025629629073192724599510615971624970959175978531266405409149190583545788726493148262571168390597626397424882079866049228437592824998375080421752165046632735945571236498422453025589799623958132307008104462151304491728623779815775583904586315034106206464652238150824536546943419059254502439800996169172306035547121747123844734930786663097433702885431966350590539539555329806611066451551233708085085675484752677081988117829580097722057749990415834110166606924081841136409618248810028012872681772821994490582906681299808632237018975570973470999304472182012927175154591411644009068761437522170481668994333459438660072388395408025962427065733875243770180900696732295347510583272705976206338350167684172530589555531051230983452003614452691907277983133723631402097233622674360540812053481156205924996290675490041950874946837374162787369659653651125222527083285265283943876394979582176917463780218867021356453528811218882361309352022165301897863795580556868184656450730248211223290108074985460043695627656359538290246727204940686158271950855155568774495177174653197678036429709060640705798807530097206318736258786491194465131008370385142809540418761339530072843509982455206777509631335098656044573381710814956096944429648003814833241969211404883330181980434847777427670858631133387211579268067372154025213852453122837735279620104128999322492917035242844764125845419759469685263091161958551964169976098691197406956384558438190109708143211563084763727142047867566043568900150830807154098595695507876321861513537856126877040736084051705589292477123493089364923715660977096278681641108197275635678634557798126541933013763252993300365134396853856906115542356558548625841333391668252463927531958046815353696102528439138245596922792529699767001317924649408767093153471654010833036623046160164604742971601291371833968145733073977956164562679129242784960701576876857697184461424354330007457558339129227045905182427253492619861424186807858629528943584895623176148608246452470358305171853302462931344561828818883479653030501751197326379989684819428787079994274860232540520829483068210457803821971475223055838863515824441148092018942728362120648166946617787561535161222731995030372748639874856551294325389102954486640723466754362774729162196020232216601715229512089678649836787640424692098134052328990689634122796068953286567778663941047187523031785550232879665861820295065169819356723508874529524634925023430075454654734149581691666760895422885241028429330620891544348710667504035310054781660121049268896018548021365022052571413213289893206933439793663753777966684665838018625828392949173710819241019316316129888860003172532226959077213497963539728846442879785457611770463652554832289762952859254160432966978742581457066886715126859652722252948273036778253036614791046011628661034144748141081310970894957496622700483737562753733444828881264889642633848681659929599266138418590509275562248699411009646885753686335995089751677865530563274029942332273492939827386340962361865080338938806704417741595313214040805300557027693655848740983525187210472053578967664890930737324379709639360696826274473699083020368556796765523642577333386698179895487549673883328742846897710026258241289096426955261661588780291520755097584127469336613156454720490061780361462015257655323348340568322385991883058577870235987118386008779238100761558605754370385570819954143059424569319480147691608552254479832584606560646110663721598989084378299008106254411559614054833811543923644492350657096441835783064162309190202939686765783823555899649615324554824817216633765417724312561589609227991705103469636357235293077493216989512971814865791098885961437134578699981746583540109184853381764182230849768150114013743140964837465424981902385888347461626861609528711875358141285268234673784899132589512224047423261099387699048057020823658018922252409839373412607613990655591399658125705433817819400818433388441189563774545032730310747816474917211717244998347562290460321997471427633470436746840034509928404842093458523299756162746746535072330338229605356030660748996234735655961884635042558402078932035059753011170590842178940716141550025891005457010571837609903751694178618499517506282459915859419090851885232095051638175720236810450918539814352654354046758142740753791832642548284776103827125791288190922764026174624636945072245184920918030323425520146155785633625637690580832958528244834554111760702309756641416999131396625669606380858121128076276457356794600897544369921189891287344582273460649441413560767992845784366111161024687519299643722285413194301252694251138986549915113276038410394366906011827155825491837149436351568851997243121333618964009326065460340217825377959209037016796516152872555090039017398749174768478585894888941909884074643641636889670482579094134448134644341152350316208459546265265048170800283061275732466539529085963554244519191961566830282121215180679655702648191898723947702629323012262427078871244981379613965904756574403197312861017417119615188988361718086377847775979852375439980771461607866521200078620427854997385883402614200331186844891696426965773549529559667949453707557382094727515080308260774042349842271388723840647040938138939117763017876754453905333102766446039773361839035357400223356319484654230203848629770797472895564376357722137309106343281718302251359313280011810734473742643574599261720789418657980475280726201093292786969424449099012044893255368980828648854152711795663902050205100849264473570514826433185509419975118227817613846048353057143152335473512920311619583406357438062971088149070119969077721105645356410709444949413615731951284635178998038885313145064530866885479565423060344223259865788797803952019899860639849983424384845488967016861851014435194122341394430810300053160221106322277767331636420992278802401989074342883307160802826313226408793284905453706246837228612941783013632543401251627752115973050310001836740651162910526923704903607245634535536618922360524715095615390487074993455440138178772013007503942252421450470190639594603940788401543359729891928621990515932816706288220918113938875478706022085652386370908411818104514767494890139892951075700116629002621439389937855766946177258356104961985591127667659633444622610231928653026619677987648543209981671511109202723455760602644720357431403730720302462028333765363409399889705072672398576374438651557425873223974825637616087173114008221722480085481575045527208438574695350775026068427274375094707458573754401019197127071830362809217755676732641083541641414232730613710202117447833903663705566625396383486258408937756054964928866050903965515372325704170434078655484549276115753197167638992398564517316723212963302999041398476565318484109056062089358259323438785820851580848233935099281512810389511554653005683338125466624353978585605865375114347376481166002843518155550639104871960402760921076427273382802246032289468123230717882078470056871005502458103784949817978206717295513437818651218576057228301863180015138003866987079084698362894682620672439598137940443050350919970148947209561436530098923418195239808650396064693520085298819283882680064364130124859294675541753456913936634671782461435912182281171139445511877116831021588798249142005922062140997600423718847680824417457117997256794225206841035965222777601782256085073155149073535156848463590436797218049561233709039886172977288945830231008906713639695161805936267945480330225115744174581700272815797698922210168842872870824027120234118498444284365882335098386314367788924195338428187225121837123684554294510416738671332869527571519452453593611182033203125585090968804101616068022286245934458378469837340405315907553904760030712690872923432781907704621473719428455483921872572075015370814486929412546886690222570345421409997569186713243572739652137179369686072575391419378304062680874028185769100878251016854148773728997069582167498311539761391189172263402849896303460314323886304097227507579760519631927610561869938959056357089104978950190834619339165302861750481865601947389360854757547298320143775913482530634889879466296149699239995303133312939525425854632905829092516050471232053133131692707915334957967375466440212117140037319891038268745885881345709696241600497511093626280383368049589587933858778413101105256000126201987842862939268510824087555449021851142005295966187455910642917811512784701772992945899469476500256607022742795910267198014889497215534915776261200143357384851256416150179779684572873765316069714603484132177121314039236007805107911050546950072877477746030865900947013415838500722424918016354547727636545417583135771764095666841866022203110740872754096644017208556459071919111554152919288374257386279280849433789717192812693741786581920039118457709686205324516187880554131402899299658747192676219756129253651974307527603660007224186267033064035554346209455788759261766318856559701123896349925166216621908079018539662069768036409716388598847292570565620152974824046727863884602376944099120710251083516978508787375823120781722391537986222389488866751311386388325094078718714621647820737284375919696449097625769794471155538271021506668048386682702505173657313248017973103043547646931062892761754837357474948860973040080599337637291903326460890214942548751475091307863779600542217343590876022975788920256521300745216790975248760400161905027901264106877712977691811861923375628274780706241265205551360569122952212407638686606488597279127857837576904073408325419792572472911816620812833447474735142141532040303887503345395578249088212218128033053811390269196676186186108010232132602208120713423955285825299841256296403031292217810813439367382627421710961098374121153690508839652252240166453869198547479632557100000649598978285374223553433490007545604897053793159173448347246835124735831106217718040842007732640139733456538296418801838314580312900476412932254264410550224308010931130999828952780160100670073786405113609785239625876851535654498802165674578270304870543030329565119257614917685504796722087937618874297825581438122343599578879692824151328458905315200467153904029389116451345700064304525416668990914558170063869009156957569664463437220735257537936074114346583985024172059214830176882305859786166553850133580581905422818179208536896732068089356930332683316503497891538704585747202334704340643416945965898813363613398500781226941932309216147074313043467567518826995979790003634181544849848092593205624705189276486001937305662759563812312434806026259505037383244322933603282412124158323553104142426275646554430589967736080705886139272318393721308514509567079260730584224126559854557131777216889610958860983254092135274485281813445578412571798363560132234737797419444739105950876635476360793519957977541258611324975282620296333384394714409448935758005359556134601647262128585961006042816962918298046530481711004822339689231444999275875372660180435279624954164124790449122936396610370351695721446457563837537646610020697468470021721607171149173425283237752881226586984165609475219974536348917408960445301317363407848475118172145836496223838113121012095690644435487006561729193618195893898934264826692992959300530842714949098375214237427141527539928050198058984203117685726364383576531867016146348558713718628030980438711335727332661394855909657997027443358400797510404338473734660105762424389051408386510329455578255617721259105992491001990907622437396903743164903204196176894668001861647044652613445465851066671737285888352551257982222218686394959983270770126868148554762662853780252249103161374597043058174863613803697476756064912725963740454568266009331879564168304165558100335611097226276403315184730272295854766149275649820491971692652549158345940620317538853395835782003820251791129558735913757552447446407892391164239606169850283158290243275529291669241575733677738439084463516873547381258797997267240517071079512881982019450302308172654279494047433453926868242934977881670119237361362489632402262763676975860979175766023159313964737020892510371953485827964353659335669670041110678370176006939097095883314327455580952096930171818656887391369447320349752864512574243775797992134842830117846734142537619185075797984730483862801061460174607086193106089589854352381469966528855688426627036635645789713087644929201022799006343236761486930773766463754243047952254161392675332636037641564348561689296383497420700283577840265184809323473835494936105697397400993743821159703250230062299350223003450929412873181589706295867591289149846853789978123837479231878736624274990106755497687855004267450569450486144742417460951172960741735139182426869583924581585400122646352457503111333505522132480401337412114909662596928829811067339603828299139356690840371539751300203275301614107692576154648883205106586964614324421569157908045683633361103113462947914994808114341639988429955189370205648060929513952183537940908330381359174898929638739523307755956848025032819360111243578995262036378975553829045152699722335290411804329863730133390595419372773044189041350424186634806636914595343187206159269084640025468273748562694621095650958707709727309396686244868891629467066548189103468535466440397796481240911515427954878791453715334339960057541739782590331588132381155515655899188975127467130512333038744120544956969423360112366698422665379921586476222918036069012292638614330965161718243378632075277261625326690733830971941926439710309024066689373202021696403185020777110032026765619140888278020842096880352370975643624935051388012557793900159917242075761333470503862035654800976441184086168432338557650364242279630031888125571188108629899897281508397511335979053546403675993073601471017944072649743124726357070575606299408699864958820336841889258048674683734911279420219899556491268568915408621032213204456926426827460062385592746147817444581173463804171541309412297797513334828885523745203541214758106594457653545132041850647257112725877495015259602979163961972780568787460207285328178381985563385209911153288053651639925405441128352862338928622800583161246760947435287971308646709497909795908667007358849733311950212620116975847692150735607515088117818026821583889376638531256869897438600647875900154913411504213580021575331166217559569642796856484183522070092747068351226337412756488642063351810181000647669298651615598132460136392774708161277253996446427670873444920698623304219340677870291405069841805806191971595538828012511681675358297460434520685505292473247261799341577750129737088712896501366880365690513384802376272294627839861617794829528478981297936390509752973555756297841408951027398377731664119959384485968453614799084324917371472826942473671775787498561852279926945607052825240124866861940275119815157737496279959856555464622819656390197817906933385005325140225860275755684734832808401976061670469111851860960802823224810844425514512341547694066506467532802100516015692889152176952812125875630676338295750619463829950961566203844745281457813045075684513885319813807830433391270999497120534579929779124371149685739778872482294345093817140131271459303307852353122692430957409868295432124364042526579193835323394774413310389272036168607556681000568486001178396269667926580055484843187054024783250517600191268099548320626734698010116806141898559687720545881425955919043621579865028972061948684054784276912428994473425095925876179950499453903414883767148727610645712405217568770929621495743020368216008261906955366096338645341857519626210496254590833151270413763046447236138328826118317892336030642977529175195997507945347700492976697567835838823320609231462250094822601394518249095988585962116261710477459447051871268713025851356437704255364905651353279162889278156962008292540355389589203946853006838717606279384257248926223325916439121974921771440332736113179999550051887043762979753809022497970945650031709382456650105270330327287716727301196022351528451761758993518892053950986863547744209497209412343155264952390732783770587955609663281661250219629955437633204899347246595199194352030501659934363537367111480697280443823931263529087829712989705200753862841644408709092279362510021345209088723471888394106766876494729775780956351246245084367327684832149258428059660901170270359104273487795138221470284627066210077929496559103271240695547180179184585237736790928684090654888476291492239201258054387571985168552245472749136869768152715041099671669952735843321604191982383120773316233102196994939872347956183409188846906575450717520173341399025523550716381192055986709372042088801837727198066525374061175393583570917760379064803728810252754060806282003674160525518443421423999228046082679815908191218933762686584180924518129611209551348775902616053220604223115697370987417006904450418435469269564239183677074015136169867266316934398453757127586397896187468492567029988394213213959296707917681964245889169776585127058669198627858060206539016223427837401284256426797080784451991486666363414714054516214341026650325052054751643047709485899264623026836440991621351894958414138978866714147035156024710158187770210565931264475449059559394696112125044138351710516093941485485913358202584032434942363181195271094733797042134677336704658463105803393693560631872250856032316146093052748082476592969648816564687699606208987219636155527895143167645858122120143829073833931370230021599932018115354132243092581036794235291074568738296718677164489170895739625746571480811214592080083128153261942040337845590037756202422019443939582968359047191107662552740562063355498821105226505153309660836071770932213748852701685938317229054525921930030242042870733538332614229108858594527716163195111216410739507868085692038362220371801364686556209425157839293157175489423571694982441646985345930436966055027371541964547171256276491714878651512978536164923784344794098881216532810515076116599726822635119164833322071467400110231024519598259578238319117728007336578591993011050818231470800726515749519243686272432674429549408856490706879128248050734841389701079411375182911443642133204893494898689690477194214774885241076810552330318281852596546571155262240217022352925875617909685240397301953733443918198858654724028582321501295169581102461271595801274245157911493519465447478507673091055764023081131697401710453455039980585606213524592080553276168724386228159856148476613703057629107083935314752849777447482780464030171614386889970618135418251237786515324997178886921652880775765915042970674019215708589967324969561621187655428101688106233925536581575577908809845226061182964631084867705164868822181305432403267925248701175438945756603731819100970967734466246173898457609141647414368493005532754432734365874382861838321612106797050780472436692319401274046111992954359420899417111290967247903314421242343308011881709329398965683132912764122438079681608047226067047145140842809172835833999080139165414425482776940726074600412380704757239124004165723880217562321551240775142104901511373317976738151050531498642541179732344268554020618546030991717657182674345861134285885662686266043497712656051151881405890077269922393988076217640269750449555063761297414427045280588772847856551625288688698762906791464604809249502907857632371274274533287475712467459712279406511593437304948268327294318610344792881152384378776385008590512715862187700542335835223636346085369006489488582846234906107882667415221357508186354363211647640953170701157306182576522978784094173961594775362378836801651339328544793990410096649157995843009032501103797541471585651961668226186765276649119361137514096859507834825581697748849007771933166848476683354419892108832584863153628536317091105404552155216306561573867105056583459726561571385734474799543312632594164054246349893322718439061195549066526337174519770238617078207619900507891735694130671405975101831095871466814360085632607127230032318519957939622883377766281810988456114754985919445719645545948469450152145111589418488023861389604084320899160977589892711794208268323029851575226116655614029942684978784988652557700020079642962244600166220230329717286153018100506533134820816029922494343615356610934049282908795893966085438169760374202246536968003233883902453082162047450052086764861838305989219903692029742377291693000373329281713508584491772574394688803012908959449721763691830663009573567674538320452681662601977012276015253801498483962873913049318345402787273164780279842799183946570243098258674955135208211141963271085480373778666449683652053657895582579095059495414141946868953848625688980285471505442014942630439191127268031095886077405202448848522907925594520751044035979517373957630246801207487579542671886085892650924448775742496838225296392001218004851684583528724904222901595209860356185078730280046289831685793630413316380847525708274408230714041993685851571495565607820051869202274158170413308202471254554009873800184178100147213273631804168804151378626764699978047674805718580156914820859278927405813785778413340457758279132980914623045809825780759328758485512671401082797568290341130016219928129765509381220199072254560621107744242453321932478807835485699712285106236182107038886828766280116182391290591521268520032652690017008677143395230499139382093447362043932212845036814307803889694394594690604601742090798137130985509051463021255108023596756980818867846399995838951242720256992983398774892487218757140067202173991172963285803397965845294189682155813183266123693682883817942897641952979714946885954972387153691713823933193401698297024715749690885612621254544164374161380506048346166302577225559552135994139367886470741524980481034340541905926394925945945345801691543193368276656506553170159572479594103074890168903120099586322191844136413796860403963653641695601423777836731220448507362585696193583235602564021716137795827185108891493419595171710871864794058513962368925082089596045207314241987357751671019994251184320642942216933000296692674867442063474043420200241845738208966076334797310972275273469776770918104699458930889026833471967794720141635504699052324484265454887291278180819175998761189920807546754124155287933431399562646229858931328783432396050418409292508727445667260393918815421727810330614209048634917370811237843743443613014732488070257206927919859550440572009643824921232625809353276255650423860245471527906690179745413773570527231896058207975966423774324205024106463515745452891986761629349040828714919782135604707622765103718463691818378663552857780914703328270825802793613467797356084141925920731394039311094911248826768084537535958771907799983599950473314931562218449558195736791565050926576142681509894794163279471426410259683800439810976668719477063402973038970775762797511653470452823047219443927186336138217558772444952230001446567243623674054347998729909085555648645154485194349090999675587337000710401082498507021761945900100001140049189298434138360884625754580844743281217619481629879014571086506140916815181542391577726560766635467766819269978639525925864642834910801628474872641360246441571280912250761490433199132420208911499025479522985997201910588546940478327874503095293686373081630547012830116738134398157884840757277502939992764022904286363928180075679326626483964845423361865294511171275591900552929036186564224668770025957595713357298942642835325813257059284520028668628226515772172812289496487436662037081543744049330320354223473950908936795065263835411854446348840920107735435480157790885124460011565227071810789540657119964507274792358130776960890098426820263332203420207282023141220160805935145157075907623620678684576848561225144254770015428595910390855065020853635225945381366801156723139860016774432615501799250556120727878452102369232553944841735463463663274826110758013914180104528370013419157563863123432520042865038706056556582479268763736160734474244308319968377092113637180697277846784756807398341887113949050150883225407926344545704863460816591415812559007217202996917215409979533681021237604594049224512900496764947193539171281133106954664116051378004359229410721712825774835905092042702145844182015868224872496822203111157238971150469798883397395495487226374114600983863459113649965895799249965814148600673924240014214728058429281999879381426208571829943180186577218931462611464314278593550996543852333753011232982115587650915711484406325181601131069054304326482537429259454920958751791919707875970430578949215310039547669490087497493786845374217088775015604972116158116669023614609866174999651327515475714733504299925053504730293085515862814379894782409187066113182880931269770187321384499648436307736981640180023341702475079527619620879840613019046991075524330448668279081735878636611442074113159650069108582987738747184949731929986421202055191280114208135246244436076599958410204194820331131746089274473377525100471093758285412689936622078965722147195644257096850737859292110334220921215252158113118830070060472096703528752364667546281702625162836124881810593845898376663310793041649440519545054361927166397991263888525250171048749691900938786510236981864644240676797618444409896206886162613713792298939107000718699399765399992814856136962695520599503563341194998399154374949696722542346283333568506881568178748478130974068701359232932224096578409847026638688609978541302267898275994524870555050163592350048296085868570611140339467145833318616958637458503724598147854097497308213368419268851812582630682419403677961057017140316091342328358650482981710139598624673011363888387167273945476050967442396204540324144866092480642611248801897898247612035247370295161805074797585533782847235549146581410151205922635999028293599260132972304323110811907236212944151093174425630107218465014714248115339764574280554440916103644228621509772409596580208932920582499266396084330866680810874689727524392531348175467666777178929038925455352056338451100841337000210064864507968652460406095708352932601220476367247472853514116562540884150007729008626156936268385557179182657978842182074944424473914882755512559797691659288310717433740749609292836079987895292909131054871032480411530610420483485837565966770066358057441564643455899381548676077416120298072138889601370614432775465170161978974527437957796010750081388190865668429800294892554072117136898793089577535671003356566073353489116345318475355053054429050839854291928883367450062515942977780286451077685821519001289166118226290617828549225181491462551946090252443614459313054777191362198780818123075762365089635358938974847531794241123825598290657164693770055574275327747333067636523073265485022799041378539938790817685988470343516961729818825389807740080622104885194999134564654161407355394676341866392405715805261184109916039159153633867016969695801877704418723948995013179393845345976077228999039173588983802481553539338199237590975816213929047894702067894842343958335806039835720567340036085128952923085080028807245691635994743295380353508352078773300561203091705404124120695350708989486438239034702111228322992150548269082316718096212505961245124623215164756754410813410427889778153793731628677566778607962244113319559043539575186535127059246771322366955239829949144048009970211653425034462933006513292188717685336917676140749846107388732752401894869372963250444364145236865379727626390441456557639467649659576600490883916127119928918194676976722121510403247518884741913879726656060359234321730942991914087923605851888176334908493924298522110534557883172036885643571632270783525225268543136008815594141372738520476918575595570286306764374046720866887571927373345442053581566610516997141257858994228177536569778367864887594089288426485343265286057889254010876707373531072053447523558477211463729815851879915160529887326786782635006226697653367846052836813415142162887995913473643617974016571451455168633171517102322788923342435561489200074242533841912058369833218967015619952289741890981690199660794219599941945294934042783090106777185252688548711326931385687596741930254622576476707242735554666449242409588740793786629303245436838905643694116510770891805103761965202865355928370138467298114813410365268193799118710349530901338973244051948037366730876943842587291186831077981090617268228115432838701406461760117299973409009604704753855752440211565687301830268727781165972651492912094323377428446619987760244301766488472493923096508280029715689727836867219099750572389503271552380778357257636922845145575659505991274622475229971141331783456833060121013036635706200925762182722802751958441864786038314992222367422643132512112616967468004611706019526909128465498045984617653088732175730104923257757657158368433492491266896345411358228504876131216589587873739120074730877875635100722725663337401123853128854505952335826804044442469810827430005428977322752342901012939358381750001183443736223062408645629436055465271985293200635635078483766875988305527049058806595455443879541397870220237851557077319060975742136828410565551498549856503255362124938719397796910890083590228724170908224424299320713220637485468801900779044585303645112887888626374288488979880845926932773019107611143630973375767482903098806651082377409741618417301176761304486713988029290619037990558766942551085806647167649883243740109608197508446673875035553468601722059033009313111935707885393042077019059876753102493887325527474551032696939009304318884263806212484869531869896199903594659829110614154763313335622622295701429533049334737534224599158039114716233765553854105549641982131190221316508538442761932431563350668537047586366927518932618720597664120584676970650962047949999798961872625531708525322173691495086504149461641143688269947444230368756955012646724293667986670874837217496512435850908275459319496476199712287509746500591375634394634818713314982646768099714073276349702091899324953357045337826885466730465210724561039495515873264346445056303361720003709514111890640537500805048164203773258472810841740335719198621750091627659218828527129680950592424869738106980804582289321814418504686673437285494418459782128529337068745081126425068304242955715857738844211182384943071615760476748348880208760966209001756053228798673219645511937882132410987671974354905576977702294259234744125620159799840027309319288106585707727444772187487056326762932038557392650953779884179820816184792665504194778514475188991481998151765636632940859907899203486961884129842145677362048601390512528966826515336644770854936682953268335023395884451197147647652397449975376777175368379739279431033783470280530755446414933722600128752221152021989039438076564682083561127574264365377253455460170280782367302141639489538172065759736844576058815814186801465966004508523019483669156913951691687132503290195456508217796138947403469692376019969847915517023013436305923541145941760940696702256178169201063616840303722054580583567780741612768253838811334054887452116245759595147865659799393654676972117296972160629576490217551163220566968534052683023497116836052838505623532425671434575301326255854282725410482730394682829410077231668813981699451703532546634289776292607185083303230400266697618487449394684704493798662323108397474092803765466353208590297125233631034275759189334678527128332082021765142488188414784087789634878649642134476008886684721192193854356141635801499261098155757923216060709050123899678418770028380518046582238441714521212592638756969886286018687757362598173896481483813256572109880534223160144689577907110552748715471455432692684854052724503705596648828747160040073553018270918741202987750852631020128671554563426984391009953277927809496808213684846419731004145051554331100191402563039252877663980525146451394813241786307338484872338080398030747581873906943553438453238882377111473346228484235371301545759600073601654715102110263202641235023989159637057006334553549220423867331313996058304570996858308932054408686783494114009620949345914609653762833057602228840824053425421879766071804879355065566055900406285092900129483929932289010196784111623389078153644854951571233251234537425891505919643782446414134691036753670373748523154013686998419817180225586013265868057757114370781569850777431355204627095548760890090112077100432737884732462372685814786357309572305890131126301581435137822326969041467245464209099417351391355276269088769289001152346330984159045569341864002217156798800951609365861066796985572572632906376117345482317142566600987583667552237819030922606624557934585289893075610307241644652497557167493495902755689710238779937466807731260893665478362519265972201279394869307056609479943258685018939183895918232603181742793421903939484026591976524803051536790231830465552002805197686473877551943516982376658500222929082102659766843220414201074746658373881464040052487073380612584917099007631168210724297487047230138245527598696739498256028154822269594187359713798259038529428386838071749543168265268762075413423920526018328547829347108518213811420377592392778614092939978520600624125134404281339977860311885101240870334792766987634130469085788415482387356791684840301038571016695805004299131098545682759230218808091300035349849200834441769432233974192340336394154374457587486495039694321436975384076785323563049254556074656480658164357637057516002673748140178043407380111178582471224484052342805279692525036392595712161525897120930568851910735875570177538145411452945408627976026690935724175960864968080531140137396456119268330015684103048767285748028813531600982892099587005883469859936437242167268183871884982788422804047266165515471252396158838035343596054718108855349953579636577571801316795336711983592748588601287553957104897190056743738436506817640487730207477431917905004474639079130298136525299656663073816127989048183584536727469694524058581606989533716225560427405986245975236960141258297236578164223468569094115810320735910734293210470464913405763197746071532524691056935377280766946575883125235376163983853854769747971710410589073056516901756026090219863453991531866911684271915133257534408984825960785382690081366692299361033689599940323337312086367138395094234909206645532021925536042019716047922835165828254426923134512694793786345910807601861449437452141289875871904082496760610149491854118345869406393041719756928096033185998772301649653369870919611612018550719289499909587873687941079987209150009960323306215002502951244866281799846697833356784550920367866387946312861412886045071682877293153030542654190567987241938275111971234737288337798419696886213629287884112547986224908675595606850466723340967236335489193530230411521882238590352406943256602162172405360418514063796119859355293024188972284636958796072800979676412897652928789287380501002592818830724682167373991646798449960139183950899872468561213672993270392813902360496822213215399328162143184153237146132268027396481122860477561874785052915976024538056502258456305173460403102039430472457961673956783861450762495974315994565585743169482998544750319809015053403459059195694695033129004551110218903309283239494875612491790444793815949873017703259967087408787247610177732623890980963168514185068364121556270242521676943041852052635959951439963513520139499560243020314530903745770513175976204966809901070097197164966467263941118389797691762056727996579552444227817724937501584054983697558141445497429397240663152322936481375259570442532325941076443468717083048838382295082995582523517281889748363050268668761884899286395605370502913615450003688412886167373891176115831516839543004343000942869169828120249186939319024240013865367176354930218458480685435976095781280743024299267102673336124231526942470716209411960718454858374400780184639150476447440805929829602636918269173054183636703238936566297268267903472621022237120661698906340417317486266011660097753965164918662162461704639697654837375856468892589075861500424784176169804932345462858193261586042735282907029489793286273769631462080593139101944196854334988212789060414824696838491339606051338412482458700605428673381439757777465868610631652684842800373796897429382752205452459873097396143337320120701725489462356957545153531893571045304372562224340425534930049261434333010598084558246692182163309550194954576695505254997485360444577048262963262057315556026551768463786853534366357895913926161226032865673273455818718983031037253261491821878905048663043538911039367690341834410730113825605187545624385992891532403581773767434235625283218629553163635718674713814982587711850014749475798500087575191288533338837659126748507009099596479719436033870454235582737726903496589912786996816338877608502546544165877023143837827364199179216463881702699713641714757855563452517470785210958055970022789872764845162017558302876877810919164091289203104717333912501771150723983985831223885692706909305056983764716155215610110086111881215786367539922877027050268064855541222287376435985804322153261210749597986362469805435595978388587363007617322367419150479385410851522312028581575902814085035550714682455689432373763489024240357820388889631512233739008602043317555967126891787102862489431967455675810368361339541937544829946591270245057886727764385584738005174152105966135728041584124200498985681693098308668236250161193597495974207306352011923928224979476348879453249390460214356451157985518447169936226303234140894577828175318843016353121475646466937495169535257423373065815436698037802536363225349005289824089077112106656830994026379562002350910075856384393912471300331232488149266242170904999880131272805042600435342657076118828135013128486401781726135647978798191127682547446686456345568938584045648438829068941561049073225290663820943345060071257906795027951875887205675905389567344665119207982404351892052767090007834624735939760983561978857481659864299885185981610745527438246615214918003153950551534776351151943797760841602864325301533098880223596282367327623785986570499923153325865431837097726260937969749744428706253164118017754006782013858843379073085465697920626198742942852321209479347328562054781020126849675530725192206104655662781124786791367007158451070424879826155606060555292371702754682519959416700963789697654378529787577137598461028501550839034410448426479444789158771546674411717404916126016075257442695403015422022111811024043691832575445836345104435880956139094408458304913493928612473788162729121445477309025665595642877343958505720146933977701435926027181002906262199501139016400199537221088061523526988010087803385217014936358209878077834334514345448493173089005600768818676797283287154090161146994579222121628390504937822750915685094124007542350883163905490332749714531851780206948361697191961065723313949778996100300920420251482549753632899448177266146963079935393321939747629624715840179154220044094732890725733173178994411025048278086781637830799482643944655790939608321079677903215772890610060486140303806121088878897628843543872591226176865986973876151415126094853882276397798096062914607281502805013984077112699485567443058548864794017435194225894777894807689636508130866183570018490259091712931068050893364502957930457558598535021532741376372417236132081312948806209977087218119647735807647435961519656792755266095991982929290763559402782727256418121945116307102258956671569972929047374083786123469157187549693746055886546721023568576692490635392515391242908004116211252052741106134845813150109269957491999189033693703659488330712260099561485129032904294915999422168818303197119487856706640142075200925126142111183139057305227140239927820737952371245322394924443313049558520360250070946230611348392746482751711127272606056123985194458943533184777308538747154651024366953250429244223446494284220508380439248728113847852440643771096449867699675242120235114303605354317070591178394120916668289091940206173717678717849911339681518439083383515736750146775114530461428493149417806808644396751739218048222654413956410829261307105787696076239822731668920685069871292191926799334668110632582017565553505092613429243968185811318502593288956709386893935911542868644055628001201138764615889002371862511336892463784863667457326512526167003060878685774737846404778105684785207860882449450953862374938614413984348203486934806012507129585805758234166853590470388249336836053165973608628971295683863672161172820607758665455574771093477879267918744812692617136795094515959209853838264524488946971053540345714938606663315149436079122607804897553059992714796166455539042295888056259235782109428488033149108826310494435889453230770741814771811802053212888024567573258030834140737270856767493793776732577016303377741304832950490984007557009415076535889973258207426619600360075347010007977527594055862192222484835696643277524160776181655378975504138830700485244476504766632571214092595891020291215655038830749127076670411709799158092586540239533579118333831960413925486179275458252622721831822831491013511523845328537162034453743663317541652778141740639040425514213319996056239365129219608039832441237794381434968158997526845650292496650110733201149472746259161832027368209602405654604602206065219661494246705188281287318379520396849165088509193993079988682706970997986296486085021437942461597393588810641173086546113344149639753785696487599861857228170243194430839864504449456272976850491994838679866834171233163809881485770705466837427838123840389235941040104248838944329161170740990265005116160729117993015049097789520036643643652621170283763096901275714685877811215021374271603452222058725293766146850858187799183311186631929222931023325831853767984657798609931311630398536791528547165873813889150948537031228835341297162066041119771085141359312658917896503111811816097371791112828940459762938502546835410398509473912209036564289016472175256026303834777561002712272415335103486410354499662544235351119735805205272668562959905491192386958048505743158172194505645690153665546133157622445767877299232060810804738372494789995398638434596473657977462835388692153203982155805442428913323218884134965626060640589537937732009919983454476890992503543509364398651565304499788478468181379766837003012306549095953551016221332594774455609046853792033921745247304961155197763477379928449163653363246929194276050289603010091124142708711493940609198357304882222080423068688529611066798904255161933209468310839152822690722414621862672644918457221663093199052833231638459771971438265648269267788423783769887091727704236514784585318091595788458144876392824554898619027561435665583582778809280033850960029175186846963132066229185409432195351828617164707101893707206539338094380289342331158911514163826000655731152426640580487405411438986348154928791103909329118146515020171903164823179561964266829065375090997400410838322350838860646241973994608688174568750122815583421760658316681644783961858546013454335187753200596560248729838084984465468890724262456675966024133724079814976004397985559598304758470132015871563799291696801744176446977324797550839336227687730414119301629495135453680597539702719855797886942662706013920098330454268249996315127781554556829512796028049746960175468772319280024617213285514706897719534510031299599084988260302701943523541874638075985583338413133908195594090199062976164227427519612238164915388155241476730766663593695106844833416665772912629421328171338535949798650046626193365094047724295995645923483739826350573658623383055794066269365932882473661485812634285343483079214504543838983415642205701690464140898354303204975991197724187648647756557684062901183458826881565608167164194588871266542660295344574318883160274715366265152621284578792413837528545843871858010633918303504403987903572607914355226239792395407680519796941073906906629150106133603846803625303652734906140177571978125278937140646000083367028515848961114928121538488532157924859509700357688853572769500083664439701705274470389299854395063422538954024297064162175460942074050076883343990711192229986432184249010827112880643714886019947389068242444686195384026427287006655305049815086207151633389429151930903078317325192572508906926941856357626307360556460347304696885465764347212263358832814089487452248548537367988449324957189879885212926399404387761347298352734143584199427468771242724580175366909168206302314132183784660848541621369893332373621105162895278399786172417379833084541924502848627003595228193398369767493651421518709844884738377285625876447163722374542741283131455106858113924130510277103277810416952835100385537726378796713499045648458112225019943080413099991347232370984787418329324940606294720681769269109504707992252758415791649251276684521879842634512997191904959855957614287648564300166234961782519188351825946061808390289383382803960409038092956065843645967179700662282945038285891036286825083618209245688152405385675767121039599882463506231214089816384014000611355008491144109462315973720098022039726733062520967832356509227171563485988616895609511672064958099841739159597381167624795180220068402205445393417558665608765607295815320725136656565415110299252032763273299894627749031680905205035112267714936085301700413538571767181555358849815007849707205917930240223753145801006673302727976964898362901297692892026471361027395325476359341426466961712720681256310158332004326511974930834553010923985245064066604434399404593500981841772087006148926919641387754001527417274711575781837702986989829104622673251844841473363918688300207213454292330393784955811551019687060277767490271038441272324953308805035108387755821407252786136581896652190581268450098819216601576189109706459492769589453890891400410530984658815311265094084169346109518583916633824334021634365216031838000311606070286206794813562608708251349778527843692523648300103442448551245729327530560822861337155880834293440263573790538838091993601712886246668648926886276518732625944478275730648681778572898599681003478957555860133088504126791235448377664463935401196461447702541598045146566661434599489156142502577645649195192698256282871464366253371227607382745278565893179351835175023416980445512273689734472180950373663995016930746022374525220645075090329575242930661014073432434465435885985575991528117230612637044448414852576482909331885260204604391964397112171070200164063714653989135989890996103516636121356436251453268916509665868721630480387796089546196276034263425684538254315406114014392756110557719829849763448104796977708614749166985683672630981336751767347960509590440932331583094771764336694829399824495245560632938974454927156729288025567761849584053632850112752884750339741526487744730503406880083720018915965112467184278578361410124444691772076097409116058774497365944136615910070400299392782940079130491381702808300753708779049639711103537553121389022984504250092508741566577889408250007811547602989618699554156588975565397623747665983636463104924534094191529258359913044980156485089851620946509693813827989273374158300377983367610361659233249417134604370697376019079519985311538797455263212139929155783348196802348730911105106241166909985978551893296707225903362085332396192418605434199724098775259867479633684025205178905017530109617761679299946219897525254319882474761510134851498973141255489260177884015264480020301519597177410744927200373171456191473374547787454524596369270976209648583138853240598402519881723584347034665627957027421401277278890405039468364570542667207990978254180127603816698822093283244219243687127056787661460690782647942004772830111825845386721300801826925476450290734672080645318265927758586952688465139403286954415100279772964236999805150101014979386315598084734837308672767700157747289649731320649469129830655454845926675743277923557895583124011846926746735368958974632119048122268036278242559662931280752211455954472745407389077970892146035628436969787283758567358841189260914290240066328040421649604469112209224365078303235652330527649796480895028592369678824392105028788211252292530025621966812421729299531061148087435098451119682725147957074216056972772175074259521076790897676948737376801259579431879098038691214107606690230108717184837063697807557047935013325581908761325484202830357470147157227462155401730996417392414672542077224458514721526602163751013794424283194654370777883782885610047017524646084125665757842312915388297747724262420429191358619660785512777261357161639526377820701791660296943366586328397066469847729044186790124874339013019133749893192871741717008692721464605292991552083100901385769024317023546213349275584779044490515638743982183849961622973410689633390802459195332647678421430036861373096537595477088984836709538409175069350906315277057941853325494235144473589997875984881865885469732218754732933254008467681881190578147722041488556215246391716395594096857950381779097961760339759051284981497252125199846300066080565484230961083507192185615658759728185494187415955570172045086926569926563395178948247308765778607401686445132481835863154355360205609581958468306616708901360870465944142289454611226589158699017605046341360165164516686170775950159236221481845074965128789604566405457377674821662094270246029380016249898783205958720160695062089011704940791630261278069015367304425478005225496703593978824289785178832611527669310528967958565843313423003704928716480754934514663912855538236719522576298613003671553394692471584041698774287139515418359633470854097691821442706226280449769404891972672928043065903668918906413425269192520331551085932507277965507591325848161664499427557768841843292455537308855674265989532380372748096168009511322683164748139908095247118996569273193844138838649501770604068678519851113622502546953269981936444139673932518798840793103982534975638518384374779701768483457702149161096290357523382261524877378208208865563866966049755059915133645749805881129051016529360241057677549910887663228521774395289506205433149530293435875745350030865440905974067256725455952653440472815202504854656626037927474104877448839487984716617731173045732888945715430263346331552084973866052209986389942850053084700455756043245008520666025163634469671244457770161789126183169691145885289796023529827720923216976793480779358542714942199023677185493616564737527695422652425897382797446680947104074485349132578232023235448587333372190122356729075881819268527644399754086394576818959788048355262014219027390198688176787921089318911842390608992179509501957821051087503291719679601560979107713291782749552236508608362862919451494304987997797752207408424646473342841794209016665316848990752233874487337841119258035469875639809782313074868882471328353321774860270242384315238947794739543365217988165314593747928734824209975452582049941956428006715928172253955802395161603945626482256576596761819519245220131129868632458741267696620704064381585829434034126546906926198004408710705518222608023499190254670786274704199384767256832043510145165219917123336292582309474527260886622466131589373387802771015366789331515426197517016450607438333167435779635239953701368964760163734163303976980944313597027895078866280367772137133609544350888758465549606187906593521869476657766376133542715671370322417686020274633237737559907579419376199389343085857508842637040461189490331367182908126006976183361286641787116413304643081042306151070996292011916551245796545864756991394635926279186947320465203875355273106165699057699579002644871827106907235199224132102370945406114961083077207924391882246203618198559857967976434612074842394277416474060741359181294333849867332564856728602756290850915535280668003938015233735034258560938415730782838814442934844980125387604924044401547472545832034571543976269853968080014589450238222004600532881493380839007827364890930296601033287866917419834421929003836004993398205486967747306213176050201025763360023364585360866050144093658419858955967105293722802677901938252657653514657742151367866255928306808375709740426829265746072208296555995194722394912301637112822135616451712417049305603642596441280807701406119935976606742886341110888683366935545582762292126494691550177711850114457329430015229902898986898598232891140209888259671424107580544285824768807366082956357982312849808744602575373964352096693906310736459374911954732879760088779309814024839759877927993049358422191754866964984756722319191269004713086990059558527696396600345804422399138651939079131137687435072409950109340711040335445352998910025267823843805246911897959779868268294556676354890002338843110555315520724828820740349044350039485392358116182527611646940824768835014175030369820339385274017880655133925439248744921439797539131406863596400842288932298844237137742776684585263319168739161516701806797191011601156958940864847719291298669802950681957367864433263238737409827030248549920415869165432797221560272099355986610256326246237164028915802409324168036352615772145788414631436986855394026484950999373268585983728654006920861091075806566067881663720464620358636363837781813425934992301040427015170839209258067875588982813588533035946118379044530250391576669218825983340906242895675572964886370186756021862386065556471350331448227238816494408289701346365912245318626395086739813192470492616216986309110812118245489283811301213114622103427602973237636326414801581705305960520104713040533495083057162018074104506874456419118498993789680865425872859262727847866227385227289306929902484543373669154621862849085263925213753631685659238857908600802873429598694162899247634191735392696284814538835031116922173152010921858407777142341641565133372890704711614485521572743406641722404700734064513396207699521683659158768861211342694100169731261686033466870177104725912409807100411368424148659358784999978702865663216322323966342555672278100086816875352346551500646505686573680310778519504666978216072649359026475401549110933602356476066945254784905128153531986141087990976124002469881431338694231773092876726549318396361528400001788032591285610816906111654419465859102847928181552829373552774785269719768115712223906775190113150985221730720461261815553094544372342983201128694321669912181336741417285381702496105827903849783233094604611832160441719355761261641478143833046475757738067577110919313640789767313039622296370390271962140734648753032476126656046453740664698545427873562577474998068899024742766735867525244121219582786508968405325399040340629272864334458538266031040675484365195464151550719890121469636282634814137313165088268366745345670273039473210536969979140350126754973149550160298209128718955591037224927235202043308832414163060162691804139156395445099983530507729904353658695003335095071480196662401683671153205656818454891221291866440454997091111757350664718607521674916257665119844262733290367147465396008784102091548145678235572151067137407026229464998561995437884020998988675003691502637097847821811279807356877319336648409625278231511096647788086297715410258646777499505106438668355208349741170475525488081653253070331063388241168995310663655201318924410599242495170396874841353608336276386101863433447044218129162006871981398682062136379393542772945278648200245690351966324051706500790218061793689360514668183218214842023689676262118840613957458959161418651783569165794186025992237490978956281664290666956411953699958441895084169845552784763039920945773712929698227201699101086127151313664315061866241046198251980511898296008988187609852226479065133314066528042635896881589374276768905173371332204565053442733858661469165081772021226319842336367619532628840006319956424559403519654950332457254398214821934853755756181098559162969916925726719396817553347772311728855747407314169426237600694941612556499951185650113159254234439348008036126357142217099825290174321148495543205444441058072355652687685239409088107278003735095380813178730494494191325828976599769066494449053672810756923584417377778545355912309982832505164089807098335485954979302223784261001391918680155304691407586449472525142965041232627810973939777451407870731895629602809369786757238680864714180062226330185031125408716456320566874045338738457218441651616444769790225950792126689806719224703113914407949408690320800161105015940086649548827688718178595057021391670681487402056137465445335887590163729256356709604188392690989585914253782266934126336785935642518088676288390132583632770982482524455707486419657804289289158764292757078126708927798742402033968358296861161364801197667879411171798158144084482302386781505066420367280782820928419492125795111601410015472754461979749066461632470054027750644013441735673983656757220755831299335644199040589173251520062883734847247303217716008495520076275900990821556390698508058909976011956076884823044875403987354787121294171925619489987862378583023803147962495870348756381559239835593088966941379718237231520969987064008680904101352925104540374173911526812437156865032260348476043282554517082088815417100217869800109374392893746836510302219149223769854121462468464014667373363523072604604129236523753983323064656909344871130633333119160030899357180847845251891343094921331389643287371575758466371062244784216169833282438805724599160892824324024426056148478861462570652290357222279252971939632131757070245976216202469371329641998033391305263094956527308609504738741621286675033426809253964071498447816354499851851887174712412895579107864363067206609637164251838367389067817184304003838599025189176054119537250205391125176687652610283688580748078577009902783285694774419797899780830784162552810574666196611214205299113684828212658366447514255950535449603507070516737245721994014830916873941119089625246855050190026232840582331254640976820217500924492685411624207611544025176203162353539626746080789066027972226111739594069671895881523016518924034945772607130530993715393041135705120077088955560524322987617846396107324495173668236656006656125911456867040513942971593620896988704046261850071471944008198977080633628420629532364570132423146613827786251156993202661808101592436897514656992349404688821831065343724557579584039217453229298902805408863057863355696640893593465352331784344347682940994277371107987084004775031186814622705595801529299558870141831978244519038016650893429961472193607536003626736811441514919339096132666536673309055130827973891896986577835426909936883451691319370126105874555381044690496959209667950715253696342346880922635133948861084686640060224351670298669589370552185516239120440960423173214834081794258702010958615960952078614583180235384269751695607983606257870585581316108460239663349079924848060038717490913983759156102598968791325167988796771385551576175534246667878503731609932634766318509228559892227210535412943186314079199513732092633997869081648487756693651462234247587478918182235361374905222062621126039561904860465721046236367051420398373333197743987189237963250178991303040952519616673491346833762134728091410906415063592218905954557338512220691380900556726354513240548042368473249399324789417961643849887353042435450002614276087667793954998337197095415199963944401040145124534359378885890285249965100674947500619585661899260239773090750849543947310411586668566649116054726221064669971359991864920387926357558692877098994848743795198662604805085714484417334158767489266138440840727317413738702694659567057200199957087957525965556517632177947234709868312663850854898158656846030382924474228173522000324907509911445709460098264809640281747954865103330040809171879646076418816886592248524545007605896374857047571814290901768800371238638908153221548864790694713617805709726934048755891986556147718679723356910585845184455043304713625901612658606420117120996648097481700264190494513109055690830037796267555824478852233944985284274993850735514247526714652925591730164134565969609145956345684751340459622949309888438748620274380377478148863984035987015004854051253377954447845815165533796293492330126074007890616939126634675643313590959788137533032165175556264884038566198177419761114674781442939721042968731719903115249969139603460799235740077472958398935677110771141597953699536348502526837647798304916554329689668774994813475278386677459179661545453574960036405764559899786114969267545238853110883492822536633548323157736423510170050762172233898843739706210279194920208488693218158818849552428415629010139628592689023659395286535384014791188597205388513106050846535230255067379141362278496929008648408908257160461047002390498717993299861221473999151261270926565727406839272595395961433573127211756610074381798905261725688665570208152208907051167067190450082328518986605508849421400954484320798833805496749208942832795093637281290979527164243998023784602284796506308974833643213701044966104029506153816459235384832547062554058243645054182868331189518511235560039175369072986099118420587853082138026719643089987927335002221724888413160431590561996389983163088683480410135011461985275734200355690748843597195666913941807874293845364967610752165187703672741383745949211005221471298448680416881319530974120007804485692703815607169996740275875187879943665645221151747735583505440851838548577279052777764516370819550376772500363174406485642940605684433420008853219862039410950305146526094026956663776767134717816094412892782167376128945204052583651489651614672700956427059387278886612098224932517567671361596605952080216544877317316967699552337117632159926249930126401316690718051043451059920231664506723076310392368843311578966075766335511253570087328722069199437076503001915200478794894415011568777509412594970420163086049597876898623961677459433841514875464205280584639623927253363756357463692575022525502067079367433862105484729255657257515191961255464137331449238231331521970241136095715922076513606197715122909280427564911428028224879090328193612146970663888187345100248557971643292028366776681299486303909129929113135862650479620113895248592048704942920829269142715193940327594231622213654359596737202791613529448722931335393933536993113595792962236093802330463043285314136553735603065452334407886778570819083336502975328101167356799963218629700387374747003866169164028111053466961214857171466356732697859170577776196496700896503706484471275145499511578853044094765624081364991116222266372962572791131088223124956817015395339281982467979709742452370316094674082160216641343470588329072773449642046754147129632870849228310841770063390832260033203583482931291777754643611983916293135310916346630468944610459382379211984948439182511842589898214595660883344929325067567776141657749961084234477798076778801052737599873592109416609064292813044485617869198891409737324893659041098670490802475887365385491837316305617317429144536146464071235817647000582315505213205596286473390634889108740281508357405891880788297345959937684327190141293578406198589775941835330912808543010173983536102486847706121253832720748865684673307171020957387555042291761216396022149313168268115005441540057125142382722547184489268641307730699814022472413076234536605161667195674997903007746954967985594787530236415276845833974227973446684207099523762367172112701046972262839113871442117567873765848474846350111860456489082226422095886051665159070950816705721493523404259911910018045812991992692558500896608377552873097802102599449426876977161614069170525414570289713624777949797991048662895961555758214823047104128199270360772759045078201599182281161416190816928368314830430673588201701564724519861749530167653596419364400569897027147758995396905249015119394373716873867063152608812274341321711606819735028248596230519264399760154302768176340839761860843526768097023465620605145138995206058936847371206422713658655693321505190242942433487386014089696830398423451114643912085360730075183503254887374836536580990486411364736803338732708215624187649559813768089549879322076474838201901812377697183069939498411008611825198464298695581839512178319834218975287524461799784566623084439702253468089479887891571019357041228949386930062345529507272927123897919131120002126645577091714559043591759302821360937295406909242062134273650703846635091049225730207743351518923551030329001437972090333057212233333500413884965504186678058651127918855693312488351613277041679360510220520497127931921556774020667741033333025951258250208846120550879462674262306621328565448580106775287282329322285702238042171534184828955208463565044875933438713902847184633340230884582405144610069457816330379894458396660084131040739137221029657128409635359044597467638799799647219511916471593708916991241490208742607542683591133815370376024378891115970755960964009775975753033789026147953706700755700188383807941953225747745825640399087572408317301863411149216557570041700232674955131288504555786174932186783335775195287730732596374568169137323655195780206550652127126408694730604034837017275949330150890653113630539065681481369579516423748698306761697881226135947932931216848115189686027454533271759027766311655146066825540025467303665303647818421515270247708048637381035919595620288731238157322632933613568513786530651636383423706783616208057274697290930876490731060567488041079736693781912275176307407838352502765908424219542923103517503785112282905614738992322104396246306366511956161647522923071374432371427008980246669852665556552406801277265580419369236240426808914310366639004064508890758012488668137013913864014098390154718847717669572476241405179730644516637315097748065592064880211665732783924823769248915953403603592243731433757507511954677988150300637488711596615640217671261592000627607537688532406261703388546433523892579691196776575165059797524114117870723656807386481507147345979658021954308636204200253477260606191873093539362077909908610823304206599809405822627836541632924596794375620271908230222030703926431784149289698847914029505467480057494265222297388268630214024581442041441347824936378588813228700064051894716053765416962344741958444462763726928904017114122229744483678385282363500537222560608035050418811722932136596315102426161044841596134618489447754925179762439671951208292821770013178462107883206160536468103728211599832015432425161492334358953940105780902747481638395896382718697344012922830278875596260130504016185766507290614868910063971760159616711855469279286383090551115918162076549615232537353390466431763510832223762303566172992556928168082127077491022589406926587360130483289143854022096028607620161777595992179679332851751696245773107292489254748945538893951538832656693757971377183968569095069031814754677090305295517160938728288093595095074982303980176403481853117921112933128029139958021707440913392647508431435739809168449110368344836079445459830018005651163981114699877897688188906912071523319669844731661073768280480215244214302532770840215499082783048007681247699616628731445217874751847149108986712766326923931780095577043494984026129210888058609910291465166462585122971876691398230485019155772643023741938133447881828437891787496651571365730664258781534445752269759753358162400228729512850806981228376773714001642353814418510871303545729525070502950498954790978664584913808724696964055274357728307842478766277746906304967190285461147765197585679462695848366706720390767577365435926896954834257814619087506805973030881656935165310904369505854039182164530165240597541875174232817444502881009124302501697177176428142279694838422055826892911849326819209701106799802722391128043083789122535965515062783126221883919369069989036734578050462647524935264211940533013555774210323874466998724938011178603329732865152956789454239768195320115812842554687279662223006394892167064807764027925833432325806074329054091533555060856739900276690976317739364846909632038523108693986236577962100881734091516490319223348493640199985467119295394179744638436717228206931527340553124142461073026893846117271775269858610597562572639698336817871011078883817213517220133555054021630535422069562425987028101067236055713909642649240364669405893359163435653329133594869896163858348925176938214704355327398003560405340717627219944613658117329198340206737837219733476168129228622598733870105235086923559451095313859344454137993980641362603169488470977118384007615819369675336252528554672535859421197660106331917773119959452990782921186350437219598345223942203045774322417293181815471769226280494181899505563980914739052417340215226445729442620578323225531112662882341803431727742741935092375938591390712533670353127683333290152463617691768508665705439379481305131617486389041567430964026620688068025989122264215745228486594482952232558844010657138429392890693854140868068858794261058795226100465088508418794503550077646788597650856150389226275048219304473041774347495742139601238352837191319553375490829327891384353745494580351085530673641416852788973017357501911346932543590141743989275179333450024738862109214404184230456592356669899007244827814837690904330475083871681650622710784486041610513125266837561929710318731464067214845031622330472379875305716780743911836022690122265401383083153295146180639134926076935088444252226698728763181261872209696383587633406161061238903231969259948454984029963771875481660765219508424497188553432473940602886430637077339142087559002951220948700223718408960768384726123838001379468439933616053303018952604918633975996489896542694709105752758467244170835099740321101963415059707862987438638586714454393462638168311308423569653329330025923493826379899462380781237021288515428169906145242532672558336266010701557986720115474362937958364989017058175194088834598381119419643874718225525476323188124501035584903910233633284683331715388547279955125928266657345523269766841921259824783375964184840407160720780906615635841463513470374885969120532160744829451470010693725236531411132379769246556528724130265763418019477409191872155510868476147424226190706514178977697808207817154142229293426442716699229872882925795240110940928813938500148867401013434277307614745626879987650675829076579824701714839630713798652571866660679048991690855616830449461346590434897811719712130842907071550360684926933645638587578498703370853131639012183447176181704462644169259951876340989337320995025726288053678464713895362275421956248296341989728213160620853744341655688871224353004144473302050226618777151321427242680744006753750881265583936327394243945590012818335773849884193756010904085059183398874764820027291039194780265592936450807941013553638052270990636990116068499505106889307608106899394784595501694886956229567752362051546779499144214439328245814866671427439320516008880281800149326873245802255099901012612355575608964588141373914099220873303622579682437636510249390513643637466748759720036865952078407309098261577473671665264859078949042035684241663380741200769819317077523876111248811685957835532247127995262481793437445355905822592044123836107415199808088697762103821325880043610556588532411174599431981119781526965968721493234365699034627536543719000656316598480537210593481465042918681990836229041729174095853792203626172670217361071366828103782718720349663216204495540385660660673651972513936878700930993732072325020255255411823135266342048226922488201359509942233909393952196818424887018497159129842631140224407683716182224095359966037581461976096373673665612035706771857558187731511016646465350976165912426091760474121939284357102179400523530131145459429158264088215716687143610243660681540932974157584010021007314244647951883764378301841250194991758725955787335896409294451285297986173309108879511042980251562195343796891295285095779728852504613693047589975806119255883842060143483342939798901321539575842845766223952400149356971141779294765801834617716384384204607519182536686795596766002500170112019879189083062924226784535156678017283436278940964306725788610524686476606306154062389575628480122574098425374140058954367216825460036737839267149008033923907561062782623876345051695844425597258344673566173226231931276537735981334449409983685241651471563447181603138194896524606802080836196435114561290179000278224998411155803331818430405770500693209891814021922483241399908412357783975388059531752187770097696919084698419991095588139248611545459219106014813573163333932674176052710686679851194294084013771713104241310773878421331663624884104621306075709964907562355039918179050961872475428780002363608314237815839971180750223657664502711272913940514346305860527237008755437011754320885991125806530772038796087084377313309678068146042910249004338718756680784564665264925885417802296769434942504400876993801407916025208635097063921350626002557213929008406328055758870745139653793685431538106536261380832952111677417791414086311198661088143021480096288188580528432679529557991328471339980503347636671554714351102101646964357716732739200046166187343944287177944096453795576045174052277148919612996753184862520634455288426160717808697447738009436050059124613494482734253590739953896895937018518436835491154464008271672289742684362255531880087236231232467289644894391064416816142212483557311280075745958539062952682086131071654621273435577934044054735898548987461402756683291724058275338523251087571329004932404598616212000847848502894501237208696624955836343026576884695961465395947403818117181888968814615295220111128493272502659315621332199446721856055300944733613247723974595623788572058442857634038292788582123601490793052580579933281183936346173265309078250204409543778065854848557817827751779562341415404194953638018732298637083960477204341915684348050150059531033657583613956491646303992180877477260553665785107156128143756602792958365855969363473964175042731340203882438762321675532683015705030480931478575230761503458421458476265629473688656033019856471640990111640910188759854042008145924882680468779875247386174549051862125464798728636654993962128310177121675901433384036874180700882734002023124154988160992526477174447534758972697781689516833669578718473227594535261165644456243777185363547734753675608853105782539984185237349498933191721008924204187900343156220751735434477818555121913745931759029609916126867148933157426739290697226776684338731363104177280138646346098267610090935948422623125423654765174601122543689360056738777036220552104614807774349077360058528594012919563718542189729989379513970924623875771329810164400302839086241796359320581940443015600031361150442447512470064429373233774901162851494569769349166981776773959453745360441526346680048452834623445016786638182018046012363071322602018387971364038252436970632316436395293037802045341265554994852800287306781848255416598692265602618817410881138786642090354448405710096286834379109438249149179091310831892862727151224843856188725163057095610663728791671092184305793700198442757341509521110643684976701764601025972788701066680574336712203849254732730831227283034445537032832925989520051048129316426901365987414960470902541845486093836150371181382488481375699173155717182817296512088905009679552140678666231193441063010576807124510476121155000679539738485577863303549084905738664586335038528598203899140461344104767429632998720848680531308125067903845068510616292877828011584404736214821620061328128432706750543935222485004075886666692245796980285983386458015838730870746418481338605304875940851414127717452985560551941665169127117045844951236357003128648550873546202737464228578624093796054436417365654948453172560049372993643348805761617976975852381329679563938399857457053582511219144249678851913252182930320877418307797275328544781330377595457591214253209128209626828866781946478492441878086857657051214820707798438578464697412682284387462203320307980329261081723914078534053176560887403157657117984003903623627987687426053404748331774478412234090188067892631479324500589997143784358753874857448334742243491810282453775900852600587143165567259363068339815609256122855706511136313130108689811283892143204231565866608274676729836408581605435683661335714378710678365475800889882814380301812092899750690649696627879140558669394233583400554648700406293353403718115234518114787484470416476633475572998640471387601736282590484830537595564893163682243325012706185317205482275755068426549745636019255416151378368052331454017254499598887515004315863394474624824727357878302901030345865982795187012113454259069627618726373424994508121593028684376689548806791106307582536874589491227823130949593214476853455285405682269987342216909611664674236188972545917400014950183258116608476989506461957219678735431054640454992126570923331709690884633743844098445804385674988601741756774438755903243873112313432001828471672249464418721372242873274460217397409649873393831859830247580538981754524660261051786971468289556363630190843797392885498125377711751452596673977585745010351582339171353013354366096710763223251962883631533106018596879446047201634428106089869629625329771046888351217665674710705314771454876229301689536623637327172698166965556189653867793664564882997622863658152562479155674346667597579679679815792096137369346747014499473589900722770576917026903948640557940894180436319149175342337289384951407492154768068148223660002135451404932654504547649941519315968091151223901267405457921197880833744795533458975566999797999375787989145565054502007904162689047296437030076905376284425848090379859937234926371141583401382586989785367130900997556521246041434547494758343808988656002472367203952572005575115558504792420364109743043386124778442631773249854981435806162662325742688171048115127138275087556830109229837635212903108899250285814765662752019003585441829251141456151649349449356010495191862067155577394107095979795528735188576293567976594680875081615700627509320510182192707068625892041928204287981987881124797907810531534979445767615188635479659293390344654973352129552048714261771925938274416691971693330836231253604500432663826694959302117256935643487010149973179540042528295745550188144644604508443081872368367006154848268560191980402476789535924878636536410595707814391099920558388964893494303074533950616823578938623324651508345305100184238280384221636673601152413957973280467156578098403458671642231007300046011655568024293449463789542164932803890328361635688235841812695991113573397542335806624611884899722838835052460326808893123240575412432885048820377558522905960917063727433626827997469711942286230487196515140016487406605331397357807487361268118256117221231215978533395875891165333164642160877326023033093347522876909156299504483334808508187929649110652877886475342883794589977430808251042719825410323423813459150625117921912140890537820937326906966686726815738752189111500335056747389597639786715930573937439850785274588616461656620717987822030084318125769543608877512152148240657148140028313562037606865863994222956180832502149098514288845334484310227180372058306142372432008273440598748525172403814361661976200215658712187258418882266616612993880887369594408165154886142928782965097543906863338459809683691376375901988397427104256970262063826031783284286684559080075982113541829759071346373833728249756154774736628429171196982752333714961106907534203539014176639448054735332850421577093039293742791562222743595219529019536294562731910371649683158686739822994534376623308667949595103450361530370286764502808904992069613811296701709490833374060945900356062835413336299428891505556399366774939857818996047160994186261245555676650867366559923105741927899275804952291893927390040834863942701156969105060440022711458377602397106077929202526535627072857528815946072600238688269030386281305210585877485057183131920695082476265294336817132796724393427410114113370252964876047553149493639712858114454320384926418788777977738619183972371590198709335727166118963133057532674209758446512394211338563129847315047024729021558166008720333420192439393823929766231038250841890868553576056795555954950714750002120028717371509868794957427865944534055607718351407586854367758616172446328221190764776089701805110967166188101893145004218513191362444486689388766068924398343504399366563383420643749265379206817214432844017339746173426701700802592775833261485394555761903031219800970446599904847870441197884923734357474950709707266576518734479876679292104647365030159522844691207440364494654794114221880719020099407793640708923385194604275539186675504755121800316951773309319972001794058011111739900724452459488995328152823505882039844937455029323192248423036110183507415004062121147573421333386813094788753352883924193292214347967153480825784302866375044912000215532642827350423710271273689830670408515475856904565783700441709457214740502186552841167190309856938423094772846669147063626490858245502582321184776722666424147889287540550247913607969012722491561277662690751717160640633681964119717726536139169963598702124130645710167501752333221630602126251135128288105888246119298103224306782023719239207178382403707931210404194986054018636179643793302749036807017345126971576012371847623306130024793420449207623700208744132111127158127082126550696301096551072424172588817171059358734106235659967500972926679272425320588000835212722920655964091077473468518967564940934932981448596206566387145562531769979671479161165467703759927766998093481613832698897963337703584491084894829143380749535889017457121245689558074621239821361929187107435575332284876056667221189426268540563692689380345334364970160637629226334044006724080031393341908438062877933105902035998364377189142270417399514427275573369869497720166353950252999950334358664693973044721095664815437031866763564767899977624050917499833535703863159090370639153146857996730701829625648059100013272404271726984971828780524436873951967501860050888296635105273782839136200625608535544673159931626624565916105716861998663005250181378802925270080415020946527008240894033015334037981372272367148759484018395697682111121000904141903827976926292521984748240502840289661512137998169969454061478510594507557430391966206535945323256101571331282223766367152571006561760811598056623466530566298204721956943498400438009423886560190434246585320747626670350355408357587538417834804738601019541611783308935233475816122948899930814163646610737930295594421596002064325112078672199939803655791475566963901293850185791828182288796014953383931547636999319039190547952546122186212941953465191224871874803425025177056120046513898694838737518978463660022146025335973124668941044391964969779843917385706363592270772446727560809214419809933779248775478807932600121098297574191171224453874552465285362241516626137211516504851091223193398623810132396467142761506793891520838663470422709793078698185029639913306807745718111032254851381918549309306664853068302088208528972436638186984249914895841210363743953459648909346013933720823149401554470874808408269665362665750140471384411641481190553407332360877653349130094563343885554869488931752973406204147222000563039805358663295047687189888435800622583825344571281663125467735817837900867781098321028614663560628768631381216152661876037745523438275737609028538003645571002731324766197545823540691024820558735534786689351173214540520653922433595550537100750421157157879913438503538349607330845441495907933727253770229774783529954133102304633865362224901550958737688095086523084170741395498660018584624250565486573404891291202440653500736424822240602587363983953678420374726373180190341449308829918280521511226759394263296646752621161751016491293892350285082510637146090472998049566635245951100465862638833955196718881733698936239146062501914383238266097863774811937466420755871591048438127705802518557083590962281671925285563805838433633339141788399994826170695410817034891118247774025963214221536230067521346913530852075461966411269163088225116381804396376245742286975432926119871615846224017527372556423983122674394867791976293682396472616629980197674767565182607868329722686378272627177303362635261450226211228907296617936223318379282366762294146353177337997324611122013352355085817103405176492461804130036926235715137270532143254264631008826659800695710305997555827583831396905887099967801990452840540745466753426359326116617618294607220740087829209391031966760442906850829071857970109661153357963372722053663069078082998528047326547010107947330665116429428646376609331066615014736903427181546490352289857994992803710563166892089763876493595917563156265751312437858330527568526801619796764984488926358567003829362238257912207318757426390084560890855167388604203219944312580744893777121669627116283385621458831180659799634587887304312264619315986609581814647431934268960839519081918758848714270850755904796426990179196135864375678696405542880081239848869525837692919463666518430714978208764244418314357435437781445448549470591195024926650677922789765212985485170750817651274630593933139665614704723638020291326939104893176365248249417753275551933540457406844444536457349980273114883597982218332284632671629264785390832330648318613089544502278700125207125200773016988711491341584252647209872142471155001779795891414653703345958741050590506673890297376903207323788583898367512728872742644926555872851617337283901373502007857046917571508205746948023106483371153746104982990838061737754397647270105206573380138211600878194693578510675041587706955924043403811466343870030192096981297637029132168255968786169220777574825999147807029585860430120873778102126530247849959388793208671061168424432799611366169703889204084136087888853368837017238715779813442360124741445732330816381696550078913556012158745678722349371503386648399519903727346888032138296914081157658312391666999807464087127367932704226060028689565385012569090378420953021259535745115977024876322016282473958909788264891454179997108088975261890744701094862065784160604935221389490691196787680197961867009820055724927276452519752184243617808906709041904140960174493786233667826170569495693309205967843748524274027278629841964522970678754772923897915156370589686594247849880395262534215887630179618333441582797622809423876732466761310358994450292446689219705727457543851482601671127225096848798692422744280152853330034834808834842408612222497329383534387953039381837875178485388649159063122997045633020089114043794953079811741584805412546457404796123924557088487186166507975718011268789850223003105126030330056745505410006392192244292060267680893560513147342423671542445078853299153729743808059783594428625492739750143971824013786089279806008351128848613205585339321976170944152876861409297563872231548954687027182427884190612957313951620194979359646430757419475999437785102598720153888359562938807422010034150989942163390183118484457084089553925036502402669537621864325997038999367882960563025276287836775163845397000371582524663638610669488051916836013922898216700172602749145410844395255440258709141722417065921404373938500255485990399993841764375177507112334583398315802799784752996622039233675497475117163134085672911968945793000762976623452541044883586864806106677890471085053577873546835223656863710976432643128024903756710383727986022254936081887361933848278050146115064830197143501444679355634903072812678971256779629196189265852397732534781142370514749607715479053852761338582294295534908141713857344146007262884447063654409446994734474704576728689315882071657882202391836864410991787275475565203979911687924266624218423572587043677561449353125670711434595629769598159589318400440795737940629067643660253273087509429561859881523736580471691906337630596139510484547122203946479449942096883317227939648687139552247013472142770865918788520830953782844847129616524896436692506023286798807433851479478587691907381841752086776773849125617165300703045586831459164204125605703037962850902940761990327734543732982934814552066864464976850878172369569516860308365965611987624247425071118883751243062611467505489874181248199984053751421270394328380713526774486665582928801054296845466057195462541690997020529235698200092791201284580713641157058492817079383667632957429478172280291390121119361452304416162267715986015433864724246982217171273520325787711332286691421647107727713940115326555062427365518431978237026538452205764396055359635095919231548377392787019613092765020899464871699041424460219216732236169182625689801037407081933704327462621923868647322496897878632946819600470518563441024364644038884861261635798375462297372650844374974756594760136293947886637712840026777303314063392167563346227886564398491822332701178240403192025728500845339111918324674347739738136088267680491192794266617484968624389289244573600152269501906454508517085797163279521161922542590675954215352514966926566152992780148517681481094991132533197665626030179859565920665492985130041320438897531324185354267362796366336439640727026730846454271879894111872682164853457438954637600115337418464803948950412232109473050339435338340232900383651163048830232364939999454864498985342609708158245968594961282660195428426025310372765513520409127664272962937525173194468449091965374970523039797183641983638179370635527045864069163129615078917810161670728261113970559143077487484176997468117527444752627553612220940970189249390886047164003662761680755489157288195225502163240458054683987882837275324692351795472918212177955492963583207703139420159589846866808011920456733359460092908051970581830541145432583005930977144909611154220089321079565037141319436465473293624024071426978943868932597296234685393077211146845850905357887589605218306705663410595530791521912123952577153890176426686013053572876514996141332726620358333497473878730352115419564327628925733009529451349001006317844436144118177104271484504000207463110912577842135521280575703875148217791413537297953420953102053621400595678589970838502497282022686630879824886002660821978105628449685963842337867297977874664274941711290761045450741454161952681407701587537417506285680092337046523080311921344178411850766111747738057539226772047971587433808698078735141970232102357771785579981888931017462874751978401255900135512137900036370431920704012424931034813698406704159068012204092568910810676653554353782879774213558026369356522330506353539559451485199163121978349237232148915329826129649320575185323236798115459080164181321266380155155245025040551148157642215100155995514441682611208745305639292810852144271650963065555250222772165351837448551541730791388093312264622328247178082923412867713890048077377845068466854531463768222055519761111074638402077525491008819066489661509609604939095630244946584250105886978487593880408468163479841586543253590605008193221682246995526665946861373929867117584510263754282748207618127992840294814058422326805353701903092005286511282559986666355726014222839282248637792853571970179125805778365364739868351718831205461746973316156074746556585383291623101996769861290791917415966005380315845445600296692000124098354507483570952009062358249221100095721477944787587740601501245484743859539155483091972276605454731574880694162060827549883505309690596506653482892044765157456980007058198747269780344985533996259818768682637084733908699817737406095404376283327683712331854241358029997170560725718469471450787139999995709286233451376430628413483417171246959561479155221573403802191787661738116580542519453241271896500487638889295168812912486081114860187793169547803272645556365700413969543269511960113391285907988270895646494638086599024359990484006692467668043147806842589592115855235970670112211602652727206909142310380016431835299235542360043289929311311294227745642881936532252507472798036593569505343739498478553619261447503737577714536234007253348310343827287467163048116235848781227498492757804985602261738587190976997094305516412017159463516870041348312480014164832304318293501448289287787240858830707451327788431243288134325538432087605765068262479318297104627124163739376491631023391471182752593865659281874893875080598554895038194121015982655655545419164679321651778261037209061559643794185877958287615716267720892792680250272621535335466228867029038340938156519770470141423779550868641225199352564365397239422040333750965384719575853044333166682831817120018854641172995137565342947505293495136426667276410771702967158531608446414107456815375083609962951158875024409388267992994924812359887408338664881632692202049476613698040809708899894724904043628753155818023791495178398899070156381342853307710654109354925515411676848117799320302184056509561282602659569560004472377583906767540060819517981824200333027976321239917343664164480652248703513747733660528747955429768758489590251784428198433743146466957000115559148878064648994136837691960453742268451381219625932151216204837874593436713350890091804565566442956578499359904771215827060818946121521538426538623294216629361655670024468107912241485903531023180000611791238985468271318967648355030256461479803435255667041243274380277240777630077068495790635612721270637134063098829405016530296849964778628989008504640762508462251213914504705732903043298419276200070997942830924350089162433016608820489493747742998652872033249210638073961516178184732275350069351633508722513858209181676381892946931124191321721340337372606083611765657917292101291404176532278144593218711687265503745993051608343461919886468511424616416426269221243850075311098961725692020714173047316910586787255558711918420185510598695827287936073247100325149913167946329371998791024666364596342898002671203028727175383174088925073460024001741723420824287371780096962930892720641817335738310117633545937360523436736544316103500081677864995239349453862260279463331760450802471177977041766997792460116887078253174607909507738369096228737319269626799779979091959509969013252835877912395314632361949755015127855551567962500762127392831198952289266300093402207401329661762776145889003446331547030972203878672087146550224426379398151802338761496221178613345812527190552377938061168153063961594697179609137176011593776209927238365075156357939651400683175958714743156265348665355217530466045244560237100403654129179975715748180818825176904257216208525951541447971487940483180934970718638617554634879030327186328945750842278647681643059639820063792653109114302493144730752152026105064702445853035368213043179989092005237913906547765638951567246966694717860609405557551440246656420236046741747601073901033489926741854993339046583588448495547962266411850350905501892392560916650162054705143599268069126984789840412770561609181118554418567180895591361668929262975614102659125270819047846220735635200722411728684566865521541059972730108940914038509480013967469628939708478320142355918672858662209358131469545052302652640890450935378986487559331980573490970312078667433372350746429400628391616836203119065772247603023772938636056441804654721406711068404789349487196237378592213638861469708958815306475745165792798746818981998159595035087885355676433495295614649028953858170162887377551551511996228377902678455904523485069260174810348363769394283288051034994174958757802554844650408743768104308187899721845282306190431276186714411392968521813145097755646547283408975553109769938033246147771275789396307615413527277831770612771073373080859564913639394904332904151391992676567883806565048530295365179616248614186844610241906706210218091799297322389834243074954629046052218763243791551352211266382767667536857052101098316586744465606984826765870784643958686253516111308024581978966955820382431560993121881958373809153272707144465003001808874000419045024320740920376017626996916403499002505049666501168839857793948286394057993395316362511157018993950797696388054606362189767920142238595659057458733401989599919633304210411389042802292042056648017448131108834075413410363847338573465153655479488870751339039899657201314505686556899373572506019359322405062913657587781082439281754762752376705031084661944359522417137014273020926134762537551257480878195126062955901160448935188864672817578571875714167055239782399927132639673070883312993709243591049654449195535940001642617621699450770592148202289152349402955132172545104516270881508172105236919124104614435958947967305535991358043238729595382604075291393168345018643194753695647787084863887096560673105407253646000359127035353818604723507039894520373742007869646825244764872445100250229984267724909336504911575941931535252474032687095433880477285484836582821194581873012968745757539317372462015288895043052637965160561927203380129860375896632168839056581127274515035676119936687154118390574069271698834393914504844467503875849850222300768412544223190812930284458334875908461806854865419530106581890908061565387036665569002846641449512318949263535396067622027988140444433283573196016513592912845842645966041141921953227589779774859201128809558810131148531869032990957135184676933544314063670050726061749475017962965745767557750478054593632251470856160185168161060832707056184987178200378075576764705352457878671621091205126271212000984244914636042399477848139974631550285952739022304694943337400094117084228832519527954519984510124178849423390951869876776709929582496541022795315734638236743412372153618466683485899418623229065694364140148319180627135794457551253004011822743860540003043570381333482744591393207254061631846618951793698125833417205300015732529095237646930837591285452305903856112076523587413520038849634971068761571990589869634565847111463290312825338028639631191146329343944737471231509260199501381148790364909535468115548731596821343440773505429028648185081945785313519676978170149030163721878332141293464697310833861457116781594874122517745973216196803551841945680845514500459672303204848946980468932598775202124317185527181738086991521238581453231622619845948718231896041942073787699270573701852912906500623796191539431494154253942011994798867110251346226484063832112955334570688658255881527675640774300735604565144549485815649067297621508480225779088406371204478908092433139958136613846902471199855504471803237774757620768420156800659709536051331954086473335742212163911421686436666092894910085599270322276915665265738900072205927791657269908970403312885522212032105717943103686953352381969292128296668102269082148102185822541535181067702951383501776621419470645619189724098390077107372951314923112348352711130706611215819938471327642829725220154839711130966051638033392267690522425418617369659151531942758230078699147624918924659977906401412096365520874820252624856219480676594454970755731245702033008661776022449576405881712789227613058941460338968418218800235371881101566700051904003649005320950904115099651117536753400031129256874824292416093888405363183615378954531799985340940609400260190223248175221267702842734441425233606763709931550619789896309945676071589341829887212284659293721620637404665132446986049302624297941075700322808560512438618587614491387794857753841148862187946874529486180382911497956189309406762261676311449003760689884235921603498564428019228920788190986098476138611750330879439040088886536842352014392612835097172625195835498924201752608145520188505236909406932256108575548185321574674830204621209709614588544842186810326031645865333515174934005447278053471922351379933871516459875904500218121414719446402157581421911158042097391313606828960879058215049104914169704087587868573198424732201761444640238704702521866613537835299526123835725061446728219399759116573464036728010468377393002281569107072422466910611875155346178834847202821620513402941779115851295424430398548640551186974587073028800159302389400919146689955234907432457203448793000590966158563415671615532974103213013770313107399453642740996162393158494092898092381943561710940419651714297439857289376729862559087913653915055054081861671157439130009101652381659392978695602837264721631050642022858095185352690313892682020074733071455352395131664653847442146145723246008631542598099632042059490434034353177486478721204986160772744093557129517988898803704086149431434004185542325715720491720605291134643958995823048914571427498509695137764526612450540317965573728139456121692271608904017188048670671083215876659802708777311157430570993041363346775363843814036426694977234213311224411637278984424144808037819602058658626305747433210773582247653574666237556913732492437647156248572261968516319402840215361881329247434152713827543620470334768007106605048211479959285713845663839570307621892535984925741165427060794732012830960544608890330352423399953276773673767291947142241694493545390102683844355573608833166043698850069030978615814748337644409481334210276358348781194391077368950116573535540699965071010153262856849792156969098144582499970815209647686655803140364507311316568646417010833635030693953232499536792672205598861632733710125968207086824060219588433793107054166314900929947503921076487929810079662671758691105087163060866261520095282820916622195733424227018358573827763311479123272932008444411507338923518997998165984059294922874875547678318510065430687894147424048513652935142117387691151148083112986287525733533029067501938373663958423029493378827320231546765509092370777411812064121493481686391584631506900868524243562493770240656293789044485835210811287043363697009454063325045932183037465112211719776778097939093459663744885655093573821906093572556343416229005285859377711141963475440859235676447847129373865739151859334423287603303501401471002073773786867650820336115707028037599588229339440477692419990829429181258596961099018693865740087391564757294799540795562261201379606851810740482685285094426239257217038315628453715247928079791800416042728243388791356383885450365223985068810313751794563772548772698885413646135487737155329784524083443085940854288493433895336069012805000646709191163217616113055350934247214408792537510335080259647880979640272656369429044197717797831444197155523927836767511137170585588266228879951258080767462770148566066987307692237393285992467027318143985982686509577987080554284530419388510126742047287763166393942049691783555435581273632871242569372574224100834830241932087108489880489675119258120253337332317258766611871136307450393723745281732886593290164375810795498618638565684950311783244522510875375788165326929018193560499730092122596864091519696606929460776762373728880118650470087660870580659125807789437678752465286505364274750729450682238559139693715829008206825662987563535348181115863363845429180128571931927655592939930483121005393279847559804342484267373362551564877842951236174542009969124007984434162097583302885225266623435726647265718290120810992338977554118487733037438643018735700679162726167830696527967663277347475672508918418082693595337151404849902982739174774289915086302522279520348995487452331983814167576187373343331649078576617491048012328617323299883853331866121878634195592572577008256556750200104939300113843996493483790954380778338538621182388764056830504166441289654762037471845135974294267207070044960428994217792230036061931241888893570004241388097923978052923494966153151550852225851250190108149270752602267644294482214361318039629556215677119869546538892394039735876355767731769311556870920610621497345550086935821515215207148890974473152005402985450189997200747508436569675045956843277027024999755120281198706596111065305487598714707709922629901615483388827964466154244782234479973482753204709807573842461813211731169367526694783224333463117022955285748460992564471541635764453310352949401158591887713811160835305572808086014512747871409271510161383329367372801261812979042028907524471450542700124721686245512035567306159138250693012128987481347048458229242989210492989874402497996768052178506610749917695880312305028240736683023870223434229050849312396728098567691988559502356550956502626204763733187458466280966409429430201101967065005931918702067002549518252478211952716910720855887728814028037736435174631427558196858545106711054699223080977910891529963744506701182505160673196912154556364877961150188237968378737151905679741242391143335903458900723982702662832657694106811262632735714005748768731002636992590987225693513368036478347567667810261416247375051597000309145371552223331893478431769439932918075878565897586840088800122650268425574729471739454126427712618074081162624240961167667260436127059021926051328748378945421028365019686104442295190414614321084428109983545734888108692948181152119094730430033501709960127189277364688377178032424907779107366675655039282347182464606464842775859083171472375737370876756454226675669535155753262485672686912775913686787563731437218252556250920674447587023256200816998346603130020215991033959760302767339376338308123919094464645170897412489208924142729993692802470498071398497571034168255181463383532389505330111341402331433447874582028861638620391768351425365433975540122504391113307687062766869174683898536500433593014573324201899530754087373083450388863528395283701654153862665566478024758261804424773103402120168243833992494508114025535380487579013104512501075774434394124003275567136131715655494604135931214637399122023945203211674352222198148530475111561125359469068276878901629596482807359116175877441340312244465529390467221900074970189157959578379124919101082662491785297816500628217871979497275120601429710366959398181159950476541577165093655333599410894790729225338867685422889047054890252436077180883624363492045453139577348583260206022548183830590112873114476409566455483425024366248491381248789002547309226472206446568095328628169258995130338047666978110653187072088241453973508079135414791527804449393425265743748472373500762011470993857346839008437390300562065907875367490706799506141080542266162912047201290813420113523408791110506335011301310395754444082933667292488879953851059489424900764070789908669626479512951558023313306556678604555698726011394787452286136062952608290135217118319063815753968332192716405736605754162706545794567430295393929470285550247621696211461539758508319140473310374735443045184758409468164964441280860078308950926529939485890210181775576185648671338583560978446998260530126415318529515954759923275781115016679088534181974060182782845330960046417154577232135071303406812719962069261355705677650565918647340524665914354058589949743203005381262515786771614874503817038951859152247622604983281385843636056213034807304631246234044341411360856483043691370471590099567882330422771998672149575674826587243991862516933252291625254781492734848833460084752223677490732762180010650328601871554787156550138871547339755372291500208953242021310755532194845772637142195436220230265538623863922870819339181564120220261571940983914085593609695254572454372879264612109321710040167995606832580323500486519126082090651108046168039437792497966189373548240734251308044483623095795594262366457143905734074505198253038171898651150043845506996269296691061696634318254058868028304158691713446823040156212118676590129736825578185862373794711884827917079127855600028152857231093330294120722979358804471718386163653156242785694031267282812786272758138934293974679360144350036161448546217030341266825642548368185234421197496109936032161696102886694207047836388518245361296297017897816785178794378529034882260608818682955988356323260890231060873692371925825379598025111190513536592293559752467792847752772534803954998702473907366749226988077737455694219859926624371194585951445796782315924993236199347784798703862376888986853984952041279551944748625246708933355769616098571893031079232103900342415170129154907555694605331446513296777070601642943203317346961455369443525600218889539686313311464521186707055247866546658891414913433678220590960060674727648001648321031277300182792767280565117634104121836676482921059007420262051651928890698515353983967849291151751542019663428986265872764751698763229414767388093990808018212856116543654164506382497624254414175783447709899355097326430712604285734094034263933851824580582809133451788685739513933992183572357248089216566921262121585419325061677024093300649414702735658937298142818338673997180162821605521832488979508950377630357265523501627850105348565502551621898748228842578349319914446350819081527786835985995551391138300233539335305184553345010494097340052581518173008987089723222102503866795934338060070811606695538729162750428485421195059685181029912257030748775965731130055745073752567079000299464777067800569844966558181742965501774223488107890137455462803292357281240609054296123686100725610731613441261556008984514333099367596491852785184520623272635412359415793934251859225893875706881669437392564952486626307687595423987096790172626224713528487244634923074241573919466117746280123985070639915054913956995556678382213477928853086631307261011375351368411026377266971380810652094836135271243165909197213762413139567946964385253651979945905998415806314974618412296001147811180060489882297464719043871213111563619585349633310249606672069907350282793401237578660759670343254870294780403392666218432665587029878346362947695671282985706013480631875289186252921730772557312204512712429805974869740753935327733439775318617420768948153929929419327145965786773712384534692137434636208841769144505155951307920812476557081080533768270056270694968745794454856828850058049699573573361357103815125992709975682466602575748795888793605672894755725678104396924110426825639724052287446307769443609223679812383893382437392128913271839328592152869612743437098131741738793949121697660850223319369718323626882318089793116306153618171998536107493512712742696047761419247349566858316229108910117767781152460774086854773069530501095946540981892972881564632140202565292073016597533403920228458778788839976559936866201845143226170642155540865675020975954583989080436194588190407149730713984397099874518612248035137518929101843631694793482595858496874848259204199910994966238532371973855185250404721752074917868667677144767736925278392857307841133663642699572683512630655560084637238937714825888711943767909989946320249635726391333198261688222704150430429955019040579477814955834593350931508712097463060460937624680123710683863961939175454306388747881088298782690489291763564058172397852984558889549746237825395708921455420116043377821901096227494918067722283979085281666118184117303246201253838869084545915028474752811730580460275277201088515207652525952896762726901187393495289974184319795665846813807908558052707628294870538349109564581932045680692193927509415354966228246271485343494358299266152146212324620107382160296830693185463667405234618515074683359157154295913248954818480824263624006980927145645006770820872344483757016912701630130402725427068767239147266631412318914883343039675751914601681542657568893615668994864368960476398311852670391992623587170640466227996918343217866637867614454347398708336219776526092714890135250388802191552938499902128749100561646404356956409043011088151207948995737665237621547034719512091235221279210380702961494603581706971944604346333787454446419984407503374571474177299934591110399302555611109126942832454323662308921309948383273119877639916912399615106641760917931094636675866794087870794467241586182844855803077257885050476062510400650666589252293862699637636174756925009446377709274494612458545838590494521773117982382856446108237881589363330182941065944675860821762249742559839027267065496226858454682374956802856074864945444134644741642167383212164410623980907625739010879252997801752449937436155387471936156870146140075493629076253401754447088062834949138601067304748429417447183226340229944400063080098977659266601584576755334371670995253567838035551534422095901915830180342302145023556301415688949530280164238186088419046321139723501076526601452008826308510428798093106106021873357659729653931714999244781694791260955911005362534825709979588889563651357819220577749508596949660955545629286997202508365957309553112634448431544186288542405560687829114267027539163269909809593942675792800779876235495798368582722534823625301892945528065676406311514957705440022183530133432770096230222609084979556242409957501014699739806550932008619532916863184637090982014526953266535646986034655864580968943435214615941855119834846080900170921914371873333171416374679983282712948084104353311482396868909460805859694872036800254615396531893740933308634574549657618112057786624322020857698511102240536774012045491138182986493481251844920488770669186798910399248227090759213639545191101002748106131128758681214655980955902459121612629743693570303722206599555106244576818640468769694129386079449012552015661302547410173803939148677367434389792281694340669280816242314068286710623138552922303145220779966225961295624677038643404991029807435736468303066647530607466614928242991152717459241627667407541599585022194499063265608166042810139008307750186633801576512099898950012757408482223005314882769979218794281697056916489246045176849111903830148757877637410658056184114382561903125215825374190819306755522717200090125100784652829639227994172424230378869272385414389118544260524515548537327919779524970653122797590155520749341513075317812975292510725666452237812050385944990148848981448670512352414723337783383070682286386849556957095730778192315573360561936482292451635685412737842114569994858017999693598618626815942109393146033595653578487484489695709502425515382817766911384074517018022239989090614622040021937865746821195577283821394359735972180774987229685995011034562220832127478271893565657719330998605621841298272089634149158255373027460644424274419665687387011966331684776619581118381316660591861208420331179024950456985875082988937313976599379023052815575177223452646737522563693590228379010210704848525999874351294078408075879973067940777008651618041931086464857960578024901093411197845262432522518877640698745418841987797659040398751170802483409143635173883241564227050248941614707576575649370028739392696079853185525515313055094898318036063030462388478880661615497051522039045920691933740797572005035936499207256294796993346333080253794142223355572417114382697259290597737727379960731990069176906270916366606305647293636497113861242755825061621621173608315424271242962584133543211951884788913102594299656841922093865198943299568147556221506452481045181885586694544471589424793777244476233106611479041660715476480329968982280121383550082437133863186660631850945688079113164050670795264907615192501502009544992666495152039581692581372427681322900627361481147253109559209614831793855091729479229601152352773284459858192360293860124418895581732060847030697439340199005148664787611112739316404913892193839135916288137152869258821069614659244922925453326937869644526410674830574636438405764841366428616308215309840934074479176770059323217533223543078777437790819907489674286202542299377372240473300567583024586429094665952612868675743489300094029120796354569576554316378168507644605186696798766119102528795504674300865248207683863507937954005600608389756063605325793524942973799439300200567036284382977164069836280693315798012155414761851990647192339845905665538641048005236067017972558925884223789653191851498568917310951681416089852749748656380289379450283328442546055197846360277540782973392416099156740676716273695965357034581278777251295109529989063810357083222386427025292763017392193158234256350459933154170715771622874045627661831551238329639045550348613672271898025483319025859738496450240314087883314150280649999710695031717085221072763111753421138005476925998352919551947526356481006892243467990277646946472321916680034130676980367758483303447860325612954705038122374055023874002672930079580861420264741540738295325740384480414820570506659860626306002614128141872114208765668460630114446148441822239782176667882660780390674964010763904577919391019177716733964528749198329969005621262207258425798695392554524096977349516320728533214469288753596376292699481094994720102734696705179972732199337462982502122780284562333451487593362707710356789092879373273715534372064957050659632744707364728988957679351638051845482646221549261997547451969829730190007122722462021625700597394890986842617528981892892375266801914430753868895352874520566938026991936866981805595940251473310463552304628168882865353590942665650231037235025773358308254916070384042757945390699990612776222680233295548625998618583930320291563833572632471091652707287683446964263817643905999159910064043984434296273834039016127700261438010971345581798798482334025886025252392877056037667790721879748556071798832803135804864007896951279828863117201504462176704375283775018192764677800391510594513578591475190328929436871568107919284032270484939263396866812162995561716847227102187353001182563899858930496860214218844002089117655889979288087200319643273474171436093850910180587646743977034413068109272621294001887927753309173272846252404908527583649764842429298632078885958908009553281909441702526252145201899728311253248437310642810611488922922524528458677335604727630925743039885272122654934797859122608570308072050991132411584636257225489857449840663219947895134526676203808452704347147244011338211204954673534046181660421549359094766927744342509659017059340172238241297912321148552787291467535642388127939220369269143781326485502612356918890565818180511917153549969479664516503913328271610571927592888620082658546619162249051261338277355037992091145225042088798833226480769011995983848418094417412446042625302517163158795667292878647228285280402541478595441977307984198131282772112181975103711920371673821655678484674342501274671690876784061550937454998953576321171852674423139545878124286869574502768487731819836432872772483137803684448731046359194752710905905549184216989543986509046817782055413562191993767610257889397044903786489384833093843358251213622770376902551101394559813529766479520669290723040517428601711523933013676302048500769192922615108722438937205380773949457478590420839313186344736879882258568752239888125220135613622111372981096699221865373679905420199366324455471282771982073508033427187098528973205623682427937187008325407307584905746619595476539890816825238328560059189899636198090988645651952333056789965004355168306489004992874623187253045597715226211439681263983125181149882507835194449567952306459869580631050521434520385853551219255327563702701737776558599340444467285032621323778932000912348049525504569973147595704111199094645156945508877823464619337572620529645155677724140113376695888195847021367977554643202762208796268174143095345809973390959431453123374586480991167332364745857762203616838304102592307016041423106264146380357332050846486858432797705298769997514796125723947646877458153261642462402607595758309540271997776391645395196952651384703690854663203600664364293991584479250925146766161338365382296438395303499886150475611516606530595927362499352148267204399085888600662046283801902217168348275723373429766665914812207054587468454704375468062339554415777217000362060996293379672727046595905972073048701912220745981305069449507771534567700594647005912370283629083927810662710425605337932273295113755846632015414563482916044155982553115107601440734261482026949980705479365751949735574008015554263266742043049330242820826219968135293177524328612523155578118830923637046716983270883304549473769922358130360567864430420755740109820830365070302005636987589616257620614996324781601501376518645037201493153413502557927762514479156283139310224788097094612664844777362431013364357002466599023529024008334065642490273065166415045428286881135269636623297124486513906145626236944817332920408408302848164013960392756741431531290594042939415467668618555058711486817211808901581912161391705534840703846933846694594436428946837276970326479617059150071999609138510726399989678362926673089051934410839171534637244364593081645240505101002292451804909940924893268867997086467966931102862238719122152263377601775885511215642787492382148165662971498730905122652698432991299812519205868080148068973288879004402908327058935422287609223318015024752864195791441811656713292882280979484449833709601646604056981264668782927017875366585010466046127309651287603049709687449699891637064196355127952973764972392743569421732116547566485397091062014388712789381066514076893809759606697297965223441931237103436855142204624504904427015418256229738466768038690110459881951589936207437099203735212933332129010976854342843085500885145874556556537272015778863381558432454659010339673406077940439976088181274359510576497094312202891094112832475279178822448846756768694698039295762894781996745028884535143335345633987233522853954627273191270523684192060644855792012849639194653345021751183711439233576530439979749370829289055059429664289850306949213691541806490176819487448458017530264339774370261656197501472377760286773673558930623599728782902336703402592587398297895149228660655007150555008732616864601492611798441565305461080231090111286935098203404430651811518646428742048111225622428391066711020891976072630092522789363203763300427315467498849754247258309258015150900363539010918668134244272794433611814319930398709844824542782796139333904553417017985393457620343854268649469843708818015655271115500854008226388711951091304775087774795292088716290735428638830923775942023916108056273921326418594601762593236305645700300734397154710983276292121875333265069074135366544590170166997284846221026504343320012639368115824653989706714758787562605167909017704260385810420562466489382162013813424524847946499077443162848761590671501614494056918187551526819300304028037665224906472579471677128441608317050236017281113760158894199510038972141164997047456276525080501646918466380800617159743538674242560221038765757535066268231673951237792554177026721166832066971833806415315629042620027367770090766112434343071913175298515362470247621582048048188143469422837877163840470212065402257763353184362001855085390397453474537112545737402165706479789666233543809354007905712919339878209345999346737507225470469486914486355144670240263102571192629148801297241442744899997357072321662147459264414183840271922344392347218778861587542236845456751699887122707869141716170788043541530562240542072768404235507667391046606874588153807389773503711504647031379403201949756767896939046737890890751894996489763310552991003507878985361012115857322462439683073836641980930109153814809144119508884922110841261182888124497734279213649654780323562720865304467234874249917788362470953108079726059806725879058185711090943222337364437085251353301924657679841922531902112464076759553136991745039379528212536213344343232081358952610617779746454561244580332144225333915529018953781654292089400694360784187455285044085322605954393834216475986703463865953086250955213669442469053720038131956128265958889293275106695347727141363879882619611643309414110042545449020489825097363621368418137871367436981573271694175782250215132188334209448963067374577098533878143775924428507671929821812079822771622418590418236028287819624371830798452055748702010628111317064342664855687182099645770967070921945087586264701170937018763831899224254598737554739632877026999977965215020899240686868142879289272977116703221829920199217222486940661147811216361864644193342463460775530395710456862223472729336094023643084923534484467671124404406144956646590472649293219799582375462834600974816988651391430720636867328809991425343862932526182276800419792736682891788566429353464896339828146960446920272688195309811335091434482417435318282224121545200240709660365206812544459210980837203231179768834146638473225064452476907661277681795345624182872921704078357986744169193962317931862922270414377097698573462095686022098326166817862228655745433788461003201185197955593027675092665332505745833286943292274223932321373447949659455426875651338855260914759529660237538341706536196431387056766113852873268654111758201686783611958792247473263808395164240565628486798182959556892094867682507552218847242335570384427795793347662286251159954328039734728580367492549284521657197870183202195242373573700499489897634887381879087921908409349746759342376457285340639531966982032979236136400380024066081745082476611193245989376565206208717646045051015784806584967620207861927999669097735279056666155084981787990383612964574963738982825229792431559442689821116103286108454099953904165657370695700754569377835846031738286344449368100074838229928381467077666672609380307463410878717911509182035106367928748775207248053727232766905994906779780742332046254068392930881537020096817929001898199253375774967651761197637541031825588712215319074563812899592283735639107951085649259996843495193676069004184878102941224221447895665454051224381114901850384440895993024513063659105790379269549091003991235640255551433536763139942147934702945789992393392639307182949473966523209972830061978759888130467074244235445138341983962963108228326113227693889274960558968494193447488755658215414146934247051937200208602823984577086633048852766937842619605467363991465533154664189114917484028138860687080911109371929243803639476401867040905328336392905979579494349967814827055619112194660364855564463091306275979923952035247351207999031615496510698569200998805153308938100276490710066160145786378262795124544119702458586657690804945888424838964789347458335596889463930837465697627297899747905839530109993333918899694901162596241228653756732449349119462431214178187994831595713962936213923410222680092920272540059062200029614093839232577431697434384232160498784841189620637555160101352175451031134147786528510661734488731273087467486100473995497355516744349920006226165967788621167809034483847500648743166861932232667882611136677422788767233945336852560089126315738129052759207039022594384442417536206434244424496813754383115324976450351287568247780103403530917702163991611868140773280278501599473133503108519524666495844945442648771492959652254190290325928440225225999484886255667937425185938858504963244476719933573474610079057787046770228421486424795226337892591663890100635666126867795449993100633328876628302551229235404377640980608844367758135612191698689783973150803510120101506951037791617041279136324529060948169897558950542138498027796316495072958971871228040041263947896192602449018048967997902749954256518947617912079910488085904003828322251788062751269907316759693555106664754864035697517928435909143751646775414010826180403884779158228346575148313577543473639121679533074485800893237266727768442088713502174453183587912798418682158733685064320105040305081712507784252971283853106923870608145835757422161066035824561362349803689020713020982226853987004373838503004739742613499886223850994519641479642230398171258445131387856837751039806206380123679185513882203180319160753416002579706704731273821525379548098118904796096602238779671506573941759631552910120511293581667141327053688903949549134415928837304206465172509693820616764156433797065915477047889360975121105002243829852778620097787355038214539585101503229312933995842331590836963860758245960342960723744083416583089342744431479332750289207448305424815319069998415467337182994690392038263163878627780395667601045953441085648315363874667381399629199642680429418067074042393965241590235882895217983504498203393076564373221352123011964098123768081425289691706085026770318209809137256248229642941903896401710842144584157749457350450664229448236923149031534458825700798540859824828097777002581785230235435688743376630598191168238559020653048446716607135817896559828624334808623184691119858155433557028067876160114173709513952643479111855250005709971842873701549159903934783816366871235046103643542948711819667666981444452341313824050733559415440997660390370702086870414533812556929819339858237035501844160642316866641662375474827496470945099636142242433060946994181726302096554971905662366138614040180163228105528109127050387349039096852334503762877907100372109741716949466878258508109389861677627366278878876050934071256298803152520447047460680825968033395516035753246700072830445119874202929285824084257170399901443123250559190691717282718250523016614380606091577755342227017802016934211984833290132178749728264447250022210386636885115375820448761756868829510792546697985231216492801148075268792591245713919019858996183073256909398479567923069153547678511004752626210559067749068527566827158933483163887023056502744274641367294392806327194982317809864295321101553754698484923732748108861958435999699993406311376961379579864232377952724617129259021002123761373620754790616489727172895369629576513758409916801116874432954364387255161337936842180546703318352923387423014741913499429489919466936215845214033583394565739570185850084365768517706938953889829818253161508606317567084378760419398372415362189261640057573950287829169143766304447469917108003436314360662579139419933399773007359027052526735113756990161997233163292770689818762990433574190685025338703714788298435895523749860976570921662858471438273562039815705924825338346213843164406951117057407448871896817657322624474751406676361450511799378928369480746213750856788134340570830987086730513959970610425124985899468780746098338272684722538948819580102942651640924017860934003440144626846238074437928149863855969552096116347535399770853199445945576829089244796611396576022753827903756276171210019083087279421252894517405298474821557081632402843029317417225641559588282795610079241695362686860742299057043740025136790789606216348692664430000353345974600465345629277026452472901310549387181645549505132583096980561364816354046262231817264495482702946841384746700943630584171090045255811020576736963271151366112828521768437204493737633550603334479971763273156416569141657299518792572779580544136078648006277811656723655045362210199915749668902253802794254229781518258441766151609101158337673838052069931196094477305451699170840791423445189066468985894443798594737256952809934341484458857857108891655418467817228342690853847285864230726223774422512650978915539838208022770314665616581679878578358271301895265992567325223000557809941838839107095407963957984350844512863436996308926054155071743621029215138827430926621912102806966293816890600904310264568143942741015410881839586723134537066633036536029486702205159265110234942443565765300963607899687496363305768360320343837301246131245572916248523235551560876054510958355731992257012555615059202182033102188695654659802497869795169116271652939497611621825502870810829443261478239593425142420555727579851922982497600127630740815793641918859992383478396223419850369222571725322745997433271043967251514395390510262781452660449741569268323408830786052127721098054906534421951557986808303301824058405083593596702769131585613167088850474458350992582056141551585022201259628137987795525798492476939923931562490815308161807680902443154802291499765072703671208465956109497745282654979248813151974383770737448211786927854585149769959528243673740190950278644834896301121484922071723772044320358130442773300645408439143139783064592416600487968086768781548699936932837966916279698664618488814404932905335180397299718978174848340328748380785998441010183769332836195073129364728325612242771683738439573180554228759700471840573862562199228660032544576019189157250102477308308496067531360687449003655747103158726727272040876082839477081175219732854402682570730076741749623029705981888497188923488805364714008788592174204950595100727062298069820476886146911573103577219224166832421669221714474892055460100517195591259282652481918948417425628700413520578543419225959962415750647969553444344669766884482814473497063970109870207503322848813183086452212502745782776816261211316650553200702155563427559551840739912528700206600139721641948956703905676602356548077913419623554692194530436731936843664098895735788557220182847291554434512557209802741120133340539479614972543462014631654676308076561728951613829092198404931596079748098592768314425116763739475130660793964055225903677158688251198710811143537154636225732515359260977758999060566481214750739058215238956732055529337654884313528628895216844944851569036522475394187327711064437287474899314077186772026762860703947264384163483668889993067246306238933842912618086159987795985392476160150871718040327227995791360892244816543868270027562285477153552266169048899482314354413520927690287067672571104189609501471489064835726217847038435070218337899761399936910563749407035199036720072255964962347372517694614194987675840462857115237592795088777390614144695961450750976193169417924547269438495958633362858047708740656056655003995985362810935339999400108488103073644356647420182683340462466239603501872264248066141192637265263215925401955386111388864898857000521387335828297384329018768176620258557243310536714393978880255736492626948300321176268041453733075757549936433454728453150941145309342334060536739451968473199709023397705921770692781141338288532647547783460886970941560348638748354986916298575186733461455623831616223590465069008355664216532650892199235149153164633560890184271730367687245685183079621689131149043130809991254893199422069102929369918334721649518566890463447267973105729827332054767800283546144950761128318419969899379863203956893954199815021580979576411894144072401326920288421060360883411021074262766562419307308332540130135421629274929384589816204479148803846004397074354592541378747254010989464903839213853497641718087349414386585677837118006416859069396998016271352608601454047139241729132884890496828488255153002037890754623865252687019304201296917114953576039071101755281694887463647926296642588773798213841258109931525110345870983720056924808589441351381322899106606017940143281473018104030246458658300087282360592417493771403563784627939804714828505630139566938264622445575102596218228709348939358742331472023465273463362749180884438250671453051190914660715963124441616396562808716640554608484561059432258774285017663207545076645026530393056302991530024790063992924291808038097557504404928284724890799038807306360086745721504404406969285338237361693048572217268452609045491331648679180076647792589739041126072954370025718974476382253359426387364203294179749678535412145061505518504865022256008178259114587160537804740586617277905385158272832150233554781591897274512038431165777198135175519125214319941628206647402111576206194875474804819546542487755398506570971894736016885408121848623819947390534723891592107839804674176056873741679963720451578015972745314090053183469984187371339768787112739249684011410080206538747171638131730715246986911523293911146512677771660055272309597552170249603665697209379922070652721683749120510980476905636434014673024764890355930363978775479312342622808276309396167583778008188938526139220416778693268368436217996024255521333209137326872797074547864350345727411188255246579649595440684444949382898720573682819271789273865891665633102932380512260075155569480581944770601069564733347257073872994526442054587623321308675216009994284519796195597499279277200488113222393016981312908349313222060253643540466673290115797480540876550122912119188711659891647574876689816732778891604730144694624233970130220845665962393837394192471400305621050784942166688742431684008377247836009088696565497388649043431344566895462898605697500573334893051084736162571587801734666025215342655788048819977151513450762168333878731695554883045600164252834501054793923300412672482081330195475336672089884458752796030627733012757094711389689958007538379880007853543554150453875144793810206084088024405204900852040514194775276343266404057459230370521597717490926546033496384402842999216734359606898851821432844519162341169049482639743257493309294846683744662253771990570269628335075045812252204018604138695034573657415751258074586066724710220788134069692101416097958453250328209213907676572351411425211222526424212532934786860536750593002913798463934864884842062020037356077027172859648185295218798057973607440689032312148045727617986496978145446956489416033567437909267752194487817171480449573795861714624739709748976603548484825596803196398863785128250187664814633597942932763152299051998205671951375820163130051003368415091190936590108350271715008848407808249133728673391353791537212058992235438148335334021760912130199367422325938689835206520466314170753137894429573563355159982190351307998166027290317314608267552360278651439210481191488849962795549486542568602811366582963841232201053414153687626909193563482730671487339730341185897691202253998966633084288501314241131928710999629926060447528873631023249399738054826372833935013306466907426783382411738198693308685893486544760041863749629554837242628502848605618356497128865882134896850376728299889479471834691213218031188678641168776597064751549180574055372697098460081620886532573054330657642318894108356922315257303694427022376241023954864004970474150026689648472084469365735777673714282433587179187380935306795034437720248776318804817921768157296523105572626071217689955474804795605000027373972074731299602744036493356323400068730968291717411709199700951137453910501686048056234633531562744008508222279387163282005344561213282450233860480812829971649130287319733540517696229362101795820501261661610433344740322833957470691754641386868570564392013658769699457100738672973125501892717945576392931742222200896711779302596512298998493735029194286408303167470718220823825262775050610157978734529393385558191471793540677540581220487294840107119043286084715582808988067987028714532796386896928961179747519149658576030554763912024458691611888923787057155439825790216626862284061017812163043106973924629738438999031007020143945226259295545510396362119560172970197554368472114562590009573872601080066118884339235641343176545727913987401636753090112676388857881456871607210115356038181958407576415199025004306084686419956525258243548050255441608747372221315963770059875122030607424482983658368078375702588361883186422597050563418725703026509553890138051132904890003053232937529864581053143985587954708914856428017898707639773070797777762869090184728493757826350486119908108078353092268279424422571211090525914714208881188601686789256304100875571273497150939290147364219714508037017149562268822719843990771172577585843959680656367279224840071864012987882435870053761859392396947913673887599498872272969712727580464409135739577625550378138951768777558000036398347505409658585990278702517055603923235698991463452165866310297380972266587615797961437465871889540042678921962734350844289542337679684993128992298001580647243811876005432459811027526998892586801609442106877986442207060200504400296223815418830501615459106716717879984399702635470956707429622340815174952378449977830015259620774101819381526965098990432454955685721321241225287527182548547300834263295000626115824638534035669217859127243989538299832175962190687720237103394092103865088587397041987662291446184270316126402092981015962196554406414427546950243755592446620085075712675590749676903213175935900974885630898924267036826789522282887139341951776332862650300909607148430146001641179647633512515929533085470539472795782651140983214818672211748427315854015269731430058511475990640299405952994230078647277741350388976366088057771400129710290673963861955804441676080486266760573406079271918252061743328032013761336207988885707816819791552006293422442780821830846870922621455336483309743935938524517962200274076888741582357475628806130403282477659003184011674623642166398968908366314033958785828582273706065625005534787835592450526672108857075757735376679233706624180577304096841606692697696936918233444313238101560961117288298725792126474232803545543778821437107170497943718775044457631166076260499600121123875673425975596625982117069943131092215076251757899097135937206162844617852709955792060298651470825010296529020357753709045765302195605404897501411516273092091513261481827432783612428505494042356998875715241616419593868914820815996324394621621114593241088292014333831637591143646435954389187004420695516992440812788781753338695554802863609308586808545194122966959314336968811715640195024476940527279292862702685901361747713925945992825884805714375056359041556321766580428194673139403596074293190513948173264954217027435018364815318168610118220656198989587718690561098168649418547266530188848834734971868919553974874734810105291618357992332989350462294149443012012191738493845349640872105900445082966676636192792571811971741377632737044405041305393375354538540445462947261887422240425409323623344867681474087394076838588120518581497290487997514295080167036235473599993631975707497123701967880535338835108876560399550957591815422470073296564347405807664133483290711122546924279782104725213878346316723063319173231265656809179918375652499000632569610668771420120457026077483896713537019152529777293573646355179649736099095239848889403878152319459550312369161591646303456776383147189410308438235759179918711948667836280019912966094987432813651638779603511551896174422247976648878867782140869378859784479707836909571034380251992108102057636516316337942478874960453486993673648357670105790124443009820481896953391907104295259520781930760254120903146693482388574878639281042139126032755562319454962725675050156543137126747986529185758114592613639684601035858842193389455146913452312435599208646124364486487246414037823275753359305178909832432563696161705585329866383931699397256399889544011624629387728770433738532527716322026240392319537425544489946087088212612175839419878110462200911637099293585981182417789686062340028232264808469587995545161045363840335423572126187196510481244990136010604383997553172897300673545305707258964184162665933447079404410021871353346869595911291071682827373876693941145784782365261025397774676979430082307772233972460764585067755672918479067778629184945244471632214809953222056935493566051149266279434479617701169514734685905515570512249449680945252470327535733710006854701880068278581786465661436846336707961804351214259491029751491803147660591187886825745050356087851620953536169307095576137381698203810798890403373936492280290739146999811697988872665069827496076378584440130366364329763212364096967830598716117482020232683449205532599316273639251191863657974682901059681093578519604835248324788787970199484266954542421130325266012283056054634606079778938287597965612204946873713676058273216972398946272167300617906504770447959011103804704582337503019365272511041328769689828337489434067207436775846467633395511831935948996660552571833995747657481782738357772543096819033339569863414213808258444397749391094940944651883212206370270893900558939039654201523681584466222211353026648456544441781308079693220263922184703762374755545932363743771200508330120818944909897857800063602175870400003919282040809301088068466408123639806325791985384148151435219643116311506490910440414235020158982896982789913376408430630114101498526378100101536389804475760206933613108622158878017507930647283892355306452200307309090865661252054335098562911998698061477711724700576581061780566343184217914478287990014052430518833625071371236148935727550733864061864136742559747993748105067468367965570717154294148036781010371537739165607317083341802293568876227901701472199985482079137053509281082365563011467004185043697795212740907644976960082000017595328639760646558579846874235044532645210818258343820961960215036164127557061618361638975663000736162074429436364101304797342172524813348412040744168248790143831159860358516762654730299250831898386516807761153857516759135221209243052848573052446101693619751459081831817992582883037423399115684802661771309110834168355952746088522981674546214934209987998759640931915884180399591886947368874248885658475927817503143310076696324334576780732994148583320578750183697353696080957246295460830479719177814742672975755603936014214460098611710340881002838672722903798237339234688559674305552863761880113466676317007853547341632372790615143473646873440302998413440394062897766433342910321486714271182805475708078364290054827071378637116843925728617183227599325152714356952395889743260261841004402001440695232379981571118871720526535994479417466843216747734602905070603616897734709346701136246782108670971139505020276493773788151921032875102406362305114247216256370502033559956719011668748882783591148473464703300867763450739264201948223578461710189802407010123605111500521979984539103339114261438961326459527535134346126647371866428867181514737660847776587201842557935279803879394771476240661613996514512273404137185985210149825487566356804418151316668027594951395301000374728453073196156812451353818971262292470081819184631123235109446041779876243263386740441954993617410178228328665577536135449126120684255148311505082288328450755913919816034237474703283338575059008170095086288195106385084415892189474450525246917863196242561929693650153248240860890302384805195239004822418093427313933298402791319673178636444722752338167636633108005036028075184100676964979996599228531094983294182990699868394229745083729922099899672038278774107825877386947771544336509928357880386518656788913450020097583915393695053765234172663126860706356915008156584858569325252658196262596202935566416634621771491789420628545313376230644427604003104649446407706652914504045344249935568838393211642963626859420966492171353256538032448037621055493414527415699542507558798615125259213135132091133446900908050418833445801098489182114432118720755221504794654789086199366422690675684512231034943167298494391440839387670413868011862048218210016928340854826840783559534566362358002649857831836190891300788880703475773153880338070320770125918469086472685453241748243462242144147994570386059047279500326832467846630043734823657995817816197588635170161385686209502131176821243813334199362288187378061647529702743653411723172117935772053559278006434095454108470512725066037261749136015546421515582546640020533929242617302894894216891950543775396451328745018833003383497015638706969503011254639800120904070242521094544731940368091517476903571995896281801930792892568967512397822399976328952289316158357058598499404435319101711219310226493344842709129146459723393044109009492000532215771635229447713277315483853984909795388243390784910539064766341629314540946029427675965528947618548239798252871033448925247951020634355518013251345570081321978246182323203539547293794915817659514231234417740247961120165038207949127351617589291413058972550874946871786819170280822737215265593829060562041283942855831249909252441894624387586389052976398407247678219398006781448607455763132397099022474973429286824384355433979463011980031604177552822250066386242531691674871694787896942248513651964168750297616525758870857255797211639834940504536435394944801715757128040113727893967210616978954336174205128472888975183270692617164005443836735270482814234045853356217399057124853664532452505101201303658821098249571999456072296306110291497593699761646470781431734087085878450640895632060316939975748356826876449676875146825416909281038683491170114834995814894898265930848341240533743265493435848559436583471645113655381067169498029622171746601128287433020495948215328766366711422267918507278900424413041099048939942737118707899633030973120309413056658360090047312508355244125629525505310231146118219593236259716492829417078551582184648828304609258667231531096698735632020495086339575290349051646451389176945146675110532115460399721640662711266767429556128141453067884958162357169969498490309517047761186783407775310261574234846068680014522167701711400561855494680117196463784967024330251546479666582513169871251034430563043235877327190065142165895101041778558504818419069910401906049640218548007882565616622127238771102709040192933441234099067461797265575974920537273179407393380468119257696302233502261948952750921452544115636055357506594187246537727421492026017631256826925056860002710376042023813662992190840379450627960435783877832575663863512620548183747341130212253286618860221913327654439081103869055108360307573223953599203916405157322209474967145582059976534027121985020860539941280982909052577113497665169042176762403561682870814350823336230034120661773775060526619984686650534392760100035658196133398818762298596690305188292417305960748909263681139007288386029289762296638558553517154914904457651622690329352706528890021708982603382140648894904049623581976680057789505301443969420264323316583604577922142858552154641415840332830203721739426828299974172164626901169062034384259453730426739598447764062145362326890249229530551854096208356339978295464158864161551631575731384070442732014604069482997362548412272459627923141822392795853501638475470722766955355503656054980397952360112854250431565008177330470599171612394652526716645672023602728410496159219461495960030433632037420028351343289641811184761114261992031437717445929561263974476774159310040785208206740235563804195506996721074231458829790485488737220516422988267325080639588156843668501079518551806374862996669648678094474531608799641010003914988835883872472136117719620506344700545803895101618507692690414267438385669926032310055055664304664487441769420247966471489615383457716267229902296819380521161419775343676083777669966148739479494776175014120534715340638789126986269776401480534365002522456962586040995169772185889210755973202822178403781781802707029391993118478789525428571263878729706575872360977380967234737387168712778965521581193107433636821532679657209279560097918120961301990269654904674248551670527594143304112769535007986008928132656303134874848559967267552087077226920404687740235156919237086342569476373969728245327947463429843647254312659200309781778734343705023344364861900485128026867094806809932736641597941605692034548455105129047095477132804465847741017625887661740193788630338036736162265953081025910560896503773896131318525185137263442959861835518954990923414583726797540711335674582171245642855411168450081489845452471255099459781097411042343573698911143978806368164557210847761231847828052072685183772882115610628564940903991529183815695149615667479693240968080736650361235006018754449239328797671328132787961235370368617440118573166760362614034951967984639036446421393576012804030779127075012941150440167880316084500455146162732643562252658724862572024252226553936699057430652113121424162731856360014570718248179069251686044418388085259913267755816944377900250570060902211557660922596711943030866936437838276289716706084112985108460807113750413509028851063416718024912087935888343648293151257292723885519948653917763288751386960353050191222558837363841634497405035812697512722048763175652204884065234727680949113018993920588034449987052096847709869464198675764473027768249442864686285812125463552942900353988143453886675287440117233672000673922822416004754281188800932650328525256078095465116698958225468485875556806334520737766620009413618303276401835717612187352513983014012250280643331548703537564849801902265939313748557997496998429767516331857129910814778825988212865856335708488331180037875577377323071877081689077768693289434916054242634845461843806655862702889963831719877670746833658178738543538422370730088132252796180406381297374469544895410533433003306852454204227511457051278376893319705625923942261623412737751211740562916845347041071055299026635919598672495853994661709332696608604431452160846557802476457276698355896259063755541740055426681750034986201425084520771032734092106608342273091554679760005101697305220167662742598577887207601594933939558409675096241030743275773931582539876001509340746551262862358940682010850518731596255080310725770406808361004864972342462138075625198382251498621609356342193775035498894711180949683617600873962438813749921840116211084846684480178109255573089023217263082633192606315237610889627010490733264802491738437656346827931033111682617249308073133742468157148507434846690666357997088393455753293905320883200516865261600190153117111213863753693544774961966105048735540795939269982837309711344609353358547538638031111062231060532449301671116829912200203111821575511805913437509129573522500654901896940192959471245745259267224862200956385097853294543861934010861902870942195395158961775719821347946447025342505000975864628085751459807755596451802180195838990366336332519836453386554700514474690762681988185132976805621166926528575516927879538113169861801879690247366892288954675878853530884370511533876936753920661921989294181972411276376830352419468673003280969256257997895718393104627956691000262553468716524158858753682359565728531655661815436571053233416096963375150222852944999008018862869288096203431317472986643358602307156677720633500488648740953521698272465098494850475578721248313761384172274398017279754212937801451232620568927129634490226526111484239272997678936816101641412960462903739356428614720221184731410502212512892758762880191764495280616545711437169450026064958341410224138702153439427646532363320001930627156600836407064318628242479101095960826772234160605624990051506009495553901526861058306750296451304041731748363792254028617712729972187111857637237561644949343076621471773673015986106166119116865482438848585423538049141557356297496469331495303526296255037108961123064524682937238316282426514919195315693874622981049476598569441567843471550525851202349448787961895013527708401273915029719856929147486510573566896083721301981551287886253423927885283052683432074658608979398116908296005063210542153440076562964313419732954876467530791979033954468281183436010038727801558555305676420263498706543464441213121104808796167684733940379401703458559457053746869554704488667131674193008089705119490717582201043212915696043978800370560794270249911748440388089909339476557007497549347578441336409601714795591782519106118250096809965910972915568463175859998864867076201620804962000892022984430996028730759753564434794914575627793746197138225277791167701723412419090933093954046239698856973818875601129385753269820256313461781741897160536942054019234511992507417727316033041459718205216069491702989119965925583495834124352009659539115685164059425553170396046255224241444297274730517533375394749591502238474876252758264050325831117133258926227852128415115919679245430568402409340212654266366552091672418605239723599111074611465819526120230650129086809058164315782631365461631499581985531989746721079527235937642915699006979431713665354967552080200741190109573625981903687958442535562217916590447665738087577779355225815317389096283195056885445102396443899095225307087643663603604383521028945516494951758494553612131768623662769908193751124687913175564314128394901794254634123696910780668506153397454507024637161209354022742758387602235966897987097808303458565951788586565083267683799337067306070787457602429220324926453471416798401865451502030159866631736561742136888480161270255899651370481433230401457690992879902934398476501234608479799538235181152311707136222796788327231696425998636006416192346612990575701277774877795149691855065618732291266053919763816108266675685997303212037121375396155207455920400296621565652571433682753230377147599114362943714984780602604389029314201145222720459853961271581819908029014463263961612471684041523668950838029352114455707636375923231078869176382877797250057924534846842209557462825086478553647484971624867745451552955680516609198185716609272135116297752825472824883058155588170840685599853332983085924077569266570819787484582313700489155624458419924202996320928684480374963984016352495443110154202677187704315988889407406467767557976129466038320021627392160732839840335093322416885221227958997881477146704254247755223021447159230127809571739762383393525367511220775173159830141518219236777605143043674503297345020722158899814326682424196574877488423995869063848107539609372955355604377767854317829161315353967888269917017552717765957276088340330145695927824122901228028300217583409758095930182994228177459668271533617549154948268007815267252969899189551769578225814249680833462873710307935649386267897647206533710179083189086540258321161719431744330985441691179984120222907331132306068696628937698418400906150054959558513792486925883248460496036686000258906588119871715489699224151859827347237439487961330189753083788754423481591584903488010493361764104758404595528192386316503100045987190046158612923372040812565248575953390173187239608787059848571390416085298043910500959945120675733965554503929344212119255403456463089592377379652979849726995878131721746595884497980245827771440666341905009876389941343154833707265301809013071094263264291729802568069756921499768423084712070598557970915638287387774540646666379805339612208877780115598786706386919475342941165960223671763617078745954545407893833750538810181374801670026979402250589368285085309309693682834135151978651437763538293846544599189054945237033103451708293121245866369456126980109915087062640922722411862237804715119474907393566439136082061285499866285457107311397543624732124146354665348139622462985721998220181256085980975749353617667974744697978360506975712458361141689503102904002731412999736885435454504112095278594780444130035048389824833483968631042554770473990473098421455516449777668939047766420369757573081175475848891504128067369624824716376549628880809465682980101261064071060096382559094084963425653800394811749410816298702703662359390004595754399852825445652691221435421506355592735440230131479766499791067541496008841489963835444403238295768054330540554605369415532987842101533917244416889504506885387381801171425007895943273511654342971117835184091299223977510192327878877435662845897349969895992036537843053253644832611209617121179062116074268749561442187228813795686836985615684700615587214798322886766466073744945783262819052170737456149180845916129726797530490266002140886141553887191148829948653894308296406470776982467847400574162840918028503225346421537748778964653312899049087215933275142100298162262847964226798560893282453037490876586276280116163136790776435853642985216398747759851011538507286675234633068159632812721688369323400271551304940956644354033172254697028068863294618026898275795906169370815518526606560837444337574372393332298436718107327791445941859553981466050978355100372612868659716676610581661811671010929109470392500487431075835309021204005917743666106020670053057399396846319419175264160193983074792888367897870888699915763119289355142414857607443072752764502109582899917791945643329891086814694075763092481252358461978301812685265061784713187140828551164199917061216748279658610404469481727719304398149781068741766556738015294476217270135213802243810344607048667688407176957241147832261429248189457387199398641050839172290385999651084233841455639537233463810396543052670498879917742611591940944666603132812369878505103298446872173069228922375317689082852483145171068422249969547572482245337469241541453247512784667191412260425714514461780222785509622068141840697537899711874748418950590206809196978393264813071056316970732665899462469207323535705218270785449172119578448576970919198746621515348816220962066745716744328220931464379795653506705604204463088090190458668935985108376307759900294354247541130617694163295500063729141310652696705737486835591732814511339139419384463042079313916355183825401607043414644877798680884378873350729550888619656066062579358164567824516694694950260435244764840244412651063198299205711349588004600098836576535905641427587788661270582770429708121130650082988358573339859787633608951416033145653968581511513032783006611826970686194634604259409907359996991284554112272303556982832693028746617270834444462378831036449016196436708039845077048852638631655824957065387974507205449457167498361079573107090876912690428231389247117260598985306286698762671511672649005986166442479447714248747822827187546623169348741472460330367231322321654780005260405482530667096969161784827321394118176375990035308778180676762110514915572227173163598889685017053041129232108377454213945840207937302469794305162828215990925869139003803570018786866672809250086781169050422600902241191448160261886102330356046957914963602925230359933663822643400924029020512020057645055111838769319415131754206000259186154448156652428325046070601777142092634366215163346112858852894220083759036986983636404369868359250944033334684023882108639147755411982359990213701246578630387576580220169392651444962337664169758106637752244100404539151513513504398813722873226689681403768566793753010358614762878535869961385196085361782734188651597386801818531324314635851139120985279752217902444611260764109451615138564976423267181065688574558076426087688527248264595037142981064959241647916772551265789825114690083864555143839990416679695879685676292657721599004999119418816849883922467401409100394884595003919164058451979901124998591262171012441559956751934704852447811579912672775173758670434804779695004976815183948402716912480297567990832290780857602364960429721192220047255207481268895098113129713058826167286836083647954664230387473040825856394197560752813420368243660054228734497109231941464218148230458637500300205370161644104595311486483457204480825154029584031451299814547279434451581582476233633861140179065368549516982224130528487581378040289472594618226587206378444009614682762074763666304505781506458780865629586584679443773374017919991319567153810042666481153525718938395766412278598114700522495358316382569169562673931923744681419011529167438231437585758943522878252958444350787481007659862770144817719868172607230529890542492972976132290206549902107952524529541876520574275748409557647484701715089667073353259196649915045048016871642883007165420045864715757269400235291067249813037093658441283641101206518057439119794474301444086983394644186428716994114569632724457185445527301506137862749673421848765099725315081646126647916185934156001016655903385760157116068386211434153414461627850415201883570342600262992785970246252444670376926250926690897031786020580782960680904984249191623368891904542704402279217363430438322983790567581717576832738606492625317042240626352166481288582591171296924652761779442830274848707341785946163747417498833196057148639371870135941250400604164262507522329138269139604002882450622754154855050903010259623529375844416417885686077865370965885784505350769130705120388640584302638312979943344231379909403980633914272397713841720371262259961710835922189809477930226952751505812573340908705908870681285437211617467288110091126586189437006493645896442793364350426549842357745772559483022045418546981304852846495494447600111816670561661388380377963592208848097542538330681131570693163484020044543955529025106383986922012238467308745811891147142675199309738302449652595408210961706316708235677032459600789982297864440083309940195143013920977871712913253789028556583773508720474723512160668916424397929420018635265112419205739166585439117100151741380252204960412773470431934056412336651710163775390200809576910713102337278055274176837379077592946665867383306338335150032555883963846081104509506074084181102131225697402095547588317817667978865574608259904754430953534024920648782011602334308786152457953566970265951581617416650265976420468690609267985074914945240091341447918488499369642793104468238781648196927049367462469473672730864731987537918974975866373074765257181313846277533667104142818749107022911106463754870680499768547962751505060698640129244211300720201499875581348714646770151216122187394383529506056753887705434843912405020043891291970049902741678015239615227131589781121273120972659369377522636522795252099469698951612908611272597862683180448546130986941166446906859902292032542004569182697887445431244112627883824648067381570126559571173964406317300862069922682241757031981472216441776164730241010744050823510355384550849197151516846820989418469971183649273378023783031181138871291411294710607881466681110993379527167408286802096822782032160353137000586089873653605471092580832254328034747384276418217027800476821634042344820895743495701907697562195912964827997475191245441554359073858695264683883822157267019308351844024372969150270867440729363759271462937793545146158183837136210885219872453137326963902773214421464827654293838180328533377330900259940964752261538710097670638718350267760895364336377636959536976609909426955833674729907862525386661067008397230299927950629867749244455492598530892524856745302053121371042731756061590477938065144038024018639651151398353024409716059868116931560013881014020246988947641489309117282577575567339584293774614119659177579938831746025918719823357063558623245930415860246125799847149018344112242014350568218577956728248437144055319046363838281030750117895830150736981958150550002464595711950381509214944321066209123690932934020786493190700730383454803080165546950949419012805656089185605681961754990499346771243824008417466899149113637109082099805165986370031584833575418600768595994157415928169023802747504605465807494933571646043232311472404187364389256982986273688371089421095042583326349308590528612782559607174779500354950746376959055765845665528515377862604111722110307799838386933372833715533111552255217521431339590100326639997850876864143864624474179981740715984825200274264381839391218103283434751448076102982319177527710824383213937456800637990758542221961785648300951831831766511369693384069122725956800623282269178079142579281796824821858785650897634441060793546248911382934796497794586328090140076415654939776979283993035779915413289690920936162401464474749131424804915914550693225985654610194509622536337279606431519781061788977681843667211501904586517421860407190991933377477542542609947907771159707341452928554744601484394875122927355745868698994118779523039122142567831645149567511699147458541119201224978922178277517142003844165008766753142860744598280163652447161146454255082228953536648416059700404722391393020946976686429359973887441132833299103724771398664503521393778078041686474319845141368004460358271994064810916861273524637485993779026848629874317725667860303105773187572020159215260105328777226317779981415822668174847227381307026350053658786738562586122692632381934644546825850541474093089752141100160676312501830198078696606786293974804902097977294768047630926530629304869765638829071807746144170157129634848729678814809438106903699449666090308747707763703963789870820633325660004168036594861761739364001538961419420095420492196218900461996178200954030131471051360230555818392460876296447879170186559956016656869668070571391800889920010549373967047664899422503781507664590705473328645454695063310809501626153154203360654170169056287745692050143939550787493566680733026832285290261730769644765102273183487883905855466900789907806038511858811597984913433565713210972744971205854665331247526013641900433392259178955098956076330964521835881343764401546671204597764295451476304081389881030943611293411086385367966744278103984672412799281623788050060466466699178385646565409032164114724146828651532651929619448478509282519076270783200532616796774822649511638582659914911215984546880768595483859827516324270904846505482751287773257720285547975316280651564594162621973853956208523337812803925439513509399719732351186064992693722308588162795795668164733465071426434957792572812053030112381146362138020225371651856047117105438774074574367716409026445147512341078946943930135254945756444235486767312768411000234164211491389192337029358154566852604916683941556872268419758785199920293405721193450830606756606343659080154758206602279650010197021207899787218499950423582752965055292499653742946578438685825970576964314775708137703962231607427393432692604641531634557262745017190862346208434084144382389212137884681099654918089743708493305416372962789033643311083232182603818560899012441897550558454133533048769560291218438811282088721882283245701933410964442895352811419016701975603878119514202439329288912992659477669274893028387636257283680444216494052798891806603360663058401738283933689998235890674849227747324511514695777370344922569202785907140621491892035693347369945029562437809249988960605505040942009356150125855053395943402485909747339113035624880585927743233446604372689378040983245224887644008315765888968215793963734100035137334425423745522737788470979833558570814962543314377501607013470738373645640952456882916611646407907754554170334253716014826494832921002616228857239409608542942553178834413033313118743799274361493031872082347820724108320474144599555019818479145886686157329740595686474413098589879047436446364802618783797552873372949589565805842302796939605990291062933479594060778699260966849172861752378454754897756685880731204702220694270730670869195409034308765061096858991028962143424097053884020486062324378942390282949640713774356779949631129667214884520312499976350658934729985738462717214470412045951430357208652371066867740125584512394785607898584833130948748408516937915519593851181029248863416501813829122104243646784802509904932933222036307778700149902604856612221640099565486030145352778729974845462121835285500660259045815668808805071778579182854195474083093840465880733002490888949858722026581060359813394498406320859940163123954437972993060302837011294791525870683949047834674742614188713628305190509777715032153252802558956466141156516147131946401327751744562605558103659426132601591873434025405409696463118665300610033315305632954417284017608071408544301833186336885313880976876993129679359187343314558364332575055982585819601326139650547645336787255945619001376880094841129081994875797748351371778834559820942302765431389186188980174004407859698864310098394865627373048411149153275810619066698353010990693021913769414441017624953749846659240381593609872920256468914789621881092610064710915345300377776871287417537664387024692217619347176005564066929993559782202461929902042970704091676326753116684396958687666028501002324113811041573820909200682584344931135218839215349004497584140904828198290735333995518567851124040669501418208457269710227208951722445454018304914716905732751160714928329755563668543257240401285692295157740211380446044994472926482221102378438192290754287792051451486562856448967752831634064636249573049045348887098325379927615465384679013193374021436990929366266442100777911374459119700622581677483886130700600728295586266153179965768816194852971894806157315161085979093103009110563437750583389484938903119890731560633161756070600628239218682896688666161653091967180806178708554874401576145613767051082539946092801742334725521199110238003820496903921694739096179838644742695641084066273358276080570358550300608131567138504662500482167432328986067250729419178364978019819669413431745437587413027724713318147994777239442145439510972156261117731545345700155654331924121880544182036374268162730347464491152179702641286206590666029606159590099053732860977054427879830824650099448838459713377392240359192334895779530598440848396111365478895172183245840517237520762992526710878119047341126391521974391781010627137202332590651108968626630757925229325160013381526015229009330442900384477945795959372539424343054637380754148562208500586128684009267747219868017022261188601384937382545891551819706303079575207597633576184766258297946822017687320940605217502913342308224873786395638987431181322982261388772757333548201226400172023806917894958817029967145347832785377861255642529067450531529844467405421844690919926473123128585390532922669384563421328969982664320199453586956999771434055529496089799088650169237814528946117564614566656915192073581063326763651084465364089632087506888455433724663008158185433555651398974320221690084125207524699820169506899098241755757297538723885400978580767431818050338497952884442784020973507703705264178552102154489948072707704512537983978345345099527204838254425993029088894410629732130790460912385972384145023705480585932613777075206334404781046928634163742694921504320369780180328121144730382539471250264086511670463697711184535772905931747767261509350611828057013514417658121852292061492864877356990706968240516214485518667903121789542834035977883932129817145452073626962300565268239685186022569470917435023231728587918312393636428194861953128780819818641780014384349659581231944963990881503011270770717647775031258862906391393619775817585784111483628157927722983012185739131609544174736611352982044415115153717723667688328993100259054589149271452904372252336532968934598833251765000804464309273685441018790545429509949001131519067845934079878467391004554303315198098718113418044165075822622058870414907940875998404671254365311753695708671818364106546685914753804921270087823777637595395685424395962664497957843372840223995175012178134643559207907050905222767113911875270181054894190057296772910079736857459038636458022243700698155112324315981585450085823622974529220715577473623700797635827256565701634085198363786324783679808861386608218068441099863987842009439487525553673155873241262772839638545564514661606192015887939482280179177709132255675416457197063645635539067008452997351227505152420543745451074496330529357956384609153789753099672350781863411477950561689518476431916165292034297693934668449024856984846572959011983282366883024796108674849759462442806119965535519618721159210437041722087932382062231604536693377447408972731732297107250984624167598637515150569493587289235262586884451137691688411882900503684997809364604698940152527745208408963437978512057273018201322317081797505591431778961631455108781411677326922861679340320905852997103765457249928049722099866325486343570076569313167974863890285162835256206892934193627449028075081951836042113601450799728656102339235853027152565750291030143124176983527219658878900936636915034030712705424974228620881538738361773751408043580814630013859938920715485826267398364185791262272557955671260770714767878651354767248056839855048572508711908985960246950628248865278820684659386634463884607213139764827813458286643701862625059005191499134268506273773232401730512980844265266992651232388965864885236348142618624012398703822644653270582097091728116493334217327319355999463814782821313676195050794690377651937959007586648914816065440379999520679097627362715013664303354753906297915012060751500559672402350635351814040094528448405619127005898402426853547973061453162099854975452798180978665219091231454189115859961624933633155521077833470053054266160709940645670165600439023670326956868596217753587504523309418226652115692437289592538167449475189318098566828830853653855436580440652112545652763958552803998132356006035846320187238444399491867074856175469570684688792440195206900264654757888989171356223005357087126070858772987014777382045035808085369398085195520797717288421836311578444555740734309288074204647861817553818111744675919780078518899758589564466751390188846044789543596498309343135845338792725357229955257339284653136532574145002902356557480677972714751728766230769272709011092561826911236383201477252034943398455544366964342809504351873182563669629548772614757127409293601305216995810354621637338668559105665665406602298622023789876753334589550240570996606105698154537511159011569112260737813671037643614949338202119950208900063607802785068333619178909253305421712878465743240705643239759084795680065061386826447229329389492684775138636674233734347348461902170480341307968203616053374276381087385435703510308543401397759481609005940851745174903891690885689179421315135223508685249696740625713167328468879420173405457256208312672674683490039519683118026434679688719298097818029317109856277376606444533460032881541955301484251577471969302021784083293311779175686151033982727867156457009443714465307007722678939572584056015426407513850154879580841743925363427575845446541887396699712299446424058018275103830428913675209974474473807976284303458636012559787570943496958598030502409622457114264060771327177254908287072282678913100373842981253263737997122383867696400523375969401126098480120886280947792311777355158811741641499502194806904091969211271194105730173485759145060377707689788045127430099362562611949556503867973597762880341954341755081150464288777076938552101543371068969305921533004490189524621365821652283719236021958610744770609866362769944944223202419334181359814803471681776165089626041330754135645854760686734441623041192042942815430813606483096199844343517973647055273322820700138039213647929094436509029250366828313901031721548530606522046480385017538176226831296815985743612389884477567283065555752774806477301214113615588408488016683811096891392013513417415094745040938245906236250782980873844213177205359163840982512531156327886490483087413347499755774855832448106379189960621166348422903621512703223805704308691767516790728926537277298054497431199028994883661877837688301127086820014722153020690176819932983288565399317840835160003733880104757333936624014022542213088954278482596705655737614701851922952533951476843803504625732427157761787247386269734112643626677976424704589396630101068521772440779561877439881113397572223211000037971949475744969220622257619398647451552297833269539680445400998007040454557045775999679318196074103406908401031542457080251781210707692365640730764023559714434026723020247462369542369134136898289869208766579731645911069398233602466241728784378619060085916492674337705646584252159824173815792521866306656477249437462954867131381402235584487333658253168644650548228377427052553653252884232938113998444805596657685552646005099362748451165171041265899633366710815153123084170807917203529795995437975425721750457303354063755957149892324659046193976641334018812813656656988951852696071909507039998813816223284321219377188575310150611083648167000282373016546083606389949915536011797922810875119221266565949772079680651081376043200803455440220427402564263278900585104090511744980741527637322304435265278214367042588340944874084498102672453802684428154527354856692613513850720385484878918225296100738619402359160038138707694675267497509515474565293638595499093527196895681001129355356690066687260344718075652277996615785111969900676162518733593354049403503621522978313242474694652107100895651935251353453722253082437140469373189591265534862060050272524004446927828166976628957901092148090893011974270675686897546754243920291306630671467249195742500270527263145335459737441471064432204387127700530775344834375482033408691056617445920522431181491439281807889576531037208627443842452966086134425576825401316421004642486415567939291490672711064810305401383272786703291911995901730444946024973498397549785613518523849318941371909178328698239583623624881223156424786435180968990413270985290543721702593353654982554874771113703937768523340278047796704048946380548128650429268054740941912757435776539055905096170932909283807248364200429512884801356136650854469076521705984307436438622646154933535333804228908302718599308322738791176392025073314566375618269099983681429962307268703822800205733336176042341310125252465989236752549730270849067980902071151157220228900332225338167760676768521280305776041988215969901302673406208720681435128756129537191524854572739064290176038503646762275980732064363851259159730546599602743168395763885481219984201797099097351238608680180435397142963934413534712131724271001096966224051139101996652535212525863882586716796941444570216278696468493844962470012324027798957960291506850042906834300545500960613382778309677880480518883422697141957572385774389498385040009745593141861200850434332386139778362275139935916118483426987828056026497735701597950298772899065328881695819702945811161453408904227153880825343361287242215242902522470808885230118323874715697147872455428232375380606955735521352588944148290563088327965396949667626860639189819895920849594949311786382323643459360902243132144613486013290378814643122841393667795848631593106673190325726157789555142608693457979415159364752233059505945135747856862426550026025977373666627457310650655067421500928715022195896698376473225911623341945118658344990281898907434768599124089054056524781293253543972991419886459792287346447817929381144334048852966224944878686905925273147708345811857589560393700155215477025655490921324654112460028322317148161420106535104310378833663928494962146437239296962158226719144268403835087577236416681209179842580187382951202167789792984998294811387761839546157044524792667859684450147056934551818991150540284727967114442042648065025296991011589459338390818421135940637904730562084955797665088675482025369552289415757484616757578613797736184393008173336479873880094846678742258994777836600947174188100463848364348670611310420117791025457667908573445999805358071707561602281960010436939587739557523950501324932028597086083415169528301401654478329304078937717669292855991565358762296626316012340944849346791969473095118314258201732364310570156735756972933919307867366216924917038843078148160931548227372454780973158910399938617754574929165589857589762186819735351496178559489975195111345826124972997798444085970548373692940645192610397641054145130843602644387480860646436887162042493002546215760985682540958070416283502176382199341439850606141276729589011018841531968503685603436599003163059508275204973807323063920270392254873296746660000538902835996987359592504488444187503898712147187596092673427822209823552620140028039543349659340018588531404777617471664847850009340633630843140961857733320435465899240259592413596197998499230966842251295382303574926740419388287317898527604198799521125733495401378951869259823429622192186487591336911417565408660005613695581518067538373996032530259248902756831309726416873522437397973160565703780552981135833269647045321519308395366490050004536605079757096211474143864158759232213324166091703138140648058898949677403493780437744287057139948071624292463209995833387989915469836574986980594524296793378238643175448417912277038040584096793594620946907774052477007777314088757772811033759541203699387850737558153575952876783230008432310845668141933434030787150591770362248510201507988017335141921514454243613578308926264035887768839513316353764354920574438974112868040175296805810893951196721066842143479781863114178917206236619518123988518672081703143205137978072851374055608908215691154701808815547176153115744104116586456476533321700054904675275672426786902815511107300138653224326686664108557828996232559987104347608369781409482583349739572028097253941609496777884533016717856796566414100786426697384779153178209516398148323918839028322479557627998089414823596656593201011547552261304753519801205537204643137771437674882442720603672607588195030921078247769788180036445159986684783673295315204893494314119914046831380987245800548490825998994675008390499015692835997681104644233411946026126859232372893839218472889630036329944085868816110315882179316887972443493722842261989092415879482388889530105774721815557325379842251031435940391253266374485095968781773143121862493703672837895722679738473569813405793305852008213048667066455862096040509648602246869276967753065770720236745668039765236451335919343531194560602393566851763459003424211837961873405622247908726623262116529741741205864815168638769315513764869809230828959823165492648216503321162155802669950012239778040281064308127897357081128740166297876444975588841788614115819897205548052516059030242197420571442163603839326741921633237056587868279525615058538257224158439032580775325626186829232152930961781842021671196114017952279304777744962264962738422439677459460558235170100028217514881708298808422891907813089817156712415080390094118937300203182995012772274846169834493722277891079184785939612732868223963077816995738824378926243818148111438901985215330550068863386333987324705898392836948230342211446552189212615947518404704887810646275704228299775240647129033336759407240218039166267284083468409939725205341840292439330423831971293508823049091727317761051137482061201532721441997376321868435330992566847212296790440616659651786712602110791948490770918207082569376701628993465324463942878939164420458313548917900513952231548838825417708806904567926248869541792820419239478033075311262274600315518774004033829315670851516003169666873678933909668251891570270461455341576661055558502989524055835998736497701253222560164971068221807247311893399081168134862781006035688425539471547449281850973468426590283322238688806357730243136484449805138388278330132248470974864347369719386478622635483975572437553544214540710010510111936043966047977215332257921634986683436005821725746120232012456584358749729864354113201848720568473471368976446517989494160603000666917678970569187279632117526174307673134276795230863026395170460224541311749673975453193312253863454044336743826422035059736409733833603772607339035399871242461293062634484916938790690122963720123850566647995096619625052712213315341339779190244333970419870525017581136844796928491378262964643772702052129776869658033054692632137978779452135744432394997228816813341625379617359384934547665606570561517187650340099468215251371645247333807761429833747828208102091830880658327008551488178773937885931867710819633176716982018780626314730925933312701996090664451146166683784978166747755689102457774873214199963116095523462458387889414501556812315706168954707101802014004707451403871607157561313797009197275545209408234141901131680738501338468913366381588402129732763615623815296786611453465216784652673996317372953059389517171455745522818789553300224267153660500999659227788946969114322013726363504416202718923535672594220672512331092127781828598186801095313514818091296704815302392035057206828426867166540911367812946836406558462664290590772170815495605024445812632327022531226803641222102959263998438748437209737675500859102683284574071795419540589059390243225688145824857220630336944175012534043706731944635717090827286143070143930228722157536820946366643412621738371255164272639654023496257084749310388447415547752761198542598941149581695608737953326640311036184963256827916187751166338508177897135157903891935420918469026796835902176837518242794533582808026708812373865888687355569524183852493806717700822098052494512314859928124084442056923496626426341697258700974867758332357514918274778817259520993582217070684166238615367059800656932193941979159806402410055577394558860580607918484945606650107579567003743893091537879499811289424908696101542451244768096636428650070786143373835568447244365431486936135138271029986181846337278325048194649321533371017813415526711028798705071346360049062257223039163027451707823772104391678225068577704818488669834195779139922297853019305032365280403563203283090496689645482568814047609201552564961895208579986597939224358117474070542539865173137083191436178439536313218058696291443086489108041311812490792954948409935201538837855910151881539536655449376956838958384886765739645403068909480169639278964414945760814743542102786629131437179655709438054607962605474875932624589487416976542531105760256403992397985565944748856601708281935144617022406163150194052463552385939257998237735254305440093848241580746752851603304635299710997359991376533104937180127927930378380816704089975529796708623342821684461814624469503381288469516935415604566080480887907275896957712873180693842978460199586771429733341903811962590763513804556005142472711478306490986910055530709268739675570844198001252768250333769863970724161054924797042968719180712978351648237477274419170446362629930608292808573330539472221766966195486642237057545623557862239792795764072804785322575504555173606981478398423259278056494774702279829379489136202755697733879229249807561179752053947467356788031906663187087851400610100748792515174623265932282298881713917001487428040072968231455268812259179546188954752981935306030515142659942076933028757402589988760951715966975939857997634320217214304993199079644002338088545184696513308933963523815490572319575729987865769630461481101899394769534193187572746066386560420768710032344321331126728188105408058016037568035268884025552513118565977883991274984146470859692217114219961200869375473083499812509503704292558457354638033470607072638883776004401955668515648486308720257328766103758885777254285681424351895959010047130577438871891179337698907464378680084743212283496481197740337953777238171486950249914838976269870919845150433701624119047747222691793373751958566282273643119975882120510940853508602899818098237671723318655265340230801691600786009320179482019329457134870481857142488149833444914934774207130910267367111700248766674622158622118880039906997616543792746493686433157972064441650392617589810510583145627541002592658485501056824744308650410676412696842299928557013583648298017688135296231190256005859810814707674494256750948347300989605473809869580303195914322973306202139047414941817809630966290416487713515362924082808580928710861297123619463497393182605405852151255084841740100773991343017349623524755281219205234152278122631380632714702794611164618359163987962127093356983865903181757137873032748390130569226860392166963782392247166391023489504533887114387341516842056670437815326830397825588487960392291387603737040453281564561512122897941994939478206061996600564975126701774806041220360692391131581525743475757986098081904571743569231108645496282525234758511210236424933376669592672257312454328755669813393913620095792298840138311355658372686098968804411627149796252135011962981229676790325180744766952782661823928964182403004500275212526926319184379460129047079269359635842602780551501137811784828046125620779112510723321580357808680626770777159268990967517728637566881281587877684193312176744799050475951823387665711803965328676020926529805140223382470641917346487946687277858482710584842558231224272153328045770049082779846160578858711679425394500814291427835802630259392231777605933052870446195886195329630488140283616443714014310456122049616552251164312139601273082622050388709998358121731209882515458555295674534141292697343369921203168428412645958547337583797499671668729742767361809965501432694311601462094179942787611557349830607938114805759662992174833920599102616634170341419275672789413115958702432676387936460092556622616015517036011008125306432123400531833018964017109464233324633251556350940035660706407494309483055452451533432348545862384118063554924566708661990364567208940921348994324041552340214297363803090626793284791306240390619641581139451049798681609603626796131023254063628263668786963887914375542495456603832258521638121029894057994817692242486721032552921387139132835887385317120138577041173914874173880148830581769856702931435868238855930471541680079866758285823587275447767030484175360439078767211934275442881484629144441423590593276549215281010706139490148148856637633328126014422627158375881584709731518856549938958630290322487950299817104732620204018036142068827765247100454292595116140761999697527336669128462442602399481512603552060067335792847139890330693470458652372001882919372267900695410968068676632019275183946591515203095583753574988016073463001706957166305311613711662233432455823587652662088222408519376969097803058927733992810810466631404217723579250783494212680672034918049324870798384280341431885960778327047654609652964242539255788559078119793158844123566397843071390517538353594904298843377521768961021894001983027809877186099176116309147791456244283237750319540015914560942213021473424428997062104977060957738471754747063800088692709321239743778766624806222502542284574615898662781744018227413808613193415449643274353173939921664816508148270939902994517484949823484880867118957167160242360495604676182339461265040597776802592418941755061611365121024686955724057895211760027448454113784877761588721380598720335581080330606438811525021027226460421708371867446610183608400197222534081032405115019852645298072897852332339627881503714735299602837999187925911726821142607176238675655984014808616577917603459135081488199711437286183314963918947055360693769464353520047571575818418274059222483145725242574536980779259800706405748167647627485255554190057113675202095995285438101492530651159860145152192333703544941411714947068971169700587909190621313322682319505242946655383713645005797909717603626789545183687096909638142681611318602144168865271682474331632692684794010036657666534685735123407714547622817898650854869751773508181848402927571003586041554670151480227145306047400873055903450121683548817491701050309538461222306103604751348960732167994012287573121814648133920740833562970183067050019622588105458081136002637991973583801145336000328352359962920636808721524416450261870114751332960092594748701653356508178305263996915936170718922219192196217188360930120063682587895221246208138196434134870252927804988571437181909247140369677528123181630044867821153555354334346984304139658774951623930416145712511963542130147680073662073554455593595876369166844229093214079148320790292989273109496244553366951732989992034475100916961646371647342198574841508412843906427901501418826472744744676153787107647658252060263956893883715906630332695141854982069051680749041079533412828379267607729085488062877397296952060583719210495700932545945479400322212103613945950001630005964564487196812169334179429589761941987582305771850023318057669634165067055798775544134836932985233125259678505389541512286774139548704169327170817100405744108094459632900782386411521578660888063643664166877503169572472766611129258533216457711864732517402727069412699921432382696373288007251974370678817168511028329263292786970597119469584892776243065214846544998690766588015998874209051482338111232759531857372652060969997813318285640256532594306692924068546788359108827790371217027252679042249957019848073218425818024308094664362664690393072784034564645567105128214660938106364357606928583082802142615066018902622815378654474875229912309418932005402394812862695183493695384278938541440805718238493049167002459146479013672866062651194833683919005476638069736877410221868426784884697810599075680923277854061579834631850182785999311033110451837889905551262795346062172890565941067359887544139058631268569424356856088528664406141831426364861884772655304408307630665654435993313298602459967033021375659447389882901556950058543441934839758109372483449785895153185547041106771925354770825804877748402977088964389306996538060270547980268008067602279496197461916815109105619299085297946953521471392007377690719483424474764896129683376512024071387529018475985131550735660495166169809611077119018867955327681620329545572498587546033487245025724756559076045135661724650637144095498201264685194185193872998122948881500216261484657483715331343977698746405676747569345322879195469615478674672671108605024137645186729480081578832263917729096911300015443338556980480578453373523255713127775471130013323221777638769538304806158420551807580713196219564777508650865213840543349061336863328769760230394635818565315440259856057247253585868988904260059468572243740645360892075792287294339026456999666629942683334956274751653040134109341902084656706574085692997200846259784521222707595138850951941868791674622024937230696334491208029591730926873053789873390581321654401529376177488272307352823073053798441721030677633529867182860753534761611332802674822493830603209366344171696983509490952071481645264846510713065403552178141585633888466306317042325221917326651908480278381080522310695344905444548318383508971730993575017839567587897316815290259777382434648565337133797190173344572421344705173858687431204559958886334536609649534676623203665618810819514842828926000350618841470640668889984751625133900484843285335471989202272523171517301466644835804445598025502219344387259017617385176011966743231451353861716069596409577723052126279799307136647630857912957396099070776233468225697479144537803408631341292038193772948844803397661470799213168661281259902803152181352902931235472067385532100747793728540807405209842507408862904819432373406765339344497741792942655110338839115606945177001602510396434713351645142748057628266850308406319772559706280806918784871402285632696766982185348425189630838843936728530094310238212263479103333880542933675973602902211990736656149119321733735404670748955992332584687044771874944681123186452621932991130240480254193860881999248094978318605102226381014007200987519500881645888987157401525729541606569525829110909267917739542560305689193702421236354681621294560286472203886372712221136372558532091520411119728537208164209223093919028753763287970044532090169107054169730208153083314866247393031849431183115871839659849376162969151919779409364979293299796494475285844741647298840537387116709859390217646073649722366821774469982475210707511263046742774213491747515510633010716348102809618367410995137155622870547703622361407281252656000046852447316907193544066435809156750297968622934469186110876353124607250593151235614465063719300839597323015700395754697410225742407158133721294329067310356552952333100683163017912979842120383907524294880158064717674519336894184962260418474275286130807441058374079755605410215024597330736346738581321624893218534664389465790943069572079578896869014587390280583276899591233058860251615927475485882691058940143357394198523776161459982703440874809598020126162847258392667906514609672318834411454263207113332554470662477828225232848672833999507653630316130975145074068801807317534687297280269830947456289937652602865785166129829089254068329022910265221003115391672669155378997445626410900387673145802944254282883297115126723405506722685877843257511977012493213621550355356044243849548190839671373930882267890691239440382618041982496662679568885147207460449222052493103386221223031594557018594945965309080747402834281672120399793280304278846950062296614422305386728238100336204382585253697534375750218240747326777125494572600514085061672526033386367601267930925162235051202744358665800115299667878692646968685414276853801086494712587071819199628313389165730992776730206554181622410372867759413651686275934886962110315522648096274974270388311491258634961169310137297680834237538526497030006563704536485933833510498883358134233374881515982442067513897047561478079799250765644303437266179412730053187352513389290198906667511279811149721079832579550344547874108895554292722151993462712152222160933133817835756362628683470626416860327598023887382054349288834583864147593593880826125987540213440372255184495108587175785446959429212352347799166513174784204031540736780137118140010262766160996976415023588183336103529035353608770286623003079865260659446770446831455838593870979701014469995773714496276838609752319875991934239902357439278659507137993761671369335858267048327205301114178333176371564463126935895567893677411648201442980077268085387197904939308505773749205536470102355709092885051550518004002382855758563255296740117060035895250218449096739093596727915125339567927099957440709815878940302586569788223750564239364132708339800730640759538842885055483355478794850294711557956920114101057225947330395127109164258887095014794898669479225182778296354240411443964050574423576382824054049587633633445966120736662215657938686398539973688759242920061753547354323070754126474716591591130391809115936028259576106637511717580921759739655826191169560278323124157890340345469218074096369188688656240438901817248685380343984484988278854722773509236326978762659192390832753770328898435670726390573261465007060626639252102182202225609224964502582825552216075402400037221432473837208587280467980662978276651741139717046672497225001901586034045596550995319069763617813780398773026386186658796843523488782861842259330217551642744916966682878303272797381782907298150810264445062987051468740353367307298665549145500452669220885394509272793794251431285481241209356360812965712013908209972097420114036611219495800399938694974828051916852154828664890121634916210958335399495295602276691998993501465360597876206742817361274095660746862314630724421375318963546049597976844994325483339331867267532606189099853308377622526246704929456009478013540103957406423547140407417449200499931206417468424770580846546406901828438244447768163775517045820522868325461751512275745073828120787211645418066698925227019955999833382732869035563228078132846481895242265005538491762154884311727016522555659409057978537787913216614690709613836173801387490679045368078127670392274932230348639455247146539207761918088211930590322639635480098861704316806712063224184595905805563036612037455521336154219830453267329769447943645753680489929159760398359566606832293335950053576365978578263589241838180432075814515302881252207578133526604757415391354814733058519711112503234040297897911019717292155462179207579347249662746525608660316458200851309631583727975329612149952515937262114695833414745468276518339988254735825208437500813683335056439615223933085115868271320270351816249390011821194554943489071806650900377962217845514055464520096942861805901640911535629427654117173989131353461732544026424369945465230902744237440731800505773670311739026994965527774532654590734786031502097397889044807937882015405815136921877242822175551461906654329713527072487024173955990677942600691427833028501289455922808139851331792846006256470087853299044862558161630713612781139064103503355631061455224943849644308608815629143398582841744795789926619399145206815913661994484077393237292909616238570068105379469960372271935528066417987357115436574515337970475067246473776463892865460481404911429054348706209191168010336346791074673910391036884547338681401652176597713102414659713952032804885908477048620925005072106600682809162804446383245248980434937724226759039193130241548455611413829954052945055585295341620301304290705671648151111648552397980768339094843073465509442044038057148022953594471757718730286033358061934954674338654193755861675378206261602453357308049642702789367143038146825626119579914018332364132225993472861283408601319778127166317746889935350503867102450659906659138135194217041055909081982855372385619665522685426601675101827837892355475833518318610287362260326226180591742058780359334658947196517292956736609244386350772983068614569607077589373249005066406029297001874231550309428786071737818666774793058924905870972498209126285767830127785569325132053719451603199939095336815668982554520331671205676965176760171394581356286911314313586301568483610398652213304050627287490267611074503379441752838767510632842371331510448630685769480144205341882157951489731185199495229710754916370802977863695527883986859074950159014785319548257325665115978396038343147234922280840087202829394461344140763211297651460884181910155546602921012639441209893950862235687835883690563712254367126781773588317557641447954318820067627366867371719207249214197858290396831980233548437340856875297510585032312226427168723637122075816371913851051149710420824105387842543729503961774001165821029103293811690553877635493075828428445957430373769138766799744250427727784286227591339270314477510820428414146654571866739193368003303683164978584129736428173668956156588474605992160312278720154681226622065914669295814712273024276367920700561171038415519745920886218129152364635956728082914693064242486076658928309985491824095923997374560496819563926407620558039763719159979775335848049385740263299987567154814338634692532963996783474678612353992849668800651301491394205961400813503413781051897300296694500899064189771864977136462680691414218093142151752469986680707317869301672191139301247869460093768381562728133727855098962179126022199511045620932877211146759516630757892850228540568055048093285565511829411216765118235465073194205550952972629732754869843388954517863720814942085891586846553312080340859274389485389273556034359139609426173767391979336706385409212504784211730356726929759738570677291750456471188017362273185132212169304331545075878206073237555545570857479846186893105650305828729007124896154325703444088060772028388185278805547714451610936055532423948126217723985456827450940417949875255058620816460537017923981643169658663218611574149386107398555809788884314494276365007075586432405964584429781488406482155279102342924256156540506202346400547228438303439442287614971930084562927788802086791448474344078109838329526093759371713911385017451601697943737705966800695445228847313095464809419044558795516064552592958810076684868244103881473253896392548907828480814303582424790815012568488366738821938446247216498839235343090392426685855518966449078585414656754866246412812080734502921876075631951607004667200341750697828439715076373760615325152423331087931138778313345220303923347317460262101606249715285841917312074060171135396908541146735331494657824795370393514775844363884735360316968267358554920933953188306674878696221685069126978969694084112912914159497706153004450687608739773654271611991342770739027791817481736769373639951245864012810617285393843591434831733356679596829567213074666741822209107024004101384670585356018523671512843135778102408990767694139559352069593160448098323852810023368794869306212182311332348423791004853187888725978531919455227944241805477246561982096607463432494979968441149648738900473055636423730652741401679135558731836957554768345416220907462603820744249596039802484820981850442600815256829530820965946457127548750822421137732315892337584038396660622054641279894413932922278780965117192078204252504785659257077927420003834462020755741400989286375199484771145554467029825850748597878909348121158854645091578442580284829989851495413203091141480058762673275110741614917289132991823639207156526675022325356215017090912494339001153625319403091785329706218837717969676982773570910542932713296255848590048596688948589366258001318343644614959454111555924246111831751776501827262663711531769092755399362013019907270102594217751555354027348700326482259691622826010952159252167325435507872999778600572531695483813136825239515073694289828601513058924281140681365218786879179147882841310723833441620662127953294833126287475373856799896548245938396582358990461339489837932569451829969129805930663736013400051552194335919215834648824953644645331799987183229627477351450188270556682518487171785906488399036899601421262500608372849076996386389025970245058441098389646611132872080243777710497381503778741938643094165679090898471381369770078391177730377894111254564016580029388916602792595350924671292771702119446706277682939604550113210050747731906315442611092220136113578762876682713885605630415570154390222421081366410632597357160167802973220629746212647637532645337740959015175755105742025790554661282586581442881861829768361299897263198942857940161397159199340453476042873849264031243701032973662046316944521806963592799938698349835033173206124680706177565256795850508588155642464931775743498760602155429176631349405021823837390714063874487408565971101728004058089604565546615535037644153346893336617876886373471341359034233831833135997577002150998281373054970462290710841695506104183877009529974903038891549329324018088460418267077991318091325633614327884723870083376050044834637463171361401818874284548822390838714326130672746168200108953662570985857614866191727031445298711304421809327817747342022590440197114468759063542290466511819366940375601768305538226968745475138490887645161866792510701215500321492875771378253438241607203331613445839998216817820129967518814516613253872658479338059284512097333701373606912309950848828780874056649872173985380166394982069969546736085228999104804194361383152300559678430843454561429541490884315580116986146910911317907580079580575940108562906417296736315123778797599298352246369290807638585836150757553179882075539680498260763746806738748315725736147745375346042380314209688614579055012868779084855269093185072627059328253232046887111405080557734396167331787981265275611232531056133338611367554878595632361917842800920016752903916072997352372235425916189992940903559389751994969246353105394859583604949027913663501053021978381255437555025855678885784788764628710716040394796482493059779078231965985693053457785209685743495246137301354469611964658168789534720180108271459993142061294893524355498519607643225827317700516034933717307909068696033945682982471384103900992403648438599456665885191315009087940233420167281480795932475074640168605766874633328276406298759818424702537474252728215448581562993782513822968673833307979204290601501592363896496311460773693050304953533919797007317618428845167673652275124787525544434785405688798129217881031569130461106575368203762543639220524316336704262847421772319290724251404966487753675510995200826275569481662845563902411216089999959807187115570594587911165264270175560426618718152025137661670943026106633383269352102651411553682420553429217611938244145455127953625892128345581566525818908804039503436197117003080939286707378083931057652023749545711797374930386377092491230825368387175868167385689778041353046833310533859124387584069062506390634920821463790687074057517377589220495599606664151438547223036713212937314608716605295777944021695265370606353148042629212537267826108305619836565827122642628675072862551007792510200713202015279449082153518886712974012938410385053253881108608603411256057448760837550925105515804000807098033405812259714903580444543171177950962866929708245691604375945165964996993310801903737793703119152886999074229827152771037876766352494086108079448331501598427920821474220886374790040424595738848255505318377930426358834039110766161503214498669217887806239571380792056735207304197050428166479719992128122252184999285914122279773352491140982634336359800695661532029103853824584360449031198331376875506426367241095882014261747093884248848092075801898625346550422266975366230937397604197072349529558646062521951601342705416725171868430417313161174647966258504364403524645652313400674413560765660481317748469814548227334170865265769508720283011235368671087421768216160061995432382087492764461895257505126093788272655202837224442208980784783562538842313493864431627454808426899135708167211899586370798309093528274318262259880922725483634894816382294831444391641469786766505002015248201415180981810741437755608993612938032486973144655550499104110464873202473513885988599571473510865925894134498631945212510558799627051542961928251107545658511614645487187190795823011698328747115365173545208666902396116670625592462698074076195256241340576391759304979496139044803130805215894942151888727356988364758242047540455281104923337624917612197337912650680364250406844354433059195540232567733229882553623626372337136183798245200434460657889576694186682921972179330023677824023239019029430876718849241114859147693240683378659938760926425792716912968553186308969553847245057999163910017210535053825776276298789199341693663834358023159934986465106739511556326151487845079785118707943779307576980151319637972769936291197313646881444389908187791649788210493779521903824401115135734249905128637456901374749107162315060741878081384586414871204246846498931257165845204142441825313311854735234345842813471951841047846856142760289964216401944673698591547512832071950778026550659587978085126678096089831139925382819942828650817005041757182175187782777533042271945660654417290769562888841153557828489368815787700440976355471599140201654823004666668392802761987524781846494258251241231452809245203806740490954172248760095492205239434773945443090403416078943632362923184152551685901333622952576600429989290005179506296223883174044457760784493862007474770064871150580405587905057741356220706174750071398628540408497875129638380248709305777291770673598406312436396434592006088422693621730207459455243672972325154785742232168419361290824540758463291351803732301916054764320180381455620105590885225528638399141091089423214363212518478029094285276545110741982890303361059786255007687274003428943190431228307968048977283964593889192373492458184061342936935907826659205502392964499542901749875380321745926988094041637859643847954239810878047936316105455607124283100634011594115847935735794418587516162671978719820194070542215342125233989715734164263562469521829305454373671401081323433439478894780462590127075582027199444351616456798699492770737026303285955841962011790669440482821620185239461040561514744686984664522026957518037530238280518991621531151027192281540823899447996135022788028673592562758729865661166027420727583591126556823909114952457551253093183800186714264656830064457267724752453827154173969506473502052432813281295214142319353625623274564906051666079995490481274043840843968405589441905299036600427809016041880177702505332955797809533361268083673758897693777350801537341583489064297496632880426368224383216006894376064317423480033315755527296821716973365115114573535671680007615944388209266970342692641797521280849358166539439626175583154188608027339173669383779840056102908113317363542677407714570028812687582678239538181176409536521707264296308722016810321900421430292646364916851645379046636400378885755062255488430956229319818268175976440990122109901069431143158430305466378016129339240656248229835173617321506007558358775511750008077173958090242309452507484812096900278423397997680924818276391156590668438058979753064020947967185959377890109174363617611265103450614693570386737343956972862882864432230324279931275993808043573972737604288145276276483165859300315926702023036505467956939810087547881246296163563349242254719592744961194672851871461398437736818600609972603306435481954587009073222189642409561538740197017451864880372941188202925368301423909893501880617259450175655553097156604614356766738671842616057404972355154916925771847041653731658584901469084960937679992761376289017458149902195694106187592824795210812805837532733648772873041707127142906350567310439598225152268368165770013757673024315167034608344075762503588823504625026389526874965820412814003803498714602550584650845317503497284567081207931059977695221547407194318987643496321262427538969742074462873150469568564539552813913720632129749551807155366630677168674942086135294175554399509528780150422000618062486790963468510897133836616297988834306447969015266259911970143098054873162073965461500282203264778228742643720114293989129819849518722202843922826829391293415462146975253419725971538935427103884244043539454274060320420984589852050358033429051729329342988770831211929969417814372243826060433399887438863747890575251521125945226381674930566565960160534596366797290634344025013102748459804296337580968848211508353352837416242281149726450191440761487289607626570730294735368672460734808999780060211252408497107891793705911029917043320439731809777300469606359324539676932462230803584657940202184895278136672792554810736714253724486198007382189035296952607528921464580549597385975762517776527643357050153174037700246930524843045856810625492097665121387372026270366189175539872252750218087013451534300893684853000157292248633779508978606248746760796902744243372822243707636210642958621573210339752358460343398512946844557529373323576454793875138231113262098235092712616864788145262761275884653948987559716987218954465166835695231661766381570521940226991619914222344307209823653292605580909018279870029051690046120743963329679262611771607353452631494347296473969220993367817232318956893173129193113526869188492309686097060362131996039066314789093403036848110590847976650063698280579493738549709880066087359025814396811225835540424332991369574156132894969154035294246240781535000005542992634424361676571111900610668720913446551928107087523690388045696388806503745414398479613187214579832861521927379976013478435217799033988784264418801443773439319256150529978750265263998404773701927877624765632689728398485925785836023227735066396445214855478336846992306723429929773926559523895680342806630796795686741945563311783357132832677870390888875300453775713248257117667759361561281514143595639344705299229217346421122177599683657979764230262019222072591848255883473297434320938002275543489049175475485886344180169536632277832552342381367342787429587687587293983533377379179848718242244371306989308106766303160665601325266251747094357945558235332628379541573010705272551187216839923136122653308993826378575965354338968010733870308156309842416296616139840030538904555307840091586059431844589363525251669523538474626053777062423810401231434253504133321035326164819861625705911108621210792770961624863940665299690836206612469420523783079791438160352048317416936864639205965612785928048550903723439520320866617585270303391041999142857843689326743191847169239717589594774552070419289435221006989555550508888990926077386976660051601675231348695270623176036261066956908392709576876565219645483937749929270495632734831225042468229613922499670193510150119406252626429908829045248862261961028336940320438619834989086675221606544554609792124071232850877531138876815684433802812011007742585201796632867247661623582359646992430369968605072432192809365388582694090221355994590273065083759310435387396002198146772995483409412933793365338600709522485741947846409525192927965500407155851280759902826159253716673710628704618387062284141116503176864489236773369021639429189539998910080501390513285212139433767936307802443673715493614821023736592021728427416714823409867858226827094575640480784991640436012824704400376583295751246259617423174938711200612065460730220953234090285248004916317598517106115635271423627469299583647017552078093547731515729238253686638936436156401022315940942230879468404493865753945698643401838815756208724282201049535807325790908781161606066206532394046319798664195791689617103614044279223785804924440019132017461610269398770739937631392792716797236672692152628306030527478644700025241621547774188032885325323827119259214407842962831364857513785423626524813996403852604647775729304100291849127368333374617318353872120185043421083093043649102910524304963771202515938419824963144791358798825942012148453930491302853657754340656390832682204575915904075073279539190385873830273831967463079408163462584952113661140078157122628239240815435844992754244038633305119916510652711693821224353221079165019711264333488710567849315325999813922794301268908052498465861490684013731439612579957404772533911678566178288381680250678129559361998648344156726898554979693617429030097317938608683967250704865453395550869731264115438748863616851098071153570625508085296575026602471022540449915618672876006893596114001442464456199561793951580808846683392384919202269839638853220203966189529460300378265021359930459091055843969922107850076903034479256640887679555522762235461076703198563522545170146925524135731747921848155125015628612163087420627419645161032135350291604788737935117212560207573521295407704552307345364728289817885538221713019680133354165645673617212953380464770581508390713939516113486723900333894165701510579549217863658879401247555969689501270421811201585426876383063193896452673102801068468616973133679131786330446551765208050855686338217141268167992203055289667370341524766661807934381242588130194066477668704393495381187519723545676320216932841179789271634825613293303475550413918575437284202667775577777183466950079065710203611437112184107563683231730672232607127340676441923824598768730796534125861404738640115846220211226495869008436851290207943895165106840174612941569812415918591534434654502109141137494720971413969904207237382317662585606939313330580092480070277931316718514935626436363354427056890452122438720038246765762749221323884754926161609533525991965164927840571006765514538147956642306756650643382773510468327469887738928219460909434585661533998116033115156589822695113267054238266453540559612009503660289957223936145501437631190038582296473808017615059103083747975029031536078242457522960699038030010098118160055893492424803564593469554223372194033638075741648588323820984019945052274893478609011344323085165219426224816114501737662552118195215993948590152939600487614049284114474826304688985282773379833107923758441793860688930093284194136189625067001193174943201742032933203913856527110158999626903911403540122811329537458612616691863782930328750493477419978121211477594925957121076999891332910467576084111302570030087721887135405601368934528813329607941441674124048335278070849503542208612385045620506572294332905381593532021151483489887017819928961864234440443747025914163748439237204226046892769745545071127169080417497395412928027136106628977814082472659945208092148833556329676572229601517390582350647627582771985995500526306839947759777177564756165411667433487268121560991336350335460136779684453051052279684790680956798107322277719199019452733886779466614275755841339787663767216618652207898877048611719640763676043507622636197303874089747204816793400039323410041066848185144761966240821886811891948848509312324855566817030876059379613958270559072493557848588719965828029147760029232039015902120700090609500626626932644700228973527405903431042661593857058654557434791203426606882659380405689886382410934605567494479701151720882113465758944689804981493250647196542222425169853083247109527968072614003608708331961256971267194332503612863906218986987872212890863298047469540946318133024921542965534365093473257298725555354801380046733819015553378396040747968608005260352944160461177017756711320585818126035381223071434653281718863893297843410434219025861645412479109316813653554438937961138567623983900252476057814579134754074005545610368459147078794806484086520131742932013536859929608031298554090243848353725456306452474522607136746153854886389921391161361008158875044870593247693001672272666409889264572203104246155312609944159337991844386458223360091809208505905731741793911057142171219925658298670397481836004265008115275066332658667520751605768623510631273192834640564164637529521315456993407886411039200090799343520993715756892830241416343001176430496582955710102707849765777416329783399843687747413637764485026018886365062738487664367919181340358151209002777645166344278725464088953277909639003713695968184780213192800182794581876345198337542055942745715690333949179108293674580516526800816772363730897361759365970661949106872636835461930569579882196820467680501994862323389061863643621336373584544709736062847646391624274929502910835475640271793488810638485656838524593293014301452452065600517638538079392255906710817160672750084953842919514164385599771868781649803932136598401122325760678482404867629943808227956152058059595261845121481414806502085894978408271330012279086190388561725824292972924572550610710406314002715764439564825016466235901399345644109919305423322287324005485005675796086336664638846369832268555608124245172104736895735891384900009687847578137589332299236614245299123072521155868731780734905968235000702562695450163345964314300829835364757538583099087881017187860119919272451860528294335006113554888001068262087740648484767996986704869447740987537100675116204870983329611107546490062858510149781966083350459635493105340682951206730926653347915397270808257045801378311072331789951390154634990521555466560228889850767277214663812822814743547889231132019113792187169859735648287910894750290809641092738655423337612065478785367287973787227775993141090232904976506388373224488065027632500449039478029739534798955780350629579147128803203918014194620499787491620977114515708719893507297816089824125871420249356132339920906602822494746373375190933488819434748563718346577423090553701259574983903020033025127767651686476263913857596085240092535823147470362301645794762609705264432196826567830912669985751251887195908415136539208247790845206085510369201848256084606330557602978354681030495037266767135347219208820490720661156724839629220476441240498699502186656906242362659034796106954662930363969147850392044812258814050824908285281734563251611535354156540241988656530335013175629934209278832645697047725621215262199533096946558408702465026169112207491157251327230715472017824951936435038084423777870605065368255428762225937103814523406400159053328358275269937495130753621452051109929752123885288578757424574183507681592591367908318437176610672606712602167511101933882859966055292097863512966135387815113521586586285995594232013054594554566367044485020872276921249089906488387880763509409439066385655549008280697289502572208325267069879037838438556892088557007579585680394735992259841861211444524526278132297414890103893473502938944637709722018333348748007853121784092147171755613124170621849592277920034758303343035247696477651038939795423003729373188546663733708649518740385609331818743939177779347701499272079261069132977521267061447332751327067411320623257480924251063715775363697766817624692622198768120310116722966965584889036438379131346895107966967929223672785310700217868426142549496260052195520887421820673688475610592941141368147967016442870709441111610441802861922963072107652343238277388551181014378766752215520673049423501467909522461820010037164624743269578566035762971071370365315908072349822150284504457817543656501004442107348616508257324724704460596160382781665348388611489314370389553086413901781906776303221575472004020266101025752889974999625611470715544799548137182872129378858645323612401889986108492126970402442215472066903666087612829989976142393662953074685359679054906989112157933739559209492545338137263336203997451201884550157639356727621023655325605756894902766245296019622391575383504946340078421680724685114683068391461896886011114801857692103880242515601522772051739243991081711644570180032619329410818711159886631461596445269745956273259715224129381515208257539335060538115248988809160538740875045309817266224925319881838680380599885843203360889541956600945968349475996710777678301532133933161854054249228117093107624877057293573771866201967440523309842233143826345614997841103901024948315254063462067078352583004450432038509972031101987363941044356307828914511006223865427947130017044257058531457540418648681884846084661042502169817775709623848659850957594599197246859224518347281728822808680123732380819830037764894843872507698385819741032852881271076447349462221466820822418371012677807795017092496331646572409652042874013680247288204084041467674240198085963952877927479992811572855536767488232995132282486984336959836682164180390019757833553338558986718055839746722103705990133850694081462576336777529344896648185052043791399716511596657891055304470296886620970218296651212362025791746183207828014217795189612354059359769804149913647718556115312866635180742793864664961477862445951434099700659444041752633623462501116316145633389463612178094247825294185162628245795877492331192984018143790281304694077686242114596331476595444150997760898752532373628532727574828782517311896755655131791539590095780380444217701876000958290250842489149259827637108334528354594438442186971089107681982847541288230267356145098581309326020027908467309120303603836298862652724934377802817114189656096691801010565892554470926528565700015098519000447370537760670140202031348653124340161198093183872790272880844667027178512659266682539651835344272120450885657560638806915912894128183462049996448174320894162076297726479282501802369742695367724251815812551205566114402882826844502347419632156820866579211460309666260985129620662787666388366804251694666821159914121306661765297696481460451373281126671669115266922061461493113524391687806720921077133632012224748367056764136935510711457579091643628896179831000783087278053030706585402672980311356895245720989601557498701675304603158448084052771573720256730777841523107119511489518290397559581497396111132493160423504948022378174640132699262772599325438764023528844457903427775596270847305155564863141432959742635769442522612331161299220085915242022908483858416586451508924918872563051768999950746646052314385508284950169390530542666350508901681950851007177180273584532386801022308393536483410521838180535524709191533566445448119761833002555666716120893394977549407384097842194162819024799112398548978544830475187029424978222523634234687515931124825729292567394692428530070829117157197167905882559549039273729097952600246713526773672267633784066116321528772777123965125753251312541074160082172732194451162936904658054827245051787912680380818749281113365610460831478275490969041614518817364918255166893752396688574872181450245621164624976320097820788992431143089487514487105223902030578755116639349593132861683543290168043347692877249550016434673784674481252945086520980581627060083792257226742089327030591545557684018278194346604977855655970353158228811588950344627986324561791710300386993722001468225235769434540988365713220890120741756934477983179164465574146963038728685290710715857628183796791290291322238568542120844342856728445683765343243901196632909425191030580017740460112132004618029261778387239735787213098596070262393250508074379940829963421886907374544223080377723666641351743103413484621231040652361970199586444858912265721537402885407530560530243667608750520799898636557873894790985371982445272339583177115101897834974863469200626827199592069906903082993097771412270180582805511104912882956918792968392429021064905382471316126110750116869804959275002884409332228045412289954491632094042706952917160393581582452352159219541171303549049367257603242368844869089583819660479558850570288769371845928206222713317570896323594894297944855590595921072980349214403114718537692263502139389166831813139788959129304127365387784076003237056321359934395433083672126337351625790443426429027317228212086613119756859698865185573921880796204296783819336638617856772733759438591620273296185638588711734914876123058886492032913106202947410790723145163424073237025888932415141537895301023449863154744363528346960281223505067448457216460061264485767786854249214935872230982604214699817066459954400442530559445973035536039719630584196001546309823046866181733083758968696534835654589577678589515660636902024976806038641623696390885422346850816977041001104400192710522450541876674151212995634701050121785811592014819616192305156482019411578838938027275654212493126616776386942218067820803316022322010337874421629739736062972089794166519310553742124196958211424207913554112285819757845973562636842650668939806897584975463503388908802975199139865757080684246661570154218735486989853665969973480058107926683421636149457487513553067787429172051373626922143813784819944155449824155485358474666937029357911548366442544546028141027291399830278550226659197500012588699644234778760068999730905032925839863391640694284142498792453330467628470222814996343338190534799367397782912129547877549609259969706736800094727366554158253032814903106177868919935992846096707550738217767505697054784983894875649853064400240605602912183947172156810689728243094719421601798492392088142041137422977960630341237026936062887674477966995955170723889366005879599627580295607634785463635895133436961824017692130772011238058382469107870498750737876335334800210375981875018362025925266544215315083275208637267063364321472484358913528832629227860114683073950735811420995996978709913494945706279261739579959455616324252023068989342132697211495926434986616986794698642786578973478623373690962968215895411345941600748472907260379004328897065963066560002848445642223781690854048662247608405109343855525250042013286931759688460777708477907068564747237442700320542784819635069446179385799031457582378646013945458257083661134240817416350068932090560707161243619625163987577077738891086626965418917628098195638736773595707586241163857581736854517923555057990509387023649073772082618076143031792213180628352250222713255848832448824456573237381700723513275414374072146859253311487150096805819364884431987832276221034858160875358158124480176362666400528994554453844826446783745417470626461824552101381898969119536793640293675240154025543980851907163492959243368919825676792004277914402808666218859343824791319500399572780333588221332486963338014085517230776421059650126829963956230316055434232953162713085734488058658651495948037778105624191242153416210006156544499075804227029541534469703876297414794899039606522068769566436350994270368180992546925667230595170393825437841042282151874598181232137321176911122182725033615384803321834629361309758063695888721026408974050344948716675163468628247821747776002127606586220405296602084428358963396398670254148676897003071079643030280376934557209513775886105072641466424414004806931892419236054674833065957394656190788759409187962428079656674706792358935806888372906120613503376820839466120775566194386227188961628538248110486555848437448138207125425321717594095059031206966299544539431984126953397093445370729287031619956936845547008513350772526431641339656597957874532915631728076566409333020601006901383900840856989763059890341228794043122509943373340440513599145212023065268024108347229976943409788582586094661837993359296280468773127978973313728728048662432819416833121505899530305959297059413867850294130528150963507494931205927203368403113520419172074042476724329939197809473820877833454703089062335605209277081069177029899108036468766568892359425186542805140394402968566165495358036548163621646276879912840644465405917307102101442674907937888196497683290752629685864508647730874603664457690116835331022479411200103310132200860962533368518721625633444772020400266010911782008176750329153504826992008327937777624950268846212935093665550526751231517542399200216411785555353071785627755006968770425637467379261369416922465989499258405618295546967255206542508355280611711977244121558979272198263302527934086935644202651533310876069500505056533377900873446379466687493957247957691610886606998186526627911805102270713545372553277651803323286079591324270124239018198179602584619600368986600159178009197308619836923974767042684990445010448966626972640966469383295780000199953255084594426237332222924841527287466001873571983173213355965215211500329980190437072815180312673821543573919457983137065028041043060907967922924025924094376487932634250665433164223353029115881115362896933855538728268903498667300474984440346494852360329662601934055702073676878952133692894135605066363387613037804679571504926933490315949047912543035080336660022174039896272216220711401029423426463676977584697650781343548322621463680413703482412892799249294743270521077005642117485939289854074240907672676181637879317053731431560032964278274719776772644214411192516945470704245301411684941462063150497404418676939508548524158105820031050186201429899797514116783744477305671002099830146153084307221589319529967232813722120951316718653179500451864464911284717956624808496525049130608163740601882364025362910384091574301503758513261451440704553568592691545041786422577071090781645628424204600060633255874168023154145967040181904392110193708497899812663195490465773343980556898797922132404073291341235358585198448856702560575979378420036176858203050950374792818862654135807248027018005442357653511490052998243272444959057435310470932509187869394787265091016980205245905718610325046342317557790740167767726437457205231763604129010084592047996215468327600369219223629699611013854702801800896555134230620748725940547824229596861447336379547208079738198680953118514719940996153875395498454830421814888182065918743020852980327488138691032782538414602082306467678702315978680441616102918244721807960975619583867560051860856235949299132271818663691754028369969412428164920203632206310733589031065383423035800571356474828495994305616381731799194705351096918104007880880085059728151914120805779678104975235635043107278979967300559502601676645769771271883643248738140706888548776306520125960737358590088614464180778351758273482489568752691015275790377224851119627617968751132871398428678392006163345256673234705207941106312404998814809078956022084420349829989336280838060848714481937988528223950501138370171748491324714692413781602683997910353712131229504976588746556503302931757029464104212727408282353836508381960301548738122681519300085072247512833842811594163281046646143011742536086129382892255776478899947193530352548535766468493180100380555463882983251936789995940377699370134217899503577608237881709229683136817590814537490359267994710409423297870949760198200019381038174422371381182233308464255365256206345300443487328329513493776626033340902125736263278627174584485002852785246673112611298150545419654116411614084968008055166897909683305985137476191262310444171560355974777866964410183285848755011429358322825515837919626475729629282510887022809825295389196843442518847566891893822152951557570973636006077616241917872828473117127741970882515166771733313611413945402263790414867622335851813794699684880058105455677435938047748057091981862626776951593196195555425677535797485478060088635979773611884995599085955485787779378643890488891597269908265079220569964578585474407410462106520277291937444538450718236664525082389621533107707907949830292529014753938222314232535964747023804821333242390865063539786351654296796207407796582027765834057478922575000190151710366703156083939700826909825204933185196514601908705689563404877376822163895140413482932918566760482752818055524572097428899993041382884988324147478030297895995679068747707768489386338634039694189912769802161122060536354763695966277494588063739395040726394490245816682997823510750422266158862477504710422342743915752349499431624034378893188652871709206061427324278692930250526764056389863329298787776983900329420816709042855649566682810919297436884295994617783981658598981196875836874745625705827488241186264165810178559691549100455321123281817976176490416260504599002053990041251326408367110457183534897534627264996220898835194795405224117169683560348686797373550449470339641169628464149861823913113754946666922536829156875964812214303032046052932446449263057294432055873292113568908261920506909732020563525435067302943725926263697124054673842381437657193378856501502978493953949989767635052114953665805966868836998201733945880854410563793871098488592152746232490576667379929036179156270861290802957082210459102834285197353442935105882002221616509664239636328293029931031672737129041751793542779891607382855523430685514400853982575429733729425383901595923943064587731837124137675774507411924364409364616602664670604064081673865008351306289966257586857287110863817979422803421825170760617120650244796832097569318815822757758383380554379019212293968069847980684412672445894370334373696901068261561371434420009873810221070026317159627098040184121556406731015860390516177539441568784868127890966339980459157209706419308463077904245389839913580877835409842368233754837526820974799867077464494251331828753273390752211816765879954293515185586653975149164249044323809104712395699373743318460013703553153163975899891750803709344211644687869879883048851205850698411820920162508549757286557331899471547894424013342028381600198755398606804265139512550910731382570785550165188636433794072318161774270362945902702436121805622609299911675148388421539875941539746651415261988290706071756620602749524851681564777298761339111487259203568828715533442082300431914227137376115281735556699062301314096570294314012751308780097037817547420995949376451741562832275315199563776695918139420947540000374239730190239081657461056057185627058352877875180697370536061349792528426571744943067156106452607649064044365416317304617405314685935097534472537917336098505041773003602596723985074317131133166914680833061397011461174339371793265554813497329571498611701249611636257227635921732724228825560158029795444669905750002680509886733903625045520854023593205122323705411520923785915217973532855470555596258386046182269760149213880740915000429540661227668256887598205434669951646157371231563926509569309719262456483795226787848671574564892498065048953961046927199399780156807156236938236009122397189228985937858137302512920259423052713439960544602577306431311367911301358116051060578626223591877292191355846935955691307167846969672827509374271544255925436018949062941637889389582469177923387050438777245548972353603081907886651633344862022875764038621251249964401090755656523706824519380928643268012361741607752371117240809069696803739252247290915031564493126021078932132405651216030277496761332110032866392526027377045706884400599730844884912413151975782632297845797148312011124747752857287353611417224629700736202878534493668990857946693845707985484664181423372117624983639969789064102527786600906758376864584786672976621225431954828558263573030793638004941919461147931228377401469812789423909628907982103273291165323781438925678927747880167545495887078131025996328054680127548652689767130900781994937005616533139192208941702830162103572222501227593935772902598209571627630851074058006475873570857262342091918468981087097673454522075099326396791882311763421180798916717647278135753391970488953527548816277755960065178624161422564176098645356304871748579455296977865492034062243419609253750472319909932872959609305806231031440917258723659601623773929030620958964572469087691220638170024603361035289391549165844489460059918878782002836306901909612472669659146574416130591969235989770119371836055467408184862663245535732327738693051210686567638667870303657393953495672407003764479455391073456244137007205962311803028724967744383224625256840197626000900501432250525201530407648123907350909326988043243472282768894800300505136753204985876488791405817351251618128169923679245267864078255994934882844342951724735654070959906467475935547672939491436503880595280723426029896585676025444786271898964332021206120630164034491219879234387659571525907062555031604758449007664445393891157361573719046681783538824838124517573170649689448574633282262175201575431205011562954297607055585350115808213396053059290476105282904506045754733001643382737564560610694137467221122535563425724161126542474250339904261018484228157241315265992513548067273854481526850280449890516551668566176676448448157106660072129129089563049435133866973878874970802042513424198759425726450688610800614782893205638977772066513348511826597744212319745987800020691453488723472071717112202507532553476674948243718873033350621758184788733301581137940246104774219966281926605841490532577800107366512131155434549045488572547016357233577890998632327622219016526629859561813576378868048984296185307306580042338336161622331440765818244093233594705285907832919965934382716979501094027437929449733930245358627318685100940048365537216390454987453956155492085899626904613611327789735729700687104565051955287312025616564695273393728596722775219923625016243119833249230866426489800177223174216672521929187475705501607779559171931164576861981317947957256243748408675786979170920706270726752806958735977333587713432426804957383921237762447004971576133268923006543228613702563104014182931340991687972532105779254985728287437300219965326099429469373654032152146905595021083323476075862811377713130718903617674466012626546624634442475602612266415091657625007878830569931046522614309667810977804193638678941771917393433004791639722444111557198730279421239342234523412029136826650739339385249118874718775660645342463444384885049499105139759274857578206398059731133294790398290490942802860928113210575691186710672606974856017662245039167539898968335844988938998215896392445748243748351227073618402983915397030502480703013193187201809373359530505932016315953437934923953927408702534412748052057687672301179649728029823190290023376948213670809345343004395094159319648098805150981985194002990587214236037265258619312643754517618488642112124860926877928226889789897740304823595103542418869399169202292429220418765691578399567327210137921843656409172030070533117538618328293524420805869249580909302954992643038483113701995058199867756206301611865588510033622450025114852004696996733302458186713785843587459832452114901472755211717285947511027019312238181331666371731965350507622987058645419259132784666890810037256036716327935756682528397962146084346263882475508963751911663846964698215850236690826457529435341005354147943330495210921514745098820086713093947935971567858529555226011298211228991649763354216040162957831869835903158555951640660002888879808476249718643533739010718869043091569975155978777286877608088346016144358737220023055694318714252193784244158507618331239140062392442593728127621160864492620631648690372484909821211755327854266490013329127464493088836643555184817120486904527402856179497958610617521227454793355822433143932930372574979695367855648507717240321696633388567095545776032969167809433895367844838514306243361645629123422613009997577201421135292209447014967487507197871901198106722228980968735577721957669370184598160794342929167420243593933228857126537828702799383297498768193566983270293639948620278980622310817572864553252037292913663204931573593854650992425207234703890444874585527722604397930230266000738225310099936053113989152036607039124292109330203760352181976488830141726438766330191758082561483639925770970139601383246467557348429507761848649684653147874442816502499803034952011928599444135219803101693457778868292874427187005542292064035198061646661378192913428035610296312393916833442212949746597540845501607960298114301125405531101929384121264272950743682921295625762645025818569085343869045172416829387845722789685751590800860715937913827594070789789837349196238415086802880833643730922320615860998121609042785353828074662308855354108016264544093596666823495965094963450582015322008375273808155363911775134351701388013045235774740437847340862424446112710580991173853619772492787689245685670741787727743506276459881371928897020827040100864376564352892562597841823227559010030219755872730651899840471715701882381891514248511101896363284792037934271718484961231205725176811422446220975385032272305464760611006357138688262481722722257918775997748023855157683814973074523347064822532154282387471107400254123068012713759605612296790032767110355575022040501969830412083937877070421521996219933271588358489988565893282978547732107314079121731519314395901152976571546565928897332063360149492688559471523453025621599582150715585992330727675452402777927985032974641001517898782480228875832115982902324542035676209469753140870487445445124708818852252389271634090061228390357420996004760428611927876152615497738204812692219311698013017013881792087703896459539097994920648818149298749497988652421914285511901537584957646102343613829824204993037372777649358645063026103465150833928980012648064809705880165981631963719088640164157823361759453897635232074027885226800107171566657624907990150641100844509469711446979059742566716908901324412322027756674516740465424063425165588114426321763613170876247791204381340376082791141968801706275440660442714707747687351667211487923150303694765798737362456544732614860802383593883753426967142553125506426359508529377337794414060922484573433002943254478929939659448742942660460747473726974678071749110533676706599335913387658094974166323091416617565862492650157916655350838260951044047697207034134456101847494810501712988873133585201657297172938402929969876051198963309353321795275371288571829081660660547956642590258036186337705191022619574141037989120374799475492233346316581201843532339615041956271335942445541053700770391106336163833432027457711746500209841873948911332545765663901663311021001893638785253592469857809814698778112200762932019261701070117179517927784343136444315131884443229134026328677455329866069660670816190151676366303940537958178104505946268118559061457182286651655550897594525816539339700410901041632291269513320562890601010951783860997632283048322967383374677871038712141320515905320873293376875026081662806648348464237011131465595590852672524602640405406105863913702663834079782240117627262625865122741673910160801608998294687934113921362656323762105245999821327654178002068262187503286853824822500373160649674476005622204744229486035614612895368682645529148348611856108999784762365945082391525010044041144515134884329460420891786187507657085907033342568292942182103539947496255434594024381312266066690150209244243950557376591063192582278948141750661784666918538222435491685778207783197461776265990684926788129848285510375160892355457537517171365506944619272546495278490780972314887822036145183826125440760451277334502455242828324265389514123474014375274376087217170616705368736793497481128742636681089256296164486613400539796448975116118006796373752229424605451964466735012498551624268117236040629043270670342101878172760650583836346844364692308672365938800087862080203836342101290536899063956246792983432226500674108161912767820828225654174146801684598722477055185775595617967414054198529330278159958640005358903183223644026601007093926616288293734417683423018359696822712176728200801549125871908307385844700426947390992589339672128487552193086117700890653976162439125793757114333771652845676475062868507667063647902767962049179446069792555109149796097966056254349767857092766159368413118208703383538381160793832499252175962888150158675237928374731991754893375577877016374049661408134139422737839406302425870376693584680507072068321718933977920158533486146619907009504439977846985685042228071479101715446093919305038445656410131575067870552186806112555357886522312311453389654677504429537747074905365794946133928592178164249483675733226043631257860970490405037850513916712767554167531141960874253824898716692563323864071698100972885947786235742324967754822701677105940318152925992564041706952867835693726958302731217583551756662059997236693372577476023953805928145925414367450933845311762895933288743134145667355084989174367449793283912382444961754994404607997127459293446756085733316891401620324466145890001735293389938503643900772635157888571815971754852106445450282969120775603147744243156225478933398834453621528315074252512339665219984445763532865136596298663559005783581718022110814118492847415968137778468586671372096007950352172637563867538421138474185917415281333308635431554450351003515959727235784558554117465576382511449106225524568875894210966294491510955482999804342192965062038544511577469563246498027210564589603172087053523095187443965152689742283540435303584143086109271207424941559432427623639727499863209152632804909452593272429412036826273471833340009140909118564958246518424624064854385027280852517923827553217027658058082423857412032850695453386551975480506881054937311874092371481467441118350742286604847328590745964890862405944346239864590675549818979421045053476592381569586198099152050493310458681482716631839725130838339220623069884395408974296403807582078309924693126252934619136162254068343271706577517573163761771779987183282153838119680706339620885706630776638709516860068444897762311180240026720856512797392311693544491498543856512657394266182527277118778144148465461592839325370949160694609710922370737870715378770530656282723942901017866211206895499939651566467911407116708708298231317107835103428849534918818280018843152221523315909271223282554084770541576654318802311981079811623916180127838742166766855941518966125308081565782887991774332859217643923753409771609659256292805675334192790167241722959009316229876262087602189122569453036233062595872360040505379043004835033280318977488239995930878908633848741634835897400012925387481186119833217107420613060699266966393971226298162232852929997355742588300023254915271475468322969033613983148749562942899814317052981715126248312921186963688479893186380117106159983231782689778084001356903948034479976396805640819454964140023700804121162722938934265063253440690964341300735655230010076060739440102492073233800095458996541986819306097471852811299123066310647862998353385926521259555389872232329096931045883081416222508508470898199186509430156014813007793310872125703647877573313537786831057079775790179504797001533602908770234121911642893534626716966118616003029362531088494348211726869278138861520048269974884384388774178621996834246842548999457240234282973586972116297935120831006025364190515112723936746859634693408247561102130668881723295883832252382737705291323527538855247290061102878354184749448929566830400581561426819814534129996710145803053296901498632339119306730342479019474224271429393248877298418185516323910908570898150139737716595383048274516809683547278357397290980918213433177905024450645963876182523535933103840585092293502015892183607350756793394611813865274168480299160115129610331907950182032530004810081157272644319326048851291317760620628640136149379448728687071805011698942801330850083710044349068221873227518673032914400267536739650178537704179437362546875107527284066287635844231805426040093070223978542453672340774460813933279618021887752660518545409936669300932002779395687006817622779872882953075219715367128142369707325143148912854968077065126560798195081921120861527182768742880663459905280464671641430760045418951847813122842269397337522524717281609739564665507968574442884583379974132821792204553645413910850095548422613781852001754949570337923799506094696361250939078049197960994513398210140995931429247820578150223391016769075515137064624331998863484561405883859740598612158977715094097572640743243793991731756684921916285435405772245559814580425641744796815882913709480299347750578321621696650401810131305368411835636405233077796390952203472207204846947846826222125313742633082976780361805584295263527372309471383856814362642110195442245208824578986092017214750362521782509143496771866629161783568476964252976919303598238523072463434032387373569287841786598199065906301400569061982277749671157007897817275858091532509295097788469964493088658934385218734449901006618560504056431340845171010081326524109887049038277331628725241114321013534264196154057764553983727288109061911944280256983180238806317345027818394365263027323181459864845585637902889899285613114418942298722389302875929602230790806287904049892793293083389803937793955463672685981797166300451338816098759262907665672057303122067375284168924126093281674043812403754460562716181029800356425171390852834842149700142054509412043836935079518635944691992864809957342996357854524832548967015441985661034839309832191841357337847684068807764493196888748230709315554379879730711864457334044577369461877599845512198822054241869401278842357374811126665673559962084570809179004623243515781454130092222900456268175337497994954903720850014939853684874536027715266495034615511757738689312180079281007811620499324185750720779236459279272887463771116354677986958785459036817808541128033898419479922479655880382720776037563951190953277728427980960058301297247619166729089934314054804974328475872222381321420010436741597193066646431233195798425348246874163615452928358314498619746651242388466565183322740965227584144100971705160680494638946746051851744094575818110928596893751832115301225083255020419105711545476418958093185275475272365102868643101092958312499381192044476333711563117299291212408353591414406293438626242995192175568383499173073434157468970519298448041077578481415510462943366399441501814187318539070832186710352051878554804113258640040399828371729131098664845186690306379201541687673437474939346734886490272694550224210375851251509911428259764019493956455534892966556336117313981849684920432513740967054479968283424479005055097893622381341173294225604461601731218614785054417626941632636876213937247242907270119277405399157470930059155415932044341885775577827843237966396728969384460861281245536387567664071389042778672813242516769229970570161995543801198367934734043016477184919588823047971855722549665059585923893063061576178244211257030524583579534726030364939492246679398974268999189474906942939659217910362070043751909429307082759463174059173372138712956161857737055840076966289725255973057332019005996463881385464756848525698887799188581923130675394741710567754063034924128567298848650017201657149591621360416991248520424053112819403022993979040225021346185064152938198165480345399299915940277486348104077350680255079472054391230261523201027848148543769749383997282849734797023063109500859558389017798248830262889863541912855588872520076140615564211255211724475478066946415381583576922057340119633048088030528597387689871934280390433014639925710814008687021188944452984944198070511021793727576692913660076355021630695179318655084003176278605031899739746480522921423087109062717441950745778490005981141861701025335793267385671341245626576076022820756086804396686562830641455139751084165702231946100029519527284097192427971148421680831632345000758644136795568349084069575397749723832815235208275169109980193663997258147248119383054455022746111893946245341001349596745512551869651214165575254236475388758133380494993745288947460204555569471243455224339406031948985025847822144711076601339437608879929203653260113049132535814642161885188100310512863308277544284975446809121784580396048491878482352462963565689747950996370855354126455250525212144574569130502599003363151351408985091927758109366946480000728596891720577652609610104070198570575675546440638836657836440852783531841243074070088956724710874985814759955775053705995797185876440590856223036479726544299721568283827881719553141387558803454087251662692648358590026486532824001577802648308726071171472827653410157747684687025898296106469695734193126927217195428355968597496095614431478260857837185292221510424218659053490505628542686096805252007249637904148899889143173898392603789543313353291874322844611916311922886185163447810128044951153688625480660691634703921754831711712497393806045795093139136207761975029678412405869724156065751201292431063592792716656964529867587221832734596079227067600021047531786864934212689316275244738369632456067709250013769206627369230415075518825053377159088603683593852072804242849146015198017819450384124514142170694251342745235010386067991950664773836107107409512514133660596867557492670304522235804804496285939121965827661557997618032254915026471679976677244516528086292852737244738221902344939458758377050536150578393686144585836526266543912472378200978217147005346637901330361281995300932662882641820158550605008007007748885697786746639603269001278992535042989219684393640280951241082371990482219861715388787026332844123824333354919979795425909091484248535946681104160603136782018082803637829510435728884443110912859514238343212715049169117154197898880044674038473157466607722125626717078907839885371888992709000268412774896725821660013046695182101219969021023262889551290388307854219922935621326918316540859971114993559079474657679289361748408211990771139277893677086741489101273880886790370464080225405504181854599802720421219189461528900738214949935444309362112670545889283855969558263286310390408993212377807888592556102970737238510269952350458129645483268675657928601613620690331641052381938786273261663705676627988261056039652777126426612155189401550299524972604677459665958125145012393774161498889896095104761690776278456971939707176322838124186121193015888463688184547887586395000724391043338201082732260578096806082203965022105796844180565335344929405989834898675416430890298774638375551364763555751352038669211133037272421252710620790037541385017831424209545642765577596597810271222721969967735626793492839601680498271418224020240078202802605750205621559968248807002096658709015496730365458779832349512074233575859571455558721987671728800184037567910292618426557032961166648697197230136510111361893957867905393121940747607800619850384712196972015538606522388694231631560321611301978878774327157643282458493204149189957556772354517681953447457459766396724026216296394910208536810112508994067519814675231181456943632051937621761610536935031562803623323349684266411699645174426541653552070421586281414975988639658415545310563127128763712998470852663149828451151623265876413984292529275204510903272886916831497215540961399964530839314958089187858977095762531062959716244177648370476418369400070026663781000991804937924522125111377665752036637762032588832918542388866436734852919160937082236231814142036642562986188134122160872479447240079385906649011041494372577301370953372881860785740714461683002636586370332986206154290486897518174927740077797649691010154386442306191577736516607440723347245230694343100677704032976263209370021067964150925220265702938931276380606995019840605938752114171327794002960676638521803346298933958549214245916947941226655755532591855843263642292643401450399001316003515513711054395766010587974092304066022813217492496024321085318692186724155569128618709766138897261952112036074699847809474696939974459497581019762360819898233725718618110032260242863174545216336027762265230278897221899096509614120705576373644046182141418079828251604902383095995396810585722791573403876632332435475173430497419251020376784379604256003784673462261972061707626872700287871679863472504448775181166561348113961043158762521119239236989786871549758513909958207825189868632165236079502165328912886464149377433846523732302647931765703689777122582473939074408358295673817527683349579527603764020437883799134854878945034689069924873484705074948577088400693647359797125962528375882213985289137508569741602832233049820160614461367766294345465700689216394643284468254546583749182196402966590661950447953445226994772232021812326440604448617689228517144653928228307315268000752573029238725856901565225460619767087551336009116818160317206748109593270862662444963126469261012565511122090519827867610824676476099082763508409976739702093764513764066638350312562385438207824966238138307837647368383331049940910576577817477464660723688075100939817234068768704584113535818482166130105927014948831297123363319821934252384067536852835756185903515203901544927052911673448249612776533482136554413649016488215150732478437073647101466720753514363230779153455080538858293725255591777275198924431611557416226037500340479471685736671900563891425637480954651559770863055947966859720726498993901314521046662205492813604095460457131253763062658071916222019236455525812013222976264112506073744641246274171487147359340366805490060640675891638130183380070966529193167582291111920375340711613341052121286327167666443064614613531697258967233731450840115225536595910933675101330764122721605095582107241404466949321499396593889862622136474324270160096145882071591477257695781596172702217397955413913885973173579445515908842270926622791204109223287133055466941210132633798077200428212380987961340501825968284729536790117977784739054519879896029594181606600590617801464381155194073995675848603063279609438318034711688665114773804661893572021697133060475433051120332303362491087579444828791023997303244415185101348521124650699557681913641754016071637716351063748801059598582333309115161699426879243594461909488729669636418277746634825271282513368550270456832765234201941229693524410454407335197634219965972808559146613362997383875367241796410171072401006076494314481783336272045359239555459892828643722551569516731607657934321818466953520860894498535348577661990376957487944038922008600404288959857004936869362348571595394339837699029833071145002653963552108091623816384248578611280124498345126816713787828250003166319212819948831204684598973042280415311193799286975311351449642902540310250570525512335358860571507395399541801860727832229638344074458799243033173921473305018668278606370868062738953739623095737274774312606787007922661837455625136270584680733792591083675000016305123127430731848409851523469457841185551767272763923591514084367009106493538336032443891330366119166034496392149156037355338415722794219431116859355793870187561740672923638273167603169121592482265665670986487140780228519632565014550809296633811068088588588802429300125314459730051970751215788174601490893781121201880859486981907999620444994729748962726183435619982806606487560558187578256725255424932139074829617176430345244563465056281235052920859168477355076394210017535595395806192812243399031192000646885796108763777697359810374903650297682278576041291242294207391018860793072055194728320121516517676082127696258153644722157671486086083761164993599645570065797446673084614709790125066851193177203704721721097339135457138384765821548839061350307131033813823913968852204583041187849636751933812333290773629008941805236642543705615061373462249372077991279966626488010198281872477622725927274511181102492282268647001859421805890319003438863712109417570062725159821105863107651355417096480795229115595912718027791598260155229499784014070782059717520269267918289188311785217155736446846168136583123096730240965473420059023484737118130069245216778654615009821568047397401338225253180431276801683960430191797187914566484372850721342919684053411514538543047728178018776015144128237880123785571068217144854563146419737723392624773280071146733748002880359087335007149433220743145148643153140693614721081122203179989535761163666439906596415777699211953091719429564867253932546756641443296811006214016053716401998181535414249976786464178610792381028034604959200235404049656358832078100601710428018431411220087892793826688406006384159833896095229146837670297734032928633792688188791814348263679781614598809805524751946807426372828543129677620002316960760588066797627529903914241937818816904973211784043687891692779270694003452127159070240967511269790893930590890698680570844398918859671680931115236589780706637873362707102335604785446592818065824246016065828457915512826909745591140005036933984686001847101593504804222549090481169664904536132895580421939353431607090715095828476879121550743285602063432275662964599987334039490946040212359227227169312479855127413561728350745493137950959684554283876975553981320050838124352033996628367192103403065627579620141357939451194182295615253525521985867631092094762083281362514241909294552127300065376528905010615095403696274575521324713387683073909307535269626276033799976473676751976015994483446379029233531194186500874018257294918102758875383090906637120503108283499874016306687279534218890197626637505792502755261101105629982398291483397039424144814096309902163182232205903722415083936963461799407477784975867501723276154110963875608480388509361361947421435521658898992239487215412640468045778405382323548846936208232340690880612309933560536065672850040109238227634241351226751585570173178012995392731932056240547253926209829770793322887606618194666806490960340625153534170131949513016730727091966087959500445083518595126976908582623426474416557256783113957623726801288319764115915253989742105150060593202545974208942800730037765153663960426905099125766283421667647961864338118998954602732205696990008833610707967185172647912522362332461125829364194616229208701187850032523767239064367699486281632050507501917502425496377639706006745798811879405381531352827481535404016536929583241126042862663950718581576567310992325939629378632311126795126615995551729952259858206699086971746575272203433042555652452011786460373793868773836602614655234287757365237740081109615376141889237715055569612483309813426993963430765864877292635716793827781331395353768654942733350158576058722232808425284460803960668235814263426057795244059984597906570826879704375935304934007135944973264212547273118146016948732383545216856141241828703746493456818980139095066563167332424368485834094511812171152605064973434126499681660707311933161363967395685743136861321504130286504955471232512380946511712601675593438043841025576221257911909659653957752090061583311220469195728111168318718791514272938729861857707832390754607324792579424865454331462242657849021634876871759032056035859641624111351379708306547307856259806720710766913721598510883323036696406490574310683836530639824972464516969986766468161054915394871610386653779520123183403027284554117054828670934880371040419539610167902130527493623697703908597154654184163831507948646324192100942662257402635095736933020016568972126182917941875772997461914708284229275177469121963779057258175087781845126622425514518625413903265010150449149854360053772214427246649821939632232203755558966863397340763587570738557973746858136952301893054227316068885722443363227733009519158002862439987117784827876182142477599471377588114458160643003923691441539848267028600426097721922437356327876858092836742276949042395661002937584221197189457453316081256425361390985760750459553607848413438168567610390580814653356415937042732164313402442377339048737730968329452813222739752293022779710874697075526897569998042409808190773713042817202949314668022527546960840199726837188607985269730895359277389655525868681031929810214278296229175914159934450466200199241365155959228668208216967268966273240671583853746128447139537253533413574696740832924941076319172362389390908766403853827873597322830611575036921495504912521285573351003762085163523617882995828279641056113805596505013297175476741006013139231762528949084563195240082939801277952783067831782247151940021417755562015478743466387906380178420905557245696378623241430225376554299566649378442047158061754076426481620842466073053640984246136991908132938900558415957724871661495615095025803440841046813303600495411372375937545856284852056942059731786066502290035186218334168558001619517828456634509282409906561326375561340656683275472752228084134800218154018028535918146886628686594068805514604741506634521500032771901580752079237783262548523139643623283545511667549936081067599265771237396778753403109478443677410260481795941462740552472706326824398998256629422104216215043448301567690203753408385886026275539116798030361837116488856693777230961604134617925767711705295652535365708421491299240622472195452849129767910699132340927871974493903626182584410961449588934375327063753278578175863812045343367687264802829536184159996813404405569808138849398544367000745594984877224584762069419568228396376084339084516868546929300272001100327766613533086102549538677817734426593220847819264822475014869998998626537388577813012158464091786922705164730794500071977119887788528771243703056016869249493109496991179699071448474713992207047155794602925373212432814443984571770663764404612855013114983813557253202099900531529193379365906617157475926836361279872866764976662233690142370736126204973557932903001710087651943797393309647380239522263834605382052391148873853774499619949519451670131056876979860498802749235482929374224777188482319925662635452142838290143871509902305563758126875289328518536524618116703824579078064451410181861670609287126465629881691111525178605285526330047931750788318666981348405554335881488950228541885021780278149813949837962650392097475802650900420484105148425389194858847380939316337829556043925766463725800482174325420467737634132645798881722735426265157931957544101862927063768985056606179217836307225775555632221459491076688028552385933680875696688459166344603311424009534005190284825844921188278227285424371505208446062078872967844878519598270581314100608003632524840940282692789051747474323205599872435697044640672525710885064270803291054901821518891890269843774860282329877290449912706454657624692239862184320625822704992373185289467592045781090836732321861823977968492650391124163552362697957714191798615923333467660115912688072274584164861319584295496984464763217315296067572150658555267371515232538791376832199570199152907902231051510565463430572802773079965060700302666559501528907115163483316098712376028365300249623503150510686098919128095947184758524198797478872646097477855491373028539566158235384650798170049504431955050678157622640610235603473237405719629573629951964203296692799711298799376920424764965403914605389429732861183674378028125419407035962916825268533099218697229946608921556011271106006952996571572554049838447215175524068075777994438247805037465697675474498824519367278921037608221732111466355364827792152790718029526054429858007751536318177629327606955237339071729249618314227266730433942579696482240448178491093067330702729915551955290848138684452974812734385481914949703156897297104227217529129188802985407964712750572041078136365587499977120741985883211780724886003470583193271602594470857555111679411531867790653724908299551222322835520691170491649631856512935053920090827824756477730039073277435162547530630947060029489275028991137422828703868399866200191867344807198795338643695520472706795776442655082365073452899830001604151266051607351361780864299117871699004197373178159447753250171806030451209830993806035537904859997986393705621284069976341185321164411976507988992802438221843918868459456693893682249923041108014436422484847783540840908991425777507093077423346949447541376258190957506969622787328133860462636190348039301947427147431371931754041679174208919239850528816503221222704498444851314753142326332379659108918905730479794288904809636331725906905023641733840804009301013731992532848135692459570080635758705665001728532895839563174529038083866976654401521408008573616708831503010151604959518371551939189551535335485311300189589622735149316528267197286339206181016800295503638161352420130930347271028701572169801378620593018815375145931222613977843278866684738598599130686541757525865840688180708228828244818742114712675467303546233881187263877360134359630400487986248300084998685913176978913673156044888151242904620836266682047236504126418148850123775428852813022957579174559799430407356016999881601202215967842590421367705338123528477416940665768744963868486885130310457305431603595938846958526827866075879409828609163723044551682089341286766015552843620562528374114999102001396982882171670049897092897594713910207879865577516054787716021381286582303770518486140461832780954870905882983705147228922385170771921937649933329298518411002278736173157452086241938206023828989232367493316978996748705443145123957422227608127338528591193250493637144961976010204401470392491370289491197277989546074347250803759695212973724448023897156712097164855459056059531810254271897551321807890853222697320042081806926828374601433224092725817594471538363944899485805210626809804815845057600492161073358885321687397403521853969572952779831070531656894629656312724084665174580379744501724729916323544218882360371668812203395048803298638890327929527585280949149941442811496761075293355460307950251222236123053173722255291069536974943716821600010187396519015354381176496598564188037938334536802645564305074348302014158429195475360009135432944796954972305962275149557935668273150601299741254702712063357071812249627301536187749060277777891146227613377227164772230534416730810189369344807601140081690530700181028351566148094725300401688562505433532655041377965689667306040847063680311326621908604773736442461132180780853551256764718285056105814648795849585865834991744129463236705318881834195887871109637508620176413555386338870771253394968260030527059908837276603170167966930828206942597743130386740279227398832222332106862019709340177394604379862160938728229081712364141742263556272791833415849896563811716411317639168782835290619482552441483391755613569710435749782798426909791792004205992302584071480197561401418021907811131361346722153670853899900027220121241306716741194421700631329620090811599277803284330762523025386467039309670131715980406101532053262533336991520335664513992741916149133575616850259294265809592701770527397415861166717626236639534483579101447383655340657877748485121148070237774192198148519184193935552927555762468329299183122772973359003868010157550814774219245211408249621128636518509932476491245652679176135446075205926790002960891381022600053608059527200206178176820275908543760623632196475836945659104642977921268317616134352879569562263932084114835138920115966239189698990162010477097722268952344221538484291581037809037416765010630514019258496214574094080546952094685598426171970235880796799765285371586387908496488084826749285984654275539805890433693313790705478636316692672016216334779351495432779871259773143469546534530013069631529901078217083878923271443703872254501272060091605372350304358809444798577506577786732545894936442264608537831283507118380531504592062951426970287636146621623906926957100738616227573320190072767233360427415750667394039117778169666549440417070547552487308509242085851919424615864871915086812943277128918092249674959943608082988512305056008135217064025711532130484762021670564510035653113858416693251276638157043842174343322739278235737655967539361678938764571625228374630018291208745431458148884990841589373769963256466089938382360344027668612095898177642589023230525388286827706171779851908035868440841707775522455595320159912883525467248579152222703628648775285918032832863277562786385276578745583485393822803174727398913499763816502896457656845365241522440616782143358516027307151463331358634258770641764259523655486892262506862323607739898081492671580447934340531666757028977523295793176535448477691977495771404138843798111910165719824736545227829155008406610205630387905076231999095184928092046996961096235493534628877365866453267679603034646680273605738181024790758335746707887011485436561192833413723505185954510242934058809836788669288259470379622961988740581568521595104956557123706397104902184137010706722368536368184614225857138885991502913809146651852187066893177046779513206241654049381470547391436976776278777432712608966786712439030078919348220591305096904907559257937353085427728956179070806099954424137364364487809130918424616839075678412806420913990574116218475637627112245881802414802839747905542505251797152300298897632234662635510918741049597404376946873370688162781832529381432872428734723040288215377806548018319422941196355147931741447599525759583522044812346583289983285074299623168421332166228354310971382895726180658393016611407088348517316028712007748797629463911232610011255898053086771862860301267868877842669685916712270884550725630021632126651295059247283660380466118625489225688195820798332256924981035386415029703292004711015415326233616803573702105852051481215620836969562271165884520345447629034700408568339845907583120976702032200421868829582776156532718075418794596539727668607228358825071328340305835986083651655302298657076250424613649818840972114222044937273734687614867901120060215728291385359397061803438435278262982976140002618831037347977868838131515211563516418506071896301587790353326783746876190451709721320246841875743368810886463911934173216251479235582903424554953277186693733403910966754011343262185302263101101581785161535070406420319628312131495442000554009744073276562312798498378757285090284346945517242629336103406206853045178055858149141374136214588976223566863878194078214706491230509322000756359220972772912018489890439708966764450283730333541216265169176078612224460782290207407997194478114701504963802565014981752373792846381753884613998733133111215038977042607382864581914963799720450760807845766680623324531314840063391071919787279081995246792909094581267757764979688271818675820589400000790255455898610090759468625100942842861353440145306301308604893099702786251482571488304117912761509768031815741902354818634533194132588826109188723407943804829540930312854898201959776252019712224615553831290099731020078878809791718248829298730209544641343664190691394660787262730067342989090862968526145693258935433863154385496782575326479506111053826145176317891672264327408761450034274221565355907748006772698620168172151119590686905485941017836832150176091245169991288827723762129274930670949087469994406001710520326943053681351678396942040535977964139395536846495909458989686988135210080027748574451865079695155224028465351774196119821906452555665168814654015465354092090344257066737382295900780893745518286867024955990329146676914059343936683847042525691148096413588881044394015058901040438768050080181836388578845440613762235268209992371844913872455169707370707568176752962182691594150939332223702145036712238321329252407210254290902739008752821943719551608664120377972529551890892518514115194207235788327302187017219920189851985470009150027169885766565665098430701014845989087237813869232024124492716435774241270576045554645694385722845237231781767671914616915215127662891942108012142684908062477662754709756944030416222989668018311346349039902122455597867055176508822969042146498861914184429027283411333013267940345524676213912023778756113521244903718183282047981097220044767615270501686289747978466248226296858774838849312463522895043511618571700677105054175878189977656187273791242068618772065485568955276703547994251698321779245832730759834106029781368733675594202657605491813750995930600763854014151582944853540474770035160000350449732795016633266179608578261612595527731167901958540504907505118537279139154242418507795847585682816467160155722059295367724201786426859910264116686868940150839382520207837478960595222566722361585385670333420256110012769635993403902376761216205577932779805252867111645850274027638780435656554001942519130196052128229465945666966697856344547350989961226124920450739959119180239455635621334454319443313628250688962593449362425131562640641549146579204524689069963303735166925269827276848205052724857005877339193710445833393319607290354693895142017725211507261770753669519803838118235363690783142475786770111171225174719833353618707863771660149977052532156357062129048492745921457589944193869597616754149709161652020920700318023338759969483245448350760169143246816167652147249394341342363859734856581369522261838992435049845692571600544036767361541924450773216420719416672295352885345653704077668146989946270891016152955312963565178883858159875671458253608174428690957512321662415461547710301553378304712854502938576229770826044506918783729661405134616322043279110246918879340536401140324480992138819754918158930182900082775906318745465953957685527800299959680642120709935750466774569864227659909401982836434219097170923142034669610855644867567935252812528007978597433906130127571788249869717085560220708209681269554985489270472437703903086106472160975589773967489566266680628366515678051684056816824203693112390308782884935617790779620739510205321587357363281349729050983037344771999002037548767396178228312346781883065278174607181827218787407604569886200797785301835763960355104105158776001281515246640673662655516375857082164890517248371797541266694513418859264915541925020159972256693296668475336363190831735938888510921547112842919631374368457591827994438744553528794887914575428929192261348438067343281249541883947976923584207836808154600853481025880701326245627380478592614461928749983970432368263594226931403943887107846508637752373067076525489531043672865699505762321406066679112516409944484146392044212299598506028303137988005068095364709161808366969987155986434231386265767943883450115378644601249390090766721646481930231045626785023712112852842449470524143806846188496936554779668486002594254517996585453916016074170915545006595349372497626356345713017152772762196288204266815384947241649495712086846855570260656445948252609997755511758255076392226612410650509083159904609673685875951795051860126074913064035393998574179463228092582151778439416044583160243215365054469850639106040324239619613253797336309614294401421099846250828606042647497818919762771063841821426319712031523521811194505246540806915686133282333375263917921323705386265858871409497527420332076404152580102851425097440330373435307338203481771619737425272136980010627455190321416069860167645006533919585671273621683425377037241929124090323525042459373099281544967110935899997156393044511665738465220690426955827463136153744859789290076448851864898109595516714898840687571915759140681135685795239449022806037644729834715042849132970536635687962773828357680217728370616290724022352707819980231427435878492474338661007059373503551240980505208135465568541178038636099371142192486047001378798122965879384102856594771053242169576644376878154306257960762170216614733280016839719041154619132693042218518554469828341755095810048723311670760489021596696319617863761430536687266883159029969183148096256826642039466586336003529936250339983367557091071984302163976074899634607912554437883011885715984066367137145137417943572533483016846299183378577070886500253990593082989815013035006082852109067792770034668918054909272450571809254245626410705193886850816850398234417936275028167598396490869918077271066391134782136935982341044861706770218682377201121459929468462510962712633425812576578437955435056079435957895368486137115718210093185033604656338024846555551814000011730917210002811217066234598023269920666528315988381279395884184125081126109671977494720065347443922931964586772537270916748629750646583934663307130456231097484834048731113740976237347866479914224349059238340085780210824962494493406423479150399666805266796635517279337105915478477072282078222367247956993058233021531175546568998989388051550242889495347938668207156407299721452726554879127866981486156419247064137372370868248031249046429650676762927550795540982123748306212997890215574478482188052424623538982542469525009048644938361205778051768431939883794570453410591690631116095205073027566328310235177166516793744140002640299373928215266968918251102707287534096874061237396429091307401428207097402326917884108513735918645328176307087356195364974045546430660461685038973254160439463406623156462912206054826506201277025596357869068184343100293482644878059679824044740426251566931139617691631919317668041026493154537398554450321241891435610232706598022183131735413881958458138356886148956769812506762417687804946299265062106613775345097932158278220597781747295130767572614709041137106007888984949076140394647902605218872277508790206700946307361083345136625014560672210548662207745607537826931172849460471795185407057654333269860174123252885473063411307927118257627079337774063894694810115981966266040504514488546113575133346671957214726183814297079437076227310522878253353469824909864418603655043050840738266096570662894540784413982733003232381421724344428497290105981295622790338660336379162620454734549304502390925720844147571230354942190704168522015698406886306750197316652521203282910850584717549000126462477387041391103957199770436149165197277846683502565742346949030999840058434148713270498380981977827304017319049866642308905044747012036861945571500453171501604791435110240201126708195720351470295247960378337911957292563016859209905283912418692601294532584754614257402524244684984196245923724998941944971888859672583210240277963885596984272613363910199774373867660977637769267040328983892423536426178169177706639323964720361850116869695371584024293328232939655820952202843278653223846061499462038601023560741085140820124552459375012337633570994862429533970562393775171109699941947859848480026377097569277363745109261606346749020017110363344084518967776651586611485755108356013600519402201257528048384103394369022650281859118497216076223438191275473124742806494357079236970781616678622826434486193670526934541550092125261520008078558259694721883340958442501719696298811646879602277513093976592050925410573843447348868702928920442380298968414262129377389076527889496762103923545589094661759301139118831753642954364396652220795849500672230294380672152058134289521414647886181950790117054543227114047363299005268397263679804400974103523493358449832933275417089170508813428844642606388406566832213187511669519186376453239291786651193444049372692841896310361529912065742251470713820428634891830503981498239824595510572380233575832713694092202983058385067604858675448465934917932139943199041803623230850252172022277020452719513148328531404513252862741329571865244754369774861343121852324991360312743577098131378038572469524735015371940269231453975804423092981734487022223143991129301124781807001125642919311767921335558993122728572537599445107450152877387217959669314751783181127643535225946081767528662361454238383003897002208055301852793436005058453462622660307241625458293900002564362004909851070532126082520486983320386347115809574189226099938454624496462118727911312469185118478044334673997736790136148174679442135296786822746606138885663386495385023215627056607647261984861738617822494662722780477078565733211664736400091155761716182533808870698996885301406843866837479055945936372719829447544022243321952117171865829269040366009866862210609005986211320516578517980333469213120503742972587372321414079348972304527429273842375177749361964856886084641285328585626650782847845275561512697181987697532649764301967360892316945557197244250424308123725120397851496085921949529758192456659567814873086697949887699800663688151347741575418229110651398196699924125208366423399382300051067004855089517933552438452209342050262023729549325831475839269446844473879410866298113406852037712336252565298218749826858770201746085401353209864897829602084046092953374120972208674117622622162044224569463779840704894384381320188890172146571127868386924708720791817856753687276385939649525220061432264860618608921667046568820365192848813247087333011598465140035556006894742644580632010645356821662849730143162591370591923658435263956781403150521459211832283162693982897034772141817051778582616692527087989788634597125398598563151880476933858639281237695934966547821445432948090312540283099163848045796105671797761506319617210114904161159192450167734759116508350763421037265131681607260513825973359085181885055678060854915007938265264680753441832654842154897741770573791762550581753689626420558859849767956359516859905899656844647394483504354626147470495929985575419153625371641648528690541341974716685430299592915751101677130387990752877201610764194941606541996284312645711884933363142293640731336179512803454024909719953686259012877510356836297884194021760663038023496062064952560160566126863610416751513496579738595938487037011356199856896845192385641209869176518994852285771856794960750677529745602874829794050078295057258962149272932081598634402366078016602911467590440465422445827534134848735818699324921818090444364107817847482274795608704940516741269073320913286572567373934736157549686265461894782375390117520271966499629480641213689573592753504147680201953852577456045097670463795611011105941429858835743705553851802418536047472551139208008762899091233041738752556603766118081043480041979856831689870477397752305967336586494670291312722273811066233470010140245402893493568598490733565267230377651750568765741482767140371387230186341875558954816760421321613444915526405682333976411926728110855151812541728887826695138014864411705020668083630080499984253646478197960340608174657009436655444987885014092557377126409412159551076709751355862203854429170099572732898745625984117488023470586141618989863503738254969140609681709642470589125480165700447270741545704361822222304073727224392920502360285637131846348973322180772195724112020400333997073824083485231958745332342244951690785724873651299527054420653144832473124728947846066862795948989783664855995455370308324483500585542780022759522288179401000857296585216300762299311342842344049256597230999977559571128176126744220677277190954381767598802427122608498814280717324043555387270003374607234517298017675234143514787103778632274285297708238783735413662350082980237362664718556743636273024538337154855143723092498352411999430984641681331828475449376367754006854155723338038004168121382558905076928420646876860870480446705886543666370179737779999773942142392468657513021671498810050023782649319591372569217578675685998766521179386288728659932045909652481983962147283773928728555062473266633594186499813256226072200669830279684764072577104492597895452711997075799451919076560587020496865296783012670973926067584408370716687976337740646543941111197092972770069697519535544911231310148075473868321003474932907870223653325037157316050489996242391445476979982805696819423777492788335192372157490185014492402579708834852326085856444443511451841376141131960597235473332068006274777864980088514500202095798263056842130439233943515706763695446933614646218379340817703083544085082799791003179623621598109802776407715004962255750659861295475387612173745032502643402613754530870500393883388346164572952182134505556344581639459357007989442915958086075310676739037766267203683911627995647058085745519560971212392797805401466622698257825445719843701984479194524949137419700641950714161272150803488355244428831576720117395410881919210491580760268645746589561347205014836297415109008074516990740063672495776160536869621087577704708083686170389147703110173143311595573054519487941780099789119474515349702592951647389411124305532080043603145443657833066259369245264334834493856559475455635279762188425432120033811871831894325941393790807298342822386663530089265321049444311492219072992667054519214601067388753406757647647001766876509790761039796424627653796600022548162782175268796304082822225872186647189783946424897725228267149620740963461048487177391064566366895422848262868301281553479042578507330170857982844210177394441523360792746673497116311117759391102940558482392138967573225960373189543951591083464284759519233437278518121111785472148381541057667777670672603741070028892295585489337508253038015223669345003550531167279906115045624941314005023404016807174185376680784437809700741230963343573981998514809804767574678384223294195886283903820423224092380685079866475120848636426061440525216701507248423929417971151647411472777449207433777054677356365259178643285776575277776251486252575324918055433013065084674191051626485856382804316593391973560506351922030515130750734595219133039971584178158218865590239138448934756948711772732985330587513021834187351646470496088436210290906458613595055643300644218894102183178212745390404229441802884985699638410289522791365365876583911764343308746417512355275012535556892504188039693899226259965982233239673500278348170731368649418052081409474409630813372648311275520579383860285874832919002837768797289684602762773033418931932864907108010854921646145703831256151083937554003665501802040278421386196999417665728689431495220232845851604617255086176728617422580056368031817057056659523038817241564495240284626516175727120748760917171315136966562984529908312308207757538123541573552587968893613826381896875689211058113054229331783165228553405083423893055873139381403189338798893991063450200920378738898659642482081514352844157354308555881567628178416140340927527621377814072505392076372861438432927522278380402856978500498352147903179387798016634443647422979251391053634374142280830765648147542827800836380994016574475587360738047810120047109624509737091024788225022084513084772064916460324623762305020978745164954774266619445740787686668861611302515011559188282356521110141136988482463951866513602660384042424505540263478998309375454281446297282759636865686743589173404466647692269974581800981035898444495359386540867755850484698431940476686525937893434335281192222360006911562776285291960869664914834187339546734965640965800663756323361180425724726013259776961770134918544502252797041324141608667446731002606123152485431933847327214301856081971394286238069152952440919719264050902919037797189122059812762941732481275024090099650606051407164329882660448017369123469949967147951702689006451458384560593786288151300614764272005631661221386274373991441613869919108213291014635272226938796290783438406228653630659005226031250310049288755359580281370814252532539478336089584184688441466543344234617987609475721798177943549169432229166298326948243495349191844224878859433486867443930958210624148237009768775652738264543816174783041007147227949127040961660467762019935797770859412753189203143244580526869500195138713301044542785737933859636066967209082349129710712462356349494885237910003770127645779213585808937144628699150861908452575359385335308272423947745851264103061090673518253331101155701747336213293255906823530796124469459640576474431856451922347958494652005910450351514011117725959792076636442268301641912447698595385055404076409336659899484151750721927542429502268175039531612749755411435281319627346390650230617110962759490172140394135136167980603016322703372508763949557766178497150282342394260269990826629347488104035915180833757496298913656356772008918137567097925108664783151253635867479045910409519289326279401028903836686034451751771289782668436887017344073367709504757154057286593192410320481662752521933762592008485896224693229401502958750111089808454822950596269038641534028969176222292013377875138350661318841651591059350916170830976995505199491673478892277883930686937163932728099571138929858800693803917502163233751242209033275477032833482627368558002853527517729233546560586313089226169777083504845418580855497425535205635634387127292150708937342261257124447380536229016466940848208457629366140737338974109962886713709738534063426391639365695567692364518061805719382915646257074046842964546396586416255615467214991968382330694545798076667436142569290794354779173914041149219790627112240666960650605910016060396285872673950524222143473651635402228628728379409380833267674293988285863527034380004707639141713823979568455981665800011210726254813581424002015349791055637718858273227707565329958177919372026296046888910958138954093404067771930734756285383931038662434452048896854480104728283090496324321350360973375624819753067354531814891720204079887384517062794440197132058996803245855895272745623386606170318618819990017832689150203476666347667947642116823061619903698864099895099173466385731859360218154984458597951940616942670645576810993626727073270972176644645191872896687292654641282633739751340869010800275262794002981082819173530126094183127298097673571014629858820454712290163952423591232146889406345335135589813117641092418648507774457457318978554115310227710294801737840079011920693101779548735868208974500517657597411591471913918590366184270662909743318227970783076023348538424086398933104415717633701675005119180411276870893340204556080666227794794908894654876569313312402687022646906865949947021545828160455826195055533254378058522912227489043182233820344104529992048594440507025874535497173163188850255225840985213495944201972402832675587179749005173049098802790040399549206284496478369024472604366698212578294903844202139752852388547668796302378453613547477013253606980606470686991301861206845910345350623661831529359281699775460695801513885299290814860600847216464096256723710574718781946675706427055981488230784359540668974768244490589574838652160094387939206033883917859158176220489702137094542996047102335854018278035616606727116944329568017122460235569225036133673072050476950539235236690824721258358091855997156583649110697267137139134822561321926254054058180492657381802857524203513513593853609304482463349423753599690941037493226766515503967029310275634610213019603113539051806844991300685348537621615065778816124937187522201211200230473361326224298164329236941214938293772035112201177895607015156878655795995191496252148968936681143744610384771480805829353202099626481343335684262289344307607425042822298705279552136691849334528755354091257771789765091787075114650225458215620889830370398354133679636357115752054813943121927971668458634592173616674488730580031117561596849941847345555327215559192870613222901138991085681781635481741131399230566157234102354624606453831817059931599145135918470220532761163041623982561834484151857679320350122127545944372097457039772940810031974498521265584716018966669482111561679931153390165728393471185548665642209445584145385025037081675963755670282065490830231670589793844171846308016244025670435949869813666144534488587941742302210324281875884118635872274902423383444711483764567139385040347643747035920676539844080298897999733703007473066346418425094305647425501107186892045610568350527190438556373741416967307580680825667086460129947918838208357113048457995746918875951647559063076865061693900596713985820220259024458433447831708979690237137549039208141638215363455263252283658521405631694440180136366388148345343580245575006699523912884952548778208735898745554846759879615478873204991514987774165275395006442766884391817757611245654403321456274785321744650964767646056868658525355586860536568029426466153037451438687902441126790408012511822905741110347037369113285651411246966345293115131708832541917471596017733970217720554308603840066848143368924481517921327910124149056457462522876521812652016537719157812211394628442432954389593601792890655288003916977094841018260091495557278898084209385057287232503891403392478303119825240179311585660413170387741075767710523336345543110175980767072481485221939070931169020363483364674482938312068468966586275074753351450673598250042711547819134247173006489914999487319569317838502706074000277125374375692794230106889790697807104627810722921595959917111721392832668821587004506408721812952326836341122966809406290876670234466107044053792878351126417148146826216128253089385612109806096068868319625916245666695112674018406409143437675549455082531839501315951277499686534393723088779685420406030067424630300229761016713680306240533197804692728671894950007915641755871453048570341527981762902494326921075950142494810964485664856372746214753579320482992423777796424524369786988412353559009923776650874053590825679256029480568194560590553992436915526085134172697325780543609541389689497103039968262966259345751955765213031501300258365719355956030050562220891112828490143456683828944723065532216809110759140675257074348443143053949652223306953979723053920420855922722023673144770070679960405379525370536805389049188742634557597109523349366806938502661622477054229798208076786699680700477311066531067045158170041857425020994267655494624841538021843432081081851679825506196994075130228462101436373235136093922686498424328879666465698854163244646088468425994081730593287267943698369001164610432115898557248424941845397995312260522274904479463617334333667947568023052474425236939326716486996005603546552605573020065939669433682458824802804812156037729139040500067628369121223450116764982150578483124721461957537895847015559568036215138265700157966528528000408542451267542345902036871529042613722688738921500383832392162922464280995973899439078843738873918530250347447717603709153574799809576608311126810279197266461682739398667991197993113237553182717863560414517683358638367159113273320023095946723483975493132455079858626720231019462071900112162497773144944000076106431825357220540893424967291778086390062974690096597010987585748948166881162053872266183371561664705955644890940336560540348338426683757926603450755550419356235013795436694954790989098783509933310680831696683315614327346604767145273591387699354543997880541274671288267265446367943941565537945382927460062571577208695860286745306641370195665595807365469530812670997781387249251528958593757051616285000000158311912302267041173464132206634451535084510054796374224102517609809704572038507689247556490306690758373633917894970168339687767348244688489565166031566526854091082018124342705207787180071849630465360622313116206056334405636679682944621955913831157435870760578097247940704568187195361553536275323919025695790929688864108764067490181315347030062416476657832632548004584577782504506513272625561409575274294238203102940724207145200323781276160089439865751434324382793717688692842556149199332883284629213906792625445693261016303408958534070546363864964303759221237366370100814757569338168797544702245912536751184728409778507035009941427687896146125880321224076845350482374536922886030352043167820730634112289167088888749490936947241501280368485922605112127420320906284814030312568040390429752119385733103453739026136905326476241240751085457991067818876749915568032100343118788789094140207360987023720545550665874517910140001660264483119819674519841729744657819153613370917579165982037151853180913769551393807592694488329511088533016341004077712508807464934667568979328427034403942215820454940092178543272067222402400840773462638003292623658457917815869753216315355982896328128235706275928281078371849625307281362779908684951561563135544323668334962762395562650654999787058058421927134268734379915191764502716171676880840105072367362035484116641981901589077063682352345490764885017535130328029270032522480923573536670957724699340623306653542894884827879827556174832193009827922366012884179665989464184344642221945825512543301843218268485854290128591875724845203307884175319870757005827493985051662729639317373755410893558399761419046046287416461220308849365577318720324672301669112148488841121213443006640123896997842510131047416827120239206256262349065831884817754689212045229052881191970100085416383144763483340508452855828379444111908434791970594815012678941813695016030285831833829911545684441112324900723447985847996784573327654104317950338236723396695934460897192516223515163279443017761422721159652985800486886547223013512763571379818684104273656501839850860621681701634686753774061886507088180930636670732268189082395274719180483681307116784581421987326821681528125269872419416047760848117332319304197679581867233689879543782736471431675911414783322672615938435577012568434913197349246366493503280144277827952101200376001686991769080177123567960983115241161665204782405676746666976426302410636463152305006633202763008447088468348960449899124414425085094286524546548401121707993838732981280637221616169333489596759370079294247248367958806894289217514727860516193414331030265450647265886962074506367598267983142964560032586045009124100504485722747933836611148654035812313539902774502648588545012226810687348877151779233173308984913523382492006737305207869528913200850580269905671531838088151304977996167301592211900335640644457219666636761253242937590057810872529074593820475248336202414967562691488308311186039785205712470169268089389019542829450647790695626543074928107648857612275406144013782337829648276650267529813256968626979873203197498974031763065429817307572941102450380856584059772741600442294394218272809801497162086213843718879958531808995703068965568717941442388180561307818713417949281601487301310510589205544586481966532974751700588161209558494113168453448698057193584590167687853639572231149536135490160041865974200196979111253119909180731412269687023747580621388585483829139020461593437838489054295528112873123055446404502504778623654798015023372645900735723164234601790529869521639256335743331928452927154138524915754624432412835930988812446867527379105142216652458617595419794387833987369808470271256169001831070831427630249038392438383324192820500421310136445631154008832824870174473495890262383325268141969451739143998914713952616991811529893404013398787017182592138134265525762464575461224441163185365005002689730488612601448034980758262743282956910048678143347424224623691783873505491173604217803010577911226537852554462166213892393049761290688358256492443595022071284953081181906295153473636770449309732112220563366014870836782039187976524868802566002278800292807798793171969423640942719547003673532652436461536344503612414803236636083051166178719371517925666667490940324243452104286234649664070455416810252124318564934136659879525611702821271683903733824709773525989884049994995744137409312862606335049542011948911477656492016143534832688531440839914291954427839787202657851183047641965552357845287908290870310782054545061551691230026037546136821379140363572839905343129431689926509665879676017882336721360115201281461912861777074602296177908274137443045053832801143286871223160392412749577640705598712186829037534613223408860100108054248983740834647529390509725555743955091412203894060111947109436508077409410836993719395030533178998657615613564761101882772786933093079503485576143851059784263035771712000996915812782209730982564201753240851041342963554055900458616987433087691493855696269553227413216566439227404246636580418890869417870891706417985418333166583442303445993762691632996882600563905603356863714503422390936741289618666601114656625476651395657011634264431718642974806775015180427523023552151123732887206578874247070557628983568162652871406381168243525084920240092523207319935429565462543370116660163242023413167145050998206955926785614128229345794187031615360994231296776744276807181463513879796159458465528631896086783606984703570352837475411474968646179146727632004493657052269005776915040924544796394110605855012772150592769764281073607971792538847266791249652036306442430794447474592908299074682155611716520161910846709381721146446627818755816717795495664698507324063304939060668246447798409090633692057416818172650311895716863937842530138259553338777382578395401302423333655865836916023618233835323861516835034924046885839154307488767317086466987460447209610293896587050649283046709497558805717451109932578583498383768520549310623448570400221026152874868266420368117028045902946266975981169574779720345183893738505912694384778045666166597258507625985760537801260094265233551124711787762047352777711095269376141988606406297753462750036046723947929168591789230289262888350327103850612453754357193220325561844077550795171117828325125009893404664243391232208483623970717121058828547934269418649618055462875451979559692920128295384323242287756603293438084684733693452016964781273384406242253874928490147786563843746651121407826799815954818512853218158921951692716547499594388634238605666962398837663739857348807024502871998407058552826989320905755564548951597824447318449872644059581814835569646701937660438405653177272908705996799468090868467898667219922185581211188217944333329993315723353422429666643732486999990378314790172310972312672332559469499161505450617612395306965189948025898415889249889870137149926367404012429944632499426876139263257690119928360820120221082000312624714048634305348832228080219950921584306249007291058538069856277544779433443385448286877672034892008636064855706051296788162872492256395316912471292286387748875274070421767585401826953772628484232778186157825010552212115687218098823267249169469378512188036191712818044542598555719621164471969782641980071344547919946376115671648628163812167083273505710619792087600042585302105299027875193531956388304491497149164784936843574606053027414838440251125438745104388406259954167936876910156263007323864731778501472182509159393224965664064368577597870544939327691049420490933792816490795664567985947342420639263429336960070006185773122806690877642579744024912274539822249938962279379912128867053873247567468677071158990427157595278541361942964950276004620903477470900966626127612230814017604956565458574160516042891611622743762139422869163978982905617917038335299562984277295991614915569871883652136237950753285615188675382618366930147025306374937445339877980424617767426545611039896142916049489891384857104548661553314779705233081074433312311888973360487856761408615748098684444888124261390019040672389515455549808014639246882385760793850941392083729391364674653989290333943455771947555087206071767894694058603886151620909459030316841520636982350424334428741492663099834129999925977734765350923236607030597787743903535722935429078023357427375490130093104483532715990311221702428416987122335371575901835089583483485488340484159169097025790573028708315342592429034971272762309732666227902111336474496639693429910519634255353982706815961649001647940873513013742874572198852148087160532212746973205374633831489839570717714482056328169339477337993766944170012448310978490942326639448402158312139854560096183030539083091377700584631799705696262956685713741305710411412607775871673917299697834676664138283927808495834981840436634463441350820070900079221164301053118956577025840780605118347116074191460367778642442322149343548534436763542950336846591571035999560605300938365112471659219045013638881056779811975445370253597942690620071837743421155251548464853235136768635570386229247811210086106717172027216803520031950937984881145311731641586738302393040529669213973623917781204703208349161324901356295916134510963902184148280337515459698825639878035715530723100155363272060423771647630133437939070647622518357308026218738763287417493495338868451766344975882132943794285533653150637311722854950529099083261175995295815010889231369390146310657338309076629044846030044174255713542598238544478849575417304251333299807585045651680340835559104869245827739980834000784995033487336893972873983541416738680400836948173156323318008521845242784203842228521597123888577263027220582781563469164728662726297936301714115796368766850610532953023171375907862471910023092361254407912901747968130149194723679964228649003815365687485146081325491189478958585586702795029694750095746476611328666531837955341107824168029519880872665901353483801445899338729823469745421665653014207712570826343357948713577688390252049958866656960845491874778333612988302432853760626397544754753917292591896872132688927742571262173722469013484848570180379795084016164097673329610098898923996938752704515480129145425731767831229890990250343072967552999149522258826393308943350351219813493581630245924727762631441130216861684634428812860308173200087512134974571367456367261072101949505572070964581349695569831644291096104091043536198417671704789580340791497798290252108666647334784039413596018678686273408716260654396302214430445090492999545009603154693093119799681896006004826622445186746374051176779361897026189448626749511187943968262700271158943282151276169323722289434980112089275743206585602009113574970137420269072826430747764915254123665625608264898318679454325615313363832747349613614141501922412053158185209813745223528656675394773285555310320416957592988591991668758001888571761006171215632934369498051695466133892830826997062352433536124347302728564413583283488655739266277744447201642969894571815823621570681041521405588534927528225282947336689942523601445203116480651579607175828199465055756666129541200247736764947458325465219187307391962868542245257101000983217493817162134098204872836259094102212826345265762514008721310787728199647123504053424940490653663602355155312805482655105397172783139034433412878810907311777554545723262708373508044183709619809616613831535348468539922163629373762458915887655297811052751292638255280223524973718099443457399257754059882395196813371326647473572526466309879264846001943051830438107487745971115338895207132525463793822391118960057003281259873363422670115184869940385007971783079123833900721174528390243494441097753096912138084058548523288378707559940688791226634513473076467695754261263603507501928896702311530926715759207897895215039539178254198179647511098600167611611466712832890466630587577506099388087605212305183422144716950258508412065008250711224118317811343362038776670157885769929685285372982797957843740015079692507800943400097243552097697326227980480631581660401760717929994712861863419208074474527705969437244578926181004204730904967955477517732162683967444408178399020114154060515315386823763095474349800821068153389219795191773883194822102164290019591459921521846926586950055020795427485183879388688756425425912776584817254524000649166071107147725374377876918923554418932867723452261652540119883232807604509590826440367185178325143690674154298747540910530106224310483978013106108359206236090695118171500007039423642115220653900926138445411240523393066859726661488056013626057094589552323875828053987706446477098926625927507557609125026534399772945131825460786019648704330737854508751747758694080358657982397590102611171703971488866409758092608386055835780624135818805360817115021460574859313142726645115005386013920261080756945984519353829890897929407432256719820882752150033162575982373918110646156473121586603126893372482014301213566400567795344540623376135088019384873488842816345481833294760681956267532204226100664515418459081319869193317997323606197397282678350567600989945260491816641211344135150072338524207721967496578712851660339636720709471977326986336472532834058251337023322611461711463573673565159250060860349853629369201360951684651311885835930734372608606434730177583765371991836167549663364154423971351318504332499809169536642678905603643622564533418333616855372105623383223407789341481545898153259161378106796317131275084009610721312181095322819456352634681996693696722872763983701295487512723615451943388087204246998056107292971108635834959673640170356719356815468900218102264540507169209912733255257423484557307210574414806008367997912482286010961069728155862335171716178806806059599163616869678635835655703097184235749378736608192859773636509116474302795156233987337267266138891714211087736175234601737049229587962017871013919843495100125367584335636509614331484077783862418827845045928523642477995062382001077880871532001396318492226620712745789564754122027111956926130947691573528219103725119422951978059386537853680434733121313286268651377561914533817117913619987913024401850482798469323846452119991208950345876950675834526084354769727071635933817560762115427136927102104617344067912269233511798290017584492741134047226946485848547846132476979191297911419160492296364507002690165489258945918295365503799679359839112022144388321640678578771595413997038019453543069238154843232841214403438234468307552513370383668195615469488995940332926002198158189378646219758357213520598553117914814342168376489697420190288489758947685678115946311224482514507417967524270044828240019809337492650096661274533183904211375413537966019098615120750940785090265004337873053288769384066137239677441540023779402894433027107170419969125519346490380799667431518270386147419650148162334520976138880952995073753884425617468986675551116265643049959852472130899326589705348667815679428784057734934682640586605240763388204529248199610147112994058231514729753632211818216256752597309325125129206116365243384725218386160305822991832388960230844006380492291063448267446149114393535065164519483710070394005439837236369720616219509442934708758581481834132378844303463384753953534147508556637847183959764705286876097853448328892959765994999669682350253114688458681011853698861147278457957473484165028503335503196225315462495340878367641204452661098347359393578745807792902955204800605691436581315002320413268427353487011492301369835829173045773366541544681970461617899865791949670950435886293731259181810056995172206822706656581811393318898860234872410409709021616304623235779349541165013950565511002912267717160221027460080589105408611597272976536146743011676577430208520852690729742630412469986915389445856974308906827024978552756748103381743899091497328581181104891144205190595441584385214593725259036610762335700914178842560959980841393891076184755628072372319110752919429296037925555334872473849814300033277437354384186169688361677280662669201678190729233834863036010266023747772052245924839959378622674861931284340732796253024128348794617791314207389982113289181631048039564980791680511478668333944610855225320551816718823174651376390033256662988817670642332591635688736872914249062965506727060677681409486957648367116198468430102994403679300334844527738155967650347294189745135762636454648023414756861728052024951929289795174560099589258895986050334365887843010491622913922297186519434816567883644115927157463793130494095199731228463190131111179369821327877414608029622824233265680456139021726921571727783243858968992507012997946194687766218146464894382902938830785998161321112508811183500444504066771984685399770940410873454361560226816524466728462890998097437720301510583300807272462365353290504107254187869832673142649698858772440556414868025825748691822981072281243942211353265064133340879011678587876495345843828990747220164936584883081891167928423332479634012271961245376291354523662293850857749016158223692311905634625680551221961676725646817212322115784425082824186728672872747564939208272620514598068131780294402561601603855821119645141257031604359079086303695281029570350399151102878107714409647833553760478356642310100138309894259731801161602391135147012251634817016280745182177265273458044276243556765817151418351144302405575929129919890589730112710400053040459224717795939403266080651732004631269458286667665182251617074494187578011451854330925649931445822848679134903062336830150820281291049448631166928059798796396155249201449867601831129477726119322323040418426026002835691306491606199358680566585456099608160700511450874177343349810329742001507565554302333387133438970645276375534588530132109181323862610159916665004700072997486270696298693957282975672456213015500849299083182324520421834092560058004088064388046194400528586746176546108480864805012604680018670732798057916569170152907045846346443216608268278087577026355345446011609217386343462956093170109598624350762142686532446034401082454697718624629464641997133725353497910387452748462842323034368343405520012658320750384002171971806008659089824029596615496156405453353305843268343509152911843382364762664799634502689534352245469027486624089927293482984465927573937732949842026826730477632398524854911285336870248764885018965516244671253185854612174468154879745416616261622833110582220534481622863319905993024526951927637868393224245113806003097334595813372587261867622762231198181668209421908653107669776761598020024331285152460703098252986020662441235030045077498459521538387236350938953410377621738766152081942667200378635461109320502217117962863147666968645921019968410669169141542561151600191690842797112081993694618881275329176707009162966369235558598395173722530162306527133180415107815424099594637906135833130370968940532211157885342325372393295600329784352178813929578879725166885663741149941698072479521093984250735296839692887660123901252694968947160179854957054375264453826901805082783731582008044051965372966058960670861850192389485644614849937907253331083361370670867638369354748208753954473182271824496082007436684079257511312724367489247554807911519686471991114552114726663672422438653644917188521657073991753546503689565678539907445135269442518071368210899436574388896129365051931237284612771010447814745478655767613735014685919498171083732679193051056758251227940585739945270158902693065447339711413468715908216947694358498406702588044833790302685679357987174626203674719307550452932036499248214891264634996219238837158583184885728334598101094157224858122304697138297937329397128740803134678619563860839056770711267634836231038118410937404418117304607359380969801791326934033529852699087513344014350047417810452739920471010830853535624846160712402252143569039737171766543836936516891131821893767108858673382378747030517756191948182746704284864748738037708317541834637413484925610607785551659298309645244909058200806865782184819761693663017674834229563052034824326279782106239467306673439902389985616889228297919338099631955856460020931742399267744536248736089356698128855785466028590893677451935032340284189887113263024796886153927333486702194875883428907822944095644137411080675932585532468243516611401596748677371833709312546164145872973181433662276072890072241312640858647923261681294188066297373844208963263024973767231998550155726888817156939380442071220371196038619032546970773957481304454592264082455682893020962303417988731901771981091252240589014857882258724707386575971117931410601612176077178682154060189886056612238393294800490384604602347159688665091424561982074823939997927725445726416223149364942108701597338236221998295778191673928335907774653945563744866406090284048225268147336530989682322067829939424606054455508036501409966735077210358464995432237619446784309041223806410704194942578144609534622045611077379521648555704247723381614388340594013341248189334896924207299291873702770839781530089183776443663033204024499132011618210961772285655460816245606244230661514906110356184675824219557591811550750185148067727782672192657630908929509940508733373050542363681772461498100682466536757203493251318956176218150017900553170483923739448167654574535322881746316826846785355302861259260001175026965153573251945457488404504764066867616646399318136361753868845618556134654203204009370758323341807620770035373642811417750405045778029689448477429688125139033513940268574438509820867326919201189159346580288709502062033181527851261637408696185646889691941944654108022714125381027078607562797850195679030600113339794850010330541461286307313224328927338956151100033036804110836907529172706952247771692648482750121241608849748205221195482182802053416047524432545813742468914599182437942443183589510547447692847004764169968422644309211225828683652898627000138997644628389408031898525365237071420584578046069232726334939739627648954314987316739440653465570419440555670051253504560153026202383271450050449234150498030914711234294305075717293540302120019646782404600871442098180615718845656023100858850463057288966198527510524895538329940621325765916573183149019535827955395121890417145163923840065666115096503723905004406708746565191094158580362025231315236704812970216437932851637591179635506821415683681350932253539301306301583773190882356629135277274623148060147154505337527382583426878676922671482355338862178223610411411107965977377242998734296100065784240303353418861960154929126755494937980646873189185678543377636815562791716071207260978514363923140352208243004778756503567294471563737281335332322395606638319628797416689257145735681135086414706185644124368848303566629529141722570562302614814403291868794612602458895996087017402762519285977913326270445499714556083461363064475686694727898616793370267090384789620512932888730289061646020974757159114040467238707321801392683295272713065779375635382804394381448309700244879271687749861208694047598092350003071866680309989609802511954589178133320136915522329029260102567330602887337622223272129497520706303358669285037115310831994711530275977394401025807335346481636594916404202046229722281673761564056428148063844994407428090756928845826868629028884772060669459309066608665901974628710430255223702617182391763329959258884209884854448621705378382621606252211648736940364261711282506976618262306923329786603033176835876643104290611742710790894528066375191458009977434589807006833601841650241800693868034445125912315306677155263886485759654253187095294308057650651793923227863719911201085307685286500397991631664254843848139821885871969980207155409393320929983170404521326240191634714248633822555431261617931776937958503090732143611321639977901252287820039432178839327941469188756331424766513865956142796223647715341961958460070421892691766024398031385538305195593430148582160620839485569718757139988036438357026728227860217491629155819118081124749068095044119474714466085070613631457080272127985835097205818839220716219548320752072807057734470610004338934424279216724597651228650470221645263661620001144443440946712049196874997723880096539202957790627245080181741004849926825636449926724717925220318659599485701084628210027088173884648464962975020239350881772447175799866622742452177361362167795134124517730399043865267429229833649894215036688004660957142485799696624512807471991321494749635760740466224368494854246032015188840774216291653952700557965609551224265561355800465888215214996317833419538062658272710029997845896251861778054892057107566369876986403177305487673057701193308869344048538261982947888995871914357631644006173657390720699854979488425099911102116366608719492122490350603264466296655422770425853147651637516993377066410694047690158183045186602020487574048065973813178582858154748372181141704346654498297266143885533842408423097498965895930451753474211002036035538019062205306149379350707382223540798449419407147673716885626978386305763995965311962864828449339960343489504286002545667869575112766761828620571504095265308727201622362479615774620062002295436602234311935072583914879630965957542304223138955154019670236122447723434045409969578252450919693694070952806878769023855981373654489904013782878204145564843781571872145012158810087946186454202595014149196129415986804939046456204858063085351846802494887776785625759327777119826275526371930480360511728665137403108852280852916206485318674884443677657574677570929392748946986920331187701844027666912032135632462817040674731352291157789316277633514805792773866859286765124269798792850824377589251913864335171759535396489520972221765963239402329891543934836512278814773182144579436733380373366125923911133827555546216812223395651260331817034283224569019485418504134053565391983517626245331092583212571108941016763022238497570045989916767968527996325288737710847234779509240120519585580281371449228452782563589829798331907347292861884639939493423950768946726983981248918051314807296652089288240251393659687737409809381501657324640963929911170735119939789593606624301595021934406249380649892179687107881528695522867934888018290592605752193594292397341393095255018627668870730634081173673962874206850942807235923824908989308346650111399668996996495912623267791465592485978486906851879642120365658593749256484106666936872906359055120467121446498696301481260952674025915228675230705981306157518196453909880185711009491295173748421235431442970453195993959291413477861617048178258995976798276239694351752765470085582642622111873315107608809419445537347788042515752870072494795377582010832080132437688017835831281735774595486311947400503657445411092558942728086866499606583830383678959334480550239258542999428972179774786282916094484461122397286433204722116295235361282494836317500255084241908763172164701285985930596875802612667302136050057627993068321535078798341498194186978191397488970596713571495444251134319260261476513631564796950731592973547263222734279833389189101541026718240464557023919184335566975908172282223202784663377173572279984409433939770838144803013480884071777251517496309008413402479066492868195639949142066741814900883151482321263047862248008866334047137420590349189538749715583059649213602925981355599655062079187452328009845665502718630403140751537542090776481937660835160247703621496842896589875570653964505475229386364172465941719103901874656360936449994120259193021150055105511540182733717664155400447917555896597594068059171421891008462461936659031081544136607288278800990881306575612848691973759979216177476556355670203073966279818673288756745596496103674422597078716156278722282855044164076851667075733140405907722783889129133591558123317598725933763504395182843671263893856938776706374147799898033649601686593276163159226623530813500174491656489490071267197215513054869417793906498326622657949990806389214439104960652325797311834413277291307407772082609357210089304414171803729564357747538301089028840695195803197854867731496167257183278125102818020337159784840799407964392798566383088870884977494930553627803750866961651727353149280772552117156300202750289618868281957664671014511268633681234320814287208626007738998464989155269413734694871981662550253848497054912576696875054375689358584822732168182040375436254029050772466632844287050192495480124989962970979399749236436453563376157847109011337644136491193941131769496100021536631224594557872281320988488805229707079377624521825161859319764447946834629507874813394306820566898016987456866650384744657660772656872653917533238322284479787061492779095803148214484693274097120091098721031171666305659021415433857124113894900471578562938221159046163672855361074348032353462122253669908907161305405079995516331311096845571048876253487518782030139202357163329111385326639032529373390457640834019024184605924388404994748067423525587556344305165073275591083523292644987104318459335637425761673132958310058103472389398632112897623600456665210303896378739514030703081923032098827141542798377923111578762663672204436593106523962329589602015335033973583240159215513155953081942696838973646245964280252153139907246256678548098190443929942689100692909726102545288115815916485227102226121246748064165857715894603434690917822101229638724069105150279492612497624869251803474151848756905503402847513486172443796794508552782958272084578115389794840291882209936418530542040779078542717288769743861580460052812672017629689279374584714581006438657345960938121994475630918169562700537747748520337115315445539196631117907829424078458727325020868636077567004266291697075504490227390950845146779507837842163332885038214616679004422521324297371877104346631374996156495270538493844828627577548560513778427961140747851419976204502710132338062277524658179587587992837565531878056423312517477861111069692282390074921285801154091547192758702952404260901563619669036215868482705685890437170843609525190668769216141159266469199743368540806227653287054406698120075426581956441638653342829994152159993202432100210744603791935661200767181115676910387891969042994576819850464272010479860676535607066234244879416607434580419517091582344988766672185962612928892740618873962151118909789681134558398673018857207900781159298500970400558885563874501304514749154913872829996550134704413602765074387255966270602408444383864721237457384752569213037805400389665338069536349544826236138955712481892313037581325423356229062377631143852775375681043555598180592052052431682940961007514667359272730889063949100252793713721383114432878390871700410356133130037123035933253842324876157664362423008283773987091398204972121260676296383475024863952619479133440981599530736148750845124784950964126456839181470047815605536639010107525922064198376641278147433576997287902571306734827443838162185392636332993567621909947703759404075430667351974149157028607740649783487786882025680108690051417903402361515381928377261688504031391659635619190413517441973243055480908702407530015679571738389056103924179064834094971633014105838173665061089694853601033046967923553284907154632518291648205727648343168304504257905629809334169709434105716540926640619499361143196858500480078694113116999916820561453603832896349347119292423993413094513700139747425939053934198973110900710271725622283168068387451962724477081175991822390208438911947365460440992304338724798706692887205880756341264760473670518369740343289427125153138103953378342692812478337750394135619916929055531323567978115804545732559986980356937412214212830094222433135470554038588015299682314086242344478889465394816297464643253645217960691509062990079308152159524683491235436640437680720345668934278562473864167105743853403320990550273945076899214854912320961833614364286111141849771023808443481285381988947642253079764577941506458538029518304137377824417647410218390393199068102994294877134570446384764341572187867575618159841470136341678633207894309848875228183804469090250974292230290684313295972947456064680932902513474977827452695100137508166156924087104238458516067578773430822417594972202447534711458070797948165030754898613854452187524640425711351040078214205262029982097340097419491773647377108121025610281793977541393993456867231846459255083399800761635280410804634861244162046015143192506847137340987958684390115491217559020826140514960006287404543059618173164440359610135679698188872220548193530989365401916706584390663514611529071120639396229443296969717834882027147852763966895846508904049653764074464591180146513104060598731402616360220715095914917124750985610899658153420067958423519730628120311098097337714002594257635764351680905774844478361509526858245753545591292038889998821261522022662056592706498655900032044180959635941700598370834483611653708354616918182761013556264430420486506193127236259312034197629440121238913074926697509357754937869738475835860327231668067535084923910456236504259657851009506240086953179494096262145653739276281243023520963117236321153723690755344537516117626225007831083041120103736474482064334202770139918755143831819184690692657181566057435574146699371146175758763544690658702886107138052738243522744703818096779690645673920584418851668704292624939020082382750551886478600591040836585629130324028044732285866429984975506409716575463277365292802307956150429189494991911695716602107825320832325275442584571933740072253566644419739126383702051000722341939000211986803778496796128530534356934899187851698859320835982812276687885197633435100451896602084579168296038663703197650191121272169434478887550283339883909132774347235306425666154005472180854254508825397471751470749461587126818194563282142851844166573567527712975754521423855296128653770672518862577856688203835883526564360184126597510544914698202456232596510444872013743301077247026434912354628655716333018624271341134255118475782819461653254545722321702242255272436846552359237297864680922063661799998322982845536137792978277400596689884735728030622513014695962760932126522690791941157934488210716545142851513778975963689066250126229590266251312982322104235440637844787945820146872957086781993718376124244395613419117472337451324279154435586113111446074306504994349517504788355729579641818984608081867867076375557901256429661329104490025815653965263689795455559633472399866766280288631620864798133948926674140695685533249431068063335518331879581730352787754680161354892156357232027090291692189056218698051862350252294448220820622551639312556794252157218279839196546959151861250440596786512909020531596977479582460468947400491135597010692492193834419381157894936137641170070497675006359336367360120244414941219121406728765198474341331760557708093010206323787351310796191569979349529309175198234607507354280939249873274675937493569496595130262738100710607690136923294015234607345346363452877242051254937874205050493518114007336340364565919585554470175387256927879669526399465637606532162214006674665117473179103500708064172230947178779803721238402832705994673762031087274158669797012093046359269539970607090084356334320807421442028377758574940851841012547153444124443818209990530697009481487884167261613013628289702963203451926620751930239335510594517117605387723521930124294608205530424155722281404848145708656014335669520548611717159754883848351555460450654105746446733332486638291573122498457346467897005090738049424941487063254958386919026107607823354804075906392344481353653205930615700978085630884116423309567645424759928335462138615395293260649751936232341985207377744575297005524725556871057251105868421253965416476808126974067868892553484583734873260965470490257413688268840394919323577044113298915340011481532515746885142829537874750920846204873270995116098233105689528543834468046747206580208787538960929004228252927902223863688949852186346870646942965427347636501768627980730367344877134262064971983934104757029866350386204462046905791402560418157709354663988640564510991866061703895018582688670636232433894159219828994294963566733850173526241499049430926157015504888630566086279111620312048228677608159456933474004054142491591108343153975525017557899667127949455044635292891424040225244201073793971060570560619000546747617656117756604119958323048425724262960636042953060262566321695436982377372044053161779996800326287929552577600346212814940256165130934783783193878861518629081298420729689209135746670443351994715991655250120782472343091025364971863905019548360275533735195245019677902233264512246815162840654869078966607600013125462721157112482513149308947620463661915393098111289303494811827474118570566177150930299752573865735472947825073648880326976870443712918121921309733440472337127579799655051270028307666090867280380074322245981639608038860616058032704723676426255814732282802818944346302410443355499284730155398782606736664233536070670605155956785886537442006956012609086862100772130737411970920223741859906967030698857747993758947096001921898840537132039675773267662065461401507104952083018860442313520987747485262743641918538186356857430728219794033806329650775153705700152785367526799436533956636836395631858099129581736562958766110920655210212369276930656809286426994933210458970619153090447502849377839064717958141879913693148732566578229234229767399369938986994597154629481518750464720712790319190308113847253181212457622929808604082070307416105956307676085019856344232349850740556371034513654125095604629849163177403629770369764847730838778456504544536642317561102683768557701329045442005895723981561162527534853392103425625698383970318296928035406626387810759258740131368976860047934075471290128334611300752547176732962378771473802423973468265448176918397206658774224017944342613382621923340225865532372254438356697432213478455174111717680294031199678314638096333620588382320818694086780394298929900315392493710296364643743289974173813989798864653459463290293256409610771944064011236631638651436763238428404153721901188525033796753362145410024646172048148512130426566542046963142999103488905804402587521133928100224973573779387810719965603292585812394780797091855077336602497109453312945531912879214281920576218709263144448596266136086766618012864829444454995060112836947458892725932198123563163739727642659696178053622295436756815500534662088681548250052972162214733305962830390584880999133304947904061838891836840312538252797061561051423667259516864833333640208946647047871507294676035076540239683856490095444219818432173467985797758310868527824676584390465345789086711650015776308249686074141805045943979660902595548002000400591250207835761900499622888131676902382272167901874419196972034771522391795112538576455366185363635682201313907125801026520057249006973401466043897874601509799775628515026448937197401108224822338731441430740433856940228328912937938270562352497703276969955584220533773443013633056657759184405835571946335519528366688043320055607368017513637829374217553591701041146458575718865371094933793142284449179664440557992664914063479701776717160287602212354571629615618209819418792554456679726123898611838605998087865497071656055925767284648383792359405532400204709830513330257876167166266929346068830985657056918717391161804140594916470155739897211850469343279748273611228118430020301120746653617792656930367965321606339023980019185821962949317144242275836149422207517716474153482034144485859541932398977151997324833663856952497220562970485557073478139270881976346053054986270799612791356494569049313888396626127176329723405561833411064255778398160045875691642001764093372056396332979695003165285058847146848524639606603370203906626160497056958383714012251079177250002770069481049455466325615197177907817986493504963486120383693387820504247681053598256922668801507969325848789641586024943870857117244790410716910404279902033861239448922871396666427059171519817147954873336365625566806808924302362846991794541260161974053534344652216191103647206877224457301878845788279840929137983197953760591497851433010767150768744681035877584522632774229410791651112432423969548453199422886708682052093478728076189166968761053288690209543079429944683637219459167208331631825111771832823333752826588553936591719583661045679266308573520939232277200581179051018912869433456108503492083621547358807986570351172543976968907382229923060087928168381205612728427469825082380668212153195204712071512054764299276427023794240941034099074249174796333706931135051696978679156420376402915439071746686241949191647697138128094872357800797740999010875493316704243948120279828908504530858041553320337224582381731120259251087484867451314196724411493150709144492101142139971015478851091049001766332623875083245611929281061410512313712556477916623980189241821309879257373454525050187530955204045783961399840020079538529239807093176940227622828256145953521177335080544109469341040521832649192737857398167422979977768261419294498432842535922621824687811743416066242039699087951581973714516663350035485267926605230039569419193476658477191542521461352425866043774813449576379346227112103848935665774570541231899752214467109149182723409420377132898456886817863915672664748565535046782192302566371697009637136006285904891939252081252950546630105551342738478344516990097142495313207899888902763062258496991188301109656120160055104800855750534669692656984842452183656419401447246207066511807658919885435068686720743364738929718493270904190073351862950301977363567408139523289491741508534663049423771707019797166033759574227445866646285028370743729868730332027888895169917480299172208670748594079119750386517108358504202587500232881577878178072767073566683067417313906903988892947426129935878332873775200349927549881755870939538063184119426742252884471408806321903453165386727695503023916847504600075284936034572493776076828450060458220210735904548948229224818786340439240992735929263060994234976222160872444526599267963362051024722771935531449109938898889279140605094820492275827308848636360332767373837879925007390209597474598197866830898669844865489687625363013594136991898962989322980600214658746223797291996207480704342333423687220277571702259212175153116838988854349147279853614115423977048891640664161417461388859829108089276842664714241726233329056042004358136465140806479350258878262885375775588911095264820644971382648367780065982868801519599906007296927534887116086608949967806102885084127659229190688717360272289323026959929360724223461197129937989560111851674896557991045826876770438897243686856694339308987622278933894607676296728637379829106434357006764498284100077664116342834715656248069849285767997028578090304125179952412957031964441316821245396701728209180585299599079527783385712361778603175277244442501710913562210562201512369492410535641288822167885496153503221887511260926824108845258557103249704062487661305973515283855748987677330188997695527502332388554898592751628785366952045394750276970614079220327353993716812334183281627366741018498169777382641139602492782396591619104441619457839844276147595224470289705310401143303281655329094270400951815031086775561857306290606070654817308052782749003184493633983355310262319838041450284759416516907133602642787977625941970777971965396508023284541274206566681928881339694094753294197980972468456553674757943262893056596919286221934951863680658394068810239650758890876967758075565362761800280102395293437805410370638729575666082464275467828058319054345627582750326669376017206125289619681134782145339264063929561638343187450438225106889965719678827099690815735000525313208882757420382004483766914585353518894990612106834087025338100945654961875903062929461508262311990925450908700843497745326849315053814185721299207908300142019891225621230454966927858414385339281370514258180940610456270053317342472610091856301995550625127897657894788847952846343755174770890334106442806991486119045766666063977705053564980380231855649829997357412875465775101395709825536175506827915733845979702768653382054767257178755557153621818363522200178359471136535332543515226329771295654631570032813755635866076137240129848893773510559244310711788084995335124877456691721095126905122677891531331915622494319267090577482513517018548812580753869846881924853418036170465754128447891198840383605237371212259076808602640369953401481147632572172682985885070129644461197654924525505433974657537655302422435221502385731056969870839087368796584017504497151625027295910957255820050373645619266129041365902181658422538540968302612764480657517273823595007624907946572411222146298713593255559900272706614691564680464522168496532171499627960990767059329040465696231438875643801400745861674350300173325711049002695816594965962970373136168406474265743729325089937188011670187851044767755434412044644052974238561784372972127743889071500210345434586297553111335991034739613904346254234305142431709814309286650491686174398706116547442292787142959831218598294792868469905423049652632735450578257885850902966156327524140536540664491807410677211707913889613596467499117244902315280681009082365046714779232633711084492249884540702194938006515426783184547281605023714375092244225103737600724966150647817130826013649784860423975377092755963176099613876332370842219922877938751386408562312131698759196291585164497016973578514162863297037338456530193182325828930809652581261415569206841281881601298395933154579005379868130257676381100851329709723396888040568420324368740534567117629911981096715284393885026107437473106621508292906428907155017388523748246993012926581157270599441554909251577773774607497960245460917736330233309946763580488502499664668675609390594383756575145465752654645763986070129935522776167167927542406030238400375145873961638903062814423419560366503042614551759016994225020779615415850250689083306804046861614093526034417744253551603426119211510629307958899498402678878939997237953264677927778161171827809662023978164272680159782569814200775597158277529010565153218784628380710694644580568970708605806631538717730056139394845606515278720605260196032959457955696418260137398324921489199684443686734514364750679411030427122812434286856120529191666113398397939600183025469220082764241830034926925989806847063686289464267498602720590194275847499626400948273272309095505687492651390730895355273937830922931170374629044036788942583427776260030652404577652197118306258933587907722751817118439454488542820320069791788715902168442213487700132598247111797007477824480342329957352106212824106865148003180789079059346658000221924029302218743071962215597078823412360225918118680920408692932988305633375734533059853915074073010108969256482685680536977134566729296973605291610007488521189580729002169986339039284762216989788367569419907489937992584573494314840432606897493255451760264035462131611661048887720300620231620305737563255869697525704388730665793193524129636544058541835214866130342426553688814678748588749585569804531065012690005383903382077659020464831059791184827965533690376552320845548273897436659259080406576653127472031796899804878111163452723935278274026796990169495040117936610486295470691273386954388315443324746018655429977139755717394533576805938189197483344679250153755954631579695093483502483436291016380562724631627896880878795265134443206312705177772115908690287299214305490691536320085081338980511785054327963603029883324842187303978160313821821898468136047321977580510823658892218051631868556161210289786763083763945354448648022405595405345901809963054042815091626353691902000689049101002262798666771573210679439554113576827191138670025103740211129778607727407204750814904241284588925242980960118558217485107216827688454883760958215268848759674239589118409118796017985090007404845135685909461672865487306746227677181059696119662088965245096377077172286082141973712959207746118538096495509218780003703113215736848172522401143248862706593669377695479655219171058399502662802616366196322763211037700790705891042573149759833350889463725423576067126499920888209321594612276338313123337102484937805883862848105919510004532344460803904376164408131218476726704334587996061624527387916201979235441809070879685141663294526963293761812202627780928811598569191327553534922161133600456696306700826141067766217948054188368971825205749140846815582892914032625504299934909537452215150032241077424775267848544406100683601017972063079378795551943341750566397401798232073657644508272463238304649849624044136372477459796916908760224330198817794350970570697489102241359144442930602839128329832128650786269792698329856006892753722739122330731890419286892926223515264234806086104130093383539191331523331369649798298701557579253479021277543475854212782946253761875991077285212191508719198898791516410993209254721269637131565711399258501924708511969515105767198411293032887447579388447723058509788576691710495335941062147212973234245122746271228777025861341234177980366248925673747829886993527943582691284400845470733787784747323836692023493799531097071115883210190802624113526991964784514920268163883372246460147190010631333553611924675472803743473836769317082776413718588810553481654371091049295788394418229315038544358717120670220862110590367017976545855909499614150255819703534131384375077181696678378653491481719724840893706747004895101851978184021762723329029678935526082011504830799102863973723778992972865454990596613592720798416427343403381553723904505547785363375002036043524347776516788464499113258353632925796424716993459663831796791117346167204658150327503832377306918480686198422228968708532775102613175596423592195020028115281312957347879482109360296181522939888068791887344841875652228852211366070588570023311143513247296578494998812801955257813287411928564496497179294964903645185810632641007463304240876875277642167503245965680239992934037907131108181377159107478088287455723617363300794940702851612644191416096495093823110692730556830497649111547859366860563584006606747028279123457540410405705346694870579030288223086677237969739274102418523127802483005291108687084452692486281297718100721899657147990217885777541321460981748468769922592458784701967665065880474656965177147738863662138502350733858265070066805004210783756479704836667055293154788733581064155019001373909556960805510183995849776930276236137446425275613963887371946570307882627020698104158147047581420287904442439877039545857524439168496130639331627977886034482548352792745263990807463655012170313317457892405666166706883867018995301627591022076473433459994215486216956058585960808690529407841976816092826941304304839689759805389839512490086785525183393566514707684770311299262892622305211397123804664502666699526143799895888360258532688881708256301681010924211831195042703032980968151861552466553472632363138967353782795130870384165872251433927164340418021341900577598622505892103484410112590396720485396336911029617889193544191710197766814208075108025306055051071921281529099881471882024530989226199081710611527533068895294158059901836004774565468196943597152379208818534968065884195680979089879409548604446121936185071487784521312127373255314133193132770860448021808077839930678083929198563233937374736470707879797212207646280349180480104282656468553624673451294917940952333562707077126305349429488339472379243861156792492022122366208058513161703372514704871949487529948211605877942102715037000127807914224904284427744042799637908767864654807251617129984682084088553200156771103549783968573127267082867175746527783640131329369712507643712049819296287324602225509806536902707897480330630770934069138641334078144636502784949671246901940464768150857567337271766501078766403872875705241173181324809595165515643070566390975665472356052529050212372990376875754423068007988253387707138271365158673574867574151369467164055855239145165114564831975376074258578990221549284154750749825579898576050290234275492740002890201320991695622897271720952059351443482918805125717678381087996289719610098407401392333040283648822567284228187481477273633142536349021137815102265097073395602591629617438178178692278717066171045694899945011104524186152081302857866305024049104834299656728626013678133116946044268169672450242093983309417847197478321336720306286907019732296864767718503725334458229727254858332144694398674230193222245606229214367564315298835509287973559010692827878936832488458076080229715545421839332788570246042218395276747291407092811031336177187727466797095426886835686861129406442958657496932321502339610660419136518921823535013990673469782590279128285527760420358543776994964566193469903477713561543574240098942722530937585897917866155166389807061125809364787624133597293911850406806459789556358594397271709280678924342080028516282875075287452983329005505647055724865036403261815044304053737678427058098234474254686145503429500544002620494943798800045037805826661912712624286363800867467943710584838569025580337287505759395708639271762306761465136791099571546236409664633761399425909468564852666307293527055540080771432203321354476674695469670890680463496996014024657709714973769165684632909294858471977538400492378184486350547320516156713554044878417110000618085860651892561037642705652784477716961083823833818536616860116326130447453930634074452031722627649271229262430861356039978282591019553802737683638543310409406412441635641000566218976843262735345675704193195137900526897616371896583739279101356427122056603995798185620240626371383144210322353899687916121365969774348550764625003880916858408568545772241781500062565723297291173903776951491149168100104480055192266638742771497374736841060491011966418112558306500205645247258615924206972096013224277625531919045323234204328000434215232253065936366601590357680688988832528677041443990169560482719711265668282659478336993113313060075907578774904338202537170035396729097027662215328940793414318613463273764232697599169793445372881304716643082376110490946523236196000478454918301695233183755517372443005220022314719111251417029370114335903933011252384752325362847502884868998837674970169363544714203312037062161949200734762123056491305649075097330016476509807089682761327505830238945176612834284221784707016959258485158030401144483954500596631389141417269450933481714439005442953400251961911022623330055080138329896855979985996875440965562759591291761549865035116994389239000816681420727316798292511907221773866197429530686316316771056595666703316788267762417569657397829506813988138191585377528961691303543061192715560776127533414686013789304638967308142686314633586609915486169605039410671125398179306324770220475757885940739711841513560745784602742643574200467622431853917042098252566080321741362903217843574878529054217912735030659934925861520991221410640555555538770114003548362218274155144186843891757240984771378052699233486995607156983751982058837323630398519674877137622424195165380777778538270574946028512521708691334978110181715734656873738191466600966390741287742601433139004466241462108380285036052810319564134096056636428192851427173395409107251496563142858560996674181938889430803465827757530649959620724096200527665966750734928460579185185962067720373932810852898345015746938081772605112703693917814176526204081411287034616542298383212892746440137079192665545943958264875555410868569689861372919444809093306421158043147179438145972727088490710946843987609077225560701490026532217366643451474947296778003769739672997046947583886240509908820018865888377578903132629406885658090863800624833938044396415440328092987777943130855915921695008784546346099250136393490433139683952643481298195911937644534008981002198943638064292025443002051693386103094457696555175760317816738384244168454239947543353583483625358658202428480559337023908833143942672350554277273566475687424450910750500059514814897885752424046429045334375180428680671695693026396233557136713063955175280530355818077561407893634768695204095954422281131534035333226724134871400185142738369890008053647308267904017791004469824370101094626218413452621589135346063734652372510041601742806918251932510420372138892435098172837464085561308084525243609883194922101689510724377022561090387223333796929765006691481136302816065615185396786830345996077242401707020054940759215924507689574655299014638739631883690218471325464927700597549332948258586259444735572500818676527060503114108945370966765243423385383643395240044541449248967786218223561022285126251715727859124030496191940690905310111678783126741379426348616097783242387966115700769768548723533277299258921489029021729257348842598905269755890547545864525915539899453574345307557183464590918031170243833243863223800489851103736022712161339765603283893098299649533543919332358019385370337488249692898848958420350196511884463269165786739725640166191423630424325855115423233594558158489130660681506508958819214905530732292618307678344953668180878859180396294158394001372981564441508492601279102324516171287357083508200950525193880432975990534617077484572797052754827290555043088284064927391696498243605004819741780202796304215554581638990884046832102149942546364549273898413167728523920737012253260752447625298443798732802198749554105305826227358687968250400485562204372381187824815738884303153517660487482294590472671269517827812789660389489263789408869445315033776077899573159364350881726103358037405515991247268808773433505697134186676269256275257525407382023535446639811770793441942577855465351848454448607288497872610869967166709910530430452896021351484997943466041480201792389147749753004513680357824747078780489324522684728144679915634561401541085966748466691594018668401308030255269399915817364844977988230488886955215334036345360002304771748150204033563020700060372979057259563458304504593019832995441081379810717612459073570804799015861381108156512526058715705076371108506272217353223778778401024378144717071926817607836958563170532096372682227758398612179019542862233171722908768961572264740044383575116462299123569038673074261541608811039300045466247533213735972836467652577425324272777001095966277618826030680486890557419679798459702859500180603369474131344066991807879879996238385925109682456461100009536000835010869169765159969628627305902404099143638425630541484022577651835044525233802260251978127810161112433480553820980575182657408834701778761201962445815623643401327568255984822303757146365999688278611521891226642152485420937516089063624699966243892896434687589460909633448960050045485406455212555080578850252959188658145525685808155646251526217962649095189508396039525405077725537293593277473502193762709041027245251528251238576244862424308929541383535908731345980772606580392314053727189697129524875249928219042949341240814838911566589589573786130121301470662253941103536680427537745654149250835695243032462821628011499418500983481387411121465007348789966993324045815807631977867794709780183403711583958731216310456357872395246430609031815336855244199281888334364715542250152155482637511699785764983905240006063693387194574915196076680222810961032558546221983737339223444532986049703133373647831061004081571563582325975271447244202716290207020173811113263122894973096230970306485194024880465316844041427522283979844224115697253191689790085608144497464795577671619735423415699672114221647879652511301242741313098961629439723585597784097060506104545921312707065761806791122001839305429465183371996436053349819061409966900373495288962766248188358122356813456027020062386510338903429755399614419737773732359850769969296989570648143118312494792293416649703963511929909866865013484616636725216179525528342892970870084455015384589586496843908747762883854159474487068658608734408283327142600742515095385780165485406024129763056373917740834008344550942612179407002482860116452922494597922667762112908106364058730839879356793860871276435522894966189280170790732681825469417634270002338234190077837508278193864830121850356457940061643829324945012175257307910368558588664003081140793685826013603264810696546040443053136814960469692501701778740235562530535804166116214169734715704976907087382031153129316717771159743704439316201723974332665069020881208952250428091243014661828337343417672069704609054630344209419221813242422956451828802729562441057602870776227690095908086630613090760640226097417820095484685800155565656102415842095517563875979429712824404363150320052304450935396875291062684296897608019022965607947031444461187010020635988595990795810967209843409729516143290322418350389886021821416099320588285039957375009847871381158579721628281689039580297715464138120168365228696272351478926831706879686218290416970960932029442698992775171851099083744429889154930105978069571474404840006292690047223655964987670382975724027039329087671825007919077946885036289835320361156742716129234826478554830119033461342656971191985251094948722404860695315904010340999634487387815267352715129578781074182437120900558131039620250731110205840532578502301543981812010862027535683274852772180969359595998636913700355552977719465622287013654715448047837757085277142004948863866941762913809670148417062816800492541185691222752245541433311799223431673137209819979932087765840158719345599091517408530318755562115989584592671482279960755771230715255095385804135184636057648939534596383820191772585522902215033527908329392137368578968970830471376030784201616172195428386481356769135306769763233829973053125796491262794034239357402177219111291142830201332715748114761036633420569365260168073261265047107345101835526752107745975636042825191477320418566995685799985608776953556658929600787475420369821825945007897836141242571145989144244995847902852719784227800985695124085909251803215139953035864040904899610586176254793773291368671807975034739449388048700281369727780692082936263432088945932317943925883231028097207755306147087613465540872659361032505718340762112029108381223177707874576062823065216552826559737333917209613518869913193995527505226731203161120415345737231958805036057073132185024953220755876357968519546515296284720188599768888518585825779420267785682578273930821208507933197370866463063523881013503195995311528851621286379591773324757239781181513156671142026447141824768715383212066501506004132814171150979451943342819974128733407235123254743598215465412607582157470211352903134976564316078689858692423070553758357023204969052116011638470404626767532366438755350322891158446658018877168339482626582490690958488021519577796788812791730063396304482553248787655917817744256496199666000665228850834619908664012755153465000338552377591001454463000076609361409656836154258360856772584805358603354373342400703863288938183675404147193639437253326866503169328031927942061439860558121924662791111149117916241953059789706363236337577778332132017011847017731976228783042747280896228208354100591997069287313648892814640980942348514672022720251642371875743553188045128021141289722616639393658231686616212298098274781380368307887855584567390551077046003123830943396579195775275178766813455555700965732729867631038845088509619839897062291408300323973904821351121936496082952586929952204471196580812274772747935385689269645402675509218627345034809650120451362109521484971394406264034011624310889519330790189498853500032641267179098909698552347352312541146006191380085772854513533965113086541133169278844153233640505141281270395411471787243631893275806440291855216935332083794193388762110799416064226086490933849405915810910699455010127472329320398295671275064025157753239304387241994019640844574817041866456747863290623172564563741437524198544449675577769533972796977983176687622661214102602718796779651752565020064899967883873115974823186346030496733126434418051649180942517070877548121996698261733716823994916407422694197511564085972989695457945668227323290634872632692278548541889192325580269925412793428328134464241886643177983566516476102470554866341255665379733493273445674382719159067746001245323962137059772193866674132642487757239863558226705372836827564146949389343790158394514220937926922522447605427066935370552856233774376821109082784469036429058118354391224304206270080940456747482849952959930532753835077184566338011360078783298487157257369866907052868265203318084974355410413092795999937048814363475704642899263484710409660394914203046918863466782526105972044850897225660477898843592344095190386354853983442937077944436436137018849320990207033816743535545623072398034864129796467458026842310730150220759981267475365078445928419636657206754347874445486018151628180896814353693576139214046292277131123782756077686606012723724680642905070505888047359032832994827520259459008914052246284988158477822040421799695116168076355185092173396671630286862627543413085441973235026268625349202265510649438261462214367499316192266414166483652267654481917479032511244903069181920651867860236040561460831348972904786019959698125790670714829322686128693615862120196857929581900406464406128124587985523054493318760388899299406853333431118883915651690437023782685327529179871989924946329836725655182965346652373809735290144612782426227401177796126112948148146535934330064905037380697019000307195662625717898568969257346135697253659176179253181229047841866547625389026084063536952969812380485426230722499445143853244886841422513496377444181152273095984465284090143536670926860226965199625093514325896987509289225625831816487984037789971758521256558488327647673363984528290452031168743840034285048678797368557616340991139871234391417813493757309425515638437336980238197716573980475259690761711145632051737315140125494089543226053722663660151685240034142638007323462583493031313637649137353250764432629363016834892874040009668996430876162784334343588953939968255965493829536222171912092864737457176877933110031686871271315708179899989676920083658585757106743864606857155002106316421427588066121354964404677696619805060509202497508486838678931981318293026046066598344659898928728897078447690231428067059955029404859768611012348777733289433859593041639722628908930983196727436777191654390867188179561229190824843789366661916378646044734408199677117917912811637432720301397812796614439404755288867056709400944590247747444654983707479969556139136789489250324841394616052891062473492159295606622279521139610427536375187692658998592724800456470134503180331625708056803544936384205064673600585076662435282236339256458869716196276564059195915518505422910619001436003459822040544218396347842126558146483136845950094434192246045817084006494597033036762537141811746576842004913160821193031477136382596042629335038664265980486971960220689567362551204567668599917870760527014313196848102014867160859891083564103102039994343766215260701174728144377191024744929360142264920259049152619752499049502354334833452366099593461237658958485856083387166767286484535805312936226902295437372259163651046639969431857490366155064596241079896088934184396388944318665631798966206344439578115216528612176226697608325482260556362093374135604556231060626500763573113295299743595018107882310193040374458153998684006699445814196891078346707036767515287591406746890033045312176753232468428651843645370403724304157064514225374797065200229426705198389297663630175223352064772995794263490309284859774094234167619353161950112520815025645613317657544695649065973960331930036495215934599848751730228531721538236644775196157099953894483567603661750262021728805972252731538741926424169208008444526283299748551680357346162543475939943426667547905464671143739584776023702586472842324178525711762922997426308990933753864778088891693777127882805645542474457948284908484785116702173396700965166659648613491700597063589050283810876709922443570303062871634642999126823988843703067436886696227683759250891657985989401492476462462296815212367424706725223059947661156025395149160094163204677675106135245110421333901977370923377829477573447044798938001628762690766367586422081890438516351727319937014376117764136398096826454875207255270229819420096760056441839406791303687107877746322286527648577886505446385445728651084323893452041638441245007419247935730222244266820702431017246695361686074848820613135814505832091720436453376623204842517658724314241357831017652723712509164801075742736391653881676508816174334111251601031062853808643781911197538981088006088725431099251681935641569340549799104287471638402838395977992772863899779341448042272300742976135682199027352161500803527906817704617300696181881564512298010814133399829577900276618456795712116551241849801857303255700760506071829513315254517582985208178132449724257746005661619614620649421720138083021945147079569910661102194178729646629836554550602620196243937340896227015221427704807287831067229410275318507074700494421308907125691550904455403782530618034713447100732273578522146733167924371674508610255503931307532669017713147873998353393371935278144790909252192436743648467164083465525778543024384482742872924103377027033023804377996297563670110959047993996437578987147332117728679510809490702369502085792809401474405746918993452194150885660621231567965794754197932970452591555218068166181899656154430688158354605729301761546810593446767155806547769580259950302172514594977194494044337324533019347462056050084595900529154953261053104405898450097422558620080896798865090425899383396329762182008557032696838299486983314881963118854543064120532453040358102988798103406670117970090459869722020600945085315561608289786600718598612581234692529930479434653686422208648602219579465559755224514540260884285029457405307234140869460628710009340287689736356215344284110667244024083481659419209077004835301391817042291871441416767408738198684959429400819535803217920057482710884043046619228952351020416962894348686729272614669893152239157934765971335294400062883334721535602428026597495965674047378687169422549780994183482546973383217426256994947450244927082081829177448175484847710957358103410302400768672947533435896962587488059587983226988696397760166238762278602494174441953402678060260839202781045693073285644205424342130528971038412477857511937863664067640508294537526124624193002100141487927961736816160693784767439461818248760197851759555483351674743414892407113730413181493506005579460074085784913803311248593794715092748024820950118140288890543129046700019030764332848829336246810723281331830366972165771759261000178517601390760175349257972781300404023981542964361804388729085952205372755171868839582523395291517958258122395656305577255453664570061969308632126179595592317101882424905151862813051607001395870048244878341655827698175230688652791077530516013720911922512266215230312334950986993217742925508350835365137236081652666476170844149913944970925134736756839829572175924924911735130077965397993351504515897568070744960456680901954723875666155338931594497679604221435232862029695787383382145899570013353539893815569860894859570112897775046802489006499963695212033648632316223921558502798695148825679246665591542529445368956358050078636555861959103349397597059833858296072343044903471211471636291205408116582971344696827648087548049889239093966318043610332138071897452372184544200800624991727466225714439900611592644099063339583375521233054422187936402474695207371489994219131469913472320641020667629784235418656311342123977169634153471084791545481243052301225303772095984386405834627553182207613288314686877774679722563572105841479235820888473254925700094121651077825818981073297989405102002508084164014356207668462930026334937976612991375938297791526196810100893924354578823105609111008931338493903566783169532105150914973272059573399125684375713920493642660292376974756274190903302337025129328565028445993587713081396913339092129927271435823420793146133382730692741567979788498345267989598632941617359533505000594358780268377411338656351117463436692241092369380902653680846486196914167681175282490682759632863473586536776424824850516207818161687803597253050790432089608054088832698096186985140409121873861599971740190970476025431970335523770836113977126360318010716363575118566371544692564280864258907340210077904684242915646231667000441802907173046398754090913758633943148160602737415562453691638105447523803032182353279316427011023185894387848000080657140006713581138515626265568392419515022350774134336862887188660171397844272895665253541126110207256008051448661018900070176209188546332674845289241854968947080505596525701760413668027774224848488625910973324335941610759637651806622512518369719380133933367006083374198005679765033486604895435499230204639308982926596148964730617676300252139739821083862069385702425087631078645489449692735760805279476383265660664756086438155884284616741026696991687235030843477612469625000757881122378445057136989518822662464931451396311017161424774788789674117230421005389907484338090672229054780439663152068382315863000923650323795705666919371841321846189123541068087860057950499979194245131176635695718625143493569250571961745831329063208513472995140715623110000210390235171832530188254390241090156671937249475383527952051171943447777282317058318259709923587961704445346926869011439940609898191869096378475644124976220057558238410003874539748689719669895268302463838163806283227537408865220762242667045858472827434985027046262708188187897354791673672967536866811593549973639578815084790543972154285334232303017215525392522040844443230434391340083143484827456042329943305995984368867184338475014680363415945986945729839468481933199935866898290747213087548640568507766836665686524914122983582637246544015105408537820797845128819292840290778784859688534009329451841284521413151585607029949542754221853160211630375408142936865626560879792575241122400392601471442798971504688833986758020869803404240625808974565547169042876329457441562183228782997021343050979914350910966261841040931313248848463865986105580790029784489093861632362940364237824247109586898603000976009286952842368023394035564938367103317887473125685691841129935110331607747674333786615379624150501318050986981244585308654992035470699197328397811764149471673463306759977283744371704596625373742958577451527817520044748480525071034270169088030622513143633012724013633642229575303659140912233341922684595362151597749573042512238671107297237783523242026844436391639724338757436960731677376366647028556584620332557563441938650627616575283827483890185390686327822474325088988469408608895140343496024848421056585470899294271644292827868146423821949746282485105987519496394572241218414891130827330434612765185065560675880682007138824919945459280551556529168428392257404199148102698170070419743745611885712800861819613859201050542303772642566788262662336450532025030499381734525374263055084499650001038994641749201376437306509836471932316019784580703085432503398557612909770944801498474775061849134391459717670722792278944855756016005038674263555259694507442243271071805235653377186423167263410463202449823544646713461637648139709044538154757958269283188005460189796056806206828300569103111743562890122452773976588876903206477877501075233544736659184429344302681823714018086421972206829495439124990265260647284038076492796231977508710422474089183071047198059153909077023074096708594155823066953111414040908994225776581071541984570680459682650330525360582659878786582990941205984260739043414249661828673189212150287592177134650581424282376750873538912879791341154038570268127292418870997893201259823701987907778373280565143282544824106896364077752883870057739285815064617695918908289472027891424338667391023507153498211707824398970975189772213834226224667435477107870953047487669611837429372706326152632790725264110213817726750390950625267904716005091426540190008259203063195012055350255472611039681191490615713357772451164812720187174260991896718974218631602513991590464897955258736660595817152274712730779281274364318331420102820947708841781381357904405024726682546697009312700359879808867617700586105053871126284544983620200807104757730555794153885286221261327430348370560654047300761090939590107968589679568983033991912135315614027966569423318881284389226575833250168895795687306413833263667782182839612402771487714140465240482052559400369432124115664331178563731255172642449378377756021116144510848167232026261880941332857194838139602600466991974632865200224417258123442320951392749692621312784384728945291655817853424586320739892596133105965167496592095815583965102254351108200690488517646041821276974824639687000503687835387303486314903369251752784923960682048973649143308645351998289873999886632021937759917901972086301685083668770771749799966936939219017336253943215283546196255581696641069022653718553853315919274455802230321441708992751613622582195205031648404285484205565158460833012952697057708800879531976138742976806092443334191158185411562681932792796176164230953298951998533697424072314265663926363474470610064935004501022128454015515972230226330700861654141198672071813706602928791485342583906356502873737495397438572249570885297576945707279560684768173519124985984898335770854936355732635961351800049951055879713290692128109270737336956812049378005613190161961471200706099758764303877319168199717654659567104125992025634455212339526031797689142457768565931374933498722266380750814538424208588452435881987924653466597125540130523481935033047700616434248119896993037442666797242919747324732571714083564822526326398863905158627788105634830060102363799277017164820084345619359253651633158324501245157640210313705586132737116185348927378195185197425412416491339419951356459557241312183513072220363012781402827866763108618314952313279048487823255100378173662766064964541378139610105069739709889825088501734458598036674691945393729439128556736954391562719653754148810702393379458403976642738294857543799116819508743088358990825634684106272826385404423394613025178629951353376760516409728786644970047249738134666739292194672291549328089113732835298487781025715816271444940902260529575774699184269807272813598905063262885870697682767794351713994116360944244887288439020110935966592290282230504390191921911889799975058217276618461828863031953374617022783454118206964066392206854159267430138515268354835985901683983296035459733929005791845735473494483804196410885520286605120028017396270234758938441867811711927487177317047033640070603101213491667863905579479322739927875941888367159271372204454078721412160554339910059871468009636705699557496251994138101768166212517190230493844801100720051168517994491980357796809822338090941933539067023782203642643161587222032196557403074941242480661160510728849144058552067973581010756324966305565320928523737802283903525559738409879071962570163601096769947208435590009171215443915769829835962956407131220197363612100936965640325996141569034062337523597936847099594110391580450035504337440375225071987971594377537847290557795788755010893652069975108572344033111511351734970078951124902711460615809041516904409515056486666145535508265851841904142328884702497650878906546864164965969474643332108541339822991878093034037332415504425817302981068883691572109890021834147860351404238296654491743952630288998643323231371741532472034410168600282592489332149660531904522781516481411955355218385516273152329948555804015707362964526080437236322387108115909874936046629788500614551379401614646716315606410346640734956114481230118717749166184324081461094776547754788679771893734556113587165404614688827125107923356436775795224584481393399134185334027595425419719346424488603691105698685075426509698823654758768384960739880907040839769429773116489131481189423690953526263420310371032726494383782074766602176485720647708175607687415240999201256852394753667508261799632021006967086046242997947729069814714049780889161494965836485708657090413977382219064910697492791092519392832344677647877956397903811603554451946487943884794948863356106206243235707234378637390718925935639570399807105527367991281851984469248835507249346091513086544855035753967125901303170260078173530521388981254671694081574991285079521916507745101666722329720005243339386305379203744298374016194788286210126160309210645388660909351652243197105086805798742948848734519134281830732040698667216475481551326488928818208250550999513257289446129766996175197102643190342267268947241217740372886153165177161580358526172675428604599939024998763257709607397674330676393187072494615492528112990584550060571864050607739151156827891590447908967042497962947280906026068910432284591220791527322076879238823923027454137134874840403653268390573442564990411384590698132366817615745106071262977368290535921352162323401038202705380470510707150216106443064795371685831161960115588908914614774281370353310133528977875922735461215734439243221158872001946100231190774837797724436807287027363281440820788199258425029665260679949992970908300653124804068802631034635402625280477377832654959320129865586446101788107005786250494439356694221320100224358625778275833302211968571501865877343628854403199191319178289199560398968576470577409435171834891105930496001339893120017271867497706851944564836894696537353472842773405087647473536300897078416034004175109587605868203338354553966942598494067788327401584401238543203004259886101843057170634898822591220682783409098886019287512833642741253949030766546108712708330981784809829801556125511499366043446600996025955334983965571939665936730495724336275729477043787651242402060320453096874438635300676697998239990183883766680954176983553079128305754102206686115595357842030557016131568650609897169292214712526700790110528292470422889583954370966005800268452527089100296273420562215671763468855916024515132747534908719804536409314593511187098250819301295289523649350588743864205436083596944209615206996938531950415652496637073508860242625558625454911120219276553538467730690501536232010128818324291024793758790357837775019899829080891450484581207238197172644283618843869143836912766585630105088241501727084732167041472682357601937109183291052433629903598496940738829435484603693005494296882450406729293198852173354604809942798231213312611238731718765372162462210065368344796222714180041998382126193184439936207363436113227618131775575370454543060562490106259691267068251562505774684776554075453011849198461248592183152951305027633165045288923038053733940367599542227227053671219231045751347916863207161207334721365915113714026058476741397634587595542637183178789004262561831352974384595627920216808708174063848005147649427807498245813994215165068900142528263580296247168583116687490544605113442623316997783290117720199017411988862369927964492190762693072479755811532588729041690644062909343513655928604889613268669520549233715449587725870581790615104133204612902508486413248459661013504520615373391516925281212607288190975795644000556053475963391336472115260349245678509836339722796605671038155715867968809252024488864221163319875409553362246752734702941854601103648600214728079322171448552348744390894174687575007110085792798923412714967870069173459300387211467912424335908017221787673279583288980361592843770942849157585568740538765469826425089586428074498606353902467527472118705333609145871299756705803676300412585540438883139476313063374023751597530226885537981807269637731470607493233928634425917042416509751971715383361390666436844590990198267249276848630133588501420966620804265555424619531594968415586774127466855537808894461382427938957885455260936701043511101775791471305376606671790593396623123027919721820935758191144714455007907938818527567648700836611819391803962769707269656386492852438177990911732180541856319085604705085835811118837915307704614481268108276352291208806886161526220663024742894402242138712648438252109500146181745242290022363205839546399397948619903244505286355199652971353396810197656625350607535946845927776755428960065320772434223504117849271904754573891887732801853422358764796154440888974084025472895118689594706971344164052868522718624108485956271461892339385052303451187488881103537204335427220728863649116825941457564792468053182483130957076008772134976337330744620987539944260527947599225380625471938645569874929348113647043278417931090221081313116399921387077593940938870561937245485454795517532966554262869221014116672065597086228893038914319502594134287910365034782684032902555973789969688216888368400672083061768924006016948177839772681155341710488434550020256515879372561580266719381464754646671534497500215650101918926475823891113912666492387674818585291253917014976885445093320657890188948518563857665223362597255993205301306699573981528714253841877606315921435402868186264156531942381597143270058840015224659530920460046990325264744185081712567903595446748983577440932267916216983769177803713864956250884384354819702413731704339164518011750035357306674176086346178695576686873629143792951698805913447970679168281252642295444117948360039853693899353222967442932161471500260278477315044168329142252480842682110489251336734876553096495335436483623105962441455026692288407331968459594461764455718865853330014452894936143192911993652493190394127590370498915577936937931228855471263374723824698066707708405302917078735607551503883206195083970249300752874436906246325517685037906770680686294371816705037919888957279782568720419404453790148860512155639641602810234568449380846623430182192072156579492191816527170230570885463043131020571326832734504022694785719047963307630258525055326733621689022260879078181878378561000071896298477373742631312432159997710271200842750572770078166974328048243804928053641464480394248046025153438404914035902851686666858534535227958091816095706218595736947418116666245054881303153389631722419430879689178269276963116640324451268806964832590166753523457482231647103110013149051009049360798086351985952832025247845251884146012660238571748802750082038876207683745202152029368475200713610118809164009756136587781368354298715829193113740929320245291907111857500419983099418749054536240138709882457827449559359776498397424716970306862606132448689815184801983825971899343427510311046786667925408654521451848375197168693030219477523498780136863120136634501291736022811806671156040048053250163743140014110021008940931894526397478984960290962895147779362786912845472931352727827402077657717402876556082872200725845023891824664745016554778075309184999311427307488730095990601433756291963935206305639502809548897458426674843264452092707185467145459794317971507613469261908442604928723035529380963038076580269789205953832700450003013683734496231730699129517512373967050786106870766660809475868344376184953058752652143878540578126628041799653402684750749302567353503773601524481063739975228249927321417615921686072956487682025111913101443255837876569280197199847873603342954787489937807626471030161749401109043049881404334709702684385294896764835523372712973049183552934279784142014462216209878969876530843567932424948233328533255468727467429334246094118641566957522568037501716483441434660822888540730875284806794679001692964082617677042235304692590701300740781281375012187498584255334357681369944744847266229336687134327377063205101104154336463564216747819579244235340956337077177824537528067823309154503635669623250664415477672011886725965078878101864940232274818202722694055307952429617115848384213492721029513096486516081891305118421996041203472166453093407589469363442029053634773151429034214447029223043876638608646513707477223025783654385949815282630698054974785521929202731258722867264266696712631992653501419509377159052384995517011286972049623071772762098381968381590717277779289821498309517776607232079616036028563488179618293909429469940975301235268226335365075070971844333605638663048317372565876361929010600700063922596076691996879397387123641911136400401365144245856441696623449766048380226018900970560197029851258657905990029639237773241279068247264921568998971629310985750733969609436375193158904545680093840852368873110177943791819683476794018038620773870413440908242457493198342742597044223691394520854117107087773194598118169274774044070972649779333298108248036099720003746442929484704890245230941265512141573553064834341713705394053844857951121678076539914994495297222829235202545729983578292029434401284417709457398651771191173209625142280370725717354716963829069253970372749878776909997576076032369316207424487681475254041508499657296589698763095191973175595571802200631920858376477274276669887875714103231349103000466348747877213109740209488506995161141665045066453330115570182894391875377597909552123341865109393816788982458765965567038649601372267605629940628686031466021731621327083710897315369183242720453249304140021458308656027906851842469487252479906360950242882277591092997924078263546789432468925733611682362800723007003807959348135158724971257782640783742479103634937297249954065031182913653885085307175623627715056499226692345127445286730576491603549698143100810481371104689758140066436186455321669893583424114750773737056721199421844962512591666993907630265803646633008881155272452440724650960058553713944873020969999400945914884644071429672244499419344908059175274444953790786673226284910496282216604832253620582554500991600262569474755333255777453231657342399840091627262989797814808965633946299666968490494579717951586591890267651741197964326134055345594931068800706756130236418538468395133203034888514240640138561178393626364762479727700650218264629883026448064190785619355346547175498526759448299646096802710782768107261015038884218977272505521504976895071752191901606303253168090298078808446715329254266310249105675214037574329088081651700407079615067429730140574541470370221918467833010217553968064707581131022754226229833515496165821242909120049385379083097712352670384162747369244627019695422444282318848857977925027489693654212222594087086742026619350654110723374868027155845813930088726437340668772927703765674862334350420935425202382338458540712261110472099244564933406918816326129441387764917905218109207274528649205120083891569921723102398153219805803189266870348741055970335379993473333552131840356291799763478758572116424753319824689184026464950423073840044489213608277211841064773395474715426666549030851266438325489694437925573487920422630477264224934889623792808716215482763303808703636182264008522268345582932809550537119158731734857527009897011582645653563390889164809125309864781799279119594043466726231139804398490532694160383530258323337448364493733957844612205451337982877792394301147625337140667904446482573557828871196048692598963537689761391595039707690457670493284690408614435816829921195582337121774392144991055730832707249712634828579043570014487271485208282812625236473000737694125049894352252326017122784072333196584535865381026201308424073509812777829685314942308328445048334583333770516385594252220871835273753412487463164747658438871989308393245093125524168887638223172312218146132196220281416724411852360752705417077391991734601018832148816039596917468124603425826978736082763562625865365211283367971898246161902653025244415824081146563329732355461742844692783648006537091075190472980493587121214564619954622131214063866632284223967467270246260960409867521357723313541969933605621678620720626831700829434791024149055751893947952488099195040922377608403735830955376001033045107212361428480232691594925246148257445494540800034021521686024317258992914053617223995491863584621312705621190916887283806368635558276699003616015323139519794738386483109278361953985764496255641261926812383546058054398333260176149026185768447632901340025665659767821217789993938388688181599883439532803971305789231348713528331993147826935970703192687975644208357790036911171250329553167245616557198971746325407161655707054339819006238999082481545829659700547972507079456322881738957214649006302069973935264386201570595666738950987974706501377769440778142797954749152732145491418413543771504840886671796055044858477088063535580799584821909230568959369800906051297441991443808168671993495645762449366701715139048657582694062319101524444291775337026327989190215069327802887824737676623424093340461972696111857244026746328980979927609246803457912755466911831576216394223378529247997421519740594257988052221300480172145592103281733596134712386236379638549994692479739296593214088549681403980072148634161179576860243042744154225461660224741921351215607783497310897603097146007434925407131096983811499689378919502285223832867323609001098459336142411900976414286447396627718679862361307351320947017972765709576880579020074461505395116389662660016298517662983853703281717433767006452113665956117063127558640424890657880640153609946809353597898330540894311074642753721029281975224700669261190044444988274753309400013312195350007529870515084411187340675381695983229064993782047122546510045685927000950446324120735396131817228742656372784009418631213692503850148369733530718032164014846437739547190865951893268464892520114275020928760943361217756969987567746998686288292648917709183465066837595039147201400091985833344108699217134160677782318865548607537841544345642530910909662664651550504677616916366335170388128317864372781509672360814578711028484751195256754119969498262865410205304854384244125305037906597244848890040044363143592102999821812777857689800222551175651499888776365680696181747230699857762338722424962751195721289615674962976573982238197263766597526468075831317448327729712574133736476295706082502418078490623637500184341079076709202205186860776981713283447154750610187473877274661279530966657903235353510479652695080510519661534358000229148053522144513482668121067147369449052712916942298987790540008730556459611262014680844904008728166612001704700284177986793020734623789126920692115748419271926290423501773357608340109518450630573409030446683613860982791695109646587140221535203315596512067271044738666234619623499499236905692828126774858847538421514324106759946976161507755660401281219965220888608180881343063319261596598767140812194402418498624464877261844232365468052924219731640500732981316017341260348277331631922918761222381229714181028181688050780956343067055033350014772394285142286072089890301000348537307071984501111527779071349714819929746546136084466857417800763972661067657785144026134332872030881507273067180028703918938610844983087494342759232492729228698310508915712885070854646639707279001918693655918563135548044278840205190691542146414737553822079008115272102036126492309408340512656194060451949003717545990244786162771355003214238689612320839816924069429914939247335906813565181920506260410250134822511723178639832068968192246225679928884317080027841455862887074693377508852154604518660784248130728787810150237298484996046706355195176670892090100828245187948830957352463333291036084715596146586292616782952870175960996360701239090987158414313346179236314563124035793585952136301866831412190778679882677954878453515003186334140969943229943498854090445186422320818240453421013938955243466482253517047622235117616595982005730649049964186777753833236564934110480670603117444565611945150171502232109490716983321329443288394979060279122268740065584893363393095484819328246038456827972015455252856081816517791331554659804291269580430618954438763518934519184079780136519926765280096572472300341761155973372497890458667366664236536731534953543067157765751640535670750985273298031327485490865992513586934132861099844636656576205332101505340088158286560929613306598127844292124513741120775487603427815843633989013766193211476813827239934753564228171572503279130272381006195182448063006062125401925377897349040662401779955567638527360918480759940052617895100712597361181641603711022753378927017809997063336222377159899487612554747173872526650501008994533392235044982621681611071003461682235813084827851836536171869268785507369539023387948795276776864105907522999148712419137496079017141223341424700565582219783474001070245922332653165553345712545191628051626456879723993725144950931041375691654022471671469741469558408063298147752369663373422495844214854156127361805983232665953655625375252221519427812433980521218228649592369955355606976138220524439201494671057738193783610798296408302652604968860463698531288660915595910353225704343115586950357057719862466512297279172983893072676707401081683234712456278096769053118329315427739002898555031420180743133068455840896192871676826158414042487285237762580090635772949888371751512773768557372299269219409325146218447311100549672335735482936189190301252860130451518788562695937103401185020162261320984100435341335294634539599463710701722085975897198722350076812816685284576793437550600685645709012042602560707559287170059961420615958634657308973396485207664411138774803801034337334155990399015883606732501008752821825456213892070210470989198485287604822368260932962164591132291834673339701376798635548231145632015354449891203225773876211507997647932675962447545818101863428486610466467842201416105823649027765986031108399329946823698076359598327472658571551916769976673774961036107958349660555726829641108940490048866269887805053897567711755948479786983765286833392728824246905200813191472752442233470896409880095653193606445353442174317967131448271485046476498419016276840900368332481592731444502687037528019239277613578148803681788988600054324503691579974809953211177370995445295696476366502061924458738863998557922461385230460013189259992188155795690889251914711780866533646125625451001929567166964208668259233726983061828442602622020602100116446489675353667468844359374492402536524959111943065112510018493511925158925397163655556353307987359033155179392939099584721881367447120369650202539342025622777699754242597270213672683624199866285512169461406900371169604672626384037877578530394573148701814403294919991822952336444294577099602624205227263736657850100730322405765572623969481052701342079114101489392723609468704805670423754281884502149536741462843075995927172536373097708226985721173043785610160021091666512247474051376728315035430106653978169846369363049214382535089093201497340987334815328986001590944626068051624448011150514624408678025712711607957259679855131469097758146182408289350459752631633409958426979686546115549445054954265761671528106179617514629981350992679183778208193373590970007510147895552393114843481457748034743246864557509138274617625737468104818418572972059920257705271748167838781805998913257235638807591979412607391920332462623688831387680016398557766671562447161732169281560007770260454349398911993255850075185577387554462712313966237603921598386861814764530904312579935689286595007366565059502281903877304512290660364858059378461065038492243900970622942150091995912722346200568987041077269964757099973278438394023005414308265614663924348153609616494092601992837822041927661747405430140948909487880627377540294758058884026481458808082660756864240717438930929638125028014009875485895347222267912561276380784976297106238426456140548883507374648529437372705013056472377635687340160575100837257468732271579035269455339604450417763202269140648677742033310716238557602835170992854275594268468394408355239737284103466674998873150147814460135619744631514206373654274536558691258070342705226640545032177500537253840818587943458790234011989370394940636445516880900677054230613521684755398167223989561785863603574751425756541572467635430762961263130929522489540676937057081578922332432536500598593216100675690876807314549766166659246921182659310799170774442950121591755998170922239833873126299704247814587839844589395860839987047562766078657671485944036134554287492565347121290269852942289536077265479133091985017234535750223048002675636139978581366752125319814282956317331889282158121153817884532356174415889506479731016560073819980685980960359009594514193546234143128825434547682778483174920053626972003930106711728013083373227257652304070760415954942227323959959128122589302381049865385813753831502812649055952204199332294783447512334910089654043918054624772774605794947683896698254572445982254144909563609266603741507552218860182200076787424679088222327484744475140289385058838201794873948866941522508858111393561516498384151268567500145097873037179158336817278643382663111319031335222073631356512418475088002563962245400417107283121350068520150298253349897108849999102093071069015064410009367402969937820258562003422075122666580749732169302484810712289646025607401004687830628733635136756356274252197159150098368824910247621167190795718750420545545315475418468458199738813868109998442274554063679376693714801263522579691282353494639802079963549957527092505863581918704338118761071223784828560543499402153842831856712558141056651905079165451692347681551039093089922433047364530756858876812470687532333131843254289314671357508821677185035057300183536267647878975075018263739726850383413406814913897704919157262381556870468223618840049707228115272662676947625522063039081936370294722901544827169976468491460910026935585736245516305544113379441942972436180267794192783462230656305704566193243563529357218405506532128567574380751210070913177405793672304077983388728640098436274602609153136487268079613402369273362396254881998097870330731428713056868356449629436346995072325018462941966182677410825577319623169862356130033189496139129672972745792252622076195465929307003895578121732980673000555936689050491488635847000786220112808807649694446398704888797014170732171785849640462656417549503371900268765256286366766741719755215255671109623859241937944808933545592730214678792449791039639042978311939103166038973806658000053627517624225031364698740037975820642464724803564553045983217068366903219617009531522582171039204325913572079167038848974000557737594729794662434350622513700367189158413426473294590465883531858029013578751994783215400203230262700035156109623051977178550995901870583763147508892911155397701124226394965456871076082861660146252672257217856760655162328389202624512242689395236990745155104150169751840717303720572273026392581892724531928864541977435956624957646923984497592855376228364815166861094583662255899596245030650625203833085212554047053135118432300958675280797567465821687211535439721520789976569116916980349474541006615131928870847879943487433460032308201147124268301594146638270104173855286935578799808323327873910318166165531398698022756341189263969201671247533985694308825321087830670476330248209182229000179169206316910069734147294829844855804837519591163514761078482720811442687829948061817798092245119381600746479370795000545768213075869245754875028131161816011465087442404920485791464168726168467031321126672635766823006556984606994202212653128172120558059386552641745322764458661753343480276848966311751340854288815242147168789023558347097490483257948788878352596364514429298517284584859380976175749729551965244267336468092681633468243061484667069135115945680926058269066012619545564700362127192179404282828355148574994030078437599034072635193442757734583636219932105235936577464982921695014297419293396564334105659778689655756575110905377034316980711507783560541745125823514267173385675077653133315300717269131543025086596047946241599568048210490841406998044554332049037145150902919876126275689586768064437719457512149122696965149219754653059412395448055815912713114558003022856846599499666666081975283124015805092952986034527173212954309297991382153232877416460605989904811058816445372975074180666228314107977149323251543172182038323066723991938020199434346400681462890362712353688083614000440242240779684287804574173648341022880903048306233541683485176040963232833589243015299668845916143236228542197326481324456308163970715483932308506268533466628663392271258863764166718236864549901267998853210688126485669875222720464321977027308849537813076704397011747077188507601893265533620629417486037229801320964126013499519423203060299239191447396786098091329876013389717494212412915784362721174227135216933687888230399769327130291078557347509173305035029280642038850321939468101509756625269507107795453047548162776782704648360757644343697423990414628621458138877628061538385811486934428585512624640581957750853696476844948278859103614454522618883464918645579377410001864895951141191003773305487972390531145972173483120688331070160744295022701147508646264165497557187765445985029265346391184080746690515320480643809064766442722134669604211556569595847239392274205834762026378852140441209860960307836793586299429654916186634969601597744809428677654637186962347285051413563393763407887930195991367117887129775412691686108378754021232290541153814208517780295227843140931007927233450068449891094883642411070549289602624101509885369966847986315737810618035504143753748868018993149415207308244038578101151666459468433500157799283511522904740310711342447067127424715219415759686277008345762462454032486638334148105071012148703998297219010162384824883274745753064394742542553967938759713381268446782143042434262920407654553319870376691095115173012272160861241564359383672104756600187568526732310440387947022053621782193486668472342890596691708834493279993929713459181273498428353694928519473168882019430694643908244309744108006758250616138141066383951427882632346492757647789339496180193140178623006772942800638821469192240803780624627040503064187090403158855974143520063608193309827518053040768448319023985882488982063456434891018132409507283336773425849202607738887509907267644210854917710545368991746000825571416706961108596272044687301545919328606945745673285225996734540636061761599389383533723813717105363079180946795703546217788902755691432535449384294661592080786823312073694157719007177686655420974979403217283811810546514889002331069440418779306196847410937625165326068004117618505066980427766224823066173151207072443230659895888386822746939368434076596899874143398823107515711242169000492470427046866101847198747097453638834082981492053612382849623355019708827337241315903563643206783558537092010949848748862146579791939849609141934594699942612791094001294759621846932293753180531621382338951940904762170495529745701724530732676931363996734239664503301788845436668757215738399669986007829874142360660685115665377602081385158106068203303691276247494202749760623997948723669049276907777929509753111933845371735345454066884694953185670560481575430195984616339691391857262389689805577896275016715011249886046005404082088617437173057966826793080783000340465379982196997936986434576187782083630850406028266900265365134584868748354129054879548745747112953698374835388545897448479926884330837581506013024968810264929037211191736196240978884891564094094966907854759969610574034149855945510504946364073356477418625962889212956717046505354302941685805861721624545519594002093032966538487434154535518422687540220851549223037284062598202361271309734086540896631017472437919967502691997400131491135424436688793315988049516606068735117024706710215029328841934282176683751637447709250493024218933951020887054225631236287832646435898064629989869461700139961530854581288182881506863758922267938762957968460368966654412297819656862493003775386904995811447826905909646670977422266563147050845790549759524111516603375895544552662221192102097525891548194563154897219398316487441232241458317683450192693593281407332140194886636369893188781825871362476071065433830585650059497348330351333231175002301721506749497178913615354453293145635132327709565908994156387561381988479888788332621418540635668160592325538550396052821098496683432723215302576472030144260442019645526724408732038068388090079555700951741681269814175181399978085205731597756391339716915482450980665897852878100626868616330605720653234229761735385502385983478427071511980641178548822744012660971208945683940194939828009849613824036601750423058482957928945763370610812682440755625575494415452282109521838844963435109416797880560642810930681916879548121103284988446225324491656177665117039618446070298169650933778731261220106539426723632637687376067015217767999187898846887183490527787545799635229607945714932939721647722177857645024382736759724619046157652657058973193435313794006449037755657209653974107652828286180029479832401936745446266175962523222553425279747558130508285365913550441354469777828172778088684922399955801501758992082949661905530570903345718613814533754552897694471053632652890361459453257694818459043164539765948957110801685823853325301200663869062322294832329416477079939156061797695697508028227109244476321421544292571687633732467871931350523427994874784588865937216541764184362816426305645101463135860492228305135805423165399342811276129582728271310231140609705949071411411705043483104755370582323674126024098318246959891294781295026010087236067717669872531205911526133557008204232794554950010004255204948178305973066975527486287934400140098431450648047204317317688339414893351905028827572383871592474960362069113956240882588901564115830791783805885615156418638278653755613713936139963982972757172812786737755113503570715006402354153625864674539249738826521364689323954604322321050181717939250179602321627252116258060464348200871999485059009796413178960013821136438217707412382714869810185030590802018150840582895944501754936395330933491377855075169468605313820214882635382622611207177272929260608402632821230741216583347461535357461438863987275006139186934013948306252609195029422631654169902779598461517367884843437316582488824734977405887806071618901089465807871632518249350912781809373025677633304683562877537265701568608898189031947991367796330581005178953949627815706880275584858217007435621299015562581538732181576769546090363180130763492850953280541618904804434121096895763219080533717697904281614544304991502688654726975574677739503358096110898356222040579373744795404657510188191325374027726631849324733912449584231262699987559795802779795464136527570861240522880262966393848978167678390832178874454197890199659175611213781126493858822694274658309498004124667607197949171402554016812203356274024212957479327767256459757847992618025311141544557817322899929914891826317828949686199712706547149153235745698246350193295519645745075369319887723800103091469329751187750216420376397758501308576635107584255581810287941949487900576024882344274287199610604496522071464576855012376572924145152810808603799608915581311265080331044958201573589650891660497041648075569523390305486331832523887432534463855810385173583797755765787336143129643118387616450198522183413432858281305909443477380039011878607965838527406161169519332027681355550819659604543354002842994270701735062464751588701125060904690975917305621135915720434812279777448541939997856062256144802436547416164664914306578955485700096627100392592149312138876197211305312006815517822974101983146582257705619409645824071198494464848636870371559793788425624488021192794901396399102493059015806022662813926719925705970398614361627582765823481362822062489854427305733934794170815692088357304249368093010240555482510072035968128474567100840755017160082995826125357118759733594649339654234303063558051736571758262219501522988663967642696586374115442983753983406509338224438964433668214552229391116985713863947688008893928768145470311543355028494521971418802861828204306994837758683779176580689694403343202780567600985382932105435320959397617481727213492398475449946014328054550589515339219891849543611225504893230979118914601206431824662659588278559833817703685187607397533279356544520383819162427724182738163028727622083060336843519902756362136004664829513166018749682615162685176685816401975397570946167092714350682474092868571361858798241619878580728124185453574362181279884987474428451991698772611530137466452674037798806586936974282037245165594850598854494874910845593411420580792267816862860432405437335301762807108229042802835411111997469683447077176141225442851438232400202806633167289048004236680874105518029276552387332369517386836365769508417338023115804748192595500479444102583719055985443904233487527099653146304692997776536889832247781828575377385557952428764294128536006452441811054159743830062392051431095389753675849465284311308435360038141662215351280631446438732429560179861795627191551039712520474062724992002604823699387963756641178393807645743922142346550858945868683970770610342312150415586219112020832092968392396446264830022627627687918248627918606968347594341646734344589528792573659181418560822817304802750329072207681877254778963322757699502850083040430500253263836738572240894999427093672782960859142333587379443805103577981359393566398731582250293919755244742652889724398466345521186371440828901017014633438587301052490454299274893414714876818723077679152480258843400019090332046194524137341481382475679649785090896383341843005515901246222903221973566169825534937108907878518784052478215624245719058303691425164424252127523860994941071595991527141959900073457616027786951379327646202293907387563244382878994076585676489072523091399743644171507886054926102659059173283266922774949236844553096563520556528634273538693726694972141094738062276441192367326052525193373226001621592270904338368430503778036320718762951419368911335856079890044361171525894232728757866382907174405629877587064171518351672152786820743099811583505541464312308084900164255456699284354464844640306194618951699582391658542071453481241310107336623276697133403590681996707193401167666290522112963952473703155065532692603747928828471561119349403202183455636494379725928306706883562995334523745455847437928646735326214035145953894173570757195402634555069571772889792992476241897942525641697117132017791181002131218337706492037890764644351971153273465934986189751740384391005988291527643374313071589163396724996058809958098430052306460326270484388896830673294514426518458718035497443840381429197553713172789605121354376959685465905745559092230840858422483337632754227609853341646154874349040461695177508126792046272676934176425593158149013785674375265127383659289003416117603181405379001966855978676281135587540828042959215112835721848316577266926831518602634994174581618872237495637907110104505479438553464610757084269555671420343872071141591169325520200661572147776887125463167950507360048220398699959783410094489885830860840018395059873024236964775142944218113342771183072754848969669812586961449761406325585071158114831047853737296551673282588393845157272947915992908839104714982885664999208152144845333280228282815006899170239341048788195444666910508422788401094261748058569772359043050262290194755060141717261042899534593740251614517289082033710379477186771361554408755754419397822657314546715472787131220256131047047702927733874977879453451212589535277458393967435209663575601274008566875651785777253085227567076578611717453277772094007080123641055340974619596567008985158879326280552206747160186570424763281202153194117967064950167211437441360586134540199462903963286688854956631072322013419753987918291681449901435212002986984929978387185566690203190946471916384692216512555913464805473696805431667691905156224218944067577499456407092761482750246600466256812182939539826888874869266565527933677014891953493226353609129508898052212472066499954074464509326676758939358083082036578787561554496088463843543215997003711228372716038863005161264094711201609722207058355490938302302322696746888634702436320811923411017403132401275908803681518264470084796981129179052044866686744589461126951583278724180645219877318592108130154765158737133820924622690804306858846126740201803850085292797770902770376637940250608353030955568192979809866527277939133015541387011589663865376920896126070685997094231177292961131366113880527804048473557239221084582478202152789284470356744648533427346396802705130279892735051768555154666374390457523991272923465774104295015504643255226058638999093506996091207128181451622862644902167843605667920286409214207190807601726246167004050204449556896293633646749588850092783561683517667062236066091291680318948695209848391288702597458041576791810423524980833663720167004097143977435416205778019352611774398283621802418046655243537345416846029606225227373081093384059668744906018053279968930961202893346543930926493627921852469724889854173535167156530439814990633971683811652322702058188969991871784720273045340325103453630901319637710379208108503588156792552612429740252350653978677715626962289465405368340524634796215404880536825169189692226426202669419419566131859606706662032250746991823458941445121596453228529729719731386241855882213774308821251781768815994907387926654107526556603668385984015871943407312919968656406983753716135652774859674144049357321369907079881925836200383311234979463426541412620204023341720848484218312153696334499476903315904683303206504439230427437944966110689652171674237040466854172813871397812475695092058609513806364320052349689268353490008270467251151838591939150557151961096093233340074711850633170315993432102900631656793846419063255512873157403542038517276304777127401628296584211789009536324426702667536745047877953238659656995223152667380775935243501980484211244375625882504963179889384215389827206531742734098428685000494445112931005733455763309869738034922812914197117441354395226245801282755537333303361557504918398120939024567345163765309921066019814813018717202633312417371501225747735041857860601709033449888842359635688997810930907259821945966965356658170431433122123945085962468001646594201774046222461950595543383403769469583317191732825240129681718649524270656394063972745942607004805516954873043609030034577969831987267380894468238282500617210221256589848177015712714841823963554554553194641230446550393998001134860834337028594042923291931720928292850699917757439942294861101304671497727521701983087347758634538606224402266453535299086378436912230847990361892522027061700254508004486591296172752769887189430571012916632688613908300579033632651110966648913322117144011802293087684984409422146605594044636116114363442277311458372069259279877177349166311810402575438820823169421821486885066117270028803591106535554347375893694097372397933319343721776326439260999892957125241616613501477823890995238161737312160297879791356168371552134262162732662113774089958345653478141927140969512948442195280676793740774456766257811641178818702730549938648464112771808520660507717630676214629721822882776072905172402649787766923395439497125616292777015667712476953489727062486926387035535165157714493664657619472250167108758817548822171592201179858743194711675683569103840372191555769670389489114769825594569166299217204736184874207262397050923904194776885849395349153065530830555731624617586100864122523740014956613365856791259746027332232147748769477964114188426516971521585566096141649593723518199078929780066577294471717987409509307462077901054735291159271192707057585339659009693148372731706143669723072347438136826855257910048403243079935095104046912046703520304939256149258889853418591417727004124149516882779995746380068433016176954139775195980951975332532735545628898388386224788825712966498775637755240939833386768341382643386755967262820851793850847994341383998281445870719352599690759006199683639519817229768625699966171750797490802170580390447148206512062112725796899728421258767243878442630748774373146069982383279617708071692131674729227572041039805554410340697359326048595612174984794433441287794934385941818055633982476930394596368554062523932516051121371266241079648981275164163474643947835465628459710791039410691210611804291349468006516278796149701526989155436086746781590505691838184854823534157418775998639300576506044716999808608946081611825590275501577432737683520765203229629460146486626525010335842029581958674937199476750870741230869605331191160219085927312895054423076484330322651412285980129930270199476725639728617649554537955375736203261673313801128785234664344752377519586575132438611033634016453477947960136007803229787711314093913437349574719689627941130949285223682897178249022844254881391348496107491444199862305547339416350069714955234137673855253624662285187107420314156358406446485940038321138681307879765149636869407985707601485828468971243352420704977303310987038000102608926903929078105496489579539075977312658134615369234626312698988498741597376639899704543356729422166212009357898336839620324094623299683857023638835409699884184277794010914769499946323026710451518418973436070209125031614436330653460053582208891994380959624968650720928142236044012121064340202524747263229729340623356400413664199321253011918308523465795855522950424285147307000229989448736942084002477361687730392474073826489140778822173247816698621387119957293455914246645387285352202728477214455469881374908927174295278904285726832771475498014255475494738252519680377519785999066124235577500439686205548725224820686217545245648577370269152537085849266005845668322763983178665711386017620725675220853482358444173596245244044178434624692758918514925888924312973297209318050010865828510238148749050370610595789685338396774139303605895778963208015607729860067873752334699022615776018391758608573443922342564151822784510127771480003513020098686267506489489325168708844526302903182827593091272992400820557699496064828270954970836505692662362719017923208217505788749371733641714722216461484553474507842912424008044282785971282419571854812827395660782093699832568727660623714233777811157267974367124895860145819922515772039636015554393721608669088187286967129245577573384089900157440279397299389280629913231184002933871305127553823252180515416964950594640544894058931529037685522695319640589680572228736863476143889233176940402483759796162406089848927816313156058987171942683371985751419439477587180978177693800560029212851580341396164558113738671053053482599400311568119346329089848202324883921438219016493472040645851654364907767794812751416357902801538424967245510356468464137592839156643566126199136736784620106701534396717651024569337468639362664470612892208670687576551118902854807519992182446458768248058625899352232876117559323329693547304794310428582840794976752551141767774004589441795585965122353506714323084262680270618455439364523530393225187936614104372499065235554925717345696478671031959579531593269763299588544072261069685031418860369547444199472870558098897772059941013900170243947274715561591793534407541223175382968561716132096527673285408036748023449402951435894678396893833698910361154362496635147937347338939930029633601121758846538632909363204066436466307924766453200698284579587664919944242474943371914917613971541865262311398084602968371528240656632304348085428658929548443143317850212774425261568205774366849948650909976710535175420345300263831686239341865150733503808141393805770235975834739953310177533538872343914950512773789108560783913817271356699838003199199940981103470517329949467475623850166833396353842224252731006591086539983222659625234391419841632883165910223224545632423292177514165785901107773673182618555972440603229377721952192912690986795661365517669561753002220157993307578886960698459820695199620827633825526222812076712036210644000944840545041894648417019016998687425048080230772912296670175694918913515876847882955328506196579771123215418070523812074824024177512396119294552498926644149116112544037916948482636443284382139543027142805477201781523058757431385136531762170158560240710944620162902851344992387342087332176210201790042900838708957613055653920651914603493607638811416777413837256215668217041582908716686346676365079862846802427817629349935216765728357733686472176310832445938873083997713668858872637358479706121447107452376456471426569217988955813385937782462939724825455570973807420778421102618408090544869956294977809772803226076020345998170076605306107413209544726908677986663211291341798474761052615710186714325057094796261508800421280886331103981267080295634862937653345919009491146789922234982749616900934732194720243869005980303069735751431698450567021345991421202862059598018834113099192107504798025640421157473136026545665054072208274082990214009487059198526519611182494293443254819350766509967170136942090937796158311253084951108125595682912346081183879170062734581327085227468972659272233769090326066238840693844696460439565875490987216207659112503704413310264079014321228413646298998117539829202167560929106879882393557849270923810623134073235530058173786934541016916940773521386374352783958876177033932703477321723897757825270056539612555078733808502652378779381170859904169536960749175846568620235807429188566696619500996413118041477858423802724163028912897350551550399285523724736167745980671174735181103962696262965278938567266320149473035916510068684222645504506209294518686610358885078436015738615913482534553066395414498772483340517187136126697590500828931488179889453041260034696551498423721483314835886856757636518058920407839417508068489738292328877552414283878482082083061099972013626230923466697300091556899948048158517334018618760512579192678479845054521676448453098984495087738400057441000910001180279510220170103703141465013652477057194933445255989545559299428088086968067884882969043625538116571025233993123684205527998259582390320022406990818297564618277825516382177111742629799963449072417708304222610735949865951867333074877661600149706239752902503936512946668814217251670177119617784737733512419790564182530027737805213966153513143593681728958229387009153406915955504692612800148883301967633784046185264372524689287279877205268548530344009256475495691101956895261311905482970197635402211160760238137821795465533805339291117537894402356318608201667432861983210858523823818317916144395474659309957412766948795632033068760925972330679236824645542847173210759133673488343783394053015832454589115810869979525619852769100041568281589925996746302173449265020011511577034808131088156049211334032451324176225370655449826295342927560014189459983618556551832264438393664690778353840136705128719273407496847889788550481506423100045387231633423923061255342419171394793753957545908969776115437795165770871823827174537560343961750100138317685241870621596693006863145474005868717778535805934953883154302104377526122295819171262595958675032462499534812875545510032866228583068458676312344581378988814663145707160857171013027074555239804590322657861659303429600094336788217092053132521502673619144899865916603985060663288490145914877891351861060243457198165815366576678587376504984460843781080818922760158869978451370752785400678733359884383986184210156698559474079008201777406882710593526320573112203269858973527928143802667918641135244918393071130499000805782085402852373444657549659475938529434577440485874956200851594302278586467641233220456097831494611540715326584900843233024181685640210099539013856599926240483792655943210243809314498885913306629634254600532550111227597360060164055523112053628077871138799347453717546936758088970881579385873124571836464687919580039547588121199052027486421919000961270774394209808599376607460275074484569694302912094140118772663920137451571336246524409682003862034726948513498876739053822252799195901516112894647233707432320524478909338674627514667481560472772328536615374979667660866483256898650866444043756673571728635252818388941866350592292967781866247233507615157791051778889671026368664870373448661210538540267807813416151429629796269170960376681070054881218894257571820684240794577468060618468384757089116949752581011958717834772576042841850069838307583909943777423655644433688887792281736174833119372515226297177575913066980102834529668467501343057162090331152738877205877297543697553891576286457291424917584563370751179369045556913543267970055895453611150272819797338304650745936583162332427491931646364503220976208244860988409023632706616308202546852579784955505150069213630549017840372984618734867887699581185670522567758047839651525029418402005205070353932156421570206433401225427590732404790533069916326398420307785342383219631882535043781055965001535244726138538791080926451113533154630033049869850090359957953409767998579407076834648295540200116517710944136824004587046500433750491554675597674811605399004684044386221138827515622906780251048345870760466124264007073632526948264033567556822812417743086827831399323953725671313234924836461764568934195559720315994064819881599466723073346917358334985920914499612395721255328627153605102597926790599206915671134629628447612927689367341380312603679481914616398904840713514257440612298107005994318969719402132461557502503323724912044389817406584139970341350971194890715347119879394808756667235417583253895808628821969121159680763951818458043856842583424597247926330577581049222152147872894587958045916758061130928968418949666452662112011322972678600187207524327448020908494376057778527813871913222154728729192959512196117540506856717154237858813059178901056583103196263899622172805772452090409342306754315800319934816906501404933857564799320146556339290077179909223402989964004160446655686944387929167008496058944829791549756902190104793448291155868020135709679547991372998611023702785591811548826664464803188703078685407508481653827106616070203239236894473098979650587423770695501048397734362878646813473706605682312037648250031995327784191067833330332260826358736674664793133065536897342517295564039737978718360338615212213193930704291997831201744514363954359366667567852375034243710931305964133966700248493083229398706136815674542380098557138544528281715068237186653507210656956610414638392564531814966111684904163520131128723705402580969160912137199648605195136414760724710438057898536132847192308495544296970062402287344460829556079674678731747736539629357598530185070468549600757762741962731334152947409890225197809456622494831524160767345920335928563896520639802223757324956957376638877391616827763117993136481946123161105465980763579821007509749735953784761027149610529680833201390940100760217675041529716975382274497532315294316272771761578325830532901188995742008453748801386694873952193989988258454260307616072867923132909706781501997724879060617346678814633386776997620813348448543298805547315559215926495608516407201699646781972561338001213392420147203931622816445756602536156759803996593697820915698179072159214142024058443389652726800459593799091891075402384577167935895080014581002347550749746560212683928567630600338591394324394263761045058288407120594190761565183030036167980749987960338070893071971903490811788800214042196036993211428666708378874107710250777175025627774679576907159926752267759885899326377777201142757266387667018939539544603542898983863141621028740943882919485400320837725828554475573535983971484252999408595966440630987131449188627330639284993795868752260399801427189292050214747264053567355453358968254685536719046722644229778678719152184856081332922146328335383089695240099695800205311660627576518344639518889145793808557996530846993510212019652616325526241602064229972784869864026579388164963534185590281448686689846550482851869171414446636450921974787525346739051555633101528701834304859721026508404392304036173991318541338781810760253401369302766294532910622046384472899359272945418210916264623952210099726291808500547302504107824319237191926600849111625547129356817107568209626540584558747657146430136874990450614752046121817184236861747657273948850967693300471819092983346618202945199540017526554831436210457108634004776145714982413435901504242729761073638356861734879417651437523779124095642163448510640409136834947966928966352666165975350460965710305739398776344745939494913582048864783209635860601687092941103751654178044063615140090542726446787385122074183754086055720592457103066711273845364890553657813815885648486646177932642122141673615928619517957464297276063640345169303083057930725947186458749763109654049504442708991570336296342340531856869350833806143109151281931967089917118113053157924999581654062946747931177213357653352535394351503424661837948302440722249719548318425033086300036920347939256934868769062620624621868851499350749485734191705692120300511523682070340054306917681422467618919907384927469254851959867498306461091796538220676205412119749203957037638151564728745983182623031655211766969963059307150687494881743675766282932564934937147812982292836537752282940417377595065313450157350921266001263159960061073022384175727518264460266917862284048159186998921402944519867431448383082979183443512945804049787292016564250610791348705785127900717635692898118612537233937451559800069198145851096919141445701190914803344248480131258060190632768644016196506198279017457219099579487684649547340433136568344643095108505071731431720245339149303679204188214291951460359886890251983987175135220703668342438458617264797050750486633121460818080391255569312575568091979237021897898866920418437655838258293833396223183084087849277945618711831880648852293550062792986898530539569590551269195189954029730816274150516103422949390476933122570083560709411163221982954308841043616093037007788884437916540293978672022477516353647201647707429536969306841725269748702636761576449616598965618155630949308827445540318926724899345935844902914327474753003724527559665536804000462843640757711877132580488909527943541931227700811979017684169976088377853650359916342812930387418977922551854757208809201650587973490576066762970460746446420353737106321644410913013759642644335900354252206315105780244363063757613862069820066410286774240532113450463389340450063297338359638261439343174147808805548394021608164273546736100527121953043677486908448317663484080199921845308447762369696901769791764137155892343078806627043839756840274909120330423106821796237944397150076140047441603263715647939761695783890550040619503344314714647161812937849263212639571400774397136700286334523221001899693898663982174766615596786572816032130698564767607428393622089065007453648434577003154324105215236580896270093793218550514399793073659911453486486322611788263699257758883307913788754870911408724206727293829633521530212702789619428676419548031076098121953265565103707151379659460007115148301097489671509778378930334824434754955862955420185673793956092972922101872130207722618809250744360150816208620068150472999388366831337746809084765282174367608633056643141081389495997960138635432090012582376198463561969257898260418049043222778202776583256703388962844493936807537192150486172831172400745724246070144064712090491468790125921750299594936831093325927962710893329802018024384826919890584046361249807833215670038239406049023705940549651478702794848859750432378216719073508372798904488024091062637772116582459188940187205679963904067860604175613808883305528776044717684613051024422924237487970989414109241134649295446405349291462558212289544722584281850463321048588448513267579991197080334192713621038170045877160654590954856560725112506887168664283974171286095406767943533669502738819302966262840665294857011671231989283806009438271212159044876578062448191649453692209724712919821921347794968113582968063192556494823327525384795608571933812108958854325720111539938370149467074903388246351330362217841351250614576934558768718672751782462891509611040243374102853707232260499790315183276589001198309649734705272885405085716040143328764965408496733684910206435759243904437084615162069791905575032271186426204937810078080665561575701011534538773491574347773725600128729854502827010993801675227074728647106861472312164796117757488205616996138858788917655957921557925435091362926260591525462300382702988720043761694876016518633825913186329715429068674138662743108585196399572804863741614666719528016448013959801147724969827108142323245022342653361959403682951137180668543221864094259326786919833207657111025991223552805970691368052292454481320690780802344760424646213997294970299229089063710678745396498715402587949938339401641274515351477480977986098463670517198751279564587984167349291512045714501740423741068679688601924567813765703280615845826861745931399642357509004415130788956791771296555042206214680871684076401802263540984236505387396041817647302929649522236403857494380926829258575257533202535837954962121991432504463821505343529055653583697620708267069100668455646065295603860782892444021190709208185525068163072367022536695719583700079990531025798266500614279125423784990911418353575799198582055914452487434222916327791250427020104526362295817715489505376062532908903440484006476638851839716041496502543810049227811506524694549620214139316730613824225296376192514555493517099827012512612944279831654625716452249259591100725002741507489741574269873438252243055158551719391138058896207272069720859577755684104479869076214689616286445388577668823089907665108788196784973957281500338762429909941603841211284818156058013539645617997604767420779870356827432852182583776390605356466681077916376392184037999033115926431423661918803492279201476899763850672185918056217081599910665252870574246162137784614028062033697964935111416804672747283065596561746712954008952679536246242722047167891773763237829412409775129617651249976625611889249724575264253823020930717735518584872897257817571223018275909831718129546065651389369554878602120044199090677304547946285082418863733099042235498260740681590654732228605694874160889145772266000164114683446722340504612380444677473321064337531963379837736430003626120895462622510943835694141134389622147651674736872462526214593226639815480263720747771478181587829696887973077054044018343309411635765818075227707210147654836813860998071268115379048823839717969526200045856332474678618158314650382736169110301681103034511641220262716995864832040372763128288420907151141179459096866772211947606893555265647589031441165819035730760126734602486870602935363736666387001709119887984165931419576347464408618310461048976672184763199186888363049103629004966618346517850442410048386969503369611405029612372117342211175969969411870842654906540946698965558449332776542277257553645325036810410481721011056903105945330507704854162824284400413929204849644947980792794192711435291081614942337507374993829847432228436191920890611724288240803381104762683558933192652523924051466342013349679289092907820138404923495646140250160710872362411897028519563740722675656252939967047515250915818850653708168251180991892837195264538045216979429905116219738150237720454901458635667162362933044180032081138488667081460489917646280090477701224549012263998124280623766902272719672503676237931830798271555129340990483116272428886452352708080487585596123130417877838884342449051837173297942798285428639456059840964820813559406432800223481584393684199939369038377752122132104187612057224837823989945684510312290467997009267953953767176269550889060210021586765861404374986207480469673930518261349705453747625494097287393917842348731463128582004255300800760218090490913937270033105147893842819976272724058954491137566710807316753873485939364572443630355287834254165806561945328318401555896025653156094166782772469578000959222071701901807590199736085171624603536602250140933913379997406833666017369416971975858231560988117008821489071948731030600503537009856566787023757536186171046691896814187716060111333785239233684846908970110487360860520831945802849728611615588677626783169596384847024926589674530837404027195792482982405412096846508252794407465915659626241634009766702972173735656002633983339888968291617922849442805652488770740372520176631967589313247365043545463394509547027033921253588924671623569486375458626308158305355582306591960370628586019952048173975445414318687547016019342225087903182768965723104558076899531769366567703027211441723584472316403107906897338745946305084825411948814204829838313771639712884076504238254550560140702427540588051552701220213518644970233938025858249013534186429452900693953558988101368492050107542490689815366511378402124660004947250242362265734896348182997247760698849664333359155522903186185583468419106493712272745109459838762903952617206596377249039120392789248467332517844276876528519847340221324193981098888139613240789719808203616218089398186545305751426874573855023698629392227180441451670555103580776397418338660885970835616108839566631846590977730674271728364408907536753946272211400655760088530973748556350505097646831942428785627426378229741228558940416062075151275408742381483303424946575173722135393221243969054611487393981413811539082832230910463493634117948345141002025933024882783811064878131208997284013075662700948540850617568087906082198566668164616397457936295495429082141935543483232330068458110804315723117931690855228694043204393947152116236838783002797190883688364453128781745016333975804252695638445456903197148365687830790005264407195294215720780158442833954010512076474993325903576481643895446087828599184114172005249183732723086937974124640069614589600922126874889999072197564737984409912507528390829639503644969633535385331564506352832118320656281907740345268430726434335862383422063580662914371908678428327497331072910642407875798988198116055815200554897528577080700413917956357707022775405980461483006359690262397694213855375396073170476685759758164233361574568640346852948787658520101360769524229767528977811527649026371838759894318981361878363434812170740963575781115232578847569435192869509677004185978944041761862396915948490222854501702103727939146853822983230386016213846761351717688050312701287981407571432162535876624730340286883534668531219776217887964119937058219876574639586187075540164425905181881477149769783564402958603796058708790084810841836363563333592424690287585364901961401687963554864562730568761874228559984461342436632883106344265043679492397503561525600190847595223864060136824947701023610970842027569772930989170088326077892091213307628314566578098091151460042728686391705903835341460511005705168126862143430262776818287286459432251433972547718237896765128782851118143097431283934892789676182928376497964620549234928146225626190409379757949381369001019715783892274916111678410496142724324801905985956826040348250201880241945510709051714636927161465053183715298359257141887137010299044979802099847049817963066217255976140000352350049649402189469344888358773396889178948514690979879333989179993714576102415304964639452427554741785076630184133937933682060983889229925513414870553596361290621192644067224532024913387849975406074039869910352448790987071239641161570814583036287662380258215158960316490952670731658886579399842162139879526876425206711331987467440744544981026101314145364790467005231901177736164051096080507577888311287211044446229367419046171087345532846029087912934042639679916326786312888517495993682007736382759036772649562395031051398248194042817644783694544265708142660281335771228395707922237371021631022968568076804305282092922730596100358515184097267839249276648439211304118719764306882364666830029998928112385962631082198581883926522473198103160098265912009098711507257964756646749094694627162846222329040967075494126991541998535017686178287038262022945175883200261289124432968665225416575355906857547841403296907625405848590061031769233102776347769387178313079217489922690298927691419382339622450052407784180633451792828993034608344944751632552240640495616628132920579647106720178844352438062494773117342505272206021282035247403142539839606196815631761300197322035724760385620982139097197618877314623949783957900251032434878406978405415299196048349797160563225138934721486251466119106320421590739086776015473420823481862892298589408849540030643408008697053073985092232707895098255468528117356002346431525612322492226695963196677586382139456593829545534139365739240124493850482049709805865057391916906894641724091558881682463369248388136804551803159131232101262526178783186212921269365501313932864660278919383393543270739510243356870910272036609036176370217660135887677033702606334351109503590824765261471912428292065319975056432692136428257774239837071402704961585067300977721766810306233747279927902365292817396250667179670167234600907345838857995912992486654403475462235882627445513384253919154288562324243124976994139260533720011204043761708759790304960929049026462974761557723854474585793744429059887235575404561677222345767487305866557489298464495128416101030663021554602266617550546887145265469148997979529406341359472347174095164805290941255696742000222031838044996969389460263930505088569592606254643481487053840773355519158916232273717703483200290867666232456278396850367248022908717434055263942851328446480918067040305349209367428309574440066853945101417973812596024579217317181605070245572505788066804317108199439395155809532503574522760220774928547796913419840040358012548408318223327271741318848286426596015949560713227565659566805993711787117505111867377639258247490566121314514566894955848002981153240425947152869381792743460035518188573904899171370434805824367703248254081105929823923794806518055497156763484232954084424730874403849731945282094910762568356809210853379534584264663368246491896687200052956448805356418359405649118251901573414979267705489937032025683490563087840765726229216003644418136642353058573560109232082764713825774710996155416565655025087634545574635816047245693238637923302491489770880642949419013500260258171984749449192191086222706963455986303940130549445815087589254851283216176829109577412036640612145243643991225257460554766489074191556054951087450581183572169020017201399920459699403215344094794824929645030060303877578557754298445331057109585322868039267290094014162621170868431779380133206090236012384702897820107347062047364225117678056210394729627205185014355691643787598096500631433315508374342735168826249022418550428929362959716383722921855925775506228964059327788266324293518290982808428425472708170937598159213093800658833751702379936896153669045910764843066861682718509020043100301052467736680488095997659498507809922968921513438743318090235916740765796235692001653015127828318519690562767770969174890890938361369327977136588468502870166834077694677583503321262832364557548991298365347388528883237615937635133760709411778749369927624034064023946709673174713495085625020800294459940819669449461604748361004200025333803533945971755258697270096141157824181126790292753159179300070764089075313230200494374333104826154788359220740251421807821248621599376133325496743439195440903675193082516973345673626931363427048447404842217149091916876480208771508718734125467380295606729677550170110534583244753765655216296573808937440988674787711798485701272237329066844740501670662455716351259114552558973857930622662870943451961516753121562765878453080669267267627883132162914427720512412466547303388848729643171203917090807013197707030822905020745357681073538248903168019621167727644471152795048796105332410367624807462950565533199474590348004919590040501682486188532756477489960807785885493890608577836596267874601291433233886129035426497037091947400492242194453943773596941320249912031100728962023894311166774566370680355039197250580422338174633094727115137717448793622697768698753394287087754835706102089175826324713014852643165270091027182675530088621320359032972476055939639300586507128723759526230250693042494348136267860138856133812078826682591507442204696736862497966730266771062547599367247418121148516255288002001085024239346752072294587229960598033344551797777104420884811073245255066765181761200103795686403855183581164350699003752866327011871916262376152035446260254982293771920803185619295309890731738780870604501278741060688890400739666133257685954308375821100342987990307623221253501716152103655395868546928902238750943084717063167418922138661977652521214222394132322848764763609763013473466038833364486198926531982407841733503825668521967045510345181083044158349479283067239225709442089792930697149322388281499883262576151372942883893744930428033849534261467285298374715249850970373160057140226554068514002302576699136495520231152316124965314510638757635570548722686783169997012357720945811846787793144620714657573317828779295097002202111265580637154492708060051399257539371808187146850280922087847054412300944075024986813100184411614152700417488020169764316661869871739917302287251589684864973267913156341146326587913135651260352883735281482347179675118313800109137711486967687286413033920738399157854521868475811564048775159482629927243901489787518223924258235499762069134277138766611019433242633564127176247861697978086811321446659278383915037858120310044591664434245778456518728323256275003876970096157852883413257475777935118780401140152835942647912621489074568177850150075796421125930949060746025335579832337269554969561277510752322457891045950962633575090727730544009906616411701266626040949906873262871825942314847175087133839817982660486735886366426955406169305429030628690872424742671983518443213140715949164977087637722624265603810951894574678440058217944960903382173039499097555852675869879582458293489527467193571097089165754573482499781522594340518969567669133218864791864705013782439767822543635832301616254804068698540443215545390930564993402920934871992489569514510048343564212901762546816592209354463711565396551152444892099397094201334995184476428465472318906529022759754224791282296938200744908981234495562734939339688502682500495682692185790113306728913638657498844059548770625521905354642685922213535660079145147314813279768424246035067923394867670403731332875949460906380103497850737159682965479096977049415901033879491763859338924060065793460995014708866283173055536447103545418563129628896833228315653700426945356295623984066290037922388031854919137898784061860076934571691391735472328981983615511022668037859195829767440132711225556917735855441051100962145654071995672999465972617324380361757864062571580135148099377243593590492023510138736529707690603630082043056546114866605717432496360717982106261933570803421810748380908412438211556528421091706688449158625558666003754328202265883462532684955642627523538753964468143996573664491752771735221925796694266858249780860568844847027475644127070549915531475523867722737332127175141733002021036110653366655907184158753903639063181042529845114882577898079195126340782340159104948178932851583979777594007793772600874296589866453094926787116583858908001538840480859987599124781692529585509258636004002523713660195948394104407658035345265983564465349263133712565832315106262592892399282180992423060282416307394572811850148788159359774990112315046319641078884941085589199860515841198309842672542589695885368458423371573778000693768151523780523081582762552975549019282101945087174035990459661566740121118764417525325661341929753609888637970073149527712401414844175284992822000673590567427427293457362636042756464586330681287933894417780685754984564515022788770022691536541820178602632379927685094566601215968375584827871920926043951953865954346875222005951346516814754552230470689717703945267521520477607173057458467601644613806411122817827890453154976070795902181531111930001916098818238101240135215992984345236797049597927931814843472030903092178156696391193640740920452269273219771414645945272769219852219599297301353835590012693762046644952180676072930580896039723172485654591777400594555341376081229227841687712159150355428234526364771827758291755203998385155127742032866953525871224829401580157241099707262224611593103565299301873012876114541715652035334755247555253901831677554112673241264023113993699319156801342012302574877667550536147652154447204216792232617004281320344564996050056297944796225786599065399895466734982492483910208637201188711424507820465637841634017732240846972143962670955281825250972340606447241200437575250846641636568004617855452207081184934950674023124138306915138371836242271589483591783002240733906708592565830853495369284457583475515991926759279432640369939224545646816669355446470581344085174780550001225269253167281291940378346074118103195049605156185660931708606473202065053473206315259592445489535519666219748040724139362507594879612246629930528632966533827413508152357310299190192548170412092399683549156741488097266560959596843950754311120337071495150339523430133737832056011191158273625412291183307263963784973846099795288195404588468682396280131714390302769627785186534279808508657104201325242630509217223643130416291380687723819967337799545542313900819134487821831011768273345872863781053083382561798197634441258746226942107416517746067958765480985546415478222484352862884905270417826958802717870500666105511257606358053109125303676917686751328044551964534101427493946997236457624640777722436976497650135905505638186791236562206837862617667704477368416386372769804324128887089432046613429159768684727114722963054499122018271343398312298087020179110850567554718243139415294801843421031730259558470192943089599427343465676697728328149034871244037656041188361624121815497866683229007582351848890709832068586883868462171140182732763161462883135587043607349993525410796730784934970689900120401094521086844561644155153393168922052845726677772336227725160166757025316755116375065770117140184255019952106540081792036112609816772832843418333660800755016292221992854882842079220224924489878839028618632881521194329749781319235263327733156774030237956413076370157169530647076129122183649941706150128593657791626073679905980544420522074377392708245099012504070447601562999125803257269324153471310879595795009388436211551978787086386434523231161659533367043073460579100240157708551105467156402168418795244331600564439702536806914495854461870691248942819495437563425329846975451102538996618184901832917291228105382381839538293250423445846113711354562152738851438387358820949728772520199295238602829067107197859746249715567334828790254383519063752639746897353053251795432598364874368233822063749779392424488554990548393419763984402702467752715560827463277983665121072062157676122665176106341648334093746195472079237119648187143023861350598529582586331580950194838411411482292139933430234599294815265720876344412693639648239517122985668082652786104200729300784915108182283945335428924764443339778296470423546923292151043062286040872649754323414142783717582807479276864760623484505176740562795230859551542604046996036488813053436556540166861747568869557276518646637636745507095139051792645547710473775046556780321320949482543710990968585575981190318775065104954649135828635582920433529615860455655977623180070050574606097591662966063919793061844126916537079160157376995502277676847238100384949913774812371761413282629832206496809249222530266653552332823514771403400267591311647368348682047030496231592632022844410545311799135037365733730652050926890215586826070301627293615277290035565749202741440646717610094495997663977447140673885837674347825081639440742374609142018775383561980350177488723201887528199250650788861277981820603099915706152307968746096483809075196303433389754643025961647565149335384111638323226329606864388717405186453596414554296271813255365906799155641651509554316634017281125769231525804477577408145975192246656242692050266434449054652247577393332899510576929696776921653946140974269512858876936261972437100593622669533393790977537526568487183862459643047894904410287119971187868154836492780543418485958170210680054478207020708721666270544340938767530193041123540971594410474848601241010496651884788802159178980811993358733515421894608238004897741863310293390548138245268966017982729929687345618588775097022051221342253441873148068696002300038624034337375459389381432244483858470060968323551951895433939032154389547903746344651025507626873043852099679764771572843621836433349621210583498823991160451587811186102637277346861888915156160163163897576597252822285102266890243189024492469469475267465512298591406195558814165292945521605909061567865725370639985521093245004684166836404557966529306184302503268622245644093203888188954903972199235844288873678558756286929065846901329079792446863059884327283812888242235410343500139825896909602178985231322030454666678877532931752664703967690034654807466927185860874110500041500130837086400228190059359714222593347725338822784405338827091236794846529303089262670099801068700091811085329630216416339858782269867152869789162566495182970179513201841188551817929452379309412869225484334395870165034313599169696740131036752407820718936588407637982266708393307271657788666429783637394635103616505126453647444247562887032055173654627406338355481561499931345346787755570772645872281242302852670110826227252314145051318815440872574740924899696968625520807867211684570179006466798508362485845039471937161978326111846792283208276158082543693802707382374996855519698716764722212411350850215765264359425741688659046983299657932440330529137436325635432897706419272445114964968358828226744132605137088122462325474571792157719834724953453605954459802386814796840247950715304271768412542461165803651452567109105713518859304795296002626783316274856314721150721913156033251013812805594987541060283390638628118309082614433181958009229415358738315068877682716076967280338267628215761646416312815750833218350257873609646292097078405225519526594168003684042507315405021609979357877326124789559541552394243682394833785070803414848332508200833721082427103004530856973006326265003954898400487495459530428640150877813983254052057775755760200943040468856621974646432011602661424963013397168584060186505026061139905450607811554832458319450459573159354676355589949481856423114657729133893312917800057432334597878188220679346736984656825635244359065138085155954368672673010907752660731898315927841160709943632776356901168976800244586794777177484379256139861913346012300737101692564782870468960667449831282528850101500228767949731425849374959263834619984031352828913523027370875277442023314725474641754133595248683081531305397108704677776581557846104715292927675259024641540884600578675237360390770372844990420519969216922489658159350584055104283924948848561654320073477969753290193822536694394288874757416961930592276818751844682694988731445483769771504915366485238810662407273171377925031510888559973520521500317149778448196478952800701321256350110760000642661618827526464109758042102886963207009261628404533883933970730300143402699497348531584671563867200381953500925101653333809178811155120147657411584151601293302664620859814525846192535815798344745212126557418590787481723641318895264263210982963651283369981196104962115966046627137618631864097167072088281497625915837837128803586709448660073467614726578732388632027894799115946166663283116735078507234178406962135413713404954737143420186275351177737724506586716025770337486083990848712662395302016952056987828107211372564692367507289571492246423280995847653132949050376830013286067061004725548389512250735059143984851954793147235176018277875359849412203454392019755605488875644462162355209644014984163588720293075646547103549028964714741056029548655303084071640729313588421767705093445010116954222133312955254112930527630658714515138819154524744052074316699400274974520346033701613693191559020768947472186299913447597112747867263924143451770199592489097943187662144450686031814390127688293941601161419519250183625420629101672728142157078030437135434997279085129741106239486270430577468807008909018591219198481431772225161225393891719233912624741694698405686277494243578748371665427250322329151384645768515927515821502949415574735685974350162193171319677039268174337106847175474465614387186497914126969605326192014502027341827407761300054351655822301097293544081412928598069524540244766311105474638973934316359570327067396642829043221680262661638200455507279147581168002283213946091531507437803331958474059771003102422504024780893453159688615786720073618575262942956344337370073281555345320108244348576766430509200152014605096028618402000732119116343808779137721871509250525407260153177145252586199987930228894216007090324603894768206299861189482097436053566385097963681614730357176327542557384929804543327192304174003997650818275239227755830293726974862946955361502358904694584693403429524537085668692254045498878992500392485385930727456398096655548466261322878301556144052003638151120342811880121841077055634358566918126021488067695172293849285460780118164332728315430075362350748485716929659662994987084296023692637101027170483305548398399622416109939172531087783662844479152018119905006963887964603993247435035970662833493055272076018849711176046682360410923776931587981182370905214722014821480116594332810176093124316117115022700916067126034145989655751920266534090813244126560135245961737212471700295901714663422105505221623187779086953095312533609956308022467026080796640285489103885617215457105827442199724146299588122986357607917472266896151114302885921268988632243556647508083194252442316189248347725296264205184108404352600673186369797366437423638602148347500916956552509196172026947326257861348608255443276074516164033509976436900406085370978869740501878359989501632163996531997187326739313399490279789433448017354388718183214482701172572106725817835572390289764004702918301380790981209161283178847697591549536006732291746836702278705450038573897727608056569656754538317997491191544632055433941075577562149510554450172239410847153800982499977790667323575059807140411429787837663023405606352337281285270186951904035013326438732334254932672179650996055873419545791963433783978658928687405429396325025464776081822475991240391037772546337974377970476869911974039967115887455748883574727371337215345772363234901918246675049704674905809540345644641401122424462299428623691258344033717920562181821914043106879233285699697115498590929220569910603418548257568691441789070220362366860624998995893468625660081320068281432022092940335507491206322844317732126160425246329811638334144415702879232982356097284808972572043434656242077095269236472476170101316609577987875917474162361856866962653938963489726631972728846996596521087322884708414021175838990040100130022809765087461586985300642810163300434677432785447600982398907179792385833971889673049208864457600690558081781426744512238326118919069276340799377754702881666307718856112140978115991103744750914936777804988451841062870448969924637039513591163409905205681018510202458554414260985743497020591943989239569109083490964531289756956142113476876285485536279809282504041377748695956329848665721604956035219688183526938504927298105159395608169976295434930782185090078574349506117402752603052787945781593702010677682246454469163370066423313887777613202786186738306991007275878998875292851850926921576597833239455394332368098582746777732278727591458850862401487845803397369403336197433780042093417734721934814462569200981347584466993455144940668068125596866834665804430931142760288047588837423026274127554280805028853482619588848564042513048353391380334974550730787759208188149959790728889629406522447627036061156457508760306134840521143434092395389138566882310810141859163033676578608400900471473622661146541122609713814057564958290264368870813586100148923815795224894886597668936382136779405981323482753225759117624877455981217532332845661129168259298072377374467871285354319169138369188134084878125546315460259261978600932453040565507439419847241067519980617880968014870357138557888940407280834991726500170291840079810481057247065030174092644356337335219568348888747069050188633567136728753767058969797646914427708751165328276549401146398238436013776955497831060194577454749871446572297620805914519666899784803684494664906444536783078744040096963845554389158133724086721611973533605794176349469886463730738712180794588154110083570150939367864667317406007785701658138829004625124205138000539486388849630612719123837207543181046131820238052367044321282540784676679979246825302233250004206040097058529141692398498176869104421097541897948189694133403992877451827482985493499695704790303394439770092765997856336994906677193723861548346810050276282492901615016182231090915772435952127947377248132190013638555923787098532000417081544868022571981691007916161976989705011362296805789528636100319860163772462296385768567375378275434536998547143014358401427742961078764900747929864827312762211125535304572041177565541321708298419846203565373638632664267730297539988163099318862020421322174190307400836902516977422322593545655296458082851487547935341898586816865311282304178037242829690270757138341442841097920945211353789662523022304736920189982315589187886269233361955486958927420072892687024308421293338587409925225378109469221312233220651490876102209997271890208094462763858356846292854136434272121393015259067890400952618848267088081987924644281627147297851413769639802969438474747954241595642751353521071681271556025390671585796878122355286290286502532429755718294922758746350426707503248406831661614258963779654446419790213733830314595456349812358758775301937904294749969136040924820254986860206276507479984057584924391645451517019083964465767876978393662449585940824039890340206313525563827573870622951948314799748404529318221914014379700614256331021283877563591529489624911047222620451149173600794873672483556274845547056939837371414936210154055328201873216659660325018298003481188439237466338313109597799640788274601187241697666959296049035740835249310461553407219716053150025119152759417045252265729059420708710208571597062921397985702688355145373994248900416286195918013671119865008456774086436749311090908401626805628446116587375567632240009225792710543649798012161787696222236927439798070293173385914614998797799921871156676814960908272882584266624339690735817875375091292120794159662193666161644380136531666154925169475748292651803087663628464573088249780123034707904954609941360840097093136770927710807442781889350691345051573831956957249730547665630354255446226624347294316992597847982238647619530774581798178142243379110413777973840439705794540934371262633921829855861436583924621328456001518556098856970377712071223941394900106004150463428726377724346718348868993206297861094157717699052863693251649707648530186456656916666163450020325858865297608651523022000791785773988507738983486899706543792285212545144050241711600874633560994531011007231942230238571185723847905322463028788908782844751753638186763901047540937846388416022652887124309542955172882308319852963266911401347655683923154171120839865974477796434578694997342714481946932970042079760330949579724403653675021227627354471751332084478721055891594613271171981709954318496310795384815042874325360746287374622042156105045525174771413706965027415594787325098814698551130255765103798800479394024318293410630561475249271072737001189955964227941502561247829949147251604221282290290774107020211150644635170521672410585266950583959206341515706821994523342104219700483155299894353846119380980505065140880733195833757591413445022507320645693883268984715060150663160778399828686766311620061045249559774960310671753535360178174062515482600488451953361179450111865753870648794133242874727203435554376599417576931650421780876958653345998423488656715040062437842795701758703608156029005597204766013959150975018825733712196895108838576445134006336599144954122968267618580387083962740670647676540361056994071163439699424681067278688015993868967904516140845667391328592247887738259183405516471977004399727071591809932295224861262658454786825444013437444974197587262980697107278974442627533358406551509945129297556875496380527187210920242044935536798481614149130231662530444532393682976170450091715479872602291448219839358258469767099820774256742505995333517482445591816919382996223918791859337262821403130710142309958512742549154524346170282286536789053009017197167206331327990197162955887708228405100025835870677106409230746085816324698445192080000116186819601302467742636685868062440000432348727694716949197057663156498983958295238368146594015874821837750556561757679938747076300664868371410829592366463631426042207409702511665757812667471918190076523742884925809993231432427115743208225270510372657860931366037342275000042843766898920490473100222936209273438491858032175516268029434700409613427295915935707211281158680359193215073208113293648021749581114496680714798834855830621695693474811821516394310976283722690133412944063003174356962290418532002202715348036973297016018116275950170468795228719863963397241888164472174306749336937127239474131362642347876832085747578590699963317256566480258526216038946383346661837092308874191917925172765313319412280627934990534835811375854902450455082149729561712915869379198594974882358331428450829498885138082953392690901455126976884685809829356992559002501764162716138669339543410146040797016201931680057605133028940838616889943375065655963787447330816772422410450118369579218589046339607548994767923826006278614480675224784016615506673982107910761384377236632892118472283689466983833969020352936450275275218261312931556875771111987617305049924873140845754332790443676576463122386028949642217462714551357943845359456345310399912300155300779383234615013209863666780845104758587603611084515797626799539584991390984104549425159899241916076729352550453679245498654227942354607457671309883107699410696360985386891448288157229022480044806634684489852523393981086071442022749339651406960225669076298837854644192622470978867858951820161967567263212758438731267445662753852586311264117205912049003630192379504557838014929108112490619052609268891470653029646016512211844779886415863738017227508535599079116843046526747813223848121679049488725116809275612102446241679035965079651466667990708738460232483549425113116049073268536899724235107771162793162808583803891900280118534487564468915698006919554886595834753511393119656711811327030712551502156488600112140206282723008541571822621984675075742638163782533135405725331444004098082304857902169832149041272044438556523833418535677373454033680132502838588815580092217772839482483689205609287988261735878065283157296468357722772704327465345141316921359102451726920706486593184452118358394945717588242101707724603068012615914181301933319273718274729333784038538511821852749524770790478234608957156201256257128607810806842800045083306394658762599953387548041704606247368934405768960121893414128873426705016757669462433347769884067446330858550582700135640279975774932427059971362161181914828223530446129292070820917175327855715061872256144885874650314684742838239237964569766279896380307521226271512085751865658037578532296248522908797053470161058532678229036853461656952667299873742531708058420708997512847293146005105667512381315018115080528824347575709797017175257762499005443853949722471927093704546339865001784890859032369115129288455418518442731556429181974106652560199187111699541909264671643246377364835438456420541204360986166869093583595134353634048039867836931104636435566862148918076349265781936847010201835649104088100341844942041292198061177845834822603160605750983389182571454559263862301126318220105733243850658956243302666655405175363206785397642841426063343090225628978814066659530253254464633755550144176684375996735878954884834313427099838217138685159903022732431330918253961878844053098173452656038122019261382710377511373203558406619585859865853247102928991380112576010907321485338740478053615499978783512250718912164332299576819591102635475281312030773777058891866896670878786215505207154075982195745762674257237796918066932347700810830980420371390848994048343465363925146265609941903317796164817253657913454942250286824333877664458823261048045542618402347395331971551054512869496336730429378818381384681190574529866381082711220954576918694722253896436058393090432504883740087013621862084327755754050584767891576039968839129966922335343977493459855629916924988539202285287265909632644611766824681154207705825896437406376011419528529108235014683598939422377110347006531304977052476075626957969724311914536644050147243416529882577778950787650955394578910460292047674674082897012953404705572038084534478815201450099559471582013420670193828442081338942027679402901012521795403141670709942426813655525115577103101079072506705976375958752617798143092909646346690216817827903310401826246013786145734020678621633016764174286094070625454161297685271790463276641750851091101115421390041962950027574874172594633940267411963685973192153896238441444401234224335597761075276440730317063639150536957815721260303053848919465131441582231261755925743930232113940845641581412802332832382245482709117953069458306404968665481079385420172868617376215444528858223179306277148992861493290737225458477339027687871161264315879365250839730162289315051754310195587629625795449056558896644263583594369570512420068380987798022358903094002717179042185815321748089529031640933825306344120751948016890454498508337618812007071136239409914758486056790565150870819932078324013340601450723336320296206021759465409849832493213124050783770031047031724690610482399065877112342091046283777324329884606141832334324591198019186854806589328810356390907348430309494846015278863736986017458051100983622752083592389434071079605697235163656465511441925876598938775626876191895453111742688877678479128843864258564736376726807521584491856392152903051814413126855969343290087873068383773792863958372244458844211859947544603317596045854471695484110252501629334825746181982216337601424816362278356330398188732315870544852226809226817328277776401359330315752132821321005590237431932300500863206552897193584597314381171820296144064032058401535499937471971072933569713972031811181835930801104872652139604680128014924465272402719738863264710169278729093564362858247234169876112926565892210286337330553660313535771911240629525230803921675743294650664531107959265005488973867759997116993417331584091950271969374755693530013494199035168164642639146228462555650399935727418601796256039025384494255400379430943722780746294129851849127197527675449111363560060685550284842496021320235517310145317475958174929829973693104954470480018821299817843911845465087770764866303468177259344524594241682718659213675603024895002395928530964742308338132225774057441828998228769584436856366905461580414956764074402281905488299657841505640509289337473380759051099516250203400770716132675803193881077082745678457022378013813369883712460044631500192511277013606631069564263249834203242634618218729860500771933899844437012072924234998721491600104791197401610745260014784274271306522740592015563953696794515895039683390552267050420516592113970098850708901734925371298889021642763790051195131621984403597109640689095890144025081140956062551759966211272635163266423545758510008141625572202750700014148435643536928200424821617687590712876544888961888586856647045069697690626657934271387718689947997039927164312013261510962258126300793324848026351297378888809329292065369825081164774773703756461232986326402287013442596689250585596108585199406617421431668051412194548429570266742743708083989201808581315297446979473373387627032294945564378343275321633284744551015148253192403856300228392970891593598544943472716326749924555364868210766420213342642515668894734947860487651776616613391562830642429829515339311877301403792098273660276362658171817428518755613006471465877456933302576024009990753601708521467288738172436539914807570124332436634594414840028754077771777178814156593008824356128440922982010105117860886397906623131685368693141276222656581400329785173212430958156336633455516079181602396502949367253040193975027586268564120958816157245036009861301373849320938852016323976113498886599323324948962407961482853789031671751431524102500151583317465878297087349025787433502045108566107171237763494300927063671457907652337155517073172982515722115573023547848069341086166548849646523690080031857610823493752257515210786310407224956961509517454182822242612740287208308092602391045363940520160299999064243645163718216883935707702963703974671573461911412828256419417470548301044927608800611927301200509114476183828277284797862067791109817252758486121682316915669387428248793205211361616954457432460506961417701528163178116793749118163313034229414763463651048700682051063843724759718622350271130733670251203829607643582746881459531488039340941489094191547137548030622735814437377088282406590796957131428834727278059862986795661931300888474341280526031031450871156123154223091769178773492739206857104558606663002285170751227082184780406289749286112474255675283471410084006694250093023391294734687731542070645116644900616657211418260876445240760873527332417875330574087141451459996383936332126346017820742143318410984023023328825089644012462045546931916132632993630630993368845179630104251767052234796728178816347851003752036701752836468607421582790109192802471292459924793400565788974517711350432577823371512985962357532960203948329040919663230427524558734808634989519393180805109480937058680353693313766930467862331199473058328609537572065154064703578963842753103094501186636637560361443907882836556781617718740385236692429622358537683995570671798223207402168032683242450158708856446069672300311193189052193015070244096879284901300816458981353216390581085124868232417188759587835419787127633350422927245371308615438826167121033403823403985354346666476864369903951000390104827467386233788361333131902225894979276579789732761045047835135281864606308923029642638237472861560689729725153367825894321034991861352932681811613037667184141160733031802125616573274140045091966238062066208790750380944215069671046373542402687766128630203309403204008041803151801087518453671366927156754547307296877908767802979042533188372991195164649533073975216979474124900018144427419479603145165233543458693668897647476944608429135600163790139792155103370959271360667006374956465673813179386860522775358721240598254982401403890302054840886322819954878243398565900866760370948660770628217253755100747018472969736151737918520392916436954644382765932043785748219141485738286282198891761708311343033784868247528929084563102146342044109732583971132074256584726360336888029054299534873382727493007617394512540815128825215748540559808949811611590837581490274996666558318216751948557479193709390521127316566990080047472076334969903777592617757173060177540261316221942095027478873492153375636217875462771417785808890225916427444947723274327753639100017324024319094964630171820830046086265039024837750267312079057747890648242222630232196149773323760969908607786308633740924762362132764346736880115309224008627330000218837060051115801339981173527192271938908497712302572979899597483078115095006959728857586115206829126766035708034930996588101480696874838278446186643718511900255957010623826459045209253362815261725415821858607915875028712554644822494468441680630889070552898870861936822125083498819486437722783629556404341318596210091481152307860615498318426318436030104909806035769221348710890095744708151626251090275191323152359045602148615575557685105391336714166254956496243787757149687695487304288957567079362460261346449426778242513640587555681458024461518788121936333525342887866331564198302388745230755193289883169483933170847720391676428926816642270387519398189962108506574912824024183181090361964214014258303561494624399410643318416517932053271957916439165097479737515254833015612299634513781840459563863759309434296087792814232470524548952057150098757382669455686587435754506104929767107792641601356500838206064311752938868581177513321384982671595892563091403413130626978631222603007820094734349185291530645593325582815179150132616440691958548037393290286273702169434377688997569433157703358682249169275372358123975687494284235498828468427959389363709592544908328850680097692876309287891693948875211062311279125725464073711781129996369405249411961190326610911888817041938008478505919740292037602436423962860385919024163164172460382590423624056823565488575186393333820468258311429536609908981154156078733149860296360367140634350151118959867644766230775320831564543938830791454772867241813854699841502039893827646417390081391558516631943750827936954155790271931710568961481372461881467147019450111366521854370073876799410688974792084949184741568575963952224282649475963484684046788785193097672225379521182087863218590528968947263395283605611305685179876305752384881705053400498749066862878558486934526797050662155922318193042291954501887126945168826574584913300353424289001204240283142361287162854053779435101605052703823263031339718721834597237034411981072873364639652905169134773851021218306885759033162599493467351044054499882605743567499062397129494316563282489134616581971444564327619796501444849624545088228959695743927127225070368230864152211484062044352786622280785481947271487804994484885910969942216746486762458334463636273694983049570215814485678039747103545357992273689589986232824214914193380328246508042860782982973208270721168141107758057638300799857994736938960824898600242921265421389951238919847643850076548456726715661008922238374430999777131353362910730178800281939952359173360841605396133515827235929505577373650069012801367698884453306936419021885315920249329229088472280014786466864767691445781358163294218817842872799651367548845526818881436867802755297562674527752695035960830410479576251409565142294825141194629425593228721823390227547840672707102934986816126910596641815201093510577567138467360366471992857299976275744085599156167065572876822936285255036614260204328179010236230253248706695986310008826208098942850231706790892032701551709525555766710848326083614827821973886172983411052402007852174467023323544490629983100463407238478662239326855555883380487567843688417006928592643815186217912465375524800366131742389358206164267331140552528169033531078104672993412557563130665867021355483567971215987115713205579341015915051454445292236653898516907110524444559115027914256250603320816620393717338316229729618171836576493169140721162404753102104276341812284691358746624566679018440361908158331731159548633709390414998273516593657847253361731710078889282584327931937563407187166503018502971213696700529902784700295047117315412904975215060215876935328208779050541015729260514599057877651917991090214296023835193067154160713871454500070701201607715143897066640195785113009663812702538461131372864491647097839274156640990121400479454833908670330427358082458618847241259148520030523873494567471304995530575295446481940478311821094396325182033484574373826608552779323596956493211012159631796183988441497049612223145298682994474790184237460606667543451567639534184387925243279895665244294052038162303078018132479581676268470410457650644372707907280320816001822320361651121190760155372253240820049016788290228068472542908578435066237955418962243805635253450834967972384889519969629130859715243058560005380551440686835675185557619915770240306580364178707293591260382941615878691908193244390303646258121317228254031944250246716724353317485731978425792497195210681030916819775409350613090454579339464175892427331336679358462438659458666670971648859949051073568322545035991201268509668114385876886845337949285036135568749483993677917419236088485951606306511370260431379529931548139034799972023795613827821516687316077318311172882888680221179870069751195374061797182683384907686270797500852847972291681257353063943017508495960680886803471235972180747565630086351530027156947135466299410753512184751538881651788499361679578188917891095345864763724762460711088125507970063611485131408160004710245588481691229727113843402124390795020473309971440929904867051188759067771700156652435011922413714797576251565697487511721718282320318040711477530783060168459528345057728619297335575710716427301890383667993444680825835424940139861759709971754632726277155562829646780561336803254214158529028570696767705407768208025853181977614577883862861666556460509001188910437669886282314837332842705141835958485790726944521294691282867666146480859604345478603165565733350471949406921134623074731721241284971718853113787109048077079677525202975323231680192800146062203603842908345193629856641026646409539911315196787750255235110798494610863695196052373569776108113400387982766525579924381612366370520541365793668556574275923066778813645998168437191459192470327590273938499007098524360168135481848629522278040632969488847139845291641602545337689574447610730850954476147823183830987181751172958835779556623988524288927378275266325180144142545016623015713912723625136984962376288456934280747402196900932125366297576217404430875568682117741615796960271842913599471111993226196558104595798860091546721865034539880753339213841415855747620559604196029544793301282797088999326176561650377461386518134878253330202907105348877366105145593170217130321728081948681836206883251803870441461382494752147249449680070402634834737908883078396709765625755608242986860945541351369805709277331010725697832647288692898804708371891356068404223345223265523226463819298226351282051214744678783233508077969434138268427635176558692367694412686927128364169561953913898999395287233172014199581069898616829724194090557075571041526300385914577278990308970551368342573415318622595746100715004104351488916599806894638355344921615257631252261054686885753302216815160842008141588060412908680458999969049010889073462630032498162625523609036279560775245958176996398685915236788330345163613906264001542075488979132577860926564907465491005376964123066070815167614390072802222507019920356065827000086702262176875723756783465460155126831569287538117156720463741777221983011428894238976964604866448809089012866120442645583414142546715534931095923576912910496849671252614786043810128279252410011396305886003458262105325194915209297847285443107071285428806782564996555116733833319624644711206213356177838527912959340502464541123274920685519705795693154649037269524536431028624266718459760118434718719774027936981579649953657767128131519295640745581262860780280119749029534632120461297861630798102837819270848496352697480254248295831083451742975844661641714893554708155626125835314289535548820019841913633533832493819040923137223771468871353392565534260963126312143384194068351741295459175416394101225233747231038762235999251610490064751691382947301833106568199474599438067383579159507671164095483992565204579510801477585066378678808472911596292500408834047189596357334483624779473217824662333442270579524898288058296726853874893504392825137655935259088322079221214433944171915731232287135335559289314329868405060373326071526067639600593441128569183056677419413435631811828220582205034046011723122539301295194389725691219699712081866023946388971565791239122517562538937111786526581482282202493427029391617560940770815706684702399671260983446597849026683518127389411596679179881684399555067420040288357465277062173941893089694443457775555692386699219460847444607511223519077714123783252784057899203560561437231878139680879373210994878907709159437862985485484712994070613204629062313734250646569921233308293815548781051455501272556282461250784180961749608892270211397586021048981676746092302803377820843027283593533870641157524912661573540978839500971842155770118434152547020646287033857909769163996441842063704456634156816342019782010687839448021031964608390346692930449591510691405988696120226161708756399719272829332553903208097895647238445129994934578176937035086272902835311713610626976089132122173191950873115400474490086490985556748285306686241087681508906100547707533839152905177446044941444151828066068764155821763068065813956895215335065715968849554526426278788659542840698615869557434982193377142004857789211155132947129543373393092121190820018455663931421130029361142494354136473248488935367886064821771653535595693965085492985094753134689464033605150364036742359610463088502925250024269397156298865093224485746992882114973428622743502647632105340802022713322826108347060558753722882572627507023421715853829069293391020288126336621440075717804308364683711169280662081941266723073377120263730581199257176142089364455768389687788539271835447096368217951115557595734408044748694841242457999395419720775805330349494718871769593098765583889104584424951002420505307891209645913800989594650085880984036846089480920627566127592747018116272297690545371062501081130194294769454840069156298968623282765409198268748978422058899991638759562922564994065954490952932287812969588905220938221391966830448646344102378210736067654811506166946681009915333999888910140404136911145089799743912280387493605704124243354258410793645068623795513401747479677843533221215153994072815437644448621788012198871165892253803247674047036376639437245902385144779311613439705866852325045408439327304591820476119191466039772407210025672026836827438609869993347379226946447677953566708754365584923251274016694674593594619514044754203697445963859591155432817437918298676387913184182639642847350354314837200416281494186414760919293259951569750978790118389060111161475998190680474938451845312559539282251498471997947149347468187720889437801704925673810646131223230670312169972474154824119560852009614054238917762536806856389366550771179477493999416760217957903174417682736669718423221862529692039332896749276699020679869521248238179755094370898666967757916833126927472851382912630608444567661386158887052379937129047878118608461189652237875003648104903490138118724514264809705043799369693212920840818467128785254666588558178734687720708679604343915593906327968331744221422506567950315856882331657241936690621638992080620581484446728152174701814997101844370736822387889994154972912920285706590130527303100258242704162023613754173545302961282349964176322468040227337832359915377865930687349000638856801267658242718432309026613099526779801872420500071620839018299648919353817715374298126960673635382617677303964028477491269566229963678744313831102417192786878615385307486614210572149326199635457430371073514773883551618722667784023521383205923179701405708273430870919762161962147981145242611865883763354236672185181702931709567198768214407817339712644132833944770130661138115319440416149217157692676130389097942904054622127444845912578365503969616100165724459463646750113608915416982821107576481617378393225622938740396580900366497013465749477962334184289105475609724129768185847362023861089487937468449625159362005503286537378685805547324169453219426947157770482733595279899482933357920791626022110251598575508826529000912155734286154121325076625691772840285093550106591319335293700146938459467876518749302095723358767729902742970314460938161430688063084975894298154795732685375593810207146775842918139631477633009280077466244067696036106690900084683454955465288609974980878965111687944352996221568118969351178876873993425750016477504116563885776997607397856307301229126338489905118583242845367920622631251925619941409293575786891773680229598447284017959507702917693103576240327433428950270596295003803611134757746019191721425451810738354737354670407975139326720657215052776367863043990427811111117103401952915810663986123060050687048184121548798362058605796184926211072854726891122497942813082368215927356338188851601350830373551128166576656599492732182288184820322431988084543861724000816723605928425377956649678152239404925652886378561134286456566537329775645743278361646704159569268366583230253280896007146224673837601805377554983918743137288700405004123366163585294196360717312115631664104761383876781378665656108447040318200197168085998719268769251632769717519126332711765449568562811104745470897676954347973893621010252567285171455069650307364328133865567855753831476871899776426494634414415963579479139735892703368454485535863300632035897515041394190550281024621655898670346122537724262979038287785767238665130996374133268824883575122390318838304878108704107151381719662423991453726768955597850523462254025088552889149243619367532468119150808777088370739843266084653996283597883802794047108001346291241910811139902123700216562761393281143753334923160126972225170662647332378850183402704240560915114786416754547910505147247003725626638305127982158357608354364305452722872643114460797165284026535285598735987651767118641903136024847997355794798432098001567132827152619894533504800226751470208550272438929075184214999733032463388732044721086527445454517484993537736930908239288326968279467158616593751629108288711575956416832801779749481616613596052200412896646997191228024117100017260216280459791261085740412151187730777181821926285960319587543685630047913722065051524793383305650726609885020998237388510740672478703697985264873142469068276144524018333340570821179094481466019818046106802488310289385788555095077693726638274675611444015500246308380517760408136589073102000322294673858820567066400912004572240801313834330606212238962025100967862166808272811859115349564693026209616329655020604330131138100824576994904835402736554051161870916475003011922696385261910690307160006034645135549046233364689421810321414152167285810949521466810217994861714807991943068073226671526461272167052899023248781254029614550390875115102042256738452263517679750336063462150636161695141319438302477841210178943222884014607568653902251660077838389046702580491135257395976436713515988763757269665402753727343723623871437051122452433831670126975497089500548056211211530801631332370310811113548154157600222857967930135570460739530340455524520422553960271049260019465583120821661449775824891733171517691873277380181222305451335435287239108847097841956623748201191727777798922404016964329392407115631521069495941521354391714669258381831440203605415479288967068321239916711176858600639536288884737292126348442987119115671831671048366602395100659753450149326742585690596959860135005736544474344757027924502192657179820800825448679935647192310528586298334493445141963341314697237588875196118741950157474451699161685868857225594365150112400618324635446655263141501485650311875178336081300032220654672054393840333168931295876557624614233782818341944335600402942423200040578079130794373480979580747677015252058635373990777209554256044087503634587127146656087119138703379050689855457071709917055891631749363565161395316749492579818895444133484130742742034025095891149177405920413821378631473991762079893269815780637554351168142098276974848183488392612121238143931732583474242924445700054353432073112415368987822749897891862675899238596909785448085188194254227206042763345066260352975935366101443047607997752743028174921650921560664308289557775416890836509803540422517547497291993418432262204957784320524545116309979825199926750367697592648521336231296902381081453912331456603974310781476663048724994489588079993040789180004364049614695351103417849289397225019236224362827120418726539047722959015242088552673695916813868344421919848615669342173879789635534925214221536651505769495944102644704100227910001903759724679084054401954079896971454396508361074243700484656187778426714201072254698742635015071289474495730627646496612519494414287781414996899821619563963272415424000230126493272503992195511945219933916977867794268906786481989047571981587315755454413269989623186426013579755135614914623434558608454823719721923216733221201045012188309487820066964766747598564909320825395230651999153831591043523851736411351024057390322016404835906737321107300522596896996123186451343244246838311909838079726544263133424376295441168521134702810666804898863283450687896602044384291208591459658085598109605025980392246808649346744617294404800211070736330694490840687902069020682748819894091460285916093863550700118512694568236607665541482235497483115778287190345511544823171585893126886701140166632787021631459886401138876547448797438396323008004527324086378470463760944187779578241692741673474343370613560343568168198339737029980528094236713531008928325345502153783065164119688823592946792282219817760358207279287504724836078443204952298204506541001400968420184003760724909710898534224725581582761264524238592822467819711287362419755181818526872842485767131969729127526913823055948645543537948078255815801748504076461663444879025469655229191573029915376963579458330270088051403947508925869476507376150726875168422192490868666754926366205517600914067367658126208791942176365289583123536552854029814372148901912369980198074789102499719872058190641702538855918720541006505242597702610979608150944297957245070383842206490676261052740048427477298570773907095851687146411046529294677747677072930610555344136113726538600842255407355711554763230745164607962805549514852409177212536709684436777823202708576295893096980711151867446411912771202237925693259974054550902806858351597721642586792660192174212470958622789044892229701579521970028319788259354365612210953270148725870169220829470294840765153016705836800404934110151375123887301510569780728790452588804042166492829542025711452449469851170799254977342496966910294442473470627670061286279193287036196025226842148847471402746030227046308481810816169469867882817564350767581063597312465234244825396982401649192563439315157082771232692380363097655149485313253922025231889616431289905553080128612125280308643379849927811896394668617868787870510359668651753112318003295264730497673406826267389818869129968389590180629430475083116283521900215436791633898852488409697139145803500328196855513412733748185159278363267945057797109140058329491317370718305586853372062043420373491953726098702084444318124678036726632529472861358652159342707221415051430381063764834460438897917393194509135129573278292106676366533506972715924940155671122817357768661377217768268061609645242216698146126827262993873040048122355501606925272969815107483938442570183428615511456195700416372268286480967918127216408613905456243358384869907261472049176601017658389548978566128298344795842677203193801890731429725251598579319302394406068720520280580714039533376485923004142723551759890050891917902167457029853992325528804308803551791922850859310057113223265716639822882878589189792721650907490617269539555626099959973654488768262742570833275775725708682715881565372484537349928136083905498563100028925225321290864634333583848444400880938068046397612564800234054479281612848126102371429988807484340404907311763694882968893674940378170267462056954321921919312300694316971032854392230705836962308763785062116100072207513745044651820981354756471369461081534522088420593071514750662740857270974147338256133775019351416593725954620695063251219194649440727339327503018269012105125294166874487991061769902560321209688877036761634179043544276078879476931324871489427581645597896034516659679150661843773854750439492443578101810619800999181266318226049217199748741535899457466171121411136651573022611690652774335651359521952784852833097268719481212018412865922812311153049090432656017298997687270510527469182540132920255202052138883226876476854467588990128195776789836933672106701054622690374373852541466801551484037504973020628948783121394831969468213017857202446825526994550788952440904845492901496081110432210874947327937949434226041953830287355625084700767751119567655677793693204188291684341082976156425901541872444017989977564877604668994977390887209632394594008949704640070035365726606599219043183074670462364896264010759897021530419242947671757170671185589639247550710164224377468970453753587122024768379986729622064310326896729425563173347150073984171780462651006519558668414880573782402892274875520216662158148687113996625252362788236205629888870198049339320782855021353639926043375688897022991344653736038500256079774257395721000768127629269649982572965079418097194201927276683333988738779949794807108275477378226323592417102328573206402469871775334925314422004665202505628184463758619015387187909746588898701952188605124160621790455516689640229064104162571092319816273002174734371518019553385289296022352285256032077339309186930034549386498666551572223084614709830414370073484550138000407875541217837326193332144752780616154858387945609634708065568120657052541809959796382762952346074430249977652868547054389840943405607667835214117126831008906431938106824232897276327533645419204333183659532972497541770755324873253353594917802364309988660299712375147042160762775613162770430837662483150211799752745401952788992504562559960154041699779258055259390115540803613295096804792194931356795438629348939565412364852746744164743831186304154019841758228092502824788399393363927568145996062899555386361925306316114785477768474888759600344664300991278716951577673948597891727300555664131839249840231110588636484836278403638286579773800220450273416564248603630667569882433293252524789350750237429522842720991119905259503035748026029840471727851849547757059685081713307012222020764831043220577541696346521253627967639327868939466095609512898302514954024112758759831145770197204871790403048976238580706910560069699197708177763794723420292119704252668043036984568152908140334200451494418466978140509510923326623716357952786639620999735897517506997077807424557476922832684984955589862292230286728963545044561752392026294298546157164096002522972833908257238638414521467146476289215275403087240891251493172005938644494830124175919131071256163883794834297102963528473009641074308758184791494174796532058729209056634447049080550612288920220545322676786207572874267272401240814315860901079293966339625458919566418922801066365931708563646761101638563301822873547430139588946649093242080345156310912937739506480399105766349095603694969070058325631804818114734240077073245896968301012235341912096896045843930081250910071271001162842823908819402105654684137708208078916065003935506722807197698504209451454016456329419935351130832340004015204653053682449459003729127089585847455426123958285122610542861581447347864261953572569059177072630250604430987916926823142455680769907246157441534332140664475271271792433526718773856187092253484761868810071081469972423218197464515895920799619553362947869998472967430122480647872791511416627826768111516061483398047178535363011493695847006319733587249091230256572732344189144459660111093373527450572219575136635844583224136211488234055811161989250672566903938248067647777135831590429787766288396000946904140148980241762285976787011611355113216670381333280290718304895574260433236871744861897984349551934183361132053539650878670632095175776791129518163295381674986630268932141165205983332110376972280428505040491876719755279885176755840911964085611580999045208634024314597493976534799279301054143270322115584503369634765589761247196864843641511809870133225535840522475689458591425323471507939426705610992766819237002193227616515703048149101115395784027338190890790176417765595699270008045000829722233678230254620967447843016526119601065705498565283123221334454533022452067876381803949052741002743185348208902840031754647410152565072004097802177642055420969712609644186620148010789300739674346049735974686395537291408196986899023147643615941926342557272536598648411737989040308648582469968088276650321220666673000700473808044833853025914364869392383215043358674724107493475861481212499810042918991619203261011726517747620261927244781223061538950437401021720895776320155688958225743974184826337597514469221651133155303006052652469236057151069848255390050404864805878613835861190558975303521533594458724481516398805604234557803684759725711037624740105891143121389370748559849475984111410347591299444834487601683084638935083752505181458208976357480794223813747385172757757318772852664133738962053002110868386299014957801476888780783208905866572577848872720691903888302680080561377064105840242686833674001145601654363557247070682004765971868010953120028521207214844075272002275846291751569354075840499034764530836511970280984656556250174800979441519996384353016375552758252208671713779800700343024928797217389748764971710088408981410994230985554556169307640261737056906337659261466496383856885083059247458010321349619507671611921549504469712870502819001709764603005203476186051984671015213537014425304625395747480534156447486135155194041484843588420560207399498532899238471591900822350785412415822123563015735329436671330908029795310470679412731458805117333767076155653926653377706016420770977327057825647074815241945133984300021376720721346927963408129870043313663355118771927298534730215381244716515091092667835496837882476709641342424709112016229295517861533955635903144470504453172938095094519345129278233215782654381339515987503338011610213290999316433723012744347346310316385043784776726357370824298952192570325043334752219509227883954493927074831056732905169962616133625626246660338059239302986834489349471090774559236551488145752459311661554556523208114564347340934281926613002036736800257316454555678621374207085845467689832410471801906161076918138275606680347063553655986981382720771020658858431839058951901203290911605542721333104093915939055314171023513736313992049021199029929509035119160852160206779148573845219450719302567239187290145820652939530234396706800801913496734619804976961514479314651266939742477137685356331812541650225850210966122180858563058443160453230016969550018647986306251635854484629399611144044749814905675868502108138367113660882590949878180563549188347125791691592922152068949072607706214316171623796667254131717881743087101579835376301084521081419217985584035204807483569749635365021975408413879937067606346666960586707015621481343990860717290715058548608608109370702459124753308332921233884778859823811386590370852885016817830874412712571634807760193848812941066996933891393414279535825514426987250687682473480080098064957007455078220946301549343620355308295147170157190470710681588949320864164914094135853347014035782123162961857013914034274094249785988848917566837971999109777906607045702107388533777896660653713216745147111789530783638349913240654249530300197612235707110726994949984901014035978685991561548554506839381548214942272178014705179416685118397580478284611812081001520982521279256534546868404467357052872191554498325850008385809522234587036487995115065134284718048710008216405630671051858457806314453822888795786915382629252070151188243655229000747016745754488792473782262374840390216463657373235205861637038482689122819529324678764549155083849993967334233546608307222435686805247234775784040974683985661311306608385409329875339848965498627791942736851877662506477838614304895060222793317034214239897368925195390916935214277872523683920245017720480232973863882449790598263670516400525935254232953385737042265798480972045726025505736448754020174653049157068478939588044745276362671951324197036577257859001202424260913732029818228392058898763006219992308927212279750968267500770417106915349568402206277020443093983672655818383184867855961519521623591511127036928400057671654647114531492971389310601788696301279919558245317274095231110992670386547819873287206401559743945460866691245912134759715067807611410268259280100687745746338982222947344408035020696547767740519658354335536695133877583902393298639718342381397798810822637660512162635437282758619788001775718113023026297199966678648702987063659561451960013261162319065610746443416206630194313259315835692049241201024040261798255187600509261918221387788908862002129995903864313230689480635936705436979623884730555397047101780239819359309047573465913366394116675584070237663412981417928248638960131774793062187564481483236069182344436663093781883812092164199798948670620127595735985268079272484555767280962493101223446324708314757322543651991388084012655304382798909806081243392226698912738074103910334168670052469489314849148690667146425420658091100329873362446474325941111969117243597548491319580473868078406113028713105427918896299277907565602499814719637809586718919162154922188730052039581787971592377392425519331898492188571826938459200433961313693374793915974215548868240624094040981695237016969749239906866024653218577971977070313523453654571495055285454938070327686364720070678123957993661392792994501389970210497814886811925808478329972612444644748223787743071194391257370463424658957563915303135714173870174586773574471966142315574083911065186209421400660348121328223010112235313423997155758464424999374309104138718659678551060396483246909803867042430531723407930988643410563816507362213523156572209393218202069869540411962997609691399690729860372907163679045890086344534737097513632472211798405686190779665693824099734523854012414795409737267311318196425051286670433298230507806990970356047220024922914698732873445378285684888317894071267096220212854767331793837916735884696426262288638380039522961736463368103893331957225122075503774601998453853645622285992716421473992205938863819260671499455405371548423747068120937138408894038992825791676757347025852995680997390920083102091371795652714399231929410849942610788671966938722468001166211080505687217554200658793163834381952605133883677199323345768221188208286880927805963812477595169750648560286381909965166509311973917037940114538085200307663075830335192234965189750548697698850474283008042351098287190503739720116018985783861584989553400569792227108542573524749714951226500662247607973163033268938793187830822574778775992060451319877518141231515870648859022765979295150872504356568312658908233382672787001239479768228709031793023877710281916938598628412791334972571770121050473246595748458829361626097316880047331714674353425394274770066202329766526000972768048734550778413295363548704200601179252735468280235707808245529045988496321154024202786727243723328659626077597469583631735826094559243437534394061381107034471926282029049882227306487679740767054272464581735948780831663462389054300003999529466006789261075357455218462714324054624479234717289033333375250473223624563783670553387662729290459405696532555843593259332865184977642851005606067303496473648528627663805035854735307078481704071055178135022836594774924220746248913446366732201519550466684982577134903629007786605154705863210200561001736501313318262474129275634962440784819035962136695656999135398610915983129120177002127433082203704848149063771188849184197069473247631511573958783335988769275924483992422351016677347070509564440406349316097463551318250881153656662163093787949854524315069206959737469356548629524995398428223984156262140195982131568782602142339797345984240611813637587796317334310291980380875945610291775061312689000507390467840686439071651207798360173059846099242275172935492524824457817241693827442628162052033663060395380161391381033114555680862513710458771681546012521688895880389567568296930021739998924633638074418706415503793674474221027654905877364695795172180749874110829225746445703068406716956036372316416090268786841996963187279131597681951042676877920428202435081224636073689217373953766885958708634385943383858362229315688270388345059152509975428046310481769436882932540038915278159874357223878840228020306468425330892705515185506087551306853061338288995959612912595341046297079534824688875211646405672020875690880123217160605007911631627427714677282288658698853321365633131143957801136733143822459131051078877588595937749726369838835307389430460519941772781358233116585545705992045364675728360264782408876289479554006100138103344485527796745986521875829569648573923358899841968373131515714975432405211494955053973657122987133304414271191500277682083562318290503558198789654269563398790950857806173141067265716309376252136196947547920700713899825974139318636707994234449766956356805839460332800865130704841098714376631209946812134209941132595702398537029465211152219485307962243404403104288234742814181387496202736089188391688800240299722525549389078655971259981407328214946220216883065172385004365942092159065830034803699198372045373713753237166827667152406526936584670204010675553785925257156603233685245670047061469728094034371569271536319081522313460369300621079057789645799303566295484136042344693046004364787630323516448315493463800030286985736890378075403842073109650598568464843533629633404696095399243145002356498655176104734503164740521482065758865918396369821484358267102024030199021547155308854397978692061466602672294515654533947185591103618895732214589195175629265295130320095501177266337955089352180664191092617997849942176755300469165786498019243011236618117755857470023369384039547429327863741100274452533167867605523265823106329579538550873085347769363606337179547230946283892764489681298120345747533806892571784799951919146300657265305130544274402028508430059493743703353935403702810412264953812048133816577185145643908158527144407210136269335850627639398219243713042479163911211211244259092500076934932750501323789430731666930500731644342898040738382496955982949401321555438258632559878485994671642574204113584193608338098953530016346839915639346262686118125388787634343728686875082865540329134672781098550712992017463974684488157302851877611910089079589069254541288235042864071627960419116288672322923125158344884449109947228409355313736086729435419193991667998486055651435057388150423504581900405960999840083915833697682831225810785344107275779488396529060831529782273357050680486128365118871269088053628432437942963123700423153071545827212573631239321164192604141002490808650303823680522870601866355111983391356365917708841041392688153052975569418220331254118334093070715314905545609024096777737129778893344427739287072610036813039108826447014193915037780639687669079442095478444928801424946779066380825320412210923902655739931215098113892409897979089952330928350404528195004130159874335990038701654603926025731855186237804220675177967602428491644737519251173856833399562349197917503915457404858288646818789819240442951521342043492405183926525953403139094807028990426871617877161591748170569759012226247562396472763773571556306698529432116703051014761687089982144028848055423432448526062562560265121445649555481906281924000583630655787611220002211455040177034082020776222922891303500452647240714815262780147285023219770351424402381908929728056838430687498884026134157475463317906783742432678605756218075144149006254186948645397757454858038744109635019913309569888955427747630664659208802792347361591340398950668742966129375651273931300785668328798449044315249712803898359048438799854917016152446254080891315319636210570525513419648515351876323453055760238253524217515406176591843257949807981511093138709896441934347247917646689258734183833914191140385873109577985312393446528011260764313634334068305094804959802321433259267718407585314822400716080268037292502227116228038550493343828037913978409329082921863992639161601490396107388939772823217007693144548592685037972534359274805138817665426975728013067652632760993092743043482409616039196613526720318790462575471253545496302241477643051851072910446471776707398097611184592114292686205862085799839727082177650652792809906091770184165637150144164507132944819215054436225297131080995234880220405142856789597669774713535189708399509755819802675041583018316726275281689706584516953148385173378367271392619481068790824547134816781098842528494588183607147945166484556728826407271429111792906185759888216800698004892628120240486718861345922414773852758546808470796927162881918810808202145205458283765699246117713084305545578171171058290011027427032703449165289368277129197136419837448894973734747533968454897039234370969535061416590777557449019924710094260719157358851058268569597311477472251789456080766006335999289247224215265077041415822557152615146789421589715347512512500632008267273384326344559381196951240914920003791282949778050062537699946298931678241039664562099934068773150467007044982843587162660588201310871128662673999312246276706422982451043189926938325026642863729668502955050898151385782473092062105518185334987741320310715858601045171152322729567683238843651421488500956553341808602988653834515548385701738467222248183936438629141922154205178755248149102644185819472004719158903161782913088601001527575846747702452518642747824311127895173590160440595427052405326302635064319546973404071243798540895902914930079761034937576959837961794007999430544440070210897175266952912047929613349901369780665154225258504357328159525769435690438967327057668982827133334821809037680040469221542223111256258845024347675510573554637429755744110856605904294589683085570741164900272952695464657608233866685442987074120691530490622694477003460407431470223846600092594456319894490456262293664414286363129559141340527620292798255703149644852270583395726602566764425764377161565920179558526186049107386358405724252324298872106752004151730571268601859188199356284358514285759528218730728630968253167472631746888508024572778452588489625845768577349409186444242400835114015759021591739009843272665704027179760325155329888174318828211186285776420095482306889111446192659814366334128057525743829477568831278420174693982536108018522529017671896261852234098445638261105065957610090931498142180830623161238078865482731464835332502056038121940829106863042968480823865809974582831469317221606500132117218483541182637296415430766777964699113137202257652762524934400952962680862287314055068665598094747733542940451220140198268689114503751494604804718766641665707976418458339312512537286457986339152778875278978585024934179541120967990085267582832194118365768780765451114751769347451706083754851838319720399944726452618044948200498080105211089062430161320210992071833260612092580961501698639490902301791619213248870336595276935706216653263566229343594323267564616544863139285347711943442813280563912315832311060743952800102687366735799447449858343750632467354582099287696726360873211967089948462681470542465425503429518553993944519715253401771977504273682617230351785716449042323084495863570216601912915236058820487023116092086021900938638627897429252271666599648271678456996919290451245937175598154137196200964641776015832967692410488286250223055890227515507512109723291145866112625033604816711709578344974722840695873186295465230639445190262455200420618068000479188860893578837596941346645767597678758495671315449068363786293573909912902391258844002177584159410483763592833620525481921074788447743447907860332287203239637302100601357595191216510550144542845951417497493391065180469367117715530713150488615491989834483720166215471209010113859733723991822962595548517945288442493227277303716944101195802753983615418188096475211748788112779050752520920884867795021549142364455281879207173427816168308645157877425992992852423956942117013132914898811165958694118319999707293452186038545232920842869810795647014805907244007430508658218169587204755217571688294287892567696045636008292554017431974244019582327288228615653728343860440180386594058621961926947389865134217080180090920959240295921825973344938207302900851598242938950161108117190597827131822889313494960204366728244847785441104020972425267299613976391576284733590225826546162048218935242281135882102784228212770507919815573069867844124541070135789029328896275542649076915828145597028234028423478914034001878067660468758819439515733431510547315625172555061009279131736203175265941114294469802130080002872688190025769349250658430949804784387675070399128868301431402184629936548938936950547533097169078007074555128145559567982270163411794553833690588465208544783808000039326194183950061314010920617083885492696620291854269914213228610648230651883104722576415003942258087523312145195310087698188172749335870494108496539975911112382987846972588433857029696045886177199596049959676387307353599611799932398216977673704622711856993509145585487572160070849289299204768546069412333723802861331097480234591726497740625955380028086917215252492818824393898401857042804865293563562262690588656638564480400453048848741580922702590023959088341565847115103117988776336692888224050056280486629230959509693118592215071206886487549973137744335857041386766317705385657326405857092235885183855479762946318225948838474514580573902314778856126879502874834127120877666791845522413562010270125207607748475991415294294130729638641980529733548163299417319040759390998815341304908861751186460892940746501480519694786174219198000064634546020660004832894365907491164649101682452919798147835768504866255307589322211254513006187717856494022950556973604647316173561458549601331192076327597325598306746339941588126113797840505362620505092719339061432335511411142829842006726110859179007443230987655889570843964970310973887056967009941035720463108121091579424278872436983900307803632746855109780752115363275110828711329995154149115390921789528027804861884205823789824768780150183298443292241331890081181598376585796532232185656518543044771888496645219575389178117102337453856233071737757143914799355120874768964260001543413029630761613271345757837957142185413286231009271769537615610664391239626204974311842792571895861187314365796890417179711520948211746292201880380558722262647908784501831234949965113633284081724475446310510853925458229575423901622135171178556922099496866642339491667007361886024754289742095720280458799782790846085764070313226767874017878355411250907945972609823611290379266943379973804367590144476937427503035128022284706102302393992741663389191731637217574745069670150192123897108080679447088633808960555410378320594166484047389087188529679881529212750378568477165648593312798067450566866272843728834183211672411106462351796807379111463348352769431475150936823464912068948545156669000461169813723392507383183836189449149679356110703709169633656091117016133198155752517508449575653424886761381685064564479898119079299693044362493318592879351116271531444672156449022770130683843906892292610297360704665592250421770300666197816701988377971095577480093081502143343961708260476119241416245887031425100761679311456740222070865615691271932901677102915618958417248202144046635822861655476926789253406645143645551042975766121661892711952617895702661032361120279856160431764495851677830765615719655335279750543531871468400375319953802514070593147675243605030040246412274751558975191108123164236859834942105916747989647033722256887749920982866190682273349799063417187097416869779898682606397807310438127154633799502471673578636205962628764218713388490743121551373352843082957396686679680409863133274884889525204461296728177417658377635267788759144222230954913822147109550408793522385324527548462707638178222353459728272180801206504320388468919990752132983276572714581473326304493812674279518640072186903239710882917271192647940773188119304173119140519441126260671417059762647524604486258140195157184666666044262484164771289770930621072040705848699338900643232950386442034245215918174970642436490386954814035674873731334859663747323956397873525915145189453278374162018016727563860564531760968403424614461482069913595722677873246565017908244474025859794652666337665638709527244862011955632044971612807810447942411675209707389313287455171937530784035223626404979969417796903964474261979935739463795198522931876451725384172673699213233938680291041947326881625479095639254292140033067041694254660495393008961665494456912752567955471967496939655110113852881256549317866163426618931002851221818937241824122923006694666555112222422554970025592529877622785094856006653307308407885762867726784975060637422878729671609802732409577722094817627159656148766529889806376170558650270302636768277598749432645741055132432824655408654953933911112913406912370125782772857001293927808011382771541233635360382190480755527340991679762111802959557311180328694223836743563400592346572977231608021901024838985487587966396932000009332104233400097397268233920862146082377328123794744998764626164448271214452331297036380077606489371068462325655094697584571557124925445536190861357423179764584289575896714538630925771956936698379522160228997217407682979340944533024241246731453643909287034707332846224015892276781099659017589107343562342253984236639568926426282062918462744141139540622914518677842556926741515861693398587677683860266013784489994809515003266117115573531171768790498227104465061810301186063299673121999045110957029753595981980732656086289133635939440902810789580396494885030344770638299288939753373096195159810475310329800660527181119930789062743068158690586860501650011677435164818031077206017278680347764740439483960838175061213193072880772964381415328973532621249804472532398219473445450754476153730027193200853901680595470541848662708363956332223843607124572954182509462816483333983003899813370306097905669484684852992684576117501772969768846727033997362167151431089192109779852237476249157530970594837326367063172060514544316494040738646267293484078432783112354959194336424578679444085795011210973266926261752956973243780816744611135805087767624624029799510237375414330991387731273218001830314193778008576267338048333323818213806157623971886818797758627183051018117281529425248090553638594071858559813074619422874134173021365157028722639815130883492825332587142257659469660292182030062698824698534900819286649569829391209758196369706199905866024896478682925376966061257163024590865592145733924506956210703903235595401166394337661788202960335509858482815598830602852665152011129066519307974658674756237424970505188400768722814758358469245084151810348055139778760760006953099500868542943664308223923085736803648955017473802164058948838460458941359064522128703644943406420109188693412784462910292613707699319361304810023510531420821240283225345532954307602800635449237078771896183297320385322006331233280500013629156033082456497961526801750162077138430321211077160062806716337520410947742924094267919952854301976132921686305576165482474925195222385779975340626793023556145562933384002928977375224699314117091128268800795834477240111294565279031767770855395136507499235748904244512931719568419810488836733901977257778149646668237198541001670782193874589912430824805161716145890887481703424122725676066502837481630990070817066814403550025761315834682026428354680658550521388411758340272354374338418475770506847999187754814731576793306915643205095372758994831574291615940774956553332756330329465610814576300381884750663376025892806547114880845571502767171500804189192383349756098282310032932840524261626947658899281666976200195132286481422908086663820048453495485224663047336140548379007261429632686036330216512841937424548301935904601136379640585306774008931431948618062458974882982529973688928800959499196349580703259902070007982821680868101408437582571251377555056658563443946917610987748403929063988314846457276818572794816001401690333443480886496412832843240040688677335301737348090011787655117750771421592636245074357854374839788981033456573176473999191238477094772774552181306780277128263122645941266344112304124039243918541587370080318229643818432890861460823625034089338787625524369341531584596848154078894184372741908693386311846874739626279761048894473365568900434481537574521289768831542409651987278050744255633319005268238048613649652645068432320881417986970574159974464644697535372375406975086874114767440911015350145664268154472909825930944151402156489957311283664186304107510272307281596377258724771732589386548065746007224591006618000613556649520740695844191352338926833769053783226475699058271063494222733687274860106061373019994875955198089397466957107866378833791677394830581511208591877346197575154982230486819378097525990660563046451742016544940280445306518517989299071209454125955786121393844712063173722182444116453146051726249491846729236347168786140895886492885850463491490950462542245499507631253926814913323235058109883004644535797614344598795124806800717370053188119442584180019210362626757726013003828488098626031601047143035598494751143374269851239836306285653228146776248735682911206926290520359132148403624036985566263601379284765164386862495928903396984848873444685089400726634984671416233316478789634705332850028792518449832915833997769140021453823355027153328087417239619993662628343626841978829517728768223966575873591849606861860626890600827405533442039963625646567985401110758418107874769541216390138635825942340795588974600498415658496573877691090434451815416797838313476660621252528702328237407019438205333277661433690129270772008302952267948022039445531938852036559237995162623959253727735817077437049331053770876305977796823269701634854436370781202775942547316973723145333276759506565143614302003599988187948826913645781068848949378964552088249845998186131544983502055809531179840072756210937462882976269954384981023676007178637408645140246805413886394538994697865371034693000927094083288961559079443056359447559852963614840248358043546580661913288276324739403263953654465659480764544013102632073622774429617767044480149347628553744254231946962985513580618513003184247350993201030231978157731664730381608600455373484629971425167094961620029161881861709067491462050721409217167248498565921505142391585950155923727879808473962490964548038730040602173458659764349703096855886112241951811193010826786577872457249627455764167954947137570993171826868620454198828369087929345607129387925063214830573310811850919355664865283978886745203892908110667360424145122261718798588966022858564085677122352093140093316937054491634237918649741974934479316801945596621353981124933301680317378281559000515904415747160224259022178677619341255749328735548646418453595430732380002942550201727971764175662092648461962153644475121498732484066959369286520292278780261127719003564353359184571411276483241614141194034462835795566876593333419535484339962244701095303995140378442954505461893912290281907589058731290730806400767697090264070888011861328577056134993460881836684311140708124012734474999007817859848163415715002830490061685193832953596959826332655365188241851007183781390522359973710519723416926727360173982437359054267454390286278873065430424531151732014249330849630291266804670412780287789349840419799179476980230745650013931073966243046976910332548131653962847754234489761835377755007304636881979014012489914569288074147760118280162587797656491038727725205661083175475367988468358537521686304383509692778923028467682614174956241909340956025432345430073595045647122503391854367964372485838033489984658187695611331550697392223391569034685051785173923658235399141373874651718682444542313621392649832262941700130316926549393633775581808711195573878927802695887566091496250165750579753044402522750997498178137544810563060840804620846602222221759943689361802287489418869262576525016648008493876851505037538179190403135618639719230944168542175655097020131954384157519318540990496736340451532922758148382050493878017323695636965193232760140503953419499140878416140115171610191368283455449740114297759324043783674573447189767661204774920782660119094521404970531975302905321972484376959241747418279924377842060324114316184748049477080423652161431608038433803305151266086133476480784391218054755718726585608323325177875642529508657975850153242302800784117445893223629123771575736406714897881383758837832156508513400127573290502079432323422151177026393551353780051471493222565490561804213778066701891000927077570599003650627731786392806062214940904706646899804987337055431632416456342352809298941845936865112008129439755271157519926515579028106944653866390801406973614900649917557649429295472067412967867003329126366866308614305825795154320063070781722953429142205779210504458436626955859777190965410928974652139094191241103407934838243722865916573024100325558661603180779688123971760418497890392161024024690930190343448275353579086027508186820746532252847977111750124661021504124763036939127094126225800882152444869449911609461235391391319174011987253166063528905710073738240092751032708386566580617292431752361451724777114636053293135744117325398495093008339320241917981303269801891812406803656699587027922871614360271847062531861408387358636139774492456820031948269360005469837573913041989276551391854520983131122068913324385345474797825797310965294908297417009970527310898394060937175618890843034234703893973201852771707868232209888419898108349919451054076247594113668025782093014809702832487805039165082297494721086485582737846583152635505357258258235267477310763482036597141775805420234933381390566570221480767605030284603326767660505449456218697330032348224197164138202204439006104480546307530743138593115891257724524792085479014136098047424406391092802863765768182317445957410731558434122557517099747394777751895624786132451707333961802428482005161717409549010932294203229570558905280976941812677074033450127655628274003009742595455122828657923755725022755101334886932073874175533960914779969184402529783905371764812312059504116338406457666377012451112339439192488539374498916710463223873033157811172267562070377636868583762813859122625368778640543616815596149009709879566741877758921830271566925097611902601600824198344563469042094889786754089630525057758820463216988976932251522824552772292689406453288727051632443911989583659981897485343640213676831710741131314619968606175479664010289710867540771633501602885187243781798484122298257424116089455659016247155186056293159454152162222399432298369818416269243863576877332847576409495073015436625362449898319116793703573419175782048795476249400757148107899820972819765390904000804028609190548748638358718858968441015133976721825829160013684641046893313014189073813002681478208240770927766619824799455341824995858335054501244567427546445526166035373484781873021195971461938437575036656317568938844320287853325953397554297381020235841458574708561922685410386892892158508780121867467719211486409963242257291329218289952794132050154507199922835523440897102737957379079977180524426247821954029728775974582569434276652102682521203904971628848905671983369832881789267567052915019003098246079446048342506320338433609997248094482884481747343629718308164867129123573411825599503934150359943915342240079857998790171221709229617313275737435611616428648259461653792815760013856043210841200062179677822519031569639496857992357618411158663270413310539502442825912553443193007999470124523937920130604941616285636989293633792589813609293898161641334795382410983040622859053744383099537347037953190979499168835287927745455490908737408110499284248432778428556069070342124672179302690628595634563829682380358404185189072500199998997710097334686581793044106734354877709860763932494172490255256009925522587867789259105326382958847044838368499845489790456642442251319266295335293458256237801646658836257027016327075900025301319065733639432118041834021430948228002964623794944711394073467360368991794857759685088970626849122013650314229623895802338749581648713185637127650652745171573732450698172826222784267380577471905804751322408601002733280023978264903326837428836010648672777750227387441198905023716121907866527794497375376197738544504148318324028073571723741354639277253491907402791435878698542896693424944379148804820594779609144432109041313722665502224846409202478765023134428297023598272007948839014374827288101761755032313139466719135543448516759135553143193743275517415650818819948410716434701147016470496080574962696193206594211554568892621233588108463310829729678834320659268123084576163732677430726978172251646814770240396479289289258620022773434499592234032481120147084063984279452697558517741528843019931543313421810672525514482512228125764731135944094406433871056520125707937686580623700005676435318841993187722947713142876589767841574441798689484522120867819504877410563124160094661118840578752471701375064420220738593055173742308927650290031389549351369349402291936935916928897366354018575147272629891712820142649805328834109552077560408557495820668607374433961916966160084350656690096439610819527750723216456444094649072696727843602271103452728319652509404057776143806518459232864595972265984278009957005820129776702161395379921074532165430422248184737975526483156545378774298061200739386214503247707848235193390371035642589147846310227626373389666369428668552837648352083720357389823076293805200501255701452264947118971085455677954633947279725870010824984553941202030283128553070469611690778746744700559313191661372251069535501982122266703954203715234736957987503396171826986908308197031907809665252070732799643830497027373014532388631632862587760642839186506948910504985863534315516055815134422246382845501709966672544442733570463555684136340105558568311230375235218594195683880566580989756513582471713702261010449415444162424765127736531735919740307365173322348367195452807585581910331413743931064004213433987346075062710534000165068165981490719551034116103891103188495363130021383788278425375698051483914792780747651154103672247803509910626698314518198043308739196707226999537738326188716959619663706861827424625664404840550272027503789848828340080936389822426292572620730840730139012390371215582982543744937006775451747003666847710307966079427010582930037421354464958768447416452328895857340267256768551166859533738152390789667987860648747663480338106350294882091495253219590204945121398317538442793834058458546700323151452599397717582317321953440289428660270698181965311011302672424794147134726856308781022630267415043151916107204666711510381346743368597969080487614658487915691939570284845937542748491676380620918021943549098776231757316254004605462260613988901307095094566476875905481396020611343640664944192039796167580633363425124844608582723507873440866257204506360681392194311446747140111458697849507077623605626206308262542145080644303986908194088346298888639921904279889475225526243344463316640043637256104839055937569837573334929057933436591764815439120340312757747588826529406034519145165597254025036481160363496521074051487061967527623543259119519866724188801429813145878245832133404295984526480317816945035517354762013555621498787270929713750297815689854554605769724843419756915614096832306966652444847464563135978372726828517314220255137247315355648231353003428031857018523163080942780149623589117244370120261757799365333975386556510784267458661584950375309277665843827597720439094965306639176337370024510940090974936110740387589211276523825147123914534751420691124351258243742645075642824808975501853552556401562156491759325927283554775269840862657936553350832502626698655303290530662083729047753958921927102187062290085958586338160381552609041384064668448006185391137645381384236864963052047726633644940943316860502596187374896134806832846307457907875930685937952059335507688923654618996282887021685102893409202201186769322238872564300933724767404246441221258118550393110081783373975733540448773871734665030615322114486916185112799751004770647934041296550389386447117191788396236693334092914219744770574950748398207753796271857122735030676183935837686888150361304853914036062812665883933586370105727583780774560883708320577615933211545673791100293077242976721716605630435807788275430538606466513597824854995982472180838622521329892096664523905674887790286701477668643049545591599353707734360968632223852949353733565430635644811229826429618313198025434656138437885453335184732931312398452511106986567042977570937804749106289221610000795002754295053036045435682336923992812816573416646192108247948903227062771930825677137711416809707370856092637666825109494442734258157123799564488696709892318197171396279066635766819143003823719962524976306230193696646372056173655566695824505917712219211487355632368846600614894767416765184250080947119114509039291091874150152061555429661764152725549032270959108599511330677313419792050042170528778172041119834710622779016961972238032798762836401998428475420740566676917834581185094859204831078804827774788049329445850609238311864351893160088886612338707818323310645738136785123576165651702670076983538386187074548582418434120737491293360162878457248256774818374044256731222144443603711359939860184272211473954282944578116061583154230883559053258738194669129641923030066187426277407846117394539417853055966610402348890244582848118404045979835470150971167259376273331606581747559695255467769336336087533478371786824394925718219346428555874994286019385373237059619780446488390819233732225832281339002897857962290733390907852903143864068591879209821367867111025784685385452749642986600254788285549244399834708269328767727839848979620037306040867051915069390380771379427398859641217247616403403577526997950113375463441185324670649726715485323574026133598161005071509371425772093391724892908710765822868560093555797490736662113670925990872795114926718521600241417534594544741093139824264099011393624777428525174275767584970515851694265819197997581103897838876642612369015772362114372040336293050865251580641031234978536384030151619169326359706795598825725924598918676123136108903037102780997224008270942318206799890995369484354688171858246040157936557690346423472533100263066796181405302843853104668402946492343825242105340092609905781116819795728850729096310251240184985251724177005217533986893264082068591068314783802636571168453671647375472978701828815019328656324149020394066322097405644221081207216834647259807084404770311257182409621834904186632035193685470951031084638824540488337982480014838993729221253532623480350157460504255346410748645416132385737448050802854610395350369837928248523240063963028610140608962036362611870546090473741276222968188729588983430772603611039549734317607462773984482478097077705530502037244672887698340585058970766648364200259809204610890305404160743370168084153815484415272636696660499607341130075387289813545204909945375370694587217262303444905299700159248308523856704132205876695518027513737956881922279223193645109909124725735662802063622090347929559699386592416630481448348848278844309917809343863268776546197861731502470023730941215770839664234793359254391649686535134483450240360541481883243908404620082540735368277132511283373048879486149659095170469054031352593793440756640441167024246060411059904998370139220820505556416954206333732335516157932564902571014718091477427330755535905149092649787921927677923072563650993008317060321290137785579439423350977923674510898151769479210944452628433471523453571366222718716575843856202710713876352279963148830900877849147320191738664830111642024038514429446446978378800820074973975478648787735826763141166742824220558104886787498551506905096548780068280980314814981851038826472221433449259071472283971993894146983065373162616348390933629374593106699017202873318323975533467169206249604821287614289650708822510040891824320413494627044927969960792701445483449352988133021384755972104790319077075016724879932536476994178604658380847377805701197214829587854206193491810047301990200203493145834715525327471969721739617172897474783347405756246311997622654452403175886734457686455709350390116495572819259044581385639419068532867660970488060514769836944261553372992521605880492182768960596494058779937006221623001993900363714190425113005965893855774869530463201300583231692432450168816749680334824027039614644770780970926962730103032571669605040437181505780735972901968501402517711176875518603483436609174779651470836006540420639354543427803589307218910144424776644511656230903140740509903837397505577837219968676947201625466800716991100058113979628722766544332576712114491502714297766964962409539867589950597629201287759287217553199058895057331514893361915610211731265994644929489398089713243992005859334199191160415298614493971955200967850184782964299053515613409388428502590184226706079688566155372543104088934959455178744566610558207430087515275860954570683922699500858749353034417425892197201886690082884235243998184755102727413054723819167746610508103670060485856217029957703848402621985651871887875903490646932671062247775619649546447230370873846334023046123286263915450595879444464818180688119599157813839637761766644035629432864664955628374196331900995502682275357629248136876000159314298398110684492582626134533382562927033217467529889122759611036918976982325913318997823200947040674589799538038918747984055397660467076666119582280842703092936196511461132332774097457083655939464611253746609110571678189309187444060400737459535198196324414914331388507592033792823890339819201110625552891339037420162626258003851692708712916971843404430782229272296031164896896929314757299768657631226508692775398357560599778771799070306985392628426016708025872237835885447057643289622171544184727765151940552937670612221321558071579039616225849597162773557752780687459905473731354398714697461273046869198331321511144616876781078326800084003246808116080665148071676109887709900669719081793685752128684796078315691258798622838157912619960553883423375930384681570071396841895801030019601376733871993013132552441251192664821065417520135944982233868961168786294117868383818265018809472562882547974256385402057561525471121185781300299540022532984919498595486542915345242597647659793066799540956006693321018555951254949794554505784518292432972717548108651281916782731613765154392089475250157555488197354725942882322908712532431966453050248088259555965453282064217205538854395989706097815344152972840528469425694324379116543987008948202760193353404161596918740063952795979767316802443075621775356335210905017792218986554496570685029721961636793789441513066307318367154831541343543834643356540699107266401868025476213009252682811332874881190381583470700255220138962911586225892796690922070060467652097913322000641894977365013830431681251349886466806882839067918245131084250246074703158413390963728878441227007397429473493551551484285262507654321406410279947507045362180074651616131961146517273198748748433406901925014889963606059037109129692715148262169690756066218137267572517971486037930536059230388438560194368996477259867556539585695690932923481150810806935982280635425171414924337620106318717165942737524424809258349785903414353557006898674730830500540193715502807433720367127414125144777554912374257395866275826186230009398912037319607680071309948132860612060364148992237521922179697888203725258926131039923301004285326520716766677855013249180261214953405613645737254029876020854890915469606384055032901798852973575591290808826384807766169657455549854589815090899365788362843794623086974754557967959118499168175275797536131231669971614303125855184331100231135862597186533536789225701718713515718406402193425891991111069777371759055471566841167049513367968363962575797688266779540783544260706770617311252113801771093914778454896570087180598012580901228118235907478557117997988007028572977268497708509041512619830387351132155803473924518794593518494078921029569224917581030347226218518480123648849746295193420905783642599168651479221991577070477600021906010414698144572559035727871159338037658515474793097177046084693763574933880243594171116748763707616001691965361403792763010317176157806375814877436335490173145785256373828158373295396052043108956985921382039482170016669850307470733119453243223663428473539639724577547197589919319779933323980792173494313303769386864146005658175862078481635179250549656030293000640613785651473263835328784741767114559234347505890299554868240419834816684000621376287462398373546217431599837296218033308478377200914548621146783917447209096586224024145289860883781720648134591353932447780824565541427982256182056068430294207805098853378186145172951632086675446533205946570683729826391465212231776386170541520029925172469030734863851020724526524643035767085990504975486184203673122862691341590402780919374450595219399522825865729482426840153872030736552809036654579240581764345065650650365473615066143026928913342660740514399502182988259519829498357165723499818418265519595163805426119127570409918720381648229967257167454392921834669020265931135913858632849212289678473565500027819343101579941430708566144569115554399291747061274499510653987763377723211433419889056470101498321670035264472842496876980414705726199061755929229065364486792954813143265381230955243471467691192582710542533892300617322336201665207456632678172848032508091178949594365018175904237319384112458117460126521969269288756698820320762027686548237476255706209635464407487628747516010920284423701644428487171667401742675882291027776387988981985951214153053546844482738887455158056097247177485520456080202942352193271302687066662579134192909489458860211579565443958262660724064660604079250197543113867369830863035284628518357496869115804368043569157380866535795930957989117791029205042575889514451175117585232923434140735074170323422494202159632765894230074228871342627374078324584028290989104813831313131428383449198708516249359696479501398671757388644092487031039688750555058761076073900353148614540183017595957080775406399316994336440675665965456867380717524508581847439616533813814433079457443089108564225498580594923687727352270934306447536065658556239451728407850158925956357282510587202005974759477973426000835249980227537456567325089237288649626224771039530650048280206722170304081716905472568399281954275493814779394468268090068330820198933996351348682837791973243486255469864761170276347482779429545631531233575172279944826568784837910748250611217246709901493466658243709360017658174332129483039265978712855148279989639638969666733895122108552180035516410323016104488018361078112156377515387025044874330868077207243294337627743140704320073942453712135748253180247482392754996849567909322430234259349885909518624149528388495048250932103918397687240300004865934182857030814529510677395581867987687206543508166096367390474577259843485396958910559199149556286298022253598035326418207750713441229273149831252868506262130260699900829059303138208357916912029525488913953182142352217815972819184819554775006199941242573416905312370851545644300211754706842680822806911707860603475766687243312581062024806411858206560452563634387133864272107400891612433882104706977172215001104926897662586127756620342367702624951694150274540940560707404057153430765935185882202621824288172338412240481578644288278012081195645783640831470249747130770555122406888506313719772733232267887863476966554113025110716305656946893511093267087857860823890434880756720279028824173815950765360318599870084199407517325480872774542742534796867096905052881372424837376883727407117684703142983918615413048503905527035281081706431348245001855838525956363631956383198496297570694813805929842509994855031433540365699744988895443127556840872881377669990304479782158366345248252488482450406047981079329078728544593295332044902806326461727894206419159489699827282915399277234661150656461833365153214097400211642836713585258983077712379677692592627188001213150733219004124990721301771045258667658168110178244140962772525172380543936878956359038871475119848997119808692414079601002893291596611115838218243913566705748101843360994680027550317154681904226446111461992866529734652137213930966120620225645571542075410474896395201767468460466738991967854822060741083913706410740136234006788661923111040234309197831972266271620577661980039679697472388674843759846128077788229995292646772055290161221514737470999591940848978936323536683879119556699681544125911164718502232249158756899693039078795847580601059599890448260560049671374223410719799158236318118621689350816850363180944141815773410643744881080808830961424923888365889024927386407255134265195802489582713918054404485166506269985832136916576587949350817349839524296138252138456345069819816638741356720550925697782251445072528871011692583459943568666835341748421357291159221582329579873115183511219475502723374222840166818078352968583933920820012177102233531847224859552278857050297874819638245490243826432324279398520914387288321140666226628166590431258866476661926252516516184849383102707917213578361250562770932657723504871915276699084368390200408435244975906453668411277661690922168035988442723075037066275684706054462246698056952306620046830035386286324353041853663421333549581823552410199793944156136018165764964177562629465412976085524676575674753406517174576178149043375669264602508263639181802882942968059463162185003937693984023020644291117701751386810541486203672263698211381922366373090242310921861566380258811785127971127361700322419547069028604930062738358675870530501661454403753533901913185147238931037622750602924035152032357021712350653904916208689077589618957385078194089702113834125557634960924020073162798085887555993694648277296918821683244574702689289849796309905179221138777300864103140571694584936674001111773512285158486399777765320697697762932903447543858687761702671291858434920009422270643922672793654335189076346903847455314445754090626580446762031351722007758441909818871022829324859385231646894928345546888580423491526980008329346931256986531655589283446995738055782391726023459181905201507327583826765031102337547579864977156149880206630952745369948617641916169763759184350972234075101992399277915887862627298189353289763403045907642522069392185134069963170462321725753265625942449084263571510415123549322718716894397904389412020512948656353144585827858039650303772619839533731880991476130995475927866730044330603334350858297782766552364752613911527198309601426854058118323260426438616825479787791364372293812796971448307077282859004522442037181907174021508666828005073191014964445537879226942698159993531113408831017317318109567921844392898894092536759456723791428687763219494622343708900565549230245503574540061824635844163638980973493951635769931844413695478042155937635749795476551086136349102344539865889981525382975097499068318490674883471023247897949021627145524626278424600683274360994516540492601111598761668373412647990148832928006804006803821072403945103848581102106011664690581761293552914424007799885371129481248616326244172012053230876203144399779222328286260237377968726141540067368096576016338404120494166418393336203905365471589773275807261819767526608125861089531175660777517788673859628037452254953733962745669425286358244844003962156361310936360090301361690517174413743359161845147094343079366463590252120433391178737495697514295599767729301776086274648346481041522237246479457375671522966839761908764239632267442259388874319253150755391060602816047034483716795566511220842237919295992220637861213603910681199207779453700183861489548440651073882956358981104172825309518858142640256547617614785683087383516687216763628603661099923040915430335092385067292316483388748949401353624417317610314533285157974735219137501231052630707129245985956517322608138726646344770692892837320299939665533561520806100006569389880306763054322491017408288074913411171673076300564731706237199466195147126604770920359974411323726095490468301865457862341926541297368202359126658425961458491747288174389063351887091777169439320789929254510644048109934126020725191838342006779107480534606298828586961372561004460734737490569276674285284234906454890560335207230837416385607631231675413077082430461771256157956083916041635060239893978930764115048236299517461332158896640372095819310543974598693310632321839694438286426085965385474308769255456637430617471382645581598127850029371073042593046265121207349281114699818487321375296982174130142840356916829349003060315715080403503449827195254935599493629913676506816395308953720590404450303786724145572255738619479508792530191881160697687489282346065531983619361647326368867542742899760295653434591251639174274163757907337642388635784343655052279827795505560769521451111493256432059478068165092985579707750722394838254447356294328597716285764527316300944686675822010373897078727309751732607356839598836842584013984572190970076509780096230978036203926518360501495985402821565285812181708111320220243973322117481023873857368044000354636950805839451575742482234475279989190080306790198718457466304327544966617134563934799480148699342773088636091119687206382867107856349844124697780127362902765113252806330648407577595767797252986583662613145501045321715931857525262781223094653260219336178987060700612580243101707927975531690795775962135384390924146606366888323815388757942409205581391373684658055906540072574096272236166752553490741129620209351176030492537014173081824118896036440372568730451958681830331142770499275835465002689586397788409721065841991426976045715208658531208791524256937408505118809426002045857078466294051086639939946649751435160385728536009337307704001726093800458236822918505022774303193002324520607486518789200956103153330977523155925782550506414872279839913596562236691312408594684260677460719182104264029338686367419140153135203678683163614478702033163209751973661443798894988805315534222167454458309742612192889696923897094483532963027584329351024938208214723489491513960496821066781592988403548560117572513358964782338370090384303570589733921555006087048191124212370807465584768889017716582270565486727460492686980885555494904456551941140206340626879376273090799480936515910363930632970371114740497955907555080921370043396688787962165407967136246287582402782015502849054242631858495569251266858657519041452080449326163712429200715150310828356996695128561844252813823981812269734112679903362113880448237783554058398975319194538431392223621162983466473890218257471780021367834172543357513548539327270999795569647205787338862794721359791811814486278025788820231094774644561507150956969318737680928689353233046356410207331216861469525934991788269824536142158159242511883718889896364290082758570806687650014789840640523645595045772507590867712104169876481225285066417612841881470751160621284534362345044819061996968729573848528840547268146155459564399876750873304494423357655545851243125725735806315177335802952743862490204780095867462058619156983750878068151220527389073658117825852336198971752496038520955876739000174925903868791496555405664193370887492764928850756321464455104768389404359993617576308910464619622161145620650542058556102739754397200430870095185019875204563611607433753944755503604655427162837460977563330437312135011527528464386954657060802659806822293225557422479789893719831006673153736533544392372114992175427071297825732327722745700094057127272003231888171197372752609273068516088640445499139384967419817357493755728083329249593707775313692974475881635694250927031333131421602399412424116864178835140932296221240051926347129187020072166949002585527833815381880198819650941880621319324951117883166040919033729834638529032678417103520696712524117499098197536882182204595352470116401402631661612149029993728685917819060082398220276081848741820120786353741917139850236744765336065509684698916875837636800875933788165082499062827569820513346347858660316336510342812587075493748197329411962578889639259222524715185983467491716113185643365794923085431360349484002987535732734013918354028021978101022664593605712606834840167117780474582915582441023396469267080658716355224078932883220716803650581267700120599578855948225694018827808285052907825916336891944387635280237133542910884026992617227835820620193326250411425698132706319641102883341585508055827910832336455089296493738116224019337863604046475095366290502518673607323270441485867349725879148219514059565741333354705015574734106899680842728115213095414242307210254346183190861069422948658274685822277848671649319824235964098987824704218755181747511991307721704547143432389280696563983228974416464188189373990120895987591375254134426763899687313272675208324699155709551379754561145988170680290696950567531301386839374270163719706095296900402924533568495743978949237260919108665789858942342446076261822657376243080042934407329599150715665705835791449003558303164551222302266026139581740247500838960215969889619531085759516328366924559072212851749660641110738058865196555190613315872879175229198249429459265657957772408440729942117249273745816376373711262914319850901928924967095346319333102053563189088466009885209335512161700124536611817503784940414706822136163040317570883166952013137770169973229060522614900603102344294948208765529846578342075825777971689417276602550022166260654116773327596140180256120811258250037679700966301419184175166031888897019808594966122458022458387343649557410245096087563246453819583211287267318605770001596901252758901975744506668683842376050255595198146125687033934668459290033472771626889388747319355362256409319077247524372880139627551014753243546630949981285547044734449221986804898753311557868818377383018112372404472500957762669873568881043291192178454636001146935846112655206356995517596275053116293752359900753658153043417476384050840480971138650848506768139542160456955102829085968934984104559384071495754776082413489131154542371289317197403843888212602513991790832373827439124301410246875286304722427346593017384783690085055827315865649165106340371304547456791468962658347689995839427119744468872962787722519126105747401055107860820347719743241852972645799562272996068445552225490642658426864274493238426704699395322061867382624349249082804938839898091439003371092951587714937514900299168861075640138634800206438649155860930572157089532950806403886079147403873001574941945961260042585393896128060201940498281313682361367034672178913340538318636234189335922160062489535931634507869397816340872432196836929736429954621090353788704565305402792401224776252481796528310218695813302777757347053517076325836064812174474222539838053894201696169193377959188467593147995042968111169015080186578904694265993614749759602190113957101437027249574811397636276125744894725515653195217400994239279705687101446958874612143593701159148760708539223372485170174179490672668660202511878546201502100171218342154771661143557633627411539693443751670670993787652043251491878450342427133909311929877354369717925714515734448433301113313826446321908046899545985509566593564608045658104728848963579927245210370477358095127442880634108703282601348083884794021111301407587053200650434295318962626632295652782831609961680942136374868965459977747324962745360444737960317537808659247403885424231207380794819288009716137954219038682598709867164080187887195055415038889405488329643830643075538356167939902230165527190128793372394113558711053189412797199559579135247243705118908604607034069098297051099280839090726637057585648760542290599015220035361776998926053788793209801553842410250886169431432513599777096260637506081482348149383713244252116033846570903211822883799990744476578858828001004829870411670652653690099927744477192492063241919318993083043592377475766709069849832636977302193394217382200705810220423767340661620397618966392761396400400095830799353590585816631154880260301301532514609441395439060380189899869724567869583683948329765499925871362936773803370261480885121929745730594699028194605357792318866867731155096874050925039721226204176712304776188017833289650599548752135121811609138305729144342740539826999884500373456282130067781734283757816224691548713291761848463901628739588607924237919665819106316062321881484934294609600561147375195647504920707742202078814436866068683987581349044583534994631238850342141503053871749715367408448307682515177151626926421118066568824774426134490735996689867114477703553556764077005509611500223431454690840969378004155848820438781237699063672067556020319694814931752554058609079090447098239711449206738737505772460490558835457427315549051388729188057079474513481393603019710136690449710709396852135581236256538745620453081857380011106292609295757702539531181408320225871740339975787796142694310544120901090960138783005897757373793960744177164214810503051617853088930423971294649811461931519513611945642735224109624568980454969414162738349600623552947258871534977621069506917895561757488540567448952840886793509841533120258221506423289025280893056343091776353273573014745922703063205077557398385129083123573520634981903490631649644043430858156124755204928840534140112879547082676720709752365899888472198343823122138669794562679429313138243084462711887593515266627944936403068837642367887013740004478146143427390193527035275643763863662101890808856488224541820436817351614915767994084254112005736526134672941362361960755141943910365877419568816052382495347107928227939739926054263937639161241566889271072281245851001327369046110227779352068072939173721414950685435503099713006894885988816409912416154526913082430176851431825666297941039226938844028516708489774193823459144825232418263806661943872449283968083810426538681988621790751200807880361336609583016613279325829722248051378033131219797813433197809833265532424030737019723123982788791860720418089066429278872144072527185799881794610681433289807580574957770141393428839281313185779809316504501788934801981261605475764936789399498374029163702104280417890119650080845792243090972708162020122770050720022389426183461312301823391616264840075436334648615855737581714236587065383391669793695315879420348660302212233470279548089406006073374584663042328202907527402929928453009216970724062823237816440964396566366150384243955346804717701504299071831666133679859348584004441685133196708000927933115958721395292961636863869500018965889643703469227240425416172291721883593636305877973142325991945632559518866408790209845888663652361135754803880330393984543064724069348709500462508648959473301971137558652706810901083782649524889857267378405658945279050366352199970600032006487216020602037034662103893970452470851579927940023618205239228776295751745430748580842791464359976370413847937442924184390076635172377617385200108367419407591106913963516532257285362281297606014287582712347883494213466367706654796478721106406721214941682936729674067129600072831367272875124955906918837138588526324311024231125210808450731627515158912408644491482800693868435459257985125327051486978824155099311728894976717949072841351617332028678039072943191432595229307597137083384870653101872882915007425918886041980691386292340116510849156903571642876852010337791468381805107462175831732387474222875683983582935325352009621764800459113986557742198468181012889199586032716478213774721777061155709726483920884996670505255422950462498560425327574530543896274405311424618583748940780547579816399090080278590006409029011574564757674411591565738941219169252850006777120675479275187040891270694582366002059559565986584294586674372638220634898624571771640570280844222398064010707645074910594359513680083809573933619265705726729212806131585473581167855772090413446809522923170554966250485860718057692821004257085457653787280255763340157505524305284203603070802582240588202609030562999070390394415222536882443324836518380758190643514473581538672656838650935922213262765133862229027547166048561727120241808552319748379349312646534298595903345844039980174864488347361710439323268739040783757847803464163515575187489396583865532586246223639146439255520974909716418344683795512452890849361019012274643213844526690744289229823320910786239701830448732997151566834863294746891326184984836411012810596431797507005974308590580301281855780792477032037444057466279608583798174183953831610873702477679847225629167770417961426111682487893198241582404933411752504759678885980215098429417831143876532351693606075900347373269455218218143601953423497070311631538702338553369843820251393855136607455689273810426270907991345247069287775701737956293967150358895000400977173546060168899047787711790897837285126193456384714344305321820566013835948928365773269658784932043689787270627038350324352002860473520877665974382081283891196654883844613389735659183589873775381633960168743863262715989274906470523907739859400476646235343173869615044385457865179515099503513269062392075073360449996948359477435527548667089501372922753047330392407430940706042084332881491455400491871177806146681955060776438321374063012711856207397252096831495594112324746085218966352436749539803432039201015363391326179952825697169870303063287874509299414880111242415625840260192778308908634111295460054600077911637056958698683147237492293747938640440451706632322923396418177201676754596331390466681246877722390902066855810617260608038462789811354903208173964494967525043899869892322217947970873767065886616138690858124690016499758127927901573650125011851419394977088070730642346824004361373080919299845391242053549611261436190954707335858886317642541115132419141001970104446791409945812270549871135310853866177050607535646750320775883462722535035901518157827491040798338115640524715712975218911904390138388980048487007196102152702233627968877498884281163889115991203874466587539129841191443635672377209652085451932015737107553314298055914095364808595079124568367555050847310967442502299643956216775466748079256372058985972264294867995096893926048206084896299999817223910991834901965957246717780973284894778597558749758173464591049529435535054634018671619617497221014785885731328102946804105410795253743375497882410616329589261534592086442989488576164486305419417081258062493639724287704822100401925867814311188351569638531567828091734587359760053844909086563101617563703555277767850014777788257732571006019575812139556434247938729589936729901380117665534277498457629988089118610948786553356439454531555529082790470519772354480778116882656091000504471764301475350370008123118890685233274309510077369436083404835410998045881942816030466649055470860058708586434386844419290325374228510541343934566793213580206016270136742484579282905305858661375417850595051823892917702277460598019264247503799041203837993881326006738077184537932524866096718084811414994794516506761908291825941786430827921168679545067038465866349228748953862736697294255943196156952054243982146002108906038246179166799511426231312900805895158625054992080352453650085806342346351581339555198233491223108091176890757572807790387994106728656164254874053048700605652450981258316946045019904523317321613805008055229475714504550359676126666742353586113863468522588620994694258560841952612915986141334269650045230300446710705748792200389551362203920426271068954920975316296185820966251266261444692365309848048980056139198210263684345382465237140098810290221452923218120972418493804829767059098159877352369889285330713574322702605913146489229668192447650105614432914562353318161556691719085248089347176756181350421389567418310517213350158967088065099500136867405147268973300085071253163586657729487367965872448776916954246504484500066648547282598649040469833210468864528720060586027655395649474981524605138486751223708921519752477584659965796097102772288387121060355379672409814118137061968854824343484760457714179755826505081257227778226475814221448975918671559817242328029332295452355746753647337092456647951049951664620768166750880595395804485930157258036075511742294186996582294502434839192484757094196497955381298339117720954981341455984107708369458266982349431986352384363540901622402237414430309279665503578775093138639361155260341593188027125452463094033301475674943423393080406897761162785470789939091646855382693219683869454315980724954079187719418179652359421966497314000026799910666264006082882011215380212450782197512280864982745938781603697445473182486258383400693984471118875008054888258969707269802600585429418992372327664547670118930354500104924908326449832246423530156648305067897968125421954408008717480788799513704286556793628277647539833083519729717520677094885847003844034931672609222133280340254773956687406595298635177258024538584304469619667936662577055718068008261959182629898073885083261123793746538741146914816937622628246612425931364024388594861316378518083298931527493047958027094642118024564677681768638943613074897982678363765333726420829213543998564062842127260157603523299157173483288674617050166622862269893810372269661979855513458487172401614339495365726515513848598833880636722480712458978548006744603509379757838598286646044164553172107756506692918603278946946334002337817647329161730417425706494764751657078829973800631229141459947768648093795720556809495504032062258361513699994639849000910284668623248961736985836237622171647291695957379599339137557889968230536187222168309806304818779544407104621065323271247486696636448514062552721575861221256808156373983085616485714431863248168999744283004695302697397181306517557236212442363505455802399606162574452796444181891464103584957309937071819311795815460920515195003970694151634048295934040353957792989060682430776744852086642521636301545571789083823234079589662425831031501266420810815412454347783079910347562707237477672753252150091611627785815774867589188184898869770255214401791206405162539039709655403438884011736374192408677099534801026265829089106819162372698231958251163048427936405980239967042479701110609402499932814645222420308112409438695311540043383696866475639055591918564614569346650211234700672055219671342282198095982515668476545343701811018006811819414608666761118699198665937339039280711375841324919232043806150339749835810692417185770943837526943743927461227157386896705862828551984781991452443683395165289931406996536127466327570069715004772910407470245721704584812956511493536258890733854722160001756990117746369037577125005910931435689846154354426982339443024271338397524168144480137636207525633567331530994878279629251560238750160642246011761337771703218019716518215769102869030848629314347749917828466725216009136178712724265786021383450729763886427366183364485821680345422890391651372611472803680971779685720138988914564586018291714362829386565340911899899000729738555731685390915628461824490673219778887242115175560720326648226196199973260676103295558003884465361401707119286629946512122585512274934869207431060313693028355944483790136419949332967881632832318210013597161680471364143629685718170651686223385479789013550950263731513456060354661905991779533694408520886598766794251888703958511301434795691691010106564324729324123288811850067628168418201618483965048502630405000815589609355602868739692444256745236776688011413109533860541264719466191623273195495545599251679667783647043778393167049258808061018801872651443581707217031794196176127726794781328144535796420065108906379803325051688470688702504235695433147857817610816846941645342491660752439402518260948993079995643950934488679592734190812517294088483222380006608517576458722840627031438529155483053408901001541315283427859327130463863946856940941472238550029425384627054310683546582602308978991448552133103355852428773839704722946121884264158420756892791603306452934275308668080530593465096741063162477169325204142702001737598170479913926438809429922096011282359519788822045236890311945311612138006379045102050097918857388363635061169898241906120432529162145073232697529532170128386314895056910115940459398460452614298166913790017782921005564458596833282865617735026471199881489871918194134311240547543026818558820430944775648174216361292628561909876102612706198860819972053892224364806385422440785785792074810790929415662588559879840832852408348281796017339389015323387337473478837450926962715330185042447416981426142363269969516894193974003849536411547712192132807754735590730623778558986528980078605120353408925477393460489193672506001881340559284358856878853431372159218157973130877277469327634991923795257499076043982391612004363312711685879725258946835107844698237315057873785595845582652396274397052351715071061735666369570204598196666606688259626097937603125953871234189612442472893486978326679259671182537569815027462566638270264648555746619649407594536564586469356476304216465588279470123575975350163576676599235657057488112299565192599852483338119312175382877744880463463256457775791065704099545202747384704904515243127694504028528197776522273122242730136435309550315826969259629981425287328756134538970159414717931471052127481522373564028954956782071899420121600730937825565546332219005296965210784079517491457572601065261345911288223774171891278533981540820709610359203755461983703920333571702359194942897716311616608161802035126985407099846152405998851131704668238005962590852664775689768222988131666210879432083731238669163819729845531864781229429800086779972169448757000267364445712343087932045719991421189529543037213550190676593747300064991228773219589717584485685834654567838648449236576247747889031927924128281278226064293204687459989413605136434682044335455591784562909921107287167470681983854701373719615807957137862557524389133488455845240705092079866026895710510369278986006967749017665451127304510091660426868737723908536554854815869118451795708569509919349524430498259986130792507921503260896468509962235632155468791421483248350580607204315115263358369611974238173724239724199573365035945518224423857411505611370414332572764548759518021651931324181682811914349440994921238610420934717492575514376555651296997626035723938812252534043986123656002944483547781129150406283840941015429697953672222144217347648882395575944248866930819545617292986632443814491131674323241178068487361377495693902510154048493012997106249020765130094338772961463382815755366723855049135760581829175237463137046267059946902258302388949822272346171568262171612551717977586353899205293498583022000978281860244210176230603742094234033824076971385517000342367865699041947616733466243515382458190609103058594690700912532902788647184237176893329598708496982771510743087760145619582313643519992266783538291385591764860588350988265672001220531073271743445531066923009709920111246580049301208642675448507055001303610780210112801290235714156066065706731573075066164518990272986696923721373047255474364806590092254730972053029539342385792515413303214711164756274316174535193867078347437159403718104922402225853177479199747040691243753244972022243318744300172035700523814945179378282421403060305615866028809868634346857231831987188917834486238006131125521351993102049845393472640414552565605065895440868413676442856831461440174198547873758697324037543800974202846132770029336482716082355449209644424728916531655927648193368118953691235389628665073101941203113945530342444788073828932165975316156425836735060852990113356528453860899859463005663158511839845589695830234533325101716877284244140386514442338188037201815236289554592625143874370228538720398784946063172751392878530283495410334350940453855151665290554087436684290350964997040390206723474363140544316741542082334976349603918826530526883510607980442821476899781456976434520214024678667258769499190412263878928148956417816852842157963105082246128682985257757551247044555704628055901057166283466821761848254655926226152252998521294355805134372931191655796983997543984194579451570873955025246900186343966238347792134172104933835770551298705056217962856141438154435335486400824896561804600165716802391475870798239953679705527395129470065235406985121617895172359566313087714248341162838730533294093050431467545497805927555246356396344962125973641527225436402023312538254703333943252335540941236698774773342590219892160491004361770092005798635828236701855320969966774907948432798830725166526703050712202956481232079007714051201199235408344665261654835218196327215285004906682507146424381760142263976885179968632570375803580679865132425655421383862073445479266959631870391323511816736808351837754965781999430282272738172074259889433520182428496930736885549636237234709924437305036589759088311499963149111310807452834464700672890446606091298220530762191691503634421966682164026851815300191603985424687559427512749138087687778392329456774350432692521268238326544654950047641626746844636833617987112605484665593281052179044280785686711466684507698002342698476578053033620832769849535008986615308731821565643248509919582054451193615448288979494540406358496771291506759610940651483664831262172094102758814058809199770669104530962652434806091660927055150219914086912436995997999141751636420166458735377752347718625104187063478792268897123866183904799474057709138696078507631395635857053651241175496105956235715610807762698177143183929428583004762499058363639790722360808807536212249461688193654586943978524983608802743238092854201383591354184179837247946573981531056273831450133025813752693074284907345246870848140941636216528802334294375287966455469214634743667808218053913614226980189869838289501152137006392109561172655505928468085692823675578149518720450785082808339328071621994860174093685093390256014145533755217337060524669863097878161917280903661338598093082284922950377259552601514553619853323623716366207474782741525107790163549278777715482880706088331958422204491059204494126684753294319745432308116406549812520424094357444046451329155715676425467900137931844910548886181982019192215715196614836802291469350560393991592481179618583868986104075372967908650895768419140663957083143516583909500008368728230212192780555027395141431263430172839926469186791397599895845563091467019341306624051689471347516097486313412483956101021658060639111867361499770231234669629780257663854449702931389573309965427215555216011711968075129393966978390486079147254250809110991903340446174945713467995830007091996358816043150260212896163662698125404427652273312662339272394363663571676155595984636324379392943332039511364199397713528703343724697584125812112419494791363840219009077522024246708799762743884205390745948640509030586438531224057432757212189300711947070452989301886664835443598011128419960094628701848188546611932403775515435561287744498511634776800229928718080734859814946764034448755543000616906646239956552824283027532839339818243461485190498525099971112959213831251749962112081664928031783752765669524275428324337622115250027106018502384189386894292709341726926767427027475572359592042574727505755951790754172598985470630346585855335704257121241693888327210003463891363181281031150727771987130779288749078339973003362414063442810783410617382737392734334931281040357106862740934471402118876849900510754499248645032734136861891543287669909602321625733739593680982307784517859642566297187932873178722509351884890821302724903584819387003392348771516244776535045506588122683195856626700381208168400771668445022970150676380482227706012950253476632811626068112993446939249111783282152300645458889060708647656680893426403940383647871622681194029617594632810320512037022567520426669996217000030416595101504630222941812265544877203140554915707584263257710411251040862014220661286151872303341650008744968097600691006439074358485315600293039657958366138646073514277655847905492634565229506093638305327910751306038691723284526184555654391732339249086810610224921044723033334747477960146830119873893969047281967957621036517146870892345471985393598222416016812416465660610654587059954309036906541358406876534972777728081436647591747647996376981139580800983757752844726817087243680283840761388585480656066133834743175907350821119930056439616538126298720563627722468345452556181327143206897731332084795586064169297051174866358570933574209956841535704569270741331368544905603807881713515642949451487380245097578419771604327931759222458325626607628789712202312268430639175486342230612984681974664621143382429540317869681035672516419190301270913951826474606645108468425166911200063886390928585613892344327236139769532783031293480671287953049996572614031185593611339367300907698093201529364836168528812454810674089977156964941899844752346037941495804506690250902814854609851014536862836565255181457008419402526770062213852151374482212725442392038446875015500092168770737401202876480344427280818397995818471872052686125948481849504726863729627007275249281106239079213961180185944483622271198808899692929364633479942258676647045002734648379428858787297061970943435183009209384236973338790573740829179972346823414883936368474577002675367583798651014411850883580855742514492115429054695240152234741518919895716655812169424787312577098873456727991165842178430105129366711543206370783073169223008476910981650442679632972688431655537157075985169129029357486466631180670482415079772424916107569836709703598908016134416580675796224989583116729650926915734167443413866942798446075637802497217276280134546186930627684072674480005048393149909621192169908234134812509108512333918700994179752540393842890621624490756305542168683346003856206060339117656940471808059052811851929667855095343942593464711012546015129879391527119124732998958126680602572809801033856171298228571627176710768870653708153886061789673208262223831683910309160455249530317030626289955690342824528454857011768743593606409662406157273647482132951637384878901714380262375608155788427944001973250654329893301630940737015190547822418791517906002500843222636127262002269377369738719108946222419590035316461524674213868949981682981016020794487517544882921266940795863635262508313379678545935611927890601296268274815104193424647412499149012429427955536417682378578837344432384904344774884818003669784333051931321075131453817548655183998103173184532260841038368017501529480183514997954246090170271896470929382119075379879539838660220290564775412614708763365289888218637755894860188647616659127256322529577218995595069747857757889867813117915959013930170168811289585255081397867423603237184347285707689948248793254408768273571915617995061095409988072909935206597671254593276161468026620605046377041752114066540347742705988538160063741014424031414054924214975622474407858915012703477666331344884825259781259876474327561288545476922239699196452680965305725724290622431413998499019801508408967996470550901851169046976639956569684109315862360281965798993015596071628793380669079127118918289006275048798111919462602296950137961482008403264053859592425879972634023308162412952274121847242791253746694557401053494659716955947334835456355299325326254626539808248907585117289844550461407804572993092023699010876838960866579803019839654016415108517801542344002505055154704931332917796707558209257549170340569444631543035927762956086000425353354076234440814025380857605528905048578657893814197661213400808714199481417586144112676467806783150055493072754010155786166185009666592824765166093257179732103498966905720905592664743835415806633407770673466189335112864617267511309745752123602014412796359391553824653075703122646936164595007507914088073429375491147453956676964430312089319475430312807788407596407708016866963375477989542099772989079677667078180650079458871721908561901748129870038850907114067810371386710751418643795434315976396676358264118003258398381547328760035864148024084367779859788742132243616828956342833962588918342897467206521755975986736268335786997832422717905407025151490605057064437122453702016800082335623420516035382371521804713774226588662638307426564437259450774392554740754010953214839856111238074078460686433154643303427215100951550132162349831636158978715454778141002389027006888681474074845672365250347560248684728756966771254419496239121533595228080730656007554384997230766932270601072167327189157761804645558282746847696238599764748036192207951905963180896027551807643329540063593018289950387090506983010780282126225126537964539985296878229644498058378755844204559361462407608135629398314890142805147895898261938972318020483820513840874787513976100377182830468683017442558715422947546602819961064629441599039810209028390231790555080632967367218888490345058403918710219475183144907907272289682860575747623289256051965845687866811848024209509268095327374821300911844336703926608561064569805609840211077253596004098852488408737481697756240853027127816843438719767513225076880283022470262673689187710529325811082310123357974560712662706354007114541815873668148526344763319927712539324206990560839102365438110531012020588507359782537914634550474386118017772713808997316087516764905935951068182353689119472095060351253597481836375578993127328245819886602461080303160951056377031509898041196878622853533720247751366821678076197480072497361328900267940344260613709930435070894987758156492469901343148737486448101810690378314148498046214478801618419497361225313351721649604944960944172680127518297233342281812659446542857229573680734001314067109023553320184165717062340683141391858137467395410382964416495600083430043542239994451135162325089750903684194174702194678557354262851272155416793843875162382292756870000837180911947651577789588139219708625602110229591645112724138052408501722902522475591090849730596814300435182932320658990610542235639424150717575826087788924278970242067873401037174865759598884214798566317318931244658377099547913967827478326909173007109838534174731309828792599623721555238589511239371006004290467152789520624123444170640078237684958433529164509341267285992302396615164906675743792281240310052393382580998874908356557684441798670487081342754350028962923872151617999188364171223327627094030991050230930423086859520699401000250910330963051441194292524847315520452775856251029577244471579230743630935729490008570095340480132960644821626494195590726489143519723199028507520038831396651329760445253856306517742727468015780004971807837237948968416487094765309544686784983997302185590688163329628873413378146167718271865842690577490702002069748110018159838156505299477488246992034549105978339178274860685106143070953786256164699379392225649109790288112916930687598575096106643427825967910106613546692879211016037436478750113783497429118847225809393477777095246192178834156711713400112233893755274175634326362124861490690772692270791845060920732581459011860124134305443443431951865234065893405903911190691432575513036866072576472563971845256517232883001262476728163367995726215678409256135789737947644178075723885951302566302844559481469717896817644179866698284378833920182251632383104008459696302717752000861248620747518510716309340653680621414707649811936275042853468469962767138441447448969867315645195083571939999682458180589804737522725866086970001569255056514145186649859354711813784390869140436856926553464996167819744271191830735305423310923162418202841935317156770347215116328792504078423898487978181019312566595309812182661825662654420019319993955725434026141972029436834304457704581198122456774850261607512760179740234060767357980073973978820785452121138287484878053269752390520868474067411054641407490969036232947747291963577510344662886263594307531256641530017778320062970063149796384673601806827046315762699599022858127393553325007042435174463233507894452302000551964517377644433078032091708278098516864247241089205238497859644949943503219322359597582678845643857547602156302617921339388615570013308357478119043139192355535178419519749619075815261199205923588841451206114979301920222979561778799115763957540970769617320708375945027422488269479528555127509364696978749439703670343989032659954502603991272209432154419559993012488277169878928705880559502209179235372946983769358753700086009001157589360144451737098493899608165787238091018174612784447007457270207297945213554452106464555002681482459688126947031140828168544759393620851146297623895373240729420296658386624232761006792049547185061522451226437989085161659766008276819991531514911121518995255421049420061250917962104856674373204499000013447470925887090000254284075723506614036141702699032483482642683553282267749701337028657451391656512691605763084847627944789869635698193183787584453881172000998126089472164927099201018936736357623653994981175548502617410497448606405914429343228144178275820326489413265930767578679827932171550857403704879400962079294135806025967772108940947379336140256471508931657595789881640103402260828024894305379609049225676718530824340534565205443131815560295735243308906061735195344949900098822728401389903764430056505525226486901241628180910868064491300299607250006761341106137309032171088046319231176967784532031716376413124335628475471810933930715792960257192878094090805928527922896622891497676861126757410376922991784355822805733337299431274390280297796379525317335610378809102431336566322922797335517410654558586198346663334249382417637872942789188611832764886254723893186451775647936598245436865327507882198590600731556593248569403008650210527028166112358315569598383919752711844281475172103044144480507996022461328745101290994013018158879582071482062261840323427603648633042448097748380050119321620170956996916554151900691217286641452138942208321313398284705011143877368813740505242348569685747301341699173290955294242100690068161743217242598639101202419326291902114639242627078807504718422108353887454710934300299427055277330394152565524281375938623780985707542139192424130181652557668555621525932795064164896525840293863684336662279228792663542925876124770653462521258284987970299157785276708047585218215447151473822549435177203275828199271952418546229586751734352949780694730081337884945271445550692935418828578314437814587586039308370591792134289934565214347143586574398264066203626781361302707203674037328110122953580275524933502490693424263053521005530591051897388734014727422103518653279981167739378298608644730735444334783582998914580749155401122521864452317677727887038609414198016942442634631399494096007923990560501538474144659185401007694910142892764750883894269530828348564461179023959105032024932517509528902413186262776678953587546418420706127219033439121988153270601241224989209014627729542200715670666474231082164345921789337539176740597667781893263593282944202860229944824184283557891731433321888550548476030796797327917526062738020293639731896851054032839646046072800798145837448905488662355396776085458533970395955182061605277710525879312392712262991574192486535564640658844868949780818466158759390719932170759354500650817479079929664764385617800520242690251348586602750614254569894681289886448014334188041668340445603925564700903061905641712047664871708150077988131722133447449516912122468824963625125695417245762965881466850304179761137548251979027115070087616437545081475793596812412907161732488690731160755131341282268929630127192964640424218147366237096283181331184559833933112550538952194939207082993577673769099732635471584644337578620657320429951388505980732421621762921402665389947646520012995714732226753139703652303562919590849812430186605223340635566905003525009273447538509175310439590137940881880547117257010491334359660955489528972760789542373517739851496389692480863490588320486070009876806941284928064563406226082815348569017580495212164590879410547894655086283476450734981738644132790190126337733365035215360147164215355599544542927651797470845290001595213774461860431516170474859358468624210099321250056714403617788623112783133947392003992604511459301353282357691677518585649490183141413168512305581413064089910375745571955948409040962242312764261268472295111901795741650794046016596758511650689276855290860599497434033283844799475955694199466818544616591530453758530201407186953598561508238947620784487400710256731566995103249297923702205399524543913960873239052873626410763994711991507206920968894554586848910461450637420387634274819914971292753918287330956886467371470154301194245346561531951726198304968146106920434903018582670279877971651667762748417107991042342455330630912180475433494194923586985943066590861289441454892648632698205724606505773608987705262654918065420583731084792538123884354144274569933075452894750667701589978636733104946943637266493906024432886845417066424820380878325719412494869152648928772610877769821601816692512668486825557184001880447491870799336391193930212735708189446968129333525916803214894624541679922462132001701120396712636781315625769847928133869776062659339741500195846151683339828330467547005684217120376802862505828998266322375342067025363037409448449898889055843932308432979510278608020769940368788579690259291213722770931206419115945847073834070496208805534920297737571697617641644788535572985384130709516547271831327332842278456930535016565173001016045399477992591014811963558452298700179909699059555087586051235078638735357801696349340678569300982948036654017625091861909276138996200340798223820274684147940001303202093163314401492888882293987327808383400938529852816303299466315346927782418337992188574950188225389850074092704081780692065273610439015978931139297627592261232953521896702255297847098095013011751763641725405031620613166249677037462303985920428899854917441702838485621488625279348055534232516166328470912983204200142078414189128182158410453532205911866011163397469287074698421243505724274817316698062493133589208957393971201722467799358085619336314460176288987272678756330643217063051876422441126168268708256370823525454391908781553669965394744573801458025010839070939302516900342232177351461647918666774541365952653731633766089531168488882655193455450777546966975848730092079120697629445194309419078050265414424779818491959654388940806808205889994650261436653820821888573781677170628552483005874273364795582710748213727816833046495324658329511537967080294541555361100618428969130568540196766535931026365086578887945223750697991017681122814344066821598965167324398503768147065404040619005475303972887354225243664274363500299206505529414408703834068910810248505041963334976627056583022409627206712938509089022375224745365799621476915471047186612922473535998348718499600028128043509986936368327416579122540337114083818814182927280302380668532535079120915775133783786576134348236468919609933169253850277399900240174346331082324638376824082746150590085731598696021193411641615661574799328381223866793212505983131414876692018644135216411501416476131044354670114214402759499850266007600345274263544031143636090331444973799410728092662094891161168716693781742461823345755445255304742402920796768656405602316467425841749068630964110789264009254722971418488491827673025022482580611304018502376287829375597215676506199765037721968447249047106837919689731494808602620436773204021338907243929624667450129244021561041676090477536921643088918640780539912733936797055573097257532312409039971894430454502863120929705868823397086914701414281720683538371542903712324850307004304446560644097545754082673008980671113826616708043712912652287318687594811255347223048099117101054963044278139346009447726807328893923593171596775352077927462209646601733014187801028908441579269427714464232319695981705210265856091072476882916924683246704754315019773541829436060465105251934850502295309096207985573866772729245911784212138728752395220488553664227113558988079372341808414239196845689356630137494060827216001800188763323641117546287299247844586135006202715499155571879372888271180856792304860121113547386429436980292875428038444030816220354990505386876194853545275096058135582575139540446820578728885586653373985878007861523291980076225068943668295228826801767935147035443713348833569567862643099574032047029227119068876930923096926700567338323338085726962344830100328574666674570217381961043276776870468325391666890360769311387389068962785003268821433543549295312255212943806441816121018842837912676267880837942468643558146554698096183894063477555323793640382074828144452153726101611756267700616433078068549260473207459775798755245738789211571227575695502802545640912259640807555677047843261785807698263649395122738256009092773141027600420597481505266890472307650055847356801975521407733200499098555721573674073791536642175224038543724673958709144887521753310421010321151907196507689892828934599724828459237502635815347081511108169623470661894044891849687916193443073563260113135472875495965723921652125825249722649927693006132044378143715566971444838608189150830520672658559386159308111427695914341815751048579471846604943544994252323806496585891534865574022406627092855487303745616795752898650814270922449114291345886567726443604709779175426107728854001898714008225039712976623425820880420926145450681866919036558125703697387954758595658943183421943467451258700235464624093614832357332908925742456267470842216786544979575899529196544786572153543796739948966933781256324461427222295651632581772332702978174681263750528004518321647591764160750834183823616197125880743424158146418047462258256978734783375856640047981645081968663961050421131801401025714488701803252479482069605755572711079348719350397786049506859064471272801666126865522525574358518564214972872452732898413662210403232443965881376417098704632059611783641972089501718199982504458568932837873213901512679753451606032446999595912698237417560973472761068544955054373153175220810495120334138623948428932764191256427297548649327109848074342676547661747270679613048756218067097155803995885657760100686723545016284855275348276511126904967930470128534166135219844536138217840563727050812816872338825985607254750888573734892436763995894829728510317354163637290045086898102368119654604330895749461221080907222543163875920637267668113610711197736091404360935278720073532484196349247294435246127503489676587085886439444204928972904413955816302971696009858781694458692262808176750140827657547946256607690277360488889017591560159830890662326968162064221087067547346591664878720139468402201527620143463927281103649445321773683017845969248223427069424730065415228579345455915784475620523665330332652226020601565857552801594365663129645384522003032949360237537463667554437999387169132946035314085034380981615364597547747254477620261201818546126696254088446749159369240257672669306873094542213683362572525061265192474152591752846613475336630424329343992694309721449146763197257822849090118782328138046542949983159931664919298637144848489469898630696336228480915597082270527683076232083143465377299195910472008624375357619218427812039624418100046528172677176233896322055826212085293651885501071955822272824777549749024335158007209497851083559049064367948499679516114671475500835406984078386123458260485648169834192431482583322168588193653679569557937248113485759763663441514122744010630234700435581095848050094095745535616077066317801615610942808303817152590023113749050930474639426875116262427504831635687032891437439859996222832772825074331545129932251120402114409402945000512513114093760458072554770977757589249118967305985062879037000785397691056220257636217157682494494026566706528800000303458865018912834601574132426678933072749238579920468764947297705127436556077796723621861496009617107592999093164367708687889797910266783233277833009570188139794699016301111767989254731051058514077235189060876538037114360903232220563017413877426440930236380673655256143496447327798129081933236253743180529324594702190157340587404097347222434625957540922989588425414425114071724681018012211700877160758462067514727497458297945675529086691839046114118664720048764077806890917782189850210409263846062031648547468806440129177891540451105227308291648463008835970559379087474127891933848162839893137285649494687420681888593469154915285514673169365352915318300012975813343002472390103187464209200284180997373010907784087294336818572578474994786289002500119382322148388465151454435921341815259834043182200897960765219384588481951770567579047265127591041521084461395660849411248334097947431031455693096916984456196592002135974416118041752764797132243069752610911805244916116866177155705936122167430776807616716453734090661815469033984909862940634307764255007254420152644333320373682453524063376252258781879386158541956774752509006745688022441527212101260734984978083647275264511999540528284115436716246377360732761824272782979528978549006696369904197189779024268309932914234070780149241491061030172680624204257900006578952501437112904804200154386552757299360646390241478538654281554134609413104094615568725420467243655667131977115607151807713350657233758225405580918156200334270564325953519851619389019597805033021783498762143000296737711938881508978998128407729485047377193241390831665129329776424915681358130067145656685354557673470118997595473275708046208742416245264125312648992625842349557629243624242998855465390140915000646223617030992169260734858737938796518839240251597345279196536299882124151451760045049654096881747980674683586379924166458663078451010157210456228521055125810054787015041362793470567637249918968790088319813613078988331833913610921588646628566492470084269992303051240524924719454032137233536817297126423245356391842642202287453794810993158194880951382252562719533850707815678959089428253213130276565997081080634798702284198510016788470308613292786076301618947769718481749337108931235292246671664689439225050356232685565270269672211087567545399927595926262326288074428942975470904164675922715121381067001717148590136406374595502603062891123904272829020742866529603341039350994783530158760741453661986744300533532226188116879853909030342718486103257586036830531413125805827340391789349614439892129100757906101043840398674704081641830751096731542917671104017099466332177181817213102323542030428500524194145713001344668836347820652935930008136790345627233827290521279050926640519054651878132073393796884039553543077190910797342110608977412187300828423572586508565200617796308764978684550984366460477623360930308206003203721640869907993343276088956057400746702411161360263729152355107274158762508259799826886850704168060533893951508220752295497132576674563845488550400725166390643740963915880551966725631799861069172165025532440122835339753162048584942973378979120479453909350493666314128674351435049683466472845662214285134061596227056233714578921491496717913539791954496019693885338177620192344461153236918186243970458895523092575616868414935335401917264692291968559832869539687542892568990305838362367359830025643456551466041095403434414109441635221431399084054111561286825660729260436089909138811347542745405758033542870558213525911306407362254720624140884983677791109689615273186322923220119469673205112329341269343660828678998234543275583090138906286628797685413985435553407141795809031626243827940970314985043734092506416123233150625443114539525760965935589281070984305821432013492299813927958323047747957354050409470385053840471830834083064320257885353295895019052175142205012969919711955826905735470718705169708130462129558569859427269206638387603027032551399906108835086959510425322766617981074432409826338226305969700738096375338721007759039217835444131797682548128655557014596685099230592655702497755043136042843333743394954667112521977972804110996308176072047836251309927975478203634693417193479222365149474895156467888292512283030173291341347280740232928685887908940950194907823614856395863901390606096920371195236630694603104247832922164908762099108977699901208372579227204358431892295476591095336118944898612009034045762819506594630465397989216745428152685838048046948479676441587779977339116900262569145179160114247407236647691046731065667303797103999431973184330529875300721814369527857721426849154801489490147811808934526814997624440549358668990296834518255930448168414041788666466251978920249999621969259020424977172558546755307603531473172336275377524600024544332976952987800008204218817406895634413736633267154221444623273287009056175497777065067636163592852467267426005201720108708062069254828696620222922250183453399130440170332758069887910327938951368832244939132554593796607990008390234887920823486282883129371022536190174138494665485150870161299674510814370707658240490852977911725847023239463369644671706043966807053977468076151765950674440247936531687451652261008840773561250971968237507384971371367132664756873495235994284745106072992327466043782003373823886925119199106059300530152227027066559321787005892409512311054382426209323382531153406667627994549263008404929953710168799097050510265493536475406643507608536269330567645046153108899763547403220170058057327479434558818061932631516695801224962599973239718842493818928103117251989964188405217687983024291237320982381698995665286284729176224002333988959630986122086510733693628648359300399891607052326521983414518963038246388070918758766944742425545940624143197002284160493722455306280918474852100437485853612114355707846734993340319767125505457574398492211684169572766371673218320903883507693905487944009947168470774916333316511717252195410506344771018706893705942080555303956626689243551722228167754425465473900236808140728583772958515887821828437847716878532340883645150884419766514375193401197627210774983280769889539020278955548310953678891135891447318888809816402184760564833397510393099723355870569322010792525352129538489609305274157659812057945448552156065884392259341478844357175011421344985042980923856171583792662139233235074477211207593454351722520787309289661690888708570598181073677459107107093232894306231544428160523850292084313541627842413216138300432527594306320322084957974889627864906326231932661021033388869974493577781713764691518872977828910895055674243702466224575962244830456719099786061660271110050184795723672096203152378836651065820978552501476627134676440436235462687390898276491868005966075859088319947371526591673702261723109546566885245753432538542293227020672351646046423020479246617793665218508952125983153355299433659297536106563770032195322265626201300741244668631971622771008068360554373861043459446681800948782563223446842124314443504891986237325745679882263358450933482476994141607881573273120573987981778626955416593687572925912115923304995338177357732873774853826402009732337469316257066610068518039013325250034105876955216788218323773383083257272660795805255892960526563662913795904516542513205731615544328502638043967550035228342780440502778124827092116703299924571556396527993608517780067944793557305880977676247451636885704909518291708294745576808996901258626787760731369239355433227090750850556698380296928889422639264097541291102487177057209455116403348685142764291275159568339739015828268400661434581258107406632305572582699726446614487583060596507075965151903688158654661461846712387856310748959435773804425313668229794538469822477021123830466212806824039185480601002618196122175807901308424915397064994870781479102014750596522715607463151724647533595947560552239182739765524286555221234668410040621696439178529010769323234447538402181987230159082899347111350491203408039818702704461494901421273581044816516031415556335505613244488468439084790970130882096925112944849478845333177264765382648134898560242538359833099737341644076101816521463238368185587918523084109986027156032451172579094990537403511275609110113618123442452897627313074014360851274101243832840415515704201163751940173690317516946118581367910485971679386229415353694368809968939386066818833345684771452826168439810606992670634745162101763912282622237225427402578065423972593168018069494002987651499614811247889436582717202916158476762912701058915775014917997533348557091344240884365069541872327061303209049771222796694983694447026548815215980037314588609766788863601205817025104219100740921370852904296256556834005261472361893553507260331716642064927252215072667519889411601858535040212212969064369485641741064044018876011779344221640657364581923980059759344270569716766654491304067787017635945859634274306684224189025235329049889259607934306536296147610590665744438825653103469434290311744442890155694272804749238098083514807803962659608989043847009206420141057145905753468275076405845882400701778381379343417088625291628341996258388992299222108475934512874721900266246977178626199158967893218458378546683744936554927574680246674917013727408877905644307044145185437464419932475349660996865262381106606050979981299683863097207673208178621001660782569507671569359983905232907787204240018452415298165552165875972423724540910717837828171659946522199997221576300729673893809356032641889892035997475229647255412107215591419397296840173576286775741923776459784976616160999865862499900133687166425960006590794120016486406298116625651886105825223562435141147341795990338849282890653478746720752343017132650176938869711222026062718670991277056706688613196205148438586796382106808604126453248795363429422390209518898556509598923879829321663217743308327009677240009348029617709613271966673133284554635947274381923611163832643832839117528194396825211060684910337940968568008721851364657995461008676468706500204330452768130254614750427057340874729536973727909374358005101706957306284305359094005075318513669559194381763463784839190185216304075571372453897241366621999888851500905991980330364782651715097446322388435908736327399197736150797409371875330298622414310949295724271952207992873592294467721124358143848031148005884960296751197768379362037141951488526863823128053983579653188147888407913324865964738330406555864926846530879492730125034482370669693792996363881934152330619306395849748708940117993681114916051930221919869148468375019250228414881605620889806121575205797012547164526694842727466972678588334710088811617110913470885975125289789434565214874923210781210830536180079559109467675864963409310709243416921046560266975049591441341400171405965815365783065935746396646383318388246906257162095440740967696137057741634317126803427275408027860469574630729268758398590758277798227466708902377210828885880503297261973318755263116414487384292211658551107881514404337269546101893847119886090627910435084453835487878914746000108041560212270032835543858226043160708601531459161224686597026597210679924994964434071779756641170740755241726116255550023671737909663440277571671021188659965088879109984164700227858346376303897987162712376275026731588330220052246235457616987920721131988263290770296601937422979012862778801193894498214581339703247541414277170781419071720018862658435497533618173420756707915826387202729979504208875055695611385944958943211821023755744941577611104070146762150449595249953219478364207886817119879638622119752275179519322132584978428702861762077224294872233915905863185272628213275962406947864337273482848164751721624704157085733858578904213742278914733597756772900124468461522874145393179530208247291600334206628380196768617379575611150815256949757387625478709199820069102674527355523497515575265274517453751087810812696208856229211216097648451184283691629235173131564138143416219299807232142308029148825351256069050741790729483024347846127971636462596425189949401845434256975131697892906714972563661269323398280787625186312989460002984726080658631997531189572868068954352236836851473610935547111789245275544401191694410835356342666481427955474182506349808099946541558277607716552934568167715354220457505649768775022162050289054139174410876871242771994366750705120767718863072306542757407620048506179543529137341414819870272571594502734191910016126538337011704427415272991806465722237389404796871461840934736911738691952584392210683308206805341085978763146646150801979791602126999442346123980898704861709487115498586997280906339325252246178195061171437076741270445842971934440907773811618242963480165301834810464176177905004153790259289509188032546629158171916789076170178685457855201044441057369062525038898770815113745320204580108640947467816897115423545679864610826940069796537931950659996747902911994759719257358800417224340153269729791958655621078202662730527785031506932548797182621302106632518856698762731826302132925506918989139917535218358315674625362938333390986924238979619217049554778899807825634479366834626803698282312081613455839415883640630065641202275996306291112308469154900542582860915752803059420479823916370067019747212962631779374570599092016445340410483044850696055958674112248573748163905887412354081727602507936793750636368333685018284053388810364258485043784054116115570109943013654187416995939262198217899626368680913697818936053319037696811653452511097656694845644766850734726591763881685554967288882599221042477049161380344569664364453865223303532969112811527025436149829653347996638779495695338548216932495521349774489586769242650833607485994808042628904453935104589231905835534242637949639584906300744371880264319767511952638971848150179445506983682664908945570762911404146579725573914314458380669763381865793147291109189105606898302911400598338744974501798171616293720047491636791822118160438346145038854574387692818795189086588724471916863242966283231205351058395786482578216415058567704605283581023854934218225666256840227446369751003153592295125671002686571300183288434992973102098894772719257333369056758517061236519137715350269136836579614217299528905258507534513920788514684641108391372440749789471408715429072249060849734158931064492779312106148332843649112070121328174790122790293719081869794895955678063083490725917358193018403221644290679257636825909891951318569352682713258887182390846455664476776169366737745688996093214435635513563053711412819928968324164887344018891676518217710123067209967770848524683887342464224617126227690293196355849108329100545167922094192137849646531358954554835366163620429337997858463769734116107381945208360829021197069783919364318104380647961829632155278256937455982338690745590773388676521981345288015136635573208935820726429758690275892397458185801374324056142413718717893330143889201231943035340550867528034386636474595294569014673522898048027275431207047903620585814069991339214968398945382900233969382172822277272249836866458284318438442573486292604380747513537953407172127368021002857169958715417834804723876092435789333207543913867756075864049468866398026308242034890959257714651751293372802150031532847985333312428046783838711282985956704606973464493370763930087155442828261772244332826038070358682313558970840817961486284143949953991662488052420198312544004970629803624700219862183324385977096810804798394766626360784238015706606991851483439999467853801198259111872647991110424205224410216505450245428436178876928016944783512389119550909931433645154238460913186715241652512036032808896903210111443799942307823561090336907459248071735595173253227186693003770838200085830268572560289457520566760930607051514062499725206739671177510829586696495604741005569482095914050739099543694674444570842180620956673746486177121076174917669817731475499814380108079972392536083740249692926645510915107396353440702842243524563832702728912946490069311268940915292626053237678625322306468141613524129906431977526905057327136782630149192070509149496196643500275654169174522217523481302614458869805053812182022196557191430674344775506666483390256655787211929382067486788602415866101933311786374025781556414181482563081357996817839285733730391611993228973293790224231673525246621445686480883278763170786559550901763605166417812176587238703047724861792997744899054635300485247714310835196856537651417299801494892257193319486875759800795817300098087259133569426293553546516615467552050288733558779170896772451487992645054339530790065528342214599032690531164751976791009437349807077583788422966643278524940740645428043522276021695503335684243336059541860911546342564614123606999730522619848085912217709059736893260438370450231545141337027706653875141808690426918686602227737511868298912791598932405840447522245769132708716077607125985241716716384106946617299802411153193593375295712126749281858062454224967992684888843970194137831561256486765491676031561194833218415700814021297147008872279286103408226455873361208325252969781341802430445657894800390168274133291035852380402485372156932068433883773743661791738800348713626884379936220141757743464035496875051056280709936974808735100119295540599167162674401420961206679530433097658911476185296151140387663483877898325053981724627971111620149096291793850514518845255585894319688540480056011290312783932088187188098327235592676610990489361482711252835492414710453883402913711796786070872673265679607299673997336794336677548242979456879530722346793373454531622574363862152119069902038682756926730421167722918665970140945428413866406827670821331211147183660546780346719085017267448703197355575683841790121945794005412812245714442942625219644025134031266568837664246144296852849785535839813225241844741431830393277935965546052638061397537094633520886490187292283925683004449933974284511652782036959451658985890551929307144347967410139596000009923534149232286074849251200205182940225716699511752884159267040479363462236632285676278548500454550795691863978858332377047247423099558130173251214896631220451779679906575841341021508973777898882487202498828009205892818974809316508038088723695095970418040053974213443452164055660600099364196860076839913393907717189675432648930699168122638474913989689384233461220676398333249640059637418580486220199711331131397959878976604679399622157571745062599575746014114165144962310894727073249199713824483800116892627997097191087270170222207632495105411448440290018894418324850317700517619830683657536685419747106380803183453384712968339490314953907889814391831761413296084955805477742704043689260538292411187274968432862126664959503684507362973302895170544954800485622646585428899229717921593828327968569098172575276295098920163542092332671070371912806632632644860288903173470306278016479528206616195711675840513508460475298836457661323417291163080093750974323116579482920568478752987007628075337903325672854260598778142178282826813445942310932533931674944564681427366420206601678954212647492917621967987861269272468140926812081454238245424564403010277643758035708903017539678629684970068482769253564162364275953852297594520103464405732405414547801679586473507927735187822786584652593482751447363664209343322587538728274375962855854014953266956887653936455689081117998578542658768220112288485974499540042844842657766130026783457251374292791341005423544924506059923367710963239658467686548641706767477241212511903262697910362936769295950025136805936631396049243020230395674561220714776502961954911596395397706347705718922520520122132365043384630102912263443639218212641867808615637832240011954031636603779826900541890564642683275792217538060901106614620549847008939252633442346329343289063494953353494599883743332884934157338274157196257922317539014499443978456683996636161672321190758092593819290220042479196347712734399800454428862911987620579326593154613709570144552572195501906679496540300732530100648915598277714325197908055936535204851871763631720603702713953922701360247574720525173802632632075692546045587711990016551174740573326746607854624155833500647584743457681573510630275683177752580809087916162230174958073941516470931678307480287491238272529677127707772206902746200722982233062064123249718118061251890620966483502281639947783316316077382450497359836810341705572220414206688520030859117600466228546459505843789238964702313790167063198755798064476779558611459624621452149134180724795048686239989106442457056489008490971245175620402411112870529732998587209533214012026216765873417643712597853131522302496457144478125819789521939218945857268974123257516969883908947671329980383995067784704943187466810417516583090621741429289977028988363465361495058427445171590297935487976194623132408738683659534393271152063145543919268266192689460062099957529258199407053312166817627821950104954159515610309425115872556994218326574402983117508125313682059901578905375216742135165400520888327706412016534233674767084003880457868595857332341983535119389857028335628989090924051734943777175084243349538024130015040339268864427810263328746474636602802803055429252265291358920916763274277626351142690943501340437239658615911934313514294472422232416937023963009238391911248081501156410285457959725536645663464827286828885347854338108773848462009902888692712991518154433586150871339718627528940527640091227756840989546625257824810253928601557339854627584029769988223668457939543816760070481858306196486057068701129797561272737724906568068058126930826254490166496427291018754423940508255544168510753567858737259965301788873862329356384947167266392543696292068075601176838484125497344504189996680388036956760545210030379757170679650051004772192984589735170366755318117298151696216408336972314828866559086857748681345700422218492701896660573906672337538947405617809224977615658798146367606944867933078727441309029276790821327853435494322263097515533874925922125689041396550066817137835670286185533180008121601820368169969415556092486219351594317664848723493556966210041785604243046461991465322380964582878537933896259200391309371279352804982322158641932337635436681824334906208371707323111229745085788662033321587079894952565023793862131108253164380755872823511114844676028632605250591205227055577135697554179129403246382482300966795367555046447768670233561362276836161055333847044197342648160186951602586202039159024275358846269923451742221467018993202196872120728686820144654189686371474060278328392971277297105213534955854865743666787708685400293750648608159102828544371945029840835999203968758335023974720140944672400030409634750995055494434878462712209298610431324513551141984619905475251737527029235361162662761498865233941379444643650614766771429692833638209025220568583682286869880797896423028503548672837049665828403124331718603101962424490404519346440919862630915170101466349066580648017609546927565182471337090596480004353140824689482341918930523071251037690316061667617433264246839292744855564802692951143648813197114811348924954424488021278646568263574198993462449820978671697587587799245409137383207642543576802085643171954445458934283348292578790686148094823884344783515804188609972958239812739958006171995970515595131086356553254648433474687931169646054488390369435679775102884597828837096267472239518070396104252848224681128915245846953283321448219381734973645193220722878226196216420754375542454973813238174791438779976899710141524043802636849299451884807289582847901483534851107001162366386722925047493374202155758078984020193898442623669893046656510015471198629001295203483169658040343160973054532744300873374194791133841953310973042879956490014939042320163877135940079884086217858725211241049530612718819487794229246404580253681824281431685808263255462872584067369998065742231024208362298608290009917588949776431029562474887007078080645658191615446646266474372582641319990186233781780446005200492227082858147790089809807653849120666043847281589624233531155401410684684275803880455856548785390489788615523071960757061000195346544053820893417882788784716272475122453433381603150290192181255253447185491638285839650243463655789930700716954304779503595224400903468305872091109943227297642806032573616296575716720370257030156114531067534196401622900247419940431546270006348420388444516509826147132364734336142332308817723549368886113884467534449078430625620686785728946370332582729144807785108386888837587817802334100600055663955725340777602840086500257100561574562632821079479347244163272916732439352769184955205681124485777207002131445717670724433056826508904271511391048431799384421071222673641001845840971575755992475307675661019445455963609266249323378264560012009504080400599199131167301108974229206360597348224440829940367165788868618562331838782945081218997057802676964469398104653595082749888408375706527814124049560637378534387559960997367698337983039588392664195442823028781838445016427443342557740105087577315080003672807583795869369378227160249234891361628550513367624164858632591096280868510069297844619513277030748041202682031933999910378894554997113345977519022155499472351021644059095249684897810208244824962140072265071341859347485083300788257134167410101175147903630337106392768113743061785471510387105109300974858334677640733985988927467245638561170276752514453950750481993529766501283817399837781470644406546161534168502754967889083239027197306477819261459827140002804980852476957272597512326987954494546173203175885721725770318964526043791032510998996432019312206161814010218248131655068273109194781710021010465890866537339047805934085461303951980159818002353430081035229584147722069074248344982841826066431335019872043972074946117481267664941703160443208347655043974491760635927162703890978030293752870821070466752081073135204760067038213669726947545258131720658363913595874542432037335744170479328552115486469323732177448875154111516461874620229886133944272224687579255935577380296956631506573502731937729099292502648792738548189726036770417464848627421762776517794039281530808902038554600747600121909262696042981968689507864716143229673450133613461299153882013576445783837983733576648932677683542801870278513691099713761057134239086879965645300240204466726785992263014614640552965266266978608546340546299343557581946760226132459120972995287258662825639707580768499898011865250476618498600401052591273936758889026923609930069984253626341322814978504827886435421217706078178896363313838032378817547317460863809911532015659594125548585300106156327956754796655675992038487533000292302284882302237582192613124919704201712679070797608342119964899075123626788889503377548005914602813679838158388373851941148448740145786748845063181578826335954216794838732431419406036218450037268696535305512290075963404436242645774425275277561880946184711496449249204896321659399505247136060133021717952751641321805891179869787818513206228785056882329750318250279395419376466930429370966814479466845230593037423381510885707397736194673440855816488286360263777600908471083443994937389448458612430679296690268049370132278649175525961448604991448409236011857790361554258796047035305429590708223132567989634812394076669772803032184922811847259950111099380692563072474217580537115309152295160369183804871292458861241620267431243649567627847389229509946319765090632380737257854973784415051934277974427829944934774327867495597290004014090155891487787026945524657919190816462565892129861021797878623763508609712156325586662448302767035942229547599456999938729277478080778920339114671780771642978031537801879168426750254558274577216172067084034431914861658456855598884041512324303610334775414687818355179165348597031445970569263792031945410689106286049965620704666073988299715435883666428402488897790045990024131992217667322581300888966257518070275545402432609931211447584816233455527831370840893522349964581259936129805097286648238507942279324817642654326922457233717185756372500337141535377816620558941825098978227655020414957506812132185079778502409012447453863929419262864242829569844617298382088839224613142356740228816040625854396111440926961514367130728668412384600521952522265762112202284505507191470407842762305868034269590368117840794234698465907996377745119329586106766642775888753419099529536724261538861272094573237124107503841577757424497480424229772378406979440562730288774549134327738072756056494823200864407031274137383802656363307665936737218720789364400057723764294649018120462265219963224372653103308247831460417125288338352809055345737951030649376006126588089216292942716579635059070574688166400384449282849341489674841807173976909132220903446615798103334483154397992938292409762839455027379001503895040832689431464079276519561130983081100124126285711727092507491599810885383830211056778221116300218305739960857833846446005672959404546491926111992483909632005005899781762245571335934715722212393103624116536337433285103513581752965522288104754561568827598099730596446527091222212969252307716784946564340151880391645872597802457747812159254199335204604490148436187101570347738703254260586754973640660078785185035951264498652453124706519006689309543494679158227398844002810776028897866769578120966831250914244019240805522665396764718151005732214674350875176489093356607280722673357956272247204773389340526705992311143374320079068538617140301227474701868231695063181256817857818266823906610014327135300477559637646423414619452765082073759694037598062336483098348385236828501571037898399327391062016506574265709654298893167906471826941939437509480458163660302766103587619685614433095180112272968480275082019083671657335298950251959219403216979659802344649508252349166317314276423890546347157219532929713358335888306655632852153210375470771279432485709843046882921822753650961252587993254890136799476390697775194941219768554698618839525741208504563661495943121227031418430987002348368383321520592792378713757382636329499940659784944172037889245624368524446192121551564371104997275141597950323464947282231210114601051894369102808982764883028669364270484511305238904020032744991039319599477315524552832338622318148763082817377615368006749921162314661800271591584517970103104069190544952646537815661418140509634082173233608420500748581121820659094893323986596764860197719220141926139120229053371934780824032225533058190151124194419618672194684479780993017589047613645158421186700316337935017982054088055306768639400512956905898941037250534542882605435363187187110284392275892678434828454371539448188214113150016093200012887786086733707632558104598401878849779172411384899294775197648061304770669905535569062693172719155579192572629398435701231389704414694329392770311156151712690211218983252493607242333257379900639251022234857912619224063389097110366930233154074330816166936838962399908668655629704166378237970377983653593825746252944175469082610421508049413388570876172245815573983331298782070316973200833017805446129684532692492228972735700067273917590962324529163562475728000704428983222167075416606201625019503374277162909248216204363044688929713081389579462743483536228466846643335994149006796017281084878625764044562941107788407287915879753986058868079530470650199180300195993271678662035534355919296970524545007793838502593881063891982773420995671156630041352004548134878882045983333624006918232370232497390301735644818067075359354819116459757054724000079601439562547369046793754639048790131821535583338391733820724076070209285281691698392862899265090892832256530934800790464403886594511640647433872351590993486065773408621610994191109208938314287478494146323400718866263615118192834640361511207967641905892105798346771891050040977012431501615493680028620732577923277309249614902621955907706304940410936990333802989443854403516247040832678953719657580996453507642972946968609463535697909065946694517729594315509688694084706475126612747729119867182962056135644961839907724956364247085744249850793304771623685320233811690713080494803940773505196471807402094716971492218579577410220831429739914922582622871078494474581661106598464779518764931493860152711619921757118827418703984054980079351247756084363704047571917771823123617204184663399231109777096117531202903681012588871261157968094522916462768618443810605952220013900571384886613421220492623747857889982804027130821691008224601096689751223798521773894115163277974531013070597033618677430912146764521759264759896893461147781411564342376073611350415573563522599701237911798895939998408537921488742680751015804237679284413226893394442058326716550585436837503792486335050728270612256582909181151399594466215207118818293436602723065347856873576395618321882293158520649001708460826379859494164041096584657699366400246262791897672006793107223649403609600576893420387479087206717778762611369750571866168303892901990413469426543635491852863171567350894341589556183840458884608887314833612141858510701461883920098817706159356316544428429653054870504726915180442788976550599193528286429851136109424212675295714614806916359338760126320843380198022471858212396222357162065855940041241713400345881404523361151093379201177629193285400468116402961964644200576792978878896148046309173703777635933233283828331700584875112544333587960278320565671989070650949344051821550920080750272059332322424488664495718609308583440652215428633778188227549293297558627338921723235753027466733036540546702730675339122542512739944278234530520084425935903343232292494025840043843918262420956433569555455035679625623990517999446292979715548963191032832409426573464537962792118852878299543909234020335605280764356899337311563020927082852130277647742804872371687432475931389988478265903793923722411026190356857720529870904075662664713155604627504149999489922456823682141835894409923216539671981377996209675154333681953617406516813849886502208000546057262791069827851341323346125819180431731975404114363375959091234855024442585921081421280418653444476936092238739912711596735855827842453832692106545131858601778164763046873429908709089558520637704666271247906798179813467451435379098720188549116875041471412128949907054709576983914767821919520347599428747411538326150277280209605915777006656479206164511934387192866937718539663109902774139125915458922801639125165932513190059423740114172778494080587922419037174001825072074147499769255221236094873992861221028037420067683165301145391657049849720165981827928329645723044290477875998700074784276597369161461964258421205527372744430487231103400484659813271331113416613176783061626142194914094463683629490437854268829531307621634851675048994096500008291586831780264630035570284851918614833439161592124036707945625725746214006555235155228809849024181331550755619637769106924920524484397277800711017477759204265940257220280558917243883657694117432518479181318277190764900820184904855402769446669141307438243068550751048988100283471672714468364531169028377583974902148380115944805960741020099492647636345169311500282763343375303841400940496403542284738531011351665471824933046047347081863885479881656942152949871132716266021383500212604457760131657953767504948636027683887526294568265617018555991898169066270003370168716602495496877002626058276147607234013886430179689412134232373270852352474266386161427294534163369249824943116450530833317543158828369860793548391728096662032578556066136960328478973949380548348785079165561389323243095703851064820027730337331021738630908764639012270756563879203938995650571332993999484729555986179080038346816120723480501350171569770173995933481347815898212827857371193376876116595530771886366028071931586463713925955006000551568772642244015639420371141558028165246425104037437984176025832202054911258344919743766863511108423908931811058165807631722570365853973856441977613435324696331955684140797773545970392611171920504490197827565609711027141428269261023756067664057449279745751124690290650719034959596952244725777119794831667789700619561353027288969353718409566676252009842287491733335541298314130078627574961083533846581117615044969687450273193476136452536295092438681530383121695468467382996204250075211324086580194690516610138696009716868302776823603672240173333809217239401058965295880464453760121057193685018729111263154173969791488354009077317196388923694388999052438025695707155311532978456277613839642440625698101595712193359549585748717986097022061297387105447982867444606028655784371979718978935083077470755802293948521967270170810428222304454749551136800278617225511830039364184684205335949291950292348839898832101767900025700915898415418922867296427915106739362532390138075623237694083982940356505052903164652030518201006097613044752513300383255392654108662292459608460990517709506791579838516806994130817866376367161918283938601101308738802913238442956414871716777103119113441458031355622190311182179953351773502739007003754064534485621033977673623766328827471369700916959124511965196921190284637048959329083387091853037997196113459083606561291323444130905160168235569292019037931064383214446676762226504943250690390548282787506821957858116530855311874220283542604385362861059055360101206219348543255804665073040441091560875456246457581303623058617083250715542073872608114839751870372121932445275373375568564205707025129011908920596001523178326352143454009720508032555422650949215384415750099945662017633965186352187897603374484242751823278684543436975355787837483632335089258595226614368493654815778145171845519897639450989700495503001431494455466123759380731679713760001517805841499740243296427585091805319578672847497152286080901795168339692156457154275242732154587512932460588729773427530473801986367770595107290004874060149442096553931735423395500361551778896795788020997357265211509689409025402118492012414763157180166506529878449608728007907969542555219375651130354569270657484757521618360954524532358265320041320376889306901146774994546314687684269229013033592486881097343867123883197889467984365099414799233116491669685702498665956145159026298502726506821067088603516460212780159941416641315568978583599807515580963203067565402752398383486937453925195551899757659717385907801459920018531428806334967699378014943770218642443312791538545391106245132546869118597693899380883711834246048663255844568254587561938858858216030452439410076267320363504949525831816008699248461656523400742241104469244290222444327966897569101451576547321290849394075065015283680029307095318528119465558893981552243221144335725751573457693910338331144140606330452250484495296327703454670745181457168044428934191670722645596078249914057826758462975132965788334043897636633234953651940782160115154943462572735964563445584308279876588253659675349779455594083305750591219564668684236522826513912280423670787766096228913836460862043232286844090290084916695363738109737019528829713631885977875385656651181259617472615908870849197176810264220241055027767854770585095965265922053109205901226286500694550783505195022612518730866505270372006128424753727854946336682049283245453133657009473285586295601721668602998076048396440508575638950769056668110530487727288054958739755464855621857525892645987119522727020158568570379250743213596515613950190930275457069978893614115792145295858425774194006697946564022351401999590872574849945595249877336164267795899840570326139739345812022720550308214952656163565257164990177146827994039003119022121998389220146296233195609075356577563430312931940275973320955144618110298691305397098493585145697177666399381811368312885227661782063960425160321226653342367379309350890994245237166871180761199867767351530151817249602572497110727070447588194177997269175268104286248279188757222300053471355123313127067051747259958950290476411407245335263949940488888325105880126070730111982647967881978287876220057655817849142360986709813126657888266725132980862957585639216413956262059386168642973153276284278136051150157566064376297315200028950984052219601032244286628571601454301432838269131259958639794359083960083900572827770743002364325144255325387308087329561015806563971810606391186970247832082188429221929372055830961801611910631445697690054697250231175192372331571735615443183412767630767528060360156782036981205896796085227884427711967822162176656006965665776886149627140509483670633589116868536273962294313047387217014573366182940123839435562770774183495943276176785035001022915257263997043859696186620357802770066698769205854100872183822862187825468324213161742771304092083761684278733823480570632382045936054053732012308652363284096608368454596437415215133112501322568645550930119215659400504620699717271064743625458900391513351136222520942467953695529442279232833554366494275057611731183962140193850663616231587312014155219456558704865216292179567712182127988398828946000617713583772385485125795642563534075408466331659037111710837492716305934377463972086400994120908780138797232996987291020580428731651227178183370794499843419709329524119036977333035962509098667867527655979271654000862863038803730586747976390143486830720862101011488430688470207953261610890876859610015834356936664571821268673007609116932793140485785819185257188791111410259213076588316732412041142319825116843733259199471086086631914352717377268909793196937855348421325241349071515556696313848109738130042280014331096478084164536484481570219663433829905367997386944352537643503886652780762646555398126339871496650024382644968204586519535967885678200734111500892400244688426769781949377204706553883579731460531710298196289561267692026799515557196919620590672050012873919094915374581269609344650359139919438884634870084474437697417719260549001813244210550866548683205512167485385145715071026586326248541103290317188685821170232629195929635495555194486546520914832400745830684284299790880345144728283754358069323540602541016827206017848421802424318542186721691906126029273649989014988335478795455013416807809717609333375619420096073936172845311222343397312199547114658266337773053578933388275278976952070807482071095871235198850850040923069879890795131548723543720124144891729945283049626595387474706655074204870477788145160059014993016687447024509981625859572511205585082748688211367208907034128717385754913174667053062247610402194344865186889175931573259166733377404117039150368603746962083858987622062800728754447758773335850932691649212459019957304246239944748184070872858415258638002344769252789479777344552925083741098733684692627317029868979513848412587153798881122209699470928725175678120908615991603629749369995831431097063504455960883450949988040700539200153162607560856041301893463555806085121108212253672265169990260826987676351525996932697155833141544434783230364473823997016731865560630777575691434072733344393201752762580383015125935975738232911629313575490665383897148679056778308896418221751756403580938098019489971817916059917926180667146546497366643785006581182637511138904756407804948946858025908344622821190762336407636632097962320182574920953082811540871170202090188897711585167386777043995171993957568510068504646595947040432373909619336724397086564362254513445662786983281066850373473085985199171808762460905052571709180310028106631291550159452181675302632183959802472339926616873066475680994522793536360141807086719415297017125890606265677968055725447844188153223498108120845696201406314419406241983993279659123523289674013512780100158250149227690728374713087664725609922931309194056938305148761376519592969670416702082922460852504429642890813854149203843336434576892037482493899864136539148662256430006852787758588845562280128698458583347110842826776982952055355100771073275092077742514815092137760134754486120666044383715415934494471971594832841835797331898613275214068085489096072409350020667659672593393925379636516536666930623467910709302929639282794086532650558027988814865027055508721913566952232377200126482684854654463479049932846943605008705782865196023578103397451182594208642689565109499736119530359695356268802094679485166988884698631544841329064423138549641224972092779941307180971260292630567601433311068392757301599615727265091199975335739788814126438793505938297808517115739938163625026097925192194814961555505572891227912339193701900748835144359940392804769412665634697666162688130492928283579292409774144833348582438206670256718165800300032152478436233073283867876155455228801961615792026014864049087981421707057963752702783173003677174869781668520835083502730983326152775546423233084551501633197103045880842063930122861305438339154151836467510774008493282330425901262434557510280882103542366305345456968519440594886678164715858562685959528576981992349718860105175453298915010474386242361754237910934742846493551714701392191786979800056536168450777573199149110994505362426102313436747467337623179567959299494433809758385798361638225153512633995714157508128409881133367376429088344340196602464202103708489918045461296056539588285487592003704785742043389246316374986277503117428370117873414072216371961332299831605933782797441896259944966751464671775535349678973389070432417126250645428711302659707351711653498558019841702198347676330325399051464623494304217782777643706892299802880955295676765545457477300134551131741548927156376184741675110603022938271764016242791019386432588968214756715125178657823699509479574256807125184644848205105792715755596716894223657434664992986535389629315751672096142772939637344516191055432793531880344192771452515678146617095894355173457859496117011938087004296653056148816116441983001938479753695363357627405561288512443583118343027061295725008959663830453465019958492801709149562146073040363127606764054333375577350567733704214002215087804724261108012031169389139604900834857754391196518415232518632838147233464819257365946965080916644464234580580551957086426965975235986975927733960083923854996662627026448349514448940238906308945375286490300778859277981263957205937153422489261231718394310099999425696224054234243764858025680636548416598992903539163827811061019520123193821035107672159022162327123923902207086767259796959818923267435158733660158051822367846048211846070697824157719821322660084343023295570788354162229117702143583995471522557944765551353119866236653430792219256230561146063286932667239579862800947060875429468842372429385895697934243270978396750565292095653850387465311229490982663836140964040412905010225128989606677877390679766377691370080365648815217312671443049589269531992872525547288488944005712192624770533174173705153300017052905126015437428365399863313472545351144358460639486327119361090675574938710496683368543927166842705960164153952234250212422336934165028929026811270101800396656992613786407632713976477322635055567704060910904984970056207555936759014497261131905703615435072673037014375706119125529840836015772009500097312760935426416541964617754814880722348349041638237327738166301565053682755094926469659825704715231559732544886480876427241752626340743324964389651460277761560482846200460867412315499751762043648906350359021599932100361660693824281339560664259160122365499629916926996043247359405459351790912668080656172313511746107268541271213306250484470191263165844608116461796497850101490038169102202562408260892334553517271661932877560555489061567799874353346507577050443089783989581327329879649381423952020178557353167771688589493734512080555054823890871160472098591884380248483773616960568701697992005967866072556298538087926836795413511823834987932157237310940803070805477047303756662988930450669782359706134489099761399931955403557381255168690120706688283265254864465691885994448822337529769578366474494532712079551169360675809680695430060074586372763902231199665796671157668698528357447665794812811832673723244151983384252779820828022846479299497391403214614156459073586087091098542974454537675199174359899375818063564613719135913250638882174459083780461282406368620342201543137184398801112136067306965094258580678593540600051293034118574015638918499181708812537917789267883342249565485620024275913578152016476952293836518628134647324700389260646404810276861406610854840090173679138905652866083849721582412380899802038985014320245525530893958812390013363092675533126763861529559292127595047909556896549303076145895107060714014366551276256798212905643701522423738307732737179503081807472898105544171187479336768489403815936330014169815565885650512260669803465705834426139897094825063670870747854509983931774080526675144103442056378905171075423118637838453397418465385873435090214016434388355627639333382921309121789972324884635851102788484834070135454443749233159922374415206527604358814401995479742772590412732187399252446993994145611475881892633694535775289331146313669479260567830039744860874553575934377621300008462437998425469524453170515946052430409898876433306099765803836235182623304705997248571770009833253703818999678196549094171915263406298702304488960702064140670889660423934021927592281870644714839533739247762651036521198672406207332994280098197693021791887230191354481694033073906165542600294829340829753237305525363557241561153338348247153393776745767284219151733823759986713633076225945899934937580511128921378991117395098797738426584237515028381762577975209126184535352189911854587782478200346442772610188510873197301898077987977036375195059704146434723495287235873164897760712148946815997431455592282494916081678266289342797494986871430262240464919557139074569348689620753876613517639442173643358211342700629433704516372302260624931532517196568651519887082351771082217621523304516114635367046954945956338346784157949923049169784033485831226461341419078971370915139612365442671053895764224509952744477347850821409705918007087872863626482658806007556883547626688997762244078193065017104160497363388794038560442323155328159878574944686832155942832585986396234680718843774523173930993806265143755248794419853395861773610160997390454146298920920229978963303892363091331243656001971362771109141280992434886223183309927740118800753737500191271443269508199660552287751340609741579337140962663120697722616924272007447465315376809948283612080216536869071925775466297545785520874245252171667106037582403160472637796507600163501350288054651931736728584157061743455904103163338665966271646745971203411726596221521977306719230619937293226715546098304674213973217488091439853989930158007831744454551820802688279913530785140547251799808150241466927338857108691089429616321361701350771888940606278317465222774034566417535229528675659411678125808555570411702208159369525773218917839974528426374036311317080154442733346005090383501171409641543951925325620340135470002771336977108882724961200500998774945632074138659295978396793066079920434249173918670086941869701100362028452838514201735145511836517873780126238816716358126190685885861508202277181351121913543937202506859519359987619648406463032622907114482519363549021119565167320820707358093936990509579757103844005721901307273200870246090010820588204997602838237286101216809230980550500787156819960081096787559998920512679256359742677790761242372994003022009433766011639552084779055934765482678610870492835918545867267667810324095762806587071688985096356573893276222614903947114495353820336366578078067685747501927114556052662230693255117622007135058095931446738212159055627765872433341428395476107467167424414361661841987207222361052376715147860985155640669506437723284256703131783812673640256180806028698515363219072809740637297167948876795524782006552764914116927091234792946776282926448127563141987529875757044164028248042541135868730150029389358987582258342677350718127031519641186305289805468843037030008104060427241582549900323293245951574857016307803166196819975197875936824298350835501994372268351589090161803451323243338866835833363209513963215681480326714432821446378609989058224562279728566457593255849603495319095258992932628112787780071286873948048903343433077627997072050757863757795858897985953395355982889756105778593120476381023107894005494133661708049238277908858902106262075575807163539482520085809636187414073776428330902241008501757259476066313745442387559527568808136093623108603774194847202857390848681928153151050265042710902756404145645251766417035962914017361449706963726776847644392044109214458862127452017703801042965615691571305802097325642220770618549149484824598990320106595170487535919713922708080653067593580151189331417860456200882637981637477722509631863839800551496429819539597025996175474323275330755633576944092073576932095595949020726340944773006674557510525645472055036461804067316880291937114418874360203162782895238064326708191059210650789865038184255143305153355784615244151460025482112737075429164952700836840753176881209626285392348582878274188168663031144483471219633569074613946150339155315401572866901799738240689691735221260069030693299690178812491772776000545914798962133189290399458591748234164649468705628520499459549870254379804806971114682540479966655917377402401216184439383694268581367364825292213754034166491900301065556830896763638599819751124624479429932688083634390297592605924203145668356276400239610476244805352582174225609555576297539218134616031529083018640419422159508553390805045582549621832732664757407930663740322978339653718842438000372255692297245085084881666145546127176064646448230085707074072440839529831289502113954946604302645268212768307087630384795639817165213745619587503500366404258392045009925954758450410971571762484449869918054365901292799912283197099811539264099068692113417856083653425253071633470832422569010889098522212175218798982789412622006280278172669729459935882312483839042772765484064205419109110338519499152879506080287752948943207922295658477555048869910005603145473772881692388831507286331250409856790438499096597552725469261442554199800448057844494687596950085400574801899438665639021428010718091661609879549219775712826331483578831000430433302479205947330140053801065469991797966239710334845561138933154858497222963184895345992352546537900448472334138225079194933952466935139570028172849507961084560518329416820330733212288730650105678671928766594923448919605567494763308652335785243874192345240845905733256290958249572164760226876262206024344482986276214907129535140506463188757539496147458643434742490316450700226070181448432011558610559476804277727703081530593099998036545995064492274163377502512377941953714271089969444786959066614075125580322866654142492374441821032709322317993348199627659003339522783172839602073334737026829190717605347471406536953213515308073327878661575757044378749899522491724031446565796390807919274874805223786738588749492483384223496531567586455495784540065528063625294002754221868821985498601434405457646716378713625129499594264947637149781579957814994437374713233494966674746778015658899720599704269572620178173562842399303653620248323510638758409991108695541892357193695602518501026472975948419224732888941416249137341075082483671162466452802654961591972254813409579598015606253891352616069130121345769770340249490542435870418692110410313459505863965528213278380129269445518032160307269414332034197943849644829892745605706921546557060644855808185577888161419111104469802881988742748517470881828127719899052118719261644971218755701183833048094421452761844595231738724536977976947990240172054470920083624695726050095919659857926184828044044050773742451297889256684476368128495443462080727258932308236932725991835363960705689230787526769049764452429358784315821300792502132471489361708456862387905421836865144730882251093243339216884527952481079451052975785464543871199190354116221615836283714154437284621827499520990706989448043636863344199533646406797291677207712360008078503752373316733428247200642933985698745042707723880653807199378974281824840539837192343084984959497409836457108609045767429368231227378885343510067629217184263297011485254962508650350104679675596581152131887360048081400997365657206971112451560187352336652747233278700453431700060160191087474328311011073231773761019923812141777317428359073231975419011961357191087172942777674807926271532966187078295306315313441292904645105689857450188100940920441188635598593868973296829721394911950474914757887380077880153068953400994575896670028324835548331786750181559915083103228166661417431995234075729181387021903460874600876107520302276026387800434915853482623129486125165418342685159806597450531346951479526578090679033883586936652138298143398733012282951920591559304874519235544817284122348064198854599589826986906086246007307197494562998983013821181866953096113351685612878211867278110856737928806625053807655801714610809693076830253473527225435639641753857464523535845647267754405636474277570119822606928955472648338897956707139117445834302234723588902643686615054333306464704392430352853894489850595911478680298164133014371855811464449730527628237909372420116732931373013788668433613219420294257226735652396361231596895447042647257575170942539967459866888400614158496860060702818171077909922786037357212176670648609805416178499193051077330912358861015992877128953456461845854567282774029491487706525905947562250346810482625926258370918538046083656938781117319127469817277468341257227000354908458141725652535385235691820843567337920811937831337727613625027934768921587186487873342841605719803649011371278706016886617700691991004376439566813477799572924544280173058588983635669423143697434427871457722531515442470226853295433836211564995802195999393770069634175919939076473753635731987357299801119279655401131812815979066962382980370118915263147922038136065762669983412644330522609367301825064404190990633089730336733948648727304256152057942241858712919721697708368855573271792695681778007728357266173488614151837139033681360255451588989183192825554598728288949251561448917657269998573638313804866478492860314094237141023982750893004372658937758832753188993499541218179674671840896215727678210735992492357633153837889242929342110795083901285798226199525083364939668094123755990769488410050453998705936750768804328347859869917593322051222013484579248722565512180819056257690085545088727986021918450790036870114180516369568427768088584000283819222204460167343278280333451717808308453196215479091592888981588433919669385557877058254555046333316990400066686116913308511397927784473971082653600143400614732671534303733081203189310185877869040129271254686102495143859156001079407216272272397995602410005527600198294757716473589869867560465551783553706687847173210200817033285800392363043294807536614481451841074791541935040128610806711519902506206880928805843515096443655104381114281092498191195703782975502048773757351194120360566130867607977582494109063498852806220702631616055422739085112696933103270954311850492795642137629053947735799116090352347104756693144767138956044758706574930653860236507178832894907543605846641788209425599682691984967672434327449425937929638183204249144135449550186124339069317586789376335763270344014989790891370641262263373936042910369149569728041906358682519988483153084176697247395335897124192496222544893083699341191710530486459351943642747124600002673645101532003564107348057593099664994739973075310546753834533463104468896069574292161664838371841285370119955294465566557434024385975960135621219202746535309565556260764380166620724728468275529742933477172541903969879771882770419657062364711990512199286894670666167614756208616516534447753370454305988037730001350134451367472827120155474689017727364277161125956971468676370539665471899087688455290456018036902137783788616000328776285698225753402089680336335002178016049440799632868742985456539888132175823911509598735898454781580321331594182052274723617440083886768866776876848858489923525553802787426989070716246897207640203971229662486067532316731240191736598788348398865623842630514369574713952429411454553225508418039348285930320760270110223717365947696030968820158407565224108806784112965186950618751793412467949606938066072443754943261495512473891911753906788056768596120366050665793879161421450135183058440240597531564195018954825977553575373554198948975329557236773328047789211347334853370539499887309353922158252925759885885622103081078405970745880756023156572036347918054375431395432879044828967779673771383887661729380954537219346088231053770944875962557702089365340609639403510316397394738244167905901638994652420442817016880775185503094591179454807509186493848748866983519221970990659881838361835649433056300919966000333567614729797460213432587755887711206457746333623340949870346245141569856980940439133571900405919104346735112474632002924886354945437605559386741475469375263903739430772153389288862925807464169602450816547275516562879501839781243537224601602343154853909419577785447545333574035600995492182872041666078724300406202931889015960549139803947594222253409933413206694088684052413223029833409867483097045380125350774045143451453405032732781103517394638225662024296936529170599144198651759059876641889072916371672224753310131274417764688126124287653761310843564561045841390482968803907901270260089146300091684646919485463170351222081483342512192889315287939314342824783671141489232036007600431091396349081048455483904248434599583988081154747817173762686047037125785354056267585319069478574041601333887970875816923178354025623984623117201406985303936454656450893929608757736792697325340312186781035295974285278375276818196633774621052779480881603982211834006207681237719379339507160849977860688446351430660003349806713801846591120029428966779177155412876706449853426136198953923180386607930305054892553607824219973047247004843353637140474442271605044991582458290919462189140863473115263313667248558542922450160050202429919664660529595508496826985804155985172040134348260526705187230638879332285230339961730745635676385539597697873894316111770359355612544441160502951768579667562031642977517435789382988689402514876804909241735418885529291448663982161744461937593664741794932697183047090164924690078296549861698601919385340154231539750266647815211608010681400141461110253149113581619445541518790962571143894028770329817588511074290414511043529555144268005526333909853392811323943971976535154276373044752535444125304282860673192846183932279304601792087986516916989278613009730602889759302252997758094635829811406615918995960019653677867027374144060287778572568394532100892338995465111141804501206608271663500259499166870573868432595696035176998355864745649129497017521672810860141962902620377655622868127727375940664062604589961378845488577224382228836245078073214516916362453615289482710693452641782739576022220637755350696371089101907052530689194686518464446763652628092009704287329761860641122463195759549251249006458533290615489210524227083831493005833395930407270645138742561874851111001273167742367982640286089477237700393221202502841104917479021390149477017095415763262776171641253413278765480742235097483575465885339986963571585457836594468680940234765067523105335374159863579299045251627672353985922441798422686203778264796159218997013946922417181100335198768376465018363953995879090520876027673701261641640429425585515908382767108362153226421451606344282759889469926481525833828764350046127587477016378217619886248093528678092363553173166743684260733243469032707886328174074194460731772627336602035516580369975620152065181558577606736763558199767146484465640484489904364286726000384606347407215685277150669169138540763589719073031879295337848108051526239791933270310581677933683490593804650002290274801954680410987951994946428577635746295470371656832796444244585026891346842060475666275155524546975396964846721398818882050922693150486910117110974372766594759985029411804815047078197475170603617942991282532339772168410249928391565101754102996059026924399815397540139209298614516178691433325888095044938433753919867541463238116754976408108975448350903355856753886126900892285897103589324881117320101709924729816020394832757976407910450511344492936202756435004771129155486944087900037746538582837512803434237446001189347218980296010356259889403144222360851774602460749799447254645137289216554854707794360442092317785291779476901470930654256347939764137447122676720950317648863966290021827560525761654472029794385344911596998712466659257237554327416296411602958308505175122782727491978957823829728435401804446279912988175601136963874631766629741080204369948662713948388077318372575445737958821997754115908048986990099676035607498423257860649202339722380632734564742834276239514452299063260805231335967579490985275365082084048307560810333175312072515481687534711308201940543325222521179521237299521209359678661503707320659908999649507517163171420429078611663056583969129796900279458357975172850861815492301856706503437906718177195608991889491160441129431720055162636232828623078167147108845797652178557490142468149081877337535621739047468914570039048669911119096032617423883764253527309980078375471612790106478865347399921386025164183920553407809319833899596919213645895243606794880761030026728624682197702541824351608652886855232975343741004964323130080045883707825217293193820597340026559543724775224239260016816168430185884802132430112424277102011522833073744913525232722579225740039286881195665604784763738781954092163618671108686268386550690044159672923492823339376800046182450556031730769060909982927766149336790082102464046450492839487128124988839241580365585522213366246230369360375939618683547014575874106335069630761517370008038797879024791312854179073257827596693978794426050486401610156789132251218434976129309374810888478352494418278446816964280136187530337282618276992400125830677223889854119416246929768160229364739127291595660453017507675887366652625154787314561165103691804117917837701471503728951436335140642047499288589732274328603158312435433515762099785879992101684630427480905897821525108983387770766064754188380524425220042841619087078474401683848879977640080771551458725961808898382216040852497767597192321896597734477368612718724299939122211164382273331740351434445572248195294851219710811087226808754958143411080577807964526280280672802608024876253269994592065278503460084522353334434504030284949386077673927443327723797015956336767241264859864817866818027535578737627808990011056569009529446178292489040449018200501647733264458082467400568458146493884367173012113598176748846564276706656134414930666978444272793235742076552738377327364011073138731258400153825154613181652009423660469303831975045516688178277562446162933640827771824442225772886685943497808351316745804869512342203163721619308263781404858566830050144251442393708128641279788212854140797135800305899200641878722093162962161328584557672462722918201316354212274699700863099454797450778297658096767955518158896224474297372567884310410882199917808427240171371443769855200970845001338294400743827096351011002780221686023439457709774458114056529524227766367139319562567864134892822131252576491699585176321025338435601325401500510458678282394266254906235720889591357155806218084514440430794207638702016798565996404918098675309196724071673479548372451251991069303645239376983366643934156263353079059404225933360535539747671140912407376310231300044722692198810070543685651082352727899604342546667164327204546550218591759511028144759130195773949278624772770158884171909469135780811235486721312725925077099036625532962971942967734739651871004904936513660857235549296832670204412088514534898221383604476923575425452325746601864054015917955222828783055343684692082781547307167112573393665280242151222797768408290105316623519396303063513888742106807772406688353645333051109658293688560758467924572997509398517722848151302434070839644727495304115798359085697403802769173814489828610979611717641494201913264726260690171435154755036075794353751336864735768559434479987171771626773491666967964700814707638070730030956324225930836741850231559902725600045762746801933450249178130596173741134312979578467615631079231788408549737036479629364053912958487973365056310521951416492473838683477509087352639074330817858880805870780798705678382240460307369552164889198477888306011766293796147673525778910164216312947248638246486269116806624087760834831730990750767560541267568113034273428536345986004092776580395809828508396716890384422914878887144264608913582905030304436549957471138014460509076574306300023716691856144678288446832154956558426441013624748136576175481093970496135473118620771741193136887680718308269535514906988446064022058531926740967362594740550790665916676222825069850599213611320007537632918824784268815261267452764748415986103430816135370714674241160383572797187448677051462749926561716616995755270637606162794125869709722234445673764910375820798169369822583574155792985781580284435319507127165902229133581195608627770171341434802392261667840999245838967035332577153012038584610587253674872647603346226994543046178707474059668945990459868393482061844691643831151250940880812804457762917186898824269067104593376011824452736479720762125878298559146045646875511283387829267782305796238147949811688280732657481005268024956001045426969298579221566183282735600285570197577504797708843657264025217135673142540504714241509408034114693817707938721744838785241416503481280382629017182599923387919462761749601877707286220054687236625059665480523625165514883899547005851882760630567491155275069139484355983904039796459904052881852666353166910824760122134204464634702503970550222767019834103540266861306477524458715428887099828100998117389927852697643507835544183708965438368595931954157620053571891696267585431573496102783343272409287559233390467072378086586841828917887582310267285615032618322433747994898898651986408402222473863051216728649054826750828903550864148762305796756988761034042866024944737672429447171631065904605863064170124670462589879675049665424467162642917560159278675184404064401263014651444469773071712411072675913744810541518480012533578683201447561607121487149524766887143819180711724834539139079706210162892630669500546621666011021219446339672868191812536996574558283477533713490995108911184255641781794289109126987879768396072926526481150037381971478440064893536689996914703451979668145047743635698092475717578434676300323160064796161556644261656254379384978828444426912842878049497042246986098902716055180271085654153506857181135266170186612058913909608113907290085149167509535800703875688519766369328675882690876764068651762405467437646866253736493279395549267311641493743395551991250318072455347989147503108929629592985905598082182471891315323445630461515828175564782247611419968154891973224525367766809143874599354678715208585891919709944242594810271709426243281963760082742624375529643325265781926074999042356687897391336704878330026126048206405909163046100958365341929046878011047768648227647703544221459280955376005126196792184763669741208655767257538449798877799505402405189511163161428516335436421703487606760750209774499176589744266805032671183737964068650743398966319846398317271794261804326700682632035408673931636323906114358324866931773989383434005444058759096674223564893800026829494276199650379925676151727585153600014863243005151846278724810953763576646515312105591369705522341477016633706505713894477018708414143416697151613032027322682753121782395469027062972644244636609468074405070280840099757265553115246915458436125312269090756924739378137450015319420995888063346470087955512360150885567205283116845180926479110976873445830493271231647616120533823425656362141549706072804005728473266843515272072730591957548220004003206045480108315454394276910075515650172528869020447861968820634696026222769677213349955679756820140648790091906442031943172415146740752575528166190311927959862909195919719199155096689929325145625549435723202405504871051553149945496380154971809143103019441475620576642316693316614511777013860088554965948752517729565087969461941563387300001707949223379836704857215844974007484677394213995473633307751082546988960360987832343236894704741593455749405095893492946683126166786958827141488995946307235324077691052268481630537424234381331460606189342770960660589977145652017438436121061334963874310673088559664065409574697992065949138398186521992155112300228055563481645407849753309830687326269571943641984184587822867551459428618268101483790729443977307949720210145766453752175686385493655999073157500329959572845273703623502041521641672817577757620054532554671689436003969624549460733581636944593543680600268251442275484294047965798111974434285741994028792582834818976429987486015434320717036357976082447983477834818847781715437152028164302285076300348113849099857573718291701714719145292323081680343230195706542786376017972024337526689387072128135696740172996597179520859856409091276443900704306838751911815649976429584497690148664375425145617223939430037960658465963142583811793550912502550903071308733088336236338237429025689220234921454680388987312561086880135328031378424024154490629206176412274033147948632096059604374416465579258070440390457415906386001930321767873453384000665489089114749698938444891786791274420144461814179677166715385138200348279925570373047452361178604422143683581010906817153741041468240318774463086463450716134323625765429642201951415243462516469665220312678779948546907502605128002217739932457806930325080360601566349877220881441719510433570734314883328479384328458694829971938656944661142846078800345850440587688509324554594767121867285139589445296644504657230628454138056537559155578886214323406917259206374391475315753066002649356095583702534430433623250718416758425377758047386902696735295897894815896336307707871199669811601872005087280474537114724861164392838265653880991391499918215024886846259553229487041163520704827626821341439027996368605793617515918929952683405831089903734894654939455922590176214536414945626070311514573981377887348741533985715699994188895607844415383539415403149107844803061864712959102084787646855416887654644915843997170741503079687189699685754217083555632542989955992122111454719741328449421334160668254828231119842343126597122396567110047234467754117199623889190686716478886178300722336951638215873677045619708560699254769356274525607355460404101216251131977579753704875340675844941758653074818144743304459349675741016918958320109855731444852082598158896191512259065601655793240480758833014457025948384234444591576972468925626935347385154256566619933119958605585409159294114836449752732742508948408890366915384237063067363442105059338459225910100533999600298283529866219222691669601133725644796385729493298945415988858518541050252554256844560018572800659808731010443861360374775457106135814487064329523436172736088093341016841387396454753936612813078660325441715054641748017607076029025598166781173857437361650307133356914879301735124584515905753713628056060258373658868138248382748015426357197137319205254084288768550545004600438672806882236488835280503321746276534277140398981826496001568604587400058463167486846273856594189731806558016799906586213493750832163445200221426322728027268255625784536142094164461515157613129516497446877453114059386083715088604365045056493836478700096306993496775213223779570386960958260686305206410984178889153360776086554380125294044955829511281729726523775813851528493102923924570436909655548674749407488323661869849763097567367533309863116559075447834466730698101259452351492271649801514147240353686946575266003978423661150311061769712245352495988592287602229517158833142005962096305277770658981761175736380682310757246496254371428676920684712907311289229100060328175623160150789358391917400846263726675476991840174992365278758398344732864122876481150568805186306317994558135603888887471554544413386918754964023751503327089597331535647459411935578834938570629445684652248747267889949551153702672243719000724117443312377258575839435505662949776500182086368376756053494157547030536591220164148250626278828612811796747028535361761685076507255044646864201599077914746954951875852786419345721036312944088130867154839005413008650421254017476848333063545473937494002139453178394834438635675196127785250194952874050741100452049066339053163820687349647400696539946248790145855209196625737043922700882031604758368587950185794180284735761899283209333293002925327402980311316728168792355004040288079623604954182780696396335395901820771433825286488852459008958715987946100808257049162915429957130849968518488474393266346970027893114999523319754537634522003690852680653089641850683504037443736456546751572399019160162195243052793107726757753554841344976027633220260610485831162313173440978828522154553036609839243200472611553894312055657121691564989407630454587296382296756004851098203980374555945238707495070981691125206504746311856164956331528617030242359336648594732620821637757355063495850738118190089921987899843279355830954151003239180208367062804646646476507223567061450214226765440843923688098240522499663206425710876160711869964516580800414421741997640845750638936872545042142045767183900538044815307937924635260000294036122046679570025512079063362078414433052591164024738173924007697219043845908186019765633106082857330921381824825934820856011367268978340060946250011745577766393373491492881056459252960671234976482106402881929607573077180963478205212861728840169760589683442328431380162869737667326691046659127529868035627160002677399317437054827803210155412598935514412750459422732555983397202791563151702791891687104644170707593496894517129201525070094658315024638499474670083425057271410013989761179072029309050107003906768982156072549128621127120891165945555633706109850194529257278810612509157781743538402727104011183445737487724418509179251771326581277764102694999372782167349935413686666579697615148495602235106367537882211490127105998262679994010226668375706916711250012867299039944040656661772828248583216736302452640466129869067905077722781305398227170539806315645600482531189982794224599487811376258544433411323486792521054648090860012079801385122477478016231829344452630921886415031042351436182655250920341051904726281683459777141480869806271165264053668512098614527887673599138307316531212613159900080978920742869581975057371388751992079303814784535177276484230312383559287298333971327091733991498584149758380589383244325014747352810885871789594613157175816385501217472304174393279605166733441877170443092573540657285601519143107013027981922041847717077159307724274410407063657832824890664410125496258407737287491665488292203273102977747424499245884727599281228472313273064570800527322267031530055545800830249639432627273455637411521760532747120308532092485786046411799289295728301160809728558282208893791824885494077942260501931856287574321943757647401798013952829564569641087127424096708467760681668980306339185150379424857152905375918882575209612535906143273396607434037452603775701611523804473019531395207517842781431289627573261150010804105223068233365809541957927605797756399780753304450247923833529771228898158131614386868736870385845665311971034355536901340885797714601337451522598069076802688837285062531534299086820306444927633432863985418819783022610233623627916204045704711118744751337709553303801448441025327644374500354753380338854625711105228742093842451879553887709742374871100089489396750097231743270529430088315396665066282453740195035122384059502983942566364509025517846120932468393887639588259713339837178842554903252315026282506084209123860924945473207112813501257343556114563627385808678063975739347995906167836012768261326620681120522894562513138796669802753282288662713301213054208522925343207310422734229153204854048274365918364224393588872635068625671652055494863056631773481288823520803321602831257713378222156814509433183757932649443953934908859925965276422402904624031875005201505048801488723356322436450745561814512189118604328591830858955197021521577495221599917369040916291108813840232293060393816517634008227424910359266588690878406634527798950627238695204861129504114987682419128361756414635455612314269047314371814023826992510476878734580257779370090331511854975309200644859615898434291928083510775531005527008106393623470130509115008087105798468611415205138767890260476567726341554989475489493727755116360885729275391147374587150051416870606012412506521276073409371405676382426301339105045408069135859583742984313108068869857347845319025700037717031011162361031988532171269429850803010436884715379303139463470135857081468440151284816275139642336653993141071380627589749020068390709620338162236433094384328136960458313249088900134279734040665218997470354495039981458681803930090087483594609541747424387493684651192618362581023495446100324386534137734834747585070843105121786123667485613691640622201241024003966435124291117259483269814897019325210813910334541117457049897753020136964622501907548348052067962969607793637998742844355057585005306138303518567323231063326650365441644718276102288202896652206643725302174815745146072178900395912653017983344211578727455169981566516228756007145650387851908941956470107869682187854688525841056616167199804503201476287575439596349934510376323731446858287249940558500987055667194384453183313507287613070389382451124709301306451834620008786008402867005759868368394003053165865013353617842304534125824679059996878736575677207712507255357548144662956608251435089083910294246693631980343630609119679830386855532589057830524301055987618003709400401541017003334320087090489708248143741905852613969693904135523470241347996509201046070656875193635897817083211317562378257109166399602591483090888795631001389146372588411812579305136697910088501679330257131600375760761303177093126379728699980173994499410460800393108823186390663310684336937480616867296341237732839131291769240741285251683045843942832193321704738156122944693664559117735745628188016487248937612023391823665214089351747546834551391170723241769830197290341812385111769224145221485022213372916392397455753444940724839868675423061477407176916009786227998914827085735431589754397916540989618258697702557595275890666118884512123670085934463730508407519344706350654103014986084361659729965887566391477648316214328753745103518274939017614915329047045430001869711767940089430185280640894264021879992148329333689965210461717097950778394585541972707207886154335938581863137990236420418907919661701454017492729816059337142260021214548388408676156143232135744454274259079120971262416851104011588821924959089101105450071381793383753417261121881527874531342846080925114649257726340186178311366068937484207095111336842137479312708134565263340686818558156185249742639679282645749283961177268521643841039079855200746868814418754496643809139055391608135086209592126220460496039517156003766231334705080821815858970634712079395882632758023483028020103501342932226324627986618224753145873761974503984862976669255964475820404138925280225505116676913173793485707400740853502268183907437523107382452707708108518639441687337322271078040611941686919132516715355852016129875987411501923250609134363466617892905902568194186758908664606189451394097205007800928060003309996200564636401727672072038783522407577250778142818466661299773802095537710919992943104574810620870883910859982039767698948960909049188120024007529077261298066918956013321360371517918432255553831767777606543186107114062285275188394566093478850249794119528593113033543197079098112898986553707414498229249129536952207547205659783009241206202620621824359305553003899305833000650608109952918701816773137562835545806136044375746695438097558548005923133394363869875429283227557478147162877648034475007370085713633089175816853483351336559698749121019962571735049399786051508031878362198439977336092330950047278130821064231697198407129696728629573726941916651045548493351676311566980761270522981780058695994450955316220457677001073939671659741341595246078945559819887271851667669268567612450309038213040727629239099955373116041245723386769391003003663548316544262920053210859657291821739423273773822931412915042429128521178883297107439134998603265187760295634914897337265139019796156249130079864798351580005585039764071595025718667197302659818675020923767927925731494884556351876667306279266769272426198415792861105493581448423926447900838754114345142569634047924190556472692911258227886621299784680921762189858221369719366783310734808698265952503095413480750366905484667470623004994805278516639192805687592265417218147688629569341985293048535117393443104160967703882753866394442483728027923620048156631665473997783979083318228585796801203137430816898653075726608758965461411464164111102539621473464369065539950529975732872766445802421438116123156164154817903192201665975697820157021826907319345890443837611733242216205748700464654934129452567661232745488215879255233367020844315265561479190283592803164850905632510141189311338554494726224307511723803906507455423598169742563311920364131881598461003938571366723023803269690345657877570357256328634336723972462105786543741555743841045000964691576184131490155819260666938217308460717949524634900536965553799135022028733939813206266811869892812430999135604617215779643448387797152020515310807556472919094252167425311776861553844840783373461522634851397281013993690776653052930247371703387441880203569437450849280118722783150937082960554628272629694772907250946158284380683947073333741397595599049915704501979500568165344527081593921655730768806624924575211425659791345916350916842183149198491966090671709897071944679074895663027845763058067586077572019865495937676122105374767037585627643517583386065647838649583645111622159512167635689625887196003597553720621627181399545960934656955832486858683423324170402868677800454641961795202528650168058011486587887299726189532542433807036543920483285616324196396116692964410754897499012037536263889842687309734742193834871865812300530652044742066028429687922793410418662090268369347554151883481848580201001622118347116557806698591272785713949475359272247146157402739870560006463612328567436054310712578013314630044024775006808827482603823504841844031938192607659235909915361831341347177466668233771406325686349569183693762987189441735843785324833701048072677630384891222560063877482764521661410404065852512993536612747417876863082072144766338119523299926459970406002649547584782770094571575762122709983485542629216089824900979204091926641377328328118553996715868449530508931438370163424351478421691257436296010174740783795062239413885039371826707102506725957918044919390630829969693332180370153510213861061862371826490340824974316140808717235217176458160466912169308362533673306725958933986734643469792476828344844244035348457947874141996829303568938806044189018086272771150331947153688056661730122608714454908239395289760040230975475531513929551621524365430076781984807827941467540167338343818067763632969202822292577736325480838258814125721212585990975789097251769321112037211524944752263254742411511034385969586659789584774710576386456088990867971862717776744263342326883227317284306087762087675872785090179433252922089689169329663453208784685560099103416305936554378103313325087086340051215632504697165842927689635989567729659338201106199317951288262702509862410322762544618862591988933063391980284509813761645947392670722532560366556846198434425012548100937301091498906680641024799299730893671414508207723313693136855709201023861646813548748750668835754535841952447679674566230834764262087390073479453223084245419602327517110759348240988430751345880268200984661738872570886816578258495192914486737865362053170727812723716969384690028120190579182280826439010301016660995686820533707015754012264938549040901437851929133947804921921356049332100057341663697642383510960820211005359145602534339413010239614298562236135964883226698755813569176128757531614855962682230046302883821758543596961411073641434861217319149694722859018495134764596643687207458120936240803280269066484747451844764951723508833279659431458954080690823182069739830901035982931231613816801295128358213536993866877846690083116019852020892739376751827611969126701676331802221106833088362784195049983591720873957534425343927519641825842372932074118600635986801535889280753156700268100343177928763509415597584818374634487283459118959484174955568980395487023402780303693522283297234598813419768622980091777089309135184062013433039490079653003432227852774483381229007957797800998771539953888412548421430403142786188148271032165958634394573846403302259410380596166018282315592572823456196114287865683123827518860281567092771532355023307000344985177771300236910971249314145044290460907491515800881351982348835765405230194438070858892470350046285200845073432603218042681727923238104971266795032836574102656877175555000830518628681178173218100598965107766193939336721207599070433518974496276749645748690775057298954932365780624177754131513196446637990317004608070740714796381813278603877256894926616135064002400847146703870943321127254349822540976912818972775561093126490412821222849644283871560787086856479317327264362224379775347681498671595960631415611440288454317619478971485006262276780989187575684060765515454317112281998069267978257867884159978013363845240743778513886179323730167255588674403388049029921916426417902672783864912649316908246252359333982661116250729215355965012506861064690589410249259409812712013448241718531139351928438338050418725388370981483473055422713005715399931908824325275568968198712180259473105340126523876649738508491115584920385803007959003239476239124226563180309829011488508469112425364514168412462604058798918920053233766171930699057503369623552905241906071043412126559151784761243739974176904124936687425606345920014908945763926403832839689821149941955180406627242133825925850181713930804115040997579153239576856386420955833685046109862528082143155146653536153318667918827262986945025673472679620684449467594070062837411559071499210118761478781627450475629870041908937979753241021747930860492711202076355813689525189742603493033881168952435087269973648631467931756741991019955579326895858820551067790386391489914991018641468696942435419981008019428847888733671729289400316306032686103194664171281475243114954941460565438801476979039367011643687944998186163917539033141648126007008665944670471189123955908179241995018397343256028057001836126384111760629376324570339411010698658620153306191154545113168418660998215158630516240577084089837928817120755500116574982113515268621483241827974604181165570544303786705083502583841386717865452462783653710043997535251494349300525450666325275976078638717435422417253339944915197515383008349016142552324080575850063313499582291323085778694480086006297185626477476949831408943869514593981348337301806480770971751008641995215274101166219417438791862708356520304667972474420508237200767633783581456729770948125038878282781757153653261160544188419197899460209406495473128192442994177522773735644320836308186788465299941243078717185842556738952700914313584689310891661042089120346134255362468034453390683649427002133634931621466937148306195768412176275297927598713270020886755699247813051148917064635730401016322988786584031990191543907451979776016971950752799467012921935169042898752016499033175937660061002706373646197432830704489571573256853733442377267721739219122819300936275367310845370417434095777317079707919127228908615075591880568838838983609766957883591613029982464572558771244517449015922735714234972063038309991725607037790446085724516255353831743286031127103126754621229021209257438238929531732007445037132670017624030078664257005514831864682388514337620108336042394873259359339233764491775119369509235392496093496960402640812960661227785263493624776734971840803716980045687484145541632415656582912216794395124960955852091099485973692374057810779396075380461136620571082258951993323867721457711717174304108182740421611445582126870406884207471552403768231893628297016709175007987091310680865456131233097365691439871116530930735355139630611399440627937265832747257027882512504863971970157956615846157245136116494501646922839859794420870079598722924109390918970841839513930170359074219675562623379831604008936743816961704017442467196680408591087788266867543956723069551036515381111704425653987862658383091383046661682290597362978981612475053700729817643283599715121604014026042729255319075132752797794874352840674871641754347537248750828554932364674401984520864978242160580533563955972515526838029470313676537164631628524001107576493990830260301965928952094053443660234079959504049031981138475726261807504732332650541290248386382198211689293545058049657733645150838689629913310974688065619387110920281875912050794908333267575721815144817636986700302533765813386626307036248348586835423856042212338652131195193454784428723677151173389686488249399886367266983598270886987550054521274039390574843075947352462373876062867371401657018541260600066285409507495208720129220860647519765940938667385113707890022616641119451323675139770181843430841218312561797627032842462043112177389909869913764622346743432394717466915433844488460499432414743447055474376289220820901640007620734340862290898587312142223873642619011317975270482980236738418604994204132384993146535647727804478572769302966287077415415442751824996069708655709446285154017920762180152719714515869587771706464910008891544168109680175705935689709608581690685860522644745039493301385476349069777712757260911754418707580300898955178484164934184622653609874662377896210790623729642104362195032108809900002408278970728961809222656036133180214292659081246646183808987718304336772985637585039772986856648814850832767650937652454940207654896208175651510187141494302851187242392031748690768978873910345922593977265704675165359007880576240417330376071898470421009589192007405024039454545554606201464392191618701673515761146963200340927539016156932159873391525767396253179184247827008165052087713188957339646793554939775384992441649991086709860493433491479456044946506527995532962172671557888664572334670418885700710967449085027906188160264116266526250893697611315605946024306728669109989469725426066012214252730338795384368071170345770035435843482824946635419602781008054569751051821005327732218839440939093319593038028070223231614093386940945235722248157589528046150502105580154515814347847956432640479612937046021166443988421399494116313588589594310179740712373852256584275189294794874422919883387697800260840701973007723675330887090856441167356838287577062677976602975585660053202826202893983118589346775934585466884455449324400376202907466175266021475960953883991587910903953233814841825219274902837011601533851985748040726625358216259884980533335772510865790249009351466808790061591152474496144873618678469243179438250945645102437759689321429840357929125419296792007349498189103259494385923759201571102789010071599956677271973926390428386547131599037309025218879244357299582912821809795572954502749139566863794734957139370927013690237236407845200982100643415421326025540276508738772784531969221943640442689635407277844668808118782818875230433649266837487508476474443639809683527815516033320768800613802473832870684034323022161252289432503120228448866282504101429074471058750697728883576820023298070241502047222814829719004170984122163027812735386024200055714969571247856760633393101418863716178947289568576766426999787939030667105214087103766353861348539506078608052169336848042997842533614496588363641353607585866020160136678591765165038906848768161850901905490986999334290744526633235525699570735929301894421704882809295698199509383388120597679130199830102071850098326141528655254185000512630594873453254118960530887251442943742011935594108451196704635384133051384349873916978337207154699966006451673063653719235098971422803761880127407046185987543211080183403511287251856400554836813592443550983104495747761262591576952324439085481547112558374430401452124875658304329103031121189792680058212054334453757261864044256417626831472198634849368743730344470756205615884901130996469827057885814927662766873566102196581459359654945180365373442198673771438749460776089280528642926390314629215837975313733704285129541866220317831054056852788817074319563579492184928701342696312496324234899947296087804897872309439575071027299976265779665007681673314817115359092605291138917325196512867493059982215805622739826463827100492016632835102447524711452139221139837349437098382137273723342886209600044432076251230144697851411154260557937760862843443820147477642901890799768243913700489560438314807256964794254600634480439780392379687514269596709072299844745169756587924116838326949523498121279586722742813064514880070308544555494409869163466780838347572262554243467206526424133479815359190837967756867775722552665199803385565066085204006803561469207989510569002441875710934508647988707820439242206127069452439698549483666778398642657050389547750098695406190362626724499661353349597880732148291772964016023936411810405543831022890535093884102939422162426343408749717935253774053085417636850371773588293042694402059027063599376998178918906833594616867302852466821264313151311144616452759210945998861376647587079304466654839475900924807260098861747873614230711336949475659355912643128993726374901303408843523922886556745492621033715492020362058685124381195903279551245411263695374289076658677244294155198669663064768526795946409619540395704266988853787371056502696454395554868576615551602961616425138118928764693779608799109051207238461312860829652840449254067765669685444140246853898753300476236807493223269461503168220085251372182068671768964528361308845732423047176805670976788341860172049506928117127111328129249584382197898300539503432771922736269370149908406295977695710933755146958228967608518342659329460112804331900435320463601092395115731423260014959234958946884698213364617308594888442355359515153492381908199564784757913356307029589797662022667145382082104514036150624998643519540418575475688042456099503481419835083222164471404746763183553269012999836747468074455658910931771408332630219351972324746645789036200427894089510536478194749737946792260671479286277359633189295968832544244080946368647365084786669980306628134130782347105071034849513404352007471180292141712780170689865375717857314046917550449968691602293108461648795861325962232451480287147280105148381722753804121386877662404319752191442109575120778814311571157024136458787223484243654381548262135731936242540559880078324735406464005608572906100534134395554662032877865355422507806945003413583861735068870572669222101661738478439882770159553782046390288782423782437712524119034173163360283053064935811096806636407486700211859256229238582612153593036080381953051843818694853117777382003874970301786315709575591278201793948769389566741368701967322520995969401896323891529952546421752911311109152057364488059664455485032991950648029274823041459667886980321180172289418876034078380860527375148624019187315326015454795397759250633193500816397951009040110546595703617891780583472562088901950980721986284312555772937175702229097717206233637191035491257130831915325874054628899297624298137839838624183963022431798419063748497607606410887182014101927508353313474613885803990767618440628857228536068746175735585721694683968650183854448914532474515807089391379626037541161088526166563193612326901106188319117587088475911812792249168335816314524418966889728766045142372004161686416709782732337924559207232949845664658576305379081240184667688874494453334815763578346718953506726967308993382090596442451751358352841281692519996006263348996315532743780376003282293430713746053349383264719398875500975490888554295331883080747568088758179986402363828988227138720567329470899883986476310895911201530854627151494988235808301849245467859763972073565427207310246275750742240641433782211450330501312447084152141116455855266236217078534146559203289603232319681580171676211391562428087968855761221583181951795214639232421692635322113800425467204148810503266605323033333708707321060056386897843090960591205667783726202833100156275594243797774942988462324757862929569180944449647409695562403654087281202224045777641864390246313666988913009978073778714178404044077088367149255974558058363820928096692941656995163388769932640460794206021898162075869499409156488922685113329353798069772762944619103833653692880357569350634334302148060767677563860574084772178168085511450212696218830489538804957853453699652423088942600153004164606741906422800137407652870322135309874039225093995163599322900838072243666192359116259656195888814066829563720504615617511338708876375296636296489727440901518540722301045817497763990248409152378291806905969719901601612244211922092519025085225677944310995925465992648915867414092407400985272422042500126953348356461556749559863041823462602179076692309468024804599367253915374857397538996751281464466234456953161412966839919651590728109577330768811719029643801656346306478026549845917467547438565020523422280871094769321503303688925189263133292621240369524754860105322502448519533602417448376551331755949053668327907672790497104747847499625211187822627800651689971976772179295731647887135341368646626931440748262592449143429244315638599891712223735471645288159876846735825163772585817698262245503059041008998479159290336155361487352168112528000876173058601958446115589481706792138753520471616273273883540553376650345914012192220291085882619570169385098938695389427663773286350881614469895013380930598146062672693486287158351641927758003710677734107838591947603101775955968725418298220434903612396691978484891829062962514227341397279477530290384714290099097941674663221114146703296446468132191100606662358060033274970546101151921514872576350384504061444023360815169323299154786018031109344981398380925089739908890979205255376913548495374667333779524401352433502437211541174928672410716418052245186650454070812443136852593637610360814711008259137970010814026476049866745823374774531217927002857600001520886095719732568760480892381009237798195919976375495830302822908304272184928810703009178237440045313581621168619106062112309925062748197373233490374965126513614566644140158214180759427402491273190920824565865471868637867819500739566828718102593736950862112694532828819324930982946018979644256184074542454477252088197825440719755097247118685314871288572043683322904174915868388375455426328336480953004751146252417512778960637735697411410499300334467464011825849471659613627610406473166998282237662431406425597879962091933954977061094810461807725093832420010651400447012923188775091351998524212814096389499836906891530121777280010230880712640295232041774067942874152158997243945484065683544707500184648813282499089145690783215331517763389806530403973744243149228434787288015356903202149949450200041061084065714465191942859126547292216933438431081052839397225153540207645853650396661556680398614053630310892809106802647246283398217768332208333423001000491982967713888753167438960415851270643643266504490945846667528294014864501385008402631222334919836829354024750332414356997986706950965436293320909134282865634343376433796066164236932578368386333476569111428892913579467153484268379394662736375581456683669716040288542473536579645815391832183235222730892563253631664205171419396841264455846765388583535058995071348855685785774511964821698627691709151688051886450942198873681040274223700903822982631768497367836151408169796033367885578306529074207826661525916561381422734998015013055648926757976679233505354867332898810687317995227452822875609814059840533866994678976721307439737610527585648038614284451272528457684629022923618494931669890871722891217578566166767079284508646137290248903734161201401141972405201052080988869465881884361185957373744003887921876996623586620279375694060550874247739184410644766513909018952283811692865899089180558518639912038055282680955727572562677073693397944062209497355392939188891318201724336393133835466643931178484424347865429552721894758155142604593613155910632082983240866765113500531495503177134589562336182686986886055618854230386205789133038463128710254133117531500704296231919192516580943849045562988321359951408717966249874779240380546332506637726716674301882678955121816970152320523485579866801332052770942532806969144682869493000057176567317032570226481837565692148604435480970941006263564296053756870103011120160707310069102235976734444327150894435074026212630911425632532881962985240814728520309162160387203810727698162630496725818820056577512038214808722396642601885538738228301950890471098742248868159220664394634013949739212304370764369157867616722222993425884311120428351358867428236758876405666890358306404786024429561346980075913609785122440766704089744828620312214861640257165820935753469900875035715468776360467449406912318796074241833266979856130564053114313212123659754842797295774509674372410511312639778639933688662285018419342898491638664441676986215121450767636532278959130119562621683405041366660721652373560950218299134188651626098933503461283879034200821829066136827169030025866129645108482513459289707105088235639253278752909949485275954882479228272792119012436989404815247143902871210003490650105075483535546164982060092761755968295538504972011205359145326212276365579648941443246834844487963699138762882799483019207955930059304165321990902951357130451994525184940366582875685665752323859046225260972802882809581533476318874333367418546766566286934441025829527424006790691744803090812547966501413159635891709680852909009320402269491138998087387103477987903912407128533207293936915405547954699861142083231216800836590522265324029539101942037203182647339501169713818711741057478011950205475559264509651392532109925160591290877646811155955935528350220309492266141196622364880382811268400555514118827525219311586277892016769089408614183257397136858462149541699612480252878968083152344449539491063729593563464192041539739123024912309530697588083480537236813491158652158750109127643844420898101018913385996417081723847580860842759570246248790407653425472483554796586331524999466313571893095755669837663003962191789722514587200380523075255753766139746633575122858392358158690527167783965295186823487278124206454739828991899648359667745264769034718758948809111889679294399699685727761540514500700166660575791724835329440303588779232680047987392917702374118360506390316627676282664324527026028280561190999116816260264288883812077731970825417303063212042447908550660949586808623684629288957155081467937104136616500960388787131816726084368583585327444896814163144977732846462167128671982882000656185315411345694747620726137198893776816949532174564313040800177047616209490342554802917714774115817845842520589899673123100627032632270121814814000233506122982841458165904103676807141155139872008522924643922228161911673133959162996836232523991914142473007777320526929537500834406890102825140815941482240167866871761840645689502744907015437754165005356795615684940788746792862889279927867578728885691235086188294106812259852558237606029877949736692119154565913400298272002951203719493756089066613720038268143912768954418903586174968711498976301866238526793161685183722393170332874106506860946607642401252471956591649116495636904523033252415065768936719747808047055763848886215634121116152622041112042251035382611562260485453349995613689953310915909307594106150375330832792076279164875739040329612155399519871431332029595563868998638961784795849818669681897265863423891222629602953626971220656541416088214566778357204389872199834609809557475309580826828631267351479196318588687465504023409230780689744315915526147999921685343639725728466495008955867505186962708087470216269579182791766156335894064060557901393421877893185120098321167121174595264153440899046134041381386883676181202524028808919880939881566058145522147401573430622289554829037699546274090805691382408282158616974605546760378770717147247617679192460699055809916356625923992301206429399589813378963986845355328439937777614430467597263726694734913945134468379060216925597392788952298886482367780449488631288988169445757010320978530604113784371996014913671946994975694419244785552374450842776668556029911233176544342457696884600122837208670244881558925619339417165187912484351370983647345526960189826565036021165395357716357466926250228095030135735211655192429500999505424067981989230977656751133723555635698813859757292721728645439107098111615327373414736758262668482287927136166580391590053740085644522551830427873824091466328059716235755319355769916533392316887946298864157365958976796634905355809554149719598367877832006352446613623461519782882914640998678597427082695573962049729909695284718374174105687863774782748921161134933980447287150363592829027925666338789563558069916470932596103725677072272990018299155768402370241389483008515649157243038532181555394998342544945861672235821126390145145654162224640820204868085144354362752658617552522441105129343880240460063142833203152391218712253837379893808886917704976543886735141996648394257370600703756388330217464364032986718800528657234110256371135232525862987203097559745941287447757046148139937850978784127900644271397184582967133066839765113457797835700547005740720758429473801152270491353150266180136396398849935962342368370101612089689917172233815727891436199415111646896212462447424659025367419191613168729414049830782680877312592948184256546203963984227757448092482160453913090728582907135288813423522268039234035089620167145363253641240961014499645050539776581685158523708110661827493310238709898750126603608865759193133177491459282765714286962776491999224145582711611822266988554168496507869605247184537614345616416448656400973102714293029002337111173507291764313260086531999575651568330952146639231932092683903444213702622829576595800190514615055561787481966611212410424158647555582397457907340150412478780057715332622543853506584218944257547856756749458950784886832591217425276225119256922352540421884524362875168794576204200421566009599821372565498586382559011435687692245821059617989716805665794790973190592325448120662426882256655642551860740412094341394244536866148281901756905607901770788291655516884919170450679711110189950971337429141631821788951371041847661059054942414120581726898356017504870365344005656258740236622347908903403484075665916137554123486652921958356999155548432596588100605993998391333063400207960363676062093562502309970096297519122283445127807771623426903544686272008206116195155026340453405261112833664198166869570244078124994315188779610078534119138699456002245455504958841005907547759950268833366062892448756019733948533157836620985376991673114758159245732656176392534726844031150727755961979750225541603219850025680761340675704051173515616931312958775350936363593065286146285370631999010921762239670434952832329181865744855192198559156000026202638777586602403791025455182753354631569452928010397346499939630976737658999207433459519589352422645912083003971395355562054337438885387472072771190818380247080530653795596197430733928124251367167389079430268309769393789822757206589796109910514697785754660980101300247444652215524490929962994715606817967869743683722519696242366700594126117259320713936437225845941835114566894790216775171273373840547097501930747645752600990075868992675541976171169463211313687626467799717002742237613090319233709488945231920951602530935496530072199596325135282906324344411436511083207788608179585236944533468901838976520750003208294980286944961136662671032470931346723253588934914030390683202138185687275763251084188716107325707610690191255483073111880287344873573376104872774666275435589695560794826148430912420408162956223237305692254460492202722522618707593997212849666759475773188778195255202578730650771244867359286364523280192197015598150917148879006542006729294427375427971739710705502654292419706601815112708447110101815152693342699232005349192765910883450511197248802376135261257014734945934029222454749663092996404268478350546281176252845482891971920995558330513586427539226497834060501413329368390249406735258129189285186614988977469196273958865066882313151332444718467206761553436511567644111796346062211775619042606836151062442865558256132898543143616904188841740962240760132248433520114232951726910119720649836723342848927456826522719955319925724633022741686130425395770307290981592517627170646814006774587948031534482896344206411362098815083994484067250333387848823137803276865107933403863445431950941209570506536865582350335773302501715669747124732036865668916935328049034630204886203447058445122115273842300936001173573750908938010414222404090307132044415664360354409072178491696943902324269946136496360481492826546003897347814404462183533065000668308026897069983382529911570689576105840926204854406237542934403530141507352825458834267264784362422943181197661540127625625664784429196750788276634932950245616400771834440111948136922725403037119962006313973760318293679563840935886099443594840919754202466437482916612858047191338607347282553787208342202520284697639898087004376997399736439347515720967254161635811208927820057161630067569731083955418006112566142687423653871606015862570652545423393200348629755714823431886250482235021020486667866793068155604509086445915057022472736366848493343031658793995847918940752060615060323966101473433879987477408646692969490662601394571035679443532063988228766622758885727605563268555960009547171274755238466643006530224557383603458720386337352770878823416127416037918210080134803819746515378580896807596311699394193327470025138394863335434407737403671497608204849893742075589365300482994155250383855482529900676482432373206832727775836562513069737341661145883752508350895523275361989263167410070356814335835203614737850882146759353878684817230955914677472395855733999223607738120660381671349996054969730086609456738267411142235562192584759521739421396856655857090816828652214955420784405641698263598124169167905310506477489831389364291716208096837150198106064359498935521564126812008381188868570702287742792024458405294084050688051073691891174316911514687180888093535313919761910964749510264541782112460226554417225261960864754869268284707033120662858986500668997870467737750035915098890188114101022139790505307788028330857300171836959239424040710862371923566261783328608109990510856202442248224019125638622280772601093850235226094835095839142310937268465838612418131093776630786619758070995959287392010960316724699988108434208956119180121310430151601497422030941245486482909524618408843897062487174280338146722953534164923487937353780327136154570969084764093118272230884905571674903256300993857622696645353629130464701780548459065837303808355744585483131204075071788917943902240299185445064654364944916044881784783358764857066887193040605912154176532539980735110757647130456616220735155339706179078691451051616407013979354411967056277147724030997503701956263129200224906081886275610357710566392780117181710117165805864973672620151825720735871654532856672899923848458676786669072505974019819814000856349603003795457593745755618234270200618098069380464902824856551929357179833361465217582714734824870763394316574727949188414693913274549924940673959526117722142664192513668094411768776761863820238105617472516804924202626905701052286051702963782063577011481082417627455466745107781112510363439136823696706211232106642628920902233302198690011728198249064302009808772619487985489211626884437304246890319976907193643933730890559904203211488582174363877223747142348375241058027437476775712419593386347850189499696062306785504219195291664465676855480055396392437565148658584896137192236410734195594696212753621016398305020950779716958387190539379184384173036770259276827076989597065754991696206281528320586710817275468932652640785127487412952708352900864608488288127630085405396058795039398118906676033285524517624346310412270115525275156784802015603570918368835018531454644171096839657157710653472787152544553488592234932744341113052683117282062178115691377826031872686965915926984163124837046343931553998869351743518830555528550573623090165461330998024192453845997993446214415044347789826840271226327781463362348313972257268261340321704506581411530263732596831614424399956568256301088694093795787768659447689440052329891113761395013633626016071742092718643235209594522579682785808430506806135733081624928316413843708990226724521340848381940649991373726825345378029337241717233413745691567711425984168727207438092643240854898738337013410672843039736045671334231752513704596611216247365074384070392713164444300077920055758074190938137940441642589491427868179734462834342183593867355301283693822367194470227311916976726863652518728268261264647131206882386570154943904575473122771177822152081368551556474277437283094361100827282230298071400869879651433351805903714884060016635426395140168401763872904003015882476209664941133813345638020054927509827097828137689591706517007399353573542923094537277766414903840232511235819448123123050358807856552619080452616545636831048339029970286682395235436239065902930023869133952143107105176522417255514565929596568563427029058508294380394756852903713461578901416241361624157078738120727997443379575357038175627486949573223958566130232146043569656356725310161597406970614029060765913222276715112744440888200762677877460390810354072560451383368683001344352172941473375849519703399683815498182486233060588937524843759350561972614357882364234227109680452922714410172096471188039376738297006823573531829782622880856485078388475561575354432237419289812813396626369064965684780114870707883451613916684006480747378157173642157344295743500812198574067365530036454117874437875610781281205518333601453725450686707274149804184099880455625680167475245345013706610075658862414517650362688726426371976699814371469038268819894226203146820551536221351989448765975801992337534508702341734948072285151578268883653470073764304163630524438565236779098158889345171777990974553087679279628798158420312284454311271502594844189846726022990450651785929373191923947735794623949457906120263733455166579380417984449997971228634515186934585362238718705717115001666136847383671710936157566343031867483194106121382742621391076302532916488688748548289934825671915497674216782591192371121211256513819033452690424912974440695942295741571025223917796209933215935896662139736360751272503890410663736934580119535889336195278846083994341422469758038366965247153422137695022659097149837726487137688027698251905896136512288154104900473926350053941889252094632840330898472901943612944237642570077618694153493262604106216059843588155153721013684057886249360667825001364820520933892908447600264043846388054378483786052898746660091031314175193095560719267749157491853983616919044700054441434100131501888526069415873257230479149260481210716256443993539826734234148310370400023251734357876127600336821881891438500814673384895472865070080710332728013514143946654176201043260516337185022778563079858732400262632422604721328344211327796055148672745036863353598224290213103509309562352146414238511385410208381921129954709552282016273900442447192484220704826327421746456106595795017964826007441921270756613534815970107365382238566574118998494567412130587259108462410909282396526112730495900898607519085217112712506172851498235843488144446044666028641374012369830958022374484964449841176081197576198125986396068903851970605417656760084287820158424972341241885790912594806933476676747422229313681138748425841563714812455689531314493663399102246212228030743718830437135302273123467115721849703303940711538260170632168657210155717473546337276178165503621958595864889440708010771516279719203611832820989402532933063227808113712031387633391484643287217367445210330791381312598244461368489805649515697647728885380848753762201505748474193800082966002235133551829849424995476387987996690129929026498818843703024705038781273089796060443887160783550826916390190102554644270227815090677706064124011473864298714145172074549308298294131668445614614755357145085887665333893511078104389046571282035492689529529753340560233568668367302411070251639947573245744539797752359736641134523245841786874027920141474835555928506569638512462227574463570551117281820006188602263441324628256920604080935342225816352502587348151794867559106915910393890387436280282702882807441741730835202162197389432274202040488077657641170275471371796030246776823582656632728706481275472148502345242761232611537336516301377703828809482378527540073021115643993132263933491915562968400012305381326649889155213447692186020138191736772413633704085207907340422506100536176210171731295503787317445156907219837651712402388648234340193162496607191302898100814224980238069932276138971793615473330111522867364907999013030714306093935004064308253942752766791210631097790862798883176085179763989145765295686454396389723372505634602443758087922095309578775172479526945750019186722264455975836498409423153324926829950733706168340228728955736653282070637747949787821562734934053182840416671056483986815926930674274653336045405356857808671542156371631883866265474594242040513501506329018080709862613141575765725873788394805980407845007233737556809861054476594946278441547675536248310941870619596097229723085069763404367880030036200893965649968159195068881099729592050221089544190284092644174151407875807323145689816726249901283354090698143237412123915823177959605729914466061868834161107686102836265600395764409956836335969583496527855829168203673336346704253865387864458134768007500124270478244838754596211257816434064238638009536341777234550492756323353916789347717173352928275198064081153649456274421379258328293866364867720670737249416276282194439688724537374311192842689582221280989226289242635196856805287404499327324623511813794894002893481334298772708630045661525783515807043626620128200352398347540144476603451501721192220664199403222734463105656835592051553324284989463087820385031504877775453218973098385191394969926063579879431509096634030261465239106740788993496089169186547929161424696240270418608194000703601937962052133652540307638192767035203141443915420734045110335213395059829805353272139060278637063410292666467723653967779700661780964411772857949613228351189725077651786321300700950012076391569030120782338760821241375956916129814496724399475228690742589109216583205071213278468586959871486013814063327190246338136220160715266257058210034633939607070732351363802598579855674948565208428412579336800656805743353347807221917672054702188647575435929216939216919731034888865327260005030709434259535516649714797962970462499254643188002311909094253536388442459184902417142629543551026051674630206989563269909788950321984250308133221925481510306293720701712197088445885975804192811418935141733766842588675184235579420584333908522701210002325283098452140086911886525700134953228316746793625157278753263376747348934408474139441582037577405933479708148500568267380157010698636895430735650797212952633164054940953501896332331240558697716218068319150530467969941394006966186685001132294275142439029221922167111557757831582427870097588282947658983135666358561958102887809873796392265273454283601648566621379642669719742938874568096921271316272023744030386776115241596601564191434065829389759925791234407782882865730852982621857701093720941617083579226347702483356322920202410167451468552502790108662664088040034894924282325899242771039204355297520552649134588373356947462249695254432259591115326453870658223139386915875536088387156211932073034766329773010834692768971024115135930926232986281596332616559082126710937045190152870415400139067343071876562924498560498858213005234112180121814660657867591082049700431060164109219086553897280116642861994509782757892748816458664872481693894111287890532913712373561637754551916516112585556373276199901874224776799613887513508889084304465757627367385376277191560025323519682591769890646545741279861358695805418247319852547814848693425931265701861779600948780137307283695804377000870615157793852989273954486379235901561287352842091788516755643764316375911309684696680528693271313906231199655965012563352046107478320795501463202256176249060878735247253056544263311225328624801942747493961398213716705645699381967058764260651410498202333512195758500867522337439142728780795915521540422122023432071355569050516263783972717328963004353649391036095273744424315217244342477165854827394489185077382398131461774626082722537007018711342759882346115242660160732569990953698816427148111282840804484586627795923198622305076735373834714273291952714246968697102938758110087801125296560782643944156574692358844406244726197657369345928806283680491177615979412553352550213434802316762334427412723531854111213032485240013135576437343652179560264966316931743688041842673017295767928034869721787239397650449752976315396340655812026664575014562306540077164837114230893979088705871553521379075567052492897928250686518887056031098129953523986499809468447848496660310735114468177542305853018085993020777816438226866143331992073478535969681531138384369810204654259386527450021353830249305146715346994475693745778563963577497106694800366123310200458981132253239079075389428617238502078123913856952051598744084457089163322171992767456840147996393872442690206692683813731963593214542635515661993817634546474813179417262777563374803487110804110976424498736427029065544239165858594080396349517393040795924378926397442778199753706750800912437748841311670004265974192174841716443324545433566608187069993191957442756415293814325086893022148175455931745791573400958306593817121235776205359161467971415982336980361681943912420011788766020797312029290595136758356946150255096904684054073003402125449576210057534588102870276831963290048781425023121097626746683704694630409259849987487276018811595872926594645452666108139908661734954123909995600627389875107999061995181410436128425086717355595000731244072728100669946354058480222209437686731875401765877944431165792553278160771814132887139288881824112367154777294125097499465538578514294404274784359615817306054522055441623663992637943732096750755664113447475530552792123868995223498391719130592933099254617893156316165451226515000368757115951382814492836975640867259896442548072477667652503087197149536918816747230814762298878326762335426202416603609768284701509686175126364722559214255956151604403622653783293588592214833278366027426778769436725283232039715129459425134563306800173066718457685955253365787501216131945839302014441327025815704179110946045213730353401438133103126612856360520482509640544902884861415458097805417170672148093385054402994180091926042941061697820104681006428115580000283762635518213983366822313494646665328685224737575872148807273429968519501046258172121661249578619915294626416437607232888281453577241235099976617588559938138664551759568840592977166462198002463458769406409036739112664870242798803332581804830732385965754426119007096660376571961572995595624075771686127292064549472393821793117385067697725312171956323697739927321048912631593872184860326192514171438321317523182312150869500110834365462124993698532788047709255290876800842196444577919090406085401872901128466161334722770754944788480400272493713684202985903684520805110319685204924070094025442121801827271968112535800516508226671146624757915456726749234582308545633017677408314759585555651872427678563626495262876416386811878765356916383537860832078403939896817212214129075719336968914954069197890458047429504021778407926872361616355806743953713460829655472939835390220812429497579574884001888186356256622450222966204670668002322250933233571181149867668995141639985582877895294288925196826753295421922749072451907888039433714571588282134336472853971056557232937312768854180493444630433412370436258092645108253056513523130266854203540736762847695210263961225946669806760546265232755387901748258913898876153005404714747750403763933186432624251559246114792371495726051208577119042289803760114898182413286614796520901817849602197111320197884679419424558215112926945007400045467804474537545639800646720640431364166530761537060513104634173290005082834013169028298634249512961296609037281280384274889583404621146518877635479710578832716773681986456115803244860459696611388804337057848161610037949525292393068390133491856423256503341829513811023216191709642011922344611085762008264194423833455056858068412050921172204471767760197346435087965489227938245274875752698922741801697680194690144307782930533769113543314923709473316377347144814803628295612808700345447696714633736224102148690608202761483087791016057265635136052063379040385809474486310395223164135594555794497456842785303122211702765376072786033785091158407664375405908025510414531622865332511775796531462446994755206984367917883460139587971132873067093795119039578442932115564320220408928546536336355117793024112326184754005460131226203921173052908958673692385216851975023462352573709819045728599804497965198118900948596589471585348439996471986442959394180865757469024537156107847201900057178964212920545212528460316333977795059745750966240588340073801589331225172359507163406277068773805153524465378818333887837657979651957352326635489596179898093542125292452769307615730630580886865173180259935031577223454305626391274850047884830963008054200760029579909010999840516659542795669862469104996447849533468553708233919608851477209115935167727138373239350504189843049075557685237014348435732217775804908685451391880243074729268471170650777337080046777476573309417809530078452728436123398250689281105871578219786965960941316803217737587751057261121402373538542568342436698484970201181268323964076017127936549074453820145120235858209642430137274952733766523243979954856455350588589414263475073670028537245673816893590861954583469011518829032529341126236658315164413766031711001210258281960920070951717312482897820244974511127032863496170908935306669159992385844342385242156770617608730893738384714477062276814387675836083615714700999245627657671333259992627887476678794621030888262031236343340006461936103728649597076873167433607071628691027478684124559547257518839634228897393058782996481594499986985215664726167176447485497974191304673138570174218882154122199674455307995427510366079823742707871933539963067099801828792375052670870453677683437613608859847280542345741400193268195581690086104520947495804560418537911163889857304278875281004691940740331031364906389779688892880265379844424921592527056422280255911148306623763539392793852572429172124916237925387627148111227167793998280560671173622548670468971158326450382328536821689618903732507370655208325998308153465786281675806387554745110423521321614870047979884152897325620263057753893421947073292066555044814658040071383680071365214244784397008311520201126335357890835193986591897617887930656991023614330598894245957376033616657385905755399534655176561839653458946786631304110461993374256326509064152007308931051359101646282291304330389893124441091674656651926522888033395073624495205069692632183048277307119686770016358179034290223282499739052000588475293026528392199645845915712145519206780312166914051056166710171730713305883784833817590505715997449371521581648560468559053766535901383792664915822098463981149419749910763329712877678704019963073385170714599991869526969221969383192989378698960211751918811708225626622140461523644078392041240801379669235643588143916074619373786989786756831937750062366429357663390025422794441634144157787157064519161406106456031904329426333083872826857935356573180068671845465182090997957115228514941211301200369495472224195255271567668424270666599709002955766276604542489761855486250832046392690891683104155890580673870580078290627341114579628635687206967837845251312074566236802558640946883208820740170914424170389129734366900200254944889414966467893651883426235342556522876611098970819016673434329874723144134995949872450570571042633117824719388246028363600773171683008520757368176841070595378724485915926456998770952080810316486192227181150955690984349735216158540685216132477839952548267542051906047669724097038885662465892887717706101901278094489567778292223483745630327563978620749756778949181631232597036089413104203354706028292509002744309235477561550907811594312904447363524528186959439830495183203523521200569017894913415562534783838585655947949146484901006470381670803012684691826859627099379383993356219536993094465743337189412372385053810482138307948784233331981482487230238313744393933840751688783362101938890100641675612601793313420197822414656140078075015130863154483386701380764098541237265722809279154134618864437171136491028057592469430114181448840451611123297360170276539960439002598079989029669689757473633178408627657762100327629179507417180916208414769423042814726555666199216751038813053462167659611629074160666575475959573275236303090267443358978140957835222313052536123628250637244784069848445946726825643337965197156307480303137839325208260949294379377363036102850990850824972189492624710343363985611558780875611218503353457444177080982735046720146579317242130723735956068984584082261864461236063999862070276048935048481180742248080470692327534571861526841436747934799411825804468991245605156004754702840485846375377023274056223120111988335089001349869798317015109332376678755458870884751367834990365442492898042331993162912515162177496905578455431839629425045855559455230489192940730043667205850154934987395640000471781677398924388761306818264545055401914962587879368693503082621993587665957456746134789249589241626812201735035965903976929716680619944936458762644792087622145114912255378161505146993115438695770895510857403654521108356451248107493493602699734977335774467077620308308714199504555345034265906183456392993028794684282395102186302559353645225291856047447323433612391450039086074510955585231132978105613258561683049892148021074995079755875075990806203891381647293972147810072753050242307128008206420557973459854536007161775014610564201660152682532090631103464614578126249269777682214953472249107259333366665750520637982934057791586158688869286652971113664310517926035893243471487427476294856224775619996004119294786894409567455626469225584273154670880858447597615505782205181477334007045809069085581353049917758310580818391949620993729581339484804954759509224576001393471799881189667687514691550942509680159202741154479449257234116524647469339687013464428322605693059174062055412909925281356264267027169418447625186786096134047357083715350407918982996775646828667868934399652561729153981767800767366976461304468646195494520163629928998348360500527142790876560651155944988010377690558183688115154974727386968497653581910541583731619789914362676115312027446111386186342910881229029065917080235006605288804822723516186410395715522144231993018466378984773888328796450496428257115067936962874894283059508996840350238217254462777873762055145310934947704741270074797957764973490008771768537732882659159409649394414493969105707477521656623591176075098792045546621741689169076182502738883343040462987957709917543113477220063228128431078563272225611892724716171941569423527164681406307709407683290132961418855349585002740249326164454433247759693144022203997854033108404376865784362436332789597327080388569479934179646447037014902340401575877981518041431940227491635457784020351545790942970175754591669253103839239609636278022668155657127735778495713660199437748607828835806830154804041415899515171777802067140388665093791811644269118030209792174685715287672907730370576895637532823112465149881689405780304320809782935499631034744422604139538050865387421006459148327973353363942884590715226935071234550086658399099494679328181025435445809467943990915906852332116788324075320112101610973595838028303897829056276599092176822953647032848876497861315681919693006080202971989516959763513218446807885807197385935583063140548775163141470176231634280754517605641333145507619221620281546191231710341564830411110117119340753432732935727177852761716328319813325149385159353974116314029353571055258953590844051100413295102334912125428039135498501340420947902228755218157030105097305676463778816279536377957414686821489279468960395641223634646897573083173755771844967646396978880141275038085517432019745886047348753632323718434175057946345141363094330525097066975398864901670505685018412632657963695330178157716434939203172143704010826532187042210836168355278454123753758680911510658427514298822009956383442218576803041165809253656167175117320575900359193665853013001407190187230798609744271970714848336713878575332664417527057442868153447708828519786037325906737400845055522821558818927479876136921467612118787689699834870657335357866389609833112319986123335986704200599356576363248864114679990340532212710643790266318041282598396045269488590848660914464849978188255082699654868015466785802314899930796397620189340179144330428562706875961297544014614191503158485981133461121734748769782945966116302920493243886693127349599359474247016651632712456400806857665091925203398015913156654970664593641595628397335150254078571511283062503293784657084883198797890227302986163987053180019700041920730089485866582264556367478463027343903528870808159516260990193551046112093213710732740461181584811574172504430978528239280554495703198972106955635083672358503115141821729826374330951390215489419723531392128355930707228627930996693966575912534818038862538095941640688717747306326458931793768716015750534531042635067551111805894197797777044744763655435824017347924638875418325891073395078492338781554190200904132927303140830880657923007039180889848377817393433897374930858823669846989027989478998730913348900788306085279558236961988738619168610705328503547940783793086314121172234592801181926752295882866272344704239290985564860041180360832386511819421750168072489595654143478170313684909198353634710647682664983629165342892905722209607925566284791602012851941639856297825325604992948296449950029329018422687950986392422864084845270158104213701555257473409307803176484120604601190597940762188879689690109570229836909588708432274279445499680673027331744685103098818266970504227649828580643055797428983947822041070277889520297768058912078854884347556539353963321858931914527042375126498296936721275105631347801377861586519137738363739561198973644264130142037947159212260975198116187682156062895786787950494574402932025544598210466220019894338148755043568880562389705186184526746750394744550375963458605403403195462500929978180871494006988919608241985206564354160688574758160715790244771764879746725313279219672518178707622346768666030707993071302019195135151960974554813028760384665548704425732943298645575605477471393649414199944496785219877380750602116716551879390093213878080006344641676423623609751379227322990492732501427467857778796971348478190372373242769768035168072064290800922064531111810778658156138431431898595313535868703516731171512269771617089796813862937535886283013371330660098861323250054134615303710603099716371600209693332844033905301142923931227650285240077624332466233296086718339416015349728767309748066540074243512864458141565786676062172741562631796183616433021928483438295835655380706106611570867395713453846220853341280814817608061482460443519958598670761099697667937476375226910420406984785351738255409645987350895435602950871031154937533250678399962975604773674741982524179330809079326865990279633274780238415534662636055605731732416563615087339435072703799457754460379076362341846894603975135087924407006662715101562331868264134960433615034604614738090444944318659341246368233256760396181603691659047238757904507988132783469925948164274723520158682334679090473264281177168585955607228768266521903335969012264601629739151364292761637030152645529708273692914362672317806641820184510037097621235418500619738757922947864277007940551426228227163969793618272425273132382418781110669115441803422238946770297428489559014766176974976353432844542767009596551983058890754920998806158990633652820590355291106740738434575395424206419929090406464351420183084420036340867817625105899958209448147434423105395610475036764140715716737619849980849397163192783366254715602817751055778143731026520957891984477608629273239174459609373760517273005639018537518989370988133837268333314496807727113350152743820673325815202661090011334135497108992823627913380750892200283191422904195888107854815338978245332112418892885777045180533842907185594367363079466798240194837551740736477964122389913357544320568321996769669271540702854474219644236179291211537508624037891475981342337918797168563426722605323823211755885404348753453385926771250444941705799262970357265671013460809971052521842184758317651073914148204187879010181157797335227052355638176087450383172085662803469387251402841173769559613518639284033971458196358602316646691745588309842230670737367172609132707039606118178904114120781999437846991019210154590176188366426220739910718725841097851026773172407151340529550840820657532094134664072421108252463027503632442213076632057673532308363911794379498602367264995989699188389240059498159624879329103733382375865917390225496892273012546703274735964764843683844699204444097873846724004331658320022893564829026003673979909489119792452528483082496252238190427980735120405495857037758107347217824514698748698899511933963845192956327583706747384570187678186724374230384980757378292861826363600493085224064329169956735075278378674687962186355368952734540442006635142672493838592591278171075412343639817980031057273742824235312085744544236081419989643716287004543897705712059898306944030351805753910981367921692976155208237929889410529899665868962116215797867222539812488921958869561340680400208223354191546803140538279564896915926556916720041568862826113060967354452352252104740066677523132720711243399662993125716858848892225110881048262295095888012294476482121536619542103572241213960786257738608129213161919449087947615291269743713611815697564644988476832739347571685077590360876701178224677125757337384402650291464068934089112799329836840265086317668156512608264204653686538037210397826451151188829532889998585873872728621398703099375604653203571646649452406094830087223389366848402296360280432264174055689724746778910678828587764413790835409804763365212360318870203885314131967706653836341980364030286942546310963501729381023279447239239895098438190171971748056441633288770422568115306688577038563387102328001021612170485189835200764308652475404137421278464890307627714858522325624247461671849246398081132129759555397707055937265534105269449978808368559325559925715610477856456967407870299126302846966326845507494515016004154829441571183820978717558192398973891417590584968640519616667384340650929942468532449374836839549026773316021062650443296076769991637375081829602769624192236953906286468425505543288137974011684838670795330776541063495730314441052341212632440372000109181472372187143690809271667005798789816709094307485741645859214804597452251611054128128650079806494683307329619154362479029239221029817957054245253269795819340913280902778726869273461406342865532486508548000753364524519693483845502298219525134058146781056920440859171682222676594134378541074416957701286345894337721774155408053904438059479778499519034647876093324201181911880551099300547384820538557538184361335398794297606581953524084222777200117571163065055509818166620432769548083094402491053454846670258207102129378560515208001688327285189530110592578692324057369598365562904136830717696222928827258394513207974152393619141828517326995177122651237995894997548985931224651376492836360526748012427394023988215814184162183456299550854460627273520585483559415725734276030543753943414972154160263679512234109187343211017176824222495121606619648126936276845448321274262209945836618009073144706836399555540765060839162164844753200495037921771987717071305289643962485189492686098409290015343436874570094959547662178786443037099226657002877202167401438217339643654349036864237380192026978660499700489854713861204949839077288008428640405150916838293319751749972231352424345544168316214201497828194948346612994844765819652824910405798429077542178559643224609310735730728081736429247998969028218269945254150376226436186089904866717851484602634811979846740341615601910429076386578361492673861987110836590970071435528092186112132329832874608605793299915089947845536272102379787411655092352385420272612181820572717873870370611383049837653627273836980480950814411945216290671674502600023940754365136934832765585150757054864938499347395408517965777246518433885887994953954883947491186867808559366215896784752649746810061747871344353735888145317630955086185594944073114386828079911190432834377702263504820391325808336774189752014861478553102010071089565718404377159211761577858138891053794471613255209985974071405105229721426186024156726403765178988230303213591381112000256953385595036300092984700687290361127996895929011629558162341724382397958193481271828267262354420429444460131973894367156239671811499350207021292301073418299865894313752698808665742203847068920772822708042899597095630143906783458687612462810744847720976247730281062257617701022838143660987033917854691964089314761797110127682363475323573584332408436266014663102717002406914534367552705192564535874410123027499466653625315959443744547484476333120959883419423638397867962817453019230974159308033098776909756839792902589347407834839016539382768544982322484107228622580531073829068929446277219144059959591327663818402818099012747464778304040016269127696272084687413656278671067916807224020633579012255023834982942179801507061427717170821041321253780592606493595973431731706491903586774262351479074633652514067121338413075067967057130428142078807578946524517612252427258659297594069246894599458236894264279543340628856619994193241751907987525134241100352963116980249210130142254656027405230482859220956805161304398991904277791757164261506312062430373358017449391367023978164718705998356125776586110827853940851233874313777955605861790228958786581360764864324969744698242931487735727131271692217072592904301714833432849862959789400926322348068794876628583335418722472427594001882989718857109783428617135731554713614612947417252070633012634898762957273753960103121625637547689355167856122575783492296945615590155332587482221998493735387017219168552742684034865251809762405241031220483068637019315052022032700057098760493671072087774350303268175974272375199043931818776404564717173251814049509144842161621698865366803295593059958306126912011436174077275388756405552407341711117704302005364393798786761742196417294387229311306824008802033568226479467845685263271000516205969701030773751513120503395597290493153844537181232340359322093829076192645308793249442188492872092124419813566514441090639121752296604121149116974867437098153645108704797665713197170015943487125939010941191106054080564850555623582938703255343474715867549064727151173012344678094655413702775934714643086892354968719487149895822482175528502682581089251688975868848916869369558643201275825344769518400755423935684420607434310235209924831088069689557155120820543135428875838904599617286808220522655614565672947360480832016760946753843006118866707292287767918966859954240795649886016457725157982556761271873251622431808098566076363690576813447049762291155907094051590485969516942153478720755755546056769349902503708940444927332002688912086722565176793804538146938464509449067230430298749279845994992250077827733842129416213712731020419349265834085286871202704237319860069971783766685546404167230578479760395817548442456975409605190194925438651558802157244317130101756547076844635861381699673253782367028860878505703138224159882186974451944823029387994206365286569204434244276153871286716436605110488965507008380355935604381172030207159015169659581509560459586171693321826321787977651990130222908562090323289938089995424771216316725083155959168933054567040010386769151815822372945787799210815298741458036513727047455765842446883113231153916493079651574156278729995567577511514028906270469344129329109787867433572735636976018202213017690403487883695903357306235394154559035299462655128795143700472747121516216190465909963142052561930295111293355213123075334616492589095403965908607563594686298016262307159839521675573064651989112965293704162131921089914978432019569539290818387009962229494304115867188948627548693787202508445194209777942649543388977058415235631110574530195559921997567982890290375791075523445523831106957330206783855620387468499611960643990308216592341977617791496198454761356020090175243979995577004063011697021365448910013941854071465866150342602474427237304185456323106801478142489392681366638209756847321734613170597101975667300844287901071440784320022780052737348281570954659380926152762883127543889305700413350828497554551713164589335442076225887502028149752315522913986263162919277235750687772727948793805567429876191399160895975960363941004883662476914782472351069783190640146601575939438397487819781970959455528254228899169672761693019511346170819779189730043461339267623470648917234178528203078657185776404203747838318742713717111739877833016241005699315800312525417725067525159140611994307143647887103403511232809101795351734717897808110323559981074636749509053456718167500431485732573238227850053672756848539684522896144920962755078129936604041648750149890391284420443660337483955033791882454885799630829132963595273041845865515231404984585912116222046463760726681326664583562841602793075899908529844919483770921677546007679511414872393513545270609149668529704682733350780391742752561245827629065664572602994747789743574566649290573996620362997994042641744803205252027457326496615678526808809457353178390659420798977447081036099469295368242384874085100869931572178648352298557334907508134549345993238118385360397346318621024301691995456910753463099402729775212243400205857175701523217928979405572542188512461667496823470611809903850419041515438131603796251359124721854203235332744627471813595365384486615962882522779597372377016307328467270428537462648681422084390020410004498964630648543804717170384873456511784351710649812539013303760489057381607529969142646447703937867549707605112541653930395592487499315221156682703015056309172775006095835994122751533423634357333483991834685620043090517017099038321082528085371861058917233436907125919251459762053478760800717619947030617313756014400977676586823952819088853961420660446772414907207315389787842100602855324532012284453105188317009366734593573227525204492000457061175872468485559817779412457638755732388592446617581571445990419004445959080353778616225195749953062017511900136212547574864609732559326558272874494106655849649782073287806520555806677217376443888852647005615223429547306184217084040287971233741962380594719101866421068328971463369175998963733463320211146718177098425411589527958981521744860297682685531913226982249457492194496913790280480616331212745775054758913445867959570902765979663733347228937413119628862838596735734677467594789063976675810944157720563191180500599272550003093840097380430472519792299092270857706091868942941508766682399365822034396417454868962169024992085382912287389862108417394458726062090477490443434854577682081049172936727645819762533817885898656567207585403941137136084424581495488984974171181605463033344060696700869488710555400293585841603373010356159289428472523714453421958125969883257184356983782054566539988628611742608460267194578989728381790625111995416082063706764794778908066739595831151468286042388180627818052529032790731289091433783624476149209533102141288922152726372763699412747223917576160801612378108166830391313050018963795874370905396519372472712879303007020910655002788747524282971511338484226057871306520658644378804932530424236372735369174668879724805627767442882105743535136449355622160627592117138283807877825902737418109019422842146230166375094985040019439541540956936894388222995643774166478058488516971161128495918416722990209993980089631442303236117466435108241992274183690268492109176475696679631739010099905720298705210392216704254161183965116632646121874568367065347564153936068724965111462114801969010090779090046828623646961517564666781602027892266592731851165761708793916529374126373486848548740549112924022896956234044283278870584674095040399448683632862095914981539933991623430609460453229356355390831860421983871470401295181726567658071365002343883680590928942770286715455519410848220008650513906860893329716612037435184164252419028854233126628860371874019912213961611552293333133536742997500928867836448088189627406409066127435158968357503281555320347096283176481506520169027700430014611470478712613795107549548734717479291614016114173882831386690768831853748605993919705675270811173173051705080746959058993381866626149812625436845675780280556703193672703217816889456471728516622869599036170065877562754197332331562104713295323657049758311367769732479631570969000304939366645084428808494439405480291187839355594013540443620273785648776956767654879862856537239948670712854775652666242846549229153590045922606663412946480828876423544577340714279995483512341656706891106057643972696281405573316003905416932788321457523483937336904170987822047027898316945349978422711821855073718824900352490869504271630073496584924195389303368791817227386735774336754013638498354826273028350822002306151139763544973122971621465377780112210267973615759647766879823423823659078710083909587361442247339381211495374275329951767720890736572519384009007096682351692523723212796776146781895826810908191556466459070394919417622253700944971272087068146105566561566864057806131343380679306929574343949800621244916191288527842854940460045474243026595302665883756503717471353958751497536012369715837947336653002975334260140034863466233842983631339931145116456208084694430560545871653771986975447516459195563831692278672956347167803853417827017139782751493297693708807453979237085158043682745207470367826016004821985443556736829640465995180757935313436723769923597101219300375658655854284109077446257642447333868377984276749246658316629631009561031976349702849228885593897480313690347952373612832803350832613975093368968603638544988505516953148400252892603916634493308687596230628236525388528374283414856604315087994980235831825245897284844655356141244552646199542797869256376196943424483261501895616901216131830171345852781954099034677650703183306606729677647865941244677467612338890203812749712301701305397299346941512497307864904984441488207229283171619385789541264127757489204143374106940208818955549000974926531521702039288845048658091545092790340676514681154288294785015340139296686431928725537363362947705955222962175414273376817255482163619266305616602558309672306917421679081815476185905097861495404933453227309449117664180410694072038696475557413064501965050233320304343328175301829728803434033108040434998674734962115708421563208485641465916413331017649351883630042595391072440095880340175642844621378111917474968625991270039176861278108818010913970989144570186482109616297040405890315008698921265093274995819937684346532887796432986588263373256316293046879618029623065994516544112672506368391637076789657133131252543104991361739143600854346466976663748062471804592527623445225922813966442585882225062239594214812412667103914530351784498177746287257328760889964046902591936091430660429211673704011985907126955853618650282861824126616454241344477017280232980569027340832766868579737203520107329138121414302873061927480072030343714614776463833468230486166878338765309269598599162946452335613468788166152046757649055256796373887031663574245832978412690586176548099105092843822544093953351190344866721432254134415239599178184888439059543123636909415135876520298894488721190775814955806634040083111236788950062702442985408445175766806811335212814977800501012151693505154445336398188180420084823146286834874636145650060169019628675408152810362233002447340899588372543471722901126502663996573556489870222139088914978065521599945530692908799256540448028131750845122129735616997877835339775997248027838184559956366899949217800004658769884543556387095944070199314078155453290607178798561520772498097697081517252700565015907459708229379972961819404446869008634468947434669136600539658823780012052215673070870017701807496720135334246455878997402462959446415233604854862727289009679232055833704358821790550393304807168679948418062000420913325390266737743058029415076276569157084041427058936093542797689869914075251321983263429639528182275305828326253309888052821148838037032417890916687107239087066287641970660716400690113528098061915803214219956491332352350304770013514545328198509758437272182744731195863186627716024624483654019387991836243001837063889476468052786025040107132827024742925704585043763513597068400500278075416815483064010944404551869799262801467509483306605802390567887370963384039814185984168119832190094751101684951802068119580909959471336032431341835956919891041285553448513441288868237212404533213851455954813644566109857768284605841664160768563050077621860962214369388036442651221677754729388228319441938900107368055065909021472883028178438090695959989735713497799432421219576267922577565895453399090818075040390170757281789879922089229275021161121426397545289621957178105192606600085466184295913964478055689251069922934238573884004904087155005233992198673876440698397505762221340153964453240708457473668899647348550539526442556939548886449784981138606903734047883470437389560390426313315197160417533242127874273003306249196364154066598067424670781269341339357559042762701038250403238075247484025980339040792377610265399604607587486906740243553576532279552821682929251340520462332337263968215513949481443651483423946721735667680680327941012474246152856329672790987474979336298198243269222037753117361064292049327297405811086104041150950490524333031329062400161829642263545214603105491141038902776433793486823909154488206223217575957169984785149233322372866565029915049142656179055662534131810882656702187675169129560673814222326385267043780534786989051982496565241883702175292505581339713635370747399672545366059110340332263364452202258108320173952178032378393454247526640898554262106151162468900531626385636595104422766808383063122716863120408176555754600536776824600184361975374704663138622956986130721417247827336921427545718400935540372234230684945779154419470311581151109327003125905087779720104594060366599939619686543553297789367921165831232620482040783154184032149793495261027450742600627731658483092540105745342779071327774187239052884603885806051636783873717843861104184952991093983108192328589807945785415457119151510271959364394533548307293244068902014928116637605327201249836699606251279851843828978815234781023944226931065309559064147659171246111336870985136286262982371424394114258407467885672313944510283353484798167860922039053244087239865898335554673556732183591159211169232175398345858974416382504493901800628855246786864799521351185968941506372977570898160524911941123777393205736640158153866104943269722063128518915248507185548481742509607706947738049099680403911285891450742952634894654452721510899545657414886866834652583287510648106768349964862695372654666028545095293824865188543797841162925304656222911744062100205985234712005254434508509704930167835593123924246243279933752646467134421267507815385895814143523423309980744121880034883010735505737882312295943698999513575526582245347474426627324276386920234847626010599205708969713560637045186552607878966452810638032676651844540100499470878836109983443023430442191574197497945770076059998265908584012519585274426989858952778586998461753950231911435116008149511416864774919521238278006607259353136370013786403517064103439100401966484125829922351804051061886808260858081982364133561861784419171318760136006334289990001393134636925471345652826429313048245988632823338428950989861857524540933035470790086710311387253744221145228688976369555542888380914746320570784397571551100613402510756812760796627042292224708017764266490314481939892980699110252740949763509426650278951354897858272176365413913199659933681286654379484873155478250550295462439216510232306807709345232518791657741306906085805727474777487097083454431007799225536698086938600262170758930663231799926881383362095987009812055198521715120631544399878107334052119348394430135921645767973992713732200865139099888210019670691674474281237221286365847181385978180566076009257077850618507828486954446806569228870879817696972425352155785626009387571270793205385702935048906581869553286873673085765772881616380930056566898456054553429780819108294510299582013156640271401390812874092513262231109818646239070659413780200172913295504278887472167124250489612627441992847243639767016989364133170958574717234819353998976302822043314640798232620479857214609600158381295055873894965025874795650378672387363300357381657745030341967137766974353422438961748600662348741442800550675694491995775927032308436956319506971479093723170987191536483033573281306333997834457178774131206934939530377970345785849291490796093327789262872898721905146970259518176664082290326836485985828742935901434162980004333492279309825499497030476283244594637332680000489352427549672587737175743910343341124873785398909054537034144494443134126371452715124800720276243526287470604052000591664113692198720089372894511958662572676100608326818791943068105664379316455906891919348751149641877257386847406601348034089917834471454684399228141977334636310326976088109178830895198025662917820573009689105974035034217905994705479166301061616868264312434394987698207624060111236945510527879590471018568538214928293307565838173117517327445201333262949131475188704835893079506944652621344420964025175949309896867777085137930814863591081552998908773537284542213141601145396594654296529933272581596137106330144291416611549218737606890059055353078126020252291116238189616377977451278141252049728438993263005462159399695958688210115580956128727549767537116361948351759710467763828398755685367931721047951241508485381427332969830479944688889791931450558396949093306500369510716829509102708142517833064121727172161292339216001012964801125729473381956298037711405309966415415921335075832390171482580747613956428981374987484903512428523139981020275842337930562047299364570098218036920275977961245190509039190519681692751152514920833956934953600131681958354284421522347281654740317583034991962397385675540012715710688810548190005064672335223683731031670792458834063485096240654044895689923605982952959335663815538051422295514736218382293847324603631100769785737434723719557122377382041436357351083268734391124442443500617862345866378627721627510494923186513626796111856818300547786902030026309514555424242984434316263519355585892255586045430187893287208204209245220367311586262377124371777392292850144868665482604108766735925319483873290549666117291503869323155362220507160205230168202457997225475947351725230536869837169365080636030245175722692976170708823671276533899445391234537374250212535086124689637464440594561804503585909206284174389277460896748745445223522831525850502969698178878805709930990092490459587175068860915381406440009660905623302396308446769348308126001329761721946978036458570636105786093400216363304254455727139530571461311143046100947316135418410698446949779353811245349206845030813969292984343025792670879020116038467421430342054118710233575227707298129820216886385839418440377125909579119968790569600287487720754786365556707847104644697558543015778835722787048864752917136770938777306394672833454737543780472159692152668107892523302596700959755893769772347235259681116385028924606699000238010605509091811501608944317860263831598343646296155632412013087732531004415925401634955695656619113175056481856816037138129439922460566771310451716814844166927429149434962699988287850093524636363910627370743360946372533002890275120661320041070483148927438407131036686812056935230861438267365458641976250470682685092572710181145487874483369196034354945384749637419307627153858219976793900431862940867909862012675120749872859629833477562654277836998499405592633587113420384753230731096545663874534831290413060603380191742684893591606233307034636401451264145018272540293579138033124403186261513770348637331497768383100928520556441463840689641212884164000994515368249152330626815665067396218358633373361515059678662491428723398588258555403995964084877598323876914265298142098212098411666220835632846011853193507070190295104074890142350637414741801265490433959248804946822863018560713165849642885958577866362659598382279279015347722853602844836172625490637656086535910581461414951987611028658748169181423454845865857861078907929935678067437928945582454793667906220179490476671378541453138882136288219096005634934455979325689182608749881741006097992844629980895417191171128150756781675151148898524594834086623734306328473081346879668271003471170471405692569232457786997612682425391686049864923015783136795861173198242868210470327053238191542702904936121806381369046954588260373598811065787702825167089514399895075281945999637220645079020193220510612904559720423745080293500400410558636321020983895458709722922147798172106242617866208987223728030283407933340165634273714714094192194410550166678858390734428179944195444893731939220629969304319122655946618719819553778155017590026043035095820962479576409169145645482597822958029100708616761813595222942246479858169861330144634155575927129444575531555895111959403940773789627784421621302352121118914480101508717953768485390921845331105161994733701315378042328012196995068687118107640326262463216914962097001587529612420617111952947116626310351864744728415173035763206648042666198324043778587217692205280746397119636393852004950332193234654607692185159146472655968945676706567382196913307965546450102066185202917819660078964028519172843547802563097157680043272209744387961788900718940227706980401451421859456948181392912256759097096758900204244279214859690214391126696952824550676258562970796516977892872920286570060480818137066992172712784339039727916358336401087849863987786919351584856660557591145912076161442873497084850363348906322807255891380476172213021554853810283157606046628738503973379743464250633452949701870069866680969458591742078582650725970042898964228065003842511562787677394712164032798567334660808842914739007923411337989870580377276513139658498765862449523060770837802850890068384740026085682838469367279864830814079926182442743567844631841859046863838537903752171167061680186112265242005029514580711868007317948904924997421131163870851518248398689727518582753605328477507139711887640121999795988721512458968551395580936998419067786450182845629039908585070331595517598818552179306492350026472374003168597576445880043123080371330815373790050996045734083640403544102496319970954720804401629907839229560431685828930119487708560884258669943335368845210989799638218714526386949546360527050032061941028651882212917426404186006405877846298320317677603912771566171973084564743509202597474399132800749719111619834786511663323630172461591251973138925232034952408176936048626284396203524722785940273729240227780135689870421145845160752711510439189168660762380634776744933013075225048230888963893260305602497157362811873707587117918518496672883093388958326935620466385572905993287726484473433577505282730886014167038760509352775602090199432976937185171746713304325988327453525269290352965650790056639922223562236256288556914594694666150200673223188476277067757990116231981689170568395175373291707599047772667510900059763156326268872466710960651253282780514290611976376227187928833389612189489916520177038233349923345944782659272398365033072282402040258969747638263671245757595678326568383224481936673714605834974274672306814145298269520510226658589205220282912566445258136130251273656773051070952410457238285915537698722915652117309365846152163826315769064281611749916821345325888150858253526255226724618626126846237142498698564014296624525156861572158432493920071233827703602042254225614206105998893500713751063763568138648220404059454599018703064438760430905257322182257454190293397801247087608202647610204617077597487233494374683546510532323832154389241657908058718532233211376682279556172162363401898871529506706533458171495061331923759057213165404820104856209083281528920184143211625368466042815436774969040964296413599051813546029534372183813574467170385954092100662040406358232215438130756501444441019235977506134468223323316684332163603108766005355463585673120903298617758160366763882181370374943969680829295698122528106177644732784783326207424077161272448465013973724708205531604769334967732395667045368654640394627671072200153574135745203735619295907783193966948445211619303545770139487634842997906741208320188832168264512731177972024491743219272439002183292640531420108327920326200168651931119020849427261624991761749302158677137500002466913016868392919786173102015713434857449167971117166587329600097849402383135353047308624110759459902243459195192848246978161501633905043795804168668533485228068980794607240127769188911357943273024457720662363915953110007567685586447588718622856841764773990736313515779200798239965627015474930174346687664201180180857924589756944553260898477487759832144127201132195127736427766191888955539589629262495432298080630975932381565110744004853396264121965515765577668112568339728407615855626530421374776381089632455037881155417840193619760634778409236642188525055108127741135160232211345152915264983619137053355506872069123011861940720018360635807500108640673123495129316150350230515929798085114233506473223167785780158626768949885453250120750010577011639956293348756203724006341260956058000760097698285623372945109017244076478217008000002596634809555000605749098807440932266909300948942471074588312011387024720090410495431369783862755870420560003057425110972329675606342500683204853129326312291674679362329846521235989554439177833143449458944683945020295987872878620900904089482817554512169911687825541956036160556717971209653365711651615950066123042372105342325927988172494601807463280368070160323416704336801812944561887372510425786020195536400083056714664015696806826726635418808481457513048523813417629196265312558903249694302089451485007348401098227178889111165160672484442732712116428118717787529742199942353158912999652065874868646683452570364373059026768200111092262987226835911991130881131604632689872930856307688663173467721154337765071013622434036679003602021964672220745109976147912047365280856689794030822755967780479577398778263416437005604019606610698821806811387110049490071390295965971841096446607527313578158083894844922941172372210309013034568694611525595732241704266627276520954199140510716519730066458907218022465767056213834553377927839910339774517328993221288389291904314535039103053791904178157840822950402495575113825631634167508252111230797681559814379165792438831841550987460261444043211854188026392552011839079532493395520202009872041306459412774078792545683365029369082645034221080257031812059654900362680876377360875663196098189134774747156532941596354305083715409496621417437624949781334400748492701628444931155442077957150405788096744188045282200267942978038797840714150698992594612248891066353508673433557954930724322194634050033469723635549689268394548572053798879526509325639719073334745318005060661664164629693941127210189450727600045556520400948906502165950124880580745354693506068868642945445504617471612461257327262749738564903370474285800425412288501051481874563699448239814926112061884450005926728820099294315494509890920712527939977513942367532893512435524683620094942154879413709611277400661676721326587409170669746624657567035966926666914808638123984791131996020549507091107170106122486577967379972822927449067041769607942417540016661510901179095683212173803773371604240151028098368936777977070369468602123597041237606620785479010221191844768627007451008227469830056256766673075816610205441091826755215087017813998288570375127726665608808120402718341272940583449943683099164087474011420701942444460295468087424692001245361476258429979326896987088817716289549525599562352086568362590029266636627826493762513032596434600212985565395771624259412036781529865651791283414937746795004971322607249459488929396494432037467476162653001448001606710276790265914404114118035570345234312674304954824671459549852668754512481159316655619924068946876393604586704417122805994383908626638184124579704871812274658996484893473184364375694549584488523844720352763837013248857700407099063188635204587058979974275426078092488589452297418718296585797328658459022695606344369630382332724160801300368490894693438107327216282147766001796469982679423250698129002653083833580964023030997918919999834788515911751511676162312257631605548290934356608407169856152794013909533310831126246105420238018220410038043290781964376629332847999769005695001022472862072500340422141417134203387465899357053222806699184997060763191339124080119575628647263407967203140097905003531500719233478087731740935416910799837408641642497493244561228726516015917777965719945565988249971433285892251031809196484286738509893970377334119722559773246989059258474609532683411697911032005637329534975041049712809930928966427820187406300882209564272083969201692263772893007527622542343737743586884399567470510239248118854837941137706338009763035278518240742171546128963685275004319084730679504565066369309816262340996209937609542745989110464796412347159331223890589999574113008542524094624762374441051229015496544204354359479324092226531694358074318707031300473806652155114271119332739219443543231572118003890307253757206275809793682080750921151431202506712372831588787048035174566947799601450899464214973944618104709227293718791968627402941515871422492500471421102363157834680132281770986048728575989856135418897454334611301015572621010989997519132558640967005537778891829613850185248789865639176547138436324486200946837018861075833825124536336124874864019521610955093959429753504980523466067526507817645957224880730699257472092474797700811419830457451264070171536146343564347936208445134699638290964057310106652684175109541230725849792884115421971538415309838765075759543538543683841083130033875883902148518912967195624068370672934470340940999161460048290678324475296055411222825333917902008169173229910316872973330340663436241697071031268208330667454453995160495778542581635758233353172015829674728494720303815676454230756297282470935498599951047324248010393040163698199320479958475921992343620076170819890325313214515398222731410146338045301353911334077163888053320424714803714945079526805287682291673877522950254467517016395904747147146308894541376567283873819006498755023697843881861437110180712476258264332582385829887425083943938263258526610257765521265755456350966836789121500154706379779116032880837648182833706984263156190849417758100041211030790487122858250752015017645846974565685390148613399991469500585672930236092468999402767270826745476028523400579736512985510675123364018179368629390488390776306350610069596639230297372376290772146415150685651958875219648265585798871634960130301622951642984738949769718254125454473703588043675966395396183583146931196111116281154281050741507147459101151317684845337918338552206550084900319844971252475020819798943897586364627981003744011032861798206245551033931728988201308581039783057194014189098750679152808593747412258270851331573703124053180959211983811919150103579932570485882578854813558808952988394490395863482804525973589569603286740403343276441590329728334045559298708859585416177114344470725828087825221750816589305252705952521144210725718991657061038899436866466368191591032161385342182972443340530551342090789755979780964404495410426677637954693890990619321732154205526832077489318291341690259378361563315013333732964695090183678083697384084730927628241146459467237648709132125466442939383018343685298439992124439102590904343337475069630757402656716715590988899740070266589043161335156578267225891038566535951386496621175479529301315810244359831926130574935212194653751864982708844657014250529699318302468044308154128009426210441776334015334354422134400197230037582268139527149980723372212016934781220972771565031765895029949952735423110282336654077974036160898168292508194561075793621185011220301170286450493829952620276616743366598495614942988466246688486193260602780541124128317898088760979748327437500039380695165639342232228147021795640088127904830458984812969997963187508037537149466633819588193874621285486843634132538297301945470460395159608798658232541628381926707951250419593124234569054329634331836895149005746294523276436280718192126639696663479908456835383176502141031611562801528073811186669991485977981859478824647208924154826935780744279066300622539433927490579927883867105075317911893516577721394093460965130573938564150226595441163168242767236929795487014733307657055939984819867691300244795282859269210416442382989908620799859350884937168779447377115575010113282659628596505923214369679566073658591094118504431002134051641925912799168489901908882667721558805402311185111983996993674581504100907702570548584447265818372891828482602461558896000217876432887410406588611460811161128239734197451709865346123498087255661768344372064437794224309679865729599979188986515877109660997827715113325097530383082486781467158831413257478390984367675207133590216322741877947967930597580942607342241927686455074752691663498113918401062731754504099624792219618399540774594704046417956673971397292328659790544706598938047238770911098308257104158274257647109810472446758785509653140226442644456397228641437020326345502154784923809651504452902901443241223371542961006048063310972840727147857967595718132751000903034527061050706091255994171834520128610827441234879685215419991828783670993902070910805401032260341014093245533542412008102860474285178975648840787382429151334782266123828994368605406801247371289077339630477185038579409881508141600453648624500979182418565595917429481253463085698794651447621798256238607692721291738514399491209440247422710380117257516299282342218656626348408317912918607533550674257556335024906379296037375173069128630731450391281525645904124714910537181346712393215683601918711383039221663527327355768744304563431363507614967627521612567838023129089979488447760938092318644470845757334471602109789200948930361929464031959548149731763242726883274725146923576403473194806971142377680606914510378887831149254521788426787354700984728009905390757929884705928411699968205314788421227910902811090675766130088532214581264128478297742105637274835317397544046550561566149076690302010565156574948397043256118772717767960110428114377028592486411777107881706028053061796795655345784756261880900019795869403558593702234916602006937446386645431071164210385526097658967013324792214494397152172658533799561301101333285255503787214415584226912319142921771966236822009198453662080131705911479382343656261628218444276251627754133049639607728805267274417241101994788414216427256712882551308841031122276905812341446760542185907141946121856870216623841280116207282083649247703984502706655000994315786686875549533357590605800513490464475196591860429736384722293495997864246783872418880988426381601017851818569815676999714428097764232855311238333569296548123724723327790794534717806109796847690655782813955668109209340086983345616755694063027376694742673326499752078403554796997371274474077123270711996013248440268638180420540926842455224318645077104725247369482145094769301765190551114627193370849488973010161714969235390788293379788098490838546359869161566218845960046497444436846585297551768573864073559928286562241258999500057251012101975456821608602423004869115771603718767547452879699033225814810127090900105895456279399111994417355320884139489144888544181250899361584368046000559571272345911454938401658473975690168303564499964802412504349519222824497498030029709986218521075632129918090015369989362308980944771217473521388435762185722597112729265712192294460350427484257418758895835816140110114815854393089092307414159946332763815218228709958282068609260249827081993650369224886885279848370158736112522627941757343279664003401207198381985615319672244688569666664274089275728286424932659752432134382866344768870560005512832290683221724405805678463258742338794440538122927208946107637947927464798343240287161837642554713176409317828379987891816718807856006639477950446792667155795565238557669872511044963896382822165528603426378766793717967433007954372700957211599730276487007245314393214201040104941688859209285287314237871591261334829308535352230667742357236347687613141729879768620998600708673916055549844510518397624126696189241191660223369767788197084534814690504392908340435893580955686100070159995715775929108798797649058726713001201778747151117677695305634693765039346371798716698925413642772923193576900525396417003635563250285991843980400756502345259379696903323989859293965087634600418294237299408832037416393228087884043621023083997694213062985542647633967033385759533505662145214002466552903360992315179018505529282814565597144598744525349084555403870031230564967006782106402347949289272010956103447020252352096553909572801673873530225068043364991488352234955933838723277315777154864066575107753676916954749799933118610582278039550858624062873382341586243591349625020078820307279836306733417855628833081586093678929058025841405410299870556964080814745644014745909998472444845674481521104071097298883464512907052674899227732793524010388653237746103300286483150035472981229581394272562268392670802518882769701405459091756456150319312762154568954449159696846672074073171205876004426008131631398717044239688074293728291653082736506984655558775856572910409278097968252442812155928868517760175249898070152455012730795071491421852245243132720670251732831840204278605013560028635001671142574684891297265958279183304620017192812096405975053497289071319079764681688498753754806249840972911054459121896801444429041030506735767073273758228046812861433171671270361514895163527524214531095247182790727865045815596527571988404960763347793015489624542835964615041433493037061490119277496964334349104948255833686543551034954054713201042007873171487544998493582201942771535575109161619643106649052012475881417415617513282451759938498732037211034570433240045403033507375473806848524228333133487854945757316083937985055745386108946203602483121954741910536938565420255662167902729549610530446864337626942672276373550410235429598272398655257014897444004647660810482963097703262517563044861379424422201467854005869053848222288347400277782835124034939176621210552480035025686805276726504069291907161596573966474566913116738211602191403557540098976848601388075838153832973601624985088302008757856045432158220024651193505798089392320437983850000952964053737863168926065134750621405785213761762635708134725190699125555777166167759865479377969043367985448527163483986742942987998291098358025938190482955172890341208641623551599662516904155267711153933558850397035871037779627543789163542058107358618377097718616355285438300517188107400074775579880925610815406269952665207464565785276343625849065702811436834272695541865169756962651548790703459442586245642399652897292470048411872990521591752039527545637412176778467479896690728885220822886819414902261502043427510983457827423030804442250260619794389063534111249584390904271890375095597958453037266368258812468197840106191799954996970139312257155916041950581924253506396238898649735240142718175061563561691103548699915613043132225900863877049048316599844870057730186127910219857591446756999113541174777068712206278892449822421353083408108377909575113101213872198796131607925260212945588063430165280767907113683260391973200328087481777579403889446250412253441946620652659586196767245213239204088240650177477335920344439433536675795691101705509545427241829637747441218854425277516843238753244148648255082305008771188272841662648562280948553244284753158950563959658099766390874404005544974318512644856145964018293157862163289191561731659458081656678442366313882890913477319485191236927658520269981013483676191597238537625511399080833463161710502473526898485880820079525782507166967475984664387661448689582451618752032738069899460933963593239096150776158262647189522442746903489787219669110187305251677498719629291344602523071624794359066068765528099199786739708762716063197072444076585912700164893976622947541909723284827446010051779923062443390288880945677778816588124586838868232655321404314213196083604129334221049146472627291348583056142623972791427494018266291075386716233190944632855121702044637195375679869195475516238164427697512621487651562082306909275857398360935221016730987942774220554324342122607071089172234684734880479701069064282483946834712685816665219120650348288006607505851353601683895062295665803306567645014009995411102527460117932529008006732310102770631006093312138594141115561489851886700602294929132124568011168810199558568942800738741547588392351120634626562655963977005350518372689842063097075190775664819122015167086984101114407176881588351493292703901437928528607579340945904600236788542790648419490626161577212464120598629083992682006006988565493327168005629679316653202695215448154526059493802602667752482596459405156633241791838694979584573044476685148566714799917097307790156985835412355840491654188462574097733017484846619065464328885204505662992651454410658355454991950152169160403812274819835051730914663454136905744313254276196583428867850907930503166756574357787343495742579390241176282408613184467018481116345148088189475889287565362400196126427433216470217463327788270975744578107308806358839952738078706627972528798937096867640873435859216975409309560335873333783873358941743413326016416661705171143412728041124028557037301816311307167455024752192743546690060315216807013551869584529225836932132052057553064554124633209751086735428570788140548855092649489976154470619454861372623297028255630094602692015962965109827935732242712705781289073153175570049850059707974014791592257243184340222724427522563455858551568051085742633992238261965634854121569310423927071043969127275376520857588375682349487574825771885841779606431022228933958898328476586707747536713783473090867076095169760447823538271929394364817130447992517114680301667582417350194138244689813465548551569584847160563062016147505880752545783347974493126021856263327434647554656163120126816892027087634920192051503179980630715885981041285640115590227945868738135232989503988198647361126895934566872889706712646512416184780907122415294477331983240775806710266348670331511839930439736813983402872305293103449946818620280481239306870811271045563849706883210558707791730094538422172601377429908331170277065992418311764294734678151510659874442509587410606256302525906282985029977202804026941169686833407974405088158720159447451652025705352427055866975623117069262649348599690993186280357619108966428298027206477546891330253945403921796423339083578282115211719822613314380609034144546849011072764563758248798440425403367485285818503112784393547150737617888584670176082047419216155494412260501473119881596272741587293400387211229519781135577243777644676426835507609338431178347952675918689240346930745081562431907004859430698175485502449902631954887129984640871506818676612915225884243347037214351485798497127970661050582296150649482158942661056228365061760942225197862665944013500400985561581460129980232387651105180346423205346962479965677852725153034071261314549944016669694304347359899294544564448358572058558067566694453218289600099225319740879804040711921377235957190272119052225507036625803565650558429199323512820520698367024433010692389075956513872390154110960251538212748034297171290937758282540790369168580008397216134604244261564151086475675097336686017361879993457279799601917247471709163414303143868066877521133954748641505268986182907935674824506170330608476333419070882233620822216939669795023610230786865424121883317147317791366915217422544927335490565597259383772420070040468454004102510994295844786232086667834213689836173330064761528521006965923895879355618114874620817079810760156422797899306839672897266715195104384857611957479854508515291354375981334111463508968324514961634607957236894454900257826422906208192261540390354076665189726964508263462767332583635040215854414473834272057885069809413913489096366837240543200796515324945706082734630328052993364787459888076630216357190597391270182766851774560805716004626053984624393615140025437737203664317399047798186325584360947930045349492461561307975041065794965883132177742952277941055091542101406899336898431223096889506310973895480970145831957268041700211816341913894247113145770364735488286161070578305308485490808731452614490944709323587772770546485940619861359195272096790309118324322369016850648615680504608771010683450523197478653675035286995949935223820902250708400835928715782746018536815454301853269532159994487309362476857961934847503338080758418567801923066659874874233200029469382077634691458973832969838143255407376166918623545137719626026292050462599872316729183476303107433993753576781206995692779903820823260511749707942616145761447284441322335012021148713593085008669464463963767860592814590666339078434839726437721471076397923345406961526740859853400962177676433334847994494123544894839495741569432669929603680577383582678524292085439205765763021345030492668144991454561036625945129346525820952661602471426608708623829552093781194069739113434512404516255732560676996949653285565393681830340664679726212690231163200150569485129612032952192834781007058569445979182041019035621812952717579886419267574633074087488402400568239546939265471249330760627375210080577965219129395582666312387912826624163633686837424693924164156156665499192359902993226773031386743837649783528169627464999352575788578623809838505304282857373868672050349441021251495807593023864526780246274071551494234582724485280729605731468032380533148559299323196151192379754342173202509745487736387888865917431444490587633563027942959208147719823880565329220085112048104069326712192674663507187540962677181318487766613420948329088604131247084754307503064584746700937518911444202575116286326050619311544285540963702653129899888119639088381408592237370212561789021468753244214739856092543602204681830736972338329209769690754010219993043301269942654431765860223889136381006889263775095566925850450771074711923787167179109132545213880096363277003182213069884257817359528995908716535977113968712797226623578780118249905007569077838598285953404091507355682298087184344307486256555904572702340096143988949827486094599104626314729136089160153586925704971153288178455362077500234717576181299901817411869983033747757377092530371525268010523064228973232269189421588102824086036364731758204447385022777019571803901501602977598982222226008871996362415984289097169808260085093102860321562579725776439181838078690230824676096755337419964757058135573640631909281377309590390936176206469443899064255414274508997793385834559741274845651059555647212950740833332750660744852555577416262319230081499960373587562520161443386079094239298319000639965165429574865948185790366328522678222276431987871127355341732573559270159697142887650216362917047456841811057629313206567406816289933350827520377297412447204023740190836551005560833042569585926251246690630123856780756655080629874836406056501580220313854554697521197657176052342774570548015708507749252634806279210453170875131114771716448775529321948662092119747603755053470382920589850371559870207830645376904203379357450184016299877629567887882598907269246876843667795192159924672751432113346036283193751776079602679509386988709541484179928511841900371943481702396652901199150864114898699556550231390467234724469809185259652386777178714369585848137717013853679526958543810528519673181283358740209318129698409684548982795872318865239978821950904061687005917726164239983252523095228445786803380794303569412322598022573809559665602595102304213611729396255723116241058336820415737322327160163064748188296532183173602686865816783277860287489066939211568422963573362867225182292434320100951874040990105752750380211518020409484256329980952258850493823254567873119617517646435491943320895097416916517198088411025936710366833771912372529122207282012560793550009603177920076889539890847566883343161924418626081829454085037573311811482324142451741151249933766964760630048184556793882306774340771589247533302037217587363198903870273555225191707659924747027157957252975641550156260710633637468300947287442337948293217176874671344098372463560963901974187453247761511593203050293221454460126268443180727958343468519177954213875448173498571319438263373957085358950830114423580516715088628578678114861874120625054989249101013949153129827526895455868665353153192613445276681184555147169552350790561686018786329165421331692626545127120045274418135771182367858973394472079773714375085580863726753761865291500034903423759846045414565738356319572171127203335518136405474633018849708486179312008947459329214652352262698555813826020450472419056614684857062262179978923342462454752448095783869052267645257121602292079263821611722765485762626405930002186105626531803373443008054367226431650760680253478770176314690484778101703846868828829560525706520207330396623542988463365876726618940069813101793210854470979287600836960134726660928193088800740386616560573701009119514776935384174920945494941283526690944726815099947420530246415462171409384280803876704294107373890188472744022538180817268177373191638630902839912703314925451477763522499746551894061881520258121100210106568691647073374304316011651189983367205385769111548112389439954964014367405908621920134222670462462940626038709498301725931831936891631410869716019194371563140140004761453915807111755412448222836717982047852105315211401165472759954032066558095128351912607447599871032685094980570680815327554403418749811707488798302936538348842817822860094002187411533768625130215964391918016820615265009477763181060818133652886847059885707338079378474039512464651484285704206161240523497314040853273431583578827334415750612097714995566740172082623601084647603435012586464579140333658355424331362009393496173245791554860337642561561546047111771107328083501769621267144969242974120293904562181402639780073381576184101958884906088845175603428019952532425167101547991400185882756166729180086303844517974782605566268109503357371288686412285735378688695738572686402176829172756724368175479245287510758090213569233699876991457493124143940953850380617413987993346487444387252224106097710960196501362251641171373063116152660641797320526234579808227977294271646802776062090019987157978772686504189700198067855222994510923090364360805494727201235585638113187785325569600264775957467486000331547891796825356043418237787673246800746643040527257725808649277884147041470215381734485401252270444125664667570229095232299152003586553890614608822983883018213020851251505283259024138555315540535722917599486406997304122790709135706581021453942087096294983705233614927302192220185797160692567108501668448141415746436260345065661344918251737250216893969905428573713249208612233499152384899181931030067847126813733147561619298200962933130349077316463989560882449343062109398226764618137885272850663231281662065260767280772445510545516542516811355974020500702482906322401349688409698396005137140022119306626290389219746346508498196362462680779194949258569590151324171301074684597363157882536758936838110243317607827383497878179541968103140753735535991704152187619020799012441703070511003415679559100658936865559554099472592776904021964672658581240175298011927302214125221590441648479827511057835256308007515401278741087433219120691687752414384249615012522531156993651235734745274653375043739213448654823820810374061123632300009413805822130857220313596371921781008602637857519939425941773579857219048034262603913028015357573699748216957694747591221445134156923798306626326004484733148204165402567764016322795097434811478064131767577614120267925194546659052393868805914989649210165060990155898882680220783787044607120770072112888388055753223158509452483197553337811060393400507781937913684840313817031500595141438715859835053749764548455730481091522123061873701033072665369450609701174580830613368614702167571959776607941801215931054097233187727179921961485816408684126616565612558577126119210546188992413354196892684147620035644645364495594074443365327662195018575054480121614354109948127993135674739569425713367432531491703563347968637862564105591952611098456930599739487849286564855418763341136966452209364343829693747119699216700640495016875633775340751495503372422781606934102104341261679980893458032131719074620648214414643872395209097379045074240260419988235299821014230544136791834653718085869102246068504477279009652269758331115392648455437470416767106534048738707892655397186219198249204666495847241665683265226585408354979809583629983760515748756959433922960833673098872250760286498930223444237632584266149382139547088442384484637904176106633481980878098581333354802253094699615663609739119476336439056235830017460761536546749171279936278210757698739179081586539371969650029269733383942120455857101105041159381241489918933867257561460142764748439880495291675917994609948426915052099028966386495270151563172679439406919570803567334573873983182325155573929970052752075094213967176741200414995125491529394192358098004271699787821079118509997304754070568943323744830701639480118496791618227241578574872748082501905917633100502105951660620272583840589464170256712462593410114053756721468252618537802585472930872419647652475325450769881939705382050080815329522929692459699165481156226155296184998765088845094652460728445599832046107726054550903645580730272428688749214019468815466417935633378681657226097797777695047399601753714084879096865115788552647931650175950518057475611221569682691683916550795121493169159248030665968124298309964752960876702780552590026574538715314134257192728063351200103473863041463415865308499995379455624950277774072888254381570689119982684700022383892400030733647411119006775634321243803124974864355979285445080509618860518109731393259498038251327125855193672281957020819445651296690808359125410876279701210679321204000083075510263932596651833522053516155053305111437817264890734595112307946989250340521385302867865342129501299343205378923470509198763727867993071172416515027698090826744936271230030437230841462341455989495562349161036916689189691439550548464868391536287558870681247474650902921671181036596833259871336124013457376237191336301293875834252683689816725559435539811839641116737120057292401292959925000469686373719093263505626298509818547749587088527422984579149100304571354684473803657318478208553082346544801166628944187374013665561956544880739520066387509837584703418319311170101398588546466023727325973554612705932702751244407506910561084014105785834326384797485737710818344944052152610073403933456559189129285364501448644263792683089242155772938406487396941792147324567505035168758785770694941758043509775138109457342022821030914110548187527612180484474018549808644396099370671869194492434638877282077065637597277790773304818635161307848095229746103924148935678963151326599322561046419872958585229955597644821338389097233677884610204242469039909483448388547747204474582755194508405844985619659321555447415729331385309411914797398264441109612038607308073668056711796762074759577336790849533525606105140078648083304165119199928403190528114387381203143721608170566909633400606975979312420178368692302500540018763433645598883308196952142753297628651168234388901665642130095316844936575446824985009777136285251623795173579183342640246646242980641265218707454048516811043095003653443909372865719792011511367971439891380111240059986603161129852494170346945301282962522054658292565125831207216540097179145004649734888256193900708503000818321477954595043619742875900698890310724342521394262004346017566555217185252153259975197258115916228053406734003336718981224232154474682699065976242375696263310180854902490179470000790254471917251045523655183016536090826461394459837512497652910134969527250886751554597560734099070858938301638180301978074846098640455034230786438114638889538003393683235323420383397668677021072278772716157455498209672431442862900698007333692500760767145437635157148190974834731729951729262131246364490082984909766863820354044480757276842910095761738550360015890321668951030350336459955334188246525541560625422771887882965119076003192466893974320670687566385779443052640024545085354969516593198899869426125558510924512743605802431264504008615418412760159269352117163166766291254733832187212474149801213430165039815047787297399018737337609868621726740325207410764247875448609478400239493106619488540598404911348640090279748331804919516027731754523027337883342808289792857764568064924215838618607304335194279983810859545793978640327317727067017181266857656326512886160414841267311424872115421959850774940923392839800949297309215022330695072908046425353943160203383703969984629344849701151744456639797470048817906286498917328830517167617070061654154629513160430426517403132577847912794077043302928171361889592782591094907614257475982284984902788762906854767525422123147334897304512497274954951911769945075999815904142529121064973191331687526384897818320560795255433506073236935856348522440986628206052248667656043844113450223839618798163128589394105071578615580716649896489470017612418402473836602150421637486735552307695860956670288515131710881507452180907843347935876021956935642022662500806135431002927160783035414063191592507667422135269584950603943741680418217462281656439754487182453678290368082042652799981811080181874528786224820328448708526263838419970019849079923637791157486558814089885296724682479302297082354873813912786433739302405322070932315730442370338089417566427983436300686932486456940920835220816974558865065432076059462980554476824958228070117348334360036680528148587330931501496279555018153015199587527417715088823200762475606353381343470791738238480100394322027545604521902925215056889306613563222020929718823607085989124080786491641118534496579883481768924912791258492437429059901816052363898694753388934123891899988867848306339028591101035199266079360792821093633223942036854069036780374531637260657580974957818463863652922380411308055250941453688762614577926173918698019843923140267764312514201357150919391007563403244690450472684038898939435889862131501155776106973705174190984325418507572777761256622162499421875483664322180908941975057556476661955205543663028690057853205479036795038006402101170322472956901230341878144616919163268250612495060723008260198360438532261319794043880954191011539496783380379715164282958316292725439126092138574521202910782296586176026234624472971703393584838931536460411964403733174043322341967578087178275647213663614848316164498617351772287699035460712095735071715647979708370043154117262059363502402522804695509625713361653336604378006473846224561953617365860642599192434332497766736994034112299927014802570862305275926360195776839509368339865158990907482363645273547339207872757224285880729728142917331610471057796583893945827564110474418745424709520145536499487582553048465526271427658721859786899977514161626605763389434316154887365625074670247234729516632929378571061612440933844052711639842796114001271478492800480404530217343635838338655397115577364326471458649782395565311699911965175356393010717233637350915317830393940594497907039137979061223209116018112116729464405797334881826361241084448460832958781408303072945966437496753588688244533934936704353122528481512245734855960131139740740959213978336273271036268381855289040940704354373335107580771283135544088581449562786856603710114820617641024765111484598302157636357606451494049402379518397646221833457222603546781654173064653121045869137820722405218218715667133585771153400324604642160026638686842518774371524270244457953175375743445339939565059428578199719450974357868145516562381324933289392566575119923591646360053268280269251465243563797135487144475121320575669733929174697524426503220511881828512448651244834819627875195806047344686943854904839304229686768741139340525843073433013112721881788092099104341971812465690915824842983254736770926039081722994073384945637480163380788665743746538572761321627628086805256924312620014839240184164075513811251993421173145995122222366938437764593001859296972910229447465599131334164652790408550328962149289853560511149965195099086340901899296412579870677080783651831047577893246039890445307021513006496444419101941651906020636863400014010339184538646591478554282448439457777770124938425366093953176039390350562912055644202763297961182420544366631054535097025597899989966520247171964239447955816067828526817526967622142173903798841986996618870168190840960563287463820187324940076640978196371971362367010124464315834437245778003449695553921264518471737108462176928953382969865216191760634138364012146043834591540614698579662822771480201755779719999150110889540970080293817445559608273014627510463334580693406076649678516945917408354018413051229558554335192976146378311525125963730623779907301233803393714647238713382771897744461006928389719873746090693756337867260932536738473054510301460603815786211097819468513752994885892955789029683667236339120354075251756628585631271628238426551153501307433607390901075410007993536508463759579678682722468583022857556116809625029565951202981647065964649061088353975722000879488247618887402289040722492557136692285810559307233542554320354741794912015683089382684616649337002362980647596178675637939790782407085565748723315234852839534204315011317330076794965989309093396370599991023018130788545933255387476822246261258649254280293651653251740622729096072032096306073902575059026141737203183173622920411276832997410449475970568146833261514666338286941243201317592399632145665587192346410426140306920041805506347480046283052929419604005011866015348760397411574843227889570540489979106769467573386076142015068084011251191777189976538285443298117302690016107074173262291391456329132713360035246443334822888386524347058104623798596946567636753065371759548845542438890947273495682908289343896886867327940165583487362187976870225825468285791809877829300469993657949398068165640173842487013398638176340747285070069629769312173248323409492990527626535879627586640215466381428337634873355094321610629480201967671822443122129764098757494292874517363622630018486919924358423381024552478325589449152641756358834969769100719010131860952504062853851393958990293241111510646899874429261601415331893086396912604434288565558528994433332065761534543354296030459406737664307524441285079219637042040130453636162884812713111183171528178232191889979142582716893287448801286990847874434915525246984882074880317339234176115496316635469155927072976164294018581651903182830440530549637777910017425065141705834389244509884455020304751173744515954089830296278676740235418650165030853599710482135332833805223747428718691836195986158793927309146424403095531046272581013003864730943114746461227970667216203061685987643649678940684451868246672876773195789292812876615648276958031821186929396733955256179331646538240437961697508756747615878831645968696457836855408546346827916777598019923192784377845980503086824763418253006027195714862518022511510410312251752631680527296459050734525533747501481194651075933054125121025009656006446697440104050133375818336076457884727032196401783686206171406434600831974959910510171313312944664814546458381739912875667401717338008668321442646413995107050225018423774751536288801791316757026206638480516915401310990591118974180874382369862856539970896299754911105588342619641104473787020135965367697056393565226388381157072629790806241873773370485641678698368222996873742217029966930895178582254960854889747370440655698503167760787980480992317902028654193803529496833108901585010932825302580541087678152289889352797875867814986899407052175868971326726730353193114440358829860466119411884404466945665056381809452349768329351056680294705601867521567410728531498837162244982460318259207183732133033516426587816675376564692646337279208130387656809791507020972879399143659911950772578078120031155561225924097953015176178869544228794292639332386019277667810480246567545985795065552357853146882417910816134406992721721544252650204608858940698809793499158844987770511093328330570367391399808047324989989912676242547591795169823794823394056180893559880723332241223831288965707375726370068350517310118654485714258591204976291141656127586112262148411225452162463445166432668690818715284575794812072252036921826822640206097116869863771999032920832739859710606105236189226045652028281202470748240413638044036065633152373446332651507012121935209396486534068548477156296101115648980244606935555247159584257085250095386457450923641182650256803121879785388800513276076223621366817776696724731500890733344448113653432704091056407004729910730158740883396825187582397427032427891058702146874669422001377378565795773851828051948084543073841165373230709164673453360419877457732269912261464541553265255467316522161193551835555256002671188157650679154965867511309995555087615760232496468135991153664497981069087732256440671653282739671487308788311683498359702912726011545681580644855754689149301860347991931431179324042122877514909380049710100384410861925252945452866699621547872208085225119752946498401339946175003894619674783722640364552861681072398899573634855290214354464126691905044803007056535825243579986670033793722693337024667368915050582626769957240312149128677540028936334157737118743777091847502221231829852859770312481610183872130573735515268730536265647239453232567321955443811152467072871184500138093550142608421533698552489376673823713322203869578699437462690725262117676823286892520815015049725280205299714726031344765734044035762165032368623141071311190859555331223845637554750673447874207094623842090590001596717944103553226617316499316992406153401072136440365468170519485934805612049793884382032254194089471529213978805604751493067998718848333897329649821212341732606131149485316496157568640362461304370278930210475670139516509395675940746458855957123987771121994427231262781953055807532243601189751961703549807756497902822743508986287843702081955842953824621057517435701762104322150753798344679740005787534672806276372788659671813883926815711675299659615633602453530310472262747879585685035768741620871421071181642792711206304266470661493563986300042158212409938465640430155729024502979939534286387830442272676391124335845995760787985171831688520186531767808384540742745559637893815367033123897321337070592346310627057429703248791127369876007870767946674607557052573240147733641408416069184549415181507236384982060338236820738047336548188906360890906425465313627838437698208996106246780478783773851031814995683871251679259272752472325201376275551374073607301332552096352794915580340037536061324094323430037547389137550050289525456999519431761239752069276980769962375800477569781713036881015046632311371606347054755934512666429500217454477255309650888307997786270700306722679652107870871966673610084463824539817713908836700367100319688480236393731105262432883641369746833225542633516734631123002873882576170136601975354923264236330618235980311730500430716540395634946234859919196747608036907182271833406262605541678298484310569704726451497442943881972101692415288471703901348041606973625206934522072069880937188398201740741841950476803784698228568717864497546243014672476684533486879903569052194997709385648526634911861132766622680269789157116257658662703702948828677125048075737401329428323545799164854317917912600545731615269344566800038410315212598620078290521470925299635042211414480248783021222609706251901640616186055326562219317496829944390891150775417379261844840446442586624491474438468271960134183132347414380324246100973238364168261412735583026387964112493199421902181402500839541329290695669075467571267327438384790389309396785011660043948786981929030171213257930883001443466026882623888982912586244337624115480461626777693933963722088746080258169248399569304170773441080605596069750322579958686940342844895327556874287609361987684400208950849415778424000780011160655990013651259626941175805254088894047659125536134041632746606780556389983431804510840177317373707244905449823743907645356544035222950113070191425745400654027513780626036875158796040351082527975320980262113396221053682304466353777181160410006189246720591128875497131190680563053161030023764983841534872966463909092609755388531289703341776681124136900744766599259568148945573321952457494512186907092087487657809972271704635314108068286662419329304407418228400748336734705774052136776103690498781024485612882146938231012348352393159862582299715676036155535534319324286348729610952803915621040389239364939665422484716577822633056613342179375424752142441733310814051950088360306306375899978666204571232456894383981229053154074462778409975425019534173326919843364238418719586113987397709902065358044094387139074829714377125568542977553162572320256464113634305771927361914871484355255423184296289594240336403685162797942494086514133179372908787844887609434655020268257179901805916887203736348884668272490540126038565448073123773030530007733181282182353840392786159128603949173644241894765757069764340042691919411848116102371743517131086019139644390710917100026655473737485615192863928113409362159957331484166551588910184698164669803773816410090822293422820994573366124245388542605336753859991530482971835167591569122194794239501448210955578101733712745221417288328627101083538305665084343049427514963494242852003279474866561301134901742015557463207281996198889825336575038673318799363234448434388392043449129656599490905434623627359883593804234575443418635744490628483080044052214495706945468929506165215116460963399658467605703326657888176597472843577679847822686807864506290874550510988956269386050311861620999347312934996024304430682237309576524610306662156288864544572816374265793772370637637017415058409045450925499509582111249526341052284319492551100239498268055717697270736537824833810504152391942094707248326151896186923051193922199528735546655774921072734773245641822846015416683682833135603717561252755043641902021584998383228927061060482688005355304124346948800743433489695737597831973555526144071785637362262401410248590459542756955704024693590480895810278139884761690813124130130224175246106589979020177089116296538527302622982578073057054529417032458678893927037690279144969604591659753195108012581428122002560009274403624301640306510520531359907589447069830512690928740042066950809116172007410094061838532937281418401342052032885349796159706069208676032022074843641400660863117411153073611772266776842935265772330484093686633850193528103008199994077638880686876266879090983150793716437630377305098853170729801307584445624676190234409717692338192899287629122222243600950207867696872976771993146480243161590040811420783429939108716336461790622211156811149928069240759731388754730002556719060590504746246171136989871039080107825632549983411154121004277340674310229037614638691683355643216989834784321120737468738779506359016967410126010385163990786279861078869862105236672486770087380191036828128169024491237179087066908252300401582859395485757400124030897212972684580419688570200728042913848907792825131754506377285809012986205597979868523844740160663169640877178917693334279174122498155070289535827187968262868156110108424130513857419135914936819082115432311908838075403411511637982494131091087242643441836617589283284343338988351449690972547133786214855412280767485298480540700403128905939231689159954707341952497755668653920668953090367334772486585001953013860606781044049197119851571467400338972754358690050684310945585986922811161644230752092342732367713676444779184098470186444773083914385679355369344672237303021112341931021222743684409537320317234675903812754279841345904343292820806658429440927435778309149147707603728255057480242698075381017172485685347365443984402955531282542123189521929351738541730217639533998583101590049597210465708232243121710955152779052983234136071852559118563561831931522810872216206974444277767387244632959857216770667050185257349611832037446008971943553912412786972926539244879675438063026641219985708165082874488440210453684339032672944289744576007779772758935092429635190472681496172300936308301461525357179843078474048716326208800901219137191759147664287230229338703515894535229836956528436174231263416051095339717536531516125393779949844273174309378567567016084139529501671318029382471832271501386524467582936916636460236695198536535467515139020604727453683683702910992343426819354754773569729216259873331587088641009720764265779482694765146091008165985524875485184157454538947205590812278041943633344113849293034827113085701892869020207522492028057978678115997299987366572493108917175733676814816339395290889949674690305192089829980970252057746672914217724503439147684344604587975801250752189233864073906436854073248967340261574380069467400753166255321200222650038727251334028999958429351569373476222113682144375069566868214312240451264830833532840325563569272495041595316157273836872332951665248877206100960764655738830569532359311632061349585312551346261261937264156538194997716096795331887823549773180828006227247757825315770834470786656274161907367113242665839125318498788568046756880225288542673658223120420822490700788390171230977389724470427943602213499105855357911122530766360336150601602325115714929047734041756409979531368099381310311449887302526986853648416638454253898239059305691057081332872952006575860908746973968816090837210520694347909409270503914049811800038843003573059350149908819971187540804463951314957796338403170875613886575992412909549871014204851140090955036598261726771211047239963798099369740396280251724754084611522995217418079169809721287944518281178115976986730698447276062689245249203468995958727214381982608233057116611962543434102783825132041384764769238921243944940385571206403698018922526112971398860360965346239969726978944205907695114043980646191119480826016853720253003895508881939848893672185914332515824946193503375155443002843107901502734639507077616191649418318163538206869024238492651470777153774345673902287159539208182277675426506806414289098649157599604017301600489756047079885887585343891411902513241977997314844153758632747176995215669673049743440426550829377240310442431166673394994466234263313193837761479620383364291233684562426770643605391604309198715127699996178974431275140225339741633037321800656316985660574831913064136327989491906340303440204482587327458929462287845217318722955557701973494192777824459854456376710334155351630530125689006795753389355003728489115244178161625773730355732116924810325305556164583959581582501779370341384432931138781005166872912707552008032639571359947584355656487400925366215539383815253305895659106244512760513712345722268638177803943727177685424018837517341049415181912504292778430009433928934043715651726888553489545319108678076130052431457182452945713984248427960782054159574115543279165576403938626293297727651669346573652866607104457856353798912387408984361702612678448804107420767966365866115075106209276392104479228081255473801827757943761011778007002048589906822819329704861148794835491774775979374216249514235995487336661825578448735641224961016343875392623420338948508626614047306962900455556945886423903151467732072436450585972251143532838898127482365671673036352522302317351988893511161593786249995287685593988796426712935276847440478191915446425298925753672383614037070635013534331358430106684124743094218923469837676811668054949415999364732083990153256475203167338235421931963527324994391650193106067010444553280545652175436610656183142020774452249421254147235152871537058337211822163032319068309889134913987223914410806456699597869973814440978886065226208552064489186653913572089654500416651539345788180208284572803096251504006139010225580268607147157208125041634426417052447635101973690677986931709899115091752097036947602666711710518425959759089709879361688395702299597804566447292931272885527785389146343454768178221146756851191551724610270721410264928754792965549215637992593904836795390786730773592685071730520230385097295378179506224366912472380149515996160155140152457064860281584113171691393675231883769997297768107315335943911955660527751108138442520116031876991613644796457966491905869423368028367401954161856372157361007625106504181783617022882020763674828982094301960817995225930454906822539321861426350067499568225682419188533592748534085002407688939644899090803944856547807334003578969003670327005954907005818309078025105193945558474680014097512311716330647741671698104549953738291884182399580209618814462899407059649787897370307640630672120221625537741513939284240277636126360634219437164045641069408925518673287856611680186213249522241108339033659338748111407678296782141250741512791776739274756626511420388018656232918274734230739538542240512079451102260893390770720985292192109282255821672996387542789819457722156290318905618400538050811436514639128681403747848271961934291503819370357245592426205275393266476771667329089904206205147569770320736854153080645193978577423491126369403149131782187962862938052583302469439744648822777875426695437669280726544988739516164472444277164112550582783186456726534920424233388344417823245788357209786330939384184807176944490055891788855683796579933523559988876516647697030635713538409923967951930452315348882991817483676799951062416065854012103922897643318073524885391140689297010258482230896242786288654090560225849768620979492804852204926922258867654696935898900364963658109759949227399854336817848638848398764453605289166218894451421502670394917094492299264143517569809380592112611332872533369669921282711742771992433767415456473090205041147428782605879223354280184070018794330872215053158728504546091696153687222852144013399808135940361069165349618209686005417996025297394508779936679974396011694334443005376927692284789598723592377820794933816131494728772396911219253493087287483188019285104976966674669627282673069792556848361907860144778992561618756844852184578724102803510850585843009233991056583703749295196004727324200959072376619450402932450819002926760275107596775293310407207144721762850945135197280125102395611907694158343811418875086744892303258823360485142895733567060332055120964667113515818601247509743471061536398890326631218794600503194412423510907595215654541718101606637020688338467669232727906324953480769568507147130666746538284829746060485614758697640648435835052183431499787589637036734100576259396398247112511846354167425730795411058236498333578110612682899454771992638588127666189179654025160409234049601175789257067909077292550100764618739699140322660895721985440499658885903919006081464363032784812390229064846854600006348479624470871025503825507183132573584938682623132970941607438924998969578385052619226208653586214657422070847584476597564563044484916688940251218396019071036389173123761876766095107059538675760552421661641141935447750983042620942194939259621390397710641777474565923941856560286684897266409423054763398447984101390745255792056404809425083646733079762309656735469146411652314315531832949871793883315600587371186692877230983664573597283637752997340859864500923534833124462853514651404576702725742420495520991422659514782322089946545227951413590514309536737057423137366202186997600869381790059027701390977213751243208177659555790183608391268813457910475106138140307252928629328874496210703081962711556883080318296684573340394687640253303916053273500196124799339448890272302274026431817216211792407547314742847040546426807116655288557846586845362560525912576698363745034385791552667193146265897421340954152508785842768080322817291528659890019897174023835303866031399269613929952899057106570560061121289750041514590698852860393926627851771267653163610354359924026970857142672356451427700644801526376581910317015747857859121800046651008845718673847974784778007923742715783547794825418167483821907431812929964779165356163767794299960014251100178791613343387014957147426448697303631148064207985424140693760894012714879548300339131816753821650695387170467866660746728162641074706377471849888726032209948427914134660704164432331983555946781518050665624086555452945786167676970453391942529204001927590291897544808821960661804796188480225077107204423914191485240086969810263378072321090864894768513849199049893813962430975696233965697412388591411833255122733382510071739391487286241506423003468919258789789718358298117108700401832275085600815530308356123435475473413230754237119802441920878562855509303123439301837533818531010825745843433815759651824370684830089450475180969281210968266065899200654554550235739924008347517234722523401008267846371352475726326762359145739655753018301069995350232453460021296653357827857122407661659866106514219275969113334653708361623667142741735295513495028759618770199805004803416266409088118971858602575853110176261390287973616087478261624095265959085928480851297732827087071206290896396568580599075925176059956064090270173467811656985017051432674862675611552635135395800504951002513724967230468164629697064192872695624816409863034927503108816196428267540685185809881341197257296340390830490911207563681854068604719641228274312532481142385198963072680632433997891104340949707601354387260573818164352187900905284645289707237211824464880348071629476702194190966783245622603585074374994133869581880381694460658144596642243799688143389300780425501535923050567467887330570481064478562298976103442348321599133806071798759934016203129104817225389687493314089354181838659615688675259738674344907062217692350854439412715849196790225171017335286314674717061365813453197831070037509694288746438103721449092074966035479568814112408696488123020684275445307683165278941174397264956176208234219827401147731530541631487099771753521759111372708504463030441246995399060333959012490399622990455426703826067609381187533794745472708158622013897796080758210931038060795214351804912223908818278027768642021090261769502631917582715811962722250198302562344889667627387000513082919762975627090340095532067939544788772274504549950901242571230155765929126456534272813978025020960672485156169916770464585954950328333478313293720468006859116412095328994349472913744943798490082778699717961781215144230082293895918659016363811939936568225375956891536641296759483351289805157310113516636159979783820146917428098377377096015594668385136077505362029915214559029768939716832775983439962283454289168399783310035271331996096688873227584499645345815494683879426372751983582219304252283301164581743209237395467552607599546839898514590591756508007422248818938464558335597682675768262728341734330329290930450816802198430826791645331634459264845305801705844640840841899307455046750556134488437026341746594244553744721592499466335562963898142271297306409401408402923672383746507786740712150801412137670530879677425179198242250669324483309390694555477928295523592642731685940553082683940737411363829338153822259760782401823614397079865909221930956959592394728154484883594622404801993886130623727726983865979625809710010935653448290145233659068365833482664628443010996852301318277789487297573925794501638941940920440980560984603720409023511858034486375707953599171167865170894842593835970159057081202800498704480585000768693735699433571127723269153117237440326415750670210516309781289494490786719401477484847307334862205948994481509874752126066860980922652934456222143659161738049227125256135891434636730134690987427058656168379839385083741490124673856038354623280361276552585902128505390826371093892856954793162778273849412557101154239452682684056037942615108932818870892027776859936194752641450116083862027050217673572870678347231870501220830517029348064836945035609200196326337417930094751963717385963984374861726041469598576246036311250964459162707564351986502976455642700422845056541427661698024025124384343520359996573446786109841478402649294433309277356318002552142114119994513831782794930600802992470412782887471722852896635029376784364752160494736288055790453979518750157881635212544995200171265900292209910858636122821251007039851902615366702025504642216391918735152994898417548786044653633199678887388393083669486014330495287840155267016196963396848366703834433171688647542995951181207151235783187707637398284045951853779805524658423018584994752943624926670355406799536284631105767912880290189916371843487523788379514542908098175028168396449042770079890132056483535951623495944036695775204136729589337886532315150109492025243270244971614482112591949387877623871062809452373519497376546310971286775028158710481864535236534483749586221609095277546392313297411088544630342401732925626841262668501239551615230043847088775342445078306308125792233764522051602423291726618274672100967408252648911098549093255829317165188868838131940050104829108311969164750040959491923468472127829544855139555111410112639373860060065450061310008888252152073127063882600372836092796179559340117098400436205321276057689169237389692054999063452606873613755342097294071292580782508508356968703451601355660880953439828398820052022477509265160942470896123907586791595229332289509512134814949462944805303414587829061309766763684153896849918210254102435211340205423813104455365192898653813317012661779831244875280706693870098638001125647142380366999920318249583668391528848125824868173774438727879858197054873821482480383006359788512078543945330686003579268508795215635663876091158107731551340019098879426071764204513360196884719370280173680806414752744121332688392442310537616694047814912657345785421454956407765389612078864739770202427677237234646298462901441992703664269858772867927711150590434652805455715962726169847484201845075126048980454371111895591126693832985269960085712523785631267357632038670120526575240571047505442793488297899807266966516932310165322214169070151572681783647772744504853136670504423882183823720201204386589688692931569048048456743416667453413757645908300322181730269638817314185359907941336980155150586487136083152451837504385489172344374571588548460817289872632644493208562451137079769134601182259777832130793929419103204772990446616766553747362859883546729595886650271255486145466015922664685282559967981365965622564650200675399274752430297517515592441879952181654941030925003450759110497161180950383876491328171110354822875008960484276737598799408432886744094705547534240148613003329281685317906363073150169901779219646555878380682495920365233521963178406594636168940551296960947178935079050339182316085430029634599721807742703103795265792950605193704707452521112622738368929944504135161071087795194648111147963022042816207802597501736149955049626871784258301405373676623194176704159019985511633117990235678567522904333686155237050418811740842867431378514100089703394741006493822649775655559842101459799500308612312537951001629874981126374687075618028198587592328886469098087047948153227445094439411199695877687067012993766055427833558358711873088261979437088061220592029436101228375441947736829795092476237163169987187771641569913587982046533817442386319665257670834785297867803415202099518421212700169984275151627038986565979320429887885500245902041861054006049641937980461078381288838699851021034366495139486840375510022060288754081722275097639480118332295361272111597145108750445914314450597822719322468284798067717648692877134912618053921594504066187946747529552457318071118160427578288309766640293443554668535816409906038417514396160797537248045407845669063104061650490192420144360513617476470047836172581394110365591469180226437003068802941430362284322344377476578957492118378839395374626216276765545253938073004684040030841973656804912233847522813423393170556283513919150959016385299530040997694816809036428877504706690601698991976026146816991260144623661236829414049399940562806724580060404199473128196564119498868286714700369088852162875824645962472486769121534487104909795742963294100065805042429794482059377944649400144320054442307319272572714887590601494416586302523826583417149009482549378081481252162027642321929505898617172623192952259615875066456835333841687845793693781337658875506846270641236928324280376883909456731769376364275617687122064107525389121161286652225575106884227970509649250533119946168587252957392030357690787342202465862326535790082401875020113631255179839679381681290344895190648953418506109327800392531412982000440561033681117576376595235606961747914289355737699392844029196009451804831434599439769934873573558690252973728997446702979904480230710583095765816643422291989456076813541359225447360932464620313724456169521875148948401308073978833927754905745474550097260682282705465086231686268554690169555858028068555568684699608652045062023610116065270504323554311660173708124308371985964107566861958938024910411705797333126750734574030806912124238247634504130392901719964712420417913771073642646882018112673287481565023729559308563539593157321176530926960010811621762198315162686037494315363362907637705438128166609884626508735847717201628478260896785048385214839016503253004555132522289485572412557633742160734012381789421373475698077448054517674710306049595067448116752531515980121782671533334238355756592075208351594017018182451897918403811062689339281031081985116936065943637258550646178648733242433706793352978118352650767830223256557512998422082569906765543890635958201375414245604030131841401458726246077100153094107621448976980649156037369477462069830587235350473828158621731172342358736522294862771473679072444344029446354363287383295830847833768176398143814750105804551708036362253103241312748837500352250684278874364975527124376093507998246366489958738151641839837956808980934815247059820328108948341568437657318768379390674850650945552538409144021904498796705859006934443855575020212367141122517507951646998219590011394503198393548260462970597019232552205727297421279874963131718799869806700888583556910841449692567832102600460230714357087690297659626759931211996075054359987176392140575933153515536958970850157635692774222548569242839595831684916477736526324917498994341360585271091990080762788305332335018296147184163597098258446399218425537584065736180707908491771783073445189230019711535772006183770301493454704550837791027387303182860849112949019767272947806972298899187021941035413151637986136990255248460793675927878693653168816733047812434376428395442267151491497446552806420249565743266392174663381651330168518740427574850550307177015103828447330457518060370347296868802273179422918777128746153902180792678133966477340128401946451401009764498017093120321877798415241003270709957047424408055963887437758751938135191627673687733568458181677333829465648853988596620045642658373543974933977496316610168341667810739709374638554899944938037838761910164839603897621347356111326077911987266331117589127902345893974505792309723659619997281010517998910406561565461679311061872922581062676542894168584974336690347902209415241907558218672393422004867973006351278403028778320992259064215419871320414471987400982564864680612680356563609643435426147512178149153934534211621922523172507475118501647873629689060148625071852794971697937466999676851499161334714838719916226412912724818188601493807542388944707520286942834196744900892499417896992587705411661229201536525647423269391526595204308137328357918921076033622311823972676298628002167084673113712236883055086501326715554750931062636097223512221418473440636962261261132737816732063842072282060017395538123417613437966148369403992346400748163420484325350240249760848222871120491873592231703524064353868225083254847204321441299594670049395292117538868157426163141156198650119361808961109535215167030049332426076471929538748042842395892908942540367136121661963365066006502648225476689472646375071609345128305869906626108878915769378391571676045770704512277498271299643653701124714529235014760523838619712691018242141649095366755576328807226760104262505624593878440658221342175310949363357649464983132406070755496226890944522746532772130120912705670303385328701221355174263805501730455635434705454288543393289785472759716951120200520881878870794917494856192427151898845976278576759757482789091197102341517298165818849079185052132829782628824696128591930158046679142615894594579965828170917310515477415416708274898152326283492956922016070237484180700627115796638259124070029842527603017665111293524770177481604262021656002506430473613492001577836035686073195140376385047815811524194623884273044239175839585423362256816887276191030135500647621989431630288590592037853231041403881762119642593757300168633551356178906504913498289372939819042797929554420090371120142106025631479869641711286802193250226953922525318594606448456981427748247891985553530980591116004656987371764887318453491246777748461810829002751327247248526978344850712722849047485685809473897607881326777850585763053655372472525532601816368187779307972714475780696658834210438698380576857099524322646271447780450274331258023694625468000779514235348341528071370669536262218604472813606286803644460786270049210740505604711536467806299197261878934451662839962785200643610829943890417130771887067174804461144663577243788805367107354293812344753592785598323380839821234996264184689873819970791270623282476548036920825218432647154242154345100278318833127225125896457413828962280823305730353083209922559416975418222450882037195657849045321725794345376111470605066030772342712377593356339270333376764884034469964571126396762732588924064329402749583159525945271426728399883377935710317556567249223825341326578024247446353292622529061207752963214928686291250001446374904170574415578959263402066037985928514788390539398724692972339448478319990867059808975608696901767317235243118581782075475016653660247545762971225822793255725079611922571789450226169881606064845609471816294545505430671873191488857632035738252948292968440350595760362059333105182694464358168610463652600118781037535086227197133533716478214044462285489135946542593513561558089265521915272740320227949122365716743014898449613658879115471494970630544884179318870009015099156726372842011994160260753269116017311315354497899795960136942283154120892719030252450221068356085883041548236878867764137277894494395580375157013407640241546255120736577992954759005534806269481843899143169418271153777552370318060869949663448911347712150779374663805261864706322468388346046681266310527377581926034957310194075682377454358679969690280149729323161706247318357969579167980287635994063789860564524958344006511578681472655167173174234620563517670792547637330032069131946734003960434998372937657449308049443833193111757559733785737169177079638802276968937515089392805436249367909625257645550618770562557810395309526127413927996637373790676189546294937498488712649482602840383698221382718140166896403644534557303732004140256326176695165791827001096724731846375083746749846928701431866352707177833311643106486494010980608557347362324422090238171244973786497961529349377599897235457289134760904453055107794423574969119766262667266675668920447202157696215262974744417016270865186825234317682792587801027104425151916039750184641737456972036927071435147149601384525589879978320581437915260902198132961980690938172569756093016411152689459914567052020199320786467776699692117945163219792618663868810996915750084257589320058779593224611165994568340459895124905123116686761293758986236325221271334825949006918762028215077538944192150182349967823063893292470428506332443188342551452560702406356864411696996233333905154699126745025263398965451129072813132159541167999479563982963926096611979436927938162774569042521076699099572278267259380590911785258340764054270369435491450800714821969478084734154770623639056239034317153640308331436228406420183606901276246232150026304553470287613213963517985476564754262490341908321012839578188813413852433089810112748153146914732404704981924275707429161724313732249998179322229032637783427031826589419418666605457576555435151376501231405430301841333111303357465310139146343407828585361436930731424541161746752234897978266801951253339451606049190216258010130988668704504776936962091825307417139230963917987899395414835981911191286209225536467696972584065192661431936262958636850863707000610049536754194799069280877016186542630062727907957742731316374450051025061344652282009135229901598321837099308385002770599513242546225476793506410809411570104123337463725195805527038697223514436380761320253147865706799638786066248628653179513715772796173784581918529463510456587537114296522380603733996176573355177699129734751500883973845520463704857958562863207093237325814679820139150217084752323276821880325845042198093239766760395413061029459198606209957783873137105011942325576753562511274955360091670719653740471592036984617980274135909364469927385296678135727651059595630401059146001036555669466761018542815517231872542801031735541873499181614252458278544739085562979914252925178292903781718727690470330648530748978116263114273167594104145191275203364376666283936807902012270959140362967136130135002830523800229729289807554076702365836877177246544615335722105511157115594865645828636093338343007073719197709018096153853059347360273206759803280145657307572770257914753302081205761736835521385636438767098976114221907044756962417722779271183695631823732818059221350394840330650949444913383299634470208470142924653781859787136462738252260256861262703928241273285535900210572434639679359251457196621323925852517299620087171507137111879382126251633165223363903201175590244801570382537758495990029491818516629332978659043573648334287523993379406085021207062361129105942156263515389732161432610237991160769525099547910935683862984301604301737100368840310856160820857419405316959808111234997856765886186132888699775005758058366963015699390620870777889631630475274583330144818774179861022366357285864788016462763494624586072953396874469329542300484573496060829273296982530255324844003520778757433290058429072717312821493062138755349678150594922344890483423493380286158995314218063865100366310293000849301199800349300721927326268703411354660147614862617184710432455394536303704348110939228336870134266145752129353449329126477528992774637557947157174998434939267871961722232931444835734603765909718996550211086385142276824482863598972457734793636092871806274815204466149285588200075403538442187616507267788152692900481846591784354664611252606400927941317207612216072124310190028452463154657593143323497952927708456392562154970557884205839156958506747056487417354541231248513187283552758194062393549682481562208282815912213090244326361430127169272673649952357340112801125708994362100997649045193485852058559541545524725276965092570598186545895908872437186584809987262874684373808001222204693062501304171708591204202265355358243475788866174158350596611897539657511610423413629917132882357090299270405351806528140204827238290744980361696602770312013805585768431841022198315186809117140050514310947926656518389160391030336674614066052808109290601990561001965443812459372815084803158101707257987214317447268419627118491575132346281418882944706445619563034351225203712543670982227135305259221503816953436161179238496462424972889178135744890668658629902774026496850664771852628539927872891065880641817661426083545505405545413548495428223765663364067116220902077468402092728014633659511388742980262845756305697661845848305403268184034982716324099120073441023181982954502446754746713167203565389028047711080820852274197693854291860722320754273318969327681153089125980937112024940459391386688856687922366539554309151825185733809839613744402771547699252454543837053896723873330670430869247989550495115849408717623580478434352008315303072303377124012445965599410789042189686986014110644097833706661799431692151582054485592796665570818810631471412455542442483911903915398454999379131126216091995616316127643852486223790944256978559778054945265359436432465261995817944262532048194584002113675530552379829005127215445938660409779069717165071742819442455191208475863498147109573198221247004121202274831377688459769622818773654647393857093692990522401403843388311444112934132019862519068885145835692170122462938354785962869225521294961577777599269123389670418561782759535860983541430280236088975306450273819805471433999264315921346581486846730106709018491324622188643593980277272425333971432940925076211498289174618818883700639302681356185103296107640368702957936929416531557887523116377277285339406848291365014347515796465570523636110154524979118911778173881918176566336259178110583597159415448771625657584670735262689647342275406410282287699765988814936881789485029551015626722702222917327084891361809187002843044576114688763208442990763120797301680736339677101664754787939918887719101868966453083520042002538212823551058361404054515244769267510565819899070362211697809310746130115421940452717910565905745937768411405072587713091937199258371946422244668064116118337583597357005480481120197731024833420589907943652649118344384541369875090607242478968066221109595142523020512184580981057832112631927524677309897899150924141212242753761116114020360687299496654838091778195026677264523708769300732587583780077667179413268801218067544119811650262931259311702588405753419351237805864035280646259623063616210889159299769288371710165675427704825159007299699196818394171833586992594409385686416923838661018766571311417757217734019850584330398237936822684706210488173418202067463352970873960553295360167287202084863184205918923109484797478929368635380100293252443115825648886346104824242557598389796429244380266400733618310264770397711330311795821101585012237823900248023751803697296128852393332340860317461563748171966188875487097204654189204257112034837338082699574188921510568929293227941477171353110285087903933620419918708611957529720842415635419495534915784702039063973498863882780759099146719678250838519054794860380542916487606544508834483904454095450779540207804558713978612814218669053539201532974880119091900578003262327286748805306090979297052034816665940621364607906342973651196046233894869342006476824664059680431441213987794876165242391505662155952689584805024493762799299768127822795918321319946816656017342191495311981045487616392530550297294090154453983721829552507020573733689992635612678212797716723127993656695723122503456560124325054551084519696039351909683689400087854179652586131634973211207442921236704529155548501509008063667774092842017851546540857661223989283908131317683087477855989668231100766950519308696740299600163988351511220789943238906879412888418958902360717404579452439697786307249387973208623846994299788289932824345751791445643147995959527284043959518909208354403142342916687542842865384511459786586827041664530237296151496114767835100264921918585060048182287050136348618351426835714794403017222388386427913010237746866858727632988621558329683755565512219662483360273313011911065449596722605266574639673917423915310090692839366546015364988054825705874771209409959727932153140485644397142072910574808326856914864419331206903632675365387979023225850760743182330575993802877778542608573758913824512486810388552891857654056183893542164313063889104291192809904082686599700818223246865293261733522086061521774837621506473092541680210059624562170130659330764141615830240627747200155326020517379102782450030427980386094465075730174114946502368106602025209452685516673768081691686805624654189244595724354244406158199629180481757799615484661049639048551224756822475248230593336350913413542734500479927869096676184548169531343863738663040482320201039211128467945734057137164718786419554432809108123065245231444843463190230032701107671101054076962548572372892446016682389461574079155108056407906695878253532463097880611172805972979345957140582318237943078585036131594353137153508837751362497545002373109297406447597797992560439818961874801956706338253550095571198100147723214056976510972474349951403598611192284070318965994485264322204251302807140888290567030131386501196886838407193535279030965501786008218854388169243430682580143953885240594301707035108301782402706189189194220220130019493652643437767857496586957030951992143879174917887112437408508612633621542977070611334964187802179378558197306232211025817610656382197547536393297365234188675514132512386041556678663158810820211727790651191292270111331645345081163565839763897206931769637948501537518787581636027999510341269784683555607810876691555666446880944635299034461526412844815171927524844612842964321140775219417643715085980414868535029892555902626875213061032310322312873626539890246018317258771083710130053593369993279276152107365482567542848691059631242352497102098173285376108316711097464865586922882203790873851444306996853848717563238805001226721288097476415008846780279886048861220232902395963547787568318386217862484003179752419699091336187806147149236401445387876461312053226964971898325311266006774043787159975605069783673386584738099773645039662316552347039933173119041455315154328440329721134473313545393452120322894113532875366551368710923339424256044905437035252732908058801656738888256560621354070083550967406185408012327657004945086495802892534235420324874663743385548519950688324702430953656400179701764789082981662211038514003766848673527559904923055266605767127417886026382120108164154803027504588571010007923592941467010189428131543588233193618766909428869752762986222032318993071898368672298751313605202786413170643964742038208795220308379163858357521129890701176501868521139825739125072410453644920269698497649380643087569670382767479255710204888703893016145566481242401002264558067833603693689520019341299489463444254415775480566604890543010417570697484323677130457673311204399106064287091257505992141910970014211170901475146343461887997783544723470197159961873356036455802810490205497225899552894724824091015357444877614569470567408203511990598784649130246717475576416926863717437969616224833268014133280003118317164912374409729370789443151729548586388772668712949776759664610860165684551304710384840763406391368851007708987161818661922725510902287825594935648881563386887537717214718379768311146474299172543013593192517606761035262212975366127188364235190942364461696664624191317437667116861312403467076359666473790399557207053991813938499791139369932776917692546567212488037802076561462143163141757609207936508516556042883194851628092302511563555714239214807862035401328148137797430849258676461559369108714807822791391670578549396874369007174707044465151654786795727602026053566288732187318815896075180337452259121992549223389709467528306703586109725607060281577658555090423363351992387047375044884142691808071663749558001548468901255532775916895840204189420135510382871975930663017187558930837044190857987626671551862229884302257685276020130283490654591120523002660008100564312739612205491257234883859467673285491498080054325740813657580656599598112742545802209310900682530697400764479168589223251551404850876371189695047052512615157833813437394610607480939359112831930407816159358747434231899899447672096511214771308497015482694991402136847636974479866926054837650570351219777421228366706185396819065815172897632731946969111734020038684532608684557127107489985330970218050829084329720475724899487618504130900691197575366168880417898679439226964746237222016641946822633152094314711290357023347530527675416230244101160300507454609648671562101206681949239820810442673233877722140201230870244611825589880188127028207654572959091451356113608266014803644208957130005618924757442005549886977638749362959558334992987414090276687690046913067868241439844020708472373962403032153770051321324460650869966302923391325299019315646559754784556032259945256252670932935663435106788545729127387449451955957637219329643704447753484952514704830419384268582794143816345728277736922434116521172032089803094856028664489519129595551402567501957801271190678745701604520909093363398682816296447865539164675598255883612453523030705830985498507441088851645688890165943893579579628102511056862091358969635038466311947828195654935423500848441924127038188081492071682917992175125104256726943401810878174274459223813913033662717840863314949955441989648711596841862634939749318567769001840240352651545719673148587939934142482603815079529164742693357280585874085649870301856128572573304203063729230453690119132709110853332628147905420099916543867163575171631104205998167782886375508852850962443801917392583581094110343789713735687802122259407034335308594004247846571162225653091345153230922571755746874917209330148117299785204248106764976304662206862508284459195170667381122708423086830135996611485462061298815765934558821153997170202181497075057434517310264906098100297538510380659548592579669187904227205815673370730050497354947308913785871184755786722076339747797084949834343439871780156560211692651911555306006805933456325925417237360363021638458371372454133527810402817659455276159483972112460040281999720413134449003144548264602961429595685391412390645590038301983701124722651213356307509898875749686800588396766135312512144596096860704451657320084436133728731562521677951487133543080948312429845549959107389959231866043381258363374576703083788233376578166823042871674423398388555493550817572901357744910517314353025479776329441227639288522347043264799268739246334389249071139128055380836814676202505767284978209973435577317018385647720385013554629818999793972835708185829496290037222937200607889321915662891589515118792004251440261699133643606070655169172746374434737468295646661905144069359768519742291719761060103535029433039214206817497486653831030045817020601102170689679691999999352308326348826565222249835648307781550018524356560507407421006056513355463455648612466317465604001156775208551100637724508450976835510576525668543309003336225603553191304313726002026372699216976778243706017238220013442863385652969007401327264543469518767688654938875116919128991097081679291053051559030516819591437217068581347695266974398479516814480529631274287215729019350113920295089903286668106270767379575530837951241030483584285157429939270207784667983843662544548866646428118432579157158993174839194925560922356214683466688665663458570183337926309176055029785459599549192887348954447013590561378954933791799049374296759676002394097134077058488673387730334754775329125071701093503540157342638904361948008167204195289289487225599624760090057245413457160041577376103731649084397126665137392423889655645862568417156824448426550216084097241139964312736153557265591970389286040669000421088310197640343208213199820301976427695546916551172992904988109320424231604857216895414091971095297231106774526099668798280928049656568855158559466113204856143712786648469545826414345460126068881888478621258150331981395905344616413941174886906586401713397557841596136986444915413440286740153321475556466585055317206328498413534464056374143818254561554094644974250456614098568991165425075306136636350699458267893567075937404150062403706144821475571125789101319670619655841883803221211797781540704109052724933014708192447634282792142184112013320361506788773850187922648899779243185746431420912794215714532306121913775592862903071963875552578571729705557092335907167071410810830492440576045059578787849895913549224751218044606472544030353352557570165206072635564879430184482432766105220017744266831105438385438159749328766644814356377380603073200739523161159596539952694512943943324167295081437204503232871572046258763020275657465577943545723511358624643924010993229381955683711097441242827159142676546515124317050325252723012953486599767164233681433200388566931216566955685882484481198169136175451513674333336970813046789538691839832916487421561789571892582672918523012159548870185857172538062782684350240429531171028761558582118356760908402283933601317136711971487468172826019071198234271107018073383380084011465378628961032253902287461784472124619631599599051755163994331169837324244929697968060742434717194369951656180409999510626532384948687746990728311110630729368734963735802427149007223778795029327936720391610699040601023815166305245072992661353568668019400011828395825592731280366554456473214506633587658630191709659959379635434001240210275223774783357843750244191037219867092904189040633253982577127525200838481822088974836544905910911164497778112648585191347199142032352097789817074846527397162702049143315253000466554286118931322018385336462747480014282055184686272795191005400529392418844303843278083524401022754307422768620019230566843409493834041696492792349262966305386738055362933137856067699890502707814507280653981824557381609011246420098769916709807644048014770010229799563485489979271812757821572496366984582956046386154307033050686872703214582242427094673373711884591275842440597217964359294110622734460379184046502473891975503180552115323466033555991885706219214990176953059439846153647659691564437940823545133102040827830534327145237290775379671681174352915000199268822825536723834805749652116205136351633032367297161086995739418224023041557150932002149713186491816077818089795448823457845363349430243122296617259458585791190766852242620811610301636280537588957983075502376616932979200874772836195270003985976368086920646857252147934620969593877497769584687221630658707213757585479837987071248084424615862860518288440496921118610294746785438621108883332123614849057593599624172870857326453817498095050585424960284631494146813421455395102735929952821605818609170122605775152688405321906829030826177726486767837704789814817587565367397006054215887974669830862018340219095421981205354938819077016235866879854052563102538877872849350157731340612396497795891044773057412439240147477773315144648195467677538926342761194938771486323294022741576213300803036489114493461235268140557890823051402551840962919926093223565244367491913232066340469886685461470340780056919741436414333185385543256965778052359315291180101408287536613385311622969990210270022817391803700450974090119570566202266417855478227192604246113689683030140123766838928974845865651930902604054497583785806751703199309734778493491488423290046774218617002014016841262692996096678618043149345172837930986369038477837795921846534682090927094118431724745713670923972527032823019349909908501566435928516366550256684487785184048041746598561894092837317988037531704647466189109758809649844702757409846973992014373605629041721421557836149944951369931120578399609721322532183705426513966297226053213802933901815776791354033143094342481114151839381651773893757585622751761491523473197955470790033660850564478066037442001300821189706339021643381451078509115078273496988028150537142252263067232950376126512705569438967168045619466671737733637797701851339592582836808387385238701434014243796095737878865042332704798752381156042185244392124149903573199261147483218064832478067496892197739128633080382232960373284876809784872341704896759927339335144489879067051845924949196828771571482250215329415162341513743103001991107078372461060006459091858884851250103892530246499841912591858563374084932520778489910410965573870952324557823269221842511380291169763802142010225611256292281481649631823278352633834909962799849309168211371832417185306957646613022341562637771870673410701574198992551635695744770411215967462470305552645734969056545264580880855391709725606574774431280241133012210736169882997444551164205011576602572810601579009195832912395978465447756806130586707158095315247368107121462973765097547353561962864974976299933633135155931074962106314791602227926311871245427349327652807786878855385416065289220430596564868930734386761721759746987400782289897784913022182959594202797035849640241654495855689881781047637325371665032736332027903243841907863685892353076003809728190974408308593126657610330506375645507923950448257340250011987857570264930061966021432632199148751846297496844777820653067371307622954090734351663379779169896149718011117362011885661322464431664087813151173607176850198920376053472826382634289328502856738229978179431259838066832268353879181852424292329323318566165712994532986825759961669876241996832061404983323464213052083983200735118998002988401473043194668766491895101546581505807949932172402695602012514810911867215652819028846023820372926108793652141561927784770942090638692725677857002892519225270376106656462458571152373345794235712700663674137688380879169763831198291675982569683675847715905913730809187580666726169223275337710110341746716693540880089032739135295782405526599585625528159633860694035658765249023587579087588648245289756532611376612950853598818347108781769075903048334720102262543867002535815271802571889502825209854693383999036517230382736221264921591753769316191364796237680484813486460687251389166592223335525067770276297428580967510230302681149983099828058367040703512851901805166198887222548871415575434008363145423540141102220549498087837996883355896045096366909743697393098257497811484381400450072038916664478722583824586347577164164717364311294640426933351695887100795437035050256373072324879396507380303737705685289938044786806355094374871493812410137432294537898944168660204219364784708452934527512582339448488783321498109972686038008045008568471438198800863008670498716460260207172142331614541645528545307187715949114934938057592962611608870493965547615003733831041722869384693804414961426422761621047522785438161323339378744626948032887679300392550062134234938629550160472910297045539147271251666168759303537651956701721441754724961188497236053756622494562648730153476954533419789820163751314519972115717425428501579997043579940245031629378939657221161291501140732719403699612402473974981602856962902678612622662687944701051121777585754132142412930380412988511880001692064074900650223347970150074043614282767677325992310267494526349468269361388799672786024188161239715682119642883336481022465323981765283586199101057051781355855048265489051060373469685133703580230058193383721248267497906980420857888416920368189441950873842106871228641042291189586419375214125468438139530784131899505454592962187205991882616342992669621262588946239607254863390476928044692896613606807377128075615871867461704289150284797263195481877688909009137616198122377159104069381194788670769847332323870485133214315899393195957118432322046817954345318223406111560951144050201743476794256901177129867497404506043301116897431890441098496600399076911896872667361598459402719815261296258328515278336049614999607623914586408834351589134621154997572545948351654344746040167196520004127085393248695197698823720288485648238870059652113861265841027892211076715322025109078882853653424922370278947755659172089649658423276067492187972293226751964336269673601594389037197601572116186621643522478062399832320868251723835076933223526395768390007792297977627767202007306286001782196549413082131916716704328761628794266718881787052996255437967375680096809405926571878845952760102367052966743752480593068793182031637887951413531273146796042790296774507247145946723685238624968244189064665125308924115907844072473908359341129709454467901434248248917330953219860137123797694418925425990598281271953432992073678985269610759494214533138841572674532214159594925054427322609133451633671049265522080473621424516739979915789365709273270190936993914014683894552299678621748663776310263730165075538981049757488807921301038318240888608624067592272389499048957660249440272913255801686323218044323809363368434783101127347380688047677651245880520990126541061850933106419863418220462649927807487050421565140536564568771090413446074957856367077626406563325126015715277245494764510760205070675884835927296031150609603989870289766287093970476404060420904991029366488274668443381988570436918908469764165510740689658580078374578250103645923366917535030525292215070110787929220198371151247412002398125437294887760365877202180208668381212478116934114820494050329284356305796714731811330083464376395578117388774981016425061419837806999885553395413200099206535572020373704231164917738466503866392417183192550761659300732116401937075342906937922616011396541756329505485521466402079463371877144991886701680293181554367485834265537215087638209179079193343470311165407878441890622676419965956350346600348015206707262540177600227004999940226047224173890255496693572562320963453316651481806401421586381765139517917719475440553652963155571344007005955827669765254372656859698268199631343819808239760675012294872699533986357444716944782614174533057541262252199261799656285749951883519575199045394784880317661902234730541917886312150542510398543800994639498441793913146506609893617401680705073897332754799481978086684970129987461411272198148960186510504142524613850306599067584811058859156969245070129803319090549400805577524631129158174920668147437079966730962777124338289739901679093824415770797870168179921839823764299587320729073551295169208389843792008461571554345617181702496992987979013587648971556156417246092919944463338533508571783035940038710758474249964689996439825396795667420831934022667757320804348002669223621443232055494503208769933426570061729902786966572566385738848032449746490077152836639210819995219853716427801915416392835475531414501299504278238503244041462788282443984254251125328628653597257782455246484641336345804139636957513640688129948554990781867835376246325722351643115537471505636244321809166854552004002569812103462829760785161234365032662728239858949841664233832920540986064669090900211397327061068415380375068984777075742794181729641319661099175906225779659842331586302312285038822125967741563153208827984856044694170014163290646024023249631214108359201057299340306975400056888329870327690812789585420214571871175837446036436676933083037430628525098734928867540492146979899648720803730241946338888571571904904129943941612096669321472911952442787329136589235448985974478884769097248982404204546259581838393423033948189905747392201502064464355576108914279779170754935896286657926814104058936401950205351088241167132479405699483516789048306334262705261735273769098664679104789967728904675166848414882488710485993652432900519166272941302149459857495152705471300217271367990456557895495955300671246850828686215866894816506020286494820914933422839499360690515780636645912205539213834816157568121941225465585400578732828030364371622663599077385619510885490991125838883506741695666225358840322498305773423669303910218762594854851465448102776932521960172129191830263014787972466722380087263304812210370916142947756851467568848981993397119914604518485608655654745620963841322650732431105451765777976484197628761780830085016061470603788960767970555176523782445097957360009115489396127998761040807828510238655722480931145230029649797701175235499281655012980437258722969244128908241290400814159330623166993725750887174736291599177831849143949724282728438470575034107178661081118081612336256977620004145642826243046768229011396630195072436186816158758521072459719075916082740717306375459503222917793654118328941310284582291860833768048065907683638185201178683317085464887583305641870080874811737354921215235839366676994461541108013769375384474103115194791919510867481347449924380187550344225313134269363480880308765250962463448334278947011762022969300495440904493816181566511509945002212016337848576720138661984220884626375707789170679288161734782404321010251374822962227655320682188924104640283889478909228979121099402194038192294045842574503875986159384119157757016731420226144157835418135282425240354056983934668552907711965556996623342174897084419064083569334621033896418817396154633146615331440350463255525709040454211094759230914836580691315853298229788236275404557467431763987292049294544569989793758467221562235336809270287235174852833198376554006153068214012585981061014939021131938173697979002926893000489648244287373286357875674143567205896509878382663362290658531381658124520731251003485667228938654329730360637320850324169867494496693176290394473250342898973965122812270098058229553871158241455971756764040261111797520527849954222505273564991617282610213965014344125388974909514393280778273557823189019587643691563063464119862800797298604476658110344302566334261915999447083169605943150417369491938994673594058738806901651924807112684718557071513630028024952827425685571287795345458114569533291194498232691354692147450014920453660001430390117308480790035946637230617543812875398967313602001803970603384028936893594379916355071254634108857120197166887761171712562894330513436263726208469436991367835079841565797129321789458890318416200951155802843830634234368443949404669408751442894469657883209661329090544008774440643446657469917472042590875625383853049972549591982968060703076353266642036601929833692564514795894829139561343593013919379163234578946293301862242020510891776900580125998450278091203173444431023883162490678770281268194025547214881767552716033426656792027203493463033539405834070511664461945075559224346899756357033980859774556006869587608316623512157014782277389574672438731560485317909554512573995650646247274147080851670491198577989983453849912612583463344985040656107584393847461795258994474385977004181611277360460437173102637315479399213680478054732190505856267774982305482464542148737997161187378274339620379763785065313029441757944948735487457827175849756681638998013548020049708845767066759297828110582220891675361303045044188092528782493450070774433842346923781966840824132813439346830857940041085509309172555096275924494213929678474078588008321348081932835376480867248159173856688849749110355025729432757073436676999000582787127633914086928743809331136049998299485835818371248083405557748329291769796828028484153007361843786896776506749520530965177928394548567502091771513746218895413196936124109535004124359988941820350400716551844370971145459896417899029758497532164645469846164853372817298638667532108667907700652010359002411682736685640243990646065269933073109690879802252172633814699629585089434431682383441808603803950352516000198204844060112489222068916163476077407315628921875660138864433889005371596476976751086010947939150876868698794642568828169237892872217997081063742489288447871694300776029467539610703710990826977092640659834265810746651983055665252713887397919453499084422710981968700889128114330964088235881369313693300818893587162085595651394851164888051672970989654786751487624469936241058129351649025682907024307301815723744586186760891352688690269289062601035208526468820222467195654637679709830904534664565212702018803221717180546252848365395804593843138015213305902612861847668759870122092240184763915786842274528616352919160824559711217520598052815573973318815964090737921668273669708227860014566418289471566006306529538004024498937541115610850693263815419133506635106768104586194469886787079090520975064338558713512690970334767022107367803356316358605810830127308572545116508618632805787684419734230642249179742087203131738181904813118884871685907283483884377575491360092686277719189754784127002564952192657095072135970990923002366878196131967566057117451476252477027957521199398482267726730449755863637933891885719715081375218700585026383325452351159099491879043539170447923611985938504079920336531722273455370617342186826883549578188341702817582426963863874407846615403506493167846328958850398663609831675600405305444967180757576015473795015115381866404779307808513114536240200797633700529078041065844472014016909254986445716499693183558939207442022668846693562374108350465406581837831618102128965164307559897751158890197514563706967531805383968202390431439735460368623802603410515779437026619415714832861900313855139585001334130655267079044379086293722878212936836259597722037819968529079329755451356597850898139320137488661767380210241825973156899366315832635240073478636773689084375091465776264119138021470997823893689386372907918008892500288060937580179730660122771886047345038948431774711659801858110818081348576696894903643009148056762364396523045150355225553415453475868950867468718950814761118317727235052839673145730498597254091442696578790157204302398110307376008224224585238103618767975189820444171925867359000198083644500074717468103432108889789047139370782101413680198568688932628843032124270549079999817624431802976810885300611492939414014878060248594757456496452863280347150038941951558697100621133246498796413087229136829981437189603776801169854070847982386025257094956490354676513976982438606081068279580192274736779507654404279052691079263929026927800447592023141503206806749605196541295139107515492477474907163429817435880665176757848338401308148062991626971359807078067676528101516707853844959089260828284705053382578731664209663089823111412199305504731216514934718846412481063853236741814039210884910625014255701295370215926338056038897966834006075227451545374882738729171671989807879563164806884060068243194871607641761796751559832562067064907637236183100754922459569697306076363191239191160916667461872313752599459600226407616253988357003150508460704580163828765708470708990629798348880484070737635746311401935223054745508102283282256249348667214565375299375598655512442404868091197246907801215418166917893197593595610998107225089035106921480738745012105083094173246331074229233770551127907419297366405580033608259627404881939210078692119030789317500443809684205681660555283064733486281215050603830020318964105971032576649060758444302029687996993811243290116714840310810173461851709080151373417767231512932439597954813269409331666036044345896831063275837162214516749453969760031046495527896894632847550654430972339025037586766046502111425048165635510472775399997337229096691351790907811368508882454639578807017485744737292195476095471918524290146747792238123663576145536698713347138051507478044163846336012506355612448261985681564016728714334859737370837544219055526534250563063672304933940042948392942121195780555081207747909875650845458644819722438845458885796795493464348294481337894025377432029351744819104068733973214135364667516980551917651098326021086106348768047161674953816735895787746781634110704584400372772723584631823145955293386674687821036143690107858318184081102682693755060242903167081339180926695107821524271355926447436019058143175467307740016150707500824328951502396009736086982015202695089496840559953091627365431847540985053767864278968410606750069265103321036318774707628416126629187536258808420333735670206845305175690117671911321710698196113058051592174848530500576961028157931670655538680672500972798164555361287920289014587933353926284645809899001072257594627016291365898728461695444510065893111306237300967145479798761212696923847798023819841730550352482053124644863130815092866881923343468541389220960727545450320075206090944277269363284594505449498980929833871656527637140206443006559426949972622196714764959881036566560033828839152449030010958808692520123148903375137943723665467152496523981627744771257127965462910788087955166320955065590378214806578552592849800275364874063989166433545986840218949632220588878642595433560148276801825594009856249199360808577084524678159429740568488767232585381129020662140252767737558279978219679887326628469197432869659558892714789228747423195091023249808834673107701645399192958419871320714807979164541268874892400527852874515464917732738948030523328801267218152609984269185480276575829588114321379939594921452379811311872041772127659752300865105804885881140521959514725219096329888903483910947135073998644331326444993258625113598522827565726147772121773607255912560902972218609058346200397103241387627203243867599417597316827314199737719091038665912506186729936474648098009656778951153406359735676978273893077864683495287115922705465503665476846053108299256135828818953508747172045539034743217761370326063017717539550287570244447430636891627082413475680534784778684842096370531402630742808207709835191181448799112228805362878720357766451673146333106360862975053083048909514213457874778394872001564006889677417012987831932436955449518551882062357255615776966217442802718097631109139354716925333378439132339757237989658257524889641862195451004891196057042609718006050998911470498085373152107980279894372083958143779261249188212091497319917697566433689400755916748598351280608202569715565580291965903607339448595662878043966459920794991163486727019216225548277337154739596735248232475973916326238641158304099724612017017156366405648791764881515753802208895395445045756174497396452918120179392815709156597182914598901506120561085077302174990664844999373108845643139641729032208314729769241538035185719741343394145186844889129591241511879117434388124826961196929004536926554177902455032017023014532645758143091717213177283569865026533601504110858447438335497569521511834372166937712378450413984337560094500354098210173161202091186227284087004905958337633311107994384695979946361013083312270059030470917227641020267010055488394751284646344883446466529339395338912589322433008768308124708827593769266228179430185452227637664149658089600750691103663480685887116597354620035663027150967900673316548829260950110930962040616843811676752128895316080715705804795497660493316350634093445763386560007376463240549538160470897976136132312595062636778875120049187672910815203663298443815541653774632794875969598129993356940141152582633933434997932584033324845401024775981260169924034367222991182323857604790482057339660938000756967414342912303751597477729929787240586600848683767354331076482528442461118561975161882483931259864391896429893476895685537753647707280274938224847363208414312745725638171836634185210340155865501136226780970270642454517871805244490522484441571346815919816493649840565456775056523018296798234167197246262492115863605087180829181533002455619731445196862290080911206882769436944607304122928203594391096061408066318483185732135482056609987483302123999025704217774088649259126037116574570566520917456418326656050795471170467323222492645985389390258086998320832762695306267265998869593571401119051962462003760766979322182745332164193530761611288752381071568101876971797842967906858008877959227990211311964521954780244872100282925308323360132928299796161274349351877886847455259500831022854462071215883917717443417338651797682998722339933508788901586865359444722669818507462282871011466531006912599732264324537937293144469891136510038250153620434790163132131269397795492138670354265542918427856191046090499095935687004819842795566225176714379608867678433197195640028783724910576564062065368517954009602646062225847861033123535347490964703390170158353164285204509720642827763259693747696018625246322076277132677895548589073097313455299772361720171172046432611116077751229392978969793163441845911202343058762865971872340999499525643541864100998858775060697299034231252037292432397435867902506128879480716045368898912305045902893263289762958959625809650521568508813511113278527572706228634603560128542432543517053645699484358844719843216846541318830447613851197779748074459479553215171738139883843905656687775888316069133580609508964688370287782113743840468118917623923510918376828203033557440802937479310657700062296860267326762360494317048548777770031699011438784693993815414608430923737975666773158944024806054330817242601047388238165609644685284793726829211805929760301302534580555505936931726719258257438288604328153765648110881698473502711510204090518505695557276262095737679696314812556422880542980505710567615827534178368608611933409022046867301470635913681244344270651918728579141194783537355494035036835252363762801012352688224135424692627534419316800192714438712589920388484603882493405914176103846379133913741050058079548334852164779598643381972066500638483502492520205982873186305864787894282377799841870751091814919283984095443441949141962487108287116881110127884965847116831480488482907962562642004554176797967580499843104124319060878304768629500476288598725642209770637330109759650555646035801454959619211051558107576463762311108617806668590976334514317393687065101715054867446422183417546578699516091926795883540193481034416881447894095190438722937480541056833632131599849715817718995688349962828249873903923992206868425450828904742792534950026198184200607925647106623430739026629546654588654630124041679279210690127186786558810634924548103924713168767187381207515610210713279581377292997714643200550449240519867854167541865474512804096775220450914470194730415536729960411972718977381220127644226106257794898743507165321824992284536294054682563169343894297835751857953123193074006657739478124094814056534373387018735064192936634052366200094955910029628555635637850291245853240659783815077684040852900194899185740141935431447103378034258870728054399499795485895570779195676893459205090043447173580794432332899672894948846308046886863983334608617844780759648831500937509524023132882849809762816107950297918711545776241427725518146328186718740029110926728210655807934414946063187207667504256639525449746937762557088471501986133074556913385401681505467897348449100742278732976663104765023560477392355432923400467979193443277999573597126598702602303140124509997395096048620117729496612430522282519576719368436551058606941523725847728772977739515293017772504124097171926239708517722101728430318080235850605654829098142297187517053433777872995753140226273851277535210057760561260254934637857519961046131173158571056527878027288539286342401429690222474118442579827228658500705148055516830704771660256625146537514024822507458476828296712221125258929643488654258702290194918485750883061144237478017449602881835006998108421033101090390870810041550993435988476697930498853007172702692959355654740048381876478400362081959132600891674347567054251833259573870536603827566476462748898187209932052520370373401536029657576835643639308226868793409172089078796015942730404005179571346737580092028364303337322558333165345649234845675453377009814984521509029066592807982273324524773799504803552712718020238209306819856239616212542859053514780046962517126921485839572332052963870198739657953105823266034117241890498941104294468844968849941629574792154518880910136688762019181526988295915542420199405915513686276196006944466119709662323111609775396829344695910980485052945185057791996856869071121495575005046715367961486013815006618960568127803686510886994209590321886253885450069548981322190141048558924422491214254557302075175134576027345111463146446592820951176493217040481830315624890330055297371466459632152137494114467406172667307215847436098977498297129818705674927647485178878193768021439354110313597972254440141211577028966646466764522282688676643001893796579050269865842811400479635509835930025586996828953020596211495045860879440827145449169038986696373262313367012981076486416856646524316990508681520004133958998373078821446483503352451406234748865050625625458247432675503549916416198680331947698244420447230950769241894776907761768096816177859011481267205744294958988308919161860570584621594602028238316850775988838806064211460496610175850415727262161067903480456905821311189962199342058938811106697278191016861646773551332541474630052726241019241821975159115180996635824524179915306148752232654928374400791410095160810825553159021982204462693740191321708369953773077583881254403579357896933307632877981210880979115071321115454562552811887438102369056433637024897052143593426723561353628817619935565156981745786404219253170495698456830126999295130898201463641251485152532010569750983244561380389889670424330834526440251231794543958675710650576953349846307848897326127182376004613633880777404309234928610297649715018662965652832233728148846355480796140933125504473213415801177971131120213368484803721258279284092460441703180856127834137760636007228239172513110152053909579849650693447289918969796474821781130057585517859154550663506690049546794014977437515890169419573571994374933565871247601067574672577940617372685900001478807545473319575238298552121563637199120792586036120050693643512469724196259991687476401078596169368171637944265165084121509515593939545053783708169491538396966193129910236765305102898993656380964263631776558330830521128349098708505798921504830235095877143295695614721016624085809034989386985671058717458596328809693717111644678838115338139928569023638479882631620289826597608984138879650062934427428237555252395288155553501879119639687309546474676827218547120962397258194604890952991871856435050558940977399976714488529434528221077284212218547696820596885109270894134307268704735816639624100201859288629388859552234984850413324788594717031431540472570741596881775009487151287949882580224074229334296780324970608644582728892408547668271482366631744603198672047139240696879412532833076623216789395423186435417067483541064829263352928913350351105730192419654939393936528319514254736219354897315347275137755180143340308189820752565467549206566383982693410214703278976628361532938138580643930914290549303463340347220768640790754217135618603601073076549608561737470204803907199002463637782397112369524344517648477413673907978366362261521918220274669112231663434741599826232809703949463934064105577667548493985348261663901643736083660223124089768246472688189994788137973937067869866571655492825179121654134625763323368090606403062253340545634649705129723709660362476793892674467465112034944783064596034641228999516330196380165796805236478700030282479431503057443097722814442791448258279809641871875595226966188231690076103456721804630390481629185241834935255256570350874345532619903910117643407756189307748576422967181846340239843742094150408998593111235399092837009618289467429015996740660175042707291235060106474922488187768594900603403019789658771009894409309846156736338214577756408929642260684128920130347829571076146348523258242178075321382371910414636708249679654851577145855855146981622992376992928338049820933928294713745578667856735980153463011773797383334210265194337377171564853810248467025866222053425759982336173255880758140477450473071401208579151681839330239808319281092471310627233813833557493486174536313169750925913385432389785750451236447987608959876625601484224910380623910580016467990827377302155437162740072512950063826339366735052778306903718349560758824239502243455649943058260060779520383045821721963588349013091258300462270915780273737956913946865869680057547393284769911909781358030240678594195529248640374002117184536475591890818190557433555993949050278104302526045229463457789918507648949280147855715254384643039723036430729194168374267386389305286225506715686264916127939602180791639873343502005396565624191183203036723847283974588553345470277498000897099632829700739888999771873161689241103210280567166178480440131712970131175153490671591671692880670417761552780357175778029363756394004770686952792807719456462764531592463231107262935668875808348611115034867593004913966026407882289325477842318635603212515727470452767541157429220319295073207567396357866785643765993637747524388810351213015305008376557186955402890204147874843743899803688654562714788892607639248079557072521352259204306582393418588127960384125205802595059641085201491845805571918653052557548708363256469125026645342424508260584527337276198823901988537103333957547964187817167326847887678910375234466728587398855852755329235203213011887309273809931283542580951471871691846295450071303693837529913434455682241934745508728769915392897279941600193070742946709614927200436901853826159595356536286286261535782457346977420476282245591344289656406945618542001842535477804046207196961039453604540216831201661737753945096767268555316019580336895640551253143200261975175730912277254363777040052606684378596924442403649995240468380570757668686554644433719707144461649777041705556719192313095871284782174368434173869723466742362215731913639579214090094192033172733028566261978489397188346725705635130344116327197327895873747337958363105210449814081650159268939797036950054157229711230015619515272938198904638336913870986347841966310459700107707451616010723676734543739382124098022678546006161081597414863100655271444180646007538594544197405521680947508038086727718280408424583732167568457432923810306858198574527916177898252171551104652889033451204815499669997105914547276103666405416144129006311672042940732941081180885484514261152214297438663489983186587886817600521791645155585951429628111014304796448919458614686883227052581951858495740558744226561234825622433765781007419111564885616667664444166357481221412474465034725218422951169509858372822419887126564381322877879327269783823393410761821435447415686648910055215087595164738825757905142902204018165151988070577011685339609365065865266143634004712004949479545811874970952386923061135080819595412391216003940119887608648338624050908067796315130095274780510589972119137841906333941658909974601109124940583015317880296012974237104277342068826804670960730628720223386763820980481514235303727146549731512803935191552953917128733861290583060287218374079847165579143848792245063183979515761425496954834473316927907785155013366178214091935410135046136186888435477746626867093195635464681593033785852241611655726263182406522019816793660867214433412705524959698269417003375378509032820415599090854467507322541722488999789402272909279217399576930901351275499745344239268465321666550763430790517347309285154198840548801312375343596280952077211856941099049921940262124449170048382559255315998268540703208737424295087157818963447211155992319494912648641450866801087162222496900756250396335110807613525623524544186037357953179636903913780134453581666733663839160606403807440633850864752383838656831302071746623340733990949294431592091249716124271895332911527269583807954253633914915572877795953683035218651043722990858607058097473109646686879369655548989174425549859522832501968400946372996502172827141606240610325497925013524056443721778405426703713253894062273442661445464804205818343228795031170346361392713729770360119457778126874814304196637232074842459572503167906534489558880183438950318145571345228977202151691242865002940046305543029705980234458895992534704606219358593519496783512242597116300266617950480355947913672146582011441695805711823573037525073777755637184380189991866430163802583976622911837517890254334063352063339447947496196097275080506987575694042396635045261134289557301507190575566667948195594795918011798969915427167900163907081722339373434674920161797907455045859772495500660734900361253855674795085424629378251425186513660180599608242285493996596943819948304808994057088633861066305387121900488839889767350695395671217533093503347734114055106431805252737015192613325630629201632234457531625507956881814553572997542155479390481424594379648297218993399183380504426919059981639391258388931038741189479795650054239627293380527084436706637122207777197901603824234081484806484056745284258207319159919613110397922122021780546334620825992430739433225071341394738356840464927468615943612399869641864369193586972976420090016135445253937462994501226346620413567924006620952170289040022534021384110012998892885577296764562054749400484408722184711789741891382447859519361184135167377621603277337029750963316466726152858289880537668232272191397538209225667701372722858566664432349907231571271234585463927182991797462701682932598695048286170600690033964133280015264496528478863020231424826680555850541528797843268626555091716555008894430688395868049722812105442157560606911997472768429384399228492255093944894808861761186384271376304445450531821886794555337708793077489398954237146817144322056169918982119368649670850646152479003839914878009078378833939813381162090831792667227715019508866165984890342488994896814021083468926222071299275788022105332822741787285301068862040262496493341283851975212584617903578213261053760878344041414558427941989589032821576252643571796264014884336214549050286140150820548934446446977410732719204936573337107421910703812985326198481075206428802793163413408970059001483490279786203766065415408046899359906519958076641411098389756248400337745980212934551639531700071057985253833371163353140370560450582177364584710065360395176900341708311060206090109055050970174129850980046380153970043812654527487848428686445845179262190492203816186225083258821647008420072327897836602342887384151230660203506597366132316123966462696507498143506928877568290020192611105561415509997979394038393487746253672841461388836669186766283971295980005017890764964281395133095636576008729629499652019126927457305596604223462986986792798788416873537852927663906254209748880878893626033392787526340858704446375982077378455369295851833123725204572880360427795648001591341566613718526070354171714496251365867694660467350807755513979171685024670185164125384820295355115028944127084390463562665603593162953159345970274034282379594813371991045854762027875086124316343091020160271670054417185247960309132459418767749982503437379398670749127647657974352638412093811860844730105285301550546506415743765550489761429156084148978474844011732564840181758526016505501932316702495484130182960281519302707999470360211949841576927950101359130302249415302363804219392315543305347134386252165786097811189924252083265647867087637124327262549026615095589436775516980766498617998166484487534298174009112498883546386088840623963083315112973093287360340523579698096005331319945128537449787445724883141360037551011339046225827518002241107884348369734342314514309761140660696651454149714316235745239166972351064221923179885673150129171207628805709719003786949659455271540305229499750450451100303115265220786613867615968116697853879546115999178850775125817989191708421204984996201820376769915409017317698623949255970438402006425914310718371998375887087803850774654695550850122169096947769552126069264080918915899138612433430855264357836761338161236263876393826515146680124705911898299132476223809121137538242396060233360285374199196224269372602965133058948620466554897851474658735412254609769740890858058418195495168678200407524399945097477778788757136616856013076893507777676531564152823251518268603213578962727903979964283032545505458794951295717509011840675273805551345611552628189541749389002872265811282200456387891881239941985115996610153038396505990586762600548015071499197462465673883732086331384539476787982223533164125718867132999057493849315489666057619750733341907704661402812012980139226248705436340651556225914729462305926089667527852620703605996918086469880640071762220195180158260542226274965730269639854058532553108163780786284434255540883854740007890099348335695112173150666972469227469800737873465889172090737512286892113212332923902248775966689728379948575299911192946668880903898984750333298852975726161934684719602332504004945225256095663526604579721157671942215740631984707757782218859412325265885826953910123860366334304361934975792136238354840062095634420188500111753312491385513611917916954211286920054073749924941586227481026805249419074850973189494453226675581237294651843300613182062333829423730503902523663281876952989260339124348511570225721232532965704540774370597704060540973827776138750134003576532932382359909323628389328915812039096968823623082850359989939083209045400897157534464732049661171933208211078204181905278706615143870865002268722060419718017280405290650208158307175645513753383314408074401004495424636958677121890367840099363554568591676869739555874411482254183357696737226054724472898927435627484245198318751318426949479836655060528393723693645138472420340759190883098753434372426392407078783210422517508329278026257991055409916729695405617442702482597252721332942898030399771353844857365679844753086518371068539552215244874675178116613365103650879492223191040230777716864933826814601667569630854736228061328611307317236281407703770144356685824095479176110217774274460452240962291505229899260724363647194317484114410204454441322807459273544944478271057844780810238121124432810276907130914197531070124483244312998556539160606610510953172763337906360798784510114623685806733362413972309064840018023066380752084261649715891665314239057457530277584861768201696338289825173851207053644860713329773949757773188165058093718954442935910788752583300478219102402276242698904328970664374402480960400963677061864397592539670988966075278831131844324706778687737675410787439200645877521803069343478854566262855612141684996476683002784255598916421409756768878266700347990136342406214993455655797618387298735935444169586498398367151865253364277717952357658993130053328039182266881293673578677164866085657063908609128067657486026026423555404928653691633494271555743242720262922252606565901600696872869668181653484622771959161990601675473201935749745015510070008520592775844656551584493885376561393423632332786546945357390636384000212928361914204507866399264046974985251560598828118734376948306212826100740140147246056077607987660687601294509242917462411047736967073905172984903381199617721019249997338126121676114623312119089592271060779631758024244371888420667694518066657423916610527260970953129229236025178838616721949417307827828326508071938485608994721041384455907539027704153211517884429880735252583570220690002383809023829685009757245484450695273002668657109978736224626241986791986374124504241039546831886786844522418188573864493910345517634213219103541931792157472424018084911792251457070785799417899106166234099230419997421221698057945438961226350220844201062583429908157699317908346529803637818572916376553830117535228578612993849190881143413072219486949574112263591896801495376390818700333214390712845771071961070171367943491837543878265023174759475876233621463890232042571724288769677772839355037343207115864995884373637621250987755180910566718488728839481251413632179685501102858453396075665799058526357385280782057390822931830792497947368596879233840117010241193377526999642066007850590862734854742391939342057506985456627590715862573419470523692978505569816262229755327679416586824164076179342202909836301924629320313442407034824839147316010966381604695144953852617866464127372355833624722669453696980744319086259677917456316267390684039366804246480011211501538122243978868514937307448093342543985987664314790426021009252272091718283691080802969966110637071843047069831269284508973844952410778420583713797972503589069868938504691318699505136193875200151312127021351467469480700476754629083629464102263067468261765220453646085549099551606592291562552814839267623423961377690729737955816510398052019699555702254003152101664856038296665239202212773425845543323343383007914244953559814191141715427589279130247469603275259106842247945209670286636782786308702268930203866507190968953965240114212735895148862313561734376150273374834181901772255600177984227753781037836432662030624272590743283666011773940366908786011380748541368886220267262332491224631639819259813653339294371830970328089129342109540051856454933607040375223832967166412166375148131268749574920055419911739842407664632553825366474320927095365385874763569422839583605790151673694128795047431098601170279240974640589970025914947574140186953396577023272492341361037039687238046538817997303695528329992701875321075676394187134492821790396465981472444184953769888802476591321388926186766032780799094477895315545144706149807254467133964822723643639374791451916253880505519443566004038675063602873805054863060960787035881806140430758593226499607148772643436794212067394938298525894527112843357150391546914457521649645267062668480198655755781879587857586026984829623072411990908695460676121618392668190108277396761292999841354112441755950738745087383235305225264263328405979683389061971642152182225037750393035240330185892523651983432611887123027503274719997436859951378456115570283277313521454173299556085663021719063231708629453955283754416165500175382646273965565478932511140421708850543804464796458826298246413095665101487912385435204276887280352315112827669245497939168538579949354125435852794143886183428720140369302409943565627279176599589371312483039769474792481307896319128120034818743576016061035434403430530035423908798407552008233216928547019034727203788461015484929457565372727064095890614955838600687172974436932333566696241714391687288309792914072610292935190912005412353560276806425490547358113660057856423273602001100181386444711858474497124478480702999793457403369085119252226937264764155480500604738522013964333184912689728758482512274199560214451876299258437295933359531183513694555286494750660710431526057608639484144417941813740289095078660283130616844973580660885425850395585175978357749116250692932038697575147298270980477539975100737357476278116069235538622920723253039845127548982799264503392272127980329245155485979259704097453419378087426240933846511104730421199416864218258225182008072519720073574736406355931958429265210339649365363955447441472394375550541418441342815839635741229698841078861320417448709386096661019198734234868638402423699310595740271733625813506511427397435757845098956417002527144957426232508338437513200957478020684144133855893381577029483727400475588731929805910473462678868426109995279366391658903121140596990642421663155372563839611771739844206729248846985127846502007969931541531892728519402804511381721568213641667414487630985818814996853938227911497673281670057330412681743145550461349253578405498765846044864182925170102223440050250323047598774072443419741444309782731916776654149691173754931134343219869652265475715958691487996658830070582140150703462266014357812803175303433408508336635721091913617644964499607739069808961512628921069683174568357695950222499322888644871098231313420450686927684627141255898337195486913705844766029600960685156556688758729634202531849101664703902548186880086784744754406832859599049984676617609264586489509637061072798933436089687426582163392833602264810411008990345080692359355829589721280091067739633625615270145429643281602493542992988401122644519411303625851313022232590459982604801681900832763125333286392521564577310142154721712649440195115886855019817297201492496785504261000701768221737796738650690024330946884502308863847366792194409942475841826695967645827586440881975679534184716039517600628923555606017568806313700842481467897255859277025670748382950754755533340544965236005177222752136467818548487669334493481350168170018101297753981473237828787721894112317550506549929594638897267042802173522368352522150605153174676633117372401570057287648827099955892236507938054227277957847935808921558380250753308346288285588190278997082760386719552464103936562547647656109845714808351251022235102787162804698931855565091001382567356747007630042787149557083079060417568661021885815824512293068644698745278176221502065096012634845322316896602734951968253441565774000587185593950762060709907929669033499908639130596257924508261283220576968424540964346214281161039114003227681471077722815152129374284351260224698265819599980996467798813325947583653325164677562400239995471920005927876056732324365072806444476097508405068706391125338538134884783937581026649919302349855085372439144761970635111285823781880850845965448002420819926210319536335814390947088149693256419327614192181948376534865082126915855411600335979999836813307870443300197349213522788219419473333015154604030522404454846748611075619245960649007143784643872801734841372210471760785333009600892850359989682210878940915175827086765526154475219080059289134451201296488315958449670315861027929145583586828958744573122746237080707348559577377442253452487430330082130126866558839012085748509644323529611655480803225959110100792845697884992952520537653232452845886204155714102390528484723325579190876900600359529048607475997889897127881118264408536682683639279115901321069338486239791223588235082377224546096765568561523354907713117624268905962466231060263907036161629251314199726044105502875681390122094077418826041204800669504997997254310540336674125463118645425153423865821142718474917638922429970902534299421717581686918516915050281609347719004564209222944074438883152397305026062069498676317006102263679007416873511349117000356560248991665723828286154389368654620404318450228029294294607139020762621273134561793560115823551603340790039653898533691262469896667331877228697987316924161596366774985341684240597754915771939625474527741822320578600310746020611111955217108021484312856688943500503587977536045384996769211830679488097146602242157282055643466733561032755661979345132331941857559589072352227992207715436037140390869557899685751327295422578886720867872373897601032113852616673770712562728258328733174136993151905970040364167502276200999037670014872384139155088630096845882249608087049686767726834215467837589395037022170454401267037281778069134295806415875876675787676392289172600931006471915501609648095984405969689752205031275148008007016919105249940529470109225845742992553260319342957003044813506566043565472006379548876583311002314432339383778728066405042702187823801655138815701263883309323571838990666362393006173557008586453452537981082017770301096346812231095727942674331817024619479877186350391814578025076130111796322485715744263827550031984363216666675573122461036870332272292403601171120969335684016647617180488316068972401093151351571177354217203896980325627112693480234664636522809046490071706981686034516488561405422199275355033264586956849178771580764658911515047378048238741670642952099657858380732750670880222518591923300608598430099573582530191482585456398545847936091126002524376868488689260392422854511980991309978417970291471965578248635872743187486623994493988827952992514344294087697821383300388090368072157989506277359643049052386427564287603797287183770440574003149854326477094921033314957244750886825865406273650404229649207148224247394878966459045112103994780204849254000733788828230962997045207561130665661793633978101155747493920070668257537933350432424267252068377082186292220647023239320515324208089990519605464930211552760305197883617750054691038041428192746692292044657774821406180021677886277167520804787092816936015071978107544896789544087270502913002945027694913145221924021885508046137664013807972240226814095118508003543248684961981905482158809927150630264290473421768367142685850335620214857985360508068118362094616038172171741662082957653208511509316705169464222479082962994042673491259856570723540405602866781458344533980901241808783387645726402574327187699096546441194368789276757443171334763196266592168160401992325013820926372334022037975850105040619089386364682177202481738481789435177275245300924673330681180106578283534307198354991479510219957678441651193736941420198868323508486079309664903882194797693042378107153317532373593737021771572056398217893230386099983396223982357074550478560815068966659831486032964720305370419312221082086723243252602290395494508724691548999612781236953316844781021492924082325506146312151983853909354598028083598173928255221074345116041124509339102684898281288526518308377340593236758173710534573492347340374908223735634692200151651255646762067722186859983524125738570100219116002716046418500073889563225892132748640823281200978381015001019195302699324749646601321352101337305196589508017609283047489085477867053843565418147666582351930307684139637135029160825017114423541703155154948596143720912474178968348465013253023395698316466779272492896553128469416009448186137920339668860782075858698593008008015344613529920262869523183510023327668746517300637800360654482255562191501532383182174910426581395336232431904040285249940094528641880707035112327182084597430460180519122568638040575452947650103506792009312707498631639535722997601119371189447888791197973885827761036302586041078728032123747899854587851759045674865878209310603284145588769043567784951647005959235714119855778770159017981848495652005559634145799361254483877115070583158026223558316550880183245072276490888324138234734245879968066171582706927123170471844620984507943911175730860117716979353685300800259345522237418521986945105493798236455587942729041172513897083157216590929131686998463448808120369143620732784073437471097758348117227918065096137394329577861097719648258601495306823856970187320624784772229909247905309379828756886051156478858899439087574211427009306468931115048909064784289346618515841599012595235168752239356545224947237790399230299592489359489473783485780044622595117660649608015608002110641206380748769798368048630447135711481049472422651160545590001865397131753806607905406927855101354663750861265563300974644730897729266736019435132134117475322202087231249457614828795266043493714722418858931955792131123888660348420636510922740291000265535940007139045487203475182043430971935582980674576993154358474929693770576542455837683543145967324409189613545500106139038917032637167377868903308575245580123500498656500795019407654612525268229925017796978038386510817046765737683660083134168053731026347319930154854878820880957475751183026765562533299774663063667273739792978829779018318560184287118734173798005116322773888166755952037960954374889166607916621124381530831411719552995510731038043798789872299697174527935038089314443702578727570094750753551597539073008870381220159247305277106572833526990571367863859051702659595859327409828973405221391124318722327512768543269401159012760226448596098034923330317880627506880008219436106690209655810702009442327378352710268360518969073738082476012387854547202416579124547025637003942840604691957496373328990504753891607732442460733375409656866264981891762667200867375944821442595740482782283258493729323747375605559659186646838570371148015666256417909511731019508008301756528868562204098555732310648443357767779460252260175191491700283081781874952167568773868282311553611388616274764688426460784322703694170072359672749641006172143323011053931505167491466690942042619598154812959063363003424365284535136998952401215259838148332351848860342951722136738434776236472895668623585296780834676111081470183158840483347405838011045516749398308420711801880929408124703578347331465909893300412606201013336459683499867929673720797389926606024409480093040518499145004818598570972989529063773878347729204387420946376139883293137033041050168580747358557120886866576133103751508397335747368045180218362717101045319920160506406791543618526018665316807154713920438584415516220880308014146499347704391694059743619768866443084540341596621949280388412822045813936403490658977310784598287293458106187345609251769032243988379399132218994859336272736758169390688064862118621738667695543500973576461077663387854071886889359524313421195529097920008041672625569611146969062291064543328744284079863068473516954510795272431253895826792744708722352586460299910544267413608604440606157752506124500181158175886005182758971521893593758615041182675879790052572350835430719278608638645589190687740026159152514004254692110099277040703954727779135527208033560399525907910102176712737728820269741450266151392782970709285972184287142843417192731966452038682546885969066820945346133047189425669472209699154061931604188904012890687025392664505774625692995450649096696097389677178417776835659389523496398167208977536940253282537630486483095183334227239215542427951913321663589254878972241508767993952113462259450984388358425294324174279091796548136475034175771748875957026255128841981215014823483948810950652941339993508279175187226895900701008777700668409499425521456089669252209729401333532523224173452605234155708214956869799874245837962782914226986979855741036372547011159094796677312169295870804037252621198480080907094102788635274153570177719742863121873211594774713676844232713382681815210196535886933147427392162803532496457948320954732389444290771108373728205151603131141177834877001495767207630111266516825199898406699339338265985482504438775806262208597486005079638872000296084020881998144488388917398788257284781780090730752475355375489877062547644893244760033310322776833903746797776381447932150765587633478384386344699009951268181590941217446197347848122903000859226502360361584877344219946027120445294408976084890199679679703507300034609843245069810491034617184319554228793041584531310072679880251791891014628419206829007772080261694512237565366440617817691796105289312044728190221992637775846667190808133505883187706087457764536759346441775301142311591556527472595560665053334465582628040479193204488493663276523130861811932109723622548455295987764370106024608105098504472695283567960156801259031622265362867275926947965690298932120003421374397486961866645287980947705330024620230873720086896211544181628759587855645667783415193747975105185188611567626940313591875065322676919227801036820961253340349239046919697095175281495174940708489897245625280671733370648495233131358868888680179703496377760780544740417257897456578049324892378035774637698566853593060534106116480436506036906223494635683013957577775743794304317013091688502805005001404989731562451449746988838985691528386685840859876646130563862670540883483127847855755884113316575245597340885683185321850574646847768706142270550396814284357885991948968554093313881478023172224063848442489875504506940376908439151356130941927400773748747824497633801134683098853351875570230741145509293239772048203585724455219096831473530110043336082589692107694841664554909266271790170084632218510101535314321516522085928345406363573551517482634027712037985946329251482097616406966174242951538026162586968326003237901841050055475000863531723911435081035125782214391990618325802874762500458691628875796541215941837537761115648272967684131935815781393185462051923276372428407523500648030457542385953042848446804740422597997874790401908185326012937170967702602634482257519111931449434223924498561486637447948488642860465748734127051655777553579578275670606294532455723894012229595355048751556027173403206692272178678886468261225932691370800990911434111109107202203197515850962279836952895319043835295602464594351137029414568614380006866689573081289691916016052554643972824923297420962327210640078136517627120825487257014418761242589019710065709846992241572486045859424597351913377549144786531493048549079444617256869309097555902467925077851460578232240639638389887764954831149969118881655010210667402216993313705639289913647952458050786041681569092277714885288887020771280696942593619489326261539732470199522954201550925532694621720785164577301622241738272565759874670308188338551961087188216783680898748954012017658315570896860207447438726060891570990409676029457337003824283483616654094307630199665583439596062404356488850605353720408443847986373289108910781761267336274726014239897168894094698524430299436518077607454371597608433580091530875483491475521280579947671589356619666618772603027240975340882442847783766082011085938978025819619348836938900156473302082907617492602704201507579367618394365159741626868506939768514905797309987983536743151482585272691011378620170213821168769586969267587167614615557292229257678589940566482212457849617186696301832326361464230474342614806626401377974247145451531252946246861716196402941535818473967812792218265273471196465797886820204415637904481216938042368693040073905793317013567529777710569182412586153977719783825138471176892306097768698544367661439834455039149307360103100898048108315032075902095924555067488314868931107987327470121772898258489027438095167516604011012701670759251496865069575365032585237521994838108490960583345949311884600786811028082556213898826269231918549829697910151533418406035695747069544980390560674042883691222697341862474908622679144763355650007947202486406467640678985451101087100436946287884743614089234106724570150526635200474611920971187968439825766565555978779546606294515306835680691962262680480454886041123414000997734494498951383570049768109228848406303468616957344253676000022539987101153667767470082580400609718415222376343903873866144390744354931193949609746227458905334859161989962789293480196884549998251772698718303003340752525844381080701780440948723678321705156758744325390306097154898453823418536396018584103201383504364028995659740955469479768431398562157586770372243049370207190318587665043037025659208574332900587832570238877144207691944193952214842654583243486270898248658190646274991094999389642538397602924068281177119651952595589118551420784332332496579469033115936342083870276330647468546717454881040147734635984881711889369537004851065423969039540962979841100339824289603995215884068842449692735116824844959452819675456458725753010454380426797044826272840003623241816628390388170063773568078299863980248901570357133466926737229882183307446406217515893549975990037197009867393268891700585244651373268758085339929629908437986380536537514411355887197928670948297043763192860401750796298583561039664689996067370798836818114055516025363144946454360794846123133562532764903802437450675453461081683740838488314344698820485094971534003988759374470265293157629323556458104350951105234766455208842727343473249056942563180097967105102661202225570423564182081851439231885875185664622053905933944376627082432526056226957465632543156296245344988111142585020886616290165558928020900589017384897431634136843772014172477365252852090622911448274278647967525208780861756795396019584453191590829422636276103791947509839241728920504142423934838974239752370209504655141662688942668731718160882180056735163533869561382393787182911791916285806948068211306677141564435826197533029059095815820304768334230192557584823226139425851981076568220018293633283216666925495932584887269751814456469180477322709562828867080418910642453776564008230259974366560589892803581498782547103890619443578586382923858614423061717986541224020122011400470766164004359767657071659975363042069568861626938467881081442545606879344999292050104922984934141625968399260954619610853624187527737262037043806245656822239974839237017563328404483961126340363841999637278072431767083329108187435636913399102179822110514940612964276337864159219849704642947161360248510716674963552788636322328999988464987130751595261302672499552893832093632130678293505346225136352851988528005966014130844387605637732399984671667996147956197079915860851392951135785861526031238986863681480546757402676015706672568438306015649452074479790999530288705507099964818579210318648243394319213688017327506272316773266823400454019825438690443986055443207101816760593565266082822943189443910653242969955847008607154647178348006233929710056419024897632004244097628694280678090930770721799879840235579956006937806302458037995172720868209877853151496895936180361680749598814064952922924135435430579480113912986411763233405161470364724953689696695151429981098707802049920351850456672828034566427952803402691377024380227905655857882233771198944604327203756292755740943957970055226958406893472100042673720224701578745985288243415078464738831219681760120781901171403171385040637633451629962409900035761792303131108889991950891777603389553765533466336337769557191780856280926276949936945482718657926480713039501418461153921700404546185335684709529341334813650628825088881582243761509574672928096778621213086740655126244171440871169741359541169706494709550545130123124512790934405899703133139906137349522064097171046495364589402477066596777909837813003639444623806401259571672151408153730085244591312205865029890742586907092620216431407243087737792073282801760705616239803398726058072529952586813431740794918447435995528672778159304799928181714513189076791130713954777050979628066707768109618558249307092668934395581326649524562264062324674929832807066155064724578950424486429454631283188911368239076173208808617754247243596483792598447982980572006517394727844407607763044025249141801417657155931765002414734842001193520933049249716964983298693228161519864986377272737980632028695110810739664693263783883491437017467307847661244017609706737680554726640007413439176593070483153756903016352944934016302128155968413766983071505138873717667834436541643118745398052989613109718277642193288110895336731034698236097841448475383068386453182973339920254650128377899182137249023190023316520204645488426166810156654759821425802341772048459939616668345096140274767983971120926689289686122429685227997649786454683226855494164690932435349768623625443106076474617779872958891736743943012898378949693402693847128552578285706381552709828816816443642504484325814230529326018062016231636709334213529289040958599054846192790643283850329566560133433194386162078468944067831777848206184682534727538402001691641766234213659956220807286411842538097231826999910714641429903957696646267069082021199646427609110321060349820279385029757059609962493480261697974620943868986243822220761713012595299701905685519169277580051198365256755979664706352694769865177423746180974262626980877823457695839418810324481004366510967569057972560613049347295230459728854152464671157376441101742634079175498083173755208271092843462855527673723539849141665660194551185330459077650571300565114899758809612433806716879904349111331944502035736484264479805577460652413744446638268351546531013939847772478906175076871993320588657676671174960843934912845818420841118128030114709709981632710173651312535693571383917105730869558206417321958198663921379427750609140270683189998402588717226485760591830072502812780901537823491916839494825569290034871704135503011246851540490062603503870198757362471334429440774000478067526484764563914197977608962891301439229460828269102614707615760305411006907306689124918895192924132281127004256688395771683004821676206251101563943491408942268050757506570417365355951232463388740610435004135218988897381222397009997872805728495352842164948660439772765540351716523971325089347040768927745694135393827276898067089455724766840073641529864169188877704322619060746510197329263831595968627939976501310230870978369190291142190345237416116397244232754390473690818134100663520764552134795594500489765634373339698190909339453490892673243049676903885462938554538078014952488892051841661952402751171597305274905387056997370180697392757865775307114751021262677611928583890965989698852596582060650699481947532557567305458273048503171675701762467609736808490674046594289427398966574769290316376510608660591290502169968550005317720413882839863095530994322075774179561468715691667182428792611173818905086957376775587684474479011778615274170084244469495715581505061360784380212466051982765106179664529692453807357220284530663688893558860718512871013091093139271587710668405797135078060804669150382142409622565248699632151355367338516558874814759303565514462816542313399845905919810009735619584531428362548385181150350856559808429851943869242522566069967553696975170727767511665225298579692892626134601033122706970654787897235987283429673871524104986529471430396530489075875019014682148932781200411651842215749141999699728799377401361380183482026465770634752342439228705247338808349295047665398929145173098683917156802053850444893113496469852819037799287070126592955198222519739943982597153618490760216506548347748437159602946703731074159094119821404343669474843655789413688793116440825371992057969291126482126613282289530830297200484260966771116166633193332546485439844819798937966342574949503900192394889917071332999157279486448745695926240390535300590758122281836969235402471784515171150558111400520037086389030325002341678639596675815771850465142255568085604922442841616183199555840310982733359382722580190747729725850093634696959424417356696941033038105054469680814611597710930901836466723469618750222227612631904851597486712662007599472327077442425690682224940490863192894595407105981686041954846597721381168776820868552537915084513766060529186444943844812035319858325230240825784496100116067196467842278183673002613252991095651370294767097086708977815475138639750736323807848665093589526748155857539100176912578585030412587587100840222476541515447927208096396482825969144184674554837130893258495334587852301175414448451959763032339216933722867411005486618236520016116942492070707579461111692425350684818433415553700262527632253378746368681777393977984691130419301375902848941185337303345427590156887242971949346578480069538584341231111206242812613823335922927126153015144231376988182899410665542175603203486736764886865560829029233778953485573148048824043358466990300203424750078332327384015382629449069363743987978469798651014581135219586825475579744077692603147637744305490376205674499152710154985566465190528769156381063037932115389953729837140229608694224690717036850655856686147116657327724223067251601712677085536461805316171456506041273520214999705859950354043872701465661275322533434413767418324999511874445228856995672874929265363739489226221545392400517043307549725788453950043915203627396081597241432880593733665821201082216846273627346546373230527599223048727674054449058904940912510804033110785399814689311529489465558920729862941981596956617740227459784793325730905597030286215809710359893555829221071942360569961563298347105248336718185514915955568950439920139916100259869085174027639319484968091802456297633318751658917380233840248332627092691454667183307160101219931762954129218815404580978571913323829708946474225246583249976244381887733133931352030364129923873996181210094204362273582653260276704717208073045029823720796029411747704652657423083892500438012531328436457297751646991385426267942497433647195290351402287053406843220726829344399009901504541536049490096515555401213983980249912932400101616246991543397262742950130647689575973895207465820990687137988777372482619769365408199551953477295189079799286792584058723569888935486231787622130512052120412550550060094783408486745506668235133550977249328937069449094125590576529237329823017778444082814236354897967013038477095286322541959915513624396954116281665198410785972106296215271362760673408468053259729474904253800296801366953739704390342757391732279155524210400551208122261888771773648276811330023626801493061878587311556918259923922720387460045334071600515166016339053885396352224932678058454418504231244646172950093469152562058883851172776156624076532284164766600992534412096189189712794301642003983426944040344531298738397693447275721930168733315086628357280752271495939316482054173059941421453481747154506801812573294995088379039539626863779663025890107933492458335594529928695519329518513853911065412485051290101157137492638160778775117174449133273753072093580667753444821773762517881556680636969472739723806186980579224246833156573270476813969865918196260591092762803570299457432969046632064495107399512881642309041680336612236070573975160853522031677716137315541979346440442006508127404977478257994927400811193541952070614475690846717819965179071772543166509667458347899820543877649042874054703593409402215393248834285264373685891563967131409887378366943502862227077439598353180897617869531498447801132394149609457941388617611549170644364659318593130872544036886500441654341609369615990981075965950700012096876593157510201704920751297002414665056809502526339856491301506081551729801006424029502546558718564488419832617792548727790352799259693107845789886969380162922524309115236559044042385972281880571098945262072428404822017017683014346957658319783005487740982861805771567697546750264634637148990049364917155734013420742006719466934835992996609249429894930415292158333965703651787764111562593338028162225779620019970490370528888207768557214405353626340684220226431966303897489769746277150128691388033470549983024647027777923849407138797948872908767335775650813120915844412074268340139530654911305996950042636103034031110462844709200248433768775907717520157067333666872819408980989588199236723830547760999220461622544583340801784534534746772765184697511127624517282945998776512578266041950583031317620067667803386825756450274527546884638073819189817275089140469346602066995521830027773887536065555835328786044868084451540970020278707223508129750695980218773284085479313037949361374992227423070796602354590474821678461397171021365134036607977661633675092796927010499532049310552860427447061754287579324281000056983844904865748751041466182527273294136646408485625203492308475396141205332401240447875711034704627105142036719986860676563823933970949024478929023943195547203578617901115038915774632027582729876823000635784215476424765368539099354740451860728984829152588142882283697637422489838845946468552423787687215984665079760042644797840312586321890005818236152013675545384193355399705099456396894544600875945933687341903783213913722123976882802977332222723150758088307500029437291319459396041855966840362469807887530648104457825742831770552926214694868839810550726484945861787441407761859502529614144237328743585840522564284013576608887864054233040831734569441556697733638818404662581413700452225840991064873098796887108569484156202444083783150224494083335833752422746711048048190556512037984247126514704139195940564427559129002700456950593755990883766047627170145379806237540060141899758046031028706826535110115123257583995790523079609658279980318109509565340503297007649420026847579470290697565981392184668136441984723105471920000360006198129860659555784635345254526204742746702525972098847125644443911906587261079406964894682771434869392287520720440123387384584337465563436613112007630767628948419557342676053436922155046649895822296116414423973225454066695621175842827654413192609034731276670980771056612650077223906096546778700977293319147257701282681292607988076629752418008340089453622353613227152313119594674055096247322999859745145545025623492159163177801017643813035461851344420460390400943743792652451222171017939400745008096085940911812916323503288604969631928018156307265817383873591810499760276814363251850965404247927861634989675940858882651792455960863620973369899023208641335563004708012763861032506413258869008523129336462042048355656518579879600082725623457697507322637946449326511793142763266974974607118967177290376627366385779913925910895633970202656142244860904152548229972820153410461063520057046842852967274912443660423511282475823097448181021124783960637565556599730233683958207778270236599918063058532095787502148047295196191175891397951475026721281749750128883709040059614334210692329943507526533887841585174422608850451455306414933415744775665035982722866995592466262623005933673497388509918750683745180468431796290502540278644922466690554150571544589846501028545815312313110593372849650761692780106831928579169193719917026004495765601157211655803440239892460146999522013716831693008588797548412203857135729467828667085787181285027142069655081749755901380128797979348937303789090900928861021417581079237653990846470751501581317103900506321049322122200631375278270990099587749686220425163949890474890135941091915104682010958133301122917158066306163295927859914101363078809591705030619671503777972624056378215298829176893599818589057765153648214020051453980973559914299869171217300986277526918219551166014259367630110592280518855246411497611333486955100841639653723800028218213864749763667312218987688002470692887654517474146405518300265518156973735337585229250072133696485416757704577553289845941088496106336573896752553143415889610606964972213771557244801820729751195554821259222542862774839312870629813906907845317514448005064790826246947697191725276616559515395647461657989298238836489826070822455954708356328548445158964041770812969635386548514715404555876952066369885675617779129506117348862884449038516404051157180337931381460330477752352133489661290583047239927169623780662256489403228388820571625188870650156386139108215151346812830074460195220640536085831390581340141193880114769785447104888208985378358014558122956720872541340355734657761682869225299833362695574789019276628301750146171225603204574129491409928677727822593979702120804920596651319479732780762562234160790546231037199541585539430574462747236005208647103919815692348326571956297227041670645872372222613669332292996622141869380371225056984483208684809167547053245635842245501212169457011217789369518646027560882428040233190210827933497370034523889105453642231223593394750587047364815513984249281789948224926803624855422854194921101119253361779650971875270835160406004813110882382114723729006936956277420883852077626033949972658270116029744227011152451300297576497636141052350394146959626889448531946898413425913880856158445110089467324632444339320397638229353403697901611819484952905141421821901867818401420685281182286885974574779139489169783341371587253795965106669500775793627948824733772870772716388390641752917294769887458184266606110505985330949875502660865473705452544613916121872145520571013659878660540095976194446086931156494199945372724831120904749694398000514894148453935428755068149147415619437636384056880091182905354895123601063161897419573444114442021672073326356880030138002772465351119193982293139988970403457527089155004438242067218151388546622286071727737611296852520918575862692651297436931043513122342765836797330229147171586124309585224368262164847902302174181079712635191928346814499793480180822999862941261383978530665113554667595004695462673045081478678731404935999387782531960726719690557632861962445001514311675187274150267658852875596254542078382798954164465852256060226825060050607768023836657153537900188482867040818047600986412282892336528537511717478905855478028470879187238536083317919581766096526593821122598800439397590127648146863848872482900052586809690092817222143624488092728160814403619371362152569779910040503386141168645219635397313176115060007587756021083853297934309983356013192060957961162963392136656640395162082136007593066312289056316080918764726457466308200527965732587524320774932695161636309976272353725464125963311752626548402936639099054397240311607544975191367736433668383509527226806424744944903100299948732178357494500863653857074873471477009659995045362947481874718693983245038758243092795047967024423758911108001811566907192335893421084930165544593458698975932976637164369179011503343682383834171407908926941555894971830316121034746776796309783655932959883030185772244308558333274404028817101111746715037053254895294443040976888192089311968380882721033812092117354105629910989942697936143082490634139984871054170831489767020304383823885529071596100963787494516136740326244343157912671703007316929917196347576057136266277016627018011135639532012334259204823980714437827114551754656653028841804721347599799053494357197618421633763165397736582756798337188328482351623471876377432278287940806561908134020846679480898056117077562447862892057091667586156451060947594242223652624434612350920085783208542654301633254563665968024235511935182201411047597375167251297577954546355093722528079879703595760952817188818869317363681033807070412863389097599863666093041269293316498442121123212823582623460829796124592750311727524914732228659222932929544263969451900342356252778182003846698309877698749043672864540130525368414282273429558773648007372973619024254188545857902239751588110336483254729889850831113127112920583239820877772144808994188790913241655022848331579655618576760550580910752167281963102191019405382134593502101534984061036516631829075457160113002295569824925217650986243365391804377914053982681804765519850930093460725689514107889828836379821848429079790538948433178279050217780739758270161945832611742741054924572492098905611872621728273590782054895000876181821496730121721736286644365748664305135211368289283633649526172249969421999714021984130092676546156014937078016272806296641799788469897329680322107974200115196818875505387333439618778469991310530740714527205375935184495759552767402591248760574501858891609976057542257475757657292537810267475947892331284862979187571725189420871926320285036842163707600915111587026516496657530872471564973248678201341506069513087115790966117396987023212663605396342344909766760297626174247823624231321922069047105727671492435458039035297767628350303758045777286791397890301679414886801528533899758689164786427297346456768651020916772554403884930196015104584923881961252296205910124985479734618552894807619480352927258351901972668253197760120465544320394499195018276737936534837204240211382494521832243902470041610171249198580099074584626668902833608673214150837541341186338726511381442291066564691273256031220046831799239303166512552427418308056868074795049781604984603226025632645334369928351806093609030480297424949821607277893527544344205481854126841790881775497768020845250167985788095746978667922632436876593424776938947001224209027655566861409162531348436204027238605019374781486101275392498180743816475937661262238389523655311619826389076592228619961884823899571776982943724802655720166068273958537387750010507345261713903423457928685822410112434815546014668173891129722643850368814818754235396015880212369568526222662818323074492435514830623512193229373689054576276270578408356522491755184782261403668142926227646287930198547917395268227534132486451047036277539491058460021236782357399110529392058816100652414750614410370497645683671961861365985179037371916465499256213097942240006813150873643571409661234362140466811827249517117010411322191361220211004590508105295163565636021051769700126921556109632752688667745865398555503004104280559003304499708311218966594840419816902151244562890059705087442108668774737353229507806396482399181789901245209002430722294435125976196643738541667577377848563671393555205739435287033856268874550146140832706684362192595076457876595819251175589214560818167203954903107394858162536897677509460028465617985438360179929250592761992730332243316876016205926187529241410297916228318792298768727035695112411240437500994197216256010069945160229890400468766364836168958497801498623422836713968594344502114497200768877870930938759626164053102932366050938981397109433792999300210609404291660929973499328984149347029430166945014034705866237868491757294460276243587758988171387357999054666493256079662136030414972478926192707436682598883911141923570504181595183092649213405220322505844416905630911970359628899522119345637978985837346638675844115731251929930672910739721448268343499943521539750130332446976648013361371181192005247794888733509608514640706043059958342022140047726298386254669759572181170225070487521600571509483984679817505681400674496307547535629026395672267069061122610185351017320267972792935342796119973329420209643360630988917329106514711612380917703916077430551770795539514138352064496621587010059820172691845393943624099719894655411136394693285496453214156813803338355453775807486114217671607720909677532920028963097485947715340235365123064825048752856483733565608640320525971862396043649236771508676157502903818235402165043659074922934585354591276320733939719568483446109216026751216448634918940073067353926134167319867303602999912800414181333002272226717935212689759686009228712951388442620000453488673008096669728093150079847875824094770877323718148516318360720504870539137689537183275569841914065936889132293232422221089418931417034572763586211882377480545421107390046268517566659622016175302154020710968910327538342522649819647475532281815489361824324836259488954888664917089252106559413979939450202636694101303359616678533176069594562663917444983477627389386159849355244495739781183098401705686001163457818849961449338873021828066830085079589568892905879335732759624062751092954924351017614453668141781408007946013511902586679800373787517741245474814034440070325762790925522573419625401874838068092949883951341214966734852381397918323671921021801629586152640178790670898989252153319078023219158183571942944962283284311894969373119137639911464806020641934144428668838341320191149922299301128255821593349120583152818649220103076656302027866056422705398438821556043984875796482364310068754325466425126306009301210828641641798960671419776259073486215236333303366140556107223808619657673824103007240307492725032876620545103640806051732713927110812051008007082687527510551196480152254091975474074659112833343768050080441646429199090138707279684108629438203596874889893672382195320290503745664422314121917874618858868323568041748968060336861540934814559977848174487784106513392045477850578435042889812099788201190424791606040215240326729154027170102110562760824542115876135000094897275153009226727700543473423110480935311577414921828696456435890234215433716095398874095194479040959016157973172829152633224166191395276566166357193912555513339755522023376017388825414520545530760700119560174344479338180501249641319202618381358981910879480285108955128918829945755538542165473604407157066028311038329938400018620633868920417615218099586024526325903927772735650846127941807447467541082700000752346808905201155719470228715766738136258074005977724039544363348440236536060479694783216335296409351637400940880473760451056811019492387985749741659461735577039573403984089475658045258971324023871225440051251230874611836929567896468297205035827118539640756862061291884721983531736083779043171266346542190191062603649167512310698431614474765774883049079603273240658403345635724113143511319815235017841283626804019789212670727731578745058409043389251954091143076482226188741689246683743781502360196095447436744436359437076784345106579789443534215664611176290469100562892260935163622986136514142325724346542626792187471379595131739948057592665839174631920248713735895301071963181773930312871342536209606528107450938509108398515981060433522171910261113456704905778735338531916475306629450854051085410063966221467825757329352635910579636833361469169882776409616474270871341079527302450020490570541513132403729502674297145991768008721675279568090062548707083981295235549756323419758221782383647715840990085483198595900703392310397964378173205102639423201462049414598012912044162349117099177989923250526888216241655800934461383941474365705770979871811157730133057308382745851344181285112092969838345711170032802330605649339893590634788295082097469720501761672232603908143158101606676096176033366941443825340026201886060070399305809637969386443933988160213871013807830911492944839424802428497817599627280609296357344049078879834976023897924750491302808677970012531449019224359449138089236979741476338910355089965561373545770231979599622996609800392584404872853426653092298075862542227175595897033402657977972412831852143642319786556330652931453007154409894372748006911121332426991683184655938800054192512494850421185879219245138033877321006230494898864032445236944814587559857435114129913680492710965253626832005259833340143211636915634523753584332324144352611790842210880502096211651974035121013998627364721556186845236748178587178829939507303501739545668763871986951607622578922378070551088658662242982182312392381494217306173416596605153525224242320760264543611948248232057658807036881352386507928791235903359680246238751776511701863908614312054421793843449758216022331060016531375249359529149412520739474892485455729901531988588598055056214688090908862736094765908610868954906552421850830531296802075459988119917418873774338571232326697307393808152030239343688346617660639676157733808255674774610842765079077308643869000518428601193751604339178703463316318253104863220114177872148900874144604116903675916930205966114118455105862858481405068038594028366614628755789042756296864234200261686688065213508784842497074982953421466039250679601380237491625623703204448090875623198843186698806851996669477420091624808179679429408396887450012356047002530005786054897293785858692966471576547256527405235077386740365584179831432544469689160664858305567320013832634675059224539268763769564205729503527256553598552848767448529073723783909790594060473015469969816483404066171875524752675377920997148271799960299727763730560367800422099901722316853036373446237732324540892284444683920707602596294165490559149927251036245555509867464646552306290792213251290152021704396755225537313533330139039589566736087510856308812707284283329865269923845988251845549539294286017340691295941634456406374129099878769808731911971410993991648322613141209326521327930541971194503051333202070706568835565419009436051807755408425326845839501596911342736808486777486127140769404282165034949467232986891585977972845671004799154956050415875884696394192259488032996746494435118072223799219112334941299042675807542678569424366746679407521143137599327563342385264602937179500675463566666542596256112325980075459231749410269889536975064789742845490203324077264252470126723751491116968046990795311118902635466558863194716697825821752413813603514523821362246602002871017565923539002216625149254534545192201067638352143646506142559762631379585052034064690849268972813804111582377011038104429540353922224717830276060566595360746019434432288759745931238964042611953094808904310497289518879911768214641133277785225523714597077817048724219812080312094866734587855833270647118971298048150608755323249162105884073519513821618022505357226112049414449134788736121203532348941759340958165644849227682454324951170328395518497720503211323641679122779606468953879105674514070123655679387212789043455026200074115859737512447359264328590300709559654961974711610083388426907503335983149360657207794783557433186327634044831075511986173443102569349801946064029391674578275886278303072647015772905839651184445199336757620382183941007590420542908741072771283507671144405301800018599577592043743668721589365125292534914815460624851612504469348736455269138232087245664469283868795330974940552203653713130332577043292432669969683658342143074843867013340448505955663541095852001599407419437526377226236335748392228330972718303546338823232073696182207113148224607787627136307404314989072698713133016934623027515501196372593621346312644840421490678180678244240223355863048168816494027043268805731925942888956787879193617852062736422301635757438557618120149497753065356927396999761499585952904720515663481693139243455441205910739528008485983321410112387361363139851203867653064134444307690164782926431164504154161931018810269529034436134869742388160414037235323166596720380470087038256697320479041560721446898540242670515608025279265198842219320173940082415877957882953040287622603198659515623693385211693095320466463101011547074634334990049073579820709289191740428199374175452056119418856337443773530745084592831644016317596655808488387160410269966901549986995134185521905618055790402629676880053509448645852287842973299173921816635153637678951961617061109423387387353621983572704251577767556664796756243805265398684684106069108923548748416505541763652373864726883094598101524324988487324047086863386283995335491442144361424110797661347658546177585857679817872370534327679899512889391855408527718383346070972852212148208113912984795596485619751851615162764881673794359957072480031010053821127539523409644066355732921998499243574224226921490951500368399830759462141371979034485704311048567359074569753325685763393525370922070841729911185973274707938291933292280479127844494000923897041751601029403135569950972529093542905874485392585862312859312749712492895383410295443512601410244635581414805349962007472159828887684245848635235374613412968961232322020482882022493442258989366183946486576434829951136979880496123867636359493513144526379250492058087226596944635390588079016264192674769475128371241851770525801623886440428842580077305877057355735977196125615171525884604465249394493870500426059450997678272940127026052592231256190722526938356512274870341945060575557115884552827770903440233877501653983347135194847901320720218151378715663634349339038266022442896669076284238691750872330305753608286739613898733315520022450809263394683324957618085639309102425674536640173230981312155406691672337800511755289783613893282233129158463942366988594395742401013625234056619303041889725756204611853814542937398253617792986051526023603143030894776073775068201924480517783000825477225766163662527586982898251196700448221757485598815998959892164161566616435099162843837126463346250554643645124786190379034606042828211155077089680835139683415951029399885843532196903498133075661709157613128962937015767686606475141798843389327490710876313806760446696331499322722597646468731181249905045001470104666577653720937001293804428079740965054456023492903041088026614776912713948220286542764763773370732233738903527400544278696585051302357738367381096551469324985070160184794391689381308530269608965363054612031197377734783753101454267378677875630750262917509124604052529083687243332573918041644008926681669111088904330694267455670351988672205542708559749794009900074782426136472504496209255093332036231340060879528855937640769472069564803434447824214377308596984674090725481345239357842933742391397913959719746615651950711783137681526318544199197891288919813959397378435388160878672418710698423471388146792461327165128053232359477714037610472567814543715759522358503420544882487362401956940445660722963563467849660324648587972021615752679054826085688818527123876403577515343604600994021617511996434166828034462563960437422771680449773934472128920140890475418885839928678302646432844654798732236829090479795014121856542731590648185615956270192848651153535512805537174853468957692366688096878782282360770881203478388019549674772308970056397005919602854166443864490829534249374575781256185428381723844223610709043878535999022577685332403673011078621441118688805921954878351594954146162681624786075249583853853012178809452628554206737816664054878952065170707301699514554464325025250178695378671625455021870968642060511718610818598894266521892141276275189869218336712119445765839028273455736880343952760603790541215730572865505466123468590655390119545592618172492591603096319865712856477828333378464555130233499188093389863321352737569295036152297774686095849250951676505044383574851694253971388879924330393019480872953523161356328077145461005046308033833374045320621855944102996257016632891517203644634203379761069450592847600025301029857622288627228432878457182708477054882149848826913087047824725734290310607402927604159524196893268893614909469637271854678959431375598410265353583046754099026724502745864518935921708563773974208179844040981259215425211332094083115659087613230422805199998949942591579607522006607651921701455717568300104029534956320698643824970640276131926642329567635671228169086884654262334029385850739826400945195236976734121813809158294087970533963236155974898136028687801153266364773649365647347763348842037845986929717617060981155495050078224491668932682710380583810060535302062065568296054892715166470967322021210305549794734750799720818743780438170533534691732187439292163989425757344053534978318353390456660333647462563133463573550624648639494289001604031905844266013801233329732515530206952711905086942067328693584698526763719141459913668371348253396629666503267355978820186318649922874456599707807790460210175608125950604917609834905660090798748593695841550012763825698290164991271177975735986407251233265796305362029704466478234925081978361543668663348131374870069399826055124224232565681583244001634616774561595028885264822976484573156081351788169722157805757928911579587652006123530828152072848335335104327413813605245488208389604713978119825628937056364873856210766994689081798712061773554392246558738315339558489668387341698156948584923573126517657006499154891783484492576754320899011216319219772481716093817644236929385842815869379217270987657709605362476700413187083418858498234871524748261400433177366210153231011979016977092899048360403435573033051584303334827336725522094747831866917968724007246514586352761174022651427432759009282920156161762266441875182062891119402977568578132728376221259026126652773433115084243717183102318753279411272707797113822630293002450052677586773628645625392132230307128134884258405992868553239875501691745221286521546218562165546796933961093488208273557507754964773067817260802081808971754908806977021755089212133019916129981099571760705353061299719105228344169280980492741152325638972622660949785571927562419245808968227359493325675419630460526445120605026663714559283392234736332844966099502108378783359410553497233095869357661803879962723859311966527855028944454115519487456923858293338835235245474114352167007646484207746521348456178110628570795664254880826402979988106283442291622899986660577281223602256447284311667922235514497407740307113911688415153618513792298807326761494666748784397693434826271262576566432344220852128817524834890724064330262701672017157109180399845549969725646343753585272622479195982169020314326426372283024101831752291457999410253090293259002735804842519009580193449074661979771232060056216255259792602124894860459453401664537573104512400623092210594430100776947664323500984989245373385869341579184206101757519320272723052424538824204109350726199325611569494472681467254973015015761101542976795125378966048284413830847992687997747495019408370532227243117241751746245294258293596119182351989780999060944181010231508237126767249652349893620415770730844771663812730280120687680983470561357543284197345771065290899294757033272891153834540888483685296330196797503334377286610077992082788695994663768910676145927845346813882389943823540320058440597842341402832242974592743771996155446082802105504216218591122828449511407585811454648062961131288643253978514489031551495177925575726245638122860650653872956408473216391082153675408686722340612517915155711763804739600288139520856358696347377239989923473647800743546142562451676335386675739282713526423094987535098353670294483397384859053597465176247259073504912318982209385211886198785996606041492357818623738337435587363050126407576584303358454540178836265756783433852666206042129436457776878879972485398636742809233179389581838431324747060062150023001299493212112612730484953526729936135277522479928551750973712030401612812025090824993959372161074333630633111711383581509610282328592480882654001714009038255578031447069794161339400639553464957673619781629429967178380921599284999300631082234432869964470902427001440555112913198986766138866527162784392538677117759513307940571891203328996026223697236948050609792924559117093241390302180504657232433671680345901795685500597306936824495324320755196881727944898353897257966943594365921547460570444867316862511844700178097424162085755061548025368526518503296663534746231300372462479166871167956088017941786506852412256730363373695622237159514265904619360931254418894497139977148674255349044189329455445181717617848268036803894951845015498553808156976328278032189831317782883429260964657870458934551882347683377823263389701335007007120722824342130554612036445935296914776049127682436400360103807304257246462254137615966940940177092095932506072576279867437945554460515417495463133809244335569145201906816987643740555316692540329823319104928227435021244596042072878376643554694629048388677633514818058880818487680583155678491457582825811202668383413365848077117687074426685220799477605700260470076757354376526731025808792314182155113768190729942021482011970848471699524016772419467855933367364930161167525971027067428033897434001496816170623516488943105450346551715455348963920480063110719633523423705581011884670445497797593153829789457835324758308027529471621239133234878575383013108583258983599123903515408410815455880866987768718698048364254540231289927735465292380399138440943182549293547540774506975765797911965325348815651752214204640593364066994181580927388735398863166894410452443299452471981619981406450726926794765360775122970020847584623096027975438304136157678240053523426442383020303541576961937101314250216309760082164881600302508087751381589887262048737205833980527645091870698411148919242732977125227584845206795820721928781478875191952151687417256254709907245870476147797032417266544101355692488563013339842431599905889632080660402038921761232341916393568090073615420993672358196053719767623891159440653378901887758921215303016013661945689579417965338016303862519529460306878897616462855666401801247854893667210536102946941761351389586509487332642663522517362180658919319040017508965138145115830604561560271852213235675311587327234730552529379317668932668367520892336628201006193971990354405585071547647787880259837626799583419174018713253381515010966711164292064117056593020264165529647127836796954919089686589407595648377539591474375155751120910489492319074930292714873798093851816390048983216277588005152714719364152642664355822512366337216057558675229395438460131143677418786224044783436892583585615813738973851508558722742841834907549281890579711316435958533445749177278997256047280803619465774588912342901795885150142779510220520858758854394489324158027393441512275622730168150561461113950694531099013591176243970130915150306048574715443330448751062996239970157355080791169931768735876088272013866321079551936676130015721278880451113693532582215295784896078399425296695485763373548859231115109176070134714829064840963906725871734054601827190147139129113259769192970097625899613718700886894457292770231887748191461546504877038544536697446364009321059365882001760071430635131112796065681431611585969188567548774756118234845475121323326626381317021019002735618232823976559430829446532777380751301663000293222449140625860394956109772696980322851094968422481353177794268386789699832154379410102728272804883108519585809272887413216109918318839138686202320314964529362896989860017514566616649253735482369455215989373677818996087098097119897282573328991680470541109073095094332254750417381366218026366449615172852065305298424074357805207300731454384337234187579881982209230284408248164816461199170351675410255808921602496954697966139397315288763279516674576914980774114105615552245166251100429027663806941210180108255221720892831179229769846727173330803657310493849484621739030083575230583843636654619006429977683469678216258868252675264690365266876435384487673884707261106489327947617308812899252625211450057479048081265892810001971526766237898516727144052253495755944947995152138816226682898082722884091271121676944494392432251650578697203595403488620591080690980884248698956580387671668249606452683373743580712271356716109293575106598504799156785402233259451351339761863481249605942471033165265572834622440222840524159163851270440441582096496351745944569774988504639428006434173232899992007121019515852384075545859231861890512068019769522333951060723553354538425894306920021175011273427154440689410349261120137737419719357181701476494530990036906375478359391903857951999683222259285748945667788971091322048908803607616727451627330665940071541487952389189335320825417317540385866702680248150313446741345128713704283853280153133149688288126858878508332428487313966565885371308044913485654169365175192418737094113784547253201009987455920423748930033471703643392191094077553246420306002251660226592839790030378859342466971820786292790642464483970458219058295122967529768814624791753280968039259354592744834042695910145668352546667726010051566524488683576821365447769807246394168635668605479724411875297655476488425077724322500965362814752340992076223343581608932956975978476912356625101765610549464415089361420862678344109958409353521972612788537672397665107105380334903099055148955942038878157400394509052703002206128524372948668546965370306783957452055157937117004683488524553202370099617771594744456470564494705287510980297432903015740951838523017334482437005073802136916304735212052754419319704345496685475694612418533977261943012784284083122759927707204750700165706861922032162671404215841215515603216021154778462134658974177169224329428669972026110095468924518491336422091924651799612923697234030772528165285171824831576745945634669441065834206674749407752298716236329181858279613824654985483882643088424338266217303091965812318084342691754228881575033008734482745359574489485500816752448594015144078311084187373287308981565858301163668972263085221124542509302952239476206918366686246584008180057292258627477906656539765004172936297711943115878758617310639124617156358072547877668879657126366979889183552569379556548545936539324167233336673419874318037315810859055482442048228130832461355435416810970775541929048031716009152742656587053992032750564516772932575695249408777170959266402420489808371081492257811837774863994582878013606265269784647223018963080286754376305144915343183051160761901227984345589886449505683679070049296259204136339640156636391279571100860489880651954006079505297983962258191677146476379466266391034089612014044969907552521000189756740681900879089107948135471002449189547967970373619001986732854700298659239902708262107592169078394211675993858311831084299763689438561313783799282787782082286149970807440556843503858701669052626466966797886142639979120044263954947952599081604866477574589599487980576330524880836043100779032547882018229088685817838993756252870783712380174710042523523251565740989710061342484785174015062815447241038168872582953433178676922315961697933536743304753877407620574357196993327259106397494853993390721389450292596045785186011892983650489845703123467181403775202583787214169650541325689989552033008108879956282892877860746414672398833209649979852309448464992589415862939631996523256891350899746314912751763211411444500095512404676795990727791439862534723059902298918414072478679397349162363081022107479451209962364670434320940992775663288100589228850933451575808847567045234886829856396124261193131278558684010999563379658472742305679589545795654091741297956356940047857834479693502275788457048804449026827992839127268581129498634398569786000190708775140323050599845729187508631753767901644010674055735027333665191855852447554707812481131443457240887926901849574370259232777595069749301660431965058274830048636389834885779397998579713625191485956391043976860347742844985466380433618013055385570392260215921405395074569449034668367958684281984757976230280897564756548310629640915880752612342926262063267338083921102123134273625898595275907317227041448136805139358495550817737588375270713915063251070803145139930132654289974549054549765891977769457930850810200459660938131792905220441704793499526322123914266884987817348181318152140554971915286626766267069870900823026995143963942777057498393623460257325522188056676857872881038915606273158715446690574086928129829612522048593764477379055714978482479323815921348978306912304379682323492054496466117737004708330431875963948041470296500504911096196343748683471876322621350357582897137456274286210953198496773813595348192444501088959468517898294014097193658700566995534905870732877183630211176752389779837225133490393832405153398608876666410318923725320552265195247746370007215263752429895978051039975939186627030025484150404960242944367321243730575766925653302980983413347099137091527194069809332282122760664123017920394490395270743769256479903860883131958616292967275320870869228150804953078923478159661304045954927150288183655606470307638937378596507309300757593984928870524758252911243877918448782451619460972872013730193756835334823170632605434867358371940949985095614458094135085805152987866667385743840103678886580588114006795591875848452653418370756416562592499294242866125277866502622615374566836458522098920570014927622786105481011704715463741780382939756925255213797409696333649999380181654518098030117525661679069413752190732238435593944856520552285435093836728681807765988575172707326132654679770251560980022831697840550277635825244501822691981938718018618207754490656285894431425451780340955142227246129918985733794172244642126065008909719340450083653613435442623987648490580172025991030151494604248305818263246474254496016088618273687652621428942008489758396250352904396128823068327811025937532808200000530799045247224189064869675508111477799747072959771627292528165150768282857994407620185433497550521696065053131786342027520697361751980326139856766240240728700782467649414046082395097131354342776114673832188543623893138348771389636502309375346632524397930090756745158077972787149164338514257095334989675460243187714302061294491354334943960335207520675960091679378744861656445585389912819912681721553452353329007772258589578755574816273338527287226890654849176209353516353940707347097957794227558382490924066450810838134743342982063560163139053362452184214445955832363903481090758572152330238363039261454549022495493459803137011499593001448972894397214468629204004625035566870999408052466056033645563308750403939457157301723706556576165324951559260589909599559156741414472684134783628927608240027849747205902240271800403327119234305061598726240314559958581028663053695023671349004312510367538652190777516644947791390986909276989789281910079701476958482336358569858299718254847384959568854546651563116214834005501371098651899955695601069549401813426410073237919121634453767954790751390756300472175034644192438688481052363716069588663648053973326720172661027301216267280415764400574727868083456416139601454182020920757132994927304313620550922591231383547593339930747695150500889073278359408604628568506216287852292750935305246461789707069034596844458921365928943848474590968329051485938221949373157289578449833598462644694854209290320445963828458078861125801988960338957494888270817872885271828192481031043545758179989831324159473982555655013482695484489679274993352551294413536557348837130184034000166599916183936056944017990766996033731043059841703653705524327458031939300538023468340784779341553487862978029998039756118962505233813222975102035896522612653137238170019729251180554794121770435355917959575824959932887934155098278563647785710053743059684936175970086674455791659358856902814898941685588845272790314796444037279689966100712563223439825362993588590197695914394599951028553043257546875959298930600697961562570328276010013648279465662270658889667049128887379216616391837880826165297729628249134852579063371671167202625339394608679968535309221910168549065974410986136435462574351597684760034899725082823862095877090882918866954881867635661224321659224053036974595052080236577092313003685588378408492301874214350704812634060650297800034821540456291614952469009720223893923772379072969141140209437852729929107120553563826019315340150249660851214971218697400611763529041013859791722641982535574992191331178162772853981506139962916117595334852256519230590149591397802241597220662351771074068108269640621365612829066809966834243523541638093606048857668667510610457830137524743071946337441625300837451011260273987388702044121918980111403980329309473448502567009229179150422473001226108745492246815435102294975830700099692338715924584979936268929688623100866738521338685005849189275287919812263295543556132414314011144673102947398786273621784632147761382619242520068007861439320064322789086888993785561303932541520943012247089957134875116134964634360059563718184985868168319542648890384270402934799251004368020436367640777745695738635007110738531724083114499259216112896636961913590981962777741860748449679085017596863327274722017525253835418328392027130726513674401924787624163853819433921910957936620702426528793728538506311201763003708029198442352527670031272085729722866066646823352786359779249718068761464303449634461136687400385312399754833737749824990177432140127287486461317444646919231755660046927037488902229284271464775498656384714957192770912395577799600078354844731112364978557152098532526752385104178849275451071841677846631492525840323026715146207075740657356963146346212796483442661346877539421368812987693303468491521335296841355311011608792480121426156568692091512711898927584745322430345359608521580991478794215355483000482583664331840286797589905121003686906417284880327198641863111309372896128383047991347446490159278050229387159925026382187765922767615915846261080885748684141497126518424812483838033270446695136951880779078978129009060317515960640710304306026738247119729406178061275966800073678360094626986196919994977260901823289613923501443867128890267118493071874200278897860584212239710879512138910605841157852260184797636369310591884673592310279480115851679480247980017242987968830009128343619160534124145494788079509271897587429853646174988865767101288793952654803128850473622746620588788400786752058072087429073883912854308853867041434140589657513063805556005071116921669872004036547986851957407544923123824981602213382106600961679432281026827806716042230347057250055931577851263439123915802805329552519366995560435552567294089572561577610913849324641515448568290432815958721539115895025819281967298065927848327011783512272232875534434287947436259404443678230358111767172276137911589382077980082741584208092611973687971177678402578580000903128605223482293831915596598391239036142165346747535385816195556465014783751198026960428192516492981137753694987495232677488947318284982664495142725723706586614813898577600481526871338210031975479332373712739477499753642608961541606818057214513191359571925670590623563278686419457435749484361288372350191192207335747161418305995390286962163738551847448972437897623343817769882754222712202401208747343116100021478761158624217313818824722937844245086798823341427325053866433995646378355082925865823190016686736153584355487031259864280397035807947449341471119696068461558720807261425773477898970909694259526800632632482132724178296003144929071709435658379273706054901087199238952148395846974650376408847823628251953578384740131458192446160091142616765144668223716355517661716164481893809613997162954795531191937204961439451656745451268647723956991649513388372586897389980104356363121163993098237141236792316669007588960206380118667083016144686500012654919731049688120256615868533843482151881355031338154429967255729988951086754048233484516474507282395952602199831436297132150155679867057213267546719464014285069474405035986114496639533791707053179574838594684346322369846493615300575333472951891787229392140166003016750863487651574820282000717485904182697532439681292471620893532549239084902056171610026798858185007132932108259829038976895329783485984261547164355870310466229583127283700072856659417832660894111798667750668169267319123342493653121331985390264591436486639752042361533760015347000102163925089229986305571916896335722140127634970126768098348031805524885276639785292366936197790671733554824047456601126885583870292382232828883154927069195705241516954303394379794321235847716311185177296836504715211073662518171126205869125542132446532769222057018568339711125347727886931192387364366256264592817087393695305634811741927087885003127660169774731363608094899081114913910975179692740491424318967364458382939617471815172027349627978332458546330869607895352338097042221370574708810744927979050979092900497051638781065964697633881241265867529878553290994824876743124198120949215079222512422343286121084516785493340479618077054290227877284855405452539455477043113817672412010504988630087992005948176512077765786450795113112354780294481295011407900235227850985273948541862488622261508819281403120167813039267839383308407817708851784272227059138177445019759368121545430330051314243635783963201226966633709220967238068325027474583347594285102258555699705607034404281374515447432777410454494811342826572405586102277065642844866987515557757500822832655307038403673827901060586051121772157024523293656147216388477802242673542179668940810882366554602300017629300189466974037048037759948786634401946367719340429437334467142895541999280682652306960246763222469115902895178482784216053907230956645978640102175586695089848362298363567255310600508846602466959592885180178550204854037712855874039400185322057556287283854559968331528400490717286301402683659287740392965437997164473742918990429493650189625505287885046505957165057161050345305696261608185227122235294128647169302951709213395749153682068232345447603359567670734538214315142499920270896358301928010935799214885421410779537222054500924422524491706266424070748789019925880201850708692713322767104938555623584893590240434494191729626902272831567063721807217288956489572443583034377325451759324108858001899328359012789003774778656516307776506467269182859606103229234276426874403115679219265888824717933376557152619187815746002036913737297506045379915242774635302606505626530219503283992543819931571813777073823395334960964150082780806136940610164664709277744016237877627823759782587876285076269356326368513404502849102671378126006979889597903139946126571700884269429284354662499953636218245404980094906507777390154335888103141942201320451572086460682191826878074483608634094584107256598299152858744429929029310959845796389337719448534542809581386157779351593966546867330587756975795671325635190667442596340699002813102961481158768651478247338670227414046595092569400275043089345363314853164754975475483327608142977435534420300728392646253308915113804664378198501857855522269181715897945501867863859595656774728913107689536268570479635774020573468979599002553415383048956022637364256059903440835337318889611108564612228451909228684911420261400341058242378725652126320274230013193977479325585395692866998828248307545098898654615093636406145881215136957981973518693796925863446334000685227628357202542392485382919078833784016197348770038992385897404576301718062122903377313067411490523520302325963740431131306964542722014588341527500937619829094862038038500608672874567739376012181186549732900729494969294536802496504995602466281118133212372628116737274591853768422182142074289329657576732128061663659465577618522990727509267128430189843432227074268319474375195923907045207869933489818514325748192381431473365505414056058837980595301566045543257055457213045585932836628793193133691228810205519269556565908023723541052892043028594848350846723525138312366691967317370112315272952055461987874924410073748007757128138105677431568196470138770573712065685336311655704819186251667347090246437312995660521354791925430619074691184616910308728163556957373174256735944760642910098250822638924891868056919523247196419582865873368903626724315592813265175372476792509396952226775852598034910472991812579731599167596149780664004203324721274158989491104000438339791982858120007738429677594573157534856518783999385379061553869312038568987166379661334291118812746435915435808869854681694871466093785072023687841427335208193454313871035835007612470634846302292453024953489286375664786904058159671655122540638652016669491382713390528478067866142490628900001419550704961747210159965482335945187541911658679720831605800668277657451178777760055922440198913318820435194439580555331033147364759596795197327638980495803659558979430201439221735978902418029383347240738803400779812894770604777362362500113083658318429608407303241066617556066410041114212960086735007855793056456225668717048151036838684846799516516735894936424653067896005909602792843400392770522678524788678897094339487108791829091039100815073169009781943090499025885881927719220057108588510474980620950084771572765852041193173236407009216524378071991523232122570001437734330133128583692759904196529602606832565539227639874864430973462784445244970629932114705652588849071144706636290609770722970709991338266005089073612539655873255853227246574797765351001286207623708891181467922460605301166060273061473350860517687563327301156082127475504840641786017554400766342844529832049313986349792784833766824488602557923593033398999016586916629738958205688348964264446506619773785610355154638169494940884167293981233929500741091423622480014139028284884665360864297524829744820717812221550843313325719250831445299827234136971736952909321506441016098781715508250213089912186144692507588609738716850566402279799174327078408244549922172977894319600296753713905379041728241360273363672994870933494245200362210289941721778998379929669247191762810359742615914653225676186679534580612285140493754796030427536252337468860211845757742420599884975648614628433607101131791757095357058346105371279414660738826222162414907476975584607346784517584211758171258159357020502742160475559315032306268723824748412102988286355822029128579947042256601205759628523667745956885503758303759468056074141598608766777311527101585887905182660327297208461418862721516726214962030507475513466269517782149702901915477354826302271547934691101423825346288778430897191452353348136873765822307410726257520579407047031998521494540024761542348194653299728270044215115092080326810074168237435958839038524055503054196492777647958312505167044619340474491431275343952665096616593603962835173891411478636003691542511555104648414573786484586275541012690768605596792938835105245611310467741692483729242141853126959468699330693360877418154481133593076593639129735422578501095053918721701162299207299034589911801684139708483888487844146368928982573293868860898916891106789908177171967655105685856988523692585904635249014383367089207422988825205291634634312849401637899708510205672023074514671517638369506239794735424506902092503227806103982893825126258304741501809120901057629005995045079966738484444094552083505869511883983989224132482705134277604158395811797496394420539109113998840532160999704674842189951863990592621779635002421921362572544641440125920656458481446908496856617851338266378614713499601127116248580198307528029498535929431290963659805421764711456012194344628753408368437689790159778007936018737511346014995785503300637438318518468430015687004242912773222749741372380536627268213423715600967473572061952805362924077945047214535012424373015075701383419923417043307012792085357168563830726075039091662686319994257332316025138379380507808896915287176445156801367571162420823323534030835178834113420425910882762550215192224198812423155131543938298008312286114055181582029922092167929418969770141261447035642549725356544721561584964155949727553198958336060826882103155427242446619694515512067477240212681255286928559821159925358007617861926327301102583200369453644115902791068060685168625677973520953348573412356473246053808841097745404126434376916583563656908162556634293672973730111302596571481720614860092818113168258590157648315853413010319787161399150303944720142535328171129394838390041491926567141194642857886789379892363592674444741112930002088647327839258141253339345488173305039961135135102382327098180290521683245112175821207947736521442592061216083959296435234272754068672021961133857979805669003920960311213102248967744092858884018067905935601323319744919239821063116888387577043082509670701344175121664128793923417382385777018210062280547954032837742095507819876380846314320549053368657422461768710613635120946116371184936243860310175112746752813620089583092000689394882412155587018660416427507553814286680020945220068004599209200485360398983358177907800510017113030074568427807566432089524756417782567854281619278616547851743052922130135760200347887870095124746338092833015745895655415955225484842014893669661778128354407406068916023846330249078531740713222704923759384393663606527640947075595361869465510239148223809848001099151467547737563746833065884909556695356353738104821307604007695424224552575709039631056334235332538588223480946775131324918095929773396610898792279226531245415146549449470412343412107787308912961947014651202131877991005489300018220484374721030724731161722476505288900554196954217091432835039330105090247580463346769682025227601091973493734756667503697851975984759223891516245833473711352356104711763120742943776730685656704039859767532421507910378020594205036947795708135593200231304213882385579731058604401433569923933505831934158125450350101120568934826491309716311376314301511797259295340186656280416496111043076084780468519305749279642108823006825994724082818166686413145645743055444448122564741214034923608492927914001865998538644887116111995145026030411552475373655907349736367890700194165766156241235895572451370595444912071666071160897364109417902657364204584492947399929815166890357520831815840383343588591344157856701919231868391718009263471540046968569842082314540513647885159081512031887482147731391455194385927473707164009874805877452075348880275569879087857571649561176218258603720156807272444099964230162881838271546571906885486065530267089201465592142555120326862035219881277662629552777483042325629789232699293494254213216034476747332004895378154281114027943985752695901962469558221115089280765839151633117060928689750486164373050116442031138993661955825360629964759279216996183949168769988139804365220832737590640593564968014357890640070735263739868435523457952297854767019712203329838275168989510240089679767632229046458450457212033658334339941018272552033200984139568729171301281175471771682775693345032612522811181967518037666211017883053186782494401405971889933164894972082281655822288879457343815551378630217222217128561604641718927042942686158349683639345758896369388469623911881304321149156752491384721910473154834066423911948064369944617121752446697500268538844341232201426478866404501364306185397295946873711090136446735191389351268696448087908525411181873772367520820910404634376894312566137362501782484767260421356093166282105864511981217431174105043459521114010018036514943245841313721136110078687746506103422479633754315177572352291572356172806199860192679639035622221767097197288605641277117224212012838481359451744996509392674870565472725257333655622213336115597372373284777144512507914482029939794583759761470621949825787248264178257999083156912735837516670892764657067247998123146802676622974926126687247631338293148165828218063207919693312233144528605462163832834755887657076202176829989077504406695643230446108579940142027890041039691267991287049544414728113825772693612363234233778964360923760319483233806309978939607607318340664054644969229499906497032411904851232157318860923264068903595602888143872922390763507634034826283708748679450206176274525697544843757989780168184781773888418363573717198351296641561748125942572917107327661055218537565931860272634529009773976896248588045570929838632496785360268721045670482712555852972681541219439572510927079228397543084081544104991655076433006090096696525886050366990566877699166278292696850938718981867715871470898406114980075813926099996864116588908834861894740197447149227712365231619681996829374287322285865889848086639521058193793157754383585965576391878537262979261847933830619112125528485507541784749804924883499040737022943337463813233077063165890319929424379930426678646850394945989445926019887096609467598705015769943858739095045881363760465828708821952717598528947149053709920272378595905762941118152184180810749609258202493005305677558184299052616143860147734337670562691278503586122496302070653808554325735608240001228085368571137007675119994224800791942426546131002495829173156216053866160580799534240765427260671276803071740107428915214997663681760310686406430601817676641539845841060666602220587495386914407336748344578650150037192460414865749525734688420834189294147947202206999019815077236347271617601445504508903046335348133397881244712751697609879618427556421141605141231470392892270213172448692010478321979393704099512733764266492076864178070494086282829530283664876385915156357100599167587937933400174233582905968930416737709638921349005651346143387628196787368223804351221625212043504434192215995215553096024738389481262811076646378457149742631429463100273311129185792656520046257098706042670875656471089594172375024813361167896215484627501202132947879365738633081946419075233899126673951126460870557634731060165283153643193263879101598750143504661387852723516720589593340159389700770466936422287701900927920349245260418632177622702279434121350320990742295495304121897953626992453323695118813031156771062456254305341936683026635341658984517310099742475059482337507368746710392345672950637508594562663575083415381379836178799368420556473239774888428850066218519713016699355902380720014031674763496600149860450894043619782907470497657740292137637458990743949834641450775851787379283625370005653359489074473029251714540838698001933072045255052905549131515056718750902457900217620692216928709785327967298085499712483456722806518615061727410190812924308975847339357824950530995630522077799423203828360353573130685844173609938588398321809268673148982507069153937292789165588664356473396760041824143815301526488977918823187443996505156554417466307208984206585966147817935897319914852344876612911487570504578669354894236885972254793113101238036541527303522377706292705621257124926130793955056684691665625155142315993414641090193410942172668510877538959851532261087909603167486320362081496698370962238703387005468660469536071461587667280478998706809067991295782032485320455339382804447160492164657983254470626967679142799759069447217369602726674335907603878901668128615584613283184339330046369031757588052945179872687366811727470492254535252106112402809352782065914660753378172858811067152743688510957606269813910667774029963702826347312546368415574896144095296465612675687496800342771780611653415750813305281195420584593901991764961162921174776779603956385006092054231395001600207180570603153990551637627083816166640387826480603238116107975964234245080017138316560929518878568106832146091856267975749856891784115197595803649518552432759386567970011109288853053669492825017770271758592840707870617592466651389410389852216000602514935572317231940174687535402922191531257962234665679049046484980931610354707544690200452662063400445245969208018866170504332857097229609279723869543327666296011943800186733047926554271179714924491428981017526512873227660724760928270470535415166073995008872596720786138922627164514794770079174485134494608999577538346106690697377979901306651384913835607231900222154346762261540633640963942036750431307169741918439150968405536652138044454113622594737756888168630186401449616777200029865890836076340306907644699185049772958326005079724845035710025330835708225641782712848540206277705483775296005880556318412429274246997340723964196354990965795662555808046414459088694485888561774715442830459123260682232913236372986795366175146792630969514442170860066282968301329013527765802313656427338972675786314658165837332883187212204977574980465468125912787765809791363730603223789524504913142373249922231278253735335179223690886687798005146864760237181950984548394925915397889955473568790436955467971954161856805794017248564844650868673260442319134432825397846390248557885280344564514380576217872346646326678369549897995620834882474404709348309730037852407264866743537483825133636725045342712026024831119772333471227391992092566255557898609557012994488709711137888127520909745344073653316594778139765068664390863147941113882302819025513722648736981726577058006580997609816984772069689343390746614625816896637577899353042704628074004807857491799305018208287192973627784517919935650477420737034449448979465956475112783505504706079631066681421374928851950567618836478474871279391124936470560278165806091433308177350859218707490605447858283870429405029420149845242504500495726029276103953051936624940023845890603355619526632130838772188951451492133767865264062373417144266516254655337455989610904267340255934258902926580330667670228182527694971329592463715180939382306121324403539243258114098196894056461320162161300302592640094784504299660950074473042484777883271675905328770846992742429080823908526099254659788676587433550477490803412911887548180107005230233915960502676594293110985174502230504592554767384612126646230138253500832197794257660664507504313621371982620733262035502608488996908687551941906133232635826036875223655295806314550237056117717003590789261011813296812757152059820966097461871645009517634430259951781522708779379532323163644337074108552343990602658352835172391026773734804754838255863482280185015667554156050746227993314625847268325279041926625505591831782781786823817775607465110836926908167885236186361357720114733057826134760500366151043529215913824768078583984303769200557496645122150092622057573191807166059455548719885643552061795271264940178757106228782487547957664412736376408698442359471307220725983439910887587335520897031879928526307858152077945562552721678909848216352437104633316832544244023284931483256149797174622967302830710491711866485827586227537938776483007850372346957267690911129213919177426281563936479744429045378852483808731084190587582821426228657737277571133536885109963663815266319728590549961328078901816729137285518541985919577790920777394445857164378161403441128050607997970925328489271165540439065723872946284604019418519790083139494915481153836300195504159629257409382409697371793887027986336430885776102430087735997581816252197751919821593067295245991312000297750093868453033991896995470232180241152670062747338349281997252888276825100686345360634906457174875554846741457569844074643722662364535377947693225768868962812613303373836436786571394997622075539285304294155242400626847174169102589005750805170287101360316914444268698575887622420279380115836079293112137596341724528260420888809379178513157301184306966885500819767873422287021189744456169479407308535348597391518024574660577277913992548904920588328401675934272444292548530010813259443823158001819451813241013344529980317882877766500035572315822729248339037562112978253110389523355811790109716010834671612362602690075282408467393749869429769214405900445089391026982729134778839176541991104242370668597895978257116462925391495538522957457521775400112649116841990164668351251441322085131041638978043049406899468436216663361457010232525890618480755273552320988179708169792265171825027125480156817772980107637597311699305535834012285201516394444607988333070829171562925036520929841704145442052279998542291750360477977646775559514233703153118153452831775535193919929800033627750896224577100814362056629839968151983816858850414910327372030087239984994198774023823532009118100720159188909120812193946702935116603941991389566174195441989898794939874219425339861655722056873347422450096018557862606602146664122547316660888301048750410294154737306547428536703956313846655505890331778455242221748661194488575810671297845383802019965950464212200882250055188186952479336143738348611123015949209102461570913788499000152311927786236589262147990390029731167479966806262345798131523865755556876654997620411984804140013842896701155586052081858012789596630320414703729295288943269473856517530957201481277742560313746857013346031041344540131424516982272724230179395947597697144911300358276178207274032080070098707308988212901041188832118409704657291527780530682720922793214898112936558935375456671947608553921856976311854525345159470137982783846064713067029905555747388139796507241267830412983317098570845476555108317361289803201308205806777844433131052260617101944605516806862546583306407997425709456488020452784112615508409821182023822190934711545293353283432671683573276464497560197633822615127654555030964171893240519736291028944726754910003679179252270509984408361661648315692256705639975411045577961521754139368166722443401010003889761486095160484210277731420593005795040596398108813036987111330148210738962734575666909323462139328153730504716861869745682828689583670144259056735302732475199784185796144527894627740933302273265210331118206702195789846410101406770852207628600683989697740563523973891794515476739821493535463188937944242497732006242561435470488981451478486708746318953045753946138065277648673121083044890894252896475900887178920915324658601053396049162158091944250477315548045141089737001739094565661113906700433646302298239705025159225544766523319450548670403533592647786079402610619638316392428800092483034787498137507003165719360970417793530852998787043330191888617010205406409222219730715283171490835378112987061142733909685094703377370729429901006295160090303745855027734185627070164431948118202884419376946276419581476683208638500916802655504344686768908856876942586206952249042416527827546147500461927592750672983075881807446048227290160848822510644210173727203497381270476661679564850738179402539443240659089233059344627731381828339512540431267688197959396013283098901878558795749193353369621228132724165466532587642548777607758295206196111165408105871473489078079846038599337677463452494917487407933331959410622869929428590214197254675687784426495663023391188666562390553003412687956016969338247878093400386660588984157782211172067283651572193934071105249679520246693482533672041596785828925209386545347712856639687922663639143617237471512096419415480758556832792822190092786810755529087408325232144177754195441403913994073634304098274097738967944847625835725700331467970704370731866493595898928295823077590181771416666624571790516396896709429927373626485027587642756356828425213531644546487233572182596657754278969189102141108810931126007926799798166532990374301934596482082908684143139686910301895457050969375050672365310618090552798046977511580524804730097861857744495615487638452240692255023404977661328603704543906909221436499683334004498673959044102377492652401729760932515096757482428151190647655036588261796321207921121689357046380045171010298066543985136798745893631444318628604345937577415143850182831508266785694636388179879479176951676424719066448701179729595275342464124688423658608099792507981286819159526355882623667799153558982939863939287271645963758214185522252392974735464621838057568301448619575094480811905754225931946179430567577511689223753110278705694153575349476357222444446882850563801879785900303708284416196501449451381263696605461708737103778737828583638088218582688732338135634334480693204442083864370215399936185596901008572165773145586551351706250357537500115000592305040457430319357702541378231663078260293359683705529262929030547375180680571744678358900534450082406542762732692189147545951190537886938115041125286928031796901387614851409745048023635464152886863992333863492376093641438161897795987727430713262766446645867703775645821094078346867357215608828367633783476934525529731123853554286117376024009746360065545785740310200548551405084116661387010155966335540236584801325379546905763266160774935895433566349536436219237358111704186595597620369346725813343984397499511045407378546129308806227240333669814374594873559739544836952183971159144867249801928015285744606350319522278339719628238080645193069557868105329986402576359553230000813824207879720840832209962478526136197205339803403589491337364251739051031151280899344202089776926808267275863908474598122814097920499300579030189397994996280204526756432642193736163581441077617687480334455077282753828384121483877514273987085193790600975738800738469500897070530686981851754642058911646784265821435878184298787399495920213971762311928367079975799431405891182209889983739684095795926870158824455257229359103489781879316775840538349301406076180820570738926246673730562446203035545834037308929436012872688068847595961105052816233420805138465091609414545019941910658997725820984001087523237776610458327058700849185862633084279025264637170920075990930738512393368077091742697770941579821344953266518771147388415615036069775006423492269418939586373531233310911278828546268058770534387776356206861814272037953126430638285565558411515591704545593313208979051989241436366976215921706826153825408325602816666317493055999690733723885293673012860689106935712606836795591206597993963034703630688365838147223651853970987982968664592321239199328789098748966354243156773365756991242983116592528902826441646753111259634554496685216521835917317677832254229989242561511527816339496517085031077460464297220543536292072388589415020542994698741165332630090427082459537401427938371549768457708127950136858546023722466959303417064462912219333285686837924387335799284597552774616898002706885825391984221667298020617057917954633185048878752789966236382052573687994913264305252630566509274735169473801978507254060815874427448295121025096694843481332223187836856380928121113306557505201191667953180394414801082098386978673058090790771489536239827181868390489508475293550837681435612334155740211698868134218643191774295596142720389528474767638204564274820221876395161043964041905387935682573180516665060927833017256307038088952800581149341940266016889597009731810148997108065508844704060197446002545672403325813549070839397061960599057560454516985828606490116165854964248714699883515628377413831827287369361318671411078682199227884251925287862427966051593209002445558146906259145595486522611733532536513898553276876257868084443887034742171752167261538753925423755615836228765382637614611654102091807154395148863328566118710848279981064878945604501715413614131973361865308997448680386702236569979122993749003303035537645133499725850922152239242260192112837336337576677998337035004398865645458492077701263994781448732306802512002599591469761502569682278430117614860999895182256214672394172500531939285541885318353269876914437937271842447402613975639664323869043535682915169023586509047087414409426279696709025308689676000749606128182309470807527819417527263476395931197969306722757863275429906691810601330884166860085283954414865544085092576722062099080970425601883324572875111641681576992893611265264752365487243240068872720942252062146363013625314862565055348004306654756415127148708423193054149752207367784325426687337908418289102061899467643036080119929781323929822245909954189671332511171785052899729429578595457349922708960331464098869131697374981139267797021125262588082163752480119813351710873959337393043856002780960493832252353840958728062310471044997883705522962135765879268935123459221460309067452844574636710497350166243137386276332515227653459051655282959457849521314311745326321589259332433910761016434463668111673592117367617906274248172179589806236244621232053867556747165874157268278170653311005310752575754835224052699410004795551895454567309181786862478113531767651660067634175673910161031115278443094324532534909645781983859046407027690495880495587930349820884471456583362480324332158630170879950591068920437616623297291739671739935123656931649267557455758242437440058770432808042056224281912662737564706933135172811843406689559293163013605003503749362154539389259603357827740694654559843377354725868650249701154927943816346585178215770974754029798509707451020283938855872212130274591438219281383882008171580271968934280330550558057740140937078629075035782272732323592294212305885106188348354437326177045917309436037205657675695386284920726698747459903181771582143827716122085610044586376399414725771154448507473471422064469609578098758700164822994565411059186680493744392546321639826894231515589691551778162152862144028610952067112120446003316472958567815938238817407625375195340641864881984657601919731435248605938446969708973901204989666368938559962392672222937462489449009116781583172283977142043815610672889007105419532203054928560229329431039045389296142242472197854180240898211708965230199747299606115361921060203452327108815055700385088167651835856158406129276036985158671733003311907859063229357210576422746282820537844573839445890851469677707643177892255450374535173532767347068261517986847918808566603852921716394648453169849420536758850484751632722699544973616735172154044146817216386207997740606523353791558184723911188799073865705459408740187398799093702922625708571101618071838556665125419020827539356823155333151540161617849013752738867055981699237782616431102257752780301431394530746812193967758412976953326431683722016624922406689715225056633514329034633801675017412993280726739582807533602635998030275044794666052867412370602786900445565404219490378407599819885778420783360374148383996306973201820530276504534335866247914065131886561272331492735285603966177155925903274965144086960015220848799601036123206199648208649838480401952798205224385544197890251589465194948247715408194944784275675526142224801879052361913005480555343161407648095229267981692601681802601574844156432412273599531278328159455181383849933489552251477129785137147705862454129243160032037956550496602047569637205381406980049328534667249565893056668916727161211337828091535044383692999663689699443002554411126198517563893663289525859059759734862059889370105547567424446729520017175816359349789573780453929771534796794898159764415602257115693516628599812845458474684248434347240551108372631704826220301893010826813156364007915806694339963184916891981973527994794293758061016578751979164702112731197561777601622203703976037782873068265764742650726395973113605754544804392155825121968425813221580377421858797487380806004844154048757522707302824842175767517958108009367340573048401192592497008039312436093132991548031090020616920762985428379062353375753279046976761827186164571207313849207420405554781781141857706963041469099885217293239555206345830273713690086856313446903111875836724927014089250965418945068889073857115804370055637293210616269373112070321319394589725140842916885546422546315293379230804482729758465406785536466325073121016462109042275895228795788169891123221517499390623798820141806495334667774641253037645496935305946618590490438431944236867454956034566923609627798399464866811413650355938788382789881165302696128840666223888588914006956755786440007322444152267018623285997430793289778846150437300558763517878064934846170781601368375797420210228382904098609368743949964021639074460322164295823865142762004475498360600564873625159206293403263058177485271330443707992884868013417202766978370809300890482330548987655810010749940489681769225126257967330038921313197768141198706169034572541444148590581912787110985228897178605376319758904039116046109224534003638746515799719002343198414426924554731776687409227720804420760547723618549766705385177393798641682627548381714923713783702031416976624838999638368560579608870318497529437590669044777079077549714919112174363711838521569919924196340675711755263257433667084598133527909198915341946254530207672427086205938064316505764979748535088170965686830116077129176138872622834190207858104475851714634219780715036656202201299872465105637373456818013861923603195649616350124831428216977004401583170448146523084639725846719323057664083017062334888346026440454522074365421169980900002484543347196792443191105647347329068382708929167460158444230919913159785765390001897027808206323669631755084757502156197369017302289216776550459576855068794822774310004418959492095132394840490252687700574880374876717289259838999142711356514380190682993253274060153775893454164287861362756344792602528559897754403783983760435381139559069819112152206016107730152310555698891075106459553331078911944079829500201590896324960774790408341317384311009355445136656625149386902166512548085277007091957798022051412127329642621594095566672398740099754246108749510144975458272900888131123270830188594989488897420457436082270568419909072590360621232151355341102407647236617404250586410392389479423714537952981767470276528486542596481303172632471655183226061963558644908471476327648830225033096017003270593428796815925616095603928274979409568702139324156496804732709149366519798567550003574000961108989856364547111645879442149276887939208964047062364881540463091210838682267129757647952515041407603554336039986074183225371326018039722593184157157002175777236634022220649229179577962951215134325989077862521848257288999662982045553891757701056513361048983419363437957138071177256136102912964358346611781105584583459200254047071055387037743266651144066956933944920121321443277920167190395503604380343479635067427758296753992844533232455874137976520864994253702621102178081750787148113448716032288040063638840280878817716095631136393233239519578716372838051243468318496389505978093865232178472115190355438698449324564176135464705158977454768812497578764949768256311789924171214757835316180626871825598383625499812824762541392942087062966935414808370358973195181398940444241005648224915381109537539369641160591693383134802997794049687536838651712866699641112073874059258945160157842324019399177874389662448671503394424294232048196745342043964275384335245199569782911993972503111692430650137099169968418894167406366192365354658954332138095185648748512698830310594877338291191436126286595900790161758169506420571724097265443283967226397093515107165256726337894301205667918618491441461129464998147290732336611530778217556454291058865231981376996434422210615350045303720499493897430092556119983228872429156748163805981396705253796933788979413791140982766146928078272840484339763980486885068044820258568440551676586888328017385604640356800639884138702857405211678807984101252449727478159782815600058704933537924755604969408397703262696697319355905001409682377605735498347765047659146666911512304729934060563553334825997207125087734037866333256806367200258544624094254584014643236084906120214727794340378103176886147211370202759712869775619654327971823408645009785388095237570196346803154124782125743540651107979515177581800663672013601584171067240163952007287797160320006751084270007316795070489147174271613913071464159442163118605060166535044095369186120526310916091802635321538754243742817583705664285215659376542823845866052436486280634155528747046513599249919536257390840061884204419081887471075692558521109433816305914093865782892749742318730918051250756674773622222787021917794899172102064365803428252702694953658983185589253930425526151467457142163260844264866159294597226890075329154339266487096900772958063559319324568946613006364751738190392012775091796762744067620381895836806208672253818170899782112537069579476322772070396086030157934020874418686172817364753971414858122702566253417561302455794560184272814938689725169576155799665951116910067039123937439707124668974128436399205142202834806640260314710442482945781429326298461431161011654281313038987196211304271896807312463546348316241386939724659839794684604416741698283049408807035204377115194676054005641571262028540351385786827451072519967268859465073992519349629081868983308060894641616020206616559560964793510602708169799552240572131394333463384045369847788524210950317109013318176166600302638502948609757722086118746649036113001325381788987579628701311078734006561200364679575566370785331822199745315466266897153162590916783077085477296085459211904472662110232508128365196315266994764414957211822478958917475481431145171448133519281543479530269901981816563136578208008623435969368756114933660890783494536434095978768535126607673496074964644551666973872366542485406897354727064251519374315663653026650080399160061816820748285260917145017365759563880341972462133637193337234332771735364200626606824447259517538975202581193831645265707787018918073832589365185075204180895148198159969602844448023175666274974875142390115651249732965769288276136550264813838059263504871418151475858090164700645453706013148417845237774582296057289496485707364489266099386830858781515415405700091403488511528013079910219899312704347445557801890110733245956533830599402238929662286849752509098442731384005813636476021486455239082331220241181214208775263358073458240119840129403996434161142764965640460003787130288232129424182239744777504862206179309948576679064272477153512994239802197518510443103836518766436412128538073036486656163259889261381608243315907426855075664471005811944842225379560273631411285451583249042319070401657468213067017700231508121446372597343188601786096079929556708116312719708405647280278980550382720698805629119769687773064726648055981981363428054246932631895907318177205069043389725981646572754161830564961617649838533980927840684253627335347051809720131153106608846377084197543387339431055740776196908317676013059650101241396318168776798234124858755800171936685603723888362861314464281061488837499916324889308467086441275894020595386933526896778545602799205305346805961072639488682173037276147780143970707627230948878155459567592879899307619580508442181450489041005121814414249878085576730112629837897804485219529151814038206174873672220884609434464393527527535068334629889734073908798966696018897970627246463865206512337611589764434391144487890850493405509398759669645220605099442769209453598055175251427176392514222170210777358914016022742381980621335580355526932869184994996065351632252255852101167418394829540516414187163233646596306063558270719887873019576919459223252033154260911391668560300015629228397926362510383757447244348595811699941732778398721618999299607109533413308118032444251062911366911533219358564491342921145105326354615090680165204080493269307826416269352680364301391858776534010762274525720113447171298488551429635802232644273230687555820880835467484069052456044155307749364232603430957050364668384351693695620910735619277554271539870693925406473747613475529944500870594290789701981489840928029718072557051135863620668123305107049551802668104594616141052078465174565187351326593629341845456844037825400898331762091173459481260768868310937164442604965896438476523727437928151269088896955661613030543297781647926432639464349560295286117952712983104297774592184751971532684776369629656799220271421340510730292107427325037542596143078421965996520848438945268187224905122027291781647766351308954834592401607028485929359675817671665129921315011906430007845146249832191750733975508805146353085620419878798315663589377991919232655865349950833483075086074497252710758383526812639860563576012908952152669182854870839248210901895988204672564117662150669298842952976066298071007005748262908436627637355651071095998865717368079626962629190835504008431806228126521821446862022636898806038225433865093329522812171677793672304736611380445692811971580502188202474356710600675710399313029790580605417794886757243409637162829988125568257067223730345054962321711204303000801202327471369162177383500580125756422678591696891343887772293317898463749271477034731028537193497481309980742781196837761549794133802669516713945378812408454995394757470634201628515478584797428519206941056906720246326414011499343992745133859525337976580171708994952088779284330949437813436837882705879050201872633586164892482778742394018815813686946691550568216589644788956802261351657422947307355842533339804519660388433967742822676836451809710689602498727234441285394206066755186055760396327355467525798297673502356265015940778452330309648111319454052986205449896838556425667312132061332565230616071734155805232982391332326483911654783273033270575399730700819917349580442733867451009983800365926741289283335966182392677699154284123866907538872314278449415422183920729885271448589205301049121510093664070986887372359139370812444791413057646787961551053093104556782888059197034207721641748959922989880753448786493175399627365448241722622657676020564758613468419319304852940743902056405223560047539010144765098220410555875025913878190873322271515873036897759339932226935429207846252555115083912952627004781245373858571064201237832131905781579257331619584580027179345913287345746664985882211660540876094716424069550632222457369120803987767045476920578262620098834069800444283828670227715932665604804178398394133916403944608545823002227552638470245933430976481944948518436109378442008577079135644371883353828312585214956278927931739800643914977815679507072133634754796696434607768761385865136163445673370669345287844682667892189912412280978668090106021642433149159226538699332852609344702408811445589128717639400119407096662570239763484739970121222499340526277557713445058281971700316146126551721150876374446001150386053795395356653931817008306658693690171088992728117384093438929234398447484620047281959110868398275119566132419286609652254859026715404595448106837902374255989857584148079048494049702728134326486243597417794086763121179252512724213809739554819911721250157869464858171333253397909586631641540331937986327141230532901776649037362270987310326169532535682533420791934686660110561967747080538281618287388671538578581315723531521731886640750260680139742085587473167081791180325319157965206216668917083639655381053666423202906178544872646270201351709179389334787006024273634502716606347366146052323683537617902255457488965484532345653997965870297723494260028767092656130278076048195470266462572396067773655956259014624498770489670062123745647799664185555466148836035108663797412870227636364540073771636229142027328530705292026481040115667002490798363312889887029479434236239357229396185882295898797123565124039642933768661065954809056493372074274133858716938704378052928299233300236022187155633236134231005367119116322546960678623258045499806267256163643157161718070798014530397741429546192080498166484415009301057795149588939044059019323191155027128219182780925946718766221408732555251556225586010534683471589200950958906271294851321299939859682902542199793889379049963811947353633233203141243418624451136673251212846384813367784685856247990443074247222873869245790257900532929517301209591451660546434913917271558808675297890848752040642570330477760239348336884858806720825131122516376758272503482173801720080160182275841526339976206639637415182816919261989746754198786739096734725225612391171282308270565139802772323676740462047456402821335389726742510077005580146702831320715108438133241272166726807370313324939256912298483198742448111863953830831552787193961941006821950117445452557637398393789833170569522499702505472799566392366387605833730251415576338518097186380176113019670919435849450585626162382674775113382497252140986763489326835082776362839677324321863879775254543097920265746856604800800525110120049278942075588082428195212316517615902258537549462985444502589279973024359409337387959624562443733615481319797959999132268172963862342841942473450196436154561392999303873390265628875821001709177695148946840567078148256676118471777072475712849677193996677712213227420893043895688842771537187747272024226570318506719403464564302693243279323412390585112239500518468260483351375390857326245675495822211984770906882924152254206812751145367966049078321596795012261478547443511352208546250640588619105329344391604666834190601389745705124640605393506076845912482832149454985733918756882155104588947426742830328214293963297869749626042927397000435679921742417919463592110730003234289306679364124360255910508849715732082043446876591184727821367790248493695719058892800169531128035485361777178919400021126126850241713764170927151454637275674107384392467069500225360939651518580241772688578078706856659578090254098894136157421482188778003671889407211660778206322574630561170586785405043481766029120456747027755874363891962802149078892883682420838346743945182801962829635454235412418294687824939688316703442022372777037163430429744752425098237774430224194763687667225586292641698692524047902501034794529057335632281538114621065588011450419860366716479428084046392187546411993432075654461900885713891028001969853124898989235010378251265600148762401954712805492097655953604256502241765087537580346456104962218312506830457940022013462546666312377204019036086071477617879026573817998411212523591261939226052178824059945735764708356696077091610098392549794790427599708569344241269165250151337465130478041138575058744024856747645237621892799741034330791661591456702586874139785511199713334162708715203546332609748745229732689139410477969643616734040601505453979065506628864717678907948199772580896115597012601328167782719974444092838842706042151080680192497556459797006827483132100669979334675074618977465929132772702214940497103255376698892206270076758070448671934581469275739483972038229834844761910374318273252069204930220721716478137805961264633518035060724730187636856196157501563493818914816963121305836000794991885877063620765345291447787287517280130035326528965146496941884773060557209672675666936391086836470375200410939215921576193010893190784523430896787761337933831337265271026728438375940070072551850948576751811974353687174467848202341984167630677815029751649854010824954522505756008027461307337022403542190395658754426173097088807223955225271020131353541207534241522033962824891967559015797692373433450919668215625400483226807591677682307441032480675429698065280963669618150310813260681851655579487541065833042219959509679896546602912979131186768309850127353658150102116597344753604371595153030177192966709377220781184459014567166010884985768301364931602922388503707209781921406426312800384883364456626429144529343917487912419604289444234908926304498263304734095646848668124763892087179795921736880610852217886927506382935855606572310338416757139824849476855774361199972315781069353783461952296873524865659438253475977470151119488993422213531624248949948713848484458368490725285584526346254078326162454066717696370850021797268250276583524925904238622124155263696808881058791540076398014343352707925567699462791454791078645462365001548093346389637567263668061437719907669186997995583414010344265947253755271507767707913802402778855222826117440407422780981385006906096279231777258490286554284402277593187414884355805383769035087784605519203239406844658303029039653384054684779966230585332961033789314380493829443880765735494291206355265023869072928518516624216979272716249186090406273911482750261893538204531286740360416683839056032823690715519629937860326380166945054011011440138242334743966032715866002734830244996819892643119201925132738770198651809108426437217499243522273863206323757605164762637601891772650837244077858163631418678676621653539182143516872856331969122871996538411079105093486601088873856205256144334010361571542248695863382647106583137194478788976996096884239800164955040355001356991275838674335662055035286236245028601918042352457193679822631751654625747844525133340162800425297300913458855344134742412321904422390273099633944438064615341137050709653299405510550427437530418500908965309981708590501652051799595670824207776608803698603255435410364084486570602850954114466052075538543350327718640914326282944532279583728387899027229595033717049359268444429813250171522091340158774770119474767840100208569296567050116254771234175676639017936271531512809211985764310381739555474602945530663799669963771752467196549056917323198113562413922359828070512107979246827752695660180131629845535737178803446252169958311694762605870771481751073185910883241324686614384979680272100937149632795190282126625955269142626757049629181151732349614945711042354092015610210761147314633887705002364617959082635778961769938609326542422667787118071792059327499065019515167204175804388590588128400903603835155343677334628309765730763472074658605757430718959179352875284608121082556333351054998526398122503330522171206414014506613498184595641726539415139767260132134908237484443209455978546229940521602201801408607471893802911447028253765213181275816963715866317320055278793322960594635608782183766755235919441252999261740704681628903178998246479926400760296872047316944350326617031807672651634622118250006454090285704793635106697173324022201718583571446195693770318359233941747698409453896554277004273372189156233431709629114603659537182733770826830970357173133302670917963225453672938553656953460099321489539262892873835490269834240200144626866719148232182980055288937221992484306247161262818059439520306590651224946363606875543788607444214879836541253965992069097483224391335145065422750201704534876323593915692688519113389781793253254764671976250883085736674864796936865850250028765143372438220549144987341609395215058870007409966038239974266876363049042120466086321487678946146466081415671132700891273246431490674430932732037254201695488490514120046391365992878123099950008437968523960852230527060045209426660018302258292412384498843598476382241421631110529339944821162089753886078702118880392787996805231249123734641270019242099772637656166021813962267346594207956390114552979650329243990923729839085729802452058697683015828477467764447556796782097848176199797771826478641688184296112281303924296813669024294850982531431506384037743430760771573503746703042684590102971794750888324737143458161423729226636652376403814620799873870587315356850849927693524434185191176467648221252669828632145239827549711021913883257984745436595647951298266338316579598938663675428777099712934962048566928620789066512465653639967225239054160030916621703219948764925287138886631579245471624172847050526084537651413991965448431485457407832782753017247466991034105721057266386904845336082740379155522592575027029566983345513549220581683404235822954333440964390025148296121993192636052825208571934550771501226044055235129701861295680502074459153602177695006646737360513682725922080327042465633278963723906970077323876403512635124652011398832302510717767023922149924928302305434514989897271586419412626789620221469276589395205717872982659372944365455156470389837791450218309920971082855278148358301544215053245750652505553142463289285162214258461574389524054972411790925684605859613206641919462906465840250707474967451097311661124254275014344201626185113153253441208878175431663857076679154001070672847788827099821047860673124427602839503946095672442142996090195948467774225824829677766559937740680408893698932283096680654173929261281343160666964856579219420441135500577705006499481954351058361621179554939305064282762846120796765812264125526521564811942634725888652458317948046213870596269254876974647206247373919599791157321751311784899048881745279742108645885929629795891758922308104057550029707580491672091548017344476921939035620644147306942574554152911652799593705261061879294898427477792646167452949212982605906920319758455781350350025651815189056312653079076968919811657617333005466583975979177174259781122644640100032702182437407953280878015540066766193935696865614687709594914112347687037360742223700689642452841882506967438640540037232919524674974403966355394419197521006109848521300106570202342327174832364182382178466157910548551358845726955427728787323095701884989600304284138676523759939449389090328244784402931736445989985989683188182128627105623027733204424408727771156262625277912371094658755459101844439157866354638492855085210703138959870656046071840924006177782804717858228985534044194114992447339315019758391764432611219632642431375534320561024335597433865784456658225505801663213853308393598919156002677655954409003707563575207462717031182551333595379937298448877940502377227838288092153064402021212249468161699920942497719892926856459921274138987520389698996163298622347566138342456768340008337616435013917076922098554687531818788735845249370010582364380472847021310392379664249824537084981073498069022659650378744727700598928357425393883199027067183321012180821347855089340239790267180651000205601088101524119886055012009279593663019979373362656280434591574046541191404766141415336310082645614614471753176053659068841985296982822200585921018877783835270671027699176863974785142592630106458979619518853674174965267657209906961732612392697855755388063912415754851987454836921711025008311025337250909300289166389001231812165630837139521364397298349660577167787934618724802693315606023580935388551056456039947783564588251260525142537869842291873975381256935210369164059160469151206847702742754952779861000199295994382961541061747531480719242605921840144494197822984405979522102566509437674158011292991631110844166261526560342121623801190054162140192777939836087317941477724599325526643666156275842941018595163406042845153752499270884725062540668172941225280647639397768073557394352152891182569150741776322840375000139327375599151983209154917279655669701669715082826197714827734057232985120817130548297539138092441223656951205309849373975992910251455150420488575669144838593211832108294193557110889430770920935619629117925622836264175355594625648044119853314259736512841994105837783070789339570200562864400092038394743528682515899887207612118556366037292431596762358409309821511787482995916101032514942415153836331252559296807121399394404601133795392785505019185201575422681275522324367524701358372196234653105772249555426677449898038396496689930926782837373897466371146710460365917568698908837104439072286027920056492488010623466965478032519395677093355850544495870372470393290899586656591266133994894576463134396250470543027951483266395257062484340292735076558137590032076367754400999060051057540054920379616069875214378570183216928674784185092944921404702729245252581263333905418552690316450840686317139859592841136396247264827708664122579725049275572964772575108945989063005969266561484185832733034686406867292049492226470333227878598599122126667044959284200829549925760800509359112535719985777991646948497841885396839153456633107275219100624913673842766092778205142980377528382147169711562254070216026047592651382831380105434558518997549637038277671710735984668682911066138727543709531001017837908073049556546943801108787390881228715368101273024533584229555522022995242467105241301790861470374630586267970789869170021662146775775240449201851914476155521732646440182419474962628721361111982503054981816066731588724064179667762520420827829548301475039381042219435173514970633693709644895994588368213694102055847395579472982974988223299258486866136304455126662235936909165674440940064041447818134010364283586401514822940163918994169982698971467657920488328684407547666976225453676540153994096621649667426076593880862275638176256361038273508224169890387386307932516074679308188500551251482610323293290372312738480248243552889841058266590935806469610761709470780576547934866786343877944438569581672583766217357874522224387768426152543740477030406328973634979877447989914647344917102190859232413927186281791561370909257974194167591201238318880077258472721326888493881630376048545151508192569760851427298923764375399425101727040035135714462325692904467541918257693350689731005349298503678307110494331674904493170705947321873843128203956119295700270576497421527776426460860960836033894099387871388592200403452386866610525031257588939535621566768282410518773895771314055192741093697633199391972560927385603696324988197254800632365649834953976571784191488268354036858819993299967961691764835254696183742825697195202964705246957169696592919061272632891541928010907445018886175945775962746499205009445139877210693477849415576703678576924272344497442934866995715237611783475605834258298532192666690643090367738940153841262384597801186512600796305213800899397803383033187274111961983824337067053682355274625919559114687178019591364076739796166766279990737556298903978738891671411194098479981681687252431365875230973776539578142661205483439096407953099270172129525138939914619607925174014762100397605815398248244877846278988816618236718708148625641788089066667761024398839000695132837438994392485812293438270046328545530943188555458953555178679000568444498564199499440140410308279993364299118833688533685051070734724392398118750343588217347244669831223993039285867956255935228799826345760587972539799701689436833999255394981173427337311972651658621953641640655278931384144171460618397228966822549794578773139232474428109128789585501112396025150727832559706666209999342553590572290852070582340865840488158929714884476704771206429752909542596669609615409410156122933789954956038749444014955431391345990330517234908919854847573941810093602607034309719977741978453991008904853373793491081018588036844609963191640874465958782323298162356715474011889091239046332555885210327710000519995633753050103767879686481368657754483986071700324058593283737120062357252886958236393392420238678855486668459001811730706263342357558616888257670224785393238110211497493125917215238139062334748838213727158130613300391210112323756745872119198781657807468334503341641013178833994975472452893805517273015652490697339306714296918118335902488089161584530833303896703393733775270554572912385039277972014235375090807824138983327552181223726595265151334206974982253826035100311462800199467637292296881017454218322554553681600375691481877941468813255973625965143399826394227681305223345344624791696266793378982368972138835839124809443741831092538578181026500915379029433603063868354995000533935549583788628304118936630370070882342931198705276905684499271979305225337886535565258478996337997655010629286842262250903979688081751170666275052350061962624035909847913777268729024220790518158278093735753715317810660022790950331746989971478699025796475264328393832230672464610667045415003337964780468932597706114604401336854452832087192751980849622537279069900781552336218396964625163758634084812795418726318503354447819302058698480768742266980896144775191679210561159139113992404836947933079202057889328931254665704524193825058083686612936091978923469305747670370662196966634615915383887632198152815372545926828373169928553216294149943911382440986897722367994179079771369364205788958759380960443636830277173605125449876219020901996873971969481125490748492034974106631209925180577465743016763763328386986496652557049738573907082159257971483122613019909238269092727393741677410329380777752823137274860784101292566491243602252534661011272070998462377492400549396003802482774648643385785489534449609989749456637648787177620548860573323266511802464958553935630919643686324975772648224790825314043485291694845299301104467250237242095728878261177971855871209592750977970658885075061103681032078714761661916153833593587877241541052495745533763138783463031052520563839412776712756868838646541912992187831072614090236468267780931551484302902810129717928258203584748880679535922238340066319445301008013684957420629666482211296662100460182869414890225463219415117426979514064600609858452085019734733223460235860389280962596901906673762856339523458117099479269256411976810718128127382536750193833452902405032816174279252924523462645580152843626185704049017281884966991159629846981014618303321563181950929956396900922506446938670121819098499747592670669310132506776541687941088879811744755030645603322812196071307029849067676288025547202719051412245018745123821577361567980163713135678690181923499243415482815942043913965201446975769605387646144864850007890446299701680038013476086930309204168663977984267168341936917331269179682219473737832619913873267349792113709293833962250838380784205568512856750840058810978496314278232221764727588207094777537083163650828194945448970071924969830520867367651214123603880950121859711330791780774690127321185899443655711434897102914526672432756566541678501649541736889785768073015448729720769264771768284308381787544919556525917188992334942599231395678753492856871589776488634422340933361075514511848126243054954387844118081922768102107766193464260831677034040054617229289526733695218077672484927836287199185548419195700390312119444264429743127267094819964568636246994882456010023149803787941269061567053263939135650036759469980960084175782168177453272859991384313166810878450018459321352647708573628814341295253669675101438949544500575104690506021213925894269710471920740909970202491738529526391711204595650207606387605218691031156402381462049929333857056843600615338443940892431413909322406760691085656119555110624037465259388723132057202820384823354828458412796540084656693975020852407770611004675033973833807553098367469661517831942068075853446382155761639119164325809111087441524266594018392736082697737174489828776041120380542645486093309629709489714355555133767521369223696390824207946361530116221091192732363138509511946409971621508202920766316939444743151084797767096055164622232651578900359954806490956739423669620866346237920849015185825892279428289506220701786146530601835491127013314288879684423509040523582633014240993070697252474676134390122119421752962152395250162568618129349347263800681084588776436245848672792046750150908859673331336821829840239523262769093405167160671465235015639122875971775077513381590869848778472378900119945163679494789559799646326449615016284911933391432294662682968194382223062314720888138177295997988709605037539326573119518212048493484634891376962352356151654492017114185899684958658781046317977272855880877397550506331765248091615416941823952148422579030226320437784639681523601742226824330071398896008558882625544529409202855605211080809084702615081891009172123443139138749488840007223516017561229299851107520980989740910824184546323769049060180381426896053205009952027017211976254567885747653971447595615877332027611974335012776685947165615665675055919803127903439101182693030306272951827990572453932036261045151653786270586919317187321730358677579282528777304325796466476167624602627302445428934277356163420456209781886064948199714296484728215847663102553265331780850780980563514611101566765271670274139223952699123719290970135958492173008012473674674568897564796159512499871338224383524303719812748348296256551307323728477129795352812823182267041695543762946274399931844739421426081807902614097445873274234051298871523976135325817156456647881284822808880441330225688998331474250034684734540644599643715202013871601184008433341165933118264358607027729623479636573057723321983016217004940565022476729540863370880589385004982934996475673317220516897289371637363522878992945247157599424540842313346484838654017169875417824067913574537840760783949477005176445127185379302609900521123556813651970013239285237982727352174965332996604016205744732534326272658001545406917114191212049182063404689537969964808652062432750644314237758656581421711910517737183871180509663839191707986973480941750938815603812656081813545618125483580351013138831251341835116908604663033121035871804412342179593775526307616884664767535213017917472399438594986096170655218963057136798242788343590369415064042094710664580018540689236121508231228129659739892869070960501694966270635694754382556079102431006145173039039745799706086246693676659489999168581930921023059887833094060460193640593312812353829240595096648133611733817424966983817480428929532035458912178151592925811958605718599027044577739042945679774024023696506258370796585989377921653066237972671332675016455973043899736007374500758826046700617975814098499450281857919942600537442783641791138289126780688473831663685123806177920510738717720244212708572514103808600402137352845541219080898490684788847782753823785871246354440458854450571695391734824566446671033117301905761801619571435518441281200129700313175750549557404338901248638136292412573003081522382779545950258070967482170630290624234461956544621123038888413864608195929352286226758380766733952147434161611278518700489000189659838731850454783294949281541093863041990324946266621794975205535560240953207182083581935836127404114936695715059054557645461813226584212482950455133116188518003646816243332413436581977932658236521652515083918968217900256819593890560652862921522196616181152538856539571199666281021624400904673860424215356296546710960040036987181670236773803249667592366514805534920413826270193281301358256899694994842584606846917460345337736502195094149031095198261150656822380462779076147728902022795618309547370569250744193581239422737316774751666846615261686770424793759251908404501337089209217750941306157519327928867798715359569297735188108251687812033394565263795544091181116910557570214724155480144177368331475510426388616808546925129031377454322452284201466999766249287424569807078218940749294080225162113972687098934456271602295627564273566381820130402472634607158936701000936374331286436989636813505338680849760986843724175344330487130404927756359265045364594100754737751009088307981990888375682948962836058581580529598388977347527526306269519705967361498951996696798642026503589208370767815189401353584616959937214956809986141783887756895846009447255649704372283780746672456131250115351682287902365424746580211231097467054541915124702229462139299367343834680886899937666089836682276047304489981488082986364491243967686397051583097686775779300533554163185393810760422667559132102887325393860012600550820286291437608447311882342890344412791424851486896928516636892498276431153492045670683184784177267061936290826663404143572577835572091301277267944377522920194631842160022290966263543217617832408887310503530546464711874468896638956895182818412190952920481675746646781150641809410311087430372193380371810895097820875376316141408457438255339893222791430319683182205817180451633674864308879622230608548599980314508883369714455750589182958465815065348238813815657369285437622029094837573638947193426389064503433382023231800830388759972683761655696907175463164801336034791536407494508822354430749505739820703806448615832187496880556766554434640325754756854302371237294905790183209885565757955947778373984569876178015653094366389195769350694868658238692435822949198523520456518222509352540828419642514559480710604633555121702250936184374435364904020483873402345872309244959668857088042201802799594544803090955808598586015093417119436355405276003646123447286589266095206503099464730657223344276765090400557437995906033212671606353495400211941650735439486631021402914116172730042472624499896573522190952306262292503585848866874460168539712292349405501644181781505630967876318774114602531367809981671923467204308284301590000541822881245175042084012562697210663062758247160181551477632280852937877739321533811724639694543920078241770919943144392966237688256602580467947789484224446420090836170466182374065458121455846757263081594267966173127017142838403040719517035572782056568982982919778037586035880818910813680506219098217249134633473836723283174184455719573419682447223724066659511598714077823362824862091464838256477512104402988566915619436446667708470660891397618497244052927933682660651126424409512341234633841493420233224621455099890162675499062632726071968083530177448891461161520798836887840425606937300994379679686377113033162782830495424015741751678958264720093625025750661092548788643663446955938714858456802059138703495648620300909904708763477058186569954077643905945139785875660417766004183619757146592344526541052867881645694759407231474450484430833633677506770060186699812008173559706294963872686668571769236335399546966521037835324660465907160383231576064518540359387143050791406974890603665339963666481270118108618398412613211874539198867128975894990665098944246796578078807103027805771230427848172758260805494691557410985414099564766896868810161449381586304794079762881264169258110248801068076413928616419097183906056598200938246332387055750935132361049409988758414916938775533802181298727490975704440005983254477924220517647129553501436085073573792121237383212801818392979679777286260204556249068811755078134717346862421159867371067126408062009354320719816348465967202227613837983630174296787232665321223600626668946897302132824473261486777604987186838715412414632176377293446549061522513400626516100617228246485646174240023413526347288057184159590116280974500675276740096276824846090726277166698402531682136086926947921489422551561986782654945559076909126432258375043993394806462589909105887972732235286161803296959285937069619974045175419600383926508799134635128983920425293360691318344173258976379478972210139974037393962370220501037952400166478843937730081997735600451940100376485853567265780457530055824928472348770672008983264866468117088643383444216752518425511139280052683302665268995727235334245092754159987404745874137867598522889766462439009475026128783413262370196044949354505314119691172186797358784489582525715529608202878756218326319090451533539608665728698138289022551060774867561166285102584464327953855204452939548804695065157442836989893921319684335050853097717999836690312973818040411285824133153005628930419682708045784595081449445821952251918093559496881762957269096909353141828485623412241329313530647266084023488622766359490872205494596404808190271740462032286435478782736679399654890916460899201569510411129971808065429984399859835162422536919323760115145223168415034983234454639228454073721773735321681127553447342504586628632073618479710757176122544747879062004157417910695504486212638235827618160785807399251048459677026196583102555330351792519257984054896493438006970618811566412986738250810789283379434477622010680057175738700098388831058754038669481132420723702200991975537068837425168829008135450158275629452191167600550908221481285082110620843857766650711689863323781052615921058693152939282560529737099405201989969802940545531900383356233139632386711832107609608084717775604159773304663382309047333271260755979982147004761384794978038577283053425385216121288046195230897621624874504609796077032938885975783000874561959383775686157092725924917056171630919207310533991124837218122069475871818529977940305626172020589282333638018551268544509975616987806253426892387714887006920542911892407334820166394506726539715504111878572525079657467457940849432002698192591540051339175285514740581805346657122875198672781712017990206941943740402648809159820548481676643071681343164048808778033380872385834879837685213582122701851957423655364864273240293914131344696826645549759235510942242570900233563379400863551229439351501122560143706816458945233228301387039562286398509376934183481926465500759163965782530609960686380882417005289645357557335036620451683775195128190919498749179919821969392477788091836097492426288527445829434205871568409469466545884618452225515464342265778701710485660433948701136256735952919512501492396950279933189210405308404066490716474489632305200771705722988173170867026811013712667361730869801262754615081258672035333003900037215310744879948816938356399342809611637202775770886962464259131220436220104004661012117626987438857337651005682766841799870678890606229674831629711777261535382245496818742706508504094259095227081212118942555934738169326997915830420836633566756605025106577179528877673595249375489306608266414243655615764604229920488249241389989525218021720297383082101789021316194726331737136453891116575218149762334211490362149394296333716494216456435330780838631432702926831175129798189962537303707778297960564376105917776519793037763481221687836343573907060411575762502777697488163123363631065476336080861515320556031403359804226608622291340229963737659938021491306808288745295447235657497433712812713999183194584337319785762167431833714706295215546043021759661166919797744992773566766618464226497348317046439358135193441707300619593987714458726863805990024713494127754550204500227536746821130486132129246790838213540532580598931315805566667732995031933352873699187058949591296180167477585945163551208987388694715352880818546495014340933602620771119754680741608123613433254893512585057900157272407262972401755239764423242699138094612845408380159038278888458054457432379152060085384451237807649881531391992106207580038059639123317915497456115848937036233666981169579218730016788022589236919094770430997179043195888651925954129566904490798331696959116884031670593363103285400351603717716907614914022287374256104217143051008922761483643882115444504253612616707980900221245399923598241076713407198817129366133050908895384768575609674206119928106698370828186252258478785844996647653893036091486069577512906115810732036476952335167079612180941469811133532067295642588610280610245990418619615903918415318627077498833135890628219602070831669282256593167200895711362397934892903766469191611490169540763382390474836458140637733401912874574343163915327101637505837825112228373883843584989532277273208648787585372211212522424395697139551501172611557255504841958333466520533584654210404476285044932627970602707647110948721355243448812114119740405803747854587779670539389359451938411334919790517348315049547906664915419613858811856334559007426082000503995169718104945319208722625160190051058744563942715628122008409039022934878390384276733815232951497545065890290444115821877201295182087152152289447115908975901702091417560349947103098792620420314193371229304952046681979481524552456785433406536066659359223580266418307509159322642787641210070993583316405523701040029969914141188437384163227050565108245566087416601627243761442398580490763884217609284197511689349509790311717722608284104142618453614170477774265930768668714166089411260907814439614316308284372574288268727545285974433686453728111412527769813646042331541675496865813225253378312976724777516843753310667010976329658743467529186776433028338005674869317861006578518915265474820331222766914902856475051269528008069497135540178724939025569664330952698188759816422865836815092134670932189972128543665576754925429301726364215472065385219165978238056363414750084902843546770382143815282896433874614828926920367815409016319658243472379882129624327499984115077783767322269540690671134021333212722300268366485961005711738521499428146125333972470077524283909224135593901733431224587717671252109248815485073051287288807765006658670520316729228963833618739192018555643389160417353397463069020742782870337963125611388009951636147462039825813292294069522861852123994467181462111886942104104449881563545420647394078927814437567283834604978597068611173116325074261378199029196791110180060152723879575156002062802103389591214835383448861099462059769448486724981068810457335137062696530974060510553404350745056517676987626259532377319888540167664633969614497616179873549961991164504758572618728487956154592691972917500038192277426104345958277690583736123746423664106555108447052528507207746326360672252258684930035966633340447992286694671328081212079245491939930672252047706427496127229841169761799898347841790995005469910677942766783910160805425823271778096528950119554133739819667805461171989177214713725675494948776043478268995408570363406702361603950279342938205439870421515307764803303648230390826084455650960660750214240980530135527446541526671357347443119807189457288843114873977774837123836880570081078473222520045513381343067243866522245196578375881602369027556207403711743294862770333579863490169679137833161105826857762643860814036675319174619783281072814848235212335056045963703590149257240656095453952274300752686982878961545609263704607159400852886724923984093347492245320532982918600995154666295508906691501609035038626802761673193366864285887887052875661452103058891096520359371803794977375065721420158854456929977146888574665211383431724745715824672946972532893978080169324862346331018220663585757366650747976977751221245194156860046596182320768020087464326193422288888531981174240795797176663693561466066963795072322795725728425045866832773581091638555590318447067943238016234021000929372415439597293727603265696391322732174447040537072344800128383325603498214050394109658382694761397960793582791715291980763667089251997231652091902181929136809226228206608874586242742528766219173142298179326239302125661779847832794512043738568633464309366964774273003101538462287858049171121972658585807930582398692741184741381219200045596349888066887624991327257322892365334493286281779703650021760417086841341687153274474883032706434907220869577577233928110023805993793864034966774750889862173760379274923940236850886344398973696169101902139940802735897566444534626689641052766347509868064779091996211781042301982539553630889807736298968225489978211051428729408690640125080736839622928007001042747230996956811097115678948664083214223285708585364532866675647333094504636095855141495496019019968240753181574803848407686500878074279988911259999628134046737175073522993737028127437242278531596196074026422849765085701092742724870075204690374867899125669450306548042942817325015989650529362832495778243828419222630170125507393481164270949763776412643709525444133387887630657002743355733990433960387954126448645410681284773655261343202881008196423626567893659385531244306214787754017584480570201683094043316036851160366351614867998661249012046481766616663402950780069632563631015079633309983832337122238642047653357349936194250346827506777523278280013909568853782920859752910117236220820200787707657473824932770988657442686834435175539296362809781354468206127396892150945216830345470317522883236122243733417554171698084584933384328029782943743597674993589015196829693797964776709447589886497674025371793958239375050022189836554214705215097439572755478179730224850036442567111070789085008530697106214938584758710212378125035660057093544246510427706047326669628695949431924815414205290060846299208886793429108704087114276611675432300816061871089664633200273880863680322188223194530429162629495647321834197891639178135236585210442901269759621842613514188311134273280440506038345833151181523820715625040629363888937220003715635236228143758917395024879381047835374859382040931137943419716987669298424380349753057523667955090197864661803427702551252469754569468315412508186471347876037094140696541412474507438657224943616197125720387350130886041084984632917490351773940484590386485521738342981821404550498071724414162565139711235130339817427089608452695689628479071217601541932565758877746249815535356548509945223693659251784079366652225378051712227736010035974979513984691061829145916206420655852132248575363361210058933160320967335411476504895312039763139453540193892296614695714258278934933821046595715678227823860662660376113085366243502301329005557728009998170101170626162983695914427720062495321990156650609559887639987149966015444657522340784317503701430791014370835645259323021398583971979295505857106816419023313645843660595068680862555649071893643440491933015341103288603786584056845710581770496280613386577046311729632490929466619589813791260051423253419222440200489039443658353844325151130581944986607905033074151588763539171519778082170789282102027284574235515112625294873632014275864867321328413000577094362351320897867535737948628915775761030049470991317328932222527559190236461097152399551711628499064270657930289295712758664064059660130168243220481932580451135842356054865189852906713263895001578405618123944907276648851063991768263864627854410382176735393677242592864352768576068261362635777442985745494167005998299598637823904040323502372382002244576738375233764184481431839162420565863945374786679337277092314884935504875103590707003719552474169606420027468093547801741990854248194449155599460389643384539007017084337302024240221030864397889227805950113325803588965853959269815426994230537183370265522144580440606009299440834908539433073248338269981406273685085134469276296441784392556826013954327827690269098373353343482784349236378047229189312023032804242918268736399992257040755039178174621211903935852977795305864499788678585038694017835757299532475588533119206602871435529181671783811723852927960934902042608563477116653440217406213956219419380920242178252718960690555914606191753959244013953608790196559344476926853315396976691450243568355285120398613303887169514522604730772197804808663767755324916140317305225111883432613150561884934686935840449729903205336988643534478777107253517179314239998719053664628342990915288432438828678541631027414194548514851014263313360563655686490889844996548638120404269793247597743546954109224997658154128984466130984646224812895875711048865282677293397884409507321389080087387273907030727715115557729519282236353206117884541425258237760524143549585640020423340529950108404752379933251094915332534473096441513621130447511088734523240821279512176664552862861374443746664987015810826548503917338479196114243332849425733498250785104980658987442925932868464339602513748172346292828289905256113999920428639057143628749672777031830237970813563020998879576976833047712969673815565718603324996042080213970985067138351045958190106466791394390984951720540245227043501799416305428426968106135423953697614139781018516681769488467109060787549351888890504338096695861453182976927216076361584614328331903358717115008719955502808283986249901086616176278946225697710868545065046858674181788084333542318085139529556771048162391068073829122820973330101322944330046168145766214672694014555916043167923072856418374598840354693443651626583813265311579144083515563111559978615006963039890148262034348310556590658585285111522352941641337661795879307975716511810360849216178866715264663584481945358954986278025461810430353602366557312216258779453151264782842949970149824630583385398793224268060868592682143159303302268538374407053450725050469770591720586234788122001635724363256023055864849930053345542146363820572159285269555646324127733833100436680027037943156917805236366001502442463336385449220310129699029197670293453367655850570328384484357992254478175752560992009282916727561808571503315952013390634775971849357869532433151063569446799253909849108396196470134184156060061011783202282070725843391665161934465619625544197481957643343145439831021260646540059131977323719084413656495859865553692239871112703386776859362003041484168505643964587877600828561012611840752453895566706266458467161013256393800131117154365604126520898355860737430640934239699172084968765615171395655462356044983461249507249110595496468028982946977665350594842088848032841051079501804604514356098198700203821913992183364891820401697385613321554672312852759630138165094434718056697564562850332713135093301325076089927644222565080207076594176899660032236334450149067188136150027314831041594818107693592698189521836521372799499340155490780963423479997791217379901977076437509012207727834028553567409185940755073166261527705260522158428268362537640459158809084484152742284230419977269728636975443822865370856451183924486801552604953578950462042470287636130256175828849358530950136008983155407396903420254370907601489114088038827379890357006905486142937462308142088831483445362782325105236561252396627712996408564334223418363653797889915797575131328329884840136448385462271349502330477113472090077968458811009704800125132249248125870146539550432776562569078619181372673737142173461560458389332023372997821621876955034788468633840609366757691584489755835414897292346837048735466028561341181543460815940606971612406792446052969589816166494327307166294661523252672234212042654666701665990703142821192693506515251828602695594265179749536457724624847588043407388089129996537472718065239523638279092689007525118789445602073552086486330568344088906980256178450910787010458950556534521045228322069363591242041745945305554514803055721482225070864860465090433438345412441155266889494743005211117970418931781750699365365478369474042746034465538335098713719297219522505763672609972213845399059281480381295608335649682799973309271345171588021733558995633523640678040322835397012859880950413569327865546742650286640763501403998251927249636166274002881765451308096540725590275508204690771918411599294250559700566897111488784065328270260591446303457495377492000291553970066863676781503756368748705470125379129933766006489681304086681118535377385963489310801423221606041476978062072599242633198778432522480178349978347103418401229017276987680334383184880629656761112633262298842968547930030919727590383584933120029297299328125275123814552812647034781874989875763534689885801781175089532735659292755133872942243941342518211585255458071988486395911480009426558188384762414301653841654942354752883611927457110910947385178044811673982777253486511125920532213603281065464333276401324497914537356889605282879870123345463567028969588333225010360597177892625550271967006194813169335146225385499811818810446079193468284073791354137276724337602774612597158020749034151764643849101290944644484510152263675291785857226235429989168442566942221148367476829758720567072721339755988919251144234243606598988302704726924337763793522135045729784729316023030950382686924145278293465356755514685149917002434181549820454983927471986215020570885863235957541743710106024089420048180849853781516533899980381120169763755741345150451999032070330813497400242281205315317994970245251636785094206803341161500618749764374525067902364701976486851593589647512725822331182931751184777564862798910451854136992400008578380982627345897982140700857785180729701433649730124005874182853686241455414001139639700078014747506232237465919657145550401487085184084737787494544203051467258053021093198197772117460450057642054859815978890625689549778237307589223794963597824416140458950461860184034912837106016530919179306172467911373142818907247231676613336281684959743567747938604962844183837840580077621938995927671102979616677552446735342228178488117967359581743255955981818287545280079253611506012089012224932035065342657646360530480223978002038846212372791372306708545384843499919905906395782506132557947318138932845850274495555184992551625967334473804865241294192429413836583278251785945110534849537464788265760716241841000889382958763266838544511451914553007939171320173923013665936061663225361869118961183746196173129722909457282304165246875065182487686220750909122074937318978624559542667015926922250793250943949567023765232034070552632268606728271239666744870488280349121721298403672155097649233194835133696874250923710846252771923184514967716143917267505139794405573527401083787432441331451756067344821358366086078513839660427959226408302115855714732223636952267612185654888313852396802235588995159025141077105794733146705581982344184444922657399560303002337681886753184148033932759780137999697237028743407558810507575344329182501862115008801781284008035028221288522459563944461170663959072192590593365288051158962755607131838050844805145755870681434825290790822701983830898962989469071203317487679869576755376380243015288407595465771985147524583477385840791165909720532994505346634987461117157584985282548715726275385264475865711960818022071120772792448620902236155072740839168922678444099491299842566248731748640007035988594047914361824580605236271633863574039899322999076649908959564332598211838042048279206958972380595629525937855419558549493776350980430694526782719311613379982637459672571610693813652943975175480811661663965182944122656822532319537562741060573479388148208372447556848092665320154441460685241462976046130505876336020758503205111014076703071086086041406320205567720734081881869515081962072464539417597177357447034296447302271351074769355870651333362364576056580015993445924314791014646450456560109917773552201795422431203476849616388302625811245391546111148677918387501018661503568711260413174883135578450303814309490106641276343369513583350387419717874791638820361625413501810237869610030629347275096697498561781049918761271974452429526076299882583654906099281389435301713371716929604095321594201459321934279962260019350097127009462667367482409686732400377856051694962514995154758995283150953608782621132842529529242482414373719240860683673601762935454148522916610969155186979338642771032298648567236030421780285901524661475377156980981905768694193228734815283804833812765754415901474957508914322612198859101528535626028092604396975185762287102425209780306080086712575817901212424899552601249083827766171740694275091914916175892778443095919218220490349530223436718828919048837033887288404125607134390027243998535413088337268969488904769735621638615667022916301880301867620615876223749919159313960436152001342336856481480615626290498326536386592556502964548830631285448154607740399028022059824965048688707589482683605566404655393311457100017682544329981880624448003266033427629012203544402207224843303114341846255135595020113425811261281803625890893804144331776425905443320841324582725122711116254846572822240877005857278848716450849796965467672186229392703847971566014646192614935488918867828516499432180219306493920195301053534583561139584800192217308145614900935970395691640979573541062657560633465749703706037893993028032099711677660864337861909762439927127886147135334223498089565676360517146635270851792294639732286138927098115912704032508222691074112539263394327871988330652273372900057068367351945492345409703528837973005992981825944407967842147006231656052028282498300453765536516970445524043354996055449833290620104373683429723961651486176762995165019659862977362382546701073401846874596914036789001534462542852744555748011276473816619218138059771314179109108438835139369881971432464069413398192438367957305262294556664278727043013044637476846265647327872285924436399291033634041554827372536432040950979223604260228286144828186653100174352000128613699649237808155047406961032156577691595497327483386623667189566347234004651100925868796817480991151762371103182786142679307837358789989189714977749458881013048538044586794817934511500299504665729851625892393191686292792132324860126793261554247247683493460364544277808226057794520789112738780623007644099940817977724182721047350276548656489723750728240367863411799166703988124283361751481905824622531148337785125399150587160421427937754277801090792197058090291454975257999160674432972326363323854104375789100647634132634830763634986720584444132246307813758855046042947894387268262375129847309139062549065969638626272478294052608127844425611922841213244151910712937720108589183201740535196618736375802637197043506904824212292220899311352043253394869035255062349954997172868401667516162454954882792558781280931999420484725867258486934530392311490388615960120166520238428054302508954209235643643452218230465330877128895127791379525642150148495386990561231836241603811117997267796294806699269461255055037795347829769428702482034226075705457001935085861046769216516782907720874230701880303118804887718241132889946026252041651324376129149647828793249110426094109175508093999122200268252328998742984116952214160236638209158628403572576824744552114722930178590514947104315236818197867313012757547920922919217024574419878123005907436619870712049980761047617544442446887257652112183761523483169915740504919036864324214654871247337109321967964257819119959413271255396931855888623953474056345978970893924752846704546773148372194007777626630900453694637720743119995794081871618195241580781491525267438728097857335428651831994936604541072806721251412712350611803800051765213872992298557732257078741121194295871323568880141981064999009036110523224224099343557208884446169728515761676173016667904574755276415513142935747113123617431025580497750335776491295738646985033937053027571171975750359130696389902384109989843681939240727844640967865716721403998802174750218422369619092839273549513276744482981934881441723619871742533778893564116648682827613306553961908816634337728239709261764323994248655818954041767785957478365812492284150526954272029882287337398034397343496451259173821927590218454173879670376492734379227596704335395477717904518013329288212425973164174822681984922548155365205103701564795665207048719873030007369073634872727166346969108937540371938532349300522174211977868734304930777949755099325592847690530515941393640277157830621611093243049155259657374190487612257150301262227078554883669045999064611179436777806194729635066419152238067452058730628457273559929104518461253459892749240284028261863856596821320040193891883556485165203964960712820794497209232949474711073948593293888432478753002563458460245307008626382747743747691129783116689386881306534750842935829202162790805295030057563760247873420269390427482538561190666851936628524608332906818425794947722904453188269884205968274675817631624904032368349796048450103149380573596205069121521034895980012623350687717567879499540047387116325839983278224136246225169349224120676186570624566840681159002422926226195845730833724716309652469812318974131197336900884922733670671700838635559934798437869497180277887363653191144990632777210209513465179872599597110399873690748512514826138085471374783790428792738550911531738195676166239391852649537700934090240022072815579857766334554092588159100185357246375288685841803468587961770658554401437921494882755912830600244742676689017227812657406900665162511024174019513926205528464883758050370846950799286516167184237816030524001859901473015689858685699873049106121176448855809116657208148120951397660627218623899514042340297112051168252591114895380310277280744769753237867875513610469917604507097187857435805381661407188427017310266657405583376179259297891210470849072691933426384024630844170908991191221903386760057341259602844067872670307744212831539540603003332087685760319399508264682050592326367428133045899722035671568628253087346182203921997970618054868280098108600779427211962635254414380472762724084635064309884497920829085506339886685932540878035287097658802829266900232482015201876901558256643099744293535171420859077628827096712528054593801831963970507543701062871649956392053453937188948286751908393696532467356461742254259441931503983028956928194319034256869817984360470050414290077839399916890816478435447603612182501205725790586759719146862479595571962899382248480806278263917261119071916434973238173186131991897445000902100989811765582472117053501482287863655276157850948920105645574913854616949047944942146910388225459559268611179268355950314113019629347162946763215560168960454395586506084257984552366208604956054282946249478619277558257580400820698193500363887854064190487195391844726031353463284938606413220726868068877298576253964008909035605507197101669308805338298063111860529124680967799176307406460128385028439948814127494265745872686550000960733544108731766474383851308313544602107943688577130826756176520739713652856036849426134883312494295588951495313466773866050802601125301104996970925584416725075965492959351947563247073381684736493717729606618230999213761818595878275453746414342645957716986272597984450818600685207584860951663152678189662842922209691503030786625436760969874622723234567334551433991634352618196864362428127091810599030984689420692023004597631037885245720623274446225475394081545323542444425488282061325513947576107886366017953959906469819605891176774813178175148798997800388005416189756382863428925489124851061068878403167628987351495678191303529220728061780561583153230641852371577466951525725683633457040319515530577423535717575076397939845694161586704834044453423087167431488533607987082756396699511332049561067223841506324421369435089293790504740777175922571611640889330522636379001881586866739634824936642745880149835567563390128758916700416045982945889112397081649550414704801730858575794391695224617446487105509984688857923897658743296315889854538257739646852494754584882426387352581557397926718231104988638562715094736316685388154401933281110182030012925587724793962449363727968277440837896270014163381238835908872133334292867593520180931905890321762494813910606211722558798364668307559105569980509313182345637889825963192273376725598009181860587884996884736543273769594732842744772986236505849031621313970928760627433411844461061285054851055272059824107929988676335225300935851436452607590799927791218760523170020267832849013599180281240701197462643878011944276942595049228638770571355286033578048446509634280904234553881048543372973067972497556228496398782094487263599736822163861769662442406105704171417064338082603832939018230486205615708807139812214967388829081667718206637727222313846407247890146137215377580704723056181527624122559283629623524107839568965857908091746978437764900956969251784410977912041431187879725339106391612355473400261385757529944322761899772321095899628309110195507372676735858552281439622217074261115356474104769890673625831609628635550831873577115528138179497919852692677678492918296356322455691634703012862423476133169471044001733888778929574174683793260119946375428219394363665252246613210242562387397092965727438591933445367210391480636926010549271854691971552412909987300435925462019935038131725059034993084205579006478927422905969136858641229226473357098481599665501101741081496949811643671609108154689657678971326615978258789908054750930568648809091509318819489541579548940135417963757509180212449638340626915227844543981893551887721282927236438754226857592185674944179912146345250054651334489870696095657680432126534982337382626091543860328442251647443884092294169750260429040751744277997019941487831204625787413251935886090760014293399774180160403935446809016217554719586106696602815447730060200082536505983442367660277423274467361515382790982461447313034340920804147993966642309695748560188957904726792631397014775197677990180531510329527638579553004256546759901686119299121822980727043928125694493365504539221170835744756655849988428444587943202182969588076008930845917777465678919056154165986846409910847200976523556733000023983595339727664822642599982569563095228463807090620738935373519016369235519285953134917618180414112371805169863483794696341992440644130491621285157944985734782479799627845201604227848043443306210312153162688657009305780830555699350708545115466151454584852931606164424986353253141193104069309746220392844724948598538700744985669166620769006027233650106698272059450810392842547213113206777467189850005082179252524464894477433420548851682611605366317005527047527394216614665820026331888936711315219626868657101896913936132671782269690983720438352368672164275746956812689175289806721561495287715129606184394023564558934267340818719745165680839225911908567394323230099247262846231736720839660459602407870172851827924610710428150410295157200143817738313229771023813305024109828675969830006011492476133911311966307066522095094589923311741770556471397467543841440445454887630664137286469101196278252817598845190395921361753600643704140584916727682435620343072484286078943274103032061122860352708968897186063754295261389219925644118565430247677145739292442204937915187663373611853673738591118274144776397951025196115855936197500629371832417316887872319101260823337627957975386960680695277511941807504251163677106860111212861950459047317356222091012294921311148268628329351246934879507602007944418756585011049379480816121590209492547092264967330417261584868746980009657854433601658289917061081819869330074718085666803279526624401379085083071108227291065009363514873995024337029341840930601368204584171711860856616538632170850482556260779863834040937705245055159219437934625909774646364821254540877698808463476303357398351183851470870088246530156718013071736905207083065802334445314291515141373581334473029256508606415611670262990269055344374379701054035620365945532226331519551503586113737852153659997959334295473267085252025292958475192275132676355970437434595070860934512868226979615985921733384770727288600160294219405575833237993198332311518138613686441549729327920191858186848539490565549475401016892357030333755719408287463182720221502214875649784985241691321683398407058303175294069326861674940512115299465959927438871230067232607131693296001901870299879526349737375777746381245873851178774269662284917038748563785095993162328188304698503129392125004486975549887921635574777848518608142367906398183664226079502324566382101520035315834200258134976113525192716703177884791811269310482090733472292349835935638016019548487336216174323510145525508740620685643901268579625544922103764582921224454663219213034593495874859388578130876407754634990958856958125001131952567933719356536780660766429731288782197825262329974994854907288364900584321015917217525815925527681314570601763665342429650870637645245020640404043860561541369532746688834232459280288816014236360846305969914562294110034411637504051978883142472722905533752199140731684800338333892889836689008122443923188017507537762777910085868269781287588206390071276884501701238400428998503141969365036143476891940526520157911275097513758541146565499865886945288645308332543839794182098920056638245920212526921153751495167739498126002297426686267657429440414322971563135554381037846488764615861998777617624203118459664641251503207009887344324192021166116414257750605918227642259667202628397232958534194924216922621207458258291259430396318214293035827662355469264294776405508042301442231713002206120361113680886057772736901747534966740328059157707186069005335341309888455803392817253729071064080776478302174071789567224238737110160014539206999916862141041786310343948372863621537146731390912708877867565915286756676902016564977611007655972187837390012904569654024811198563574939119304004139468085896680569366722409401102248151538601136723031076388430714501551720545512457458710794798774643862116025292677074625814682623238514416314974857763965204750438603314226295576207510076593297668966171391189627081508150698008303365581937380744694427019540556313199870860627015361679857142765370981648682090122635574497871886096405599514771299555372266308833337340837930952481774587523701774425378235633847328457810283056866078220697938483512035397732328078235147669417443718174490879781877919935979454767664299875168375812831393916650141895449458723578193928448380671896404494628056195502737964844663133682773337349909011844333912972309223762539858347237255518648678387850553035278952059179985475439818116539123109565368205737615660116919124675038311967543338104295282291038991359330122973742481642328287967798435579986515435172344563528189618551846617419628449172636324276137069102601657956278622171580579438646900541830807471568394056731996480123184481645568492439973684717483084023449117820147670400535271798916471709987447118978861613801709428446006676651343412775819274769708650295652537864738831228467534587696350176118652089171067029693626050040907681884536075779687074985133375983790243970373165466689597664047958402820482355318531831319228080600404846682964276150354586391550997647591763939294689202327859102064811011128573817620065695184094167119320026349420214648342486465686673830615858299429371437655333220630636286230176227756860349958361566280162431829328314112361314268536575134491232550107294381759228306625489301606008510280207100874954616347484603780804975697457168186919892664139901673318964929832274258694098948584746296388086905189227572771218019802794092296009043581785386084272567680361589240103377041387083064206950834098637899393524614006787436181823371758653696500556702018352236807847849947505261349672388799059185469822967049938696183834613118472118839954849814366298544753881821545060216165080608897388303520391458467437222257693605092491228623733825206675591193374367439210203231642330497327947968575997371414706792026666283803248450908957399436417512091795137578655048342395860850769985787591906105295286615529080855753174892183705445570001296282937630842258188513682241944945079413608600639723830663075027679476695130060877985138487795559357197509684168249827480023156448873271649096768570830963150710855917224796894939689534814135060747643746114097326397788736448831067026747072108485887320768239450431243938840938972027168482726995816042143243944034070441104163239017429757084003892030989478139357866288788438200776606605488372292008905685174097517577215748798142214550364036253339778977838323329024889115227227977264273298425266598489353031444063424890582590473689358581166023318546080923055447058031277297115873511719442216002724276469097629182754683429913889552084341113731118034959026268393946872523270002406187692399529480486760486527428044870113838980082088355578644392895577214302969334305463570267091221194753433151528132414839629834470853770683561604742876459808938073031861773625275933591692568460879109564274513561536418467468556355497238612551145914577343547174007544711279121542384360632085461559167620428645098286344359974426004566085213810632907440021001057389358708120236939832377045389507397311699132127874783810020580779857256989272322983615103030877507536635291975700857775391065857506184748171440014652323720283077714923200140689726534002187831028802282479119803854454899934677678198114885747550910943731755157112241893094055946502176853800064970689564571224224861526893795195797121762821589702354577182490916898463433746694524084737505048918225425170195628005068986431377196737857361652206056880861753989250706533096530255940264229040354692424803524993156292631777724801343997429443653902417242801919186590512332827054396277962674357069610798045862416706292288605997917157204672933035357419535383146520847635421945940067429159858715272322829202077022135224323446171835784365259808735990780519812081194793752735130440585196819894604408545554829649142762004094487017415186866540065444727051123835057185118028025898667467769467864959756190541500033618112411262329135273753326234993570392375542273462558911855863114137897582377865707902773475132332682546678029681832552366770749825874474815300286530436929130594702734213529647450361613895203651344969776464535169566981641364651329221510084655093901750112260121856164641661573001534339674191416581276581738833786742495821524045048992372084219727272074087645973435890025185170946073962630829658531670857159820934225511532348187294673574855490278943009288087005067591739545215881709852297953007657934005732468207228520276345200430286209355522062750486145928996059359616071932975411899623936665944858342645385181778239921973058335468290765706104356689389023000863750759209793237081579814348871011496223960371154469856796822192225031747818911990009505985958847821153840930293417518687267538229166234641480181435819681148138972446231615695680698094373443540407070428676099056769737304961916133300225896091141252177377834165018538046560669495218248631802070291521598797414456243015775110125697435162097926234133997767527122639353081052430863015932013226576016646461946296711174816001540226000476889728325660947180654820241105446214214051227449658650176027350676720838179227284534996795415696107438951087550411597861467978584471662010031171331753010642733639555120405318944944116778036048940714924318558723360358811999148731169703900066325171791132536005598904693032499934139083357256696747035783011986976739933844620677164423699053879461705535200236592718388577323371165964531994599645659695849240073805611558477655317211689341185286080017539001924660060143680514499673378649519060919752849673622765490814458232426614144187246471212013817012044756210847426038341467848111065184432656350602678113833335661411236133838271236024281483530067068245374658137316978308719842078475362168695032539358085202552354955037588521577459779677665708430503884004883281792573718914484236165515561715531305360315982848024447924528151670920503820916298290803912572834146698797533627221237639623391689581050570907905765675191180038436426344856238494863738859597468405304887718398967976018754288876224098419690130747577924598712264027175747306984483632620841982357457101252773462922159089827130343020582239550821427181460748482201993365486469816425991224279894670034157909524460416024904451229212814854708349439747525504470705250582270161344979866438661003081762200492181073057638051143193857305291794050435289941644936182623966886929543055631804172302715483950149590100625092687706445360370703567825517269890574692398507819608563295518565252405970982666418049249631407774798480989394968746260286295070804463640986025842742521697283172845104910811231315232232906839124566782938623071262936563695894747187329471404284766532206842070273755723433609375368209857674202852873181769925369487743571911762953081069862773973543244204505057948173757969908437938790911489006167590981797311492262477825551399722756289067782851971460752789926156958897422472915473968887577135234597960485907020807936535983728082511206113032254201740396295798009669382895192343885222160407882720911179408367519403530992605236073927909537401965711804159099376005931487977625372380269659848511470181849065610361240142014316191108577398192864976885052172517237837849532150561760626037593792333175008826090670225513855632895295177498341199923176818548199643101262667428173284087669315847389890868368251486564168239325854306517475758057023638780005339250601483280290099937514694519551460613792565385571087675777102688964646754319331519943244063367089749980655399963380200994891044777873285316954225152889650660074735633033902287760009476960769170877345195045621098570017990236991694842173494283649619503398168321155804014449244395944826238844681494780317002403345305290106264891138167298407970942536566054211642549587250212764130488120339652444678796146718506834921048733020048074577006019070110282119260646475091796736618038194236426880264261334240468274339227794580005019811751786635731828468736232138395054825988574496619758664552691446037615506920809117476326179237121367671780308202057001792361067742827717640167597221093564859063235071155403216554993535556530420038641101093060773427743524252473206702723779342000577436313071270230590397024201848023921949388685116709201533382075377467422011851874270185241953186665725659438039671346292953063460364516503193581242549410390635875581066599569112558222094272987794711692938888265244440916878131408027214696919879517961777736422562697062433089425964475138813478243175389280089633955328973998694493815847292698384745015014739472964759536720373895911656446627044201972798203665795832413630351555974432829311318420858291126096453031151260317717960350814225126823799334622657608822837797163921086248754526311410872907639935092946276022368595655040232881101660523662911495534293201173178820371722993385193774207509398659719707424420517112886887295061347381340229155514074972694154262919471714568030033979279198547597903786014699779828486030002356749909458325191135269632104127508242633437529643072779237239690280524689254661140769137218033188730118422604952671635706456215070372039489484490919427540427660522732034467132070431784142434922516885876648923183906698285409115785250865802557212581984442774816085382525255610508395333494903595503501899216900927178689066298942701162542087024773566421710679930367109194402609693518453818948448496389891233810260633441374958525795243858272586573225783131247837929208661481972822169087947181119509949872855780318117467228473207458603368558529804351276638180486698246752272596101730875434949784491727894383558601257688710820282868451344612497707667445801318806742437676897738696098959849193270254678986526378270229731625516770707482645221142971114792866535439000105601744202237423490427082474873075541527256373508203053002447799373506760357754859525567518671179057111310282377445440543691283168383801357224623991022440596164371370710123395498703413459098083689132532468795530957427798079734333658553735914878874606529651336614886907561975061430926414276495655206100558000319167726856126240165682597969279957402267651919414445662363137614460722063606297943934309563417156841755026142852090438207372155569324813651648804561779216185073180103295244869586198323770245537425422758648438249704069868165221005667803189588618511224427623011654248478401695515815377435753593491478641433539537927202038787993733570213938564054661644855208291783394847018985972107241061498669536470768468207284797935638316630820312356770054334824744475225249781083876142263468843927625086797700295015241350564729786363255348258862048626059561812341878771542619946654902215228103335967390141978178428215860990994582141375301099629175191003735055963783284497458482574741453814801318100002399680537953607720941046232709297534352535886094411118640519391509972374270826347420534136528600221445985379323199973170434563998201924511954864523853101378001598079163056811483933009185517770052725331097123634574565032331760547157214250956846258308086674853461235085743856625875167127030330268509458793685010756292587847703651835286820016599151784772583415213899669983951881893717529202987902628876218462802401646182048345409023607516219531705638822529253186865602726988072208917384677186332303689129888472454544081852664588054922140336631771750758090620868999178637648688330095736768461186398136119565615131902712086482595102904152234519390649817592008852749919246115257531828014839455004769770793916334891487425429639705834011650349689831693294984055189755902820344789274618335401522476640841190972764480162280231352866347138024779404744742570393963840388573945018534337278315895228288613993443382059498723959690241083989399861698498478745238496971795269513665728869725466044224240760672262111809214219575406438496561341418908789139089763853878920831529713411171476861618575090010129338577006078945589103728784107594179774269931563242626307723293915592808276242116120088602218887072903207312338241565434962580222222379926833366250226864999414149928929075640256135740618127026474669694984537588880083043052963792434609877059888266948441296657758807777089050682986100276481708632285067332622761718216851506193945610985039597712669115518272083945565894698361606577586404099970361407191661714908964313863911429972794304497010033432358487910272535715217988290682696220634117173560076940051454739091359137154044597696695635344310233624931733407360058461552980292106556619986957304340420652954908668245888756902156669972340792474832903775124812236546280149249326252325990396492983281040053632251079923791016317089489217090359012624487295935140326299926571328042043652774451326372464740506419733688622869349205950956659297265217375169166665711677929130771714282010582206513793000558672386416658295124585378775900291154352472004767677089958411021920829695482824832384873194996099373985306548820708097769235331398543845061367677345609386918756618596964611066367471894634334871089426941588608611830127776262943218450874586510105062676714173051836119852360552165503552374881345021353303577497442955695774601890112031549681280489871834678980299476507428470811672406247700458555029837386548156871420137950701597428818907217179460246754535086651436303245686708797731623213717638835561974755405996120695744678077643334613236309783878795147631627821462111275025599883784426476712021341714000051075059786511335325265708638805113879161024237148838909841179701226318529865404282816437774390362149544691563801435298841418379337370810697178259128145088539280916304506400391845491628458042725544824321998324256867529936715436557131519974385301153300854090362084035558825531459339971512857345157679153025023057498298694296145364245044809420046573229216716208640949221218889866571169935292342563789223949929202718938717242591444356624886852941108709787283334182130406878601735593002974465397974340511616826878326067792069303396158394349144270048611180933445535642796663499104778949337016083614713044140184930341292836451721419080526230443071965221025242216524456208002198488436938556906041065086120453305457392781601723124246947493953162932423531107399296220727859652514860323464520918442670975537277431521760297837908938772602437953949997688335568026042372701122691604668917482947868683575176727022498772506813493107955959994851602585869211242096638822458501549813802918888556653278526717234581579021245412174834257158806557636830703026886777689983508382729582492092939862941586527781229011029906504645159912241508287635240088000860276703587122361874348222969545419677508604341487994799937517365077175307405941488092211464292772845486720036754618774321850253968612515648626673437420856988368788556507055854731423284339670802819823447978158773115380997619009210766784750407127484224135941727464611074799807758966485329699756313863510373865613414959039750085899483315351264438622652648904201074880173339255090114663822432639506706701759220546699590511530138810857374069970331366843417357270338291955231222469885880372290039090191205788784429573172351109877994861896785560724975078879313648185675700299215353174951373888918628022560444242075105052811920324605231044104895289612176303999208757285167103246223652156739309546968754740750818647838657938867430756130193010581148372360823284058449735790019611391590919214622427218769903533731579975978750654329090120015232658496086149539842743096396763562275363242760548701656397359324901972986184582992924706940680577987537753527492502539792143235599368640674264626784202982469782873277882994720254913474056605165957531055787726238475386166395322335027898440071568935832972043996744113128541461383600866713094051401021409061832958647010453047665551424086757799599657803647784451395399734383712627869197752915231315161976983419722780918197685858467817698748185245648513297148757999422041508865079095514354984821589255529547561120077875137125797373066601244645098465664935534298386675950083559727926725467332303163121878134060031410348098695402245231886248294182359765720997687236318133027421462229829425625729437097522307905873104829971186820721507731898898835672510290694630634787535495490925774110442969723668700648212903108274489134612701131272835984642276025647039132164541810107142351699126383502402769275016343780706560335104954262946963030910373670430659168996369890201771580330762386287539566422313978368496399197819571644265944004264457999146800600243982091309201064941741755803973685806736631835899815250078458997743070165403508656352661131917863829759810686545433795635794207117156142948060407793013261371724566421715145974727570285933435650347537519955770285789149243800575782243701153834366421686065866003515506124919339758772839118476543898104672863087041048803657638226601407460472069165340606591647493928264038035091746747327808979084865671397501794614113188840069672757803631526620374319243497394496351670467758138247295270895774167661828448319707742267659612744961115572779837782177989689059651328972133381655221272273122951643445449264798836263100915439914310578565174183996271094638990341990404048172384542153020686487952095804305470587844430316904601072355788124650894035543542717557616629288815762641946519165278297518152276219505984385500685302887018648071020848441646749289471321611025269295275466934968131051422735572327357091977779487186252224344249409080477413498171467089674600247394937660902742037693054955305445809136478653666414449256892631468224963415285279146569778852997998166476836730678689130934388226647675484367594739740974765068915798872512615663832497155234132739771949837107366527242483101593941326942081269465885879285404258969170220561176493383789454522957894756352931575913809620256140442379693801414673975510034271500452006565356320845337578570142520353296479048673482250971327087219396387158222513064759201187644263460509106408693864248229012431854134339035290472464237414570601161585572776258596023410850641421505258248492250785448354121103861544295266216857630442681624328798480573179229393644921633095550229437058542253198028456667469202870161285554084586438435825553067667777354816823776638167168407099027699271104431313678604425602134812600691090794621362237183880643392709981895165326284148680397798778986114468907718389131150893406727412365878299852361736722797610958560575239674846241416023195664318253501594728508270910837938189979931435022386574167103885689479889374218759407463196899182106216176467787337188368042518508874225887826919353587595527802382642117388835819304604554725857804334846491666411602010105329471018298977210472443053820032237081508536907729789464071582159169426223680012703931895055185031151195621895281792309422173561336298227508100042458241868069683067415051009029369378127323543124680658110166139163875650529147342093005498576167144741188837036531463550328153724308478871481205367466561134805791351771226852461194936251415263994002158958952879068811328162431360022744614919211045068095502010855843487955845658982570040069816520865456263696134716708562203483555372915382700924681352419833064834833927501608224428887662801871065355985480972878400206941079343566972409781417768998619038603425238718443577655171479824289654087008267110004154209203445590714620375003265752025767732747765728809904422477877884521085503124238251618114078597272339013459573700751285924223069557093776590552081676154439733132989896351959652474879824698493923767566393194545407581047870873760680666219286064215382121940968409498994552608947153625269435687124527331156826228165034957952536789740726570778106650008869332811057582552393150126472633878186873571520102155128171508492639346571689838946097005337741006523891567408937689915316847551111576185651225931875849656330040273870162797138621365550356772411465586780979712738655354857415154614408345056990098995692872008878848330582541371343393812702437602299006188232948495126548536554681648775442971383301764143899874589852909685326419858718042171319500424483608166835910573623145588236232274920392459796694535515092800375479808800471214514415742985164275684368574969169941910649298896776562380201727261489421559480508207425288424727671285415774733889058631501105724021676687227623380198872668504877271989093793317046203147533407423648366401383666142275522024646800955667045977666091994422095881650539682779068497023539413334279820321681999882876318807546287060069032787064941697063977810040414586292051745238970650613427326271571965452640510159473793011244661311871026353871807741584315010206270398693519010413582124769758729545489236867119871777161949579856817690205091939987541195543884515676667370843455189531529465779825318904686414020399968965200235887714799885633815302602377632744801530253616502157948574038964911922415136297063600916504233108881526971788560931202834272515754043734395930185140984290767436143731022576127602629931683685765393356669359947662707503731329807750520513591102391097059865955293621937255692572133055325187675308833493009936987442733069535965967045081897042661537714990417894173855155850530093079468558292337252595750390675457585783584251139373291844650687395053399639266748183307942808437045842359758065308320018861801852415003924392099268831091487374473666509341396449464608979979285414392392366644268740977829747669509651025748365902482326728272783730618711326581169721946140290185839003008826593310088233433261474508243428750743857112956805552173558786846984843840894894741999761909450384110795640603027550074564709003064279690180801202252562088382429721983892969887505503277720305170360469058459250126391419039908244131440897144895026338742223427891985373194886991991499492044607852564264904198249843961062123026870376094172639912417825820430144890561650397640575299112477154430297674786883080706627704148351556893335716105902528427790101318754825306867566881213387182573627413012677625060582605784751776380942874383359013834414443814460361684521011092778103757744178689877235949082865072475262913433988716511318560644247764269364194090803159043491270631658761642756372527603563383846128083617717795162562889532359099095558974570198751672325720703710548010825638709346000523264799451941709935286024909697136223085572141529307193151673773236904582244681047514208746162354909048140613019384766398576665093345781547908096099552823620237532509845599041278845118082992264547685391077882307903683223856829546633171747240100552889043190329535841120096297881229485874006219959914821147379884739863080363554204570356923779495458130361932463247443808588185903976191954450609571798312388450573583341824676514214554828135926184326129690141768670913272122180925875693047609207567785515782422579970735799849356044555601884894864367021615686276292775493347803288077521619622523365092002898731462058449021762964694658064391321234989251865859372662755957950544648513631966877656457247628984193375923384097389783527744446133193296970439695588375698183254210808365397499512340100765608894369766986180874754426825250593498468048200122206730467884603431203072271733070615609375074697363705230920743919667106827540956627204948203938765387929045161906091244344829795195759856811374659228341738925806868881666254658943933039681238136947760822506753667887282733616845005582755485760062661131966411122791864809415553879237926323272116252635174318181972054163588826545736240677411988271488874622366756903183680891488615856603950507679949200721798051661362440232179607940191075722704782753606275904713689913225358856813953497279256668923212172911737380928280102767667528556587052216875104625986091292322686743774476171441675529117437564445039657019081635214591528717079007853580579327979615469046995847362860238558265676806891077464866028896934621929076635456284430368255143610219535411188225145752853725700958884111881824259424188415582283589801609107818722465894569267032697860560426204144351368352680946639307464538519516624428999229141591371836130373299519981838248541586422615621977298519441144124932958857447726628329629901616635203595463269667041343257780111664457884917644210618571047393902037138726882470861039095076183821339874476617590853813726845187533604074351481358008822092136450773330881342873912041891761683251011469766948699268177448323180535688963100747973955116891373690838828171717069644649575439939799200910689479346360013113371522513149108461725101194779138068363702411304597726813564805753728875816128715964048008238114946794175755202374732565970980736238316087369492827803348555645348087164172778232276334629060734728414594700089833195225662715086169820309866115491217231453123575247263976377329981467167826074546427332052489643247634274811016597795898485732141244386943292941539533725169615902296836716454232786796659107369593380751776656010189530985691001602530192856882734007244706965581079999288126563067354216655489362682845303068794149746185035154432191502859223917075866871100877545421879658520076060978967198441290552083148807622752496212363508548850807582423187851930778110354984037749858420303597096004007739695474434575821929530155800272585508992756610725381940250519949206762580988645793006612686355647917761285909234493262909803945762168590738311523014160916512284131479807346212654108185939015887121463960471832492520381299137794622023028232993881912210283565011894138149438900854856895467318195769701667214092013395255724348160636919149345440156914727702240373452318575324201760663082804092135292903585188198138569084800267157699293143287911569861016613613477101712255195364009411876036837094255585818498786060436671648051347874969660745692135081288113464647114971827819956219419641157327941104652920638061041611921359933088425770605503126232008445650432945160130319413699834298288440996917348231047234762335119392213158305276577633304461714939790003777539106334619108965403051645045578716990041432565076060003415368894917491490543651610457990252988448425846351168123926595850986781008423948422964752022701585282789169484456578026842368917143412903754436027629598124896791648376018706317599164209707204110108325917358044060254627788131812689604469434112010318566684901872568171302042550659273537506233295265289744241179362453605466597264540176604209203400161049795217397373037102625438139941521544615454893469235169624852899810676369678604765708661827429311158031674319373648013266260319544334055332780771208865168710566535606207824588040034611387063361488860224901920076085770023446083213354440110343417569407436574048282549655473858528577576292510306603115202887900241805845495673361623396094015379142807208081445607007001409550611887657100578238994646816899788624619323305997889384532633889345246108121162870865453318980822669866304532559957888312863401278350623523770432759555633696868358208369251561964502748435344616698997952102087473670947349251273023431552809619995890088759090509260992042334150099770836826642149395893968918180574894378741841807143772512325290982880899493238461877858868608339741270576529803646911402491101720791666207985270656398380358298012897775742928907690837729129601255801878559271940976791981430584554118547132948474138325989103935744338940737990442819516118016696594757649824771764199733788953763160582676700243224531990693463854416238845891580333883905404811185011431583898876087192727929908610477154440066908233185301824972075006582795585595026837810857619667325611088055927212711140182104972880255145323932343693488705624704522439603873155574961756808456343772387498159982500154708387439495701855113030893592027520230100830688257276211160543920657528887332946366667293726589520513661661696458857842450667025022950743994416376085345094343858066012708540627500140399991471898420746915014809245561327666134434996873337853672960405469547050102438016663145492310069369274239831260127595433487043238261809943428813303526626028316609374873799248258041736815214070326579549624219231020176106150018284059857773586327449636790320604632323071461456063762160378045993727006796478197904622416971709434932150571261303596929777738721741731093250922961866557165882608558190882429248606485704897939033747115518160287003853159604922075680588155201803471471094140978877464183971639973804459075560365448864464558532116065481768333699663768403136968088199357102662165637596072272602297693143822323391876123735640123418045705751939674711542478296747498537158567709486630979808509756198975975207907350551188524186956635231113455929859169585957161915050377852260592655083367733918895733608258227299274554275485598651273924838407423971106838584457732149462475373600294080682323713937233483442937665775054641772346871826204124348837965150538858198462068304075211218572766293157264192571869497381512512825253839284401395154590191483587026597768124271282219416247027456766972885706043076355036341635783310831783783779408114682596664549593055777998473227976491564113661163413880772505544662902398805739015465670782418111283536683243263249104503852432057485819055827345761161588165640074905297161636288047514638288943895611894712518698066128035229638548839781388940857743910038008650331688327722757116626041897295322746460099621081415483180207924567778731448776490728086620495222614262436738862344988481883155857459142154276151021770465411745748076209347774927838469606712861282461041419224210035893285914558994834877981208111140217352820969560377904147204957548215230508787593023159669895604097659485373471444373099703430101724315350439612678240109330407761238241064880100479109398503642554400780163387023309980955687534232143666452232729716936463080003708998215752589698075748317544331694225254227230528458432177458757126239831738019585270345660519326222978372827657878539324887974879877050148488450025685199908062843752370945792782839216820031727065596385213307846992263916953473090454754516051330642706048914865424794477531129226185564058857289987212925263104464842149744827818421727132352130283788656829736944317941791773699209259631025574766746274226984942944409386572653528903189987553892680947359877586848523580477859468008438812568346570128326080432379808171414473266925138861922447103248430756242940568637161174131737974397169743734697661143085230691026271755756513905244415815881530172156598222971371417387845607995145417547451877718675592878178970329685613442581840277350449587730243582048943209591433769624266117182970375010012398046330262964052513662880944542801649127501034178299712532983563080649775587487098800141343328082090535420114056367351962919480195182315491108772183645254521158294265079731984993388398677341825189849488059621030225364116009672242508216076325666857911819060660397510332642816432762198980053792869436663496595803369797045433024182550641703363117628569864186217964193556591396924185910646174960887432925612131227877225878783233338358998384703265616427315292628433055268275039214352907560507683083906759295445849658815972147259763085924812450515211646063397942389914222882732202705952269770012296831572305317159168210827443082281442608106282843172101628072552814608556242101957634511284759868426212739337411212469482043580540785608740131443506933238863878867717256914606042398517543915040676683559342238966462861603513446067031681669122048584626769596065417919230506417584110178527639252835042473806086304974375585746965286583801580251275117629673223579514281966701679681027695296686209663245369951497379967513306674322702682988960897840746409705931257904601028689344349022463490802609203810677036556754262494658272436351143097346823334658450059567977875342330680418349016854310603472119771748310607746983603822110061010754167556535536703771089521496226693044863747830094050553995835108852860619637685319246537607253555513381820395031369586086091253275625787454801174092816657963702698840598396063408101278287759329363768784275977952050271529410872240333883308538843176669517384342702246689827287800604378577095655821463887747837816711141361358453645468757093412540314730115712421637315303545981367411694879341964847205308605077569048442144156105876267340710929722124638245440841545811387516890675992713695271824303125020954222311716329256618270370795031046388272255602683339336789434348769580279305430116223921356775715920687311965663066967570720163490434844284045351066704121227983845002100536739284767989487951255140214557019730246914426016390964743311761181452602864212771370048975409959908712376815450262528988781429090906045122158402832987437772956532973530788884538258177995762696988153908979818223201565817496092872142196247473590279452777595881067084473092191985962735215924579188900654711489945748663398270622633957896498679216507989252231565759554943682202083488632395678831319459741624082573655596856720165916300191638735100669936269276265405382905769829975551849223393742167151748783943122856043639759877421044500760183977162943251019630097697356189068825197836943843306903065472861070426305662744311500597817419020261252469918343670129408563477036833166170605103591297810091690150528594097878222325598356707171259059193379656755925664855413532721803578101068409554668958680937250500218656565212098017700266230378687250428425622981197327960051299510124271208619575585800619874615726065586254115678124921264311433793112991493020468496128892253366327253838868150552430798495109013112797409607518127475412799156719386821040893993573069644048486900502044376907372239846932452168679509898378885141485340270466286939581385645785802742246052317874121528469446491899690151840458601304211477497223248058807567692286792428469753262465065544495830810793525847808365097028331143735442828525735207372108693590926446466406060267706600815033262740780806142270873235859146357191071030713733811300025142354039617927911687312626739468610035235263709627825257282211609690993656043626161953316816665275338321800085830798393676686897241054165776621114966955369683819570213256556623092049656756896601770782979704720153499373300289782388714132720192038422695778957016755696406855877196373536315562860584809880345722269453404424233898147453858997769604053177283000320363725192719150293137844533436998381977316489386169372527452839925361260114153525835481955362091562721025901587662935394318989567826564703173966024584654180976320720100043271431312716234455127252017942419264595482875732827096907519712970012385700788590262202131922816230682106283902458448519024775072058754643691924103722041357938015100157145353716600950857841759919352486199122431918789251924394617659358625102615925755309947062719686154570380987017958568545359800901669055255265972100163342654244590059008457648773701349451223972246438120966833828381048478093679593074529339598409485331842754335043585424037551159724078640180115432636199178643973029125025824138778009197512513501671207490807487681776515731702420772043836337524964499870175062819305953511100954566783323031188245052342725551345778134901528752489672725818448823437940882431365992991115244133727711592863978227453123686004713831930475357540543559748339208047645260295653221804045189821344976294061898854672699891952112170367135077209800150222005776389575523501735354434140060934615948252156723914192490976176489274617931469070900280444047342689595076913057826398783781189064869697571225183195396693111293372245007493113449496705438789247324237360522895207810805821758697845145257671888263940134419661221274433053683834586656941404452875994417550394729049362608281538673988689344832788090809255210570226366973121878655435190069819059632061087194991365999611572231382505817712393147906786338049477590344380220803233336351247787018422045341622445973186648331620114985614331989513211438408225339889256189505073004102655701416868468559352043102275157802409722267686764858232403003673822011518276930214591856764544522956344272595385604292457336774256308682782073368279480782528211093689095514459774754946559021168033676259449026711869225452174278953511963111117674934722059751493880061601256848622523786821252787976343554551045589310157425782249188566277036001319863977594342098060123289585243075823307507221709170025520602033408860764977431879742874374668442001806839032206113776080440361322580439367231371338684673155029618214896961355453124253777010808551491343178968143763756162698777227644370855391583527395965289123875230868709877699356642500576757598347435458348533814476887541045336697796611544279555939677884358457054296259926158648559285292874631941237740565126202501783455607315596131920533524593140629838290897713582089712218964318005782998615759164651438556786604621549588380424761756620315452370921667928581960790628047668001986378775676612923125579450851596151034444803833192453594762059861542752456135340497477942960568047684239222639993103863366284793318770108875926288174249218881120559024641486150149340485265266820002830781419416344766440051149067079935888980033487312539448641306459165805516160061740534416994051743705261450060007605037225513019833432224212668847768981682470119602110854420915448958962042625003895160081881644101847800896973569469717297421399163604174393441638311583652838702486849914744943006674401885263818799443120431342749149039952577505381519002938988170923082987043701945285740105639968443573547228520517473121872245940811714932876810254928046342899460649472988527959086479412840216666390609648768883409130416081668507630859064984723545090820117118448737022840917538038178451091094054851849649018592198235569774218453350233356359882158993991081968629492515484245232915322458895385695719320473737564787153815393619495838556815343178922048267758451919502787119221826555720867918240124856521926859198067584104250806807250134706852299667309393812852799794167158409677253039726618281068099005395965020696682424630493445201959888337111958508630618648463592368085332560612156579800892494559931709623956537437454705749311879313665974363808514559538403150050135768679393553755077356337222787149279366703680435252628736698258687104367328109158883400458966425061321658584963603288626472087657307420263270114863222983163933790668769521287718678280175423066152183357268140029571251291671469472580270577470257030923141243010205640059740554470772935192535824010415682398470186608168604273408524317922651498177255575809204728763641080856833476950091086333371058066736905393417283129290125733140321591212981204259936298582500610985532944251460207522892673523431253801479845193209599094905103801583747724850252686120526524293055182219732487113137828147918201972088674410944760931875366687021724764630885158973082790803537780907256435995283090057267691479858960611329286542033925856546841643344435311831994564782542810347567579380693777050333508637996547274345323004005771252503304491225869206846108140708070112904788342978724074009440482774002690643138208679416876964555212831621181522552749369560151101774997017506873216527992102918964083977919426923890656410503427284837585846377754932520543085882180786642532051669912432547022638578141077406611595435391189540728111320204255612683068879728092110619511733819325137456994067614135127426186209151844365361260941250144958008919104502379009350112185879139730492235177168009804444170736795334125964650426707426571446360796395246845890697281852901370697983545688210131240633681885491093845317614191141350188328930544732586791792523613783532146998123939608394983383518142889213381930346835946987170767180733736515795711734033852531393602638427574180948804401231742301868017436729260948862784597407260031117277665687822645396464302271650981888219411398231895900995098536522563982454258409618643793989134913437044803652376286344339950441266205670831544465808295553480527574376432702502518043968046142503102916664203605615866736964531493551831987297447829245096536871693231186617751902046287731658813135024122072253055371091095670321589823046666778307642641705621811854238789245886390454076870851526057870828566716274087452993863233740672396250491551283707107746487696258468155153014022502385862020417214259295199425252056792139478608535181771002353458016095134175727392395424140391668002072735920323737759879393676520650664457542914352737600080160881315322627277094627397230405508773456045298071463247720725592723858599336914365620806448009569439503213864098655329625820095930826167468125723217310290930931188449715362552737288201738462219549244374970298440366074174899175959327320782583349290165344274137871136095624622965556295631898951750878718886902249388377544186853251561120120171638117226874708036526762851058056075268927233465514311178917084595485350643960229994612961704098965979185363958024031507687936839594153826847651185136111184852748435543118759461014801216141889197371744614511580946909669267545899297101333148036617526395195798787100097219580797441511289532284414142694415532695378698164740837192554823368625783244733955529489552471820536710478225530208858534062731206775790774533715081856994251841451072178520984903205241018095474996423414949185828035686578684468367577637530136485339107135625862300992517730112887370463133231862903700353904689472419041926960451102924634367044480480704275578574285560663599017167761245617028038310185268838096434780493391602636616001518465430984257197996853806284411553498844664058011805596030183131731232269540748824153297519822835320802077466878761387536895143008645730334851254006904792084233651450166989267730715081947853289239871364566757660551844895088576786446609851210638799711178839401120292303227588322803721486102140518141298331443505547024512428074403044472113509500099003211390978743886047812679047147601410191135762871953012040375331361265654847667324012627426361301897398398867234260106824855411484915812886449891805992742857312643292776770207226235381273443871443837664399479950767002067865615188054844173946314182236625988444563761817426268209810669992514701341846051398877573023065890245566735305131000006147663877134215852835543931520440555195533032068482078222085404367999471956469095169809497427211975601824571400490274087806952236169741182333707947012056674821942013492742213173326632193861925013441026560487383659012934587527180344302253345063317706664461551370628361345243528958772822801843807415285720549851320133908907800448299906508937012435417547707284998780229248418287056722785174031574745930771716320337961916167165287497129512984567649411867741273331376378911740628188871563254123915576601615069354381560152252034789073939454120647214118652515519057805646871573329230105658456614034700089685482588102900684600670311408017870207626345931754314239038492075054467664723232847529660276876356617454303255492154599438184291801927385042336291235737402139910879892306703683748246807643207155571974492858393011241134459050287833605054029402137468567694903223304536396769059706515205344528849154586190310590833095887714906765679858170409104598101240702585937297154327638200535071329027468145778158708059360058761421388240532919052674355169524416650759736650936032063754069360159417442258235823057213637144984537390113066775350272297139009462347514771891976367228864764640322929766908562661790022577771504652956872355921625641205843004963749770114024520432467011760479077951574230684389000549258039270736739844552813503356321939067042951475216365761432186727384603249240577230956651964001502950115490425505099422964090429395166721849937942034410225893014848851534360658905577462064010309789880314037926631522760073154298786627423344129786197615647870341973152526799607587574309412202266414541815935878530102838774765636772905608196786849630044455668736705351216422979146311321606441636211186072515935409795056279539016383657797015358581608941434513727092908292742563426600376423939056344901081856989762374292962180065675396806684301970127918029512166198448506286159107231683409247983543731066982696280651741135399919337287150985696806902033861693803476200505440161834201640331809735385265301337411849631695575435311463824251703507972220382505470549970369508514701103101090607363719103790498454830639017239341897283485668398745309229917445569414962386770820533669833097576306875534740940971223113056705419339592144809680492329016980452060282018761150105257960530675163231384796083895076749157617636109390857810205016635200707401827664515382060528855996503611308421782678448904457599788356711685624240392634364247913511819903425027842906355095721835486856423169259442587447458569415668344645407352445072264747176276155989648686381342108850693053797649392034425531318119089988270629611865997920170531976523725603706461146763865539692729262650356210893418514182156486468464763403495649288771080881080149193970758502450679101506240064742949371460806735049352618506383580904864425220092093904559293284133098616087928689244433386853851912717135988351757244544922470020170677334322670186248380270470330614355604032345291457083717912318909005576267104641375147024586498066754658191385308696130601613733984772071107771696502928492134380592755487154589174587344301687800422094318809392111357177196027629860437516484520710983452588626576736276144787552532244344781345767208937661357507562795908704657360000313136577990249125974221557248980087222680350347440552853106238283094098982130347462257498303606976070409602265538838249382594862771520647642549850521224345100403574148343208647222789094101172864007573490320206293044810081366914352556343687696890324239987882826756499827986660736357851441254769548715887639013557535831763059113591791687508319808586412502454831615496869660716257462017961479434300235589162948102880112411297847910127103561879657458613185778281780605561451583365555815593301889338753988855583512296571490993708335613493703511865929115469929336348540224660107828698738071854171546544816833307573443659092235304405999361676183110861802485400376089661131257277785408392389172920300629893369071912727235717263673103365276048861015530089026850603832666538803077209168920152620558285053160548258268787999658052972863719684262960955216669035455472574159601573837537047476260818935879649640752023481068555975562036801814559493277590077231741214970126451840826540856926347843401257638546153358671551469795048539941289404035086524339329755418019563206557287639762422454870800185751712853137568149380113069370028809070058258649106346208392127916735615356411529921994654373238996106184685278743010191565723605568731545641352765371020111232285026037973132054793667704923072798717491589599244454649206474548160660847056161139715843411500014784429136116935534130115570001379069061521891003720448706438928759402405458377951689684484159026144151321525083690925732899717485859802935015365837293855075496473900229891103814347482654962320437227500215000289856196220263817957792408681304377986191092581337020364810781557282087319943072915183479264732528231348237489365554873285580281244322715115714518208683752588739419509604762863364661333160198363591505353283660075023205844371571389975068117070152010805837134751163910611700038953377197263518734473923027425254706384259223928166321548103277394369890473169483987600105488269967014459600416424548549490532935399132115449272209863463047198671028594760473830029427167935344965564571927474817930726740940496955181578920899133563601802880223182616016516945592623213616185555306720591927466091858059875199129235712577173482444040392384159538170203456651862633358977173176132678117201828633091911271918548290354857218919184163690491793400064585232041539382339823401781577520741968546137933977237668218391141209059197281873922316342515442392140250251925525448677624472470478593257495813166416244862352305189980564191639061888364156158126695535347454473506464994554352420268574524139937761690359882278397682633799001611195420895590996480584099917120866573122481240666025114190961477017023688539765408057519949379879697499234526978736812349089528127401491968780370054400366707922002624966649531955038406496525752268446757292188318371375132321086522982591501259813371859048177449469775563611950259943061165159114366786911454089505115187171283194038965917283382801944520673687666539000240034756442626911671782095841815643815901035938623658233303929244727343563719736485766601568769524527398484521501275930725763391838771953379196095921617164751812600482122215021297970147765572803325976068197981576528537752535729402927345065234435092613327201125663744539204823275532020652841542536517824477239501163665060851194256098897734200502089335521018352975742292116964638189265667037875929772995068021327895239999326013031738008864927441133367200132427232500724797653534343151735487641903512481916241586126524389155588922491390740519722001358092128118186137606538712489613307372417455301085099955392847387573889884170057660409693110876632139297067198622795068109359496479851488084966857205658027229644255208686981371840899286159543219417731864383181603165016941182937588154178562008599459500772265188774439360946199128981739199062986179638944661394033630699354316502165768838804814507383262014359449404213653118090430275252139404538197535458140028782082734480738244527584240677698905066819351479706335348834301758630703558245380974089371098109618853886675808385728190956877071961980361290383177198407107161413714270599856890934912088664548838154705687060437530107312037756635987258895997679549604459479753062635570745402859472763903587897696459170773927972850222779052987340428287232802594886931024871195231753450211182231039178134848855103505574016773849965053452550057040816622770562536554889536293885385057393146290157790355379141637307348944088037630333624256058291945098927971383960386442707556465026139551465793459310859731314318945484812848240844729111948671588941584740551680804829573434515606605335633537760435249686549287086132705428169116012856595465003793947325882814228666836583229418184593402691589607893819427662830995262597743417803400857113839822397199187187366857414173406251195031762624232531557981422217905885227570425072721435029845557377346453418685945916006816110790862121413344698156371993131231654625226513950713288265794229662732105887958185198797049700996721442497975252203998244510975981071209340600311900396245544904595362202923196573694977129887539236479540997875825403524374329057932277792123201587277500248871136087002587642671703492991646470280891617865715323663721717427570877081564338758774705416229660139798479530692148158477676788711476813011426309540543551217771578160786581312234438558543293163943003493134551249470988831555462840206460767821656225256541994221651713352191243111970368004805791114007640895296939308787063660507289144289517746789118337109021640231352182319133291952089913578190647483362528857109885467277767183393105910770296903391432702321128936843947252126297342463372466293808757605642414702043467635916681759140694338112953843820284396358676108726988870046471499830649941478806301028965931753462905441240013126249256247617646338903022961221466798340574843629935522180621223094289763633781065174339610547280384521378366918783821631605537991258115042643131675949617885718801573946209327181928469523561555964200832776337898905640059187109787440029492941835722607400090090727033029502424572985460405780683094929361427878975719016549885492457229427736348407895588442352714760383147014619632304254545191043796082457948087491507543150235434136653517606808707340195096653828787028734942563585858721298142067135095016957542387279668058853071807155488826618355511124904138073446527170715256096073267523102986925784946490422393492802566305000585393795046608479033080220897182227689238615398838638677566727957067706383283959548597263832266640727337660501209667739440803257220687377479869922709109243106237414441182688956621481956538266387669734471301820733990987703080129949096358448329133877153313769715383879785669482425139682000349705384082581231368010765884881090563919000160008792940958858394619494347434963139702679899569251828201097775011310549015384862355893112652973272585094318983214010419612878722322309593909181267767892326869912844920066750084022669829906233197511940756210720407852703466354786634475305518330878572225719166057719866094942152392375539968371871827769481437024406610532229112493811090668441365957495718610671637617637303331948590866707544821031506195928723250495336776487563690113112791798201053160287445966604111647034707954611388603687637388246741579934505211050676658565784950626800905152203508614121733337059662280122774075043684770092027297166612795479162721269886807800812021908598927951974652854800631409229150038272718630208876612163103100414091792004369685607319802602391702770235257560164980432542853215967347423965798479309797504571014875853511171620116325203145461761634175629141341101057988265641522862205653988310731110570218021909588691129973322038486597311797176186623011503682520661468968829040026893917932934741213101855548205876389230956587398026618118399405793360856181315101892070654228802464247267686783940839317228838121692580449063330261666395356406632671215110901356098788221854350619857216861137757080179932317641602584459617315283550268280991241421823157420038306597773457442401327633559922392926458948479120099378990962401608245450727595934940463270115440411361137995306229838722121040459214413862240504172958023144509015379878105095036487222055059868610940737901026956105212226567879679393761434734257799906518155358594985397204685229095770124452283128774928647093083738226854421618025872456700383605634271698009540266933445266699678415403644738136799168581168940882163483737351689242485176232723757461260572907170481542096102659414159762932175475237541740083585177966109794031673610958502753427347199486373762499724979581661023204819792379494234627426293437054112391404858729071411680802935302842420473043903011554597375187222829387936894251562403142366703445833273214748561233028028654089277201270510138395591502959772711723564507626243046059352738479762268543345980515554587908520303032857652251061417199858436679691142810402691570569100462495583239608619062439171350714095897331301045324964712071225465009438939746056562299071752496770528818814338185318057249000208762928140574637874461983306184998407677525525887333378013945688126060055940643483223885488410912065669927905256681260637463923701014724488675776024936352760681768664675427289746239313406623574340629772653223167451111631481073340260133555396288665304839013443467667934752030543579974296818662752636220326874460498530345279163754890716609658071266100253881305834335036589665405631717219590548073329697732411527500575968376252487419435333386177753213782910064388723299655189283302126735671697293297334604166586707323139492364686142934722147855424145517033440024165813602993140682036388105891264303352469682168159713920263430060143222133245691468898968476716903813488393254797726552384105536943821599776271326592577019218786346621892827375657151986724501905860964390677676825276331159486233309432688125784049210436010501874179803195312355287116821141290863677373081267543799548857251573802131352094011337529884737065004978895614805018785100301951406087184389900994455458595668018443482547160812488619112280975923220233216737874838847357150839478592061367670114265429523722446960469867895475133370792866147187309003347330895958866230622786658607599468050030817068403427607697865257298449617967093482412204654999468415234782759022267068675737895606045888952540729807812781672597328915803787284656383149944173456782179657095885288784992375838618527396039546209669951049602617747443357158909804372446187372921543026591964211964263855248558303000494316826078517564991125188076358026431394569578522989033496781234130163066088219360452191347283987930260914355220509059018041005051159771834696422425433518213904867752982196354890131711412774840251883118135028068831521563069934473039846001714828056796749137902420161442661260962268705422132690933189181139798541390510221315331439223814671948367732402288944633454911750668221162036528861445465549070140649762160446482516648011439678094565433924079934447695205927158151102779329213155190655967668100069930625244638803888031155960562598759510144222877329192588189836092692130407387558001368161757778990786638090322932096486967536153178870691505521522529805890968505014867601712395298951190572416999678664622104820943093622587324449794935097152667306392190355602822908984851014935106977311332481511592841988021435998554134499444829777023681442851038346237691115431541264790515774914314853028178057018585485956848291130347219432078130509098568977117686614853097179197645165117181954672537367845822196452350619244794309309287442672001917038173243465363749901379787592187776878853456500748802863523280735099435331047021627085218071984890247066220569286460487652248339828803548348384847033342125887801228163573621667697739546070916405916478585274593071442884972522501397897394217662133660345698818259622539245690775692299523510652817968601903892854301119384902518488881712722375869250498715901873157893295480173553114315742123320177808187082554922073464603568667246902719400866598753195145381127826575568995828078548830044440694402948386559023012790404793612994129108310643810913434782604843193754745245440075038331278999129845009454971003545184095037346305357283879851736736713046200248854913014846622314617355689075197802150398942176096126021767799810403808588638280876603418868494634705741513536853715177318604345285501010285124106935886944301333023747546906151790391623615257104026605593472349448377703487576241024977360282482239410137880571701241274427828837434101525641617984610866793265431586946844799966806683259393495579378863067187883177115533809148518515131763261003515100413410157930104669824137475731813250709370267939963182224986925892821210508476679667860286101045036358314700754803607358426996486776833217500662186708629667391436860859500290975854224457949371225677278416235789591789071029854879692395561373059605648810837216750722353659292599343395798492772716160545065725415246106143981213561577538819044040486661307274618815989066076343940647434643341582830041620174417392547190582720767550054817513984305807655200225982678870784552347594897399725307198606754406501777659531232559013780007332292545525544918291332421312667947358487559032205369647044572763552066033122493078878179603890040722159401100174922123011471212977003670364759516052800129914949493038406510343792489224848286142214452530986167864700786171081559127663375262718568082261638817455370065650477148112473712903774607495810484021388168020090304993433705410395377604688745738709809406416156646991347712408714447001642184237738856230437402506607700531938341154986350172573995311201805622440465339804988553026596062721518007617544670883648888568761158849905774692731315745605732738251135592573693245390463830484454641470214664778721620248476668916550586080203893860772218477802477194609936219485642847839788810197106111428730669773952780257818094448188589162236483108734320650946276434598629901612137550147423950477499437383207764893686131718642777201435367000192248502975812189650455753944824222273436776909205388085628014065268818515571924536579637957892680127197234436404118550851375593040281704587717329860552033293077011073849830959696326021357836679433609761340053872909157868387990101422793845952419823658602717863940906347710589282110918289463879344741577726017987966003578105964529212908623253629155187026330087616676283234105560741677499152425986138336676735517084330779776782322161427076881257372046138457129456115535008345424283553997702130169626561205932406144575877670033131288566872668194415664533923118162800496624058327574260008168113607671919406408401728176486553107986329100190811641002425212446109517550602461981074552925420110107759441608887844688422753614071557445534154864510832090876702220215925640533339342450216398565584978463257927446906692994844745319868048899520673729944923743731703129004761425489827350802780815365250757533614137336898690067830742487797282895379490557527251307409204002947960970840458857231961554868067596835529355710591906999161961308217062108954716847206048883727841640830110051028157310424099716863112367524171236174196679303559482294349916533794815649432577074929667672910156762243451912687232548575896473997770213073372318825609101319379373446803379515802681263983545096404936636607023349875747970669869785839394494392883066742004034200944306159057836724742520107164995426253735062857151531772236023612534038101569105994535208123392084505126007406533958938268090256981354361981369011535224579359531188403802414469527043846391118797338224544051017079686807387637287604651699759032111128768845825359267423126742436644489948485470883418977812827515919963123999860455839539300868057889591424274314393193107210964661903585708078829297117554794213366920883043162926093822955375092194151018237349053543443826777331082667044449822419443001080139170063237379159762108091667228418001195363743595080928894659984296902586867729237863287916156052914782445203942891823646764516669748042041728109480459304840157965789400513433725856835242871263664863638473107256583802958178395027979126713897473295235983871160189488263685035999868041548734741541361327178764090995029464457206592540850098446530453587983958359287643386447392921406846655567282909972681622136818423389987026957709006541148332062199278001113743809389215568790300856906334174527470820667157201254391363964993717094100663879994237619436257556871791419588797528718836238183244441079727995630473495176677354580315721003267878021428410287120755075202695943497826361144573552226451937631752599704248289235864301174974901656498677332245958572573996134584335523791119357294867653207159906866688290678434066970330976906472410005109839597455239216504481351793158682907699331395519034854006629158521934609564842960526441972648189719950223812514437145837131004406579233730283833645392670497926985313594735454369273806231294616685690917739032318716949108538267795931224265938285849423454882224795107819917152849790768328400649988806328570156440637751396177223141668730101055013000451233614267397343948414586022789913638112742920722151463190028728763196455071403089940378176524849209968434624637774132351749140440617712695292667909156508151550546955361284509842652063126106200571797245230143222639913731169807612475541740682103258914504225869830755081850326079862567479279571396437023632631608650603007856838829581424667710763285857857677013121691496316444214751394091291691347200078897105889957716700020654103653020641645761813363969588893983592148463892361260764208423909519711983376059301878291252442509241673250552923447013569604913770177126507601795826205668245417406418608458215834376084133697031492980874906650367849331194795460502474483617669568620568427838411948402652659194851040353389137417436952859639529788122591760963000888421371654998572237610308019797658608506367530672258759321918000030650704103038269088490148335073414284048326719066770755144860456437284837421210100986490535080525134778362266501564137155081739960694565283369219274704970718094112551430886185223499542758479801847318984846915814294780748239729616731553392403958693015515875696263070539383851804532459972316569318285226450359654779553508039070975217102164038763576844272009262901245940599470120725487490032371177159259947408597352148038475699263415129245210642669882053356075586413486466423187000412143970001913331783780698157103057891727860471030533640125221605814080449901735285895291528875324543207855766963311070397939145922377460791674151577147632792443505563875281512209131874444804140579662245482928092583268897686624080197566862617210872363881711083372697980454274154272513778036813839644019798574070730983661230777693825334466604623544103711075628534000102611803133046885160752561887997200564111189832707133541100365623860150116405062362688155745230572304815826019779170343826003349365175026611195019142759022308131973941845396179006707004245021354598709977050345269064710972211418178665196367607970065445721708629158155294989073692409671555119408773999244100567823914327148000643701293675150842194250092998075162651263675517169799897976975685693222477455430222254148217133440611405007397125128780389239566260137162505940745596598771232244103610281594619375300415548086852859052103907022474474516752651262170324816486049825142372349774451174867677123907852500263717809633740973580522476189265289641735338289783677734750439496252939700763252340026449527609135993747940057995148188531206464994651303272304764796029686537760161986419180770908826164875931288945433548794105581983860258201232250664578140137146720785787215377963554426929440393449536911926372514769170199495541801203648620550417491682936760129553145395140241961822424063033963531394193659265432625882635739365965407943000594999307415497487988553171985230577755868901639373552943473211441811573940868637265352830836028003561244671571425993169685730396933806730464742561683835450879898646733247502459589571774784054653440084362603027655805301434770855286401020703262794101331578182396111866076849756595157166556336295390733035255648236624395230625849504850774130195131210994441091314984552967532650355028244783364703629851635570537262305399119109517569542255649091382327608062418040757089946353399899922075225864367728181355477198068347871137306871003956600861264893369996387761735804851664768874925329311990600747017979377694582239003027444467867798774684990299092873421501973309801248594122572901008112574001296785736123804507508700489486557595147217591093178967364373892503365298849137661832195922476007272180874004164777147486524220710635762667233473821660392338643075921185078287049737038775175621164016132901112155588592846876924234233342811717035365085713576233033088530974505548291777145073618833714998337666137625819126114012512362623049777231925695622347171214430040252063613840429256104709739177946005933773321655532669172889191227932143817918526965909423759928987941310697144165710655346092192446163708962427224548057267270808259100439689190572565385401319248555420853425020587635286226657098156466871323147145289759636877443717008985818646596575638286154909057310256682812745279213904009386809785734835239729931946360143608615705706193923692739653326285810219087874673928236397150052582063393800929272650355087047114150774900565457455218716927673805299817991261762887799718942049186758656967343815756989628351157116977914871410613663502815319727720533228489710243014100317280293709879101964805625535855990480851331902581051049134675373018642480126746992040359747127775932593296753544753485068699396974903960230107189290856593823834864601628283322835907709790252952475280883483079612966202500197623958239111312968822091297355390174395843872695105830393772510988612778034408246343777382557129104653519378471868430315973241820696582255553964826546811504226179601919243017799100524490188705896008506525321096639576631961832273438760595225350349023556264849392984592128359741019815017149102418177478724269520731839660207078849092390646023555212554680862248872143759293312046801205505215463392267922093133786721023293489931797183172157324914584928689076932828417456347586353854097348035914115062215596271689260237950732403676594210278955749695418534410963659542193727731288511465846703353911435410439426220251921360152849150593072533463283437778079056346462779901591102412660015536160057965619526679281958642104803593404895304235005293493539672565487359662434390219405620503663805443945456100457626556537796135089588440286263904110055570702260043058774864401546823690364049506659305199123907336271488854992052698741616402187672028918707805899076088527945475935072764817070180771845155037395453302892842848047736071407672225379848015121583610223466977466480267820142808950667987227481958813131604314581754815057218202853680573621487315842827973384301672861468013661482662003126510410017080759720397982167957970096250671897716522234197456313888112924023418312279067263417814604356864052626574472207139057439333958743415912043293766890241184581073094484007375303421105315135699758215735933306901341963935436236370560166309326575119121279572883930676227800518124764542591539235072417654817211910066342099263961289116588281301569204716737482527562195416916167496598618677942893370485373987618444559193891248111195555138591107462572732532974991489596833849927013365148065172797267315838333258386202311692079050891988108051436148986440657152375961346456133017729721734871091047366801690417167774440188593833866568977495176767918895375615606903571137254331068871848220773719749799547443125212349347908453634743832491734464825071306657543705336163085679122041740184473019022141807344514319587529236448983705444549559058826118611633430402099575855025153220559773872818330903737753855026576994572112986601043305585483900493789502910098036256765287390718956599014039925806817770354214926056125328207690474926810523257971775459372328894061031360943428656692685713708406766609069215110461987839743946519705262734467580736430063608167343905040729010120848439868481206454217619232116698329057671532408747342098958180967873238739405024831446371232421883267844170558054866021774851696055520864216612060292751085895386655017295059403871582159593434076844551858897744347617934316395935348492230433379180320361167825538395598564742680016368510755578868030955532018078056559030856471946440373628709111979691230333502814143973193164794224022795544099990869917085751536076089847631593108458519566522741903560362725568277037748914433901009581964591044354468828285777056086445448070408598020131365168797186688498675489336582189189895771538287191529197841583096308771219289337633213755594263041499829558771829122796245011150296306212476701043622984342454289875645710895309137691834449034681653957917557025466209243177326128029072411589955064069802676867878244167649098111774509919597287817096923183385881968326386785451286917149213102508233317150805194575513129392577061409210939938846788649198174159562228566384876776170703934484058543630679121039349348062377982114154474330775619936601929511152989629681790245490462326155664774329274625141750504253067036301756744484920536133388195185415027759359204996383765026375081576518950771967175787729956873705214293204201201740420603104064981390771404129294756505074949490257362724525645517789984307912154889946467468111785435879779855151120176215011568085087788161946854030714281910281757914591733998824241266004610232655382230848745528991691596691979044966187266920156129335593785513863977687234906100961926269210488053525224709247480241599899794926700872395262797502606953811586870982008641111591171784394843499514938764309525201403563986135573891800186221460967437192416830352536421286691513004413503744901328332027155248023628653597433445150137411051400427403552398473565328034034735335424447820354859357805384688663510207641482665384572262399125833115579781310273142006608871099948950193733737352919207599783165698341492978141416978114898102981046005064438381404578853858943821856519386151191139395146515963510173519022669425031179615173476753170605344527751942370536051068408186449867534149734203417864850415312623855567923323964894025440548176253570480854457407215692713110334803132755460554227556804748604183147564464525448246070291648745858441494618921633724078519750488986083035584640578131406879382485359777037808185533549082714679324679226481463803227866371664979926282726359318764423637334547478122388695480227386271893988885257060316304374563309932439806318347233052039171249920326598097891535989564627366512025610779173463671270684081719133489005617581315245458623104854575328320122372458913069306002742240804029089065523232047133462286771079632335440601847397053714767569950887143675031226547026495095811060454673602945953401136552484978120724761447612205313902939317009041913209858167509440917743158401806644226845790445098791964587264046750323097396728911821438241610428820549283220301482664217373957037761333434957051453831377792546205727194556058511904933904633822851969181257355809982657674094964056711956255395570061805590148910707183952713591097061737357297277302674735327605425760448370675642021809724937877780230295587891128974664403204230830840603483494897391823248233879499343220623800786251880775406082920607752926890905516687695545967948316350948405784721921961154058047768321364551813765238028844008792304887329835801356646237652622677287196503793365917160061783565708568032368389901544054539794352530412053597074144079643371664731379198180094785321271595241301664618824840083246740381407321804922091768134314522034730618510233022442799933131048199675277026647693780898272205731037625346437052343761862095081519374495600214315940624449048107027410884309174781554095654577400780955780769499330625457474068351405319498927435577780266779857883030308633325671730392697696714504621255714663759957255250589048930831178952086267153965185240240645501634602281002359184826863840103540302833349739500205674264020412773381320463203239649954258703863146734331681785559740250477557953771363761546338222564148885049582726062116838138606450740856913280189667213259987998130401870488366582332080495867803251622309945380360999334309066586084132856029242150694380983911118828098366535139190620394455747606501923773388224552635934681133376599490242975399167342123786403624936811725834781402562353566831192190586755493630404611309138258053289096635958216732078293400446778479131262177102242473646658251995330761122922572410619290872134046484645877670805983846759481651403853885178284642705416963135855167152630670028894138440440353789595866498494628717721514056325692342238663874695699031583464515485879913349220703576734240087231429242817875288346023922107750536701884749723860996198157694829968325542079527794378699130867157575313946108508028739179296810516906672136923540717833375455197046055290395644880367600256405353796410310072236760230097356639530123606280806732040555256794191558352593494236088629343987161950895926547415328431179326847268471151043297484004527980508916187392160978899668628598287889718980261313503502034743074343865641981564828188115676947794802271606493564246338289848046305003023058158649235954342774645808520466217491221833419362587032498205396890181997546233620624444002888938640835319464944670760488811400858576720920259024218125845307680960138524403855869153032099113678855572102856800986569788285613345371947807944899139682069291336906541729746961265743529470834819232924576593329157564144744154837677000106052612113466102481460945667768623592234143639347986285648207959417256191280369157162326994971274903016717875617302131681810387977640201705464817956760812357244761640714837907752573943939159905269753231898377249611581914031058202691264288492189705718247845864883345876198349007630076807677899459600937684919770857585763528564392717407143038016826789188126936571738124921681091459944114374339484553215199622682985214684340954132870616138608317374311883279124634198837000795190929301380373151712558246131740902249718426504649686895236384516140243596118037648976180635139975133294419608954224998121360397970381622611260339472756080005857318801822562856648406590245582641760438418796747844758704974406901411567558829703342449352917597640135557516058170727424332388074723658782288695291416758534977350636621797757695124303847836633160498620985231131019636826202291087549256016702118670431351834097066052432523387596056259279832781277541475722588791255400209760991484251620485168618870585577265487173849337649105530443700115743627369591865733086139580362275849890493364695646349619792596679545971190744115377790711063402020014413586281089008968594528807427764601654491232779692284640709645375270970096843347454342932073235173613701826419808980671831857925407578050461473810821699195645578172047908644051205758732684648957536133078002398136121854676256359114092887493401797712996553546325482380457918824910017525896005157764742756488780588341631846225656215998048086797366708026113988975674256534141096100424328648733363221665158659060884111330112858039865605845505425284294600634332758068106256933190344593957272615725171923839921113997974294559599465564985274493036086147229980209354436313383624774102944387882669048479486173849211406360243352196818249407611750863245223992629043549443424056126589065195215898212831939199589996779533655520433853674799034271399387070000023032553847943613969689661747820557052244234525883448559180180309847313156620824394780618640919773420786059294924014476847363910202221097359457987079683280582583269006102517315545654161291798230201215224639977249234672497268455154615851991167515558908687614417337384607093476166220787704328898260940635882270854188765374370602091527158099343286705414679170808409389523848334049664501310461456561557757696684357077695090413239824456041883351074615661853605055543750811258121736872471627944989271378752196098551284913436104593490728340487523566123406588625652201656062920096352130341936197652497202835356405274997725316923105266883563940601759977530602152819275244512193968285765754794480287225136658801022810167066391600553869622225483692297785998838818831150731862805468032633611559740035088630558658473295287695121810349849998585587499100958045714060239141529521625324252037894384455233821314674199175690266985731041566070232528112446276582065714196122699202529169353617069730379816213027510733103522480427703466757104776617756929551358951277482546280238791353835215869178653814601199554259824404918507877801092995257754884051271453428738478642896230371864863413867923856046600453303382912990635698356574640512697800873526311965714245021935256487284080834065674669973061113366684426981108958257427749831939506879504757398269499524754209474210485730664327265468492303723833031375835944766888046260728655881711220908869700085131988833828340180274167169343370171010341586596230536991979100049216110463343715272705960850191504081492729016943015352217733644045027911049015573430360022318525052412389148898810135020330742355548291942213329657252610068459185991098064197418484620329054859660315822076532004422860750873263415717887553044020671224653396468007762169757827095033373407213949547120110353216212871473466652065887846018398127869339084173484242001764595473026205740399722850466850844759895543631173464904771531997522938805274925375852861463089832186570777146150399033034184864195256538081951784046146224574315590480401397887820021538931947251695034077748924034113924759433989179058051124025664725713502999360197493297041257321850222919056183757287914132276414202143938207474707992188814038489657005416294823256120220897743265597998774600076572475492129324899490851882107985650528454673459282046239316311248877564303166825267219894728235821776660539832886123444440952309185240922805743542859976602960397890633106111870326686945368230620245119669247389766952521339550587355082867656794304057102699507494028534957253519125223877236057353508577515997773354842314755316912440481119088773198733886254237935508982184465242657034047177450693127282038408068894297221229145090930464539067888487526849317605411042945320824493096118234133936468919286330376580739236352856534317046138541692974032456032183377499313648983197374788326513582209510313972114819428680376893660206405926353036338911680614737980077781298242806879433597503934944613604776334924509941179715278428646067155071344468024537764178635211552448871063192963387015987288542047869689688230086098756387867550626819899557185530218545630986424845992931544715365824545638058864976190597059592529928520965250904841407126706454606725786862411606129047213405717009983393428426960147637265456991979682846809599176439665304683444294086448907420262747446625731477217652227701741892559190693732873548235201396232020720993800039169828783039495830503983218935940826565088545000008212083268760554161999951426382563470621027835611566943711626996555270117477673410639727374830511506111185361824214796264818961091379238779955632071177001550284589852761850945285440373784886311799315765355776581134654848661740479486169092820376552586709618470631012632265838083134597287069491401413846841138441090982701217666531361177720570155149792983116359326504784597248171086909264961983569705694705039357832058177165454515633722043153643128640000427197655658156829339588287828374783311002055454157310303737447799521562341688524555637343407792171582232452885692491511277786540070797244196559572536506601116425492648802952406942928882532733917229150791003665763663039317379211881559572247745131976483596653886245365251276102472381040611296315462559912720678728186747066047594816367592979134421018835330639769124547373920618816435610439563248412295720479930449752549812209727359648199884210409838413287893584608128491034312498542400607646391831783466979668459262195239979852895935563921890800173931874736420045042092987624850999359338387709649905497353538087344635479212910225670727182655041690762693803273959222139481765986340101528800985264459590198691013993013997701868009603685534004408929681154646514048758718689863167149017188994629478804871605407056180485139472135202694363102146318581757942420625589123850450635131526885281899572236118273796525265622615552930223997967875223221037670822104421288048160738772829109649094335209604521750886956503301756693157774016249887862415255323485365686871961290496428659125923534996646154816446629302266227273377195497745323020831161300897954515908926540290502407131703213154603713288334185715171233891623159364885246369392528355519797635913568381995590534852164342922113433849947435864629875678498733137217114690424168349566075137099200490235168547872157236769760119730953410366006435408616562448539843387746020280181335332410526556228668755726357140069884027646284969484282661684530292143637368158761654634888027804073310576784985915916385517927168979344323359071661489164895660308045201441184209702772657244564863228572234384674845977791745553129417608538529486800853927568933601426011482720820967255890591231177240032395872903820996230181901191873868408520950110992734076020688851425433153946657065920554574723869714260294209364092899585728536912752615520379159099531888833251236477017016630662578463208330122783412650123257583710336933453093486287945444716288230241739773606817484371932203655760086105009646679552035054845694947083768237643329935631691409858368945965112787139184357012247924716652440938650812941738617278956005089362673907015752771671906586755719270167564739432572358452485738149321015527837503585904734598708611775023380152088211081184632409611536303476447266394008762877187000036335384902872391415948428301014600528136070985197711716130980709545525110612796927140455534456477010460190123452488754506844487886657290580888208152758311271241589060859217161204448648120917436246536171639101138913020175610033862914251892551647511068586979394015578354359384782547989671079134793699217178014557333831802535306108382117490137817835200137620136813370378364796637289189254320368598386060694505609753247311906094986266586563722132082380209295910471925585293267540907285848494657786231647012538284491412135273896813732583927916739069800959342239991777832946794580502643791529647353415038438282505669492070239073925344693616656793962179743867496326497583061726754852834482079051561098054799370764411167109349089006980528037681342374360154494454861809861574349060109713873118956858805993885105669967070339838065532817089242196457198434124779668249431605177081868539071591028317598293854490809072182281065142282599447398276395464309125683628039406030666411603145169806203231248557398633583690988152251795663806246150990797727293923565230898932746881845692418712027149858630278060532728459760741602238767468092598012761502015181844127106448804340305142418144046429788787539627592054349636019664069705964430552736253715421128294549502395302322869686292935952110899028322031618247796076879647160732997882268756713443659531318758389133930921040309374572528561839635710531677158333115748323052380344874969878067665255504874639051357613947424106730871700310144735270548609543168791744876318964747038207415984228318267182123505179428518979286453248520724931954800816585751674572168561572472379461138554719992473334679574217380264816002231095899790550148656758834971301678432640027155581979721547698853308092744050490593847421275297324086502318047017885011588837268506539011108999755534139874149658506459132956517315008791989714792269693677123266699417531922683760025440864761971796871992785208093559912253472061140899869571343909333101883082178502507303583626333039129563069957087595106890536095387802116619127584975418517150938783706416123939264353571127951156152120532891204548771884253107848071132557162701201438768060634644222359545295974986505846404665260956358190992577611277070116014530260855917330145710615092043035324040501251697257238851693544093093851685361299880406692163221147066490674837927820341313522602919813459730941934841763760115146853451244921112714701126078816919243077407071281625924837731992258955076592746949431907792070566655606349640329308914780773912582361095535436808653072999152754934355120135670677851690401190965315981374697108675843431375854382475199666658730888522237262455306482963457446030082726937779250612574056479260266428648411849864076983658481681793346993583164439636464872781535432814635575766792477125823032348459237332109440485904584377517639086877371632129227069456450896816171970768064997958544542329514209705497365085812896704149835758828787767083897879099184631879390737997983081661384958706804721845403264326076180764837345604243144165771547988004462779175262076769738210983444528813150557180633496257315671156606324535441447042542733433357046310681198137879096314517186577935268685591775719028729012420356801517904276254747379802786166599823207513682501788396474179214120434046852690994480472920013552187100759262182507306547853919590835811379828352261798504400979308392733528383316835655691248190054337306168039590565975967794061546283429667828341624166586123617016540505256293326879066270947376033748077177482493004878673861658115639434275897866243994601734503128683061050143213149528671431275931644405345702839164313047711304904630742513039053510132431222821033813485442583095409664567555494365315022058191987291174069295998545123813666129991132731404086180430740812140562120898645110471831756209525489791463428716383448732379107520083384073166611738865292778625282314639944494190766060410949939839814450878767124999331821776711609437586521403737280478388152474464100443426968501815868835309796912803143752909879909981549175297659396375518107980235333808578601179242947755755302727742178122123569736400888295829309159570666007215221454821086488723814088309955227585008722364171181270884392239663787659493240783170044597191067037252953154130022496223324045261659859764528371872448862490665640329179612974180548786426783448454291107841214124434698807203816278802664185490444122847097912967758572814397034754763098085650725859966870056320586581391198469560906352812375014055163969511955231124152529380990625996675581455355808732515851530558357806426436397037401999279720628519510033155786382959304528629331557639670602480717059669007130515932952057294758669343542526334338066790343771228447180067561358802239333382134312398730472688729376962863849702372166261877343141441711097748930163157213603848916972008249421229181778516148929918479596030324399768331746636125464515440407237047370108064798792161096907547097491905315031179144585270545085631226024160843656148859506322237123618079930755069300475240374654890284715612553867630417677020375716256650394741910596755829286705036393296804198446669305096480430553365930600144948731654926325539629636718096321972774824714003133282512381844511091817627335253190166531242372044225223918703155682519571285506810881739836182828058045973111677685507650263334838117880477016988528341507482397339075572100181308335584520583996525337927799799492451246851828914893690918353857798985009610884215852826926129812001547795199460932459228613935309050322343797129622855288191308431168321977863170558129048103924486675492535130872880315388627652375084629689923117011958665046099538738737191243733131359885673273268368243280073601131576130537610413877092868094943259823113894762762467647344356057542206503785576823634515767243192833715253110694681219153975481593759221024746106198145185435901382257184321045596842376353112613852301475771086174058243829544423212495414408618659172400574215332817794766273401119744719091288373147834981025069958246329578589174225495305232264370528621157928778963054817310492755920566896331436616987608902602105835882398033335792406667832633749404545847217241713719731883955710672727037295083571546868832303364927097870300879387460631932424113040591645620704347298230142755775880987712829538991122919045488532621851276867860983268458514853406416868959829251551766684656845922316502524894148769678065400110437500831116785124373576053525075819026188826279808069429578204619721319459466789124711867273747865998167324874050436264632665606135827454779038560664093647639511732318714351570012896865364039470227060790033267181562002802415399255553001837762695126489721352688281724937014546298809076866972357501800854518904701321610111425816543797339275326302991077023572997188432169044663906728668017352484663853272496923309567953816901629727331148307464105647367654223330079993514796817013950060149659046361261538759061209223204013334421228094788310323672501770588656509178306725725758726565050279529619282106870712919866446814059633614659865185144200054488221709735367117633821907156272571152834062652868301064923339972172230658533036116314693470689648897303691693120933814133288272134152668160601371495993885027313061522905468425279447455368202694999669212090262410252565127249028354758115573153829075490163924081693485419365694467403290300227247688844386141185483921212192800319772770688661349848602741164462940918358919343445861224691815849049573394818986179665587984809293030584914959328378150673271093675711464922300458186132685711018091927726010398767692634044780502933389041568049850956660476731418772247818974309202079679943000176906291644640999113206859915298131736654402279317958058236901453959836179605154037957337324783015864743325091890145661079033961653221366699582020722977204977647631600878993346548200202604784872399829367927477175951565516299476278258727585406272646028152756528206975899785797689649008476269821549863464494825399039945223085598358906021995423564884058091910008840366631624023254176538402661114294563965385208926704806135231471060210028148024946158213784748876987367396586568495240787002540895782285968358030665997876856809467742414409018750707325525043899642011739613021026551767085720656421062714805437265046542817452553668954919362489405439121573501920627090146256673977506018428545927411138783755107183242287834190014829646440620049301586505130474874940297656930302988580082582774882196015568096515982495881203598942127227462893914101809192183183546314410044598187337088336305501559544713391864019528543338386351283791720244656903236662337295936415932601031569994905375753947056624147107602343309699515883879945670390186408502820592419439655938870037632842694767054064815863118192817624820894893776567581061436483578161482467527699038935755587807572568159781206610531242590842032406504368009218408765350029789677168780373426341837652290537945755884815862400175021007903587819333566888119264731252570259018609297168574975717006011756247567593527163305135209632825234969414904875984799623756576948967851756024567532320832709319617265281451659285804290619172278236992072553714288416870466679348947405033729067228356500252476155205341438470578618817669623519721208171301719174562736644823484646312130535887900454108543042603841823622070737824382636771544902097707835256964894991079228936836823774387588281352931557934040473119232245122681329132771766385876128229909041453067911336204573993560038028831930630935161461327049881365063492011486135090706489552340255903098481525211026183314908324073270484062917205696260032453727206468779352747686259613354301530156233416283989699478914137354632901609196556531854203425958914271199835864946206291425278071831877991869825401808187067096317132400862289358965848745760204049510395708146321285892564534492430423617421480810141004758269838364530527802512167434963349218518280247055174093156024101502499251714708456913495112361746280615309283540718594887528414898005761453144914236936391598739242390409380516890781971365334975849932393811387122924176658681692469930944715264099805307267398432763608676726595478809600620229190242796790365281018902533536278197577796615708051057489293490641207106583264472197663321115464018335837247860827077357262413540002033787621268592865925178914336752875477762500210399502956753701154240615931572679779885542300122643687442006199511948852323208728499868393184622308585721600329815174834318459856142452744378584248323114662991979040336050916484253813917396841375073545787616020832601123357529770018142850621244932191080966972749220540220702476612834766964545507304533372195760166744281843023492936152371910295811131115162313881952283856685152008533069400677509029388000050046856649199116391503579710820830846317358289315296859354521288191079054597001245442665350270925325773897529949487367987292414884323708296135949212515062718081163009032081793588161997966689918140284342553594939082534638810381437925096555745409476517931945739946368812503939502411962967203293932314874565110462398057872610085834113553509682361289892133711068926156318075224165818841825675852339717154969166897602715206288468742882122912289041988831038464336616761018082957832850532615541278522460990187774672708183886051377887370664119516487863331637522875504602149993632247179582312594869043063467367002589483013375872887817998906518192408749256618114241968216360100147168254863417004831246496891876888415796628253125857200623626891039216870117088405262369737102444989610031427101578951452227418383128973507313213368666218440205581579673838163071197630916314624123499786836648013840361534720050818405337068869776115363700432016268607853945595966114953909063755769096610837233981537863386563054537357655254116900514369183391544160649088577293024988094572515656305709681613054565891777001268813902315949518854162581145366030320870994635923732208642724027833616931526012470516982580806592040023491048067655819192710029644408850362965582953143116237639275176705647008132075637178337633641153583804911342948416323978244733653907815812881324750840566443671271834864904413813550116236670865070871804432806630949462999603838273525412042140754850239677523699538627133712874052362141245052365498965215705972240034945362555961034584070926305305354254947741211929478402522548726446109588028652394577605616044864402551845130680256529611188130080200060145597330476243833260344977019116830178519455133482553814809185037329165820983823384991585607269077508820195466358712231975156954833836064714196579979934297294529913636924271962820954830434276754255527778717811156748778931637415862876018032820424190703031672009228453754510880702378305295379451336220682882927509620182253999174428762680809957989446959353163471919509182715775852994401646448881986551105588458996060616461971294259617820930369220087944995249193960461027943499501043703019261042214506103544886351017630678268293752654358683716340213784333636555646579754443622301796173160884269563669882415618307856715138908113473548508775425392065506551459088870420692783158031877753838810683031548316367899437111489280221293938350253328172051277110998608101664044256167933999340505788668133358247163822591973585824374669891199556550824419691505573854305097563291569310619972661230352226163436331660872655029934608863983616510322260743249512181778844573223011192785585075166200947691622078664862827568758922284518900166254504675321921622688788668488576277552880392704522582426217935337543830280377219196349738826963492138974475531496492269408628499397496658888434553555005386647244486994537285708601796918759199341958580772065525440425378166928184131941668418104724390835902191723711740430589158021243611301460345713419974262943869048678373598034017367915468202570089349448398326276938782616327350001339297084589586833493871108743713492675537090629100990927338032763010986734468973899248502038471376262256632559694864569731776485017773185056067175523236005400476413749788957688341395317200674515488345243731703888388437505782506029665256163574092448711317226018375695979801345178118487763934555394690969434075235242601466518209292600733441666152506231178302168374022581835382195560816862740101058773825372577684939928489699393674206914327233048135643936220964210131059586206698976085237242749602848102603079437482284157023006703142974416216978472169161866426192773926432510893215177130484290432298503241185242935451617627511434406933048383327750635518343436402221631776871442115358250154140276281658969168223707652911098138917996050888387568120712579647515154039631460363375226329855436996424359904930198385242451019539491736258104803756148143308396932645652538291912234271439025802492561944059393043145500797495588126508401130293651310079752626504533065503948301016024504254218915496291655968790535929341137643812573004661944141301685364435741128807643638292487306536162320913478524175351316450383066210738876028221479213589145490881452192515349649427970407790553620536250001642985189886199305669994851049540837415861024852706216137294115771289265802896406033735028812933068660571798916200322228796691257704789973211698237150533608706128337408551261879515868451785617806022062918295186113245237569212067896792563394816166349693579775738351083134117760557063863635649787123781303370245758937956063504274260320985845873987913783789445464726181606555615458812064064135852899752168953411435814538172795139343762896328545391532221841669154543491847266284630313659053497592344874213598691587926619753884462928818679811746618788986131574239883404180482222234615793327903755963865947134110057491685760945001392187864883265081373729521023201624071658686127808812977370364458219118335262786343305170852752992650697849238961927565605434383552287876348602040665068671219811236519418081966340598598013567899737076014697899417670763219581533926291052044472194982529714311872130758343153550278903798631421392119413689155368032507499895415698736621922921691248867821914034862045606096851054888601950780992770156793759147511792890560653224880031650737869004092960980430271387818477718595154638794537718868266667531506313776137599495091134216653737324638985605025202999933341641735706348683474617788996756186105653215704158590252373243334814373541867320681874334174302446572686965960633616091049077412153299425605235322850016968662754892874031694972268024111537430477796864092238009935037345406449420010682021370061986642382444028179671039527149244307075426159919642180702804371592624223436621425863671619179076644254799266707323012970199267621871209797769257290862039458206667923507032193051154971826332322171315731187285607248620073818674713235392855369622081725476680502014432621117477751289181346515811554612718305131366855985104657621581142604781573421885810385387000073707026213996233406026230090183413302387025564558782010176540533911257800236439395819272297334945978554475609545214857863497103940638150855506111078174165036694011308432947422346626773780667129472923354300391218360155417960357890113577048467707759104372544575019780163642063214005407453138156392393440937426371325405371247668647140008965855462101345488243378997838668718814530601528837724852896328667880071078227558854463606331187127355103612149758058947739026010901109121061620624747587350085249761355716217696629222572302026676540741698939976183147158026963400597800073266287697341534903572362808594104286809105937849538230074334581460499755516451518270536100512046690906292685425284895838851774217169654055075372865556779287018133718779024575801559630758089352959381531133977499030548333379489328841603019935086292554471623945483364439773810296989689350038689265517692202645270635899216358919009121917772233620701059823001746019215218643005415198336625754213788965357404648809619403748851890669454828215989231352757630279259075486911212256790875781733139045061477355591053928133006518654366449663609824002641789309575167371633858478561727523010786816231491396190370748548180144430652610496981384026943014749964010306291348210088453698274003875044982878818941252879247439582232683251302556700505135442341899931503898817135081910421761563421101214274316127585045859727888707168332996555491322231961881828495483535631939487451030281955764566381057372313010784661886632098553171927969795308872324912348578611491538652543098087228328014623593778554404855814553951760474654081951070284866959745861181142003652123911550633002915918294168132356356957662705244752028892701484854776354571630420299462149619593132834592188112975059367321181076927216319312948581521631776661729655917309573830167262316030634651604657107677885522357819542323169736196726796230678929624840060766283027731508020192454634820986509811638253274826297528478097054045614527013580691816391322491416287983276415625716874317805512805118525775468262594336497990403119603001380590137051225581626427690494697674891506091914745172371039065780335277776477266699360447534969898733339498116553256845614507706234364917678774334711355575037162848487137644827483404872340975549006793004576561185341289165559023950592955430974147791050384008324143423160762765213187306581787039234803231060983776540455821199644974437678014049205668407946840093275045808697776299671742006977872221165376210414071040658879054971012191461425143102194228234780468803995650404483725719339342168135468899408242606312446424234466055493655864899601480026996031090388391898966184500214094903216957152329923854672679212568947927367137918657178811506358406262397928813899683433279099296892714854733703956975853350397678166698209969627894500280809133711545922697584998067210067010545688875803044378128847612894357248356988109633187531462878376088574875408953101931707875901692521359380337703700311379822810078127499009276973522185543537968341334617627933987318985709557288869742223819881044893512233727569646597062222612198007263823635665116721872919707386358276524596864359894812939864427736562118554191202055748037127773397833041007828912825525806877597987683400314458502573833048405336494993261097590895138903682101479773474716012688260302304530639929610926635320047159763629975100593871008289084005555915097466759832368444500376253164281347267325994398088619813731667144152351145862594664081850695452878419093892655817786601470634165000157329326285593587016718127978521190150568097384766686911892437761587176043793588539870560074547101903722681030618702258441003684982186627649991431830771833342043411442679589114216011433875242513401643674545008292166307851982205461184028396115990481517043009685482552723319250100973413482972539972986801756695514416550061019770902585686890577263059508120963441963392547106803302900478903539877958173315550288613622916451503695597513190418210097327800987079545955389145908247248030190580246501956067134404368928921655042862018799323377516129660962246262390592402805608434683563735287815200889593138937027167248260701107672660668069616203668368015912625313704596567025892674208815400799660424542093581094156196962560813777519388943414918657565596283718207556810903099449377902674676963980421519186006604039317694292082791673236600789202630185210796490734947049521758172714223869484776353202460288341582565492008310611413812144953041628824927572143514800662924535367184614618458492388357179301321845544427031685847038444351331475207028309363930925998753290427770868551782657726369199173595930670446291981862768231633862504058783573741145442001283691339131302741555559360234473976382618697511279811992525010319143257024132076667648434771156285030453651594889183713815412027695579386203563265164042781031476287345855203149462344432153011667769565295615649087755271107155228068910968537093189145933866260734427125383067374400352883319068878920045239202561972646218468659179674706576440536371093131698015990288595228055914091153828600879309620609598206360107598998118867930607373873325322081999585964833906858011876318948098878651167155702466032515206670858283646062276332162880504963355600947733453079718271999348431762623754966540632818657058840924722186872804110879066918465324103177037563311898556906675076372414946021842990097592299040326596383882238013849876076562509957331218698259830426415797788480819295168181936621126174710848987998566393233670976495541353734425459725475201440551184129938835013542169715956639118218865686537687856748131137811801910273106358479189148863135225118179817477973485269735651166002839716763945818829989047109657708034750374845050511916717081616782865076618863813454295113935651670403556977724942130175128141265604762559268601248569041324925690480003716028238985726330540846852606460130793018549860671699084757901699919100101087134723980209919388771534371328927515792184017923774517480742011969707524611200946995446889295297074621545004199469044331588703845689876948484910656370396780678691644715835540031045528320277349321437162046942020635833961966364630282334567755478661572870626485484327586110226734255088936821140530441763766472545674996552764588926626181098796611759470262954253743108610573818397468225199010782052572935658791910587296027654867294244474172029794332375398225201342827087005115946359539906257121222940004041116735316764304290770288971763630829546531234158497163603318741006102492981408748702201774282373443070875137838696690751341693959741035751906141678359848731923272971781016755507223601622750697356641127844396310535046643440705460177166305572388336808078989213452234872238473270414232480360565075748030006270819391022700589915636229861135348260354184783894400321081154686010204555054969011040451599397861056414395844441826359534138405469971039242965805520867141923161086051726154193178235675546331680995010963300375102380159952850537217927468451763921848491522607172942163287234783646372416367166264508357003297507294893977541025605850276739631709758474849552228695983874327245729555205743171568603133778981212527816958543073039724810933486525730433459906114361674270366270663777671696685821046535193350023805653060132289240411255770321731820829289687957625492058133665585703050805164302255045670598141840205387017302112500146806159336560421259381358649890607006772412961668315457858887253997357435629024890754717255700551389775797788675512851354402230332617094425074814144713095458313615157844862385657985374215045028193708779910255133522187033695043798539600373455622036626515983838750316201588055330627785021729228213069156946705177234733730828150063986830181356064228254767010576437149214677205617286262345169346111836529681514077039507828557308914334729576966112889841417763589593965598623643760869196560122831004368210074711707959714047285721866794562298555837172771875349425867435624325495812550287200562657185950840103608380169409422393610645476296898108283762035241546384983171731227384868158650038238699991887179817760313729819847341444472067932830176094250342132517646774323849037860229510605210526870601791932650764876812770444986295350022861895845569889495573149733486506759583373882953115899623318593995751894028794046125443631418259293481604781843909968771110890100304896518597490441216715695682270285535155286675170983348056127893316832748703299425564314225958336592652459400884563099126205734787795164401271014259433154093855069215542386966600102228771347590687648120206929696270968749524623487787492087846878832386925134673225997799065720919429479784131339950070343858885005102648656295977908321723161260760853240650917930919817932649420863925601421002125070921749395096151524619325545976646562622651256093151766623940558555134674240282074650746126931291777934066081143858535549134999977471131029373416452503984057409783551605014488296429687546739721245064033818505395935412094074450923282902663537551054360138448718468768812266579321050724523490951367805408593148505947858387540713715654140000677454356311123742983894470362963153393736265124358477053681863147852829117905750521894141018617978671049214723604038045821191085247854716639120985551919303284435428952540304408675338158978735155511374394337297829442588832346647853873269633651291358474930488830484403424451881866098067524252580141484529743551592973972461746092478085888458753179258235217942385566261487505672115546649623052297131745701079352039133813199957494443550961920576600774486812568969353287658298208781639466989995017878398475949688563795671475377284573408866225239270453808644035489955918465272576588345648195272501355431069976523100488460277194781561230459217068983229219344223917660568704788493740818404129770646899979297496572258013532968505997043858071344086664718819129082585632128948006222824867901253499060014912082815007564634872492142433797605047239641277560949904523756750758303774947915738238315570757693113512393156084715417453030468485832180972154664856583773892700305208126795251710140664724223299216333593545545431110407562995933483875455161533725226367763075763133031869868509488910575321343778700814515003112728464474402302265143865328619128241157975913096965285592996347180546556871399713308330012102997638976729863007823920363989027223113659695557319366013954275157323002166626974798002471265411067295361550662840815483051067278031242786091020153541776122450139986570235481698263651341641514333803523822638824465503494410816594884483904354770689789430228591203958642151485345482472129693555150552836548769607309013488379078229300596556160099170940622387328162777353069667152942775004307467659299240329718369770643728717530547254187936164852444657648741458425023752044030807088863682893208664559609985340309834017999516865242911444131177333116508966507923707106577679870370595822103796711465177621924308383641714279048428130824042008029675724024058822925199846184456348925888308336210855712064709908327824204250450387965703605295879471775996918459037911141035443120996299879794751478349897789275820652667199545620170329199552918713282118208107825735217383484682398667472225202411295584549262725874017341487996202065282424612585294559078355279415510897377013503430118763773366636014704754851203446289104048735955426514870561443979605989349327367373018234607488005993563569346571063019471476683025463190051086929064871910128786677324339640649119489718297984308136565402900634475219276264632901526820823505526578597668390180789859630521855694078852229558032233420095264612409372373109226798446463377958728881122558044108897781099787797141682002670843923284422680431023579915076833771049073435698475045088200524345838987044632887728880059225639504630275963485448109646787742553087312644623260042690778491982701844335713415933712881148089834482481630280395405946921049386583686480079645171704484638098936594713153182994502297725444855608972251080771817721869523271509342859972514627752279665311061034691059738057435944312524912724792113481987960780237171216632593387616976716982434866857619783533646837977814694950166640652288030663495264911016069307760185711908498230016723731753677055391539109576160700926041669918949284538893548096492314245695942567974841437148426913666048898298790703661406587830607711215562488168030231892728964713836873263777894310122111360772797330271558782414919501664556922632477101044296875280068184596194902094774727177538529174427984772886030504838985250733593334202692881515054586690900693051731939816491576288124285620313345913461304798321356863617505245584277474226795868189602156138894048599313835117312180426000700841256875633329866848999759957900994434723924712766483131123118503615485598471349355909846940019293599144096414354247494796289182880702632416881999741263269361994404582964849036842402123093801145434998208798390632330945018692547032976218779971039175629162185240678283282732902561512055440382458772898522077759383713674407138853323984926308025716787557883048303033335412549021318018287396647375350566110961102366010118170692500215928981360081536214465207429071226689498512443172072909067541606253490649827574197977467895620511074959285943157484631241340571566362510389535510034304634021101886203509702781034476223018196597811668775845875439775407939378616396544595611738151951568644720888999012054103002399851590464173813287951534473113120070814565115093239746776095111308454233345100039472997609752932616562227341238749413920377329696134741579346665854758841575395337113510290580191008588445478544137597926287687009757600549639410602222410335635199292474001381835292319677780383332165241747992515646120637375851305977554220747155703012641714631952694331890698997646661110176583774636984796850540332684230583075811066739570524267501053417563352044506410819116677545100985850731535743505903723601522931827333551143811524882320221180009918105404154858806814780667932497061128602400928013879847794230667642097238892203174940661032894058055888300984382378243220378021290278874605137080816496355232638264629261038732950878947163861098186200324830164169030880796958985731219521737440394319742196143888859931061020432292278116217281714157003457486898032254765289940450910983459276808298658764044168225756642052254206759154049126109344639603165669170396233501349457340073087307236853771827379444451403652506834061013362802058568998351124442291292719052311903190296244412334012121623246745412435360962399290278034410878557129176870767874004405670990571822365504373089996436844856257565465020714697815673141561243550952382470363579648497228513083481286950783379733446536620145298409384153547793673902719515996182158491886681507544655038903498358279409986991709081844481374136604344572855067227442741314826967251084507051332364295754419780782787547387376044697759983074655504137954306562484647191597104093521231485837336502301444271912345508845515750497459427957421951549951493043880671648546727879435052282280200531772927686738235949661439390560419818942557953289262492486615580793367309161725298928825796848959240918844526700224691106125375055191187237146395977086246663695985213184663255061768563175003821524187137631171662756137460337666076949880203980508397648442066206494609492528490560440214925820951087568118359562567247503969636402196830136649180546165271124769477718431712079456226479096079707906820425480709146659082953204819513390661916484961681285689758021009352231281905036818055098688259424629827587750246282908871241901772224866873293192726893226081116492814975355040703990070934325534640778133320781118700026476691618286558043741189454325072251611307478164203648150148173043330456167341884140560603336913932001139158654682097345429050830749877957984610393850838140979122294104886619563878314754536186093189478992095172059576168620431973773784597850929444381940264691186937074491900149057399295296448420930760182814020526173129549514477610547655491795852131356287591132178981465178872466441103514974443155277723341658038180442482166183630275599679403383359832816814097129125439925491853813242070397210920623727323872151604219145044684827085634087195185354244601631386221599537936377707735917898223018076375363721077323979131434278289235030907369955727663874132957921687667334166684023424640569032592020075011680417500178040155233449154612833705085299468781278940521105373543040477907924591944355270921515302731855508603902769261794958966793935829537292780400742062227161829763625562880532665520726061453467170806432120360837454752349836066654981872409370699882443582094179081003354844571980017960541510474113761858428127120046248267750386038015543686892293312297588736512134144021411162586265614167777671805221704999588511265923036910438434329115689174951846200236917146005917143354083391567787578896303185194041694472954987841053816598711360955734854153906065112186867176333382426048139431970602943879560739740672928723617729573233365787011329267054361504927783044446936256124752990626819235725791143767680976647196973147030138144195125055591095720112190026672043158031937054707043352890118638509707500788669177384356210416481849471586670697592066751065393083703669439102460601119137299261155403944102249422139458745965996434764632936425711138667089956688887921574964795886691117853712523174444098665391971839255591786153319026072996777421070044752707671637959755499756298652953747780451873539272074946324403223791469422569134609424863777863340116808759640830943888810214051231034651955985651829369313149446446202566224610996110498392872467033485773227511172247608704118428465343576914966839625948379013703907907613056521022339803103984252771837241173401983458931435284674260968226608332627694534145865382242812469259688699260267776260917721108808125428383068748536666520245903884460682344490296186176652747305131512944228637003611451227372006403334432373578656023893754837110354267676040773916202057273399868441556822554852789850712264753856693108873591456192142035238035851845818260523437022863222260833550275113992201076977494662515039623460121282427162633475577972545510611848734110323269403821576130251363052546342353711969846646139212939308338311822022214440218593064294407109492338885374573155777020913288609598197101483754518719031586338906264691330217455797293490398665248609312421077790560838686442176215007830655798853631707193291315740580445064733531396287409957113631988434932338803645744748895544014682686711486500035355631526420206976686032298586079229160242856890211910242601478225299096850168216682199552471937269250097169747711482133714321110655056968310668565361714218318872859530798786759013806663834726067997465752401290084607548733175351313583392253474709825219815315503646601904264630826717836282777746703305164347824708803699956339120879269431339773302654486329163315675545335824529753247548810963431408516856976871379006344103818691189797150236982522240392806060901820597635978824257952141816835030470842371157051057508462775149301368318561790305402248726662172788773899330301170594717448116611723986861092453621022079872601297366502504090643292980721816481210999229869884230528684127780219942005631351794309940021904072725675027351923267088294226346457413264713469053786308425973635638361605627596999160356015714001126145771512874410834705491072338430330066110898664964044278188111071952668690942268049614068347520190259797119707620404066418095331300178631746152408593538179925865678311349250177917797075572012082994993738435744063152859767084098356694632009243943471694086608222332813463480665907358326291241384456287665930837243586890088326940444822976383086633514439730407217319259740340458938025761351837198670578849408328389448500497217343114924987432553488672743811510261082255366492532838782548470494030982209695213368330126043248317011847438305134451106991190304764221429591637651995178287061121918330819343606821284619662749209909054840424659965352446672729682651510148768488329897010088256295214285804460541887389959881468078579414707505678101022790749750746653020105247227791711576890238389936713553519078619421863881356791196437974553352887381372149819087286144111191431114683179624745802433458324781396724461273916341685617290118290283189506029296568861792381349452392440777691524678489960369285154685611490888595302107249788902901772233106435884571609940036996329912573799203993228115434851411898913949810308169894673144067803547104237649708865791714360094474738230420492715187519112804897299137992964795659190630693441719651108919848862307624948989687311112041720601315535273011628372184019903105632167204391924168848148369643175156383959973233157446605973222631751561778175839855207301088600290531388789308754257237363765157380482236675192105633244281602444099378973702708661624003202093228072650928733349914354840016442650590725004889145747239422420147875443138971959933815249269201922758707952484521238750706398205710631992280874058063012472077547546446824611553034377521580711315706017229784396410842379040593639135396915091607116682890005797568995359032492385835569858661853039860426147294159748089442093115663920712896187353746189013241782653661294664860647259905917200271445460868661042755996649196717045485749982674778099651939588405075986731177832059615635868502992951042760136070635202109039646848014912017172341062327441788523999400579957248131052336046224435556138427505924207452433074707056682455772993501764232386929487709980110836146834502013394537531613109699947272193961498244424015353072119496944639644230264932082347392279910014251866647543242823240334280112402142965067236319277567723051142651039950536050779154141946469990832770704232543211538126469092599019449851535016317151503088421832686875739014957454946464033348877697645024876348772253103380524525928441797188827674535935996936624131419737076903507233660476966151140836738606773845650865289499488729089145953657133636758465869055714035565445456498777400215827140641640026745628076586586086260727196259041085355515077592569000624660280129431292535107668632294527583549009978069647538990151369938759067940736648220055422725327985195869200582070643156666519677129115725567436154633925639562461656938502722501667198850430416248028136794974501191999028364715791708259443631677065033051217173750778629584030525391799732249085833947845152498896525810297510089661261171017125630760693359302298030807370680268586916688843737812822220812013051985919792510979767589156935927513061486180109164693712847509591670191827803240030482408198625936193439533890751202505861859667143406363463189904835817679238904806289615140674964638244928458870700768152167253128212852750092234724485940768048397871010405912895241486740503541211013659080348693154959109188968463329503596393076128419516565660166907073589329721177047585697880752551201055196206198120032574273560195354885122346024936103821260282097342740529726756696683550123362283582504132664088332029488971055524436663009867376383233305818856069984290924239781792553939844768394388487875524103550845099755646616772391184015875831558780736567752542529174439654478618356085960716433465418226854360394440845144738607067755604396616850486000145950047484692258085957070189745011257622010171410829920097657045028098626979983969647776680137197376977694227890610968253067479346170560399482821209443305846075714638786353244341956668518968981759135039712971540055780594930894453017118651424527349373523146729803267559422787226153785788951348909486237190225611902519455979923387588218416317755829262874867217780860906520114086709027782235218086816575673502191887023804288448472438243755797523400716278517924135524600321137414955972358624850342974696772806994175991777613956251068486241748501167574387097921940487489891123263050252293222848159075953442339073333922781241496230574672199504241596407704621005116911638875338229346124461201145191616524898607272066991045664105661424755864810391603029190314271617042243435523718645916011115736603736651866092488860719144856707215445149625937000809099256775638554343600102645676219401599138710009866548253231864597108813049350223779923021593581559774513008739240445047211091410645656949955900015411956870759281972971393390693733181485505457711253122103396638788851988440979292662505175610355139512414271455573766683392432590054783624290260052081023287310542229568853838040964644498192921195104561952986664272552096421051836430158563838940018746346349073793951211430084758762193299570297807109237068156538323567486499496345231071793114752666129168506245612254571017486695553032234478821124811061711528909811779179538820600830058568130431102124242568971516567011260467039633060428384328224069177727588277712890880647160457712568960586143627941293752797890242188683807789819354056763253662965902654267097956886192406828669366006246127687466066534281602292381851291513868678534320562690183075809140218397084106677387791834467345854468313128957909324475048624632766765694738240981422413673653873711854890920677076211777421805510239798672789131307403418372412693137704940103703225670085707360006451097362025059435641090901174778176754646165612777927745930044526662341114159100435878388320277549907426613046510421560238924911664087098667302217196197621172268481177476435980771529298726421261447801097799294330875951456807006853819627274510666863897457605002744554784081002092947249514611252788598460178713096960586531103101887421152335932048076474701171516780059869010206282784647472735256381614902693710292548479268559833008482892171411621915097750651587807652581356116791699152047518463941908224365035731029968614751432859467005984903901942229263164032065630350220908572283575834962031638501854741772403650434883209400432256542594913167320547285540942087163117918002692669001726845909921402899098419403916857640021012607951725589184637897277645542327550644889648182620382597599993148869499421293651890196196681664938266217790974123124770114379602599087006216561294326921306185660725914464766154862658190390699867721209269235592688761019536245293931157143104939783677669335722879618582728401221677740425629425936328317484951060533739698663185049685744086648949079236203400435025036316035278595830600643906332592379566728886939634725330688171544426541068153078689254599127297156413547379615790454970819935271071916373445608726632541779984522401762866348333653552465458208901646220051904072737864703315543685115790386202312625900175290169320149807192487652444931364455568903682118759844624799661226468989873774572582415683029718879879155947160370822050153726446695127021598050957082227770161818267528600103317960305211938155614437446220639011580363352935518674583421637905689621244159178723531442704847071194326262381087082140469614872745799177608810773983747901260983394047755074415417351906853336451783532191523470601403564549720081301730794388538527873225301169746410143674275122229709493698847406838505495372068713438912786886868943663492923425344120789781691418228595233216939268522417299495953725036943303104883938775874492600323468278872836939783069590511533370456284814707469722175176971175052432519543289401131693704155110353377281435861364173917780393642095140769820117907141522557078679018190581361145888238708100311973611176074031195414979221465792068636992908629956511238068249417894022165572710973943279719577227323008229398145013353519199214234031175946069040093384466818131040199954799389822511246888362025279969551906093475971728484861254241008112452368022164263030834225695716484509777555876828324694212558869230002387923518908517817031463139063993193741740970116680434769663196366306922817585169718552607438603091911187403408215736264809945042830929800978456313573557520154524276177323589594187023522833358538506676289135602910132657289080466959101727833552905278964384041986479963178984684095999718208618967675054242937628739422084332269426811528786258244442999972242642576967471621793119994391967531370403351557384907814585804646267499441061634919769967220362701502245412804747933591317588829495776030429659135749153315202241886498738435223669504704173086667048652418664778241099046814394358470808010802107451295847345071644868769301900928858952738931494798666155790900499707861152674085804012481015929547419578590841726398879328399355830691943639963799897882979979614334129812692157025376807793762388993166473528555079260261952555854511655061799262402586224695256150463183812107725187438719160934924901634909726316313450298750802045484121487300430328135756888093157365663860925995247769767412991975070147262818922824669242401673380335979079598521724545025485345250849931753527750061585053372197733279280250469124943565507207916931455821318420042297692529765458097809280794762634337994996107900430545340446411627708676173738898088320562333365149119518088268926230700061189976391059248643710168864916745901262195368437801749380321148487796952979206315227974612628483777632605823925250904314583443536673489097918205851023550011309940510209982021589626929348563424374200023873878642727762392942366052931057136768795146753733685875385237279312669847385158274477906397830306100180377896600574805690881455450522756565743645735254767702566243046700970120458191797245089401488180219104046108177649014662380836545270593370383824438959748766273266657920812767649469459935581513120591059482640760303932447066056876383806249564792023961392689006615089635996271844740999538630946243535916726416189869207528147027913644400854201616337583205819788771036991921977580878913721335380787894318875123766145970514597198255623343075449760375337392522640180782910807651441469955224463763460495698377880711347822699346091040916300844873372975016690350970022914302839339903311626521233577715082568135681279168676659593626976174783025284838348877358561373997229103342467766720749857806859248440977085007628372263577428094197419600064128514305651546996138068592718109173616361473837103357171263207892144265543128465315862910652856890284094499845624314125524931143286419519703280893132387015401580495831985022649741553233777965919180625918682909510055488545707724790413258844269952955881900178783517325874013903274045925203571124275062526384353203117178995690840488280605134983180468964499884705722425847821732510320974932828568195449944678430543510298274783503893404632052920356720480399421742470466535882464225471647385779103295707889233564864780990463048350825028800221561504401759846539043305078257591272817657059406412451407695255273678981600506429117026773257037210049884937018207300778001095509769722068522893431780228021158295707845786810181388781641278549621474256358792874202463608697318430860376131792676160986102692474814912292294362135565927025466601462452702767113075838794324025742790178975219616588397756557398543956805661054791996398835850317243914830022412262421486536710548782168088669075862543117846615281043911798685723771261464701350917046430660099852120136125737362479356637380242381528455131514375181795812398449997570407633540688035380138862793294914098793477128697151889844791637418519393726159269575667945549799222583293812951352929238198399184864545453823053289252257483629727951863435354426884739625581147557502997673228770851439022092182023121076281952065588997409788381649631049747217932198227428190794004892903045516976260496908157733911212734631388075316421699493856841724944335334029939324057770189097401587429840617845173759543297480367976075258735328980081839938347708129303894968715048941334070077334728243819629550056532071110475328482239828398864396566300950496044436209410297093769979165253393275967765883768176877287669676605860191832952304098577999978709060111819384826193682265291797048913248039717567807375889735212926997598610200077393206949785758596915011806998388332312909119703502410839730666999249231909239772872880529059980818921703747922384209121471954408599786184444033081041882992942049802946221200028826085755745025377901550750235584491015083256254123450657062584291200108590995588690790831231015696837210585080223483373800132505956106070665210117508675546840607158653431036540021957814781733280489276495536729162640205634992928072156530820672134407071264418947181360342277136322294663419361086773661145285126126376309268252881822628805635782838677653140770506820824864788570534593358297711806839063545552816930899909052340613238992028987582260126360135383903388118229358089619508074440428954521989592036746623765460328664004728464825873553055513515114818189648953210085699190888133800661811727481534979659262077824714150295270760767228537993312587225705047957697117625215675984177104039929178542763801358408497581984809901618174040376588833602245699522576553834771719813873109390473950680133302761417963050980516154575658678057152739970200489505140318191836216125301117618314738990201733614136361048476482721827062609591702323928747388348299755507755550891813302761350802478637476823474743476666771037276939987742942752346119246404443677862651510863223529758452931197619211062703136501226707372386188808232270410675781423258857354619600587959353298588087253975863542557846559418515632122454897983460678256793925631390065340323757466734501532387874476193243545034030160352841528118900820233004547724834283249628535236202862678564665693859949098828306001187655518144059843319537415496004443624281878078490292984167510675110026816598831465768061698201576618808364776768411776663884725209340716791854350028756141443206160185003558089004627803332147614748491927018449487585524358013142635767938898091225882151454219256545811867373515438180914052817989437923735726814011870811853823431452235837218319337791887271425538585997943618388398542700950724360907990707447181534801545984238505915442595826487504522515564432046890266733850769553012387045115458839635372774104971338349938652086378329628744990618797326028457393701655685016384239122621939432621039094387230040083863825180909161038489488608772643207364912677674816979372439417908102292282776660993652818667513092700325136026933979285041708096008199240476671585910324305099335676231375587051394062518103014670709705000551767042829474465786737829430717245842608106953169466405438413134909376892407836003018424288089968924822899180506253049905686584967970115199383029311009239280396126580483211678433710039289668872572001254252650682418098467081131309814750600419429558381275667167224778641549527085163549998529704095844088129555078208643689309218290180806764286223175708819899699971760065379972854530978392692918580891131940179927371230672347136134523844928990519213613357366963602901946761317159093232236923861528780910406368546280068318514617215423118135765554101691532722519220755978365151762162522781074442168135652041299888344213392440698216699454581775686299634386207339740616208140461786080759994858818125369242666887669380754258749675812372874951132030827927753328543888279393037549160603199008825296865315039620240436720644634293862133535689178548025713099290970004507478417216348249780079569848329918153370493585687409131143926268441014959041528730750813455499886387867904038934971840310173437631521102546834279586641399988918099043816350972384044227114015470321805622442438069385427749530279796451749606033617740239420166930167829654478878921529325442544211044712608351679350202233098972614238380215971100264099104390063063405096155898874305669113822116212796941444204841137843131852774623093869388875285835755918964133380042562622619078290184090240289943127838055280655631284309583710121375669884797200414991599234656509841303325495024165413933752268667147437398370786946246856146345798729631189988881522592664768684370370413868931683171714728628472710454863219459000568596121061009590924264239717069408883787274485655008573250313985147442812865350067217496393627239237133413483624675097152004910951812879092303498659457225352519485962856988957627728103843207242350985114728125706804756847540802963599392781813000410463076900290382535965617356436112692736499158377804065720935778698474390107885558470048906832393540743451430582448429533037448945152567147179326735867184152220267076255117426236493458342072804663231982569866271338051012318136341718218747407930601540813889643165321092441880651055737002772787193361442175304934200151314930654827048700035330733849578638174749699382709048933011662597181136313014894574582049799368874070099830595591251281842197558091027743854773503041642950355381202503633289319308089991112858733453341136119812905730468305571048056184644671018316609537131363137489899114786846853174874252799511220052741896464073820881810037482076112503735509719219791238627817269953527199412435800515897789817085154081420051914762795411804606567999185153593418018897188961220834720945195286950437778737345478871529101937781430785301876973322080338439326646846928203253354428703233774847208891193971930063953193425184567412286662167327033649801573908137653444985758817940368986857984051416678853361613719975670860654626967419654588648358758167929463906943295079071852211827009140049151932142151004074784231498449447101464581469092203545499658568989345464426756234068995842254996944042140286917815817499023332136025252739453689619210872720678126225494719203047748290175861621330426896391838091160792294559112684867852011893021684694810342108808660887734812917128393478673513632501501895030333842167298407079412583433434164403570079628669226375545647556650661204793547708001034855385371353352248833670507450558404391106565293941947602581877312094627282068271889735494361054859975410872532332060680094211893692234601591511269264238441558070073572027457334205321470711741963720931687743208639678628971851592588996563160025053094092901446118005460571498557848023221631558028011177749157877195269526128216086536653882634233644206409045461048083646765676200091587246904297554244588709058635612445667707131472334455275551217184808697645416764034069126013340500665856350069065475817155308792295296748054088815395605619175237283274470753589465396674398662202244622676104107639367531833231503013245619282657661967827394364969994244472396700601821688589305722981478528402947873353107033524687589333105953678047591760871509945765375422011377388229946503919426021059923605074897347291855817643686277474735456545014194030151575394529932172218776619416524188145721423984550247840037464363319419046880254632639178972961341334975606038759496472754756609529809193093681209406099594988183962399777296097208426384778698872578180828259168291376024446873272140059308009988144721716350491202783263179065641142864421417022190383490136981086070270959261264739494654132757860313504016853219379061675788103678422142428954549806570078339385206907461931889235177677500343557457747571320296787259974310507350064406820549236776545937734044481015126561938147742719263307169235352586773407502166443387493639988403835656648043398095111682706090753356771212734453371510001953833089037456523629274560095156275726153469470677594468516240703503121876950330880315368350585478749825529693789996238086126808004503743604351387298392908219916737056203615530761072870672738305760997616807094967370858975995504124979219873934111697290631635570891933611339697737792076297038483992668975669483690362842682299447300075361348304808167259702357768132247547465878373755256758902833298837401212532715252483448705385456498933455285082149440948094913361688384419683519075986173846594908826126080503801584666300314992066461888420535475923231134164678139291209334491747185315322617180721082649095803445328516765440400963682588430849622058838728200547725611294334222396835439549009087862213121941162131963974160995410244014591932852284471273544379316996070746302707554108980130571367884065308111302340183967134922974256041732618324642690333788050097314208641721858419204615128354058871655026527607387091755491374034547890969486380010320120699852679017568646173820441814845460405170029019183340083775556515870472597651943558096972060613187655060728268080017467817722276277233679815629623477920618457115338760099995165009900334682672954217952451963048662172174411621855368366078804755545761783268759823731655873530346677700629675992634940350124879371142463322862194835414732344423089347060358153084603830395681005965460658839636384701969290893708168399016802892071742231978142072774225263602106208175351426733608089847294115422613050495296651027826712379830830493754173565096916546952090679172510418910033960646691797920153450124144528104823597782364494165856468037550423121535354275211932358895838991872455338730673493862324232067017011732604897414278738531099309936918387281137830940964560126741499174874309655480237005251477558872937382963771154951862987465704038280515417546434455247060014963818727611956081311553060993446231541007249933692533831153102466826739563414875829071010843196626910821419096323047257685769180887420968495999076055067061970301983980342781806968838343526825147172472321697352324879903242009694893190733004599417846571742054464582679217050356567558183913176691829284795149205121180887726480987825398823216291749652900248202650356799841580210325605079306293681227900428908243110716587728561329986139530974650176583972409807784927685903037816065142235491806508481389375542793130393174639033461154928831271775557675907098297405426754774408496333881885676270764098791312418347502685974677851397172039846892117143557642071366003649029695051942998345368633118338482030625929661129063812447696457114994293209408690155057926030911947300864313662069194294592978903003242100256137671534121993300245088428343278455780148285697223069715211731405472416129319331853897512060605196703288586250486945231370208026395010597552261172436075734997116023472365523267009401559956277601559662352869136705072129137875323667956246643011271321433690979352812914173364864647356865056425270924564526387806400319838291505930028062482881749601155909460918254598359903385803619126601866532878264756141192698875371309407121628374248344567248314804249153730531112014866407838084540098663210928291897858568937976162258419921781471463539699298561164261308491357340152951531066163436938242042566155507908579313566454422023453912574182615793373804216621844988113360464434839860618798067773879605538643809236687598154599158144656196984331388431853550590394320355063309207659296275335990485893053852155594318932492261507050275525395405248543224094089042983577074255069666044791117164752944248969337974982496171031456284378124221214123183409460076552450704546816355891154370869697302184808006127221021044636592178012497595594479521277248021627171638400074527197314942061306550934549299622150859998973873811736092069940358306600511821215068266398200975232814774700118896329840825753091912100099751931305166645522507288300484733714367098534016319420217243709220051173993285930384648720126451067810129057672227193223107028700121550182206779634486217961443988535379137220983551904191781090403542990147540568311353759001993194622120164230364880004370479112058015678993076590195049191610558694003767721163217640527506928916827619579143553405775997778326256992200800544403952181781369679668695886005439063876416942386034464809093194674807128752687842591881748642565751583146081383619467786472004165854514819754288519705452294450741950091453922388034376235912475100366970384112291564328499189090447398496099214106445429649289559117836635033578496273413980893960966231862592338646268862233646519282755243638935318397284207561029160201534858454508628276308372687851487862254480010822925905543590512985809800195538908296647170164950930473277047466617236920543886431691962435573791064872738495860518776742065529885522088100258831578066947425920442656286086460817533591512703774500314881717849006550190911905955649563328657524804063605803719026860973790749604572326897633512106241875293789190290398288533700080949217376707803885572813596771319289989076540878043596934923917082397654209746281968599368079896692423509454727072531128143809055675845738628717642592163332579366141092036165063579970070210471247318292938602174079543843372253516375857302109738900231601080780011232080623656953545844372037314900134654925894830452258997989481023615221242760582832299670285677388530306168585309159278372539328898842744928663647750666479278005668465831700211211373669904116347770802253025709159359637960432305830383703299067898483765201242769292104860735844473408725917204985916721432790958107427030425699553914737800640750283863893543677193208256621409996753987182178506962727845766194056522422747892360499442024563679034591023705534476405950895158816178432192855510569439842497343520142704212708759810898659039738841216111718688863657632068507443578553029976937292927503574586497786898893096386191863795854787053735521925657938443093687603274082188386910512430487396878530819852330278741418554734304244524194632783669194551811669747143299729766845695670234009423235731925786070840398496525856984886069581739213966476846681248058727376656397425039915167890032779320086339453438113283979281869080329160276603869742822422542844704125276921759516977088817620529725127053716956401073740239459815191503451191774702825953309670152321091528886148229639010815544071225403039282261706192417215563293001039590349322411235863122607280816166840656083370767325847051114551396005092761991505299276787715473636779103506083752425097617991860556291067963273545409888804120269443922059169660009131580788416539727959617955515847846890089249633223418542238970310477649714261332380202509751206952853135539638296132192819946983754780484353702243055425007973619954895123915770992491084241900801951817046793480446853183063606201706150337455719536938224591865161175190131348940640762117982131412932946731198231598245820683594729194296713786824847784526069369844410259468296975603640870341740758691629735767858298061832505084348634654255732713986991358028723176111231560365632553726239498488060488660499824516530137687052816041256114290452082439301870192755165176142175713463064249763088947712680941575159542908068236278730978466582158077266178838126473458494902757282566620855612152297961297403347023216484828160094422881196362315296027854612867907213710593983661038978132421993068889027126349469230866772650499302922090425596395453393271954914477405469327062207592473938783794031077301776360977450443437487364679813495112009342742301363152632922362256325525729767660023771641643427793169425910953976402961849358711047208868364885997698973261073111938214613295742259439383621279103963703249522434488013976095350764457439271452851427994658005088929612931169910611946501515423071005907600426755668066057283507935894620216470647688563871936139043602611548438404820552097259646584916790214070475963480095957486510899658617998442113884768444892896708397685961117097441713397281101112814270760521716890905754298425429375302582584031445497621631219477278228432931050811714244942076199880592129512870102263554818121047538324043929528708095608068255366194208253420676194634749894733676446993707311239313805979229923185323564803419486445658178463866122278124772122697981427555677307643227968839848901081198284277534521026485417364372924542813779414168577213550972769991890963901373906226206791700682113644248826556172008199456350916261187460392259136848343779879298492076742118548559849918772241983577307931181155702897277373826436110454339198283149541394876637723699311068528577350414569965178729028724055080477237846457466562835623673641716089752381922733438529633642804441836711361046349516098042627292594777719859338084730098002720801567837235266390910483530025375376821900105545822805076315542797488980963128706420628816263446732660715708625675596778686000499174908854928643336089378596673469022038829634196668001694243276949371320569399368750613923598879076548327105188641089648813890229637211088276933649078977030867048554750158927898231215862904613404601326269900155414579383342142924771564670247022618438135775015208191234946988330065627421131119562624168509907606702835272608798146670972659719904926495850384736928690761264924129078049777268069175763247750186557772195415012823989583690482468159945708379114839108648306732072705566219278670508834733846919509672258899499269149700012111288963035539973385045297805884044715394192503236439812784688396119483915656893148138285873104361406743547026604132808757830610787858185804661043681331099444601978408901571408469998916151876148571861601764115292732810526452343020823666425403372775449216044071710692371039801849972485014871805822316492405635062525252426086151771396621293751593837786991247550046605479897938427977509576446151326983665837005941570822230055078996705844155420010342260431380813003805474421164610274598346441730575675971680228206327928909097181961114998207839321569331410975228480743320648166564479535714243142463222467653227709064457210491768171338020946785900072082243624743878334558151963050748900132666638726992297927742037003521363308546306275812816473902020362910835520799717546540277636112882511813312207990526860558598763448199290089748173296724751966998293025334152132038373501211158028850669201634560053364093222419573778125514254261921364916419889281290784326656886073099697816686122687057266417682293039680903298831803967721507453531031811318932579876315202802674692760114008174009790891282373506095279235970169424507501814775938126016851194324081531345816653165764453881868991012390524113241123551562349548091298371612455601554804956465479401215651898032615474064122696273964719788370482211041315713809607783184565035173283660235547733420460233005709445612128050783064058564982429731696841122000171963444177909955164450970487280383973335764114053056760587813045511705880743445792381627807011313857185299583246489333269494411116210676440468620038303224395118110977458042269271385850397587054805830469217543795728351874551658165778887447620429608710187965060179419574771040561214463936225291563338730433890190977673830755173103475278902082674574809021617960464138717341214670096636841226205516791772518278189408296144399591462170312236518942331192919759805920849530934699585095886202198245884145466898701681292447288131966600966810539403232482756916520853335079285222711996520277978419107681745014037661164855134104916864618501133751398719519958058838361721012631784663284449538288606363972581979116582061210310078558041939874270200131370582424839772131267672546117262226654397732397261287751898114385653832163810748302480802373857888673254400416622834857609150492171353592728101186187817169500899426169401769824934357687210374600172092302201378896573438708935086808475667326147375162328698653885448585251149194622491181804461196214700465462454486413961551286427397703439852566587663579046365098067688023760356461773788757167694161471369295885196351931710664102051836911419641958291087620470692984180160915107468066533991710815153800334814176713251219209944086858580666078871763699557553361122563392820727900572235595949574692359215786270808462158451583492136009267941482063944152769152651287354190875165541174560112301105840138115003855424391826156721734606495090756177788027353837408754868070492779058904088332035033269641601257979011592168179410624769745563111061863409233051935702994833038445569625783561837512014717350129478746878943372734988545835406169492747945275871305358900364807553629497395228563048444876141270774683482358486955326088774143838210135894007856245597290408564336059856835056993479084811378128515824557935664674207387390863612528148486765632278763142283171807000225897405043160200052524364919992766057661813024504741524845798595687471490313291915821558021106004932069290221591196904927429041654924069942333298381099718130435303399949802666009055143617198925929400353562981426145442100286102963868074756801801903121918631943884296419555731542168650536352654746272110359664124905296811027092360650007469164356640542279864330746921934972413794470404671665012791851341683828024746450352270495250528973690992622289934279512556056840048194583504691142528496431723186519934812071172463317740758371858737850824274757569371733845861717002838671560127346561211357416791413280302085110428841129562911421306761017161978894858422617276338461118641806107361107264840427208298884785135177576107089487475821986938426289568374287084873834421089324727698148358699740661054902719775640287083432276937449197722975012824346906168103219947611114778752092224362203188981798712823066783925986464044609735921448413004771705300190263854666304258654471257762938558927236982476721608760125099981276706013452506937908637459872024362581018930649864696881046081288613748784154392838836594751955838745973536121437221333517682463935730084494988314752332938829290648074187209322910243217830203092533843131854727796222625001207865625989155990837158263316691921138062597914154052559729219787880965512961861611103776806270345266049485924477115005620206189945880534018648463174150904201597507934156608399421403477036556472176132183620465422234382886473345149312651323863028441501383395665140820346954557847399420678881765578018558712488937921076303926987541180497562940242631765770900355335131903545103202633566187135020585876800005162263613962117085612788866676519244867073233404441621459447977760244533676137347812775295743086771053028846896955165580338083142037039903421223685891336816480714364793589831374621201794899752751502339095533746829720929666826809578339912509740019337214905925918321594052291075711014154428148031040649654574213207994902479690088886105894156391414597175730120725122702938422305588644293108271860149739807926295289306175756507056847331528341213818381790466218485837359668225349254808014119044106851968450632956581590405822762708621372989247040455552003423216670200216685458408684756615850908281965863334884234045123814930075505134231413749964654463455444803740556710111112548990335861785950451020490707823201079453485943676216896110644699205057467463063599733337427695225266033459850514279515186846582067143713754479228244483981832468912111098029463345249491945404886398702001308831959772112348229911123218741421059067544709552826480791760645310819634680735074208711779258275577669929925804602515198101570665412719221476865344783933439752187701260207997387528852427689896307904700051051372515629619422885756748992692104866839135571681259598256396671893991198687414352742339296913721269627996307971305773855611242156228550651528911717943759469726779781013862569843573696357505869543192815287980967925800751199357417235277024788840061925971372054561189087144428896080590755542406463604159388592371427318736006366960303194060216599033613616670539132996799453544093047403225162571012542211614270059240207774388040168876146584181891233506068703810425996960543367787813409097060610168594475832269499160707580946772262888131290983765142420298433372018645102053822905716574038139302750009596666529794016442118089203222681225868821596946497888206617284670537717367322106218775269517225982234072381474578373191131150010204618651982713787740899699074953264566557650734725540631141630662237188015083658527442102547357865345630653756375263202705788321103220763224119458674179118981486912187169968912699376962723899977718346015154738858137440337288745410342684528725437458388131732357131841133253059092467995298448199651235109720323709184321835779063400853488701511927183137365075367116500420906507114713695617172303955530118942099652292657035713205993589104660098860101883360156267540761048637767042460544551064773301405555414460360424804189106351255393372919518901897727344232650242882288359842835635060173107934063205721392236511398182677668107376633134374635877037778891714163503873908217617115482583813129559536980139287186065451640402562428527717140683563188043403366702797805142324675562883096541729801107725695941787059444264653694245749049440531898982656911003579749737679894301627646822581673268108579099671373376365572678750996221707487639606229107131020787160041331634255772707214215337066732982019255251636077271562452149826793967481079826754015171701249169711538631992524935120379158304491632692282521289639213007092915117548704340476323464683252199978363713549180968222010384566821529470711930837086245535140095425389324114321445708704130520890646326199645188839800645595036802761840016203071590932948841853750255182968433732540636117386168566812459325702538392337398362869329843392018700497508808186748694191561094666481619198541358346781716765421584554754930030001099834278973683962961606170849620480182034999681767264810522163365026260512692168608252828939865417486143905470452235941341423360733326832811020277889445314162157384558054504315258624080016866991473003035402591714962700422495656902980703386717512277937577142840390501624033642275323290162096056295279598483748648958522258287768680689992012355734820392374459878355728165068390736696657058474129535804631383369036982319897962075068616709010808821868793301576922480179386734711735909650376684873965032497679317619427147788804070874176521719658004366553322927131856011859069591638788449694916982004967853243117649727504081881958905069408404938447729551997755171270272424054627970662125022414585614120708393913311548320145016661115465793024875734125967768843209145657323163534084647486899630695906264815505218495012875787651833230447951068881921503466234486820871410436353752866371184107153090790490362141747650217547653907692835833353098313019930925532941669855993904341282655878147684770744281557386572989720896580247534748989510318814115998983493670013944378298669911429502561919742389108794289111996961221681302470276518381223463765100999408421464098701090764267607352359902536513858583891484082631871985726574170336869793360704139278807714420391468822636914167568117803922678395206174245933856974219621896174152411047980368350288381265326274211808004322704809686535856710716319505132239343712644964717584982643476451803237564224806044034417035926917982804510970237008640948670480837159450606105803843012934473610251631097290333678105361539803945818462317859551917749891275621850105339335768012336768348078132711130896654460247671307213281597482952823554823142552074612452895890159482268804467575543332028283164907337759388210566253457071215913005059211081913688170163019110439628139060851202977003738947386888076751449839499789498545035234264549085012031147797243962231058392625361921868651705975386357855552562652761129262373276232514238136167415285092516771588743273658162838497985306836586389602808450260788169197589435075768689541941204120084228682763525161858028669712383240302892411072679021989446639429918887119115981862446381133974664436850252369672894628103186627551576804777837493174999308840005914869841162716540117110364314575458055135801584260113276435026671339391508963334349840068466838421165426932544311924731146723980077850009062771271772594533772498122953604820157777913963256294994716981721473384271702975561184265736414914452356235427685796464548913221128025827306671868808550276835588888716669803595665999858248465775923741701162360242003749426700970085648752926547204685636357357075538304466808202665679504727642467346065138296154078074501958759188576419824221195862621481812172430356044225840105404154972621052118769312505557509306016931493187405746846667397393637928637766520741290539009153955301345777830431212092200510831746021514964853788202448516665020020804422375028641493026833762104762954794840737392499000101558616650775185766698629050652455055054959287352882772109756011366073867452292217271888010942650784263859030234821148131118466843576899863401054625451046927052580607885139495978955239864609745263669095524017044891830618111785453026729192123792745324999097412992155664263063093478318410670940520883785516776852849039545346905406905778396444860181180327626399177274600582696154369146934128433425780872912703904603698032872571921741689754571712765452540770126842321538665105410352286004445779778652259333247245258573611868654136840336793113542470955586911305268978005934339319106615339065866919935716542782494938525614346246937741230185984530395188344683326148188644464251025976723369572233989751744122545424219242722473662003892783220913023142358507824131323997162105986928613700673905286074456452116259725284292552673791634116274435060028129624552755241089322924524151326476194892435756438754517348262898231241814682785208261829521082718810803470391671108457418367414338003797452644382878613533616295985167873700051795125474954198345292255021064154901049803393353637189603522556272858273874849663573748993717092634926058593337288570032041724606496236921395085234596898271819407893810289530110942319469918744135227891437038624880278848358764875832046599160806944946866462645275366224988068197477441582142601210465011289234895010723944682268342204431614951473441115922315139587277880372399048796370214696268619398744034763202696336510114777085738109348592313709878263191777791292944367074863050296599666757018091639061097136726988702630474879007379619942737845613207203527205444711543756479509787202643782284123064911225347992944025019354820007360068582372524734257217097842841325001583163212537813595668900759510015053823305741116902430138416387275167010919624024444995119070509366106896899068226012673666273316021210968737552675858277205988075510848191806739704998765128320623753910051603128822203502203836662550926322451469090485916972319305247245978404286109036575614611645778433789584616062719626751418422045182890025566582196035261187115108675232046455031522835566063794463308695194114684274076680419797442703319450359773487117656462656442632657289605831431213383359191454868315187669865634267959418095323908844117400936671488118295376142347567002769042428382283762948470908248504404168689941543885901436915245361549770266316875926585765261177497772096038336876332244181815336863081525423443044291714203311720896591572863153418766775285350382444632802550583415073736050563018585936344306063814740190661667159273313229123400716193785282231296865501171140830691296717405538611332982378756661525935266815525654806944463104397116152436474630170217694367265500715474795326233618150202407907772062935867454796245930700468052011387602534570244565124742098017474313383882053527177992316566822526453348493139730605121144196772124271736264595278514298687114705790290904253695022897531877001398768582292691815481664176645670588096555961427433852391391277155007720130745856935068889561442857102666148486952630962494035724803105079865444866111372104541281607944637688032721721836998772614265273184904049353163176166021057847174813703086681187358792763075191507234938940751175743298071855130267599063489164275897344059669675367263220903557685922801724063813872757725623348162123200443863638365326997145394509735629887542783469168157992571844294874128866253142754118893030520990978528084626732008244871407901976559720673463751959707654135793872967696918314904836604952288152491473671986663279523895735378984328562527528652337590590517313824619138454394657524424780397880660775424208895915926938540784904620359820508222996760883505385661079585656255175191782281790113481297187021916616359455778910637792102837763925014978355661826270317609104951463774333384218636172187587929027802798884264239257278647181779349064201466611854231134214494727381203441538503897202347798693587011254390978758739154446858400667550389588738237571077115066120396637594595385401091318231831233350483477498228796221561275267176104807516561122605280691396335799368381251006718701454655410386010732284022181231605827605597953298959896826775677153070938395693995970274737744084241901908294324489191253997700311211075956194246739715757115616438655933823627764674982141741939075894200762735127538338095551569659984630710172834263064677568481505323665659552350953198376728007071616256633781517222124531458151626073123127913329228246693551423472589738279691579225950438782988817722378840376693514890045754082865497710356009624422801891985716668306408458783895053070230594467109853547760527486527757260931308472150353286831054674304937106222575692967628323881786092645111744975289891274223248227155070905636440293285019748864189855605471713304631211334066050311681865227082960572693213687604112181257549177301466315279909332798071622764416027011830533541762439855679004289630573282795816043358668079650545365297635385143697810508683696029368172041709573867660061803601363818832972800815112719500549511130719094505489523533333892693379061623801538249700369482059061158358588467002725119979157466530021657216064438521361054378757568324976050774387677413048019978869845471640415429962533756188996233829748985107233368468586622381778526014429749103308076820065663500694087542340080362690649672301551402027097496705957617406902289503634843523496885179756609531014842903257834589895210423318779011023790709408253189441199302428653804850826561933996191220477765051291933880649701403472290558404211765441975155569911182421999824397428513356835172081371930634240965935953622518959552184057430077215743281288909420496982122781982872248935508159354184039112155347444356174953654602644129178485195706503641096822451501845536341758756636111288730267040255123454153007573555908935002747108110370502896134632429212298992001315396016188012207216983239353329591659296651160475946455000688766897529437374501896390629555968424131815030707925030429587371568999674450839358757028330975619855393976415027402140517794799262952789799975699521220417105652879655852523374485644711887989946920801800428048897909269201884279582758847340031435156447597366935603249833484576896641370323886887881312246558567646659548001481687861789351203476421376582697860273646006425183418334498197595942418126043845573185374409068156151531821121834358303907124419627793500416308906131134818274621449267563071305254822656239420079502858570850807601526899526514377729497117632579610598428491765143770286790767110984200712338063776982988162530138851900928545975883534507026042819871916760699234646649798656681110730585725678617098462345852653025056889406793606374877211272739579198144418236228867906166039350504669758044697564858797383895226761713416684111082598464597577723174763204040358891457461406735237090265476817375505743296770220658717621355017327279974933018069941401568084007484723439236209920539964803417167899106763470082214910874108135483623438021590554049584153698297632947436196152831074587430474775232692116355488703866394986798038498736169993678268234282323991654042622335864935370747214132438716744487614900688951827508581231935097927617345092058108687057707020836120701138943456871583625380094204471236620901775531982416044334167620015486637751376455155240436793906335123840351332513820089411000985953749413517075004859222056370220663127260911222608155706169629032307314238678867430094175381461833633816997620651166345958261783093741901814892816066012328003801349434094672384384886669230654293620702946996855703136381705883127231552326448767542704534661143195596308146096179822168497717349466954785599485716268061335581998678259937326805145330039580957292022730183698137945805955280467049987804692317587355026638362656732161560172666189078412421667751786073865309934468245663456283968279197611844665328755163468038796885476812259952020402188130352106955650764725596323870118000767751660280073897564872866110074117428747932028732460325814971258266725488772779811588677579416492500358820804881027852752609649660215469525783857478838819270946264093714413403547979449691535983803584047603527329341558623437730637267418233071651708902918731403367532914763202883964775283213993378042614706732354490068699238474957575904481057969565132952552312530535619518129993452386124559427181224168345499344881797284244858639229448651309023837775834611799762930222863071579111495867581755284082603635607538198685996235246824543732199872871707944331244935816859256434232498611206306823197734218435929868351866464636305647306870770468193220129236140318920360857227270968784322668893692449216962811973614003808056122473195816642079927919680672605231286450554280809149492293985413962049934487505602110071922183406897092819603242320145656306258857267720207893163708827305888877154474839709644901983731413149108008524278563740472002180504650065895738211047644984917486571672269716317203114867701498993509063879777549475696528437317149328401292490605733483042661118258483912581262625979657753574898409469246879895122917967920521939045491662488468074346797148063446401666233151627157134546340070651690927466259711736475897896465299126605938443558617310914089653933140048734706928102542571209090880463059862683788019534210056250988135054908562883159087918713183307078318377151445697963895959929643622299308758404698607611015113139137322922919143940657024398601025530829822245101881626897383682362218462154295025105203118278152792958701332151276854293263223183853801206235335145615330005834740559120723792574024732838913695095310235138847928535424893617068841616800183642715007701218381630045075856371798944227582931248641043677395506640206536459248178452355963339992897511935813264578586260239007036060407360352044582354937806651484286542245306780149353886988891172678838758105743868046126986654521978552718957859415980176922615385577652076032188535591404095890941462589243670898849830793168323161739884788265277160164000062280165526564905323671459507008199841649430318501827409453816209224696899215230313506901648170628873019374060674970734001158126802519277022937233316656205475284637162891882780272953714930701953503979329565330459344150987304451857465248633427058336366350018145160287268402293572631558116467660116409196564314117355911513380564906315973467283798834485647224298989288272231732021215978038793218244873169916884474780868953482883755052038178230120064997035097265079750243682790686777511414938417177313268384629264630623369174888102001976995651934495178146949709833089739823769518269379151177242623423746463493344893678600982111148586427997976985995780408893333603439871046193882045156264464716973464165977790614962552674871514347519927341451391243849957861625076778741287168592740412287595173293362502623928295282729935332836332961177160144714571250970073972870036546665183051713047575464708258552289781171078017347071402569870248019599386079614006546171216842279983978953487327605830345008375860004952134306014603249871130667567599420241842621414092541816150448957632368339115022527139776103375582798585426535018411622667358318050836203011027362421680465605294170007793339609960511921298959499364745336418755347083524880335250911735215077847462182973042838979078344246725412727049612796300667430886567679758732464302018853246087120736873525898958808926884069836108307261527110679815045730213575712964221622513148809008083316567105289333271238269751986999727871470260493841251905823392314080911838524714938436303260403219141645763056949622911952414218880970835075182064547403169147031176245337102385588019616048079740109919707976369412163064026540634474322290416100877466967556065857444123871701330817643801068857339563517133259198545831216209132445949418018712196570912065292271371299312157635849439795973147468271722980773183034801691977988586504128243225187370335279005530402864772268789499874809966406433612115910858201331157488828177541705747483405381711295543493972536648610672036164514955843639357306109306537729039786580191009354096482928385741786921321869508458374578277704419467111327828875282151284944000678865302369558401261743039983438525126634946844361301625812018265812003848775280822337021937928031572290333940404861096782304225525999948958685801211814236632844880998977514526644442412339720737110310379108157187552776466670746499588729175738876215197193532308276462409759552905412949338498513391652435407772569419225961030356828122463561611016506544704738693518083406038158649544420002201104521848551096584321693803624375779206205877641050155700142485040413156835011804994587949456068700001272225936430512191212537833019244415952106425246370693804608220229326119621041675384690121363891344409842601874874909021666816255211931888166520426858037014286107519508630353184271672148956358712389941833257257900881310131325065463220175829088615495513871385777353849039430173899759805498656207921073018112681186303095473597908621315930032022826752885654823470426571331809291422616013089409627189591412217896864626603630966695633974791743093225673044271036156529812268576177582030098052897141272499833193133557948017848564817120782626903321567151273122998780010022558590883463009469277465238942106243022670279947526366958541838486708815806528582239592697461661271477568853150450732258048666087180471488609293679311105814727399941445285408212773781631892506151168839019371280264934682962524233798130281980892459272616978424968841649568561880931550087030834240838388453214383407388773890999547763055494336664319025032273343413231510003355228658648753368849852849057981287899811785609754480143601331937483483150855133368196797523493682896775828588141015406189462672790054493761694606416833772731386669975753903590556048946077400207039627931025492968192036504647413620649992249304477128319816579337984698543774630148960810877246723877894666313623535789460589253751618428980162126956059529499191997260238156378659511477958238373184733339757923923173105291666766192388403574961726245715316505731975708377350326287372627296856583866889745008147735433314327589726824445259372227135732534596983765230903982497655441883983577073497094711325899203896499928839729570905584837963494953115291043689154503632931772952569088405462060437418093621880361312543715501639603761975463885834089322321369558003485209376494060591692257656656172425128879600177494060356551187829789924290516201106096768678707936136907929707317910924144216337290965677555463834758856866595264296707666355378163328587330037070910620700622366874341623509358303381999098658231609916733263780893869268207858200512274534478800761199932594185175668887330807579056788406523515433103523809672705634179442274896798360700261728934405009865952382477880397061245029151636753596166788105414040874965858611234106715640404968705631578785033374886677086411649178901190040131109659657120406388125967738363125616895285793311476712752928825880666891154117693579178058687741805942056429361106774781701231441315793213712502315114192334469344508175887512926162058066295552504227399748125959833061920803998522716012946996398129068598795375477303873995062104175328956763413495401796265226442500930810016739847250356696547612539839906531277136404865175372082918904906059791353704485587242641533304943431468175739432750462903480074386916434159775500093433582581627102331599691443788648732299964965487979012245603110589804050041983810889842616999789784156017466121874079185432043949045232535853491102005708580465721254344629418041318803786016454393842244226588108950441718895483334338362311090429239951781903563569364303930697858757090002149700368092479277931573783290519891863184842610432257534190331628766161837213792856944604157601995510927966002945964838382469974001426323004067659830832537506399827601090438609983606399548296601247120440596375835536045227792424351178989160857562150316104954715671727921657343075286238515498864428626538271601553241022868213128820509867312299612560594044020363286515953563615983493766131727673873956847017290384712016361981798343612937202686840625393965418160743333146124691689592504161002327609728785955757670318108315931446094374148611947579976295190001026276974174204647827891146095267441182609941784886223319672332608304385425869051727770281246661265173132282712789420744319959597991064192937088207061404791435404730782155000383926337637338965121241194181408509042346985835600125524863746342510368709392273328091897391540388612422409876048954979431833891421053334375283513118409886018159844671541593330187560516621869219750686957081175028446373837853352725467069033459396487320091947419702831701141280908830770325440701047977505350512642291337130670150620713571679709491374560905079088408832723282526511522520618025030043398632437281747466925866963273172305001872566317394496205341337952452064283813676164589616802324565301257608650368805401760519662857637790495258869965799156846812474801511294038261404159715860056931446253724898955998458096696731076048881703005476278563068726749865135781915374284314774145642164865186063731900283063956166981852670850870936039511595924742004292991810900410638028558646584265621226875543716070317251654216337440907960143498083696254656838205457978417336352212840233253153917864547520716072068463174068360726444980596694912719274169542527283890306509347179322011354546548250373543986681813635270352987925592784888201349831888043147191929075083236310614589202298381844428128653385976495640890415873657364516745757841650650665152020216057960836654787490806153463994051576312781184334892522953414173185216055984259387235243766692044100500536062323408279186798647439334210151294850148586064179408472249794382630595865291002017102069502996400351334461951228602295459879641996183160738168133706280875493271677257774966288602441736576682992123558659339466793900501826093679462156948467523382650904862169186458333709288050503107666982273693773954412119372563958378492151466030851061691687337396801012458246527866975215248435098617662736925314279457621058064941030473798688881414954680096972623528630182588591841296895638307471581440397785732214911249834643072988630874613215552839841496543771620145008223966059571138801702890644510359981553855908539582088073728919075516657838333783831497931175902576507464214288513466928640339571480014751672797477623813941361041091419587097071200719066728324664970013852492373286343589924473418097134783465561801163023640634655984085466709354925066251138333487490099845679160495350653258401758800478939109558622472786018606523663055760432447197354870434276952163980441437071067158758015168165430734732342653141715901658871071930407181620729125807657757965576607241537590677024561594492039130148227571075431346939111964760316743016875964734216362185122410239882272556088055246514869143325606728604698854858242943219499603694550176786902680237318980490799336919772241096968069135982308870995503492776865901761102495449104633411753361150319085902474104133912058827152891632922111130026747377164267760216275194272086616135858878784377159770212151969177595491203345361132293219318832384865356723571552887250068535634083100698859093464858788659332159790084970447767583230461839578706625327104021988179833256061516168936372016389906209806945322245694994614471421485510969799963713222490165718152427021058401232585338643611079297494855189299788463619122503040076838775008771757991591189861409730376332428956869470299135989625402262615198259790868852520538396661249143040114281187360223902208517637370334615776798033562294923766905464166399204224485274652336289665546419377143396739652496620732238532683590490565432935224800766898927759323626305662286964648644540252067586872333292297052098307862856488415239861266832181072394605310685855527162314440330679726632227525328649888151658141705304565756543945468014918855976406083040182847964867102314025178290811446607704933758361921968582333916139017329687397968706832501252997796852740529636916853962114960843982716471126904103747822734418924311521322245642631557147575837842182094087871200410929909001268064751648649878028515331382470653499294618754828935155758192105047857766902278946213972464099136490248109120604790087299914812089103446162667994054722651482466345057285951581977958469912845350348239439027433010246835337030431900258707658015812306934925556469160828838238421949803826735895688562484992160705102331620186136240383749083179427728333200129142458564708679133272645521791959809966856062631339893004838617033666085390355662727428881662244834065958698219560801125505910514320723354986729585875825114568474676069236513051337874296018897007430114363736769153882613502568609432406323451993417424461675881251714870624282622375705409340425759180046718996108427679314057771816768647772523971616247345231896582410625175547913289857173480744010141011332054956366605873719184427759697471847846668430194395204891845810340057315046836410126248226220272830483041746319758836232253528694286475201588422353946448524801351061724377201327164985939661768428220664039619346206592254845015659617425373788614744781408881890922381278857351030111295254423879844186653328175540887777985083079168670042737796844352214331161471968795957514761022698207811997616362207301078868782729285120904983900098228415146580489107597056924007150039484186306714836714521311860374573016363689231512925615847121342775399726821408510123177538409773762987631821880296828879928543103022411658335952063260701272427528411321645084854235040808049612638982539482480902230666904771483639469019388926028821420465820458577775167709549758013990083481290782071331031986243003316173959925717704214777028653548090179780345558152151771913342063935072520970061527556449422312696459297913239098555946924916278145546632844395283550061475778759243624678413956646685813537906080052787901448747627008785393169804479639224309847671440855853227112340172144173390116469377972967103284662122480503031624426992387803870152155195542297010148285225514561793185353712909199277569020438780783045738549812453865332871766326608957970983589688080550770316213534163582669622350330165580243168250935372132344900503459014982917430005281108297682680256069476780125785300522761591942724313620190020564859308779701409210684631781094851433772984064173694473138378828062810316121527451309379836582539671968879419990977959883327865509881282512307068914703575504036855527143677136135185044757391958458732950566390420233084475457310938921237089480011903968087180532713024949975444982923913423683372401629047632055917077801777743537995628441507757269267878921303647553922765574478230055871460342812093813278154913556993852136654872073985609484480830566490466972313333503801508113459905218443382314795987874107852729648340089105841686000805189082565771228160717282844283451054556827999516443182631395352425632873821758198056709351415236582103251212053810625740103469446713470847203835618452567706979535106867019745721996403441183690716069082379587186071906399170601845132148844256752428932315932096899617058497375224646787027386311454422416810132897600377761920662178137241618428984690514221503100130626026914606442923842904246736275999663483690211595714350065051596617869604243073145079541310291848203761735657015411706527443412739114902272388223058092678503158739882849595603037797962180110981173683252332420782911829833394960425263442029567784484500600271804671241174034547356561314869448023802409206116369034466425710040863937913647482343508132443527912227582658865097976663518973925399293363294738329085165854763430880765852924257604534419771129289169704734163317592137738414047780960543693496649006429791063956521792109427823314227292267537741690686013422313688333723253761862804040102055599326407133133454291802023250551832852105984114247290166234650481393308458883768579363030934080218384875719942007269800856999894635881309961424651538368800889517741980569747274774427934329603034425695627771815002870698274646199433004087979958419740130130618868058127251673205063073604834060975728982367029470568923088810399524621532817744529868929747720695935514331601555031955899435791425021346544935273903379159494106757976657429389714316356449681085295452844154039899021053072867887499895777176777097620078158383989101997293577120706871440584229839746497006857301187064609290312519101330828948956157638660806826466586638966749076079364362811401966429106935182051640025389452875095889185826607691795664070026556502272141240068586083061740567242747372475703094222249384250572452663252799608490971753394466200208967596877897454022201936299407640119764788410217157937661825775144598658025383248224823736868851786329080249878451566007322130507987756174860575573832322851581892364377164043334300250315673019508765203575043536246348909332470447903865926249417547660019915575436020248638759050125631127705001662097541167871951769663586973875027814384400155689786489567390641434665291224118280663372052312743690873428356385940809143743351544122895786011163154589655554010528375553220621328190847332540778641230447118127006945145015706761528183130154268633501215804332007379121011741042377428213186068873413716176498747567037252245537252163744526924425643148264456064646712826939659379984693671213122768962602379908149330521176960255432464169414081787676860037803549368114326024316706752018056585570070636870001658244867891579850131229382737205431833925689967634534128458078192371163316790111463907700903073840654148232631640010471468535862266967330732014841648043137123704947158379985569655533584718721360088983122991597771058289405245463676706536477400314387051810232437341527090483605556950360882510694765396348861989719181655544667216534846548008878022281598192098590385500730993264899566100404742585144061986652228233365835072361414253974598703863858610715224168551118606157098727131524808187907839977391419080103560915936636115770562879105193708064220410787749647915738498388423690962274009963511513511608770627401655083614740025261563862545431507426080390591342750193551398958821342541324576191063200802907253224932824411813608035018413034705374805110799057980176490705386926759147007749969352540016181434334311430336860674650222412352196824758877666819448501150882139891209197765677001882238914096320114276273301155852891425724018711225079072638246551522860090403955909939135716174867706460782255147060756316445809663207686004387885136141382106397228412868483947884585542510682043697538216320591763815225773554672025088834249738992281070485008811879828860556344824653845441952800683268646146652020163618707492954967214999964358815708029116946761184871590719022824724577144292831925072085898667623079072224124625436561494430470708281903137227560259618048544324000218861772876163114322654409268824131938627658201391563839292653036134999239924167662931386640344920370062274201256530455193039553778819781938729069746742520770226856948109506456422794779507615836224436493514332100997181156847274198088184063792188972555488505778192279190549772264664743180957446682459145234026355408928243059564397683208584028399904607657040205652333036635515556624056704202027935637437072930652278674165515505441943546347855940568958595117118795327777469995086514008488641610415590088371540384294221816510579474197375354374193479572516738752800663960479644964726446192289785658593052918035654416823716817274408670836861451642139341872414384028050006649771746831191225451984416551377819453842363969814513884528011440976943701671259730803959599311151976626278858655274175253334781922494087182828666441297398180389262128313393771392053166816137423868464904089707431957096888054483779569760461189226551587105327733651645824066508669564477904469297164420226661051192873821728029401010847041748816993714942158362020634070482375683369747432510766585166919916567987418884613994838581376416481207452736955074621835629151581403196367103962226692782508120782286490645884059245034495420861376217903859729100884475548923420065474135790327030074610538692157491935106364164819610554306007986980136906643972429610649626489445973928359047664929349595976037685781666154803276307480051408647525089415755523513427005809144914759384125131615162277677422774967146975967967792262971152205753225338614743972842162060461098028390467255853364062590854725613652244771312622555531172156359703732096208545343431800658893949914786184104964236518064519410449434621217851815741495221898753120892594388420435051340564516708455669860399173506202107400779063983489790558470283121819537316264328550048812010760595494903184607627862454743289986768376900080956750245863548526044365960822114865361778696649054254015730507693283711923348027591032558069949218660919458250692960696146641972882346502512168798477981214908996871494073659232993436135560478171979345460936341714767950635058697639950724097624602551850623937712713920504898120030004893008482312849990068442441715751079532388004666394362605486587762537358077545140963658214647597624404549060629452476437092657284922190398015413957305863709249696020829032826390525152470879774466496970457325904436844064079120288792472554587785381469536814892386093909715882529811560629810316901160511550942336573530333101374427414093942107645572607958497980220565270940640377520598166528576840073909780447615113877730574847156686282492058499340048122503506959548067720238238305847126201179310640878449256617305743295189285839550744814362349329224428895217650683081345641624326834676189282610349157333938902993204129815726784811120329656420522631627642465134863518639535533355729222272453131167538369101844919634324073837020005800457255212690563982840755382487076548610898103651697033008167155279727464309020185672571691397511301997261569912390021422461213904675512068353846285874220292653311376585220293996956808498785371269832244957961352948495536558601160508695444596035087405167968329920202678365863614567145862187145113118997051006546290571631337790948196597615849848432130668017462726990741095636568447871586176985696914835785176181785463533856190808123643757588460489473339299499701305144310632781493775238326342439768295420823851046471211374213235545318078703618904945407039504488156330219600928654119788029512327591509425787797321632966036380300450104276460911678158396508668336063822948739975359176026713138881332991197336888180965334385327927124499352638178305548413376600769967988733065891709852196685775175061639335671922421857447221722269560768697443654295478959889623185235771050963909024242690534014401084390512629561563230167391749992196426700285924487436172221035501811360144211853152653516625912917807063919113281809135927319930221397900385733212491175684232783146180114340698213792337877601574707003385560194909931230981774333620268642133575636606237918519095919347516495356299038735217451689004423994349996335397378373143100471923991189244615139308029994684838710775063968553823526625635999381018788571423436318348194172218257123113977375833287581126146862480788398627606658103581898662541903741938435170640941087558772437313268236622221542196653944189263929389291847548604084576918427056849225360690322320255434714112879733977001693497018103934369457298859695258483742604679565607478314712121887980577681378823376998542240027576862592766089979401549071244380592792177696981579235881253798966060356671881542605778615924713546565060388856781917890738698691496873048227246087077669425143056216660656685897151312117157543679592892011996861604313243370276162764251597254250703403726728139795871640592997714204760664844500986022973954920308636981411830275950058461798919262728517932075813686793612995192049776961594782275379321624119275117513366341971922818455361488695703814387439255589376692669456391230784343658083902091405118776136635667738441128680645001236702077607395871961532045682654686010323060050468513633197436995850424348292850984718961220913264152477922647040059595403771061919705515124583332117049753569177472005407773323338168846292496645694001824085206719611474784636856737333838852609159100400961469981009845729253667196883298185404195845432159529637839950014683782544683966944352696541979517956152611845943311591264244109029176960820878849376081435020659759040621461539798006883667729094004732525513565443310241801239520147272197486337154809471035396723382236591200372311956344775702552593281606135762649642952776681316557904162386891585789290130926196578451552906516405765843490707685055911050858154923353725063101275375474013287663829183571688417471189765769412017618422140026548523691246881753617601558121952261283473852993253779814525129938763397069103033685467250471608384665437485314726398393317296645920609228640951682203814692264556657283659591726735054901117676130757682720834523372226750202343364053396002470647992717083906732302115179516974506581156696864646568580529257143869059244994902730299736163994033165262781430604112034874896635580196072204320264157715695344646967353502923222391249567225560237893495918670921627112746486881476599376984383727736798307284523911039645581891584263127897335759526758117812300942561218405168554516713752406934750978298473641555569565011397337203470864163302948653926002894917920345029420514831318366100798253958789529972619229605558625564207485417717202677681476625575565886791140858871483862531560043172671063567858280006056808241891929568920629687367873569720131704511191693381371025321341320677673978259184005992013611692687248130223043425627473212823191911174389295875916778483153444923271049379149275434440469932290551557203313290471460869872134179154499523508083910772848037197234043375392854014791910476198731180064790207144613127491069925714633559143927853021594495795208736897872873296320389129557720658161286174138383950165860529798911292137883469188535698571306400928261464344109576870992894993575124575102434848870565846942324513556186451643726193669948244501430146107494583310233727946885213309449046057913388475987650379114197848109815257650430427947085886919702042105262051307559255258834284215468035911821033161879689479295448618120582374192966217504706756492206211741767257922554725840450684878505108587976307998622057162176708125275647202462669036541858204370902703286529654902253350551250782216948732887538680732410840357171457178097072706078336304535529780591812630022077166145227647363087129863272355894826683186424613712244018479493131849794796251777986573286278053678698317542550918913257906711145252402504952375065833031771588934291708821857561977744686891435564390808177422789008837723069856926349458216370466945799474181841941589096885581088128020997141035559952237185799435428249831866334595908794440304764958329493299947534314911448298162271730089263915649976005295787446608058379874974550285186517439656139497350894434356832843415448096481584543251629863809894596844035626785559091636145156150485056243905799008119702557942838358944451793513692520748337111013761203467826956216516562414224708059483834933998194696715486983596384208480875397468642809283904886143958642686674051433578287135132412679740969741826254723415321303585086552100561276325678831811676310185325914671688757171702447257912890576611377209021143675853123541762839665431434985961161057893626694716494760532662105297273443380320956285980505638568376877209338685156103592597928672706627823958388546476308920518539740423656860803620720505376212612844880747692551053734915595740813970275139112751150331083579041434353310146240014103784601230963189667791341920333832462901313649626063582380202222393466383879136665696126793688973779812512886214738552271593762880976234024669000405238143931685411275015320917668754232659203597824929801666724581725089667291094860522322371661712384317927512028689112392688273442963530394731863499692264450957323666057979516178779785570324780148469198024430130018684847146097765650631878677994919353909796605101899514403578049257330596497157564794816087189587819922656607444598727038979075549511144635600521569027538973293349566245092191627042389126883907648983326232116812971283753678137493381123310716262846627369182939084342208751413205481401196252455382667624884361265320422606657976820160630950188509851388894372120207160224249440429977382374744185440044729737969213532583270823842392024084192836164859177084569037950827490978551565376380835517141684166534014874414028988409510287331934488290875621602645786262718316108529329520490049413834868595955014216003462520120774909700694930644193448392617137148236990450201817480667471298437983523394750394555908878880098372166434574651038638062932890779919758328075035010872061682746737396664176101391080286771140184660041945429872197881198932223528740377978126831829867604674746452320802038248969699391527329654362092521485375806358080280677734226659916245073874755887250245831525160399473480575972725410845236519053407344932089353761807779548199868524946354487129518409124585513858988413503496240699290822804140758398099636478943018227638256439689218237162178144277156598878086724727975389518890748149084276865475364409590854865536983579221796406557739907173623102830429996240240537858843825144497459246578019766409810557017367845169776744943913228541300625279536633048446502807731787437553514133291826105247841419961479284963206220233327569820630476121915795221609376504971801377886626686703104272396259917311828980869671304200919470305107639936006792012277819248280204925167686085234551781413025326512741918935824331799753705682856806590043516338623535684861538174872964119303363612776073079503888718199734011978302619594263729175238683390405040844246496875889940194625492248551395532952405953747324365938600884788494755093841271517883094535509026741530207251066007995162547450311042244901786944197374854992172643266407398445070949677197290219025896937054683411871396900425043488803997142527586105950129848585025518444666979850678058342640967061043103539887487307320969630792879284830751528378426251832596883723631755735408108540755050344637646490788262762499107911904854595887251790973663419997009798186640498551940331186844321232027644378476406982103647722956381590622997183271983609785099449984358224298106813739913139952843401766872808733551930861012005439821458912948367465748020027868264715573943195765419579239008544735001204040581940412061541780733571475530617678182923193167493656143387335733844553546808134771939083827143090084208730357710138479120310174326760469949037373719839896197513545427312301647991950706618619820296480667274383687958441152948333165730011810817178609805857662536240149557517383281408247470732501641159383039645537256113749014990725942452847421496827003703226295629842980369012415171297232350615843576121447290520686801448597535214927327630984835689592666572516869401055207249533615460165894692357708712322013067758771983709989644271743639989068880438441285987528228927251823477861396118094803915306692006193979686255579367801068922527129883324970403992602771449610787863648055114475813681450063638454326609898283975266687865843773321379938760010789964367465352523963182697536837978424402631994653457394287435525812863397034080118948796453923489941695753145845548022134700457269558880782494619790558678571323868593388257337412634853485997498498748480185318148013527122806078106673592625273104893609308556696384592516240059113289647329849953071692755838661385521542770965193716454867418508395604220830835868298070578561204911496518066041468817092367730196919833598710015422737613872650792080415256902785718115017100300408106607756479008216335862337126776712857962071962125274023138686379152945421394098186915204986234694446562226769095901271520191945626007138567037329671850892886889354288663059017654325190771725611303277381682466181909751782051322133090210510510200271633414154664054590427435179661002855925554640723581979018311264179654684019069594051997905060112662043593584273723177368930142432775095912647603707412724269372067499519736604306740255321347733647543964806996214608178428585448918384364946536950204589505705363865431567039693042199649300186263634469267629118519807607327556066508804515890186777189164494485446827983936367096214813848330261325028226796144962421776525539927758418434642350544442028104634264342556069683382531029757201798612810009010532989609880439090759866662249793809726733714689398023412587222075448113980053429522234055750715653181508176582919063787702908934117238549289499353627720423907411498302213667526082753751351140013704490780962456245868074901691787835163280120039198998380751631406073385341995144189906994355757275317860784598492592974716126045334138466716547656375609587927614138982130061922008234311304562995605843015086036757420099553874105046630313208218395310553758706417319308696352050251006547162571949309330421177580584430138978270540141590998316584862757391019378200955569794169944126127777897691921765282400276268048461642363483027668335658070792580170164059630306523369056512778897381071718711669071467275432368781178386705748478493893155366154229986318745452946808458470154458591767784236687539164532449311346865387333469853941126904491160329844050470510498600886346882417518608995152055390997894286444330521860302983279383310233400929926209742174559154730288328043997424960646304878660976013314510213545328893435309965616548068281130722318849648049974396199966252849511593566352923187487495269096134650333780433199690082334439665813397126323207009388108862302513036994027289783106760047823976720275511810610930535681597675882123388702684432662471641229004436519269530869914222636117132026734824570411037375334365664616748486741844338576433088903750110734540002494652220420382457571051206460494094513304993472943859032776504381818896086306417062945480959685779538536247489997623750589615384491514723915498418799023452938918855516676909218177076116063320282613245914590308325351867109446127757724786843140621000125038541302535771250589547928699180367628066657653200979910702419409076630935676097513464420710159791386929842106157875423908068171545410620899979822052485822225336984058434514376054997641482912928688033524186644890402107982066893933418174717734386113988704467007927736535651603038011517839996974764364062443161744024704533801917146489478707154562477725158895977961268215955082583064229754307689307581566644398230079826244191306867677685439324490196327202657113211408656891457508668709347676232174513715381786424163265636115153560500217539111012975896282824565147966930499228891335357857119838211657876248720793184616392182371379111289421708129724570768466241209086778349842418757390647636524020282777991220921287704183083196021449824845411927289604945617255389020420062405913333614099470247890960053522339012852166046899265602638954092047203160482898436729583559189487632772857330312954465826186424462326036007980239381561613704199527354747496900170802055979624191865139408985134559358817343064567033916644144295245387461308885317105068100141325920362053707492732109252782178978236243400108619502601005781084119903214577801735949470199313958468450096315298876284081261105434006288134524260724856113061259023902949078041303081603464849405105575649490021138676606295300316640834917900346606434283630008233914030055448739133507813485597436749311250949855186404297123397430387593128865005195680292026112874561179236908143447899557682817274589374005481346490949943787003157985501047173487881887519596553985772319814574862380114147482626978682379313684203851055571671345891797051955947630863339611951852777905597604711031297038970651808011210262085637694791690333400336779016306311584425694290721199609231479768584919483241794076279724159283893281606988153265102748775554954078662545065875892562992667563679698659861994891857304325767275953079861429977296611788100826853130739994154554165463485095417029045243288195471359016770152481593592139201737984368346787099298964333644033454791792852602339189996895271047615436064411359065374125346833951179773785978992179165126709875410500730510335458555387747164437584615481335764935776591039614181351447465296234779060503376569718812153475067240695126273529161386142277005565603136975709986974908748767355679048948025002979165513000763262486707668981435623070970843367155886718793253040135612810416510991375698278746742665725345598258392394030099977957875742079456055847063230296388436108540021677716901811418387100633797276568111518650590158465803089068589569862783891115585934473806391941190306240738737792544409019784383444763251886627022655003858002436405540713519001970526240246706306786778584927597861052082963640711837279941766364395945689090660052459159110258657078158003908060728417072407181638990611694643843047957467222414952439700678846532479786926829057106423195975736872764552048263797527077103532583704854410686889914636636439464977739312787502026687552921114663412060223452190223794551255277037312187616932265150869395712276325957466626160734730245914613975540688778641323824652280928546064271493277373136691325014821036742692895575516530903360608039594097029961275986627454310313940427465826029687462073711375559574678684372894556815221655391153534654443668410993531798266972271617176830983333858428861825825084530543971689133271425510212231351521272553423939223464375122927370170744903619035824976331745457159511725712363655549328861991360928300514011827235100427276782643117694941410931276621809298724062588217772714944518676536010911552158024098174928037114338656723733029222545529906088739257291202035093835843222297837657653468330549539228228689569309928031621188298482358874150568696523407737929495638410607427813100729802297522810528284615201708287678119652212111609147289754465836929729085903128654159690743943443194341022860981908452816257864588064686132042933982028322228216359754622089820741315030156240903633594013067421952094754156884701619926802837991083017667308996586220991942310076377596687931512782306164536561073142485723208722550823987440651060738413215049007833989400589212028980152256348381048525723204941033420037819352682807342492970836384541883158987450471881731994661409272350241064866864880391913112494555872125743299233697530820176890560702220346749671398525481187436836937577248646323889625352790795440427097596048764875324844857685346636660123254110202201613535038745562813672063622811054874791286457502194772862210927123755045973381434779333605929991119618206131540742730763511220116751202008976876125961157025529181596417666812396823796147879520011532512783469258522495090657639511144805957728262038543898431629989640864578665982680538745753817422206055254003739331417629722030316050427485070324864465013741162864148944975804719809378743014125681596065995571981145087793334832616527493354138953433672400530022034683044475043428977462936713409743376299084557313516273129021296635868409883331669738362377347412317602931998210751361053906377014214248504225539027659775654800816591190788951924237399536108690022780681555945279977391953637305085483404469169357541101620383506326855796303653943908992863118675326329921169304163522703606393095536413310274028006597194164791564929355050696161790969686760486014248873048885916845852364919198365164178967696850863559746672452049585552337005148010773849360443940021964150454387028705972567258089685961373366501749540804122161109796906493331702517786931128721761787694427187634386076658727351435221481289836503866147330335047525262219307080698432288233533625947219334992149533835242928221178118506332183451475574034482958372775123289825243144602498295770045801994113129579036199826617816328207442784245391707624098809438236535656056040281578029883448289233212981674207507368629469040961077337073377827988431709071568127270630932070244624418755669181964840900122168512866215275763572219399561814090307072263916767772012860698317894718991190504179984769302280385848382781122374494126883056866441628074153000134962493930764820522451188801773288520214638073416747996987684154558390099471443100806142834734404614189762707905071823237016681352327270900673622795102610574558952721042268309196408938076077789517097084043076246547694020204635825743634331421814868121449257994763389817853843255303104531550125928240428427142393311960373065153686651949393054150594785767345727230435045127995278788170501156504847392183850818720513521392439038108215716506774616254681078936071917309166775024109455053012049773836225218115241611160180220878725024024623969720299630933652302221290663252874045006386755037371370713374328982765122849324521011769279211127151408842464560465456431615949767171626744624681247825773338276395654092347869048308791113642496420574144207012591995343113294905665973274175358386898318461432865466709968234548540511759234397685121532177268500776908314050036197846455038489559715262764429059222952490162949809829129779819421161096412758255705954570870390069629836276880909952731216476908986937631089208095329735121608236168353876146796359917721711982374132647703028192289172653675045665669380516818735641902636623292720189050850339851021836570339451296539622771452048715745574640399403074695037897108153667272116023318407026658660418670958824781812298799077920304010529534835350313444484953444956166544772118820593004539013388947035728320523165806192158340605132223893540142721029619810099008766646486090810097268172244736959369888394265065925160445791929470938261175738125536887152164864812486497006183658952904777684360288566631833361624096277056730365127434722433161705056382788135282684823554390662563674671817337766373655656382720151878605211360242400460658694763756950123326197283922462061665787861522237306781139968919578657455857890095582707657942343991690226978028772157706754993760287288214976657757810065302744994090076073219825524999909790644946754373142127623301101200979482209983857608934672640504573794814708519902872857757225358055616783796664527390150747022527776938402542757516365804692512828257786183245046964183999214281755615767905585913907883070065318998876116440766979278289902526365855896783483046930091145586625104139671883822955129763332950787763624279580599068518781657661346012583098716148369453775544165983626485493391931497193117126476183364123609628185661427024008549832203338573690089766895653473063828507691057337099686905648479106944047723760081151792333951105965311497588166123768202491047366902907499972087212207583368690943172966930542284594353191193594240401923885998468413329856274680037219253428013045766287876044214033863731976291868104735330579121523424448372042604586928388978277756811750306051842820160347407294172608644212173815268975196093851514572598682148457101100283128246511102188481918695144035323557165793320268390702379648151426406835707262763162910806089289638228408936497049208841002516941111444893166772446840054561673341187973363258727564792847703881590623863218625719880271365572286809618590320849286537256335094565451797538924634686558776725443859674917621349699114086661443158628215160217688976424550583288233180642186522219207553321370841070372127039464315300105472995133579335897578000865292420863324745456764039716301809006213859121369553482586200009613059313972359741793729390897121717407819112400924582366974465298384165949103741938708712397510682539071520049613265306702078490507943222519328130046323946932123442087377270901567700586024189046322879129722735946584966236790181335800588371712702202801263182086340565597639205573927041767762614952659414128477466099950787260275093240585573723005764697729654932035784448436468907673335146977653315449039129218809002934520905980348104904646175100033838779229275828052388396990896065240135731519705750502254885533958644080561920168624237855611385162947231550020460409024456387274861029954117701639457308411436760334389513982193001820759636802570599185120591177469690579327121896471681589838083278243739140434498544414528698494944308532143089114060494717605382352243652230535443780981803566495884751126371872900818446938556294491312043471413708404072287160821702834717585682060119341691190283296109843824627281070650476648363107306930050486074376883921059740714529356471186063094734679143316356589145672669129020650052104756841972035743919034969756710496885346193398847542990835707476048225213250097781033668181346782728826785972200123841665764439297383926782595616969688380686670796748148776756173491649775342494430822042017875833863999954408126395451764463342218675400337615321977015281178464340384744348462365351173837016124253473752050530858280149239299646132175647941642374496645574371410903777112321767470047872322353725224065891874311195120250284893470166284594524256822647129412239231710876105594549462095724660654148568401245728872141230398554506344904641085529026733325461743726204846238365638761521647638743715673938080489256350753040142514014255076701419406575944626245549347644576731211190386200211958174858236022729591499146890308123948598690109534128819929778936009339797748605657844477453742888497821396890795836507506110760914992901052709629230418398160531138405675204456978777829458082130636550039627008032973289917250765250839017686961110696579125599416293686834895652586883556617990049328622606529473238113627616127237025050052924440464563273201071145956515949161985487776106283504489658067747600584045123638228364591813262630810178205893716273600027440703706853453592416199748663593704954919960858781392935519345876154992463088650002016421576042360067640738911655057765939487008417959166875762969201824609627279362108228026735329735712746280772649767175341225381941517885238601702513610879985350347157988514843873021675770820721119888757544324480749305780168930946688785604320372627280366902151281564706593933427461935338451707967381879677922445084114021352116403546382936604866298951093253039966695302478886150502762067577674375062204537335850727725910773860480150131522479480532980642164444450821805393355668280790480187199824750768655007175006526469072364437359612204162073145978525608753374715074628634379482817730530740387257364322227007480789601122977730575088221053802935028834160377227703311186295119038468322611858490089796218794208950271458317849009294571975041149152617035383871128472472219069111534922545293489676055150768391778784172525155847133388684554398348989571339457410804707259436066829375379422708526425559704546847349683383133050140888290692675857058247898954890263657200292487265440174551893721140920252009664998437689645963856674333593947787696432233021906662249837193517276706854278232631367262371539751193632352627014856779146809630342041325969463181451427866294907151354602015850754632434122130471578075268192386385073432254066176486922464541114406284778989801105923636358402042059118428028468983009771488952060205322092290176438922705105378592307106903461959438518225511873351493458886060010907775963261064411709974061910989438875398196204445698217724902262805991782009834071107112201932441154336554047843736059632516768749062062404777478990195082392294104614342365641506387598088279120558091286572314979847179014517421113053668341405944432343883017323054454072707916117983543159502514571850396984658052329253185063511346634814724684104055977079327971961694945192734588568953569804269994624603287055202449739187441718631996052481283410375160975073437008496313980810383369319904074405704850880890419663312343448448113097360477960921187246684723952308035752731273154114333343814640338342655591906142199204508338733353290418091280077853644486344925071000459984531575625591057966574869958112550140188105896879483446403246529790581798238873133755871606454095553676578876437723950276766642061514817624020705978020697250907400034989239939877019290284441071171326298171194170350908301258342828878550050721765497094041664517829223228892108983802195802805622545172158033173811782132616462364370484712034306843451139128676496843343494629857690727215426804994890432882633064229610461758774701938686010807137520104920731601170132135361712028257432120933614340616211895481087081970241331800114394955965239424123860025887443608034580845940011163333588831764225966368234218038753955805859981578243322744026856039716769163619798170308482510968440500393163059320101011058610356886153878333872089730958828771379048583587056777440875008420280794331516085239744222854446360853748812181537907421369984410842430434401041290573652386322873226815773829422952637822530469147914880609581250079824925535429014490832428393429754880422189080918214212800086940494842308065252976729982497023327738913404471235480895717465824710346553368594010816216029073868792421475500601904476823279311433790610940279498023199629840387348582773024220425880999332690303796664114378661826808315272723946228636814514259675024067818508098736839137250529040061078365924049869944288818247830334172735826381946453884967213034504275841926225816178416805201684005424448369564819220551220662822057230122281507968705686314280349463625840639663171387506169640387663627251201964679800931355795140476924530469181668082551573355850222252391788621687930244056973917760452470853447113572182527506009726708841053416268407911550536273011715273127381151190699460161123594686850059031381160792623914002754434570757598176072008966479032388210584717071295326859434015866364060326107774542771516996948984414485472500479415369520455987957432182788247151062141530050115963484979855031739422998971319818628173309115578318259817271989473536671922065208408725739298504082489917411710506134994403137341408701053932107348568910870653170803062906836355135803005083511110822843254193210694567585481291055357517898408011242055483901689347098169899951686277261869518633592219748942189190508390546867256031961016206638113347184941113268223320141645090974783352145016276490221132722338279348719103695003223585444631785965006156161258009499781216811797256620781782591536579763947927507484982256976016818760687744910235610050610728116166001562828991926686756904079885190297034874597089835539964060942686817721759660355423751577068174363415060814055608153651166793994850012058004064244375848020403728625651036223601102551661834626446311223368507250889323968021351274321674037326262367845058528428280176622728744998988124458002961457919581886815913279001883729193598296595222296851990263750449422905119914144285800791497072894436347627257547029344780862988972420720504550623767664126726175553522117937018107203674363707988420997468036354801608568632112073094446756246894129615528077278151454245747070309830663652889098391386343683653361781560029629424981582347134793234065413971784445884122049166615500886886830468772805825421271410360030816778944288976654907124113718298496276594761106593693596848790733558405962176758611537543457656862291424959768784469706657458337372568718149213019905898554242904533742174923793681631550009596083184609814738031241864552274637078552261323728915998911411265026239885589184927214713128699889844814447021916635921179718156083317617684521627719625336369638998942721934922051236597005977409905700020329050776494711739528197728232694308168600568079198750369705039790485082695898808029804467496062676287220628829716987547941946623379142216490465753256015800411049824988911851566003134881308333882256395588392976223986096830825160328060216713398632925971275983437882311631532914517813475220791773987159644601225130401394653767107714303236447732505470463707797102875313413471907676736883053989193169599290923773876670098322450883012342769076857364333578190479184343037925373982403526591620535580959644157104093214357841810374808018504817968220651541468944050936499740920295474393714339126228076496427449987100850613953702392682002304986952964402975311481908793843606902750517860792035870043891533694465540953633008366702583567478010978982976078152891851989384686531302698462950064266550853167098329418193221050378877158993512080650423538297520594214698894428320989957550965895454950550186805831603949245874203292581018189654247830522061611505961674522129418525422008818969148732800940146514844436453556189741162059408994587488235810698276284384703925713472864232374687175313133804223799844857684697307885732379188920021777859406139499659221194065906321388600230601472885674504087942058760473090834188504893437825970601140649528008468559547817004056446181908607697766545515139749076887171868298541591272874651486783654867705257112822000742821509089587824129514989870599305712671934553332653855227655127742698158815379721886787880456711948489196350325917348213622202641821947610648555902498059563390451207389415456439512351605903287069451102722410582845314608721078467626846329093499715578883191133132155416658642502778787046557826129329013462872836304585765529474971119586924737382699768716341056607086775460897334895694705715583175307383889608806771438088475113539715118836022829723996649100610642292379789083039625448990998621344951405078148498838762684716821762403852568693664570565083480788703402968557642916488760006441320186913163882841250385945888294617710793076001225999088629039819449362264388433034498491619312990007030361454758093679068989650079768970234934893735660307707345439083022150394139273652101392695546332412981644577112758088707848094134919061077510512457908616395749021463475461813192693256813128131738343155965084970239029840603200545966656340565370709350635770771173365571430605738393411669131288050620766077844461349353373033118672119050732963269848321735630462615911830969580666335304573413869762284705985337382272557112965831795699084455341505303934274668735316657392584575284155655478509812843302906644091343016087239866148976593708458878929798273323194631454341580949542083997469772766026304341929417201382082949414009692734340094782399107629495603705557840329099466642761972202325408578943303551019343888044348379054384773954238659029282775635905059128498534309889551315491743578812045946884876446592183651878822889424652080833898961581780758426175350512579895129969472758850844999586871416752754465286161480123075649246966167947328333050980628039266936231153013290001506844958528128992671049444332527200282425082669787320093017774356743491724888460568006205492683415429807463545349374760392570553509259263892535609513852605402650497598528401119567008905479027209774828079660377024271241445717365714526153920463935969671340052452559507290981525991052494033799824242251323944528102976216810112028167152539525951602331782338185364923402182294994634150136609344921474491547254926706525805054979319981851321849073930751032242175101014594540769146276856816840819623835319674318826596720354948904008758378596509921769016401321811255867547622907293637103979447963429233438901129299517227103835101012216373243207422081517805510359726672508684890227845038397293381559921458484760965559229646588006492615539001805280346679126813020550553194519851128507139038786174878443481714719704957055325882806486811967741715018536563693839623533665552736048853655247026153201985042727090706866324668831046548366607648102913293016406149635859695122498233494081098209341521295383651996553042691659000961978834244127685431303327186159569374277122079277136340443727429341352158511004162862142842319626901263291062288573166220244102622089892581035891532385274737183927405649612078868779338117317910854763675071806193768179611178328785379941738432823660182345283151035463302876606488921636195320553674103435461242687248671648985785306866096626608383807698143457808095623828704773160889468378671282073016951495671074336335238308425600801898949616808499708815314572292561577289215148666661426428637591459644405247879323725928911339813129638067286037355029615397714081999930891050241021589248917365993389562320942354180011045316207388156489078003838299317807275594084459418463597550022913469684772254600963947041715045793718496209666564752789115756478162447007508999130542476835504475341276420254389678784623523732743956899640449986342891899597622884432662477386063098231935830504795016828356074143450042053050586789540584799984679894056921488373798035774714345887908024555922046421524792936336681387761823049624734164741588637284513392847264074896188337892200365954329179256109829784790553742173475673951068039151130477536946318577457324399624865524117329438134926848214529726361108389495075735009979517006691954087431311692722583556304841810297937655728552331670500485458742969811924941913983141529866404741230519102950563881220170016402720021627381849974886882223549832406635836480840220744753835294493225589983637315726722719745993914471867211169256040559317550434524840487922711985521174076845654917988031935687711858577885389734507456908399131279926732804948985671806771638611316029285568739839355650492901134767206761217905027647288608383556512814849225735727543870823130656408460576369737752607598606082487938111522348444072837884225635922501052341947708019164170173982338314497416774727722816942466654406143641935005475531013883754515226412510133876575131926414623950748880106048698348205965535330129265560310775531368903666036916398882035413958666956580611991757688391960527401459015961558918729126718667496784730608497490685110783899666156416762752524359559327896125712670526768867447007327627162745504947054801531523187914955800609836915485494319187446663714767135621746157539099488214669525024987108890685401283178885901470383821553955194557272368506278410597715271753615488378493955767275518966981856658195874619964870065923416027950266340929337428928788092022960285672768896373449552954055416681283871766666271985620787897607870306787764097395342596218839182897420610765896658354717041534284582785933474816783393469802587542396407857165912875397302518867547159233479877106041824018056430852020858503613329452686843284341276414617132129865640839801373264787892577059585600527411922027343950535887508255297467210813738169739845689096307035050429736283659105095599070390528365634845135876644941621928724399017283594201623733077087700644068569438870693892719395658935932490781065276979309319786441841626201016316301787903019179017257206545179220283613014095488334583590349569873683929573153203977888534684167936453495391347482661369957210037256354486143664647148154870089867196436619264055918410357673872592877838464022797904627600999666598360639991753029757423174550482460527136695469169155087244263375112508928258915178883731469696442265899052544159530273061132415189341112498846656973460370168599575812184900621350078121257195067981566069845830045976451027992512258650575977873866857865272615526387214908901140824761679862918326038659143488589869462809419542750119867191215267460901468834020114861661404407894211014165769537628145440943363171252646632528896827263602687088287264183852562842619485252115008071022362643311332043806950633632595201904037835431840252859017346770043068254402661479512021878645808140925265666674421690461823209835093129722253375737716103608072730168937324552649843866500428706248880813143901377712405561868357401675437553678357756282060702630216164050994456403908822829776796704081317103805848789144581110472450237222410339544451992654091322305384404004170183200818116342152693940733853141995947152691130974497262282346265785620081792335310401378547929753950150540717237726280106574510750346038175980794551805067863879299321252927175228164069385230565221327591651983226576646909443835164766561386871498064462801108521701363662659616502510933112982686311731601421457530910809666467112705525305462092286259573262583489946127742836277160608100702529146933556793949161870720099206764298997282715412285099389566274137019045480810088423037692792172111653457469082023275717215401919368387294179773703401075924147732728439448276730579442582278690484174404533767711513550693373939265971119974137177572754609469064803473408947756374694253676903086454015314000369650637111541060536700438612777691470388164474236552938431580605165582521178750188772341438681251287327858496145524056258328372613996713994624281489880172105481237206413608313943938196111971315779927903211601286180337430125201514418179947195949090396954836792189641570458261971488485711339546193034637242444687452201731985928014130968232109547045729678523542849220415206318631331720446888019445160400720639490743103128136160400289826083220216052473803452280818206778145954430287936318622297221709434235681408503985667636751969154262074917157933208085151038148705165475398901335728089162888477853881709954584940038971334707412456529206942922192049588255449016523419984653311577778624451733232784763581831870424585771344556180501272671315342034708050250466844443063336945715379341479733883091672843785820007173103914106568284601673377897258477452815392883828091252325860236717485946797917388014538284174759354879321894965595457955073629283637755655746460612258388294700622580263202557093066669415061257541158815577133069168663439781228836760197401894607200123011942484879338985983834267051551414471616644749567429218837127134674888416270171391874445142107762813602415756722594707845899887006508685049188106659888842754005330826344171288536716046786746136304279363005088354067353002686007429788512702439743520587717453103639893391164768034535510531622903390136341849962846542763460458524151790088403463230108565983902878850423254180198669146389309397727051091091195822958060519781083033119114771815967852160374708164843329344328007684066866454463640704433914389688209733113542860403120080901992517075093807401619163416100582639440703256844627361260565140965523207719185006629744112396580588530050979457725844017525138252421661291885889059970841156492299451105842060891990085385320378154341734613732437243125214572344821652289502210343552462114137379621790429406555627841816264854483777626041757220969348044550756572697491781657845319291173959432323974011681544473504862523141316990556248092986199230876840961552034079877285364001850184375552219884125086092877154018077404969724786383163189008217817136223081530674476417371906070250753576651116765288356404058362580367009475951381107450820816205694207135018514748650857920941965870827959583069780029966136439528326836000366400279232807777181247812936675972861201725625674540805095048460451737482319589677845946720298299620137384021219741741427292372937070460069159036686450672192614841311011099348758444451535574677519747638276303250612731514042477529687894495248959077930996564983487225033887178020641598174689136524686744599795604424704881149716368029324682947619278545346841135975943580488561581631184931324773724207837079743772964735031838969654194547931072645317434966374725499979955875199031856901349647067024421579393997545901178203396637328360299202878876395496583969273083850727245803977487653046580459514410938999665345038121607331363014275092980403934974817839494413578980081176783729734882597050063439438861711553426108801355482877971729913558891777184551359722076398688812562049681697682133944767610013713417942241961955929200929700484930990227824287738923987223323645627910353475897427693994243111675942081238509505932690915015796350996435375634112111239236917215957565446510566066276288147523407197048564767608741408936475045417193207176500037011822472692711739433474756472558706548676192948069832482388991455333636795051572495140240665984592641047724238773611759995597437938272555145251809840362839230282154506754286840599653015485927303631000389439943892226969975612683232089936576205251057556356769284029951053297355936022820217997477770545174723467662219879603410436621348252441025038868480227552023111663257536816570487400224778198949378829051375407594475614386179189896701903217966914978128563091288635154393465295240408125329003781916282474551437765454076971361032075419980486842628753942517129029842935979455392443373800086470798315743767596689206425418352249943983719896971387350059154967449976619744527543239508526130808053949331025782902206119039519283295185912162259518829406102072382338445712362668965365486073249650858144134945072940026785404805134074221153271229770225492598313775414103087695267217714046169466277290266506037654261163373789662117280012140564179565035797781557094987334676078342216188905513960642870855913365007647652935415680231564341030132353513413545969904476532417999764362863867613920475497873497377136473401588134854938491034612857352568721790066673917793356391909332409451992636760876051909445367786063918956778460818160171905710238382568630859899379931498134861391403848439048691017432688874083704218779552587847020130992668113700662671516221723771537971657272564571017866564943318058039074990488210652894164596624281363863407294681046139677637454601268284985880957978656660542531301970167576015567597869451411041815136693187997553568767297957443516497384240989898963782083695439053884254618939765979388812381445388313880520744934330471872567688798319076113903318285653815207086664741666366224094357618676517913951181789644860153421725673677098159227087048875914739286172012621380775045231646320593044976676783985981646784980595016144979014513666109444423513946766073430253840651144753191812058370158384680672016627821417195330513795816084268399293885548789218215539152718334351950599162155873048978282541059015546794257477312647979635779093869832899631308570561958969617524836481256153104757587619697226519842319219729532238219895763326914610958448678967186219462113586332746122342343176489859822406910465141003346919321359278866299053974612741208359279255777322769496439101156351562103098454373350881934921513160697143963732825798637654682142546823310304407033649998220603434182104427661206035025756178407841766115309717570895018657676874086515912528510225576594301111603519837237394349830696082625012577455929029306005874222780879035868696922797631041042352774658029375100143337523146242952730411628856473384166498292419403811239639584479694645864106351244920975780354309357046714609000819241004811558014737433955464235410593338009310103286972856945879647110043023123820481308502200588135459539002848290448982781648199231006664136737612019248305777766724287397463423603415809630865763992120804559818978412500736261228044883688056333716743351979900111811930950681491381162567140951692635488202476788719690576759624562365203751784059494728685451925146104394620462590810749787618768941644774555447754301942305455593797787197774826074860983836258239602742319682595834144731388321357419224524240318303675503660152951613904094856613240031529591391106860286996917684375388480743443240788587622060010552962617950243481361989530088013452529751908085754837081234123669785065662905066198695334911292834477976860484723721928940810381737081970287743628902284622905610065085119154812107836605427249872371943065521389159293029806534252869713861610512647469661202409081141577852164609599709770443309909589996441313012903360335103766990097643280352329873153996084516235143446775169662070825608772353002148826289828865078267092741877808082779279182234044103675574938317145957657352297629999958852331322355868158548949749625124192889493694376416352500270343642348373600634502021104985697146742705867493021831913056400588422097046503329883541476906352375615606542608576758213427115221468182006627673550717093537025908340361351541135526025024972097698125686986872793950605044709118423638989160113173211473907392096772427533284975153920930192993551044458870444727521060041356300807472551624814831046146538100185517621113658160845317482646878864161085693952412796389933689814663393726278625103586168445729454369117185041009618661970752882943637149923354443995209730336545894609594705181443294203972924711378717652625958723684557408276553588736536930526211246066623462883135875280385385105845835974042087476087876151161806761719758363423557913092473620364748298614559920760965529762096618210171362982944452658489582611160866400109961216474646184125211465465194259732483426306752247317565003560979557148516126520404599875347096453214651858008609710026596470608052260703704134205410555570674763090250233686147141247492886258971553849371909919464806610462987275387694621587143652954006262983106793214791589034110647769712657917566630556652507114057580228662956110834432750143239702663760650845722313667451412636879657332079950496298873955132935214195776731304435192022214355458010053273410375885031183088720398284051975107921260844236051512017093393135375799002180037267319275585699714097370325807604390407614499551663859231190760801467539447255449186814361897370906559555455621525575652171861595223824232301759689570128603275847327108645130421094602602248091046656323959727302123815282996524165654638160880804739322845950007657301505074699941271571872421870542399657109211999943378718509737541748882197977691104330498149179748946293845454807928640824528481703533328324340923608626889996624716199150050789244674703031483596445706387702284902661789809627898744710566105982233164151683206275045942048888099701948712244936977918120911188210657408703241066013626523340279952010338845277218874587437415134611464809539695020612136773506428831418405643313424570513986571697020298211221890614141923486441648232873737315932124123211524055349781282096568532837011080501814267117235094449130643469756874943221972216574221221693996234967705614982454467688342416537234108475940122153592801528344772381175693717215297218144160038184654847601766812217724350292861549805455098695711770378717618834746123621471168437408815957447850232277585003253631409801385999278925208889350993980253867152331007554881559499406617139328376111051089336062245245730631890186179676191741726953893769961847504073065778038168999335857703027605657356908246704691325415878301328931647217055445409334927103756836111343430131737880596146475267184896309898072107188461171395480796172653509583080266475796019420986862982389112621388814886854702677660720542183804047301071800595687963883648826215540659449567197539592641220105692823222030136317980986357690680518675311500311240544521263605666243892483016891170345376383845961707147534759308759001138780101539751506265794364941301838859706999941181457664054736499581407412488886222953062100588246177014656127623001584339664355029987181945347847333754918361348714516106124856625015545118919161801036728752484564350289550390391695103770279869058866214097591604660277343330591430135352881737857548837094044238785902048617668829660229707405844753423550341147145524183686709641086342455579505003130974146196785066619149821821076421908303323769953585153419855750874065278095499001288298854947203821632041957936782185311014044577649100089624544875477080127581882627998429001602139192712627902907984760721216450847626768851460485239272687867489938639776875405133746723147571529515089666716842223115704270863279625198157624498574991337604358827315918014632950101455107059667396152160965557523047055576924323869609110045256370502898184611501253626268054670682531547986446623597126040384409219588221463852568902308981221058301636615480103136510772580078364910112122102695970974421991914373518333318960285502265859857547807998468037081587810878949123425936314749061393379493163514598156699310008911061266033249943898439678936767287623962038429379266420992478915680558588118842029006789911841469452113936470206904029527284570924618201628774017798971237412215845464240830808499804057936963032463151453754203678565914911243419003274278457858541307600200076392470264314210173916293479761031001442766613035507731863812412587831563111048072692475110538631264903060651095100653293548749801558966406140003606539466449326807900170007042918528837740647065187054419542250623299545440448186298698596612968985536358406669801907479325376847958309905253904342687938190309421198582207428675119137445709132741656949198149537548838477036911637277749627746106724468247962390877066080915361431285902867076892367641962126791780407948796613552178559429179722080569406955473677434415926190730526635788367510973686649661302054469365337598735583477715997792759216247831533052289716246233053132811481915500915897623007690521999217719109978063846522009637357971898597310327048652938204595281952435433054982805062531083328899690374903242615387616462658802831233710843988628575903186577436806145632204370867115799514630847206525020627645139762841668281993905060828928212226225879645601745259128962382473544282879675981847420992652073464075440898323497934914505931977384326324039447733760823305623395011920388475529799896628319937697487021730005043569727475511668659027378730941863441822589973904518559077996163346297901040927957984916093306504795270086478929280639468448682032141335356235314696811003528168330277208022570514375258730636093272098732285266168299979255372043912691989478911191794032965979050765427521261805170914507934894815874283777691635504386247301310676496015043518248069784900965527798650106677833503386617036442013036751782047623190887571662850019849605702470545988397393204412795793355841610990182492650762772020602872859928796208707715465827469363559281904932969598877611039637758512079884613574687781133927938623279373462336709189964651560128607057961155764863675675551393878107037994085657550880887427116689295533190457671776025853488742222067983725573343671778544939181354588572133390544655972194935836463103791268046845604309605917214810046235888486968706063469243642187405289725312778025261732555292344439168332592894576922447318043115013038402070965204666967178122884202191392290525310463219910160250960858407850731100666516880780404958379104707831544799568340382682022608714444134766613723106116268808916700558089152180670017748637933381291818993795743533346739348967595839534326533235602943576769287279842827161939222538795584020001239760841135228244255723868509734090265748098120886690955196384744033552255073629454805248867416765686385567778196583186278288173181863033632970286713593607758460467584548032675793714694944352135289572822075829409022128126501781888577659395253743773721209178234414754739463554630405674131643302916543272936831834834144615595383554985990812263114947504299917476072655941675513245364525219011370517624668007585972464053616647824993662661779742705216234760501692226694167659061053244510890537999909682514921807670920481366649176776964239968811144449047730157468557904750499358459031453631697634674017855960370323414162028076826920687659744898567953523025488465734019071174260321018383374439512091382267229244876989214787793409030175769381139681716413351227654583029739654926792079343131964994572418360321388364811948932122360819511146125716951213368322488632290816024934976168411999672043139541391528986721643123325128991990731637530049699884027780010279963833288136761738018628952887936862602383523065115027953909260899156625500285631454776866569576129174236166419983090942767837717580757803163827500651467382292824621495274547156482374149396428281542374517969054517243034370917277132429065822844761584661814382515758283005840028549568460534174433736252230115150451238947489283847017607610979687073732937725502515047352215565305002502381271965011191878191239350213365803876273566642729970743734335369736576618301694184238873079364614437063363789798321988945226740603021883935877280679451409457839063473988227514497137735121866331121675237123100446477401492686748301229973842745665561278741200849368837478322311777820517936689937705497572087140105086363710209039300702933153825403168849710129642573273417525804271624549974540861214275359276241778379872948470465486712042840995947207035422287004311568280870137089170969413938091168400237376667615008817709746760634256251170737796001643107318531980395145372889419085918854338083802418611542327126163110631902646225153449499409929678569740059933738688202805289152548225639153269157330739330294880199953005736506357004153371747926646998628667037015518164516720257631662493628276523612479469688327153710006636065430040451862645826720309204341655519508893979791928308295776115634495241837098399084345244311825183594064045011706032280606721366298172062549490504137105812326476942982666966869034855211298501911767475703643399143343494123412512064643474977649273342595423358685010390240989729701657712391794446803854695140212688991166101917056347407948771958735706422397791251419632900592527690527328418241047064094883469221190462458807332994853460463851836701715415716761020059048821073373255790448420391873364922804726673309754931763060067239749953352924018327224907327866010607245234921117514168759468468870493039434741086780028077501822069838545129499017283667957674934653551123516534415249468522892460407776911806904510766676736871776607056134388747880388060607394582716157427128960995472989364138143200052790789010676915118271298214905829960450519892004586644313290940169581892075749554479923427173018526478674697608335520304728171585875366540605864613584378540210941634654628876358119571735142917856323805404951556018166775273141072693362425223970714422129125449674151536827708231902096765745028631145378850931129932114848996466098409335969174888407806306418437402694499035667939930572071992081205908870657527302007623210223461887765817154759615062813156151057901823234626245646277877688393125108471947042310161277923052945310770268314520796377726512121470493912777751274379233199729496124483409763981083440455843505783877823632868229957711505135985194358818168054966290069956138000365017848313176389839307769620625037425564280061751954788261529119707079329441440065968796333847879529176685925289033129888083387099765276685479939510913134770372736286666675868788670229910294737473070260149315733966094121025401397889084497955792836216311562846712396188797282283697835847410353335322150671258474121058912935774986343576827631587642531697648753910798319413940487202644793474169739486093640278509016134356442702662172729271253262423967533807142123026022002414584888031240580740964917769179595547964821463024231280623956804660050730984534621077260882663101986109657779427840447776932555376679260186498504786289092104192015146344298682964873073609239553922936563106266064110210684317600320463918601191379301776785769327113056682805036808511148036938791495879547197014324776889906804457065437989066472740231281893869073373719648974166404085322339213872950285094563154938219838008019472861298905143544879948414877346928491047906487126613168660980684958443637395585154476710188038106879673366469038693677460493226687872901958299277648378237651673319535262530722060933299113244462697881265112538385039932839881996832950750206326223533104106368228861341985226058114500231681286313810997390842892839698681732588288821131641979292977485517101256972333495702197409703912400199191467437595121854318815568889842715696164157416900248385498681720916721894271196269201082675608912688659805784129103605005197339592866075400541707218494158972933180480209475970743761558108113333311249274364183257215660715675023571077122679499739499706544256734555153417377083273250643001545943404371214037023833050766975927458833635199801667988146477604135969466733552778948322100206888989205729727850344320632345115625276514919449567088588087286910992830052664020071293309501304387335166417838316802957055073678193038186282479063130261151609383415847242286082831684456129519269459944958218242653224730092184933785554783491706279554471619358125339591630644506372177229957769731554126148716955168188331206976592105531307169542686022367573995277624866885674702028528543905394715215360714846406931342480484018398409134705655639984692030752432907541773836276811711191431248272173796194804944808233091187458524975836093459835109600329625149658487027331229350515839831368262548308515173176963701159778769799473366200574410171870546004018708095866484173000136089277326357642077451006162426303692932139191658781083463055706101570380823652671355842915479769595080883808494306158631137761755963776082799454212538708727197005173331547562401771388638201489233972943671293278324521917149274637371830989254417269929194755384163825845655672810575622295673060277754315901030485719065418411471681092962611755954412751802474144679874294883490518915285787940290135675077115051100018902876843155693537322654772920355812858884994771116736087620656743042395419891092069321599238732346039057951200620545148573397415618555573101111202574027639996209045714568429207274121132983711101983727392406425459077528077377494267144841701339054128824218288133771577872778890353142658567375595996193813163731822281285469236181297312224198172532625769586306021352535181571453493038646350041570083700897788171804148527200600521322545135525263650612817051477993438901374846627259079863458443012793496371553738982863560173186392726601106479860425465113079349072602769617393924013286452427266858181776717067473281988156613380900931693340648767558680095255169245413487121376025747208186079205808453960056514570380090931345354478852202003095355275451450520267970632150498281938817306472443926055333975320274820622800777493946924393886101401546491138334934560167300434327703235577851268348195147849671886696889299469123123430403648155328178955871394945189661769995097785009366754247497474094788784518056164951726217748614522470398031524359529607044902715590220815362778306213181805493875214078500855703421443584773586149110280222633074713297256608434062974650473352569749753508010464633111473828923976977016862237323617337029127734439223673054647814549111179256219851009771790464613975375521521312719244852084668170597752266987980796591984732122881142263474805213465681403237308360652071273439546072777614204102110719864518751100817768115225458063976332229425503637760119328497577965897030395033992095557128753768578168577841425751583193045917498854990562783827209902317914092718611894329433219857979575068559522441950496238210941209346410180195564010735275736862071168563345118584449850338705931607605302822986234998297964514259425983402257280082020746753653602292820895703986087832760737055239649190524417699322929514132388770035532235697776040056701441984727609242196685315720534065333808549749877995316607859685607572006580997939531490762279345858666978503855527222464997790867839413356461921915784998955384872844458671145675190696190930264455866864366307065169668802695498953003600460691381340258906266779404630076538939012168575464282050420186193767788620754191123388239926539771137863128962158516066783501505364055854964290779709716997447430883985701993189478703173334994598418846377475490887131547516005279239169837796255946762466257124419930274942618270375720611220742010077643593809325631962508810147160860545936089254269699693380661865462091251859567044177391169554387554215425492386358570757734835157261133359219332025404093962459120999080616679114977214099450261542049725065219042062264921658225049251304386252731714462383888621730007194778879552126712193246910746173910411967426093089310078380680714435737165399272383704200108262841945147756309840983817193934029042336627710508448667286239931289682556097812318979418505609529452183914026645757229523971805910367342528057059805972548996132192650888962208253052428819639755431369714846187569717421929090577454173898387080459394073854580456982851205835773268224080222904941725584846082343353999548376288420173039048615860344821118713810479887482694770982490515550762396943853044656242377141752495904155202523379945555462027390129994383333523813589377336920853300443103060557912606419081598710581333144348594620557401195738767836023256402867167558815781869245031881943677169840025799045331505061971643604119321390778273767414177203450953345522729943125485739734373156124266692064804576545024905692566732927151800523141340189340807409476423318289217372610498300187017051154882313298615233341634265273530789259459160980522243780261820173222655270965526308419968710004396993372713586636522494981896128747840119417954753803238547820275069944755675223886232011963533328260219857532769634810378071120465002780136044450121337395962647095356432113186126610515764398039791700271377719145098023830873564244597125860742019628453818243024298902464016734770911408042383239746832613905819448897619618319926889942915826318586519242367904906022662057992056170085038288058346630430520301917248429652509138058982735916508376446392196935865201195903020539143714670368630773575043363415298997232033874595649025397733305714556425436114763171682138458334193449296930651529085557482324761136886199742525765954808472553643728760302718876986555971977640002629342968789858197050007876170341288351391633844195974739766356828092685469964471081295733152118169777843932168236196314238005539429076065106651193052854962618041084372275085461613160719401642867141970952747707941864154790807637499188843584527532664535382559773365445308756534191671935789166401245449484167330688548092375236477349457588986553008581715960849701255968365742249015172377544331586125989331193042584604602186437783784292317064910709780889135026100099164371578217416578811410742450391118966789786370481686203889224473369503256312779829071191221691951975350610438489277645186398724944658964283268021060112212282188138228309863144935958672572283655078257072887048801036304614977957966766510436616395582573465365500052645642093556462936618286736040529103308939900610648873949720080994783281031477820550805211209762657332954951949621913312760838413905499085708967311108688964006118835549602299694725650797664096524297416176784147056193534050394470742339117704544201228234260184966583024731471356499196951325810815554327682179364537387150251614019107338606033978132139068571795790105746214445854534378694554821002624168134350968895156318844796527125089405858279221282030593397448504979220659199933994693898209434024081162852158942903593266799312429044238451272268656997145505288657290079346472166898401475634183046003461276038399479868353909826085226237573208855004204287687089329533540369946246336013844464987444546224545653678450110330339039972949212311008789473662410150130536026435681510113698309039879034049301192392848457113534357738795523919081939506108159063905093286631887019657365790228566954609726858330149804380599344711988070187228508855130523789255337124675706853548103706918309583580632287548164083865173851633970433013993234691901443605228800692824478430052561907347901913100240774819775610080550784145040012021935301489573780165334653795694363098842565112476275150193821468056102119062837589072006831517090786017403870362011006397456882439782679745968234083184290486208855051948536042950375254737937398895669803256707443399393187983463731779055545064768019845417394062240097104296960983268322987175089293912755994130477186643912020725827259903637978136283519905868729372232384369815048933750080942034912308199483394405617675789794428249777417386486850411017967663432901685451373656375673984199407295921299436909933438909667762871689138573770618085787037767416103047600175332409923194512904377950719737812500142767178726547261675413145687414780496745582154280072320122101500491273302253232100303307364597867649518711387556244370421288154575852549093377525014799460943870032019353824310793152646602506756265185164758114737110312753433968391976605774335681690730652899501341601311961165130185625771692947799582200950280987523908251890078621708302117922818715206059182418412947327406037087618161833288579453739514589722249300930829975645352570278491728321638123786511063823737254488731294565242388599206951136722688883449203489977308095708408653402463436499451801901338913381811496903277603989932906421841829243062495715865300224695617920853259247647176589043707723985924326169345908461635933351030325720624335163290065002652728150455623793202861818116426515976071325261798387780219176027998649053324497075912640766706788240947550497318208075781262038312157330429419120820125794135323574457120259304873533153448285692061435332822928478588811249064259948236217781327336744472186560216309152281345840540017440013918352095800939089337271590000173004604909362657779182238468276775842658471444199271728708888167262384814560237551950941192414499277890340704664047883135860388141257098225502652877675789692209607394631646547309344745035359189992286750522226162971855571123078564685286074194727151378722137907760680545186887640412212425740875351713241227083017831592748971743152635725418560558871801188251237268342679486315145198596616109286509576046650470508303751623067273551866291121331959831691947324137907469204370314009350349835059468916665407295826650015948243358984757820884945772960817472487356731052763780959607340717424011402164056787251277215989286143021227885300813232384142018253258439632921005083941532281976297195920321135414121175402816968980566728118661541455592645658339250339211224497635647712390904068507484117116305428883082741614634386284174069164244046360615831798094795624267735975330192532607192626690148127357445185498017915017345330249099440806082554883892684927340151731797295252741460802161609723396121058655508972420137885535091281206852845014061555459527185704724580495195642527836933198749874977104736913543694294426911366960775531968118491396474311176638101902513696561917450234793959229758916476632178165222775248572295258541307756006687494170964566365546557991608268576087177051572806106084613604346944389379488651628695176725697524836552487215457404967736605018242900037048228105950176741287429802304465331599542063988209420565244058669825437218050160970364682562626542614510800335093251722298637478292570181952101264890171918024438804550956378074417232625942472206200824334539893702898595858199559779330197510884941878897063578846974038506123095057918818156548440295287880536183737363431853851939507106957213432660193438861258917282329007477294255094056647896950179044443313354550409496074516548593145472925675769304150484292359163856969080144657993634649979595552142755606002108916105427418757596546588334060874486385686291403752609026490759726872261552258245321713711081885147902153270565191568973381270542885914557132847991365669559355831326958107941861507516392269193080233859009627190325574265942976762519645234154868945947650750429213886365489444390850518062003131801400191722584018864560400097844488591403240980996321634097744328403865514675319811671544603524134726464072288910014662234543287799703594837301234297803916665490147412817585851913376916222673796183854252486286735115145231797941956541973435123599430405598191907699535253820620160156856717959916025069008644777030653038364707039212857872726009779709752980199500658096137961055449584824041906461644091669534855253018516857577538244325504285250527083523858670765265712778557049063342582437885296995381223165635074444901917415559307529862991062332087276603222767484863464294686364652784891815278507820034749446487723826353309234232712196708858844265380079392617272950676088692508786547761837582066775826914540516912453452369409832292914573365058013698590634727287488529819371367607944463740281988571881287021528961167225962294289869019296457324959926069351813636435408004430594805405290005778503275442107335770991639943093047331400059763679411916489599953088272925370852880538029896947338475923988184058884159272438663285438454793605995654894982987941640170482464253244264450987631206750238680167232171887469505552042439665208227343204636535804671636282355891045250452441007545837914006582112230425001447252975433435621005237441684416696350056270949451524956288931505530934363495356451818606914802349129286212564446019509469576360480852472081070680594415726873036037688763293344876953391366343519351638259374926926374430893661983736062993399973791264127379352101917822119035186467171854368803260051861102643196380858431302646660791059773392209875466971099607886953843280851759974233435700797874806090709006732872444479896705544117220356798687283034131405246089345001131673634263783632336131273857497300237850361073922784930743513396048298827569819508980762426929252352403714091278288466625999774750298851025707359022421708243182998143214554741532608658957164859860711632910895374807015988771977811679980967709245446570271216863726302149631922081447732140927941510587445072590488886106179550513193999125558232463674734008981225591415252081562523037623364040076315633172642543776715883027267028030880511138357918800786535900214623707637707108085006046453114907726608784330495243696258095100701809040100792498943964396166216072300968892901724218552506079394710107709443256534007434690266302851873665561873768978724445579325326915405306113567584402082296313500788375792766249269394980025277552332988866357935098614461666530468274769940396766043093711186456604983109911995530440680240164268482856306066470163830554349850325466304287680282610401449069100516991430248639364555976015112372834039616973015358385995850019415136576353063211316883018849469715400983776085850006825595838510551036971917815693460005691487527061610119070084918561008276914611945352311365851120565309171344021520226845011629089477501545978746589913722490882584041248419039750460098197375122907540954806503995043409560634617005322762973334744926775981284258739218842167732744239548908891134534179597544442541087240629382710630779721684123288656045348219553543261295435729044683776438482732645985213230896630554501784489199743198956133758669178871110816592654775389572142287253653490635813276665512966885242684583364666136269495523146272204468338815650458661196278673635604891543793779039914574728842353497216003912013247578657331189355416287804244376942969115290289003478689053595747199633252552800092269570161106024827897618518735346391474599795247716151277083054396420307203773210322834746915920040373291938988725443160240470825690933842022332907839458186425773920791817958386727899955694057188727508533570168888070779769940650721464549724195615169545751706754111080477357787334553015934329467619179545252945292112731154395902450885398382704146970835447404551500383294077534637903767768640448283156131053486105953981939234002748838596348322394745469266646457716568280553863629422722885694323090346217128119753562937825565437657635300324855577889424036703608916513449426067757224758429046623882287968512017948676793588892979839600425897327951305714816333221383651924679874418353490580264305204358710723473121800134381194063235950576330619141262442289631851817896282777146626161270610732944302600312544300446685711775894802989459065670406172680460421035984397186648528671511666150859694306117184392626444078446012596164660312009091855712179369067494291417388036509799072801794318190195577096950412779829703726595292759149008209329769561965352037114380128497609161863966594218856600287719996613018998308952000924364721643418842648865107065100396035234174109025892951350262967046864566598907242606334959782930650093484049651352484672816823218914125236605510379547826760338452437392685275442740812623754481828449400859172508644873377468195263012991546075731436562648652794492883352326214431423468594290237702401166888333523391009459020654516924833949034684537665857309849139534689645478278424563011257319814737817857526935086202296246729801416195019563349390921840262611954785985272649155984941566882072380209867527792393699576693508958525164339309172595572477263471191864573573876904781217384389732136399455077916179239969845983609314602410083140566910008244890901456947481530780713270794396677400058465807735074497416875110813712983021458423865974605312332751615782268318996582279650938817953521089030575843843008145523052515273553491724913729472045671016640049986527900101135969655610568092553216745768362032616861072716521645496258221953784347319121258340815613031816548418735507434923895661844123657430019642893186866225691162822915351339030494795572016330456692619346928120184450287836345548111086143112971184387327554036818116270244224070606144731438412170203450484089957937090084478797606039929106674134370793610599383927315606957771138843197530011595856875325908876445851209676473595024101061294652111681337344883461620520018762889970387288674225624267306367549647938605540930932854908203450443769962521007189383153166379919169146947397833011813371663511988684667307717756262612371229242721053070915078617862202693773877740236635792738007620820387988848237368130672575554366942541714698560713749910884958824916258466468866851813567643059016676999951155024642213349456785162224361009616772857896007888170309615810266999338145837922738470310137097901946483835748815864629503215167535060526326966774022443000921054312023595278335859856448763260132721061847425724287317044661599763840915689722682285861837305538611411239533264563862016693056145420158576962768149088996331400824617675942005559990082597091034411636078776166190823075929801007838081692895144738129326438068832952861744244317557851294141782973613411417920755747441681728208789665833878644894526962509180929594565499818183469901173882606647920506827658982944392455185779725147450354343893907398657573239135881355491890488316205503328428069115232115315157574430829949082585103700540464145544309685622253684182831434770306917818621653716777689043623862351379664046872069643017452747907429053231334387410249085614603471582075986187946919790317064898633386724434256650873709650092599086427380932462003069899460785394952751058226434052840978376371185132293126521404669010829923524632245598162726020888614886824035309200541238951744740041283841951431658529363575992495870026712874361404101776411613306127829978386917036841112516290034547970937303372413061292165999933211689843081234815727328005820990281353415222731051722829875682577933743088895814124007230442207356816935737326330699650617622274689363757454254456115081537755655728410902822015510489956756951062482292136405578738512235960489794952841354235514048729407935852369319441577790493597086378374151780337413138569848997093562151795960915280248800231835293157250193984151647190428116559303086669592461309079258230155688703204291130956185135522585612563258056485308861667748065908734069196585084218704374888851441945865023582054786726246331967900223094267329058750032068001011567054602161976205234438643575786648114566440968300500737024165411428488082934909048423996618363728146220479580068109489565971959785403023631210667978306724241943800231303423795305536186025996231524368738432088330756916731365042342699256768174669021723859013427323046971630904729666019429117851791554662809011626425745683519827354125836874289097257005947883703149614399918501243648987608534297850667068322658787955116598522953333982662841145892721710283233870283648265603422023473625278864872419910451480526595015664436836221545533995132426237839119931954922910207550666293460619128604013271477657423175480210241467077371748265817503878319166321835656399304523969859190251280445078137760137073312840147001072615487759444353725866356449017862725918481637185606076842588025869850128847756916092519554619452096055837844283242701324039919741386377394245563941103791522226514556439929331951889745188497100723298128300719479484475091216184357162199928151575874735802416261227068167717566396654386685892777462494956463130202980525015245575258356267003503011270620500281850463624036045647209471315230789204061819821958148921430796837459584562630159324519608533236676054314443804315512648054482544789384175246654900253807563509987906024048609270573673502343113697028810699133979933927377147060168953926300203127780285470569855304770520104529905123372459412833112945538484359496758180802949731439840867955510705829998342975600211832380298087200861888496386023839491119831516704027388247596680871378443737311591668662107396485906692256243649721720248901036478609431692489855565897193652801757946068835682339727945698746739326662153956622877136574244368487889113288606760869739323308466016247427503888744728923780235950522001001172266987781151293768995015106761593752339407531563911152220642914199199618050422092067004306335424702559002405789823239671325845313052299219709358557728250023975144282177496957623748979649111159928948377473063597495078805002559147638227912895273458180697734114441532303223785483481894940872959643064847163312250513844718941558622530742601606983368490545020764159384863915211593463635129651295637120063658617871379241858585147562189853540687796017322687057117701024667717075569366789529367132465944453817038549082797792343884445827790539096227627398241609016873270354743527748860036275406172971386438424116975854761487029738436577997181841139074104723474184814534732506772424332687838711694495869842244734374750927497499106686934952996698926441385432155625462529327100916521968413894960348873451618205665362654513172159508485612562565114083482216021606815542907451602478846672640989007545555659458315772648646934531853872340139095124923402855977078836431503766710538620547613900202336207851058742029590494466576395726065211250695976476933280803126899340663958960275102427461786912721951292713495021247081259774900570500489956189942391976095098095862728962334339907333181855578731636695848198924327419154142249097597682688391626062362762947521581342488588870938723210274849339612790367185058464161794126435244330739252393625660129299908022650976019718808705879794702190555799289636970852588576786026097691266027169824474847394796402788903251407750039785972995896668340369593998702401832681119121128198521068993612635391986701754152524905140240186320313340375909351299467274942501956261216624329649664081563333071524905810831798508437015743520737902396531957265087041973936691596893236869588006361021813147060132614937445121663515323623618559697788937829529442077513407290351837697558454349229534065929481265895278963810085780771466686427345373608360602283742362015507337512438784930524522714875262237896679355948566584942095089824816536537479685027223221118731369119960009343725614198208518067638200404649658431680627597775240073778860310588659721135949287811395243891650016333090377185448416590045112654931085870398131993680180334034142365850192966444655739727892604493229041323386105856562312584701282345483647629268868772004915662799182952176974585656214437722721370458450209757049259300725986990783431074197039612553070677813875139810121660120623363980985591147673440501765030499732380756421240890570010441537405555232637283510000082568933855440796327276731546562135218128299607703930945824571846216232755380579648593121203310114535565515674747173260743307878745269343218196895928408269900675416338702340872571497253014114689419450001272239151187083228680995177034263216089865643613235114420476869728071961304884040316637283633321832975036644278310440975632838265144316122926491644044702253559897812487394850704876287064015224863186744399764116176271149920942483424332612519980974702148738933006337410356879305388578852642956912549655678862354814940787299628501217730935700676573937185065142329250035776330868803095914945068625102308082737081131525523085054933517563711039120934265738449355188595795866405293734427106598506320706229704066930177746010147485603158225546482762026976768533853923910030673700835167730675995329482056718258614077540881336875141621857385021501534492474464301697002053842308161168063412598753913443130596680584547374534287557062802561456351667438493116081698106005033552261760367011404772808652031973634999780582537615304018618518762179329542272182338217621906041080107918937301282565289687736933560066984400618860421485565097719222356506364933320571757619964635595709017177275845265868946058124325682522355018097399201621955629907618693515749269660199162561291010825238754662179527361355422509218692495388074640933519751514890118616099915507582033054488749778421127264025038828280643188958826969327852386328235928529517682732137366244484802207459846135367036376455774048911672992106767852252387533804094493558298879797849740668355981541348643210706398962237536711757794824055437349190968577855489870190155842290015328694192426272239016035172746594409359968853600676990055264946511335408009453133465256438844350454148047569087310453129831395418853953615896535385758499049015760116182697022431647496820461890252148585079810166031660122905393447449975932568527705036370623320400088310427308389493753367924481482453306621014280978003142238342507897647930505299197997581384839210574085202888747412774266546108038044553256794637656502891084242961743043592379809059369941468172125724633200760494414162699528723400481469642999852296813375542600652249626419822246934446597327866339442371953921729595960828746536960054838029734730864288627190525166517917407353626143652907658590489224074828759605572316352803458314263685020074953596033828839385694285612052527452071977680200709931656103732247214639606141213774171534026145583346619701713522473660244282167345925539375894888902892421027853480972826819525848496602006259214583912838471408467633927970835043772340505510047001782009692204288033287651996249569094365751571103903710160757093586283550479323892058589480984388168250489592909805640790634250942616975558042170705432402028150231136238118282626225891612183312602570546586500162420782391482162534399298786578827004147266004135371739810401954053673050569155668853392975239182559412333620964734270335076138611645945943738982172719568111278692942861733075665979373540320605996777557971773902137241963821263147336674738618502203506131825867824413838909248732310813834207423651168929405767001291872863921189536513368407609062027346161220955735364092228765668369012178015292379547341827972934272405681202537251637362385196378160496298592691873490991028925616165129937529462926588125829523881407031556661666138215567169767563679676625056548717811041108070865489600323330951547000708723269630293406880629318877130274494504191648405993720274626311247335574659865820985705514936626276309476448163165312372007173408498534779715737585148210238313642245568836524511041387405191357656427586687606180809123928085842263329169092576833652261429194358419030396218788501781954823993171584485962913787142980022065223104928908502442382893093925043102557667528071637803103238047201995216720287971756003335167388260186293237668719130665899038659892200798967687803630469486472568608440054061358875661135878632027390579830762110485455660023093722606870625595118495863723429436641428631514899408986303447236405522500690547729907269309255808473200231776836413078472856273237993786935451475014113457634089914086876016300140507301382053660184092389042757500862300041957381630887403906156487347143209602058094482031710137124185230126561449359171229805591630017544447011800805977422171618447894789582783105986884512770083573221023904882164882578339259054603146239053407997183900853424047967588648242387856307219237985549918452922413574929084817129464648625442977131290398995756272956589105434656001924868298723364886633180034644910323659262000658661764235528285293941683597526683968764893189513494170645555238137539145083147384188102085722025665017512694014827836588811265617707944566170800222448352833401655180205646144380704577067745380662387080803714799677925473617353465594024461875570724281521936000032740632426421717034021522242161237759239263139495867954006746449181050896199529705314715020426929579347484557619275215614037534311024487399872766892180603317289412631829954565475473998465222319624635303541510129311600994509110967631084945282589015734514883644351884744635582428292756490363127673971658257924893614279446801870375378034082081552111475347954997580094445319188900597722257862768934151500993304770517264725340513656973404501322173713594456805881155448679789882866719761170575809414512167967055247620302050324296914857462181030858313400841578136540739503544659482878349060889007220280134812847690918940386796456322233671560659432099642889246869285505650316690503360304101374288722771982768346315512921235618955200791890139513623660648381427434473231935517714157621443941992754318655708220627557075290154427712577291232082757860979914682286884397963744459141902668969066209837063046485698618006004715830196424160744615005068573828951208127902754053120770806002068927799513289615141310364585617208209288539356161304728759845307488257934210304385382716189757727251473937859402231314071648381561722113945114794965175969806759840850209766874790364592675262085636325301908461398427495956095571999449948874113089970634218312154145921741073209146121817482438138768313155238710178034685663627112115909531438525884114495965079627805106991221021738681974777893496810306827986936892462455096293165544352682474902927877873644289122661014256970374466485325447881660861304684588237652601570061415691482488186508165729473625962819990599848923652947566036471343171626181064214266616131705845643112311519519939768050483381412017866279793377384759462512610155389766950650263025414771608154090526085532947208440313890749467847616481275721107056610011688469503274256213323641187420701676277671177672554681804039152397360747431678882202900038881387008198594756032093097475167438004496079422768977174163045713938553974091191144039995206679905295986576478252523181631540948017113184766820808852117228189434227034943699454738509833032487200259560381976654007829406719938195048561703373684271183093268894833782751578725247148789322442626505315607519045593396209627669342765372248709837181044256109413809774115223257380851143115945849140387184681282315649495503172975217436589839285772641762306397602007418668308807456398144712357403151540205325022773972799856435014996237531977680813177953631962002060517196710943430401978102646465355873098505894094141869958811587223498076564152454862762319363603067611620870675325840649205110743956305912713958990647708256515851691820174463017092137241356332688586201995087296211791864755123584646888380291898063837316426182559148073544987974631130843980046469999657834293696429365598770917546189384285169585423161842409178237559212255839947726860542928237683841252048387900415815192167842647047250976131069088427671602918767680580424522962840684107401325106926653361675476525602521647029039352643917848596315252731478883633527198770775415110149273721825170132625905254435221207389874922238099272501611392009921178478859293115085406788221439147250807079152849298859324629477851067065417654957121573076047579224661444986838779124081351024155811414781748681647331021638096724103951432610738877742070836412510542479523322397876578038656288063843697752306798329281564878401750077860293510393263805270451196487143554873347775494447646613335199055574082046928231692088946179865008251196080253194786750295076424765831051392538713994809568114769861821946113186161244997328767762085046815786189305208286935038380164438800711633423310647180987642630524780263337326132263134657426763414651120723899731485068795052697165912859035782496736666825950236652232396572543629795315299468448368738323974094879002520903480419910297712771161292895887497459183834755727354299792022572102838258615976348311891142194137223154430960727234140714065607635397137443733196858307673204349224428261222385101274849676739323791415622850673301631016738432223030044284463025890108913409500098027906977560923306723939919594921714251726419110224492961496273793876070319012835599863473004705635091425870238892799800270556369948834824090087930724531567595749975635769649755063566461063677345720836313791357948938178820586081226155427396078238945175397189250809399681313346929338392054905408624999037673197619909911601742995892822185659128352792505080278183476421990713404529056115920398574966134576407616046451439273203682009524564835043231607225671876007716904362850957262422575368603836728250070581627345821011947129275292000963605205163083161952583198205936793063573584897932720996796332938458162330509208893288870969457533013855135466197427199921188271643361330528005575191295606342707885144573874118746268786899082524318886240952076923170917604366306271715807036223134563983966781272174763261535317202365680912418596341663614336310577963710037884086648732197501642413406469024159441695605070345764951578106268488140568969022183429486671352114746860352192768741812467947935080672908682093638740471709043720103774899335583380594633423545438622210354705460993330886196771980674854783910906586111848064013123261599082278895163896568512135594205300072453004673731047535691204059337779743926617035539906502365592595635246654154541012570123441222492814285421071011869712949772352258006318376022385983735027993176314778423073383860150097622697975564326488519203472660493066685321115248921198010711327524527396431289146504449762824153543831469219778506280623822668250533848840218923606413392418919417969776358659599853702792457143820364112981775637953316565469743444137191785548820646907639302011469901466937605549099472479453789551614170217125951060078216830947408194275157053396454427801171086443625337896549521869624243708682439579243138798462652762667746721490619126092486595520766482989093958139357965654567370031784376600127077914477911119200969277523785224731779940771027995166984889939387160205191698552555463478922303952498459350130998505381865770683900462928123560069647089531937287801900017657753969627891566739304932158415561941154746922371943805267245680273079401600088229923834052806934503037146949401115005596570040325829383325953508111758150351728010767693745156439712930776921693603103384109886525861116239296850724522149698397920477812362616842119266645257732757322151115394738136598097355239102570561773937395091064942581437087873365000732389125867385297086297602799445173796361237761230697464125980974935417637933152623713032886983158194972425010528688657835979803363631642732291594869195128710870117654251612439955848140310407700231636018594327562394950165329524624915209717465617133475720533967111268640790759641001086266875031612072018166525747529114815438637443101561638265952377044074797097832808865869741579864150835004460828867010589440124706522807912676239173537888071463243294318049042309439406353634855724981635226615915770930396334281876757622450397597738100517662288861303267059208389228105597968304569788644559765166673719678862984184563301308310842744432151314147632464227294683538447069720129574577713230001112921761387259533167831520138117702010790426115899926956267057998529040261548794100775879128298106217286666643642898730869598048658585423289998550979467850353211585802763234218716758173529046475499306770411405110223343254960129505134232009102589100240935270463389221340214556764969579072957960290487350246700004348354913938526608708252037319415324947266508244427345860036830616835950032628262797628466727837471790468587229495973546088109672687490084371558284789645739508488768778590159403663498955779000432449262559640912906323549433816986276262175076413149764700959852520114963951543823582058879042003824005595476297312153543047618234592003719229839421756516304633165463857698524001700254793807276340438478309467836041857150236280078506602286356986175709899551866258235417884090558050143752497860077502976689798311278257501963218344023214588270734897455224615289140241058273793595801231259793587701149211722406974966037595412570621145017510557850765392053059115399427712806089765157150624094975153947427697266765169255301575449128624950674480831706546154848776969184468085986578681079732705125658831131597161910290765375327633769298153298985556620809008913451600473871770975610104029552311499527043408551823575174766220984094273972782638433951276488456248033956153713291279056075955468427641383731055387621009335160252448910610650352081672865723611453856519128280442088326355243280568116924549871671027832946505660698644260936050718810403311636147604053679113506979075624868596046720511159600861295438803857039212686088316285943589061642988274395317725488142749747150059601354978976017263261109631033935391373223456451657027161074409042031559472113544849904728745465269786257469651102413395878360915221129744466961053957577112607194753753690099795378428832463610593674317025662571453166445733179564061016799433659409686880053928919608272627325628177595745167634740943713577074325137961804666673119594962149019917064958070110378908803547699233638182900725889486979586768408808826479488570225530931198184456020032014121888436420616566278170704156943957509189578720731197632772328909076845319965347570767431008230557932894385528682918854290793880113458203443360121795259044837671466144463167245468726970176656946963054645487771694392783401206610943598035521511009312999365818896742772320252586697928521238270229035367647043949681958882771573542469510126675343901391087081535993173449268451463645445953423149918495378760043546138417086587972614873967854022707184550550606493347546694265551609361984805904662321108809621154053625214615107623155132189674308008605834950927895977162138805138542987336740434564041142939217099086627829763114961805847772617162726960802475814873659312817146234517281820960367315860411740256867414545083095568210000424242927180361195442978442405202117202642193369511356247901382706572203933453674117898576564051055879191020546234097031068699063232900012671954572958188056990600395807367340555661452930640437496321358212323033351511484316042911566229533023777220039144217031137913697306127248219751642523297777440935220040957543405047203213227890175318993793836687334797270250357142186152866605718420305197735961149023236323271494595635826741203391984294032420130643213383869018497084173948083730632396115007154899130521645032025094373548409594395103362580513688717043182812411806349868913641597740355309661542691104828939854204779351516952139159963857898629768787300352710496999570731029628294844524526772501441059687852648991656639760128710028324097799734220558387369067518841974205089628602586617887475934448505157251792441083970180005546114159871713719816922842750498350626981381960096707973022956691244493102586227150350938506877746678607055641965717635356668501882178453201309854245012697738282741464375129250631799032693996913279623858766218217486436962613260696356139147053080697597222749221223087588301474506758724270548753925553296745984510746551659119539712262062950806198473536468700725024110382283831519231834976701690407359883896511243931182720786782130623621901706759652394334998249833985967226960752174748669289466843916866811668032058418033131192431098967322014247916399863158711100010905966501696940523782273826384291355818771233559843112529724567320303135881578367541974675984242530671467655885675731489921329536457099740025873662789461976492439636857358907406926656580342059162180605272068887490347478862415709254719958389899083432489722311372607533701244516845024906396799478190662981898813329533906580523921406188587902119218841740826740830876392506612003691404626021500052632357931516567630953254576336127888015738148276378825230282242346999081633098828889275688338373226547882034779523007143688610025216383181766731682236946599264652514869108493501051825960563166080192683844971253061848042717300995710909491645649544159072801121080500038884361693628619246369416620036799872616771830272676095015777020069418360867168452650588823865834636603560404627272106004236174356056882180003747306741171536694185766949367720262721629919470994704378876830920736890258207936500135802841984034796694736733365440619762328031668438651737447063978361408284398175755109094761459558582019365045002401740875050942150524236488523201198849931641872428570822834446351067523475631358090831377853206538640941216296283120437605210397781316231529061711729026830474743655266648041596876880370654913155302067394862837465704436506170949258508292543523172555062464138430340255697400561708206140182973046008924476760014546471483060479387993081042252567752799816453629183306746317398996484703403627276127246582438341010627053996431620131901456985828735530493328610161658838511846862154288995873718054914850094456281105323117818221896374127067977255483991893033001409490661896299772474058930674391859058147339410882661404229955978346197096950239148475412242814387480423752494373556448888863464749175480742378311775853503568506881824473837938820662551069241592433671834711914424622088756334640764198996363090354157384329726813249048879463327301186952845009665306888121545835418472894100972586473467561417676788759186653636414114373758193157507814267466808125751385108246720258149510675692697420228083079564869289645621298661168230754835604213526260732044799743801965245551932852065960867799302257553836819196656526354323681277821036568961434191321477220130175633261091515799330532617834888550205307607736759273752800327854479527510013072900057412606457964442574333545478779717720617592404698908981383642484798143788553454353168387643162847271141985958101255781131754862674667058809703333168695393812921557036754866027607623959745441691910387677020952303607293738046934232180840879728891299402227968089337233998139833474492024069433878622661812300297473108797097303384782745282560750590275764156950516450551918934319452727069577332945368085825093682533807958456981163105886487914787199628341580327367778848239108380297922424715432106538258185220068672384257881021018056532650322965200205195334721199902516091695721609230403985240037633504442257481451922635478753441672259033293734180047863368063205266442631452528910250550182801746365145619296196033102600103933865652868819040018620645754036125793198995113102126807613337185639213383538150442261721762489077571111893454540082377285820112734202406900320417645207261731872134111581905574546188726728865597168741327001110160269931969046587111775846053407797277423266237425783914357701747106042018199340319781661679818221423453472510936615874500628509355436984306591054852047955388057334223112115179090093762979635736845209236189986471038479768657792239054827720664353226652237012918895093812045216854727710969467351473241334476777776908059348422625791736202479988404985520737868310798949016630589759959142945271125391688787181781369784749757876632051025154130691932345260680556395308068780285456550877479492760844634498993082381294786095380752945260635502336195007642308730730363719890171947080286675983697285983575487660253518157263843800445650833171186630624725407630224818377901969252112298627167788577985158645378031587769380060414848268684172308295769657771042104810273924766848372485696542196834328112332690028303069000644167279607128376840419555074441254706870620471236721500066444805367450517905656501861108735232279824420436466879016196188492830079406109456598595393463322475943647210063215275909920625259717567064175681431459125777677836936246251482164603971589993665895732312877194658216246007437231450422478473519498638407667512292909376230484321246913638089925760771190261261800011701502273770277701437380224089158232463468957195643097752767067836009537284496334777531785253996509774974633197567004754811571938011587199521418469849714484130599985233586099236779386533474216487900717752589358310058727448047177972654267720228646313803361544448075639802190723568480763604861670737672998549438188813725653589241084510991570041551667453115509470207797712038927275346518819537966793257078384764170776578326341912235962124447684067839426388504271356032319693268128474437209285375371711371399007262294016801313721561251758501836823955090533359384210528589925099693346029879590827215406770077574447680054662690625945631981595170099446283981002845990856682608485514041271256484905403842441361302093635624941650410283433454104871151375516253522567683657048331968392250149691504858605324230366545462419059869066950286305635227816609169956659465585381583831915788734558383061239201734208943442260552479079647426329858977756002438102679327819625237730201397239433936778065877040233967942984179642313449621218779104623134556921309394080341945645804376895193578475090904102723844012885933412655312787104413079836078402966606654725929057530104282741085176946764196540179510815187444468535570788358434631403659343609369384694191948967437567901706860088512366468824652837050046095503167756022814754726790795338826085224706215701092871228101067435206893880879502779814141877076505953535676037834140559521235364292759575213179058723548668689141656734863850711185563361821558179114532037102368347259149594803342266842330772157319138031637204430305484623549950462685802615117199449064237083875652757275612060642356238959151468465054829356543216069168788409013565975295856649282942566880215079821880078065013983777975864033622977974462481840969933294484696247763761798550717221925514717301632630998607675879386467511769774715765023574334235688868465682135457970905115045517120363554879730406427236781115058753448747585636068806830170025316611043073926203191352641515115167533894107743417207233372792506027385827716380051305680182061618637920285841898265267438014198043093770994931353261450413690172594473112314530431883825913592947854471327747162590676807005290470818807156148448101547581664376830254530225979870162558336041731333634321689871107583429499420212059324655936647306607824998306318626222974374595120281131004232309298434948784932582130025334798069193629527917188319427351991346138714223200960366568998531029241275174518031574572338955906526236722466510561739306182756984879207627332168626414778537136035176620801209967313648647258625528400759746297849874173860565561311676973622270820773166777178346955639431901466144341954987655060483389922884630424876383926410826546108445166192223709147872338437084698117170158622421715556711265129338879193399454530449947001209561632015073344989122687535368461519734505368137327880037768671942505479077444531936349046088846904748443916063716430046521245194801370736402536466863649540428499198372358213441974270196210054879617902414973932458648666700960707924650038252239816967803134987438621668794751377372957293429091379206128215050087280241075786502253915853792080193276106087351563825837761786439926967075062132004579306916531302296675894190701866639737139799793168820817985025913232025517970111782265166784893392918252286798276115058665452456358196588761302411463101619099168614100426322831295430534432316846288493810350434309994291655274830449635424133633453948676228262936786850645179767138036486003660853474803962543022933782081015128008251945982460338970340536899061932666448512946137044414803107667408292308136496614100452761689225784796902977384174662596448808476560572656310469954213199444863208079446383599897289595613111840264750875416524316344484113822206878513860500475921274853076295005898282168510393383532501615268987599964727404160516176820042354133060896778254713696632434767757756069788779530127479021563812682846748435915136913322437004221629785890624517539671059837405825490971624390049147730918341454397961239679953662822177689648120982772552893136557918240028228651940136553939852095983622705123041550272416042151386197351298560187076012607647659997090152739910639394155391803035659648375836037355966471090339854468661430434950998802013429162779319401546792125248907384295490488844456363857601284978158231832713501750738847247083149517902992431703970604371973989305355369229217324285776898873863347784961364987323594455029728726272690834848606402222795126568047843673187522464212356224837130359032025934401865439005405588523219790499604981522872199950083012444682766779276901498247593156747243963350296467388318838219757054851661383058428526229031894158967869157870425665038871989150888135717871285610066085747646255111877733770130405805486701838787209749281610042523926996391005793941549275711825789176300811843495358397381529401329313208237614969404098662689612185445277161038647548932172320836949531625281397672789649830098414564513876965641844367391138523872846855963788285688448480234986635540831596873045551941998277598095902489976964939973871261482719140978425089142535062079136824192096815481467779580791165847478816526110370966001313983508810947244139976784128659529559273034704630511150543067371349193684349388605717610808050412228724680797931512395876446089181447822422448970378978748870055792559754053750565932157360432607329953008563134258533289716301541393561741545667080434977490951155086427832247047395154587020778613436939550490165821247793112154232937608918267052351041707471572922315498000724904964556229637645636830134200181414414520184464284776311110394527800664672040631493877927623849542773054259905321329483771512245612429558047413912887353390682136916303795604494224960920345207311601252986118141578672759872762157779990045556744324039957377126822254616003468234798005536848686322225813409099708398266875078977737222605237041658425715771724050833424161414075125457322541302683073845917374685603624196299551699429935887244833925254712053321017350273151919668835973307842830207849674222424974132013242493198919229632799095136939216279919068264365864582066428648277204350943425418443038126908687737587105323727089567285550894369681236950663454862466415382153097718116677377299209510048902474750814819662591661560546412191871612500460741736107251999306826683144579977493572192369496130921041154507535589215574506989191123090583110154760965717420105947213967998079402661244156737646185211533380447291424424578803507139160534685897713407413071987369207703268185405794517967880911302793180038866483175489567804477068029899166679580443953757050549702503731214920464679035884902893977375814201630388925610500787774848101758995755160036182739792706704682332399804458817894940265599022295882489464271309924286228645309550858470461935227503942555889848977350840765921089259187966393411099702845158925593791555791577145542911652741054957766833277110363556852910030839187270661333606177356234386884905515173801242132711148551672360604282799933167059382021162513846504385421993808204584552313599279624931163596868446364214131197960575878980296827730745195029038251424936005979398075847557928605450174256765520420609360114651486546206728633652905929453954513820754457345063381117789191385801059780123275294735362018829572432395873058036570208079120364854171185024029743951282573307884106295242956579787586991434760418200969577081077639966392156164395650350019803415441741327569562022519298486925723496666913751525926513694880793202313151711684953890948041044168719588451316645667359880777295853485659287273202775469452491696716402108218806109557602332288875407597128817732801742701690775751694582069439541025996251718607750446687473153566198774333861599186143108938201362520640764502734263370904437600188568920039300661975736009807943606192828740090736254149918938857073122517447995666731479379761181388763838235739911694243886977703187296937625228950114434801736854521555838052690125699691585113390012149552906267940000373476709026513500356480081662105025058953300468870854385932864808459432999820548538653328540546343709040728328308526957373556262192588820124289829284330715968489705109962751430819028275744985267598376221467915936467649675646631799337727181223060357102065930512716915640743413465067161678476504615730884322872113165642120573284095477697435300852209040906212271953309245355862574141921399036698031809839305053280259439283685641794985886866534422724315098679083279889830096395422288921157618417785346334724046772323177712429677814630298840663577461241215991028365326077025662829763466843241268374126757358236136696138083656865280807549738995216755895633098633676051932993057543567770834633033271433291364265433415487294879934926283325884018527727783634499323072743019221445501898666364671471473032259994836060224106973981606349317418780203721652219212971063277223672874653209644172399964668997308623292460228309851805475710134330291074971483299999787883188182569147425048497904713152012871179374811442563817053189395540122160443581174700567182500221105295195532424009474864944876922584735989180470927229664106721598133518101675419047991197809254829678927763652415488034631436426172206210416828383701514123632186143271024312382179719256149833273305577180066706792251257311669034445658369523428327269646159114143743151949407662589740757169100553340388149767890168677720184542702317051771968305708908089845741321333322157173310455948235338937142011925946220896087300469952992419895188646629012629417915050752107322237379036373970692243458838270812465984321666690665839945006221205565149331118222545358032497548435328415729320367178687401180072870350371306026295621034057118257651901210151853533944399577785337312724190193801668899686194117584058340358549863650480370566946777461281791066768148951932140303004159602000728156848013107116884058760159495316600460301355645484145504091210436892902047577716962588386047437184255708954323811309204079754066536756598740908482404997115113973583049710953195433276893428827047836529346975248788329525925893350315260629119135461180751912936958828686328189213752194087345963489162484554508332684593445135216667853237160917835801621031769472888216785759219190458486939487175079220891412642639815329098659829306245928186952267119113984622221043606399381528484505378471663773692306460661004149486563465978183154507483007635382381576418362838276485917896936896492387248750488472646365786742570583289382038740107398437170041640214277318061117427450698635175726712285812351248135742681038903112659494203022167803652529377334782868786552892559517292488008103430474762167733824465677314558581035111235059941997840299175331784913363392241659716717906246254647609679005240677132006702769837141913622009197059377636952102874366537784726172547577519229432668840012117649995858992200211857074096012797735905522666622405703486353383062536156014257531958261414340595819972073948489037469920867933751916828283475264719733282023917126340461956870288878998103733310194785122967313512136617578254337471361251076822922461956334497282245152285360614689744111220872815602016394585050938604527657425147199724570056744870277456725374481047243256385897255371942184367770875571834249726533099871130050347813943030191878702050836582984989900598713943656218922666626708382715522183460994590385564474618874744842028171267142190688540654100395939660869313620200739273251287625078005904545265990855979320187272968289353882888264033952399630760871543178200633118428301954963095205672722834635245890419655813401177641118841186360190320625681320105059282844239398338192660272116206543552851292662230759044338238941331212524954865035914744605901131070356881619352469002968404536135507526360181358627015027275332883102279764638704449502523648431157037248277400484469199106056947914026975633314968909111607643720564107757757627755209491511054425423859442873706346791021777628011074432214200963907631363990408904508004182786436849328539884634191128946598163134241212177394297714692852464386925917782170103886043679765138664226279929397154285826231414304270571375304877971446794862833106019298699501898714192417700703082205237007705298134930411855454660436530369716428852178082369613689944696787050250959985662935964265254341842516705383423689800785581232857578549225971421008331906987395769512813496303798604140719435180227156286759559796212033139482842432837206177274217898474645139797614296416732010135823778645505437580700824827258517438080189014954515684786454410836520173825017182992421713872481677418179146511862078899975768794822023729326924888363259853187539544471492846493743278643249014334817178848991979427075919247006583182515817070110757701087593762447377298882040553639257060974904226757614381331144434094426176924861893061648788099400732299041616824511301771306033515596233446796150232343707457823242149855544198613800245670292486989539177506108387794433498948455729611227383852476478902814479886844315477966327109667371297972759591592019872134757176883492220302383102179875952923806288859837891182794001698803289303858999936754583195184927644528179991966625853037509785479848627132194396678759538130605016906506725853945840042239820616407849952014016019676123870117852139403937305067993064787426201246418802660790255192967941304647053675822037129399672817060923376704968226405540906923279228550609422479032848602589111608279788226221662827920833042581244407170621427299901778994954913583452499969566852947619530677072369165483911981829460063492150698756883728858795154893196574787524957059464058622201878698319269143711184838576806127423003786072602640871528446825018438834943573465058957657875504443365698679301377821165256184134101291296198480158984244327593101612882872287226798022132360691578036457757097545417548152734746714808191927978611079432705785762072298353257035055045224707029346493765840554354908338890418616388786119517588022055414470583163508299240343891438695853687951085942982173758928355718068664672849354206951326363315809814615105966932957967994167902343559306962702084889392134187065144748692881613432054618100633519937284869503289776846893240507833611379003845453192839815519358524458259007718705091070708021559116017593527764426526100807532377545626047148499490274100541346523883622653256232494488661229778663578696525236343567963181811783642967213671353841955904472552722927970976576648769320404223143505688064423889160569515921930393031064882340266855774513342567771348384036614665446060940367614762270436464734454434483095297270359899887744557466505006173602615505701804794894620422859695594448948083064457625937343059954988372090591816754543895151640832498785457407694256046828356732357747711118413631290662773495346255297540509292848894113541995771010149521532076687065550971376344019083767833806217747504081193131656701212773229274587196241676295122838323233992800313843429428456085949164750154550104168491449165611111579135103080860058913754170792918401362051175876679111619680560357853763250339978756622786344229279156798489960495364895553509137519455056390980416763397687907494028199430614241363298877380180048439348672651389606622118298262328727375353852709761659858566001180702664934822888182492770129744805649333747684598854663013163290696483059099123055461396208853679298988421097730064572628427678751306434982063889220716041768828244549614836980910592810501550120057533991512702199123407996782650868824774471872856564964852636683633546244669889778008937744537033592258873611412380576962150817989841046345589429296115806811910989466999707216851228825042686316260705817993782399959775961435891650622103135100096893113377356090586834978784367400063565436243495782576059154917790749220230765204821466814630962326833841984487469318142652478454535938671780855844361218017213958898885315496469315076828513260451659079273914322891229041823172697725202566870685264384184058973380812589392317444396047341733062562075944315328983884940155802647985055769758676032825423953745870866605480378400375832440259377859208871582384025436422277045433232431363393409222563280397746804921157291416697686039386218415186499174388139014645551705346024961788353375400197590866173881478148098852351637131536124207210216965596252484900042299511126786470560298237384520193834393533019436911945464412076113076761045141556029680651585825585945275703803162595056040523183000982482204033121268594813860494255612227677383939171065061193884276353761113658740858348565057524083326879594718653172251821581695605417575185534035395061408224117903960754684219908843070943653278109012047376968501458121349692545676069481604137822394194702426489405938688820385870226050959761852645464455227491299460745693248704852491980525831592749736328915072668288287950338459353941412905396782018320423751619520279446358062982369355247807127643784444433979032994092915939279015906860471410162789918694383913312697551158351814717197176548639408802787971935311376984467882781204883717197243327078796569781366149771643112783747130379927902339749584641020881773104075467964555312431954573113823055213314994736457312510274451851227636291658090646179378802056039729790950245111801756015214079726149261210479819574098212007979735743728885789824047795879881345212920195540546897332440559586914363194393468863399102975243496915246461058327978741110155045202372605807095679541243800407075851091192288321876809476330083171660240161138602955545503306060567009473248054353896467752001503316570643424476628766638672969906810327180268002798621852172779320879951003682602988402351586116326621374226071145341693887907968147918544703119977743461266870697655874503662881490073448092861550507873349508901480585866478586642676628017913918495156543154897899406449988043151852419834968498690838587071412990092103338141111761732430948695823287556711643068168861518196854968555624602462157800009531638293480533882536344267641083623093690578479140433362691737931948592383255830178621995084133737638479842389930385866769600940015400866838065348783261750401377039478455421268336792518267632142527086007213906601507529680092593237555356277246061835918655131147839449905813718010367718766944364930659790141088722036483268191087818574149224297933002529148623191783095268905491903229374414363646400246256490064551001882055207159659938518096022680325059351827883223952528603816580451824379574641406022438311965467487931661053337554440831568850100415202105584934668351193592556108340213353938232969773567787581455379768816268474668865407834193657267823788369937106581910333521819537137952124042801303436507482308964204725694466377901647952980341721726222378330363495849628621210207779498681053390683449844508675325106564376985977605258485968203777651391855247782540638345632392120070223719279934878799985838039007982206849057517552178063967036980658707651753677778000198749953672835385762257791418598191531869326633145690067003217914541992840315240584101165762155315961627991538489129235846557966631551407776030440537207298257456649339313104164570545822191034691381528925580230110986522799420709397374750023592317603284940149446362928528783621161533169197298502614497448119483042120776713192524635982377891321818688657072778913423006515380905336810682756787749447378816323955593638441832619180207135100935875307497007467216194803146977143672030348075418596791369733494752527950324895460398045943281658344652611585166367359252240759618204325227418200629989800542621398396384803515209934492440415578335051790388669810327441588002907503058310203553782664936621893902058149726708861732377516314992174807727705320618102505524609207055694420399740682734489818401682577790725166830029417083530253122246589099411451171585411792073198358248250781323437855026519777092939256707093998291571568176163171627613819510638428451152591508016389999057947871683702038798592027600696213446142510057258235491122496306260166461304489518025351211243279130818852538887398939176648055060369847599800615691387673605147844737387735010519178569447913338281499545919656161552776840294544369409358133700107380858898185096259671586785565583607176693195364152516118055029184469101098437467977530099747553716586955229105802301806147942958435957255078184973372228781453065656158301441391100794555221961602379464275832634404015019302066347871556011434042612529245909876756229946245496564981910827931728430042509434270961780122579752313346520496761550142082390223005196501318263560697949724173566562550216977953588355041434977101007277431494179458288115336499040042222863186790517052648304886281941662332410222820294540674504868285272209252736457451596676726139456011965301331921652364999447808529164768466352139273220326081407536608039428401124268065630158125679456482189263385311932234712698361131047781533757686973212100553597385143810351117813004210001381046200902562089415298544559160652685932249080472555384301943391215097229834274905207467742533503799998287674528730532948733265453972838253874906416556076361902847540217319536942816340356630500118654246733604566540427757530754316982750150214197099886188552293629452094079765371803435131679312765354261382562493623805795499339853062858341715675995890759261090654939417800688732444132385219266762248256718458840805077716469581558658888000518115779606007628412041659078450108706460071442769538608729555290034453927103964536757872118725747613390989761176626568788230044887812398737570324928531141695093925127394285537103292876950989282922890991943394404107994327151959512733664532047947789897352105266652392277747717884007118167471680274706427889607169270307100996021578553999220334402991958034338659648948309663163679767268007694903289975679783126224629236111069905349167742601020409575301131620974485804030975791298014514016512751074357671971238556061757219519463119112583320986666531973438346248077956061038382434937287007523573753975529164104830882640379499152621820862508146540947387455933194788229658886224373734139225091311511426131376813711337538399115590545569246566396163544050532146933359667035235414966356732969496120397107714531585346833907420139198269817887696662586707566862363921138113133232616126266344691861906670887438519246361174134481787031739709949550059139648198989748819815363321446259145511697535783196738736351418226457896819976961071931236718657312603526728933872247891070134279100710621165616276235823680140224200895353578093280577241444031180350023429642105590128843135604818538587779060546999091997342293114956457907037923961453992252271991222771205318862424594271986598952854895308214039693136985442479992053830037319571000071941184180897774626929438985230954914828612207278425692206811861369091224233974252835235271097043507679048861755965524435536357683910972490619310675494401312065326358880842614200396519823854318099145235844441030939553556395740557665952464754127385124886753497518872566689407482915760511699579133194145514747243090287440759162457156023691541411599310257197272856047554176051477060938150788424648795825769455481111539087422391417380192610906779521521473175734571461564715105160833172819943339261751142351479441410363281846050977989770932332694035595279128947967229503961315970686098650888568230248936878248299224424566944157582585781678815833918953579114708409034855894552139508782817845853437179048137436883543539141475820871666951171586917908656268091762784397802214688145389283247664109810262276935588077581978065085790875071309652674821185295515665249380928459401372366529682795968688782534490068783929514174128592317147392938365000252429774277448740092987484772759662533102991345262558973692200820551024911637844347743564041716763075361925876640422373967023840955571553033163516282506411585561909211801772387750689516187409304742158252954862076611259912209968030952259891420535222284000931363489073795636706117346754149769967606365323567572786379767934461670788849015988349019386264287282249357766027550081279478871226375018194832155666603985621638228749494170428797395037877251578111512584487085230678473302484672592633048018858365611355710463704576872813777780989130474887896652717139864007823218361523663865804812757336080323261844704461931915165559626941308015203080922585342374371980060237323421191486746011440674020354265746907199763312457294746633563778458686092873326864120848638197810315679990321633846311869376581405386238385643954723639769303538071632978642327472534968931454806863034900134028184132588122761510583245976478862223388642147023903058185263030784291044645507337738287281822508923962649042648546023831876259976364122528264173129154780095351803555702760555276094479692811771858085068491945744475083869630314992320105355229238814402889220920454568944558945958279331041657361499888820046724450306073159810251797566089825823431956780199367659782053617822754509826831622246774428174442361416342871412154346200607053254895069379767459618394078085017629067521973684146282109655268160369451835640963508890653365569868036899423635033408278909573900743968932329871390958854169264611350748966474036927749327683880035432850765975828709985507931710581394372897982347743188746331356605130394456205896810780335238569022708681275281897352903564908134133890608664498039760012277327648837937636015426862121984865877296210838375247221364863724175625007294191833543796658644804174068908655261356663071038910317748415022315034819831925572793331672776748966687382948548744673692083514207778094783659296342750352211801162954534859396857710910868678001847336588903524032636963363716962800827683050199293340697706539691887113136784859218385656540374306170580391528253795179174557266156604959175545598347156615943970611404742758886432779185837148966164799687355706777423416807051525924567477232429033754711751068586916373421875093608043243412193808696444933037998431463008407070512708409048045928997398200710670290495334408306647673788273374005992748879644872167775825126439539383441722685510063969411752182923968662449429574942796133147490130122272121112284027809017713241254371686074437255962579772509310528252124419254744556825336935459943236427130742173759826188291268613434268133512614222672018771225630505051689805345489909862521134168688286850256346819902024266429214462703258398341312904758566637380858021098565128049520518541567904394732473191350736602386021591147948711649438130406948818285128204280193882523003591605049644873248481663645398678235243149137314249282975360615538617340656399664370733832609713592284155030980867817093355141710711141328240192384055701857517524358875959405413746417856666891918117244566336702946265966811060964404143492786814845960624513250332379562251704758133382950749803739500488775770463113886789106140304046231747499267380879957025436545264042833059512050092823881803959573959031250112788899810328083230037236257465272450030459618204554466026989147676762214888661925502893480282804883616013057657682523900301085532830106299557976107662461464883624508126044196014575401568969339954256984692283547221508474648846078543243427129180131453069749391062161365156859210957690191413266445321806921496152659552331665502992095121293270218388405176744070451694231235916519320782150108535885175874786717717833554379987544322893995112838223165435268253027108105177350780357750264591708372111440427248969675399177631879647656434207827006411257178418515283433987051478094390931555681836718683017434195418037139845753772175063041735855811264489522996872326895132881036732501999150515825212204083795004399179719357411912912198711445584289619089131913949349502098176537980109647261859475564738808066413962362864021041714470398283294548343992001661402499879782655496190908050823105118046822468144187314672907570850756482757130667004203773323335444705688683655558228674416538759278780733662926579551816095667597262431201635990329859624373893596958641260562773447873783793408943388571635449311017209612685468382564979567734224381259767047772472778178388716953843625579827377505864692047093345982161163626879012733261374723601656813836706827723462856741477146278599214938559035923385446144935111130446298987032072644332375833172563857388383588743516822859345227181681403977261500998029834234643727495431402734532840220037964099474071651125403897010146404157312996524763660187005480467528099624250442408739592462181629549869795010582771989323968652372144343100091651227348522359996524598877014749398999863773548773670736594774193865569214264074336572003576419050382971823955177092547194762945883657604299339472511224003537281500776461240250117107460776094023920267011482488345717505345501705717004037736045191309482711183981905203467701286424941880811849104205420741049835195578915682230066995901087855356481241515587391129164304281973469060273822751337232999516457447605485571979561744855551612036393013276985921814684803217236260652617435955113191235906719440739135199535483680794714519370166484427674956866516319392605527702336696674735146333462887668601779924066044570653417521505953089326485771314574283829646337774086925355891369419127042612177978967196236331463578980746250525931917735339623637693108344321045397921581041578684135000552349859990568812919255523867414206156289960033779590594298490912125303442878836760986012959270453408323519917020667048222429615625586100433054065929379294628236007289318794532513529164462853451839012906608781161055276476388602076895334799616991450481528367221389227063569449873374604110633221494082376644912255771293276979406728291741458617283476242376666932505626060346980277216421947725626805961451513709565597531606037463193811790145156024912988986170119308414330329029208215568708238917354627590035539123941929053982786760758734722346548772204288861434230996860693041251821891145999681808712728716974637736440630231103970111730178026117484002311790911233991195369860552295266752482242186313491705097597633826973326315080293802060351659960190614928644371637142874421861489791837193003500063619043740138744915900993279272528498009322229846180555247879813210689303737445001145601649573503941438770456021783317287006260947649049651008046061009652851285099771049739914763759595887082472135114374489245835843230209657145113137186088171529054883328801465089927603475183943264909091876642150765542790475581776146452109805903710114931389073890434298941798187277343058138209244778709293641168135874888585855067198373836720035851212663346971718610955154193491505114086151233429495782984307835679203832748880327776249327180899724107964041161311188942178230063869484141201871791140938012490816439303129196280391502386601096491067214753678715740159355009929331469406003649616767231885911370189316560268958555052934209911900425883476306117574216315980509842736801797669186314229443181544952657551799822828418043468550883176392505471843772868812447026767696873656468676280698079890187172242196782727575193743537449511727071223116765361378761814616224380854873795426375756462331491590809301585898362296834473227597581467247365918993325228305078170718955130215989866921626516803508573032034621324406843832695303185562433267446047891178624921907650957274272385396448650456920549067236218113208511978104127941185952726188978315391724684401397111100745327190622195142188885503830936121415262622983927086964551944048410754302778816551774383977160658468020547568903785013688848965106104288956420020826429332312808822065149524661500388215304684810200677496937787793429120185422062705757623782554850089037277366115499703058255735314603110525469854876843808297561700384943120839415154633438611914513957538096219404254819161191897287525717477915858908512826578534086503793115367227414141468069998279020313707563867904249192447424515505204542026122958592719915347604732461675808160124590472424366846425633807649297880444607956343843252915524335233431629707777286254550880313448614857583631054289876001037119039710370888561048608973395359771468807162041180386099012047665246365671231466339028946613817808456093378863934759996763823388218829330316667513189672333370057910317528921487366803549996497802307392288434913467875858243056026719770731474374450018295288725649660059008454770404838944750041106082856217247416402346195185590210889834965313608197047928770977724036397261705594395783994417532744032612987673889098299981130722196047695878854900612452741547498985228297754937893306954872062912505661039488372234849756009219172437561559256671040217126860148745696092598890611598307678049722367297036381904408049839194325115749846491128508962279323153118081920256679678063031444235187958052620332166439903785820168068021038976646580998321988241756264651041161740279398680835430265187795858889118739716390744603633970829126764818544700315248529936757358095980228829308319217578323517036989683677202431407490819146988523758912958026992051540965244890706697754390875720630204208251181333045051339735662209902933075466729414092345941663387848483674427530718122534996863293918746756049043526363436874062648028531648837311294734560359174106254766427094875318890824068346090862795204097472803963920103609364167891485493855424854547375334024401746989112482796364277867696188035314174968396466686268985725805789837888506927569597408906645944257788070520356105364867198134259141721931489308208116257028063521821481810078064118828928956910290255886666999395037350748991177680041069705763286045604438320521460232958328222546244795106262835855609403614668012982491454711134637850405338517034404159529444872789501440672026820020373040858650110448668555760888857722068029041394401861108695886769236184758432785832963424446060619078060112250137039265400911471750051980186941043098927252549824966268144095370017321801744557723262086685667919061494294083514705413636483390463929523210867928494392299822525996691526606227037937098493758102239996111737710541001090038505269790976824577399812543390679418441603027968237278562675490854414198210732894605464884384151972551791852109579732011245030281387243348730747258758534978015261899633223571898868060000304450928404234110721613395664218662279133542110482189558481821197775471551163304061033689814440171528676453889773807628306312507229085792753579104293859127130894717200012425944693569093608551218439184506161857250439448601706865545402689028376978584067179912268257654604744425789088268016925320847699050571389203568209470550867154115095121723381421635448002135402196485363568909107948966796931259718506185379542143460983606589827323251620149398708374168176278074717649015458758520662745374867393483269197595693773459323133496831438933604864267355163308658074624540490265646343634983976126424106995617833625139421585957917903269496393090490346256954790175542151317993752661277858000409126139431024036259276944212260470110892759278570488880537719198401378565474535388963766341207578462488780013565550313362100184286321848137391351687464187491216741401279644333613238001586572844063485432719623602075395332124586618403739578479993293409402309437141637755530416815757077515591529181954920394889477058799656474465110490277869845782603558066321111914285711745903365842537568862067981126143157908972797637979527613336704748661945161316501736030839180338485484975130578400706071261789427474136272538532017033825590799266381164699384669510376839374781605250932398889841504064782817224685212849531891142569708742199864764422170665388823620619097610069387057841666495096646651481058536248211855744861276508114641299714927062353298163203067002282084917716216965567052843313746750571790797696799631536454304253390867604996239300006454627663371111885420360072028896836163055839049120095497802905482936024665450060696485000744880244871518835325177046491648524106292232922509213513619038867780237514831506393052685022312856421662100751466152961164909008467932645655118605282107869769914109402488945696162102215874341230959551062786696680101956876706643545296133840595706289041919303273833629053252688209662870191754079928649074816880347076565962056938580568101748172716433079347811949180319331640182464628704390892465672230886324968881464401930973034549868804514134493249413614961952418642515367600105251172352921698879823050329199674648661804378327513084337245011916853896719035876892352742892419550200915894224026772615923788432689316226138876512658970683502917720669720001935348483618663790005389014458985148388003456789880121111165852350822024146149150861761938846805060861154786291727789248381404787612746520109057128318976724077214318126394077074563715807111352897252750278598832329737436021929833780345118515192332856882830502825536713378287752793427416030764746540669755851237421230897177172027306061520355022111320739769968494573785642411591371295554297290871063528983331482834788915290381887830284258166247744930119030777393085666911002666301208683190679075681030254215870590676936514962847051730254806009171593274054295187543624599139454363584927315565198223886010675574874226198316064056564373823599423336472801406700579560896130584871652350458280473341115382997462686859764092252297503857003428280050627664470138937142000961058869778367995368883830151515979338229810253966719739600138793453632233166417804077932081434303526764866834205040908606964901661468394178766946348376009691815560305350847277329123467561556093290392238708798573871809817845090582562542927502686691431849013782912090568086599229312666684703821724616541601026648956029053342709094935823705782958309743438688982261193040533715295605573919066413020834216969587348177144844439795460772273391732499324374979487416199135393636807336677751849627473833262646690994035484845348623449828735720667201005520707476485036594729407985876875363535440185926854545018275619590466652086769579700833120690220215899613202260720693724150043153183271864364959045618243208402324830929247400909574923024092901061523321805611298688200271185141157319478391474760250600365437314644287403237471118785066732663810670914395090423213477551319015127888110035419055061708090675902133461599091663543157540570387179253534935829224063567154234569034951456857084447921020170431281863375877496096670422449723049613900151882620711113871349252554951664008214271192775336605659914131092390194143251025403742307448978758252506066371287647788415911918627731936535873789327940425198240344930757642226601320093647122482070477217716969196472862157990223536036436675726867222514579479296140996485047678425655909698498808978730947200301948141311172648865325510775774043979959590415302201935611364765286206908845777839648414533579993141523894917240771289248420536611504694926903456883834355380363828746811359528549238334314083916643127847746678790497899332188352937204031761893294008240670637013666411707440338065414241617289383297056791415149573855561895786609200229448529835897326330100466213873233015257930908616993355163672250232681998150418348810087706145672485595291244254570552710709823092278491586038009185793574231147435674578940405559836634637452089757182324123204510332231944914787024515955154372623405093817856044571691913602837828062351142988619815731273242316836008847293812087741958313443982121066536472742427889569127584298007000859697061985040772590666282360028770215599905061011827489365896003620838088676555015218330308218266895116368513268420798958915081335066437495165599745268407812650242394865169545417647312353295153958291734959802058858801702666325838208438826468123887409700393476234277705488141837659754594816048426974330927496078752715924723665440814672752304426393407246711090338690045668046259655943091333148699038843622665347921055726304478200584576202625716294423441842977569321242092742630503893936332715076439302614061531851639335978062709581937931603202393797872040569387045820754003758783073847830478778809739112190278495897670690259325562108351693416278044453942194484917257173297339340445035965952689095322446411949883693026600783268472677394738592585212937573803347611676806734022690264076530729960822646734179094882078225128620276487388446191031217221720561566080476039479442508268018212959099707174466400769430731265785790717824025157482293821594365481699945822671240926706178866420496339830011698332389956668233982502101354099056855863744281289845569615229116729021495343855951211371048895565514866361340955682382549191674479645960707015268819144273152542135817350593728946481783824995493239995434246286071767130680187173737652250293383724390385011932781906889826650536110006631215379681870931361035677429501232155487786099257128906421452630988034814187226859510193583146923211711014412336254295091703875560648721617800607582065718785616193961702475623706374394566007121349083278962818553297939224102653879895810399453772039926086331564645252222831800190532165397198437805787207127526517207644658236680134464584049220452261239048614320166339259424962365343011280732822521925866482172404957413794572922592863927687122779642888640593365453806212814516112609981536119052748213694797181814124305408873037213048040992419646783149705241463559727896254844908662005517448189783761074596947969174792816629908683796146950140984340912645923366090242405381663131629753393024529868403462121073662472746593373855851564912372112416814588568563404996644592718002471536944285431823508565265494881765439671097116031385437013200075445863988627329709518609699245873499666548000051501475295261853791491560557917554750351883864958711988505514959920730351347605237064460054568121409919734536790128370321465461165033705076154607380750158772520545528871547119339322778155017845825178655376142913391298552001741556261690531946865649968546348298818073989226962447350917598365054629873426760383292777603484410240877001217227353532928131798096998145635927792003667265124463075022760363955176295911519974515712171830063908539213034936766476224901519663878626713476039005803668808561282699889673797921375862581423419306729415438875624623682636302672927110226159133447861796769113141588300063147186958668325796796731409463292082626282266626710855180460830908032969694210104677799501279170798562922254623065134691249887609287957248565739170028718103852863305156057293308888022052052028658848019773775910264756784522874710229641196941441473264515731148529336434506629991672241503544540994487800491861280642095078286358119361457081754938648715482232381903104953224996343662218588015986239452605822422834414387896718410403434992547970420043354836713149726298757748605169278828941741773418763697434609458563975748481956400555150090484592688751473475794125302938910868518778405914462039827673292846242979749465847759339904191044054586220613503897819550296572810804136418928541620630889364122056370063708788019007321264857581758137800797245102520720014485032038832374676409260853025512271484570654496470965431312065961304563502978776762668478058306655311409709396054805099737925962069799063212382749613892868320865645553237420232831896758943042131857378949816077893903056632148721513701892258575397735730916814530832859247189307600861364266963253064900892026757542849408936876852923556012673773496242427917698345427065820248070730079661054105136277874194477859925534043262927543890975042013069499211062077188353242388147017917378809740089579930759141304012524482017043303227531224838404964471358881035870413701706392298399334697165831593587656168517316134449445241611781502834157171717941809768179034204445178003157917648610172479211405060401143661590613012196510213790726818652158222981379604661897792360368452890193533477311030557470491157226018042138655597203647303306137143275265061251505320827932076205973303682493991298278868374378939650216586845934655630320165602221272102981674850886736510373162630484483374128109089714220980408171030829125361696448776896512551333749169736240421786291527699616730842530511443174474998089330567529260383434439271868264129350754028887866463437025286402802909353653569528799215091235048493471615167978278327028750253272325701348551149876682149841897488470384100389366900502109407895638332243536290877516483136119023812162914289956660171146218030456307085487174666639716108623570440887735167122059711576107488805378673238791662844257409856486318049024917131638896537302641035033832786964157315315134026254796129960347151298935489656078483108931913045461222969721021738142065394221638149446351236118691588141968037811667458826992928175260601885222813805218933102595235047616104335261426528147555836193158455992336062694240497537528682575249728365485197267269316342733186314861819732097224279837219486232602630283299389298898765848782593132245196608558835566503278276538008254111115125767684958569546564431803834809992423470514351807315278091863033781681683294535363653846577039146826563457722578054276409965754047116500628828842322051805383770285578796797558690884159685935230754988756542623206489141835124379665958622800491440214257444531769852688935564505260905108379013079964614773895095000609808008382342728599476477970134608522858329501345230085487541156463378082497188825025767954832113504402880799414027725395806951985250124785040302329416954274063453512087900283031482983188616384441213568456600820661081486122367967754811735766368810288146023300007334051903057055480547238524155569136518842368488935750658133716030478984366536540252184983816095893495695542669782833286910536129183509381419937824082196429294529132026390404076123818396578457477419266597828362455323308527804143292670104333444419452294524194082248644542657909905745030189608454868747017252892075329844562792006045231348398634426455874709998632389697515693515450404265313999081153686186717362567779656255076426741651595551315559451566415769086388735471645273532470446735268492246429936271796391877258372075104178389445577138484063310174760568988598916292040401204679880799844489590210258434564848293658917557979114512888326689306748668305596211431521988733266785984286779707656714678898016106851632438754305863447920849447685413093827153954902646766383589150353821829501626795940636538379230625141740388800563278953999681915086977659775961999991053847120594871625310237374069908385967871256024923352030650172787444797125761891968738753173757207049256083770820308055992788127628647760519586041223593180436068098397477673919067321436658291029797453446446722349132154861104398026739437438524849325780966285820854650628860777282867904478962972546411295130648715522470457692750907718828718502079576476060194072364901535607940888605470114892994151225271755331896696071510519034114419764729745058753806307815942533655796286125867559402977740258230027548603721286032519061011826906770122590111887023003778882617944766010106489761596558521331366862897524103323494682607098220271858429581396806714653776020186250968346632850027710729111970231752813184490552816020776933401643167254293811249445566809457208415430888410759868087104145636253043822453298480229775172362660057172751009594176347877519713312214829142164916051821911419055469945785014175684337610271892081437818157547908627731372028524332071442060622884306248611895401630813327455649087814685683368067430980548520299568042563955435398472688700995633371373377691209217229574561819702505777550822419906371442854491342846192448289175673747976238613699297163281720082711367323243873449004845622360138134133089870867076557361228245629068954287760171739069843677177889555819583184416726526048664082214935697828499615265569141911079441482479316188441915256538180438002087526809285603483307080327216217913978059788810477344529811705265173631671781644279844783848714017447977622392226490978289913935645128522189671710729832450429441917155188471820588748047258073436717304091555056637052877148822091462464338632237681958725088820968735931584794917273047903867951199842459771149711075281543486282187187235164562580010269900532935049024803323301994409948984493242812017983545672276354951411724545483732712495702625291022078048315547737295566469803124192633174083012295705992586879036500671594556996939576961339679344042596511136003846899702394093733205533340093645611529815353968315863454810396287702563235741130425377479707856676988934721600299674378376298472705283105768789842669768781764635116977644493459851766851301896598010241114778146854236525921970727611805397641798673593049739649935920879039435932639395049787531334563829716737670524094178364616930281671105390691486534913875687281924244797613403152630927891308642181277086430956875523191539167952838336715935275052970075709040180373179436829877061541676889585364524673527392960962454206036434010175321442535732321198235807874714680305383563176922046590298153432041980309088969524461314931880884166180245693573983809026166933030061184809985253505470643723826257452649684893029204961104173130665115655564623528485325860566248995888593830160392915824304409463790612776523584533715101257697161323419148448860190810359228996673390188253205917558113169732004281474767107842147256455328722476429662644907503441779795458197649015267117808498263580378711610417882532369978856245202111530645063841353985867456302800107370244598423455587446627552082007554237513665054760624516157828689575484615816782227936254428434089095513078254549034827337463755477096855892327807262007354465341105429967260959240640863046761150170721778077687301102673444424585608646301706531798016763853736067551927803755290722275424579165623660534087105507644892324027881914241058929530105411074402086386836948013475896019915720032348148556418841874513070540126896486770480580506677811554151401204185718870943212146783655908657761762697965589993682911348387376584974769250075420093501310731919989437923528481923975028554208608201943798561324110208385452956547169794346875914251942103078863173941447177297718001271294139123298193509707597014056243313510693883729184705011179838731232335563281812513361275900075901312649828401080556028857335930461801181413279035515734635858332191439656215956117580843702899904406969284072268902867752265864089076091096431763898999213702304078467293184156310496603620328588179685739915186376897423886937891066641297104695372942816047799901492068214121907691499459176918255221702749300993594265045478193647377269211296371512060951207142381125652563826991287988463071802971128091824937184047381035856340323558044361261441208070359873017400039970286988358907544794040607468350136740340010282472370082561470789896600668369392759569974200919226554894835040655587861003896450338887390688785486730950632969670199926732938992721430957234691868033948001059262960046400887651275781427779110663116239696642617803587549361440117285944449858878809668847149961992219028527154712616788930292729414017694037705774958889947566558906214870604104987106939885250674485844868377594601735804405068933359687259570846174021377272536654695262383853162428741704846731075755983097624880121212284278624706762410177833639708538953293074041388826792481928787952866067164220570984733579146719289976328753708968376881829989195680975668050878512022239489870804961554091047700583211799761450670684881485833456505679316089716481336913916687867328651746703099567445672635532198840752465446725094276171620682743540273680871480059186354921653179225325426772571563754002762874677080066214979870738568698844570852897519793297995963786877477429845844051927331476357618486151364665389734926694423766372749835289213201338242582936755582707223857854593286453983212034011327761274164732750336884886540258701083454565530824187040398400547573629812772501950540967204179166106540620222072341272453299350781074389058542895403852431990710173163170158126911919587114010460164011485404342618259496276604969176987697792694711560692871131043216900260813374219118981030354422085297329458595070540145480485980887571608102780035892967915711160059440210629997679105492135756303803625232626920466409784282366138097403935340485932080751437188643975079952341901189512329210938902825410455100568587231081044419386596455697493496456731822367963730984444570368674082681925408172753821948598407459691433187093363987633411798808271681725617143769645374583789815154267174621903551393510309445577409589341872414905140594137606789545630995789732708822783359456516582069023149173320072880937478698740538101209750620477280076072372474009048993901224680919321550523939825579294660073889313985119310020983816691787610047172724404294453379670884045028572126488207626474538290195526193748546076682494511068217735851947527983347728785962133370405478218266147509326614292313755679227174151263876199972548938260090644605596201728518653605846224099008184574992735651299113804946137788863328582709374950855157611739599117633186442809323116663555625592902605399178663877748494682237659038458968938061306702886082010779609103469714102209296438045285281325529881086524732416359389405217856057215884979701624008082932541678204917463710397722042689554240369550886841643040235812407577093245470478718438154547873258684853192278855784301336367839630931542150238161971565321326373521831149370296994627043875382387207685300233914877393194153410767123495403693011580652106038440196563361981998689183527296337611876841676361784683648646224962491724171359098643416982792151771369052154982397977878572242814228364195215347937517429327256224131169209088915556256372493187513089831103418070878755446789699418656715930890334387227679483380336252017083884651186944284449630701194033529458287324496437810480899738841077415335626521872143994844899276991880775534441801025565096502143406010566425388529270991253604293395925003789154549417041091838155358870528609237270859906620412910441471587924415133561720533934357649048558650082829372843700290950050715925655784942574031294166766232954908280786839374705076761085398966511111484868159385981644801259734433297329864322634415872282617904469713334513081366714005398315462624318068483202008412976260148728319936574101275565154928253639892614140149621961162984520490541504188684541836852908588988789131133279301634568137643355690323550183876731468999626503079782440818115957915619144325602745928615655149883217682412242750825412858417455682857994002146404786947777404532061039202627971374952886194942663504683722840514929517566611990895181907341064270437747490705272602878870423929667392742063397310817339445584111829767958551513109726267943168618609659121559546212368830752969852164384276619943447304748962437490246417044137775656113510476430843242643574097075185325914098024317169431431273198371886544321007930423256518641007354473058903511451613643132191800700014504911117914253534709998568339262603706547674697557809043948829971489543301983716041503840387776331797870366399491765280880494123639474520626099316920298996631004359785075724132526298411176374506341098953648222037212502710424308963076630656339033863986170407200892470949657022258400376307140851638011521715550534573242751101741143721903575633966491248593738946532353849649327556931033722166745661940798704077127400520868333769125831423897547167310343712274895842862663757409038977635650316994966049626451007957588288981196137862616227041284256594640670414127505215753987859781411476264057015416486764274987442222641543373301136775537742324225281150504601418323438782355875753012133361297292069382100488099558175686079476615105109621934135370499046150587627376840897214013920360328456679879812873265885471675782806216232337799925738395653164432340422543005550072516752569204551111661072719130474608102816794623899877081029217243508248065678485517987674382270073645019622988783971041059202957411866943097950817932647799631475496582423769341144910756425730261060823277392138277826820653275803525162309665822554150159638317215454594952598152290449331871277248642491267359518014714679592383635466146856743877964459299457407790947677423487131926962921366699974310486194709274759237171383318594427857994781781520085618200733157607566364012204498907505074108095858174331015437820174933122822704910468800122057797947807425211877872937927470959025445667927510492124777715113889972719801663031898824497302297739122554960035224130697691380682622518135590218137464891873783555863384168840290366980903003369131066350388501594117465835876163420606200819024746702092258329643362975243942971319902974822618506934232673174421008541066828386372087599578236567986600649077697579358729336121443221617393178067258728928506455602829603875739665523208092554220325582170888472777515056805533952593544220305217208276868215365130642825047599312485981694697292587493702420364739300570007266636553570598341623776031428025350652603712664323519448239132498313547554624711554487817402372106502930279172358727887269785330595985090356548029555733481218208137836715351630309327859285187238102477053126324061976233800810399796918771318494053832309296976009477512919672078986850834326556637996079572418100204414503897660420765631252356889814599132970923820366943214299063433405886592157544976535348269369167539217815804537650327426618783704079500736910590072350925964601935721200733295180622667069394515428639805322006397186628795471244619350709580936358386186223744076139273688643356997070431222312687335562884532630940220122549686598052912139985151224909197664736896550916144297843983588949810587590489015384696081862947687820107093162241860155686257703635823834160980211897109215176190750790155921774202406263364892864351084091410977945261423016166683352134354041705981035853729045278378288707573571146704545358251533350973503919021140439022054314258686928322317290334141049615951739929186523820442216568550939319937387748138512264484436419712523369136736010860860302086562958545581270658816683436292914182746947065827160751959523149202777337911248650829345544223838321756630384664297793036847720411751057103585175220833757112446490533295074290451828663427006252005927005916562597092941679879163020950603280182193263343246091947625633418183106134800406278186746735305761950972978185210883677183936064252871182038879371387148993907495825589278409101879809383191794657981373125409742645806098950589628685792013409754709146919111448665316712832050460213789117205373591245136448566901985604224976858671385306510525283485293632001633086406907224523628532631044796340906306000472872321830000507422715091810390930934907017009558974714355524419074996404659524602868997850715788957812736570821156729385297023844879747997443856111026581822593031356626606410195674199412005700074696666668478761503333880574967146847947825890625912698532724298843752046030326000220978367681382083933859472619068938192648154216354636264458481185060387422862254706727183937733488108763001277106413983383190170986700879787841858687039145978577812125218175179394202055757397428097139356090974325755136631099115604720767897167193846060383951709968481902080547582786852738869928374440808253211462794972626552552144917927205013135236791610337832152221182551690690194102907928808642404752966317514239351444008705051602872004291813154783121753643097612367055058562527557104871843064527106822468416384236075879881996348538602592493237394630365052686763420065393533253800917826595061435289530825767488439231780111043465885611909058088711120162697778122906391284235463366075667736507192160571084384375835869520046301855956981813834060055640173676017730772970700836489146917809105975215463314806000470401559173089646494400718166622147142371287256634270190784086969231448232732938043476020816343971335646319457149175454041042109298413532977154759534609164273490229520526524798626033647710093984280464457190357781264371636751701211906778402206891673428733663210743655112192812139779661415224790508728901305767829745495762396310991149658664409693682798296586607913724571327663983638205211485016564404945087937632071158155781234267219861419858544427398026159045541852535365169963209291212511104135004412571889872729564717497386148893432518952799962293454742160733182249303748404420998642004020729126421174297303869122123795211298616783666902759275904631429986458707859602459500735960379078851056763231752693125295382954578050681805038628095629702267549905736236941220894474589858606362305113103468623456894316051643236298923469735525204814518463206383750144987423113815143373187810929068122255654640544540812353719141425532875675487382178965025347491972900052690993379339287262544135800006009303071741150412613572687186690732765012150464468089857422937015281118542732687528630207534786516337469753304527301017760971517687403757971552975649190435132266464644615213422296824615854085993303084194234519266615846445883601855680644494220721669586865137588637446734054209523798086954630727105056644222279401971417686900127258211193819117183340905659262592946441724926023376186079410995377265353824936919264967536758024818390178231919320985977181212994215218466365347305357543231677374559749876291498586415605872877647113765799405460408245194784424026586244296657642877945732710021272544786277250100796912358631877954436892617305393354263288580532777172983415591174675194193731424874862489606824258842580506228120779951175894410746437941049241542083409460907190108974168061863518137661873259996430519860245429936589741835315370751036597943463374651077037733964384716146504819517241580686475500200438534146471360231892909541927355259158756572810065360057352765061158075130861352240996848192620624585058299875103550708303450501490418324324557010345126532291965803915805023194761168760449208390790608889760561540724768996528730567677293083005865297656536605274392513328251382124167634351825877449977649558320126758516037807325320336412193707621057095890295941997604408059964502501893610255539993040690846263719816033080516340769523483597987547946537757944179069685474209566606239669890861080704621631611907449226193736931613223965082010612757462996204372344704899037002881161165969288012739652094877110723091980711588016955527064889956657792962032782974223640671508978145372884297896257315533706769038053798981728414124842558835731031886718543386498964161940408434428030322026780257898213357161812034198384729987593186817662174813116919445361399196005565210818601629050454389440849396361680927363877122176534668590114087504868232093773584477972025285673631106739299454727343844825838775944046854423891687920559478242973966832791192883535007074094970646000398286658751105545234607221668674283622292625568738294103471534221503867424001874151085050788336782582023926022424500091621802784105525300388418754136457877202431718091281320211003462952542402233539525443443514201040845254924048892019567383883583446403028303088380822049136454714712131269584547349820116587549986267574154017160370257826161257489860451111443735403593871482131464268334367979678215429698892865278912241317708931067743011039254162860429386046231242406604606263900428880603095943832722808025985075285380467773324169618633816368376479502679828623886180249651846897359876312636171070183922308791215655136353935088883148556576106934018774064323487225267504085587023161486186139325849521477455619446632364351841508969594359921663875450000866124725870238834719206789397984551665694280073575509333892890564725167126078238452821962247367405700183407321378065477526018242485262183430969870744445402980267271574879156164060409855080974627030476274656744688697232115853031462035073451468342984882746805890833583454612565037636688304755015788261060548180480912264876136182366267955834270397438335155250708642419640499003281712923638196889744187955732440890486605574549244975866236767472008306011536104821371769158450175822600916487743859502848234501529156624684766947365364819446196646011832448884018719477999081245966413590683695542291001733719522730955687125040462707489823426622192580522933597817343752934427679397204548449563375480738671149206473325989456998178348991996121118683260612213890739225765230215657647516822300096101968837360428970089944672787177446764431231519289744670994353250811641030656528404909735961798165726441228853284563238886143872232992654403790233658243422788771281774309052360519859762868727989593501718672790242386069811863417482939766331994875219194076892590269178907971457272575441616309594855108633755453279894966434887846487738899669255042662365951114002438683072782372752403080928655774980590890394790071412842810235532734993379666252520103712054991477376793625404957265880846081400185787338339869837306547383448785447395364683388619577767771878527127455244099363086216410105215879623890306599225604427523786470165428250726882217854513236440624109479033296423913843681832779234529028310483350898112777705897794292866982736951615893861264728431817200636932850126272231543612105031591503558156207679842288604110999670052486364122665884089759782157877681061263977110367439146659077476889558399935415244427143279105179062277777181097153210851355127988522141154036039111022960639036119823068684185768571157215525758576922338024413652803207813086450886649399782826910708730911858191812101805439075818074048390512564099095170649314182940079538143047614161862459095951295205112959361285884720381208801437866390791337636776813741077580472792676756587029604229674935422439724314412918104752468960780633584550467152280958702591965232692831373462882168788501582782656696537664151523722868809000166346152547639031877162931144810383000019432924553468274248625681036946601030721287359938897569880680146434853888125208345283058290913401435206558020929618841169222964321504433683794468352954714465365796782110070038843877876576024135822450342790970487272529558100905300047262884489705336466261231120840526308490775446647291082625568832796573826908983949225885349300515936883377621543473271353771038698402842291727124552766546655359364807697204586761376555290316228521200204997221645662002247447245383620661061341765340647789609129118387797802210306457021540357113839637963056242228244129780872094687961725606631102404174730358869713500112530576514017728173210864571771589703857969949196814405566606856873095053195471130479553150035499530349162688512313957380700732964287611716801713612872480529469264494696957888678685649105229287907205546071209528121496445508692000457921949724588429677452155318605061751506624772362008639884509018568961890107892254508197531744726817442699244477516533180656465903890979987507500212165052491908584828067381174581646549698625349160428404283911227623540730355260571628780967066751522673404697262557878362169931357206564423197651093401842047324152542921287561414898146093057612274000009916203138251155765667252665947295398616001731009910451455210788318394479727882504625521188951272127676662635074262311239387647382632106572340157437120657718785529675953450066266869275633607710574444431219374445051089062352060760945231545614569210854120319655727460320634200020118339612525673467765402702476775263451395122750525434231437075734795307194500426902892736620400274658492973458594042868616129624422140530745197128760196154007133703171462933491308136527219426896806633251447035362040600656310187727034897093325472336933144894433354675975365350636735603384378320846894906503111422624038623602538052531239886808248624816077204778225428075040386193242654399705686047546061456228551136005624626354648894237129505559476808412575875484470102919932610576112610810037328499321718161869622751840860471508189802297891887782668417758109744838739379602326288751773813921305049839207698789661751389150523006063893766703621883145706671983249045049390353305209565282835913554487725299636526770331665446383054790730317750825907179601738304505293574485649957206942018041298920377214031080268503978698738484064980740133837612003164286392894424033937748254017764336845865527646678106515909996994336317366693074184791462237726922052276656801787484809341230470602038902924684553859377800743696351296566907796001490280127239112681528419442945551774949442334749825192110089766142148339082117575834652325324255560981790143569643595791132407632538676045018255894971008639517607111713596041424555189730321013352483056756529593646070472755541834011488019372810263646690170021593823992274065726709995718815300732267024544950668600928904066443757294005811402545259009488276232788444141811271267745552267783709412322144555974730688499825694785514851213979824584797610934491213193238578459006042555299709710847921911777613934153180029960227105614624753580996634387762029704775070597256923503205982111165461283150286342110604383875658629267525172265843644288286684105535749651797606326104680974856301386027785455965408404615297053675299241831780462233015952385191663894073254026044441708758816768054094721764068105759397459535276565613119498958351835324797520612267110077127087160593163288651833614238091177705391819434555012838216565217064008584619444625954906525164935738391235197396779686376511364300772460557448849968896059249671485604938079978792430137229120944291416374171305822694578477459100021695591124880622766962720472699213536547083732052959141291982744624309808384905463427758426734330285812297978964662308882173013842935417509575864949979012234824771315869249661917049178337189055897155892462323565846881189093789102931615146489652878618981706074668185235964773848204594385337527025663885133506606854445971835508859795720141255617224924082513577699969200798781902449014010156818382410868832279751577522913458457937479056829066345773859550565740366922024990054105277081281736608509571697046133651603487319827062052776214402157838442701248634526210107987868928083812035634332020189885490618274053719421260526324896359955751981920886140270866460891238715350267875284410825842234989759407208605371216138064345848040431936502267522479067512263853045655790680512216217720662515611443880255733276284807766234442567982310617336662849490763740033788818938258756109925585302094835517179495409917845713255605761572141578348792793391015516349161596254756500612300822262264414529777553194924516330332596554765113258038610888630883548362544621569159696334956128352802271596322106753217433210237401572936762815064497213967022926454092462681583312601835744014393348135349281763788614496148233425675773146382521717611028431174134745915188544739788798124747511976312824350427813635739079725311167400500429234861866518108364917768520840571825557581111234705811383387902243264848227316219077975341005883771404667540265616056377808239894590058259184137787399518034008109130570625770457302527432166451765731652723731790533625641534091246577861269315749779334838526277061528613048356729929510471677829942596931887619133831489546689511932774971989159880928333592026224860641168730166512181556341280159836938336530863280278582517981174424618243099016417951859873490050379164283677448522585927988573601552195196354995207930573567572388659917650502635858655265863796833361164919606114932004692212965200648374884537291788227284855274233905061539615890542491312776684250239667336152780703582144060692131164573256822157060003348223430350293280476163189559625846947116986730654935376645552388575182780293295170646411119528468622529691689901750328232047893254653637907810567218348761620941637903168779772768510329032266433279066792777073854959970993664592511205031658728148372366302111121421001310324998146165636927659636280923204650319567411350566253141974209424041183596717009720741476972630011232573290458443341397497259867010090810391265418865718993784852357453126631190155438317069809451834223065590995428645883206696376243480670078034318912197305684229715897225775950108491318143043311935414485242776707189387266408927485539163743008924913276679371071802785918414179112730598096131301449292023257989471894475975150079273330154072277779203829267966718060489842689478997082584558347459775718384288597363271947582908695849287021428242087263892921387280723134985014145095971285854663940428722335144952006114498184429245816324634789716623777426993039052967496518329950905031701388492362949489969901075128520158089076478396142446108124491243275355698858579531626351764708235296839266420535578584651319324983841005662580575380639549436299401654607869109199993127755408784819083762721055029589350102204304231153008767833806790142369153598792516849897854895502711782642554576499947466234173787008095592610021789452565160922740346338760568410250976782496446889192958921587005730424724298815384010509478464395528360520947859990208557746834350888715003266400296850115928510604099673601418363862729219177974940181095241187069579236933052009529238390924085841331884071695005265241108245732435573653987638628918016038158032094711217895170657365203418399176643252494122786564388466142688079625214914235490850311910304792770440506508867453726970547476385904935630151926763920955349440011501094933102632499501023357146822253301125635244175553211889004835600941281832879648136370665564088240321960612903465046217649316605652233278094321304091297744005244241297158090168018052217731295262006789293812637126587937625200926326930504339947518538286766238026316702553810338248614098095222139855925389920249985321198644361340242035468587551273541158293067914200564951060792659611439862251826492121729502732476783008639191634384393443059599401064962266063479087126431347957354977730380749500388116875929757356907849109037021271085862865810751842616714022311417301880841890166634644945659548648720269037943728315528656701936172942913513658869909618973888805579933818736000207040321602973615126231324449304311107088267984909318418638309904553141893405140708190046076069962274474444156485088806525922136638863375742670593478551071870609160276001471620080593172603255013382281362624516670531923415264783098497198464539887302346569299129763103346737471308089073538279928915447885815226470891147668761655167885318703250614796952403172914628545328245630072844957405044110184653285197927217856803189237746637296726880713898160454795978976104247463939441791927123756801242094254877750046576829689024024483262774935138648888492276035062873922127271082820731647842793519834204628213113473111537889313901800176942236276346303068486270348165187344566404686520819443315402060997063438183333704336951702980380090038520856556841143343084582071916619635769297280468526681199285190764796518605893999411438389879031761532079335832540918766397098060552849557298911178798020730555897466373689314955950646812100180079454736076087097432291378684980836992567947769912504063000201572180653446437695442127696279979300212781783133595562132008124808261768503851577740080824857577703004310825386524742608219495225266178045084753143387615244507483868824399023195614442156221877312595196138255062152376661105191415109418121456787922765057738405379100896113348125936907479143067194085313952712680906274369597411986636138173250004016068599834939274591851486347265055864680502911383682772614101951532735643669355063731720323851608134325474399083550122972857852576279860178788817051085664798361712887404470774723739085264932860688191306995893171224252963086364968297760317566197326580315950963556737131695055192842624599105944683385245434208368353256108985545803292239892362639027698872790456779250014887391387693800077771928160301975667902510179219136619400653174342614482059553771402379159111680568764415711751269487213913866530875067732874009502908511479163722453930843309568531952511230187204601367509888995653411112187511003389685897088501337079538652203640245082918489066691563226960423753630515452910383462961788463000307639782458564027316953531225201945054922701542926554925874324185696977092688734054739092963914078266055072810442765945921094958687757689184110055876443512350888667960643475588850026124177208996506253586405208061860825874677560791939327876071567455555170405706294277559884712372094694770574810848779797962984771290024218275497112974582458945746811318423015372348407462195863397143808701867396328848101806574016041992559986473451424483582395335804094202650426410113953334117563264700526628742848234147686322344950453371722832844012917814669530245354163030846076947883941397456846732297260347799888176431680699943012638615352858197466623698235631645230421115876251979504260193866455090020471659979687385283888710815860149733450427375987324588116507739264428346613241758302304526317589987497485919665423032405534903610250075656827021567540890385615516134238088950345589640813590223282257687282136862356778574960082931724436205183503487596730853945944559415327977015803918240645896605738579632278186686220136993592554022239224115292962687086460865993920154340226660887964714780199326954178386302053991700600268516078637184688769332771785038130153048251040070422248203311412517640028307744098994890486400714195913686571233461795303443342644860043430084619943657169438335078067421732034522034263799942859636203394440884511518361314458136512093614551999592930141135242107721679793954747488374727673447809799432504700488450950592770182753161504660275644607420602362275656265491687431502626087764492346620812874064687041230410999017394355610134127386604449312934339473989431594111830608061965559030442111535719050906813631512462651016559272796590469921634645363064194180224580337621071023999973917484608945877261057696796937347843695001212743443411471885807947974446850866033029395706176917463327425093990294396016874711087518282916962694927336697136128972755514416643253003346323381031549423584152657328470497519670296089591053486877028886947654005926706900339525243154100790279856519156269058341350762241960487299799278208720476912592733589756670184036276784496953455812434152922548506447900389364230645488576272187915965593963514142210313754886240135374905405785186277959593930696222036962589299300901180091263830153829298787925090292583396839775560915740989004927957148396853909507977889310544185153493696176588621678322944082417213211322076242249998381400674393018067544486470269927713979386992554233259537098756648192718702075605367795113910149548932279926367207679729874613903642708412167473505868396342570965562746915669419983914210103584478156889882488038662956054581023301928386010439293454524077495946799204991405952101370885948856023306267278070401387095710833659558059128755275613007516888393072357591613878901833379591608679834470378286771530462045195791093457830234642511918771813718345151316221158527457261507718376147449023998933958915377908301333930167418931528195316237726738396447265867303332199032109754828866546103228083769487314579950503988179502118131017235313192609902936895030885922120956459829065020667970727549120357316948206446459739436515383011225284239769436511990098638272622108895829422985935386806995556771426189734340469990142414772459311314674843124676381675755496762625431539089463747322588539200436021026053297093944786511926966614444432868482078714986790552941162548260255057665513286072586946937087359575927845337848235118350201489083789205684368083662304071544649664130509738200416374156905330996860217513851120852695334223264915916331483563093448943216797300976780538397797852663037465746859381226028203883328496751572244615120162836940962434815688309733199106916297306637629046741194459621959458627534144445048305749358569974303429033893089701585140804770749615819956004769598077669800935009193912826982915515892551777584330316160708408791565477869838754886437343311576945374377687619012025324386978704558141185644866519917649090850299076315616795523452426708910978093395534917996392456116914438710282332820514565443878804576054761953959638305984279004375442368155746822241699709388228719560718864102728407338255201083553580912108186423460914265456851228121073055632754637093583665398546885955193377623004883994624812585173246451433540765198183279082564044973746657922996219338908246595304095604597551659322204471504154136743093091025081030665957488056001342545996105422535510821477503029850827400998883241413882369093676137248598663407159388276351151516842352784301386440645207033750577525168381121118106356444878122668281597097605758312923667828509905339161336182349252349051816590996242202547782542116587560495110284238055449835421580222642730620798739023548304966842695404162697023941351992374196641899484876189746287471990862905211265656343985552501877257667639986943270057532219147403512052931475070501718876992793858440877308213843316953933607479625509046981468950627405279264157718545932931379071733947918879622947462685046477525078893483821178956408042307547005402320415471614459285344618206333648835211419775720462465404580999423852580304096395917339596403966546821258838569632026585600014981462484609664890744339984265628793617792986314326151764277250282703055599038206292699204614214948700519576410919029512838858936468635233701118219582292947016031674770026922230096439250589067700130892017967402148009165877384261143936126131367855086257750905904423545015531429665199464534087277795163926846887070868970650784013990370593502691167253474893870649052107110849892311944945977929269089100996940292179888334118451508864255373555117641587817647628996290435795232553269573407024491595852868986866335028070551141511374223805124941359373243368232240749644588982968741397855827366999637244325375571435997938149005677113491121953269354908088164178382630784449299018670577018822293624655372000741007575309324616461750531951303465216523541807689240823980833141977196018091242356333429267174847361307036950170376259081382101979109086665495147013036318954529038877133724772891572255528008364469673292297763443607868208740856760215523900940516333374285372330639384614866629093129214594326789560685118970142028590338566578896600894476074905317224757383545998824427622435068196306057605748817129590602474983421273969198909014807279739775908165514729940445700014551984103563764789522286924687120067109021427833591611054680605816503619530999526508370393019040629729257831722060928417802289524818230400352494795427460791337829733915578499929896772668072596373323141239426655481497326580050434508291464077240427366247746447037563039366347542924496330470128447417501988656028086998239461265364443559022513068036273127561131715544369946874951590783713966144792015901766375162511102396050934360977527009301608901992962765508645538568973489436308010307411442849731951075224925968406194266993806156709144218210773669071249124713624055938355988492382726397904673168446307175816552192696773047225154070142459842021956171618037082974056305894567253420764648296392773107528462358462542732401635816387956787762340325531523758443963481158180328379968251072272040053175259047213538380307580106042498630131568856804603669286577919343543607141669889012870605692699060643756654852727085645522316112766781477600451498033587148307122747157875203641063600805567905097942716336792052737449287404480669921769066750411297001334288657960855206232071983031912741318882028331674130552786015962391223961298288972993792759260763600088102293094109303326651274744749756696438748174009112518839789356822300252362295795122449609776420944904939470391543423890976947536396602112027607295963631823952258878110058226842815849800767854914854634651014073704592958137470102157542046466719494702063273231357381451464568855971756417990241296511102458968069124328847790556427848683026144008143926384779704919799533484696126705242633979524590634028565943507565143123266911344414744267088798407871652353682724982354003004671522102397178207493495216456577044229071960152934342636437241652810566141864329243096491346688107868961676811152284197764705617663011092725025083736827308681019929884917575213776450229025867473678576779317701757130462499124230760087985721856757241208788173951611028065483589260756156352883700280843739063730465877083091921988087821091033535001409411729086057705234302944662796181422605564614587562816536912407377311576108187426411886687204602122313320744517678897051036253513133456700988810674658270629255580650642009490983669615998866865782076574893787017580168974973934564132052419510179545549643916606747320073379864013368837299633240053496762506533018227231655479931563473371692818531407140607684512288062602405092320406668921930192480584473723135815180066989417469643767460874075499158608221404753852859448726123741844986513109344612308065344105514799880177345747620827123594665351726466441031147855500347051147260760934616524708926737442232502530367062507046316044173155805613821830331576264226476803497759864771413238790562562580491110921469737819616701413645990476386390570647492486389318532277701906705558659825125192052479356998989843761707684345114159853099043543327903396661125953438680596106515578335417575608957491380672594654871042459242652115040987956112682925856096793402288269327565613145911304189423004794124737890244619154874629529347706443126569466831305978775056348284175912474181924643032643180544679831337917839541797676696778144698581938054509297444088028374530816791755287783456450575154342426504750130295559671950874821380956234310130251010437385146967660986557660898878250776959222808402684768927140456871688489174095635764454590236041707234372615928161280576393832762386140660611923504491817071734188854607469868912268537044018844368418656415109970406285341090330367218921710099068687572297604301136494400179174980017090108981440333514196544088442505451893888750190037596692531049912924866028471650141103484294796108837955058687037655665031745152245128623961418801889900560747967939177682661239444082176091165028518381151590859419591586078542657647313541072622156369235203744827225037014932645325674536495223472877867019832502915686526821661455472743274677903462135900345843008840388238360143773887230775883933279821173681209411081847545864851257563417841026723814478968714174294397376207460702558332139992353623010201591903247481816143390272691282777485131014254063514434007649776095925150569947628498795957679627301658055459811002329325348080802265117024134131107270363480432549136799441676373658820251708231363848745767352528349482022639102565920310833206261578043556427186252590332509630250957738224657493463594190330521130914688658558812030464082093286497703499564312555433558349169103457397986125692238158104437438669738881098318977803005932547344117647587476554853786812067045809104791189378009627958398568353853386480561150443285418610980251527105355330537078508773595304321079434377557737016235889286563096353838490036399364202811820919978826959473110433857096952839869922382258924457494784136749996379151828507022195710396343786233662055352766458045578805089388641988847043509516178892071850297376695971316299962267266263271171927098666887758795413529142600944635895796029212783915034755470116942330409681020883633495855787463595966571599719825118489305836898642445082572221863035049161914671994044569300457589852245212931962242850970751684417548158512069163056124051596348886415410758227827461964886212876197445678778579149915686732636009612574053687583839489954187800514622583382613844684827308964476856543519764494177487407930921663390749461739687387296264782499423876488832838699796449529316363996025586834557985148381486511854238411399587856519958833327593229131686118662353689397388855292584874393292305119542508834855133564051070309205288394999246531126313934155620405471566850145137494202432012809146827080045067019314780037898914562494288131158220151009865577825711276119790197246545878008126041669162487380725061716947144791600987220216892515463221550076338179383517170679129308070679787063289792876945633262846805441667548518946994328434410301372506958393892917496965388006732871582989595960501826834590305410905941416947438038638801551673366332078622471904807204575063943781289025064317435980746089455246827703183491355777014376210073866081712585103339400047672172738309170741996817633645258609419997264717106573458555946137381045144127123023860655515283726171321520673934501728304430479490247535224649671045228235783106299733146805544236837464355580217829478621406428429413180430227344465225733213937353527548742844270284089644902243074136489783914840680687623000904648315302122242273991888337237756154231133558090332262756619839682508726652782418295140592178136681107500680195639860915265179847840156022620504783537306261716456336898970230093863753432659723305664340183398662226645112246655295402807563663883817277813613427925695615309207131468104190492867673194249242149159573339172234598194796982012858718049595088082483682459922606782771386022337888418126561361622291461422979691678847265356976693230487265443200653204055419146408255567315014385032336953019960482027828842802941076410527389764665881606250712820837246019765480379712526534227364717532792255164937989337318271721447001968886533320362204213751040484639609567109565014376555307348691219383710294265217626351004974456520956910493896607806850438286936469044307189864918542307817019379749918512269220457474620138460632046847718337920161230466992597167723542427054087309877274997406322007765601699875702316693937511854010260449364044934272115917188461236584230485836344460438289669040076807732585397118581378504521607730246675405608200403061022903931376014517342022207206892398809176117770167298956342168782549918748764310112195981855334102234651280571794980524990297603946541047392027298178442124819581638027439328113176499326160799282793232858595054725048313125908201565424640072763871991453815848002642875339896040514346324968015383348278505811937901011103391523201737580176849538878129301871572493188847039645216720399223491517950453802919370664128544751762872453683242112775902502289069586940431990924064378856387638115645248974774098374041196105077380038667862144416041971589426952349612107098390492056933805131404179323110233383895199445256696305576594386864983948692854026457872848837624963523952248513920472426894093143481019662183338295451935812646816077111639524975678207241235844697634345457473793515291550538333339579625923414223105135901702454300604297633658293367798386143075949775377157215901281556067965116560929815389113821464757412330096123452636564772331322718388821934736853041186415275318290469019247602780844884024895735519545428639834884739111966089230789616910845326008114460883968312916314188980814493791152917424295362721314066460791054540731076749275926451202217549701741350801697964875676265894878172799154696392922961949684043338644734308703704393567587670904222221616950798719820096623351520467889044360074032797030500901892481030572103764261805003114319230081634524246558450211303723387393327935357852844380137652700437516723608448782684350055301519110093558987430439376033659199977773836905744361109925655909745441811213436917059637405030800382376033243867720692101152023769368609805985878758767532056718749040514804091962796629476336380977384754943797536372543160319633523207932883595964091079254912018102554422449511528116723018126571783249452266396059084356653081425849857826135894157245684680131325950048638361807084927681361325515292394899343734872903856557062619706707184995766468039943730526143334065365311834179318555086648381749589469278067828099681509780884583624011530231953911697504399282174048226284657333860844003584498219454041516402527250656908426309729011119460403159612016449393851687864274456185947555893164382040172817818205002899947024460148191705830479784597238099888655759461093564874714613218778710779768863102037243684140171886667208783854987324622923948114363036158979363371555438993019624105647904868225292397246996106276445818598362967390431841511445073780178465915935649797587456091291122929971846209822150837007236121959430217430231350842778404304370647664683819048461931533823441428563993481576028884544476491350803384005427091722400794849623501967910475489100798071474258855306222771421594708962495043501834703410749540587368118288227688903826949826409972584843640563953005350769577123067338512886000932015573358724129539324478163567526882564713863460602426344782645854250918744127676670501364545318238240755080348822201410340165513213806903836403759770973989982784598073815417992296558351851486423041371142906476670166622096273284832710023856736672632715902417150511677917783551807494286253657181261025512248422864422951589286030457236287587197046183598792928591837930686676963188333066161898901398502696906089564047998828349188303045871746427701352355490123705645057337194183967696747061192400968779888262827936166351636406698337591706890958772177733105741021130200400404944487723290101469875057164903257455364809592275191861776707364464706158437054598749116567804956595404911795070021906284880217412486102531099644660482664871108576533949512967258561159554447829893951255296681112838740785800721268515236557497280286333340164824501288777337744016996244071043856727714175601519869166919880806038773116795540997831536903650197900043445748224156746400937857356906550998035551855444371358726437898904447230464232391333146399719858632917839626159881112608774276184071273072763112335545173080406233233384350291033709678316823513560192125357273190559011582414307527272393971701741959966487436663483857350733987198584492310477917605316344440058577054066523383909576882390355137511460451094906672651741703606876630466984301061815328458073746208090191152266550019884131854971696538260068136994239453735150884171231912533519425783197322256260924981675773465780087699954543901641585381937790715545299605989840806553942569953146528620159769318135823426158685284686453874309918548266940364216098979848822396267069796072248779877382451143893899209929483484900716965447562182020031586759169842952772800293428814121662304881350125746911139139961514700193082866498413019646451740548831029591984225802801147611776234943908576972963078839343364780037153807473531831533247689108995079980702888113642321429341115891621024695378026471363165246755882662141232410446102902268402604234109023735567371998570131906092778839912130125981945670255050755161836226221136307513782412109569871428414110356679489501760147279591498019028928516255759051710685640430142868065916077498182858243047977162399951147181202283292839616739958472275504400483464969413729114489300762751678341873707210797230969943952893515184795681302806219938554690978167157031384446507753690134564645954281328361326803640740920712043968817558115744855220486838001273622240937334223923338105946970609922158879175521789219769654630106363526296468979513085715752173676539619852198634225898199948709027200073118085515341461933669338170133588117965698902641252923942988228468634635153675295896412755721750030345368655211924816450699057849894974068182142165741086668597569781005458958892815955806929277095135437210478080641553110266617951836377035982115707586169885436881475801048013284318557198091405876952049535776376274536745801052683698847667240379495534828396305619418438574014736017115927931879640946434939474779820418377451524834298918557772963784281655850997980438105061425484643786880429266716952697588187688272031250273906929447064876332826201474663062944251792883915667907450500211345028062450904694599180246412819031964014320999228517948178659692015300323217216407784098869096317058575723506764038918856506860213987801871524589644666710693943442410137280576582021147528894081725895321800181901887097827111735528585845809215159882131301517911062478084346858608458233765428149198664068209626475805180752987864495289049770911926243843564258576636576986546030050194111906322769675006576406406029846278238674720098105162413256140111725034736115665583591258710429724070038812267876199467922463819386102220004948615476210827288354348372846519574842507672789533722917303041547261503829968936993866799649110273466985147615985749010498248514306320340464769283047206545181268647804952090143473025473405018809852126082843390263216483544113974122016581252283581096969009203468755642094066921665445083670253027278029443883900752284808347256433803409350901651477145382613553382331150964924927025895535727923205025533315392290768129148920756281677760743818400732472987247583700332636111995458375769780847906042129010567017431423458940715040276413709146303081882659155147151707161832058694590297492211698299767666985785099497580669650184248731845731459301453010241215389757561676338438313273937748270434468914749049167810126254636647922887607115482435642256406061751163337517753839347041350512339440850812223736241009371160855479425020131039832254409974096053308828711507023242334340444271726099424929969643076349545952619269339324610178236368764038927584537218008035546393827151675045763869064692312104085819329158696659622310112799635571473750523830299744550347107253497098262411987978754338213540145036983544389769006174728945857045155373096373677655728560280901406243182503894144293815233072305291139490815438296379385064038460052215627062578406391899886124289423156407910249440837828491471291161285691270557671269846379788252733523021787404323859707462732763450324308576405626598461297155925880221676567706692853007412564423182358829424110586154405645812645788794576539241273172093398279917332015738945513117597142322231341181623114479193132520237003503867963431069190214986083667252178482682836934439160166015617987314863053377965785243383580206233153708454190337654773177952287204685315353753687695154482299602829789438517647950985709518138065288130475196413245237486626827955567685845255672290889683765116052131145458585383547293575192220721044868346848496756858165488781768004662540609137804451408522759479184115107367736839906577775649022217402635929933281617744211085271289254434198285733093078321722941461081771939894186774683737575991794839161465566991525113251311568325800346472354451841773540642831344298526996347254675495335839941510107701505613897573847388868081511302180400517845768840373571459751286360389786316957421787845489394335798460958887927177828778369539437317300982060615115577606708718469782732388832956176809129487937249509953766591219906505377794460164813684730463359021602718559650109338508354451495442016064724629284016306677883979673307373992403236183016730190061921062431354890852690720343419193743709010496549245072820475957032414441883106362196284531229582505753121029358384490848418524338897105486404526908635390408447700930435700572012029641910375631333271953575719771378008738780787568198120459501297989830917501070319596436790941204171394023434175789925187053747621011370955326242583391340615404343439797415015141552635314451186764692110314897065892876527790697309883005955334124337704583660350712576800515787818157668421184122853030066128922384654662088180422491045378090764939584021047671926469993414809537810443162519731684179956795089275853337065218415306329596488670260433373253889669468128849144740519477927507308444038309696474958804140074199275689921372326056527098005369766097091950888688760043596073601272220470093524390735516090149798361842303932680047269945541030100536630514980989590538941559862406102778098061086495945696166494970224882227832935401520007020746711056580723248450657099571880371529192670122097025819631026709615114167936554919880983690219426324283266429004215087448934376281092595856320137214788356025904491025455334299925212111528275463751887362193089104784767155544346135138377977455713172750594299035646230015649219310178024707670123251550569072159414486259557165048027415226948185374032049199505072844307189556282147543078291251517489078359968284737728998640572183496035821289841973371653444444561469360227587638712615669009319359304462390336301168681142515248981136799970442887620905617615315756420222994221717105582921860258567743886093638622896172854072561048746682902249040105801890562552407867477158018035727469975885358565874349751000777104995174075602391252816946049668401422378771764501416697253258579834236052920719420305803178838173533104051046609483674365897947620038871155293985722711433737007091751419415543840864656319477847639398757468844379251702580607076728930415432184285667188200145072624403920358240061738520431124342441778565639981102821141378031512456220726374676744221613432507265772716562661047510040466591931554863084219134594176283089836025533909829378014205291299410817960776448200384133507431578697354908242501313771141692857455755919157187312283233210231304410722958215826489807658077045824351993932580798960227843972121631775106811067109255972250672620030627275036757721113931828441278778203494338173987544327533835566846940801078617588488998582447902724010961277579337592617587018965862031746004779991533532969402173516363769178065795337398247122807570430923797300470499728626330488830482675970417324818207238632415228251082587486384865854998244189534879943611214979257254728194634218742961655171838995362441484590099380892368075151002857931468253297057110468411173447744546844273895234537317350820454014498381731053118920284480062089737203148783624543783180841529130384006045123780691279816389767188479506752044777249678343823055563564398263734327598890477603709516303367477935178083982000677173215826762617249808445298999300769074573376002815597753932174559329734278781243338174521714831363064916347564459925879134579222122152237600397944224808683997020731930654646808740307586299990715985784234931762906393438801721247789311482063437125977776465476171339042895020095096169129492573273369702784467030207755785225651351227293580894800864132401525639231206994102887395963108643521699993978830299259736221263307259865901413893949372867514460044106472534493720599573170636187478584181009573498908108478364665487671951645739803388932215153708971241976256322523149748482870029532717630210344169000278517233253153753936850826600309471523006590732073670985389805561561668985914683166098994966296723956333109192021183118269040833214487826412877748422223486965304285305868505035104040322916656095518672347257606031026157913233651221379273403472256521338117295713759408271358272288522094349554525816688728164220653342093436493056477571169023539059189770107703369103025266035267698994289849783012277545677847115137591676583089654241650198972879090460459799884367783059057939837470260984293368773108360045511071344300644520843475945752813989161332617613266469996402528746476726493836318974541072093122515815529953859816558756367295926227318728579673814182994860403034386426382448365972629748925029208329475633745744326640106984458060338667786846467239109082109951125400779275919544992875446267764268890014540699662560695537373510819276289102564490238919880824264382910468651976306668526435412191222728645456255797247082296545732769110104762007266004003260169088424110278933732811232434038861955707741352926189475201346051801258014392265479245781936249896163830274909419771443149483792646596246147351448364929162285851085784800737944417766533431820966951691136281052163609621149233778075407731453949278903474422548891756430857852290616354190611368185592304091213002579744647532303847807286498688945296777925648447280116335982634989352022323701641000590460116811548065012862550955377735175358769523590242998661453685346343822875250208697196669592780979208898105375961966872857043093484890287528155371810843571499220422335574625407169802521822195635187446558716153240334662057924564583331395559942203756359748256947536599408999617390238273714702351190128924794692018940088149184022634022084989324225708897854515089784131728292925759313036030062137097975043956070995336475826295752996058541841115746837640230617997008012078404296199134999083072573013412517869743322315942070697015766902962456151440757553276577269946391202297588310133834245918226131183782937196709474471157876321611603769434613185116465491420306758200980849986732603784841272061928165694734684019989715493093298051336744319777388021109184194075866720968893386838783628222664961971423894867140150934657380726524675151341331801108256344051762527480258867131511277663008650074831923711439109191075491846498394750633766302419936597798782948632939905320525248386053740126222742178071071629062393189646411969536065934516903987427341856749192690984794348775103115135286780385560680523006200795803674389149353415389258504626537668587138005766787239963747988862779026919478085021426669671787444933781947940361685770238088684535938306256849745989722161768445349263001351971285322880671616111621264513396160093061316532463620721582531984259238326246706478998425802172871351422525828044118868268948462213947797326063426053831881446286254645452076092026924356893375185330043557875935032649872952383168317850233046024532407620291743155766571593444271784749078306203632798583617206326966902480361836587422788576988713898530117991123528125215800061688364600613780426753320060856894431462758893951191898697744749055242503099829343458727673877465892545893150182508089889278708231988444329296748819457151058745837816867933234387638845538425403213626926953844901341969787990410183005181057405757435902743564053743241811688737318348237116546981280279181536804449025428757607318672305233782575008959387406209326855127760739374003835201840936934564918563382231947843165601326456416631675420566442903359859885084949578721342883973232126425715893956013951174477820049093257104392690048964110764122639834771259725269964250184054478763768303255433256009384825889322261187594035203413828809658748289838340874938864060542957904903481328151734019303059506776162801547314598639244609089716280493453126634839338366914826259991709602280465147836336640456316089336944340175023170500566137110879453949729606205434885508418340950195311644034250359967134028074283447054981857934055025152481944475725784185162318594568624943141111823255073180657547246148982614924923429423699081663640813358179842367038401046594002862101286310587806735680635741419396758986409160022144450111311192596730558321994746161816705879483251322107600202277671970821010964861955759851293296925471814575335760955180996291961341337188032198427740804189678164788923062739823550636735032981398096725388353468416736275276612084438516087245939262585524729123822668827331681287865440417115447764253890206603206295769062379225776123442656989245986234986873460110710456807121132122627961937348835913900759780957131270638260951616505880136382661880256973839968431073445972935320190774698942214836582747644350279550295696262123863395435820109445200548895567520338249083277157548795163568883241320525661542496649585204902047427147381422775714992449640523678100698482384950649852969828250186875591342153408744755372085398088258595649793595868459448876534482826514269646911983513798573445857275771929834111166159680786482173944878799640096316783845045467168623397148598761732702019419611669334010389902395457832088469863078263439717853227318547843271527203234915186850088056039829255308876119248333146488575638978466029738052105528476728885411702172668393893616894135996117265676422016372117737015007297870931080347736038781512381967117856686268558144307426998758380449874051724848479260807749196350481521624523064721252930871913364171423732358454794780317623623778414087785319432485085007979421465636570759078048333744699595132279531011820497336909891412271750464915527091100227189264574140078059977397853069836749989943147377677562448694496348095326985292036791685389381048517827935896241308518831129652473242523105925168955150602670742243068887221466251517538813942513764840152250763676108366050997239633354939124198636783725927815270460426074630755090335396504235176094748369302295928852848949333901020320809968286894162795651409648933864443653841840005222666959175221150269875121041017764993784721787084298701158093448728779781052373783345175385418835186085897881333755250824409025986300382591040682771392048882652484171259307519334030086165396987366188412809987451006442391136383390883341306683462415572780845431702551980673518369899993179217305049953519933204009100410476260490677747670796067847710864326146860408469253937792071833322722663097891752091056757420996372070188694056710783907873450433537573071446233509555691963550594285349585242835780264612966176604372113383815048629295107149644881735369001684033309313955687929115357590346181504288510765944939120970408170112704257098413434791876304644122020124422873890610687064842199221658109452341295131392511759736006998388172897313667721227820298180014291904586734600877392183621556715273469897018781010651520079484387958295228946834740315127417937614907478178505150775331479337403447704571328240469360092318299208704786063427055184071858147228770141797577868102178568380195474233464825045644121760365145056869139977483758676589328456092191604482023204416488461737144912409136749394333950158246558905191826965637084494499831380226311182479344300084353471162887814479329491212864822879715754424610669034276823249666014859741220272483647806606453547986469410201335867756094457777991746735418711623730189116715486671721731285007164894613501995370632347655851921382144592343870558266168609530407669129220372011856803009039920140899890307881566152815973954142905795314847758959921248798489731645503416946641822302932529100207496829918457896896654931337148641470753220134080497676926258336567776477023798725670141333630968782198027989117513595102362733154907125983507927602015562346152343612200842461292093907898255746683822730461792175609810595183456493607482583064862461758281916966055557891551493560842184608578696871809591039433509705380091825140651348454900763230405745141833018727255395013838285750363350372367559224556221600767566379452296487544040792251978045373517746377967215357743511893857248166671362214567355905213123783710452012209604577010492383117447638962677071337176679411679569258911146514407648623817453183275249233182431759657750338729538946085792604056407058519452022443079165081594083787190651318019539489315735068258322978297365182246284757408167264369844925225775234333149044374978673722909772242146925449690461495624801202308707612902416895847321101301306229604700902744066537004711213674586815185836965970634739891861301238735030914853554715313366647787034163907103164349911218051765643098126076353226996373047835207452736206070811257688048536654098617038598655787591013661504234802290615279478417856159800536957631732738930079569187428016109851249485995972055232379516776340184863086267410627318177037631855622798811202609639447382956527057584746195654220545715820929554734940426911052686750870182069128513203529851375619944102270161508053466369253994389058331108055365998183981734976678091597135861171053170007559508015141667032180628662291859229934876930219837317559447848419780373651544587090640874708332958288238159826611386909427711016214688253293407575807996647769445830769803238008444369144797233919350875025545593570169093455694528903047430280869744309350977876745322545631963699911652710185677759698564542903682291862654491694107905549167541245979250388104462719857226838815540016704569990071984974438019847361598000281749701427044263532096504658439362843269413747925166846922083706389886656554802142786010425212041669585100348177304464924909880759951390862914292410916168659805999819677016267965793479758062331640902174506309428310741404987820407771328620694689665299763680462319764921634480507601303935237776646385409820956797189216550646542080618160936179002229309924450810253157355919964686551561238713499958988046753917684374051650537242065099555987744277014602911646016375751716234488294308644702220657328057278033063242229812428107435177052020310174193916297199215574939133511078534888698166220232445307221537696745607427845507748979873248155574885515292828407779867669680775539102083444191690382102616389095016377016463404525617644994599477785998691644568248709590263773876997927985022749102211911220383466779919567534351460686627261354727456423579695352997132370367017238667851972765602975927279249359791751935102705409806899504792306746225748401085774462504250461871095247826159671871316650236718129631134262297237926439830083117263278813049626589442634717605357824037903499826599503712903782257239499530004831011401267724494197518140973236739485235191735155800806652176703789429213844972008617753094704182129509139762041250298325138719670245653401046626974197557302526022813649330525608987238819286983975220511746508809467828618634873694167717221146965073635709613544125782433679567018608840347578740827803775131987428005182909085869014788459010618873788742580313864736447448713464189540440944187105989769259707550435435682600359579000373530882653973002932909366324317204191908742597479412937059270912568631208209936900949661393633764411368655992744071038316757376023920594611734826033446964555092885772006951989960229401365039584640019743779548891225604641278622991687388233456386157266021560029931784847364068437297663816521925369087731712678933097653973039432563514516194497541664692415088814215954938106885637772391809991453237857819167108474707186504326171808839500279565202510863757929727510778421496705612224639430909306078735414606873273226966419523991897745483697093762169415723856517408474161582594919885083723813044869015880477990240620095282758461072545646520439777123244560821402331461439485937808177846591238294388126793979280377669928777497120233923352225850953680720514977819511530833210677336071388953284004477493924562726235230351484710226735368756373011802776830085709457076362059967697036684201539221036223228098385167519562328366132885741366547075930174578231329070769335783882742707713099171596308113175519434638295485297704585294482708360507800235189268920109862669076822731408425467464841435749992937060582215044156062145494816084849838977179593149277806409233946942609123746939908242915102510105117880980958454434232717857226357468844424055197819133084006219906569902413917523353897209078931173782669805106077780922432250030016388822417294464404623000512969495476266862901017051783820963628626482074827946040014568287525973670674868988061307190030743656042855045715693510986422912833900993486335064422230888747260131329864713132057732021234786206739289778545164386878097657389431262733627190401629052556618319547548759571528840260453117617141751163237709659631360416421374579100348680180728548528175034691194066047738965819198954574961737399642926729677982724677623991078746106060466738328539110848744020554988136363304150918099631916477505655545060730971982849586931917075117586816327751624135589250538260319703623091508152983842251976282871858067062503339626370893164030857596201151625854026994386443850971212620053304635882135614645897207341803002621474706281768267313364984245763776481608171155763894559528354623529823876042610958008514237283043878868823262317404604662414516260099077660891536017240205422629713179202910318482455629767014466404073786049070425862454533451377674994284185891181564659063539465782697104517971002565611358122058063277113952639360437191980411846946268464050677529870944224974281715171714892077775212915868153301516197667758783400795561018879530669290741046839855556577716674106174782500493896037748766435037090752835424247193981968875348725555083691969365950948712940591788110341998431680744071762165129376086182693158926884160356822562646241201430900349734472127702648641814018763963943433170524738900034301738921864514869637916315143166339742796191159551464897649820839002779155801183041099312348221341413497488469681131864909683360001408051756738898169989370123011075217400978964075799943625434873616412668110150157911039537071346124052451857370199461408440850204830565298664284116760160331116552819240335196149846302689293449140552999037123553653231017424103774196632811997295897855746507662223990694688969558924959594465842753469796544111578214945626688762204361396006201730249216631984925895059263360640501964470460966451908107067478670981140067758842320461028671540483004321198826693910376405186024009778835759806694323428185701719058826110161355450576503185611763179868987549606733359412742913297879892764500441657962813986004685003336985447929961648071406606961046527496933413991424798076088886235524120099392713000327345026944612083335240360337871349143586717294822188939301925503837829676744685312514023285396130763130206548240976618489683993658611132621744907340811706934808285668828475938793663257094943418450780250201929422535204856576093115595248790429474160949987123367429381172704343775173985614635300415676727688942689337124623319073061856700419472597254195971430965170192018718339933183763047118484391788694823921977479170479121752765920969415083817904259445473433058427266992672399592232935474128661461954108020520486115381101432532305744702329401598607560498969777825215633383485622318682022475264366585845339384043529995097289400393336481913307395277821502583107565048380308651749112242543070905405018685592948681643778140234917876126410186178905346328031960798741106348574908873919547159988841672045641018608613099656628547195851076263978347596520492238061197158443411737819854893952977859799419446392054046919506549768654696423496212710376806557889645641148552161434027026222058086169527486254686200309109022626508646885599829845019052358558011206493464511623876266646817746281794896633424222669460987634229724400397899055812476717945910682438442005811845523189514070114341315843754364163668806549843947929500127254220072547966570756872827007406934978695040188894021286942900635609334877361789060451622954326254756440689982497527756777221721845344749293446673632294358099544797989245305194154709503372737328886806424745383905846163126058996647263694549419465652601412920410179882399090120411987778674658108030030725690657207238417370089120977894640186736539249834817914272019668648136621361286370307209143747348052107680937423126580717748454787450094875985247059943872011555015833754738085765996986732472705868696430709607205620648321342456820115665467710628536418750955229236843525023581734188771656490838677692048941173807433734783231205977774043751970647769623155729610532264406756263161820001719995622084843330134724078466734067251555844465900916679935640287497733257505525014532235839882645926263800443360265832099936193229146550166912992257315471748007663233875154482995220074990417438983813813261594860470808560928630274012098501257524319085364171170343371668796992596058017980249862227359348544498760804306540808790406717457840766731965164286187680709370919335975510971161940104759105611673552698295619092415809978240853344296178849029420893279098551925923022065190271588776721667053905743260862404306725798100501002169350096378727280227490067209807530045782260575037354077140010727090164712243401569285809413799815559735823499689332017186716225234968341343703698079513823760187445923362011247306560226402976208545112595632997971471090536925447720940696918667541730482125693020642465474968372432230429457568102258031562458239141014035892319142540923806111635595036652756342402207769220082249357274401162361153408306855765666019097707432180410221227617519707752445711226374786488050777058042428560284534333855726564161921659599200972703630032537106276821202158040834004154072399040909213617674600239740487076167212820599245732046637390067369882969523225895035063534877025109994794283388044231733492395315715535575585348505407807164962495356453099386820951554049832400596457555981881949759092483941603948282920234471765059160859589681535395653267526812272576654989527292068075777675482317178689410472507477470050524246767403494649833643333193419776901629570012759678313949550566346284086365710081859464674115248674606703642373619336853935488734700648623379750242468944525444745478597711861812463580779299824618666802003895694384898685441274841722169086098726653056742561960499459830371326421998978347228692536785056477339170905975403890296601224476226364858216938036363942219624578520770516080833931310967009987368282944711870541081323206442456693145137579891185322454942731640012198348362388688178475168412473374934343283257371069528100351723824860895092136208360081731968619608066744996702153021253889588331268262451035627197035848612177671641454259679160022864296016851489667862813739517321230388564199103798986239189216127726277507383028390074446406040688387683572963819796052387614977237604195253707686361505662045061239003066376009722933968530494866344873451007202838284757840262246270622729771265900170291538791719144528808073391542775211464414742957163262403554468949146413122926634565829849833953295899043447255671415331623085058387807523510550160599822073263354280077039049292239845983033717247319070569206214317606131995952794753317961930226992331480226265451016061680244813652849784108417482998359260525219166879677268170180632076015170899997749929082239228297060677688167231192801681312279901144424168650090600567324202971863594961098604679319112194663946849011827571534237704268369013348928183164883652498512479456515854689047883480502447022391689139882148421230992217250929827192492516304468013645710727131711183338772105556067075493136798092831472779818338231135245412557115447708137999021834143054595760571899319543567984736900054603365234110153364437099247652960558645867786366897066592664171185664436769197836537759897893376587373459910852086471101820281936767492642754951400730163104053703013203547231471494357658958406977925645559865474077456336693722635067073857770792582358030057811393007455169832725023901786188261736557772445541298902476350420027322905958157095162110920011498721401946505887152870406604641650451260187104117561526713183525369131044374627828408146936928753758392257786805759926520800239377349965628429720159826976988202364604408877333394019626035100661334725855491079851060696833871018759656078249401883152939131431584067787522804660721644462229447862103413596064362812743632757051118597704136017824464511813306394594731322473021649321661272237727065296984285281313240014044927285940608586190397163426262944443440782823593811425414366123127780583460664025737213637046526798677012550331815599933325835596950281670666154211349643782370373347382052759272411825957011484673385547815880413940997193508133768888183669333683315437229011042915103969482452394812618164596081083801595972579246926236586221030032925352090454430995429628067252559746351137710906438658388607923799979707412196290083987054586444567784684081066355324524163686449918672716971378108805828279320758675588190408787705094860346608140433875596792549847005937763161970505814841176712967756128611027266764982697404466218753392304365718801974457981514849302521362970876979169455204237003300204148069319556913376269853713143124000888951296551309283332068850412682722036484780417457442075110885238706344842539182653872487358202202533399169605312290918458486144435623742721682714078990105805732827494488617926272071636301240650102924054706716450353270999334022246483695550639355301992569749617714816407441426113270262137094013799959309978223502758837562768117133878485266118791041939015456770309704175358549974214060724283117593076025677097466145938579401113857100705283198320166402300576859648026340004971824161330645331336399812603153985742961729487958616955424005270292441945812260378158606738437694494447508779585451334941055244231843292876856494882029831253298241347605180223648226730515687451051788229950550290125074872327445260195684065642232701508041827957111141636156248925051112241105399872298337693213560110218542917898777200181221592375124469695626269987879161375785893970601068272947923313911938135155266527808597956102567716427180443388312260416013079199336461083309701908293595813116345584640509450132091365559677220372192297267693938016027938715209086011041849956890152395004299702983204044902136998473759156406385748710309786512081279628066811081193273039181947388253362106755422963029492180949132993433402253321558809487464706665811802774100871809716138180472918979134520797840291143548340068842821294744392101999326108420251836032468869427715965620450834015045451283472367329725106232363673168675179384247190092527937342884868091789775096605820651537994284474239435737916886907806851715650788893151218858295688842854341438304946262507457186779279052229898762791393541593956263328278413342460392551491936400160573757740722485511446282921441747890525474687761090802066208086041029787485016774128081144391717930428639761780429989762692895819234071403281841526538599502730754909303160832447025838341903890417453782886783314587669165821805040914960541727597319237406193812757914987237453629292995435762337058688222843712948773321867991336781929207199892722914559878077601719517598549705654513690648520090196847533426693511796464406526548690940386196775682410082918924315456417870219270205384435506460001614923702430111727166955402484978199479959672309379770975364850895376550591513944726677638251587817480218173775511295248803616610002399130919709405549371567110296101908042215105848352472252110073433064090922392949155201930776700654836439222377312256030846437041232625608314726942240248833822624406020444792110929987074276126808505706252218231849439338866649854330948614652784488408317580050314366146306034469997990731900816664633810659626031877217525825826738863920758728957009985937663181558756896557982559512143920782945390234566189918660721544169519708276007830781384937951260152310067876672548117636228453186648499780853275486801402589417467467531359377058324421988097010511132750603606071005405208581536745229740708833349694142435439601654139663867306835899744454417415011876489464071267169741665127170431391758562762178163889676133553095385014974926440595841195949828186241342895584111661732943247017203723989646886593744953765317648907378880557729361395751142422526515052806358419314436580872928334150302289283982455724606891675551679433150956819242956348331771645536294094762178900072847650872067138737347798258290684355586967277292099668861979979739870252320429646416541167785755177765698748545373196963178217128944323928288363315159596930356484890976479990315750668859363772803212489297999489617765932323704219985163519187998608674312073940768161970821796887187454428123530009151714515827727566579115421641368799800359363026030292135470727135924501208736437869313901653529093724799608782482364297640166234036865706662197363301744445206510991757799476700841695104236394614423260020913478751907016142154706140353203701294248047677874885880512768995455776254655220080245801443677554188237043511600838562301174487678849143482142868525004047212385863106861151419338812778494397084646085505299668277411694518340004608207900604346647982367576311811124352280965331232436534668300081105222829554602742053055769538319253385458801706750271885514632489533613563739894498134293813093190014662375751130596564750631198948286615173568083319688818597272448161184003836994943246706461829383991344717326684189326208999887218484787153421368676681090841951750196877673642073967954418510521554627309550393087120185894436397740860179745516564825539742931542631103118135326794012792279642326555535481774415929423880062225722273935578007375510836107279359641738921321059552312623054285943548562439458860860203854586966363052072757662972609787073996178302990112603678712493949574174505327491929675895221947544411370697137387886572339366094343100184668104650768563112878313014954543210270884057900413012153266227280201097259305366831294147098382667986812504348071101342207717807866884289164003064329963262207245679354259983840332525177975088002473178945508883749918189380125312491574881275051218640394395526015264728891242179313478086956449249652160771179780578834077995636543301777482353702787223678718347302955104071666498527348574044808310225102130430970780529460354764777740241179540588344004412458273179285885178320392239606283472204778257367881928635613357100666298811904755028475047526960573519168606143687573647793999604927853171297169306081096447404808755777575120676450819949577736766460211548755912354783314616354272954468809378805307024628262352879189191654512568942362541323331952535631867816567571838557824652845400780481198278865479917977244190855058365237881527493391239309451214931659626130955378451637381436183362062660792313297266973658930684855161885355126299586011234211460994330542006972368397717583864780858519291357226544951602504727026253598450821749663142799426621550190745156875480105968283666129059012550512996064248334571432529885198275484565090606889833925559404578686676268386776026286909444642196954478606852460481258034700719741749463000548388693163665711923431927783244592063206544767593302786564026735798307967929059283047435787534915623990196755117596169774768601665254662345686190569701080932706976110357028536287874826158869257945766350442606504981458614351965830460181315778100807287142808376336938791734558764109081248241947622571839601640154047412026516838754010514072809962916614300010342157697461800478211886543286312530989513376819036238224592248330063816327195035766701406535126960378833189489337885115913960717590713947345626167912411429420261250154409340434875838116423687944687548609604887516795598734660749963480484939587281605234133267235426954509112061431709447196529725998099214550826616393276508428488424760706594716565915918009993647334253154793356399545324440213439834594092460989411094637096144370976021700537779888009648147847155070888907775746754341194032324471912005193224334888252084499987828011493774467656540999325998025712520225292402655845858270362686778384570803975982470248066647034695015601102347905056440529167526639970525576695311595705452932345483752479531361902952192200766562913125103413108494327572109142925270497438969289907504552386977262609892593847308064895060845925717669230504591021264782870424056196316231575393502239687213983289764081695784212426041784577488171436361180577811602268522508006316287209895177389343492222125453323501504463155167311647853096567321150299114810030459911544423298875863037314949222188840670954352077915794337653416183797272175395753529579903377469232060183551184838728550131445855148832621163358024363775571323702811248635722083115372757329826038674167398072853723513211910020127072519779419506420924725713894978024016295467491479256082235982226999281767756813058291384924479709801470860296095225920576581275985184371368716923865062401293026391402349264503731051694455795780942057982427802099998463879969410325242606941976204734007232393037697680768737295388997695583635843719185841991405145999143011933479670938548508778407680989591485181136641113288390014505341259386578125220894236370068057765806062565811755655455723362391635779789543384024915493465338826887892262289419147979113816068285192132210294129226015234789627592338359884373216939449398287234348700754873032822975650429402057024039478440813399277212196431808455055400723403901571028942295648678610707219893803982725865400216761507183857121387099507084317055573665939475836677776421172046817544807732487623585340463055455901446905307419612869991461554662190474971052582269898369859709428676674335019719982912122260389291234813706360026687329606300386536957793514318665611941604619589105376199135130921614916789504904276427237439418889288088027597236132818346761214882118452988646193271874326024529292123926643928288850453940402516182831426950140920424170865973862588191087810554848222014536522304050471942088317930746143256250779888780493181192532037305255619230999974339546877400930241959813138197460105916788819198657561614162556608429000969714489017590284870204255522369647204941478012360573588565795153196514723454385943336890103753561501993369377967475272017466847508580684245215854335736529142749109879668097561549047010272769121262873846580920033249323769241072847048217919117215156719918558837844549578066960370092850632091117269690303608050775584269925932985781794033176980697625811746973007753966980495235959421297079378201467044566192675497750605154688484688000781917273664904531672273414692194180239248986846364432170203732489542910820257349050894127823576837811022269274412060497626236002856599361203111358862900673420869702808179160321477271276520143441819420163132367456163987823871766702584779953399332187514028352798449701055191623123997744513323674116959349720685935429065258817247170617198378842458575234034225631613305111860499219455768008464050484276926652821479935247169994609303762910527412508139372396254914800029435037972623351209608524525135318421205830376666927830820945488202767967683363374408008070961298387360985688234920962306168271640311324778911198819331942446672706178689691616020099057115534059369531934406203084070778778855404011137448313869084372667017458135191620223712311306628823526735058040536654567930930312888791530789875328883992261486228481595876311595100304382687786217843899462498488990963939137662937146369937256641602319206702227790377734489662573166137497842916156473353459557921869598435353213895640064572766916920233086361336265859940775360622949207475636127988429555027012733066467019950539514510673256174440494624216153688708187291199350613831200876003524728603666725045164811423033858194798408226723179157142549913434741953272870591940074185807949096805605146593186714607107217686253730086554041079162308024488652580063033581403399783075909773166798891605329024879610824978319076427266618848026618256990029255892217985874670009478116159627192701659048920464390043565553498918007420378778123683016700316254462375253444637585077529649500128882268320023852694694483497797324593678200799421105636535435787688972309007168062554907083440713429711877998021614230214045683407708932985503713779984398185751097281508313461013747865249564510877385968204442915372502775905139928273320801384082364919902581271086244629078275282095886164611719518828994381268671914217612835870276591489318872838644238708039395468554205919607836384624062384966761006903011469314965142854689572226023949729578875374889227558821253670138081589701792172587170320323567265893057844285251378514731873422198200302837622545863074896449191700356592908756430615883791355831045864376823334674177831664963607941604036030593077712921000966433478030852300215932562733374565552693685874278738911852308819967988468646987293920314043376774669744463375835261280180060509492556276265539552641341697963666629820071834373406066537934345795449886489967531711133101044665560067813285106894706443895661656525711808588940080231570115773644248406861433758784196733478277621865653695375366898253472868403033571293168200492800573787026925842701746583725900407167275004369071533277425405234528284473069409808952129019408826944030435136744806063375107453884229757677173294585129634568045953768444431227274382226235124493551681934644198924843945194101865318792163572504444408395622023293412127336668241779121076249043610059135519235591413682846543622172547742585844230492061999469770614692856549751630112280015565334280893809874760388459148382782396312107324344683620154314260096275114047979326209898912944929955756606859542995067093541962463793346344661994446368642140090775446345658756247606076912565791966283955947050010107897306065002351201467373009995802604321023509305164888681278043624348206541038189506682858485124316324280287065836002547891568116629198180758741281332921083895956868947134333178512936788759084796314996351504613939483345803918720069372731420379116128567046798720244354700455891857962117905052535285738228973860895289629190034254405040691626166511767463362076473385858981096655224493304199002392972831237770494583193805997450442063644251453520089528013369820567075369958633626417203699199160163522776758793265180219710900466347601437198567869867508839339056366049411276500697873970872665758336201503135869489786612369007365592443157919551940749694040704287703037485705702183483440669863928422764397149551186776601779171986909670581954666005834000390509289819756925421495904756048590727357346208626044450769167166216408486315214771227892103960276766438559333477012934131877324608988437126165818151923825289973354420256435366756231266284006016716616046120652335676745574164345264455807338363139440608698246239133477533949584484205416164593514123834176802832917727026483347858220594170210913562730456674451494032395786524078094829794448405359531187097830584883210286687635998531132129931177501123572813927258951344493952735522102078264196920248492869144480112152630268484788268936608444032194959570256142655746496708322321994444530192107395706291921829449300864946545568132494703964150136274887898492484998751784053737357972433924188587673125046281245888623594201591760978756172032167798762733023987179025601212546459076622760715368576126602146069395548872697044949637367373823987315302012723032612694641754650672201269344763266846510529631756010334169623744290322688820160675750019909793107831149570168059128317050379360143457551755162272296134439686552865178584750233153727143190484072036688599950615150055129557598363595559942494118788404859870366622279149776626965243868904078805893175773961032876911256620109828506902774219899741062579614079360581869283731940259976405505904721365762978493024946804437452965706116683893844604354266757929028773458881839451026265601779217638519551158628462616554943775276159032878459649657948077350075797013199012040228921938151987012369231730336693218825917267002147548119744828884722919568010106112907614833482967102669520428942695795300100767911169347051153499760518101014285814406663481114468607577409572345442340861661760059244187840470438346765074744460344558577968229899174153392067405073531432774192861793188996926384672485396955173502093650115045023477411171036022060281999082078522501003377765842758018255818962272265161848691786959214563979634393292696246313754779696442901796181357034044242940965480037856861221082388763456251895149529392189035591715586427182504751893057832506065045145183765394847012635356218484785266661638237318866609749021072787697484131411000341103972772536136122935341620131497582151440104788353943966106769784865675344339969443409909931289392954578614096898509563704341901401070928843732178653374403765021540144682393242818358371270337076965185330849289860461726318627067694882933733148971066668086921766894742085998847196668846539346320346205712040026037907257556004792563267399863857109189577650827051281684415164826007928891494612285363886390480392815179381808196681833937836309400801390364859184303234901036226521670058797241571316295572335059933368965854364148501440148497242450648861673444127596351899668926263087496914953318589113425916357118689230554871858354407843118162637649502010996531750383658786887128244405474657921928154222694213171316528251921673062900979512903952526467933043902505967776871103141966986823001243028011403196135025789769311863446829490955873780966384504552162432416434727554477013029834466928778413940067423192050112014092311951638176361373670942420584966111837095154683574226793519279680292987218743971115286827883942861323842579005914321799572861980387117419935435931631438988285579091675767463227769787334492028051581956578771580434641962056964036901807423548831322859636331302263672371880470328518958735265197870679471766541664018542425008170184808534304461003490696798020911529963695449374019096534353471916790048171139503248992799229114028528145262881262055439458641174649115263324581307009777322364194501034762201345463454275218764426054228600632187830192838719109897404547898684249233693964276578927506226751097374342026749352561519554399059970236524759909663545723677620445643130882449157750500388856783645056917065530836597007542993449954058383768136807016381478330149911413303951935046759472077519917559297721878199568964225148303212663051460412643613110867216562873928454435289740673627249506187840354137758188652387858242105904492432311336723633724240989238540028291600531302292579478615712775777730013330011094862265526608265789649234331281732879815509520980869255647191524240912053918444930411954710713613096051114413450459703814001038827059799802242752308434735631842057454064346945719369905969092828915503158041453866267222969014600969881934696108754956223440576955656903657138189099003603478913893411700265399840752002893388605373832184823790794079366163008460360264598561732487065570510657673294654349445206493705680097662808029116784247108496938495095599799998232816798631500214083730005325404349248346185452220345675841202091455495043112767256542611549293142376623586605492561245303116996803612163504976848065846128296886539932282526523193927185174879492995873728269318626017822473120265365080234774135932084468468778968715620413658840056732692161767660603604496793315832252997408386779918426511676839170779283112958015946626834945943505510830350547524059403888125851630586159596927042247064022887759875400021506540448333479658129464672135812660807417773332921219414241599253420423441729649344676377685536908163367909055787233707268054668901909519150162036152964137411154780271308350289633348134040915073982607711717144640171962855747969277549942093654705676576700644950790928688914065239885618828331608790708247246552786009022919118723536844987276582260767660777070952564659466676106282962540775439044464186366144187248448572559526318806208208988752966343531944905872157581243895746955834604350357726103951555978118690032521193914095609524843230007791687059226082258732072007773386356254684970783508644896432123430598252091776822656134529746685548548878002224507727269121305346776250876035563314218877920607334430448079733270647128138299447032458914883860318149502260419480360545143897910751102596180873169214432394199619038779844758608750852019942599046974962774779617302177082247158271281535612307178069245864736658990614460907129325871386956703864280357924858326856219056252351042374170690276200214650990251650511276945957551023773160452954394898858277839699102059464367703708171745550699005938455169433176101008162235635582350158799862729145934375436791837425698140511508791467888377417018697815402983397124726884279447928670509449476467103927861775613683189037442821520492814618811153648302574233425896497059082589598172561818702477066721772749972870960991016731299013482820462647429226248293238159538811148532615527962753870846398221816211133844675915698307994235358828448809990062042938296422607261341611387834093040358266379235266686031267845874438309619038219305405525321257187020243070163145316761423804467903062117454260198928217123729471680890211012904288581622580640431373677226423658986893441585509889186835224898411436508048528905675222003163276922991257700093789842597457516481706709712361889301354250494287798726498760662564274072307027361415854200252548011303033731877318449614212141049799648955616333885833294093652248737633006637825219421058937631688749597943032036819313547064600232253243828019407114074860529072663310923107716991231404285455645455171505433703042833485469451062532112618029349707624461372700215372685189636273872290294040774457625365773092907013526255405453635474562619224588222946712009252521599943735876781658081845466910438693994321669139931462601668586383129531488459808996131018091690331926996459362487372845135188272557368251450701247791817491944617288724766385289147922438362603782485905669697089552119759057366112129786875780334854173513598968042246080617085357484008120605194635430209376739269056035641253784566528720098248613389515112192167816892648706614746030646238731998648528186792876303242712162437095372317357177756206488280914117699284480207758937010883267886772804932327492248898023887852760798979529318215919162035016009794539225735412325215419036845766636314070329111003728227125007844233742658634849093428018298491465167401145733059326134503507111575232918372639139718532938126506527126354421810663015505513763370923249887453109174245856939187071419500169448230116090273849371435744327911900858906202131117379810428759251368640877599126235854698450257087633356336614007416400907033221172137581716301668042452779811480922444924068203075440285793712929900981909560387978763736871519153150051540255260202146823389004601776543248802212732465301322040530469557020028648568019844516597165090318900123832097286685244734989758979692267163994148392450718770800692791139616493231607077320783235817033978188014883403076876481107569207301603251918401925143229926023639344226890140527306195811461995375387952987742647943045228547363001605581057786364979102557640539264860727824449874545443536133308211483654969054801239218829618402891850618467687394957170534311139264347752370353029565163166268996813709649070790139931725862316098221604679658285561093935686263248972678203063174585424841958224701124382640118932516331763711364821315910263480765184785732110850093844185964660906647105654665958346319533030183171860313426160038398968080023159409108294132286466881305755510601880230887797693543657104378634128430984152575417172035658561342552542188230477912749765643814317048795375460455015502140815252724168486512731823333336657146525231946829139530829506893714766035147844971845019809230782923364022175197187025935714269545895562686940176592618566228680591017917913970584320876330499833482100189128420013850045747584970999629142087358308039029143994190403665490048719657045282320427648850046156431729813711219215419977059034738609748253519871668096213805763908934043286251678303043701298272059672701282119218631545604050542492573473087664664994650757463063958598057692733984688798173258141274740816056522865880425796519060935182136656518509133230496099381902410173107661900640539622989436868074576518933469003004216352782789560053066502615465662360634773649336146146503479335216734265296655472477231111013550335892500265664003255357927894120572631862070045176054140291368964154686019008720307049976747558959570225500573116235138919185808220757804583775237735164550880552875868046556973331015452123305590706497064735057309006308080343073850724362126570139306620724529516360931679715215619788649481193116254579719657625600779430785966944346834400083608191893413675418392460095144135061029297497867649422122651136943729091362235808856881396612764595147815564471806323506380717286264715255082075443643188420869463820030049785071342175428701628058216119172025768224190476525634514417953235462369630333924082146934095571374209958470762061450245472617284049298304943637502608189201386652929543049118205405278970880200562696656568702046477874302065938615136868896011456869832897526310677743159306141630735164253404996645571321227628575202323206305684566543705314080620223249139199991298601199034204541549569487734448488026501023174768549423490029456993288492182157875749090199933267857612109030933085654491779477878436438833074269060535400279659773545987396639138960492511669670260339501568712863449349198427877137080396838391983684911054600454973169298746202741998435757524858794031309222392432096119811095114331348605206137063963478034086406337947810139242561816901939751308512452050547571051477276353390815642308375790596405473259175686040357458329790793844718507851069808227761316178050180195526425931040761397115063879877468655665018088524766240584994471796630327131339765816918803862002988289245043079896977858629766671445810045311603538285711515717582509145500626393285629139957523041594132024645941614513751732956190953231811420183476337195797500461511067400892268623765928489188090407797034525016992176242162416704860979097749122434720752546387776201604273996803688151515529992333281609477301107293272682675472360759440860223269719350145810651486625582237958091833003568312256846385056493235854030604459939850450506574011710652791764260755098647162197559599547023006688512396498470481884885682377577291137871572275319142588222238988833753433074882043840140153054691843633093547019173239649642873443588697565900182406460135110596124056514289320096462647847809243353071108350936514658876460364022897909557899889694311167185988890166726124053300576248838935661650022315130024417690797341057402791315612317792978093066477985586102729054442241480843442531527876867336629899553257005853090473137293294723836388752272794039591578431761287343696199948001027935437853642668701827837659660388219944552593901179761549300252474161962221329971237075955037611304805656573579856887176725047970439392352734547176688794275846429722278434613196894380601132180957646205032986727578161034683915513742433819325799390257096354249050835257097322855143004932616110381660075556603270288371057379530474446740245633306339244336781773000257761283528674584211810092488040594253015383659302798509957569240132490728598337257487866555095499016768576285547048139088160676892735969321293422533745928652344339875127159524726196651994852966548965464684134574509192347552518260342927438054760467140091883570334056863688781032705739970533518121226579052760907667913420446829286994621765984355846134188894917125049471733053330547305345334328781330730707583293065560844669405525725931368753378722529609055253353746073222612822373948982037059621487341735398269049640032606409652038801540291840183324843946175920274565081780431639353178983703573908094603047019749694810371058082352361559748853381066046445722857487358319369046817132471894172825756834094819349442220979136210208570106328841933780796008968861554364584304877046546742599480753196881523179699098822053838892714715171283164871737835643258800370996885068758747737188470154906592371234694929502307737738624656414393333960613157149809527543585792074059478617151577262042736183876074897484141748585261186281975865433658861871758744643950793809194371508965551022049024564172611867779258905693646622555157655010829490220803587899473410945597392969010293637595309691668395275192383173860798355787605853840669477184947713791827847525866812160842561435356914657280027440387239259019094630050203527434460477172547613274343390407736489043014237684836462577459324071618197738310823254496392182745255251854646370455044470758068628487047816530264994215403998235979443066203073683230504172468249479588727210818870774657427784018487073729322293553003258091755737145551800361854418300436833670650784101504816981494768339701822329146743382286688867518758372238652195691858418129998137084946562844469700356606816302135771958719017055284234546465161829759920816049370336834926465606763793404916200394329902272611356202628374551771600956551159082180426690422281775985635772153937529653406031951898586595277813282155498147613160329599072034260796444634413495208992698548231548842951291883997190018116550878657531101412323913268039866598802000805277069222456835640473509420574356282114368088915735499061489506596311274793390083669560126399468367195491645644569640468010001065187792559746341670317124308381295221003074549843285109715022274558428544585207359816824322857478969459592576494489844037170270802101803645569477783974944158195117509609815936888643934619890417423507989361350778419488820085814293258122714248130795492879276969469249588168691319380290152817044872489051600529043774776479408077047295472633862073792200036747275793099590485335844281578238240520189555630684118413001223527014994612946574533896311568692985695710467678909457313942856059206493905331114055411337644741028991781465797102211398010225680422130696471884615145425580770286350259141009909382929505874099491174899995786572435807867257290646155139887476687098891283303691885767079043153397641402212338286129496520024804749031766332620656387348874142336932029187532443603707221046477972570697549248807188954823700605130773711354940842838451884041317833342687698581663030012785806988680859687693008684152223954982825022220432948575983502249820118986332777853933195699961069238519549636876760674101237086543304032021623320180693986321364000412482316319919490868799500135604587256384956163126833755062362513190841832985540429302874100386617050251770307531446361485848871414443231675655235032113390981106790845129044247659999808522598919067674217212924631871344697703034618830079556544975602004989549443005708958632473333200850927214036022116401913165753929732830498237023181201918602338466825146329289339889721776583088009027170365099803056689003648807868111609652853331843375007274827190655633750151841860624704160638132033864123102246610272383885896276370626177479335562185958747206499339213844591291015440619518679935027058278155964910380094878002318158245119498346759683835414280837007467763478316827645088847227636408669958658345661317233589875265159493918349636023450882081185384487650918767762554626523296522689907333074703039412426448164876381175289556653552196982090273462043476555070749841312226077450039858652034392431330244002937826008511725044304208336806966370420857802078636708073295125700909859553677460769471720358873131656492835265887005440564618812916045155864434383179882489635644563276265455301523726000544022615481161449055770830000365008015300943842002284832166546397525140029151680010377727679196814587424966147105887275000937254860269015158640446189942609307497436322134132520927969966163287266646884111636129589610254727233914807333256159097531595058027622407539228034573815858733445777637924408614403827207631596381901039391162367021521838343529179158261762455886014444916343331476237887960609137808766075437381946546515561693490880355313318588066785245320213937139838802682301048974048255373912913998737430380960279466430089450194341352292867108433010902801095446264010795569217362051748712493941141114427226896872069474549291486565061457756988116605967117217232645767280095445320752069802537347950549484686035786163100231025744373802554867007628499707428717164502858296861685695983149008013098787161759842243225037992545828981770225394840578196167805440794534277157740554054720870403234809536491595845580060158065492835881243191580454823661183994730903513501610936503964009033871711542764480838620819655632847473931289646312060476996771675530599716663645649123529195649428408297979970268363476232854396074686828023046799840872476251017125454981500403278252463828666052746434652832694567771616826573600395719320743825051018335474395575784208619638239536977125094131398193335244527683362139458918712593477030085879059241203451031088826832751556864554449998817474111063145754266369433297161632205762478149838636145665363337266908950502358161958179549133051333137827226252391705478506856116432222740035711886329502947340496390850334697637572051098861203049458701693039541364511554987838736309048312628420825530676372782439332263229438959529535044571646915132170181634651469328715961975134408769540014012287911749332453125082411771397450538514674178237707218944331108940046665303642731093493479268845878608720991924507481667684444708984587091385080505855855777712275050097160558614400320947748230587365050872483946585013020911190010243079893015010379787670565472915104208441531880184931932980917289158903918257373530745205296347881058390639897764600235110784969473221484562491606590815807375936493907196030666798313817079697261861396390321716257306709893582217053690076957618443393184864489559181908932834500461893662442862538496636314837899857866404094703633130077257870961191107189229859810194754145533463835271527004568613807267830593305920156632079850741384136809185931613492463213480033923764253851127085211994651692918149385686220741346143979906390658556374742109042429780446489863995125707060600323293084685196235527216799881686021664621371900569026596892168669493840559559630340752352195250809278778462100218083576479026208812397094859660057843514919594308188557843735348951327145485077000110861909482384888580555303399129233828864815580732105797780443403074788519255948101195214613315946662096963975658715804195326738007946653999023553949206325169370807012025327945197889486066062420531362547353584043203722508841373482709149485554164328246616983672801458589709136168635580880811213871398110194718405196486457162949941904981491650851935128344463369971792846482497450769725600756992874047153883141650456412195116873709525363710579177080485719066683208506735362830538439327440181557175791116816436601988884243167087970975325754487184248536260612233139353361434621300065120879716116326752796758532614250580979168507145121193927960025568647364296036525548980827540381482311099510829848412999462793876638614211217471511053920919272973767534194115726144191368203097959918445233722089964426733341710095469805340587631826261916272272259194209293042692252448494104432152715443841796310848129852674830933948591227329360362791709649619149909054507710049557101986062832064771001372626248693908225554000465277953985424693257634943032409107791606572278593381714174108410058369448358902820330817221738500372604132878173189818457701302700267696505048526732045558094282488897067939809948469640940088324757283538890360973732584116104518752436736766748688039120282021234292249522758099521049844218116535761240006740586941513821383525632215129458673138879401190907033541609926277715792539011350427697169010175984026522183474856827423216813440983636587381275952915003347343038605482939143584369031784714755557029862842036149849516647943910233729194932647275537843194385879249617926542129483881480275179030225742749909428632795814858219896072828836516710023107775261107723900158079422166717205411359261707864319500046204262561981497917026466662070449055600645658543253739217805164630583990231956608584596538426788075584825983156500944882209428483319589179916223077975293022720918542939295991202916155239607206489914683292999777023094030412502401139817540187759778767712378325427558354040832482796177379049686304341471761736306212194786447812016413485936858391385422398456586167670375469427014225847974469678605502283678173759837778914917476845139990666852576156621656376973104337713889880831375928760448514012698511284924188909789765938222018848158118718949123399629993601120136718083391799545960562735516600623977694023109950411104818157846297554703438703413008634145220528053965579700372122692619695936520224883240400673415217599199200792280919460677248282239476890630753518415606098079417437025841471656411878661390668753301216037805045661314014980678692409873445817433476506042141625415036697454334778061188000088356700445363809933209866779680214917232758254925177038472950740264514689162414188664164854649761342089655086563331389663788774669943020914200105040621137448016452704955123133474319182650217276030669905781077532952410913887079038876613029467478991026286111912757419843229385683846756587708634458119318798677569828280238106381967382556075547150099445552021924251159087104761263634666861313443958287231797615062680334180373923930817633030577876794666938271596642945809662466072135258288215323668828713644756722920035345912417894600446535342829565079398676225150332978275106078282323656695020542279118486518635539619048186170476055581777378762656730054496868092893617682942465592600250195013740688307664815415428661052031252851392658111428787807179723652312194153244892416594125518621348389447010166351220073870384413369139987059157011513900599808357756070057014080170966684771536750357275634068640061193422713770240328525478174871920380323957511563176088184703213312490631413745121964723970146325235167342234472848363664646488543715092988912612175385097996333161344231967982046476542500402244332964533956408802563455967244670882750939192975851259131559345803576882017229468166735937061131097483312375171920659880597600627247139070694248710867592343225418019987841761839106966607065866955296365161729241301449610588963831192125076338593328707164008358097017922066631000972194672297483797799329120809217624487765920868639805998820627109551016498822129170765400998027277774950093960031894250942521156812545500272670407065834672573457036969302271704372489764991731217485663123051537787273238208682432276015625326279390683739198712128308213809350830642947392977323811280327215777170238124332539589829642956946071198740486331358057142934894290192633315569653089635830105696989578664276812173797285399776728892665723002310866742860538225978422038987935994086616465934783944212300562736088165552807201818692767359696569496979966560073230136379297431004168063797755121722728850283195927454639088481493829565244955739159324957654202865918797519430936713067806052740646554380159318952943926371743733040421967400074138006565680419448457279128628403993057682105355577176355534970532659426954713876323512802997053601002219687918024489378103130440025086548830590410611582202256042499871264887524210381763287398756282431712762716186199792075412901960005224186986249168946679171475487501907284703910569431792544150348425045686102308665186015144041611276093272114630242076544665924628666144393592382374266339206151922653644781762878581024542183763837685967173077187305352594591601802778369089480406222157685211915305465053942218080073778178331041510267729934681882173237444749974433590962842445035176984965482855076765903087818193266219249927300757993749219719617624247697845016310886007544762401092244406725436080945076573110808651205366094394515638352638995199824382552018534569714383520948072971183616316863395293869903991349102815893796038915171847908994286167180775269467998836173628512583178624560916084239101787314499998480308070200662490661852669319297535433501119763261308174227232747802303182720753828322609822699161225607800685785159712337110237596912747998607603386906612097778024581921317327902402714993411313231726688377919465946362159548087822853048294901741282842300672669910500588377896598145116907122912722456426284545655815117274070132812383960533298480494154915688969822670254851753071865497289131898524891099520619623427568631125997492263040388034680905217587964591244115297032999952367414210041476684995564307893818124969738213755919703082206366766483360271182878075625068358114531356223765068732832520259772975914499947535110961952532958999126458140755223396811495943231404316584611839944693498384325951992111162000642189320095848037380745736422424113808974515380066059186064347470331081896494204902081249301400762600010756491851719508928323872996159734552460242670594943041901427643639342914482858887044359765618088971204439746039642210171350082369282268843439558136632448921868794452286578828800934784678021478564556743712086108983366502723007368987464504229263986750113577586029136218219533095395066703667756389998752006810106319062663382481550590384573464429333511342975291050662488945901098729375780511344749340233835875986842423177078575702505439654098576338224744141397823697780085661090538622172008405011948423028504496778326139436672178330168769058190958947623159183461397255766270552238061470789178069391200242537139001199018842800410101806342028514462105558329053069786007513393723803669180518926702242895822534668766990897251578602562949353243296706007935122723167149668110600629690365287791447276042206411095305700876297869411928824954683376383227369869532224817771235155111777453556227585454200042112120777940007285790911580078153926014926593368832310732012099069433834458228409651177012440803694744064894044364171360703572305503221863228454522840689082372874296179186502461648164192928083112935637526640463580703582130825271792536001400372156403941404505280221169640799482728796558334714360822363512156457187167461450124292057137747053349995738858786625143713550591325053693222059250981776471536701449204344740294214185176746407678094819011966884284519309557058809752551310072775510605538159721117519425408600283536346239653788596922694392051893562550907696428156682493742737198935407781315909750029719488104659522700719778885212949240896240750589057919057361473946584597828502956752337854539604071911773965814369391894208416167914022060004752420132989572023960150216978442928243908419151017610424332771187770953559868804983540563951270079687325553270192067193309622484067982803203842244242144704266999595958644650803021108632842003452970183920905843389877739716936864682730637004085048602255205933127741714431370574714354963883445028298210234728920660544221530658762826852204619594250373924317928826475059162337751010722893620465790220584608213670707793120810821163778844402983416384860221903347710939005369062808287829162699915337842158641797682033074279588482526559865218729340082781558809559477214682036527056403912831701172979287829934207364152656726233979820916508187998382951924512617299237778797958217429939911560750079907926130589392101579201561985531324476888847796076303445488395105163311346171127371801868770141200959530359312226814417275241912346512241209239703458229405851712056066462411873756784938450653129425604932102749397464191370236666890338053450745930200571418482618227251349758500183951720741385210920782056304388349995700280185131979254200326295364080830626777484010557635474727610622810300240512287877001667578257972856375434364780226084513450422311753629571077102900214514191942398946011199359746238749827983566040915708414559206003124980172465800194359040486135008299095610111580499311690932615886575119846076194298551262342115406987461183805955187482395077432147440458995031674493943441180948137932011961227953805334071899625677393650828194375048865279929998130776088008168895332888709200552568000992065467228429507111809567024545292979199456038766900678188453126733304129625592920349219320096353998696731052846412285188878731196402758994712116943667442078963341553198513343943435285075370598335463403608979559951326712918559589585039085987550581846023661028579202831468316602691203858570977825359118731687190721147375040033997245480611206139583320256196312943707363785667728061371179073755610496349550984079064652635409737147372986260396744983682531919369661424049579510615210967518876757674790351497733050296372527790557060381387316862649105179983790266597047760089001329102086566666715978350700029833174702636640161661529369464534438045837571401155128707306804237735665284499208995562834085899221287676940791163086428036925759455811150800737169913454005758821356128031345916704086500043655367000043639588379922190919751198072164262432928056420013963083594359992399108468920670931641451548267706305812258351887312587550648576470141298006033301714320185198342194738461161935195196268517449503095404470588258542365715424630975423741795536122797059670266403069326016463925398406391175036491357106547134181853671403183769659760315931215339535132261998217344673429015958626513537177201789362438484745869642176696054202008431741637789472105788796375212121656190338779612495262588437128396577212369365364652224299086918524082686132893844581598018847643002063073880992529331705153552437198020588068251650821549182276280225576095004835064752315857084886490185325446297437813637030659160157826313713393045770648166512579178265009406570679941762602547276342415469588870234644032730863287781007780634473999192585675932476572404298702784967306764344099087825767776091659143547904010516000992044221277144310875980729590387929635172986921571572145391204113113637047945799978532916711809196458465812233489040239304005447566247397086239364086650955429406926315004471843530680558284491527992618940666362459513556622842223791665495512630345961464833745680730148239955528362247016976170645340006818846487013890144619573224599990577027070050157312583505737251520399583369273769482366999260983752879088218369428155040896328555347699382528118442133842518943606757938206270035508755131987172144933371896290472834314744164096406636280684080828109818211840118356258504607329730154625026757739810343337262634154141269694393030228257835333780102359906451207149191673844400691476554211909060111319411218213681703953464665840468447846193759190742489506037651627935341015101548811451481443820596905321422178717766964131475103681155253465012190009712888339907029150836841200411757345799209769307520849361679582005244627905643085748513355264021285536151869024190469874865381722033161406387860406432393271793013689096123469258548189536996768385222899054691160561893776267741305000119121305494741787300016452381103481913101820230433129992804941766726695794546256756124844226522409972993920509597814124496166294186442632019022509771601509550768884161587947273306125374193174253581655559816019192463249049805107355224015332852442500440588986211962126723991469048824530172097176117902544599266491258650220664680877547088820342692866619574125314315815605538011081866458353076716208395972063178336605758317099079665984363751025867453776562583380344222683899418837732630991825673069073902691565595600147658849430912327868177849527444811938430438305221796938067898317376288960600727274886714081246421451669437491534478106993740197248218225777685206404131709977400791527212201635232525127976084096676835202813267546728145278652577306917396314206858053125147570133773785995021652918457323383453226691270491762691489767231509461455234399280226375243635098609274146937914844350803972819697676512860010356926442449276045282818364608405371694163311443312467496222753460168854306625995468292031540425459870036552764600847980607381090575861764071712157962838204459591662124596132886503068222204697805406822737918066012482468975510057818550588092455286621934378134013770516764760862496660428670170322268058332053437587786791201930641917877366772930994433342075796472399706176526225091707909640250901008877344556755864251107915452425306964847457115760148976665490686913351387389714376773382032629008124997192116191394161540194211025590466075994425437170839705567082000928595469976871278807500024479909827849206447918392794139758187632560789804643414683671911767818283555165810836291461143429948946367377518885032849774777049406717097861348619472458541507759953703870249951681474239023068125081576223156774432164619972866090208725408555521442874423535552285089581452334764388926508801140456480643731781594358692126190639456623496296197023057095709435699017305867296670748925856015688610753193572052152316467203489982047946444259886556893837121668960068481192498477950950543614375351410145718085901264078467297106754097292401369499196324455421664509152332962690028893410317504465239630907034578015975953860783958455511777772165076890488023529612890585824720243816504095922761146390575145087916620722074867600075906247288089348643868982957782581565137737089751530123400829899440519314356529937132307070669647842826077556482715190999145535397542656875877634425211382991190564919532263620704860799694208215617929413593618409476582599850214519654072824229529406571994054475141889661918639622505917565931454043126759886950306950111945812540492437028676757724975314610969102374578028057463621822339493623801108479309988630792208546955387872576263439931854872999061451092191014120371811089507150054352805730573623383113650918378658290340405019139891197425849717160444981387467583690355194285684813883364578592569516438386249210999339703340267200732529780732025547588493090536828548993446466182588442166028045743796843633195802708808364416882055653947476517501695326583009204766216900933330872874090001777200031751824641541311822120062422246150846180011464956843670322829612195961004787008647115111659176421057229321718061354019822329343791507074421994932431396296020026321099834447569515450770351157891619466938483408451467569408312547701187178963952328812730628138491910942257830321216435089695358961544443115569927980031330405395345855480872047548602388586464967642286775304778797439699001176880900008993541082457638992861866111411358021555714245670499486519781235877890437739929756380785341937191603952153665404936300130801858199092557514938859728306477439940263866413666665268486144778145327642148862140894754415769367104461180164618739931747914289640549188135249737878751399459440570695809494309910616730886091877157318853495372184546866564754877311188265597105149534866522903792752992325949203621527162890149223442511256650003016045575262281633962052674654439429797675947706024414212646227524764168984798381449533847375340299573940995515488335439783650186476882202266942396984640464629438711802866523929949933251050127225740152100553558786797730270175590231842800811494143982623501427391203402638165776556123821734140930156049219938476853817831980461483157954980197985668099679339443303268913442336210318547638806868157690931952486415423852494153576732805962677457951841841651580396401015832006345756883842219374534981389800084621549781045440029486847913891800948200324093992883299818818628257046572790868426602139345298558236389451766001014035613264657331649405767267545508374952842733193296679498594126538722952769436566329707934371218766692041419454527907434683665390556418044233667663829431799481878528066672242466165915408143384730715682515859897995583462741490803539216178060088663995568104231264359386506441314237381059520017016414935324922096758710184542706796904692436230153699942025026150165375862998610934548889183475357571298231594266986484390148918195697265115834957115540199907399986690467704425888595121982323217649056627530569624202960661643113035945404269101731835348411779397748407818791815631017640123578737188844550874684833727670136064651578470024247522547182091446784020902904441641166500893116289552653411316336929156370362377440275634581240531321782588009114621885549024769290417624832319469233306180008298403896675424795884135521244899245226571987116292486433425644075758095511867562485741792959752871149804805045885240273160099051434434924428659256744163091267761520026264381690848222882520223040015421794610329988717369858375876540016202516105561277600804773091678271272317664825349898872108264595071729506521147207001635091024715707912843570173743228827902998428236057218502186973584401059373229286827912834689414222360726132714864769888453858446648131460327881224506308293728836098442410820413861179040976676939429954280737389044951035299206683699242134578011099801111058162427783588978921717944107866476275513890162270398676621530374940664644372353521558744611611497317431735377178886732177636090256074348149583167264082445743589294114913442000061158386916819715960613524558966301088423876199617997288096436523091856654326401428882235498067038927656262092319952508171231375658383862317468165472301899204381370306139343174343855748355076895420361240176978784345860465371054914008222758687317808362585833445954972554615599199123361956732269655323145822583136904683613179560540786770531772973000003014098143968449188956711246346173662033117723300368610703037549304788828011492852497191389354040916326064669013335397469750243921405848550998290528519567909855201557757194700461010273187154400296350826035634644927755241364448250874300759277980830793136026576819486892166481523189523463221179857311616049023615741111434349137587432940625436847974585289190436563557561029657047892405511916735429552973300481971941017227862209090064675336744181462416936075985215497712843184946580668689676871775530871160638425437682056620292252837362289934811269085033524528203574148684851123050969807493846239553565501499923212961552267035476178816289573297582483175577409614881103760370827648537600066283293654695688652305601427144519134644121879119882248694483159238960539423163200121698381927967940016992442762702781616699279012070972028449432466412956990779041332032510260444031243301959750476771184142301709585504487224681278862406416359512367319829174898496909287980520421663847819411521904187403348915842129730779857780617833780364682614155228012025020393332415966892501902405295617367349544523321922546110404121792015932619058211109283636808268743415654852960762997914934230667120255754810004134969818131447711821343016914408348863410464054652876681813924323178014799766827419357307600143111371162427056598528762436468479965398635112550010812639323110531746958474177361883527292875110521073709879908438253349320838563187284478104569357519012512795829219833821789170434378581501705676480388164829702912740096713321786051099914859868589150107407615690015656664617343155452911829352260884232045434928769051433203835172153261848711250496484283472648710585709644389905005646140247142395011656996894241966120967489765933832829366334539148955663906423077099052064170104026855123099660502288452662138604792831401254929333397010675779761982208108624853164404615954498424603383775148304834126974851480491859031885435946812968064065646658666641410814200622200091503719052564677383041072065316719397043671248975257293368383709155343820837879811686169180211590235891830794306895699144545161020038531894732035774118378716667489642404811614608554098549021490299314723030271842677686311976437420849225173379838504837380307843501277629998265126059058784265493589494676355085920394750719460503010923323549673619819807631529290011678701562682661887301857208964712921487535490794053588337238282680594389055236873417079197283545649780693392713242330065943487193291905619269927780833309042255430010922360095617768012038115220483326665633324510024258708933262422772923835828888935912399185434808649663966748463374471956715349241723113788207718909376850068543033750720485805662271349588394801286718978464425543458401724245191884541487665839286940427689378558210732007599272434861286691883506283426186492913515041957810729183886359928414713962619417807945201102661273587641399675619045004039121662790046820262917617534846474087760013866333020983119020659973771570067825890006824303889674099772444107540754021641049735729780805985563648011745691792713574396190572165610631886057510406174070157510473816394172987081333503549107291744039414853775025277850466834334938684760608563908820635491968517261176579267296424027043740187528124691728505872912392934719641861011250652769046189750955380532822661709746339101727005493030876852636833348787283078891612146916046731403310864978741080690487477505874525862447078548490126838767872019516598364340324276513192346492360426220296683090352733940298742123702109102403408526676332876467771561101284330378790127294584094500720116210739901444530785360793022785259198399148741744999161559974989980962054927766763323140362969256366666701357699396694660316625822946547490814499579536511723112896113549098933200588342232269820433875263199936205551239896578319291481650587148170965136246624095241060760225083465413309321982774644210422697480406343269076943008036170446826879783466543147751054132355846226940007075252926971624198377832367842002785941641596216074561386579845372640601973970710701479933522107190668400222266739426264825815569066288469294408729450658034235537652004525004343228247236683642604449737959998846754344789074805711179540117882201356916138329619202458459826684542295740613823714384193677480203905419843177766550000362714142066263535387073719660566480222994348691401101120987396435254446233616110670546872828274958318575792443322871906212567313257253646109832231397643595118784330825060579655915340907655226072413738723648626499707074701660070733805890482859453479319012548747694296624716866299069273209335098123862890340876128765696328721266805499198990674364148908006560789896410622715292589746674442663244149711213900519490244017311575179346285191091793071542072915961098744605664241492256848354224783959752274807168820765420704735241584188824255102685723839061141137635338261975209601508124838482269902535667422297047110783823558791679894021644483494568031116303314555883416869587480771445330351102982391857451526835820445203526430008837238198560495976400848614960209728249241865216400079117722453827174256784354605428899662630947807661616616192799027250815136464664135773971015623155423492621836448264379303721371920274266415312470302057475552271861502474000898345352742177826665225484076607755275081623122036797768148300179512170144305954583102894879432020339954480667518200717343706594014020634222707420649147325934736265053452854523190009825615633307532982003658213656772374378388701163801291847039285194585593133832173224510510114945395855694145777613898950887138991818289820273108944598484473141396216139051990268142275049064316234863420318302957227405939119710755840752838834000751105157985764893114628976424443843504367516808926261398400394269425302458657353380510885417361632124325466100524291252474479521167318238999732723783490722750964777890502245763667319649874372463624448323346246826971084118176391182229850354535257204090621760175932676990902552138429870773121306987881070643565634525661570303844886217453537621919377006854050757409927019477994482612354056768101496799750827562225745143747243710284382031881523139611392791922393575173599759872781519683999938892599392989726882627441699155671991429494495457143517018265317301388541505767078294807631030374340318871151373845044989759843366544023258735574719108270108642590246696485979120162098296521988708685079769886087746683600892854180673844002009872188554553150552727337570956806481761562409385445086835949210888746047225068487745808053598654789303098134128090852134269338698263065032934619707522266134994183527059023362142446422468425073439182157502880068242931521872707823953765144684642845649527141135784368899812422015238736470201290078393237438220882473578095760934303852602205509515019082942830189746591449445777463460766287432855746839381491248812453508902720486464348794201310492906382765823801627055704060011576790394678671520231617579402500703189410312042941366249154628642139486572632272522030988397305340588545260392503091722300866307635093234227897340811854633921441148396389843545621260538568287576443046206355226600565511652480487745201353177089989120680789288459656456283062488018408844633503147252927849710742503137565398360761804180627409300748551076885437049365398100782016260246562970917286399617421183885165585157904525989571307462496349276628211849666642289305561937147437600214491294970692197271201476482515129840072168990666137519302910921803242491244748603920488637958220569469207187768812844732757072621737599759207421987842761827578044111361193732710869203333925222334175443979824393881645525529070080264093657269233267199664480112989520322517690960878819067755242278712398560726709739257256051666076229806346349110495323974427720575573227410830687924787428933937113600261971809940252394706835143568256504198624142799262390989219975136890889837267804647519006935180832194992693678392768501617481628760357961919503812376124160701953388627358648277919223746443855928764241471826172167561453230485922486783336066171595861892343312803028034191950553402388856057367136439950987340996366903915588353069526533202412113151075976096398231653599632969012123956891226665663178460360144333872226297296328428236270165233411467997757459750659295649934722951974667220814289266444441297734309591445912427737038569669960911697656111645812441113547951885232704889694249250638095070131840626794740608843905337604731605133449378256253356374468251403726325929447261099311309542443785037657799890280537848573425778561779121334328314959227320740095237608174821635965153980508156312349068659482968140045577053666008201395374422488382251885071763432030040542883077621829131106210422322156227606733464934627840772998100099521690201356257557976561861765377321174544167230162570128070280804931475335854091056917689353474086077164907530591732197593506014956415444120676186994886761909898042877410182292375665637904020895184099014159930419499458740825304419145026976770710852209467268590426325281799889108948173520082983023994261378261583587362874444061086649089059209487506075518907191418210888839660153584157548151347146039218565614155674001584842057187498731142290363034826577028461404816340354567246204724562291856669812310720525516858934920705689252856923828647292674471067041968905274899629937847045655120871091086170584143073982410065322206844650835912745651031792283994330146340915234110754041867413368394775139107940784791101318458905133039445396199761516452419431788124129443792185661296822897682397176615458691619243596643131066363337965345912931740512848269810724554290058716508727505018976964638226903613699964031694822317567172719364983318709683420019704067438249491834050484591393222227116377460607245057429891978039171398292871637180207171664015020931244150550724010928268437794545873499971915313599542257709563917103939255999376192234717439199258589247351151999030045021693063025006468191924961080518401183716952976544635165942085557275616350316439453832809593629335582142090027457085476685562125285493927926874589991635777242441447972493033228409594558330718124413237843427550174849052058643789111794603814183956842197912316669833155125446140701577776296238826402272909899237583551503613227971988990463843533661669787255993692670758197387281850342852161795489023521895581332875122359033988975780805101625649219150159274756241207400148861727487495984705215169129267446375806413729395248828206139032968076563231610502383772964693030510322521726843284457288503376543364642855006473215115293479084160350358050255505215555876565358619612140121235432642757371639844961648025357487087929313457957674665724766039079367205290949919589941348060679228816260800545335430645685146161194049409216709734204143122871966035897136108959845657190708094054730214979827838583963980346514069854219038949692145686149443937773633127426685866242955928584112496192653398012260096899681517946633599585032237196706978619384305526907532032142084305460685438851024031386809722343562161542466223550969956026168823368902571412716906087130722258210370778425227932353669375296112309610988533735088836991249125618667193757935334283883130642891295375564662070285516901398267709663990798773090366931957865367559596151167059753769661524328123039462957736794306029216876866423803430833076099613303795172618421312453486091469980543672751634157119080493312051212499179794053260869722185478553037630088684597258782823316897006881132603843080154966281357489124770139006932168616731710315845708549403916830578045480043868818817489566135465051648261935544694619411655459896657966246799540368621800865360098903124485568410345046266498481806774562901262278442627617212630230732624653431862180032305815536575226745372422863475248272468231359955094482678450663027914509534462732302981155092488440887924387155725864184679611244501120187627846083651716866843588702997698633794479061459861032341107737077867183857106271147597107615546103533820247284791880402359373700842631309271161304718036369696707434699421721834831366849988942318434415181331626932410876639101125357337610940487911381393902223838267615142227915654473654616059028570529562946485773516196588642364001897889016813170934415959090772167665737750271033652065178106797937744929214447303867708589106590064277188385982917319081274482257930689717837404749610987484760041227491662677939551830830204375438276428571841715251947038273291471210659455614073869370474459705610134982967421383337090721863447064756413602211588294186821834754274562659180702633377368407145697432136941343719154075472924286380198036255132557412805794722392809491709338104417281434388533718545472481995424637577566885477551352070152150905682049703253228525642110078690405583164353529286727094720862173687770006418332929013011823218998557750950126052151554522744014624821556127838732058932675534107154715891651660652245497618594609461747415291340481062101219695970647817729749293188304037643808572858257057410744884204968533561743716033386530020528168693563103727406203886324327083997642596134408429639348820078624518608810337051172941371852491794785529713765529821788697526407204393345510534996275231728634204896717783773697891488161718823081743216862101785294549057939049663089124604917320829641641415400845708473116705013129217856371698604059228683085092418872213917565467661113431389998214101506958312145869031383406195341082073708604648160238035379503969203304306459894703398752364653518420941610237165651683204471286086741853656896648019754293192555008313829217456114125732999270831224389804016823819031855956407255197446019357884497044548155177455060223710611765000693428671836224709033389729129248313668543811264649368259464149199806288105614250835283442558537397292697681666424262191483414129671628791685703614751797680715265302113835637624607945546160034794340681145886757789541142637187785505409676324670267744782907242912962775180964949996271552950234503399744962583415084069058308938010103462312081340469096163086893883804161439216249517748763655222457121808663350698454710510715666032255062324935172829341347127407228350074850324155678405800395204376902003188522209192024611125762368770383849729849763560310960587392379628473750980629462322635543951763125339383318546226763263193171551144698943600038343811856542939281128726687866030593656343622988117849846716210970937374333994761594627535827450942698634956048254267516962908618374419203058375958118301559474758130914095915136905314144485299656484819763281706456520370873063462271631517823144450050488920062985632445657511047531071272263062834159220034774226141976842305540570972205442605124197535474427458591518720352987982510357845768257271226803958719460775486200981537098485215321002585820105365928405479146123576250939417568240606775355141926371517712495563539004761219589089876313585326461802318108619855767723115107478067593567161680554227708815505624082224041539152841258372763897829429944422543815418732668477111407269395092021949576089441389839604267619524672017895649356347984668418006228105487233255713326133694980825322037671329612015166725082457175696628649539125223068409617367348706725681400076665316376495565876878535766220298612602832060816987995976431559148673215217166694563716851238790067125132545620792065763239605914194860096719978017477212923458477440328766614947237670113623571674860177876987854199129191027447022849775103088145388388637755052060331914063498420393422694143648400385666792407631121591137351786899431858402567614385872678013967272874909274749104440278972804613629696135461733859347626884879311987445810238350887767046933630737579941308599255257271598436459425171543135915136232835169150282128214778301195015649242365579682378375178897928698407887515672211990610454142966827638992235179392556982254078120736290132953497781541348219164442033499476927113187555313673052001232890275740353113981871840687188510174554897164576172625383151705408660965578199302072893705595401853843623425141954608063704868979560595687142179637706942108217207312264716869152747844149582456189795259087690250200759680696309608798876925164198653259265301722260454473117446221630699452014810469679323229892054137264450262284600869800648347676720034086783240993342747047616029062079159601155419574361751022079137036998789462628068276169751693455284460827379062371522745411837533678712476830557861912284953604674106404975050952492120137230247273283831813274735097803899602798567867870575992688818507096932269814642508829538896030832386529952991959631768459183846606769677453667497724769067695707598807845876706511134173015101830567986480824019693947166024540877634593885024211281589865636488820647602496253543116329049856058837041799624191460066182584125998140766913461045044735303689663913887061287623318895216103929349493735656078173539141954646212825356955332225144852424946571293685306789138458917518267297607475965589380961394623458149756563428064161223906236180418778563945790050187038601754342289956343893255616236614392024845110613559798192054796146176011641636132389999989167626759969275339522374990174613315703638371456932526142762604394041287320901495590021854117094872998709329212628819743533707066104354496647969835059970055940789100490950055838802474592055814813730020891969838594903300249335808438345116750044932777829903250799275062907527979307534607761818217265787606236224578630791972870952507464837360855027864913892676806140934592195679032148156538060566863971518400351012011834018466857668090079826992031075720015320130958364248142447583198245883415740016771123161948051853558533599604072931701070074640922969465582145369664976817309572069037148923101736237302222426601952263916734843032285793149650597876175973615105242445822381756933587878924899849221060100360339797074375400374642630404946345651222273240697295185070594073006310670613724983207748551516383593294674285006801993854563593819393315218904503018420682886859037638772969523739423265651330097432516783384547544738253522965151046265536138649830803744648478786884677378382281121378877421980558876477240030112229187626413551092956735848814394346743195677408815209986170291753114827928411737087014594790706837300322449383106250354092399326671499087601289702353118912587231559643804699518524276109151571669613870469959681024039251758102940326900268356460987529603454688031807828436651537980678066339243938945352748621207420948112404155346997806398062981150826521153882921067890383006186697988826262557904273726273916845543951362427982985391052671096301617229482098366851213376321222398040429547625132007401351565776884693421261152583544763187795786850464311317647040131459683177532465383763400357657042626240093225282791931772450789374199877923985198762304484503208566115926503689861530637774403058129573632119261057692229143140229851092491322558523068735428351840138051627196573776271110943466141867850388500429355863619176289346735644465902040177446900330320330554243304762103919538210934879013018503025352988409071996045982514219942175654038408372683121246398049600026496045914968057622001248869627310395921690813373119126073961538070143675018126541456516764214981321065077917627472041613556342991173345697200036215082914613076793712379049454949093966118283103497710994178744211548373001643068546722518061525331360290457719520512484902756409467207296502006983767279450834526009810268712627213689255099679634495245005013688226756606863755488707542803544447016081832200225933327633010274025736099502663859398619201762303337756420835216262520989612236654490857852629344826543333353578107470199657399215882766875038353021704703150314460943022776434069530507947015184549712854109482660870866593230724187049313181191441009615259053442265307835645274271138461909583038565135935055452922839075501409689081839049538685607209182518878861767479933825379024155560708792043833208069790827752907606640720658820585590861331568094576979472892409952027597286289780692079112193698653827926539887858471375968327638784656864826922153673619110842589267255771846496575608043613514844917412535378979180693178447596574900945866092860101220244478866985247668704918121618930316786191556766009184264240709856610834673741769766908290982621221741636364412413953708806466416939550989944335156745274745776712296748429222024907289148662819103161916511508422493661556351994548664540221622378864135712824992521479323340398796994076568318043515223913056432833865772845764890935367941335474540424796837050205864683264353713317688008143021448162218750762008685264701985184829029062645035278937417079873621530358094342996273700572403618533652868495454720755934957441247278983978195939949504688081202523929647835718872090836504334034545946404700630856769345622811068291116815835970756217561619142954157196779517011546232581892847272856489742837981374707553023965647853715558698335423061103915838847500394724511969094774184059312942707135670962583600407500019266413975079812294214030948147296526355701229342263031651141985443097290463596584520182016781567547517017096283085757136590530784277978486561042009736533293740767194046420946743305301880295394632046789568589902324330132871781293836384722514214003406907254356131192300772579857733104166364772896044263072319713770540351285843540098445704128987271887875363535245555607026863581100525370083465001380345720530638082964405166888761636055022812398758190469386759144178952327280609619079395749886370391064934026214729649489912081642451766216471321915898038548573243635836075865786655749019140367034649699513128228989857332120072350977403772037408924677918069230673234840651130695781549172488076354893314706991563301864514594035561666647820790882482535313517763264160715988733785686662745910994358452867066688993808592140007413169153568509130238909000288666300294130500243613024641733319331408740179965657523820949364385004813118843628422797186318362404119789348888438327118092563986410342909000977800177162671880625191849199514960333486023318279002371675627997175867236078293727062782673867843069268042608946182885344755266410130497820554040713717065104822618063311105307833510475633536654210208990985959144566935144885395633692644433084894022480669579220248645066454053681259262143752077225183232057172178323599475172197005159728658211387200996717588056727485013883601154684375380797553441083279788959838589466041327854580340998259289677352971537968879739944295582804525322894919593992242303491313085743562430565093944824774921926566404971955647660946671640068338855630866908844737454442595906709989915559961353948400140708914817137080504979246357390947429361282526192198976013895400509932128695585931333753978426096736582593775038715609268520513017284933997159179581564136754317065070616831322211228632518675764822110542575957773817752128513132665378402439484915842400340090647948716550519753552945852924656832017814909143539612654195761737059252379975603600494402427752745076091124086200840292155455562778451409739441620269302534741665344034524239786472982421335481674952783498407981865098948927421641075249976916324665062551894804239620842156701145987098810258548994310710612163694722649500730640323609276806306157054887283579421839633294906222911592394041123526229918300145906422300633040291526986390293641620064498183170657283044121879268862763773574429321304798423538550721779189936597872567791496526254581789663853000192970891975785588416502908988564136250867673471682939906694094836420705137084719942204014530030636440474864627017484062388415988288165868636869875668779612692413932799015299409463958894617388895693263427209018446413918619886242346510421693350975092247482588885630556066556280999643695663915868787943343130104690680736880686655144293673190032706365975374190204505717889506530961194152050215770033178343965349034727422919987823246616645596849568965064852402680259862076073821565826282564056694594231887515283380288678360542300888560869595362261528143253622859955448307807546055303892672481838315472534300956880102323774276885594547914877366244093968729053762024089952181321457892949452719360876435096024859402161750076594967636166103336261911196227172065337696298250403230421213028580287973419118648610464238224899916318564339823712099107240647115679659700878059726817260836356137058310290964257381095713634176376668004540901506364817231477405259014065872985828424887562931827284045585932800670479641193358000712989624401770684324674733579282069779301317345679387198262684627357730515470023305412506788768784256377667138876984904665325647643592073777286298941460659888745770009900738555876723498205109049043477825983016977675321416353045569820608614242738288674223699048264490438842421527112975511549590639582585075918233806392021350565884542177348944879687007571554789542158130098566140218724555236780374210522395117341411002734974756758213933391323581263961284703971112013162779063326391324896781209340493112598082146369873867387646057308856087652991031149417975470192008992064621556831210156659422212479068006704620748736819116742858069808364721735001499315364517786565113858257756472309526336859517181840174749289738820580103389556489071317964768359071770406148618972462405515769494123026050494697329996507082446884454802620735755347736729457925859362775644587500562704736339732207632862948398479426201646665602863477533103128168151393190483660802788271989356309894272466774635656087847270124208884726729628881806034251398510793798559916134263273130728521498392673010131465278715902191930863236755831928949754698767735280523469623585868451881494760088132591783647672092850604105414758357541323224289152780582077085151140858678276643428870054989498179389672311869618367331228177572335065592147996169759664939483386737955841197416709421523885321631988423975875734406318114252325645874869987306966297329853190979797643036974785371346918094295398915299975996247501594165546963140364922889340032108416987785191717649139059366136793078800415639772460177326710378541395936348943233518045635189291415022337197997656441817902827869767164390593710189861452774827400473783694546673632743325061290867216907313829332063939290351143507611019790986580905430251037932353817613188612339349096834188166490151589500891058593786049387998737148897338627473982127308045720731001318846432356063943283315145666508778190570321756772868909334267169552102874030403191447441232473875083778573293202056396767570226095544234669185778762027321717932152928188384234094871277852361990987965329235634282961376751496254412643443227505712017022773785080433874714501516624477420583688802403357729048016910859615683090035373405306821132274772470467607466297061217277784325676766827078347898070783616921556028455499551974713395772127095702515251116198586857973848122003459116380573292218472893950344008484094036374298889855959915677651910409583840114351420495583059571587548346740489744135781786660699575140095570641335218596670907792010975322402162732588036772593480218301925971054142974174506771680091739933391128203976758922134491850451970768845950023096950460532847109898475519093452682963752699285146023470611336836360285345855776156681564998964201693890652011429343291680497257063800991874938133528185872207043306509247957819691354598192086327655506505367513499405487968491219906459016142427552844164041310728531366390132504454205681910090094656086325734022705264768789444265284132185183674426304378638989504729044165340685282288849408340497757750571942197081815240701050910852203724148062120243771509145014653070841770952047494643031276437029254772587584765420509809548294781095867838297568956879404256389108095942837827757824784293359526703974806462416632780801020101301212015447400783498789904282998647896912627177376061199368329784131171344670179675417431441448024948697300127908161591715505142676238355570323097977631971299514072677750516538969133451963894065093166040660689060496846440191680967459866841166006142787235805805386393743404787181301074896465128565199866737505846574998460272650799878726058380818986707751005130301051719764766308564618966804982457009235049165810176610764602294692360588333132209136520334701689008176953335250329708664633575331211626411531811945402913617748243144797538502523039361443417299302645097308775429159983705305364584997921293402515271268679865732403231527337685708595989331751987413169721131821525026680501796129083173597368822264527640245811817562405971572845072157356614576425900918786820534890034580976614235378644966147350903020164425898380722205579210781245648380840818162489582420250138547116299806253792035966229302919776671214113139317658868576833951256505476150286638029043118194687958387185050713718439755825326060047298180469387749556908444018308426070902290639706590524230041200596327772367320306495198222200029882974264557843174039956837381071778480255775942684598023777181524080387326447868324053399898658636040633450143048402564063339973649464609639694627717210668873671800906596167894758915557242291017202051770719657833373473471576342921046953411584972269026133369337446442514800402754016650694201598088884961400039020859539903124400268997252592774793325882067039932249053977343943418353991040333748593886051380396433097325805400660710446270908416460385197279626405595810240022580346322795604240669905413162558646065565802851599612059368447003644861176923464422204490418694040648329914366806646541293449910602694034898630471484392781097078467438479386767546166555454670700454779408957670971337432350034268091630302297956354501875566668151872309714126065988049961293429060162742795190263920272035729290420500920397860845648739220993461724276371139596166686905896788702337495308892844847781288660190226189042874002524898939722147230556189126618036671969356668179534463323474394967075144093923746072853110506218884683753355020120425043470327591007889004082517288295599816587411339242448144463746212410004181888776130805710868717169952060653619648704732798061412589515349229455277540305914142720444332175046479579995989397067563205923132351581659044673840738094907481778287940540451990256412529599465676060102322984272131233674956112508086466161608751674587377985602216201739266331964518063668254025297779653268564964093016207440341274778270400892110161534417869643502830352217047585483157623574851589057314233582557013423340714086762504295623528289003586396144749905742460175645674122337943209630099058113962182347384494960817878553728886665690160907734999744746417891188560665691222763348267000448042522061332999214885113965042468735831096442216344735723061861753167677176669063743804774990600399271500145155984007364037372172099501145595664426612546185483230351607999070118022143210528079481708861633128485021997699165452404485902904305285761581162467222240987103324069441122444581976408900854505976694090284188235739723499638360284512218286798685239989319910867713149407168247996224278992240095323299230264264453603661793804812742888105729916367611166337177695928016208261640177540607600032296578553464121863517429218285005189390451779075242142493714777638725807498716633848045947523949861375366861116005405976368639319982926906076310079222085077228374557121426506434205896191986771658414505390049665275368866144569784001901285856301813659036810457530415474283205420159812254955888931009559004844961495579945775899202984158538940809985666609975522791178797796716569412042377510158359496613213542059896156688446327817176797110379902782873492756236752896222212616518972135367033011791964471412386046156570267984138958965847213937580414121652036436310620645899873630264908533028659170505160575562184828566614904262235592984788683554970515764444562756465312990198322187061060412373042813599113211410881032182417928119956458116297172826143042082030504453419849070799009556267236392255241647075649429826138009118518263012894127469431973903280652673160825822476124610978702574593686828487389689211963320920766010333439060514513821586121203946286824282147599499448382581919538874940796051532810042812634971012469824984510621270005355680502240746735149179759338721462561529237166187614846069134183645140219942410023772333748349055729713265336226617344289385447479911490901920934376273508962041338169221402582665944141547371698825615517520724010614427718055241759414494371566633009048056502977836545678304599226751954970957802989945233907950342033651083899450977708426994661569933483004925651246667140935522224189215589721835118783743265001561183376632453516758892142760463902488691921016796463033478835303719947288129766644607345016896825414385740798317344770221919240238723309522811603774050498214177285455884430425220153786216395837687748458486718283185430624340090408531238447675575393727072220017790581661430592769512722305526088037646947367229865321895250988009698246546442232114146552980039774560974369920917836323595708529993612131668764045790510055675274036903507362908819103691521926598145013241212924070685711306189881320281859507117073108056852422409157624125181785833149651782879375124232196895454086874815347122375943170023736657435224554891651143659592669420249886354476244944254330482978066485217487009605181645395064989847056588140480939695388445802915551289089671458608418380198639251931612334008855834788856154666361423576515043627090282159864355080368140414930626808492518041712610409876988394502508192897567240985563228850584318835196874581363624181000450179751569354647556572628695596512028088291193534532542467977476088103376758229428803879712590856941122964043478886277222545300301061955790978859522840116674540573706694023422064911790745215649503120124538536466162404432947050016084009016543387916205822082305233950127187088072920597530718613911697310119866686577419400288042631652453996416199506718102446293051974005676647598942834029984420033883806707542873998393367232064235826715460366703011517691822552308391268493270180713031398321933739497542940882404437667976242706921218476500397241614290823614319858707798562434549924796341034043529269747014067896401591964407873662905230324532760612082555442006353865539496494140532177654187600272922748205906258103393208363126454860081831081081149058263697984437745538479730133993637290531592458839896637332004147798023891442352934090399725097460248951932554947730285348804646719187440621605348595204401435620071445583124333632837982283991888637922346784422742092358284919149837731010863583468984285076586399499984396163311274019885382465934871590895424161187118035852335901191276132966488649023631735436384829746743180263753906088867217251267684861160868245303457108188977978202313186912262398862926218116546781570272298042684110133453118480603414397115848215292938310557841053867921433506191625657028826477665899728600874623930889856625990253161564361581361422312061408863962548552672215461757089785443122319055059665797781231525713004330288819721816955442716871119650167264679129510891891774455566957052324894748868764068540426358709801798288384684825465592030826223195699859634760754109177119240913390473351053266493263263655084347985830388651469214467519615603400628115024483186207160833903341728907113363710001672734585106664354250030875316706635882579014910841747401861750529995447998590160927636610990595074171174563204097847480122202911089561544117925928640662056033448143728895014940008147250709814202027005483016627696949957218142871773124155309771320688426750400834976417791296696289677728186570362025628563919934771145795642972707928885617154333550510083091400429128608101785837749357485037200865144626346493551826342357621061027627860401914092086744930274370672382840919359807828538106650968895521066725128407567584179114845183640540944098909435021745757874530254896691901258154325796771411233614294668255011861392753034575068612754080426499087496981112591147537522416668848691094928639004726623954839202551882454529223392781374810962679001531105207904199618927286689097836236657750314073495881245891750914782014815950344389222292495239564152535544280546682571468157967557294160024891985010285250360049113233015548132842545908769766351907504722264230759297830852859080438732101621991258549183173896168621307296494365047439283965308763125731476672944086659043645190642828515067159720448861112555327704253062926266106489148257662398709274800640042826721176413139417847227199575132808655154967599515055708554786901762487715564910719150588610766836870243573159403855672108044035080920312946232218932123649019160323537243301274478346024528395318812958701126201456184090539810697946743014837771003940027228331970100950738518172595873847900177751343471689108239969463963755500354451185376748156912785111139527098121325788501645272636239725598126824162084283953448194660101058927508772091118735210167597667676487796317122776931534660862993346325525720194391261251535762847672174116114563890344131051487372508429168042103642421043340292315944431724198029550195915083924905795727813804946208653202618011772430218080287353036311119082230857717582240793102182445194033287892886158752998110003821376353265689494513044482835967014988005631137498994249002116199911866823860951059946815486366696510536938520409336661564453273295231100502747707936539691730066534157146834583918022801032371481417852056630730439141113112072362122466544172014288887082407276240807403754677766072906934765823350342403745699353830602917642688455793914052457579140064351588141604616159012985681634543034741439071893050088573502512942086018796158551310880639499389429301762838565923332653903792451265904257513622898453524421199118415952034437803521246603375205709613403083401493636114102737182469274448397888177812340290634922724326851735360298380448390884413548029353078719911572620899285898120693337660739298746340577438941565167308901973977823101920731714298689107347600176411589180906457490351053287522016212566292748772470040767961792690796011184364649874116452541088176380683328939292593151920291817904581909492741975199073408990792491801972431314201205475825110205147933762994711785087460380748001783256817771851368000604092280740167719457063281787726865133767544265885508752451371708368391922783287987086212449211156779026660900929720318941352235890879923512402533068873290061750024254994729782304731913991502606364022265673466072760916682633318622584646574350907384102200482447094782160547260635613347397838955052057840283595075969158100113615393294639857139566792405107778992118180688129575942833211673549098844770776173580397169252209264261581087685101013744805315113655082178749906557413836174102350760173023226713902275375669897095350496593678718550728054276052504632902963795569961712855164092719353203717776034120253155010805443827775001062172592334979381243141210018250593120501202459709894631562102388080052434500540440593062457947558072658484904928007750303466621277715370246005425468668073226644304215930021512799222305177529171852487679297754009056931838555696507945061189319320725565834832996942932774692209310243944879924813843060162316958330763771542211173420173351630170775788021560425419964560182835104474356734668122691513712763008089289804758792862219231978975268986030197417254842902231009373642980813247895189742503181070439332428711304379935960833153665695583593052252600561658558395628478556539796375028232166703678529992183257844488198793555465171415985910088872173600110796980392304539701513485811285051770708933344624474599543123379148021611655066908875994032636877775810328602920297820793199601145821614038723156565121712852529586874174962051741989516178678892429347695329011190626902216373787780502866803168948594160083251821977710305197068102400901403359095700610204689801617641291206393005572946639887424718514201760694874742812139400289551749312491616497027128363956460508093594964341015747438002095070549043758288508008320657469539196183746373367721478607484842911670581832474325526141265332233050532681343240200183435305324164482416583823227054368980865846618493054149417973559697141781000988165053616704223044334968511328678013146998953713927369885129261240033061978354930964745855245625277629844533292306925655646311448272362752319450777002174596360046248951047396522313138050824281575082315595494486628874351681340043355915606197763858095353518138477259726945765678897798015912377362559283988683213670661599266712225555788237383344384593899840720039441131230705377560653828058994301001026291145419214555659774403091579462178311352665895647418784360599888466485242145956501020633235424930236505783591526703085434644160233906887666207309126626534071670050493826061175418497309355164381352398287307000906730475615543961385383711232784992140481549055833676533791367902249247923601803598780145717853396800563210414154520464260188314392111994010756413409531986439381872039118559918462560692554670219067355100508659056670431183777865062369814253145377386168259627570986600188830857796383540787155223126537365002489429045883746315680506799040052917789639227068926327241081170425682344840991316759091206388338441179885631598303539068118653429724205190593595559096167040366987904002435533142295257726655944270847616758062322745053198917511025832138796003075194386271198074832982342522219224037238197986203034188189505022817739104836226994022489497397931090789271730130479664805809606375748794247013372007483960590024603048921370243932353237844826824350467354659417055057279604409068985556267395207728634985353262492437278456273686194747290849614590744816537478181293886758848335709120165193406189754784749218358157088514011000316882835709284378980983482065895588879185241608260255603617301371091544063430337355991443365321676408153158660101243315507325345164771511510120383836831403216399908519047218549692477950360354556885688133699480146470254200951831569573230820275112056297918300454080609685147145151290810276334832911694777503634677247194257684648988561144334225954405065878478425151290473043707253272907063497472241678280609455596399081549465116690629779728581058974481510406162341973759918150963231398220694055937206161382135436505904874786175391738156155599502313331153958607335008046795786366201389714987647798087050638333086158946848583197814331865276831889713175783393328937985192110547153488711544498729275102012133147401756301298802052491132287030294537533907798880132378112255167490863701468886701370808967982751980321408495364571240598904773836432851949659221271543733934195469581878887004426256109433150681376666653038095913140519242225711852621741520361167886186026127577310545099211525954356918294422193516545776425811604545381654903776254980154093579117223921150086115295899999974546886387343511866711362929325477913229474653989964371117956634503050451064557734469116646853909482836000556552215030137098273609854938204087850074629945720962883758330579427381542480142537127008730908547678116847486352377837507512289888878273873857044377107059220323808727670380108019496386803919568882808201516799867719875155850789331324776268323653848821533350391626846692469922707796120572303357750717287517020359786042276356062921404485453131418392451705198128638539427175167507269081423941112832555567807330574616567757824372007371988315568413926708916736017399096524985679228601914140633855800272837036144888820069803436351359571284648681745107496325149169442680164913417305233402537296647900027822919390744595979336281667359822161176751865177329665061628990856230560196557723933362434945270340643818478686001373844992445565997619295186436109371476577617997668921379164224198038061398392474965965453298847206344453494595434352765788795698122377306228599328928534763126781656241775115655983822984418348751432146136467138957126366958421079159094416411181877320097805714588469815357630798258791826868731703981217301005585066754489353594332624993710472491457752506110537647167670152819292483325776043340189268682503591328664871968749208935176723140077910251828640514421925527172822130293980896642020925466693262916746823924826563919525772590588525307385735057052822311632023517150092934801881001384658242455140159279863570514510744144493303788923343857207233663607404842635521996807089926843514188423873546694714790396808826828982752209824705944503803363373370433491161758977174634163738970192374680785460721798183865425715246293800832108172964317199390010288019377840710124204846943311768187645246950047732623190363706066230628374397065901317189341508278502827507316456307497056689441043882082384855193045408964059256641160717033930877937940083181636052474291519963020827959899782952288263395608876086040950860964931162748306168049773185405090638841163347025667333913423055125848423444516173519511170676376160024491005960458330885892697227089281750304041337428215452171308107535993996905529434537073557960502062398594637076439942836275729794988363605189657633173383952927464678786677183027184391707191530648434001344269556806773131328830044090862730312069046591489358340908956834161960631170487914158212925716240798076294443131869949231599372042880681998915938807970639237031604622407415024955314006185971053775760987917281457706293534902289694016928395189165273093580771659515843419102047832124478420798288931978932271841591277030592824746310793532588991848608269883778007382109963381389204823208002296314566372773317424896930789127557674403616481010290712614017246813361277567838236523326510328681404463307418263529433661004125601124809044258832443975746661377264233377998238127140802416327797932701988228507244627658620444797837464313254096161778497846754268965467707297256525687649758268660383692369438299128740524853265498079575937176079935425518952238810129112152090850396882457428114517104319345996562416294712662861597372216886318480398968545580644855099062516239821822332910812077393702605397542148294639473400558096242207981154717012096431687561746532038020736663157092907200908206412480903368710075214504001922324597739061770013161897047738365820373770500366978619357837860023319135207191300855259365814295428363873640905270437990801119840049509012082719861802555870216118223942394304997683681582954876867451459862638935183100841418700954946833365075316525993865125951233451921541852491219873331702389809280451450903960435405163819587766808236298889201388580447522104799317268885777358179391377667281258673744321019562534378388626874341604128048589676572648262275469995332921408550075169085427858157352669486435869317198004131765226407472417175410941378278096377533664086592020944226136681779058863285637303715482556134870194156712229636925461394212491419204673159277379429892550990332505892707253280562598648387759103187019644429552543745862878142762305275031628441844849214371047764283537995544808489521877190142426082566611805078634436172426780799530348838904070241940117375592687072733969271047812591152974333141575479538656469270828595564214919394924454979826990180092649679102224252311614420335113215586848877274249875981744211146977203785806469695342203086568143249436797768084194358781236975252346160815966892093625014951830785100034576643930888599046050125856578092811235048309571451069743834890893544019565756268042905237148832113886759494663225529485319629281168159338668532937196361099486067971095870645917965170452603257217144536779561479457412062086442218188449338223139772755516170975981146093865506532427494371273243171828304553345038758122971432569576841723136915651264313301306226030078265953226913118216761289694202491843678577791230882143808765789278999993743553928004913611604760733400304416299357210807433411071286052234164874536423738552740098505018268145961190616693199778473240373275234373291281754164020943378108209766993762136070554704557246764279870758943497202582780640081175889282974122568453411357725743234003717538819795448070623873241572369228686365054727154276948043668543608849634833696588351324826023862752843568355201182583305698325760925997775794644578139753359721620923104363296143662812038318498336144005563844894353753504767183788295225478510980296735213610901016610630815618055273283935058913796993200013504969961279908251692851631248936076449273034198750279540868634941043923914080781742756924027398448300707925191842028688268685011988197996294543507821450932244253384806901706116901320189445105621450919047145954830893549156013935195972692441695254511711607440153024539553498695944487267242628983922069262877917985833118244693132560326612793079476669117630921278788234006352916614972199467752247200556780250879066436249840779927177720495082444667837054576168759738276168678833678166157771845285522866195904341334029189390599349096402001061803845407663757392821166496178475324342968799642618660803618498399640995008841295138036726464584391682060883244706144288331235447107131099109800313881438011713661576596768992505247608975124642820616683640808243222405380196794338268959743196841679524400532882693562867140577408009155074701739386776042036875280102674077687088380425285234174996073381275850175797628993320237462806117428767442305853622525913765215325985612542633929486888211189255003985502649268680925748213186603982379908451879305420166406316944034222854769719503374750938533402100582841017704766846912726904051540017551672988166364244304564047459103744485153717935271917936316013847067049718281707151608540181044096945589500327702990122795027730582233884029827826248161648358714544004701886270012950504230476169895334815185159766536655044445229878291832000561580507922709120566334445332898873037860735371822242203363362006299438554257129875303429033971642464458416268779368383484294408557359597032709015245181468743824426472684877759564100750970001765751354324182720249520067534236172521463341974021382242267813086611555250589380402741661100667847491108711903459692423762537058822144565438776851530588369103805859343701056575470025808638959041695627648978704744289491641644923752708349014127293722442039303472691925593396357363192707756619664098981823252007298813476098545166751551642573543039268668947344241449076036850738220167579701940656717830922792544861068379333261631260914584149346351662469242494397246706444497616003321956867336617407889327140290215087880785064400655637415120325975315837206803075919216673364078271003498555029553222923582303286425717417549525731045280281075691401063219652650617047956574382402321456196344836448637132131817834313423050750762181447794730572610359324599097728206243912194792513221399263550728168698377155714094664040294529821451980528210926768136767434745749850789533988631114533510795744787953663801164447773835523759986495846512135715532420847709656669012838988673013467545410311718496129888332806576090707136552514261938410138087417055943246213994604703898878652168151723189118070479099689038452635310012304909419866342668954301445480347343046073067752350146193320772027098861175248978925552580690363553822243280160681076589904769445825682521719426966635605983970838994456835435371140611314447385846038464019293358628603246645064114917632613083406581214268424347254098943704964331333550345904884733730991337385370043583319806205092263130136456405291946438853211724548947886038277668262498252205891853355140713179267696789845893554172049547463929654810288808864496532319667430897892613632460185755116093939863414735603027595094685569749227893995315869968517515839978517895675124913321360385155704485885352431760738748868256845928691310339843144346169400727768213233483084817809015461141980929712033622943231106063362273055791808077526702637466525598747941960989909198873109184315895678683583402874217398533525746344514659189773190100326813252260356576051388119514755525104529579765770126109892432515157340732159416881997103273774815385332524945264959345495105097379529587123730961443931964141750976813442549299381912933343167605197358006778143509907073823103826262154528093846813223967640534299105701041903468454122264838374116724069689152189130296072636061407844085035025050835936909721700321563684188803212905217394409390085205520296886860722084490523918687749848878415138168235696997335703707214712148786119483134522775707020806765573397685029235128851422834573771160172362459320702417929692965566388018420196830027852116495092122172712463018489418464317113493014156004509572922140698639036959239933153494877886184631845935607528507439325516731333377011940379213322081253334401772233730044050340469273250044220099628637951357479631651206662464972802404439367809931208267121975588855234026933641442138457893748680331764485427439243463507937936383927359866469758793423911013621292571765538061470523071179761380653756949749341286009889219884466749313096012423343121725146714980036893494756127508435112471748272999448766922080273010076825708028723158595646638309738216628329580307319885280620900341675149063678054618592185979785295539912534533641108730247860483183733756343358923425673733191227803674725380297657373976088252925826726606502850091538717058845603769104161269906401939665339787978761091023075203426522770058830617537044835771323577508441796510596383572118769986847914098778764649265725779108185624021292019482063821409381707061071133173201230563936619797542382419102468114845201869307794068146998286077719201181885294281386852424511123201926230889835071143329043035356861185229861519962374989024245047651289345366559886261473865702852471129266203245221042932021057643064575330686150329024225495479339297597507203325265795548689280460951054825756599262944461278992442996076433302590397363922008117646895124824520980422153355939611378935724903640473598288352689231132065150157165141956241232484941706739075039315692631019890583756189293137104418650138048879065238559946507550506694133965231738580199796463493972381524721994297287172783722607653041722848333322668160215798791764958236638313703359819426723343753811329985926141680927678330891142002075906929048452755954977252541052704398364346388170985572606825898303524956171588126390920296051452781299838166297343066216166033581385015189627691579093004144748360967527740631835248275929116001563661697034169880607877892447808283166442448375060375838433938309731319220540274379344574647433168545355060027452207884531377373555160542620129456606398094577461706517952137482613795222808988277246886772288194660873269341546053223579799385317245697340141223722609114179484337002532763416185848241427419789140931581816530523495013319267768504277372211576454761747912839078883093866275242732196912791894791773106575884099506979073450259068413438496861038062889011338074524623867218953507257337328047125063243077345443091591208574043447437256098201918907385416175420648074829449461432773291304246959892281808855300815091553560008724992810302934347638875139189935740066549657544254738447608071382850706425313928331961452698942167886323530140437226407614491396954311188063957203472500280572405939114880149504391580024147278394095805284777369811601750309333563493291102457025422674990760903739045600562741663722062121040509019886599012343266147031955336504090913862531879776099822708422398933723374759257222639893672963591560938599017988516275374129264768980755610932198607918461102379905012422053652851507778850345131870732357227650940448992652358367741387673647084499900020684297172911082407802150157603128875408982093862611723821926328354321879817167739454964410438102084838044117803893655225627118590427001531060921243822640443075809300595732719526158230470653406300006164247025208319293987235301743810517144137784151693670089320085736610607792431895647622303643413802930868958503084503630773351812263408737734332722949004544658164199883537608750102198113469787680192599655690876298983421483877928104227914818128133045711688567848569843235975739847316619855355097282530841403570698382363195128989692974703665006730732846788001263700471586043390698446381878855275070126125830125238800386588176503989354255424013724034267161912143496266644376568111928833650789109258844980057182954245135172920468467114857499432492863406588867837736654382544712895415738124996456896280264695600777815594681012600555574690517327422553600745724036709725815486966742140830966624525316328864313709322879341318042821884658206311197070064372383419745759131358988983801241934623626726513296643554370140162251502543869523847469990609048890110146990347255162681244275598641490975735731471632221081516079314363067826155782831609603632442990239866373083442884412353063611587478889765121379462683493594092628757624131233144435602985205455974655790730608141482614688387644849767664617864478937961431074583751303060222827376079315245768552429313424326760259116007155970495002602609269821382172255502559724394891733059721156131919842249937440669546041054730917453178747538767456321389553642002920790396987457420341828771212962605432056291491762826584686536392631759585712165289431559407311657097703216596881774979080769279306442519358946953671940067146637002975194800245415819466108141999095386045667754770397987273590436029013164536423127070734609025993790142790149252914157093933350099152833616279611120838647020450387480952425584208121424067548094520015275811143182443363129675752075528841199876027883484155216756667458714426172390038464321911250936888853880596276201026139385034546807833527597703587169593349268795245596414429639437577405121974845158508698045550454437610624368870895725628940644131134339894626786668230276241044996786505387616456132810669541661334005904501600548121394098301911132674580960150917997376134087125421128860294296948846314572173763038633911728316741826430200514340606239210437972065022206027549103268975465719466835657969604799027343151188356087509712918177835495087992907734571810496975080337624729911308012298332377445680353332040234298185024622790729810711981463705112402045266419887232536221813678087625453040113894949443839508493910922259616044007373964158124361875670689001529976693799572207803297128452041684242907827508861480576488441698212855147405015409480309874215892871467017892409712201727565428989625588250516607159942998622387026096777863242284731098711322523529152767996563642448926607288650245895754502137708131946606938126283503552962676279622644972596736382754938802253016626234324700806413599369006043347578856045969095101028763032941625182243899340514982925649285747681112432124290947839894757838218965349066953427518278332796984883921925948028629764986232805129401718523029172822933016388035857598335698370896226551897035030183040451400314588598539397707284705254292989215432572580188674574775565322776512122081296701217823824392637249605419315711010047698386110577712936440524581176594297815469027088991591436157015863964779294418837961422546115449191254807129269691677903877158946729846022415446935836361017291647590972939677745998902104652341567520192752036637783666262666076447264604719682643982988309459303800484649745914204087614500462388350098567911063231499900253322974355607057301975326755262177345193133973189187764717733968802501226094750721341687199127022189637284540261323036542256109635642438816188286934922518136702741371225905974267976045103139060633933685183408699284494548933948073151146275871176124850619580817879825634267336406783600302655925064582726414692956465997313329098461741128378354237661154424301286597305371674136220353304852143683653768693023645865052785428509694064887199175481269910816101662503819545601943915371232104070546987460861505084856402479516040542241843032318305568821404900741632767010338116998335389035333123122218238123266868632981613369611438113190525325568865534830478482838135534950051504037289162789183585681457277751321707343015750058449219193688003240348242231507292581233458074617811359350389669420416203635874739561005017947077995628228578601102176692433558318865058304654971603706566898645565400094039669448651491399745004960326925985766829074671650671058730224701482434420816991247697605251692142586062389741763649357085971088775035257841660865158599557070987932568364723268060756803195748652407235711614867507363861249708497575192132632023963282969140812809840595947045282414310320543040619938352904688931951478572845473087985292992302989145919078124665052120499038081754040444486442802381252735143347936466803658261841156256565976869666097502139949443642108657895362996705744860140590609693668946023107885594944485425672790201122264256442124987865270278918747484834627945832889980246236747209456231679003658516590440892512891286056553286688202705543456681539370232958902653692021460666125673203843489371990731109036757529545225089069207272215395723422961578655824925538794626615383375077869122266813376663109576680421717597228663728766650357355958265964250418071760750840643461726584389452144377704510908397627659829336724716070983355415783470235746444994418712355092718834526415059751987878029222479988542171108632777196876285712058916855232786103089395005958202482257141897849821709631862850081345089314597618552355248910053335731431355966866861219155840603906750078027720960363905202600850133926739240616107436893765356851172365689519320159524096947766309092459264557233840055281291740981172406609137198199718200229537868941019872191880710025552751622179885588444048973062561208924325234893779981750065751297696420802672493387512679853191061008337798319961710004245675199739856915355691125483889097721736678261209015288069009802845647367139814852618260735860754485059017006165139644331405030718305563754993411717200038877198186919242729937157112094800712354692973892380336230296333402681119486889619215139425279908834403969584732106384844683735013577040212852305259238493086972990829453113801391977299064876668471159736166528712668238991083376747238767224042198600337886783737267683923186552704775621470990325125598094102225743686758780858581874449746343761358060799613624131300854030785799874467765132518991322176157304894255809191828747567785449641392413275545348493299319443578211364813885628444018246035075455653128588453957735780627232021825291281705767216491349225664042440789203680534116217094409174876788391190227352192106963656469546510146799041242070559134932242909530982987741329777415139026410744434132330586676383933505208347560597913840962443907818432677524652688884242128902564971777849797281940181257376213772577338706867179328373543394400691633970105876245610438490679136218438557365121036030183663896404992017161745100184380725076037306649581815801921736219347616390624598733964659559203080277035870094471091068547161726762653059249363958741199651625736359788240063863223244742863078857438966262858856417313290130589436570091429296959137975127667280600557274276691971092630614623184999493428094511102208332725837618634657321089741202276084869930113457813728260437113371701067787895422685701292295909342022981483956817074870980475732240082270030417161922464967298308408516387620189690546773191789526010605605793874895280917241220662995213161167591677088705537995748659558287988080774813825445775501543015853124666452714741128769690087467244144845898150983019083897951651252399901470070086569124813523741693581533939796406448706640461100505030093352142862416657841444158557581257289397560392550070584266580480739299235143426012833511692531238374958324186006276491547289916083151243547269282617875259281172624389282880786120674767156653163393669004110483539485602586111639443862959071076442943790453328937146528675066960316911589101844640609751416811753049274759877949716005421714047233591698357070582182296522306625654012161890551521859668867697626732632551642090466447591086286268466367571022056378427328227928449718100597656061171518340807850329681866127143702987023070752460512912776265579875910025917556322189772716443422604183663652052998977137016732073791202409745297888472125146977742138353624493267905167633389212035318892805627499167159578567860707955660647964333285746124671057919956263486091654719383778797540681199218158461550198283235558067942454211641470201324128101586486395285595653619596242978513661296074078999657384017431987468777143490284698822687231675621371832459752458394919236585696747645146013646466457812913242994485538741320722544284816415852989941495209242541325265691022379066078678048673947151055652903758518737818682104235405624104150827886872634439120803193991689006817985644923366308501558157155089599458118660177751843750631615158655774147825037328510351983300544813284137508829614070089270273713965353793677262480244917058286207424154775153307577910327417204904455281425173422057893947933677490819512686737689967596955603532018362384155107586322486371459423389548192729004661411712058995155655791835021198924526825255129592921068077938066223207162071430475689767655595755414741099675775281350366701081597142159810081236881529549055067257595338182400271881867366011789848455956299301561029720047178584805265248830834251964299102766729653558296186793491498626344459657757840060909554484258805036820472196965687589720313632805454544052596309477059125367098077301745642928054909493161028555697833363089957143484794614241760222590408420768004724218341674844301069134968402259417125199843360418939055214217676676978615479893286826775260624420265801764856205054277091856039774026541130421585145014049812780672363064955717012713620018298784329563826178718278531870843967952585092204096429769581586861142388029419710893355535195247047225583854463068920362588486247331440957745835822365261250193405259355809872345014366309507442804977096431984352777943087112828985647851137858974372925630746330156768961437571534500501790536753635805259270724159581805957558923731595250340994715554517789224081097013146844105461547869866906073358520621113864041881525702770315838818391065715625010928134437528935602845152365937449256779912016387515042986796526023591522009553172798079236829048901457706250979596926088882495451513845500782446344039573896766310211472966444635889526343624200548352313418588207165409733323319582588530433483308389704974626012430724806367306126558633742007025179044487180174331327093288866360435425100306174603951431719612850677546013831107866733403646403904079167112839233725020895110762014358425539764373811555006718499694903267820001191433126403008408699394156317351768742308820494624936830871950144752325754052051148703925704823537436324615233230033786199657118521556436256854907799095142679651929233874846717332750505699021397724587398843973221653562742986497963128718816089487861407616756412966984770290154020030121052348642967780477662958704237749740319667360982140056574322796305962900033218611844837501169087208191627856046663252686161453005474222483558356143687634599415932075102735797885306002217183841971327982189097719102793918675854350387514614972685382863358788178860109757536702448268606733351746155665534928952476724427224531253394324789242532287628996405416567825956126908236524079162144884056929959550188871912559606063553513737390540854072551079308742337871398865611362724894791242982557067866417890520753228869397785750343306119276515583801984820285196862233800240753482456646437300028526086240529708106256768620980377921766773714528792635414532005212526937962530662081907954339788233695534098738950748738265095487692771256283597591703956157228570213469874159866185809792955481537329005173025215980822805401803509798748374910570248555788775048185932063975181546661373171000509578796021486686718619877549221513706608103494009389498128607263905280712583602919005957043990939083884154526438256542541517335139811234638259834733191007000485864435048686226954320232711233248235549113483754327330900829014074055237414096051689481825743871736534110637442073400573646357126083147590832103611643080227633960949693917491992677617365190769314570722589096597928310013640732219318032334406512628161459854288293108105533866009507448092389862011590243024206915925763181896170149376682364291444103896678100973131460107103483741934440489737228202563615272393848137617860985166870703900636176646116280124929372817850872232445239331080760848595156986883948433513945341697919400809521525301638247367399924447606767983420416519085888894866225667022543891334609692468396716171328901000276062423894332501204440158798448514814891710848243346329972926590152365034180172986676915903903509033189543738555432294558026909103344511199018128592794771961495315679197042470268846751985750860886427161943084985470680656209873449359417907905976106927945055550879546108458060719220624760269931257713128967556576332038600454997791671543906128205197612546990283789810146682350737414344789881467595965721737462220713997881742365154995121701860208806549780642210915591824446356617480447607046211598553717035326341513250213292299526366262216104833771213320113586477089172338542508408035891909534076930071301703459118367630316380840756643813688166226487293254280570773185816806200379249730322318975171269486820843057825406948144453262435063562865693490782346679657610751903972386071254265198961109006970941217431417197301736741437143067520152165141451109564155847929687208642232496115537427401624548915401382922076299858633026217988695235308313099908680757175209787651948828141010134003646670648624675574578785832061769003793567990350344076060357852886525736222473628356111016680875531103363318061277005665253861354229984863224775758795586803932396557180953292727945745323181994451810675708334421388136274733828656332830032648268040205043434149306040846730010806782500526247493743297880803953663984059842722614573857186549671075601462204109471402566871258458574865402414151045197800640425123254652612927357484490216371349850916860964008980294634576038114504346348126137106825872829836875597381779475692338265840740640804358174787287495588278514157591046548165193984922238588935523066627589682390125648961820032991289024976780962921289609270537959134647000107587766877103830328726956572129249496034674605948578611413985016571642598611716164543266061950357640765614987104755768826854246445291789047339218944121395279768058578860184818027977591436636822682590408125826529555720707913094252171071617164785126962126607107770421256679339592256390686950416642029539667718607508963030061074100663733665613896594613850191944053827574506519407517527388913458595051531813523295366555841210017988545586764185430447603714817043874906616429657771989663680013549293733336199749112502544537718222761834618868008715190078670340397052457309376779622523909176315434648394942536363761894421515616544214603137952606630738275655269358686810873590747835713946111554022182183099356877900055329051031235267313309699005390592137867036705978635116663795223592204443998720016011022738452309801774093306118356395877549251836705707574333620826986871927287966375941178831133691936160542654054056468036119051030423653935222629504872942257156180799033640214861769629205635225019489433686013727547643832519430310563417807616158839916884936619600049450499523313626133154626051297812030712684008262459059535948378834518062928338029417488266226179146012111465755958249792923384330966201245000531109369081717050189858132604596507909094697829386682345429300541853431206831800029066230977092663853366030411700075087463857647223973648083307584325633633716889564556587533357169755685062529489308793086549578760771625223562883923564914425329780517680720069645076560969646502304000436390447755052618399118199358648861236887581072335238032193605526992692154765832568302700630715181255766762739506578746219587057869833020787900191979645494357121810389412029322570989234844653850701081075332783301247506828711977772463590729594099887845378801213339724521703764480961933379021350334457294565867917002533368474260770502991192167314040232265539566152526962082440414210923511742512894415460744253608641897094250316324035408678738685318225580136015386691011156479592449606515435994963801506907830446861074021860613740529312014912784628425638134350823008246994089018301745135594186587693020603154549245480127868995484530622336531567967309336082611120432855313403529467980859987722618601016492755321095691904017266953452767279837160165776266008665307411186245981984876358394633856396822144880620655764719602702738135454166080037699613224663373594418916812332391718704632770591278702408705049260604248574765120237880550489047758178566991504691837551904869784447705987766526467699504282719043496953102892453601596292788152895634742593622120513155211886577484983371754376018828153391963619822807578603960352867144083506390160677924528769787696690690722203245823632645780948749489781021709695862935261807078241571126113084708690643659632898682946687767315428878648704050226979413247926364099956430685635057820004465637123361267445975953432044773476532590489210812561731553020212144144246028215556675843731584965758844376881242293856992443827443246584622186392021787921444851394817229582217181522544330086569838320866900517663769729722528731384377232244931330518069768535241011926004554092720140852320211761803840280267291782265135186810718277267081169047124634526696556325400040147518284764296561272853699565145706341230959299485232476701509728589657874484245715362795743001153322138320669930372673927194789680160282880508999228162109378912528126415693987826582273202223644532373423218279249188840571083093242688628881920202183835918601189839337681191054250706129698206137804030606751425324861582741218887441434495871383419465231512674777986083761645266308392551189094606248174494776788245353989311287637936935469517184247785030391352997514823238279762144510600971810389896520440087184222406657813764936204823183366617566141774360068237518112056442663864237167611089525369987093847750438404833953492207670021469395915671619940040342310321695241954024824972036765430276121352965453977647997778957615563636572493913507341586444984779661713854500320475406895729109465523048554114411102305783396293566031933236566036974232638865095065973436279516241701018394807107619443421953831789149205765677686761721775748345405109433791961331267659614773707888531883298547705351775722176560026888325367336026738816429520160835413420814107799469980529345048833447577477531829940920972887163999404694214827087030746535284683282759528072860505603560353752279261446793867106089981186713781612776533314845044641580689981646375267968657903511793771715873409635243758000742585793688709303293947324935208998149514047105918292189031602186169476757033419249421668541659387401970562113687453777108497955157070157863298197558872328040780134303729795524351287147944818884529573736268045561627547636315861256101875384548270055615530101788049750354206196834201371532113010382071784843076350263680800442913692831529649745392574638947318190524822094474053928257889461194299794831867710546201005882293330835653230006545076434015458538723821073997636476527349264697432342376171220820092304453547010144326999950611988064940583911566189609250942651394010385877276652763076654363739397283492971928294348071343057495586840126957529150176464475889454128056187721888102963412186631634915176468385240049019750368631695637599825108700066462846549928573054773283382785250011320894853365886780657225512412576508722202024007937363870548256635487574776743686026645652001545933338499248594655698764312226986859069806607160903806593362545110777456248281568526024776727177265586003914353768433093545287249300021484572437672571588768686442731172198164333399285910151407084557341630582410855829952931068500932413694450126475785381424740248178718584946323518659442905231014608701613107497366204138015845618792747915415969533573391058397348376218294325663804585262755771963443758207211032191458318935718945979903618740531522658891834870222575320019355169362040254927966564417203999489078895090325335894474020916684698974267876367486755565936227313386057582964156503301855840131056006955827897797307219684210643411145167961895411253945754962004728840295063963625805806932250361293540285575814565844989166257010140434082635031117433919269708260132912564246214877661130240434492362098222506216883445280109707778630917394357906064247159483173785119735988766079004664710721496669119042760598722056019197209336150137802502948115809682493520874310674575448871787854573712602424627790689692148295079348017329870393556831396664556562375303005008596526113230475051623262837332801478114479738408382081598643590830645932189831982339714277354515449033140998197990094054224729903598308502397948968359145240498368258171406476308867172732527897518601619483011065585671630586412998750301784340444174925285077591158197175577095051912615742994875901750450605288939951548770359781882137071150761972389174263072293453608498574601764766739134795650668396105149486715722973768801846972864095494336749883409186344923013021794642218465658307668436462954698911338540268191199121423037057385627264679992255780250622967318933000830765620786927597967937605287167934143776498306252558721432282629263785238169505364451996687371843511690649840245424394302903561105541486262427294137713087883284314336155146900312838807911651552300426350571346547086809863532093487159807681536947140712162444667644385766359897107965676589204551993145872902231002021636611595111425715735695844129692987981416842860899592844789942068062296688505166958379666196891724999540291510816352863123930751121069912788913676157557538865464411669130917770058969735042478021106987293408807696517053430453379806149520666441114951031590788608429561390156728232707713850574632312511060403565760939814229153275691549298506099463196441564072191729590036692736952929502930310422961612146810809896693605875844235679438162481128465339406930069189226575871867577239268712330102259744636115824847373133065427697630775338687410889087466869832367941899144778047531877143360929879070368045167262228207341720505106169180209873381531869482537577971753243409594285974084235224873686291972648293247231602990437924860172078071778794757894743592694705921397847803150189481980358863621427571137081370608951719090559878224035067978324822134270916782781681769625963501467416772870090290028799967452274998358346038356598672827460401677672012652283144208912549866086516716208415183135060497755491224693625346521638108878255298375489403332174083726304634103451510676049896222742556939575652542104514237103508483964822506703882614361500350853730441877310033909751594382881172129167049954708652987340413506033475087889969336666807767637197451359513448047190062186878481901762471528689885520043494055898801362543404899696491149117357920439442716694662044377018448921687159059759907141807412291759586042190521263628230232589111549573816255942774878221970494453305776941961449021369520418955619874996395141801303870803782592509886587691622350148659967317865292293909299394150594464418686760616941969957562796001675789563475548607137359264821427207675166066319388231913903413493686059079988597985665509057140292242646611810820324365213730582416071847227480056567818999510138194847987571637040678618556879375330140049983378218618811505027630363102903062206725345250034845954756437810191722446171017294062175235280072181195428583878411619506048768762551206183491505194368460461932664118583924249005805904464192293369444769185924706398015214666714356437599003190405935525480748498592566044112939425844105016835651859506014969720045935665322262491310892256838301869276490496130867951085435684825502568960866178004754097492513894560660999216304215278404249195928399996818963869297552370295001362704755134991376424481684055240662101672649843774652664228316023417873772622875873697236976689483505692861589623950120077112200876273397564994330833292081262691935150444456462600404819070968172992775868780647207501164075092787995433412363183915215008289935585685981420248930310431638312543119337354332430766937543057611733329735274409488824617802161777034453908347586673621174360703174973269194176743786778662994951412436228449476522446592972876592277711574240530506035685797959761917565634606175442080885192553146159319590375655119211331873998886942332242079265552494471772267279690212831294750488229376164125674676193328705584694840372746198176008411909797991581914325555889784009849308967634257396039101844788584304997676903771947030451358267028893186010664466572833340330365486516993553540574285404288230037747860495225891052600043458707274334755954920926505869388862870948036278080435453658489402078841388170954026343547667740208373422054013387260913417258056413698025897573654482138718656623873142218662020062956392343546439940237639906347185060492984705191202070195667791911131682968251245681089038993298607589750019388670815738705082571285751959192007240201171416628033549830110087624263519477390893507478213014300251532814676834792175628640135455644349893054895704883334794633917501838719908006244860341938671426488763298841485693312904204610235807466985944849852459918296056049131971279612124208579053157112705935130093587585060393715732094625902118662840799281768279628192792041912461113903325393803106038525121463404582628934388603239377500033545262714946602069128005290649762597201558172090756276343093933276516954592916135227805469486122373008056651521122156802104042142166507874543270155898565789286012940819756639371394430910256949799609969540166875935910407151144626505963635734481098447311950767714745247451012140685774198260543443997485349936741550745072334297126456494483052408563294461782437222805110985758281614787506103194127972655101292759803891013522801419751544001656618030983728435442738233656391543264133348952213173496317757208770087748670906750087851206783305448510297634249862787892575776079141801383856168053688708196058696759543352228903297753005458947051232375769910005305404312658150503292741840416452298941303879346848446248545088952094722125008301422341368479293494386567165625716674486086548265335613027427493397760039182443367389512334479769346019568459015928439459005059706411062175858337651827412590567986768257604555687778537839854436217273447269302155512550667413994469912168504155070789171307280815610533968390942641997349707254656101094279083069669773668459723178836532873773098949311950124159660059090650954953951121506452333939097513445458225453154873400674428800744549596887250526950849047084610527735119307376912571569430068385162954198114032482596002398772624926789394564644559364120922827759358609186903728625648845040874238604973646515882150930201073539538211376433668860610940615242147181176124413347733994994513445712734055539714363726500945590185002582888142333598584475808992961342453351283869561003841442241020933157964300906894714974284784202287497996602518861981197152778684778841926692578548245923938098977729846007095062011221051769456928539955327413967769204220696370395063202129452084978464503831570965377344397777489855672879040638062744999907767917239079331075845969137898646816971465637799957018686824243672414526655032111454686494207048309981730178077386921126821079630524602471505985809917388351019968481740777142205936331935991145078625365977486551394696972237593158024519388345022643735456751523577721696062276264244797721047022492002433324448165891194603616038699419901710392462265150708597285643829607791688907365216334747170690891590653434534402902599037922295920810047300606349236288424425290070663091897906178005476594014234257921185887837662145122543217590407181472079012780936572971654605125199034527166071307483713921343701416965234315073376446739336809924521523405418823886316649986288934974387292749293737240967742431638968592160351148003899461724739513335584586149575750807560090651629323165040149015210012520426433128582196565638695816712759842481355652459861785160311717845331831981161108062512230567047394665098946975811771698113336172877654131862728693108471422331788761523521214886449974207646113222465096588613208448164861594452559945298127212180419287514575409550157264514543250911247918977800968547029555419553068814305835270028711933284642915050976962753957640412356428546832915383816569878994849057084783204759485965380187691677399107197427889098645863738455683569951233770223778597687479367675089191596512773643693136772651949206205202988093617250851339728858954385629477770085612583076269796972897661618238549573897173732709506275817869417965083239229536353304192582244605488313639131590122912672222986815730442353321496796840864616337570705780272441788673717502931798896811191305226770847966321284858533492423838622948166242346774056111320868295849405032079343748388107702819988074799942077122703304739470955323420341333284480560761907767994061279901091740498365678276691974725989202235903361302236579112655079778064166963375218963171755681878201796704255258636754237391907010982168750936236648062266287064285799742112566710398192759255013640346311335584867694402174953302296691635635079182904307491789225900794789504013794117131750851339363318066592964868634600436143424254298097348921370799607881036053192176306352262999131176675572192671431318481835097085534240411316741852805953140106070667167767777999098647808589994906027638564125292042197376463299813420298601160052340107804392379789838598473228483254298636011937918465886046023092766304750992320274914781700837221782665709134415997715754387435079143598834832312452216699232581653638462560007926270855566979428250182365890867341809457204587087667525965475366303335509912473015577727739833951568246572090410015577794461719174391660214376942353798235498392920346342372703100159680855785557654228764978853002490918578565684100018127013762097863617991788737130672090536460621497792334396038617811019492871216779292177089349177606224530847111114443590743594601414620987016794762553902266528914308640947755342300986599738457779545879504562867201991161751883310129416417093454643690979411904266152591420492343724582522540817122289005066727818773608830638289551917143893386484602938623248004447369428600531171646133048972985260123884869131481419944339400314717286322276188836367926629181469749413623181617136370237874782195123113852606983171684059912709946653515865053188651010872510842199473782843214387627793937505224010764757574107072099444242679519657495690220082624478916160039590541635802755881923256164030197117374664560232502154936103724355486111547680684424367259013851030954056921268402131779076647873977450891642610150648735770437426431655520216357769805500625829823032455753297254714024337637586840996903201478573647027739997402423542329526515662135389308428037713895793449798812302397241472859953814041686777766283913142674432550038656412433666985638899173200141306322663082540247571727384567557127647372203530689503139392583735230653093158618707652424459309054897363147260339490660190149892609079648790954148852642732826761527100048231814840996232241779864350758560996748902303024096764844104722345952615994170552421204029184034754109018948557833053176675344652072282264107454072390178136380822510578429839964714964320921761200815617474267309401518958202765618424008480851030098252641752329098181597116333193161553435381445346097527400110196976853022100303594140938222016293499758549856845596374625708592483346241161857367366030582747467469687620985218048922178272949588303325269237811038969536374876426336986248902145146358587630216437850366510914462840776970103442214350778319440892804025951312355155335394583121273690945241662334249880265727608891277427977570177973077113475711131770472091706622331436976838877010572977950328705621170864588213529039355689135829574921615103232575510188896544153558730058798711784925000298355360339134589331653083677402453423498710516893410857366872660701626295345266474643858149210798494202138742889093246898600486450119242174914665494819695539259664840776190531709436553643532855366092173344258929862824624127249833212014517767599454810856464263214827450613257246243394120291391305717802290463037141600083161886999218277266147226242703800220510695498594869419367210349183967098012413601695765932823747009790921898714380152332130544020948836733471296674667869334193379480310146765912829457214454997303267552484071786192639306736442481712767927892328251030809643370978580960931381134048845126272832033621973986238224345333889302829293212147144039717137248336421359475259053130284429085635281506807104753607796971475727986489925195261211235059600815425395497100331751807284359560297180304586583497732512657862530367301966528752587266014149963385948605890575852287023179499405440586162402482693115772197878529135739225715783024594174183411800160427514280021097661970432753317254621990284707482760050630176771246192694131900853561110770018457259232212525847890224753114043105008377954916838594894126317689868872280101928654074059426772147093203479144346592408788354180230106764508481980749308415455321062487433839029432650033559647110382279326835949606920323000503456009378731945778772025245972078433227873572971768798203136461599654196855486398448975551309295165855475972345636788656176393055847723903177250923725083797154334786913441764382738873059593802485691740611518615480971930613031598626383634556626009006890823070229208698177352818234636044167022221688556752927304435618984021308039654836848276576827837567428566343283065924621509290260633766144305062057480735043972236352368250527252501435377991610328704533807789861292736132412836418975160386265127522415376796272415778526494743305667818416295495490977792232098384130006361450672795529948501789857721829019452320014008643089644966136155214177315722148442759093523830709937571211551285744168062501984255604075500189304625781438888440056035758977256152827827126347975167763634224969408862083681309785417854683924197142589787371778346391807714633503705409105072980584123261977625689476292647724154207759808555325142421916267484225597040659649494048076782423140073007676057688931127341185914904612720730293507481327119306679082776206225348164204974797744779330940500188329829906294580987434341825479231862892712257010551989096573422840219724232644350436665489988442994597378316838652807612967843499313580890390520255005025758286404919386847368029544383785126614235699327811379739877763875861133790128787213250215303848194867502092147861134694244892947845782322951300665637305544516378255608382964018791416535060662538620751753676094326783332666986339048716835909256465867139538283657504706383367275328780451942863569199749303092375769397770341120641608926740221950741548692577468224328737653144748805418971071907019511599184860875782500170500021403274769438166446628120205128616823624795798050941208472905469564152518738626015667987618718109167464260011319685950823615422288587946296519350090324209335798144286396043663857759080952899958039674442961746809174003162025571622725410705433367012639610447588555189222475607938897828645825317585671312590592126233554667026838066536968140695223499320771774618774238003692782840061623443072581439328816342565314263824191364192365773431662063461729654838826838323685913287189331412623370537740198755923644096259800693268329778484457490554505915461165123443943043339719692484949107962365495870519296788999056066129791592550085708046979654986087059706051327403715115671472595090697719717641123886703333510288064202539107578208508198082068768874149280535842695992442813330039826589646788804369727444339090250390370710024772384506507905566723242465117715540685612506359299885971542969002349142279419540485011482054798115133048472216438751483724806824084536271910223452951713243776563522246999332354902867292125963323092110474680778478339953245254504546926573352296885048022154089022274737823275850361314317149416140251881912526096441122132959616752393034298129506669320729818063051229880277636590727107992167826715179155270268317029690570817055118263669896179524538620472508353260432598732698582687266807596035118619917570981063013801040959225635488629478232643030271380655778738003035150644531900604579994216576894445597163341343562390293253355506747741113345264227960197152115070433045676173138416667197161500341769533258045954726809225384667068258159896897783504602537071888964289069996303221510209228062117888723481634243314273401595529897351651124237410578125932766866985160843612735889730900068806438533042896693705133601603346577284842829240079421727419970380480393792691775585611989996590812769437394830126728087216170664429002554315705491930789695529860698148877926257591835704111869722011721898429571561150611914240969201844842355566227080408858594693596641435456520389990970314841343936773216436019516077040030829916732788053275883921519934881958580970428687828844683798679412048808107555439702313871283836899632340885002753514465107674019820749592677374689297648150374181920290546250944588285152302002053681198198911865245017007298251876979120377733322480716832839071235038069496014196697622494401171165423096893064070978762019787993755676176181149597459198016158798664949064833606535094784801039122822650911790677729053205349924953491332604463428346554220380151859129228982133524242085643591893741070503399510073531262358813231549956654280663732796277212987881845981367893581903707411846119669007508446294380460705709675192856809145938478514116201502796312751118793531072667777492526947971154664335617816202446717471678496604141556585527838160805136067883956188646311441312792659613043832232651303717908168662366381254922551851338772692218637526228855601648682462550311940203218338970432479925414369406844113760400774464307735574100768574959910621849994859709531467257796116499443698658601718380842394876742315228719096391361501110494706426074849299207252547073299773949641803660296006784550311960995818145339444971028404624435673518035257780332875987802089678875197788525378275380278005617681069113448693284590790152533562399880064239116298693263832590608710904347313391513384534360452221120800520550591884815670949536713154005417602578291887607601545129526080450102684758917915749029988907389278854675893353492664393068018815406192654639312606052947674869054840959903080338603266898013442007407728702850611130172194413048415518384848195527337049303275397639114928970799382346593334216816194061260965570957931631416145600485263815538554986660846351034813582858035487535601454911912864059214273909527123531380229918903239688045608170487537144261099551953362547151620344041155322464171086978998055804755613745303699628468129255456406739416329367018084526916408081538755334260970319069309683092694050865548692673036341850356273695883829166485115383235195828627918498100526813817921935983051023891458706255135346175008122959638793413128649296846552507091554376620396996752520611118802609402973642309264567062013186984427539066325117702598738472363665152341212218563351406086665631152594221751088445406709475611877163939572136437668790596519639997286211324290336646390771358189709575996735544696743616408612683503010881294267287408457172506787237540909487875534321047142899281063951697178834889531379178340779134365904234390902478007123593646522324727434210488800548153286892316800751909967919028764398218254097458203853635372550706571325317449827540712604742768209544709998136584602633523170476651553326737541862378952018470258050084716325144534561956866140844336453597824856300347310894189360517379239596324059712088735350500812557207749582254139480700732702057260185628322701069677463995263253937411667361779121652190903570523955352739103292072993234972054796645211138266902886522314826901883763350269397590296884317252937055689846324146479714893150017056804176892218557871706746268367155419232507009783876071874050909457429419545200319038325850183874177931925166285916232879987790670213071570281784692195090766207233638866485772896464383140112961959116944473553899620182597501858812990792634473015405131896572515102666602439935438655688351636907021698567615971672842018524594677062620767725382448101696431575589805984936175194142232969331417368203960107691150074572587298868576880837181505546871900119625555430582784849703766716891641519136309008105892110014811143347932340773765265513162444445799465661555561651725431797410945106319982403614332289706664677340187838586077272217568026436802825557992367000859250342529080198084251872644658827562076105372816478023460963134320925442009510735492767224581877958175728251885700110838890561568367266341498890721522937093973175435892257712238095404309038716417209807349686195172359604826555676919316085752888766326192244922394001502731004320961025858604396031180643337819203086772578173575095762370863647736101607218955896637975959553361181467261427847543308442535955147675149170398146831279340209065535252872060920782561216685321528686702208320473066262130108266339096670288587470522154523931580275887640705873341205575234152257993280913525852840440641204440447426326947179881300248207666784835997331808009742085763401621320092379751079878027087761472713133119932672769825327871680325322982896857855043219695662963362626541062270040571184829591165395986518350231000309866303564937457503183959146689514235110207583212968465414189188501415588542204405460258211903622232162962236542736661935454620939666081933790843889981982855562610301957913103282675810487139653945023478068689871308083042214673972739440976381710649235475227156441197985398023620626665275197702222196731849617292681767516218430552158613775652719281112793607649035717446316244139164254367171103046912220757528549775079059911964137602527172655751005161730517172882253458276410801664207555156046720921851870170248780020708662282013069850883651089706856291254528598273481914053866443436660721021470718110318630850214416742718635154220022363947330149541275320251184160710249878868442383247403567913599504077049688154819179437843883626333081393088493959858560779677003466976710375394094785438561993554830544318366755540821410398420130229820166186816223174649031382606920537824122384077145648216464115221337787378591309906499888336771455421168797110837746649858153077293345763607011976086174860862203795408800160216398537852878917828736865685381729362993234043658579642557929105698631918883274047613734396219692841316755452488023093935953224163977152661054291332842776633303511895609867074043461423334307374987723019740257209167348516363330844227255917622611441526475333433750241267726457041399953880068471727453585824447262929362950777261315068326272477978764670532220560871979361639385111558185149480407305381181262087838166375262623321189682637082900176328375135722180215625142830150076756424315130178470394620812482616167217524450283924114241360590165074619273843500501100338568223086604140733357749118687891746621444530868306174460614037599167377887680640012676903490763177003794009373514106978247658483778562311105135123493383168474742948993487345490343128927113178627293313249955727594343953571705455069962357946528740423366457955176897768457860142359102332144744267641080725975023492214278725008943078192546294174950250197337808133679598747820376117345291945680839487297036121774491774622883646940585360710315486494516491942650613627100403249504177657539840592521350228993859929373365480447959868802415737044137066054703667028108278161890282167118601482122268037974054173486180026442732558310975454073551073901475848200763422753339740745559491330234559613321962061995103731890437055457074931401130475473867424767294774717390948426846428562477270099667835868216161207774115857025237033776609695876751119829681121070325187795763552338111458909300067176711714371752230010232849808719796861200420467267614449831350698092064420796657264191303479469559855454952321672855276359971878688365591354638231040328750870786979913017511635678527095986206206719704684199955986983531092982242752089304710770964339768927346622620293211934795184586009873651369063401587606037839314541976481861708593817739641075634106909982410808078015143569060350878319036431881034246476703023395496156990295895746325505205206578000036497303823097774092595848014814241339479888654572394386141136900597356678907230242883473460671221803270323023834574727342125042023344440183735648796010870189589590976544992046569824689040479890568466385951443585989821555719609190966697148237761426531690766365250876281076677691163193767990756032949187486001775874637976093490545914296100466060858151189975036187617662977168370196376167805154293643096449919916342851684516135342879739272806174690036648309421325430663731693275449993661827067620036556006218777603344838909512836257557234797142702574449526837444680653509179107937512950270496631800548484534894435518714025979294457245580664206603008514616830130447281355156079677755432324823406850934626330708659066592109090609707617432747856415845824639391039907873597078380918739357242356187933317327901542707780078779802035237728882694265988292054057193621801321890431853239802146417763998066495206397827621456176546623262795516368396096787340459991373574522065426015375465750696423327985839821640939245494073478646361009409744890231856016385496349077972944969602906604827301133636905602517152059687576902727894669902294793700523487126209153617876329997477469122928967978306567467311403015738043837008789581091276876891429078488920204242171603309217912060723981583469567043167284124394231579834689874164629423137520268832960106409275189085957323708357926282809752890154837528865192285789299913033845625018206296658360815745582526487994835432564899765256036482887450523849203512435455958043144871972423925924128400451736644272311703033693126057220659883877454073326789539140894402614788462993808120040303315299192530182550859010867488602567980581533899493567861163378273801674375906067386413930151032476257168829404309760939230736083852505471330419479908154908884388467699228010125268801690990932201957198510708650340584919631424134891819227947389404492210485239797700354908685214983258194428834386766772619224040233950677913584004063667297125075013487224119318668619112207554843949266793561364861830719128495668448557520500360950465854635114397051178461683501607748741730221798276351271234450425840054658449496925215374743425183123862336284167664874373477966119211449539018923355386664606226797883397066711051284299466227639783696700267306055872303206976790044538795154415602233984810252674853526182148567677065769825751640502387240683398792548101174711627461796512166005046613172202316333919044051809330549948133520077664826990720816222343124167629061744952918110281248594360424229673976556244306657919064530554494530884867544625176885806405516178993797888916899096467436691338218383865161953141623021375114504200292960818035251095158106363817422558237393822781010166254399253250135080324292067019954385206965495519145128775904625148428051335164152631717837426669970827376864636909335985584933907634846488806679898624471308297938847764072384877469254433871695612704094917867406888858962512528785590187632560056763877292200635702829308407445239466863563903217778126537061973557863294889430939637490571601590153019531705503243013677556255984968210995697286525659566574993992066595018127719453851252159931092223329597290598876576783848177408681909616717184252031094933105768737783507861748144137010811641705160687816067680127596317557134325661707706666126983178509951216510947060759251617962172725868196707619091929096579130298368969267266489235939012268156676713028057327702973447932303899662920058445890534631263138160214575672681632779421315879772951586949959366228884932074303512767445021117296460499730303357020654355239494740375533178494745821834596133991123760018502398714301222821944407534740357849563310175449825114544876202844785800295656587902831915106650225468667566671559937782128637544184086320802774464382798331585904431743486789178879309998364894604792993315587799510144642762943019620434233687348186674364962525756925306569814693053694875860200074910365098023552174536702479692550094927703938257518043820099583792517595719859017442297976200502509693567712948939654902716866032465175244365034663538401926469646753338747045472667202302790300518493684437273808065714357060284061714052126238955280167397253985904298365427416324255495116041354949165277231113599059315833090025106819535048591297298625269029650466524340796883362472464456077863227322078864921851452232022275990350534077636925944254264379459537689831058297930199332570819531628948617873985066646198529583576802229449861036099718857138093981079559885554977194181721060279074155564255992004317916486569325999011384279340828628809297615984871697702624733624245245926926585073569264813436338603505197070290063437794859680058951091830822358431352055565192663863004143196075815041068792683452551843580779501819220950826613299580256132037401253036364999860941092603364176318488339972048049256496516837164730310591607246380872948939525982651789241902867728761302338395325779171901140491706905337671222985516812352858070470182944166723453341705599690411476046115206286992646072748930496245348569478444692254295909326605355852523533732845850021546894788355809949780944724921456239455690773233208174198002496677685731828646949363055612694834070755301093998841578312801915228248377987884433558907956846306597262590437716202157407736698566317010523194838004607443645481364388869221598563719978944290348774666611415560604987387700870327918218292859401379348911964016897027908637530921628398163541810915211813741608731754095928921773971410794373328541722009921363786910515564207542638524944509490233355440220264335145829617525885630423397484380496374319808978245301613181381820555038392859498318395696884662286645375284255559900658213735797596251821320962218997387192175298109165551092998747317623856817408925402725552774539567430992441542785435203817351077351783032277493937015176300670143125632596338205588703444997700076089310259663217055477749605544411442450283847213119810145650435566132939380039210276921016215811820193041045505544522017176762803643675960906746270573107628216082710590509816705945954498398672717688767898897216017509094851997486829168599510639678916683269346056246186026357992636329827047403161671577339986568189637508047558434627666620414709162647503909586682701738422360608200737041710767043365190779161535881035727671441818285903683549811061551278266778783034385072329541741430880038646212237914842015061685148811602154462608518682264417335086267885824831710822412120378499317356791996645255497775501871111686541581771155452123093518290570799818017599769137958527929355259110133665579258010241550394422384627701737945298590576130518338503986448143039406216880455673902837129664533894695115921673676053655749415646296634569783877127835790206801807233456968581845412541348637757234347286631326359239626269906158039562246865394572290455444692437376994492077705265616601738587789972643519639640941168561902042774165997074099583355013402169706976848628935736271017846016281734918373923429355242908707665040338216248567473051419504950160253912567812140987312117354854061995670844793614513407137681539048724004640255794645553298638249491829044654453281007584196563510796706353218991833290234446325496169737824556762525952005700350437997228749511614080181389214983207431112627182428085161066365809335813094953107379534904765921790413413802125983755659536118363645875276686777637907086006197608764101198275077125370816226732914295623024487533381253529593929014036910984405992745834937825708262934046402206849046137671737371397255823678609003808524384953911149847123838588334598740993477872599825704707885262829401158848797744353260175865905738772913887176418955090272408078046182567746313699289702991075958817928991524102217939756702336560446679042232386214764411640990205718563173474683551160987120647143494892006723216146829739175587847340245799463751176044288059288861623720075206962413001344774756002882939807882332522150130591201222711042109921919645312589563788978683504931618182536533390402213075616662467148528549173747481619352090373258583674296151261549809379744044130900419090410872117776746432653206865710375471389706306898565576008300329078900849920819965353565322085198017485055948886254041178650333153045901477447336225709891266047804789203257460563561560701911635173122422471507935060169762424291001805774405316819646737902335611514827474329373632643717176736641001694319810328574659900923557117842450720951274363204144144045191540180082785628746919909496185957005186866508273212867517037526283363498701038589030323821946706337278398042902190142651749531842100486415331011583698310147373425709339008911532749956189366492594487959208686573159248982903948755113087261734245601982136229779940648907136048523846911599789783625396640773820314313078642515325468505180461124463135727277141482306578926380620048956409092081360540076199931282929412564291985595271647289980967204554167321036976851164702419686109394975623238621333064211705929494436320795472903005218483073587743382063291368635204090476056504407619294632069337504140337025058129650246810320201223949677513661078599772100691637576622411864082820140420429195721888742606629516038572719899485959184050131870539244321201121897865012284821510728759988348672424109274740154430392436826161582127454376959591861735941069971768087382705646708330390998888151967161137867871573774751745729287658230926837086354275001393637846378298960483704294041881036058384367749692653043752665348913858587550654450474861382330065368560820114927444812042592963865791437494152182870863469410118073359839466378275568648741046633322999157486936477924176266063095807284638078613224661819447627924203839294788941572041861821811153614955166661938887241678814155527651047392089512425153210486378389230639470979427576983363206133069811136506094383420487314955246976983614224607470898825034348258425658770694499090157246128596514937155033627665687700352205109378616052385495483559981971060840727315634152774295800689691908404735890294348204455584743446930953903633805338300345205007700366449078261544591347902510191524865793604697325319171054559827102099083803836129305055507979916281159807911960546992023985760448379952913456779064633592564608385151877072111072647114355282845804948266298318754412784027902937646328752747277165645273002935196468376924595965942860896875497857621984548402393885113631208156488715232757172867718436030444228166966888660654829455136266166237854445504419038737926250975706399507064966597155305102089036755091124264142835906909362554103849856147113460965896704548292703432787056879650466937911063205598701107790905365206980565592954277552595875674000819984865861252667301608779249484523697707285219406166268028657604047395440016954101258545385743188070420543077887537177775101793674397518455696930266834068966649604831887891946868036317037336884018854717698609034723509517256449632595029349788009002000032869995387448099137976889774393468375621226117305203163264743201138530418967748942458123581435818238779826147121402721915028973332312301036600192149024010276092789218473887105691381519135775220885462295083188713616325719710867154991829543458651152797051206234770727460919160537107419046335660109136243155715923478911824887155493799901038305806214269246847430527010106091598195045727599918794479870007281486127306226834987899007525668513114235034542430628110318328197095213630306778098369748095695968576303419570314453680048617885178555270503260601128087101254493916407459302976022866364763211480959112411612806523353404464708536190644851492674878046938589999349700497276551874450326470987824135674151274390632007498538330846185878454196316553051055576398937248435908844809696309756917875911415718081623443601795744334000932652527281460049922484890396991919459820017846670404296907381666828570155550670929464018434188873321402763487139112785965510574521440230009448270602344055014374011678148652299259150385503998840224740192061123732246643473988679004568981452852833421172971584415081571866733186125209964003009054374099171927187516796627676669232986422520297088939936966574141984841005027938289492631873151797552535702331077776936938022763842632876615161653313680852476913017662165485031399787380756762988979917062882907744789429624192193825927444772668463154000758468977954212394972499448898092808040212138856695219916721960602141068402692849688615341118587461247913418962861188608570944814120361133495948502220983884598906916161796446210026769726705408122306543588296845491081324843385958105657465731004388599457757360145175249175269952868722588347096067791909163819814726063613320237486804327397369072781597032553573934366028438527684259125702449834165979335253685114000378421233188029873482960356719772275260297825221368798294063831985237114194602153922153048296214499786569892034390630315453450776639416391917395131145040735721439864401432219046938888680789493552284608597117196215879796187202412554824086646214139651897866338040937234249461982611276566269213319186314991269698046070268922235814202943468649084498168141593543948923014738792517899117603400670777150999705634605885107947150233916965711577863570671070701796935713800549930718850397570449602913246326436229609513948116058212244239560143455827208014787301519467801389978642170756979248256103658449852343135075784306249556374327921207234462813871749943665919884752482103028023159297893303686978730810722545873907493154420543433988875721238566256992033069420394019705758769029986845207417524088295597429299778399202348737630911737544903822110726724530734990450137749026702029061331820134087392103526998666884534232347061066175717858343235671609491780808081821445148959139747873823148190211289160650843147137698917225533141529274453044718974342456714972721387872514387023168289638808969240257594271789513846177361734359359378496273804829948804310622072794652927516123462010651463591959814586228592587648561170902035376161573653842093731036973393168447844111737595533826522378216707125278173362200976050859655519968246464917007509452766024331865462752231875393561687615424044167233833351827088469397876953725886217453743890375637375944669971231945757423780978611400012685219071980030936765433510669688162984265144032718978161683392187850236883597333428108095062260281133086336190068996513934299401686717690440023729573088054761151010877600451346610665750081094110620858527074373069265069303374670370296974626121321321621144461097521353878688738212061596355635956411542108299157284495926975471161115739071776805469908404507199262971256087825928756194741536984254485851610985631807226893013631990543745781358541525795637155617622848566147081267177195098033141665926190261479259832707379236191943670694187899324476816851352816183147916562486535665109323351794975970016140545256445078927942332950022208154606592874211445726449050858592229090033913180907498648247725507444268130933278263575482531760426764981967767813635367542719710344624676873692373166871961912999633481683505517531258255574946387985155542441313349326948058233946877608054530608650563213561578770993402142616065515525827479774133951666444154112473037159554392350421979879089402081879834442938625983497483047759029539899089950016017701581452462161676819050004699096571907236945259189809903553445228406492962345406611906432810648774687975742418242479030675828653098255540854978960613966528568977024406642541579735698107860077139956386846619809760558119672321410847541482800282544977907990233252350614803560327935807158410201663109222143935951086872566534985203014997890287152560863607854644974527472760380674678772346154480217332183396563494246843867825386616930657439838313989708634302555588151455842747345031650521294339335486244550191061007102749380595793651293094997269883393868513439684159219391336408538040362507577582155803326023106706636108914211518459988128369589629487789479292156183587573090455139631308395888023948323562900611708566245061058951991909030205011738903393482216233102603508035436667200512743596692620970620383604662623506098041299433194200367532677747567776405902519855388177613873167700241109700140639623689869532126755599671495330847012532603734962110030845537351364382105624678181224083151981341034815668849024367185815023171167297142754021611526619876471257881164331613336042882293435638230825884537477760972016714521921541093497074381448397721991639620692214353249638357914887701444222147635648463731274032624741541131901408736545137986816059038992975199003797794466318533897614750410884945628628378628525134873346939689129110125251699290238741419957164393503160045797023475465560267433376885641272379037330958950663175952794001210208183089058517675785600803651296757224659073921825659723075279442126606179976971422034640616120526373226271734879603409401847484499884700299678821214793113441513774494002100648724378600702291612545977205030983252435501666589453988145829503054116746176333477137805217067472286796084281517258879825829547985457432380476885890897922785552523298105940296563465939619301059279658466649155919069607581634898904348869121443240857111126570018904253089610852095396958421731058542852992644214270293876424063301348576719082173630276252679156054683081735413617644473816602794894054699916421826541013052252607989000059036478820660255506171391389904651639359387687584625804339798009180060999484721597516089356939738765690804858596463742804792213477014801018942932948345364799601687960494732002474358892108922363591377813739723926756128410972915648284278949220119846577681613410626481676986632252251004112599003405017857240554565680874614233057630252210296805811465856056526616565814896364251220229516688951047099945636765257965056769144990320160778097405336897689297592089817737769682595969674380338337753667669407928213117930517539547403798111875114290713677486328850521919323471174497960518088921693474248200894740529286047043975553457736907234268364611703373232762022624693948518171693366140980698714605450833906651804680563666877035320823270153448480509343419798931336783657802096943081419474311257596747721965523827623231543660815883597441509362678544300248007081326355846634781761354097151134894210920646014351905486863650658219822133524107724923355382795308705436232995548868463099535355326460968833949735538697461964125730145372676974622997610451411614483783595352241597025353114669633409700784795210388527476664445287470498085050369624689571421457767117550739352696231986739711112969359493309031998739148348230108422068520487364852984271737710552819245330950079666716506185077639324529649412932687317325472421057764107787781917486100068868841272303101918991878031972204148071092585582020511745970523614820417640668093818142344268858009075996332743805973780354691280087744384920063167033091743310307234116051474284969727392185055330098088899294150308275581197244610185538389104154668551863879787107067320779737121668891408013328590350212104389600303101402414875367482443467850739847244468498183925468049353429701048990779422209926326453047417592349277219668607970343683432317798826678997271341719679581734902567273447031796946575288583060949718164359080309630041951143248389669275964026067454669013466524026530968581569566499176548712777799917027238012050165806744916720216095075134656096102541260841434292110945725495326269694818436765939914547468439820675639412553478424525832937729190452941759415551342420653595256052808407578478396746208737361129711641469477339774623022956757062669349419909213788045332666128693888584533755671044030662387129017564813108283232781039259843254394856468655207642170828192437165069488484298004624499193623055692801613556497159452853587087756999606001493613521820996641125491562572227387897050459061395546648751321181202416152333167205501655970989459082301954921240331172019622777656439900128396221779696916077387695429526258772615088493439642128467206720972603453724648054905084656871423749393274614676063649010693373464117522243849199004050893153685444236698575252985066549956181433240813635549752287997014195609304455199588776181553658989866843656043536409081170340929086867539246876420558087185484801476890421267722023476033454990268943425241538011074507504005588576565199730111151050737664427414293773762460241856841569413729423739693376397508621857130420910418410874735328378588314325098199371748753208223970393404285971925193706308886258678108493715817189633622244453644277588106294948596136213484463235059866111286854395036761692538570528905349147417625166191397993496105848620582474876315665599839711994926265600546349630196979551949898811333535058245468676736063705145716669807333840197983317757625106849659175298618813264224614699487086971188307043630871519262508755482049755734639859385800640327570603788107578392551832661099961582302993378573646900768446861322456609318273388215065750799589456090424807874453625908987971566880552743516443729930703612316342208925002753387561672266432258752293082388154173270908998085081930549106968830498761343577019534959591227892957412638515410423788870690955169407324230206237866712659605385057722933515638357622335775329482598556704627193379055197084787898336636815681661371837905651243666146293397958582110535716716965367759317594333151812552710438666448863236386072821735136304533372936554159689381810775168121542738809957830577950549879967441873302165290137068927922192240723533122090268639114150940006132669952746154488090134726957495050912267984852984108799593492177040528364870878934300754516251163240738760726893232611623304184871897750033578832353211377349990573329308829123150370350683909650738753637991760771941812732394309400494964811253494804671987799935391834375469558203871407010975836033368980148067745524362818104140781024257477902651469793703059174615830724698454753511432400093387631907854673477118770901146529858547290889954767386116139681747412721251650135429694225767291818450737780083219282430300071752550587580875396005880075013542804115400506282495732710549864084203412471411128558703466846924788727797127508727836843288638790805794817784323321511013752904504002171922408223207039901501983150895774100964060066582940730369133142018844901459682955746674629666041337722704772304497615281202315652799870913903083053828951915616254631934774433988551328504248725052944586699248525966129952555739953721685474290427668063985090630338993757490694974893823412585528209374469085796027639743645769306662897018787549297944289874638163866303703088841888338624569245954340096979102846903478086757987576464421248072508169774545758843599333055264347521674708264806099334122467046806237373830101240071107954336766641424534941276550695471701136224408072887929639880014822608249543529168611328997674879399940264733314263904950615572971839782361591419576852205557706694289017544293564007147271741847324823057944203865523107987039814681813257365494953157653776952091669869284555601303627397715635088351780459489211005336838850668006933603623219967063372056918467957109439225262191986450756032111602682278202504781412522270247240505673610324247834148576861346641233089273188640563211729560172528159019494080157523739322205207635923205381593936901540172264157580698300213268065319341882748365285180869953586271263703813603818268031962241902673522676924125424716361467935250091077813010800143324100525673233963658638681727649788342505988545671486091481089828128936440522105803768862467338276275714813729812778845685350337476409940965742845939495626412912659092852624073378577376472962135502956587423068047827793763683827297178152403219118514718348009938946754016624385515227566777426976143753826436142172638971616051733532774331150289722570122172489058560327183583015381821604055221189720682184580951605767890286450084540083276656797896504541843560841789825802507373218503353865825423158935869252016293586268439721621579007070599903103294398157522040682096093602987053417443109418561811124894928717789245839584811361693121723249895700626641094339603854096139744168272251417082216669937427532803112827274237829082816362978058641388127477381411951402717226842317115546056749725689987251697831510338054075649839262842295225993811324782453520395464018965262829341260324832249449236783305637376562109529988736031745350019488342148552234831731219746727353900526042233399242651186055790149817955935179134013267422001396145110567797342965476072466728227492143737126085449429581841482724200717237122869725603324512820965440940496986699421950894857975589232845890033132004722779673078266948566760320832948685775622021313417626621078149189295617182650082582366645651589688712366477110202007582410366352437597573425835193387514293251043428646137312184239932758933634480448212379191632310674049911153307108317060648775030263632245195160723280725457681267343822546620375083173671334663472842543514592761847267234665426484229720432520729863976401655479315440638825185110334225065158293294515517905355920977121866654533802422740993044833728403857848798541002209888390082425835524169849643026105335377169030689914438826636613579589653887816878618551616107020875457979041729816988559091567507432080792898876193836205160712719670369771280720587539380703775841373499881011562804225733011825419181520010545380710283144646222111124557681031029245699002274599322911925938753031678525151781730578919517590638476201421321663568648780152874306584609914200502054455213244155123932433619020660860559316278616774314708156994032103191639564455447381135202211660653837272947673102824283290913410250156183385126993596538838703699214329378184419923267873012256945324951039323720189727268066240624221811344050787332209523685826066647018999972224471877971576002290211249583548808343423939519586613026836365939616010737671884611580077215497189759804290318086116286487868470851598604857660013732206831347410898858004021304701510754399378809575759973663632872244662396481054734241121349455004825807030165361592888914067838323746626849493434298686932709255720004691113596413464367104428288174927467810728655604128625893507944525998203478095069213142782601143321479588331174850916590695602858301933998709617458417950774878415074665452324345603799098789863000285878288038477419948343778460032044734222053643683138099420603824564326572183021258766379264277042069457334678630296346103540438425840626245227312773720708883439425139702070434017360977948352523528215060622034186298638277567229247640504384419247630146919823042245062448809530296773130852689083925570620609891715375254065936820768640830193053849492895212938357727197316890239926777161781774592795170240204199843644145453190247507869785562419095634441082235042452141598814241293888520268253071231334381378566228692367418117421407078953896642287997210281292459121832531921104493947446298865372676842360479375269941596981403750204884388342018092988425347080417479543151986604837170108559892848740135232760574640376793553589027109448323997680564874582311893419921301208561112699238898178639864711360709789065677481745307640347341926894723267638134897938753137079613088427576777220216849130408202520006916189700199130477720890923520265878587377308842344108892710909981998169013635137761676604825251225566092576268584323840146560859220554591252812856907005877713430666338792627269299880686010839208582624115541574366889887736295936345944229448901080875051609685262974956949025732433435615768832031586062674384737708264753444166668866057179806902169437310439213772546894570479831762918908891160196252100108206858537588595126344607092483762892132768705547868938186211394241794286438908063650057026142994068264673917654733144619498484293388417011118092994332136783189072295572797536224191647904857094078524037561719668666937426282002256441346260318826527480348031335378902546013972821355812836007164590843091038852646243961239283020280335668607505825210343829666176483643924162694895162540421759996079787524496858351883187958464136375774910407030595646086350189780562458539730384920434090971813856861740696158120232291276352300051043935815453712781832054467862173410280631854790660292819094725524331022243912329854379732084602423674239302454045425273200023448604858480354803415359034491477675155756081250453944407447098130281416269694146187700969850665254765104224178251813346835748837031590958461352132806222747612400633014742752142486211571999450767128478681849869525788553212106632460190745261056680858941937628176788227175778984913526644286220387967299172770097211198588525436504817490095210780448570278608428563482535683636954658428679119661127832635703355380046369671490389206695500743355870188437333647498597019726480405064854974097023968405813050381094626366938204549788513945346655808724550002362602871344605214539103032975930358082594991806586551044086381758006963158934933312182476938448061708282288155231272145271216095577496090569831909733689312830636285078013290375008687923167892188104124406642304240128990400543115053328858331292540833048670771442838927191685837592529350740372641803303262240551238958343902635420850010858142367812971115382126573395016656727302329229189218613941453940339182014657835206076424195580779232811402379951704649120306140112733392626850476160757329683145975846959111633763719449628370933921876397615293179954295746125357368023225313931916146576699424275367532085426860136484945844247440115549715449426395758850497721403840352783026616869346448202013132422506323868685417814996115487201704183777315818243102463930477199352155363402077262009202994226259979301541467899849204473318054152314227280897459744065068853774022383475386471315864130478920162007466631212727838997879482037453231859764045095789426268996607907306387272699400101418659276834215504128118406645873029930382679100813772356106839595566899564980525691825586799319852199507003663329009969828003271416806190397479360044149430852668135479558683944174273929456619269646352730851368020132790296603063075037590184357776779219292896862408758939283729167495203213188389716065033709862711050111008579872959955284327449892585203622136278321513160940492687394873980513060114254928307115353946529597917630018177806511212295598982901393949310077939060294729431785351376987256893460454225308092015320544255714815010472242122849792495562579953189703886313057586648915376720533468003924006957969577801019117665910352411768636918574919505126393234131558920462443838505227008623690853298906949224796339835162326289603255113352896244982896137035487277138810858844618023302601215066094711014549805275998959985116987098266295798946085044001945916495178556493163639960674553654416368225022808636714263578117753786991065696007881299972534707674811367446350350053909043803420272401767624717169990133694718821760216942976638056019551708596955935619362888564929274582884032088681125983088747511241246776193381739407969831965481979964309987592831668160530042244431985303387110389165508935262226452057428874545237748803882651626086415370685681074402995331498608221733716825882394558545288385991133924883210985338942079035619612104449663510957165086699113613460451978590612873404913432257067861916714642455454494301385789340782263670085139846224384899807504498346348181639805359060153829841824380903810368013466279722470124633243511511214004777288715943543511468349963540944214258462156382124209259909427529266785400006645648686299310958898575628059165322627880076652032339759732366325828338009467043286548493896784292915023482583186138557188511486841343182066511652791502876440442821158534141233356397137068853793035784388727240311621690815929658072377420627292281805843889721111223995280006901398814147741917471077614106793051496043886571737153598721281536672973612043068266500808421310375397066518823496436665668916795700263777865635250763075640317039604898872771919732897534757974755218664132250824500899552862018774206343989553205929855502447176753700534769693506505757864461612851891323349422774211444609995450689145237038879445195174486413989934104196365992054699750081907572360606716460167829772783983689286581633590432679858670631614477800774425528916747688479418950113943314420632146322258667738490477862994100935702212327149108415217298265108749345833836912673714408782658987341395057889432300074788961776374691783409042888007359637400486258913830751415513187996161786040506113857466122163904833568627168897788411816570786825736269273281411009479745104595961611893048378430770945378251670024143608965470233193398731788680990792781795712666581311903705756541459908456987889717013698210840466303779657309995719712354475335511850185319979666451609651968052885201964709966808165174820082283083138818773190476090687013036574729577306681483091365679939926662448453146320465022428534564224631356868211304059264456574151328847373037995110781565181737617465656891036410916026538681296326384073647767129385271830956916614770212074581008818777490178477533890030703218243851921129821468405550858050676950726676935598537629055216179585856988416541681677358257038236434013578974710876021846428455204453473341772850463290110335472769697658728564732417881419213580823379539129066567697723836532090299765424454800563452253988920615432539460456114671286763311988892373333722727066157627738302695054665143001002864121800396676599218650208973013724880717177289551058830986913534668793595014361644268664319689286927622915636549096807022428736782326794366540902225546263903451750861731366720449621880391675121518487839111398257810275501636459367722873059153902656580806540441580553904538131516106754386509440263158482872439506107506429358544645405968337838832600266131128376426565084067136028770626254497485703534668235914454728949082667976043165971555326182936348021406447825220886539796822920727330639316138628643372551019299839105306846523715569928951538247668665901146232287238536358499339629663304980436986464702791229942726637634013816671112038531271582874141271282276862585876511443087147010152306534006187302876725966362896297971605281087984869892273080646142643573260420290588574168834865607709513152358510826747269031104508258061168310523790133531691553373889229085808711322993452268431263107262220757545638553622693950554376871263781622720866395400783522661273430472693614031178111558791205318702891355086153397850696439184049370718581176806781358099345410417370819861547979257277220912515078740022120407269791286667517377490191481696954816260293525074090212128582776980460961764083437118538812518918333829246971308014296761833117436184401940510467366643850968240226817936247121983549305834554542793293319684946994188636490161469373786847777066531176145943272047697647408659542316675673775795561888216809770207575117158670521683583678599834891344969374782985624537680207964287312372180428270186995186439660492774414383046887685973599757310545255274595937261047245552416918004072987549426327586820145179521263351315655816767210922968498649882594669862918562466291346023276043074275824955068006268628317454079126949870243445728522181794166214428269176398024136357141689333038345146157467932314001739780268558444097818646388670688261199869868783018158243677407483990280105527363061635179980376716997663983427977948416119364552861632843701659811258966156077672406001857720250630181189252726085108002342122854353208318093013081709326795052032474899690742787196070392517991102583344383756330425973951164430501614920584378250433145254305545211274372927150288497868049048685808809241022634974050364014128345698623158978993631890427583975415125091107148907964848492078811072415620749187656881389614170013784997706422863716985353793525547799107917809398332887108868550346423687966194388254305716556603560260619669531592081330261439560673325420574573545101492661000110964850263329625085728637671233910221604017804085173834033484881347654311171010019461307447353638666871803886138910898720908190064746347946755403378060818717816832074622061940408232387672362232444272158629205284395281825326784215206865487895073136971094831476937651446107180482066985885907890907910977416245571352126759001526863019058803724455147419969463065911698299267124417887157497222464630627101678777831728361726758238750020039502931280785155815117723064004811215045465044042005432107536407996455339924157143185274019117608473785524932463456140832063543826722473141034426968416300426311745870046549639059494332282805805184981124630065356336842531073587075886043720791627220676489850651576838916141881687915190690664797726448230604486950467460541942768258584715360620344544921389149136757994654544880548636269102094028493841104110648982985606751725048748324364329912988373912394427974463198253670787346722745449527677646680281876650337760829529945652721595804266979585003268256801682938325028522444380570655168393757864248769470692548318648880189948436713112947206485077753282386804641778296912176012394484781060153428019026248786877519346192528018651289431530571662478738012525242509059952409802502993153139811828148466884869771750273881716149541370996158987489386033928385207975934866707522892367066041097807606764874422356549012025844227252359501962698766150908703025488846374246553200471837103232404911166979759010211364296950798809166377854984896657185215165380129660900881123873533078263738889819441026931778916610677866286886183861342832654051191013667683950569182067571840579622588666761787075360350262477284040741337509593291964598766817427066268327410120608194980859353855533846463725370164946292560384582837348784624168406398878467218312794294876334452240494500208272526355633158241180488819202802797573805122423820516746556696767101061901647662610731124028240518002274478098545970463582483285995152720768960097283879721199517454052042038259503382640564128150436606917966575493255094213950063611019212663703959339406978082224040496532684734826779803905015670140091372215414088498474793151207806719254413806530356567841997635289628115134429947535829784933620223499495856655095462318177252771565550490431759934266044738527208303909767943501544942525043542129161512872021853548280857050006761310935384143770465056241065337788833231118058945499542718313000298837233883232035207563147368345119948100491610513100715101374658140736647056897713611744112650257935541026151490451078802721488521001584476424615753370355514537526988364033005787686303952422469290045886525704697893104358078477555582444863637882701175216838872508268100209322364437745329140441421960712567263996744449301775222653353278998992305556632426695326350453617637633263222966971545315698218494926987873047038304373258572221039341341626704837542212661576303349886083471444055030921609012035303355233466322679448238154202924359849794757960407029003170433315260318035055977099317521647997519305760944134634432619951455336199731894256741652880881313502921214766258780212212232657299428499806982830570794080291402973125614724799436384975063126744403076713434634200095512224230724912593003110742079436634012120822030726769257238523479809567811936968513882739201034823701628052739070553103231989683222813723841689672980321782428862536453325744358064451071765974564511220927473209253896635330924096494482297819962710791571640164656897257380818817727647461339428620768732330151174411247087659934430026117430406731172832555642105874260384360377896298334457392338987626605328123135084788261920859751739567579082860453222277941988192667715300629732523723575733290324257053291057152919884089965611469702462452616874384085989332830854238914401556697047578638680464638186740154072259374552295045316806942706637940490274418843292507449906834476524470765889765370817309688015033929275008240120046930441616760195900137530089806820044401554909485116508707583797393885994863402349115154550325790877091898842899124348238827922525736590168316132135396440071135021835602503696151845959335184877784072237098609233464818836255321235388909695155939705432234135440965751877807974098274886868863613085063253189955054154007643898355492651694413947698714780666628049617989301355099889933243438489047459336091043844452058744449591936724354274312319500880676272880119151692746873745777562915769003381958650427915978548191135232518063176982372234984774833221822470520334346694428161491221470672407899197306091226000880251259063887471419379232464398994815549410945052605547892521393889824278969752687673950014006322917339714211424618339991172931752557396786508234061228185013594847277249161980728825112416693755441430929946183604563562190371656720400424225536266102332899148473675556032030342506700949338182584005958426718560061571803233333175699887864421027310793123295268312754783062590506690729010959184730537115406962156351059545694452145016413123969441273629276637537883321614774560288789204158449177555702581791467363445021851827923833264093228204605980590242952161994296070107018285431084829197012684371792584657447109637096161181226009475928536937355420368462734193714927348837498948185887197512145187844308657272140049716178916164608062241195740538000220569349159075387000006886549010395510249215266115486560849168339960905991479495350913206319356256140494301609502893762806742971320238259718681740929533307037105262463924550783386796820233432701371728981764520652886976424108742351839910538346948350123433498937533145438004811472005788002734319590392993359448764636426724012723822576689173678027797797800297666950067398594298183176533358179139403824689495978777391941937856479840871355321593656852447512310688249788405754126738276703240418771741671995016779403113127506553555326593662139273931687925251811541927985983294996362298047085500491094918457647269274644342317456608574719726474694398371716207083151963648909234775696317845610422573436942449449680241644768580130860136577302522051886436520103248444885321282424407343841085752776241088080434501319130804611714171586000840821135885896100726329872291008345211488216932753147073266599094662303948825528851909854017591211475433083349674726689429056378377710813721639488473534746534643877846137880656749423179018852741112894276317077492303363245042013573441625309506058225392628191071334919805807087787236097221157266699588225575823894224238416296055230940929498698070322780253620231054424888199583755105918188633992374216241495382793227204079666615233092610401414779701347794964279432503196972312199667331181788833374845666031294739424487313920073091197616031891966390894487029766143692487521476102250714025755315697384369793727515522332171717006778231215632589122171925847612420801206552811887763790505051453478504919503428034908909306532902584878038950559661321089679958166326192393144471600371734052597996879613734838723834027267771738522162672444630690214861524767592871487433471629909673694707569287046863477974912006582537820114726614809483313669568157955605137065381740510904179028355546728199208816712886840812364732726616244375292537435544572836002098484541312147325432481277865253792390871622076635987380434313139938157850413805126635738591359519647961219827832571710436125463957872937425584503002860857100202895087867023655749801888416888056947570446557980439607274631028645898203069815394438406212369974548208556153848654010125565579318411006273805534787499986205356078457482927180462852725010659223920435155180856350377549976669868182755357026318033004079660044271102443915359696190596807613740136187167129078156982116358651719636032967457643494000947078057304954493081097217481005338101859554917325529596426937235508884015988100493649566525244493114857096725563219557097163055979176194074258736992757931776856431835275372248321827688698263039917511835110864253260100946657418775410387960105340965848431314662348405467007106375680635616160967479567815213047808860033313134786656293875550732055425347311645619179780742879807058681728564944525186720509000826575193251816897593034234468060485377892842673663865382857219799349522951665769542091774003211848083453171193982833726854258419416610614968373635091635311571882963007684655882032907661306845720793341433494726630418638600150515805653239636593928896526327742720845513721054429934783584887885344514892869511281626632491419844036491151796742184973600028035879334870262991613726447627190681582896603583353172487264778421684115756910881533023172408976160074256127610154104031187982473253920449625687752088418980733726371610341242864568003820008975054125707609824227561422870056622863256590396790995104652244201822400997597513106083649977019050603228514292607435657305979699684501789113759059465039760672560094380728042207789197602232231330671426033393246703756232244674241496412308221407812253042972824085416846644542248048756503923956960544944792215374443991971927689357206891522382997539843201257351309212716690512201037322133526457568009704974247094657669000628784213418841191436730998335830119255992208624799591863201477188388895294437127740867779836777548145193761811312189233351514922817144254446702048966565725418640258034191540307292868569827152285716360212462932588289111700412079068293791566986292199974979404131068559501755476516031677846500116241420352883499167800911412488655627517391199482686624363648785240555477026804950707762012244940590857004951482245477486267933437807335064751011617571655274162209930168542749734553471363094623977263034404374078893891803831147322374819476102009812411537819653965257373550930753556920904662774725166740112902119087832038440110386299258176244047677147528523668872401595428550626856466071800714396867782437262633815457268574146478733376998847264609724131676689355914498462627381975421217162280869041085654845151736785586076815659653441664775877828015896134275916461608181999271509788314371388058162984518384728501763164873106361205507397074685706107574098060095451632682345771797819353014873985962572466777483504927466950533288414288173648047744037020647459032088200950234435928506448019372145877698356647740295714240963419922539596162100893929540166996308215912344217454776579897228440902975365047972916469185686851164955635176237851795779636485358831475842161371158154012806345887511340828183894929169606057855252535260512606945187345370069775773214403258114427290962115578667762317064673982820134803136744186660015363306814626791924245532506833133231237497165871873362958630329967974081837677086717091176439537994167918011503161490108054968735545890301298847443991675185930383877980821752845386664463648978136013815993178932434410947465652000701247338136470605056410785005025315036990118278810730482456629859646571497764302631592847037795331735233744291390651233826841133785869973695622569083116017635254236973481456025919489933039885627363742450900765630159214916474957021480003160314614127226321259281389711304282517299337948396270493603920014473209266828287057784075920504734748297034117045654749536332708224249266885602550929291956432939823838640434008837323021649565794040119603484812069607773107230556406489398558439069034408754139919875049677888837048735466634723707588769651849870409168666845889004832074966753149092016340992594583398100871745771782800622634346103611250341695880179103312763843910698234665125068108104514297346387552954284848793109801712868480046058180056762992158961543876962692890044661294869346184845000348793889673573894706300470068288092635469523896099557967143490140639824911864050347823084357548865485122011350466667450198905550834244351132781942089728392496949065710077671870448279378031598006574076959962512818652721374263593545995178748510965155926239070995995721362587200837620603475726350888617270167328271370855468089914599441418660136418599749898740637636911102189855551902139001411643727157339370212346964702271221776518664011733608335431326855310380149209224550779390709917219639276913506685606424859654168744726869494397569373088984023492466325416574772493687497331568884847106813114568922719969922497512879258645658156013623325643736749393641625749322635896115537759936370716813351182634035164951853443968651409056497288685789757647711064755026096651106356905247099042151978207031842254958356902073299790022041567709327533384551141094748379806912707046753292836585451833617010944623776330081475826554893815395002935525097686821662458285885043622326711600799370731458414844794827068220102276462743196919274803095127399764716525091040865224496314252318040816044741551909108509304087304083838246200432321971714580138951038375305632150116922169192458973587770035794890703875406378333919104230963577147754478299057102339655893073979638401514678733204288318928362721799007180304404081204565403680284377084248545942477028636079266389033336007479824467951960110312099692282096898258829233400662786904780183621573346009877036340237999421415810135200301443521986709378982303941262390540911027660231896516975288024567284313686401048560524654963328567217685633605281272379079166248895769049536274882092000256269086196388785328388961566296281810414739403343190688205686145398865062709728700352649266386253102588179152270261555863093009980667772905029116406776571126891774851522992820606924801985624207283257051435956039392585137686017336013725897238754332361637900269188879255622577454698016686349853758924093355846803147308089589701882953280067760169419121242339397544958678378846966416175455869804325227283609741772750675640893542261026628047789357564691414255738731995526398557752829758948529968160314805764849842130864708983859582721426129366997446520330189937887757963053386041081867368316704538202052944952290750901544309264545873242514515678478221602958052015964481891391730703981625463480541567338463405619494213673403081314126293842077628694103418013912157972227728419203464015680479780488332333739881429820961360883118374971818659319627630304219566904732041476213529692553509826825393682842034506185572984882069249197474009492673401495585313500663116804728902567509351288771853083486505513188120546611868916997345932156618446377519804273915800338752604811394729273400863887137300568828902286110491929151078777150167572586248098763918577774244294287174456217255765134687068380490016703350965520704552393440342367640640209345352246378711927429625712658320385691941772211559176873321082327776538916586155569934736077602428968843444369649809442100173467486191813215492057697289966009181075249915954954071344908852275936789647191659644657111036024504516453673855830739493584509265733444970428243690800219178663752508688720459440101822212760793892351171684196885485321232904465870068420111173849450534441741796814279348041053602344664416974374627659083395700099861205541431608840711589891685965877169320560378941330208083857105323992955516287939941802841946806355345972321492554307301914696363884245039598750406968795853153070908417420451118106157157084408460987963995225885113067936115030128531079655259793310804831144405894163055575335560918346078663272641737272726394595841761448957276496513436040764880142695182399417488651605171577087333730791644068087284880808569335216241352293635558908180490473573046920422327075468223579304330191303699763786102303805083444479069239388260146078546606735428615546177633547363364634035132742746317698240488392063408757594721190434416401338610674229966486433684386757431472594601508395750767392137385037352879801435592187735291521861729419627560479934787510939180646608411573487518256626132051605239232898599401361414378236271830121236183721822629742223463526691703249197112669271389077691035549642450054934925118334650290383818133214578254874134479941261613816873903198508581162902970763917933533655317834331625110491725856591325689391280194712560382402154008817164476008593806871205074779530302247040445687219943127146983710788469461368413775811945379067173466118247523634953673752667532526437521851838673141953658300558517956090179736479365973311308306250373635722390576036114245374975193813637291697965313481616122730266918023988183818845285474687386100891153653357028801813582283643061894215813975323816881706614493618160231278366227190102465140760656510772443565850431680453636194862087470674391378574667426546349727096002990224086904600003952293215736989232394978193381651200146118566196399942608765877824512963113142607908955174901783340791154015910486600067066865128955815837112802556209832500121937719823326152318867560689240393409933313295263309975090660308973559240963653861447213641138695103282156099303772128674494294091501892791171268390247112224203180120640835818077438109815483846350061270042720888946093858836326231485503259981869532267397625479397349126437509207784545119548378182789148073355878655331173577901772011565163544596472343136989544661683754302014659883609906369519008266035466136816435253779782872436454115499063591432277711547236250147220324068402268698760813785294282531943446779508557359649486942689623971642866445037402307790991430602777359466526982953879005204342753284300997593440571744244528981600036819584041690464791615150887792118555106215450630371538054791335867456220666923485602915986916871786934149158083781223393869760622642785266007327818934293460006769252650452345756062164045140609677169838741456798604661161602797108529136274236775889037880643622832776077167686915047310736017547358610874518573318084530030324810311752193114485363881550930735459519601427961462328021666726143786498633005383747415677056837500489716295539948007384519613005856999088185200932961718948189064902613299860392795991305822386539099941538583298813543320415585082491532708641464437039478746053254314918175637680891105141684970426404768133713379220978051918831953179739097326848346241046082696733451103440634984393795782922910616418687947290832344166910527704533460493768048651546321510397179448646666130176418535349584033874733148426528387105339413064306753338038767596782419319083410249982506583677713292091628633738800141398172625899672509228457923296142039430312952300813034658669263398566302633388399939918785558238996492551251347546758250947785283152403031802071616951812715806168405113642206032538298771933150981355705026125556497593479149789266797157361093085243236482006056708587241020489176895924815654118277798550969905411492259967540346720699333794639013235774937583354518463756911059019176701425115653844658727924065195549031362262919359780532221009641753035849695779491645100377722203304405317021971704512392820185405907849658311540350615044323698734137474261364209041096947638993565429333146311544485467691066676680964198063835700246986075136762026590707004327460520139622437848328788564953924449807451928533610572865827142208772733305253629303722270561405305096340672168893012447677054688860107267004298934081704073419824806485690711678270008207572924012397227270152857257123451853924562959758498638406672674389417378738973001919404037471860442474097990543578868738370247088266791187717834743814153524126470343830350903166839379806809212193560954854705542292539138071088912649322204209651009264571149211023776874000006650539617885395847690991637797825714025832349351497532138550294164372842260600626872827674827283542326911580067533613856700926438622646583089670235205211828841888879982422079093533175908215700965426148053919184540151980480318482231880699803678316362714164678925747201910866842438565636727713099575446783551596545356638404703297028109166748641924526046843391852734048177400664647125894420319246650855286341906514845954755493515843383232487712518908889477771494981066025054152594029290946811940991969617873627508085721319523176579307348393742811824585230190765270258640854462057592854700599158930003996728049559042090773932355230979541735983085758796303655245759969531060944935414224047717974164138344107571226004633179305881863901698226733367625115245891136731342478183874809833358748242666517247284956217230371093188580472613953347061924674249141490047223976466518330071411186927817113195617672760614846152226031671813928968207300768530995642109239514393224670604534371648455591973905297490116266644869240250099051425189686381334974882220955939841041714752807101910972160605709834872081316634093235266371265226423550773668607528337000007153814214624583613116688674497166046308293814491913961179581927309358776290893190404002103512619349613336114217329862322897346200469156150260631088914076823262657733124526558388070282504655072295114349938200018369783107866369323802937399307660005308015746409425836790983215411306318294986192004089783574019686488218718713894916880330786990037353635525944023743761286692996480384199764011699758928173100603928251385429969307814176470435745973993813321852264286433194300550957853276790386778713627113833057759518763070447438481149379349010510913271057943904060347882427719016520281381308531073463982636777397135663293428588266709492101540610392422114141616100324667257567896394084825564656744458215643652538962835957082339713668764993631534454578187394298274726764126790441018878915139751513365007365015571601017739030858158920120705099067147591227890141385989277252447896847232324064239293844152484566297399772602130060925411282560936490031937721339105613112548917236699347601789570503790245678545087324894881476689321204876778325302647142251622105618234628250360719435032209917594550185158175513617107703652526718139611671321920680649146193495108045098192649538585227759473016848922355969467031226146955185189674480802960712991825960514544861475302086238378489275185773220216242280854940783794001099595511762783351860219760315103669471765951785514112868291216899269038333072632416427523054956880942010152684146417380141041911621313498009109925844792332157959452975354848594701106729357193946187034407404783996568850428511405624990156771879931125405957608378503902262428391431970853082017044815130014022776166830786736231320532787533182299731851286791745079668264545490610287884332560203781406960647992618382630508082789153033649436288676153131659263141672773119469713653571813981915551187641497272665380456111481445489157223067026819245603760266793404342284759557804741942028650106881086070853881778446897989864240565800700963871517775938978831187173602544514644612109289124885508438453970198230717183128672506958130824532948623121598343897835979361555622379855701751854801522016727648579568264295941996020565822690728183366794738795072079958418113269569547594205929989296146816072079218822012390633698649290850737537781312542959648197864748619396573863900799664963668742208976628662325845267236179883154603759505271964312056748615682227209955468661159094056444755751793671919299988012352283960205347956779908168770493087075903759303954074961041349908533292204653072780481614296654842374261439784052794114768707698037945307377844050396009797382732037381282095334788279004151873896188984104174562252545830096531018970392288502622718007681863134999486911149495341368413428970607753480351615688379579626138530519790991986493121779315738639675420446535863189968847007814281188062358457138656081144810647434446433457662502255834592383633659496537743315544111895992506605625725575069422125164727246299039882158300048793371749949635219880708780839088205731597017972547874537519713484651377306485600617686117773726173998346375807494538989547110053301817770044282874397978691305659315777882579931059650307037582772541285803041430923865915016395579608813603604517537333960169147475354664015459425414961879915055858169722514728597113435456235440397208618334817315173105165523031094444560708954820268042236132099956658789202047508942757890385160734959033172881330520489487970533706684745907523376883097048331563084647123205503984210294703367618471494750774112917280869667296589465724419009277312375585738098221439192953550807903542129889155113200675105333784443234406264241515033184816295676584645268971403642010523534359218420359019947727122306269913975003845477804533271346085617276924418355121052755012866455908269513753657159056885379463011757539319928236260809772673470778709465620455126568543967362522280437982568347521044407652104398425559290515481600372432169575350871350584208438420380595838265296651862369144182272004094725520590713532882483966841283187456789861855927861644479006753972563550679972430250768601679033585222129078574189186641239943355842973884493809875889221442650522890432688597958084678508873841395838372145068970944622735265861188163747136094015860221157063861983599501832538902511234025036667633588085444501331288191368225597328630436587631330074900114449106004464747952321187883322514223662147159763441712328954827952421791549640416200167195155061316153975659356090411271007182813651140687110269450094939377874511398039558734936482143591473461879459289614719923770130589785617287227242180581052920969120269180188606287077023267614774193772421799965550648337264225175503805781764539494787285850141475550195251163086800878672409425507470870384215569102422390037698439000798532605763755095655015811285462210804485817953749426111984078590188806516465544429703121802225639218966946582662462379502466196335785285151847439328528821307441643779210995209776824075016930098667165530459460704436682389782496679060538474732068565619031912932676117862618621630004676041347880730081485156969064836552299307776463850125902880863100329428013707457809222337794290742546481916104498657174974617658624325213712908518365819686175895278372190183789121263346240822668630475028849299953647706486691284224554927441563434463615877048215600072091534752471984176656118582302879964667047092729975939882014404273062101411162688218425712282546364351928370631003101306992945729521978637517363794016985718244437615410254244479811867503875223352737412052800341347649657232657314903157973981206901428744222523276166734022216227689380308041724687596960180897446491025659866803267953280236029569014370773560098132403690943154600977401848285121680670664145182405854112076011976640034393767011007095339743854872795145061392873725128213042830806270742843427461639079278378857153557272822730117073335616155568553017341298730042557694897243109658642255955859062945643195858474637928943077193567437048196178594413317964402870892528105787265653592059020112019101574204449291359315904237361523009638954446748122280909743854446320326897496881267401618150949062763299742966655291868988108570982848757621617280757511976689052804271136114858052711907106794281396872750095154092610564251525234858247709899272813307006949595041760845485510083509484403013871424670331880727278784366412375441774295701789827437524966858836591626261597417104758850290670467536645225606928575859342775727437505349544759417170494485999073549146193992688092130935727599252638192985474958654280577830337336170102107953092109752017816402060254039402183010399466597421342071258875250243469012334914738482528374291592420251228841990855513594013202476212706326476786036951852362011438436695122178788240801465193844977696577248623644309818916141493310020005430860829737379519601620044373631395160199468031589926212128970267664644889042811740034014182551077309361484078251679642479963073123286303004677283621650914859490149863435901230386550999765262290492621021316795113538312306334469323012437746781052761636757350437350093466451571161584761379773793800089110942400220123468815946483064262001097624288882135569802147085920353328420354172460050143022862756150022650191364385621740735976564177924918346304761715199868450862643181350224655275922187627257264458968497464164663281702127936490585909821403993276680978419514750336246247839642469889886809475250249134900205352037838082599447280940359578549675437157520192981421331646193915578279370218655551223426590735739686369435875945195024768077383455829793124689843410735126666783930392563171535723209163813370833356161176159154969209795810790748893788452199704361009880196353079444052754462758717507350293439419103494063659051351017533173998999731767983314161364808802564362175029838765173714827509734308092431599437523426716764225870892888330683261348513128185937035361886123543369473059705309151095606105611162994684320985050260238723871642665574529018810589268896819096546092570126820790443195556904084568694386143061025666174696762043479076993371097040205625017370666903766041801968748329918666838696456997641744259958555071741128406387626101984851835569089797441367276298304727976759168765474086327719773151692883511576865779430874457833520615789590663691909865069368002726076757282726759623465688205123127047292401815169490573475630023460085644547479765616751189273941063962848926232264526818502949340098172270488757730866127818438579772525685336318562722847058469282199612107424896408851997583755779403999139638693797056709456777976175077352977784484961668414530745615829591203445904722107850530611589565438101249422674206682056128487373476010322897095193414874053092492792937324227616338247769587133315918061639929756321668092301581477088130481364927263406392437450587849634457975065726899581442777147070650333388957086632021821807272687627324060481969636263379462800424671894119816340616011106646002015348604303914372772862005088212491294873758172356318398045321674556150826015757287094919580985786907950308024944424137495936595864392480457827071592584495992735887749770436036493259934443395886291677803955326760415051297873884585655503652875067947726799883533171373580255283106368930832657090243607408847698967959127143955137865155975897767139405856101405929777824144343489705863879637257157879053796571548798704367508999034774651798486169227647526728582596575754422887654664567620680984291374459971677851939559940236634602181863101044072476313082968980821569875212390771501526437064223207853191743836913267780288851099908061234768628874665887325691876824014631557100407577867056397295623493486000299276259213190779082583357458807096344998205466101770930396234613317967389511487427530005864125749028071439613710456120845574671068453719964521003059837434832866709275965108778464982617293424226025453037554656463143302284188805400567545139208083030358335332894232950381414537308156925617475974346720854835853421167421570514184669563230513378998067253313631134947544348428406071206542952047644667374575253102788056347459250359095559550243927201569158558332293020674572693305301947897206970473683708728255628974967575067653406333030217464915940895389147840455890772983002069718581902413183496570399533739666850760727221866215473147722412156119117667298205165713885032474986207184332757310997105285807642252617177279998141016601938991499279471141740083329173276124519171623442658545997997325126373046299289497055229677593932625558850935298969386037577898636613721757427797957226930531818695911011206901257442935219573079619348539714609113974653697900777220159221871000749699612921988989408722526849939455627716682947543373309039163191948762193587027997867788861890976304145220209819815459101816493745789520575745332759553817204611149037500808314090841796755144395465360790688289076976661496363471800725008552964771250916872462829178884593517815586588292940501224759560200296639917668555587885633946257122592765100193084895404301089664716166057215582315201375621309069381737831361993921116870341122202976406261541614876568510682388445542890929248678833630656995731690613267908605390887005285804170011104653077038735094384959320034728235116563690972045580229783319547294630159208255664723824869403165073829001512874647017438464902507111016856755825444939852537008498237822618203778898526158688679196757573341174821243759523317587121430688800459229175486039162374604301204361881185574930272406321580885453094685981280278464139959959107428391833611622001586209750125881342029272930956826215372028460347397046897026747707242487327155980400344559385515743095528867240962465569924196101619023995123939036041410057248556314574554215459735076416928335492418882741539515826243382758155701357555888510933493529927957412791747326983005339368147368754468501531434836448900524033975384924388519104966713181241684233986654056519971195780415991291917481352333472891123775054434424597841761070740732622397981420399482163757381691380766038833841111395959113336005607056298476493328315142914300668391316160733185387153272690643953987759016894757489373093116443923888413768973187894647253845269608246553783631866333601853545374444966636138147344541460631480567054694938708115449260111855791828906793360231262161227543615101253510057142443203696164976849991573272806254697979791659578586310670853960891458600237042591034966765265639062024602110942428358094683634876478797900162233191967317800045100531560871277883853066102271130628755079735121143067190793110580300476380407740894689162272096479460148818280591035605372122969251708177455775672593002559590118503056120857322844803269819632438250035712085140383613593651136262322500327433095431759648171075495964676089923080396115028034676975137761318568864468315874881439156939474335533202840323346243699016366185815170906234583671567907814481720234226362602172453393831964619937596607924705576275890736027182579753812292945281839094910326893741453191846302095716993692977122739198196990419376945190553304204591504603693569757223370394786608256860017172052389317608704333124503217186179617846490889083826789560594682115845857978192145324909386806388260801593696443150026846951705742758803463468956492475089034885096031040784794539962721868344718551006803088226884658741827650496226654830846409750746984710212912292010196742718731649486680192017546039420237687888007673041853544816692287294654835564470763038712148049384257828663292786856242090189466398166418925930681913442353676621217197835986128945820822722508690350700263305540561416563013106231052954298344587492570172970086715999483746475143564875112816920114526684844375422215413306140436412140021837097408671607594358034644440433164416909659938181222188761860560012121264966949950087954022222995348362533400605561665270648886131252716760504041154937546911026371034187502479583732854895446375202708313675636346022106161568752337520678402574685242155753117081130912279440574186477641760074364550606704031021137395786998799068064197744366329101839206854980796672847404764912063028506475326895870678726700367345516005879470007200878208840972184505876621795593421598777403443161811606440109052973786546004982669599753689109615506699763966870117833901597778289023045923107227387906461031924722159722136957650677092584957575605003317544196282701101897262235917646206980881808857219005529033628019601002325136256177642036099658453771405284855615500238153459312621756468669523231309290953422902336723354244002401894470306628652327843507009823077722842006026311504532791963062214654997908937039910133711433765736592656537270489734427925644094831286694600584589547216228123854974520287489437074338070628338580608539480770461679251031152248982436237748802038137557793956574663344299002181241944901657171701822422243161629861130640081327139696089055985386219569215873772621020317827985900030467242899438446615632426293055269365769246476713595386265318822481742527478506467937129091424056135960764603607505654381351598554733138889295887490784017094506727875321462001451608158172272479901190379895852434265833818856509305817826121793219281329928390194792495098716619481949866048474349334900091070683025418781498482312318752565783239868122847870348367416014705808437237750222752838288472824401308069284457117685550802055274605305402572308848861569088513606095255706610503095805479579964420424016348646658135586862605789044037089783280932591176099657076545791632798453079407028067507830975366703121575931372135688499253688259562904760443716127430059602280264757699579019385839833421000156296680774110180293310838986298837543923861225170708087414868639352183416891154987784346291798310003162111266558578339074251552128068374192084139958297083109919209742109479006270476228715826899780853614101331507667055143687811815929002463045222935995082007646597360215573152409449127327321951205382016752951975613744198671476646496253330831548070946427643250980894495263674050120946228291314906451581556922521243693218762268537805075054744199871196686913971197756022246555073325744344752223302207265948258173732092998254133445946983137283596291199165742453969973722429163767909684191192992320742528074200894157163468194452905373312955988439325122005436337011836478319870606378461188128624292413166710948132589743734474608882123686897231338773088342859273323023491421912118271479652347021101012642628907338422445448159378793014925121835308382170236143952720411180218583916179974556589554543329126716902336588348312039868647965386725300180716504192316315706266585304558574029965859221914829891816064736784097945262053587518755231925311526596920330297231451743197859650019551992561579659113018355005688894138889172360861199679265284845095567042268255686732136988538495033708658746689870462026192430584431117724680463101354931012272878146529637282495854585424120057523281454379460793455957659745885057674212747631450932469219697016220971223521570980723017756181081338777794488210052089774402699017442547362283242596414604957305784524160824583340356733565864824018724095458116825635994243827962838836932081194994273892896487123372017948580038406817141410575051937434548116588954084490239073491066306277498248066683870654151318621404215730093295751586273288845595581048920611581188701243087040100384876525894922129010943935617745292258170135946389761227108615691576642702284287908613624381394439563953660291039355038547982444686345725964873042473931807833645020795427129733803299244805005670229399857622061828650073026027376648961029884106603140783794738228702768640647851052683471901648302716421953055969595420080712348684565935223432590423968439137443914338237076074626142124443064558373279653149719854484976962949336474063214200209338844382651401750393397659473563680390066097189552379277866029063448417823775006431653317573428547060590007079349524094358188834985561445181289312854283222802796627348166494610944037480613503696367346938201765936628175861231285234530542557399925967810268630561586789165312483240782117919598499406349514759261859802675101942059078509702717179338354124482550826597500473272846579482361246847202825023733251732152123491006992139413887163333170905400902032132598443166460468679037808333933406330550510332708032442775752906402719486654387772261109457784763950718935172709921336985013542185345018021056084456475434760688666721886073222478134295018429466948905557472590712150818222601258340520456453950386868100207006442937634464674319578155911868532547422266519965511064448787195391753627160924237974990198665286082773285520821802536190642464421578905325142311520615042957924609881521494253249526268057141499595303211712031663662120074332339666346680311114854312449077998106944712273112814597147547295756739362213865026871693360670884528726539090710118058445300284018540655307347704762989449233311019193431849948914132739531844043010363486386950146016772296053578385930290553459074018411512572316441981338498509531553367967877916094300595339208703684890315570617749373607587991818195731297915029737691447587639489774978945085559170761219480897057023485664711447550355565560241782200011704883881748847803560006073142240352323437618387251686273388605259446795290138368114965723935388207759324582231989918015721019077697401484333294920052338069627105323775390400151386727631314090086545493953114425815192966987252824232713782458257679061425176331942910231449285478415456645009490986957878018518768601411245744409349766167719997409160508268700617740383642387011960248965437952689100736159447669223711352132657433069392860922104695321354719402744896027896230007698626598396411971139017757773837975499676963150412656858173366760995177877992633078294689817406202333376396710710551564910715167590505642488527581496655444165252275563619911239979271161234405320715841188290572063732260089290468063083949575683227567696730654987872429339792667594981079796887046172608873325530003867018843982072865504336345950081877075634284183042156299397049943324563402464549899102137687413002047628797678419086724318428807501572671716040742182025183825151071120240419052521539769349356474581315122012273280351356713665981300382141368688569942144596514737114155991497815553210817407243015774671320494543079154348186016938424584216183820541793261838664914022208118705155405519440610828704544368429036050481884856949995865274306244330712363125251155524067879522728341201287596101210451099724844102017983468779821980214396728410916889323461833597161179367000150602446384257110191630778075788094372802479628582937397057175529196236562685362856798034823568352623169131297515976239899341962035268227592323417931027749988464145598198706413523042626283504197816538644941498791726993537654766046186425583179414392200482638477819088906548399939534176778913096708331346343083935154559977416488087746269326180840653839737931010008293376410460909829927576169285647002105345269696356425668649719924826101952001491550067113562821410495294659881713531288649662418532476814208094208103088735275247708180047950778021503042142004388479805957528989034682779525510970375208987055327698710120468929684721649599275898582091153933480429132337890222775547375834612379400240493685523017650378977965246096637117337411315573958370233362313016808301060856059327335851071171021232229693449858205119617571216768986910602157342316752965219157003332393785135796191170557596640859781354641941378494697315897492561957765042675755154683675705998970211556760312598946051964326936473630502377092468032316134022264323277687538150027835871603746882202943894233274957554626786871379575058619495641335222095899370646747055918481093388626836412082454460841709440251107617338459208530663050851907524574594421002691350841486833101668501679053934639023779193883900365901239639152857898742417046824581455197762085582339317321705320417017336035353104575533281999623682184609439233695560390737703615138983498886244386313927526571881938180306355477133692571976540129501260315630260931907775647102443965247026744949499003530394195386072047675977230348977675490968526574961947317720156705826876968005579129044950182198493832657036978841393172835797408419503083673449725287175203946685530772962760832741045660027901890910889494037705402684300966721587836855004215769443588838243324511509879812650901749956204989463635656920549293583187292417414200485022850482135709871986383021960877597077535493660596604082486029180893266317192373803458325916660236529696131195694520663139816793642623741036742793941550450179747904094795064388770042384860743031440264043894014592995875552252282330678662930868265626245149884400517248841346753429692110281752485454440008151096567052107777512540035268077370829399319825681628657970261497458871279942177677766247699679954677726145131065676823645793723007045611194623494770891992640894118319007391823432101833144814789430421148706732529210669639677191844361970490657552169389149716900835718579281645543410548007289234684645119461928882607657476090466853599757944480753297149650360660869304498184399434603587536414094018215170146124117569872213918457943193409387710357395659445995967683372518432488974030576523266233882329768632859392504103016058737521790007290370765848544957255946590440435240815863856726884749764784866379095390400730838579606948467931594359087331371701493760590104889913977755484342503692083023096288010120377431453280266683148568903128858526171797369542009693994221561729123751763215424081749566755893528386082714442611653706598589263718326809751740914235489714452535884447687964261966721737479614931875597470038731999804144973872033851357107859201897250091475863898674345172767040499843940354936738010942837034165543336253097522485883499572575175264854953285224476190495992539446951407638325658076547008383847451915749702469162457130705903764146806875019197718139090169727641205518169183510055361709194201235838769725679236600469098734484781455116314691575211548947018032019847703509917871082907054767355667542129116867848937027131683758595162790644571387417811776481836935725450944441276562386100956493934663607002677929342081122203035962098108142134462520753779233097118428295580919331111230342483309922415688885803108516996215430557572665873319070037435133049941875586250605110415600141096423353011193244051853045341839925549785780599172581839201809062056356469886054771179452776876478086547770671432399087350310889873109837098079485276625332164271504254309874990973757991455269363962309404721774436702113280756018923298361377800423869240682897369020928551928597005212716273562223653824743883742301409910078443312134842267391179175574916895586577292870869033499378706923590322691775375223710311433848557331169034970882043271469662107310933293445960984716645710159479807390483457578200505740533762129115153933183653030883619704866119274267182328662915278886278240844417456267532549296784785737399546110706418498405236841991566564137344318500229418878457407207102394095890972906845848917295787725307916870502342644276368289144654579701280938555409401922767521632753175670314099306335646937598084045809808307711487609686835260917980868265809760793966967795311218099394844392438142723003813858963440075092471559453358988281203175697254030412624681774024533369836639333673126348433331651900398821341839360168646569786317673053447550080608067734433323577042860920084290005974258601962670578936022460094753146581043596949127596939242558567166521234169823050631514816947905128730849571588204141475899731618855290968669043522134826849089716071460927332963126372198731812532115803828601010052223008420330706991222737824768650681787322515857308190206454610215099176520779349000277627239325259713067091813042553517441693410971457951023113886787667342393240802570823965404571894141482464751567947766279463670089279969272018494869068174338801053827712671961629047428811669083982668944226999436140715167573212692272294935407096055541986036847147077344858105194706023331633640514889550939796102593514754044203027138283880291513286155327434349974938324783233141013468220491278876843158229335136812856913813083199280025626828900403472717136289971849395472521851620431997189571423174488378060618802594522892289497247075764790678939544123399541656625958090651626469946680358212043929907142650979253795983034152431250771247414936115898027075658933499873567610300454720489042969140643606214045625880113189591067907916341497610364859993428010389963599541171183953868128851700013492446736533428775625554078705035232079420341256464088000495640618040014708496969375214374530796734995219595313099676298274046545121124885012528781459173368519432427138389960733139678911895427444719553863638305259945021350405097857756192406667243707707532975584451426441478754114935343091750400424583941445233636704770027276221942708001784428745283658127932713432845482545558095463232664138869931503136881465419661367971763129152620583186740816034848077100828395960501507394197321818145912829684725274139725301157987837764303381097162336221142714577046968955310931508024600771350512510905562405411897247142294933896500977650121354518918352752980706622289451530844381798807307243204969297178311155889578157345080342212815135171476923581328368449956506549897680390051618140609024028036396942151484615102361393021277223706460404720983266580983564590848260300660857233960476849372063060085193751551524383934425190864899132783946743450708535119842059608784433618930609328562204506604828895926205030767351375767163698590153475486995856926595865727262038485650745910722076755250539482822852348202471127186502440548235689125661756993232919302263183973102398854237596196547185559166883418107524251547344935567328288391484584362742359324719114013041588648100438186651805844115044244551117710341182547251188824183064362489434796247934909804101250447355094486595119198579005224317819020152554217198132568005087676595133519241298274896013186179839524338738039027543160743166594909969257772154773848165656576568656956816201627442153549507268384513791617840787678274876822963262076266317572841282910691124144402559588036632707403774208797651007001864353323186649033597523064663586342274776861939022172015901695092483714524002285873948578971516507953013458363918454470337722746955408876701647827644798660975982037517329681032490785534048920700491051078105639272980486509970061348970674211575961245912302681287928768766854247055087197384887628801901598219231024942973833810983560293436347574499391622623030547825527406223170559842790373061389891578077167788205648138357296032570317437900586792493182455369675858861612298309557561562790844858642453935989785392611720660361742557399995754917161199456963584056493207567789604482438036639451272183184409176196091788866355686753773731514480894708507260979897770691548228744900180408381771153054384613350930577511188944577748684587863200863995931432974175127248425060624717450601070459147317069687535044431611513773840475009609722548907946992932048289067020862555902037228974317282142763749822540661467572222480414938467829587895907356466899707873640535630210743366304913121492703796360115103951319805089509576701554561962215244582098173736808974436755359968783324228327994572397673281128787333567242450776976868937515982108565662976635416438474912215490277519695682755186228909261679975613625201517403850023623204382938027555992296764570143602036471352299451851861181109679930918805801296070128530241248773635368865033350370651679878356005985213049774828041724591253352164177464949652272554061025324047405913500289290519821269474381460496899435686556319144974979785225659516510458142467936291874523921910468068603052465909689077340266563755168936194366435227481554145341561853763856275682493237439806139155209247361384038747166601900644579085020419932507659413615788550141593007876834709370249288823120139109965750764800662005937270341015365888365597635071397710479292982273955781735532561726081220280787154390495349282578320534989126011185860196697585367725022718000787388364754211121821834879032645516345763746982198623219073048092855258656385822682052576966594055398326843432063654244006585388104559415520830887667188966487080130762558758136323096280065513340946225066062541958846790630814478434291339926122386511359994818920861146289310869691892417802816879530254158134456156020800512778005946742191898528333177976053752322697762554638411367760452127962058560349082007553692232000760916741997973926215054144085943505484105194256116851266764658518811360872018234029206917335552850704125758821079169332692665304630348092467534029702502682368739923413078885611729000944247292725210827667988474113527943210274101688257328255475735473048498406136453460257770492571174510299931099438211450355620322047623588852576191693117809930272744970332069620722064136680398156860580250764692299627332028145816669361516338441018746375917792564955365593718510034176036838654026120562507891522012507827955267322405421027598135423858915400856591859722568282779974378678341513445855823421451312194619289246371703872806882812906629321130888324798768134574484941135758104046076273906067979436431821761144766021429081283895266313963724945929825533434462902564157261299408648738350309648653582802443178744060902184028248669917380791380216348863789916729163313286480673041647279467166893010732254653684975199433106365042293847017322140253785275439110948806785451221818737550095927741827921253974100275002490712944052305023172180800331397435115329211494268267473870874290294396741443228922183998259460747954910576366213914318960576914295739894018495394219155893257020565833850973668831581031086084240878619065586850548140368423188758290529972603960100404815932296563577167848720005186396820472934789618108774661274217038966498063416086265308983213372776011150854820293747106409242238909250966179217944871757044435478144706011294127754870410353848514583442148537406589986770257068053047561209407940543294153973468161798796146943556741134333481765294150576488244065886953912734388920457415602671240173139408193663429748974998395015099712438849238850876889634441219883795538120238654977575285492391313397181379288642796290347869088329347594492067101276166793749371074573258617210169816966907178545231368147427709169285831936280361303498500797394292502244019212324643330381380373894765737934849225627288335316191372318509058388015290510660278047552537987049924515303266250598835849381365679649007587763419507067323347556206453988227430778895923451741327520172199134739229924843446820189223930000841055656400143627072501891862562888513388358888232436747940783638731647233259298733223300994084242902516529960497748880928964491849355801821730044235883509383586671904520577869165232029071469367688370217507421047708452994212137243523941378379619769293657643499611886479775659576135012776806124218793269743466913686939171128716256889142062013597957511223268249037758314009517443107897016353709315756601602134755526331961212093928832255549805762943920547534395996807230072595107852061671572968792510785695609700701929016364568022856524586086109853739794539945501552236548420701935285050924060014777380527502320823079095379313423074334027507622654254759044663946127191757178835968059626476462569462104418103474692354363235031481236187323313252516293558288704448080869205252388896227750763189048412940109203539901592281228645291901153691350620270954339626519156454926728214572588707505463810522025151237441921535661258105080115677971772799237040418798899902544254141149209320626973049420774467753683795578382916580206305587544221579652750295620148508719174732029261727761942660674293007224171863650101720123179203283353569045986068941959867497087949687849972897047306578698805793443621384378961115066252249802584691764357174630973124577809495702826497501310509609873117646697553641718409781050464562021414777203308553214382254401791041645341491455209231843832815771695447184828318032105480382122169549269237734059423453007459007482249441014993821731399073790172450483449971566854557819138475527267552474209930332366737429522469257735356678349725822149075218056879350399796903757161808789940564474819823383990231105474769615568269529252822128415601925585114078132852411927170588661980027829258838483847811270290920310940941249801393105976658157472018861579018430404405314030618430130057026403009750974415617255718687642247481048235791869801402626131716808466434385294341631883788123055233276625923084736253202353670982564160194938883694860842088239659062384767197343206440149654581414499738176349046988610486203440722668042263700078831807624350595176934575376244299577403952965341519445962993520345202023875185882087668523577002454325145484872551307934468149096510385886514577125759388263221560299085260088392686484893410890110127131600723526166724578883061058697388459216424717199496835863640600082645960616315881160161392355662719139314956881141663985519002227785214342515898909603107273106936996633372003017929108581087737703796097651434602588407425107154591864418201264977182005949710754412937520558891275579763458137698813035646938910982437277751738395659455409477384160400189272090810501003692553722289577979538932966518870735846239423490625609247213235686691705879144599781957244050570743454317478419199894287536790025478707898646349592192083414285505142620468212408463558764848319349896112660061416998951072436401224025761848205216592336904635799332791191464839875830884291187740961617247141574722381119190244949318801372928466556650564321064279538509855363574818075440737176964218441196172797945567911397650999312274253436389182022251110618987259131028347386202221571495585904341113667408439717416734090592137581689770248527427958889680550291276830358529113424269573890890108073787023641313619013426408418068444951464914888276164095798812944854364587889740146561173318522190891155671010240011620686498444864947199936293963750011074184481599390909524970691167764531754945631072129736474414614490988083440621303298374813968007817458269977577462304212900229947857854274671947025599710628823353620807193000141966949197747685693841669786649193548991403273970535292467202000233395427649421414388061746219792222333553224661798324847278804179411065686148686451187228414631341426517506710260507425790266092775579628655362538306830788850101579578738948764739008135616299235012369524812393802794626928846340970717208085577106941047072125907105877348137925943847052663781798917562706414364101527612931588561876007185764317853061996300563404300671734745889277294011620283569548005965493654526387960244191872285111325358012413042173419798667263386957537452511798039186276062499777598329346575803702309341516152839726625384434742488347720853753414727868354873321278942905638051489538353163497913634745309399023265274437365152715949325062108036464805825584012167447336254030690671968229592422136937613078742359404612040967293201293064920927313100349285398113073345935890224743579887544238629791097975395325430029551784747333786030947159917631368899648127032231747879271308087382879656827771655590777096083115191017910234242702125419269771903406739901921970475770110810264911293210899391630914469625781600776663994302457438199177848686869288274195249406115261098574324912731501696709157219540574986040626813718197763787675231647008062731938769605300724976159779856154529648357647298102486169580373758059813884470136490560858513901136242533056655058977261002928784472049277869952565255422641192943584381093430579656613776996707085395435345339737777625977280883462391989562085254727446144060460942253271735005631207545583373949070790213628187102736635188420162517431488298589083658054210566089572653061784729615116558179046795186906183742476779484467542071206451471996654353170762152264572422048861793471922546525287457371111630158484626970874817190951539906479183977513733877902367222486292929407830712228616385185376796162739239531949324556666583243421717940861575999590008056406981674173053629562578909029250388393311505061464863866495165451311391720325799353165258614112033720779451068785728532095480554342512178784514825946149567908791728688419582493860556948376947773257590228937146766363942077730248785001494986626018460882194797845499722517307292476984795198139909471787076229832754980468957338787892626676685033882173355579900498785088646615829585572968019071860880195502671231079080008007720216796358281750478492909072678205861097476498357054916776990260237765736674902411414739045604443353169529644232121004972259538120381939398281812874355536544234288813102802253246050190598969895009752448836518164176436256870745364067641657185205327609211813066870660349469278017615959006340704484727910887140266698558761681291825960504077695912986689446339004109431984101219688654463811672577119066344057136332844926949330827901407608527012414852126905068604811478282633932981197072096923856285324453112499758110416758705415390041392310866746309597202927568480043038780092668145635223185390570488862358218030924320799967084358445850105571528190516185554840135362629803040695072553280139779856091168378926594776442711809557467926785909566831076679760575430143389286998750383194629604901133757994920664699063942841365114293404540467724086646301927736325706796088354900192861324496379372733551017639391033137451624259373881331731736801793414052514856188835964724742318993186878160917706812598035858978911021520475626784969205407370530828260285152827994075728518892084147366663053629898450973061496923801294978216170414694946765686408296290336234980774805905879804687885265500892810103236526183444406343632276538580279027541810454236244321675882758833707377723702271288534225897333812812203910717211760160416539231304339429120075602591626080827598770382488944248944960977206585149711817591808074699758778207362500300764203002561861229063514110272639333480444629733879943342221140242695810723989414895073214880004285400448338362839694251405502049621656442787913653216531807713465948284415788597541699531972921992887614831997054228804441161677782507091442885933569679655375964325291662997594770922935030376512690422651286160911567479063787320905012081271228673280436727695205040431493151384001624775676603242694921435091711142636947660717769174608300608297581709014867946208133796972161367144393391568799941460050022565211872501303943373937129037035355295870913157215520807751901928066263171112318298140226270874116291503271194413900845953271435096602453811313113682712816276345673677857018427776783540622270566137761783309592024017012541453267064826755984696940041003213843504570704361971181031804808179330623019593241025044690146504392142110896400240143683621849860046997569471490795175570211512876637485794878598093939598106560441397438764005167365448656384459682017237699951415462386660981867232481461547687188615682588142118143350360267204888078498229797797720600926451096236566915189207706407053573927937879902577484843870784412749147960300022074474766398320038030635740999063403867381094658283142129550961601122775959832091939596537701852439805741609253851596806603931097152679682397759454241101834253251694446334235424696629919222917809555816754637230335173401146073934227659746736983543721388841130812994283070032867170834634523028887787870006786123781953380434361913262929171198103910961856975738212617876817319811131675582987958127289145877579846368519079729095898614945616958402698361977584267642764069902549872581725237836256439200867463567489486047420153161067114580746674305274918444121729853101388119536642338504920905142591137739860733560279695805169409945805386612183857533252610845535192752980417059707015263145432347156705529167939405105445382916009409168081436261302012227061658822498888933172649155513119495709616013899725022754100358769599875236635767130408421662436135699786779497373335669759823880076613857179919378030579356347259529885182390766547134836570371249464434976649957281746653424164880222026914864619086997278044047306669557655884425473323298786482116485624163203521199376996359821564639540556783330950677699824283334262778262536067947115067932683215166411103961156718945388760092374138821692414064487782733738722740823890447325366225093148019156343509642669092776946187823595383696346035299824277996743183761016109753394448615590051530096362479787172059500506386501292705205372417575536992357564558231294642427992248845416067764701022846279277406777648773699846319821650103936843391897423000245401306745419321291415469602478097375577642190876393002170347622904628928253266064010014817979604061567997429125903190310479747205026137407050335079802754432839750120618178144986319386467568873198974267710926301782290297579467181950812716111760309922039513276776764366766782747882484629676104019089425409310880684778852897027451179470669087453791810949994922029946380336739889979837630957970539829384904257373985598930137507402001169259574420264155986521705025400179149689886765632293325801276791574576819537742790958092233714163986796186433490686030444310419085071818281328122322725208554791859658142313412566569774738315379458630544910170825978095859568839440490633025569131769645166094068639280646461709404976006823689436241322445255253888580069031514796823671643165285939406562903024409461161913541905384915243464069237265717021330346309167838435880373164415008874117165516756498273068225482742556016375695887844593397056817292067402181073234787707839531896114118603371765208904323924148099056384456105817904729281453513737901178881708573008662604176494033295010141644192401474869932599824602674671233747301903068395946116880041954756950905605955889129557199665957989888700825442049398544747267220338621444253026835824116250208912052622814083145980529550920480864396758590697289681030354052515290497473377383833355557520402018851248244181833396489672120787710359594600234131502215307123942142282975272570927675267274552792432129182773580013982619152843059952764483741354335662779331991865284287300779433942491679678030791995120472854714569126670249745536013099658970744233340132966169154179104506216248489579689211818114866040326154381338209548803863714445309561309062127552354580238920530371794767858060189730069497784720381452593729305981861817733488720643771500629886635142870594856691325589798951804101842307240294548568123695061533888954734526117681109827627734606289473912453342588316784036856479982284110822391486886736771872289622077929932990694387759612403486819693146728608545261930956082932940304038608671271844622546860731056935873187921954727495416427401255756892685634559726126156543514618077404266063262305878337444280272597684296886976789937503130985073861233647755140717034711297044731864784727045689929114813224273461294570910396553030217796234088924347958875118773756508283742712778479652481166950221359132127838929079482007759158088983669278717079975421071709724454503729259349190219839416663141638264339410393476017245422223526070967720812442657594686913239370027034146125750443306696090089320011795599843304913170005862063927991085987767829158624414176228185727255158071501489208044896790048847184977525525614636447646532602124676082809032409004699772863636520177993224360839090216446896069136609947571921443240976294163125003845326676045786488611513833102513335150821112080965564211063927810390084242189204451288601449899502732139237886350873682714099957217867435380688101021069298383660599322445792036008237162460951537509816408337847052797785047400572511947187659433986334264915565058847267692499549718810694072061516766722544399934231630344890526371812254000740449693563025260554431943178654531494996868438034672483219429154166867397917157933091590818629443088312357128094081647398389973511282947564222979425870231854472694144241483059249249987601278266123554446978056454489070411824215798079169008777605518993118423451517603796508512711554314353993158038807369771587782565618024688820364632691110589434632646840880903979501747331200319427751723568815950819653980314330847604012978883188271351196648951170933918171920097053523867353829388811113795755008900499793705277200631149624657841843205319705702753027450172923002052359253459861515139830404455797566713010025167501815026531025547853566913447139572507728781326653048051875070343760187279022361404184145910984046565694158971614862660863270441626202175383688911514230277360493749892653174051483570035602156725695303843363994316638311609670612877195514977955413369742990862301441229564981965195591268918161352595374371850358800965595987698816317535329614199646357393845947908642699285132305157647710557176549579577689844213313645372613241282283484513560611344119528285922455893028208029282758325070598876158287597144020078372989393661059643191544269891776754718649465143303381573693009059048248254309916144193405652106484635057262619958541694815672764349342644797352717078993097451476151969645933806409394981344986498064649047115555727091332974002974410085136952132292875174607575812949846862923631013623785259913876991216874093073033737334029934764005796156757631985769794359786910587230398170623268417129534616303827710639349431716040718346290126641303542826424476025685901378392013194185370913217804870755836249176244123586481314246192543365861381434268453200654250367330694942132358704997912616334530203674227718739728373876504736117024384234661946305073863944452478529018193747371939462034564344727107462307364841897572445395693973920494736570873665041994821447289046467157104158758429309504914202607930458566966864432995850930071462250034448520570240999075877929310284389572048860967922839468020809440359636937323549191079423808788375783041476336625047784900448365010278740960989888800697384078113747201040134731794928639665653107238742907502004339781117596434970611017690072818645686955980607400364674967842769517242103999486085999269898687295137545513792967510033909830354456099177891246243712409910113538565260097245734555758873898936855992604162572350126497003714271484943578320061806034208244756751903627390794583578523247725012130198418228476699293045807724457128763166065563489313336332730470977602815214572832011610249174696329664715152960388406262542441163946435584650109938203762633733015067143530400424907688580196605273043149477829438415434041670939709096553080423200334280676702750345606696548059720909736390345010874039107191951167860673928955696901610588124683978200717099552113957345941353441952227015227361319224885591251562639677095007608207531507993779920005428252455467405596048237005100934437465943646507373699529081850234763958616475089567316512202859383890957782299019540068233690288220414513076798658703200374706100477508996207397881356342700301442634047623652317076600278157140459512647207999757916237577531034825521742486204776210382962077459080356762494776743106818452255981807244072606978526082565004611631850560098101237625055374048027080242619244946101156928829018280424204535566807974368332747082462612589407609826432739493543227933748732897745432627285438909948000796285748347947505487141820617705777745981467335393675818773693612578143790086756214441867167091935846495268779194301862024526461735329914646835576060421405062035971447966823389046033142118442499351455005123881081337814351296008654348247462716749822066823110862523781147264560994003048029950095196990820772875350524782785211122919614340021115775976809489366661385517506342639839987720516337504892969234845655244329371146019687188500177679149490165568272245109100149120818326098817303239854271158217380755496670536355427349026608160333536901001613965621777055705124842048915856904350592286591874269617700247726751988791256653219557107886810268474921436946471423338912319643130772834219889104748075948027529357919193811910830097487646807846782834303845586910915965835785206567241611305286651097770956438947417061768022416285190219390559168601793477541829886802286384550314838126555098850509294103363857496319958062004750632089006239575189968821109319892301494960455928703584123859065397640334163664796187166522002199631553306622491711222335769012022605739498710770435711353584306080397373076983447779551177285577862583323651908761069184963430735862944884921721326714996008813518765846795706758983872882403357845973880054609684520877127854200912177170144948742802441652430453596202349075454448442876591544026789080036372070266260273019545835426597520350646732335504490870924213490173283501048979533234763459939666105735720403819501307261954760004805484264752443613670743779401609587527531294179214442927232082339507127827270459422381589614034444501406910304716697489968074842182043353157166974360851904027380008760164499653369477399585667542535665097215699250068592969054381047264748518803219150885812256163526987887181188536262788266066587638199211634927599126231705555192836265286654418545475240177782910924681941860607044904870451060019945091350645636299632250083582791633570056104627711292850327492561269851838652567315596551304805405717507681457999347566581679929705980222066052009137165048923438516816603571154872416025081243414634933850420357436587461531555953019498352798860651325901888274950638681606725575222922229508827568726710671549819361430959621997273005927460173501084912961516867944051293266400651443143860814545341522685496323224369025464997284928786498605954460000406944273169955063012593764776945245123620694989368580320334388506154923622165371185593414099828226803921095190612420967197785971243674313555691391521856772833571394741771828318466807355478699792943448732492386482761103151378095661234295705211416448307220360963717556400144359251700001637956091389906814267441138594410033565243417742791390531311104479088540363945230808342446771963478171965510493138410069654167785322597465839805417832772624242110640102640580465425687453131424521606099857341575106104054192337254131449106864870661105714266235858606340460699158103703031755793470575752660522669086346857303634479702628464924758626931888054615917192129760593196990766644230356776119247466224916099710940230828369363377682352282768663980906377762061064282852812735041679298665591784414713840692959200040802604361316704253422823755918883784158035542761629215687230397227342213150177732821826323213296369914834601713601241369477982670167255112971711308181809516095430279033137061425145973829049155229112124522274943851186658624184511028988933428863773783450964641859929308116793915185491515809575440422411490712935431701369021807457892402845199892918266243459088495597950863914540371186608381052740035693470912678411191134147000591534561446354528958016201499355666779571328839988753004850590374811264986337800765462436940055497311973239120217531141964325137087133448626662549033648032442716314349458820926030217377708769843766735634437996793193745280367200849616173397464564033151709381715261671357596415272839057660125662772513868495860243596365109685235609975550582664927727416575014140101143362852024276430657999547298326184908537324147976775657177058716545067470648987192374985227022396374460592616942044758177827511963401061034493231996798902363353738219674499350461133951106776137844119355314789100199493170881238511302761557756276904671331356920379407213544608772507475633032102926575677701634868058483279259847375640245265135708275927442378495704054347661248826220978944320303824009444346523207346891970166095841400187567663382279795164697605207071324025165071997348820953282393719688451266548870480643137465876788149255978693890489709245524601129093965556574280300510137363855435478134432692723608734193236488277233244512144318441958073490705708024905689155308353750072637774281479700510094041391716370668957581433171054981973638550805378884009693912388283438278430725333316542386226058948113331383242117357269603759694314304059349645000061260741249064298207724510074313425940288593948337769464677864571463355876268721705388638444741926981694863119724026094513145109535880178189900528194775926047947888439827835365714864627068553115756358593382745458154636997263755099539332144025183145476100958043572932254827081513121218806623510204827471511126886548765958569201978184375862204095218071454651192700707731461353492863605570158176895994340845941800731100396873048012228264231899619429171446395953817352076306732031393967553079140406404291647039694138369676352622761438469251466291336635401961638244528758487006869957800131373022333616285247109395381285746614835520453219392401941246219445771754389367182504253422011980236076841063385769142153970972114365949982971237328706516927264638608956120874730514702203003901537907631104202804732766877153779166280254485833417983054286893541705033892809313481929307888456729863158644096535129155564172370578900937723209737334987084559539757888407867730431570994696207683432458195763506520365894659883736970786034952677467582687022885105332427412331631108854576115626781381643414073465805928650535479605665437116834815535122980913834828016007160942297991247456359506999095160755735532309682198425158152010899120712020677924846650871030390736892568399019426314049587997385778535111256096553335874713891992829776663806940117542648226403224152389495490556363889120020420100671948967960544997020547605334586383496953460700710772130439501973918293618920431154038659545355322234145708769733030244404528010424960520113198033012398623948620790522374168284725960946099880540086511350480873632687194100303243148105523604242730264738923664286909966262033466094744001886578491465626939595663892700467234706815678708705674971354028142214621527430747176140266247621028924618272076403596314377815078764151667062326186305849102592258792964349283513546366270014550480064213740901267011363289358052786047897269336663490949809411127618527696113650971054803583304303614312714999892363732371988935853375774208539971524422743376731339982425082453820088716917489820409547865718141324037679936823324403879855785107254942189976912266694104270441036644972274587404335687805109417092919438031823603841691644703126922919829311815413334820718550509351680992318721103970549502374653888391781148952268061667429453159732374938136914518272544260225727213629810406891308103155455477627910162840526349276739755250548364753791025300674615038388894584257844884738167308740287959187976340261422375325360198310883745293895863598204462818614845252181508258798400774596557810605256192641090057124671487535407856035201338532188791117534371666524318463106423234509409580276748105109215169058213537459418282832752147102949431340109471508187505738347526489914308894659404145400498362262711300124637629807748815880925280709405588724085229273510679735669584049479109102547761035759201492470298457360048432289220924435346728855626126598261172261261703461558210955369581884112765428868008186045248589616524008819161468438545967505984786273016007075051025283427726481999068014619526891447145439259791191198679414719417520084455850000079425136766379097061403625515578514210607803565606496654079793200236049291527524030941693352873528402225000202468182057055651939995102026719939822421731103554490465249002646223138043358648573285075166029352947224004462775211239712386141550043129515114345603870196113314283269952802693203262784224392889630211678613637517675543887181630447647845957641771189420738206925897083885365787881960496400764845543864446650883142193661278674909675427081347233191108503697014537366381503480515603311383171099365223599912301058274859869431098502341271462020664285273014194546519297098001431309113760799196680762356562234940424976222792076290085905318190713481222967447893961423988485504806869534030999421833592739722770095316053925680792034133401181978722064182312848392955709771826150119577410789005585378963427485648932195029458338895725839991664676229399770219122333075368594689248897618027446905601227050362472461518796128065493237601302085898557887594172479152042503845504795015036618874013675194998595890465929263469102958920094896154560191575014567310931044750726911486473491738502180082754509970377279392439324811585800882004579595110530036788938798995111444135804847271026211347624313347408498809415632837301296194075810636172208379017287079820775458538257036204268657727899787934923508403758450122027098223160152436784833248283407925957287405900279700382822831324840091750268513977453366386351936851926897765173120027576558688690987885906429100401606282072907613242331467567728103254678111664363910056665458177641992637854303683735853651836527728944252928897031449328474556474935973705366940711753988508263944477539056793240985986427728532622035581944279516272557690359071468869117188836767914738857971768260642184969913967115076427592799809625595806782997463003418189661994732865535124928365861716826255810374984168109744642537313384929108140859279370247379386387057458076049610948233222643048474697887234814584832232829733926231986273119224095474170830174994179344538146451525845989101240538846377162448409942739237201785611052358486765541131725909209548057405268662966825036295059116380644073882680655356879724650270564234349243145851376183835859363774352074342406458229946571764619023634964868066247111170445416737649261740016812461284146897336343447181911910965339109551888537388259237214598945261410397510026031567378912891211070280059959159990755578934876454911326712649616116837216756132802761868705318278137054420393473465333163903926257078093560765797049825400161617822243588447452634819044019517511937481201559404130138248872251241335757986060998126356028153545059894120854792326822539388154436029287491424921338766490128947850562521060536627002681421863800551535435376361642754666651389327726375591977146203703862515025797210799500426540587333319822123430550135906597537564887473327868557682399946944516623479532190089659037877782713301855760433173667382114281327297560516035222300365079833173450645171490205764001080813235381378780600264963596479401616228764637258143695626286415441851321438972670170959595653226993113827988486777569910771914476990592686728643877231863337967558275648235223975959308035876591036878162050947690433393150990296921416419874369276281265956504066362184262503121071320470761156365303371949476346191160712132764715903092149708035852466574574748133837872301551085151695872687793503603793359274702689891961004840896439138801588562931853708257391618339397527869964278165050975067620233254763251964652357735427889003960462290759223204138808213500895304954209093061352267543931756397820029121446605938281810885263838141316141461918492728042263057024940452843406784315927255421090143594140969194412201913733938821303740243204573740313471978944535390281713856135160886527684669248096674109493716203913183380270571327522781905297849619767842457871022366206679754630305303401232546026234439443874038915650611783522308605238971421489819891390503736004434982848843174517221789481707121097627940968871318141680498053879568390531206736163027748775005190933235236587791050036904447554816742757047811881918970189307477235047596662594441228864893065629645020510877235437266028378535432147260224545365859648402244100573410230389214212358751795967553003079679250664515298735992597408526305132894129672640969394972374406448772585495268785236599484145858356303153904092987176608277587967426702114836978137945769777662728551579597436337566523823071381260207218959493041341227718041373979753682457419705617959655298175359081850491916142795659352573979974048986942024655288629085163363687011662980157842623921689667542578094611171835827996859096372186936591743380150454027350685817092496096001679223373019636492491629440750552949579317221321675281068593495517003760936731041552596316549957956115341193945537894210112810566254700700249264850665667323879152472724243265770105146468996197086112871595885930709551546685003981971937021946735856117962822588692669728510231149307859042666529556268949607954573619270220798791832601268181145976032199716697309074392914066662497390980335130928948201952706271236628964902836453185065626602716065437902381485816226708620042745497093026025912158306637901691898277208471238488456130800312347966475107209962453182108859256726415898723338483254105565034657463420648093530094856960123148606493241954008442731705350817225396819552932314208531601257929412003950182231357694806335469660702845375499095931748734820273991787139646196055428496389980743521399573106258533407718885247149373775711148012449901695488807356046658692199580715230724931101144604640340022580476778513761286665206562067675865101265471633365788648300787094436603188060134009601379656353029368293739270275143855995087273706568994805941670402003487704875878186961359521852999963608623004076054979739751370320364322961732788316713625600525605139413094623619305778380290696272315247210790997533136649761817518447293849486714789241853993550744071128567804236371362610534417138022806065874147148668897358239450276172883038417648353470735935170324882464727453722372944329864543692365009371201550656708969721726578292834914725557624994775479298065791263489090938441069187210626215900719423738549606553101329891814104576372256604912452541857174373717775371945200428506455602922374099110941905173561094731791380270970729643615787502094125543885127190918640609933030357372157683576750197110269104090345650748565379061493786410620492466398966218680923553226224332704880871936891543438209911401566922123004764439721174822070848073586068580232923548567684138285698842964007675743516246763262239164935673962557170223711742902608650150561272381825323239255791577697355894024652962138538034604237353497129268742398713526245967313391643957369783737729542349212372563021732347565489333840978030100902302171824824592765773211126486929560016027144207756619776647299227853397947062682765772350631408203265114930667207085867685761028895671301828443586453627347349328047825851166522464599688469384167439407276767962455834827422129362675198618300269905047113973335361144317022081355387564874303571991336808869860299271643552611198883191517002635059347703460791900592997490979236695243211495227394306983429195873376871545115882145371048949384674249473485179723389528748283734232067142384150846313891870797523163304734622105439930579390867380690914116990360999718850198222971446668427748298482476691550053070200910593342106700047271257729218443498475063182833423163730632919853483246527068548585681769821953666698312945440282589302709919789891239607596255024197398900192476888646208533357156750864016888373677655289128894287552198618894967265361109743455309801758559830539406611756041174898351946461872885475146479705586806277794505707806084969754284003894062943658016679388213692028429350588616319048315618169277952030897798776349622589118668394102455754628820978242334045982793014325241061446954870839743029200438713633931512284417726135165911781187065695229391353705759687987215592783372577246202342148133221144644168291563698382231915114600019160180835525775143138503668656155318811793965715038255740879793070417426058679012610848442491851819122745335378041963665451042400296625379202558716548361646022136188854995361339086736050335205635344597408493533898655453447746812553214100740278653506755468685283365655285229134091729738892416000515284560665686947027419888390235759099488910598229245168189130509190331368037964610101036008110622588924543182921000100945413197797169784314160671030077502606691160670626861439524636124610219441079790870386156717303866766481186047334396763101738034079830016674974664550141253676761510959732587346336715886848630535520847306002209518577358568590654976956787205137890569591534617890564592527417274567196643744124226017534899106260117151740541302818239504374035046714394167198438625514404733283660947204124790200109813973593410610933542832107309052670764508580683947759632355052095257650242610261787959986694419294128741599497028053831987368459025414884946777666714807366711490989852177843707491350788546262340242328551744184806271174021751208253398122310362024725001804627258123655631380382862986442473114304474990990458060008178324859855037113463559808683700812819825910232181895158896536413256838278526069675690971388141177515535214287659876498315039855041647822863902786464295052507284974430498603772068243657078650621291325678986968938562674359292052592174130173087297725547628648522336027000290563621531087093150388680225832338486054361111431362648323416724252676223982049579780061455591768759530042397646627065477245615506806090179953351374524490622213258477818096704797332328699889727625281834408619402937928399035549876162074675228524096579489361782285420966014048125241521384148556595978284761970949664111596878703343304620989731997471177264142752811013377647691847513622954348087673150948378171513748619295851325737884193037492337054843765317746213505320478549096157600947209529741054642983717542999323076037953598687647145642675717176982872244519611923340173678495154404782701211496374105995323083828814135443002638202584969335394788658897436222524820725089286293882700490123239436188627139162278816757215150728305648022582905627681510968164253451604338685378897651136141474618407855424719320921641422473698345288305789897048079206189289333079238636967076740715051626157178213425934394585889433122190412540369836845941405458176056890783087508088965506329527208228001051112864238047448264076545617269596303306419224437181106327096806334097949222307042490313727221919845167524022886788112044559748508374745831183218237202043840503295777441728729000533757102266135064319087995836984506799519659578016428863816386247608903348308856488958897830353961569639819565876355165178152998656792148529345363579597576534885496055003940617750673523771827497822766775591284914459308249359815358380864398839257827382304543352506743792673163258946173111682744193175090153398865476172578424026323455956939014680681799376945077234283117297685681377081504641994808184248495432748464905750767890285845095209397539579173086659347921030348744010044779583267603996678261193561828484074484396246193777222063559816672831806681471401480747462718171631331473113828908127385782034321145795769234435045732209402019603440348401905305567913756872270415292162277370361629291754638818678228237498292588806807859868747167243628840876174707151214889772329202394285274290908712393256342757165742394583033368702139309756422844841139975561635938267486005881209235483954588878550936401955024791911929593772646535203927447044870367461853348268607132989410305298573581957211819826835972345745514526091326662741633609542697019888135714583481209529541279263976992583103275460005289752391926771231027893127321847547055744086819985485008231181865202950550277225864270577076264467203393059892999921468744077310371258661519223141128252119899885516862894124599618822037962634187859458695839805549727952432611682880419369281794877566763404031350791575454613250025740347943638457755145134615061314517885231310000346978141516903007145720515151235014574933515586431997868750796369928058599066160317137536677606245024258477906846906899952731143647278326959366808909252140872887508524033844789536161574890175140947519693558184775728856777431310185862848645756897498641268845283185964551210798052270069934020497795725958245886183228300768735563398943421967599888120012098974284150112330506039193939831089784125356820837300038948350753177183794360829569540087253937001654578108772058964865563424775700660268182877727129485326381413588772347112266968730657499544344352708104660667881986614896383448105952032032511579098830502571919983702136492991754180778060821972174721513611591851549314814743082338828710977565487416595243551658576576667828064972707730027251905633235123307781227975430346515228078947406983094250067762966210534704099103839078929974824093346628080085547034872380241432075877008359621644155503932471548027627538856140430364759009693081719903551638801052385997677245625435202980754200406670189015077795360201509576212559588202260554374282912710646276703428795470317141497638549496794587420537940547157181065746039241926561281201322682549003793900348106017257583628177438362500907094391703977915049915493812471822082147645521871291307246524682551348479647506820195424672633637330053713136935605520638027093169698875625682921385411718978771481761554231993386280054809709279721165288901624472737115516259432880772323707969115085333435984037768289189332413331258358142176880585012442113714217409774164805822308903668397466795594640465644462685700540209420252707346342592720273947592521136750304195800188298149516490660257786635606827408231377993097229588603654732724624580871241641559811166349528669068169457175820002438606439986794763295001203862409469584495852563228085031117182489454055908283675956297316245956625499400401373707204919455776688545230635436198640620741982441447947898019457167635387790433103241838852610289268274902598756071175062809034610083697244015856454854030739950502633414595336254968804916191457939933391917487558506326638758291362716651948512587605453988529169998024962460942746100814300707017746637727039633856069808620555427750887205113877077575071711294874288679971336608818356734368933795235033536751001012545779155996102301106944097097300270211415985667568261380561219126443289020457969748230164299543816105376918362326210776063143946494015968886273553430190456620226337679713051158334887355217330260932298911016613246131174279080702908201359555938914006204096285878650657998829284235170578835083917144959476802267558734369311283832098658279618591125063727401789811463897803205515572132914043770074876505722535304647972052714728230486032730033940907741000566563694855625411444334139605791561810572723036106344984141418597045024442177942859716630333378046495503045228385574657794949341056545980623595767738765061512270476738558856208363503883530832484681643661816227801119475675006870677807626420505375531032714926765031718272771047505936764031396175641619147414158022825968278863696399706336024534482570758211324530394744248628221890528751487082589115772498285333368421348773066800993953303019627690585330170039232952257975939790256301014158658181142952501699187210669766287533345557742542822640692507774488851358921993134662666492588203310716663166234553031875455030456586480020650860727024264703890321151964726589302718564004362078502686440170067837740570369645235453475668669428049033975100046423017820434471608986115217869619666349303993619162688399352983923581020255662681086190939808474320434330889864899493733160329635361668086344968672385304904713428630849131288192700640492957870977304128605283111947190585627468017884037485849976452241167268954485856987849459753830717579045784818909580361206103358358858036124951528595195315287918385369678556763409407553866495922236785724593972415798124373633741336224136351352322098855985754134843526355490684469078182480951440712243272244344585383563314364952877653577733612833066915440010745061161711371174536017817830311693402346695525821534397076713455007896954499598593097558319206871174441551823164805994757510799956602029439409583056721655507021666133233716838873674671428026698351565269442904523589360525530690907442437198701171946310851690102524840299129405885501980975172975701874015707713476221535282520188847226997986132814392927504500939470105084054348694765970616712903753829651555438533998236105347510419461655229921941244195040498674631941424636746257012938745512075867054757291339547595832413882098191372877541409815096838954704486027009124535391891684924740289703003803107179401784968246209513456158977907350507798354318835195232958108315988962788210380337128009974278925954620957109709744443715041368745765395036109333276498829286029391607456858255517405835115909162397038863228848885421077041359353323668236448843842889243005757518003648809876661668246308773265701727152845997038208373958996946193701837784990523153604849078655550678203927644898893896471244143387259709457200171505457708525050679333562979537804162803972080670657964198994707133190240250888173483209559968498521047255259041261058612393664590843807827466166456720333295234459819375576593843930496329704428693865050572719137127588520547132465536704694134424291119118777302295319063832869047945160720486372956687162515970536013194317961744827176762934920642807320802823141096417706792721175250260361831546292864403704221030338091650979730565430532006017050968503257261764921406710810378139594048732119556973875082909389436528458900623724563147115428599401048285245546789514218779586811488972422876309995335222587372345860504737888374138529529580239941210858866169202244063077119176837237346728682755623499451647688460358084319397613789264678666617855480135152818503626186239939579781098235303732677512565612300237909992230209824930300483405222840762198948500863976489951475753144027405493520096226739839103483658069655635949503827009185340835857165381266891167787874452129854790884791825902263668190575350389607454442420914625925519773160818767920036321921100872936769412803621737215730967100429889686329568562044604654786053204982717309001476442780844834073196453371415623366233993977598950311922454819961793393221388833431065205883707874128518711720063370424241757861744442665786588619738694286104309982954616525611739484690373198533224432131228452042797830966212028561715991295851586773888914877221437973752375177752443963948408155845743648506758337239014519187339412149028536782403537439383335046233874035209375117001985122523178419906214004545766685318303665862283942083610992212470807624806417258594237242782028662030957037573009270068312609653982199586475090457676793579328024138388416236537899280766911164186802375621307039404495965124104376960221912203353383211285196422635945597808227067747714246947705447877937290718482244174805137139551538922099353710515885745063259863350396543947317143478239230896694814327290735617649305283434138847334744479246112154722795790208464069810311767279303950587303328113715582756257721432973837376519386781493260627360651288471933125564216381801762450023791206142908845976127670363131365745711675754711988505438399170876272961406884327885440510711983580571663517201048194438647782271877389345803775906937880704770289070560703782453213949582024455479869691928626308352224252022095053878156802626558973006723154215453818506574665882630167906192431072728233622770577709117160524291468477003879957550535973696120436546931834536459707011961581178095181941557416454072875894623719202109834806374124978561944256936502906572696720909871082095197377992010643274244170790301712128957103548731875436554904105781939200174228005898553264901712940883511720347847238648701913306753084962141608472565683758545792401924532268385929094260895622179710024042792543477653127771281101178703369034324114769084210776058904962676846459517054760660017639751782375592432593319961783379716043264996640272457371400243592076625817696421290590333419767854419315098725265496980052122965890529049677332228283976850723854883669624536018407976951042268229388903169514411373239115076024313843569833066644987313020339751336792089093311448785278023212079729531989883246614479367597478551159362717989129606412344144604199773348527522268605685170502238548362589004713841628164229863168313707596298031231868965567999166530829223959547732536335292669687794094979181313161289376378612059872896626880629721550643507699804290240479889575374419731880309133706112183400041813969144535067694883596627681020277487359746254654564848466003888004170503171921311802995402048099502911085279785309684241190931395985474907289758755568196210615751587285273222882550080299335205456352817866894783234154447918692509473979264266490072653049908943087091183368887357051658220729682674817421595374308132473215734087094133973105266385729284810845727538692008182372978385546934747133509392327499914635205567347410440138819774924972436343988828508398198956122291678124706274487104819332576089699290958914533866172356932963841964462499097860448067207979816630581196123847761242092782010837092772446544761573017232435852568678766709413619516612356027541690805118327219369647783101297350206986728750705853003153222069143126113064085614400250317286943278242532235794495409832895818431621795759074287287683558780516082979079776504626048560662999903086338487589256390108350910531061831922230925403420498159336228668712229136305702675466609539761083906312559605894387283885605457978261498754494906412837620752714621084420595115676363777866232547534744256349513578288777222868968892714130112554011073651966133890415179199371629237366358585894800549096509190804975490559769313560900611140264071550327566919157636591001194783113701778480240819318861202953830078368301516304536535623080679471589001350329936784615732340343818726340001222275709373947039750439971587098164458252407494242182609038278251595879598812120789082972864719996720443843491824826954242209525105561583287743500487079923466630022821841789925884237674249230327606678121278814514458883104508675803933374489318708500770585709152872406372187783398083392019393228372229971802292211752239835433633190028403823390094126573929212767796242308444351325166132992535840362071960457729585244431686002982659456532676520353237367606349439075352535493118264806941836996795894111982731757903065748989349573880986561003561678059401711994280998291853825555169800521395630198756409841318322984390720625876321264538599655344322840980371788266275462841029340223981873691227300249232117495463003733314427771434980384583494519062244439650100342795853857707652854386491333198597248549282282349954074634462736148990563339848376068688089732956343912553557936379662795432133891676679794512828957455709706834390860720689328604867487442031191993263714128802225036904012948324997709181108388589827676635366985723510954945300697019616650050691171060347844440919617501507727670736016485945434161891539732612586978544032093688674622356474414163937056826696807265589505602575172980853537347194753109921205196682631565745951215093446421332246846996632721259003617594812652404814161858685473096276912402805771284940718795762022455318550821182745530187114363214821428440296771419317617513969047250001310286559172258936940877563910167265883357153658937317801079328981494445399658037465514528832058866078940679009395889710546180334874017199762488535547223730764733125682406984245169775901826597410677196139072188276849060339609896983362432157989590223520856452389428979811203101630767400714053497492063742746875623545241169275778498800859322987079799789387464205398842780083357380565129718043846655586087662206827484379103822768361770104784295289684151092445467258460854103748790821679272706512372550223992939872001668109502976239411845583044089569617037005262068574321488575598628339571644713237318663678971788346819802512448294749221343576234793638175099351375051754439074114502293287226274932222255001455291372300867149232511788856216979483921402560185548602668655903946812799528214169981854440264675597901945980394676225496545173320138409926983575530208445315019413337982537671967615157782299365477258031047198828821599152762557736886635761082736288699311045692516026563882689241058943352585741198975105223414809536783399041569369193755242694230941337018536680430715565865841559231054781939887898858007032412038709125157901321297997793823105818932956878325317303131825008275361290103502179839386796798303810518955268204801572699560018914540300232482188544036300126033262455484167535857302858829277209390018082678147122843084310415140844835280391427576408338511260487136912006765438993199840615049795218791313356224908433113062806049835574920941667186627979267666656831278613486961708722859600318706610202923445429767034985249357903955113135429213209708869742942162663870973417025023100853742324123833185192381574989970844453206049624572225835060795204848856971369709006393209390731266072818101021198609363425039169293672652158319629789919930068163086078545923304624828804345531979386078169562197848649117758156483077163189759208822781679695847264210881655692784387172352905183872361693837888386460101733641689724067763460937670162464874026564747979104773976677942884195125863266288693182902523281174048905111076250565254046616528423821522292050923520686884582430947502322066197551783207247756826619172605034216837654020319855043810704183419369066364355629896298845441991652964735285552541939202523546946740959664522216748532087052373046269243682516128398575296723110859144013355163564660289113126865855390035046789346384370045031162819703194731297250241616317213908642772193142001210896415308110596477797768467514364310665746360344062544964729903519055968601465849192722453422490833685795716168232241952013996537115731206634025408336784615581409426059545424093368697572156353310880755044515663058570382555309425923677026084506846522820495931069879371694980873988913130179108409409698485038494128097445997448308926389474998234793446389333624014601249189137771124621643545245904243884288611576416620773686150701871463558943938611573392643148953329493837254262151669183708854564412207071457988166279241789788176821756229079629642505151581207233750699740948893139629034548770282673615478590389406627778000277827452818214183742768956330416167529998415684153486679630843212891007274948575550236441898351210150785292633990460056019789955047381825170153869285804901620392206278707588615409764422361611734525249414881359915381770512997084091324376613738167906044041627368014610474186139276450024237317992779194688017186962992149792802453629556952841482458398545388670986806362939859939244802484816978411682829394644743764262121254797915062774303884049580817240512407674129809313355387971324227718415364601668354697568559544553980053920568465331908966439101317677956344759652954489657176668129927689525552480827307102567654453241351053059435776429178902569476214492263947945245709315140209143290843900830019235184969612916604556021242233268045618859180969341898684160199926969788531616552027085711190353186876015799105504623865205201352706843431544535161459888745098317451936901638414952140788818597662178782977692953260794077015847301304870893668774307851696881243654184625044020463543730951719304552320220007301009222229255584446487353216128457471392338694266267187878740099293413124175351441795573441183526033379789586018084446415782918749417814912586658646288806613828727704900900949742590045744686829064423685023973963753706004783433890110640117157716528855433050365275538467915893389823635990511148016643923491705523903441400952626410137491236188595783289826808291652648920628783019584426316464015520581713223551723042002743709754406237668343875807379810593494825184679550558066297493668382317032254330342310766624701153569330184339374988020106862089472869250141605356841822033810808951099738240989318716521545926079387931568438487211483121154494161344875764994051689092393049069482943287297263092436898064135307427933797315152687831892563972657012670354096829768530856717662713464686397726755860552013467306396695496834558864068512347504272146825693717942661570634913160499560074569218953797759286843159118067352046805782678388831797298821949348094995663025055912660335884106927299761890104647567293666194097189271941435123653484075294349737328231969610678936248740462435586766870365730843361746742000028915167564113994973227906937478846333584916501389551352004330452402997354922438740780027083531791999399863546360764498213937722967085704646944310120892522103393620927790476473878934587143276604269352861402818907207435925008609629640196712959805975734071727861356635818727574415512032585282249400082921874696679585528642894058978228123985836117950416964552294053203707364843991064201261713402078273667492675312455547814887587145601998394941359786051410079973169131912626611117340783953345348115422523106875533609949252946399318972566993641196309503034510812302072764930466800822402027116146219385793843496939134300401367090784461425358493387230008880780005421013499132537892353542917574479186785952572601703936139940497152173417445964849058765352878561329615594864634737072841002386092178944255418706618423438520128126401368981002589750196937320371260340337215376194449058547414628328260820478591942327538011136087535331105961648147681783377791318146589723846575000614437214712219511782140862008664415152423508228870996653359213044572594704285153294144549536244951784345831002293473942725834900073310170314412218992761222751997529846608836543872990789060349438444389093268813300371137247158236413775397478928942770511782941842131348732517677557001040146815506726756407614350765323569554868157804704856990190823071953201779088549815100614558273015886928363094887051384716070293075615025663238305803221737979000293973004753798176027297305713400109571240389882651991544059245727767454027157343283066205467630022124448030334674083816384504114611920920901228579288475691298363683819609179895620665491204561405406904804853727745906446112340555227631989867034746080531951750165122902901468462506399260270086450177497146276775843944212791929570832729483475841990605223815354593877914557777396165584738105729061278749169958001722580145709090150902104527919893338998512467955268000941381390396608683944395801512920591851760177294102484234371761508724884649086057934412908629697553789753790315132029291946288297643160658512994702331285073359933677807155624759280215610883567887582516778683339401848041966202309413629710470233174392247923965152084727832415670897049922700803611811970228181584740539320693994830431680978101170225794746085682495281773125571468612505650262110244469746529893592077088965557319517686758889042234854535725125651797710524144353311395124119642615759685977978430021705231952550079108966537388252698438944622412954504075452251640920648222219905268805882622593423276213737448993859002833260566962707871786380454899931100292651929080822534037395296642588025025136593159797167442334049977768845860428835453111030873977450240368325631353263527172588011597175429218366999586817125942410164202510078967162247853048007744062473404139338125232726327724736024820468706831332024182945965776019573912894955868530497518033287817338715250399754425490502794631701358212578880782985956597348100696295577167292319316893704845228440675548076165868590113144147706732638801449094964103913296819744233863856515919300405429741436235462298715464356997787072980878122657580789159694206194603397002541833943162373589581435391485806127014290909512377076969716495000656183691399331844303668377269911456168414711847233571946273027741021919690992638173872714687367500379285840671450451932002548040785436390638462102160310507775178349069450959368991423902449932941198413984996403777295962083940756515879043257076186492048537960134001158923348085963163041503208020525538992058515716327577951947055284164752214906051558127210207515361631987595386742373262076873470746393829011596417005830890739504084549609791130763842647894210637043229113938076021961387939089572539627699611611726634856134779763048679168877037849142597140153668055796255307584945207828621398773349686395952624315698683749765212255634906615700606956567305724986312714316164903477531729744754756381122619726925644108546078084641667410457822399693787705149231605477468869338413131564569471682365476000479694911165978675188164891999552955587815596431745927173286199644527006759775596467951168967762815950697269335832595193779778801785402586478202665476650694983940399430737624963208215654285968276056827982256441475373537560819096894016553023229321530635970666964797684451631574993373861358394167276153656951745473495207218836259462110857892031971952743601128201320433632327146285141695315660375722289035219830930450207599570220836116661281380283499375044442118504962257292324471648848407310922814909290657157308883929512769074059430714027484150344596587290926599529019047314570254785244128637917175829041020634499769141288454261931132975252097137900445348617437873328865914845282647994621157867127933432201999826781220398659277859495650693350939486008241919351656215647108214177002440823708440862513636120012529762664045897195720755960263021850672948070884201299577499550735007840546278012256959583583980455687196213270254847488060948864407008926481540388810198503562368625045361756800216605489434429000814429758191928167718652953968032772913741302316339608191185325551257816465015994276552595445014364157082196590047930048533428336287374762503328442955042200086952784227582920776705508711915217873996891156352336058299329666610063290179685399510697105755245663623269548955427643059846067930450764338578328520672469343684273723569027491043750051056869654664741433621197098800499871248963374681202332576958836869471880522670622163505160692609009561743079661809859557424965326500896040364552674309803767864306610785058844418908101988678249063866970098939819496188240849121839334758314224360615296211696900004646971210710477218255019281533807447427461006401966480607338080978761758877983768979332066272825105892891928049451718870069881091226471680932668272197997171970150766044663733154592343000178436936998452911249476125920410064233357683685863324921666668039139966011120863494758125401357514906874903649044540952872436860298798341475121146899382674744488869236630164325816777521266709615752842267432035932306064297894799201067567259697163377815318151656051773749645993842416797309507739393689908820804727844194973065670675732518652591661663552345107924835591853118514919021951047461059763639099099309813126284300331120737015154575093326511211869623164312885825149403941348367294564750784645342889427513053402507537750557113181243506864894875219220352580397554668309726337237270661578931339955147976692822678218441072987885931238726387690996654668368603183418274382822140503568317665418728782434967190950638395460845164474956055008453479048610116785143981537033604083050008226213543374107347742477589727770922452075895728845100615101885234367688948904635396505476736474867848110180502651386148860790521443595435505600969926535366636995465533487353286175625633081207035685846571759438565224610316699470909267601088493912381256048565853684793572276335246822135302850185073807290569048146083755131544922595870362929638310188433222612223057850932603335370068683775055124391649100247238581477915272589644417487354535284567198332457334343935075653119362290199726936536972731547067963715363306940181508899746856826102718940579447736115695339051275286910712510126494446601007409210893781997091435105423566459444961562336285535026920333157572262980626862742470615960741148674948254825534152677032541929968773284804342559720177659415934186068606946220819744107151417944059495385655145692414043014941945171815955452203718020839788822417778814396931983201828762490012448363446008452825470613652425231028447224101057440625780154517535560592004710356240480234186599997640643696033410950981910045332768603755609175501862591506183087329285133575098041096625257792711860640833735165380523638687642292230371604472773770327047283381294072104642715569812676132583839039015398180744157796631233581709584357106008520462102223510902170411748444435999650816384557600947098444462435298221785489842086313724696842013826114744360044189026211029888404077655952473016754049166627951635568727960659063490736538782273067717734361285310507280690714698260728349912260939063959671809683625279730625891539769465177205006223509084974156102910980179465913551929005888679008450449266066026253020278860119203562185040512149660370439601512030481820386298531070198761129794557970242870333724675989668933909360338470768466343440780791166320743263557140750215730519310043644041514766297975364276482596493280336961601527553851245655813706382643984935072504807380208382862435285670265714358512380118248726418585923221176006644043119169186245750077798308825545903090585952489381023577528162778489687643506219054897002423287712621663624141284344668744031673265888600041426448355034006090515409314386344219759339449094628416002541756063299587840490951587298681769538586339546134064944708575370048595969403430029872911820986435499017128170956663160582778822935691164736356215763157807936294684192704989599096173242297302638866876803295794304871383115895528451593100017287009730016743032300244796994843036793388928403575367767437636229320427445086536347792583764551673172398739146055105870674826239680716410217522288023223827099397040942923275920914272239935636462054898290266965183091974171419920891386731421973709561290873378073952336671331148714639971804894078889116401877474055567255383936401639643428185789297260579874585815700975547826676580318063664348981461724773180781889448372805512502819733332417561685090718853331436616421404065208749280971077928384325503359567425950571672972688329764275214071656397672054779731672312671277061808649154796160338720544088451235022296504988506259715332466078887796433543714837726537722422710694630823218313950742759270706542354784321576459794279454004587210302463837917558667678742965623683433714529881730226582839132486455925816761618518374234300760977286772812524217284750478096345982154913112982429662241952001248495795519859294855245518929280967762648656058767732292649367485918194168755317606734625568527325794479245906314139053005120372725882953943940618111843872282869926025328927252602314335502085754936403652836306962794151804052523921618316069242736847525305722821364567902233671359094557803157023072383162180112129616025727430589598145949337690553456185082611322201414821719851400826802153377275804252730199355195319139701262781390092356627014860752216665917258596523522255067359956500796540577085604336145496125190156926960974830348587264337863580470744516510188632463541645178632731142093229651157156411906071491324073444906414939717749123739960855191741407229997287345413604430549165402394653254093306324600301512498157100736483194127462388078245723156500640339655327004011730563334562262275686413680682997962100951277478903641872473462443337349696152110759138993320640550254802184990769935437476712009074969526659833900140544797618187459364738884104955192852738182269881655984676877174290290908242773568099554508931396792438143716277036544402853839875192862803416100634369518723633861448128563341406973095013127375212159679769698760895681848784291801676871638314519731042529684497381744339142293564321656942064548346589917634561864294767444065631846033222061768860829027565598822045763663888811268947131425017843089116664754015853447235040266275307465135667171037967182596875884099419276553080050850672508975239195795602011136658186333001888021293161440239676107563254630504105252258160503015008500406687091590551836124638672175388182180464014493310733509866417008211403469585956075182109537759770930547105071666246934619142097587125603887047464051895644922958619163578342678155256877362020299202240003438463774782440674151750999411119815027393447643343012024351941237324094336067451979463157919769343746545157279872369384874521394222953667047298651460620055204192397302026954472075853668121443264138801793706742004219221177407834663961890872268870004723001304264617420249800719765543693505637434526144904435950092818103653354185799504573481431065652904327686075872953190517385005547276146666610851356560687629635096345366554005775585075086772753644631179466961632486787849391219859352070861505103898414913589855292140958140048466914224444851188463403316239869701370029751380031392502151758247083691061994043009345818219490111710653147209478411465303369657642173545735660683291219548070450501273359102090480845961557626735689778859129244744185621680582343291985997683228223787567959254061954041128861028398052174933007484519645531548772705269877415577712367033918285362846419924989981979289549321215188192405083703257288755334293817348966071289904689064494353527666444016093781464479994273425910466689871552702629374141256543297285264684521995170861763776500737374938951901708967198004705955601391775684268401712943153721356636074436442377232560009645419933944448386192300321924930275189195113662469193092963876001708127088964138897124389283675150307315604262010178868783060106627585039707301730415355751782359949631896212143284668196024260288123470007773712441432998999337678715875844097835899605715858163927617897069544409903789286262156510040993071391594361001866413239551902581564785480774967779386655620445622199149320565821354388480181962257505349912536545446812663777656358534125123506868477949943491220002253493260224441112806934730944655517630346929077531420621779946403425414751500222648496463423750166550891421178955977285654753778029697407932247511155829821353584620121937064492142868590476596846149820815501292164427926688310416673873321922644932641887151596072726488711594860560795564559942664832271893692855105638589746090366507938804097318780115571721652629385558522288390971625866698823067485052368014263874453368269779776689307609140657779125690702281385254335268562578846788891832117075795067373752069216254030019091088050663521159455831540677217361497508975895958242557280326446239554583493353328974906452029294200207129727466456897403098722309535369177118921825609214778641715677385180266411137888173754656425659786538277244075444229643135084750993831317576494075965921034696095124626860035185869016526378571471472960640056510005756864485878065085773066773486964624486783330974113396028677483858848645831887828087885455392678571859600674750110542927139483985078648902768304418137062725864859849764242972679067010888921084670364374393156234877198419078673978409513473319329635522907308178206526891970890496758748710123123322289406121938302105783424067399959587846865897402613682431710069012534334361080799377893436148345479881439786980223181970790612499585013930037193675168961775675141664403489291082428928461166031606867447640387485700411427912040411466591025186556745375709487006563842312401494877022094686148676956003552170395848584463969008107237852064823173885159037604795015372955348553974398107888025597766873946813655897141058402015407562569646523404500870981812148527782358901202786784117986046148017608396016883255027773628141173120040996449830308314113550402341875620711377947646202471613504638176280512218949139683665512087204683517183786044100241000463975092132598078616344442765921494340479462581593736372750295041992407295538889299426402499770117964975052188413520715889104462866627119557452959385208169366320703577186605451111454871734512359831494742416605600364659269646259646835779759956412442728312712892774666342655029804367202520428243803703928197788547235365602494873366811550289467440315895849822390081503952385982583177612961568857301959872112361406509740839230323369359185612651081778456823684366660806111610271497513371279435246528762453685000535874202087957448308842320522931376265405529844810451731013100704764809719279561358420484528934095890994920840741506978272696388702067155059538208697601067602760654560391686925342513023239115619474425493221827529471929957252858926933812249191513533231673912710645440679997794179363283254442831068370396417089116323875362166771380160693899823191593186588261052768424582023710431952380495142224733919207007840736710329473343522819662810106956293573387840726005648847471326842262633241526275192144804631338198298644584946730117323868671106663877780163570519679290150242114798796448021931409711073902086968083756827469014811128939725334537924881327547668371145934513260782915207246752223559659298267536190613097386389370768361193378442080212451256947800618358154371773223604616745966941981895053400170947870495376901471750905616003754952474136483666954478316216278614499087284780193965088592926814773198559365357498390879017584008667077465020046121625907591401289096858696482907327093398263885962260664544409751127808022587104038051926762865194504764619350839120770761626268537829949929073080557036936843253889173208029235188423899245206997635994552064619753633775853740215100399250724344909344047234940872339733062337408854624437874972905504277809664883722408632710238143103612811590037055947434219936487986515652516862376418504178681851364973673466987347968128819608741508420991581473363038694141658334818835171148197432780450819562959019128018088712607904535947054722225677219440863533469058996923034234944313277195236151299405896734027039790973069677169415326912196700408287424930546139778798402067273392876929538450351499575663910483887235677278287399885232956546266902164925512876845535050991276026835178188112182806278368969354331806689973124577698333789819244093495423838483178189023384854501800643988883477965484887568382041779722229263435182107112659166133160743553163736067640788711230429559639428016842605302126063043588935534712794870784338925268598669378616518795212321093286739358093311826621083058853221633404690368000957034715253211052707658824968637221145542135794054444126865440727984021487912664281644382916808699486074662942702557313381102637548658706110884440292132594839473687434020895838727828224434189596061500813007609896776862095892658952581424718921516181915917764729772356710226229612086430305962719458575025036718456531612399176852321934503787359969395231263221496904182327504618165993478877359754174700745574629338177835491740571930377164862999967697015544248356879218235872548073556231516923313761193343208810342585592772487950442156895459220649936070456122729519284127063571991375580185019630958439989282820999593210529296390236499159062674894370600165492927631459296964444806748179070096819088457672648874739860167963738940639762214180358213071804299535376362377784395629177976959194302382706058847895284735786892405247579637089288207462668359576583697535448236584651432559606085091075015549522887428412356532290372312446479820333633133712244921151005942597472719404511351977109980520697918551724507676346867680109670508082983004131952506680626783975049299949946306601887781716324737150630291539875330571450459129003762557095805592708749835978401491651829840061879827161588579627581195259703842000169207139352341976162520767376278685287889086806348911330097510837101476207708978180444592114762101793039795487537475414331439218433778721589700444429945487558799257749946696709856741293596180878230072640621923661004661927293961379615851780223398336631184986034859563576200615020152723683376313607702385115742635134411682822990118494697917955010321735107099960794041458606588483796369320634104789197781759509046132766184228310639678437589259227619017534880893429643625468289143250563714313120758204855409441802452185140675778760121332823055805621219018671489324440537283215680133781343923402709004918169483507900510157603241580952158826187020985185072036192804869153372127550567280487465248778532960459763692863989563692559217394734453511397062284382861127887086971631438454262646247185442622850696320782541247705454978485237823359532283106616914953630592131386058961030631505643637032724027280263891851757988955773139827657610959487220344399185662315451958098693832675563670766132308958858925503960398104290797133163025999898271851860512816849784969303267496087770625631670803836553328898123442634623825706205066288284755633921234355699063033661827464936263198235371728792893359980159674148129139656588787814546192126960988756906963681351012997202620724840163075423583462365038110714738027624938310437711965309456416585271335900068601912294146827604575426126469490189967653230921867064132500010971761619282877888499730939810075153972234279851323768825082938685363953909032412523386390783793725703347734107458819972894382214805785740424097390034541155683009079354930949170808307341812922533363549436616862978236264115126183598557979932037627888017231935644219853061611453990130980409689628160448183463274113685042240930365941059475667322299600596296573460594053331907579475706643300939244021107337412699520355678713835231366205740307838379638634150372327707893457970855450779063879318831432115425260303118523570743982177674472338683849499108099789749503037278591416760508760386066743286473196091771503193072501338787384011021443833880120621098092076289110107949222887324047181171281293874062624383604006494201598898892173586746087547596148546365586503643753093843711078805605306177354244945252319371641174927802475111349183432439506689797714643697494100125141087323174428838764725528500192288321401280516416985457138270978051451323552657486086054490622907255658139112289434431556467972976897921265485790763671865865922187523266200636698774648562537091234081273379148807849927396465114823625703881504919072735231469971696029918168283560212672999697438011750883504107305434079114490115041714530590689164667331267975091814135193763657681831732970221334878333492021211106333672586971945839669911031297217627405708896794617832931126676622506546584610589627278419524434522661086670282249530502832384795970922291884789341215681609321204362021518171016447465275022078247453729944261368772037419123009491047114797248814946155785569204857927554543356246266940274952005239395434216040829246018832748700430077196708376125573399898764227584284274967463044070642149728106923845045174296777751496315076040727373039057986751846744663360741404992429355098280574099378923163182641975958631919458522447561711017630409120419357762075473905538788446476679779092608643492953486182091086825446131547372091846848526224036549315981724852192559712295518827796761980664863438216791343142879953110815298646653534147378159415050389634430626511257123429602968517205192203905971211682138217684826922760761458805878829936631570605656682314442390116539783074618497765449494548076604597977336600853442136984063386615182787563356953421836450316075151764462338150529079952614172459605109000593530839398631318473659851819184133756803151340660629422833109742867763461344189585722998565817171192139445726415089385987808005364635730328802329621470004932758920840731593609684996953062628882265060175136847186286329614996289033975532689231648748791808980936579880339091481539538194468661337125648699877147329547468912123639593900802625986294314540636161574838421763756361471724381819184767477468755536509481834885369221189574205550755378861602789803965948869763526344929914967330686514456096094756024779890783796847389042753283508742783748762523373887364921314184977822804303154629975883433352000175508886788699347036186438628874192731077249791267460173506625959730012834113168661013681757589903937910359002665271826281301914090388060316415095145272372977407546262861130939105007880941681448492075725870209723987449944800679250283715883868573015120815122478297262621953774594162058095506069587140333192523132820269588735502486290956486178702941499062439963250427708904346471007750255215191764747151567759609153789433233906747435030758807599142766355307949723475744497007765433688980857037171546739807739368998452532645032259647221747822295615942702922478937401105654720797886619568107601192479855570063150780468880529073523303780651933571629540329549790781518728547013869357800934125669575451500419456550701034116445763599534130516399500362263640316659932882293632277859018380236767741911039703873645681013071202916997733831195838214665149844722622561427623561332180875246036424355234791727379280314265435426671727615677399923527682609859783305239848347745946583169620146274706559886492462398986851724809124236756854849857290598809727547570939147369507369430397227073362907269857521539192849954025862974793927115592243675584236630235586826535926088532779844663165323085205675036209684485311350818091176774770841556216556925854896634915157432126523166637158086323691549811474486469911021680434784717052142867180117747790759523033796707877013161139101240013489986934880862761452037767722298429419809382584036370785283784463875527138690558320924800913266970196569063027649234253591966727484021971403730253828802747454589316351827832277173928589061059301795248421511282034293676060143178583365123095543039103660257448469665806918383005993976081452553919278020932424413964690215234513473987284738600589650515100198118870233922618235704509165483040292596104219383815100675271944686145972688527121470374011032566240660833764048265189721303976630484420579443336940755764361752928726027561867810137752882177864691934662498992990465377755870887652156769234150110300983765354850096156681942267907184381111176957375920053564056145291407902848563698840488886899143275676910576516330847813547802712228718738409292735961012064645918289678898573250286058707429266531869865854652471989915018045208450283626089316148089606431729894875545775500829875358131206285706017359533311260552314482292949146643070294928444432091294811333980301478230053505192571080289913362233688687960268620920848206976106524860032337911568814024302144745568736784839529316923749394376110045357318860488808737488766375530848773047602947952865529221503438669319058194656145229703494078080259550896295132848273362598510868259343778640758498492472680901869794805438231064144710968550783083971170767782043066239430010163113220559479671729066763583410445616762157421591264614980764300211824240695683097037717295648204693189141984691289351758169625498161682473115959298234854157886119283942262546068271243409459879224307057890349732751375774012434104442950505014076390489991474143960423664523513859008439475977925190853823575758916483027280474014915044776475576494100922829496578489864647201207386058975941002829257355628427714716163067868162668010200127396576386576211581952858957552242097908657870169357702791761440696246243986215168551192724240212105514655740274582102293348815978663962659949626270238505681543290188121855022616013832843437617197487185328863902177541936326606723350772711131031496340763454511099268351524373280275595121132406530736848464770515488984925203254594423460289048332298127413680143380019357922614545826862899212532663753256783788896303264407526436155036226010990719474251711677611768050647563705255159090408672994169658714548971826944310107541084451618720379538228280430737490728941539781586148276717796102138579004835235184208398519012660544042525205989797206807791808656731498412723206815989367205007783893409182540508839657238454330086120072361293702632205106357269001660219909623147888407799692700277774287862631308398423301442032180334256293292897734282540447436647672564752646226229195448106877985520357661206582900771685005644993754196626848631341587296745315748664838884029184216921718883996126487644687342225987921506101598422676775260806230379809209090917909781587340511010361470780808101561498749391525978456292677706583805019848170045970404051554298985588875116239405189850040065773966833817000063842043910597954092274333528871318887014626888087718746391748779962116114959177744096196318697915904874607367072356055756072243357622395675591874680005796323604025372828852777010950420689684541226525001242493079823529977285071737881932758761973326861932492138167079447349102247128505744456369616570296306650962066708746174462924783901161064942027710686734347330709595343688325096741462729017029516351532277681171471137130518993231634924787379219396597854110095086746060481388529617734372514035479654759112284194381733662523883688916033795081471031435261832159863153738867879210352044931941339723775903727333629039396035887773241558192386890633066139350797724293426622816744592110630203982860785121342646856890925881238704713841561497700535416516189349832478636305789202371779191277519506328909425658962457943522097582549880681363660726144790755565887495511722264397304322182908664210478997328035152127687475051394067922241785856804273202203370771682215533568705429562985798204533968891275565282364481143886962523555092407068940848328546604760824898587070624195959739942528077159718477065726641547576447846442856618810541339328032924644359844375900584315486546746478392269529224227250621015628339663244179328165651218992734770267536355033105506517382609431203189234412754150517512224139690144885854593876016392146796191276821927366751320490138765997970197296802710832384234880197792075279015831155142498677828240436011355568008501204145508384147664406992503613543688298633111811948984749973591980602318539495594947070653106824036597119230423513501310464675688556055586581009640727169440554133389915346369189365034083544161844353462016193380353742520779319760566120690124426731163446879967865487570668474743251557405410735335060505139845242978677620820753687903975465997849927115464999385110113508003219276163928251236356741144641958190401397024106044022104613109006857634407526007956772261147286160258878737824052441043053348463739662914947019394480737790530356086934123161138013592359225081061905538340599803530415822432817170353004099653056619256463620127926541365376755901952339230839037014553338789575885249549727633370512666489552032376030616897898780012131601912554933111729192376374241757108083582270067765417194565589348896092322965503609391316464596282247238866630130795189584029882774541596372653965595843423409203103132635271791422113437308536835280382690674324285240709566318630832901867210084979847207086168253538885764665672877523914990171046820092514992633280033902546839592591573375735696717265055084110910113373712786492485312346496810759997586832999771168787891709467622683051145542179999909875281412558953456637278574819174529634829920787131214782929797507143788746638827742683857762930874475211409587897241386551777715172631494468448509364408658347072771919674846346449011757660533232980205102687819646512588016421958612015439879192901566867128297329079284213033462729070601599266132933563689262538033449482616856866091097130124937606700956419170247029491726412426820761238097255671724426409418926607414773560080171007659433642900254801470233309348035609054367498059779474154623349061886255501362591565096692667453570792317026406223425328883244252375827242625308526995176426011633597012470489257052960091462639591532257319666023388487488987737718097564859454726526449034091956820965737699901393206105035459450287367448454490887588057142781078767967875702258779755583014656215275814881468811348476500690661548410597032218108981578945107766373650466252101281022842237556380208613361693955548074310682850965450496891704866111769605113905644448146282560826133858067593171528171366254572699384928589187364306772468674212297402982715899285763203415899979236571508942028890941412761343658881937187595364779271783966911898743125802897184926490932750170530615533812031549651147869685020869080480847423480925964496658228898203788554491467909161834396414437084818005049775656006314570830921108528370344055170175412561457412423029326877582928878250390298541302794365736324862017008014282950815195653289237219026914047405510138444473873263478168698691021728674225261381111364560246715725048260135601800932382128782104548572025267447881148296966991884189190004056563168269771539966395419582430481303297071049905156037638892674543806995626898175627751622277425911195477441563846264630227011190176109138963970899730435488727973408852041295706487483930502043762959298401058639677159148470255353419742547920967317519658025723023623644867142721338876211528877496528828327165346317460539956127246037170284553622982509872914717858851817283501048404551742368302532564611538383687405828338601512608898284698667761353987830430332526716928649983956654436927209989129393572499752479000592072761493856302570665787517511979251553635201629673598657536836268558170916525543942104578894758090834157225880210720147280138157896454856129842301632961395973078750760242944168693285563335435880652296657777394724052925416465786860384368608172475217173071420518298397234483354209340518450057086679040945894400304020752004902083084871339179176323023737627297507917023304769953035300563230519797965009507346621484058631575232942642026743817852515992727585642944030473360495999982162759897174605107443739946712577932317875603202653070444540462421134737742720608381745583369594108426669578827450570078522652696148913415034961408139291373284631452296638441048788488891094961215497657550604057994306548788589053175409265007218175708796583641474860695167976301593150549143610662613179474643096552008649388301232664079833894508907221323936882469896924014141547039872453340400858767896399811859370955380550424851324153549828360832203742756984682268742137652637647734700539641073162757185676789153220601615516082473121671113475875129033298772784000812373358806125655061740628036498065386416669370313073710239870090821788664880875023049988108119131318315106040558563228624457367954868632273979966743936488467369895835643788537711539826121373182540867346660516068985341571571722785641040757457995682115073688701072281405787195851937412137414194240238809835229304953670564800592546905336321537960544240827687712647565402128478374544925526657181391520230797262007124911342271915281132801257764138432216213129152830903894566657596477221628010563679957180367260725810628139544951565052404951670917696751150438283835568472649766143830528747763315504925167778133442531531462455718151758888694500943036671320279211290386984767073388958949493404178274578097877391967648923281867718309061700946625867668353245803664657262153083502871773479558179225686217015540442968036015570824070860557616913086317820106383220371399007965733035816344120581534246418750525650953442818903089423025968292003299977986195160828545817950565198419237462516710501956999686432647169271286027208300737031715778396044444404322150919591383461339737014306710530390141945419309191352211029026249933450156156322731113023293970471092864886547363766184504656624187272638926301218849592354741881275405886109322452185824696812040397905218667564009326336312255083199181749372984090699455442745349017803675345799898209152913670274747542013198544355500872756641853606611500288138925161648932965975619297428730531621856177533859186521520724860619287920745744493826742689682036738647174352929719633514462076765439375990879126278012833179634977366689616762894425863978694359972199608267235244063571152982008697248589072049171943327084612065012751929493090699940641324979238695112125537384362975469081544627119460194265251966268189224652404693558297964023662493271851648882400057392626435100149360874116462620215422868517293339203762275130072712919290165567175719963893935990611889007150405209187632841299745225643699190791456211435738128353191731993620242532490724988899086837692890953987011001355810701622261533280632408544515018195100934544549472786331834566649597412663499771372743774754073115866132446223774328528501180713311517052901656378224943827142863174563152019989812972554712888580664512669550790746498511648769250337368491798780988895940989649255296468012361457372760830347146850562091194233538862819165159461601393297388699819183581247919304003859983442088163842338551922972115402538315233663063057871108954829261848785214413064075771466364166175729691283514593293192033242195028684228470710409917224380764223397533843462721600907143881421708581306149817844887574856078876753868419530303208503913965257800977240257683654527862861891109489087687978857913221132034190998044032197638680860898187439076562184786187095389782558791360187593272726922471642417086344700333711270075163998933939999939311125404194147751602405613982936678481338878428746459697990830532682338303780052598318939197194558582472400548580308867780319208295085311368036374536735309350422170716813554885398422135818273292696678080023129457897778287718332559698802478825012841057360404399844106447618548171790074751337540817538867953962742210693949781688558039266272009791230498477178935738292103977079980528188921188589949103263412123413767959871166395765187566417553457458022853539778563757201140953904657656492351595775791130304613319071793148690736919871399749209553660209329496641457155499488733010261529099201413990407222587424797551740961674436449644972873863486160737943959274182225095600827158589281582898660454632848468723268881306309438637001657533848704864532913478021867125039301993543549453558767385864016339942967913348053392915965667862364519184264157789275514179874237350751435742377839533817974379228761243001795518274727465183332392094429094341012818400371096629465904088329842615216160313611174686889485571062251932494583384578673529574363532837612498092499008650306840616129578884838773420613031636837363826401867886846183449849882696914218699653614016606756770108234260107574781009216034776759543396462426443984475940889585850242868947118050967281837119181733722528318672074307923911765498790684740394066068544840570641130873918558572383057264872000935141378343886004053840981899393137561270645419296083171414072325841858838051544655590886768680596874165536451604188432860806076001112205019475051805749075852829692589777917188984397987582043100306013045235023698521196627616120156156678519798522954389329269071384692285374474965983817481855475475349593089316276371439960409131828538555918195383355455875841015653154285166385771448009969528908985459247174859812477148393626594937677819950999785871685407997513694457934752520485849652087878046262466813205101774262291082143225521898681346732365063052993326174385240229866143248212895036137803655928149768414531294765407129048461898054175393427138952324110966868321067354801103114686447529339187318048892997303303940466689668890318521778768538187090489691307849491061514671234732579600689339471398521830079444592232991663994038784147699625451845234526249507800733553238462557211764489083439185038314776183935766291146492601744098799768234675707781018678686956523641522491393149209632998005976816201624196029037589564135487945280193047958996158181760214595053000669959011881275176593592036378492662734226048434726859942892330610124651108295665574471537257797850887252736212134243462232847988338742437868331949086702302142204985675918287481949092479301787989104668895489178938251492514058049680033424853811003859075454629184160779773577298150103980822135422014060417866297442126843996375325195291279359448816911846077458801041378387213427070738524875524665400660842510960268526663907330541298503830581186477939622028628349052632954274097131778543659728560987161874762344727588177305496173679534710943480700496670780980962825921340540583859414930667670630970081321744527814754660777872641276644269411413483810248795487026068547670112954404203635270312215608816162114042116576008175333780504820608710021994641948352280254065590937400679515755912238291129148014375533783365179088782881642999027075524816599782699171757479129462963526637440429145398959138043776002537141345309487624461956529769648768328828735542285558365886407062481335002302317353707354089370468426901479076810784030179801571543277322621982376452519733850407970908477491438998709458697271985357511266124090519821445136616591275022252757860525934387432820837874810775788903239433996902755312296100231910310309778599514558290462999712700640673184784485578939126876170409365737721224348444365551170789281527110352673262977515279543306356929214059087485877286192447408228340343540188683417415029533261575940473330624020594258614683822501136432250148823077029389327855592722409110260943996490803793939503793314596081223524421501888954940001458147242658298620545115453254996258344158361480771182207976635120825633240006908908887026691280640527036723897859776910565193567605226324865101595811906083095575278373707765981476426972556312861192467073838088257782911829520490412501340153681206723651669757864482285627046433360797753523614986094432105779715828808664471521063660118778336646196177531169122810521489634878736795574100538633780304270939920899498696980124069036618131014975606561886038310844051308237997534026564281044136930379524199195058199375163718844445460604288788702120338211190688210808415484909375517107774754632682976106913315190563165704814330229134232625872307831591860405281359236850443957566803764078929343452694598519147593390214475813328721705641895610540086784434471084058225061572345667529288740083160842267739926698177293284904908078499642150326257633133281331435587218222771975882766058662195311662509902282372727136041361277812536107583490796895628821124470485772774218517608482925742216644607925025705214720371729066303414477374906009872078612073097562617209606645218191170971063874239376639305478390603182063523162393132765175621560069971703659132216207156087345872505782971834782079117507671870405133338517625747469997709255968260736434762333599728899234397843203446356116407347719366290023347218914559886478723785904198684445136494013330801857067146952823257153720661043175184269789845780148717237472328827944828768358966776564726076379014647154116393787547081059714674754209926724618141438479413357670504465584964305903330314934414447471836438042407115541521557663339686556080256057870728517680744479116306353864930556752947415480798546413116385803309350049757235875958972221367256724106215127239647899130156563259113092231014628715329676669627325279777044407757035431983860255921291267048335440284782831047933254031481800058289248076020140234471989128420393395721134320051121304378273893132815443591641681748875524260770885954445095950566540879913209206465964850831087396364390996156846830812317238284143565236704775125580845705631367270520204678577176013212131840927236708242223523583570025603214224021567949206142040045418546792630836686021261779654180069158717835173246734796273627017104201128793299063997773118551664431206224053162405438746040630942355624662406277891594491205467455218394304273836100251000200379112933009118728340221129505061152298734606443744933545823024721439197231711324531408561890935756095625712422892234939150417889248694965205183775140821877308179385777994529607684125594573726539072582439593341047581468922769966474594731672482344390453450683715861823531978796210136313039724016874549095066526064983113350494604532141108956598090539493447001567110364629926076492570723383515518868913549066427525337048940403224967283516113094628627271234904602008634891518015079195928504164739569249630831317363663243953094033362640989324360250007737679255863055406522356179355002169849942475344624927032694434532086761709045971218702848698381317853048840688640217756946074661713420315186992435075703351227062200669860726660681711141695680668854151650042014958139862977860199589515669009137205861353462607254378706653710916588304827750186545893037824133357058304428969231063050239523644978150496003583464207966278091518895726975209734878648274629863469203755126482948889901310084027615046551276639751925108719699010588427053211479094533280905719989154599078036451210193040999669533991055826835759890400588051983151712199579717993710775498097564427298651163328142224400710055022640718061787872893364135957989736724931916743153375641721149123189258565249579802360038092288446696673950835056647781711363048469789169969761596170761368181535343959833331145764005255859105188960491398706001517458324318484015309507622087524506456735215287709627867817647917166897495907808630349902228644669176924472054979499064027112557846680565804520671009518453735361067332703572639326211303889000172168283270442246041758747619608997203626893630679952636428076917405221661229319033813312160527850739062871754896173496111133996493978894692400311931263343215557454820681604154951052388022405750327794281924767488424653751683142323985800950061193932309491575713854272899133297711408442604529711022787464080412975744652476942145913568136865661260911023625016350980910740405564817926530092559959229944856873727856352942182912750271913883793275164000142540576212064721755963958841301053579455787918228521432101836617542939830747826604189125555816884265655758210884857464770306093435168195987142156654869353497519405980138965117251671211837022288874978976542472787572002676864746595712913807089984319518838907195899508199832817249102957775955995489055366462714873884982940204542856527449481522985792089597478272727890119429551846251488850894680300497735159311374394011393161300297227493731373225162506863035286584097441534798920499596766793877139425018721638043015547983300073989846476302088132806295208432536446406809978313721260140879833447616592750228220191488182951152147012965869712144084199106077016594347867491431338087671590384870609543103671994763192785558454983111670847016894458340942965660429362455358559509215745316042366728191618072736688649380335069843779499594249290799715498985103098921230849185156880300256798380943302034161523184309578514728230540497863438090860137789704726574367585519958759164558397764674449813225755067875361793064907717417385816696686488958842412250927262383315032680473836824135099165541287618716310264822347500622487927540195318774269978275535960836024586128878975772960587508283034061048802948618308463802960900245959589586706116239129258174745884519496027004550792284667974647102016847926923086144943941587719607548616085784996510721780667017272497662391187353161221699854917781871189774420705765925166793669848640709281605761525088588986896614071010736387154482216709413925176931710635070906181401382944657868754436116854121358936795134728813414626929782846504534416679703126913097440809281261046372436837400419173948099025904640694693491882476350010619791239377245923733006111434866535749700675638706365162031691411679683994438604252175603495281971583297920909889802301132406895507921187134112723025457417447831137122384128197610343973182719532924154531324543103590948779063364499374318400006756025355236641430440172806572296235994142867697120961528050857800256215603895194739710085458885652912599936872935534202443694073364248511499765651253898046035816952424660707178513761452443021198295614216695438091460198464063435491633178062021280485455879233698826658935575696212404161437110008530998958769109929917597232624448365191083867245975851689935647598796442774529397158686280686586709194261608541649619271734564039459695271923886036683571004567915896548290527166588113663906125998546694780937328433463353784188814354996938426336410717102219412356666921459729935427678095113033031437500411256497815497899259244889584999001897400257649827973243499879392133227307056970088567811784565360224803902027915799858352235084349674437112008300276600129660723600064681283969421540051377808025809320446061899356061224654567181828179491282114997669484447454781681059806938338694261240603145192937463717764642025279882652233896589537324506179430575899676102338560034406322584311126423021896394246560644825514482389387527990023565531498113904417812144857804585891142152052981875950270256079766311668250706129746967403645932573419415377911777665755177676192135960779190454991934881052205850900784871784651971333927980728462501647809097364458617641407064977210867711100955692890918511390125763524934770907443875246076692839384535362600359934105414766952941139053461115703087506250090651961275313672816132210354605039057276119435263006064985362747859625250610798351949131834796479005960966271466776310269629273565094758189826134426682442953624666676726146340605816171645846850167293749500909864571943475923162050119637806206353649270353040138638232124960806693045940142653404897134774894093152508293318797139669831710017663764116555022382659944564101254676433175953122032069134472818390030439022193017225828873030868226444103646697502479732720005099261853482620325393455439123437095045805835334706620009462651325942766760977083117568075802264919129715182760595289021684743421490258163909757717763388331587514082408009488391488770073825352572645116578979602461453345503180595887011882875588097027429777861887572279740137092960222340248889901407608908745004501767524984341695742103384282928323237787221871038212831115729505423142457948895565403554343349640778137864741167562259312495256086163713321827548880034391319921998407059848017383239482987202438826967290153155868397831461435445670755960560741385402157027867413641856206406645830209681093151501884950548649599539401708653826612363156236892652854650250823044556435779698562609205894112367292503021541652871087663801670506090909840611425836955014823919145256142878049259028987540858640164194555290065992253007185138693949099322843942215513444054812277174871235332162078403701504510512564971855664678489152048132125685312956857779432739392903339928381889441526285036730366500369453363176803437932003495264502278682746101681225520706646953047873745358847099525663668637058664759356007762146518768455259946072109309120331370160223656764377701986556375466237983582462430996192695666888174372855481167015920780574971098647015122966190103738477504950934537283336302356223194222059028610261206787174263220127991556748707112083471333096096897983013972813766493895201217206985601585968382657176202116200120478372317915351774576176858171905871030966568521523522619059374284068066353328832580169774346868496706136372075040838045084404877491296231771476468938708097603067279441167210468183483009989864125129420840759114189953289718193068987481078139042288075036306136642762005654499340440408658588593395462843576147138128777627568401608986065121392369606925224184067429966792950965576800667571621696340064523412650461499294225171857559547075246852390939080623570091082910898120893650492585232208830654442242932568659259247529518985566052945289236734998480925017942999182615133635671237327802246963386616358931079489903350446046488776555414520994952987210357929373710021660119544051277628042694370060471744007912075164363295857819206824718399044625405833888971559478317659431151454244753618814946656748274253074369152821672968210169074245369683155090213273447733855397670237626527458870192064359645231355717790044058439063293280894783861646322200590284966762609100863608391476444201432670047999521987857209539627742182245689311206083053704976494048499657453762501484448041644992396554182276305556588313942630141055237597962163393443628335399094142296808281843121870268598257959000281472516538028758402895567700396975521306963084900600359109051803799042517228248586547727262044354770439575446599644443270515832624136498713349294538921052758230737653320206686431406461950354807346483433922491435247834753176782345922949360137620352612368511989810056635597994100633167437259015417530521567879885161875448685786182419936612090107315296258624407445073721755330626410840349362026409865754726142994409706240593071494295651341041928538695198904201152322872395936887835760464197818871887940504402855373912198366754800933072671040500412953059441707421239160152828239144027211844397485909366656196955830659681287380656156397746247055102448831729433718966983483988471683902699853754096324981642608349406006404948315537955402323582616005443686953652739491129186849011827434329491587678197600464897765257004948377956789963230648378437343629855309185846401320685091454809553812912695816002741134247156183608317573158604093958706974272327336160074597958565904560915391239100429556541691599644744394982144081797816467890616382280009673671164424664044804295706618337047306875714828883885236227092420157662565029176627430357913422931596467691774675675225573265734078367739839551617671950998134268065970860631009298788720467625913636382556204193166444767709226631754766044199158387992255926837945989140562488772382563360762886203421136266156794771882964457967047242844182551312146130930920015594316688758098581655839206284949990990783764824658184318406823797912074491099874724084652651298887993975370029484884570105880684170087158529899475309967477346398751098750279815250076043793933813113388669256088859371713164921590808177818460617005384332606277321212999663838502692022721152314206578406448078585495391634436047139664043085643773846085578735303191242907232569481727317466847825299344673706951805238757609874079806135127704953539857258263400943426319355143173733816089373402033759970377471462515244835898771302852230267748904153178604989012929280259410751764117396019332728730406755486171012219514776418217565599263208957306780424067697156133071006946236103242112615943732361794165378420901174035777453642625375067569930731748826690338983988440690566643986630414762601935289005443917702814287677502941403205820549514265552290731735528723906100649365980622028144286760259257842291853988502993792676336177381162076401836278454540669886129047501624717632236841177076651465474062409586755530570801971095286405386767741775857818653065703611717029050420648372413843368507080683736032647580335286052008544097376103174718027886701708511317315077487189916390967718078890104721256403457872267906618937806803489859994637109972439532074420789249679990601968236602973008791326604768698437232567947313612062752352571618142732882616495329933688986392356955644200374751730297866106734432488589578786879627673852035104551877373890500799517788508174711534994083623620877819580218071454906096185074517784893688774050296463538692348456106978226566432417556185207570915795559648721012658971653395343145294403470774869404343695907503925153768320463789842660317013704704528458253550773117949060259338428802321027908239358667342798497324924352694109056021794896492380804217124931821983454424913059726165032582005016911755587038289340664075965308650355850357688173498305138526245062637347344146029756174361233554024469550441384925467816262917616151578431093214980859242003222497118989654288499706440392864383962245069080459743539379456673521474302579134929242891692168252653460258786202622086146917461049433450417564470826025719794403276334157105487586008915267053823400165963283224968739627425669633942247359276885474722952475139058448955739760840708122197283127323240860299654299566434781446247296570195409461800582269287630584556675857145993096131763153623730354746758296475070248093738792843261841689936907317549810413451561625450389096506707159417272144345075222784491107872850898301351883366863353773289916225308352363881680367209544266176933554828100446100849995181480748116779872350183554329267960167213083544852934780623832531938363781481326308529756634190075555053238293163786310208242052760915907183050588766014871737090481630715363787746468866569707061952416429061143526178524206271077981505413296977248430949033766550173585129646877820986514851529950235505517261153029739739468753100875191059665260610574084711050995950884176527053047381602030388002888726529702892226841829345968599629719665396794892119683613296665638764595936213397246479548756489994866398038492308703659775911998822446712631943395410659762161951279537078787216662622847056111795788489413068037692452166686617900817491410940397572100579233775777300860220643072384392240047738806432260476967651856608402976862251569490826800975750964050943897742803055743638581490629029696312324626390933347894437968043164089237921583337295387659624328832966752376213442193589616378028680101710822214385468543019602885137959967635344863361033643460985473801425789411742626023467557379867254271023185907659513754230470644639834786877985258396390162084944933935073789629529742043386291390351503509106411887876635680190833223107544910874983009982524887057139874369216085040503779812797263097421773654525204788757428250349475354870747185378398185547933282316148082387378942134977071801097745898254722608907146142662559033280178623834605737522263293059487861035429348135506535403429329937620134874397287833467606490020089602776458138659803427987327229734525153915473853875765548167809486682317486122610849539654272338654997848128407292784748920330625606014727383595424802740134361244732501609326436201906731929534296095432988323556121920769558467009348785409922099994197891719477307890731014995173601779326650609016889545337999060920009406782164913280222426139916398790597289705797754458506122657920171649347648557275224388402580310708988776469619652343024721862466773251411277176285567717071075322965058940884859886118999311089349931564064339181299331438917257745371325695470461613330303283182113879598779386516860971535691823015129639692105213678601615374655833430313217079290905757701900357617155101865726838651109746281616527388116083909756250994236182667178112646727375908835879076309003402732229177070804041494326255246301586596577912415012185845325905888177758635225470459803527821194818361197043685719486608414696012271027477178205560255694589583261655617898047451838094142184116008482220093311924308907101595988462130465594880297136844760150171974982485124116766235032411053842643611145321121080625629722765055004775962912842674852250956745583051845711082461609512676598558567994695571831944439945658267003786575779950088662020605006014317117492211060071953367668586188778495192276135200266908692128714523892075990648963489923067678722901385517884842951562079585690114045902175830720786783211277946436339288054347741485325794232668562599461181236402572597526101610337014379732208227276200736732922236713906230959361869681926483117490818227077820872680709235824480747276878700616737354604415534634958028355075425735208815733990631208653336870469124068581215063992626329497733649477579149184180976249902383047118080121565166503719044632851125925541278820061022745610839050560622943817909389305389222230068208349512137503090850147101631388752454843236240388599832201528529114706899450377627327121717898750028216781262843475213084998924521510457069923383834776990168603550044281445604611164112403976382533017354809477826445222800914857091289651221810541644506318627480538237196505864304142045761545586273714911778843592804194110202490091763977293024137067031196340124796509142385631198292608728952575095543894124593534009021428125742155152709920216515978778733298676520394333522322793288424377978847557830532322141065279726153931390224428247611875587467266611481090680028631921242262824232204401108229402650360440914126234367667512928425425863252258306625391969527177864835861525903188202244261323996486550224639085705522961591380708253112036015066103400878453924928047866274568597720859701628421865402784055739778105196638738405023371291787455406036777617662499721376893119473055263187895914025876023324533999366453878742552012591398057387701530281939623932095035626885865137922135790048692123349907039386245159251417380370649883619520882497412808454756733416009976031524933963531707039323109373160207757516993254361223110375383251870035084897673434628093930074324274632835502458273186462140400141972119093886605795965822420562690465649463753457340437758189357692872246915580101104554774915107412316675991416540534722174258468061132929261689861091990824492419029187641885885028023127817885781713827349256926261067651617142274890262429918235678841988173664280120369221633590416916614404146730244278299875979441335696497772969309384220634692679586058392250620288048119747823086576879396459047028023764729783507731539160276319026773025787925729120530662931491710233848167322354664351903014442603640840524242672632631408606641272005737764715734278863914584853403097038797846768314962150317672614649590900406893949834189491083035542005218008806377132680203526089046603046033010769168346125640614797108429706575917609177610366901402132190887345120730736919838369982794997619818686259061577033493072793805468171443767953144165059111655201930857309541608337450329293615753342911069101588181142513831642637430615979437897003180661472998740065379434383631273377996309409207965361439112269793526313756899183768969427958329009014090414631474707778436945616552466547480174832339423237193444752468076603873520356516232688426492714891215257533231948325428489953027744361910123578430940309842881027422018563762730501084164753576248401049705757957556202125527562996105990623049398237723752040308666155398062897869153817709014775853205517950562888909201187997229842478290076494161434004333777805462702209723380404160774718426829624458309269249362283179529620441542879381291740576515465664248776734137138446349041684671092805556812442011372619515643673040470361028888259943778957992534333770299295923865591594584561229856728878625816231983917519386626340692928063549724400955050008272906452418059897189559979174903641986388874207320704693595269303602095416959040990898952437620291489859332569472921096562273314368958167092778614475871378604709513121435095629292419075098132930719811339189985046532310000532149345469819102118222614004131106789997491452271564239978465327144836509365046959791277926399490254368222900786380783498530420395129037449005693250502699608751338943001625049997029938937830387337646882265744549427695261926785514241893086628837611563051252264511766766262609935834458848703073246381261596240446757036315076147613704892776342960768754103275459439402151055020240555718031607357951876650632763670575527120627627269347264593721091696555801108929195450668418077744135268966817553097851233515842729386995607509646596254362493201722336512930640184346686003689338200615024609527152353203285221050746131319948787190246920062997511810803278722279301220016028560696973516031662197604334180655927105005137408330001792962507105027417237319257022511818650096676644681295544236162278913581510995563168104729533695292531489522166436459903443588559590390106370322860545541342512957264056429750507223444957905355702444287712358496234872445829235708501841726064062446636619694943906327334890949881530606487682212781252116972132552052652278907763432243529364747482504218894107837368275346980560900164156704786378373295500218366418654568123498199234765608129654563736478813843427321194875885049267736585785665627696831197911076272228108710661106908109413433140460593365599991171621648177620690098575560710658835621784061454944131845524865528750198591781105327532936992950640934524601989511216586062112511086912407294446478063777362213504690105527295040172636753959926187282294246430699089495633813721917866350742772271556678663562405767590206097568010541701133215806077488381582801590495754462630623123917827851416966130902235071168746200663225845464953824722698090959741197503000741410180387131360333430749014139096570596604759782468604994936520089790050472135917332945750728705648993287147766502441087798460515455280142161176444651652388386402362975199416931315773241072128057657813767223611901548862613762199799968903680234207341569676752268800039618825995171487361546533984288113966482900080304481714302957445784820075636387991546910459877493483292095704709693551835626905381517702895639004456326612262617007620556182300265642890717577850326926649654880090326944140905318001253905603971047840436677538040800821938036875391470095381381560371676697460455645311707160447128057662921199980967312629290506277291852985220980089217984198803249978012343349329506458142849795290087519187452635686422960484323820262029392887260045910302864363894767477009056347324289117301280917098900809977473190070129710818987431553641002902889965330809617364110225880359905196521098219463232444744715117928428950903074592144577265326711283126470490227554885384486447552190521249413336223473564642202338019315620497153221801005617478749591783080230571205444917719175365465682310116890877122764361636103942047709531928921651355983033028623382131841860155452444950319916111298440076432958834448165950517771533709320891678108444609895845920522466702639226972644062852872786839390519827885324820706190878104503673053914792930162134062261949834660458771129347093988624947476735073312425490906737969465038122961715328321236279783181355215378367562867045912295569708413887382523677466906432092939100209702388846643007772167301051883179994259922843430916335667917858344366108469750576871951047368222369568097906982302691423503340140188322225800793062499015107617398137072120373516566024049386301989703267963514342095505071523894803860114459366860113584961745136741624141252948276907830817021622961081984260645538264038632790683666596878618941282418854622418423604486832321665705462987505991855823099029354830143554386241885886557787452686722123539532906071126145094581119565811779182699102377621062934531669331955230111048841785234428075953649209800365055887778675906790848719222284808864169453811777885448041769756211662345780479012902068574847285060583648361832621325265143114048903234178928561502382382810873984970052345929064585285518193578732621146681683771164053414272758838593215025375243167680561165433718922464405797025687670554710678938705144413567706701813161461829699071088661938472123283527809826554034344618838799922270927222652306159372116592161401496567686970818953460829207623438054603330046879588140688350575146527817027090842353074812438511977223529973085432795648413187208686175066973729704393379376100584817879257446000861793414784292036714464231977675554805113814293736295483837906676258309185580172128428326855096902154020139696013013630965143440385904823516472357591369515906907751468097783818059770419570832885634522622410412319442318283684477778846186637341880631891174594089120693467283543370527580755933816914330350393170839572950788446091567187690010335170831656140772589313619683260039599304316144289380389045032888763292641244044815671723209816179157548944503986848876731242320127571931569151665509018407729313019502363434412222834670408283932546617244749522695514760808248393589571348441651650088161000437789496141643842928850232296053265582892146861744903369035950941487349270694080880157038575102351575729396093360751571895962014445390528392709761115487116211198816059923602806033025727921842995097625318549176579967299407838639997228085126548059488236232916431021288254521164926859612342235239670547725058801429765995006656989247959636256628889417856179088081631484333829734221467685980414213365921798222468949512360965186223805252846472517535105891711353382726362796183410800975662750307112205463984835695772561612147226789241779802403278640970276834957783679632422947237874682112335811516264936667131166903517156301179265884354745137475510807210374055007659740353989592381066440274616587651756741837409216596613975539370054013914329013515717999377996464237781107055057650503303055668574447285156032658054162161245542668152848686207242201788943363526466829741837878267065440486929930061971359958298817585110017429994821271713726948430885325912926503103974575055782523666510463015349803836388850623679991531348478803854718735131127963578397512081286571925249987293880750320938958838462626677285912222911358224989114255949123293031127016354380722007083324109887001464443120434649668199784726599942216470920359945029387746149471600313367107656260916689847138343965347621017772721405564584282943649132061487130268346876348690213600051897403541614128965654072535894201260024874566030766015025390896628660881706943597602622587702911304220545325929989298360216537615337024463841577575425588267740927278956842970577345846170854807534076716070896718064481769033041097210352051379242352542092055399901665357723806198561842863312964025154856058878724718566975144421299191936550947746150387058701969061361872922648199575029439213220437920242032090697442534545936928616473480406581511240359881415945540202639430157063262569142680592168763334940342001528545876953485902962477962113190876504908089017439021005607298855458514888775464853352107406293437029287320188507288989537811107691863193524066892552665201369672839291606769552961267580604671182804895188637387505269453417339902562351586053885244413963150874122142701351203737227969962321503717367974327908839103282495258014364985089907215692842259287459328552246732649454295147368046192409474611727382243591535205107794647471065542884598500148707728809883204565330589789610879679194060763061257806120328434440918437454497467549161817294195795710477234624625742586480852789720725332362570839025252254000553686986728102538814788113098180494504019494996161799322867418811236085230879883968198866082789574048375047763261536530850713009805563295135684366479561888488533866603107345701824059950768807142988919103909574990645188631095247159870754780078616772944163294985417279080933737595664754298729174014340796069350889306497767408187119120862985216171145797756550790864405075370446205198458624251478954008828214328942975741024231723099906266864441301115144721955192894433040714609915702002391780089217638380550802044376453246976042648849895450154330470520312606865935963923423661854668876901308546841280296277677381035195139425247968919052411050400283219335063297196091327603038463055457171350903916336384234375624450317749512592447048464568090717705887388834632392146288579770898441181229095703465186703490036761638993870196206732286146603818147501463543464183480942166896596422362855863869173346236576784760944779717001911453740725838266605033808106407225892602022931841075932103931078582995879417212132808497823165304958762629279108968486555608758405671590094658732771050762780259461970578903152988469003328507700882872852868286611704423065586104382795385768351030094825558241983597450043342555859807078258137515923876817556762355952082577525074712379936778594197403525702258681396171783456989691576657441870905582436262242409257729572142812223772389555215002248296013866300700868763952453121333223077724329105469908176567462651861597362236903521643409179355958006299291192179709868612212493028507446926340641594052435393724264950675397344980287142723757726676514082182135797922256220881249608859473878335320189996709941725185101139450354896214149217698503663362245747588442315268142524615789928732401812633446712466050001783796581146862145225278985060432119784097038427049731857925991247996541730248137752924859222024639111413703410061989251024423264889389521787172716371537629876902306853378014483627033802182958877946364140010989918699501359510299909264476632339474121889679186114016637771678344711230753325999508123287146332193076270060283247263090704317957142925327852676838022332920330631225010538293125213867002155205295928845888873679549826255052449550545821504868551435133932259522006206751005780007162100681285812450012073066317671134669380466740533687563007041081793318030358825628356816080157229131663619508176031667377834590200580667898161611336691852931779166006800265307173158885295990890118280896376826750539830507711221025183778949333649868339035263464331804951592110764193417089073038164127270745378839969671128042437658688651588405713141722195933486648462965692221414531834768010342233986917502430410659786955885558041214159973847273583168524397564443242525256025278669037199879273830439023917932484781420843302478403584555344411814608337425850568181713232153304102259578213732596472222205512675399089350391067804583332928853880320819941746392260262983158108335202250080355481117911385128852161475181596135141281858257878717028109501747132654688316662151277909272035017062207111302932819767645669243348938203687819265461390040142791952485158051239871608264929416191248679796721500805852138152510678571277043343378960157538503027454525682607784672607729907770100808238971041174087204097384007351544696972545736441018567044172820149824194644388136367547253525103617070029102591142376603636332130996837543339715016625716567343766404264560231369406310121888753422330199814925985072788052925417180834165114209653679040869692340319739766911121275124260124305974220034127748692111102920087035252863751236545284163986203150957978873232920053189545079130711526247534286706797198897731538937166523897171894710832616210711357831563576649698344947444366421677417415253191971694381290095156859785829669139940075513732118844133181888071370468322935443414723859599387278705397266140694601751338645487812776969207539965483507374537696882028753190866891996146415878464536218459454036947105307166828062277935030874064834499758433081129829847610682149122092960912797094824983788571443449021577321568476514712890089556879037549528157924037705415576594192033337013338558664466987116752591107622563904572253435904542274580701993195424914519556794719611037136798996362828235672837746462337800781371866928705576159541248274438763285299313373743833826643399821511296846096557763487289394570763059226083592069216299312256586024575418235326786001079709304780077598962616997094292250838656835838241218067502779616974784003391614089450035992788542981711387322773780278609229053746501414271969080570329776983642645547550737841039675331470895736702174262410402594720750622323444615326550414951356024195936338018736506914096222537203987248670972175056862642928004113190794497502936835536182094618224501410830304138348188225849050165536736146198898526041474357908383284757698741569572247044931744791192837219913927453500608961490607863812111539709869322330555848874087279214440017443204438903449355145300722279155546675018908638200982450225720804649206027347649578695037791261735907840664036206958232892831766123313217584196244538608038451347341151526941032753278971244632968605107317664430890092384105664781894223162920444762895842442540634168163560973091029185204015719724455621772357225844573747974463159977046606205723375516653060402072929699153822230066239587942557225989194920725950168978376608950931614158483512038560850583244933397918789014036094199342091127540174019839131773358950367257207533597942627936072831885455991811438722346910948200541954156011974958758955725765928082083320464252002265165119686981630716951210552498483860851081565770686953974241287770355970041079409661092463031277852942563001519258496247395934131274312549152154161316180260582559256664547388344523889091326744588809213025277703646605211753112870081259314874407513582978201848635965217727890687992611024853486975655488164919958884464358331863106603177614578537536473248570009114386753971117204119158140475651335601237665545402591254431701478648714090113376069669974980257753447752242316978343837510828549864263550024166458277991041586797980580239386011177560745175607526651833188538001291990460184635194281538206874081462362448370487097730279016043001699019091004635285738904679853235604957730436942587461864991198609402830055790035965217784256985481484369256379416016529260069777019333301553980219383898106599254559741742872287348894696592899768512520137973926455218986627350826635340502357146290028959267223159668502722651821243057433366377812930131562564015313236133578314163165206653084712370662120881442819028965453938337112318191847111966447848915557076008905736720677372528006029738364501529669583854701115050601079620830772295150288767205659720748438735442059987727922230899396409333388116439260291373376560926553702925488924538152303057624533674488077467883792073591953290602047412338776395901118919545976633301241319686492539444055683999176974580674348115290420505015624703254489253395982266558797573688451399175968222339010352792216964427542853683776436727157846093174004868358454644586462563852459408359600282769598371056324560071990564088560430374757241910895209204304225004598622816719042117558012895097085547960888883800170789053631207840364261117543132540079946144776597371342250999370594657299324800031440072295011315425929940660724919078812389305831092358371345169895005773301008541332292087343641423287909480096735522051154169756821984294304298118636156636464986246617559006859483462628585911837490956490833230617922988771669713030346350163698338605438912763104941574133836016505811258223629186585766245551538398733861697908451113089838314163392274847586296969710522510230858979661118788788222178699317239863411793079586252017572244910153185733279723072984749308621837935221453438850782923951904351224389463058830244476245092198181437031815980741776976823938950812917582659020504471053262711315403564346039758141373521797654435567746493303860040068433770998925458227771922566501593441145989882671170381012240011027200713146942379679509505732733491073993763622613462202640995564328306503199765059542658464606648997894232593638735283448811989579074436977433791531246846968620732659015642497385708826022147524128422972711284755787366987436315243657095655221706743023762449003138411806719492754387474774925169725114874463010387548730020151914741475374186610010252309715368774816102102991921633648691075086510497809139592375331305104328503888221684977053889341876573830217053157415437705678159682506424635137835934277580854794275063059847706732469784303210400419411112255817420693296374214353078489070444517103644207856224805000161638296140481349271695163591730902857364305116852114588099275062359403794833135254624627380199859886990429220560590471287318841069144551532049593306012997497884205908146221538969391367738160749531449030950084534787011523801588271551894167461675591742823168818942536315375593004415994438504106995723229858601039302849972643667850318291029020585933745030668991494851755296981425518628452382176913559922235024481507604565226785770467093568415247020069057638803590262755765361868545907106277423726690392152224466642403053188767336753478565563490853220224394666848748390309897223119766147758331524421807500062461402020687829286487524221019018420094382872327958674020563335315177913023982471391345289893884475199659825293302857719472447245912590073893583943181904637209241810691843530890820714379000197748029728326916541111133771417009791186899890466408322490901527224777761968650008166100370593893845284394003650845298873661284494221754818258523627911561765798816220482673982532555525102879757795564336952535376462032430958170299370878206131187582036240686425940367286840262157187858370932956050227410651180214259387539343518555421741930066143257090944524919248244147326292707531574526874434098106707120446270084032157795447447067835076589702980598242319177535457378749905160352936285279452773648366619279659469661482234044892021919378831351074235223935023674956704497319831103375757006668388367237262961736799526733548435251806952637725756687212267685341718928377512319184557363952974309478476829801323065910723981910908810167023162546564353609092786676902537418872289445138545582218336161887029101929024228289969383868082828480264654095946740265393055951190899533439258721636687232673032406261373460078859047095924511629677533311467956791250274097142808823024185499388912683972262347643489562451978643833970563278998234697335044007133200117140485816786811320460040636378315089300236779820088770687266975144712608495885605291407895023029618309161317476919297981884170145272438836618145775532501889158500576363078914281715940489552415509818920850840454510453773108296930063187042524251988285902167175225265265251795031373199720969612873193333932765916613540111646750937307883332163495211188021174602662672696180035172243756995883067071841757441396862796815298884575013391734771520148584155125208424987995593157528448185740925314125131537370974992915912003687085509156011649448446562389508617746325822047588534335859623235398026359263413207474617478711601252038918314075410235522124835125837783094176725125621125882532533316473850847808744500075943800186633368298938399729355318515312849410199872982143081150191709824836535342374282493499632001734718762839322179969860109764468676557908747800939190509904667575573342083059489906927180154000186558227138810957029987980729524729289088841638035241902622631318330620778077968127158579413716760156618230654114900924280052683915039348184558416755909529238386203733733009314723526817725840632126698946150393403113640264619305825221297147483520760304725573575829652971721959865515020946693090419234191341545204698610516184627336349015383742734309101072873609726094620556504326393067558162879626141984290891601618531510205590878043507664069791504153169486492504394452235804809968112276769215677822978248481874539024125641779220389227575724486551562082611865235992798987473279929549678206799331216096717480944958081392441333386485496305397676946365607666939814094301708093363983231308096476992290362005099875662210826895664595374197509908399221558517230718543164839561459586584734859250675241889882010933525364051026681538729186490983735439818996769594762960866433592056465325509332764512342788091394174811718259258412396898655062875117782701354705171273112953971511440052490063062626286163108144709776767959172019236330256744259886679686790032776950161828046862089924840745233358303708828475576481971351054617457096960190574574921738789378454062008396356633203180980079416012148549772355885917421072941568127536460427237798905140686797734427855083203270840051078435181589577095822470362420603706269429586899664833501804768447817168820090741567759806356864408204309986619616782794297645703373890632447724289753519243431465502272400145107260449613739953168340536112577199520451568843202793904627881601311379132184628180122740362642673581217745578611565150384697237369045712555844296697644666238810226634704029991552216714781819832039791469684660809738981791552308305743894352119502038375143687994005686405602782075421407069786163607784248093384914297086680488122279668793496756535101647793264291295344965077016017362754132008282939247766643866652309651855028346778911730285571097260408141211198681891929932337684925825326842136225501787374106677306692935883794834792246415588386343967040165069250971979878738181877403390340801743712010484006122345441798073597019325874956265716156004372102582205705876579348790921586591816468131396085462511882034530020932336368546425260303335905738059348640670787834907816818417432456961212380064552756637891271041374244963606662026265263039201541095185733872149373377622787096806370518416998093299439386311503874281580955606663002946941819939252289885170933843071417200347545119335241490290165120103588614688545735344223795343821901674327061710290847344860948210534524860038644393262512843745103395124406922191784802403936266149268006065091864310139447726823142448305245068744558683280380448293984837001271968727254902019100149666794445646909420863689920645914806965455631459919251280051448826611812963535885789371033553919728710339998453086998704742177085381539347055230987386790411773803416353651385962075895613976565817534521830458206010486293581008253663768721089331635881111474197553088185010123020705901559919909873125634450404484049344316940201363889516228337665110547590272569267458422676520836637326315614723163836354081616675649950132531568190913821128901881850966137915184625618582618794574577948647497270436381532964952593858464112998519173358768216178444431982388817988069972921115043827780855610316415119217776714773654632787518110070344329136765724721575469242760007017756112028381002737621410679843399530671018399887208241233563483367077469657483091059140875729751184433528386236444195196276881930814592390260003860185241590432783706649122223008999650704962903905903046981966786761187045699133947775200442745135995708441366565659655801903611501080207810388020093020340193567487862402639045842276634420737335616231823693992451376885677115166851067607829598802637592393344101568979314655223505640423388682849292319333931653484420883169203795549793997490889543806131038863345511959403518188729375183263090100320664051456709442441472372849957648287854937758052583324615003412458970767739483346033567045697697421653432504935100392967330908141655226451452548272259746309870906607551875414670638363016042508914109754160994481984303987778631842056980224398637503394478034097261129399081987531125427701496844446489361250721244930050003382191136613310603831247141866622625128749263440964883333276344950576483290823403738894669120097387043780377344371893349038871993868663231970117212240917245734777410162529973960323062418679652973459909807529629496421513581653983145790116722661948082726435575691665286421220476316393338428393548735071636147273321140611441770351933815957812428763995314484638768631304083817249820125416557314163162776554907181769001479326796752209287048501412503303184911548538261064602943859674682432441471609584155379212026656853949221199361727553812126756627875318949384023780005653296511179335873601611448376754942241308859033448170143019998342443752553469384532769265786973829981899747469724127203071753959981585049229902321501505261100685591840975410891115751658266535783230818622845440190094715519860496864207586252817947837428211429058555163449353049743992498448800551182317909264144660070337867706749740647231301518428452972294586427199769651418040949835802959591880787937409752772096211300397176203483221914356940013300281922436976126005412407075733630502030085055236458170015467712617889469346520892204420475033997683491423480523839787947321183532062529936750861004299664839423329816097872550392400931230143733543860632574939370504339050076429569048688761956828038922175379827726263307872358290605298478202377937902310779111294980431822848243450588423436700949787431064002861327056344956876202341970069538987575264113797292287665408833412751061811176141039511914333174457364760256460180018141911106771954914283047322606542129562219988780322191896835459445365710134936578078010604896905102289439209240393168098573015390877412886100672430428911282853167624809599773294042300679891114569530209071380653500155532608200310682191871367336675283907441394990139984335419151841810965834965934001738080023409835450149574620197428876783559268348994718822828431735387308632434141426456493746746969250525829030950500961592986799450436614597617184075640278299385366531023297472087488395423398362414363355601590673640450660735960501776347957441477997609938725355020637000857722957788901122190368034078436847217728977766615078231917429171344973988707701704610057842324256893206401610547121531491439453878641653593770813288965606811158448666192690168651618517903120179177001123397718657353323982062406959975744749223619975570432703849450866472236366488212100502302172337171391931425559180817789792869778434911326619349292723802457791791489743938480146921379020606231475671646219602922291424176684531399835069273023211534037496695433697408399780127430025011546877184428661834989479444595519485148514950854351983464658264195114511845283889736404826714929054368129931603978766660553986328827471187347142199871908327978202520722679583115620052538599227772933068496302024957485728834484172320090530345395210201707214635088508835989645899090765526798097614755789061591891958353841782929910332795634365405018427922485010614770885544413284698458210905892568250532840478112761867514174206675034545252961238219346415996512958450160835345979027628849683943177670615865610767886165432092595807434007057344015626454380696434652057696357123087318755995735024853199485831596334337753764075813770023026830110332225044162419976446239492851603104099046840513373828113258288528966191378495324096731836684796497301143533017501712968435814246191400822055205953060621473792028714735123551216349072485146709455721344133310295473629581413677418099811541611772148318783466269280467948310997763511310503186972977374451715138882555751578320930889572697747967108660677117189808955374450302268645533014658436029258882194158250460050121843380173309216934048189228458943531741460655819147754044371116300081866763182128420464347711865427808134741749367326450218473149081828648966677289120451241108089793609460565779633181093475219642743287043422228639359537658581322852739407473638061153679122761901436567359388838765534379877601624253953837772122470957972027399015752549247292293122936181841581031109407273517133348663464164792338396956994269325210114250595507714403509211288090642294159710446066689546722071474567680538694520971656792495811197523428731503537394696216826147014345078588140714614326270472407072456256046424041219422641540493332739576690428641350948697779202492855222835158996347325579456519529349716262782292016535742266536639703371845568378489044050092033476134172948254185964910468934561206364913326679341313780574355314858674585910638059457698033482284599190486522365038768390242844858906760909738735694000438806482180455471824886752519533933728129188652254501608303680432978810291362968698926334051485324262732804476060829940733343761806769756243005946838584231404831934542992953593209388393198083110380638187141922307106966495103276808193023913439485159382931673618230037839002716841627161377114058451030957251697567865996355665374253407578496097294255803478590229053241775094849335346095879586630800246362442027626755135656085408341268283172337624701876855859178490626842220961963741666010581128632472187110831032839056546484251341150317061359481967433513706009602329012559723813172941666632449532340899005606528662816814386046013915027134352370379881610646777550149909449831121472703915260829872757493004892661664357278547103838930647246259623789468414319161291591546871944780034691824801644173254147249244345678462271852643683358593372322445516168111195299260891050711151555327827633872109381126597442008359205442038166696163871767285025107490516631208728604044183146865067168966997311826288305026292727298263884241420398086062380230272694671145918189701956108930556239074826123464350014383076118397368907302278838400428377579929003717013221469648818069099148413508734428409612478230727411183216322517388919475289817911386660249893775671029586904922563011281007621097862408064498132542591000044289674667802010499843237021206170628791008670574364171862688770726574080617260664376263220648159180184555762829398348132538465549120357730473031314065113389100856730161588932836899516464029771019447067806582047976064062978695731067167790609476935575945580359209837536666094490711602560966028709185245400545091476060649781214408407961076663695593928819680321879027682816851367455829239856552046100750049798508026023605421351769267826715977923276884757147108603374183147893298775950009393449999402954372706306539494747261510907452641417414050814758870943311697282932244976007873307282698044104705886782035909969526914690018361770796351237929882301190903737863481090511981737698410455410314854732521161989966302522542904025351850671972795087617310803118326172368738501121241057525908362847839997905290240870194817705463158368434147520648999701711107594276507817290556224120212909867999476235151824261718994999427711714794936207995087683896197977169251633483939652949980019020081036308655145879658641290872233166970678208152136035996044598890287336469411229540264216427416960108651805760836531164628450517816260959287912331263282362801615696053111381496488054476176552980320380586036901577439862154204751280389889406600766348765839634111632848595638389683582493555982914000577666238902603932329243878158710290470986784578641254985082212193061551032653582900524986781665431094823785387790728965649710321363232656992424031500106096348575417504587124543048906855552959796672659097288181156130143084908254740897203649624508311651080248659640037067594917365856091253029535639793764090311799863735023714677248351378344717114876435585954548975838995877847845281082779717692648678018960164818219187412373533518550201161736601822340390062051113100477250952658668967430701519566887394348140555558465378541700096714588410436950400236684840968242363707504960649985041066543765047040647432060621284194423840661666055138677357735582721957164516686487810488934372854835350604146614642895796721516772214189699736672281317785715050518635181904503359538534002100934763872143573923164007605979635013460591460267324663607906473635691455693559517325526506529840553731449166586281507634967155185383503033788314007807215623615407077910837380673355468701220680901883497737591412590205174459440833625180296937300106830856345513870606535551539571893143581207772719046955364068609433911679241714745290634402420528485525049349028062615539210405447946604592525203722635680094450428268593914537966379856378714618102932875551962000056815457251696884661478344104747267052308360040572996114550438191528605750688752908596780933032302905104839945712056567332594485650867342499839847538387065352286631716630871618074390140307281765929674955650671925735690804938409232092148667920450611466817646965238160067906402937667171617942823683177673689965124407267649110023317716280334663586637626696290372387974652912615286255918429573683902332772492376388484555913437229952536743619610510981298612228688000409328690004519330353452537077922136798464081421774979734267510157163337979294754894081353811844966231151061460018972253440353305553294848587203453310245828058371757063330414646903423591617062150211661615667883820786452798483935319665106863694271450830639169526434260416012575792646661291033478563007995854171672061389236044238283047331368697348298093913228031554739433492472083501515271951963053487312439354396549333377986073782177175912038255500222769867786171536292168784488330380108311750396792964165770271268153257509536733046871277136970562345093746241594848963969102565517561134305922749831167903243128931152021180614372090734030679049343463864435137034546789161690401109076688810316498952803938005903215408901070058653470510284819039009109133859449061681939638709672266914521534377672930936540086394078718658883601760403277489770165542888383789782255984326328078487676339132751856021771976191444182284958975509191303427776202888832177207990557911723863932590245747367415826856390022825766726156581193168336833164848017568862340590948825003173956855819000982890008031049697802131554006420813418895530837777279534044051282566774022125404126961445717305007730750436754218324001830275459211998327632023644196481027134392803677763319000350343382566690662201762132343077972352122836577370579913743153595587250999288185463135520115571288579479718007833647185265315846052720794590370854823355391861013060102951341081715812173777905587448487009330706992699894908985458515524183981035781192675736202288350436505446415734874854044035073486104077219527547569135537188622150735639825794207336139637915987640412017688321200021778206536877535376298545538595495107657836764096854758102815755561117220882776513716528876695554194314422896513980247710567921630152526994264588361370671275191476316213257333167345364345695807464555881143238191206918608967783400663720953533148815343772804126403067066565789202372773881413977414996529917962600254458046067104808832038300321990549762173346700268270333010456688245850385131778375914986159372384960231411439943451493232969103452495911962793928015189474015992045810462816557460342073667126080964784978730569436142708415434381899113147746033377253305414416403396856603365483691211851928194563754614737495346135088042644728214148896581046760862666494714949257928279294846216922349175407664726799858201086456704406759496721912528317482189877740898644467805875076857983554096347866668812316952669953757468580532078256801077892892933762990204964489860403060415837224698457062463253686707619233745196024178682188035211732995175240777227467969382593716345843471536097580826733978978343428316340177715731343523382643075901686611006714804489543627278966276213357335670489568724839393614146944182028747368361102370679662525971961244810611785646102814391800516707067707934035201731692007438417519534534920033709254011504557613992115099704177737571087005480354683427904646710745170440272703877735845878121595779349081222702761370634483467152895578665254089064942643879761130449683826880748669233897166906985382556401911083771931619620132669312667490801873026631133100491320806844979792767362608943571503216838255861455088172139361362681477455701983177957238180346108825113549907045221738733327349583730554747033655436643530524860536681446557967020638864205740037059286418514344020236920541721857131228560687457416774196928995267903854352216907356584840634775865396675836469213854105261684547916549184768316568793426321552618793940411860196552870205538268875629701334534610308894393464651283584292377386043037481758546452120898781986786503275751553102431828429870255851924005091189238848090395990326539803639156600540848517218081738497750477891065629355668832775493476173361367288890125023871773296988308740908166564731293300092184546065322504258045749492585010276544666007609925437467660523369145209868138596805605449480461592323140461931551041192733050725382406116202006407913057347440296818356973199588527789993184969421673440683413240213776922364147602376479712415292863017954756400270898532573426891316188678448637394692166152255154941086447163137745587746362262658336351514452311693120437415106670826554256705652105746809001327190933846793572672076666968687049891166413844906796474298748282427611399175945224885975888046700514429097597405760589988234086497668886773726095883317944000333027492029598772950628756506582443421832858515961368847018385188965776218836103655307810501835629199908231449905017472224304655246782342391037236203449540220356415312811357776986992520056555396338745269770639120920463617898419071456872838224594514660942427691442315687703400015845298733432683010997602440309953123881924209863216726446190049000676079826250042622406309017878862971890387282996852708045510417727292383384028133536557489471638465934438015355020032777969169734119399551760060964578151449402678260338350207186820505731099849905169341166215703623409546683290558539137589869987707658181897844235923255834048818764607667504083916227288124900970796676586024714899970871080992492708778383234852858839147849670556000433285990300471957662800475095176583778267893241650444834891365986746106748975024310968798921534402550242163928470439573845223590075884609226866678558832523733847618560414135602383737171584142590730332126640750432380923551875394541178727078791185313447758599738091103273878473037124072895854189035964439888066454463938575565476519525664085007227001809603096734298560969680386485081694121864135000174443141113759127474406539649868065882074550251878488056571619918900937965474603361590462508342172709477254807099940148207000401433978327100612919695389549003041773232660193038046659652118400787323305349669974179098756886433561559379097202383708319359694226873299758586331995429852747745668854866242367043082542241754166252397731413930874466754092165901802716024781815720982619342012908100408187110255260674854544167428466299824909383182856903353024369895229965147188804847201274727402201917813552242242971576198036297355064887189973051873928234926169899333756409824050623701648732754125087756393442109694419869280684586642804187697434808673347189074120945507627609639436747702103146661806096059737452152010298433808155751342512171697092216476306747336250884244910572755393085205639421811634211157989960828614299303138214685499368256027471061696068198025956178796578793635992436395617852574656490110037754510628675384011051581060983804743631297977101022058614814946666483302528498648843002975992814456023353404876154263975665502723744130529077817553502689058610079060654182281727110889040840929219319755561409276610316232686701600782947654592161998627899342912143859998707733778347720298811741565320303561451787027052179480572878956374648713605601014172680578157058044060404875812266812708138804965472742014381724968758221339683460428183666794380770026806496028799832449771740240663616960982721655215166287079430485058709185170710230080853184398602303112869391551553836332629890113941343737172175388737026700444671670990232128078688105735516538602997107530310021809833571616809881754225357691963417474113234409891160471061726264796751599122481494084485617502166088399921169613512247166831168926677418282577703399261750951585944861253642751111670258811057214542823312861686343671965554412476798720713087072727531146683258073375468855376755263561195327617784357859074143034615655675987277741963809943383689483382701744364783483117043063947500307944908832699243405259006720928528161119702338338495126635889588532236824721803832726435853123292335806470533641385474705337306722487557551083386390084176722897948409911513619661956888397449028541850750534160611947097242441088865557014639134976353604393892689237982681059348759248500693877519824938954413672252794918956029213751149040388791407867826654639359984889520475588610696871637749674328850866079852311998309007648018228282463396178402968837615058260760730146307846658876567779421487917324098711519610780719077584159395437130448326188989657348597892208647037634928047827292058109815888650036895368060524269622906926938508725402022979648597806801915365878003870878212635370111084635882292932080558558876779164270793870474478009895334952236381085458362477232768518008875398401744314222303093635488055669625232055180506364020548885440311317506067727432374379846732348607726330622332868270791920215197015731452690341500045241337801228316758913574936031740335060254232416615962569893277714832029117683634454939544108522669724241033896053156184996994794397814495693556487931315122611343855139183698759863440776176212562498779454776306947007426742249840243551906769689544106630072039009719252285818085420919801976259077320632792805174491021805008894729307368129849235020183468734528363852002571086282470832917352417260543696709771652017920728056285242302729323475181863451088039177469921318873575275797883601232207235998310960951858782464123173197554080313187741335459169159148151112308193813212320672603558396514078088065417817616134332424548752611732747799230167606417790493682611412849790978114217363876710499379992407166906673135052973900875285949649948819507340431064080075553732202024000634043235491407184936026393007454928438544365538341936795408430179722958762488311274294053577272014853698765435067600196265474837457535023387825653921494728363615799515311384016362708149284815039688261334732910447381680690759395681328542975776136170394733330919787987355542326764665872570091020528802917775161702759338753843510304236793675337028683620260740248047284230734766659365039118057883969797701372834385100012016994460609949939804155836084042072148368148713081463634374769877489613445141511435500979985928938904041982524788620619392294798173764446886407522783275701392869340057431641353101720931696551429119875702450669804242397309079804541000868250363909309218187488453974462134291016838686407904728436517652503999713176140625345456170611545234603720905382359668308404978496257437625080412580436145206704633119924332984118951362493600785096822318832082173068710318442446594588425237881715920056503980286972331551118313216521728128553868817276550431807928835834302422823384914462648750844896743190029644379096921303337802854616360631613699916011932605448385129313071783601289698827635797105650911422567893620684556587171050481828066410593467740207178584565705617961674433190147921688820017218921154536968165952822809628204815964395407003124823587659820558838175635777556903110624024855607484257697813385507303132317672710743648818366073197869749185214111452335184774043067175188911622074068373430463020079755891121231799707849789984896782918746216466037473468010507891674410416593671483185331609096620969428303461388969731652952355913755875872103602646736313284285966122395410985195336873333830617965471638968854790451350971276457671464275565672270128952376349260564993940046953690397397267541471558205884331183344398283413382883518813577590327002783888618422420476581828546423887420188435018762944726107576680273786225149783337685282420567613760450089237794679670184907707131906376681499683470211443827998347984777866023125715507313159760781857453480065567551874626361418977802383366773413672106817244376239350375965197703454211200625721421295726954720812973240234366530480048709696021246582511037909428223126173533334532949101956053189089320056644065482572497476075297651886397030612072103247402266055011066959122126073138842772631278134953095689686985995771399778020366894555771578231654638220805184883491522888448985797970716072052898317665578219756154067915188612257003044476078090034559418124454589197337952703963066705083174106302908654517378244357056212475893834067834636305911229828855953704551824719583032872176293519902433831904779473850930368385505862913265931663366567157193038589421577978832746936045307045584665080680563300096092030936180068535612055570929524323988389474169078337780330266639266515060692281274536989737832464693322038946365585368786413542072234165158824107378829700430156210126500793855055279523010634236139330424784336687408934547235552454091072235159100465259343270943054206195996288725039116465319680481553202317210544450291014345545963157287526994123574831453762962620393542485964162542606436170967514401146513969521166434001562049029671289828943398467159923870775605444184691924156781213985248106895423023478361061446440189553301490166458212591589287797655213478450220915530393997601725085246375478271193366753715139170568525990671105520255497355003922456837182311234039308239302933836637039567290537764171652992349208585128695696274590155937301230234182437651919324076257835674799632321454229089069050831972537347719607083724498753089321494442218207234219019657461653846876571206495540719876657701566560223643497639901018935103047823455861602606103304873278230009102118597853354688873470143948979836097694763262242632012013246466789139850733840485636047070448174741366012475913132393157569876560814734511955039782749947534859353431734188414363691900407646693391906533245312366047630617850999340742123992187959385427631877767538309366551045029696416470307470822296474055389765099453874899482844117896577935839314957819793705441846770045809975843309778352813180084830876620316609523100221157895473570724347644235937432374155495312342008564284380444226290244373393463251441225318577712569879503771431592769661813769518716207851459569811218074061348270367973477962355187962593178325814015167059783280887609887858266187666785158323609167642810108918436165249444721896283719592869223283386770477225511960173264316223279017150459541466157140960786069519252374048066170700118500439770455449168292568401901970996853968661340855190494100660342774083569686282043397163430945626257550580992070044412061093127685963057793605341697942452078754968115986935568363568803232216642562785001703705755020300552795060946915597577290818014367248963206495289832962105574521033314445422452015825351806544770121362341881364363433534871275438302046562854743277317712130500615243870709096962685900208617538166109644523711963180781314293254560725153492623428593685735969260540482153320116299946468605086034060030363409829547465876852598148337977463596986037079882425178894312026240530954498815987628223027587340938692427009697743329172605732976220488229164312083701634069929676364533227894170565732633618564625354295616541100940099131947875563443700297787246894176918309137496983907179818732051314884361010980836376867444702598369946900142467429258396001856182870301982319663510151862012975354426905577017333978717646396814027101529572581166157662776308794705424765318078470529551430043908136018946829043075068597247317880700028395430636584817773069384445504814628503678641867987312004522887671385803212757498053910144249379053590140638300230055669797940527109219217109935036825062134917423486221435247247828830569206329124106938086303145279433525132069688122050570327132272990647284628999450965738239510852849009534674123341076722894833914507306023709323439350986392029281483141051257274717794219105267786589309194388218601033791552820299972133681931710699725623861538370107942206372467373389585671108953518582131092203993110395706152293905157826968668624986066329605694146570311141116268392375994209457828540796470735683587723250018215353448134795343728870627054868245475438302845799021809452292399525028315580260234304404383555713278788994782406823305887867838977392098675951616293887078271668003407779757158146899778850227566126113644035700267277964728285259629273008368570203864026939636234312514440908725099796097422395898504885062521044400783103924344098860131592684344115380018637810471721631344810820189495576316375252280214377912251110578701941603137954267739125300038360615948290585525082808554951424004051926801742659603671127804418488765708711017341750538544231427093569631371910633639811594521519322789161702960749144121656313498779903376482966930218919051048184513508214201452761437379733798684513812979666571430736755277245139186070942236908918596186032402902340051652146499543531709807874057989751951383931942253022258719707539241251771379651484101311053696408594176829086425761843549172768571654026030201608179016126724275146580091243299004359849673758582118021717178132369836292495742324668831820010131844654412041727378924170129386790399480516471209330680818593996423651890401043003978525528612488731819109375457461368960520278340673994831807255784115222946512741729007680288362331463201221739781583386535293332585171222282635191769871900450217986165519211215163676353637412168174713748753116976883262641932327505778960165150037311038662493032070715037497120313552520121491508627854234075959314427906237671752724469540920333240919551778485228500402493201554412960710391405730738685863927643523748391637172870685287788523965734506081047919255297082021991234712973107968774197139635465591604208415802091082826566650297007550422625613450130178050372505352913265593679300593797799084554236654359048198385895539685465383832165131761886918117711389383890716225445005293945505390840159938366324653209291082243423042647371258936823172220206344551124812226912063360285961949673979378934990643300634829363262495580572242339349764040592405996546791224777345208294951163406321007397371194339681853786601044758406764458392980726192005282282588460486386869841441543504783175163857147198201896914181942679475837577397833576776588198789970781830645155365687483542417755724257025297824426045676304271111600070639908331322140725126103152736540186469991186637554599878845201948983358846764779655396624174605184340756379533710414000984380965198957705172408460388785951176092792118109611671241823253513586897359924895337723801992398534236378271769727447056825380907516838503751816504409779812375108409815373480687330369401216734472066816867987723195528306032185708509638730191632000953515544104158438579054100961518847550243169601056001415060119341845861675486649338138867447089399325791948577447009465420157099040061990649654449019344005829869756780682655941026598074710484485867081151426188411556837219076230936244903667584617495323996065560467634294610527262011530945642668317095182827660645660164847222193876515492903395088731188786661448293418459368005301893627231088852026325196122353973492130570979966219721941951601288535741681806915976786883021046092877525319003395903097319796254482396399310159719489242836028086381816352759303980559953587865771541117767885682295282557333400197931318493247239208623263578499635437176895128052751982886357077223848008038481451440998818887580537640775426559010487890778910781893996654560085005222060163709171758264775245698754624576843542029664484775270746357276214144545267675037769601772131107989911899564796023980581898365386770333904657081064472263082465425346165399937795132534648328276901436896311956768792110821237229958600843112182891111544358642352013805962038903190083187836266773922106668966336277960447870117475117263308072378418945053021294613132337092207180187322745226366071167903481728660098486024653177825940391249947341218674038456678185407378384298215799537577739359135000791696101322484581123165707386215348119836010010472357314140983336552966423544170258680467109703505132392493096995551915006448363584330052456101897637267703078479123746008154332044683872124946511650680955577938781045058854171536299641941949957201881386413268466106531557661153262793878815341573188390279738908432000037856802989313090562614473516336937999829549583821261435938826647534787799653709324461689047168144637918912975006723677222743871048041769933431219961231691430072217910321003980850421457477521446387659252580640972346067352543188903372410045001256060670237641775699273792293047802337752366399056055410460438074528095501611679418006455673549469895325998434051950804200535622664764598237774302262224813946098011751818646163952962806649677811031802109990715170555558903140386629054082296267414723414425307774483805682865305618632430180154237319294786292935854122423395092878889335566627407183614312810797889614073402226822429602886861133940819781572247493302598999326258769236257259360727984249184828450245748852504491666843898248241684282294099697260767492800765070216008220503660197186036644521456370419971845123136029401052977148375568837944699599775776726170717357135115421904114007871015871296471131306294830317343395578330785619150144891110363963066970450449172452301940502989737143291658415505989350575463566585122805770605340097616919591839082027901951987607204610000734031423363754745314831015404926255022124157408785654607024102044995996870453964875679160546504523262344902953962237455213357318403806547895216047147140844171633027041153914513745290063093760118629303295335002900081076189887824802602415771198353110177166480532927544290024622501172739172329563538845960109128243953680845618903200772083305209293973106000035632329991562839055661604394844701324747905201674694708140391551912697471145494009267587448673799195500476280150615275889629122920478932768027225728744725820959797250122098796083340576146982409250223564201852395860403848310662917550800070910512545752268784712658223218679448330447337179752091281580920677789765648036165825633506244430799041603555467222067360502536685494841561280570694047613231684529320501828027939112013581332448853403424558070864622531500096111778017280324664913374883403074178800765417361771600170087609719927104355001772921170658269656061200876476942444520754742900785592007650701351035073279204334887526077672232454742664263786738149978896155980194901799859445981521669148959842710367286781008152684669540406994701460197508407591205552782111672271525036287123471915564728007726830766511478521845635322586283933203976641906444414148251291401942602972268467782329796375724150182281907511395886805336485708380749603583198358869040555266398797073731941983257747014210725829439140761264968939999516721665309031738322956122588986963084380637647439481432981849173507481714416351233044434722627210002879310131759401894317830278284607118106986320557041338026762791865524953703298543603384060071522889775574588045728469373432217287501776135968149069372278125575070889444939737230074607470329670963976987003224164918686034814574088971804889652618509172374709833917331037375891730959323996757150377790106740728317976826852460790159283674681435746470860018376448188056111196362345003327836211803169575114700881552004309136048555564538610959320739637934767900478009731844360305763265512452922956014378919026326275565627541003266447648049623815306002561060851982302601610186971990760102675123072206856342706251282674081286245612734074327797859837165440687212551989812160768781507454279561218859433206115395970444580239967421361362286287956936122980248175214853820607027119794543735558371764715121128766903455189469065626303218915346075565872032638439237456433350489622257081886146554105419141155560840400510441487604075483122636524699940748421917154073903409260871220534551881282008181045875466974335843200424725452577306822319399790678081880956644995385270162131964345321593663155738552723909297114771228214088557158901068710375995854236133647423293281272041646387705440755837656365990750114714461775158239978082458359213793904388338578206761959106399513402595424193925160753572182855967242897674574687789589362862658917231589305192612335585954871880606686502405650845418554186624979036599917764262248816105052989559332096643819299128726055851628968222370760353980014331813192352538229971378375979375690094913688159341750935390026665948253602348997417088083860081172530215012746389198435573164198196846074993977057377833564426982742210706256745063169029666261541477327188885357853787439342519718467898382637051274814939405399815410250319594529597196652272186129418240178341831170017270702699217244438328338666606588604226866626811836065509298177928108846113222188610920100460972254187788192706476902799698584036092543009785205142282678489185484294187903445633250275722329897306490912867403887387839200766451946740051189922958815695889897256769774342868750464187552278203848982965605887808441653572986815328119193471801075354201456777201253568790580268031186125955298212504953768113140770573211734767948767259835443870039115171740818077458069143450697832075815995314907590494480973573611661462888412755227015477838058588296145429615485586730677508180344536181750100873936588325390428708276859700416437946931778977794377688572851172984130525995192356017400448048518031222748417409236983724376486964634043715442996288531137102398216134550706573042761100803240578283561439359615092299006134208691916535005112323867695847431612891570748319909003551191097939749186895952375493274052536885849292454949381071297973738170046920900790091582875445971122971423228971538772233848088922628660068240826335490311463944831366353392389928450503527813835765190241294221425568605060775691419059125828476210066981703458198451097932114288053269969527095894958003021923534755871252253320265127543341592501350150818071494535154748731466461653450577850402969715249657334252314266814877816645975357195784713153159904298781459380737925035430568153548457285212794296325809129632367561394404190437447632380923506586115577620201676064204208550304177005240636614881998623102331880152142511412612593214416578742865408083764615552948737417324505811144769906822951853420899095945917545450376703998864977849755832525107635419441602236433855969140694675610696444900659733107085909518894332604952513778738321378383500426336590170155618000555649547355643468297732831095406768745091322754601125911538988214939129136323064178400814735214001127881149069973161198592870399546787164929011821376381065481372588585459481510348915990393485732214744190678726405318099569385443211669726523861656793603243030890374218248797974853360010774691005645887624441173991655216406111063438010274193149719249550807442413929208209438427583764234270045436447917587235543088017796594791385422137413410671918978819506922601747312535065737743988885042205675693569894001467836913617679682053174908119830530651845912305775851757156380173807124550029803220649225572781798681866309195897171515502437676117362131912887814266685148641823188682225971408397634382518641252705871839725033943433903330202808873109415531787199587316381208771947662230852944788240089519800705154026369189255369219685731247902831074295246866436434888189386869368057340200010506763903412061076601893092352247750084082733625024640246026149411816592767800372317121326449774278181745335135495476666203198672036238917040250059573357093567754197521025612997118194343704569532982377827480167415363743360268912542777397799057205509906969620009866394200732709025986110238425455221838254506619887016406989840527759360491161859460688402031951359288658426037136632690019521631350219714888896510133893213959556512922417204787890588181879559330677836241002285952414614732037552620341274377705598878712653656289290629374358235720664520145406505798212548140910846308552258471146296861229969251099145109049999662916102851941481340486974539786205047917534262712433186929224224126194490534650328275597751474674643101928991519128721685759490629114326391214053126072735138932072046722158760563881435565949860285109085395232554431623840111596795310375268283097192120222934320083212241766542627045674149267594747620222801765888782617678354921557280577577994396602382254384885279843543283269968855196765363059307497623636848639971720676658326954015076852469021960287939397082776772355814073229986783758868460143922123685847784199990977522337835533956794056283173437908941056717088369325742227792939910758094953080275580926457178779177855688908228102553908932159830446593482632016147122347498097356135656980842254002995613027534913843850854553375985471514439554065577202713855195729198631399842067339056919783472129614625273059194992330318786879221831567735320340707544862236172535664753183013695049197181480780816691941488937124338135762556596755936999385743341150839029654972825724300128430607794279253250002869633466287027993458848483675535237688352335724510410958957239247865041951817815558581619039794566437721821777473832274083624078137261712011475428637035226562846832157081917013777737849838956787398307737322892648538734871486674475041841687222352481366765170965549009236138573637480283195945638594086273892734783925937091040590255274835983316858893849807651853181184363327407991753792213031456071645370299817847522680337469901556070213617800016263024254246243670708575773058745547150261710037302986840650158430364453016914894226401500847948526467259524879276279441845859610777359688230576675076957960789948901770129115007990727624985662854697862094276380982857714093059098567566700627297219133337669951452044761007427667014283511229953522227808189981899559992857717189147427321260357578285969698888310650669952357507616910538851658420041469466334344059097504964969864173750928464582914636982748046409404629127598988964924815076612200923932212904349708926104918186451774554473852670338739925552097985685704251408730922903359855808237441451870509857662787468576500043052276461838159175419692341506035476549684343433957881347124595664384187746486059817425470859125306582334049803074555070585094966776005378447191762982191360972073536986054266348325150661714695214391556037652753970656289704264199550111694770065974184028400543655793735118937864265453661305251662884268338263667870802585965095193314760015356514467260857367988869593454721401916666888621913383196086056665099839733006827224167772758771389381870035467973360526585427477394320343880752767639911057816520555230731590302946512854352546451704374626444684952377263550178279763889117090518316109411605200803513356133886056378047177319528036677015040595565977776213523836873679109742665935398066640951139885917551276510879081237423579915572038579771476796750772365676993623773004309351778193763233970947983759429798940000803443847641964818349566889382768234741593185100155223111230233345202943078299600852300331378560658270924343130126883486963662035802014921231022561031491876240871579313366415132365801876317651075196368731929916818519137612407293374137395067061909994712431693099222390747457375412925459689581204025793128299053918441632949338300726385110487191215463197321290002088209085489260607671479621647594035046927340783548499177260406658112665728788519304599436717701450223942397853395275576912983823428634375073619060581112142696246860992835067439007910440753647980241969142162797300162810713813154500335164192536042092887249638414258675244351394830574411275779741316056578576450555880748550992390833618630461667488584283464976523454981929902979140438026235628889170469371291346281264731065305355166774500634086602468818247320586043215869757029627999645284142205620528190556096520946881104684065975312390349413715580885297107827447697449872563631226028342863044535123482271985206670869040731293041451075310193200133497290150263996643919100880718767503414012756921277168003703031865879119602074302688446016618955443925148743533354720496029369906049065705146695490168913156274165129208668292209937523531028331343492346646597506560493479777397895153766642379869737297757679073702751123044084221221765948739863584395855588508460854896823780807720596689846447980164875573870770118154612550676381300900535661222363878652121884591837391928359466940842954276830553615014828289523955071173736230179882611613801675925243990763647787761575978531173404100411844768355082233477750861878299733852933203211541936828882197919224459186240374457899605899422686300128408198292894805319888242151689710832448771263456897053523224856630837267257708323764947694764744909553756320467420180345481094481484572420785983323696024706772455061879439369213173211636384469047172722179509702231581312928526383684366887801217660624917968615289011666342664000267922159575784081666644814195201215464219962396937438194158565451980267536904110165694292071503592148793555920417144401411478317687485451362146339409273139947896499909995637188338476543403981055657212347513533345512621064188724933454603109231961548970389204461116474851672505096933487818880932210212362902774159923101391784692935181376559186824434482287480519538120302949872988317620418279319407187588144386561007022882765580158884070307592811597918868795999803407303641700588857772238147702478889838040317322468968290450120964581151516453909312209611310521231867250676833063228223254442625492739555059314836115596550277025532768406918628857025706203903253848625484375756071396717091622412940410402308240920394145130748062865904053548599166040683407290974307315089653155288215039105732041365633233999959055702439843388429737828381958155164308395117033653736254358597746775855494788865704269841009364974108170585960910478543501638894078494861488682388878067021595491612384905938939909434279240970131591446899781942008621332232537742397205849570849769419607927443671099685122220410122607929987068690977066413729206639493996581827157070975271108242576531118292884766647710572011296419535562063281255019140274057110855449104292858472046550474031295932542217298811810569836359267040667591077704776587265174219680522175895678600604049583495899351015827619125679626643064824628207000165945528087154896647153947462234506432706157551098327419498519067327013788836247353961350956319355828900147927992004603383293418743651759495030848199513835358474073111145033162199655093146135062801531787364830298575296706436484645262095346488692013633385894864660494926055080285981852453158143832216928128088528927316954229178750201089349134742114896336047592243528695361741752964894925447793378264162312784657288991077012485360103165400463360739616212185300835337461105729291069094123064562867126504145713383275663918929964931110046769817231684384065135869508988022303898458877666543374699070143420550503799865350287444645461109083409954840794080426270113139248569772501369900152344606205746967422628978033857423624203134742638872441290745769638229902243992122549275243669491078232259292368127018651035586184077941596026659016865663375114122701997381069401558999212832378783436489909378288680559615017014634236597169615088225551492400928296834960925764624158650115347998847361776703012088783827014685598271069866543183319305581844916457499224937569877396197745299711838457655975514789796604045715584787382644245002920887805347051597074252564732768263059573553795475392710957182394777986984439262352143030838917683815577661273219053753541839667080436609684459157802559168243190034354802205835014485865742848807615675086959980918889880352834780050731195604747415390417913138473749504585447187284969061810175927039027608043319979332135241001944098792745236038596170893658616197839800978286342146859961619532027080639636017045483199822465152101019485431774227075947055982720552213352447826111080319256922697859277269669964812723369327046764442224058389491285902068527425273407220876647453539608634943263264744727927626700743334338456248038258211475242349873399962123862684865168669384191941018051234158975568047186700660337957735880874161135078769785030547596634761322031839717020289219671154559889270712708349124715121772037449890722912949537243861752077684583333066219277208266815912536184362227904529104451637170996916210031189537241487882175351264861770206052207367132919682339363729058299144715983455934612967524314809360115541201540454066473876042960724521744295972623539958822767914385082240480096473044372751255098387615582669377223879049417761098178057411030971209231118892648818466335997315364624504482147051457101252889701841542024121705706080836582872520261469145562796299540755275783010990904570334366966682623132235871307827027965020240101588406973596260990535230846131570818406671265046852339915485496426668306814408224662101489689443765015517796903005706232541936568325913970212280845682897105391740803071897185908282077101292703865720993243727775964353842993314737390453153936280618156332999899079062835679379214957673840707335310822200930318006113088137391838721556931764860974397546342847494269579999882800448390510653855562402125725156644634728740655643099087962580766623217747423685041688018182388264571025899986355320658869908972211830190933952798231024824642706174088812167726100121691329249579012764560071915345358797774493321050917606638370192620501556566123042915073420688543129155240053729379569293177730148099082860395147572419848872764817649217072523172851269159248069948684502950073111111135148800741111286920571980407721173323319078453714645482335785196123350546227864497269612788288951671403037244964372604221232276836494776350278579580400938811375270809087460233310988171247618499671154627449212530555045971888452873795822493884481290839252986414621597193308870959325567976991937069935797314404128635930067177216070067197855574168709412218334054704200409940931265428561749625172459852493564506871555670740293845973522634794434615381847812511706167859661757562984006886397066388619937782916200336765967183890545995032808758932329007700979727098969052798075736543902736295127092687479306407184445611001556526340327248935453601459738322561293859309151754048905003285186086639161141974256353092352847129998949235972506430895909550993217278984154488756363414589814213685619351250256302573933254974249789115253702472473566898929410613957997417923507516526372948315689324559522130659303151794761943654820271804591921412698962012558192573247558102198303583643979602079766555336375692606710544918252381263785961845079094085552050001132377818730586872086118327689374086301810805128730394293915608718406963925163619217200815722453597710979726751236603021829115583884139827545996811845195542364507393398019166433273501291781479074728597864771096625493005019626305363248042669038384829375818112471572191682628561643200098706176546864550845940656195665881201173802758943661342810799060242131245361489430370145974855073217732190540199814987325978739139636190958439931539098269794264299076635482492429765337673718885876623092305699631141404928303275876838329614066876381133020020804352107399886421104823207451866207098961687582557891924433861267450822863804174979097816936339718050991223398056241069521422139218742281887891968862562801949310619320954313286025164479662884254678419784975752340190805429713417557026396120895259284219669771707493223508642771393350862823036513136672850312239567747939674882740755321004711631039717853327006918719899129120030591350611251858906182105382514634606257938546716898446166171567645907091472120321135325445500554570992375308494548569138453591229771257540242868292589428859270266950641284380229781093642188222656202577168569614847532327208922084198437117228540709107204231355536808071900041221839844756374646923804535572885592729083844308078284876222392716363525837857573543118268312190447556161087102691745540751017875702722119460137673632036969760828824814980355587714367881792745278306453024078275629555653590156937196700642463305256346950540405816500968998048487777933066366803037313687270105643315627249063586069861191455838665620778941095534843713122808990134252302696043488082121319186332794383982132764914523967439561042153606972972216808429984102603387296760106364860369491843769570002780725793831138962679360990264646697507675402053938081920752234131293005460984248533563090252859080944987179115681049443567818315719344979791007631306840132109865455398666617550917791047367030470487965989314576345646073547477221037921385294125099605167116363494267566254772039430911162878817980777550034272812827933422479640726738205382411589916589461255793623145500246230437741208551240689699160187896014183257751835105738487429304183040834822583466151179208010964816825045797626951121435413555565301154502248020159607126131413455082709160409865047452156001485659144189237336254558572422788348017886760491851274839552361703610651432792409210065358294418404970530264529403091462920783022343506135887361323901069100332272502278793377857828725914575345040931660225978875205858131272764562980084345285324660473790712108215447262036421207030169231524566331931101346201014764714828312111988786294444552009349981431878466331144693737896437470541913628622964316886487365959452567283350053290651805127307485340259153955052410730420228311036768972280733693894751432981589506777158665695579025389009203858862485868480015167108712555743812772849228556987862832158714928522894063913797382182587030724224036037321155994960539308466263104041714726067888453703507576354385727077159331907176126458937967935791446934318016081279255096853340839606583572930356373883919896906522613511412406484915854020882321836396348251593641391726876881385882054546971850431096023251808183488381351564298972747888984376903663955203076943126957911861483434298420851179744058018947855014253047546494674882618789763978444188520776624729924079675504576847981835397302559025031670077572765295920487687902790975455415868207238668350771082422412879917023887381711966056494530392776805881359847718832869854773196750158552363262248782202643440151256114453555582900970172361588639394931457920728209571736043053399833952798900935910828942251529712065628575264845611067922803457451206758880452154754908314755917278495807613914676908657575227528817353569427680371834772591052765907441433792233545921298049758110004158362776481739282180373294481772095261091022393248999409628779065622331560887989503191130828983473235321452081067168721675535763223540558068730044599070135058263636296406925569085905908255564172219579230128879538374219012409734040176074796713702186736634088378378908862065376957377516209447692024943557270252690018391846200432240973518491500291259309209236710073972014794136501754664276698844461351586704922354890371764067666885628306736916837706911119271616268750992492368130506857399308968945602618157247979399425789950761689625713300293209096091278275408482532463738048030109247265277158267970298049312537605621296413489241839167515516293074907704270848887199946225149151523079001813341343280863561355183451959973232367718870805866957438999709543026757026314986898068936901720291896321420606352330801154468942575431733728153379204096286006537299515982773393052129653177808094062154794250138583265108400261987555380102520916441664245372565321242996224210249998100892381627515915156805122787452738894584801108003840143929112975111858795937948817189451355491353453032938060462315814353579317259676642237119212542236923885023122510052667440012363183963003788238313356233999943658098459943203495662947019162650938393534872872055311076699929131308201838027542112161086135588601962389968291875878213874073898313982064518666216393661792147146660660798654792633352224726878968972379821425523176048026132529134110659850940258501012168557584439246097141151135325077228829104012540392623204054812765932810071773178821025402301192492580523953707575599247306491173005383715327188242925468078075393122130849110171591401375511690447268852844130289732092804581612303910813352937921541331063426609829747505261447446043608605688912281267677967355328449284108769508248837528454876383723740508396728743706751864379570601498909733159205527907335130752174571023732039292135082308775061768126589573471358668834908754429492136653412923955466517243066383373010589642551248332903266016936498930273144795605599250603040413966555048551349416865746719741063520083209753576189542238906345447186234173221557664913261556434838802256280306713254751754677216929164808909438525737611641451413409132788753205164844067318565598076065283010415592745644373260128621931225714710972003317822567513232667762204679486081359348666713381464249500134743549523964908006804030626604031319506172935600172865949802430370921296405334378763625095094248525694316649290701697608463840163851191264958404322163593782281794403596151600944582785813939387706671244130855249154666020323005123226059540652063579365850844081138084982616094252132081639277837519945139592543627630516394672757143031603210127145061316565973260964519060731331015324400262725486602984412675065826297881662278373040665162879394477423884023968381764713088548567511371739931043433919335769593711608421617923942800893065267640349057558000436274602072430907816689977055719467371986984938721339300378497471191002747919120330469334584232427440067266412143951495312403670356749811933891243768066881796361119962711041435113177273421128853907736647509298306087528078105149444653081325582590522284617113290661601135738673729582025360135593306677818348652950026336553572625172329211476848283196253215551981004630772083417818521352112280229596542501278709642734315408595301721258268418904755756000594010159728256914529481252716679682507106958540241721028918742290406581825010969862944227522730514730179600633254775729278444920364764819568335172973682189445809733908696222711513515609294994729673283030287253766744274839993795526227667934536840560871829508395036282545140339235714357293100661977354063741536855375296827373793155964022882687926341447508620750769738578271729954041388158125883516476429295141255676587312843814334753701092782642620053786095036348719020611119391903438641334387222575150414562285288601856961376526207726384070702061135717705108549962940248027942803188015031586409329442146534775768295392646115655057450807459489821060118117009808947400296855572667195529207202987884814654107779993552635356918137226279541753355842533703911651074658312151859062167178741348170150213120301977350605388223897460579369964473776973954869314159672028694234483997000989473868075506376207827657340261468114658188972348772245979789012288620343934175039612044995563621799358850303729224104467337316254991877666246723245687777584174968628677342321152191553073107733674083365310652567172789354087274857743128515787647134991453660646028839811271232652341963678159891444658407929563465061529887178522184382606583513089312388319529777200224783909460902390720886479881602284061135917621212810099777333601916573223512351840415688578589468876946583133561557146063445015265612481303468475955348815741707188026648502911343458941523160949444364734757457449717048047404552968708820186936705492300187134236909919490617303866832975431699452487153435117650002024164549977649620667686708555188131029368240320762515987158597956819570675043765640179996139837769016735052044115086915212184280585037584912415379076630511383482069953846265516199448731685068436833052206725115287361926655991622861217498755082975219490356081266095042386699359027630258405669408808179738653294676215545226067156780397088691681941854987654859000414185025284954840955861924504317741374370858635807298461449760696512164074326010583042258799315701716762632920267374657222695997810115045455885562705176095460411725298191576103673615817030216602170415198889709315473063553137418978661980613689785041533377875168494935140298312648989778400898342457827154135772912136456892786037712434130071564928068641985754475323297249837005971700233783255226728388746826680137887661324645103191769697507759765394824435867869354528758370481794412997710953218213486605411990740516223426778097660228773361021482181374877556130472314897452708919506260454760274370755388612258250458793148245311106117686522606247827089244515502911122445467031162821058582367221805286513303201520272460459372896683112878422251116986017175923768208805172141035647089085477657282194800517015300534998742617359772439954497059089524847058582113841037169477370436201893219324085275864340557737505578846320942138712024177835393537065695367594605468140694400156404945390635898478428050878044626965765336937244867010205448512303292145653701914023100223009857220267014267614369178910517461526633404109030435950396910720225269947112463377148967495635840114092462948827594424475791901504147108556301621363530263902170747892912677797983385775755632556758017630977364282146319451719619751390940149344210255638474304813481907966971666103967052108211660705417632745894855832237988569271351733975767793923672603282117306680429498335581359712369797067843360205733579577870189471911620564086333864842552906824834195898960718340293680453374333356907022321179888861453285980163428510948755370609093360171177764576137569570352523874563924668598080132222713617885497952177237280232478903259881470451685781112730656503993000411009026287267381865533413784788344316036779523492690374643717889605067148608054543246647762076447257476580135999251286145985823712752000484770667601614579821154217776729804236882023837580168105600460571098305411296009946952635542000286960908793166570382992012469160929411442644416879399749054081983665504951496177424824902366517761862539290266257941028751248184213911443104965543285468578037917530377445967585033311918540877339563011675295434374147576974712752156996789587673757206214878407072802971937338083151571400856981876297975223809523690728923872269461570240678627450718965431113940129158397779015465899624063913716272953215236049798029149106973702775524298848925865048912173783094261992028931897264328437420564949269306278024265245547326432696109798769240972217650525642857732641075470135717234583841851308950442175840109199317888778456104789009294544461071997483902347961598317976951096933092756207903936703323093897613054003290411700822998598831423657497968503602408038915925377381700730745262746796302272507984185566051327286450249889072678236310313964665880681445770786995822760571199139115290502797188220640139479785782465441815787864946330372130544072885302605073581677886686777898771772772474585893727347066893573330739833102735698250201734372433354696637237574398692115565774671421106797379629905845045015460821508008010178121806575358365032914906938353041230145386458989573843757913609606232779017798597834711488778990471270095504993448290803006009697364933637095379009161356847554207957406852843766184418758445181188387442425640675250760075593223894778996984778345189028031018697391900482340877866446659480154455776840097686497127175787109092943500871418588775316277988132432809945147155553420488492176454641334214574365001982683924745835746602659391758458883520523893728880238290579856458737758555509284326634387230550904727047434254860221206642229144266452224519640583027248489052613782048594539101652325407285348118314722137966681026411643866702699403697881068288063446227041931182477619684350976027232694730645972108308322289448225062002190992789216907665616828323533142684380865803021486338920640935480022992035063114687952911865315797366135198629795319811875060242595670950916956949716158535176888060415876468255780475181532655740833445495867988521704751940595531556387199907617463651443196952438423169434203420308200459647481478650373374935002721029887473141320792297686342196952563208178192107920810453719591512587232006287335976029317032194534515698488952017349152783655600097798020955283447472062394994921486721043213274923481604915349673491832312822279163915295473571216297518610161527993205494177271080792136589632070522771393051899693835726505918690191955046008862340668539622264369151534619424306727544944344168819539095020777647659945037149533582633763729467602140082327596484204705488535448240096665461875604872340215995863650249189662173101075460750673120215185368830848548442045128076665601215455061223242340566063881995739579685817501060234108926352968330062216192367866383965691030054228099965831165715878409859705650073092418999038440928571328637937876869228230544464529884336177346726078460168945618916103782585369225447500325929442594292291357801368339255870136693243759661175574177430008514608516625775951636253820668662646889296761201108625541542212294506311697399061248384479401137884339272201463705881064403597066383736941381436218897279096505896239871743059208975495048299250444074764148800916745937402395427173069356255679764423903733439895678838442670924639196287418533323943651338136441447508044732653820928282072085634430058757231332265564483366368707782301094969803687581886870789747589904463714115078137758491200572342347739020137196467781448138257526312484335950348092923760745550665361177534532695191993062923343698117228317681966578255678447537206169256590541408987814848366542245610195139971596845089551810755332949531452241313222263597364373649704996799543861632914490920572419692189705334695007530725662880744943917779334669832885174867740238152773188256038882235384278433145717271859299298547975107697223613991149694152771562586470210169158089788824390400587723938647997609279264333756636212845533619799162081062405275831604256727843513713271218304540083827291860428871774838026518895528085208473071509611926840495866622625099333279095994148261254063982017679630425303917086338318247760386711754210484634071997570572801521896157823968417700548197904241427052565115205673623405080241707529246701023185745064682600565012080342525268094282902379293261856899757257427810621411181184471362114048286376787496778180115476256467959323362387671478665122024050514244689185426934721054637473505421668482104499518700715004144044931541566456908470422241692677764470889948869028908453736066989302675808046352525111180777110932170475598159797882060565010898343692714770413462185482312159465904112181026858444078890089622608489751414102685546445668068746154614739023331017102094867889228634026206906332300677368110422941674138067980366673175567253898223842551452037002965899994064360230248636965313031770587753895126095671131175742680211076040861700134728705114097307759991506004806193469170864231856516462997983008587573224112855123020900368930443089787598590786095229169576094955345000403739738276696821848190425089994480235175471307973201235401808035207919551539940776596366781829541230327030704317622575353665097848862860678456943560252507548003544376452284062229890896555630453203390349836488506047332843666507365724211407011070417885507371928326836908688393529010545905867189987930200380297407694342359138812675286107457081103621879040123735301340586211394348268977624436957239059342471112720452626149457017343197339515350504661598339897818253722915959791856022382113893239333302027706153121416267108926200696435994780268725553290455587465296190596422869907656310235757745729773600882568297449308826434409243658050522442618819573508161536740710204199306319853192576578961138264400675146651118181696138132508994387752562339335725525800807754127530174257542562162015983530403061048332371040812251312705035235322381740710238244468124667263616270847181814699706003224523207176101706878632242043507599280390978316323723728213800754187915419736861855518787238926099811134951345695341406812991953259816948150859943332066731100852130887059329777020622426536744191314204978819880206420780773666648167826769244592940053641533898111864608718829549089980949308249864747240168196136146125696186557164777537746989150910975124313017310035678666084230372666664147730788484242167608320056311725738396801468333532621493690006961978872750226551914115862765007190363776841600113197401379604739482836756974671003980945202223311957554309111554266259705725067668789975057736523991302893655427858139427000237902867049287833705419527697233947349638971379614601463289641437795973125746603911565682011644974993115502526610889034350501150539184935905554479633413030555205271131525945463869627957368253447251456412323463693291800233227140779224475865720737216761643462685127314758529203984336194430259709791514913134776986921893515136290113986772522802047705115111973961060079987669301771656673637982826772369382193577438577755732622591556157369234401943918988964666218589851680887580268714985316389480284401593169581109075467686260997589570565548463881612671157585845192298484413492556601239818141515360203319280270560631593159379125395351689655091373804711120303991430856226290037033562198885198719362867449813329387740618108121011710459852658904587635970371445061354827175726537561659913237899614810253455145836635182527463118873660191201030047157684021820927643395167516412982837645838033664694110819755906244413941724071845291345068474614491039804123768044193049564941201891944923882101741897755021926695731475111616320859633824160744599133587717803887829254403047826122787823203068879537179980571945393909348665367016037390924785582829821413834700573531501679814652934288959646336707879106024352446179522584442908214013856993277251921133312005136641336040099012312308263559556612777213059326764423735919585965988607198324963583160464159856836177530426312561117283933789081300402131728050597460711208297023860215605852340453381534684693717539547747406943105821228337464863983663419556072170518535813545880301965063711352103074627987522986061017123777359550176715533786472152422632713484234206185394015133260908319179328750813076136383851880250375888630780618618193104349591169039095678862634403071657535812274435997151217628066140367841934233940195390175092823957338536717177321703295888354209118440006386754730376558630235951300888460893473564218031225307722767459114585313210656596790312620612186891161544910335418851216261066077736767409993057848254038072632466633293123784095402722319774243742905822536634476526300489865482995874128957520952174557801022489045059741045639313359173651166651473122323867105361232833122893936705801114884326043749377646963988919836978032799107580816372184885943645314284448635913304846352041197692521099943952374413523006612869446215060932298429317715706056256659703734811235326338568018393123895273512631120448719534370847018150623514342762886110132033454199241911209649975065527016940939491793028999424582313720854045882140011909802258832968730364789301730972245000008167054466699955193790841732742239591227492558234692585525772621921880376849866051367799207618843089684577129540957424492614191645819986986670971921529489592392500504326904627851385778400134937781004606896992535050067609187007583068438991377731180610634551894878770399183785649898538984595833830554869676164814286060398763303473428264411856328107058002685977818127793879732813846927824765796202257990269531418467872607315381420658569000223499598744771609378085712720405418584144284916408931399227264956617152682317022160418203555603119220372246497395154427210264201093786067758179980972287008559564127107537281562067665941341686874602433596120167219200271460575396324304953365565141534539328782176302954036082211482314420188385932643473928782365163305809831292523269733662454133925308236931014894151529862265306867413652455209019109416258781988544248314955433562888236892639644360698813413939949713007336923446836024755758336036040997609111018132930729034122644102990193570285464101973478992890374412655227132602781514908093481237868769693364344035573193494688338445572666625187588873732294674368115672427839947288072035247673278900410626384889332372983123400328712838661245923227275567423246096722226690831724575913116807250103248667749175424463327554732482866130088171073993779902722603946644808345444214962420410633899021655355833342198009398952676093359389158241771656295815415311234728372854683604543086513892650575874180482565042692233296097913826434870427384062375361372386433347401931273794687225941402740749431563978565521672912460293924093381516849403425742938725302203166391005497812527529690091843468889210211445131463339367221845308532147050791876302674464902459240309207112916463485282587045533496317102743019139420397197878919523071137468328377006686581504670820675732583352366549729562121023696778068509628154389365904415465719188473203091723430288335476008206326053513181298660322818925342356748845470833731604007993785151255557693645166303328356389145318437350836892812866230790031460974000123497702364695912607240929139101347129365965553608119604958678260552143200303061298710857940513857323754679939973947870205722146982793142887872366684797371739905162260607846870787335758479893769148773033646042538189734640808795413313076475589973442075770957037784349515074142842491240745514383264021221923037061424516545224679901669707205364241657945919683869828477758025338097112835387253753780364083666625389595129183387876290365732679037119435412340312750126392272007234711630640884689180281729331729585784141216913793005671077193272858285995028949175301766228724329631363624788570203390864532475917823693792107639994401245953277763021965757169114643119881554228652675043970722920463983612749544427951932465141140013316475851479898341637915194903958639800278804672389901581536093895770221337712297675323389326629325059584317857723593637735394685082955359197334752456026381949778082704502368113776830898218876302808336172033419336106459345172556643027105912298611670623185865756106305455803938393385861518861752247885892047511667534085862437318500142916879695430721956903265280972431544614606605204342236896983024406070310331505218270910203167989662192511311228777064793980668880650332009129183955536493095945921888461019370270117213888488283764392301510024127073856800682006639256597615796982788867224734311751083402087555256050275988514610638806422401696889996336008243463036374087407308513656456746301080775383027916052742063992348232023175207490804665819184067327260210900743125125217397467402494418627326018104394462119061706674961003817564007716809658935913028731946730663131114780448665580816375298337584644236154963342927434619066372939603125566480166360384596093171204044370468868718343411925210431441225630474848726402748520480213042278635465978904293609118718876471774670241568015311204913090184574429090843943655414078847030868939675465835262776735106659367972622326178121706281112540900285819009160823098662523839027546812125851983442868182652831413743015709126167154452503080607250613952899670514290668303690555969412169120059741891683387345541262229584418320677743950458652583560794520502095468943912755907226105563510332637372865365483061506432190292050664798879578044264459105884185337459897552369371428283605634846730815437711082055897289096503966197877547592585898760002787989067500926317771200427804665283734348974782149136517509142656538902097672046869067137484530564284680611552798709807332340024956177126740607479581446716594297545951499892079889224425306020645784185602034613661500135025344154190275931391520679401402428123165644974552612073560166079940642428714926817704844625126823303581280748023039972986024876831805874006440961727455075334141051506974614649707254012900003136137931355792917428022557113549401601058683569880627191461463059663089103272900211911673514532190235004102621339264944434811287817152606029471962350088859386467319972819090787069405439067353519618567678245101835568487310415388373902084764843009454860808781583877089016601068441082495851031107083008785476386236527915290433511011176059624610312352748394981051208824300571284981188352682701763482529767227734220140145797908825994171123485214173156005254169594109835826040811996419598132794939143541074932599000406793794029124458331328651507878261024839212353313569548827440241586514551167802224448286030374918103378019090881573333261082367564352955718655851389985308458461158182295365556593714775596501921367596002666115313068604461336267495478233277616111585717432095758531482014402345186783482773833827881009866692704862721792065860719514238397987141022862858150546806000754805208134182307648996990110535019292997472767385753640852792165299189808214069356008172051457941657035699873947063495031128324257649478693035638191638425763318898191097377134201683697209502201995997998265994175106264975625108752814230647321396333649381860534091029068965523356985605555051316849997599144260143652095851971649564116028693511493218823289814754163343332916446231445987094618193363503480129309397684319282828587822190635893704356558414461963149576149824186410790901315312280888241219730059470537250037475468345352296198732833159427644450890329248932478582867580218725114367074349463300036696374642084395627270799469505106515004127075075694744522162727412099376115353088361029718468513183302109558432014195625119614462548479083222126332361531646138576589035548351064352678671880279116315674706371288159199073850284555421487673754577647551728134196376410113319302391709971291269358010108087677730024047060766660052841443110507106415230172538990414196620669389496526028782336747999958105163594924880922884906615741741415414664731968729654300459327481245709741842711755923497770465546111005014996140208219067417941593063350185300683111044546919631000902534153427856961424827254444378708479750236029537416289149872120482654909234897185290086360637081485408427822194453530808185151862990082816326914777127507469881997997428171871033200174716979072106326552763324935429715234612453486482840345311899172970252537741472826341846488705651499208692298057177770175060727886336423001584827988560639213566073746287924505007015317267094657601738885402695765050845701964070789978787452509113660015579729605475454560394626816362921283570300093032309832120621407388377511751974083179000378224764841267144799742658289548101355858143033332985551734077858985808807537579118354767488027111594988346769520313291855515719661034571676426065811352802827242360774427804456856472260498887859131813813087328961213155222595183663976195623001389656560035278485263286881524558112507430778580437228108762075060159037795496632709111074044637956925373815704127604292575784048306487844864262838982404735000746511754374897090151284367407232430837285790102998119035159395857040508509937215175080157454184281766567599228993775513611137336670252531421531027603834429173058625886433459938948155046083504765890854871164065628182896257501579528199541413205189399747336320665869092121452619662782816156295953359049518898302848171821797219929015615609296694792363317189443882934296874839815352727618096750464746903696420746633080654512223584978840978358123674693803043201825241164801007883927264788640806007396564956070030050141821613651923372137803547900739516554765027914614657727470018598045554381286309653904718795463414674655633449699801173908025613912255372514491603417818486286704532703409163704233306015285056974442729636097061357839018349831509721051767473993851781015053459866332940133448657616883162844713469570599806245066770438264370322607556184976270338929395447364380670193858355114929779663486609295864738860810464520986650581026302745792264023878798106850695162616059267194000217590584880136114053406257524249173394440043105938633727793175866462877392099086772865136217769839280040927298487170637792202504801774565256241945989035021253097003849758103115454146505509708594172349581762542900128626191998392383792000749135097654103089692433317276359379108003921967937345484686422857365405376477994837675668813912258818735974268964942567137804584590580135731097699655777426042340111338022497320580705951647361999369775922201906867143540155754626156812604356831543712064467393837339685845888317875256792552654459551666889199378085646768264276579937017864751833781776139978475812769209047733583282522497616650975141331717177858149253209393537547619647777438976831386574852508265598169807538473903792872051093179296101612228417393935474355895585409095169587481826346775789559039869166005199904340660710586030882247692076598300648006593136620200378730000158826045411946930313569420216495697659817446416983625071875663944130035023490562798860519988078992213821840958846984551918049555337710104079363193768943109016445697224721776223319741686660147644715755018619190735114984379282164151348397662443337743243263166880142886845725041142676190041530017927566065531629468761756297092029419283842979585106103677839054556980850234766940410460064194538466216818769917363221547803734547347101478168834518558485386554461645773697465088327676351185036029075189915954279388624059161360632361668511273052437832749458823474474039111533212167843971406255550933707785647537760873515042590899595513778037156295369892773520046088116205321340538233528811466175308502701075817453447599243575913248046941693150222740707921288398189131956660006310031358372389729827272980273338090157494980304208022026144523895988253269828421178176208479265746153522801608139762369536815358963178102256822015099471538006135923932549342624934288407720969856487215232228262970977948101651921713293824211936804907104223137383030435817009804957498287426121009752625087859679334534453761370635145760033231609284106764983758724470443247241494472656227526002963934785255463539136328819662238635819463880271815045030938963871829281702091782770136900508099945871737610851290495896213117770080018610676343993664299389008632058914611499152023583875043766176270047634336844633556014433496835067664546600773904696944738871971545924982201865537913057595869578258597452818170500612977322511806071436461663497080463045266797948766451154173540805677343027558090312031550600464567563384041862193943997632924531617457462285216195283341366542133305010910078179412898934466095175256034396437709596854892669268028785784998979916397176079009415071433627605605173223020352750815187015669017190710970025231642133156590455953129601350609990052219044855627840218736957093223058443003036875334044353376034427989528451282027996429272125497151025049578087581533803087710731530683816263137268773471349748594999766479946849217839648793485908323036232025684988202547756505700480296289483660836345070454559378653942875073759571748986532860828663905477188840647630757340759580539941642898888558088639650087632175257885450248181904952674975339259758139115506700235562765640014817333369330881072645141065199054327907842416461464104371502605447269761244673786431762040759981583858474282138859255438562019494766708378275087380131363613319543640461373080513837787527011460749004710131452685520374059817226572880372793337404196612899813611457663303036538313821490425432760781847873436080159381091466151508186541896919417979191734712543132122992410094610525971487847534884247554511245189923406066049070319352995166142070600032484242901249375217568442116821473139295878889716229843652403691838403131901511534626384199253437320841448418229454670344438031029019835533126934859844227912062993322978328364191409118486345294694264277956138153077680850304435241009356001607319191591132439307555290730713532547128388239193424515915484923113290780722681717210671958719003658743027181299506460225776542282922127836144885210232294630567071404564580359722082451250841132896040976541111505281468687135343002469192721528408669440452504641578015752446925188367457991157064777544675999196657341685659421099199507428494866455841959184114244156927923743069025187945596114040348761224982627347354641855872921704084820050385804165162722609974175704319352239326493874214844164908118750461366088358773997129426302145232458120075259599351597900041128899884738651953362645477626315814605534356994749077443593039564933550183302127440565705608059153449626230948071225055486543942907849794467568936802969159891452579707429684756924814392878968131397109039425464826991160638136084842077768376932857831302990030076495887149609483753606424243370830485251785871014738886120176274194075580663643402072162633320747418924727842539351508925328587631457975430322224858412906441923112519030414763419030569906651218138156215289584094897763705207284470000271951014115771250665735093279521937064807584237654688434029607358697086376326405059339713764586524443693205792332324985614054767726563511773679278423937286302094552073636503658489552155413119320720242366823231513404399098488293894407994304752765405071946746017170983401577772699568398272341930197514577577124912930864481641456468618540179328170401167896956087502717234987055432504158881676423880050500810015694690927826774623699873629515357459835066007268276611005826409358630105074053956681589209567636694003153085858873984579480527561605333488283729784751286001664273631305944460537995425231524456446767981379461154579384101777509820391311979347481605621421396106426883050687182003715908334229812915050594895084088001880275288777996695680436615046597063670372102202282466032459361618825949203028312855720482830977817781519581522481727518316958621924078636724315955200036468926854982012030203758275911063238633359940012401052682386460919087359806744363207974323460383498498946897376832393233643789645556719123287715327958112332177076628193167702917373876029690591412739132553895731713816832930123695520954024053723958871424410402589362413782427817997220622540564259510450268309290771178570789373420880548641777822872785716732154314711523131055767828506484857176021337538395743461115122244223758287736991506424310290413438459768519229075583977501485972372846281728679143347460889550211071736580853351978680963423109335855243164094357779853261084979672812260571206047593785707176093481055296178009327462791607668190336111007944902481523146774318134956923087414570397951980031611760787680813573790162023862963110083279262445245722346400677848168197039124783547387837165356590288447726975055162030182904113533360650359254545080853897828345693499822079954055063673422866473432909494920861038841149142196044569899423991698516326030636858342249250092217157352894413382104665410738232041169555780026608577765790098788748915450090439458715671176185094781830776155582853685746853397282121040244682230799618596849968394426537236802502312788569915985626107422157486260275175073195771953033013188116281386957823554888097877106728957460870233999112331465089166550234159776101995304885254970518714778530186679304891808890396062402841711430189293057209042173360760827492222003797428528414285509325682851956795287128261188978423781247823181881110730778967836015734321997151210399025500717039535464573621487990476545897607046670808173571374419153972588761669997769149635788179209943931422629961252594595364510569972805845812129456184334470249152419097534528396661500049275670456362729143392184085841774932310205476498644556140651441094002130453258030162255656559509437052170264738822160129326416463685304284588264190595505203011669544143951039059931456760824871822435598079019064142631244670391726869244318468170453845858798538738391273006474517296945436376829631053641722253535744252528421785157243754725317489142945828550143559509735825327843425626873841226733846475850792074922818900207927149680075680689866977810705671779933178198964333294709132422791441588189183816172691050210035540563719577599274892144516227322743614787832244958237828113157866179673289278711804836254899069198609923469272611741971622424016960487895920865382014363402992612295027228307160946249238102219216530431746204135505117433738245559398417665160134551669145379847904469326638113396268471448529764651676684035699372255238564799700774395814220527908700297087970067234194254051073536492159807033397793073646829408125009338522319577840145846638961109699262252776266827230366208881257127925879250243926122003512526745642324193038604195784117588951275758263150001471087343960456070696986526159483522443782543814533912433439782687084681231358397663893301327540037804530544737619881702499544726685839644309317003119270480246911994100718788228839675666965480809011555048864732541987205419486716222177517674418079049514979992609608212736230994701700916424812826125566505526367276751975985668955388143659080796874086797382880298558501555169708781362530558962292123687253144969351892080791155899630662023606908328162821651931003158478405683608357926594749230021847882691878013821820618541774537075968589185356819616650244606464144821762217409984192040435648772682722255583265562217572412336392997373405740088021734860395547431959720916154369077866907092415763317771744731347024640301008872447461665805349347226328657474497813769694400786226054010380920343122573691483380378386525360697902633521646167377556998631272382509488548694443045759319847345807494633444925694335748111008417104462333518515501613582792259368818093334301199393181940525825973506731072063666979098613994054551674796050777282566812334055117835807101208976001313937697313700766129049860690461923139518375416439329001328447674673602545078104659952354674084607585883025073627876802070747177476010833624504155340938856782332638325862241064405177256273471351550486257141790574291962942284128387814639892397491728486898727088270629653964875434374086551104629830719972857361661990424173418524001385045161169748521055131640060936846864470280561731392451480178522102447493357690377003611408994527512183440822878987297393814691575935831422084657548383943651980586257593522743483935919315212728114925470541291724032046717319517782148538391112345775596860646648817538951818517697468724786469549918469111716982186701506780920962236250932971319138002284073449521253103881046834153222370812116813550829259681436957844548838348668229236166182999524995795454557900451342177729255805485204666015515019176653966490522301598463031523820893058628225941706105416251918673778403869294065961779133116713213510057652458256401491887800976323794954409537079617609570613392583465624088676523729344499252928438901506705922941203474419006793954497665060815429542909406571416993343636947389200274709975695355459909266680337081274082538242079896210987331034247263461173278227517771640025361389439406706848344711122818398148382263889034664592832937687689534152600957534848619901890086029434877253992776580101033149904748793333603778776546572922421589164169483221728248500087815959505823693458417349651655386158063074800807992550974729804552782823519278046868279640192132218635113499020911613084034323664465696972110351234448592477255087439255121162161843009557437519770827343826989530622183353759219236809047307264523924235293857220990135647162845791268347040535661447109549482302091217128222816256819652701002719081972093625962889694425616445447889741289266557353988984985926672071542098556200716882855949013274477852409500751455621241435166464062776046960965425324302460138442087392477062803576428119556894371229629469111756377832349920794060898320188599819979469285644594033991637140985909851903943127257293139865372133205480772846979257614932778625410280846292626393676329929708280902055671860674792030938570791428232454030942621345920123444993826461463828037521783169994918610012844832911585824500995070999730560841858949720288514349061603413197028475404704847239183418363322288569094245188673986651689851115118540604696273940817102903779664210448471458183450745601527731676768880228316502102518252787603687313964412688767045215707854898678602284003108619548402731410238584169395825414694660324442623517590501963177173565057192202338311225933179741226085857434434356871470038748179012873842739708780358357479967730638892891056914400927953413476343109548344639468575123702419536894511828139449866572849841178808233432652741316350832498279423520733310024441019645574484682106222749301057815081524460217181123452893678515923716325546989256363796013689868067369391685090672680592860910155346894399497963847233085619402091167162750322053997100494580789427334026691825804155065161868695107107304703845253020912683077125967638901891731467502739290409945564850462301300177924314468973312209835309105163183745336149227824916214115646452844197548267993819837621653129984689571195305543968748671046433425061341817659545295663215657067060860377768167761004856722704504012060218797595259864015221497644106702564215918203636679161545185109681916835582239559812282343950696912029263238170147366057152196315869558683181661540127486323050916425818980422281756974255997047221830903177086517832913383081843970242064126239903360162131372100735988789104007812703925410645260225382166786540204856630548590648872022446334528654392052930483756475354175194614670077631093720887729071028271586537413535056906092119216982135156052034425624785292224311607276054743912121032455551788489262847098278486260472221048673540742905172448302550547493040011073434886199907819663475219376394161464488212110543089779842467999086334142221054281249337954334133054973537531983816118738168936123993282165504593483116088256373146782335989358963830828552250967609436181940249451372547391982241488284719287330666094251370750959100301888840211895017578327909230748192835600238837611667158857596328349244925074387466078782334385255005648259302864107575298453748012946350752047481806675611706020416509769101257562261880884460740402857479550798190686689836126622759190468388259250149018029850292955195403346601228227954377456936300113841563947747466034428508079317251537501106085815154057836165056769866486234606698795277687201281602923973140713969568407288644060791348466273459456699315611872331072256792025993387929528772891423578798739839500348159366280895206632141950262968068375528558351578173895505749009614387259971635247461768316371471031866235303012247427227536429923849206620650860216691168318150803186336730272440146677291479784354268015345594996164798765581983918600741254264298767042907528529361972693111202028918267852277857309865611518832742691639769819641485885112578282948986704982310485725485571033809334093837981111841396472147543562947632429116434657822726194248314250631837930487615132543123764191572418332760008671781756943817569319728928774638307297962740222675282380045279941552808041592132594129181983544155074856764842175535463498902325031754313259942419146735006157559334199105251245638388297969198844440465910859177749573122462210240432078691627533611534845914283792814190616368505408363425998009927880341459294927114868148405313827541345121562811671438650716662143810376202704982739306662239295548121915329885376426855933697685668986424863727533123361309155764091062438751171116922493599765781128622962573097032581478876793446633632927826360487521642417392054456754634605558093135725192463229992034587909452903503044281182042434376289212641987495295290275792777216805020650260317825173302245456715808210659167613438947897963758130972294218890723826794757889153900498681023062931931925527938823704798152919061116084752006488115133193317721573477642356047870608684885636034707364219606537123536935389397871234569977044296827590989231753359992798281613580739389650451903636178070809352689212287194277313335441113409803206477341276344225087994944787346585729563844464720428123280405989901458536686995281045408657868313091774861939369762864173504893809522141086774464565884954909376737460863451650914535932017929041422112801242393344986484904545173915206138044924391028178018574658195402662231925962302984406605925285065999748554827083416466588678094787778119065011789099818869523202952874628990105000384702269423941117042647904015195427920121656765006111022542055082003456214949342390150863275033127356306932302163053412535632166657762685113132042526004454936348571038753639146029929201134189831375261306211720964316673278435385600135434853356286371365654250672352822994402132006230544431658767040394983360533385089544677312234601732246531690824447938395470844975956135229871551199513648082650605164065578172218423331653180638001066161237863984598935126410712267436410702903481687793612087184175255632672787008935194195768869630733662623316236394306368727911520869094888078522942757684573128814792321169190714292804184673259282601934096043113617921499765771870843842738138753889366487027137972715457367329402646373328775664550699825640683669477966445003669477683634123377537357862462441439659416999732011056543054313663746505798898228373101145078004700847624684217295573670597205487876703074033111315459592541721977571211783601702802674506180622049387546697284075441974244373604488425865326440730543005175880307618344096660378514375419900009305693990705417300427449832245641175664986098078189945456265050247158556082947848201497887652011887319023178071498189937157230161825833642519565921209408644572662268123688299921849258656013734614576632987105546673997217466875838795259549967958058537111270876416782369330967400793880575500736640803083868786146175350900994617649768780672917591343846147851708531350967411776719480052234950105248262580394302705651611418393750360632152524220920053363703756584874788878517266038602246123883281332181881009816247942356890368016689627183774262764491175975297339703848833318197114495863728564991643044751401924454005613980999520942743522850679469107098679603027044620018820946425027236873206019410385781465483377975657207133712053546497232973318507255291714929646514446026504362847248615967148189733525000790718602423327148548392582347935442873241636337983413256850412637120949846855215930545666059505663365016161178094252859919517916052467299601291910043036524243366841179924579967430805501378423667166876722173768910554250778614551481266591389197803054491954971657375296322725510810951755505969527718549482092563627782306381296600448778643130079813112817101790749400843362297728707722104544443209007720429662661531551840420413821841528919493404260162533215971710254438989963521656412916606911942904339946128485672296242609102096507088272263499750833754364121239440481041348015563903432348826792954148255168756494875591826703994804597624260546144771407959879542310764168468195952488709932388700492738557172771046189930478386180632805908950158830553533650677734801436210680190778048560697340958937876965527670427972740666848412328203486065338013075600892035882017829794906294698152267671303922800130082006128137454316206973882667414122845403839462163955017219148226533902206933576072496211681812380276413595858177913794887944986337773963130162140937577299468683016359065023587462248117670774774669696183136339366812973969157511958195652909312308923817970044680447900503182117448368788578920162555717841318628478997092657862516612047672783108477351634628790200005317063393284449519959911207076723580189496646144528980639394977686393893908930076748085827672419031801810004480103873250269992369983606835766900540721184885080606310917970516913224966745504121036443276487834557455902908904967144735090141534964433273956415134977640386410111677664667488468234516307530941675576246367848636811877023514281728683781489293810298162834006715850606765085155547516079580452753964338514749793079157468952158097392110325204495687804048815394377420025221962788430505121641031237512945336172806971024280654997584740191441215557332954752875378695823967700762793885247981718823742722521941142927639191068051838877876000171832781872337624684114953603767833635374645960115905386403432843458094065626684214633102599110305056605118139268301771359770912024571301968908389251431537740098740216418608669047780885080995139132464733791231592380112628707080565554286014335348140477377539586716519166272820592841013116737226815500389030420827404806909569974112418448005392772771802769865084659206404864832559821719880291949219885271874564826946913137159639638053821118894110449657647245789849668785134691317163302602851503077691345271293723953786539456620572648574949368403999633896013233681023739356259096169134273639561971818776060067187554107244657639893312815148550271031521186468456220516257766546640799531802200894561772709831989374071451756946855651588963857602852054643211854299415367633756694391793725716484523007587923453166443087659263644268697282531387642805139886406946453515421634092012072776640246156099236566746414712367240252205005226928999334433044917748717953798200913730109847381199175783688969919219998742466654095760851824042291105491713414790751754870223714838712254353461524243961530351498325068484115891560590323396487118094035841424054518000319688928568304762258773437700203550435504692055898860876715938565614801630346564362701740920644673092341111682035565401982891368659928758629395668163177720901055547750860411278151415713526074451584842601464937216760792711307698570279646874986961756976324478373799606119421630127938424760650738389191884324619634064590258279999582404407663464918924698266810277968925918370071757488666335794706420738107489226286665460348402913282986065740421159223874137893235443984621575138870122531974527166836686906814656985382013178607291311156044008064599904227028966181076126694465598485115922175277892183795577733333151633849038099712306422557677277152656349321244477469005169743394454074339190280943423893881402589915244408873888579004229960120241017656404796648786720463913974399878732316907391388194112228952112134914087052919802583952325446254476122823729385624030724348353574322319383817338346038726407510591753816795978209205778831526272651988784368325302502158807043228828253471841196528793066570000138122972892392084957620702738705907692208138661127677605548444649519166546118483453857416477489323490299206960653622690977699325688992274382072291363157100891402954280570103907155186613842501132407958773517498459664816145347452326191806717935923039000609293637047930396830216008442567964068486741778349582244193891360147516799716018103629186122918630653534134768152812152965666300924904220705120958271723333303447150341381795310812249319337859281987369930528284937240026736476195125126953700041524701588432534742396211958399883452828731728543499374072408378973176959679502538178346000836857888506480123426047345715586804463159274795888269263680868894154193207326219119199991515034877497260919964637986866774058264862221536454716868666014258680929094562612820063825028227613912006219336393981738390161486139626624346511944872148803131862123308336581790925461742189865391713733651462253244165312760488485021332199707890098464108652334590004947554087994570150344740368371881085493453490285528648506963132951409354479369414539335229090513222587314047775065670831862329345912427253852716790902964013030331950965884791891523079026811804878953361267528673203801544710775882370810227314161778244847924614814671389021787928066003831913319294710100672162892348894519117173911608924736822739719541870597042363772758229877458767897851050024544001878165742024887829509434343120581463750635355500044341835765272515618482482980625478421516372728766463893513535630703048499155685248728042887054546875352711381429867757708459843709758891016031561394880246814621148807446785500456088445700433099648315891085608509321895543359507917752688241668548839016044968092610900188400438231629355570308355230635841825391858268070641862715370380840113094972167785252057337998941715697612861800635233850263246655530075569817989754670984871191068882759315810352799025185634423507961986152853962621002655787985253477760727398624466513430570689515535415760171730823758266101634107276840697904256422735192888427107813982843075881472646590162680298913594985273323398794803284676521546779123764065585827684627597205249423863282371164050591667055782221888911496787578218439059771637539641784735874169122961716935022812128087101595604236537774160190934143390532103920737445824472047438157858787978817578311286134205665930871393776246504600225804382034208462790472287661988099978719722710260978543429272577663839909231611158198692596536234056923931698383385153318375373009800723126106094665515886775309245744344597507292144019313258978717143073007790915772165297734654083449474761804521108158451604025599228667666130874647449787583307456314852688721604456307583480242065475985520944714311040184000732311423475209738587053188716503335631266387357817568577289612358876559665255861079210530991116388838797621564366066568789518656235569160998239958003179329409517204069220848847217873626094200801560289543570952369384858167262410752502871171929036255022850247219660021916239631737902123531477109546359584448605909341599754662397251728771038545794990200071495060182955229352727299684577983860083432204334320919445760360147411956734557366021120433934904546464692215388805185076401558636269306969534275168967170864311976131923417537368416951608112109118809140165748182550568752533994092322454203751889598994984849828572049078610288094552927142019147274562193387007516030695730679436189104089854798583712034632430299575204195899589340681727155448182116340294839057554196493860318638521565417510088806223885674840983214078543159054205568771466321218536354729038622416269871619578832912532407144121743094742558819439954096088906625039050134783101099435571058149308097428640138642710397451615011008066776563464361498862512730639974318304309611521875589037491227256760306713140580739291043865416958184177374252851556047230963559272557074969272945393415896251805107803729471544416215436295548576615401333979916726788231532092960175351375038227725983079140075180986475489101225686574250604375847484020687840224353739144177618649284351784454773057727682463761170666721824902300309101839831135736472731515470691292587275487723500552000056949073960869435522545829589304579754477496375140780371407004722276080880784376085829665168669340023568534659809853806411091572237487579703911327353142793809399542792620426231703829278050032751435730705962158536569260732631365695837425985178176373922364638379726302339058179380922772617098248479597971225486177804487676149994387613133793154958375365197417021045207678196059115553878346499311171088357711923538291703295654482937978783294518846833008712366099246144623089690900282606879263507227231139133319834729626760870641971873325644664057899427174662338176935495178976536550810957204029243060640930224449473385938768670056184898640568959968219224352815422374909178625549766911260487192760999639913756279369155544688437963309116316550044447476868131691310545707194883141915925914742069879693551615477425986506186924192113596393239729558798939171413543292444683931328452456221647766090982969114157440420214262428468996917356317971061573937706140974554956843300023040200859006578819981778555821905272243636530221091556757710816282103718470292640288265566916885033365508984008285269474437865172572668093877949286947437955184954119037108661415578498856565007782640218902502511389926996932865799477624314379637486429253085445406341435760181653141876254728756391164916361494007271814946262562876714669281668495687683318491137917776262479051478604680730670643670074897352892543067927679066943443155926434485800386152464919145688362864383073363165269331864520697196507258098301081004642219343668252470818935306453418168070072431627439146459582773086393696452646633622731311395782244620391958427942967368339367684672522985218135512638751552711691567108017025794509738583207575906278334962102177606745943886541584843046848371078572548770378247909952769615762573774826910219268481622745159440437402343747246053135085076681628235119357900607134118709284878381154231846861482693065094085375040287742461795407347476110642401556300312810642532721646523879325147729978313184178451691011346442830247405045531920086125467597806866233487965638052116088000245919264768833412285951181906135781258244078891239623247973201911672026599579463559014618234182878249494084099290420274220527383364968762322401654681282393880627621349991768560671003670332138267727778996014762663464318574975061970227863686113960476953229031581681489959061122890813123079529497921638141681569587883997151553001066024464543449754946282905683507566722320224346014116291416526748819712018790362271721150870755466164870702372102771869765883970365731802341290349941518382288101600827691574122496642879242109083909263292030926421169734453172775001026059476525747494505090851217958185568411392970804648383052836072175019872298351854343100559385861520301410279647916904400776241974875192652533324870123974943296830586285228344914008588498760502567787451963470692451618114082465699440601264990465454831162828744377692795848093206689592735064677223476163211077058101996834042753376194238121439934635239817240207639619602410920702545347628650113479791787125377948699939317918591566128582521446175454668012912839191859257986591922297626134763264843070033742224192012093064601207232927384933339894954565501461929185755412064175757600670840988570624501635040861391368073596295607801794046252233787122998448859142113799100781502987187538130817414842481267831833687611633655055169417556156025257716994138217342298121859511399527018939707940147468449702227900135049853548259795851973230407603610848057749123800213681365114179216580852311550111852303009320006913576379489393038528796013971989854459930188087466265289132335099271107623147740131339731466524351921885929789178698488121521593479811860281594364051497073953358460971793367670178242282730431753665657746956951275413053709005835475994402196924186562789785672140945447397623802993588141098899106798963258698353664179502398468518147356319922107091964428583896217912543510290301121364254212370062244636769083396930485968792436370957185472313551926689464209906443355774825538503585257692979822368238347069367679472850752001539905474467078107472787062745319807284666019418458479382361103099532804025443715089195395723969208413659156369566397568540499556743349123496606106944341024894238372112553961528274087934445789981405174743761587775716511595064377005895571270175999184152949897941976059440733615979236497965754054817932195535840432987836697305216169877414143116101109928655511918520727316940136313292026988426473722904884976348713572306661624092679258870066405024250115528308828373802141804251567985104270645825128785036533801793184901227742085122706443032689950089614706307056369552611382644682811149700532766482602901344025243028839616422752291558427167666014722619079708138612036806241288561273887931143676067464346076118816731491319852701537824635709863744101040571789195449470352060719390866068046789999125357181446713311088750008876366316796598370535234163384752873539777816612951715707808639854991816850453684891877201665029357472357205401395326283556770402753150305231085289897787696949474147155048213048964277330249502179227709226614490505945500848388625600764780460878427681193278535751336705057011026419832224880912570224485876031204634733087046636752510677043166056077044545374564770346284571948014954147925434953308970400526879741798941035394431880617296539820659763280418023965520574380700263974849794434613536926001262594121646006548513430219305903481400564023494580286953255472214567083797055282640054487287102605652746026109415538493261578729117632900151907740915585684179868770672733697950891355256806528586790213089887732769635305975162953535418771242629530675538062534102793440611736010148462484821445204376077459317859265436294324844472559140066840271172833316405428818713550623256310567277680726941546744186875936853619332875723287557479637436224020223715174607854714032730052689382854946578507161249245687949936494429855010996627699666582812831844937162096241498623362490762482416342475026097483017711447401575291878854875256407050626151713690330035506460725152224839791980416755475914933459784049500507764990585598373184788406183894713197835599793388097575758723767642710373706260143407131046977105959813685798821560313618570776929623013054558527755461974055469066728380420144357718652706859769823958670306310770336157717950364484961299031149297375914753546620545259057050257915836253707548587705103050091171893920240759595124540289787907314629502283744741138604086812995064541054296785618622782894318190443195828664265119907998185131371480380246106757941760475126737595137075104980588963330351211166950388167409034101155638422336634548528444021347264791512373133527169336738023816562170554494778723613493698335729831756053004220598044312927185945251644465756576160725695848999005903169394375715666519884232018867983730379837303447182520749365355784767600891924370791036274356674723409778062403512844164966284513449204282179672898799916903826492361662238824064424963300334519357046632404038950749782210583049679321946566817497886025591662515123880857155995351336919741716428609928773072241935322489445456926156017393033396359810639025302848658221697381379120122965053126260349712888718930956952687292686422235522010375049999283129396924349482724472055749478574640912618907758750663525914630518647127836489446151826434035896372995236749757946247773373657941621705026535580252131338521306362060952551364863254390596111553736754336526141774760768043481771242923154182083426117189424930168973469442925245895662277670064612489459709781469188936185916370143239589475995025518118193014898278930375360124829434743470184710784570318694044713232237410610134592198863538176784669709497066920998954177785703530738652257975389800929772228152347223383930693081249727797198179018251317872169565551638787718273386966916423122030559912733145653302764414766383225910513555063958030670820020629763907479662053657307034951744754304207913624976016738860096428556505901345095073027024286640096611139718809422859507166808408130741101609706603483129842646149245674001938066903707849841630778582163940983349748868938182076336149222863548012737776864230027662045408596764528375812141826171651722654150523297688335043330617712645260489943514492613530209619266433241215435858580407095807818211138277635257684201991479599563855453219536524283234620055830109898126363526919095179531238983230791791813834841231131965215930598868205327549562660295655973514540937875514476808339959551042062485577947767164769665729233046706545495903002449502065749589633793360314621271497864326376464619418089165140455211889256980678112249785014965582604953483388744338060440332280585017231821470300788852565853179040395107625085359572325284506026223322525567965275122121460067937072418097097908983526475434875093728836462952519547657074285357534435559359621705353670657424147682886288767968757551298143216728891966593822690830118889957459017200155238253054890960328649269764942038473456826039785723987610090852132244615077597959194029489428482936486824641862076512756636349636152531142859067360688731011282472330117312882083340978125930399328171511629571778669096198008400589824177305065916786218120628328592495728974202022278672656303788542395907169372027331813230775856531818618336225740193415729930572880802512779255237808702572704659309904800422750910222554901677049838018686250779468087083698127193762498061374769303913319949301103643819089590165234152373773035815201530498796413622133756209919905200906765265435625914685120926967112762019612953030232985051621559630586980726728120971194649695634384826881807450717738071599876984455179382123493259243473859551265896706015257099722896630899752778357856797334326001169133258973212519857796656751945664752851265301363309233066359450382820360805661022303507249723011536789762771589154077336630784100250466999880508294427176993045450895384026064468708997114631948224403281176758691090351929738775521642472985451337968690404142128583954928465591844511190448221008465748291078912480152451724653789971266595523804629551408804851854952374120217569656896837639357729246279068075252142077596234090713259446934776831474331632838897356271946244742443388714033819341583525425036298666123221884649759111040896135325438585661050336927471929871348717706969835740864876086012761125794068649478895044881771621547074875330173312979585027508324544638349629738189935469263508132613806637197210246562380392833888622427566786506815804387151522438738920726161611800330818641170552333933144412390446246883988480211393324780260778941767539754049657495527873789949858824326858506521398871291204978639478310538806760171642948599461987289663950499361149023701447155139576996249758104247306669991787822720578999309697519269654683375450564930281708184725776475485815802100967928950135146930412468765109212968737172768164745806313405743993592364982570700368171014512232817359232676652644716067962185937542941454452984737544529673076019188747881070830353780915598801481019387276296766590984400562830551195126097281530522449102723563517937460638772265385855103588110412276909477351561608949939755818770690491642112139662681085719200041268968145125150803902093502850405703927483361896587365460194673041750736960923515383161932947204162785412320888625384854020146790255581664997100291520186215116439159524983205987805299969771226849432983897828945724919169107443805445833124760618358085345652300696199121423580346161892394382362533763318691766361756486827763296271450252933120361744429281317636616740312277359207473652912811020991980831534491397206638865015056420591387284399973644400419142754902011024931518294855710960436518270714016518600246268246655024310113308172562443627374996034153872860948193471075252974080796970971493133958896769821837752692868102758086316878087860042602012898619207169032468158372321884563256807820459856465882708143808719720984523777433742889129397791757600110742741075843319988327039060842080233988186547433592456128630380182193703199421028460936519612150833414013620515299211857868906344405048281686120101709612359412412926975452849551444580860102056911395825076818489737427946242198903942668089072028189393387337121771049590449337488858225455392771103108135607843198984664161609066217052824118641512864441771054037900993925038738752279763667521365656161713332229920135031337739675969559751303222951635961101835258265490439171190348750254604615804329927747720326013871174463671732149369166528951272019077232301129467437038598743206995113019230390650581202862641439296022547550347501782738128223250910536790611510419443906301041879140019821653955999969719694270193732469846524202620629819589889923156727341511794299753246864954778629741882972472413625155866217123237747943375845453174074055303332519363244542040065438883786889680610662604558927229236805879436080395580143929571625869657692824422236428840057840363901434666154399934125725281187182167128426153375209684065703256923279639009642754477830901847289750517440285353863526956549803117199685598021831838304692072942007544781117096844634412368424065422980813427425598611324945987235934956866777181886046236174868293927692478481815179124951798846125642258912838795847318918075579705722476610012400634736101022603113671483605505004162928096420288285556849145462566651589579438940617455423999792574507325952567075929495531680532143684077025362847456031027226197919229879751423302586789716018965350477314822588275950204620871811503177583336796907557779675506938055067598245998929176330870492615135176923259621359037669620757517976162433479424613702504838789383952380863438660770029939118199000330748170709019567800444634567107101886659381123733962314291875598096223774831423684396731563378248380000679608904506606782678326431559199290869376459731070367396082164736287573604549025600922661037879151313407835068002059619057138413571634630858566724825594860414788068452599704794164100262223681089788978657284203181563326971653529122534376434950309523744919856050929097015688680295197105925666864375978192721825751146604764694756236050980406529539709751054248375029021669653948779807103600161247686494210864909362290284440164938766329398865656472133074393979459368604463673673560656498404060992321624084721496724611372274989958672754423247285989916092753292265305276526569209871873629708695214018591868967591564776101029493736160887571387780109622734502125680524612643895118242574883315161194716200731231251594140210011894391008092815815384120647337814504789219397837461327227270969106376714386658804140413583653702230311205409065617046086877469570359512661659025177713714762432518755173505081189371556969784249227948355163964506749082691561285949447041046619332303276916513447251940799818934565313634272714075143997040847634894240175523631864512275917693082355683330959150566019570208939003880485116814551298936770713486207908512079510894194154144703025589428384455583316436172147210511631181075286723677644270923347417242893252412445373957103543522535125455639730980237672431614056682291714144278182024016337887760870580291924448512927221309346937701883853683384295947700158115258515391565878986358351530021959816427689720154459400172552198753548277006622545476640314378349966190338453949071658679577770564402037582433239717678400365149625232289725990621707135128582865596382064354546748747636094142964947769571702808169836461633391093746203368412197662475722977000447910217989194655631322862477303192443124017721387059719854351569986205595384839081731132012498575794056929602974746581065898131035403395216815078012744340461214802227301559699046037329709998278762096352516649161303535729725393052411171169896351714408852116825699851064559519792287900525802347989130198546203129236014679338681602553448509293472901978139948853541393704454334348338687554277131221219167896439693666250965885031248914783202329510493688021532450734871845704095537223974929095860999813370330927335260249896997898319426650328495723797725634236476866839896628720493573113781467389307232657968108792436357501402040872064513904422524331392404676167069111233400950472908990192506844876594736580011758667176833132756437680173619967634454453778167130318788095647553367050531443341304188889930703797756627586155370684435634225431940172114521957869648158986958059065517554783893477349495073431124580845971623681420287075086614314895499118201035058402497331382893019095945994021633506467574029118065236897175194594513018719702693565907333302638471069166017283028010097009941081034625543040600903012273955478308691405175467787267118403738654737595405723323224238104808137403214979349622448215753932346928751920417951546023180908767147543938425687302982947569287141153770245112352659608453727057822177256635452359406459208257925905950750600826776308797453895431394056579009345093710324165029990575144113901957312462148717629986375701834775626540730657314049300438553883968146287080429360015718622105394399187186847305046923433517150804989940943025979086170204821454873329190572577051652185905242113849345920888520068806918302601084509821352686429418130017090764693700188307048343493899724746946477703305224376298727936489379511378850531920898986449981407755329395226167313723803260787203881475882860223625450240357250208564529891021460552758659443852116526718855497675968082407342549406582923663850919084083131584511773424436602783742653987655791336261233757390075164605620835496734863808619938663864667649329327346666169439986995069918300680159715610647699158756170026126343394453098167681537378004890254928475393700400404698332738015850580591930753755771248719021485417928587221610964174882692620894957602643946604275760072704245616028726398991834735931802218834761051936708325983013366788939711765998105773858098050436289740731611571229246456355558087841629966330528115137326753395796736208596949180462140375060728411398338052272855137489042057018297174752628006058326207899781268786435039013491207779222730621016748206214065472674736370348661435342750816746286561567560738525570791248817979247897379542437764409436789103634668209984126367310775237799947620806160691712758187215134963556482735844827132491253051411678581869496579079764352589709698884937002729868921045154861313754222135174675836025913684894750016229699289485860927461766190214936091212154435395811055106927638636666663153998251279494488570267587149057982129762981967416089444435181342589772015251969114640336025288171488905747368663852708990964069145333002201181395119471909267767557369238530966165572309301939392436713554368102222145461403454661208506036006077743998266383550329647886141167264280322380251820324545525245573810303600605471197590625361993678451869483856221342678210060587898502292877720594377542721793185209435474846280145256454474846511432215715294924298992295473615248143881424192262252068840513515462214682888971440189423533326632618453670876212136264199756752505833422717750991255253508683101399927275061968294460457153254350306430773064408071864325838509901163199372401868332821465200023775254291532536858369346725058356298422720284807617658838268356535105183482606370859716345265505169328696642482329388835531510225377433567588006318406364536753320661147181713399957217687433661010096630868572346444781423227861353234448722464215346539260697285492400630863870533913527141263212188448407589808402982013036230505983783745180067575649024399232035841746601877159954226926236582107602743468309884616872041903722059556294781349051531277504211507149955747006593636438910120725119795125780448910172561426912234520467458519025490235120845687245081442625229895196064408629674729267522402342129967779434072031670380373185035127067105269833395098930722763538175207095094043814363188359218177426932105371354899304962904719215656278909370901479692220635833846426806939746394841480759400854471395880675762196731541898324960976790911774748646889530596421681830533412808996504671729669704955925627755025476496990803251101227259257383984687899706345579474433797513180455059539894101322959714197771729172036350768271617236251466580702007612887648186364970489792952729898761494332776639055101117808670265901263077372998094215057445287842514783468749037634959108016694800238034108962024901734466192739057276776950261791472628126363522118848284498926217987395914457019537989274483219837241882941390203033259541137056327691334287410813683530469168422586815777496597505688433791586138809846877597912698917793803448838045548981793854315281555976998079854356332621953433596909262912721804106071117795945866397195668594897232278178964794779755955553140764336553979646678718938058714954273081885846848357905592460361517133071367794792836971904001888071385546172189197235101751998565516408768549536637356041514795660038799563597875483681323345354259591543241622491556392397741963255380311349771073185423595751679207085524751249747678408645357308101912957892629922784159428069374785506412477646521682415595871207756917393371833063145846395051646577087910843968355990016893180006044269146368632130800527486113612507308832240954396109230947927911158726082521453614132166763339913288535833931416125664107309366853573317514162635998891259187550459335664239245412569427226289057755539338251700481735385503070370505081171179775642502568910393896435641327788724694917799548916517504578496083627400882248335532133363276071129542697767228047689134287456290349161538700481732819650397217001892646445122330543166979558599586042836436713113397217252855007216796270380788664709203382042099392746798012934863519716125564730738896562553232028549952192981337621797212498576566952847248710684356118715419573326415834979390514287716315118813657412681969965731804094893139561952861685990902807311314555791515119818449002930594367392857464412994857777047430167387586871885422955053937741408175209784626499470272475489733275286074287355411264445913443172723401484282479424086510733272981079656689661137540562928211401773355696639643200303726156968696987779357633965005034594314476361663691724432337859137058944282351854643130197858569487084734887516040437958072266335417851420729407879087351726244820771091047661614549499929333438258811109074849112257420186579223550268411200770052700530621200368034233581099181357380366669373672924773583125712706317456277248828546776429099617274075504662371362744595070967707048042188338389299442849813589350150124452387395436367260950051731675391511681428338233672191203373466507333326693183619453611217364048327050491362908118062880530099273943715777553113048594975597728244740468244460227061743420595820652534271967997252445735799623644789747264799850169653230555279265306384676297303438444773604344375717988382898652081261279536770957557040629317782844553138385726537095125370568978488576656509610142825223660573489132320519455062052436154821710011052336817012620392001931903234453631416817996419977732883724353558663694729878251232813407132786788001166799556008299208173872056127819338514404425947362555008118806765556925113453511457652618240522736975574706142821498557509227197858256019304876081942061914959185513342462476085792156252114433884378908504780055124126812034242454568340237870828092293584681463951899233423966013909164069067538486038650954373974360480370263763147893282102213355834406736142514108018906269697185140188414528002930913503743152733876736048121596743913696604529182882450531156004875631950519598330131498811934589768352942522868493278007281613941671445697100901716856112275513966048048542798931978609462198850368133432098429351970208031667253826067901402972686114778226441647633279744813702974313299377920956602525625965313981651829344007386307456843890810461628927947610835934626211450340614286567467317416174200525889017585466089481331483518627821329122186027879846025122038248803473066976365914893791323933523394925143256622556361199370940227082632615186204381915587735711898829910746806210550039448136568031527308753968938258763608012746044593339352405396313086710483745515404287675012408850603712924242518308908508161010228445215705878146345018375025306176427391396904993612972688203264006780774789272067820640516315108005943527632570103855225122701961353427708408114918776061521831013833476386594536776133916906991573853532559802616578924997610066475062117863958766673164117279810469585681191301329884614536807568164931685549315164032251675213441266504840166962487482500744734355313430125402488587428807179672651997833250478827434291284351756564942707312089889583381039764524128480492766790945783949443287176113630965654855578235076905067922794838522834124640755451138999281677448518488938328339435347243472865210332680911849180014902909854511868816694743860206748183995611292487487877225856154534903435435137087384350461671484441268763475139628354433916826161828063510202610892614007087777509798525212077804603785896543533804187790838852804437712569822999815481808352422435696469055880736476157657887986123460897064915398083405300536013877580576304470900958054180776085317889236055640601444477618019132076676809560613214531636479106990336170508492035838209755824392428050971861865200159961314414245234645876528198865023201134629494180772493305897002766532163041196431601137617434054862547092590623775923009427501358727574142907264813366258051711040035946341270789241665883050901266088233926286905352080776565739744795925952558132793647226086574910053142587067654546271889921018750036273870630286922389875960342927620077155650579921749496929163452547851744459728699737959621046499957449262214652639395283828350884990511513647439768947293487118737093022104502290531493900984699491069539079176547767750079174511690247758768855239646867484473323600053909650935466365994483501026696614491332423997418869548644298028820093969011262189286306968535492116905706952716929009838302989601579309641069267593115102568635348457352094830287367732321776141899943795065758271954909722957651866359379779075957269211287615058458580310255377826750350306818751565312882582016121993052850963921866377782748327955899522461039214382008144314269381060873939284624298103794447355275017437751957494299380863230067709778192588773469848738730967400076265239646604642135539958063094760012893375578224967076120073438732789440594334042571732945540414404351805693288520219305981050369768844392150982109960854903125671792642628821491857051955678870123482319679090933347797727161119443140005924474340808971434197311532007962361635537383587973071554187365804045354805244033926147466467726798760092127579751562932395406789928427270826705770038468677116474389813308507668111578979430643994277703574146566340779061484111394192445051315875166233285160275277184251456165622200568332488579651021490456882492119200920172998976782444168100482497173116143542249866165198410003521336728279362655867562626126130810507819573586284022755184312221512186463294567438816786602921802449058584160596790096396124146153130132316912656346820317363693124232431039491703011754317372227570497023447606895121814601452312768925417362560197638168145261815210600546185807854129017058997296636390557957311594142186523265290340461664608600115718566604935809192433587463921358255102153871321621698118205128132208140423295161572512052058863160018209602199901869057635995034234017078338238543648720097553134826728978410214077883921480789695050974001082583824030852381168503741642957879953484951489762633628596946210597633479063696182281425826954144191696329939546808786058475462656465920669707463043506091205679525208664406749305218728775076517042848707891351347713785649493669680576868643590121981827523771695736550062001579332311045558322188897422986647223832964175342721291497035374636203316338954154375198381677836085005449933777953982188378291436202752544651208118356780920172516427560697677786281859447273567888907716884281207390238688211493481823589321947297703827403722526304427548623868251557339425392525478071808396392830692231087265430858855481829364292599847392780881440543945031655850925091491950724486467824957252437195236536315694500849371875002696308189577798822959918248689386317650998922675340668008382376672279260231011388542604983553295251825522149655758740038600758251960200473465548716151514627474907904848838895699990099021587900275589379592022809015824678574223727614722154713702069209086692214634233194013989538412097060648532452728647480333860856568026347584542978352510976707501003812503440764547626469022914994464804211654343597581191010078253527328397735323919485102412648677296349605773043591304855261373151446529354952974373040355189516394560298146753489156001026345908840515343415367743570314768190432573100241613539418227895846749217546043634009105289670934988570673335108633571683829971842339853369863265884572336738882598421194223690447111329614890149414180644401922132882869425687781781296143085382351564890590144272127254292572919270802341828841015543737773299573453711612695578761286224087436765161125922313934713217258879349835314214930746257352828476539011666000190258537559894504346836050319056553488900207758012785018774819474021065657832823211539583202296966668697867492386994167304516505218586106538662283710470560329474866417039789755026360562109537774023416817908465319363972240290727319256056716669766373330018007862631723432058464924649616129154614911137546728674574133718644014245715074093340630150200683499099274056871568284357598031254319150927182513608374958666362675054066365913541082918091117038258857708180724841275619777189970501522933535112850761150009677334153219669964185998043181825703019498742684820929482065623676191290103393181504198817227482203630821594623076439848936573522038075144832472966816639308315069830138697643383523440301231338301946407760069669272931247262809234753981807121279216411951842252547965478287034806368518815856005132792312742065447099983797106207833217132500090196210596516882184682916399559446746252060150268506332974618838469348310247448041728227263809671057828380521290361970075982500202171918499018439322369208298004193445322078893016914480874640153796593981981038866312846133822481499471727476904769033297769521930182757009374621059713761812111139134119763154907976074498250234371832747143429857372470811104278385921278148496317157211856292179033788161267434524689947786613877874308649497223763797040783222689564247369368789708209287338369156419366847971250402294531630598581176041098796176035000678143206634675719121167350939634939532108520594120782630476969494354711381665884988282075028855877662935146724839374636511234653311362422663187417437848550316029583316803783453238503580816253798088766575263649360164285508371726432567429027658367853427923218088841480413358480803782605020552533974448765377936867262564025509944540689185173746016307837256731247230243235253755041477406141513328497669521586280365112273388199150743038869375867260408975941186296609025921016918448095827138898696114177365170069081942807423672429075954563959206629212817358717555912566481267476841632854507961522260527367908407542142401718914199358012691677691080869072369726807013665051960078535776458759375809704876144073880829838785431780697705828172679291753333023777098961758198193384837043293055085289713571027322275762514966783035853522104776852521415204349505864551968547278648850752045854787259350775121650958230445938471483088236394011500181312410806411483293663839058755601389807592658396140939962219174015554462677810427104747119659203721746185259089729274523022095610516707915288613622068149735304554915397621950149372618864861680759724142975718085009460432994423608132205940052571038080305761334776953716539342102434942643582712361887958648182249027573990326553652509115619416297396867875659656641649438683404121290769934757323460094254001081217754258977192324472047344651182168458880902729729379210967648737378132266327200171044767394372610519724530574843434436907172540666126318801148758618231109952481468778129679484449136239088379888424411113383047700681193693244717728994299532529967026256544390707308340918130564911582958211298396518803978088936965433382645513727712731423662803765778155424279401284074888302961695654608889156249560006234777547986923303848871971935685625218076158668753929362879497249361810728775934149429516994704358709519115462924784924709164567235302892759482229094164230471485770620414215971295552127589161894392227404005478443432159807490124556154249485243346756030598669521853228769624328863825699049767543297778767322164387007429406078021146379422023436576868216529902043088349905254907624732359806294391255831473431367954916285175994217653645615500111897206709364654542516681932350419771458345461527315981475565352966384381461230740735806306365412285556377033382315924491271669910485316279014767363417806688149384208118776657096712380233204655219666557055048442833564641196541144960451536784061815320262190628116055315248473051531431475390211540364740130562585876162761844792836915887640591837139374790070738075829787979265738630345801290405125374314688436085206161793059489460762088346272337866352431174206441252580716872930587376220348453653632722372107107815278923706698501818467762879754981441739532952644900893939443806490899341667902809631975482727208156124247679594048219656024978781599567551151008404140310076168954674488066576174354421493092910916953960376113421345062142260997052135218756318932934372165936304148119051824516469695601490822294141722756660117283499661782140422609047834390972099167769793876381443665523918361687155896710332716397756970154578338410807109531842357603769918730919061154185492198194759102600367354029421515696935773617028586971559279970499570996057068222422526277111745798119320173959137855571903333143521419106078665395206435700280358555379833582515704374592706357847574589325188596500261613533167421667334207288333228654761287895204103972571334369432538417879103423374112419806063339068452318130802884456967747732933335302115597829585507711732377059864517925592330278893857617651202797247582312671495399947378102394447979056717344252425075916496494368454839070789493683071177085808545866029876490882840309778714920778205941309676430869916716014414098538353242247383025324759781509714792116014935755686801227738192912761579000525953256180197860601360420225315788381603577416303905243840877927736407355439380783666390117760715004230021450966748947696357692093622468137011065681305178317182910554127648064628204463832625924949392264917514822639363473397763922119538519079682026033753450801858779951457264915041985012486183868844194748360861458322245481325115537346847087489072905601942897317916913442379002546762830346051525275054996228632524129425563739909696544587518961045628057821838004299528011729116248401549841205975744581233270555736744397101408829818752894464282562706439456649715817456125208121616791015925683703642111028859342159121030179080143104820469599519424484682045155347182184325846514996853342314733731543649088685207306412218794656041119964899697786961159989999917574879713728826492879136940653234723658593161174498135724474297671402792446801079983542782530135385397672748712166294704303647823918521407976680200532476947095741517432009816861598613879840270872854768657679645473830659219643210633929002759183069996615509435202930914958086636105530772603711181938601740017418053583151403550274439813072235350459869541722075935464067705933665603230004871040442977574034682702575070904840828319773691665070243776454950882881729597242388415751736925827544764635621574877553678569113554890495232559101516426565169376182136312205830906098453406705886522714797613647990905660454874065038816259363901696221490907477044683745952875467615495802704190705543823100169218693074636822667638005222798008842085841848774758600102141458055191650070862730645274217724668763803253743869933876140791236738776778713880674214363882912147922278961561932245960992417982848085655102002211505314158764584500486682802055836028048958623386943537181985796173229910121395588268017125982960947827225124650298419569430854604424068716871546684903139895045146980396047459421809670973370461740548767861130017213122040803501323342759849599986616584902678289927034917360043270189359978532757918524236868571408809718405501536918149299848834331742926994153656507663892279962828012902981018790220802920891807482233423316921928172487678021912908609823438378109775983162104893637266441265480259201509512839296418439258048897264391636134398300619821472881112025942461882980199319108577988638190696364642679922032894625460270984203799427335680272684903372437726292758537314862438596325178777545540103904872492607524964748743977270438339058697940959173926257832021317205656509052142206915963530525149393483572189840117843849751965652979234367984938245026375590506336044728443656391421688403951540134919136340348150592596976573222979537296891654263486570057743117571311282261051753360048236412164465512406833604027066017930085530188791752520215034792668595751366432352601706828318277606410651270108130680743755765757021859166114380086072683092332494640629897119884795512508599179308023229038954659257456169336928502331382602067555880465439350294525568844913626787909519995261319507670483887089650768962207142994214196329941780769875245975027407600822219704888023719273880284992266473503695412174772736712040096728585936583725572799515387561850230918469914795446422752440070699049256522576888034434457882300489368313209333711958477988003429311230510705426577135221398181131754623031901046677309957888872808999042046661338756159816994654075641259193762790058548598950392243023271526995919528712343942417721919700736955619762311425292922196101633043403304376219391453202980389962864719855305872528531746178199413661074191626898295044515381273139270315994178286025866969786348711423056320386016116254078443482246979748466346618697103402227601284785774709277402827287333131205730637094361854372707442360546932158426730077568142488037892447973877873140006824515089408543043227597254236701757492093652818709640696117704716726665955551088383989707279442042772708359205018585237897109563080150947569635362097038034998449913772313925732049302740495459944295414734507108725853965178047013440980244198303780787386636557263108219750770389816009895408490593247710580019657724477715702285617362909617006635124797290832327150005697909432507172198863968828647132614317783492862444684699414332684594321114362869115772661283578540760165219583902536697440857334657317763909896896129369049556361132730129223797629520562698905900498498859980323121870600624841784298843748531687206086332214556570790927164623396295223925343050254789721249904612227800297188203273854292329512374189544741061500791315721144422963642091978154146953668279883989364193944146421700402045138007465149006262088072701567446674629548025168667345268111180131687096580157011038513035899844737601666556992021246095326878172940204260136939888115509129464385162771654993118121139621589395381595387451274387512817335828513800501087714141633050517591335323290034148923535002738950265884448775760879246826069901366777774598967463772327564961131260652819539419223805578497957988155839692384913682037467004626644953634616770438998267513570062787393542113359309472191713789658427382344289896118194612175931493809010518513617822191051711343351218284335794970606966125214771277551982863765775141927719997508145652056730652164736000412318531754971970546106300633041398839349813980514348796970962947700873477667716687189518352206551670143982262346406866293130998031962760075603907134110998236096750534834045063043899636474768731158081986594949931179014825009870748582068840500807331253155761301432722470164790319075923436817994676878128130409026488883438193006958708028969775046022745513294813243433192179980404567128238371852183158352344331953393224753712415751084226581723351870599328900928537455106763162360317720613238743765788578698811410450296267636665796530994128315374667765944579378189468950737628783316132725964826324767067051207591522519111580716139360146530831549597972880756930062513477345362228311053278359262144614366150810101013026200035112422509232074324987813653128596482683794115235998334495952979057099033769045896498154068036863655102440007895353351651475559671541850509328332074687110684628303064239513837017644055050206469570753552098609412887379019782780329109053170105460457611532886880126161895224917765649129457013543800018205903826428675812503978926027178061266909014436501796236783879043695675247757191083486991309557627839804936781972747575316730181479965805278351343207250861219360672803143323627433907604003500460928511834012871540481351127629066734525072387930475054227374585136123578023104284353636036109642080425980032540808336006125798787332514910935980080601730903974807806911752519308068472855135739765124356641570843130009993855596960535848227500321462014073663071131726872145042816966288211900905952123716258655861954362060264181071219335693124485577756269581328831927721870968513175417719469088129833006512616709064448307205052037035029386012137743361106734291561058062302023304449059455796794376318536051886785118663044723107889565942559855500085679998198136414035344948669214439956298380164579788632155476517645388365326856256654831244514865525984505338621362536161405416298131010874720136118333881815153240140779464472147681709066986179701869204373982432513465106793232095863991495193165913321786883354691610138764592927029660044014675327621326330158226328552321401723108136511802433958687637707669356104082544797349624638322120256406840460098909268224481200938332140650166768036405484113077513128073568055803540863956025878815836250452113598180025599291727164502663400984007985461575666090404677817205789678863056424597932778633184424032716480201653535811880313088646024806016915302512704202491232371270845961596425679436401075478965958146535280225176868797730813681244617082337031236974324272095971072362102554275833952219039146152419758185287317277718696657698240603810745809967067910239603552240262846171982904657011435897585308253106456583556747055669099783520371085565142834588112509912120515664066115330325063737628383753710902189505295164603569269033593584825695177837933158571554144544277690968151599785548461686082631151820722666308039356040752110612475737405148889956042156688074436119910412034892941440233344334603810188605656917027299814044557996415630245032728704519921038639672145576667282474725716702628678283084298793744861993584833023611483003613407514520206059220412075767197872723815785487003075740487040566418367812535132547757256183073299397028359260361470988932999675951390043938603816226104668661923156990999978497681300502982772750302748931194850182608234540900313378827576203905231888790151588759377387573128675564976660104682617177553896626008710008103386701368569103023962746883352473098493519959741717252843184592908673391727206166295355891895247483131549540164940645732323571932417228316021914385958891315215478995152148239398040023493246579037971531487012129355461474391930271885902039790788556773806270576184874652344328139217989324672394767591110085680536877196003604088763196448598068272300136197182059543741329933805651071650317280348740399102950527632312989126322494969085038547804065466989659603546212159881370411941187612352033533272833794953175495183735155791933931937390278843993114545564244643601831680383207113530783884375742422479712780607414941115930144127288784038344155400190399476563718411741218110452600799333037743933343638842480040291965115228985190180095033206524904926762524201649826920363095569523012864925216765799599123482958015249133186801768386999752661544961161924625345112844584156211740649790702683400771596412068763940082219218748736767058514911786771562432481433785515779110306906738665664426484561278674055461420277968371964954124045292117612777836585171646561437769498495486207385751228735999786069362134559413446717686797875204678230570081536700982836124859038830621798254268067877416963260784574118580880880966925402679030700792225050521106231406808066326760477215513306734222900976523787185115543141675929813533130804344212474911640363125393093527866990694392120988330535893901698691141187623239751633644768372101937509184304351911477316142100510869644841385544521898980962713462103898200541429278480361221580810513521552437868349676767879377195997171096982860181229835340593741528236118781245593265471165809488342037953668863316176967793499353306401357955480269410364050381892263067619485795065303572630634041432643598687431805652072144665219671031486175093455117116766488754779553738500515198401975564053335074202827333972514303021859771778458413416454403957624222118247547288022329819608405361406194003680790494585704346218096282527932341493722739368406141400021108302821366823293235795414406389119479921523568753509951272269922281453927813928633147465156146952997559488777626357925159211269117022616365512406183674937718879535131833477008119464795813365013793343400463842537865778787813142598618700636932000960196748117723732176478658354796114016534169077996318135641506013386117302625216900726637243288683217472166157789849782385300816392461410938652306930126130125106204556074623244250870589567904444228884020679620330587890085078131595124249045391719030565362470346932195540870072984478981796792020331508880294272659456074755046494740539514657930396285663621741730282605273693664976106613420764763180792725418832190845896734529278451021535789804087349561365650141361027243489029657319517195335787258726244341734689634313924805827469190633551228552916239485025862187176825485880900977374558997392062067022518081143603497724748891644616909018113776691276283761637430767835135153250522927465398834569615923570407179939282257956797228115729672824754816566111210192696940651691175517509101126441060664513227906179223814750379422537002886739039148991731207640603910964162864323786876454854244687596329788901448407072065632956266507234908601692817765065591051045299580234223037218516673162215813130006442394993054925196057143138581372273354899372298462110069403635817966349064303120124131255875766284425731864513070524986077817837528269346567401592341583596553380812393547577436045403578707386614543557764986231847487785433085336641209481998442405096314562425780768916369954501899270682962235458653474626285697428654449966075537138199223609062360628065034444251616262824579762485788135209174973080244255381108294765597076053510584405162525983088276824789520924117692867342705472313098290191793890715167296002946097118850307342327518434870185959894589508138500294792857448926586649571525036695568767809665636794178923612966906587060162091631606290558872791698528447704174666889151083149378735841437649654892624416260745806358703717184345129213561251435179116075230544296630900580047780450839162968034706708391007317149106099116655316316432777820685732448476671464867953163161562228906570009914094478663578914772323046936136633186560824272960722273614587755881433987617362511261758887675231446431549364338818460492566757277088981089881284208407602910213343827401756254937115982999146627054328312147691819734071647314994128793598021909453643301248878113040713752970715753595334051367848501895396726458250729563622848563772884763719836315579515798387381769184773550714844598422120525716076922370818452671186673250749372257321592731563737000026346416416546292670260625661781348889966660425070669487061544586956671298203910985603858392429674063204018298752861907462496464290764758852459969856924121754432570814141607002172915697456249309181075422758388568171527309487421375692119095206522514196469504344430192335932584460945950034811012109335114443439082559668165226163938935737884328132356952425295288550493307635650199723551992286588646020077553961595585389629489404020851545561300136902220667930910043063209624960019247670320796673348925235156047619750929066985278628015355363845400685658922631824180612234802339784991913884663321751002396497809648659227332161782650582153506643278474953719522833130925291758072141625443004307218986306453574954010810579910093436801268210649151365133761623694199351258862745965050225019894628831151220714156102352074580585509064864535867236572766337682526384381963287517933095947506220198322648146898420931782035224647369729479650753268147906620641888133546628375471747153044152785320592880715825880380439509806132798947074656989459798230741376303585752998464048730123855639592721900443551854925779851050171128582504317707025678554937980431924061470445931007138721977975677651265614554889406689561734370439648501833050498335319479107202927556577812540968251074482319655181003458509779981903081299718826060736892961349797565138289139016307863878972507236144455135107832814091497926774738553346185622874055012314041486561627332424273317502373333951908475034954076029140165267443593283770116361520786962070058558792074389453018180575456387972043775019076297282428690418331048183297886711266623715467162554911426251008138044230542502780427062877553334558207942133611332861871021827936058628902920583943164712599772073715157506901417684009955926532815827808954842596575923313751271093624779087714078074211352775856225173946489431089149337017572716897103991419300090731927464563876807274075751285453908972146336056789351071933487026482928738282922834584640284716640547612975324587964374518245949904950704008872770859975570758033101890938911508965870487123575376778723904303569479183775677925886169796684532226253888051428036625657074993985492004033564469539794058130137849980473343624131770721851949523546559465656092202098248163483111364239134629645044462221265742219273107929808446514526696843675584174280807801546489229143039912611235843525627109493749494570806468477749467128713540286248302459370127447237347525935182598897861327782244819162426349138844123059070675015176343157966016793659941191354510554172567529103352173412970939896996352492945670965063099109189009501728717998599005145344727153634781234257827982043867543337296535726011928982087443292731114175614663643900975928185241297449437438043523089774910954641410314260564582132373598802670842732263844493557578147774525216619470683377370030856340051538712110420707048170924916297217923064432785022297631642446445013014843179977381786856336147412080433134999472071839959519571832548436994274774139619933465626044240852357327263595656252540195179500393026965501522568492296126004793187441528842264786452228241583541320011375534831199161922852734076682499300052307664765904702841095794145924406984045503861139824035860802817218813946646106994607324509132588356799931484559249867039202140512267812104713648067736798179152981070844127194538584081291647827004696959843297094958254840901628133953185313077034718298992715873916781945567429083831170079698288807063488243171531507084535884783137685891162294854435260834205352613707688806338165678498357488230819352360264684185110048760283089324805375733862014185538753192886875054252217362013770469020630811496577476483824873790088245213630606206060149507651786352083882996720311818730146744919613441078811107660733060827655783207868584886897450725671145314197334658762826366579001700964738490110021792875277378839942232879388699020100646459958108717475043942879764030142292259734451782223630909100745616106144072077937224941015467946281978120961001599432207814994991280425215867578264699940255716083387022247669971951642638513863307729112325674643240294717925546369087322174308567639740385869273324844895754190895024563482416951065969990839454958817461522974521582732590305761906545383888396972587988389878483341443313902476902437972877627475925260558984039649195658669574526788504450643010194572474889625206921063487366581249208735589520347037895023665144137841722043457064254045047963523599100182914892334090040680701666386898996762223687041462600756235362954148924258058673498878558698148829805854024059921844420920819676664692610095173404896797956839168515063852846029285083910867056566450555012496079373632223949248231136456741129179209166150802088549908452039573400055087047727747037406087648980947403525381500642233368658252948007344326729514618278942327688198577579700849563466668267507505764082614746747591919799374328895421735585327256821021121126157632749438294863305912605224155307954152120127099794082364656817330118580846463177296655316653636336352668147581814068586319610684067993881262475488928850091686616864033292631427888702540165898992120906280738106261238593788373126899208460575714982750807475774725001420060019283611564864531473402275054797934011174424369351368240926165296695446578177710799040288941772515036909703855994238002439843094904131727801318605022946163766649422669760864228758683014444501117779592149094434179048002349236220735793582370536837702927197297486683622724481868590715618297910325937823922722036841933351049316151783693056150551601814818030815647177095190842003815728406644033941119278053267100258104424034805310167211941090480012139860160577248871209467233810494336427538187176228943462684052210239649764849216175433589462002668704645104856463684813245310743894588086794773661953861568347804404726509762410948547257811717175579766435926959452883903550141373507761875433137238510046107665977418410955827932471953713019761233495418385887107395617908327133725537773036786258576816133165733298511262459099320905105851205187623057625008494143176663140438741031029057873619354154718386680346575631065736383404408778850425107089878508019369740202069915521386634447775526965032221276181550216687601959575132627305075754727731430094168339021701534371198666762784920728363171971520526020843027716263864676135035966789328603233985281233462375036646459124710010579823845570709767481101834617797965206894225188114599814108540492125687260793145012579260978688553968499351227052571770471752801236474952777007562082717337230918442990630219633135992969761464621704809966707275648787419376665572513780700126853153900347496358847862377606503251576780857104384300303080353994243617743538280455195891072020877364780762762138103793388768013118858211130473060081380613378184886879421549737382994975623843670422690942457470855409128028262907993030323921569192676757856721904497678511418139262970493448952264873681006805051213121127974213724961244676446307397972432250888940031686307229053358659442523258029652295742271015230767227972992264429663184658709133716012046157819864523086377479049824830023697398078025199420044682278118040396799237901043098574733063501413816175988648143839036383379661704078450451252640341126527808073515059160677555120221755742458066325211884072785937277540178058540572104322854724218437797230748144162867461610049396702511603724860515156421365422333470275923985686562495527476461175784281620921186716799243717575791528314641832699195588433930947265201150373068979738211850689749363439547909544562166270047059088525490961223625102218531782507247226588747787142283606681052560955152357378391951221453432624766129706243305622972262406709332871387208239064287074063542572395137339601692905153426169346800657556244791362952664189421299710685114239079062347728186381387083861037063782799582398430506102604030747531566306754350074182439245340331138991645604194333316747598993297344096608778271966217165223172406828178118375999031620773381333563021877716877427681012459787298688796853849261258498768626171316990327372724577566766514914355807174189943660873087172343723832476331290380380687082675175582067206380639285979144330598777556739254696355397326332629200498325693598322022200978292753640823945862989913904840341628307050872837742391435820703922003786874631352898617176553234809324774848205031969358433107974097636504440098989937009728049256449564414647905531326029337185454404586031111250551126127733256579033023922701736746881538749039251477408614988322414058832519334507712854578426533709462693005106434937276107275878170644165899440761382651896874403067600467188508501364215781704005478024554174756732074176977996814767069671366901327707914138704547318609305170343645977549449783623349895986886312215119198768581544708390682490569598258399308785105947496289168684433553068711389922587924893027412663335320094368154279169951192250395752281407594260631454451724480913786282423523797180528269030000807712974285638494321339905231286955317346924452172054741185996519720065627313296939333112919014269211955412200226045395912471631304984988141148262428770900658966990193657665467254803439967351007441135468228981118600997754559981563253598484996231142737134123628937182185002771561482408311626747602345076658992701672836127623910825067556780035751458815010329081536006229360336162780521615182898199909640421419686697355830572859312361084499491755227026512217474977688285349464860903644603499208250848641688338584095848250528557993271149107396072386901032528585349949209953544639155771247765094355761489096796298469612193911882831089617066815732476303257721364110836196936142530992756774466049740985579272175083962142364996017244567259175162256702851866838618995751217527977799116873185418588356396531458802983530114404512208337172981666543657270817600248409022634298570750568926399699132209170522424836783857580786083422004824355139978119593350157350635927986642015025507371296860372025196926280346789283981409162467198105525594190361334724058016935353880664941143882278040337220716518105553740065049951277637220651975655781493673244661196410311122530232976342789215414369211171893538674592897124709000905906653497848044820210475753392065567585412875959013380498639408001772322403155554630836526322061659162197963298866653807566608351545062500110475878659707757352051894166213032826007868175178601766747063508418013231164717987713530659320479308443529277752781125815423638478850700153688095513869033780276220329380976011790454261285455252643050870649766656240770771937186263589947328987206573564415325530888758392013597467485301866708749211869535001525982262340744315898777171993218772477647418147406458699657673933059884577113134761012849580191819693809372200723357283502623462616065047343430325131703338651160518943358167675825750137798031565218954318512657755458735766547429921207198201364021273750870107999961438511249680328304660168816021020106577312680656400785873889548439229381748008610614137191942978107758708218139372572178096201643607786574811736751149878351737605025044577498975572013387013074967031745104446622524710790042858750956968089487813209803390940960593151440430507244395911918557153544751857042345411970693506078925633314862790948587956518606050238747966035904149250265556334948702400600333822825221350911095274135161544162474311762092804955128337936838269196712677392657203318207840980576367915360308985980715173153793548213271774885666814728518088407253527857447974206837594843598415494912078339007123111519804147030548169804499370485716848522006215021192192874732801141591308631738608360635871945087631515023645493103855606647341984106940207311553947724906401661605011764055664498228113527315038253069373020141260155658144242931738630355890406060386288165750750952730199244983782397112785783816962222398955736899907451639349965060936649113776501187342352999050374200162649531520446623620599757036631186561089178465773842450694435600603577408641241415977212990941235169614009250750563669759117281297149103876867466069998148864181348473258970830661478268410136236543554579276360614421247111242367972468932753436468513940840562264368716203647052129798897922568602251430243025912948778658070266721596536691372137864017321696871574987196826891651354623282486632779526409670021075655466870040271091750047596494618066257898886630800073986435109350199398561295498628101173870184027628940640266681365113794536453824807025743843341180980548811051116301722354601235200891484803999830819747347538237337663126283788219745102461474109850175615981875683534764038981540472951876790385340202349864025699406720368054740993629341056420735865380802407489894430413307487270467643550088672693651808648440416138742750841971290087076515792503200061225233570018134475955620875886288198859106977608326678720738171900747869827455196272646640162271072311230139714914480801678886293688636886648591141950434273922785281173414896848114211249444834000189917459519605518782233055913293176007590015776673656341789309103108055827654498746202474135232554621396115945382577708597550324700486619839071896018241746729837216274805364371106908128065443507784332979240729732093490054762977907443910327609333234941107716871313089368021720445518955225159205590697134460751159449439103082031944005818778332033030357220873654896592286996364160777144427715987708504201047543212934186873731566120362292067964608542524065690505791452538969332284326954950398325894803292236713801054998660015264476515386208809904349870917381952319921099437604043727074349379174984120786598019323331359619628857335784495825870187930723673253974768118360189824900800855705612697654482104497239732786726310254552164804334817824113883701313753712934457186684505068215318519564600964672746913259613713373396982175378914663341312917221009984371094994119268288991095080372034547733701112136187503532393377479142459283622649669092860109049309538159519808613784906690455524485252365067613473403088557455943984993908353401823204438213560977957189057845059977669888295921121095848277953932446925935596360302323627864552778625374322280283650688938445388261850694426172931570297314478364229673318512124132052849401610602607941567519097362504023083575066691186116975497878017026647645604277762376730302418406460417385744334117506441594394255485632031907864653387896810670914072808360344027950622493740904073761442068686579327279135525798091678059565552475807152915007277532081319776402571546635448561788681607213041872756133975335018226359532654940596151388980805731900122820169223266876611714643991572335423110881098531216484411318372969099064816976363482005292733148982897840059534772261945029190286868603822737169687505540968447683789289903156638278500031761154237147142708935013999325201747028953680641749729401060766351896631753987486015410899669574779398798653383144379744217040750676398853308821542770112890073498022204363381842286476545299317585927088428267824163290839988083671532938228454160772519327119675901300041665363541382162812668764432351782899634479275315269797559089537239671973801577109685011026020191789699048958483396911318246741756532424487408527049680168913623455369528740216940121794518374436008583740501735500853540898324363082855536064296674104885370272123483611396673165212127544977720085273319190441610123929588630133031037620633287144684018384938895493409789704756167860618516737366847037575988600569242712485232916357384429697325786428619936094117400229882628782518311299568436404238878116661275473733122973503208856502737429995776530933155482847738487197431364531040596878442145997514883527549778510300023896244062998774030650565115380490500212668740181746170685911451916431775850759927876394498337798460911267367243076692541102349792231401209608420827572138947379046607176859851427831585406861062403227013495376787327253411771662623189811373519476676553447976147789334785489137105064140848410662575375807587550949729744194821710984421597581311574276397667552686686113696383895506055695880554752809478036288156675485251672940347229069142615344546544678894520221669309217014363304930438561895260906091701896107016009330424915360986504129213081732156866459204723187801725747599310320934339090222993038875285049441069027363913301669098964144546439324670075468545583772777231184572050484992197669932768751303190286022244657293401241705208264552492892144383828659717658921753369658144949195752954326962677720445081591119537978345114838954606315198171242521060516514696570318283911759899431346327979088682511097765873541659677616527123559215720004710402398770011103890319875681184060040708315952278634933678076018361772958495002912111781390401389264127507613788926860104300303170524902182836790383969424420473119287644025895992177904314384939622739391445417082995635832896052561483712852062771660645293004535521013770160571707979977070756308395035383022794834264348197576070318437734736779123891374166608970174411509171093741121449237172112106765272971929985333199839015337385197227432699662412184173249122614574270872612060834745636797043418774189420220331491219117839095290494296549341618321783990934783564662294844096127108191258241148877145066360572442990405357973697692983696245300910815255678365798303162249817587188737951252474485870866320683263289679512395829756823638267095541703148210834514285709768488463983562148966422575968325828877820300116586542906904426940916713581473116666852510217274866877336910581761285353038346853140143233376675981203845621447181197571019679908376180406712844834982979378214401433825965685325938231254919681550295361115202441177839903658958175919346967735881671108548114091028044297891255586685786404928257791474513735803496511324366848249977097639197156024081863401004130130903368118845868667252539901060207841175486202570264774716849291074620490207581752416850810262431700533433371569317753120430933850447854055510572396823489723370698915497698097753823228737314946111602225130687811694808612427746169422831452417054976493549159107165799712910810974971461224592690610052852488653259721467149590151962924116302086069441333722920616007676468900478546212582404848401926981390047017768506948354194390395579759711070146469469810731351764413578451503800579806107673452948137150647917387030538356392612646159323570236043171720255433428153414509066750707110880431406450762770649851015963682807373459978124322338478644186200453212581896296515686882240386585180204979209971273508873717854374571819525430171150833695447170868504289491768705609907650141361186319667034561023602804757989611366013368598377183765957915418695838466724994731443237883398860731131846907830102277620242047201167938570779501182959601723761511593312407513658819017466285250747803944766599564283955118113559573302746272303651039120048681838224315011108829163709183977474101852252503416160920871603735205807702939716666416145758140697039722728382732000273148306712156806683160822996900049604485874339805816270855067290266083477441523640017667464368854525179528113604049944427056540021532407022222572275386951822113228834931423253223746730409634036366636986002351127881425010790936360273398439350690428924538055516673740324037050632098767398792297779338357435536133051503519667621153864415161799336045792882904340660347803584578312918971543156668188880496461195754031384449943561659524929136540992743019985595126769276140092470798199592557780942844659718367241732863473787336930537711046979995271081560286469677466364202472338588318462134172583396189494869035042261499519382136727754172301558420535694087187774560016173082960924616611767745195277442340111569608361571440878876469730884746767180321671377493297369507430260651900232671120227076592307148390492206960979626031078405872056589900491322871423079235074723206863499131182981038684962304136185054356290741037805521353570693089158018753925766096735548040764802683268173967768684515902167052665285994590699421486698686499317058089627244966895308989728650226036363908601153752661844160525965868635341697340851739454487266418527878377433279610876322250048047000359580396442517010883733283193979337006828677833787739724673261315822536110594273251223631381246545927455847756570897705964392238904087203856593000994580013129962763423293195008135691870003946181140082838765733894979515638484894358577707570585098048991973072669417011940423838487020056620931035454237847867776826913612415452928904297952925679540563136502095279576047180889725714088814832156498547175172345400018072508173419590457499415178200702060956946560718181829887388858167833915758361062254652774920041030777382094288411625250686351109977266636230540363699256177674797956919595481085864616090089891522230364300537008964400807103171275344795379961725879376564875703422557475095911796073105629621812455441499273598181942905354898090882592278832790890382843014364384706825636165533353364330905987110832255363560184346391928420518177816044461853259202652974334310606960893114707591762798273973283460456080733921824863321731022512393367803550084571910635822820715207536057790300805493698696999528629999485878352966397953925720428021295231021861678168494988910770324461901209955942770838310773893992710367601878031121063530070959797202023360012022672749059505289696765596294788291800691742367342135448396936459953942106135760266256444165678479054678544563406446963371104570889682966322585140665036337864728941516538333789189015794926962107505095823418501777239220664937624192360113084594016198733680276958417192768747087854027614458645025940011167615866599217134171909661371761570641484474579569785109131277243591599389408053175099673184782485900605450014226452980652288170248794996124845676562228594191055804258348370508679456434027295243620411070239655148857946289638696159323445196144018475686379574614404439597586160520349773262612756752636272870875061182280086433722001349492638139591044207535517326285764553706188925389176491888407934931851445067873713114604575878187090026517066376870885196176817523838372979583576070545270409882912529523326858747117402797521654203663631546719677045517790604290727801393983373795700770601480850129838335314071238771221180744782234441646025332571722145510636936552552608457281490996106233371498445463360385670692136457477735852943730193761173714693025116484255276155229595622843633645630866853633610810677266747910264509932774173860191062407050221225857239221170950889657708316408396950824505152059115503217414903218254175340802857959470329133333757367727579862777009182584264732468336116271404524095910972853105661632747879831701797680391542451291523155079436488809216404108533354731857689006097303631345098263576366866639498299153159914926659901910745137780239971555930533593963141424301001062907924803287699241229278945481321613760479042348941731978373525215662044038551118387285463428525181538853214896466174547285069562731734301274728043152816462041276454918603153004007564258493903806598776744374421963013438549262576412448548345894383760142416407398339828173278589142478740504522207581223041130309817810807922552098718872022263815036027380946697125777390816940597160587528233024682403582547579961612346178890852826975159515252024916728632909890820113494770664246518973276812441023806564447563589148211847933580085824122791473553242399478545540561422754251099068137836258635479356707205116998098625477055235859429906162608140755747736300832694191978850191027290321264352596404093015970814280077686257393752377924283811013483463219441069717914778757489362028937554775698223872374553696017818806612036253346376000820380743787191234555418340133477874690360723817482196205373200389533809605972435727896648631144142742960207834836569274427918184334163388328848226505884107990121798313728745310176273166501179747250759491592746691944139666018773131275106599184527364443587755934072440722602458363353064457684526764727194967397879205151497066280273261923117513107455063845511978258223628127401149716357604459718379313516177602137385783042403067759382088506175133003339670781481997453627176663292598642951186051935549485555958506096402596967903347908629979474981425744582148135154609987541013095339829380246798870976873088193639932176362148838140482958967388098968434566180526904500298032543737597639034783085538785755763256763702800920534367746136553761056383263357386676292378865563382815547557973626205043798573666341586777189605454531887199827365974000501688500672702545248312089279012754787192803193334392540458808452100450247844851741479391450613739714554709379789015492050005106713420828561698956046238268004353180907360339421669691314750347467900047370972643895044314072918980813672960115060155043476779109796352427842290361289239005780118207135223373145565398081480409856035010211449397101117204749051666034268689984199234554894845186778591702290710617012084885730286669425940466875435272908662098252755267220610008827775101211370310858266187480445325275721268136752098036778918031879675511384135374145644738292917065337777614298664347814637959450574321667067474856562209532335462608766659135972693529257225988256601797513884169150337672434577215295230221272763770080363642271561819439222208207319784081162536091982594084836966613714154366874342313856304346668962381299953816873141792591525435537724532352715562189874278316387162490234012605710411193494087891404007931893374145703032963516663419515713275248030114639442377095420915617657092696454019919263577558939438177767162592757235666403663047440123945968809991067077414164617139214296823830721569071732782729278610804067648557472079868067231752089888054864155838995594812624577906239232574202739136844725904378881384832587089387237787719458577220303968445091866762833557664426818111164977764377345475125004789076135189448905750402211880812797064276946431822367418387719211012431696302512458665017103319190022803723452827938926476729353461138004082625314791768357600040333748128500926948427889706066270210217637671112060746266894968556557766519901816057849998817378270843659755048452109436138038630671579361367415759208556622273008344403691071655881644733416760081024665053406456970535191859339572378765152856227971332043021345700312744023263626184490871232414920860470123919489501977863715563288906016846269413013061900809602426461400254802754684962619795193558163622084272461113145352315160953997221138959526510268773275327233161159761239538079264352892020122293147239646327788922126639375865186813861317234906851895223756933705806918040820414443264490527988567426285798042675695225573413089348173256446112787736188460202546064100376727657916488165172251200443741104829815582688268941715055328394859884794063108621636838435754887366062107338704305053672637101835841868528314989314690247986918921356293908669269407292952414299961967795546187865712423865377966382504788829773408045232674700435190311189384653344975280126394116596991332651884613466985978859423189655628360226056559176675684109465333151514955402941763686434997886392938192283536705984307769427657564723401565355055919931327584419046499762423575863363150783517031634162391197142585208796244855984248287798348183667232302823668914468176709040956733117419802377204667821715580469273329652182935219732219378618209113777894606732811852715187216855666764903427726593755622273999878348806644185681324564560727118997107305688034853642139880098257680095146139644194037604264978424039290723372140198153853979632359245698556806105232171195169707144842555739161264854408679936099339598758322630784142225794935892482974612977046662313280541981127921805414768523752465052125518294299948281522692490675873834461737049775630932957615558867773110410152273505917924433930692343518051743355518603831428030563402262251694778808378767921511123548393178359492437515247029195294952539413790550649070813873060037054714129356652709834830850245216824988777956801252259871774543746084478982594122023081379610874255962914237629447477147130383530195680333812704885528342778675748290054002423695491780704396653118584601486878394804597437027823344348239154059033733280832120028898215374034279285702911487375958258674872537099181627302529278974255458769950192998245823894810321017359190586251720981438707505310618768645926912171856346321828788986241713354134777513518111651310517363016282868952076611706000898383492579589759511418656809744211482033113324600985706119341876376715454471827934225598486517363018322687533148168069828434982588937771178472719745549228858106681086031238267732510194674965819525352353263044049038162806202627074889043717998879139422204943898161778575449436343644260004249190617268347569043521945806952351268250458208761530931061091894722032157437641644719865022827860542595274498728533614640298324252830891094142596265958568429020081961073337974657152529462946184987154510972001859665390171041620321416418721521765744106190115347260256559848490199154124608875692028137450893993171031771215167097320426499419562741667693351241016428147047832060125294891644665098151174091747594298041442745948446259817203746579184539901625801239124212445855227599908473241044657110254770403730003697833403397548072728747720364233193210102605545037766692548740548533183616688288060996116047878624144278916780149274502621371397732980384609642604197094606830372591281418471930565392518760363029046201058295341378146015399234916512574996357405822327776158950036219885567376857783960330539616736687169346400949852772319379455764085351029202749545719449685881000251957486563001300181882419645723042291423477094354130634307240869984208078500330636619707206829292244645475999782572338227443726997174371410653742720475175627329808590123567161689113232784952268512572717126562406827772800764854164632696424356971761627758880515825913874482531594345780445073534425407480234343948893089206572310982839661330767708246636638864479600080319795772181653477470063619131225432893776584035096174113424106855822538517403221229670196954561778475743966956574977855105969940774065133135245386915403360036514410677352159913821690252160207812813177949955707123623897619996963511402070539899125567605561073613807172070564908658267384496728507613090466714090092360990397080351310651398164034505135004802574533611624693656039172206184951422191557844921322861051668537029337676295333514684023282411480549001417020772435084060030410108529478399963592855346678859121007597412959572271007408294007049040728417324277916018034308402589652268383770585623982627478867072789745251499638676326159412599125349894850704223249420593454996521763063444939595836115144016872726038334864570292370729654868463963659182488102371251448432281085499458582739299877599631639192159247809633007202750829281455398962039585820763904652638728782217103729472900416916578238115163508446388324486689390460754142627835286760961848877934850983759630043190945583279260017090422839833987349301708714580604367191425624947833042809027213286073775131071688561725213418176399475022844424034902472596320887939329042310989760282140037126409795425031406597391260462853082599912014429835151822196767436025413270843543202529765938057781769558709852341394247446176120059670754752320903780110021278350348131330907700951329825542136212957517769527206939665678205413846896801020446746985624449165149514791307223276065225997329491859179093832201868252270833768908609912186221512525784154499486892672052588096855914463478691244195167911523237872007680195924920899902259098970629456111379970814224384960020415705944193797749682316636328686231255244697916274117282786793889122414379611248742597537509215273988900900156470737646932240399259201828714938138854560813082293459484019351154131535893558004376806945325090388097947451604491162639823380421763203990931367137615776284377983265086267600577167560480857572047892334569839057390115519395481392098997952210801184787575239561562087284106406280212712974356875935340127529361460958418413131043526209193090097732653828970747548192818494931593544411802070800909051735436075729029862321427067554926319368043933158593056769706050049673178643234043158465146966786920438348103710403173385701037503441642049081582423971911241444664609737625344384938236691458961733111152553420269229004936946429660658184677371002890019076688949102939148089756476216543077961804994234305751677707401003681439141418994046833914074189456289809331756333283039993913671782709441709291920381533835945999765037577400094428548675623422102310145988037285872731309290367733188249890500166551999645693306276913556277802472665066334867937965426412592018003701130654792374709518567699793275839741603676654072297663085154135243534515459179570719686050701651153312256353218546524066002941807348435434506664081358943263120836285584490231921713917658286782351025762873173053985268637664287747786065379927339689085151623280262555088698533414259073147730567824961818161259653280635598264060136765215265945751835988599328417188842655811831818689596472519177422280440834576583610069062292623825456224889249946597351108308591260648955107247057036472944664121950217571199991438848932829454827906093480789187826060365976063034521077174233735586895031944905402174456118779184475323206827958020442306835665454014665784715565961837361169245780765089047586369385827850062665868757255935336100144799532284004917582552850050586264580441493731580476252164477822786457541542777461917296042190873722450215983611442955137876024773664514522266393155233383632218299121438172866768756579532682913273342088716693277640320831166956048448636621316149136320984214748457426012182536681095531283075125981695853681921075353888924117213864731631912727456522319722225807461951548599310051817890829435014624253678059480995346537441626673623073112102243516011500359492974992777959523079141214216867919238273825527536426403438853960418502775946903022713165848056435972723758527832537512979845866772725598212321904763030355103640659815022236577136657644871288525187766625303572635188643568940553928613942198223625948406890461245738235306226838010101443398583177116092047826099958774547539084484373835268487675785588079128329943437218855017662888244278513746109112193966017722947715221197942689234601772045508897015887629480238660824775805161980690754308324645421623833300459187930753931665783520595825032434309321761693126941043485445357130303467390766798973319741860677085754450533923719596216915894904067814232019092169047517162550520183763825549065217625811612128595276791163251636315666717424914245231757487614073374637310147021720464778277745800924355263258491254170027263859180861730180611773700253272253059276064150012092715344974808196077224618118907108818773696593259182099774865544372947132201147682673599078282420116128946701386805764038995489936031207175861953772451167196543277844726525583156896597076165966059673381093241796378611210781518453636714066596578977994703073292232182038950094621163409084604351435641412705239855648660367386326383978176216728423038100756517448782776857522762582497441298038532824384336306547475515970218672629947794483356562286027417545890355955739167723899754635683069739358434326785601986050689038782426584900525623452182755810757450998759653415577496913389241764119955820120651861648410772891424008843440861282161756287090166249141700561642419402156260266968404882455899525898885724828721621730050790139600747719947275434983274200752838016748893371325211366931157331830882553907599505723652458067024980797690735382062111205196039189302434515107966676044381735561680032681314867872362157923570819839980407579111737724442706136985282444612927375965090855912966792537960890086023749326105640614192303316009866078051313627736876285652363039657884391549622576223122306602843339117650667176832849832749852325759206975056744596904365209421292071450752438902962309683918540813901806854919724651001606559162014269875751083335564089131230452112051450382354108840912823501394037952641025077382278602075707706480526737695836145331068783954447399682006157788271797824927383750220857962631528207417511207187250147646074969728398395777689175941253960917864718041064683792271157810424912961279018347503219579249103756275021723362539539813460885477558875280655054846620456986285528948534816891788151810879072276531344516036240070885662682212084193209594827872090180609574219822414576242405118600870285126237115729280257411613722554036963970087744851944817788398461029588844074787287142778972579468560476942885813908540691779063307603930571011308649214506683801304173974880797739944513781420258821683600170919715953261010248112940454302313535160040640742050820696219487392439023603764404124394717939103693266719695609850150389810216896642907116120769414389598716342354299305871458997295399278871490165547815205657594411968804245994451905556855411042570839485606013902275094188685214483381633157864047483820311921239086839656360640751267760042660128665772135159729746043102599765890572955785406624047627668302453870167838280326888047632998964071374438425651423231073432603397662833385738947831019522873250651260652170744181791196727137545132316729798649240892183310712925054781234515037282850826996530523739526844557420023618355026731248277906286426022828757521489812084568669239543353052907316372097690009406826620892171181315034315053130936771996773433578874027620967705552973890088166864835395164315543535299536252717453250614472689233719518915409519972557630782863452704184810466403572544253515827995635639380510546888238393847912517766448887041778726739443696650191055483554896993116041642899049749537340579305725842241810867806381398961720149002160353073788565992746971780785793248083727525099264890707610367134736005757390946903132264348223304335073256148015725952410168243753675061650991235021304796102493510386700823265188997866887104200188252540994529850768910275224142564343951821577630859563715711643063651485048640563425482811472938280039630520361184722019815649756048536428546950795614806485032841638978255660084468106602917386040938905344108695575724310403130180176713572405270863831308097127384193381089465371230300324840241478547233071611257354503076759815518788244323379303856613884675157380127222846938472464919934589738440306139637416267480808309730926201015734357484824156926285053563156418149536920741860277201620061236072598666248672088067194944871362995391951732815900893925418463198272954925637291369692835601555894492923717377978573442059551432550073459668502479976623030044469640574855389041170975389358406888849123686041747154334642642200397071553062874842149935660717178857482934277788221563598551424284427593945571981858644829851590738194416429649378812308357047485322775218169112360063308115137571836373098024021820246693918454913491981320591783896426610272815655558349744009870121776472176294415615950265816623422562593685260145358391594235342595808325675197379000852184360568982168994227343955933879432364969678802378585503592956192322662362989371307855825252775582643916624243921246320863272152653090234007032636475508424398079898449564112369386993745245300173194343583832032450798694779138390192879376316455231173351852335195783741523212288637250567365415975003533002599879974282240166489781557791827672735471912957679123251050785344323429026071015907095853351099861940631821386756740141734779237480592648019785551044043350382650320732487111308056208567532920925187450519082205543190225905695466394018003756546765469332010680229009204072761976877485848369559816040679326873968361200636896786693990906503585599883722395679569093693308501358440124786508155571662235884697707249073645604568196241368093581665407928037786454153506421202966696029388968255945270171630441237096042072882826506452424957469729607785892288635965060439349008632772055910699626942373447371450492223151810578937181066579947215341190949817167288310386272040816846123904654563262509319298445765706722744575790755308029002021639010740554498358590965906180968904738469888350410706539201811101508022982780572590112527153497003572574194463227449837249910350250959968147296817730252744037475440556021031221590156997653001001024288780209697975902481592134766085745370680659677596679401783025044267098361498742791043620482045236140736428506976603232640929880935966717556235770603100935486704544446947218285565250604416506871132182387549096278437844463732889256515843337554813944346864821690658400216966771635415960735876685080166317938143222702949231352624104600708042453624535332561377030332219805526807050905978732933198967834443467439074185165724301969311985366453675229597468937597823294872821353148180500254780248743047200348269297279531149765893909174148876592702088231006846336496491310702983970265101444843265262771171001070529000737903319588193742196811206553149462864554999186892607916114692360676487260403113789331117434057052365716598621047340840498477171299089092327418059638518533959402952550480814082941440248102675330195342259549147247265933487701255841401484248559722157514962498564241351279691653114454386872606756226717530158016773261218561194014033829654809052171961918301166111185453024535847239279793343258166660482512100962269778488592839788229318522655058219516330799760509958682742018493341667444346055455966967987677078164274284107247317058004896140937918579406565041896733340161909771863813392443451154140157011423826739036182610412180667398960156295680565111663846845083647708713910500124639151037622276770292231149924973718652896713455733937781066208854899710780340537099664910301765019374545833814854701183488821196933664443237568131739164456600826204559525791965070073777967073970196661364177230446039276237383540780840491882865922439527162072338198957359021000217330505758098417428975473214004408954657086031806669864566710484228243876054940611263960584900621741822476348319636161406838989546214592135895750055748181793262122780048219984892150949879748551834733423697955057303028236146575504029864925203031612353582888728198389257022362182502388141358750368978264639352826531227078156746524631378614723818633714410522453212617224766690857917094017422014254349357260046506598094056922630964900576466631472950020256698993766297409003863955617859416000536980972061311648241582016478289994299927967401592934095680040359224705857949440172640396661571064844056536428435098246869862424395599081223655785910077851786420553553721299287168270616319668057824872352828791055935310421020928530711500505490979158679579402401831854258334077370463371397488802956073399648579842128901933067199108015310776854696347185922563117039760821155516951278751913507480981890805125511409586425903662188344615813342016923548969570441837753124013753991444462608372127574120549465980862298516806705635269940715267296010712766133240371314454258341399963950681773238218499828733303115803165427453100879745376992266126126050890721127351490538826647509034657427458687243496515361631632621267464976900833907996193997353150089363303501894536615665888235245800286255692134630978880711912752260934510820106681789022095297914188265133367174852679311423525271827020871590670440885553411802251635817389481298956270867441177723534352407667367829018864077265243314845806404982353471606226007184622066154115171434994667478809167620134744118913857661890764206372479231127614886354014677710179294240198425738325181799026703007171025147453342188853937337196807796144410806165195165469627773611880717257049052923078287449795653312442318498236954057997061180505257833905779931136940973039380254412087166558465574518874679854806846716984915953589049307174474855205664540640822673293639782423371562321033912623153551030833271478328773768217712048300819814639324074991351838456824373162339359916298097079713930860712119126949418489411235443219498963033215682579600130772153566363954608266218600012919791410971824076621288194752178594659509785092559206553925720203507358830737013980214085701773802566867289651448594491477607034916609228743713162418565687458303723175908064543256544023727699315748453601851038914962676296576111812885702528134412282875714848216782710688780137199069068700289257120104405277153612217534236155260318312541092379199141825863538731804972356581356791774989111501187741512472231406286554781984875048000042090374333083372650342087641794034047795467941265929147505457271222960962817903995896165779625000543827341496418650496111254381172913313476436331281174383538836571454450338358512894531822476540397118368136519270640514670619917105571937895374515283016076299563194172977517244001000719268330850167996692494333113842192974528386922147370999749408373325488440492561340264113474348963954890901325806738048234108649115314484352131188446830201255557536452218433983350011907212243187315368802610938873712251980964330300646140195906497064928155417206561868149344936711355212643522164033929588391671381237347183846029168839344190216729808541639387922783888467330712309562866981345079217559250619167746984494326975554590144426602707578896845437571733175279404340362560880300609381816364653476703012427061324672197065138093683300752324823829584514088775102728264144786445225832760397770650410757481430776169812769250129573251454716696943234926231622681894770141670397232265631261369618627180332364747416090457706938067407291388828820153743405263000873015951775023735886070391757325728875446559721246095816566395454972597859297078308901658725897362021179097417194473021270448183423372987629488772067994943031800704498316631150358755042200206625664125840752114844292655837066155063143003972936360361947877217884519303826171455865320081050355053567920252963683706629276451407477625318638983866056383440257026212387763696129491118930310847392740986850457742409264461193069307811867308838096753824706778250885590750324453584264451934647811903307518656422303628897848237124419484207540979784615463080395576507655237863868587529673135672277768987665040987215836797988509706545180118844264581338208317187998375154501473578515861746267731456937813407589304693310725609150009555557664576154524093549506680306423410837707231253917642209746636849175876308430281350078194196395820849898765298457439715688591053076789584669133475223895282274950597695824351950336797762646193425460520194020386876421865601572320666527884383997945587591338651954918079285858927331244483522915235241452266687804515522152247366035288311730682826658160338641505016313396041347437217180190907328471803307056327046389276627500781787334555240421974898994752999953409931639708321540913279419738576711813676672469857628718649964226980462892581134833550216897960792191997650510045490022248535413195098705635762954839912984723964209002944974993453874644731781356078772298188565537097741386116448184115864641716665222741569338232606754778866327719653631856845985898787075256707001386682022044769620181342036526540222905494889187916871118693737955479303514729740651939944877910747929230079732007237692694557968159636705147353950407449810818495131561052171482882028070266615914858672189839266631807631179608348874755048881189511810371076881546707257861075333498628138052143860972439340448457530382207240142159257251029512641855532021348365229798653419874785092809342328479857828561925028602463302886425145322550185167285945189247240073230768254943647499835275875372827236301564290539276487375121783307514103965975175454501831811527733532848380348390100232778798175257152888291189331433596051335780365768115308751506510322345384134486434641355976236636478583037336357936418305972372918372565783032813766779829230313106222970581519913493470891727766966948239597956281022085707407350092014173589237197828354610166635330524662584720844435052084487646427785417346201206411942540559475616900858100792596829862658890155525900312581577732645749405938202527959804656492365463647994147262981953541743389315683953792925844431723845038478359379384327844224834910040151018377837052060740528699497091873275284836673002585521070009189098722892264154781577952009046265605491246611799484765749705788507501062713012708056923368462006708656829979268197980727691095161252571287642491013244220117882107465712324802366759526134767998080339955911715621200568472807605921801275079825233483919584806177743841282279632520474282348425622787962154205414298993932006049426965411665281394743973889893527517491600545876854320830249501967751683488315226164624787258403871080682325760945703005617915679754849601929765550068811472085959012545671019737630433595083380838342103668894501805215464889214558254770163020595746108021434157278316816314898670911906868587844404163188632354204287146470759505340774070832374083337339411477427777971636945846280010684150142821845394454240390091552329733616938398278191622101377382587902119953384069534562200040538840689910363421511961485770327225137283539488374582327200317539276029448381548768380506409954290032577396674995942558452710595507314468818155009976850786920466743182779925073331607948582532008349835386288364150486231672441542647779127064033215976415657516989313941934230062048557777066050790083492975985236199272688954227211154163716068249610025103362009643222036916240730427325234065245618955837716403711515578572320431911228532855493490389106723954167704049040826444727780584677162355218949051467187139907976744717529351844844544600141131469341829886316704392511900336551441612366805064000498023612926783043870006465399620153527334242112299696278919693450875459173075208172326772066590107321408182580907706128355449375891631796441237669056656926216824562917407460117541673044988750627795833566780394562626975706215712711849086638652912317489460608011166914136784076572601762326713628250039443748345214462668757614069634846120810610041164593411256432766298230041551428513243791395932890973579141508404135922365874683372619709162017335618575111487226882177971134696542602268440907746462153641261176577940003529681470949069707641716794245514262440995672181273617226801077263081554691658193231670328534290861057916585975088873111945172336462840520046781534696765819590156386220106648721186804387857229743686610699036865000565246781877500687880192055305589650241170510514910308034501628582871394518392752369620364708314631965553519591422363419094664011496288216383525240227790339004983676767633018666648490426182202087156132215901419592993983461697136867861586495635151786881481153442912067911277112174669192585489806589453036632023178785442347566818693137657667389843852945196658345480605636620155387264382353253717778692383682763852643682755487386631309762137918996244219911426117461108571542144261450156290407052399140475312402773568072764398350705073903989781583134529054033222157451552119694702275308426356319439983482831565433518798627942693430279608677138896888875591219271032529774218236964338303755787002451709335945520143901632960657953871952898804345106729739902442607555084351985818099542444596358932988453928921357980671915803294283299380111183305017439091650671456041093388522126392967399512688497089305287223653441591086800224529337881835823466878562247611749241440933104739517268210235136155412309366309963935841062622627624112534539809980959413631363840538186089011173186196567516214099506756328245461938417098551606576468839342924860950206461680521344779287340170672298277908565408093165936273994750964317412958564791791049256282830633484636507274075592041621681914642972394372908807275821644003241295491394685803614773543288871484631547147503960017181807648644578797749985376548617398700428465593008722394238682532248566833821012521621755791014373518006329288554055759670584397844457920660413642686961385385331010087844490008743922749342697110799003297050211493127660371292982679332308338277367198290422316186835268382278616824626595735991286370961755173715099881710367988553624112010058712923398299154954612203698988982449390791218388639639113578175979873531795512558215401872669826628955636388807629842904043064345900421507996051480349735420108118592018241372289445955364719107551131182353406804244766426607660182161845729440225977768774207184881953323351121365295572030408131588769510232032113637021607249888541636228810905579587795543343933451375977691908846150074926063138231028222810826361889262535475738029830860695115862546260725151380956318495352433276466189960317086400616102304983135804138816988842164709926930223397926214392200624840462184193390419277668997821800959273807293947986902454287945272673608647980713085604501754872679530393824443922012890408867290704109285095653573896903557166056042684105739581235897888730193230421087182034149534129475180396771099837902308211091432677080838028081532334819771238157714342418391320312137394604241473214102269720459924664583084314674859744339534591200899984495835724574146608503652321574264464268391900835265671907405283548891159571868905802622773199171359976881587424088579130260635428168944587810014072064047101590420687328376495807679409335881081917874227813752771711642088652667635690616526094162120615747040957443111980901238288246231848659430622603817443566511353715463619769865183315341222724866943842150316966209349948364141387859892621878793660643133975393597060802590554952354214026482614476827888992891539498452461517607592322151685694768653649586188722949798989811212325803217957580849339562594997832336655802311967235229261496531346870199500032743124428899592086808024092307214617644503803639831567323025071827637875107162260368958395448757490081945365646041497808607885655704022030858174311166664742667828959814145094503477652397183355784054803314555970966290532481343482352361334670317709023542103308250088496050441357705013169392310703348035614236044920372465630574788415385405957680850100788127808091394466460825215692989558340530852773661781585778426925972386012534742403413609022638542819461406194789842361644887398161660002347710737949859808160771532380617639881640815796508165240830242689594543621762837763343517081501319876978007694839924034441823537489085361301483304226626622104408654807588577269663292504838963828674644505620651729198752997735300997387094109025728626772350858705752443942564226816616054967200801321849293606771975673216162610546336847338070290412481828568143243888934544241073389974331429144502448569544652879889198775830863731189010838047640710107294253894971455066478009749724007075063711263507009343619543394276610893112950790345220182155164186999898769603498580594256511599894011994538104908461129436504086151104612481862560151366887862782200892346356292881123304057123201947425084646001180206590951243569352385430680237548816040673596218884813032336355745883545282550910716784043238140210068936779289178534163054012000580120134665066558048901265597315122963309363191562031488436376867036463496473160665642775076640501023922689764630114965789537480653599468215886140888756146330735348103857388854036406924418203375279308524895429766628758084673301806491100014393728054078101489624195008735646102573153437858601544709308158199223357444003543996292905302282772212954554309007921811589920752362693264486629663555739996427693518581153561057621449520760283245545772487900045104239229641513096796484813543617660665579538889931854382065415182609717792740229266847981402329815446988971246496296015537056087903808620374954539837657503961171608382215520630857708033159200116446705182557596154811496282825445588941488599431259970666950994684735832240361137677070547038021148758532299615067244247408893890399349953579907624208930751162640696018342682919116971626744763357920016379994348189962736746014106389743398146517710008685249538784170970784371564014301096752807906707161601063015239771883138101431227109613565068544629431589620551661490027590087373834378624019645002966077076281191860544353498002243300616855598494111409385287246341712881572726361088420369778864064312335575047522415277909825939818678569700269455766821000808753303669041368662583516997980815099412298000914533099818757843213239019520679624754471067085884087540560310450465951613588607232246087745679651726722075793149775162688258778774989725182087293638934042048955594862520145022515258459151948078335835798188235449089843878588499191038954669670040565994054193493553276203174410421083839736978966567217781185741505565192419651387476596050161899516004832243200572900954722424750419352851428917827077072015715970760135134715306839997630774259116301433908344218239267320180114262791335195683401867741724466717264201106731563263525932921736308994712946268473121737729869451767226676426278148469028657712363679781191180981123103730470359811318589030721481227927450452045851664727797961438758487455741352353818266075903854480610080560490620129223620266335375832777792029401625086316824028617494734254586933422842083777121499204804252281284564937982945170030219634536227372469927875316652973040382804433119708620945947229457579689304287095069969577424641056713284442798482109424797161142662518945103201408432144261831025646175881360173016126920247944304004100448489682374680804040065554663802084573834222788317138077745085155015739251181018650282453935945811388748232318228447967349118196193688383413873207382245137739434299996812629828277674162756473391879364701506922451354350674885518198502469435001814102794267280675030900686855316583935922036276849850209897357916822346483357097242245663655650750916806721024292217196459864152607616529244735017046202699012078461688437214319794056285453480908993844661063676677947367634313036001129709012128919943328478688541306794735963197941650306689640044419355171094444233497078031537965316605241104423141746548542332888362283911068613403632234395885495780192064866643001703193201372105731508093048862381886460359891384563606996328322036481171722555564766929980157313581057315928835388885103552770193201507423396250678654738462609470652774083654942092744555989511260198349205053986324484528700093395657609998490182514513308496947022888949281302866402316968680735053514854551363137717347154054769347582200037009455905884155680657149501086060467493809599530041074107523247199563279359396819139134491746783871871882535127640215923308329604828742021315632506803545809961637687741382411714360352023719115060684734399211319184550961836601133281230652249056526848439108447524971408800388885576854046374337181684891696295323470400795638584587944497336301467323199015202987448920527927905699460758570380811131043624448540845941417546512771235807522608261791634918252981112371206306728620157236317018510136599179445057590138299488905874601232288120143217522552260658572009625532735515945747305251867104381778659193008766580627039295307312714710055774261249034695337777481794638832658421717684858167077995276974782409941850726230072913688834878215308358273387317987841018086824242293207015043223644817547530700999147594788430205822856957373016886229246393581588335385108249429741794301574264954062107749744623185657347513180017056246187939315571963214279279393164575123945018950087295287630025751427816839073075071404526815371644612644319642689159747041440026061701369959804840479539335248650717867491796451330937784621505547495691581249567966324495093438251122533943526993203681140583969023154214185905461569717653444917570289659963136303719503350787100321637010707122213982330133366150862777888837606281834965873589011832617091845542042802969780412030980557485526694265277817952357996238446290299419216232785523928798910077895493103577725996174327921427157192003645671354282517921432459130056888388237498386322463509466234014888420950452263148713796415581738284151291752822919421389858391490873332091706527223910660108601405347578434937609790239244578001221407224922255899424377166266896670933853655536446815949587418924332534813709328778887930271662478245381343096407155771399068553527334977757044297140582750704023366968867108540662895713569770679551842341273714218059840069075587478652501287128779542896074014918942289584725992192333313172691448260414352957054268730366439110312258498155139563034991581627731586503648261986235240036475246440093818986642887511758720693428645472746704134142820057217370352602147035959742777955281308271807233719629866967126668154046826708419915421266729899588997900696365435930371120869483118106048794391306013365165460625251524987643179476484219880621585485327569610618172245677349355946318686043997588450149370327625682304127915108988551909726641166894128464508123383268574610004287127146683884620795018793299675955704381328213696796201465993460990354201000857654903574412527521439724852847801212430008641316656963501023804014230078034220961636468965047230185091146012444684036176026975318279618909838932404343283441662339091167171709027117426328330429757073648682537645363010185253663036782721525702300858069539941580680904933724399874004144488026278251668804036220126488958303423362892205633316172053370580437611193685686227648336403490663243089316416409417075402508780627122487633628441198511433267708175772804702423409758331489171675951585888073602910284129758374462567845256949854453114450780861916195728894728175984859916482534811115678510568320563838723657340838965918632996310912619754966592488123079938437987568685755788349965437350255988746351249476685026470394437701992053706066907883715113683486751286983843987689437604619298910905693062202969490782085034980941526140434944144080498660455892976066084014076479624642482430465703277290517400636260200247564634082611512984285352431017305320913037614944910194150915617277979071604976894417345844015067726981957228112106001511168062567988901326817210298455830492608695437915557316531940667076938303661787430638794245386672769045602599397158404595398563541518558796530621829816516029561484928364131757149684770753295807337402339040317818522789592754296922925400917177324458861495580793065252279372616637040873702830437273135045159069647978438495781724885609844857964158027571908321006628541324332297540902411527839954470053872143505106355460648094928504148463021066532610070492317386639276669624870098110121070637857225357702651888719042735344160972043547273162922053532326002084922448882148979333572504596609922435603391777799198834301372395798188301362693771763750664418123391907412361188076322201905364174799048932993113041511114545536567938688358244606598930636871173738567330828647029188141604795707326251519746974149765340747060519456894614974421557489265907274657535739331242287010327300175540476413560730535384036846437814264681383795634022419308369160720934653935291861163239149354483936627941736372169216573163980347433039801289254355845989111038932454634522046504212068624730542643258201285156779103450358814116474686771327664247832245943005793808163641528416910133246079663094699613858119475179966558852396739453883598346087224153288999399828554706055540427793670571290225593321845073617416498683477441737749435319485906041374048644575381346985364482127928377886486787403003815009113777524474773581206803482023004659155210093690098283890557768581470884165609585814149211989990661061922125718555003128267879274176591285051846153716608898739367106764941227079862686796659201787545513994494888965030090726719640694171925469655753481990618735725709035131024103667981416760937342361568247221895527258584608851969465197458334064408912438975251123072496460765338540167857778325243466392035860398135425299593813457502500466368460407046545948626530050875479638928618533162937335602450245584572338077359520949043295218011739974451481200254604845650172771913634829367931301451133258021803439115013082794165325495463457034971282990400704484890922406113914687239263696561499721416001410954266539282306893503217762201548111073144414395158661641904649311124500792651322791612440607816149094112577158813670639265461877044700599510418793197603401042507965950676014540145018260325127883969674535386692066274653186132727264984872058068221305971419807503305484040984154253957059510162010450759465641745018428485030091325199945486253634341749572543319038494103257603348787989218174077385740416963508110607701306086126145163780920473439275476264425929879921217788190355408152221168617679877195696713468082714514191620595181631315357013094040310360924737766261629958514709631273377382239680859984336306872071425843755662054416261010334483578935659058463497348931563261197778952507378618725961221741086106502384707768119338363548418242314806960407441137458436864403700819897690587543853285841596858947718419198354820519617371276825055837918992207417627693526531024503074969594638962612940251624432808345195595541936262543516957221816790542670828958775172088279843039231975973784493909624604992383424421011389017099872634678316611672984475602622005178759303517028057799610694092784979877639213986280747236884598507425283447677447125693788086091506235929761291662011483183436801965754202790966719049779955111322432280363915622535053090143097083392572039626394166038905945183569417443600208669580671667591357833103282384953289976030829379558082687799624835126070518894802358895380439423804406532229646357085303867839992076649392802336833121343510327575445087592195708717330487982439658863304937943964202229509989118090425377597419949579460342663812830924903521223659470780992088388635261110413811129837116952424035060271176925448271830056595736007321816298820966528246279430991278765968495767447846466185391211430953117995135000494590664656330377952137419941293563637606089852715136801356202834300938827757411846580673947707342467272958726961963960439932539976784350620243398494274986061546723782961188969133306026465607712230032172977241643094783178068770493500429077011204871446519080379460647904204384634732569972091024832454420860902752840053365127526537114570473610374222504044890255984959776890271244015236068531179047362396090309552934079659613050507825847573949324198465134614000947791150274294078738655231930531979137413884531572865360853586015878859894989553004487133204531293104300762040243389761182626461402449843667970500679588096134828984627891491147626258620873546740788718747996982376313609036239139415208483446001206958154123133381818269783002684897270301181250974361187544285552764146411210397015962854731606690990100038055483099324965369898199672546301016960471205308084501625971917569479236117897135867692147109293314666800845078684267234236414631087809894153111781238368290311894373139151865946005081852107930884666344060145671614082945656904223476809049124613290750600507419829924165485212403316675277964647077301847095173266965053742848226424152636612419769608449817485822868657028759815653747713785949259603420157831004489953296582158756211717135616156716073259871859475876673169413288504930907152989971152672589126614180454828366404829874374107066805204039101705176223173455563614562136759033955487040674612503301592507134345194719477466824481750754073891721972220019197374514674444961509793294183594963695546265351820953119107158515430089481974541838691970652523547740078352044731589654802467383293273017425200478835867589650956116838097767231992114117627110460538167987316670156271255224608698999487111857027140564104269053210459870272712934117424853022421677094662211876937340166812826193885787543157065135834784315217319428405077918868813187214677919465831030035312191632362623003280961519420728011917659399557562367872928273110866761142133119660441415751888386524851208946414275289975020435501364482968642981731932170670945908077405305249104106989451891377532598262823917798077471942654756456400762713493432917048569221033237654705228206218759711064735778253164759260003861133224691635044123200554529885289545322817678538685774033075294427646444288307249939183280860835110051561908287561267196660471510010430267304612448493877330344350681676604343714801534367423833198277531385063968629118763990048227830172200758254179601969415373553684901402394486186535933832222797604796602694654014314430572610620947773543892832215872853889790628461564058660954581598266394376728635609644962355522378370426159484129893999819424846113392294510629840720208017853548453798933896526052572315285448781165387031465763974739281667458805431334523089592618037934844564222230692942107360125800418563195334275466520556705997350821001554148021391671576324951949279294595754047750338951322040805759651668942851262155835515697151774726856300374336825104226970422892347802957360015432549423459893063908278401902924577465950779285072481399703370919098164079021066977645577388356421252029331547447629386739281288786102333841125974200000474592155790592039276405969039474104271101990599319313309169354404325988995274210360769873494209738398924315170844953761197310756465432268796335767094563791596029464405627941620142972594552773926534897205466553229848939882472915923239010822423560801601172356185090051739656644835913983484538498674088738422714261814901319437075685750505800615641894706732837661842192486787169444584477117387538788951763873424248046825057766511690184402307957917890408786403345141521833742301622474595477490776247609248897434310769422145458718978829504538764593794484859239454530976127127658317668002553726505355791632418249522426201009104051304500773542523476403592216645483920078297740588530642438224118133043040595793561099609980600875299649946267743371411052944264907443275585973561438234227701968031239649796264453545988690589518267800867419022751969804929853653355210499220663075898611116084840755874825786756788305016586031815532846504628486231257616655042747553642050025383905260853321384446697769126915028904003602221078545743059709828735659173814238232527866353760921880591406266071886118003243040232985271844747742142132548921837512987498363808873581185112322255739406947932787524000658850547054141358736593745809499980722109687358593924777801156780713488661304359917135042988509014574095594750648214759822015547002788200625843201798033279142405036343937488782059931915873046239426948595719295403392806894812326266993604688452273738915760590715163768615073253988904015755597984914080430921669979005126090363570546008725253522622514277904609138207351822624717328155858174223923953292414381549316523189054227318711950930914690833127245023347473806184866790013847651763607362150170817342292917388931914832382283480250219934201560323245775235748852104499878803207254068988076880396005306058648195540443274031523962321633387604635517078931870271612652180015727471540731161932699766483313301180650902888176477620911224194917427770579342457962333056767055318033447676018768671059354729667204056518814790159884717177200901248928425686384093819523624424830012898339647301034551936372262068197222005571916004145376180448884198675366047745814727808048293680075854690705077850155208070528160122866074029193955674656061554861589729207883417540334244192564881572645210578995036866290389274175424768250148523203599280544366540623093726098144390101623491647931124901959826642001537564249614640597339548003612653426742810537453368556745045884436376454410295804313489932913987044816978770877117686603666202433670830766377797047554870922730851989680573867622023410922930183338749102164507266521309731623859777302165309704754171388478049214637331926545009346972118051993701762551046717172522402993439148723389487735467525140538225782072165300441724384570171229640128514234079819141531785177200295757229680855782304389807241372541982630560279875023377733610318070537829416814855631070947164204003852993046093408459049543038584131172638687857669486173461357231472056488937557657352177129438525927142838395747579967385439138207057434658655555208040806497899678879119327025263850205893447113218069088410496225866188981807033018639208934679251209297779023170265255067643939357687779052653065040812073368146553082089637575664500966774854328458145146621088087254532910484441907060050094116485900709710348401445137299859339182341652926141547561365891313852089079198528795867239445913935763024100220198465861607897207265529775353849208416698313157377818850330114694641116628424449477013793190166506905346184943701951361810112881582319323157689873786429924211589735613426411245409030110425453540585371149258934011332949143479977505333591042990594410331859754372352780053644439805514493680079616411010919755118406689124751741905858662747781477287332478345157985615597239439124240240689784636851363419243397994599412417561590815033551788214125815735193781287421339791647861055579746926593243527213937837524811830270711477235470491698692070891221805562659934682805329567856011704502508591513498662421508727834269512387304928569480507955270342074626829994855559797996696371068839614389788202392534517719552449716960399677462051470612044582478162565923191752108549761096660785774919409837653207487391862976788476516242781976099393940485544184279747745744658672817587201122376070713123441080923328280774624856490695572723510256082289930142381073525508619847990694208340098822802299849172631132637600468393678174965789809947089950591328299839777106086038825968722995675235523829898916794534502637449358402949025898408330017185297093556257057399859870554644795666867162231204518722769033673482590262468950749314450121598493998486178350356164237827492469341701260327202702554628356174797687123350717736582644800096072731514541361904298756231337218506938097585613781375242718748248823514360207994344318883041620220002460474610018977740441519894864013602677354125064000300410174491390586156875865653432329301960342795982337353370542398361161912746350119470010469467349306539026545529464279742278630211639771661966241131757325212163721802341193881529688584081936676147462576431427461094996538484629119384276464905662616506433418255818457567875398831214791358326026751652121839537386166306926150796901252954091374690211773038206348027058570255721489942315601914097104995928212658555305894846172895883654714443407704318446742313849681533462080365048414179867625448752245028154445171925039002940895827096672249882851833148234723581146545715240736630220170705569381906817546363650313302448206566360567527736684958727872786654890082946617952728851677561551006773795610189069273032718355112117881422042030963182414005763543831577263779650112002477702285750926907407537867076268058433482139985425905512372562108163231781756898375969873116284562710519116345348123717314595658964718879179934844495158382912035967485390900758087763153344059341530325928101046580574828002757239100128066234059508281118623558407203854762522370311863248352285465680800581501764764137552823722282588939064314578075503197951304084797306841015682412556475956063297477929961476527087149392362968410934256832915203737496197421398229002770393671239354145946596836808816601517747378695112896320190299126658631369270386057056910965189944786627389460692599219101719768356735954487668828251518814685985930144469503031140394314751023086586665038019850263904587779918393713614837952463649205159475282926035898659520172482206883067372912441066777466088449954580614064826604062132853642753702891509075381070295347929160081632958168600645298385994922586911084156168088574869713158981461234395967574094660559010021124682764148848487635433759966489730912808083551547537015989264002152675947793864127521321381811808115669469066305402835882231493214165556935608054935281489728976627191556695034134473608747971557772543734754005969955737797839000761484203571816953220824247144911100538292415934493985776599375547082731942022579046052786604562609353538995259630602105217680804305737225896242333931712586802801809809432394744992724865872323041613647970081064462842133456613129231070222833234706812511449219923741829105937658378440864270750138382590679039422192001595880172126934135125177382432888348468499099617995388199343740361120323621401109677586079079037649643396658930119261249950803019000042455881931874102931206867252214846585595705394046386298770086760017616531658654432305985211571011992288715546156473364383586440060458773066164825685794302684578047539200389437784292826762205793998168206428604396861144459435458308835010659920962585992751174680766817064951319973928339365683866256658745537879594784068905381719924384724148347707810704753726040281310101948041594751129831927850424199523069872270050318020546049864746662016282165052444455303482990762498273308460652995608301925454707283313484818021598821383023072268865163986242815055571779931335845884161568017736490671219218775987621648421507780509131823265983563939443275513198219444558929539120828533504649028235607460428451900628672372899140996177446502101177162259264982579227328039936485367915402356120063941321884913082463701292589507251415278721369649870420398742674510780210048038120983853205490107893931920942491608790297916571733832399205142482070279165063265823127640798631063790114880706175517775361294448065379721103049444004713533287953667468960550566953968677870362220067685462057008961741657278517384937177918476421181698061499805567095303308256941207500283959338870767273064545021671473700320201141378208033968966429918106809846635133434011252751535203951594830687270610790406498004512005069379592674117336292361871547080123907638589995259216410573015383080950164716414168122275508077223392565925421999770978419196777672530340417258003684827071037679458923241332692963577394079251047977044818441702578159613107379964757739372830478429126131398065182477731400940239405713611553943938107604316652316535038993698748028130091233949330358205680632764543108997183421824394070055974948990922522283300538496342441287970882443497623346239980862125217002049003517230802326864879748720715376006517272401095837628457725210224467187434374958404896355211427523641968686999835156818897995644421024186245819280774066844315852627589361244994823250685694535041901174940546044602310757820364926756115150787968608825314762514901347513807860426919629216022057263171155883261646860570289369772641510284698417174895192668992416449337205998300498074599435849469462726634794559210946846828037550252092179797651043347680437497306693237475991312160999732771563489688834417338959872587076992122453214800394137098283113875603101719208392820393081352008503672603508996239164244140163209935827816072114366432505028841765054562229989720765139646262195586006883715951742833999277832470353531384236852690560441825418973183474728116160654585315373761744124911075041876290473136441977938545401805233296246394304268925021626505927776627527308594360498942474880653150826097832016951025204473282738434892220069721547995933654577777791462328739407454594520029230939984821956943417440740329956652828091187278062203432348560258026388896714294676255476337440848095260032795906467735142846153974048264354170425669485334789056548435814263444836438957897456974982096094656720125121827226058189861462151455686949891555323523036603920104874159460153791364352746805615628114602525840644896334461941851303181833389122725204777686496576719205480390964209517043283032997632479618328434092236923653661090374480384716252459377545297116248648804958068092884660345968965843274432228593930977494377227204061046828568308005219833163483702803424269231249692581050274535917854897725101243385543243908079447853802580033450488075920253000555444138941980806387947273862225070818584910907818189059818740607095968696952454101134295828624437986854855674690436016885753819434038313547264406536659954044476357182106080394613174110413369059641132959151791403451110958600283977984977124920751086147975291831199971424521857216228398515150699134549163914453635831539088383929736757956927138919872144573858600497495954616921304432239510305375432802760793491890720165659020475690225770381981145641798776456769639581959624051909191319606557528219956393402310955790269379863708210796766416508930955133935969703393803380483360574315563797844166716332847567184034505823420908618134734392562196954095048831585598640410816702907605562822790623222165542063414224065544663552766358687107345174715597294171023761883449919284139585644962456297589837916816730296216337659171413492208414288282233623693915765358402566272273932828531110071001513866208162145069207102709863221626280888902903569661663717559006015743048487588268065501998567343438226656312879627701730675834099081005388481214455953528508503098537591588893028844249791400603940704394535717411762392264662015253033834059082408424750440320962522914321555999883620758375821343936233846794608042748409129219128869937650257902260031227426701840288294694440897293448804543721987446986599476879914445241840738842696443242330178474899271303019824304128532723026862943841440749567498782817250794901360283147090964605810134418974540263893471423252443197050472945506293264734688613587456836930807645617566760844655329207642554534255563783068219619546409983445474042679988282749796361623676179209989758134332180826361770889142626284948326297711316413912637712974504786493521246819361608637499686542613579143770590708245979901610658331934956508090946298502550594425589302921603466974832549681427863379611424546719003967577426201929134418223554939055046645236361622787933144632383986533129883743704048368451218323664138879636295812176460573722391936051085318540139353641384955523309476319774590923505300686343739906784912975699776640705583302056486760107464643061582854085698945240629451137762632966305045771495665025871168841021559593560216298996428250774761887995215621754114549931037817076707223038712886935831342397148649134780620197010055530622444768276013973712187316263967737412713174997289170646076897094676619180891870346490260361705216000576447179553658164494875107220029479232278898996862315059887727916333837919737245190978896008965019269277387550725391183119776281229615016797051261239582347134601989353716630700715830184308671154591435889635443562577965801463715953108538807641596917456979642023953328484863647623772788224988379800056106217827588398514028789196260823228183562539115690803978376093340562054508886330070567591755018225531864541928139222789884948814242240654772618964484303098191823442211898242084037133402166790344942399689600616002566376917084857828508330069668878180966877162869070950139995703426821121662653994449150322647664778380019796920099702884224525564266100501549344827185601649264965547478830242940962401486624073397957512793120640181430626315081710522897828329205389924974828995426835488138029278036786023803066789502391025756632738777101029218296771192981435580014974872535004424907373068310544218940520773000238938112901454440119008764424566986937684201514194404456334114685381975727069215596601129403718506923973162031198143078958703966575084910617754142713039571649783174931632497265284248529326759181033890311261287254441712696833153576411168872704898871959441526034990535093029488163786188500824846904692307405343864704489878844969387875504404816401133272093168319357826594263873688100566396592589113492844485071138376369161559953228091255521771640747518226124359910245963410425359907314556849696680254942858373415838583402015858468425829707607066676522564179314210874377544131906999951287026310686915241668559751131539518487444486841998347018689852169778209512811765590365101840522876264518630123188272016585025713698627320156322582518327206275006521429689443591385015571267769832610334936949604823079220690678815276382253544695269257257497868535070787053205055571061375595365733257733238692631336425509401603311539505085758585491250695989465831338390808010683377537495477978142264137978581405870059900957765429582812810917745288676871600701784017025280977245522105132004571281649820399581722885013152670856393198121504043940744253756096177599490405763984795548287028375001021106707477008023824847371924569547929946046134154872825116436421699473515121221537710292495203145204234710177172247368169757624184463522470229141955518151672420036684910010492494364419393082184908990193961981502787157158320533369960685859496336617090529437810034404274088365935814501202560609164851404158541180688442602506269702135082944736534030192626237735379191314405109754234362478913389874470066458020295455828903715251083463972823354349776528012534692769451841718756188860326582791243906000289267040712508000591442465241666440098421818973100225585854376959343623199473251895670663222011191738591745466608942634481281558939423438275763319806071712431047401215555857941993398330149302361515186961182387298757748616156133665861854730090953106687914040309899635077550278015550346737995866001533535570147072699430826667913383420536198746756266903447933012799679910187590368503229121100249186900735673444385853597666838043893562137705969702010448106244351004197133204438169960068578352173720346069608714053128182569027509627980976576504263533989195181234449341093219735669871720729150190690060657590371025255739247835690934359984016903476584613517753494582180565823050261066900576368902160302827673629717943906592530697579506646127822880210414639176019404041621976882949834090961071162490367511265289028900294612669628535218295964908166780184214118729296423092892705163454886196063663546823818327564592468658624461203990975152506124875371550183188153344914472013723207341117176433173300583093374023174473462893400707335241191352629891059419994092300699537845446192250006502475151591402160919256078293883808875239357344549264280311029716016302961161961374197113808807209717892575058783596579625150493446409440090137900172350530318334537362335991821347361642189349130437270474153216934793747351343479833588736833364907785161709278212591247773432536242714495314004027468324286535934233457334241242696462764179611362321110331657073638605509350974528812021397861631946652069693879269212175807434118798080451204499073613156873861721690315162991532381528281404331029725265570309614530649663215915650144653237309270964258263263083020989643045649959406217280190696258574421222207283009035424757988332042754690761346123598983581801240298002095183373867298075029174619451284045566431984577565490910282733630334293141200404994966506836560647802862606801721093737119984625829141173126949382092879075115465093982609610563379652744858000849212958776797593544841293360078730473833881794766525265895058104309296063847788413090305628388952152658160972164857026716967151155150071134194329751529318261026007695165815904694186216739253956534632106677684807397009875789366895432334730922167959633693326475687986114186578476987253633819232078787027622074508488783632888964169472689576854456782177424091077920125615137987673693297602620010665150659288295786620222674580589954070342019241806573622567644272735593655589294799880906808939994635697825297664120707028016122322516998270666152346149933301612524280881652163152627784044019671097716471955562152040654268670975897672670335236029720029912466382203180345867949431896468376585177567746833639022375698993018868432805059909668845385797026374525452475921425915233183578768671469030556489818178467060381174769562592423501192372128823700023550941249042637662865518088404700321903623949392479405063512985758324547738801539257283730037807606810344924454218172446705996574390497172543295552109300575660614528431678248487209418073443942640625417886927230361098735670584661689662168756559635264915715997149937681493885707904854512397278345669430914716759389150256856731782284435443412322920139680244536986137163896001125404792050688352081694441164801327411612569081591794975019697401839188558943613761716768241143342687959550896061730684625458971801841906208537908462391630816162706616599416339563739542030291834889028409793214768590445314381480781488332734243611175027009917366571834626224087687529889427474072940756435959787863944981577198458575140482157336942512233429536611683254814900669453629483797867472790802962334486523395754951309930165665779509617208011273154578080665252727724331268128531829468401555352981292984598995856835579478880233673943362693004950832444243391367081421465366228977073195977743453318005868735314984948057574368440731679883864918265945063895530830447512160950575606265274065265615066572162118581643902595398132426575523489184908814142617540568402352700435641707411628929544721785810592046402614589279260557642210942568558122843458730132601693484097855530031606598664525728095350095230873628611581491403049580056424130496138889168180763491014841029136973671914792648214579252880684637693404322444740264373181644733466106137261975607810755757024885233628624986647171295944668851914873334096349741907009343044555477529692910694352237924018312616649126236371767705841836837227973667734994363653463612576924029292343863493263892545107659155595099171172864241362615498033838416403198617694440286546823677874596108606463465843160371757439344977406423003658057403737899294891030590517490269719632052264908450798753621850860643687390759497534690946425346439059220952371688083436802427743642898280542023412387567266763134269131317548498363215939258014944482271741352693131264636806128110799781426531561527702840845066271521826036428170097444267477804792400802570416231698836626971204774587906923269140428830726034952244144473212090576424394963409054199241290476159506758894571599064290886453932157043506197080537275123248642503244394683946383479705350993936903236006373723588552336164522618180166097806066983549545326543976076317048800191001699393164183206151512461115513152627497020155757579093546475426501696007385776408680292603907063092528915694634858758649002587576254579393017555513947222638867755911747755403011632546418796886289343561982006449736744398233493472345992884016709925569423383009809459984020083394936221954081583697753902040716524333480744025998466568261007017143991323429742987190028180777459110198482568582652654650573273722483864693908355058368538774185306428741982902103093426739361812428231171857158755268259877512708688700795862479336266562464822404707101101459635513261498411479620636768798622301117239328603171626022309927205398991365495268402016286195158728122346677616755127303966080009877551497991727085465876730446977298255521405965576517814550341964389146755679670452352848230699600602004747719587748436561677936825849116067931687587018232574350056537642239667899521255416902985914873372221678701719608973650458343374351913743940039370598511679127151191784168273333227157643381852652362109647224037139231836585753266853490078632955673153243156108106463668872031991061903101865654516370589441905681827178613407414070204870360955939081464833827127797024173523078545607909673902040894933743235299225393063925670741400005821737131723575202807720467645447692716475276025908416561087897101505068655136731249129543909314471146224900478695565931015443096836081720011395958647105239392570905070733775780104472443449063185653995607626827728193808168348675904990525342413437941339740829844962656829140720188455403531747440325064462077849198053605926969266607950837070464868064469048663951803263086893113753473717508678710756560298081143892043060606310036197258903371178803303739264199483847903719036919951999732024514281823006716718444285355003098568203350710631064386635515970112359277467809603194341578187316914782754490729447082877276347805440743789003500169766484801757802068031166109566828005509663395333250011912109297185829750589263871286862799911465502212227606097716891680505880318562872578788009519286439782298942834396544767557973088970469765021727499586255171407776987516787988944183056914788767051257383831428311240176443402254742795127447064142648341264903541340201817383915090547735840643970577342633828393132628338192122484460242705890489289738883363060986287205316838936412513838641052060557951011649611931955211194287638535790495148620831787424884707294076546985098598165154576184997094501920589109187663010132384140046211600189334616902233408992202486453471116914134222310317475295137124071099737582882473868520669630165749465658137150204436033082073592487440859506953669388692733852262309099788248396475717740623508815802985857688438852241863944943731687611806057983741326681133546462465506067256740725472786125785784786250762222146738383817679632233114667063245190347085115877332357363029918063661303742673566587157371689541286333820062300840999812622621929144602033501710366471651105330350680914395364035163011048214324278385703264568301726006045452104039018339300956829241621739035225474921144393391352372401156988566196636663618075393716540843654706784529537827262236698713306289605678507925674954395913640360874009968400151484407135643905599238597884015118113464695964635203017112328847879233448442533461360007900368351959041684548708855066346977730107552006697323770785953776341575830943671944961311958127023239108312040125264364184915622288821041012774685646852615799409138191030807209528403735949915643207681603888777165274557780159757662230252206776782380843794181827237143845685903873775775878650780158233361892444718242771694868967633881571103173121208259822103244547760814851460246696051810467269989004579938225284038570166170412407549762547186098269392356296538622352646688654540103467907478267347744188228506440166420400387063825855648810762529489425261775641272143121172838393575579731426291426324127828552124740757664703041575687923762260614892749873610520801535471399593839995622457467809017736209700508053681519185314869624940198133097349460222159981854724412532235165338937838972035475038782733249508605734229106620683490119049800841564332686139856365638590879504640785848654860692459738655479614301174504165952754079840082900824571540023864777860441989358262750245550322154552787234636816549691907703627435740893776979288837787800692026695177263941043369090260544051845257618649437789271450930197661909735648841013615052811298093018093671673443918081180495641955368162006423200582162022832707330792843938814181031078247024691466713686989724623935443501018311601359769808312308437055794445152360335137164869331732036168323709744769973701293086617459121376981017013346747377765818856637688533803088910276025807815914742686927798777048608712238953936302300888777815226385667432831485141133232923481481388695643561787200634720297363955184134329181259380450094646501489315900081963324896965627028180719982668933603703332069400367042118099570291397370348417886247525441069992836964102493250010686669820383708242048608701828267834048678681574700254601416290947211429760068009971814326892598018373013909803114080773483945624385704140769447636766322109375057938007581863934090703281367419791361715158685369176369344211004683491875472578653197619606593477753492248365387469456574109755139594826836914259418436040969544597144547014845631500474372154614141963811105043236499868196032304167278003348154421549013740832984965958707941542124808881270939514374729730367191954173982777406562255413485763625942730524894518486998783637586334394554449556544943801374259645296360564237906172811963638432929160292892497350179764187173936670964677320643249303670385160849824217754253664264020376234164709418157293272831727615468943574739142394018773096841575481856222712793258582252133831094861575407826634255938461628013758080054615165623600974262085992135394439599765793053399743836515811990582616925358489685604119575573634536085026414681457471998989319995840398474640202800125100489056551172337512266205056582690587930602704536293883394018126034729531623765550408321154624763434570896227038336295227722065817907127553589830339466831023825913545899770819747991567085404302153339954089661568151597986430822150412276865647219883541141686590801854765660760045231811801772700340115462514594869900980341940026403840220658684374089368376334245197010689519255456745205806703002283958031145940638198758774506164285104122941084832926570919122388347731230055728267016433557592111183160170051541923862460504589754090225350433253715321982331859195418140570142747212271453721047111445164857242548140194470024278551090512888117892988012429967304868621379610230383442652672837583212486601516005263355211584325028624659236059576751037987732929872675630204559261779176042935595128067353302918042421913654558586025635062489295863266995225043377766658423513372602992029061354526271387697716086035408376430639341535829698436772450259604291623401529329142214075911371540508652215928379893653872398610579144491368528829062174088788034666287431707648291848702179852457234127282353340822640512993393513205583176628708977880948864874101746755139075059568081150574666470931448487267383450227663817830672558228310849742066669392037496773204485863864366385754229395244747146129688351431925719894844211622506504267025283909213249878255444432393376704369575384847015240564051603187756120302479974548895519351178403095360425098029700396196076653807716745884312558931890666005052279418297502547539247370434366725572444852964198421966359990360691295902861872122814813487410705710846793084883333184780476832613778859791369118795015028942615672419113778474529576412228292106435742424568211392481951322368229023455951851223681129602522381773609319352065981898485157325901137488906011224715558223987642505989100779822083458756153540018033831313489494733290951478746760017865933726204714834131054769815492203977710133788136720668818103654262152678045437286173920621054685188315424111513238999198523349192455602561407238971890901349553815902639769452440060575260943373679722910351321025091204984060879922730377732024183436078954212529006459434038611413266881871965321867528104375901023730503624296471974979113182978042067068199384938738553733543553498696860073055498122830362247640358161694063217805419277936822001707974604229983273062797389712543901210178253827133488236405263339450519613262013043482553615107753082082722900734859363509290826103950597452964340181833771595218961931372886066812274437057558787720080755957786851378279059578797480355301388783988336288819298045034474414588988378780310421016060739219579697382766507698873039868566004086014739279919004269145781550391574145497791403822344390227289206318758974575779515690752116272675376130570974929508900132545015335960471168889680898638849422928132033512832572543737518966779069045277255256794559279094778383338367763109627855352032571901703251343057342570125429909341678960245652035474328562577372178790063477496753528680605257918540166318281870865620508884987008578081198956159070958891219671856512592309736528495839050908965463577077724112429397441620235000437025101395966268279790499283942762557972171116103083944756975080520996877510923711316400193404758296677194325397371622897184823948127789279665814906891790931682643000965972557123164626339404932971939486438725172171100339618659926839539455623145814480469399294877478517536881498844371535593419699656437395621121616475021656246749437370688367290281438150166616300749068897950042228137918113525851826235665725266682331081230214862170540084236416877016008076801524704552006588017197139377805966801153025792783320808826853061554100069868330999709359162904898219989854863365744916426504529648605155044826292575293431881334566515353724259592755847775839778701140712316610534427742802550052564869474981343583807761770532601945605318126694532399921059514119167714735186357090558466387255322357635969205379245914315923769093055064793062583115881034965929902096876157265498292369182253040080361482839259518784448610531228233817006229377461944119776807460834905433566058695729650255070720053635756250129681598088437770795305876973555540620975881442586254767846745423300138687481241076065467562749938888039104549403388046538021500876314593257930647428238065906341732662469226416543631067386774251005272879250328390207425891553871042904967178293337159858562357034146317678311235824843687805099386973262167163868682567567367210548759776664211472450547527990185012083514954392856991597294148509660828291896643135475080061303284099127773895523727692057547613363441927461092700379607733840011874381189068506738859858197950362629069348751112152801348379642377033385869886237042189785423110887999737640460382976895401385170559409006780406765646214822001354127863927628882176351983410632834668084871679118832038832293232839726280281175617526685150718077062302318945694059811691197897669972664303838805188046958333612617894322498979398525931392784882893749309557314253683889229172762750523678894763357317305661319389342232132503973977400409418162068851272050954552194052637625075248902535695512434315887899571877698628934312800720340903091219728025931056350147324919924787041057146924923653782233746967245298724211928303424233910994390769075413513177486223134218901004464801429843197500679689485260653820515026008463477068829931815094028692853972757026202574937840461115277933318385120354932799613002780968343082228547501623650383116067789745314277191346756766259812036522518059591480802442741798736994694496941792839110344667930626319749705952540286327322881209108378442105635960367829070870937316309626088335495697528379570597388850130953466764546945663807807020974908536470483242195156488137499887180879725291085232472413682071717450631964348983412402451235398270150609803084948593071528263232813237142525572344587384203232847804331706761426952215784659885877721521745080211739007728727478995824115169085132679394030601404097559824496504345962616105720377906562565408446348993340802816953257724480929304295994823100325697061654098302631115704842738600048334917226771760165670577852106921179282094901775422000875972566585910921322462164776744610587090355000373912257251963110480867307013839775623797284885987139850074418714357425343898847907846141541482273052074981899587272881475171465392749684513992720109235084325187116718798314840672529511309005082894131919890450453258234196027225061126423376225643884238374252560582166172770986739252748857874941230393234045722725017636282344458817709207271381276285079932844524168321231456945326069113436795944039774329442726963920178396303852049734771181332012435964613551255276248305463009432662159689589714364405889505064828265204959614061076876223111346939031397912694388483933438623205139404053685383378748015959126178830169419921826353672365521504520449696328411930610198609682090484383006801993139293207296847354385683208057118282013370096450760230171410067857169146632105970967148285348683656360147723836105245419761293500632820358776455657814492837681499980929328764610772686631340792132468090285745385082829254560844542140105746926258081973449873237972092621124607384987043157078733251350821840264001764445817091119737413084153499522379883860024924988412023861194590831216952554435238715603224027965333260444787030946361420440742111922853161693501517751944487860965585059329834318716029766665593522543967275930058801901746511268945691964891796547838726520973528120338885742717503011981781160806817680323536153282438199814126307159327781605546501698622595047484983820658709638918160504156597270096996602695247857237552712617171585114900038189066212513888393799089922094760753510685818067727797344495159196994850691858092885176640155439223755573953614939978239263365846710499935982154956478130343724478043139365004339710796700142370334690547493405182189147322025152324107132134426985601567939887912113354872295849346637889427638365621822844351880189180910178959465644839080337350581725468023209086082841262722673860257455128416031580018223837057853104769734875612020281853144063146713383807595028047967191414452256759952819602753560637204113521681450133398961093074283728155464495155223729388223445197347194040368432523985932607082485324693031142876540553552327460674711390319835533718994045632015943999709863034340157950601692164153682421991934375938716824824633824428496707661982901669116966502451921189631508048280405187932790754034543149717234028537096882462304435085821528273830120937651016971940149930619623290163397261803914382967789746506002828445975681529289930823735943587733571819452725786722282209875859748086981497666134797120703179013688411535079625568428588759602461634473638611386552177835758395411295111498047628281632855153378304269909576631236777897947326086474968779967549323459973784566646966748353065204171415178767976949306509204911211291834328819530295193117355598635309580064366557259785237289733281682740683836211667640802793471177713551939896640751641027121139151261283992976372667255844719763284227634457950675009470774609630385026935168882688968345829983882872491034427784463454102765851645587666055827700199544534513514954781464842577488786493376374361893707563876270714719383672790004624354923608626681197066941034506467565239265490380170912694878975607751084654211112426048263911346364976508497342336433062085492085908647654552221022260596125846350512959015914028907131512500545146844525448911388535265476244441407484082436310046617099782808027818875479571223934888321338305580805018195577087000693494067816434607437550781842148215720089658833449525257972859881980242762171681558766765618838766326382048941754175973775106549247316048518987167799006581082664977363130810597591438825636808629162561788087254148443713779634683784741023269626944219380483230191675620908872686128720741661535916349504075359681064774558388173172413822833600730186927572688366045496832917325861346761076870169971890757263209209491268423191779717207254566092103459710494546934084769251084694074240923908624183877305736107087515387122076346001103964913183482264892793179699077520217574649804652535265058685802993752962628237871496152058772858380564827837386408038726068068753700093947708480228296052140239521667119548433885187393518050269166727281101597979050147611495075356581494459806087450393505185002625163000018654466938436084833211770140552242599051826606297259382816341291658755056900113061104498042068758049196805480364841046791656614503705208516647431838433090046181422528777587222597260480362567497382992431180927996162692443447241057808338976901692521665379783253690399320206719224461984156456002786122088139884518233545709560807404777724616218727908968231090756541827330406287212392778447240600766306567228289400789534399265995887166037000275484413404765454769369554435109688229364818845029398585791352390605819191215335473770123865346993225362593282143780041052106642249017475405171725733885167975045187822501268219935683940455954705579360399609360847511217538414758791806096157278195404439805995652557507501791262120091267200278667870595299728564371296109056863097467252062186335596650429449844090220323927476398847141036718440772119497764858536451092625048253802844365560124972017503800315558720977080701456868307800772154270082827425331138413849729682050714684191094251112107616553215732793617733222246365271639466809130609963669646951041916566488709230401085438261410389830192591501201080235641502143662405043144570403195853089300914611683530465587696090287220437980776958059898105998839190576868088692926133261617520518887420184995827233485103191794215321626316951029956349380171862272617054050366021120398963782260725139783543058973339147785201484026446579856552884683308008896031980178712520168104719298821470537804928266122397556386307080047940532911777821716813646303203467336973500123258046390477628195221802756195758702667432213645608028639280890768475529715645475388485673666498044439492101369164088076409999259396827362495657461181870915442814889840447962468345258643473955660324752592833892272386267401511419614571112386332325172638825985058651814383505458740503064422742458223677258644719160559380382760696254359094018750006861829386936447406849283602743822723100251855869229742277557767982442148980394848756181346150430876254678201709697395890114287115644091116838366956490015820061778256017828999146699465554759392972617144683199755183496261448733700876188735128417115851205436665156099573069473109355103444145959228682052594363251872081414236670260195504462850655087726327914276348596780959509477775881733152173813327104500501481082633670299445950283412144523312797494534864559448966362181118504753431492712809987736858881700671421096081818719217516357556409783574622312240897740902184057076934444321142207823891886778379800550436953832662850707061880491017412875634738607255617356675096699241777514699240111958109899244028965839918656881415606158642371278078492927737186231550133245320607484432606643875152269463524388771214744560359116780868885611873507526601631203370389378023910046014541751368897022255612052153142294175239906008646704867971460924372146642206440343070594274944435091754237075149105557441972491653110943736851082914956967018232400271584394966769135855284388869970933442181677369310730769021864627056551868783188714134908272309451069121140441466521164439768864133038702974383109521459414975451155624711322908826791478772257019417334908466092145030527326474386671783746457869049237668996167655174426609597912173253108615988869255414397901892741893278242547373209634673004739698490642417593078598720981454792916550344116055638630412552200011300950320832916837758975185069784421351473743399456463386053629572260446312112007592792244189979365123337504696888295554647373226140348448066761424278991507163712429526037641712736468451260361547093541515913661220213192071125049583741850301805495948708902151361851089020982986755499574803797097357826722891308357924522789743585697462550750210091071493655954982892298080925478906915376746876778043435275278795725496771115616057620742047820051515277546035409751485963109584197237482639036903661013592109580818972838533544082369201460461988331464469747246095629366853302647033221951748929849744745302459131391539015312647335229358542140899834637283726743387421648595034116151081077480878469079396039532047288740392573654982384470586360753448830798246492694578263991643182372584121593488575594276677959730783150165327484285723116121052176264102943527349460072624483445304811751218600390432068605301420577098386869880815826275093411652101683564066906844584622304876094383458710980130770424550275186611583255893431014294064274675110799426527723085764569387295634948499880569810754738608560945203712753074091844039076857076483459656680983658897347092830992480558696649806216531236819312334119782160422491478595457625963191590666488330488615769258063889617099824748179387899530957373221184360366552489991521248360550373040616288163190844486614241547099847907226753415714414456167930136473076284872729150692422033961018472678270603817408530379691027223015347814830586974725786072452232656458047883631869811350698941035903467910312858589168780726996458981929857708760820613103484757509613183172360616003512208959170583850484512568906324608687074939509525440669907606085497418062846334593452964946523539314964024453706950088445244519775747252135401714407721030860551948534888734469520918465480227305723996850065054110970417406735623446404327908314274510958996289767778347286471249076132081870004596306898429246654150197902224805277044042036779843444048207568105603303889586557444613691963722559400639259839018142168060479119415012686781962907172553196015911953823070157174377948729660053292228705558986820845883157377536268563935161894428178632542594592037984178684964555109055461912337287100835982225345315549637127132544746325009454955422741213993992280852672520737079362073683414347491032530201755914661372297176810443563585953708716743109954288859005118523599412190553167508509895792349289365635664464587438589271705158491640348519270558996340332164016698973851924350858261047832437050411534323367622332572803796328785835649690581999442648502466893845006339504755129040193815315474421500080877940783487357052695266559696082698905858584120203172958818723537370806730583802065489261548632770905846559390536402409231931001911420643735197500120959045568292271336025987536373555403254349105333323510593584028222476592774374394540907825720219607025062378024612739502303558918447842217806352357141067091770171010721960822733496804257227662954556929204248141327247994224049720617819488223394771217525451233339425720941991586740640100556594013260760720948239614449630084609308024707395754474572604233786766503145656620689360486711332762767333379112669752539737962102152456160899737024677542315625130791299459222525371719104707983362453776434088286611713927278618775572525178114274605034049499957696649975314268366858534596672978747840014923694830952949862733550135578120562135690388716474783314063043795006384615114649653285873570241704438742999187572096903900898169204406221765060808014344157171991960548245653591496456236321596922488605368672077970522215532965787416290955572700015367437455933731160154775522673101947230434365987175588404076275478150131752647066489017236350464519711477218000241636375491760716929955173389607931539476549469111415286851058724087655749900484605158715343090694837077173222014789430826814036754866967277394247575336827232072368115291403752916603625124403753862554014531623227089279516119455019595887696922680459275948317165558087999133982534088062275499809905196577871535923960224195954560068257778235678911420625257086037355519175305166872664579957755164560227599629402396522134343869108145567042030140673305060092873762856788983240345165997947654296355238544555567592275822600550623708940131848752054678307944899574847440830580517772449725263601246742864005046865047686670981881121967091144471273714388144113688574124097367636037320577902399259732732036222324917638405263590106593465818743601950908022068299705561401780202757984161329835636823771052823321064796281983212301501135067363206380073820731003789188599059092823010612019582673698559503138109696034767179243939916168395617350949392282456990739684131167995380409583394387103536316996163153521295518880716726385646655491192334201563257507662322330612602033174298561834230121499604726032355780744521170703083884953143506638836204431159700935739609123601710904154760661137375507543362823022376507956277230773525032083257310119515817245639180902954744594222393409361893163133589668333147275132095582708966201865893222038149184174000652638640617774839746908795520505730252732213064172125548587205907223380169719369041655823873149701170082592458373398774163209258643835712368908700568385257804617027556599121723621607589890391023820764442032125443299328698086781158941381507903742181769329997661789682729611879271051644593543129610282930204845039962232751926821467518403315569826743172374155166927419760590362098690795391644992122129369537767039053242029320202465147061076361996849920314194038121803105784532318588124114809350978113130009444516778918372049968796780135216867713172163368557468813740903286268125224168488957397921365827662291095018483988987591383110087362647528012655770703041226865043965201154469761482302095683348781735892282320793401552140276099803317030513076295099485737313022633409049568904689062983803420860988816276407370915727304658157155879305887953914470966729169031315481384977777177040943979594582080754093040728638671184801154432754001742414059064792850414976139935719353273585651542901750648915674763799907368345289620209205491505977347009678595741775291803379833197675804180671761298105015186536089929531781909991035756203739157903195977440646036074613872051872501379284345638354849219644788185112620589395415856872882075087236832994989825223435429956313817992067086286982719603699766592523611285282485210992918625944812994284228032247863682546880997070647180381660942052499449815310787369070390131005031344989969529235583322045214257140495268248593660735541783044400151771139810233671850019053311832440368684977641585071963678184220061766441622569746587553148555532572915930148887162413002719104276515411870141438970721485166397186479268441150022907592414894312556093399749920045460008279540108963754542737185056119210314944127875812387970480274833264075093100470442462619208462494735874778369446683001485999005357071007705612016812759726035247949782721441064835649505643588785195176284332750926371100517383640265178195223223713923738024782666909711914263864232108220700156446264460972076421546464212382831830981397180615469005270158202901526962529891667119629019376767075577317859850911754778263721477792120460980035485086156245462229036012247260048214598887383349809366014232248742716246921927420323646611133571010121201486745834982070162832643880860020568526247124225543117125873919103578060864616845972630031363572015514573248332115750224778233098516908232144166248607926353661976650420940504096508124643526755577684695782082307781173488630353900551554482173719558005671893991368325653027613759793557814048793563732246542339966680649579266049253392321646017588829484331426671726543950121883615228595624566271206750574593658429121486233277049315233125723886893890956339716633795833179149031157536578703930857319588461162737680653661738503198581406485045072425238097189565924881698018420870417840836354548503088311019918705528623263679415131566580916994199162011356842984759673340368295101296467766915970912422706797962555215293524064186512772444859903934871641560499744193410490700499689535136717777772908596062110173727303020799280505603835313182175176319983942623530217927637211597333945263118430382407840199169100886161583464834735959839278253753307578701737367885108137652960130475361086342786108502973685168096089513007969234365053892163873631186097136698417464100684044358386517167849711721305902299993083445745839501636532167502998526396707160329993328489968011930535649372639607762808098368075996324868085964497965461923867015808089320043041845211502421354658638882072282577875425325566594307844122233822712869071345777607416997860913811059466770072876780513537897569986666721484846489617518699588120508461586720451450045908509314522381892826860648380206858713584843766743281760989434021220592362775758629183502398912391367955838491676938368493900003124285155533736733496012853325098867246630058771412836987973410195938958603727778705539729500993072444072079717413258243564671943977617330053448341325867731601730142907554208872915243341257562679754016036367315998475674572443987189759484332237895293134550040387776269645708342214926149884262875037523410386970157759440920279685805536549361414716854914764214336640976267310543402072019359900328998560097525342931063013346082050760186513520704490050559115862015565983444567699559254939643802520162702445900603090096787094606339257075327325683063009978893826062016025849654872942687773736325103904611938692747904358337436430274916556398350982975766783168519868047899784559937165973436523537878166774940371367208104972800058909930645217324001589595110526883587320831586275670458760041027799292936059375046199785047052162414360671390852101614289052683007347067657677828950436562687425032997977893179712447875935305601392930299872113976670628300823486102994332277109789501762558734983049115656362311981715804347164813413132460675143104268163204641620830613614611133698659894659279643521194357468396992993468687854241457691922819577288199250524400266752165477787137643262957135412174722650569266527595090441850369607052264851445027650833260448238854887727596316345289568065353665793824912322701033526800223153662154190245177165902959858741844548303422621958163727930482156718607705499347339064262477498041429004438943356918467278866530583212294045682536406080505410426551436151162909467937095327128472202065522167145042456914045946800025857146943637149882310987493169694861857456038794476559298960179535687137486647285910240914614015727416441400389433692003022774320654741740481858584961797683238388101569848060276874651301319672692179279633651919205557688061868660436685907283815959982447247671110748591511884411249275702731604376157811593217505834818031925472672796926910665614251200843588860216252823856822757592712395496262972380745539882687091109508526809721640302463290164889058869010401363325964625290571338518350461795268167911163739858263445921004958876459743988940578113833363561788275894896020422872333222824973241261659741086291353258166665734539336572879468346226999520216587726859942618702535088760179770310625681200457419496027864562990218873059511981742844787810791792118635291929516154737683487898853848320040802891114610158390594343908449270009389197131330087604288303454073147716257179871244239557913519383479133155395285851068650195452738243026563506620008247103226810017839117022665024719316250157259878271885891865082869682874714505957664909771079616213166694716974722302269637690749813611591672433405770356759454567115879984127140117364427921185190770184585303183137446741787174619926202070460398726959387364785228849561183639464462947647852902531572577107616807420519577245246726094829494605248142986844959260283473489112407272749734364491923670334349232845917050717192591376345325033828595899315657806972375404922379165536501038492280824465508347117331952865545071677862022539388678425598627511865178807829105368216678788828988133572870883822559193967350652164568677097285335424069206223754295224942696092233233345805192854757146407212774248989787886057879456345673133101692659645927910640509784037581055273802076471086643852570523406307910486913815053019149566615285968256046965014459353488434657913360467391595512743583858080072655369452726355545912584994773657187986093697747493938749686709485491607153733332847763003912756775265302390679298203420700668138369162567353268048906034101473348244913117287085357862048149865985184156009705029896098098331201471901911939777746358830881866874965610656710440271437420907359615442376635114111584037428975360555637948705485501166091190206995083977261103012642673566685506231527595053474348795578867959815605298341286319734891833364824048340202770663904163402678827661505000460146994244591356420039712314446690735957926791358808879789334338407770216198244579854090181523565804895711234928324620349016989711299302272184406086418492804104747663710738662761596679656653176333322513151583693884151471657222447603649129541488988616778412564697459741130376847761610764486883205062863664168956963262865471989760719422384800609984888729802255193630409009602690490813309551403926303121179990484626575516866661871930665876633864238571087763348302855602465063012153543975602934491663748566223711315446177711954403338137313340656184145392110677222536010711941224634943673586248464786357368821128514977042070677637078170209850686198188636197991675411073718730651526716716166309372012672204576360279658822569679443612670234928433266499580187344909437246952458342820245616759407679172601567504650529651582767646396377311640184201939929575622578368128365003897352224524627755590084033199551721942189746912215836518947289000278136047403479621592380475345321841414458983327359994376429501187408473248123428567616179687921412799933231459484828667083854909775424187342613882380616773735135766635999372122604442310461762629039014163455120860713436254754863889218715303371124736791827431025804356814419479264993294328600015017023349196098468770980153771647890483951414323751193454150142922276847431321597688976619455932638215677894998197850896701919873481125444629608084441484192688432069304021117693898857189832739982642363021590728057063472780223078585992269945056878558287920588040586585779846360900586274393894661708642300106909019588331464323565766334201433777758796448229297934943538909587274334214329694037944659864496446290791756287414706118281183590675563916423181622171133368840989608607088782621665909590880397738656910931573716060246889302701411611916781316677800473323496890449011778090637751099105762827768269186283367124922003773653953886397596483799840475523908209402415253204892417568507289058760289148024880690641012347085855322266485366978946747425581802058741131261914783233176942463996992947097235749866514386163294316394055138071279547558211841226309897310788671622577697482924328714886465687670648387130166259714774624871508723675243380282262858777173022847807613033481718507663523303797519088897009091749566211762950388877466108225415629316308400761131196919845659104501899801599000272302631715043182783840245032116777610844462980296972351971113307006953848117493560294317598224304235622721948115068394428569016019762773266214699685136870736867367165609440437165408155073666013897801640358229681424502142512378657987636383559848867427231644720802913901780913813550498758122945604878589889607800313746642706920136455999466667159907422688508942737088315066461781864865998419742102798060594761552158326426165888092084195186622439457335995602358643717796297587388145676878090110497260254198365049268657833456466258670216175431988497253943538378154281714367551304171264983908005384925517670556004922266069593709362979857740421867917999862607267293775163682026430918056407154273527783534416047158591548797272225789182565147735959068653570906099418081590150649298393820660760060116048483708336329060911296567413435968975192408667592507384776144004494541816890660006996520700219393723470505959769898742380338710464772457229382259940367363246923005842913264254363271919834941588883698975861608623400884843129683795902712753397593283258747685963121507260959648023972014468055051917004203943077977507586839761036112504951423840821820823578788778334769712008285119112327786996269681997305134582694012091780245305194498198498335112739582364679068351618366162935239224844610396777749620468001736006307911400260040445995421237511495301633464237912530428671717825608771509981350251476061525568746749544489062066520241005343125403130343276596463290413850065838537523838994481936097065888677326327037708189383879305537426285785511348873164737889181697283964555072389034230531447160549379987180282307504076781409978733591296176322818392642253156835360203809177819013690926467062240508247223375235528940518203273205399183248841681457462111306771116084083854730328086383491959801439092060928617474873664437748779681923654424211110169155370478194810592629892794966862703006342204283134567101823784342630705998343019951865993955891579133212639932608355417685051231757826706325040396213818911424429797220571512287304635254121109975785047549072656018552607422538890863523683810023888675512977898124996432587905528839902871161800626535018279310295451423236533449599960169546817320501264843023918024818690223974276905865504335190472923910803766894379230677672595388657309247957284942161955258782672720975147919095627875725102154742724527449225223542200592496856129911088057477856788634847192039356425133266314089038902582203549615895822509249166652755209205424110292762634698609059086026958259532739750795592948228885084878700064883816949298246620819934880308668969904897174239094193044500376050230183441773491186552279979370553368395202571358447600328733412054408369775795870777760673782391102062166617256210129840598401513955280971326427385966696676486894255314265864884574928869239712710526529977907826501042204464934464930625157986639784779013819078048977083655607967074297617795413586434917133047216931380927247260404609263664341247621228742194333543951422818354784180163568528203804701991115844222539126759186240384062560639141571024914247084297281622106559032865896684560972940391627412384745938531833697378780516355257587289244374245062565773815302941345399734424009477907625458426877988180474281885078792507717002444027454522580670840198228603542875172913072496995334339992247349824019404617446859516663841556060767121488753088250948635875887364861339922144225946926525788943043089299744524190713417374273919684828785032363795527089958129774704131113957891314901733695195636408758170270496254637937076296487387507490912416767899126397644801820185838430070019395088134733274080886826966566905465374501661902732943315059582151545996632975220361309863691834700895820793811724444076080996117468090958379766552588875440012089991864111932854600364129721349270959986054353975274578026518602204028724486530000324791513596240378479985126264111818476002162672522876781846869087530359134095853356487753700271772476610074267834776325364615520311896635379201424010676102690242630514174495542361893928714874721361427090988878694477178886633645770977729824672665991622075540434187218940591591962518042943477234646926721996934948726824920248089431146278515573307756648136552740890526113287709407665483297430110900459763230484425196430338541250572780905565299885592630196155171852665675194343961092417213985365234995039165957229939793202545413116519517863198230112889258070720305072218854327573376242897128004518566838075166343168825527584201606380974036928453824939132242574715871307628194353692683268709358855508517126721026589290740011744842172061486401232482309214785259624873646721868584987564894895315349065833219268706088133445527231753254281453911576823401259931233992207118631647848466590371955856188311083247916698148236599363617207848817757460962023934120826946309559859742716432908094576327123638053770082205389485898211703865202996304844013575148653128157763293878632482746828859950224900066733667151388621342589534418095315564256037446180022507806931334587815196410774010165981474349183487801500361704317707970990354072266806708502443909552035381131088957169140093136267692794690688967026294125651573274795310042187534150459721305203277326880842003125945787362860441703921967024688915621925066584736797531804395658515782731495970775680033585136427029680305479837629527618188973526145126059109468069580908903543084457315886753344230612758017721426698460939288198891067686888943527114159783043325254920187543420316508249684642836783091605784009125721859015743918470055185855652422663230293038387994269697224383059567228793567892767881061921824371936564207709849633018083340949830505249243227564205339834176701598909226621377661217120116625617404957571816137760037560101545252717715791400538308104634770771772219428033619837297281297399148581459974342393749028910921018677031294338069258789754262994295965538203126408207346232545934628308849672398896020788135370145753556233743735108323710717044142352208252048894987012685985862155965724229771201237784436880287173923009352060801730701852969261816953350792181228408846322101102451272552104780393441399433397264174247437494136773310242290613596709769749876625073770570998607737357800165807125865064961508629318676310385471309880524936501049479700824529307648258892644587846647669399576434464569921329334740394766223502992797265775693525517975912710905470618507025999036431701152182867988132122622033258115511319065643941682894633275986809940316546312342995405554636021223654101366866564705484068313383967976180779953385619423870100434827894367945199826099575307084071620560684363380636098734255539646016494935380775410554567018077911589701441991081774567492012068550975256335678414864786575501863709668817287849587888503868527389283283274821746469438842757309159237270654294395710131436749953269774568108277059850373714090119766618675425033101138693792427821807494204111401627656625128772575920640528347372342999489712300137128761784182946032812613434582208494490614805534309626531081506712600655728094773635813727613812763891685483444487778158663496719379781622769405994154068260369880781975876691800326619691140149178461870196288109039361142551897492689053993430755140764478752235601832023103535821183698335610592161075518670761585549904849715955221118879100566869783551153665677713898121538641106926979188130880678564605508415702018751634496671085210820276288851972944287965711342306972449638261614827108042537040988629743221328837335794298771693747277524368809139338489531241976503646547407429024097616944476613366018128330131382454687516349047148290863771745999924229981119877314903737772731192705279139474215604170534019757852141928638909676733469382572754673136957142811322105753276020764376668064165729126168384843001153532518859035754803959928696302445651966780444471364966730354812878324574620487774758617880562400630593431596966876454061574049320617671583335827784521048928466772680463996017088268892245145569079417939674928498057375299425894825422952489716858932678654883174399272493332406201162240559306169871664185360529244585714774219644118326980514752060212458935139995528544794124738094576352354736461322318752011299970739967857050354894468025844464884332090413549735486423423984502127935759607519592868120842025049847129412004681328541266230124465365924162339225865870980997937348850221716630425196155384477031993918494268079016699933696835671089613793016004956308671858248158616883875710107278945537763969484150567953861683738777167279075717879203303378700539508679206600789300488376572854513417133191747301234093427426747053894510583900177278569506343271336441261809956505962878547238602330645042658889650413418082848017076709979577781295602295708862841594785813492794743190215992392308037569673541852274172357456718183823860520239060765326776231508760943931439350891187348269797591749125499215575029208247767953566382086377776361219736846057494086249592315664843272333803088451913034731485943212612720331238167667047041432069607777997784670729704132542306183222291935033950191188959220244107568695899607668209628352911794198499755896564349057791798565780387521949130819120259700628234524130808713118418238542660228465234223418814027610854621424882158186661953517562457865796211604444719927338177890889207333252807138132454965425445813766183432457676003225214616395524156140847118858685936148419819447298266902232556316625381144442277608455577182636941397937140422767633586294216364445445262694601354345818618789662681743714497956398372339427348683651369384292470616831133624915285722036417647974707531012850442297505817828764166029736671254876755496133627036714324063600245952415661348954443763343382384662716622046899801429993371921742129633387008197628835203810089367516252375366466033494757293538908996802323839115468359281746953983319341755853557709163784918061522218773725444465918389526363865542088488421505735127511458330838468522922060179362855038857993830381413444303035229201844907463415785712846403523813247186833192332992530723659852475862749082278601190554171583229329487143051794581158549235814949938088323293523549879563597521162500975313621730556202279898827822747511698064050314945246124359787633761465623608836582834213704715084297336957090316790481540528685061831804221329128146216992757626514787448410362083063653515558301354522793331227538947543322436041278940726952164708132196689249591658512676172321431070321179189700215667290041694416230216952667026056122780125248456743808686346773690863471050140677035995792231621153253027131955498358134567975809984139199385453019873332024987471098616657343409526024436399173574840420590652393819077916666528291985045291861313661735768387114455174738481622359468674564933139403129319984421845528767571540871687322225723504961078164938197666229322975758810127068075388441900437105365439728155116188745292009545764676149024601177100907026393786312189618232756533186619389717036337680454383591327659663194930042009487717226571487034946999236304224185222767142509253412130532938851281121148202539872370033787759435898837673585773881658645074347641011464129017991424958295257443973149076540095219718738750312250881908758578253620181003564229322488232807386891715921920010451656848129787635295006796036349902748065969579049855866473747542313027259403720676733765536748645232119524933371911340272783577173919981137978675993207388449070591636380354365672170964898278447817037060218155237816059141310002775057843969637359401468521599035156590952178363625963525102767075555073436518951042564644801990322136353430016610044824482940657891285292827967855358947106465137510087891303516161207467349486103741803235149777664116814976400120455064144693686710954925438983994569839727182043860087740570549442435745266557874734324816103195003774190035567337124059399565383644849656228868821684640806948877404915460527204312905165683481708349862219872662572022978678669450785559368568606138063709742559844830688042021906921873117913175476305245416250379495544571903751720069991573489973880769043659910887066096385179367732794210708266289797301050274998905711422860594708528371873899035957724163098774950002110046137622411489351516272710660878430547072965844104969946562598979003618170606040045561502249301301689115339192508237362420669933953332727313383798331080383105646707421032913617187870392650037856221034458550353431990627434239058189904964145420440318982953312510737127347568233316232075342022161873017977900880561532654435437987588116640736062825703888407626466164814145587602535221531552126775000466374594313886560297228022301306755382143400551781514241010687793876161774993772478843414210013820152002722002895313613969321803313324323824459004806978989313429494175970439170946502627633465598377989429533940037318932303869365446787247935790745505867057766381377215175500946847094604940536648708569429993482629705407976343839274055564392601671874527436597130361647742940501559166143986422453159349245836924157343568378895933105412494930052160290811346633939055840671420868764994569961628332932760490052757371461062057566365045514404880583963416679277686573160660111342675164156537542991952818469480144870102508864591241489412175687756359958211380050176510892559868192333173143447530536050780559730931527691441324256954598820176911236271693687645202401414682614616342182195816873096956366272298664067334687788005256295059884168583939191735794260778287823078665447188287751503131864816907377090040591777419109181564429989650656300554779833445844804044592573547828899253171098728112630254661573482961421973617663003381727473120895487984324295060437262686417829111467510341476116508030581107398562334962142102182920145312972180810911392756192064311003757605801593117996414194787615877330594864238731709048043142286636360892565959037061375934934009560068543766780654278642890060224419792366968552980817920531470058266768864654368757705878920399671784528451028607964477428623125123872239080276076162240970374932524350194806723598819881049252895991575146299611763613418521875287483983016195770566427490419320655963490264730382922223872727622921117628677145503766544927064454677953051535694365077530093242729231668085714298318010314375180444931780183925734387245544264968759308810197228927648194572906545521174009832201504504273572102960247866895610565579862173563683709821715067349855124283556808809350175463789375843403364671351158075838836709816468264722802677228614897855286560719872388758695715448969465311637681055548450150421496071493858736220922642815404725018587656210066652687554340856401537360264964422186629487413115608032572339613248546421153021009084373202126892953340589033588050745019945052156302884039017084404487441194943020388910471549794518413298194895882299704797293884787464963133910364493652660056785080920111909674082506139738825886360266881496923988832962633763955507442308964079663309818916710426162640565731269037978347031380662157609013053910799520306153223177824251982665783495870145842063178876463565114089400189348067132409805029200622601250015185737535418193731443799781106185653459366521974108651591707087291629418671178628333544885060260537122267075672648736733134582104416088102252264931088966763058035909635367614918402471054551462900786314236230237131159256384451697115904168743713657584018594516129254798856921311865986942033684663933063442433505461801265273427514374637565060275791837444065844153789813561979602418213299733911732978343134860785529117726549549613190166796058065685030701778139420081164460533432562888421905320049982178650737580779471399894770431025718511868280667824586258218376195990316019601301340998245535400138440680314887222796957895457049885543773556512822411330323212297138184086006548683294645812986756565224518798447467967818044864947211291372377654714227302191278018013671834029948718785997830350148547465051247753980688481980939447500601045265005465325408772028133199666991631197207814185983848808404179180678905324914586315475635336557867300583131728593090018651298978959997917711457612757702660374043048343233784602907968950389992381584065928984034091202089430688530819808602685433646210118365945483838692230573975743402819058159940920091615192860217844508556429367837420761690644604360969648608438083654436042461141079391525577437156220622114579923547356329427157344607113859538724953215880740569056753028411991691937725096250199767951175271619176850827572948108316678623990961413487677463030482191746123071861021120809715404371479309881885000505100827982506435955444844039925378432714817845382744113644621829128281756331040548250815986888980402484948385945829860130791219752253489102394571272347277150600626476709487987485160233737746244541582041519494352520362025990764241603600547244651644360806760376653984000272661998585726993976841013810210691975138088101510613007918436063767392524264123227828437185623097124208275905290558023726020033908046153911284972786311663966716344085394883109221059237050648551546129702920396475568597202209664067715060111660671888648902539975072416465117750489309096742896601945927911479796134988811515611414397358530581800086850652067951337213232285885045139783752839199292134139171815275156174395079638944146651717610433091693165457655408588850956890742785292225183869743457400365045426846982915715112874774096700471185187542394329300699704704624552088534025969551187128186929349932620163198518463777971501411766958281689788995289644216006463269293606259612505101101731082004150656047427150261170753516967999866579716288462042057504110489299059836175961388846463491712662082913532974775631673429158459362076131445088495160224121934734494168916212935349419275570682317693030498722983217433286312830495716363240132206663103475020034721027315323946583226036334087010154806550217742706740458513240839509418000798509678424759057847581992544368601263109009024673727555005434508460583637528014014014554348146717884211420816128869660166428265012596759838963144637174846079193186604391001442627203559862349777087129737447425083402999955511517360049122696405731535474173411012468870317666669087316351699950896715912246611590699513318706179902559929505974872837262339760407533812259145912945330755733093751046579983000876229157290899965951792554482630145663857452785964290535832084396074036956709489006232903844472351746927547526393322417483553382045277720237883606978013576821261989423008266403847033658651688417709138637996097634529131222657830754514910279562250622559084339872569008233061505887023969599257395360248886127392397544066643475542986966247786357328234019570755864266199453313275327335845525932668634005800520176904486291834586482290607002612172488775380437202331377771349146196596832814369611418263813613031997567840382554418682017127215206054758891742274439167255689544795226252728449824558234871973400340523922552095882296273185262325832100314922027639933286709049020337377892180885645079772092849348738393818449365705265192971251178841299728634552924252474726015673491606222836349235694716168372037153140278029777398077290960044322651838495014835589610460816737493233018457122314262716486988458194665062811465628649245412604459903779850004883821066908309284973681709679431034640289778191663437228563165839295209573385290828971299215777759133541761317177243520462570159291520339563505572889288849213676901257629796714949732455659262614952272981118771331261263610006343765897516783393390091123248754597255663542752234340931213598431519599552650755529161350733212178076252213478106278259188709507916767612982628664359517380858020860767935742229865348581711694729258796527902807769009003759274002845605110673838082208774219680994961207631948017381841924606642573957116897789969547014922213584138438550276009200601448260726871197139400161583810688582121052056206641159873874645521694125533572832132288610638702470106729548513282244266217284581679852911465904218544545908114263111165731865842423155231775786449623399790481722268685939745891198416217198305301040931143509356655545603326132924869055182481969394002119692202770814371069589804792436997490827519309028889442196582865844206125502090595124337154448259045864971947552006511550133061316989575638182280371933127461014932434679070530852306232864025602740892253889532841675614220468116394320961975267288611142033288049758643226394741435203999538939902328332155816659167612632423415019736066021843681486948427512661578590331024522892657086258051033974484024775095899473259373570649811760469380054550895160570287976653488460002213495288687548218653229599632224237029519695310774585071217734902864683357927287348972801054232050461560105325268925203488394806973737953291121325875010814182534722136673615134755628877730062166050750601230897132529322968667735803566380188233584790294892945641847366793201704221777700210328480267365245195647533861022951324113332384497062997007863006082582587199416044460173223475456221040285805167679603718276090764409136030190815004855902553722460814573880273130248580240764759492955234553196371252384102154730282720131795952495952343163849565067039210420105223881065981060621758306310173485090601405285184205582232967172528520535442456729967762764268341196686450744321557325809682705050035048625121152225277937886356656261078429927438749512048110138239017005296086287296204885643557370433447436836694121181191399263965180114792017096707486157571313304062912629891792471612812495900920878751370306049800472564785808479521977079126189983916379934385583466560473126561369473504747703188747590623323080955063566754302024840988709600413199690391040297999034002670286685646929812263331664224922521568150727438833581023162768150852966713879182923311327240740917052341928629083869199371564351191289773285354529257300714181526661241266974288358018668737600986775169769370178408247570246073579136874122142360902410678368099400082092550426279604912951353288603228106979572334244533832762409107625926019501833519845418644470704029873639623886634171139024767639173006915021292488056669838292202707384731165619099854459778752088969609007466502551388426723031909272317259442047936623306939804757764237791961257717488116109146215988573501294131709267915322385558772370455374423227350911994495053889325011767430475821601782515022363156776223744686172751562683427940349779980147907298917238455476674815040462017093608873151124051677401145494067026200027214920052413765089680381802094581587719790497234004988005773796717522145374096760561067719642825651042571431621735949857726588297232854009650519749201714980248182344953804511437382289735593177671330065423085759484109297061578349594507235527583102881085626783865599672321458467367807166425467296391896099221496665465760995745113088749636569785025883679051604584581812653562300239365943025295061935704753121830806375093056422161996136292447405283649948320889520994772146444746539966976653006000112735339625868666691329015380270636815121281363780078031664211650226249670284860474192446408062906373975067037099996927031037076401306693545359727591925223983510561977236880107948173493413480063192278269358350581653842216739049891282365243639541988986916353808599893232829520635618667802774974400870032043251413861016072218421934226077238579380974665905577695989046698442502613672922631173074894523197738495597027684313992047019476164581167286788348616325770680382245694284942819355915851698591950989907267491005811397681304734740216985662692767309508014925621430728581719899597476415820733146334409123968153240510100912927565434461502204791286441391440646926049911830988031113345956414878729773015128967430697153962226532325767832175802550166062922532976380543712935333846215722581728931849089013214718130254550571304795999016166923051874689131991377831749901157809380600780238986500682629745054825231029949559167392817247297385567997659281890247332785006154282120464143140101349229084920117942206683765127303301885433606114278026205431400404645623497336506395174997086096517692502004161433247717876017467064896284425021060894171373700177378485228049055468409880283106382434508702182229982843328394891623760771465943677126250333920118288488133853600135260112353781618868816506249482514275277933131961930848313760713052471971882594349765324681927239537851280490383994236911479947113384085187754901125848251122687423968954262977458829281543332535755763521733877658641224704052895911327030769527554049880967017486635939887002339533353718437743597042902267127915402618146392999633649196302875811535337029330847968296713890563200642619994197314852878208543729075230180028953289148296092516240300960215707666529065297054088538695521731452741285963006409090406383809178183804383942281187541113175701808348726412631314493607933883866144306560345387622044695357192372222691755012710261484458281724800218967824925777255090977218957604110942366483150343551933903597718344106994935195565110932109269996319837902758764554157369489666313357666271362790722165151418664291104063489390312284574289008443956114088632719744023892993626176556802089666396177536727104099699651868901668489932285457486951966780555205777037094748259091474865608191038720415975762555605976095778049722225175471598954864854796706518253819326715177027632535525567984852237524064573714276779996979448184736132807999030203287369784303975866320235297240353791975501871052672292976175847443473331775067937364580204110204212163170090259815076105619178685691217929592042918873178075272877416654383285338734862361107666742993153705142937373268036951246207284403968639306910777059017011784469971366826908035081385472422818698325862742674603089330528040063378620236702538201228487013989931429277507733352264615732310142395105287456777363495259512475379638545387926049418445488356440653354846604321712098331614676102199824381905441156282938509269985532701596688236805056321808033701465383071556615230125898008465708342518550983940606335426974961379484061976621979316102867645575709731766274346500850921917954832475013728194678869910629462269814018265203777295984479625271611512064627159903184741120274515562627909337323539493426120062338421862398057131054429592149665806651377967167743802585706621739173155960397288657725861219963362921482348252164046658520200634353498460485582309730633679151867392993967936775643530888556008693715592034502354573717621318910234125538342145561593674184080253383741461842495242123318344659202928268186374705690908051350732528633031616268986891617467426147010651836592232663363609920807767593680542854818645988834440945790913549926881136923664688651521798658263766722037045549226472861677503978478834010977438344898487738408932755565484217509281302632159035881940999093893741814059654990234630783974970083728317180488665002009175775809997677454103517955902622022337227902913212275410180673120837441636937745581087116584972347245336588367087157509946247483065775232529984196936064680789316272226970987781225328697072931577849277771977996072915865776129955058773507337577320041585939526917873084478745040214311255101137043948498617809153463958334155735708218776267449469758745175102450059103759700584470409475161524616586023983300000469839811230595789300054586264180194428792728346087651555615727034584127447519635865840993062090287849413154410209016875608944433572787358942434764917527255503004634600534757757277618878293044949560915911038707221593007811501525319325581437252821878661425106278068914316159288719862078457923958158274407205739070099850652044055972949945604618499948751055172815525622896712399933060856959116792183736732905762852296548986576490550520222839591481198151606378496852802335032030787306488610555507179212083899275238220923920783587664204328922824096694887743947637345548241634598893387977602451693174400158447670306080591198827388574115072127649592398645412603017482008367276988557465723387022473772175937413972403980166488509800207618439156807533181938466668218509418998332906349916097162361399135579094190757787726122902165220356021377244888300152304409180249735199458885260163611811455314160800509099798432822565289472158945122421945475410335145675998465767578299450333299303642672695941186916252317093999513430530493772931680359652031353492908944098101474413374670650652624515115001716453879550668082267086047209335480052079312380860136856700599956261661367191467237316975807867435370532661503231353230257901794335078574388833134634715228593206743140088497098758278346282910918237532795981377586458214439470908721262703259865869575440042976449560624878714527092512073119191245450144040081723257926206192727141305436683942183624319455408961707273550914295728927386995644276531141173099158076399679657342202970570051880238255243389614459365234884808670513930742244137775443679526184028703914997883418311976446890600500195723208840051548498262584746064031639108501258006564655092627045640140719926909352834570664623183380603376960625270414898903733068322752462859057966996547365850706009874539732378605743859390704753978628006103421920009139161581110012864232625826482802048776838456078443312664224199280144665263977777024040296721474454077856229156272272939610451327486465996179312678640989151473252204987615388947064980482350818855821394857032733931065658499887767023018208261297131666900582569976296981966558669586146076817052157670321714841630606545294147373805508402398014921473183546742546651939473369389201336439193555700920788119890596892957840748271188561608512539218979170098152731345695687370845756822738773763101245938830418720784704036247558208740826964350804062737280118608959114394998014399924344184902634990845180379315935042036688580216038554634116137097390785563921837958527876818616573400145669191946938874404963677197159058036818777680492339424021552279729739064509712551898756221941003153974564976289605972470588047526057786441306389994448343396443915331760379320899638314871600792546151854675087374882618816863460699052182017489585759416836838171876562699350538130440585059945648385959828820123551870977564626250900253537934263781641825629971346490774842439093365286976028648004131116972198157076003297527011515809056885815518917546705444146045797873555402335690804174193265849002685559714460670705107044488666792379961590921784524538859543758985125874999614796999963649809713700349687642299328885997218755417376238711627076740321130701115089042147697268495413102884738973955796449502048133452822152406282403226955995491911932177492173248534107594736832009980888562159146127412465603377874367899054424402415880258351256036261850779677238300911873858476094062776175691610838075227691384980721133359912994156106362531490353962429236746138153289036938867762807791277014399263881374318063909355956430344113507586608308251121546308451243540796308739711187468747562193219993183311543826608772877576966047511799494483004610134131095347112254306482471606956465670278419723585783085421252603705769938754004286135781297410314811757751094925377420439644123665441189034727882695814450436935654410583381869187217344926120054828117606369697047173945427686677342755995007117844575429423721141767100313418053969068297763414562061503800841455802139327963296060780103915379336908616480557127476817506642723169696832727605109431699952124272824278474127818073901286376582516137291738139120350454665007353993965028442421722143877441655742015402267266651153194396407320751815209964951283101618021692564442397322373927088874369959058920793763449409799504051098779888552110767818051418734051657179360078640167913714486095358295160329961845248841714098744750277387671993136181296805849938239276458405509600512679286454303080603969599299991368463621776163990105239708604977578395216104843177511366424119149631288090807640036262256551158976078900180436590391089421100347005938672268939153470235165152425050359494316558252697742862327376107355920534525308368854943280682214470320641846589529118323614618868108238050343468898381389774433090407186040540233635705903915063134536681665391087349791165237873098173530124266158950919041873347428635596829448555685164019293446126107952774331087018382514049369716258560598857219774118125706821518741519347222553737433469452592398597717258424047507960705395326155867175948422006966850460124066090003484647719250341520709030051057282552538553550890747282607074112468920316935900012191149313951828392330339761618990141779975116425592579423676918290340769357630331132508292986167648649688466892858611501055376145671286649156764095108008006963517358459354334450348799692807040383050236170441350203486590261194963820983982398393810006681579328545045075774491830656482780301047935986020582257434157064536413310042115803733663994962539523905635541586612678663127333331599506779936020299289682656308261111105177127126307663747866221094452585151036128519169394859218199205872667591786431428229217701763332813365002163351790246333101905699599505787587503263720420168002511444526047507685371947640413301901298623179724907617044012228144390705379459629895796461353393455827091735192004245435493412278326893372609178666035996025993880259714405976295131412902487777754497902355730243798350001986546590398449082885603276504815299400702159474201487282865295199960661285357522417143595806438926586819977888457358754996637599738861646194897414963513155968472629608445937185819529510534088615887196643867961478485250758455949463549226928384278493242501996037046896196772663046590390833869174721579853415611907571765551630204519850038613152681536892531832353627193461861035204862307508351667926715655920560835616885806920725229821781549699618809313624372049972323722288492677346658027885736865083072650608863007148659488692479747694082995823070951854736199037944009766753349364162436439960188074668942112664841142152590784851072104227668226276137724232105932749135174347027815120519095934843131959982773432039236357611735633387743029738436544562928625155716702027031597592017265936137393201962729629923331332671736435106256674866630906750099077114096929942325346448678965828150942409283963115396807031116410443183362368144310675894885183895880998484620837860110107208208705913728545652930872232849214136894973237730315860563347182586320917674661276842760576813627571295822186808719095178633936228382020510982895077371300341430078300949023590544210239891222993584123528035010432265335051321836230273146700803413303466990954285579982431205771962916816795714863665634085763419142816614643923855579429241758892292415613655977371639685642340571641667858793963114541883624360095351638971990924969932034099776607828531625639682414968243354611480648862933490148928531177833584734968416621113656944484629499831275475657730722483462487282036393700326884299783638214849901800183586111973582962412642089730490481558373870125665551728913655499849091319563094554639659474444212274551728798752049840383322836048341649654084682134813086386011538194308424185686308100827916901114436031701105574239987431551065167969339351820801173748205661536461812971303449095344694002823966515941314112603638048168960275166930118666489394065451074196848310955734951847190397043943921350705567613213785921813594239508110988182440991546419064324644579777728512066087334573585699208519161346178419542491690645117533358883445748080647697339834498820842883350114611567823837295842770272289023201369732885497801053462028438583134459126682277399371660597029568099245930234442797460716173361004501941943945947749739390132849165081318859044501985457051417496931421610210451793673473983852507997752450535222476320577764628075107658770850614023784336227345041716153588945280638727920520783924747825470401983183578761749389299191837755938790671516347744531781711042975974923292595326413762004926394284321828441078889499347093540340955608903864208086498636635882867788280023254755477894478707292228686551187675899847506325588925943544897898388950620558244043154846439140679986613568129320953851083443054246025733436743503968462404012796513086005956158351382745318769403567901049093466236259295800753140990694556421556512943167786943586234798375309990546198986465060683129818400308460729185463342454984800921971411804285893194925386511148661204418747457840866019430691491897471373374794628632701293038989305154779820618049569384787162530654903192595233666651070578625558009823350952198031626691625891673796567820651739715108307046362318823547138964796149638124952119591028487094983719556768571139508022925705205899713343326725542737870815279291687552148977418984572470003727574488776306707501676856741244689395932151822359423695770766429555256636303189620601152196461712017553508928219867174297279825250977733097451789393437036997083803700956360265358140483324317914810786768006563538641847955246795142516339360285065627217279838667836129954099237095140941730802626503090005642274743362281195883649639858460667332201144151813587913705971403655145107006400072821282243116244873605704834632914444543621373960308759359608841588333586094662225724548923322131197418954404723907632871009520689714531527474451453310449795038922366940979957236374405163921007043382733117665934666368242334135417095192238062828612442352982722661620836338133746950296610190748006679597000493877034936188449020370782165464616416282858008596460560949977756816247085470497164820094390343682445542425223818184854415949005396306985270042267627366475600047572802073838921882226669974784703747216458553494903891389549256196744445102243195733344757452699107694870455012271315744923069979382449357667310973698349200616318735869347247639693107854853801525025382172045274432928830350813114904185824940203336833038952485025975002610680062821062070615419953580052547068634662342515972701848537349365743260594660099070906383861832874321014441539568814329615093225788702352020712365063976073581949557308421443848077332823200737279629926142290202569991713384200703026025690916701379698520738203069689387778336408913614796711579115910625923378304229302834748371105440095083921352544130850630096812127774948073483097593811845570117137334846673000130310504660855050980788186750190861312596099214477235649237845216514239794392111151230772437807406600747855942150711805096988087800416430109889877909191079040495995868072881572040984586244169788981523340122501883127000069314867816713553819225802497377211692167105153986782702366142334856339747968506568657157767053206011377248046457373541596808066950808874528681157705655627830732080739477188303180410729208673861695176617264431941229554253125931784991914961214463927092436724150015847266130745859612365768066617489919917894320449320381901828579214839231914169688081941068806572036926386767160104347639576029310355714514779831593980456375886187798430107554186539905454610419960382452647499804188132374227984413908703023924533922628974546105574117958348634654074910592980627117381548407386595254185318841343674284455101825209445461152115129849325650723574879695635840893458064883789738849352184648742429140780817148399269789714893937646359870929465752802294716174818093064286224834044208790826860871659846881129791348902248081204338413627141131680293815255229240751473694762229415144503669590817206854288992755484969414336501620068613146492417193810823734978214802648604713907336258801042398333900010330699789110076967769908321804471391957043558113356659289697685580160301195937882434803247817590188119207402408614984795872910366827275769951249443236209186829640545583972520830722655279593308234704057366355439127109741315758253681220341689523181804335579965056014254435361224722619338083026399142636990523949450235088690152440721708624243159844508573196055359019068704255392406648811687094525515858667980130877627343935542725759135568085794451167341583596157458875469496944134912180324977227822513714755688830098835673514460213090208964597518859314646080682796584553933552900107095890489543884212295944250167493768446085249263103496281395042713369834310371727851291312376120444740956875447090743476161473284202164573892033332001722237727852431428282353162998547995969736723445425700198149256680252987191374783898351068892200672054876002295398158425024061093571589585056516504964559440957176785722639928008376131620186101651354911540366291811837042776552369481415002696992258162559863622905567965470207715038775391625587655766015736049365572859874599574798508464770475855996780158563162672379163205653879668588486019712113306749526594485753493267368769065017364975444425663205848630487780878530418511089993885968764204313597939238644440920505945594834525407832347439985845931385600945353637013496231569853175422562567568568747031148974259258340502432575269503588381549269146161449022818936937981527346258945388961353702111175232843405183535845451742453638935799969142964751470839242392560147769157682879824097020856419586770579057114291345404321200929701547399749806791964045448067144927685087109390189287430350236809187227671562255683973429363930212683375385304774999757670838701015527177543232671525651911726493280892131654873655145434725869031935998257617970944854485273465213849257460906563859096794796366219396220384958344193362962932571504419089476358185736281552554509778985198800837737254984826808101321360706018118987965955219315686329763614537359478630892308283516462735672541389593735529004741231164110124965823005498055057117136096040682938811219106945975376368176270525493900851456438158544650622086533095361585673048399776269073219266715077214291132341790757244780543920571904176098584808883018124091352814851456249728536695635464909619256472137452951776362162082250976452463096064110373767065771184596152096205267266534399450020881558480600863403291155745499129753838618021834337786104178736023503458481166809673338246464459537232683606941880516565321421434589445171932622669798207302581779732105824048068459436421789457089470901893747520512914620673260035124605546631579559722763113454740961847770475154153285773083805627049599182500019577469423520366377061023530935273503341779401594955201653495231688810216897290379737116747484306576621954193195923373764720491648728386763242265762865939963088302125640099546770482234600366598523441275944509229440586535061454850824081352701148035557880426274578092833016221327655363565388195147791186909822705829658513258907849612762748436147854438136499286139378580024701852835003279905708758654505779985139771748531810621665242055583326030222650495880752423792299387533965045200396899666451421942756310223938328961397271739796994114521608753917109532433567025995411956975862277045465446474511898298105506074288975732537151280197505935162807914491207948806162153467868093120578871957615964696745166741249332340480380436098047662949494565551194710411052243693760614492090022257538241623414738381180568310281521605733340424893452856694107466481672359403899544297139433083181289079515508001565883542782578417441104837376343174039568269396156972389108569675980731071128111785187281665857491493843343004578882034257604292411232622994390846498813546201304500010405980797027409199806033117871255738161866611511266666876148343254926970456957185143309491885524428406934298608149085174350187662901089009196546509909011419248049486711874821652614289795750908065385630990772001407948516219485106015360416773792096790564752217143891404978568151318305588843790859304379456552692990251348754647774758225957704951559890183463098932862689391233994757646822704089829267497957304469467987331612877378077022430891874240747630056847489425019672733069762417418713146838767521870200027596257666261235599657985601688847849490671216302097162945732078027567434822372163559787845755056806722144546570344044865882161954301853540296565816692345308593340690286932083361022800021788743385803127251104277094373821135902466923910205189025748211370459526880773278284189320212366990977976791125858652331126843160658356119578590441449426322576667035664380262930942507986052506572504050395283956341680594346122088844869896708075484035234168696832747571014835522614864309162974962359931116568422601400221815084567823865611592457935153765761559670338600349252789334746438040192078344900374776705859489582738392016750817747313480694007064966154962125337513080701396240190182883502721132645832738680836753825169783918520406510307019897231389851855179839067667705008696452202172159789276547916999017764017602965150608131144228038680305867487912058255405065297897200334834963245084710119502192301284541256510748528728796495669678157167852409293122171903282437318529836844075739103642713268787319569158795695796297307112155475287231334305858788680940487987558469261667990680677965308999294215250163633918421923119005019993753392156026101812664866835579067512146796607470638159004533007927395859886663733425671847782833385744832258405907965629686985556439828918701832286821457105673731480204663933698458174701006226698601375407653642868558933647667310175179646506298471732367681959180389827984050258056127967118323860841567037275849178816088892997203630416430036918320062153534017531821117022514870176261621057995437094324334299642288473460350984974502480752712894880071145187947552501383162605504495573845438729612975857358623908814206176230988596266545618129818549347131932228656416216048761688890675990384334360989858432421455170426021263587006197134836760870258977824287533752314533820028409593415347079373038009015269613859675363153819324680415498052601171476091084399767208874089816448496700172821047509204350007018610811021681397463298858674993935057799723886601518305683644806038692835881841264589089275318427757937719962841959456366094853094261171758863675990488578540038625089836070028639888628645372663164257825820125250342362103222436678566661254722070399006166367186356425732337916924874745448155763033326406856160609277041768049179114836756258202672784900867714892604544888772396478734469312468802424861146629971003051962415024509771598078481989192393385262495374348871250844653708559152701066812113244157090910825437802599491461225909475408459176386377455423743989473906989993581809966171836570113965382374855955462778365830511038042484230373157992979103102227929253102966767749886388168781449775272133941465196454304048765142105554121075660005887620851580432407143278101147607857627308839598891407100670790100732430048316600053972568540018375440425852931496192513702301329659165893974405467449432864690294433075928367729363776676120378511995368310054507276396441176595771440360578821654329565593481166501169364486316630876236054697808004452525889115895988238603016894946844797806198903172269527729084157719852430578083139011849512901242150466203896765133389818615778120609922483242622287788779452956270047007929348649982094780364888175459426905843528119397629639128617589713976531770755254710766342667027708407967547927592035774692275157632333564568213623238135327385424891701217988451730955757076342402943980117386105179091302282391534589456200872692940362969319094719496616261045833355304036797112738931349894649136529314639856603701194733660588769002250854193634035454356804418716450029625111363945158238958971036131349124601395162971675754625449013466028203694470982166399960319431161656804065962928264176584823705481933301718842842203282737702259896185975594300553105112303395529313350576626316724844974146538500421672397602778237655684467998209083077426307740839450983013044834437866680803608659272842733265617665172698723652688595903796178712021613428483001665876353081040242915543362078083739106474077003117275802916182929880250728823954906652374776743818864924612378481279500868795141532975410280341319894596679398660767056892672858021608666711368843954456625975082399124044780652635412009829391400326729792205113927423571543315918260038336701816699338819011049146526371063759847240266221109749452017329483295368538789402663173007055991650661074427107830865307932374370738876137930671632158117535837843318156521934377464060490846785534174589467471107878923525598005634931133871251630125574812758269581353485754883063283627710440363154391277414269201547338023101833135343132508661763108984957629501278849935902346487098863147438128990997682340426392080545272705913997115983549745860317691173841328142847390665045115657003894180394325378445580392848330007963843006411379895712466569593472126539822582186749777056185087542494524810658375833939311239501239484826815996943417280685072305564520600132034799985391418464517473377248523147417439299572038330619658517009766015863119386292044252902693724042850611258115851929046124705078070716314028253496349518512498578646278322028552008811348875165718275048870698673248255714337710259386774054431455671851075599231924990830845371882169709532745230188000045468715160099991792028959746181422622814936067796102236461340072253315182496778611538516981132180145642083232113615924173453765928539130821558021773833816338953746238409513246066208805116713777992717733238692773822077653436050199314980059143884205324633674001193395727930850290188591466638515344298072403450549389193021741949625980441203394536210628584500345484690469632725004602169425640262535449819368591721498493528671704259164269631149864922461835323592719011387516791115864135952611624606936774020863843261578070923613312785456633499324636466904124279130021926694436758907981525072036020300318694255097696062224253805925816383753709819298103542007103622111837488482552658010195136052771213248242777616587649686703108950761597748545969649733415138624420043647494650289371591582492825014433509203385309720379562960134269858996827215600779009455242647852143348912465005168296230863144480003766596356014796777225918206918179926793252543728866060674052562878494175109752646086666334683715195278370269960818002164249640839364856769349733204517127070157356447289750809593171024907862319492756194757542332626087565549713376815492493870621679424151432789317643422047433023923516772525029268619110810757681188754166061830769437426740759133683057816692355632402196999039424032362920248608739443590443168077509782980911366411210452346859144577461760172242984983369239495301653037086164944008281162607211346425716645446731944510504643565891787115362931154304781978744775472720369719300934711583362064233106638879769509020985872429136416327464649093372941483424355296414632014516526198376246956793719754747251471165321461857740944796343946228457927531577064258828226121507602454076642433726645346633094516237069783019208588452261795671868423027209627018183977757661049605180627870479771172362381116896821714424460399665764001426075508406567033595768329442031733230944216985973323024712676573829989757224427158951900339084344471501912952608213273882241555317935544090663662469291839178558747357215922181373285628164020314657544102013591138882939864125057410492774082949638930683826529667168800260648395430456238616831720126941312714428217522355522777643699836771464150633750353218754682944969046146379091660712042435785814964316016415688741743900925140266605731894248520690832154509138325294809561166715478702567051922128424641424411611860250088044587711070398883140381455711967260652392211140905288926620536901262453083485746190028273874198624428942097930193804805536175539312902424904762367490205340078049648838936020273181555934501716853981959666737258556477515015840201920197628217100558571489380880269142817978105724416574014384017490583739154145717444026179665796309278800217480839734786744540530618257577197900077872012226274961624084607219493919165695184019936083936074098348915363979066441480414810217526810411632796222682613470036687430912730544998315664562854135984774460603082773184046009609360946027497814088681491453636436286215795592781920558770339528062711728312063275957360760948638741911375305191106873923012890237365884500162477513847055044926209017238004301349869930659782897075586121063980794972244462395279886706415985879388109431896154840561102396288464039304872508044174919902076009184547061508172678038789951273534272568294670028545984051778796831067668437480874490749916206509864069274943403981092247795759305695527675620301520709359649573095168932369884965931334313627135167082789447652839911652330273557913224969196536801101679773111284557411154622119121814924897374366594655349074308968918998952653941038520027738563077389796979602770609291866548980629271217578395256224927331560401519746848423247826272159152199154755005629210860586063876969024666820256433541722489183190455432004415855846475079095528579640179946434334635624311135069175748801916760544676952318414835469964034403160239291385232567737371395369429119694354630652973958449642381868592446748538772840859042288294436269840420848948866417813664142127621548930631522565383837880646524471910889189811964535223286612721264965578810868491851232742381293006120908776754243222111308034480907820399119760803749130899474969942096540845389844430066582705547964685899460009584740270387028224805824047379677743016307670037011902778184427147461627154024686954896170942380297825436389596493539345217572622202542639549482291974303299098109641429635123954811419382727297795192309796582566871761700131978254004843149652914068385592961907671069697737792917852394480804727113993438692931321434748407059996697818095156160150184334916732642441140743158725205486614042315043199612362041438634843468703815306363139975243710288592336775416560459204041405977941811481758270706667674250992735163778338237024382954759412147745038498441629061270414284542199370709839704469857800524670709512684271805186934373914602960670383433066620315134972168137903099908917265856634763857495016252607679816509653921722751427745080653478542670962033817103140619594525785022234587963050741164249824299464103443456558786848887909706437369557625215189174665562755352432057691532895475220162451014325067948183136440169635277117941481169070242472743684566536681892374491781513626334094654642538886957130014425418577731207755861040129915495705827105548873430949984525012945530302753916667184386726794650082477346686127787588883886326340611463064964985252012067380589223374157587424125077399120446952277335210108242392143827217607551585233012187765768112050444653174894993550660382657107560365826452245979597900153733679928542445515581670562802994857337489653701190500960967052379110307626235189730843695612482977837851349977767840741440967947895536928855451723919911221681189921403556945583004695515174232907868216093401336405451068141921617045217690595750611596021628905972372872818245155341741103618625646340284200590483078983586698504460532493529139589234043134202212232960270184785181065760564811838502700892380257010362197941420551446507945915721173840848747101623159417068109224781644570127517884847973345792417695259712620640270014707865098209592515282805890641625180682643049511963296357396179071163841561676292255252784207404571893768055469180802385643712864958009445271775274542620542974957557473019780377846073513041724473040468447196730943660136167714636579066870579315932438064925596753670700951928610868710107846956471580243581403647398802097502050462645752104508608587485251017862232221403130342640580953400979860938216306419844328359026574314300905808297897730465013274047211172441292729503575794362268623225675054261396749775568725556361674233937386819600083228179813541995163998196176593253511114166270321519649427926625809897530046490281535312056982197120152040157794512935577864707789839748922295110542954545691436980037880733458523276840302840215999537789825465339084497023555527196638315429937370872683914592914807195784331978481334617586165450168125701824743637135564342867627593689224333062311389954907422904391875300957569706082300169445070870481271332589852201632909214919133483364812721608425890786561394202001097400931637396762008961242044438329742234378933796101301020905709332249271793490113813044305320514742667568917114269856514500118359628656848029757789676944957796979579138694938051786594450230879752322980700817559133633516216672220151978065883746896607007438741012901145669841185715325777859343892435087696565732972962051074175625138291841477578929377006532321543324098161327257308121110162386819388381924714666046676323877454189692338516416033800051646303347856738496042532216936929188863999613980379701936061430984319733374548414890186373528950473084718519095304284988057161339611829770082717498473212190612939395291840255062466963830684346763796394811809036296959865289376739621096144017059178732657593222573795428341445062303627216214205055567725915181060096959284770300131237893751091126830098059872102052051609445544920578233361819600215503385483895643064809293479718335550109544335605032600007312844115801937788068158537918861746156966789303495242058149437546013720069977109271511630505177290675457324398429920419161229242654400167703759923605766285343618716039479970203276315701655218122114759516657781795185482963966909082226728917880290967416224102780543118657314579988935801450996709988736842469660581368478905315217581512549037220355672386214771886403036594949939701072709618652626821488597661336069740081028513043223968004414475945471724869107574221542072498629530770780558028412376812888667728173848126723392684185325247451360234015132101259169443456980140704038673922837565238658128086072131140987103579898631112202814990395697721758453753106920482922324036409021509696942066029349952991234972002238679692476802965844170729950206593701520000613039230995455640201271218632329256031501560950135477978765997988444406206095392660850241311601516037377974566895908653607435783916403919749387577687139022650783616124274755657085710408621179044956198712959464378390877930570445762209865180619816204783841357162919961468089587595432859226420381705231557520007450586838872590535854450757089162851539854141653112016607167546299821785271907830731116472564634472660902777398170445677383922119325597087615996676997028990053477277071045738805369217131465134503330262194617365280916787124975492049674073564992460052247615161969516088416646976372401839460007934748893308679914006569132959806536025171227888923427176505451425469637604673756862255402800571104147705386829809583010924681653978553997279926111124263765783282418025760708025127263737315524651149120915309198803791724549369966083033420633259994513069161796246948360633694803909060790820164928773840358086629232475446527057834898811581111467828402760909376438311431794210646304348432834667128252199250159074666115370832728950500735210666688230385312710669091876413252464191050177652350569252729179837972314532870593567224381082080433341191035417390176400956202066105555571657605291054723312514937228422572132654718009145423856015583113115657285746197931250888116618027073148231884157775467788395976756399482404599500075078421919414368744667306707160922507404763268378858210229785587897820907570650686719533032635454922716966962393851687571365422569219364643961115551530310854310193669447284792792012564037623288565666900238080984693413167191215912508633506958174516477421042369668244759352370548160003929554105401533408627486753459550619575192538886513616241832134707101590844987573332710068782823158867075542816033027265176056760906771718657634365697025420898744099649500588719528335117824763348040889862468130199741572903470418820199216992119697125394734258441749522652851894868086178253390942726522539844715484878660529573115334518523577205576108072270163353568322592580978852792709486718885324415248318721129919640356245991943238729456816208031628990667898802046895055630865786933690882459189145994606806134219976204403646325771716520824664382402568552271392920676524073809627895906994654147059130565515968499196120210283941312146283074875644570272424181924306019638582162055947977401953495995822139726404189351512000704330382278191665261453265760350279194471552362423390373007306371565994715663899136100521563602700823075149496758426951123499743847992450530070726848333753910332554821634226054823568667578886541909452862167465413322108724728049868421015972313473714493668958514859172009969711106651496387609039549897782251758653302291201905366801806628777570051082721506724235252675457300998718330161763500080861961386170065506871267252509246378039605870728554209444918710276152022703436351309671519434543796496155093095559909533511943919671291379685272570574482923894288913641729307933671047202688196501504252519604657754459295031062927504037864314629054976476922609666384369869881157518076344373087538201992116759997651021073512285254677870830171258099521791352861456884887403672576415076940234118459670493044491459001811675182350567971551732022163485861100787432169212443073292365277999150785413132246880338533933288721801461065602282417054320437239262399867222940093150044020177925187697160358888552506175423767416674595724076235070034268891300624669264659192844250388444170384373852968728554943816239506674661309783352633603617654426514239705573018288767208986838140188775702090899217527245904007537131572858540979283167214902914872237464714968119248727183956932187708480643558354488396505706798000862293407201414556990827424682452861451279736533448585693091818422949594821193258141773478176027962903609616213784056314208900640367279436297819555115893813290711296815583038190157230756456031519289003761606056213584668261583155719261921665715414939849477367454714631948595904063488588566568898867678315448652230744146653001510393190785602590704601876997507041910918391839266236466702120932412093033302233015380022793829543168283648452621570162675692597585799324290313748323837983231261846529970179751358276391902409020820779473757915611160178693115440938521424737700564956584376758523170910583294784093767074864574023903740968509556263287669383068510316989516644079837966895246694577886600583260975641907923530741770491012258170332736575797740750546569977389960803776438840605809917116328963431636917756957769825105222128396994933243403288142243507156169780725278683144327025727356340025625820171471154929361828772764251985135648552497396431649357726337999729001261161433710482403167686428219190547642535063885596852634214192814803877014446070559022085361566600843769289360150693111286617535974184114276211710632239645353370896979722678404175986031621624699922156950675447171733792362865467713901620954104558173757309528109687821486998535973086397264122069700992067596423299935786220703792954294022211930263440441531328450820298207612408677669335011923680331995581113382152504193903367999588213314305655119277927669759248673902141743452455089965938265375819214875200666075765473887757005493279397964634182490742955266357442212184392101428652224010433782604633223925835560841149257696814490907077756360164887090840619477407869243851028230910613127870361872853830255223369373083878499313795410191647557047646045829643231468145458136723444557404395476174292876125692913488803776229942017978621995180364122546043689766661607742305894187339228260593214347456381678755694700564120420303414915870494106584343299306439448342820717708393443218006730457822816309007518622749717413891846843812547913777199352807380012516751668963481557142915449545368498640687730994875497426389010266630335391123790541465914034669883478058943886440776313228405274776035151456444342581729595000008852151727744115105415730240706898939210630494158041095365347819655650408987763165215226528016199140265862406411976331319872704149748359551618610596418638520294135663726951224715859726800540567150622158256229965680682887963302538032424533229523113031976457608593473678015474776625163613114707518284463235793074716908070680956144155222366542710605612795214720551533290079439523614104348378074609473503906742318982401844022326539343520836671193806350279597666141066276897297532716636349149806441200572394275745772557607724524715625503717076002867659497862807287703799538435127018677552094536723923214035855606373458438200781237652972975578982678579331575381964371603961687645522174646423958411523126293716906652947960886125163732880551846421376067240229608773873016567372253324739859987171145658598345787290789968623840035756132791371423541576001102551129941867670667709420352788702324641695010380859323888669225700576574019939375094917630007686872568311445722268324068972675548688076820817499133161389623541421382339442899753534265905071312350096084266344973257282780363338321878493338720434665000587245711765696644412537697085461233146470388452458441007586716821068263896004162747766181926372657676351551597613411653807339703290213144676709439059818943284552402296962529082674577428617814539933495457395980702548400782388674952515289065916886548186093070006968568821591892796452847003191609805448626556637907189994270260865139026488628982627406913304111448861604886620471396618412293005947591775239505984700777249745528265417305048745038122140703622943276085529734576178630269293081181452698897977042407257315073722438922778464905118292710040479863101500711655476238013934437625529346766555313878985268416828183356949004444581483654759174296410541856956207628482096206018879806738288990303082700832130093376644964741198408843304645524619896284151493626772810702547399325581903207638821797270880225054769254386128811499886940360411189554169896635513370734660006490976915989740877047476915963070387355524375135946727166653827590113621309378878016741071039168141643756977769643717441079303793749758258086051881246376895264577720402558678015723709310539565928913539253897921483215051490245859196284042362738659909336513492582434385792525781714600594932434317264779746442924787912465406606562893958077673436201971927157964167321184918437807825549600839910166760096218681271518099181234300099455209429905489598819941919234480176245413948559651116254195946330402018012118212785932238599493685461985933061483562737812941032772380361480246811021873084292931347616881439786987313530986206850370185161099940067316900238680197613092170986658496031428037413645781276589819976527111265977825797264366987761785003915318132179286642533565470427372210412969029690946562586236626105749229338840463984823340067967679890782675246615769488450821117349114857437862784107608274271084088393103907575428279481973813859068579987627519256347411981517651071680639093559998950561407190090563876019136461247145916090849428441286892391035642423131828981470050603047843402197320819516437429275239941693580602406766123957656791983085049385328319068845665055268302292658936939728972608292369078951581160758091412239531805467842314366027875003065225156091703697811701458883689087531787003492855045924261681146601768345588490592652677681234396851202332315165858356204446325764634089969166806410855129270755316589817937820468097266075758423720817416280990187750439327361207527746870606385565994923316454262389952446777198113628627778952919149930939753836752713086877781882573551647322481574704389454432378086128077635570422192631956849496382616679571081448971099104173222345630240079247458774670019399722867599440762104971069364714336921729142955409151309878963985508681473209824953802753183061068325899001363895631568681780213531971834595368680519204332515993068304607129303623089783871010268625737910744610886052329983125476309241459219413456593446545710163666061971068158397529644998389823169523945316826304642045633071267749298225495300837725804909567303691956043321649010479438634472020069647818002401299815893139806438877378017021536401628516025114226508099677912687448806658574412913148452434766268964199278549021876474116456504130973198558738281208169282299393146780324159498522575905263248601672991258070070423454032954795434892525425308005318916415611073471928980269975526458073930042856271782926950168591414337136892945556275017970947987019608831232101454917977985994326908512378588659010079511392798206197917023365440386805976694652784046785306139474054992372867112459174638485943057858557063418203350769520807123027652517567042551945669517316296671770996195275230647753220183419568019035467034714339038200239957755103173488116536637185593357354408356730455751463441382644033003741129423857660862828441724610412976574723802860560804313379055883347686055898541463836071449417721114551650162460736435661816015127284268733849816537438430295573321657037970002554647698275375045507595854249562674782964776587354660112609730907814365656559114120682877060681408969420176979459755304809364708444005459479677776967628784439142786314199905452454741904579361211489239272406871162123860289418433610470620878970615345801197278857933930908193084844938173078591870117995494184103560021753489487409728664358225183034584209522181164118015012703686675488002221393646528272526281070855601238501003049514984942722210614047522271602872977079196097959436134723063194702827368595390355010816048817129727374157724349647919197135957167022215438885491738770046899321249081217174499041672225913693426809931138995518588140304848044840764134412703919654726284077111674493510378676831145438794066611401946739473859599049633814528235687734682577109113686722679848203473523071716399042768862950229571333687360715329009313619812903978657672024836871534655621737789714601967439336651967652380494473622747126317331903127395018623865855452071633433425491195849460793780420181436680050816171296149385919037694451437802567964626579344169962164175435492452811559881918079187658114549035099073117262401869899850024786094087222599585832825332554906214836329112373182427625856822730902252211376187270360521267860037246834204572158992400410052106838728814857208881131284260386949447899803831786777013936011880648924237030183381503121956052256612295104131020600957213672217341929786097840764762506975632580056551455117119544497891491381921615680098138621451519910079718468515250690155095212313435696061516869125281422945207466217221241301188667118640268254942527046459804849429896242396605092606347631670597693734637175519361019707846336163592150103077479222946078195984560567081022968920069186495322584452874485569960373682812969830510534197039292497888683649320245613290773455321200634672638403307606284581696658673378299927572929530764488201816618248555148430519919933682274609272157303082328144218962356349086804214590393811482713123615978822125154544171758362468415985916639659983546304615234857436589466709735323274534362175909135123285308136024176514804215270477087673740250208299980250496039797072841216281816198191345296127208734703006787319292654549233807890043194150478636214607112895534244347814035009727102829222074457464106659380093676630746283415326639653211850514495175191635096611196353202849787877609178350427213061714412672450331027580560797520537729817272721569259273440891009609170936396844171317406892498811727670898378978781426899649992876408779811753547636183480496393172195945629034940469300443291438018166166763675534049938670846071618482133288451073207117143993211735837145888179706563155656045735234588257302252810465816222778317595059523847206375034447875943019389657796341576562009946544978613209835463208081845869751913270966182868333478908460308834436015746368672224046252710525659548399785120242503838678289237229392798855740657989728292984228619645378394722549428720742483253702555652362187420887407815173909625632523280313456103398484798998897353491694391580490039713404600759688436546406119618808156420587079735163160741661100083277506483204189294051729863978918480640383507974057482301073156199732884330235246771159550334480761199419848669042016983447732003668765950692221654556613138151193551114599775249948882429136539291936172810876471598420763645499751969584315245216528815231521788769646704126090962794888611179841736579853758625798681317233390298286749237055797745972539163723245520838952912157564765212732126491599604958978016187796996016521673998357792709103955276851632569511628237345484933766030661204768827964727640110217020212883917559368905591007621921972216906057832676682540724222807753232070660329517905121647697216890627228316987565094745569678352913612683818350087749452740835839572363238347784984209116045398348236237429559284723716808804820780703076374607708763772452148103150777296390487933903490931618652177301873726263509503306452647038838530662413303115430782240584475702354494580796631000476896101851338340124745745711762598081947209812775809540658459565709159575744136239284558242929893569461298416660110267520079386319838066669050091625765761707737667859778084017996905547262232843243149060213389968073516398597960359223052295454538622361151897034784480592507124958288347055416560503877039257455956416264431170335827195783909068300290154066634314042022239963446380286641638721418486720264259485885946250408706412767624577452313157046483932246912003692999875509071759533963675026986324555253117051229366348487441427579806523696761236383055283616103513822353496538589825315075822105738444601240293135426432603552344185885436798213488697179540011690785967201619764756341362238674403597201959549714522334915209079005211878318654366654946456052285732981147774655685266552338844710323215596302038856729266384552432915053896450397286515500298366495950388434589597088435020020568436252432322580649199946925829006711688899599469740269057895381433882897642578862746728339960565187039572433668097019075170194674569118085844905821190983950657932874970574512823150476854233581872627761266470833954339785023920476075385113592630901961625509168110639254504339365807308639238461790461629557526518640451026906824860690983180985800949873652675926433541263786093820717754102715696734582114183335938470848187302408165271933053587710958861703230727361912558450642752091561849377789992585748704881705334752320718500772268890034932701627954878166354786827491933857694124534725373572472480860040781190088575688868715452744226984196885568194807410350384524131505565193775983281977602778127824854765839165259155676072489671013266018762098596463748878600769016947250482522181545463730203948184533886028524436353669035167350633031154746665220605596659066246836042785196972549011738042643984943232425389837033240753204823151155656108639489133777346182822620466263408154457575002748638154044290305713791992538373973798849317571883608991091058696531389050062467856676986248983513851637565030640872672069313562632566934993291359201781217035284144852528365312187418291460567109753255320253810328902928422787901855967074291109798128023401326776345371926679214045438357771062997403163394598327000357883243963268854183195286506006810566623559445387345086441283926880275882272354432592181150186915267519789903326138696266935518645968455459214352692280637339340068115800418272938884694581505830425178182487569525909208281764138334835252103730481301303290740464536874451119103413373325019428753433336450508563736293867036604101573490833046485009350878019745991955510867189928086876807835234016961064857948379718731630022893397992445282522314743661301108403610080909236609305897081230042666949766223597022110719331353543087115345911184664414325922239146328151788065441693389709772699217302911800234244698493129622392417903653953286294202168983949695880976979062181927113784948955732119315680126752546527976380160666729681218402407483639343979775834154151643341613370173784064011870189712794915698089651478775864871043819442728833275643686836754557017018667055897266722699148254340604623884429399933513403732093402944981643085928961766415378340498660796100326904262636872371283973732340433413686418731100062603588458287104085660599175372589191044765441439674534259132776473740510088180430637334764452293658683723563690147428355572141836443871530430441104997290256586985166816797379213183827782999582831328447392141380502924254486557292088552260412678475580557337902737213025869639955931466199209925595546452321110824639209314816078338406405132446908277641313078374152570724607819352028866793874927972089567147843247106420306787096981279613491168903076822488814345123932229495178754713030737813354486477476704819037067633685849135922736902783308009813026048359579524627728121102577231878617499249164145003097877376017319765765726457770527003234481552160198936924828494297006687485872104717916204668613607383351620182972688825458500395393467852998257436150304276175774746235853779255131597191211010465513841139448694880224160246659539483638031363804558134196989754073857600449578833432441327578842299107474814400483346428320400521123440705072693390583471615086604858078941559503295922788020794759659723462931707988621374000217979582192660063150675832372156555104509624086738854582573669636106083028089805633115842745096632302201718301878088310675606051001056773837239916518684137420401354755460951777559084136252079918728709811928258031574921998246846494406139081673751300147995461895855652358436527431232657959565635889388247395424874528641837491912863074123553751811057220257159648076195575570753091134809731029581533483671940407177946395462373137499429606166370556824113083841625011686431556692025267645514626650326699250573176220692854386695845518767427914938911786992532863273252423961838950137181300277662793926466444964016201738468973565007832778114145610405836885652930053697956303844286444270800417892498999246239775332431515950932677148855131873395889003624426549695205995954238707278375723837424885739679377718108923849068252514831665295530016884957260090767187918653690235771468944903622170334991840917211358730815441166550777507353753873593684305132266959060878295427311976582613489316920438763263118107456295282468619961844679410842834847618954212936521988361998023605035920558283761806608864834232109174910600598965103678971968632631560518823810855131310916129234257350697985738520135860673752202193872202516109382250097594568137742288244546887568291869579850330688416169182603337364243785236618248303032179542142175459776037989599311554669938459322998879023445356454461593642199587052961277770884626056267731582946141345620293295517877514493958394297039702929073774089647433335951765883478406120575069065737386277785581594968738822737308580988792649227906314572985054539400109289226713402760185958779637041089890700473324223964888114279316370532376156967792677893358077921163637285926115517807084288158131598152496374701317900785216358066351059698438169878347664539941127498747890482238440176507812386306464250828077894482411151947483102738539341319802765959287290649030812242963611232268918759087248999376082744244752019253439839666249736252328003828641462492692831109345469655203863070630137284443321988576194332362238576539343306255046616918416488994561780503863301248867384125105141751488558260251723262593561679316394533805410836442345081682183643979756470639658884927378873770904990083542995385120229314133171743073001952611478310101215936544061845873142187311714030587855614074467133755091283326369806796135767460272718384973350361162111254206893026365640081498071004787416323408358386658106157135087507440103067753709354804042123894188612522720696295057115963349678517619525806829851427289862800933082100065369349415868648718152797854243136462182461011575024650861564231044273386197914449311522218388259389163052753686954624653292013646954050936831865374033178181576154917531466858867156381527011531207521785846683263191068313987107263011695294835466604185140733153446035967440539150145945111972398719310533899165777623764640493822352782226364369035141358335027017424424151291879497061202832103590325441190050684986532843671495914952753909241559386341300997989273173170095189408042842622231220038180851703382461775437161505329584821533802051082401996765154662404832443941064354369518334835201654070502623430852815431534504691402453614608123568753100183491002356919571218320555398950727744526549593319874903642430716996412337836070205370975279765542384319493618306630679831054356315912015981120257643460241100719817162721963252446263474562080316666861347844660453533898157315860744165364552605146665760873368635931105459144367956811557789447906588373199567654872905512300625983221456219118053447285042334336263164414335252994413059898160345374027454644691290563069168802463088798083142820510412133068399479196240411413623338612465912130892597170549144666695040407770533552010303623046079073950388838435296435870944783699130986283840177174893674961920923739476713446822855706861408946593562023301920983227793372533111837611650357976649935670341699959574322661756929109138161127578208050517696951060165457600579068736551473466533834954915479788243793905321793861769176739367016410397878657943894118864340273841450816193959749560953928005857955706487244586860957445245554262882816099672556953128123552904858140050402266393194262635162305945768862038285935309606907653943261108565209696647699214179840765376714615941922972428304593693645084482026641441306250343760023004316316625641586551970921641388078377980302082653033475564196345432043776863989810631824517005779797737802619443270775362330949967533298246631245186639731536607659437873942589876990873797797115065892052118181985725690245776156744159815972978537447575632794646002662856429295967274642939298867748625095416686299971063752726423970913681433813979128799725490107113729672869599291330275406470864985795488425561541685652267626040563580400343765690840538167160670926139775289114018736092509748293244271976089414005645599442672609556053656390424829832238659057809420501829437627041285361413123259231348007230647332149654432555666326098393379469478212815863638392430923478112022540900204946544073047868318945654444796633703552784769902462800301499991571291088221511245673011014644288164984021470100254140489926765397574447023339831387895667524367447372998005802417582589498157219963051925052159822331047931618040205984549464856494863714370546598270580397214391986690055194683584514560159461332552229150036038103001107187901999819553471471114914258417039145494638126752841877195218111841067106625979141759599751957962169604985542649409894753951316286211267673685386871929005396075062882393517364126235872208046407155937384291200121484555793127679112934453499820853536067339537180973623765700345870190607743853309689764685546748643619066250971109383876955090307381876161661467365662633181187913755367406151827295488756409423216009409032423818999406251824202574914162681629733049940094680257817895899286846740650635048013509965198607024713826479153917498456926885500910967464209657553163781398204299020652287773618308702186969405899940183062375377739112412632942367793430756882799693760051905298998164380764040040351912092457021407970970958114334238244797570107063597522597587004932589253290518001419747122847686308494600732074227906055481287372175468765470358542407988274671474195713049647506659522785370495084389377034629305255971032344431864031143743996751654822478259599428596737810051639372962314172496130418702987681526192222359813979551771098797904397009040078645237634528961755679664880247527751039310098979252457270762497145856633942787359346544736297686826241778982086411119337251377150692979024909441103046789302858044439429636868433708186181667965523064852823893732500654833201337625694054261605049323427782336577641857358754768926607330523717115760044351103200649559671952539449515261217672790827876337993277156643220524911734627755434541662275274885097433753904762944594057161901270188026939759236804180938399225018741374687787617582805484401566008353374205401720661378449057389479259862663241908560530055012941395876235867047983715175701113506703918252411354504646019354254483840406230104898918833697067859297672528831233883710789186283868500069590511904646332245388589580313668436408562470250005514393603674681412931590849874576229356614743264262599890434055172119764596782110433280602126441702592106140524037315030871698293318867637521180895091484657333889630101507372857646761200324279697458980928658287967316542734403365003690804423313545915769046474543183068304139521703399775562026654835334664276074003904333319347340895820885139084431676517519767553670578773522628729394529710598042519143555053419314596352710238080036613601135325887083142339496711310617529216134953749415592955354196357729236346394338941788989646287270517189647116063005576132193394926172530726816065704333033371745924084378044578537598481055773531824302728524039918827821893165365130027933490045695199572812956381431883627734774599033926258600777370936922802831591738397019849382710734479453250434618651795802280113045224224943312166872435967519197584646507695576990803757016860303459400162030238061065945043226766662797115276391963715200792663020091149442190301696807598998619526541914721989794250114136743093972539893294852687158116867509256098287048461518647086541041759471002914092854566736627442300996793988310394436501258298037516092941499646243454926388234914133170686627774418546153194521431000782798069004497231583770073171964497440381233266060840679411187787543763240653379555951835915370257643656483812886154022551065537525039643983636702875300215951119932740402518768271875081641566084201967413315387088318517090840372007508569046419279961845724917391375657130056214904868184760010979828104775611862876519691255412404201404165894218912765649978257958548427448422589345996921612421308347161526351341570440310198857132807558602047798230359641888759437279484293314548241999111100416610971413881551793892167490833906929566575141429625157266740935438396550279582941500547356420050707640761843731585496034362857977837381768937484513177133307636753801280184462280841480421216654452217329993008006106651095832158796155806839561686950456271676467485058205348521372984230417861578981371692738975828847506001851992182615371071141302451913346063066456627686092966254036662137144820869662237928049843383493252908751429929654935098605664064986306740284026546689318004628158172952658272064007163740635659651623109885265919253854509058436092210072363682151074712780153953415366852416846623607134420559505615148982179016446656852397854811990871720120071493034651512040559360919935707817508612966639343187217396699388724446663692717359090453296727139111377192581278031257955560681664003140115845047193389290388266655052378664171246893413504665963027054655094001477404413525491994314741552081698908354263685331580029640944706100274527674067165450897217128100439912321813704879112260133590656234287498399353980670591755284757959622777826815759816996942027069552035553287373762413988670434482149208544113923380139709591174142821630689628229980861221961638827780580914209225280121829498259754420003085846984440740060529279201010852381533631530277308811688814069102998383856704369928953093302160345928891778799730973208066678101450970766271091179830699731988398310703731829420037264898723363770128863900930764919146431114455368539592137389023171490737868324253609529088589226403230458622257014780881557236116533551723956173605469382406757180815308571716717257479795689468876930189420707551759992875596078506870391422168307974613533982344750382305586134272205924677816905707620491083310266822669082050278639548043600325260515521543409632813836503027997472371268298954520006684012593188340346066245375122542285850746627716974590177865722736522377340120432735452089501069365492468009022635118141214480338695607592664682437728242918448481591847170557431412049966957637147042906269822506155078563556524196094374303894326471069006536216801540342037738740597412140361999694934170420013641830744961664231643635314102393575250403730804121611022454644059549780743530822671061262517348743896101956623226498293753596626145734326949810663718654617625908500857227349002453524649417086369435271228119170419214032217505425580428012988406010594520658105091845477989161249015963746979304286119476424821686038554892194254908844884140898900755700198923513186701048187869168336213995478187460274225233179943716001615792951439948579684404379297191083911539332611645738173896781224987527109059777874312982321151792660413251618962902620755205178701778585790620792518868370281681181055950201170946846718052817879456820189571142024759261437106856002152590375231660326512036466123656298283320386595104377125317626670021411643898871266535383356740253482753468244035674715309682264107015874942847325357667414061908108193454890491980175441687148399812961191746742609021961238786905998724400015722100103978760245622096467138940422561142816464813735556081609249813465924604722941317611176548410756186478366043290703281348085185929682197895306047942898205526552050740274716431266385454525851725500999079693065648076329901870308328194249579699027849905067799262543818592539305447891885692163208802249556728892816824239835635853517345881327437970770184186688413040625891076343938033995994469202236075437611257676054069723453272676996224384647443434941957207261230584382701225431154181144909957708976792546269004116024064003025864209264227270137197259171978271269227938854784202139256424410709549593106632953055222158838821031647370613318595811814324379391502475200272932722196003363535920711164401468038241182734174589311327845241659520048572938747541514030456534378328944102904934731890194158301929169887428194561133665302351934186117431289096259036139203774348871318584690030055019266273449722391979292821843294146599702573705323334392935640550379454817422351892821007493979650188427181195289033478883449025501065945029640111003301744954650530151792284025175516506786174746051493887701044897579804071949510497426026425082322619736583550802886992563332817641647656757001963832896647879294820443596819541478711082253771909040331407990520543934158192203076263513265079897210529812753284032981126387605522060521199281328267038913472085115458512629520290846053132050663544245837754080978839326139196151145975807266133540484281804961263512953108341374061526497829404430289701149904451489117375008543866482091717239405866336775096059266047772683229986239480657941736356845996415673682082861730922874618302267079642979393164609990699385442017525379710636118300234001040098797684523311110938685254903609408479921717910085220589750708703713065676035384601038259303604649114059361309903679967525984377982657786354401705303645755026306011529019750933857549369108832013240994812919054961628741433937339478880864251720765151553688835817204138068792858614781753233127811759873227643164429546983615435118451700098828102910448161340124817222254961996902417397550797923233420272730967456221227656235473019082445875145489843961256237258194481731155048106704500826458066268717233824210369549483259978172368840987699035338742499704217064637690095284123319434367279490015713092421795508549641052414366161548261371120779326034230713426598274718919400979748056793913822058442195069287628583285499572538043889269223460806744094128944985996344235664518301736270076453818760686090015082350194581557099043492588678251427167259624925078525911484317590644738743150588162210701414855583549664529579662523375721595431828607643035223083315229387791067832611832543627251145287980106116862857989852737240656655823829131734703444487199208541939896135396801174097552541307123605762312672890009081974169232450042330470243495878222158015314703698960122452048664417712370546667169060343112246883031355055351714081179430866846481891754969312101029709357807877949851527728828555832852306560052549055057157039160825633958264375103928409735698327411760468646247498508242885989832858323575712989908710746858723937674330475022881539602254511938824967433658087002421249316437084273381430656293955760394988775299512056579490749026625050369372397881333140212270114453246915113288272977708236340188950560627664458304928610239535207382328632599061009988703787900136678311633861514643070267728364477900598158026391717498986894918355359134794564233114083965708186762410413164024794797996366456975002250707357209299598738265117364960134534417682093145128486571954050298589759142149273026547778998972241518627551798771647858416879156187280435229046617072481436436491478075905192527989836973415843479637206260626361564799722603984635124540105274710448503713033446555406556693081256416204132591210196503299694820698499502896308236365112091591634139346623674743728529304824694947342081610228893583516912960599552733121992487486079886071910449184655096121995564413849499691811566501809767554053998952901517155054482692563142575637431711167832760173439509796507666709591009386542736625726074731449569265366666306599824850043327862939169425132585625776926821070794570931033402947675312703559252122673472582762017910986723619086815527881443499876791898086935612598952781897049368608424880103382960039632677803355331366183080548668489393015130545912866338059199489910874868791963181069853693939451480472111316725238970744686124448747670701292159794573965917971945689813286504716442967429681069969232022368827043645648999853452879424662895289174551379694085255004106707522279707714316765590989247477065479558510198309654262300137698708202881921738624942694103623649795547410428565915607551690161601899249377397463598880151161405198832831955457855123998508515901617247349519777184807844528451855129815290453166012508097418974514482885913181423677476958912565226099167826847686482143082775965170842356123758813066626649088376450178317299694117021164024045177326885654818744730130697746700777209889949301136851087924435507884637226122564953048092176592275512682683994244370582096707602003627630503773120614526294078502413603255945608759068157892181070113677778672157609262910012603828796101709374046459576330268998423426557715767301120683817423594905285967277752209264561466518626816724596440455899946751387958938937293748874872478330377327301402605126369575080796719820763665794058861700976457679001807056544246227496154810855806508619736472439555352192404418000781573121134535243821284776982422977314833487126731303449380159837193882054515684233826148990824042958487094533368262406513587656137414582112037883153576069707752731787192926384254393751331849259908586296350643711406636035033745757468978375558892798672850229449526830626695341167402246124046546467030705887591037606032378867665521531203302897715821434055733053138139844949697031958789830002152441072507787350585733181786244449622781617369034890546853841719091948984190535996313927479834284622995997012751247296496530047521431334776705650595238520701283487930685301501599093653249357975911482878221238592843092692315905344445399893213062543338895574438216926936829891633880586598686819496670775134802542882064547203199387928345783143450460831034935823390203941909485984500147576196528658885374771905958430513532868626191624522917845756213180963018891480921984600498292023870481400412381766981558643887560520688431732964904750549144835160138490016416651619168128273350330238690856398225606729922837380772478404577109999874822558641454122652139965408714901635697107600245942610370264419435534897025798865870973021900824451767420414536790963977889370951572944291917961447415118841186176264454575610548087306014264818967374601015767206058394608409558771306935695657293454884511032302422336449524233655755822135695059307872680591647382361910176519573222971587402206589909870792618306873165850886854916782981267567570873934411357894856994118601946332155764384093091637663632595147141575261897994324584487201991782987094044794710972717672221450391470108925195595767358393661973301366711983910694074632724835705958475356260572352545494877411945749575606626820606368218384624490889489186315759496022308963550730698684935201364478387498312326526453718339803031446125546443960286524003435329271347632296821330645630032940589116940271455348294247121991445309570626689672874401779058478372640057235871123565650891405184366422688919145305463831989153668304036491294804531209777453567736419451887921931078854745625456294582142748874115211106827019707889432005212643403466861632098515447835263132154606538361535185596563753506335192598410635521416513505627659681431351748671648446783188675658183534715906148804771598888023008017038873989287588779902509804912770331382597100859407540579910934121429070406864101369290448510226483475962562431289947936689340032520994619241681745321246453488977638624798999156404440510211751810465543910805597308994810454646711904458375759000181058888979278678792089016975050078546368413783462278606448705933999240516996720434868914019725679762672872104673966411733780643387521453315154758956376087162530285804133547592962974353721337788588856192251252596470520977784539930188227506915802859156334908841194943945295282902295596126323275002145966804135695238640588124130344393653033664130364854784798252395609422948467784870171571157957008074244341796007191082487156467686334390664842529051628568323675837502365779656289889767219464567142395501943046167871278604567817544260753739169060029931939041071889180839541389751127272775002213235068248808692479581152649961931671440212978989563715652852907040869543548214234361494965322223841071561350494801407463469712675101057528070669150644815095767202017147051245263725398918020157410278639585464791605635676394333374867426227735752331586841368848992353746754409239439325936607444289457096715975723698998573314873469563584840942644190089587466059597522903363522976601888983998355365941098748607839376132502304366904282477406619002570016605996953971742884628433699130551233119542827520881804495244676258529090697147370915516666570084837405483576877667738134910911747491854887421847220091936515533103261482156296640680002036689032330261866946311617354188850136896452352575427891308088760648785666656522072072075780522550863467047059410374332239343461744805348397859286277991128043235288971854814265287474068347860454715412724459943054611078632869309280726923317430319574139141556799038736590805393239277097389632867155629198124044874264319732942303599151973222868803677816600302681105871941385776058684591268881860190133064839377442015670988183594968214047421847482155924589471754209774353659274637543212250133438771615433175955113901948372739599299107991520721977927684211271260513159639593133663032360695450374535682202466568676094581975360579397208460596317563854695187674293400465159317100950087418334000444803749441291648307379362181187510923790191236756162532603410519839666933364544297090881976527589213165809856679799101779324560816325868708032488299706747985319589112578125630607567495270473818244458210353179528934656407193853113970542138031432295662685971533151803188626659961923733763699559276535081151548126624831376906409753642786317561505492310032489422117722230999663121309890520108159644603925682379499684060512999432002850050783865067152858719433197983597744615199348298110891849620773041162788706228809030116616859982661186357147053024679474779936283319977979854101900888192688375310626403479257143570758797688538011199994949490837300490737745057568952354318926354156878605717991421559084167945270934021550694975953767814022757079010073270160633170527572771474132850155145303330108392996407490360577095060903896137714964300922630786550681803937911429549454753038184548955920274641898065885784528474998338017806366124077735033495487594760378718566912860522828442317835791062308226564069789154138402120433197648194866066573216740720292992601511495454985990077397326330638219297955149292843835834282849235489579027724515390930233958013852816949520938749536399101319295638297646341802382561765436938720559497616707264412336453645013196141047704038663354000743532906011780050854760127043042842779507064210120132513760093346280042555952797666769342838337285686039351173146777406672188768171538003964088726865826347038575148083273248178040879902829122948599857759263121140346490563494949914532199258386395901677371681034930399911220546607052945922626680830720971778884987454827389803513189748876137851548302567262781573838663177973756068139680574235559253421742354313223341050173688386198330553715627366331174229565650452616601393398023377664017668415731009044085715549708412834230985523622258156268231887603811626393072030018081040356688035030407187929222075773893484505063198022482754120816169928406139635989403630300219049456375013210059526907316048863400204205763110517107499792583894392576139694146313113027035467322794224944208257522219807272962184837056083068520191783098355263737373094829993662059998203854963386694935468051574561444410367823169722333121930159224666959791552205860390946617237646032992866775451527406830491639781292026844872067664915225888230537788314719945367512835188272148865639327670109090194728383606006291784217987972760611240509135652518959101559463605758914784333572195173642566938677606622936598205318256096352311310823192545831583739000161446424268600770313348392647194944180350402488917023120111832978391888416441813195843606253360109167417145994007187255279411308202923970716174062124155765486281576879127923791210277749483385256811406534113456828973924001167231401228174192342113660055029164243105723903821134339852357693576093201406232439327163793076380334741760056714747779856260259909468990697764282216744524189892123855831037588030209736146109203502719523248157581214450507091963034997433730306217681118506252115272412071594024917500111839604649384457983937944180280090148000078181846703963510844711762089179071872665902233322111746798332700991258092210923843102118404259389605001121063427198962696618609415788482837733689972230554955533076514363711675349602650447723054469505380432689338417742202751998629957805890155722044680468932023704525264891171422311359265289670102824989014985441263458918179921076249071209373972948127790882465905523686921869506872285700571737190257918683183678012375460066206258851141495057648162315975780514390416214440547033938454907376555029346515141040447889326807321563111506582223626488878144071796673322736993036617035524162258686122874692194028294376554754042306484784056953225935190696912192151666303966352309139483345964893677781784873414401632887116253873119528896949142859770802983874607514954762203918371242593215970664410871406963229521708309848832140916101132338340328517615465770830100184849564079530452451701585384948078005076128977147315466335029562775909144886566010751628660778808157331610395932238043680456600452317324894690589906039440458238961075709766080933817799190513311311707604687637508841931155588266836008741652168954670976356689647383777382359323052287142022984781549586564599356434548589806649840598328841034341264184326408406585101174036280453366375470465920359652079839284344573756500389459488171437604991984939529831738072711632304335878030731739304983072570329758503567996265781968437632179625552698912828386208680643646779127765897362117909999899553547782046012080960049917167773175670899483011467192209923308833400311900799951762949658750466949696003103225902584847631396116299647607397501491646012633761660171797453069219903231843787569983013436212889166682653296416341940368687486010948878390060162820135531846131486104366303599662070238436678271086844452855915990053582936935373397430069488877651785356278072813241405430550255835196390164263020808588203486621335212787844818678314113955428297673616629982933671050157444592170833766684615646942780326181119754281423448474513936081835118310599849055401654425997371005568092082232487156184350668341309315468726260302406006696419205175579347321529163621923945100714352435051289316823517605646710818962791547115392756620649095564404698258208713315008457144986983897427981018624269972555525664003281031185996280064454553306907391647667344643547978388913541701589389893614429864672364870676916152666869689722151276680087899774450217111237229895820958949413394993909747138302558073342957776194333668804701678396506352204866698186824070464303482505855262027114506805170882529352658857962581871080289668054903396553048033716531909627523163533339123290373137537296150766456724284928231870488214310225166130002580187064562862582911459505377461846839572686998319836135843131125792230339419083662301811789665603498336963443693022009336319806562086903580600168809243994255804645197657004481158325227038840620078858369032500629039424300970793792003882156040181016852525177657336813519257774308858148230333753478920356122605391036571568882320632226768476336591094346908104113119512475904832657383866903633355666085758785427554820490039100455189784176483297053093542221680770691209297063184042008583017078523204125805958028307389527106972301223823041657225365374567151329157107874599750986274864652989296007518844340834602688131919025814994112803693037988883909276281383803779982183402857271877218066186936503610310315478590485037853730236576864215731418009488318932749834186223839399429214136084239447863083044948830718663513689674946758720970942342950546995943932358047131735058044241719317635350790073684805734096567480495991794403781967158939033555123364322044844449986370376907337365231670237323083233684580476839881542499279728249549798488268418361735795700393355615258783573087957850445087699827161035007233531543820760595619052090647247436993477945873168726357292843404950111171954902177690074146833505382215179536625354706154046281111613755771458060215464168295795491495375220338341956760489912104347577653984164873675276338489102834050433924321154070052122976606330815929827985023648422340435455726231181369693638099801659498781132616290404670482587590765910835039346781368823278609699387942076885475327296905359003157892613051680757162163655078486471053539193083278464680369816940937927787053459641244265516806551562233946503330673882064982933666099851383483934859128189166812003147329113634040291000460481134239871843769962026412257522558316370031879876636705894174799808596703722092851710616679218566385467452694762403060155415806821433112331601555886701100703061008733580010672899465939433973807202081176887389030476978726590840624993123362644969503897884663125893849509018864853539884190612896136458378758058742310133578888852533927555677959302788782152236167383429312745219175357339258060391281133482435519193296470513104451197727387803512839557158569558693068902774519958417031698241594067834270737989124786403193487891161080413493213322551444459314057725298639424358096527865119846702323840958023331000837983713506550802298746316699585425733217920440174932366592341718537684725039133218953061297680335004789444893792191695046763973307588232334296301532235686754958205414822166325545621637598236298798794229834044226617795124075424643324479161499535082823100924058637933092908843940584043585721838465178788525992307670375845193047480829127180784079428202725985042013787537256958049068970514478026640149208711662780959748945492405642067319076981554339185275455234321696657108934590876886822069544435759593971558983504550117138609204169896769712351380135436868882579172680711498987068500482906114892641113038581125359843792744899397751875519718034875790826992288876940667693779436243662462830808506867462942542774999661347762727493934652771285236505744317797325593295684242354305345588629430772765781570691038725023825048072245018974544010362063535840330900370251884394765529186120865640038485817949129112051537779953069019075639142851364424580537638098474212274475010597599307185025731176824632672631229649223451034741145595834972101544367976495764394123404798295261289659145570766242851808310164517856552177898642771255413090770807348988064559605044680036709083415839330619462542102830091905471661497878118368098936581547813004192497456248642489237974424008239578178779848353252285310892291046463047195682923651156616221096001046613447207842190955197548457994421596940294883506359008334403823549310759754058673422544628238948489205451908693912747677476143442790860853205687546349986042285356608736805991854308301344153125161180897326465027225391766607152401135405105081564609339800096871610746506559912376741240578556883750912788193598816390397552684392388152289835096831744670870245341630416018897327297807465475129016180254904763992545993477551989679323186276197734094376419417598302048321935200650566529416398916841369928272417152148244167935317601715658815093119552021247117808596378052390342536480345474313039907629613538075920020672463255447483303021509938336930860297817655003013492750565002025403794075104518472449010026757962386932723430345251198437237626479862056839349784623843722366889705137159362212940352437915128162054120260250507638020512409204556761053078623501191604663749029911528522148946519766759331828039619767379979510986155504867068734270958075999859482512795069788203863526074568800503364444329936376420931929157484233220208526973856629337258344276947586347358529491305178904916636609149446563369907939097957591158462070897199306471017863901474776299562818002192651660885151831841078118911165633739022793780872825637787461333837655674407568890318180776460763937520842720971257780263463698591040994497491059099392502882840561558743956805713667008506472862251645709105588248936864685037927902077392675027403395164545300394854134010166733552778673364661535750320264397490829063154873749900207429104580606073486573687930736302899616172840296532960545129548389259745780258168928799820231223269032620089590930504023369458498830633684915721821243711050496344208311884089913195344372270572878131836829321759221081611901226938992238923532528234437297767095712227095149428882956437092375591272707605863135866604999675912652038440592458097403214276976897634394004360700021579444841176759685701653163992383965199431032830290585334526879434957377613447241471672898980351258772818192381165374384476631533761819380645164513664048644976108370672984759690373457859370227974010456742891930303925031872821260955078115042439817389337092903372606632043270533489301155707114963507333326896219582078540042744579983359362600166904278678963870279332918533041408558227500306437870992987196488484681443993265348167140824353497632388236227246042514728820946137520190575431548981606857769274204035331644834395520412619956420443705998053627018858920899491223707019402119165734453864588836681509242498839439522207749976983838251861818416350701990234208415321495482275961628088701888078039145608466749726020381330137101784135513536620988317613015239676279941854551684059202335844701407489696663679584779427645504840816945015439113313883520831790435481128701783722238588248440277864764782348502335065484491925154586333141264503289692933726803560566677153521192996969165139805038271294784268454135364942063282969381493671118961376007601099851498292906539659663904296268117571177694454563067433358164458859674899386819649853288884701975349873977743910938853027012839283570071763939705468345541194904102116716449068629257048910046626620146882133671640160400086760216553696692038316050604702848624463636070858270996051096743529206762907859445786823711027004842985043685710782463459423380605404249673320037998551676817427469969738906738101644925462866187204551660688974087675398271693281820722300180447594942853493990265785688304774075479713573504757584665733596825899938591473873654500995391778714742236576481038951314725797692372912551606013795471436921070961933936950370432645202271322117914720757475629831294576329799877811861467214817852985812255618801909028424949554188820828422897147810824130970340391600131797024763107392538421008424191393654033863808344033450805838500370082958140125308696849014042220042486319562562639232380468146581178791647541965827222686204771283667943006538571721438446086665895369300392538523893212860090610620588111870456033471183838768527672206659024437603680150378133875407828825035417533712046596627498616454087621774601210917086265453298189717956482791183381631912963584595582848989703285333906676320163770586193610429179517224920999690027573320701341196687320892827403358617497034632636283335563306434665975352940628475487907533678698583595126501048247530395764262693007726329236066580164566493807512760968130465901342915925143887400454033315026491398199015359989056315082263339990722222739089947634635868337793455730030254928727381042439652955919601017765147986447185025401619035939986701786890100320560218932854472113554889253839373950849964895305321164863806016455737621203846565715799564643709680922093629817344608309957772040005820930832769938839339934702994312650496520809400954393868445117193243368164936071886606624482011386849984524587439400546602715713626676483628737455027548288099204512321058482210776500693763358541030636834206384144190480088662878640462041045540006051560853402954446422777539364383119836972698135485507893237732862549837278600147332377426015180339204691814194583319386107389981743376630456948991765513397393322751065034823900132945585038488786075471297193635059042760610792324393806123746299795329669902320313881300599430404187984116176569179266709801364655489569488766828562715359699687764603914330220830161400664680394371371144337082598047851103373319199580872642497573944015005448408429726220548664065572915289251841004293803571622717962617080061021555034438434773609380871968212315475621470565444438585389243289477364227448830920494883851336982287251068894579840931105615913672135452398212516198296053763828465717674333636409513873730115282214126119503084463705244224470136343118798805448309921577053305595997958370818741444314000184189186991015464700478193354013241029948994705981105641782983149094414094174772769561864876321218882085735685798177163442843180839827494326987945880937526416952040161124306609496640359230964388538099854353430392766988320169647811132064750138170261028093636291297711148209955200094221388560613960153217344016355648231169443330010228142907530224985180968917937905690539236792625373940960267756973840857771511479587829316345192956905511244710491871565755005829059708814935635109508982874803149827373541835498601630579964731613797646407714608050439552225394395073032170119941824042957342015554999228158816430619199406530835537006494560900583789186792826353800876228654421525002985689944017861561718881756529698158255140645569012100070228368682798094557051886765958227328546789950626802246830477580977796778703833228625994016913719521135918958354250932618092580178628717026085471622585750251782233093311418630414046483403136735753890853941819401374392195201903508935111847461905792231081417937600183500386218198865217671259991095828770635786895688409732345108484111144463639539743611671382728720295460968959947380611963632865533325203171742985213353304736686651380502379652538272788495338131738455562385014028424095904922811296062628645765831866881967515168840493150286086309347530822129806570385425472806026459558842251237931042462989426224097656955510131110300236449943557927127236800342132171963727478792452795674518432415072139742376442001556614167864476808377079061657414689257707041214389733842894610713422777607724850396177960355336581329884134150129384379851017613701897875098283771787093148541428989598067692186043200844608338737806532458948179665196967291994719816452233548271149041208042291606382492259798854137933431641924944962409541172985060206653485221042051107243546800768989043983776622226823174746251995871207091496731344039726247499067059715263615387530729641634937610618455160537573620698550966913514767323024850187066520211101472901171703671493664361962335427254272733837115660637053889449812896861739698144202620691826941566364342854885549736115855040819919018853346440812362402739124466746947584016374996165180341774365821623699735669385107556825284993673838482466487135045896615903621536307927456093031028102362011147759982239159539247084859534469965665473274188279022130730328071321972506670655819780172494894942888265615530604441455731706426275649406981022000506799379954214060438997001691933826320910515867798632494688471453716005487813153639682315576629172836652545534121957732698059152489539997757156889742934253651623534743304150386526527223547567373838055171136358372566379611772436053126337770413514717072129092808071730718197335961902200128558563127247194273082882646670934963454745697952158598730924360554208076820976936229476679840234402885602585290511480658386914639510182768264209527430148553301288389322323757699504980122745773316051157200934752422063946653797163711360372253552242436461274283497135243052003737389389993380965231642493003781589358571179028420818524611568519000553699797707065168764816511430653035111535101477616427542985309516899405065135867199988526686637742138337103395323261268212102709454934946117060636418524713070666368675018191493334525357010005896660945838914469786832543635491812069189338838783973304879506722111868821604017550825587075967715677847288010856835413081622324760176698396511599356760348498599050745048620943146212679824288894590893615372143292783527716366445597508248459212641651792367151775469554427299969790550646109872987267652111293818689599774231290829876915558765180285774131607530836945205038836588201405732831345194329321349756999635061591111416094961989372215408467601381631977224712902237703138491154151490461110950361081525277839208427773640059287491606028257179224230358168361134790630066675515514047725390274314836941281170108843794786874697018806935721239551413853600170125029005907795555350007694365513911733147994916165452247365421015405755243761696197595376445360840572835521887408832118267979236942985512170908986818989605562616887910010993300162105403410684716847778505690928056455085162694570209745705828414125741345739117234297326725695565044022674887397787405363818728138439371749698618083351407657883165603758062629167778643057995289312915874662887246248851825513801799470064852916360344136811735703799827532986306795098028166974086991769542591920036276213009813906174932809223171356630086766808917103288282581173457428951566406540661608436394467315318633628346553337369413075685364807465912581838552759396638502113623514369736003170834965118999235542526199920894614781045196458858195235292194699081425273297709044224399737694517097842444739172073637674530597130049755952076712312214260643943207174835161829803107311624131942852821750373130187467103206398120543470510701998564135034381893402899585235602187726557383922656542273828647258729139245785949808677439162174388927710019373067861118758088473422774753187138876884236711994022001079992032049327169647094499324642674547093330243877834264348136151461108589350822573009451104225653904510573962536995592542919807888256435004838341586123708387973868626462674089693614239364548247052285649945772334902840505627663596857406849800716149617929630501290373781649500629130379758491678219873755953719267586186396455426766585799839328486731396989860980621546606973093133989129782789753791239469905162450599808126392686032456151744488598313597079555783931179858826270869564855187459112444772656799912487039154615267018471018459256021048716796445587091389653576351595416600733142734361308021612661068746895686972829611538148453413090471884509397857677861752380765204368421575079041184453674876176075014324619860826990033404725905708472985324560919179818534639751977475618251047033578711554490724508529951465381046017457912073547726949640665916531265594883462708978904458051028288243456365070506032944224684135623071621703190277568933270793649653934778999342967085481074280682162516109988785418332873477196368520295080073319803047028802176252406537325440395485177775545530505457723781066653422678380047454037404542031118866481266518150794009441933936307477074833711766178946375125939729185949074964560234910857227188941139074873322751275674270533382062412168717154681888261248140337601147103395140868062765558218028502621198208161245405633003168492752007720794338095907645839983147009246309441336518539745535946664401493344970408859291117407664190146471504817676884348095920468996106537345843765079861810407821673345707257696934067644684486021539181737432348999175229195503093715869056643542946971554963330144339775875799520726816624930251531879210851155008022186109609981067501481869726588112674946626367629599248752859086616741086345947869033688756280868498500556131048461501187692170545628322970869957061122163355175873835902768703288299911442950459836386724593367635146710829036064231809424287049014344565725292594396665771694169163624739745926810752123557982294125436340349810934798017197138530146856907916455787912324150247503116039489987338265624585832291859126613078427372488898867610213798053559969657501271955570587122396043175445014285008664004195860716171907004778533048355157316298112541816709683655693412749962605095794234821615803017230339735202946483714888659830279281754898361421911126815596198621752811918636625295843150821672113484719033642303914167762118687076168701189341444371220681536803419169784401052621933701562029950348823051777505553683582599309142675257522966671337165401900352124406182344850650471744495149894148933261853683008035843971482588453659155855795118708715404205073989640482173408945886116907833129099803569672023617351891813863848774749871908302036631472592772549961672968926677252783039866476534293048429777758013175344772149955012848378901267595298949408401821991316622789319448430522518687207497135615625656229685641429200730010264970838766483725974945340619423185675322431657551564364033779214313767771964474845043830973825941932672309446474913018505456833068362212759421891205664043499885288864083635523539718965318144387882669350732229161611131729782714346504786783107621180872870842017020875034814435553973786177176753994788697531047432230207150014652933833883655530048680700304833826142940514250334696242157836476232093617778782552958144529529914993918142217406314861393258160565570315405137139940517326143053196329185945653393907923129094941557227210010892817174145564836118012622705076663472622509646713494172194520374218719289570055941060053956041759415007517756718581048275754960512458681722362269129434550660889176745336583929221324814208844720909099281672634566459200428945430006797543646664985005076317543280212772644619143986596349543409931795385947220436720793502968620269239102109350269317553814858802146614097334767306949778294723580328255438275733663867202644012060834553725079889276298282193225660625069987139145975223002292055451763725621956172007437462244925074095181373386781677031914517032850594189093192934862241756521736650579384967100037450790202049968941858190879629757696925481659649790402579182521099210639944932212867264979166765308715558304207053622950468936003193269286157609390152216560925303517650482887118849868344632639172878335374870947640055814571209272311941494019349829354575815161764585824858507626781539069192295873700811506231561242829744142941669517865700147959478501097859684791297161551592900468767105667652799355305546923720873207153680440169469753094601289555915322059168304549753470751021950678005460945328159847302457073060609638156465517772392525861637662223201473043120860097824964760957526350739701426001585927449567792805996215720212516094582868057157313580313476483735040020830950381539704046446510897627916986103676370573468488570395288194604512508172428923829600212150280690816911826774853187416387792570602727521780076345590675312208360690132445143741682253561836079973568792238421043215163095546653548390718993518074704781479277755096641407009686970029401133137926242731539836446664242605206890268522244281007283723085531917131606025014866748592890760735322959181682894117114850297970465595671512303871573266224919910085631648647417572722464736173979853401738094133448813831667555817613954233999372866501544538863888629087872764350680365990939805504202169528429915972635849240172775348311435506400220959930018174529539629647046140114695492096365460000486238639185107584813534970679724461802179335111933712900773548429965528166528878985999481328693180589650190902582853046638932136401840875156727800452261842896495390071425478636405475914900275930364879355733649815964705594167952933633388803593846755461983807593393302285763446766832378938329709627564772756800863335135681455339135716115002830411735813678756095589242224510951508812651786072735966801203351214269861462504962723656886352152064154975579958710740916853000176415566089136175130857073767932343022777028906827749299900386719837769485087993633871592811931901011996352704543869875476916003602235452235715682403353460419986341332553452172668339080372819621328549525299873152635669806111812986409572136385419533168238340460163266070200512380441837092804144426901876079804948629637016591709279501841196254669190521669685253200269157415975786705134562231928598690246241327910987852922658717821489581116346517955617897414440940221477303592753192598608374161301698366060949422251307278045996066439415727012837428414858220464850199669398275684239369384353260953029725620695924478682082360945254849004108777461552103317883429368842026027665158431909550576163682886306977750509680315788742151180990503389184546301303719341747754104068890834499852944934097731078788459917018625540414369715508884065945336916722628369047325169632810904321757573446419256772348537005114083881748711181103137686174927642267552657038194797906714307459392554422607004012776471986201297673324478512227086193042417600258629582095488109160808383525027399108914578938544497437904717889047971067933397166728647856887776326371489056869454101425008738449315784624510311376836080844199354859867254511851587927546585309951378329884187480324077833023909216851271289224094301818620998062628245521387475094555145943306956450001962127763097607046465452777012173620335671655066566211224037218078775953440792727461434727062103010172992134384879645607560866825273151288366975135797132661804041269980631901025242672798271632414743952320287900458615619420789651905279860098796873560775266033958000984505763668208902953920966042675503974412019607795164074037996505785082757821290483073933620318558287927316247165957238093195892350241546672255665821715762494173975332393342464867308565119965831242121853887571599087619753739252038896740094221374242830475007061740019212663079533706256054362145147441279514432382053178060138430622443698689851594958464649805332966581895209465363078744258721410223242802884520157101293983212026600818660076622745603678736634735481015663566183778975363440101629519557529868314980786208188578538489225630028097950448099576833307345255680327566299361190100297171019283080337751353278477241181762942598866981681539918038720153119803265692406363503183219934197648499113069483751656168402920762271146114551806558298347196125607468733474288368095778368870390242049055392660007274723263976306797107061813929764719623508619853028285780758266531609089196726514176658574143109168851326986532659891249293298076875294929479868988588716107201552419858001495537764287440130366554926630069910294255102856604966945000836815563844624145789328668895299123158195426451809333816818981992283651108729929621971036658815891932732124248013578322072163527888593172508741927887307141208888441063922356959560363864132411821416342052405320497242971146254909534289588580530940608360585389998035581009606205808609605420536421143158292207242982928709911156734607539518956577246816727727931116504122428121184742561169252769132069004460351243631148428849441504275631595665670210729812722180937278441932779280788027390448654287919138213450757430326718867795013270946871170157692393647724245613516756884139459210940293226049367482063355768953568486228670797294976857489434451144138157825821986170754986117351076418617462273976006769733729840179835941470410486509145089066168288793390643792674764357722004621545186591377711509538908722510910366243373243834297296441144820574737879606833526417169963851502321581275069441692079703313825245455631233108093067977627102499228606355053912103741604085011910649967923013174773798599190858850915068119870322457564217721932894878513616165336723274680376478178025681787287234111827776091498388138355762112724479655022434789751898885977969068738116182856387399075980470277233417837761884800528374481652097214392332819581454613302140725174409735394371440181893552902057258110085010422447164820923324508414409615580679805060482152409512572076781090815851568512953010161369937976132460604327088369926136397478493105064046164218725702957912726173870094885253251865947734990547658309450214281706387464720543371447149505929849862271203091608403429440678954872612266364914747846247851908669767486114424807477044052102803568332052826713584309600766594598725822635455049157509164462351724082001990362047289941796998627088722288380737865210018713836230274152454811423689880147560059798663764270909433973500871277323690575833049753074662821139598126443771233277332376690186263635048213469357660897113561243423891281477649497936176838291751652272255960438974842633101503255380810353632544913874499155150074577432208502541535758627903251499219556101864378192903460458924433667112173125820291783521100904567926327577275666159541359793869755585034896975407770809016426642522765161303816206732212196264791706454917343700901690759618559286983180975015062790442366334833299616851877218892185359742454584917874578682086192694447748940348701863545565800232089747825664990025425660969786926894897693244897045729252053694943863417303555384801354015266766108536525336840093880658508516131734794674628620782156011710974687893581542167376858403965681271378847453081301354967984335209641248466231336374324212266527640798010191592215180762927018674417213415699775876238913136922591334301950766889870313377144873574402844322308371176475083471379072489031606030278854961067847525744547382247197154113709638712053235368409235246749682176528132832380727169094742905998466081277302803141051742973790439465703419887185365519398434955096800566282316998538917182921282777980393094702448214042613980673721509425925893766767431490801198159098425811700133610881706845087268046354485767823685778166921230726487429915928727724802481521496635080329356403091666839833196713300532877009212843168300604750875053082901152901521045483607150553903571461271159869570689374913491789279760064635702014227783301854620242715393665197079694278011423046763542509319531349048878800387697248284991182245985562731785618832813868492867941616221684318012285263060081630177280197115299855664747816476812163513695682254232387988846572871404812008575817413997094156562943012868891025505999531941191040891820885174553643273284456924785499600083180860671273846011830715019598620084590701614886733967170819595942171047923050619101920122607420634422150865225349568096902603947030962139832083632832940895171823498618212562667854568171872234463088576866042399297543827157878399267874598342810207687535571904512004534959532553586497678575541777981827963512928087357717619759847108906746302380273453444092352250711556160316945062586378571673692764579335153841411598919771359187545089830761180981056828793843926819731890998556682707177691998554923424422436894450973644225501504544788767087183268021611804213507612625047372492806222087605141921789589909890877844897272646153991339865876809283065672068313160412954899521697908395461466393833501735566852743843824347328779002992698594422978539385098045836081162376926318926247535212486024045177829450032926348117674299559119352180024080965551267618788350415020960818119895505781297830280969472768874069773739714387469850671528812949697091157620143988630426747926564581802988968140522517888412114825391585756018817675857776872875864030193417354561947377596510399466541810207883197178905124824417236824153668036238351371196336166906636290989075571753044320661092100591144175773331738402026747274687604422361615217139161644569473855471814835126225566601264311457727433555318914147524680797130574066919458720782687214047179978651936808015750124126211596095148446408296626641497908236082116971755313089886712276483729979250575478505501715370126096513339086951128294519793531567521486302837227844665728231723678108940330737776905939883400226356015029587544876941162043441918457348625403741647100778614136399495222283267778346468759453356349909200937672268361841440471490668616748990089184057996383316363252264986706185784816569409934434841490528414647277685774762194391756385285251065774202565379746511917239733140241960085002947859100050574761170580763996916638220552708877174490681791069301407245519974369404046445611606134676366010626139899492631625134531501622414663669447234773946264384500157086928082369379016833943968667225009905714710912185044236415703164062816781711296658586218355612326018217273764908968564647941773456897189085908348893928583128647462773688928692032344196278788282660030724431188346202789271783479113771023490505881711578288131116260710174808361326059589418483760012130863136037579574210083798852477788627181790316052627500875288769447220458016411431450055950120931038169195773004091070629654666922329941393347042629467195190791707726161023082307441588533516171939287153772137049328588076147044673275581748614799343003120226766138757032527289341595132293161162101011999409226814473875624527588904220992951402116339532020590391709169621455901363199683237179541427828549495399624354110542880399547927416090413586261536815729041555207383292020731379465991625821487857790416733098042414975901231249898142057343482529626320338327868227705040217692995930434622485073310016492063589345530682176382369961735133384048832912014484413462901415013829298295574065607956544216154185013277524826616052265696455453477797062313211214177157818490288881529700288733636161322432594428496793807595950985105090731182611347376374427076021618286723816734589171566146757486256573103563816884849615177250418218787776617750353269362348587495370162335912315684168153423118864981868017888076946498832526782342011501226223828740656100650057519181724488184474335842688064258247081887483721346410437480379060489056667225073966911708728201643683142813196747278991241834080920069535046818148532633478625502940527607943362714260763783187588524399173000622164754117945153321981608528868064395476396550000928503170512055290600093026352741008186855595141707749256459290311933773576426531504841309330740319692852021764101121922259820124577186482712241064290811656981132027293003523875450318241672134121538855772515061591490049456053395661326246979492721528050528201731538676535818566100942506451022364843088656017120350411569201313799373375460664857379448642888424893820206781463237184573844791050105078487358655316763679914123863250713904184609543536765262526242679475569534745608553657148183806551903265892022639013974973034893622101537826445760654321525163089967901556187979602945118022351406117363277451213585433416839908771350192828688922322942172355506177640522832200069565774512654087475069351948925256759881560081385834028346671385102581958508474130964827250284907090777741282669127090642866877055168451077831730812967985652121395887966595558526766202365263063986111194475484978220494424695158036422391231398946553124249091660195424874525380328553453254912030870334378306975936436195188572553944165382249345524881796952897965704206179651132112556000500830063429268960667526635013325448449789230402158008502231629216555028045835786613939875319362610059980198808961002914080443242366791060361511145765035312441160707342337072889805706203755655351763160194247079616419594885196281286968440808629378321947428656097726907747747173241890518291359438323023075910735097243637722926392858602477958603943390456095879784910330021553987024123216116958925554726670407090425861123890424150090251414674334134008648512169438868915548241495521998387605555940745124014659808125739268899763538941719583031521506545373819985268789994472439614832739948768390551739398275108282129349407693752021821227621649103935846333947648113578550998033478796448414957182513366157415908178168282363131772157073043700251025674854575988126046656332245664391540841012693912867651274999048579711532336634386590972397587751391253290581459302656437744151905795102777833883227569814574832850135120371362336112492455792103282756574475768321364399693570847191571886850211621693332273779208817907545705239048900098720944374373855658499973762741899921677764857356116079848156265899779669028729509323450332684305270946446346028334065092548100116330771679455087501948076031960380186911094565682418764685437470387541200257163610133544111456459828316047394659822101338408528674845052850021860399772268466596895853214506929211370942648180823319780584551883572422666038766311997118758337669831951295772253735533600869852027565785953331761622383120180525512992590452094947946931944251064414499789617778451531135407957965521486692358479509595260603106136928950245025858039420266857976507234166086161234555331856169546471748798195954376171258152814994040961365134684477725850151269803778711438351698467690273084395493465627252332490167834244477228633176111259881840122895990618936300928233834537361845868981013443289276055355220470728399905204673996003735510990904560071148905355440045643236776939151711714414852461644264582493571236296035389240796104947570981512713177318477925745421443119921232188995354310266115296426253753550336292192449773252140078189347097608792885228544225229256107736508082144669049032638164388803737538450126424663140140566216152855081900356788120710418876014447276950798148325620299853005073453428867114138444116603798059582107711594837911360838653613819167215926501965087738154705441503703465944116300223524170413465650719110755159860925140611398852776707723627542055543070390332237576971732466694937813562233400956405966733743357684269871362151890164326386253517441444910324717069986937840753025449873462501774097492135773564536805269388623931058495274878805552282640411963641603478322191570461579836915439677537860202487633779550811375340226595506688282049661230719950807037482652761134749912443183074289677620265938601274060108398027978485467853314533556456451352897689630787466583312034446515074900116361082579715414442056223887942678420883185694079986116736824687985223774397351968490143922970788487171342576043052974974520474428684361831658388129499064312397863271718533418475398873102989837109187389119937585398647318221536031518995691278104980968331728033058456556840660060169231402065729577330430563899853515402773721676382847348577123422497188285426503290276230236099079626114677383878281570678156617781248947494086695759438484819665953120915080855076598197733890599335620007765372824494968854560598856975897962448359444393987195505526347396516016515211444239010598659448244512303209884099064082423777283303387893304529939376255583526239250859688678253480441009987329415199459178869148944117348828865111450080667537670418022938496770716801331536176737175517750424818162214099807782966704294471215954510955125080654844487289901030211711901645374193195145234780069332254371291636443697021455979029734861112648915489585400926138025380586354857325412328923608310736167607276969658433854675171248288543930261166235472799447730210307605632523580993187539281388743534024796592602110520415406588266629452870185757124345745730088113967610655715768472363519016819070182112831343370420180069816403702796324583447089997202025298385097926656284415230219591221613723862466759161653615988997945011519638824399897387233275961026832341406023421484080180952052106842714452379299231925395817392306871426626672652359803646688010064160513472179495405171184371264865202923430260312254800501773303684795936554482298311190578445580508213894074841276482089637240159993747873149051141557810958986868542563379392027279843646735828276947401822028033695598853138934262439851630452221972698787705723312037188603128928825736187343793346316408687129944447569557854951671364267493913913700149346327242930818090375624852018862523688962924990480877303783228400535495467680675233985390537092710485150844254442924058925766557889142659485010775093839794110881227779486517858468257719191904986763424116362943811793286041054962081081182006983355424181133270654478416315811662872581607432502658054576879609650806834350437774458845003228375158379288803010141081121567292515709712926723875720265899683974809269457723305389318479421774944792480672505489522023854111197281787260885813335369690407375370427290257743857769150669533708183572406219288342548642601826123708676125744712835790815143419140675301203945871729591391447768065200157062898149912782185371773385316141390638537951752684304841409714245201018174217929739844039457157687158241789570581839541226972345476995834652594496224555709590235800202002163836095533807602522319510560575620925641686435045121640872170079058180650526683309572141146898548182275913505660536498947671304006571677057196329915169427849304442203896020401473785360980445557854379513098484806213258626289716008865347752022299491242870220413449630336858212731138495902025316852602879080294944373766524771407746006036374938432201805886949212460135671460744630983518917689526383205381310132879342627445135022071635561186360403848071343705441263091180709533902191766913895704004857716595727699958171310295239969247612683888797359162521643467444836812021378685834776960691682546637864116151851903303164555466052889173349479149549593921673676359669323731024369827309222671227088932145219058593496376126223615957593087056324810032688115502265199093406136917909264150900882958735835532327248620927524196019206457363111964948932961328752486385157304329811912165842625235566476727909316018342909170805893641534836553527320162279010207421602011519286924729808595694381471832599780343951650214996560501477884737863696613989457542749264279794740779160238871104937545638093186673261188045574787688311187020558362491995132098795664795997999013487697341387429166880222813581257778218520635303727343392933084151662723385916024689500700324401904303062552479763209574859297805586282056848363403647999987873113061314558504352327878935049560670984326586121125648597830155735217261361190246385377071146885851461890670677830032241371575868689879238094016571230836685411937913756485517191112893450450057734963041656984764124177379151120258737569256114209614745249688578241784710784340848280347729570868995964473636781306664087697160229567572077067923917605858811636981848281996575789501318775692824648234394620134883880241869187840108381027228480987836884047009696270441221214652127276201941602841297291586655572824308390982232619490880324831787496070322440539400691891445413622457540121999222538711919610157243681957409393206251783677623308428238467723269256218773396213483099509073322794922955484783241566353090541634443729332485345946637810339978635552796527869637610161863794215217588567261038843475360522401957108940450206633872925175285548212747860406820378455497925179945988132739691595009808133525322669054518352557393000848350971058642118874618462256431834525407731276360198581684523428936395892505726910298205194084023608977786044522211367754155691291700752660575301144569350803308366865543870084030142825179171451224334922580550454706596645403745633273728290461454920689916351969162689927188016228027482105032356171589233811921206050307836011892170508507184327475753132770034778230790885213103511423169796566404177796778644248648993099367880288563031142752613998184882003402415250604953640011371713823168454384037419475045226532518325338343639291364641114090426357846500719438285129618062525477426525879058943819270146046357640724726793762165899565980364187944599697622281682036706160380939775354064687391710331365194820412208772745497561261008018147767669548196043851803967159218233156900367178719386708541020325088550334868788622117828310786878686288119692511184467289460272756074101031561255573510680625848345504934887638628473538997179370600783287286591049577056364548345818498025295705793114311993107237821240046657367594207958377086310605132188018899431627084359528621160134344346044430807173820257571206553525441660004981892797959044405639759049260834709931097994278168966886994288767511436867110901683943379356648118626578832824673769545032775660266390585071041230685943998324402962594253492627793806902601588530140795042998784146313236356432718295247307939974465516888187733635727681153012344212375727719249720506262408819313240426394396870167615072003451908323205699697374749407581288063407998967832677551629520332496048912046453276793209452989533861327252347891417972263709330150407671380912919632420047362651722967745853832226702955520824270024142576217826228377882708094763868346854998564351599400889178858847501170834066146732929944931426159492789174493780624558331781068241029725242194113940716222876178169292784099634636182979064916844010770985918094812795042688034507706312676464562373680388710165836138801601253841733112193466519945840366597907061323331517822039844461653063286458348549679438179926416090886768950339056425771568060907289910869189989808708676321459371508629381127498497312544031239799994835425881274828898375518045551550966184597869319620961524335052363189492056923082399775325665450570142510809695537410805521761693280564794976234466209564673190083365234558099783727729565961171639299742005635548717168843841167657889380689899620639864473874351044374148651759045315273007820334063927075126981997483572610235980070014450822233289768513619672472601903985954072550209546539226034828228470095467116169393841569831658915911220325359213269172604893241249246241466700735257343409836007494405539955952231285213976512796430565774850674275549091559798744900334931617741294433548118142738983692469462033463674890167849575315458721521671414175435607638606864135549536501795179180693189555203233578207650354511386376008794391425129018642722841773748197546770022752818425829502520774069472065854905457328591250422239409383433644789518245588083271008918883381720128098239309318915367176250548604935351195118867016722575278899400038140485588043839102048554420663930827920740224617006389017316297606720304173235224289237869187355876766242694265954470514569456203798916890393773295587172959975988490847145340440628361442158767928317481502652029034643040989060389147121866882698748130039609365958145805437798137686194131381163440322901910394997867340364698976244751537331747107602160531312279868418519019865167614211956772645991450637110891205830179937152826286510709818524543259068890568766133373489144632573844925301551923906386472630221297594908097960085682696219854060859947578494974279217638515271640358115323853663435499063031113337718833069722656087346850052784407128170935957235435887432644152996704029885396743740939915353336281197163470096639292945705497739529172171284743755188097063513438917985036561943777950588422768189355557726005864727408244344422248079370731129366388263456707018674532881780051345635848592258938786263920200814763206275115133276058215798015811705010949427148648749132434896004555757292235404050777730779539652916782962177208838350866077780927091379812922006409927372001679939198315956485342730591010687593265167097834284397242533601642334832566592941703047557302743122177182650520092441480316823524476267213217654550262236679506083975784026253734578232120624839230043057510852325516773981648819123098963423960166201622811086608802486283154397146335007766025331652925457278696462800983658779203028490476898838165025659879649116109173147173843335174717342798087257222044391667118107883928338882866941196389024350781636421367212297177138070251536014407184905960659408293917147207766792430932974470140640219233669569880081013447082149329223832087957829268369090981849732458580565214477000175973621945628113168834139016011505191398888821178725349968977918058453198195566240961393394192757577150977806544006412729028384633253331773517007753282628206043270263852431889336881808536840844826629115989995898709384983680416801933994660712101491226332653492104727345447074956478433236052000736154512342810350221107222514829843330981558541337803093279750542396813870159980956745704447301221242979342829552050498454103326363654524830986356596658978457114823390253799074521075837644007909209709370139044155605198242445122821752502771280129109114143835005394833734532908494267773487332966342797076918172061742900424098484448181827855399713692610394277771340897038927727080505117124558274528012711690171555327255352085278774925789421158927767964812238868004016466752064679839112541505685711010396776151985936984393462618234177709679622670114258334681129238125293109140597131455677477062715808960075765949335630299696699946749048806795215004223924246639110232226715137917844297507112421235785955105893880247585359528033442822271283865336048416804715156119012554600925338001794733652421167220930665108123259879234226264712786036844700396917680623944299490674024557925640733477993243636396899470385619720852814594350335455231428976525173019638511711437241546558420420862960078241666806629247387087419873191089509454168994627232957803589829327510325058340046438996062604355178026041779739258090738399707081887340521647999296504229051100072220761004346330754907037074879870378416941504813034371994881675185149020160130441794424142814943861529696807975689914036054972248799238652176209586096813944648523625836684808811708219336060098523569129887272543371833670791068792135831678223304557062171848985837132638120695616610683374113656389549376791911054244037509767731059264139136750532918132156349600226856403693088315747751026464210110882228211287181891069926869441033192056015623418115701613661383225888128478962684945612908093160321459068953289081842874118051573590487212745535088018941579941121008468544340034372065096329295179623682849061867909967800991335382411334470050467893227320246851326214618851875953280944253667243125669760586107862645954415894940469499797633138830342599134078501211092531766415418415528644285440502257373622939101417933637635537636102184458203936654302349516876919258062750302140773213870152641211880161874399145679668437072622416190937559072472180245343256828923282160320137878318243529455697903745006207866267724705442672632998705554522596944088334968149732702209244736211134229671580319222922857749611877773708967166004166169710216731896045670433584152814702205382871097011303009979888600562909950162212225608740873795087096342697207932864076287827652674196454133783743379389759059920588677810477304795714520849803640046635242867351190160589952160197050065491010202708301752085570339234867332165010425660650064134811250410919192380599319364748862469276829971775804672222818634908333073899300741542979490455212915589464002825197766106618856397449048287305587949225307395758742426210556776663656905434733659152545643322116218192794290309659588565195266285212672043058984166925031036554343391343106419488836939912447580768932938742681438864962304170647182867299149758145259762622446647262741431158220846679004701662924943973302513760595744813933058457737262251899248045918437436162404557915845747545066152365928034562031264519903692879344080777112266646976754652913515853171369775277516614459581594633838505008845865223603625647979863166798059494900237355383383579526449987850352568162925056189310592294049315913624063020543662402802689423828312280160534483317501048086222151082417137954754941127211856217131193321408950412599650399026615122387307526909942279567636167228248554626556488137026365388166263954782730686260630962635705554756865687575248238006396802884260884351727398338834892833366380521073220470811404394779691230417597623037316190103834796561072691240482963695614045439544059385418008296783462542311220990135920153464123192115269280377277733740598944569557002940240350565999404075954255341089796809496422170018517609629083137165489567810912992307038227854911087802844506006739217171871055101050184645465942813840228995385614434934593914163383674112015844898703467443331864147542440435184882221899966814252680281731658542686650397681037671529518718967014298616004276879763357041782513747427008675696606295700200497266062569581307767277727810187693109282358049386094451382275380397315359736428908680565435299468168702007970176216856733247446848207381438361232909242067448179960888115569583282182901482458368582199135744456147192792005635669494892536810625190770022326319362623630262824076134731991175880426347930750689728077995492120957471184844726326414630444930569731446475492289047208464143624700554013589846930819863516142024622549617611440537120783027280687988016177194726799693373358325782502754822791687128822218520716364335435718165672196738922622736204388746872212682667336259237021096806533366882907940286238674095300459675464641597107479726865510715775416138207315225423156279122779484344975443780927644458038813126619634846987320452673598809139009951867370552714587569908977904230665749786264328830024921254862210814134516494437029984913210015919356692441978939549008836595189015210433524574937622036215553613419232831712845466424610397263340115553900857374958735333569590450446956757079634282859548770571709487854356195944653822532078294702142133004861328859294873393435004797657773343295668567569493213717350716152107361210552189997798147134230214329329595279027110360360015594915660287083835691792821063168687515746869566032075216576663515716903930652119313027762881976348176042004445380284017416460081327700714358285482160501986657096107884561009627173568456321808324904564644482916781493265997773322372874696837847127508626544888195895780206714683564604435024223131409177978769898252770607154855472003175730407186938058555908466153517933673437347385375880273397479580470485487076123304736863164022359550484246814381630105863044332042501090421602085337283386512198757889896382380284214056028918601221642344525524977760796453368769458162236868460396016608331038906719909291797015959236373924442716762409738953757369024808411732725413958578086977227009328509823886064960567030635088727118949284232772931406008158398211070827066009590741710060178630736140291665373701759904229257807143241714669436066484461808532913632282581357609972288684065328942057033876914140561045891456112820328621816597965721377386176533395543629948911318306464438607814078426473454769615916427684829818183348502627156823544480047392443011815223892818647320472604894321852141576025254767573812245352014577496535365307023092868421142589477629413240421895889588592587106449461722165869866466202339990245289590892773122553244606507013569429112132251399428050166105220315077817835008623967032170292161531854440975326199554289169603403952219586187308421526573446486112299674451165498313986519897400442203482363015825770068401557938010714563475815431321549165946806027373330859764449661593371125084458089749700531121351329129123713436723937497153097506299383746758896199809859143375134630906355314521890424021703627905216657306089100501888328832351419879109785477569982352315020315760139434123209405520681812849574399691367414773393750579469149391637484571195567183659295762706189732599473007931418886664205761587343904673101738924265698655496845581027464699018201785220961230409739883295518978332068787320893707894795726734230636197294390954573187420893381291752174117347941203511495494462432646269197652429611631650866437623173404595253484806435788079909764605607045918711118811699361621469556820765611051636460621131879035051347467637702555806403981809321126687426248797189769376093988486889250320611076435581960865870943181353722111874829562690320259165179355671962827049054714697432319681480851816892597750683325908739149703592274555612290614859866821762002625767808488886884600166916587497012225187360601801612314218316313175599960367378062780532305439677621617445334361281709316506094642315557957857927155055140355124868126802403982698190774934967461420688259573383257930714965391604094010906020863001794329207945486450415387595502624132092460593513715454269747683183864414880392742849822223157924776331826559612773884290182704275074657797315069649805978151912330688919806036174443481650538940610820417532767783750958971982205950650638614303723880426683951764415465781590038365342301321672686984547746236739145813009348913283911774549076001555553560383192167153676190691499859343936228376851284866180499032322526726852746809409784462254585021232242808353522071745719255817416543421418999589377733105384011868217471091443109274467578447004861057149859066674465066523674338138037559073705224593272979556354589537890478084720586616182916181724660007077104529382327677830438480692925019149624255339531952577075110623003938952290271131580025831993241558119560808899258737814804342903973520895857985024555485978291422240002581868178668064876684809038169514999567305270709240930591745500326421556039931165772611887966938447751620112185667882171861817772491788629220719870743349264694043077231742401207096009854303224777070781357531526917478795726389035174866427625215025588085705335319560808453879841301458234009024676344779186431748879738261066054260852107343286704691238651293407434294330101891197703889780217340416155877707125359937406427956708055541459464625898942430075363326459616217153552695247409154873547546821198837074658492002172092599164381896849660362945366051942623414844944825288081778519306899137008336894538530370604009883158781228059856781117358193283178858488647147303970435961616888659698264698850381970414958750956895200292208804319844853618992906461117518287118439006924918938973395720757228719805843259336917216347651471718318928268892198039658014275635239179843047904071069045433239245640323372155440660420878099224333594108506973601178966530560402942934323984074900963124581680548847071023312287107678426306013421074504737971288102155630016375182148139884645550565073187287908409740234976725222117117699367419766826094965639180909696920181345807428411990167806487435991938963999940527346422805222875254102105063960992633129851755252827735238509029892103226939530524324770506728986659706329050501325383748022598703747925951491573688504382773685922882134242196158590895938939829222963856316780927258663481063840585077253818126886043456243204199690847854755482248150079748611311608031851006924802041511659072461506784490567352375457680886643962518572439745304962721973812925537933539503939928032983373002472428227509612425084819519835100483719180897543864078865470819004474227749334499093049210215762733116213526790086468403575778702157095848510552006610330484349753840730147148800689389079118553170612469135592117977947459330714123964403859824781818712188122311995366566740063998936761749175556023811678617058995938876751550955811512068509034149042846963779421808444611126085295838692536073353248966184262779159720587512878459013919244231200077551244792345589352336102593182999023049238572799087200343355412064954852375503660042751135561303827305458847847133085329372806926410805149809848306230353706494519658966546997024482273337677222316104190967496178296235435076966215468777567390057340111995906072442397126511739049753498257907341586909369700223471859188629075557084252382876802229721225969574424265232228996900915698522232032680855958276042396776133119303769872233933500443418467699453538958448787168471729553395502428873600139122630597870920945652712406050629668005011901530066313810675393602739031256364415101828144043368764438006615855509574706297715277683772131887220812382307264205160324439663377845499242782270947572886161724341241356303449615744324252815216400005137054785250245657544411630026214819908919154344413791903717053846040329268785319684165305959060487175188420720638219457155306621070548129887646128018314689606191190131241222835039519008353819439400009899044216296760593609735310848345615532376933262643628409921694305716842226837401391087438269556675985302318219078089448266531791147189999959098679841815471270272287367968144783499514471048959309683725926216363125805757430523463789677670993943408745781086260173100499255984565496924991200958313858482583793908051341615042927703565133362428899213540411306870636219731255111347286163745884472718375317334724970979851584610241669664734801958293833555113340833849682738849399576387023405340994755275725115868837383500786383663539604052003384620610255318318350948200869115220194666899611268032161567407510195534335555310794181723704897781552317916509305651225379749280088875339297802254840628772955965557392564462606673508312284026664279399400719862675953087332096838802948835145174406118827005073035110616360094140364068877741180669937895925415630000253222272146043893410337187416491273432634396687036606668582158175490051207406751433673556548025195438954813261119313016346861045751312384315651595809841165243372701318488920369714492913841393576862039342956615177001574001150009508606071625756151229234567831447937990622787073411204323695744392722065129531574746143496487953726405310558609243533805439760705780398783755763459863750026689283961769506181932149225731583118508051011708299628543093777454110321727424277846384165142641683843333950851257371294006502990941079321448927785520243535010033974081907847421661753733080085052849195384873026527495799187746514700614550745232688780255506349332291672433764238523425346486312270435122190216029250631076466708758509178132143190812589416403601189557981769481134843204918030678752734985139228398902103898254137216792625013724037219866035574007825993503193087813484308443698737783638831917697501986283458446724609725675255744818585310044543868487191705532962481248661548408925490934853823917791360474247027219774190479474693649551060352908017628082110018299852965136472755447642718378990539860808928181494803757363459725555953981554250804345476770482581294203786622337115639691286398601626945753821417879720680290544604608344689525032084447300118454757680974207892414207883937525034016770123593507524799947750972917296759335881553890744560424946960365099066809976233000094189504142890769578750122236907608070887286135902875604175043082315474187900358989230212511752885216606691136345092638628518053380216900123109308915911767046887776050375102401847949184987180503345986387445163108277857077345581971525892122366028234131384773984785285442807546288392414775826687872202772655801355893942676388263464176934570389283844039690389141096340039853965521482341526548800156735542259857393126379041953655549890492809728828678673833314566919833532324128217285910260541173907618660845444210571192087087181736105850143753923639853613542464621696557799637111928350535483735042021567443631311772036199247090799745050907545473697803061007936914107309442466457863306236864423968911882636837705064236501977896387619842880620340540356825475724813432544845257122820759396939586360521170241510985174699258284573983221449616060311238498378986526048587545229547781310786873650024324920691686239998581437288584996451221575200055227484201318306961470411938077203357996890841523732275290987764680465696292427700013131146540432135770880981331611843735163140803302980341257996328399528961582606861386997468734568821814764974435148624422893215147004152844604946971208503694315495003202447703389172004834906279827364929262876583910363958073256766748039623342746031962141363282976785402020296036821787407863565293899202382973046161397390015366034533711702610234145310402331851630941205534133501659093721287979387653909707532376713542585809686109448269604265373944770580681266481262490912668282132596010553702938672259155355710027283791516690879631230101792088722753697697311285694351887257364754358214214528267892653564455926340950494965475656364940253932345027296990034320624645538726351754611157000931972319143696876382720691565224114025515311923715637911363534417796213971752173604668799746250110577244084169410931372656389767309289001244840912768784146368705790452456669256730488310204098215532603502838607000979873339758340290079471136221657939083268273386993791729154153350571079884615186724445862281028773480406829171629199589449261386779926725350405929824129016273398644155634812901928505833377238619880202899911524919940109787471420526625586348009710118078584427685940394735755298308130334943327435716440580488797360188624908579973813602415779959824101445742684630845685591394348231421128264709537445674887191903827733616070180682593987029082460784862285397578160018448272944058873818097923342583423340517482455789431302040717923967507647737808588349731152700776774353139643327617427546796873629016807160432640165884989317927687760484689879357762794897588770602148211328692319301332447836305239177646268054065293673407175545107590619841761143478050896845219416050360470696034687828966401345870037078168181224597127964920813632695258771200754318767452294762885309149631852176808261319460647548060643320387962632809188469198934504016226531532009236103463200314044972907103065622862456732303493282063855678118867586890200136988304363687053745429572082383424064323671865090738764901481090204838462758489215298121828231885942950830920622205484783483353615816185738948275270528612761951810798419633210939779312362027405672158864366455529712338712096021380515957736743439393340058971616782965499058612228263118655755504408185308663555493896251660429853933233485385104160529382825829835871314256376341831342019036131148050555541396069358015863814507383381024058623526991584999925670605238751905805611990258155403868856648492958856482400454727897010660500738542717190341512568310386338480989139592911684862422994386123602432884254926806643373030535078466750637240552540260634463703829403963469793914388893126099968143791906725733632029844113099030305561546081088007769497531379018884495841688934731986363978032966669281979117911729516956983375409418557231618795291096960841774359525401948352945667171455293372354465296560194539021144580052916406542576291989330656500759832175564449133366616544569688865783518297961650883485944969936220395512224867494354890088474897859015900482943615332293685551012723309919658861245656230595872399486415261319987553106991445769753971145080785919388305482507466134579388991143170971808416887582367892055020727388013188749400469717815627961585089183620982858608938621913556373243044321720532906551752198198020175934294777736006851428954026879000913209443168259109745646560545072104608164145120566225138933948340260780012520803011211983419792668249407130029912043050064849543977781314156363335806577743702297316909497862849915349606802634783696481806803485800816895384734907292185391267462056053656324597737725713718929853985572217956625750481082486023625066941641464114644348777050210545874667198625115978000455138164872739003444222375263216638054517038845630003122567956975709872128303323697946299524504818854386035314853612318490774674393117978306008257639834897005215150157016001216960479001764596127755861786150587176218778189235839782854335978077578458207232995764730872151226667745734415558031163389835829699273264448329572116068693918667816680533438124420620944076640224841133837627267979966030147811172201951929076128987860019265996367542032414146033321122619804379564910511528146910704719304127018205557808104166529034467100623036149348890274111853146681045400642598748820858627859451613493395174331704387246110576864625495656634380933724633816891845256687579454146475417777670518771175800632005130990668638139148449601848072378812679964612490677158784089691307868451255210595757753320504455605984098693664608929182044767821195865840156552205497441631646247767487501817366806751893532436360635634583418492212996433746136474904164817591549251595475811514472074256105070161941890851712036024482834293271457609598336489363779528797777244302682172341113694511062483235982107836385234995340672481455967385951201606165519991611950131843936563376302523153249062306259582054103382282886366479585031577365647382867338458514531594446419088033538640023032273615776932765726684033242768225371373998398039314560626308088645443382300482952423819206013731985630855516012246389840391341418298534843894076246835814581125263324388165165322041268004537691913423350657842129837564012985923007493401533843798081773929439642414585284758806943788064609604528946787730452447375356981891136437633773550061883764668623477673541421506047280813501836159482580187008010663762649887898267320374875331617247035583628764048015375137530592402753862630288656729168590456952412740088783523563634807291113259809483656584630477395245476768019980192151354048622228379593666599394770580770041305556841859803056044792612611733553436584745790642001589135222253665662691119132979344941477652221181144653737667786965746829259018508054879783766704559097304579064052721041197633136894858572244474503147968250121728237959636610444405134812250627864315233854642606030861555166691081240978983838143428819551246518301270433460639575379541999359867678257698003335280452793201834082733252876910227837641794665003208617407780247680295700958765282779033402579885180088612512336801995674526214381018934585924625200362428598670680340603351548400966862784485225960012599562196432603246168987996447985655077218537368018672200943065583687420081865543726408777957526854239393398404047696673708356271493959710095755799790170617877081818063738578049370652457430051755787081902595046004024212649411464153897611811318320660441497687982733354639694367880928194678210449082758088959910641361742574281818384991482087996254979106906713291563061863292880014454870876375295146745640537423930909140014353880579591591432744158476426017780347581281659209898855858402733696776573078211877016708497324590839179048787932048227943221527184196469307195576450757097702454306423383325461236408107960145311526604172937847767279782154126695797456296426170914679837415285038742064065993711013128494401441695562106472564418252982915426402284590424885093422801752598100985759307927510023945309162557752053309511027053039004052258924545286764986581269920800953040362374623318391436283247557725385104803301841750241756623643366016657488616041471669057566189191001579956747201566727187368743323122208349888688012146643454078909550602841557638606143454030231307296294224971771952592019656227878554469467406696874610693592545047285719777449326605176378192773561570199360992179777961782994576286635425464960823828583383485004575115584567022591401290502190761071876210534302312129008573709334372584929265624241213103534621053413754764049156930607134852580225304562678735400428227669919036195233727761177180277545570359873473161255064602316123008026871421069234532554816980974198148226581595325920249301131085179521059083295393544824930422537121805167254553709857597739695364508030316235543048057114773231258133251007566005558965937224865230092458488463323789461686056989689242711173224426792206344723993955429653181906709600603238728799388303429300643380784931179800198888210010640685923626143453952233390796570676227711378032099977068138431193267864803366336288647633297475922270473900292413951152688178186011171475976659675539912356892765074922106672731432910936391336486112403643361910270599707599104573759738100779196401566208140121068623404951800805523491657142656060586911023372811894471327813996215741743885498066180767892394830397890554091937026437424165712789493987026211058533583186702329636100459531623237941841338766891910542562166756543765141160891000408902386414055004668913218253180874037039332854859393811591250234226271615822222950585738962422770877911162120995103182374257575475793839501880604846338015657847636347683647066034564724190263606230926285488630907007060172253049624310339014729509871577011889855892502976026228047434129703082245899995023850404624669752248310954284851092701017537824111514368672944989722757901490037480005790556283509338662025337214815455446143966918085930012463605565735462422209223109855762179848490971296214753480249174646618998926710503743059050657831713954850001308293612018725775602609115345131527119402838670327709435395056465329385148871873472054910586706804326309003024013463705898032990630889680534373773130816329421689693666676730970247015165040550886417451329778575112155051943381387740944443493390258456196213090693812382791327986513979812512934077311765017393483805741243334986744416295396035329451409068526202124195288202379860243682830542192661377231569480677671424609578474295110032006801782461337652711775531899167951225665520826390592041110244955751679596953955217127785915736648290060399687651843625308290606053440516773649684920931896969739465023143647537629222348865519296661068165716573462492513097024613625288831777442236695228705090061388436666592483335364423097840526790571417666787040390939908562144167130414978344059426345337038650515184251898976034244588644409864415640511615242616812048477255185666058933902418545877511733773783953443747623372911556239354636554106971852496376801523558977338408480984608186812837592495675847342401960873976318493553258362907834226766259723934355912473731303119448467396439221378278603030859358144729931537370280634861092034517507460013795351201153372600350280917059911641628658092766345491860909079520378813550997846825378415358711967089221441965497505334548613493931014352603535953477822200192452524937597819168657525970275576612033435145465137968612538744252896823516293905287544483906350233084128691324656827703832913302069593030082767153265151268078785304738635492151259381677653995713265600433986747784495616862490972150894991303919132630156594444660331550530388211570429149810354817378339490096090243685794113655513568861733248670663952071980854139902651477586135833308992292860604559018889943004541274226242571469601442569788520369960535474826766405525844460503163805525045375919029205626418896130437209045472797178448244923935684064673864008675799047443935707219029537372555611857971001239428330171921182033481056481889556013910002331381322054632040476837692982647112739876921623987961203555451659820716104878197511581137296215407574648109686500159536064397329487560848057538836125392707388693645466745537400275200901039482480844953029872845620687822826469484383905341856627986248267183244559731471279139315911427650308784912176623216247113968276713347627361939742415833393234129254158170212109925043036315940288391008391674483285417428606331746059704507077616084511636889340725134398589514432003568277464456662720974000920530285586379667881743041903924879730056390239525343813277278738432770337282762122138545406359776847089011955522644373247234346684214743641696751010364076494189650968834761965819336515564193446275532600683451741022558168068092422565879037918281938029950472210792273627831254779909371227636022353136172621731737816152000846259868356061982852355174004478015893949693818851277293371062598935084356728408090815783325979720920670898617853823926486665084807600524853531191595749585270680589380196523015226413640695447956816893260125692857042930097612953645885271299042081496887534749733878583641513654483568241393704263993756759640936572669088158779259588069069595369744312680038061007640973197968696959620066070908840199518170266809112703212024510526822470093047551301050804691156316302907550248277284938623936067120062447080146309757385457672974432031774446939501360395399897102371431808112531870248925234959030110392514703888844687040611576498790816640870862403989781254035016035589092237992967960700835747434974210892061837814918961903184754431402742150823763725662483117211957098703331320246961894389383473474379335830037485836754750353873899372916803824782263668037903691656663013226193698347273865630427554367339369984801044410919276986009841725320936826054232133473330180769597982414424290810767866288216900635827862116684268293103455448013809760426931438319277906918306060461555220200363975184078435246734415778741056530710143451431347948209171698691337431690017830858345563911004645315855515712486395990347580045118010059908178274925866622136728298038779059904184872578833174135759393548771204273032178205929184736394459897016227634076836709464932432071060821386778131426420196122191080720663586251259210472771977126773147037585665694838384194333088454064522178300963844560734342585635839050158149040173834988549073328520292835259436130373065513903745989036914493182642930914383702219944701894018356916792263784299033324018615512233090649053679055606687504440671258677574202151064129392855068821972094711212534863765292192350161656595127913279021706420759889040706070939302190775739663079308278927922944321917119266849410715366556246677799177550423892248409210749304066983948444891137244379206701576808049206976877141213952752489426314166940014604032221767777835645959099116261174357607713966768663399952705775808251999008317672547562650881097703804820468949581970543907113302103209068919440000761025877102726704964852518659578668846499083446144051257230022546521372511425012714578069236439764573928589410804991097292859467330672679572033375790979423979660457368482126121086352009792293526836605921008868832195025163142213227093017407088965769473385317218342718145111992083485010721719305537984823923583091239996409891404131794112460366104621178042805706561818195741853915872500853984526505299631098876781472477503273475629218139623333061991557588184018359195646941374175865254278683013329049389329603770846944759723292640640231362354145296260917706193759732801858116475653102656784128350702902512033641425391307469862995151684128400981774282749018156855137215520702267459759569317847649418228684001466399635358517320366701865348266720921725827546395891118220077880360046976470982846436030678431511344364798386891063888554717316196534910708323691115455633509794199156429546991321947035386427196833250771815051361769890617760003800276861549777231593700369311895333089218636158759634124766383307068099176364263285815300734045999481051834635729009965934881681144009133824434834929008380911794524851943612625098735992096900860858257043303744564028009312377108734627792196136150890324036015991377433652683769103372341473551925343345505653204853124140688687667745334956848332757927010594912553373045237380780698205602282758810446109461792865702171862885738959567552730504301877708147321730056218177069802943574372384353489952107615831740015500372674410280163486615322903919992644993953084726530800702548110299120325236617519353273040919886764835427197247437518283379032338911353168182642316443300370654626579401765650421681334041499619769140920476137697250790685366854419703316249763819819736534494670989538155850266502712191710924818194787226489483979768413444575048487548640843037798017056544372445492347707942776672802850975240471847264941804946720900758091077782571954780134027691193136516187871343903794885477154111180442996702493934455751709355295485745752713342728777818115304230683048063353842944944939035795594176587858025409358235802197518602217571473578663848288316993720528028378990592078650628363850801833490768406122080945526732607832635119543379232548191015663491539727978250684489144498314731431297205177678085959256278318440770274242248666163321974955907728745388120058170077473152198669843374808416085992697784454117806921108318098798353436710402427192315855210461185778651795020366837958400788059919810791366364091057056227759760922069415905050241121244962617084343431080102809502159660637210274805092267183657416210216385413096000823319165855077609890995497130395655033358416186383901208164759002401725474265559913108594181498072670270179504552203103404540453459977658164260153433881277376893165386231797439951725067648805683483932627692968621852216264047062491952233621266555110397946181923089580718737844879173066163818683060573052138644158462701213061834442983118343555804989938786301113415163971441748678161603012880418145051081414665670031534062799572366674041686858534902080603788880473297887492590052409143595853351214098289407614645422545288000889908029070459176761177765493182293785394365953337282825870710459159732496118810969032661082780218097993720997218137863448935220839582108822698413759533265421448739694105415931390315167534800192560008621302304716877384471478183088797666635785765008701419554232522784437863135405027313933502940084990366098260814366787629601017496578733868514074511240828081670994521303862652208130483126035799986504498698254264651309372572113746593723026386689831385991073988486466814852765270966466911893423878576602785558283602006054968667007191315443081046910285902330131859875896612758439398007728979018847843146791459931156948517992847671489141829838290998900396697753606669081919458643118520492934831191523681688438968218562724723634728159585672050132839643421240693668293317978774975338947066851721685383531741853181459142525287389260127550548218954822749878688726605744176805966956082893853212768098010967681691421773100134856089292531699393805692002020599517281432228244976945664143402298396292476191621501474626009805591658193101239652274504507295813308942825685218381001519778544355461862254184527937432854560957970226783951583845594387025438051407941249981996410210353061068911098600745969751123407998874268813192286199300488868488264450261986040657440736328572365588260936874807995900313456338516695211002328562005831768590893267708573448212907061917236225164455896814648407134969130594944286130702303692032150530720213170264647402084721070004533236769457234139873888198321936829926836154395890486241662253996026439474630065081768847976604403229951380977941376147334874920244309368337193220204535356667650819946570776665345816767957551359260012747871514813152068295699607219492483220202487704519136587652711161973456971821713509831567142622722482051762206217341389699708831698177009892201183641160065039908503491766833141730245113094554889837159027135262890960595906955142734115065942815151160142059633626290270814579055986719855695805283430092829343910306335265044378310508209885009083147831688219081477233343949499553675180980227854580407174133865857530376816176610752068224083271973757278033195208970275528081434334844517584754943050477430421426424652818714793854687585022952101367210307776148772041009483471265889035916662698837980440632208682772212012034160132849062528781313493866204205609814643629756602088714892102137517726837326383041116961768039432723993625234688242808907697781960359295002541111318395435222951244858902057464725367431591757231404571617457107539937459819835419216006609035521022365395912857579358828545688028467665068242041113694526517315649619687113435236660381546358638882754889079523191112715869984702145252719122356413189863091452708634759706439875122751998558932483957795364363258048152831505183012992298870373080001974879303992348089083870944912269140314296611672867973753331650809800424126948364409013537389801147583605073810991537507751231727631389152774469923563365073666405218682189374404598991116695053990759909822844779395532122073233842574368973325445565411581068691923539242308872880772598404930600589234393007205808909693976815036493892729289556831877321351863216008331660773688316026481920496696703198626142626472298568265974253208591298893580690617969937253680373362798762452470537890828168623503478776986963041226748665026828108607228013190119156785168673990589553056228590725039022266348340080467920342307181188194616152019073862397786834596926494304428869641626517281389268032599898875675410310676610269057966864217312307271081675706909595558424143525666880263714621810753177400719906487983881867997782566300945991051853633984105357223522176090822638507230200676635758179539746314146199906859338244504735610789194005326969112816192665689375491580201666547606243963369401307104069119352215594193423231221544471986658329536839653212286780784965578713320352378400821268109418882807987350307533766525532353129437963247880619866078640572323436175562048442490982183612376402956835072580717637468062291212105829458600705343299868478702607269090508598875466655274913418254308228466494905229402324204234583406263564731053129294343703612079938329910221821498354344726072428190527833863397600117962368261209961727413905681462874523412029247541986072259034516152618331443371607295326668752637476395087513657808089932350109436808877055330533980248320041577622515140618470493003018425691993744382668131197529866240493955959262848328135021381054330165286922147185538191240695643888017434090273377520739814346240059513453373484149643255427066388214672189789553368224512862512458080885253338980715088216635141192597910155005087206263756202361079336313639463894553149970047750442020020226961811811434280712948379247769845972006445170887451158222344522522437185455574943999843127254481992840798933916583415097122450850660504081282869975323460260263118463480721051816651292081010635674050654062023148542471232875367986321415926948478111055440236902738468984259358667040535149876372788992690263425143192259432544139605970700132508673807207868537431316482147225231080812831673388479231085362196866076635571876867256684831760134333503923540222067560345755563481307045844079856270265543069815576428155898840327636706223195104400258427085092055111849400689289092714344248985473974880209335524005187020616468416818731074906391100427772690178945842019440617320080444033509608492381839436526232593923313009896815781773316418617301430419165682424240383664943338404952530985848979347045652266815091920808238078537800223535460024984917775505543358091215751450319148627415514314667157062664099526791238598021760405411425044553278294699999451737382694897663503931487611370658682149605590769553528291801974964718537272465478329012935090721829955558838271727758778825893328392489813772222225012857908847390558492777198721692864580305060682479105153555905635330863124275783147224995198355011576627621892099349703498650657632689324852123341236887802039276310356910559167079138434177723973129675871606532836723968653557869385072218379641205105172516789967048522755239211522414158148559173992258280444928692179519114303764861870123415153181186114186590210088603599381224085717986770504080224016848072705412820139999475351105409667721904006476913329445174380832035721877692108650898638657091214494690732863115198972011464429429628266934238569585989348114295154979339874306672757186688132481796627419494007268481002474295011132478407539887226880691991362134779422347118066501889836322911455083539295664675114432498538750298150502325919060176883905845456192837366404025545185177816290758055476650404213402178076920730364602239696838655457042958404986686642172528160092695329771956321404966160687470208609161879503188885667878926533817461641577207966662127387722071930385346472839344055884615948737902078127412674378120549658317649276335673887895517717488027818617590701225688158749780046192637675853250849684492026977351826738885617184015719236367784112486856459839900565432582669120353636993674550336080722301283053564506785213965897115684852587245109165545685152525825002921480793419179350960623147164104179075780425714337837863681799838739498266793509087923561832345043078052634066806958526446551601307863459831067160460632350184097519056721256479955066415253627866231704723842224063911087127676750751868196013757771811324031031831123022680013931834390299949914755403644773141978646373464516805543185060002998856680473433957170282128354437746937247948415946911887935543573038920652342407982507238903114828578415441624541981032835971922905339174958518546776651697520609051828742079089122269197567566745872087574636501230038100213630028801988396614820153078888983014972705301414807495031639475495193590051451115719202883659982989473294845818751404709241752110384462628674618201646001898307918418834001497678698431095266097742421683184358955509297520741023836864855724087935477029899131772129527321432907171575223224975429036405239500300848297486030773881333935004923122367804689200010309367405745745088434446181729267677036069109900762418834076163599137115160723516637150314209773449360410149227370077091968243509572961596691148838959305265010781077328577517248477403314770390949729072759950502892883660875090779928244244806722092883546847910954076719453081519131911939318821009280565261822364942257410499624939018162783765331846048504536547520058921119582142768189039970346263508219835557872894477085313556193971099647733793825205386454794008006765955852200949094224421711334048771298906785758182488996553976900044922555949715311132904439372185480134547566698852720697372530396519234836860324719406419122583341283374562197657794556296275455283762020365075704621466178109818438902366925073951126390809584609245129018990417949792956468531880287576918409367879162608545238935984387456756148399842793030471836608728166718722062001215681577316384691010985668964628980875825638873403448511272923523805330027172528508341390992389158178445311530835162043967993010555551541242059323316807725805051373393348508096679223383378737533948799948960390144021976109626779331651607792320525937681857765889639613598455602870669565938584158443227041919171414891120021919085706406652028519697200216509341964310722138724835301713341284731618309794155433042681924688173524517952188240258661299572004984432279428448332198929438944680748352458297699313757415397754662069549977195359918540474378466410537807007201121865944494777662146404241021713468561266180779912013750483025674362855124800215523734331676283873343406496373416104418514159167135799121438664394641196069869430263332440351828774442869379023611099220482890943667743544554029783186922784169906974509892990041954925442917840413704958372928890264195931154061857653351027747487869361957327985380345990428105580248793958627471106341833235374314099862281512963400104554857394835984907647443200591429360500981970319707798442392055910818671770483097836122396176800395330646508140398789786419653360828256520941555697627847641801284861298684333363254008357040335715160997711974360957571807543918442524451274954658089247757991534677008279385756193307872334719543301960930860231191073667160874424158085578223174975574765523813077887386895145229503728496886449474051470483564348189434290053757652865336240112901078065005236512897370054756570475792017957705817961400343916328402454958233664368578265231979051499492669476038811846924855220866469001622008386282635228635811635474650174326196150911721768185764242796188392306105482020479659138635314405484647624563790350584676749472298252544776912941285009480736412943371846278354387273986580480371658941577421990136767375316407100203151810338770123592281106660164383886763826792495790825242335785897382083440634215904215121239088738117261550030266230499264184107106780065292513966678874211082296664486062836306168820097799568501009527972957711677775863140028897251728983442771662204378159403269511984031898685622978406382708368100232542168240179930336510970808062621646072357770650253502156586180709611833988799618465697650950840855904615809822008449350236224987049258310938577769200973834332169114228675020768179590478199096798349673489750399636330136305571280880016192670289379611602107134098934041780026407866045803454502868329929993262979774225126132506076504107755930420186248119577574885170460474493971265033655766454357167158074274745333676626918867364505120139545805182659391451025845929377001960837964585425230879406045868980922858338494096364700438399953448025437283650653209708625609079307087618857325779355595038431546819128144095385198022702058212142027142298141509841443203161842926245797659230033006467906926548391908401958825734131789985225414571091164993752321983335170223070208871706381746213810234264429309293559464004556623163663634269005422642713541112689811048175799078482440748268607027650015844590603905869231879832979468079769731349827168148575212177596509049597511438751773029672409114628455532116152403140180611378104419458366889958859420945420514089167696296087589885977069312949031111290018360095096977005126649888089252669904271212347494076299876892359567353018841005587223914582873680157192061097502563613811223538666147263853409274214051902106130747392988534527390122736246987720974423198975413532503269183782890716339062834303217275045856988035325093563647443005771269420632727724540441151579907842772625590813437367864195746664099583994424799610965264571637061406140473993860248235847317707282097293586895962209716944664169850297339884037069439965625660796849467014072187259912957237352922084249546510506524140969183777032140191915050232305473808602386757125385763284156547757799233747399448696213072964199306174069642446568050816253701955120922411945907539945239198064258188828604553887783624774833300319697577758233033691209914011910077139245919702698913902503030010225623614287577842100868524334528402797962816094200335915410559848449035873824720768631051344531979460367697818861024115513434620777345691649441908804465198159648583995182347738780335852027066223636945833739977610495432389391114952952627606660031288502429962922813080468194029773127434604831558609414701938187844440637312838571908671867741484086742558195604156202959167205666890593954358804686274588852217848117000893516707566766065875727952859004874440718673075358852988140537426203196954606145614020922333621427213839768652908671569360700651477418137960984411703072414827635137414647374016471429380838062509105590157881142590515369047885589936100504950747291692921579573172129759232636647412902784943185487805151429597169557437159608551019488305710618605508817620887375827495288263486815531178088516812952143892367923398537295798302028867996354698198139317471192196111163393050725962803466707621362618428808478323186391026089344959945216115774534494364933495841584016563298276745297803169207397756488312812561532653551245862744028337864820369226315938818546003573458827145740828591536692006201253494232847831289635839398605992228565680589149506566458416551335353598076925894002997164361846199755397896710007140868742964570091111049610781655027312859500110964341607276594484798579485487507603117003615023925773659203660521555913126810565946106684183837738740135501051856188849595643073290027177217945829581088053239643005954639844274692650641620348145836231683632323150885884481153326034540773883386112330777182064621423653902045712054194929357502992295196257376152549287576947245776757408842465533746404387308950527269130996990385491529087592355284709959297332516616158188472331718808574586535898182854910095745007749510400416888993014879155664547968414718337274567158488998941241333910703042151586247117202324318254095928601878411333415511036229397147924087140866360490729118150781029036573765310844832549780943354526181717394973307488311071601344958402794985188948524660635129072582890600514649163814878738336744456177679190257413852435047080167466505001182854629150151535235220551007416166394011749213708962669590033236943593704494252046551219641498299159220925711587070558441135347744747401318039442833986551942170908057533797628064571476021302324564036269433276785383695355774301213683506467680145557466291028090872809468862193528404673455919764347428081906203001678726938520921999219704562472987051142457595234334338379638874532417319149267341137343328516231084662037397583784820729870495442870662046221530200823526828851473365797740542032196578850022026427960247628931220865662725780269333792569257201726003025243071724764022477857161819494445999258787327257517600875707171375035667779395153449972198762948437427545184596069284125857723940012930649478595843406910222220321385315367507945148636615578368182081326715254921829185437395147690845527783671728204385890168613390413075743698607339868888011194370732422294246231110256456683725992940612476455259488576721367037490968293012554610330219974570301125194286267877142546004166320646282271246837429134474601249058445499216848247089778949114964577233868786676358517629863599116076329076174091346150394237041814282177657050544987404625844729016077390597192684880308754593664714536357481458641605935150668882190970691204036135102678793980835311660065756526724750671438330198095046235404488137753742084819753136654258966136307249776320318115530183139814500055655954271988939331569749178285067676229122898531716796756492072642192750415582070441500741576498858165864841894499160224649266262927710632407938596114535055625982175741104934024621838409135382406313334977484322673344117112676911021905369423495029770241320575293688256694740672453384194350795783538381196850257606979413748302731723761434327662019227749537034819652218256425180401044895351448992919169618830473483427078234827350257376158953565470688857673862846092101433172472341155078612295254986191219313525932931205841541811156930405532412462208198953398355646247678011672596055008044417546523743588641434502297089987335892288947061247458410150884402262369755964542283382182747791775383187134233954055477478907212580378207174146075254134588673009682840942412474287576176205223459175787055425617525420681184379698324842044767072709511197893696135914739804391145980872653449045502037484906486698196249557279266694922786343287064493156164086172143800643250821164823527914200393372807966296164837590487629411322354475073464747982298123368911335257128054710552687445781807347377766118678483460605601054718099887462197949593068372970564473744182296866763613277329227404268603194556379303907667824576550969127318378700989171566490125332493971862620836759719887642873586221505718816551737408735642164512152521052865390909006365766981334838707169246816744039828077209167579859658692257472685564040822403883937135954415144656728112801428022032032271315977185530331570007308220201412324303108838306130941928572851786190816924634126798216517740126406409882887553854005340341382718733069784126606626134946812983067391159980398531743565323017298645165372153363166304166788022263227174810881212028925092931868093284936396061558063112358897683664178765337382848205018149334646066905296937598318263525059923425296709264616809428403201373218909081394028808763886517525801491508897659235122208799907918875125756172263711702212753568002081298637783140486012944843368931867196130006432456570783663479409860135629517954389635981243287971860734618888160425180607402379252508609038186880852993098588133744147627822770966152138153040313190309418028805482310817247700508731094174551219820291199803761048472436006554147299139477010363170820765916028977150692359108983867349942382744626577500841870661342534261201773687129427524587751651920658160181858775260074212676661429112891400273034734796734707687080101399324181130932203599028405573709435635342003895886281262500441875641962791834517452961222799026162887523252030416058971750771809370615008931436044123294665869483291037946983925846911246905666289852895719054117615011986254019184417331268667837577644520244559543264802763868221467337371089161159692518993257608563334527986535952964761431994600280015553853012671270493039646217930545246373179142379476049411001565527574147897128602026603109559498491623475269685557639852165322999697228591601690641145139971133207380665912021451353588882743621557882922675423484624339295596428711643049303199303440589193595587364646772925301874175341594417054309882938743555931170083051372294681167190646885415762400099712605202829113133418072943348237494771482542300925960822786867165223478668903914420171647740609897346237929517773994769062285191870575341827968251101797851114100810407713786209884000245192233213516915630336770015703096536809483717241159886087461932722225484611260295526297404012308009492866866008370588160363446820445505914930494939880307498351618616096377827158811867112547855572140618093960240385094152171617315375515967120418667903105288628159283532833207970602381875026720575169559965323258279227396360853766251024331666464526749378233607709283874820223381244123181761828043310562665452868764294699264525819385184329996324586660297613149513440542176462904800892165006357419418227271006698908490868957707525208486570928810478906782843257236628342796932076354660780368295391238089867346642687768190180232835898368601485065958437487051452838410003802785277609391428837978867735848781531661789576713986280703637314972710112010706663206348414065730068112568884300212344627060886790659061716338658535321148369689358197888824411108740568716379934511863988807678971587248066220614721073076988827712750775223010933717284909723503465603786159239558265662877824405142386078605136875485378356470594679644984538755513250930991916695991436206008133241187508378005047849331024990908099472382973645251480678463434027048915012870665306897462075566502512709319929432571244114891811882774367024108418501204500396535802775469122155013300484985157091197406694282273627047860089350386911844663864634587380553729575352016674824564122728396760967934253978047262554671410855836914241411439386588990094737337226282363652886453468129702763089119356849019772554570714107528206794666149345267294348408462823439056760646814047959127194383168047259976118535020949183383223661678536130565881501130909537921680896467548500413709269950719645630962706440738812861395418098202768331230406365697681931589108623708110059708344193209755906503999497395284182490052329360075078425452921585112787562083446844759368885488307690574749942818595125712487500189501199808336157978257209168620241469675479212562135239969335049008380031091803092966816713421348850177357150273373380536983120895884352112849146007612840113147616453038465443106628629451767632289618524506277673345358014963222918429982960871136351789781280985311613785016825068777299546843458088600744745401292985751072723406722344370480219190126028722551653542541489889812877877500606770583366319214269445490948629242896983053861892565726372982238893541786429805386992577788663939889970320590055602886627457786084051459758813697087740583178412442195405817560636838756059697570686557427028885653500833397815527699884618301162822076698775521873111545312275533196623493579569416069124987772355629546437517020906703840895263090326767285366717263909728040259489978689696511318164957392607722027267464065277683733115664499221281621023029794578441660890540947871319246254942754312322778237197131004145176800908636612579624810509849144032074737980473824618533093872206461514494846862540905440984286582708736999926273511770060618212693615015686401164964714017673362043798102620899168912192784002377266395457080230843796052175010694440363858995590514923657886458818089097582071942760592621528060289761635965967785168881264622812099358035929566847945152385747696817083579023318663373955223118948084310979973226936074509918298249839853935956160178939210268552282364192995083626595374673416062925278310119464373504462778042045571610544034678072583115172204398123064071076495826320466591323134925513552238476428113460031490214286689242473184326595501210072261398505657568781192395616124130550512124235236619525846759367865268055261662636034387858329513366823756716816934031200614376056558231542947896252766616045019326122769981834237864258375580691276257131655175001765551369188449389032306745729189276925044314618563394015551604921533496932727283841617707264335443097844190219869293185663716752582645703669482431147886021328853984806742413099763778888426649640854192425464749948025760166980297907167084203505008177569330179691494526684186934648192238978627096749387873772440183647520430205781909953324882983627756996628583996059286889716073582202581403917350886598582366488442338613507005128144252818254650372250565125410438337507187859202586871892482671551741567869243250061162892852754991380597754928613735794422102580004581986254753689292020142965088620504309011551582625814924215556849577686984426654316914419671948356547559544497510554351824155361244123847762620863737280529279271984272604412592738981467487337972446249204886499463861812777445931222093470463878930613561528345784172175724203318888640465584618819487833979901859058508086640645362963092311000283571993139923494558124279533675807430313267817902127063461946800403500671856680352448336543456543682446598759531341133852615173587857962113321703337865497240527072387475904692110975300022108796040505014813187380836421648689882644028757413288813661322986110463642107128651092144533225222336672743283913573435604264902781383012642111576259005692692231154190451901944412079311487021648470474169457878169646903242437005966226749596986866251944421467466547256580527162500901043959396586877644065018127936184183063935589914084140247235921296089033187797728202811063373528778381971630865217189108068481018724463878584241822806412006247962104807238989324843828064852528221520188697916295427492289173058703436714576338795725818560422388521127516495600058357805670195108714162698236720516541659924465421849049423070172155459667532148776908234039751551732463785942062970001962664155455762565154230254364018597695755594046681850739382642070421781497311073844321245503746919165828154272657822689115512625284345572359515053173159759355069521949018542220752100887552624811435799898484769222314079025874800681225260031413446028578438292465898363004169231832374860658215041042089064403692186840079415551346738904086587055851202561059342542676271079601982848834950959415251370968059034001025874976294228212888879497726127220884567730857510442595283927944490339386099837393327324540228416181740378011166125672026505677555164584822392436223679504327669498693251113586793361611581080579696669425818778347430480011169946653365339596669858583456610913114378685874850605200153014461574352548433875362351607192128684032300447474257530385396850664429009736974132501946258862366104521905789480653676002048822953735644503909925850611425041332765873063519520800070297274546459250384521339800650496920958588050414006792365865845728311475282471444594082600723837555795657762545120147694313029721146396865630822061955687248867778678544395278958546275636537788783137080997274806779714797026357713303804033742680683890285036985701511520705172443831361704010545391147656121355688515278928082378531870037082607929945758272991742456409756581971295470070242077322259583185459860338793013915971671958843798316896820623366808896244290508004273900041248430553429065466467329850517298134148117432673429964557703961752523446853209291079778283747396551939040796568435363010905897112811075911740213790027088721265081815221212299053513596773066029244240972042830145043099235041160225397349245849180222391604274194088049136103213103476539873157613420685595758076866998465792947231836861802589386622459600119867576804482571700156231847956150227687452714013048587719305008667801035039063268380477718706976924473144838591957172736647092396448739538812002934935297544370197608975564363741355678334840998012372362550772753366605193102003584225055660778839042164965230835490704790003853524983101363486329942588946167392274824439117589905770701027909875926817455251927688728671662981744262620045399121119602312320311523992992099824199121899029224475291702714550059115281989206589348989403466141118236076181853055531986859183593439801795773781583503080476336676093447029735077659774713977738613737342874765714032119001390966858035349148402535257290429123231667098950053088717540105537305376974796755614981702694209795263869553573705031936963173366938585943133737528738758290627145165169088044866525890097603000999457534518500420549718049700626172836488424940017121518003801534266271918796230220333510105037155716334248292057136144666468970191144321380605312906551361883904599084247719072244486991861236613523974933496012818045923467902076883235793658455188474113194589343670280777771770236692693493112322909073852061958121381350641207282662641523106666691417147754762308262460700092551791188749196886270862051793350807530085281235594808572001907696589119628947454237257048476448832438622113613929215880660156841997521771355533159908434671246561277382865153081469107309030885194061697336487743233457802049675489307448216394836664873053788511730401418307757915597234689718137669115681768305783179417617152613748357578784711144208287225844448208247436012247452057899949758184682531391704695289734724112432338153611903654680273668276159237580049820493569183139777590369881159292679882177427757330170312354105826966768226037351253960926353649464485961143219934939502410209532297177710207916083325186140455732090466070781472486453278910750785048059097653507331855893536519730474718734576469221232073653626999010019867276179776227272053984265579606502241749756734013545141862982597826744233689079779321160675131839726464311633586501087398196276846282167381574689356145241841796182900400067713614446396000962632271329107475329943304633844089681235676565087406827648790890266840813142416435992969952666904057158722686993546893757970449747265022482280061624526378128303727312207469550381092538916419914937434117305088843595295964703018707454053697030102947253249356528565670856766230645048110494008462374268680281705656355599584772014938125163411932654847038784495010963468872895777198224684279621081999635991071770652454541793245327989774954033111831073212289042135323204524280656580435033762108566261315012884084562462226508882328857891749192033750985770175631230496835074240537143884634015793454231109696760309338095502276151086968176393724433905126692801289810997854725311763468127231586533676045365540548054049075497407295583869412443335900667282981609135614346585215817973252350571001632409134224631084757434293824436370001579895503729520038557227654703704463691265922159086641265163069894321206231680802710383168540404164990386893246768970477482914238477095678323534626543484880629795853363642145328561863046603189267176453761764395554575451124192398007489399071861183476907616902292319758857857738148791366240308465078398117248923421575502636329783475174594165286216095553739690864693135435175580931296611128112496244630260182359169779532365642096724424628267192842311677704688030708565946832129631403407369557298800871423950190408892059336304574225671633522956200994925527351504027057073264552043898536956593779703132461704209694447050937328124862014886369847706726795728930038934624824401383500109497858333371822609821494778206890248308694713448306257155509220562696264084999205351756978728895008916466256492150479138914217222609597424974796404539200115041810733750063744568027969029395883594481329309878425957678719260566325104808796951491984326512925037828911501079714650075086974900377056502245910191683495357475421580252822783397706999167862806717763272763825370230055141674480900304981193712128449540974049606771639736620270126928824087208123610447667009387322082570661914701858177230277457253164796624818762839373609899259818557361946331456387929258552190899322035778231875903211450942902444717779909983179622381651174266086813067899764604064048278171805399451583179506680197224733990204285926019218048408979869545091248867461216012664469471908473006649605368148119611803916277652735810387036525249910796004822126689411629107603818600463270996721134937295813190313394381329398432035087712697262489511527842986489717824739625151274537340069698424814267352187908511889029921224193640880504684135258861039974278584328569208658464761131014333156512861994797001789371293979196049363961616615040410869852216654407369508278430815609470641998773340453302775047363089087922115640459026846562668840920970702375790234881087777254304392715396652158173922946253200157000837995774112332733934329988609396430334422867360085967752653512809613354293716543395647742848044208520201133551524420909615570999015657420741195389211368553834939882327628069003222847269563628618481977483124462327892409512104858233219592614260783978549125842915646490900770232911980547411098927437889151944065621891555316000480253334611922583504747472531335302766509095175825091516249684725362806010996776757707166839204662007023993577454978033947247584900166780095015234960546973814207298645522117183606241862094421885872315212536702047650907399188454539377844931190027254981755109647741654557949258032311044969452677790863136136847422435880953697029215106061707182157943648342928462194812599031006182145271101896282716850080094858315000904039272138634583013747658502039956457779669901307189929878954947701960627593544142068541925713224147081521462386099717451032341295147205183145872258919845305735901621805890151108366484168113899024967191829518438492155677987640820129389145792276399990542970028181738495551835889693866373816107180547930206203603532404944435828773737406508863215273874467044949190397014199208250482857763764495227968239731898493563167105506922034395775299798337118540202083641413401128536270221915600434138508759907941361098466084463300965913192481056825519328206476256147949593165681851607551234163888884412704770554462345304769933311127875475503445136247060666826095205061548734108047201552144746590739875795066559465692506248149399681746888649143809528223232761118541400701199711836700578123876974816503655082624218427565884318572467711517262037387920371729113571200061252782947476521918149560289420834140972525842484031245747972401629029585169780358446025948604918589814506951397724518942931468595190972050089246868087423995107058107427737310275807728858270342941601020805471332564964233865356192893831126030866547560570027582734290531288159277151394759889824735165228859831871471805385470718315839689841412281644966409842148790458852588808920549369667355664515094178219251163650925978255648731060494904733599720452037745887917147488873845318098837844409936923261300420072474961690323540307546043910418090998185561495769199879983138483352906123035175397927502009020099351532255454137378393713886631263359364614835234769695215139836677826751565267759005695949030559680326448895375370460570519390332222953810533697253304039624419471927219513929346342465181175680013761871867982769268772451655841381837113914156492543695092389188934604882408923284128014195514471025713725466130760753470479062047990800372710056158915738800138470568669738147144119308897630399156179917624136273157871303225470392278975354587603529365941900274151421095579582177192046625368796348332854903702451589543046504355139961882187998595013098308257255424988856342385197778947091944257075872496613277919040786460743530389861606565295296569293723613197207374327295831869868246704700946416889478141063134023668255162407339681766582192492593460459558497068343793422423293483322658268728508962574038299677545844778455893985127071070394274272747225178189795820060918288717546017355968852321652700689272051524871231466720333755845470405338248067058826539853728867654030869671470904176248500756252443314594972527841726243084926379851659618882577849210400443992519810887063721345058045400314721477242750211242663103135347092602485907890947968299612872387839063222892669989736443576533258497673795167480625743115484059287902413275562218421055274439226872915927091028552039820353723086623786148813806390516959515733580663965576169704756668198100960764711025550848921297937087966529427696179511238061498690531444131553189996665468665730273480965736242977719655468381426166231982787655592897172564463387587702577331876603543459855255956046913400327936037378470012477584124379067222932509373081686422841790864907588623328793645862252436159779045435384573912236230168582883453679752526511759345616167699621780680630744293539326362387041910269235329046243006270082008720108901626844646263080723304037446696981455843843517726243296568803001788149637577013381075391119855017852568873361698332133066772768120252682089157061518650453871597908336034312896536188976656679218987849917311523354336315437724720864970479329372962421453668441831002196053517857381689758486151763239389964495457746231267346749303318866515635572377407919933433387882773759332805016146435235916229570930075207065657615044310687315556735933445164199475902703345108262178927619354772469304788590535630490188245376470028457679071281128894487359884909781588586288062563260150204491938024948437600989730944295489053386454096621454256612771987904043968170351972236516251012242893132716213298209198506149939620763028001008533788478379862649488770692881272946939255698139597488182230418100332829802452866352645533794709105444671951091216190556786667385898074099005540736044238006642215179708293360856463224840424766598713189829265258399514539308928286645322225924666880429388412453824827177025743214035140946527879784449071291853924935019903084612754466520098183227778036399059650809603295098886882863773454608807647120074025905282961896869372978622971571920107962257972879600279874456900903742080729368477613999076708475185202482854064511556453143691935938020748864794660789805165695876102916037156606880802335049567159318915792435380319775445313201335626468949837061747961788265490334190370778223316644868189402907642200456874953445183160352384769784152379071427242041230133937251010235178982771179661329503022089974967722512044263691030208271224251053857061099757993409076504225815486905310629426646639135911885740697380334595340016152655593729281641301747141352787030904792467380206907050916187312578161377383837675554924305359217188263212019650270977701453789602701833923288564320477077170471737775908512048121126176717304530131212502457171977017408296531759877346621078352217908250694464988333413326574374204964112766950830478164787108298014990019585426176144808891648156003275327544763863612878560174598944645565803313065157938155165963745226265504309071000086893978421451853983958639323935450972486797970628846575772410704701920222409096519694854341880097746826121113212912267242839857574826047692298494399837722444008741873617822950190094681924088145743601715681514007582603581677919911850093842477289154617023287153464283753536398647984818741573391430298959982684779398030925861326066993817990339583105793201607156549767968132293637091231299345282810090328220622377036551848480655464249350402720857473104781217745571949738499008522577572499052267909550584506121886347403576740580073069769957567663427004083035582587720772883055129293239994296444119018917147864285649263526471061926415861359484918121941000935644220290653109433057803979238887569752918410357743560127030191660096064318417940142681977183133035845058602759386666421987182738536529897825176320268442888427072441066108294736444430495319044796957931654616006279814463500763485617602589361554678751985053503098376603049690720611411350434548652403640818777905093427578898968008612493364659637520913192083272930850321796405095847498401697046248034965660118178105771317206375398553019089322212785260307975849213048030670708638173715232520434052927748719097439541759040710778580122454277345453911028962433351240105348026043053396844793301763809681105902733544937142043080128252128632821588890237517018648362959223629661131253588001751450542166984181539417524749057344122915545561167358728407054671291983817623962451649553716614983009002843172954551888655426169505420521832826931896238033993366887446899577909748074039438181969369830437577135307250129651068816787405620816891216070545732931271402865738141790234850561169877626213313169532498927527217205294217279059813094558623439201152199149369356550070431849544498957078177565033210057235289468914969394132490387198357395733639790966967497087082803913883675889420092199245291932421736438372061260013802633262958118748790009835588784451454377426645557195772417380567522695065912600761007016118636142874470819030614259568301118662509843393345665900503954189810916194332774753308338317509016538637304969225224301425631005607194615174965731611449823079774339827168314297010367702314168330375425516905676374330368881462507421623023493786740170443053399973088106056079333009494410474551555117377528870712567002896030479816453648159437310296190367092096556732412917086294059898245822086991204172916616376048374464308369644972155036502473576680697546978289911949525959563395688439975527658193108250838095782332812928275054674148137414697832613418692010660478328304521183615275783079430467059854250490350781309359231749055699309463786319216038193929401643273490829894575125867270488144445219815690807557110781675966773492884714256598932834539836815364707760454861363877309600063885911257325193426050554836219694644600151977717458563908558798996902399455782910585828544697138201046680505485860565221907461727746007488331658992597113641177786967855480789127064946970876327769562855230371222580731068629981609742845363616904212165435008884194187976243620541630630911976143213563081684900537526682756319263032073702614758361194951708423092556542752163440356305901510887030362080956471499778639695196168281799604458475541414716539735831120112920897114189680217604769897831030803011420179363918639852951857022302589667494315379037525835418380327634563482933196589013382135585844164568393068492703728597623738980314696956718731642110704025787416084090478861290100459842981161487410257700156770272876686396112170941490926778832841636141083783991745262245449977308956701731746520263933801131852844404472432329330270774854760090583339657339207108112958565674109650804715136279106285906368147091213947281316582815922318766703010088051097633330005015265512498119110340323878299236854614625131831513826564115557857028057059820813178728425641544465833343807648563075267758256511072803049308541080855961954443618464023658696219510820921630969180661195565066749360407062793843707402998743287115901263660942644829026856875710030838416121506395668711214139782893383684696959604093419255603072347139704601431386492274323667474047999265442026191984711043776260806946160966799116887338661153733993886856316403155475406018185020904147964165863828878591799869553609230700406470945138057334015469723268832923143721205753468108902798589904260654822423226336648150685896459273455499218853368476639399238793951867467932848056746363033354463818651691646349780535220221234423883331861605917123753831381576376956300947342799678261430189471198934500097202131552208136258286528808096465120336658278639202312995325903644239349113133234768430873141666769595150641234841118788212202796160241005349527824660362269669682222389918808094679723095901572217099571854831717872820843514961249908745392340573102657748010808619452486851033392551697909324304794155737089965291162388231744866202655873053651787876311120811202772491983524258496433107976272053994589042675365700348802570655069232013990881983669794719279540563469005570929398343732553308213379062326522088426942478766359581923388757372083843381080330215203357541290317302257882915360393509488646111587724669810271710278617858932002753379751413342829083295889521242084686581409133203974441931325443322091785401522189002463150316191224792663713198582257419360984300045255364130872532095515982401490507243984337942182025436999538697941151598870508860961969116429243501882303066951870083970310394049039816275153513178512929164724299580474779775194526292195184636120726081481090761347365806033949189086683095998465666847667308099968844342486176566995146329577333067911268126391351198831587294590098090070867396742729548482076874283684329730375966783043485439812942635447387033942757009918123702211988604765007966113220113683132893764216308579922409431201261522781185823327901620266642696049246846610884716697945044535739063825544647503618439974066980721892264529816550968082071577615477016130211787976373002410519484588718243049646665212084493604164151370336468272934885264455254220130722616074311466121613499818126530143063332610013092896017239796160331682503059150879891586509770456473381637799896895025746734671842214302577450044732279918028554438197952404081887208200947733943577210275609763155735849982722127202535725691620693671364657259372499869954833154649369427965334753113156638785712530690447939802743065601036529849070387606166302532572562959448990763634357827027998967355193090336149892192135912720229060482813881749169095509288198731304094009474892392098349150409869955790416528783073875382277485081684444329600441883767389765217386608528237439849946901718592237646488715706745394625462736167102080257607006342576779454180458997858506471557818558496977569359921932001743009394551241579144642529528213948548534394838020176060291172424445135968281979447297893706397354260615380322490443422077351273362186987596779703431992862354129681349410344020439554609885724774760530543903331397554203275079775607737119649202094909468109413694875160826275198389973064746677925161613089052862096369824092512610337510214103719096606101629845500979248451036049082803673006569849335883171973870430392836473373005014127851689789213666324692224552543664526965019819114239220505917514058791419735211896090348902118303820453590814429526559988184506563805343212995666086910694487044457544490384028983918600463600567458111394105071142935395894379408331251486753853272972864433160390387588720650446052414157703183867064719070182100808892269773435160361776997117463618363546825676721171511019544544840954638176279627311295007861113490846723904379651719992135923714395469286811689505937417079461111364334995667305602893446578182305490455125869231835961858784725864623093718374116838522342561453667064739345010264902082858077895914758303879810873470576333196175216654824557871541760559622399875021876965026733464173157612700132138803454007312897907436064374560148165860581948060703486290129313712781305789933219109640964966766351538230228076976279103223914887097695528552150135766464164391189067652348111254879759878011286543547429541350846617038811310771826029813840332257101076357050675573447603239079652297706959748867652821428146198238779852264080445858757051783024702288851175614611958767508419174639110979361254276165892382741373700711515968075805108311190543517972846970583111247650946128325870408794705966388703840659188533545069847619716248224976841399180112797482161300013165072904869667356718693323483951716130674177193847326144922396150856092451512173757850526302619828130898087337124639907226033796670788031308511383888434734068591552905340586953111080455129413111226998204765481962770551541807329876266596031165536663773660920902761727550337543761962251548102277502174088044522615599355220415540467667889318558065996272689568225090633422202054641489949077857174470207081523902238544142143225640644570152909985579767866764309957940045855289110225942998438159040291078597949026002244118977933342214683812079175768511994319093376737421017715498640762999297467692247802883989236871972965188697365146320404926048654977771442867088191638183257968750578542136610623652494228968887042392561358440898138854509961587536228126570082255994430364977754212553739490793340314063873917349631051071456356561213704061158123117738910924815357101225060889577979766271833746288501513935954693270962648144688496547596967498444564259254245950701125784074467072219275749168041419877114484471848761291491580152921568978859282539327285735496590030599666374564459261673810510214932836904489356673494809651757016923123686200955930988450533484242826783585153218212129082722682532364788861273175207064505252056288227657834670400888814619357255929099156988193694388722575192376330561193551402177163560439029336890073165147816313061019597221440425653723924420696122980330831157211853302186022902820326905272756977245812397136279425684068235348463971143462225309013835027283661996187733269819506217595599526557216569165024759758748913258291699466677741307918451960970628737929031393511893295029544003863842018436872827790694368623216093234099566415277761509895921747252921422235611079956592417732419353820788801264246251771594157896240150784659458888251183828850273289304630182870437393888136268005358975040697765834525919687332290798677237294845462483874433108915556321282257541488597767427983665051157541684793540995565201783203524573703592643668272831514614243916432535435949534545476706148645056635327664749045756295522815364544727735200063145457735090594338924304082007133396365304081374171866631706125559292727574751200771093748557534020774756943547719470285943052001317578407385955417331308201884111441453635423819252152240077200046573532198256394264494328005288359889140833131695530650046363056010116766916676427493672337145966665803708972200179036016763505527620118344348678882984864654415696485217259462263822169647784471806765916651641038684701945942088387969065238957667827662562747653327219162519663122151874556631869329559655693364622091200497562850721000333200209167342769731945512965680168986007432742598433439821895179754365432578906913649415193776643028582471471477661075410575517838203151989945635724522994654269174203474916583375053111262120774448315672208914539437109707394370797953174905802837639746527476510612415685555521388721256450659749320537433882396734082943366162697273195928181306448184343471226217124048452108089894459259012119219598385423327226527054612012636000862315066141807900915434290044784783047479584348835665203578352370546524619224705124901864365450276079327547936916146077120207744454269114576291993266735247047157047085556349785659971623485884958704582937971240153660934912854532339515901957572030706411255230334888134448593699796017830043169660097592743651380846264375873559914393913871586926640609867784162653055624401108148206372087784935312135381738082187055646905415221626899214978640343401964853474858932059314604096532294466187684417499509276744911605777384851119319583109412475711160031261916315753162794858221424919086198308215722828312374279669118208376986394151995244923889840185313053917489028495391834815047408521126920086985892809274409504221167644849603521497407255571156909335439638330213375662792862577821570185174804863184032891436893862516591844849328226568863357916738245950086602363778136038897533947291578895554660233682449414922944762286402183650433039345748559082371225755126411255252014684977064007733091518649901098170746193992993666825175126603493658133502100898777098315724338867163430329698392770796266799561181863197571807260990679065752886741358878545982916780727936329529450590046257780665780394566848373843002051917318482907159273366734275546317614545286331987981435998836198257738964261555557130236089640166617815128116890121759682627368214768825581627169451121428937632958718873074406054828610778051334572412519140515767722753093399570540821231569890869344108181634864773496041431976191792326823515629267037657058156711763141988867502988911182323735209134285314759362040170311488009236045288141084320885182415975655475249376833581862691275601874387779678052593969969989331079326855908864021898509447334818784552455019627845607812546835793349582359526274824862570527826277182408823383729124367507570192850556273849572253097509370229287403869077703798318988562019297956738373193448425977285623766584162001726075368014715386081175262797171326043737002532276815525470194278883069333742754268935224706669373430339206469723255394389313790093503507800752611550243107211103992920012952781369965685285594803999920402886738170688426446756394700160205852869942989581501563256551634722647709410975892279396573104336335959467470615751567081133975577971734902113071594854369305534848039112637673367202713357982221325965388410782169705653176464563673212490059435909058080839105311047270381162451792175735880163846822825959760875570726229457658879153067320700755836418482995797887679701616155369259573401856896077344724267553806094800384740232687028339090847216671042427849448501364169864129142745757785553397922231981862963951095495133938881206357190719336341821757128314006035538478038847970360959334884223981669611644424781863946793059349075115927317068448571221512673769916068573629302835207895618908078911833840497710993788719694563041724328910061495453159486760297987537941478846941272446955918188689684954339045727837319194461040949688705601971269252886377252127660416066365017603693577216879119487628023330416845013350815764817552506848317163741850198463672072200704093842402502955960884005724864765371372738954148335902129506381825575326703634373242598869831659574749846500087088453572249382633748138243618125749471732996276554385079776193639460446886523987912308414473603514448157353412334875191221796497497322684991216279765252715579025239395826313308047044575817923967709265564694074464094896249346352603477433539751814082082664082201358829968319958921718347535453858619264482674687287817195145762164119342301321814627079939613318826924548975716785526506270489650469265810087965718889118738664688532163912852263686779261628732745392499249084078085340996802406633200397807646180603088957669391776869116859046993774770377588276265542036065842352066148171265156032098039618245574842411497689186708866050641436191984584794458084061707913359861070634384233051156857380034601898251140073580442007384593105155566314342468254126311376210917485979160496356189850406648421547271684005798236746550861780234188339357200083955149856084851280512471863724748439917128386332645853871663397701402072556688071184676231501555655077723300114535300626550355331918527341045183672937478578700077890120890732039187333428579202008899333242361282000004287079239090587965892747565531069165318296714303495792260924965557827822505779535273740113291245869601041657679494447596021781518462077435154538809899671545819836304910906374175767790568511422332801557489446183278685362199513504582414651905802927981565980055692704250250274640309125317132554915264935925723270315022636336048895790723127033582630066245253253834179600215300700735096385599376694182371315941684543588040707895848972935707818235159331666531449467304913673955881287526944423691122874046899245594735437139836907075427232038287842748130258143712719115617227073043293606357165567909106466817755868992850459805332701956279626316942284053718024581076678721420210300966570161309135725755882252266035135159733655161584817949581645958819575521181658860929003756628292426586256950425523012065238633030032687716710159446877057162044960312075179980064172539188942899140172056661874479132796731933739837482255291979851882855555943647007817513874550179457601204390686672867100147613949371576967098794049446117779149784989484849804230686800546838114346453058189934531155675033671130502131322580708772178160387221390189037315112686306291388215386849895542346955435699760786479916108632491215732845465412820655871683131718396481246548117077599305829956603290554033544736120788910033379438442548376277976916476036910245051619541427615711877390916300741273343361126126236353597542411651788494469332745063765765978858223331715430838654493899014634739293762918499951354658728999441635903644732046580120674204968053767438099260146797678199374487416040114658776704252415933079500888894545571539032850753562190693142774372811816419578295153733190463526068999867639264795491070738359856132875687693133197478208776374802846780115077094214917923171775842570146186718476030530209768349598228805532515790167712957496359325628043972127542449328239880233944665320375325849203469924165802906462067748589801462446934021206405818944690641948006112944456090113232768211091712941254288605202538066802047881006063588085979691775281464223020692603710777121329431680622817288417334679820708217377436755133914913606301606296373917264777852429645905301408305644566379399318850546241913702789256985430235215319263088370968067186819644971408772708280927292355047398192198956785252933497242292496485377101768784894027015969771565589743419440503948027221079584348188952542430310643087859915942146731614879852952401989843875049516574227156624779223335889875731754440387547847576752371223576747746388380077515488429218223201887227476025283583076427249336395037963312716832561785352224641638867842036048154194447356413333266682464173300540807752379966502948737593557533609141045241110365157660864382413586893775032246217027473003311530611200840045511520469094709016402674528160896743378236192354854125826422129236858070636185130982722535579297551873999051956514412754564418562723488853014006522386617182782666748133840471959042986780385902934611100820111564940282410209461518184153994545918244069980791019126110050574265656999444602311989198667871534790122283895842934567307248655794233946851139891822527103361674242104501710637051035116682795662106246800562666028070083243099199708892178001367939301644815964190177973215804797362513308290709628817247652269788194155849104858292044110318773899933821917327241001902760616597194982971926949056628544001904094219622940539348346753180960719372830744508726465161980421141752605857275070005613508835859133304116887060467934437354979963342220602982695233805598278870116264200411910493333348336922233318457135388912893580857706729679823692151447553193049292700525384108014113387362846033040686017449215167463270016803952942856534876798484190536473796142553427077969596662698649422566803053745473849205934549055465311849362689699594504747911829518407991485865760508504869896536360546537138767648511375242221837066608700907444931432270468458297717495157000104408355053880929572637727813631723984576179594031993346078968546094267521628511175590822067263305691307129083360433872569630067198937637753810142000401011320022781427776445395422866806034081408769893224522383679705735874857104629993083508287403334092821111352410391389903528937263105428283503550273216731414117604985967482202568621772178514178741139999375038901200453298950893042448152913437804027936083919863151521988909486323718789791701612043091673510780632333807362246912721996945635094240642228493414034614328274927156228227820937468634399880586641804567072219494492145644137482862579581311532842107424074615773028852402297057618585772647562289771831165073645589703172607346643143095087910754457322993361195257328096599663676131644610927078033481928977668275371609751916651705375134096795962429271862078704462695754934558709222970466126888952445069060030541785331014002318982402701037629786550830254383003632791011925550521579825945258762430016716042799264853737124348092905379734367536686385146805168261527202778857130609027075937913433545835228581837768362510087443996244073949788283053691475755233065342536432270098926877271499137902517814034196609071403162528693432669422422230150542743359074447089991253495044222856328635544695726590157561170977107680902217851867404111968835049851057893372259889368571030630677011170208126353974424751586391745349429060742668897128933075413338883191022735139693103137373860931874810359037203204307334633326938575477549051198708440417291460872584080379169159556154274342220054857132572548084994392401536070540603483262366328973908792940109157829801911773603635450425759110907153801586749069903012847485704998640004985015157085332854833437339644071286492895639318168600699818251356515918161150023389180388215649185617321395484004836097481498360418853302565251576815482590936230936670562337912728335202163507698886812375828509071942530858027753450857108696928910397364063936456195141474098991072849913189806509204583419287739940744703642180729042356401135109396049966938266532428145574088414513575231284940124348153126591788999818647159248003834836778852232591027790279746397472145791919256741482972610786746197649762492812665397452178987613575092441171717109308308073063170519726216235150298219792172291521089263816419752802318752015547706667533550650281909475566754652862115772064751666708206820924070476677248216263597731469871792624377939964672888541887327766885295693928002218496743919235660879137040927888689576197612448363039027216910117900682415574545830758810820146783697375688461912863244131547355760671211041597085189072383514085398156631576781794501454892797703054428414096543511463524182246709360790821499353083212571100815229165749862738715212227613023429147207019936952616666021276990839439309660849561215830457531854109890994676978036672558630873285414983797655179457518961571111287637191306800473520598646141030797245931283164634170414378674494599380341542681872659582780003975765922833192626893464656558992752093304593269780453806139046049635612920303722868049350076762305655429952433391266611624880378815721332271796331434919685823077898512937861542049971185294599402374303600876767803762559789928000837284703766079214410653791261139296625132482277843490537536417761419306479576158767933122610713423206835483940776810558628667201234135310904262063618023625608298617788690120934463791448019336990861371240911380559927208096321092040076939079403065742519683252703314445646246201109542742337334216726839596384947123592187248256169680703626602085557866747210008640065782444533439805110224615659839355120400186271953791306917676341115357222436747431675032530125168838135429420170530338114799821779719222707712015969769328690726285761779535120662175198966936307481374256913980262886552105423445460797604971099898926631276716320697668834026905720689513994398611353317618130694346394057638244468735159184874424183825560198326963813229967434616982688040923626811516350701524279571491846301483942152897831647604553525256871641641664012368919426374360071804164395720172489910495249353107774666474718450846509607296894212301553078641185860607933908934744909989003795870309520451680261413748028242509671592785416866359745736040677793633780548659524590758554457652423789599783346637901185218095973550146373892571559593837680663312981992453409134692942875949637130031624299155828937444760791619759142970575353493731406606789046043016110283133599103707161719446787291817780536494819730995822811140842513334016928875233148028429662094969566282964898566852874302461492434281377848234509398512525387053290046309280963060303773577728373093738706874684605883548964192730984037737633194514840137926952182889030173643295578022519974932492191543418942191101010139470875201653381631227196644944717260642870788477348100664765190893363141095873586813620676399269367168406893808901114654775966641820849554003891504724632863037878232981718332821583046356762645671158379712007750633139272532779831960441014049334472269778953669030457272544368603366541497575115597484864729979066313956104680650852225398521220895245195787978796777105243159364433417561977736602751991580636291741808095713955439355658325494336601026997636713712323418353362821528028118861796504638889801959502724931387599506265947325462559548847432140723711680042382425654878169331781755547873588303222692912729491668992244454828095317573570050387607644358264208506634684727747841880488661017268130819892405409103600842839824593944580481892813475334732157943376524210400936618955093093755247528564012312335324525729622269474160383107052258870308032756944344591523922489184989835356656408395625015170786676123798349972993009283037460345892320163422582058929939794164643165092680419662853589919229987900992768968926662433140183596839495574245105478016648405919830649746420939929632837312869250504607816976333441743309611596678876788331187488398365439486142535585932221960120478934444859050680148228083546396011489851981101293018225706062629484054239415997621454443649742447064563898097015469277716834875703831250731164349261473906214895500308560821805683927416066452383545086209414627220160855828523438228042135448411556726728625546881012330071144758768182702691794981505073724756293021565367763305547915013960117663021110222649688350518537675894331965416503588939531079325477220560289593056063387391523399107874471378405968369362449051384656348409040640235762656334956119899865594169686237810346687261795769310467157019975679463771973714518052968739054395155576049499467175072047648004702493078638781254010186348705890717049153781080445688585209666538379546986078704623103976137914179773012436625611450153934849118236866126720828154013583175669298019251029721113383697713165392480180121739942388083052390333748799916886069500444324562974294350896551529093234938215971677875165353409549666563384257118116140731462286184085773188071597449865172604757783656335328916228465137887982612684642296406065557959514114924791484937207612274010158114903061906701987318161385086582627179401136583888863188709370272019696220309100972669610318456051952117922805435886855767954963574131691656189934582940521087498260789798930901985299971463028972875172767715196429793248449616233722574310207768687004879848762416042134095180300543838208114952561213755178959316617858436931302666184374366335330456205195826841351472937373151957527885760529804459135864597633405272821897282281217578768895949676522976869403480168399057996972989364156242199504412988739037165849127266570126959945165133785835469757189360169324509158320629950232583251441506288745292518292585136319877823469801804179773185710957271066116013755056465814080319855343941245191099034974934416113739818099095177358701038075298626775703690321564897508772347960659858483206544681737313165583760410752382127329356600590332599525635667581564771736367271271104922306509191045480111325877652074609286959592110345005552823539432634330150881242038756414879580269309610954845339050597091926628186964594768066876001615712716542717695587699095091890730385894408762758978722349257431388571179574122272328935010014501728869895169498864485462157996321884356008223400773764504259798498037728207314791293724600538684059213953875366280637401917416216483444472674848070424717177641584811347450271344052637484953963788706096529588001173035385430241948200707237968257959041039227049862985227892881272967015537782846701834390203477734536971527516635672477570990052251072977303985363746291852076986823984096974030919964381341260953556160427988082646721266203511559668635331099054843452663791447882490553348716896829180364267476006617244633735996336794211683074592617775421505649429218126519366606686420615013012150234407225446865460414908530766163018334685437030189338701747503036358765919999578384840772658729483210402272957873476950200875568462627814841910582112000794365688136140191341651434901082059139817191662713248076908904461162207216170806980412431936425703232209388944750486183471333054625816805525792097741774414519212124418464513455980104127944437307958807504550072743404833378946590229308026146360681502519107034696757959642761105808905356132371007005574206080627658142528047978481156888191021870620181032543897664881229140290729818189635091762569616004828548746749853509828445778877361709108355661216329524153787675683059595808283460340066815204842440926756942820754142447781906986460377195649722069458584963990968669033535767187356345807064450017671508306202916687046088629652022805456580733173504297668641320021320277885336857795680966424797610024372510089434215611390702986468082828647489776038100652155859585143989327463922563478921698561529562877146906251701152440137635101662123236889067194177217208709979985014030756627251340050589581156272154162262187682038726341157631510878602186000111543598508315602568672893808777061838858386852220302116379210882674602880495001656008437528712809817677088717324076270629402241459939338750016471920695298459177023931923211253090603702033256595303686844395347968642249267832113594779620870539178367852410718172368823934025202430487582912783281957777508491154332900033218871492660174609269346243054746468152387567862737684761886295510572761076271367786916801148529284958970291533194935974573542496396392036391426464714647255634726969819298186959524928042989937204621779257700121072058037494594403013608619498032353704375976207065934551508266750733673292795701920532119492598179688980373484680218185432615066508933196304491497744656129909274201728147360946617148776741869372211956343444533733070138210163585622384049269748873845354087594677543107784457669490504362841855046508626111662586042115684359027373073109267578887210157274465391711141953804147142031480959764142651759030599752355625014579550556936428981030772153059019621847398180996088552647547513154561864193525830140794160791166106315992015661801548868616432330326940217696770951460512732866631686435485066953551056484964786649210083327591537732987013548019658432567703764401042362636278192306000590498796384837334664772790883205660092100368210763717096675761073272808171554933011067463068561396297016228142651915156414845947524055002861103965409032741149295257679193807692228143205182964580742163040096694357130464389056911220724186430497490646488811055523800130360621240776590581538305692919179674889596570332241277859752525840157380623738723922705037621517448537269461261105425083290655677285561918313526539371522174590175280703011430303458823099505372976817606924807097570199954160363596611189396273785008645853846635055013287091687265330164057185935624642430582092619900666758039578220085105064628625210695407367998618700709627648084509752899276593201107265298004849614966560745301983076650651957118410231336625523019775097436990928692491552236158518871830376098832926046649289228230885558126406432105889803482302027540788957959824480136053235218008165854689915573713407618736229513079008718002004509465889411052540551208595888674410968524600914666917886457288116308549404855235690688015107567808228090955528349572701214897740433686092962375514553629884582034361884626115848397773254595537341294980322288032928126038097655596175599285205547979483316504638173886335837482497435830170819205993428751422963559477730435145943368752407403997284324739308408548709694280309385050199648059543915067494147856815324865369707736245296669738603787927144382355657259282877178999354666008995592598714302833538289730139648148028294698508672518574006680228981232000035454430198680357287425638845181424441927980798005754407769803723222342116288382548947297373623311661265243308820741296653416045083190119970313919507188300723431278566521879676597706531383108986661072472112149110530511503950003764355862910891703033732476114588112158447313482852198549207261571821664616357869948652002945708920368181098117500228560542607351002328763176915389496539291289533918054800302494871184899905053088438345567075914068562657193127528869840185201278806346642943921964717851659885768476439153476041104639738686148417326650111876283426716343446464339861181313742214591959771000340032482171592691992099284516324344709262014588397560641063446928827433309325555081870621403498363723581120910748828778660626095192825508020251668704617853198865969234498554087587264878363463849913333245953836188152745032771433407726812417543484007806262513449571643206984289085893463273149778938358322356746773640493570044054369931172352122322870441514073414318375661009604858198197638488901016318186620598752160478509291313465322713620276651842813735611747745668704437642705471683252764602965698251625557886475915533705200682885428384388605047292911879274739770114572165371487269315275474600073177078475773933605452568832646627980749523914765766855957826413188007231620747920405894056497775231923613021773962600172339280252753695079154806883773855427609703588461350911860263454099160739575081484036657681868177570393385307037952191334106175450643062382153792347916499014646595350189784679114900206426350642572308989058198244977791179684278235096896271951990847244866065334876589655228262934709479281912694225377737970463862625243579713426854819751953934994771969080533553836748441609876693006604276422267817224095410318152617087245700501704358205077610283563564067558747912554983565186712444825584503440642377237172601885408008939021738624279995395080492474755904161516184877495574924118476421909398542512635381846137397925837608497215179624149657338992197852305265662676979467233156845467321465838823955809869055408447813483963588563529929323494597695601489135466257700489605628220604806004604814254814824787158366700238302817691349572656822476468980662452292563827360126637395175241159656142411690747789517002608816441409112283274289354091498797691321511038766878943356430999159306101107678937887479305516108957764392101633712789161220431556319568243929840938978235061409512706573618813649750855448266348662867298357575673052867792235649557877880440017702393273250486346558639947254571052056419245035315661276043876896221705805649803452223945718039803772015756106618111030511832721243830902828163988661921505907381017557480957581292663173974578233073684286380405288669180935373477815307116928285725245734951704616344939764506118944741694285282718354639373557326076827159313261856744083246049707095317187806913140172070615617240574761745312452246204870247510951915490238659946352510805816991063054594084506869544519341496104940017021071508578060164683913186918224047655807534021507283072834473528033320766212299315554887143646198201929035750445660538244159090938305839566072854666883475599983502472376597612134655907975222948388047920003457505480465468152068258413827942304349600907320542465078642952063299400456720214508013527413958333039496840289062912142979017619774896332831963655315409890091147579639104916687750228497800190928450473559749592172756430719622685308096664701835712523208513742631505944865398765131547035733749554962922677574414351326410943479201161941331175207662074158334421055719974364347335243208343015586920370112207206838950684820579062368385440352553499147332684972079807185991918259897061906321837851648190958273262402188696392004444616956104911251048359000202480571728926658482982925151186166549456550181258497550319777363979014921011318184929103821478631979770952720990376106093395204789885754050251784292286781530015233549971875585885677623800292116491498893134757592321622177014643326796581366961478605925665078249030014341840126885059438737222821658938394755148048929679859724214129675708435229782764167001459193406001882581866367986662050703161138073399748701079879044220812759822207830220570924574861816938910233022442133862388121707951767495825852960690861469548469977081616825098259486617130342423397863649607336990066193556690443871560162462968954392376300917810639939329006521030685441811374096373026352594413801999211271700014999061533411487856890812320006361122347202400188500772348188851938577759730986754475752596178738957945587889970067934577922369149467060631638092603401611558081740130446377637053051616087880835102907046623334087578912295329718665343528908690087350340907265666958906357312645006766083934633711146526309146230136749597623788415157282722488346677518557962330561610549864201741826915760649986912395942718384094046786642772116196596083935128725447936261515150910238172256671325643248312250754047448271728340232625913411779300390507918415296765207562501215327282659288558447172282641080529368239234431310483772104611454456971175208715758221836627337011786447407069991749957065929970110439709261520445397961382895445193543870676260646943831226917492101111424730355422015320032681326744417024141253156100808451824791584766214565466937205713505760051442272061603645225710570622977062118074282873926235467199814833442567639113655950916971340649831065480321503521797731392858848757840233330420854156763170664431630647693200915943481444153591327521959422056270163979314724833158929497358737359973434506858360599809465243380578604634346576561888658376224764834035994628862537049351758081987179276902813207523771816560417959766451107705996846712314445075517126871684310549880877301454565852458854426175874000330607446709042132132691530558306155091151509366672453670347354255756789526288937170369962174802625020859441348021012756305395748386469473677712970497778508848159461760368854895510143038573618032399257124540774434343771251469169276988508414596224739466117426204740888456939922899709644277577042710095402012348285687930296039166958135613925257006352620855878179406301524927554772925572899209566486641002547770288263367318343426160847172949590372801184546808118953134883268088814226217618050354461446838966035466799422321592604522455803896740979544435096713571302841414941910926359661200650977191123958397532030371742339031101460681460125126350619707875905243626406491590550476039948249817337505293619881674913701274025549801452046197071897112210944112666519515192192613719281232230187715165166042344476765899030102838741123369783361343708239702887700081563030212401991670134642718947037400415898459797004453740798377451181756164063143776127864609826633042942306888165561972494934436539491298442806858306717986085647599074869554380750457255167602752394298098181776817346884857910845547486748879597921904512336526670426575620313076245965199342652495076909450762135236030250258901023317926211374274972635869551488583128055717500031522433693378380719407312814841110810118772244454224658881383773236269140095150697020484297189883459448330638312582098908873908330409612461768925380516551943830882840174446017822043304758693921524767993430990195595649392261709195967002858612878412581037880351850633203440702114061399896804353324105128400714083895993710590323903889553122478032785085059647028997364786813912128850592785013590032371124687658024725259474908482168065629098110072988980579686893078474143034810978782604821915940252418253855316634588261995492393137845385764044210993667381558535685773729130285634691777385395891534571366214545833794050083361279419259751856931119663484330189970912671029088305549672486571011065810991313637304755525082946430089325579244136169109754800229090204732154126656585539668506312231453990446160222685494077935785134714449469384210876564235075471659621049718365310637981838258163281918123371884288672871111278987144686654875426059374911493726418768945860255001542516633055424891945913039488546996309203771016291362378629869665800972805682450392503461940296932765770539523960282295100953686853314925513286131983999982679350740341107209790177719538012842176170842075532781751510429330540141125189438293473412015801616892343549347529758741524741260888307190536276260461537219169161330167356577443124963120140744945954827796330185138667383063341809192789882944058759310855326819481382837400260808761866625560884932486949955702499005681013402624755014223309669924988158782645180052380019965974695797702703271293555917891593209794886166505003857861431893127157288852269609337634992462300477604333021680664123557857399212360298157622912984072727738296424077490124442832597578711137478020867220698016806937957653422850942562480876110571119889110450013921012854313733047859414328075068775486423861513064603116614413351802663396431772669026511452602868986006877137012641704673452314933466748024819593006283454529534955452787982431322645091907887021218153237293141275975645592101303104340261720609058403527215374378300763787448270524015424492414293749101461396065294321634580530566195696096766719128619838982038546768005009848715020353327392791812118729360828518973628241874167537926891815339229665101569397204914936585331056025486338471935530873853090246984846350141431559166978046314869889445683763053032147814117173061646515336721609385304867406616793467683040512521795032675653108348969423214520032834598435906281910429441811462558941113852575551724792839828417868522003221870505993660866474760391752030597017437358274743949071569272727793998700039054208626368004642987153766795084188620172438840629156299646445688265163301285157113271775232902996223872496661413929156426849415744409295896269856323440250179742828590516106223122750993118002902749067393050432872359842207659629518870556730874231807468825045992224097312042906305677518601117035575187273242215018511545828234322283292973276178003940131003742840585810454593982252219724803215471844444073744714446221526955650409075316483921582661660114352520554531252297863288301010924423064533411252735148661506808025730930193221701933068599240119322501467419882139099612880950771378512945085034399254276248698142991930229841347768164652637603339132461334216005442589430738323989763025742926717135728527622137648989623848198395775957760461967863038214785394261028448091752165929666797157120906344785544443156127913517591038015637158966859773747151520346792780124337665670390187098894577813934142484336364548585427032668997800767040309361457374105902209814623300525928230445260911222148796994645781477051492655593629859361449780112536149823896269735702267718042505233291750193978195623067475963125947503824418893550981331357237219882264582226747987538455784064981486058381611627781830586923435423299387045082568758904707276899564865154462285173665278155210008341305212892202219516701912213886665536089181713348309351933899857205747751515923555287591925530183727903942683587591767631111580756215581855051492244963284975077924528395868117212168716781985506294013850091140837876997539049885579946353039791577731299735228057556509411083936406866983424865464223131381664045700646022395126819832458459230742600049755423015290721451010666469061520214257102602870543455629666781539638177492814627579127811016812968214307320838390291722706268662272460225893641990486381514230692520078880513307544965918619440815863741967321916751551152041259607616911873933470161955315833605363752386082053983368083204428387884455867699780715171848265463211479602429452694266300966171872553035151121760863310893882254209176475503732526383561233847858156284607735097182473639823242294698816169000073346205410276275104290537476842139368743876271303981301824975518715964644741116896547440683753072523461653450745745214317641409235749185605861552767571282163492550919546899176170026864708038137309807313251776297738718776945121814128419948882646471940514924524660010433640403548993466817924634855809399406648149870824076450475949261633009721782742339433336973246606740618310824840375867022922662615637740507068487584935357792483739358635427354088352872857774584430691035656222257521227615648555448061754941494789532254496264337360949509580433259559802502780703526177382393906330038370666337530254468422150027415780619168527204037464151103349359312817366360243654675730061993405466717204034721226207192998262589458421104754716491978913241244673841245090284290354319834419391194658173217318360640427210711110000481889847509678054202972164656193858928625768086204072913937148709725087735217062015766963078387228867177875703001458978244014724080621962672764527146160263008495051414485004546602405886106863640489689313745674169376181855717840999165490093813443672195130621364184991228508749818875750449794063890527305245815025328112038492587488989718218735935683353626582290663874576324109030571200257065170145572187522958054057950330072650580198158676062275408166524310714632873781314148640640788403300718530838322239780838135894414831441906608224027271768219558329497637596030819030368562829157772779179922984606534787813127587493007068790408077580299283675185098455557240930793400735651551525591960883959806552165797424821261856120351101881232762421465779314363133879933677678672216421586903798387634141457149966567679466903624477624357897419686248725424972653043347372545622627072477899037609424560346122587276660440163192653187189820843658263921629018300646771147059858041729375720847922990320571939906868577601280035493374729143549124513016384177054839606250217292570827010706927001867012415461146164823931861464553542697981643864133842206591484565275461011881653398700264550371468535945855142946430291836782640531694239489890761587372886657628807261453713591905014521320603230013572406694420505602207698782249009841254398061299678702938527105097387444795724563436123185742704854091745279651091298093256031028538870353206925961380595405608838371321360062221097118113508383229262106811404928888015830207967236208167562484716016006678994715254516286417852854995991509350839367181519861494183911803762880693733600559171511130419936910159962329960102917620672604916734739128317531566111496349667740872135385748371918294993536898995164014398534731729566600978341409282060382601835228363656838455048617307214128700786254541133218261086081438536315563911152843938129453925598016509165162995427886573355638937711303534949794150873573524191346843506314323410538947547726601160316265714061274540002914495410609645144545740962677372936737946844513494184932754402091340637427072313956036672765940517912373080511936032314777099155077152489145067076712844710433121893699659075910214556853003118155785182323594409442777966005324010450061856194574081323632075763056564153999356463788539477139720822246129311691995594072293847435962890478374466809786212794544508723466485494631292324027357392404068596270230891787007566839096644675651546679447904206042177801592941712315135971458408530836032471998766999143429774175565573586692060490932451445396012560142488168196445394825951513032673133916119378523559349072967047802718007596934381232053377440356311485742070579185763335958705302824584636974369973719810030207100001479364407872110932862593678151553964692598187558373004188831293774218467423558892139630663870010264648643990562322582156052514255152180032548323556883773697906626048158699188920542813097080533443916500218543560859218110318575432306273945521302386730398835516048444698253777708947471996066568466169872649866986040776156653480524768758946024602187409350888714365509681239272984188135057633666983427705436069152954563310570724381921855685725436696235382037682911068635326501473748450615257692765560320112572043627763530165630194378510410579691885810005289826107838258367575500673943713416524854794489768355719716921125639195730635046726117371463468259030921885956877919634999352844814559782679525457522334847237539608745237409849575731966258952646824384671747074038201304410292313397625799600148668261770864270797061492985174389173097677206445906474158550113120847259663881579444756304492709759768791961034221701891327422221420664456294551247852762412288211704575245385742852552199197453518540712579371771832384617052932868372267043128124914323889403943841148100348760737787164895325018656071999050406743068772248108783172546837712485033081810719674973512642830302485229281626785181037222004510102469927480672818419974557198861548306741670135849879097685611158805415101658592522791030809644592583568420332679639981952865422882318633362986463853126054383770982392402558571686577310845125052659182374227736579378018933083805406124475934813625326871587806346976357745978158326709044555596257537989069130269098851421137638774788312600676767832018879079816009904730296628245695332991443677712310530251919212440097366008929618897386572187731712963089947349926023009991546891933845859518945139614945010213239846873961871590943507133610181544787928581103575397262571057592498492937133853542035572376030674674059544309811000567864731459651042708353872750969550515314121953305041696774599518959841271514139637613735399952249526868065694855563628357424694148933367583168913630633215368915563835981701078987047401801687248691944636935298401833010022316478902598776720992077988862707286520320613321115407566884853692068279734801629948077223469886762604116600542303418327554053847006304911852025662890489025051062354291664350176933508319324041166178165718139876305910064273066493948319492805628707598846522686758721732093829763017912503159517988752861947276048407457620522942075690819263154229720624402581734488832645995911230727713883920254692875883610513643117465136397392235976349982407880841325388638343465209952955844851659817066593525415729830969761821671535803010869506985978430821223200031464580506971861580995578391831047066793370156993560918816631808954342896541430125879099736412740365239824635629385083464688440482721682014243632532977585273221034009767663169866913595200176888946215092002150790562900336104489363902202679329461956796902530298085986584491605353087958911383078293245137293208199570019413542235794747613396796912221341551657844071176561117878902904362715000188915671156464809065424834476174475912414085868866360743274721690389217743057521943264226765221835795182753953563299470734897538086371172656570524665718025165158555691631155175583626243107664879367737890624594510441135431756311065402984966571085350432844885156472814011803812182439331650660417691244415554634406154263561517913341300780357475950920184973051129350620854942907364242571015288266347302968146899104421077616022586878595285983713612004223524544230585354520467434962769476372911961861041856144157932951957385657110668416894358458235297900304519523389012137065442846617354614050051682435085906810907862004801535986229575416318433893488243514850284413690600834986646973989876495417576301283954235377614567153735547434792488512270741480197866456610417318689900003396673678708568433643433630761401301049085321638193652842287732262590304745022795429351721467230848047866311223837332136885900932703352315721661289396766093125582742337943005368510900577895727673507735407564590716303447071806414976419545308336355655873209188072732807763489545142584355322466581604405827610743390927040854575198087951656688500442458324525802778555038060277150643475632035433965614270355931296347342822668344443994363467755699767087625438740470977255149587416616277862715842586453503537428057314209073810739422103660326216272778384089621462244589751595675055131402454711936018733769055169505117373377448283776533055759122046651365765467957989117129244882941340338531859432202062291945865505310281910871662313894208151633672031537336890755324361849777320349243645346010984779096784674620127797333077015276118239790371541618883199092208028420639925474683758651759668453617284010800490102391411285636328293653345174720383333511091926724925340729908205354511540634814346544121943982140399076560235764497072692747428900649898878782792796920398668018293964525694078055843411888411411495742453834911655776518215430011778473794038272836570780750588690744484890593013568742658054977311011894124569586572469865935608372467676816723254535851160767813591803300980191413999800808662765023842536585303061171986334613920976181476759555508837467390495385969851498761064901466851679439122260392295227557256929739644829249453166413364262559825755514519992745399319691286821626968899476113162697525816097338228634820784152316205759566316657471551694242333782525098578453831108549124497436259471139441124291722693865814554803826092538381374533295629677368510565553440079469150565859590424221122794320791605598150368070713934000070038284225766579036982391174759348157567257635286617330640688340526526880685245496233276736399722322616391336590861572002792630042255526753769016863773218365236629444366320932794293530111089243923274940984387755577412109900740113339226714544350094967046903830485027124468005636339790367429205849741720307839487974789108741042304386708832925033727011345578698307212303092319033711053542113811583120898387984588086368334405063211788461489634944787143047068207378526941365728176004761987912611886785080958437231787013073769725512644905209759911894536064732407361043318203541521358373006656831220445367093442463183712233084105482940322751733009391510323832848309945289494660173427007327170953458347615545399757413791586711647938506185710241044351557119682125413096683423491989787305067524582177870148124176364997558255531385783357943107231719307072168172504798391122721969280461022245282925293940537488653893891771276887688034772745349194683248471687066775651538497174648726279876702949504154451704001344318580481829169763175040003657292530414684457266403057163324432747914485923135712985373238686436670213470999094242867667706632553007346982162866676324974839368450357193942799303031817990403101301010339556617538707294945076273476915703462289405249118842256123357344141385400535752176837160786771086983243224969874709246916269343886851125325836651904930825043764671531068130284744423759673982607082509308865772803397654996932298426810134936214907168148779131870874186108331251650531834695238364821279379343389719284018188548594984035704976293484924561543338824473742616727163241470627013250542103019542850794641225661625380248415543014911678587005014988326313858119037233340523671038504753176733061606394323163856777671723770249554668809473791037420690658121947943187695282879941471583890775303785111773055125911799158509926221509459114805667776206985403374076623405722945495823832177331880240991741749424742933175172686736421875755138025332427528957546220810457959653839521645116190513813402393155703999697340127218260936619159046450344510428517143958995142571718985074619641045740370592162726257377506236138549522177696244553822423989573077685508477569456816838005631649928462810895060821974178619841135892898049374999226181066253601266746682689701493669404702759801954767688729443598889242244866831162749983022462458355050843162892606285200955258336734826276780958924430501113036280759824156547730065131152456960410042264436273236788927737663552863672259492726336111190215393590537338193980286670095245627869795088192058038557059762978528345376970911353951559739222305778901541218001451675847642262246793377495343055537581493537471144325986929480219496287240718965038010616546240269500135415822717392133126250861613603609786745953598754512316590804383778276831266120115722694727626399013690153102600556430806893561257508692584578367683439641955501198556195653242099320201960599350740259129995681847378989871710373480618563176407628907192916272467153642645102996890829266977749694866587094292007926907935585743077212800774407453183232239579955795973562904139372766203277010749403931178668975315031735189252569509792134953283857372688058498501670776386986322319986243338707986667386885661376522320466436213163937274299433647674800432524752760311806352654297008047518824833096115512690783250351100012818464132293678014306837466347536879614809038375913842773368672122714810129363581959550071230583585922078506049337484454769922883647013679663015694751629751637361187306147950226534413168760601323063922629329494476620512518965964757376406430144818984093093448743366983058555921145963737978628867786720780852996147647960502736424318082757683265724700907309502028505635596887309237230723765883824059129405725548369742434553532767568883051943449039553457295309604919061318105384877742639174443252083843501239834687776820877085744009130784498906324847946785997785770162408730454754717872025169298095963256743487873733499986827712256181724561554875410156926209219665199944097334734686691603283909138125630876972883802046971160548304359416356895272247589436952965986148180691791437517847972743319931147196432010762378695832124878861487895565966620622694307824929808584384224091575670118625404162232237753903850417631424378908036820827175946082135478978221609682311936852493367469433051448608276109537789269222177784139833895937303650268144109275980521395147281928869449851059177472088618199936720611087921596553811419447270163544123298185686411477967237886646968708909696628424928798351402772329507229162174072598130533097597279389659628859344341957076900375772859262545679868513018293247019282636209404010789798769815424721530037058670126757910953676228896452097830849792561597019768494618414507057898425417356325245962245769528437738835433570694251845927784082964160091090316054565905990310087419428774971091832806507085613236904109471985764669716082103994349349028870486216982576020748066640598293271347248477225315802627110394172937329047354960384158270268370605134733983259620104973130665650107418342929474676482449498502476908413044720978500165097594801442877807166359069865038668189996869532196522890943688254352242517456957555636078271371422869218185570400387022809382951458946859699940265608772233728434401303892146731129704085265349017813698693598532616974460430812836767144502135039763763693276410631159240153577302278159351243935863564880849810094702320996487940542573711713298071443923574322568385454982698146007727191992646886567622069062122405984996996226999124709475810259959108380491291432018906558002895727283479433525609734900878634174648150023572161461558836580604239633530884754470823686657976237254941648307652679031075595070795396409936517078614381452028218705157480104803046764999779981308549769426325469506622885180418649461019083714138051805913155186314906158450771532675777898252159677076191567774485346554088103609638105805361863798354333845758654226915994715636518166345118663012864299958683034073287857513719096993796292143112295933153283733916288523180711621085923936919043566454386241445879352297675357498625839553803783418387166865478024990026859829116567818106361829597152473318159643681055324793141113195663351472020872757351248757620360841169039723524514671859430975223163548507669333836565518165389152150221826521233357260948533063533204093786809370906059802749240298813867596742795407352545988974582821444056893513290954666834687492924718175601321018333192716221146737084766552831214375832453468271150877239469594236656092760961519608363431733140029817337724218692791340402534409127413517948534403574696136756227393164983212148010717489338024683371212718362662650900578092361208697824809971098689693491846122944612543214255046740677322396668346034591006881742003844475299271492622092171181058841954632346949415676625341296789258910245096269871440831058983555458730217799447130776874152552682634732481519831915177907102175681080717612207020534270420963053068928390544157972789536606407707575943254035406878904549874261116315613350232462345924622234934247859899793828233753286672769258763173268005886757627347144013466756396434456765219941875924784312684138863819875769087817037088625927715882542399707268148495397695661011761619222557813806622290657790860587768818542826622976034924290105794313886441558937543876750942927145874457359483178122817319304680212669747954277101700389823623582351155898636173121116607471535590466214128139501974301054269834565749895999116250572554787879375511086818109181139056855597424431072965457408809226976233806791903776773749104373514695216741284297347440667645638469767483122209489387559722276154828430904701929487093479612734288808920816737623010871874259643215798620820389416222916094900015248863057844540067156574719035956770540410183363973396083514081836383111961342792207769374405618366599498432266921023678263948789951129992145835987599784258491122262172568536874735636277428408391966268365276988985872921563175018585905160491917886822620770288734389552089027753931631410401384312521799245074612851227018757772181287974941896511084249975579415045411039326068513473267723342855911876926789208972907390312316510934570174417922754009763194629681330561554830155737799566166392035911306985211078242578928820001813970888498582217862572587132853081745827372061342617539143415349774109986857649608415594800981142051541880524812948803963657133841007713693581636881481548498069972240447496083163569118380265128006686647704627038127395791585518686592358745671095513855576983661669511020429650800808628690431993010418666818709374574707160520285527011738649869880468942248984492836765722886649626563471583828070164073648486506454696847569148048622096785508773653957113933978710267179570870930297097423103849747331135452004310259556596665366812879852933546593636818695870522421482625612943369405292752489575861552808993996705926653340806338211267220134850279676289503499059796299376276150706640235080444345841786993339176954177728310456582112676878363472596495191199438403586658819138043195492007856606378646098512457400850798941962045702362147617033580357239527023519682845304299099169351944780802545143988038119706651350923871203025765446382433687540245031349759385320108090460246077996102546946176043861875082472494009779131301443494843814403534941546281976604078028433945863438878474318729039012938966677408521074715264460499536057914594553834538682561452616005125886040120328971770552653984181013729451546825524815731901694229090903795286315711779567722795228483847553949064046095968886104530675401442418716643513949215675594752042462254666084281363042860086021169523647477283643973427614456136299159020040402682715408690338327822348025518456209517651943252551851403763494726807491407449231119265188622354889474164510315990832233430791543517102620719860092458019757934151939453533763492210678282601044024974416271627503040735447611216606485658415424695332496571639272124773895795469259563154312313741756246479159030143445537093233710973212681452637914539346350772936392469377845447701492432612212127765076194241849381925454408240445623875615496982117264549798265851883055539634240833637225774480357009664297263509355643750511248737924881706352752303574073846967477402239201146040348442774604306327065836622349154702738824185529184236222447060767173184273002560267147820443705882114627875496308595243345803041057248218234563705264481290873976205220208918251738569898948475056218575120593244224521049668365975975308765384793926888368022541413330306415680914472358271707401916910672446709722956772208177517427984778176394776734827427665094947826784160221014449026188354969385926638655081416544557953166033904269671788251423682774382023937079964906441792787087674630968066282318402309249200383179841994729011799244966669931978297631956479039658305557933254888866558748612161600570051001632313076799070661769803504965505956106165737481714401179745279205516086201641231329070958740524263964409471261115288810966488421490333002601706196514651960356306187382377407870624959926981342309572221157703432685634568240675481919783351415124557480020359260014986085225131969894856832969792938136430266841442022774069534377800109412878964697716626693299167597462452486921008353903423269543588307168384565128427884312370548792053028424856925887666297943591850494621555558256580762907734280336181171931959500715373910395256045603046920722406556668509482762903931237983833268991029320165450137379932794272941696676465046924199505692180237659605656455509562139540196787404242813879788933610830627523045137656399168168031420700030024428775845313086387874014223517955406075820721282915818627641814642168624016469473276153117511288385732622505108077653005129794568303194585047608517190166602119332595954669783324959553802725586312940437419812200719239814938827415912745844993103872909078252088063640910815738016574124873382557661302153923182023815137111434629620769513167461279507555757146299420191088096780603944067517670495873215341973127919900067244643136959053718172962291097181358123682546231178743773426146031113856443480036711672024630873391501775403416883108851393486963652859998528054124436068091516972914741144272725522889659587020988169456241928266769955636642643124356898121373494515503517345291596172611859213308366525041734704018460848945348864615089128838392063650769691080051479097707697909856892464549586435224163028007426786043578510075714899840182896553335770042809474287845364757090677311830728095520500883881878824534121645434642953533499927457321188363825465359702152936521556549048953432570742269554440591456781999222970844664604631743065812387225243878126110583616787188106852104972832002319999233717817342294032637276871547107940292944902683687833289609997823980167190726356829375680889771806001298794754974389756739386227991298047262375164023683381836376932802771583407124126371109773182816215677882822832495292121682817099196759110694882812499978693746786345724324152100002567943953290363129735525608376140069570881307303401138620868728508524053330380786186535540953818837546765172204620617343522688983582163183179997920903859061456712683978154520751679199369758514102083284739178573508917318182622260775499259754143080670966805983134895230722615628559560129423410368275242378628758752889135690966354487530240123526881582646447184278440700197894338360352201641779714022614363821573576717577727973566032587161479334936587665201693107919117770018199071959852397843972066480081515842244266876670700333043572266081802056839427889894002950647546717952564232200678588800855880028431996313038281191653332717030180363077649440074964286773709672181880213605695560190561300066433170721982740745899725355288248774632720064135717943788087564147803352078367813498951566960139251147573317777311022132266279146843587620316849353912905420643089313244023142534406302976266270769921015734391310252629546223571486629033068733981910431274234828115123737929382599846436805132322410936595132040694321767713515896601056187242443284108132240785892268655537082228559029132448836548359045268011883867434316381730014080344806315595733930288018875557173872918358582510177359518319422597679170023037075390739755944362007211834130601715329254056071743334310551416830478229528659855176729352743248255076785971764957217845150452056325776323634671233418142193391054455669489727783674245417924285114281929034683445596643269409557825507156474799289958076247156517096192308965133255260848796215158234509093494738742988863559694671523859555448221061477857464468301986600372487992336015726338670707027265510655966483000162080903024682059930861398328812865677700216728863317146294071154936886460285513937034706135472209765542090587914646040306179561217776325258322592961771100890285232728634220098778183640751629905553402297527279031740011284458733894165956249758221222646080854923900212644299389525685888768340205219752784295492379990122159333518252336898397983552181158978184808452133742831339383742003434034681061098960629639775680253003675583766861481304790131488382369675962047030960447887631603021749546267911608542064794110327724927975824543326818259084653536585000665223428061419467286347915123436828118430495063867133626664659751770243022236436676598535721479970740658126316733878537633477097668792514884090213300361024424658520637578082284089038292014507511977814060490301075928915899951583760564760645198080453549814365646390794348736185413228768167826456715635185207957747996420020254014455333942151541842799038940582875807066534127642625592863733329597218829959421480772145326064985092635236122013603835823325370212056714031590144954934252992975933957681102667947118892857021991444323118123675591027587103875188450473229109846581858756435979491165556245804288781716625939255079699284334740462231227079183873062347597633224345154644676530526806131075599022800772623211381195011129982535218859237202005959393408186996933957635391043205648295826251989332951173659914227445790152192323729217558916364540135785377322299899518479008896381705843968632170256717603047134442067525044780869217247997202432322080781833154697361395740472409678094396687685272510802914777360209174101809149502434146465233893432901411441857292218188128862811458647722359822477696053907495179632555481607561221836113021740722322749778525174858689013514502658755385863955806328021808785176786767093561910004799740879729007537158663217334141539003837684984018690809505937741902657604961286715452428531490392001264380385992068986337471471830092486858826180523329718252448766762355677667768756553285113987674897539399912546153893994522970101638732096886525188775476266509356168412947227179409358762469685574640050216492238860221904478225874793933842608978332555703665019489243291590846558319973360008449446722654907067446238861342170980072930701214844834700181228364320558732195886636582795456497997457434535173445242068480979522302668426878317096442131963902139789559899379672508404801893171676235307069833112241922500785527985213943340533440098209335425877818815017709377748553483819233632185763272410044484203674216972723777028838620147864218135551772932623569933380841339600624083471957214368659455931693528179545460593867912998903920601666959792991564127646968645616320856314133799725641426192227194832633808964027227715340047299346119972813512921312949830111005368663089953709657271661340735072878414477995278852015216577176886594834014852609919624032398201412378655100441224455994133000271380109389009069697549552822778213702007346898945834734826414390064077414807560965736619993955008346079968661576164956301388974222058537283456903416222623296247323815352994283264180889516118332960040301361495355892975616519587512741268233553922442166662283167664896482871132787837744648721800453725975834353377679712901801153106628218504073172907516924513184970697753363480286933793678077729841667537506849443422262033376548227324868656788755820944707973861785820671118676854956128641380187161037820323535170800585020547487218603370734809138107254098956963326664283283243889159009837775574813613275675707331318028212432390420606716949256963064071879003118787737180416505799643825870302607802180549419993222894757559660564202777369600100564867572489110273361337864113298925577354301314183053336773744483675581155715361915269658424268451342092064814612661851723668932996622925414554741995148142706733877806459473796905845750297432689184573925280740147424808181434392114242665485963745916737406552069206504324921641068352100700074352970981784358068651531762475145954070236196141288756020513606940190395130934837498803676067882915644161593922538594207435391334621607935177198972575385005040846437808738009242037533883433527280843310496120285587782691814123295509781058095645312027508398308625070597243920957377522036707111991289421685321506414246408115306192510256435221090925111509193332686256951006312098747078078100901990764069904885125787498750573127554826827428647995018851519858478572342108258506260040084842782310716883394355000214021534278209526548559604199264602466855815115467859403235113311139785470150348089467386218991761259246931575530006319804877196676638094478161167283790279756672773944291898947453630986012102195286073093224514002586713053563655844193065948983451448284494882709113310523913446638058771264498763378417633392867138208150919586626541385059096785457734184273843110001477019361729320134085711278271588810815388903059230683963848567500455489056941139974760912224439235581949836750334127846377893043797980057323260416504977560778363604568783224536284540227781056505760873910421157453950889596482980468218424241772355268966669111192863294907028149240175777417461586523592529071955994138040626679712382308975013732608460232464122440439144239321432619192802490529155692238976703892231858158929841837005950795312288808393419826983505232100231905191134336391918548297063796212925717079077687508694839630633435873418356336139368788004015443047307225183981510973749680372834164177830940011535379908792097094246279922543327871918796820891263106357892732250596831055633909059685100837745456566864813718736223486137430976737172181968074233596178303895717740834412873509208739580409170032849339957787135269312707134425963504141287132282773817507642707227521596910665991802219595829879531452073957747491611772477648593968601403369515323619817608832138186726720943980986621636816964566573194362463519615135037052098445211651083324898225062689315206897670521785835077040579331790395248232366081196999738670280736609469417395406645331879059125355211334007450283538751886204310715337318115601791660446191982426869571411914338834797996105139912528752058393836936670806423650910165029831370150914764393569484803117026813733074440880481376049322994685198530737455563877746586053547435662679015820718589223432341367528821360084116978021472866215826424466893060505524783859260742107449715243070630826166136479077558583591571879220304095301762542472282625104033433170961597145569638996796730615507653937231731587988743986920044984692081867591315630391800620699306543692275140063779165636144932536050226017746929658104148292273991743904861548384329198721063004634404797247667759266772306066751369890167427630721709830508202182285906336346506213650375478443450187396686305981347979126559671892390708097042728802304860804598682765719672704686801519574571303388304516027483783768258181637220867791546406089977804475031203846886814033390595681397468207933829084160934069090031819677981873149872312299501082462184091055373792462856140929187878875281518589200608814370590352862492623628387812033909795494045755273271789221817932651723955224166159104045001329069447794882723219063498142131545473248323833879726937945611484420176111858198893674196100492697345526060236657889554807063575018578107450371478000718382934629541254723485808298004060575365339426903058096532897332721721764862435673701553133311389722879217717637306635922380326604761254195083381785110290166885607046731404262161940490916433702385539451192586363429700279091506905895650566178717022887013652093606570461216579858134294331302416965093607116906365305806948747663610759565395164366624907185570993203104714536824258914866138148794798011840858129253009054125115609017071762280066906636468096926898310419412525087234925853898553317099473838553532494186197468937382260906097105908896403740392699096961530802598779829801348849128795261094977547509595404856348491980471474656134527097914691354464901711377917748777922200477291741985979640694325264347409762783945516638405486362776653507485106683679434669143788509836403189095081549535471590074937357196967898467947357690086302182633114721316732015742094760309067521617467814146145983867927126838500968646993771535637071424835374729278402939822646614268116696063389411875435647636441527966117345942073086284635309135951528877394629681235331471777921825464701744968032395482205924930532795772818188023627250462563411322206450984565353535474888041390202210322317464833042199309132502851597300480820116337125038705227733571398106306905440517864788376412392411343814775555645991823011965392155024560019915319867363281622572314659955120325652674118389388314062755204398852973897084942560801890642373102789939137786370624977943158182418596438214691849910199613862322158686225021396588474373566601515608122987007471535825395438051335035325876292557492205337138024565239630431241651313745590697721336101278196051393447931495575891786307941173993909534050890991761483975566483959854725534294046951302215791302110908843621711813001510161948281279102003086882121447571030799208969005688448762480465568023481228398510000071784699810820420465244635967961996485553214657670684366568390012167152244517080912638519644044173752824224529095632230978729055223319186187505799712983914740619750129271670781536002282826544432004761972707845160260771075401051798179983577260392405562845793337884920514427563519997138979600527003436752063952209610328713301652762657178139070059451468719213914097285475204983825944494518445260270645432388770472470046958912531542062324010842476180273815046942299652903869132326059604674247131140655843193859183932010395815859398260620814208624401732223815588470948720540882108143447742090147900282956325524301381129938636189780695364422445526132302618557363305910797034230276565415494930718235607196575350929487077993820085425446377301568678221033483817209159452592597518178229692444853552555885121459729089576117383989436192164354361576759393361054011017233403190559233380811655323296734709038704117524146054470561026315340775289320916139636112356862379418214740629696813758933484530657237910318576024100078516831134053473636384044990706333451311695685277641380321994498202552080061064656084780536525359641024209108746772581033831235457975478251786635495924091797635690097700154069102317482051955234637369854461780617456204852222365824544445526097154837296726228739089434917568486345260912594210267745142153519358765717558947528545669289926705345291890771870891467086351017036292266271824453852897761236774445238585678665085162232704022740913176888381374890945442957395956244414057148826746118987251581632029870388522784904795775999421694900997180105070632947713589392235578524611429743737791696916331563284892805781364709329823217314718859789439394138471334852714100802755117636281760568974479714307930473760100660254786282237354487963906197920735813454582729459771695537755579387562841941135230070742886741894969773175042563025563383734179074332909410314486268391195299509555444654526951824433912930067064879921673050767550482882436744656729486063103157407335042125567062722106678238690016699612275626816463138882967708824434362397783624961655190810190721519278974194099684868300392820857622202863295084384719528508364859085804951640628194925965085468281661424088533246942645389865515833782472112146170333057125369859442769090907746567409487881434369324769033827305189146661069302577810631253910625677008695821829595462701488067163906730896537993987473605142101055743626230856002865879680185339577118107374060698485682819661504093638675586191417910386152458326188989738695547956991483102775782350977851247249210590969602818262344305621749037648217909389736101180881525339894491158053766044743709590098582071904004846710578769325506725293483743318835183555919929397254548221716210645138132262894081682658889556966076087583881327305915095395125645319364424517959102631988259181472482050607909195878630853251592521891201810627842958826882597638047420999900638834722766646796631444001033715576156488668608744268089877095383601205693968604953543310218405809953785844857387675334712326167639529984538152118604453620089296581435521397911776814284928889708039364632650861737088668149444098928935248980609133645621691286212009617350657736315554230797656279680592304870136295422686966282043532858591199385663468871303708559744324713949683178467459441887535701625459196678196502792965265353515899262747335644114801970328149776329249315196153023484083138261598214696475856809323364580307485339709994246286488530904631997783372889730264523350804646831032706492165297969536629637584891301217241190693209058738367131087128690998015825656668825160136944218062326343199861298769949076573925712749330684580347778368521160978237606415707762089129468805577009306572581843091303269422889344062755743074352351874086761974771273846815096758816810398260535961788699613789172147130456884185101928537487260990705692418357275447499139271849708743818656845427349378512605592450090879270936642556693817928261327355623603992751352198495292636727568467771776073955820507359041948932181070767790291712225147647946230838393420104528641088143286621270867187358868426361427251175842575808461494867495923554450368759661983328637185131015164015619205802781930132412492412549624096938864612759688230656734668394595676933806135711795812668374442762463478612062584141957010746324658828432721253558072397749660195885833076901910733111023333810166246108397731670305916124597254728819684277685007025727851620726320997964041608870316118800586753193938784798200744489767377066147123602962960466279712464018109277438475466493689842676931894578469660717551052923690347608689874442290664915010741592668233828994904621466455052715398510323682501516442467813734844507927180827482111385993847248442220084635799007801832182428037530231111343681984182362893551365288933291222933428415254761634560613458848625403073183082038383645344885357109424775199222933671255256652703454429654553518223260481738443592622301750982760422537150486586445628465563804097906869562241694310661925129010415966188260954090288273171467031475200194427444228037120606037352100806709513010614447097396213067427510748443500214173848040313193683457533290639387233895274969255956671760317945920500877872434116099408733639195131599412595921679529938828944870733605142684928966846130163369414792340752790064938146953982807967138528565234088224946278454309093982841792904159865152104875417890608283883154690521005780964156793726801275056377416347804372253474828041158704417997773251392844966661203405894626231486351541449957852199309706214974252402016933061096515946480311728084096277119546691393962184461821179697940767127297664085045049324818291397027398275381861943607334367072440932638089357701945764269926763775767699472067051741003517929870308366664106712282624107546250056171299523166876785103174753798044862200202108750127809025312109385842533596294621345336125332728140081107422623547719197139138640813260510608674387148286793441653566382596570812700678418138684702270102970916002798251059266172751488778001136985780838902518859763144586479025077693713189727463382790198199426927101954258318373588989563559995135271233864537496569147389633928857546141207799643815341946722426522102475854330298103333461782306406748732691914586323609441554165839863091275884574363917398814223221075854437966710422707563271576902442017592542947400518028315847871187909310463457923343060591697906285585908746250652702853107448738310223619811260975571820470864295398025658096786452571873559211006337696695548334820518761813175977228526635580934983921095713079283170035825578225641875193147780560804504486781684849362965236127782281737535475081757469141810643511042656239673560866141256694224507768453846119317742441870396065867153456358706321312172460566569806747722380111000989766464326064079005034813054726042992197337581138108495795240716621382271771831545479218206131127040892016328989450901458845882734418674477641741112409558473559235799566269737788221429928434779632432400309629162955334765924076150094038817220453523924365007381040777394806774006159173107475554140427440589961717991987705145917478357054397417224181846900934235020633636637432964070137463744457043604946220048646779112617882425579236755165139558057004785387345262721237717484542753220989516064524050806544819756701215716727601733888605753192749136680614898260716288274007699521462234295660081739655470222190716412545721608633829392834024229934374323367161609698514718100918252847034797504468766435175663235449302676711309990980149455998420121341313435467945435169435479315147314234036308622875777501194446127378483827546760110333697071513928934458000745564905404452365858945585133387844055280683136063073265660825729222693904812920851921887300352773340912934824319588537594651453315259038456010572827386132114130724954644679347696012125486449041178092668713816519052256377280243573185290169378330749512461891258213207858763986539511717576856146228020011974714089182259968958478683478144548869082889851178902007165629563629441636040243152102932607825483128505121801844198320212859307063556570817642229487435956200398518738978070795818148229495308958247861140955954033238052103645634494173522098418971895871529991152478932736314226860530965232514849373648560157299518332332446169370167221241738807898612580821600024128879086027898222504986643356453145297546415954185026409168639461441265742559478864636156696455336151046369705332191388583465894603726301248633929925014652888062970192769904328531525965945725081788225557325801136479192709524533136968764517851939822559280912814401911543203379628725901338312977472550634371382804482312612550923472769183846993572580619774322627525993238749162756695449550735336844062359243666854583860777879946014363947033530694085370589914471606566049396725982402248081793237603173514712493710496605565455184185164094533219621844434813562996326523920412152487313794453993559686827635718995644820192132971056938983810407257920449312118359529805946351514448695910211240258273787185558270164624622863862076689473727338060858372757020811451690435366757230832821196642028745673616186509566427833128239815548890958701086362838310076824267870137262729658273640913968698691725032000627909800662430094089261839469181221228518310821836837389870092618041858107212325029861526633082846050970012058048939919000720538814260094810813970119892088743466379125090001419081283406312505509678454768563958429379018969045839582828707749762501286335624287883101645812005318749667014790851723317950166184979531171617971769295062703775095119849285232639945319719824752370483532084552346783883099570522187616444310792812953569323086608919868619949505784694317095730928352786343963298073199960452897426179201691495545677121029108128960948929374984571133777904879863187024121378853975046153317303192000730453857247197852632398831498891442264246474597069315003425892460176692124772182998919247413240829239373601282974671064068095100812388503830406263408534925098191582430613310633076146082378324589319768894206336668689139010337222618373656302396253024114074029497354984263202971374310677682012866828053145429995476368256888032153964135225434107559389859931621347904223664606307946768361742427844391898939090399474037498297596058734864717997172694281791302408930546998097794415820251428612269999383026561463608423665467724716601037196485627269756583433654119386877313815178120250998360798582456439365226623647474662082982716662328829547966170361761743814806859856504293918028717893040883863827818850431702598253324372525823037880488476284981844274286488868756489780310313125677607131814209289872757228665963344103755136612047977267946435388905303040796909695094968059076767096602717267830733339578217442360077245566213481493203200880435317557465278982549220181997979865775518100914502202326173478084577534736627608934839792267675519186599041947214553081338475068526360241116643446818159815248031946105150529226607119343022635890244595139423352515913186736998859413741582833093556337043653061969190770768124748055606193244830495189622528729935982094551421278506136426277901180755336843955758248901847456798451617564083192956634611569632031222233866121500816834941111664888930434678764349060701612056854826162529485957073292678996187712663328753648470796359190135103900274606738610215833948174667507001298961977216865097892247326997651207315898603928860110517452698971833587562218407591955885627400629567975448793739127622001842691548413833508638572259740853931098140319275262841205632170688643447955627196511519172650160203673009938296814726066311206098587427943081467604048683742234633983484315956224335415271933078011943525067600331206069283430528265616607979594606549620650160659625530129879201144295030844878780210965167539144134006380043085394973370193894705617303643645422546434688984697755063851556899777118571880702518373915092937714383985385596691769658877362619994292562990427510621305344493254727231688225914365466022635992331785637148586709372593718204372380621212101801416433790431323618829906686843553712945373091600706571931687510295650101563190311784258931602103004801400418438972195660284719007026451664638656028892091445825359298195302583828461802805010048131202760968949470465945302377649234341928251183568710040559689528491420822440268296759162329817319565565011661868422548681748690551063403178341423536908639186940340255347694234525507805223620882359158833638114264659640639612201501900636380534168096626439135116457174388289063049874930833686460285489474708217314795817606778708747258910302239781308427063196656878634840920943141476558151224198062312965193138911658266952473986339776139840753262481768910486585691382114161260860959410667464784198373061278926468768735265556585093133136720990116347370276203391584196488381009970939822975086129312005655483520111494912935314811995464329503319282195129735715428919000418813500138455022440157399185697048603527720528250790996509879882783755010825476831837108373895318004037226106696108239130031395334504286231233148733161151059286124060923802621259226672366260412634751036217966519337574595528410523029834955513056788913655984732863281773053272954053761089094894448419154015455115640329950353981136399854330011614130805963310224508139983694844816683706024473317482546045879949174590088628635101844579658061714109671395306971971904529109268547681834536553925110262957370698019645443192968168377025156062932689324913796612000101725472466314333971567463036800208039010812710056022758963969712180576416398737747633705236154928978786666144562534363619003853574805394202225500089488174729812353415652424435384239184904510880216736568733963265587576193565684154768409740721706821228245620860247540766250358748319421875152941677276998980557282178441389994316235425497544515076159900419635262927717906317747819794190368539331115525734563359557156297010218429938559345468516782930443098708212501844000542582000058139821657042882656607171874155923112950457691777386135834113633198156899078631050057995284681474973493188770050347054454226392041617070136833344184590638954871439802048798575302432000081783120499646784172550635685809099778945442279589134163515576104473854355746798459811524781457414186207174145794115482921814863659074698297688061747094379615019718474610173645193807837878337676794476674314291621556459410866561963728148238719842361240334868427166664178488203240987558272614971715869390692351731259417071075510358277945994414661465971064158139862179270261098965896028363368069437378419399269105895072932380059603558580948271043620801306054938668699350829665294539187267403793739114364752485534556446062414651483123491380149198237205114899868800716232701496178593732817381300623172970178310513420275682012959247586174344396867657318316881778159106580311846641386156521684664601159235155206168921930123758284813774443295281804181152229698983855903144372428227512483520460642907769700157537777517632556501670282083304618121246811694349379674264181296944105490232401080048966638317046407816527494941899925176712838990814240070657007412509624959102735922216054534274721266942568465003779014102023467913640485856170612548595982244523155269996109644992077726325676383696889474233531438307812302022683487492586598774081410813702105898296228707155532195082888834544609496951959257857018897988794080310085133359000657584498210398911893389751493675141306709673221177062436441257339934343492525210220333689011865938576239948698646691291759567378776108934599586977928878412053032357900666262677337774464082451579670763501304065535557497276397292944033020547277454497404653786903441512101085945737979106282981773996803316148847055109369729492372218237515175377726965321487193376786110105365411420950612135602325992593903333230292270405740820348968316332377591664559422242252810334974899467306065269531471800555603802236334915415744187068013435642316633155350318378304008228582145073534102845065838620751347905616030992717869096605951006384116542240099878602317928451200888244043011952144987734129591269592528521291760874486011222102691608504985425068813964175389531949979118916348311808957345288376810707393814503445755944749889567369193359760287232520617176615149856568587607768124031025501060583774390299869222837500865467267398971313788104977318795205384903364649516611952095229510903971453632361892296621669447264463868062492238108879530377168758366184199014469736472150277453367198267749494567762322008036005984238804063716937643204923950552996727242215330495329699692232377189347651214604931705552972778730407083581314568642801633668114605797452324597134756920935567171852562336896925795593959459928667120889919271154739943055081392351773026895294332092677964305124801167350799360565944108397859517131881465820516690143330482779519465331364809612235957637741675037061877450122680807082013663713350850455806008860745439102485725152847104127459672465034122881164584784111977939036828944546289309078143934783662402044943491842936034537399049013314825550162991941709662799995537451784194883630165373342603208240054523104563476716595432939027191520943909703132104969263958214799143413268077490572133508268616940349557214839919287477720342351627906910369835483264163544083659426040579670928829100599292652918133817492048805823606635551422909320374634422128567426060176183333671538543755482914222556677296112956913708481481705739974513869434339355388711251122558633272008343410687879550422276004957712582990080207100878686430155103202905936540446313484678410650385337675829292556699480577878330361765096058036178007503482435777595188553911026361614278279867254209494957803055503901220172797260450307348128478853462351398945727359997808334047254555034487457657912746612767507141514256428173584369264798932447906211323058198775795502669206940654232914274883704023767766870755781109913811320697991883096743555181864203509251831434548398825326349446826910515725019652324623441183179981692396871756832701590663818483775360351517799651121761988574520987768641138163947850893984461983514087927251408766085154245450516305234619235112768877181118667935331528431663225201228574230100984893999969492387687045023672212217396157175150527128663819394431547358621562192415135593662994748459633482214925672514444732188957676088031548078698369906910446379868923044724548798476295900781868746588271430149092791292056877967163962927363879272510023742903555383707484094866049670443743378372693406761828873072779356116720684850340288765429054381780109501919359803269386989818641323679384624331792883905693538406321036335500299349035171727847484623704715782496527734421667292495042824116421579014550557465343263633727605634057001343539125309696248582519712331834350284393791571891909829764191848349095388966126837733281207710612245023886805360184035735256866469616039714526329497179818306060592330926844694391558848884070614628898105578181161668473092983541135093980402149200744467296789833506037580024726844980687926543924195807069532817129997518671609286562646779469873110017537139607890986597114309658882973629708527278371331509703397339842436922398023985924413556019145578052513454305341187666037681812960501636994807649574466453516690041745043338868627496967704608852002713339168220446175296913318054700291862686745389648373708555884613164745624037813556517471771343431467843062034533968734537788297480334793401549769899033873631305333931270825415755994339364784443551150009234063690127404661446679581104204312524399052999042333810332624589773234434973853006418326386652610951048238700383198650754377521433035950519680143791295200832042154365158261987075861875881894338196335003864181440875279040321657856362409177590378520048111709415717268938968801863222340052510265212112356917484340894270941101393871962322894780648762261373838994553224870384317881763129307675638036516603837642686331004136082079559908075500294557734424673069482396535884908013590083091121061575608552460125400983317549786094016355963673465233456899366732045649042015638837169423253936286489018449488217418793535376120085681744025845424176893639961549802082549576672979276281224412048793873570651482736743354478891030666485752540930025941327606980106940574743708083737346732702731875777739229817660682724538055617922077994411017916573571689197443019494178885615870209861029071927063078109337131891814739483182776109799035640656305010936724956013060944676572525372240839718170193392386955519892167074546110942625901843973426658196017661995622983992394246623918489100684776274322847766006078381215346010473797784005235083277326267021219091458082421210609230744741292158629256888453675025394727676410031913406487844063077467593713187560261720980177544733425676184650552285991207417210035293542858642092812660246495661140273050994316623887207999206077562355961921997146826163746333487064587633161121322268415296916827501359380079442894540199057859051530402373825840683345624875809571073062791520397444834977739252738201664209743553598012636081647281266137977548260894742962915614990000687559229558949666908549513946531391980894734338422558792120316092636218589870759750806728241804790129847398355981846254248220651612403197228271037117618144615924487824797785635996872241760429559935154402091785016668704391322738563966967047948188065181042265386009512132733055744962371063601478599565010714259030671467431340719465284291600182687754045877322659007233664315851449742291010563460621889325129593072281698552736542371038055614268420623236032536604767260380093954092718447371957109868027079385059507147964874238502487657048071429077492718689270648732183222408426917805665642853517769007066346999757986198764099020836213140256509033168384990629870975197459174089855943770713027561153032129761706349994786609023970783387853302155532586611912027373767053044533562917263822375703406014712567527126909400519809095319749661281354603690842416222403861955487405683090364223218561556734281444072200858141799818180971663456621404034215884424963480420548451671078482798753324689510157624398791824884679233046730005129244665516427556848966540036082751339781008915048487930233278008419831758694065162963449344681069189000973535021241445829243188652670687077999249981541479048209299228557728324554339659362720054834486581486002588259221719348969909166296883008197799981134652117469964476108597533352211473961750376875639986688228784337212024798066880899095580787319215323183292227755778960382563559677834000280323693063091312327847271423829647932071987400455824396902620988132792921473488482422340991403589882558923991759103866316815782517419185546709696866584590117646324721860329905790531913358781431680844899261017873134188324108749442860061425362027542378211500639727956856230980369437490240873551864871954659404737710470042887596939486053650352488101741442734185128968220094074885282769670456806034542991854017740050321899168832701546390656990076202287588147704158333239286686908636036860974227648806897333013286512690569766578505671379406134991938438515555333972341158045334437057422709311555162579121511783881835905948765444539686385894630738628465662249286336694336324000739870099079522710547031332387046015251380198477157993964870548178636331815309030675206553095091351188007970952197110457944564400245575486432863493406516751536057586600215851257229985704389644713326791488677465478091351830428034963504988112835122319250150814860668080779473629028017986459196844392225050856294988950987462437705529316281980842344922165490533905697718211887859597355062263281522176343461541852171194880774988232035712372748662778766976833428922816460061392377348757826270299552906912035279049473021175673302661496613876456254325066071196383923227233083502280250862045654639654563192741254734293565248499376197973134491794321769318759241859967038058815537763508275366796814170465348376280905977179422571639057931162714222337953649262349361349653430190720554684939981540993458942837822668811602370472886776896789984191355843386048426023882902386857503663124447557181781044632564694981720065251973702732296137637546434996890912860084372846380745337557940704537222209166528989921330216230309074990792628165910169532346409107790322065714761017703505478074878490339617960585378441372541691177427085599603454477303388008768158655960503505111810920542455018827380890718779110477741600029121285795743538812176682116498840318720546217003238029196599603475946551632126538364962045301612602153968514943960864853646535633101585824105723559428061535813934801504611113343453735064175323562413978494240889474856917258404340115791881023210231564820910455373770487937870961653224482145185204004710434251248119362229828343830272516418288845784408293130365234452937664293568875835619954275888848963527691872786587947332612241309060256949561604936573584622576706972654922286006800379404464923316627200702751294460313370961817389283002700377213955146791955257402841611698567940205492749252860076608260953938574499808616048758884439519968848806713434511585321939180225956650302213692782837318931597486415885284490316984666961382915109752751872221072526801021540062700857089185125111031144476638217915764630517173784260955870467155875111555613329491864851140379207408767955998439634199765343479772916832791030394282642417581730908744486809041011482758033903761364361627976166596422218080081861481160691881635795105394568301447157110908332088784713329744099232894112489737030785911794225982833194609051452516845950691809132994553177321253439239288865364851665040397910344246113673627474108004164284295422956148926883463243145743612715787272725621509345824587022134266740581075554499702012661356220471119614201375991473483227441754264866226246462041723940811160870459831095977486476548734184250322551914670044907900260264191397832260866493145647256462924693296424908503929238329000888994385119087777715713694313001623280332761139262881397915347092628566642539998357617380356414733440810247533089714801894560025940219126852331584316106268047168629425305120403002431099989872101994840526620919699672302825138265707779435202050503356287357684839806580635217055687455087599048149931061133803700108955455881755864649493907182641195887411780331082589292582150911777465397702979473479057455327283311290824548325289759138235556425875399266645065548368215288197204717900795454334357930906849300523267055189749762877864518960110258857639887064206756334178553548464689016084221564721894309049699198228784751670516808941210575830670555494299808410523240660425298719630499580368891647372846922046259924037652553794865493787577053496356801051873212896405170727352614360438460474606713411116005429982301691821095113916373383084992962759798294616421885756549178563041067533132677857210898371830854069060927097501093041556812657820716248475255397183413523887848773707087777188564509490521393832663698856126870108319822279256897084765194438292824509946888049756728600707856515893794708905117611087303124791502508150998379334193606360084367471129079130088758222840418125486934255156423282652817830236679218610363956645642775759438417444527198879993580859327637570661754975201222563797157462845298321087094847385199596685856549479174619525369089057313595686667819051404622608291720220495568064975003271884076819888223516730143052790039207778202540145744507187394658921183795622808010141539271984712371577395972819258451117896034039830298015046608655126068905565766208142904092310366120958091575502301219145385919316744912504942396262450112016637499450894624765600622546342343231957513999762925728455257988783902791957802611519296269532674787244902408132956871621804627378607889715488523466151687752634108440836164633797609307719359423221299096442056539682009246917157623075904465112324096154298518170139211004227851299332313867648253019158088975341350572724074665460012192716396279948825438278250025014293779356386726620269854003049225603237462569339482351498958271952407886707520080141506708977098650292370256095769942603045143451190986322320345491445731063837915355245285851082668812979429508860488559855554924982997351778271685497131668945602849598931323568357870568837295371692401514515589609348481117221581836613269336845667478650823296877643403306580777160071413711763439102605146184935322902209129226401051951458315497131336646574425738227145223224436195530557389013972824348462700857675497967839006850630793486285184109407926316125534202017365582066353662811078785728228641344554486065430607198449117912228298208412649192611068810345719524812139581683335317612209556920352677575997356706666448791047575838048153762899503790419330469229803909117873751962460968595053758793486497280013308184458644216159987071239131879613156913436420527251494086770220285267659175762645373957149442549158278357659816248019650498784701757878753232432119807675655372837478711425941313835927403996526216547322860295742395061284980270969341429080383366968889686498874764621671370248327598558389609847037109554902253124295252692921523811958056207917396295082705273405285888034799894375276522719869690598988257341298887195734912378887032195051739563387416209204691572808444030414796739522085546308756860022537397559773576137100879829528067621942952265220507837434908176580573923428446715994640311286791254204686575973575715576233393966855478358632228352880716506936091366626141688907429953820212651030540162770207677041704033774220870572790539907941016878057451373557087264164051899096600410138980985694558970702762927675605894542994924756895868357403137403221005166084020343170108769541139592837223818622371553585030238336314671427168612141727755308343288511100704074007278683266057436885784488746543276576090301326776823823943539354390130575947183704638633444627563701055914409167628221045134453164245091656956763887029013103709411395030426625468835797821397166686293885684872079462357470555987515565592310282653026244057494882049000524134155395435620942257172171251729524424252428654471967752370311656907823565814681064393604093655755320792178162060353141626134034380719637244569013340352778650822055442111559390816808809702827630582024970651468224975357599319627279857596925213687776478180401104191102075687050675602877420540224298970087375824691228560562570792043062382753915310771331539089986575290492510916080227083572778551294091012891126393676857841239192648325845150248729484323809134132236073262551471748012693817342412052474207154278717033958201303759296142776475097362033111321214870387951790681006579558955132786530568809868252948132764957281664082248696527634191546150782279303151018403645731997920763728265421776113390230189183730544979381516497158521225846857763576338044432070958451691258129658246857445399131824067774840565154435855116281546281246229145066339078907272600002707727439284877664181411296982650952652645918820909641760560890728650822738486230721509469930696040478091772580183669871518749161005407813441076289928358761336935169962533868609079039926527269533706797994753484574428025935424616243299957649121092121879250452078023027647077708733798827897937367898849880455581049913929709182584958622605583148301237828047268249229349759035957062440443626105309056616943551282294500417802539503518978011025728767300359885923473719448374574919494472422948168242259791836503550333989653614406400229609063267508753812040342592643228118309181452393601883178654062941264849086048139402263151151365548763717847185768586157082229542481508236174492894699454577098989403228775608384577448063428226134066529230952019803002230125847406988695461349865994004435210829867512848400472621724255817538398854588859032481940951820908930794570798155332120467450961700306020863056556454084706744757320463474941615605288796182990285481111251830974984252402388443867001348962458756451730968769721899111517517531050716897423631665009191734964726525692260575156442326993661532590582759778230304408699699926504280069275541907936033440689360603970776294592318201890764768892144328503363084562765378748156335598286385780365556905869880388259927632973340818503976553403125115314857188570296914307204337280283644189343427141880006160252925807748030518380398923583137099452798313501156661507169589241106973306984891724545683576792630773801732263730401893112775552825501739196359644486781166780162732883131271290395132119994030109243540775254129465961902578215387446805578905384794334844516186489071401761322319147081728218607853241981665200157183777720500473283685241594424133721499420394459570548549287595405094717701395260506776927345835731318239222029649714735544068445564954230765483556026760086621853680697651619487513057719490358244911769758325438236563440439492391970024300023398434469214887025194059275098057500627653190782129731548418513112548790470239176996458264544617346650675226932187860803030152130467398822104231533512444698487540116607590036042682718715027153718095942904357363735462584699628841392056035156231943437271126218196697495523146856184937758866354488007534238169661261947078672226286311270216263382263216555466751125188459423637157952994485462173774969251551488495915453906845328879700471625883527902756301511211609507428700793583332064827744630852973589591825189390428429692972258266006512231225015271178294380361732472402851736439183798900101002083807847643666372409497913774230099103447491218112573926489033778592449366755695548642823484012956637813494007041881188421697040966220659871973565267660493206948760051877184163730818378890125064134515224164386306703613701665920588565924342020809905914623186037688845130188058063811776665158868147745185278163666569823401949856624908648029932039652711213693316078711551606187905894256618791470229712617178534484247257481690047829642126989158533328708106119677311395843884680586203346573912067208660166369364333292666793005163828565871795343476964599423700317230645353495767428952180256504180902858141405788553139727465728876883638857212962376362058912343288438008282782091904715398894591382090767919688132175831566720330910393784057390933611228185774466626702969098696110302846011232420004924560366141138476573314691568266247678114798689843383324251507861642845556967998664999814008968941398242373321608301484841082145941463662915284750644272629135034953458692137613143253731883791322451826802566026991947000594931528111466350143477861921615827691201445171450852135329538032028566201473307649962646254060029000515287044258907827091580006937142934434210289053827400924605247038576757415275775834701347709113972985006912539819626621634638511062750410455058962794905386823926576615678085796569739622771196042905665540431417636964730220733418501293132026035453032729180996619500388510412278271736885241636405560949998077258370844729258973036934859844671725994135215858278856660347263784650963147181498462852096346467801254689782046907837666644163777392226235065941066583619941051604959920574132470105350511118428139873722084099548562639424374297008137956719251301167341928800220321937862704208359119738391303289401241081567625476819526638282819994302111130715718416787779122296404065037706864430182118439645771924645426934238797951986549093614107232713044786828799742969830402562618230594287267075094907710136755356367742901645090272151794082465933866581603639144354627092593689267387895200394140326204468246769070445688088682637805892033831075906824942139021715043146042522781096053211227156648487266295865080593923875196677617219070612175919697734153507637058185220072868671880872897261296730625372130034345026362121448116240499201358635985771119096643015981685872551863172823624306882082444852871099044379582919231509837363579987004514621745371794522301912474606767963386907863934242295442291974451867486452721556920284915092126641839510814822301547443958226362670119499256924844374819774484394924749280004789982760294941156654522230133040402847073775555027485665821098685922430484046216342766155722860683323637492871824831808717880402285335470221470772637624450081156821744603725350752724925268075475349078132828492128702643120444815546976917926484594594036155071804518289423370789197576223650879179482865847338198773940441380452285109210148269866394867285412260170861716029122596663016369573072969959447686357621180750362350489613627659891936812031407435882776088689916686472099180540462955848698613666354094693868331759471845336160708363772211192942118747683121139684163115263559293285314512299678027297851417654704611476316562480449927261952947046689741636025357475732765328610023302062012544285888314645341938500545742927199893170127846152034100494499253919215827002984876390892550279063564742951953170805356918908734443321452697917658103929599075064204210067317671095274851891804962427006727093112738245494883285528536388815103868476104750672810977135567726568695124260107042337335168316379341327362383622149462455264682302346410225513171990604655797881261280349133733578416138336966386287235007135974680847301653360728808374671770453903578562872848013998740746147004898445688643354720688255728348274712938201506001396529550256373651406567709965367644657568419350488918905438120179964571435392258943799990727517651663061206016289326494503561495215453144309811982927174996732254341931490278508066478721938270964781473324211064328972710831534750436883008378794517976703239767558157231650720405582780848738114699210292091636124705043790433383338420438945081394155906772311213438290689100273091333483060365934551350639771731614608785466926193873884156093335989977402640242677248277044210964859311806677127612938846143205578910180757113002506963269773410804416190431565143555727215986198200792204109288439699292719251144733268452258477449850408188557107160534673117881721391445103588525796048814739963109609487180700985401083043255934015184616130028478767284848905679383772704316811527119034842358404539660002642026553140844867808567999417512582811506834876810545558851322864450987234291955940422920975427512895195610335144527900979709348686216791720436107848831442075159126048381005267277588560237078341632768892106556240352107068695353060736696686650331298111876502694386964976507976602372198010590943315889802205512008294051418212472914483639462593855214811842276408159121574492557307211584685420757835521812279811264322604079074290396096191681413921156423604301160598486047370603161843723984746238283697623280051412616887514061804465626734869450777461543082812788493560517003087189795259538643378826191256475262246773994341398000116388699720857001340558312838534589278366627257342607493352164948505564074863051019504502011262450771707534963668771556175511960740677717546463778014528745957415687288623091669944447552238543990682665587310436935359465038257784044603739042903982170693289275585446604535784442401711693684132155764758167772671014232871696658672240645577490003028477453857611259480716554345962869805048015237164994455897194019558101286759316709773243995247355785873556182858761170384267359140986735187549621972222806229014611690631068845607209628953853219734930878993565800726585382545359784952468948527285853117763156835411614016596363669965520548220008506124217758904759920608787228451610123997045661285537599634177196955080609088563496265087272453761228379127613908335519144046536071421775450378284051378292755363434273609257929273070864822232018048960226287295271391614148396183274963353115294814923209519399560254337601501724429838681632964886965783679386007621255895228378437061121804064920576705296950011760740110687834705155168499844351591437302350688080607267742755732654985333631625449112757193298759353154789263082615965094752361618136350063402563520582639185110040854235841568920097916082445879036316249163906199857352393211950981651056365666817268485610847977107147830649111307006586544167169093370696987150133758358383140540292877378242934163000953628423466375301611681617783676324143738783388671847271676422150972162216965157595114753055305852326374091706944717920156922304419033524342041098311707608652816846356171607862570514151572861893184681232871378048114293949379208982848436610164239000031658175429316299847319500538668056813313416949266308935603496547244722515371602353483527382126281434948645620177753926033511008439352281191244452651146613083481344363774661087185369735077056965458429791818827734807292524861033049560509685076900993320470139811050331531306344484328224916561360921730162951109310730365785888652605057615304799248183209647247746624478195534476118410007221421173452650373445485642961926860612152902537951994708682194118392372118273975198577596731866882928137737003411372849520299275383214628049493455221054009556045473814675599723990976504390165553924648064999159550030745182172284174649909947964557971118569111754228407392177209090888404460287673469347082647333644654079019901000149824315698877379924734257854392860446595652150582652159124344399542212039410805376175008041589022771767326926413547252107172146838995256295323859991295796549692197911392050152755808400581626171731782433192132519732580218774480566104451659951260675204342526927188202022883437836706531488757472693126346971372518627055200585780735636885618699510633885705751298562686982710674592415730648062146932825809570679077580607573583930224799384097367290259461814191612159990863126506378126001755564651710806904994908799182558170750044736411388219429922988712441535927151162969025157445153794174673745102112035169114774870271281371332694961604011933400056928895942654123230883777635900193867889046481004513615118177413477913984939501434128919698372884851367246885070905428129961588725830876872719193292509136057056677179739572233578062530433511697380825234904214653794773135811175828374931960101704802493720638266985574235540054300985738173768187870304323303389235761048647227486536740739491307057801955204234212227288691674264450356042795903982901043594450866493620991897841869676127036552298764637223877925020933955366951743424381637774469774126821117937477137279109194903945184436842406457992911360311703008141443832739610008156355382149277379637387966744891373117306349349743190602371029960111862200353944349187898162411757074746389642627191268709262934378436528035201691105476197329469757392590806267302028277100151763122315735152553195247615097208751543835080831482895641689048045283533105769401990649700569520536490959463848951301202674129565776220255863238123827642181276879186443361076796852180659585684786122881186070715715761265452380876768554019769738503192353310756979076504230982528335045341870168031906102188263233098963115425882809619013575002535042298960428833360994538326804820454481651479855659485738268152173599020344242597346167759521189446905266049607509807402466190519486364146055926841584045596576922201806542282216648029708487406726339180663259007792442659202790073252062536823171847520085688799981818399228517579361283338353979376959739981168525266815993698569802360316186633887057824489614123744760651793906963530230955381139736471383832404470838282647685935078515366374708201533688154960651742439713567054819722165854734986670874087163958849216987456949178115900745630888097942434255098092497346433614674399479131586245159149442601850795677756159897209852023596403571376390809995520357676138242345660817160101238563798516213949885032044353986045611371155744802458477301952388254392258927019159832182874469701688107465569350859941100348456756255037528929536743574292848954312940827764376649687897994987669502686992482472606272563721954569259160064333987029619550468669487408242399148151716995744749137927756352984493901208054140670192051812818151025019924516667136044010069914934870750834646409839152138439176917871950334903725802540686716862397530713236447191781503553890812257560563669514800552319483482523073273632986061647568815187732405335173450055916986214815460767052559092371723801039823519222956735431988884370132935661477043981746633299991919015730917178903640264136934488522974422838286331950466996552774354324064202505748507306045431550422464420670088811941408075471702739146200923589954639139179123858578325111388562427916797209095651079657217723553714650859958303981582498937471076762779850340281526929962316908978923826569353678747489247476890942943397508438083682238864539694141718923148953625360320102081665963801009425032085403795034382863126861906527893678860088044480087052665559034110469657643887923645530241118615525877367358622241184311604746751377301801494757718000899668183689843104499347038681668051863624234441422755350549379294748198914730946756989693219086018924626083681260294833220517150002980099512736672170271362625909627980417028768285027714863050428050962156118944254191212615365723807694278579142294322751645364632475857071023644427783399802518947721075757894429713238738781474488140791872884893936356377303452597760670376025477144345407267116203011902568091467771416489050167105551185559933222994191675530981900694856023281176398914382259003837138213631976222425741232893711330998341578520266059787821166653653548023919665059717431935270134127221567591230345082513166668466054212329286623522133833922355322615834171533185778523911635128954896606427597929310136217548782780236674242875730095136008446360057390864380664446729908276065402360728326486713881334037660493043609891234899150803945474555851224539660152679590379138371261104743384191354363103834515780574900066491231553092017856034083828186032038274296517849351714675154190894290022254091772642724970989609101859288333438159859212057426868879225096223547494765915803931248675404594597675634271512108573720235262270711443140723874719904108556163492686741377629377601620423450663395088294928932635776408449152429124333473991077102768789173867577185442980157579482278056484371202119052272312538179309893022008879773204095560960556242310648559599383109384543850894084999494176331154744378569905463959295660661527269464124629814399639780394526579399942967007643205830642558250492571289799396085926075986230365249893637220246335337280690226554193575886391139466011398979171094976983699960563578609222885221489224692594047206068910341773355377050055438675464786116762631503784609457108015312903440819281660397133237274865448529207116791292741976485951679904320354591524366322545760580311605820066382012636079857797303829466395715478234971779271181063385160972960462781962354802200281349372427643136152203131972462985503877965381847664432647926418636150053839955847301959949925288883840339767069227765230315460083226803783964235282160439823324437979671998268840501966184734642031269420044147841116116217871970420019772383094404090349082940682992387519270404982860898104141642798506168874331337194000928600045566041413181632831414674224262783367083535170328110240733622446285324158980214149591152429840426550065882239596887436469485302523007986046638355929208369046328858511496213836823715570951772933268234709107164982521116607522558466323128517880550116516684771527397349343475456498576630813350009546815424954183401248520516809918828982643071945436482392140053293400684127923392961950768016168245608747112449836864370630714924669980413104630762992557785031990662182674058799351689125245425147190052453867772871643531882551144332805410653476467812810002328904716024846938997052918790065002384808511168665032361103140468650206921245602137457374534075938503011585068371108850781204032474577618007720861908691632700853566370325740802692818370876098066820858850952537369235459719857335940939091298436482319217097190235527793324408285426397945857879886811557614743064960370716701094663876857219806352427492613536667479885532104808022816487492767271516877668073789110797837933757469007643857630709623417041967941712215560761600361537519465900724208713734195717396867247529763090818414504167063282300536958174610811734375392548292413335905064363377566237317144176313307233310267415367715781532708673190517689361990445831511972145867010966978312862316773984533551602591600255558174166460881961096177965611884948798025216674493792466247189137188669657650451050538600516393509498064991042330499577385027762801665185689341681302162804599445107409688986792025021932848536025116301533386973086834664780596857573334669797703123662705437881085331170209846240187815756956635891439727896982312861222382733377621896260500801278632789065508824783109787435765487245834987561589432396532555064014477146427028229502947149636130530323493836222946362598469703722291291788591618864561738627393978928099009319324362669526026397464488229892289849083197407836672138682935844547354899232084053775415703563536989633999808476429686668461159569091784169748546032967821205479434868336793763549281852202827810159543337651141843579974325678106629849114933989876434747777396703677430141059865026338927369898848230980904006184672333728470426128979970279570784104163629243940200311169542969850100877620543013259999712647171768149179889948824140427913308460691820343331128393029347424674244966607374522925931137999361560992055428110291855272896248482343028412707652802950102792227755671593941309501350355155610229613682422947499599295248905236608147342501665216733131483041414993879025224010806794399602091100196335672187911517286837570788997527047532281179369371190973567235851465022439514725454919470671827514946321542229651235312145801546859054733597201357268216704355181334156818092416962244904173112248900716868314958079613262396444327782827580943885054995628060984288418073595307323075976945780727194529866192458246791302791335494992471360638178499031714557786341332161512304377941076466864801680703029925623389260526043243696288179620609242064551376626174852204881066795470622085618391273260838969304825240163595601017426783640122041501906116000538747187357470269741932035851867746312166852206049055577392639293323199088060801850196396155221793191655151501916778970132942519737551077229657010929263765357401236946003061541985770213585719146660257330442567708852273683861376269960937330515371681203537554505833151420214472049374354989045950734174964131711943034070604300589314265449704646986046353622041776011593325440977790693586649476486232265701042684643969363983201739821882525593697420644146565372413533097607139689866094200104926321643992360805065194272018357464898130837410074226047003724580550048029162695322129007040149023197795750574317005610037233940684977128443440480204163622441834806176180840672754138894969243836757520193884910571506613677655548433533843727540814850229561305846077151555754405432070183585779201457784440429101223285847866415278228710495404696467206201211646168554407274484186119121266071145311661317585413444590654591182420902745227843800845835473787603663429610270950361338851023220742732664101942051953180291934398450625528443499506812874096126617471015865891526220641694022417029401977148026353236651312735269681617891351398814110004433998794211520454164195205591047074289717663161388496920202956328552573538995573951116791481838877574943205426913448037677302551573560151771144565452632981193923071082522816688693556027696810893882239951797170482088020129419077183725911149617615528713039427455149818875479021291789815746441326670607163262032884691897746256093829085489582913822151231593253729479044562072633365025173457377955177615038667594079315362238625498325340229536129064244258220163360964538034564483692978931832972027751291540027555767886824427409829473101551993624352920038930843370226698669431320152793767423032389176856941613396213633729764771910902543443987406177976067773261174116682929705482234981759590902431381195016681106848221056601651960417003274214514151058850346210421817524888549050980747300795866140835924125576754140702362373244512762846548167681347719809319373621125998152584244894136597453774889866588074731813272795086019064577952279227198972272101046960698201710843152130480079381584409171140573550733101004768974102783141184654439032514358718639047873400315330984250677827169704235739971669500115787113683883371296572937658391114769884949341666257118197272496616257343736953105585490491248917318527128957669769275878349639102922053175594396062685037188970847949978765142922726669661555616335831708153602293087385853976968851235155411213379125039871803671773854587002882766152925714057428052770700790216383433537800562135965044126635128477976389416953149910119144892652950209919201316879305669677098964220944208017076403297017512531847902333650417592810173330757336724498582767266428221683540173488874818572679093104314359680791660949962553432695501897199310326888660103864683192616913644302169629553494559313599295068465850244181137603086784377915228789101579487067667119707344421934949052490586519628904712095048869386417614408339222705716617086010139899462224112463433632984179642684057576001136409560335532933431174321480948114307953116451378984156010418089042501932475164247814902273061611940242323298322316774922281041927398497001589867855997837665013580518635548462496730884016221681785760111212591291058159430138664993978000701026509161893603132218214353543325511386405393058472098313675832022650019257928121331779805563766158448937793136207305690119984372505536943655543364706847323046576935513446822947738565776738517289261920315578491381758585627867547400917739342405782829434424177679149382028156698125917856853279058219432483589811835890897393248908125744656326256978483365551780876258758132423226550399096347626611480553236624335777483985881485031636525711303956530391333293651014900054895625855761680177455486873188772231772646803677192752161232366490959586919812235474540313986169871850146366950598518069592293269553863779597631402453214124267625239815370731784329731006559795952648521893120229300996184834212706152782198437636208598179158621835096645765517239480160741232639847723901331166019287213162987788085944252949864384960008864912089929638028578925834655386676755974797153493168736829784561894127753925873708743663163979761932963379275213329275436462947740933962880102581470469609958245134705331325143881366424010940750087806713430355396768573736403876355087834941370628119124367209917151535780375352075109251109513598716744462506484956629007302639619709984094039098802731121312482825684095491895000283752631157301241051293282668660863270814009787322998600979072148718237937962796774384629276352248086588320388217380347100896863504245709080545155052328180725386202348854530200242023218862694351653391597794616069856672186268820108569888934911389182604720036480114361945385730660168254092444844040054853964473553051579132001399421354222075530120819312925450768939918040867205888193404003891781385624120697444445510415088116344554099158538221252738979398904040920603355238323253123215241064399251174179447088351393139948028491405257024325948989559388089080856590052162606535472912315220726439249142218512289230582384293107987660126837458671609598596289400489675348311200769024789725523340370556561769630076608846755056490903643183687660965693267257528474727140621100653197045765823746896474638968775154254865459199595007544986456428338255886442697053148617011703606903035796359727659867254562857605378971973063672996474699913815871764210103782817148807426135044859645257404033804203415566382012814318540907363035980825481923100264261377313224902113370064072992122858433260887839651599841717000895995293999655107231695187015718878510593189867703482479338116879160696050014416204024209024517918716853060589192859325996168381671429472678580669736384810302667399621535169674948082215190330790792529293566282796419149454043998582131239448179910316273837879902189180496670078290398881072065643591464000305646415929793941158214847852215341783844677921646079620702513483330694012998804829388766628696947862678579645385261268235373524822926951488945038931002346280323113463539355638791254044787139840658680938577490331999918476468419767241675623367164482389456998737537749726847887922295471173114194883810002809447930456097340914047639890066744719365519019386637652056781279606282000261919920715261495595314080911850460151085725289087931808955226014289483261510672159067255517010409229157473963950623273930804322630582255946550199580394182084496922039860556492846419573438386475206821516644585729778364453183089872389506013943664555548576528574739081259918215547947085532914845504417706307402268893638795151752869597431855834724861150174271396822995921091494888163608529256693408845291701517357129350336955403328512684444422482120311105425031287547480420475204004640990978748045296047701582407597329583485025392020634734485413752783969614895917139543271038397863303929249161247125707853761031539787239984412570244723888535266692423255384191360960431263047827766232988525130301306867656051092500658168577785003389566115138164044588026250511378071805413639871019503561258697849447916934087380344205607116491456583448494022550983140983358049066252425665757787953446464979943073527605145092539961757530827790488925699852527254646409114393701181863641299023455631009693222435041722657207865173393796920863110181969342132115780554918004030126013485910637266768261050781145509974598102813895604494502477937697544985595951442103330863817741101623383080177615709113179518943133182504860564469159843761672784422303671506472211681587221160621612549621890907117592743896844602921104249982890204460057172589175364283504148859901331829413037786407589409008156044349517614984196379845811270741370531257809768559447532812025474513436592020276426630587608101862016995377958935931335147431998722102478901045210326651780322259783215215662838987547420011950446774537699323661781515740194137471592695846867081483928464576932766134563218528730957117062160817527737025536779600765256439818130056903192753981624214487901838445038970445478787316184627148719279624024471607656850809039983965504783380626038745274343803055591606464393877220218377585767532642913047247051770530555461532398415200346971969543211719823087506021490598533669575715817882851080888657639360392808715218049655747843625528051700143399075990468193137556340647556697479006370326388764008506653839357631056578592921912459766370965251284949664562384288605299456043072001799198568285156101742892626110017324996629942590906053890666457782771361443992332373565610076268973599122275308549836465325560774647404719104231359321016467316136926605857669366577362512753436482117943940445372130491141757804405690158217193511820169095504485423981416732302327967837476171596326498719770451611643584937788752263585231855346642823264944727089643232012244218541324914404413506654944980692027695645573890182585706114289439857890640178228591574533471216213769624724774333134522879057338733072190035270141060246911698536032033961415652193541296426118025267603532984219504879853445897550961598324155196274282067700982869308197890096453770975813227082763752656232975157341572579490035497370297981795647031122583814321395142008559328595052532425656064120300805321815879436391559715770853497470494055719670463867329072328745461811064638959048755505101271240934132409274012972382612947441610574758398831901910668919541647313598357068830144716783837131157279867563502871884356478741430182762383990054914804389293920273993739086559466722481993585658697427160193119070307464578760989151513821047632505695792667242388435420558676722547989262650298779139784491284246252302643786579817795177392479637626096696316638185144090038002212315945880502402388126944918187490777871662660875328189240484507586932727258810640076485047349337567380224781780048872107247868695804765494088023221092921437444728512977225487964049660691940740246044239611405492166868842735025204639911759139358015617748875408270879599371118583295192059099593100805308134439660135167023213243295447797777328230064689153132164506711544358808393766710483781663068131551923904912322918075723655166855153614123008483881768379750881549563399094486665203829690841703584570507047159262205738261158955107287875774019566895843094526030511924995201751088606376061814359296622272405985136985421163911620440556121870711333347670749427132989973747549694861053842444411421448436191439723808708623198607828162032387618344659982995986077945067013796308324439678498835185902864364491875936529760332458512622316729962872624415436969272789928799830465553914464940746913484788239935956306675902776700048988393695321821225687741063667354906938913484936076409806019632128244233494744423536875649940982098786654833478656280264652421380254290486373643817222101633240462319001522904013400588888076141093051536949470098384349305505582650743854876449110520639401274319037990369397379251542503795265585782350366534828613951866877679052768846213949754055594214211566950387530665449482565615964121118929797102175838211493030437442940609576954839342140326431919837067716521509700238389918390896996884161600900095662036723462441492178090190371144894229354101706043212897452351864998114127499065462448778174788964539892833712365141772874473928439318423626439706420014269367693694942759308161366671709957182474970331287651426897444086145578346819871384757659345566218012166752730698734420526408868902892991990106863707451434640951033471064149499466479046463610675609486559227704950801808750836010779229071327989616130971568765041246419120294027340955776695168578466809920361194779340474216577150348154768567927890085052589571463129706379156488571194539658100960773647145941076731040787860813307506360448699560742098171254771135410790738660354584603304415627508997153354656788414657840228701657217441978008540249605777037295479516221463601469499097121022037676411234817956680075314347927422395869062629038515868496057976109614917336732464682581333272843607463759504187189822263302776484354135824520224863202809706613714178712203957713839172859331899811072251207167961063006300454732399283755949861888130081797249533484690626898895659983689604364925385614693222456550717873949124992056191756200035443705256610055420731882040022914587118432636147269721907825676063814264732181121126361542972046505083761077342254779881756934481031592451353070530291729350998748587239173460261386131993226007741665417831391443357299387585391415224663872274471870311032781050388753111623923393684899008309024952878380106814272279803600871985039560552174170656966168900371162488791196602828188365525634462164732195757972206379249305685212223962902100450494148023862872113626892470265232032867887982736455660116821602612410492065097375044442899481700914684820655670740019538082507552369842841965529756156852132372805979410099667979035175580917664009576031785081033674581172719040605172291922182439931469899624632950924569324149208042640474174011540252935509564569632624349202314223517227199098641622043324600077799451538155022177042960367960683803668359620067036053254179110394999036077934342593481176645259268504660779058703970607351501241966956033956413912682304110663963322020412953245047894641928633333823962072117187312382020790942700477526166251719424384392722175803170158245309728360776339897082373314875832177778017468287832467333468536681441437242731213187150792074856713119936750401934054657661655810424480377697830008752946491130816122852269018696558096345206991815195113646346126574577553775450588846835097625314069253115318921366463671220289556784564150296026445317444105493841217457166785913025431269320911886860048656227640605120176746267960987802273243393770287256164794664646735669312132206145761972824754381651689189481469373799830578539192765232380100592093150929205689450301748291270830649560855674985564031471063095774092451557487384433493458966497926245229050729472287106069711326468958628122662983667368170790061751217030677316825398805538401401540553203552059124804749900009575786020263336209678977799793094110848822887428218206326931866883656735887160429262095392414839313308156007048908616453836289853246080982375738654078481570409718631148822779104847687415190972761523783016768634842099972296453193355310255233920412379308838072560407331298426236759234213095333457291165224149027098220096375401014760326533268915570169770589949470543146389128352290913421977066821004798823349037034902636482445975119967176976355402930997363922414716847163766297666310287994292118890074969896061395176567823617114652233611678545593208850605024495495346101801436777757699877002502648174597701883062675231797877061851570131191082988136538417415526040015813865043051583249487323937520704821366626820999761461473635627378747561384346345551008274800078383447232675264440083360426299206707665418188574773525415329794998199507792300218139482569739690973987534746743338419667453389163735595525139865982111014710414526046657702232080428030920115008691488083689308710699088864942605463875630874812413499753239952068396840860886695064150431549338813225298698393924524558622450662520981744324127429036932095609166717052384496111008481580977432143710192161066207368649423922998693019102281077328154053837867019273103121423129665375687804105548626036628571398812682925544408709396587107849607950909406807974741728579846217107605905132820130661119040286487489506697359039164025521262654796307178952004107989891214595018082347373087281147275123567293888362624804697250340885767673875397039708568884129506677940143115498116395850067729372416237512594570217040873379948470041758884321774484772918946076857840746172744465641850455896309188851421651579308524798877593505001430772940955723515284033767875980273560627647005135277508843913270772175707142923027291046694313530994105414817783583706251915188506802885743773097439262227354648963769417277483390926227801868128817900749581790057442816445394719184070428917634563280500666751982232316313908592138626016619393998724427855070492720670514796551435871690317524221276182561806754030260215888434719675513183844545536853667231944342745151859077048513283679485944391050037559756505708709048467894848217727673090183524046120818250314982415959232797690850364269760572787047182019924589756170825428926883266201273407561399457032554573268342422526077541586975199413087708245605711569484964152413893440195586010443469552285510996072538966675601437090955248088729564119396867925843381094434485090346660995477918957192874962403412231030864231663164565477971951201530698361648456073394752751315217180961648954639398610190125569319052395445162265445840450890693016938766524393425421394056225202214326943909500863626593621288894045413224163356161088182393996335661338055660702725563768952849472803849570552454666440445310199260499561541816465314524479832359843298377547383044857071132112772998620858930490063036484861342618807239176170508312765343610122379168413524960093678104319670893024200967575067377419622210629266078257778333581369018595181813617338432698790478975197757263501647092628024381395882963140381675961386206933492181252182356208123708985472208732753227147895581145703145618813735941158536343983969156704628003286897255616601936672591598352515942703613822811567350520804262667560856435857157167474793412447525943657991560071007027456308576738305952868105842630074840997750359745910522460718394890380543152620021782756621128668261130887949922019232658625460689867905928241832141678751226632541507144745069052395248491244498453005696220758977637442689218524557824965371174259407675325640738970933063800533617146573779072261738804158990021502303161483645901698494727090650322150179067019103370332911870714994863285168195674773585118699057734865332647225498781566205987130274577084668180977101890477366833990060347079572846245971635539008613303794072501110152437170163988224342537966205433044772480114063868404441943874316941077542832202627345596628367693301786888455298041427121665703924792543063960183775506732924813017326054223748325683640829301723347632548310230791935167275777611308128898008162098252829871238476640273915822403027265836842720248148517789135152733985226640178997192822906087192310843634444238375151208949363956552488486296088354901349136293664141984817572147070391165294769999883565966402186529766907482244100952701459167848591549534006915801169361434450765291447835280305702249222802172615525164327842266941668025879594783304997923642472771561177392973658793026972310246837030430377696891600534954829789197592189388617683139844139986052519604264806311633491012831099305932655403032430732579130928710206315791510688536834418368789435540787415341279760345062362053336213502885805626573938975812767271389928818197494161791098420480358963529775927254762618271054317424191751081014173218211933044896689325541150202725395633938785316771820216958887001141973043984638686192667730551461904139334855220694037780660594035485188922225350775690541525822008068174893974066747709287669215548594987102594457521264676478970370662068329695912761047373390879548715976289820189591316269610934096334731617706021703787074650682460131975241814416917229593495655680947060531641059069545050090805207984882497272441484620330052932894923323509180136661284208439162934648857634130356283503238051202337039379343634326343146836701139388599684523091926604299902615551674258188619449780300053842019861717788914242600139349206896020809404519083753646265357794387703960591985439116967128834077703453511685006244349472075812357739393648058067449645304724912751601815112419965488720531545057922527305285204245203570816904206067329397340881352536983592034177774661466902821731063407419261372682341386783201936880273462359097770360686722810222289577362357878211708117919620404982135331264152594678564368803964298346878728329030407585300045933481335118571042689258727996034384287773806286128944677365653093337397617401781015785539022894406374851916356791167279154494851655132057536007860418309853170645317796497223295027942682803858142882226924499310044481636769486867738544704104077118757146249248784362601208108224852823211037004900726466447158232178863499216244148019949559178069156196941232132840638459560506261120506028650236942926084803853221738207860664326528172316078295059746974787523099056279349790585394053962989546439283794808070004759417652926293532084908099797383368362183866680526240017366921954326977615586219407219965188344334297745060537525349187938867711958073327793996456568886058672605583966309862644356606249068681416494231297962119014088089847764331422533321313392028153735481171730952787608289599824804078327194960561764173000863873085886448553572217148579683828630926295360545624866473644738389007821167563445776278082511544944639127493544187743042337969688764833914818179592508075300226960686726056774404334040550658411937982073807215616986394877294777685060759122795950548490696903389521772546062045348729234492559843442537583194811592573138491088367605457982113076765624667089244022317839362780190614268518219583713750321749431843345716125102766637700152880548722181692463471489444862502841006480539673314459978985625877140348987512217683427808419781474889507923623685621174043361639900449129360868006198453158105469001170784104868155980433408910338137876021779846749601249619720874470410103948996977222495064891558012969437857418700871419251229622124790022531445734637058004438536891830020070648367339147674795980237509031462230525775435502993945123242376838057787668886116780175746073541168739357712863308166768382786781056248479074887953456844520564180221465880643262095757271228727175419956491613225650430711527847979035462950349951264051997711222884550732042679104956410470955390383364900173409624536476896884619229046950450910971748923965603033057950890666208948396318747813684355616369095876835926482346439290510847212207123440638907243047891860316898967718745706992419571674102121899739675419012268705395537764131046323952802938404899921542884276273890811597635393054159464195546594797113850200519397596924864281555499684129481543421268181603990919856258434040683217023163540798374072175448109941835614553997631208845834625060439555694353279024516162198677852622937330212691066927217888380552336654560978325962758743397382754053047802729709707717177640607086521935308075517004122265683395358321331919506416547211503487030809639121277250556837977756023744519471975805097145726387567450051696640219396459351668719692897692450273348885254401624474882985268792433557865700955576190899524635522168764418923972288513906220563107206443042318203759000230178686100387309590731567071085140418094545745193309779731868254039897159568399414295046371272159623966886018904824392551669140089089886065345171899242686327569159558102099681171664544902918611243136633132295262870767142961738183721488344674572391910203309815210043919142414388142063190563689340768349154653105100222008566627284090112576121179983493395738478161222226197213704903858997659054259193864853267158998157230009685570289252452659167000307285931197709651546228263739588472133807475019569818903537585805459892136298644561224597811202519005769573734396617715633416700302614198403273893462045820363985872999959869510551398182895760366348929268649438603049727511484345151252354544856135277643420605401715653552326248717550847875617139684136947629050351737698135540763654632494017902969070295663260176512986816532188618990524278120716989184113924046967275589077008584876169681501091559088590661930415686109081733526214371076348238935927610506095227432548996325693944973157420282579049019441763008848936964737502547580004764161921938592550923668955715168918897035830914063024679724197009936593134813957894389661961115131885449597906481359396720857252351642919767934791941052482891710848068383432596485898537893879171213579890246497869253013405532166811496546130213002070351225325208548846330619438057437820433711810833556037936556850192795441500235423725630238815895359540653115089415893451142424543940725653550690006921193483152237727503210213776542310315115614849797391695121973695855300683197511501255874941992802156287457587912823843410013353265402111595229486466220451743969290011405046905706305177728807047672023757097964925661865441705130510687221780389592019491406781703754644342935428650860958783448485486202141208788207407920217743309733162274273851477516749299836734389492377596412390305826950362056895149460633509051394130239353908147819433859013301875442756591083775062831068640048483724998033742680614499041993546467437346393019422435933928647618109645370642645607934474765163830678767643061708578398033408935188524121865954737013979466442127735151812874495968683312782393968565653170157669216498346231459226025698226434696428196767966608864177004277109393366535719222923678188354796174084794938751067980958213478289838979397275509918203307929394706475108284350211545502447943361628582150827081039822914105032267159774419878504052073181414204340607199446777406756197929160786462828662955934349246050482588851088454047169572764831909870891665914564260050296819545161165573054482389731703368305569057531572173899461544224843544138469418483356734215434259473645449985870846110381061350749331235386217111265998175261201034344106450425070106346026043824684504444404124426603893173592621658419537046645569883410527722449852495410249759825100073209946773709239457902971043075994109225797527026428872835792622088669978341897114702677225945699091985038996895599642392726672714402648263411975080722842428383908083114234370166455760126801051936667711490509392408340130083354014723409029370484910898548849969914308717706432088022699600637585303410650765964098993627175650075004942464897386175179166842988300613563770343983301479282267883795846634642474277222191791306213240532088868205381083456900626752349916918024479183095708401829997034745310823772885754909282746336656821334349136345570639773264128565486616506365256196819483771317125204110315049412764653036844699506459102316494363611801114755147555752419650077154066562500011206793139551697540556315230607555988643408541862038249604480408348816558293295377257493115855177714610684270632919624146915912026451224297925538238834749767536028860517466921718758855218284542884601225943285146818310796591781153008168252550461977673094533914084467929351227954257709998207738738690828562017704806808608876329187051998314538173648869399549230385375105200461302962724265792723824272086585574829745145744094425206443616267954086810817830667124130546221875044118516695036244377689509111382968208274476639088822806731542303149323718023905272649952749203994158572064674660835618463179298149637533536652478487134922750464864181077410058277019273308629856196302949904720399703394813986030723575688857707733153534854597029470203934655442035462586483575953476549503673794671788473552603962575276203550342872108474308647968722384559372658593509766193397513153598819640993930382613221577941054143230693204941126772872854454544157424850081199813966988584177918220946145591050123917630777959989616630623910773090334247886717774812626984053096643489363360644839482421077758752717402096737927165428585999956556875310437288395045730185636840595576843330398515570787365614171950460961936905041082752024613508881560890878636860592364156074201884088286833719437067146880692310248270729090954919549338988575880572133159816508763608258373702685592191700473059695489341529811643331892140141350843420331694389984530889300100198041128785416635342691521786873075749517541404830342377362399034412175445617321944784869169183431092094752926870817312219228405484515066432810264997519292642090192678523719127724965069731109470416718486070386674745781776258941864658287309517153161107652623549964903770912074476422657141838837990433046404082627229839128208733983368140552411613244458156082297555518931973194575695056014598548381647690215151532836989522804625912863055386952771016229795369148965140090321798767130998337646320188750577476700713206307696269365675905058337587343175132581540478188883893158968541796236307035419702662708378279343618395963133022943183486803629441063963694040249127846015882722100311143466745885113145416099482260851760300567581131110699592388458946912299287739212050716429454009960710575934998990530495077198292356152918660355319381370257705744877871746448517606373583941313959185480759933211161455280980593367161180329257893204779261667870560061413057219253947281721517933087728185122509357015179771265595405501683011668656170677095173326276289772823420038729708645445304878270468460528596019449811746021468441277942380105142066322900643088389818758835857502066979781253022955869319941870844722764463775967210554946566449184208526566757433179731822534105559418521980291622171864797770079803668127294897466683912361218935180342012806039525022226828085398609460750000188650024475984073137413872447929381692845475599395663846679293122974043435360920452333826337659756511633369137904291469623266254760759329156030400013414922129059110176412196475263461749856122151586913852871967767571014504944382306256550251411937914876245615780803423536940261276179587312653328533070525881706523441226754133944868637304175771088475837246910125549410816704295234169867424531689801257865202893849904194193476854816080773602253531421358910045946596854461701508409718764358385468058234224109755934400976652402458647074061460540402181142769620786561850240941968777204781268622997546411461982301117557419135755840474726650566616532911549049477396653918246167451455719027282093935250185422013833077841450160473574815674002268260420304557647432126472399830280748294035465064393457963526257788265185667434382810606040139370518494849183390607183356398372038353517389570695873325314251193554496564590356703694024225630764052652849730779234425738105695195967731383253573861185849801100850473834428921184989697769563938116123948977454009545461055317590285274627530770328455773516576469984181742383988360182758003374101523676786845947686188273344474729911253487806973619309538295276079255030809388255494737877527217588486145842720518875588084504741312592031528374198952975972110693124366907638733279333835220018028068800402348077389199260926529709104240943359167170526968239025936055779452929138614777923216305735839615600114441846151729859800657829129838642478240520461322305023306423886817328496663644747079265886539787466675340791288912427329271350323523763641128954505363076935221201960387624375813020694118189374633451242923470661331999258350435190546015831583408480795020547777625187004799858416353652910224706496275417542897152327764054802777330617095802789232091129611634964310916507362803864018050739316403321176341542781647273483404042749203730538732749100567031511964291627594892732149680398996781544940320647811580839273778993707344438197607423975846785405417604346792395831436952152761315822739973720439789447574450823588817801433905453356854104636479164395352731115739671277512095619235084711761093277127329137938181298410683959629596916752740185955883550523155455624361161783934659526441925576132663719813112512412952817378984644175479764711074499466992963632569837216134600434138334699163750002559417866747763574175217046476021590718753813901956838010739112523985075052121418159914812438299360083710739030077040480500189756879450040049426658421319720443489034549427064496977958939751829900881673877212845781577235030512669518269767334136189004808483676345350293925065225211641963830480410604627998129588844003721981357241651160709932312103027757982675267065115386406777875627785859144346736298763735686839980723297963255743317873706506119917505387544936285675839577778966290906571994846037398283128386834098570067259090406349909838782502215103352354598915470013135711837423443128718892454024396653717731984861441345358573275902685860610602417683109566404283923469777208708444948269976226419020699705225235366276921040106928383379634193706828912787623742370566850968335536599272535844863145188228000514148575652105250423258209938127573646489136975979941236221041754358837716723276580971283032878821114823758268819891914846823373794823087706263156388150441943506661231849465717160790104393907144274041236152572758571583709287924176917360568544297630442751147121925765184666597992692852794400586051719213267429078712980947667697174516932303270890658102623658829872168582321534247358933536195564098594976084819053759636458878808563725829291882108851224886933384577171214832044233181307556221684895854830978731435420945267003839470915709321630750743584424359391307164436279509200495667713595778583849757542959162567569764118216939484268829406961930152527902815919140803590075705632215059121280746781415772502090996363389541194186717874674810566345730723508454337812243922569027659275688554585783253531283932552989385395193326380904675224028734628832156234774035581900926212577072554628035167688191286429608176216849217077273431949791729317618267805462560218047126657354594489761669747041908725938478882346922776058139399990658189672709860142168232630571906050956793864207698911126413543218771081724703619912813108290379547171231519684896103089082242573448964242291721962563663398888599044401294064884954853907995406078135610628115733300687256264339449036915688220746317707068828143678401407311728132733587723797939692993702048382595372112792671615792087268157535102731760916946866120009262493968101231704544233200654210075262630053374527714411143500541532486068694984793462541274514894471675848132641067504806817314658367123884854261649376243009180351531733387751353384321633969926324417631943413827955573656151774163653799750360471062834352457776804996077170886663140448258558061121128588298699651239327686188530598925502459215682230102928685155957218385150286342461732392976655851845099673606458103632631748784028796466469740654787072068563247012375015595729536179837933329302845119531700570798313179923362632402176821397967949571972174364013170202947404357759634587085150821470668561989140002470518484801285786307418151775232072098984998926957508804029276093244288625823268596645446195688509722671578012396843525673519571537120369044200948899646862427288462658770533926299911402375135222739464100149094719487316206527148984098890075198632241712778385317830853086642962570401341179278475480663829104483505614856928964623504513595873745338557277971883704905908973593610609147367143090916671748322504942264483686036118896410352756026344070021504790753901256296473315027095215199011381936666995167801700536254171489986085872221631146611595433018132564378746020965148035672690667812181384860493608057092548032705089750477472373032647920103218252984722635120968344920609219106307276113196606390478092746455428420253021033575025314117571644340970652497471515130272815501503107357138856640820759333089307009179573972027806000027379451352562432180803283455654195310838064127050369493531739271399100930322792619711431727562381713487312811395237787422809558360125375035871933556339759401417914207962925797627369602295363538849063204367123166808157139792456297552972226462759619387448010397252261542329690147827506581710095459809304521782436491933585360025499673122488040782667267431761599460827966763442877261847112235563713964531914389581935611845592704352544866768463063191499014116608115423421997545732686108472342152269408655179275221689230513296499701961965706136684952660262386666611988745697390594783729151186006590683553676897347733613513712255029568871713109021586359722755763562883737688462713105031615377222400286249485127987580801200996845417619871966786158087006177427501420076867571993383981274668340310086929664664701730528092740425036005134069548760584567170618863995693077834287433953879859493062356492524622544255270194446412575027593712045231381663600626669729853060107359771836798318652546316816471667584260352825786502864244780473887395083799677150426849794904089357151163916558440385610146976067306660689412556970652277371293747359731683132050528261960815362677961872744955037357816270975834247510395735297626886889897072611421382822716395127761257255613879206956412144085907108628397414818474678762207410694167095472920889359205086706890429413028338635402873328690011845439492750192432742564760549631483398884288228776399499657059970801571624140747834713882949244341907362847012721960706583001535590529313285931758365365268769156123149790824040504357697058778978963318355092009040077721782113778515232366859359984909086978258162638678633733646122196182005429319454748349635057895170542761744239590521778833330962753658338772035977490110243626270280007379670260752337655430420878245967687892888903308676426147498631891336724141638777429278842558381273008404631498284573602246618019153001466184370511164298817473242390085615341221186006750211313010352259326167191000937494790133081120376059667579901279480593242410159261492639871906381489281850723254375871475625839639215445206330072603138884800036378177744710820390299601544172939963320612830870375896415620932655839924330064749116376100388394107072233320241743678263044173214442481061964350834160887114212463327235712324952236617695759294155059890584239924258023537749144239790140383637279913543850799101905988594015658900866077387774367937196800151476029212081757870748134251922604764444304054182238186137548915853256521080204540899267034477759548609716845261911183456122908907068053105776584096650769695090427870098686509680529585720412637794336048269812536216828847039434699516186877185427659179059956334905395396613696599317977028012400257321602346006712760212572380027898264374067653743028292993529082192716396158896696795695411344122485980456256264874232308532989359987303988176369686045899388979342888471917553404312868782977850418070529635138823700691743269312597303180906540663179359477600914030071877748759552514889552660325756626451658067583486794964272478236383239817236272942614227000528386787010571728605574629977819529822559813214464260733956436914133747823153445775471080711936181669512082166280822096653418593374620479773293055732882183525919086061540234963044521384643967655174898817284778340497074027292973511153012589877007107446419880464593404504466780046026259045087023983115955087091639032948128400925451037292344088426573878931131157826722780056200013843240371426218103085597483066901146726231473867024452600987268938151489241277241414691533939801099027640325612011534624721120790671771900316173970185350777716919782803041608280199823446209680299084745885350982825413895413577178842179979330709787253548338989358340894331595331479834590572182812906367898641409584469795757635432421647970635848928600996357471418251570309457393324542120053633700514790664300132872717622747754804882294422209352525098170146429609333981154706821394409061266856668496666488109826419415116459094134888552140143324979220226571068722019207947392318032455694286611834209794470583520919837163750625247166221596247307246947593507692673727875757570882071028731193265430318178817228833804835766108415491103889350827314887507641695567567436016673946987754743060210579878621785704173837063639820063523244342759230284674388349791549833534913898233216650809127505206211719028938169180041052672165194072584552513467041582607361006456701819379820182960926295705466194927577733426280087980827617741634475818633285894411281313792694648461846015905997187212986255171220659199715369622432725106205578979286574594186979446006136415426054177315214650511446632344085958147541495985471876988803467552403928633106663811969440504401101548567925324691315810569285834422093122745014011957128206153375513313993240560078813500528199285971670132433912219714416645341958798182711920814802137499100280963218280194051150824325425504340720905107736784966461220117789237565904221261448523908778372297415179567006632208062203103715940299126006619245259637664039072804028667115383233417210450957520684605508063690036024621017545556499908023039629561151598499892077704426651028088528616505084035538345239452860010124036263785220744307719915701789289216417609022778951603498795019449483878998199050708575782959300273843461831969149431006669931616617098273285339872390289589086796158737961420657645003928252266328807226416519613072267101289701902884526532341654121012384302730653340121187059831597654806406548204285399976005219696518794726258271362406947456520461078467691712394215454601323953031150958935622669918655645747677322291638348172054306570370442826470254999247536869742129639803742313450282368913025981484187705944241784358549819611461431562587835371178479271933030872801363812667976109264422576487225219792408624881321151992749965003836121828782486164966017334893725844441108368018679217581387893338007118773895213815991134154824097266112253673842316075917456301577650449219356741554222651755661402325077846862408883157775160678952874745506225345539102211684476844196322825311475518983115078971635288786690010720244322887653444502529930720152598151501110068917903075068210883852601105840375460493489208443563273179753172491460761167067984748413868011257142082486574959979773187905416241813732236641619295141309433169016952692997832813430649740125258209009603444091770044389322562574184482831421991339625763361303649220423293343520612833940370595525752953109091089908693772202619260488038182424954663796990349276282170753802684647700590322971376500656570399992386707768825647149618342372581849297335173559196819909218929924778460651564695195469340608345760940153411912486186566586767392961734058152635392105392626196769002240214315870256908752923249129873405520897453561835723620416205004743797110888920057880335146673605846062796995483112073074564442552186267225364200020846259903615197932003004574169811396474981893175989881802555582453256655094772700821342869587896662305275691802269448630698871225485076824737749761670646689747109471871387565488943253506194826356672310851984716105237068360975711323317532370580509906437751930499919116130629010293843747920943931491664534236872407400490473898976990155562708655293066470817090840481406489083941807611580829197175717598888129128177615449958465649030391674890076489571750024159518732744035805783383735651655159262054823751216457208352946667018847399802030744251349840811340267901454753868115708561922869733794233605221526832776120626119505524947680617966871681144852923620138906749950922440029095139143376532513573763870398368744716027490542718477678581997504137266274889125634836451348530185636867511736396846795770125950531759930553195590202020033243230347577352787753107486882363662282265768682973974169502446721408242098270478956672596975556156843690323787626535652129413584015475545625092477996320542825692053345870931217664488058382838577281157931543950655863772604028765218735429115550194551716945350777287483252053840260890395175320343674534131434303751296661551059416957245502605117864397009845231163130215994029384296311101775185120674452054346067815488063390729473679683008903128835812211837703306885647438865270757388447094214922109370629040641289729682991916978270978943127609206754144436842350326340123873245221842348835368001932914170239690786905325445611124368402884313592814627454917335404732771579337825598177526748763159882682319354643353099988427574971693224001636142857542706703574432866300417209460652276849695926698282889691476749371153371539897336312346436025112206670600682738097348079503826814087132429272208133915646695264565118999026549741640992091037746245569373078810924219730329229568474198722255290069821839222077297079625304775331059273530858576714828915547793650292176326323909236650170266416582601267226753109792632209595620815352714459355641543589803567397954967460468072397891608792319500025835909099961585511302253408447897572639652435347112832932331115347202243215866360661202060214824877607452268816300177207912167341508463947910402996843127965065010027638928942774921131372863897644275376409040358115005332672148489560740824266963337804894975489340093843941611320015371718105587250569126089896211145376359331345311949698853012051973809431841826661013364589207657412744749721536018914728834790322633474294017110382728824485418235879769147734221356874149725257798659781402155498956124585131156968003143043884649694926746202216985916622924429930010974353850606697691118772450673295004152037483527127298703445542869008622979973712399616329889718829571419883927591195326812277387502237400146930108107986698186135867832237800101043156179342287721410893811990530897960110151926785769663113089091392096233666177954083526500598478430086180201524652090350404389460812239436040339224279249880076490533199371978250052803987634365583580684310061548039791122878636322740532746490194173828543770204011236099949069066604796789244609048612114630903060400397606142763348739348556925541794992972730111730613028770304825386068015503152323469586809801967687361953819552135691594103413702245440649276312698512318917674413246048153381585809457647156575143884562517432829000562006014748908317260717625067953450401697615093682952879426565147616360213321772751736948175958509805940101537073214125818346180059790807714201312388806785695958202175176235923904412554108777331502040700842508882055711093365761134045969907299611641261251920945475137091487771283753356460709131005859745646636633478012808592253528565999042024210053953049201949808032565498761526381142370904341351708963822282686890979566801156452429742522930068057623803154197694098990690900156937186066085319037900257327645474612618868203326373410378645870877227903400535711441422475527792175354845322478301578718696039934431230101975564398667851501791904652367383589104688608044268090561683558528916090210993622982990716090634458948804578980412512758218735032085716752576692166882767712812963449618301472679843902674117025897004993085300747784280912752426313186315005861253528354514225943930677766454340355460025080554655158249522337584143939726524185303360975998290768023033096810286578524686265347629292717966249908951184891568464869428610257414974535037726218990319918369325307799082745365142541084990184405245509613681791182355656311324792255928110413536894799623773407722268108224978482268705356914268532577025667677681478334710818620136582774445376522922963079597306731186374688844913814950076278146807128287548378171031936890902427019988787265557113819518259892164132132943254664190787615752686331962102649399143659346654066069272157978220477769549851246531542345732947130146079210929173177333974818667926141830761131148640865588776996809016814411495180085998125969193473381671232188584960174178371714433927995112162521842615432956245747485020578087512521787923606056354773421466875648655577905467150247902325339978225639453309299860056451505194635070540201392453462426580565946688499561568000423598311783969642063228608962702348910360447130677560808907315868315800677227888630738318730335055114631410893372317616681038373472322870133941844614546626753860341361141172228528995587069562249543358509005467381788958802127734389108041473101785712534568499018350050129609529142288105674824558476456228176261824990025566781194998412821369881371414628137936457408265527025645726567647494271474660443797492916370041459774435174124896767202309601474570032706878005272992686051221957909617971657556429867750741857010472073408617383078581620353512768425315903271143301771895550828329659297829932975963113527631733815035617723879849822820334477919990241322828064151510949838113279492889866611815135274166737777906428747491324623089493123223496355246901040391212386783718664601580196740516745806271869849845018464650804011883620455927708982460484608437478426341495549691646783048670786403045740634292518315326976316964238080618791524455728789889021471573515141613550529119960489115755256979712029692006828357575413204113093598442743061821656305809865051672526210470631398634440345077311445983211185846394631405093293317837219919481208371900348637492786596092114939114330900896830151426232263223703474841397900185622551831364039668513814024471253231361313990789525720240004706113684549893107451155773597226455126855573002440785744105313685506102871674093927299602486814304033059245317328258194534468633332629238828891392594902156194301882150536879151076444831928408145057279015101620332132815831729806605738124450142342912780041831653122603062015587528484709285225861602007014500318531925664348622078955686497904272680177783330127957393573701255648154593125723528621179218820381451156533481637850694392113894738774554324091125081394702451128031059260831824328639736445747004805258604164021894981080745711378933355616859519254585723081370895095559165366101539210977991007237964532429366255575362503040778918115815780305623650225436479558326957553774912251655429011096525408523631743233438293974690034257468800266610838784679197779569648318651281281109961300362251183480161657941653291206345960980823800569172826187603817418953617660444160575306838867512653492931032532270159901399052392320219152382581060320438805681639672404759363672022343761923228989832897844194517026890190667404310413448392744038525918347736558014119983960868504100244367529620360001236082758163885384788016782706635424044459213904848605176719407260558837020030201754913562044970993658388191795498937306052377993706829634151567855793083105022632420893313391806492331865397530576564728734008279392267085116176073787501930839146072757399916478506018818010158057420669015859818683467059837613967438879838807262435914689519252407854221016184021389912385748162318361686973614619862403835715579971851279135245363818970130554574099135534699347735651334345195019259416295369066644679120543855685802708064734892859386305673984381880463825489590992021135376140919405612786243956719809274149761889176000057250740035779085085979878918570383417925527578150852538853946391267077538281599138734097314631758540390910322000598831333730432932884406163577481179519774580593781876274672178868833598417496622694077625600959096521517025184344737467708976297528858866559450024695752144255073977365037024064143861287923351678039137973612322038824125779426757708639758631603687778441244239806717236810473319043485381665391455203202532335656359921135646918544313960757533809888430295425207994527674621774146212092961005351395619439884863025930587953811574392382214955543505059284096368252365248579059041987097290442692851614815777593521487410124989016923621799720737749981136765258068844568732952131177497592895810472235202910498462749845251131769627128497112844578765815496046228339382306914254226125786852477932836470169252599813809291131676326367477004931320100096772360393393320234418016434700030406511722153346617259030705534556447346773163765558006325215197916979677145714792064556989496178794850946574829822178021845358307540766435381559276780681507268794490150913109353131322573398804988866621621621134637698642372535957496883511844403460377010509759705119031711252905007108640403239185620048760893576752055127925607773142034684692032545147038959391572103352776802069464519746346186357940635979392244171089581925530465354910203217613107463570784883950889307214967416935242290591432584615748067931009512667122331776069088961722096194827494681179828377319093456959460855289785950328655513171633025140158860185783169725878228619730700253333534078354141267104015430058911139523611062243057669460446005062257845962349692321425987161440965269096867899094367073812399943355745924912505444334434606969728960874775181478229281342790310468225881634037293925882952016640283213891584669497954165958932530967011869700990188241720753912146001542467759858765664698040971827890347884843538179837236915116211875491913520189625875801576120412647347147230089146483146869062459218692726203694220675823709016618697883647281936435289062479257458328173974116916043559945947321418404695323779765706382807680637058760358183996278371737925501813059763517154095249774952247788193733289279891877141548869761231005326762208563856776270961728642480365930765328469030099821679787420551162102715601193541264959760114620762251047775504285583046860905067065914678327989610549173487276533524580511469293949996206554061599818035413144047125026985282040357850893600322432933644890911795029626644687062725260565875659202597416980283433801452996545403885320044170704898111571625501616497949011572540071874421957575269350780657066348504777955443559202055953327456059418868822100628235004630859870476929616248719046590021777702889351521536013643866833652817806199662162812796329575139755423439018923807642060020556119815094938652431812586050192411213463517634968266358021600660409972205268070370406634241289443122553549464374326121268930144149192760964633111918958039563042688200945346610300208274666251715031782310206975491760472248179603722794094678879179984752241997646856992102288290907969198912454529819842327641282326808113190547839012954690207452108033769339099064771375481565811988249985491851088962017007851886218604850912277928088464084057551528921671231400630201313020718273895167675749300492024665493157164666358338970498686219541691230607074277742588609289528832824866521283220245267764502523295116613858315769559786873921852843495423804619514090859242510187765731499857857209403211623909360706612053671653315354930923946746217567937595286057546903122634336981562767556526879461623372015721095325622952407083953646446936478703336109809576590775028652586946624242496151798848423832658641890955626907171650321645016245096916300005377938210074013629371656669243946104950023593678081874762837249815024721132079693444569596997300198775048186994340809317541607939831769424455490368105267708577650964830425697992078000850323657684457367313225888412470644530695186598518525723668012341978827417792471374749966127459896751977144583684255831705393284758035289885416856672393496453915031786160987123714584909207084929356076065392691848566239907465450560906348451804380397819390044049620159678231294857631065764258642629107181586282814381485977554878833244639352901459687830791492740841361854878599332905295411553308845761748210582508349411552145900622351945909333913189769236515898312217226622602673120931694273012186573540951028520081554956511388628183263935294200828490098398681869354451086395849615301057793962386087552969845980081561722307286956997410262417572166858628555334399247062166044818827251339014076563513036413699215840246624099382240635057328687461800058374832888412043850116554188378396397443603867115318806011031002639647678171964743653294009437751724822206004300283031300490874437552590939672129619994939015033883247763531834690133218761302258652190686840151270124988403499885130944426247093142304675696641792801422524753465190947085772895701935422753908204121679415633995405449609828606654019220721251373577833617482845220294893952196037769403981597130073929756464354934493612606186385794327023260597947360378932860342768192134919137625330627500790513733118057723035400713273822344589808760094205520060716739410278846828648177780445714950293986204295335312294561951255470248605090797904606122518252057876241078363418012219599381633866689076582583749656912182389065885656716000761771162429010602187262829646278423252309944969736272857070712729208385524216276757437239130397525133798127082178546511669326476398603450986390139822705106995220856986003917802760204342557667080515917338030910078813835143748343554775554372819245599755750150197765245557858259811991507291371904083263341461547140344102303358992904148005760880998485376463938923005049607009753755463353432288307869827128561627721346284985300786043974364136823090033319625588479411137680570060059755890469193683285937836698077874232043258641509994234913474611476703090370506427987904894539278031097611311858285796636725345817781883663748442135602944684526180168978636390100819181367180533409792824950810846558872220312580985636121017709829063870003161539116437705381236361342742555258597253223942671579867691034367439586674805459423039224527453421650115482259778001548770739991252816863692336014201218997537174466976261723997683605539222325110372074399357220122863837500388882968426279373361560113480401605081281863499939761028779563588838602982916344570845010631656998894780011784132549520356063810666467753722295521825307825790198020353073522534247761104972233346926901204980447641101731105006107286191286044427201304832446379504528153575313282717784688691617593922925515713735080009515874219566878861586138282419876737378890837141313472660215717040397092169631943144054319401430056557206522355102944410937700289997875141697453008724395543335891230413416494786010755285542967820329878982897748753460901939241535555716680585665308870539405839746445945556897720794220668981155900672185386194350306921595332653132182691832376879194650135707715799619862068266484731172724362886963415817143104644743839510112814515375679584080198730227931199045486916707023080700805691282094937958407273417504049014503213003871639283014003558290562249651803157110705329505873942121899603734770710605575019105944251023175300142841035304601127207558070170715160738346058989109481381396835330433662944082396145433890720810013693658760910314693122317965330314037378101456824533021115343926550990176142547892659377271404159977615935432670189669537297884880778637095051818512728111060156829685256123624054103529623501059085224979355111341346620075369976433339158761440221150256293785107732229728353135961437909802613928063726826580503378079672666520857319828359248268322627610559537692983172928966098337595507364296631388770446931015715415047112708172856254900881190836693706674112589810685907879647555422014875771468379912158482398563190186820236061730470016360395950777330438100499592781870868989414949270971942235060382356845001025973160765029565997451275792767852070529230075709770136622563988555786451712217124415240532046944997621071558645315690333956781275735656987369485201574107614857972650758320455721130421907304660363887064997182089629486742374542266051549972346640663883629935576980954516997849312021259549666172846421091658529490030534516222750325349005162665634767239608095304623080562305170626133814400829449702353044437737655417963236187121432057810221472517956116184458666361531870992371271089857071294930422027267158820979452583459574954281947266103993644458991190413283193205620069174240506998295847081566980088378659717806623781063330602863194207247529147333718095217496932095489876053304513563338626608001667979681423727082366256800299580263058681304452279657894379141396294130328353241676024733787002993200413989442795316492240858729207173397938362561886697262712681541566573319320539780830324318161963030972981285243328465004338111954506022029261804428908891860695492080282636056305839622629478226990729712073518545219064568274270119574461381115203442384766561028962740135363123158061568520059216011654501811792642333252822777391176895768294495145935873014699479727451848402593830731219697148019546951852998539222960125830817273420229296536856694894013431101018984733779333751713375692143432421822984700989751395779863892713741374590490736185237809052370729359038080818217816429491255454018768268680716445732378566191382067085982033849845123144165450286390315520055412271231252681867734230164993227119129750876881721564973949540944108830501272365409995833483262597417022142354327445542789231680830537398582511953544993976368137405871983751241433272160819312754852335367656505155584721523912166976172827262620803911218911270829229379087958747649559086700891692011287745036760470552572973303394198384335933249083833536634454307110702019054276057121140603704380853836825932065961364519642487547402962878195430659822340665106480003539807250198949020872286568230710853018859179535503590938351874377020420099001657000714958718891738794669024749983141219439839104674150913951108930934504203373948823077952016274682219787659384065897536655913829584523199253112287438904067933019691024641100992776046881738579056650578332064199609611783665064425574542020544284064867055283075794539016922905337457610766237251609853242961279069082618576779062131995724910275411349909691091717360622337612740827516522698990216411310917604989128536624902604264990170330597412962680984970016204861249541695469860400838188728115282544519471472462053424521513989596133459707385648585871795413415526162800662557201591725477390277629721047495997881852224944775518786756475734946125143241288828949500759351173863234092480224958682316441615875789942925377232698116368662620682204718368354146116300539548085585913833486469771542067658024253495453536799355892207414504058158528828485891830189929661255522800514546036315434042215360017418509027787748256144460003629370992747808859852958953299838662034383776132345478319897353690143965252310795065069956753063210689397837427074108401467754037067880441453512707033316279133929136819288261649204384451472928691170287133521909955342789997439040100938177638364179766730891086231041199004674852626318034091106208177586979988570088939357476967868373246162542158213136066620004890687889740534644207417004933365021008213213994798005333822054491886051886266964154264433396629581656175383617108901869304177998286459899140880248376198408795464242038076230642342484608961816256204727368497453416888189164775913936255346025538701338000328465729721998409551859646776880056807260171508116882826065607889351383377931902363306338436947882361805905147626688942496821625283485030859480083082762943892622998098490160605168334228937848305829638984372385375230132564648015507438514268020589332429801247399171920734991759110705885994803121836028677549620743823751982817158201411871994810757931221797417961494023936250986719623140543057747783486208771300268312715339857870872667410680664936832917895419855637898934412989314625523681079418659950239667661624405892785095546494468074865209931326776150674551117341195806423632597217693904840038378615863850602199098918409438001281583002792170876550419645250050664381808478879833612884776086484099388781736719327534564050792124258645347020279655670564989728137700215486656011251581866579442639085208619108771579371031802080266546809421043221138692149105684172300361043343211065679118688637443426932040497965621173360155923694678956933361567059602604952313744082207236125393716279013304510127584154269577960183081207553225127468596385612244666711762392282231246232735254487659009751266885214319110680715334444347510721839222982919093862147514067187961544859190229902870941340656957165374135608169820822717466991274896765906996999923188348408281929453500618891683937283079699857847761981084054611879118268476617810534211082214603747097376845776455164092517262415881488155604161590390787861412698509534133025586710274142566623080017431392340628872822045820942169153535080340627831488570149354225687367766062202675562052587716153904861074229844565213150629159652641297805472673555714748233064005406735592814355830903430613619415664627470828746183192785992838058289286444645090519672439998769788233595626136933949431621119972812707047434719215823572962444886028300675205504892112021514245595981411719897473604563448913435888966193422159547710063466762383698233607920705352328213090915329575290015796829105432990033029860226827411387136087900569301603609358728624588483955000407100532336532819074794088226838417031194387729990450438592473077508104821038309531115873583654620359561344126860871571044542901492893703556768544073758087161677194897391365647022641013159078157639622728060980131841004940089487538688231945597900304425687594443847957122086004316597583280966071989126577383597969822678779133806653016389601008646657253867191982600258415278044328468902692370282262212322526575921845004955191431019376033168325152975766744233423359595669209024526386006815202272267128640840408556841573688875853188778891865239079928756241194822442035353860244079671625890043572233930754802616085184212654195509173401541157230498772578987711138750605057183782173742233446775925053857118348369428031618542154860870296836168554230354021080849055597338584219918963921199057156516535865402319140392070731215143381327327099651126070731300256750548977335069147766982764165332643392132937749168503308007175343345413369524178302899935681233670498079293533999565650802255084652148158674644922704517168808063332901501465340412027992061455345791503315207820856754200930767321690150891813473791892348185353651607329667991654735849295975511896672665822990787865458750713032965346667467340594752233215939930306539562999884101687100695166821868641171597863164584705338093446846893644346108685150572904580975234114968207568339614057108318349711997671739991650794399832929273187844758326236132711359027239040072423182541364456138774288743411018479535470172396206730474201196577283451569110991203970022737271500086626811752996867374731887049403007717990405359427640504373370281135770257422900482236015007040014481119801576855552667404467454207477171672687569795967781040177689466037944597020444013727332585109639608312317056731104637470635124618085542997000348555334055104096105786031383542204678791450781158356734929435710117342432789717219468554004364725428936202140162966015943057184092974660444626930570079656089115766253356115730913558027139097584536599971865809992331509909348521621110258793388471597780775641545511104574213441619965408023741350071835268235009108830508973583409893512906457888992404079839578916286040262340389286064180207048701551525939587579758498685870711922538991222809610168136261085381341895154531529966322909268595978158894790294323347871567887787486418664169592930838884173602173723835033766903594593487408299646076533733133434636950123032625938745146286860832782086725859905135268773703290673168383236510775181102444224483910125104882039117819386472139890303876911754056022035865195166128384045657178756055679140008753800725245033951707601634596380521707073989563067074903986104808161351640593536066780034564451758408489868806236192268615141750711937650922716502409755758389724050056946220726384948049947589467328237643507081157970105300222807011587207608254987765623861467207267547175192076307374275206473770959717490943035653161279187609093561778782746092573382734299709916861676295304672491338918351584503707367530191748020693591142242873115475950334855457513909618240171532631088305816445792994117982953834019935716545048535669800681337477681967491380672448433502328199272581191863328197105384267254421608375612868814711925209073527773606117499019114656254293312640987431224172624689584781239996505010158589613619153159086362590018296535690815903814520869961219362380075114829049827983758074805248943843112601922442733483804696841084320475846368926525147118824142211422651171849005421691162472566277953279764495179618903838720251868432687267891048077815808261219072478627661002921115802371479903649922743056937294109939447668294412998853483044836545434988661830741103526417026572109470745678043699249135126309273886330577443016202525284058046974807067103443000674391457661002309269597479930465441194654001659859830770029216740216145089323271035779384616899986520584002672410745592225912177764192359090141567596298443755431851741893739845458825455686508551618089489126135018887139577782048854877978398531577422050665028084377629005827837111228077690222536193423771035632444296554558189302083483730493264116250076538707296251779747465642947939936474730303172167333233797639793431566099831442200037936823432142729942768705835114009229099567473479106496971158323768087058944556650135658708892098844149577356788285851482401876288411775523060942089304480494337650372959204672375601933714172163603740723322858092825141715495783291258842105742975900331480416468843632864517628520186003299948276746750191026340004887510428839861256598167037048338137016716683311634613918313943030814104885009976941285382552462406661915766821434830621550287775179172516744379692860215692943627497562567514925088372510719147170207965048391207275046024408643907128528501840201880873400725518781178033262326234930881431668148066500061659077547460319851516250667020002023097361539643697296059058868311595923337096750531089640018343141424091663005414210939217365151758310573470697140432047017765146402320842472002826904935925868062552172349140811469314498722649229619858543903269973286368054739083408142071353840100962102962775167322052976486962313556434168278461464219426014299904895336862767328147943202890079336878639933008778348281442307638666447654506667786156067015684698791784334211226944689009329483476512860374824525349065034599028763250081839972163166765993259979892197773900069892704912051865651156861378266506900198771607989526111959030504567165029583169628772232123264212585560993388127277185143504916171321195748608669084103901720180804719906917181508983784118318168636332205972117989084331807686382273523996540836610047769705882297264639599652503795692064011554121987869035662971947807159282733061183347872883510207084072408976585047074463816128648414905314570101871014820398505769045049687575212633640531615168502908903670151722708688909467571505677506136648177476436288097309166864666069312951721830589089135869626056159699218215760577996539742840537664238975077491714390914772909332901508684860573312304150077848838436433211489318153303741109648444965855627218447457870918547574645508133392208299067233952333749786784474644900814979596619050354562763135348999324507723333616572423701366885345450796448665010219276157682437554851143669354877927759466872296491259891160171433719807328172685973431086413252224095033186133253392026844627447803284556796037188072660698296775728701995160117817291711996649415923705883030360668948222084029804307297707189103643540744796025088781290400616984831582275176746228459136994038357589077634287015229333133648370285250356427196590918162921649204163862179728407496966085392727277485118952892897557121472138643025168908406680728529306541852199373785242735646116523326830274631695457902069011688395629342406548058787891624795297468941218561402910706286540954713486173096054987845329307973711521373673654275050844146918819451410673018711841875820801406027067610822940160189309342110934716983443854082086498409058647465004620025299294506782563717759533135566442056228749609462156647131132519974805142076411435423604952198502326580750175855621123153199448052363873020542072861003254568686047147525406602988381370393365356812318345124604383028470579681111286560346499379771756297624705040669205513358259846361280211654312393694845481258017676876597199221600027969968105918844481166932019750648245122621495912598926000467815771382694091461885366209126797996607683179815512181684351779592241037154515279557939646670248926379690887796778747947125712327284360363093806465588158513674651175355533734579501012027087666412438315433337885301714725317475642172562618018516112299772374210807903382732339490224270794155147465540989572103254733308889441985162615906751798924109170441408838489117209994860093276449330367372468813767910893987833955276010709606836310776996433732773116759381852055590963797390706912627654263744268869712137992598758794216906401779953233189017544820961819844424571109617741122082468236109982300207666196630097193483661200231513167145124362744205751025089762947907001719066197026694974636074771750263005565133196256700472170371945848210247531096547811456143421651805194498374143715277092368763818596535325811022094116667207957066853063729713430169385146291905334604083733558020348378933426326674309816941574219186490233028661413222243367986603940701788214680177355644833787246737489680408901891070214520585889997783885174501733464024884888478521742623475573638242236904813396499876525836215507122157923318427680127320291163408103255940611778372470380404085209098394230770849351928166158703734712443118522172532390824771134867339978099927957447773720840016480168157567928427768864821306722826301538018918018659643738072709037591256252497085805577143302429793232303732618326800706430528373364081925584457584654080273645993707357050744755815933351406677630648153053627273430464542930535940049900717129933958795925230699865923713859994075133433668981240002243484188163541186620770487612411136699604033459348780260954600384711849343369760160917634641214934446903716559458808711267750851944774894067669804989667167955827563562377555132887478767675712727597783905954098581304025307614796735787775999256016438811832197507106289855853134449876094372687209978828174089760029466187038647501965657093952832210231339493666700729438508712138364861641347000148102005937313809398210133648636245860142302801745127832319987248707915579427527625262503183025879058937588500787670195986523839916169076261120728127026492381816651181770812136114803192747790487743040718982666946903068748325527479304716286623524774989950009518093465967164741321405695031628325749165167512793907918760460830754973265905477636513631876750487554449495934593657632961258639719484217546851693282318679674263501868189949535508125395521698026165323529090786614086947913690503673891315944212926461095068721196072197413655906299785336165670530336026467460633222084271649194490257668986529424863831587137143892842505310043457454331974190197966007673490294793936373295171862879069247957470829473017342529616786684043980353719254609826277600853058116345637539212181449988229057077294174753765811655533331212911501603947766840293625373570473769359706364749953482627974696952670609619504716322974861942556776785053628091570911519520326962781253484968747424199539934326509254878710724076411999735303737381126665163220087117960079826802752710804802605131165954532751901145739631471795346946021109702250187813661164476478067199376112285249470990211622849739541050667893507006703835309564556766847363735758155001960810148336984987837329805069083735486999525157808335957502568324455354254017700031951768070208956728779364503111183193156199795716569412960041070488347881515076126496344699322386351170661760723791182529023922788695463601462722180855429979645160998734318327860946684076748353484144495102409134624485212378447513956343739215940183725558065702133363406120688272405962259682019370810842599281178895476705780995269808206656850067151194796371003612997205128026178457390476325956781211189035421439245101561331835015294158851636060959471262862844366946542893926204614511379640166349141164304971676246439498329265070076190968748317107411024933331706874682393110651517116815578290145558291561570982044890637332639587617994736694360719057414622670920742165353252956171449955014568641179761430576644905834079822672828193625794549842771372226985149454151443268412386986138078904667805548532362947770673604158664940001554275593208745716920512560944149393169356161837442418383459762401449117752807515325416308979384363499391165740617906807373035542824678131456938761420529162999457651346931858057485024721301652103928733710763414347805347860059585469161319542052555303946106817500533052553789675470396181643940548211127424298927061020637190004829744046522592355300285234897895924070779363456492765371739465245418263189766536856165761652204580458525257033827946121692005715318129688262973616145102429081784136377221977877820697759749803934387528256278727698993802261329658710111286548029377542744155968608832228218485123486715595991881619700010158064765397125938490360396815094692826170453156742066247683728105480158590503592137079912000000325056522091666075845052193641786699037120742203016339497776485745430588378542466041452705789056837861178087947252463092988774749462808187834833973479268430732819223877630921663989591020561404722509081758849932923069764543525031131030077061598779240298884601676161749030738629055364197150709360904238172315040900830470020078475605426927456668053265327830234465549444618405377171749199917517142519150187752021360623543835741925956509721222559135393230360780395682640422927497585076723207045483234775593595898429075321995627922523021873056266475660126153428046078833732292238418999170410543887219891038517528051973370232968570377931280832302562641044563191246113064435520963261701732519307242808476315346796276518841134456137505839100342492653249152490558539682121254765996620158500049998664149608903348443943773387256036971525684439316098528019300805841023967990387581790690371304593655812683346709430495474052383377420407602939288348228696796724333020388807228473021125409264456252998943204891634426011420631402739794607769578825276831264098947727773755940803158292087199132817444026549070761964267215644060551410158344416792755668467730472960905193450747382626812430695129756741511480282542927639783776336456777443058907206483504248406395612962697848177340032877801699269171004999533180551544486006737209659727828090976757633177897076610978110374385834514335913141032894239677162291234334865751836185693435579473795936535689554348570328339309937552120763207949128743776548976830607738916506919978070928269277588954890668918361159439909960853896248410347787822095648057535310958592187438509553245176110798966205817811760495241881566829626833551297843285233291637782321162489892202190054736169766032105459286703383148911087284304534981419458287093227878939104778958309186890393387233458132292079399857628023328103858401621639499695462988903996137154482304887469801968324529641936967480436259927042103108364223736836066915162698127641468423382760479741197499551512984589761999428639217066030992277055588963243721397302927189191148772925761710855350370882839698731803953908098956515932059183915431621610068949791791228751648132184286507676900885550531607542654722077825815879322028594975283693231540690467792120398116712435116045911772409769015230920047977980447981418061196766772106907331307717529767135857330201957027266527525871599261210312317894320218102556547616173765935465789267163344815071891888137516013706204783866363545740131485025778458703116771453373022216995492000197330172622997844793290896991007608632158998811872724991394192831066303687762572444906935701475638966144283752185030360442939802485451645139656045423591176253366085860102793335278169528333345938612574327452039988038433998732066588135445980855400894446910443901153031144588614008611825914751730253472543631897914161499181414614137792793058912689587895618599540616095569506162195042258790091620164801608542878860809483304337496917328107192460237952909966258231589905497939710673803959188490578056335552765561305603387691751343061332045394481765144579928013492339780111523582225262861921990915184044286048662176540675067866478595717858681491728711867383926934129543682944197626085626658292964346960343021055927283743449191580694489412473843709371004224673014084335527030032607509305924416122433125329627885561740300689276101003292256843148386824938134715531782416851421783129653479918247836532973187368574424851440963907115904970290206614270256840696744477753780664104658848562789735154514644605828790434686477204031238558713834415787759523602200307086884608250533229371587153771925782781272277423567761176432732637524416998830992239890179072084290448540351184399085830446889143068099850076982396259105832346463945517186918034059245899759221279768380074526836116476830821438520072599763179081253657797833520501185842930720189733016091370509615999505440459118311712640985777197081653025163156026568446631742258131547389885000032987080649986553644798870152387067065708834940625885602795715845167490314668357697908479949690990816273578219518101753214033518698320829738929727991928562584221002959632300705818462870401686016436551195343299073130900362013520380263764636164399138975310924446649291386092069334713751892830154959453794270586357514603823683975848523650449116139634959142593056468417399588337756280428682470619673345669660609645508230014020037010555415446416101400119523651482851543341191674459780526443027048555264280749097379736615908932560720106652599694689416194905493878706461791369605738841840158098245368182522632466146973937788542144386478732690002189127883389484074265974356516103185014604338274609691889953595640217509785553240734674047267931216167467797202505376325416124244643836566175062569804252191281689361590463903054101237238478524169135700907059167001502761012149985833872752861680751607363572060706641035562531605436662352722013928963969261133996193738953950654810952780594160287672504941914616774633865462167776674546305551767890554598583804019196104835581444404603395095890183491513555739776778386331502833367766180890382858686295915457805036719673772985926443426682624062472442650642220279720673674807576367393202382036061303590537192350683792162684622978128024933680624136997457254111752962079136063017784723355018631752766033491682929121070481723121790229714915136783252272963101808493330546649933751494950063440524678524292151200826876141457654915804602372934946228042727634587467188346227962016928670717407338256747108965855354905703274440448899495154438016768768606106774100800454271875540795632065045054634950478157074917607349565635889809422087633830309942066269879023438361411551090290721773356920212492489945448164751205311445152262553841064609670491695156398026664446008829515942549848434829700341645704173155337383033029827838921392674928968550768217680329928451683420096544506633216608960321363367359661587709378509210957316175645291282500014757962394914396597216264506156362660785092999846732090157885844979827696609307838264011837785465325220442977343519500722556113012087294026253005706281894975453219216275842847556374043541481967850038843492326960489958730844643784139793917499078566867694133049192458457292239434271451410470165647653757671959951606076185944758943128118557938339618647939199099445668190067885255381457272997388581050545011770580443163211792123275717313545387608676170000435291768686784629801649627236472998393998230749334319241819326345165715119271819445035177979137468756851148898566616236726991012560349947477080508061336979845194141986873958257962769971687670891371431612583146288792418706846247765615957307529393609681331667860070269292460458161563649326680304954237420862566152324238259441460354143324964514352005035814621243708935884115416625120673187521934729261207247582148836699511215041247401733931524703334318106389247154133525479119221464993455370314147246100911483502550112980477634338449145890761730271823977295247283586125617876715517399447538140126873396717008170476258324017009727123819022321565811504082953553095351046759461712202330665966716746350228789626186395067597921442450887584576253723582745378556084816345585538859787906009017527565865275352776276269895260962752621682418013121480821123630035831615603248381062356799014338964480717618989619192805612655539224013299859101569571211681830888692452642394348925625517216220212619822871026979262125059660459601530419937013412697255765321767961752906863634101239443100829891200354851586866057888302230341603229502642526894652562513114513118875986233779269160418187257263305349894200544614871099389675919642596634902859783854095898340032027741772559936954776859317519774877836335690414327714361981340662994628386906019604935094867009306069635265201687862661600494713661748202571656538237160645138426422527650306141316954926806319678409247949057857666729199930637151934811398130397549416511537485301208403137419073838006034017998609770840147871275754676240766668062387790574990726719535196636474477128777264092233504326128670427249908521097931482605536328130343478979913569397475932778996430462755067585930656312388295766005203996678745884524862867171149172276556624011074112270466592125423303419198673598080128918833044829347746431477877412258969893588422318848107756869844729769435893207670322810899576600606228077602726658945797065221644490185739056195675719579833295777023095491965728262744654377626682248994513366521952713825915059056970591355085567923532810778451922355292355243796106933237727729487080505545543830918845298979477113989444733412223337637445902276481714970325272190739936680935119750793367161040275569039244774763295412092698990087573969218839929184322438065721342087333701205065124425772359062695761182133218918285310053803581040257430609309987678166551049728818004853459788222576665096288751886849469170846104305988923765023939288650767546229345418120913964068664961626701331018693722501531864416933361936970464473494907247724337405822097070541975803332665513939495938617264577584424882300854427884172568108082061408442424791087216544101143225755659588183125342924114298954040438730261972708948624436552991865683623159013548444847374392628532248438070895115217856547874278178461661155083596973002863351154952707542770699325152130849034173593416085436299404529950245745474754304227712387318087976152560815833440422971780079479236189367240392669687062840944159521637985746127250659261404710780931786090201564326408416408883950116366564845318171164626106392472076168740699400821376438042821911991833601214964192547109893429557607640702482370875205388957034739502970139296109518789746767622899454749203960265699378696071401646604775034401134193015241020707298873744876869575879830259168792920318362163038991163589318739587779417302702794803989870235974957417886854888369085500003310829081147268236525543323255091504733269038497420831196231027340013656974083499615724919755041577131653863672034206029794492500970760445769192766719633303868647101990143055088063991062864322053072350178027138385685033623608894077743034682740104918148732006793160639719365829557092316338923563161718311258116319250246371735176865321631776709762414753309339817315882424953557035677883881471069087756093581038960766268923560433539254002277102129938477271621404180370320991440738404057972973674356313670984989196064899120256948775999643183768832723374556112559017938538646957706898874775718605021472239177602817666034225371521372971140676216358178936795427373469226790069344242704341763879894576621024153177362520415947241849986387472704458911683354341010382913640694557946290035585101225136523570278472202036826418180376849572358379663513926605837350342140903751951151526504358014614903935761836724019093836378117150662267935493685347829389912024681404747440631423365870579263048363112860078249564439098693411565987771961896965477472899786529651685725884848019724611163802723556810273339351820956357307265328718187596455657242470300775880904846465552297015335087450198011531715437461244655815355150673879615472289821935520184712656133639336362233819402432626934408975760797807630781421987433249762258551674152208475303913741189242728958521508102842612913820911106644154120429676536102530038431068345157590275147127237018603886423093141087951558053321724980127600855590583751627042289603677957766363731394706889244694269208133824937971437928509771584705870828335503750560191690476981903697640272378981002624023212328933055530898905363711807849707348376543438702096674752340144385696343249390709354082828619543464459759850090045441564347644960876647531153895003537711383355592630281802530483465969080631567077901283529428643595775452460694755045290985762835169955642945008897673319427883049380974700872548691898784967433166013385360830461039734694459438649534986014254691856294107860849243985815474074174574868285277066679855504246679516959336490985411434189622025083013146267330793142594358584139272013646676136086102454821526194864252392277611277888420479004546935466927840757742168521869032940014063952938892838492535434187258379360575148213141265288997397096835547904663280571115671203155220322302874115796740991955627510294055894136154625642140906652114570165872218858715818634278743526447839932408790241706304702846815112076347545174290078352186036305911493728718092654728477884293538887012211763303057084748959003735471197027435999117658029003086031345560773207130148233313085201598871064446025850148798630537707477986055782374569677611105804637875837127366473935442586928083242163618238339282472273864785554670558541634028214929950035204943748734182135443126796584494578792580676809385277897807183886809978872018583984100640037458015317395239011198312901132542082227809624026289866673536790920185193421148869891168833941018808940134261265932785361919749830785992008466497021289702893684559813054819285641887845856421090035588422154760654825831015346157309294737574522877584992896092465437050727344420792084105294119333018173676425813869009278293243798143635651295423802504000034486506534839421363145304461826835198880030695345665488827619553728373053430704405106512537504785740495308877991787473837112185817423752423429675682035727366307265789582794782685360441573033012664836285129774156920246465397061109831409367460306787998463923142906397639399970407052406080432037393857011630453101641713248334092225738318704877045713768132041894317185055605941231125808535313977022835126764029415397586733904745761660891332398648255556675311953016174572317043091191299648578082653034868810514512528683434513073968942830837934013027073284684078475984731254445764085656407031843552788953312605525787484462070814397953734678661807686155681370283757153136876603349799005466360773632135232844378886724259934742607219603461678284066019968361410333580808543105870419303479571216375367434147562445455383574228048943386538109744332434075556762998945234249759123293026565322148256189156617263881127950280557700484431327555575185069311749029803916774210391745328142969407635383381279275500701628538187849566387397675251177428166743334896076714659465526697777510972082749023481211312019092944425177407133451939631769061306591626351506575101316327653389678605861723832839164018089657512660657929410480214517686131659816308962394367289822724440762442062160495574626750871756262525515970621395976710719188520063357522763830950320125936802676712469442146526674180566123295433023182077722900195285103818020408744978180541776390116876567559400228914427014620054068413798712084960374886254928719805801729179880769860620350705774522473896250152260935013493379306364661712231530831797987005645258347595751796972151476279191423293667620381245898729460443738058614303368986592740075296646790603658718992712861886617831568198095973911565727705871253004768990704970088995152551864326479789197378912981982070655629120296187953432589634042385697290230414713618722197490810437073334893077005086311620907026402385896810788463312150015765739084870596658504377050958470954051735620467324748059609174284581064287479714514654246497559582806679929917054189243348680180380726794206739732740995032142627248507837929326799250530581244927832937695817137238951635243352702444662652819479748953933522851338816643013056740868347218774550209653574587091168117375666003477228517920567277008413714344099865829359976111521876349006290827988790103355224145176380412077343481614374295532684591843277892190077651359730852488172712691286351527621745103661688051955759265237388065537025785825959612766173348455731638116913096813167526824762187483830001896682530456942845603847317741274926827962216703345993036223374425030460527667213454772473603508610141982537137689110052228816531269645399874873777342296078197109088838551238874117718117341632509637778293185551507880539129780769506782537466953441647865457340172832010030442640480068849801870170113195526343547692002296303222827243512966950303230192232863432365682447319750360919458484923104203408082536936263912729394127000234895227275880051603555954437796822382689962565929175563240451979437038510374891996038929318249163102994228179601165945950240385451245456518631569994625351289051177228420962977940869316896516654494400443847225529403813187494749809601031609209483786100925471140180321723715025553567753386147331338186373247945301837601851514579973683090086404243985805195129993896166816507375544592037856088665955076532801360523978943342254916272423792852811506497519433637734987041193730306339322414079138168095619895999979355723650859719037235812260667310092051877524789883233955085963329438181111249685362203242083609053903403844649738531069523433664723702172168523042945527390368604955556275345952082409587742178950638044685989489575487884847368775712613452791942649703093860222349737946732973613236893523515196172355296506435319704149392211085614083863444635425206206196282318123227736646393833471713503053223589523831478799246678970875614197813872514432669319773043456846657386600514949847671692042944236066486394220513500833185932478884105141184137334927632953204451478520473033483353585959097497974947124542526715481135747029776241305407655314623062544944682600419697949465080774549217674715525548962712296449032086396092733947611440455298616385907974940309274565634453196764815394289545960023831264588562860401305566294162011815665604837599916045752248897179996492278935750873231033011479943540495466818604415606016779715824430785249764055661825442953831093115270354727924519295235887279950005509995701693321446129841261981816653668959427154138400379391056174705606868775491368003789716942537436864406556171020179929903399936945831411948415362620381798885095599015857057347543480538779337804865941716024221244292119177039576218613925138723834900200796073736332161001374732467773938867018399149805410528013864518265391401044892184557913492398831308612972521940838592835787761137110948207844331452319122237214513698061821659808939115777488363233384124274997547784450487925479372395522800866745089049214987689568615698548953937071424407413802876642870650573473142222561988441430911999276867013177375584238086522635068307964307100686403005200715954732071411961518775091725547146756088475661878757363709496378334740500976931356473681928355166776573392791766228228301407042865702936977262276511046441437962228393223097040532818885886509297651950488349482539643712973021749871394199659561063416181687674598684702508406675041570528527906250366827704375069568306611957030674805766014750831236437239090559699101125732866421012105412611026974440668478769844704151636502256302568734554562260209745140428567320931381157567276466479838788054805743654898966305091209285025792354502156252391454357465278664792003929504950402419274822005066252404896616326472941536831413682393703623702937562739743065022650853474857590933557469637298782150854856322923840838044117928179264650596867866846798293998814203432180251460833904754855088109638964873595088905629425982003298963273480816943004982376311431231640148321317036349439583294640660498766833807802241824518647530217635925507848847603103053256140989246786944852774537114443668473783625617873214403176504802186223140966083966730193145686313339819954712947440806892641693381930599538448460169047171168438957661358455598201794202558702763871380917741840959122580359338836361774299743259371095862845644404800770791175906576607219800246955144308759631618635442426250629474558639704789862297180070026662672511330273758448362683868193128271129181056509062431165809276890249620445145250521685356528810492553645970477395753681019154601918354083822393193728629854593724909747701471721411835347739532545720861237347100573408254274954816916567738379662283078537242747527680086098548252873500360973947898921819947873804037593851043395436581823043351298511929039577164052916085804972229408403682296864162909902447385851411772489154260982425469671968086747992378819813199969228525341101008819020870176460179861517746716903746873451488374899798092181511925602997269539886784505732295953002516722444470735508136943880187786783156806411676482625152880777137660551508200813047581993622178996650035242758160409648285726825565934010376169744396254279990590152452197576232563923356357663461620687482794030477507267121149275501163192192368338658677269870484271146479666538348651767065600314069449004347330015953575351995545039132787125592376812867321202388648423299283328439433755186306111573772926357077861493493983160896646669708060824309487376060258320589501588908995948028286637327193747476448724822499363374149091081709896422675423574872649390419120829737768202289439228455565722864170270580532277587274704165202108926988970839245612187152560859725467488866966943088118071486655173080283087393675755935337723275034000408977186488258437873057071369071607979447949441150437109599658647465119807327086933713137975321398556059854820519264759645916528264101130904001013400609804202469999832722110619497399714096249636616384792199605312197276578601569441834146774383995583176045814525413615316412277355843024527848363229238277801729662637049715685362647113828521381412269841171613909879743598990451722695600051579023178628671271147939557424212671178477280717419204942199449841171725177027593263894019849576171962707568144937536810994801872379280952439974977979596913560195667480384350962359258419447276898343235821869217688603889851543504996176218375116517774682215080386141109757320661657922453577419005881085987744250638572449607122430403849442041618179373287184066559640076801463524153348749603606206025351848570331857366076523364180307413866660534830108101823559946487402129033680447460151959931604487234847544884240917566046486429113553157897985934662895662072622268249840288300639280085159759354185322899514830285656491758946291344900492634649649526541276461130046770527695727548788930144695782939191719003021525494511413519792678851603692732988282024771843965259071209273327795385148735024696930127636457508850127704391768489128904868410849458861675838069764040773077599787340442610518265669070914293890905087598291375225154327217054037926604156117531875098459625641262514161796145014821269318349541848871588432596805681508825514070195884823829872957641214222236129835186290007302848855932959342675362448330175819573491101344266021729015182111903551769628512898866523696132766813452112545267267934990074796513195820509992892883405602167733401804265737713501139631781755278710752482670563240824855056191962435864166074094426030011352259358766448689456600379412393109269083777802500694115016252348947164325152581909579947917626294473522019977606552668115333011110247000224798642744094206025856134854295274864124110852863538723535717820893247345086568937072853058121031718557426214434268162536640805780551515534816915137501608652910895494869102840022932541818858933864617698685509926137725472077152666119938372011321347337914089604270657058730383602439104345101579589946908240377510123849917269853149675956739967625283916982403229184108587476428908133747894612838155788563178458612200912906285381285472526498476784529464230273838522766267614218665536944555464916172551539539599004484529986337510676699313281989279453166255459068945277842300254134112118809306244082295574505218660996201234162142715856502280887201300161432246606611275543978840968894916661058091611833186755487165925848845701097147451504397705460000359270301388842298749265263294306283057666141575877735580235275228574914548765114274241750780741280983324321799737914901964327702056868123707391707911050957766385951912475864076873886460341187185434574319907097076872115078014779198680934486766975255692896603868689385940683159605774222245282549790333402577345268059703572398273878373541904807719699045800894347356376330850756386002513142464470594565188361541914906428671610314771109624472981281170341751957663840117841269205013770198326764154492113686127838631040005651127069378703706698052522737907507049280310135560140017251112393153510015500099066767784897347650372808626162483794270547056602168014114715190170581915732786177811538693464170401476223098056562486093972718992068535203221155127705271272605757061481461197006324663620423484815344480289591741023109118156025587032300206583168132914848805872771998658684476801905674660111669227590938815264943921548835873281949100509438385075505862373715201746857346213568620311669113518392128272819927386288569134796959317816510419044503881501424083165020775756980512471604508720223995084163273924586122348826661429334792259825092584995337850500614930627927030512378588876987617372231877257997104411983905956395318651901099932480797585540342958814232493608917889026438374294472902114106678144052530792950901665030135432556215696620854014005140615678237630019889624933317447303485981666387500493258915317794577956630557270610176987566931709758571225528558714504898794278286593902098326415681084003360864508691272411736320649399091903945370057598110425997160301232332529288565942296737251350895152007371413639761188182744137952751275227328351091845268429722165916719911007156556905824184318366078382806004103725192002550014857037555241699860595334105256027159813472557485888197105915190971819262643312458568214027544081798214291633073299898875622405866811815658405661283042511136104958003383010860700041135887638485704897487352287303467065006413878886355497463619018668230429709767957590649350730213429110297737271773050836275215885094548726744328929731940290613176996772319742105797123882694679060343956450216678259483331152562028329009886176759462314664950378240392646110087740052923417631985217141329317709293596674416987974843295585872656929633560353206431026488931257373120187491829126201412921636477024990691018782512749961082694301116143653228455511689398253370818762656447079947325813538099864414424053258867546314032182972002524027559838564387488046731973920151199687854175917472582739250705289083171321225932510318820846954904131648506774078234825294976789106188476090629206905964567878413102911062489309745433697158590684975035903295061689137374446863764063732230619087532393535053113487690106997733850745183459528329594299106489252557745375150399949931612663395997579318985651749953026108315871048467794625459279057080235378926196209430803349717541200864010060882993271955970421703173023840042527912331061404484544997362871773064528926695068837724788445183921320641371844067935874383047238808527363899920733050701694570547891437417310925369155549958353506075422777585652665617422691756438794239244905780570691958985673365642161759389944944601958656902282128782251413122132497771000334252974195396512366593443945280144713715917870847136126673824511644001922847192190568801529141888051399071189581408591831436712476282325806700435376227189521907103115406749740127864956093320693903560293126490932291105373618763158164214966635784850283493676974100185451610470192135558716264914723695213086030516717771783852265790471040867512525401647388160592444062108511048521198024752444229769564433808875305441948718278494347526024264858795315846211208591471053074956903918737460373027967926553272723997916502950965525096510536028973978280806298738563802551461587465046028441420317743112898904720795150417377318570507636251949911281632585283165104507966909914384269492278853815572382545783269542447772578154072028442239757065323441763562213370895863180270442169274051898298027029787107669355072002599347450301428655669628399036269243787953159538173755123217033810696960205399962581671196966314654191498002451154072897615365634048714429356937491727559015535785525474327040449889077251738423279922206880251659215572938785096291386439980370930159304114364704733192278615454438188872989143771364048847443052933204535382610408688806369620773655457590118646942184506364474297748155278005971138020770870414779357076339010416813260907571968046571703857059133575469627002846420454238931769014431621306689019135787372676312176632039289847517799850220580639306320829664559078601897938461549732936184371306523508850611809052703323448853551546396767322732642554365285561997944589391785301691376764641221725485161074885891850327298040224783617405525947344479504299516353418455243344571479672181547497175857773984711155635169106093317224309466657225846625288065369475048160823162235741729969333321792561710267639072721372757641993091980422079267851320872563883821893965226052141503901392099277473410131363161640974319409442318113572309254367861203344576497327479785367267461437535769010407809761931056142411140901250015530819566070854191802785624582916676200648136041976460132185087923210650927539482413370475550098889982175904497091225765551680217696078457667941789585616171644588920121871890510803661465638474207616271122450948322218551656087228766599164668828739067271821930464503803593881560678426405503701009151413637897852442860298296990586572075608345141266386925867382105000105524785793856152827103867567849397843493598556834398627309092729126986268999609754751889221864546561297449098811174651816087329956066740256086285265943635327813005079410705595545341236021238294692383058855745317555150318577373631380951318480075520682175292604819525755468818167802590853515963141885934001738041375637286002203116629402058641657388225095899721997311477087274646084711495241664912283326916931580024143039161982450685602800627341000137306985326967435305294317209380601248611112673961961638425000393737571851829231328274823285147223222003389483414624882551689344846275561024523535016909191939616285706442468443795759070945564804017862277038762321777984903973627138727514249606645517888475125068473041630091037096692358942626777282279127844788524437736427879628182188801071279041141927553026381987912935339160210195029788122711159061936880201228596579332892756102896749903674506205150886495085691038330980845308746383588185376758189864521758395226918148688340889593913996233184121020266777771438549099601815131014890463465121503990308767576900361589396109349130674429249534093509924907619970385524883963594595072923558177270111477819608514151149945268266783394622711029615880985144905577652590989224617478806261104909479276180408605231537942675523691413867290694490421754584588433708717354499626319128057692335454633595450521000027577683118721468401646550664873897614509996666048634899004016364904159843677099779305180911040339514970878379201408821062309433739499524322845965895945403049307813330165918427929076773848393775318519466225988782077089907770130878151151617985148861169811181792703366326257596263811688837399174229139182792688079966743822996483400056446839313631513783758447315590712251742279637878631323898283319190323928154783400149233287804702893654997318212777925107813495253378487253375763035260733877014031750604478636820274176120571756724868125843057597990295446702906736733472503224203529892848555645990862755394226918115633670341884732132079276923260307299887834672913097047918124864711977180363193215092657273342561812878605512339116901797012529182058711585295873059678669553501076280650637245944287034371596026601442302813732924082954736029797191337379045931379784186458280561299694810976304267320584212682490848003570111710645012766042694973739566147558620022772773133928137804060553010458658220114058868657457329176973581006391448068847705319044995982753931126765852284728506640000567993346223633763585557115053180583214894577122166080912694799858027479186656383999131702268790758327787935559349881155536698174338180474809733282551279430542368892097163959168793677894114841881262680190373919172923388939988375907984118520472850498257175965986237752896178171234486239029076897387801569775381102823326598864315087397841713001168848180274160852832793302280039186689969200674698339300181178568242010555728033185689913483931481272728672573171707953575561187601767187495564346666301340679832568872376838694450082360346597714985260070340085289895518183626239261879867228225042448884503979662969100772280943751167736248954350107942239488100276383230453412522072973386823708674208582566216125729618819192653704280505411899752999968576739532708315133874024354447917673640038685736305179142573815206050454720605053504069510687037187702002376089581348618649746418541928031080550178812949998947745718279198954374096881131298217775632800804613992218787781836467936299348467364237143305075764884952855807799384298099023518555999215327213569412277448631442472620012302090051300680646012686393086880490820981535424749405965577382456326897057783103819670335589961476007909184385185137565372694132047245537879207394944321233504175457819486317568816167837207792506709188377459524708370481613629447646511159334089521733166767647183260758088014049611858907621557516300423795553507280492257699866802829329391918532188459844782151449068268280814299689150702391985222466119013878811501030383962128939318483460601191692095114448213997048568310466587593212077786941748889430675683905934950201137862660758396342309176363570246320186751036512375610252262499431028534328297937442589427201343180648050247988239792200370370869603440758083948199569102777824774845532020558393236801014807070535624640550361746369540079030264415961990559737836445043537479876496180887980711222557233741329986046157262825274918296647211247010849060570208134189119061329189343925170826040935527211151175704800863623020266466540959564434039856790624715632815718933121979300950218905963736621884878366870156691284900320712215658781045373473121023208423975240104186239297601486261513970028480076734761550523574020444723025754109870481459120000981040889913123105332649553687453447422108528512025808949517154380206926958331939201197059662775111345309687452252468300662575202650518726642439685536372758264144481849343869088164717040502707328358850778496283768407161850055037946274828255521820445856551240081612703078933314428977788616402015247368747634117718733307734692543111467764829463607365826925401333620378188830222733021044937371223473767033604829162206866681148343481606877722581418729572986161363617162294782224005516467156987051902934714844621692963131195552507473560885343581734600078439438470721094532820685293366151570880674794460813962068945870076652087661717875134865731712866304753615963847398087322597976454016332263250593522137658006960768535791279945011926715748884333520766788696722312332946029011424992804836945463906079849661689611948774452562456945559194154713064430143438622857468269432849022608420076093965928969499506567996138626338244284632949763108403854282786292816262285610269132543602733466428143011734268632529832800794647118270552428102343366701040619656089410081956482091400676777725275392359381716401008659096337881103765751436679945193044774813381608082146545248551009001344543445549926914739697352178840800806823864517651831189176435831801771810745061183263085701097153273444849879203308927551400913735381928910124439243356714860604343805003456783575499408271093139978675845900575094706057727117357957805367940042414925100261395897231751749519722135809686032458267283036194031928550112520492000379960020961207612072259497655325026410540222884928327198686007850716473743618573942720178355811952002821982898526388484713698664137810837330200136923540444855422767173070687212543656928302603607948944958017888185824716418008998054324463629268970690971493544420239461682362308219914829700581781831427993990108061889621237380465087868733629136105340962984417334470330589170929157643355262451132964445977111847827761881036940205656219117288210914049378676348954185827747679359108457176598340776172018723041379652417010453381597224622339199657238158531290624092538173508837281161323618771625270981534512605494130443054832957355712267742806628653079290180746902661326434834037637785926838559661164558724786244588748591130842948959428016603135884039572597286595043767743106205411435739715950343730691338238458333642186726495365397972582777602431449326559420279499635050794629124201099052618388832290111077590229275484476627781299987473498067006276266570694300619786548147679211819045792771481417614913878972444562680396205598637818641879344302145930920969170127225422165833926990649934357355567411451405281273573696501242839777835796652134021049120410276205265081082100237028430887223502302538823388670470075927497993355100256965261049147066260739523478186272547579977762735587365323538879893004353528642330392177376221610802153582272379531799507189891132116754097523602395521771957391445514951125624491840894806864172764170917856385374707774656303490093548698472699142812491967921979643881552849634375270235126923481740260366568798102380152296479967780174976226894048762110778368473108102817936029179517301491121431075601979942714962676587431232844441009041966062765633517059251987978755121972635162972800088915956040490575012703535484678603083811875310906083149605307438797602009576520495607474884413325147890287309369522397623111849681254902315312873060719929797526769951360437056266265337808731522690054957381176888312348617033768218056815353882840334283530724730668610944493154101431811436803019798291615159277958477370923447648828671465675700734579517612924334773232851303504885965748685569899368524405957069292328445719357923835455352051167078166003432498298206333753975115778846996012082960480412672703223465543864444265876020206071049867897412524224691420252282887459476787065684065664814539669909335068105673719024497908297757980847982803647150225474626645002724216929202702063870896220356262261387878883313144496890163448815396838882586151323039799140265388113562923088730121271393833220538400757444475570129041198585296091010851857644606534819892702847383185931509251763381503460716921946454399330449578461600277464335822730623700654781365869440909755281754141681551313570879968205210739496541668681497915461108521477049603779056385591731843797972262745337886978562017314260140676950333644297626203706925966796541215174522749563332226423722326307003404683799144836150430529829965138974652780934053071393418575571810491632135779471394065678930052722598004070745018014351331665263259215555028125358458665616265409889103292019385899807202477932051421160823797390497922032541134496680866493326610322207054333802989664975193188954520611980816566371814149901209801697844480828032312774869023019875822542792209375734820384822022855911446847208079169457472513573538140708088194862307108052229006313167958687365683947483037170927704209488653906442352430521118029708465875346223068807875373742353754129222308159856233348143028317238667641819339090974744830363488796988955567594251841028660341526128684613069796099460792299869935035648976255315519381863499661138682244603759948033121515902109857729402426982405480070188351296572885170422593684130409786455681872121667742761238770139586529858722452951898126261054035348584466488859849333149584333711869100467668846087674472902175516670091389275224152044442837732466273863426147202119803262449048203033923644732829701101643352419118395098080865961552954109644403437035622217109782930795052905845400025520881326593710496499018722582180096917643817576139240789457217822771829277869344151382179978094550432790802896666529917008875820130426369230326536570861173604669240320930944287217522088664664311652023148487070174757014776666193720462457941850937625397884553058591260584668289086217886303184740827122873328380368607844610756719301640260145390976148943178753862529964565442030668686433353173486779876517917460750491490569102058877165028365237537301892871891082380294834995129148886084779454699143382446554995737044723254543906349303703505986099723394896674521925412944132491175232978425704320330237559220873728963360977693421849389421925529113306264841530168277773983548291689060601795527669017465700711027093295583173635948801433278157484416756037838414651956023252019641958197560363107155124732225316460437272168194917655239271531489123808512543679477809784126747135670404829584467227411551974584472855749032720081167198542117440708363228725565510995950696187664569043563037565364349715223217438444399558087858701416364271515396636895747399741850618998527300267888886504965287689430917185921409520452302611367548197407231074557409224387891918060015001015784340500136280168267104087157734474115351062089455481211713523211296685627507113091189753925715811767456503141774697695912306483024014548803719528157278656194029352397929747782311706231323172007725355279856706519870376156655031342656763041343627126902004163357736393801405014952288177207892036212032175834401385681587777581980957175706722822095002799641767217351755393095621131793533107913282738529116678595012631244692573697000536731630295706608653679713197772582050778578875847196920852730957945623421792406873443300110202041241394453234716572188921623286272822117262227034264030144719183773166726845362978225618662640194011416527536961521215659886054544573669441501450641576725774357092137173725102982209470799820417638922915341046231196574527497610385324643987483941106347033679370747759836949639340587451129793108239533018159504259219994603531116943142504061623741576693203152967209686387100648133903077484703908579012090729072503441274636148286160632882122945149857783491052525068123881036533302741110228130175393963127588564945897235656377004137046127930276079554127788287029091922824604541662944144312704486225680899566099084201513597475441017034448279089886837753203349819565216338281667686400498830438807603137010679135331898325509872705890266047442720721008411516464003339397760191315629516555601747887231016935811619451375734426744927498510405553378480703536326617224783048412878910493057169187232710470123981857784630379574111586063543511592971595424008834441914636913076359407463573371590656851627295419209408343898434655267061482777946393480055120938583075756070230096057485039995679361995251472260688255543386224724570130933392932598040734085544375036922498067914334017987431861631786495023470354101785563123484229813113682984258518849944195583532553238691945972829859836963996957374481474008712761237233512062069664973585719804160074995455593229865705680333476068425122946135496436073385631059834415096505048064315346431214150938923707040488571621350830825988282007621860190570696068619519476259545681683313980544025902871239998953938486322032958272622644149375249029993197092985200792457665922004065728381691521506355159399571292503506196770705382636562632191826450768247297944231936187429829474926332394430472795133170042570065604921541827892326057868927202479346665276769722660935011103846823686188902952571568702491394284923684490680980414640120597203296937019540738360985976615617995757949084389579428657844404788145225745857711461509610417090214793268936097961734098490876891688913555748942640726218312021251275825497806261435219569451290801044380365681361974998496861410349787374716510283242021125997499893009469099067906762690567823803520724783387976592671410809443853199169607659267660292642044353621400039941067632720377961836461921856114426143536083161303978706191986948791618051918514696832040525938147361871081128973496913995457200001413507363377667852200979821041070843323134070760270831713538220155056108830023176663598877408946783078041346569581563590549995228098149107361410239998931301736750823925001403954726033870300861582760165195569096223162376351838961901300640485486498609507865360087719837952083412679407475493846332489047120117486662496785172095993936729988398061113407865283172801669537670272291187965808391496480248919587421561516162465292504697447630585777300694232852259568183395094414727087407210251124328477979954106804711541069356823170597013092836769574052909071214002135021483476857719065329517012729976307629313689377723440960888784521455474736726556765734601158832491720040725393563721906251192856288557575975931562734502128542734932615662783576859857949372038192771907135571972030178795978229849016905480373297094456578201328640422914909745477056419061527568319031290153622140024736469826582005108519003179817798351390237783279643769138106929325644891922740272440513767388172385795166154727886441308209121230860096017467450569653631174810365376733090296498466104842753214528817065456995272435342822069877820556918174077576232030959609294420111322019522472855026062372918818311429383938461249280078329440985679504937314984336165677794830948805492039227651869653548486813216053516672179921494673517640753664852306789575046974496772260054395174093254636774049290035024659499941644011185401779315616205953562951269193781718389646555426943941609009277378797060018213163006615514713263439616309604668948425974834004464575415012801795228068325999026145487561257765868267505048076963089186905753397388866356718549504401581687518753304773463918943094466188471623968812643299475099940070618431293117144986666969454012139269000947635516256746465046806651615337910693729052374380878992762033375903774264611091572634720458726826144493669763155293144289806924976442684388214620988296381344363979191476967837156575707303357012633394349570035759700614024161686434032171997839786450664113679887516878384017148065629023754885292781760772785719867234502422219889860251182145450995307726510431949897193092651589172881758620793548134428467586268379669608265977182108116786637192234867883082280151589144888951822614463524607243759624378413826143174213049437735542067516341173263997856949740338801969220515977424530354704768084248727796416288198339542824205941819221679593350747592335697671862707061623475599779548828096982641652222758773410597026392890395550070212854876818634826154058368043258441776385940034219960722144963145947904342146835276643092895217505352413997135760426965841402101272306284803301483614760692650150824370015632101889244486801481179196444985427530898638678756006405354092613944710216372766163572465728032934482947941443262121826442892482827114131790388037975118758593888112282126099707146902035306570977365619377661069643039323664507856048968288783135756664520389053748997028530378559963595124337423018479612095595621409438741098123180774722317839871372683788261678185740009967925332830973451311585008557217004221136856304090204304078884620107067443216227007058981406641752604646248664411519574310196981496313216722145731397389625636958249651509405446957879580370182947972545859451804375763136036441726364793791079862392080528630286494948670289773743896960676126767761238574793481626662305078096069863737064004741723259935750900518050241601626255158981609312869859548660558115369295109770749446373714964458273931483564960366558463957435443526705647139931033597382955306289672606965065534432142754610874945658147838729491484842299204994674186627554975756997828161552701293548166053217345504698906088307754996732608149062547447514919875590918063834426337964200913293106017554031605824792168004778007479676071486280376447746915713178861154748573167997253674531911518193248848498812253076995804742977061485683238581509211944770909196065953323401536771484026951166167444194040924408621408511004906212178432476689742949521246386197520842399552151871914709410654924714521373095364679989141750132634618954610325505164305975319821692758875626098884552469741858673703470450507966714375367396799903931948086665363382191444228330532195729383292771250794825183255904204385666238666340980077149692142108825976667165449133328890141845046275115470048530326585759687221346058183792164190152197166897997838237782908338500754652479310337026347935611760339657336056253189383764159389091700575141758500110858259506418127953499687737136630355575550570801947696282344453252672911430756320884382223996065105604992108098630556886245888413753329884756778897652315450843023063830617083286702917809922083839430154061821371092523203646770045887810520657163772779307973428431847454836858281614467424647280653190162421012074578248323000994209096464343734444797218047389628383034939756363402817390592676065560096463391154398081158481765102935582002618446535940732238296721511464163775455911075768740663776900181481287248141192842475976607079257808287970601400033561439971835678816002286702085719566808137755741973614340630498878459271030665775670855932238930110044972651359337650661440119726467169086413988931422758997773257284947841434949770366020965557143929201429373438063847547723351411981689240035974540626704452143051419566469382955853396085048961495260344396085495014222174737260511144520070463578364625695044719095967067575915892670211868858078890505122841192095838744546863597401990765429300860104691887264408696395382368959512266736209077574770827252513490122187417302831992586510083479362393287988801086317399869696512191097162599006826229242428194578960813018204738822995740507063482656947141170418931550590543532208619872721113373664370282494584457091619642873643050393620740755756043619258119093408657834593218619522018134298517540483437061919853893451206725535931017190827412833777579758290595866206896404151847063985575860576693660534062135571880435717905894686997523813147345836455242112831149383191317026297676985497308365265943464378699341762043071634342297985331618674171856283266778159730810339696973460763385134602615375402358177598092502002649113260048813153383836272355111594735815558007111399312328130227612103771163966171867216784939984405977764999270927013880782960519355560445272134093631720398388598460608538233269669263996510743131261877512114239442870064484056116163857268682123479290714110672010146295581671470341838262108661598023262087493915180079729134433791361934888205972234694241509469634471239281808600224957137265453304373299083835056280858347959863264243281833854800316511657258415454503713100077194575396991440392123865241781575592350757425411248665943934264291870936835428552612796235293466433885749626829632314333109562500723000109407894673640256449272607210527848834285871816832037182609333260759714876668109746488637600528966008020466259125224288238010964251000606378167442738798906399891749669528403640426630742056159038738089465942371664624375665971336490636283441823116801313859726523473924525375860188232329076803087674874497678482881644719262452064742862134512580656961041644218987799050269002433911275098974975909013301495707711720830999526185342564050654150814120009963439415718785021123873037219640366483886568605019418936963464872775414001535176154259781319496713556894380369853733518216032382313146204710046019324619953713880917866611129841344224253361488087859695414168042062852134409114547446342120523037904904511877660705499233542450467855363767964654251716930296540965329758038228675427675582095034651419687775358084865517550119422820803248955377376374196325333326028203319786543140950939587413250687419417020361282541874777954515793201570651467649582993205661103465392867789570259047659295280597661025727010682756782416139226447688424733458524402497274484380051704799321881280216796242600253063349472439375036891864176396149896894745366355892328838305182158495060357065470342238927325617727462963826285676245342888330094527363989961398327129517712584328547355979310194501591765719847127608662641454297754881057478145337444465111561250757170910059613922112957449518987210740681426109855077806749128515211046995671732216922321599289143313992384466222949541684548689684142057620949117236847172642083786758631063754717351873250008832277264862115967026078516448546969279315333813567127191720066010372118149070605197266673948220365302514166541839319385220054263225865527525369140712069997410349335892581376646587516519384003789749433873892774548417263257461943194908905049552555326160177694801809915211978233875665163570695437085646861108882870311271502225782261069719120873749170525488280747477889674382343990033267011191694998746574167544618300131372911790549178284207010235048764662730998582984520936017965568738966578745552442197509491947359114452777409175280904323636235779596421800773428298651032636023643137061163146283101053246108628456775625155897095142774976945030357600630821772798555272986309437781956405684219169825452692108854399336260906847202465157556845173948308789287349446196402057409021715488097862559751580724708484568594858666530675860035597882410856761535639672563468677224919583390532619634294108332576078378170696009304489316491590199277002581145382574304608984163338289896562895518279801005714498233522000178954149323117422175680905524538953141387669883268859110666619174550438343267962542850438514724057978026383294568738532921149374323212933193834282708885579769558723916962515681947622358659922981812093614498691973115646096801713725931942873165933873575019645432857000018654140405376124554747523001527973213101560309977505479011697701736260299406172425931345207067054814445912227400819583078854030269204435460920219628526222187814642844766503356783320471234645024230743369022393930785080424691905364571501738814598835312149279457276388604075473078691486587714104854511689167567331522164845252472040201796704371143601402988478760235452319445469047588638689702488348197915621706798114021358368739249567672674744951114464093559917955841447113094575859319483393556080529886607140738362054825974997565514321814773710725647375053009014701746357075216147897262895672293944163123108283896103495380055227718416704498997889920926092635240226122654372294012993725345838506337219367425578569574067593430081957853965248520176180402241367391104287286274709817444518603891842213724720322814266126449421564597893314347151908514334362563225035379256651858591492165232059055393653654653112627338267774123252248556058603952266139700471966142744615527662296611443167519434721283063163686222766025457082041364187097342315165603768191440949090223219763270868907256769944792780665420787079884178262845346402272941565837267034041998517897520605120506345060115724961236033321072677321043636300965067116800825882025139910879860099699296767301708708672562066327254726305680555617936153110685642094716193306822581548895570839034500167010471412055387380982582149772215580776958380547637563808581781997863321474318667806073174522225323192101944008376292751567661983224075576973938150569976665739553256926003597995031050775940982075308035588129568380023634163786653531248158688628268832925748445320478477140628474266925731189291728778077820374333234412440291364090969992309193421197901954763901605019687780763832236939252300816188393566294985029518716953291821690274326402381068276477493017010509234282886234404408480439262636741466906369972703187639786684804535766390306503473937546700774992669617674313384846288723114913582696741516308358187720202947063774660584698352989002049981735256932912128761784228357013494197489770282062577814561740708887908372882570958134572183549069768494278048829771799441297860873946793235518776391776316646944425441810780247821718778477517926123414662543579558153378293422096199129446947595946495690511597143428575416916419882682846440376229033298551622731094258325684180693007508937107389291280975095674206604822002938878357510118336059056117316198327211108917140547560940269384887626992433181948578427379745600634852940529214373682470284071179457496062012606265359130505323439738466986937133996440172783671282419534913968690055596040892045169740286164013745500406130726731445508465201998157916041542616677056239956496032740708430502384886918210454869277490897031577326396307931843869204659856346856804378911951593280128725165338337894865689128419736046049028968903854157238157647225317489663377122886340816706545698300987277325157315758428747060808229886206851899498822068907012460122559672968269483186713722934270561475466999867834745983346164066915460429250911878202774040538701528597578547552932120344544241831021361161509278700838406490997983548999800431270790405620997597825692977665559824714954953687761070055916929072997960183086589781848238969777883468755263875448359255477017641768298435966794188525170599961487113901067712680081000460403348954433717966253975322883262550364747720268603285733953427825098041860427338375451802572294640850256503430109375301020059404164637357053079445440513990932110979535927952375729346187611728888872018407144682502950798877211624378198808827379329869217964035575984179349552383487450020937185769167061142290001884348872770798513219179246440333065144776532398470006911652992261344766740578967541007744633663880688706505284023328880973273938804614089001609657229666097316462412682702994273129775154804782270656632962999575386686418362401404663803674514520469681176260330451608486515547200866853025848834793993851050490474059539494970959909493284542982579174754071290800678145178224137843322503022748514848188760152111298940457898389428984163623690432336078345236654192064018230121688867351131163362047360756799585132477120876134998429278237968655649446328593278539330084965871969068780199673830829433798940240032705782367513071482121899098083139199718977622578157715280334397448183010790264201727825794998645278343538134572344356201774027234188384725466718844198974193703337135914918152177963949106243838861686702623354754213216724149190219108184002341649560367309879227248901210167479119605293937323407399520425343259879021960670249155006126936845350650319874593572933446375082018424274262429090533334046861592862076779594628927885392596078813541112183684816747233331245910311074867480564481022084850585649104185441256236066820931575597906193509278396331476396613297272538682182756403302563860748595273348977414739311120038934407282233167199113704927379571584834013423151998780613065261602290319336988605510559651843299776530527040428134100651804659182902881570971284446389355007341759967127899442750654901040105955818362598061238789269956430282802049487417396519417227559098792502792681655445406733148436548581888919956874877668517641186282801790938204812971933291113585688574109510265758293370162262084468016111202641611347387640859888207333603899615887939856327593935102944051830502004237342059606447395770598282618303272371577107765264115763954394133636050617473512493845720982377122398914691343036845692870723528861638108590203203106227383838545969050175064666218918398452051190352109803526979476791259290255862135512272403480297772748429055864500354735814693180340545427120890548114034844518656159588974363350552203937482249608073541750252712327853977413503738632450742651779188930744430383991528632100803256979893493755288314134956041039657492467245610349309946835162449286080831181433789297750371037220976231877022778635078056414511434349565031657813198624755199294118419991566010650301205033799460108292712732617704024198081423375141446227246825943246001226254923047167085324734106820576209004598497736902696094257197797384220934986185023607909028891371536530449637112035623987774726570970445013827159247524022651261043940361126941883325986488594433286658945294907907748562031134948283432264832907832355635337300520685003399791981114067535496759337605280468935494899324260482570255948279201195138285233952716695847121908511905985771204069862306580722021492567576765965619371305571173445291979119419472584312786325696958563603764775174092448487156306823939849267271159285034384622824889927014844721741372138332147755817439689231800296838306489119893311888151295540531473126744414263465467814718100768816266106905498718386526700762229792611212286231099757270705712365716781038678522917355811012649944576075825161052645678749435308335013810779625981227759352875734807682269679529755981125949068488895081167990021014378738680900256713037006095871464072172365681020266934205697347354624119622808158581709521945299034793602540425459558099454448052514974526438850978724896899859533918006639985906367968445656778484987458093050643532257854574290397603732886947337143180776215941353643303631490299228292861433858343719870020947410084346110274280614065217932994380928411645579035944872534401615966871469759976385541949130832048832070879068032711225014796997848674042629107899719248203206485417898423232811053610961691384044117013014388884888573923904983945524105228548276816968779965839226059854297844501548547032358262981065182559551490861706250424266067778311912332299066934140411152460810946111651408935084905620656544651297450551913208488397434798922080428438291840675506126260705940596295842135527456394262600343482503305189578431984415682778544399420502830413407285728896877804562757466917190104612591190342081189590922108779932044619640859064869244783745083624272594871130142371184778880516793800590250508218894152864908912178159618133522109703754835863991410995867830361084834187632445151500706873036875874616443440765739040955304218266732089685829925018373015554411619188661760976016825953654189288436609827882691127581543442933349493092729897541174655555187220184637106167970445642618875495416572868745587806204223065322283920084092883159366827433008850524783592327328974447799058934207466758841053714643255278001011781053395546406492988870684364598757076960802945684683909184941650187897388726015519352053698666487438866650800860494018981787517982918817831841142676928512550122013305387971595171604974741230649718928012092345029223303687901207957815740930036924035577491104736429814834737612751117988719599873557750540425049879746279581619279218899157655048345195671272298087017832888203058955605436674373912832362954869672965194682253011253237049448411774022435877095713784939306273272836267559239495324731444936648042317000462520646764625428400109787983680580901214689677627798163330558995841045953549848370172288490497645643325359547847186987600903746486281348326818134155700913268586177076942416009291823236190522338660525525013980009859169856408901300658129829222217259520137192265927223965398477108162244668862372722099063923836884141519389652404917269651637206490479748101325186357807579204423341443206556764796373573072192008121633267054038872206391012374737272733688774011811979581656425958163925708032246543929358257182718952937423682332973738970006035064374057293499481733814084965059859897650678798145178659656297098399837534684381270971348721191773210040940927980916453509047756890584309303844631311874498217571421831175651766081665200235128635183435546935049668567664192779741218497740560830814960800675941368129361927778831045858120219371555772326500780593836769705622946063265883256896601175215630333717392794152826306157436743432177113626849243878547026301714253882086055230488161107905045319198646136692078836279865644452699832171664028021862138346302161935239087290531493640587527551618119331761061584013425620332330313067785788368802696009520177247410071331274229875263568910695562507051680309162962300871003410842959229967619383765655147492497589087646161106629006393532366157435897362643708023639623136544172442675382529707575206577324018267648479949833492320866735648813577281031114944948714810868452931685580846868195762346030655775531564758812335531193669186333001584372097143940137874187064776030474299708500964033566668197822454908166730028563349280470988169284736859886608604746803960847016581281006395347194729205732815793900622869504656759953370683077420013009586616560574643897199055545138795031674122329279978892772726043525549008487323376016488342676688172733010106777839056316611783284003296766764930615075363894519809577156851364397055721653946412201295200641669155429883981833329377088384175172404363867658443101077028721882164660735355542568710649300837348457028945003620335921667619253848387052108105488175477314919370335817036765370782562696136746674208339221090029251657618740592401015012319159020965987592382941957066636464935708687756055486189143134559047671194228198974249424369111488561313358559624361940019771623170217093522042473438461331638884920443200825166245353590542211226519241654402302013460558817758086079515718980728321494685213687421781304087503043663701550099088234849503693978455971905177189860877205003277672421589354210447674507982047682470427237497866335347203495839287486274514133808970986081625234608418498988814939673094139591949018480213495308847528836834927300619050623802527932933412110690592139895828649089951113634869836488590578920826428309965947685657253078471971144001752433309890168147807648002938499208761553256396315321155189943264707667754503518757921087621695477206383902696628193496279857357148488843913092454412585831031660119859646229715611222398208790412013653699924674770462274825133247212532439173853962663259573146749189814936738393940353154415268877940864725475546938691426727055931816423954056906828594260447115086304412900545814310132352942342267722665690177429488305169779039586985630088285458846653375414874931326087828483873372176269168203188995623600574537769265591994910404523113775114011993013101364481655664872855272441326555730888951277951943861891124851226611328051416200950893343393356845761382696278018277211522580804990899198714569122816545201501486319303109413696468489055113504011846125913012366838142375394177027459808185228783080323312420194377173265320932642028647473286071183083063728250805606853690901355795191649142477407490694008830123864029857180090818194327007297924860385871747280542719766702950122915784370196082768295507719352107296388078926710369563833382792494130839527492354202488377684228584613036605930339601114903797790573158515904762378925088192205625369796900942924874133791446510092762128792989165691062475528600492177073098755996510353740583713876158412971646194230823720697915882571837406044137573303373056782075557781372622993345390171164341685036217164828486538861225630561465102394172829926553815168562940631118773308054379655717083031507923878035156443567817753873074151047028842771856400619844262380088531921020124012238304341740067460853111435938777042795574688485288082477001883631484075565925726927902662080877496402742691215118419383390760867678930213470408631065223484526688686806405322726387765423718835642162572065811815271159409082389852552946962652778713340648207936142216067791139111038962854858916908827606739608290567508729015496456163638399111256210570557408190651611682569621066208171134118787760211359043931703165471214255322196073678347566248458999816256569168766608043777691702345649064771564054822357251344942239917461040603558543408098264524042466826055390261445670493537601233959952769952375914274347392556474572222118327686498048596156628223019731420497750748436987489615451384524788990663567899915371401389627093292820499268951535328665359183483092429915482987338043372439116278681215215657609585002326092627822771558655895167442387909555677596594367198671787401351232869414017668523338338547165983814304999820651129844169120476322611450808260224724823197588115567769296810842818674930272493679616084458772793990556533521562688723722536341385462705031495399893066515585126130239942566732848785207193630424352326235491681273506809945310507329695911720954026638243788889860008185961817445208261219548935418968646931433706503601578544016524488220442718159057814175284298380320698767825456694450609229824685724367500868418980280655363550846796600689864239481392052546758670003804715186936527409479711511405849365994082286282497859050417218949860113977493273220576632564273150539289827241913789371921884565031142806541313543781826708605871944797060002951808083020436899128970870653734537499780855554167909531825106545853191635203358802701215253665099050951856911386744372400023767660588241841003471830860433850957536161873982079693976443962393043561689556002948356294549030388839304751750363358580982689296115417886898701536282585109454341648439325213922805902508574112391616074680856138791938510005263138719905721746101802765169303867109550456931219873594847152497616520857856991102457391379101742297165738842558857410281804479220041506722415474871510416971743217618091281281300659599858191956201939305236218423164683798372314553819756774236357300822763454012917153392854947572252767877447778697574712638113459235623618773878262171666096362021628414723151239912794917750408472495008451944224693788607222268678795335195552452796197868157341063705053429182586029521922261359417494714869651851027761622959779359313516681107652466678020046546891409400255408970289435362437662763195763579429060597145327931863948891250736058421763600326778295250061291502121863370323466041385622885665170379722780330679508412994920590581598857452996389448532447773102710418881700090367896865014427886393201634900348137820914221259255388696923452113419715912173365928814268302945112159289360479213127116459290205498499880160961970623590233663192404117326954802400425737446969710602979068768719050066860731059406694882621370271649681697636867472320693196919610042051281123615996349624021898893059953256569866853983845903924086271125456103255850672841745356956233447672405910389129519225062322776000014452090391805409181311625631194986774858107308921154790241360120603699918418701474273178347553631574147150508372177787915881716809597552916515887482564704069183699625549170699750018728273024993655074956574078585960913419961637903315477776159660901473254051412723442701530707576027848219181076458167507212057285937529545147859177862728511154944008578591417494280926177237406845487523608998312338714583257042006473393801972750205472589381057459566190945713126561602881546418824036403326313159445947419087717883729125739430318222277754146610005527281626470414362722879001766046817631318273660859477526669770263453820899707049466131830113870277298669535767057313130756077448847406615771339215102769509442691994315190246905571351434374972282047079717703392367626721621863785669007653576660623730277217686157627035428149283342558031714263796926552713827466934154915365993726053245752648432488070268913489298830523294604368150030299865068458211104830812649073052850562635386803960394992882219663677621876587690206870090477478301460587840450688107991687729134467457697869862777956087095550137811175352008570986342622572143169411347489605223169667059188721537778781727174721978041930287281786453091105832630765144902766407989244825287549004930940214087762107690889488116886208093034568524435931352224873140732160833042501193413190263553310123438878496809638456380897715820760954704953733644226307875734847519186299413707020812164888961277197060278613066896413105413999357028432340420256522796796901475985002012362096796842519565953228457001811853236628575342275697292508871858413981897104977723237562328629499881010893083003302769600299488012095442936894604634790224668986316912378089378375438201730793877262736624626421628807085093838784531447492498949065136782766531494740815527408184112658569441679397266075360624805351547028327475513933640069764783801785006185787384950693163137248427489041303739144699594113939739879368309482953761380324292419326035756698029717330745825655580811470944023503688374388039867470040027488863839991224379069920508802609723293863970078466420402682192250677269062879719463064100485491749708982429895398938716013306144426656140488887822020470712849162264189571352453822487167048193887461447265359996149050715432670635428648649305501799024469606888926317084984197334765519308169154289481521152392618812788244409267863168535269975983609587003847890939928284455948885572819041200063415249669147378918760512918495660932426325627411321271712844367253708167245159613196945691996998361722306853345338626652047716426043054357812345612731485404899120379343723242021018462183135527467758372315651084028263599714549839667382678434019895491341312753141227296895482160007967552298723538711139864802308175021258945946645586352708080278636993344824952204777379413097845097333769896867371137143527703803880359735745162186391759871153683655846723404683279185932722462817860200679490883070400020593187440765683132939076880367044438515868893003620412963282344945276741746637326679099907894291973088748850843889162830189852943426916899933895058841997243538525890291555742900288603791155074341736674738346679220303445535487529649882918566298036914215362475573168905650372378631600973907142262343626977693724068857325481529809568211361843068772073399053437544200734645897876318545575325975373599661749779090516215611198026659214254258552546891220134906645874508194408287863409951787482768665159541868482314515541742219118715610676239781991000915180424642119586274710156736399202085250300967502030287446867877623588316280563434425891086530108619078574749943939980210957924547723482820177824962012460557202805400051584129659059047593023320314412891156731142768826158125813992867886502085468380157123582790567669860547279260374851057726824808041304156668197445393844777656911255515689952171717698223769284617574373207293021923520493060274384274174785031830443082740973894682173560227808381699124300947101977738611909915875566491814865972012745736694168637212124625205299019619662284064196239864377918572136739224339390835708881733859358657361904366651730734981246171025670857822617985059650146463000959912018150942043033235070818328186667846112221562288192771826991402772671581406356480943348524594541690355739637184466925648899834702890531966004048789336520045426350793986671541671096834562329447721438373054120158926181880688362505052306548609232171453180115217235515060298999300322006875332296876901924753575217477065949284963209759446109082330526787815263969001002450010321521216018392026743837035652679096256491349443469955813278238654552884139999619565250452898492273254301444958011768185268695589388015181288646770957548668633741017032418757598061388569115990446376426336382767521213069403775627397783833964890794143876068002483460995532293310344506682313320222720927947683354781038773677992063182683711240552925313113019935988603538555673293601887740905608006672761506243265943353928867503303848054442004511972228560507293360343086541917016045823421353059030519322591964641625279985560183613481197958731518992604739136408204503279586449181666750182612066543647339136896862490990097057841039819374139835563330775844651581222097204772742996444612912182557782641084305736690222133586882075623055357019427843968269352950896130789314152279579648078928469484876827342892343701133041344888440523551390321652005260341811888468043190232944133620377550877548028155144332352018877525002566532903188530755648444666735281043995634634715667545730286771286665732087286860362042581962663496655059638484735132773305904051895483698666718565553909057954207532852186465055862296469522359613660930817499146053307328678621431156216332713063321290417553837732167939554313666108653050222716833507320631439674515082809494768387038059358090748283889020265774080805367299570352291522199850136271298570787307146551782516527644980328777923734690149531288545121956014006282776208884300970909916788261671760501337498110423164788407091708085609153483295375238690147480050003783798638695488202862124443878483480396725205980750669912547847807263725989174352042887652343439548447420022188320773721819019790587263301533406636362663606150370111885366227024385514270881617073321898007164841199396958872712440187439788301622237771548692937478214538543373687513566473713505620920787504898781802268693051969212036287578077622394161168050764965422580044413380216760063237964100079674125200254148172116580269906257603299450912289979950030537016051621880588393337672046277511541846395404800534344747206439132033700529943689279885954583539735602011478718369389333391791652637350961707132723815804144502883216552793405649645415379947720188245163349190644362545340832868651573329821732747238124870673747040107203659493038715784076247124703217296818390011846540370686131648906455484311894491760521276499965296026691595535159053808943591773865674987175780378403342213594924496623934082849476887206503925874418202375942286324208663599719423817255000291549545535067570954532861029138980906153280618874129528156281563606619396157120784601384599423824644455899519417102344071157124789147131089945231057367588654693418243099396201486622995681506426276519119782362057749378963325196994435080621322300874732245470778156466836745222804336558764056634447597546867632871833152158381733853623781411491352552517657140378087950559222831394215866178708171873354552439696590891875260395647223225124904519200176710597674831658542594003343469701470484115336597846679642448263219666203173454012549786720539363298081524294461786457087362571617851399093423469596244818696578568161743012864558265499387602623686696861281156214395959722900735769760343363077203656535147198894341405438339799141132430610898037171882179500684359168729919689570023940416157771130888181103493063911546191932380187290185117726223609125143937985722209588509464836182727568584968885622501990640406904831227545153113066585626604677506456824944953347079847284782676341886719199968089584739206401482227355971691880938376113866554572287318664256002924798024676539000903042981858516012605995664530616344975500302032137863793320557330127548447145606175327153602271278755888020756746918786748010095378069282578463625744024638966066352179396036950330309518410463120789956908550394588940329795683478968282100590764183051742628189754810107095476629306702249223015523835250293671212869445797932864365985299145727897628587845613178881797802987803742553554828358663352319306721448108682614301075333955083523943236222720037595581101929209959852658186039846536931495335317955875552506137701824479318396259203834037910596558814402770979236846461023401139250271878559351400860356578336825253310192466695594931943434678237143745293877970065254577843656037821077292901159570210046008150723577569654242463627757476594838793973086877348591693222572209228410781880901743697910497360063640990578173793505382161194560723845794799411246026653052344240944752026262009740796535734247646704536274177275765369207281592459567375919878954380518330647209499212549536336868663578665601909766069097362772819267052322995829313761735505843857438934515720908808546451378719153796043397372328070464553829613847031184814297430331590253877728124514581281576412571847466567533111752154842070807278596802223968739866219124708485302811217904744859671754575952279541872472784420238242040209894672724472968444960132568268943416296437597594333985944125453501400086585610881398167825174349034892216377151709843672628391796404412616234685844411660401237441941596070338320937293626423201816953881203375130599780624051921234771859945645999286381469271770521815076624102838243508672491068732579936339829641466270892837487213698084127864091398965744081247593421342443911490120122892869252120580591233348369083423061244790166577453347936252226057777616716730683688526017449071622290560504582592858837655722073954567543156031832518419573692295861662474734238813884690453610364700584761699019000002070984077422211187818374667162216432740075514316836895833724245005213442081538894596963006789757486464357053634246239180011214803970290713524074622033574929508107659159497545501925574661797841181004658728426184460233918821325962526531920308543659750246545734327504192808844723742061654998467470366403074749241898540142518297315481503263538491488836207952359356344674995720963190223631746296461556476320978388915444047188256678054506920427630233163678128997544425069344970059663295503105138944999970001339241614763932125246916524860921820401760923526440837072821820443227192380529203681444152708605168851329903822986680593687373805883577293813122834079311048720020331731955765722900269202929134966549019745525399039386346632123449180877324683395150234283114286379925199904424237378587034189919653374896273935607885873823826801426138874243592155595447660468065071244066220921416304196940748040544306212598382649675664661767157178848835049585991997976544897033599686878036417404078395456927928187557813502947907668385057625674122129516125597690078203419939969170321627276611336923019063806830206721769984502590321507986168414037042648171432661320859106770125227883720663440545577520342592227467816849404243294858886539129646188580206221050573048423816384694268001801625564852495880035961442357932031520849453274653028340646104514083114990156884622132576521864284076965168130379476397840265180091925405789713088632902192455365870564609334533295670946828938878179201349057324453834105170523418841270201199188818407157366285172074792434730418576297952697385189924487379416686204858809301156954757100508035624644848985024547396841037430967850373537924366817556762170376206014514467257990676938857098052898441467764173674439885573710675969097870850402030735754918039117512457082961702637787894131563625030971852985232053144279266926944599895354982066841056079745704996058036072628518170786498861660389185566929294508149518051017524388317868095152382789308637935802149298365057900211023931439237176213703960415473144068546092436368698217590569184044419938625666823843461833237700324739386387708451925766698161668552710494211567569948730205353680019940009809866442869169765699907858912487440007630311472038607502200997684604185120746092258162052379199958592058241556198110520014417982277754686651594656525607478286968312196529427209890661275285700486045483822745889632219549052049688165175007439087284285963356646346340947798532605814994331500552326605009783747576492821894714363837146088808789611222711612964010851646237208674442958756668078358398167881413357854033888045689556269566499882161684774258659859602791276734240992849746156308369413098033438482489818377700004016008971230193479803387020616710509567053427315886104787789817334691014960365914330481822127898883692266433122972843841748450422002946039172048011534838859116670085324931257446034130453598349060312311070832397132604697484077795032675435332141208942748611512575554000503133358331171271743717431218231373637085960568414880176943031855770331677098707986389840182703657152593544278969682201318021636247681848421602142697594915262476412082661915943211441920618365930862746813156853687800472898303331351834728805166457743645515015214358232608238086560446635841842161311333248312522483638328720156957457318306216629258324241618386097939097769589705323115483044965227892171669349666618799588274947517692367962571867719521045057308173971092685073038247376015488366439355539125340982145988591447157191522394079761793530339307485590583122751942449535959701605344464280173289393447479068578289772972840504148884978205304575347189013209752010052006357015297058474588255146217045225185749208100904027885335320079468081960154439022067965118768717970139994231372535104207061595469414243046978626242155171129568631191658285833682355370011365555794782922775645784921062676473696415773524189053570199511379212665001301271577074097234943501910240552118352274511990018257988998081947589882302935177546549540559150378552768250025886991094588807196723729151930104815416768797070201228437143912514899405573291827527116952437581625961709616900864258695948208784917656154051537026633014747058961193612015635016468961654486512879002838369635126025012074093963998544566190906732106876020718954224995867440072839968770694144845458257534204835128255051629146360319140644944699394223821238812416794138987905113005199927590342775337028334532150495445787177045942006518633832805745913815672778062921189261024889919752298417375954887954890160943963004698657151114190478747580953166678214611814397550872849661418471971736449112627303345062005414037714838364961856217302877690510966006173806511350756492882896426647383154206097544190261961446914622764299644256968891937853788053235827891134466880568121242109959860408036976900557893820152683468997081865533629880062521429082351465677858210116646705214104358744081666040595211256303457410022826435087911344963262305679843586491222038989658443671523902177410369863451442607787801168823668942869087504974902855581617381241628686352074977872604626271735628493578070813359514038487883011073202172721202428791620826289467153180050478153170883222591112285209979201273080313682237671292232795252039809347678111748977434902669215221178089914554080432170155905100212681067035739817170651439379234026325309647479274147654564770366186952112856399761886700345294323360774930091388969076216236768090633758193130803074605092516294601563124910002830107737631303789596839078584809192508707714764647076922564469715894639700326469815222476196924992144677260393947531913761199050172357997050394660486661914619508999167679509122035662238109252208124707637267907530116089864917530652674275582465247813561794921291063945573144944724544072088864348419071923224601096167589203759467685131029028773192094907689094747416228672537059540585163527402687732202028773655103105104975092551909689781689991279828933556813328694973395102740436405939715705884058786630175831664669288349823434376713128500885331943735286392280302810841499811819324183965246706023844991054997201846192584159239344750738098967198947616579591418933767237277885119204916395336682081904696154504521411134508758122947354859812094721815257746075923005604532182810850495143887536153250061985012405876761566048195656398796069877737065491094911029262097520431000697611411362627047988021479461872118229014417244082033480776970626235434204406363605851601326119165603220913240518943803432587443148719450722757824544321482707908042864051007065077279073941259399453145275210575342149987327704322642741106347673391114643978730608709561147211198261790248579720396052282270649490917198798498544294067864951923503675052002084450681571444659053669328308076025453362781285911866128717311709587740706791687202196444468066789343471796820224068676848612514445382853867909067461984778314958473325634336738202645767154229153952200884808505832760616700537428278667556278894687073591921952665022269227371483746820410237931279859457256863533367790819325981853097767370366729728294657228061285094741660279721085689164429252809758240377111483988152487647320302983283175892227060294395188675233230998304187782244818566899337221245416196214861681732209569255745191077980925770465994392604581769638098832730313045929684060882360127474837772470327212995290538055653951179960562703171055159026455941119883457186622552215535240945330650346140728824133483633982102528832948193901001327850796323272248394721241138096067154091499420303441663497599814245860809374259601648919909906733324888792778540939080192630754061317113340378962471874705792942742135461843568544658720093968066472702740732796214439862503352406847799281082026421974900684291649801471076890449810068196111640071691913496156387404410678707215683293722227419953755282756115360910949931921337745251319740084795192835431327936432208363391200288587668015912656796171187343877853865238415570437594453526003557318851615980549782978948588760030554062234816088741206667922925209705174336824907896242488012427668743767057490003278463231968365571451448924660880458522302503198067288454511305147259120262483289793014547920164204088443545826103309372994406965190397556803438922907940849119798000667968090818080575562721016713234702933580685404543370806154541582496492589358803836441323880314644984843093906642957444079095371986892851016883476955665338431309674171217212825133775958630571782734390008218959314327800007782280412039090649970244098680169632769531011273948419557925420883741147520983014483949624425762362175195985638595473249054492042586332842557919480970565326311880522855834258104923311523836030578791931943375961239014427104953744050874687311318916876219328852510547667487346738753523450877628045894419848216011592198802121260760929734647214004454917518431805531979462737711702041216109503754167298388822528536389472697729977102316045278129866617910051892087348599400571765557687565392563424423338166487336956988971213707253140584510189887388102285125232393438754350490881513324609599162195828745643281770141789400794191108428170057804913709429677981113984159397015751295460413007678784940748904633636057853316923495055724605234816112196382639288278481037130612015429350921109352397291595043634479019628348895833737212843736758923067777121748015845485687668594294606881563341869735402261554693520348818887507364582464663598097366245442841662563674555147372343897343557515363308014169842482347077354945889338362307542414063331906880840276244244938854621535356872478180575284414535536371249177109726891028031334179432630619901394392245657623891227473093111985376366893989555360083662210068569960602195624439773077841089194243710944428016435437240222476969014978536087256978986011798931002399768034735530114868399262321236063344041913002744932332524193297769626488537093507473936553850690956742832856823073174299923464955447711488706667929047224296365363070132644225908901322810172658007059061818933964206630761262966127889133491284315398638708550334720288758492633117624495895946398510842836796218982673094049847596397162113744025110269354815451030515504878045359827749261132570154438828096505535876001638827710389249491249738194189883972234965081203584585582254555016183957300749739605868794270251016032905249862660033335510894775860122071002416283018252504360353372179380476812207454680056856224841872046327036070460616424805849117932631888020629300940641350246145583937134592938828116472604863931942556556251768060032053928649046116085151726824408501510786160534878535683553214377889306261204124198210639778449551541743430597246816367962315794191959584137252045561702463931579867548596484796162773105396541710761746663062665875231908492884537552901459766576309560861221922314944069081075677932251491540362136791838720539082766118756954686500613765271195032244774795397102688996784986207081604328644403695037064004141885028761236093766569016194299455464775264488779729662551310684209365697634604158485402825843506692042933784426247847820173121055457850490250149884057231225091626906058344757165612471422768710535596175305600605610241634547984994193983502182311632957628517006144180312897678969266717638696222155407364924308083436488480104243952149990041654822102075661851078837496600600454532507041133268653458890345110785983922927041043950141443989375497690258483306864072071529973140635708270296579571836721100395943960929185928144553114190857252343976354282558354722861454675304515998837266778759808211785551928454018584510603810651984984626402033451105121095047301834761178184062003793259845816555098760351685423382451293204608925265513911726585754561620324756162875717146821512323038349051741171847786627042515047150988639101642763706856616259135457703364260168091897852475454160308737449318190096195194865406526730546221962499896974403534925207284491141734565534648774689451936083290570883492305092528081068248586779761398664675819518972155476212968096353934944793152276378661069116685089331193593690689670562942494873092426437991238695509313932729553492685814266023188519181633130356041453432115516638249351114384174032232353846733322035895296511497912141454576397681349210298740157146468379178987521549226564898149781665307661161299593320641123726315714061687211810843323998077276498693985735705094747138260858680330418721192479551166347284866382677080721584423403053927957643825381134637753229281245989025549001006875900613117185183548900208018764217478053792741521731174094781632300981696335274110926802483217744119910199102509260097556240220752817402443065464937827949622574882342244033750686106881901796574735225142187098952126091099915953175850000642701425366606011962381963380841048843484170542460617683381659659960788380159836171769935836939992581270140933609654404611674373539656032783651265652614080368926314497351447870160083297279269312721447251749917559549744259718265064375777505282835728128570855578981274132021982519046129471709144224370209047217692875365001947068683205403036984332317596939754954635639595578917380994650432247262207325643494046950654682702173575609472347861535222548461580524110053876135979847162815753794684882818158135467578319289542110082466184892713064404781996690813696224812832364238247434138984821865562751071493501994863526296571494687250176291597240105151919798374740587996754799489075071301717625128044478834567562005033693559468215591899286748562395144596344016242214339103226631675690558456919371446482565965242728828023322161140298395399296012837170109432171127165819827025705672394160521223101639665228768161439781174166895798195170533011879621739284631057909797520586601783148980304715022766214564139271750774808662715458176890019916725424900647452771136589746254508753659486309915739166983199446093201321209933420005027421401930411497013332194503221866255315142718813183715121977167086486015142732012919327289945460955799645933643608863421543556966033439424835124457068287617288952603887000184721798795112433787103719916212579896437974082320948527040506096144123612017305954979823301034762313643877595688409769190450937878850003195583679607221849107520428635592196642040046058248309517788104017422197060699317777529630298247992266802139958331543437777777270921312690942825316688209601778190894566435315366434101353970026460388042991349193228571833022158567265918296500806350083730941857598023777460380787385741395162368353792428782055121220226719919605318594836223914684130537146855477055684346236613365625327361963473281762828391944079772816282424085991481244166154582264319221322880186362143193162740879889941533582115212368389865658095723500842110315380856260114860564949086036393678245115214492201634805981178218877138449478021334278930173584777811905259202530524441407565240588410940654147744914456376177644142100001428920873311036762154679438729692335214393341575065826799890131636942837315666442162874020730840806316416389236406862494526205174563735399433526645047458520937487118639490184979991560209234485829121268531864400085594343650510525793404882461541001976163771642921672900042706895068238117188116751666495646365875093714321580096712756104754453222241298230764018530575471162090518895364824508551716751816563657588609556763079688410441734206093302488344294506515600636876785190835781988551654564510677718744660194356850880381321493659190558326755390590049569271008846699082747832715239010717931363630034485781683419149325168701513596511205147630282071748325572059019790331722355557471118679144432100746480829044561729017827858476269794880481660006377488279282288427172600373070550022060573671938281760140218877271496584668190180775634845488656452403503597788846289167920605716783894901072709291358570200957933986585888705658670040122380092373081808649346193331339178848419719495473626217948718491272372080226349553913919406393452225102935342677485859188212981777999974872471416958798844917866677656559392261090986216965906468907748307565457547403755707035621117557485321501879352894183891245772919420134142824106804781595269173219228289351655718464570324346042413937927127560416362261208035245513263811361599093724936407985708927360293910906250338691491431860424713523290129070197713517869410205783851604138450158831803194570373338171377252175534440612094863808180333193263247274540476769395900998817401572330524694442107202722312827500614322497548308260137480125049937373043718729016905848529194591861678296352516597482191408741478641878749745119384025497501718864536081187104977743958915205677965939950817668598766410305381577739676951509943982528600825758588492754431371733535610343152039687987314872131042421974216228717302414625389526212720424838258429182440674755987971263441686620307590635064302705829058497614701981974724115876884120327120611022961627837325391365484856043396732820405878206080664255530078399780134301321273244324829861520890806714185840585757743219825569604376708794574873809767805403403952933293325765172656737949166634195072228010328862181365380976317209219955663307656968318570812399861088935384554328689461064990728762384756168184531945591434087884893542371097524357322961056864376463489544555892670994090244153403886963642148192464849631245464180309679883200183871751698076598120640261167959409281505576157640968357676293157096085654861657573470779178548763286303763783800593711817365231204276040794930259541821900743129538439791909283439327898712227866119061064207545310994928887305324550123126425724900853699023823233596978056057867669188961402064610489207322909801699582711464873838237712189593489830576207935361127600397757311089954107922249366016892932163483861877654632183415005245028483188202391128091335321909993571708765102612080975919124623436527656602555052653208385037374734063924151876879334332887523370061072536642225889300822747143051003076199603038362427477661736705742181241469704403022684833418519518927501839226327520684255866979171792479417170472952542524029685284951806594796720569766153273275692330300015519753344414303255427326671817064400846253103411367644566473203596605482041647260127718556807023722827588045049223122251451501073029160721408943708935320691821696744839978297381263109620702366161664579707418405204215304503433573174876903368683294539160786286662553040644137239130610329173750799217783237950172303322718528299403289796475748736267747670028188618993649206290646727169050325987799769953676001495247976873283574126380783847666338255430846597858850983933957062824983791802182391020446009445285765061122034613283165825790814778263517253796755627763952992551000949874511864021890460320499682623741576183107362899135094567872318253863287816933293672230905222327201476853399249957478843530270322153487702767244710572205762431308830986132756989016987558215621523240582490971101670711107101828746908526340190157164200659292554566188694217420131285803956513779591177198200383749618776099525848390387398295172980723747094584467496717408548645828345223197843748949697919634460000692768585791898149663206986207869790592814773542142047625887956105986383794721319893835779370367085476200454894187578660538299583247392201577144528906143138485269531858077456725198348898949077110748716913755521422381936126089164116138992755761352691035777411501732211904543402532051776081906370535430058960512436417994053412348108811134757141395066706573697096176569981825929811937691719669135852825879314707009980480040897726457151312764236929144069589402674145732126321164071654504891724304916066553956846212079612894003233853552883046124343783661810646019298980143737373665352537307979276722299592477800670559537709328934941818222174439835140958811513725909887237962492882779879633656538499216255974556125650524805031544960840462163390502667068471127605020471506775922868570856558604813445987030754643906750826998874095946581012819944662495102385182024153980285284491494623513083720481452179345454947836433673319080640168993391584013601737570851564470135325087240051372888506010417864575070385944449279578022345439488252417521092247320472830145966972822661847775886855725052597669944254257943772634614330231876671221876084966791386567884605566687073291782301675466126503848601136868989633126887641092125477191466340898762679995883368364958908166254370366247052419777986642627526392555896296695080684267041215288767962449053647008980891151453105939992624324722319963201615435470715365229312215926638135281571836680489972954438414893027709599250867255392757063725122556177606036881986614715103294410501898491808662301078156761698946722746536565570959224404435950501986318309924150149943899742392987067828386069543742041031464019504871342600984800220525132448254694794932627899436623853847598600772708285002451673310491483611698057002931543596378715693619813929077270268197821648208338939950303336590553228892980609443767410189254626148251494396370990073422182487105805952807258870161738924541663869798724763316901670084331810264558743415568335323169364289398774620347190827516809944747333346350344822760352105496883033883364411682984605881871524745926938669932815667479953286224268390370126613559982582399703099220198182257759451393789901184314193597236118227810179838237849494194433284513749637591471407347383812556800501979956527623367607690255630474981937096840475157863533799747009584532320258488150107227395659881355905307777542079374788374713205652378134689417185186212947265835709984005138712767694815629651309667390907176395560738429142771639086887531007077544102607524791617889453874913525424764982741463735222201214460317548398078656147560278777221285386979531978116886713596074889144901718723950140908416812217214070042313971230531908973229214515490256292312852628756677544261323586506249029858352256867333217941180141254613990346439397555218926334288781280340532884157541104804344057561939008401423711721139117155936384473021454084919540819320961594536606869908835249900660949603860672186288600500067477407764534036326402229444558818636012136792220582320415945934708244967123179472972933949091681349411012530446673532101847938336184395506508707321562066916933080574401442751049084823043992124977820043212140721593425038129130354881687402271389509795162316186036537220420168478593333332645400829741218702230462780281681090970921048739528544990651214537052801224282592133179653135374525523437634379754087604173374490370340135076568207496206140203670498664567266438240357700205484548367472013457389049412261192813315244888907007749991612445016518634231698854822309937434034583262233836067986100657373364363944628662516375097435115545753140428910825525187887870356188014204315499117881955835255119997439701255361556264283174548986210019241808960432164701125535884607435793179763263409946738693709633683488192096798059992014323783616134014976162899204476238978778817269084855383932609937637110172058675352555749575931658521365959230530004908567630510166232437022804795573246790817195556889169566153252004593539611975822936987645281261546924825612172537171995280020379821590320030394958730517628928813056531685147731984152509462111080551879379844041153630051311494608897321106317499658031608722393273696488662209789182994539044931962349484712799879579261329841246828750309912282013414702536397622023705743764916834632928772982072075736326061168024148890544054321858388992913620987217018821029140035510707525391293913687551559851703919755647754730056780067537906719661660685500739857995765759058964074254047762794215801960043201388039043231812067964164021121283223526248581839540193123050418171629207144806921335002935794161733688265547361443427265000507456652380219420619620233245328167528782279292114719443952307608963160434712976378492410039567684413061490021406536333228966774411474086374632588538173316984041039138210065855534147633647118479875295009997721713868007302858538769114969400486696195769496512664762502837763972849739032209107468164508307255845303347258778048462900011186897586803684725521755753894158022720086304131795404492830748320646896653401868085311049502597821523999394602969964610361498784804625015136205437558183277201083808971324496420489680124988820190430690837935424757503557616317863017903089801972724369077066216385545627299511432466731052851012049455419633837640167437206883296043353306334520960068083935095565907421368895388167634022539225165462527485795138516469218832021874581384909713928522997539230041407238037603647090455377451776130680368639457014795418589751114020791476566588770273814048525710032950425959539629793826512870595341770350717255079867869512777547967484293241752751697919190902206061502128236736332522783074954878994543549209655476221830563553229591113177441264408400811312141922411334835697883119034124804509993124231385106081639333665922464023877359469975623257579173407565098862881522800015547445697947969749090532997036567937634918508101892819338613719908141420377412828984743047755093440353552824064057435631079350295043336234439212304292534027177122621988245493621729150438888462752087445699561885243275353611475590520766418154821813114732378700833218376842307658646206208510259913213455817063276906782470836116649005744920462590261935508397593464186483941267364243975553492736955032848550114368733879181874390718145095467875164215510170694340166606290710565466950077812649219736399462363939512585014981531220379886339533182562538114909917617369963569164301799543374303299034762140385349480765181931717629360426293339285465239908609844646793053552075361431344509153026132810188386680272675764627566972814994160830636362202882884646435812496311001274966679195634426503560361116896450778652599696238744622562161360725884210942194573465977019694291042466328224476803929541292777019211582574211669349041329761799593153739657593482563816785256123861493575335509414143265683958375901539697428639835044587789536772241483830357321856535658450199306156452501828781438918172179011755580156134894229565154924132466165773861560123032928515743240165349326456623427749102240910396353776434575033383342166722124422896786402063390303628526880181701257777606816308610440901727013573291196031589190718125466467473163558246577528746472135266124844405253844497898277949286605225849566828329945089120825899805431514900369883592178276307509597948046039457211986682781243208684303435382645413419338214541906368217785975839125095514222206468705365725013560432073615015606295078605593065267219568727601343678884629768849431154473014562125323589696968084635310727132206216033315301950605413170225285420737055287014633220008966082154669093123207770021118039650412472494778853194957488007546271535668265899121154239815613345180861641970108557452036711864523316727816901175917517937987909358477628799827714761461136667848892705773397045448939177751002576400560624230627971824308795799701153156121733375693766237840614896923913290451230790425552377904774138114912693194498641872747425443018631854423908538980673156393686404120737107192311679889893499747141040423124173213257043096974580357273372405875017919912166291142494786624315013644460343548351140568759923520165532711719541099131718530969692866524653089063714533381886757886783105921602460360379046733576082496005851827994815687413539243721804121405972600702775332327010199712300017015043585802196192460322350757258540109092725656157969118749514204214238841331119278429483770647263314692870503082607553975499614096124106800263948621461040763469742924167306344686217567581113525256512825803570262658104553579659756974243224351600104221792002379295105727401924795487698761339506328501592054164384434348976951554164457111401168841159856595316175215978979171021511041473458082980308499552294781584328285448167695738644457570992546263973757761532745112478521599715287152120151697969003308147630392600802047790369235118850830822271925296521302241764171369064999463315410252717420430346251965364107043182150523971286764276566903782498117656729774925819943680894307647208250593924897866872525790398870986617045173220314787058999845308770095241711930146772982886618852016533571204544152587451415928947651648598102532869114039035758489306890879465921318506318711542576695744192674878224669684693898991113887291810562220352746120498747731734392138219811961889173734143721481879977946461385999068692233582091352335098301275833985310497259445569600406144573071050029346966886788797282304616691135112971120922889511087341429395747396417610625739569307764322233942467373883091478443614293586655440598163826529117848337302699420116518101160925051932705275386269001694618766314399996555710333301349212115567576293076788610847153852026053921597224526878103813814564089392443681581099651415044083807470763852694725552848885074776733179684296020993790015015910938985240296090210994637803772465455510197120086776545269174676202504807562724317206012724180198367978565877451958304400293031832914552343498281730273757236166263468959988022734697811993083240155871763127298462159768246131666246789114754575747280567401916819987091741388221976264204647770197119557220769168979821969269981602249272947131562373756185534364148183531532851619241687355541681369548741840385268550852041876616180213393223994088979682084009458262130513609031179743285430457347161901731640290677969388958166712281181540992295167730535660218176600235396648772633100597460330364096360351024822243941197241220475231598559915470567786284295738669479388332537151760290399645423324115571706892649368877005875321151236196232545606465725435709991624297950266420977592135788799955709950406389873432137827615508565884666847348641019036108993053564498747395761226843287513520931973584616738505052245333187539351726957018536119949260568464661463301692746348696030717014722305607918828521426288056498817033670256519775863648241895908049444178057779440390136960512086406995775382928245498021716449162748207007356288922141343388957090089381864040006522638223672175727452276297014332226299752879253139316906916451520953865910852611142907602385199031583401350045181316274697981158824828639693788956475026472925981114758653966338654615586887919997101927222219075482055205262429861454873122918489988498437651182844935465398896618641885083880274545991152077761825342448572591694911249363103251765415526697304151393672262513046301914325142179877973635854724594073165227525238732187282216434179733366861180227416796071684975019343420884126521766245801359043491680104978025004203161288600681970421288650969462638202588160289167300500592129121072129849099054354613834142685756870554903953549989109327815955465643939028601778147362706748422393680985865775954063979703827172074116935219496628837546396917937833253874397405677961738360214637412674918182813027896620036338476099027999922630249152174732096826652330238201524704661758945458986733332009845539194924866660544157140145952734452501518532877278466921947881262537589482902257879993959791514259813427380705340822716903020532674764677360736559662273032160952308250632122279092679442380619525594289163516777124740866806785184626075168857779505327002182100836876977300360847120434776018670855612487561624954688835248677174185328456013521579877962568363178847714984093106741728563927405855156885034374666063364346535852321502685626907444511932725025420773469361757108211017035633141942086262885208640993071968526445064238316206172606969461478321214086438605366530297315698878500723877639622730842490270334708981007145238766011200460703067147056761122691160328420380913548924721941513309722354623246673009960559433131148329002920914106289093035445598023511896315919655762024456495050152000668819272626586881354872705846187736712724461688827073250951534281943109632666829660782645125100936776932275714147404926912196579685474381667494225540848817066719010192177890122925187598171464957307557118165414366710711313397166261871837205659972652472787994324231392511402464121113472833448726876385846417125075159311960636884806254632182724052928389070063846429169951213074493510073662616652859479679229437844379047046740872876320603101324186177102441506655381140495825886325758907593704247349998377141384006990841262132579156706828175115047077636480630548267553673380949948386973104310979205452158342035797833102386965911516399672943601542364973636149980197718521434480781456326983366396939396657414732663551430414332733351248132611406520706886370960097477902919853099104621880783190729620489380869082700812827452088710736014316215272209342028840696957253021147251957540434440165700568522892741508571442064048066324633477972628266157130855739758983147179919255576703344741007211559841928615762105522425364103835466866209045310924341511918032123969331839140844270705315657592249843259918576862317655483519355362365428152759512364986830979877054107353284715039480913219827342875787764780931372649986709573151821331439908054199624987610942255665416306738369528165857696196643373089891750493797740044458566219621466712550926658801951271771651931814896021091430845710282650400912947227047765858001795968720168133655777536701110409317200657161321954000162457355539649649084019440530246849714389754484410644529819613733576956988833888544110424632345024488931120052096407104923166743176096277300205364863237573023829546641933055390756338104114476666374051599305602126536118736913197773975288320030758178383802856962817304669979962963465637420353366655193930811578232765473637202592871689591475010480650181968818977200852218142073014442260410980182407660714528343369498146208366693882664749434129805758598374818701172778920071394759332394319970829463801969022607639578421212582616381724388634581480159228662529066920835640027015938076849724480737779192516364660033227043435484816977784747505732742009877377868920912759492497857933598276516823463183425420786846592321293711113576733771656241740065696482406280538291572183755768717992802157559531279849214936178319164902679422800444752358420972329266132689907504297453631625149455015374522373957825875451672633575662890326793141851664297403255720481252776774827603274884982664356926667510514983950743723509236564146487906993102748637039317881649467331647836563922437834713717925152420042561939446212585160693898409331985193518986065128192734069489224798754641134358451984713897389262010727739644338559855386034895962776157462788121519852189734548142709592174280212748343539321482000820309123501571866352010523964866549448197176516761478076814146326067595530352721043728233457331809360583882224426000382277525336055592222508972042553706116850096552362797316776124348793670190475643087539106911621079065155721489433039081397316778811686322582438929594674970188975118858384656513317064768345036012095248463071067614479322723558161767313815140560409600657357223607447920922308606927045095781763016484416350993522030604560024897829883389262515390142855830448397384155043272054801491408786180004695022103660923713246614358272609944974121480392900899085057100320823988616019410438298938894120315537017635705190224034345337423879398005610467504542323173834675338466107328827300066212476257549520155242347621880765687333060081930458823817473739453664859830330470875957375862382532971593248298425922625781257395374433541303676735832220342918627988882620267653355210847461611630403308022727069910518261620106992267758465981676297862586753676211807658760754571676791363594552276003544846431960676788955936395936904501906716977510409231566211860718831086088376429115523935756469932479528498109866017304759927122610657081478343836517739675477681990940360285863322797777852348971867872836189514289303706672187938608577804649751549282954696583788020357299479505609194204809666921560608378638680676224573618669739217337233119709272441276089565414906671615471057576741643934188372669269794038882006614613514135584461452170877565873399812771765330848705986024325943749096576253199819250731430282993477311102958545061941737270674918446998860890874946125425970057630333980028788326946821641701728157272192399665957524539394104001978668770433652901856482542927424244703576841832934650158443778183794287743361322449826730813613818152058987078253628334070366121167287798648065120226247172884314268601783856671120167839537983665229343338673216244908895565244157561378142954879449925760661551920541141200782698915435522043414250511515721336698637551630677263681409600720471688086316124813353830998487578535052297709981018431766000645500680402149148519276814526461119426453912455971220068853752100672867003154100660223887578975298323052923528362743358130026606466848055986353592974435613697998523405005389756099075701856470420445252028366306657929950905187504367313218650216108187801646630715108880832927040972717038530049289608355813035619343754136185949043738366330271614438478861443807995022474584220412131286701562234557221771746524310486232567225986526977068754446227478206061174064284661640724228419800552177740211490963883241376839905717264860083774349015772624096363354757573867251079751167906915804190154283973138963180904591647794046674953975995104653768262670488753943907980793538088881361343448004441018031309159427188746340321351461232951206354225262511969289876063433223376784094995255435072032282122690956166355853485564826012539248697822810031223116384290013980231170392443145645379180704287792255636038453336828069072489393054091382826953711739957716048027640519250144464607074432829495380557847615477336932317678329772154154637963993744624661916582167540763139940487834480679290210750589651313205337982032975567229668887610208530485531423932277347624040458820612313686535669840155174509567725626984849341312438155444094340765632821952218639503678921425136342603953838688465645142992421726287218494714828519845826805914051232226117007109984185411158172235671288711672100143741198315282003738707072622751275565785794335330972569102402407880099079219331867305841594908190012904797654081083420500177464551825330515153415608360135817229511086919802534476296591544660439014958950276234337049657430715911819347890106958606191239588405485884040061716685594834199629337177563501882103447903571403639794429948816033152190929345656653349769480226580790226388906277092497804150011022662085782541940845986695945736331185523895334745998876878556797195002716567899964705930522075212472518320931545744892590683659981559330763691215998015650150738934270041860339638862191636427918392760544402076624779805223486240055357005899403307144501228719346744039724144407113081632212301467991169883527973279648978140009403191223925039645030701843910112557664211082229870631704087345122337221746097294320345393296182987896632567102943439546996285205431192163519496830192500960771429573793085989590775295981626258693826460026410128187405151232757894452585630948584312967368283518707334521753991498831140919135227474718455606931001637630946412688592255246984347757075045006201855190249198476910235493622216666564520477402902944318268971227165394197751725239063096661618883743171820282215817349936533584180798470973119593232844891435105614230107593859083723187747593463294834872954330618945253247931715477851886342120181996058712308029536355469748759535656896090729037306811758282611172376220383727595256195427817530273515015362536585682082116620578816013648474708750039300540091928439695890270180579714971341203084220214470079243442723819025570240615055236032627836351114277263176688273964234284872626833343443110114858825699591507079458663773076065530797315579005799421573130662187191891904470916731348987253158477993627955768525984282016727576354650059505655894562435409467859484628816130601019334290819245087178649920402428907762419220364040311870993141913995110530056015440574293444018661839280956065414471005744902800223061371313362570135467087634477627568996941671554521456300478143982428465033245555277236318625626901755866387800408151490568993685444748881640802911495138224584427017532187997794164534388553307051682994417576719094491022847671103000850380101847373806663266458939518868177895485901881645117553049537704755526434481519982826390372598226512346985948856044989694889794599303668502195660084237657421661584971365217902344286236595023477168599103362167403329635641756635432350752580661939408946285788100300400791330571555276917630878058841526532959473120161227547026094801168484903569563022369203918068125481985610899681506665289352472674485385360615520661532765213665908400065501200032402877056076321350248113591405691382964676582755438124766266990079263551402903960793374817891790822081913285681557977683801102223194874535861041331877709672002575583795418792915408994218810501858486612338590432304962872345783493682574575426743719198885472438825944224959017057229341795641673138950662313322536886071386640922416795624253772676320607424053733601742572292376923031279817416238388213036424065293809539105767148385090060297912439933339282888034175020526808245093413715256882216045180732178979583282405299693513676088170175852883119865572566705606659628587845888013625996462381459102819439079275922378364015112970035952986555156086843453671285421845227239575706181616898338865834303536210208407903778764997270394589573939952610051716155533910434405331925347779739818177775025199843832948908182635863602344973619040096311414527405777717386902730156567026664354926677470986581024092232792994565637227230175492754060688034700321842662363487362432422244961629065375270101872795608834672437416534943645847295294158284395387246515917490734706075433803922953552447263362821012843552217251264156368103291640973173555725195633611588643202008333499381941101396813361430803600865793093720092530101346455627253778068613743001240515403012510856157572000236210107688690279165263819904934425585068829087174534623621345695462502179182609460410445677200308034792200063193530064884250373852473257737631918396741270481343469111371999026349216116347221316860999768131337308170066609401295113559722102779314671465023347699284619996731940918216513491638304205673667513739326053939767427744453333733505480553738178373424438645990509458205973646852289495731832294856159044989688930048492206437013141715648807366508061752969235811413086127186790979512038277977144901069409699325268475398837689794775255691311802556270848846997988761840052926205445227625716602239596877609559689954424842548153933694030185707290114353759289243434168268384101971312554088287563435467440078699315503558603951963529702052350967189110094230893021205317525747338145945557048714576963790349311585828664793708640908713865171108378590402011647544006337659764068733844422558387236186104629649330214545244852521145883232570182813854186075905637758293616749129297486006229440305383117983348125066372217386362570539192436002595827190489770642339222209952318199349521607306165117689007558694207150401296566158313023640631212527543017420219589915634540854396113497187000320406568614078388769900737281714688983795132045687478204907353493452582356378452073404452242733240064823646367484105856077627729278648544668933682295093516604921837969263074424344741989958778941531790531561279869151526391201736007322132078337775708213974129274421648011230189556548826256647664435021979158314095462165092549561338932132860831106790443412119874750983906117393516147220432317721916284434862208307246763182971660641162016648768877390977025142439327176264839692419189675496952424206073340159760710722375936570973506299333409796261526152901666074546907114869263802395882357295369384894570452170152982767790933349227734625525893428130839535577691674947077930478639281146303474600883291459425804901414428220390229732716579317408997443542310047020798714687172164600595770352586861708308874765374058559272974881744299726764850287067843474502533610130913852361449160586786062354777669936042033845728002862256118512334857243970479366342647062694520868486219201447986105821431269049465250783166269611270602896474844152579530954837610088376176733746283747928843273911241953270260298185693558271619135135268413437354039148162988368007026527223460156883041551360491046730801168906226176059028249373808055384935679322926318337219684303198403574401735207136048366463498631738400340676038761068838623570690656591003320686571086331511341182196904649570373074614394817565553051624806403386478171125616992663936822081398299137132899480928037521064337171729714878963839419243105475289547423889841321531045941434065935175075886991684467981460362948637197746775320421922373664350696963222415708817446626296283287018771469035622050451123058318754460347781660477540043043521070210924667970797861985228747949206663052229536438780300299299971851969744496270304182753821697155279824891955160509058746663063361775138271009734548549702124341697713186402789072615788109048395691722666472233700303640234177853798964023395030270320452863507835623613203937872061769744609057781750496360698860350380211911262215984920125733789401656240807516299701177784169780987490250810209108026005338729219131413190316666223706396211612660926445594804323141948160927461069644563511721949134428951732926110754363868866597547871495636701428180621453885624021291152580125316131269579313554449489864218150505911584541003675650276830556734620302265703845766284957604143373705780763686048737711654906864817465587604168444841916934654445038979132742000454741402661052805793731046014703673402471444045165160926385475322183492577069647724239880718211667889807383556270172387488696588517381752365907569856586321483254106216547585740101764380994003098670647396786575301098604346364058895416945896659330273174510761517128988548794412602653093337333568295124309825743273948706730193057709141611634119300593621006754346277012320414623313547735820867130335915208502254775381724911581793137780654392051696509015769300350560932302949023174254746302577596289154872227076179119940215011306962985574774323288857060968094190736190748282927727860283496923395755136500498307348403489529621586259095070872962767716223615143375863388709705887909435957137344585882375761280395955007663673230228532864259772632412628043268162971883717700783226529407270985162009735874073872126300663402516378171723530093482865282115176869312919809335989569832491486954320878765472336904487247800598986100772610825270462755252147888224706382345668026892150735248583675973992400998366037876122774817867604491712471189190136659436129068242066244509255871618355539598140086053516391083496661756817543878106065916751911631088807709483259345583454651980943969125054249029923220466638087719540467402942336217788624953836518632441918978405406179367238467347174595011349542856134268393850428349264471667376375122470203068544088879590789110261260930133579587249675651892082548735879907981773317971550074419312030229016118948120317245174294469599663946384930101716496655552469593017119230828253621356389029990514644887041965467244943767550216069126213213554440736933263138003921851741494766329120431431482786005225600201489069772612525045098327598404496872378007312453164118074950621706387299103652106333061402980074790713803601419479844695048287421741917103565886880375474869681743432501785162033428262813910339211096094296772048636849288232758371364385312699836235752774703747684717840614646779687278740416677706674613045514907718876287666370748617002737874691848337892404423496591221736809576167125144655769660001698715088528920646941130256659825616564431566613114876672238766168176139815562625020398699166258866561255885656565853540191214563817348997607362414852409935446074290459780561385036201396102041305460109777198490198102674761650985050452022651948673220527792392062174917266811532801058193057895822426877246464301040194375379785677164843415470516549080961153547357714482158678797777471288214922899942588349506418792186844430313834739827487115895114683558755017972969116328832985169362039086541481966212380941115404186632949537128052079263282144328994989189983610832714310793390931792422127287648719318362032580059397825764635534030500150708842191860251160022727254510723756224898557626101089769038928621569564516148929791934478827186840837167901367101419593138585331582397798271639572790651776803511965042275322666153601217687911916859003221453327548324628995251345466375697383562005131621836886610123594263078162371527797502653428044252200594151125075531157604993767705074294992918421808265267942194665387191054932046899912356388585200085539277200063531990693000304381699670320195767569040911616278561083076779045400718587626661094602170408839044218668501812942320260981379314875694611634438318563290148236562593630971191147213392532003187606990663559312292328687955561112943332491479698349415539614481166082822780905429904675918557704714034699376809440966692958233458023849822606110632923907144954368757696671743873947632778981526909730852006653719578782242204175338979977654735751352293643461787271717023970968121560026612515209326969812322165746202673132455952199412673885291953289919606922689221829802747669847470897762389291851232642745933287035228771476879996930581104822984671044770208381559136286693786879541365246355347167942049617875876930477205549319271552982342982397427810545238563071433787325308057778649559557881504936503121071872507571613226890199031258769255459012308448982625295014304378384644769555257759304979422672577187584488484387246306743762837509098162983034576973066984184053529792416318926478489177542484948694109454185026394755417565445403829942361922515702392798747515319329389134086776189872097506702138386141798835132758350797799481962828768393236142484971507131208825868423271050047459273384212514030447930026396996634911968833468655255357434746063131734538285187903783074131784529530930467064919718652911474125593801507681049984388306271560208688579812489296955942311507380241672768911092776105306921773625120076307005957961695463385664198364781819018256836318701861816713926151423388201779057433669943022806884644289137052634894175868847307369930776795279685040286530425869065136870239133932190053435960305739900526353395868132920036937864659500287208225609144674709184790143012615996640185045339756530005460334986975631618959663256946707854520649363994787193109734029660332551629579678002894101808748278354488058749285571292296783309459751342302644321632059580591476887248375100725639821556743583671011220981943734742385817508812531270339292854893011043266196917878904917706961935619750880589680419581324456495283632945275842044958383142881047561163532967807282498606915013357568895982846367535476190841491710642021905436474306144192844987455552433415039197033886685662540560197817198276540562048056812496732513508420060127512942314093428301426211083803343998937699388391597063355325647960995210387782976717356193910250922676304130507019036659002291803468273020082539990630107291740282637911328360928884649125210222185845535626570406945362944519251508625593051034825119502937432228169634734784069540628265854207000540145736013867188959878450708758608785710124123915017159422889573079599209781418259511674874644336444045747762439803467527241012785878267546646868140632607145945620404409337549597100215908917063869272032143222412785521551161945748781857721339284142787697778240570339522340686524344308822930709106501007801814849133223023979261507995876623603471833127224955772897409186782801649462737240083404410231014011942505161812609222407440068421642002282285002694293088222999264955612297623201116520330568570160991578508919689270208738581615956873790362681136843833724886069424089825091771969594559290019357322379310867504086829379197847231085223888478797354569196378788772963085122146759558151080804871630003726111404095466253066445874808514726956800285092315688546114470938119034380297199309936391898602889942174506615783656686960270921515591438416390751670643687204287978798728549402921471173086883808863155963557174230019413934647728446216907543900422180531204951901495703846418913561824144388256689288886784655041016951577995839430426825818869338181796504564967515931392815246152626504739756529310386931268109730710464448459119073630833876265090921743133098054319168154396206652795405743137925519850602227445258949593993911121923319655644289149968934546246825812404772437644496330246531881042458624726814164303493824241225807364255344637240839112795829082331003684410846925072085671381474334067936439001124589552827097907529090409171686916308812151071336102473760536242646194844107686727593082231072105969345168348230626243923334484276645204674592359034475784658436904913332352002311097209549061992862062090218922869127677676850743593957639646458963133215311010663602248430827224929662318632670730928342838872337563590998072310387493915689604256909504756778045332997519887826136538242327148412447633210884641130232839908685119884112435295992341980913197442232784364838119293849239935742330396436058071682716875447623202413680345001510651655590874752980008557597394474244728898932096310066054648513332405222896204990581266833024663024092373730358199368434026406913806357394857246977982418806307154613127067051497598005921506827949094030262314142668598119552506267131624073185778374279785041772831719613415135180414766853241864347030592569686815150066320274479534215523910801081811192855060024880011109209586319302700936277880229579125971525134632034871732120590150079067195895020551765104153641561477956172465522981471290065829081840011990400764263209578630793775572700945153089752400186400212855431307557288933086895834573004470849018492777779814540350722822447902699555768661940718773102373437502284411567699840544171819348633300312399963655589170228925934792046663302668056605392906132260065650920857680046289208559542943676452788899015732946141711149714720142485639150791710699093717987540508904281647399996390852106093165471077037892413541451312362591859710091197769716655156632792092035579626397417615624996144233908053053422600400813800843943575613728638920332071320173048269170932686744883015010281112459486162222031519899676637312832398810786264821375413880343726346726717609758933896397374016858316615484825694820118665358205488244409434839192587056998908074669389329930684751882487696549461323525464401528362190182840974485222269670442599042499649416798015116151263910767769488416883432260202294883372540039381476129994413381101543600583630660677717515821853388860474138597792765396788846419284380994296541754846622500503676640015444064801701540765150172869370394835557551332192733653111341277940950328394125822821850707506529298918541376856943077390269433754495988874491976773910679840166589078489741940558842094681965798501205643779054899817697404188008421383639660926490737772901597817098316331840972516763357716335631467799689665009476409286214300629973452427520873646896082435601770691032588156641788185841597839480300198470153967550438271950580259911130799642656598975056706422896563318630066267963394255585864945848789285615261059115651896372145270653412282840122281485861912245020678681770452322871858390907822837781509787901352029617692551372774676623048800174984873896651700654311757228368862121591990851357148422773745675294381897505375819865279762756769714682246504268105317935647908910773675483870707980936493910130239498549373738737547096681655737647226230292329281963143979650153648403176695170438101597056883277307380158045469742312901643007955954870391484070873236685803227062659387733941693593952349541925826697063069084421962682393544666648365778433899787604981670516831030531732344215328842617388126484070190455503263976397613012406016732219171426742287368646065398771220096382530526206154882754619032928684326209650226460487879390132083421920478954832619403917797943420522945872371820638048967291658513089742534574877994974355747010729567001430479476926494634231298828687963806924284006615391983887480795741036165825001324710761671223788474290334160267890477250549656669020473949725343020483802282324573819979903959411659929656130299785132641367984345835477138823627771801408112135641333212908145352078234453671181674079763678843485866528088205376972442070079541387710507909715430272034008176417855617992119529289611971538608707858514763228272995373254864730369591461455736703738187880998191904058765121867275200994783688154874325142926243166717407575543027838452183837921407166717892713380819465256245536166850909324291152219917632809000661407675276954426148851725295176680739606273280254158109088528741590279767939531266905582558101741367720259557346902607726468800384849661430553013505035537039679549178351712139967687591932698365742412818626788201397582551947703528924149243320688772107375507582626861222444293696655295769029763522448438446967102624861569016457648593178660432178816304698303793824015151956617867827120557794732500198550348318627420308227861610727089785790757664008570657650783269642062941323281802587145933845563783065172168191222816177278379819434333188242247341357732637600768215551956995837322819279902587890301641824467885933201083469391678929274759369328386664168227825726218870624228539681947217912359544567022064879826798961849617382742441338791666251261626696642876393631285395436933631507478176848591658558176551004552801293152449747024315962870137457375564802748859682503217862808258219502279341013866056438351722127803147328950515599321309916906973322010100488990367718719542081001936049782694554392817515262929168829977935929695226892949262985627471880689477006041719860597002353617750912724580269208797414841857799099857168193223497455954446615432113426981022905788577523908060933260964191015124033625492396607767096736882476117348148893990117599475199554731697798450375083157633636330333809659869461433288589159917658605990908505718280589343097233011506204099865915381490050255459589604793711135492811428823874680752613318004896496617812477125777944327390237895054073702042735779129023568279275345708198850187223827354742430454072224023436437665413327182557565861623804247332314180765070189691189625171060275895168536471738030983035402258662907189691795250846589626349556907132359287928679322535240462385463454574865219454614414486901151309270647660265659270780138928028904509283852445023514646170696074640394548924565018082671611567846219428660527650066685853065186802692465082946975151164230468139543262341584071446890189083054488339556146311885169749623452537314228481471168297597175536998566965023362440346154582508663826623801501988305284936012099890706064360612427436343729831064809354636068518057320112704167518010091841336714049169338760879039403757817385828483062714448669910200286708092813261369240247720296387046754541363498849722980095386517008998213268030686485255169621756329653379999141741602800206442168015615523620847897607887154846319959898142817088006249300035198387950999360544231608748822673369667105590405251792471296992658653541067650499788836978128459731640690129683117978589171513601743937630296867246094693133325162283128591824764380223441316730131328820147550493289963279375971582015230521528756417329247338656199342111411047100007356370225892269961381906202919673585083925543633472840544732781301217436925621650612697779791324025638186141200708766835573591081109910625125257230562204296750164844898063684129481376084361189396631304655657118905318188250132601524034816309250528243719120380714022550049649634907754240842429598148940058497463774373234213122676407671619615586540741211917114532242168492380441490250939183828570910804564227424641880452494291473273371727498703084722563821301714377497179893871878871588558269321213983370752234222011833191400023650122554286340964193164083200044850971876715338662382131454356824056840869031018013457451268680143906595929953436463213213533244641906660521857150972604062187713977123040592630204518279216310528697335080304402291070079283435886893964480566377336637603090992611790884660530083830421198559835106532202070271051566998942084655246383338361700910088918537399645198660756933774971325968661097065006231323802655743446855183846750218080467066370684392087760759209205978262440750397893486707300407808456088561986110206664505311200223261637057443799112994134006306675262511597248431383880971919915787475352722273844469891112190621658815126512802483965443316829955982434971931987065904273206942383369176354491064564792985710367892211841866201763498640777451405719229750953394157258041841863214817028552072434544794810578202120688420137888738322942939644997443089900594144495874869603552695316640980732216458766152990242476078910621732915184634300025921785092783706306009587732607207151537088569167178767334801669195853846959791409630865939058645494987107186338016245000200757001090592730853947944681605520595845230126594489915482874201286844311836486779687674722675188352130888915507097335076167428152609002449300075996531599639176580862435815166618288135849707677098263578834185825290424742098027046362853566733445723344912914176305992109721677698399026734112687515632795441364682418168691701831509293330215234565863394940370317072481351963854563297297603758841192886411108118953421055168961507390605806380830069990721347269253675280828860691497202869778674781912914790187640062486391384413993711077489757506405891394080355396843947912259753977095112050365121107611999908095298411966528189521515133924597605622901411340735923751846238750475937311469755414750311288932082244877045357470847288381728944748148288831185354830741886961107458944758451075724116588987150901095875621955918747893300071523323508038775736884436798320848842059532770393122564845037137775254416700127980573827506284214413664174631774043200684647946815303981972306983914724268645696493046038079626040082546764843515936900179256358143926206783953576272032404872781441514578721345291450338611035591215502461372651795945204271856586259276620149826192015596977246707318056271496194436104244619131735030716521708816403996591206481890146404562783268133846238033220007777769225069660397431387480461502358436308913804741056277743209349107178470505603437331354886173408635871291869363546857692858373272443196186478717089000706201664899521844117624054718358545333070061640806704613500545209598457144807389908345539690197346157830730166797631320592418687835909157021252605329067204085032693671782575517811478985339567570858589381814196582971320011856473813383918439783066581951834331028802105515398487690517420797988844334808037408665111332825797231227169156965482340316172917911880619772760918534094955013274345462340325106855675190193499945837350511688406502753748745363912823247328598045847917095698443306014871668252472918433079955195345944556755421082434863689755502743019808212750163300968300262105665982673181309469576359217828442954839320953957824444135467841941547622315301159193286363640359701806772058711519588380318311363815980874899707362673331126559792804288534465113440674684956733085447762877967114423336773249381997618424158981299489373205504864305620390858403782235354754552513276855799256762321716494167379173327596178606372833436399334933717744202470092367794097800196113900072543067145337486695172717850621234349306105463192825584640284651232752114790287098469924227401202376072199333264342381736744739183033877706478915155132046602547161723068535878798838595396756494332346235986096550401569348234671152993281601539007139424958275669714322774955328235042972807394052850946920046240930370912636338643129218277739257071429714117182319947034373012963219848074631518048778125040067961345005649025844500265422963901571864566857697216096260731215413731791997276183028771489870727324506606188803016492031227203802993764927407186303810950687152005395997500774340422714183806196760491076321225742301744866307647412461884357517599180714814972935902259962022514809008635043439972792701954935312301185976305801003614526353095306118188149818904076771315302057681045643313333389055583118005633002146110484889491310860012861918604894492974130577728201248139673142247351598588365981356203484857006959204078434718545284732439176724584830281539104197106940295279403446007917575865852798508886190744196266379313442076939817586973383833974570811230924011652017986600372902848326313127213276800689617221018292439742230889660511498366754487158261139342081540553686981247801641252347410573041804935257001844514647551988503861695055311625439680153356056168842716500259345975170536455185889642427032398618456078450433511017443214531150322774975126364101935191412534151006504882450419978592138481222597772108357057188594538828011806562501993330580611340387222621361362632862425360330206866166511777532024702328170511710361182206358410348738308618203203001368197292926788918652897242731674253651339384515406165938837724504343712792055172774172548488794708622550259897066953792953414272530139576597373522280774247992127491038279020068472217411677339134084975456256581313415812129641774806799657001499156774016982586301435342917272889080408222018971532601310425709196040233500353474706194489380574874033407360723718819570375363156359994067084544713936572362152214520807609263639133343328480697899079362089328831086741614416154714274109725559752743867770386346347228066147380686599954525172144479043840332188113771959796490556173865737203975884314077730557005090482178853065697967708208103086951022432590842022102251912549614163770592412774777782797558040671631173309167115884060673634448361967179715304559594730805657167866656004197393393117278467003604891620475926533917475676540104764919399546318213694268495682024153886833722219573839533620059945600029608550741233951365201430172455252810047033963704247529572977595892984352660285603914972777713441084381628322164936986901216072599924379556561564253395361232037826312353471509532283892677420790912843240468213712589744891614128785417230463871676752556126395551698431993245842749601893072825296179333591877723416809338622716220754708050721540337194984984199461590814967980457122898703031283922686136799842294676927796392895260508275741307241708983390512095925371850412555198897375290764468285456971581555369583146453708592761274964913425092894393114863889636073581489828177863375094438286926147641457126186658445813310421389934745038920083069848352730697254059999963485778199260810253962615600440121054615989549805437140810937531546179430083962636316359995014423808240361990669476165099663314845487104403679858707264591223655762503089264720449788896615506234939524289538705710083581029509126345850958172939452083025416843107482131716844680695858090987622798840414528170058277528661448471563301996825756361866147557390355568958532940522003990553669218170982789686014561569003471098432771710185133257599219742250035785199901159377806368592122806223435868248738343398072963765477500276271547178259720978201397630880757727619819110821201142869672680160144810045665632455374705791567818864178853225983674358970393871252895732669014903926907489008585585240379104507637694943577412655351152099281989177085596247052143933870567629414195370540368066022518119269662297104870592097513517639899133663286761902462469145875849335485023862038843498068314862489245546142759809043323479396694100919511668716315413136909926347201658965288037642030237005962642265924452937864412141921200114877672903324777126285216952375836676603312508846293299553015161752572378922047159135009051534320607027225508274387132844737924298722301612074916962185330691248538763368751338079844208111796679268570541676216286723411820241805350967469065916189271789626752372033347158197659688704670244591308127021436645161297750131160027752404606983119960867246854157361200636400081833923649748557654015404798378818033739265308084471091887019117047531055436067628364219073109875089598330641935467633284277703572745032707365456253531162334901571593009680248806203695339995920267920385042206581189042430191445688237781084058543136096949863662722461854214511378156090692378839536590606307559127847653548331238618673014563451333803914415607803733194473614534775820189698735951256750017561076570377257366629515295348177317486631012884594464348059686897715677871335527259668485187276839791868028200186364943592215077181067203133882751047016927553213310815774491385138066778824322197980675584361412691143858005661148017445841672265592206983236865234259118681974569056575734774761414414078058919537566947939438627738946581849707050731581627432571402164939292531446408812565964471997785521517317417285492194841211053863988927479350444865971874972525429460404250711084314421325008083686916400193544048100165655443349832717280850560299559628273786179976444711420909663076389167729145624815735966252383021217288493239006661232038565245435049192955640561634767282062397250771439259806606259352041687336639553864945509665221180053157744653958640870083069149332564982353206909182221548233449451885053299850178266266430660470751452199341502666576438974181718778084707926935802223106969733391142163805801737283743842396476395473130292567758560630259763752929694306202065540061517934740638488563048944859537394192418538966974788341210509038653547052723150517027088860653767588812589803905684201362933975577946466301304221588047397891396122424784858350463193052292539906078596076276327453946622306842413541866007580690401074736535792049243804306169170518016390398670955933191923217621681147405641987563985632579082602551522009305707650341133030495053031272712884966881427116635063484498378700662938661640909117578541631221246159502166396939166926077548581672788824123470150720969517067084817998279651972901611214004337166437622070922278548012851328614930300199241570133887881562333596912922111345421091062276903572037569899385507954463765882771875043452190426365223328272132040996910138339661630617866883093281887109191238703685690560289631078931531476509764653096672440527021281798560236184106358082906175389413669640883814339029785266103558402256391072525087989194912470657455661855047113338860188963684167834634825714486600170393484646523117367945473550163358159101810139105641786420131115317868064449122790127075139374036129363941943056467143626002849850349614331440402155524434735891997638426011274179447098157812105552993820654212055261743872436341827202513734512594191156670471885577211857852742817118120744489789401119396456895069220363262349273277431661064301396931151612013400516244851387034561566841498044748805123451630072499704544030144995795721923272405257774604236604037555942246889816411441935195745265114055957303498776237088932444695010404712745821029633080737772552161072139542946853982495573890164648897687452651642199161912471800899484813723402265242693640782448040821398268364937296884435208937345606056521174705049388771517155120819350631745069958754155898623725829308656351679658377867809705016645111292305981300248670656397681118088195965168202730934771287747004601576073117073382997720959192143910158775467425046475326345965923015055513345646834360063877918468783802077069626964711608046788152998288886968631623245519945783202434279576010880133128239310159092099226250500539515692509108564714095440533556374543170592001459074768627934333783032725418199135351153220495089184419998046813301378584027509690550647111840752071799947869870356095194390154523855536309359907224328331032657563785052433862165434272421098676957816395506164841978448406865165953912411838496313777714867393398390871234189841068505116599749021501159191364078495639030590553719237860977685518328855333463432736937392337061447532791153830313419767238818845543922103883037456596176255273890261704349862874616915825535712709935153357673137140403628107809561871533636932648446903432037771531544507415384369837782771051523250599429867332680934439587812776116397969242613566531884099577972432902405249907520180121399689535189150662779872177844159103541590602436733648536894580209696694897980327322612617874317737376277015042002302749866668954907052661990336952303590815853109169596562985284439230273466445373250279440585873384698630238185364252172139596266441789805890446911230582930248059474240273271419986036904261547926352483804987785897343232969967330727912775314962416341432198382076101786643235027413921116732041165035563879355237330418494745937452079532493482884110052757280287755748151208229417135172516578844609621177494993560121129333454356189777825083053715583834538889362702774898026012765007813657161489643089407315291971132020353146809170270092253070332495170583597511971483467538084617984225777440573733204022603106109056941881751983936445870612863226630987870115467252329479887592848276499582236877436395797001235804853719010003100928739585316917954547481227531762329933376039121138472634617851034533090003768699153984169324104538056929850101336710688879860400320471371098911730423156645778782396761559518402837311136995522042231989924642225489611857120936120511537733069515525843011978852581855063874757243293762455594043925120151346909264252382886493247380814253243933940015029819428178647621728089447002836385310986180823883832674466776039106166059680395059546668889605773429636599373132321944422800721032744100565330692214461827071312461008043630943802328759108753953540732239919918842617125177358913563834527214782554201660588609354964747240603125761199633879832087644697656748986926553571265518192168979446694953142736285769069291089204094927899544264842069618818054541109637556656288982347035266856456161111261228803497394649236882319034009085907111478923905921893944703136348468859557837687099544233978796830121999442057739476019145728204382698956956295268320192644024135672381876457204151543803308237044446698269366730859721234187082755604581873283863460754001657192419589742126978040245540079158366529274920550955978659093578895830698657982123813504779239380132121423011581656114221730633564989218923375762433119758770943061364081451148366258595964756758953289475253266268486274121904436242437172419104141413994512962603056505176733389920403440519577022690653185241254442627927874262398837738738093381553034789313641167201439465672531224914519902351448307304704410111047004800317605982719986049151422650981607076220553530479734977695530922427025942466995139365447543733542760952138165568760516175023704815588374962081701943216154870497337564037634165380388082399809574154151993838946034255459637792300786200576097877901803849087081125797356105695008227492253853021699460475787659807952524762090340986319679476505399501767561934961569178525266552233389369011548111579434976234564514157226641130245299215248482165219158704074136234299143374580872964770264122005431390801893244277101682119944019073221894922909591069563759306645933361851887337351523101152567030249277731960098724453151506502521537688951830005827041015313444039973851687246927713051666697401629031070158252832914189428626680911016502344535235192067525478071016744774570156142724060030922258371958875283699887548838673731203277427167473626478754536891987534202747298032530132058766368013556808453238828691926922068172341140786109909988242039141440026579062358723282426961131925649396509214751928889472644273565278402447030712176329408987562984584524635757941199749872367576602349562491946143502209821569800920694043180502187828388530562958364320884263036091927906314997441996498777057292452197754079970087580356203115418295124561052608543049417683848258266979230717317557307107674401905796500862032261124572134008800824545217846770123514411911457002451927559194279634744546890885794975857907541450286822784964511526705573119933724123944461093261693929689062053336039256177283192653887997726739574114308125485204332710324457830095142901867957722343977895467727572003785717786089737526541197223078634428115940193000640235470793281442433347873435882199867294653270586384977591081787656435574226252553249206442970457866320406418179613247384329553714163085856327073858279903560049219116790870527561597411600126556508288588118398249105748399922028705340539814729558691389644598725026337345174467129636883919945171845515450496666525755491736262253410973936806253816390542018239837184932128505411197473448607205347595209970720083669674061109501242600166232490628388665817002215339677614641482161918083456913713603683816554901328299055614273741502514852641575354216574019227700541459345453215753507510720778262946854564904701388925630461681072271878142497791797740855110221709049995074162853737242253263004066927945103236263267708762716734489295689743644182704112894759973354551095935090130987872214427709621493734560653016660594835201293388959883420120613585577951637945945899632248849455553878135934348712922059333567744432774260988259914251758693775444573647944129143118001549077601303058949103060016621224710052099234667077217305844615410329931751659042877029707835346986861497782548594547412510558679986656236408839864051469367844232273910376540633579021846772018973241152503475021614669931005704378556019381665005617166009393337792905884259484961285411386163740979599562650235535733678890258371455751160936306870998501640781829075717153333723374791291561308353366125739448524029047330575044510427730109629078363365423675227227131930709968798555489519145407140923223495789111775314709425278418649836593438256089855019465410871718612472373264201315628476238339526700835079692516218479795778567395442780704675544267656034139733553361300836925352132789946033142777958682731959110790767630023605919416672605916238628585580877879419107370482911435453999125058620992863819006699456610857158955764921565829838657571237817423069104309935856369594819144996143398815855218534003985858613478049973373892571441861924723275857127567498250275702106523888656050287237723228013124623439653123299112611572485452492741170213960568910369501358763047655581139695550992179736831243250102247202098448299600890837205028954963431432047302858938609895146736619854878658858011343278984073850291198530896368875983558417744426047397173369647839107804172911748162575512710333371394617054746915184932767804715994893089419515564391136036166989447915532585588539293106122180203855991393339233814931934003181124720983479872855821941032578013261070663217091605666231584216072669555704156170529346925123244532830704939862366762944439280189561189077993139064672910311493206286272275417359146598927726534321059787523415569788569216678105081787576707512673711908014929934672608794346930459976136422072882625964453193151050603027343787981109561192410703031621312962842432419264709270659620765653871484268436997122456161833327996158324758608979008115125196588004150043779867527781822241406798673363910969547497709057588376475026442186616439878875797842828267084132767835343505300409413528548674965009983171104563667181066864455217281187335145571426631811863772559896719112715495595297785763889792866606814847117597580426625302584143077497115646958791634451519876107994204568671954025665661946643646763980599147721158665045733407921887511940791365951994976060284414297267222635935277789469365485491681850084635166994533674016577371343383403999423968146965532404577354302529862754511262395913854411891507078213711232518926524484700287508050061988731458160401360646630522124634418383969367018797372074359527436358323777167300946767414644824341999524742433455297655054436764969298898571978820482833275603563718314715087340305578716327149510103509151187584341507882647722015815127026273514045943206555711662009762394050525672163618218537805126720601864034998915679530857855274673789716381125751047788595450856662269285578255710379969345674266947494552090827426800796862473882194358147287466338275187167558615571907323842560554788436001154595433403744834308761257346380266038902362634493570628896127426475950220765344774883222978003912600705784900630239657405960357101315524156732909163634599752096818855540026771687178368594978176145977673870664078019650574787474571004294461182801982444891362569650604833835387541058706967545504740866618419438541833146442303649000579739546783746834803356936076287459213981161613755525756026355959220934534534077324142291353918165619982307736096108792228986298114395494141216310498665782106339390353186920443929799203983030075681152641212360658784585957365156036518620189121092541616221664748736305097511534171462961781443437319654296998903924627826116052102094250843588048861139047755855078921333106411868203631696239788536480786198001381759711300189339495891692106824614988849680643934884946329319713679056161952609386711638058843557358861261235252376822933256185999968695914796672105910329767663468210045793973910017813808029246498238541665712982714481471107338425336836027166374693008809527382466317844479936309296166838559591092345660940226223603674359424307632648688573430415414293435143049969029255782142135886747255186678172895074208449017057009065369253105577865285210942089512145784536323595237312199613601698515736494254581692169868872492458981381057412376140928282827819662606974390047749757725674547537847747884551389395234805774050083200518246980757016985789687361427530836261891932691059815677780702243876977946309544062864654679903815804274717907499629085520786099119754441134862489131963043009739997947653642076706227546692184609030058034271683240047019454954296066451547924330601155405764786027424324239862282218576109592484220111394923026406760786733984073311519209486455461998410515037974065020371287150899997938765710993449274464622250103742995221403202746944650882916580968096207988394677446100302565959216924410334051817748519519674396861035578938100859615201334852749622044645574082709289904929520908272650949184605628092552686807411169440534920941803429653327213997559254220455887599027858228336715000843236434929092019352267497709166678057037698322508752749363541085441867920006854419900844103923567121185112193143276356398703834948941450727531542456307921448566165162575058603989777662412492374781157757268367467390418934645415240557806173473364124140230346548384794076778521882174763601389667243333527678786189005567941903342814860193615693461131878899488652581529516498222628549988992676551630047604115824059986203076156561749209073306748803950835825059689567022479063954459073976444640480199313312773946360473718117295717857189447693244507387435208888332220294997401720191102023696861091895438936592521547450905406223390660134179857935933009699321599576783637519137412162920239992593674296641503100045906833376796648884097664463220825966489240966205235422504151809316814849987939653478379822254710426757159591586456735737590816193189587299018991763740679273695675173815522537979565169095572526355390061842488461507747509466663812427094468040094711263376113425842733305755089410993358806621751310692933846677683666693596544016530082161832106412988083238394116981437195740725167540149965240677771717554964161030132983790161114206446344062066790837845507125288563363723399286515438569982872929874294685974588939723564444032141129496648727346220484901261199697160136140617050431596602134908422760052062007010075772022668879941610136895126864000893619793199553841766744690577635533679264082606700330381475329940994065460857532329912965436670592210652625439495343713892107610832107240548740160909455950082480367984318197087021893485680895381332105439399611901620588251736850454650756827787327724569536612976739701259392022842713313269761811089760653072366524876269617791090085347951306649673727072374136523411806529658508656433256698092388945590771378071992515740328043860455310506236968241584688575741527684947073476758208176797856094519422714535116859264782597981376946904346297417292030473479166728109713523030769906233346154936958823728527855278941404919350431444726014624275211018989992615936600316369583561254747827737280855666362085865818647420480576016630656948776774847752849790557998971766862690313883431144866399601945154002328668056851599374044655190591765743750322869192817171112584102887781689735973676429513845376974376537242520500187195843177602728453811513663377365444228326720808316089096997214490127037492244049808513917078524046721204716422880771268401517265741755562870598261665004797960669949337037983232996006244454432519663754154655934348519193670840412210145060334059622958864408608956779705238274730115294390183334100407893129373431931596900198971125316418132902180009752376278822991621395894341634090780194100382331677712441539277214033749434151940139766861762103849274186322566997043152698476843428447493407849844058019060907911652581148243832114116098862410533008916615319519175714430068380915350192207600581154972017124288805726043710841685991586696481975680402959326024172068766705384280839253693684458956812929791904963959349147058813859132654932229998040282297727177384678083174584848569863906931313530484707376187327988652113996071669935381325250012917375085778922649024022444672694793230813493066641481902085492777318711535821501804816031701932695072862992211134971565692886569317898754593196732602681729340243428689155528718885169972601029044869171061216164902620849093409997286694936310749100036358042147890344539712105994862865673964572797208828040180335401305292108780857332422192981236540840648505777972519600597300621598985395528210368169751859020545772164867524124283323161187938566190575377826300522154979197522839473414092835787962065583929218282832447364386776020440143208020943931108809013316305674321632908424170579943868852268832817931746912571217827913871490447349529481402473403840164926092009568207089444871367403430008150297118324433086631346741140313229806026885228237305936639339460980470119773786308753516965395677668718518073145534385484775348783922021910160158188208357653802242840450515383846575729694497151174874969610427508703644988662505458953401211210128606285810895053574992639818673849415264513567469996024348662519462946546649192808805533943991217219466180072920803463662799113058501836955285791142751907906663896436418433126539895156268674084101269052135770272283923566303088010009199934704335833444770302332846024142168138691887099415140919910517584880588941242754093654170274323551874713237923567167796371158161363868375905127134830380500187498825510302410692929010029585109861005966755555394900006012276047300223254556137804378596480317920291756029867500157932918379609396664857703798875342997911032628064639826631190954365549130369979656344263992226655424349855070302929079788485987901122451531766374960448491888013519890232080333946226740431721101289941831535272901059094186620711285372460245039616695363961727980786036607748927281282096583696088227421887903115051568103513578772043638604749258548494048595151840827505323877571661462398528558148183174552139523880614207138866029988563599681943034974954283136759966725683724307193358544115238128295826537110388620395057064487946758717042255026169051981553719254902581837013482684319568255456811692450857110173025222750664047404935088392426971400773577823422892936672775039017684979938458636437325289740887772200182944171027837473350623186981318677238596737583577766679701139404602645658073746677096069157803827009236155161736065431766639705230329358670196666768807129891423389670512984306162051991605237233234955478955056309397401397758639184953788549182431445677301086165146694847626547485569109352871123601662454467406873673841064600134414033910428390181269620533166184056006814054298160476447835711781478137010195488495581286494977435321788010870086114076929715238510053469846859547417819878082042166025190388780930205014875704914420437688190033439325846689683382168062719752575525597980653976487668563533348599471346666840648883027179614691665107330676127466011393671181659747001165734129968379235649212916401356311318890080135319220836566595131337127324993610145053317515369676981905481520983836234319302491095990764351278183620297178260601615110226451337353952932148926067568898797715392969606421770570082573893471126085385772460292092393297647407872172316541921768288216386706674249111703284871906121587571747615475680410023207107276431055807933695546086284867815747137978779392520199750232126973634533238782634781203118733898992358496066175042588479768346995801838824749170258054907299620927113711845874954914392865173101048294700915955190804165144067353142235489963744006471226594391358304183403799910711351392684703715431145179267182459795012775735534648549849914298386447278101410724525602775568232968713595026833680750091532678802812443069831993901297176615953433066676187466587453154219369835782289367404402703680332661016673061316167944402768405991792640138318811223861804768189301243015239883282995766892232101475113073037256315766085516576475401827844925843358354827363661985145325109673406989376427379860511336524210806990667539124575742598808769564530371488257779652066972507127036583255338974101382312410676814464724566487348319721919296785579676172914875490536660599541990052547023655641899517717058791796561894217682507582184536412672687940062286890837700176309171756843599542361490699179928594418852417422206003310886921777976360419052605766937734376203633266344602727385485105758169637174354047785759893956788552402696223920304933241710755303045037022165828370503144219594594272349331374922182599257893487354757991428972069522603809011431683049880700596201436764840267388308333619649018678876752801144826621151559545627080388654524713817301338724345162689709579486713207752887609935980493702827507229736084014129960802315196357323396752214136615881104294374907897203987014286470200226826778694463318842748270538249874689021798176255183856762380981668342988970882164975919478730732390229479179380158367741847435368251841935421124657590427155079899201708167074574870010278972084101920364885142200449552492515575505249708631935311723764994101843573720566258614495235635132727599480401857521132590660396715392239704983754966932076940097293331151736202220877017537116510753813677241936832813926339405392561746515687160952371136801579253645095959705128421925821089327830324431342144631637540067004160777169283417428355595130440007189319357961111764740906325623352298414453752879784386663811112506858868490354216965758752748418342690569162525534537560268848303797857840473143665892267487579862869725905940351598471298134142647516652994547478154172636192262853634947770022924110045020233288405437171488642290640791175136810098339579954286228448718518073325840389559015518024880808402738115107009650806510960860142474383289700043603116631906921741090081681868649685487204627290721045165909599758328548817763506855369704541301676256508625071347971278837451826289367259203141608266566518239245847673645376867945065329516249355818756191890930927989889891437823309344084703001648682167780978099504851212154636304812055759018470362016117336547915884949230683611725955799113608379073481391614708707097920677976429538413998270465947259580407837787554323967970642123193906298186717902059653313927373347266289535374258674464018066353031854544419114860588492210988452822267627356913522218510896116454156528870955380592263295033772217089844013766569019731447554926090908935122409594871600217506555063277077718300056945960424068957715397815250201031389374042212333876234939239695157633142831397178086181078837666208823142861961514770053519037933588691697406896932554675353104184193023814759215893667117766461798044385160791553481606566224145865064238768382432427430647077514599097939482379366888142260922923857812975848753335921130818493226715407995097570498274547173356624578353768301968037754745571757451351344891418006868797019145014505637298313226639596352420782608232723313439697425312323749259943252036671775695609911161551882997201258674700292841614899778197194732674939596496164346505279707711680626835819110502530969064741433917262513214403778912703832495935043966533910220024329632302179691140658004826671059697090843573032569287585997742526287861711022603577540645463915040011941240991722762030994971216529990517227689558674569014482248372789295179928590794225580722070296958884672144147185948127147673134833824910492002267372338869361573791665460537296579649676941021541833741244374334618211258804579945248990283224586296197494020003979968566658125936997052433728530280165092984321816125945955538914210284881516025648846270146642335011739971852444542977636070753818451881065259798393944457473903869726573383722093860682675269044997239882560597424894768851889704003438198491862719388877939882559922014115288270993944991682439450465168259000832643689678688491864063156760693383853519951726238316009910100034313691050571053855128753444938614285931341556116540508053023608904920597892536752404422845852281107378976260813807103734859780742444243005274910585914975081681801668739661580224494846204518153444476628052119643846759453438333429366738032122503809699510637925682750961185202298676860623405385280344558824410606523743910346777972036695980764087306018525266285490958239169711772329231736054287033910572598639098751664661700694599751639084552609797988994481865741044816972413883447830484281142078318503693148055365058557620136082591990760239001189520244125048760881865806226059141996715075074340049001688497659220771595127916050827029581875717413673681334091767648351095041414622339316499465641710083666174685512051946317388456351182247815924912883874019651073482142983412532531354973533585524005867093181615603413896765797040708272956120346105276765793067802478642750646877894511473670604246814519050028905070980701946873424599605125902641554232450371803359737770633613877413550950662501241955339805111540937325894227966703478863552641757971170170229736496146426266979720410184216973525354559043217542918096824320960510854233564870247348457032939416746875849398407395296245829484279574163769794561262747480603815617542936456205274302869022476353206946853351918919495976779167486469870502618050573289211926013472438298601858964032476633223683547087276894177698315990559586094795880604375221097889815906667931356858233432374960455136580691530127904672880807608525067414726172439649251709083244077147737841508600160805132603621867001188657436007945648059121457414973747330865490062286981780423999216832751403525682767838908263353488305960837139973944249597262847461276127278064409324056134755395865458117726185266350039468278514216652079585679631488633249951225344424111091593510187152616094290543675257187115559249829944860791349773257739879943907410010935864574633653045396839328254294952362315028688285652187117590658375981447493515966423358257982999598300571056313778855670896176854827383633856333453572252689932425310260299986154220706087373843654155736547992617163973075915463992459389653339239638799291849502969483156575518074152777614352458465532309268314103534695035767700636644936505742315925544668987503724557770064192592009628980056748520381900310810821450640926868861861700964502539103509327028059630745173611413476847690779509421179506342167699965023576689454286967630660367749798131765013650186856990160109740512997179089651203728457332700077402617321443180903459478099843510788363047086181977786331783632149676420605471022208279903609597582915444940118046266451909129401331832664223703161042177436610438532992446317602577538271099014270566781282954252637964821318674498843312888944805529928906843884970983928567044286569735109084422831725295130204730229296768471732450001680748878810124240791522570994948037957442031541143745273819394471183451802669869988371241519468909052945089396601794076324856396828131591022738426916087192981965839051421737702280029557153256868172497343607178227773667205226412737354546583736525435232891205273429077399843530237076716225369469120600261799103998316809980714718100340768210608479294571443347592784415603082225872798064229430410890550014354243136157716744143726057940595272110121047261792176867668785587370419859901395441071251350927629188740404223634772640972146677947305312279669695811611310243938642236222737447576664306929321047541592283518118620101767695594295413176453712137049474529158876870963266746424143922871242511519023019627037229798280599782704552307979751781736470459537294702315961898915099098340261073852811113045729691005518542969934595715078926967278269824676005821399579313179560194473838900482905246593337257258521435774897713627796204208084226724475899288115561338500614194379246723606710902750749350298030224800890276892148697487616841918402259969533533072061299796260393076423337856044146419667052408856381023440726324941942995080541791286094503372540513049045114782753759411082096189312392321396102919828749071940152512998699697828318535066496734417569990341956477716782629898878339133847257007190395994997889108080671474951000946982340785952588059344076197940253780735626826191818744394956697882590006923159409106626706614481482472240437640344741007629721771153811881437464258530242873607065198437692217547161099423239259739284671560871717647167254565762918416865097979395892634273151968324584375871462623158606788958454656597054212023418740803906453291204363816098208108239359925197872549961537481559399795762306669142953293312162726439440628851900672371077230156600744457299830747821162949602419879683618475046290675451867276604461124266230997472340422493801188746533163946793183448100898309146860046737773245330355753715719821696967174050572239195884053875391028438498084486464099813151829498906985149512120179795329476635142701680916932849499006033100352671213756483438178600482832505239472762711149026986858408436853771114014780172815564051243010102903964047692697406225375942255153586174635747423000597026390135901394036291991857705282196325633223639238722424377902402781449907932853523001658094070360498276129276403677844974347132352562722674975589882677988370256766156275277265377046464672598779975301282376336711425110603415014451779520551853990920328122346919424791135471549275015664318062050746132280528140132957010087361494717503952214239196164353967778299661434639378192582548041717407823873782125279167770506921618755002210647017182386278803852144084401067340888486477989762953830918916313015530729452075461499475761470720604966242310936192790397604144640210932925092322417902512121963075003712003156206554793308361178064608883662370742434480952405889796452724970187468039309033675493091669596426723971802704723982795831020589163761162715408316143943343297896468602953439701406218768438890545291532215328470112278747415416489963684742345643271762644118368375926231321471203537380938182388155175558398498286572691882134850276201393784636910224982185782056574500271177264125442207529876672003427896441398513764144502818416402873011582676516487397922623029285463460374693831238128802759596376991490772688234152398801330228147919120135026042917109268356903066501365713556339942526340604956395569223981511861204471727533603817388981088878465819780488068157948264458689286311669625031111911343138664476407051095617199744080214016340200710292426764262768076011023530335877951944320085472770025868229110960441626079856091760080859426326474146237113458727588355530792944501854457705850540365839944308221283720306650132863976536922203466182283329403817564788257451455264537303694093448620554158456768521522560026067370177871014749033577032341396084938247061132297942475601087065799113894310233363970126814434324465745498985197824113048330684395465201070735066614714844149090672526092064737434276095185019027637072296963380113939083339181028053960858502970853838729761635762626071410906422816450353480978003308179117786712301787748428176655783522657078230534877096515214940318346794246753402906295752076259114646963935322489092131234496727772084759037669843351504003174911615683545112754033254298539675664842035173828532088282921257538933019126843906521453251681656597687122371553466377954543978251906840119899532151432014322439643793686090849996126150807971885687487162447472397966606596286026028519265491056549280968294988668121343026342911816096551413959497317119629190896540397493557748468142059561920594648038258279812549171169786568674541015730254732951040453358908140866528154756745896429393243993350657812973912318790837378534002061464054313228595792782683366472622492387405898366469264462748314609953555265545715324555660520569372998960214981284601869191967456920789011327132768024264378399708005615033999051391630025584245509864848399151606183399153342478040983502026780657959672929848539373197714978112792491238755001968891148896738574892932493888778576728017553861062173001938770918729183978654344537457800980960934701795829929652596887655323840041537221576016111264093896483589238613486177957461093510018172979346756436227115065027257960773268866935023580554194922402585206081868122804964831759082964733700017058850190043370600375044310491392852451370407735483365279038089858955665340135881554264196428888988287233315897412496179098529163329732000343981736924404853496101200674486504498783844776665333784107171466036946545496856100455457623634440354608150547012837890740192221504129265425059032875472163607475268548388790842160693780889832918762634945721839440303954255896100297667283246727064245601872031309307123136458949958933381752389151900055923840520151418293929362102900217715601320268789119172072110314684032296196221084018314491893993724840188953173830631054862349404278649028165614025372314212497125877329203002349520157790899002794989140798282539034062531768864182683991717139136630569690961002930863972504552723076942100000675760367819949105700088813781019846642775915189398271512548336409893891834234360041146509323589962239113428581995060396580822309919081974680427389175899617442286516419437891611958087978686087773696872680419071699829588066464477282616159587964474057236075042149511634466771334672979919885039661835911564517657087070433420934856162029672373584148699936913831861429970239517584053049462802495537603365386792424543269476268009322128296906171991052379096597192964373145838647006203970898088111857244735589032185635124128569080228492602459883046622539081120347964738556788405201207609751235906925506868443648481746011773626954291679286239601424911317554922152611170467860850466080663833172730274657158016882234048363475128609572109504912826946654170155518111963018055515410837469132691750284517324946195574774013405037040177723101715196000972186550124995229985834374304758004154837999574596058301488997031280884881409887487148955721860497603227009437939604332539120347210429784451370320413565769904117960834060203638466772117190848534933340768645741505574048730196723799206678133842725169867505923328142746619790086189490293024571174536355000785093482639645594954782897934243231150747132681871081130758300576665210164121591987670176465542705848722298962227191806996155548721103519366467371415324303732498795920285245641717122303665337715660872829583304074610078069102386130121204093978221239265032554462409506495213115127503193674888706440561340968601421903261231834018617072300488629404033717891290169695000663838012583615033305749947081777778958321520400285039097807762843200288188867986395483704861467927348664829437728176562756231774070899232136185749701018245498194869715266449024027597347683125528626687244515093183797365354840067297849729233159933228324825785531006939947291067196923465188267965214157853184467555387740778250168905248119987835029608863117782446117630275474802154621641926588445687179356146408278252015161146713496762900162920881092398194424373062617837742769343757481446811670616143808735682194322065677286463358052604323060559824736262363009595083373453735112444101347417636801939779899931453459602499179151855819662831906132091941626213374277510075577612410579677927034979770913507828167452974869278025697256504369202406748375732164485065116656737578151067326124251187099503498288094132978435078475924252857972341784463250421371999255375843567916110317279113459032724722214250699938934933615821256305193908972844733796170315930524541406158300286143311711913632147831205729361591939201083144146224545509582527110926392297943688492771731270550683615301284287137349131338803247958325306547700349788919678826909730870030113410987915716081377977795113499316965853004746657071196702429299719192672906525038689014512124201353311881248219548708781195508100298834884056828300989493654865048412102047230153441772164713407339026727389067488470515651362045111044112156618252303094178853357328045958976637961559645636179046951005155122223510318635179319169616308003075304240897096230602948962747447576365174230510786742541323869530682692672262343348775170827523884221827060576717003728651022129426461536110247932246969593049589289608082251673589826979832125883338190520912373689178778503025088918493541910258829060553665906790148484382101830751528726116031197558684523845455400904428675199383634078205422818332846977108010514185515077308237439828592877366440089845428178742264626742014435401161876540875393397031600457086590706723453319629949536372881632402022962247479115141735964224762790675067896364928805379971032572446879896684585143052851157839080286075556882058970376798057649952060994598853575875185824157105829137615279122895320330760475283163826689257308803341554005745570384688258489603995065474824703309736267227650522093358503407449619251467512701013168563768218306977181947512082740123739061971819556671145674313736450736340244369092371232424126157070239358089262445156571173142750614589657985057738975096747364516797208741678487120508501785850914919913986158391492904076707968569311248334149411122258198011509989292465705467255153336719099904034879721347881810011495218926233575716281641905709065342569396466478694104607974010761856761516403427474547562829733244310640502217962233064119272988547963171250145360481383212264580171009086408553052484371143215893221485058165677843249412839062018384866512747145848714366589540610277863209004532931026123490583413632157058800411955786329245547404605357568502106957613296605825417387364577154034066004777220037518373043607182136060900644528992842661430387911512311877462121928541660560648068709031180317925818926860804195045546324686275150904816755912485277520051346935862119325655517479012099070766549669989752571838475909869194783064698179197255347057614469243531638737040730486010488367466539738673641799225338707080096289212234864751282436773469870892910170661008344364462371344069404130142247657929521282327916018127270256665178756754736837957654130887362113320076663089510761909595344621810099539335636322881623280917313290911480574767482062571329727953156744424015624772024459225115116313141570585694163393426131026125252545716637621328094817779117378371028745757015070882308848856294368652824068554056197460398448786341911176939244049437790334612790233898060699611107141643360056178484941196590674394098619612347548232008424699069733527520088174246499563738137660838697472586661138957626011710128738497849410302575624468745471371259578795022674720601312827109430998585590146134656300062064532111705888379455829536420856129319358355158684764640973460117458591413541457951717966688489157742510157730672759485663680326338185893793488490694876287974385194649932362412405328778285273728814096914603881687346792510040842902084427967951186114621301265686924150250945151663378485089910138342090819108602795085726013195932411315820095935407686965846691686239512576842951821636486271163370740539967941445237407692395100398165621236775092979495559269819131512948341609679330269475237102543610811735519569214241975785814402814447418258790084062670963503394660250519618394352623704395298322623388084925676376941653821709981223597015066201720460611753319544068930708614251793002832898253227674624978941103025909005885344962630614202222354041003250616480623702139588778873605675339254760845811171146929401208321803359331765664079057301934387196018936446859491284786609062432851208642408869298499216781350933963127624523016433719770513695976873574081900269558152312450136162473861823522460902160254057070327788907527557020594934413097543126765897132332573312592093214155281881043029208911920340637145974525137318537521808104743675459380277311964144544458324729153597021764601926840263003085352232988056701555640112164946305219037111354635019153777095644459013414506395856119604932597993197617437448413080241306194265237005155683996242969120032826609743118124865449267816703804733304622433479520835515640361734063653238209018914562293409316815024364593386714310543925246181349924334904464921204492874366020780908775835908666484787625497854611135969834442594074984508447199778715395227180391867304210162192962324471363916193766919602206524927877788813672342042830687125689654769558742448156908882741792490305734648656840504829920896537974704280117904171212795771515086467114654465175742880093891063662433898481357516731342981141735651425572901797448428108945611402545773151376974736369636404487178720912236070202199426193853219920554580274869531977279353874059824249363843289991772229884214172551986876945495312172140353955961691017906380467647861506096483971015493860390922909671116933605444891933741118542793480184155699376352272893088537885471377052334043365674482887960431074468178307832807692185386845239647295428716355142284201255065958605437631860410877959823925472283288654581973737544680465983439086196598204163774683108305449845384596619099244116590721470266817101492062179677515228850068487104136936058588517693806002667235599553754516601674215496722869942802521789915338775851065992397787807414808535089812526036296489201932762967146718454420733157920767116361812088731005111677516386374893314274456024740844290547980073862350141127167779106667832243345720034470648382616731146471348644925979268795860675531779917503287778540163892209610553638176865014237957705393176645393904837673590474892369230906587924042539877630888214722569841251164608842479336047491946929114615465348839355271496503732658096255572448854269261057941039403353867127560373841805391046490355086493342116336365985742229966583242951936432622592525002032839356811988893419455267203310728267344561182244774121831466763906062536987842106726125046407701458849815481536792567657220602018477224970255491771996534630650242608391811448288971857913785192474502095634040568325200109777086394655735558985413635988563448613779203593790529298378395442273194061616527899678441494335326243433194146715668928667367460288924710238565134331706843646445753950951208530471139142295836824223418914985992127085534507174852762993949486967979903397940407393681525201841471994495760274189227028662032490296217400881997868431337262737558798769828075697252991719056588903722674240802367138239140960104529759826875300233883833537453965528139023099855665794732218373867795527657575557547080283398437952522370484313080951217126351402717148101716894642328523147154866971870128991263858270005783399018121725977970410734640414791755681778089928737326738170629807531596558609840608397504071430944866738141608759606050856506410502557239208360964782367233931127687827601606638999762253311577530811886769085180271669321503453634704498607511214742004403041212526370294407946389999601891842334031494996845761366698334629585541849181659770088171836338255471071709912320158160015089992621729472164311957693887991473251060915114488658557148954014450607149614494757255715205051748665331154014071524060637715132453336981926412077601051303816287114769110753675646367934995418939066266231914142687484471159833896769293974319039528044139587748868314382539510439346829577869015950776715108266011869101843143595475118935571335913933176778496339781949447221537348108776047792160416142788190466769202709179706617058541394640787090211548790287736266639147903101236572706140516647832846705224087301399208992174630953755362309796201392778513696328340281541834495888606437928341670226689579118235229999619863930393723398165428147446910531988601052694051578753265604633203002236713672982986247823305484644293166136483161535435593964721295085693392441572008251209111303306978006936412623765416913688555968403833266318249589903542719438354741014118194520972481441357230842133374182888458846310604481520637434454974090744226966679986857975437089216138814759308809825504959231890341379654409274794707216903491239259278370923319622871251798927004319704675578292201318435673477851091626222372226485660840188457035201730926375906893950288571633413099282871474601574327501409862304844221527915244847958597826528962832081482836855465758153420897852521806065131625153905050981350322275827678865683558021702212462676200314879688803651053676440271289783931080227508256042704824840190741609527077539591749657134566901572168839469704519011869746752335860370216467302120107489838365882224432254494106266230125821909451091564322910938164512821701295473596924736654495752420334091176668866709665866386999142837970664722661166676934488691832519048211053939631061828248222828059223639854486504585987436544241835256189492708887689393928882145359954865393403162644976137902728725257728172779107135584773319493786502284154615710115780174511513693321717820282919983501227923728712492675647563275557011912010824100113252856387132051110138043074843668722722006677734184463273779189542324041308096995113424761927110737438412512229615093163062570423606026917532347232150469534930387170175866969592463456803949038990678715070655530714409272562794934287385573881798895154532406653436424900441947107044832064015831312993791076018222477385312809863963671142609807544870442613588156370720729298007585119332138733591171782414404862457357120476895092542736014857862052155092374091307324411255511535098260188523385094040784009932608217227213839012177334596170076735820425050157272699723210525708617512286588492418674367361111948347377188199874523727768390518296307823156696555084108206469862239229526956642724842146691151590602283530597556162929819736038068815321560319334237500287598530722005094079597001671790955517475524846645011117956128519827185684713326087907863107312536945379425487563097286533003108441043831972448583205090760107769478290490354464980904048295663499496033970171081094920716124135698758171155760188638277773106421721575948709922263715670202743980373791868874496984449315206334155553892205574669755094092193234075281901943214801390511910640969506878681301871503126497823695512421629951517733094122553471766439813237794676134395006718160089648108099405651921246466970979905967767050199423973065591833279614211773255175457196818192059498752830789496903451030821735453685814848487552547399593973566490673224440110706474374055034416502345742163010209523265419894202706011926924622488406485583518364929659630042316006366418614908240683390729336527409231925617952727507691878766515667803397931840343707767443132174155420559858235585250799163455225178179049183236166423182839565047913748801683372301244814782213848230805705037452299520649488498960657961234539822982822839863552917040651876946493269482060870271482873431396632191897782977420745976218445313001667492799879683307724416716257363871337528043111976417301299443857529618688571453261368635028517355763080766335947597358506609046257798254816334645445707653976587831909962629721918828516149654164083636989846929484970642264725495847179335065729539804849107710215254845572480611303983975852905269875876485210316600953115062023353871256047682609471502847276589522352435146486370927077666256832868800614333220576076294662191357301650358616422181764662408006383939161994183653232154674584347164880384672722562064892946835214033054239012165691922950099593817073735854695534330589623021776608483777561064782661822686778772221425972719164027376060318261914364096267533870888178104684777799663917613789203221883120212651978880233932101870724056283098561685078997882747123700994182574132531325746802914749257144145694091447564238531921904018542544168726747196737496116490646750683274593727915261570297694357442527411538100442461861201639396386006295259109317300048255096478848712436662936941657419444681948210834535668776009582124678339899657456139204763929293438364613329711495892511151345342846514427541265267207849423351338186896126036247753026312109256405579613508848018765044596576809217975677265005074408169237882958967379784068547055978255187155015139759063166964312516684160139170511787023550126393228816952342428767096978664537298412953852728928691783197625548619521036824133730358332508163530511962412521204328111614872490521217402767171643820801842519045593328350717648766881506867526542995593408175477533966886044820231860997995250823545361640153892583046615505941303795135819677025874166486335493235333783590116975053777123746963748335567793130075584916239746534698683640286023292464863964452166898089489236110702187655493225811724389594765872789608182192967062206393326641085881796193547886272903686389772297167817869649470611485434689172558932888962543180124553678799336721681018143466321357679834863677879127661268623132395310713167438261927436342873912790439003818058410480452349574534187054147009331895855599958036061125302940846524245750592118020986287038106619622341953620819173409858746744708120630461076723584462524297881674280871141727230894982334288030454780565192278239833447679688636559485293555392931443117421470559116854299094876471540048027574282979972726843160427286411896790157025715636409750382254745445111658131005379229636929373236982899182817465076618402677820585427797707047616253542073529045303811957051169069994854332004224644452140997767752012241460753093144798116180527219859721472175943072957404342964453195309512452048220682305728079704145977164246456083538515741578852433422934554043110640213408544033160442897556949421347288882860062340157893493477368831239364868545321064881212988180168088699013339754764841431528937254518669063985470701327050617543523284452853196900138145675127641545665144636580103266289072345500654775232411342786371863589381810802511533279139337028082215029803111329277945482214490566824545785378957764503344780364411762069769477462788152656378684923328042443727491885854511459344391366719777829935284588677430659880245471496268237491990398058321111367149080002529173748362616666382333213277144659620774655929397413601794715599125980621547731469810714138369280420935334167335994405872433478550848597845116352993412466634067875499626198315127914409221237003907568724092615125568608945650167535797371435437763733133567753664881724164492805866582791371361252025567171676738323513842735393955348771982819004681094454075115532676439501218891649133812790167029058628534061008688009913881315124426859943830205019928167800079378372138711448513586028838477854707880180026653887381866230656051777828474903240050340415572440635478614170600070492141650855398018252664805188132658184974477285014698696236104271687199490807129269547297231577301744847034592447182728977482670974126095002154204319214270217373635406380178784347331780867337072182111016057924052576217805505941663880337099293058330179736515457765850668761328209874463494542791917326295045896307495184980286535968027898559774936741135817892872352943975389189929816346716454272758877117332688950262584919980657904761943966933267326873102609686233028105801428565123630571442014493820520463370442653272263842727631570044000748334398450907303084422077531359050088999776400181866730223155146060045482151563537172820579894306552889323321954142223523375334241425532112059157295853377382221450795247702077821914433179106409843363201363124155499161061358447688310075597086235448002426576765833261845801464926887672802708772895208084466464147280781383032985175147695022239570417794706653468538079596725316238637443187047383086782730351692243975714869658702272068522797330899268659836299725972296110128782800689012083040857825903196442356248443234597324838015817219930394150502440848236009054256871018905740659215774959751251863495681587704754755311922189839122135343892932854290655934081184809757899469834527692428062160337408850792739054343235800615159590178381304103140429152790605920943758065678735877139870576469686008645205422447838830835675668664985110506757516450161893764646609803454618229024049506474554087635501786621809899064523733695649992040458859393888002102291129800537677120497509466283770386162069489282594827578304188821749145810120327296678334929078835405367236277228850660376677158014105107602020026073205905473218341070856876005336854592533317263024409222015468680861578131393039576810548954931989056298119186506611532490196308820944877454908839429415059947269095221361787745232701678454220978475985278916689778868291375123009503025287017658119796997757922570846842724998997034700241410263110024815988382890887459030142625415068879998425629503824517383611225930793272318110291124041321881048332545632952698970890126064989433526753722383351454182574704969456204480649937513683709702458808911683119611385142141605016760145806593657473345644357600610121334986147710710893202464905705484642524405300981083574141322210655839455467692200899439963252514117657457929407414700407921005753696986910538438294342074836678769045883298852728876376837444713612294563054987049893281916784345680306671977957006092207393779090320961823039660743818442430308114589078970180650952284879083666036564831609603650027902344387274871845567268177725367124258462102928356426885691370273396010622304748493542251285353460149824831544399912978559698724428316027427726607785596588734402328656748867132608754013530139777272715469154044989488531209231760756320312747697868805850376963845511935417589352993366185054007147273898741361594803355319338514916866854036274391076231547779732559146874033661078074873117098721114424747689929384765148516456765784780485710727454530800380252197954694091094272561510958114591744392266538881414451620317609138566574059652978202328968744951127510876460309306295504822366903218382986751133189008392204656032469644252640253692710705449565905210783857692585789995865575016469254607594337878943887092931588107221107258743836525107888812467764139692093120044929145407758602850181758531718692662868254199088266686858383143962941040704822815347165907325687659258990162960118347746830252763226060238738375683075013504041745959981536008687459913517446359094623350414660693937184291886266768102094918284403304095939456253494182472547246264942900238451741275557889501031312548122948678350009401264121207907500468250862810689405060850378381906497686558615243350951646983588036450249472734242352483873509751993782729681054093029093440891841286530381661169251122512749199026492390262317946739733263254565321697271947234846075290370342598746351968926547755995091448987479008611054283340951632665228594617635899179293976880347508556545517122720431048845043885730388646606855200698256793600035070533999178260223800901950268862697180374683397119348143245949032156459520851904000446214034115641530658601523161285028611291779412981448714789954494043513791803986597728752407171418238654668752305230522297992010639928444368967526074861394774570132272977775956333159965702037201257992784007701304965726907562624897488462160035227653896061201087587826668547644974949482537638274249720334963509946792792867049229330047836259954538042379629977475615971495113604776984458165528056706338171295322332975524609135156539953434147678622499964495501787176024558361147920053080578869293679897734438196116961017657369492398619137289623561544128257532817338171893653650931468572041366356889875291017569254028751691545339819559106305347984277704883854577385940459793302186343031381190241236837718554105290414049528671476299967690797908075229712621169461640659466976026030662044816475645356843867877315967979179287244881296488611187663588598219536815424906491166130264281933177382197150242107846642208202567187752215834345731655812323541173004271700823922342255623176593378634141651897278536406817868540695397237723529223742435028342048811827716113800540404605313148432288017647838015607373497852161234392386660610526893518531926579986040995069202803643310793674530374105398913619953915484994442854521036087930737042754955119053452352630321032456746765090108209203326433958965705550276587482593858066113474602200584585098915450512109353614825070431735580757476953590270014190130590546639326130456561777123304108020051416294973735604700030232226360921391151207266827403743114196556869849830784029650106181534658872063992991914274039738669533650969291026181387509857404525806073458887635993411743959438042442087581076265587648993817716717293176842798050509454602637552627023187230048482481557155814328458417795429633119727157151899404875040860814171342802756167578685459233839240324479165434206398146346636633012184732899441896876886121027880140987387675200905996480594899346515446366324948447139064966335504295706894141780626268350623546485047328921178986203796249593644001296172971121263064748475115336171593854653783333178987974107378984560794797195275003978330986760393810574258305938137464146347053137966752588271879801793084808821029772120644990466369800809301599280958976634258926888927638114038052780266215097581012249273953464710918442546519240814539980617613577367842839661152696269782624492372737988384039543027717679909933321385541081327612326094332172678611859180616858304946499975925841714690024649345477222147109623922050511691157539265626072347036388081156487012298889880209095695410458536562861281546275190643753711250078618230041494309741388750844497429550393052710265202181407182584623551976440601248883551468191550659103310190774870817446273258385738620332059269946724605673138118464522623012424294517016949699092949283202882197374255826398276129868750794926719322563557609043947208130500773319222253277384423430989045236009847862719825762340728402739591961748980581955780208292849820814308073830403487326391382076571240208293140273963397269114268509095108227674402158498724571476823871328684102050338363930426750678775790129603718553800151105143770139094914257664636768662377139353245308431376017549709593434941838278918343628995892282078167728172817126308547965078054660865882120686616788638478918941655676218310026592195349583968396205422837996412189617775294984264170184668759720379603738201792997932872514365666550269061128926045949369424353847023888613551831053411604827001246311890713850840930116927168778026834658805429528748844760192305584260074048432018571831294643559198401101224919442767148949109735198304450508033978384979510064009561450007725097776767524967402124971893918983174085175635868296278000768075430509120943234684637383342810353847445259830852807103852627048098529812562360918407465762662733152716975316502158780913380409399904274576754391575746314843571983113591866885328938519191920872405699854978342054001536500773054658185083576897101356243731530922897792879167855650700426137339265993750351324814732336969716126585388263326454198008688912700772165466003120208762532884014190536435364705660370726522551853487119444837173503002396917165892182392036381837944285523140571337919180897401441359738313299265080174006225225796449691852542162506008637054911120552655094749587817975216271427990263695693605034097267012030388532460820718652270494972233555068929748259408337416560304374155061442236900867097874252581950552655083022019203991516081493393357082707399109242143917987729124849530358179412393704160724492276478018622356541619149800410924466869868153455132524732244340548177884925506423807147516972572321733904127973031896688911407484588852665832225187294858237731733802567202834017275417513786804432767802322109491166648354627246945040165957864211267525857117599550963772195187991047503639948952794609743456286736894249149274665957394329418331386880812693207879468548270006490789040086489075572119046845709091527031012493712951013394573180237367280809674813239014031536014380544811961658888770537843318877721412549943149828892111126194867404581553781064871671747020512034816863808936206660303518278209123040860155133058613509344818984178394348991296500375891235782848895628531316449907798502740609990437693583577744711809150365986212130598532420900464854601503838395494722020914439440284863089452996530961604959284063856424495616479601630436295370502222721758598088708924090013558526302052216925110639369356983783920758608441119705304703495802387888972138236724811487185842034023936342233234285089193894042084474363340326433562384735591118359337948264534189347386849322911129654078737951824090752270105566148054018572246396275855609422811080066256682997315965979369988383260783408570294453882778363307147241046016355808958905467051661643424696222402049392873072520446730380574828001743835383486476998288758341156666938189894166591741294129080419958310761132897839536524929240957343217293298355293595483592047152393497195050113965103343164278329621166334516191860870921485454197607310012654689055623378994922374648192017373926137311175655800147890116912302267438046629047442277510119238577513586192647720394935189731047239375908140223375445009094347526176353063827808114224311005242583306091934339954081941711958775076288063986372127849304725605173819911176586170323237020424600909987745009565478586193752826468316120855277602421187646421014542789074278204554772018776989122672602782187046229209760827759466497446780308164130659370217171942274289872604775356627547178492676190353144015163365749216259193399126340931252114819614766554290906808488542752172586960006233306404791105944958650077107265184621972225582140600840079378937500102436550672066710029642619641381497377432967112593206940745263570214609335359131852011116399001166131651977534270914536724942562984241456673395054521147386066806709452413294910385561244842860283857597469529229086722112572827027852747603209482847984294342207810269569061729532274488488928241705306879570527167848523514600946650632555283448820189938952035326377219861122123612158230219183121132818366141176820221848045524247161574961037274217607642143770424445123430424382046042287249100794403028478669687860329889014537580666018286738303164308019661472519069805073990747677853281024242669353435313182386040699992066732355463576823428936027588588038661957269435712908923405272896877976651166304208035629466679090870189210778320247268997463446782037981866057790288530644169660490459799482063120022320740551520291657325779044586782859837497643592732881427410140097998871181870011918428853101050887952233768072962474138826318372766845749040397411603286591624055970893734553280098267554967235303419806793700701612860421948371979026332869849584566103544135374948117093947212237109388988752507233293616253432661017683271034625839927474332435105136182039877795181376394548141747871621611485515744605012963709098950844231365662023583520772769696826781992455219528801014335470232676602341278849112319685629879855061594744007055990525529647204494938153250330453130674858338733489263109172923897603383455573404979516062423701290060068596204267471273399153814684203127980811527964723148743105695696916635239976665349542353914374064440405878950997883016280519937206927216269238977960034008876476593417635345223649610818449557969764494984003265701575556008228911512665503202235664140351323533355986133816598516891401975894631672005031005257096011383652884879846114493827689610648739241341192130542951693237002003169158916403242052638955554647822181660820565642435175324954346699310646454912151825831547739988217418696560257984869772629257973955810505825639352653697608001323754292469125881168313123613177830861645245344625562702146779710179788633656174624070027824764267612555132575086571792868397160051949995899285857952071914118337150579748380359871487296618512491273656325125941493412391479779918577154588263222865925572021416388888835582710132175026967227041420430489031076773790350614308545432795038751985670425443953764847989118449098125977524061454291310441123944512364959137466770462420338760551664261588046099292020023616941306445172753504207529185510617551587709309275396629575481343059674518541129251996127421271261196514322506902688943038291660552311573624440557305670342903277533831721285663479849174910343509914908193389269409828932602619399681548329631623403387555861312153433646208436401756320410311653340705654015321542045291105683280930581939121543390572003903292042432051544292590124922341364168509115505908952955691203467677298635476859690454565202574039582900721647483602579735874366538941898357131481926343124672873200535909489611654810253393834138194069551586438966686457641101883094168503684849749090974115749061098180464663801141459524848374791820473856421049161119039454922084965407400842354991247053500574759038359182288869854704373717868901310187953455767644459346721837896992772128345140506815570472828425446427762472849400452477013586080379100040663744212426011359838535168719132174330032716659007187619655553195790176616038345259606643566527860237629925364491780799870488130620957239935320737185941230879951838612672434653313111674154947533054726274253566640778738433527422244136484790577820460753229826181206552544538475328093591601951721118528994387099867385246821487653966346505964975512447858117113071566023239103318520864992895954611455709592741878218595751579257780828024862792450743268675052550869147131741794753307463732391773992509895638416681644476680871973653454146197386407401601131989074244041341222721064198120337810252184588393963719723637715220966079271024950376742092002101720681717725994605636261681544977072489973198934027796392067279733969458107269690309026278211316547200172640608074712349811053951054430128692508099587233944152093047651051316488205625954944559205902907757906680617972190232076299543597516888814216775197081469889932284204714286980345507293941626813726422262829068363871273451128518799479534797323476856585865448253703079244313486533670707679353917804663827481932308901699172887863550420053107581322384538849710339322226528356254195071451182813267358284337558345711852050502225503249536112317887195575946016116699265847854267460623367724722321694974954801833840925042551612192413279663699148406475128456105882144282519884393107318393924081352530881363172048883495881837997107911111926262542807112396758511185200242789134727163399680289948105697938411031880188402560981677630607234646566518723275671530836895045703416213815494564041159633409705683650094450717716025763037705369824831316850629601182826906496830380117077647224752152048388887864710951065652797672065184655779680844750497757191263862393614294001975441351197136116526446679803322607893415307922589804255610564665408932648751132475930724352492096913392198175782747272901641998146019744174314051739466677500817241044821005785159584827329578308330280051718197488979711877094728465362975654821546156119538801007981771993207864832717049812670022167640219081911988928328890919316883285969223454304444329568431327861004747518284392811567617761867839214135029796044707305412600750468956065964634241472191506657250608914624567228009169530860507991572475371466244653712316789103113215405257274134078423134453270012852230489691358676922677231152292538535578436669184698661255796763095235073524255597844584137244874922048882949968911747510520444725234568887122182196892276012471298603662148546568238457049777147697165752707161985043135905234827330484022107338922945004912128027815060531273344300799927365792631350153962548910778526519171794551631655591183735869115532197731365012720063244203467054044772034990294320691148769022094597381268066043063589249314169661789442612102715235179634056530233678330171348481733299281485587755500789598181631892929128427679161205480968021593462354036519435154035214281452502602817832682121455079093080000864685482118085915962473586521568659087421051070923761375631787124795050113767777769968183885046853750251411906002565829130803327867127586157437592366667985464475626425411317040232211136792737103133471908007025129032433825432135860807297622862648070575985102131671164871804079080256239276562813485671665043988409478460644733883694671443128284812383319977336333128395374058000042773399607408299005381074031523447243901780960032897421990886411869258150499172476862844102637033550112641353136310335120579695303277000055493537102793476195345410711828025840762470971238588734617932753567835672345945120426961471516316469815217780727191727341417405849362672774492057330674835149786600526096538442167723764208555994277711725864368375836979194808680787370416899369003073507736100626682987720926917306396244649762353293459832988425216230740993437898263472038205848985317796503116296456807144120340285580037111705940545213533305776969555593672523766089984085307117515078412562416417500624522831893018081370673586553433985624714122431932803103896808237448612300061190872232567572276268720982066656887275693121396966598995834519506733874662704647943196628882160556725947577933059061091338951901979704417240436832848672689394753534925354178332129939750997862217516025278311082558951554054625256121117472624524515795399868195091718283344340964446781543831363824836152092624331140310257714181804588453799563052138531032981519009830598890179790057112424361164178558050147671919747599399397534652949909279564509457620592014117090372406893936351321134112736071945984432345227847852921702629816263744758756297245147157076183636299633081450066516405486026115840780778606817256621566102718961173813927479573842223009934833403805415393106794128894736488411185265928739162328048294101257466115809553226575917368532399250625846585680078096871081467226187806639499897425361007491141159479675906928537937867980561123902849339415941794914890345752196407893818320352026885505016526059568230738872454824738966714825195928296019675924331257864468196472693824649883807749579628157175844686064757651815469196047244322738658798856206705581839419396748978025463998871219005551417376595486323764456660123709363903035365922518416148518688159403105244915446783060500922178947883665956377535399313213666536851818109708613992086303349751986640989395951863984078529553402454467556080791812326549114289024579354843985639999528241323942503577966882664252278686921943736057086963969995328978689886612961340097690087558653983908939052505904433768043146133748892155739869847928877427428844739546388126745770729610480933661449747382012432316974628096796739500152839504882374050348422076397326714619707035172232957606813073285377201265720281036081051480389488077774609082975786082587885830904498978210703748356939217145216217122594966576311667956010653613930410942334971964364840854036415205326596998381808385581474598371084837650629668861247436295006893415438526732672157489288903755115463071018494091240158937014748106382695909569865460491427347151118130442162237612991481704824051693635964255864405906601383276627109820924295496800827080618067569929655057563720332221380264154308810691074747265849030640935782838403272007355939724813918241543150729966620695320351399185123888063450825574159310574191999544804756119866372797315648697121967117837505898279874735526824861545224674449779891507167405656293031661434885598733496232987858773218466233010324920889659571455907242026326246360245232791396091244258502611390490418305196739336447571956647871003884421636012843030310186378933877927469787798015223357757593782263264796104747287688172257103707580477380159974594602854877891112305600475048295089105579800659078847312204595980981031240429969548218769226448455339601163340177095797236386028156441614391987108284621517047663861829300877968470845315595603118892317579699457385035940680115868828849967374768241732087580383425523055811189435687187795440253848922014996953401198595942927061604970564190138563060646612681829641210781239782063014510047874414726345930861254048551501186912594059090724398829624861090975151717976330826917447595461948045767968822145906048353871743320662708310697693471286899828527101829218176283609800818734997224206792687341142967471055081812641708613661133088209733307992862009729736784819875196391015557738116221935332228460320394052493948458814831504222219722545134629151369376121157971852258062151610551321683036777608505797912924993535709856536165642598139406243077960460656200133224937861960047851278441475977363912578083838112417252434646514533596184714633041836184603585817269689760123294386532489101744585413999175359763755264439131867860737731628512503620439000137127484594483470086838154717716594078496495259770496329286968638478439350828005890530208551691055999375861302833458321197305975574304663876156702769680077060448683175801362890896330069509516985102659539734152111382302733905738441367715340610786099324007417184139643215237944521951229179731215472974691922495625831203579971538648190476047414524689593882269956718018393772499528603131538863632119079824061761009357494538375734024624313308128194932827370102364079654105384471624331015285282346583430604781368094249340339615095368110853254525630578336633615721830262798481657794764479235322187806086915164514863314513959590266760338550543138484376323168972636031195360461601680144767359361925369482994264102850057349580947735700420537340689122773219908248796605806010174469592312810721121100172735250453418235321748779408902551799576372634911872841525499673716334320430253317894548797109730380956044351881634187992234197218887053021350873270287985811859911192393139666634358148807079153615365586218438743417976013187607620321203701835903664503126912292618016877007091430341868301853026798335557947759484085844220054836811745902618802377516456883436609648501816627858833232403689471004167019195115207333219402792990781052095432684819039334305293005542900588624153104798014066285757229857018164280891274794618373399149206476158733422045930738252755309104253985494979867852170372653856776155056249552451264533509469141215437356879889986559610296458753246561183462374659150608807995705750798405712670038892607187401496928318540889980770458987541804131066856184800575081759551937929160312779724528541150249205323415241329096047224408438952808827747552793866862378149858801793217657954865503307287948567672466942632522708762054631416129494269822653985518308329952540326675793835943048145461640424312473995962158939536651681920242625001648997092511227868293120636363226892155786368270863887531121558264900487183299259258945925445278529521239283494225583741837457582285304932812183270137446119574562146176989805276899776158785531383384470172451492443077425232819568485957514287190830402107641082365254355998315370258857947763139143983225522049295075181474081470876687037143774298266517773641119230129236614455189103869043327014256488809395740492827559728314759739776482883694090714174595720240869273597489139762478547118699569750369206438224273883176052538562722237472351912781162642490551821564144331336833066631286026235931476628943312312546803898838769174969703982532998434507097410280130816060588527130563503917867438971093979648676965061702307339473448980138246788074381620592361581700751366121766498942338927055046795241426775807032189745189194143127296169293266622509157980449233258595540383967517094200472100164647077747419953231719194474159223652834827524900340720342750729546856025473170805236811817332410773583780937667128080240131706226298922424696418102559068745109645132261732014961274125303748934959287981836449272593199472127683436290740972353657962052734300039166772672123547517099396869855590892322082421656757597403032719143997691677600402410159370207919604480664921382848814200729961145732724148474801002781924584592439876708471418667867361409809863523118503564921419001092261111927601842286406436935156697362472176820409427317938444959669932455285399676706555296190550263321514958328818301714178091620822973497088104227842350911996043709908561474100604494554194956937737422991197268228490992697015453409038085710954611566897138774859702990246147781869022846716174620382158862891521487684250325786167065449041571282599403128787819415739353108373342864677740991976700915457300234729523341031439966218622218384827064427529358111144160913292881670159868832755109171626262042604933934805728916695505423429265057176314517773908842621690129801617090399344813713205665319637257326896380181187108604263720234286878221479448522240339135012626912148346999177853998980892542499120730689548878840484120349230576092557376533010249433397331179742557605809762737115793309222942135411827842320656442841991416520017725508800123043803322306379567985337926382144043916731794220082077339353912683471195825323851162163861896400816823814705687740228231109075658350309028306028909739309725529226464068526937371363845910404572588278324499001162900587842450729839523654967036083581547841906886996879227778868715423481073971845316178914226420039999262917390470045899160022443516504167166328462461489039798291836858649402638294461412218821117597430601875491571481765244109026369806513041118100227292074118594292965671577157898767116399255527329992979432335439197522263331892335448558306795909948388532886562101052544621521928087263083291314402683933693427012198517508915477365264871400538494372545994514168573402001818289189551803951628274779312956095452250537009999653054116685447478706159867384057591267570133505881158397637967705346889833450401381923398119767506566097671088825830268740420108753224880832508396281600786844924489543027556136451813270034485949842644277978650896711175506705208715805979411163902916321712680098330252208371049154957172764386985842976647630505607935853360941425522581360492638726403128898054767846783494879719783311078297037248630100267291237671853318592716987022010079942988359674399500045682829091108985039482446374143281475763463364865578719586114711655233080008784604965528334804002096996211939514720457899744983211607993238261463391726865943177001186826057477171847529399760086839716332579086959670912484528893729407643391885438995077532947074632764142563080420143899670177422041007396781459578067946377775508508283641608699638751396631897996399646054775244841439223531636967246319999738396295861682687787281189576833187089092674260136099389778268990656991824649505624946191550843269993905421536359525068945053165045179797539921667261420851878895408934515572246133984102671172759796561689824757778105849061487733593311245936512599191958173356482253464862081153297521137528124085321734306670939830333114515144329235488394893211556621971626012998009683397757394430045799125625074876269790659144403128028454400876120736639036335388560364555182993075149538587846628245261637292483025627425130819100388867869591524580949627033939001014311703886758563417539105779313497994792692264899972012860853292122232839273841132552863607986290372299918763627407161365535102270694651253567995946088580742658104947600607859382338898567491063417594257796636775167221652093172507082429796855879847450778714077315958120181725103375251334912320746550000779610696259965202947981947389470079545593660799204957458077042022153276963914187883409931812396925600294757800754047924547900308706547930138311296838782631980036634300303924208546412371943326299390937944669638445800439145513415783382491204380780253431180401681676581831365519207519873590278125332300640489138365044406766979603494867421218697694467523631476986977578457327510191377333903764983614122157938217546163210538924964786615930100330333705853321097214294506511885200506183443827689864026658288128916594565354366774156394423376888144226066303223411930748806273148308417525354793946089267706258579134382149315973949404374443262023658808430876614233024225666392263600713422105266494013405576385604521072739353144298662476243894119425884217241065071754190811988777226138776325239010891055352951260763906506541500265984988853068468958187128468432374876372494891959341482142689290971213053065941790106644492464799706272290356647159407020348137850844991897724390833552575519201160969030268892898164546661930296665629347415899526951331896780574815645767550686068479141427603453699468942359287932901060127934446512684892584154705751411313171968642811927049960441830532688590006427154271423804521394617533266311566579968466809497412632916602514615647233673473184589577103020340677841973934786699947282947064919739329997229382595802941511520898315679896082032982551391708193841692740868942641043667577985810966624072172996078380447443882451869451644857659379524939007298666813077922806725165386657178316784199138476460994362397063362411848877129980525779731246973909932909658343218954067388672507779104445321891748493754893417565571948335932880968043095924280893549421455249599248706701796329992462656017943394855164596730901440852850723313562826452514995943803391615977232893396961545977165852225705612158904966092901443160679977558241158945732459338011088058464969663925786043878233646952219208772108998093460435183199209377238312345306436304309713671203937086403435591079865030019351932345069330134239801254321891634514255570918078033169644628260916486083130143466363550077505357825937677359970000158520058018533898932055368752545768240909487381715148209700006727257827898271110213035947577824620826338008584354265948255120983701835255867707226002178711974813712414766408145306211659025780548054925740690936204929888772868411509282032501090199586187101214874229347666307609114274648655072093285758748407774887430603407838063516701096446267848824840691267480611132662811177036189125502476084657989798483998712550816513454296232458963055099400425578556874250287943850055328412059669459253627813901416519426827244974213534518763676094304556209845619451300395595606944372659530583937410697555518988460410313058882667048623274334525722780494286065117687672708875456712864797541813824732899063524274975861379960227853857657845799599836509036330200125541365972011061631515421149361492960157075062818285816874536252295654028021726908623314940006120355154046783222471071544308062663510295385876802776892676507305633731154960793929933234099596599764412426161736634428509906758419069504565059729708934817502320506746226276167314930841305817995478452734994108101859470218656397531356956090182395736532518785284837695213361332545374555735239391434532671102978685979427260011119477189137474339506138082858081164036408522903443839832283534127367842832840252728661276804161465761509607489939209585536662774148977759278430269858362347350371981822044535432693654292952232328842711101265004400932541295874349612531110204177526764088734378661398086007802548050132637406387258588463998116550238928797576539003648048592962500701406118507289159627792103438015626703172457625989976311951045369034133556378095775523271592041384808890064283094167554944234506231285315287520659354697947521879186537268747936788669139385060522194253090282700592403876184462228656101545194793535237409964510079041144197364498850989116020572592026200917820358964200629836494008545477734670315179922648239631838007520851195829526088921709586361960899141718987694290853812848964451609091614602164628203752372197700978160872270104289549358601320188349167674133697245648954307533600463473946885117918648472753010889312038550683252121513429929445613419075464668380554925505760116224370051549207508569436019408486657754966445057411175166183637622130286363694372956420083519406468431362411437355352931798164701632039897987342296250053874921627234179608674502207734816737079597199172764856063388576697594729881277995763539411970791444297590534755236274919031195327801349741435239859351525358019932968089941589053313245385589398546773896177349920092056675105471542323231538357763286485718662767238949829397916209675582328399481553983360656630018884434922569935906477604425668221978505760990509618574472882828670396846657832386944735370636718705319599155952989355398736669095635809409388723084366368622594635487116508181930173060690800397947760260462611312042463501897536894557929146754018821460510819338697276526555502129323133190410725216874841636110048086870683784226282586579217425951635114121596786887308952166081990345951750513806090027793511168379772130914337036755973120351864900328712055582747923861597858369294160401181464079026882594950311847294923739894041022239469258020185639988109986880653826466332625376018588582301172332199106658954607903362236119223871586931143027704992658600922762998624947121710438568047851420212251281470700468569180871255635140120396223393869872576366634212457051246839868688910833493131964126782293045905085164834294050242167197168765769858256275700883426370508004276476720949715341590813411653668378144906565733355267112703142441358229477584811323721206552037209105859704365087991650573800598083419280527762529002893999268287246775873966507396062947784756671920714637809747398333330972454389436577717286158238058047218165239019853362123919752709670143113901303880481192570599799334264870930838183110814267052946844449192631156298252472688055312949430157580850461925588582151910933814304107540987815611007264960238471481736586576258575823626153030604770820418282460367546231585839203753332299237245567252900493624304641092231990141827246182961042460618311608648308093061106134059378124545714412313314379322860033391489972502477172600524381922093230114526702082759726467648483108621996686665569540547799044554124824414266305581866150154224030227967365388741032363294953161718768853147477631684627151306505898113947583276252123058666121303371284314591406319480255277002728527131354365857187664481616296217060207205233401504225725722590775841209036726320263640497805809476512826251745918304482108918168922729160061608977354105449634861668238140808509018271237120597686712386884968713463457367450216192393173410711285759915814087753559776048284240844637683231518656134533175983633644360366272625329315655991994306955443407460016726111211673346872053517351440725462440118435297711879159204771994978566186377392390390699371186363000087857877169655214203821616429160160204515677387936914829063194339682095139176641593265509544057388487859383477401181158711158022685671596724891688198642453604523693214259657290217586123145673147378808042482110862362785315223757068946121757024810770665047455025658055151931095489021450607476575862471803644022221196712379042518803991911688986421648730855326504848412119478119230275600118923997128014434858539818992981681069093382096479407196537276266918194406223844402673933968149932391283671921825240431628925104462148751352421905750821216695575524144628895689576440368607436567023261365104845404361272234239335531165145932198924034386819261159853451721190819190470174547722193143059898798736405103104450446340478669136848540869384206125156623961385427101280973828163180026728748223538478827010846450869819758045029550485724699959136095089032628704612862887418404595555236963521929030553674665026178853862453117142695781767622736793026922557037078210626631641562591272724461653436703353654531928172359945105303158541133082985202874143004171650657085361351191307894404026777783200858890650340454899849569022348565494188385922232325774159869154860266611833846948762195819685589776576275947765687175634413665537353729463454575652658182839106522610239374594075007440208700051568453358388287194400374734457973752088765590034660768182452492011802991578115668812453720046833643774727465701813025156511332291735462034999673544360428589273283078562356096187264134396284030115410909928426129710071878563901298824393617567244384417977111287660095078548790399860568662669580506371850473510297886896333756016527477579495643250726818372906603887862955796580312309514770073847085361216720863975397020698998735020009293658804844957166681156012531069875717881586585152499160882722925889600748991719090293985338476060708432108945702731270035731789821904629666114392519465245659374239189769750154860278149548150599815207974388739798007886852396278872410767786459001576957379894350380898155626824011729691246628299614032329644041706488848084794678384768285520456223632483833076168102058405703650053877902345180544115516144820404890004072987576112805132409563208371127628238784711295968548693728622172847504058405509116170101749902105593562451415038469107391836825207678687723302447024914327464610827787176225668182488226798240035246967034043297502908082954840348412916827795910306709299847717953392187601794417154855095960590779518094142806460309559393464976733078220939629755154015356235772157572920365923539256071508916249472607556290773069285540767088006927401599270348788423187997533064800506710630635570488771995450933869891800178816012668879836782913251897390637841076139809405891799222031831458323638891647803247180151279441048851358258975764116707328757041917989922106317989718736200633856560419061391806155438798269592508622282899865453166471376649113342330872239025035959209411561361267419264013259620633268143754680498603994621338590028645511449250169874165870310350202378253504674625293278290160949190987341867285520537257282542768522140239443148146473794738993526532912697953119122421016868389928589858684913703821100405958954762657838284440611443372241990353505638264990728352404860596700873122865041559995414962008619447539745743457243057698534288883865222652585621517969123612181534934004883073618316416276787567935665028923612687213705501150256632020531130687674057158933157939265994851958959322110463424033571429443909538062803440144632681818545922571189499694776504968982468321701867091269373511117490044246060989332568626592841423564059232194150954039607589565994476643975565106058178315599834335773577081204293303412088805724508873188545175871145168209646544575044209023118298172079489592219154324729417719709345231370516339044214765442933036182321177800313460850816445726620447396136529248749805175752291294657334063603342052843731916461915918039195426963818160469450804004346319537390464115763791460064334817666133656579087434609058703815789473659185963995673988723653938057514105789727395070081131693541644015139064927287637594234873750557092296063807684482511966931120338551992435041215946530292311841916164553199271169282442247103311196408140684799419731422600878478903229319609517975001671888047132158784230465662672012742627486685929196286710365340118933735258159738552381322929083234388247561307383814477125734820683939938769542422913074847886732988284614136875340356539688232232742490155129525033919855022317818015183169988597291400660114929891330717576793092430261751429921792831019653415289735598743601534290786336224654806067245446952043617063445307528723413731576846069083474317913422856208422535777849978732987138152103562798437058951543300284646023668021466848404056804237984650995560805005731178135668598921240214528930700372934351924257947908703476883631075067348551817922651332411626830401982971850411022100165556464388629643936914757780856011076810084945473094602405787798477809354932690580640511493599910820847941898048278440930131935360844962680619526698538933964460848544388989782903545043221119957575813235439219224232355440594762866769740915615260951091148284063026545153355679724828253332218755965269105537443327364316159830404974735196240225602838094266960036682299267435507925651324196376952031356133165617499708508760933016685820041014639089677161000537500729650303148524139783509880504306351453286061888391174245589893125173366517004891781225103009491995921717975373224072770693443494285413775912689264895597555759335959235476021692203459596650989248427613537362609179132607927334867265128008184068003777853112674166890688330016681389334686831535449620320991609697888632579230363569351052157504657690635706199583218487790073172381609138356906070714740611432840158916908648110526635163592314368975841855832666046887853470132168697645479310227780227814254120397025237797099004013693805024152709494303556577119171865317653086358997820423452404253747616227170400275008425530629418880810870237264077322038921845413468311652902216049430151920013376805100365309941391849599808961971587643188684380635618293769840007296186778057296959051498066589373053736665641309984521364643247961028110535266308321694223006419551303736893703916240512990557595884858214191909496594873408562257944974356072847767454933530894668463122351016084190114760909105911001025320728955507472412442217942460293172574331505986521789525346312276696705556000592340864903946004898816135542200982535367416092333750769243454385508622882049270778980113287852734300222960473640790187108427166796390183056037690193257539540589693456478070051188668486062718441972702717261309324776780506403643268190277926547604848060134670599561644432300162148536387528595494055467655133912505698183129097303175884352325314840742945583107374453031051750909589136012683917104122135444002255798694626819027118809148299855658835296787659439514451744842274844205564290507145131543451904434398390307244941881618195249118128003952444546854935786513657519547740943440951232909722110202126848207177469926248753370582880352382383203835050185036075592164685349190337433161615315310151549137542489289995391346296407865876977107765029053725397821216613295077126543397618901299044706846231417570737800233769760120909963962733738070038492437047107458506343390005031371185901507087024742693319158009356169737070444542035024831964659601042476529963163707582907210603602741620006961189718472021836358406452861971385141417097948063869256463877319047003628649757702692007342192571883067283968725278017748405775709581388475105100727096727880407207192807175817754270491367307848801728931074848108513379878564374536811845233431652314729447501174163028853648356479885851056223477677953641428299859313061287991597362614616137309644635075216130019578952031410143804295611442169277772856071611155320432692321213293734678334845773153822786949504167488403228854444381221842170147868339211817998931652789449770452388569362331450414326172525758613035007979746863067119352893708696227799049968771406314046360928650903785274507649360501961077886544776869414210229832709796938232261470751242196399483296633540618702016491035358772831029215154088012481102670127032190481868379691730194587907344651429322966760390235258176198992637236038130433664247304184506312383087716790543852560089626403924550581866158252645591547740785144548767096816385206895527885664238670829303208930343706281667906177371937718859913202889468801041122646845128916602601222974938322967818930152613021457543240519667115545142295999945580594049509248811504421871630728742004612078602130912730096273030180437631181461055330037615022847090922306813533024972939799043019207033213880128951985893249354593495933989077510970567741445827942329689216261902000455246021793790891536167289638455589483470922309521927241082077824870464228886731421075472990530977266809665234646676268049204796090297066302612724502782764979187574608422609500409052602910915283229724535743411736229518936434846084031393807555846717230930543567337900695182801216068999988941110766058393946330169388195502443676826842797344594895492636266802985215570825615067176534547995891447121805922967393923368042162582564599076847795696284883854609454129093603673413683618637414992109336563422475328463516305982175176660012443940969294441472673086177526681027228189800148726965331118277618217594082727616613950744027461950746653825619319356102740667605784210849846368504537395914771511648743498281231797840567983444354344376351102781198194673144560908414878059332369673165170137644282912872761307091932952454795296609710590121349239224108470797929446923606717219321313112816827384401742337492635219101085762660194834989418487191496087450761765327765846894146377892790332500273723447559941581004209856267399262316033976695189882974442879049342590925211953964270801519086025449498957538527256826489447332972445869375444316457001143316644674463084195569964059105628835368697999540260774838672681009378954564074315512253419756593510971288720096633180402129053074992652219418681495825643291609589917673210432154695310588834762466631735741561252733414909765048099691919081057550259303886158700397171388503638990032104383453903142933776722602889629004503264166762981301269082594745459116601888383380805287478570297825044161516459531019428238505292252814158566178776817431540115698351815996383493696396333103467688754622892925197849458649239323376115139179300338917613300843020907952467904092110778062383969554811526498127044609387920103182846752877000029729937375300141362138793229129122047808961799319448070621754448103939264631771724701524482547205582961367592688667526326107319183971506004360009320449175504463828684545450327246390328808337842190946718394130982568863919456980900533474284848934369499298120228075199253821468187978136480836468545461945082277217299367051584951313359874777313826819929730203100292716400330401849433301503126218061949452568407950676898044107510616290788674254043653664824915413160243515619647589638510604360661361595765792432164852386282855408733220641011213596359399437538771427965894767130196922892073139609622226948421617481490640184241804003041477910838983772535460255874343151697954915857415365214996075047715423447067987588810974265342595746710861716981976245124450452651308512088522379190560511741876036826261338413575599949747294856055673590783479051001507850097607995562797223119530373921053971665751903752807431512724005964388324149684686796617097737268237123251942206677496449152752253410407861751326366309250366625130194886488394080327905411048283762654959063079867526533485766293804679439527279954938713254377541933326710024739802454616003055029702853182882909984917847929050605273888612891322056668416208917823154342731474624644188880678567834345614861055274598299053130407366997606497522115417653704328620207356808381046237242714396083325845303721892620846997976138806932214802020592262061743395309281863541485001127851005862699784601502001246886757966138124300124212801858992567967860300146993663487411367903322116141571675948336528382897613999116432161513128136238592812163773340454514279239039880550260822104881910861958901756411973131658089069085838163394423749189190475777787384967241974478461999277325360649200216749688999280250143736560621878968753304977809663338835943821311634761396838229193510828370510478934836398433787785856227733761661234061403690005707605953090292801833083192132371798482404888639049370077690399154819132440918230163831906801516276833936300004411413669987262293624966134593774175536602559082444124441374544465987499806987847460795827412129736755887875932019215197030986557104548838307217115894090757890039709586003727108620702087186189816895439352385386902464559702155025628655341979845987375806114298972604475088285161935238029674999771653218418758471490479164085747438709825901472819249301972198144920351949734659016652668016336015610791005432975403471844398388426247624606913365772879700218940202269241464448246057299078878893867600303154581070031910045927964027176785944386735091893057106886557289479604628544662006443634032221091215588990253729479219769029978019046882704832673177564017837745056772354660525127195545407797825763314334835118503371999908928332325187023396938881317040981519457483338740743641937281384169624444433168418542131166688244385818224087111964603572306576157365558691085599283525878507790835380855840825654954016455515526326480920583712747289479297168268375392466970996963132928345118406589303391746137620442101660478735113940405994015103077793137839731453087974920869305595035120561280123655114458700373265480263790346501355009478076053989564515727712786537343291933774497395012886725325189221447765529888384820388584284958610475157580962104772415339958966659888737847227533718763561907267321370404782598817012770217165713944668108017268956392606317666570296986434287278071193811008929670371852994197456252335474975526807137800808842680818996567112624726897874873061502731455187352366579073851423183920947868091931535996458935142849291929777746810098613190690921403324965629416473481754307583251432480345778237741223072946295282539590550290801505593887213002655750256719268668694642360437455463661953011705988654229954421082932747811987995734577906980082820743386214930949038821430046300546541531443879226724104268192918951606222915604759615774447216650379082663511366645117253842412541680276387589709852285919801108187803554871504408432271356062559816032799686855744480042288151081208997055273561258621136985171074243824182078649144315570094225833573000354046714153678726471038554522690719104033558217968993769101497400196290219272135809249763605650853568187397216484168875675677417327685505226354375076959791420423865565915551609519159129856119304965069909545011573222840959845739064861577165159273864096816284816580741595168477471903749663838525917579116712382312029462303025116388046618868836252887812624864418684381387156687431006956967812221602842681978075043636714209206532806277952973471413174641633600627039913534918853905536921195626631407724100494837514844779188111836726414787558399263200227204276723808400366027717671815975722940590273163384105191450602854432968937307885475360822741389615529683395861684716593948883204600194632271273129175092994685580642309657809616800305211224061362698587543590879233640144319072548241867022753392818386475149913118797925310039830470900271902893398816066653895473129650806306255829992452648669910906688241835493260927861222287208104423932728431684527824663049209471686166869927953205520991638576620333627321475055872834255609325033249083621974053238223617070435527547125573337509316883138726772145505040707495538492342461919185238519263014003745988076189231429141473478715229648036152687394738582084813129802872189944529806235854298487034002521652706246818536587010154263204291428326186345341596398034931327944942731161518806635045923059215917049086298901319009984625157249462921964867144320030385628993174391012287794816993288415978757276411947496302616673539992778211882226100507028923613419846978132610547515242627055578077134045798596191655731713320687183206927956615185398083944028508047078543613490512075477566913093161650072839894343049545661060486289685020131465012988456479213786235309424613889416735841564532512314762767864689349998212129602714530333856365812355801865678385413272923873453647325521679159520738928515315717774784561554730923400827285521363467197362365774475368199502316843124541864245972980556835541472479171365137912713576027898797711507674575355567560593254598239985694352991271111525758857763302451997567005217565582143011380690740368887600660262316887799394643139167100562166144882298679059092191879942633965201350580779500663307610028051767598519150058429424439834178714614580648224501337248556477604718176596357099504094942268584749049241562481708042081985027906540404317214341921564897072960102049171505622824455580364830798451775040452473686420787877260401657614088094113859480120800763085696113993539641881175502363816568276816504587747922132826659252807306717236487404869417155067669489785048141944420713285146198705416589908617491809936479689422010877331707851968812308971019544797052294592750303155509406447383025391157364560005909866499305076272659405875982715488209564345150431622393687419515208681524979778260277110519118544030775756277933170210330297653944090145163680654753345170677488473134261928795290411609388868886959370057358523415965013956136546361083751186329171787208824820368871027123933977011002249919671142730281844404285026988095370504279088931043081549836949874001810678078890731357048307802442658966075467419470222201709991638166779031018182997548713381672639117793018854651359146589155723132446108779857821206483466332516854256353961311957874967968930123401833195980010668454286954166157887972661779516925380696199359748061758319614614825974896015774719657907378328291257469041208583841158228573137516023293906595947529117939065324613863278663265322537502651087770026434361262156489988438582279727333484479035745779212207392732105942287820003229432805362028395605906734783710477538854023528488965696410029380055615980541725114117525048582409014370519690834386303679251746000011392867303560980885202408304776396007758943979862475649485584724647666529124384949047322626477402715235409206542629681647225883539897827349011312710091936817988220225602951776868455559611694733426893159551447193425744183235437994308623407164416164353005795565013615866623893772038824664091454450927753322533437589208737185696621106052007480960036458759736273406660357594107347467254175418322001407467400241897671587761300794442811858791660398866175937027382221272533060104392639500066363228953352978235031341004231635246297950611834213747351254374520433393646902819684941613725795061705370649261648955198055007325023031437494620637084716998510275231774743551889205596604032877808049506490063632775264378693055669542840350606659608606013082773554832479847304001667954664823638633942748986650534218001444092062374247786428189423617550586688561837620166925556517551705665334825022943824773593539974105085336536822453983040242132025327236850284761387661734091782025176447409454063503965221544710193608864151535090160951284181966773853562597449224335434988834904287919427928795744012901519993436085251858935237569978569565154394122573330970710163942921122507685045480681941217619459111309607844357947223077524996878812553725600036529874357873840959412594430870395739349958516025289876079072547889403701929197566395882353840841597132057381069933251104326857432760389869404450165300257021839289430436739816061058363756868409680796368319145117410251304961312638096959614516339568415184294054967979192044526464040697205355644276027622659832927755399590694399407033078551803008221194198908128444585259604129217309323166606288836526082284292206814962712487849030327971992246956403429136982225950785891385464740190426920942655719126563118616732028880037337186133762469812236706098413996286800514470043200066645412069677604266095536864668999457254530783663562321292516608388138878212936199280561975828080416554829933501061683110793598642360157947475148589405432118578697354977875986776274877442296883990950288394507463896536004978878068775883367502108144705590494345528123684998233001701534435893172141851885249095382911973160332516885048968556310508568484825203426625388724730134706927177791993254364739805618611940162558995749726337261524063515796716575050382343246114489462839237838798552761815553157920468215595728738463278971189636438083355326614368723499778391474085601215172383524046088327475555461067325233964992146132774756049395312983230901510515669581441704241534328460362696658313474926135985889897255377639480947356078060646168493555791526330965415115957464596493936260842616275651648116196213702611921005296470853952549482543586274695925406375591501391421996153846941879203504083050109380089176933001809529919057888541523139898598346705095919154509864208002702570090070579176626401439410874406233473052554545924625795296540087730584195302335991862945613397236135122324808355717036866214841018998318059287847453920725997827437888915794420852431554265433345146712020090353258669052014932051547753861389745510838116313131219450609870364543176751106358467227981968680938849780629589896847552396391249653629186467888582569616683760901064447533532788627172532495738757328839553661501506981066227814338147028019278786667132429661056021142938688067607343568627677199057017116739719714254930363116613206128907479573775768999036619800838662267480509273928331988341067290120251966394676201084848721975003803635931866151518258020352563368254391253330304122716775998918218545846083169146763542336727615683368127468418329449306733844960052012082120450772114382578378041758093991953862101614101337048598383337699966073153104294180460866173382129003609919964817724705704529882483543166596672824973406757546279100392047167376900042775911077029214534590406393936628620486832428294844970163513514291611909311833049691272918079310719852449557435173420178020764644628084297440565737637969240003266566982825677626419189894873150751248426242545399479713252526330514448973318992894488491121765138938054631986113559285271017899062980618889718438904469964108536752279533884164164614260812572274632685641743964729185833934840164182946402558094292607048060845989794727218958548652867606819743173009142200266703250488318803515226045837678452505380917226009320324193928564722688964280139825759310976023161475797097339254651047808800868236986361644242790922803082649655082093672598160764292335525076833774398642628825512049555038695047191426563751396746245253553518446977172974796632959902534500018142191873292256251340332320440722523022891598329442596713819800694048935727660708137767469567891461937642495416799496304240059702191185050977271692168256940042874236929379459512159185295632081056578577511738761104285765595495173885355812693636260017312820323839186480874357370176216133855279711064845944997200878639003826397336039108955558871016146169531962852839020805248708187052295534248509202528646712964720360185039485395886949281761612324329950860004041403286195018566266137163594701552532750697429293902536153789129389997329420632396714913405466650559224155511311355548906663111996132558102654875101732758461986277846098099499426593715233649271474985368691424386301396817213659394747091799436874182358987878783929448321176074831758240311952326441094803196738257841643373703597954205645863381463575514073287235007162269895439477342483492984259711885902521478612728919705111039106100265798585949677717311093804046725728399019134153664695511763964221657806412316531362075079143821296637527921746179741729044495108414107906537690181610481590905923485458378866601712656562837649312446419116869511192358031912939139087694346215087031684678891159539839912317372645294192627336967453473225635531193102246296356024997925924608143662303901352145211102259332765086329406327533932173029280307084656316641875882571307772120741505225817117757059396557004005375514307784089045837694420870357759149694566455343145395228159351284216964717572226787763776892846699353370413986083006829044530209872643932097237091271441416518567948996373030753496607738368074235391970409192365167911566354184375993459256429159552623266029981730267826926157587536696694640083899090751933599942168630543801303623224460341833809189606799473408611565023388349216123220788783686226015609882128845324732725308763596699644284265557940269995115263999070916596736809409815158696622617098484481303916614300313031130180430542494033538740030591364801172820809143517895101441269158943540997603948699756774944201708372544088752157821045645372430333602371899382088087694818482860147369817582636499405914751256816150108396705023935945225334570403002756758661375935237590143928611372840162008407480467318961426277963750295891447935881123418516236618992528831416254262973747901288069232354640139277840986853045860865249416140499718861731075637283401030352673230765034029676419927219670787702951151698763938456827014977685770545074197077039100695013433133686633488374892670563100374882309869154009202203281313299966940597833529110254996011092406912776402644725019569177623961883308092439389878476773048733584644328270936655228267160813499226934262107148117712623918525939279109350785688597574233040326107838265218743146161289988035860512547088443690748892090574933667648941794838829556695135848710204875252564171142560440544747084565987008628578656924246573278540971349738467346001575860799101834324871736988727612546555004795274072379422268913925084198990684861693810367726430853133499109215895323244830157792969909414910171752664347561791394024739745874635554135314100772113461146345229204972665286416887068061621904832181468522199847706715234337971654243013902846630801797168897289097363817932195702335025514016028674792900877643290623279826641735971439099243572625315491245431042021708727746875063705044383704044987913851029566693296456369315682115270167323474631761597700888423470982155132178097824245986488012625264039841389892893634302646622132764214065672290127278530880686344445885334508262117226248124455454923400661905908749358931530871953143497600140040281847286575714563301110618449246551560341094517654758295843753756381465177430205379785622174849750891992127165972210460672580217256106595667622353623211165506256418785301735891786705668904148107175327121950922853565882871529638443113695754272585005345025011439585855638282838490359772186370106887802986357867264044863807119553131973371091149831023234965037221589531230462494686759181688878995843319953632871802095669426211723799390867028011097368699196161130054677506006537571776907510094266324103853340137608691747882347647121391383859543624422540412462499832630615274002911617051157009864270662173342685281654618215422976005055273994431839141833481351884941944413347023662492558312969968390325285130593305405853553145840640166594270990684875592597501709050813398316199518091958623470844638684963292556711965843606512227555294982089008149256933193624211165175824147852509958489972578643596851470518020320340804337551898254796997791025938647444007220651842427478073940267496745795988332054597324998432242578522541133504098036866829503652846152476992519683412988743881169997426887424525834761764112209478812656424142908534260322382926863788166971041702480274212170635638041741953681176869613213664206696779948588492809192936752198619524482656673804888003952704167340973866340310421403892610846404795211382919961498066200131815360020021907673614454724697696233269365171185654099618554024129825248178257752512274635867130666904941964852222869322886878051467180790258491641633452137895858535591085419976514898643568972356741605439711612593273961228894057022796798391706689908554560601745382961239049284591303552571119896615898146645424528667964362625368821312948559405892338514868257240163059977640574786194512180566495899658499160113678790484448499306352454340498340667431012081569515435902836417183704013371035175796479031373546653797866806104397723153005645176309457728763691509002663380949185718513104800148552448341487577120289282845185678746719655439909608179121992570949454902090030650650575704947202938752086122797779587939271864405646422388396999449938107070918459255564774537757823480223294412995881143183510671031379329145142168081096576373899951472686243469511398625932311249997815131646290523103232304941773981489967708414345592959951243291341056149154731962855022637311981005990321549359631161070144539616539067297571854795154994080007611875068492127563574492526097141901116842418061889905157566921587785807976375423001041369459648983136708790518720664424524727465263120706131528408129786599293668496779607573183741860365295668251991021418447596272123233752781838041236004792813834963667800680060336716437159241043870788748507571381953278807782688884919817568115091381629709399873079016202774462503163559468087249496897089821275533509941882331299843942840878706301689209532698693130522929937565043432713234756685172148240814047867651739938781793947450658674069545364998771895876409649029100732504111553093806260634370274187360473164217850515730145493367890878951916176109895449061119503157433383689940934835165960128888930435577381658449301235671891840376101904130853056243110767763919071328280042262509934900874014788261534360443432320290750703610946511291931100918193794861864591129966282636453955338753699256956144843754509035327188035052011264843969925211170444056183270426744636157146907889481377953502888076182106917798538977305370408309426181103665316004215921603419039110836441805941661083798446365777864065475418683391321116636768444651291770956698024527799500339369945075123691825367366394025089835919072461267803436757187335061842521454209558914147034399505548101139038555540527944376341841349957274558529230189789043285212801246109401446172405118732706651122862134708217775905978077856280629504258875570935843938502153987264664125254311079589786990033948766240962968690282782609976966370143661689502567187562538301022091777013584869225222709125176710445262322336714952961985969931223779392511971971048482429351344355552283026491999043753502789370607154044487355415378926787557854641272842637004437573926877022884085988844944262051778825107578180883659258033354414434772616656231716193669767513992510862419123313876589379021041640572656616193954491755981536591108831152956064069900449696752890300720428475493923487037652479131072249006309209206269623871293219944346804851832794321344138995044826909944800014259243850276767002561658357935975729077639717200686134204248171717445838395957707229028428280450104070699958155754877830824185709026757399846062516846295804676714350577750979030348318917986243762640310727345189937774218860719176414695158878350114207984761398069267904188806190647353120884620490375183243574997765688415476166802340239175844126922344805563323143057637625861230038746870772508873785993504051450333227586417165769775935922782686580265136920617119827033808681899242915622496629732652842443676756204285110683388960688771047221792247802518761992704761253148813386788966071559021927020337727108876979510988102816686275498817196285876303309257469771668472589652013702418065502791166716107983643432452011475927638879445775427365893176599341864777535781933161441925876137477938025452947389525087877119061241227009043208032037433006729946572899582672351685635995206866385522626258898375738031219956729252405755525671020845913059480679083269456699012186507408973536753534184333258697532972895601059591467576416614109519184654126255609298764898094819473468417369372382355980858338019646064294359925046693501542129221589053290268237080070803135506975877337623014860657234843811877553096329118627757408772167097682894451940808749185292775691716151443973752118137981382272763097149572158225026132578796616420578148152220880987171971289873525459118375465271721861158388335675185086094614307162368666266233373914782765895582066054976421078496216195664485178445374897402325559149871123225952494556684228018109774252343780382005545194516680267162852310818086036216733410912891055417615142199742252737286192749731644535903440021740025612415335599687962175020079303680273289358096219014722628777326039611313681397757760839028831737826112938511667333834360971589867950625246109391736047512968672019329531415414090894629236794064771717435805549572363444587279211538578932542170468065079657953084905198215539755927363742386648696105645031738725707513058728593889575472234730256240263920068926098152623288353190912090824587083633388309437121441824241374147538822504899554706035011208633921439874620450302681996227085663459636398629039437177702750769406556599353508940768506304987529331492943604779385765901854653669779111185353247339586051446216238407842231277782916229139140210308351910448463968318973776156065519942704421387329499881450919167869188148085021214446634196329874155945591723146470622147999345144301703381739111680007788299804079791349887024873754073931855656547385618524726662521463386866736648329739462633325081387505134376847448642366623574101549842835064768909566863451847344783155121214766065393329332935387371625560800858949879662491237209953675324900990368271557257651833489395539680686814074157258324025407161075603044641619325979285941572144027169011442905252854144653252092206785922510114756051790040906784794653272053478231099807770147676868282791588800203329038896874016812246277251570242466933139629529509112420183880903769758410746906325248210877779321316431774626693932003768897070343672502113707733507188219115448809187878602310472734545774538271761806832704467591932103307612360684023549415135592174103817612937211275364509017699672108691938163289967860098457919791507107464527159040048223634995964706548637240252039920619754619735567767987983160205631502783134947686702340304946363076999387713454581985677174127798828056928943257065567737891882216807980965949789423289486628676709769083718466566778804139568631986523648477494270394594074537634114622387852660863103511333721274507102255469317524930408271921851321710558156123652335041439941267801211660954962785568162088569023468278020161170595558743164383714443338648836014186076865273936470403283804307311007778092819236460610435639875320211574222815200417163825728882687189164095302083363547838055914823299263892672813536792420038010534621423890141450827078148369857768064022056402812760417735105542975807558530732493860369930245008378755998082131783735877062786353237795679659110235279036830621050731218944634541191247282790175738983569255823306123544998391809426564533241571529286235140131644580424325503097968751719266484358844747502003506160545306279728049592948690842873733626998044974421452102306359791206315520181676404619222225130795420032564145279326068567214402236459556878111910516521175654529630274073307558005546602419231909707046499111535816331041500597662527039668232178812737872247295490118362342354468893549934220651355862139955857036247501438518026650564454507525209036805480497626992267996616554059177309435239270978166513292357182393265047882935722001598868988493725791719054837060047313607229920318173003636643935987154585753960545441391203622893798216663924345940943702336485834119280794042759030234450350791410429021057120979885161639437688456007084481394881972420711735107453286442286008126060507305669023205656328405941988784723378990230181094813344560529492838819063101181025473829148425514872693382503346364517958617705344994950044673197417442212613984443678927310448857718037561631393769044635909032393764179953686903679688519972297841368125795594842827101737630791604798833845035007318929023078869985460652913099604443362051513967551115893525847369285636969495840625154138103822080703441247603732969586867871666999477393530052943823471821548258007717628198821359367375609086662434800795644354655741815330949814496676435044166719515047693798594299713942673580944980481079269325876102318009574431197352748149498118540445529281878515563187117659863615689625826078307339528737887690208463932430591434794248214705534683469987066414407830231719288371220659362484620827142079676204868641795408271176960660454456425163153684008222564196540478206731512640213400330911361576519719868462439056154783983220750845442549579336335431594997182242568362216622749017839681379026692109532603430945302844059762678405979300420812200873541457086060932828471913970672758828847330138141615355826349805036111801751011159680988223605863085028432203067715409725985174436282592678086765908525761971550529967987811043026239686035909624065741585036607132774043150198495353250936778741875506001194083971908554913235546272414547584896018529802996124740286078311763937430286656958695142853298465333002454391334188192055287339205473670278282049504032923833083719640329590285127743234781228182566293248406917399930389915170408783461430499409565681734669381489071331264527520509036965204183830990607266988890796498465785424575072104674474418883328072859328522501122351913098117484982038235227853992120862022086968683916749299649799483473942533482591374192398288886977670628656830683362947786639516580093789202213558379912573879333508332946782331091995207348876834591794120269835243102258738561004059990098165841821140173577141311820131800125994882070663785698086554510796675750248857660990199536743508675969457703736683238923450074381009618474629840901830367251377032298041400659669362567838125282697206834192173644908863592502744886805288497968102362730513370545264117836996953369580652099270385952849418116178297739995637128398361218031496615895012360263657986987922041151457554849388228212856334740541244296837900867253378386511903431007842042002550237619103111669574159142275402854574931247257276729376308857691233387261447139611655369872549946994428597259523241948102413633982841947347225525472817562086325002099684059329417924440630107183346067275169676887426265525139391739561229290043361522032915824530842570726356357310972661270189663242163836357114105474319991147975760520864940829536251073112124983626479054491601062288405513195289359664371294733167717673814495743783635250380715306484579665686416561342298420269399129249990491239863365197355982794239637771205401235489117826879356089485986233070543526790309981180597045331713559999975782921920316750572644820460120119908773402495003777281573260406660346785337927618620341611703234031550319009785825213369280154757271401503255868807448450602353309899605096928198017870974737073429509101585282228750580036879169374063453129168840781918320184251220581583367235009986797560772092752567197538394336130822154592933625716801218861070798177413753246710034543465309742486213191198187314871085401085774483577189522334345050341649540655797450378171256481731870097147607065479223278805796928406385126868272125728917710486355093720074411032164487788751413971018337001713265101757697367501007357408364177681714138851420802784660339235103565960641450532425411296320579066358175297734124763161550531527846937980971840301109961653105513260439746234417071565919345091568102248405218069567987537622091988321689153990736152884810960860636874566552038158079293339988860802149176759626454022873673828224364091580131320749394940858093159056557148539185893853493315451367983208723560753761343951683996729830414649054234950472293362248822537016814270177094510924451475692011602251375336177081073312385927486028822929175437494847074028823439358487242498708034648430048756754038948349052911150091024867328869406161957244285554967808271875423767054016014432793151276474933326660831347385669272443558953634185886237918636886400447921009638746210408063155206241436620243792243259101894498829434179130244683281284980000007043813782108883086509682282348476060180752141658124345869974303518850087647473915739257484983239324408558208199223944385134386759986800252241651876595799467282396264969430472767063125291104562930328576766374237816364240067081836762349892740973491511752608159118345660101196655208832700219156771262480648145184347373632828307403412246992597394447822372339358878105010074702265468958737376276558330521042859639541067996702195985324468290471544164845998590207775653194608005317586361822226799213348976344811555456913449571374334577012044473211600251677685203035351711907306171530568681630545058512321837577419544835802505648572299290859935292836239283358579450163564082805072282905785155830272715848438413385262153474320480217634194335304570676341750851600149255104972247439842472168817825278069933330763538487181277578589584773789956067034366415964715371333170998800915025286724652649147081750926447667104072733642554038954942167838506925112801760121397096174866875641041217685732316589853572177934572814001463291584442356543227094240753067772170496405868082469119557531416218197896901866168571752472397897142349943778253465006859021571606398299806362922006346235276358534631711445042113739372028477294664923206472212440812902768990030810099478896067756378008071406051478163263102462870181685367484744540913118312680528564756602056176553897102407695157338411326565925251513169975574504331279535000015221092483452938454505384580692923027270503371405828345418294846249780784672806520093796993676583160516595556530263848423974334519315365280299786032920406492315957950747573300642970636861682796061674029768914625392819072464639539183321681194736287496871652036918581733564689607167036219372636476083775314289305839669601361509581513869290521928403066231463796007405637005283927040072354622838767675939234810076945499468131538839732526521841721278915216266466578262061619722837411933358114532645072042884993936572097088892995773095450142529992990160811107056093986654395861544097951785480079558026786797158137201867692713569809586610156785312829034667795116278071765822105406788204056816599862975171580096885523076370260952709826967543858474304850783574326735497580867819154860039596676558876173770627278054082963859643013095284008109412725704803565515903284640210161456293629800107273147180440978585640739360209303444080501198282663899906575924782561002058440085047270238317376893524142296073883662439914507789365415900186011965389427932950339378099830432042210815229421515565185102394916270756868394169615909713374134037580674635522081904744438895922409872902137893026557896752666662964305478838638781615386717547716958261484314703902067807084041161817792775773814158671137385524250278852941349382930940065599483983949955753033329686028178520536345012488538091125309144401713895840313622149259545707919247262237933978173998089864176191854859754791295261514415977904510325202638092672582914384650727577540499065000737460785569809003583446919651284099966217654022380680594702383254736449519227062953152779415056891807699213724805529641303046605365087804466156411866956607050103551927617050208355036403422085904705224521696046730915554305310634135315029875094411812090936828201712029418477553253380089623666766363554449140596404020576604921174363665764499527490130112746149636968978384963860622474022848171195328077348523064244917665669604899781900416240140921713307770215501120938244110145316832620455704261782589398200621572842774535502227701572300641885922284817041319009217867090067390504201801454032011756754622142659705828313666962716155583902254045118889808115329885776346567556781191080381456866283772721863426407907712029558943395942507404856944523428316487821680285670244415444797684088769281222965329696263853270694851059368808342165663993795057779574156410475384619308556900222301335657569753355676421008317201997898687350434822867157337816012769562466688143158106210959705606416572812376116729796894514976566727191059496798501844907801251837499474139238288524260390468856240983450321783265021839582093094805290636666695120699003874145360827300520865299020809099737911732776345086850651357183055888992940184625961786453126694700268689799458364691972117187489111189104786768131598076591333725615837672286746744263991267187631778540753195606847530764437558399238186124449341641678553310812615449891832345161143305857292472725635071969549283535316634048303046389676265915734379759108242320063867426914198801874791015722284867422935983779225386222284277425328123668899558212691159469089784660391401947983192024322759582459513269705258814437284179406948110983910042085247330929041551348830069381026155814872497421732835544716105961569952273750281594212017986863160209641673036811347438659468767115177746666069843184874643044330167084622148415667442850109884736726297495973507513941654968132062522138188620603494031372609769395119272986963479380111814990506439423243340314664873712615761939989313495117740268639960965337285087546774406240137300504287281652794150511210699928176902021292314645575144569684884315897655120213762305245153780150375621121632548646296239514971370930229550421925466585459728927174085780425473884123523072635130971677463163827057424085927581502027216539308966152593192440817621515874662788988776610109617339263135885624759807674222841987563569590980112336266364801473504575481744354282728866898509887602655141884699349459827596673682985348375739950444407222683302993554210792894911585230216021795763004775724438666697517303376211824253104658383980876929902055251576669371923008612241927273124088569319892222082128327965937759802128353229273346837686227251554705547704553421457934676894784910483970793989698730547864663656670619452694941762650110126627679972149369716249324876921091009835150618039940470296674224331035319859100056815311187287745186854695700962201356854956229331854866563189280707989685229725967634179824524106971746339251648909011092002739478128254337930374279234761489161411982890814666447729971692319374372190900288464322693937705993967662341294433339895583052130495910867141711726074317538980697786676029985402888866358587120221900040844533384121876854565737528095925289237611446526821010647625908925068207970907884540807523078617365739422991119393271061118181474567209423752729757532764257711005392889919178193518746375386887516932967763568760549383755980682109555322600978555574548624352334694232944441960983605436961108574243320826667478547615260744222201535416246950477266118596419365569929612279292937772757549682530094685391324734006409098879615173687578496327291526134712998418712650848241420647642948715571847640747188184880080151851473978420457946334646166087359341046181197668523059127716584953932769345421445184930779986755663314411995624450700418069583029695789855630885036393456393090987247210764263041628648597491003948474646871718782614559930097749045482503801053332258896601812689200629009086680073244313116583922369898061045817948506866217184637347093258429158897177168678591350140108902220283302892089868525359839627252848096097398993829762919513111156993594799767751346087751880503955878590259428296444563611911180696725195549491101782367885389358523272733703342816611602703934669297737139840299569025969929130619488227034816691959089589460819374799476180645863585695022467978665221159746115664418594048054829463546877635089579613633170345011273377877133561427649788584944954754132215068920384903376062597020916183611411829521270816603208882776516719115906235032798254474715672404882367936884004638879974546980519702459936951376046551050245087463883614595857067936801350380316381403670733575191318724786856919720450615220416136765343200723337034103262961949398153929245510254043319897153323900574164770484466226935452678802333589248377622187465767298591331200497554964999747975315197548781442164781859802073983771213942378819264762321458139082878368002120945082071581574374881639981913316585565167830898239266898342570747782992379310096422143227073433117427485793828182695252240758332683540679262052563588484514169191903742839100174736455271768668845886458023838382809339773548435877196034295771316383737564830402324793507668902793630011077430199528488283245988388798199450890606490219891936682917257324143719671236725022836550970120431880738482226992813042474874845225990039944197413346279153258856055478770022594264485796711762919276276883036787124619146141963864973030974856936334525274696303969921815363736413432774396045079630637612181092534950926895201631897481572503413862461729392265753492595363999481258742064357731150317434227416483810348689459333811734759105371462674992429700388706283399906846975841803487617253176603796897366213826918551105352292555434044368182345567563458933345802862878379653279673167954690638721956973181025230532394693132074037011583550878701125909184519039659749181194241545493202098660368900459209163016146827241984852954094588734595209689854401687727974680080141017867343043366360384345764460041391140685155644328897851432721056613127241387852317057769392080062272579158329425024018202759576316965609385108858569827550751241729132145197466605216464304970053767211339564114174317119298386146442074948875374991505301490566136162402009176246558702459483508404090013816227890610395428125425956452358105994164784009076918695090466891676717641442911339646217806932925215455794930701252171785150924478580126914674519607317645574322529073963211591117154188405704465257259587334169919034072189000082291698067184273769809229465134437687844807157876664663175447906571477082925994899818547198462372828642648671381463234856109458834543108428490520068395167157981606814284260716303383972525305799989169340662354151610310809360777661782742316206326856856590974425829101488793721319479100566371232072204487961409822609421642247685926555483551879825815540616526878346755104786866628880109373882588544693102436194457535533562253640032050661922589179732423875511713837655225947485507319052769838139737962617669809313899342203339773844681988480206993574942446751775898791858622820638655551657505632708330122036809903395167951412202347183758388734454015464801331403724635088309353140201807804567246231471175715429731326780505189046051827314743402909368660743781798913982310539224916331185537768648529980926431757460684852666234924715522225932741061322835900090377450022374594054962340666056258426813023494216423656234716451430577310640595613899110939455638810928179531937706784230435644402913209988158367920597970695544940927868115467556472726770104419992259832437231583280369761344686809829079816016897956622917862771065227242278864481267336782662602337054856351352940787221123086119701658399996569225899904415706709616123509584776374793545574977120355297251657827993359028173676528230175668626997888301604730966081596364046504756700442583106455675678564327289597403513154135832113055257138957718717002489419234971860476776235969355932726790070396764528211372825518646951076785679667393379934560536423010029872234131557846226612616280296717307205893552455539414051137347106966522912377271774815547850604121408804884859254360820553361494106584332122931166375935385059495023111743191221607700105702654956430207783632393392663974495926421310571909423658400095919195087438578020534816784722813042072817844087338290925749218098180321648529263207466867064529715089257079249011435010259181269429000974442069225608332595901643746108923061283693486697695460489148561508491545697437060162460667522119726789258546416554926017273804582180779043079351152764140176430681209552906010268677301067678493786094002823407057727695565485899914598134766885855332248445440263843081839968937756142582238871143762610324431719814744902118365122705383967212620837538458744655002184205841747169716590238084602453174914151307527601797209383632673260598814904206527139023669361317423824264816591662313906943080949141221782988526435863125529236699019116955063612693632759363479751716590918367083018216881081679563482846768304161775827926144621227526272782521593227028099878904409733245424556288490316852158971804250133370709937795508833767789249647450873777058461077052944111732097853655584229535907810704376142331563838216960837440564738177711385770972163723138455192313354255642412358931662849835592476396078057800773113909780826144951873130437803061848206535627015626532332118676366734651977230971940080948784539193346548500700256836231903934135134250517012771777176275150543678014098205262490341034883805444435402052414135022939794199935656073059660071587119741040777036493115627105941095088669778468772255109426091839930638661071271475012438659767444322961659934594044605744799477864746847255729832101014979787851176874707833024724228967314630291411037052771252035141234048414669907273010779410550139271085624715377748968812031031920737648475197596162476704160245673511534648273569818918890473630848492922943125300614140869347601455379373797250549388840466171397329501360475912181227335397451752839513192940220368944996244025621914846527509738229419778672216542146158644226867976378854727029085021698905244019564110026396572651915503328489081374324629829342434614433025152234254974596008978856667667776635117330520134289924536884933517094780732021871663621167886032328477979920316550356158824352893627722803226203597076077572515670767948416085337570284221540585446648985420914795217223220585071611391531963782239010486462539657267919553842674687798628175874343731640675326556182461647074380916828046244339458933164862338932918996091718518289538055004222954194602167580246542194445617954689122038736365636414434270567277367888408223458265424272685231277615762722651288552883730292828606868453650381560352054497443642785969431532295240778211158960925726470886714991512910262013532870046579576727519471254539118079894555634234410966066110664168721319515224915491122982879126913415338824252054750490506042689914081989727992707001247731717194976432879966049014882333757092704839197434573094592674141202495442037841239250806243102407692253657489293664692385271917087332564878376036622310271693624105755660991330349387100736865776375755056029733410578221247141050889032809386593520657901848543989927595909038970589985847248837497713981883534360596026044062997940850840827347050259830987081834915962304588031593362331922710401847326209039303011800279436916483500206979919918936063504213648776774520100170329614151539973021447356049917999525769273039226829446267366138891649340784577023955293042811219608619215498823725753154054864986888821081222190590456721149518264407270648693143228787097083436490787265564534292202002758756658428161552199554508647308614978406160056349242912801436700436536549588208884431548877228534247367478995540342480067394457942408023734282431700809897047979059741406673824426470437947088397784763526386098986150775442389343368357870558139677430311785920282935515735977181082133566094280897283836453499218030949977280634213748648630191668338795267840519026952053868677587735792333286991790799345749468736489159052101384272355411731868649072373584632295978015750870291887639649133494526573824115049379043085487708001157839892377733421468109238309227999716020095986896166452772558444879366385495904523693876723434317930997217548970586191833917679304062900492521870356607722265558126505840165444303760149743264054227299552710319311620886658461786042165473088316124823105628501407393433646516459744656422979070002756709467045043722403870087199663146152862347704700364686328604745273658850124049330643200669133586170990355072485063741245367897735471812423105260105728972465624902340766991229999857134419487253956812099001262751733945236476647859027272912934267793494227934162894149091089259322642978199779578107137282759750527467214453093092968572110586314220276920178750403861851584253277100039299444943758028692380828839666919690174038528628379605075382523248799212083903578560420657306857350057580743637290828028472616337722304436304318089155849704926423583452039031471945722899214758522894460813822321076807584290497394243659552829682922408566350564480450589572313043463398974349498074632377001851722784454120279378896347506763192858550904646436388955396768730519160695755669432707243712604073378430177286891865010197037180511343727271726196048050990022870178115257899944801891141110973323443626544757271702008735928130034357804179753141428147858911953079438037607024973052587419019462753047308621809330254003781579010814096555104376622998306629345434649091414432072389784003968728904139781234910760588233712342694133456407159473478154855928107964904937923868543821055573251237605463726617241355030352727861487327987865386496808029678953888724903941783754563500337897013091463825105318956587289191569055871788004071216416590931555089945838171432863936953153141434877311932561019222087214353140466944317174030192140446919079728897829375567608714396897129314804849989035726237645584221722783210395753003170963194657181050612755151086466812269395292227455846391734276663640393950241778713960634053192033358556231724874207545004780109282185330267578733535437966030603959096376816461533058782730324908215281661637523169503576695954043882182473800849159235715246629502178239813221003507252580182900557974190387912235008146746104618650054844073178095744160472351236797062295826031416657212828692715298707831157149255895582670945884687876119719043542441360531407415014333987848491784619326926765056045421487229502295360997732880735545254580219146204954817348383403414266698087358282797547414866738670951204894046057131815612609053209232144007577108096558582949513629061494820949230353771565465888429255139637928368268955321069591469552248354466724766831906438755240772593494148707445129404910911128368232037251837615176840470971890631695603557067581903416256129608625737745054795507022758123188393822152963661100319293659494187413082072535455001391653521216617697639253181388471636456711546748357452780311781148677097864641954934529887495631505194763721733252241348440394809183802867357755811041550931927203933381183464221834188979024840846412991041511740758180030878505958796471786819289467231104850715817179999938020379358528915062280012817240126814222061786471895140064635324880923598036133160710135821745956170241876179576530561071754437864490529772438246339167064407126068290631244879708313106047267133597694368879954132093682985254400042167916462468313904693569822714861514252534066742633818292424626654202414589097498274339588584939420526881592486310972654750070400262656398131842646441096627714244554068723035033711423567238229686376098185618178119432177664118384760782389250483192704016486984321185728393970038925053190734952496660224466783350596472499306620114677149810369811829170983358832772690221522287837892369378773699846480710633584311065483411161919389131273949217665374881619270590244036618415586075190064495561315112422992254917437753818041529229936604797346093494242483033053765298708293538598118597435258291852325959952792143450543770379351105496026994809108068465056134904064362674866057641323223043899722169340192151292250017420376267914560666606656104124474477608004801146456982539407890541095378213583808988630178361774019104047412555117933354878924120783784930100172261284181004606106524138598543316051891115556588621099520450805163021925626728079072731072676103558946052729212822617333006813089838590862979949793375878920663394492734940654938256431083032211839564449609797749191854578742585937955834476845673087543505075779491305536597916497228429143365311680659635344522396255327165941063907249405381528822890512888388316688712555996005306602339485328159139324834058235643946624021181738382498860338874133226865146093778472654737656661355523330027625033783810226569703336364746067356513683741120987844388856710076747957289569514160517405941671882622337255888412014874725422260882896392461828167467290763292602303080102421584681569639100488770148239601617298905354976281435660723846208887009079534587226782864868741877544518261948186610170511538177698190528996812266165155740205423830981226875455770774615905681592950522267675564043710619768733867836573345519930487010403834141482910525571776217405049254009737444869632621402851295878972869242522480411006229874015253402770534377767300939461466198854794589190167577189644685520343709180583316730929414600973619633306122143630647481866575380542694614252532077343290452035978465841078490250788688312629843135552474435339235315855901911379629929590155127286649717281465362621582376145722797371157467614864068500626042110864440476964792004607649044240013902383736529731637595699289452919912626525637050692281667582105231790036160123642857588921607441422866326650211725557476226179259906287824956511003629127917879247582566237316916800957538794065501853206125664747057835580164256747380099850488968561299712051319274899023087815200174609728512348551562183144835475047107380825309039166311011853363951905770559299723784510443946249851620005336627773729938429324528422038874401536693461410015879026326068700961256019974177284352117636652092340506261591646447743321272467298401731568230933463455588463285370704054068544864226385845536112663310875255072028690117442178571848948242027097494357479665901630124705770829874254985240105681502005092541140058709509665935605658066844177396087944029478101496249081270131764569129807929145347126714461435387220753278720588601039752347895746370278424235476495734002940547345668132257908183806652910233401244453802659520577941292297947554222258616905767412187898723220491401134577534610886660592316306310711842588809193937786653354463990171630516653406576119452968666190497721805482171152971804511265475472931785642944422932635633157685892172625082837950405828168896811891990621669799821143089237474969921566409893188884448924206833696951240818740911039652654731353447372702455882378866780663255143253548743065150172341120196949735694235857873063452683221606108024794835745490127065025248727354495851537388376018464250301796494786414331253034677581388419044134098960623394411349168424178315723321615301326855016372687544643492204641396183613577305558057302032232266497240839733031290240293059638793196784725174808394019590085229163793746101160297899550631439397282420725269247488724491813595173507620216644473443049174012358955362347096592154445588062810347316290533380834364212394117528319889836228679362221611822721497797995279112219201828036147546305804464849588728653947477301746962287869655901862049005478106227464175904099148922593635798216030662976644467519551834531768217980685490550585444460585044135318075134446572950429775278421946941573929011366051750028889951688694162410749160661788514323751742543799614147685923685305843970963524757766760081246616801627211885274506192484060104886466329626846574460054062198164296194424207366595697549220563699785427825547182638670689585711308250640443846342073295393337413420343475690894210952412115287150908014280029503433284808525455808859961950192388427937457601602697769453232417781175415826170079177745608140052056439208229479225060843865727198953556057524898372014923676534938084691979130449872780943039403196334311216120094364014558724372788617036153005577735073385813783927451153371452790982568594501757182460249796188015559473675178481672559873891692991619356720563471159053367636820618027233103575904456464284192667009267920341112466582061648298781369415774335219007024394569912150982931826863976400438300081301395168729120103062182932732884804133384595857070054210641990764709093402078508047116603713241071480645404763543401270259047220340412058437019990093585052612521692055206229397954145317969019975530276372473841350359503304060559417962296724914190848258474731336201771152193426830837208389639647232347072735355879923049023941685216373468972582834302230611425811855149504651599999096265566338827262644021611485436141625426633782045202949510604081403317087807602377419829800229732963816756653128668616172736368910257435229312437920300041966058601341639814890641419072690749014505702943634651241253239849779049090899285074910296929545315840616782444648116228828868261070890358188654907530796549886854342454804224766145630029769239717517390050475767282891964422850847408151778495528125352652219313950853729531471821098511383727296675127269326220138472996909854077671636535115203057379400113890376500405871722103621601002630865942126714422283704648016189811145166648528343174851037848494972984925593587375425555256047123400659667401804497360792186809955316896394198675107316887438552401974374348108975405898011032834561795018287309231730579769817714331998851410801546031422403901932496060126573987787711511739653331976761652745559923684515588749866056104418876065068774377847668984924661369816077344800586234840900432115065640224226496900361405144431328591093370406581599785352328996894087198153338431680339370353355886945635089830789043928390369723367125944964313374182832363607014740601179828081734477411591533943920478078115296440470264430400763152883280970815214898825702755899295429938731416123979135982759841102119225259177603513469674610918556557686782554436683061440664402669452820360493398471467629669404989145003156024230310971508395750937303886854992940317781844802251494327263991183162379214882317669883753940382805371717427022607297741840134509933006750328622710758666657545921863253085415444208375019711121817148596884669970566268962945241113351732616322695911050101851075788403428184380013365046781145467938441129340442041900995680380718050769824946649547227696375857676234366162048843814411505134807644973183562575955900100122520030605846927478490410400174715575314155044982574529751653207549054400884767633140646875391922868161317292678261372699991944230307415717891552008297317095263154030360422955524262420040659822193924970510311235395399440495352195814825029190626983546602092085706146431892996348040127343103257058451563452873321945323938407883586600101648470046715408475474740101632894361057848629216359153372605801030978033637433234082232254339376116980065928961207820386469028518816574686781637705127191997020846664154604646576016001991205554356973012418872560703419835992028844610257102426232280640969520874454263740714886020829167374769535511623712689803114643179140589809000007544971800677909086415106866998304206135664477959572509555944427836766329161300171926860571858896847365881311367807066925651960599964126133180554663731322311285599230698399185876971184102317869654486053985034120612799601184468272758852675735768336682053651113524047188574391470059355803472703836560860299687911275749991737723482475117183421717739638844344541131056204334801407216637013794478327223502787406436900594768256844123460511032591587121498519376614072912493327418011049561340468937542403404109960863558541474463471489123106331265947332979044438287309905924146919232973971858244706518851494248297985981875362046721336687841803785637504112162705350590344190943743604719013306518308619505617687951568172434009020550247758447083779624767894635536414255877765778570713574669805955724421743631741358986367320413727095151800004590450712230724495386020797545062829890915864441763118994834149660277119827236829278730904238895193564517380162722473205523482896453714106927518076271395464168318213818048443002434442884358043632559756532133700837637979788498470958048467369460595403041328703903106480979864754522685654916543193363606379442640626316071818805401109088308514455012161462745239044042691593375018428004655472259354741012128681473104657995493020770909474662397869172090409110265617369064992373612307629937002835562153613724417397856176041833538310525819234806452671047480000948461305966840716998508449737865745255553787403200131564067092195210240653983955921927339214519545852462832262803057493529936314495768361418153512179778701296084275052668261182055405782322050164322433628596141767557907886802977800150656942802327287677626418702099305167547525108015103423301015684895759739892078318003232582139168474393029368521215902507347780829706801866986919226351140480975028940053285273057523529937437782582866642156438334826827606509696982874826238237884380563847523077715881583036344565091016910052223590506731057523526445855084069297493497879696023501128619668806790373011006472897684446045583312158452946407518582376976929156106235627490691523530118491751875959375356391845607703745530916982369732155801831367918013301974791571868122230110614809486226071148455670348881188229493622808739352317892677553768354982353399566120578917284725916476977033447135597232549899558580132976893101853444962002029693691492717420610381798613918766033658602764632346891040257279810760969952574784254205790465987147030472831995679676426802084877773361622357601033964963071763739106859695367099048536243029077439937795072074153255035521562492864761851263872546666523445290532345038263655977373739831459306082900326953652981564923531983623367887504440001484494767095922701716006295979746356630249054437979593571050641022185295474935662188237577263509505555126962667512147524245544415256393467447180482972647350896877610656382946408114284119457147156126635760894482740769521296239498101852229192097945609687880058276935369751801075612537796033478785867142072517852426925600895125536346451742392899572361791892868350936885560934864984256002248984672720799476915812211947463711672077050135426750570819845284094341304303188756325583885982735369049812506070908005124272408817358167998686154369336039324635160936253354284743016188880365600251067164454846181637056177910590431084255105410815344531268856999508487739015728355503427562792613514924516677847758842897616124754908877876349608914637162237147607616355383282902108092063793372743954071630393981703510643452863916767703854975679478331540520491642126287290123363211893983214855369910105438390489375979075297369871755523977186213761441742449146819615228673713558116449016973171163212362210017267424468965328730775141407949631850994207049868262889525415678495062884690884810650306578519242619111163951774446139811912931275716063706702982177909230296804200720881328646463411431114925179842376844134447504894302959540826764573760742251116497425700720346550221543640354588771588657888465933785395224117773623812516425628762332495026754653406070128231609989106771427166669191965517002973365373942074129136246052825833572198695561805756760463055134189559029174825340135177367030169512397059491644815917507535244755026259915623256757443734059669624387046274885742389285935159206601738585035937038773172350333144493667147294551666628964712744538108113288217841714594715336868710177067280030640083463713117119083117154561138204758415098970706887800732855548838958334720498425403183759220545269148849456743217236235424166659367846522898413589930562234721305774954543779002760950833442477170555267340053260314423141829324979677636348214452990847178256116495123956065796636447052551558935204206214383114753856777646148194598615784438940671800691557457290441554407877777869257448181229490961771234792227877201796797026714417372370690813395967881542648675130093438445001395714316748669797428040110507087594673008171233943821820786385220575318808827736259231564500689658432804475585071320170244769984578959057283020794916542895400962902238313496133392431837206055522207082223465132123413065777455834994826592125156103074807181701943266635858146533127676167887919109814903732831530184268003608242344238853710258654956194710036270704260276659322563358129580367537125698375218990427044568787987666799979407664246705627846105425943078048728283225359397892906808521298371259397999110084597134615265492209083530264434173149445401158325759900518724365980957622788899171625556621799571910417305935154825427099265179996624261847622196530800579455488984222795077754404852333963114658532104839710000238480198212678766488395282819997411127932976326020795312199482461802077938358348801132801375658822459461801302758951738033300913461614851817259554387185105463249168001070178331661220525735303765908258843653415742957971127051142735876390189694503637512692035245475018069179314058031747289587646052733420564837981773409201080980947905254645975394790769044346879795008124620439750716799805917904811592230835387617973973459042563247788387396015050214386435961956403815899535015601498102124605936122234536262908554141588002895823964949754821036340695806234960192320393428606201038952011079059581648285981757571224926280663004760335853872970771517440321271612309408200373515921327775022701423447542537419037182816570345465070703525262726538102851403745991971776675782727438652012806431048210424159957999145498419970504784875272948027857427055356784786464641921982047417645067872473476379759168363454140022082840601410342697070569555082552526132342120557530984681375463335795024360844585458299327539384914862299668060424946487052010586756866750434724932251882651099903202847056487252181625366584789894155790071587146305402355529726806805205800388505522689928940807784916091735215068432894363868854804413722552218164726526846365021046699073898349485359557925756380125561579941558703613646908164366382355004870010143806743872515076593273217804720913639864401546970296012953518482022826286853701680127668423171633897182059115471197399283925388706118076400084791595232974718584276427214250481065815723708646084012432565986685398048138998553452722117842810011087630173960856493862787264833449641655735607903445653494845476190677282755255890026651183318793223513756789571271323679207868517333921315476047860987850887153152775830075237230970134979341082284108673775598037890857185942492848648909740262429446273565369130994408503958967633809706116680485495792096790788854429179772006626758616585985947618521496757679940435213187361685178287160796423169448613017620987626473651676167251150416509657530300817650110413533076975531256773459755342802896288997224190288890402388396845262256705697217957248526311949074831921943559641608894182275963807835901442416916295369976264005677208584267875400581930581812815570515097653793884240558689396285792291727874732701950054142318549660817218027157606019891924602199976795748246094609670719154973214702344794147876646012391930519165417856191873385975188038027224120464403068270940408786112640341811891131012419679438136323762145764489643096198381759122933468783839515208480343196884154323141736328778820120160348400877251451940954743454792709804570830379902561765173197078937792804961680464417016434644705126926942605639237826754706832157947289877043129890026166076200849825955636225946090066832795424653118073817041626770872046072738164833824720221166360547184056866267165451024139479259075442950570347498715532586936751462432397008951159160308538079104600723735289599647362156875404258943871575607655320375742679285574456570676227291115191322118683289494432158444761618014373568998219166116256311865084890542729818044781025842139591402861818706684376234744426210810854166174640476240866716499500235506024464643519313184175153948153581433987118253331988381050682052232756110926656666297102057270942335665351947041038383165585980109906218247861569549616213131222109838059785702599905227630162090150562534234918044398271221799155634497572313046788801317097628671646296992876051119042257998623200375132304570870926188371694136021506141342992767691506366843793248141508138556156995918783652089187904710086350571654471305591398352007577068949630650230229997393846142995772440269640915900378099420273434253728099874541445676214624134258743935019003269541559162524821050020206156428632500916225384745374065206196648426734013008897629017175238674334469742530473074854559577781391674868782130682438106057081247947078836300516371527644875489948242947177466149261946660805311133747941453443877120438272778694404206864476111382871088337655178675204641074803804119685209112707326224574748599420322805146981744519420088784379943623367429087050209961719286963309460445775884625350649922265150822663145253432924897033594499145065350450195914622158528920063695057588621646181416059115185134890430595605090216368797112582413304170920209206170568000661112646437673254012088575513737791950483642048217252133749773840117872730149168087938382685091131809155390331364989623706424157001734637905526449064706680132419423925029619759692880183304264206542609232545953968434367649051529762758851512212486600702465902049417750619618285230730371272527115465114525147553713114572282669420862119872039293721969423378556416164309624045070405464717430634962938003991501608982445829538280809581954426168796128953527065837882059611172555788903212364671056191021661091935009635097777010129226061947879229385060534171691466574583389954095790274518510582998319520324637169081770346828489366960952983199800882821933516156016429213764285147431804002769165048694863731767566954425654461198052255075762338287446072025346795929775804014904801285005664998277241005436814267396473680103059710461787506850736787385047183050383036762586465096641656839890208044690170416993225032829166425582033096823848322472720262848857888311646220969845221428854650018907836346300830094514609933703671681875662097858448667004723357817493614786022548449225932948580034869904023920013622846885819835629535706095845899565606809648132645627997055856416631102819163878949658673458082244995071370468109874231532324363649483989732224641121896305077256210937591312508563152145868750454634663990345964440754651568132462042264047410955682165851309893735697242378501001616634255217319841417397057486219075319229547553127398153348776695765133948421211038648289412877767582133005226767874287024569787256619255603689313812264615381133748041911332076775184252816958858689229896287310216907587367388791844597801412885319010898691602217690490009507802951762914159921054358330374167372614658260051700644667873212331403094163757473775592840630431015437282358723087836467758701185280834318638513498376249393342964594945608173859611333444975473578422797256575250651614401958646465639158303345020361720101632713368208658850941412132378901611763279882982720120991870587673983510974405553126257360706433968509991245880290628999104925106559248724494430856363128341327378038101586039249203776141989461575635296147527664193564048279703146823453164992505553746447514878071468156451253321411342186463845733616175591030728675790721525268196011943796903586275709537154832805531365143216596000760099963366910617149278927114587280234599986700211773729899437375067409965656675006589384227489901061741667820909187782382425621238985942315840833316677319030330971361841704477140145789582020264729305173293819584937020847773077347255751853465700896096145449135010240035681093644800697292275246457459121926757705402566152218660519132649652195009585919656100038023280705361342001843188677138935017645891360650499316731166666515164661495235430519080276051082962424221128490443075957460650683476032778707512411857206584405397554248972689683404796114452012331257361710104684082171208304830991663714473921154414423963492681290107811594953028818121626840184818189359905885065933502200803678851803519793922706464637054821695996677226853331909104905041543858776254205516393366817614323542367349866456256548767323985432234205188684018055396351233245823466340170100198081684254304823458365902972037051834997352630325222466997316943044750458927828847026020575779777271450889387269775833732056356100376303144674217608661334008033528945675981672888190244720737599652605564342216640234810292793677485541356594612647605528652959923560373216936212560253154594394968367448475587361729304126380716685823506762358210812600864874091066526204837792514693875713936270196713409686903793948367261025472589277411412203637661866308954431509293327118563440419568185318848423082095112201339475716609503331799768207508166247216746214126602525388932151140504257189734411210169944851036012969366937822707550621313882711919896953532937267874613945446652053905987588344891283381432895083874059642100103779184526625743567716325613609987067442297285435909856093765446771865470375829663447210074330344567749892135083248168642150566749136125738691878501144879635504076582661021777315372717599460200857324882561066295148127787307975847633529683045839844789666976627341818828511750301014739139506784374704815028878066507138439187790214395203148503943444977185676472984439475969749459645984247662944445949965547010132657313798115528380097108351001603558784129858416788306004878593516291237061578732979497001124684567562250567638305960526728789823930480734122713976396245942647355040945347931240380884462423216720635162739086385864269841968278851047196688000490153381968245703028855124864363339019464509184211155478889674644146868481058757176023275235340677410956577707871648950503415008377617655177182534802654538177992902510477776221544271421221750453355076379051046972992322167916434720967068923188151573613340614853575706059886314199432871445414715878353378993934440129017324666964427723246991210489617454620953023403765417164808658924164539749901421866457904565746155418302685632136050865542669724038986230079716242435213592428574133594516689106047070605283840480236501088243788919742572866264729228912346689458485299235353504793317971581250787463740183081839511505923151663209026754392208649218529106192702709111073794041325107403757040855894238285160650975470869261422886634590777903705972355294383835686389083442044988842455077187560352990796464801100251405775548865969554605855333645458026678115535013928907019646808914196562032549103944819492954745141916826083402210632971346161003633377060391975272151447251646339582772138191491488265996510162382895054811211332487493280880465246129366781257027560413048576052458827441793143109702026742418690353809589261181859603282434247025895022385135958378288238413164136905470656135513024477506501852846141616737978415061151867133311626534950707249308914000772056526359570535137450535890700230801113051414497949251065465802493451324453278329283746044303702073467440161814087659105412207200756098061088379198350143873499161639796877698222528275550991235816872598934579957969637629178537796429876548729086053198686582032387066040832665176429124733083101973600484407627326967266500510718141290886787577817908778584269127267489978362321548728523648280992014014600632489584170002656198141683622315209472638996071661807036072638779420759074274297965109728598461543095269699961823869523444325664538433156422339314888233999394197204721227240519650038863276841771995501663778162982478549987497078572829994697765569959855627631942007884818435320116053874419629236828079174879671441726180663270722297913965165267079857457521163198246336157507441877440993416680159338790547987501325153959893420410036819569445990798112882219932842910022566410792915370443897980553389933544930430407401712413685134386494914261811300231138757128959614644581292733890863750556055618378809165602711668657230722624161303309867236162581180339124151846258829955458059342340352238170381710213726789150395655327801966324632354108611285422355463067152929313978874165681503316934069321340680093409936543058600896010535400022107666720383599580575712895296652986925919967459241416607308721376253873772055429201554087694848500489939091043163469947235389911127853323609678361752962808326567999668287661582822433263910662789087256790368371005347025580293875818080703012379522806261837291309663755860815535494212424958822719181951074165547448107774271479220485660892985275983737029739801006706091657200589287248889311313890447638654219061276303198001220794044342151840492252685088365742093114119177264594007554346597328310814125843377870771793771011672113472897090831229940620041260098043696374065105827526516686842317173454716613539440223903477914441383953750065908756194301122162441621664311349646320317127446976266593130421399417445501172028156066128875133855117948354908976924310748322957352264378943023084990961597016238621655891415451663717677176621692634497610447793976349749767521500843859234796799926196410696625214283643835888470349730909644937495113564946854058867612900232809968106410016710900923649818065765140331888485578022911127823803054475230877812957170421266531975664619551262507076996012005339602090240186914473036154974897297458571302484906301825735972843027535712192909811470231592258755429055677668700561758304293662770429683357107021430373706348601139815839949995518552467375327699614967788400756529377624865374785337704345455790112678559282542093416677025255731789254251384976309161526618062624025073310932980669906436653345758134019982835302555472138766180611241845990695441106237389001164523897419650952395927451770396364663488297165195597844009630465126415712691933450966685101970866816117224341539375398403941029808679798042524143123561796347445646545027074400686400251168930253025998685138355503941869143417137782212432609801854763228595007580237005398274933335363505898430818296954194417453531375474178403576363190521447873287682732194080498990985556974310500475410405941325056635821972214405544544555855813982853433684504099883689707160695276795690372342157143739442272382464941143631878314167323249641949848690671246083363894973753387647656403553822016166622923001435350060348372501422959855804306706244469445919821796209566351976633062465839709596136492397454847523225758912632133457567453775317627662790806314438034395725078436320787030201312415026163198938347399644196845944611729515508317293914128030360183037461837306195416086198087017099653081508513848458740751688464825240727493816416634971928993599188094091456538940595722336340131539476255943608426962217024068100331336505256355692419236811517234909108286809292715005209229514822814124415391907722133389665088190698210687115903930875343382599924531699812591960139067383462688648768547245718243524712844280207994845072805453024282490837011328277501368895653588127330903323625738804946000876023705328471996630459364636618389369954064555084356514435803906507412037915003853805917687510411474138135570776110749609872823175574345092441626710205429379412590324411072459290829028985325126847141145498315901324769126895803735946801201679397282161404766123428814291830259202295908651405244292525089547274289804072117165190924211979137460572004698014846913540893977298485289388461216331265923298633212115670643143023304422096655257862561627235555353624586078649605188055350985486613777515762856100975762311540956847675029489052490612691125468285759105065182404249252642742812208287646294344900443046401225673221102762347658223992058604105107680832617030758788673194715015127200459376429719025291357747120338608569465010732773571118849759484772743304639473734254114029418898236289929327329315419234155296798753687995490618839132578866888940121380062323991702217587739710038149752869866344087162909647088011486638424749080964531200422813999004816960410106092583719377929722604645809051985779327409789923878138908695570027828421859295864693086249403094766843406026521108460449294977414691880221637687614693986345782331172538797644857496155210491952375924407001535297967771791140952770874527621079185051487631898830383469073026118953630242494955148132668478151844200180666266632302424564728072367435773402652598502609106719211783820904259478137509017060246155670630191611401699633181492123397567587931537299072580987315797329986351328675642624925290300076993362371761492994985142460340493409263455643720750815804841370015400671358256971901644486125016486669397028376772844262312438715518163324229586189312707258854831154423776424492617004638200678280515685841709874067657863667122439380724324045064692156041193666190185213018304202464857900571362722076656431550584855373985637555773612434258517929618676041665037656350283961108291316553528461875910000098047954394823590915106574375473942666460136248094229162905435546898292093795275708912752810150647537390909404142287326553111728771864297212457497680131520039527502866830681925293509038507064441156550182688780267620614562073825023988133509518454817864551492925079835427352276379146265324430995454885958586141324350126069704961207275616419836828910371616047163461700742529808727383343507813131247141441389644336302893127365124399805581189004071532434739307416044774563009891732730390510113961253534581434059627072004271914494101009044737972438498515077763393619547851516699425559609598469435429534276361434144537906467317178243337927138964185059841807671045630950751002871120831164696075160243691602643218007163999961769457802072271805547419511477724703521740874904102989640281544014040932317489523570803286531890900597843990278168742847185644400667848724957930928434814615081765997058952084038480298679774156881424196362520657146451944818103145313704666917052208854828207704690706658441641403963605039416744840481598776261149033371368314649509180900839060965477563269777571748457169803705615783278563735685772418829212035587858689696361659676246795859407692293378310014739513794488693304336490153525447078298958274046800113504252058073471410711430520296687766982336348471554939370071714272668296975963139568875867052243087188466999752811373399228663341506128832062597225541771700118978729610143874887745369397110092421604480705911900055276502609310901605104490134945507905030179136753808358350067970040735471961932672423457551178143440765414585019033795220396106630656708236927859116689247481003695094480919132487443296985873569658676927192552816831232393339054813314277207551659214206114413896622990559376419063004528553274271457938767877363655342926801451114842132496672480842144149445140517639058677897072338847375270936152998799208662347044994234656708450241324588739498859877522016508995869593778147096043817793217050565941403376993230180857926883521111778879244088407044508311220480349285890945962245792155535712602796100471185808813554074715187051712632189078023852000910259858981839760921154941320563212657430828645270850832469282876314560765146130398551652014076309449597225398775915854249010081799673017002572963055846756277804498408322972531173304189886075322190094432252923612485096830720054479717153837842376484416551409546218273072305023509054214225119990649265892508201514431225894477815986844860218112751598154830040598475677010079902363692085818558172542517733350319324362545131907345828093168127602007640180687760222902332993295792665666785094839466356044949978259037008269270086727859462834192670747097171410578298323510872868333067915065353690779310203981906452036984037361030415660215804121133598479023407247536861686317058169773676039353320949327191141763787882217113383072963324456770112188216313507551615989221783419552430851165749252106029741122452099241873801279531801651557292220735763026694285960854461669239681026237089345126497420389599046266155242518901844071261215534166468613153513349102220801979813498020715731485412719042030284297176185396918986092023514772865862828242709651101774838674248603032960730250309726632661977909449139302037742922125324493769080576017987016523904825644764667107268077994132952888487262357241576047285522990725994819532869899270980906362071794038363563945682237260901660419449146205173345722897251005902676984762102832752650092109769884916918820275371784641171050818614865574405353379172562397367410737633685842310573892200605372621078630026279371320752574793659310085566629225653125960636456143053219167380035623170076708187063715097948610648157091746738829005333048385434047043088942850806258531992275053807543334751026187879762806441835443533957284106290356917225411499070671455177942030840716618909707675357737055986021115220370934024341115125051640744706758538161758198603822130567637159360048418668919279246024426937201517357023985583198669392286469522919146981979651690935953321458629385795183255974553125829710643863987992869107051729556966506285995246310221318771861984556933270426346434366258606506565339816678548991791676687761368508288540806849726294653084083613841012068034678144200737652231973683194792579586918220395091178049836931735196412491666010106668859843622305254996639646829601308192197125614665095000776734243287360350214113161856710937249360642300774676769535024890824713561293579027044380434764087004633769013588829269135557468219950345861796416262512298649924116446052686680752324143009910703059358341339359189133620549715920827124245720180561596480921411675723843293893373676167162320592298856807249504593948080522403367640290547665882997170749005522914652557514670113668385935739299509950701183022308786453830735037186610546426384533941263195839012008689440456765718467770294423612614177846338168889625531089890867827067794805642046471982676305210408542513213984236660392784578570473206393540614756088867186900016101510551649093696353117605291913872389285691054945441052300352656416441036215316155276829701563055803379808327539850038674469885068864298828486869429578980811935638635939338422831098202597988127316219016914874431324582121117156475633569740113449317749385156835818434975096197430948596609236007863587503567254972425107633733680157857393339773492784489801474597060091596370997631925647673922136447005813847423703925056953022345999568166799059588102905350251611969318203472982757421152342190759576885543141003552874128573937987175060483020543397802696711905774427126388342410786178320497220216637018923432811258455282053561508975941232649053774814505521649082561279959547186222458319545630152572628073998792542639796390322179686850894989388678004389774330076702943441265116011956066992135742767964614394366167099449021520064140935677173584947170440915684099970910467036323226094144139110865001309116298891091292253375916148590807526111373978543314089960638559422298339649548690899338576805347134727001524356824795131354025872846391218073956080239697221182172319648411476516413124605639500236317033746499497769780751994957544764136158028317186444141388101538828137076024034198479336358035779489141528496907288540446726301104041484998877454878332822216448327382683413249813035299668944028764591493055527460113352846094805002088492033375907628348960659882179861715196727093058255252135165664084245246293270165600876342779284489786705940506607208073320997615543078338761065590684771185897006707396298133571565433782118342030334500819726100264560566361805945717306805881485382693983964773760608037523327931053927935758867246751317390765910411973518167123244793019322203154370105109915860565148947537130343028508999222470942407984987711049176712869064046643195231576848233105584960194257017835775285143933536767936400564212474723546778873688865861069055563251510289180735632830179515686275904715846385974847737282990844977023779039855270698438223148797143674943483144653015512921723853187466219649361570180502441812023793547566940811802873309154620077473394658641935741938971622078924132883871540537819701871478921396961034068547141367320836347806154152177462172911687607073970675417432028941059333583460348987083175344052202335513981881081245009665013848386435962291795068250844026421993048325745625041763386591047641068874920825787938635965211619898302115158898044608919771746551731870381178429034529352999765584335421126276272851312277842210121329291124472398074943843197705238207874118785285296735180663556027006732526417195614413072414747985458448769031933477555879061044125789777454188402866154225824568515347422722150671581249744395243225379791718384778725250786368915419362993526806985021315459386128243723325950455327708610461097851260166490059336620260218431745297589437232750030543460350411150519402395882652667271322980712665444393523496729531876462271699633430313086147602625756684287354259427869613987367145994298187655390490943326984224129792122665384641050144914487940635959939844835190238775265983649088964485334115005680120231432360161799051282072040685389388956890485160496514152391195385408540642505858525860475762022974003025627972672471613261260762243073370657224197453060634526261626285975623964145459072701736414132340232537108658576158116471717331335655368026862366474474985835679221619777708884129176192949866119512104716484847592617926142756605372881988601851657334697180415544073190349592095042687412353576885380469997876531612052915794577613851048824363947621382011206912225299929662106149354980737424738694432668057944424257491082388738717559991124727249244217658116399501742852592914342325326300490537746670002213227369887099412894278706154703814474162558309099375371791790747458470427331516964490135200493975333115952794329812133883761452102759694929970821355104537649476350041523468888118695280358145710281076547355039973197778998287502282427850992942187078586385040505626357625862339468640887530120617527270315995589830532081119717702119917868794866470336630034558776096179549083648163849426901431906661054464426204642194302945664226158850872474234073839231291374594110844044209619780940296862974039286572551220037942725309647220976501538445445086390659503225681115503105515870259017830122006626551476497925922563319298638045364292573882717935826942136801151136250094390565572056061024990776151125951972718969709524202293615311592605166082686699911955934879978183823935133949508529856310864392565307626735601330740618969864281959385539004727527931801676218902243879922707487851375816603643357683192976960391407397254732932838681492792126931221017731082181539408961139893438031126939206923418593891506339415220431219325590555104854521615003285448298465301040115879683427337998781616668057790083321982291896811025791617271754409416617648251107194791143147178460938442550013349065457883276910471987109273605776099488656527660012829925214420744981957391832733873822442341078836506177764992124156664928088339340188301579003408434753083777963143044160571448720651966195953454508951421225408676430371301817539113840124402237258319592722212524545125426094500703017910835567586908604778949755096106727329888845470390027431960367284009292747460222458908848696001738735631043969948113361511734455053412531048457049048075655228463599004261990099100608593145202749881280154517030122257968466533583065750615696306261316145910384513129787156335891702361082947292086382087183611703772719716378751629654448122426760017092915633093589328269104223774685455707912303970891367768798481338930913994635007218043113425066239737963360002221850166600385609766302915159210988257060924624433870037019558662591591010926533640818858035317848604705768433408633508555412927033000123488258803761417674602239748757458207558334327631980728254824690981851853533870238511939300469101540389307412710765871546770252318507918609054287474117593942391531045974504151276971471334537086999836335651240541231629710012415771736042468619331571988365857212817812184410993258677935189225233920997533893231659173386658195100171844123660101253133529890793336443970961462495241273750936560355399731904885780086156525116546851216684334123652563629771116014786616861162580956648758442390078927593109789113408894744785670980562758877809542438821855900228120967474441525417558688290220186179515775113557435942984637199099229350101843192867180505378413445549698603912883193071195903601036711412984141635111416375314158788443015228378231974393836898406334734847295977163343805707287951789210738197858432964475743046865053237456640228822133014110399999596821279392317497724672451349083912919357014717168789029256938859112200323391040985890886394307196999353788444058987552119938777146720030106289251262173818953695452580235550353512256783443644470520574276583366166638355098175386295696596705388093909824919140008258934956540418038560999255646554065720303305535227572623928044181850111616743305629195209772583472232414550108533412568490956781237082882977345335778517152621121244357910951909941642222389505045813304331895471543952905360295286027965448576259200189443915530696655991770416923232247733969502325877487917811070968029285552248454830617393101454506299925358584839388805710895777327261812271561704614658243996839039866979987284243944381014410224322915505004798049292357609594641766567368408740129742663868235634377069519297106768647106734172000402785421461714283973327957786236194375239042803008703511378151422018903527007276882108297889639809671428173300897177992361379336939067822858365737675901746330311608041531640100524951235033355941261697633512098416452798395249161782231241471654226505173753496895063654481612137082972766429008993581394119314179034118401737607709708695550347982694615823773008554303790114610356787721088345494267124769058056691164452973052996973315551871881311113022534585266324141287913322236972972763426744782248094041157438829264947012266885195436470605728786289557319281641139249592137506958206896877630269273016534283600959132867826788107076013482719222541346753995298473633224597251078020889215158934855331693906265811868255243411497849333054802943505799196720734914878802491166923123407059133167037507782494120770544691492375779566686946954403290334101206106862812207463242131963571841485771255892410403290637563781100658804835800053239891580301205403388640379746694065966209727395176305157855287199504283520311120776983587428922546187229924133076858096657293814029936151303717166122162940923601004928523806420577215187914737207051779052045336053215914818023568438767320321191532280508611688606940310520857022939472659758518513520141839183302724090988849163353793597702282914524653274424012749587757161800224879862750842942731442840530144570779308168444064076295856584950153424092555459976321662022907839222196560332686499145237814339958500683998772148226953383897730952632369511337170461414987946308015002566962881360776448107403690237545629273022365666245720867666146021042139908848961271658054708466339345676962221230242552658246536114358019410171310592144772449709309775532924038827395584406331616762351694954576679890474354758156849908425803408862573628721352975342351748894594078923697535165760568440287434255336415743119516321066966096604816058232834339592251564563798234974478486545406340905330478532003930512790644891536936241362081389065703880776466460265220319119895423729189791363371067643974838238497801224874214454831041649665417130255460644883074844038864580276908662019311269544082415600606814928417027329616550885331084104254429479706391535992965423989792195387220524640043222680710677761730696833978551078892501613356156578103454439887334457785108489551347867531242448700615276837330436574003367751783416207186365780114281702875390844500906452213725225685834262223109365903862312004563523767027131231194038915838186281922301660541079610570684927062742565628929739695770054212324660383452490727340741392633665404518368647047922350614704407767388429501913989668612896956729723247893931554170340679760241961417497348959818126502214255528829717453200666651589091470816789715654491312658652674303286751179917513942500190240250838011413660543511341136901811493375228230855661229042806572886777878252790842846182811034168133713407232076172353785952982791228091664208404846885675844620233113726357711824425979256356543751529963223329571789134014058477844106289570916044731749883540673445586010197942663302220180927890676519148877889878447350696861153730491320371720127097713058872488067644047905633479602558275275565452666447494025900921012452198833178549892629503375035905105776994302644002959568202425819384457118121883067422929258855352666261810336109531947208821428501581827649733144385881182103315193257564156095605120910889944806572248194307946766334760310491076524401369788874211072660394602383430222597994878177520199252179381038256601740872213437964544481871025373484421068839980841578009059343368937148479791507849437621253302152810576446016936324554576135346917016113603097558231647269383653229196733652947699556396171890696562577668362351876797166197962233650281398627737385259680019669886586683223982026942285097069743818325320464153630006684163522403357679916944483903605131447038421882734856471025573373196975444324381971081799109778365123301656549161263343872165085612419877650260423277949132347171384154100668937233278847080918663446216775593384761334040654295373648330060648726345782385427788802227679288389377857656630072279545348170180335210720818056984389869936104879263502294260728518974109419199015616531106246152662480606504989603610261479086343028801732665984646339527607635210454550238472474936365394116165639756456134497336526379094565656148791237512498977018812967043222458190675604980286020448183681825268968956235281063233269813139797318110910560071559546663450462380070927115360844753559453244589529758674887218169872982777221888828753665816191530355770217061957628801930342620471030145898477712908369655896613775264114262843416697579556576950804369811254004996063224098367078304602557175170514458594193331146381112750709737634764184509199336867918870466321618934249073925819878599321934875403451723996042641084207830889869800539626335666671835246304280079589369018699592852939812939536349563230616964199354752859800642771443823490130177722418196685385249079685922818483690139773635120925915501151901125595757886832568550590137906284413146905981366093548945513588308823076851845271606144640903054488925268251293639709084875177171900922522260879308288944632392085958063410342178381024102211301583155971673968106223385440014160283926787812022979886957705109871213664349558351669449934706285879545220735231208237366287658065186924319176616366762323597465840821953590716203701424896005192295562633364075892784379444818583626678291315502441939896892082451697562341443070337900579849700059497229978284335071883543407566054101635404324191723849255632939528992572740800934580801515379277781172237008967658731568804576171963772706761752992161005000323611360170835139829694657129722625212402903435907525960463322380421522241929895657031859395390508462256643988693583201078816611604617875787339061468273241543348010922366926727000350911270005603731211214207026542077825212726480683008141935507600344575162101514811452307635292093079167575765317075284978122508823908841057237161891348391962979533068139655441803147343682815432088021412584013779760100628616566951247460229892401500684495194387540964818132246149322395661666240399543149783273440734969020465788618647909874010273313676431868411336521843301664331656321040940338585646306038666217683797356576784960214092873111352546621140121696386161657107570400004470895833080801024199681210812103815906128699513912303392824989392721340708317817137394323971699370415265535431065119893945130102644296888526068431845066307979432317918051230266507262340098876656835603808175553407725221158676665672333683318932992279977192016504576048140411381985252838558425359139181947927954535695254344033136993180356806766990274992716082861443440647360513595706851260169104565770641547800298858405599392780902251746543495973412977321937806879609749728207129519974068777366051105638011995373547819779314932645717401372039847103136028794252801344299218402947639351647946827629264382863822466330276071677637886622807535249402272047909149139146257517556145816898247369222559810713002932954517780821441107717252559804930738114407461958341958035935005671560949643116724986545395106254061595502696967945249213921051105511665676527998167885244960493110886996659469407352933787736668476323034552625584111520594496947004626928031256911317126928430303859289504542824520141702827424131609855591816644611674161078711442382058706541168179116292379712073413575781726721744553050635686553605509508841323287206049355307661322996266718490423767623908626229070907572320603644541189301601706835976832455720515273070992519473043097995907932141320118068841419296369648080191588271964246102263215837422233748462279124612696071631406951507402788308828084968819075640517617615576903699860806705310030277491711426126433727798810560324663338839435378982058222104860774592895410834627629011502816683250775398635034971638987213521218863418843660769643836633167434615370116167004299726498936726169520897773066196643047189741411784169062495276803559386849136862611303760653036302939175401994680207011387076365211790834444478399146653296370106456005943614295101143941130801212351933386563863211759428359785771859426227216066098207490079184751439943923912251570096923731283661815911312180030822878346568215564597947449307531993627745197520588569378983091038087659295931499349882599761108786207086361989977130631521574406896984482264844488153637948618203672363831310310799689525857023913889066008758562098456903157274732604149808507828065032127012696927984637662647234209738015515599436500233651551628427033334144349381465098980216947962733796133321847694250882549825965439708407240730457886881401623892415474423505372909139034898213943530171142904927987825672777836074897036971954882269667131482995576444642013727690449811283664376976694654500487390110518819968294268679803644461779625374617569842777689313863213276947849516154095234434575267746255070769542307163836713925795480642342194529285991420404052794359896646783848758440899628846596248593004123340983006783694797189168210286326160072615894222552073712928213516663716764371941111879908401520914209808293286819682573193075338677142001313075097969163400250563806053613455241153110304305567479912298737323302863943011421073909301765980584644474389674537092996716643611736907043145336950540400693014554189360497850997205379472899132265793649032894189370460912943108519386923148450231775496327767303723236319037678097046987927546514496422477857686629994324544670478594462061968624303487612146983199400612741210847289426254163898545729599814553519821873060855144746237593973297106571513466364445454612037239051791370034598765677659467876343614487556570692203464145555066998775233299068415482721177631599237934162279283448682277021403647444837976877414609636478739618072467640486508093990606837373320108616482210205504059123222951121162850608110543651978072238388274777009330275654531209774006418487049093216692472981744977163701569870982366365392466046171827312638730189690531070415007209032965935910358651774598444747203308395192128503557865279146463081274462823342862252610534720819371007020907566348684918875595239544287058541288849712067318590714693609688742990703516810185928766207618006828248641965871279098766000760944543008645218675409042273971460442725308225219295982249856954370623334187276223762525475876493412252656067067493399915078845435345062260707109592355557674748711510082475983945907933056727758769892850538528280262711781252754013708610358108147460628135456707949984003512880809884383483281202714093522854520713112083749642029860172024091051455063004187444760949382404609145288591087482191194906238834666743086382176217754933427911487330392289022210818013395573912402241566980730088288591010859094647380672445238989757774966605158283229759886759771522569750504340748248250253001820269165502155902759664751896597245139196584514841951850220727269594319908042496300037487953071149555296172573537803463894086377521793922712069689947170101615930450663410915978133974036391394790507096178088936905299748277027076269175140291626951608017372571539030937907217524240000240376950881509481234817887848595960744681795155853865802466397840639543555596206804310737510386510707330794360042834459064379691939749065505369459173656939654298781144219453300856780589872172389664376549922481503674043751212379533643739541493252064109794526310233816777450019918480559826074383002279828162446088866339434209623037733574326022927756761096594952491018048186810430494995292583721585060639589758707648092263881322234121954574807810959824860501464702467515178144997338287010265799480264650613755191686184361829746168565372814450104183176672455038612655534668288643007875643299133527510271181534929003952042985849567971655205999664004335003113112199506073231456099391735821718553532151182164070426445180859586189038688027942831004384522190937549869772354961859800593414016995045968178744861477754869744311131279629444221112734705634841905443629585764131222994493228921298628084173612096960788532456612742599987408074905186364168124079782379848043125813253905971355244787329773065779519153748677296015284596758325782528480246377047022375171935944900912615677081272903196005921381077106332660894964851611951309094481857458909184714965609308078401131562343055169238791502063993731884122224339270945598674454326268965566358642507969614986987893917760483996498666161648981819692088865422996501198839552460609590176569514375700856712334824044165931642311213871373731333385025372199702623372780405074078009509024514258776930477080789365261304766444302677014966063520003792285661234677069419138832707833735354045036979488967425111554657511564735138331483098978111125671800479768987922809451396984109525583460014641536240091123314640607046942777437037857839845507919927070778678205135855827420300161246701708797997006904924944674435130875413336017891099147568054564787884427538694380814780945742394338414703590454195707190183951117660559883468488039523997152895296835434417305863914837912873238905124588258010307706702610964295880847243031426497095593958583510584435575961430427715293844229365374818267046809541487769986458367681175907582861793626781213173474489550017069399010953579853113936879183127005013154280861886518700733944979773240525454147962530024300206532717719625691205612023271300749971490320785799252759602016404133359021327736153246666621870861484594936038089619407208495697857209758617682784384323215657195150713343356402685532251741764708162752386507948492874160543874539674613078150527761709851796935497092354525300463560166541523540999886451174004811435485309827186410803976957502500150741459683731271807948851730388686046043101449927960518965678925242377424950967515563875468153105092138494744948657578995536341238161757401903613106065457773470845083524458986574463516235293968063274757652409306296788946151514919679123909351678485712090571764078466175494781893577440721042085598441914976127066856983334808254016919364715233477380810660254666605182461716148121646775765231318437378638540098675211249637409602837528818059539598050371527629513514436267034359747707113330043964327197411899632148009858649440949012665819703852253189514846380667434897481164729582254555951643954786238531297259352304064613462435712120035580532256507849078080920773510549766912533319271315493955477356097018006738375146294271565510057331696667673895517462292466551528641736468356538174538258051885807491737432011320466209698616374076286268322892943115752155750500744426629735040825351491332117101486219758544963859834171881205078067455319809906621118604800403998885232303637608343350703478506844454091549902886286593559125112346007342430212687116077050752085836098021426894073365559344139588131956505044240480853838667610989918261400600130361833473473701855671996346781405793445295062564293057441263929543365701664321543050662726858803019670783598304692768234870327821092007548028622238401606860232686196321956421815194988004191393661107964837183186548770248306221124341884404176892967167803357577803970335804074922815055224008621971236415403597460049058771355560274532131914131761583422648278491323222599021546302235024346117640194634695230414984396528551322905625323728784371778774433181790152092561095000102840957856111955533003166122766076355656498907066603485477153960122984497911129625156594656180986404332309275253765793332287867315902220089355260873453632356334861038621916443233006361618591414881571331753709559856243957655067223343996083694336298173866759927236873763233086264920747991426865702668551673956297284205646093849799237504159527767104462097122419582166475291243604085556436199407410229174812512525768358481221978118824951924440829092663928129453587523921316222241335100097589232182895161343689911888515047336596872372660917628968752866037420885760461063993260365735492519166015269713192528476296260672289886363544304732365636236109638825119826163838299577590408602574007431587228618908395496813162809013064719941249069135634404128458518955024493934841250179366489351717555061695444238672246181557419747991979752700657537279637305769420430564126477882222012167772154788537819807227488065557495690847872402070893055944149139663393131641206046624180856287667053551705111260338422185570671970882690941649311140045175485510023121991234161114248271932880327437199895016519426596519749732872522911525939607847766993693511268455105850506609699689425562507417677112890647167709216532426975443309856115892909781753426672159363330091516963852875964857413651511976237976189131524465620665621413545192999975302139762175966885976425470498750718613420024003918227540991653736675018309372136787597943909514977868588167935530808578888903198959593264709021086303540429842316529524573639261533399292053113733930467815694158916718289799868577410181911679097440564958819579344951965937814955331826805311352497937192512564406310926387190962744322504711191155697784137913890670733667825183646030715552579895328174846564550069738012734015186377782252627219425033356946241091697054910229089150866576619970221976460292898271329464725803135707256130629670452222341634567413012584447913930418734832603693746277835598320146712537635569111248127605961214573242468150813095095782772249012757912313501778467003836430954855407095806031930208305716701192200469685207970413335509396238572344976891232932765693346464038024104127441300391627296544462700265716481397823663054483540069928468544487414570238346137476282268937472728891426149088497377379324718038935338137808474298739670207330511556668302499094245541020825073954814866530921440570843434375463441209028145555832146804002423491720896890305767154829767017613712947932208579423069741712715226854607808619718359060586265179818000553575988621739817273197993459697484855143269828933508874192386749925170502222243501645318783347585670111822947873370868476976607202434725365093141876520643151368448002605264726213577978451242042722993929563094151749051888569286045794965268739165468786418081447375954463985683241389317023443523163726542728863071084128791571111158997466932132443596373656311009441307077170917255429915753954926693868586950200145675411044249994414214501668116071460887539363196925694567422819706295736087318032707282509313707605594982676803876246191045657000073119926024565119573273608439507639455628163346405777553287238267917589987407927546245675526428077041264685761344174000042374984104403204230094143611817008603993923567193326400193135688440009809223299533917044142391025188925564965872067882026401468717640621714700397058878189182737986024975094214933273812388460745445796625969940644724012984951240472447305552702330690137773607414542413335668488259895190636179999306932469795717601293235373762393381922660434203383809932279107414147375573452559931069496829652890120688299155312311737480050083839805267910106010137971415989574858553071312710136813945688258502109583262298813288180452841869915797486940422682266961670795422484188852509221703666036850343867988257760981422819409230105045169238642677581747419925287410778175490590222910063618431454743623899498421384288592304819141812429064089091537628965600326390406247411117675267088976205398387552108277455955402183682910033954438628699237478570933883822792518916105872022279500962308013678378131300087147785284230917861330765147401826105035761556952559667021459800080541430340977927141379606723948773785687939387269251759530455571326451266471398023147985993784106203006480015024743212042953630104686495359321243637543100733029200134489800815377735565237099925819770919541789872937442356374153368887035116776978906279417093145440848298701368802040360973230423973975000753304726926594909468881716116542443163395958214406407814664839215684796325909565087039434998396033256542146585296700514210092277720943174780561297253362821287678777591686239412247345969398452524789640746941537099455629657554031646339541344591497144996014008003908961935200969914411133700258351127259399873298255576607358317089909327596496289661900898195914585778764845430133965489814671444406181057617448195370328811034342528060328863195293612348570415798105585178998286259398290961944046786990259865929776943450440968526849107940047837127046099187017557275900351860993960795631165205086350546847716340812094425895631677187240441873319838181388785736273974995196637964915572546920114155680197916399137572894553389606380512979492709091660845317909906481591290994132631968576805678657898067335485181420159768784444255447214224686182826243194830958583188340175256597135332967318001170971528292812617991649656892706981722142675739967239066552964537685582279004815383230558736790586159295181016929632908047879925665120706886225735311040084982459785941743225478483543034993567729953897922265187608883461543869016093630087319815075827956866719772887816685709938637276432162742652156004763882141493008663754084838839862254016199672404787645370912113755585330927096094482964779711848505484954101020392853731947748028116054945154746186847546424505724828681376674035896448235568343186051770236029130050381966918416835425317670715005479362415539131573929359926956276147757263190642971365699158461203485056683780299999646250981253124873105487213733881646910884230768499852072197977401488040424414990313252124947465376305618368251733354966202546049702257526636533367478645289451117753206314482557529284028984648545699313567694846417930652552799668143128223447122946566248326243621276142053443706451927883882686784935032161778735710407612494244052496896992690292170850252875657062509256691395178935312793882144186041435925785823550357775202123834195604497305513516677681761578867263609833730799228035788956860224506020794534479841950419161237694949704784240857467896074397601219673682578464397201869774834686997860750639028556705753349213079222431966443370687678011102057344774357957601862879268728835973914190257764631865126148424137118521112323612807229139472007035577628438247058008071687033119617738468342421964310601624098693373924177358900294741728169019264322661734781110742753301446814186455582705858503243116829003109548083622113821974875051036094267852126050712285290012650744826927981113439656851286539810379049325117071014873944995676345885118965540015017751041111751073232386548342549082258587354990584049037883876288928447144776747734881948606206680798427473707035190085186580081427805773185760885950801790061706074549999054844818208664947987325932593169857363501071423159704882525461047507800740304492984618716045648873416286566706857878028349235554377499422159434652633668125592938261757221769400008485750512789630829121101377891628827373268464700440316198329057029026580885069991609160357708307136986988640921323426757116417234485579528324912930788817291815357171468359318122032643206012393579325955077111039337894154796601237145296176429594899429062355862266487709333907422560269871779430270619573889572778003781765784484860198268085707888137721981623593902140879968600610597561532065533187616503952150881897617795072307107611322564645710663091806836769740655987633897830962802909358735201396178499567439189714755868169277395607426208371248904058703244692621309168988323639273029623402232484928508934715836941240810978534494582449170124988765252314114083395811200944252851087166322240917517228423239491280664268702555452278642918933352562972070391081153155854661692337262581915368269612364495640396651842296237941142570927521880608024257082872288987229324273307569928959671402884919838944078471317295639394781846900297742758727028065360943853338619879310846024253351447097499751692364434321695841689321095275405681320896061703619300022461119132713593497394009067875466169241411447972980879357143420063895344108399101332277943455497865284921918141873699200056905539151578876681103098577993150298342855766113678241686821416607495296743684392020398916865418191776566374187133437849848121592124387781617457342787769194063047777180494784421105135161247822877696087792133158464611913378483262230646749791768355808080783146517876592085880125007639779388701871216076115812549397212331143773991030927235671521214940029446175491080077478680966665266551391373622926630925041987086918454839070366985952282615218361181587629843394334954198158327721990185084812050451474926918832246761835818809586735726967967270233501132216524881785855799928389490034702603152275357978769496341186763649852480950767665467062720896758862060643987823412811456419698865172930982482459712551998143034831043076018621754235516777160666623369665693919395424910913239923740798422681488012916657446397767265638186185030078970985381076854894382470027430399489768472385800176254916763535316611902306842213977699359587823234136598730421818799140535990054864848660821357948216112068940679148440348867136911924789643861681495962185141973211692498663846808751397643583962081062903509760609357818331347118895365989381862490786064490775031883419342136392824252808908684562167252480134023477681955862384881299291594732704932474022039072570788705627954745688836397743184452884613792353771185252834525113419719343976287303966231907547295285707318119324382263969750689480164955070081416155735052178349161550847043803277477878172121840151462074888563358417557329386688266361888373641681374114856635906325725003273187508355284190460619667258876484038302219446965801574699573322858214213716399657846813264978698590720338826804622586520321677823689394147153905055153044936509581245181812201814809728340054140378337602787252604417913007284882093078354773204214980590916360759863444601276130358121157203902671077385787434660218478305680887798862801805219902329104693760679292529615664212212326449749866420235942621929066997511126008198667448395529119393823720885196749396503336398559376463503647026445761112515210849662293755635287945826335378915383703486724827993760446685476958768261853607383016390137239624526946094251259268244765727902903137350929429277298786970211773104238845642459150181144431041760293868323708583575899910451362159063278738074877358623756246562573036636619110292863689532959414545657089506464532742258305394901612311560074825040755373025002603710693363934611366890389876576636849465914045449344021760971725863979157595932893300691128249299732632099732099146225336152779768546657616147281832129554112822992867174381896804976367750257311985604515783763417591395562078826792778363329812542162416537276018834620847624257103319482605019787945587299651810548853793431134497452940565902266772287358553849548370355204339220040958650232877995052678181850425410475348354992525740175935530221034072455003215401999107303664959510195124246369981842788637738685741488538685806620730448489358724075160297551070536482233159236628439532849451214571011658019685058730043288653579120208674832044540720486045016384696725871781236921010838633023514177962674170873117508744569035737601420410175608102919949334279067045985467730102797499218190909659602771191675603258770457566193115587615263377858911591392830499733758611828419088038118630250902378776436122458321117837462574080749625184424334407792460761249178345704807660691002716353546625302253772510961445760984514805826163346483845270100445999761279300170403082818253844439143649323101775766992424619458766434250217531053090856184463325651912466490104076300260100781571171561473943837943388504653930380852173485288882249381749841554129714765077873206260502111003400474843289667089601842046461174007608391354611523557112891487488436566771622087391689103359161246637659604934874506130583555973327793127115527811840652343964750505023141211124830393798496216697725113137603625297763927909463678375457572529602610210101106050811632644157818874965743047793789135439702065537793192513714784841457789097647235595875913441446326555433952950751497596968263979341796356839446611661070026057883860977872387566232585527015977146765335441071605879856437974944404564421885853457771173007023827615642184379282284329577346815049366320772727809435297599734551517623822891614933885724822424708488456547332962442300051642855400061650272159294878479926934218309086531025431078150525918262282509694342454411229197077522411556680005344566189042243414947827923669335386307422181162395938259553343505462676749558717675886809533145564928163260245449554921984502218562386877714263868582445603167394399086587533042832203778424410471383855612808427770961198530409660478933182211146214168613271618822679173099149226944886797476744245806252662797816109008979859377706328643549155156546355429764155305956383281518731130630188267172765815000137014965843220329939472401108440215791416460122760787415689788723837477664179771773930433401372537700922401234438873283484756317744113893564304912991825019767826045209953131204336516884405448336169299900538758560142155375646776311185987232248284970569358822752059171517447524086365096521089877027658444851569158886505771086181905503457633124829847193831320135205982231776547678711300931390864471981952693203043118448725503877053414406450329919125177830857747286657404929209936838176833038430214664539791665316210978755717870336358584995550638435355343890429291145684454539912748197973009341766655699657229490730069088428241283175266379468002419728111354806757688087817420801578751211412391115350626389448807041149671301498919959932817993190088981156524968354555612624521255253579122645972812927698429867793962647351492230560315806471637283787345242554927669379749408073095142076668884557804236966562361248502687532932056863096913356533812825963223590370411683064711209310971366732573137521813602822412174501414233413095924003008195852879100535126265078352423235921895750700753998608073380509321028955041953861639305653975646741170953956463115111729769640238717014377749965228556584026802280123285831826578795325983330528610388556201396201532657393753153607353051877755854171690675423634550578799137523718246337341502476893616842763968442345853543051040182623798013574580262957455699395417280689739050280026247711900223369909290825038833492482618485367791508402341948675628978424936163057561666001509595671402351975170466782994143283442423311565077436155892499078546865427150730344810589759301743000227953032188117286732490209409930186377093139613424768140372177398682876524224695565078040645537879027822378627190115104016913881032213534340896763249547726119030982034032563268157343652788667332758472201577424355833419717610012440609325090529033759766847717939001470497167851980055861500608795456841203789993531149167524350587420533047592363534038560881576771210050464079698950658472651971124713240675350949380101124276419294564115896026799273926007207644199904734153455725527217508567642970696563318325760748914532542435756465629881343388656678526760039197911685138546617705996814774792023731846978670311067930357996146491833733829380227059545681014417431641250118717085434280906877269520613517136955848672011013478674495582067858419609797380154215545456739627700652881564838103606947300870484290005085817555246140079409860248083470926895072407636692978137950502942907663988644473746512499262163101598259726827476442289068613433283223367096356193227885770464784062256055756034408205100255800399868595159407678928765969174189771398733575535935845701071147839536607418004757610386936292791266497221386901767539390049217199503410539328108732778142266225103032606243821393339309959232587357551656231549412553681141514256152116300447834360988326637172163930567291363496333920675621979769204003128405587992005263787510412624841764087546384158593713173800947403761381539945106053110995971853314794212232456958033841505678100277121400386965467641918217688998232287894089480927068052705421032805309071871534837938758615790734468563745756300304474897232570319524974691236952672346954825242393482759048681393741022361984092060793388804701621533312822020555330550953989380767972788460273647926149559384795991541541766746142931795144325860564013806204907174355557189403294093554271567541296639991502599002332358571195003449575518308638305500172286883460645897302295892963697178275626218686264224888839863083273401980141458128207545459393735279894371740936806157531628874626548243699580566119510992212136372672363880990349812714172237999950775521344819020110638320927097804449446421311018474022311307882420693110586376671393563201489647841204237764017960055663026956065206216889341349938951391077564441044453283658758557277190479166259180768952456172923086696026554477773560329132660632870739481022279898113268420444607079487216424161546549231919963420739123999139502483336834422227039938195995131685810254783938368981501784102952891840766266367091827969668301146776464437222036535667780199913943970611574690045396066154252136225639698191375838464112377888038778251685547706086133487126183570354643774337749841255014984613024386465920807132442308604422699776680652507170496940391478947959008739634323064635325278684651221678010975789223172493068826509687525964731219016124301527787110985304955483986091469331203982314231802454708810838724099008397078239321365880291920500723769176718150299274823983321298251438871968411682626077948236686731993473573763647163192750545213812552737663187212880779605044502460426167723878738734726436459522108038667559430024666723202223303495367519871072565878278096321210770927994703325935130531725765789505890442054701614221348077570206033237501151646156957402792113271788794683295419965965561854510192030722049556918134719797223879925663272647354642691454689950535013865026755553891113646060474319581782513376493045719906506511838066426718046577495563259770880162822077728951625772029388444430351876458628006291283375392049359483588620747366037222730178782720950726261454660484361185331968271716637342268769361487966446976282777268367252546728440784210320527495934925131945778224517495632389311202418888420142689600189999728314819524297960154387800386126484413131592997614410342913041658214667292609310385471397455556045637220725590154684820106894482780448244355457473471749703320781597817894100970075470954913188261240407711204055958566607863595921628061358495940281562513190051480004270713537119399678798904994762160429831775383217289188501618549178804910773392225062298512936437414925015615468513184171679703501809598768526018442718053874811640431529783493514228325087672195151972714687620174438990602090889403269671648179509639744052236697101951904296296665108959890359050832383030112426954219761970151994787666045697025152792160478820270603378714911273017467744278557066150017433043459680256556421207481986124076019139126651077325277718574198550559260402409446452437365843660507936883758332155420184774627261489846997324491567942248131058747682564153916974461968722246820537529911453842355247136531782269833091671918771796758334322450927969120785041451047753527774730476328213738283711699100824763781250043523230479891320318410728624305105344620639940625237017198943224979791545683975083382325361313001651226256940589668021045847725144680790533982979590928023936924274340108403471967048136164412210582632722339328608143441855194010145357107202050460132427937138853321686606874549925351184905337957068859297994661865607864795348983043304092775906551967502806481307497184699788312861744191667017602877979020959142555140642712640255892659249752185342789516937232918835598985680751607209316857909069464302890427581754961741642264320275295070788738657176348234722785940444481141660377924115057697396057130815920522870405544518246817654152507448158245104504197543642240157013983887193799176706925297756810657365935086765273713751147742418460932833181529238981629641289608999805598099198177138386899561035148422183172244718722333002170745352912940580184544950164517908974531353119275068867449148791087608041434765202411663172757916691246761187765833981886190114358922619316114840351717416264199675327645535893429200990331657403166348988459499682855245325816879748596372389268877726112445869669694616413880636498480139877024072605445112384838926049809190334754334212194142840786330841641300009700164865683845050126734122650512215707678724484259711093369690424646063797733076863814816812048241802581060241020879504088088983653767312713501841639988788988721428947316779123033446550584190656573893802842737745669850053352867273023996887457489418114761820440424716905833462203754023813928626838349077559055144419893112337222603596734124006420696963550612638355361650255290597949080700993485875838022841279146960234887615082520539095635869248174127101290952515057635177923137039737854258458371410813960010483846475488904317574216786951761256717042174948080853706708732879108399949919327704025397422543835064942945912260170307077319133585184548331995239661883714438269764766445490848007787689664209606384918885622537792507938270524740728866657811035732083100420270139200326062376111429079366145544258662182803811828821578215106018168788112081913549281741499270945589963703548678365389887359940484101447013566519463447486035076004633806928483868398740435340894716223617910452330771939604498473403967670966229711381942729724102956900690190406882288822991482633109556095882625141760145701692978132992310022979446166365616965465059016279190134496423296826370716510285451222264988672659899831979743164846812037921700859250488300344105848543315480084984129774317219783184622877967591905237703636117175354695818911852982599442937287561432359224749706673303441576024419289143342919074741041058818472525378763328558437883737336084678029542221668330950009835362731633419712204118135827783152371146915038885841591164923798106007576619906720038316934709220131597810938929958712867158493376312078034611811571687540381015245042054618213104109643046208547150634719452224506816891559939024739504093504534178379886235807044388074591533842570882103697111210433186854907146765417895592599787564129420586738288007132576502143405640576514159263872732526567220453305545757434232984248827349729655278418216810132131204892541799622962722320831875042858727316395619754213312541673052683684454960960519226478503663015582751289009288316363824777035998944211286438373457016982112852321752031574773844274185450202721458825687327854512458825000441095866184992562749814995020521086791430947684480955262543190289717684039763740460920036774221448467353651446261948199874970332156456170869768039916837062615057304874676926696031945511775367140688899223534075724341418470476097457319869240338143529190722376648075026404867571004003729053760966990801267628710966905583921586077555742101449188852820660003874207780423159551777069878163476453887034674864503284886641232352071022010881798596758945051350434491589212052586663336381244508638679598053283301533592054482711989595970132926641363362722284048747879714225781488472513304649953247331943629346509279454032651597534933502404577871740094437326402040385143729285661378732589382834712304850547698499273241397720654203916142471994199568765942853546083038602704924512938989778314132990862742261695046527011317020709473762327673081260194040036324858040728142598235347686875094751588745742750326363266495315621472394104473578139880863366603978179631576708051529122167610762792991556775119215262516303292278905276414352547891427530779312259526619039569474045173138935925902437276445376658246265535651111256536458382285467825693693057662482816343214212550996476661144376068832463812537802326110753491600553255128262629515100254087496397473592695589629819726896755811658766149108150896958102321193421400868077904612325954220056533382906845023714302818038226179659557772336572576749196317176840711058475621449070379889113116900853078358713919871217511759351675321269385717713790841512661062820170103896451220167017768880321296891452263026313880706098635685386556413415333454515891991634080052757148723011279226373392712048532354762908042623793855160234160046786521287245039481289142413843254302155531795400107176699830986582194946713827930664381386200703661434278013714268087068560505288013260167923041630542787178818124370965548736398905340648838140196265455437325156263452941062705110050152867563218432772759150128385710738840678691252415383937772337988028702113005976444684570475895334125886275874901124354946812474459648856063576407426036702098882586126688314417354531624147817116354011652608334171173479724620029963532544162633461381973931740907082643170123466703464230163455449998861923154662099056484635028766365212408334359800931420691423994118871968680873952084403321785047390881087832738025663671933191914212883471268647694897121155751941905756958161616677434439276582678617094729795734953207835267354758482415945841529774507140855092856527644030936511144106714195335990586626652793098314244364326594341096025498112118753551911505910454972480249286387232519727489737624621225729973033706587926628030088424467442951892487634513205368752120838999055352711706204402157406229218018553598091359491619580225769399027031444641167322081948972026413533078246916208670774046227703854414580677875811699050352026945543826044345552576005131676772897945855421635253668317466472694082117456117839013632774508713438346953123782817955941769285365915821191496812117541270067430807110691093360390386214040295852070714582045038664241450040823430917233751974313602145080061562803524376404346018528156025334197746687022476622921319325678621209993598366517147305071593763106083297960189291856301496794838581185830944477507972987964530203105754991982958833906640622850025275160983715019940328263121085138565704935487183140595368364274097314304466593638767598374126049863698193673300881687330219663735229436206564825947690278899790182483058852320779854496064569091339672269350757520080144403285246798251311196035491535912598339471445925753014066794904112280358643326111925049223461886761458465328373661558589464138892235865949505792489384876951413024724459675772826701273273705889953505795043141202809611816350049836475387850373885710570319828474789444806442398323282775990742762936978641245642151899749475281374349918654334777253021731650056432989220792858596228651764048153315999686628335101853399922644826515453052090557779475632928821356141915588558940982034084791836770813794970304050516349600788317487546879717392962563565407614269102575347492836235154732719921290165052287620292832394607896159114437081884050829148460562638379274781390339123692516552444683121118284050899826554266482236035168791783566709648760236552548925033183388331041616119139519672835279091339551751016435656156957222141946248638690183509713476872619570177413382454145928807221685649998873601480192051666953961522479102466064801989419757704852628370910263137356091994554491047951282094951499692768566422187683932193339515808845131097404726986686469270199318127960793345586122679584130922818111258315431175583395137446542679048205040680669977998894346789169144678238547627924303020915478549250672468782611890581538775669785146275515288232751066412995129091649412240589217104704629601186946819716774817327370579633392670173398479003920409762756843082859856810001327010790203416605376513931903424941582034102528772608195909042112860990979808443722768850208574901987431797035567958143685468660920535428100462269804138078984940135695763679309452985503809732886277863281094977165903846758135421093470378288089897259845073701039244089957233217147620637466966767329766986973276161103989800433466327004384807078976116986199808137588373861986096421708436822268367231869094743215888258810516266024312687976202848470398098986082756472919172362208404802732708572184257251814981870425888945686204426232754722563628804268318060717157845688539526792450421363101607974234493318980542990208955545157144076710229500575806822902674108579820387968787455738128499669501851109248977831555151104465665659568105977849214539138519856902273903159071634147456653455040667811548624099781756312605844806962361855544924652021785555500269586650027996048777110593873671257227995301860421379663210016546829901774494580065181140621956227559873389576400297002817783594516958930576725339950099785273282430496042028370642757648233001621903050963775268359667090587484161717529374520931962221682421850379148774639941207471653817300306419542090940220674440183893843657171918374922023482756232774676658865610788568749759373156507682882170973648447668192360905345709106813806155632492530350094119584688674448226572548009408006649009553841044895405578226843438654655101744227199621460252611360166012564430639827734594474124700203916983655323713976545698009769064229720686026496554650409505329961357011542776086879054597464213287926808238703377781933426440470306440523379078490954089833688203431449744187219132763053503406700344582564509880307820618141051854969265004218609922698351707989204970421080869223360940131704542982553233630914292934445666505960658159995062076066615856734205166503407983623280063145764738146010473323120933907349608414660205787614789171362179082428193549771396583986895399677546552955676510448350028432196268798016120063155933880332415881146878443223331388078640291868008258624332767700235985642707172065289748633722203465237606463797432772003005457316596967587501091910492858371905994058142962101106604187135312453300661267910105124325034589773731491019814443529295085510829356440741263068104798988402782302183709445529493778200834562023852241026279347080020506473366691874072135503701402384527908612507499964710244917440601394182584494518510274091952974142166515383487010643808738296500572368746950940815822141413820351077905573231575532919077782001826386296830498779282774005709921268597534140788681266521782397115242385989536963528696914251147678341227155578076212271132515678186120143133299295164375210447061164228467459269417119564915927094959747808105854759296139675970993127506603919538822694721086491626083958282213456111307904481105351556525008700715111513874622956507489103721063034598870558619740427482648856304613550916778314205094284197205644636274656354698362791002365707724474379101963350563027174832242646722511432002468531759374491288819613800303752758813862205420919294312800748933794588131357289221980986677927613747421551581159312147254066022681652766535515082527382652868602170160567230190579976046780440123014228129812967768492104099889864200633079929877926012501728077648683771993188080557408630469477974997786419439015433336157811596145768727978301725157701554536142647601147021209163626842032954328427667938384141856050133713860567015154340425075999098517818936315254192492445137458186299409803974233445183593282416893404685060785076817746055105946565018654048112998181534209684883534545396071715640403282297605012195473064851602542250532416232846005270328169573886634591165955131744787309830236745718024959573202330753261269763735753672345714287404219154530028332597131686426245285714102411802425599352693627641017144050920921473535683225424539813577607841421551177361971628481446972546015402426046219544265005548009749425519347627634336474797470534123127157450488388691444169731752187731480432145502429401860406413550325548827160810802108203901449767515650033542541356036617765726164632726372393498066182207667571107616289069654715198728046973519799675141754407263838019531465303869387929234456101526431463253875292320743911003194830695324030679048907823314530095997056214677248206954403942881823033173056460183505941876490240723511546189417160025100745539338312721132692342410055192732522110793044472084762031922373088024911852779740466395159216561763510789225354178376369258161477752797272678529871336197003970457098169839506985015691857757056397617355197004581196077253247902670960874631349514812236636632642390687373436266031361897978659390061661131326928262928062303265227600861678688000447618489573227738310039229771806662228607379119797838755531520924210609163151161536104454906272805569942569413688298994115033334094842388898553800428582075040440926615482771375017294752430194643108363133108635299385255329112084187359697935036617802712396648351292167168109150331561958689244433874749917034962310560129903805594641226145585496756385737172897417177880098600931401619709163508746131687434237156669633237818573552393792422744543739034825435925561030459956810131828968713705557730617678741356172234819283153827703289290109206857626789048463664461721897992081882248404500578462237986942636407748511856643661224598622637617882619189855058828832839489122521678467171135560149165619098308287576332887095467123075183617353270427443372265373781961070420065122695881085600813424561176739632555457291394891084212994997905759351524611790801932600944886452108115613238546830459198350778577408451588525177179839429201073309400424954512558228499109706419874292020536664308937225822675199414230228731784690983822722140417954578883073394613390957274273499573842152298315792069496295707399505871609002974735652523059916443152966873431771440959561552003038106179002275635132516618777211780515334431543933627242505696209431886528925600097615372549013325142959649482442969565747172661472790378538392776284537972621432098222364338108296714215446920110513637434327447213192421253064348370019253574635905823279002451058147524113918210496039701162158972765788272404542762194489167665278762552485173825270036908564174076040254172166891202520012046174900632968904797036041036168817941148063601446965337647734373538398140994222684605429127166887898986658219312142169666327289253097928842640760579633773499914290777631970567809715267063512940849343233790023631463148592542734548103935806066991722488689102637291642502670370435363937184575300612044046174002896388051893257636900374239683137361821997720762688008706005467489733035650956594725377253547597342763265353515765613038728804323428954056243074903387260215440499433588291338744915521802032207820721680370551282682691143547003136681908791756179695995868712573714581142809588524654881538103746415499887028442610358418770932463388843727880320492649443426331997863069436977701972470744334792654164515102080229312817746466623267547388940798941065354785017523264069016174109068274552670521868833756898443894285797758543184968230337662117033661301646586795509536343872441250721957219954197056190899559404997104186350381207995353084605648941754581907199786980456075529552986011505791404297568417853496936926005713998538854508699241568573491829763782637997286528348923270533041200262777524991167622454157339862145657983087823742602246060681944198133922047595037295477190030975928796673766132195343555443257460356805376434832479917453210846728873331871671416562638329470284808940306284369098584153694596484639474774975172694354626190228953246571650261322240700881226052498564918727390167449853102053522222939230192393445795031506786345906823601875471261325338459531989240213037556406129536349631513077390266513269753778183755885990104149198404019424376317583197655657710812233525989792241265341980512130590445259927231389829555509280713456016331704549277424297756428663146522369395589402407907942975245132003641135108098548931097132671554554778434309997075402943700064734620664976127510880861353978839627275997772017686666380527710572273466253280077589778203001058952059721410057724714097867464433370960313886113821474759740584727664717941999062743380295670520112549461133870100112634922803517132302194810994725477648926270134155044613133111038975046372226667263776103957278929241087359646812799931342439218571718344689759220899872554224702173825993985720689806989568591113847388008832766373042010992710827857037098839014223397266186942756679304637191070661456176698291742218095493342814533795906788877269781630814368063744808393170376614793438693964859125339532397174054571254224083388529329458935180057719256808625882233863805935035127892807474185355518928653402868703218415832239288838821383251475137545061241880837226040496390304960268940947506876250166516236511543703056331481736038277691842176715514377255360959513109878304326335242959182989147588790961522632179442757984922866438592557370731683930291602707705170856553043378501274601140078931159133808123575515808891879144772226348523308996091200388184796580386726500034174540315022556435899911968449881117571216239599544532916807205651974935676702965556034946705915827858036149147548805931141419091813721589665040552145631648962771952247490146935294428405611463002503692814679357888491222497291242301215308516844257412700056896213980030043482048483210412550906851301245366258499382594756747283984511232192340193928105182999872402699094794142356221702187029317445112918794064900294932322178147904910534321438051985709842819407338510067301305982841419551757716988278434109088233955862187555711640681809665093586206253867513521514404736298331206762093063466014643684860053205522505117997783120006113252179181609256943084827455446374459568918538765267502589184763250062035985570600906971582136284697295832302552362563281267697826806840682858916647464852260873539425753140187101223042831553952940692027670561946992498994619565404145271575944888464915701701838922243754735027475517479955183194491210730285685498019542003394259132764176404172758375887223124222332622499855335752488954767381120743285801223822767657173699184230689213455464815197714242061411308717549167737096589467538815822166854943437385997563899019905135271133525522642104482167736806821670701300264866704660776439013041575235362816923008982313181613040622978362539351278972764624613870477444200524122099937893937494984944720412702061992477264740034583603149634991936933481627152529755389856612727271619476098245979394108554535750397261170756199576262424311513344787516035593355205062481796668133764678561325320400935818696258582563295074417848568861939755753714252169871748592413846698727094667383236669990949589466743506236593201154371921386024475530989732816443960149708219250157564216165876028921220737145770677797687262324800372471456639166526301705543893271929490622762966260204424891368695928127019757342275750073234564345341213891910725422641456144767342245905938004299594400510170059079709192497332869486542973862532139698051610217003910249724730579360836198498829915115424831814955700834980892028947398258875118740950702219013676924729088727979946252399394284348025219295782757263450878052114797952290723775421132094154649122361220514146576060631523496605653434940617158545276557268099081705341290876535156549702372962122042547709032678064009651843352241070833575147854990367778082721783817513860882797818843001743344431982186804500240051045184621192622332869248668681425010912628678809601985765554823745924300588904419603917522175393071859279338058758097834227477129338238081685673881455553863186888362084516317135690207367944208304678694808904444523554176330601255015251048926969347601034506508556940295770965202310213856568336347959287117972310018177203526135717419256320561483815858803711454555870108706070207811421460794962559819540649250123633507604283155517542995244960622344559087685328700826582561023273881728422984281537060972248559823349629053952682111501643004774234456704381546832674276997486597329330122556325640251591291092249945443049900086877702768507394187258579729880188393665836220952804103855245777590609527029271135156774106802209361360969126316588489102351492522647927774004376913932608569526249420464406263175697199576693390009745965998826730688214402274048718810300897851776684555059552363277597505334881723002473892267621956898314998112061900105809457493868519725146328072376945810008563736049147386318824348943768529595976776799602422227691511894808773544934952533146964356016146522653750754011528227164460117868788655621402755894311393381361575087718652679900644700327596857688726731626276785182863754084558094780846291463298119198946413800982839106616096898200481101189468573066173390196520855277910117110826385232290250086356505347245287540973672865790195953544484480825161349594983122626585277855600859124220136326447963692568739600775757328377212209999654708825357638876975407833046753028842024380702792335774557651013440298232609299318816846382900350910036215445834795948125786902433929460987030591913163705691675828519271904746134841886827221117416345207546332463005846894910138291957551693820979080282742731238308995189708312539140035858202694086114297273983097414733023217230353514036839786071165646260180346884152280215218850548142439251222731766568530618732700343421123519337783520225691156235532887084406373193895177089398338012024450818794857793252976929418692243915768161519760549384824504316200396405977790860107513511947396978409077568039623233366308222012358310318380176659483146545044859013398424443799084997484695759580383048530099246789401148278601222331794496509839144102517204455587915881669161874038329704223728300485880966903665211344996145355335923915356781037302579490538419686222193322537469249313055607997675017077304519589610334980898207266324661966931189931499122908938788025464987903179786339015635771888964155256522471514712915866802427645702582396439717725863678633521778252032649181665259350391994050340257518059999342087447927910041340823883160779224814978425003282240614464042085732440396393888984954335011983851078143095929074278504629990534903715284060024543380847550662938231055306335341797034672625172840823774023632900017627836013896486632951936752721570316912089835096043228183237230981731521394772452101527702441010355924742945959407561773696718296172403807821427403015299006035412844327727441355823989600824585088826280072112638460716169355999090122785032371135354692279059849105584466836752351893279807025050419934509087013544871102494428235978307390945356886984242269705177708195506166547376269173347716741244071487416386407337980196823613764244153339055723027903158330180393061849882108489985258884096500994705889523159236651714125596163129315627001735546877622843387695164901037003819164232949598826184680677078890365079360024118910729300387288293875710705362424279157051772587109375886967924475592036697825607168130336259582393699645251690560399027466117579868489059575993175708349091258867002282712099880595549879982838087480620153727230023706144315172371928633278348528724845881210314023451721512222796674807963202237475969808630972149782436406085512282936050768153638167117169792934242640950161319673691451917668951051120910483114284440480957192833919998190727879789829644164786856510080813652607924126746872436588798447227540389051787486142351140437663711029432395694737237187099040542815855043724048428397374336575108083313163655806701108703875665423701383385172935456486206865581609510600171816763166185287899405775839849620708829152544839041742134128890045896490189312168997788362613682813971115164598382116208152658819763986162487810423957617076365247030782162878884582730410315548306777978922571831212278822505644238833715988115312953298910538760488805253822932020607908541297222670232512005287871594429446100000638290721499709069279920486463665944364938111579547729214715266638129819301537201706831517211152617247690456128846069437568497850877147484410703458815590572087790164586604872465506148993859906074505526053973571353077195473753024278550177255385954073141373089165780245836942862691198993281117444978101573021909940804020656962888854684365317904177626184399643493467105630405898096974498931434658125718297360044352797794318658422225187834903848915501819948186318592133855516651967569575726142946619992039036792309418908989776013767852380042411107428490748968864505407629855504725800696647692869250122204718923380608044089213574430271838410799649914438445707662992627155431043825906508405809187437419052520812120081728791934477418742567320828376284374764478234801272453319590383182934408363328423637581413395441627843401580888908607724982382093877320259095443507157094378530159777136437906411581979117992587305527424331303659359008567484332972306060914137448032971303138171644364118636127759786326204814044999759438056008250310781279344705723413364473574030542097831511418092906276796284972412025207799715337179859940803410380636267494738477116181110884853758087179855360711380672268543847217246630695167876833221612735469706733736617527626103374362384389908991955210046367365665969716742122486774841587475667612843354261423285318195274715526493441589701776500320126938002157387041891524844476940270256289483179330660338293700291441334088319857664659714347254643470007939646916918692158215754175451516637764745390379468808753549888867512908368492509287346539016975703684726630691095690320770586903823873321916078732798749255056424302941893108791175480865194034128499280230461082361650616773419942459250163203936281478441978138135913657492620140432906471489641541815672241118295751411272850390231117308883550517295947575642130367260238630604663515794814598003385114429557041640469192396157830786176512090683105591100300517723145450228929350387700243575444225733714545729478464005690704958645230627449447792394788969247611940619577781457433161045053797102352737706786005692770125891537101560174785752116693242897677101134326435264030850632229316716921726611874710797209099809575991200166668266069756030500335147809654383339084708404681816891069383535889095103466684822961215045636358543205605854031747574261343752575153879344934453421307392931594083447563105290211459192863820374502121609822110938999409210589837960414138707098378128191538679040069370140055975329741146219370759568773718373266264363289811049712150164591291151515009422949213274066695327790893379401395924871124982541150622734639312770483338208202585201267342222444648294476340240900300227706564872132095668198669931636874389967939800070721511195071207035556570434612412173379025823818646442053415684974505524751371297597742472384946765762104483568282928837728200689424634297025081802383924754782680121095891001307950396579187484295663657644347518336308626522342400195184816392860515015280752965984213057492511979772822359845360742694215817302893861542356844543472336702380402817141686904867952706447257424922402903360038128342858075127677027159555907349789740226818254497294286196830312661324277161165284599745571908591299991424134753370332254589272280307230005354082487853764802305081774430316189767029571397677735075471484419661874583282168572441820775131678502491486433685579178452830095442025560337065048982178271523805786727588066521063667400233882970557639954825766664440227903415613498431278401970041771637470675514339741968418346437366938864046982246722445962312119546951813340880859154744346976390314863620850573258026248227532806843880496545406414009026125210306389254864203031753956062676824000240734353403001779173011606000802740598313287559051886624856894534970997825607758781658509676385901251164701976090302291500668170156361236365086722681099338683473229845514406252571224649632841095508819817995297672326555513460834292836548214916287513857168226527227376227177191934227140551977248427349130889176724409431317943923185883161168245934502850804854685989085524089072637424180692175410058357802358781361966689257631895687982999334624032976062708762042813022414420380786409124961859872644224943852668039300106500322405769394083903856062555971644162183237571779919060511428350678951271785470414720980847690062020798369116820119096635776174729701065187534317478987507722100071888326022417828351814313226556934767292313255423744181835457831677776075111720496056817356040594879076705804202100873976059274720212157088275194909162314658908130877043610004593218090058022382932065942943052879261196482622172778541393996874506228372476228854093808181408989036337923817916237707265282914950072354402444277989649444552139644983353995006217162248636317588508701045204190435723731284183945573386191215193502324742445383354599325642563104886108918847633401796851504884297016749676889694266170090766063784238094395658236034164194308936721305288251872166943213735741223984247499147743466900301694639757102833061736761841068562167719609203903392822212686768011979305838169051169759762988394391300920606808530432860115656403056349039247172665190244285393547042452851124784143964945972640025126752102853782051301666191005597291772266980269272715213697111850681565250757685808740007884682444222866561408030794408368618580233215829492933625352031405309128313308888313115606355780838382163620682448430486119563218051449171715765945331529603919350504525269933768714306478373545270675071189816682662616296934200276147447774053036724057691536611149119930937014561185430628342000462571395988748492791875641421585301154770059639757642833550248959548716484082905878989778022825496392289638582906412793957868304295054186112982016978008163058569902798411747561720433683370428805904632532520152329367197378153753892155624897214372020002530137778382181181920176647453432337425697412778887145227313818323658791949926864384846173538785503638059204907256365923135541014207227529656901151430181771010495922335162612086942657501444133316291558023376140284202371729464258865869735329299565821079453876483982952329665130553930040522348168027948037871655430384426225195814255393254670356057088155841244836078198086585635492617444032030477135207411852405201265805678772796339774623292144470604158849084472430082034153288276101566921678005060996176045654677877492274770377068239949626562180711074426532807032356529037854133610820932909851732352202786566477484025334075738117852499087293153394499763293472256596057347331003537077241223993394977608301694321616194218453264065967627828637497710875224570137136533575037624051811550418749454012685810450939875184680268960336167989356838573431551355043682745691651217396081996633530083561406893014006332945281668419757833158724166919355018726703305970126809572704056868339664840212666954976794562873716253859222416304458193681284133558241361912599940262959712407195845562300134413898844119413844407220035929582999470606687124874350155746102598012359054863403266558214717701254841986284527223744012478101383948147434923977061664995520338744260698750776411561096060419865691399233930865177024545147719306521388841226193978344369080162274233925418345329594912110704556561168794929965456840058737425854930302390096215596691826081137219188449195553911490480980238866757126747267317263610057160890880537699165003279240542858696766382365736729689228759790245814582184008360740809282840801093183129737874667741963143810523140910726544839092548501850816707491858604510830162474174467830676025769418113459302798962070352505401189137437881419627124280979540600531020123310911352655062814998170520659325461037439158709162679096947129736908481136734234911257761215340402323566000428768170338781840168382022615074312930066776369380089852781853153702946940667577072496379492401754040495014590453526504871162116672972045188966093693046587778284351222990023021619305384302479065741696042729530680831557861605082276217194148479901126099880247581858754971650292405207515552715413242983847003885246061415105203856221663640956328938340391824352467947622444463828585099721247829135496563849438761832065161038838079142945839808903748562713276088656377656567188123029135570802807309706897367746950780002708796565069868749827693406757900002941994434554788288336391012521502342289513690691825199486135679904157254243732742540290251839977422437731415840142128497523716605799614831205644195366274264048899419195688470525606987733727732626577275932559499953063478360428274923687361891243833828012770549729815336361101051550947786096800860290399559685086212271419096242671742491955776316713230228760192790039582264544970980802483507993262928349369712979485283488759467628656442110842141449034629033042793246675810425193634959524531484325574044286898080095174781566768222850755055526001128861076578768901994101395449716776194503180060948125311604930835209800281469035996322374797468382121810461828597611165788987944530838919383031723857788139174341122218187898364078021688988767513551620000373426343191885663115362433810680624543746072562915781370317766893558152021655080897254845768614987485193920306408720875017890094381486805356668824814533574749762584882602655428028638737129981307352136457728173268541219502194429926905410848474969352307923767482183031796026325086327185237343818858761845071361314634939182159358072379445466827606181401783100141239377187483426505165144261397782379483474179903744565081960071750740624194868196507678850382773091671175964593114472317170012584927951093979239573476253766044803524771195802596262511148950897217512004641739295585053933947456114341879602629650823092811985559025971103216348211294312834276112614906785968863630775958013022202441316368600522960687203897761084744030573835740328301467916470082039237650558120638065521509233204095864764145301485639173397298925937613298854679838600543061286553894453298859539439625946127943683469680014786278789463396929562770152491263748095264540168883515656475594056407685525753706947397266599839609140497521608061605839771483343685206300193479165006747503127612740067455959403062900262413672633185523447186604502533587464711337472696773585191016786271596656754471493888137078532274707899264669206912849205474036540388872791333027342847456166700374326491359490591563436765136463344007703509882723694574423145308255588430498155818775648206261673769561779961241197543966237762503577491722016601464283021932462176601582797449613632907223701461689684468435898144959908082563715121861550026144566993182755626702531527094815878537710215091126476966357332528691269191757124382735901422459274659046271328679530884461525669961402675512483974007088798477829968152419199182843890668077520171226797322959687523708711095638450261817763573057577195072737847954376347448141932487685750737541365604839805063181840566665111313017367044448049769276709450073743618186783872063718473185897305882188525241741878534514186053186883546739233384717021251874223546742077770038244365087692920173957633879682823204297165133234205632174818697385252185988164036904151734938534744994413425289234911304707281571832124937826469067204799649251867701537253626027881402453102474072730994532678482769639387946094421608012701703094836554691899377544787572094255540225925340484872760695932137780492593831496438611759305907582470608609189340255159475071957578753887500034640390235680037515496612607916076217564438735319662371795049452297274125706134700964307825883788001513033420100725032672557805912059116145069797289252786758065827664458340410204000756502206760650489561190179707671312234369888051379226619632067892802500973122845930326405667208440328840074475046634111974035230619446175606734587692464203066350893073419329191742607801055968035596071413812938445440134546821475186970972240083200860881046639099816218354764757823440948713478990124285114973566804774786353685907063714173536738893009912182469617302638761301882591386211381228540268174817224968879686843150391396086743316758332525400051745100120205337050722787031304673644597188590662417911301720718598933866352279419035296397529474864722738634646297233800866275666260549040921034251200314292259544138082585292602591455111482326293002639300219204980137061585359463767576956052484738709150755747108086971322684658700052750475895218550209930830470498440698390007659094812990948465324117912306108537751261960207496098111416910249014851402721373709774559737705252182237397691219057984754324674608245712385211647736396378135493813967505268678688687392521013141062118384330092895285922493616419402884781947785846990877820730859237814010732571715204417922925601356408465071177917816109098170387685488418296608474189464829540388725154052223710691297076174706454652598463435986933793977270549162953366313478003819940873999712277731410444326465526895939143151487786624021037700737249271398002396788048314568239441859281639274558264294587381313286334575331845638531247705294712153863120936879356055074896409566331970162228053995217022735499323302361019633930539594416662316814187418935713205055216321112920357345269283266709626922519397704403679431396117351081749981307298018289498426800246834098775675897447805568812197292788224915218466616124081255333091126285970861687559798941541000355476859455373401133923055878632234138362745954419001323249994793773620295890681869093657206555526042346665501828132829662341494398531915556500938803213562425792112132673967268357586084501886477796723617842635451317505673782237052937944030377837455234287329865116086891822909643890693957919177990398764459974886969992528379633285340357765387380937593431794224691870887109714531302138432353861906456422738501362976196544544278130158410630695308242553135914166932847084902937886501129678879638137758379270206447158623027884369472933215384039655272275884752693247033109564339452137262305216444479354255968911181297066127705378714500111185126314409273692586003953313741153665222122288042563220862600257720942433155183121569814769542754940740908052366511184537675881592569991708212668071322539359416677352235934954704618667295355578450192913747159725596161091257628896489489189371068646876012042792191286574577263781660864231670520412593842720503711818709357232250225158650742554302283510520187297583114138196645564042443023415748958256995592485789857155104477061997228693097139311702763420036935512165046517760630831425792019830936168370724591412536941876236105538310802431143827380748732026398140789826228054696015240541057064249580902513099868146019889320878123112285419706941380063515449368772597815255693661623555950569452001910391047864181927661024716414618479206881756730591299006069536086813329359352162324390232923447910153045097623622678074353714201539220247945326002447026736294604276600343772355053216490757704591328308460360427350519733077079891963035588705463797780857779946501499499383874472174426184996689940370197317940680344787199761860350588332463205312100419556318359676307677912489060200517341788592691474774790721975900801872499986997860583034066852233770168224449264418580605039745776656367167608190116839143282760170780094743288358653318456847953320824494759874065261548890922646997703549005993575309198810413365198091902840544151559583833699595571601903930560314499741307619248991470833451188213131457473024731952366329589166359793654985320768818862981315992353560468923665705787274274766751355366424925358622965320810768145127378975931425981273471565296710890831309853494143439882395933355517971265357555329168543080217097375796941666409050655725828505080586661677557803533941214555248847895214144814221617404745823232919606611556053082457731257207896418546253683393805972286992992414046942876322289448576062390334782748342390605510151611536527314777741269608170984342130297297529813480760756331739182699237880528768527223158694028381672999635051220232189799568540090202642716868008272464733903615083664191251811200513525486696244397961265121294593967320169594288349005347782156551316350189745589263429830465027087587387697296817561791140662068214577900264538715857166943314506527301729949904489638039459462620417836057237164539904590377867646852812186332312332430613077304775373440063006466290868198647674718687664194799157092350753858089194817500003057141008388085803042606694719405494859644072948290081609465131129311547601192511422953651105164684788715368984747030725609574606441992219676480400254164931127731516014850249767324355803006385256515695285800629268393935363363860453706813593789042154044513749841018265813692903151046524992380491058287241802914600570835916794281069801077084602735112423642882050197955305177390931501133510584060147896696453335339450675246834979635760042345881366621283699330113334755070723560434120960680744178627785199669538903577313682979052333155933302540146595400501803463046630639565968287418481791351862735436102887362407942446193445545438985027363354614898307562982076937379970302885132360155178878522510022507507084774798826652016723087686356673069782783045834181419475052049597231177171424017691194533134717195451432419310181291236510092591022627865922700398285090019618733157282938011702613124075947138790764557771057765505382597871215159522672391144240018535281752952262407689046943350229511035228369337565899963953757879633992388360954421276119553947070415526214863982611233712045668117246217333841352194175701837313596845184500413520552682167314295899035178198604902782947455026508640293045672996075543650509167496743350404845180501132083358394664526710396129915639343270494044967788865081053131320213686635436993468275959038442227316971349435096969522171559397951945201952843393694590633759488439918919547652349452755112889067910978931718655129000204662516979961430156009656246134748781841647791887237073592769755850178418237756414719178655474904621452202432555301755445783584633698780730342569753804995037180893926805843558665739730695283633162259953667677332899537120325485832951811134485034081411049892153412261410050634953365863942321246418921862790629415134464248889051308447882949707769647504828354704731909284979888725334225692582783191628990088793894645397157888404258328997596766208326231660604040768328568705077753149463693601462795201018863324747171544530876044659509835262068009607795857623810945583999075986738439209604007088440220092426199791817731823225310479335741511306152750066789880765688171161321760838346379174570272494442842297121168631783793124977009352895611447851911643469490092774926099397753283888989436579261074470556497080652934246955665895235301758572375039195766664818636620534406213207695350304168124471479678873906313336438003907751357594018450137828311349677151848128768149492073037961546155768689732033490717678796774463220228638079565838317871506388430548847420825196195691142673029167562164865662311869233835515541262529476397692464044413097712354304194351234922107830127194557624106454309274320251815204556469415300676141368796272871742523418626821935049515259357342487506543174294736304710736892014685235101324617272507127580359655541257620182598493723123772004558671381604666650931876841675962943679135482880311131205270262491874018583753484596093892673212644671807472813078690246149618238597853079899092677085656206713631186818392950265219465107496641175945329221523696351752236691366289035615728383687104598613957256398121936289176605872470538693457729111902940945403646861574951332809059660816707185199690307675764539088233634018899618977851504975497066415015234481353864657540003654713321374779526508621056353140925030165702743719428172789414036119359402695881791380047465506826055839071209758794508167176421566355934143811383955504680683708447067415991161790749199905160601610657476479482038117617813020053409928037488461618631012264499011292952325124406897176855981717889082973328660216683980099161958091996331358597552034747039444904359029817232801422906621945835668970408402696301898459678511168602749722408787626453566147216959378211085893523836083295914717163262886159058102906874099081593604961424887820468737188100637429860084683326472775394213636297736038120210198187950668894692886020233616382341099187757260049782446014927115662364088296662866655384625549357293456299715020934253654481825759698440068923295370898695260850832238266726657015864098439961154837742462891293717388109328200129349767868268375484331032350963998289990643731863881492447732197379107723991827579689159174094462289195507032227590261812016855811936662687396228726918288388933520246644018143861376993844537730273875689922645761950904114827796465374387335434978727642165247421563469093456590766941980465385678725309213959692697161839825896973536694967565037836269630587909167831547085986237564747167435848218982813798259244744040853206566264571323276336672074693916421895038267394435780426585820072948799311921766647525170040948364238252724829101727352169601268454039128309021276987849577639599484387741718266946335910110492510622119721016329017790371094590424966448433739488762327756944087285072386290996365499547716820917772422493076191220862092359604190755998367690473022869077427739092898741258269542257962103396676806008771503557511023333402508971492739723427810438892964241513132251288679346787140490028125782526400049659087079188784515487958459852771965538379675548613436648483115082147721788752636857187956020513978515615381507455925992177244149672490127892130939820000389205128692424420509171861877776576119033672522139071270866466879153002138342368245014088104499717333204190842667062953544295807479139222046235649146230140364756719028717570523594916748536234796324579012729019042068287192172865980957272636547692288230616555653060198994473659044078438353904386116338794406767169792533671098267423641254197482287815425607622714841887742933052769613760114217750970752650500495531006342930772593794758913795285438634727887747478115207403241350088342373136375738155377398153175332082354774989188003731876386216069226281808925795509483499137487067595137145500348257302432364322948506864394224107544579823828105545925899406230187726248484950505934602504381783578472309582089321016312020165899961144794210701641673409963362379044398244323188872195275361207587757139970893438896203839873643961598619241180584250213540456833922277104063014613517646716367405862682398333867817636865082392845858474906412834340441505126907281819769767521720480337136442477294441271508305609005925748565775205902256330463104807085184106431177954741017373358582153347846319529606476464297649339375453540838448964052186184226996689779076138719919119615042169225599067579019580687651255043740165409504006735701639148384652151427325583252878544315277854790969035628669555479604827126353612154533105879714630743402360959006445498507866113386890283445727332866076625487589212082020957153183268328406296640884134170262742204391834408912007400662171430987782415581823647276675877529983358611843514393551501562061517168043293806850597761776694579171805302976836967953504746498616854319856346894773367688841236134309763633662687149576482167838933978461261176324090096832427459049881524423131921028179674768534498810863725475983797709975516637652689827555126047854634286461668172554571811596245613224097288932184220400555102669674806197413343433037369742398984630895109486362878845353018713475114939291085185012383367537945846308780664705508985620724482624162644668761288242453851796485748041187268732343195598966255353471660028240519745760252591472853633473687449307358618735534070750988227989567626713401520508351569294832368289779462814119784355441701018294793215054085032020822466144560689276877887302375116665561618070785852755453085648940163399666330942840833239702579546006322413952826381719166064089606991094730405276639633583448361954624113753532201949608638778415034818588289640715507373369962958983379778328940207779411151266887933428743036697149956337028619257730981454783286122087035631477911598678483672247352275294903166854650091977506484722298462569911351751479554079684984807212267783625659163815580804043801742959384766772601878853099885076367596163735469180452649904117287973635402931907619101536456422508673735919138508341470545218646749960963393688568746094012842235151374423704175037221670405728430947038938940446005657660782753037590621310622811735854861311414152374253696180752187535132032989454792811658591423425379288363026675352008973152138885131348478668193668448914287785269980942508013191924802370176616700896779077615122517053342720700563504959741731543596868327348185734542711232872017746999669179147530171515834003172107108491270917210980247749685585948039244390278352827612840797811595568895412302380265488962867821774466875842982874809713823990198252096866192847722245184742349082353275275315511505688855983988079799964754859579515441274101874821331739565168979776641660501408455272173472175472615256601619245704612738771737794084281658690359672774966680363280233608540138159002336218167339667790303928600489456360604099042990728147940090769460022648365613265422611316510593137278312055655022013099403679910040751867742530156195817090479040926086150302988000793424418437696639771862055832039973896876048268437920598401021030383348258805790031524892270598215215581956825113875255208994488858652879403257438181795036381767357411412236077856618443914022968807994881722134981775019537328256201318152226403666700335508450135887431053038098216702114065026473948282901918728352145225857745234790780754046350866497442251554358894909629157804287313093100427924206125306573572572373203705324832674911341013624951610722916974455088262792496099190294783771106137995047863078493549135584001145433390171154640654492239669020996752880495386668632726160130072784395221063057654975141094815630287422538457852316139080841054752326421363010655562285804391241995565366022688331917023973887456466013633664564150435122017533362158556180353037461865067770382345256794790226593796741919604451491923408362284380836260539252174365567595287913569158318859892081667609108118836028036255136362647606823439063046476107802890969776197428627907225816152371329729374228716104978565432337699084821100168845663492084452107713745579515009810609990511468201555636089432814722227459716595831363394819750223704977325453856393731081235681648582386904647757851304106786416329778968312793024190598424099939115233373661244489310926169943250908923210922499073941662062770904319049775494016616204924326209822415786038536199504839266150404178786491740343779642557021661186373461143195929633432256180842673025397500992304795396384773807028378522977135367780259364788363193754773502443019057185674236086378260917437292682228812152498536185445309511552666711456897313470017951934410082866565619346420363722758118515057082749632635378652947671302240867486731007993430196007845389449285253883712864611660819330565071503857662728304039121801438160850130498280262693011327190960113988780863620213659054933616473914102459721070829797807338066643936653635823075672052969692857963800270019441889834199545920085589292732289662236571259128179004563710575665188988821091254656208996252564532859982335033978475360504148546478404142476611473496558651252309965538386516028300730249446395806539502643649426884601266726911087921088220773267587004950572988806485702010439618622585904375740229875645565261770159969637249518100421420879973675244184957419940963494704645895909412081415060754294809848996733654660904539551524644086972565192950900892017562649570525103775745038245495065165919174463918058986902590303450289836207946407049141189670976563133331595444518673280314487241429157805440575998695098872857841183320437529223929994268866819999596788471494842348609674755930807941476782657430371265602851059893139424569157706632840714669475689917898525522414631825876911603122866591183849074715340110698822820289122217179381511891350635221966842211512375103650223546247324276812899795515041834729851332211194011974344588676826153893702157208821173687918483604760934710415910866618540818373173745787754213993209065232703061679837097205730774964250079600592553656311398051179498813701177459853541898658240823386970359967152155497017748446840702076520734495408057438254121806190006262554580330874348216898582597706892156393218694885325287854769257151575611191215434960954879624740492697905793656797852385461595408350771723266387314744560832643170797278320326342878543432788484913279443762925234647246263702599105873186219853615055003701704258540718607763847403247758012869567149243311436621534802284287946347939534039745365106034793968249137932352996634207975481429357744026009030768890861236890893228341576921273127761663577873353203867542036256729257873386429515206117765037675031566305232691434699042226142298998256939001439193654743461431497343998026296470492491804278853780958235019866121679317370345898106567253362518735001488166386331002589653724063907380452723823730491010440245857670306699933307957517865219685246174339008240167135403993274006875470754034225774315497863861776221183731939485658340806171390106144695811075238099057181181781895814431359778769921039313584737762433973269186851111124723358017250138002174316591960881738038916520834892776110921986254795576100632604292520728898487967787555133686838346902400154203682065108071410560167438478922882426393554423981152871954354448157387285465221305293041669715301362523995320415183079931836817387009252608497476557556754206195449672185117949823810428371882423674948239311175468215975943751222150034716508149454504837483256895370051026772343041956607226582672811174200870448630042967176032382586947056216169762988332417810751789423170139555465054186602813820465546084192390356039422734996804675754070969907502875562569263612501046973151161184901878763612172020423523537472580070582641928538898423415536857964143960607728753935501372287121544051708450018859267543957246518174368057574650382548327248415945472208840470340188086127417769134946017142937573065613571954210569247312008697316649310990487091029194697287272261537395042689599873316872178424444100311651090334025745690191709527725338078267974276755676027977461604237971553222309804903302129957470748946561561775852629157082011807802603567398335946475106950267757244933476238797799387248932800602600395296667636144156664778476271803025972803157975997182341712854317885001619679853592607911556407449121850764598604785609280426864682151873019140579057812786873186282996733907467725532441297334905871459115103616738126528969997717114605885006708116941976376576342557364408973213132115173828396223748203454249627570498637644163557106139072634002129403066894623589770575684868528951735077146184658568937779701645148940378047307234033147712900150843017447181896385146789941047568759600081112776614186938269529761146185899410266818781929998102169576587278410134776118296886786047190907580716111368483267443629107415690275190912550354409495766779227594780630693223882911256380442444011401044141309017509495907208073397459681777564280382310265676034431403245731903049978724411471499291284389705231803187007016156661906702420953738744169930157892758012115788310095605035443565919087921590505904101226927509369732749240282075785752284469949242166964087163381846904952667694137036098796954203811505365139428967799636700164123757162369017440390613301917987803983651106938764948743050555879626595467095419307055765694783884346663351563927569557962024728378318501648969428941743795982774371559885952732961497134257835415273678055375290282814322295032552635947797304571733346198362337726561877850658549663348319320758257925459041740317098435247203922637856332155192178820064872479725058796906529369441299071410041303793113590053853406812601702433556332923636326603992367707119313609632321832251507549715359061177053898821981054439219160600218273490768433050552865398562645302058474874265701658510814878433926397073689522424681575783882325367914075865782501666357970837049296239548873102422108484239216377311181656461562471843035460172820515575001336239734452305599156913452771939774795455854029277425887074669736738664159534086550233342503283463856562842004276748656225725974000863027586636742065289680070999005607347900192170579338586016698378873816668865357423536934952035049045018325261711424646852799402176089305294186583974737416506058472160184578249734795195017737855086383094747913447246985834998729613628581093410374858976920630087723063172512159129580811670099962653584215857824038917321575716424464151180483487548071705821005634039165725179777939343664312947630418917874698945930616080566798332101701070782520373206858953065103913640978967776541075452988917937534843607736889885612280465706208397251933601457315324788620139909228491492113076614629284697874027174855067640710345781762594129388051745265177496798732702659350498036178140934108998645240880795282306668275268833146001786052759805944752829050965162603381599094786320167522310413370552867758088159457381421262789204370673714967313142524705157556175489694943383555403649603242234289222208668313813083911383357489529369236335323404016819811193078093460142018927497334130151160451193542658148320872477711873218125417895345601083732141533365422812703096565095815188281690164913109350545529709574603660526818544768860223571002939158504959293049676864988716292944070197841605879326888904441266179506313140622225719699026013306056258069420886105347559728292240592249904435438216339215180704691398942763243255247506760122383874306808287729104166533451227963356992039863846175247326128926648973797465172502043298685618654124471407988428203773610390472183268705732909298470908172334307144946942403379868892201114670603504181508467618783790766107384176315334300199119062954846627078155103699047409634555532670182165120536298707023672258350867038231936149094636675830783155552034923577355237636079794702096176684750564928974928847348220430061150988673358776575597081862174511570558542695519947404623253479949219742143078152513686841783101997350399599233816071679723290183095692126070807111251541287544231438021441080841098578776609446418124177160357301675708727036981820477380447777632593074363538435785131714391114583802923136490383993540721651478736475573739476398596543078481934542520172643107510311963261824909034708484845169253664477454467556100793975861404725542333240663368732445702620945858016912467339777219653045807843166370703135334215865062724879953410095885159912435496399836222240216969574196109508338050350898839057079836684823259174860971185807794312087874680865745664973257791218540900890461820157400734726356253985536465081824180477874792153618013197413491809416033480736232214606015415484676002906608106538589144517061080149910992747843251504733777317513695668155381261844874121117605566388971546048149401177411612356069252984611154628969325427877165533954093554022722818225967553380323695160090528265777553983817930455569308330658716657813562013312129785220679441033452291453377680759409053400598891046160918732849082783121344925392805869544210833076561991794743917600168400017964494397626185340727618667617534866440768446566160770163446459990562350010498332075967663601426195992952817648623267361449427681873217631367750175158198810340106755941379204821322675907307140752788047771209634947953819478244960933041226791376118380831135088240044822571195040364930202075099205505568147174797122574981239686857315776547575699789945451264468942454121574124725610438335135753522257129589343570392054391543842970384168128723309495476594241323160639046346338928408154340113836561932157412777603070157125105328032628782740918101986457131337355325513394969321767158701476098177685380035351557910816938044318072934566399298476411716211167550506538024499725550113106655979287251337387992512899175401507450870038337281854679716166451887892343376370079824226690233899449359510935357300959483850004529892720479523330571433905080937955509623445759942336294922032784135988479063055962843941341270410235329530435346089887387292841933504170434194626925444167180628177202349148593722151509585336424182919180611717254727098293972658352766624192406600201429049636488571376490133398543937187822420869068183307791519290224434790797109727332279908378383743981237014035017014720097436735653574814395556539060129774685771555875516293276465640249301331809709269971675902039901466126518320344924914979769097474468748661429146269172774765530669827136178681766960501220496972380065106073219067700065219144060843435095112128597066629272833530516221741185933609235068549135158900158054722307592356314874087213930491840888590458214240217788000392919478294365914045974372440160799362303210239294356843928916021192043412884517933040012666619405878690349407911753428199930124714657448454194718906679388902915215773086452306077675725240447342609828964184723759228639523405418854476124261796347962283816628599921679482078089904460963523071309872387369366579655344435464999615950389511037177590385632103631125747783568173242532313503162131460550359043476758193656563400688518347891845129502710967835206512335491939955590281553115516213646136218679937709788366007627899553166176838873463760219677254286600935012739101040983373027580745545327681863860898116108164462130317204271929788320232694002777226115483380199276723513172072099754363733517148262311756092999421457015978596608047523800681550926261288486641588679315034350692454020862577577726957108658084038201006941568598504748467489311413450861258952433717567190758050390589634922648672540091948604502697727030529767451246261338397144318917773276058606921222122463849133923793049336466495103068575686350601359734765439215229365495026863871132722346589336523748596116637746770550983800607566913894947014262391212763599531508869547329563481960223507544289071145646616409001584702257440770448996716521858920728556026558839632451650677554783388610052567534749411899444102637500272312686598332795416521773326778660977849442370873054396743351808882323120002456192812491086329794609606038362168230208996610269955187631006551621022084595682015888246694834488079035208949776041632452119004819034532923909071824879789710589473316211630387696209589529682899908962874383245304454366567402174474746341375933843722050277274290752767804854866188649097397883669530948707176325139733859858816046548521068264422425090287506300152105217437075882866774225283761355679068298447028047208652396320210738817710268382826480962672959933299529025147660197390741875950894444075605894852196510019099441798704422549254384096709746760670763056009367652860238856797329891891180333837024521680730213812513663212817900455536108584353538855205515659171980454683210077578784881426750595775660385200127559485596000928188726188578888580397331900820839246982026278970421016945331688087611689452959533664724310275299210600827019584255006707102826622661306807187019133240147070435819136888160909870759771171674479940278467517660182265390510313716550506941850779539099953379197471426167871222842697316854475447534584840333830005448056053930321495600179297016706400226353342180816709901699689311731433802854814217909631530941692291287621695231607336135551086350609059527872182317950151392679672592053637432061086198049932425600218081286276488821088024593865567641953232607730862368039166656611521316836804469809984616375101518141488798095784024468566934453507687227257318009396453536321126245648213269781383312659173083940083789332491597713152699060079163222072164706449735501198260829417215751692437417089476690785134459728966921988301810196190101883350775308184782796162761363581741084226978750229724475217362868824807374135276457834667396548456792253877502341344754579104946033308537186437010719206569587822189570299986737714293863314703638435208364590539297632086888995488037893215996025663995249612525414960191657748458682579384399035256791428527380219621344129951669699816516164179926970576903956297962383469352813914171875926755758131422401732056328661309269154166420874774264574306931790877308500030947492154595542499789104137796701354143235040860435752672115164336852394477242341907957458624786971113948431616415343067952113126473975562571148923788508893812563229783155901010094094858336287530005664775722997140204377158562740931182968647777943515059416033241884963892437804891621944844880480097304068732015135694880003399678466880140736234158738009942705343274901064730351144379718313519629487901150204730156662025722385239526199325339498013181008450191156689019041679884053456687078012599732942480790463870023934493710435031331347054890474730008802706155686559591547048123955392312362481311547801902699857475201893820816854464050000113712545972677801965758025174725021309791043809370490229757755168687979257955136516107465485530916805917785603510681981524343086597883669098228140087679911068819789435449526228702111740736525083212724821369609073815468373285037850843215354747962737502004749468660538142142807181277375567549346212761213225817196274618474642536473951885176766106519045849289193019189853993243250857937838906072340785212625887032787522433750653429269838911007009635511753374974066818744859995117053049894716518163181407788615388861242967348759319430936771457077969369410935506134362361384157452505777313942229732840173520899218491288909876112684035914830857211393215309719842060115452289270115875044475953844827419977205439346738404537565836881729215920313982679468859791570510013652337921090108429208800156126338417279625921861330826671796709904553906342019219322492584695849926165229936674895472168938188915218703505290129733769629592464200610433738860273092982349799494073129061155591959117887531608293864398949914633622742734681333175773799160470226673995364617472205699907759203383740641338059823185857664560212806870371629827885965197530963694149331116066670709865166709975854379042605353063597325249523172402187333231560516501675289809661411781745204096001647663514913176584381739267731261284614210320453541002898648831592250100292766192478535709262257736744098289628886960092205857452088951131810715456684984037664954361618040311878248228563705563116755782794211041264825156744059001609925212745957634834374882201759036131747253796091607525389424740469066087653367381122826401077078122415385010583503632634094534098000562994196899716608477744300055779257935439636349736440300546408123975462672350451777746168530052906779447813237424863458281409862755764412284869211052611205867439823983733772258239931650442848905940019644615915138733698064158457293219155122870145000629841029541424270166674157914255977050897280130508520020838639076348311543206302734344860660798683433962332459213726078206411302782530174525793558799819230544105320673647081624563989857534792185500043103671688802432919705112254803435043759702580440818771552818928815185469279962301208676976400000441843074397432418101668805057093500895794849593930657571043802127673574554686602641663747208750366351940850507007453505535277654648030537658954432769174641375823605032806075631405503127417791444687088801529479317466211568640199208939307772354390360249769654071435880282425094704650393234720971599436479544942651444515967819801539738082164003734682114622657509917448581346076651541709172044446252912677305742659117362565082849184517077490496414451705922683418497022865858832629448255996791997222433098188287520746041471977732276296440919799520429535394168640349001240621828139711458672289951519075158012820266377825622977247805518465571771271325355521486963085701700074208981525335019007845835119774767370804921218309699448162560676674452800257769520670843464248227459232849538302883396862837495973154292434434602782352671419948053443130526827436707879532573293637518732894770510422394827256523678519962729918048168778087792524967881646851393245124743483996995496938926901128476162859002678577288224804604824439958619404545723780054199371600414887918133437722416358851554700208286025062635215158785762413091474412811339320911545459155322102075867920341132221583440217128776481998782352129477314230101213523901594352066412314679550317852630188027214694265855125003497474301512594361835925153471701056927523686355873201663684827984414746507014671181507868329090559882536774475027811398360055528743843579243695530768442011779738503890309330099751542945814636275125561261921692189335827734541028385769032650124666421879945451948366422934592175242303271318757787814669111960784816534984977053978588141341834237969603679574734750703113017117013641516397012532406625887893420816919434515941994066706004307730844170154696036520188998872955303706995507751283389713147105504870272523572224200652868865915457945902723326165735986196752902992507161521503473577227838441440376194531222564750735920097054213550881884183923529272136579756600265375421332498539619593925195577550910048428336320179474725209770718255418916215976726942602598419087986382849320604254990506258068282273038556216463790685526828600760895283907355795527733269865294830121446295555090892625233463413971477044261935291745045885162397967913104557121624197653725845659135709914583542865641694849196768988960284757472062298660342129859486701981920426194033250509809733376939416088084739806149331855432226578994215873836364472899453826537195693556301438818189450175165077414765589445419942809897752447774175829677075738702671653506754242528071134866621947153205589027102823217939031516199515582682476033686595301502648513633432412295154300809968748226834788670827711205025429685007049851468319389658930164751936580817630111411236812354637962325871398421006168009881792632133746736522448311324591906826269756786348096270024943063582024834127687193663383527701657358875191681256964797811407985572479163798592748731914024797549173086605001463247940199797905619673448407515007957731832769936910217663014875790028769238199605909489745712948310150685099916248433796296504417793248457266938989702367295718701369659550462417463362792193814618893998940581665618649450312444853068018442353269799045134482898060618735279672292873996231041576625054614870839300654660560760285425661239993353918810422181528695754889196578502102189716954691413194937995134565818839652587392214858914454097697009170737223865291589334743510723807262051658010392232534066473111398831550038801551506409939900993296982449605314313355223917201635967845190755664596179025053696513019029895477411597979717236820593625218860633373718362417719998193791984523206606003631495766608866161852563436286451767346288017514122609049741164398219652623534741320879625407289135062985809548289236871796871020410125405311737236364234313910530323032199712522401541956314677335467796140217581805313306273301966394951658793066488368319564635298110320388274027107532022810037578770630248362541168442225632725789483391513779068432131633986290755603537631921579259087749316363849119421049701913746129296640414952138975736138042984668958240523598062121226265792807385723161873620257748495450621575760079607369903265730117337432186266171672827132968510915398890992952171802410589017151518360443057742649793745363751011136394502193878896441783838446195817283687062189979523137831267436441559311976167875030729738555769558364780999581351012058370592608585375799056039209946613304657472632082178672514692001394686417721168962849631392664321444236873120400144625263454359089564311076247317641094145193493163135638490449191824637075473539360115636690425765728668319730131763389191862145331208627553319119996862536303065138457154216836514500442562899196139123607654780636998358641605356724033150444676231879299959365411473390094532016573604554480629722573238249649627983753141257025645907101395464892683998833328930838087827285158858663872354283254176435119912605067759421507970919325468904112322570775226988976612665156478709891809627276898299816080557892693104914703260467078206434543771755621552906462821223492585813441300386765681991620810817535581781394625832388158777338889082936069658702712227662218212488901109700116009657353865340526328112276528854423949355015992107112128790713273211356112589682506191199274135219000681784545811146383447255357918935056221093761681793870631819644900636092975628429705095773215932801841151721958642600562043762901956270049070967543995231622528488517687811388917157692432751036991894821425771613232436296684926406960389425600687475239921755684996709778186130108953452237789355340320173102084602985364795283534912183001900660106866640801749247281145636287110118635555538896438323862213925765497482536873541274036195166956692487808123594574272515584710778392717970377690882074871325011730835032169758435595595885247010420090350790425889235248874613202788524531353794834482413317669655567081385424395610500675284956464978889127962426875298950152055221112240439929584557362821182677914396052989846614611650436652583628065276103952305032016711129053210628285321585292289071908671120346806895098912772468328553891208625945232079431120739800618139111141086866618301572911776923102993014543528292806458286095397581708260853835367411266139247694166527989635431901734591670216670308436950567880067013935866676116522407727917773077610425976099932009739876142631890372177589898602820601871037058805536955097587648564596231566283647585664768892090460296061348807667013426887649462844353690032518921834828915989758505117071210843200809198813359656394837256624955760573027630450699350318543144760158748300096113939426352105419083315949835856917151588137111846457586820369088932650511708853870210022946912333043823524078280652584403512931393401922911104605375628511939946275189225479718251178570884048700229064330971896849198732936105842711760691602137703482365172866629211858790394339728914226942379492339656889713194578743506489047487240709360945728908283437818830943350340916944921542907325555541551072458507123351482784072809548012624666619947799923679700405671962072252654873150722755128652131586872559685984788528194355293354586739089193865464456749031090249223777769635640270782989301526243881600262954656315445748210610398167561712212290545782119054043025694110307808781957070822273470324576022064082804568824022221130521915819653061717301831094564245045788278414876996365206218038084674705542474203022969251177020749915286154339364723879215309879401314097671974272899161885495153435607957255243582150577399279893376890395064302292328029860349159215511548138609586941960341996495309623865548832948493351379040950172810256529496570347488497386717540175714180365528166621788791148809322219342463644598124678226691200175780077789229040467367173705119615711580842546518274820468683955723591740083211982937933334603307723574671265146953812787478024261208418470824116244121602390781501402039657122822096897851752774700037293022688071281847026444188098781083317561366221253820133172628376099129385707771750802075754175941069200278125610154395757195970060760040915940538946391218796028509038377171772000833255097209767386874886750459040381005945785128104824948056120120480131819109602620617682750187706447727222108986313431791083247409034646195071667494990297673304918785702067907700396321615308860176556156488252895928853435601033532616597332561420275804632800128485172295906983823771501023391226430797507444415950701847639490696081056621218769550091955144577910618296628569312003976144429440497079872911629021832711614276350119526716636174716014681360861757781724243523580761479020369997022176798314561525768293335768069350084372457088244984352541107527559087814911328939680015626837935151232611061767269236022151009976467380694155441497501852659613777672115834283499587081401594600516886463787277394447248259923856579414913094080963582134640341898054984425454437764261779527087046042600648954933929250571631655161102259903459870930964806384539405013179433923827757229767672973530365730272238209436142061219218715326346459044127639545958386652567880628349073878703548048427500113860633283847599704655760009620821596172162503794846378246729016177807968701395279294397142801126027401131029744775290747732844880717774482520722981106344103028511960562470324046640083577593196760253610114244016367444079009564559228398362064739461400206714325943301362960749712429925799302891175818383755604827164000260525001652576858664556260275285352090714909745401761532580793474498162477282018015615157143514049600287114161708504921720315873928533063514103828940215526375105444962774738078585764887425920483839291007136715442535984162295477067023506405347438732581159772994089408071697911509999761238195281321302239521494129506272695056948943308789811494156489442688382488644216165549024485867990419876598617630424974974039823659314241615453221005865097949788868892520425311257448417726338204161266182980317188398932420882926542932285598628005561771057651506493375783126228684693265815122939541759966899423152442938415082191243674962299971864610835861841103972416503919097872715126861886484739621044382486252036061474852498393475696289657928168855738888922245237455336412176833365681200162240771037694765058904721974082123231254261883779536723944636886021156729087475039233688686921131471030378813168270344879671227461245281693011629572173504806652532186199782538772457245410173076104261596972884978585273921602390400933852984259264010158146046117243392450022894301426099328733282423851946026425895533184723032562544565179792898385642736697973309834867353695474190540927016583561027844203622998422372856279618636391068586584121862918310608105213530239423671459192499749638976702068529482975513479395634227009856386907607044493021520840004419785611725557839958698089059924730007496184434123369466515327559686774927763260845777784250916204692000205105190694876533615139995551599078179920193450581011174192124772563647346508243830158982223574411545241862440136906144359597219720100737509499157893286875622800575866632324052635459829766863562527596066002498375017473488865566905605161102199005951542876798138862212905774918876756585592291606144161949500210748841739307996943269413158341233552097329881062241188880682967885871085317720335414747064319510258133314798686448103051995900913334017816290520238955945379266454277863827206162976437275837205938213824520204438247769240417558039610808892098063594866243348661742102106934328846453523149081745573101624042116032783213013943281191831082672298138478535040016525914942155510432518880328990737917932354175327487190017962307617569895555331231920067731618750148225618618977371263616217416862043689744778159963449985370320924756261370854044986587094347838707379152537690679051323991390780769006309615653915061427741312981235470079223142734013562779371027407382641772213745290157040191133728101101585437759628266319205606699839122927647918697472268696608313641002388096519839991438443449789424903933394221815529226667210843636808115204721287601164706930097745442587140307947339869588881844666192896407916119641378577239821958384682556067931495732438524532775480976590920002542092362816601329268110529659320121122350599062275536772363034143481672732497764882355747940214404598258898033444763292531874017419694412629293858483636451846427790946017607892265758359841118617394882707761105145993323397176904419046063651419716303293009247571843285426751649699627307384639645115688481182068602737543163974350898700978173247331725761980688337885954062500307395478490987272706902324852168473463044440512978855708407845276928447564708893004848624221493275417727193910083656483510436740821693859966665527647816286571195789582836219086391598450695764859591264244406618915582081552705604991372618514055468718974490142782319542177696498222693296995501148016668714951591655563043469190678817585651889490849481190162904500058393769908783910538637625043345693734676259688456937724139859778454878458637715647283092098956575672834627610655197684925577678992988281273537484676351436556620500484529763856510851183774401960973535269836109517326474662096295451608344855747761494403399673313279616802912024067882342970397340160878438717853606287307856425413758731377921276083074726267639222819798148332604374901929722879260391858326117367555419510855721265386724523826080792334963454753869968193960849450981225381843654806679070019540771618578437755209277274878774054036052666158020565365270750522208106285929619542665878478970727322141866097761145704205109936686814219773430887283802215502074293529973697723860756097801849931697548566412196083723283280534987695492989910483133953372932451473243205378855270676391637665903931086237295835399758612654508312496838791390054033372983098630578664106142734025071164916581716834838412481107519624034749171381339585960720528462251122827817331461585283502428960344475309336766299650324218789669387552147512305211555254170054286885316661468353440022001193172481390833423834401979405740457510707155325231948263402468031932632026573383633450970498558430515358490139220963287263266075277507985341153222754056349935526907954582842949104935867713043750168560772985537042418912360523579763907897154672401897066507001604742227930935079748799151018793967532636932290198509990254133291925275071190521056579659690327630165714637166931256566907879470488782633832655656467765994183450818489586771640658682796722551870426037981288979888444333960368656933841913305328652523115695082781514803183248707866700846807945748409133339531753437032996674787059702572072086795194059907465145652196800750189020116612154988713016050065070066359417074354111333067336393311181515273503831555514405151644491674536289446864003928123109229829004816148314598777971130261739279972560634908592629257098132097962106854816307604505380765656674384682059060578101867725130602433501730232888335196618143276586640217122418718646007841736995602846354675123194424181872587914878328440444288878392474317208502166718320925073245444452607993560442994548010454448384859565741348123332864077463639718217696731013593448671632693275946227552720425942062575313315363937528550877969736913792373713880580291900789692461373652375949307010359389746553484768081030027258451051017873944902594811398112305152976300981312014699032657702584620160369553041262405507034988534510286454442492585760382320661426351130748071430991497434279414233129157492112019684819733571226982618481904187162559029002385200627595412294677102314506538935116834903300601244498851448676964490615173278096986634441111436324900594020856968819610993088733594260031146198472262687311917320305553267604415091689337689093794316852778872287806340752822916972348855719393469335333004063905549228603635657460379766458684808025596746242421703972657088454027765733944933590483933897564895546251247821482926481085726125093746630745402927560873521036111533286432370730731042939075934938942308457470914070477381648988960066118551638309176491944783442289003776134641813041957891395557426074147962440192715169893203089854040847470611218452413195274384365780330480977210195823904074360091107692861770198298715189386577457113404350401701203503869398437182473541888910328521287759148124769847157290074435534719365399479765496269681138298373509193640417200470146395645870598259261641348688642021429822956612838394757052332210070328213039932003667245565805971638067250810603793319544885977286914205950602225035122499748141244946428712588338156177036565705648552200349789532312122473639233853279572478884054643045865791968404349835904787187900693632978934261150461816305176102043029656502868387956468552578731621344606895409062796934904881725423084031190450089746948523886324890213369114069584908501952136477720486203281862055337342040596518189620697079255724760386259829241410342488160181829292546044497085605715187652099064537034703885805939704079484542277142007783588656209573428335882122431671039264643635633269243977340303382154185589565270216000227649143082096358617342247739903336865300781134357634025699866207114163904524577654659286983249225242852130556756485315745190203384089502792760099459734174935805297880394590232705909946464495109854484891913177226934024226375017757145257255012772055622501946250184078184002806407910110756717895760092889458545035390784766818318650975045918840521719731677746975725057808329102735715930563971190247287284847540254538752433530008379850378346653101174952991990122323707548514824224188979817288569173556536881717087484558322011861922072327527836516448373137996121319802743687692432958989274325542125133303925086002541589216212726338394540501213422150544100204805635087468753075661601343258600925100082996940210645479291730495189322199285419950274443864202171339222588543175985040683734771338099572602974457364627084080356935604097577008235922096120800729417001118724929548691788783880876415494287466409452090496538103375336003435812012322539838980459513549114194297992988029561134819171234942508503055839950599635441272600203617065449751264894137397469495753738862870546976827315284400254561614905141636686348913025283441520682131248912300457623212786878847948992143345711135031920391148614238060319614974878150446499387713314276580529778737687489417133887721194559906898212730159725350767864851170129543312707497560399933100036823630718474983178300122710296539751275271806115443285295041614199499554894625082597352127145097677667372527916157434528114444115013681371090335750202496372993805981979683051742688774762995025864255319549888912127903811614160869084363106876160043848655248836129145420509656771156352656826764828583266489167682585108308100723222538949182537191605574620996896297205279058301993758719935263655222703465314880169603030175318300318691689083753978303989155021336184573230273439924522600991147900329918973028521961964879274764714754799051304215670430548651726571761209435694181219697748879088719931322096893578606695358123420149644224326279079885613945397885246350414099561482286194427481428158061248557370445110505018287025838375378287661086284077704666417482037525338658207883437684837369146182914547794504820975751772425141261934891039138240890587432355306486480677332543479559196597748917856318474384814295465037752858842496890505072178134338851332974693509204986627009772271993928601822442313579779707678580296058922277316874096757233442099109094518240086082812958313719445995589029875898572643782455937117991239471165908476128430447765974032278887560738883120383304536893420117744860786545492937347355697439693798290418750116023704597013646527367138251539121722960887416002845639732837483467703856265649746614382994042394628542552269113130957544575385551755391463758640920142765120576786428412445098610964504354193268670802758188473607979502917281083037971884315471283685107801013787479516260235066515659706767638093299632018494927662832295948729863808746697866114760728991947980052304902694826452197933946585329927884694190186432782878201531381674057783097755054740290282412680707066366957239334610459943779377340201859638632795549947267605269669072910533016747114868556285903209538702712955952280031428195003735427604251922739498270908117039454804189689476659614428450121040079881875685013883606772800931096196067723675042368853784534230973540878259183670752052547355238396833641394441681766525858090802220458214207725020346284608578721105679999162973374168546521248569341830543842166896886594010570701482348613969397997434487698249568097203748708958251936218136830141384300271843956176618443886295225068956739184143526161315326984913214856360912126731524446501774794897794752922061885486907905819200101767177558856855728855965871294704215036487294731141046718355062546479810792796382387595306121765830849333855519775614583999710930303453674283621087972937889583942990236471735352103542458870858504908370371031630912045709845140954086774834816681801534508945860114776468045774224514688558666724608691726390692278455206446370706381288165747409132737383178249156961311692443169076675865041024720390065527383604729938472822704092210487498804162530907859042127131504716708175821289883239503675874149188900817449630766580664655964372636829688770474889156557836949488951337488398979585929010854253596321905828575902711802389614552930086896618395135255430572145277719123663202901381687984508568695877777972851210582476376095681098769533841722935930860007549619061823175402553239027004723706224160970381317780549244341459079289175644874650617036503013661628911806534470018580774508457834345995998385097003692871188407766788379323930824241096253117732876215494521937449655585817049663142093906421474238289757680360268121000958617630355510643954203000314623896962266983187697361276874994105678690870228925182655099434118710442261014082762417040426942919619632770786896831929144425173603222306893486283649788249612901911734039824717734357370248555019674859085379230451635428360915622176051446626000781353429993435761588465242839442546403017540749437423995789115303558006367316248133720086407718837392157981705975401651267894637445880588998754460352837976008156656574322585325113837007588775516637292338605090568505993624441678633418975150203570712053324051509982008698362133610074100156085105958568190281329257572588135233300903818359017541629200222265762377376958902445586038509271896600099537825514213110655737718767422367588881691700885397639414414124032501771114382668428912167457537219878213989598428730398021009891950964650019592095811815038792607926261649864213156694627275504799780183080803878447131860685487265011520759546555118588609805718740769333117573947821796745185398320551994917790347212969687521325448916271493695061807007385053024381103047029699936489392466100051467849697720480600721219865797058079304966424244175592361208792776305698427597445120778580282349158149117236472575656859286564817724977987370360390919223739067975846428290687094387469179588645974534035301242802325992222872998279543069342498691910125594641838389724674049909062532823197979417514322857083717650431015409275041563884667047593447030171303555691774346214399792178659974682384697520222481379021926530105693634158321425328074873224051905793523623922186174026831853051371837539168387425966325566833527412373514107883074562885381759259918423033671049146599179315098857838712190605686388268608790235000211117566466838751286636309790679065726699520651799831190386691671606022035144325321965336875650908472655232638525466816382588308945377513658066870929405528397850137300155974949421659932654646334661451585433484966200598032939229124607245918858667331477440661228526538567566963137894512848091239635724387531653896353378086802474548910770064748152300046803401767490481071414808166912125873073414910428045827311685387530080204938332590607963955094742577053102524485954754258352176662607237883705955102164439285697218721202619060798370294531091216806463438925642718192794239337617501164492728635756244165507641796281978509382679980547965881351536552533937403758311435643476422900912915659857007829428189301370579971322640885261775208910504594329226911167039461780767226061401377955177148015064307189423772629553342287211378268322935058573867657341284945034586414859951657442740609553712016009851586099843072653327712255369911058938752852580689703660896769631392992504473684758803302007678415501050697892837962207454947677559335700373002918320546777563638916993105569716695655242020422182348699731846787354407060094563423428267763091697849152450181013322867360419680934482471391895315732171569117195557022771964508201871275247916901213747636550105283426094602981579156261274713565452162107631168538688492053035664607120773093136118815527640083911741304381573822071237443881452213483251492937619947335314954612437291193557645631040636089258102640864477433433424458285356656013191477702325017502137059868092910553779736007488619711879432191133876764571249088656260411073291992617442642411705399887166450112015281084041787075354649846912989465515160914031366495433417363184259354381741341324380962120928692118889032719249269781283745553172055510755706920148367546252319209886455419525780766602388950421813601393608996336731840207462492654903520129480693054983504263929837786738830907528155453353559462062228095046481454684264448522295268648889133803254186004799636788679343258704333438161480738525221676421159935246657890969900168255070296996861543477962388290667868338472426470783060770905289401580975214078238807267400017940779547697985367329307333173669793151675869333477175757335180724320411479443695625790283968936378180740161453372718053798444674872693292434774722238778790638363402528434027430894965978610870769549456460509389536812139381749476415365279262723171474666458684723478989857714171323902870051124751441964028930957009599901450704047191627308897603417408315367336996992347362493813993744705747775815447131234085029778730283323797381902201702798116911026205779276349007688010377767863606923236356568572941787605522224532793950366546323696754005838465645553159934365071151093078458105291185270533354438425011588618061225548476878102688660239261760717605480158842549007619458540145518514132282001286272714137148163734040389646032681025463565175535573712374113968314788935670368643698128142159567721730804694424539692196776877248399875236065842937497624965428349460842162096920776964097947416755758626320544367209681005102815599777198197393734820066409649661506571299555152823419179779798646964992428494133988649885625636395007604967166581351515350453967489209783647270796951520835914407501944502585652467267540077822260625532434380114772318816182897577007674064839089809519147806581275116584096473733567692495210173856032918579484674559391778515124138814374948578237132395345430579717285704013203105920959741122927967397009303421072298094868062034850234959002973234920019119117335640068902572673019245593866350308986626262131740412355545606387489387295503302622786267813355266248023302632140629003622523074756850996224657965356548140238781479492272241737988423223993735067361307033643778353136991486811532961540561427239549357503551093601954002933584060342350180847855603064714582621353711234314846246546117783362867467959139767188199721181452325080475520974775547521629996188529770036350821137225705455364648805001962851033331242830591832304622829588931025416254936431311298794465324729169290919306052437364961248326032970333338681013526371720652967970490453648868642502738278350984745566042673428940096341542409128112055526279939443133342664278167315115024309823174183615016203765751524449876971911679442431987274442917736780245330266399048297954830540731770545962566621719259847704436984778875398783021161116598551847331512253987110540052015418940324299485610638404183070965949898349917522347828954759469681001267639520543531311205810678682074425340059096261013423501939742016129970107730820460517172716273651477389213486343240917707613045030108105657024112393610009162468849325336998768077279988706884217405963430577784051846758187028483873596939125351033879147512990223998868584536663162384832355490674278634883694137276617678146851333476712043426466198059524563244326642721394095022010491477514305223857292893596059613357845717650105523075690282391451833608395181110578990653617246443829188917252230482800027878205123652522505906420107615713796304705832266737127605561756692711889425637893061334550552554109454724028945750760860708835664372965086320234601734763193814123909346248557932061258654705903471727398443875444411573381310566824253580675105008132415692854633985231972319551120183728805527887637193068335173897801063520651579936177388108482572548350211104498777211761464680881366936389836556075164200714783303673704486536339091463445901176128721294131066911367463699673041552676242062943456212998003647817496610881313593683109977191702552205385786067097073114722859363722671170694465922917768347618302030178340059934507561548584874371846488256869889696384478387183801471906842096846624003444664751239951176358492235263943372785728470398222068799564843060168610502363263214624760037830257289323819347177892090894484822840175809018473850516498093583772804560512194412754769611447306616227333433226248710695889376496302255298305666384339708783083944704391398392902766282395320799796588428428791015718082792927344784874179976757361003329595419790246466971584887890715125360786737108050794267914715892997411900694291813222894467519067099863980454448043755967317989149950738822843495571665216187457085076018270025542346924161823755717105495104794361430267408591792418108968646429755451586067297580148805443856204592619671824151023894330225316106398226268286787874844095358004852116946860915347126574204199604213407553575128208438076253964852054990584505452206536217668473708426394606452700443447627858366325561870450497516873124339252453163955242173281893620574844221263613694804813205513487940262705087035336919285714089864171086307649884062677160767114132163374943247687092540769045337974515202201096076448200928154175402652438267324635051059912175482876068048428644476077949334839498283603102277011441721724920015785625090365520652914529084563862839657823624035218110636517749874325276187911163166306793551758775912545836983881890679316941512862905035938033073824088106466339914689510070582516664730008066271750111239439539869248057713294207757469066143630305275134699229656333062351322500894276857685909668020616294268269361435022504504372397743385645907431271056396890939438642918428263132715592277986065732269795319733665415168177606160953911821073734578545551341947084706187021522978868859287055740125237769658566198438169857023864791056864654721765950320257906755801765759303221200768747306144718907504913220449784817402046832348039834671118991731937070188920778931243959227336090566314859636586325375361238523823694079025075750341497074994807353699829877905998887624100859844864261445247728556471585857675265181206582652273533725577807827025439823859916423993355212858182605316048028273009075304709516762064757503510174747315527709494486011518793627235604063323423351471456487143162324970320610901736295021522709667622887000043323959993442936127775330016709398007566254737346493428940071521519491264278932639993312445397260532121424371590832083065786111234346645549040557036486290806770703511592796331489881924781283920084208534008271920898797552592356177981016684533967006925372182903358145422309184992860578442865476092775934486418934710225210875229931768789890659270058789398875862037404887720683972282267512822085270686409929364059875384748935513518353762321321023196628796673976696040786598613730074651914383551672427831407002749228847886436852801940061184313211244267422178341968693335044258511145742543717960075866058501187690825584223915438781350996910723598022473163535970210703594151268102654662877017537982303788721971684448142303327162382029379305902278810388491450846033110377015519579019848379778378513371688109105400065638145672464639053366102339384266319127105697600534862892020371723759359281296495057789857617389465634308113900728745778102970164723610563582085493273493816426297223752566935687167263295374821482195990785539510215126380026396425391098693386239763705516970455300047972633470998093766074822197688895138123712916528840103296281165761826227087304941228279314390634320231216775407401072640632669376606312065320485065225644292182165497711030912688982476252397342751792162497535677029075329095410253661959342919571174153441900744451330348233591972479422138190039746653691935717257355542628601214829930454635437933994352435829285057827510641143542052848949648433243392559348707819705722591311004906498474997447747237231671427309918968970076203708981609880802785798153633665754244046346657319736248425102856842149728187154563897819900152113714543917248737365403438901698120304773315538950314066374513243453672461213969680136337399713063275459651711378882031188608638887027590056494678421608250466680452390697366348968923356228781965515271169100522363127832280970075296123561324659108739820488590822265868651684384818185729289251771032238023466258759300135050212443734222329706233905796508137853297625032976487884077212448932187695654083000322833106810037738855523402551617442330503498280838128589723839630666907092582611512584936686127986549547483232038623439331541070505147283961615080670612581462336392609569373050337313732115127091635311955180972502056191552345116396215108131394677952318330172353293952907454641885889567779885856303169440233906236145888316503411611289409312931952612504282761332245701437944606262863719112399969347457219133967034679982122283663394844117672458224775219296906517832513802057483006169666997842887270138791603142651880227610031376640750045761371523791458080018230475925169998829745584773321893941456666089420724460707312846330289995794825489213296225527097960805212310975458614363919162828317993238445562282896370993498259234772497299768243687433531350981282116573769944233603593876511719810666763384902430112441211184456124925510438158897235232845068812233155533583544885549568121388396393398005559096171713174030703214038474536300456423540811449292500975820047411960292279139209300386971063904342222827311590946743124811264756545080562138938771077710253477767074787666171467941467544572931393273754216409743679993187676239380691228424800785384006122513715158260508199314471772422582013300931847927466853969861703344149692167540182673070852372712748319046627547296872239051661561133011817785864375561720279532355548785543678037437524393473172408706391868626816358624202524948208349943834108528827484830470709483798521492570264844019193351608970556855627846414045391230471790885764890538341363457934859323651442350487332420615908921977122907729722035720992695867855327498380919320588639548677711545311073456743332180924229378478278254795984269513470588447874380441339918036077700626442438084754653497802831820196892263654538167229369877215834003846523120169412117804230692553166792548280538070878269599548911920716783837628426730486446301911253230274340346233215472315597797131618493113239182695426972458636659080409571321415746228225876929194451179017540218302039385862376106928683460885212730832950363570346506530826043105120402878887601787799650627217090808384692208306009188949519351721429364485472333368147966024565834304529313598538008751794791879107815315635948196714597489232534307279951032026200034513241947590939679626373500605323607293383005124804618517687697479020954348253790884169471480865675636025133327461540052738613665483682229665781797806459831787029574499124564451242429551615234935299915246560289840447006208276111660582996937217216313204815637885944278431929369531087654685723198900206275458897591554935691764824326094885210746730721223576278447045838193241484578357643933521362895859003616507831992121499899516859684391436839738082851401340492606155092776760082195000987476791155718354755572964293073057870030316392932159825816706426738913681976377569951598538351390085491179155008344540552592394091709635940900194703262474322189885868864016527051055020425433559940056547928069744990573998470597003276886862133909295211689134952617277058219832345376168461136136909864785665683715318414059516526242772314144262035362352849232422079176927324600597392871322860860540656931282208739256837331591310916305218101209013097194008469779315498406992775309319047354347022491272325429026930568411891291089492003147035990220053229129044409132197323180286465794682058073137205251414309985843418039705873752378606166409849974147600817323820831505602418506329621737972232473279104230813870549503494346692665382944235732205994631032669802916809155807396097569016950773756735427204669277612652388754920257582115538988975276132214476860871736254956747610496358996084787289795118358955064561633927215527284372268815621229519762034144471641018019552339918765345571510249694490299848955584516936764083919542338252682239145964953318272207075073699673172851480731455895397592834369956209016288468594128184950147347984407342706496842647814687892365978193335064821214736203756658583345543293195826725071935505661435930905919219766934270335571793624457855660196537547325610606667069089296415581837553450799257226210109469141883104692210089911271073418078754682400190139963770513711639319391060652361824858104485671320231919923225286675710143776574930790930176642760698865162226591644883860869263735152321514884408252864718420411230159526050395708846601588560791649015415388672963635937795578933827856536154933183879690998545000032795161180766736110307360698909022648921429422483850191173584385172535198005071229592884330643303241512692820514344270974123552277326355358686508440909496419899103237917826616795891317574246604595590614662202290316013887729563104521588345869317662804942227118301576431384423442431550212006444976678505232552226143644368797466106668925433301841513274413901693841566417115227354519758837709536582347288735125641439345463208193736172460821842058036342692387424234808741968451327662309892125803579237575621818705293398816722999443493150676656994370469738878776900453383711958461113370673791648896587030384327092462558951465256648362574587697096037723023463445524883513803758344656485030980216232693394717718728717993496253235219689764838554190474271690312841906107120299146346059520838447843696470581106483951232122523929450499193007550321365288046563502963953141744512131311010552262276842602066703201187964556827790221173262109763365971810079036837367831680278622150403746776621651666817663064479981659650267471722998275334202724435416215144112869131595658924581516263910020380369771318254450807877073847262912094724489810006417498640430685849577283387488044866883116953106894533619491811040818796740915091089553122219608264645517900657969205634968860250029394860845110838079086155043799316158271662627897655061173729904388869750471720760254904600305022122837289883734805836442797516248097605706615326343828462371058476020475761685309294002185284143673299138585888785522541102889153936329450673849664331183677179206940107042781980596827534381407496852667871524486601960283255540215368927773115456798830528813065442700769529725005666145366515368802839731962599043648220680235835443825217738661918680086984216734365797809200590999218837159934086029728468448852834298596597196315073134375653964094285535617376783857992246724891236826242976591835645269543069541694249620562653801697119963853715416290422190099880060754723911071704199117908076042520079233032660354508521283563718418174296718338690331903446903832201344795399663737014840003231718140329849764711321456268712901152335141205895044841594488855355607454305587712848624400233108628824196871233191002635666759245864173196808031400068373697891861666737242450103808265388209094768509728053255283668591173710945166652506739389937561654899469449666729709078927223998299452895343954489180313777071444133056157162535014526964067515589048147288531694544896186091184828139599236690785714161317570604679841783612580858187406596087368701708483355586767355490283076460211981679878131369426323541188169790389898671573487890646974090927244271390770482801065235957880453369008943831275432504831150587703856289760178770967609692226919788182826438247635942377780166624663839829219156047274318486795614294331572888874357722716502436104215755112690625688602779547304837019943865133688978465434905432673289031550661818562338242918127417834612701551789761680591094663014508256840490676743018554960986742899673126362477749927398832981486161426935151478707870810886786910572350764157504582758175037636711938378003784828192972305092709070717155507154694143492418512690863040956867691510565947961918558116966912841035242730015831674812117529940268837936968578506535886299993400386590019882830523180543226720302462146830187596886168889100878982184078701654199581290555068360645423853840234135376822057597894850099253701588926331446042531185855908299567752311982147311179605192359672120309648019549238338614827172363606771262375864798260453114818135932748962506717024241671126263838688775532212716764790650323089724993600495048675140868938491021534087638342165008310724123963451724932947281539147309632431534083413395456296218857114801761717494171916552837405183752614290885586903913577903555742351620100502958571027621183566509739782821821565173582069299343136684152987913180832046567589268852854876669779646035630978017247205650840697914781725742503200100168561338428023878084445593699024975495315386585518725167664081054834225290638036536788855223225161644711888936242590289594720860745694607532222495869709536405108361441075765991859947648561619837936219863037533265379699589254358019594174117981371898265080233397933605904060054665415050747906748474923997869125798588718385222630925638178736988008370559511437115153926428173157181532469680942534279201720965941580724910146779053900016027516457198009818435615699534847928972492332259359668606744974164032767134298228303663111421202374853387754079551664590036016086305226265432793993457900734079914506692453356096740835019991339178011218788504741972788385289338798510690272811812195526477505518892345658002809543067723557161006388211393075525270458473013778441943277031259241671048343212315329592703661342722511570934163359607999197453632346110662033506259690045721858009571792685038323526439191385937160546347647063202702998185688872366782844145968403435734944702159314054338673596832327374618277065412869120550285919787972468146477987287029363482498205195522198043555326550892108363948329978602193315483624056232954974186302354670553826148962176003850823344988569568889295099465010528738080750565066094236924207726155031699636843784655931853749620589851911374050227554267894634416462177485088634345775323971409582548867825961699127326470066857724395388228495222103217567549604136206242752430776301670562458577396063604417151523227380161731310007294664613424056404391585912204564808516631771263874966555699930222597781850977361375380478867959850615521686457235478366137009738911790556774141401935845733225610297193873844701080593346158995969863791160970979163050674237850231926843608853993077097473537468625212438524510141316667758684282304288587586838541950509659074449980542993402782308705081181215668685965187982334574960837322813436992357861193042635078760039431617497547656905820539785044887767567746004794897966104556030298752634684069440157604666544425233507752628936231614564203178924090279378094392344063957129341820426810156556248154629781125533780980077799107302181295185161955981823191912907029286324040127337727783596154472825687840918767216007464030631181806244072054905172440673779690683207088415702955237672694991771086486423664461050356870512493903050517181458805235633928809528023730994181297261656874379628776643835023664885301171993184337416389014345766884441818542140163778399470965733776891294667774769865809343851897555467543790874678738282240836514784462299371663367340713417077875775625662029158629534874032138457043730349573722322070456950565475273599674699673419387434152257159876386323109863438990953982869161184380887917574951634167669127321012579323727219119622766151321961617331484183905836174510714303674450837061512640730329386754504077571034300156004505383957225228374476096337450644550950536066101144335168399770314855728173549450390207801143827101163538763387346347174683587475442125450323973495241024931655546203756357668031124452074247106482951545789276304155994340155605500592210944699321320928689829964241543354880579113047831255769370290976480950517058063090089843400797708129317490745867697026899932763577540185393008290653321471629397056625252175490796170980794937219249441428647900780731359658396578513363357734430912521087157739143200907851126674499159143879557930409942101701087038244055968452299242193797059945938323531626681844389501980289212216219542494682916961589748847473473435302872174107723588114579809511071682734071149507346474171325976010547135821510708794071668098683871238278412006996396075579986798863285430480036223088277432393833274730742336305542649111908575009948517636666758972302778386867841062495058402004033850641900128711008287393873588329631336550560889543241078302656757545237198376877023444305678510021090895580518333207759859773641091237680710277884967097320579268357057570749626615772414181262399656604270748372904823039011153374173277345304761238844892508403898627787397302361681723040169499601579627394305433698700574963203740780384858853812671531077138141235178936610005784928135962162481736250145163340347243484565757369602225350526819983839183139935069077010885750541666939293232889559606368246209544909164835784481304414579111883523714485836219108703539751693410747192602220839393069418188763906320503528566972137566533436367260298526245400517762703147963226589680462502083856880155551500091148308168595534879492469113481812017611481565188698748732822116230011523731249815080260150270253175058960342796558249258726430794257851103019891773452405950840478347592186365636296527312310144582145874373019504524572640047497355594958981248442147650271655271763583799527205958266963738666260736210212982347876252576363139705258573653959158473452720050962636243081249413360783705587001497760976879881168763391779235152262354048662393430951945818736659604607885928799910641990068840615758403715266747003629572203640213759126236693031889795442460546948508020825065777280238388280914659331656186940736642659219150907074867044519365628911716127974235192071294832076082150571160042215970430615703681083797338397484731015292909192032157420596561684128721075945449891778339309295531244360300447519268263554019620214881173417570362231866811270390820943797289340217756438810435685007084469195271380951763991827341547243748322128323929485051623650819780868029572041113460173420010991242876405045620817874372107430252384229304988796124398136531090487718990696899037834811085267477013363813985128741987933403856063010655562635121875167211409851547833257075894457570627702986398712240855292650636712097455808069301017877405688199441810905999800561167060060667061894681710793945244887813376059474764421822344761073374187940902386095908825579358366726295697077080462854155751130610722871210165481234752815105831542038790739067153369073428776486717394446092131669059911481128510581572579964787831207576945813068733781713053541574014948214545437157511191578670693382304719351652833962392629949159736531095657122591419185829365258383640894541547235526867731657917223376373661224474488352400668349212347837270623932537117434296773441237775833726540566477541040260594568312932623837216868279039257938959426879468313682942072934393985960133767794883950132340496309588499236679706548189101991525424091919148083630944636822519035771483247149048914727304904840532218905342790166559924628313875974665407214211957012783350714132397750967623442173230436821224012509286617151586526344191315807227295621262925219320916779928055160768184603388834788135013852690317907415380093107707976282595095191313677724095472833525207718492735408947131214290232756417881766563842625597071247444702521496644432916331224507061011995449948171124565380164965740123958428461486004538614194787120414885955176875800452045111889869931320163338810448297810318919459676354526143214678472415836108844498981018742044883265498275891450146887796795654628884385711208354003053916351940227329184926245889165508638883755993928513058180969407976742969593623754418564440038722366986213748603641683588713660915462444456530683682344543963174222345631021021910068238085501828321813019102730679437841391906541110622875315248303195734671261429748919723206694033651592721895424673637542968602509848016316938221759005922753419119742907365174429238447713726906433732710786687869511220034133272996519555357642039223495545522408050883213877314371036206226896141894610038438689320053080875361447412380400096856077669281186165862850666805766107231677692329666686689660009625021463361570185286004207478707806377996883794345623655755589419213975657049812560608028113216906170549810283914607038770652035113079907791821534141581218641531826781761843780248746189429901364515824052689634498017817073453665809356101024048061211112247247190543175876419526623559507208889330173873301663824513955041290921657850884251207891326588496899648555780391955893811249869725779348745010728616840745271567934832658346495223630851630899947559985577229354958512171726704131245753775364407384637757896992046811532923158717700179567105106483433603223703601477592417689366686246379346594075488461821292113196705469960332801181098724206968265679393489893462286094509054933326732983303417078558973879982910674315428926868643380471562805892505947771263822545823568746598213204832810609145852652256306570149452558059729431213027928669585090163902195443978249941210202361043984410814470151696048819153237421636586158485199948495123719371470388926577100307699877738484521843277331891992015765683756517411129341372162386480941996891687644662529080151841171666723383867964297526898717665178067424008217305946976401488113485427214773229374766352213216607418265515277912075428199351812755393690967081563897074607966538046362499303916614995707860101169007197022145065710788178422533553447862185725013346081156668347688344330660115915865186146358373396069174836539682503338255969017895529800942570853455356200708037997730146239482740144381975893573634372833518319907024642590584889707837595576256016674809879645899370040434892582753727420840630027834086257500193678490747476797934931612674382641479043123279040968838592256719857465897744010339641273309999721099717037559227897447375065937126877530816041043441674909989154984861344330764324597986067935423188923846350007163326555283536763260074858613736554354166048521880055718480017329555539036616288919169811864117957490933808437190957619694141069497624404724483583401637357954633261745852827299283306195463602197716763988411367126603439622536831678611499922671493906584811129650383115364084610817379335471192308618891956734281562043601280006211994749786766407889516676693534348805746210336827359777057221784808495414179946288812138477819910649902429898628205651260914631987821613454532259003461062787510953244884213039805274487701957205514321698477368446561406064712072343388784841414762353973795896277521179236797198183558024964232418084172633267451658374896764291253668273490194150837821824285588676344248592789290964900125419943287252824650970200342595645467923687305995218966214155591526332556084768805505746517217753524098932327055449069232492948986160583922287069802413577285250781550533875980459918512745996142487945580251159015805391375492867127664450593528906587850646595928611035475546383677606274108231045160998685176836658028767738095709912799880543501892026797288498916701330493138923671679800151697858181149129383757684008412349405365763451992504626133750027604781568759716383038945821466332122775081141117239740717401283029048960154493406789041304418873065282161948662889766010489297780421946887361878218482249559327052902088402914369022397228694067304922084955310597672242932580138588722083261481350244289653414716417667904930296343672041028532991152725808287485508106373953977561290429291270583568263740654688183214766411638975297146072233166257271083576012871584496507007988419056307513504504332932938240588646028803098531129699392768741302876101771429401853549801949661201161534183204989997213312237483333370481961493375888069734042810497774190131386924539667860981878866835700218640669061385912723966615544137349695380028392612542098534856421619727899309030513899232044969621487893112265573726859232939622355071091402445052215141369035549515577645343312186680456621670477809865075655921784654254153718629205036122773792294970519984811665438303369069595836360566953621630998956128310657138656773586214350825125933776240280704379684280620999583130323271375754206324590039574997792954137315659823714709106219546844966084320578446047127495716053217342764856002081794380739437330203529222889806446461234208889138051823353333651980632657703251577255340344289573781955153429758776567346892040267614755133385918892202690265614509122937469074915802733472436062565440601566376910808894668295990717146150003764780227416435348875818854518546630803583343180357160861780738060765682199042148267351423425445753293442628255046916732410885318481059732117886850084363151157542129415584302133787163504136555972650485995784047837647492188344490399460859363687292430927410690049504868648810043783866340730671033144742563495558464387639871163454412964507635013042881898198756469396627736445128185932549428004566239224680156119882679331911765609915127229500687616322670195077524768249051050931080492043142700980954880337630318089243957097895729485270164684357216664664085881921342513705951160870435533554885169632651072755937584742354843415929404059716355889688347904541017914467086214586147214980879685879009831994647170460490491509025295196547373055406677694616799877709291215981280045140371900759435444509447087579786604056931239197038712020936325581572105931133520725437563823442807797380092828776788332385015294994639852271430776322455138619540186726810667165103807012023928148863049153009359117863609687809287586091141595498928365901716687815999793427182152821806710512546492307558408500083778335532279313237342235903633852224985153822905641900072698024922313173211554599737272630050082606251137075144176115231615149072598920508685603760455166208334720875438611276499552715171264232134620979135045903195423511880547990754371594370246587854828787195065280794738829255445922348127620659339865659568726728496859859429593676134338835680122894458487330910038575841587533764491304898797521316054203824704714503704387964181079892507680718457874789857197395609111400665043802115929151756501654158273488563265699160026997469394852000267394227779132406432568687744962324731181690041808873423479185585358743034301490278899416219203294024954783317084618613207906334295582112928706390331021923675437584188006079460684654616914256675255447681303154773261558287523787424188364300707875388039827136662549663666523621169725070075675117655863173301410940816013667867016960609723341444622431012118044924215915908328584303290693292982371750535914176668734737350646350519539587939673037066340233699552423949192523666273638179738988673456617539929180664399786433147870617882580782384191948362136372902651004703593985905904513063894932917212284334367667476746517388088268223918258834401784935328214169349696322459386243434417331802887084691714911103767432974764131795909830402427333172077013589471627823776302988661330163932278793606873182325428184626797139020368268898305863577444771453907758878525700020604747552842573228648236948807195048154655840538556081244535248563497822851561432266802949584415489974956775807269743630795407723188695456915118636347857303090024771057689852623422479768019317904951401777394835401861841348080485303438300127668179465948813225358609699694779774372903339815676835117250991062486450620985250341814263624045619691667430180183476936874512467123622054884773657368436414229087339972377233033779742939230364191157514595575090468333452906303994610050960338694878119809970979261876020280038036599500821865501002993413523917060674190678067572512348275226613717353029864441391742060196762740946979212285492919469243931992286819799649634033814477167109302587541316355604948228990094587319478926063828664414560397087922868978459973572631639941104382600148330123573827977423270055776977146672093374949592155119900531817710969236698418349459749261064102447227941480607624879051353879416203974946534176570887029566154570330176806879668405496086962744767798098618404125300056248452515022550392749891757408950747267113658763464877685377980140562467578324809872738610740682600942689559272783313320582854505864075260950606015653437085328935709189161765991751798059490957969260074240054676098942152104589655974533185910750438099359540572372066112072862518250651700293033338519808226027658244196472218543112503057684709518719645020988418108438813966826153231002692369802121388535485597171997026705537799712105659165459024441740688868397284759103084192502261348120595743105764852635643050335178535794136851674905742902731279750574565044777375956047706500561700585470886492362292494350257669044069052780166240574747498314917400251735663822184606394820925572047440845859163889571221887038989456092002313861413685256332561900663933352661748134384977130103426200245348438942348533262798190221452154295223572655074036895017669684249006250153268084643264168745767100940063382630996703913746730920441289088382819401287219231990069250683559515130354942103163477143875819633395537812545407891811352340042025010069769731895493163000757094146596769839695490394466379698094215373052970114977711571300790571227001240553161664254416050279947196175508941422880641846433443601348204341783841253229161925747697021145536030103401101464775422146446917643479259593472070604945846991217981123751438812000757463385550690651809875883552669649358180991637328063641743102510814879240143711425349718871542359652708012547621206220825767431892688368538656255659316080696526737481930519539414443148872118110095129993691776465148230957145524872283759669728607200490097632996093134695922557635137724627433937295226807464651835653218127686739187872297837244215207466995159325657246260175490437931541772251100147224096888568596437317891824964779265279859117181300671513314980598214711689271242155435482036561984645708457149935953342583242304756139749897357770295869307195946804542754195574934131577436680088443124960924570434657084096443336976902662147436057544443847472119118356779954723883467004591918593192485523503609180768835454042095052768374121225230167480195743039156033806474567176638064714274614476563197849571430716436384106816108274795861400451332106417921320537742674340046648698438506361615025258686864829095168256460582231294117712727357293884825760934567081389533321529787143396105237337111401330555268719458275394550309290706953469867086853116111859604474697524434080011774188544881184589140170939179311412868201426990750569599076664830718342156357314462871162407862756373420342003587050502269101956938996746042933700976284796580078486743003600464534849420980610248325032506840512273138010757065597789754089308667187164260164872870287880635981150093965766634558594236335495764433646544562093768845319064067380061994376578259887263097479614185812002715147488750405497638709689575627732994067206677933468289571077955849157080451618064424419582111943539556022849780412047355137514503536516195179021315247765116516852969035209863762536497726362350199679602513444244618271606839720077429543156170768655942876075841240074584142672939284010219123663021800746704679273006284998053216633646765762480812550501094211711027464429496888929220288411580656828111551332414743543072100327038194836740519143130326347195986294149693908843135810122665945123598258379689973775310385680355015567785131667701803854827525552986993381974828934763068672711289749151880249594252462920872479213727613655113726191299471166102228078032206156146770767692133054510095687589795153635785161764513888208519625060649929308742962769456018260026548670457599290150020124711482174821131656726359335195182068064453157219439996889082976594637344193865377700755068258704885055392976869880737200493370904585734942933978121928669061529665778276622821886633901794311774373109732421636006283639539582430612585969336307033039946487327133337518300616861320854885086864668171420524208033402692822245530003412279013374556717637242067855810198728246619200748991463509144202079603725336580296400754090507692295662584527312672648205942650605213882315811573510742228199360712026352136130219192942694188183044183459082226432148376802467880263818006284400290632580713496530751633419671094567812584925232277388641654171974911493979389993941633569375289595449841066235975042061071071807445074107903639579319441127298919963271892921310994882025530113281169687754352377704495950545852144263624867225542333965426484438437358400670782605608941989016961205530559732695003146220156767395402255706623883017639186746861994743366075573988075778296335974222408517054555368427972144482536646171089498498754865430898817917465894316149876733030140101240003246341835137207609609454368769580848517696628599443371952584986700533290347846870226181895905175124829015367783811049907423526870169434962927966656043198437774610082286080704942110191827087410891091590564964938121611360037325808724702084366925336575009497639531746092741192555560061024154737019901177825820939529545535224377346228416603896376272917650450191698078719915839128407814572565912685926208071926556397782572108613255727795885510732313957270982174322364662031566763715725707828773635114372608752384391754090229262529863135382952414909524410614615782245077708825186945007727578831022661212433841458342217216711050347305261238830179630755543704116592721343994289209009254217608998227181072007499930066360958086826622336767135608584096910793130219372304094656352069511930316888139100697227570842781757891973631759840896524086214262262959782345621001988337490842568367358684470763434768643527026428919262594014585829758027088312972895647809315301330190084056215100311882163802005157707300411476362553239864317693962037609449214119989849901448627132969796933127548308359564731604381479327663433561248631681388583374322912104110891179719632502349288048505071113453298975959918236233387566051928778539289152104537784250611118591761284834287440255120967690682437667008809372206207893915906471144750263392709330870205113110858670099151184881776375754628749071481605894622702740008118800592564675627035634364801577690339385185451784265565888997653096307086125776493784837926602659908691532849869865053610902275516467432635287234007935912207633269458806303964802775566203483855359176474556533300110596002536920716437350937929125243576873346057414269112095275110932992517095581362566383716435099042211835668200015809415306490562232476953378142718919640997748441368222461575974223240410594847957592246279359281574473353797365691972428317601726337435025627027287999254104812701918527145051627688021063465700570836804502697024013970915431546076452009175534736298619834106238513812359860127673688646852501516639288023381636570874009253639151901144744581320088276285886553921411975292895129151681389114077635872284797765221047539526840039109678419596514148270903466271449065088680388538958041876361873122594618215883764352594939361688305500508704238478145257501542480555338080241133240370752335668227792879522198664535130154704185605350015675640709091586875395676597391421585495046421259536980255739351277342234595884098562710810225551828870148917594427939139977473033663862934716507759074312043168032082739327576542933928041408425522346099447652013529203078250337757545450187848467186993694068760982734167701956524685992621877534740620767782974070519599589410966305367749381451144631394204969728213719178490075809627256381806743345506623463720950862439828370841989942152919845510412258907351690110640751168679956554897563769102408195570985751994830527468385961984967340045907857489737817899238884251117507135091401344449237384256576136064755658670283021699195066620135640948797955876990875413750806677308912864092997559535136522439464603585842791083326216705844125757516246966849309812556117494089101554792454124102170595396360594773521892599320349250975462972555705348389879292879059648756864581068574941251566023800143809808258726021871591476491133158539416163809307821911598722787070834267859952510390806711860824218215754195389673747100064862757074167532586671820174168663757470982623563151762981181590725032955677123477024366793405893500303980531810416356729307681674055877017028041827497664433703321830816259625259205504504268536349403194387394921388433996390102984617916544384486034110954917004283570398739874246254354040855987839122296978200472332480731966610127001034365909095278265142215295618726402684829002300882310006694969554346699882324321199307443541904228607828358257779122201626206770343981899580747721800119413749285509823003793934328502104850667724086239970556031831271321549075009772959777179165150695078599825402501511110762035116860950352456375200310228476868630970923420332641074477829665701816253369019767903878480184606731005899910959784787362638453471977123373843061648945260196770079844475336224993381041402185188523409659766104428018889400081326822485983180238079876143174322099238937239312469147175203667308945783081873771533894676165802991856218848218174262663126704864119950343917528573765921427557459414169641152123148047462668851506365296371623506334898451269048208028950915236164446077501482267868855916527042946590531061016699610712831585210271714973971614398077437037573185721076529430969001042782781678505633801461162840493037365527312585709202495659669128071962006599519331486846809690988712969041677280368855685957748837622258210040092387347878002698396461317272411715993766259068876743923578848760839916773813486552008069192982676983151325815021295968557884073378404694795251896341618844806673640435937492550470828824416054650209004381570771730926068517764974200442272079187430059530701923123646384469775367402047878047504929881384541568215890037468449374717901298983499833613420117635702449844983212573529437765449864138716608903801349920644101911523024555906223131965429112657980254696026279013731972129380839251185526810591387006604187822157393459883021964706436547267628884662554520330473359057378688828783774490642887421811021691478133643667912993929332382770674746406890892602126870214045673291868571773508503741624433199234852372791525521885953622625595624051660933874587021243319748134993391641214273892973926924224078366284395022423330842392113489392257918998719171640268855310566315017980875674944317422474419107244390579497680963902969071836307108039873085750414999184837932251055055231115640293185084400065781495034840018125526121432120493799445250187529299505466165804656358920594439147734433175975455743610948712062621601235911585963658788730960646783242321227725010989565000014890915771627773384616679812062726187394237538088862634163794615114620418335962837227316022612798974454733098946763539918735753788973895958610987761189300251777310144605702512765443015007396354110114447908971324168434558454620285084264920464903116352895098876540768414379800287310074607326127032358400085206524785894016738752028688632242986759613191508173949875076210897789337999276026395393859652298108507243069902035406531675743485474437530551120832206178605203392271106480004539919968042269159552040013910283057115345655762744037533501603956637783504173953511997512445774479614211481005070238858571711422634586323332250664067948191935220843971924473299961146332339939418533058275240481368054555442214340165567730128168702718898544926709065680841142314761193044952740610446651037995008055845934713104380455085806246341174290518056036238080829491866420635396270430998348508439404218541378559355693144872776029743472191016766264694426233351406432015165629892516362347432729393265479013711748629996954709509843329113866522064361382063668445104620221715529109038952903569875347244294329239551711206177223413348553734532482953785043814398195731563214615678913749357149604680113160643506036815195565965708401630413383521816675080409642557099656466936830932598269433011976276320935427183649429466735552063919063340860500187999028962314248268468186632724977510662493317704533679709222205346326447150879335651676250475699197418153283401642666981779307140107990112352697836537239949180116074486935070092502792295514333933996176938053097211224400394739613624675797899132086868944725374337890823116527216631094492572842115209995005794287070520921323771925305759207020008252900019668016566088426136270443008413169504718977836738258300395111291015263798313566873742460561676984863618523720117839074823584569462000178296441043441391115552539156250116262029812855348826754996875302706895346061992588758804206729360848641943386571491065813337874295207060406596689727734149636897939263013931784206049172083606189498104391356191167555630874631132388050286219557539885199332330787111020247973151433460189777989819028397150814089801277403333911122071549856571161761789770150733003295709808365134137690173946826798485608834143821208894757982044886341782348302013773484936259716703437493828309184794217002737144233102726193905434282937808191085567360413703450137073793847065643416980860674446280155159283018412975253491565862430985732663241285424071277051519945345854221102753634180430411474467744226797631678099750019462106702067210576652637482335251905643090609736305831513737596643985094448421119014287771195449602946073841819596307824852425850893239766209466953989548370786146655753342087913919186415361680094949432105306502454425583171910092378486541826206189848761000724548284550579515113325393491360339459341069889098395627922240705231614584076774343034163269576262083875484185691216172059304000982745201601212319679027285215799587714859632177352672097046788861540021832129171135268462413904833676910809947692804212205994914618262332180100307673620610509119645221718776941572830478897007903553088880907396129819836309452009988475903096243082436001705827424606246728395991499253820397046549907592772716008176592398727018190073596084524313224975729136782755364009182712291683811683873724412806532262508383109135367278931300094623431157507026417815836740657876500277057744614876599171878167370219028493120140118432080430645832948670519442017688327657118599697000764746519777683963426929127054079720122655583764294113676528192123316459357720676289499851671650079909324787892273634716164823182843939548396492544728182309352352808787146998301707763953763664047923100551734140080451690790638059779106155013121335575473334704498431338567577708464084158070401569073331182517347632369970049228298771888934270005622353627720906767349387158191806958672169884323675293132302945455847274989600943563021162777653290257181699992227659460282971944703359683767283838195099371204834597902943424393464586722338942728536199986841940697598593841615525318691982122620729373823701811228226931142886653380227104710840110336308889791183848703653634054873694533736097491757281150278174941024703899366725826648747884573746873522981277582311855955736819696447338006311515425563997635479774417142864764504530132926649373763520588997005901366425115520590950379539908969430910849482483391291611145112476423874954123338025916376226282847941002454142597900097316522374997520928091321922413331597059412131127652361893657368997055093261875589590734095023436500418079549152023453741777105926297693489290260305590960375437131547065032452355681938187418320595867453084879004280507240365097541641309404377478726959494258345033129003234055540884238224446231277137660352095207145898281684725645852465780659912017830830965694323636248604003032622606026839238139137843386704313889749022080343440602069094891103227674361447692194344132498714103887018317269599829486951971106668618350470800058876371161858557523780483912141977939543251439587828395084010819695123113830472663938418583160590873995254305632368373577298818802838005437665825395092905843934147282579730704221761068319069633971584364777854971952431480220854649409976802237068266620912152468601572546449022083220228513347238299943110635143254569879332881605878961173693561499179073379009012764978559760649778868400635872746839209840077627220902932535255335198010316701002954789102353240202528926350626618957980297763126019646562506820818424457610991607729326847117086744387476234933465715968295933649693420151380736594739339964448822995979004166172107369012372071664288326185836776831675089851358922554032831827661676395990949759085090457814463154836975183179229210970564706019374288662217818096223002447671513212895436969377978859880702341289485047875107327492540808593728304985076415554029040958784727634361440182039124614127171884957813971162770856457749576695670549307916659840324696370584070071261251954929875289618987260575515015728591512348487083379210159268006161681636827828873188997303593792104585034246450987200470728022365376978028085812969920603401701750230331740441125203438759574732493312199789112548909420027010559452329893494877680312286164176337188180410079061956842492909718905773209344809684150868993356799648642544701090959779178952839222520050180485262381876801526554400300991106467633434345636224914181520825636880056098648686443889198642498730474302397917293965411233598552533087900118667962576801706876542037553523022984086734721424934395702388166054058726110592611652586781681069758115073380661466139096641435515150083427344678353191429079727839133381711404027444989978511159651674807245444736952064467162805974867149447458748529633174630732273389759216978882391524107282275844172038318390962863814031324437628707913422333220112572344157663082768135003076292163025671401677966967132024952341347193220819038040623986981004429413844579531356729094304171392459818182231828665541388955155985589753211436948435996429459646948911316110598177982791716865178041181869703355635573823519472544906323813394170150568262586477248380387411205975877945623434199247882481800738133961700720756979247968347375566681257445747490112377917740644224357802913890334297984714919048757913277309614218484049020455449091693968509702047344557131215309354952001790786572384536932417797639601078447785345278596351476565095337741825195532638338163894436187882893360828927422579958930799191769112494768214649907987494323639338592146172740706439496897353220430560735266403336271879964945089957688567429755827667405798907882065192027709950248198980050625392898567284203838138990537606630892834267730974757804279245467334694166767632158442719473943017221865273655224112888245811574619578561192673209986852703831823614715721649423965079421176200461833907397157187182166907267614105037545482022171409549098699464702035835447868264946785770565252196722388085367434700279807106845255985142931062912954603787420001700315137331363677977065289654023792583986994501219335955841623655708632099627332581559175611106112510221206492282274435672655783712372553236392411507251907975218578488181686581255829908258770321797720672160500406824174835020364418889985127477383792622498839531298713392002281641677146825534612991300186662298934738699018237927617291224290347312322686463814690506812400661475755645659269312397885151840372021434802594220142317540730452760888852972866336793588741477491234870939933413480594348535328664711906008435247205839224228660819868553879810469940921739595205665560429671717103956567931850853643570387146059965595590942046291262843722729818612773973459360481560057412460342820110061478902812291029807709399245042162500832576640601623555154363390115434159508488166862401372148960725731591777285413229843498179473323929785107418925187449878669740321157735668652237127599909281166623139953727023088595828563493183536561812584699325628746343207589323741046468438113827587717720654739997913335704255242860205263213587799897923189917094627945042960079366925031696014125751989288366014580870311529279578631026068801855143974354394461995159259288709911949540932214196528170456001568955353514054051823995186572068063243855688629580533111927085673682244163020080152502569556331490100715562071194865166453237589641591917069349314002606434173500688312534570220431001269176450910156433028729863320273457697078726628892081989067855674403056396362984195892359630079436323481749539016954279188821571813796725803491357005248614492352607228396805533417464571027879834096893256874137998300028773074126197611346975110848886272669671281157642666816566853678878202043761186264616667312880371044355226261954258871212752484095472311391333671829424958744215164111397880049949177169621327143804717220304434411271063174022393444523224947631264236945064444333233565521024110503628172713615155471113311144720250026577922054446168002565952400631369566920600204673461069731115834966923509175523588946882607494195344198424672409566723955962213995239742274696505136661132196323591396709676572223195068180153842688647998570874244600060324558334841891361217713506724392462586923397418610201909583715342996316144590865528745392610152572284514659947057984414605907638478441261792244600399631087191085282678938761492111027147291570010320441863565461837366869055813951414998177482396254330140932013899846559879343515540239139960455985973540350372206335600802962420371150692535641749060273761589475183539794094429759539248437248799051724716977132537683205126809406964539411697739230156691228967190602393558142207843913752139932587610524181908584877062570196750848195135789238329402819566461382149038405581527272236858881258899963263856180178919108656046734872041903039239736900841052841848726773458486856973763547864305711150016673095678273479737805671650472631781855395673987729478103358279803188177475838457202957442925232944569042781278615006628059013683737287082854913317189372241596871781199921880186122630829852588373464271794905688273621978833717020212656401431763768447504308353819722572109349560990138296707615409750699279026728604687873360620779514733392154816692939535790886280265374705218245668062067427585095797757838690362229279087085583699617746099404643716893139670638613547479258821269673991983791076867914368384016200420760473643803942629428432313387282717832743161158259372146182410895241597211792180564197483062450996471762034667604563427389531668377425955006030456919879067445858620500917277850715223383582412695383553066599810024129835810358836812647935193716908477571233625459476661754699776570523354272200455222277860623838050713174211381054293297717372730414914242011361851879461492252112302090738957622319912183413843942139777268242025533225096294310741149775307120265031172939184593976461253917333060146932828647080462532931489793565707190769639671085446764174708120712158641169756202790000361156164615337560807816600679925677490033670110286557460982646921641374598219216509589608322941786803646510310685825630607063108402806425996089106029255074102344127326951627033024213002215780852421498107032324360478899672257912302390403410052763830505628890465424703509619065023389703578331099714215654035757802789429103267223886875586461088300913362050479953837851107157346488287112192732118507365972189848621213436089852623653087988373968473756810161360804463679787728425450006225228625977028785259364112729393516760302282316244073715551315652418371313662162572127510355579466837487043001869636590098636115863462748824193113670003898579373800705970662789493592055577107354001184195115138932500157589792122696063190076658061153269965030239213291904481358679096858872172688392888330773728721187288144632584077480412282067579919158587772648069204139403793708093469214262238142666687810683452065655849905371438163766124331715920406171708441422818632845515310350597774603272034388691176947609833973020346120934033530785853739457442708275565406966324660584505285403885542035343353490920639710196302220988273965701378369117086219175232856051100460878641763467545095135035451956252479842094798552496714914429714326539617916192766319594535777763364987784610334159714551330720705534902315727882524085467120531671341919728834848597804002159093495207014372505761868777243754804879225354418697001561432436202960376428119667099801129915591755800089051302339173345710410958650970002157011190190153861423539428767994021732807465011657014211325228969556789395781134317540185656945275826674645405998242669810699856935911354096294613393396754887549857367768571295729303062035162078558361094703776261931394448824796372721002937443861198072259291885364198729150152419703205223732391415024852370825333804086497522190040043088892126749723428973983672801302511304038730375925363279556768669830234320669732506134647087003619185134280104488342065042808954805785570435938623457951532234331676384490789781061078034599501430725195114763234221422690692069555998271511466968703904393963007938062578995106900369171860102199073189465514301763885344094126232549957496490945638120748359955191565287444502651885417846144743789910264550377550316801041309067083840018871624351552995788826235128658425338455838277292617176424283390465409878496087120022904058798937714450687752474504759849016964476627956202090693141694702866023684114453083723795127466883478592002212315056818208129747940091999480594785298793882750094154190204487400192733087572269160899950546797376620736011096983863426883245479916337908487688575926245770737938597638884053978426189808494898318794002027131984588960295488398420246230797564942313207759990546362165367977574926094151571982450645641095978408197506033115289428872723546255549127645284491132983979157159562543828815824316527334243886091387649319883998281188973466883665507560319387098784942120686612254120691585537494458781819413988450069155177788251915230364291606496455626636790941780101334646451971577388938323545412123617252293448852048792654595619810715129910724800660952244200278973807692404522380213301366986473873822636636327103084742914693043079886412215528228174713022996455474877461084156809696697856484841837987590537469044907484975176140771741483587639348925630552611153419852128512839781649595604421354918055758519575483494553354167096629197300459477760411226460775917161941234259317330684786188241826460854471504682176760988543325046567009338907602459855128442660789185375474405255285617401012798164458816112679418543112796850525172248563142409588923240957721468646112964643831774294656023992158579288878256560353734907096620159880362853423334670018678095717970943890161236946867522419977283928112070399655657583547164687250431835499201024309332028479160373668176066968668171347725496014009306576132395842035282752393424604162230331520395084604355088903918421625175660569794440235686640459799953252261446140740996797711521536742990889027807881421857444369837968606901271680974495730442883983576901900045382952385345460889867718609323903892948154408757760806764897177615333941546358506607422674971913628558891583427684964771883698957540978134570102022543911192169183696829742779128487022603109617675056517366505393330004280550077703036072574382347244171352524247094099386571673044611434501058901662823783745236468045789358227847261646293405496948100385418041788462001893201905580245154480329164617297998065656780145773755601199690992431618086587271456572037683041908536035686958402183844106091912834771167336495955135207814078206301419994120339256516147230036372052171039695915633723884228502178201258736470708022418156208340628187721911727512663512674936012567935346272137285359574944289671301842268031145445334480441663208641498809642267738365598991174284631120864593011686441115039130194030089170433464601474947412783775654590674884915818328850055731104672549870627175731730493665980625374498048603814552312300540944566267123674106734414838455712901862524116837979548772019679441803590227786568286522308663157698635555721688638393599149733985453891563108034452033296854580410210306603789285746814506972159553614679399779940866260482902513968598808816296677569063279696291218871142176109946756543361288769014079721144644547211249369562119643664847914143103693940135135418673817863264413360325456521102125425749658807188364761948559083099107487716162775377108559961818904332074629257818267931791622924772246220443940264877693773685615046339306551256448818650400491724356441101276402228240048592706869010581529380483302421433022820033774323624096820497713883700698604780352510948390132910017887787632762032909089186883447685848313463280259108631424009227460516570307254453664588001674222245229288700693350176876842834484374870849336143195219378203431491236295763390151018963821352660135738285659181954189653340651312923720790615029470736464992118379540282491041070611462730828640536048760584398144160022016713413730682382895983169237220440942817758054371364489747866517864686731680400428995012287582822568095582723759153911344762407636503648502681985690917426410424888318616064849055696447312954000607407629078857636400289161571502065015053394735266096257971819525134591731707295558906944939650640815323867328451297555126263105006249182686954687573203031687811940697713092023731791785516796881914640857358282787750637248429705253843432196282768411565617342705549253249472860128415777214921640404574884932155018179705697135323238041376581227967939192350239326249494266876386546879593894733716037180740114103047194961130716533544671362828757430249849688005529228465315729528969651531921097039687323578250799236224024857305054138201043919848918874421015490858262552098650111804272843623861338453348548891915126365618021614289973486917784647689463144801537732670534487349676841238302086001055547436324132459400040994156129114329206311156057776630700682253141111650752273333441411354447329911672156990440837437614571543166780640294711657908523918522667972579059405173674306175056876113036375985059977974961167216797276164224498291109714314890969824340992430813350742252520555842481191408530547082218014666591576581070729503078495958231494024975587326408539769984284069513674009546457436321832105951323981343189761346307595960850910460663996300151987688396071816339496074290003604931537501980059467961009361545307700543837959585596084290526038652167263618971873371380835950039381978679263330460370151821012906495493542466379486419069808853899657923864751977736210440972925672445952196891579935883247445032191618026258278912347367364918473278733082809598260515905024086939068597811603696240575660919149215915231675752472113120035735949070040889850330919629644625848453552485399910393144024938841235662464994383480431611454088543146843878222825722552569157276198680844565626039606826204616578970803109528805600741884303799893246922419942174208303055017885558749865136472288256916987670748874204647194265727573623714960194949116284146602570967049644674012578165508665551597443754468353980249935366902917455106603987826829509895295968915519625800111189564033311032495008510465189884672284117618177569524048143900933028122977106640113114239385371734517804324199555472286187990687932819574248431049895550363628385180839651425646067522177027796958457630722201638694199250361322766646426333378507369369042312688523832835652258461035342253866669942798057145802770821697704219144761593501017968907385025027733127180016380016894590854578266821129461856077465673230723378125198179029407986088703461689904338988705544554179358765424295118570616804330244713638451177906010152105592376245335408406558473686243084336582020028927276602055757388800239429074180127794049084948075238889410492810763734274952655583503006801324021172699518684985865433637420565566424974981961904486547328946607023781422553074462954761217076259453670950720846324446379996723516517040096162090401460236009696533542515890137047065251275158496243823922357677650583000250300663869478834701973663888875895932114422086152146275426711883447630837974944035652008118396085176650734125497543878275396572922730472523753219673755662449397756033585234176156283405649628672535014020322626832616208048700333962667669102624043665444491871813535124502566513860286305442921324922174249125785485214612694573549842835488220872773110063817055990217370449756231939297429594448828030282220090788559345726404808732112625273901610483999420551461843834074000823157841453011380807469325838875978144108774694099984124875801447202064299103111960095034993296619029693305726171348885630356723458322439707141719120472183999389303319013824510254736589717855860725421312276227541043964313674961597676976419160933997391541878827312577008636993118463482638488036677255149835432690469808479340742195014500455325313098022410163523853807332468240799562501595077057996243002082901585958651952579725160708085692476459680129791321309338203630492896324437236955825693761708475436853529891706816779744519434044551103339913640731553279941691135061027600230720303505653288514238767810027376286441976625088622062179308733491227932988359252111070257585637998316132913753547964463162805641606721091518666810283305662805331283834925587167882473405177588452481688403068626296876263020399137354112213152024237973888285578389914497179961244577342637585415063851503100394766893198967873359084144520455255120826628905227631490532995646475770162283854407115247310865518609995266790236652304260896707684142204864285613819366771892305221159901749797125619198506384976598531050111882295748845707503708665030700757790216887072937551553631278673262851699373297462738384791893150417793678099420363654027497218750809728311633053813698502375836971901879710683447201475856082927202420941067429877668778051532102222284192355211956089461747508673811538599812185507465881839370385300612196160336142680249694350299664164618464434528421112712552616078082483675211999426881269350459004248959219391196310570661696031936456765859494547068538155609124665112663060149741654961188992263226880609675481363942240584978212237338396555794994639020517372667183875746679088537897592608328186892763192607964650196106144606020074536096679839886046598364363085625356974851698249227603509689008819504673503817270219275024671153736020213497342854228150668110840142084661492311044836545370182627919318982199027508883570067926568473878794334563472757952454829198147385215316889268756626378771563402140648196699990680127425107098171499987130422073512444851479513386971768316235302242095367571392794782271406196770941953997316501473605383604216560413493598562143794518229601639749481297114872988764249656417359248293379010135695057853234096837401133721706323441196508389409934420836355026572760422771258174512256322490746803830302032666743505503410951592584930341995403602472835919460187117742361204936092185892156594714361897094750117331377297772206943634317182577938741515367334552460176134769712657804497511274072329699342725089884690528718022175179162241711710514506550579008594195256091721034918869548471697712861927498359236610091952499807695555736983008564784095655177544625221337275508382245455492971279500280404868480790109659317644797522131483313578215486803045360507365732454390260523547368264286812308718174283760454845971056598730074550532657655163343863810823236847188302038049057844003515765342400745309017097566406808173635347867138600558129781619038343304638170165355439046857821430858792669929594429300412961926576310046138314264801387571900420561781846807441111094315317167679324357507330124650712074102888945492384505616344490766048096498641506154175660930734974407433221204668563043268744153552262597548969653574897601844154300918355183841967953172477036031231074806532646685963083542405879299292252470659656327008450421776613602024694409920058066072164283190798094539532758448726382971939784928837608616381990376382242185875853033849889562586585787971272042398454646104030801129292856678249695351352645702258573392102124833177453486908019139419777293961002961529717166015301696717720639543837319403180286806355344727298282307362456143825159849381098138251861562770177190487417849156527803445408691004037431954863997316007123759461067695417687943491795872831130127508307848424486759124654425759301025507817133251853902819036278688529033942656818338427326720886119989961735128298350614400993926491551071504779382333159184687560107183044351418400664752743790567807180539616032754078066095379725930848466433714817069114944297625643249827738428756529045223953598750664847986813267845339462371037892400469939911155531482537946843340164976779066502937825617167719151617800729915467646251482835899606111901948977818596434799296682615954925253623561830336816056479657870430431654368264559655439343566772935781062630964744771558845844324248963387994250719380832942973627920464574683192580094062987140000562111732219005350938604820827994492622868903721075736843472685308640017710405664286026491997260017201453588856892406302363404817588095392644295478316936850753964006421495689834804724038885032095676577915318423820122230418665396814747013416722897329942413828248763213050334085048170967401095724572872684586961464157252536621739377457439604908010418686297439572657893627452189751748236280623348170849267085469324608396907211202352859909257841856416588506427955546775091036664079647028777346412923476776476087761397026534182452921432551151941381353180673803708580699022689774635228992912817278523179640933620779012045021790255835753589947409681021747375663149382308952032112650704969771645151438660167076080671585885596196928694732077681371972941353002103719992881443368068554974486598745656889323476881717746135582863146761258114653203823337080852969164279832377420877538444145570501177587368300157787428299611109344643627506001909393439581038815481057888483085197652328438722379325075347857215180434113614916786406854406948768904519311767110907894525050079078623248591310128647602684725585614764359923472650480913277497362802451243752934196841661279566655389807468654927899860079516758078589849879568396448466039313948167993228879931574235788264630366063913096706147977256992035872479328587139445305513988925055779629887504035495968572051338266262531535978969635180340081398159513847590314946204398661713032921665997593746795646559992697098357627444464859834293706783722487699789722590603438445282324539650475832846870256810033546618138817814118081936506474660378610699010533039664343458785032340712028299939635689054211524794129958067387120620863332899097942923916944278985781229099181435743261631219620716911550650547542371235484803824654027066711561907908407023839357256384515666282302945043672130034059224984550684926208536257220762291920595976025507422062328996064509786658602387298846567525399368510560093489947928889619945563078033324626512409650083809862656889064589151430008226006204005884268726011200524982120304979425174031398032726257160660448983614148135139559756972891566668270616925721292534388795227352382321525978200012499963094942148960674189376568817858844064320588433475054597409136096981574284090226601399965700873333597402088944980401231454674963663761504358404459659356897021644156209631960504125347964251168974852158859462404679670949650973133222084613610139741167631029952914748091719620386707539094906795604864734955393662322479514074816194779070458062574946791686875746214886311547064814016720343994786760339052076721164775536938769463335157580974235570459676137235010231140784185075243308668559486833910887156642977965341034387940426190185290138598204638084064325676940947980202753980293292936616709378233853263194349373034374383427845734885205981108173167470636317810609293345419573244042715631809030274138717994724187172486995597395353642044308430021705293819777844906448833199919044050973206153178252934756679559597388251623938461408090005654218568685880120326182259034372046724017243458974245231465644301176603237482073725840143009232463176524601718271267322552249175627720183383150827671017523646345548192641893933005281910181216053154567630280356905676950257017282912495500441324698651609877993684671357580577067067995216506848386693055057965833954503763853334546886033350250538842103673236814247223803282806272893807192941130854264353736426226487596191167217257745213920218170963557079361918982964933036527467798494651318224212722710510858483749065051348008362054936237067309766604851003577994980316828036609333328851931192139931576599896839002242362871953163475912160356496512471011571262000628705638198808584137204299303017145621997488422798206368517762927434666836978861512518767168748041486939531882218548519230554913257537199441759924529241984189020553939439415113260098621810214738948249910139650220633500346308248835959381716762284010144962733880242577989214547475259489854987189766180294476791055578794514400365446291591820925655960832855949943944032469907568381398711821644364349128273350425048263849335035343772165738633740032733518042272279036999624792387356285784137151994068770644633775179381511127400921767057292488834571722567902513598643909951026085591730428361075123899356754947495047859401420759683638446182593483698654632748174185890973742641196994032996377317045800623516175033316459749606685854263408181069142541339195695882752044911068351646444781449423148793592511296986419776340935977011338834954723282017358087306787999070323925584251775341833367088291418726950441671094941010648712674467220872721417656855313816907598983803350461081406395525977406215708568867532751979997908968297208603626030826374158310657058023569628208925057622786331206171642197155190637765595826845668340637338563731995072343632420012045181751507792002307502038706985724733569433442582921877352613034006289397046099916858288613705823181618794941566353032035368303222452384921532842535101426641252035408391366367022018244260081776191904225916345383465656733620407316488262938781973652747977446074873653222451747032368241770132330241130607582018764525600959937050417207301294655379983689079547804095113026382285804077103130875768244216862860495165146340917600462176945731167257896746536735050926825378885977625602305655505640457716202492123584747652157906616068555474548615237173664508783338423978511175378744272612731404850331540000401829628775805363263885258802558824211384749915187862635197445858249934584528300556322734280473997321377030823391423372210095277276903622821876973179876283578847162106904646669760308052545461449135686896696397029394224914497139873331800425192132255653684437469295832606197671525881210217831845752749987147516993041182817227755948597697416540967954430567343599337539555865299291952358542414329748496346288460256657672992794585025919018113304795936774691383510903510715982187067641218892028622622635553476119727656579590976285630916614353459837118532633536295276523465665742767252968363227367720259501997934733491684848815963706984867812932719577257040659748110371668778520914997332205656818571178574872567453700601877128104670832222804080131738967490913917718521885885428813964994836115629189164421660885213795752717806374053960834745280917105836067806052488132559846902041353062130692768476093821709904674606093048011448400211640049705784482163299366010773594901258779436872600161898457355277320384318847956772894374944037417301813042086987084768719184495816008005493821411890127308497197346442734370299610213337205720135767715158311574522061139265406148545210225510229514527077069742318915338679823609895850696251370070865443384390449171718115250060202205972989451468294780294979059800356415857839094342809384117339695999875445541812285382411773318666165926248036580549221835235290194765144236344255964674721989671532477177000793863175985039306971429957291512364552267591667211674082017515629233914155127016203350212344657347748974786006339840337550988976882454812333644320030885997850880498186907072252656204474854542554213102025678930505263322165662185024139591031528723311763918658460712778056713859914613117538041723173996379825628686325073554706159940305278258008640173248750012747085538944648982845258273303230914980576697279286100988658310945093481196488765501553600171914615428367684822988375638858756035241050868588259531137847857023241787134134265106792287208703447049046004523733532972663236539202055663510695597098567555207401324492393913600507330829042968055635365092607619302891364703216640887776532473011704686584964481594008867841193626350695471629353539265460647511317210898463078990485930087850123819613017925373983213073745731205498554231259763475265132345759222664534277945021859591704429579236630254541492624517078446420262782472987959737256464384246676589359540990304332084535051777508204388690397369233135911922684584005752132150100329668814268384644972109112577235236028574457196422375036120649023272468599776540651130269682737877465005625672827064796664099084047251305146014438134294196724395383464305599500060361338508797053280783777743380499205630863677287264216547144517424865714700637892271621832753783980694911920044801452903625779681148190688296354746403922879871059106486645886226556352329702014172631959650557793306838674101735337803481927324895383850358107593654290269488699846056347219263086857376076632949153270607413811125500287005765626824759607242806365571679347267878513343174518322753526427249861820817789148548293927484526108613366959716551232380551182787687442779348179037660890961769779914707853147892056471878964766243824911398848406511790863958250507171508804562688137165607409379169857046821994866480111431320637772233800608975010792769924073484745257786865532130356839449890211910060514430651271326414687515946152032811357043410857199735328369350113053694129601668578605932394083910702297016327079537388079978814277284536815253128404643531431075929807822013376545123158195281824648893766351826837785925059964104133578026769723019635087703895462042934494801811486866055903589737286791581734224884582387204410152129714913314151803204434772560054875841623332178408114611592864422377072293048452029664608540995680929854858165817925723300718699559957966775923375366373679576645000513746781735189016166228035073755254354881647823034689981545594950752196884377408402927770374297553675897930415008093687011968860190280867295526815337470550686261008056934918535353533762437750364249047923248977656376591266508458227273693211736955997025091681366295226804059262068376921185138989938333822751470538244723855576949241840576826688617547423173851496390934263965026219940936074494167111247838088185479888159600474292916468634917673522016570961758958245729204356576478211072644721892197112513880650425127271977308808519877706814331168948213154580916584514501432223984972496164880687528914781327166770690304150995443689518970530216242995084000934679221949611861630802923595134609988675719682787160775206891795551146972523699399240796785990299514800615440545424164204413700412566182473214181924962781460571096041582299803460194278177851189125021391862009190229573806822340740677929867294413318836551492475055472883587409963087920831301054352198105295941792436445396493342487038519441384830993383985775159111422134110603223710178245113127481048939334704807364006222257186962762269041803895846167652165434582623566707837497662222714891682852079046377988139092927869148808042706365608287351500174448745962821092159907890619815332159202383304574056248919585302761110559653802825904663583860728028425008398979678038229469651856780950666651056966107124729610522746260292082070303588319433197078984265500298089998388008949603783274602968827085147621327320697585049924129071601594599076576492430792327442652447685311052530528775805346703719440971566627615904559446546903788892087867438913224860196551539944744823357210144686762088391650472952806162054424585356591257575970900464738732854916806797972970569067539045826214685931811485681749774158121114077160571188655041268906541060387313811624317095983399648825398628041799600778977013084730096865995579240208905379484112573964995814786386918887525250608884743375181334232774731011614655242097362481849292591267472126338919412424559664673836461532309630152675302826547735975477296396339783628128874888747606423274169910375954555133185860484094900504289200865272818608222111851656772227314022460667283945692150717213317128007227366622662443970889936697700916481323887737127780199841927240033812770672347899154881533662448180768241800869143273061562441586374533956149063031856769546218567350722721013536713686418392186372969253844627825393264416499331826105736214268681927829554120014018128797043486419302772732877813330856453675340051436838449491957132344490538191384866139123463154425689595560477624318825933729137669747585871301696275096933634184392486604810065243730746964390753714188332832738181616412231073537844807563914322622352294288575460844377796550394432298514696743936320003789517232645634891541950980108017250230651646760574167011020054223834572002521139977193613814812569737470031401089716339672428462357104536069457869896636222665693509485159476073643579606247919386920706762444591257444204159955967062830045049867131323311809718604488322212803730499079761899758790920311915159274126932741481758637423849190730157213517101596942405950824311501386086649485569288158978401327573291046620589999738082782472470191858084692263536414736384183183872284690943862687572249511071702761232560078227334344495870290273907638382139718293870508742561135735581782153454810030565593222251821500125621466999033205132713822112143839853726330202220119131102576023379391635957946425747878253324793475667129570952915508694647847134502561623412328435810568465111574784402318724650012872040426727498593282869732976992205588137669527006378745417945001347935664802442992868982190024637996316013111237667347179286037917418835338594943050019574680367122066034581927757871169309188381503078248605161158604323189112465931609817805116950206131708348475855845366828480173589588852568644854773153034419003536422368466002465659027047016888400967101835543718089052998188091977201021082059215860289142750625742348562303437746845542492018512783550052267002976534683809631920703663811737386038961822180967024977958486087866442998416665708009380692577686911536542038000638169339566837676113598388386540219333663155387279862362545644089423806778433535806178724646142035565279155699828891534361631729715413848957273985022943203125851710549573917950197421791082215615962842898713049842880677239751157581879635840368574599764680053543286462656623338218796333621040879662504044789900299274407838003628687762680972990314245120356039342269365853836677129314555478259970266347682145969525642728327573467168144102725486856474269816163993529145713963908796712854838173504439433018853600634243645283729474986207739120757082859638424527709842601302381600601564812421299222670527478825757205217222367237582474906403966051032092857209614736610824762744518995990482463969747641514431342382038153156209896061177391168178449872517238979461281576492906863710108954674490708686785792062526103878126396595955272301818519258614201469517611420655763288043388687940992733495148552378718340535956558581000766079400048893731520099509150861971980940234454607333910698577534511391137709319616731096884659016960858591738136912751243608188339316742621824244991379548092617538555650645763359283541248235965345284457932059494000052388865122733347592101541184086752010708006423897196033004826148044244724372562412240665572180864581791814378656146213982713061845109586254726642959629829873941370612754880618159254230657204318536944538549175181766294730971435174684068467409075541907579107283084476689956968281139814625662885619951326246706183722731775099894254894001078198474234615991972338743668273709996228280186085035805397293644507052996876509258779288814413859970048248700191849520164284383656888017177172764101495968177746395381195984489445577743465319091131708512382534219760708327831243557341621555398809515429373551169617164432909840874747588332563164616707421819971577801203906631848296632291805517645381370922114260971462893302653089662656549004303162526623848025125438240018473314167470960558078911441991080283339846843413828406629726266305809191775859348222080759312815928388363162744090111285402572465822328697251277523035956011787906997636799373717460984647621154008933306916614084389235098067841891959209910988430381433945127141464586277079337046562378700399000597149261929636742780982803935683160362375170242752139665020929699066202565701980105465313585118831028292207635093819305682055250654619890314056529585351797740661372413271117338129465217599692811863190252721808231378070206451772999787413739390771821534688268659487271414258333789675196253650835185379456300402361025653118679503361119713051475424604502532892149376321301942544899665319868703383169096754665733122069740309933930471101161020566713503411757607668964499398847509987736465021808813305997814213988957389477604816377816500457686262412713346345523420678617678344951326716395612379421473947237614592525862046581448872954002524047814625833835301795415803060276016324151654474343411891017888114939330714889750032958085211476855126771929992343253540001518934656319008431388908304835754079327591951599531091156122162435720586773080519160897699859694874949914377861521394862185143506446777956590055156105497659768961873405335960525580642498162026836783983503889176922565200248698997716799928033758661105872866548263295076834924200736041795191202153690568250782298415993449788910274969268557851462730560991298658693641596291991533166925155174872019748964211623289505299151243300564629878487370703771865645139818844012602578674713214181063024854810845254138293067097323080629870973190353692633250179012554898929633040981014541204772620767338852796808374358805416802260550164109091610807673556522503121674207692018311730210358355351665272769616802024196809821789933387784377634119865316436967079954307437489947234870891242423335291804796585252696970822638215024108887005822990604030021380626872447323872803190510454113387531724466070265068659714143217456386132550703245110180602520877825137297581861893669961245875799214317829369257407991741961274895524191820814583457581442303521076524114723746050413688065605171576556574319625290544111043853682692824752673559588505184036817919793828002370347778818470673936838412942462898622307287770131618055298915586467777043857280643035700631644236409513943899017873523850151315849306747854051371767244804738556132765568137004578438798497612289481168740480166102884466400704446605890335418529427288817560770303854174532198552988433008518363301213663087824810357647058325587486635009741669042429831940139996025270265342867367405560735016478236056469566322500200501849457182141837287586222448969037043415143321592827858434266108057849315877039564272171116841302360533068136407081302748686106760599049864367329167496649503892436543804256398132527003118572696124436142225213262929164056607222011478096934512168661001689686795658914210832278345277423721394127521093619189194788871548301949357895178678484187066189401337667143383840929929290718749100857793489636820170199522674839394173088489030259026108083584444751753829937979138981001544618845448754285263375874935653759374087301512852972205386893629578619376089545018197696346871379303323907404550503579216308913044069569420623530850918475535496714691440647592384437854834490337556853279076983435503761001243748161401582086705378136554731587614113648125269585617331971906539172970183600832788767498970269731399660360511603854793855022728814679727665315119556100562177037007322356008782454497940995522805603842531719537812991750798001557677244853425342753758963241243093570236929875033425784566175835861732466012298957741370584921228941667700408851994054381201198093311136704546146656958795344557706940773858245882874865034074276320949868072655263316213387548830190691309375803618157065948451782514525020274225176772342866694013471043984339955285656917634274153537198417293243906588421113263832722154858317628244564031193995750033359858284326989325112321337238733369899325864831816595623426544890020256846858098731447664428904668544717939169073050275095493130212368127794325782165187118606043157643823117602294681674895757619446682892615151277928265102527667068748300199454261622922194565391109295956145176552892926031294005530234879942906585957245794116276859659730990508070420025103472536991263052972016556048326394619418888123065544561427828053699529414284640846287181642124572115784235435417459659406547370855320432893147131497293593924633746127545764603832243656986968296911868167897434446160265652563882311532254381046942422204584976499739183362693296599121751329188658452566779602938056665623623296188335262561793304484692331177988715631476214359697366653027255431071659968560323041625198645492826140661424581148205001566964178930280968601034534956047171706454813175748212822502971128196250866402457563281481665497232252667887495606562462728221726005420083565657242518162460708406650381801858928925298612587258037500673216998318189643516793082689885109124619423886620769892157596179235641152440877692481727953980514884471625008268736894591710910141215629110196423670519855980529605576690033260293801234278721161769586301218051308656675446140109427161826859689858987223219203193463088947680561610878817826720550773562741701073224938821923636646337406583519705925766830761025732643924389999184055374019000885451247768504392554173614464714855843249383018289932169114562052555941635623666706364924134622585230388666403694013472918820149444733038930616350511328220583371509275090562318443746679957065658490295512589638321049476451993425610512996163973488878096809545456455258682066317501231074070707414728887733677941054167629301911313321426342477482798669241357543910499788400887791289251722023948500632224425558003428188144987145122765252354356405070893540673838042240183246670798444700265688338042897703977723740682943636841074026426539002122033042285660560847650459480395273649945659662839420823105120757183585266763295372220165961637639744045347833023530762113432340276545059740717995636867275351221026751998216900018179468685514062308673313865550102029791821785154096968523914901752968048669855077931065866957928220115207650402575852135327450528775342324687665625870305003309220444763882241064146556225641550228792897393022425042773246885429562779768593455323106086330221853095935884237870217145972197547754771798937136876084670801101553659875469553761069650513803894948929370110662741483127632942073846897438290405712354211653197708628741045791925784392192545897874133260020341068616351740406506356173745055435476966810942604541423632965178267960165148988716695576113867709856712664889625595860675788925621828334516955800043794917787898174288801428620517466422394187675648492090709503766580448440361214304369172082132878433387001064338003485224232336479450904524551625905316676971936083664199345028107915340140937790883769320556794244968386389507062671011376387424776530026066006789450173547616432950413840695211921258284603015893093006008666218809209149106376869550298466768711498702418453544724638547222598884008772225670028742108933533238850200299063048525563061597914086496400243230252480349268678105083945352307115227612731467628879318002906246930003560733596836250436677398310285221667409703362865088223212741282084409268524456531617532017821829623714219666214774250496014351074853939023411186820869285056768136864034763388047776467334061996551671486444094143063508886330817570177268740849774721188480869146921193231222797161947339769078655860055057210569551571817475003570115714550868371694797526667384385856778099481826285297401790971392797204833584332637746959773113494150381598483379194690440453027332662575669227268155449141299335110624199031468188233451626409693916086987698534878437397520063652505999413935149841700637131275448968635273669087248066045962846064804706402338727487638398887464621406712203923806637674317195786046140467251699197280954915313686735277320916460170489251320226205880958545500496076374404425868494513024623510839716148198156909665473197761940781068124678395556307208141396656331239207506981003559986969427897906195987383233652155456218983220797940014255443626814655271196733103022732776737316300555492278016889530557280321490839033395421326294286772232084385881465528471007727206005449464594404730104218672532776647126311965350994021586722765273980159296040759003649152606199458494047913409152271486961918926722193832250114735905401882642334240862551014704234247861906027658669725850776948231420174662474732370042512067642278800257044760421448713568659058718858533024195904377481580402563260892078798461759433809426864077731759386822117294830889305240304734568534153388789801242679577997803529874315165948275903673558812043315935685090807501101573409898211104220324705321405437999985826194845346452041239117734526008675660748990048544655531175877716670773821994466386065565038941525658683171498885869623901540720719318471116768045078774156702796904935632680921450935699428797227364034149322453560033555077196685646654050273037871845139269586608920292606121736134127566785056688759710123874548661839067246008757148244922953487733456341969527587332863271177686619451937807982265048577814273292056565889277995350774839381633819787727858530631360830825121433948574283836678463386373413518789339374558093393766495378726427933946768544878034201560304446052675760131418021043318706614426370924209469367647781284261883449210326619439039000836196112559192715192051946466501810995444675066139189794332312146469772304144674545908217834524970675152543262384707940658156859112107971062880244290234946825634478197343526781640806373323247705298769303171566745978003644016198179226315868352506941125375458504593786177742252529335063787024434551931587436879670144105649247123672100466139646267865374199758394520407796794029120960747128417817924797746382480857412119591116669201909085360665683853982052620201152190518599510547848837021627680896406434921932346559527872941864386179663132002758849319393706234522289598929897562057735570779171636059173831716222043343064254968333060263081535200619174807480207195398329996279760896985472048538079349330564081685584827485204892809970958669849564034663931087747857637853769247301852858945370766348931412124257082351375727548756741224731081526541354994082070268557973333996255510570171649841575427239389599100838859284848720400421281969151897888249483634877881219422864421933274701755114809991744284744649220235922352234883734601816289576603798683624523785551522749391455056364874529577194487438734143172337224014431723956266721008873259317818512841714743903198333582764749572553138410139352913690071213103522107421622783918516220347555616457647343719532740132102868105927939001595426541486898323831785867876012361042325098713238865392112657515536401994357618136831469763226917528526956382076830216574095538685389623741786441383068808216891669171406553855622439312460281623799184141106211501886940082687472168752889583636385815352105924380345594748548897819435816372805085962757256894761014095090374018563230582438707774827375945305963388575368563687893531227972989054213648722991525759155445169109011332397084197310764659788367337192736893575250591869221058235785836541938552625162415609525283053745232600367756792273152475480279151490937920444724525956541943556845227330225122550612535326990735352837103697474554507745542167997953028761661884854001894198668644780760255657271544440919562923582601778369144082782177551246306907275017783897972907430780178613641711389742291741313781303748590709005174863240258333505136644913114723660808900511193162661636340180709541556342957473855494155760892491848639065018018368608371311707351117060299152061093992686404392374291843116417652917588097952790533341383464260125029721830073335684880499195045477044352750993971516679056547493119612460316847165822279129654965423493853058073460987699058523357558495333264076956626789765253605176938505584939142632878231494600114468003333905181291065617012834587362767224104709863817113338662655773335781143687149384843619612661462246670751567436011407538526387402201609699897208595272727577570225044516482999819694716498637339101737590553945012376265611048710248826111828470040098486103939875913130789480465205160638025904061745913261959933226841893194465413472095178800429973930324694994509188337317255333583704336601011846224348194440300945705504404262835448514447465138463143044184001213364731867990952263215696117887851921363658881550606468836392997914419660716567068787051033562166014273241381624449248333308289626488596583413812670015084952139035802842433725479202901708366396952799989436084447380191666969597437470307077303716431205413037708663638416031801585943529662209852984211104620655703895095461356405125452736571264045686731555935119599863034032782299338866577182246574234618832969670179711606130619542409900546865031868061327337425005284263921610631651896875332629054570988017776150140115824503132447426836135325856029770476978816481445917589846707993601403215560473988582977509025072957163557157767780986965811397036639929068890854231045744143351038911701491899113644551154561145572636704687672135301402133713020431781916030886338511761492864331600406832973913154842981938369434600903229282915167669856952808677126404791906801679001405763772475003392628418163369074654402085104598975629500356147524297979579858493600575971421943694255067466659472722749525240815423392848275979081058265461073902910269628289807353827964853674705080002977948271306156016915235437005019190903840107111141481993030279060452701923818172553047092717220348382002480076579187696924412863349927131316478275043586662712228966392404754897188219431275964354557096357610766757381095533239371015748416824976395320849950540197205181264170446220196539206287967175747023262558497858961488209423681073056259763970165247955141822293437754331800008106906296958288008896444960813374081469715079853584322505752613773791039444985182122996839357698226995305738402925144040706558234109498196508099302026984141290722114620099784642638138613408708331394217540794011956795748521741745136494928891655675239504508486740238114880970248480543396639915456424766691510942166851736673928567654652404536690760814877065020668435583133036638255909032804809555667191109413129754051194192805963454066402856115840394931999824160277583414171880054343349867478795945848928243621843755823427744345171789651172605366777482561504010133420304031182766598053741252807972603936127460223376755761784181095573089433081440766040102914579936088816195827276854046081794735028959651746564316606581855318758534643393616940486343999796514891945481392177246417459698385983750631584315243877581233577368077910279681405688064793540709338554038521977812518090785572112981206496629613018684905050280882475253804290726485044069945488862459645137578825521173406201879209446085741236036292057640059351263470397251115248905134086896499583797931581415604699224875005785691236473902038555243055757725908110076159949212298739599220822877167851374014054502126058520315975925639848729310958544155484584541098590279897125164764751392570135425973683449206984724140591374660580836357223523633683903347858470311441807813168633065709195427961139449607286481949369644076112771619243689724640722120370670672663966867128134387044897129302286330730402297155281952459350015307093989693559267285614565692694671946894556057614632472598558725078825482197655890085012822910849094622494840043528527598918503568162880576307741166329952424536754918449161999684854425296787611154771307990081650557427227062875550643890880389019888115399889737877718065788456422480025756526327131806169109055053737376921945709416712733946142602576420408295317623919372848217556244742008153902915916839175818827009437806890761986195176145936386348290146768839622735950706376308265164187811033986856869970418787303572816076732007835649052094106285779074101617184652603004916013728399488067563982638213067304099261175721009733840232163064199615691826348670740337909575935924097567393522752291309215946232795259738575064789593215476300426485757497187511761186205487779390959749729353957326348103000737291306706128782233450653448183247047370375336447132947910271388596384305798019258772321599388292402873684415178917934378651123808751654508926693528220298934716456669394610811508711594545396546455637539982706226352674710540712297409570673607131922287493142609656591744393906577119182633559550909844146279918510754928670891393234657822189560592004918438489225505403351300740995076634983363619395522787073228169062407119562906461127590574871339367361173728829243507441381854337424793662663096586608988534067442013650861418917521702766517809164137936221479300072101523904846445409766959898313749626295402081181044064986458428077118253206023562948204425268924291192628746526799960291947456283460994848003136024574578659514891245378380351058323625966030067565046174409887132527880270461307091681878242197533994974357550422273305425633469259347527691332423869621410760535600662821125944849183867251288382841254991502713443090328955256672762227867248081591284590192640196374908095563790163663697246075324146612949941537620242672864950388743451357183298429266122820134793413675509439892061856108604361849388684031339409662102765239413711709690099980416487411102160924036778285720107498140534146825843208612970808418365156121813579161157795487748354047104159162592895272690567637339108908254834030031563659950223367556675277738767625909857936865980071229244786041492613422731806240376166457885369103917633006979564666318122892335699574001242531179437348115444016740558360516814305803045148000674132701772833668312815188742042390833530244594738682271863819156102315917032630172059776130079138090316162370716456575904839601885040993952446065044600246271911384950763726470994278553262137427924603918726844144802770707065338793276223840351174631701823449769947300338017105820613100028509454052557875700511602186203226022454622364464058916701821098035996128628345038237345969357246162348547582053801996745107882636764093065023007302556836787791213921849452774267039299993054152758486436855034768717044532803560548489745108546838498134620867592848774241768890387813444266599784302232310076612163673135336702042260092099585162719972858915302017072009441317171148925485167496506874470638157300821730057008422694864554180675181612745163313077917607151952858746691771026251190064693189936012953628963775987908024298870950401858371249341527611415888279314300777812414498754756270400770002575207503598732367292645518151710123659040258330390257602891301913539477542379703340628257454711998668641230533804170659878388583105934807659187323310600249307600928620590397799463640416923332076052257239802063875872333258173271302750091135484451885433448614951978741776466362454454296941036584649831767899494339527315709979325380097377022356974550937375701212759839959251892392531068976943797830047664135763194054729220984269598058404479571231235598540114571263731262267271278468312077016578188250316711683802276452725985279089744535824878742849233489771342405801348874269725569164435863225742163051319233828417133949895016700414406283865304573284248670649330791752653773863006325878455078174481313864080546818110973084670541918178707239305271229127035439032447199408961151679995860538186858355535644863175586298099497859985572186833488448208313613506690570480218952137441542442156884685873001364671322579870176126631014729655146318343103234071915507295809009944845892793904273857009995224792853134573734357054943663478642149579618315425508491038459983743275433658845650793627037984556490148312534084561075297112369219002152442211568231736184822964772881893043826891265637802735278239878150929792495097293325888334140703774477261763969378494405612802518771972129606689822723787398876760701931534999268714632733282087046139970146335374328771578310149810023056997214478387672800286872691838803933919688315114885875175638833806681915398733371109621894537067549325026360491184934894759142476190228745574182812317391830709559342068582518476875381578010571158813436919671837204593199304319514973933657392007386814860041607986453265802322609788922978235942227186689012410897738479236753971970549343302808976612576506179131083533588501004988389227910201266410849986581749666329854699270293887467809305974909305670659626800344336797812147671365806058417602890707437106006862938045587719625020180246508695471640537150275108777176234484508845118179753148861958272278016254743141004629821574186512716242269640952921893204842624097701614200702637871629590510117368091534226328034987960588373874719905620732037810033998904417678716453549739587824213346177508490567485863872940537897191281374652263086225229318938495828639245796213213329422997865799730811550778078775813125553435124621260036600457849472635378393722108699140067606000993530527595892031931628450194533093998172062500632078700905220716483573158724333336402722561988861149038980309033482648469247741378521220269790095059104995753938099189084736501008427620054659765164649002974958684017616156832497451646062563235808352256312682362966372278454952074807958199240245582577804361600136751978792662610550468552300522628473782664424214379299821177789318692024876993267715210147626076288716893817639370486097727510945630865687902841524459916231753631804300526506128823786503889942867464987446349269885427574256790544288814157691038432312229082632635018868174312560180012670525272843906714177358602827450049001014725948407587654227858382289976221219535794167285255877799423577310691357881753143287028898086983576143158871569789680063692887648138453630667633665968448499176513889883464373402620788133073437453777811950300757166048260086881353959123813865694969433324575859442283121010008577315859771265501292420401776089071174396552556366067656549648957179085375239617322758674235928991336844071013456726649281535347567662698473720210911263169785424842379813798373220251839297734569831907522095875811991230119773076401634886314940918284628348884404867418241326659812028883087314913089935692378136820773981173804531961048657250380572386401309276760247853569052185535155440841195930059936527137628907990642620003850898424931575242256386469772126278122972411723546784675876574735958857871475875941988759243590409348593543336735194092125583579546109413386997196636182793103702687309163461224883124345360707371991017395437392263538730325094573387262726369439696130794992368222525064753173519878673954315156105326914908884932296017735197100671274811164369128145371259239728813634002463690936496891463248616731073628286850260523832106952139308816606923337194323568871975714965554416734236150818605733275695976793097256574653403682577413435892252901554770476266223308744575723052627986544912728565385583247860108820196473202951670549987061809071151538561403654392507374920283361436125706230228061859599066910539818170735691634892165810827814017922062982185755838331725851628777973399130745228556809138750225097124059838003721912241287343537782396390655832457116899486854879434959735726996569607809072807751665101445385964414988395925746987695597029368295523435713934159413742726464741995795833870553072130427240095161942931279650408707741084693411100348850535202272179730929872626022321265753082920092712607933093406233536142886614569541872567963487071849751122376599265694505244615440055757114552760644601227522189027937573834977129187140292893717162766608384635929691948950366363003423969085362383765879202082537489166111455585118557204304211385223219487521259032120098514726520158484244613264800097896588821142846069272530342665492592393401286230840642991326261168134204211310776671909409269138263984107306709993718678880627878998979590344103439886739761654584622500844111066548587564975435158889044433118666488956399870241835513111569771817223547639827167818796995346024959575373608176847435845331313336008673941788764882803229298359448003812194643891998671943960688210941536769754865376429279670642034725642414254060392423026990596862649955433120537311851998553415837488096261687435398886793858877748821296238987785743515549265090324505981619807981195281729676268328633808439278350569549937661777930757498196815173571961725980594699573982295280972837875872137972213849952490377317232013252665934208707728312816495638420142348198706683588797510342867771342710543970199803581143852351398272866612849219194837637597422005038681783502336971687421044971673362314881851279008851581497878161868995947178125326163202582080349054661810378614436455088732613867380999351119252658181375677560928273646484530230320728568883815962416286458307952918116590710449855460704602432229223876570230834475739181630505085895152801116778424424614456343176137497509650456881590879537484148350577670192650961247420859214842058762197735997956302537634104284401472308127992598115178172729952087478812760784143557029546048689691804793126694190784861163016621260374494959825923525371359074219576166423393011354637991897931570922713500640592309622796513865478287279889481367996196261330875937056940129330898297153126901374793010483412714133429052753943089493693127991738567923836932273071072606198588779754984585142558910753100779864275211964186469709263939695628122670347640115313368624374264795167797865910181245700423847351844680306992901972270330599748390937060502027040946077696335442441121202651218908942481391630618231050142012196598832125360667038091334650542686741881098977650549981701269395025559748442413346625279834191959797996709897846387131255052864561289751941911931152603504637656013714245355694609525972393677724908588772864809944976059522424714885343888253641872808936137394292987182891756941570883080984225958949688450210874061933383527246508547160289740264856095554733879104883935206685155778578158378838030883408812234112411498027267318465306936183068216550423992180990790736288830966309717357327056369252021704686063035110603908589275227517835892769853488297808884978712014864922801938992226421644526357069641001003658073307520916613408190197160434266870348099335390655969533508915316642249131789773262034668155244715965693687800474665130282473298233950891554984524434552815079093463569943981158943796467294221106314680652839945997512706068124117349140002859176986200839009089546056819989260281218368499078074045771252020449077223157794282659683687139824648398302000391257059918806670242025718555367858128298581949889471936711225795976067040912235964666170921591179012770391071789397202531267942161525971621746852230947789052904689013716261697603192710209690109955381004458905298729961809809820697377932782432549197170525052212219458201712321741147441449767462773117514890194708531720099595432573514333986361434386452208382008566992685430605430579559021798198743168117393610686318382687608839030376936079939101601395897060067731285684056551609502946502840443248854645456670909087103192088452690501558156653989101413830580062715025194482245953550491965723809982016048755830546795530547666728357464246700176935908418456984626219769876371467421398517076158422416541692781017985264432473689679085901258740614905039595544493231353483775451552643987041081921185612460645980709789801249794242810854974271687536799528289065964788190726623469389403289348104842918476047708783784660339662267720456739728968998225014172081347733300631265149633951185571470593529896417626817523976759761634461100879757255891482927402035253370290531404481982453275848466011992031801667231250330111830689673321910977600158678995096945040138602494852342234956613404642257516905265193871029879080938177817787011352660641924851085332558554564514701883877720089204375907379122266575823756670731990420409421579211425649253755155100890461812981760883706433383948249365069079489426382716573030251677938536698903455661615760118666233285084026078879886789414342784665353832028606050258138248665819056666901451325626139068480405177286530161564305199376461375054882432152558242401052882937345642975156385620555852298002254955781474797486256087976096524664712886481078509034265084383410215399106803683599762972458128539661145385138762416851453452663814227988306841589237684227024361095002741002017711218556468981477924986261954489974427972106807672099114977157186185980386028455615480704643832904679748740072216468430867292327796280926042386378157617087172650344101385758337397962391966008781957631478009452789120455213936460150856439011502080490847707023772823814118573028883822712992037424376715223266972654972618831856877564817569285971573377106168147041076669205635537254291387039319012107085006035353687681914764762773962986253817285815932398208167019337245506438398915216902651089522443264006153721071664453800611883953756306129772197942762341385924028012867695808620909013398931923922361763840550418554852325059944440529288675925450902388339006839363922371946862035802949182094454271440539296008981242631008902951829583480968856343867299516577830268230523279836686771148994775722980126356016380903216964526187992000896851168917408535995693735812772585904341179722503234767316984029533981758372803498532882129559031663230502086189770260048281544363431350213640471945766800846450006335597643677502328368991523610692873969197746479442735226863286571648415181167090756255534505815659291901993290685475887555124016520617758401855512347402496746321542352991995252526669124359777258483843625378926011647694012435800387949164109899938296385587098993637849785026177558778940853071955921584632618017627514312519519337549661034547811973611017109444255112360190209697861248973953468112154129624927345583152405511014331704326785486144477909371451725664925249225600997013943890728109838440590476313289040751224822689433962342912371091769589240329896935467716962718108722340817335894103356697348499813499191835161719267669383800526685694841859865326690294588234055593652297137018668007571077312252817537997928376664046093095962701892883492087008383534926995193031743477579375350210379363246753580082166145445428382170813877645042532193607754744114033107248203319220626847941033197587575609776244201407008853292482287192309338851727756488765651678702919234954117333418967912968094588600895514583595261920101355737960098071452427298948464069010759918341084490409073770980893903502977723952316397069453078780312302874065050659476604636755236529574526582419672331454920399574172229877971481081306684263207560139933783332861513537039840357821806757917089912138236340280155554596655588772534272851762477501380896975241983690424299064424188307244144642248563836266508309982771184957522744392075102938968704583835989781330214173026840807494942878099162981583144091369536191159416744941913304457291300633245874043593332831472786646890015845112287895962831861787520163211861477793103477849383991925187499429861669698898866712493129572004455904370246160712255350518601314929466151291133621171531426709468046153339826811616263849179575432371044738917475650574772280633797494725775400272942445535018210111124069253238071965002405902478590407860963407376486619452615287074053409464309303198190370705965207527687655793577970497174678173885617703114082107816633334237419530078209126847923748069331989588181737020163718008428031368571258978328345889725369439800537989679844807447641273125856468032451606022266315379560294837723690517467558264191025561712273945222045808488900107495212622810183480077437885750731516330457493784427764732748807007440110048631884203756101429671705071634952139738150136326198713013343023129518975077904202504827848606693409848118841936762873134722015959228550340472675112332206834377392962382854012444697269523383314768444017578960230930788570632110223885648195463234555195902666968949171821750678649360770289454775575073647984464711726990179168714252553340659206494303350313442806359541268129198245323444310660655459014144740847024985969101414918453660626422848510801838262688644911276038146738958054171121857784031184961041165801294449436190146644942807350222543896174719047328382833940174840785950864763971780352248296163975322123264334264531715018635623576117854858135290268064569368086628733051191248617116286650292057169459098376331773765547412550913583665953150008753181406478158159147017352816070887763970800616166015397676648174549308734728486998471118596512541933443540115063105404370660842888597898676408608569346739024648718879736860338820468184679220239656210786423894777584355313024027547270050372168190564145304869848491751902929346227829253806396802605285948316953833421337105454187418425634644921563101975817910178298101627168607840166389219703349508063464273511108601352776030846723848636389982243446182053289429264023573011395672868885160528403389587715847177832372833402776049788097669913193661733281242395257673991295771920102349746112144933794270828211285830628513752470044226380087546657200621525534740613003329471265003538979244972997002282677193637544581932340724875814723763496008917427247222463865155896750850165543386036234317700536810237863959163933032127593922547141219820748871463289605149117854634588473312689121997528084060605447023534802542497428408439439388921744693357356086960835833070983923603964319497665555003558825077998756853530844400417243042939883302869925967797589704317161542006489590021540236969885788115117006163475513759195305655041912933125849753859055727725748012014625042252469814628919492370742101687507232279572617084145510798793330127428255743390211259495450264627667843876759265999337743699850484513031748732602462868085778466635704502753936985242170569260767810200228068695448419381715480157078816668415576358637971442095910181901504218821228676458772017084289602876303349543299632621571403823433837948920752496029381865154532976785574392761680149276656516799887770308848683622411098807857515481497455912724215314540128071028370717265513647112864384776091202306569855981128990692105584296429554286454064768882566023083134471438042036132472788319698495276838145816085748967202888406711861454298248551847721962023881190545317037041469767669805660309257715370102720006891897967687629899599585071292853974043412529172299049599457262066102540980713369413056708404626045388840320972701104514102564318108536920685112283940275989413851861570633894299132578032653951608862704468329619649015045658216348573843791582956160498881938028262093502124774610683617198847219913883681747467994445061973143629221204528854543814091251984818611260650086048630141534905130983232887869489896236519442352372146415809869061742821092293606381785354913792097908418818391474746656237918868275192738406957608908862644750972913646690046032789008489690364750094122560379188589325129403819730755149439673147693057289073076873314091429653425253402192176606088503373338107641696902560111770443039419872364646705639211982742648841030134044820610469147593125115081682391162821077884790143681329455712751083101042271030539331483902960022907111224354266280101110735396378926823766642458982783430758988260547970794106346908996856655493061979902763019503622412329450370916118897057561542462554289179294772684974850146230387638941653488270220175900107747478262050253089016076106068977216866582551526697804400413028387237292183310759844547550817295069329388534221342509186137537434069260751294661263905535436447412360858479029662041882643554544317913573066832633823116065713726134911374258148257255145997699343835849077806124764022402836286934691671167663251458518060701103257913287028577409331402741874691169784262987838950971188809518265324694388042141608365550271970913204994159448035300208705651696038152721539371227427063455105575100722268292735566595147554965206308322187816427620429163532598135256778822446683887449010313029768132079773428852091365431446996384248518709839763411526363514207749642304488623778560542636597372803195509947171061253017421585138804927168387647778165408321526872921090745307211724899944291839972428152181602838209705133165478077601832357923893797792427066259379818933180617608283488114056048711969684758381474424946728567386504309819904810437284648364833867871770022541149193419040898501636148288888618965286519799170853346449725196273645627266367282196879276726448302254263827988049704772860620449967521166561429056230515752984955209075278795426239096170145663864868984771848042913444082619224662298751832904796292762097236157836301434592706734596321497693434726617134602299017747684490238239941250661463860917567343829787436796928009425536246782122280726300403554586957181476021145835211468806538066208620475519267259389560317679873832941595324961112668775743080769131759958892179222609211098140664438697925052362345627766074726057442020318714638826392933080090674394396232529844750930114489168963696245849825213856553082543450697012706091762372669817788962419881941925651620104694221297366795836254483181041932344844286938860480754893443657253599558983507540267393708374100065359839312842446459987427300484047343322732546347950737965327689031132649739488783084772430746262115883489347105710371584300882929190247356047851988234665264799939708348313866795820262347874130594542618039089760399498593636155435332645885494657871905615607246649475957762818229738846275003133293897190213211730017987848054628355329986549579811690138027939013969422256318537161037501870225554326629089870715818718810334841988631331727940433311074159502611673399690592726690279065082573876192812558718926959479342754628693004067824056827508112509301179249066719084214009823351853951201984732526840161007032646929397816010436416855188290539026233623299908937682692608380261448288473366899388647202044035407971710617270290429598409976530622116863622689404221608907933666885618036910683347189971808690635735284874641167763128733532973996346339921863330811707067875333687015277086984688815454849440476828193607271801302584092274678670111973517759352025129138012108350880163074646700543327249929030564439108713574584020152428545617698850122117434918348011899298026312683503104143942149564129035333377250896422919539653187965785428395255247148281944314768665796713864099089454030716472009172657372969379060167644793271155957859163885099109445727614365963356215928085004680818233877977042159686258093474650197774285222067606840491036515719494014916256701760250706529834620148315242585889822072348250051350902847575947345318019140046092565212494750685364446039591339347896483678294410434481593798490469526043069819968702805588484831321854924997049333070098170265168435509404831425128937694351408083737802506023791373527232303591476942244713971234216663610537823794824575895681382215717034163504903018473102873218005198486597500651011811236659525307420308088472104764745290916399549988465072941322365903544579533333138553473410703538224411314910628216637031005920408179982248253484695900654205789758252394763287944867073576014676619533414025978320501492575700882088641096728576283936439756314264335510929464128890958551292574005390025848078255557773216177385556656192810851247583509720387617323664179525931566434361744029631131352401135128158912518746411492510616188308748045033504641736397900311754091922818375276734046917584543066807776343994717308914471778701303466005071692534262605149743391245015422677694754909811611749210499391344563925904061243865926853345630686941321197352476501151918057685717775290398685339458513150327581305198224462726521673627452866569577461707161188052194697210457798497289101647776824427117189716366459553770477412186268631555860608225487930163538573142544029804040855904591530399219334742344038734324551319819484749100543153375553978919807747266924537018951531333248117998798262881036998505808853078768714541728371754394046811831749598894223624295332971816044004769182986595150989652303056468370095619668553064681247784180871062409238339071910955466871736548129770406752068040787114530224376741499708613510027022815656806227531513519692015089373803580028011148761245317835705011372282991051820768303132820702093114551089993306196176656150399122936297803498261057091741271881429849956123415052738728962249245095264003125514268958092745963352369543074376333341156874053885127150795561826319670783309746149369143359783785558054902251479199684874871672348911842983590142504922069073017085192595285088323227120738623242521761742655614413544058777424632333716025637766080157351914998418576284222793140516626744866204448429664001692251099189234545564016021206885032129462458950748630083009311234939762220597225801086318306781448504772268268138714917153290018552533094230941856406779102491515565320331606634072252107012047021294965894566474760281852974569942853419182875784970361371945635263922208979555033663667220424350944737646640200383716019033787322602645384664691507321045524460688537328133081872123848775234894770993782113773982666394787692184548970790620994546550951454318204258398575339126286011951531497897432420666196029108293061871079512274908811361800035393042986835866193996957084907306177558969326247447089155073560732713134421561599762009044901164333904972529962946487156859350360932660930718817371972309642644814904837841946352310938057005834862547139968282622275138524815102655717715470882226691422626624593192489962113500251169947664639764770333920416966920030479475797360168076042832083906439723430950545698560180752639264048512992911642674157144938917720193852339252355389597775559013681014740656072582380824863563096838833014844982254037157921205695692049628344501467853786032985171589470257920384124981882270449131567432595395645011062499106317388418083434298745553310612987180975727364679608412174648499724513460543731265118813968886983153830511479008220048192792869137981301757744669294850510088093072090500828066995782208626943761546502663586628508989813400927552135286307318878931773943037649188553696698999203599214047415135686197868804556710170667205941132606910650818182315606990278339301149666172856512885284458694053592829899142262334036181939427953670688801052710794738974524628744604461247427866498339851272132506904094483128098673445865459287158206594536595803795363245686172497920172913054424378879667639220160465158475812126801397088313857845057965875493770429067763801207015135694362045861408700337217776018737121171719291926377239590749894256617711640411119621730727585441467754910931268223652623778782704277545985180241449452180473652700404331014988161006296393072942182107868762627183915733439747581654625876582202373512693161187856674862634795057367526823244574950857789062534355655410683184881493982676369251429829973864289051026466226166352821376606781984508299428606474495084801407897629774486701898520298659568423788311134523856997843385699422508373788197712704761615041274329501308651171412748496606182480310248470733332175113163300813770770760379743370696309183676352360723581584083436369490518184962634043449469969815742262674419562201455523812467841383517288995218750818205033927850120657208361508163129845321153504627849704244320405380066483940378387041798159787531679140451852146223047989546145082384065673248296844508110795134590627209068059047149715174582702775357333171461662276697916475590727057001861163238356547509986816772234697350172032061349960456588778635201303008574216149605279059712158620592398512934863486766006686740600917204490068842799151624429017445041822660817709044957372275553924514834934133859715584868665866140232185670467437365563512513902537179606415520109266289335879447783933838336243095510502998356862563209909226956891374202034113693283756002201800594575769911743669434832507508503679546838182722866321044703406856208549174155975601923627223095374770449719951415028418923515706779926848617208166025709108748232399949041924264029427685248024203365306973142633030644410438232897814950119364953312222202220227831679321340269745279829023675157573996215935232717984195235924275549804732989957513784579268673960139633041570512960091250888605224752946489374214367233008960441500135657632931305461297346361714759566429569946452435630534492256365488178061846556073151866795339068039781593196731994823245049703147031714906451757533771019756352041997414663538460328735652312385098872650695992414713415310608404693450119732993905727130101766419978035874244205501149646750291240444628643439002534601194555009161309703313458870017642685872247036438061525378806128084172388955694369867945252940550871992014607067839309221629078416906531087479725307673895355468117410671176201725614884304927024583177692841192015518921729025463021126706986976389008950018910361499565092949971079851249061112816865944904127233204014110620785525057350062804051882607475782761696725557848437518470518063988868768494668396767261297424437243649759687244225275217275732354461370185513901636147457509866069629390180852073129197048902706740727385399292117328798932198317401853889518203648957918855392823174056149210658956598839917427466636164867504668168485748044306839442200200882996807805021380438475468152576916645649985792210959931384630972067100259388051360954429126805528254504956794002966559746456403309875743360699342037577671140934579137923684810070211531821576662306045451000218088283791537752069054116616938172807038518859111950937876761841330218655323660157088632478500326583384065223494237202237699971811972704958443626766741082470848357201567640515875102089799888521465722499822464709455655141177628023483688177009809040934607465305239250713111572259055697695408077449020149854254473261269376970340778464679092171211055563903905111673748658595095274992308535733434604427350104041310311429647888144418459754296330438260008087894040801778511796917506324477020951752926296229162177677651495439591189244037878837506496141344325116917658203326526139058712721727299240636725839637420813432413517138776449105606020336544232431315963407258541019241695480849829164141854849658414394982698128039329434720005890965629178995291511874595685641695372049907924518612157438570299144288595075039901963152071653077105225767523662346226601146152954018186362193951158330251806392323764546430866112448477459573372776876139242417861016492324762467515828404863584132094574020709253211336754248019063904719193057819737435822640193829530923777055608812798224365930275396269844969397090410782584689237187451973958326132088847808040898144182289983385473089699137396977670795265964281298239558647592792269560646284899705568152798869496423379451556368138090248149287121027188671421258594587004704061615002368529985041095073224527163236137912800025597879835025198646586305314897687548011016597701872429079664680900318243732872447060659002363396753676566451293266733568220884032422882657199169530962947259078851070840925356396215976645755139212639407574492334152321216462733778893384899291150409071409563430150987003500742345756567828707198405850304676440759267597761477803192588538296131627414303631497063773613617965279962957822522162509663172485986245184995459293105041113157138415658815656960205070063116117224160819185537290401148498983355374106263892361234475289007902660322304699589550915100263263297459084180125142884717913850602365959543851893299375697569339944540637447257270981407229449612488574686282935462577828291003515619079994127219071925816634900817534347386563939493963964785711191712567833820243173014089394432781837030786206595732168008981152708051237345724060935826677094323803946338591725085230968359269234963269261670861190151845873574203972635677411206029559295435033240786815893149102047916356782450946651736243123456335807550561123428717789258181274174411479215606016576733835556451851546749088843626737833490167914344275244480588807600228662678087956222013360995197881640161913932982001083691822343001575413478980736715190621193440291085986993893057348512490788370823732947680801917210344953542573756225071607309887533348220522152842821387166369980020431287371836239672215358313338636995076172326532094383887924295726174198888524010969194632101324381403286541304730856232901239351432989121063727064036169639827564048580137462418467196436536869991700860439408841294224243267704575467644721789900704780656058748776756548015315082312370609014806719492790643655501413504061414863988006529819301655137123324399727696674260313016533693754820995884153130927086267016073303508787042153707606444314605070333019778107700161228731838633303246670415114384279374010699900215054788308989367183218084962543477979994338745519497002413490068997414501508947602337735683024905560280956543507674599588067575506155009113087866787837543808358061942521508946583818948681911513173201716714817641247819616330887353628940692881385037308700891905646886850247584116657792796989038783834078484823369553140002841147137389055386683961795818093562053260377875145734768943729585983887249246665698726071417736935619575339562531281197548502586101200307047216653864813480309961013160407649458398155850426528664257778817830010959819253025748074534901792376540027117670707967433070111152165307172035734081866674289395797756648267779062504384898359390137593686917387362373767809193165115975570962486969675576886719430546530350033158919025065906047087245686034760453436965823665338714493074012134850462287114053693899074215963443472253477788242749399850524279114071260344239596190378035928279480843305431789433137102887331676334621630430333379517899491970414308966258870891741050283207901575476277477521458780035631126455180117026812398832579324534295921661782476168654248824936884126985507503270926982389194987835484209382349482735368562834061274082074877364750422521046754581206218521877981209192917706421811904390749010890737041723728391259541437046683391746613243327118320154844801407578527154023906090490604570041808534442763715983984913272934042448816865523200107735082799062986710200617310719232905873464029900704313985060516547678046929860884049196782110264071336104269060102170730477056917957035769657893095979593873044124307607647968487316111417304065399007970016208071718818628943472489583944699765064647280705026663636743058874437395457258543641017416803638374204355786592280334016307766675540067609379215472091021117790536906256004413272020974639819019807075411188674010294275841580186217097248811457761231017438042959640820332372976163508467405194891758969627259496408466639099065254423237674775847543337860608981601134262610219884869503639506709203265745902187623322186852215760459457750177512856661430702671610024356956368345234860801574138973113920475905902186601225958826272107487530680848768245654345859392177444635140499117841866828768039716760473547875747246172555003016240966508123981658957269830863050486162333870476798113582831510697101823190988877031625964890926195554125010322024278236691105679671859990771922626067175906888952779935798149286044293061611026331222408954262707614820306928627318958857563228978952833476688246912290577277884781773569554139216813156936355009979284625114166605124821460221024980959172888914048712170914237222765483458515816102277988879669362425458942029211970301176458470052323404782855813785404568492659488396565524437560107683415531396684389814187687083442293768993231264860403132886865617185447664710163856915215641353030088919401512231464411627303707027814410567823120235579823233252423505753873228546937397904457286306405054369954933992573000375913319198755152146724706481816896130033153698003323861671834874778281780237799017406796721537766020950276403372446865930910502005338807995920409336322927088868215233288420550696823957591996217739173684881262355870037755396559136813900398380719429038698608714190843375182528572667097520475035412955292754096565875856913544651197458419011396180588401374116857998809838234250647697103794380229502960727908396733628421235999164996772611304572812560377632761842952293970018568893141924602355133841035003823974346993699495256923758973516365863323674562256766791016321034478737481399236416965624150402060055357344229261745233730454890752358702300106377033414293391044376721227405801702073730162748317812765979562045169954198536118282675285898582532069390811344248379764902355350622632243728058285552675637227975105529565198153771227120432400665870312674851453339743400422288103570121824839775229238735657053236534097735590516449890832774601910307484622426455233825465838575080856791122479929789173838833186627629925833675788912854554432890477832093897618213118003552936471481874392036418001549740665566494668392609729514791762113270615636255123134409013978402515581873712512629666070114902132994129297458147942485753135356418441787247434327778213533121662516819236743806592069004106844384531317593474340951833404158759458854388744895143618130837873944028297418757548654548657554068105415180301224074385399718218699614262156010436930244482338353040253446301082077150392828722311820503436304871030885900790406215133605057237451511782688146534076155447865568980708659872785898382965301183387559053727038124524632509699106921530188955975158094171871179795140769114917616586841448454458223457838783349130643895126054471789875514692748087682514562073568554379572590426245492697842655188219173256418506877374181210297630964061561542039137573598709232655179334444257448505788035473563279292621991307388580315193516112234304673954307804730294736644803539593025573283483847883515514406679421096263772592358227542589592581504326931792013352033189392205517560668926096249354136193805651542966258640753125651336950801081624159723524680481372278562687897116305219027887927020680960036002193403534777931260426679390009816538402916322192569606547148272735506048911259423707495699356530036848423769258452780686327091267526739308248728189120035638430479734469959559005324842857336549339811179998623588025929654028767760321908429432071509285820712495062550756049981634818374166413752274830695627701748652888006505002989261817769373056701751934363314956891954725718006021063144402447819352471473191530828414122535610025313950206141551345418634610955753043470922214206921757640322530582655561970627981353563952065931749106073474310579588756316796579408895615357854139741351676649333839099934352897368522928426344445669595686202244874916332929558766115467872081628913336608089325858447218543877424258276815163050366841243828374039388091451978530894790345598076689495285678674251826071986750071492805873157323727617760030559814206748185231378436589684860407656704098264999917239851944965283645417604143044847488057321283249555150275974672479764110133311019511059533258244222348125516736543767692375479543003243925687882547535072848354092089259123149307665220815863662422236380362848010119865369640246057643089198467873480525814060960247002091160028036130580845115357965427245379583944848381791109023972724587654498333115967240403852712303409117963675666544670428063075332995285551994503334095573787049641913906806744162607711345488291808744413577694773705902062428004040773900390186725571075966446498650831551721624275792479686348853117859130721380371137073848103227732527729287219897394310718247261594819391253114101612808160390527874770162800128330956252375823697556248144729510508596259333713607401107834046822055800714246390777507481231430832600595444730998427987438925249093771685611711957320940456331960752490970903261027144900923665705955181509216469763877355729927902180075677289239744141086079670130136204802556460857364690525651652627255416473594571207464999763768344040975616507706054600315888399892196807567640433753443457082767042000218831605270407032591017323962494335623943370299048274376045894314615588282363792243089207020522463898767083432626166812070385993263064527168519263893484867151949818928150133343949311549498138017717873250645733020253088628653114946761622076596741401830742806328540629327570901324538738685388537166953923183476998734532410607822856954191289499496844058230583323759789781242855879385870687179928638099763877956437798796090828424589975496422987252014811980252864524806732647985144904315547928785099958397338673020318946313201942260797731119745003938005262540712609103146838111585625508690785904130249167019562736280793913149536190795377298685342383391061829256846704965537625397197360539348512809223303127663974309521564197170070545864663381998285455892063120212199569518797866736361801756519154914618634971015809361008738578115740061419899231996572683216123827610034952098362065708873666511961358150971608358444453704634471139745568620220153785842942258395921014585285090940393271348656953983912136654850615294490758651211408459829258169465569931297963591175789440259342929101476139767940588695810461802731679161898400697864264732375976152686442053220692269603155009898507307104566615610176227947755274012537279002732587684694198066125845642907093089706871124961887686424292387676516707788580295254022201118321480694148696861276676450211643838585156647067085461696007428943351883303194267728710967372239726564614184126569048524996966620609970518337524904428044443288146502523052078510208674607676383998322864867362985673762833611159541603149068965702547049625600700082169378748915374939736817049116127121308009530389806753679180210944166940821600397938164618609854988732368205872243573837045239122772172418355708286444698941362348937729494895742545034338337853399774914435773850750392948904124391177383430704753736665989233212283281119595600639655114161558338655085031159693745701590142104404872954754155962541997652557638601361777969957284136424137139340233745773379773088286589229868099866529978797125102797574825613391635167927485714133960603693003530169263807030273316267221315152007074070233631158936537582342023270059424189009655441778721292502694749515594316519515868329838204073815849244283106946407757533903382710677011167541720636658994180031247331330231224166481025829891631962636904803900727091707462772120102984378511918099899467523988934508024079591891540032362565273634156168147920755347524767889822222788928111526838492113027586371307494946680923970680120014574381040411513669816921128830194068955332555589063176256082388677885160981198931130966444756230637152834515635187538439602232255269020759235645254075178628774007127166971156771024095084045818413851513324814755251703338977417139354182539335765429793355639730655627836226494471290373145832212994578950926732977514880734585825083661933994425364858891283316732162783287105085737858226066724599875918619766481963503069396420670224556942005759821148369577241836534358731350722846629091503173552798231835447140118742956396704860928378986951666748765622754964091495199861643457206527184132529369792861903979827070501922505866779422574908693396226497613348197494464362282002567697006306635513326626595819283417144352559227165862381884031523127584852522215533740653652387863725477766502231840273352366342994346997013548535890390566419809278746708157561397774208204304208558124999816539382056316878451762028816061751736093348100324032713446907618566400614892309503102159286163505274679431911818583013922572547865955844167226783647154106306609125907102322748258314872128701489475501101126101966659079670778179554584376014492426545208316203713440953241511253570246159901943403639955105455174936025218704907139610412199813910940073505080642623058598326578122830693390709005968814735658471186526520672431015462335828353091722171882060236877461080845296613058151779577312663035282249588101482873948089524100001624962465609006796340095577495525271147987392516355849420816277291883039778738482013955804593414193078847016335496567089413536257839019016944425568438987624845570296965083692025877679611572190661035179556095145229514578235255145984668079997130571837766904838895594039769640592843657997975077840903411628015609107555316609707174476833297340427052814963993551236095657392878593256450001945661963787055813095162586108428190581223156848160975494232530869850263326539626362242849197354641511089503876628278031738970524447417636963922092461436852235226649203363423304846781883689593164739799762845801769204233964161751620255920593241775739624707939675944396852020902524034931862881006262470332983060722618439842813894886090931718018077932589203155699120355544542764444443857772935977137970399303699664107227891912752560365458507490469200371643170532118222963140262663348556044234615563673849719294958824278705881742717026803878115244396413414530648855831418058506593223688706003529703338870557269215545171718763985694675065020127227882748857055008480187557006186027379721770138427238567350634496995786237168136582722452634509398921312451658905941590179958231341169105554667743587859704793277431790843209297692482236858657933623763727297683560408272725136477810074394850895984728030600010194436547199905526950990640821905613505986648419244488514369094672937144293364399125018759510224152785122751625917731371816161107126069374981011484124408073353565306596536793151340454094954457944577071934075922969013781229018935960950249578581479219642992476979757445306510989070200222363778148098780794941842015455569536046861590062423711512641723197758322000281934188465870750272403227598559099023187557663229172063371293616974883453151037631987808934402262496109830714835902695584595351176468082759538064984186073569779983304439832388071116160137067540133872939867409600961697793461508556895234378360471682511819412251756132562582074716580529041359413263319935076582566736257337412277547362599411095298522826433879952078405447611652220529252816022834504060458407724251445233978225011221762512072245802951377797835726738767222298254252865556439797050267652639926320782009113613587321121327255387263162652720546768623624109082256773234429353273776736409934278878113815411267772788854706891678042091265439603203183506546195925882851039362653743083411339540458384346832840560841019796530225064685090456670514751781191599859065111863762826986020126861081423369653306220816985254410908903742373097398230742322191969939984470237484595236485837680622367024221171230405011799274832122215941838295423723013568574724339120689414140824186759023488833671913800043305692330266270330823460386446536972460275765784270454813214857614261398220822369205498588425103590020278868878914215475376417192121192717062364713903379320237846204444611013060749631628346433728826406699313108807627681411035516687482079716665828696694876671836053369576181350049525310530538276195329579041317393368098800932136545479350165831447768816774957374462383323089127660309923121988147484306212246523954317510124231190422591575821591267277355977818487787479585235734788340337767908208935118728796331413637893780470909042689489329344074186827461157440431531378300457240801935010727832053643864286441843602119592254852041893884930545167565362791793270797479210092268227056056992431258117797851799608367060129161255858336240384216144992700350959408684694215478894071458406449239256745987026024073729750910133474650035031041149775202332170589332858510029259130550097210100858219268066936523017911604166045531702679697390278783922223556844661948974291805016623360673237790539734156092905843273818028244591245886865023867815433069001535356315903871679761572401177715882957683493044054194630944259462507089939868419701892394265057990824969060237495807370820520194285115024698426766375870501415836927449567041402320704776184197722254610979643424524625839684704343617359574236019929041187301418420179570583010352366719844353960588449948206080184918696596993991884067727779431956929347228969266470140498754360675046696401394593997271372743328126376608417309870558926630151408685669861096692367792725930031849698575104380325642714065123431835397800125744598009695222185041971321308557481042317753832955320215109274851813782361746949259830275266520355975834282446812589338238517516295181910664591852271182325937657757095749442220161487669090081866844787814649504732423801337972141769128843959884197482224513560256323303855395492432970080576383324653134344338062648184096428975941182624550681648311462052177645554697698923296369143152750028375589126343012482896309537073438698541401748498951711793253314581031845229425455864241114898866106498547978427377245314461051666408946967334374713242182293509893751063360356470922226581416208715218506228600330013944482901243058203011575904005933109655283271269311180017333514538079405046996131170139221782848443171379718478583885270907189055086597250742034863196280556697691095364920673810226435590738353368014941997334258426186662918030219032011266895097190712081780212144303960632762531534639911437013685888792448574105933891969058784193380385041513016213766330087040801283192619945591720310943655824925449044266834812904366672282304438518628127522485214783637626270285217170317807273947528914454228411759662797613224019014365777568500791103811088063941570501538004623540578889487105542463070805474557594315902923022846115851175856796142799388746870432292162120784952819318019432355515480238700392520291474425672455653878480432632511936764001249352921153266545180228365373421665682711206476507499272336200533339988192530005012937584577267709722707119090344826541542336621470566380005113641342946360338988412605019311967182404871616323584100099141600204448774115907436730263517163046710113320161608002346252357321608006634079968911111831626720987208068576134571800873842512250239730170667033022257831759536661670116553446529777845704188252255007621638642720697892335990437981335026098249647477123218575846137733947445563053681130551055284122605922886935745656031729596866706316014945333125404454188313243611592785404234249809125286553144106579946694410132066542739220564518501486456876216519769347299729056640028495569881993718025385166001751923542502067347080818329676530826089584980655847106914359808378082678718498145498810042901063142870151662793050387791484578165145013323798981581829185759327584019553553292739847502826979079465516740040356800463551009598094720655314423547277644933552473828943959610589222182435012218193600475501460901169147638226197801395238124953302830264953929363872363581198251767684696544671689526431386071310651191857532280472570935201011595237189268225677801420467458326764139341360884245004238018837305991589217373654979417159358843532662801218870468016163511233152907855743625761824662489498064862051536249285279694633650450950835648567670328354597274340961529710379791326507212961009078293271626472933743724764460612024570495664886738529583733179959395440635051109405746190896863971395338279481945787182215088969605981125165031346938416173046107243752726716445016698634567105547883569728455077244013617886849126977526969651124795406770381332829180993705404937657388429797763072651743949374751010009143624265831947178054071119505098920787950109209072951015170728895968439702895109313457159040302662400058026666803943564751356876997860057485623814995481784365323555716993068692690954259229202289644046301838542499591920993622348467394204786146051385938666355747768628830360438208690005376666602430754222520440793296359354653585342406208353604044869418652074376332460482241284824088378618372487981688681211912646521889273444852565858549179306473614740014656434260105321129165752423455069399392861136495545663690160998883035796656368079678436578325056918182337937954707886512220292423629124940530665472849978827274584823026890233469319313831448527105383503009602086671999105374742850624158145538940214982058031772175717205658911772104231674395928941683462723449885097738462710370219717391815100350755043698620300128996030422888341799933766407489504540849286846277563463117459519466946590837716788775540474980625856754074925918557528368662579276858031367574185924844487285896796863465048247611481406547010612765000956932452675280211570814158357919645070706493044092529698908579750245875671408818120493913315076956753323108540491310743314048738664667601098741923254628765837139520164028385773423140429382333215598304570272181276701397031189949559858234342387418817340429667210663273111944460857540501391716947765218890931316181004536439944205368113073176147293934516756972758503264829733203488608913875903461828907341566526744604584647707061771175361441973525773576692825419802242752087500121877118558577992853820775272447159252616379126903029329157439303319831605064812442268336015162046005678113478844810580105960123667431906277868536226737257641780330354627742853690079288119158775756398350844861307818275866686244390788127926935623198136801264355810926779765803761627373708513681578999679341213173681254135928201373808011210828601904291257326741228745859458786682540292012712873411823356234518147471914062476296645928496181162116128311105807033801416772900652679781675074945971721493783807521374451491240709594604912081708107331894123199744862658815280866597688160194270163400585486969264535083665469715781418624527016773772105776958898391622491698104007338607652135049045059299056625962058850975942157787935227939082078439003874463330733598189192549977253597027164876533150255086323918628194583116592931392917604281266055976479495054079573201654908737541825042036268451679482994177088893070997972208170110278205730441752133030051141601571597416826298107570725450011794360450322380493265207423860230539046984898369626374054931087431321038744755907969772961927744186531308137768716343674868912983395915138282321562319454719502288770347786909576974022814416536471655113218592406051501003721896874877028862729599962856571282095352989596465989105665605587262066390691038877637988679796835596856477523795700301985805403406471637143778981143460073861929077814478203808172213269441215682025254969729416034439021131011980775956170173455391022350275003502533941212587051576915772613363593008455350521444032233392756426677193832575478763036104868464485797493058735626026637650835760460198781150055003325236925320895443757517157588571445369597320345202237240885714234959457984606752435381409516736139740313129689211953622805054172898992277169793836062682152040596026743787050727596692264756477605054734519251206157535908251398571853718459626480665526873540610963608698431114731785627278778802888427226003357924662768307947492393230366946929598860328049694116298789593131663312046654475955895253678305374112243949513602656374998028889583211705316864730677051288407253173665926671299148846038742522600959056618932024165229548092488385402171571136078703156338509102774961731861345010146921717967929082276006827119243019251639633682451371083831987344893414619878492525766376050159482742967722150546254725439788152670986850358417908447208104750517962466219732394745084868292848919563964702660187903814433168813312470221915299102960108851185091625743672110413501711713942511584749205839968114728535636149967485156659924683192319379594528785282575976769258432492147121082755562902083031477795262880118859387803173500467945899996756189373978838636098036043685190206905089784647423154028406463384063490800308842746795466279658922159557469952207624556275547765786076873044059086322405105463490012751464232329516170076248405431517628321041917549724044252749754986284467207530205767443057651175190984965023925379534606355671118529088804187450386463730460436114322440443838538933367347086790436631353185081652889655437972304367506005604479983274178749214292996826871304500245444483509007470439954675644183365980674853618534681603846022191549967525181977156589517910329815404989130809974579075723317848587307239680610717232905790949770096455993966539051345127049982265518698986134180034731337295251257904865119313022692765240553540957759900974049605561999244393070784740194579932808728926516781273511667750306087961734244129170927420714854559662425510709101549883295175434618670388577190764740843069728335526898808595303375188144074819761382128395182473657111844391430416597632918136820221842322459131672422144774903616176195003081191908597898855979595998496992504489404694148982489313724933567002744707186349796224493525871625164658186263684707244305813574981466339803925482813042777964907529399114239500452260416185144631341484238525891553145476179691274756277241583990429735922928558868626089348656899854604854211262786289965103457234529931864632839993462823788747013023625493058279015484783601604247888536230039204753473899503136463484387753499297847976311398655265198430556627871791463966284124616622662195008233576100239413603652177629980613242034834434608989496498191361513646002389663315114038184058394702094812254081361260726499150188117906678142593383803368848180595154884910110640169591992960111802622826656778445030058102058967240547000575016030419254355122798566781527832738205094259118415824851641332980049686046989653104599669339581734292447812288482297846833789475808066385405371973376381420972000140328374311904248107994793321805020058532104385006640518535800284735691755141356210478469614083356740593729050903236564897080658834453310949538148052603229309090242631974600242715326708087675812646858183776973452410464169932736940736595851444906002389533943022144886588383409501901749654344089224274533161678093947335195203619767923042023947376012228858250934121628453995093712257136449146136568527631809042889137398245443621769667798757955342847932062720867106445655674312673535351469912960893368729140426958638377893827525489509617621107503797882774497414413051236489179000267596816139708139060921692636261141289946772961854696869729189486992102910623804459946055860347479183642117991600900221901003673197621626143324539168925637915286090974150646888095789208557919601110432563587367172459128317039526355791542174956031101404970916504885577836540617509450361273821221259609527959196834190020736026422196346897534849055948739407410536840703510389804558392236207463912739021280768360037439804077610367029660540400306504975743943443700363329867496698045525369657412681472721557557018319163091726282616652810751609234992472610037529504954588107842771425930079530942462608753768467576746866216005743527153415317751952729011776611675888933348296195822582562337145375368406385331448475848217935123385886403675020905371331795048257980912004416355715704045580885611409047171783225236040158410516837043477977131149100425036725398699386926447969915204972517458087693056531096664703919027213066055732408627171544497351886995488356410958159937549140637185556413781720188735019865511665214819166376461893439379982227074494466209596250544531023905064923729774476028211720535174638528193722798636372346126458381724157670796507167621946944190067477294418206477146540216580260109880747245339984869447288074927774506104328241285194992581430468632814203172287326522715835367601185525588639373119728970166600861619053564182920562783710059718181622469702527568085429228555934082610217986571594251521192207640341076227426813757373065366937999143360196882012597301544260851819295982026731329911609204542177589450395673043893981299833945861303558295429704642872650673931623307387466788933933081005338881193239614641925326928805190693034802011538534334052746967463233275954737261500293854392398215781880261521893104356287615208814879148084786284283537343085481321587627688035685121186472700309905994162356764928668508448423264901940382505485835231696627313686146299071873320463833153431514832245880624317820226112760991473908220424893220615363270732704467370409441739050002287829219175690400482005926513845231973835705543313934094834143021371499494384047379651538497877583845325996178788268125560079166941279729706216511767859442284876251959299742624202393035529300773954267016403542098496698924924961781774760164056836290094985551200977540851267989937977798384186682062768567270245547309729249487476361890652461385657264494720551031026399649262462234349073647000329699922170640264476712015346530975918091025558563295232461478031891471624566901409940175078729747114271803661011338332806483487690463850655183719008543120310305634181804147817877987099689989540446293875713524228736163850459110941033775763283951553558520839199243182140326451622791588123812857674035591746003777982088926422466316733352721601213371625613694871610658463100679057456925543354881472798122452343588634366126455552454576456204933103210848983825467060768846264449230233660789204081070147981416562747651994443519186057952858836016904545441977944740599225316933970020792623544394946742474638450571306530690178160626532670383477405417752888989853053158946896773133274991320618443792538693643681623165407452450216926011910290604904706788754586191092793906385548756811376853095096182702697092988866251685287032012037247165660243812634810940370468364065241384765591921258628723763342418313823789048290714430145700176111826050469878039671968633674235371603496280497629786232084067342602237809233747885572509997596140720699872449996255283866759587528330050927121430014466859573897136462417777213694138376476785487978777749486387093674161151523571094928841228896879120821309063757715624556133277131856458495580060908329148263444696340516018998678165981293537676702284384475651557194130292948018156455164950023613745395238395763295494595185377717506838087919126048785880152889332996270825299132417567329760487080416986257548914525270963511364144285935733604381122643289208935642678942128708653514577877435122802047264627437081621164273220491705196899383909474113497244481273613751798416887110868071949791125481491746972111356480848921253583992099413015699334819915483637950369888221029178466000014377429676683970810254336403354449854909590466778340753215464896874263383771688157300575486035621044002388546393342238976966190825319993365145432172631858245177491534609202777350752548626971219007980086638061651054203762623373202745791580716288329694252128727725676404610287289423192616375009437866727063054903585728465149501427699306399007306751269547922649605290005827675408913108161916453222555725093662195625320136262229669049827358334560585697505495788935601290931946646738634938053596734159326624852924560717541055613032650503730146639101122587985787894963092494208815684029112772710536989130560794594973620682446195350897086688965608713217303946466491821129017702510087278410998124149610680875482508063273004283065135947091490988853728444618756655487486623149140449095991405279289133718117803993308302669233103136120838685281786393946719485684124140014288619336858461120010374298606002179019634781726588199361005671385018993892337493117047557564688079143155616537192662256888352051313575600533746020872639877333723078786871622389115259839569033722433725394109730833860546267789586824042109863984075437179035560248394065831893734435006693671629434626540914106803660651085013928270642020822757417467604364912899116005394105095958237472681908175525486317343156476525746147049545447109390775962619316047421038564944960197849539998206175186680112186869830712688968423471857363296839662545889358363934896209590305167941067878860264164784339375826226775383162289530421283740616770786564635581922259866312442176082555903613141301488068363310857358917550382499856356512441832110713768374777192804003480058598638607377334302217175639478697491324540287621483437940360277595943009749790461915762086194212652122875337880003007772679399266722074844092880006628299899370244364694487721991562908864260933460355509467502934366444523204986416090382526477112087118332861737793190690714747100591560339566533540566053368805545912249721525489434509568733379669239120813905601641493387604844121990252789248893310758563009562922309513170473629071478584442939071959972510068659093202300036155937226177962117137418243861543474062246592846965394874927351004700466911661414949387889355162119331536709073664467493060816310099590218810923948189153083055959952389215984160212375343818955432345380792034692747043571458539692235068704831807970447046135189556577692748576996481942279924329051335293895682839091063957306602697383699601293355371505804158995397541052997245424613432119723838749867828610317311318619486436024205856782580533084162022027760659955436175229872931640978908653032520386230390700199748291495660530758439440131722189706013465325924579796427380218078659492270311953551302963229158474669144929251679524037730130625296664567675796011017265801759482520203768369332343623080177191416340612419897969605793817287393066484794246963423194787756730931721143791844472911841291437814158930982450286347527476421252043307739811837616354006326216606312735268225249407340124343313175321341065255205729164156279018752857548187941062571566348438023740661799693467370778546337324705266420760290251273128300930031985899450458449257838276899136413810973664313525295448647447471880670913880590683482925183450983104055447804176063361936674167986504382189487050158972048679827322919854992856420520353268791465642049296119143796231700883786398884612917857676161478510286761833030089918921305129170986204199573024892672438002041716132014385646097690555710234408116831732628455185380109212216629463978703380129571009859093971427529593637552677157314726956252980755546429540097921053514938827338996012717048761386036130213280371151103549249065701340399184195970478845558432816233371460443950330672133463244239461567474499147911109091983427505406201955890217886769657636743275021623271156216703866804985807941653312099523082966157260391008018037995795079340672765897506473015592091542305462544354021142899482997691964759852004123637644654253495231802008365455840964670034296143831908674692577236780044459070411674494701223755449675557318060604707228505152823158382751838149511892231127824766578326127576895824189454505104023097913670269831759757390137646743519281164410264873942715023383815273119055308878878738501821524301445690481813001926520657835875079628579440118238110293444916519065182174880642351512134611825950947820284661896500144670427271675883203169882086304059229380018777717802134620944164838177933783905905127448522562630140336342777397872901526683813665629343042652918415471147910246435966970180748129682393353484188931439731808878626605554744614474546593902321662978281458586910508128291770610146780257303098885651138509157025965271068063012316590631396843942699184933686367374677507787332668628304169438378824732779308546062055990212190870960956205604773712533947152238300675206528742716897423980156800120656466060433862495312800506581946732961717442062145752561711289078615907598573469722800953551928386773528828127280621624720710347409793659031043159603867474491289317702271809610065222292094360674189259713752632794795112389143162254457765194748467651218539837778779531238858499386085967279455766119301064838788683283924708138014981296992282092533574013995229970124068336392650745756332875114084430838533029584599406026210854083100456912943589542980905676421671499968081590524427948076304697667126712302466682088793910339916562000288302928870880282178010558364250051454385384540450461230979898975399414353391804806076611193572591515715358709612931120413954929114954019362630052416954441692536057761739252761730770063074383190416185490934012891798756172061027909397238929681548520803433649292084305799645321028714928638055734365733035109937082495788699723521636728656088988059930699674701285643637974731004376247991345552200832631903883946568800607694498223244092668129721187035066916583489547815752095064051214037955331654623883448764714863080511111997747458916694311819386353492013404098429594349607596779833509391698482254745892047079049665640838031170618373219049385982722544051644736694129182775441937219602354132134027306985190300153616569963637931328590339301169532928259563690997176708123588530756126434424749142149983171145115265588183103169728500261963610345706704534335891990800107924282367175392587483125054470187627828833025281741783247482500251597206579054354696558788015436036257761415997850648508375608799592124223089612280422426608603157991064870561310739289347306728241770283898137887222205371460689567159902531303110319327886039874743824894363610634994118982087245040021710409231458805316774352284972202716786308927629166906659240437361938513663914321245996092910485023496437400361635789586846680358080400745692036047770556186949767977488489611892734866798732153158663590019679918751277577874849247975654193107509548247138387508212112745442496446236757588642432003331841688606532583575757974105872650147457643010037017410468708708289825966223743978308193077345787745234951972405736662999579638768036043857382607030626623100975537326867752621200722027002367521700019623163274995183420067971042876017008677696616542693154502441773344623597552525041956461243278135345240574842368101984977121005103414000504807724577588008082241260393104921881594577635948416677171313232407544381323626635280916823425496594612717369773518385929147056999868826223618173482156432330330943878110313736484218904560909167969445650610847367410328615969396908406751935946329097461948205397422350387920432541740035063251282740244828643395760837145641257581866686312895839328310225858241857265992943097180309392456488648716000591759674144391683128985838778565596396538188314921807460392317907146630544219661648886562717221812105264822500280141683285940884677234120132631411474734372412619868836024596539801264764236607367655618106669871674306489547203234710262874360588219184493151375432726398403974130364039987684835577553038233985449860177172130986011350110858842690805572042702399366705269032432955250520105021945785576336307147077146580419913567945802992554421853530109412837358971737065274155585735962981176514266789116643685821138069518649786731132051852012976566945986209168513490149842654136899359224924777245688142458983864723733084718691649845076350374288116620864477682690274378648630322000935787024641802588010424888764411745500977742919765520303682089340103670594535824758834938468339452453017584515873983456498956437225516552566004833455726988801057233561833836515897014668092320848921289776091012827348273143160365737929439489868004009392731499425276098232898161909729164697542627410572399987632715033602781281410226200973563138753348583079782600630307817204628206053147366283324623328631366600253367972844346220185477320737039750427775770480022348152114490845729790587080043265134058703011305046254542651640982868339009197330006239422054670415728161205432916647817799326664229177381225502426685220440904584089677272232880727307048884953303980917871305157935550911780937118975003540366721656427720571125392609728656269462666056316643095969908474596182456637107688500445863261323112142089854619231964667273185005609756093605099576544034946122550748344365271746601669764105572835898333858845861114239530223172904876259675436913255467127997597842507236949383709562443029110286429066793408209672690334627844127024610961370961289529862220877891450726492315067821172876942612846633097118017517725660473259192482587700479686630102413617407408966747139068869645726455800639797323896844734255724959517656929693653547437117033367659831143637228783898745699952790048948498221763425433315929496841461947982701300179418075585237612690612296069418727364361887780668176611263414157824601104717539953635272790037815444794663972482554929212329370125216753363841816525491022056542259477389198574130148490908364071990889182505507282077880268792790524530964251984429263809851130649323232884566635550958643158658736266438115755445544904444486653137354241631064845773811519744815225580277976392305866548754755337592739031396826427384231180468887007982954194864236921667542204330757771962628978796139189967753082661164089954914018144765487954187782280812204130149749809671174222661667210418065771087789792741524462129468944659380168308935018562607085629016473972798391683590082191630117015002171858349734339974091197351359705378539101327571223518152353872437954008407631888325794896812017989161411813998574241573067492829771215015128545915403543443019025811778442564302331289590316414976248197460774598719436696756547328407121964200607968844868708814327117715973116526405715728851882672807322352927873766051172397764081694496821920005453151172038481622196144404047636832278887177662625387265639149242269134576066071764890191457224443781007836616378472780595921915588357942075488671767785096111518474687536394818702792522165241814004358949162116859210067275733569397028680379653205558411214640131432213153342465512173248084734941464783684294743517048390192627542733180328519393175792383791249072247156036505228118079038921447605929440526419214440488388270930398035357981793678067295071607963577329629856922367888333223951008927515067497878326205590573447079473338201284448601947469939299957846364423710154251757984577596916121016787441821459100844328617022803841574647113530879658483736825946363771262329691184914827747961679450374398893266274668892640713450087176816766494969869243509042874161423630374044164153038830805109647450294244473483421159696177454412367587836199799114230265530976219490133077904525464483575609748180030413730735439415670170112671525566565053110461594493730061130696549446899966093865514869592370779828382872386813016701930079904311865401482042448790745567179431228383430838833411054897884638604045383928218587907792293469833251139898205846078577258514424606927369726570862728970882204231070189813714424642716890328950581147471437294501628845574071843846900536722987142528886913682143148615914325025974203057261409312476699378543168119849099189076339476732604517106425103340133819241298025238553703221519464314077298992799832106355719055437113279550247536294261566499894252172515490380108408037975320505942358091783125785835023760720372542973987878144262469727516278821684625868256330140084511328425261276764740302936780105106459207536456094857304793645207027788462700252486700097718314964850131142874642348751896769840659029507950959121442972562653710580757248316692077346590561149388549971521900311910429876755144884902717901967832018200815451440893678438203861440819861756454582698833777239436873621630136573409653522266750420223681113274032470615371421393340869796679273705540511681979770508857984081255914080069349497835393249580604590222439238132840384087659919791723453060196479499122612647493577208963717698168554547465746777765218600933002205083737170944194728577779154432798176565200300275051994205839988704640739142105263595818300670711799300928036291921300682517682910682396526104568802237745866419807341562662395874409106566722030414326169422926022329523955579344608480420052200588242758779446785759431822260759656594805336650861160596482842830055235264619228696043015126840146732333016072123909868606520752915777536159656474916511190523525403529101363334666216237689189742166141403551263061011141620687691766678679934743508938159120385678300612060859535461469652641069315796268644375879816764572302428057458204564504116374984088956617266528337179516676562725046263757192164558141587130908842922253925736427982833157416661847322262983812199129265659633481448371429697686385778089097714558634712744962816868504304552613498624036338405780195490527592506692466529231106677510498669448794718464471068495619054174086079343182683744790182284197701534674845668506838630023841426525649906287128318429145231593031226267691194393914413860752195134607210296482215220919167177435572413978518686193870711829883401466953233519611217140694481727283932487628364804366136040068909243714445103947920694731570052368467239771624853569696079166231937107740057868304042123592873715437254491172072792940397179952102741786698687653240810227820359668655140122690004298998583626618680482524464028066915408469061462636573618958113578968244881031214409525152315868760524651748161162424224687949249002351486377700765317236743339384312808793674422186798717251302222969695346616162922791605351529424078100221970829538010761781123516796400198964512998375018566651790744703813103996306202974047374691471566968912830454022278360304715113513551156501527786160777182085813848563463781972819804360510246585941386968329609496377890187589479034922098810853433254600678390940858760138388837692745252520367635300559742868897172304555409399510814833562061761303471588085515605497331632627069431961506805789265591377584065572990722890684002374387277926211929301199741401067480917300394968678672187424843336939313872649188837056861449285869168363315930266456606226974465346674868150278530286825633990393817543422554443090778104134985945674483876084585928360163544352941011493185854214906613211968831649944581797445109210677334199089577420603916833626771080962530339541447641372880648215621739358430682826107310382183074261845221378726874687587017449604489644686300032370279272731021558717306874709004780715919691051179346347800620319566570291931261316599140620494537008988872590323792296491266551482414757059114973888649298501547235570885926508963664816148428822922718503398757934295333002656829841687779169150072154961522143330860750737111386790477410632904509271816211580616534153970426495525193710804032112956698290438824234731071139908918870485522908045404855396721031012655859507267116530913513246169551315113864877806693908161767338879978033680618402468194557409178900921296124338758512217271229363118382440216960771514013602575016714074444000460844920937901886127555606230077936474575182590435853162857409609636265633028082301834607186573957791222049046559842010873769043650038348545668675999316061733706713547638396949750670423404959890255842822371306315408826002874047396157959729813439492099796609339897224729168627494900966555991929204273880728616337582116348204459197398734717940653771954058305246947320793453492979358019019619905925223835967810889795812414784368647910100957782660973319223485773039316351709321387510850934762397227145416920648084346335936828807353779879225917988506301730613452119842594529019769343146903637794400908538230228220212558605939604050785952933217496170855073509853753982896563009073386099995841962333257778299162115759645528306156120321746447253229301250282255010827701365928520160384798584590460718312531544192691687399058382812956983938424060377323206336619286058427191548099363221624111685406176608071884209412758987765752433487005787308568083045479280275286870521913196276771573055257379070479300787393533647129990447546087132473202626405318530593389410883345503193513924856501622207884516604658415984734357875521812980549744934915828783239690097883368563353192263332180631123746611249745494759026749073084734719406913394942004876662848850399949760258361415100722920378161235172379679986405176467887269578460405762742275916134647404140684718695911239645968387033943979687807668611375817318117031815090229614876763684596202631793915356616616672384835947352039569289163693378883935623216386476703744105319868708191922466843086402472103301435414122288471240331590532374563146369575894664906021377670388029964332515237442308191182938526814029959069451847454379318489336874739951660050511452003772637875749928340760862640146081517144719967154804005949198710385530929795871747309364071620658871184331399377801179681045238408383651425277182360886324557415701136208770909632003768885680517719845003074773738548815552001485566654860157650196699985192918672787934216959088942263009646261664927870445606211770624746137322027784186126701077996857163830427168914887143899090652013256157063981388623231928122510972008412401174516138160598671359260557009348370731593425214184045615988362786842966900424314134351999004837914410793278822342173815888005827426903968897074805902858653369978278636470962017544976119954305095729737382207981125566556865485655424360010391832936124359023583953336883266432190578469706803139342126126554694426627143158087480034138532653875748862977225776618920585589652137221551426568403590456881038280852088396192842976981798707523228962478329765883714983958616333152206470026833143041097922210531496201324005980720395340225578785712555332507593918146087388941269155827140820866826229840006339982642654466736609686226749503307319961067666399937686209774795092441325804459901647442656562171778035946586158765347754002071138471051368567767827764215955560407519646188962079306822552177680103693926195588690897763772547343922310426343663885687621191771159171086998060010781683122086219994346387230037416691998675958364226946060952474941179891907370531601306823221558432728015317199420737448567752357613194257520052665497200775141812615756771523532632263652790263832039214151694067226467595297802000286308076529598933195920655332467025825296212844646266475342452516152489471776997698784473324178760442350120244360264902220338358245529599840552869948302371555573230832274778211793552946337279831991414031844178850588444819498321327733512914254471990574508413849847314861045842411578762030522571658886819640398196444232956735991086351188676159357439429312020207711729377713584506518504203350803532997950958281503378711986204761174707175662107958194146216462321007884514898005240841271253691851565626460605682997507317153387060487056814878452059846426709906708026108100765399556617718686579409424367353786227288413524691726228478521871181287620496472493953109198868564081473999883128080994898723714299748907115421912342274328565414841088713238860713555386847306794035846358217986248788824208076806474487245983096514239938974212491033781610918567510240548390531287393375010546605535648700103718164073147702732038449063330311887377356053107623904372375899901007139339979559409136606559583795531918245744627226531806012138059708634088013845725372934670818692736268049318443550560822966830065928265993312859322372783725215158274816516930635113009403499381519074445918447161474394461415255204265085543030661850234387463676964370703544478907882884378614905057446736117561422060699688302191238137807628476583751378274194903461543880123883442471040816881708238310152932163816366064828826607673564427392481970820770246459786249838442719970135895373411140309339712295503700800804013793645908184936617123906219114125413658522814294595382690406156166513261917997986249570977942621677667965607646874089108518003170318317344687117567878899323671538582992974696570053580895118880333112559806747166755008295824586613223481559606767540493236017884083629563779338458488566289091621634576763638371407632948257849087791703351204274125825279893038225337774612680967357792572960717743574651415954623092679401953395923326694734033594314396608355492814323351502053993499401719288345984120690434607269122438348407636791498208188917323518356586336315062773736833782661922802220703695152102793543055999720783336089903087134448079268594755961566920719210411618503502608798156470276740852690455408846587090710430627329760475288179608117697582459834466838452356263483915039434450134582824413387897609094739427592868587365575349515682754023552734714689284373268517261325191223364708371405009484620668192621407742554497019568902134483929672107116682163591235328550292957089154034539727465692570855168684279635844416219227297803679993240317923691544199135376349639982970424247629886213512660711560293636473428596710015697470381046681290898236218328631569998897299459552785642428153226243500056636632305036429435471896221612783873975525301489856769452517399705169855705528364285853068842654115480336120812937469736062723718395063394151720138952692371450572657319762469032135240771460283486278414347750805678457394901451125221521765797060651922767858331592276418981566208792639471389411724387396385145504436165481398579660150704914998576536761824988326591086279526740087877837722504050185457306158612855066829730458133183028513568909449594509043961171287983449618787455885096624090924959700368780030411807635050798202593699795064433413282790661609101275469748183118156472493242047932952749544227062749338323249821499850454427985656445079111198275063543454947498965744603515538252178851763687283247860438375955899217781232161121296113546756544294508084892000962190197585902395332362673736286686272356486400310915068652259822664773143365914498720662747688798870139259151300296445089724188844925114157012825053818269046771671326157875796791281074726697404958000859812257072273803641158812477999048818924470370503007477747691651907104555924171046629096691097679942683645170740280466647451731691412022162581223469774775914914297602025590101372171192046187856574846905329853372020172572615891630823870954939985875248926139016565746086344035790029620061516456166948395661377871140416937842749430849380282539069509856516358611974140651760717955361909321833507584512227999127224147658499451775476754936225758539947262689834918520445710991770069867574317879398258535080140297944797390389545078094997136994521850324906091662489819078711865847127556651848866785010381773981168078994672280684727115759274584031250782139721035767810324063908157101855538524176826230615018547754175314007896947375298870564821028835308757122648438656326568031518927752291975504002050163036521865660277693606211625441597230131562730292120099385077787853313974974102817292593801648741799793629191960997583120795103878291534204333184315109279510148589686697168887368427509913282979624249091545048793604219510735080244650376122933559520590679835032700315668806991962702309835886581527748285738427286899325558911551806123928130989952946033996848693503190738632416006812360503479574423157889725617031711992394144849131577532596338863290083782355847471451140578353360360940008332461795566867582375158035819253434215819497381779766957317654820447920457448350751837068809343232752517860457231495529187685718546885030547225827731832921387737674247921711298383908423919912154816026786104412325718567886262896435659678986261848525962218344136810893563099250717047311618884623896921147864432373318075209872711795920048398925251731525233105383991382824999574387399910350861199508782583160495604205882355981099698181878944620950412477036465405470188159742210800738504832100470040898920176280249412509733217971259653170605811099381845955545718509666432329408504545368379514567818991634183436522538285587700914665493360863759735518277490451017346339494139586092839678408332259538687467523877369276204744334779497907310870985716695231974230172621284120115432918216459406007606220553139016331753480914746527585491046012205351513734054103499951981499500933946924636802913700961591503935629002524140542684568661591811250459646549152053401271798918046032568384766948843107836761952918807079631583911514970033186555793614199397701185320860154228218996796753721320886301791493524697227384368482172320310066636383607790527582465016744247553881183562388721250761878859338033679318617909455460705611288202304234223754931342641746977036331618744735191661263987717321769462550634872092767001686423626081446848900911490845440745608897033144438484168013087436631869435436553828119825160151714825210391998611831727821151601579347904059254560830244264437611832031956141422960071971738762228443480294225135765549801037880645274106600267142554576125900800472929390988297248937845528722729570543835419072507745080775253121914111570100574282383114009031376088556659251661234726756868373122049713680634562851527816788017428217798728330837698492025911402137373326454753112949227174807563961533555177378687900315035023962388582245260020173964842428784193750376358891355975147318455488333847901934551689773421764156675939842879775206166289838408625535139388751312192725095313186227836206528160652171249003809623358924266483475452384374220185423947220473944498095006074142485030746964138185256990257208940768073093669808234959559466232860093999230466861842470431253694422449904827830451016171591950783233888407997870892829009441825929028130950279650511535679890503961663115940765467068679078989056982229583065224179010399133426920474327741375650431711835560012063894616979558715787352041103109894960716281660008342367140269537020132463358043915502841537989399382969121475317793128335221869785905675765301348396581568295956519185109159572312837890439786333217724124438533211499253993342278179161191901306194263468868546304597127931180058206604601982668297126956180198924339434307672129948329287575344147611318721392877879558357747335642627642742733658974199666157490004613243780604902488628126386059427649955193818485858381045884810472939270009976145843572132538208029685556786143506001936915026214167243477042952294304850008970877630409813993033891859583346567832421540132637822882686144811382741837374239461290393652673245282090161380527996966317741748038848289126974100737623236229588630142159529828925330974818060474794214208898270651249148574169738998828321343463881087307846128604944787627998969839671285198482237499256655605985297538745770988053086717771135601707692555346147476070599318409088624262948657692624946592058169021529319566679817779392344705429969233607309566097140982199858670873860288935258930020087532589755330358436351064051647057299763715875311529890661823036425055941392063384858887091967728182326392579312510347181652522912685050241559366478361699163172025801216046885220370322451014982107450038068254207135968739402063994871597334450036479512728420394663254205799112575150312616218742143916633019182840311147774240061872251948563419923742272190028843225993392432310051183623403302340424603871966754992227388580324768226949723982431297532588631668592922935914874162422363587155881680271718806292766301560759819738298916235257270778296293878183001761028996206616744111840431973551713661255016973253235585212961171164989171844518360882093679442501995685960041622061230076180990155705911050580766398682954785699735898317742362077937214092578571285307609849369717168174784330400518604603468530745410697971681091434259763227080876181451939773855965463504509329134150671968576156702701102721530010672120065418331420458056416754232270392814378722612001611690786174696531551911550102063855612810869548401135966921399347364862320279193654218277968557448241157026602737996044812568417270620858102018866421487171113723371168571147000763032806789505049383758781515155381438705963476999256412558769406575320971685338048868831766422899082407951217689516888067550855743533181532414921502378375534032576487897208669244159589911411466641624719157526826003069134181069323545721144081255588426704384287925257492994128347831741595639870662741766949374831483433410659462804552285453284621546090316538759326905256825621634893113601801568367955891855761398102570276157567215712802378255231966335964075616922778935967925300049683488267550542765519927621465090052945942640154385069503374777979434147608498403017981106762515255365027040959010962589522913682828971749754820912115357486769016406613363237339251049931890253941541783200369177446589650494597116627867458363579706990042439022006876648626604374362379649821186855094737063750200926065105344187521887180890917912402262978970194304104696486410526817794108293637171014376950862771023327870436053698962235276164828550360707987638178924274183529398410174159842521707287506637472215560352043192940578151717977124235624049029499243884507136596448394027887899910826315906329368123334236145303185316849822861459685706172886746615480539455419267291872510922941779333475787916429829439979090344260307321902933222435378989424484906565360328065433247550635872015405137944384885028878926386940167577788359889785198612080053126977182685035771197791445608695914094414462759256068043451401565260591169293558855595439270626977972130870935563002256224556423934142807199493696308382377481306144718489377791430282075119449698076642334711185061958571355841192126149869196934713220773075635650250871026672949643836247875783554836604595443045785503535874849938381866791082668970148671158592183136040197996624194313758883764699672852650487703083373492189928943813567678919732744011189901860465049217544803218795512710862572564307377704194656475720582826671056556948741665456333910819526984675495904958449892795733879739034003585545350347904807498851959706604203065311128954641635030651985908480284662682104894712531727584414237006667865969591484678973906768564399389198321163304785925017375244470398415529035223891450222162254808034478781797050995733433574592459086583913838397679986339201900091614594619346302155226487024717325957472190540944644072660564425307712715855319433196286536324566972215246590462008779619987144257472300096771142781391475486134016686323613124674527000636296492114242191172693889716094178325212889100035667396256268506373974803900320258481844210466726251001459090367539395704701130943288289554739170101685958430184097025340779101930868635087868379002540587777553453308795037457966066417373276883409408853517905442262836823774606249951751296642392754485390996276696352666375441135935696329748722979497284937935794819489547424093085155339970137426240940758244851279547578410690407243930509931122794599591136038462889845456881207378113378777934892211033542317125011274479167559466957165351376809422379858024791561372735595112012937444187910291833770819879672102637625494280556679504829868914437238993370371719368984513003668474950747957954299887058420922547572802308742688322542486502463379490196200646272975508641602097966385278211978812077093562393796177711692267367283646720815529460019928953921849318117836340615515522761497304793510662108019044984238619878281322698866130612162073856358370359673896848804419348843367890528085816804372808150912378727134550319821445835537096420585519144204579899495205758846727747388252550129815167560899090252349160976221533479498733086718400995412386000652122070996723292356842784331797931097087497842271966940575564943771592090737388675311968015343689333931619605093329692066713766813067712270813642975538534928689992944841309037386563901784139658034371844790926123509366662082646329394127991847360898997198442352069366135147650254907885158163347406944650674779531013243139760868529477186098116096946962056154553082111715795156167583753207579484488388326012456012845670267496595969111507888085642071988371503941853936100803073154152052746321296304678227191984130043970997845475433635897296164657871828502923585299259821898329625359498704270948544401887905299685033546139754354958964114425001348855166472754824008132427755346087843321794164687228448503251566518231793822799160756138971118892061156180300527699397526795061690497007947750097793793938167443068967813173145220697260778980236012206199262307099523524707026411025580447252882765956841309567646165845112189270591541585737170530482548965628449915305279185000422344028955525298863191126223124363783269359244775967350341076418160994260681023967509313529031795111929151164309820233665243014963157071269442971601291535505390242279522518389569732366054913312889237027688464742823497868139219082415207565936358375002148318297051814872185539645683567392888332762979309429710927083046406192157207226641246662055845140588544112895314718885921146115538185912064241247481242197999223488728709985089691206821612484131169019074082241850945657645663168397112156974947148845724792328563077883573348008170825299528987354188720428483073106177884373336545703977879943586557304060443115782497622854332424465455563526667764481736772617993588903781488711832232629231923651393158614524464298371109279831258136659897239845314617844245594455460315240194387377354173059761561499762051638908357801434654083254630433212842113988720278647966666452302671959954503976969569949739882380107180799874916285681449522696977229704728354761667559663414638687766263419517655093150514456371671827387123364468147253815318085211943893019978704475164909467063842290995068714685443684240028478053490314161093370398910511050683083913805486406393266405338141182874656091569420795174704892490693761641312420091531674281627855737996208852975367899334026714638345690036472757680577600105758315273937314711878258109659085252325216127061282868413904603935620889723629682412339753813692073776009964055104145481670172702890984071397527596590523857026218070447189077729615716847159209331987673663217111157883118021950496289247450496078761624809934167880909316276120217931228017544109216706820259872908983637944097909487171752689522768170838449297749814857521034082700903075579633963580068442059551573992024942783830436005279290503905363034304794154424957968154861142624229102996994859703494864377209975821034893718487402603417787836107357917700669100373066942589086505714436833406110503195142994032005285049492057822456744254492628164120317186741581778603892251827310555842545710684392823697776735857329691167299810693612242518657032917089707345987229892356027939435571885899216486928484023295561694749508879929241097203266334795397032105936806138887251903144963721386511067695087675256091376147894814648310757544923373717644796116707548906127175161917709442991505329120055606642121433687196034872668694191019372730736715605434282346079981418540030855967856659242579427964369954979060106126382873309093984645990807146363103963163749237263966291433960684544186010595262831450821339286676876415757444818220588734485714007981391032413654233218584855715329742018002612352490260934340376646794480046495235065264707880195959233021690812205898446081383107881045875405743687876356689044383992141038770600763185748597056448767645874492809462314096457672130504974912963621310091254010208687486402861120034342206701473628727052378611694383837727483576984551467753285559323587256393841680036552891519906884147336524058463878134774111765447222411103481117157951951801329719462216744668236666991750834591159000535403863969553561098457178705295209490609891908850572862306385731449778538753008802529082879876250860121064438812407931106206221293978165814788299326188307115541744265347091221792249232336632550472035515022802240971290185988211635712843314712488365217323392529263373998449840308610640271633756244916988016187670708132074674523224173680913187238678472720914444737949477782223012472371796321368571677209159307192589983383056221020699832978097468019437760803102850422106550731423185104349429013334032247035620867214893010198791832413532930502296314150947761685651314301127233512851037761852617143810483196740931605344896347569526389832558915025159413838252675523455776491294689168898778556490721327299083711304780519361018186933808774041913543472630398845749286339160652998172011549156147292006220066349204026070654469422593977147875068586574014700150623430278974693793082724041519780526316248561336526769075845898363449977042929033969718232497867331701340476791505255306419767080456674120134600641872202409671443742672487295427529567552206989141525575900708887603188880903156705182383600693050180110357649500843701878621708768837896222828645787810952416445512514364934757798603070743172872818515410312055527753836084663661116892685901777667302547364506805809250093743632565538219126243934424421393530413553200091408456808593039493897443608998703884120385157651342203500307819417448277965467377036363828687719067939790385919595697405014992803508748719923531370694209608941870863306020808384952115107886137991016777440702126510640537663140436343067271237443586670059939310821334557694531585826431425147945731162952065999157325192239412027038872227003748579599909602591695524484049048905872751693449360885022334998150113817482999664875315545542934516150688687742494827127189471111441871318957312817160355831751247957611762852097950429747410233941855655836574520516632134466739707430230131351431391172112206810534807994808602765309471261207885494612688799389008304583106595038234410385452829642099947836945957228668036857065454878368987765096138333623627691186783316609261273599009446859599212253663287348499347476672133385248430542883696138120839812351276666204757785836656908652736368804583528890633272514645639773956129013238574119632788579256236054959008580296083606145931665001964439536845527475770458110937099490080628158053466437996870676918566328504545532433864155455179149780371182893727688370784718015947205146182323708597815214717845345826887700376651998953756498386606689453607877452341430854339541886146573868186775325806115609862308099720250174052901740220543591638385876611095995326400091227298847586177736076100157707527899897739956961595076257772982500988049122595088207611947612591349314505227905470603785353428397299332644449395561806618394682919741805563126677628387702830853153133423257747272098908053952889216898796024353885060179999992585898698031367654396767588755161611886228526336002441008928284656199451266800728218784474368502347287169067979928872930187274037647254891199437524686515688028394703947981903708682370076172408098583673917638332091215426416855308802884123190118500532836589839444513317866505763269610126928220506175874760660362592976142640060623906106292700401366232434927951014818599832447062253506376082470007718384372871447969590543559835878975263653994482297056540932661885249898422770982187539171882747063014503347446864483346711104308009368205442330074803983198671863229116070055021716462663239351137424196706050568312518783071550202170093014906819376901949050148949094853886325916148806302156843928925312256587891313631917204905335809193233987877951211094041964614415997479526544022892568559423079470860924108597241065470914501006429639970189996245998689032383689919974070361084044067795134306815173543847646534910471657047474307980726526212649868663647828623713994668662418794053998117490057275395124681280282051678793091022239744565734746955739362162249960422929968921014395336164655586249194492033979825815916792575278503866666338949247776142783011306882761081814414282276860878551029429117590020617833117485820595213248380575861200298141504218215940923896450093101445747388843537320013840213384773531186668812206208340662949555309255247136211216170201317596681931393121374750889165977640182054990245444162493746962723775619146551859854231454494069934385228211113687943417750939160735125563466629370230816991179507580748057738177297231960500182476982662311324522545378894575244598650958728657394421559648938317508838535407338559269653699689691531290797738133776816030553684186066513779240026483772425490927740354944645955990477222570369308246200945752830787507469909973635833065025171627498196907493210507614263576581151510092696805476933402650913210463071205312458195481756002262417260818162130505968323339881458353980933279385118085569341246138535864621978570680762482767017957415293004856725133976787838396600497097564445814903204720782059421966702902956859781311160158992499645754417724249952907937407204298843410762101123954956678789962871094253337871370997889048056818247293332434869055233568219280079750762575863103608409786568975575970976896298338021672916146468691572231860578103013399277592900840138824413511013232296404527364251708201216643278089921341852668126921504291436128363515945243720845784903798335229977030622211028469830630500195239284751795227009441044828816462092519181148955238329759490480105903187611661966982820438421489257450746939613725995990535020266785522843533120244548929009924420409253349672458141607611521347888615237129832909141106534722525682256150303385406525011987836855539046232189350548233067410664201196983569167105527158015159124504667789710008568071774708752959527386953121047561534260708929204461012046814141127182139565864320653815776738097878441434748085058152981319743954153566126184672457018143739575506010589398187091384614996206650145857118893398600055517992846503644496357087711736409031431632605369856014692190157437685116356362479307254388766165978782164522466772961120677211483633460188355609217337067525840654685741820564754145758073907772739329076536733916740688138094646889402791601292085384334168250315179273537751875021666325730496748680921047635515429669154968193241950732216458627598543525335661398273432966233321153340407894180161605210316172469520866926391584732801014254020270895514516114263489712394602748474403419447463213606239469219010392326694548602234101372221120572767966366600387187731089764558827201763656021074427799703801117412747240108186559220196667246454441379955014732774864305943204375979283545629819240335264856489039083495284764672166930429105282991524212387011350909289720996609994391549055241149184159787311861498836851851217984429188964451303499124401294427207901721531118055798598698703252065589542612098668749325694685564834412828606842273567051232080180423799558776740115699040170416488288378655983915499858444998421836495530291050829606401002625172978003562729016409002460683580249945949141512910153465520598629515079207171506677490121830596969141637988918244378585829845416551780876084513211123263205045563777212218950557215046558911585305403618022328063059954700447896821726212926637002706808924850395369631569622839069698831131842185363034452477328932502277343198087810136551582432608469760506276130316057746952641666340075067742506351218425385329535585206756385942892772114461730983971523290678083973324810571033306793224350947659414428009134736950046927369814080982501182099366994951798214332498756686124148863801080189736066133633138326965885343077571853163919374997219746903486833512334885146751604102345098783216085699270099941762411226514895059814922914839835146313502556551207279272251737967038920622946414639528907631488895490759426377316204726695357076215889285781073749985575162676181701480954461534197089610835969815980221508125080099498095361319854545282813764258889089572771094161141653930748800176764624630599056010614760790696902854026613182279446709775657786981916203174691705983519781188855904916104601457273212470993279544800158953410297542707957914964801573650094382476404357746113115459585067451163706723605084857418669144637280364612456081732397735204201711587264620389306901482605142400200282980974119726610840687275194246167829535978611620624161252166483959331491622422103650514220941448176715238167394476973574324645956158477838444247847698792083795305864052099534506011983963860322655499860255446983380033578628611549546315836537465015061210674260859016971311449698659381814348859302196808245518096076783256066356994798066954264617256868671428376403646464303750393678509587547850645592765295242473716637592308245279900665672386348502173257248208664525901908517125078015986609799238916893447815289691907354846459334580376708100389324390113189112133464042025711564737337175747457021651225634234182739005838998669685301752387565490491797953715728362917159678539049650648945865181580008313542322669045269329952756851749457684430681342664245478235062362048325197641961270197208119515132273964300901172256770601649037635135010699048025344474038159966837929718508201769248012294486453703473614472858815194520479445958231561693338622316277216855249588052175578397296716818186278108673928455362667376949001792209483407263689619018396472583216841555817862293469645992714845605392175655700676986940255696112082902958789996089096414482834133157714981163095486881436414020952938617240383491171648369816370652221003165973401859966328177571268392814576734021928304970950837298854108995519102708169484980108144505106813425484367947253159478373878869383332539206904360869371945050027849221556627572719652807703749666669701881693617855012202884109158266203326735840099166439657475661024114424720614171717776703763226268489928498459269362476817179796616310070296280017022663666066202777336943820290189949894480870837633141310013041831826372389350641773739584769166491034532944782663569086804343297869682406829374087023802190280816215324391511994603659996145094452057948939201520766496925901677101102868586612019012088090457432907723759093499383390694869813619143510602268846426797913864103398164919560736046243022398431941604895500524213739732894420611649553574249750498158124445531020253320512075580939934783998339870580867820861443562537942482994928713780771948854372223104570381588450090907114535670016386149599130322273048408681610860514140389211450744321772878679572803425238789966839157120273555970443796733395339935001600656506931244600419972632566550351350431273709526092582805655359567036846111439475644481558210489894374627295596571180324890851890537064811009722841335507848751113040994176717721926027311272915677058848970549438115931812713666335569245890664353411427479532205627584010161732272437142144308715220594137741181272564353257709877454283644327072867410954106526386864216268631470407609844622118456915489415430782478595552366837430320220393452768086665112100532970984187777390465674640943414662646776145111962393220229202182115253026710056854653098070384286097879536639350183492905448853868800284633662522777025661863071248212276292810984262248084257472841349428327598905843964774228267344417849194558506547188691147695036568912276375110358184092259958408492191903353183891058684919261064819708677461314187582452541857894393857122518361909905520532345143414039022626029595265560347025504712933497393067648900039367012830716828826574402560487247261020460368137450090533487457783161684029660985245683609877287252423922739990372829156104574512454989871736930808699897334751269052014922315662238850120003164167535337382287123192991311394289827009538977086963712698814037198240717044332088591080810016255538379831981014697849180126064248584698252129891656339550730835598982299537224642295496688829658731391799505687389399529334791064895103882303213163461307070767143823538339148084525520141722340630085876327823566147455888989102376512289238169048615331856088302652027925543439582759867178349417209616757545781486882889374725968479856260937276150896020938611061028975426380095133538780063372879760180838208897647158500967616024523455199794049519817618148905221249891536943075871564914671278685402139070920237854099547644377479766798599078570290144117117287883507029405362881684854258830396150403277966071577818447732905004825894272992298284272728798562776688362608133739487809070266901105245568954011220986947503127979415811306256750339510216666128670896619369523042780237272293631570693948761731455652833619369472710278429659569152636999842369822262556126121956016177968010224407039474992582628153859046353910804124004430899690993684823625621479670941654721519637004937549736147173722530419805784948906188206324656803105471731549319313021021531899023031063319318940153183995269947258791967046995181754723425955859392517487844920036971517058638503108895384343909932059691756618867891503337016640784913441734418083650800584422681491133742521891192673252369547624490335313495939818280938697253228614194008251694677706942299223336034859680287675910268858063096642671573754556397144744770566630973538878174872183689081120186591344773203650252871383974863271409938134251279390420222913336987538290303567853031771974355670794493815922630655652398762443661121740013239736602898363513461098698623950438411494641159244117368690452835441121081681278642478474736122573525143733685037575045641787176948662754750602768025639426067221466484068359520339824423776137161369654138186800032777724736992934016858468529471812251248388684742939933825062355879956864180835664371979856261998904502428319006719906771726505871756604602791236012731137904418686100243345182022933556234865409426729674566739617805605996080632775973466982218217147589005477975704460748237965952054109587735850674123774746992890918993883952620647009490058797478637520339518154524972075490396599149362339318798570485539098743819131854710475586722184502463068388650315885370537465846025671460184310983590050799081566177979666986181147022789403245062594099922608787210892976783099723896245219930936449910926528477213096710514054770415758180005191487892961466441920646569684073874171436265339322070512028529000142585649325425796662914256855448801806923819309950003508216216728044068433883931749906997033357298167599221271974117183669244341564961618011484804610975757719219947482619284227579159691451449073534949162466499350438440026182589174538899736001848731385227053604718113671350508816211871351196880195491439347998124605656774802233160362821074171241901000442622859800788855740226545133933065002645233923440925150801900523427808753571508743533805818137406951809322678163734454770098225348247378547225517467553253355681371945851152184462930578057569613520739501584970816580169948341128234375424991261320092592445493800649954345470644889362158926346093708802156183470936034853476796109756491284081516689140984563416049354850552797138420295666528585405982467883425419191773759515209839855909353027528937730156563807470232762280356350253124043479841558156816833333297065430838960785924281067892128929315652556615055584437875056486713588419611108609646674405340915858119924314921621324597335541319987328884101941223290648153594929247727613857493255085486570272247380763090203939826517584401681799448663976218852291563377564380458833195510774206844783302938467297304746168319721160159971820986573640714956078691947950670451922993154371135353465706111353552091997030997648089713068671921466467613159607377496902603535017552810656771345911012293412207088929395530692824252042075139439579969220469540721523976932891725447534669770730155951556863040055043049884030425510034862357887893700728561962350930305586184543383383200598893544976840619693231399208077949534788516290070119837550994039576271950590526684598166924762876133115689108979327054307921953585689929598480174394526042219691271333435417390761045079862903125302851241558168966792583242601508751165922839732506859678369631672990346046952596442853246056836773964155546366903163857107325009024027625517144734335611063885644836045895637393972407777696564596486577088056782425785244699355164884082371748223509278853600209394672515380593716634570570577848855268352579290951669324002933577152336014680013030897103068706511890075590755740346285147548805901238595837111504060467596153997663114973295434353603478270992767440048881988579003305284786978124758366275544659373651145532981368900883457776827388145843368741419104729300099978325532509464298347913441968602870041253737278648327249967725543755930543090780447540796656560797213476251406248590450416922707700056494147850818141636058477528328676408004705772049292431717985327717795743207403237019836255426610374122249420492540666038886123634541338438621903334664879299047877000600946229002564744128918973128030193348403253377511085462033714259389510179298036127715607931853538425557347043736322225588917893123422570592691323930760146809239868707338220205133862137110528971761238397289895728424895684146156220957997135188989987103067895132682078100208875299354260291650884211419382299248077920113947581272102485281989896807807653063427284424917011229082886504100981015972149802105270601764170209723709799455364786641118060260829472856329648430715771050344170356227566971912844185305357624404149846517986269109825946314720105250747704836778608891424726756174410523247069752471907352706212072995975130865730252859346748819217606715591699476921658505098992893837787002969524096306082537006032528674043558851761127382002031341576895464088106159258488283088732663787174859583990886375543729065368602140797048502967645015780153652344249291374255148218518145484448228353385187288521344790227736764049604750128466353844086713457150245458417603485562378161013937212445380365031899254280564969442148417838243364103055147727694614995085592411471061479964854114203690142372434765134536244971415494783265804479686005485574192805226323206219622865857759024551728658949590155380737434458756443490099016782415967810897742780621861006739934932930223306261902231018199464954158844051321488541516311448359454147980978784334270157789434733506128335155030918607274169937763113720508624534447183976498120408447600267554121573847305861192546285786873346642875572421111188005925913802652139686034477202171910854101470365780306511618547915560548946112058136964039885464537608826144494373384938113727498265417826063352037056787174585011535468665494077479462345464562214304877538335416758948192877707632142742177595370174106994333183027903885631061834448982314649797564403565045413804313858531258284730610241118138114418269732009255029624762304687596807129958926500184830829794991169245826971561520141873778148636247879280602756161569452361893014623023711686322032911845738174930439768220873823458250272435165534632717186903454921578428843575278838916533703048836642058683832503338502909734183771804167845197849567258381752387267919401927062603104318963491182328485217879813141444009635890634707288301067808431307892043888670453214800440188051304761515018570676547376450140490715372837492421572347550147259196386081185200608783451214006622657653559112304325823099214223873994670747647228807665840929285584517785809318284403708102992889965011046658468521667885787454757329995111104653437512231718916825700557114771422226419326923647096226422302192793716767515987437672241352486649725493564350851614317715358223106413614437861079069171750872983387368984906289450965523473539008306809885033632764950904451974717493158459083161935965802058193753286977873490920723246064243127186837569458288957361791347206403139368443600190133272049455826116510227549895378799177698533961375690123791787836585938637797131819835755548579353072999531700602823379699647958667633083353940495330494840540028449715664172960040274640579693475403197885269410708473519354247026660740577106893513034052613110629323509173197555433509822999013362151198607015234705419623986799079839147845254935647355308570967461746459442092894652320441491460744373420130760569720047349532461157937025469226606661045703164020101337253314765452901900779626922825565751799384184987759171217293848520338703057799034044969117043641577739310775442762821210697518183775156370193720954414341655005829815295221664552519389639720565385975926264968379608808284992633678122067182109661278016466034392071424488725581424231516755017544082010073134377137318100683719488780834338284384415152739971647496202517076292965364018833537683690421882183866737478474731657508443420573266310511653356430262469886422432756718433945686730340240676059187934834030067189433681361013689898045808275784527994124141557218706507501627819468759477410567667413368099233890129167100482275197503361114290849412631224540950573684760079815044460753729268400277878031721411954466711810999789843491357605424668989301082664645884703619919354700672934245179929471964392748989442023582956598298317935104016652440558128671238441192012205247758964464325465915155050052998707033961988039000406432422656635162767687435277611845305584912940024230364700150181463805978793726022650047202497558371483118904307293082425638539629441038797686319835795583088917596246812151624826332586361974152540362519856046829541208074275346482886215551358564244725647312665240310322602023048851441440290325453597784442043606671062138491594391090464447786690138263833734983312555727759575048617173858267733468631600103213686374804655991807006276299249091607096148437831004584484567761900705890843584051434856184021833823159161241040094581183460114538379983953060866195220848373902008469107904638751153979552828944938479869060984440950500536916715941814834550840295700210807461725721996210019593051856374170435840796769222729796380455170200640344819943124415756080185165263447142194608902273473094415781390993137277204544150372923104382031250651869201923255194063495771389219886645760044133126423681993961256940965457066638415730001323352239640715319333571324241248143719024416206284852082602385300634292588368730554455130056863142365014940877261344856245717911550044209776978848191950011458111804041015179208742295388968329419066672584767357151169117914695063546307319575108097486093028357017433702054556329134440248576563171749822865308463152449714078238781888234011269342410035894348466753267984038522326665346476562162575056653720849181232087509526350681993712605800986345580512359525820887329035469327697403605805038790194835313977730137070172708546215250122505329298426404615759030575243473977319009915597726917531502336664076625938842300957656512881662324810783656946620705228743992953464179404647008347927829455292542871337375001224384470016070464205460346691511440682743089755709860668046503142448422112669868433588211769709186601820194898699922370958239499189774212014575898197553977356193977735000083019760253401646075560469544886216905940362287760504242729420459085325083747225743050962945194600993458713409257263244572601980920395832413309634403594330950122516068166055498425307670656323380603875549676169431664582406338533505335376815019272442209607608233980855759366991116324600758055257315048501063255464751475785067629428605175525901467246925582241122956292254039294898776933675780571351696665129187427477523717171305279560757430907230225679472144703926818165402633105640421798812316986723067393219031192931390170397884144279026804274871093925881535013810260460776471044510671713367137315326379682844761160685031742291099052362276477966123494290500143999993480272422490421014342506857385420405921494219303006660636643009545340305155486446417005602841424716609366764959557053948895014003374424275985489162073156266209881691106850671904785883224507216768665374334272708535498462031207821845959771691295458144765333139483481857567484526740492382496485422608413079759742560019686317041173331630835664037825094222060957609531528749487314228631882563068540944687994319574942571212027158154849872760033123598532109157963326508853432651684693771333847426262809871127016915652998794306366772380341853126195887352491448078443475634465451000568175773818699508259367218402609013765541970353327804776984946077252790297262470502214801991045778785422474354982995357193727544674869332359088321762692522925054673728672262577873741362675947989295111726384505627271913726240830717003843960372257903426653569782466812873510123000611801128168678190922289015317938774136782353105571920528394191194303281366299901516589962491466702580796599858853909973916192234335040278429208563970480139047296460763689068341041438352831810740178771410074692233136651295768261536694648614946114337613261066819305721944544622408653180429008164190455108442988068359508936810455474906800586690318535834847353223185453712265905977125269545908352862404938917289584149925457667448033478695639471095283510305685132464699716727663187924839925234079255413300003182448950717489632668578317422718488300203295406475807003686321860605524168234458357996615781466965696468704621786295799212203158807904763098166236641009353880897200453512654580466654209727883589260623437351500370337841638135792292819769793941241627875169803419140178879617944621848332790523445817000254416649993244203707139540186508559780109703355344497408977456790105007952330037760140082640470219114730742605918135128882444377946579230499167903412646895419488931023005869174670844584039406667707904851888194993260260529162318774322527586904319938214302893181680757441851607796176377325079575481611638717511929789218116862144663922788314156423451747590400376903573592526855085002582999844032150317310555059731447154293865481008676608294989956714779823225745663224204709063714350321605617203019706674548172559332996160933262581167093950261702554766565862632683375002128922132893482841931682872128538232252072341065548991735424344278568527999485269568615551208523864070829936003734022976814574003866275944368940778459741872759044445006010572888429895120357225381361566836211320300132645286076330005267658759954895234676180171301867983131778663346234595578302129814365236213060728762563931414015610454121844676169842589887448230625470126272971863035852594523795240114510325671936333880082625059433891432419428363471180151524135943633227514353731811918504936211671500962367639281526066710158024026521159158559731105149222875207938774445407217866801261230280893315019404001671180973578492613393122873340610316816305789129121059379789278960213891861948811421972195835533055027559623023995198827776397181291228069495137884115466266016694281023786295200228071920839388690620691918358847442362051627068014230648489241565330541629171489595416262314485357352306717007693445361765101621274121781010608144454238937514317765235366980001524501568683970657568728035759185988868905571084303804457743539045307895704310211796954846771329995905425633213742209069327605309301482270941877430121761008222105613586542261602422675926167247748749788002799555331133252256162177039047991375903288126937680787461777873440818627997092779828557520247584642991206342387150728918454827079521818758888711802184981214505008593148652355523573974637447361990583588207502652595221471365831252809096125221422155846063826632023476744556005581703940346052389848985005298024769841687751532597413006094132779668590859148145632455987271876823538114185185845339359177477178405094327005879245881723902878134686752002899436249757751044301734399265040263660414403199482864965495695105396179082128212142083370082756715345774242155854282028738723288978163370151577490423322740485741274029874651415162872940196455595179489084892019014447175194362442099695649092709187353566971667760505644554935955431186426584770632027343410015504953973999539432008927732803283896117703854262993632582162741931688170196880164140593203595520847822399298001440308390665814424130724434401952539514305498116490859892884220666123204602858645493928654877290504538464372357311850354362470554302935248514756318985658200036872220307225009246257995503119688625198458978185876180896480090741491993587656893086882921963224264113075954112491896442131830273145030762464723502041405121001166165320778024541843380437283757335240842964024205071421363579284790825173016689543028064791606492709567795062738323041248073462184350298839280142459787495657661549364168331986948914591008284852224843176480430723694154552305842996145522253113631934417597080466184596316668336042151455241412049081396442760112248143247525052717680233099996833251652416963142544168781413586964778934946423326737105426171812339305963388844945158171935814090288862373491888222515703749016387915667729222549322774798163399028658852616943904396257024815120467439785486796180762607565652424722518951733240828771524756953536957419797876105588791786000293928219703646314200789783885239728443916257449255931910885360990967629245489552741376659117276546927918640274304156638617890431994513707831639188291348683752266893407119754068667311260498129719681732751848731407863743716363664335649202339728879513490711015144873394654827637423018117274370888306209910974109660526354866173552571144286448004515209605448888506018190727214934043763257655932198502339812063093046527512397610872050061688220826239514108284685558756011544163823401067370433398629885060743767075762763102708658859361646625583807594668438348201509601936951099240161700251817864970832899884184283324514783344655067120470208470470995864323392864240354532775542096667181150497090496591291825027647824646170338249562430720506863586346451738491793691615921531194653806563183759335077769782154333926114674446459597070647132072179466101127308783025715117541037570955047399703510855597091620188508279091120127490019358855948539486785447632501211476546852224699701493429877128179103323445449093909575034786112975994988265676966683613130179017960109329322990458942991664491764587317450234627575305914837270227609255992189129741578060572491611647564675540245474801191676844375559015495038701040192820232433689118491232601492720403884809251200730043127356708209932711006463700528789570466143379508765458841056171224822946970697239620754783836447702099786980491352014228729770224056007526552944124748771042443530692928684290168379801880232264616211774417838899393957548651130947242661047116609771866935404284085294113408420694909795837052313614049417868191466760451552960348966721679852893208498282881396583159828165856848479794552806104565002235610937044424616798383457081493603073571045125614345651294861832016034874908151477484146527975064107323162510186765197588709376969663435489598433570493354544172242347439348801475299752407330796856452300262732859514578472548000287238736519279399972608026140126414190413486881942233926747129451693150562629298128754087076555325294550008546612825943580312069868040369205553512812109179769130611883516370440045014957170947264209828077322512238585796736881277175509897852523250458594141365441429300956400947441331172457812516083457036692144682612918370926388286490035257548729299018302980690082101224397279648100333792817284362196491774668196851522537057632817550589527994677382760686613585620528203681446139866989803384029155165472333138962127287628959446791346900978002420840053397085541920900534322520384332556613101274890703877329049447320968335111847278092288861158908026335215402040382730123536335163389626614070270491294444285312726558995938199611026885169830630262442067279423733451967025007660122296650579798285579674613106408784724107781735184220528807849198122766216542452193926159047068652390490124811643933880514062661840031712064290369618298010214820926034584552789078603389427893358605327890737793585077390587060916026062746242923566146524795643394120411276594345727318889993190822697912992684330392426157733882815362615822630272069097965667321812411825702445653575314737516283735284467900844037889347563805004343612599736647890605345251701640553146193283033459459238078973859403061773985459099624758776388503437411029057453299971779108184775480428907327732880487204655865280251296900454233925842694543070814467035315808379063419527656616614408188488915821357445811465069309436190297043555749629268893120737916653353710661669515323603436735333167311115213983851990833004020440963315980073920350800629897164657861828964203038344111075260414220166634008930042963642272443691482831427874341559531222642633595950680532078334761341064832478720920085847760499719234261814799814840844969234506161031326880470309363685134128079192473880494112526424083366384054399824410188718923857116700002037538875281269800779116455352426720164387828927026487494882911685932400204883001906571326393303264751654004175715583220665123278645419197756389629368396792869169269735900306984608758214987506815452140013938459606908923460094381258820296099076295267251915345301588782746400220669072307180513993239198108386217022432263354173811802602655512325849650622388243291441781890037575988651585485925520891418430662699456274994051298957624715036828768871570448428648702878671559806560080208373991824309534203373822442247701164953223074161560339036572599956996987315319640266302673942134521628529518481981426343553219688967058874002676780474680453697534446963933689803089018007924004490683732378144564280283958023064211466623713118335635413276855887770143022889276191148558411281301347497387131698906098534228538027117488547539187967472848873446887580852727075097864602388095850291258261906661973172159885742063802992063328021257125588035813188901439748719047894858544470205726610150329661465022432726830187569438417745450995181596675563791778720157016985873798304963727158121274733574983109428493362642405257386483101221103163652460806415149591582872057616230290309265246013292419129332576772981884872641060856809393378952773122188747569228047705088942700210985636795545235572906901480162106588662932331269822417172616444241439423145884165065794875086871927027377002917992494074129247723887285501806712336382025823302114852307375630176421019693943506657080912652578152235661590420390319435998102286147187224275903522082829751089101240612682821039123381866647962513076252652584601007300054701556128838226339621364206875415712778334355620492136721058031022494474412449785575009822239397108157539883969641364819002534112392479749641040012952871615162100033434627683968212255684817778162774518276968422695683560850983045130955248928179310349160710612895608823545590222850996987509198453326640016145684160032480069056219297266511427990264876590080252734195744769866793112786342860581057590556017119585466081355009404341216002469030127555898469948223839014393077997570152815987439227134818397992108996304123887716102520253428681294667392606026993885642153959801775944010257537447769515473699345154363206520973068801253189202277425333099048851360672599267492137293528589398983322275730314890395323507452332264600607605288957329161326451552760652647129332261075136153174788443373082043800720168688053771244923936750950910309491029387997258005605274328026001078231899721276794198039697067197475661505429323647835201067649699512719079984343726054541222754157105457963925394647484104066485685817963728021989770015213378649003130513533307429721486023428519830246491878649221534752076311161360906788881361989113622046987339376739208594779577899656394517861297700720783649125362385876937326627496666191150809882123672695153739370075043106553620963643926660320067764483771473540568369109519895861935598009484669983481239453191874639125820635359805953672578681112210684496205311930952143695734177809087928963182255593755606186002937280873265413872281643654769258343382699947121387587447964705429409300384205934877985084896069881467546818075538798523372014344802742957659379913472157067314488203020097363293509082742717456258437811337687338094607929848529290626566390842640586270347832717547607013633543947802978945997108227473483724952769639934097966844475171531159393456984942952668469664420077142135394585810592789469334302916644056409414027780274387407154345052200281808615010278610971354099857708492488699013714337298521958572140997176094969925928777040202178057828845020234101842176754486854143236456980609463844060887727079730312572294230095883670651942393224152839094471504998088779582857281839466166506404171627826284949031990974927505043411564617440051646437193911125267791562846020252256917484970216955410192899041951523374080336418191365163894388586803295487902810566325993021384990624171450857027823021115071697999279169825563116430365112390516210348079468362497110197888091047741598499138851379787579866125762742502700077166074657856127154211183782449229718578198657761930628472523089045703544687893933894734681561587682706384514812825744947327476249408018845587103845125473077763429595789524834949391934710897438192233093005756489752126694204955886899438571413955975463404661149518861767224130860091836132636950084936551165147336928393911683276641106787388289988934575278656039658248504197257597951964392120891601246517067188348805768079824616372918190432736850462098060547349196417477994705155498367113512024893680038891715913664759179994058212887971417300961211565473573342137942497158786371358024570765175248876436092113482653823437231967714667565935445251870015409695903906382917031777898993301054434101978728282452211105515245928763684175323859055883983668043086813973558071731857151794072715110779026002857108735973660073702630807492213894727321372255469892521383642822090224320597954891862263938575020438532229451172612217959322032120610156237155698822029596158381075734585416976732221425914191198394554307086592102709675681133231637077365438379427990931911662981739189184413708342858357045278112317684539295516647392558614509582877259456145661617130168634385102237734207431097799272449506181855952851701948052322731827468926482314101504679256346134046750690718680575909804814155486771646184441791754851886568459893519880235090525761708826238320694168952456127741209887740700997026361438969329481661535119247228293347519052347153323057180849633075328658302160892004700635959679298935434129182499900820498072739894094864958811646884439469097926981245665796713869628386041442883517811106335121370647857261385428293448492970177386034722294287082121090823146059998089351093675214420696914846528080733710258517327054350848162655315532974052817384101964263919631645963444715960642849336548920817832357444588699275556705259334270888443931203534376588700569099660245751243559420189296625805388052083642891717887567140409437410977287021596146719839081223512954429817162793447816920816935126448085172549474953470674835118964507222110843317416178276316077403593472486088817041906053476194554554899035120441931290097120442814421444028361078293967745802347575046614130199511113456590374153433826127665219982492696688707668554871530352924549763152068878100173772500650680757811866322338538696857810611507905578871162577695423682687265827444865988723405449587487507135782537382404829081997785972732687829780154892006133412591129101955392192228411983594695619724418572912161929047189384372154051358837852674711730755503804529294798885866365797228402524895094029533864649173119111171015714371076583480235198540402223647264924493433730277710330202895084432503786387346524274315698619767664027709082551389621845640327685291773558680197356826307655459984717337751759042967856658461261183162714702993433421699864010855058672721915116593495898180184539539961150199288077136940079342688741958981616617472353863224460708819205329350776576174393580004164923951386697722985565134925078823169245573855826727468837169646744269167691734396895946602353054541362688306171183282704616681688957202238014721489377732465436867626653247324687129935714238916350929730403446393674307554440556502112393809220561084113829960239709345990625208037330043532321200436906773675985732185470204028420177077271381959982091482497625494717849400981033356298360874229174876447124784404111502477155809152940599078218538219125810806316621897990547874010055914033587746816129339182873475961739420914021289427174298012248623663380383005529033032675051740764844417939669213918363891287109623990316460461572709026650998403190070637170525975188556107072731164594367574194917508810005472605800127525458205359664259552357559793193184743332039807588594002050762016087497175767366787656337970751408192606698549234229462980097097919121693842992138672084836743894030558713289342464469086942501678920368489983544417214350343366077109413158508856023611729431132903311896279488375837271238509237010655931331799577006257903068981053488277991601205068892784272357769576432018723171582688651675296549969301308102737719294456675105150902701169934700086266231495210237687880196421768331785850315450137042138119230701357579981231392974852671645339958874215537297686683163668721283176520820762954043170105860873194845746114737546399593538664673839754039248117509967788093584341294487675892828527238083495361780017753133418116967856925436997815972284582481437100348254346977413975853956504981523317220812986892802525415036970922899174540800096037800274975175888244680253819822260291545205048292154374257447099062502302384743502675956510839379995489353524420492558796290233579781236157942557021614471650858452260723565496451230886315652993553393833513408812826463325097846257721141356767560553571831230791727660911680143939995547285052447576217220712589339804501795958577170468055014550867630627083811658770962135817155741460506634760410730524395472449419246320033756189783696425922580130949465910211440033213962222697223768230171725331194306429818947874681626878258912211261175005748654847431166049167921562553436623005665114190469783990316204586930211322965780290815165763476507745248913341606115586794246387116988946067572834839925604837330661008804837766708046614477261279724397116523113184835591258016749357079669775476487985678988428886482833989998338908188504090758010394857189298795762006412353730556226025776004464016247363803575749872878853242003396432552467270530445518783059847366090607826307483326189148355351962610130565553348703331148460670904955612477759199806014581933540515819063912443426051618393243357048665603860925678880103279628308935226317313348336838101344517111496037788135808304391204100077269359430464283869567063069787903238165199258481112184998718213520002608520779195412280327717338284785509227887821674123168185434150414055253080710836991761043157499130389429748140846401196415222599946712509103317306232981814295173021468283626502820274112258652419495824857492845411561787212438047150868736182425156196945145205661529112187688507363285405207461429982850794233825228050328583949263602878265030715950800867437416988566354132573546135850720486074858667079763736980087736016550866614894422462276251164937397104006869579014189700395252426472513453079835715751731976214175805249668836454078723680500715972374935785421117772376821463592369822660077674386526279609699375731703629392232727293181515256971696603872213616703729462134434523295593080072752058278387333877520508935259644151575868095344004281847310500818239737158721477372565327810646157702704521747063388148508784589031038246820352280391351833209276535060679877864596587982166328828902854365766356189257383406899062747078938760727145637753678458152525709293605525370798962696128144108563535246688318670301907118549393693568517975343554523121651328832047299289384346964623808923092844169256258609772117090633009683273089038184436375264355154615143336829700954830057756623551031394011068032171332347323022032236903356166066776760996446640342342486141734027274579692179553939637665647638478461182352700437829587007201580977298651616475372390312819954971412152679887705167273956165780910850198593258731898980199290239320902929778818602301446771678466269593824612239240597181624395992679402801992458384078759049348325544522423414936032935439178727122560537591253577737539164275176842162875556349086179040423159094748473051557433533825910611945002540297865779507806720978973742487750257442232946055649849351471082783588796798552766991003562234598732795156398956035671141450227704155424529293906877105577289515487615749150566313269126449770386496309516297864594457017340300561245817536827570229318219396936962886556674279594984390603217122146677674260918882400005852314354487349966462364918061888538836661816740046760101640405846096068282494836092182851007596051671637036776597829939097936405989129719072469847757164132853051158913677749162121374019456581291427995056559722295246353785330722858997401926464747006815710444798825876720179010894932507449691359588736070066492655684799439045441701128303668560238130687212790963076728803599847034930590628668642727621613765481271843906799256139705679305964498292624598929133377520467145525267780541445718671946754459591362363548703504520495489513551966864395834791781335012407575293665066554463909210928280080752524621530358764729961816412206310148486652648995644124048064830036531500007123621602964744651258113150851145289072100231782659599214625495530511711590618737063389333638420180297717755756020052624619156957865827613991745046909246321863938178225819452829136251167617901679156622040663430459039860386248010036730591274646172983421946825333930575603378713232688930334422694218386979772684525889927782475835881061575972610491087518816026760041879524630811374982494825013194261560650807699664776470032125890241342334869677665812098261307899984330486543375363019355120924972019621415870367000511257334965591121704753730305166329335601111213244550515694222940676050637407355886193208926223755108706159190315250168847273084770459345833249720986529919088554419577242018124396341453086316773392226981061297256126162224165717975425917684478025877585049192861878200934108154503825128602596879588892949584718783979849659603840263066592881777975003852022065267904026883708165518768963234275495122545093922611043914007374431856926492730459508470502165370419020615428547716963439161544995573547304224937603619039676491853378342092434229138844109979293427992541968471125321342505449369588036523296090976866925771075061993130963812496153426271528927626322163946481864706410729141381316686698532474711299129502005094341787007757577472282827747291637222396386830183501499497549996846746398094037694230007372736394104817369759816925049817861324733659551324825136643049258700526225596286440427403198662256354078428671869832964409487927042985784292396648498222410731215090276151034696201419721900348639208466255003017407041341936503663191850164217986565683805486568197507432787759202369238848055785554141371851345007441334688511722347788452355976609781146726996218132540531845035797445914632910437728941769249830108511331247985504177509982889346573843262491925795801656945626036003137465210907224439888256467385343712358423556986346395886005720500756220857143002064390669713297806354790932869088636461623992279627564359134658462287485547901708468475065487637192745252959714298918091550513318936492483065468300121488816836582247655693829635515586463330698109337611926033786952208395244733910473191064155569452776714041261188102541632428388162128039989247826052171532404652535011149392005499874978986204918180419461979424357902452755901361301558056657775881121157590807474987227240074685048397009101164698199513839566370456160212319618948753555046692736276563731870969448117611910466101443774121095396358051573120149803170724071716810997177991053245477245893709813451841625843661289041045210553783382808032002157629796826556473136196043533905465867758028597349604738515478462503524525322575638549212603496178137659749085633061576827763413259899099080231662971610440125129861107210429339576635943516653706570232981677299505429737980418817271205343269380057735994731678401637365729355138183704286932872220875079987287320210839017238785862628876509004247259185812261277645056377173219129765869239230517629191951691853239712683575621621054126222587011543715250872848457469400965270645233976977553083398266278912405286808268789234953737618278865096507896393531844590558066927331229231270947323657811579812403760887479972220527685303497894926440350656257210716557898468109340578692285197487912509382722390966350601893535834170133534320514332618991338747809921359918774061206228892964563300064112408771167587650825456609940790541765113149310077261775551512094521416141967541054249981015875501010030633679503966409457761475094877946648450591211027333386132179377725119194806756563940090320442386673572908060099626260820514081591015198466441849558230116036325737635155656113525925200181372439258183781685045491482877489925649639786204841001534182696134212321984578781059088583643656946525221748146245203668061496410760491126365790845053693027535374995942018736835586974584503883130864725828548927160104453973661815880363007203956867047651850490928485628503870537267288740195299103003339684740932531493367090795579372053232298704086739587673248439770141005639856919349111765170199049359395079747196287200862356354833457443267544211558820214252678336891857963524917594665044826009651938608499441173792556715773791333613230859554058615775969587233293854303285328814852080776621189612613705700168463432370588553093025641553394846576403908532317378596598404706977416860692259274546313411007763999823111758281350496964903685282869336948964360876270619473133396679439803077933577262525037163881552039529953207730598946161093863225021937815192863195382689737038675973985023749596376124169202522024566234674136206485675505212634560042886862688331689895968554907654936836953106158127930878951091810590251686138239126537933889143513845355231792252349803466002721667045277455693248787251265069658736653293433579746533521831899644171357177964051846069354224732785857657340924662531283148536914820412952621065031565279838230565139253064167088839186680417664303694342839867354925324965820406366040333069148663124102204721312962066779183564776755216505197154167256449268078792256443446313612054744146276661493556766907078165507250957680823761862463895488816238672786895233266431973617537850366422178608697313348399268868695190045897854048865883166037701489042714574473095704215847095713816822193577808476066682323499219433285749854833759437950009586079588294402475928812759636423018680877294140226194904262509654133816546746171456184069654415992727722318132160935215891813480856958856360827203502900078061095268884914956549027490073044080957523018590558142999049203112766871111677012464099937655139296317457782235628579380303663396913156496342642745312646338496174752086729707537840519952879001020313649068062281733157085473687153016422372416560082886702858396444357322090291824948968421001999654228122272209930051652657439395351016620484234562238255365949436675567501571209097999152037290179710357452335459564345921068680161875847335856900544276181570690804043764481275764372993429166208194035418695726433022822767744078862823307300458916181773609669456100937013002010257494519174068802072172033334437074813820031254712472534522993157559940265574527131606846265483137021377036745705320045245260723198989320731244211718625574721249791137347804316641393596187094627227509387087878282467700532895558490355870893596034082364704796270491020376625159444427652689372555536243792712989328312977985962964329246143154529508095478138764968134434075916086589488720141784181958313348012741629336726916036007428590823056614298149568931032645770600669646394978616110527087593330522817253938995275860927532427127349904329960542948421287718889045837557722715648648970956649321726420677576629692060509226487380853669393202537188200143115862078969828418264165190815244990220651891414266258473702471710399180991441716915906510128903753704084278635769977636030158051405548294544350758734702597433334440636789116073048276620190682783986896973703965401972423374560522353877965788653640669662876389196329884424777235077806055496104636091886138679146543907461053998711965179681047898333422183414897609420400246310665487770780967517164263955826107879141250551742232140074892245592082386244438627223236184378073494207626806617893788931641235965402960675235114857247381886643381942724026141085228925181896951211956223400353480925657067264643171430324154402149897924851631459407478714788359162695695982933881214448241516855555887317200489164133931145566800656908729234515691520948770606310923425464950688605954170454440323408068259981027139028055059630663990872051545502095191973062901081287724474503722322626212879694199087829965982844108982766454383578122992771374417234334531336838130369485038916862119377545448928207716772034767083563807847169983145352089145475991281079401820149188096442832948132577131173289436762588307946110384406362217204089041375047249888248394377464604328809244653897373980358580333982908404606870599500361912261851009341448573855752080800154195437378258317402951976107577622657281328048598927788949509152170152871222242750849478005605140234269254175822979266366608536338332736938330393438044210447272057064045567116593949155481495743399206928181720389189990467019416174146418735735671021285103033552749180926584875817038132794080491503253192968262924357374240179590821046618302766830795662844820570418756022239261610329702812642589987081895240928699253269096744200936479912896541082442280432151176250563286514415402418801684876812929356382751267320709199583414096742260578572900138984756697240540142714833528269567258948812120471912090662762024881036804126517698443574573120532291309459065783321106872603195068159070790535467842071032375000437467391158512088528434148556197297155934747305523032304218489558959435306079178499878925860361651061064680121098068673284868340475898398223618772595027948497069765968269291123820659585948452016793327635364265225123952745803379619102729168766119996465558962959638120102862349717472465786879538039842477265000758001710061185168261436641860965529659079785613817978383978538103831712503749273866027587607207405035761495083199808537399753863470760260233129934624121446193722316122698678997876719473535245372756929796942736364075366793289205524134730214880321136586938845304821966920080467505508150726313653909419946999422702429360263035547633487947595666615329039630236949927871750816699859673262541475869608005027133635189548763638975335388858260852292552434684468647219619723537194867505850129532395130932079081336713977452061015872177092409639767802503025620923941009590956830430555530881374854258735902653885485439044446183696921680460529480134678700888728533617973075183582140028241377821925934398707039493220974371881137182987715753158010813604671605460014193458938135482671118294263808676532803255579989660573744354825655941364569722400536199723569781544340043536178321909427286595791007288834965207734036963938812716623593212685931593020321120831553114403065902564562485588272440884840942244037936940609296393188036633619491099345863257007343910978154858239963402361229776940726417480000396833485398059101914233927529637852758765698729571963209080575825455293597972424720556006087946634204282194580886228663489965833404664184779610559852810519425796223116341450701251762472152941557101722708209596529772617760573055394227739069009569116918197374534498315103264555194347109388176793859893253379659762496474854924094246865170111803944738506899822037280552311391427969751866705687935913123566414378716858998890862425169712974656126664516363454133892735223539291245632826618752440811009790898229616877591131447575770909086417638782026924196659513472329215261886956317397017174649688499391665231452832787944943708384594998795459986795800748894328721928539129456661302961789074224601210044902644794135489899820547046430423550343048471069094757263523320359029950208653853256488125009323440591622255855536690536594915048967238198494850968565369484056347274167225907097251867074046694428868944702460451705767732706564489969513478163842819947775715966959368376719087151542839489440355054719378889066609321424819892088332043921336981568652912800009787465594343471503255061267001438657177065129633306674860267539960205769077978468747387170450049402556084067303235211709520022017698248892847193497707482719292064277101331692937061297121051475132454653954299096162120026049749231970789825080208210245222850685156860834382814384398837554444971354652997229620010100294723605517672158863154223921208361031312891553722582127678537369966535174031376130708227437725567521035045636669220824901353042800993295461956826601871490569737607702590560930696425696069989060940002397792795792960752013759179179908169474747135043809818228833715789974949351102601620267458154497036564087150798513711538624429333809461786932468266513054186385220129021553838142790118950744397183004221364914006696965483498908465339981062922028376186398582734173308733833019163788555446179261529758852878512597794778766659096886421182409986814485465773702881569643428113372841002603461467874365201220199198836683570727983480196126972312994460792434047770186407439473160021504052786548110699198592165731581285235980147458973768015330200352391706521651864961928842913536591896961830130773768141915831035600240694598261735651780254795193208625516120012257675089700253561083534473084574096906713185332968242324946425704127437665762183584085657801555531628593570078662170523533625348598104874189908657366722296480883292581909607239307917311572064256961810343186950966506942302739324150241915353746466717414564159471362766994314182249463490537454327149825097549357634115100024284631901501853299594871743349207190379638421078352239063848878710761534580858440370344357979549800011403691192505811031492945023023013490685920516881309210864813957024666669450554537562952663699802223283809722459407779000859030742158934133170581124906137268246475701872304411733267269331231597005172377316151380927011430073859756245846152694251951269699299003276995877516423177843276741174684073996822404908744967486280676564230277409544299893997021890323769499500462820390363239677632705784223933907682620278043351024100134295437509207436369146963120542721361166085424419153805658045569139073484915455552235815873152689316071289294983395295954099592256437335772778179928075225759526277100646998429857932133768578519198629537288337107680836107656120221304606021978672756495609790318065750966697139824885553813179228451693753328370366616215446525596774346837634710826932274618578142291841860501626031628794823115489574782335788094867654804880114713572335685644203003498223302818653486743426740841263350134523164981020019174460662807542968647658873056502864430497980783421118466299735909299098271386827930627730950573216533192310200534459905486200256830762952251033378797846704332719700066084998638622827879113905323196667620959385394388017395281166231620559318227742494817372231422335818294849842853579312141884230030612236131219668622547241747627437051061423504210816486353426869203217566306780152204989198061354510912542308042262866231605843007176320281814731070062415004493297325101671879937724814378503372348758692705695670605435551711296833944640002693656433288668969999987092973975396861822470630465862218506771754588371592896485297493310069931717640077258937217703112525293751812366634440623607850259565407602150508255287646001682936151461598594511699266267623488532435756537165913288441474871708321448802833150169973582262016892421914444602010684218856071651905007088863205097544112183157313318058534026338475531789462979816582243419382292222116164911329233841868091921312789131847554062293829408768570306454245677074208058285572624838324014754594533847481206426914513588137344726343646536345176007258182463654167581358518641057876606199812191954346478799430010775775630971677055551494684953308034337561195045449832995673831603699916700701869878966163299040055824979846352685915510286869726125849501313044273502768017200759010964411600853697657221187411965873173770153255597424860472862833746337237007238348137739863375923173905412527573874236853477983950651564001349621729185698773861355701522001095182164999203685599337772800069991484908281498107502497895546400502757067544127079021648840811018767617630061283116862397700090803389163508162807520787253166232796411077551147572132704367930533064829580053399838375246854232194481646115156267809442168036568170400914538556808648828240689870626425343151457743378391933635526007231345474089390513349059312684521559762763980602408500290058821731051752890297882803472956706639209493355152634436404282187221984658229792080020442569167748668154212441893009021133255020079060366906705395342379150206455913067737921937766943399219263947648599959621089253999009739166887627464645951905903339448001787955864316097562171097869748651001564429374335589526368225286166541485344876089684751670870318036705317679805476755843456162461422944447835465914013944696655014205230596084868391929577994929444284444426616377111761018132706351295165939114465127850415364399854107062027705863459868208439835493354486324259544879573647313219070668528386987685896031996057804746664998837665929998612889300966499085180363036464842934526875800932291210403823189141328406152899639127865649590453430283684095094037775576318022685531810583949802492190387420821978920646092300042428219144167133273841658586864557976948526900929768187154318580159231940993152829897042141475160759639997005445655909551041416733407669981192659895146690346743684196372225796565079505458119258281036027084415612060799555892770082642293044965521003918942787572633290167965674109511065640576946431052754643569796510574999782661971689421743535351953652946565684106687893506499649417287979002323662451243349581400495362830396653940242296137105529360507949190853415566290744956581406105474398824588608102310981288193532182189699644964170791147264808518375291706422050681733817819675767105937336943576326540556638846835095108434239531770629441372449758023597950374790958018281877576618960104411577315827152783580939610306866018185299813202633715189151779306896889968249131041824582959356387629376016762576234416935926536697168947140410302291602011983342565411056042207006721717441994797652497440813105103417551032141696742590124141903978847010487579473108540277057460154696871557561847806968117007005690245982100673603230455134797038683564337930696592880747990074506266752039153604083731479929744175779693392042586125967855473406510290908564976978848469462811519528733839704255663654597827699126025437584127459185332650122530744766258167530821770049405099245817875928967180491325222153377011357920337430323273430746086872282897532740636456764248662361744095166509472928394006932646916089735787407592674583256015153711202921795272825170924012185747138645234087283731214742460548051609649055686943531478764092500352725695138676188937623132817033447619460664388740815074925157475302911583500217421555197583734602165793041744517435175758528689566659257204891989800975030649661744485878434915637618621126987752584682234842912282674932707927228265618154110634542542962221342197835524176488966977389140368592503616262385435219724284324953627746389054152333188857474195611313493956998117825075858811864116620518762778471815968610155456405519542445579182431315837360951703907020560619012456865571771365154346172374315579968961899878584230809770083455400998465341156970389601258424742291546796895637560274184062380782013155201096700707179357654239362932669900447288787320644080426132918693893910463490706301609588417477386986004175123372287661568082227928233487738832567930995932461867478319074026042560730352311886166921188833615057356819802085913107073485448715040597385536285437526100908986789012357160150674087934703467357967342557074193546855983854749263509479445579841508082758581876998135771196815806343624561064400607686422657274416168472123415202349653094485620439983824921215959141607379445733047571869526686106015584297520472862236414191930569764721799257969629457858772481406933957922164157603597033734455390265849194599075242709226907079732857131859125056760076561530070407751311275565318525902403233060521552129883268344353286063108582080273605395284373583131869731218010397067404789825498655934417668687022703737538877415822286427096477059338166424256269385772517910325635298256996508406051658735071345407596346970584517059175005576602742787029566603927296869384366458035752484491997434066275514383291973926155642642745729112184073813496870857958474937899596975126413472069652040694215081126729159292501859136424616507753643897113751398720448028258903153356924291301445323516607807899908339481426759448978860960950059998800457629785159047265698585047509533907125222810138909782600436678564016317787740047371400416363823677620764856963187002598637962572453635047034552807862339074982436678309539542048445142726418069125615692545580398009908616534465855804218922392167424629623161025223864545184865326176476715106262974479053851013225324997253703881700057685845102850922406463451302676367070421502449256847229245112662946934750826089860648747378907122442916935911167161748281607931739336608560257621566440167559060400283803735727562639896181265858586746142348031479187513817601657649859056644134533538388430033725499975941151592080183401891051188928624536803282423687354384398010410663373989051001649452794411265602392170596405118085490429339455997128275349561739880055060400652255828417478842173375792223092563774528200873177312958046579697062225717204058334880308751876900494994997213368120043257359404048224066222653289115289654079567681178735357324930430358191625678816877483914790815069442572117174940482912862672566239870861807374754426167736241920084309909754627301753770404895243255922656481729426676439723774699278586988849564895771542146950756096829668612768451147034405274301327457223626380837001120783265636191280392574125473603913348184844283337039550610304066719088917342047886021255026361458885003094661568264210345415801413622776707660032952056485534539848323607689625277874542402504287107786453273766651962560968244914711358469831846525104780032236544074968685033218128169258235579995071246963492688632285061521684066366536977641854404200645992033177110955372856262015811064977269843611781095645154390894857022257560770193500600964747559005216049223209498624899422579573978652189046000249476378022814608593094404549590948436550049210458580616551590396550002830575688622497525417641899671695313103280398995599537024705297111351522647614414407685358620944565028004563106244592157334582145220506107151119221343137713260102841176642202332434521463501510964409110379929074499778315303493267123006362697077952879712363351076083407887430070316994410725339810343476979083376071499344930196669889474182183706664333445065287176279262699911442650229301154649323521205813459636126114550681750754789897905702141524532879436635517065306960487134697552719152161121223823116577520266247354820036763995317200056944188282492170563929821838958545431098858196833592530431259427414032793392618588964527635635145075250157690995726698628839938554830207827936773344032807502808359300490684368868476862541680919309245084603396213834442005650213462269655252597909468213861650269841521218738650908701173604026588529283162826109570986873975628822774914079552620664840768774157620759170338666928045588527040686892546896268585369438860994849775456848099602364175275426275680423544260047963299435402633744788971014767649029653663806679491113480497818859377570052343728126452038950641957528387352326057908860549408172654563092027175955757510102014065299916177467036809434663778452709445688800912072725034993742286171457678073205827113281051704482016139309240447112987523285487086501396196330637573972249612326227133248274524903762812264889490722157255471509452846682337283183665583012527526303602112640463881747122466025279238112968295720341611790389434721164781248310683891460697952600951920865266966186536521011436778793044909167844569339638208761309672712391575693060876186045903708100811976059288777849382929927599689539511564622595694617354150300469120084075129385373829678874818217754766391862541881569664718549279003307010162771717103458788138528053636390515643157452104155220432112756980631010807618870433191026552756273846080665275506854941747854468878611217076462597781545758572802635636720466519166488417722946525225675884952771121354444000600378143710484862919665477026643656269640635814680651604246309792993422795699162590466062955360219576777272019444123549657700868348513936325494169156786278264397153448888506805080962061530258910405118740499409160476179975714163863094385717287424091125403519382108311266491194464889682103606543634804763303277521369163154839199426933281767024635324650635905086905215927339237912774647869159191277641850820639841916566603275546416913998948164993101415115185266698605599365651264764996677035960787842940372538938349800943602373946882593582730566933535406880725459190114583517165781210049343776757509295466297939855609629987273790958751304906854267184448447133543813651764213287101272133860371403584309209164760730989324284681666105772869208674388141889154003048313685180705956431130773007019825516867331859989214022578679190800429055196545222881304814549808641834472248237526110376144015445491103924368487983029726768228873152927594119732052182732383855744298674344454069475974838810242762196698595527063818669279918305423191446846416281788685049640040276673383140366069802544186990987452386066204235485997394156578897054902542064871019950571816563262144161407705829803641716548856199234927003738956987216266861870783058040897772546424434327412588205576876586509121474557306820109565547101607742118275824690637078135193783548027306142541534889519291213711159939645862572711960553741702316885921878633709677287407511849075647734677201963439858889430222651091849166644607396884960508036965130743075061718708648410395681722569587583525784045087287507144763345791229537277500157249640343996589675496071009911326276980314757729535571237334226526435546279381137016127564808321059207568647798895809263842926455504000375814451529472972086859863337206594808030868737442557569504082319057693198523190347819201388651090186626244695305965606620001779990291289850729888021793298425906727725758506399192453932642782784142290683981805284724518179408352685842394252871487670549223879438915838353433677418335159877812691958741569407337077776405860910725834509412098835449533389961305906582696204383429941041339143056107152088907442685484715437682562746414173271139878985748034585813614716340273131154609838116699022735190910545160222125982900766438169132806191882667750417185224679397290191961393528827719651075933833242744962628579683554233467591526574753139003225881454062149183667662472828096145449815688403023883061172105158951219161036818693536988775124679491436710487201205702358466326504868307176425180402147155660178340305045174300056400191297610124477856385414912091516006042359320126428996370397852161279166595644075127236013753856934686062037533194059230739088844816938654642986062139931891965065550502726491995828953683001899247533314680759973951480523913220163681649719930228406269087155262011517680133776365872247072716754168857012943400974194142350974130201811016703734762910412481078647140646256259437213902476320581800537487719129065584741534137642232367198361092325198123558295090139310238712926933541338058570112595488108773540416642083227287807547406922417233260933393856594884186947441965980080374478924953657636460313413502444172231668631578831611895776361590897349042980284221612449981127330312650628932293687521364060949720155740202566590157194045146202174342684994206985306183089418512555626128908226474098387050475413432016697988376541599644308627019000985879380365862617230742298730768277793010439175468454278805282046381537499597918852030135107662048511891239842757995321867322291343432604598522552365837485589032654247858435894445002902967017086956266111463658227811150258060853130541543993700056451948003384327564575036412351558156250225663695246692643885285160224398422181227622013792381344661321097086704326867379520146474405055575472412014198560971673529387925911479833730350236893931594468237114445828718061483807269777335661875246901977944709948675553389070952344053026122538827448381476634542836905529665128261872036589539473711974136657418491593584710330265076023877716774761280169543889241204997112557669660216560270363759903615274890057175926742311314018329093061419574711990992927995492850165104575234742078521573082338349109977802818943051324155545869325213817295272831016978079322498399702123834868606705877241028665090747272012001045780723646346465766109487287755963703634074447590705626732733608263328094793665239424014435266515070007964947314190092111160589904694705957300428264612684583406372624030095822193181669469471716391547039700585510029599638808447070254451903051215280276671973805354005702657979730529914631944402633934332584264069013511950530214277837042585471661347548696750404496469249081017729330643399238303790887931917749349369912662557577087308092752402033315988105119251115335602303710617449003545205911862146410971072531609420547308867918915540524654960099296657683469132424616502253627233313101623521861749105456766395955236087273230557167643610751687524762931154636454631220619044866641899936438437137323802638385297032027884076269285053346705034581158700583964895299664741667428594192485078134805276716239129496254784014128191739521314510771878064812765431087317007038579067211331067100106444851973949937886262066910599070615068236420044116562861921816877962058939882799977042133291737730742995843782201213466157744400273304720311711401395092578285466933230559080050182144805601941196209565233060772172588433141302365209029584273840380243509325563266384014792098753233680214358029971928986603674949245911943256357733280524611090649179451993328459589931262000611351050410281974666122970599328292557617283119565550378703609955555707782997519386238402873144390839867949645414813327843822965959978647146328527077994478352096939476852242444507370177989200498829801454277095554884021588857228334863602185616922530328623051099156929405784392464996359475110973470893381421279076692719749879599765874616181005699289635010265399397094226073361059155654689420993037521336749627598815078534340851960472694462345054136071493980964169552418322078551358766535708751828755729808788790196857817194529962780821774302717113118516012161070298562260597042339539342691343049767507171199555329218303110718924705108555153452949892906570122088197402207073465348333902387132162192489072774766991158237282061587661792544464665614512459628652737812562684438897895539632598274095895938730022821082750816225464246739438514886306692181583527749065897253586304218858398230879887345191111603007435348864783481885921762897870499784563820376050077442494523702044192462198264628375400936750094433261502117406383778935720288001973511879758922183801457504539516206415594603807314153286967696475446382853044653379778177727987770058726861811649229385811090313546916222088786857030795603148638342954600455951066913447604972605809489168987879560525799393067431331967942815958577672181638003790561985145548726136137680183422186849343113658736552946148599802903958333447490838429486429759838227835546655163720278720215940173750913812167077486276539066219153816617582071798845437844083857134904062684904589213951690239830110544138510589244738995853423939255145587461241283155978000573404616631186064997205761703923673762472114067419795710396311876260499141344634842530993307057822578709570742107377278302071748598099035536024693392157121328306925696094346971205540961445721519746951002913192780364158846610158377263466477315484108070558237405591028163066620525261634055738320228371757249573761521225120406211814016446332308797676694474676104461751033635734034540434249762705200861303770630765026221533842853687600299715129553059287258650334209928456222806149398577245496610510611857092613072113480543390980039006019274820617456724300873510213893303954098532054286374729036893517875570115556595550023923495778113061148916137749749087733707822006747837516287836031776546023838344562120826188457456148623880892251897505948317377693634195678764093766580686639557551173943712842390913269105273721287027977239485982538410619851587562372473140749052233430167962957584160716761950917703503296882281408249875897269609856033390971148022600554471994990254831291895621743275727448638737708028679054244069058549678549106007715867846051511987742541931450649459859615677190267368591324027771521503017503516403969034015584471186795736315637603247920651242963372821375602858839034774675988143244406981670060023000106138510651685115749554020113722318002053013233693638749669869024792962377779037219945379717422795607710243784748416918811339993057296791761265492820278806377544090146963271825492570283823146914017778114163711180596135959506856531933438228539671556592191566864123847718670811707497672587951776672705989523949806296614961105312862538649540841755886676135831117371792330256261285433875227307128892537453530932039505653566919039300216999552124370129815371767537980474206081193905393202126643773015533724638314992988744941274609565173435754394329801749565098262455612848415717975902063163280792318235640976292407526860581150067951205190161785234050340334416604053355186175817666812326775155809491579219561066772601012493627065040532446059895420325058763052307112613555955466500926524329475258971349296825988238640085712390134081830734833846523736805004520652238010580869240845524764607673129447064016041188493540274705069559580241664351636100980594581598287177304180408815930782205718336585191003652098503172689079496821103481026485021073540669311050975837121680231060177565148333847808133067939128161764472804125989173295466338236041503540135499643671629231990640711271213959735627334736201950341601443625965145828149582105173654435716449884469842831911016480734696400874864654679191539371432463509715622595209170987768239472506473947773947330168457128835632940672936975757055549103894901288035994195234135346114394828623325035407710417465267790812861780511093230344037503093276863650278086650224980979091835147502426634765958805699435954740962861940006809188613297176992545137995140979408611593335741484350102018724752071611676800771916099247652702973665258395707360827760337019437071241728683124876509868021927160267679456508304754963546843281971011321213773621525486705420968057750974688993372080655650993260773069904111900280341864169989424243646024629275420038023012791827723254107843329237940688607787254743801936541260308957568282858568141861687362999848213654938976878760874086852043752388146874515159024792395070601038673254653709686816212008466653819281604358994279503895784677568167713659488074492121879077290540341807089400259598050571346434965465459895712550473699225775046183219144477593255271903252827086630273662063883971342974071636569250166035830756455341763851871810783267934963267194726305205814479963852403100463426283746191558564437357148832145381693563267843882244049173921085785982655665862205250613784727568810491518338117247979591867709425634382412935660569255403730944971158891763279434463128752166740667801404302209194724983394691963493786352838301899689258787078559018915651208466991103747622022722047311646253887321087726848318396697939790446340087343079979413308031076511778696961048118054492018829743385030120611531798877603359518855895901300370076451585701165493800270717734050891245550060869275242727748138172756002573072809333682714204651423929237752303732688535713420009011706385136890469175143674714005404184169463954628187598574644966523102144104491226076675416507946262367986930957157123895596762560274771958381974149649936517449566403310316245031780726511148805199390309784228606993596796316977023096179415911390867695946005569978469182028079301865435463443808624803265535812306420940722199495002600810371253476488728819255289938712070694149341629800716643993235951182430884327972677003398707376524074086598590609420492834693500264404861598212523661528008210256589259305841603489826733321500410191864976026469579139291198672553884632646538528815511756978060555850173579701440850543141004994021397855584968530097640512945904678363074163976049427228458660104476798161264868106811229562962994500543928930728228603185856325874183042818846874747567602280189273227836300441529792876845125298829572171942169554149913728816578524322499331518649624079713674389819141184620605715132547468604077245877248476151746072784229577806516402215233416441636973423987963485850994240576304497360690429268071811582193486195013748141753749302510551014063517109474453016264190377740468039446059399866970220044427400859876284242610340707652129026538200594329012784488570927734161475058983426873533623773769640728232702613037422974266241982471643301506294045800723930768615166181820236192577098241576785895493026698900411149417443887822730595858951540623976904634152414507863681354614538336246346748209859658465321870307713244463650513877729724916570679852996194640217796516249947025232896671335178645676704421205687473173962282118082693416511465120817406270250183643473337098655449770386280547114497811990894932452033591021593059706341316885864192954355337777251271632540757723076815349596238511793753858433345943588903859055399537681804754091940326177545675789396047446597689846585618592414923999333047716956231151400186125818636153589209740221541760435519464391075094531033526080805707040709206937928246668143414119131339622345785140656176198243558632027448974417504009893061489501393493514675128704141776512289248637868194295377716396196237715546486154371173703217530943098127572107387857167106670925024314367569287194383152932855481366324533266795987591532910323069595697531836611742578402021079269036510970590566671666016699228321262184187808556185526869064767774718789354172602453339874813850874199545071555284165299958039051530432897073489775351648338711067406444659254908117332771405172094846001817876694905302932801522231893123173220953890491153187068331169825839272224904767786892990586798414548592226943594036639666640005852937887046041979397223140111125592624944713976404785685488941895073401337262689458454831372683239181134770807149340316533572677664472514711333693886555331412023560225676241508815974032438752433828573829709578011552018569955643751070257540091411522829723793905028245872871414616970485332293223785636498414805746077219434481971758262543354855920391364385644007882500031716694039070032983189015802977432473567846313570741173619073067336168905828357545419895872152527582617633245837164807740327351329962657829606085652497039170357247655534166285783840083847978467013915890835638643157654048484249812455067206515032844276677678362183542322123901567474414446051300380111962139851399248748668580165711260853104633025602268016140028255057211275192165372022287240915570381299535776455889575158331580575811420377240533620139567697787979667637602088065735403294947031243139494894551558709597357829272989192102186961326662315232950798419745846111921568253262087406784337494889809228475133040046418440704620684027682294439932324311248096849767387155223108197625957904026341408522008072741825999661451594433792840345882334883602440571951497236280929001204598954747510329254637644718751197601183157437315520330669682060278347644030113791963531169968071291060051850016384115063241452128305852519611763695971138600451545729194566076282698460338211280213586868056968103808097560286491756081250385741149339243858434749672728296773715476314182335096007862236060612883972810990479812535273682014398933016412389473409785738943106072471140317015824669904015116232940269086574207717479215105738896109544452305582965342532767493382233023992866339053784701432746706291013334530943473377692995063525289034396777618536782914210790548930726132459113956229435985637126777734838741128286569679801700144743917688886855389034246092366903075720547835573009038834007440553379856259296950453930211898332673457371701806638958947533491762651771719955596001401417077702512857822179946009496107323075597988655982344094188825917173967705351003161673567487736365169548072103114912994259588069418365658768760823516793824816742794419341223989080573375361301768399175772581894531742308011940383866464807983233655821249983157666906715704995782304212435932749107224416512449738527249025235351565477444634726449398774552164605806569791121405169706453425516395301424438637643451665269607172103614790562318173610624373366944014491790980791679011746736474346016734380023699678166807365153433029552563955771878673552793392743195662721315139751278239914317726112017686964708326237196830081834239149081420433412265443717048967090761845304814006847710234460146418871785310239568848445285867806816890343465452012858228646899542184968267877481264104256356240382905015344944365215339318340664177638738782170120638344804544831646078756052523539376688022119809923421361992436270085019449665770167537176291716408053671056548246332428512825606158350705956365763649024668510906879591605420739260866850497655462845171690474077378646390666217529085884877788725603312549920623715872578360233168763448080905898858993701025276354313554413675445251239320628917386626569344374083814349406724699275399280650993297530963358810392691530915387690338005728874704967063366590371524063685598726668406610423787859527290922559313403968653803187428618478084315808672757455060562786586088856305017592582086389833868682611508118971403879055846281813411656595178008257340200956620847737958972736395495221445852788828837285327966877742580144919436929469392545842711679841650750038680098908568186211423958381118900031659224171277877383237401877183503945388511768051450494631588089687725742090136735029802165663519932667810237092357091448486638373627471265733363840549523752149831905887030508624202555487676258924527791738007232344846669620086022333954052852256338123401589082926407321973578778042745964984812584561794118869037420144213368547121148967796262229237882814014126511170943656630524247029628954668364824218977721216069956127159192245788420235090304249262521653688373114005135041458171312414938469849142239575727231366372534572596930486101402655287871120582993392724628563377839294473825357698219619268408455246405782982291429586651196162531704855129699668468865179523942709959034377505794642474845505949898206782099802481720688832727647336840272179819215077303530388224610025250574210413792236805393939683404076339334320619055884350204124908213941247008680249625015107224934803691131023546907698380444072597513179542837751784214281895230135623881138478111504532208463166283263709045662348617548924684656890957731705883460021002329654400735423102205528854125735118885252594381437955155866825495291990326477699067268708350695320785818976703271024138758127051708666870685556244191917688665886819830344919157010715864408274517901057001093905692692673405079607018078925925894218326448761330997911443451948838924494708620510028571859590945567424172325179410074143531042646537427458645833205165939813141896529567197753555322660894289125858348655197287948071715658015879626523342780685613779334607329891542228048910067595750466091153305563269035291022865147593866197563978501127297640985658934526925487072967835224810598839547280650321244712921289218216008563804250691248454591737885046094442058090007047793356681574853780186600585497041012249269080203713898753057015584692428546541044690924795800953950496630456393216650246887361539495110247315788992448472765136125507417393004214906996977216831438490305185679295268504903012648120360303611026203980962959184890445128741194544433092264755438380504395622931185413383032425566071559011225585523845542518217997602177619696592555377448508751430966521640504520971452933663049922702858227997648372197612914346379532226263823898585022167080426800196855303998754832907409979150926606234593557114399437168990784019536525778341325973161567365403628984496337736852255880619302921541856613702142153343552258989659819856422126081121860463169157538616677098314335071256483686186270112678910142123141528321458875262396645546777260544560977750220857865072864900819753652388729698158655968679074023372872582591529652228866757707331340533804129794867077286104644904457956844224248756906237314669204291846005654524463197418306726382846270242315185809027220386381090614086020558874497072828059332941108782058020352228830072666680324353714515484790640843924073298873355729949763518999395655830286093352640059049691199140390855641241792504737636294675382895021394166011730146151964010716757501475695681577761900146259539632621484250762450876860363692259726505043583469648307833199325712024404467039888742273529588177997833841543534786112134498236264801882142084129841348282203237996983634098257242995070295170444787449962092938567648739321528675053831645055725155078556100780879841210711203638549720991808741770294369688782846694259171144645295562384442665913592650502685783892379007617046479080163240477470676767223160597609180689568603330000765116082170582950091885439242417945826248408507363757180712933052024898832375228426086693159096770761685471856683043019797167311003384902623280077994017020998624601155487731498094753675073888724828974321445474150272043345680095676577746405380719250826821368755458636136565646249499566522654400410271745823555807021189847711901324615677761707100297140342250595056389402151534804471422582492907876304686124956665692040279060382131121341276385278233142544485213723750151767845680814015836671441408492449995517081522426849213297124379795261255035830659047913655428028931935748121215685436315417309833447751233997349478469024984672363006659460594241890106727834510098325944457489310953811298694424733824087146074334594173202704996970418235610387582631582996931287844820007174402038260842687030802022525114703344946247334345996416183730461918291917636620596030757999249461667417029018705086356564727260950753564072918859905152389712713351371985388871273756255034506515698948702764806638519529067625380141264909557901216715451337186418126936297118615742781218858163079119048655946175841227507952864128202355320868668856012325849237705857868485363484781093367912175327756320269450320912079974963441464457318447690801418470144007382444305366897624550451877064189773565893781577822641583220115528637279325786431289273221447309953788553675072573731613692482353253475582328085340855788693577840546785398529089112735680698956228687301469796127552897399866860807130206152172638652356313459614788437808880065519399127542415964344738400919107278246631499182522081957844319668648400446069693022463357104397206781733234749809493443630071983908636649567690457400424395154832765278147835277338274683689422821045850747608703129378662065793903130109341192998301429158578198553756637195089692471866074114451908709815118393788628681807134189476363072353844269882744676963595562571887252420531669120418722807120766432182288174078271853402450223319948775243534907461042859351784128720755911684498309152402116952174150019302694142547094225289983491062459865888474210024051149972997562105165149903629975380032307107595971952272586808877921223506275286513051977607286788977169870966372796664099400249524429408672552833104312157783743872021323908089303048354327911843154597102107668317151959103146885194270271859074916085144322300985309661879408267152816664021760050036924144135421235740522288647311333164149861232126652401213229538683792434859518268025291183167750114995886599503477769336687859978388215322503450756244836767883896905711166181302701539159806259006090231129147778082055078631447801830495867196143977762201009655987968998282722695041262262650988957573971370704113222344865658027938794087560636343529591948219914648275870329279866333005819445610785459829554814974537338711839155659817934468767001941020038619201592082258280185399624939219161465683705856962681291314741114720245086826856267122455736225954425790571690825374364659881361818767654256103082697555728543462658912867431323583526201330701821178859980009814631731413919607035759135146208914490145246147147329352178797186599661457945171224929376459366683823144160865180676424447423062034498324991538681981808904499936872268382967962311186757334665580003613496330739788016355727021519937697800298658618196132204545470293065816173230456701397621787428104154694664798570143935253205731630757501634006883916117280815525325062849711759362575476292726583317519730392930341576573814034117912253212795580306162284462124272765153989501996514496575040308462044684053313155564673745221055354071865366278168661934430544208627958444045357894748719227361113299563771318318794604531115167518237247947585039215717205148766615818622191130334676412992645155074161477845769279459725550347036334223039997587988376734462217447467363652607354053374120511419022101843994893517489615189125994743480820674986140959503508675477254080171426872771027054676243126932655035646425513872285340603298732479226218613823778230191102616740550495823542931194681414063276901485176413362993853471888232012539181205172502101102562024466117877583191275314291211473883230191290939182022460705499040381797406371882128925310211541554478671462188337892179991083010424934947180108304367939098059433162614662560784219543090663543645780784535098892655293701961509791162190099444363794001310469264576947526648830409717794157673583802416695833444099090848485170141989220169632049744755176606986498905302242509351127581255530793777312347469114454482033967483848265854817268034786020225046003846980288391619600121833544515688641706622041148990830562515516037668506402695256062229629160727000673725851038605955736510986633275060868426184692450384202079084648519247510402707945087808511343771109287664145195933428079047435429176599417783103015260267919627186779949083166532912685003894378979159680329042328951034368282698861189378584545928733531605481899498007925177078772588942047919415335461252123927663253005482747036169459790358353075650189172963635916088077681727717547391640786907414756056667940924932877695388268435457075355070680086299515104015552881635850204013622499657162997975924066038329467716259687154616077649759416594234311261290237200574926010709555893618526017472793121557311739452847039114778050823098270317840389851408516755586623051681856853734996000383890662225694218284644352829315582012938834347614756616554627664672676660341520118674107673073427581434879956593781964222065125579843325129721339822812273784398672068455143123904735487090818235177141724215408131620501863551766574691552283113113913021301312216986423321241065934128777394106753473879345621202546794319111152066031086286533050873299112557585773850408271103917696739067007097259525312061710105855544256166070428258004694172185156878570837115080962996903871544942132677305722359025014552626029891449329756535215155029425260757114495778513079914244488121234006801211392601658021330834624568333595645799627207341494890496411735061061425889304101695684979780995491358557947421888389816453267781768376159430753058423994258005547825916891728200226876708701598532680555402961958095114163072471001913696490669116787495298136782918242617225909199827567819280659344691136662617865407641327275405932663308450493583806080462761742343954995104669607936702119314954458320051829810008270795379506832320804052014697426855438997329194528385996744800534933265451866037007538394677380614598545817737633654915083916966806444966681730777412448055662477411057890437866536865109959548731203411001994809763343349551123777079815378342331597931774198071131130514685602943030011319866064418172867745584026466604829789978191687037472024456485978437951003966188602776740417263824006240035154767284566762539291899417296282402671257796419111485156016943865056947884671249035183290218426181322445450057929086283810748705396894651430836769678502350741046722071662185526693209681328386790723130871576901007694779232607848530043284562278960432172685377131369742044348258274109107812347348381636906256213963752448477206935590817741715978848604854889493506482701903227126944248719190114656317981999302689380192025410764789011513166785959901038874315423597422575784054228846835479117571149685577772407314389007862201626291824809771937034142614430731698011455094000588254922288007760268475813734903042176786471967074710837676959117360704443848923517828253792549515817771583653459516091081650682703307047049506811714277018429798619287945492733060074256247454597454018311491000048431963825315091885142024232570611988219736636614617210481066851861126912984464442884896963734797539878069780251683602183737263786963325399655105946851244520371525052529223048201996032830210144257124247965191137445247137703315017330505773331281815665153456135251962647319074605672038659261629968185392460311671542287371643287621638395331886543172385670188357701185734086337449024249234843312649292276046084169107113687887315944628174334666714018003159667639877670699208341138796133986959858878840632330689274974277393694860367281654541524328795567383971915823471092480186668960783733010563394353678645989557513725602930331335116466021923962596449205501887681729868429460677297538831995986381004485021956090251381261112599158664557637350593226667647396567349375085060583236548378695485245158219264561060810894117846328413515827079497398787244682994006118614623171761717724281820067171796502123503724530367758928882155633890389302465444031244469964358299323509082594277855712517214714919616729849239047271359052378740561785943169321140643612127139411187291293245570243857656520461555232097687338779932621167495299966047453679275959305409349819348923850614335526175775172222860970729456171311230407295890133840104844658036793481694372440652735074093365909323317047936081496994218365159219829304791619180177563087022868544624298221262666904752414523343771964819713280038375675742319814916006848345774550774628777317259519456711040941663111658850524958967277062947667261109673724591219773129618046927923183129320659130456881021256306365314072683840111244371723505098119676863599847618867986621620751793371148742152661910362631848727676764215513719590469009166437130256740905644835034049995562582983032791908012222663022177581377451110881537787615126350821593632765379149819414284334925258974487170310602768376984127636113601153852340295742344965044649120061203764870211393685145907374371078401562762675429616435640506435458081871867164368166706798091509103683591369486846816732626756259476017845213107587917433090788882751613909147189672035477673624550795081780651591935727408696847040353577738445715404672683345332723362884154413440889609247424685026467077106616958079811520110861946445428888937604207652071691074421534737112397864039359195273218383004594484816997209925786079750089910657079178293623730272514808351898359738625107495653165699510740764238486591927431618005120509778180647798098219834916849497221366215693674633705242863949989941210985289520577189710760797144779632778558093514449420510822525213931192323659380202095791162015275937177523700217817798493498865277357243859981371773988338145449224097979232338758522934141371359374356807740420559214655818753086485185965546131685375339938403083957876675029400983532691530651833846572691427051605951786575768437758168443429878476865786161700118686550994339907020835148780902516834783735498729876960125323635106723309853350120177365189657745817161745135645463263433037139897470592277213731822133027948013018750806070518161013273480906900165686794901127780384585115001773734535865023754032532226117858477347344126837229584181100468341836344112612037903624957178372748296774392444881669288336851070737327656051709569187702548592391331314731777249103714299108044501668458196209517971433681756373817044535800529220936047800448861685356277716870796542794276836443568721308543941035527837686660741716031999654940770039787108109163030698424098654670841847018102298720588969924637893757267717510191104816483577855665649540102515893411368260020536216313974313297772059313250441413734676098675568565332869451149189923287447821138523206704953555775669010640272228916459322490572538137226962879140119002994287330717926950519025710667347212722020279199804733472434463912771645580858663081328566975075143635105491475127791507563883971763089579612900062928170161631549078883020439981471484514383167461407039024480422078885236889657540233738471153351275131003774821894094763711165984179440385594455704716889694541398803188980966218667359625641242353968916198448447632867085348801035664187143471787648197499693215908581854154690796936278648289222448896664619427488142292361016313580930848990473885045711626012264377710189500813657588276817620537394201151180622319329263996425102057688309945255259542142660439412375174203695267143168535368728586216106742053847356935054378261444534643237024832683163204351124032260868813804556483357313774236746064596168955409326649397279949910338934431004244089158328345951279857489857918431057639123764989984442729451618905538567184910916505616531307287303513508479544929421339910801873269081118749301851887307310485198584436936916832861631307077466303535638575955003219997680793815204583518668847747207345494728937406865988930848930837533546108588647480110361484952032727222053630169877275320937442624748227901876063493672936544447566555945914637628777460670833275830366252968108174339293915466166057760705804673532142324586340395676155850331823816734924803478739340320858399001040299739075118632887467311612146988939463343867910164538878405831804212654324865663858118795309893970670979264064903323456311509727999434470387971050485386486553421876321518027364658672758899050329190231149605398938440533006176927600275760266454711799774542382198588653376249328313725464777967142804019026373035404098076778409841664562249637366973678254598375462164081251804846615614951636721862427945083881995410604679713349888333009414135919490735805968774812717955524049351330422694273345699150472098340368279385437868637253157354071440751281247257862620825427963706700319190783380416730459550191076724692851913676914137543365687412854074899287987971189264734472680338565943878824262392028857676669655254863701332566478610569407813011019869480736176811484728526537008599935104997615964341282335320518446448543444778037748430431904311780348877781727202377958240141976624173496598114877497294014724688834830408103940206564124547339835851472435257459863096409340964997332423527353245761912743226763992016893950443121715043437230392610925432742745855656356157920431291190647460642576244925979327375013229007326690643671656447978378725766368256949798319349800802139200973647377282076697341300629625836616531730163163522300856281049392410133119325967705471801801262136907298081051140995022964698862652181303855883855706034225375497692760710989811052723488622346066488640200162573666826117031716172794785624081369293745499287706116736499077700750657176127423346135973393986051184790884404571190331078792861170374382054897055550518155634050610937534246042841323651698402092315759406724239556818397125941984403170574999522155914518076285428097202096665657689674849182483364217256126214612606507268354382945675043741209662886386948159222796573633297136071456506597197369094688814274451264414171701952977071954044636112257238005590620689617212507654335841322378996156420625756630262894951211236778288562763042517514373275893727077583227301678467523376528469473263985330050836158852082788797273664933462855118922811689862649973045887470505639353940768298842550388799369498171163072638104639753563002268500708154521396452489270052080009598533626539498361398332384336240649385292652435170862550029791970943536773824160986054019610062003004062185026024648590963571693860006924025317053161413872634799973313741699463388794797139476073471422883109236486784611163895669088559710360426036997212875187285545254901411008790428519781416781145828322835873681334010456148421185409356264232593015423585228709547738971378847685336456611002680809233699367809464209665264217839675154124035224610274226656271991266183815802998661775561444678028685082106763911380647737308158241685725003176613297375601134167727524484811764492170920856520743762116230827268930674366298460332991951910967743860654759500087540181633111945959540897040868787307800455558293430226258932250842190299003271030587430925836368386245252435228487410150619194269100437876216395288550419424767678837406144202016644064896498779128137309301620355353028380584746945334793563593691875371327609068272221876283414665728062881062223274991296084232459625790401185624277963110582727145038704634813471425368930169241267155920732357947193580882100899129409003779736650267267116018347387275117696032147195825210342208591583877109620770182970464450955639762073654984694129991682932785429478143547738873090883867348436878045145266758883161858161128690840986578869142192738489857262026740552815970321346091532450524566428893688196391351801722645369591222607293023280347950348792992208301944285021740857542250235630382161427388332438076593821459526612161899976998781548940779539160816718373450220995525803387103187413267460982533612472232531731579389920651961033503604356503019012181276936493482293356795210697037605059720417271357217447896200785305768021725318379110449463952692310967464110702960761201205245952179577167490509356248109193511701039167847589576819311588211241935113328371216502311414849136043588015649010945658317269399362517875114417037237471249510448990683437775821260721789584597603761185539805665848697723524411018629070185331359987922115585630987662527374211695134083417539583443493310481428086824649376066731605871500159660533711090596949616583240051942739096890377530722438514013915723460581201063297170501360657022757620244241322482268891616300380194590418253560581286813217139160811281124822642384576299662479963811807207159839039458939183959580030842998864189806168300911728322847144576278199107520587538071659514655820390926607986889695246665583143897614353545975129559117906802622469979218890565046623467958961593377327015872244720920432086435229682614535189744488151752791687713198434848560340045640336243991695178359087717838469823797648287180961884575629044026291687878282007478125118456304546476350576339870795532663144631728529128783340903812757862478449315928774777331986011968466719117076564289285763084789097049334676784149860860728211556264754386666163077139781833491346640916290092050749518034241542308693440892156720577136571380111590325848710408390064848376647166843748409280895932849417177499574812653334592016588699273577731653024384765614744398421891381573083439494249852548562658316768422406619416643128890706382238617925877138262845698988676835482792337591941615317168468620191498182842155362863346036336563734376348098368931037311384352228362207691798463633006073326879077332411114527680669347912150765139261998451377986206751710188142048775953344883573774673026677878567277368149930076014147883126069790551217296986407490525868533340425734176382354221610190922770424448599770420837303890623302997426812550895798165287647846905439652265904397380186917858588666843656373755675027965966255595516156354065599122418742944869332408435178368710648421367752267883043589122763570285500230325619243561654638472360109747245684671816196180890380726711385071203609628492715476554745050125703258205632951178424810557112804785466777808249293444785245591673719063101881478361309196328227173478151607587609070673976482150298567264682871136137882628290422822674479443381678097574643358401281581265102516780179642880068929943210222001689803500104529451661744923011458390603210010590301036319580863479437285189109042306217489841681629697415482902337036079556734488577069452877290132861343959387085862087739608969692025103599908873233742827764204160308717448029307438633789010306891639940973928340579943966148148430687939280376942489866752348962105586410539171722381178757789078043905795077908505328530974075109584785217685521344612610695363904443051949981716646551367342596287541431980890978008685326457186943923251486763258717233721000555005660549733180562958941777598239383222212672847748271206279237236415669064272595845272025282069843174261390764930731600448725699020510380792170202925234031963127545477678565586707019572152567341020499682252583760657804083779468871674457693011039488124487433034975947534664478944656188616002403774243519562471716990880182452951227497552109200163543954328285046885180435836826751278730141297657299730306262525504829529121291833412459549677515981411949055637025481141052441642966291195257153134795034646752675545514042174508007640599584797599489038898852151917254099315963366650275450913858038653845252705109592497043963044862138335378700141914456587979445208028525654733732086557626856241509388854157063602731206116278387130467272397320193768897964187035120986345311502295548177562912807282339430524149493893230900910471702307264429661309436996927379651261120131595414646185673728691482952934765751490821365360526428176057683875593410254778377985582867623859261457209772967603712460476278375341504269841250350297155840197776168902658269679339827654062022628768453660245943475613622012327228290948794962082778095801958838040757964174681104611646553035955046112483897918190524496469307220652468582238211308125369007971765449163410737974992050839030664477214720077383238330194446308187797486410705737823377143881325697762680964942822815303187425802459241094809128927471114383732918863209415471432037057069012326593663274838078604858376527258789275704142097633215944252642982875927945436494229473846537205395631342863250507275763253617206751163166198627682041288143677734585083565278004198663797357522865598313050943414666908423782838151655615564556135064067278692553256928206223148535269875946690687341378386655882096644830260719047377175937253017603248273483805738192860239164277517926128885221193358587500408958965136389246268608097522465062693461766170871636020648749300086787664272312849818521686123556380390725166958446074088126658743813101154907474867008668976718021933472585536536863292734937547576702528226607387885823875844306662458436375781698629748907602648063242535882170470161946612882803132150919603896981100182914375149562344769425861791323950777847600206038406201823661079472211506507466262741949514034716230232823394454647339035831416699152717264633634522390807376094478227862982226176104489857164270874646977844682094869627834694693353536769742233805010140938403095870988671749065988486134423461876524759214777341188176600012693205139228562136387272917994823102817669041958745283807352330855430041971390402380091757883632060272852856675776559290377468836805881203475986665623581295420730370577317397993141401060712111125701582645580145780108784410513832126532440589852777728906664377624315869514294761603627808286096915361396901852942710484892624926968564022233707489530422228048334203517903023845942085750941949679415120053735980228988502020032103526116737183628365026488395533874259306041236861059111691964232914248270831431405931386674882000927048628615166679617804406029556213767851063787736584153025846538663765940713984175017232387915487859444717670190263381518638395447922013584863252312279270899229082720077026239314068184844363116355581408497404160235924442842541181325672621410247756572600001995727363456209867761449832704446113339478604710963681804821041537494090875379866386131959581980851982780942016795441935463150354814080813554387976340442751403388880158235581552877907746894082375080413890721187849094886733450386904778251766735469547227969925663333612776994985595839467406348876439468772813390547148046596125158115708136776766644466151155247746751213140756469370141073251209040994617018480960634362623812112407630126389220927413995643783941888482396211788503283594700635130385329075611462315902370009967894925158674481864483294464190244838033916449889609337130329777474640722004166674145256147279076585574446814542754828899849875106337858511364143036725342088791958804861607310052245081727315569875854217534971907407015011427481156326912028655663984047748512511963440396026910377393573727758671044431495555193310765860919074182986124171099929670661808769655017112374247058451597799492352775887433756292237669526329768632517794824491197575458272440569398649579846950665563256734659641187907093110614285535682185338489478850072207543740164496948673133557307045883495055082201476746600703805053949209716403591856319819027366836730103979438173303925209229028751703585711475438781010368429211214387041644002656979760570845460785756152786378633816554624538162529162797709080972543312196419374092839831921164880743390869103617567171228499120050079597379237045849876023047764246160715501834173718730946716585321497619955637095853019367888017043993810565755305661340959359939896145392635345691774198545475978515807950467043207874107533165246703648823542212112459181603445871707738929650852492108328666050627369936451602802660843991101625356977713153444620401588458189689317937998069813908219454819986134223931621039747690089365218098099446815214185246051332782160275460887809862244114471371736310553744206911584439213838731450064226495536927827270056595026037604667456729370223376286941853937966442127853320743430631939327569070112808713622917224337246598765539123029675937177751788341140881024483642626564133031728758472173846679554604673510093478137608996567870207250386831739039980487514332634208527757489590469129228595950464936917596200115178737607763070101062499171715079194616055571629773439212454854353139125763535985487504804892209139289330470985368336447238013313841752286568732063815551406800105840801625398103715353355784509080423697641313533382593228787734138850375255550556376229136953014617312842943363415723683959487963886252752540920610629628750711708576467306291108054675885930287665924744165651157480542385608061989650854255559415176707468086114419170462962573219060529497015995156863394358280600791143997171358697575835653846093139866698755510346867754310058058910247588981282602397419295219702726484466860496563232067794692939160789779380166052508342380831884283274264069114146622349269030225336294740458057887635398048178167484114237679271643190446179025420286191826295945472864296702301134641076672010181034801692068341601842762206248263210065340898421209916459566742290590125107568487917859366719495188745806002232088422573124597579560072802014275052661286144272548701046557515544023737782142736921564565658172125127496728948449769375423092803414020907326456285286490439377244723878335828222094496935666103822567827125113807217561614512892092544579334287010826886862939402255939049011999962048189168184003681844522987274993144676143151947257989936067185683860471532648444295969808022485806314061516425612811749117310074829916390013164145164614285088130319109705937199982411355446159793562388924395843113420060884576456877128354573397124016000659033630074865315488809415332039852129171768897439457217208421689441209124622660710474256394958569279140297461625278935712003417482923619076627702216316164966700085541629448144456057320108486065162377514393403589713357503413161858421774148207151936087889544652253140061048025502101786397622660925186790767647118951929561451147568833292418317999506277229797914214563362594224579588367967481393980048499033456888208153144821673131433887487188910717343261803970380341924376755598628671469952628154642181137299454979214944953108183441097200782352788336127467785380050657459789048070040893830663198560641077690818956763304287860350479022135211279822293958014898384461460430648018830986493726836700024728544367022949723026354728779152034820077573535656037719835458912158169908772361773248762887914848231489552696151162616745537156721707758501807702897645031734501287456653412578288032655287004476503584110272277534040499838052105956936808919707411005571947612396659870672669299838057748501857484067464309638874654821717430531592614474619313234835645108862736037266717263509218206584558853733815133644368852832158745511165831542382478657496505138050088896747324401139398036950315528569386784505346809501100449118764495584062648974674419017740405163030111594401829618592821260972616002629632891997850774879058922984563812720764937338835573790333819130405087063979322891746022320731831766690029290662572237200036637566640861268113349591690019347747740648850880690440011061108003220515684291388407134000136010049282609295329174163095189012657895598443818269115737564941195124535184182775006798333690190773218750543207890970587211150325196764831627218005754869354012055953813453719035348958714695062685282913826577777214763717518618290628764297647035754603489297144506954837922788892535211116299558836457240498433633749724279871734598203937352465386689203806742370524707678325801238552009319194967354774642856332639889729344460277554367124284693788960722780685055445867260305883878374102074294241119032011625322609139681655623793625702832060626075821695216309965399125457255528323232914129138418666869008615152444736058693509669153962521822012162921060182296587299838762342379919935433724228455239798446492498580305232852159743079614610485271819435201563477007274611205311463582749200807047001616543783097772401053553358868679105315529843109956136073789446092055569668506065278310000739625872280925806981431644829540369507560980799997348001497819831201507252245064854638784523949793022410673654537440449495764552995938410708857890543153894705387879675736561538267587472193614900495695600134900294446324842275760924798764536885359937348032369166158544522471452045513693413295492597021874101839695664472111786288495711218039201322680173157280897139231922849901552488727096809546003389732833691417393236250829582599473328461580023930668964797780857419836083888575522988104528869246352927748951918562333806925494427583197273774474545058549192050713279320634838195324465499277975370867804756731739693804044541483049370449173264712914352135870897426169543289766655773886879091206885660671999582224336555936397383826383110593937935189524755070936753669159783552592795799456747677719080319319125168714061871457364946591557484729938853849229760499932777476626964472725717070549247358618801181207688643121018020565729729675942367427275327594077054019308608981795524487681998219519145602447533226482265439524400235840785515026362760420085182102838034409780274805230168802988252056609519369765523277722902025467037738136879838376488761614958208223086555710656743944449407412630379124732464185525608469845252503469085687389641640990143170966822915251252702647939799602729408704537961585743283613479918510834575437221250818076194354118767577108439574871233368504116323665015012210439173666125043581323689935291066245189035347863258560266615431817329445148043364091617446629039240941827017031863175502629515686396096299731429955458879184596750288295070279091547171552213077927435896420510181684323332102269863063681815121219900594801106054685492520243606219528009943639666794312421119220619530921992772106217723925027864122893720014332470658518532421453230249180441511664171168167259154536936019444641312882307799493950545405570079109662505984491860154445729272370186423233316851157983776521232962055551240596701663462101245275462288385508729748476344108941660183201747371916834959677165375614746749414672435116969925094815171959383426836040320355202545467450291841549868995390512017343171023598262009122881166390735210269824900611646126550486277001862223283336189807436913515163006004575358641293978347763813072597128549580125836101438549021661318816370147391971511592991949410904671504385218863076188979949781113502705785838989337724427696633325355239486420686951290236031299329045013642041274349787485621730362704233062098316189732474886137034720107745382687924614345179262454934678352368058044653643895731976484555729625066218118873502568495753763228601790365696910753741455909441600616030890376879515598248143543786896761202127923775904036719322010989674090374407465196647805591240739506522579764714946727974827424859618092744401987577432146447735018825662227498821538851371793579509058764592723909576655137426907910414393038686120167522708993935867284469345065760867801582727186826975057679738360180984859284967176758874544269584666717938022220208059772398188491296474139718098467219226686319502839004940291896422414778275207523083132597632916720959079849513407440266641895533087103326218302340441895142247695431010867743428361331940986508727245116393965226897180723679181652406001651916294684397637015188439674942006266802708434902467110120005594758172148336025289059268612097200089459538322900334708610816716275249689645386790445941751897518344441980522536929600070341754306421400309273844935165743781734784448444994226919964452842604477826666881301676166779452618913545595940033075380206584494969712811392818461537659017109395986119120773912159886323428229747076666552826259108728766361720626733652212922652684339151788315547521217976317352556508463203442392794554390411509214346575022416994334014670547242724416455235906478944065021061221361089695363011226653634810851868606199985922508682440304283105701406496711560517071708254357246278160103600529611105604196916932141858685555628544359626320138030781485754544806288825166290280825705797324800445362121783703490588159779969437987039655328487873764756200351533589770980706249605691839456114721803823023638068080532439810329809495368548125783275418863924369462698867801310287713049645121273917299336190861062891480678372473905673462809647257494930048522074651273175857784709916442922373268792619714816367090024495392412017915170397614114539714408283492692172623367201111461132417832824509772162342752748655350639533173285063116425504924674090368398909438973402374140762673087362696479467075093085613581526329401843813505126778830973734338213527069426431456181440649164536125697600933410953634932490233340398358445188504492075667285755616107255674156177440352299405120193154132688701267962606464486933570435541980279823302112677954880664325122287575017147852110265023285032263081291704589610288651168749023627147434544405713922917626426699310738225146462274494776896658684132041320460710363458512554073499781000635940338619868640535360601442200499353095153848338695631675190268438618991999375558431934307413190592226028102765589042943069650314532382105163134551320265259807411914524498565281199640731954566554721564125957510190795067893941031503286701337949388777803623180554309014306461877151033131820490504463976702219602971354026084332024269421808443887482627912523794315688873497755121383180927356851387215733748851196064546338958260700616956647627488243357534254124897718853715579074350003347274644796396412398499021436322326519794336686124054488279774721344019232274681517066579817609638477628335218693389610030135951652488899887855951179267533014778843983885925410934058169518619343772570681642929598485532753303644495924895117825766923140014663970620656231144905475619521177169003973892620172910287170002067629687347134437840058071339536512889769711340267547909932770375345490728766462826907387828953985518309112649066463207927031680414334560349667872279466584789659993113076302401293144718461310123046684094766688148177472693618747610737747795131481410710295714608572565683351555232005980480095549979729205816380715228505086937248094048807454770054354878573910077657092321957738504650198599093548045534310046077921403071595297346516577850307234586323485725058335747405261276323234852671174696075041623448404773758723283370356217483464471854003495288798252494095107284363380755832634198659567967622566237728073306620413112463971140638474973102928231356720909863686847726082374999556628847085952281419206845937940810207210848733794824116587811591622147972561690582175589460214720731610405360118169807352035151072890687403177075620078561883226996596753127954672198125431399931973843552287576415884030848014298732143310355607497829934525568036720343696688526320287195680771908095813110042668286357718379425480548443287585451716015188505074124848623570443326752595936890092469103866641451418745359520574583402066653948212348918301800688797710931072609954906793213489280197809938926379746513229968499947217151635293231901480451783208735882304026528529767724085581923185618653566933376819236830662537077238965504770836078834890196458924204487372820771152999090191266844048924101505286074567547003982060205164813679640778785400258540679670359719869665638059085593513683736277193195706872880987614027416056209984880921442368343092619650303177027310798737997310798586049181197841928807733593486454166700171025370200783637793720007751598284037940971688894043431476528717947106416805287989659582810353726031019465185137100616071781078768932355234764343175711945806012692509712892505197979834199776271491660178808125346420081612926170801411996790373027991626494081228214838823495299038524791905959764389905749137937495378224943848706208871580078645167411776425810779122246247900264250912401523035960241015277807153187260421256168485878393171126957522714585498619387146423593361461605777659927229559907737839721216833248702651058893487982756734054485191482508541082988371370919893434226196733150558614770829781494394530010353785348734851214802291961406033587057233221914374979155449916401998828622633038734012054346057202590260076422628719512290182979335427223055401068876930399464679481841478124009251561593429773496653582238921155675383021849979771483892136334028186363290150945504168976098647571966443573635589940388147774918981940596265810278147784797514402430760261688135765175183297672216752013353221040585234574554668525056625021900832395075873811307701393627781989011442522106658313854444867823559542838920333213805299237065802631994587046443748630343175587189556117401994505622124106268381367784790288120485945650141507883645075587261386219813393561320042597932896159603727545116235033839010077386113111704658179640101897302550954560918336183674461885719416052357553330157448910801133384233888953661492432523460948980440579898605282149273057758819209754073872390016832673731654397430454038020233567133375840275363613498459446143289779028680844120556580705933471862644524467095353138672189855253823405897783031412892290437712395602818249935232970385554708010117768015440997186796829548415729594857597031541374126182969387978351471713786626635763070192926228635913203102270226865593995734968265387890381155983593529636275677872507786495661157584730649124093454144676314726274867650637792341556052663845797304970490902785405068449987159790568301444333237222270141386937444101724511458375981614559005997252864096983817074302401023524352676356653304859449306267480049637095917116450487841211687413916403474897001684205058220176113143764975854636133923088181298117169876849782382691286521132910666207158980986715076476313139824634541036829990203757181095176833023613925254225997736711322212335649661941688284920718694296179989680288014735262587324238896908615530980129395659998689277235203426722537684708879198395846803282079038680276074184936085247329971796351055283432671943512963329453981345984955950393124708532391684185880856859771433212964572058788437623004067762088603083767465714746634676948072444217211931784038511315009474143826996531750919812504999051569726590025616773063716631659484645753703403484139404204991332362637544219983499502810950524125277299612213091566372364612971643948851787946533005667019675400206441965520294274677784413901074489490497482739728449486693803318367539467681306219963431254178024405971585787961100567420892100533712289760182750627782669569953616880479237837840942292866641759796621038501988715104438688129870164387882814119456811085367667302957895490353542669239794064036017625622658579881844866266610448668394472069556472023138526441104418029383471449763976489459613704808530239597222506151970810631478291572927493019429105100403133408289332771277458237978699529708991336365001019762429433121904520761341297634991785802668992120322654388442622832982342216253672841495694469362389764163361785626708420271840957661300044691452468649869110263476693619358640801291054787677679533285076017810906807048974576500270125991960781850705270884724655577573132093556005641493738375729286495552093631541032889829513018125172141213001954461815941512284977586142364392285659521479539826593443958188597515254935892998230248400913756941998692384164869677029979616571454453630367383541840692066444225070272680181978088131428646043294204262391394488812059811404620244299273834498372256900499783115871477413913704455749479688192114724737367470628888013484420350190133827604310064869339439284163816064783078918701588767466139222889808472748940868458601248577004710062645747914754721726327615309915877334577362005780694864651339963885860045462140689799133692252958302752931353627716502661775563643515112095119828718016566739711677524425035259293384954750005110110211935420615541181601537412742783979002564775838701488967542486732485938654748133977095381697626115110143004150172846896239228221749972519961133600500502124241358056589804406793546969227457981313113965416951029321220213574656621432106478582759325186245613788781276892728841253600586722155004594738057645096601402796753257705576026052706824470213269110067418659884874400865440090226278943460351637813746019086060062726152507969870414287716662302894169922973089390480906349857691987983011374111112440436993902332558465913991819139941335969952023786429996038976967218443277142456135474419863949926520533948950521761017070855970721103945945837416531460620556710809599936494547841086236755380939291633932979439997437114758717519703200151425373247318113103012441358466695138270567909655961886909726339209547536723029751260436469969559316635000696051166168081490020637844825859820612234461079492760003725728961664582648606732434357595245586049275026555786754781709099431414400410146267713248314944877340463045489216013788714487499089006081867247473042679693511261115471306630825912090781205903808548957824320016417767358269494629276492243221396291310050643912647589372255491909766629860253356119326150529789410644600524320210463534314878102023140914740155487573021952851147591183540743764427360874234240929581392404279639723625695411837837796415845345739389973196064269911473306441427671950867862137602401531361415939807090370085764960579191036632582556185782953022084403384201417388617858267079053674351141104767803736122311815947411378801206419045509762353766332133429753452989760227272875910178833092953197066455505736253826929094290943230219793299918504972859327230893880326463512232665364347395691874806756118607066672267633800256974049205452076193282656297128272454096330976286436814391289112082543571488197365515502915349266827657749731074979293793509826292452138862401746479086031920345554728419742977772216283366907721466303360042224774623785573505144035465203221005913254007747198806163716885846680667866863828067468538220651228368473210725427862660313223039415380478076326827788977147212604224871987044696101361717347236006194080081716429761025164177161289030318935341781986122205129568331856536858676083051434023967814840409743774507845085486631891343972124064381054386599443589970849390591508841051196463525384628198098562079414259738070479849883020821923376924110020275332401216350925376029241479527111778921687970135250166346198620249580154611946903214975558834660737126730596446657748845830389621756006592246011077501350206917452605581248765223085598263513545002517469409374285268291787082979881388696941848385282966458616190798040823288535276812895230828450396315053478763839274610786986945400486344078125958972982934056220046751040128550610569620810440148750005427614076004093787100179082808199952044208823334991167224788430130163133967898259664768726828461958682312523575031671808328777133795219544805815781605258510831431522533805294204301881735665394727305069063866124936317707942647540510932810842741608052332152584913749379801181975347049460117364041829317118210177397289860557189364229146602748466255768102575402558786013397780819809258222093804124898257195815280142608112187136303180203739370207588596175053200046169180143420744510995164361639813965916254261250935398620900520297246294579231994051822721375685934351339593133900872316389130282747119046349322027099499385307771217014788077477537048430471640391151685826587644505879022992117644469525302710317115987493089156198935307248951195190743927956592052216006635660189563465042521270437116514935498638372651749959258208020229724685229909302638318472753647001584673910149573061316463349900946712855109207127694057817325174770332338435893234003619713849991572122924578763747931426752602752953457482565301648712000630057293476628348100002155232565347520748389544162159352176421862690431817337472848476593246068946126269985082603509093050413134497165885981810378375802469276525962857910082780383662261016448786329596394825531664437162444847227002750815644138817038606612727431750628765462612269364024908059901931244352966444392872322908447429471588260918804942233394783524869834636964830138106649263100684872143247676817659827759215648885698607098480345578831338386223030864404290813978474023662951087855146742141771905020925518638319881489341665362559012501085386840857533921652854300149652239173620925078487576570612258837067559596123323357948763335916577596246181922315051822133985859679495248373301099567280320015243885232079214455542005071141532840614792033848935001695703733199298690874739137723627860104344606469845107456740799902134985500923089863425758588432201934316858497519250428123620693338785408789841587595850731487137242359413975839148504039668626995336601716481427990462611809142626345294927744562683232417064949730122477372244656234899123082913003343931532535565059626210230403624998403725874345428592324769007874936232233800618211653752694158050984044930011333249671443697574005386397715815700895149319026527519896387065797089858598768022472155721290623688332282020003558801457827639219340934399542576343073982306872866531085550224280588317529245692415478585303663839706822520431790217732988276466097849274962562981842000948972931741831013589002174394774992744673964399893203718229547881554139325905665525172910842275605820422170409583333143022322241959089753373463463607492689380665342134846683918412698112843130559643915967653924581870846822883400182638209960882140901258095444855011223476456766585350975679534563655140745450910895484739175608271244425037642212049875702231110566437270995651321038931783811367184630380526733950860620214522609629611000005837765822581274692912367285304066406281312954521142723822398094847876273791672032114455320828231341054453588777877417872515873095576521632549025674960285680826532920824976509431546735215912952471448594895617231415159369011578560002653418741852542239450894286149952319283062112031763649203081062399757579862679849158925774391736545060737655954975242720225992872714452779377987344974742926023133210035537823758056821415611147813629777447651667934394405634773060195460661103743522887155891653583219827745782145243050424317744639262049144071937203521881566662068097313554459685721698659218983373763795136732980204560331232688342943949787649237233708186825111788464438243902811032829011058084914442715009942418522194442717092157339847052871256863659872997401718368039152222336068917032810552090908879345663202674697745121675010595411385858246980179741636636710513772472728105601338768024322286735645492783681170041589662050384766170504250931942794405329804910028227217160555792793129176207300426407281699038820306721385501474357347122645637583472796531781536937698414861727547747848500795764796864535498951534038158841586059392262402158591834983167617839688689051563120218038903819537234508052514101828205660472896360624986258425260621669651697644493893996207427866488432943953169940573187770976653869060315571016315462335008197496274058678812430158632399860794580846199085658109238953452828166727370410777608775871675146137806054271431208957996480654557539597506109416966904935108212286242517793307505919619471613235003281728648336177479019947346285587791907265864792998914432368618723849284363627376905240660270071778513745742835838808766037288285556709810632786229104813036673801749568799855805563965625104915878488226840180388329552217922368173821212254703008685718826249963562874563853435073852335505123637074223690111392985483508124076601934186784167078277660453435456765787081369858241042243105213599637596226157757277875564698968649626442351588910714782163572891056321552180122531868221211390221469064871611261966845893205745479354820958617485785354263275558510483454550206090494689583457767333431739265780557813704582189388485435915407203378775981285073906672441496466670082881939484590283264246789233978068306655303294448765307106862867967749097214200039456900633220535155714189624417349203398563648191139600030312870912297995423805472640025749149753953708961429550937549231988804543182405724797366559832461590603665302799361569245094225013559222811653816534519543990792245548024490983961727374453011562889836051821755022065636108800694079253736737604182774926424300129932253799880430291254371235339380159410149278503384853316814258370044629564964377129956403062142466010976502510801107428687667760896142729060568357776223636617792827289012445393306773460580130032209113012532115044881737453143743728550468818919924765839379768788421379087352833218891555487609347617985742004073016551031012811811542907087821187413436090932441755985009817305364447980010745428389525966607789684578984864524389433068506426827022088353060456223724439842994591093872367800348678965829553949820633377838431546618077869103222485274581081215318892264523221880799021214884828057155716359408746092261335126157170763187423601263785983660158599867668779142739199303964931451919254348556743028085315627870173773530572613404105984854544168420652585862838841322324198963998469464075108631407110435558198803012341071237524393523218005865207626826060432609064116766872447170545483358884185326273939090393524452560943886560393029751722226519250850308860467765928996081038861106882129122633531802017760170009470574802936187747884039007679344054769752482763319970929068938231619163736814866739318086374773940274378723893989059521557394577037237600507440733971603578913320636784490949324287018659536525097025495395867224423693889783750878998758960058993477118036831723611809057441703538390800712125942021198379016586733807465151961395224867393576501751927595637548509321540831466612142564438147213636285529388375158212612551983014974564556897449132684610525572901033751351985050200607570844673131110266093155644628506884801251980274123927546013603853227696483909586191669132775039130885791889903899949518370667698432408281906585396781954339239614749468714727692728642578412299632836219412547632998677088338161003250947378006981676557437976465533362271395227523810676231220370557074414798718953871466970464216594102712589669155619841447900960269950071760792456170593461745697100472253120459028918553290733661533981391514944720472272678598674103424259306614351836302117336579231038809806233713376246469258953174220584630921111606424544425035698111543384626363086924549134239859156419077641237170192583592518100692706817360198360866860060732139832443903159117505982681884719487425746211979962980576085455639087768340389597144392506054582146543924881204137733429133834706847067252839958325935634725034914135715181624111080698581004683371730444730615511593582257730954169545278489495533548412853288192077301345885007862586972898492128022862624438110249915383082082106851865551552612837179077756967197566262782931267740540171758525421776776391571575758164242896128562372235534188679765569045006908414000599479882081360188983144127956525496980293782703957924461055025522984474395430483444695274385263153516603987825826268405939370090812849104616070398431471718616876449668317459067092570209514114689998721644847620158109639318368064958127645372747247504923984936290415322358340615577886986401937603778207769580832264097073698230874535678412705012085186709353475821472951851890421501790375219110137606984627167332288800415654337735488253165372763388057007037080776363035766793043977726735653066137157454187684663816610780268644945326500850239640466935721493740435624202753354457772397020179107378697662364341664258540909157350511165374034324069307632844829374517868633683005413083336032822209317247776147673737202807617956956330084709217626531438828928047911018434215300877182747524660463312058981650635333195267833983570568975022062697251061077285795200133169739780462251434748774159101152863150058225797075627925298166912338632352080936117142903309253613308774238353039314191868029150147050802253594293452754065040760078160833912209025886623190996249211312521069762192162402096930092786495853834761661508616284437820932144255480563096271882146072235333348394645141283929054260843901995781793057969650855789447319140143232434749928754103637289780955329466247933009357481651923451114663882579205631206045175316458713332691766967006575065036026474686646416680859169499170271695268997841674667356258047356194291007994332256061831358831780396423691131244011990946570152285234133661416247906588967706202168906065205571731893754093854463841063864948571882632046181758917348381314538295045124440950917691233999117403428453453414314909921652423997252978298550527865712625432539795444009862934694171144132023607896755514355409918211308528481449746066933193231426302970374257580554819935511946703381583967256009840857219359386936477309163036384080098229009216779335478956913627769794688919440497939636483887389840870603359141007210108599768141212418966334829757999233489179099494211400006208095482811284419457035732344737358179758455649158007972435161990042529873488868556271280918166517099918810929345340671069067234614736601552129557313422354678525676841796318651761122497492208825061166184841630533655619983558840747898549594621965820374310313567460623353463903388835395221999358497920350992571497144601124228077031379599976927874480771322252935520678903549271119197412861112324673474288081189978704074676521185931477469500416217217195558689659119373996363783662341007999055000573991004747890736460671792548084863759959613575295259553325124905167308965861396192999430067592111165806908965743986405154652874908577724081269654886685564854755332965533439415554583356579482141534088633862989935468592326715828950734911784914145183522466693937302412304463513285317404611400000501233030640837499673663951078894663404753253932453152448201597660111249134813811343850346010680849520790028478539653417035025110532442838721950811785232263082044285762440675933171734709420168261585355905963293877487081579048135651266396370384216945472897103580669136520010682323030081631322772794428799775877912585132476748616259226446212793137978663163731420243094119728854066114405119022979323208564565790420047166006225360406505771673136030171070825110040941779351795136400313510885311102060782705050586995030567841203992139452206383168682276429637600140147957422754879627791811682779300721537554399045143807896194101242303249641930260150724975019801783575943394233174122274865424373267199374803219639423275964245485824921763073650542747073740960226042318758993491879385948305545419317588086011376194378606840726780308103913144264907544884454682989499161648978898389780987821415560108373921198962465497999114550092304418344466446574181414778474207501186503455452942118442416114991851439424435795618846191266537917491613926888933390166568587932228739269417864719987063700718506746816465414381728204619613920117512575509473373411323196044782752528061318820337617184401673737996911557829273435438111088114421557782224968899310360573034989882301056788255815779503312265078677123185965519277716937443497528132380396380537728448997601634135672922794054859410733500032872880006622708118918965877626052203618496575979893519931416036964609361110361325991513686495576739513061147990442542694236384443731795932549537766847433576802994850743980195571673523148497949927464609545877593222567312973677611447258820832205868312507595718270588996444109166273734288071372695946453764927220241802042455043127287360340353538036242862701440623440375886276850624228693428428436485775977056421718462946870936613967935600992634748150078916590265358134923713559743333121591891872418755005888990477934144413873005231548526491631230599109158447916167239157597452732268600388002300224925746152115687379561148860607138829270680129427169496363902139563060638132241635267366362200038998360601507005034901000577243121279737996710485814645431203832599548059887910540401323579576166994846709670904869538803197309107621739391291477059310089784034416674436481774178152142313784220408842511891184364870149608262344554983569160566266177337104140916695866983859443973095318702127688876886165027545500841845934258103979475999619042053626206154010652371969771801755968803729477593956514746785428722688827263415037232098369960877343127440661218038647076578206981171402809471971079891523938356815506543861442536806999288879787972667927967669328699194966082110020353998955260366595244822818048689972550239095231837823022974884144923369327521652205429512208619605636059872670212897278143654551494273663021569033066039232118032330057606118063285759157215504680490214076984439232357361339222624740074113495672819807327439688757727150786613577828347190775427326036113673592493909813673407226228517561527737404922792842472119259180284142204562568002006107813822167077847388969877932267461679665327358824259848782985733156333864060205775933076879219760157444135610137674280758174042289841509642121242548474900605048011340642143025890928462298763233337553995852913138927244205806827396684478681773061269971335334390116029961661019274142546301177044862791111339085494623620737973809538878606340558080420118560910739794923419034715389930420043891645878884758716362759657255097702743626607416448896562503994517563431440399407034559517698545387589699669708711342447259221798266377923691231352106804844699983642273880912849344505896605146774801468774865978450478600582969199492116209700585897288708218708058630121476043091475538499997245633956973280328679327676883910535657890996237387538130891752953191552430087293671441050933336361393152529294120167528576217206762702619304573029077100310340885457074718655644159873314008974752808729317512826884224579927561293835386546236689878899779508908846330960476875652836000975991475163486992570559223796079064529107618161102633356466053786416958339126896126722121559192549845465406170926462608438475232461796746810141985117951475987773903547489030850641903709026697321746455774083248901713187690566303014954041508574724909297909047998077546856343694688101845697741391131344963828873167739967649123021229333507578515181643294321547339919635442357514085998283303349014004065704421613397480611859663073622786731433026162145011207017740900554492385035362063646273660635391311180711113899792515494564351825173591686590350023569687930351060282726585737229047079417384120176195634860418482583865905508774687657849741294130951238015445681969634132730550206411082540878180696366929717434272262389197020459668926248682516056480302916062037422731560803365833885693776904133888395990104240872943078635316701418225592219774194373215050107170707360777826213873002344949465817218624569864558063183161911865928058617351240362259994654638251141874557279201956040691096757410513158953885145843391887105114954361544875594467592827896775843920697515581543278652966993442375659375663454385163202273079055571302962150855699833798956983472667907045237307970337828269687185130840429426364170808485407500786192602936442142866985152588457561957172204757619954874046069875439239256624162139066970908323881770574670063391063117387685320224243327859820050496623819696233608941310974002706797345916421661974306878868422283468727056181425605079835558863672038085185126428244882360792504385206651269558314333391815442548541178553029297316014450865787876876470137003456722809963862770006064429609068037300405696583927012476663692028310487245536189625681958099431700524506287441368237280320385095665566652924111908552542759791720608968190035989365635979082770193166489697411837781249934622297207797760952056308230997046449498561894333267325274322125572294256119741603972013016904524389689123997319590075830056938869254505854011782382429911363194100637092672743057586903424369440512917226588886910578086070507185176241229017911813816843496610301143787544223621674194225412453397567430475347978138854709632180276441258606117781453429187837399170220549991383588379890021445310848879511393540579063857374340816494989083913037256133992482878925538362921405908002112780312266787085256491042968925538006377576267885145121217420346650682200314336462882790396782450080119996720441850974404940142558798683767148155963692761777325531964723685974710132859201094254741728805389834038239158056170832907292324476624749646080338277037279216118221613518067812146357386785365582352731780571297134866241577497697509631182290799105263709716115874530524415126542199055366819723648726367750055949032977595448165315156983196719236017789560072293504900700785123944147740369964589522673542662685790056032619508927627423727951701421967124687979081361236449483109610556421586459006334913719807231356629956727506756054304348058657798709068558681548285956278074072901974111070904282171361767079467550339320642512136473671831513216427116810538854253453181243964072321787591032301718714094058721510825624281279392466370597228940666240537307298571374296476880686533142926609395874114212502809972583943250044767755606579260354868089010781170255336044146952673442330406721589843584877349226319560304868776813696435003756281134366310658227491828292843867300686750642891598521559718241160427010112316625757586259464245159852909056467636639310807699991197406220792320725393371641179757424874879308062761795056445337708392817562026169404496930511930196237997636807193562038057664655042735110043064087964365838016005856481022526881860971328856516129255072550214227900004462991953727317561851380367004224579456526322416462032978028455073196014715351794550997920446981680185068886606180493153217700752715572583980968638866752142632651636131297540091921331903664982355557580765048688108294855895095343397021502843362776727753454703635837755604936991596954371097251375020238922272033479465411622782791556696155826696191696009203762951339718947742373064527288463673569776242421346612575667947159487975682021658152567501933269220849740134041971523869833260448423125456480327447258583692463707245547441161692415954951162549947677166424302015980696513508305994544932626933036260325748926848178673870530271077247450362144597069594081877449759869555393652344926579195525750490946470804435592112484738747191288268631831893240644792736195056667002303191089454295221926047033061117578002868770378176814732274208946865459710810622095632826287637606911998366320334235708068761735226693640157602812963440989695918787218355391275603297731877702249818235541478705862620690693544243874915433396749507916163863328437572898109297711554643232122349975519010269590245768166460029926244994146206622054791117813824772021122869648095820771491086353203355838638429805854518889505643273443163926443810967522542856552955612312733402804619322595440044826829401664991920352196809918394831941004306091608756029838823819391664640403606773969482126287451485407399344572946804021656501822037086274256629887405522082657700654421135882743261702821973587181511869226740447297158703386164566778374971951490170004895637285491501586614354414430199302457936094878261862581756506511702520699127846622341521736039405133079362438256065237770392327678127916428449868829356271167996830297062074519728611209166968002034250923057726532619010201398126682319963350241936302862586386569880073861548313348517302079852078148123086019626709563357303315046820543390968438667735699427432745332915263386517870544760957867280014014672621111285781928741857706808811252945926489023072157027204330024213373983985830123499004083482248814399551578328406135051194348883838108164698834254050220503051376623920666074413645985053628446241736549209358246091478543240743427274413882723763973767727537787557520585787866482339723340883359745068461029816313318495359032375143668039739622134137305825866824561031696493512535700780498652132353255053419317486220948178697491428886352519799404811815226552930158349718282562040010550107135760785052269258598577514835254602611756222600444769715206862897239012489033376096479411204222141924763774073864353802170439004093240834831790322777662146981894410139863528213641165788492568406866348868480087189808282975568464172823542590842345416221201105104471594892956639841362224739402378122816093160370999583164739467479977261276943473787242480175208896957594077090298389011912137195638735272760789894022382167130035281617548246103280505473723430837687662631763144847819662034317873215208728488703908944128644703775055221523101769968615716425469072932607301025946064253549682928779101798562705159728255891932843523601739899356377061768673836269158817581441982094113425788348448873848799371343791128507166252443005178776924723205744093696214489704520211419051878219261930224758628687516688789565187291037478121111019037778985801456920540717293257972929630571197254219337207969942100823150580896310125714654533575299226049643894887045070517354645967625182759467662990146534993735077368098429747198107444185416802648223172984798644271243931140363674164646034481702698769639841901378917669962365071978176233407866318787681620365855365040664778481495339641744151001407594062711158487065079209403989365765849018093920554875923800017301106939285886039257919857078511113757830434288427920464025854804147864160934977356666862371372214014554501702794047468205507303653114544996517650494269992702657278814730448238163604195513016799746788652356035108383457130787185702657133367673101486143141684827991138901108380967252312924925727914486152087890171063002586751140797695868137005204734445510813050287280592609763992169235199347814649273153518162900803709066160367402324282152168903771792461533631157554785461306813778536040993665931235695706588141411645178128667489873913137836665641497498220076838275424129316025577657920923866833777090773784097029073219534796124265662900931430013910629227065871532843525387332032548817604110402107937494715083925191971684206382043101809679830158927314197454825705639277096464197250822801578063095918614163191581866951492148462708339388331609883332755769676968205409561255542224519790097956428782339030009861153523118647328749445710040522174723192846246276081320865823287965711946256519510530820075176147270376335691768882189150944764375599823131767736520741826407438710502818082002718030931546879943279184742685723001101237248120282355107669341561696259471983211946455430696944907259516816424706470232498128034846444082229599678653762923995769553593265298826098425619839264243015251218011667503683179222268142490771799203290490096781577095270250935714907537213670382237921372622359551397865597387074953834655680013021698984775304669919327230594621119582571531869722790512468617050411083045736686103538521899546409067285464673349322307732390295527502113013788893193662397730082054293632992842513510656327805484744911358346740968951851875455374098375530139730710732997134211726350166304001546754570904311192597837213272594188956866698334139266847054741881938779999119804818596532303892018787998238944884262292432992349994639740407698259764374444308753129309264256636483183221636766863722061697987724250519514253587259697995827572836731766621529453009498266790913671963673043438104273846771997421604961458786905599572712412942401987695010645117916530258685581586258735401527313955683732783423569537033763641242900849612958495058148892029277443485211257550551450521675269489551693339806631258217600797389052114227451121980036007159477165871268663324448927785693439237197840779636466762751345101361621974901528401554803303470913435092515076340442783437761881446359111349724655169564867199474720929514487065986656529451693240477211098571452458805259622227462623940815271719141894779631409122719647675746889542990783451460052989451224734634019941144119556603459279020165222814240480744565668121394914837303475867274465050442458805183534664031817302366537139301892231514529553741003200784999100734700344729779398815636137592221892107271077532779949599983406482534097900813578226031746907670625138437950689781870447420736114576723000152698925013887796761315447033418831275602268579148993954112665040166314007944473369799412074937210787907800684864304141005587510543833632802796026504791630082411181290390570752984674481986336420912559493662124936377033645471414104254642769090168860606979398737268782831170124899525108099623833101838146661454141905960425391573993295864735126129421305146113559216166593504216169403568570814328707083308226909035696351550436583178228509840184229307583794480048683592054662071083110682389003115760013393596534340712145492036991373427042544769348265966541184610719985816206617539999121247224513916699946200878062531208657643833918556833756889995366354194641015859488730339420947690156977923093067551418342702224237703824285740386440635634662388927937686700925363700057944920882682553478304231897816922818955321375195602167662322228605547000862092134237224428348053793567241889013794801436677916435607319739833182578974645838183976838090034653201495777657978081128143130901296625651913050877955207746366249861533360373480189134230150790228840043753540597507717943487045915749511919061618183437542941729218091753963529162637062124300686196722013976339393017169268339201145242533557409208113376199369026832285983190691071839497302568042935622750138489241098060669802210198454688430612650402032048445001169696872733535144295352775841889579681357436609492940459100665786436967197637423274166989495597292392257800687826445046427020644178784459402276756410862999272927213113764060641612455673978030945629384071348755197892989580905062788390513929724636092571264797691798049310867813976557517911787599594799615457185932467375653612249818613778966303782561241850654500197805615344715230115228006271468941964818385242405097625904225457076007281657307509543140979152877983586208479708645411523365724283358831340270345605148866342199210555004042054809815325045323575739028826499193456817874599996659340887784651807715450174780701363285811658330427090878667626099608527041793480648265106987069810204077794330763932241889468468730525642956494366278393754032558563931618362341233009368436724543399500289631549966620655967047211230306442653442060135496489754204952607926947179308920039196478759016370433943800566057654189269620503694075590566460871479721940722108387986134904970779373977255340270350831474461874878493580393777208186475869279417004203629291106555575009558356676940553935553425632941197993254236654700042570093734863589427354698903381672235789178539127842582082824148973267298519693566437349309078418517718507215068092124026341295577205939375932457621990600926861183533282137942452174484485385715312645238833596379916958728326826928819767144144742036918561277362832710334070301536902701680268878868668702491258657469232885692810647972500777655223438716966283518648776226216104775878885634703213533196607280453652986699627170224303340620000279408583791726357706035156568417897310213841992577308930610087272999860785699653145300179192299994364692139137181735387833016115587668766862087543699337206631325643968671396975676194704513896106549108620978079794595422812644867152513605844841266434395698080614746317000370691843760459706501327807337753857446540842448669509964199394030342817691184198254838535602963902625163980253855239392653791380891806540284618462274094459740636628616015093950122637000520068544963247245703313041934718194470198832105730895954097560037343678414568312968510304683158528970124593156195503124606994214152665018993540876536084106366012753707885403779090890523871756843556018343231866178384626572302663071154245803249331026026315521598413665279318138688417190349673329478864626685900299990877150997253806195677753245860782739751353995348293826869090731750618203488118721663741756971646656027390443973958304068625736928142558897502478330692248351808271155227676321907468053522592121553394625390267005801960794060656557910300652498229864599849921036409592120221897015700903117584082925923413840092340232688082716391743566302942661507004757518719402461865551570923875396726409546316928779989186705487024337661701218592592782996735504308685775658434582611117902750830699161946076566877157298735756192896785262656116833051091674556301906730449183204782297705107201654734889362942684087866603766832615606979745709913197675193409366765051523212685164128812962739248661191990724943420708017980525022368703264561616356477954381855643102142594089449092617092712886142371796539281987315566241353273973150940116205346284204096390335401323294455129890342167646139649252564503106156559163969540655315904837042010301054699344443656990085801716326806256650439175466218965083661624032974745150255219220273392672596098733048266480383819007562324631314373937937196840904484746754398433650632985012065878406354912629287306545242558480529072786852629807707570963067347452870003363248037074292851712511745316469835829204219594670262250537114090166932961807327164627740463551524333747930875886062116356853604023709894058330812550250735722758196590760918045142971122376797457569452184044124828989445309707476502340470486133772459148216143098136705717150704746551014133941541914867766550631944958983189567968573085352149555125881475328490281252177879394692153579918338226044381220545334800642877948390068094912052196086361776201326588449921951264237219480371055160963846137314179262437932514588140590263987177095819904915040202675189693418743079935339298072856557709172072660813163491838713918659946564698341259604161277927977939830523655842951696695503299635055967110795862292486437810547834440733620091941639137180445482972068269625097058864189354542322797105523820123234096217134707804845816971555469668428120337224276890314474550264279691613761201761851661820836240470788582931681091535523143816963809781825801669659124332236264962891503791057023178365259239558531332686125813378949622329309217473134489975663048567432429523790828516347887374370612509134614469197229749854966378703373018566973466723680817126404029425564440659457909940079002878644361841415801189249105879813167321708348247823699086973519909223482510032257368948861976726702152888227435820769089780562159173752728514692094628448383549540349173387604687419684584808337273189703605222558347086718790685307554578172679158729852763173261423162144971292756345002182780882832873979499532135846482805605913693194722580218826194734379314826752925654453321650298859020048838104203299787202902412229274752501898870962739899525114127727713387990783641425588325755458233293519148802061705368186360629445547166238968347477870601306447305524429897290209997082081023195846623207249785139006953191414603610072624923218357640999353411480996877745540086271518820822172509764515724905549404018745394756735655298181783605415127288935788860565600294862762810596146685533066910970450413226743107471147934094389528788986444576679246025941570615636195895371673632382523179887787873388773683661026184645436287584440534084509930530157967460541671474767074147401818814840629279339766088878565146935819192165701961502246600901975397111839430024802947548444974317268049404212955322872359803007780245495805570390895374441071191311516769554872229589903125634872322099254172521833444146882371416649445428336590690999693053768774213346303242720806306044069700794107704318689859720498561569768812498582401887475174146085473906192123622426308428846541440257616256184586920475896805006298544714183944734564134892179191289763399439506919352371872978853100932735427622505776474065607186165208398680796001197010658484642328588245286618161864595987094124302031542235097137897973206765201311574434647510015267143903955921238218663734287790922441646790119912948005733919755432627278783484030472986701896681192187429201245249805365632319262181045625818821081596886245197276116420771076277514168300571729475480137253046448816990629088251565114254332579039613714165967128145941658834967486895588368995668052006273677790713641596793253773773574747501656792294030578677132585500451543108806246387544713379368503643647009068779722892527479736646121658414639581481537956094762038464714905506594939939725372588969843973911488356121985260562518806124140208599784113147834837507869219027295106902930078660530359416138391655186298273653706439412290318763765631844924200409228304628587097286414026197311735290762490199333456299514229476957406157685739599235295921797374028220127084253179875806750387049630631669386260557987229793958590797355941665783013550654929367784076287702285097796674796920095422513691918921649714730846811952998571823835947789867619234254849496751611375516339481005512179554657954480857027260011485623797882753769622868115547917671537743049321824987727368361761734125742075931641443386183543733385478405802591132741492479102447476954666125958022184254658940869123601586593501060966122454111936645151568834681326034564974306685033605756868302886304599002074822609553341833110414708232505649829520442275998613912055284436985829709060771535697791135019591227717830323175452858817574326932115503003349147551478666869310864189185267400517993712390407399014030277191471752097682079175197568567007376718994096582787474523190906333977094749036400712156078192141061137366814608936449327068967943802297374796985543405123671720869962547516852522411811625464224605490453373845390449180033312233293484653940959301664093931539060760135701496963826367213545140097315180225871050812207565578578769635199885864175162796019569960775203367599622959112013259086609696028336965181255008175873509437816952319306926964975064220896413318263282566498191188137582976910512127341671663704105407821173804788955118064213143731303586459712148862729267168705347975741789696451698923325773290192005070107319063527048310331679626567737161944407244549618351879677445753240429007956029667978505764739606904820138335953333735105225551238567205339968871852234283422086618222451981152856326290560672012032561378402862247174292126097312671725130599404966835702904876471462906365605884590692186680558172689166954642126484004420684756602002560353318338533600833940445600202124800639778910375406729386917478081354041100746232875873306129296117453111108121521719688546753833312489813554642480614575710171016235247702114081216307984581388661568184618473812681502875208065603235266998540411348661259434900359640866301202826009408061658235992688413394061445551604464247630562786465186320610185312125371475181304309256609066657974247375231298821365588601647927927424261792219692828689959459953400537646390674350537394797456241203100386731340815304565404543147285325083977395273275277690402363768808949957056985534083809395981659216731746026263870884193822425722864524612170778110995090531817030976131536858650928534027629896188613178782636190634418282610752846962069013426924444910899329725486138710941006634059555568028139546126984182386831636534837460263648911956451117060233643825991059564109677952191251837766535562897500953985708217145252856596927577995297317247475126281105831938998744025839557218193314196078110025131521167783761137384619251196822137392986467048220197967790924000760343512814166906282819483014185071907606163398645733270140125915301341069767466437055974035858421844959335311874734980240500211631115369337307982256056736068519434665007009054384900683584426670411129934640124490556760031827148957812756590567806556168945747242436180873627138233246739047251461548816284527045109597927015219632500236141701586380518029110478012399916081115229303539107924909351447963995218472600256780442525997510998393294349968338572710207554130633571851890717908638884930097690271932960647779575670110179209330133543946909569411465140779545506149096772334363297771225843835324757494148131307144599098440938979022790327870444571150495160077627637155197513074770170472343175382551784520681328448311849044728626770231373982098774196368516580262423832688062079045757240504478516272872525357129618498932270918828965653908260836988156268353295558455530125679160395987547404293176360693319156609149950782000628600605932263736120619933309157584185458733297477326208587795279072735496583162409751267200313264358258087924779426129059584877049788894950829798805863677707736017060624075181738499566781902244486501933661674562402035087719636529976413632106466910708852641922119488426531695386632948258362863139040601837426741862195591069155444318596324874099041018097805565401521984781179808916763028510963884198219414030851729689502515721080138764685041269293997109054596310252789062577669705949701652905579636846510868999376817464264443701379074185307301882056628076948835737122036049106494200826727022310030186780475831426785197089706983582101048414145431896463622022738417459174683428656581673908232581251156978977734277213622457612566669132126015278949494477028199089191280845795435280751270755381070394069994133336719165159277435187265769264191028948186882796166515964992687637891016051995295356021727343443287159556789738668207819348287939117961617087996948421914768728650346261894433879004565166630722561978566552927003703577741804829416480209412649285162770450795330824089383906950776081536729352329656700552652434609153528918332265184291984329020043983279497764324828306035430744275615460619750733242527961590713299819590072361423019172318248390611476117960556473652323458963690141253092618233972300275322425248145308544833715422493633937586633191796214386824141407362577606580631443153220696203539457655472560932964283833647612445126886956101035373991910360512736438910481587447907938001007206141902470118503032376642857297545117662825995485305278267920027820364983606664035675770242951994676469120646652878561672262089166333974316624313766629891612789867978280395974807842895611042051824447609268500002271129680917218407370246426437905221982494571050953471569197857408985547661280608043084660838122638917631423065937629487723898565858168593660264111490446684648307772242993524195569572289099322081413415393934927491137809724994582775527237409350042952629944769134926254640887405201662771404348655047038985346176490350619843958667347739873137410375268278677948346991539831263530723420580203740990929104933198362988698454960501946654281655264839813164864226869731981263209211854632118059592816642967049029482628332306243354294861486656074724667494267470324655425541064425736067840878857309608541971029240963564843019516409885095025551356512102257135855090608185296639095530783121275770127896875758849225477153936906983442241126937781651270728053377575713975470418146693271644589182541580956772305488796070207082464495478107425916762650370208526065640623318672497829455608815789755328697241056510509602901719166864484748540269768694138827040432566562529348734709204709127475733269845638079709498972940327970754309940390399022591337058158882701832819144936814853629248908813821501580258005027203844678614663864549219100288042164061326496854496999797590042840706739034355644876003130857246951444661105263419142833699777820755356544843503501173428779760020013699750367173834033679851546804823582121367497369501531168809909982146421994910272611835149267336951960741854732728742902708738241864858080997637914461900738237010055276359159765034671399568872892616963467750573460414185220580411041907047418659211897432280534699831903403267259284191371156284557724047397548114833970080998848807013513847232027475867029351749099860886216461178629823442472080258858456344582714263654301765261068508790800661432073767412613770618944918081020575391464368309500272552311403644550953652345270331410977632375713072006048845004581037173131555060981274479513838417049733710944549480612066210969667496355817871492635048616261207697916910390226681287551381523668381049224247229412786314610411784257878362965021377174226489880379844457523396739574401932869818347148353464714324872187199516029829612998272310850224690992303225040187125146431158306660796989420108441823305529474900824762762977739567331415448077976234580253647646023069570476228484210266833192417700883448344640006402596060428309693841132905935818763396975490167237961064463213765733843953157139183407952412413790024919168776121704912702507099884460261124496975362348067906187560286045406960023688907524247570528475020839886197020635146894487425518587870545243513537634307558442279661192271307104445251242528798338345131564632694704610864640510282861126544976437825198702089214368142471681869365401288791350764807978468160896187908802140968502199434562238656656346093687768136680069950715396789057660802848538808519442967394628389718970645550716635095538526271122277958996465311786961234363024683546455304819375912419564566496044299969337147442406563998247851653695224620027775966609165848251009022920868985639150587669195013074739840847825936328917746850549416965488272525213398643629968895697952117472898574130263855510149514439329998478050989867430267561985376348861431997354658022663155346327343250611522160249748567946571780299828639416525629254813217973023360418402282249614416398471414633460701829835377306466786806393939514032082853809442123733474210048101192226559734768469395129948706992858088901369126873480539428318993589357155524033570776516670236285664460802538496676575277704289314522595454416621174243812059615244653484328938893601639668220064658584996091017207160895956948467024543708350018684213662465102046021989286818147136025759027885139925381540636642365094831849710729898459600100370273371683548924038019903764224782688862060495348506560366752631115652636067264260814201818400297119047373130116710823279179031645371565840677777167810774420062489917708485056248778568118543794197357377506357293303593148370050106869595228615815893051450023081766042819639928812093381910822697174289998513698534676891639337600397818083347375171119962633426008533978464665613546288697600000791182499600136072268431793562289023617546364660561289802896345916115104444411572098197280279998033437567264931127810944507254107346630253969288524205667186707187984205552328281359759999628612197716920550336059918588295653485944780179671982149459135352914580204191598978160800886293719459833906789422036821246626037595200636748196406303355063223121836625848822979413543862579664877845496748917527331030302962265591491860189136983250257604775526618024092806855053833547106238960368302241858218052871576062126800220368481158951192885056722792138055676546668287715217359523303024442706654494070696499544614008417540681827712485032785683566095210575325093948200753241940214946636399161349385357442836021712454315427695601673112394505524757969937732353333547403175166547261235049417461169331470314832405587286511295578664449381191364774263559931844090439753086221226655331963001974491477207191436855047387153301588232056734651072447246429970766457114162987506762847171710176766983758243715744946535190986766649273030916792168725316518826145891917509653199688754374318685988182939651287738208400961940916698859076393314738746813896418687795537127495035602717449899290769985211578512363908662372123106426129785210379321293305765714919190491289958293167415569199365477231210641047291420698470068838493713579202063696014309532629366524469346830790075784641541853373680124274802678580222867088985812834847278015030189200750655632184594603803820299069424977221134968930936420586455409542130754108280409690451742147619672320689616172364944225573953577734598306852929803188133190083087422666166538955071085699637606740661107568993766781713792549852516936182733138151881069463095101033992957095637672049253601652240346178046642812763049371548206081005377246631368213528447181058340909189158651269078971692838533829825259760395460195372966550945116919360474672467304887294144867685554728266541510408908694953580326443766094979530965689691743096767334126001161253195251767391171343696113667386229905439708659337455121251397779666155574123164243126254959322614466889037772900474199541957905810832450330049137041946482583798868450074846290619132188058659572969905965441789783484106379746021041049140689413825600176300055886460195532404764516335024981511001474453430935097844338370774737481798383876995997385392996692081815149856057962132608909191337691967310718734754728152537346701748814515754932647032278004745885806050018499476028227468907447225351708129082466075698694255558243601948742059688162125489246045416161103866788450540936323329088271711378861916693985742199363949569491884198928125706931798093154785871749893703102812498344841649405513183786856325924721355906139842378876699140008061307807317573818304863880334811162899775839487709098705161829053831943861705058033949725381878862118787198087911097385160837338694616674938001143169471936193921345296103098583351488778339569023619990042161143262771629965036937073290302641985984115634089948812920901359018873299537748854364869921948374002429112220268922482846439150890981301003716584114945000647996407050371182549594498873745400649259920451704540048471115863478948123778135936756394337158195927304604488182503207447313993546303099519808616866932619415723182300550927633743220110513536190515472913101418251666029744014979067468504048679278460181794621405297843679684366191447329808267079724926417185134027649963029032268548445539511910062580744301355969878999750659036846545483476709638832676903241361583846177131891541211663086395848187530797571459280638818170338927512583071140842334171581603816923685072886895111331847072378988396089586704341890169915858272814494810854828306372100457523340455838205372258982738486975040118890130488769167344290219630762805672402633207703039022943892457229175300629098323190955003827565030032810844237663173459167539132019642374150228019942676589014388755795830683352502803118549019374434790122637286024371219305398753014427403002971225076410714961762960489275596472849394381074537344797925053606550635443937762810983540979011418116824821172734523457016354206217710136442368068426668486364517717112338233177919605153027581451426778879365605542607640886943640860737095706628975255603342064958250577976353214949042413496445117330144166190152261692435978265578483798007812610629926661193804294158425072406665988820400175997059593586368402962844363613298824897416718654904387176555957001388932630901289025889344388728514278431704674705356032745019210131184613437454139128533596887405723351721976297110876366621181173985478954356707039430096901210796475910505635273778112746207513973969284920512938962145705304963072827679774120735956667766215559453849718238415894655336740268562919870513651229333099952410713924420398006543310097229737669406056719604278255538402924951060749096346514145716106951805626172192775014006466332788438302244225187280610145737115651199161749965054554983961080976782615369506255796423763448744527550538507274491774492643016642304796187352993322428523565421898744430162721800449514984158694397649384752925466397112918846836410638487075904261420436534734794880116044790892186487196148234031464750035433083506239182128299417725226757893652244976202357483838059900315691817215741036852607705408209002554916777168927420137204988965508613223027046129656270796066237508202759746990356853342141453244050767871559524496367572315254672809018067956481445232607326931980183287161247223761772621697671564539025091422610432730449822454638226934794139699603185599525280099411408482570467802100058669038116299231132465845773596388225653756090748233185367240317924842048616147060206088018132247442790150849896221798424168080958738336524135559503962731021495336345369224405211553983811254668735511062170886419720779231488840641111827432186766648677007122552926275039895221337716861081431446436868404451152499675360230507794831231290846315241826140379554357975542538768585336221058058832602472184138771859648507691072619418693674225255826863297610799937598338592983693399546834236770097698113471995674425334482662587148743028549149163222995068855776964758782044333818777401240273988207755217761175140005484220347531447940961215789948822502456925321697347344060212753277195034379745935718602943524064549916908146563151122178200756263073007660174025021630007486927169708259762164743808948600005979849082634969192891043284916596959704070459307498177852394772324596498101012268076014373726375430401523634896504745516398769609089406896509947541929495442947622431381225874890762316080610263050972846230388290209401374923718139525317810329228312684872785396849243049482863260229221844032789341720162272762789501839879686457723434630417733774846340097562981649314999613873258476023056837007268115886893718915009628235830805030017781462976148324528648835624654184519155999727631130203787976560548189656383755667226152001983351670978056960320730013603803629023461834787029913302830312410307983898754369054650490994652034136852744083238230163638858469252358377890661116675059730326711067358157785683806206950071499806381159895877037393999185561044768848814961048701440058401217922921264581825085784789482824523433281971144713662201787502927137474609351732923309884338102890471274581809519163159234377839141017673654227132859847105284420302723665844779750740711470186529270359716121920162851520240306253256046281590009825091544378868542076986675683265540954885204199126864665613538397958632556247099409214370485995689933117465236009224545215682676572559893660733704505441943476928463947778332573936603820217426884530948576721236343948267426953655196661513674058807970781937180038844734781254253427327126858690240844384982098427850775699182207468918539356762794990911895170549301410752634034666504222599999449832102672167446589429216800700939610338457959228478283721519754210539705234330273233592514435992001286987569228471435006793847085402977105089182389135964563366724174953768725803837071085958576719421154112114853647971284593217941666551054646148575512026930765146143938942257850587673699940441619653396108254516072414226846968767663290248775646688843841069610220335676480344550389641196209539170609462540316587253513625647884906038933679405187020570898078116965949121958545337756039952633371401357082857338494277632681833380662289965915332898054943388338121137709634554239886740886096591371931097811681678397645429692509636535118524195983441862122014248545650839286247008918598036597525896478594470310748685622122684394076617509739849588233415041961582435258318603576357439752240781837715243485048262123443119182027285773285397346419473528372012840664037309374548026337186882462006007274679355000365299473304367493258286927683767438615199640007630482684184127623947151926932392414707936249022731996199164686695549178749841136482219580977261037609886765832818065210318258357640758963973828962744341152849996032630792306975016904764701348621674485386689293501154559648852919151662613047327471383667591828176162038663810392152978407416451556312240999483371180034769282856154665839146472439054501197677744540775881532627327253673040327055992815384126339615282187444892114836083053389921296261205362873658060768983500026107003793253199494563350350709872000198644283722182059460313018577171100073672601426504012938833205708929253343777826846062945418009001371826937652520610458657157856019321316147440354286588284066641647454352422612923316919533515813508538806927266911761401650274195454971513596242443428044882536289211956030018000756036102369284581644201321674506336211722112872396615935008155743779441016030829062712705564492498966237041668576411449947387221253622225008356447469340261215047830414071408872407916444668769709109264464175489107282263811270053073533286614244374969994413658275597495414478326421156422983643497791436666221274553696317192751999953978553910470970385663486151000072467289720775418973867626385933657466750277546453076136330872681197453788475670494511950413318179018044157813859889354263204741375488377171081670594228405409656697279895305549272642503460396821947517664599948837638119790176935092940311311476482393967163461533663028367391479715463990261819116926546233687567162780530649985632644962254181450024193796078522985338057793212661572728252465581321187849268711836751085397936230198300060176463157606988235011234527781441539773922652776492311696026141389607773410072409745974504460148101248353182408082789657287229456022721615451655313497153077559302336463332619554582013244874858978774045712152067614879878375036318287600909904819036272794600735866692871310943652433286990476082883468647104017068533235159820988848756255181429197921346548970164177761011412142446733091339568691100495778348734433846376341331743838848767437229990724718349819019605888155289520584514296320727882176456640320870790478933457467860790191830237479010969208947031935498077987005813480620565807701029762914152401083810285131342371951397704045015049346809226691106204765753576467952326484023999623025595999574103650743036834183014563630418188057230378267403920583253044229336653882265883624419763633101272139518431527837097572649331511309537537138295412794222633784170050873554296996506129991431077555898565510874385514666430102111499699144944159441993420779870328439777689634316051555705756969991379273924144213558177975425181496462453538683836942252245631483502818000079604647376435530428575536367881475132484646132766637315705509900025015124632600362092171399579307247023341132444372221652358639805756624768173834555787677657426225896502690650256661902695929875198960946227439246638506126795222900828564561139263475607152173524046855904808051927957970357483092149704462813064465238999103519291243400377269400805746845872673325239938054175568191488867621961828536098669869924644876367604054975180498442558657895886377940545361619301699922778377435630027237212953497170697261224068049380771434566533992044518710449997110668878073490397592193304783794637510244944828133870406506460244154812584764880190224792385694309717436181340392854568987057115464852201191659280160526299163146252212293120086391775884419681707290561720191331527704268075574048567593008709243790202975692129888984801587320555924018056337929499958151722764706024594780594282857868065127909999159739574115577998057698179639714287153712773663116125056546129357895511755487539401202095558081998065997071421606038452923152333314234387148498684843412265383053074447452448655020386317489161304588568551201070535288793332214210962965940542467892186522109993456131780195115392001282628843321676075354924921920870866761163726921225835276795473239964572677110672904048536430717794645579083260513532584667969294894142229808867815287430212146153449832330849437555327808112300341689576925308915499363878761862662428699884252098939978067571892281081902810323552901564024388250165044350468055945452256378253858415066362621144492487098772752157755889892209987345020162181356437675116788531710290207598039699953276084058495305134622801480869230380785521088822930967128061318317699218164405511535972102578235464116333299637652839603622705208287115726595681938811796061164591888814628738606483329029802604454993303094537601531644353171043972421838017615929005244725600938171987095139216001563030952024360566517214851261585128914956738781742554407714043030570026296777705577700166599821689805008724714932452732926360270697226809938740198811094060604318165069807107541334342254393954684416052770236858764372515837548049172746788725500209726863491568710383546410290626380186163052672850561969961454373722809172473475214746614027017481627232694802091037996088506572928544857171859361171976405897452856260610529365131618009505097210806199862327726315965458799447057979749799607070717315881735731440879392290033310298862373046020204237917991928471129190086190458675584867991686632040280331757166711351518863459504861959096542953535243559785796706121841832157112118923546060093462209616571434263688836551924446551373664754770300021872197956714678455463628416587447725656819044835614140309855910070386949635584145557385591661065981826431231407215655142059444580521909307314082230770774493698231780123271970660914712779233811463708829684997200967559026539241230657231835729186418773453221956646727107795525669880959935751113896171150578376877731749757348775719418730972104422579261740897265273700475832865139327045371744360281166170938823270424197510725822686413125454953475673544208315782923753910303497750204198935971720196559390578582752753955920968688146075034908281477025281727174052812099399761263958489753633690811700505419099225501498723407644990641105154472607246269270352186068089824184514719547012577997933503849000167887348816411742572979338960291697666158991600308016883157102215233783498195799773571591663256645664371992025997657562600983085708079811018347080089463849948666606563632037586272770900022376605060972468695443916071356094379042355390562198142364410996160287201756344305976242842304485116139103597179696457570621965637830299856809475143221333132985536934055627005161572597166740292511053014892942873028370707184222178077376361675338924945842071159721154478146000357596578197673831553542876504126194805586366764611493256508809962510353435488092496069502086867211111507991571320909977918155546574378784351872034839964044628354726483142452271479018103948808031165839126147049832428714675330528269280613817134827445487913734375633340985055396533490543422072029072197560369161578814808812923325731555247872937733799648514946466656214723312136198869173839399989152615849627231812195340566965344656204853845606120367961265587742166741769882493541748144994334744925428223406090369531361943702942459687306490684234782500301677587957870442095726883041823394647160365065481726780160803502523918835552243183958257286199833003958231757783291977312983226504346257648881578423066503234241034391518902103890395502775257880339258424580760465923433164163942043161784721641939272413591254124712658364591828815387034344730598296328486518046072133482299080732086976303982452125345003802604061640240561190608026737613159066431068395062400833395929577356146160255173048608891502565400006540261843716098116547389771323008050330076452823558085192883125895280780168884678466898420397331981099758936838342294423068406607073640899893408846505376550658776083235039291666774691652032721211405077557285517553420821448864792891179359396537596342440721340365124387516812870919399900078570267572063676933636343791705955656557350148810027525807302324490388680779932743528264402864969278452607902899723739098361691555146943546047799946439091923341141795728474206700685762628023368430754315889758237069622191978428035391498726946331740418755439725619252101511699701062165292902549390746616125100965540276961947400555361090889044661349662801051884627885263501086902591322194126354366949630241453066774442792325882272619956964949140219296461664398086567760748704736133461756949746893196869751900388516887335397800127983088823238380964427689204623411142345238321499707822059172607809223002108321948972669994526728205817408114716256166213339106257094994073943440297997895919673407811464495454296631579958617075855560912488813240918066844919315582271966571416803736995465437506827081303561977100914410453646040036739417075544243145905680866545864328568219650749103180118861535644854898240036600250110923642202790406682113593587278556920950659225987301945031619094489517777028748737036151772310466526437573413549933111088948398628394393456738906634749384372295466969799406622606580869530434687350061045316148485223619493429757938200772260335346604890725209985658816878397828165346978185380314678394037046572391129928611054956276399398717827660325618706327675550351916227694978228185297012779717722143836841214079857039020377993184693642325605448141309127383083565646797713226367348538677290162552363420030399765588385077888430271855108354477034309732164332763225703130657451659609637933071695774295498921890820308424812196121235599473850092482979566191589391175389211553471364566611775810812018245371020094197052517699926274401700182496299959863641790308656999732375442368137282081410640644509609260524864667925112244939380234965337890405314609918885190131732543607848948542203964644249535403220964279004137142320018749047987089905349516661265310760393486305098580221779037536712529480162828773333397954335682255470618523633323717487604396045526933562481209910864909350705184418065555505959337108599624735628509930067318379472128185729954466985746783025146344744151003764619957012744892267899852378425401269116012525447526392788758205451671198040299399102149324986235833475694029816134727964347059737026308997267496765369146732129944371977486486343863274796059373054388632459905057093058745206582896015802043593914305343597793448071098386360800958088923474529441143511023356819649684799148872222763071089748033964614388190967268858284572901152547438717461386664852923468434719235648146537654853924782791185826161831010088647648160724552713117767512658830855536014400389761764249440522483401771038597031058035245675245362282211451311335737913635499323460167423870300139705643820104280548243962080857525389191735896471292425493191847431593903338583307261697899821502215792467050457623902143454721075550664922544963992338219768206742515794903898660307921355265278613429945586700206778165876010034423294938844176625621891394685063982773172007812181891110203387802678610302412010218957105290439566363204544688786890256073123355521692366293538389199536512336691214568021046964239519328148303782705967080425293351011596219853331344300647989861835837898045923852044472253940066172121584894812963222987157348808544141964257103281354409107648159228159082336189500264660264504140156756055356416896498332688609613168966235741485697148490924922569192855706336181428381536518499027711561449958453939374021657526063574628871350372240621722558993819299866870214702845990875655603032415127772681460105397086259458129066997943101821521809170717284690651781166380723103028599184971075030957372905786271551665962322290930677618793945021767187136543647630982479569101435219776306088815100744504687859516651090973762106014311681577528669217505568262046187916847054071632529982626906159205356800907682371967418607359918578493323027227248784740316629994543644356615447024990731155866772019397287752962983433132625447128623861228396975318121636566619911191850181499780798807983888826427258044713496725148815824299341631075046345278391272318551005362342308870056331551240765880664381217134354735226258533672976949799492155747295215849921423187013714173862540409286454587328508637929606782940782048304951796122996965960510043095668023809815824051602516423006678477625128415496608508298830909703892023813112021988647952263228442541830288263298306681102027815358764635632114737903721963752356883553296001814959792331790575437221262478149628838129852231589806095182373338063131101844697515290365767315986926875639406866238962518228287571580378872227811578477306256433979059934937510636308542543474626987516139834722156319209070934466500095845226759929500594286147054961801862303669858419204723301334154635632405846219236599334713409206276619558859437553102044831879078195118034484020389995006525939250506069253474575526313364560684715628496495544578603551696794413077215472063631624452576298270906575560943809296368758246436990369504357176431096357137692896901070465332198944171767516336531185479993239907332679804716188934421106531288212711637348555687350058001050660456025428595780805992360891716954196896357574595388747720174001282738939464857955959470758906806237447164829088222786412137235350772742357826259624876983909392030255255846164661808097496455603951568404293356571366206253454097438187287368299234406791896228216865491742293728282322979134335109816316733760898539235582784604631777345123891633177789877416604872391925635480267828249902027931597939832205264276029832520685845593598816511627641976972283350190539205302240130145176183600528559898531999842212124016414293753571319037401319372626439333031970595262426436802791932721751787446430917319209899759684765155539071201565411657909293973925437777008417944102462215898720398316623310638033499433586231679943444592828620552088051093591079907951148210045202504703951149241271891415241749676622889638364206987497152454824730047605060963258178958799567860891471429973420745337825568550573114503737182643807582304768763525381146250841723357415621716878004848542778860712071808037353461832324733973924242080688125014693783495744624928400977746124107136344978739487174506562550918113166031739630648230293915776061809468317080151463696663050292250969298686355770757265942658448749117546460074143298086214084874818222383070513554402247849612048595706573412638348827620720630110728934597938777760691082781851969687457282449619492158968610658087034108473832614079816070416082240657360223436069370071034175902099682058641146721405582918713668764154219302676711017287929450761029389889928256148267027034196978540614326030923582190476413429145836625710062570346441462705194095551370344309532761828305968674351874387459884170657529183274025698361540876828849937480252801075072833183387675729685503899615485134608984098554717726398501071902156052409345344044165776272719686797988609458332040447925158988943410390841703631114182869539524399715293793931542439545388325713636674176846366541699938200923691674978358179219285668806748653497374841176592107177912494583756873707628327959299522792044394376601858589105348402048113705599304249929159009812843801181466768791293069994015984877486010274678349669242924633053265450646875496979098605761768514052993914663207785851648265933557387014502490048998605966105791168492815024454573928058302850175918067819328253700626266990714576061863060355566949013651178742561048473664028582859094859503443243312590628575403690266580049059179604996570615370137098957977970933799751504543640624321876230444345783669002586535529231921035741962811541542952131235589459611138055641447299165975979174360132333955391820945520819334312880055902747622103977791487178661044488855082619411658662118048181440169098972994079117400685371581060472767313993371212998405413104315341286336907169202593424041500178422131891421250106930495290084000051603758024304313607383712958373435513963281658932766387935929605294648126190874320181172854285981307146341042420190887132973130999233799838267667357542746580826016666963015684150269041748258233048709625835298711114249151773194496755622038419925966854743603664527460915766926034434825213250472920125538944546872810357070366542561323531464378088299332716033284214457002774727225200902427710629856524072923643277049296385774639736794280976553323337528392482361143168084788238221661755877078691261269443946949778120268985459058746302124266855013740435185358873827368308122495457823628903768202313292436492474467374230728982961087636020371869029769120783200002476708420267116284625809770501816487075873937064723709818447005458274013435173376336989956516957207574910828353285004109428730429837511590136148483214819166660362727315857189434653563547225064009879352664937183345699572063841114975853609228876873697264755123206487387137218072945532706282170252408299428107781698184914088731454396306781839202960675758040645879307224585950354048442108826554960057151946813956193738437934241585138420860374127847100141643976413964862747068586330661442286272369977390068474268830323370717720436370669217588252876380050561340953112723131611254683872580182605593305370606123698653739742791737165754760986919103663731572538102718508985505273477649572381948634063528697987132776310464404467676691231056029997148110807378837590648150543022834184992495902871357690804493550259146013189932415724283513433858196677658623642989090378594819442970495796234190387197835924279820254884438470856493851780917919432034621306791450899179644481323472015204628290112969252782297564260220116471974443258581003843751411024100161232232825114429223507685304235419259264403432899632643184420708733036473784600537332975902258841909901887212223266991303419808564075152967952548195721646991502535208862762722466743419331181231285139193153644650816715036359260657941043164225283546297774450140193323438331012418870605871958474542062599110371608616781316970296375870036014418800289259400911778187197165214587900499777545177246236492585083364812161606890664935433688322315419651302090790045448292097349974389146763677013596864433402660698387965156944662120744870707366294278887439264476864755571062484053080540116119642032241156179365735670040033029658525232957795890574684293792313703149182728679624231315318154954877736964966097558428978640610045346224186949883673127953322960054938027677940268209196131788629280251216283356123623217079406714973112354359413932470989936202750312200664694346123680665851357563918948229869101077327188764660323001915774957301169746424491970020732459339818425295469858740039565771648434179638096282746205306709780020883216429749896958136480804633156003858484962259142049660311674830046839227788359378697941647616240195991919525946457219052311442517707282417294352033628755414829032510890233227484690945327697290885144025337939891967283978615276468288602452912744871293338445107749067626922077743338908387475193265298087435204011643916615411782964234174551058513622570929190730910813652219587389205608165751146724254849561292867213109482099745649012605445392814126121360435835637400806147208457098528253652506616580063970499198910757900226080165178953946345901980117039739959072945493520778112005225330767394861030518906313336819256549261346110282606676292672972653059822172998473411659579838641036170346976866899228822246283156320640922154170786006212913852643173964020400469959045521187573004354260273921097031524420986279542026630058819359238914970855800283232324339439182551828013076471183828210594494134024792227125787129526863712473857739304342549762865589648172085509312940554464694916427380984375592808459694700516563461840133873157850740338480181469561739364705155257720086107996106079107504576616287127423483339548400927576702332839907038396217591329850722446962816133998655147371422478236624468355834660126618456462063819055962027063016856371141506743019168413489075984796510357394154869799055145747820977231738631927861042279453175627900541372682226652308003114669236155398613389467784696391869094866010757560878765272843128472544219646723576838177647728769729280951860275704646375459556632531477533726495255524455106967707814883944577417053249198874229202369968338301401139022331254869551845023704005478705950693918898821892532754776883185559379903334062944642641384280947272507965858038989163423831598155353515355617367254939508151762411933379972151934594971363997533394409987301934917016460392473943898390155350757776290019911865271740252210780882774069946623163619569485671327450871951074072194232734248203535364657199445288537798066011594585529297891403793546722060119496380885138506189488116452838310018862708277332987666964650146269104690816170183380778977179101710473393741114076060888352563842264346869958727436855928725606765035102078686069890400398841379836707653280153342247834190544820380961111970792251979622870904763449945692839220083536588156313136629873857301151963907194963297783296038116146233611595825793952312394919689697269580887525271278903136685417484331526500868112699936282556849669282770916909609058155658403261763506759145099971418907359717679417245685749438045815880521735483575941206827083394605217729908590336649083820980662789446508207704500189012052403388155048853938130808385439219694517013021266148959151694870354547401154706874458914629902996702283563554538671531720415462518747183041824449132183297834676346441119376117970862374832713973450599801711899554471795666323214926326294510756180350620630831223825503182497192867637495010454988617623153773064367048155657442009996116314410294680591246306925939352389735893363749107780213913684480047838178808163754383318008676050041281111823202903641787710186176553492121072832192988689387053003353152871617831242803766490216600455454537203427039363685013682711189257954809396127112042125794050094652152320276574763703420027984556089646424014255479416434439036609902592341543752180020691121351086053352370389100825155678267797779107687194105632325638735585991365122955918899814649916810276897635857876133305943615332175423072677618071172812533939974586606658362354839896967703951607356463425391787653134535742175085585034134942188411502434018369599558313928300813974646028846357222529391681511859881522059980524238466174869516629797131710566459338497210963028015632289357736560030417911037073239543192637934064885592972756875060997198886022214105708463473331240039433429874258167489830876908278788880341158707023823868976597310036664111279719832036651550479189757079203021157116437565640894865585771792897335918735075292194726470376469793942496225249465544079512697771758817806726814312572016968111773516808118813242394234200731714702464558733572331296725704767882524854427828821644542715759298269090484556542135216168791040819812993697771904545196596709481661220432214427449407057814616283315074132815246445167586457997710202333838510328513470145899559796111514191852395704580723969638232997821000574357402324067931366030653551603903514300746980099010572804240456433011782426134007921072195050759227859036184116311521307407177892573107275182078743710979675477031534280194636651838447302675526350442232572318160516269253658656159086997983005880851403186015528214086480167472566266558777776230238134928406487454081532328880680306357935937737584195367388670371163225338591705338700668677765548896221371452334047815084590032464102213317772505185560350743942580750927734759935604933053325185901892982472109442406448291564408369430694411245359335856556794633820381679988822870367198696983850316252360811859057533941882410555696351139497568652022527792281298653105021728840516527253341385041008776880265841490732753828795972594543346752142384903588433870781341294872308179661785789815820407774441961044743996384348288555687409466441436376256178196259467112624383778687653161816651830391992750616422247810473171219167026896703885636912173463487192499739744302757013472801103533588074221227472626747839938354648882097213450586408993899430411889076449374178835056226918197350947940759657834117792278183664861229525098369134456875310853289574775493771218551362926882637477004153231982679192010957851028329411004124500410008569340666345602235664826547024224209534002104476737293767241008152957742115047449473450159344356628143777301777709313441590941747076851653696116728387282425934042726406830979841818029142073380839269885836179285445703735054227251921516667094233296554493372218712721577003546753428808445963043755605246785502349436188705284880441358999728161836789526983173839129922949707887793507222724092478455058191999243531843246139089076568593656286387057968541078284519759583289147168588579034394002284030821734986424817909167204505716447061691491605252542117454361102250266842304211920325376885722262844651914202766429252514966625829189654116374088293251693515174463574173464252847881936575978989519741631918929529025557937775559435922851013482478252635070798468259077620555913324774886734738648738631655291143372559750578716348407699711585854601311437936544887993678337310630454295862545144717160675148015587979580319237243252821581695217686981170440583551997010731545846957304916858669907366358172025191863598141765177160420494669876351072737989978127266679986834194406641320474843382103929971182222098251629247434474634846559513164591540039586536008152938286631582014451498467809350298808454722531531688362615471401073545439353488808997146386716952023785981335832484457855093756857793749136069408410723781314998316716710922471752212831511957543293680722721632174588846204470769769948955905521655755560150503155937383479641076462693462386009696353714177949056472616036823838238550090386835360863173009983871075556010099748249497191980675648736815271845123027316333052324962511021240609340699484381096619564181523434008040396616539936207530151226163614978794584870456967557852824811335248083016641987947077787708378602878300562486132715159669594824459459523614241728443079342191845924929440593089868700382993716103750705999158157328744403192252653054449994990838335380533688197119138846788805932320207257608781951591852273362479480794211479601081185360244803818876746291358184944294719334260746542187574795868782284599337100064829107111240874971467600282900423643014358765869394374128896796141358686217267651952241318215993247117390804404406875804336012170492065053075908155792439692928707766947810411529414563297429714763773194867483003407144533681240642551036689416638228681445399073655576246921715750467955550894831509949722302652951043218650480182990411846839073032528790800050812264927788654960593243138742882387219772918662673521940346631585830858394126256902991685892368336172534279271686024377616190883428124988720502477052461465079067161025600283600248622969796975335460552797980703622641861506897541846389601829903195052309967922369272501573158748418787290139108653920942793038159321720046705736323390606712707299149218026832906521190286501326979144340861210026122136229537716411221281594409599685860219441337961654216686061785709947865006991437739453946943531147504665983407404577671552528324439639125017475491730751908211880262410175824826618630377142835448002053964267908972357260464635653335598763382533124320291985943217108615871761877902030039976909258881768843613247639465310081714152189876990980507895452906489524847830540634172114655858345136025146945784323494765896879738687220595101896759536963161546495872089634204876552502749554608891393018108119169388559062809261976346490886149895215862895148346332202682530622066168591309459413160296430686879204334172233403791237898615734188151037199311017200862635382572898543996404070350024405056447616976876617893030772166702102264716577377687631909713504730573438931028463837686215603001489270550313282158395776349761040036442275259212615700820201772911797077675794503345368740494619762140178667938356203163896478829545807406183743961506370806626473133343177542306535110748119664870404374344961197135243505320594569276168365736186551718591436296346019924952482451202986235398070357184145784055423018444533153045518876096329693298825954795781464843538806286775827096876896112917761698555272043573785717022857280201458078174132139432356525485460249919011202313988727866093714187640173737790658038004539194142800337783189579213763318130562815152309976464157342989460771267036830195904109950707096548343755977637250913580032145000545276547021171152268961478096941123979089190638729095608810388706259868880805683573844137023950393302897863628773925090501086349375255004109883012399931816301300665588569502977247646265227273637021751468022997866861786646161817185536920702275671720384093464939042284540991543306483406232493466778863300045297333959097825684854027898668736170969488911444471403221079526358697699376216897938338322642213144696752337597736195095567854921975765000468533893993167388853331534998891720647342967158429406291030140997828143173076251492187429436353251301316137515280450522892402581981059983474466407512527812980638848692383712915057121460667936065072868337755634533367577582924101820379773263622602247741341267099405569071327037352767880187944325483071218075086236200882417677022938656872555886358456176910263172301073254299897792657716135957665091105856586995019670714549410909560785020081558502204746634821346489692703883989765656074834755491310176352182739412535027273862429241906374055824303250614158611509079109859735442629400373300482438414802457314668061168246316816010150306604818984210403648153951604919922273425153285635967615988411407485806536972420715449174338057460751170686061845935350474381737300457842039399271371936958494464619047655810684605088046961029237333255791706967054993441858994947316733499942523099495818359726445117854852283855397481439664764988632086265756396078448770355287296457356511835849971694452861821067766540485744100828212192756930128156531805054050122690296204822878842522537632727116031388225138919054283780233894775323999208673566714722009371528030680525180065321360919385474567340696404342290286569764962369150577200156219910915818331160722808014170023883118410870644511009240219039403660775951892369315663086407098722473520980082613524008334011633548599863794794030097567893947312228460289566650898733185947801501804370660596014182484739038253597642821261003558074523686891791289670121422527842043817550619459324810222187933240273745005302156106561243060159909182389811347030213549523440352688062794697040067830336493214460585961303460646491484861824288283583041694345402540968343034898683822946812477264126758789223522920242033002840648006911695238636431559040582216746315560422658689179443329972247626567923165429518198731573314328054646078634136668311395593068698608422249512532342861083860120128296603530984101701880634706455431283494224939104555707992590659437092183144624335172484539362941662800585073389182556685449777572525642202620377130721798309996837635268923844262668855145778719979345870639747064361176532757207614181192699806560948409704576952096011895707365299656532273336310426146854613463852583362316854234687791245442146704980259375319008981051752557328230307840834970244577550168274406723625527579638316893856635213699216746126350531381289653131778410211821013595012681504692236788512791227442583471610000497345292508557746649598602687373142089803918819527520144509660732689119141021437240255551258750853193995955723155332483164574869510763006095875775036850457332395952555748104366850618337072248784673301752035967160262808396050180807339752674197789717916964872771971770582770175922788877983527391125003517182704585808487960694177696835067914064192011600384811455749656249405198101681744764115634722034499884969996685126643473979450715589291314047507820099899024199156235536367040007172791194844756372955966628167959879164506209707398145010240939810186975625762986657938633545862282861615430209022840741371333549092101256650174221617547648884100252411239874432303516540610789571535947961745412678579190960911726892267890080620905502387032740234602423247573946499604362503483773039212487329333442305104951505346951951840500701595217993449206762307718098558165420270467101374984656511820933506215092062345983748630966653260761821563349690967951146358364251440123208293233012879172883114114582074261874031762092722976493831694260913206916581050476835540151202493051411445030407720251943494215934317255347067294049889505233142413378850086480174381197548499400000550451184267042980823991303614274656195158192796753023130383899327713819468843644463093375744826065697223347372786463403910263371430962503411485319042335031244980032010472453292629405690687432434044930617314057749398399073119913393493262906856426241402255885208852185906543619773567826830862988254430360067446172979959245355023009684988993110386842713339870518492938175135158178401487420985279553271673555710057922635748377757306256635613901673531691663950538890449566240259348682184482230884604958599218882197738376071078730304575786008103559384446594349543980026517457582195673182257646758992429020738070065303696203170340052315794069726368058434363813374468870815009117793229891535426226762215124912920596927529067217134016938234826888763412384578350983972904201500810289061445611088625964718801704736236737791625951949826275404723068294348846662864143736169541742904566567008302246931498781956736556654147438185457869666996441512058454788942795806112851606114994170451969667744613363799269052041579574618812230943861264635035459175342728909475409774340766259116173414020198120421858234908515931185431846129422966011683393418366578532929668228105672318877090602216514690998513754440639266234324259277224660582935794277500780879051987617073254748043268752267624145167636138074888603524929748493049454221515512398407235685244864826515902294456572600960887960134802324219819199702154617711261605292502028147778778503861825697760967808896655591965023611441079758724755478223747300444850195829644381919520460934634268977437979771377082055111267386228890318720417601165678811073695651067208278598128927480550969893519131308714632001110934293086670210868996892524489438843189497700464946821503522033129606456219488623935803403919534989002126274752863804574680067206422172602538777165010545971052051671121791482632276142738753031425600658147378621153262363246203733289737536973343323331344324211355908806511883887254089480658764210547710810800486274859023404484879155354481637378514586994528448580615678451156835336822922710067942879825689144686160740864623547181873991126519637989159698991138936154867951898676027673527944681410689352055308319231647177960404496460620854577497748244477060514228912562194413910607396422357948999315001735827259484760810301335340865704995611532450073337689274126153094277387082702265699735224356679076424680830993499054337132313005825028122885885178334578391926248650613898183768221397699630224923618103958520855418315295572832546806455871457733773100201160789335576485300406972205027526257349574786769594888945320582103721309706461335390078422816932676926300080867747562890479706209760048877008016386373907135455715286831842460020302806328596179514209915574972187370152972777156488031468513045105770559630426907619586654738797975732785751455679503296871020337331800849544106188471280177260629188316642264510568921274249793530647630541577252942485741342733656407490913523953604060346976612180623046290884207171248199353363145984501735376117538989519769746906721023529570271207755432204763280452541538575659831288200448395371941902836493689307932292561129966040926513542883359633585737471145574040672793837042644862816439662719232107430365010272061813718170397341315930859621633508774400790341291227945288053410493501686646667537069372407003934386293911771421149619733804031184442752823147046567680165856898621170258010380948113225778908405688808953710179861770325702198440420938428456252743205612600644867548616028014333995804461698028128548300817808719473585950143008214753326640153377522202810140138237799672292382817494320920280541608083293666515588735859696204300858420950275357096951748618406825499484719484794311979699441550893833864132332629123233676352110473381260785743687418356870834165612295417633752603433744324237930898423864623820949259479637888933027916051324134990185801422382084093275319915110044883378498991276160176652178357598250467137468805510956973342509388681421943738825579389722830723801464380612543862135938154423345726961752910745832141843091032664969176959891607342268163069390748998925428773268129698822320981491444371622266780951773072481816344022512998922217489796557748474764030877384545818775877021602196804926142129786672905989836615395067766960676760425373465029521205326544149309558015573896540984916302343671262131655270563653311748865277181845389004505053542401984622875231098921583097481800694323223156291038448253799150195508553797389239721399023223347385818170399526519065896049822403262953926412482429505564037064048896564484017042641914220525843192016176203252518852620544303218042928412713615583175454329119055904747883780389978511435728187438877736492751489877566660473717568636170495000451325107664250756886474412665227735845784931036977757342634899757916951814263175569505860022617831737191808323699101268755228833813668963588525427701978900490063402455922440246126183841840920497300183555922842641773782646581103388402827207334989748589156614489860237094328866645097062094732507727217944971357197138323706426159812735498293211590402735343471375511384083930230652867448723091730758092509175454937008088957218433986392420146287062796578658487159087942970423383246024568867574424240425089236821931897716943240748052015054863658109039529033504084682487865294588161324149017091282067790610015979528376557865421627079957152960863142499912203531988884792594687103825262142430898960592924062407947617145293421943710796302831927062019826908620938403822980677400714581951657525395588232133269801156702679758249059515002747587069409204759541942995322942881548047199835008508167897511625474305899878000554198947033708750529678957300090000033594719312291521947865156476213542565631244952121282439509976744229158837868124679713191902479052952955240716060938870868668771056953598696898224009259195008860588211148601098154119565746927839380451408163929574635925597058671535613304726959386369651482443954888806180553481386380717161025788185358099709179937912663887786799286585492786722708092543396232477662868309946924030166043489805636092590925422906561086917606351209713853964313370759937641583939553950690320082726124350380383733459032929262860741314723555476222226595782984582798971893644737290494024511282586457632210889102279429999253115773769965850669021279104750510959509752850375996406375432015891400628241946629666814974671826697607951822661739849315633484562800863641203996340241981866748924600151950180653898139446563481447003131805782338907333147226934422791214903105266428308841513760892266003515115673823778378343526139145570621879484619854839910974781365493439246458561948136587868906185197180935064728846640482568168772795831296082611532205341902414803336616532232287955232230500644272733716138337133288640130138078525290951050358248104796463531224055649144375504393177974877457998148819091441737866767374509582297353664866291191348563786446691787591236176075182060992954913220105321126060874067425619087482498253932398850024080146871169430351251422257398982775399061153320032371786070023171115491655819336833276753629322523713889932769019978761309306596296414859493997660981583408400200096471623474824437195441812367334173772840441030737308930085186020260620791393120032375896647382743482319922484139295581243341060752738995321739544282603672838768815407239026232420866450565663922537967821157760111144263169713950377361993877985773832518091151593075436798789421467858492516140802595707074958563465073289013986328397354198172758042456361581269019327336044361837047800838026739120834087058495262400969472000373148252327301942291371753208788930449401592304339800488097146746599566696879546990061778536474653569993725540099295319729739559755349874097384169421320291964193620282944472338701333503298342413222712371587031701971756396979835973697324505056272399833526906709735866189669842810927397336410827958087265569374202260078037951664558911358232028633002060413366987821058244170626859926233512957851133814222709167201804333060739453941760878323867626088232516227095432871418799674090657468071419644186762884423851739064500905977478859625568760977800858420530711108724919719202088012512632745003234454382693391809913632295363459424836233294038215772452839510630809253919126132521727903351017676145371027528884345174743037448707888006953236023989405265112309625414367881891578544243173636563448154751127927535162274740252477613381544148814585002136805054175330202083084723548728411212801877469168597912084016733680634133905635605905142556865228493287211754291834758705866146214624187409198238561589828593749777956110071566214649329621635005072193227426903000081164942469490263235951444279206776469828427975879022381701505689605874731659379769758813030901697681480545340589773889793631627931791162395924068120602431258490293267766435141376698099947072292407603638161907555037137075948224764175676212434460697926460247826765504762395199876805935005388232423865190480345314690743943557126263414027799907839626745736808386807450147935737080601364613134570381169649877936617419763540366889341613526841430458232434799725315383896079589121056543048801577211363775671352431388011110773108056593651063549438466560217799927281999311083233884052924362254643586969947787772872352559817949326767148959791207315741480388492532801836615919218589417084440402836795103329028190944634247775313000009229228299265640428417243964450356122565377807588533429568847460089729429566332998107549932576957851748819394032850028204428820693924900152562008862493594778683322351917282064909453617538251397271185717892314333285163376424535944915861237355973824220176715927834641910372237315955184171557964256679468443930556095751038328989019991014556321002349261596765559506759189515867367298541958673963800083676440340653569993091159871255666678261220836221301398168693909489882800120073640916847569984689837543814919819233235793285583823507033862591402490579259932496049261837627833365438435216805499513540570560510104797418479385704536690394777294830770781403236931683145584494810785958043512320772268753241678153337964898378024225498392420432393650872079004646597962340415746422662563321131137614475895166024109186519617105009568007482693162538973535584208351428824942337155098488228245364409614416512026893395203465845064692396758921277638199031853337099493623038027479134945435167640993895302275950349918754283086877229442199474425591168323337510605641222087634743089276504127835730501309201029978232379067350286919816101406594406360028103395785665774358695392739049803378801059095130659279220682745812574763125319537557994829695654248987995980270204279318896241885199824023035164272910744255803861260239742923670430013930420734294350090414585930264248001857936574905595597980382222735536695751914594909760523297703130795581473256257610950126916744791802835439700863580548780962720468434526817059321394441787819814234440351283040633403583688540768209180376582752070927686637088160993708846132702440903885461917614195521673494299515662044926010753516830009211726096160681845023340080150027828314463138815052232338378511083872680009961148115397112779553818019609447068653935961172982930773218553423810930716491824791433748733280337410558871266047146463369224058808767595355525654943967452986458667340721477921158908398829989452784092372663673732054688181193093427078375268811061857764461863930052914825336347874778695128595599701894144011532798768188484299212290842499383690486901643982328185311505202746513757192144559860855421848322977407695297321589128817206619500598248684028953862042018680123259576486595410101865350097037978932689184759045806326899195001442464138452904501602541081936325875568808631291853331944455682652599171174293577254049590436353332943730867930468899630322023461519397897942882319824153359967539682406638843900046355046397994794407455914083248156638251372133801636030626028613642834182173532853971209516225444755514918478031964693959441848693752727670226363283113104764706181968301880394827205817858627697707123117079348154457911218113209778996063711162842789790193195195358626692834696074420535943276376746269639175479011799536870128899954323526477496650805551106190630668261901316804360768666146027455504608416332160672596553232773922577119586916937417718277662745825237789986887291028563238198961556604250471333166315192003990019638304688727866767930217348660752941938797491392826093704153415191139306006731621254845180368108076117540390253311900544813066772763898354616438248768283782376817119142903365794556272217945061850579824055403309340827875523623401355426151811605772470415878084834896724397274476570442784296518282468996842224705705461475763496128521664347411723447858367213183069738623359301722202087452103835002217843407385766777882265622876169503489843448541584861656862316115329747989171655855209226981672917430593503060060997324512342528030279912166848655312918431658716091892962890236731759206693110371340477135775988712677867109009058381385461656351874688230398841120337780223279728219588567479590476291869455479267490933112491867957010791601479702850076198022634404493705963128823419366331604206852448521072217563679473147914442497812115792112947099584064383949153850514338865363979030827927151643927360978804727875983314253438941088511974429238704074980955092257004355323923428138718787259947627786909019363626226359808461879899223204838099773926290392800467189940875818522281031590730377912071927612768261159785066458539850587599966647725546606456684146930752448857718263339940035400885984886070668987243748891880567590738998649063439284360394643446992467652003058669795765758329807063145090050677466261879640542190613714139863540916697875049352089304644976680292827423782967863509815183268366823420748935380130637810906154775507070147745692696611856909248023284028410193542765718016541064766881630493841507223085109314986596658630413580246570679678042690024093544913520474296858429115299876516613610343267621586771200993257595714574856053933183630083438013589442508046222690594748318013127607727751460090844774035731172256054162311322302348717896890550540654257750049394283598625799623237041032238708121649596151666947069591094421547047046770249873220631866156632567445852433846802363301508252775379964819541149144684448956082686141560332240983609741184975421313904242102828028593400694117462796032089212861660715168950714065325890266146324687396477909893919350512678222859375716804981177895114764080112944258520384766812098840984845174636506637506009989420972918447392041410803773682383791378180924265547993035100101056282673612855999154045724417055884518493960903871331395477785225837542907027818957361709930592714723063292651336976613060235560003354750109693908925695741842795216925887903245581745086936471097516031004981161332642350924780189444191184910092486419534573923964828516700196107334977426214080496508951126826681224818084365187156317643999596884786294954390979152818319525498338543266217421713511936231431958836053709886428829091312075467565395954208876049531126363587411398904574993625397190737401264422155365531568051743621074831975172602535720923385433170148049772502451542706347465990682501034494783577204397553849046703211248951133134146996197740374664849088077552970527211746385558854587659838110821247653904827632210113429343419819258248832556447784702981181125526259381126420014579301611301697469950559841244430997223677570448972943000089990665584758684779654219904757062865421751630075777798689895150093224886021832609101859756292711370067267085506564434827339605950724780758592797023335745894507816857982326952669092204720299093977383682037636704298778706791840677018161514913102329075554745614260779329615160940876559667984986131332512539671806788110657576811192763340210087946659656652369837671131679893145930957905563184073196627250453051982949554869785952242451008513167095077493284534530951822964450623056000632991498941739379669049297223329139030260575650916900818033990917388884859056210964163904574235820027470190176873565918461764054910779108544684048327950174623461242958605105221843464147768261121358151253511766484705939845659918622032161058938183796668614202568052773950429516087123330489155434966369305602162202898364844843031288487135053145426823069683722969567353255599099166854940394479995561647704229639302873099674335449332206414957608238055267293307353791031859794417399980549695968972998794282809940166803559966089279652920377514376169248444381953105344542421349927322431873475687961162686065178172364763752017398790942274595712316981159074213019225809559874543243604062690241803707009229587581496895364045266132823578391397984681862091091442396388114998127680858616250886992102356256633140181462546712353944161098275608347971270886152219188606873831900669325099597138221181779060250317355284041119364234651332941703706429959226913239979960787024376575397927875230989640565277483130741580052035047823544283267679285907849019967484876336049255207629762255802292505260804245134301620200152657051872454320930064161360420136700325981356438227082392477236586470500567315046080902827349688683381741887498283851705921834745709161256633545700887005985443771949614000889386457880002164477639411134485612273498244388496781152224509347630593979859963390468591505114643945041556037592319577124930641398592467109136368270109026714480260337293247706974364716470313686750966488272230252299312624399331316939796483060383948101347178067270060264323345834211780574731792743382769703758141376412561733440148301313025286293972611328245546071334522650186096567464137945687715501242748785316869003649554357705074496151916147357739033528109611653786794115505591840236615158559201221189900081325364233140744421096989915437575324042843163049848313011466274182458784686178255996881334888997157078408565209676927743193114800851568209903855902803222829963672388960468665697547118209512065587277001169548812751425656155141851992530983419699266146873706095839149720589883709781075208908142884043491416136578632569530629429231582094099835520045327407737611570551338595960813543557270655765362661957290736067541770736169026834481037798204779494437013358830422992398755539756908045563631488330814668931108157201869772837364348218331372739655913636810374071375430381208352884264815082848778613026789534858069569104405361784500637647811945632907210592710343089348377071339762169073810181522411236436757102024000513277092578099547586656331696813160247824745531126221527006170135452861946368461427087891213153145125980786481608598747963801734284605712023055275419343758286806866094019223616070414923177054218965579124514652832600857139873325055408082648682156952700607164821761308339555458905432364990377694642900671456705957765932354095129462795023005956734259730487544025784955656618021176808625932696097623641120207187858406604072490444732881374064534239836884659060162756942636937849895946678944553194144332408304682084520555589327591538280591473605310497414668297407078840544104373908869530815021866556762672131319202172534718964818864884730699416704946466989456079844611911505180923431212617956982584604455218951433031702057555014085130438581732190009983824750056216834534956574693050774475451085790777084668231961425788753006466470371263469251754192564530534115818509602472789381738432403134648092613854374094497804117325679099837899302801611828753322579555715803059166901319415741841667477453105234354149687982203308712610243056840607023767896608058995252804174144316840172142592276911659215594662929281806604509333301568052008091059735754229526220012460495923831864334844441306918546441469840574723612246232147014118331922558574654333089753238467165610337295793572892170529602028195100767269901525697447416348655203781985600274288376641646346212796723979932483621920797288530379153575070613415953935236855384803258333935041509690118278425278852735308740118710661307528528564812938929670885368622510283772869621100380490035000084200829123272805496509998707875630426439530460831596415774635054368097851446074234450711307844707458880334686839040186767506941957735096006786986186454333329235371998028896932299974112587853034444007533778147690020162998068430672914497704760889050745517879495094745093804122994424307495299953124766410908689801191737021039456751484308567933641442444053559998413499607194042893829521985986408863058782176718226507315234113167928617217349906175008228650496991431360233749860207958239403412801695313246434996732238679150432921953572079698784100174486801280783305547865191693977350573119935623848862910150783674474985330708068086147131992570019611880856893335531156834892570344871288778434932985009642906196212583598674968009093166754957265892435695941449256031897898976997010511943657066644759097750753030066572196367126086432793520874373912278896860726422563075185571116991182079712372575502096453959889946432345075751948211979135776734899329178138402193203246619847560861145796970071055956544657060467852559222227761501881807862071193100608947856209382665549713427578309219081128439896668293576215533007219414406442532606518777822331557569685838439222803865297539372282978383043841370452283480784322152963148601995761252205202093326091427445591313441944927787159277803487312929549448438995341064262367827794840304002827994154747734463152364794428059723310723611957860349513424049102945905272896285535902083766879800446778424871803294649744937193897206270278391328803272369239077326520104960236366236202072898160879813016699658895802905682364511651409399736984552588584348403188876587277943270564267674894718458141305265232956126946589577551470918679938183892262975896702390868084746819749273293983233370344587505521666309934009289384023694602241952703517189827083404887807668479289699656963431147029126063277111017829383158689760472116112352730001952832442746560256570410098696695839929896165747551698449021213476945992744898540619547898486934506812285826088000782610171804155131949323736723290973549530253899793063023401079919692454714640741173614782869455201670769806167882869502285859709987908647480581110403632351737486126981380292837066697740821542368138949421345367078456305877108192414418026506535294649326717049799850070283533712216602227262218336767220507682756259348849980920774882617953230043376374976918390575586900397077950359161254424510046304994453927422598709403734237060461710151258885255045532237079660203487486015936509116379904768156968962604638512574659443509283468704613757426137719710366411702838589457418354136460285058792890389226626285199201321133946733630714103988873654049073939181259595681859054010330617860583287861210735729197308422298195045823422372891030520338928869359341025490102406204492567696860293079819947334160898643334839403832223465559044593655721268759080091507267317801649024219821271468645792889191175881583799930959886247858620880290776827217102250646086444140091419117900945811347641520928043364702061771761030518842000823033591072488719807147987101681769283042253458937374033427356824289573706511023764375816607522347279250543075671986306589662680184830707188344870843486423434020668393867172259883944604258259325513644649952944446940007856450717395544078335475681084238933925048682279027417940545360093640150073710261452036248165179912873081025393951145483607803437360906398749540659939372486183756881166709441121607899961336143579249187112022601781808392781640845142079221947960475095459820029947801402799726446327975337928231837739590999139429114912961274969291293626763479213147647351108950952181111462670093096120382699552480548200756488188298134897007107929624104443718800800433359728319120393199506617999903581346124190496962535949619592518464011014860145559577449967761115718636815539113351061185421387034514760916267395244936541179780127969929679628693508196471514414835216033797547910040732885408171471007051694608115747259247477638799629611524942366329686188889065631490604806222557384805157560209543082792780355199990377677565830381139790814110827317091714272658732852825056278628125183567954125332745611873185850755695207721916426307280299794778683464465141778740584448266240239356921446188398215033928816193000693054512572690708315277299223307201116732743118160756271079541491359719533598301163173396707507179621623193993459589070884948100619964029926519149011996557924387933071048542152254457727830740841920851997787294726089089231033425175977486312531458984060865538443144461956973306194731729700582738196283668419344546444278532471961710256875969829970794516362356101930414335857470172918520180535322617639905351771027584219748500152539852726780287295256338360814604126267699318158087186685445790730147977986141125333484756349229621577360965903795036943200478241198652865004991970051675573714757026576348937699062858586079552969803604566939927037939654823275721784925136443238669690875035202651413129590210406246666397740999447552535438940510386141229700682500493077438121880884708060107393273654123793273666352046412709327942984261398674303212306566662054232038278821907744480112659694926372994542394667415882331793797788665197793916445150004111872760272283947036754881928614172024829716167263238147414381472246380061261839535866196713577851610331813618599331629875372872651016039421057613924556091552174981514779175683971413456445008407044219058020011064544151201437747897728460922946301946737110883902498748684856294046927891031256417537614343043414461441120115587715374436935110600810577671836972059586273463418602174602319973934970894543533676445689933293309180353369393221832942631402162695570455396903587979384801265448079598755664166039428758023336285811803053451372503479098276687172089683659725628805989341900784004804222036962623189987989351631404336935280284140598979242889077405451400154617966778071076236415306619427076956475925760262568190259600651243257375151900708904824352439775441175896079890482944370407768219670220808918781924582327356880356968777321217030643315903993977902801444868421250862887171514040604473620461530080938073696128866793750389810536007633115167769661235061204591759474825204763375666032156704128226023908454638074442070543521036776858938020838871957223058471835935905666672518014836817860569935854336573951124459352480315745710779909837911714367488187508176488743904827962610790403482197770284098801403781775770013675651290834591370186904063847526227380390767645761541505201504528997456108740595749613966059143037085306040188084450186940187456396422483102116372396625966106983318974323689710266830502567906541001501168717756976947188527235613819967369751947799443756143248746053551847385558846670880081105458442160156068821442126173020246483689654398370744448661071644629951336192389712788408181528878093923112418878226502530116010590645027999149680606020597886329275223107162752898412873303127173018183011592523589288110390176553628662378431647704750181414320217594889842558147227387525593324958705451897005744651929733880913068763933513912246877781142297448254414126464818128216499974479721785708141167911730767717030030720503755626908799172883235949839255459266746354767712132452689433502757772410725539908763963709227432985400951946373857507652191048575175427439166867758630529307140982399034174780487335319759007926065429042709159292075395572458878322050734604470326855177983264124725767500250266129873253914827064476411023211250283705296810413875763574078362007918207234038855192216567053999219870436371137408581158423427173468720857841047714058581664888201426198215502752760488412176977947483219067074603911603598361066678964440607859561764477425062594011361000967671526499638590603294748073056012974373937221731658945178223225508391346580084276485822342410408060097873661261518940450883240909941566425072751997990658215746893794304283272174394653834309724910927275027964363433268843525803773549095217857925612366103767703319664905543665868708767647836485940906789983653523317619434381568239561068814004612730429798553115561640213525343814239591553111159445403619773353518699966999940692422341387110738808694704376223509044559050320032046091768655494390466273519906839082094729657702640493552234077997790210187968628033804623723445892199473987287387110119128156070477998016964019322046561705111256038032281654986646248929746020214736186493466331183469474718425548001150095658831616703293548374302056773818670416730090937401455363374393253871129148571783178650085013075476793224154799334421839716149372068432075745748711416299681399819168978535098714490067380554304959216892694233681092528776991710841526842646880967296511242931166901085348209450260138280235765558489714636099758572388668898346855869805927680851628891696330040903013641237554899780984027854683101002316725282451161173565952222863177024956339727770530423306226427441296383857121057564397654044656299876983057147762437061822657679747137784879693320647703903058695234590740993289246939845546636794758330329886084900292533323922919292676313066953067851707725873064650711075001355767303806725378962747978126323027879022040778260634396444718513934388746346335834951972639676648389854754102571115682602572062710960415459251828803577389981084437242431089418791381119733776695971327295904244088392825890282969682584155829639163800120301663774490840651819465510656510970679936256266797520396646893503215177765345789380383607063612618372555498399134902465895264461047881757996617892451717568442821810263341350276764729268624560764292384874689378120625309193245435255963206037189154847276413293334425759113012926122664096005684174013286621270768796096069152986871118659404406230948831461825210686057321955751354821644168817084575714498738760249976097461852128786513261346216990301316275929329909912523382069249759505362092792728071098872702228917676133491686421278039248713300444676762551592221792562437638996644909458403411134352380851882051123578657397675634699598222823359869745320163150497625165507124741197343196157530617210977867904791053167960998536884240516904997029149376656939162097332182619865956424556834215897330856553682911365137365370712048908730946383546970425954981917310035148524959944587997340392991488307322451466332197383512756933209894247453419617491002946898035179637252914562984454581857374779959040508056350941411888220425877740012869036372453903608123062974274310333755144988097877469689140346089155048550349655277091328475999143871921400074205126205656457304226209651692230976536684203637732203543952965050229557494335638521197301535063180424066003157261013167902062158088484230419144648585683158249912466522620315631082262457451926461199383583238019532892753014938861572681406216698134719847831780351758214187175743926107703956874053804495470778215986383082472515468472859119812234532071143538682168024235190579674796558579032143482838060621449428865165361643873491494908282386970357397122950634961963964475119719273697266057249324289549474554370280182676161616221523444695468199623346306640324374618463990300365894135207246633206654692710226768807052452676525051026327013960251771689124637249242938954479038555865148272013127780293101699727057571837386893683291157813228648053322089418103349970849780378862622667878892367637377488152858742942464807848361983762744159097938162279300202405854634459089116587435020774962036433109671841465335635496631817039259256475914407004504475613760646949568604281861334253200173949778648530725945507531340635496288156858086242300132462260331439289080225123630344302334750249806935935045313167674253677107348000709256967054148766453668296170274158392674254183353442728422503113560601557604043697915368384851387799017492745770176804521525463650143780067099388863464290602089461445513464400307335880085879781369732029037460513274363143908874695609894833654909346037951042574310857167718839098732492329928779747344046138948733016005522334318540365155184460966725677838748918280542976732461351085997800509015598016379325985243244792742144357162541453249723281349369846597500426166200183564582397532891349955676883950952730199956079405694769203754866185149360639244636826892907039593987365945544602762734114115203533682801034454800258953827137465531716640451216052393910553439193959841997613760196779057355736235024051335234544786883604782207834834801904110692593552024173411967788956417929647245930603342135434548873943399227460881894801255035028520159089837058054217453863568228968913462583567930638637475443384757640354568393961546168131330431741298770969697888540217191618387087800853486365136317337633203045037012868792166769169358946101131837977653877891932793451527682420152801286341425700326746427021894060368278858966424244922977954002975382049082177736930902567797868206415002360430092430886151289055536649385485340818817505592176845153148704244349009040621668795850694289118455957855931199886744444856007513263850056670111321628247982528708582355730327802434506960713191412916780401603800596139389473344952600098995335913237540217994457726122640640216471700692761157400975547464957794489879752293250432025545808838109192261311068894341988850434078281677409275632110181342688676761612299814972529461606008276427835115643074736649147621887975868727701468454834850476704936923161582924985042379444293537383625118677700036025269676230068048746205375887771141740181815897268974110195550796161946255422804069826241536745303296690461295970770719710771696488619799875500616093696510880545376986491878680759346154267591559411599237086570566505164283507828371017240024676481934550840160446960243639661847590191442951992473175533195335635585684991168515437007953791657677097587119254274691044430834657414457160085777952351414846579645228686110017966899161496067808711417449278433521765604282097167396010212634466422878401261200506342969005686721968265163613000537355467716202325667897341731958799374708760946363786162060784661407877169736114535370883307223643006646731021824640877219454349925763669306299975713253012719665245647922391271474281222937035385289649909853144224874799554193069730353958813148137334935356314094556886238261714148324921565041281405571527323460500931011970532004489870641194500083036914231148653543328418566926708914970100603808135281291227360530881246058153884646935491307276551097331377669497657293995725578243129851514772907197154785026441829911180180131476291421828138043633671480880538423566481570628533451220470423298707560928970043449810197652807494972548763940786920842854622442891251430063416489265293415176516989002355766665852692636095626821076527089472784103182069068986898217154953975621695280596175075530712847560636841690988134164196547749996155173274021054947576558518500397417308025373863866462422632055123708188657415464642517836051648584877243434220502935465981341949231632204343408838956418046947088671943119611714949152264437828851218480972205464467417026163827513408544050122619273501088264757869588522943967905263042032049074761054938783147496314112203770510462440595293195806171639337213459472332146637079748032138425094476956659073903428407064660833829130274479656805068501608554070975735451481228877571643484021975732201578590776044861580185916935348944075000572705308648656542797614052939533353244164993753251592092577381790395189125690263878542968535211177201727779410905705549634635384327425675366761074900296061102422650724389177474356638689969401177076829984752419409364513544361615630551365742747006005884894067859390475526592746591195576532529011445775367494704844348529510634602679457007797097620912853013047713367541820019248046122399591687556793573342969275597558334882734464391741529614809963329516954663427195188440977148032587937967343895721474318804552738986990227847188907393929198541144383439106611681666196989925022093356784169448440108309243284521750569397466005360782771937939867468761440699260169588716672138317014509617965316194845349747066302737683303069750957113210352745886478542185168083004074732257458890109204615857106851772066661300055382454999113344747265876843989009876518888518982580010321571295732035700758550368736576913714717747096350198453425504160915337806950017572531080247646627752341210966549171523319603439843356216126267318935688047680817649264970169062345226841143808210584456305128278668815282800319148781148263731919940358788061769650381526902152189855529853942646761176770665084660000830405823508443573937770828464475886687653286473932800855989938329275088311548566121107585338410886232119484970510639212378250232504159981069107175508493110141728495948684360334271555668439855372279110598891201820874754523740912166885522560563722191707547640180191409970785668912985402679107228832176467633610408155833645189366111374807282689874813676628988212637319409944731382599230873748127930431525183432382807544618980697214237742573054331684222950417423954556915576343123193394619530405620126321782068661583618638089553434755395318888852086737511998919367055782240801457390196621772815119807467001551745459239759315905947098058520521141106961436342044506947001533016228459792816040425588397177703722483041165903360174833240360121650820659385900804645513622586213926424365971977382133730364786708853687536980262773124195104723707394717991485086290021404798690704587189286164709873964244644849694314530045625642005694589715981119599790561469280856636257652037289864641907993089852686936244425697735438344596703181474927899881115780493577154517404931222356475917477076778854594027768865620721124346828507036247968314171978016228314283035164519852921796816511301898288764594736493241685325070491422224271489491721899761699695911047167329294001859298508846723272148897665285596079823719705904210669564065399890383987823054197472126344407834675120528167370425605390970978074885705444625446700936047587396718678168290768577164762219074974757581244584144320222860765049052443769635298143258335005419207447552353482244182286191729200722084813486291918627527917967139823157607493544398881875425548164354325043350718516357203370017147426814593868764155283333624276773947436969452938168255706176614528129601675644400879267305540473246902199241953691898889661144717802590855644912820588339960358363416719673714268008754065222388351686362348465016628861892771002938130598788591061571864492743959022041950659354353355323947241353259802835737776338483044490373554825265612077053715154642925247490083145691729548005220968221682514531246506986655962105785112438562059823978360255004594300382402716188473172936731296293331795860258234945499607772863952661581363858525808648912833596385749863033250445236100677511863508626840527751282307806610873151625302998384520117008051544040094500524242880438599222767028025686507930294605140782159941894306369162770490720053799409042127765505441918862177049209747671060814811482994410831191816377896571061016414317650187678507112125893507383211094006603788186351657644526094930530059786466349120806085731658461288584199214943442019389110041499756722425100012340176236955336504070305412995209694992580052189527255233768122395306142741034274255261381614586064670570388534558900956890491529956299771551805494811464034650454671238828934083878465485411920257040216335699899051172943337512896132702439113157406436694092238692143885175027256125739224401054632817086919949350614485120722723040191414718575657352507510016476169149944246515621762368712632697412741317943658365128688494280126476103065549553719005420572353747198683954143199964290842544184609117828963816095947032352428984541704379564064068833562632423570518843319040740343615652536537038970447300360425256276465585715358051372945485611813806396985972151042919869171718391433122424941907638335571546086150595150964296737869216139722528610186790557402720616150479514493983005205242479183195427280160960376387683048710787655896595809112919296055922821512120390177010779432897810026599497408536613694425834978618598622039257123288816291031588486729048116981260047435287979256721227107958508683631257574081436335305455198774192202552229034401609884387641823145285144317035922094285994174865514631073019596246379415057852560529134361032623443019503816955090024760966248764304832783048686156123090041897876651682846358849006466774129739171173147877863239501788642106742573341848822886762100268545973175304720176236892070847089803511299831894563032180903326066294450305316660024836960957137226736887510927780408554721202078487303851873816635901667132077125119548331112837624864574345171910054504786919213942235331210891995127267638619512238897436324567907993913733060343355044884217395086078325912696218176544095677303975765894000103035415821064846047907285456222082210115630542701405139330185202877530203855874199514513114355409940268732153805320359133595643854978292292024907172667879584052994701493208589140848990359261149924150879798209353174952346670551699368178921999972294796247688107856274598241017485516149258105375892531463370856644849801976657758274314322791279461973428623780469755291738756828738801817020956616541643745064526838807375516157203838699626892093393026760572914654322420095803108194054964662224432125402895965687351542685878516126813896707828747666446430663702866440709374402905327146690337779198959455591307619823249017024256273724100591386261398264697568967740596845227117146607908142525795082148775151075094643483996935230944579841129178839710549680035154743890369970542773871529218974945911328872752086550367707824566080693807089008149429895501437959757646773937463316336862791466039668441206131314877334398161423464290508396503105644328161588406223114472641196022838510858641295856701813718314507166814265490039428170307449571474581611685963561785698846238616368075294845635884829956804562440336848217794304566274385810040013865220132977125269418751125308159916778064824308255049608700999758223487656154463059093151034580500933408473828382090605098429875537764540552167201883103490579383244689922355972005480906314991953745004029265414869149328476344403504825825860109665537330133601741600127566145530882954951334387037907524713957931147002586604511811198755458937544139197397341914365839395726299176114394338049365089727030995721660726565113123830680231422474084530489056186914942581527829270171033536389356857991945892280650877584725041587319606696589374730023282117308612796526063175013979773255962815028398705549531244958433759040097746134626437422685230810533937657296097804590843256370404029532405222294902892430083199769290199353723899793868273689714300012545393240594726506148950102475239833532976020583765347091837383282235817454099174931462377442190486940409173298195895593155940341635209523051329980176535873381555979408832734812521951018336386992397471358022056787997702118471091553329855175067416425943913647814192153296243063727791014920682475927815001274883131155120497719688042271273234286062254625312052077158292747693069194657135973743475899056780365851672227610565354047421591013435185840107943334177662055074039544040145581955644820623573609044518659318737883678663900411525707166800021786003315490565863358713876857341256104470337146846685122348936691851982207691251683280834351118656274375364597923254713876563900998663267787870341600390572391606950742200981037067739658274531783315102128753875170662613013759966775530956459530390519280842627607872968516671758129903031771815494251387793718917968128423660881683275748645906821546131050112249286049319999065360263290899223246386710215806729558587087198650173854003921035158973247287887708673185347734612308801708400900718821838462345399912659063347187870460125315474195741363721348607120202355636936063241879823146722031739665647051139232378882621680381477966332405602044827914248898376716812221017756580331409857481568310223644182428798704703289249743672240737095036270592870199475048375662683070142031857170446526623832003866657903324931145474842034648768819997239726544574924867049846676010625886760914556799832871418926081052098245813590793107685868747237214138796375558806664414361124068804616369539333405814765253641754671314040621488392928791973716352657962215625745970428888646994168055371516625720874939463874258656964147183796970996373186701153758442488402599775609350849976881730964320911439265163423449743769913109499658183192260055652301900860153997986386184780161403145406484073872832615762198982585569467046404324339876828898702693809965557958631561385949109051818186025387912766990139324531616341924768024482315047175591417630956649395525611977048978132749733095257828103055280680011313325385236369135138077235557861610617019514597847212402401692789921929694695194431950281266078550150253767890032205595051671102518185041180693280420559869388770993277951097600610849996131006859927345925699439982733929274062683507585067654315425571716748931794008064594876040195039367082213959189105589698558435768400329773241411184457509212064313233222205678999240892473567451934476967281821930945302371087524057352712903015983835677145232521432829352576084078643872416466280504484914458927558199082673434234905195864413278804776990362549721663678208756824940035744419297761187890456125906186360584087875743896339211769228757115507508292488250709900142639700555925906294325721441512276046391440741155000037467841554761534032442010016403840791924949395651591146538964993434873608085852872179062417654551228564973602395822932933681412724437861736229601401076005437890040472211701721019525873725406477424829275145372142691321404929438970265667443945727919893081662295078493613020515456968298536001742680181357465604521434738355238073392512778637409766065197641823378885901261054472931544796467661598768808380800416952889462733499084455939668611221140369997147382717378604186389603327047819408753366753766983699625591569671636632591515434425732427858035097287851185486956068742061634052383148291040852197005297212958835650941709398316376062724510563885221014879343209339176168988144392290342457930734693035237129203462996919007590296220640870040700400612421782127034172553216624456905213372957327502927460738202900813787521821965299762962753585370399675490783636833420522895583860590712342281938245905338280440936552560096932031110918713411736395165070128587202489998469786957040005361713942595856444521411929921558884459191972756275470267336965958843793609602617827251357394066361797179208372837079534679409025957863597541977935161568114840675723749692801092692318792340527426149339535650636397656061734211390660623993331793755266049529162953013815243511726142942826304270618551248327998177868166449061249602933047096230105794853734946191038523631222440166988538564924425125881181362089480095188168341524731785789708909614861810870299613290985370255695854822423121352048706259721819670375370978874929855395393998239599812302421945816876174493239773426692107443745656750241023027885048511088809668717609652503912853974372103097197797546854305165873322190213770971003595507560826841778365991960024074564452399788912220357939140437496439748194742842948397399500543997400294506824066657188227188008796245820920689819663635973733727349096448702475708675761556977520667398883619294048656587268702579245427452296498641864442011382941018785703005732286480522822421862748889459279877341549278175580530717854759348167521910254150558477203151141066919728941489810254734567280365884118555497540146674328633367843303147279523828549651068935473078554095585675986819023039036614726241748898650770001390188803978430178187407409525038748336062444137718215959272567851193746804199441195353988134592071900448095337509976447610453928959094453373254560196195817614836327993052024412177339704537701326685129215277096379875862551221397848319830437012206895419435906837952571157442117148311387400595913370476370067541661946416533776220686878795088097020348998358670177994745626462265743684427268513564382442622505561771347042757769210860879947028845936552398065876189419186375404849410782968009192583155309781260790413820195123387220467298979590933608964399952091979258326877044423372088542111207010738003296112207418837447862156255011067479293413921690204274165112180811379582601313278594352711208898461729930952690516334474227466509611363298415405428787971910141768059480515577421828168324384580987768476128540372394195841968651282332318331832682557594123805294756473961149926901853418030280398324298773262044202809054147501196028184419313169771367552417614155073661947421025739091313866878524618608376784780629750565609316939411796944467413410293194073840910732574511292115606703102488216872490703131858989866349428627389751707588295871110460228772271579097456958120258630147102384433311396217271446129804956356807066402461977452823167049966847934418278739598042693047457291970750802284665222709008353606470965831095089700237358091871823606840502252135816404101752359698361286887321038536058989476019436368544532155900091241619353186399184103693480977474821045509593472245742348806624846522189292011997373914697102685493591302293899099357007278992826145604463937268405844716997494019802820623957843672686855318387062042800810138653437791523560103825662645381081627607879459541285439027912664586516190758566474406853830890730408618697778413090138516242590861732631271310131780198022411564786760513103967292064885793945425833014011410629865008830921649746022622801256713788730087587211125629626164563880855729432486871098785949552445300467470753460467780092730472024499804413306452954975285341114163266233570165219504886878768747848576745346477348198623082037708937068065906599882920356709500513941038681300609073788161685202854772766471364874519577961283243600139711000236504515346071483707299278992985352814552073099581171350568858695070003932984665912160799366828129363953599316142458063484762456866826423352483416914133247118085695622045763178822694343038497208812228770781471155073552487827313489521271863162467883471702725297628134561451102235909765731427798640352817965318013876568161663911431434960682621745523507845520279977580242774862406760578277886385554298527321433092700211199191339554868923191701209578914560218956211431312221400210308824406950347880361402111877037687177556097562568724000493848509627990429829589869933521282482767728229220312572683013006678216370634349272595393556039707972838689212301293624104856275993051882801176394414546271942436313752083564047297803160756908740728859211343542225688069537558868756227340460627610424025941062499045377122710816867154990304439167179412269102446002370592679792960618686636799089303230836094681856796225183202206699684446008069432518436202667807379221160904745684018389347464608633521530325557259395096468812563315863985123159925484922376482342285227536855435075027712752779291805634072487689984248942229009476694061792792006476990631711803412163835673136815335324257375865390312897580532322652861592884580738648301809982684845132167829097503542944675056338569256385517985709510224391156670819404357101905998949130913267724419634041557580491652461265714862329584447056150141260316245506154544333730250554009027126414539522875737397584389409478367452543577827415996895974950848897692504522420429857456727851463602027066671234613747537112025396001746315076194962932494155735463889223378035423136194844234509085855863384881523277408865231351587997292616788551943750753294966688596824064360379550389019297701763466159434943388810009414835592074843926279466909006229678204858180738355746418336577533800731563831688309312197297804729686232614754370874065364501742613197436222558723538382338438565705321348964940650918173543220532703588602480454596397419216579143631003956365477153169813865670595445713232080913410617976965640812987211848063629741463098074743492023092990230189507640903137123898087017421570517130119237454870666546919497456881762535742535791347826035999459823877952076026823983661711387368588712971980242968002273608571769982246623137860551178186259696602650017363631396820147663548165229070095445484150568397988129779502244673395602447910581088123481874806895405370632639496703806284079869842168258940622466346253011102969434471346654882368855049805956360914183839556688452853681420148953321319095900701911966260141186556124955069547118593329512822719788892562604725088156534597525478017560207679751026460595919671084918057680743070661002757438583619431831649646543735289315622776941843397896046869647444332039260000558375412246530797574577562965588886014368713978945500787459638555357643490700089770673714503302162298696356953323760814902194523616877839921633726271054161015172377940297445566055827496909308396450420867172985840930180837785176638051036318648298327469758352641156171641589602122260086019105984941142243629133052826995032115178528076561049170170538999577538069481831362812108648917674547185917607359336874553821944212300909117167368922848526122730110746519804781273937052076682909240109545580004941317360211273323094014177628958143418158206973436419077649416308923900106781297798995994603500462840581806257901047216130897798128433511244511126027830565856666651681348729235735958057221807894444807646348950428145742656462491761343603683835609266771763065350214886842489627856461667670419049071976381438828564461308347614339801779473773744360109039011198146733085366365718463069676693283862711308630978931497613278888233398630475293471847166946047934710853020798654087097301787560223658895591345023789387889326113008904891756570889853691829780106295092632894745361243929313494347828577171795308738507819542210428341589126826038547884163392100914203092475351790244971981226646841709930117336756146533074639803007246185335935591253557300005253383573689618902095398096687395949300114887313546664996970618591114942347914844725741422405690267247560636476707739490462894567485147225166180356427714880033278391126570752740950764777763951310220824036309888529887558100632678558808511910041579952422750600023271298976514436522749674638925772760027849095066312238034029389598582669377108771454780192742255004873706265240254494717487287346892937074539912740985262524396452739441399981047467352827141699454623105053124272055751704376635677814142230985189821704688819891513175352619318677967648041588468468465054488303977657083315698172281305860462738389717927492799104236958628545261716879044760242885150762479470198882800390884844495945827253067729724532118604907041612010848069812299810944669525637202896736668708750231678469496522278729721583705544247597626211989146498080040018677975506712669657331484858796667841258346653948964134972390773614082825358114555121864172448861956938608401844784909972563518184805237389586421054009376257930488997853892463856099160871117857799817361020118342882642373357301934956717292213462399963589792902937003093903001731466438014984253054578653719554273668343397328002003056173371865469243008484056956160502077045992310425561564350569804751396626739633804575939862770585357940745789389664495853846027826852564898942484556152338350466399550892007986837554191818806171379072161389369357380510265786954249538000387966323842692128536567391048375113657216629201351257733309205332607570564751587946541625632187328516061470355391170571767457449914876222259922716062321624058404116079890203790522648482906881821362231961536147360004403488111243210884942884657538016223931872777834900257722060572250107520784522000770721632367266475066499627793018441529251530978766944592756576818316592461337453847962999830677809679391965130479424254854097009099705871677674819530209869520601725339334305114786266979741532823349180784206452527347570642779111592173586019712489150696071151046220821349126921003136116655619865468049728345418954245485672410071599633422646176014137427155830539617760011402521478675125518716311355000275885306284336552422401967125555597122230604536714849583386166541032533428736109258324226571259924856482931132472396550985465204090415290613328073182022342405950672549138342993780969474340192925926226527341918751043941277179863526705783802080311540751841209610352208324944410727014096085954283615494644613695202990589986047531926366400698908881640383992487823981555055258842884928835015515482317877954179239494993016085203713427664120379187748430552357493758163156736536551127576137257694640260813615984325089028203640063234240226536844840555425300977964943673204280544919824127701581035208701525899983372799387700045204997541058104794648071654115538129526125832408086022774526468765692004984666382162955036131144989942230243962289801994708717828821300377072806661933884393132331101139774046925417714543872176073201626414094272816776151743031990951427166455242593753408096698968835118367781930715584964988561293152178053488160581378276798383273016222505531984423265855981318077805174732996758987110077567037807356785357938678843707306926474105979405285464876682146769683857384871426099755728947602756887769594569111542176446856950575653794436620244377111392953336993118559125072833898897650013717616983264738000815831124262847433563305417766992607671882499565017257785818716631606341147379422752977449622787889803464687070290665437356068533897027876767589604014313453016591524326599277596505711571077523989433112738377709715848872890927964686113651107805307872153520292692338315258104044827272952231818850702288028883393623166603048106395539169440729494369540427955178566480282144906304642275406454384838153097779079809015295590842951765666662439161439057384221171796970092356846680325391225981900010478187852443405965717309122995730552899378794580044075980054918134259066164812571707668548528626385261026511725837288589602400626241501990331099748773714826428246146847171640426438399078469699159443790567637479158254102019485430821571327868291321855275533948336109799570395837151886941502465320420376693355898517139798814257082815195049958322355803371384737375496439140977684441068137795013740519579527670695596656960126091046121127747433614529328791064004912138676050247755040359302376508763694866312386313813372297860471235650297120155641625700219395175418271562288507371614410944126038922366163133190194562222601652736561281489755364489389019850387455607291384757093036214145535579535764195326494551475722098964513564481051201759016978862085248886946630777685214616255066188479615762333209490967726657753553761122407503236558813206533073328697280081798359155676768970403949483140369281989492036227414975869182071876307227846655816301879120915372738525052544590618464112969425218715061265002976191253616443734383443147107419940099067604111922802783118138550572058652664502470147978231999715007226974618862747449518501086188808191469223357542506666976728508591331088702991289243095629022873498843095033017907235912481240615380835743267288101057333581786569520448338126169749108028492755484716482000216807158669108841637596870867003067713719172092052399931467822042310251573705396239197800338959822509326869753345577009714384797873715960277791732397645684411864824699394788896665663633576330330875214948601077541940125719162671574614439120214088801584423992301719980973153583604244143080424330706601040291479303800774112629706898402452779510081995914990623674880676882419343849258772443356061315339617019930506867547635774106346909518630716897115896114040701480652350133686637974561892883253435386442449432908041905718410291743808871591266372701416707913323724720793472452696824338733369924186496930003391448928068177824811479659822224748667438057363451192152763082771906641827336241329122115511242329711716635937193716797562138865995413961667918521339478033659373963078085305207668759115810297659262535389561739650984510781334974541851627918445228260818783009900388469182132097890506228187725127817909913301987500861112410342647163373798071873140981784766960566482573477606038864346877594007982078196960672586602953519968013687691076192533748671486331989234025260473750595878412597290813351035599103510856964416891451242750997618309248251972250234996658082656726754881477430220282826225693275950534284523667824986896302820064620016609054195175014007519982236114991065668238787833937518458528211093813622193998618800267692628039164552718560624450358416533350621054793162141721635270406313322655390288289996851341394026061048630996192877933742836539297185487428008651345602518294009991380946305038480660591554596588702844144466607956484217275832041948198322364143674338980956662857630870520874190991908406089968273830090154425343087701571857212641376515350868885034540180470322563684478500055037628280863844122194306064245148828379822319810476405018358768824795548791727568242188202089427993523045038209860079722284692275276874924218816547938913798840538972632491196991250381601858355250277878359901889920747196059637457092061657995242211232263893329594115770613403956820678216227237591645017945816485829251710518631435895776977350957322768098895905615668462753037780170630900790126179460421567499488713507661495985426496218449892482101152119268110208401871635376704816050895106620749077352439872344356478416610551590201372113256949044399827865493837502496422370259780894122905561257130866342946828067046009460670219399254400788830105506981774378967392524248483176187873162485264728619102689484128765878933111748999633111667428031541032058367997969943666128402384829168177879396539574820172495860957023664021289744509610810445465008943828106064643701622235169024400811064520301686466096495593910862004359658212054014373279732404181136751672412844032084262239129277300189148819524481973005909270932152858102819927144791357216055613646356937086726458078259916287020127556678698284469878707916675884070045479307159503261934574133041028903945885219487907676435872096417976239086473527588811493681677519337934875639504575846227848644774734924571843058074911741694809760953175042169477379056728340615446506059119327685693216102246851662788593100807745802452961031481675213440853849990899631083758449922165039721099366679885674843600808605271905154280068498498321250679047498587844917614387197942086538897223990431392710286784374745779501944146082093872844148145717988215016149883053399046160974339627836771499644585141709023522370748627213220439738507837293740937710765224710258231065151750555486572791810544489582499310921928902627565734922014210364945442677954816055204790651141574153495859914503209625974903194510216072539107761946679590175106280798855761361678967618433754672291043477323720876470067934137625143355332503294004910595217908662792873026671085716904029674775075938140765864981133010949891391718454931987841348098554108995244881724479645770924288666978850344977533402326409334464144444720317473010769719656868362285927449245512335728257425567809592674350583590191072140404463657131686286436560051170631829403343837506173599547507251735856698234343814150923027640586577414425153289249209798230367425979231994926019428369060254621851973872582312024670986445805253580205033221292751965838390652217362254703860323187191089040430750169038562651440374158824462407244449333307599988667135742389891757413907784680677056023413333407898379929685583163253534181603190114021642659047651941792102361684997756320322715343433184178757808751383307565479217909911431047098841962672161578305149435291763264684924723463764859468589302824127912387796987730110335258290551730741690854130644736660791024000729430816128534947692968073060544639119555231020490667374850510054607451638237751953467761038341224310875246472954648128249338286048027005764566940415236154346482850113743342671918957303349170062751547652662926236636414313817896525245722174054099333227944458779538499130296666913539563543957520950706933236086312825601393523174865176011070640946204550219376458249099263259015183086564657332302106465511694731590436689263115179811716423725437002539381689216971450640385362364156053441724797418242551906543432401793538868802514132402224760471551080652576459755375927851910451946548091857749171170903830361461536204718509240838156730711167026819680446634878497113505766498928934458326913071650670246273810707429182650157833787272044186126785424912984000409231604773766618061388739701676647040854316852362715656314818332942862552108277905544402966675051401095244674778796335632041111855746177805055920072215385109295172812602662682410472800510799544660928044100681058650557523771256947482649782292270640355149889673656775839661421149630985593140936549659989995442391665453828304471408015106085948924223685791920093346031624742723569144153810901228469435607201633316320846616682829140350648576715453944016465373228515974021146571814935287199062482559660398287922184282934877249927803807793698615276274840449172211068754042557780359117273932325876488568317820513072005270880751723657065071279126194988252977454010396962396232284967573567980896030379948178787935788940233608638728634220971058750175127242032256263749215586203051830943296485128828274498391918887631852293608376038212627525912379024884981490404039882415495795023745790872010207456032930821820250449097619651254686276035186347794637800342987573566869574032742074150065726781929472397684803948167210071557016424565393027516795114426038755891292918282156196943802058145494409698301167941322310837336410628976450205577406864317885164700312183615482666645960283041866199071557383687270272175733565279728854800030469218137728764588897570590739778003270861207782716605820445381598252146978967201006518789836089311957460434906035871832724955792243455504659517753511233311906396355641685132608740572138851717250406164404367313572842683666632573129137561269211277488344371771961357555152077121079114108304662076721774433089764125805558865028763261491761697252683161343839709447034716538378808620525438671277585518965141796557967508250476982285715770928131140369751768723072050479934040092600910604151419363356916470723212359491314951705612549329070466434391703758508098466795501609856290234648045884461225401735445469993879122503541116303611987557231278738926680329734207258172437676248702913211496870449059368516728350805308925358451465626435580103137364071517400440669229560078335617849844714710372396818909206644574517291836479892947712549105173164867395288050793695625430516418690252992861695036755352510680943886135321562612493484011920815767970997511598144034365705971555036590227509996608378996076908792112543505716007225539499426616389236827238556617645398791026603673301319603198598972496981429002801285630149922250519358634093153321932801847468051904418665294955167699547087238898959747938163548576154444802538955372815262435716560281948336167564340016925292105423998628021750541598382563714202302619257824151402990205537177893316209688519894302617483823675747405543804083167282415904158487491490945933768343123800276836920623725306844944010060048178741447868505421642623890965504371916907524411165452155048307747698877917947829305884534806805562795160268305443406550188226668291941843969574780592268733033136912205359399415798365729895300689161953950787335246690869057059727011768561183433652316632884361391230057219762688815047184455051548537485574411437863343385822720660950201766383090995939488006635035789155592600280071795540408157339607315277036812856536286268289799525553335177766555077053080920544091182564696644514808967341429046323894443659042941005458347775219641531717617676710263295278888037758770314083352357418808658716902472550579961777847255788115793558359776233064426992129943856242698837081486733680852379686536101112842454064333690535858834136696292221654142141807267149865050340643040035054011991998486360604723994142518051063757768382234840972290097797438714370137022250321402504512668755504482132885979107208704648939188132465979631811269644809391543508551930325034819978463278917013579131984437182089339720714983564506634059432393315509633080730330886882261560221009689925105036330427624352669192714708753538064998098978117364294747454408750897071868683494963936858245393988783585952571915299702732036886628241455479969091955192991246288453937262613923843896995983605235289212606927645683153393010300249666153715105847663781965314727037931126915413141185226830255555618019705458573212594255568616875199016653978912471017138470495717227339136646479446624553213185311653677303529341917799319185992275481449185885643612930893089861199844202038697160809116672523111698143996709887953250194838392158337050568655950644130873311897617425747539761647816544137184496999067668921394073888592202312736302741702849195155288132357060707498051265534662208061466037485553398606771896196165893888737824015269788370817220139692479819942506840194368258025605328940204259931874146044287477257570190807489708852471600142464544755424499624971777647946770137158605633328205468553081327944208927456115371290061375712225214276944960908001798156931927168339379023178312450903580381671920209671279462792209297583788050097723865866319933917478537601614222212108752707984627949514556823631658519181619348572734829940569090947406194479442965444357802492137239222610944611444985530771551530622724615298914285044751791950438088319357881976708459202776128749076206426014649283311093693200476117343703466686233794222288881257369540768471462498858633917948763301474877045097737638159187024609022680245829558266047878914568775893023973274307328284486701116912056067991444923028776819710606128577419042350400055182425147961973352923032086383307767886992911076691188555526395209262812885291701433616850050754469384139101675224284586406452215000978740746650046246118995489416488530981478387338093670811901859362104176294920615384750679658191342634150208826790345896500332234027268869963208064176305667118702136940020327139850521576442806204367912285797327530566623584846491937716685810070283319854256351865164629203943375776308596246572721319262774214370097532421529140558634751784492231410773595131355574749234204449734535904261188418744305996769567219252093435859664689235594544878672257121541601249597595787239172375103141287522833284243392222751844202318576211900062969327639545734918739528705983263532884348227160520913631908573431114254385861661006634713500222443262606998648636823844710754962584692305529343590039126184123605398068855625052329079402660270405789455608769207434272042612638286766430522563580557608225097810447054522305826755493287635271434296539228720990023126046597116515595176047225175264178904282145302972937897644637748316760641561790556625782839874515043640909816398920664576580606042057276181924196265261580744125462575300303065029115740569985488141104186590066357354521298236569263201820520030457515440321442534413422437148343894519087420737998283790919143733553192445432044812654751649239897727733607431292489372237283657773956172316069648517552393982196973190952395263536586532463182906363014200176812587792542875412979706910680723070088650895738601462931769302161435516113188765021642822458311396378895195161817743187236699401299345243929470667401867224361178485626944896878703214513503823516814946052452049926235407957039622105435078086137241265469007333815466966055261712950751740220710800202295301680501685353322851814206640884135013984485452148274404230009437181302664100429295876279848165999475579610351847866231889916813919019549073839100446112191710815209347465935528819066027754758517845667822668814265616933952144740057526668397679659639179901212435020926314182092111252459286339630776303830182057493049541645617663606888083541100411978446240982508305843827807366971019547154716803477418348948924569136161778536223968016126985859504601035513759251086828051476785002541415335042982979918842136637652708010318980670246677490371513067735947162883798559760303410063870990497125536483706642434899471004996599729902374406934886321693853327882659458398856483026864789859776978610000666772504782665718511952605840864964850549079392840188879445208039593043429697506042448450215283306355414650783382256495916048184717376966174957620578340201181373618805420138534472038042199461287420262415001575425312417420062859925323130780797434744844254890773192619044156376085548721181366546365018681178618777189912835508928579000509550866874778306763383872357375788930674404306202374479687653353627927179334785140572498987426973149464373309502078031639502642133523731784986778544446494492743377383611617018632297244686641706140408049860497399900002687640145210581051642055153961388817645987218469513235674812732583137854744251589097412488078252385624262462317953133625124874044924238367863115190804134073925590581368827539312172837473749288174728675258430775683468353264956885020625798348309633362149289403919248968836579364887563698172032330814669156446254694486922381487782979192301744986474924809671286430452556675232918131268731913943736620251452828925690627588608405506189239149340706832811541769627882144600880454118665929880993922754786651416534800606131170412308076034581016448057510510453322923773287151439311296799250509964649348671632776344066663299117148037396961542714081783850464081069259488392895704222303943890289246610412701214432695007922709604723725214998748733797956785453213734539189473139998889741752171806227414157118867150043198273890899126630419692857645694971295785097775530266217847304900171716913619680651377468066324126617741699073690159091759749926179308102514075399556388027243818285742514908155873653345248250360869337321310522310707529244062757435639666953115641020468537280740624898520010557729133944242426235431579151590597745990698069332525103441947162614911053319712151071321115417486767882687515952236933741092537663776498973846163267177615554673071844335283618776837966659955054803453898850297012330126900046884278719243737502213670377290771269087293169290747649561695790238982878708766510877634708842859801299778271919275983373207476970576963335202554084620794104110727803997171012934573688661859329442910504209329902530419642794386696090068450008147371302286251740729468924408592890146931569907210954414835991298381927173732991118330411355304835333005422856910572198098057036245893789527845979199100846713295206313155847678151796269681840489431922388812388099388103823041141252776328546109527796592450704598977649192961464998545139243476461635567713624126032267916633113676016913204794274234000282132568285388753586532655338174261006161634236966948109890473933632015308130715026092779920386356278610294622436387705620283003058214293634128146307623616003497062147312024955612253754983703687555319021079685850586512998733592380634178633442578717143245841401791870663264905147328084620885436796230176077244101593440928839935046115775933576295244699459552333836254691685374501584832908244704746153102925427608583455690047853646523514061701151519319463037731726914989378415052331368289282845768681315518906542635839882679348759836862620254062449607597551379108933985048182355941944356585036949411897140916701956837208930037062617069920241260466570172079170557010832836096456480994125957642868937694936918597267944195766128120207012809129506319307783132055161218882645285486620661459319666375241581162339285633689069805657184927203932881728005187395434028391720102661539719766047275170000558389847636991908285255248945505456093980079680147527156847191974277490216416036191530149733950464480159521360502373885845685075673640439820858129365836378212691789027113952867957077155292352243226618725157853371002860937415459980601820342291607318391664743879078693808634165552912809355868967136015586054542721494549686591706262872514323433582099956498018854053497564571567328942764209330429166401932765597676779776521406652309698601165909396512225839714538551226226270838392317598443667412047965187414662431098424724381594445749964403696618934670320710004487043938088400415381465705341521410545090047597956833340523184888914714592319357972277423603322301989088475162977964596122024821719298132193216835277431315869241195418900207188530667508413241501920453899634345644777420825814812521520487713980651072006982616480517691543633302521003331333282271409889574784417807497851076775013129674522407217769280071842289847259084632593141836447775446888137311230481074142019892994955765200757883947725368698940033663761668495919028021236066229801484842756226721910837219357933281297750123986637282224060724471567366612563295408499128297327517195380963707180942115137633726200504983764256569581290279556685802175379761213170451730856109639233634767621715437142010754396978479515729516310423504330900535204635642040860799048804471005802277653778350081614123090433761878557295162362150747688793948453089583515864695374365935009989895001222566888204407141342052874514244244038408266757932885321714368264772260706841132885840889814750804415175513382696864163299532630142749398305137216051795163445324968406751708471543821463381201535069090971474999886990024594956957027629334138860974339821145569179116048647009165170088219727082249648574031688454019142953444496786718928120696643371625112337624190352914213234454076386280714209977170896278719215393709915488379364283017856706086279705281253986994474020531384246390860936448947944115107359105142954437241321939335153201379756986652908103116837712903400785292536353009885367316351892482241501201156315913844553231167859520184840315347353584906917215925596731153734585071796491932899387574116244722636393269797705296214866600712767108959194087398535063257891621891365543693308961184256547890593800030569668587457714570589350270393486972783653957553521967686304242255608858257971243271706738988644208092282315845224639148067857033015290133350142940337517409342911611319788361154969574567226981114557044207243807990708106019599951994150151041362510752741312065499280502764904240611132036348824308877034454515565287588276915578025377174210923234487528742735211791830581476541785438267759709185418531039866472245603268329985264734463581428462547562159424872103621384689186144448538367332964374822599424787532618885309986486816087369536221124104248572918358906175406915345710185853669914569023035937598045121160273841486243510442558953474274209374353486381477140569653713909104809468011289070118921627048213775331202381759503779287504568009120089048995771532739661835101032831940024604116766091282135936136089467754890831879487093695232058368825837344836330128157423386144574157039326396687400380745310189916520525278780439916403823446269109519500964351947788488733558755233576576573127585409156830193564731834806783737662334110167245428174032464673447301493733291495122444200017936925946383381374112143239404986468080228972979374400474771270447074210304687105578317099204550074163855690447789100173637518491056633450945849809175306485275313535411383057001955049297861008900683172727362297755713572462573385559840124372484629462623607797198571157454489855582613577627188708498910497934200347292039101173626915805804580437875203358385459896694776548408399100029908063939439820865034835047269635538068720765673147838982525836487550575797444377584737761207129641843207756993342189289007696658159819743003682466358321763641148302812074692523331349163329696599510176793109020913341398128905516902935630006684855379204979146145139533423853723864125847950267647801478253460324904787027807555382030026483226259428378902510525032602695255817363443048394819815571948766739627741104027581413266285309742799431798546624111970931367475611892372723994745216914111494223953589552760914490057758810806130166585402540118125524095366722671146615610796257177098810556519160171582275517000090996528027652671364385550251948478532671463762126839006838337833117030793927556155911440099623056225212688698990773698536840976558350820733575515503577152950253636442377149004166215829454218228066118229022921985788884585589157805628343598769683513954192187562809015288874457436686992553182125396917577028064986592949965562663054211270238137348291096277145170014842997226557624422027771393790989641644659466326913383833145969339009516557368282026252924569151215942646051048710181784684071341061781491416841333658676408858534694562571464620912397039347602638384194041885237678328197060229913582078954480229594879633518891372707883407478187655975161386510996260884492457482825031486337911619065955819930149493366189180454538050190596681725723360017450276926901381096184932782200402765882356898036061641349464905084219398545436397895183476836219845593366146092745838446258354316393008936159176193489112516733082403349483108158524455624696777860403413442414654490181657988133253816444554405498152287199246760004818047150921054235405305736694503875480659266599418951853016188118947312365273617116631231996035585008770535394906672493710918642892246593669839198382294457302336674426486973441486708147838466533072453461835501900986588122253534040501592117733438286987692212558530062677473340382148992735455736094905284925649876085033728708937387676346108514525535905923023241781956842280486698360978658087486425894823026086867834162644735968518663875353499129603008023272385747259585754740058447874427481100337438612704403807009924009492102464064394443303342908204369489945984794913679842672304855164717425364487893355284172142509311377941968546555101880022397450335706250581935453331909199256892041643380679686864347321814021038023450817846527140139128618416493121374043249371728154303632092515838057370273294948956587641293240528556731095474624875793493942683907010817874290212144783067159214587663505773188129348358806923473775408276404238896513521256069164484281321311398283823105219319990009840587016476055750716273584370636369113707166852812025168165037795697017138908897048031877669408350232162423018872997156310515571875196552177603861872443354930354198343160996629274584597268259341185739728006035554044401623737636057960980533287288422218956736427255838450832092131570730030877105121357373158827835435461223306066830023750439404972410148075386147718740530185906766359058129593521107367512030193737281635953612744260572747932217143497366728433367689462997676002961613061153839421197066631667897599035458210878588892891232030260144901407714982013487259897888795607834389200207396862933801459034615761906356832714424102217453310514443617983836209512890185660002659042883234022351904422842186512486549163601155378489708565471856860021188186883122284481170314315550825861525873215536764852006295751405922257689541317880126049301233814683117523512006720730391179138663772148349773065674437422559459450352904886677039363742453253121876478719312030011666627482047888528725673250578975780125682988762894905628934293185194268266180187888044374076156468472473343184193412425234861169454392034117217584981605003471655125439921325183856514834190280681249187784300315852223255055253795817527479808350009382292574219514376308753412068773292195155710563795658697668634629759877760801846895009966509876679443144263101028448123485663319013861616990661033883972012083193967429226076186935058784668238715143171516905850411528302900051564517013590335703156075194108105083302800805251953132918245815888315503604644293415777983982467416325765287139566268838216464016439512241193416666644689652813371968818973087274963736901398207235017170757712032240542626886596508450737340910427663904974590423977299409525791630758676955907437035949447821720826922946485222597127638857047827992592154309194188616715698658991975013774650640560953231011020195127837031245176397042256055399715715629593071891352861100887904335300740039980765527318769139161865551651637721534593358898970661983779709866888321631040901596452813572246532139880788560669206919483950832213631270275679968897494888606159575989709617318899630718534408597665938161323111347666686196384041191316830254730117202604527076932839779584646958403395810188508643581576828928304484707070152914793630400639043804411767420653695482714716228372031457867606288837608740038943536324539710234790883309477125463417917213568566063793943233824227461243253028294773630498377693804875745556297271028772306044286383770102404478664000984825789637351733214954338584126182664573608668035180905335469639886280470115793024373035076439522338192990691806902472786505285766452429715633634520284764949811983282915142987551458940977017847904469575165481193355383710860183964352662318444355547616207154189708975992541234450158275554475261414767950184012697669074825537021414877362892670498961021601232203414050512586714114192901108114439306281547187910301774260908335537405813444558312748895945058440368532633994740268633544233564070931059488758817362378670850364259112003354852768872011156982685238701868494806484566599502686373512019998385629965242935715848982924840651506037532005758049080571816873931700121797904874026557579046875870163197372201661505415453258597087613833542166746218981701167692967563096241266719217281731965786473911564659128452467416681494191529336299361879102398183497160990079594244192699718576707983291921034310937752282847185905119109353776287151323493848071052422737757932923517296324040159589385567567625335472643672848007598065454338041795941913234927604503535103171990731197769619949229275583201776312766730125787876579645962795233069296739809536305693135152425898730766942507514649517495400619180111256223895986739248183332269044977502931452070529504119062555669241679122981354728728272722628676434012870445547929270854445886444231987194705662997213470823120536694199424754642913888235902120999501589205397599199392201977780680811651255979302960432153399304623839857081319027699437776190588879690149601858768905821741477853023307468731133260826590871032756525629443919013278847613661697257295788228646597061840890436027512377062234177475691477037398383123586082642606319284662837225089065503130402447849741009459061981913846780787657841202609646570625311579880880984683472628877095697612649689082026679890597075961850582768352001728781540748718402340614700887682531383995879798297849163569019581824154152250616257470333522726454182997741713175682295503042086639607151316251388592316906336130989340644199419520630958731700255204869705872436591902367037143431877067582844935150427888312521186497804667523569058242282864260281381778042558545225491153744955208965621634937643850695886645793268081096489163066575239412993555265608978038815758563770755511234495823165493947245646588701266338191044077834974697471450838263778009900488624599727536091463957422293411516262371863576099536878116787970207852840065230629890157170642460573331112606239310060736220927928621390444870110112912807204419190445878443251553282357240176514464021389258696163225440976803078701752860168649878332427892870451619446420881011971458371705063515996767861280003915141980579482059507885010560323747422663424098743696801986105615204880775239779044812108987540274022523986048582203032354624932640791694706092425191675628966829079792485233776906403568369714697549655703205583907655458287147226272164145119657900210618797145810503203876923876392376391301468823081173245079036491132581706620353687376568889211918872028661154540772125402302000492161534693894965923146252091696571084951979117393189269813205651522830291786378696322044932793614622380948415117745799379679753931343771381891425858568187385755788406367846832389176622150408795870304318422986560173521969890291003057588230063248685436312057723463301025547698828167948731561410947461697712235873664826892005848895154183329241949995430287883870583042561061066223578502646348828956754858019248185050195595387592394676096559819032314452073417211715744699882309393061124498128916322295428688668387205529224898211766248491392221241293592061303666062945210625223968248060857378649211989958999007958145626305986359399676405544329895936675515057679100428669334120488164866571514345570486291353855784693759767340237030774033727005421711752031864916026412793322822563264812810877071636751476522985273444285342317326405345399051415727053603287896802674185589576160367167368362116079244359730615333950964006935198110116740038974968316175712305422987049845257999201309626931795539670211509652200358690453669816757397017936342330676974603213861300736774616469846237501260000268771656753189030357982430572606659078595111889138615789276874103592025430757423851418316182112207014095768599515785689569946500853124517748165985020222351085963405830488771775282441536574412273114221999735373838201127726318444867492343983751449158064149390406691706282055005801093718473688875701548225851106824136523263887457312378677827129512897281831787810081964325383987506927541241218127645218153297107645731287560317520899741238567744305144983574353187290709003573536363841903821242977593413969798820571651601179106250868011620056943036495324134205899716421206637813129223881246488511489961085937555350599834044556276236043263505861286936401251748605658211112045355830413294952242508747371629566019261147863198751416715802205973540118289241148775922445162503079551624621520946272721848035633435964990902138503127086668923019560044555542818558304008896688255779346094292092071122462215146556020894228231457988359620393806931673787130308672032634881970669885548109835205005174460933138462350253476518962466689637403443226180984969978888979159959312980956966243362611678459923929046898640870156088767242910248886505566004800507835636423646452653721381258052377665450005288827971599966499435183154147750257872381664152870512936054444333623565959211558832516120017560126575306183041925074251584352129806548123520955942515327010022149186642251641531970226813528312003100259774452230078247199413601599195091890015783767211635116121412496449738805557153381870963943192879153241079247842283867307883163589183986443916056558751719719466886299187968369415412489545044695254367079644140476505076096439674076111297691613822349426139696736963896815952802073669495894019979948056125670006711423841959662120645470050678033834557719639025219024877333664079683173128812498474536250754157349607963249940710419135104979080174171931001629384842445012406513174043914879450823184230404392017312448588420972262219109754181369146559856804322000958754757834765037462906238851108060678882612353113014742428934192185558755901110225473029408393087197440568841603365452321544374910095379314924317742093035649943418924296481169643838218116714741651490228289418464637097412222514370010186967553060482843228773327487870096857301985810824434536923323227508788816295421731401441067389045231868419311303147729751253845774746346434157649780977662270222720209705788666833138511383058481196888914713217715157807373672600369519493409906300511887440961406849582235505629416522822006144343148535495357392021446575711414706214548596770514750635109715195907360934716504142430880119777883909635505714088303055090258960666535955888650766732144249110090778406516947703349123564458660266754959120207252552125381286992011233600721363817934267047964443678179712146832560503696986799654868544857098599976241445566961739779957675070624918299316622733136974837843046366604486178420415237389800567633459600908287471145172439655144808463978612759569432445861387828634280517064710985318802812649380567169072256840189454589513829656471197274002704788382082527126831957004615605945583931473722191765357793631119540290605667819077299383490397731051406779438801113788098438956736264220424381506339066402658342354779938901487644774476757638796690969756899161204553794234902301090724074287659543154261231578638191601863364511863719404575577693875263580257623310272537216468660946390952433726309644796594296008585943118459234934775087647239378640591129339246926754902133971262122237398120728768420886777970858564465892979345624280982807405332431561317937003930320702897630734248417212124790512836866555898932282218897956338081534443990849537314569387170239186987008632435378723446270970993577603980766066338763335059186149840277970134290134378551360977018768908285462647889102009126762273372369064723700871987919620139278776179527778739692705596135540609470721240212140272771328403441540326018289127070505752818230553045961292368535264890105032062343966706010145677562124035292964157595436078764592761549601331709577796367938825264680388045312684710451024604250995018464059552482255820592388221770190817494510434438889552637892586433571290590222238263114665386320518931046154154832287419174639804359048630711407659035565143374296955891427776249531220618271491677534252641240372724117965295880998963631450136478781975248588062185238342190391373806143348995093748507113080728262962006027400612300076693145742077714811433101121847713796522565478917571263372635646631408758650212829706899765447684466107229169452929395390032013806511585985838208172226915194149635298749080398185354703757141915196048837548300931795054078079388638299526557283302623811933901460299091501335975845637935618224938048440541716132775397760790049284296362504606557797723859129092382557057565238857917626718238002041972902867926088681443869880165315118441042362297758012724229199023273327981470671700847266752331567505579908031293330124900743383963459688209865446211516122308379236144595662863678697658837924730066701245095286567056998227765164542537762430323892716684428032275890368945308506778882752691663110812610960066350870453742460928184654738942111151807032366586392010012294105454669452221704587870754293127361625870020406808118561410611623304635166993967855301612202322102475072221051774905171451027670660461966649627871315588047517957366155347338001529629349679042803183913923543465943700397939130981002786658837563675597977793676383398696176780476309326656997682863079693574910037688151984343246827123605941755984939966355000650397305769081515424075091523017349016001216006796341354344058823829921933837346549784585383703154383114657522639232760084421075207338324349095126612534937642187127494610306830255036070601212547065112087944557167563997524839091972859291303135612949992575101961211245752179250304292067716945881423163813275700456006049073189350449935454667726211552003928181825494049372756382773445949822008229122807375306031353723716095357798799986847017518168691168533401027174511861739565049172356409213964877397181395072518345192916858721232450390537375641923532946063396071193201671758115580215058962471679999301875243843950686654529059482547909711908035975915972627273692452038732396086895193578692180983312113620402607800302927318594137607146827461873036813316466626402110835237248019850770470184360216204797610722156067980502879352132192970797861184651828358979806083461944662103404558486639984257691514622774423681872742568629366822062497943939848363799896964831383642139161315839386328897197801305064445635818059295787968597391185336564219654294881544998412063224443411144461840369896498142115593193382393405177640835544403663506851922763751844841874385032329831356619688754966705977343080973107680086201624289931254206732421518579925415287864721314122176533820160819944991079108654970996556101991033405544853123065305599199795149743578227013235531579885940779407300361871784318600454486711235835285724771194325440388430901562659866516574643003113176267498696323231388873208653255557567052333078008649815885662539610288345289831427121003867676201595850961712006607833966152571958463288969372646027261016082638324089422715017594546063289974308563685607794160731950135029236136623459245421278942117056829182503992546865221026161162409383565141670569044870405523976665805443016275477535572900921458014206419215022273913449091221440897245425444326206735170677310233029722699136283651615337280608261105223525212718224878465611456766424169536111467404492618157151150226915341799744728248220146000339258454506785265902085032071085920353781122982802623578545498913580518082509739952307786624391175378677867113711835090958319107949615696012849031360584342678398332330156117330413970715852404761428320016716037676253105886814704444615111439928015134250874878293961064443864089365182742065742924472681526163842736359362810640465285114773529504485106427521006620311775889526209091798698505734986669863768274481805214666350419180474110817730745335219064971945967672145199726481179752876440396354623613615226355196004982525373968435527348633365282829946636565008726353913348430720165460338832688212486876585706168171922045296685929610584354306564910767362003015244576754205443529942933501480195423525997684009313727899222416438426421745348537551840822350028203120238451234487615483588799424695130197602166874020976173464742877103712749636088758448376551253711779010536195867394862315025518758084077000115057563541511513644375923790692231848806499839773923569628332809280517204521846106816207383514245527646364341219726446070557036379048674438527550649456024688248527333071914282359068694835086746604615908130883458024340254321883338273198126730804892057212990822126004893593681188259910927165989642073175335658980977617753952339278200444175153626726321121831761044130757609277897663494866405599156045536499641789728507109443653456152184515817518984988855834046003344868979450209879737586242338512843509467339184302471355693600663112119901246523201224537292313530589291306589808031456090232939651540820712652389207538605424370736191123282946086930561506812209838084718009500003334753021702188459776283003008691040148146099255772587522096159032172701066558723169642443369830236943214420786334572078881915559927631336022889610138274751192135207743085829993699709789480154927681565079666958327596774517783649367954975045480318586348805553151557903317689919204743426653958735949496988762785680048030972808792879120231921292684262363709578031385509314744150046540244022287676886846037689557970444500974151636260627661611774800942500665364877443043808772154741245781675873459830390720612756821577315492408524760557049960194660278615135889711463060395074433208427910213465118090460143915556720847298884569508017720073585882029370906555813900853310625935945208934153555496106696840417735830045190636034214308182284172449021880553528976866348115888117545515886143681491093271011857719634245614696266959410439515541151343714906061820095125398475671627666160179416896299859062679280870808884316694354886512429132722475497512094927643588119322488093251829200487036029995381823067522417699953021817345404824468219159505583900489360332120073884551373381904045138902266302300943376116281812599723234189842407584681193079651841786200202915108681721391929484055039734504468763110386633494513012301589187003690016481040011871822776250160051544446370665662580555477095363275210247094348858553652314036594613173568839190694610431405896012331742806142648340182505876013472038834034798843476822148106711552431488687892553674158698934279205187881472510031789458422128049983302436273064238747729129684717741600999334078057886957048279418969410348039450790340728625297125749446471254130583385236660287358615071835395232287483030273679447273428391245213280946512579802863191308884761820915727166133550770743083673313018947616648211305512518320137821074473124127695624495524954349889018505706353258593038699703984564167928799058007624837436443531494108058166776626500910376512946986667190883386144198979394617450741833598205620929552984105424534406657684720872037448729258972178900365030319940438879241787913809688905034738129426892385551171316627316835950550232406473458413891171634372073062775605936116746006125681307703927798087747840373439857803699436879010333584594512805922174352110677367573505442463490659744244742223991938842307824120631371458084932755646002754493034600824863417537608010282684642320135074504882312762916897024340275121955427472773625259441339738611625895485937392040200405279532433483187237284298426166934593472178796096872520158138283376494181162191605780803611935603709829880071081488868356727155369408889923474128617300133529380220736748821273776464404037105552567827158346044724366243534241913747232395874407463908152828342683783493992369836982804049105089691479823628576554668079873957942457315407038190157737308939054384451294444118605664240931302057934717565988547261756913857575444287051596990072439569854800328463546489003854723659239078552661960429358850350494778936617535914032686738739440551944970572426255172791956612038417067673214975760049656943537197705688380178680655534929511805231204469907137625289001468947207547753784960807169335203861724748937129041135495276168481610828575919227218797347807623552528671714523521996821410761451264791100205342335427764754308054579900134735976516314337684300280520869290061259710698281116272987886918212270113078480757409280379860243686383644754250754578717384853212575136135638427413398424925955885718475157934806152453470708377795503397906041087922516541818184727438459849051402480652222405428495514649114355498846113003731523777543207148724148054204360824070325165880045870786229940346972718090072688052463552773815658014955532223640818713298745263656626629423065645307662530712746467526838689220312514103309869355097485699589293950711592046179005859242375980635773985151177845922177788064690782451084301314037511414627764292738026505081871850003363439065315224136357964729012263163912569861934871547803749828451137379988000583566504273097690369275348747777929935719786873285671458443676718607964034201178680382550837289561833596515602169946856126236570984994888978117062982316612911921346573165567289273171861365034503852674166863519734073194173499113130254288435651786054100121075190351107239826173025547177230538070823033717870920022504889992562255757529509465330262818551468295411239719716512602421485341159450677234099022885550012784091824753375316639786468298625446507489096586645822599599416499442717017548410588766156376425770402391039212998857583936204695838085870215576090337222509554918183113845080735916957709827757291784491577140053838779128153494817429985901488952538342657490958827788694942343085881090674290189024875478215027760944155743951617076236075383812627007309519521002136954806185592924766206846502681337851125253302471278124078200246200113929334503898672115573723791579676391715986861500365852022274712750494229321006137603782145463521395898148129148908373545576621635553172788463742161119309317482163329895228533871624662396457290347562686030279593593223607410711741577775498917987707891891679876081353610981039231768917287545299235767807265908867817916089284321581796127986328528128093649523149206169984374377179117468439567264707384346709357951927137042639524903938895972078249636631989814670671481385735324931278126243030837999475523357570566878157555779229752875568423109739581512345422196062943730857988378630650158002963601288963931131762223553486885344347022695992208393352478445353340361912354077492897140657376239851634731568791112505219888474945840847463449923574229813095471239752241246030819511037107152435046530878366558289896134630290522377303575018196147464172546656514882243658706403597477717943481852748894939582343034142652891053589598821976375965012608913243888263202155227265037037950047682521048119732168906154556101488821633064790118729393270450995389741858863401894904128366882383138057729371671520958510705845906311327244353876351159882175857494246827906372931326346288024136461360944244819825154016777534604360088505783095631452083176114439203827310293363077558901517976731569076085940034839404785217678387053427092519889817094303553404953213056958558861688522383325686729317709535918202211301319546223812742008324446238191570211723677321212225911388540711824235800347716896764419650627817975256040961482814423482719260190550636583587036108794322655801397027796890957436109306689053108772660961359771787514596427102479772629484994263639278765585899937080083889041240088368284521709581393461890901196899660187929484223047112738827605884385296361366148632613668577478834422866722122216709641383282271063902489422416508085359535516364165891347581585167808762973961890597573000914754417620934091927400427523974511155338284165472145555547544031362005323819447091296958501803579699211328097142141295557607608917020231522450575970208880260483952065516364113113010164539972138383939381328732610795030179717033456616754390972830352068648462349930148005441050811822704874794897798108091171303179604539021961452428500719018540931054047848747873032798639352121145433492013886972449709094134693693065694167017686054335523343496534749259580632846418451293020649068683224248540849764449307093673273893321365488837810459284780474427498930366288877888978413354543206354281435934085878300605925147546173188447127465697833077320374139440084214324557850854753627064170461317745935732787205954092691617396656560788338142255626164152850530702901397651120664448489188230446162188835628479629973971506748794269779479429433902363300119374712979315403900801008146118668949045906915421210323169749267029865421892538350686344193339961251979106761540780913335247106853498260622949970996338742456343286840339313765026162400198872401833492964448378183715974137608318998790261603367787652724356274336482838195655689873410647044951078070895904483638845904099546462591952569471594326566734710767394015222837920326675836878594848385715086411154555176879319768273766246662297126613030628710405456343438066843019642389812138366943782829383911704234677375779616914339901970829346029348166847343310541858724450144442537027731770726778636759878452917087652791169511255765029890485440982602519496360578965466740666790355627171777723772899147435510728970757015077208969555929215122008309939257801183015863623994401924090237234141730162764365331592516610678467556569473150537552248758643521374540235552377191927852936243483244081421448495675716038269127466381819154233565154720883901121409083364201492802165250423881743478835546030395314987530334735899805475506761332488068659396588323090281337450943931407713559863432236524622338036034238477848859912038871622463237090817437094013402629281239835477954014497157220454613630689552260102567106953267623733861475804437189517612017878607855715887543818914525442834541488283297702675094953397791543784434758597101664892270942611777893032319393616744071072539242117062523406910410684745898620935840864205075536207203398598040568217925682690099535962579908324389136051477954970437581147406190235013605658396469261423178047158933948097364897677138488250631919121993328847398628519029515037037685978794399761172765985828083354179758355513682069910148065580374025945501668685310391756987608625356461533596990865090156374133258520354306737641993895191511932811809733893821066852562719041447253740372046204548545495192698955325439779992207966245115986329797311096329480451467707486116379301744235856141009915887101217730748553620291653083204074145211709423389473574045493655416147738207564532781263117267344332631809250774254914551537318115476911627362692089332715101026044692362136649397839963387764956408158351097455662418593745494223020393381833428152624610624618098058578589628723755676594110696460569825633075626959745218013583216872783637170088454946438710922957242594162484947028593734454471529829346496963730108570906321368705822462992967543219260437360836127100639438082373700120906945812380647766182491665035258121979680821444514169622363146628698411516960774699287511829604966455402065210791073543034122583187795041344763155795187782694142632670453828776932898703725457872097378890049419564599939865797109652621662470879100800804631425725084955838559914370786426094288499238851926491990892838782384852026936995729484609342025331488590023577179709466597290973951206828501080409486568208849156721402989405685263041201335373917462919285194918523991645876121381468336265412666906115978397690752433411261666697540897389350410953694393323076604116431687869258924517587353870221621370200689282457065378737210096204706408913917366161890008243593244288403082007077140844184788136802636981415460391822227506280544250113355000317318533802000756474196065580066448274569351148601021242038249917501267037422930515412510869428317348208423671753855412461026972021265825308540940495895880391643723180183821922857155638919647190539311436187180456945468078807954149715916600560924842660668881015016160371427103893544576650650875512656787932680536133073721050080467834193761766165086644900190128394760126787632205628009374408712555877844638570487999744986833528896707385937880139275002770545200481157953822472166648032219630608153900985265558273671761014866046088042540708654313223322753847784954505571619114897357451624763932598652492703068916562217125350958453813234127359477514053178171760852200120701182088895726077338738171832503233718909059694836437293721019129218598509051941471417289169331884567433698910233847335876640337842639376439333532084356711072207352885639047505797864037649046885281394812445480018886450637906409131886508321050639381473472831762432524117993994317597623715778167313905261460043513601437760452858053462243861764786578918231682150732484001285127452222497688061872960966886667290231100796469325695058524951084303532955312777806828436765212701414192492022130439705762569485625459242197459497940090211025735597827704735306103129585657519672194423619215420578705968913664453848173606330726415310850609754885200255974922779514383049215327295148754641728635954062891508266064221164065699354645952242168428247096137799428394166255979423806240600400286940607982787983737052669960024635782554176335639378630030171809783308932582043912785362849027611264390646895814606342182111397027310315688978138700327233704417408144774630993384389380816237485507894230689110104974108330345542236416594224862099714323244031708467020881373012779406678252899768837030464367415355068656195992533077045662351610618735618627622460344484121953417685170795139842419546132095428064763531246279355808048172677690654294231978260523022459385542749486048546168348470097353220890346730608687211969596586888022248137289598291601079096510815507169121518316414716991374651574524630934705764124328002834278960141404150303212202655819823210579318479515891705678677673513948512929061851690552973015398821641957890601707634810726491409488070396601435180958881130160090387664049777112599195643051829034144715346252701109920247521159880207359770475692903870653685290436636650977889134150415751895880921094383498638514703220492136177723666634170438404191865248871222736049627206185060292745646218075354266829876093677922103290910714406451142891601552160720651849565193572386075680156782905570223939062399337316916060126781305754807122565702463322351590150667886599644063682984899172956066153101990788156495055479062876747201000755672719171338267358784599327121253993469086297737452496776674181021134982594291079336421895254239069846446234010560807163485436660077552661047662990268877300829130350686608203421920319218357476268758979523962465558589073678706295027637516187600215555534816124417025405037897651619911669275474378219305358555284579226998911106748529749809137538685595251837254518185300746734764323412172243304715457749299388677639132964455463536983087154251330005021060831894846180672848672176945116011552983033806782564291898501765580383776245861902835278324075228423936932211326263031736782600251240851930419790505641349778365204682775868544171196525253035253837602458965880957461867310225099719928122137198487636706705901531669849259847193549087332377178160982005675197012971099309048489080998810637938517280246874170829436261081136801096030024423378802761704505264173979005518174932991169191304944733666656649954826452108417447035707583419369779606565251712053590445925677822051254502518472644509971027157087143603012749874360000543603572707484748241166689031787459373305684135791868975679321836776747367268370974062893090659986704192239419258302815968552913376587668286119515890202894525491626028812912025966935495220568050432414796583524653807720885182896031754387474501460194963366542302258777444323885923770142938395091091362170138380430061640585584036975021820150409720806908625129547806000380248350626575845174672061192165139238175007751735978936341461043248280264698435037197478675380458643724100749631826465851372356280513473499280076482283802722896614824791166398849869137679162872863980975807094948378564562339259646124367121558841329171343782047349421238886786797511864719743488460072336475327439000835817463874606436921455087812467486195251533106243318588810242365888803442080837579155303265803910877817993497859222895314215054243522063532754860649716523449499465976174112918811541706909264562833132290614405236270070294834362355759900365875127062553200819124938160306983883458002532208637550538487506211756431534736111236171724376814164235812276367417347070486480379220616472895283465400805117646998858887815552848336665997414556184861438427950085627342675471556929922230158409938336793775250982322860502242561399944785314261291314852094661128587857202965424050592434780565287519939215702825059036886166864783456376105899457583234824472550134741436131048058876495772283231071551558983756952824469909483039428721540950948499934513700942675103955976041180189036015039425827484184942756360850050401938040858788574742512352534803193012518218033291586643302224247417809010059186140947163529447874531447870865243238859731056882835352184857378126275635589107735065337228617353978375157794774795460622122643477626635829428156130827869494940153683816754910483120497439243238317520577790014668516233483864649320069029631916402549175735804864041102224424052804332533428104716370473159299090068807372671977349204949021053002631264149119889226764876708196900312152492699674971091237968376259496253704831709004221067490757487881711120280455880496823710816268509902387225841669750632784287361467973303630570359127235543748097821960483118073214823611810131628905792188416533541901326844756260477962421060608459078767179892057969125968920849541155999614402876754773992254831996146562136764713397268221683417965672463574356343377709917188564504205155066534963929024081406287010353639903516819411316016231648640277920943133581186564122690747350944095165628180405012572299159947937181375544206897960706165447670644076922947755314385625721359633265906521434966125852004217595875264315114591147134480882821392538720763105476257734418667578165012874102498362162423824055622430295196492182737684721197157418267029452717941025834440789709290173270610661907316769702847679049856499994172440489545708337174790886734155165581456980625178040598930272357482987438968433388144388526708543521009012723854638191350338930513857860984179450872276658323061892877143387387092695576631003612656472892166277337451830487473112970522956352248661398325491069109633799499585469934015467523260755634300730822426748903187762574901931856580198951970254804937482378707876102846710982782797564160641298157709055195290110355197837261883800534899601232078869000276960538431270013418483558437743442358432053092327721142069688551687658234831089658871475844539020850050301296975646699212805854288428068335954255399208024731263103398538412952155000918301017098472896848184125193187539527250989594910301577988087925857154073574456198334901978182120171997160323368541177586078123129356580735202594389361850070995934539567808630843090600463852135094578639362466652977565257808820625364320412073931353519764381380270214775266743220703950535201605802388929369501757571022725916640789500016792780501709676161917944607269927524399217188910247893821922453494926525249427871298367132301857768396195895132287805251249471703769747615764057755216463023656392214918040995414315988189820379246785322829149745017731840573699470064543731436401506038299846726341273528743977392012830335207495837365326090469056706258128493692473987452817753056673040809201293957757213009252334278859755141288412195098090874621478383205685930729755387127293210591712241949001633087206646707289840878107196068394420581333309154614751604196239677669514491881004916421985991604731106122632243142649446835751188813946003219216183342335773428969894682959015023845285097198872619337295574356344548215058696938590730312496610322922762538126397900083169361727113726157823469830630956146646402881606736511900482000843381818457917262212630700591665774331906929292725181416704028291213108110382322367473880087283840085577791597158940597259584877548308758374954895492550785959395729450586063808183998248460970708785655921246847417235786566620472988371896053655829136753734718552461490998891296497779081212951031437063409952843507812030696151844457596314999559835476804977297019434824182215198525225923611313612606527453685554215773622374175395609035723096330394442299438385087697216850078456706257635894485278250449552413870612046733395468010030059718207057308596760554543622825273363373766341638059718174825736763449392010655909495283130910311377964074794213614434568975012990140809709277557875677291522977467003883961053291655962181869548621542582041985443307480568860817800584267259133891132039245611524133619658659475964841251050015699142046873034182792319242921329029360251592376944561899231095352470574425290642666713035854698400316606017541130919523660064861869526735823882521430099016979068225668934874988031986355189453916352888279595733179482798844932512833011738984561107564302394974174896219564549819400523101641058776777208939208224508965297322565911754098203600159309464028621813662922030974423886728586935183913662456686893709648736574064885904461660563907774955190847933858709734901866521267375938789281811448736946310687907188503130731999635701844061832343150179401804140660405831526430068940075828880283731732262203921674001735214808568645080389769480841027313162454916100702711209927446960188040087733021795801976369118328461467221558502711414460588315376847775166826064397378330249742779975118272603716855926414668612572506836757268147838645887427502578172148927143415035218010769110686225829350429015689576488735827610354306142856899707939691592328269663547012507653714348108554693656144829366472640225397881153401547550266358315965891326428665097939352355149704789454124318930366275540584397856994474231460382991610391188090229533094561871313253351019720346380544559013287144204170999347910176484999549620109219208848376077572455097996500166919615501413622321534420521703668457263172180379621795617036093578627910271658450772379649699186811813418842119907666068896572136761157623022057540817786955745954709167351057646462234935132271937472796212293762475133481675610851888413035524900142926947880303936853979631529073688650399739257717541310314907449093949447058019814922846735013470867642237221580505479228637300933370088141831355495594574145275029979247852718159868456126721137334732003507801616767981560763685193063665223315126782741810123981146232382504057222295870762594658912430159358516187396428365635225789406926542271604061900852936909767889167659294499493118215081304113326641288574907952354953116344544329257077414868974616219402342004324514792494261535104809940380616746991365490131964295821193968033217372765811042348712767776500695107039174974434802656406182775898208778727170444187714648995892117612938472697467594296515193180591353540178711054102206103367967667470878273527204513039093011421274637898508393500780669075646595583490147933233175088616701823897041084187742322848130763399849448318988992113481041467188605111083539470308955169482663743269894570398971944243537274758072191485815509609951014524270857817668545743391864645888682695292139434546351705714084823957215206131613458800319090069175441995468108977033778129598309079355723043798819080248894995915036216630145647455405789147394636082300611062638749392800850089294360700264376828592967035098418704105750224611144086123488663310474517295522677648981504235000534168711677830959615239896268329494066950403625341165702818421339382669684721952980748139379133838902542048371497197604614535926431019392677583519261046926098136776292555900065897735470966857572238222061599696381432495155968005331916702867678025098150284422592877771092480685997150493065221343951717334316927214169552842801620869569016479083255033221581674557175611277937800608646603159007803205162036078122757161816612179103610966874834045367136972554816432560971736005460303479412941114063810449542154032435239799583846592880777342180423768883077807155107534150558218656936535635132518716893149637706388038635205510322818558374043612911556226462900662639651128499354495237954302493180839314077241410930950440116016980338384355887342067699504098371107568916881274553173945957825739582865978479031689116128763736153005978694440744557979365582041376978411426949921987403571456400957638729906396942946570566350529724006107420937665520945462560917094127401949524301774760314224708565557909366821142405386406912987986281133848032766915619806027619220018721323827641750783370155086982505130020811103616060395709488648471908465166009707360532571070057994514275300148051221384194613144503259828354800812428226818021193024133692698478568294630656837309960445792630701057716644809445243147162619683874868262461845197159196749596389488049757416447491974098073108346178055137473259155630188219015625611899256330266606396333398288393539492602533203848453933064990148201831448626875355345707869032695496241354103357969590276998225886488002242520333775518691095223531208051076642740794737980827879764207623308636182260142744320927449968031689406804068244485915802941013119507053112080565279779784642625494921617581751021916096398413212312297257726221714164208436475786315238201526056110563878663364058110163499943557262123263059344306694490441309450247513016610036114263903481861011334175806073409195043452706166082629097866949581432996463317562350188546555720218896640376118850442094055749758127980228623964725471700064151681704424707245689810542713407904897882425251722853514992543613701591146169346646961807729125071130330823804583244586581834391178461047937646142758968185731110847236450553822044151060045945233775784581620670830774029932106561313538589473948768861457310595852381147695515398807942417869231403538860051802130117954498636618489279798702418946250479745780556884011072267798099615655505183636582510694347677603954029927254481827967273100225356691145229400964683349937338934313150480455006912837710888798317411632405992416552404041354806291410695120233150581484415142938537266339359156524924555116952184347074458448426123685916773802560981619267246938987717084692197953473720510416784455500678583553127365002823383438204824527036172765940984518992367062204288091029852509190730628879752506196015199801809412564668037930003939112171701264247157309991314051563434996803453007517196679611466133186382786799281013704492403754666315440976058258092305289464699186301937939690277738585656961501771435607351503408347058505081062878070439525602583073091650063229635301486175916030085128360182400228697208602743610527352192674216278726212774771475639277478948605598505103397785232121583411017896745170089118251470095490313403304317868433712550330160620365639921089422606879191252496409513731441358517805133958783783180835854656967205728579172305921416979603676938220131468810516850548179701895385986198167429874485708593270857349395428027227114282132136786100479571456873794099190076156086947528440733224064346630755769889177225088614490712186369979288395193841573712775045793594931613475079248029238959704138545122067333600790811576001589499488289134058533036881614679641572195566629857666165638264609066694697439076330164486187968051817155950161809290186412835165886126137013792682840106707762162580524936881861257543245584449795334468362849721449691118802477604624623765877991570904493569420749754886697463307016333633193545279330185242103948269799323847327662949012038324397509605572322744724562530372533933876727916486539668698953212475626146013061810132524756889534948219513475410910262532111629959547392634933097775093610092878385804991173936686373418386777050187502231086277280951531032160932498663651024246547512228729853292488499365063769162641722073537577048913432040526940888685261575543715524981854699750665236795999496456038286861978586076569361390642630398477193951542586853932745764934199638865504359503170872953761011324747443095427539379066480986166334839313355245453717850018627845317583111613471533279318474695444769772460366709997135984643150764870349843200603992698432294250310113435857668574657424787097573235721101544376854017784920315331354099248346592351076691943828079585697660492029285611079944074893424904207974207270546400237393339543813574523073268297758393213060401953071395597244173542749021762383157974115687952872877414274257116156447995456743517401283926671678879561134243513135953237609223212186080417802493958345314477016454442001516266625975650599827825664148510529160811617046942816403553491248618193369307086215114835830928669815486659871006101668389687350950703833475742910421479721269549744892187638846831155890692934811675444158994498110215199207083769396794710589197028963122553590527513806658825211220826974525994982860728989033329787156269413044097443397738571085553466382716843427064747456564502915563299196238302607833418117641549137068614184517205364901927965161340354584949994274931532460356478468243268717493604627212890778497696242594942534450378508234465982045765507684951415779975734123892922392430726177618421787051656902227684941756203459146186398471089707984416060189699355957914222147376955723380721049345641332991826727295992708220861654154541707574457688747564878336099695741087287626441770967130903395749082828062538757325459740027687800017835873900305805832403931315184170141782953148588170476086869793623650671001106191263108227115165324591300522960194293434843355135052457390202940798779648412806185310414267017321408235323286448998643722284993755762145066943982379876819903501868104800666870786507159675717123405067130168076578664742277426086610238817538594899756482622821366472679699453877259270980868693541050366760988772395085848549116644530696154920239290019836722094417573839415694798531485732325401484363222212384952580792360641526642630875908847964277059214116132559984293510661936285322250718626501530703313899389152244480069502827406096135744092275336804220220874847696058698374026593111644549510669962285764943545934553103976498721919537732629049393540287912180478820691038836890870559398278520295297532549014182368287944292728260626652537547142536010646176878570068720823543479149736829583050688023406889930912301834259774357065055745091880651061304009090310644172884007619288347323851299276523503530758137572381619768263020319064413516403344374203119879589147911825129932110124070353449107022993064179958729980334736672176974555329125207194765246509799743086297415968658462951710855167631903505503863762381447778304627034049958748868444267494867448214513249038365758018582318421036739000769129360212960192279861277002199191450598866542277545061471414551245934182545070668503831868927088353473245508360929257724762424234431785578147341496740860894273174024039288153816678510200857002284051210339872146981102084747940233525748855357564968208273744922118557238815539710346477580409285069896497736855107076917972117280528696883902010966590642109973959892042796958445141584252187456799020436591530892228758309402389000884145216650830905876050677892422478648474213125417686532395115243188974554396486457867702066209550959068192178810414963443724149685309824715036650942960909361941725738523940982318321233942146519508384742140250676066447212797794020324328495693503101935606291470464070231864220257914206003511293913406426525724103623665690789751700140354221014065866878884608327880543272557334981191878561883546376144725847942238812531043429876061912423195145943015874767290892499124642959608318256680413750377374405464044783467097940815804085295101904992346370143003922974503571212135748491715098074665944555001577207817047884901617911449367895008668324769948619538426989838549736102584202582011282557160192843338083022504103415900254019729558617046516274712818612334018492276790776768443023366234749800316588333386758269132122383607382502506702902214497539538151132144738836383502283248809845964865209020908149238625521367776828374003436406670670006205804185836862603531595099883373374190161340000089264577166857194961038642949345795172614949101163079378046565203821824878323787091251352223013388279547476298743784364441495853138959773802627128002380496276539066841647426601391427513714908433851197388161190164085310700966198683669053614053662823081164786677061789666062385093985749937467700331394577908907257830530896886672801603823116269766047812395577944648812578098188192409970516897241969074822628445657803450321979897927793096478240132211532446452202918093941414882997283917430203898651296869773837433065452567618096428121737697094082671796707973562968207510362111023168735954986900020848749154218956136831509833876659316512704564313682420681960765305358450003656874383372599308524270112247204962996595474614206976576796461734031374791315851014747822222299543931830695746733176050822788637995308474672567204631907666593898762388708429966080810380555581979604366345479778507621659800101477063575129747796905940785690238921491246969864914550657113502149903765356679243476710391478867785402311249516401817894552945450856682925696309789952709113251582537943406376913908288979968859252993221894515944099480839586424111368960666420737145810077035576531206749325920256936029912835106215120951054633245905489829961385611634637487977203956414675246496167778970534382244032746181530501125605808559575073708717841159740358674487322221972347093256422017378577692361768341821385873774487606164431101084621895791000819480302851077128132545779316718963782090403220548597912121506671599382828536288289233100958259416968659397893681821918686061474208655013462478663338055406215265843800047996926679414953584167079722521990053969715733534509336372199757696291281288429665518347181434119276609679646240556986269825032267711620226766186962137009661381782826044407169780540545813747211084405805266818853296807456439777794920210315710007216393777022543183259756321011391801829719060122761094119335480071013178176096262785656754022336979506329679737083931366100069466200176722489245382224167646373034623505391403140714411010932867130150412331555565167118151286620998814076617443646611042042514312823823104378582375966542534694351993690743785582943441514274352614753207920043743947720718482803994870005352454193275935166001952967984736823279236171842918817450991157352315620555101672919827109007680059786088320839866107018972751225664787120897816595826005266607991459348031522964165467215518685311156529325508307552533405588866539198979136787634048502835610762053593435942289210924097821916085191105731967004186353218354023207863350340248269995850039049058234914126660506122417287785143855693200761592424674964214889887459611169867811319930252488190817814236218991128254846280976094517955559101904225630267323063149234793087462952493348615241596682212172125120601255817257700776876612905644736058530908191459276887417197143170726753070957969085029564614115747677071909092271703799564803657381066147813654173437612091444727644884708081744948206170427008900700947624975256452678884413451755918646321242229892484282733840024680891699412515384335353280316397224793032294128202637740394925328965412147061491262235859312776464106338205101361241877106367469093860492870241503056620735172192462132774697650760272558497794721901019947147065668697278563358876177238666684924649653489195191377523250416287933526479631766427004798346827532058228321261982898055315405079188957387281376742476235813833891954972754020262916167430515869281465042445633695053298930299441706529533922401638018624271498714136319177398819341846794183530947212972588645198280244818926746840527542658529022590744144311231047117091987059554556379563695914438778870918566715921166243415648790676433574731810419178757972135700422087495390792889425462016847630662207962648328467528389725000688939880907401399749712130448519911323071617834851122815415707122492419027925650922228869847030322828656605766466850482065101939924530357313119881798026131762012313208511876903933933051680863046131812524990454387702274393695540365418544577488499571632350066554618259907224745127694945039229894751203854142416339691212902877493602268018601777475269702226298528085598618283185396416703251681487674574068057984324371299798025062793883970851266473343902729150092767231886295759985241783297011364102124779609856079432569643197250197832505110234045774169762711853750734155668715936193151588494923534122717358000112509549596887556014640454542737026032401915902603873652548592873141687956520983737441747278022499301016231696538333592469569997140746100773620859664265049926851684314558201449795743782296946569236425527586295674580747082134404159059896216107773685746417636618586352134069956175772543597701738751987078004624737246140726034061255349111870032668907461648342947022902891038320383546644932813916928206709757833352245744215395528317706026544319929445854445020470313157530477438991115924081734995398546391650445435891810357725591234110419705479854771054530976831880190384430218180934181520875577350585098501092428018071100054882036294082636772232904321473898256471903738557942961480374049184081962894215814376836484639784776148618248074294453255219621744482421459996327265467291930754336440099037854680790591764894785340089006053531149612955617401013997081910348749888496137238615110351462377755974255784300459074393956823287710291667085261447046029579534558238576819300351930150153931315305915155304748321073586968321420124455533676944198581916274042223094483136653973301982110513893016744495524158258221613337059708208447932212175390692838103800536234899180185449408082060131006953189145423217267189646389515579500943897373382640986221676191111456067807802715666168341203523226538916333913411691994748067372075202463174447551694342795416256853659000325669977710020151081371210563739583415410220256261651494115330254988108348086795069033315570203438617199740975743714401772366960083613169307680291506875612940822572398159181280810351496597754423386310290196542683381594954025237618365749480782185154229866004553500034288594874550146107217128874120649193769105611087165314091196125910442812885228177658733493269380659578115911455095705964749042502946027918803167153559815175230267949937216651181228958062230775193181268767576930729848036796476611284376240810220281205593366089634312126690940813941147474187120743387134835561003215251100742482903872712602091770216990493006140047532761064640925905886916423165400952197443746614459250177388027557288169410660621807744571001133343428304941062798866421842115818437606811516527556249474118541375435265108873386387412713719412593197008334982732613166310654808153003625008282238691113340679015639106651031357220297712279236249238648160690631087268573308945854316038065618517471042927800041443463856969177349279817798488092630990375412198205618114831941880133315623001204749422965666435483830554096807592231932125014711963921620181491743700043792327346094921650824901383525204952039307583509873840536067791991054404999920456172803339198969388678826858528790318538058790367069339544870208051779800049587230070542403579843740602569423487798979801941169244394065524232010373062512940746564640992309256345047885992259790078273050226432817242822191740002595153293735412254767176807037571072974022880794083994853812656902509823838918035790022839045481654411616796579598146457063510586804737263873311185581284131007655707655103143572024335241855669292795021664282595538067890284862865734640145222195388532633200421612849032600210114239831746731193304464378494483989787582128450564648308801808071578831516161274902616679967676956867655430871086762915997396923568969675021249325576291413121469908367974293271312325013272169283848424415957450457951018815915312865720049164803268210651040322560273446037706993884778533820169602628496520685731434990761447160497986077660115658936280198121367972344225091312553961745265435779402532092387623187198331228945128277282928003910756047983973189492070806874505662992797458470289860393097711656525876690663443339637619423541402297441343892217885211021906954089201029599365227676786706964897079647928119282261531930479461811956891155962008641140384494631594360984417408261947342886704949011877774941788985291675445664249521086605256887229975185593960275255351894145764245877365574246848640206696429532544063936011288059475373091160093446544579574003868590963102510839906009340980402360823948724481285474521467543726231556116839495657877374732077707454254444400413713489744195681204565315328917289282754882030104065922482150903851020772743835077448668666524983246956820666570963620994716367713952635765038292805787422696810375555567990790640608091889577494148825447348704086840002919512685336508702448106640008231302181002588991207207277567191643312292547762699014174904230662191250667909466938912387011526248569178436950774192867906162853886412641978084050523369084785941843047790687022004026967411909400191846245457540980292362544311428688895876170186829477791119434053329934973954792459013380368048548163982267646553498387537605515644176192515439758062689421008258282311343383136220372675865133355511991303504772980183079813572172053196641291153261565051637903398684272201380128002973655825551988227763295081382353264829655736469295178034131045907973981439904406530986190224448078723072770937366793603014702755236514357986636351667458358747518518653208738262750948995958878065904835044942658674885617482814431051039844244062645285790828755782807644231261231857209721748731998161006574151144353305748889927212652230505418716380460384071883521530027266878175297785134150966155538760552770845270586769472112467173505489799509702951996067578718680370282263851131828508118254942011239575128737458088791647101241165465272355778913538375790024612075318709115986918201525125331887644589639277419477944973575048205436107594404643371903136999585471721578554601630239750433570699883198614240313584007617026673276356711997207705742557567969528369252524290164236170575492984649441460766711703514523628573618172667882063252039022901794805838248317602288003218775695873653157922435237652884526331358164878784095876846752367933983781701839162617756379067849442118006103257906233444924198305018022218910843928664192614635412846146725723466429681806503042622191173213642155273695650196057695191836303090485480947970741252711878293879025616040487139081347930375517747967020066530653761913104989355970333140876381015710711055149476880095395771537504356149046252437047285527244835359713406030110473473000397685474832839752481245835034018402679444530663982900703110543553491610106663320530236435753475173140872261369170319091636533541546796287736282735205762876664810770947138157639284790193282587074067287615351745812470603250794293076382360403487868698829595500384672873648151243877249752895315943630938645166129306644985632982569242033872821585641665603763643774572203505441940890863102060045694087429958577846892915825486762530777513474257086390206189350450015575728138775339462877893908017110289477848592108345645626645760418968647911334807916332533981749380572622373345071414886034902316820500861103239042822032259031301957064842211489510649956245308854384733241452081663823090584511238649045867815000833391718528657691753250587115857965252870443396010717408098659339491753787761748843736261850749120680719640486826940213390297922630915986023804570817188867471461474956592524001772357111726170119149039732800311379944885070115502972341863709044736754131965547785177024212238886667423775571369637763757609331579179276811756704052523667638145033827781590717714959741670839107763948706332876492457534698604334790744952496512644532383280010244148420561496933816085321139599155338084501905107649454700209856986852228996905117805420276562318122238480433215668385274895446087891304519995768354567690256163793526810670089868226132288827892476095378017301870722519769339574399787743792487257607504284367604031772217724893130940614977566553120654597976207396625277543537630220517552392984609436952404108122873077997368339986649169058847078137105199893860554338597353711972717800477485863039592554427656443467989600128940595066606715203207477164265580138854254046024268893004929773107575826187168654625186691848920598305931694163444070651388900293894453772357135262386897978523595888871252436884594804221216293619355380858397264672595971022899395395524181251477585119942420005492240207420222919209840100873115068016200574481150416516482286074145413456813059018831299719933999499103011939893462637489356199380878763207622480282426238500747499176240062435659801400412525456415104125591567148835150951377059676516505909533236818647927454786658198150894105854551096137269529339369879079757624663360380985231651711953776729736578482268328056166381212753523128290134768711441721396893786672137234929046472010000732303168868405423317401069775233585021244990185998644152032788315946970302776856066320971845115886785996679705599654290326081168720956674086840933238704508451830060008644504152248048964368427603654827010003906315273276382305762117391186896169315723653132210422914733774519693146998673708647400535258779073150864773705543267233020277998001007582660831789627683914974931520210720013420132254986996304676606907837223367171738986492411406440231963852824747691273768212680018752414894904959179913034255544473398978706867734976535406357655351551368683402298066902231904628418268693509661884664728689339971092220952239407571089105514804844819733209538055838289370368357072684100566153086429307018016188527156302391460037426065536355175689682751858691609096464371847255053266099395908732510377055526435062255150347848805844889459787552205027296094663623421227174979872315511723576088179871906852977821395444350772200816958441422825217005541793559319816199723892005070081640650737147047815808632331061890928099169801757046623373289187339255431670950890870361988727552587179138455596766548376984094930363352270122695651522434217783745771688873380862590352034666946266886688443411943310370701149265824496113980362496945168348535663455337349693221308441749613583026879619864688899018989772185980181434183821349564678157130656596446184649744843571478181337026057688793341161174330171935361626024274213078273565267761317909753188361108369072692599726762721963181754167406979744910151916676828992442175032031041027633357855378788222744493381910853685766384505013405900902871995132668532973952425931393671481681585633368529121260865659032116164148784109928571502946155676822187107011794703735791307857613029885101332818812924129760325774019729525693851074934800043943674515700980824529771800071717207690872588087638833764037853922569817099797850589399749163584231567104252602480559287722885577562686686342224677271499805906568992473531595796212794922517318324947066151443809462087763474804492079525044044554098888600040836121550957805313852210362819521259849656077926393264775486877442662353691644157892299048590231699311194838831432510996878489944188380675255442415922901401820129786252540743679443907851049249011023564378571678053461694587363938864171640240366222056595872203536524658750644962720505079320031096646592877819219523064923193825420277481668094845870008227240481017077966709654740413889092675975722616285720028292572921874608205938481214856864496949135962266582712828652843300832146661765960634742109684491876931854925379996384209154706519706927235763007305361875311294480494583127885508952564452598124139898814991335771453076919111414109571598485466774735705210233647775911941236487592602430130361090292461506139918397035148497082348165867292442437710314852735690596072890776370193110331040085998058180674670281518144048777645802706820591607607746171428486407986067701596421629315086315080873042626492127493294910071689695244873257987679987493040829156297835510754985477040309360144952240032988518092124449813078449817472191772551390570529107493062988724129609976744163242307986297659826751858185572912159530562334497495620085386622686316940228120277993521702428749240461755594621234110515983959112373386885652542322634467668109756312455373577299494320080376271485752679355602228314866409981869270150513195110595821795458767329144444753042056917256585835172266113776102611227674356005823771047259330681640988823839145249628020411660968472203684412588319511035484262282781369302014128267712209033520367670354047680797865651782266817650155798818082978854856304611002046019979598792373124700936753927910986522514316119919204662855587059136797782206572302836583378728745633994676606446662438170730897032767675344464595548117759368035735104235777303295721777145699131846807512731607896925383159447247398293992793146972815060715347711370392493476438843764157114605626377838234707354951555559837979523107821403061202537280178509579060031058995168427580911347908300129068760905801040282239360294003407452488630098933658306906459092176309162866046416138512541690556292060382167172345509440852935193570661858912555153880289423151564275961316262835089990588932976961000136888774939349710250692377431085261600141999109057088866152872200636099505833432954774091606579599812466735668190038618959411832034823090642868025703422780088782415689217206243749363084468358258967949103453992182065094267478842401276737508707884664271073443738328560802215244685450362761703089489846662510340297993196286192456204276514694419590214086231864799845873326673557680598201278164714946353872186267146729542689071181628424972988515371239182404397883579135465726815515718020596300507195162379485894725983198761904068127924903169455070622887309392211779585858909842615556824052945558710709092135263183238945302825531125573150300443485131947204974920971495770086325028167391152299131261098545828095104094433940465011657559625299658047506131442338305613718923683858080653482090726115802871916860414257883297185580373836010511791831258971776136390600577097136350270380985122543366957538099821576125246441874294183483559953129050671847424766520978225337292842341601114250301212856358630028058459440526148442408483541591063237049405430756914217619097966507146779544460718612408452972866482838351869820854600705273962795177209184607997919511387768852051766521754184578617091466430184626169513444904249539112355974332662434244985572217690885097666023098728351989420395306371060486434706939358402780628490367574736412168162869790041186602016482035064862995927449941831612478996808284706000534433781558929295188480316450040484062295279405595369849168257392568532816197791914297686116547317986713796421511885047988185903517483796644125467219649827619460509337443117309613992600567162563044523343153772513431664400711664168125333676905231928903358868286060898542504225895216080563064343354323883181306911398455275970069304238318324223998364234268434236941045551790166798870550715896060006510867157370855719780962176761464168326909109047211798704396308700997967803921378169953537912422273180865597668036237529711958991670073716212986103635472370876646054014958677795450969968275634981486266615145128459992513732899924716065177437401382415058239399749909994964034815536544596241381364256047648455915506192688596371367908289443475101818106602776400238404611351192102573135524484295988641332319019839682508018940923690071758120986352128290741263693981746003130329469591757618624301407105340297302226566915978657558324458104409084665323405490636075474812907116088448287676279888622751020021793565668376399740574610048563793229015802124352679842949078907307534382724143116725800421477036368625956799047578335264582142586353621625349492497030012960418085851232282410696523156852927784340644942679773989941858250136935271152601508517467888148972730572546521354017362504380293760210546077209542470553423252350157269613415641148616503287354736210492149500262477958979289723377463425845115595791418876620945135014648295361136512378678343395308271837171826426644640299632946010225726878929676222731171179611631368390302350922276565814397049581183604898073254262904816026159989555257400126973760015720971430165275810997167811729317425448797795095489635226737636772082265506112248186067478879836540725868584186274770130213941681594337246046945415858262446881132044347800580500222414283218845361006132362409746251901446449952113288920778324620771456418061045050274833346889517209885515126754286747650838727651392757904612036610712511048223913419665610707306643302893431164140184100138539545460066022163977297044538691206283898701097931051916071757958251279526527003644577975345482701484189233680999273824010073028681650696674510315164024070013608740584864465645756900406957729059621169954830461682029980322567193072996055176721153763783743133862264580378538068627217536980488894994814011815947200771942169357135337073951679847291175349418952264347023489884268372116731265529878065758125741714258405199020109581317820952864078626462871429840304164923893075280766940569701877043627161800651693828641768365958562281231497304732732143572279409446673376573420177080129551631254922724141496343621146113067085815478389176866700429709711027672595190727027630811293002457407604703006014764834549378712495258547570198826494670973567260788473871512437480800753014291003731008600960523817628708259234699227351418388828462042605319551055801459440383205396591108562878511066954023647417051712503895446800314080250508184212447866356540018090325817637951293138490330418325945595636488087389267527670014279967884267409369878164397776801066276669946189209705552671511388687645603441299755711548029223550766148411772887364864272380102332926081781911407809248646326369910550664330913525266701013603653901402292431187957417069002618182901440364221664446809560533289604433774253925169853913780807559407420395785503468030572667562151672973317835881690801630093292734522021254489020311532943158785759084462867566797572123807964916548590252836533015143627789161695991273933409014952087094100449901662659151227306875157367133506745985030614626029022721474731300598733737362883249834516491928245672730025501915884656213208143799412930599242101008723962845411318957490439804159273062472178329016421251549976433022424416546511531478712055563498772699633693452988568513194202365857997115613111410102519205054766140398432189482426149254165450904495772673511674830170867235163293894813667009072586739853952500596712753311028674230671827995713941551398472124734393909115225618431966855321653087649747038654514224555616417378325035339185833939826714608113703828242887567080524152789934319794359315341645175598509269856380120835963945728141993271101291076161951191427936089257028754024784589296732224439520672156440231988869713652519693725468339078036614787497011117215296969771470146769532569938807095675220438142435181652766933962443234231305424946557298547473537431567653786054396350666481345605682947574699928132075753302540671026124442282558256092706571787185036621341262907628185847843829935025096101366767389319803342596164605813640150465940265487803611713730926184457071273346434053743865282362347123854656182977606896401615845470789628055025415996559309397685416259659951445183640824731436723470536209061355050539466701959598589037029572817190546760621964974643421603090307971136186562943476037640815844533493353038080067399363745574136079393409320788148349150617035464258093514449687465604470495430908274598155583979560805759432226916915738422262433398370775213205649941021711386986624817572229170139084332121792349726078937541113244082210272000383010426375214582747777472315076510840401574994211515272333386913414417097951438719310253001102909570880509695621849800697441945124012704616761010330015138465697732068952072585210969141909620199368957229005878336847707634411005007157576851799024817033265880658174531490828636815768938245215694878952463911354934253458895240044419096656709173865770088518741690555106659571626465645873764005070943079886337593630237394336188012039913163109975101304991055897545191035066444947130283276099513499114649112510102542308056972229482680792080090815549594492491568850610843276472744487204888329317880375755721045931197994442172870185780695068346508712909375415589117924719288388772680966555142466074637185920634251193352337274539724523720836336166347391746194191800792201405165495037872899125393851756684555330217184815406281991164476890509886800254836556002354767867446832938101743389071699214936817160753501907031682194061180562896674372412018446450313868322227885680433797125004101818412795523003684500957924192020692883022910314722968783058693422308378517404497407739171768794000111665953751013261070296018186750676987570326643505674616242727803428496992762620096769582256217264781446235858791243917163234499562839284105412042739428739371451985181356602349700333701006169566123518976115150138560648541923365755310656403750198347697776640846496599845980681895164155561350413822038356422006471746837892958343840999313067542568170953856972315118658245072155770987607493855493546315925058786737716251557334138354437068458002327050754161280628285958484315935809760354557558773115182461659448603814368574053354488523857971022550352050400731524209304719923065976503361274451524887716949607549493091413300730297414340793391765538287643006396311038112190535785254821104800882187588955765916312632653809322563880746879452432535985839846253549058956570523414704566021207501110994520284497560771938505638850897538327412501612177446468281913581781279600891666670961365987860422732351657511862169150787175683620024872825749595796900095628943668427641325680030923925773958780163839989337566949488035724568001968089948137260316113329751787520374803417872728216728636585773299248514861298031473351394064990393048943013378170210626504005489861115191502002656718684388240268373231158044568305025543200688899344751436337968990043074972779830041523922034704813584029898609261850616733439594949115127070177575453178843543971990173447127029589586725750996764827414714057963488870126410948479346360853691401825891383394051932097940761459332433967105038606645271576901649174598812637044977843804016604622495988814452892909373666933086796863739008013200851352986735525700854548964804104454149603621071301749291808191228426045105666169829551577552731354385935703167683789290748603538151607489401411746618779727578261626525019782458385760686182140615058416644122005621105761672911391469084151458438026068329331644274295562694071847106216615937249926334668403556597533418471623892528475991388319759626788277593740063629515514078507026533147370692989075618846853884660587675736162175738458816262296299589684945360482989165225378526143410597759847478866675229294534263594366143936479004284419447761989563285410887919844057028179564864865499543068723555385793662983446605460844430178774903455929334906293022347472074866099171923330056979836692057001329535510777893621364831898816603076775884980701788003097078482058515131867868383035273363394931289028665366296353968708192786915517783360448057545595918359211645157904187571112654207479367789346073342937248312077345241701218281662497895046114257125793734850888274154720461448107159692035850577967815254507879523998690132912194604637887298779458422041467707340559042619172302594090123996312845421864719356492457537494709609099468782942915534335228629238877941076017382770848775777984576462793262482783300567030318606166113766596157559071768001591006127157874097588739094941873348144537428726261762062831036198353513720540216314871245781121432502704857332406229466155558644946351896500891545564504930315404553778525147013648151702450909745255751346568639790724231805728386139664977550066926954861383935667793656213879701185002278236205768070022089603945472972700236954738083931459794545567172749281656231149433634739588209080480587480135352408250770654975046725126912825177299799419152374464458643588269104579685941992132713612797528964944739085092925512606501039344790429042165274112606337577441905592305537618519170944195450237662900638889926699065318246526083398267411424487752416858519831693149576580955834676537559227123066728614550490495889319671207527980496136105965022548160490037843638038115854002537537290358418950806196155685196538878840703768015743981785652184025597766417081998878142964770738888995620665554858598688136131543658948180433833946842456568257554517659091987632781962543282987383728819633890628251760127718319878071721185734595264233923221660117196309684059609317353136288001440635543644147800335166754233069129787844797106804137726985758944245087704499947795775885029766228159378992344234992100084296374851322919755207602211403234920099351348054587861109623878953249843965733198752887610782743841347037579931107570345814562398183673797456200487784404368759211780535846104731696145126897666701387581196365644428920615988466762242546066934878576909091761487339843533246444964822882376772200462014710241193398357354459402942596268502076469177849268471199764753749431526845866235736598471849765621186634593165057776846501336015727251632758259460259938524069231344360172073747361788739593168836547214326292875280381610473424637943386257649716723502624953793856261710377020476622615047825106978510171481575392953476225902320948815175068082678721590495422650590720858887562422338971132122417179569846472048251672015138559459250254776879079968281742184855513927611885018996348116953549113668001686308065520224623645181292279917937199940660219713161853830797015521005906303308984576249384731409616725700708486180565969707077305043273349018926425820280438474794026153565906323732932793664199080271407229716528137714996191513285158668447141338640291154861705424105667421140310071695702621910737118875074922801887960824563496989392926913432657527093195296954715713786520565838723719641724955990983669444850665151997643157152064399480003397654702132698805033089139630194260965218722691199141261501469335676645058173049510028040197456042097619123334234100681001861240648999218807266984459963973355204162657456325157919824776733307166433449599314823897724779829898770086001550883625634050062340838537898595805029014573516277580581011616581939099636104966588072393172313908741580670927667954778682920181863150373025471165774196236965156813441660085346578081401071712160542866534977135441082346389402460923353777415429721844867839461554639530920630886352468087201419795092093840130993745945637737619826198494394553885573048549085422752350653227908078771496112200844857525617710306392033590626196205040956013613658492874540914688900238725741087514935964980001539757069989047331515477634759638979632090689265873657783517570858916838671894564807692659363407723630542641628220675014242978188195641738477791625174849512508404275264838122942486373044461833352266428570689970342904964182993612836447791117215162206419664301096748681892321456431838524463262424097299247676455801703005107257185349960086531209111281941176841507308943520654928879775112073049068951166089681900708027269264526307072592479215992641163316513817815008561951252118792924934423719137468770850609814038127887882499204584152669040895195514238784548822717882374641751944722292436009196610550663729166620831700552534700825034434989554800772512376416343974099612118083024357172822672863721198476156327970965830413413324459647404195695700301456258757904503457387418982254872850155144861094695214506393970502148572449376782497646809165493541683962713333755517461013025865955987161438448682445853420702822753114187923558123225507264038816920379132758305955104179777333846603783898688142163550022109803801640484048308579762504126905913886703085692430748875838969203506043630011380802018749709116183114724368913293554069872006250249377196185750642926240067395160877492877236907734801116503796741152605246696262488521553628597385701407785244108512775743655152603999715221551560594077201445538717533581535984373362700659160999143753526884819913266895506670781366640808346619952828147423730265260591735237925381111813578160080908287085439802500710115804350764375819324167071078485988177649203758248331649052244007000781736821133438523326900438373744043898403512631347931194308846992548624265745108587081242863277482487209137250821069856993070733309098117171741904904035178317375043243346539987555291679958744659583638246081813801279291372977030009784922266895350292529428698548918552399534751720176391715048584355589222040445805312315546804879122380051350384401784558350692393055113380571356915839368307628257213682775041278204553511347644400605562277263573447364053334003043531248828592873461688901758458391218507030317512497551749927055685282587303620769459377761208393965556442807364384961952463437625596301742473296564889526745697677059498844763381486808376768630293766709057117597953715119662255604694302805944846296198246330816577330371712343828642930023699481967154601592119959792419165215551725414299583156087693764835041736503281013083776685503786778655210980491028246262366265564802413643745275830846507769951692683309887530338779291358407074549659867871741496166075239375624284462375426138464433079589798634813672297952743717609558205420453804396615044029435585779521051599849094196251120405708499310572531938258063687676857532648149332157125106325823491584843265619033215590119035895239615736080601157309364174380587903236635619939464175579623209115192120972754968300760468824164927110587125704044198329144289108077904812876043193248095362404884179070319857425786329096182596708716373472574420679581518731462258779674958878285816095532378853207674333805379011994100063703755933593842287923642476136192505187349161892540131107677279755333660212231949450395561334547908439603333022494396872389371122978984226115521644880675651476081802032014357411636639242059091287141826674611835918480380233772104481410595517522076549950600414670609319381907935666886590319588446864036406336998549885876295069375538966848674241162533778400821230089876133494618469282843249576846504166534478088001995061260294308748528445685417778538770524996028838596395313715816666449276571709829447275310878816277771167805150298864554408202559215558574047450113425519765274721943060414317537721477868898738582681655067499593126807617858514467746031652086850708592834849071474750249317002931057515433771203482328153804317497494576891017281872779111386988220523238628989683195880316958852937036239543316430976387889176618717045191977619998321437252468862953511926713232568048582380432148339009177004125978288696656468010856575944509776007076022485558986663093588389577769853994056717091298152811040346893984254747519094639901870755214173594628749932403320476908445432183412749044438527644969111438544607080206010229819555046770048763191140883063253637642039580399636912853684876369229755487417248366653389106436394295844980580288644965773555654157340998288706879927853635087195556293107275881633213783178503586828222013012502029667351727762505662333338229968630604512019850423270625426207265734036839201867446435229830356755431075254952699278655492962193317455807650962287848728401126133578483856440468328386383451840338080249209209196474159841190409721433727212553498063493508331768605655618902228667156940162329020858128582898291404561291141205520194212117633601465404669393688503279000917508896810578796245815196109255439692685291295684674650788492964779695446141625028941686946611494026259655131769537041468665657819435016306326245739264790466135747804335485862705910327996381366955649460799357208594383192936733005521196065909141043250382217819206590599027363138554598310577480407564390422360760551510458788254226544052414690763847700298581237473396810300744823995304377116518766854596193026357607951907212775775166554220944459318063758856623094238538786557944879404699887547727933670603198244533869259364534074029700511092719027037420033290375318286856047780705368274983924207852944727300040322536968912047722506636966994287262665021888542376034797111483341511371095326662449483515712519690250386608094728221689905766745910106655716453723808365411975461295744453915364669560650483778308217843166422354097439562414312649643754542945827085590836637801136327127031855819904675524417695104366076964310342616046465315692629448943518680738715795961987801522992869707850279439083439970510729845739163470077470488975837785103121801957848220507349591484512968164963056210521683981098069443876587170192137249315424717808783805299619437803351645222220530706364179229654690582739989115817710387908798279975588819417067902299801752818166460062359868542252845389003703179853884116323792357387913435775322448083805973198873468749282344270987954655848354364784466320545527280152661078974507268049878557869690393473681783029703308304044371223064635906557378608145650413776447731604821440562765915946257318336111228282244710987961816117096976789844619733479055880670358151403482850522902162687105463752155049839306854074479780851394371879016481405443280745979534791730623746109512565324294271571805783630437414466272496689168947683698546416553628268823620639033331635288463834481003314258555264705664896540071342041941229966762712033318505829827733494390885000857267485646393331634578821308720057729558220110576722489130282206634962430580060168712003035502483595670009119196923016287678884814239661398536502965046163698080304801790765280315289274601453004989148294086087405535852671940947089661138115905550868275800621178642689526799979015771807905825642475074944154872072264479170715997209450192078892641781875437789314658272668749743332116672578218158403674948595715800116651499720644605231690373767148444929289077094199242610470202780466401798009552642869331303838972985536937027146941414150011718446780788617229878844304743949708162209984240245302156655680047302515768993299355285998605273677140500120181237196886164566640515640031791102290497973730568357786816586800759432077017685651010031770056389736700269885672713198053388443427534369809282020002754036258894265613088024620927390697070982833019621425662586731414126904181288056156073223134034206656613509231089544281254725956817130592330973734996770621348900795977317077193050921587965566078328119800662990800019782338834057949232317893727908688763326633207724025834460719503799005423559845788462646220402341145045625821973021993529920002651018129242947487615269150476319466785530710309022439514096686711950574989705647002151445820471498052439380314191848922624631561314837020591841837895490070153772856762691991849917823814112987284689298300557149059175276109291566745501069354941901525878691828495348664352593374127585097060152014424895384529949212281941747458619820707800865287909476363332274096926997430654540033481587175250590640388281267041378777179570590172142967146434977998917720800352160065994267363641265654114639889226068747641952372741413522897717451017743519902474061161696198896523231743905216948904096193575758810899784069517019062198664156689121415251950790009292887711814931295671055733547651438712577908002028954371449685517720283724085083915807816618624233335942815386448983889435553381218953755988640104750246844960088857084534652753249944418977407424980860009968440181277123477426677315217639745083877836403901875802014635853320162654143815069434690962850140397468171459212466411607425701652907608256780115343552605264520481154698964158246260231001406731957305880470110628882217892801659614876862300742056944267653863729233410715104730165441439088192031683238804640156303046838853563979150709850986501249696093412928693578310681439096792647588436885761499220175785525758283272296217736241233347839998508624658764498255689214916486292193421003024053175309870446195510452198033458655990253591499871859651957530007812421163288340267345941246805629239898173096895327723521303263314163302687973631817805625308337313125753365137649773071812756313008753348087968213578961203710154184296996605084600543363337348995463415787368879568775995300259622384343534086274524858809545678030321266946225500074402380288664416296852270924875404510496029971697299204088720147879194995095699965050161399870915487414633819977940650030696904914530938495528223407876971314330056186610741227133699214400965684097102963093458770985887101576045685554590692623431383555261154335378001357162324042117520716922011822530031862114425822055007313227852117821285380473262189988304789880729737733835502414774266646134213250337345724479626682852322267181074806508751415388120528909838863267391045231740535562454542242782518947661505168971568954015691890326607193198922932345494315508982024438146662234677253752087442838267602931573032104220790744215103882188934120496567966532155694032251065242354912685247158343716450031475614969914575787916844272132158070080055368678056750296543820075874348024031887065680717221545150734953110152552180493360425768449691067031095829013134207436297010259825165481682169971492915262075553628227857941918287985722671426055527207952469938530847421665861174221428924918240186441314061005246499595346362658103471466680901336178553142260499698645053825369745826503057016177343084409234408225321815325570611237825919391678573410953773897488497661788367037685658793902829417014940222061636464655969316378169740446992783863762277431470900629448603139440337824738724705161165178794247193945482434151944759715353875529137948460687952880629248644427971030695898654670227193859602895162865438630920517626622042900211405393742976829248122838196451167166909965213705643398032440581976539063853236765011116913730961029714535246418000632732141065407336856192091577257407574528332220687371143530228833932011574776196560608473174632632533704318498635246395121632128529296298471773131886798169975375436889956263193232054578698812236817851806829734132340736723251764823640668440737461337648114647123664913475512925901515282266574718298984580841770670912014361019044581406329897666571941108997966154262302101915209761941869095198362048020986214668994015084324529874905231431505424732608496652067405131087391267662961934430225515886807991211377133918461573553186637459074350315777403862425126254341402132614723423833694490880176600468399242177897424331809068139337873725768447991089812015211594580974239162462301038202641572050427363827346421829519160753661447707732024026119090916644671104560772219749283679008792540634728625174803889958996444120401251416891751094591526789172443396837086749511561510851904172417681674173475874053515561031215932773291003353920800233442765469199824132943460529782901480706067358273716947145711214620705494984340583305966317862469810308421598967305053974262191685423453743775802089063380826072198220396331739160461270579694047246088385961946695408801682997441732988244965589302556837609664975005234355690338544967522247173691787168814605462208463492616402434698223608423745341919323752994319696983659789866933193604023134624016260560513806924928460515869211907136040975583993007955588578515370219945958197899051867970281627984002567846910993857240753460250858050468381749182578128211924204430211447537844329775185831929894503577840641900465147092648642443497301739233962820982538406002192035042399126548750295816982902085254841613235895392312814901061277847105494363905887537006536957818536695047373045253631460101140565807313347417869489660976091560088325659284767851491235631476647218575601782763036751829108800213912423359314510706509955456847001231709150264807148598648920299645315389604249762220825786499283308202173567644007692756402514395243193102361150243548243520518420492774495358025836743274694457337961172166992255478641857078647219542427719209818355624710821218634586998898593567104823653567034586296789526496041711877089947740853014206957026265629061003604891081700309711718548030905059220015411996485804950392612598283631761410025967568288411230029715882795156540053612568962228628798985131181824883724182555559554391975657486958076457533362155511025200603607834220001753839225526606216980224200929854169492851287668412194618500858417506401888169881264815584794385532217735001921723600305887464971766910054943914754749964835294335608297985702902453208134211195476275914457606217624567559120857984687286665599774172274621334484283875682524494802543898113301032043432676553240098298003730457086254449281286426981840905709499100560145641613530364624810045592351646153990728627026545021277035789197068630711075963508558891785542614012596408683459853248739287363060781694880258299008887881443187908807991067982277980224014632260765004514328408418572164359934968105143460655985128425372850972517815777648623317207311147215378970130354438991019190428310458891249873317737923670644995261065668580421297843619065216436610276912048559254406137119865373686183097377641546036268803222897440195981580028837282310211857740163088695109657177438337894720924590853227586976880750924223562922903086501328158817729044738692374220581367572302779874651805946381438735996090635525351795802129682710046510701409403965224746084110316176940645638128591179801032012739425341873871383542729944334996476443369376575372163937945182903951142239585905338127603226020996270248245110051509184672197952341104319988551826175067522330847648305780614300322127991684605860441354847021819192821233691366314870691369434304612060760068449227772949175245454264795830381209825919525510338366672809883542976780612286619380515592077227355400600250765855011802136012244188260353711063284601219969702700917645555192846541872118045207019584785497730613436969220863993086770392895681384430570168511246440213018451132994162612853533422926919707484178733776885116353148703129188778484631476901229953943769345910134416818518395939072147546996015643430748468094977560478825770845359531041754968447793037226825276903709276906111812470936197181718868550176977940739120318083644987296225512024842848967782946390504884363214584573977150936840474150247125378822782372780709827685277314271724141199333177204690132540804711486858068854731979092531993557364637390891314169914819814618892668510248482612709388613649262306615026857977613056203407730229071263142389909200163072076391506486807788355220887151187695531729197038309696028771375839459864947404310001461099578799958807195912742821225695844804610362387939808300379749091203093500201505803024367254065274672154404448070942544192319301410870392498498406588670343991855171058464301300283404528035503303608528836474106059480584191977329428200056470010003585509397462815544027473411694741790859193465710840779519957743021422532375673617850220247238571412335612113277292513602456079101532185133829558579852168592456556146516495995480535932245941390319364061228067243138061452429117402301656167367188158233034659004339108557800028968841086368113039329670131508114227097818424376209181153340568946269822422443550605416178376955090232739695805331174718758617736481462435559940530492186862276923522478314529659172232905307545207819997408504073568251869371972978897383597456943815973129509024262233244321502185415035991740595029901872046586631380109438307784501187597651338332408991241330464435824342949127761520071992870968441676369651690496566765626352235777083165209725740701377696334274541468529450251203511797550604713164255121058373242107110307234684315983341331131463863576943607274149044977910334622167481669223776856017407918743587638344661242600591372813869559683526055572463170411829504938851779695901717823438844482088561638427559260498027304758661901164786106487458351642190057262742824047357211976279241793117961291234504069763015391152051576375854587266643623835690005707754081966211998184737402230067602915158754958287341154286609754406620261853304834859374311514026075206368049049715602076540869924129271770030299311509989328973098009288083403733744536999232213730755682561243850330961088808189651974871080574503464402575499405901487390176048559353959958990169207152576099518611277292669063306571361780262294557390034632573692516651688830417640821180129066489138607686869379793972068954717922954404820940024203940251972619852691918136172323913006376826911048132606626762275761660524428913206362941030976661089587686388814312049203560515718258343904614299151569991719951320687892166298601599067709789992663789443045286409532369877926193159959860541626810253563821583856304825770298313754579830666460394659272923813536673119422137136324151955561152818126281888489313923768550741821634526869388455678471276432178489758261469933538110837174917874056607247187016510881434796150576582069678096426403654705231766869864657857748620060552265814902392342724725297354222446774763042554447089693367055603192811266024509194994717214789496849970928598891682882782278156786724914072213099017483594845985897613706432500655245883416419725481652726525306740736086656930787614953090277566328651305435329349491648805268814091192938064758490815720785648990602271510899062342139434130977769959831415879281135674758172292977146615019794681108727346872577748312561040430914760375857542489128363148362147107549239000632551491822604777966118398952841391239020194306402498392009359174429706721315922490485079440072272658435206949071061908223156185661663217645152817103741982617717273329525948208869276988234755583307612127667952324927350460801482340370515822636636535329062302364789866324728341876176641835671155762082778367124067207966783009335236198804156765556786049992502047194530173237672084021282167839921743333376136547398358002165227104212266009953188168086724083948684455675417621261702530890159050486243434380063773922402579047003279931362725541778025589450803656872610015208541628499489418930015182513998374608974182110074234468146037181791205103673461814084054182551111004952791923927908898271129972113020940567650241313141857619656978702669504559135625331117007189654525454427279442664590296711925025089051603419631824719418505858471229735022733889619852747798885317752795945806122725898024355440552788223493524248611103310399712748206086158011485145074757945293264053069844217908378061305801621357791694977026927807403731084783792211143162468647305683052770361743981893266571243506157608158127582299961016210929149468167493227461496435101955149667245350250611534655155934103416541044765697752546809282108271832348850742684378075487559830926582133745592946444951106920614570738238201870198384295737239052381562067176754853429282765937421068956207507440348013747246325985156822373740141337482342404441606119660767460407010678826260528930457771354570608108199241913311067955321899742095084035318778518533100794330729364297824366337149516254150765871381234963374390281015669793498120936223246991347268576102966951737220656805130254274101515954555184697183166978424041093656400130705856764962271582017355746780079602745779425563268342479207520824372215818575572504611282501468224391192361908664521666323725017848210801366825179004482027611067268008864245918207358219698856012851641272762961423170946482428735383214000752106036208246030624487729450273110924543192737994985999708532984958792300752908921787975568198402492103668380623516584112895601237643800540856870998843070304951592839176109339187282763819502780501190250887310708952819880830080448438411301449617513192368365960838606103642917257748278230955161514589147858078992211575752140634971775032537963304017606683933835505305223422484417779099364615665632777330066747062372051804388022438402949422430971994671061226056934858172312981966529993661392338068596518064868835041818948471927228435624826211589529458786236779711396981177521857901699756599256295460432653383479138240772926753009212274843345467375373158934865568728942745693928521826320747220537495294771995093877726135541721702507790929978993497209945201225019207845293582497539465959950948476669276732457074548021805410894190353235796223103037312537600201073471052740111055179083129391850659043691318919774792467567447611916599846894699298558074965790131575324992650683512875694753347037283673868624150806733692827348979211659983193652074766334451098857767571199376024314045002884703666554337054287457136499485647635402681135331210285122816771926910343508078003492670288155772459383568713601696380229445707965139708308764753516832203299274549746196720386661622389853670763656211172673230716027570439387479752310007500565585988809201032289382722886606342684451395614035193602643567743012251391100161624704482278043319834725830024780274733524454663216573028819138051942637427988685309172274555380607578633654222225155769383516753871519463696918298263075761907841617659834599159020588511785203183323673758135880826851416529088439182734657888737848369340382892403404191952623375152224641815341087658179634397015697297696128953598639909335724989922098376490946175048670359720351676571999634686976226539302561106489525285873431577683177323500786287109413424854240459484294423779555067542916892216594375118814653152021177865446052139308885494910849225958561774453346659070330591349402343025644968370374473622887075640564840068527191964357783156069966042850390203986798365084440380616221052682934377386837885752343271277083444094900582743507804862460613521311309294698416618624454259898648816300555352536559126580685610337851614393986966147488547501815885117897142603415653845092416526943652847814030767578327614424845752949139964243139200197105385783621241419456438385221889334372784049886670350187714944894423719557879490135094508746519062611080638269455423334744699443765222676225131080735597611010199460544492134117681554855577175535429620950684421635433545439072399364079115447635578133882338073227293174542415206402318120187814439085685983889123235709255523688522022299490137848934888376337201592106670201403811686089292927838520268319252578964051622978544485164317153621481160905149827283971560551176707919363334009305017694624755313594867016247624114213353951526718118531562727849521367847356633959975964800698431455740982315086651520213163995272184600265087283999351897779394692136101297432378857744281413361696073020169940590146251417948690283305033533513820901706081940803020789993547059919491223456125105754091836660640389507783992341410927236428237507365660715538237119878845445117161193714187691224867682224306075839900724761246389541636846096712491848143524567674838558830804734443181124862397626617712113149726754174138002596615535051767927900261476718219018551137002380425515476994366694695468268148649732027222382714713566325881222135220098558424583127713528469823597265855829157740336427249008215921142018595822466600119105156863506811439991235252755902300060664411193555356023262861434899209479700716716610001444125182953733393017200074410178982814753936521354339379427711173666589723777388095523935435691861047697560968709621519670423076638492229269519883580633531078113151807289489229527604521298681818466001261980996112307580363870904919769232047239059382009326012877861416690985022450880329349549636094001216632433260423800950978180044661032814151899357653281007673026431205818112750309916218382931437766393703890058100237511721421353809258398114712808784252363517538690858563235668839555525662254906836931039098892531519301843116044289733130974945417382665221703568125355882452517021955348660189847476041479090537699747798947788192818346790261629183301096174755989756950722761209990567901160759080962271099775705615008502633031964440655980448382007986952503554928979919667240460571580106195801127051364913879178304708145356219519753056369850152460618150244651874613947873164849682323440451597902521650810711622847057918908566757306086619033291411256821743972615916604491331002576215605606741088248558032968280233305052813372861022201911081530173471858375131129840516900777293297369092504606047748818807089432937842717835607064676305402239194991399683018588046931120808639364689002981673603110904263433752784055135844676873110118044171184562103254530234851433134036637683822734269981654763103334556733175110182843254999926315887436719423022451514056129181783782215814089338093373753299292979856722698351417875347266219686675657864122401679130629067256831056059136918314812061182986382786463531014749819383663858592335476784264265911219338178409073948572978757073763031326982689942477386366708455571092622300662018399755420958283638011644610794574014914542931319010280079273044393885420100231662678944129483581673524622754186944480211427834978978991709199897730391840447033105702130210879053011221528388467464910702050229085810801769329386326591476608139505814156216583508694590653801289533302851054820795465974441813321190772337575759979914135889117842113930689204685571211751918168883196196110720252497435133545779424997058837459164042858914684131579175453418491054222868924905925413758581441308676574338852378612143262614711490760926949938121731841820829193968955168246344054408385462744650491232466325626106628068886511614369831017243236961957446072052880782756379275656860190343211403206527080673335128408760942594596698617804693745119319438549707014691900529948123311909225975318340933419006010016334218270311243512938636867308947937631184035104781850064348040428101326123398840476333927359588701014007513036143231193906389415880028775459926341291522440477155724203506208228872100327797296979106863001278765637222653312159692659310908015517739072733222451532783180992695004800740109231330349028686621064753873054912882304658909747025090877668364762303520510786726293631281401039057184016790262729752590659445892859147991005003573753358935839879896958172972744553123521965761558282221362741731985986060743032032928034682176541705742363465173035913253102005304674666486849516718334151832952554974608732005835907423327925806885116959046305858848191640976193236244056976475322367169303844140567483700844518189943296559878416315918586220272224465841614539066699712125975522652280031817744517243839050395596559088462711645371826153816058722822315222730461006636695998434475175458054414144817958075923506661073059761332537980212712094127480389088582964141574923125632578080574997540523768665299449663622956031192921429775973576175798748605398950080449861484102617714932733199342370205588029207341053151504633083226305436007032262688880890732941061091654724492367103152278062523828902878367035958704407451272669956995599899214032025019556476161550462895256398816110152254550370542323392041513359727166792385365889282755289171233009881966502624955223282809960616574672629770014718369419905061826437832469095968198600752598754568909230331142991893972840933061304426840117679709151730101453455446719071788154469674325032683276904821930188933554611904436716199565943237070231444620673118092385518653353228200515759570735901468432817075980115670092660928299662181233789576768759208017856344503454956619059912708002775145764636470321263196451601592363097178589364292455439090228825230625441408140457767064343865798618367732415081003271698650244747286837007356591686597918544040827088026040055486617957964052763410870069175918864571330924137649935281139735377290349866229145249513772483238320953801967802297050278451703641555165625538133633520170105707335236776370678051280653395896300370644822667178075750771746396471030298325566579233930677152192761211155100527736721592279495924073223925401843679876379027008589408325484797880757053154683224556154675580795968822035339649621536856209857901573126629807289647922007431553126240349385712110680806818502305137987225546010416162103359240285885895759707604133885436883326850230909936367243621565407596533348571567433494867322867445164194654274194463678776163308139329304301499882192260953812039996136277114845284233975854905364214182324926649582941757093156047568622148569238031994630410894166072919217208239036452119103781717531651963467983551844233162800858474141352101790314953395962643042189825513241864384569159550583722557860013766035150455542323392239877207479827740635461607131357103865665307659090296472621079841487407452392937677113129826960756917987304112169448835376653326062876212166155357333451317801475000394168662891637646665451890782666454444932440725590891071102038641251790943309019375283875979058833257942358636094858811312775161902356914877174534669369761209565949506510527465488758964461742228193220261423782430335643901499565590691012280853800570873225563064319419612879462474146759725197025983985001191533504266776414764216943215976349657016423784646723315171001180986982498164870889878121701736941850411596415396353763071271787587023338011691550606563634245261103199169918737245976653104172885962257196068776264018131118046486366843778909681076362084760101085382193987600428162527572815949558662208862069918387955813543482278208378122082152630214438685243440783766948361450579997947179722868610220226353150426387916915495414479431635937952059121878302844616213528411734332930148539918066161311504931466574093997460699492457278871255505711377680792234145981116448679061797522651956270121488750009921770576484952196124461124230668700646617467227386209751045332145851718618155278054146584391098578636068257761190915849772491658050773457322288747939121017496479297759726463200201132431896444035516534700409477966690530031333511801771595948730377283472481914877051686078327883104187896651969164433500577732363351301646428818131586080447282201564697319495118889553393614017166216559978229811245215683230980708126322906591971794895117606294669166979971653273758417217167616475081244204271100876532158309976685900183798779509056640665333756262892157720744447644847403882495954550361270982958210064236550917671275978912620232170962919298149806937181703562962790222567004704452965270292192135616781974321716422131066276687062457320689285214067130793374843861020577275674258395490879212280751997471502866169664879565322038168967220908043805124364856874405813187431260859597594880169194126014578543163369618607963296240363088868722218885177616321424202569826717416700485529283291133857685370893898562265187131756723893256163752594929833862587868888347028653573449309199356009144673732561674574307200256669577291640512561836827129046049257236023241748302741969551346479574821886060437457088269574543579728879005680047170426959653491049840207810308777957056365615135958388279499800080715407063805884720938118707138112312189440527938023687243804119649930708140930259835819403312682228333916442945995134889427825425659923764438916868816990967157710914640969309835269931965262294156416523367984916303116765330294229543377674398447550927300711790444861065181605048882964671163697757928714154048372845049511858766029211658981923773572972886826336868749417566596635027134414162563945790040392469028719309253776101491782313025991967647776213838215115793811415854427022697540869103055759368594294856495833132330366232341750158246540531974945566742801881512319211853364040867157792145927836516463554412059536333413440534633608934806906297241943533489909322269273383837898429003744641614036190592657916810988906170874737260240107348720523308119706883705247227790192060782538895100742358137876567886906558500001745670561564806684360551915535261125124893942761100789464997982689033832435326671950431733321913876083556601013957871520085265101074830005238538263937611752884939677084375245512915311691268780445368950693173028105184007947526188768283682283146582278577027842437901931009667545227828946762156856432057388604248463828636160282194039546815783345737508717903621069227859753629049663134063413355402367298402838504997635008986931699070486649910696908393609370393068516279681799217535380853816959035369582509500239090849677241327591156753157030749445093069370141974917079066115995333083108101864037651281798613384429763224825456859366400494402788299088434419332962079987297164694132890980210761618681149908448452391204118950267623456468496890101834055868355321103085243399478842617561949136674825805856699937650418304401059451576324421280433992273730659418045574692906830905624695729259993596342761959470755141180128229947079595793619971070309720661893655569087388937264642018774248566888187338372297289683811997572436641972760008981467987841080926192604464945605126373419794025468087025146173743635061148782414238332602714874839969664193857839350492687181905556514777013168101943348208820623319108040080651790456100313391889824030064144703036961009401622957916109953448855013490916126054067420004737256986631639968108490131548364066338913373279196161778189649425778925189989796056639552973978340408087735147956780276823345724189831670164233224590816513804440558227125603925498743511881851956863034933588185353338234755084945044774477452281022498822523563261823475181101706964798033489271889188023333205353325589452572376847539576512315721348467516314767582280275445933427449189716992811347262823825560546504917939173498040800141798244129679790658729964505789993931433670638309565315207674031531889740154588402424044576027476015825284390926714689367317769834545194551768247704193132932131238504369931733616029894541533203793529879892087597944440330951448753286027054192731578205131104647847719610087900952355198606825562559849707889790060491430751778419861615474303919672280853344974103383826487699777422079624280261477506420594002530511366110277373869305208316705955212222064586110732856807449950887896412546907148531529896920811020457013856871092416256310687023926077863873542972262642606433637190624148963766336971001647302974781447588200267406170164791969173628560216968106616953617963050963793693848423304007692069981179833563139992318457412261820138595022363153322088658150311706402336827806751742151584323220051271014227009678329433769161121870929375728816827053608237405520514172593916996641455165606600043486610194914361554456476471439156425051244259152579479650866684181190757238654596496619442056233605704940465301805959380659748615759566758963431929311136801477420280756619223635826489202306456448146491132511090191394001955194614242824233629299388962634250250595430363130214143602487345292106148768265115028890984501462503479040478369503051919341280258573194943361428005661508539248953561930173416531781493690199070764682818835322808915161931969003887462936193506656938066931812479902088956231927099192259520823951563307403209347865506876613282243365307023244100148980186066408969730153637053574054532620098941140389839525772522240833130926438394621516567691947963216796347724288311940172728872827553603342600009257118226263100475075644232102288887304022006919076519276668590744930170374868779157902555238369334262144673606622539626668449672531447402299103028083018316376993083916865818733197330663157983404809058068095776069697592478561420927689588250061097403961779102677246080914737495418894234947970850831282453161538150330267437145760136549913887691012701297355637688864240427552645621577640168371660907347089922302734165494282639656631097183541802677876536515607844435793462991376744878059635705655341467252035803324406679361075894861881076878466772503363846407995813453385982233045215420153662394138032016332547737086929873838755213036189370510292475330523135307568504526368781832231636201093412761756882082050217996427092634580769772252406836016921162603379050051011353631747325041124000147612872776290359040856983699019566083449252273449098893420089850689385612105081226851630688906935643306464916987166345841382787235020218315629801748009995885790047983806995019035341877267567276992329594551212819250006112244737280721245864834439061729397831015012415258911342839584068754989340177304730745332829529799013946849643421852659817831484171558160182905382051577705216663341694784307056394317526729962527950431800618368840795951623736064463899520662661519653999346210981001501037454258072646530337710358455034325874094402314221557040927112963102045000598223275802555114857675770121610288892033938564961139344524620736422307388986295710410640850785234156149258317220332952825779324968575148298026280862277193173107763217512411155697550738663360718852232905175900979372996719287419184119180258512278656509353811088006825852096307874106019816501210033155752852528221538202358688228031084810270874409523421955434409627746558777031577720235884802711347617751489836765928699712502226337303778936932071143742453262441397054628315875720614415004154434611397339021771108599913510012507972503115248735387360929570485405812660537040300125982341271360251633440958799494469010962530018304387494351239844536218090788721015580461041465876939333393975174321150899832568119434337263665836515914883442430405516862035028673147189684102225054314024623635027801639880748346826260521114839699341897993594454898793032277780742582435074274156805669684671145625335665537463128139056860666669723340803853958317942286125548462899074721158307513723811830215283483660966642495161780123346294495133941097194383638152148034127374540147621952811795989784685117348394223740955496859163475054614210301959580058439751484408992056811820594785809773824661745815158561278214606840133860687429835457451848350643551379700104659848918969612510780206436970906408843901055527909004224846774806404067207104746967854810502049879417133847809817536949952354097674939568384398255576410894836454992871396111655165337973041731562123353545295712360741678690522521021301377739076839405191122875821227381307247914572804464777674721917662388486490218474286617408032732034880737410693051139911911922987107356850809458699439930976683319542521164579850038862196325603394864844010567264365399350187034228805696151423996840793062706984935712525793748116235871781091193593973445538400490785818884881819112320680263403252261618304301384254332291235418503688545164295917863508538792964217023728105237616909051485263958714198338167681836704270921967831983879302233940246885816135399889061277364359612386567153431370090298980610985430999635133291553300305074299214502435328761149580161065405105431244907153705292433236788684386699783143148016929511130321290989826070522371038446549952109234477642148893515519295604886014944713735501478889907835669264173012486081528429919320654465246489691518422518395183709617105271439414645282044651935378010949681053770652829847737234745104709425317848403707646132583017872247982824106496748290047213111016284120140320063232592732707966172111491180275393123714148182069128422601944376447338638479566510267738015267797190621447959369134863123311803279532115743792395990735197682882032845887051685599587741898053425465964191366089849419970821195533575922506984887579955572986391115938872423575652616258395304051465007582985167731820135424521162299988279851979845536662673600427671893993555838277968990720595953043748153116586239747653198414266221403692097993640423408249383479159156340806811287393359485771860622980857895120854100329733814740609397361759824653582440473234454592681197445523647140971771419845620268710205730736533886484858368467639689106094216988097873729381675702782946132570138876097920296890111839203189397275506506686745867567015700108385611589507209167145642309150761367892731746760463848491080013429357480577478289503787442179920049082310922978825414887403317964522191230626637178481254327725498732940059555910091783148323784711986661938227106700660066970238435920542017711345236060791957944720823192082832387098476103164863849965020990039319229218075267282813740714219383461937336596168926478642446459841747974467244003692418201029400452017605065497865355201167568518732910541473040277184054840070593603882089763335399710253832229997747230410735181615226593149134067138532701919615975858231865512459564195955005947699220088083288486097051673430155774216576604096534715328667311703679425109977800261895975584377760923129162507135364857465450707679190869344535210225237791011715167931277494351321505248274320567400091027262970279178106165613261121460604331879916627197004727531593777158726808030638972933517194730972974062875888745609101180428516353098338343391331385908895516449958802968933340181399822574838747637584029901919770851293007891909189572262727489045718850209124878444498639736969657031841338222946945531074454201502815384767806979073080045994952176759981184901359335771141332573061313840211896692944874725875682107071662187606032526226406253686435084384115378580809409731709789237995379294462732263338039737763331670943816482958250615352992467084104540519807245829365489600898530203136971488523120506455785855069877594975705814673946773138569807515239181227694389822839357393693992591799334873503731595452329807645340219186928296674183742584547936866963000708913473041991005969548010536694979804453920403538260666830750499423220192978714594604814171464159974250713216611704939795776059709624870895487217692593967784645491524895479226667470733207425915732538529113001459633941377427305310958198263600548821756379235432169537331669317188522898631309634178485609329761345574492961259262104556832490981075735580531889053588149117430528042211118344947215800219801560957054163629295641374740710834922550152370415310198473029090286248676714412317745416392464979994130764041565638836984426617219831616167872342917949940988949799001077510718078941297338301021250872762238248206269024828868996552286551736865426772117431524248851971706135138138100670020471706732781375920848670487282834141698286314970463621918263651317471520655913156436748784197598739403869308169361877048093344890425506055123390193777469390015663537616576020859023804822710901807546177992921313049143360304042437145632244164146160312826017030068435702515156653561936949377055542534139985250240711573979227544603532454894316711867403322186297089322252296445724998343572714201118933574309401767436979182568563082669982047541391833397523720581753012817888588730506157565973111712407811297505537540537566492576961414266222083280678733016001720511375941415384304246171166165609457309803250675405408944044938753983690152222326492324025961982920343335549330700621773075840131226054429722665966601309174535233394520894872537511987073355093563045845217714368232717181002634961260755341257588838749677773236235460281345046756991367586376560612895890247685853681328944045469318430919909360738301998270190775978501198713785320895934173973074565732064880375871744176096370606221061783436339697678071039977651945815275175955885473456635262783311517100117003475048941065468544522746706741908680574907903830601546694062902272831623810237307928348534360092841587953442096777456688629001481056929152858895305432748987353975049633689695627826473049956885241614720323178192985930720771875837628371912991588656010200967142977603260627081626206741752174813328524210180847969365355115521300286992819666971603962188227376573091606118378533932155383730987410841278697631823726789788025054082549529173455557705887569742806585236238266402653798190464230560400006277431522968031872748446512209760191829279204782209768173330051014492482993382180517237158271309775497372334117940437622091727140670938059129967668043104015620552380248369234552579951428976722235937295796010548299269803846803000263017881534799459745606499999863370472472188725450382141281419350763903865201584033905588650029324740495973398474035297151661634716897721408110459730730357506138401511869214853043082541302817852618405968573117823133858706279974794071862428518007769905660231136305370807560472878949469591673352098830065002073703501784922577381984792320425036430009474251698517784753806395167794861180391678973545546907001423138216379800256487844054045530441619740031399570721830543012283005654504095186209086602050195371773207257537324630143082177013541921033553136925178180020959334064490615639205292135969147636869200839519133294114000914220493699826010474526994232620484101188902083609464934939913889558453958658426013179967888108124686632378376990665447234695548098104317069039552005465308932115378095067137125889862976559299538702204048084073618345490895478347752367527365376806143113157777469965522181063512733331713117700524472867638321197358754569597056676500625784288898840806388308240334375913066465108515643165064764721088495015874576286246556561139736291431419727830309032316534093190577475520071888562130554619577827574662625195883848116734144328046990288964200596309165691502802438981047250677711622859090503110081778619606084394587902925957886813898828284756705234676698364749839005229613433088554493532177679838830853660467282994390317608381289562944032503668478794120090918670380436949713761501063537428499152328418375601525969617136615933335557927299943361515504748515657354829304441534551010870622503082352861606541492627308196865655529255714146882084761294386591071082670945605572627369637068290870160646586097194483243575194978414584094445264535737201874817833718361741604372989006589964995037052756463980479819430854431513225661618845586561422878973686563356824067675044528707150491662339966529590487398429894112996118067469786223928389440267698518978155732378520486475026926785362992071802622639133931663371047740593095916602680892125067297967040613133630242373325159484528416117595452563406663393076453908119218580410683404010936417078871358364857377010404961528026119669105930904853468241735142098979317604452589223003134326404813929792518961672248007648324079438405235424148092545528416762446167763081967985490104638437040486362909297983076939854372194496334883875285329888911890680259697823487577700107756599192314310992472021456240836424623332665580118751362883275921790133940932308291485621378441789832285117273697982898310854668349035562924105126227077401750570052489685565162819225209166708422385310401963150404069644211610885222179558777945610994400392122355259253483620597043027331829084867152969842355280464782714007715986689334482124250163066943212931060511786158294469630288078352420296491752873050489129018869938712677750693545965772791431664786487391644649503269169821694047251932093022981374037704988284910738110296794549358490338935950453849213273227336725083437356944556549651606806494043976337750241728579167909837709710368341311279198139425659420504922101742739452947656785170140565356465186125337041897648209383578897108884296112404343788126276998843319688543218352903573501718010384683142608916260006566638734187917912638930735306972953718335288328059453976260567826196004887692763201638237597212118320332422523595516741882914813014562565429471559917972361748798924986094178157742360302880211778007051110443054946431686416896810802145689046661977106885035565208943441080929647650737235824743587931032892718773896534050967656115537950746926953622320120507019977620891166236308264198731053415959480320200478658048568353266696863195246134991934419354466201401547687426847571151456097457933682768260559926747234871501219292723196305563489392115909422729991673768519618371154453286242296443037006185246591034023526875338062099823589352366519238059994867166873361570162146097347947537983381062254903959663852070979116581951779632374940638581188460428872395529379256913673371233991723506186678357346368865143877132726315879094731965099655887566684492127029162375118427709219006728956158130233263173903591169961438055850124343080658717750973532797535996192928853439891851812994284787841197636829737615036888248807893709878654290453570851325194351244409446246354011830288338089156746186841846100232699186521501498148205303426116279544788366187061524116338783864892982465493103486741260475443923582238867827718599887643866514532362456288756836252929614489487863636691016313705503395200178148516936548716355576961384733659134842809518450163058382947820522279923728738157577021467530853765075165024055687631129442781783044345381155390085146759694968583758081417485616651557406389496934754170303390959835000454531579547339029400250012007874248334561678937442536392350993495200732376624333544491701503596455547602067899348835324210127551397989729841409570440994676076792512882285887288087460229902342947555916157573033526429634526553737765447546632192511869078964593165811725843165460742149985571489847839824993880520372787037876367209012038723009993017370268636974373733673575147630749344622775169238017275799783889461480392089186108684960422354817334896607071875544292486190741631004439218358827867488423500005455481161526740584314966134817380409855296447105079427456024700972245599226856141012470720306830594654253873187215653698157633208702959566686022956332654286294282044333759243232720058215296222538759328167838941911040289798255063851575766928932631478943124959628144811565028300479499729590969006492821756589724192954890261492468595861875723336679484688906662960250859674240868379669912272004855719580835489276911804853712897838380643971193206137444166317930486046414577295356943729699929689564315927089805908214456567260288847360934456147948048775176624089417778837080067002674522432339510303986682210391454964936144401049788392269301207508766436080116959748783393124634985026205633398761856123277811710621457878521361540885541014244048215679772604649506854560850666790688086467081339661942332829489197855238751814999866501839139502361042113414983871327795646106619514793938798213606614200500194708773026566342608578066116399548043637946212025438590310756793800568201468745228675666561088004917535377101256831173184935575641350551936296799013939691261652179011286631323733563106308330801668996757294481383408799379535033067724502710857034934015511066400447863514480497583471986834914088359218243491828374402216194588941494725991778660355544803808949478565258419850838327023715164992309739011096722333929362597104735229557969759295564512827630348323983631576086180877772310446573607150430705619375250973181630144983635142916468311656487089589018466167588368161579975064387907983502782145149148357196765646675988683028055554942528712168555161663703615473054309737762665675527132755891650251110274312261023371705984085223766326146441128427029136234578320514572392465596341926203609549462650803799266194996939372129898198081812561005261220142070581373735879550436374667433533563472916808433625685182848979618764145101809729028746175744943320656251490248710126108776499994165278105409556726360674356175371889377155242839665011990905989202737016116281770100384248937051273474720758809445642609120066159002481676348084476500940048428790503642743889942621003283464538176054088292027362292647200758602656427406712505132948489283211275730970719294897013376466329955076458071999383237034393609282535225174314325501446974577287725630421045378025319123659255289150259948895957356972813374928234898368823353285128414265191171582616505288250374703399782262449335454000959504679148325146752023827391200444693503723378871213963804088186106171668048354911184366749486523694400925639114933604909345557532866970290550916210066355594325783752155364173796007750918916730044423912675375582487348237846775920005924907745573152478371577131000417555409633970659201078406515815865434939482449953685454146784633504331472216076835528289839039001147180586112782901297654141630066673428897831588710432817281971951261492598036861902825903782257973096785521199056090725573794630179431549185780900199962020110728091067978671823556409849375287747216224832469880325636405457474395347725127236180711329839486045132323581077221908035002237099167145563916229398233106221319354005680671974470390439432027865983566370179301870214068753195153078005950085404844184284150475207581003808401671723090246074233195016059873412644811738468650068842322650603332931297763568490319140723533387357149752993419387131519275179411238180210789445829386887554226026321029543328662934858526995654059372393613353330046919843767091259963380529659764406540654265169406028098527019921917642714579537059651118228287240840137018893831402705239801029930512467098666334200883802846006046760780070368728517152080768512431104564022681430954035143552626428074378691906057139130401264726017387856753837785049490678389187562095019375461279104692472786697874248188901171140361229650502642856613384901870840948885432997334220799306332317748860695273438147970059541187974081698099489833805642491119491153991395792655303383059807926521688023016664604594211815092826871536155190355007911926379847847677527577875937328620089586629456749549247564337713264186338871050695479643085044379683574384913044738011986371996427305642144632228145871227069028258882285117175193563530180507605552465180640129730041479677852982302951927308659179587914116900659599990939914350541610287137684916102786837775184485881862797153528233950292163500735808109007702424413233253261356001071272735809066270853035090118128298581952486543735378211636397362655459995218067780328864359074435574492163784592726709760376154691053502932788208878598409972848034075550175250877996959856943397693609148389846283168057783351721277512252420049834580998233820346057451590175404175561511826453222646707351930264239918753055498293823447589461968328409652836236128476305270305120818145610790367178202315414451115242932287355615343204874101575628447218280878838482785037499565218819426981707971445891597504178381805516657913625390109397372296611388917842907186641412085251668648752058684168765344881741172066468556676886584422149817261152574171542188976283537516421008217445809633378226988530819190275119785192173115410472636492480794559921701003197035367585441437992734335575920408090597410562955833221084320582989418727716286614954016000888124510264439458702090228425924043283963621948830599357115692299635278689892167662988959192645731038207833277438173719483450669222413004009974951280082552642989875250292781801680403180964641466066434266198216281609989561852302432957505992974524417867084877774367716241933244867032828972070284218783695937069129482320940118447323749512159651424469378325004634808200140136873381030366937538985290352641601485233735754924516866795401630787256886044206837486972182418053781341159704810102022423986022943747663417971060121441620771174297448215179137180689836771734590570290676871403895427479823875751024318721246296957834197153354334685059300112785002748319689068525414445874815498873066786070445208302087789007446113083966357314277660300666075312042761491190777147982435043279329956201743151478470928136315758500306327549082710861665660763765289467519562405783494587405136098223834518483674077699911751331424066832905008639114457162123206701907516476307480794365378155825709660962410684703531946916926564970977070885390749005602362579421485984330390946874363731599037226788384867299438028097216708657514604518820541869377930566631538972014795607189530386657713587468351974819594163122587447356304423675198796824847526348030069264932793256883341524831751398246693364643855865190426081039466697378441858628136014675346939884742028113100479987004976043593011794890492347674253665587541671307224121185545114142210683845106064063997424384665514276916363757627669425931822795361733701033219527223338262852420216631906697584436698502950870434033326999669437837696618945291158083280559987705213905509682412067280532657838203434079523201896976486036902587778887543461412370015200966288413377807541724073050767450941621808754607693463763050808431185334417341572121167573119286543427623242476357458291032532266875135495938181348877073196449097616250219760908794120654419804577478043185109309482536642669930655348492856246105380745061818496169726350225013003730675573696887083079515280116527743048483186124743443327500616868576629352144428577369381294440325645598938324385366405567190330870251064606498675751607317202129963423967476003233152343286273117366587777166075440232446674493846075619000979468224637171783471144231790659173603979329230436697488634061454271380848963102332187619301066534473829732574637241488906811309220974975596136107051681258265898653173233657008914825703799806329301222764081181868420892406469400844543295537203178491785284407827933851352720952248206281556755109853319230983403386385736499673552935796200710184531921475483202712220763981030352365731324893824534815545828970331770587162887705267207479659742886584150481307699153502615410469822655850259101908290069944152267770857741041424441854216602146172665373262197309349361192561438127002361165692861722382881195882799169806537131813540963158321098782481104160170340594289317570214849199178914913235988131421128979520018135647988823534498557924413284280330641280836758584344598363203789689606099532497804235998990157391129052545293498076277099854524612561998962165169918291970054963621519401604780747620083132969033067933457063897271041754788253420091945013193658987204437111708822113407324942852270528301467397765241041926446712505787962105958846670468956800057817705128124273224263040552771666078621423100165282788116821796905714663496657795653517823047496558637957885699848889701596244184710549234872213971514957183874858521486992813963128836426284550289214050096843754384763752086988406305003363014440293892138330836871740962212445660716641413737388046453229728761413295554720190881997725525975696365997080681562458932561337150948315072174891882474313836289114243560429381371448679282786770939841477673217180445711851229423469887323899809610287613812329275563592343371665906617164548249191212747045215252591729176449512040062953885732102655779852748530768168748460113890869041023216085855346148432895793541786717397457885498997400608288517521848121720011909479033706395121701429785086522625348681233360917332564150540085941359175039565809749789320414828014677170071191506313294800425845023986709032878360717605326398012936515579040084423691917904895467369215565896669276202546023938458225426324581588392467354086936505538010128086056500591121512849643213756171086260371002760536668967547937489861585470379094726595525317052841999195792841548758769129547271421441959969736731557074030925398359082823009946212186956756449706485442346077561649521069487401253606224274939657281919029753945505552147457762696626212580028363609380534280309365070161097177438458390945862857177230627400309795191477030351831803897713163095151755513894130821917186842018516064253382370772659726510012901969212995984495048643661230093533937747968366637841834484540272439026652880777592765331471565169580197328003073714946178171720322686983231481710273384996056689428105111344139706616857921239485656120141936723529509235803443213828086887032780372755036529944411994062428056544835264656514640772371741965716537249887162096784917551895941658142652812215849208085038161235624853818582714793938036844944397009711142884561029709282925960787986099243907240700360860757315200756659009657883261030363135132297856497890432013041132592921808982116857779080108317508569044876221947647393029667112446636649236630872317391422104437866485031992182874270113509053427106434091487460944286727016275028332680005356773665636261203375834875732362991182786353993240836789508436706042877942551235562438074497347398687777826207852957580200740878896349728810859657325790925916412883386565945438793952833046591198931343340867658246072199342838860042358639763989252721843613807559150889328311876716777215994023539644435270227303926415339605120502459335717398347577035303857609387101062488540392349885615897806772797827704222129408245774597014859527303251454957088541114833933385282557731868191571394544038465117491539550550161525322002051419319338139699357336500444148020447721984920889385916007369702461839613377568791458301796524865691582366806643310427514060161210522326898434457570481889614716454652305241248122369827347100928767164190369946204589230913506961296732595301288575233754812297698246879436832812537551558933906217834756295704411715634847255121772347557155285663563890581005095560675858377838632055965467799079717250799894814404152398045552450449811532694303879127925355925096782575537456988689653140519273770721215699920523475200547011477759379307297680086409900979422990488657195512429987642451195002388417732481858710011718080474213125669716431764749576403321941489209480938335053962816557153797215552001793256087235873721041454324556830732924478305823040860732750819167803577467234572395990111957480352673146952807198864202745729196288976333559607247396693496386545947776208403878367529345708951310304697526695149709023292864599174658767277803704076833417740471270138306702192368135884546013276960238528990088096424193245488690416019240999260990097421235172463830061893463165432391647578944102104618913476708186735399421992971294927182337899981153465589787308586741260621816989366557144675603564002954875608478148454710717068555596426887488438568914778139461160546323173539488310437432710822621789693196271000964762332784545699222355056983348151921564283722554959268684397470376228985163747329917827750492605492654604600353863774052022297681610886536270998832794426577024911888765716952333726976033619205893264307048893021052885856895550848575190308880403809067523109430819644388587915589564843658208436098714968759846983408948753119975787742680170722500512337802741489559829366787331661161667060373700736085446002394368597207373762015311677671454752043015056197341005392264683658430352580032502109343608335541496741643731905130294982830894882731043543194987441645651142050529206358025650316832751800567760062773414243712753526040944192032627304349101458704669496198419231686897580874475999518802204334049564744355654875799788608713895724123530685498749211966791933297795894886140147323930742298995889461434947650617436025970053047075796281315019050062808836992799172526536936444799844225115699559082900590957369106210615233004433212126439006691695573184498101525652532013390847670625895143348148321899345038366735214317280371420001392191599902797512167033804184321674955711641615015550032361216514131829477256600669161585160047736460448805408649523481541782957222853430183109272611180343305423842132153507156304635666415564388134484215209512245645463824052073318407715748786232599087169974397806974555504759198597486196789239590309486205189728801403769529744926365600160352065531375536429591060565964067766938657002117399081197106362423461015624346152233627118009293427099169781863771001112281601345934943688540739079817537642616536002381960117079784982207297802068939087473193631887384669520109978617509819212999823406186546310601591767756882456018073862475284102287520570255041032240280624760090580549781446308493640668169961415703574970181066297177380422321637140132085735184784622737225920256796456915929929555737537261198399603635013874752321430714624221705197781842416942305529171159064494634597136751054883012949205897357958419724070592473926694496418904698372866868245049527977396951070441017220993003754944462366223949367773097664728627135447592169310170580658513198538784453072491181478805933404720941890844301086396765432113785989070318087576445553311893160344404830944333773994598678396234436677867033919608497014855949025358020966133561233256982287108133090981380598056875749414150638156685867140220635998255886678452214037481407991281145591647753439751157983574157637820290670945656241171212486963830165823356380228626588326990515176330223957979339839522218959768388425460940795480712193452879132441033281842229129618926416554024668701060704696493133131265577689852867414216212663494239925897157088146027660412937276474666239334608171120708929786418344923539176510655898764543913444581462668884266646329069534666323729704651722301255550550310479904937280591842772978842050485648598902594929211488322041079098439688955203375559004404250177858777305559263388086603520461832284780370223457674934180725428792203007724837481828745272644300868765622654464340906761561582278893036313813746208493028159706722728514058502682323763907973971392077148860505657030989576892942166106701029014385156560855779414208674597324839812760430599877436388736684275280959790688454967359712908938961653565518866376697293030828721966976281926978272726741678561507726536524115004035089475155133285007741250637993614689939697805174835576059732785383585492444208186555779190292276218813469344650165397086296449065114468998937335332691521408512372605720424731457004409681145807530210630469965389633566357916585282784625552081535720685452493824919195799668768670500048417776807596985120119221740098107801474951521521886093432295916692918620219233065753879773186218219957153133350150009198475025660322069186405570938568359981939223894790081879160679173996956016454775739939984144413340494455542448312739408062668961665806038301144653145852790381548745374823723187911173695917157777036396924061975927374582698768844507953565253320825906809767439107721582520791579173101234069248594399858206302089267434452623158382528450569932203376968789980595063098200315466350040011145041084564517631134115963518102608086316448589398587994931757861208394654127883085574957721944595524147955602908852048847135860697185640197105759410595882175701680285937502541294502185454990455070582473286541982088734055799996505961843449164707027024130105970208786646462584856142959182092121465931209695198158691065335670214874349148198003715622731434556110190123532177955448581194080658061522918961851943742374992799261124807564074147255695526372591972640729949144764181664811037496737204821434677329099737606687909568976182082462437548913725902988776885780700446320307373980778236711667645240349767377023740961448527172470977074058930718692449030708741686493165809078394542970995741751588991862400042948156387192668898975191041300131728464023545861750127545290900743994315380275833097281409662995261715964790021453498696096840979106755711291660522836533756974654867188384050823547229622103284234185837244672600769932736655661524702610487527277375020961347401982172794366847617285325717675859395002396619068405600623532171192834772449635892850918976952946570967391392958851256706053827025507924312521167337909556436067137898025111614180324952370673346861875396690699810166585168027568858556052123496516904192118126607717762021573592526818511703645133667302074591816964362399508759210336587981171284075411991491801789780134703607393677636629850441693473685423893920394663576986486796895860063212376435080869188264798124555394165618650179619867723853964859119719172412167115470912907359212357007561550286900775997796790705822825145486792754269151092205428578317357331242311438448732808857763817336354328551401823283004686655993790429879669264733173048596995737769591805171814239674859590549058926770281265159057448338371803154609658202605828428535397462303194469231331759315792194782895401414686289588426946146346192472851359231138558461646607366471386842826884707403012496653902023550346405184392597090367524489744501395963030720170799568372135703476167350668502385095607722198335526941073994776853243077235302939443830226949656161944256808258636701419549228844331434370328135922576154751171345061398087110541978597460747397776868828967089159990904768715262490801000785828116978931509896606196044712419014521304100489124165091496132449473025231209719918276108735066224180220627787620440957351856968890435889920674482432471822983306744957194459862090261256299721514758957543148582257750553825944089215161738098594700030520277356238549933226397488100916859838858161394004309227113679041895162640097214151767082380670572646125032275904743487164461329798041400028733031233432793511187663598381486109578382267576446119838134111333696282187229409234958364992451418475949078882149296322091424713156410571949197778860980578711641006961012047002190589689770326515666389124573631845746883208675455180370374118964806375147289480529834572673101831464216544109896027541457697294200606262552422956173633064244744338067806468101692175261069860367467890048633298418088177618521941698853925251466988517115944825740250730876244705020783715479350203279463134585263924050655778292832597317925036003120479335031955686449854607498843189974583940622047480556437352642533184208876206941302532269116975526638658605253168491504145601377653114655332097451141787389599642196541159441103759881926638749499599678106604128555323363025212982178854352163959297661843135679161184580626036978459951832557812918366310289941318391036865016734100064900885797414996343613201695153461124984745842269733821284205367267308488159155962900127482817987600813008039590339918941002646474926656911322547448606044175338028334601646942400626685941820941651548460590476522899839891325510518312164167314720818265344306068720972599566191601976383191044982011552837218217348246308326148254706694692038413109968472809533114055879414152638517238404330560500866440956360880404196356526833212662037357296417311189810158739673282416585264347911072711087496669653046835835884747732232352527330858119663985530235215746642908031733543108831743937759610009968937981546413040287183429118657082315739302240073684704798750255226374907869597805218527198215241303541132684196773047799518298763197030613547890572951951825588650637057402504123931817080135877469709529261626752587488925361555119739537975586771488634786974247913292678477412953059798743325451224193864517556000328947498183146002825516930194516493878145744925229273649891925625423163913849744619586887783505908505701646798887211877908355367198565747001588325348196024912628949449633712898584784724178596190791148356685415820631174110704535444364842553185336628982337724556485081203705135379289241507884082400898011733082279110700630729877358297401608859459929143001914218316084644507012183761910632571335211804523094846707733840550891922700499649249843092789934985739467311730751225194813547114274675622673684036394443836789991370612542525352276064681482503416754239237321378409730566680029734382326927682295999235538510953356053665586078732896957292542680003657699474729935027304183132362500997785675111311329881265887611143164035398059664837551860552148210546321530187745401557533039193861177667635088996848442783030636144044655920998688282938906466006423988731962187357303096384689638838419883305133940798948290690494166658165811181231875942981539887528780012713726701168359162088554240852655584529840329299059333234745252689797975729748793030850408343468283238590701911267232341527437103924911009373872321850069247968782042866075329004202193337380531224279131640362645139989753079360477454710525480997800307948483513330652826326360439789000101848571598777642844468535034426699124394590550986885031485272703628833165588078126707819273144184925102112768789335315940176735805871329802315443606533435474645586193088825462907898805319077334993897543467644053646997726174593708800342051295119606621309716608328954865899519686856614628781099050101055851588274917389674769972686894860759718861706307042327519650396463109877597395475495918161224411267019862758565603503657510623117277300797222544019214713241787790554655628096403082219564470605102717232694202320442590284788054786956219628549079259166434735827183009029594276505654162097318065686449711581163582393738580213894901103857563927457537897494670770931896625431180646101096049618616324157176445004261173277629762861486520034641413509406657454852278496551607376424959437208566693307934913711125762371904805715065860182911620081334748990309683681791401700575084544274319714081022595175673652457448971887934871001228613902894299709327497560706755641886156485158635996323856282363638389094407254122484248590168981943720120786071704425112718632610745281998992071812909138060918509987008229511903758093906133218997096462726191431337112527066656980202682832582019538547353066928268047062477904749341063245977550414502859774177297541497397258768653365362130255609269829398489718273087852706656337082830006189647362273465380039257554543667923392680803726538991283180444800530028212761766200635115137198437923862910217652341589739391884046142240333701136293177414049231199683325909484502139803562524630401287147475928301959900208969266861227918191536569364644274861772696743380750345086888215749799069073916080616844015782505728007077065728354493283096752199179254610819282163391837274055150031322038110959768828410568806251125686710088467052445847110104073976417795089123990793834647366546722022521232184452753372863804539148710374680659080562518348876244198014905574557128190608508958376225060094126449283521880594717329300731746426034354802173992158918203159312643322703931645526279483526559412266450013882447892338511592051973084852758370139116154002666695517268950237323614766200757227204800258941067295020165911168692315708182683893114342009643881775001487383890432636981872067695677352600640457287681703763798200986295360370843414882847306967758821936293585250451289702365140679011236649058159139993370340915508069590191857805437835058293569196223170626885561260728759225033406456246201722348540101481289774675042523657190791123028252695044889068174233111323388898198895071770977267606334909813702252123587795983139987524140394074080889837444358799718552298849371008883813942921009655696241704327619495358836262322640906311733590438927372164052988948046868434206318894175132138024609379721010777138567695006197152855598979650490424754183588511517129619088183267671186778985400862773094829803142026766654431007013284133125581289072127174250075898852169240493592835879723140110197631984550565053975243477931092317662044285182431940368967935004775462208565824060487261220701487339041407793773390328731748133186661337311048591505765430357971909012599035703455518543706024951328784504505838628653359080427770792147915322748166085765639426098064392584792984398664301559508641542625308715111962992615379254495433740241697967946205519185190031417754613277283747758974415231223554872879629804761695986215064634208172925266079630764483931334774646237176882318057984456356663229761581656792752718358122857838950464059833036902821654859004539091303509437642998596489693020677716500102195301584359743445392226746578321622050763470796541244924158179084985259079848852214510374598733454369400042683987214563247358084521006277553158764608360009643821808980187852514060006364884653158840283962865906176672302832691331756123931434565513780233344301662841205860146536146102221016081982410495505309765560458307686824745425157531982780443159035942585440741396706116955796438845796923754982096674802293048774505061316311490883880856443685760392087503770954091432269748443684326899961386675956060291740336616466278084460643655534761882612827582017250630429142708040334175269441793266076720393351251099413552174273588886206677596574261502874129886028326892437992553599310849486831054952236214935107114300053319952960125868692785057959802491680464799075711046906764661439301108155395815345727587785515703647323443297957712023110558908349747379038074095500949607074621558164005728043701871525415930494405476141710652040655082920135901708546621315009942109581132688991262371904585773514925534539323671284343408286698813863677332847711671787592500403300223340315881735720244465198622023016603251417259747673358942342163215381681007622791519220497757100431727081559341011545699166158855375355335169848414730860614772876878461022815801157907243322833777604996107340973714065331204829426247906828760432685775372962665679001808153891311941131071689113054394975024153099412879215132849629595497356978575758535491164393898964718891441911867467960102249360777410550645293836313731027877572555708814817137191223208483096371081287824803782807277793841939981917155589203144050975002033679665811853358233688867746984588834524691539731135472192970392678071295614436365755429480663608629567106412118203694672470024468931089349608072476399488703421483631065506618690528927963600575959941574259963175962168163197115670015565453629467678342748141188353666448053537088534525208023138337391843062089227351838512800274972083588903388153342949180300576060577721640024977523079520467770594910268704868906734370069974705895282909897320577020945844766306577256470632449520061687614885507164101450796925093670704863803902630659734397429804861003385080017758271548768675215324797830002765706155112200466185406392364029576362930172600849146768111375337521147976402220447100185428914705568851383275424626474925049945787890138919885151739956331700848978676842266335918928028617890195925873936016553380673289384147271509765901732326814328702741659899954073464165864348433395629025864487079993890323870979959644184404402194591765752503124630643883128271779288020863746666559774508268376920354786762450680419061782673443081594227854528797195794967415565995399365952744945071239153368827528467249136774357560637217830953395698035531520098037187433403146030974649059819666924569460171678249985097282444494352732123973647103720926034334659747031605751852742332000391788580248994482935326651182321030050635470761319040782454221474956161420141318984570274707094732064677198841481563667558746270803820673166442132588827258543800776019811875650291841970111156356422092231043893990029226125873146570953528099965660432188802889659945799240966712071308978594569418257932056789059025834422039004140859806827988840441945963509764026106058497067000756923127378986726335800367497743553931757501435307351820052302962441827817759894336312138560419531460964922174474758637077457681534553983654912836560901026332917835731181098736911359255769072439337140591409098728094016448073894208767565557708991203701637264410386581078033343074180781349730278243567010772087638734092676722931253930886042286601040701165314581184268934445668001466644990471449284727331306436011988111297128896035701828008798596394259748359930738873305677262399615098210352498301238264812910156799056657485818133473511121838994200129785124475571855266280660773224546182959108479468560243239875224999476542065139538745358100516097479300894154967806993183515518149608176545196765843518677847594065952529065130380193439370723120988318640639174446832779333294389073438696986864398244714254727954630280943854930351328437824478172345515797891666450390112189736148346336179429701500523926242360561351432349624942568552386000313664168370504971227150399008935989324285554696519032487167785988435552077158228169907586384047907322124700644282314580679382575398832198384982452812267134917360961518810116701063834851202878524458280593706112904759802089367093187227487294331011650538964302064463750046690259927379617176137609181887514877569009870685495736831794412201163498192638015670080973792413885976375971339825058226332567091087778991494124178937992934552671941765754291353291726161728122631827917655166889445690729684785202790539822690735367664161067441149332227323523795056460666429406165698088045766652617928756549018108123919445081474300260297696544001550127324651105822684605850058067974972076785010332412528739608894620025539800345316850966450062673139371204210553013723469557945335124155284019404297695887442861952399604041325854582221821811274896173317189378317958278592385201469175188686937224699894799534469664198795692258742368821871798787579231383324429301070104601306154288977853199679757197443205703195252525493289303494914822195835428470334523897753968741440223709153749484952892122047738976871927186461057288233205093648734578684310463753735508797393048217540017198085018015975927401115517128431338531001634895166981843793594487937758102689350096941916341867404871779819692225990351270127926216528983385374008351439713946638998526432028078638742982929607239714587315652932080963293185686518891584657477059025994638000387656011378975950392381330293521798196452542877564577596868326362169353595054553374642201140772046816518125672673626121136574405036410993463764355454376249213316201974845959105033067265589317826930865087732079839547197727448981704832087978596215472584332606588799045423284272273339269011564616203029000045836413020150928554433298995464094844520263409040846689291540232781539884099020446016640325627102880921804098216737097745834973630020549184721129204036564414778610561260371795067736995175552920313820604758451363354081240174312081812988943027121561324441238049179349617401693988896533595759997369038694495010698057123659404111105283331449247618097529824520602117863111561007049670670199580917389341282237419278552303971634729426137102341040288234258427553314424560914062566866865843324248663071520639627497731548582472750503413855566491028521918971834734461540700203739946215941579685681360246248085741360963151679130795563282761248696126230935455211276863290351317355006312181416220937400782049658484413392112933746090887356471452397380223616695125150260867476947124741714418703200957620975546788351476359826609947758388536918267706068482087297565399774893036660049456273498545448120635636880325209610576187836790402779305807113772329432441759022669588351873580914069690779414414907473008561426310723435132806495012296209547080631549797783501786994598559167062205866628284158656487866653122724617248066853096057297731925537874506476208393931229129950333292714883197040266464038102728757206018793788431709035480905617638597076404298016337513964757470581730248660873087014585792886140801693019528238993339818445147577200494536393888988261980231461814924214340005409335922913202173884787924051757284186105205660825555738042440424571792464985452565157761607604722866252064187718113540425504313885804635912327846513899575065657437343008913327221794127149016029902527943407724383690614791561119590154641212344362651271136680913181309590376781940016008947974134532370783830239956577715303271406255683382407713942412974776913044932669744431070994135609818136765993310478662432090124512543644624227955179598856671342066204753390935249118390554906345747374256258066369821774841416138698238613643396753960052551036357984913360177514662224820284960520197763405602003243277001503571643548184214459153619951290915619380733618566209270252217853124600464225055281794462764317517934786588347103306237857863094428977301690381418884350353203853850752646138372743003654568785869997799329724553907471117048334002612950052101574022049031124844468542243878455748507094651645987361583431868333121658049165562878126562662012779267232960086125407606986221455394358926099114308198656358646452518751139585452722885749897935931951105903327675326274783317469995780970624159015495297194886896071395485325044115516031590051110006784032325971933194497623697061571866669997109031082259106953698224244019196097116557208457336083822011071171371202850572505948406755069779599940142459386336242379482074553289255270116808348770731314710928536278770398674039887414447732739770701069566707004431556682591876683138677741431168241493820926490855209236839781132208304095081302586613924015354504423014717854130872094868143315033145815965130391237999900461202518185388897589400622454649671418012167796680594777737786071270260651850272535557795980865004794778869427172374504584343852259951877142181691009641502652363877349546729996507797203263857958161654501464937675017923906989358461885175339422426531148127955463242510213229100543846542358908493350017015850356503962894373775052974044105742990826702667864211088400366703363157412693830952126420862058451383169355236499133123552483358013083181723198666237733672720707143993049239407144588050713129185303253042224929476686289530086562696837013773333250324899635158273967551319668422435947486028874496743844654232773520793431122124305131861884975743829207780784587902443411220755192287771474701384937863785568821061930201090988390238628884537431038580105171480753700060529156943919136730318054063601344346265062395861256578343087775347249370158365725925521296783734280290948428653157985760172589713083721205340689916214673549088195612437024671349266859877135971835058327029988594099300580741177200579516847412252992029866714992541557610060922034868162481439894150355638356712639931698418434489076459695082864773800483961018725736348688258853835899547031382570104459719030242012513595533211745397417740822250882008241959494980887867332982238437251187560583689175480785154271360849489902905766873426156665590474670816595660964307188598574586212387421617372192529005945567219107644164761860513225785147899353371494361375735659888664061652860925943659612179476605643432377118683902221739670470667438425679191412146851256175595744607996085583447679997611666237910890279964064789101449117353346057691277624126846485192441421905378858970939520971364962692862983628625999028812039203471561849936343590319367630534576048436535100009520571057300356779645210236784014888448808982834583382986931463767099427801564272380825504371881031308852101429039702443152902809652678595066885108257903941334791326789883307883287052984774782972248616396891345377485673364948617414460464747103679093756977905404453142631712397844343667967195395742889903102190196981956539439121597132076109266142395296980690010494280300468553340268616130670790122735498562509034720356246097394324107695360351893604494515719444839398776025748087780083216917145337340792022073307114928780072243207727541857370911760594066127523086064712464201681785646817207130364741358938567440268298089587661116355150980005866703435642059650926825743718770115880510652771251337035272557711077994778471704313550015918723195386626095479321269550930230272958174448310440877222868816098766377627587855817589684332771211572959757434217564371073310864044890264018390757142837998662034423717999730198413567636845301914138218082325167848297700688796480340783059981686287827642864746146146187233337663579699370623436511441950962676152539599501023693219678903877542617867441535425824760579263376762330570303595736234860166459040677466962666487326091629578612362294446886640298486978925851580399352681366353004691106878007390921580362264694356152359409589434279580655374945747431635518135815627044411013717730132751223697819343611402970737193141662706650004456387029260184099470530679070891850472617890774931166566273086369479550630588432649694396289687055552832272541419747488391273144353982770374345339999193094707237151867301189908145666249983783582593944225961951546130698973350729098328251037456331196621482103731694117437129355604647376831132084739408628924289194940769865016127399057777346589527619229187175768082931205440211624640212313151993520561476863127151590570861227042533997538643926032053589785172772548722303945675128901978132919756516624413313737830579787076130068224933374884544252980471691735023202967276283752471522969125287714172037514009506798388448846349441805267675031312356361213442466446497762045660334413203336303403590423996550418364665818027132542211833614668556140826983407331142210143691828612395941453254646320705157978477876601369055749165105013986421757083051099955717854058435339556086339369261305212323875641952419043831328111330535790133033105821038188652535363063429846604579110736180740514926190483292597921411790270262861597549166771364332424430028799975010947541023571454999704710856571657843223312225753298603411120572217556075307217203313546752487056307399366335506917004338108848179866547198866576286317164262762271631176384525409337791313842185955055385821695116619574223267894955473562670751217102321158925779690790771625235019135820629391740365928852316113996434253954283851777569488771833197436447300495864533418700297758751996914270662935445816213141071488535316610747205561721701900960996090167309992950378110250322233304507220400187129576789294783012673298621739806776245811595355321331235643839251786852760725509314316262018615864203707710242150306882970102749923820789355431492673699798888638713366107725958054109317316122924011685060528206396708711527228352319195350432010661007932887177593522163714321558877351592781280322874742117329456187025342999404705270442419040328780866069710836142030511170914033988477923317602524103083928296760990941404962960692813034761752596066572890179155989234725176344879422100368132341414039012907491996587569664974249220326631150432292149637497191022491707358326580419816800265464692947908231400468718886120982017432679154496727772072963250245285104270774412177535269458333263504668119391552756007139084943931639771287912996500855152995635672136505308205632411372102111474532546212073793525820303686319545600970134669782428996389782388371292520988291504529648265046559298935674576447482619784068485297026546017812391715943619043363873342544722312872142505872831929321854141203387474001733825862970965911726039103243963167981925128330846802603248134411116822776295670358412532015041787692392891590007861638449674908817259904335562903272158628015277053222103057153294126616496238302723230820101395397411697152576654806402184782108493527407494424493660382851978214674791925273323064627269438951161251909894286081709718609103386340334143549997125936214887782157444802545131227547303882926928381160130088634548899317082210086534299292916239467140277139214082144692974626475513076794304617249453741686333192004579390018891886677150992908239164374846064560765565245334834130669376754036111421341742218223968456201564096675480214664393984117775316226260556249719189095436903755132940869821477299816829691903639671986714494889960716551249734248803862939349123040540661446773712228056614927299718158985271775826926444818839252824711890126856052753854322528790217051277032072885975916578654151600539369170512948381691461133298079720622764738181261588996696147897285029013450959881315996558918400776665484932008856763303515452309020364059387023891278413488210583433534410234515231845400315629589212878279983169367862284929061709868521782620080895874073204240792955160354180102633900314055067793016155540834039983264502560007004020252841308041855996206885206872528620538732296107760572340239036924131118470858979452279584665104128104900717560915676225883578144873881263731530925662992258045458388748512073127604273242117500427814987998376035259438920770636824447229052334474219894901022480752648878028382298616126067840372740463848857358048613021381351033958218691707542945353711580674568733714294753777950484676737926023496377261235917878224732305289589900210157937083420945729013006593186894739879722165758424104941184859007331292531475705707841146190981698771715354598869021060673783935789714066931687411748843053973969052957558878865872980144618374565869869371848995951664113611488159282236412887459543134015918487538739783252701485210274601066932134177219259508267915020532743905181418212209943397825347661448785692696174835768339950918802721739739327675134266698637843190584967318590845039900527200462582904349918127970557306204646457040791107270119092516376547677820071252417138241815686951659504486254580544329400370712490050467673435835220544363415048603032490787304094103024761320717303616754229699845599869162534435962606156552909596875424487750187264168989194669052713840952152894741957394023950920535206164692414710644373973275032732669065950050972265392693283119149468149237570997200012293240862847518933546079669184857590055071217636058744407965301604190145067708276219160755238331739632073004912159863434826304782367474867332975210812121273272123140215830257409282749073078220186589084928724394114654760370109735029787328007521637440137773252601091111510638131665090050308230084312722795303688661100491287560907034977638209787417160916326487589484553418088483750630768899464652668413369022707778311856332059074726175649394749544773685938628873150418181522989169999636766559753244212405083344281126013895313211408171385465502692617635973596716045739570380748062614791991108358201957999824068032869956679207911792821333959367599165131392575420687315105378270180501098755985014959795001628254655622957455716637011312192896490144422602996823464206847369031119847653465230662852089979773348462003540390172468445066385834603326470987595523577726971180206707068229829191980306103014443897686136350179713859772836017016693348431849909502566019247584403711704925315587456978049212776107138571377832886259480181330910810916965734028526636358869476765849083287133967908251723074634606062899869940371030711300031414005696968867450372010527641181512351789590615909032056917276119372363759986048814349219243825081039562052733718602061646630534682093651459188056014771143442324386801394001203139911500220830761095249372305561270775469646100259067855849282183304319242530385421441249459176816870087825189790336746834216271716540591111356769217545433909724252575489280548293651974363907299504011961074628777669830239029308017986169076436842751065784629164374256229059712816445883128659931153218126970052789337190638781491349887181424063741106538303862299503650189003174567017265246602448851802270911163350659451310395116744336323951895034964453459815080419293816303436075087359720354387916404311349459565612363812415930747755714599261230216801924280595505737548953866888233164710279682533861211485712151878125400033400581457015868669419786149296607346011445083290542531583638220018128751487556733867942396827387259701957998213185559663477068934733169533697918360587098576399269484924250692191731119987516503282438207317704514309768267200015036951168280005625951248901471557970880973939236310860700284777909309373539783993601016604844165618822914922760186897725957046240688654594540193145528103033980107757538620906293204863313953945085943985818468911161497431080859049164346188222857828931082682598992397111421829629287397006647839192413843423871002787760131994273867265229639638688269562497509625421541749724867356485560784830853048483097854941825785474390052677850884773490091230988345912113793211066380243849871173367606736771823420238704164231666987942386330101386137003387879700551615141785658654913129469934796065260016147152764288878395512771898408019387909852114042169569304116042098014915057312223145876777373244649195530162463364647502237475597795651450953977464614908643944162643648327043043265957233083073239482135525473291009836672552105774155395514338404316303652277743459862544029114748571787855673038771318426882617566257371869247824186525643574529733245629735382505111691536217543326279312068227994323727290195388743145662182957597693738522838312763900891030399957968704838483870843785231507895628873975259895720283270743606985079640416988729966315174574016726188823459789034513662022223654991133258020998876969952583139444622936624205787091227435069378348812596786320167296370912868986451132006725559220697410094435621283105759920867875903817318498731766724828267224439974101837718999206782599775709619689884592541968611494907578902845895696857567717603182229543362850556706458696410136942810718025028452242217267554484112813779479737284952733426855812300216255588776895305947019186136603888898895119669753386549602872227052324811420938103918036396194717010814820734630000678918361088219520939147102434179020167780869596955708098275902688714612501075229170299759311226735485581882691842056780637645248910003301468000924182137607722636451699345903838058086353355405781428415890653733300940809294551100452950339486321644964495283177426271672785119510809433770477919389823949918388658346044046491331618048092223104877507974299854219631035354130007177875194785723923245593039836337366913287465957887460925676416705566633750532829532366510349670215314660328869736721490464813660927668252304590013938987158040257047172435433412176394408330070656089527805853906882299294005159663154238412712033524870522001558392858491891937208975983706931704310210756600761305912391570534693626024263376033791091569562398894668662542816921534153311282577427665676321800449048529588477034683604138144676995236314246231209152378852213266009100423890506836639515307949023894002529481838212894313774912886598753889301815474239704241539400256187173072967321770247698267133055572758926332196676199264361034012470862912927224971116484893254512139359823306367836405211841231818079529466019264389524266256859488045503491915495908984060244015821208198592404005192356597174428078437554228292085505943606988903223970112711948594495642362556648354265047952252383622224098420575871998160258365119989763000146546738546573010871221968170899386558463153324427945673607908866784892053618036795725296669396562132112493652421161299025154598167683360772782754905276692841321195211932321581981366753903515762399575219347571065465745485780548680440822306536070059539856826773873060136585730321276768192498621291309767969232738246987088156898065141110929928477277130092129257479844415967558325789611171468795130754175509886198136279351749819642575999287039477448923440261124664064064487643940035789972658100680267380327916704116870543946670722352210070127927267574148971847384378502121360928165163509587944544113411225759229544757726391783043358035616488440444908389812519815125063290053517707237352062694218290536770230920414635187623370693770011366163000593818441396508100678860162575556958914816000058844914996263852368647343587650585354956856489348212376811461680900271218361496064707956454705419018926145546074210474568798197516510400172792285104534328335153219500447209546717721532498232192000895397407080668698232574344193394525455231497192091481774702705994791521093211385863156051486602507876525795937282371113343459223471032021482604505730842693043008339623092371417411468298591734118062995604527634428223741267346469448986574699554303153292873287825341009536400701475763770607736068826560100679198353095517134608641159019263601747316178558583664146122594159119616209922809955926413801260047771301111506846065905567919476032041404286368982236085048096794887372957217224916661742462350683148627927140094779231208956289216761241311383584318937416261076802181585216947351508086340207896192072168810334984996175115634457986007346026145865877366477736703648343961581397288065330017595239037916940422777647727153701442969934507798271649756316451722821092474603827280916506992396528548609565368739807511077591859283607196456385318658020838125226024155633611024174045804827737637634411605175325401068298893341425084503763601736149497698325245751340248963952189922003417573949623750874389062878239453315738683491334785890865092733472418812305400145708686256186401257896882744198161258085112704223747627619942226806061206590371859661321347999870846715973386500241627354121996866803132478917720034961817290766142902218241125545289335444692801220042917787601555224780028628022911713386217070247746432278477811414736006175935696271149952419180341549457349064704212423628811571553653358616760137189866076721654431910528029032198506102415552294698710563572846686922665828544835313753156411245559624598962208143204166284577018920865514651955771361430418310705173264847677008800452650283059425198917708534287567495780583666583746754611262201781374443132552444298427629506031511259298810395981869476923685566788330149314830301099225440387920023046091819837135047039837327850432936034311377372738345645644562533901922344518033318713240580597273237709074857514700913238036946273139032566884659729477981864458473286264227448228355493705009885977947502204672155085990530864591036378372128310815324986158368784076370885993646348731223634582692719031442794624512204714904644468589397255067730924781786350399309627186801456896947791848215856590390195778944220665383992030966117551271891293006654291430988670915558274616346874962319497381094175712024026797903985247933950198997417533827038802511583358124204090387298898911396507827065196396973978760439146318295386985556905790917742970058758893252538596605276274439242947898399626308822666176352470594069126816981851957709682686666439215045879900731138193481900517684514773585371761069621052424151133908827972563993954787820395270049943021284310079066252387856461622559879802412752776345962041392901228822530048235795869235013212119248936808519160457640095964500935223861190069432793752887560618947901842510524094325188282238486052218476339359169388569876526532704404484602899021405910366157531794195986562400741160747350360174400049554221836806638145929325051025295103968671106453549210957747344316653666304710706216126544868669247229127837453388527811645153444321092354363451504323019899002782174853696192520385739102918357423306931584425586380924156230469099235306667880166370769453588660943605105031860376008347502030719124238136242138646291455040567356845135262634262778913803541703730490322215622182489473814973675085437167516277566532814595677932093143792020886657931942541789186694917181388743018062893297848889478583144625546093513892956173756445054751234159132925465158652334218849787298168934121153821876523951113881828952639812314276532008331164582003375976213332321865273912723463157569668631196153813502467989995780124519364692677275180709611678007069669309124699063727106801140278619386915720018197318011834521177285717208968207476131527474967795176297880216265224143585261992334559077244395125215492227085908264151450614961216562527605338804964245870048596611862724732202495704220466618749922585020863255173408616291615889903547943104933769724004519501482757895647329125750501985154162632633497690716696832216952260271270644288859003667219370080577517461517935320638861230290559022996515473344298565626644549886280038997053075571382436911340123046184329979903987540450365296742720717626939436458055255427347280047395988702275888775278830061639108002589986859044401470705863679805168375788328206739459414076509753574397332022886063057648641055762901570591530490566183466199091282830755460597580536077265727236289812849771312574213710079506129545737684441996570741194396457606635409088112320056762976836963319843232340673997305123623101532234495002874255708553972657291443884374214706334133848172810070881220005868765762278410811503503245233659878346875352917345835862031020532579748330624007454252471731105552317257059268511279115953054361367551153008809310113203946236035371136168481598656225476834497065303389112826609953063038910694797514630400278645945153914262619925496061954900773294663064219565064621952860629818465970561713124741124642950270397688708899301668226963334902733950188130397128626743177189371896737710325390713553524856111246586005329638701929628456415876852140228053219100439440583873416168809524298390605680761182983917697629682828739428857485566929397855545986759320788933619440934362337313696451609188921651014113147781077361224217391075028807237919463351782458527909570340324032005168522022983425059918738696499407135573519231673329656937777838841519525981599519844130184578029926392917977025182463874530100954648070866052389413887116568678368319223610619504409277493015062884811294613767491847624640353379386745412864150967249289319454076095801225386238511345372972341300028046872477752933838143328216642118914320541114041652966206359087253777551958061352173208458816404461680580698437162754003466383096502512615665491838941368137197019893037104095750055315904963987134202617025597449420631450456024046450805977291929071139219169050162053715958473657287977449677719693486489736848487367701911438728688992918531300721734388199310568498301892520137847654678605260462439098293922226347102560163056511046214621089697218630219117004024378236770826487130294380712933783981237401788714869076346647624925513080082801408988626574143223627672313080707819205180054059262204909087977631156131307540997537352045126675266782513465518445835467688485450219220400663462827145154058473316047454141474163098956671993428522392081172785120692577954867342464012969349202732449137558772332818135778355876783382030199843545848526675377132640119157327858950140800640722457579264587551389373725537912954301578695150844919693275055652294158502927615706434672083988262230505539954219056179305413690575884904183960838058665959123414862845012141469690310224575409373000104515054967693642205415624657842235050649034699509178918491009608493386413456173211816274259921097043511662826217698872843701886971595987040103222249469471928204734161642739587945897372444156548454380653838904841992687160473552710473088664330544047814680182368103645540299130587423778221656371833821128676816163292129436186381949732727466411302057938475011949947907607868508476587147027097088670097637596499760602619990605008497468441556988718632412097111076591462141123163419219776433628615378052363747570694123562471026687919045645849553388496991833014596948173476083493518132784752574331176291437618720920393083514302672831770709182268963378874589003952693786905635205563451386388194487085118729497376578628451617975545253387294699659799068084156140985438703490991564342320903668214019162286616295329892866422995784668644059022169660829750486631554162700163456577223471407360362466503890815065444135656990816402567535947600827348720616019606565387183150446625807042803391771898648890887746834223883212995821786728640857731280470460972709760355597524570861542810079269406259949442947122062657359361973047942859109003354210718450735274890878878302109361754059065796227355705056436917630842740100664673357538916544135094674838863811626367979458871592529900769384529740917293556877291338265044350425167597606401575230337438468731841725622670800870114060153076811501272410208243585279799401818194280069379101359308853324874211602298534333935994527918715280634929940330620819927414065254868319947427753410174989232519724245544050735564251766600578180911655775528883710612394985030460401202534602243788443437566419318877395533533090327044751016219244714260244305642936137232995465433017301760880493233786990164581354416339391528532723458494659308413100059598950903039304937002046076744948563852416091003759328570725277603645476738267604014490344908600735361245053952022520364375319531468412033621511714342196854005098642252535397154844809428002348105097852875551376544145859550239183248952718687849396511952867400936012852660200549551981793446572258764607177495730770783066632622811029596977245441475045956467262465295737711455041709134628631089176722866749204830308548713522089217526759320747521785787120286770443443946227940919181976229412815911088715354450044695531570103229074274240816532291534335050848906864162000802044094353140141976138017473746834326597299135340691873732209274090877740342842351737536557612818689931937218895525709022834490525944589922081023809460838111705462541414142380173547157758499879820848541899963191308563761788567012995428916197353811680433562119220037285081286154378899987367123915948519224594553838332559952492815857469107629072102985576752389821270648154465391075262481585098963421413215810503905234467131844567573965319389821821088769797001146404336048492475796623901713888436257284761725727379553854610920912913517090329570842805595677379306314339109235317558119524368827070878679567372470624128296937452151324521185436354320161419304653615578096715977765676286995829056668513328321254049521057529862245883751215378602835189609780043248706033411426032618291565196750833202788714522292263478488024491992384186263113614555902208099149209589896157043803223711801261043842726618389321042487084536466315785597805912358851734395505275937730045753095316932028408640934981918005577077006875896070464420218514261476852489762995933489150253617961203136853300546773698595829693088598573676748909640580096242277879781370097516492585720575243611179318621018054845499673669858978140577584219213645225382785981271949250734059746033989612733685451034139242984248535630308370204514339588797399556012623574916500918573571783708893469611033733046486655345375030534383986329973291144327258567293204787904772439808503153325497470562379376198195886551847130784896610592241636477974435314199128635185056287014594670836697700360944515550743036775937929093076117750969240266423614973917948034586682400542929669220732578674136208374101332673778249552984732898841867926128924291421515850529140857574615254823695791174882826885167660440096787766436121521302767407245238347529563312263471510839395278832400258303932499614041639299282268655420326579469267442046432562000067295498417417225118632356110852814599491726693964334088946888149584909276832182565860207372337250388108347944563277724866818118198148748043980963663273573007651643731826011132516264333595529412053924460096589305664711528882873333320752757265107281501712639069309172626356854542310460070973382303111626291064019263940986724718089257822561031615298507542823850363309411493562464813054507040139376894583072047978623437902708533882608508819771423252283292557147863876400411523823355483674109646999409915939816807636754958623431246949387895563292116841076419551644610269362357894083664675436456503612283084694055555082931190713730808734067007710571331025387356407320850535513774953297590577907010726061594465141186405553144262060651423792750183889261407513917226591202094699919262608545128939200532821111066218474490121090363463088393335547558627510570913777013395998454308243386652532095878315778513592833019570650441596480133373665525631120237987590629633076356853614446994159843824647657953433654180891770602376986597390896314316040237984803962666343652960533038481432109606579579027535558116785457465667059063599475796109300598205131842079374626809885510367700261485336344519816932797471232200917234476972301556403289797613732914487176229775133543157124267304616071983963335986634012352126199689017319247161897473401956162436253542103291051640519827845773131862999180605303956206555010778366318282133739811960309052926355596458061180051062908855992534721902107878911558060667420430610966874015146540377427780746366721206035701598948358326223800504007306091823152273663997347261312045367627258361411337018197355492459850542350145581888080145989435436846614098007668862721579048432067755989615134883039316785329986785198515372910715906714160332446374161228775132037484477810821455771538158568783728483462489243261036171033319869948778192854158960685627480782318615360525416469072548167108422392924977698150228917066585846698781157342969052657618775097769386788726206932087133761042826801238340327980307951354625105115101608152998235237782825754464603212975097552757515905420822403340341306866124071578820375674043685821011936369311865135559503994636453536238988113258132866766448709902375902118959543607475521920179092593524928543649553741360115043236306032706569988096096463386349641983196285966863440259243349645416900545638360286201044389068077815101378073162482579322339109835390025275684956495464183347040855825253410475384034184560603878037000094745612521307779950892612848897610257255997172092514283324795105713480888650772521405729764006425097682890815425979159954811760095919929225958978701993243296760650012915516420581252378064876984314082796151147603069151740287289938796903252177753006405067818213323785558871917864206950940078643141346150692114777988298922008874601178390440384384306655782860772806055031881136018312816944814552100670069754151655587376763677895342898463428471103750087829603008814945325049256473074116282264236675922150348316045684375507139948113361107339989092953829355649263322976754075327627372792195965246722758918457687805189581604455216584329845029660946395842989212911053092279196515441055177559919482441981164253915629211827586442942874510023584243625488506341253077322647165738824608997020449071674812463332507388872841063072996246395727756084344851270123876782120708811708085614461827812598658587686986485720710577415180013606217078039312929675641131051160353249918897433659047157796209099750889106901165650583484257545923824090858001122133337043708642531705485193505811044831961202289311035984862691606064600436231611726535104019288207979918453235932243176438762268246254994816171517805579134178318172516328527575937050694577077831356059517155099452166950684436242229993160936539055641157596740079296362822068554511740334270614443427797949607420057329967083138335219592206107475762492582429326364428726730086861752878164742593169309653766558426445245735338850815059154084908160776285758942013493330943162182950792245249672637325083301026544834854656697528014766515100372260733700320985162336795087193049902126931180126379013698671900093944074839472783399266016920006170503891263749077996477154322069343498033113671115677652497702078564185477527597563078064133596752414982321627486520428285729167685120641465832812688031750268648265539467441572639473486359747012855435260364395503921728198973606533908428006617769527028106412858668989623209014518715417617103497438509203852107710337623791552306673342508187706928812943967855370857185854992217468931945187594487547560889368367350974709070244727712666722011773730053003763958877455757418489206585137866872864032332614102685685675688424862711456019443694261509989832151415261221115640278971361729240336061038627069429886082955481692796479703127550149930834583444053912714966722360720484342679202205535921620137394643570124983642119664527684392121063188138874569300790794377035567174139940449871804218449001721257142473297940698423396861287696966947228747954210099297716439563286382580822841780035901154909318806580079443689970985895633697041542942869120367661579821962972657388109259447689914931513038672468263804119762870110003386989342206464426419047871487763409911968991286848557850278236281473568210504762003320339925042043007523561424693930370795216367300466971956271929840928333998111618802057796224263677693196303146678582484120095027894136131719444178991791527055130235984218651061634495374188020570625409681465590747178176326152715844999324830271436080689826908664753344365881005944415653773862415282652181366586770243109794930047175153249324455265084266737610502091797005498317154639149899867747062351232209207303849686369613547156533305464306621766281775298542462166165424775528320860402624045732153345831371171804660533285716849326010754142571396064162697411322476053444964100877086134348098099031282369710452085511388088548532467685634580276808286454226447665643225900281551215960146088825519976626340492337112861608460149232298731842076357964773534737542857125491593987394124006846434963638675337046026727648713894765748959551165850856783463135806264579437742181647009929200176728278342982569163359329901027726012788858005366796200452099897529050910221519578534994719022500015749831319386731579885152940495249704457572460503740759776813228466368024374287490505958263746126258313770920235121328829714219145800532319854984637887185600871414328242419569648962419509540495964869685035304823996763793531516158397246792222528410263244485862197728410435230740280099922853121833879884771088232213829078624302961222607580232965650683346213501711090826462953530914179343733924889664114201486598050754139381032282100303453218707203363827564895577114829414962242074227617349450689486621208091772631416908183847156751995222196953837624755577358880063378134572935602830352503697734564194841973934850827671904038315539829489512094532723400235163295350202922960109755444683918987760261635265540067109795613262552840329964261061756635834689415809531931201222414152495906497876700656524853723451089078805378730186899827526356369068989496980849313674142526195211210832780338211150511509121070951993234840578031872670960042528570100378624193951388188741791749020020643624341205841172892013321421479256147084844216486898896199430533935455605496126902326024047838947598039909150692549172254105097697658638394508586996509699822711951272158627477064811161231854646244747796187349971298766065814764931814836577802685108227335769359050912116580588087675454195638373197604132290202822571699272413843809710331851460110196098179774578218498656542299961252391654750715165703899106184569849110874460096294197361851344956953835766769940521602953717119847302651794107404196363957200764349631280451634164956117835490290432619150428692393843815278493054661746103909820983977906913612232419623430965700367334418652517201890069961681250876910603968300171234265879525768286926918789974175914052277889597681104144510700333879642842217990193565084117190384611751097760034119239861728875632634013257722971966420482216484911371657701795798750517071460496661840221219998363587708253209303732759510120384954306478193659476376760367013906471553737995607958329046392418162651117632094401593985989434279895857375984906921790907576177708142531872484314201024914699235644015097895218084436795824227400475726708041208602235271306849849020320134544953255891139655052731466111423180788132162324394917410217309224962245931718117329687053523891623107530340834418391898483216418233890301527970866437600020726640763338940973375332465452134124590411425462389297946076776773050802631564394141209489405089374606705648312576209961550304158578849053061631391927055924726516452910963144302802967243461588820106398518171299602755780768272446841093768694281532834916153426358970806759649766117732456275328584564574048345224222106381266244145858941427402580900688749537732708131859159401682345031244880321090958639701589808873507542449241556054904105870497601179347262911578514640199029657593521172493604826866468288732700678056609258416591524653563414346872076063081182763129242696266180750680302863672732938159707985325987910417574375425265343089212014474323835902269782514399346466107765415112560396525306445302164694047144427543811607139391103334184281821616606200808882242715500972841994389008407588827685144385341195681623016469938476379186418100625481872040453314887193716773549040739641514379843188992468226786172704697514542728986437365855704819838069856458910481373798505908291900509443618527593383328854701430201767188584496427226504197567830438062447499086024077913480607836202825042463367564521129722764412565026895782590976500374613129121116805468566086502025517611703693420852675556796843114889824613462713335470119271705355962935308608665212951759032442524750366093828543069973559962613029683490580666013500008566002983288888032358446078657047510562446981316512170618498414791292251654276662696060754602319625172010665690911501669816014065201537391111658003307642092820692303531627596692746859968195251853650182760168416723697977603229559171908339401882754815168073636196962766068047283625196184035055426958149463368618140101002040664982911532087083830182269842183950734506577673335262554072819691308106947292876892090722606238771462353515339650294996483267987280678826814034202491873480101442506592633013380260675559913459197956973767017220768998747581697516778416451479129511209768831039816775308054187987379753248318455720234462108106464228399364550667480233862137022773051239815832823243025328297126170492525558379208802320452969650051721859897141086864517252126002643116515575666062369721177413133438176840059473073721085746951448001633941392272092636164161363007050583415639418431303865340653607843474179684867214583616145365998352181837102957125243086599295457400146813904538587705621290357160096616139214591013327517790159514460675976085942089600672429991257714547253137987214327942837857930511519771505107900650612390081775696107487521355789485790476685924602529358245755080006194106000233302838451855571868621387869805352994601129828960809310385017284098242331143938287628727431257711069743954513542189091094842704526297589721617286959754684375319886311164826158054319439769842744044247387401256361808413848375517107337175283358364010283125760201401023851532129060406418147300817876659017031106426553890412000660288798259830902508591136559159508915399226060360872327500307689325852228919531562627198416811260595308466942119746229160180219603191892823848184220349364062425637427461643715721590481761332626005146840915037802107114057365635997840623751590473394754621452020352841668507044125743763834547301867488450901257446104533007547900352628425969936232435991252471000877899103257578860033524912330358709196928351002816327504201797855453577493510113646573470497403672696714543763213301662617326437346048796012577970159181066055380527298408658880595009581079795340074160520100493998887139585572988321947129703927939552923214216490038748004040294369740262693199849919658284564150415602869635462590272811732184304449301953569830801945499498604755100665337627611963741043707648431631168567114499635266359515036295332178611242926597342767097240378523854582995962431929345860592006541501147489896977457109760670493407762819525976299992366408353862425287457912708164987764489258215344690877429166235512049867320554057065661316891457205878060603133527349613518906048845946396710016151065134200858310605462823696625788180184873849670515986929950868948598238466936668340781413544238006246166436613969925767550238622543420376790777786171321812685557345437818307293556503608717568675538852254994145781350050601939278695952765636552944567139706535165639712254366900320990614671089727266816024984694079388036482894103049146920715835994635045222254497507831470817502479325106414750564490863795445463812644322799035466453994350131249207556348260698366263236339305210756969767969007282512937278198875571348813386025989651808297826468722021061034354844057073673240396263533762515874873546595068309638234923124750354050011613356777032034251596794644219991629365792141458645628602613952148253536300446390567669301533292647813254056547795274202484312965058319672915492223832588157009162031825409542077171578145659925690881865417086475949150646257177331878631390402780978559769494087947886140055219512337288834309407645804814219565994467412328222510659303168831034918400913066548560160969908295791794583128505148794470262178211432856803045638436992221228480994060343835695744647075853114387290273774871841227533324437568623712359001433115738278641736093917452565194906094954593155350155618605418026049387745580859019545733862625963555724702473680782172993266774238139750362336570670945137181666951711399497776354070519156471701475734486938052825677778437279153814422692544522043743387979928821014159221452762043613445811630252120678801364117353246042344933358368934868387835688068742251560965165408390901152133550727105967144893618715046824209104215080360258232138345794462704317574517328869187742361907904512018714656856342720475353923047937858533463646743915747644223365527823436622939298360070057736949119050822285803021490150476083125991124141248569392389636817327433709993676180933002157454316364703126282174933029232483682643002712776936105854078101607497214131181004523560254415728878358326563608289048013725505289419318417161926297110178895376800317955533261613608802781846114694219004595512810820997760469919168404967315208777079007464223695665331631367196883668018299223536330844894798616882115348247219566185135173213176596361475554338512060742804457971136347968143271329248822099610793213394038092787658997358238171584798596636426237930943768275778641911355622799766758283475872257916107793564082519968950420552920524895801668299729295624655632232882746975606035262777996489260639556843160554488279801928285911009186911002536438769848454518043444704570950258859008748963867077708656245147694975769192217804739407955839586821174346170432419769379125778299928117749114041128570960893454427995610972760171242417016998861627328109487932231363334267526454681136460092638009394610594748305510915943210939224612883053499070835227987714383085756745705191335067620560960376506730616073773206121716557025610489233274454240059639427335097489562518784297440293022649830868972539052592020089920038640108803950568157123769114349433909938324128757910706576644696815330922033662420670007869924541764607798493384968078836139420973534616287263168301609538961885483657638335966749074433591294472724992243453195873196320997192414602422460677782640983057587004135050728381100784253434824051617147989129913644035860053544374139700974503680081634569235989337590533534931313488630684695498404015459539279827090339621523679650249056314234093663406549092687314548596191861773171075737118791726747611843132337211415028257676735050423709951656622954474844132896005662374678910473222244992155228073052978605970043008525689558780983344013925590756279945966080200042089247009307730492169137129887302120072460775491600591080294483458210325777507080730819699918416877472145062358148357662079316608517961239966425189526955749769148841675748210747830903047362322509968327447082325381088720303786319537193555196861017368250668088614817829852156135816120896769178649660317819820835140541768890876620429615818528078558904192226544237257122456945960194056086170801126466152918498813579434395499594189188583247999829504466463478413340909483474495661723447297743328505932368727001492725668033301338145063548027351973519588787012224558076353692136724640856532100483395143439638711683626379636087938546450430759169292781799782656153547946474560343175745406448853903290966068274845592612698556145929934569022374947754589860482369692711120326716292833708669690259104306608756923678233935095643528393353184401641327569354762831322242869045898412301341508386303425491716714615347024436807722441892222507291045513812989209430607419225015751933749236816338638587196482309161802423724792198812132598529598997549320256359886500641561054771998361433839783583221941163349644276993136165861420807098385090632494021553916832205666554227768022634454384905732386229664658980414033589131887014044023338702425469406592175243112567650378144148690455757508362348397182977824350193129973006809749884326406720503659373354558193866859084607710648818147877964338038816036848200797739531843156010671001308405147577714481542398687096252322172481358999318839262726316234567336096877636938539878750253939407174623263434526779753082885361921486005626135947464893833088376613312071064941204462566669411434806240385136546256765644707395458194913968578673931224212339828961469022688609739864847538695910919883003182271512924128236166843660882069243408891610892255865140225125879062732476812627843481624781199649332112558385105429516395345457453214855196360216745569109913825874488543232917840682639360298247637088186935784341041187211124434068555640471438596066608447519936127765152974375334790713623033219204976566957647945945043927687832557812528805403909686574908268732010096435351126830026130920887624135582474334968482633827482024198738391568224669314316080589966972140369748307166384682165642869584884876258215647841963137715639372253077706558431812672700472769235688053663216559916943034223544903723922912234762222882239732970321185496718465899438447168114669814938304397027930867021128790721920743428533952033926164620724858178556358660991581259901627475928908103570639650963239881523353895795941739685294850448039855327607726576715243840412242412262303065563665220706871383008601207217541094342288818371101274982362411833867899131269280955630942462144899714078731603431410995291349638586651842612423644234367977458910308772819840019750844770782333202898063162341369863003759000159021861613817961245755854585984889990802910552449639409909446654203675535917727832222664874395650526500158998650969434409150371612171495966345739391858621997115775511278602363640694714732943752562361766495706146260054718244853760291193938670182582163861246025320673666373781309992669471751867121363633810604102839727698745823073143245612859276082123234141836143363051512066862382610634402826189659174318430402898730486705994155934810271900605916206882931606193397749592826567357709480221362020592665709768486593739877342459738801529178262069324929317218727547184743509512926155759270103504144677760545211677853636780038670925312935352035062257438458832900179279418530997197362186846802926206387191874018402107404495659154869928907331600137953620167164170654199345330791416264591914393212796287789883510539463724013432360939257907243986086555398177984601674215002156134946246835105179062304419335789502545326344376504229859677668707547469252582494517297954492270278133415884144311939938639650702714995848150375258917459587831439312849710026031408151596379126705125521660460346677250800832467591861135917159817996668121233932780264376660461611328436607334121507516357353144375193191141909645987240677614604238347736027468877543870352537716497206427399761728727233270489813596052836938624347814421522153203986678070029963034181809550013528790715006358256645018760071302351956027984190960567832106362279619578340525922072701439332755170318867616256563688479643229490483630342173995345822548801510028172554325284255353250134046811586866104228774261728027682517983364447613796678291555405308939450795174638817791019179474325302186523217674929064659885913239886411652634838469263968484253459003400097992224376049899861656037332188581648839987022948029337882583044075271687910447781287692492040563218044635637965192776352023388426626168508945162869397860994001345144169677466616865830587237611209852642151264052279750611283181373820533153003290732262276101992907593991353460917205380649154732680926118271817466384690174811009278278390510306103124843261241235679885006683113648292802008119553492641161133840636381344643131667523693083965032491683648040100518633060680298935450805267560492046958413410601470113544315605769292825286788580815842018277999923415169800439247636413471501406480796410500846758679959439061953873691753399674129611497526177381754083806753310600126447340153952848132702408786986339515240706468781665168056957061765157700521529603802444499866468854879303123238696008028867589436092383327902101950233446400046337703986008409254797866038332397955069220438344900558526618553654358914016272434903134730075777381826191133920605252436280848781472692695325882059330632581213639149102424038251707495334917586509352707546285330599560391706835980816383821328769974515762733501278470735888124806147918065350914048246977463970768850097766797784782108620537624674868146604892508982831746570781308502294287988473327577824514686536930791180871722691577590756803208529894447476140514613154364399657293481524734295900583136879127683222222422959338886481320727532746732940646326050311949442596062077654164370908596058697764639604870602061147443777316853775585935326627520938233497510350377878185425305312947833386029612332881826660419396048845498462918154863679602819421970160378784316647705491169640839371585469315644863308475105467097476632163061358886063706132999292906246755257495276073543844044989283195199597967890413892727879805274508402629888770424212466886806470393302794899156179460399067006222140150978482839900657742154306193599465920318461152226720514405648527914542834687867193608084419149403662246743953189534503586522563488220147462098646855672786087243226364647147993943122508421665664395875647081095187163035356331119681599950885719866711762014809474107916215240394471855281642362895073328017666398609794604263863324996348689374494784362983463882820682382325541215713666452907048108060351330319420941758147008091092574531650687610681630773678784919659628142142034900849079469994620472032455143545508588734679265451530554624616850497673294586168867963407577799115509190151354307820579528273413900437963154353174319331876611792930370256998647035192904743611463073286001003966292483424381229088176301899389617381943197470913024801598279514877985340999170576892888244007514467281399338621218959234920102708155760637850803425898284051191835311200494749248399727348067729873441164530937366991719316235916803799967708214617644296037057920248575160872454515375964483808903300047673667365297232693474376792240418389465786086949747495965361318643506236288402803851718513276201115763896550399676957276794962885503178578137967454164703901055227707834597420370206863506796739605977678540376690831597311884319871043862203169399699254938494216549081429528113672428971905510758645867933465991998966101715577921316226595281818240210420634875772413775977966253452340962240644256917081041857781983920978790149012512802595523944856416715491160875425711658929611433634202021201798738736603928359827934885659422621816235654766027160618792412132500553718951860318483762033628921764875111051645154091495585370730634188313705105308980523848394846318155845822704546704617189820831999646021770274426696944383550859717330041370899906657170005775035752054320706354588443369745993490303532428344755382826182142479128764954333587070718628820542412930774109033479509500187990665124881376192959068231604746376189797601904512408585674849686761991053448953548144181567702888573434271672948949296577014653832771687723668057742986933138395957440242616456763355256588562471471770276984931119001565711541927223782551682933662166071337698961479461244863299071036100434067496036726548518979249737112345737479058802198586116526278388869374387628025220874382271964391690356393100448074592024284840525597754252467218374369183831954507220884258320407650976331058778517052643887286659611066364309435310157520972874013266398777402846651054128537968403353374304902220225748277156012715606241999524734702896766258780684665282252336006306612615935929682150135744446265127742228917986049515077150966678270582031363126991251322244611755825467362309280303585358678559667781795506803915713637100305590712427861271157220741344326006964014578107757549865847859324616223067913903480787293490581702880903949615742205444251743839036889383918116867066709583773782915351668571564257259244880588972405591440494630976990714379808100488084111395280086364625945648977071827155036529762397801635602172073251435766533731324790265490314650922595455506358472628058037361309870072641254054394561133997065848030769247084772605232443120811944295500652555920292637809050262789802940137840281052006803022294455062150177581122750587107398528799940233456165257784607807477625706450088680085983183918798579113032688550392590650164534889604555701783262764349037274483115962677381210657095810997689968105354442114512679963451346774145453278968693415180629251021045364017465116435496996711663461093394491414133350064093853915877822264028091390132253596466662601441562268860864696555045123831268243273501680226415896343536354062393871429620149889655138629668802454643199654287272390008427565974155439426127487227146274833585903715545619462558078448061503307065052858552033058580322734730791020402160325629816860209342740614030382638442871770184871088204801405076826120585153867985726873653395857514717538492809806797200221469540105260442799351351320355983555353312750780814347119989118470344228380321886889020835338902334556201172035692210837540646339116029890733261692601589788849940244479420285587772029938372060116315839503739047724992987837970116807573573157602281489459429978021477269502937700126176716231344571941971440317068905693646615116174725316426003665877428712836895578240240110449315111656775845312632683574639434680432109751520962781743032045285905748326612028707248136153725294756682120281938799606588839001132213003516847126638495540074694234439565705049531706197009304733746900257427449440268674578548269239085520519049794539531990610416603591041454579519226706303131299989873733162418457954001597154083411592548136125355019227263039166749796507004851419335120881769759624866250005106509877179376906949279705576320319758693696376635576943341638867817229009936993749424372496671679631045226127058059889668689683188424641817058334326673725004155912202210626853584319013469942070855536255406414841050136757345185774825054207899476486708402204383513080803783612853876656380268810821719124682619927862668535088176333981337879088827967717049551098590484580131594264741279482616973790117785542844537680192250469433133343802028393499251688437267354905534477981826791545000294697150073312890785805521987922021984043045351271236269277368234287390583179461111330620400538649668745439443728366368178930761510067742588336952861292368993622409525736998030276327626884644935308964388901955625769457187579173008492915645126520907420796924990700037441704951548418280971134948132408433538751733097061795593412045899128612457735242855483481463433494335934489686680739620188344274617565109011978890221456430040886167915806097949862278853636748802485838109873774923658286291665828768140263779614773130584611881487941461977641728529506641607799302907161330252367892704294070673466282560888661946624380340097703289738379365434747979094044811882773134333915765481966140052761481886538968578839064190662415976080934939865495029764430274626816282543114618011866793628331535625818444008953117638730392544315798265386240132948679667110826435578165388245692715519164114529359009430277610107525271635553249970022523755128275138768854222606595388890398548873797741223155525735255966151015737699949111681501006408202861064952928077893001889981079559696562385479258205425773040316879857954201043467074170732353337578314539563216905971323845527591660236312611662258360558704943455314199402722950874308497781870924460301261073070504574833235908033822894283402966979424260799004714350704464135565291480230538476341719134510102357398608869839100830988158415245259303490167745832902908964763826282151776444489989437466026073186899693145140972298523457516414360445782561406818674127726373012777373608489797145050269046035641146781471154276890112897555337119780133785181374416565757383148131058570436491920482678688549669126199904454968994952162634581255888916587396417178733495527441643815881610647014719659107962048823588032013283764506646846048373455229771762443784013836173920833828213260348554744449296266434852965168587811618771368925922943648370991279854103068989043838071748395008108611743453903506157760713976021623735984802727734610538372925222734846174923111095392485049041642813500045695200155763148641928531104862486075433254105127576796927058012310520319915836968462073902859141685467880719532369540333918409110524457425308307498438054522392541522842514495614351079759404530763234831036496180245258708268109512072661405271866009295022940211893946841722371422365683325659957477717517138690666146263283022996327821628759613489441708132019028562565431601100044670130021221240761609979975998356410125974537060096814902847340116937063447423393923337638748068075805634571476915624834583947567525735003004079047091144985996033343407040612158562767220077039069125507039398442743252523956117510608237329050715407513632087965640962255520948099870584786355595077411413816146303899041117994918928520567329442658780335575018243188220368372209000115844408676753295955206095491043974579280375156410882808247128949054674790104165122765072435455343478071919987924046510666000476107804076120060104874684506647788459067265900568483770380961913616399039693577981040247202271459519631719675840507479690794002915771079819037097587327313494003477825570911803434874370757914172554550818470386614160827368416140945253396388849339298018012029177208109272533551235886252633903817423618980142782941580413152891781973331650084670181486232265380056846332550008709720424535106957438172450636756270096123445255934321986666305279570661858877335756583843934266436712549521090574290643379872346269543348355619490052416622488983919492748489989953174677930786519757281223271828113120562417105966223930332934280221725664119895607662697645505614893162305786630439087803823465002970958276837617145533597637202200833210507983503991194071030882127151879242332775818134668842544872454812450445952230956783027190631573345659054762798760922982221795148834806008836625402597220727858878080011687211285766723219626848616679838796270984569396846345466630105425826489846807921608238251451694957515653216559494693566474976646205954694600596459381950296377286371243284432270902174398979090021934024844616549715463088455132751297887774082575342154862206185198152255692954745286738106236707416120174655889009837418864469601822084863146503216628841026445166726395531586866843985271902192882509723781995974807474781416338877837447696403004201070615990401515050597080798156269636416278181054061999859221177954238319132200134208843366421413588726091509180951001293406690932252050603534558437800116099368656140462420772126686722377142918290354534575224221558312281574555277089129689497169022937433622307121222335618352564657518715385910503722691826323882717973931031028000444167188669108427754591815546646240144070816453471104638853457759360800358645567917146423604285985410025445621347215203756893783307492653314664217910476934002750849369296632090173946422548358594516342033014810364863649339902981169796306164114453790854440857143880826280082377477320662916785552809193345508994385408086506077636697125607930799018513326276207766821155809615384575417130181012292861259069738906635598149716358794591143543598724612164267655927249222493312615164931087096668289959956737129304537987202936265108964711005707466285073004600273845630945761806594091862335257056200531705483467452092218947890314053784276969812841980956983181085285117093092358768156748504250407683517120339409503847054685827645072449685931652069805673457617475558801990036225993876567892185907549735219112706801511067222022714944805142957869392411117054728746337027790921403460286072088542340638016983513544524036946227909694155325030443320515103627646742876427748016748316502384094805058906551775120864478533557858007960778709023021542372648261501991372867523116010591785100064833072439365106789968674289960368668210553319082274701679217795304335500593349134019188407421838938086877104609780098650923471653948857227850630846837517373514091878568044858695608602887511102148683451899366546887973760934384308959765693400971088605442229653330861980632018415371641152931492057578129864232276769335378624591871450650841936361373440936825754143719414102514018508042626678735689787777147069162775584148561323331552363848622000540890773174500920568344580252921831802455118581553332435018990024778032040884360201720806121706336638437479673490455836898137190128813656137019388069641025416077461677989351132554946339093980549943099335093523895507794513601415968356252205532681761948418415232548125045570123875208143528329302638633284630519642960446144526968194775504595780821622553138936692983440778993631149027763444026447375828506059452074092840266855264194121439144585018902669608516470815850853411890532596449986209818650642933792698195227923988688327257683097080866979517587132484981024349723276959380791215244910843701733897192391349618210888738621851317480043618891938230806035965244317937816600519280691309342151040343800473689162791357945104490258108700870697353204831418564046661326702921185575858697820433847738503916094596959318722194762597118845462797730209169439998305009580558011997903749937052767700506244302877300414207725207603741751927027855478357435718306864601194220256876503221098179497840554359704569371440608130174726130872942154544993792506813896797727142987770069185296418340267425343806936936275553959134979908945447044375929220180483608192131960481789755683363634602019435077808324938366217735500517391763508406491759525985624781887540505899433279233324497866321546189028045528459685941379873106862992728872310530468980086690569394508687343110588467696871339173397404258768594972788697711501189171886177989204824840375549342692297456442440237919832983788864653259991018266181880008487179942688733382035061163309635682588980396282285910319447058925703562573019457190806583351767085099688451029805376963026561024173427871116580506978054189600480799558344256945538583740410860470703152226098572436616760814528489087331529269887237547162978811570852701689215943724805275590991741197370543633256634598626196346188762283385967937916202343617918127068626184014795825836945861165797153096259982898568772084535860905558863998700024245108588461681385980197403233629429962950121492476559428912938441844619277414905808178566771949920703341309338461474983195650086243507470577490008357873623637224525941182902752878678495525653296947493593402740390756327962730105504055890132428453510806033116090010959724816338849174720489340621300182471363625908353380186836621774590704123844571532545239380482913633720562535958163229614863233431307748873043659703535825945215336470589245344498593487364074035130077925697402239296055480504100029288783248469485331216517170546274748429459059032541026854287734829580535584093086202054105020244873135075100851019245868216599565130977127384354201692956345858525409778843204863132385593593615041868671522031583131724010159458681171278734913650673451523197695563204881191770018338767689576495155362312513434778855954346435230051034434082716223712194569924486663368932684160312329685244630659021995146573696176398660119494016865495025727387581131455404122593416581583664840224537165956274701776418167772503863504538991968750967770212763887367197707896876020660769808266153485369727739277535750806014439177025405814984071323991650949506332763671224156659509059826260305356442387655969522088813613479877616419679731957817237217083644175704606728963011245862491792367550240026959380514251232580789377372625210828777220008371271953839125872687179851177300529447888872944244624088287948093858360971905045524211865196981326056220909874080431053453039469794162044719410217637260238924639829545244295198579276107325799301351930308041851790476011546871047874388952251360586220915190902672669496101374077631303013419180218080434863565538484336954066454650371642093648104142126436192989273313179064634198276234959319702090875445424902651112877532380901659704512844528901313557729538148337756364470619862301647396222377192631579094409755726508799224734837125286807889860311096092331299629986990364049299725741309175781686647870146051235422895928912959806266834055395700905809967638332795060152430457923017854227977752732682738754710587811937208409483967980725409014758137489301201355899668758070231068105829718287474229706781915643130924395230581428829549686406737410233622753963954143393713700074644987929052099854635268047803659814497913711721951075177639583231702106706996842305433149769267192799275981018047702617438695283267042429390635212972498609171905854176379081168848218212790124932948099638483709313170425175332784323276529498746606984432756519782108067593085734954825400594699458206924661622588141684811012674956146942654364803877749547751426258440179589574160686488249012113863299051357959339661826994348439535466223875675033193021548483276387745819287991028210869777966328721036134995106571084446453197490007954327620723226548858815763981976975485067636777475782552542372404859303226843504614467231588087521766083382082501642961664848629165483954401851277609510782341346779787759715982333633006434724038405015909298950551146710922577148953151505502540560473288229973635833178705721645916902122522199678072028433007835254206700077002501033736810617782417008445033811714337676792511418643756989981663794747316064018398314268959004834014374670501045449021338730381912992267018361952858113653945761051240216500729377933107796511902648783044839507907700648338912797942600166257196042522736970354265217707723599763489052246624233664851308601631605605638046833024038284441369558712026727377299465095571891026466087918423363572454602440972948388800183495144875601131799292735672924175273188726857851423733937094197771622713516135578982788464775008427401437994625530921734983446406012249220156312333653984576965429023207211575098609488563748483213623193439916980491382127751336430147013788789214406136457736749265833810916932601751504329826626172037849181195578584354164231563579210295929667140274553558995049549848330045568900728047096208249222770274729403819165966646395103437172011134068758545069481149424128265450743603582387940862931268291705686533611140345777982044768240047063874507121893239286741807844503910635047617150100709911892051682195946082809621140080368118351965129653775995811544366438130884835810839718124115673250423267374764002329908760709070218702410756117481456195420790175536439304211068205731684648011361160787807185588974013475749893366449975806716293957706443699728386843475810533370792500074615195630160606646432950980749839240418957843608777313448436318104895476736326979708331722218148413403369789559900324457517476758547358888109419630878747193333172377991916768303001434507543746645698026780720103065273159425056443330742002049305791601188354784392999632641931598531649070670381822197351500851406538575203846706985733534919414272495627987893752909494431540312568154046139560217393583139743510505193550681592624159944265957826245726737296508247226828430871508887807186887002514040086785638879163930101766027874184855477581851504474620662727378287819928637893248299920774380526087794072396317686690913498792590394184598057872287914718863125253776821168697566979791934867496348625561378543290922449568861624113245198880215149998661359766137616642389363236749246388054779214410696968389286012023190474134062089856383583520275398645842673082996434065555380164121384371294774473187917559661376545047955116657478473028727024073747779287558366686456226668887771917096998170103970188478260359717105484430810578617032685012841912485508275472440288338877436177347775401091866420745557730492663895561385776232065416000229021598159513086484845810387460852156116459373463326658135845544832477826483414846998595444570970682650773131966909933995750692298784874333405192458439740273088919968590391891409070223622721521746834937223008456908960376179744561320734670369024391922366791491203423602579589070176877103893757791756741668360287039334329510028176705434860694042531357090103021661413999333725796382289430706578730358481476202121464327040935441181564182488002544174756347503302498509433105163593596002431205867556041936368144603094771884763884481181573457284131762894347697759194352451475762336176088189140537390079286026928600213434417337819293041517072364903163246603286761364719191048158452316118374174479562200162196061828936826142927555657973644122647834401528594096771212147509450127292228071692078143108735985634877385513759407251628336376435797163377964326663209686570248892363525451459305178871953370449901058407004246127145198077686159697026208973917912121776083615051569704738834931937416738885549948945212760183185825928311980537536924988490458847826037500333989311323013811096151658186894881987397478494580680048311079385900517686447494197009499163950914053115124872236101767431312183287225310252466161145252499816615077445380829993267972687374234505039666840710265839143626072335536760536056908435662268877076953660656444881810497569776087535888015402293252990987418007006641731998341269302377813291214333370453358269830582189222722974071601258068832383506797063676829163854920626608471989404582145858452467917789239512081834597617879815834220839425229281258847880264402317356955504837709388158124403332226493196601290471275744199450642069793381408004917479596587341021074477916073495143220200172671769355524965856904395186144223865281360969577182280266559654201351846456935710953718912185076842677784437379329979807987481089817161730963334326494547183769979117162178993790403536921405253644457774551678877878978465985938186794237313503518939573700146522782687376692449612974697776973486507897432286206184470918012447659312315355383723716400011298850305356310349889652621692661276349875619351556946344432743630761131251993649700960407046341211907359598264209074780990176642572230252330016730783895006699050682546892331600942609836640018195029647896966523524212139026743496114320675211519109999737907448104315943882808185267059089903792017258163243233224875685969990687822898043126362139653710048154499240190973765199573547191974244266286912833154031243313059539393495959761716856858717820698367385134350321796700642350814641707053023866291137487960355101872941386359657994917365768491457348627292836032329082728626402760415667935311443753635704217218004185966739264993191122602422799726421411202699254625291264827915738512396104772120860820176878695261240492639880447024558744566797504445147801029639193016104709893210402469872282745420735558486482207032307463319571323638996032480486275073923132815895449940888167792527185830177499526531281873663581758614305661118589765167783588685936925062883010508829254110821383748151154168848692019020615115178351259052745584072455913668900941381899736865272509082687695033326669471965910216627391443416276553294111122655092033965622723197377784075830074776107685748294916748659771122500537230102758531681430584532838909893104871636329934938779741306446041138905701337616257598176759730849055626014625692214888943656893110430522233498308022816937852493856618420961078307551257828634869505949148242153825505380570908735348918342594431819163444586868302674099854494272585539049276606448616376414912666505810673087840514478885515429374221813102909335520107890974127977616822930281090381883665964568787511524539975059162243220054056745805472696817784387616908023339014864315514585891017290556855035544060450970662316456168168514513529833550148346322836467360955456834796471808952323205225505627824815580382252647493846071933907828380680428779010900609840937293293627680202265252653655895615662713406594788432323272988429583848721572079498389684852480428179290001083303117774233648254330715868447736105178654456242613732101248816256700784034448986272814978125864866442979510328107509732348647428838638328128105471381059203670068365126522407269660603939584236359009732063891415404510612753324605397142136453194990421212958053314619975790015804556456638012177775777230950809275956109847139187002144509009973294108952371244293383728141455864622254553037544029243771489644320428377208948916081158075967457617121212834700363626320921743217406753354433200036014264591704560459989471542376098128938408777250296061125806244149862479572881712728143473461152305596080837497907217868071147472298549708259092442445625222653519306742701071739552119257981469728079432694232565908137170457721210865041171430807770868917823116237059912759771951582796022886532380507032301003536458810924213538433032123194537773864048203479430911791412487848544168613053682154907296941517937955796390867652086958751700121370821400846874007141902260350383127174024748199175966663907380261130001180547752069024250557779904751343545775915235233538882896876559149451314058486437697235739114906488234192038882803612259650490750587304554924460712506919737723547955156377940816473291777464318002551687451541716443774574006031609483236331798412037254316531213224195327290869631175496643926654045923380832893456736581957960767925583493317609806314795194296585433031996782125450914383836053001636637359308022806086292082969019756330663889263377359110552747807292443990690554628091701068051328221970388846736167782791834530809510208792074044469501149716063270389880108684024084358394946145235358324414226408537457383394520394590256173313659051163589047701772033326021745425690195598313244394268214876232244611571043320583277472829410081141862645082160885522514473732764475160451362629456502158951399066056918820879084228495081245642824636790374036574637917762514652236704199122163381332725256401612130198213766104987100956299623332141187388373819438733281883569298741169077992161645966358265612285781208955869370035573789527449573209748316268927809279777925545372341920223512962369166337556644595690528471499124092004393224321640660724385001770911353118821815966365582745236605799251473747605059244546395093385727088212017734421520863047009151293741342858768948748386611880204050154812314316200227567955964029197543105399571389743982050267375850504070518145396934668937748502288393406157866848845883572719936752577561554381337093362729687524493737523332289652514478870058613230551287373722293439201454715660212637038113697814248536523055937096198361908864479990785971875168843946499936792653343543643391365563877284201001873523953946140584443989125854720724615307411466106107199036294596118850076383416112341799585018171925089858357411503324763965946197042528742178345301801222528549216788379292631092202350023226878967296361077982158639493670977278154728165902287383710841961309895780633115863958639777892384812129385255577613523285749487170956767989451617631191401525962805589819561144066867691707229029750259046368387689144678053880571611893508769823155145733969550379759183606284868273437649834018362504198178600074508620129854642144714401613855465582942262207664592402460877994017088952560044864608358627233211815505344552926834311277243916152668832210374898459551779172175467935369620120564289476356859280662135895485627800453756982403649285696993582482038729191041956406903811649057803054614127786919649981773684214221046463686769109707057838894089874400633764524864584480210489954378282662559463730733767241306103195859860357538983150099168856335988530098967767754182949011576627958069203359682599673838109276278540416803732434165151427856474649059913583298237991003011188202076067338986646655865155763883265657851490325395788820599667957522111556506684178146249414904092043896805831630917088355067091373806153143070364353293209806846574489924718578089959475610646780481432938365397155327373854929412568522457134081139160789601824725516230803569173215429166372218556607576060418779894197800688189845158855454059352150137054491607236477067026799353073282434713610841797951299805777146052118577985848739743511372108331040047541436473803849207761054946099792241790560592996242223678882160297318989846291787060261046697915221594164329234488535015875974560587305420887327464632880813300704175033329447480227372464103758556151615035699811277323582841350176380257641260148277633090715480008129067876197372005665755461091203455931299764466975776320285380045193312013191148068279462432663696795911612851970958557386600338556183735085555928630580054226803061942310538188194455350113904471275322592842426296919153201146454741139682473764827756579618554419643336258211581681519685913785085089544468738752552267041916110286994746855117327938357600199307168013993240290636657571895766814625944079866034737815527259187003316762388195129705846532647138049038358371953841121320837428161699537984106664874463753410479565344966267846103830109772619829020939024093282609017927801391022339344340942901781092289346696796932584425950386507985785157868555747739586920371667973779029859121968139348837453481707458416739257699312207180842596111526994451616993200138718321599159318487483985608308433393566147323401880143551321934581622383499404359448920778183942634551102209237006187833344504535014399538846918911223734236420094567835431527308120675792510858075797610156320744984399877565262679167011168439517210610260374586109658689724396392389755495919698436062005787762293354547681121396921850468102738973558113517328017814005435130809122986135921093707784795355699302926818397763000958519187616266299991224044626013635073392257977910190229894157445116547011284804525038069820159807290413487013488169253891383589774621043863862603281100808345592090063856163805855573317323590376600560539416526865303339006773034337098095700561956088775695528597629871539161354793539391399077919914379071937682603458959464152874342381229943955144787384162022406130980783886165211306504466287509398384527499485755939373959675136055510445268642600545894804768832929312227020288360981787632725834803724012748251893354902641320616410919283136426199150036983951340909764667903538164165945673150950952188763716990679405310726229011242233569100157243046624919150428710343044816436143296986801424001095763442442192678712344952596056405443147349825857903927688778287211249714609547395582491849918025182523884734631013048218417826632601226265451389156023391109438855746730224089177592281036632360467296708198965037597647878329723651589379485494706019329577174513558852526118221079374496921040718296476755886048644241393574809862442746516873820979433146183970196057106628300316781183802166376486777417620755466310289947784702763442247629556246240524955995654850720799349610614124502052063684586605205916719611253020267566933325734346283336180835160901160007809842388644108826167836991587306328507647424289045911501806833780228463392745125708570836064611845712966084054991860706469606157452033516906965425367176094829123313844688828754301246263835069402674566340339281595224084883244489373988497927855896282494424869431856288390919151870039089977753372236979303307493748887826829688444450992206019505964110198050696955867453264562278168177019137545554398763338506975295271979816147751575872192164247623831566820437454420441466410267267283024665977614525131815262133306975160607018839545354145089836028092142553976942116781980422294214964693305172749488963740485277425425062187947499412009535203624593714696050007786907893908488469068951364867890715806671654022387128964762533729088878892891990738582433065980523905011130996137002780140809704461863834384977525741688150671637174259853714695074858015360268449252740252622324182642682751469217970530539853619386039414508039365034879583582395810680526409933665928622724204431891296232867608362749173248821677714453017805112325704079596820837614199569038604039987010839362515888878111301154764680405946922337951600222832498709041506104392888022354731598771614477714920896540873872994417522293125186409144087625119354405361159263604006967806580713446436170083375316296362687157669859874501962224586660197475432977566709871069254714899105772097454053204327420537951402211366885272520198945516930902543563311525151766349619556740008645613654236694822897465727688826850237110720530505815209785225474734447675470080950723428125962959552172008273763863345140863183318552921620478468711174960055891932830028650776643480132975558050514115185990224262983145701896872189266976764047331228584784885119413409706701154288760529468706196164042373498437746771958376759111449735725277187185096555856531924946433171335270680029716346429877714505123909532579660725047870148943292589599775610758519331501504970462470531082810210843604768412758376623992405582677112951005993483858045937857979717378094200498736937963084423022727722222211244059705900312685974761734741479456806671177005515072249225136662902087723960153615653983813026230598377290675856586276292257482338105830896255249275897229944338497679755669671813492769745854599409738298778216327017565428730894207435239670248717159668529217304809947175589441746410456355396926513877989245317229657823688998646351365578903077846665015840978973810456454078245290029730433639372586093567149866389318952993256150020037666252448381379406778493777603554327880147118862178276889780482082549179985861901849117192072896934771228362318302571492081157490062371236067300658607606398935646772579671901863269830538434543412198259575197572657371636046335117731322679535619249748448561931036257680773730140592739790411923364809000087612864721612789501007153869736909304042530169291715782187610408960960413923206161992807708115211421810758468378076805462970779070987881861425697850739721224906573472383560711911214804621669720210202838492223050355182584449887602771194645599841744905091015786585229564593776645406462589787643537099706895911255881834999517495252220980300868429554883340367479045206067961789281357213366835770895779278477709845304281206745834809594262030640527152621998543997939573274739785711413560322226422069609376826468528440822798041467646519674898909775276116929965570785389187800084479492885621768918927311154067715432724312699307307938816585270536083804195575090732896172237082068503113794630099136848851065489741904070766854016972701939160244110962223818811945791545677584195114611813321774573055196609541532395394292311904473761799186121262724782971875686711293950802776956272886012651272643276054738556607510531305099086911931554968015170371575280026752701136157993697610672061113539398461225691113721556562425749234291725533258144900197709070646772599000272847080641337434774227734607206388365158563622433243216071402675408003426177716768920445000477813418858266677703590052325692942075102808783602641696679439697193111777146089943486182154155158820523388877594847093677291371919459614651654003565726868971867445454317834042241432640892465512219185481462783275956761292916874180144391266920127548367683583733374316449708636754583974170284355734586936552182629501674107614163549369090155433467335832034586890908400498594903642331451947932997634217687613507706813493879454218031873704831111686170381948366500837661298436959661444276496725322566144662338985157751233335904369496986774557339352660757911323907883864867182364755510771303848642109172313565257370873982220672915650844495772980532950771374791106133113607045117119384577268806330300765092877357367885307660446254390853270674959427092127454695350308816373197887187782611200730808956126535912671746907850415862426145450592152386988490995108323179667541841055118384901570667384789661968915195774562201973201663118890000477698503841262344512983089479925640211463512037153224429455938744673653259189033103459175773870765860722487855399010379355590743404359922691386037712073330660532263287833021297937442808912998287431966046303097293714112633889599137541068184988874870298284392810065474191493916233636427372653407751283307148466570989980851125428971220221845015014586847172641293018177260215227390682086757034170590317047317760814809732029570476187438223009453142897232987285887908675148842231820538516506500502393158246263273515537957880827575752681885386240824206227697920768923313221110893670665474712898723052537385703949646917151293649290534409671451647742473336074376447414638634566405166207558566202946117090116850367950698054287842832547742170840755192958167489112965685376119809110037909675217996118193834231845409278466039823089778248658864170035417754133840059665738861517154884838712718540733072611160684064161669835413927721729591367772926581174986987062916408375062402634533342317689576631974151146290974968620284468418497610616538525794642952550014916432932687546350589406498653129747889917711422431494167942244644591515064251428880503715387796647188966547112137279089903157971639704702853130616072190652055560857170145865044403220128561175460466304422863525687766135383870403338507164224848609735166849253362522437969306150716725271845725224592807807960731078680395475150883003828873912134827107914684725285031682633281043514759253091549882184769400049858288885578449071533388643861722008713600974285575016009936768821914479056405655502873398888075267228153490649099073235973334535767019242700028482193694105283641255093177335812320164982721347723674361676460142088300059645162239344621650560868053861801787850849348727489854073266960490426076715164247930911042201681048782439893094195894187790793519340750445985943687794839421416123040515101897737405073205275922179717520065581697739206131946486788551032850857353413096184988563728682141414696991688140632489485932040866861849530735196522445239049898618159701225192354252681436341467485965715381630958574311851335691530375336479158824967042298940291707460654944025055664964884343989122656704315889807851001938622427272134822790102841995262532623909578321855926363106633302268312397992871002039219733278333101587047966134588151083374442584231148977222362041920139144265813782009510309563728782097904760187387055350427720508704264255380820383255551366440409085351778849931677777417890638932235233011381718172264576706826856134208050621192205250394387385368454755764362790348771427786315706175551315897374124394491464877811902041847516995563155776339593781228460482379158663947789685934817062188459286868904216140244879266172740903647547819200255011334688715342232827028248324081232282863907188348652550924282721520388987746826869514629015818513245830243401001627559635429434894257926629451108116444381067286033526919119609030782921795461077927920920169910640120604177245062606898318187651373262265704759305271008736544751392315834779272134779527404179326514870465155877470907446250546536528893062067980598736804426223371370353563793702004970455860779240441269269664733196700866796070224028484284451254575288201694265705712244137650539791352424257329028153402804871036117729283133732901598064191582544391194817692963608774832083587839735549995569221250115668742527339529066912545755129607384000036598081998375334132374572775520735150584897890587470241176235103283138719395829374900058749409180830240745130900402926362703197354450663976860916088024474617683428124745287350606490959043618685893935672994709307031251808011441087430101969277663775770543445243080962320792039035503680937704289142805997287502667008281094820972396972984713461200404473574775163595068938583753431028526823346738740720786791102156811661809105815986692100171153094673161498903793915637890532680493278687262394560099713555985880034627749048265675600563295386108230137181135627826136783856196186560532992593877158378166403060383067347717368619421811665150368460947475056045741262738803754712181182558343995627864036034134560529923148923611800805685684845449952234772793843831177397280774112238023825230475687777332980754840025714395016652017260517830261400645012793652791423544785661102670187325310473564695345501195855241341063946264409518358967382864439514895420902612547950714446636709419437586451435721721825418792613400978201744845252061243780485763994586170960454037828687721611663289958557017585475587102000521380718713560007254824968847627205397059151949218030719502956520539477442737897631648144369268787546062729393982930997289117055404726368930603857227616403239510984853431449288039567497037137183867865171487960682003375369024776485777171184300158576993306798707356241316067339558995792116769120065882366981874186911317393706497805969291277392516650757066751627338877746166208974838467246455322145457445208525747590712735609299973499981139247008237893624237815475479087511946207640288065953403158117119797922660085640629849082158230118410765507853128192234468386640459624864870404677933526956203775506488199726169083220313808608912616037806990781233893445868075603594304321862575720943856173018634733576975667815788878586256997223819074907677747395577967929010291453364638685100407669468211220123645717332663722349799830346863281279776345791439294100103422485384861473348259248934633784593838198706684009343381087697307458654646336091558909554720533480591818320656385816785377825446851707981182530453438928080196556091942875216963434555458251347779788377971905120770575947210396252576858055169225567338308000699728094830644828567578756202329273300267514972792304249851907134180323145386740173891073922866245607693878234520848924194009476149495083228668961864525776698925255573450464508680688793725473956956279467339126968344844807227070341544625012702386261757207664607003416555973774074938472279643663433267542364187308869884275805325295738317074087391374101396946418149946696323828746144243648701677166430380300193037141140569343351129317096100289963876952622476916490643595450849620513424777642162479605239500632392752578869956243026381901759033752992444355034444403991139770764847681406812220315243826927550278860357092166719916011626285559457754355772930798284510263671768653309278230149736382047377564117728580269720185243690861314160101676989576589406426340679969484805940820619377019762293351743454587209830098030748171175807741426371945723098759557470996724115716347194167453660293893350851061701180758969508949505352742816279341397191335467910502086785712779960802336649986936240032337747219072916224606150215423740966921675025267793439834802736172289211414384294279357402028232512254827674597356860318018333172069137784204361984242483790714150575177618344657892851855007685949329720417525581461916512265113783487054285526589802559107643281154414926584809744643416214811108256708950460039636420452166345095886974428285359753369544744392026256609836870473245527296250430386976198750700288697254705924297701892913222835297241107672930716491688102474326693376423441732863232708913439861888982621869055413224171130944976486209479739977830138026218876048009531598691370237845064341211662834545044377472961765613972001509644665617367525159610012933968436183193296522017305396206935510384049731417692568976606066035523147807483310810348208182337206880320073886372185976005778055971405242297351438478100090996150145429025401863477278643853937327275050520469148034776413566668261808116107819299540448565526663895098720132081428751233816829104538799775709774851548762484960958806620847249574531477297701056105170786049496154265538327268369577967131294010029291979005996847810503243090634538836589249236541002651930369842460488636578689894883089366786249492263029354274910502821813525202456533331666201101592564726683610317912444061023043251196838194802100479465000723121301547569313196277381628194459160319984066327150525035052864626419370179121010902534521208756852413912419490841537544885079645323790648342652461549408804672243027496645716259251370108833759405320646662952223013889387129412780996302993793292797328413238395115010463017240643330557262726760378011869072267676578908567502339964166025800614959154381929975877940483565744281996346724451018156964490337676318970103723725169551172256916756168949851766236321795152588061716309532462835873417429772831430323546357460615168304184086662934003745103698306099386210877734008765095122681473497254971738687935448300330522758231387467353503751486550108015470806499212850389455811718897641825249216110249907879206262400199726352475538739164882531846256469024289985664368303708259522815623751305502365554297890507403852001874248784193956192267013375134753985514801813054012375721959757132120846979971028369711556377825503547894210014250091006169155981605671322587398714861323722882522861657447680943816156344575686339517872008554229146990421353642513763160492686431901756662005819410092954208001633471666173573116584513638217668440578426992976823178017294769213838297285316977475321550876002910920021648525101285933245398232139052079849234427556733916270411193426035647995749567652988773638534798017114518869648282948197455544934591149215420514826860857674320608172748119797111869705715438312600561067540446818701891543256272554654035717694675591990170591619326570822796343822355194638455710265573795863411724247517532058259428359763546257995702763981750936642311915276992758898368550246325373213640877342034420869016936293263078725790865974081314983408243935192616237060997010699931393586291026171925848021232448615049277781415358971487452632982023959764632807209587573949317853538788469429517045100428393271749513848206309113368828052683399452507720939159037228074174903637319947733483718239464421942050410429164699010456175516259496109527603901179390968354412890532964047427273915673805272163322262191219194735156710886384030549737344529874740467224967659982770075089477075496832136217046179884087709225614545654430229767844120490872345889452975704180850341549764091931169956421696512653548027640998819173432876931957672950683768522547288746833084942786681406431029887902019261383345109636046053149945913911925590623938665847033436725842002222485333010672602089300751859543941412347176132480734920847960466604762954802028957345937042893702931609262699705857235438268920319350876259388329287718950643854001019754665464781560447764071398956855231531729988190216506329277586343105008888154594037345603192161724616481365999031685853686227636895045993844016926743003183528551455622361869088004329416055677535740173695840446079524514649276256091694322595915245372441019543984041708184075325495149950661930683176751817106158709937285668833764342284348716105170490284896577918705681453793836097962968225908302253856845420649696127612558813107113869003327156183056616369804135417272490944582704242950424275337890805260078941037857124584717883310164515113936426958462853746509288572087732147027656593376450669413433395770733642931507679022982622205025779146551857825456770888076614185081144033318471682781488220524017064540994470295599100627874796002489120492722767697450286451340772672034358323783488867892686620986029947372177329443538014861381844420449647293297143495723478718454530506402305689163784691229081245429370000017084079814877939602130014860275450323736593562551982760763532438794782399115888112769105152685373183213988489365030310919639334755827219022280462179788616859472194352528559844667987574926446394045729084908350235070826914314223799208940319663561172169459931144694450578424798963176170860338977781131698773216646359613321569428638502299844172585828578127748584255764749008939470586803011336878256555789996764732114673433292147541928132197223800224277001143578878906658199066194807511793724385424426837093425022319839374846514923210719310405883826629944355141519756325665121437988213551084185219046604963432753295028927859738541499586826093689917614413153894370511567376790787841443933388679621157667360955677142097237756096371661640825095103317152851926155524176249715232114480591297616712850305451589510866270642875969892695345281186557874904461389285171823459983373784132047967303312177784811376915497679947267211171687101450298586291118842422783502772622567859529067790031741132009287678554878164007981942919949937042479112953368046084130914055015000305124637502067900571276359839593079162226646533080572339606020788954216973307001975114719207577000681060733298288160664027171642794259393240209216786795457155639330068243972493557566429234885417460847208232500135746116202788187331622016745418859611870528813961984108590114712476779263210575293483311624450953153887356016248670636289652007734911783652925563180627629256252446033791344167435504897412861617572480381721477472182761422232215983046065570780319780445754899947415501138602943718948179952280346349527897749733041161842165205428295118150310901785023523833113203465565612363805554657714725658338970339005309062471299073053905731104961509711373345195618913687806241540161629870260773348180600941209141830382222158158313357359888186886113105747164797041049083645887242680660202891221825885200325963372567324308545446622805948438690218580200898257674639150537989447394399712169555405390153155049837456749628393892626762023587883506659659797892227539137759695038461630498281444079445321037591765966138126945619417403369520722864736417167269075716357014563579258095587824492108832453248573608071672326990023729658081970462858700584681328872668206479275449328833039619352511234266217698751113823113637150424665075911375152718168472931310720547434747652265295224548021293140140022311717231001480482199787966091231563971480183699501936688687278980781177118856062804840875954939501215614101213748820901926087725244897523676945718810677115383752720497584365414747382736762022270271409536998155392358240748984741426801871239347604479742112751673688754039474975760428328214828612358626025137282838301009802167144764394498596590876016608640448687643244193092679970507436970621142709461499988318795941653785342196331039790576685992324156150836360557287576571653584299554862998501257662871421320115996013912000451615355542608182598964912974957337695116757729291824462020521583030980443273856811117798054410708965307488639262444458150678021487487823840624148574986003253848960244539358283674309824167990253949588044053330797393688622825936226236137146682309337666641484244279258463495010864945876486895782249017111741604915056743632517833934063611464756153171753211679304601580521106132852322469050653102566857119377155865183680994272330909818214096652980115473466203478511706924034196193022630115901291837302039808390568229833566041473358102549844729204762983642709402067311213395609113179318897214415668345549268351476449274842038678623453188372580876266962886592610439047538356884584073671411183971047364388009608677593414879328112227004931422364898161626751014629655811681123085903064885082032080971306122360125387607581615567528908482478463081724912336151765050233095520166314550479657826091302280641622389992252253477020276084483527305657752326197839944557847072643759853449643204197172798231543943202884122506285621101341824184850158747959515098900695850911796995685941786879468868178565623596044993210301290998416536220602052706540127501065555774329768453435017268602375047578819081537206397806158566424691220718755420210395226636906808479498737403327136258610792232174240839957344778149373940395019646564199523538385197165142979336333638850276210752425104948916104916369151362604707259571389466154716807809795420437999719633779554662208366825766213455918744073348463593292929488244966534739814403735757712545268296959441618186135729929070883730594681742274303603160743823811747053762603838147428259335211441636476283699160853922624772947355535967827310552833867129378161434335481062303375685563561927122270112928455955713622730916139606291739396919680697327594009131776264384237153023683557739104738329831943065897018599302683573295720726326549236316144177279513647113081442521170503605638405246469227718417146663379254858882467439690099541869715722197889777231898541349440566836683528610858920227140115119987829747738724892548240859619181277571494927372858753753721607339043491747656247957319358473028296625081932637625400837948879027459285674358196888732922601586670183688116896838121606335646806625825491914890700440570408050758377338123413624494541055146024104293708384276830428299527493916043014636713494917978986785737478494604174876335677605250639957092066081656627892474491958938463505737946095338607094729746765184969271177332070950118883385133296352778144297375924316767851222114397104330472752142404539379986866664071949702490990352958598502070815092421419279165281040693057513853798072381658393143308472771430706327076572892258707096490601556895735061161287822044811292490779743177686630475609757621789343337839289432884246948427374779539897561530967095149723486168329992894910374915324730484806191198008575668195605445534687980747848576855061503300085168762273874576688752448471874701206396092979213576505406283020170665905075643993453447586834685086836060266987303044530770560332935196374806600563050157612736014735076330789512669597463146201026755363857088814103936327332181232782740233498136319302253297519418118145245482462001991089324420651125727758163024521469096450426462421910089713605569571324059311114211830863133326596241021708904838472040746944687736626337386494360663335408826536677774665332395752163284492633258739820640263352366909861981263851547483669513820441026808676937176810407298833337164369049173674838555836495543061635169067762587844812737496196499250717217701583729511500278235736715714440388215978455710632422576913077461083100609264519088875327031411305553081714766762913903416759497876634804384168497197941609989900407210999266825318799725166112576506690883963973509156293492934969519137442633680431761209583858371603478234362503140279033841891495109628427078160419133256628530022721087234357172093154837834536706970184107578943340222841070494498791216010689471376829865304961280042843164676771416423273031194474406352733033246773381074488853192459661576263758364345581759436269680869504098507821243113762888770039280000527057317721148118329774327813762065620322469567751484548917433925902933896841676093698227191588132357723974401604284448599891057319784405402310283506520153067112564079687046639179528300425121076789175600292970262158302725536295194717135032513920312458878918995555515367049470494855736091640471567012787024249867326628369303343226772923836655164516172898862910021074703946184710521079840279052147296122089992139546809858861411837265364394489895276265546182612697163382299633647073562612941142207990221149474085547020662173614076658010990681364116591328718547728847327966880888078060385300929246444475977942209074707497386223783909901146509820890441787497289140618671857646268942598791521651537624240494703484526936113532648828355984488665479002567751715908908817234167988658242560063108942044704551244629765122122776066126060884874405438337415228648721589927493666303534366830156954886954705623829809160752225993771880159064623899526244418482085441092352537465661974919227735241990541376395739933017841864620899386151267273635433536626204680386170072846069940938391160427566159229422969310061831465199669501335948188365576901650733656949378150736823096314095173642091374233768648251342178901675786770149171233503248516232165991640126807646178285751652358736078733524116998185283454902249049061491043729804576404018884466667101795923417695887764198776691242290030838417030185409939442171149511508358922967492175746842879488575100261723499012191934177882853745586120168326340562998997743927768134768393550009793077581431809093460047842882199987633927026707766626344336884795391786538022314626357364036517409336753827655270343356249207175627470967290256745851153807678260089205891076601857696428610073068145680070408039691677754453433737086513937297635975106619434444538238474352688048686809782686934500362657300021383205485046603459160395066430604125527235525150446788673019022594167506559355729030118825680010650829271652893815687223733308724868952514998372206935381567112750722700865443791496298833177837474797389360547474412314144592052732638438729468398628698081141495775439793576090850051559113402548325524624501247451910367981933351481007152183753193961060973413281708529703739956235727548599829496892570539083030615920732822578366914615486581641860880481297881279290422222702471823710977169503292542068217815959468208287385849914382837377032394134505970018566767272408009976253781534646507141918382223990646740058511471720402424841755259097697585335375724313646931692295369113392870232113853517891939590890140969957136641580519301061235206908651699078599093211681904525579584183392391055994596761915781345989054339841702006870237732939884713151355998938986139748200868734795819331167124742783682794967483952523579110540160748736144403193881634106624879608785131678830240154405989631632135527894464790390319688214668592750544983579924278665272384545003997100174584325022284065932596003885631437567041765333584794829108951504786189324374617031586439691502899013306672790352530713323866628194239092894796836935400139375170606724127570042270668240815796050046498371588124957694593439193480203923481991974045308187420919707657876238284768898190539572142882020495662377795595932123494606280587998395071995869144979710049772664116088911134692641286907101893582554332690549885374636859698738589552623980757841880936210141231575192626270089874718554432067941396282410165473400961515571042732576243185164805594680484689362970030776584326111205613548996148745421792228216673197050254534595906979531828976879820186823771888001400355345608012837244085718674786905167842767496402902277838177588734443617376406546261300310310399621380007956364921771568091887252564326682154886448887143454578955999166975890130027597198758174690546322421109940669833499288341642814213651397729045069423103806491645632241817257137587777925059875250525479236295354973531176240195646785920821930797139994056716840217220385505785229057657355101647924455430378956708367223002238395756419664684055919819489296074836453671844678057788033035814802354276268284156050737067373647785864919909849683706587132044467654510549010809620089721936264335678364947791319678598145201935391506170317031263742422167224684117599036701647085651084826379167237000866198939033186249905261502647502602824771566274505068982336101972043504918635828270979766771245014655761241817152010198688883880183267374600953799524501910743156254339274547605824699768326266223214234153302539851080037404902594369492478557438430350891464461605381251242144424113880135051381142512049572915813609956392811324797961208542218442695555030978313722867227135723183864383205905475399283751656950701442210062528818038956389366989946448596077597107668145824879780969057819381191992485018751615322451119125201147614935843496071475343032144370040716897003856712713775874903905770948429009348143079896097636787485119751228263047252139527262512265032648028231961131995480597669458079160596239621170904247622703661423622683414604704552740049757922043011390829672861169719122494608230947177105111096174472479845428006234680693347614594482433798411884326505199446963739266042998524764735741670830216294797273449217241187369821636741235029310971262555890442386111669568694449323607957255531608106645998277872168246527377704164498719846336006372352925995127729446268303939015707395329361917500134147079243924624688828674489868854021350660663736297595473618186063486497851186277710427196399523557081640389589648597307202975454049134650164402434090320537676944533890197650680599451189996619511434907269113311749548693476339464804924018684616071283577295416565754602032866365364283370973901965643718140243476563468862574702390451299810204089495395978437027736630882930181236402682767572863287854085655073609270406050269470402726180203287321081384782639012846238458098597948960804282650058982586833414722167511088835092973966683280775141483784997404888980877824476442245915379746175085466591830989514248211222735134237120293453113894255376801314544978519610399084055042323866784394364851052595256484555109924796884865136971271956524522436495102444459964859685409232631751261666597726615161763244195434167164096202973611873283943984594841909339250557335918046973675451573287289943979061345881801223684178665871681944862994126055468569029457477538768801911666212445302017443329148717239024422460544350148126580249934789390641412551331080798009144616782895572552248372687745712553231011717137365526127293792174781498989756081862974952230023100139140728896522244352697485908208023820280034947102710110342168081765964564531080991017148524923601869133244376592922464936993216931551024547053984560117363315729602028443551912929793382210201462488189598803221682457725411293122646792389250138227971938592204873791498556673946472790384947897168218780910036251208270236916720144991510873888226183474925083440664826757667945292779654142760324654429355241407577909631075642888859086143942159047619556966794215004999148944778137184860574580229164034285573985479014440558750438067914626630417339490079056704356186117574890628166531175944881553114005298955680065650406099623124848737733402640266553621826793504320820300941646546967627193130655189949476567005061225259749320403639371318764029184895631737245560538498308162461680984413456414968055741413073101877742775397786994630756130582762178870930396343886130550645508148783040507985697014173473823529635625186171793576752023565999592095009354059063167496328254857497682124199988996355440261882476069843539978094187476201987162100067313536827534566971619914129184294249578309560978292152920445525462196940458902218108953827547531889739903963532701034919203346430568842710230850884493230045442536640645513070120256404566288486848449189898331031011577657964360049125206074977261960324889654261235223249900414771256045556408158806715497859214445007188140587551532668207209613039227864767750993878507128957322967847921731086941360556950760507350956563437629072375581522718724987257402001392882637456242094849359170245351815677296711058873829404279583609410164100801741111435437332653320412013571584212818415360187391744190719159209625131005428376521502697788869362803867265469351460834467427786865747945551326256674235015599900460382727245390301793317314304299996206905856015125051264086897724701401972987678811397369015393121117778852379932068309505152803202850135012427130080667616705149323043166256192903670989909967482997879758556008752188287776503130785989989599164752765319510511810548447242823473084468310458320635899403230501250864154099591377629497326534047938963095627950764744385923560485743393313224958553142749390745049130974799941089447085312443676987194975604822910483139583605320579273333016565517039136160099179906183540968381086651670585876165076966744381835944527477870014721344712098026612601349575486168560824711725654548449019902516158754230496800340674306718311288752472020250899294117266830472599128160463848367432345337670002436467389959774273866709273231556673340707211775319664424896011576900946083254624015839214777859842313095720058645772912007842128063740422566019938972998168375486889078294328532282237674262148475232126880661295215689706632893141835471115150940541980661711676621868131030336100034560236019609032579820846361041097278770899851417416248250842141364663058331418395540208246515614180194557197415136565102999705360466798314325973678896492220169748655489665682978734659124887721655227452062598063428907160564245557138127871413563740446627742499796777646254658141246797947456206881384754117907506868888569529486558012809259753635697057282379995184485722040009411775564445348167147610202077734422860810822750157428719802820760102477026630650669731964826089263471450756849303423653050895322880698650909299095821500510609092091190284141319463882634377480679131187080829228397952455432822566886005971199529315995789566666645976900740717330905271645819015691097484087934994177904759686218848223444440038305421990659134794055247283115419894512424479707021984665442849288636196842240214874671391600282062196428353868341918018917538670563704502353359180007664531120527338484007584207794252040315325702325726784550197841040346394090223756114760797959594198252498806685556806660258999749771049837274041733672403139438038354846480817525589046356297551895001582992068319618223383793333056971383088541814763317253841834783787314717870883303551721463021132854585103238925372120354556615649124114465007467786498810101023011351828647936589744680954525167604376893298691597610297282353398092136936432363497134427326427234307102517789502061343774949800761382641843878566001193571822434363826458457226583618935852223847071478229645180592035072597343786916323227588368937833723842817724800286851288759942365724379718713276813745367101451764416084550134068362533166536423539452811598195495386910247436047251648586090578896141992078311497660103781501197629969753675114710811215342597587832695186863136527129461882589206286653184577315553534823944357223056355507949393611444994791612439300477425395316934149720660924526111592362535814158677011563462403384972812443372881433358015524819347024846512657615268755582432838966825591375788859077963778713038480512803074253700627419617921943125378428564684052947600651068842915901073347796751849503826258986674184186724717259885832902508867514638843646444363173269778498723087834420060038873382758359121616105739159565995380050280211173912057407833515073190862601152394953444801344481109752771059640604698795149820947131615007525466130354900850929223587591564509612806960210295847275285283460963822705269949969235075748043305560554973250978774404749293826572514003450099409859662785638901674970331627159859434975310632810550532358468280434891361468024842994760106004442631109614541468427588342691478254294295064753838703675065753265629987247284492039655811709592521849619305925231315536744770079533523513715371681771782437650820359167560952739061120647656739753080224091446150182267617793423512137315330585570652622303316882808191551823846966520006343452443217907742865983855356223322971059088158532120371913788189364434394348226574556507246053979884177693226388157716095749807495527302929443147862759855394244600054482044966172917632451414990111982319417207813858393816110801644172801609045162728435567032061642421540423198713070904128961947189442922402528494417203870480777754443270938026164416025259115604431501943425302478006351918648037337407716868748933722498164162138310183134806146896230894181991061239683043025530904908264994392027607946222811469691351875560185022160122175812576855298274783546941497984596219152938273046200710666201621015234110664901956727330861161092166963977815020657736953028282825571666656163529659672745769214350737600902985420263119898747663785342728331937919081896361740337170778683750671692968017687162326263170385404997808815621610309124958162269877773443668204803011464180955399660983581950925664588104383141034852008744673069390761420196948571618141379309710811076657991113806859385961901790903940363215006206556923297713089277080329534167379467243515512005992820127315666322153379367546971287097720512151688866650627428419765551787441097626594848101478518392934342848914844482217171967769022406555260919928641302580664068156999972430136102735025752728361466513858091012856826644652577092858522344364774830440330822129793446652515046632980878177563460635800113988750966440331897266850287680548534402383806250515543862930698838271214015965741364196411182382090025186907231635235936381163143956723671919359123224781786506482715129649300010176965934748882164120982176464057527450810368177732225402309266087207415012231691622226698583947859860756894291216690513543450414489679051115515561000721432565676217533124754720128365836330392956633264507691562214615832937832580805698393114150639829478428953821869273955457854322219635384367115913450703926217719258063656418754404836866209746717484258359765009986510168140764726452186577144673423785579156140507540354309590534654354792286468816656286101269033562086671450659950588779423064152013099310994281295928084059078746711032054361203702936377572481831642106852679385426181240827631020549274779192697050993824503355102189580842021647397173822426101562824428066081948734370450748117660343277912339539354879231770083909142205865663903530143517057854313946249398365217096259549620390811090312965340710712107624974624226396568576614625151043482405840704981065729724130389430171936295517740611895858471396327771634595283152765334873829641944560214246073069863673068492536728616069308408709766816144950850836237611178111625634617814468296503826185448655808984857616015209142956353259723502742650818711270278375234678864086883388866209961289775870001079339456112902545333571799423371640633347702466712183858831586434143041517024890063534835977625765974776577338861160018544783734955481887507338373154806634924815090624205843391716447901510478176895219396644030791401462347922808409261473051843638528231911108019893632875398566841555185331043060267780329628012410221456651969993052319484980155992638924199258988233464975371641246632754247747252549009523180251057313903755903288667030070763016763782039754448664088434214536239923745273826559463628076566089809287497405623346542910618905127457627228075048634132879958630469482671527827501347043673262761926940794677878768789446533698755756613850180423615884494602199130040212072342232952756729545046151407326636660853793032692031227419148555548140786114754560254235046053701937830854446830844820007144756422820986392568143806206333163489798884353743965789471432990558285490988177823254877896633966184339936525905687930101618894793421672403348925940960096652013686341221374058645086261917414265169087556667699575114683332699819149631550225346689320131823146133770995658080441003506568655365860905358684818556825940974954581297831379082742907289349350758923900126263433420652427720404767965888471142055456914518646396580585933973756798343724752679894811896616716888070130203153838836580499894128622871374523519569458550602150836562846602917804505972969286254958189542624887604622969901916009606279485544982978049258247960342146622921091165063460157810268955608521327633460664794765811164031925058598940870634474390858583478117588781203446358326505233594790779517493820938358328882240367461327320298430351595602637155371753218900543699596951021873921717794206841237963791124045044253870225237129619753890920507368374415945850167844125922969600582144443274722701078902803820400678395948885293395002191375781944123788553403536318516439027125592004431802598935345634764728601097596877890318501522229965056741214872668316884229436171397305865941941525956625451523615530043347657182078853486144825348042208843635070694059095871252448703479646099703479969557863025224003738508493817544205362178736344727641272925070307906457519133804139936303714453846298793137043772046620979317573802453222632967308288324508544800243224158842647658237034151367404748372998790362388976000106816510948390871129717252865859274650027215255780208755911481559138599044385044722187638053273610927963309509556344059590363027680267066112419179101551364444788190262745551656665849391842099708988923839108300334014255605312915967514907233972858284884357055442197576372305913458445590152129587377767279502769228847097208257312525767143336155984104708810926464931587819972464335075825113086147857655154489919781704726836891688845680642218396073340764628540743721205072000153363651702399411401917787831679107658439346030234213210454725948750052051342337050895655008173259392431759276256935500519465492216309742654086065234664103776256606463301406959891299311004783024600410355917408982209306258220232101824545282582642098590736665054499664017089493186777261585304113219014130251807416109741653956797547822770979575218326669880377233679214595774871509646300158145112789259363194258079690305978852156016058140055637876670903768412079682817560923820783803584310018733596681694898905889976861053088380477889059157952054825009509541054082062791612430176680919640894877980104258271280155522794066424246502454157196509286966537877892859440709818936520843511607766042054231780648123912481161129327006154583531126205478535008185020543628888058285590041047365619782410009110861226024134026009043425312384121661720060798415175887189882425370772081578789567132437385032155195419729800686420146526544371857262115535992529584566882489889234931429208707836159358720579954922750696881178805200810620392286602581145528496705285583260131724637078470891757777013129532011365233664759539226572633018417364259794344119860466743241315703236748694874208827543858420163596985105368097589703120646035017391953170200072916907528136336802934711304105127318882026923220885457907258446850766760183621120224150997567062887326419506387773794591149372859629571725119906374599058159414067097832318674991917329725029426574656393030594145902032075234236057699899443290294009125062284727330569818618526991062560176526641833714464253560313538616058204865082095048930442575323481884067773369922125853726105090834241705380869216061406162849434820769461869165925003968616146093675569266980369113873654767816229593291115431910182753107470168132167313141472826348411644066575468437436141472226744279663128388394729408608850720828078415781402105582676992101429649546282864537213443492899550337357131418757575695132374129398472963395052106257632599244870060909711982261724066629880373362373743290977431121054133001931321541217234007171929735244848642265746447231291763850685884082293240253299518511201627926351967466410876249574313736822084499267379454702893933290432760941685030595630964123675339244832223735415233613733732570529338615819258853486247100136556110595777419086341947782155704015481678204070705156513165698227925251032885952696338548045324251853785068120739968645480175821097345948963211869068124074339585856714463246910531022536460500959706262929159409142604347771110139951267692463333363672364632769393278613019011958917561377161048437035526895098416987439353121546681616588422649581622312282115473357365056968590350596160026095387515286949668937924353783808309881151700656985936489101004742430332278413745373939963751649655955129901207769671458991746384988779685742417459976507335523432503818201402819089911687753465853817601687444819424620597559721676405890933080984537494487031785501066474004769204846364122269662029448925371676267387344252544216232003212913950153436083734573001028629448490423014948279377689731585320981468730322369335213869888380471701505835553059813009614942223670788771878695731953986627832387033390028276271078641189968897945063001966702672355672965267388960909117284576925170730559756219164016444869807744027171499923831504452135775813910735710673959925753206853503652648867461130540301086753331009881342612960212874027552356658983640878492557739312424977692542964113895722783821078249458766016742259850072450771504485021585819989274880569549504316529986322964411505921024327920706798480306933788897781554160021960835060307329061685098691916735939147664964532322069389885265925720267872435233971788313083576983132735771449794889378335500490743455574237527799121841331823790549433468172196007496055701882691218116587161772804067386932356048701490845725062996454014460959090331653902777770349581914420220675186935247661959659765983499080713001303129673493940322268427441945920326252113593589478179424770825033016666388351791961989091334002847161781339026812110655555065793772943427568758360648141595147003509038945328511264067385009957995168122051233008195185257182013973144331941682745638579820821565570402381076393387227850415307030596455774221087342095401884197745244301727746205787879368923223649148196239021014075306236627017846775039761228263163677403971940124215060675983804167928135341585478992390282976695140226642217739938010475495924783297229347565798167028948155109758581560830673187892867009149554992849797447956821538587080408410073578211473037048880711302954085288796472290521080951427418343208098050674471046549114004143245155420305260576890948102187299785184670510982572394933220964320337562737684989758233521565121643374506038792560345291566566897510723363484633173198401342538782926897550911310526827943285094973905428618535063655756843231472318970806218425750025703575873418055625197003326161081262257772609652013987756942970764555764642745756318579078212401291121275466295991612034152212370458683349258353795360812666010295286269722264533706964341187596752346169318860992813583713504355999747092491868385372440315324962152921671104109018744868577838291752141927555238800166806470112759166984277707501647610506082283022875501079485731530240289555618740292636402021918457302059682215238539120775489694297423168721465139072865259396976553571578180893865896484709348586591457903425552291142404101123050119262293693204068915565539412468822884602001340460896975218013471264553231529137439123272760143953475105965556390700812264789929012602571780499338352869388434812717415408724512820980899194966041236740629571056298968117483295103214627887364603597324499755702659000154012713374682105945850344373745093549654645370203678179896105219859379275268423337972960885535297464566727616379787187629858615200880772971636329292826695130738556532561450128928038468486582594847601398239007087056862304099756900798294429316215524135308501672440701367895686074234737157270555253424855187088260588923962591174101822448624886523548327915606136756393191056942637934012855470125042497521474719356382858554910242452587942262106020176278145287628010387711137484715877714408002257807766049900988729199350558071473761873074853197448123202021198214987910655507136579652515231264405283700018850947996112839932012560562537777957064717507666273352839017618407931818729930512751350049259420200370390540961559332681656118117869487031695644530506405084138276223331235351463097379960354704547311772094285276126284782517404267556021907100234934307278071577697816277054116334429251476963049697570826056984844793801838154570755036727833358981746415223271810934000388242490276106953255017021226101120575109344885492147756298434727908412884808331895902530776291271865731472327464690448385386552141190203467557215163838669751889469367817907176925298968872705853159914783866727576950188268875444878782846933378322742615287094209849858945506205293358586037170004753218267267063260925886961373480861748859004581777810605879898229820942054865892648755872587317492206014879123463179372120495131773746683795053056327590873490225949021180611589528713788283308931199771821386612658828936789485683964180571934591182674413406569491028114845598369242043564580817538429094882606741222944198842361049282892193489757925017862672602456896661352206788748449054562132718723920428984177522177507226093596871998823691281304753127013806999773528971608492729079516060517810043708924370100517947393948106449643669782399552467997366888418286844992614252103285514812871014756745977132899606695344943263043847595834495114541414636093728053652118716898433172863266681847550654099090038007829418379098955652945797943734335310292146340293840842522276783278808179689090612107032862645605524188692054962497620795118306217420629389105292078582633975841671405322929724647745408333630412683549719884044305410024198137861648816405304230607039020055536685812807292919791330891319737678536946939943224195334500575224048453849700474399425960290923499372612497126714612988001204951469732883390450909629692891751459110241172701152300162832529557298691296237965513748028133245218872409526820145325684726020917548619452725997883993867274195724265994783063009843158395966768526182481420517295790751739083341458332423835821794781069595381059333247888679298671735378178946906271680015243037608909266755197222500846343298491459089088678619652274135441843167060066188210884844033076391588437740605572256803411145244425524984122352169152427229684051515891928464464957701536261159842535126858634908576865528056488018520183980378594104091331212016847914074215145791392628926648520705830158220522681669715761760794015504780411212668685411776371687443861914244032384032528601712725688296173509565952099920797319450921585772733678104221667176163706099851365611598059019147987781000986022603031959188944602848027640246011212621928091256236271104283387920522496625575323062883715163478522100490225994957949588707904781347829722420491371872511425937524816237523531457664348247111113014485613606025274656008479921499999004492903106980091863756984539370796751700254662253506750703585543408279664710311657463871193282343008839569679099416157838826099415228326003081259344150191907183211478110108927076532809021586637604599878784339422775235269588060577644537697946372213017649243570263571499547830604731446313170087779739382272334520753702123169916088251527005617185571528425179698163353660176765912035869308641482329789346708755179135906765417028306555633338569704236470505941623712587486008026597111877718503852779820005406523361396974312985340887165372384264511325882294691730518310388126637100960424828004372329044555944187206551189458025146413624238449254536318561285153729874384346639877984758900931520428917487603026168696490032383733325378410954732600051203934788699883326619366655032549588359755867048717388667180841969976795755916330320044303601450428708690899193986892601426050857516868035557624197916898715286488728712732220258170744070590496718818212858648908754582620548165621522901837376971671221613558972737317630143583103499052541281290687046689481499789461694749053363860462873725583449001813158010904447895245979994226542355349823921480794148168338132905217342948227115710477662081579368039086624932870495916073856267921880438389807401644770008426320640423709323535466110667747855119868348297913281542962972511946903401936883163943551097258590256415364818299221205467249474274654985970481014646654285202000328094786276905513841371421594620029929215745710279940854781083718172197624500153174461360449508658395742457710302771029430479468085908858767351968142640205388715329035404816152471423356469863417051858250876358810133066083247770266122099442032062067241115163080376259038098457868008026007276437209505256600981709305464113267675002803228769214130682583962850475448733416682512410786806497992499736137775787437157095675891419793810801163729879157397021096877534945284716256316413493962172076003885106846687403311427355365495144873562730214805795112893585996089746756115662353605106335080222331301671182705905050490503307291849435602351191250901588387865480744536634344273050493732736630148202284454829260444395000960954080374280743627841843714754717208771310083765210360329604989800090844785732525686859045771998303835295944618902513462194698109482056540664236098466846236519858109961549795970156636719724433212353936183744177979349015597588503204273411196572672672754353423448970390561507590583352377112127929644793389847792023876364683691802876027227012291067762595415052809959356512512082672088224649726255564212494110393730282491100930533091794038313683788719781828464209100699153543891490795089487734525441199362127198952369593951145320066469383908500848059809657943966011558523902503029254694240269851617565807610797430366571242899967412468406947706527012110708278109390178223817619827839336616410030814050778042477716018750863707262510110719212069854178674796348280563652293274537739564473664612327952491460275907849285677412534709283954195763888883254965071059957828998551884496493746243880117315261992263079407361717242633344697325352444537935581370895669168120072204577625248742685375616330063273444316987112530806614405793273430011322705589631392512899897136466618432808389420001353735570739200513089342036236121963461159410252720576127603427188506275611386187643976173713515529329570138032379180281178801333442360734276979286333009185514700034714147370304217730340371127707518482938277474481561140157243356066613450087817730924878359537087570903378211911478872142854922304523513896148145272054133814262046701294484524737336146126645688521315701438919495787106496380428920286312832047967147367892934020032744053920913828005241797120458781476469859658298810168230004352785160568572017539531555582661390283384298201951374676465437156229036587849674760808154180685553271206273744012463777985187878948757918415217676448974764349804465906499348200865062797480382547892570940739424270223917456376425726741969385793762790010575125379967572106646892149936147703637592513693075690072085038876058945215718110989022203559339345119827442028632853598571095841271712726037361808701186463039707031939433673686640353427401133795897453571328623299042170543816489356014413903982412848029955376794845282660544253955294465211148225747207209555443318430613950553415165629560033480253484735991189282424239981616037579273630087225207717361699052513459113709621117763911462096029248655321490627661869743503883779870114606850793334312892330280324733883335249755761063297785727377145120505992823973748177136087479893828927488573184522278501542247101296739829320348120729860852819174999269223901094172058090422552397973940733936771270486620914840103909463984478497528207296721181959111905155296821986242150066550808087368972278013381305553697315422289982395718467982923635881101926932970242839126855603741104317921882483230789694184521597209408169500588765619060609918723288732524194447660073404208916904134546734652471797985716215653544103640912320339228147444133826106366388797241994156217358385757468897161319817802792265161855601671723935616081233707734723738702447549502227496999297833055832150424920961747920304377324958223205674094045816112907582173363253532065412343972599168379762940627690570611484540884848147353028108680706772881340661897583240125298190312590736279178053700080254351170435851914636961822380900478594866146863624223310847093126900253625118529103330063845008560161932907677418071958336500586093704266378975585365606598636740012609493105469150911777984415783031027154378405977486975664580412105869403909610193925345600499192701800663174155650186116071794358322075338763823042095982988364450189907087095172348459700541430261650026841248401919195035817223998200033817255158954555366032262946583393544429807645760956879980951116938769707412465607425663740918330826504107319005577447790822341842723697611736259780706934805456688552409717317698756488082878247287076400761987822267856237822153165201074611342350217887409066171724361685825993819350452635496781066024023785796809788304967709277381660183356953682812523753535357245036059390128182150825206750238778322627862894176634568436233502965143145480979040596244765886203729000044862736175369646702345769708042873606545945007479152620636376567131313313376054638108445986745748625851449167090623782891373581847050156535864148655317156189003566223992514406217668867568894612900140465727292703373209654872087491764497650363369061741106026899635153835669591850431394432045464125592742412226794583926663034578563845528271486549672599218695940467680658614970290327684779969824433371733479152336159180015349204979916628535943879612360623391402693570118933858120977008371420444562645682686680343251482633664291927939713812951384770534023268234985954846923508740746066334369245876702149608857024562474591120832702446667421646645164498485135952243573172178944973894014407562448007020924627800942173777277205004508011363755804289099612595440271566829399750426190306101470991295862629590840743796187088531389342093187127092560086368734841807538354344651921833317525567094736525810055562933880835933374560574915763028736441362182803800156687388315533257477020907692353051503805995578396577552382743342680363205467024369902550243415275634550014771296550914501919029971998822710681730886949793846031599965274887520353931776881561230812346294780474275269327261111403727552088203326047597791484829063377839422105814256715921951919583373211113346558459816616763564338245331832524295984675568112725354280271082599859553002392893837328321742983486424252680732774832589368767458868701373586395659520199681021044527082865410491309763285287649991745998413056366779690028514109559302387705443907631797470482502744879095936193840237256698915348308861839511469521515019971275246268101328076352946023255722574732944349702882048474814860724493185817623140346951217532685849651373716065738305624089636407437970834933934604507810102448816315275047328634592379558775890877561691424757683793304322005566076997231801209133559817106412196746733809727184863606355166134505708115732115593734660016489398244362107666616910964774498624730710789995793156177328423310117272527551440035066615816742662158137503163063584438573217329700055561158697665416651569247118269300085652141271737441098122815255075152568952153195049484371764925283728406254828083161537341375803153443773081781875689586141261488504235899985740661917620254320608691372100085439200512253007414743408183551519426625623468277595206114602992604340415002305481655174268722485127080824413637748938712808586199649948441192606527159021752930163383821825969836949438455574925925839323015485267575161029484256169307605146989689403057961636410947245984209360647790810346250895481616676807173052039062471417277240723633262806587704792594784833764852524093007393711185119163175586995979810454567594645425163147001947631831962990619929596549064087005434145142225916884840979537353449593685658524791292005524742601663506141569854017369533167625422409486274839367859914288916975417046451981522922433914720910472052345638096988488666118332558014771367424216268370869713739012094574418387229042454172025757560356596277960682821558148439325311056038193565086616298623732148297605290499830740675834637163563083614418873881003984948625063806435440832769050886442006278130860429635303383239990622827555940654200614723786004109917063359957203415953736180550808240685554835699561227198217442611605642655849888181215562045879988226485033459684163727793154730244946140036027272125112320751710553363799330485153643822563837455794250903746495087332517913047387953265651990795494494666401603874691138284082719933584465252277623909012616478906053406496171980409250369810122501387640460401490472998775442746707791597311577270918176855332074775991532441165971875534892880632100186225844556785534125272889181801960630705807703770635194392328578253656537373820822728272607927241460983013984624278763852373784442935751957680000469759728669847249795185158287030961117797492779392044372303432153258478479796566303700585968017631690099042728475525714414331070244059385682021641407620550550586671088501205452368350387228170545971283917578572954303069290036550623529069254247533084322647087139480704928589384225081497902495307374837841771976158957032213165901898633330879480547814715429909180752250842365987841729691168965159838307135763292011466171660522814547016031891195599549477413338369492835336854529433775725961426750138967165422887857414527401475521791190802088213208110404166566964586984606157727964793561635562118009169005327964112701596490015108186086447880430698975751715435624893444923593114457542341546833295195398717545355995999622593505013591245057286588722249156324725405627297820811423812835772634483756826463137229033437883569172546488108119968000077200683376744529631998907087727852073865798506329721798893183079234456860058687257730928552994629507565816123546369130307396718554311609502955380932970256863997792101293925043230496642328550846276384873535693312182009230536957874550012059683339997872416806433699822834481396157676615723250516340709446283740581937368495073629841469615960707243113538297182618566001181439261948403202349008667649384491665999235650302128121157221760274463655747979140722098053169363816757391441736245774554624118570113385380004555623636209258137876061972753029384183137576770815772803575121110900177502370254062609861174686114656270385099255217727422668489051924755122164912783766683934838933477902855817192472129394765546274693045131662137621451817103901967434761293478761297431722047329492020940095814927176972330043014033870927176488223192073377564894076338787768079377299636445214458524895453312522405745358323805578023637127951995994975540619590210781615998376992324124337638590882448110087340454539560266054942978488493859597913850029548175763487978139348451206878705271548296097057514432701231258690765499489815406769189952907768917571754282122825485367023593478108954700435571969446430073456125365629436814807393959692679170089142058699238331379028373803758457414227724465617328761529449102461985514536080259105748680498238256983334505181168489320311742129297671156900272605459428687547121054739027073202151278945661474143596219634058963501959681091083731108280273061555348038488510239661321713368631515937152437924816068944142686505087805163591450124240084974900375961552545249777639225849031392918702653856194971135992232400591117750787959072992580205583876261449110769330574138550217504370301216429291577045161452785880013241309802590475332825755769177042603058822116917285606826521375893813590742113054419212751439941234376941467880378321088053499514655684689989882527060288515801698769562098364681186576251172626631602125338413204623557703794971746655620776052040870735902408646366486039169331397027065415274599462716145294670921830102603645046783107809884704421594920238678227290314560580967977526581821211394337527486378806766747726957730984242818818848126360252570923591101606048169205327843151167037122069224349853914549292487422597630874587885628164129715525159641218836696187115463595503174669538054610379878661363873359497779126293779807258683562341525465206236064313553371913010094664136699387860961476455300162343236311817678125680046157728888234886991620312850065680431740667820201461444051143731650313548697607821207057426256170268043082509433584554866266950592513554394133246600299609048099265141259038098903675846664265448122950653685369483534918198755475193124538038729516204749766493952430713203347212824402035618331628467556581214078010983967689695125085660595588053897002672503518740113474430357988021906528162665411343436358762463267220325601091650087565996522769646453858997211693699211169443559995156717061587899939242137283383854430550881777828610402864247806816542453225104227075420062198692025910306409025548912564523318420845832956627167723110198387434693294634810173495392271440925688479218762445851999376474235974021215547332883574535130474797094819733623544047504379362800939309682902985054609348676704611142934521419415599341859952521052339787070616476972000165021836094707108123712761850627420488392826612273415500145679625521811165253530320443636839779164197053658732155863711105744694797119166075067150842537216932804085439825594302297807763732267524893103473293605135726666307388192557192552938170277829182218422468348299667456634487559262075910032484393790864901649999543687992531923577951334894613211410776154776038989696657002322682937915244940092586334002377769430766691240511726803925064546819945124314687224684432780926987755256879786508574380464056873838264093103622398164588251060711546604979376575712867488465232267610163142960254321453840022052341886472121874445082114664671443481141776001046235890943056186648198292205887688259181017448681043824698393872660953716142283278111072622253909771262707714395004767568732382238358498526335077260225316454051978386621868379533216164139185250761923045962072064734731681259460419795947985381484022279944959926084809864363000098693456674198859747224140764974772886473659509547321375650682523337600628232551117104904871765106838584979002950328885339042036153110714178544542679220097753664581595712724958355008551057249931073215859798149427767014241192918596118580966604979603092107153333774333137216988067757110731427910706236446983715143403933948325687315385874394723169669556479442370758191290010538717932349048103240922998019009928532579235433517200322436313562802490893341108206346538286474189993908953653963651686255485163536376283353497818958272071028901601517228821518062270798549450945790402223983794169439858897921497622732627583791192755044393615702346501974568873872269622696124055518372924069080880394600169317253778085649079824898725882461323189255497146199143171145994630047098472338878633428796528634981760341840185347347317459203245276632535350908000417228084620422548420485184861716768653942582556003729060840921772604614644145387355664341399765930659948240516108402525805890035853334485072409672974588256865997531608507360961661288568948101693352143537620843980485695946907392941023414807185024559408708281821854812788630953236330807701976029078742807989747579987960425922150027715977259431622261845127627199754759742812818900493402027482466897935547167171849708518508535252787017587914536998088224342707213292011842438077893381926869991157550240930401244485986305293204059618439753065230726099088579747344781747439504421206133771665629246015816949512303875985739633998186174374033591082729496430466325634312258567369283872825571058812228237886633676007027682858013203664547271266710726577256798069187263367185632984037497743757801234806370099609952375356662099532667325478216411420990887463168164936759831850613323757206187056775418413582841206409036876908410951606689029194278584106946106818954233380733481323033111865578545923589150073577480544958343418828304199877654406724009711279185920633626348534492434066677222661277746417845559761828051868055743945809232554572092559731888266736411757275203167697767618655161004700781908301963596073663450019604674323744117150257124158201400391399762418348197771233966224772958493853283436358068174945179459277041449449681740741441693537396939976006502317908303174902106643927239914816275549975547193227722119141145799319258349835344949174620099479193383168052701968215196350651206443634682288972729535211820658792812562226327007344516085221688752313959302317785920995168635816446425688316086288553187958040661533136730794090523314950194848118326434572650722586212372241963363033365914183459507917177878480453872859223417486187049470588776233407880673165044712717803688259381858293048405971280115952035584435213815483264289005206004901387500243537904441820605188974332394736600883246741172075320857181371192290482596344055978775429729356830656824315100438522584398236716839353152306650355903094851663142492128453363858982066107025639223874458218334381899556858769528905851305370574895774491518673030696081453616772532299757407313466472634076328501361156258311825885157366363975224814915160581761431811858482305054628391433887649128282755359576843060333038074203120631776288603787203266028647991598015827740951473534931518756045950141349581500819395463079354781813591021427922080023268995380152420942243582294290840186464975357020016554827607670855223597767140506765577692394051099705021835524876559738148648991357999674584936150752381975118845927220023066468929049214217834672681431115501497567836154592945393358743294136338844723881938702609176460185761236483204786412137434460298128290233245338249018127444203800162100718301554655477648682457830700467229048686014039087398668577352823243985572164868536131731708116016463157202143877597269358430821227241704441887222603171715106715162657892082797975108807352930910825133339589727335357941100288450382513873776469302206805796396255060355105573446559196799592231280284009822281237675550576539773160849629742150622284979246240897938425633893622187845832616541635214423135525286125266967399695912374964274763391752328332427390070647036821581050575856607447104635679381559929952662409356397726152831283976413817613050949046502790276873960467759760701789470397753574677165507924746303861050813273731833857583507376950529854070380470637691664006121535491308431427155243582082073761104104669229123203328550118519938888700581574280713932438642652924561744403828921028799780424743004112640869357072634061996194424222111851499221119253153244164317236018149985250052476739088530685229190373718022073322842182888406739404533143435231160511079551716362803317475576793260333743620823777528491992915778587975387611902217773104159298408508477307899323072862579857540847347250988589774127821531020904672553144652035376200149672840164176331156603224260577632781808512690812712702472021147998803365533042764850811587297207167667490358072452319735189602034039296142133928167054533583401920576490330544859162352687752223823720759772103383184539874175663915701880983299425997333618236497013881235640133658241164765108246597370573319861796541934776230205306393864964311104349041214595715009097000439155559630876781875224916795559381003690208562741128706302686515277627842041670563983542406850938483932336041570674118178505119782271343044425976078433215054029007663713133222875273132376405599033087283337460173404249468259157723205365579877725165498080139943834399610638733968346758867508929518131668013787069640280255334163253361953781161483288379158775314572315791598607943609499863272862634292193048589339201232748829060951988591626629378897898844094629067517013039161161607610276129860789756560584873241124682753961228495290853471724929547209377473709911434527828705194632253448657779468422465126486958239678847559985811957899088338289914025203461122145099575329386403453924371938939457437075261389647660920720875331281263259846272982448409930014082063990607341083460885731036626026976431300114985162812580231343867688501707130240269295536221346337737820921704100574789084664905911058854523715976745690554386977762490313853649246319771811791681106871985947491247696246612228062547202463093766015777572240732049934765180863969396892082396027220883917804552632025608931487241616352077303013422715070630690879169443825816378876559818073866703168142412261607378311897936507569446185283647983000572856257244483119174129135224489227221984172827187208966375416752152762994000286619539054586996758721324091119802647199581605121314547760662535107371395346615999851840341793954720463877737561550466550753023036966501822974337249617523802064532620638988517768487914723805697576650153305270615659704291665553749539924267949527544854741854698994643079247567578132808823462795435621405846642652937333045174968080316239324667397729062109867409082628503138243853617976343926216756823662653681390807246660023629933910852163967549853316240393031357025097880356260579555123939335197628507327738225260159360117783196483368443779059543760279304804656424026231230127413169679317524101134100011960665569648481107715924349666751694267721487929752845137608969527938769179571094071200461321837748779453616968054544292857092368635270927397306138299376159565096093836617783995603746127444395897658122163555551844317787009492532780298047457962539530977790028145863483960853437192594719871978369990364619178053821693741554782323221697478728947373291522127651694763972874782571701912439960182666846201420472777448509059333073217782481303992985262816820659175927300281564982432629492887923765699867902923304946133534548628961783881259602086450502029326401179508317886269354265157166559638382138052707352742406980642619461177544053286477084389082651402291594484571267942846091383508249949492861874629477335867751290651963714052818018922878756896094989500538410726735321757114366347521763443503058497721682752551369209138798763569062644743517865791870579880799260969966898163134696158659349334529302358177463228429208877215719806801637505713964364020411886894890035641213411248342414945263842397961147028657916351970899171703145448657295128394428498744778850925322274803864674970474559481778210394157507712538172906874999611498413427931867761895248529879369027151101562637095442765627527345606027639832281712269255212052399029152009078123074994876835463169968384551699781355181336139467331621084070420457022092785799820290193976950416473497656058794549963367995379368096698549859431501420656404397050921604985734321454432390074953247892909676089946341028060075381097050581137729579905739140617211268990508454979827555222101355712489895604045763526613479021355161614962593571820098972281077973749011492156799379071082596938724173601001938694465304196999276168150858461346633462685941919609669607498367835724877735505368202923334007049141999349576987313385202971211750905176366803262753339741697740945208924628944594379266474695159369395333082416430487598281044737633814169328779270843878336578059723344602585188088611915963074942290693841113403080399879146395187583900916448482853445013668989508619080421096450550190158311425563109242902798108593953023944480729086172805219621517313668613918970019091706525914725471415934443495470670280978409518072318259046343661482708535811976347868541274488280649073354137287409336073953187197983574114344606097613808410619599973126677945162669335974877466710598233586817685837963293985314217488455952469253608191414641275800177909401711179897794110732732945713451635829191515163239844006321793115051133491651398410716775099218821129359680509504360805606588498997617266590044656660554259330833636579914082211769931237712511112776438499801255094103985339407485914225389135556721942376960436430014262525028140006626695347912166066097940757792792730937991355934768443091359297869413073137092726898648997513248566400893006062502064295799761559435901833410047823291901784097547591133805536409995906629611471369211137812002932067460809307535554985675176109300731316900632918402123496102655209575616695992441157006799313682064587040052788206707790883507623713130493497395807694105910019793853516167063513828667332564592054645874026312121266477643936672758696677577160751506657026719117535800951685189389944300180607487578121169431891011074240085970763830253116556394862936755218405257519966005982236605726324677846674348717829403085813309159238332609112111772788821269272109951512924551652272847471726271451520765236786206500536073054941963204807779354361368102904291741211260687109888692682667263090949712144940880942740693680690086597148130053487177453119800786317261697929925502236770687805261006786992199615677382219385335658642658029994924679947544022485552901127824283653102216792123933887653043888546965766699519418802451793050993636802749748511906167155446997557200984905628877915828425559131344945520311902624974498773918060968939842377503117486845313048285558785081482619466522692440544196715091360312127407988444334098936617937641399490814990413760246675051857402174168323060905243534961830463674085845548300467613641573666602525415560047442730629274261283863932276652170846243746587252618565010195966534379842852849787669773560542065629396220383506801150032969803463723041986291891362385288825211522625633653933111906706591200782729223100241438855234217973849589204079064245934036972485170985919360456724488733756276034617380418404598400722416345461576747472891477449431253178180988014527105661873546875187008743506993141666763456557273828163061370777878261548260138242436437983955562865549040351374082174900327667133491147255829439544057950283432861663956022500271482687556176125332645816460975587364809828431652410929327700891015334409104960831282791334128299115334942401763655237762261941460124267679942403764079366714065896851164479764718959688675403903103953075603310350606111594583291618144726329686938167861964616247760282970397459258935281927373433367073060473385465773094926923861646623489309574416080712779066869743904634879178260058093776516860650531745076542477622151508145205541231837231203170687136685005587251764838252170904967839229939431307583791727359819923668732148410231171566181894410438830866173110684714665486650873587930241591752299817918161496521552478267835182959520335863604782739865797381075727383456737527811263421522931865357537460130636034651492638533682529013944340874882202862496367842878066360371780988619572729383906226850975683306480009842537574864838675761919988955452615232917972870516938851231058717310643626760950327925446718283979477865494716358480208373551027958925989861197721222691274826063844484069311191559146324658655251246268408655065520712297850374064583012008980468146704335488201031023379213286028928689607250069947145446512125066248650251396817998493193001474115825955203156247844183536588569530435824691383140601372678810002334619117885036466090785614119719863396781021822649492433981005643512506978720965598298335769922193810807588043289498340798274743830815998346852428225490374949281135093831939020001843701276137019821962480613351089831050776764927000155418078806878717705596698042605025405559130688437243354794883920926518225041409982447629116708829731014619464215288523049310348579053787419142242412174737116155789787115429917229383621872868137818490591389661712035961928752483435263126876435947711614351202940088786479030738388315793994183175749011650057043692627004813983960938522546112580424520533902290425961310849994962570810457042446571265761503713736614531315201605198694787282239634639768887143092010210243155314040477624882991167261216269562572259109840948144678773205438571192825859023545901509858379286180597013185364046563799488810073251846887599622200995173729787193783926557413876457500441368147784766465116846855161859332617721588221013236854451498144187308430970318986378473185193462139340529382798249698797407256389726518992091942289604231944927059884512370239563647538396432163241957325841062034261973036932679075104221324316678713676312347327377007135124905095173963582711851100091050853905694283992755182294909708220951190165946633373712250839583517836648021125647521176103490769170619609145315427050841646514774622306760740123506987732919218673262749442536424645476458399008085953165220261324542485414037424484926350005996657504069280209158465502401024829745079917616650047299359353868710324715466896902009614057000908457103720156689519780618398780692752450694103648642919660963611296188217951274776452207256997770226231470201668583635503144250884512469087072477791604150194937151771862649054401997841272519257127772903670271264610822319809063124558458943714696522185064440946195741042048950449626387990447410655108718685858895217200801552745884874139178188242546878479918860091431679996103363191257691299462540633087048890034013094749248887961603279690485227907139793295948098530070541917388790379946442252139519686841519731391543051232483744655081439967284099167683869987519368901258837242782295586295851221361409787476676699891113879116714028711069016700553319575487192715139387811568334443908412517649080927183951245431139181498577730770297029866575622449327058591390775151659556794076003763401102005202579184362817497269271827260039543201577565055976543927609528883841765484846693852459225068355174448536896878990307008822256262630552166757143165317385191034272501118184983635437001664249732126984259480002342529904660065062674966422125187015048499214809164116295763274838190950054520696465329387652242940650933398924614865914956971341310982606295769391988522262184137577746606295918678664613150831732769776549123208629810344765268786204254639855463924191951169782179711233362119842676643976828418457955452143083752705275308433176756186952555234131827543529871074459694706844338895906195927596977977981853164798818991714941952580045846369379767765696843598085900201941660713514713317747001559809481941133645906471073832573417072366616833579730117623203646980926589783229851148915240732269565784099473667039635744735968235912950275484422776881528088047694843777585932603684018911249770756403390454452285001385741542402257927421668741790961452816796203342440417197250151044577440683915884897609656539706156962073628730213371235445265092079244341876958771214250273926932711479318068152815793283465221462239245663213184625225478714090792830179757988430432164905532953168891987977551791602963918236850848306904638279990502506086813102366294963669019760623716213664804306042567705096976265280533158009894300469123564433669020751398367974953929528623605027769809746039209522215003534245624884873954676346669317637242001100154436157967260978992286773390274174492901726790380003905186571684458246397583693210173268361176449489081141429876447158766606694272609095111997737698754011889894956431146101017024489095925123295752822891387418209321662809408544743177328139803462271491191299689056143443832090893417938541361809621739162823131203501568732810143016604229283602464225980369436534452449595568857512525047942127195699744497422279556315036245153678036043353003194690111588677765215720759652556000119337284001256668028306155307837536719311059541779693926321246496988037650150076642553877090373589492249535691307223334757235105197643294291712205659647116904897322064662983580081693228791093204385617795803918916210705429278517997281624220511552517428955300639572779067498096361244283004905702774814682349631367577315803500313900960412829352227837943441186441671032590260959427530785447046231915947497450673605509851605014953218259054400029429984431697995428973158054802180747580598863695271905738469753414543720312724196702521253034567821979095580302029428850967842149522475140146473052569741853920000463631470315343504740111683686196393688530773751959303113491015589315908635956847370782237562133037333029449980138655555368460357736649378856754929925273391908019053974224091868304099501201943218575017859682211361240242550563781798315233709331087686604102423272196928312987931796222951154319549258010942869118561634349170165878357812146941590971005251081020617288117429159254138223857184050863480343302533287387437539491247268868923523531675975996456440090037466500175418414835424459752655544836224446660025778652289724855480706502023952413126076497541195817321076620208265979765916252673536993926563263666204419973109510733417753229202754686197974102768783941864362322033773454937384919933929305967290494671447615290976961118444787098406494390207901033087856209442432673587333534244384839391199390554005563038807296880776264818703608341099182003803088259967788212187041598462393465036520823290753798907256425544682317552327662596057156203840646598455610310286283546371742021436589623728535737321488089845933294863917015141087803506822964026407685483702809541681020315921338539330381171941856685134385316942798492832262874109877560683729561088851389061632754234124434675018542149089345158137571624539048646150149900901505041247775871435437463881105417980333476717279938492532375495862823167075134489756502392995065894535244455244460692475601271947247384654304006059178808682064106410969622818382977132380234700308392440319926477350105190933234867855698151264167637283970191583504658145635879520800025642603799022114837460800259128578533423238626281820209124155605742516605427703257967761375271761085156098442447620586054797255065214242783773968845007629904309564427311175239919532102844256612599070945365278020045801248398724618514386384273422825646106184599224857465883535622145706767243032278076394046932792209892777390735671179886755094434083404497143480407885541031569678519967217828785458578577341158981623117104506427997008747480829703949660387704901532453841220961923627006134248204826421439010138120642274948595000696890789168036449575889736927299361139468149572057819213121384215794087209666855557694231725634946519733112145199761798621530288100389682747522199101994233350362643705100251847586918926517769297663551516418886548672726898450609390661643027183519084176829366681064081015199289843562702521219976037197894770389477163353846480109326027752500892066957925063541840070426464064503065127982100149899910679909481378342799140996675050135521377803137723134231618655364903798132881647681293921542432786382781732121788295538448599161674514003073601633470070757048422196504931609932062816322545989606476357509907272286087707276111282817343508526300603063350777046247320462166142130581714755613215805330416045098331658705358515508017804884230325676031297807748198405288223382875594939094592756323991414309970440228509602387203901588661460696195314314585296101509604772324332526119105276265516067357222313521818653582587741878263486462474730165673214587692602276549444569589856746861767893871368402451574151062378842269395672765950369610520337605429530340968829301770535476447193433155675387636030457216833247689665816406699145282773477689278314267295941256822494361134777599184689549619083186633324077317258967139424692258042854615036554682889368971364827195104704152934701775114835729501187454093323929979031781527962034543177125377518914085543870257262437529949958540787708274181847350279632413010757265662067018751542627176624972165743029594438573486140457496333270172352415779278668984764356868075028019545283095470833242001145886350317002936514658198839877613463591985755111680364382344562845182082521721971675568258962763197711048195569411826767527827037384461023379327790870894164153157424079972597383065324507220833396170573271680679904765391164255027268368973430827138129769364191401741797839130486482425385222141551325334924802139470903156075573040868753282545471517437801191798096122686943488789659579357871428576722495079698038131981012767300267501336872100986584784611758049390462261115381723162944099052487621216880259115773263830584548968486656953612358545387554459865603538925671715066524638820222122716270905547741234861837615561589053588391400027657748603947419499660055242430601553216455145330413742553781499432120931192134133294289699253217506437977791758251487878401536338009356079883757066663110902818350146632574484510909644628466678050762099092119316674871340622006802538087711603389318253596648008796498224093620128360520132381913225691018752480412869158106506648180233509006344762407738258295131689734088794970148532266632092929744078505802030478632416160383588320768781230402268396319813347990882624366963901289952449863733523024808697114585673664495242986079798245939482910947197443628470083069357873747629411552796904229657725623305086229364953322861695029473960726268563465903972653367154365814324887695462576217530051124973279390962286649547840795411023638498121820111458351382184666730883371655842688547791022472353762665506713457670393363643660787696919593620532299934997123235152274031401880547492199570680943433130667162496429971942830562857394581713432661863422027281289478961321680389916427803934778393285703884542806276477401698111010856778228318944939317846768248609340438752436943576006852114616475395045576633427428058952538959806752874158296026382405159610483103296131433514699564000869522558936456260761217059278888771749153234767512220753290696998457828077121410743802980140409259748981679009477237305542373000497647832464364691654366714535741617138025231091951347060709061927585593570204329268653704932949452059347627106528626674982089452397445349334255394731729529050526862936423090301143720912841561689441569656077811920036979503828042197412362512151431486524272869059659756022849208496526818263791095594823888689671958144312818628674483341120776533658386834823414256133504474126241048455622889464959103131844138454818812797955305749657708765251359319988430774228823252749876878184006873439766841976702866754229803390894982299795901258348666504662043198919533242511397031943401376100639875043394527386043525669007150569152551701625725376010309047435259480298743077555149022954219299959068896227042239985752286426655759098270645458156333449156218811413914160376140564493926998717093929818441187527945546045497818214984075636476698086417754179100544145837730024656727334873309836204286949316336649661352645476551387548021390218993612074638503965789128927706094725819222543241244512701928933938668002512475396239772077278511410785895782577872105938204874765714045696366496528805886301426758750752491301342088823736548979771813553183081405648075280890503089032571224698894982504289361329865674784025304097119351958296912678866851981053477180228515471371909364497757905834903573683581297651723614687856241277314551223794339806051113080905875988333611818620484581125714859703880512395548143303439530699457996063670747176221463056917799000938497074906156128969194671418756024214593451661700062855261739012671960769624645521925492221012028706265671390935748406623171851814624583623583758834954031111561451352741769760530391673187688903740351967845073992290789370549757711882414550039293649507021524864635908801229408566783947709865411817903444749297577742723633508705861501540819525220344478320145585639926503153334802685053722567763094709456892137543105890109224579684723413534847986331165178554301304902645662566912442186377721199740330948382208761889587343676383838762029663873893770299292049913293053930265358847700266910776361591169626757406162594964929935627046892416087776635324732249335512406481613063223993988558227041306104076139606208650287417115869798275245056855046080157821621467876726450113298853919507590153031477312973036141851679314707762929814023100781739392713155839730093320763430479613177745315497771104548657035347202887343133063391674035264505654927821812557616064778607839232996884980542471058205212220682143246793271266594238065676026450205577563231821281244075333184300327798398874131046577004395957527082208511588602184411012836504052250406918392921639311950770504635666821524429975693608437665616411156465351522442069344231123185504526676614602410152361899947353425040695995081622841461266213600826219535908385675861807849227411896081415878509397615046831257247113371442158309652428642174846162839777190270425791538519097059258768307387862263644540261540862708780349356644516941630558712112581766338627676901652808793760523504895185241148614111019762180508120182909955705911482491249895626804381936170397330956991862108654466582766568775001703543253166901201014993054551922336183036462905345253052293412889722719975163041150389018807684418624139816187861384063043421143967013624318493272634859674005954750353201856303695725055945816234244755486888005542007416965557464485509328330098325596072535790977223141087700127231314471412482273420517549473668759873622058446253034181111801000567691889136544525822733033590891278790398728962636605627888771058506141763509557115065236204907574666271018301464922203337402811517011396800733745220719693442814653657789685698221112824198881226733203217366994766297607238816523943189231394075905315733550117306147733091895223077162250589823196878525160593149503153034469805638602466699080993253480855329452074470447126230057055509985877132417280926457741865183390797061893497808773534017316279863930323342078121145843016769312171198473749774090733579345833152994167771745006479939528061770177180701073831183180737807730631676739713737050801197453099318191937888288099230734929629013400101120738128692708053739651289759147363222741354651835961885650901523882662611343411212297301623046872547586460192932159241020977002619958737729840401419365321839305921292320268441800039778145658508634296381120074239438423501771789922439608210617902157327077363035361759402613295431932534470340878152113688412632650876608610794861473256214854363912891282456873464202160670052835928570049662109742962679732013389529613873564931914573144606993579353790937832412977125298044092730599848416920536487212641303190659410419401325217439143901272198825912258498545627191449986897371503126373212657965275584829118293345149691068361512822118400781412120386409402951696759223567743619104826498804837790197771719381304791989910146676418714873006410958616001401315007379946619243893823936263622804446848214167625906742655170302724110537709814610908829090294015735873631682423178881028511928392440392101554092749543008196174147676326056982110980862621374957904927626288154236715912728063659379261124239570538863159840175501375580667499025318257773721913666821356790567769791243082767045297487630709736697740192407568764143026416354285809501749795758992095008216488801288661550775038410212626711869067794389819946573476469420885279152060606048132836297070431484254086603456231287028532037836624914980603101285721738882185689256528224187984420148557828713426562653605475509186277367306680070779301733254285222887199032745994576629822832753101746448224934135794970292431311353810403394894411742781300860818259085799778176475268480401299389432768177130757638812679559490417823940893233317678904664142514383725800177045141817932946266857995692024898668859800761443293292767561567300474610369275531140774207269470162239806732417243050714850661056290028104496249027607377842473541852232218703555908142819121590183130912064783478446100119943438626683182777703910033616013231304226979788100127802813396842778411610294343379951090764657048189498318248112122240773033300592418128728231210690401521835942931100210270785943236769905023146035541527917892024992695397183898277363813557432137105564393698960357771500216188321023167699102137113764769015173566494868917594728982028166630104156933802216974862993352516521450475745395612539332000817437560110835389799631657767263820983245627013917306790544025080596412807075513104042139949439079153277141038551056496896597474215400626919568606730039903424930314258675434738579859900116742515757983440977179472527079720354919969444653084881545282062885979034805335265456699161573274359443627899971585050393872469524924138781855892686633935937573334413704042266837068511714792278395507781453849598082405491826509973096325297326224679961829142695228153586665976621909480793801316173323413438513218752264420500848582953017960778394855807834487665489182573275549965585016847399272802022546244348523712427455493175774936495763208815520770052102479286529100219020428706198932996693400231712345500352860733157542906419798176427692344725874235156165354699003412668482470433916826591149905151994312096271197850482302642058739817600279881907285388175138653168603257374933524440619791342579884534040026255140555594782081180207201435665584283990449123770505095175759074691984879378085937789510406184097142037940708900967261860998017548113945068393230656436575571649112592379509949636348552408831029363476193831317621612792410741058068377160454737953793403181269238918392844432985376159542187497176568101431474239860378780104920749583448852106765530570374468290018465504143752636936706953610667837646850807049016410150670930344525725734067510394019576220852681144460953906167088343175909833535668093456024500832803448777036998438926004003729714870205547572692108753094715557075983712750995734733918575880009121092353618881380327211105224722146261274074434436324052184173778250447362003729835482456932966298893728898749620745195193868598646016989136508279601236976011218011079960095457665502663888090984585339496228827296860594731241495122889022622887218355867324258246162152908822063315110475658805024931306559229305652918277707134483497985219501881896459388833419139938533850476362794326389070685800620428008450689651222703815444257693656822266804814359715723260841658563576112642456603652374727907322779992238869279059802458736478830240445230713380844373336340594385527631450326146703139112864373881202191144583439658611252665516219672417218302831432384037135187164179340135894630001170606003364334708192401856952848108911062816053471041038441057511134810699247546685739058217382455545502543560487584296539576670716741149062876792989138870261469312142408892410045113049616979719223356999950970470679933442487229211794750267050940137246450557818015043732859808606100554886135752323402257703823035385882198548158224321314954173601778728608267417840987099302637904931251371417123868178736595188678226128698431612953574645120885045082953695629609287074240294496563191226214936427412433781910203840686313746993140231804500098336696057971981798408756110173940895281159123018423526505717874247266112502943813592546831588507683947570121525677373166054703862462858476181417658808232080903082808133858349498618515301177810369314501724184985715634427637951399446871889018101436416145004335859151328268735658281160642027376993735282527338293431439762856235385435899798469155906580599969548320014631704359131645198281921481212705737519475622760039911781756908145826024520902496291656624680348546640374857488699551897418783509482037061846655766929675182852219400220214965010687744297680689729499642689114896609339413249504095022294628425215822312172640291093217446847343137382139509542196021972243555202877558777428671786792838726487435010661159232112471995713499181710140175319423987560934090556123910966006506652721508564287962192959115692497837794833115884553023706462700486327802420642754788646147067452534617007583751904846079458741588895021582330222738021344648727022304173472784052189360005010471622023378981823177335887714637179423176192315548926479199692050883278937482039628360176886261372908112334175331512290373640834379570071586652585311461855881080955936418236360140997594563363986347449763967722372001837767745332353059493719404583340138672745435373677709246407772117846395829160991652954629818605290574491410642903835620057947244181006673966242275771501538711063950943640593779946945722098964437921599366630971565502805745691338430809851671016512646572074828078515343127052500395865224020652281611057329695971178958366097844464292855192628759244185905906110783203199933821081285316916520735615144818086001219547762023356437666299659483095242587204913383382092947419943232845704834022220233549862717035144424702389942021805247461380040795760831244556576685823987473567781339291433186568690498582979837795963106529990570844266908712965327353864760290484507389699374249700283180769098777637433820936936193874881223208677914322796308811535726409405941759973418972960913079362008759105374558956034501177277837867006141385107608780403051414291403119222984642373026086445484583965490668933004976471527115075718927613165186392322196688658160867058239369926153694495076940256765200324527653084778680609437044825273981799221229960198880091365331414339726032835886613714913082719739942724355744764072460325925657993595669115575569124133257970631003429576967661243261297390080374290129314523892220924092480626240231978152188642925685640714008115543019218971085954403465316880259802935813761584180969055396464402172823428027713988301535128913354089302601628169769814923385766376812499492009725352964245187011411302468893673236976170012867603650878807049711354105981615373439979800470823845325985200209956555050412415265432435488856205698350508830644065948714761592832543778966384588713045413902912522396598592617565439350907528670520023735266971199127030794492460349587722486018815650293367375812978831473305467753088446497632517497294228276032748987979172636963197292959445807197944293884885555242531133098392142054668227730293573044600116811485351959149189508845434551923654328356997189828464224036306134227619222364832498851078447073891226739146026349186791884078202191074728564556320751168073509473765892486349284710175373735829018713524277817401557439713492266153629718841488312449344704068336583672579433792491861578616815900450146425552312857351918021397260962319634859889376719146820671970174019886185709117834565755989604090776727204021750283992049090261666772644992110702761713444877208371835844680258350935184044624361042170923809881340647377040784456159403017980406268038351046559035730797997207434883801836957090772544626238842726271735782175586321189908585438584640991887101162219110301607158824069482763385800652310700605928540681905147005592159667399089279730693387823398786264320099470609749527519258391329874303769192533820836899409771086158939889660622691487170660203207470435407324295627470781796744557239317021973358638624499717980497352618078534108223188713989924166244795618018618830368254902271047226756903940904369897839893145556595475732858585180479173660389901936709697446106577904446731913162918322411433801978197374779486335082121091932519246512532648295788028191122600621393470078224805180798866981342922231495781236258795929910313699420532446686050389160454157679937127400506133202914525229460962860773774424191367802903291669498491548179612360502656878612439120250171049373949524741902316903448338915665480856291981987804483833218926610453638798729615489322452687643881569266856471855219669258344935280549181568484741958721167451490554657058787928567548173729626538736008048595921820866146847174614971756346170505449110013396521604242534205535494979923144238309078385768647778074263817997645208151348984274350450941245552567785307712897988812476985216132035696325206213059931225283559813065775430726863486133638659595756705789422426955382491493068672351162895311808124326924655194035933344522963385554809930288283677796393649280707677343082876659509642554757670521735189024771271654662734251118178435122278275981153637266574677691651107745434425897767397841295427591904841158241032536173593448416256321798204563578415497612225274325157788911672264461429580259335728043844825455676307786439719273388240826621860881894534256030383274816339689234308542595828212137223473968964067951577020834201787908510852888594535317573721825799053735808640162260288075830303798784241196058850957661055056973541827508097423203290076994122867930299331739382441384905387759610772759614903771489577559824619353252024770616687474088940418443604793308364740378110583268886410166681337082235025200204181889916463838313220482225223714056303501439926156128385686553123550227464216201937657394402468356126011870740655992669009434367072122819362491907678219444343334669606984557337054044361838262385829695228281948132377304516932311699895002390963332621174155993642606002513538654697099059526253817674306072953139240261928768423813338036149616048270311240944509212212282577056654535133703040979667786230605305024205728941414399113133444862554137357833199878038145982390134570967970761093007485129938462395990803620631406554391708938380587511158707885696456702279071073392560632337661072370312606192995949435629097017438802708846249045915119164757537123700084850447448842321448449757580822190370093341794085085037232293937256621889799633097002104884954279482423226713582280889673775190939019055169189892169188519558229405043585044611399355200529820613688115129324106576721192273022635152860100881163370389157403614654153268220031008453102424222833992985741906975965017603146827315961846416138156228675042460582280883437701918649191309275044650290585827157050706717757559978845109071527231119751013068939066153757649709192132015361424607156743297164165856027497717034889451944478116048292428754570368956231305185918859219360784446083649445397231137407525423812128911979314294711717464466421300171488249379613027473579423917973396173442709596924954874477557362087053213615348426795262877647374461731396339676668796008867873226739734574098946453962031000719477067804311682414674256010510635637031734808896314804306213826161659255004183871380646245114724863514396110194508679679662761375873846964845819069990157347211682341703176304538496088491247156501462257124405909959641701603449520246501099007040686893701667998601787213537035044434695774824680902228782166993411219755855647741376179311062510779826657793864353891761958233804419946677204918798360039777751827636478795496331279829691923730470135090248311363914745714377625569208386312484527431905976839628689289872378810999229409795657272055440956689734332394527667366044288753803413895500040508238828306931570141429449275143469234365772182746759071112670802868154798631761510356367428830312289253420731922863375981171851266713996333030556752854164657121274393179598025779057802209938902640856791043505611079092795902863156042633257080964538909310686957370083976281600404977626569912099136809136703320366961664815016147844275672690084298757490094716702263679082517663567667893457204720400125746741231102653313473908586950333127966671900388754227464025098891537957823076528420967751912377645437986576220039004225694746450602582247159929541202627419328274781650042653243519214851482308916717189330192444273045512646314621821378333595583168682784237256659274851210516672889094668135825951137050847703276710601437786441099290742331308246387224978003383943466967581542621253268881064297861343571257056471608303477818280447737891607089058946941593286604798098493786490519746271163238092868871016071042508612629498072161721101751594482418625117967198817069741428239771359298119467810110336752329340989532763062426467498496313154013442094080282465584639063927459346831378957744557629459604846593633101942657650312173874060103811049555002154094378539190728877709666530632177205818355787779634981270621555367003856431260722830700082354185698885540069733454958893014983833956332744311349457218959108041517307814285079672536831694450313516245901665048347428758250681747193032512890596709233412468004690484230284849399133971177111378546486251321138744521361450160761137471397935597846216850907551931943347429852804340588815121949036954946279369546489128063597087810065485577994122738083067058878490748927413228670732022416865895855960625983937090996866941402159232255802072744562294936279877307969722563297239670791941199118945425601785895515386726702935241481221662562091578798075358693263127600931973738315010552347420800560348819337770993907254142730088236670273220324984784532811796254762238794155757356520649325529178333189449617693545799289049455941289863161452949644887339678162122041624265595369175816649286197765009064122354940898769608715632163695723506645535551636839203705965972144486094098748858435780198177582717847901273714447478090200200308533142217030637097341807146315421494586690456928568231578099715251376895011525379666893045478261749691117659279489087809621169219433178053154231289954938498359819694006720116738880271463821231583349240717981927442485139737086749690572135490460373079598486608580479662698939186354344883215203036349078689911192555978275607066061682434717102546441937562759204583355104236575460828503148753508168431189863752771987052650018076668449655978331634730551809720034427633256675068518146110027397747635689640223076305006964163471036713034381266342780548610870994534213121062690399675057717524408644853904170382749946592319457539290099267200065394319480005369171176322066836885413673801867819138541833775299604093083173901290305077257737115100518724837936828065781094484791105687429599640618436882635861711086926565346718179814746814165726201787389619012280701605278323168484274330468636217479811707239063481518072970959367543085563184874078692356599802532651800775703132603665266836093806532712852543135894101811741679510071766851166185593633995422064598418619798058123022091271460403019077313583919166004177815907690825030382755476600024522961079905167568248191872214660701089150131907872257263710986214051190887119710455695668386658558482739258817229856891833366819228711149884052591242433957702629152746751871717300218786793003333420949491268540346527887837651757531302629068012098697469021663123246508730418970323944789181236625887616563455317378894278011820871721700031230918116279639438910300432303513631995588268834550921947221838720702181335894594767862914301332009998012692241265612037258570822017709073060063126679596580535736373739935150892509444994151994508128828237740266263889421295455230510286369482777184584755105561051670171912250363721686156260609659228710670725601065716767179592319510832679860328951462738796208787142088732887431946893950690081331562519500994506292915741335621052854636161531864266395412960644653776249445245061220146119399923318463949473769215622535140731082597960563178909247633992845991773151914084847346135287788741074329003440992115764987261518239149725515011237347356203915823559154224982291245146926896645079055872703162859523784828908082757946147125235894756636953555992123131075240975625158759115636477966875931611286826455835840494481356822460111257400713971880616390300698474993277261787231612604643564755202184238788864437706289928343364209851427028474696950053318418530813359216242463386533686332451263982965217319334939609418328739325804712735133046573651114905775055472338179460700882765499141900391253787943369731429315220484337991052063538313349990108099199622070178810902109695207552495342964202408785195504635261788112851804181584603224819719746332620992473339557049222959791316015024939069967700239450085129764799072874861153243347189630110868616319891622320455712770653564897130384181036117446473241959227997141033832486710353234255678900476589984401196254353126456410878749947536748912756348979902583723693092553584688580446101538560774348346508191163835115682410667846708537085335031473006407873113599741186072063082386964879165972340147181426300298931488110079453700053948301385828413264702614094172412448198132865862683199782279179522790751009391095153362020751157904288127091470784542121406595835948916219617698886825486783040789687685193363762615255276668477362503965104674118574173305380111194703674141026955992347127992094967604155071861430438746941680160950915897008376394899529829688112356633308521003471050102339462544464427040879224290264740040021351746031898627213140898847635269985839797209610820180167854823399839566385526323789474070159813579368843317264965825106827811804052909956934186291022708956688451055089310491727440401967072704876990875842115445350637300323326534701125414255512634458046713042761076590416516444968569824656844629431204847544537037657695693310873281947478425095886097696292784425496588122402622816487980190053439784470866145062453827297113701758961002900402193225416082509667749748505523377167155990199283929919659740047850513503983111681952535465211780735453295623416633951933359102477289756460493505679816895463513376906359390293643823395206762987198970152825806207659321795734459301159632483669003739859775912624482375935855276092142514200731979499858907797647991010706637724497458226222676250069305880309745907295515206314131381606577938925715369999101124938093584805608524847461147572728576734897500412125550102535018118200594093848380051607221120629197719808828870738092377811340062459958470487246310766885086820186814330934067645012620614516950562219302113668212821527877892880265345598904017784384798444236094937592330184760067365925032152564580037589927176326784030426261904184490896321773038257413491089248687185801810715993601024454192907024449862774255359587153217917065771990720980179728668963732081930172473065589379711259013626314215057529849802927936639118617999884811129491515306364764333012004892931754703380067284466269907782905178539606724798524519103780809862034563016935105588084846632256235327049555974452791538477075457496852661139728989407390305592645927020214703718690147904068072826074623778187498061207753988578241621976686115603393077927611292386638951761752548463992767035362792668977647008421497879340447969610225724959541595168774497205439075697436838778523731399063893971908073432973391307557497276921826937569489374888426271522393812991545244163461024798204440436262258886643877150693310042582896423279734412561214158968889044029268057265601977980922589421101161984216390612948324128645673106773109370141490067134138596368922732804953258578142023780480501413785739813005491046330093964994927152454602813865070843593959533035235959610794149840864764075424981009306261806851284172451999249121505961992418904969908176795372635036793030974470928390290057330422792391449356816820409697070623844524306061906318978715605439576344729167490035186314934829701557129107494566939558887498787213372507686560449173962164099934936735743523320976240584819297996069224236585901630829904568777344430490024218695093783418773165827922652151734529238031166624818408929093308134898434361401644293345248172841108063864831331268538730377726611378036548125743566740739383182445456606093101623147934277960572597010655985539007867596817998287000959458030397137265843371739941563526827933550687669833043506893057821152240087487325123908732437089749703942170763311859323115612319290424506161281717058348627051330688970607228709193512953286465637819660920266375359954622544147377260391846714389185114653755361668832297177931501234696982130042116713354835121007540399424965986640669840994341757664989787522434382884411522258317292876077643298232547197367297632174780924939109248659331438334361149353215033955077171047241747377743850615590139438878286892605551299684448305168731238435761159451151977442603758234671087258885955917454635250111229077033672375844453976050761789285837286837392804138595285217211033837652290671647659067940387934432168012582388467196641634037041882912961722037513016964516703012898698704525137934358958628138732860138568531874049100845598261596167425559188640129556775328386846405929051222128313002230928200142244688375303206786658536171292158611924082909956517445671309449798039043845412173378100226351760397888243308607174064713816401702232576877595217570548213818219293542364038272239940082537882051394324913929181248742346377152553819977782334148021792659716005385129778428612140612339012575336900684214952075759666854806798928925641375312848280686197118305752682937880792376185389695915538702825917838384830927772876712959336809114894345610635002835815011207863695656384421311519064066409702022267385551422379793787773767500624112518535408127111895378248200331904023482431198780435852948822314167555037071837215184858289747294840722191357819606151186665596458533386990827491031361716776209554627801576481467880343481963680656007395363027055411437043080984369259365061033175690995557799600271833278274454228497211042583307396307311893321252440005454824590810121207921182517122672285877046589767313530723308479235147488493588507999529013107154539236618599395676353305746575078095337205562135124143021268787033508695079143914257561159312889183073179243384681372993766112197228653527383153836060182953889925959793077288434112537697803504370736596809561521507950360858823788545399159198967907090337539290565851060541380603004276643910565170029598155782357651209455806123637549079773765136500804209556059549028415857810788627899668973276457596875319444370420229547985260159944440870565929971006889327763615508323412887330686866823647604384691468302443894941889540772713656321588814520270956770932502566792367343021265397570511587624370603562170664542946572003705248312002476691677695195501439641737750486154768599290610613873220599295600655111296678250408080325854598370688676456194818663672723069617072975597061398835369824764709248382741838218806994335520183002457784144900177141646428711445433686913093916125800674403754114534629109847019849156263370747295617511041300457470091069730114793333220785074484238235751360135705502755929145665175156543321940193739917749195804927612593445924386760642145980369855958137455361441758533670187561151178271438426685824486953306224857315624652237543463135098882757596438401528079698566963901020631361764898261187562853894177462119679739700756130525337353460445722082132760394223192215626450587148022472912206036118663901439659940304036226388473969964165362133416055812663473396304233865558692176958777238862245231715626776926810710588905453794959457485532732330113271328041412406342459560577970549010627986462361831934298457799817258996036702126268337867020348007895559329195343204304245531138209268256169808914821962529789055721059733942196063632491617523716450909170027483300689246815395727665777980063751077631088788327293988677192665789900686109217173682877607315738407201954495557257159737768820486846001011203444083541186664455563650686052771015556295472838585573682970085261363594822336730355241208308596687136103889243437938192609674614562606825787458185882727785629123038419488105664964405172585175723820366227946814502772971841384493421262420226778060149635199392073834211478757795531694398141488765975074206686804950852021458452661928606299157426704933845817439456231570700913904420868747335401103156158752090873981796268337527640375313485050866188860687560896792011227776244277960770557539976405216166136302791849952763073497334251163054014145800123515060665150291326851632647875714674747354122458115032126663762375383287514761212979171957934884275713662200178387268707861378711717768093250032723873541439800500424306019785822849338373731916191612110957845308097797656382027079471222608553568936032836369131377226876980706086774216832579237147410346792991865731766797837271437501317139281870756912838541245685236807855168690557898556391854565865101885090805573455037889861073633430993134129485249798845320699776690821906657109494763511434530102498968802406908054772812348440228296789306092967474196197016492801444468160673151821490804547227182175840203577711547384320822078798867459338716781199417937258991866493413853162675231309196020901711171419451121473384188315790565512918856128139320896315998217656088756753080742915349226534102408789555355770879764626535689530287434427020562501992621133127227838284787148772796437708610179348895298297595231054063182973920573881813647721585789624402379181106620094224115580868241104866614070555275925152786425942869279407848859931413475813753061225762944288711558962543391559807129876556680444744207537509930717350345440698464708488659799060935420122919392282895203113944103737639198993683275802583573155758015477023577173286947188974264269520272853633459114870622114690239544677008109097223815006582638109894049738664448669601893836729382552361867641147785342865695270165858448729974266438124157164174163741398181963576705718122197828040053549708522295972586825345790017477298091077741999967887906412203236826928055625661839842208441374655180403819824324862138145815162026595525285684285468403524530442114755069302250863785047098421919536083505663959503738010145168836307999260702419601345127134618995688378558801628236365324839611731590586547681352965070409325093017535092089459195446519997837793797412702364517168865871320415273004059691886692390082863116374378110077175792248681788133007491652891761162788735909869031937143517101470531927318813204640470734398142081630203768382947483259740034007692335423204814999701588639392674729905652690678037258933509287657580571883587307588408503050843576294732196117962883257055968772167400594461539068764834383630671625153534796107535654343640649402006470399419266348901944603340892331551831341329379608022131134341629095743920065065548955411894857487584774734445484682258024607647239163533414025754143979699303552054318655179186088783198629543926937649231515684235918641482029388056796387284225009740968667340574565218279306333937144457957041776137583186038451246825014956902694803576290081487708242853049057816487774288835553521347896482227626541593233047565133336325277230242714213168630282427095280392448212082269059440182900595276567892402855011699260055872985688072809843903640402420736608690427517723597107679207988354117849586997029702818618613434942583436733891888010394915286853106611339262786421568047450580924177126633392512422770133671638970981200485305715225332095432958486807561248401868966280476683571614888804900392218506861230137770257786604652264398702909190341619295588831487939624557654349112362248839467265128571541058150328785495931553237447599910357516109557058834055775523201898376745185434342695171552035697437667853875416623244137981888566417864222019251302904557633156979765736499649668246929358194388642864455447406648272609685521385116546072411397507417570652715122391200610898733026178311199695462194247690327554568682251324964687008919192094702430778485361859471917005206491630080179325685139711798085697937945999386567460455047295730234249314330169204040917849407635637322516708761844630213993476555024217895230951232476235639120495702567693262874322611638426058395991163987249606125529640791693548170920126914938838223222287377488332695946513226047331898241737973459291279507287559691744263244664328882800628263074981833415035829916142423546131597538070743536653106809951450286118098600741909911222818992031651536170125405398081580681617727671531440380704893164941502189488046897201704419227566050192752297511777480675082872902351845993280118048231641674052918427095611812986254073095991139551883664971210061719113994373468583339175182826363756237703475103407763633440010318469776229641276752457060579900038637064788752777581591886481244511050660914559276241928008449059616154209035598692098190635157782962202913872106577420728078985357366745899199072756815415671275447136071167910472303415826983529744204836399529171221456546725289416757867322328078951330096239457201054480148007713354631864811450052396945802186910620828458862600656779363832163345663413263947347210116351365754480705877651360728216647272697411003401092362286182419750207588843410765462984335529898136061514212144864325086879530192573735727221466816542500670788497406960153847142801602610600685516713355064939358170616668630522215976626003000969353153605686207615371745084715122481646712501269067909373209744309286997373976659753544780017761456684461216768906249328360975137247005718319484394624045925798449421834178007124601891274020309359969088313125510336942493233821644610606420916166681640714525896555768272227324435422715522946537766252473293080004760329597843432925122284248356361877140670641216432219923961429346467576967172796014919708175193338837171902965984910414654253574055392634956252482345778058681643724175615570262581448741910657941779099941792548333366099046263452767881773870467177591469404132902133935642486667641485766429732036331833133709700478295690358175606506417359086341919379592858980868934696515508579815705876108023344648965058424640446638417721055108971171516052800299236287797772475879031073572767636034958699105649714429407938587387659281711407107729913476063096832577393427976330924636435676743179736598657619488191331149261746567848113999071361246753833968359643007411554778318192025061590932904300610910399657414732835514809758603142072423787488628340287758066475158822307597704676823035193528962704393161305325341996675544602124568217915179992760223223602360509620727717297340635297089301820866974231127535604376560001610829380131330144602086512556907925326041880844985812516413945026324501957709791050237377110957450214083673587597777622296518975359338075352968170501949228048074782920216256154660214696200558630540740556862756561192537340020365023127568014949428480372362417399221179514907565362010856597221229612683429097090843970136299941078304951040245592759524565244544438590046989092605948970019530192558891939133392247927605668464788549565916600337912415117611469842845777912074908321070562872373583161417539118111843084766150256854876665732203593145983702284302765924569773074208238865360992337221532688710153599957546239918506102082145479254843598585058357014585152584391932795800965437793682931663702851127900804774082399868714328352658216611392116978136697742412238135147974298398161848566804679878575843243434353027763714143294410124976263753081465414696272423352982946539087796271726766591643207044282496141343429223639646430186431967548957501485942596711797572389163818749380144040290379447463417433840856029463753097779497807469378611531383829178061523172036755239880233520775839149061523043380284884212368489320897404618717419422813382204872880066649799984944807003969586422863371699109610275241113658749289732577632849899478318707445404025428129082075545051415664145057707469975676794441216731126898708966425560643220362360058841601082183063892742013012736025671535265734679181297458770091934843271408465123687658928887676360078338369419103439190893628587156970565718753677308954638201213311307655497940673497905002695340456926496631086232526278510590060786743382984997659233161603050030625580336458104638445037626640577899243649556392489430516469015540779574687210212269814135177824081013444922898123776017768595179268853257529854664386962421263489593520523500692866733021079273016501321280651745309892691319072953899270945035563043640035309359462105112561371320613475787400448608715787675296246637797303398716945097189941503005744606772213909492811164053306458440973723652183639332332377974245336131787778175442658111420465314053467050158320796997866410061360486968940439651828564611661789977703965548121223574754902759904677834987780527154592249056248941105824163403345056887870641063375196522189792116568486532166278049134762287835259231675583507253231366017606291905664831918890969019376041690196220962146238324215169913632860190432237071929140967562990277841241698653803949419744984705427917167825203350213208694269589614156786852498834481969314977218519649409851788254475621676927456441117354123973611619636804342799806250303124809306933464289132132092728106734307757732051225192499693529447242931058877373157997203758016276936565266076587926090391817443701707266517283362653345113171434522349384000602063691500145446727669915905126473089850246426322287924006577500556238464703132081124999298585137802864423686457029499063609353112568323635254029812844534803945221007320260166130589987555188643397699467260388016304576656851705400236282579444979952948882800157140150121437778673014311143685031232018623654902157035510940966259122064002245913775448037407410329515240794497108033730447634010156688163359245554949066153314416030719972930624184840724396513021515484354399343026919928601946067812781531892821702603718811398693722210746576775932069271629349610869641971895879091774043812903942696926378741083050939967326350249347848245686495306775780675715929483748082737829909202857591539194546663603231919885680683768241396390307607552241895176368197922225341066638764827571043937619259739628747027811860700658041367275070121191733657364557150466622823078992828937332673786601116308013384324704635159102204271148546915728980146963930539235835696963721586194726352645426015523054344668782954509833479086855393288120298537339296607555101730844600302596861282233630151771468100998810155072001870026101642640369869860338850845454189694890284873333916318376705526218120569569764867059902650698104041611836058696174395594247586192926606019852393752392633789405740173580743562790879706492033745856439291602044258848884904511586280139509001634076751225246969085832007892562965720551594909088193582068539167648854900440898565458626067971865907342686558988762825286332960748023159251843216605188186695845599687399318761487510349936249912662991879816717878141322409858668492154904364315353494462543851213615985177375644860837385147076679877154628210655872845288292560215194528006549506732005275490991580574969722280641923637631564533254944397489784963329596442278301144531428366837587211380255128311140801673650560269673522260155916789771021829479756880375846113140009102711979897519348431124389865346453899747797884007431723846027652064164814780671963220453091544506535471073547340145472901344093880279384463001904902936171197621731339242420779034301673732196748431883485271656165225368018151503255642837962056192730083804349702504070851351820844038095725994012224050312689091626250393449426746584452715339294661491540027691611579122200010919862238255077938765981768570798004995306080573219600194631164849167884872251162125646180253477258572792561991413107509553095127249611017868834598780001656544336973274691222008858578363004513839087760750161987304975623711906858558778460893259575049885041209387033144152877109894129857651924923444493943501855549033050283915136774406807769667713893685034658353036700653471935143285313680391285104172894163185535404916064054259091535252496021563443383447236400566388922741555390374620072058512668315419488470050719810542504596431000085489323966348472953342260661348122109153844361489426426026547744185834223866645612014806185358023519718653682849671854770948525853194292805224786402791533343171697501864213815829170848144332638551090515594165954750571138646448881932588983111384900343874611728617289042471904102163987893065333819989542358737494025136172215121993420681151092112315551340070842017468712679181417827339915436535647387919458965613659703555153058770533194048385839748803549476725295216738534264087624675259807504971443880335028657693901235024233006053720063481866589121414322219128632022023053421085505497087568685413621532197345342007958551858719665455568201938349238922417493146370142939121546966043730942288992619301976836115418963591677183392198193621231205246040520188108559074127645179519633987626131716994188717752627442829862362141745376075163752853267537945322605068406815018758838284061337242158146183893041392806587044947455094736396141061056383521972987365905843841796456588852585936212643839791495451871345708547926195799172421604099029669162280755838364536345232611953807508139721738910156907152713013761587928236979342147384193726388001058480832410444318857640786029243668078407587589543164163813184801033890339900140689819589153770014299705902682677043821461009052071112092024892826031112227243474352854381754752660833872515579908648948044205970322760209884489497638821793795864566569160403896113650578700218104273470671550216148860113584306837945605099496242297438035867787756159765787729428655073187950302097035105478138018537368719973237282944694568694795120609904097270424953870458901287269913269150446433123663762735787221007803741687567890583600038794090320303751966572455473742953015074579843754965389221868136064800175447782739636925550893845046325059830368381644785138347687908098886831098547545483321678501256950583590290173868846581795578510875415322709678001839937239278086481529546147576617256590540316261442499190028959120342301522580591749679536032363884597590148609031103775474012133585367427940951319635708366162848830407138591495909875652776739378452684061414492630399130772940785568326620298676665536370665315511922988206982578404600179601542298266612398977450266532335913664510562149137361324380881643588904804799493331920405124196102500841107593934169348490480967197575530735316127694069576705491271990041030739113306365249657450691387347742444212542639482806598435613235565359345557965858740876249852711756710324212971515423209265966976530982914423691084030530041966005750371900014773185780387255415132850492072037616529229936734056130553774415174166607192890741833350367523883752666569609685111315463617320779658010071652726164342236239191750830972959634241228649623893431211855388947208685974817588803467282605159765552769360824716581179739452543508317649552054820761752578271339767277509373780209892058797070324365075293353684598911533839850602877578118829509894775361163760650432387467562673539541882561593863222906482424796110607862329235792625675453528170452247933624472400551769421750223516418412274453753625453423713568251731552461821837292227092095360843758228953386177382909885239142684756195625987729129153946469844311624418815758830189394980553021025756810032081962439232547098478675259202117683936310343313664924110169957681406519031021480222087151973484959736717712158613413042934585637579234769712513542312937931340287112284639447627846086141611016641621650117095104860429448233992066810957305748176775098608491474708214172458456490592597995967239342934608899389293343689941469087940149114822711256317585561860368885618047870579720592399745592492521283645904784018248598934950845598985939198573728369120377632840017301941699666239672109034033110329909111068633846045617241599397563750602703585791563538442399505057564454071858047973684030406240825844380647883179440945480802604231551087318898972556169094172912266826711754599407056710504854127603013047171706696062535635158832848313952130651984701415372976506121931231760900502136967686132976482994896571810084282905333035066527185112903660453727433086845464593140395949953329167230332387959171335614195284247746966443562585543280490718571865370544020262638014463688755524611814543486793541168699267897420150306953566909552799019525410427753133578982754696165832981337184472876919054977692799593026414833062164776334452903676826504462373048543739613621199195264513098068204430270338226003492970869090839470130445034011276818208077445597439424540418102804019377579479542094323352005154185065120789361174842433182647737380982516070773379030228262907381774233452869526130847645942571382415149918323885080068436369058919767222111789171758344393967804206605750048912824644951256845276825106959473155366248795383660148472978575464574545421992683180232733797129996570530621420763431959584736705339501772268485197264958520611935969760822055028761875809443118734445783377095251279657997200817152661491867007396549725046931875727634065872282984782438945157384313939386649553768289905370211339712667234066125866359139067169473665439875724085612634110051208155533485403845254989973995356687934345575306006777047971246000073656346617661289257515366970609504371171092771486824640491106693403554480810563470126324664291663831463931923590682892431717758350748166393486254823045303028436057653033354564604803972521718241929527304537456076034709910705750121888247384288052021668367665598435905649883250213261037346901349810064336569155741610016571243823890062339918760032403349956065310500961360702610607213490353463113257699281012443597025959149204029910930811279281878112660436926657075885343440547055977837782439210781368403869584036954283582889142067315928737154718915492489857735165962134933532319370839117811691825020614719655183365072831881988282545498810483092460647067283845262585797830649659043542402514332663379494917364867342124113159322071536327093071559607621454331081831258806543443184282316773935998364592039109040947089863008140289555710762188298784455421994245218781576541528703487731155808974863611693112138947953320440033394064100186962650263856715712259912713649459821285644835895795269044584492702976433796504214503981033030620927688760075473396211371150586391601113394964291629362458558423825906574537903923735489348133910637802840666667285116929444744831438268166043867288772778695160605584587515142640824461026470897584548645615472284333789213995245053243591777054293092114847429730901465382519716122707934941900050339080273795488445864524154248008171972545289601296141842113451958115501429520560034031638236534779137181559469513493458253983704834134813519683287691884991018974520786273663447603620118137759815564196006232746135974853920134741215526606995353444241552112028085199361327685208995167361173164301748711844834571670665784747642704882222546939681236006909576714393924596491780890934042633188042897410011222385255585929562226492418979143277634473678971524339511080076468341342676807700394209061676498943969988842441082516936603393873661074426975933713810287016045395138120376251324048206123847654819171806969555927285539584963447111487166510039462663509326126574382723362241381773504249955292360974454533837762039195743840843540166925551418120170272058595030365516373211325597993620072517726953822074108841165001888448221728025680041876986139065226986774444721131648912684627890510162201365434622977374611181657837671607680329285407123034610418224020916602670868670271390878827116678429509568427220740884592456813704355977032024390496846691250120182088348843959773059898288854686385352044715295827455456562773063510656365183882504949326728310127197323567763093086133105316966696008096212837624733494775595824261351620905308324195757702323210859445774633555532077004709271383102885948902921275287094482359666540682743616450185907814388454714484273639572254891490007861616691753324224989668672514281536821824598026807871070755194164397581351829600528503405731780703748613152684561479480219592278401628625390171515285396225617046772578326459161891830567013451161175885456482971386237395205535042226374177393503296675778720212696520398483740799641435016638859845707442299200205270444185930141986437198716686633871527013328716210025431721790588246426975529586504604487432558772752696319493787106437841687262700414902421168761454888674125975905874873185991967241814950802188082890333502414977154250535132823420577386500708107907333288866956874682033580886819757383377199831504198722024473379168785244819911075377135001694334411977250385992428079546650499621731298780543884573594775044254180116562499536283512187678611978759242030570796150124432729180639038462460064758919607629323282296754029679355500654597864053858780800219908137925925923144744745448790745316995672904801546763128321866556248648184197017940722373109737702510554081243881716221647560498110041754629740091121287603353426057100672629657509633928225858775191241833368267670894187626146661013732665563121447743666402308484321866152313973947412194352037599113995686557990354463207960235882541200027109094833479401190572273680805890929481761177655172155392901753273154636741843688710605982186221299109709759993805578472192271449331821782405323858336443840183053013595723176369766299479257418648585172312051394948743730777236457701408145778608494040912811663978820979345402575698983920968725203139876620051485514682087297811726950733300224232289539952658576605024874397517978723813271858785262887232570249955024123985903506531763922562018926028233361174868209839780255184671512648603787924351073775999593902780919864668631061823815635597628606384686630886767607596001881366613340380425155114441262289040025083566342911242853730917442617720788114959252339374824574681634963283483379693854267198379077676631842510439573252648412698188576581152530997614909383200254401076705437590660290056797161007806857169062346587383805207594851584464757166719446810372547743910722125783685671595142264495914240093614829516638937260348528920749204372660008837239206603030781524664796713494636508634556329762461995864015588844387545923374390296144692260657901056395229661359523546328729772174885312712350045017184116319951617644043674036470181501155795545044200669879898445601559323372399706419072631546969605327559714122250990882221475086742639854284376293033915342474513607970566283933896500135340928346971562708193808550869277027219133812636891404472396485799683089713334438311366882336674842754730422138956368768072863147052212847387841613401682031627389849428442300733926036760367673941384934117936675576034669516284697518589916538247352570570749841065380130818606958309159968483675156178844468822910866042099780083241036461778085371747077207350421231277673411631236695401981512577305996255263483389528142721707593434920484140125892045993432281858712458019390683798383822161323421355428331798541189012687465655223318290129015980553589183766479071620480043253723500977157543095151380252668407589331512629042024932207321692340465090282121958599985245446654101576933040407888299839229309391194263797421966109475641230685958064772868307521897502219539336552001041729922398567537023429257191998730030864996142708726684446919855439670270204787373997606460016823850660309621852507987469388890366771294474522288795152910246804798585948793893641414563348062313390829929099155601192410641355506865343058928505638277236340784814302275948955977547910891699919934340216119307262396889842739228887317581483439481860890812258794729485466780700297646705996775436466715129575136973637136771349866683403658468024747242547194754149243959867819888609501184348966406881641805613631246690381111450997300756538786034651600220962035041290940800778320887062759233488215052537139498882638987766654842924171900281083712352954563160565285999652603695455327229814275342443594860358270475442419874787999588574243491140150564952061032289813599844283045226029084655412486987989951847683376014838807460969352954365345768495941485585183959707340427608037684199616872254861002975903309320018019757451142140570025620731394514086141766329376236457758143112861020464014245648909383702726605665694185428014835591867336907773596801572149197554947684578818754071461109523669890282594104373686004213086608398920762181283875466789676910805334785983885529897464071759774251603153865843848547500398502141409115995598070482941973093337830983646559974658665800651683642605409368811477848631791493313087293605743611515523591975163675935542327789235804138699537731899194592004663553446406988247000426038120542255246193118756308058964007138362230153310940681924000312752905255363650845556806954227891533093936318462358034306146944174058515914362681945458279793280870297220089971294408677116576599709463267834297691063427765505402850081929241475759225264302687220577700712640146018120985480422955919414132473070009539734760979602970558428527750981459291128200845562036034933901106090735512492188929927701506129265602555861506104862970676381805658404943972686686190112775821318407970941327950973381859576617723532478955637869705443413400391095343689710860148489720784456609083673071722142149731748629781571724848131423504619848771489650852286245239706237093419203057288975780459035169774337463132781043943130017914412449164230330246935293940913558010834514841210638931054083414651449766389068259630697098523152465792255699961838771177139154203549928746908514138262273048553790910237632128591722935629545978085939864839185533604813431810860058443337337351853085905734850387378530175365455868583459568301947455925809564224226645823256811633021816152297915378839977787960916277213274427019369847488804803612593346093288679633571398946635183917107466615026922194043083411742405497782193433491321939101125269724900379136911999354434408442648524375993947213184323493921634394791327798685286429469114893190359087269426049968107434886443973611735790499658962097545048098184429143117367535485416074723214584616747619823560608382973062742332886518409667693756271118863632728499657442802464088397500078085636610443440495558503256302192083766486122157748296564719605848797917065838083983971476806026257531681192477563937296792608991558386291046653863896933353061397288268535956957410131774028602144830951272656676509119234949856852872638730646364013393968193952757809323677426759252875363643784235104290532128241129708240250082042498496084320433110240139262285280484950729881210182289904465134270928053305985040859203257587750218507315801249415252494956528205875598328950918910684176875714029103286372837564747927296476612995259376536872361288400105018651107169261613905730673124165188982197777804022691781155572756029647433243121230087541698187797730910002854083701848562205698383440797728548638071014675270590865032558511328248245621699411556970868706078137803345643933506331013365530653359047410469882828819451884021077216483643593075991704504148189363142850685573501451182467489216522088273309226102473042891467429529928061256790417494397824812393391278656651222427121459717658034687187148226394488525055076136081779899436849588301541273003427746631777793175537046023154203108627749819472934213952327556451574655897425710957438315623721725026525695811951913466360233797226798673166838418358342220977654550197138977067269834203916638974205853098982597500633526382081684146678808510221546210705840661280190668406844286276508127440186078482020700090968121004271420419697930452903956689179559472334749965219362291954144316824584593024629714454413775620843298397385453656161560913892605428211199684578262963609486590989483086434902389809875283375047809220512000138140308420122754198119265625948497276818275973982647419638099424947050781986499869293545900978444231157511787895077475452620074760272159115913890396410968381187282085780420215188142415654773193026263481130119282827892985861484898463727531036391689438658521803750899870150271974116439661962984179334326399712471598939741063559535490005835123678852747409341593286416599875968760708323475742161664552151819632962303587884300211462293809621902161572306220249945460466613339654164656208709584332084580096176069197092034929859358777575064284639139035330010415849123738599875000877728487584458944564911151719248434521017899620203130136544893191389531529819013078888560826481914306344430512829669031373255376232812577932209236553879334329986641078665277054116797771119281757224213896757147552172018953959551850213277643256159203848467108298676272743075707600500108740990171457876470134677764005152352639583273989921391327297994074308565690266272940089649544683211200694928093536521626412666998194841044199879956537044178667837223535663355810332142617236110840487929799115479728968985890532678695602541514305896979102292074873142575339941162733200308312247601573324083983301475930768567472007255127286755493827628633572143124489769918530092249702509506297665363629631312129365195957693173786310656673474155042755761800583476429303708025974470369662877428327516862007871831885624637248540373932927911575690526833788658580988378378604524216851459344298510029389054405459154943211215398850762717255122534633892540650701347866127474592870302105007741633756182527321123618789914180563923378508085535952804983798828492213794187896817470926901886309568460966571280520299331400152228302964242406561712588514698266245243912923437899414804363209673109962076071730126689002736679143705770847895664828770935791945763689262912349162081706517281024034866287638147129851797945061708860358339970160382920130124959266008529873505717415410991798817891549614927078017068794099966325930037519073433944819025656526606660198340556965656450998209199525319387615968847402462757465103669191199131863678425557682432707773576789795815229670309304884860667395074252206378291755511166813742967605671996734101462934275879435452300802951605805067210225005993936296018943258035748272775886060398435579397106798328965789148596785766054888683115867406008707623508306783018253549297825157143234987038123675035678646286250293601614962694731226015141590701461458686658657098337434383823277791875105365788318006608131913829812693631514640534408628104395597481238752153724682931190620492836784674928030840137630659749716944657710653408649849574387368164218965372349432359293500014262154553515441244944277378919522672995629788498640726780487512821109782556417266426289507341850248821178187017957684319212771288985900702618005602500015012208324541731930881073606842635739449374055992747604198030095524898719197929283945407585650027502474067082452753671906638753356119321248381967106463087904291837439793001864169844113592742049137857456258217593902568224821654523379474706755967736103270572544440386476341520807730405503168829654982190331895074463581914402739733992567825815525437425176966279556420835392775071028637207719690786764265573935774926216634516164412109087685789345184478024223031236880118691970228723388226444616253983650277218059786770017847731302574631172027534635621653718794742084469813574975889760013732896898645579073185152025017687057694693860835294806272817334583491238614653751802312879459510587681964121500487987405499813736391557565751118856556050535791084426769768451428194650393942730220587547016939481564365544021078030072040220587529085300482478862962390386091394183075402602486214102716376020990311308834691940545042438551379877201478405493460122909524520271896153920336595963051878920846377430130811388714071116954139112390578467922659179349204380660857368731107186371461015749424391390861799656072438448586136557925925144017102815865955192262382483812737624232202675616691580605023687054877028402088040185677046509558864847972351855313671274378858301196100446814927705788661349088585070835326105569628157942740727171165781140232053520903771180021881499858279964695935674531509067167537536067712795223255648323404958608172802842724153109062138028319042362232915744951694156959325998763656125491020305880988115119435921561605427445988984344263283265642973843743992425780181313506507022091258369140491919192620474473594750807785933485525177736559275441643535408756155140140607543669448146368530047113026309321113521528471691782627250959636563280109430430250076681745315764527669578070340844579966557972404851718924583280427811559522073785591261073022873551325599224591439909288581921666516537934270484202194804640884225532987277873187989877493095296535631371414287353527542855384063145847081154446188265154778957932723898261467355769874869996282904340185903487407240595021104097511502474286313861979799489205418804643075741131734403055916698316651908993624392284782216783140696422042456599678469119562487698761533057264631642166567665966095913227962832849034478623856001103873636911025316558386249488374725449775230583471254149975251081198356379589949484809681451240266964957757729252235558506014216753561542275462957706143245585258960609593875435172602810537903654246476678048811057293880007714575235559873885123132607319842355060358441968983717371125243180625685079518663428304794927591773225827956606609723355523821548901398279321664730568971040987608431924434855200805897922039631488608755440583047622832406504616954326578263823046843160678825815346598851029498191680963475065945693333376946266829863909443652230509350781601864958296895017191852148171671339576787772122838966887715230831697215057085811052937981678160908384110831287687552217789507795945506211577593950759401251439454406641619385507163925370908217727069075497281858501762432075701652206501974034771525700489902569156946318847063846245162159553950859238529595487100127058460057604597866448858917036272163767993471257047588657550222405176716900079086071280538779131967904068677539021384047243306197011222697095253311361934325999785072363525825188924298610689434259839929947575527603696470781763961654510887976728614786492755656219526330236814062006644077683256916272538742665437710372082217775138040559318947610243575203500667677188668593746577563586200778240745084525414017368258688033765927670204385064064355280130164321631476774452290056091576618662764897775267273842949177562810284438477117927430785000633559961199459996341800640483885621684061300703661373215743757964505455129264769445173509676362454477364776945411622044873369673945955414953189252656926689441091739745224427707576475050221904208967110302601452483205911770414920407034207873814054890931302802854486793261716879221154930350202906146405531313592885610549743295949679630283605616275483933263028584563464244444500073590457083810942905727525291481247628059893457684549515611370752955052317102626929338267865100849947044951169733830354845439096123318604698395872064319515187782417771016889971418162045045655657009229065600797854124623865674054779769607478204491218159025216409579293613481100901822743586026782594563269862683342318270997910835016972118144268547379937031690506845980845428603628873819467899776572493140650777382220464497489836391786689991441780632927486955277161401643426226151112170005197725166968495622160793914736715082629670831533638208314808158069429641767043532569524568333608740818851819384339692822510074720843745182931732833262776043905849679276807075534360742292509684361979900243901736640172936711824801416993289731331783135523555315849218410169272160117504076489191118597032884932357626666776343069284896954611319227461154958676219660259269743530017117663625685377660643596022745049093646101941449419086993141092334275632130803069207266864418813008061670385751498257447041062964159773566590641172711885411395130125111646881360582395981561487278168881500060353602630950310654655280184839676021944139781421590392882301220038902097341701950814185670752440766331524399613997676892310278812115604408812129150507782708936704023100334591039266939424909533263077578219824752750589357629477957373525125190680373026253524965986187637230910379762044198993587477000052691924361681326583700737664974993442913936298947453210322857102080503823344655024137306647593843772650322109335635292372500756548412442987899848969075804756308591377819869142927693140447465461635218617226475728818722175591374227006021518810242255208043436346732892409663648084540275271674522704723840236097774055243741490875489456205363876727116667391331352498868933824776275368544662250357629853060078931195998674549319575105565606826358467348025928451611613433410633712012047129092902754277852973607096369081556794272521967508439200225060741528721218275663236855305342726282766400943533502106403962151109355249466816031168263892668080259569526521917374750576538312667439389252163039233572946239616967777227378360950341426273530629849585589364191414918077979117467577210456545272186221765653623583838544275677757665200692888722830509478806887357825016114835865303891302684239243979222261964751045297324354768303072021434888117094318416648209184580933058965108663185876643613606036234455955517934792674717402290350334797497562769870234544065341589499981383799563575740467015346450921694998405191816793009210342430540584139890947200602302809969812045789543877986085269627434115032742778875488036637203520143754873952858386942821403124240116344949433516369199408745934423137978308961084991774762948794351777847746541810578393921995805360974801914056792465190247548663039594218652537614863101432060618051242595713554208190611283062127958798026986541927715936099826328821142355286414851655396123484618383138536947946974132338534730613303359962879121148132013874781549382792984993020175298012682399636756056197519066754124576810582469265122431119474568334145182237987849932850012785012416122585723489607695605747491447701861548754949276405828077890815222095320945052970504754285724299288329165130364622809632968258347161092137215234352696388052600422661649913041441958116305080919106431214949330379580354417698971758826091581098482473585178501230002446987987191395059700205824579449196427422462359962007331663310468032211318934765926931358944043615299584175430780647009859455528176697511514677469483613242317239887588460125544407653908146543715742003493744775447536113035728415933380436836545170011819910899768616689289122986134760703717155625335169429307606753449729331939851742509879192337076809686356996026498707529034386609609390572157110378699926764738493085632149598198547693580672266372656247398068365473229352814713226533811345934631285204664681718610220918351765453632504826229025881219431175354069920657333309368082802730315810034709544267200690955717446771273442093544080433911638810471202564882355273709408017960972114151563049840138103296931899751339691025801129926869593603506976729456425047844385275957356118897991127359014764861387454370958608896766406617889316048486895989084081712785507614150122455737564219416976792058403362685914137791912360765075080805465881711905712109723281770369795132694575479303123455752872029270449869750978776401366776826815601188340499531134013646279983378820081414560096684950242727570751164936481975130364314300328608167717348543810841481512875919684686614735430131191860646106993354039015274099883388136540949635316626737682327293475553539722771549437654181640856503882382903763620573754575612450966724406362320598081942849270962092574984749661603130432105581728246548047810886136069987964297177262518448428170312425586253062568980397620065579773778705510114557139065744453844070320840070186099139501849405529299651564357827971869568246478531190328430232004257237813484887878457373549512564899024707163894695955093319630123559908414242588739844321461729792737694306561729884363577359629501037406323257505424222433875369851084733252345491429227402934417288316097209209055008177403612155282614827269216640075311783512907075540094087158278245077709811047301726777700863529354868874429859728912752036965568348539805414090883581071063273643636089855197087777701474699984432920004741112060656696861650479280524213991560030213244182617917393616071098523639644954811826601125554804769547070146070418080337604314247650706031521476307323079893443292618190835745647430757836914147871665624829358285850819691362674946546229761080526490060720451897865228236574144843257972907680249207179095248431107551131872579025040537487422969876577378678120969511916740573701284783257300346448449358768369473210142916427237752549120007953272127360887245350149660431736351588799467980416020817683138368716126048297903044669122423584839298883621707886260434287218093994280109220548032714587640986288476467505401421801856074719320231490285154534356827182638367431949874479080101490675306736830185240547810791030763173978452665072466219791605348848844975690950923939641171573650015980201887906574219475002249091301361682590115324429849563690750213580441988017785990066990356070136511507224164860955593517404859835659614703815751611004155327500665063589095370524283195533554278512592227326277056028667418614762726398212701214892921946411118587951672671779134680481070318827361254049794198744403567877274201526131154540997340506226047604098864516354099091942527724248150394909807565600595736610300012431673931606706753157865442299474640530740657058106765922743604886630754944082054241387821700017645006024197617408205914786127437075866824398760718871147871399039741010371065917956616886665382250222170930622336668305905126098621341816300435342444483802676295630252824095098421546606202904328003061295530689518139392337277204183387755581217955558350466719865741114032645254442360908847995133265640651608070289969940098100536567046671571960375511109746398820484094214247259424210014102964663162083967223524619151364963007990743361405559821480877260522237453245069082079349887997049784145745394463216843780214101314072715032504333387534901161826544075791292426818128791850144594092563238016580781458579665286659877731243297546439540019943934323033948689294973392106474710163712531171691948518733855120104950002174999170780767330927671128162313927054385299910652134084869051447085086722713313340535946914292296343480310300095420439101166079528372020163532475491108473334765709271323204547522181867140640582378683017141976690783726336494881618196129694532257172696237895260738769584701065456220977161253714737123077218325301144606418501288169087049307062651868877881757612257422073261572396462382533985793514418005122476288197170850208438396931958071722174208196487249137743887934670813849249747512130279221842241602052079422983313092176610961280738998801377409084330255439186787576225177426085838313744680976374995271102224700002278469955403342920367977583157941258697645815195565366865591016769907504845408278441763831714951370615235119673079181338219257222755005545023481912364121685785940818241983306384609100328324848266151944604893989638184128501238374197660922202350533311877519043193218316810615706068804410984168603687398308710452199450839619572567100324181351054941956990807927853357153163477364591783754634560763452394366935859095777227325436544783357242396821913764784224707997016741095541838955014851285750935673785138568274448281487691132334388395056381803641311511317221551755877256120628696265429028607350089949107254358998707617979884035502447810985292926487717059646652519908664318621054113712172162833385541372301589978513174271669619125247282608424057444299519069528818590003529198765167902827747167042600359408598065352420843861993234017491611165245033556104314958603146787575725295077152706309996777338746973819315878853469962775709191930182964662209001561947437943634607352609982610152681489624903820376738132678587902325782151978212221834158195789028127834122212760171096681128094310843971714549249192761787002607867691798667815359178642484947937499444581110192403940962734118325754128832496356353174313905341293290295790949566447921904151759542523819239363084765754453618802487364298578503972571073867664310254757731405692055834239165324162407529107018115054819266263811843770363955031617239424620103935314928728178086020018466192618073316259730248795687757459083236601718676683030629809257877970007943071250257097277496080811933778635878938454613498090112614667997702400612387012325652952173671147344766494792314748887943942343356500363401308250921223464129224557325904146606049638376104188355873495742998502293959658538926286153271544022728479164183684227949101129928870285480788457541783054231535741097018782240998027952703151907894283962609575188109403674938761214182902166661564615551393947721641884325867325951441821296233691429052287052218398947881791022517951294753846613902911961216106686263227421093281231463037185501360249842194692156171941990956608677746026484908372011676412529512299116657386093157437343857075285682133425149992254359701932203697445036824419694576384550530007876450822281552917900432126671448302364044032025783811263631073152563338798429110973067644532484691329928165719922034911824908463936851752594697527384657695799629717267257995795281336543808340666255431173797357434669412181643876133828308750830991750488608031044852313528949378149097603487706350852776725761944367199960410443540405914729202366391297531215834623194959944992172770517879471635146884241922152243996203341715623713141937261382331259081267063016009727440359232257650450921994176135110367304749312800808341633301695200731459487853243805423388213631214078258664266829577848650155666879394581385993624441921657051602454026909742950494388783163682288695865243436573051987324748506949285905786135924116418199749276343517831687952683305073962189735698242496225733061702693324028856449134067713872970383264250324882316340904078576014773444870074197147789901580436316286634264987742463060145433134924235341503350019717573614615247127555437516103773341198357400022431506438257724287717461241119137902190341512291165133075652610074242093752969768694118055487983465664857592283806622604140038659143892093246214887926937548805490375196542981736599364155306201072961190310693473826605721410700080333193286519588442620365213844658297872547423775950670336731209861441886000582430963304840194420011524557775386700016374949569703620732252414363670396296466957881989538931454774649791536667662856355826045332794756711889461145905208656992760727631251008038015862379986790990812546159638043390457900227332894560331991947900547064664504060189481923455702730623886501974950372222276822997862422959886630899328316256654778060055042379358157993983449908943269652999875125582816326309282375304421101984393691617681865621921787330862650102436636159960050884396209105902730277164029189729517712543579535478578596281902277459826913062816384818260877267717808066813759175759107465568529612568516391354101527626228005641144734980239973971878425700720421836895291139933581548012411423478694402654815593524320380380294344714758575880277174092380566769293359464548091918803305443874247902774338889382579667420360837886509122570696859806243819962827826214229968620255887106782201779579565108354697618286032148702020096806436342050537232360026779850522610216197973330030549593709399897995014026642025086044511930359280573643027554847097899133760117201509931131267659010367305416170078210870647558272568929152375802954693481956277353846073135775099485192142324853461363485235204105034862821272983687108811845599408406423729794745450456882749414368268285642698553119231541839438317104421744598912203897912283689462313507295953762567780265897299692749434564685939488294717354337412546630097699082877007263407480133635374046079015615801367724530738417673840446879107721456233611625423106637108212194880157458205386558285274016607940882255831623591520464315686787236763850338677497092946954328848886708408438782742506789865935760535945600992292807864852080885898669953224898409745110267688982174921777659091748850051537627132514352759504378076830814472221020453922575100673631168191232307456671401372345441931300717809577563843992415826422787597741758766901412560935306903291289279716006151641730731859466276787311584385288488601437846820195004982673653603806234253160567336251786793563202159307304360274076867875668748390081392724397901370792754263944238366848632312941597469036602078020156547864864767352361306725487328428980308481582877859129116524113353761966496324860052945006487517527813990408619363535615979007416774540544082105833446324413229650548911949125618197350498089756096966786718164912386379240627870856302105452261164707778736283121450149890328943675801817967885108261599518540343661837602264352182204707476423440160631576628369289939720225674282661468321997604687915954284273481102572307746145866440667178559711557335041437903012971820376902380266734098737334419835604907513780581341399000098139307359713665250352523908331351086466605034783659775063385371655043967406841504131187832832870171297015221519782406067956376807632777409263461494322995965035883551420059905767968595593082235013014111103256619738204399113212533592634594371838172749796166959594264903635639465728446708686512937821187342786356013193979304057413760014199356505076550704709506576701624969360501267111485859512603097360781317321765540124643389225636004884062217646790888212788029267891166049995369504098830440335299823043675695263322421139265615122723192506698042156999673423581009085304828260807839767999511586892383982478095549439864229528973586399968463079524608731994416708625081971590639600875026784412331240158455555450805988885394493574122577423109394690793272968249705715163014697353662051267754316273927040837023753917421043593141896258035693451039498290641488544160227809136315708131233805791851123843561308076655017689150165506702171068576444347292508924180657785695004684964963233254674143585994936912416327127680642297642168068077849743062088580435981894059455321715951192715267891837399715376974715153913911220150370623692718289508420966857461297801811966532157904697202511645120296871346053941709131058232681414896443968260846278884341522545258158405126224881265285922547222298995204043608590141771641447830531089904570758272929059857138678215522366571473253100225624632175975588387872293276125145471515132782706310905920021048023095684489963881490044997463077513874246220957265620022844412082181881325300838610475940459975427444724944627988929549032694754272254457745168696332881516517078137380885115511612606921653057016682276781889501424977047185364805516030902264957895863910561833657373342630647723531559212171373511273170830154149924384827712970989047167654362772947459978927835494872705307456968228056423384372889802809185592419685391278240120384441535315851331942908282449713825161825411543733002829722102510655817142364902880670598325913366472111225897386616335389492433368712356036267490525714675512093379977578619973967085750911111834912931300788205454828214393725075444701419826871510290246054798567986670874738903742122494704797166616379431656229078580574285168237475968086068676223673338608201272207759440206826019416714536003345221198823905107809887998629059326614963024626058657386498336450987589758577771232602864579246335454461351897021268474232633669100617014755121202581865373008758920156935516155098185660818622118292713950792904329960386146496436810258971190730424107363230634142214794948273096375481939297977911138502888354978937432654928936306996374918011217892527541126321137515761199005028924588854981133996613870107928454668144158818647833731738843078763163277120922236783316425872311340906653384998487309993436125137881581761998888471938242442209346280456402173798786249181780185215770324074442684215703060894802422625765574406444992592274759325843695665345964692280870396624788289883545098882339983796146712188722762758888815684692315112801409875193209881401868030705770958468423692664648164090195231557031133927176271497667289702534613996638496812195817129612298890171560094168867300143130331922114706738202457337384259627821341854744927256438550872580115386251294467024486382185462299308688566267787031257316953494652937953932114109437820672466108819922572292675907037433695863282643942836864540231494934771051343175705882937528597536268601850757994148182625963111168304360791346877827683643561634223614520932927526073391800222648430827991345522242636870665695411281536928810181343289103161686959395182034562299679067325082614208729517661262889639392500908725905834682674466824893486272429526153060757244921227254112537851268863755012588251652354576393261517044216849821774994795311040788670858676100695835519007560582967315240347215182639959980361004552222788517041523928071281539254010810598253762660042886308099295865222682051386083855327862081730784131206643263492911406376480522660402031247901269466356540930390709921921582408070406556724007764914817817306858840285493123224708703040241029189505784883402645472372994197242639760083368718318391833887488878182736881493838882799152204311984066909642334640122619981244264111066452475504303475424844998320132274223549829451281036179233775589824587148755016643498889143566537477935306266484049593209813460616355758427690467037894180946354917315236880568660193127850904831784622351694751151406314146879210386600375474031491046470380239501491873353706521732850056452581229323692314632351852953652680304383743695936323718451286223838083460353579317649023497106225663514853774295025297208101278860554122646447364873603972402827085092356300671900078943044490680396982740141584204017085852482330958808825947035345857374601275939333355137183496887587942304047686454393144323828086810392988532827963281513346804567161483265895931795897621421996801200304960554155312587948292881533191542622512768094010286558419972732548023350749573132810413451239778755941854059069775213404212802230473532569382117305249762733646736303595305738913092770872280122216193565195912096167386478781856828694761304347066605647935274852117948879846290484617757493583495184473543196176747467568479730256995434375839519349757111913451716415932327264267047964469132823965902911812651070152491224174436653805944793424811223971844830659094325482400497041553329478109081982282857790969977339870200949434194867839839071702831395564423459060060476817582558670044117459823667376347052571978773739881734325115040777874820842416247402572548981066532372575439222383393199665411609839210221926311872704020479151904357805646226904164402513977257780593141475810283635577443839918144943564012362307627338602880014955789364326128398118708687485870649675130105201383281974970729724565705070022329424758840869223620675423520867065814629310849378224561513479227104215772193705729572979604337307597208350936365606021197202755946768103933618076658250604480138938234858674147625692539847911423581438221014834647485412513619895907745799317428584032991718385994321098839686629614501818540127561238288769337567961073656658893983480719262090672037163301174418201625039922894519631899063027926099691261789979816937461696694989819872712963963591029501231062220134450741117137948289941361845392302713537352551810783014383850850466613828578248430694704463915008885775668843523600736228303982083978641544665453288152104304245532840131124781730836025004778858113928994903057367558888659837226302810228860940431069337164353765044527418374533190536903680124210275346745457033957835912880064430717666118218197495621841696695817678099254628531793389977861678315515762055202220278261713354425386957978370376786079532286843285305579537314414465333966351423878013147014016620147858502298087142156670780109160403910639708638031588016447817312698813876558217550557505612977030537519471986742577529648539701256844803146420932251615705424662336688317043388368587084445416444007965248726763261984460647839704481803298539137480015391749479521198917685567859973281911771280799584117466090052170259177831704652266746772898434323654032378643308308845520473061602845823323875256266768761121970331667260500055058324752092182534904198568447107440366004778867103410071435806339931426353328361786821970118148122660145345376958736903428782781444123874188879751619950307317484584262554423461481841707565840762700495019023399434701548726059415084516636189580862152892599932426901897239232432113838102662713368848593916859538771758321882602207582365544103158185139530145951970065754181258546324407522442238273614619680531536069156072142657325106101564855710666204962311427356767324899402937957613841091746108071263563424427138210300793728028192530142677460344150616496680276029906552725873702891228643071317745042009217077514199642966202447729343361036880835344603145655860546942893097990832782187059422372968501459597416040564392459403781754961872059164389234196304623505418439293060425159775926588170242790882529828813916429716582946889432098186830402323990399897615728819050062191520046714016915867447275194965654515788020580296569920005071142194798815291656963059695623422783156828977347589620734288442941646725823666571811301331407742390477911464956766807560665247786253564045464690001553100469682398169281491600899918183032070318661666228984488283852886617764465161488304099499459029627936328642146944145435310312489008613766453922759457077119262227612205781125813790336031577471920053555314934516219357193181830707277090582598502915660345629074080657462570716470157848964677939887552354885134445834630081607005889002367534845306582736569067291765922145076939459175086951213158621990597472184092731750437782094827511173777855454201228025925133944452741039430990581710898513173166522531793228474111103872131824291647773132131080521543542101872339142852042653739363229779701606006909735820937776646029349880489137249284624978283510190935505374212175070279344515201444147802952923059850673395174943609740037348177650262392105851648432138190861620656419253630110165522373811272392162420694600284422631375722919712698953300881561861569149577490548439878460137532185499092769566043306103273898855072072488993633206707839167830314211500810217759927473585675923859779510819604612034681001942469454521492418639392122728323179578651952371119182813997797578550867815309033262379504546152063765840152242544923287378268239023567314420741882647192095232456741797872872342805119472559860674551283824165484301469448969893014942359170468885410689348945531784828822806428325501354955442814843967706865296255694635158427204385327145891368839127368015176035146202437391525941848041218504318265764042804320465569675698775248941315571983761178571522101377040241859609522647592648320206606594610086932795828723153130401296287922249975789694826324186478110604411436718201322328269238180085153698576675356618218135687274036326531269369613056074988755258945004902157200176529190331064719073947391749081833041684202686646918308500156608218031406550776712905131122481825147315489382699312157279648552894768568922410831609094784048401489759395104788832592651688542849639843281017349968570586729051506938928100679755321776295817553902534637794022709732045035723898438582706263925645053684943166815682703614180771871010067033270457237265283744245978378610138079643936453569679517928699174187801018355827096013671505904866649007288708660730393231475469046206083453538151650504576405115874172219860791863502371987338526165535647981848444175808560590992202110434067107528473752098822590100558719894507170291452777549478652773560412533532860890069368466092622497655308001338982043231050109026250988264701070908941821102834820304835154767593543326753635006160228307196934506775246540896480037055252049926855569388838702034621403714665448687046007369183631417780184625180797735767702357570603203921200269009838501300270734737137564255114301910743744685619518572358519796352083103826189988274687419951543245956711654785667829552529079623533688366231288205061392626346473952329104984095410115018603844739796746702054111537658405307933981508602787110051210959571588282650508813094402133056720874877945380542395782714721855015185991406844465873589448988907009641761954787161093454476851516053318306030787794755224846632838018717786480267616716341527495203504292469886083445201988123281576536116211208834097208994567360960917881705988187145261376216040338672613339717378154123520900549987213648964918246701196064391828467292017360264955083162641502356730505431117137634791099843592340763723618544367997779174237438499887273463643395407438068506434483944452282325721225756745472814689169324838132542544004275831750960448045115564377420466211919753968274062817363398043080564260658204011993025500540082476713976409677996003171317490252137099212727030625565652871471986805794339742440590723022511373085792667932960149094463052831626961600919708864559733477284261563164767674050870623961836175434656937564122718823881061532684993641537891180572130344419212671228912807304374926109698927397865996317415304436518061959620084853441119700244837766421639574987368255389671264819004186341163324253197238237137464413222105420363891721705251226061842769783755680904093179503864563519668329011737169351102842967372460607342802459451364920536496455656307487067676327746202456135258980194041870846001325280283067956291019288666593054580909442860164404953863006836565094846756717193201006736965104442173978271863958013125970482526268735969466086215869852368850092466262907990199539048013593565073431406257722959780307683479498334936201674023998520618532846634023377022358013605662456974826197376035717166342957040641683857748276493995456802389760340864029126528541993126294155005052951787060273608596011889244275034533941538117644405756973046495792457676776306767625572980591335440067207363536998711817893190701719692273394653483449678952601617243345643171708553799570958865291916977744787730500721100981985388632749091271837366200682210227803395985581292413581829103879705998199462483402404304673487168103743263874333991526813018710331099866535540680601675094952446161118158158220253109458735021967428263711425017708599950621206213467577220818023913900703487235132579891149413697912766695081764502534473042553994877337075920859202187093711032806520583360214245601391862329650339183558335495791424281933171169872595440907081803500991807525733090646650129396258255124404760946359298357662404109496061593566485672089138327431329560197637848161033701052888451708700219569089214306406852786690651008398939241800263399438671052320843944453529515251823483767419381314412820207415951515278252608426783145349174695051275440883132263359517934112142682049621581371358774249613159604426821724775732896888972877937479794172239893031818203564116231042761387097337199897869875991986413708117109982975646340976827949491945918314559183225178137180549587113531312050273975771900364151271315311129604388260655296120216987791644785823321595251136756634401036595869312654945506962453922740913487809929866342124338634453200017395635397104879454696123788721101206758724149198248531781045459128507078604181654013073747944040466136542901470977028924501718614581718239272623038314787317645276000451831010772003760665799436878970698935037538455377403212078653103735309789372065021055274243122256261836773443558736179209552683527078669968777703367060842093532891150578856766912188021922808170133497366167198245240296161296208368961264349376033563356675405440462676237487460003355316463482306706119097761603995397412363925981627594177735788826230400607278526625102580578992665817618363348652555564189883915540462303880838396927037397173509271733664459170068630662082283292043525422315941858888367745094459900586386920301782482953455650118340078922852045051575477472609083890372536953504232552574976911334981635949793362878208407020566817487983374561679671533701966972813947100358282068679690038415973690482926449135224584765588460313253369622335678927794031095107704221669957146425986299398130488838638195116844372191393065348540689027429785473960191420944398663685930956570032934168361818666326532206638370885427337570760963830898490947199459104382537995799348103214942530791231984012643385937942012138200576308970740839284953916816099011252704949379777514938586572471947021777273197989971586659751712944740184458154619445342813130241382442347296690185383340045026235230822697375686535857868495296359413071342411302492958367303457898920110319664296835753882913396974218624081035369876336763965600615448589684793230268076070331504910081050437485351734758691179295450363313963677164230770364658406470210478981203507782830673072621447590644304001268408559927609860488149706305120624773656700497908889567591883861289833043875618451224842051944054649286517713144857168231029352730461065541107356157904256701174474339205724979728167777689185661812982466924024966927905595808075325119490710465043421955495227601060574393315299186064692337062825493112638727339619711896629904634620319454872700743514189969951141888634747107292265637983439078034015167445485530367523827820142402238551628094284294159906592117074386292378915429762854453159046083296944818929893512737687194286704996524368217311967588705088614044245849690726826903246295935193070181426207499446226937035928914537845517123367667438052311548300241175327787317588969158223039815861508018807247282555037698895435913063473774838803213828138779751515680100334224807561734140535559396533074584489967147444735966288382716790115295709205496002169809907250548767959097982871629717622733970719589444634581766404967596189776621922404760617201803240426207473385900274037600272388996182385950618777420868050563771600503616672084129157760172680792830505938995859356093527938209272726963290394758476524967187667194275485948097596037856728303198898616779375416617550344095075338583594330820793073226479468057872259275597263817973991964836563309252978055066072743690907842021238787741177230564980976977090680180063441098817892518269917491870789182052121817599675318954763566147038772743699527398204389042544735811031270105136124139642904061796423871016330599709731255146442701335257421468227600307068264745211096576218466549197544974895845272345631877381169925751278352537966862937753783902120604310587354798109391826050030257950340007916922555793800412850470958362886963522535314968412608621736084862925359793385559545588127097130367585593821437506548297300094995043526704584148565291737163781514911869564098997965244414428489012314784270495589412614398481335152013335578660009007297456045437177244830234088490475565891140266299992526444936767922745440545395236466934514688717139546686966392582466318750029225340568305639261710800615428586543089203501368822510443887435437703813997277752799871184040257763907355845946917180426153852644365252576501083246687053899997011001111808931451410354378688217937291758142934710673803824486139821134874135931039711725469117525408052860741585802783980344461381181478495923384960005706582530404616325294577885165232592438023341226067124114311023698019358529493351980315469148997569381428111944035323249850985504519077120705666167797923524018277233277622951026325169059181721846710444656094112902052387651222299129780909689220201165832502603761614699706319753527935924666335667927096876780723370999959778095620057331049271212952703033961882746065683195067774592227640417718976507615050381896242238542380279201603974240833706656197334352668331495634051178749156697329291278637534922935250258437200455809834801553798055225283076028580994410918006095272050083902803199255551665721689654740041053874350874423778180864505819814686544298724753429386569359744597864413985623657551895527464974677684773343286065381446656621190721961518376001518629229144415028847902438265137358190779431328830563158733307863860731487839983229212711886795466173786081669133163617954773335018970396649232300644512330228111860639633199590661489748043047924510712721268035168755364504044367431064051502935052291136056373766813611332957560726402412624157332890825656442014963238465000744420565584548728996818978522650848098267677445830757480759046228570780310377727476807007066219275248820112228953096462245451358259617113474471720330523673455545756118442607790590157866819594668070586327899077996054001324141517861801661816459678005212933204918822829641041530438043740821706254195613868563702663380108400576538832513323537690895263169289635439626073738069868219770433280663516691657783175976933894946888559080076943076541517731035863080221088998795672908376554133700578572505014392565271807603331568692970174117114334334329644704626223440047017632488673077728628872757127187710088531361488660535470691165353227644385501753258938210443824233679477514197315046077865029200006311271678530806068518278841563497269794177505960939422292646669749019899619783059576099514379483685591603243386274343386462531979490503584359980314332575402115116574610842231911455420642199692641580522956984019299070437629994073460609422094805917873341768512526686502237228269797491850360114323229607935853088663649901020406744374177627043511484856617395841689745674372829008506424506658620548872834460685923849279865065255339968101007922339932424014143914679875144894444526142029846724714251696024422127567411516129562249322764529552934974858482034859235498965489511910098615892576077672933371888125306211682705353135878237510389579332366739529205640134798090341476140828248274272335522364345735785485394562096676630516192506722119943932713224071335051931713684217887845917936171150277881470945601510893264369743331027223074151473558131356613372669098921848623275003332627097389851531484264781887713184003648670374142141412701661612555525465458787268073983955046440457759017910559854235980669233519165166399608890018971815589186414273232443047647451597438942538917536673314866234037413311624597413925184476305534404434563349986864632214549877770262220089980253364687200291327110751934328129912318813753850713548681995280312135695163410721159322711375093642240357852035240108488068927064545203825502343017081265037925626846703469012130210970475359622988453292377779092593033388721786173149846496185169398699554737687703057717970022728884346095280830003492999798166633117571689509593994138111400657468435399196968822345757235572317440937827839043387849139488873437037567159787077647365168337869115402739547313726662329104295090314222612270958952517668110152268404455487450544148670878383604068597932626908194442247272401868951506283571133859918245721142223857169724489146355006918881645761389789552899039576291165223828670473249210343883113890545662242964944760208021640756711553430757544567552650023328390545673058028996914482674033763468155437927897874807133154208027390365675131521415629786902987024174835877207562992747962238839647445111024867369576820562529344017552507539441682828256335668563312161931957080023934430300084368489714496490170671100337641239863738448686008412969491645793547325187616134021048096672157506228015906945594405279221184149268014586606221841354290415992500615916574393323830467022547490175232922990460678646542395522953764803631244176959002691630619190473535063969246335626843373051314250869276086504375804905071128607683458827807769921588288590158779141054197765385818882027673019129283870090644050832073653189491838336670585495488878339340330024335192310196927845824753771340444900680147912800935600971860292148268868076052346402484833979934696466490951995169330989703188319339946695823596285157340692714892349873057692161739865783277610401750873593098056797570560202155939194612559396872739678597040720027047574423355114306343010705869960386878086194428985627302217226503757774291937237947206963386482048884964594657688060383923162975625975348065917856584739625261826721605844673253264915134991329207768095074928083779465394541263744408055130414534091948182603074166341579445459873876424781479140497219264299406537581147256228156337175366368479396495006023344980660411037164754571184117898090588661972154624692319877341591978053521242726235505224094781511448551000970753233966217997117866820678279114141290270415828951641636054078937496810899713292763373975980702857657314313930743728628562142405970752511228082980380737128332545414428761921150208346566231896168371974405638801977223499698201593451388302488270363129391414565952340361100692160304145136025740194457734141333853830623883922344130459599945034092365537514673915015554190291282473396573838471066402312950031243728749870494356155278006372805531721465875240952902991786776559300646812944107495385110577917572674063404817750374181015173358542733366947190222894404154609492300478373402886791677004015166764169758408874297857079428461994019405348322039184046835484283570969809084995785744685448459299191228249423250238163061360077590045974667723283924843232508782723848733789071197983741950875470759321010081658564851920822176406256457792783529719363273288096929410350879341111825632731562721484186347411435197038899062529137517601693521554558928447471490690541005649234375839521989903762368385179964191952842207343627143041806468417427195621724553354784853954817349068443036835085485169112861109153720951361095177745711474353783633721420433250147297585498805541591861767878075157809728649661815651012367673829780960683584261631676541678509145629260304828879836594291021103534930951638249906767368340357737378845343998219089554273961005936584216314299785627450535592112073704751482412532756661562409272808447140217843444558502401068895556650280804595533424518406878478995626779555121974043463785337765757413550942897919977230495372825076333143249316930279642841189692847788256814240875126023837499829886257585681531165713895875793420115719568500690162861774106018199424972334245598637509009891179910696154226522958827799037332533960761445809529747895749110287646055845576525843157680175278347808136625657398088653500341507933075651070302648998460035861167769604799823752101226211623297492579928351026791331694400550679049808784172602911697577100538351495384140556206076308114358480226778278720355039184917310982904964498174998591312547465686569329480271962623618282496257959887726551757516203466593505328995854372117764078281001298499754718965297372143756733323107290139257216087688959023569002104146325387388624951542862974940836897785789217102391450134983423026449622850500516539282257278800153153872884764285309428303087828031198540204547456004423280060879734838691273812161436489919923146396652670160323761715662382318213363743242509611254152389826330023648859331939182623414279298517820058188411561241515874803544752162627718424837697863809767218814175693017926530480012691469872052421293885253139418735901365647045820368609298216861176228587317641494907344645160745987914436783101778334519655069084912340233134924230610894458166307295218594624822907529239845192391918269737426396770391311860893721901308003681971386285076740874785615949245012535519970000449754782712436908295295724985440613641508898178446246549031029325674665995151169092645983276395410161821335743178652085297539600516669536015848418376843974138468447052289041841466469899287093333873471251497511773812144253582447869782508840854896261827648663340440073199787602184448855119335046530546150134666176999628698555801397976797380290459080494070844529435662080588700157546981434981293344841540920305030577196900634040373572662526228868080875084437537718553964384242668544005330294580395573649900598172810989875705189097112377998855776859199272290516294744085979742479998178234091239568538315588487263083635829405341126496540447908403062878767754040866972741485173820500076877478096420967530849477618984763995533747618477016206476646352178345513726008497244469769092179328239638311633500743440813093285452008319980583232455023137903578798150378655568914980350603045644220891636844778209901113109098739777875356076181690684607259763828679239989859587075305372350906633102629090017044180486971966630007840216864055045440968431786728734558255584950326817777654589011484511539628529260701116571107982280491670697523869532452186788996524956574481560238824685506140583429976001003515426760166902675096236099686198112204145174423788477111109999400025248370135903782905614788863030457881346353232121816891163891048630057215540451292932581709292425350841916187437153777971168345018184051505956560694126410272833155476821027923331650890638749745783215192931369081152334219421761117185978516719619152381778473754170006669752917030201065659005698919300505619370442938975540245172077694506888118887965277333572481192455038303032625901742802827159984796842117591022478255159536769560064277417378941414624517221256729448108166209984903815703186932486118238578429649271063865177176521120006779676344559200231419674949342206746221260363899687344866161360801376347991369341107486682690308939891143576073696938184626795088144811117918935906002003067387654272325681467715932184310219966901036413808826456287588233842429874426557595823017907001762130224110459864977700483320411752994414384320480287754550598132470352587976833334016791501677741395892597525809247181387895101518821121131978587255304392925451375591748087178869554859590124144832678905342465106759553266217425673191508841718782122223910366729280496225769638597539728922812234730943490187744597484294793348477824347588512470063582335689507092502532945517444079864407684018473028288929775845618041807560912825570382931547900132147920502438782534348233295614052284806593183258928251829629776558701282352397985648678892355868575055123096263767265238092291242752391328483996531106469795557526568927926450228943942725439693012473558415393119996182850116429363804725518652503603104692644232037489107054948241013016796780662440787982929627678863380594384416089887742668619096483065402958139431518798431303079961196610176272686848357199247196658966987536984950930168384507896178454460290168981341473371917960565768798116315139330496227016531919203017001425446689426623109258504900177136387320349872205520073775131687806497104106541908789318363443403584791658286695328471742425546971216342567005713369914148275144397109851610710389004468605967526263617856907065003763640626363455066198285337283004714233113934310361091988058892649449022400519602225688025504445731768803177699392359585488835201219174070237149873841000837062253427675296995081004293114809379392651517721048238672551626165806194522945390756076713838029174939910870098913765748705122375923172498229868708089999389892608489861800038773636946661144003660879305576422002304883767098943768953831458775299156828934652031762922787591807262944211534318836830601314968026851428316288075143892399832936990610143920876830522829241430108959560310716728247184615897678354455210417664532445982048429590540421443558286196170293679071560638104552574206821127204507741628739440796331358189897056300348013225472239988506620650780106372931845118681572875531408127344790837657280864978772741508376434995239521106813396874520895182134783491834424078205794162313227451176249877496438602719390427267999368562581498967133552993584806949227530731672871595852823794860255968448080203935131779825379189589025500915881583093107021986497966008370030049474396038642633126666646882628840245780068644726210860695354166799719616586836634112301896749381840248027104378838329559463109404074403653086237514648987382060382569161281145565747023731331240070903018548471387378391182347747680397613993874143402950877404228578630341475597370077088037652086651438302702613114542993301209085033199754051260067449762819534521403838075439446060173957179569042023337461157734240058277850892500116892859161955947432832356406391733837491617005031919366006205896762920703114045566492201399954941074271007494497768690050250558161557182090701331335137231280282550103985512675303403046682331138077594151004467183653165370652126610129353023218992157684955105571748009602348203208862584489957610125983149815593377591862683911796787236545283852547357130116755238889928060020826636075969269089731136962519193137566593411027407030407723279858659830115084997685485750739346051914826145084443284675903264569943339214820920626669819659141376542771221790003417244389839680654268101341497047830183575441403984952667265960708299520935515549250273616457698029412005957428811467679291206382411363476715416571633329031134312524397793133272428619211501924065817169200162769788534286231651177274869309688464015243428640502985809313965326944452554562380571632979967806207943574687179596722158918320746955237912542212444832241279805659910845028030186043770010861611394415363381461368326124295790869601696407971322394370319798097344908145333565592088697720534632446618214715802597975860959816219104321948704167436029739468888574340024899247334364689294724626630990344938447973033187666150547133352657792849222819158764332978330038721956510919528639640088063105738445394018918204255975828124113843951041316051427945471057825261361900913536058423979841438943422624727965125923169032900838405113696644386569919769321718645889446163497412935135527010890254142556876340582589238961216502884881017415811800857421657486354033780068987503134522376341794819160429619300537133499370895948435354059537890395008964376495224117834365499932985543738920404993525316938794071267052515333014407487366444090739283852633835543080689448351535564868333568446250106086426354966802230330264284685360099463583353310199101532861867253551890482505829786725928338248018358629271837080487836109623824598617503612287947948690426499169011823813160307710995229693400513588903875499845010694434689581093087249939204524379139605729773177985977931840555441143838333486917415463799119491045301474646626884380334810293047544653833911718461655102018873954347545816608909104160844052511151829285273833623153403749539844660656954214095573231399160851029602512372990492122371796416125258778255042123865077323782311801363423807993812616431976095190721989500962223889001349330473494573151985531221291702128374305835434521879373523181609363341043897081220825189588671953919089268236648682275445787874126939312411175906106549645754709820838395873613782712683423749737171026009641431762288991926406360581206472092562146273481485176387397974973909737230681778810900708275161839436804223928860631541942313771651402235274608564704190003014579895754920907095092914540774502896781185033385820071908890418016896131877242135751355959407215362841268509531574745902315619949037380429566035251192398502483655028859539927790998935042219230451074241207601949811907868283067015723492971001943724667415867942048349896797167606960603807977646855506701643360799537586607192051901326250610845992341592301443015682041398319048162470334211407149621829207944970606350431712207294361384786377793907176456504561188512330563173121468524481455686931326040168093861259957856265090872825047057352527567233762234651451284104345870477138826269238976050268274291597530163988575152846519205593770060304528463600791915449354748388440945623567312143806818227875569875746067183390084826960857855432276882868218147171830697235629154962834732968049781962714008618513570658694350009546961393691723115276838069842154103739764709547994846310937229333355323232070636049891368414382419058776890556552498850025106109229322352488485490368369261597587145013646897273828938275605516425366230072326513905557664206901530103950861180400323603072553155383137965558000764528216856365700868126547714645693957880710823911952487363132039100348884139170112327671159845694921968002503731536738335558474541798987922095517910485426824171228777322655927912000673214707299509780259928488738963303545101088054013828452980255088156012905575556771026662343671754203666677967570241905781070504775183367358089610423277390139622153083298792487746174589897369167469268960694870706172168508439801539137265555080947590840438089267378846483511119624429205152412159634505598966045922111895586742384996749976218178020663599030331170413722014008916960819080318903596144733343624554034959323995829817861702585457340487702024518578610890619700483716053100251767469688323821213690986387632865151902905672780862068055904862574891036735752628185026921261261337049826828161556016911344176602452936147028014566273437355181499456077340813129666132300798084821308772768097825298629933179005157149911957884782552015717109956852510990452628993545325158581499190532478265936754470755533021078405105665623881099994094711410354928235957169244193412050692109191373077825945288093754307312833688478842969066560005754016289154082784921380364932424947072827821649452414025228208740998897200051078485629933168429775343312374774437080173054639431654220784415491045280711618127965230560009213653260984321130860917888161639742973425796552721462508955686782759559816578276171825169891489562427443455246308695149411159562405293447351705859789071571724510995400716726080113804699656371143108997256248368225702654254697683857907300160842750543706738168859152198560880206858248186931748435507542370653673850976722393601620266964195194176132523496513922660312609940190279676640274451737460948347704678333363077268416813388801031095345712846703645913277575521070509107086081944047512281147235102667315392716592300352590180678681948871354271715905112635379278684606800643892752560278611643923013280680265889724950754978311465066513843047115900474734488499788269515983521631540814208676167022040698190517492218680995787716816698467335066200241344612275370011705604757608294742484743923278433470814367524785364784189236458880767732843392711123814298433387501688281212168897983480979414792074231797136962918179116404450832314856649693869673199795997529488916640296743983747301460164618576413482397560107524973480023137841206312302600658709120419768642159961483191627658024702208403787094097835394281187123408672592354636367383278706781240186380798847743313169137760829137919984423115344927422409936476555503595072273530618247742183149788815477073597673088884666144153126191594788909203635170978603570843844170668243117124651499498538864693788846906820195679340736736023492714104541135269063486687969688746614550448544266397252956208315781751902375346121898152643243515781214716726550914829977671988480079639711661071196751869231560945755212499518390916318811524372561448268195121476567814807571985785492453113112638882079997796607862966437423543786701894997225014484603477221677762345655080093514437315634634277219736430267348266061683883673690862394312752046317673741643817120749228938118826781021928337237965384894803545321935635211594515565595562135706966186053372918508061469811535617765299710909455143337332046096971916235829970805981992237046990000974799606997401001330675839384337904936449082559028906642963613480825777016954515430208570223388481787065288359169706772118572862524362094541670492765550577432828884018707202700476535641361167547001280119914497478359324099191294344603199500043777182083275914846882140915931013909858333044843680485888702987867328053984855029800132852956013111686868993938585799763846936019467307277556106955670381664344958778994442680021219408532576770975798566804543619604450636546148904448983459806522377780760910764737415737753036594528676388664601699521497428223955576273215238789084942026854046809053958455452111600842325126302184456607150583802801245438825052567717151750348302568390500278818493241439412635483750688650894398857827226229228700294519024521197751481097041620573198173384277892539536344248769718359024942437721021390196039584272969270367957358241328080458117319205931195401952170972230724401087472470043546051334636671140019804277639037711591360212014643852559177050751632913324382163560351628820700126940437665444261091998522819905390016024486380122660970549990583053287514161984490141744852992667615892790556039447257621225025103854660794830813906065737936895247030325773866478140835951897355610228230931660272230356243883517811288951474209950902115387281482835932964031493915381718414658457590221856434178896481010701889271794326655837394925847273167710262947172094779394255854838056159885418916235954327654415282775074400774826739633481237165768634036125665742238163881345386857304595139970670507747936654283873225341523976952947101855391063356563534270147532988000108131289662126136010854672317159702083701246641367532405454840647271197165138583032968124592239094368109700504862079182152322432994700578388552143164767646282534559866558623495295969975784142319545105610010111924970388980714129113446867676014462284040607023312641203889713149650338690134190588728233314069894299326754214986671711724934760992341120099032665255423453675967683767699542412903277324961974910449260395529354593235105028925616264143288922305227936802245645672573883226803492614905725646737878903210523005316293865892281026973216966679408167319268417157186486114075467564777979912044246218622498722249820378587642655368508884402182768299307835254357285132631356585580211715524263082983173495730175771939557855901675422489151283641299344642244108672043541726914983618038109240748956759016233975227531647778409408426732620670748107341371991198997779582676336981145359964196725743165431400826718561119698866732738821289204959032665278443422577734090398768913021903099750663153132298948294130125342452618142082878310121718389577059364840472792826589033238662903467603174124567114459238328227293906886123440254645788298661403083462596631992255032800166732622114369683954796322312228244917891533877802223552477472853464392977269583946224067245202784453259765068856466509999189797542203683067985641524780934077575549053657557863858289231244115080986004837688918661267795746826069776844947750684509385530170216125399192636308853223992385668059277354324679584611422639764494169476865891633028745268794624481973020723029040320432346485854699859446156517316689631623969011161027726838085957216601226611060456255384521118444248843679143374247277293651496428731708182138762749723423867085169253553122075183806009832677578964380857117147385674831425762999525438458368315111231172390740380848705352391162303233108426228165849717880989167668829668271747644987119907508403709444551114172383900712251710080976993509086969062754876099235166936507031872930826579673480178555100436321909203658506584820836087289468196574351668494474004764589853652429396559393893616858004916200786113730139643810603075315051873554253271111198688753179319534895042395393620088371838213822122609161020805322514456868493651493110945116311298622922602300318292331649156696194432448162888813150371267016032504238261813900752309514874989319930919757968833304552470329039090612772907456060142771716326985179122260333386135825835637851416572618653284205305489192419251418274891883207302395927628209783388890274001300544056107536147256221423030051455879883759003000019177720319425332301494329159266965727597505429046752563539753443968376990311981943786511699626971342316445536621639842915215310481219571521077489759290751631609103449679176459049573959435528532285295907141102289818649396124941753108769566588003787535338674092469967978324026403676296251263684277337767933580626282250533665310087983990441698306768036422345261159669565108799989836928130182694842170597646979953604606174459320892717241754259995428042915959002297142078170182606462427117972497936973615662456256107767396983208256859729784812983026701025037820442720872178586502589995479475986335675232257117161695911021607749495289251521046093206118327698252380240038462156944674021895803250588212505480396693079333599093507101604530731898868957192403700329356651874013592061379765998543612898601074234881640903595294235630482467789947100505704301168222439902183673163763958461120483227211158251187863152393073077725449993803756787574247666526050425071863270035667550848846734036216805557950045572147131135196010238649697487824744972477773679654229899933708053484861170385132992687460002123847727726044616744610592265971069939028135984888905704181114306620210649833979438133158833905708626050673053109217217547885823838318802594892364801905052348446923854766332168715695295924215600554738230709909285480192857010458213302136719806244425904755757112734727241062184852435449337658005250614075826866394274377122052022132333974470159197986129852473044124614034549225636729715070446023480189219515163405064950774330920228866192887349801154225833208831155836790004869451212311758590595666237799696921503004956534998977946014839082719193719687664336294020817617788662098680187048747604236565143229663044691222648907335734814321375366214551456217521739264746733869367370625714485849274407523769837450919818343915808795922430710155410447986196819278838875617440140222157053619063403007187663101632390609843171496324272255104810362950656479044296473497348297488037043007643578927921058657418302238212510168013214483904753915730087865553368260126443152670709841487018316170154333861023739121960291680117280701753515739269880299058329619032922002591703729096318436774571489380376444294831687619321740431615602591877692032373870935442830432198126173105364520085022270680689897264663986087472925963023986055020710247196699652363307231963474747006585318605772518229784261411972937810900820372726907734363240416866972022164604307698352559836364229495115029348765452337654945303047645116152333043500036938795117055775901861170540972260746630753926717903277251810802369364645111498591474576577881038184070652466018619872221116939542235954698317012691236861786148963498383606377595602348099475798427818173563038901570646247824256277367463524780901048001294746514075098202100453530150431229097876100360534903453298560759352200457506369509675804796611875571055578250546559519294918068512152227234521829253568575357225364016072137298677946860155009428421017604446239373188026530952029171257943684237225955039038296610061027655738052406194481659750671432090530857477354048085145232040192622945858534990123392191349149877291907038417656254293310797774376507954631448728004051078265211563884618693495019317741224491245372325338788510587321165989327454815636427421005881459218869395354320492845400041315584401991375734321816664777190322506660040346687415687814917990320254985337093448412881071109217901575104733621655504969490566409199182466943178253202382271965134738940813184134926290760565426728760393765957321349510808669523960436628244236085067080415321835560765866729510036456837119916485913796430217212546555608008996749298284371515011717927609732229722986539753743100572911354578367577028525625262181749356063380308815099139981073823287446276443413471717884842428173913487094376208331836932629071193652216797058833606784239784477521123542988052175126151779390737588884999620138549093314006282700465545102778372697506551499648442557940009449573153784186940971794902859635712843340192140837463462959448889779455651495170519333237992007215314404141308235857133841220354625105145861479496783979436841763815593449956659118421285129509910339104890230586223427168782911866830545033417590795907636042716221177636027186092004134517186818441584350378348202851404125760683644578471125659858666800751474704501449345991994237981681047600332960787906234159696493720765673351056616375413558707351591107441527229615790512966169986179470619778870335443084576386066973851356845989477819151485530441657695543479893656769941236500054703147025536141910054504225064559836458656495625246493382563266613899282586259050259108266215104170412279392108687519355581942225041045324181329066314109555784698967870519179682530961517988665020116678192853638122947714580045996860568446512204046287972266555175585399034856803730419951123285576557264125397891176037805347600847744347721554296953436567939187349314176475163774094367056327745687067751277611359068785373448350963927324173081554182738444671794463062575245737699443134228881425724799648165421132236926403463663859642285477094800542014550512132531538439312976611155937301724634455025233970745860700912576716387654215568154505642987953216147019333701457997324793502035313846254028853232210428323327011134474635998253693282648539573114241843941187310490842557533809249549778451986573877167590644474478400147312828086049934799286431022034131233633327567289346713568203955430317042789765025885525371799918795370516469598620572316122679978347129125552114989203626312291694868467875559811334538076453183985256898224329397354465498152848616062273316881603612529525602811814779911323737990199982610945887996195068074902609466072164132197315851825650922407476475080242453343399282072334413070230882390418222724077521603410384778185018525734638780247447822415598203778986504038946510438719404026030674137997280164095668615550988068417121521923906807133140121472759189462857117513874712689438116265003612909622149203425126166738246659674370245593660760280785156055974162611568722520593486197341087687306532558752854492119117407927483006457615652754743217557618070458056399715580176932073970917356773497193341595686011801005034194784523076915117593674312162474857104494238035275828230378035744836057730824565678094663383622098666667137741413484070981723157988485767776992434217068484299744400625446761377451476182301122126825568581990413998797453565847828837202632674655874081304761139185385190346399352073166557458651878425397712616879332786194228375139747040218599624016339803361733132301595205787972763372220855353665331806165221063795444748781412024270764478674619829576887061259128997876289757030315732573270480556050641064215135884580570201421933330367692522822747105338998345106967969950882951024967798863407008985979602601866794883260284791934876714730940098286312031822942999124341420034837615023922349605253820820575870579596078086047801975483244257855144729006216062520379183683616766686392216430966466858129949237319426762069045360567216544541055589471574256226947929985186374689490443386550058911298570375845850164604941836761360539036709574842380866167879231654185087060403068947496934088918424156078506741759753384374275932617084654009748572406847147354925332557295871947561186472792254839113626518858116489185690218335387363029904594513995719585005155903007475339430571139275655252078314611408824955862667023246872560720406377859879437776032644528880685250017313779625061396925100206529773564187198294847920670960108968287034108208970759765445974071222433571152929880446894823997848436603270676185465343215176199755169935098183409978836918991802209182480992158102320840939043472522418419263937293088895070556613079088673102839062925027328262257136973240113135319166971327332950279275029565640066613953286804119166941313507772713572783241577367056064468557801015580840290901270920635008453724466726784286494603665579911882396353959192781709479290260053430975630294245927160784642608056794587087283584288905934094688124663758408444094132794344597639065004574050978611435825622653938581872186197855674466697595872685875526914957534197791131031484989728303936889129540866067042016721911643554098903220418339058284409194397058841663781884547499152610899870677148550677064364011326416333580800866244776072938515136961742806578325735523683435727883777085194448887522914177803748957503533102569881995319315805164955804010659458523201921073129167877983904758219548998139037640419806228014353559523523794339944642067216199576283812216171375912853382054822023522104697509416778785730391857595554663596120097063394756901385271023477227392254425403253467062819248585803879739856579090020193920301165631451516849670902009126823455983217565464787899222891989636310949432057852679640793557855789877389258161903397630679633748443438121160961890158836645869325282735158611127559727258510905409820684617169729762485110518673025681448144380545708823968043927187360544736436484767739235875916102487270004149326681226916142926965801284485198196351997385614930254679222662565151749871143683136628840724036532534422840285033170417655399651498235028789107777339165019421807136927119784311573612018536526720533622859907432192420605589884351655786899047089871765686476643743273265054045706086742672714126841149976597751059308769989789972542611868405025652396688909403597927544275316783988550842008133983577644773809593780666575112499019049063276332025205040621932131433038374064300964680966007444092025660654101536112243641312756127646359247437817759647097508147830153301335104896429605896852762959177346175494842069121508798562893547182242881139148044380707218864014736583530496873474492057596166350485064425953352268247563014369517326407386650438887239268808690757530646237997253114288843886796715293370593686718959088748375220004742636463854734916622984549628639230714519935941938123183093949337643614008432473807281779949913352318268794031062428808350461262297097902319466788130655862863305660355567556630339631943114331202084185195225788748505148670397284727597272394432317538963036604127729153841869742071926271910411932180074598224664314388180937234552582306763812234404343288229721442095763880342674945689677851865371965323453863097935850543761613739597795783397383886989883018516240290976159234688051381790553634777004830654167064225773609732668175864610510745112029960249008495362240919891695193763492448169354840368912425036850140279389444426080361312636705944337310463411702297846093456327718016870467749511572030619270993409146199481785222701266908575395637464499549783915268989651051391264769711679232968849760604433524885265013544643441705689023223176316665132565990246447356608748865053970444910693441187599428970088149211184418564202136072595300328694237632547576192771107937144900306499340152673881516191652588566522477432221878580730309794864113193787744478243582717377926909064103008178335788822992584317415483059022131351464027632947273047397570289064023650641901414477495143038577493867490939708385969737830800599510417419956738903047607835943378652238497083699226981545428451714808454508370129217320764289886787559861343788922026243870471126339255937603128538160515919304609624190517415767810957666318340909577510360658632401725193351819529564381921332057611810029261553588207031763708565032468477633936980044436165207935106416796482723736084162550218163170238403424551911845988318810433305858221718746881623285907545285844535135374488673994303864842978902799973153920834161673077735975807616133466920229836970084074549846454031134020905854278362047178676963466640753665327052289758957091597247235351185306027663281887186274178022262695206296668108132724809079293521750375908657529588978870056805685455137537599597979512754756470464131879956796459034700482073886973934904801230823489289865820576309475068818033778623144450797986043337370086262488845617185670787460108419890485073065108429935017149809918639572916052288087086085961386046050905031440943406975298778051771336967663049508041117887224799996655823675027447774352151253458632198026707166521727436380028851696793605687297264601874349501820208748947518958428310136172512588529173789854308216855021101456615242282389744341048984434657098850015676553833861403806072340063000530336509414378692850189817512452602268846875069319672594515135883924311672644930053960609927609473742674561569350902347508316129544802136132998598577199876792899683789434059550237646835702400688663697960771891308989676979443617729221706709210282832268757208162515313763429456498688770076318792808051397007623692953900077897523380481236831871806277051425185751794450112735972976637597941713151117974898171060294971100925240618739837024815398752810312220646729291826192340299407080312357792725614711945094520933493098450212081262121374055127359382736190913807526773373196052593124100236698749150262944689120287443769222267941759295671058572588292239437678092934221291133794057505282895095663202261234499195129243829844602790905466268084858544821534133613928968427546938688102522967345566333786500925874516790576795171128272518650284868335586709886391974291831024189882835069260970049923247079792821576537112842207649209354785142785468197600052774509914829602648447008260901316333801830225535418206783328408225049062806637181536958615290284656065008976093312461774099371088812921159008569813934057126333072023317312803715019018714998843821065354874682050736219482661899303963116588377382520094978258088292888596797654413898285955252116363610942080512422321520564662757439277796991914369952603707931456545497747551440196364033615915133377469921044716861170666084877070298004860247685573792137393454434773315881271613489623524074499038276363375578113865285950943788601874194165026497446532440239071522209001003673528107841617274849821152472681249034089179317577144357816784114019991312682837844253330840537917175732762781993303089245294741048823870115430965011928774108604754001054949867103687518245757741299304825559077416142436060461560785260337095067596710419532026023396923812797577635650771454823302002122469985530072720122022751065614628411486888899397165900264998414778987100047074498214838824795597962199144095024220374148731172425951940123893093052655434424344167726826061374619333817374172628128048802120033124907573060810985102301322829000151509644194589916949799401052574809336144366055219682482653135197451349020255216549111295953895226732826073242822904051950291032932710139284416474307207701874616026594775777379334957506989442191119149707612831013657301745034468534580132194218362717142319641977283214663463124785233592920294756439050873001137771783595935886264893553237891310819537531402667062954303545575401888606192834419407631767001960576161395495288200900800422450795123723748538280347441624141524204280055338967033808620371287057567021033818421872279044633321491501036393266418239700274791996726417558483247138063044715766920247858245732057219102364006517120980284553148182919341649303351819029131427811315220533607248152715046133640827603715756206514785370041087646182656260767754884018455940532509022264896958111529762213787637061933662743528793703139142072570116156523014423810479401275863131833958855242252486234663901789695499603451786774060044094418049933872932306929732141025239324932779601185306576838519552189768556213242491541209985784665574096676359227232105309441914070834257966058010973975480052578628509510939000876332673206474482979128810701883344540488461753388428635510257007088809087403051058126979383186753084804018259918967768083015904987055144868963118369297126870111520121602532174184295594615118871087730152565930171453773872246873588844108371471883326229678076562729905392139057995909027204934317394345181051062316346267845026654144910534215989384206219107945071427798188716094928025204538995047372448778595966360159817670277244726668275549303402127800309341878348671368802936863183790318524049255941801883752489306338658943857052453450262633092828278439145437825738907584324094413516919844847268799280500944489067748316683573373640185969544934711548278987460616631718650406325824031563081663743905062414413099141570947742177826352144208177858482465714852721216423428996014472692912566001728715383003439764608983630872501552336066873275849625901990351124580484786658144567764992687369437626233426736140780255917418684823498391053397874177930821328583484072417190578027144962209452269459211624565570323122526734373976614777074103339192186677249421306248858802194055121892429306025479097810345975676844435714178039665698802296200135834687239474940489610350399689940809484350592341914265334657652382963349806097283708095373421538600245914215222214235275244593715811925781749923441496469176633459794385657457718605637069171507637422584062363287708272453238326318844546632550683454830777202217623145503793400053474114652241202907825876067972447207292201143618411331155141304744213179453666916326394195425073877060054924457064521845531987889667637693155226994300330298193691242616665255550605392009615152891948320812968294622553207352809186673227757799517328375978402013723561179593125937275964137066687260847873690884214698989956232920110510986413463965864558939398583441281759514350400379490486651767617804142021705523660469445819224745124468233880064132984676786040308956485070626245868366741161916574631758741129204484394487033497035568789237451194662945195124391879876750351825516198544790155246765854854898883806312957240386315196034275121126055799127038747180380866671541776807647931986184267646426016243269526414898097012166914255157619569853861898308660964876600594310246937753255301698253057897163748802873111428250290302258778384455552235673335253922751391478224359366798159559086752095033810239615439562834711865054471900508022418322518968979959487712572383256082527898741658930055516725783111795233456870076854243397264701752287064288324681787298516872818972790143086439813074426946056293151083500763224971035032902001268924238637205386255852681821825293716744154660144251485528749188884494812012815935440360547917252516341803948502734967067861346612445732792793983600320709160785367556935005262950576387280032600674047439258789857908756122743324360776400923800291918268963113395661000774755459646770507638108896590342996864912430381630481821139903043935120062630812830481530753731574259011751514728388413532739058294672698335447256777916205404203162831766815035718748728668087043668124371383738498170650326395018296197661630386104600457867889548271593651917877163469669119882409120974258726823428926693874230595898553824216465890438953427288518588595713503898359861473402883258434934077236349333078299866013652257972845171100811012625685199764202936476918387424763598844149090763641172195554882119694586889105859214605780748043937139519212380249480409901352414328857164678270832948483832984966523437025013925358011178050849754453072634110176637523776605988247062578015832601037662249813004940698614095407970925667282128121715820119073304092538225216065968049174721801879710205449366632356052148288181045552877884283953928265666223553105218979623015928678492223441211727019956513036300288203661118409374386061609812706038339722165053330814635738606583720722591082247395700177838534848590117673662967236252394508698006662807361637485917871635819391670899822626907744727229667629544842628385399954666789858375431084933223525462218335878707429048425749388303724997979989203534917129200810819876390397631146354926625486329329591095661657212736651437960413733070899418168535203813833571453876274929551246345911604143139595916471092312567623538413174646610643205205638973306891491068116218084841935168061800515078875927538571354250245782699221137336079818792858965575433146846099641698957695859699482588757641566126915943249523671670383432397166628318626216504391947113651642352311022558819674092264394830346700680156991239382656502781063297591985442828997907490256901884446677836382202316843143344574777832957139364141114555354720134166281724751458532820524795592230751644697069673086751498593339865172946161222224492301808741887519399428047382226780258259531385267685561475986342169288514805752459200263569677926440604697698607225559357645183734394174065490823547261481554980893543428703297850605460966591972129105626105490982888042219020729741270549297421667858098683217213101392625262147125965806836181451428357860999223476602037271401593489512191122953202968029172830023299075999016418784286599143393646220159680150828496885327993984036460289968176982630656334649171897358528045089736061327880508510682344864850525294489102414877123314671326077279822720593165421533385947249360834589418602568282979669652408038309379927096373330086695926668912523901647977712711288884400183107491109079340231515037602113619148689505028637865212022718357598051127923051732946333416715410189608324458846494522811034445132861101120325119720171149905676368730086237736824804448733556001097857321531133022858095639310047033531797164217779385748609915032035400501854450757042942479688972740914886500564080531702332725511516501097881486721367486882850101589437353236549746019498618758162548298524082656821941563742250226151499143080828140703570210304593154550035353560281515010853548971103265833359928690337437173429161824547053805344977130052534868818739618535398018035997855352354806968625057301035357922825952919044124071708518083862484864281126610650793805363244281501322998286713548934533772245285020209325097620827615430851505702129359544456563353970570256251008825104877122373921907957258099164852298139367851300416656767434983131375424316702621014631340366054974434661585634247462966309136662251929186907764409895026694955531222356836139592842401940650998369226659595901863508320577807293465681945331161262607521880818634696584508544725969205731986988321469814488733968876006459748418654100775126776091945556674564198889341612676536677598238128747400680429241278254850564420644526088536338745303843088255824345191481270067574951701337544682044582618466358195819062598283002306622226125158416060924659335154296693057497297306165944413236298798163238998688274628425690823939145780649882574110775588895546203633196712499167119936739506898705394915768328656047586343489481556247637003977347714699222496917800697704886559810318406618138171361243658630824758495235371485171675035825722360094485016989173060122061470410490942642393601540419740091446107949657759505089480474531375733298516035304438151046944208376901135159843013897029672720090360056261528742122220251936854044014003860544412047190934938779145677884123960975706015579847689737874377203466711541909652082712920124468145061588166965399534532304895022106384343191099114111427524353446888488191480123197345183209291271018971071371140166030108295998883323928371277182156680098347839617089250581390161409096516239136930413248853579102169120259171579010238197426177298576716684497507145059041774879937428928060664651333930561617075950604986652061035010375126943977398094889345426104980963781199357169051051440691706911560289419926081364678970974465259950353363827441140863217203343651947871421868597193774770657154677340652065086559437433705751921885918775604451820023597214175263205483438283511585046381737057506793987628565081579030983000434626512335511776490713612812650459465386157869695362372308699772593190857803892072889622533854971672887260818846261849321713570406878455939814027169704232574045798526393126523316202488514930981934694824714780462245949001296922444911156912161655741853312165825415933765232995276228685455771686253858589767337548224873377988306832993306970101096281254656290661828663869233485008740890910860652698779437890469938492695127397862254095605617195923903514005980475869236486543133881326207494905217861354237310051907339513106533617392606074374965100334729298232709180106019227859366492925439883562040780777406353722561961856187422870794700707935514452345133391991003350847528188488576068711847484332333955341119710456336213321016688825472178988118301971050967426867201411436562569410433009648403102502684545077437570529268877975051292651958680142316201088466805397797787651583870004693588961117171609600213830089371402902121003060388100847095638122534182790394861873105057744911831741862448409288923653081199959601608128946238662377374405799330937830763759666274723470246540505681093566248382996363808193505409320690725483284813053889642111509283216305736682793021839714988107540351533066630899669774720658241393618619452983970319910134632441702761319629355717833450758782057838329703079181818249820424899052761903201113813933802294156376270669393660536839375019105314444676669742660783447551360870767280303293235413222808488514799614214821134245918607897524752942037896340670831504493324949268938754280958602108325106268076487196077502479135745342556547977387762825741216093275396949574216312555691169050701589652951671300017421348740247492329742409003679827681589310639519802503102231316366837614741766011442626274609030133429017703829485931153994729945923230286600181328367893840616090784298982327146950077497932614651076295133174696200873600109817523564093485963837700419084211680331550659190509238216160634723415674249652671304672689079995024065662984127635218909757285512832127061296762047039378411507641088513215355040244464621154557786114155375603404917167229626941204996092737163946485050969340724720598905465475250509312398080955426368369498751341741016083658668134454117443723282150913826405882171702982875999161847146601149579787600765033566549428397672628026955105099835098654677813560762052590125594531634702313224378682160624825469696562691387793025348792716850138218172608995690668079785697151541509878159131411047529397609262795864753508058576578012697382413770507210774525366427575491382830595421336311877244643582931383587067160064033214117204241690076542056430558143238708615668138405092885729545541326718114796917487804344630115721791255130358658066731778094969367650127876745823863784834662672216895998828603383998782824071651478066082224883598231503814807701156352130120072868662108150180036687912954235494033760158884756928879155991428790148355310698702426286411413549193351792719629220324789424373699863480277022865378598015636673726581906653694276761597464910184886884590994647334293436469032576878385706371244740368961946011652118278592491495172210772508897672959489820563617774534920944481389651807032452069576020809803611082845692084325469291658782819040052949999917246952060783204483965054596622528437395165650301140532769945394244467278142644173877637781834113889426207700676548109015904455851132354776757940956635098531350447937409685997041953116640462678770437031579204857004709376705614666240268221378259446765821170955586560266230060799553561912697185345006269245715800135403047358060647219642067639396749304922655236050385362253923607545637304876589037340911197220123495186193531266181031021031870797606226278374775843611628643608100738722135460433795951903420909066486354976218282958126784218111787601181429801322864699261727817200167026977268413257106315355173846993692372161551988309285549211182650310616231797824716151970779746814072715746799179828000924906787346956337200457604133196086541226657444894456252822753436323712197545485831506045919492427056954538857565214480680218836490798718071745699513765588339421467319671471204013081871939471146786310375401685205453715924298766174036626544503427224228036100873460511310997429221905066912249727506763737079079959952699810008432793438008220605567909016509777889559466967106315272216540550721876672835941431542048671620950103569476847598971608031229282621840438757673376660757210746782532117268822539611926020336433161352973594741423291300932987362461798766038550390248822922613785444483003948621339229801662324423190116736520377485522368759645422007975161671394228488525937883351499491494791929563859536969264784465252978129354641448167353128764813207576329859329602487020335396852623431548198076801245633064684599198619501674713513776607805128954506793392146938109274866196634437490857120021822304553071709673622454231055334096676172455194673169404410812701217033617122938175706776715399429698623904168693794077252890452258009394897935995277073495124314965642439550169807162917872466141513010214066692131334819367656289133803595382839750995462565008423140204492424839880071145443524384451020829064322865210735011022146391459645313434032478933857813900475890947331325604522344602259084468871044361866666555238937958758164095067554061474854353707218671956768482451484682148052404535696089388082956147386296164779321186707497009513884943135614808364292463229239374840921374238735979582332008082883397026434792164210814393595540080407701918925042701024129941725219626200912102967431403264764481412361147422317624897070883643149225990634402540467954956653432633487498867339083493319015465099513450126322496574484178789793344210160690587513574421387412862051400109337403494190368023209924191546545116605154787997534797929231716155634195620264430972650839295919408573281626708492367863240611030198401778240284856036830331936075907398637631667467087064554003720114180583642245159489385305451330601349872531005272489447794225866570941410340985493424520271871906110974126899709624344181849492903695614532632150433652459907536362487145824628277904842776831631736960797035137090839550294884949794938988719951208403712847900518098681108745048615637872924369481660530100127905489255221791502498638144407351424027481221259631350771721690907752668458222801723236633494813179733568807026088086654137881516468263221533655848979878069269535332285956082641870247069940006513593167302932690666885015409136792543591621982782176927444690442556343585432237953293405278137678303871772809203432064038789229814515634459316694675505379657607873480623899599075375606319022519984967456645777113705181486023893011048338656389701575782444486783370842844967664912584516973088047093007844452533649865459234197836017259359826352901916334289638751489028516723514548194799705050411139611341754684857589693672015316442542362413911774684743216441738448838755404057898178847219364792326649444412195218994429563888743519728296237183160893564795158012467013159174441656861920231357079516322298569100594333346937486860434302565773959625365715278589267715190148095416995988174792743723811526630792927870878447810156289422496957679377713769671869962594638934056283172209806334716107222535078595532586191464037940115312163533563792738098491944923469369848373500674429700908108445143466281558181336649046144900567340292454028131461078420087097063329097616146692831186416903006517683424083842215210403687793216261435960695281234249015418341413182343461798948150438473821122202147341653483541893198381970738172582894520418718767749490023599984179544868165563867570440687553758357055075223176666728622535051880881884283728950058213874246355820456915048759685708628612572943316919064354187037083807290485853353032266544764519306199928616890624443512371816359975512847671300736146190461243583133464707642020875839377753149794730327421770050211267157831501603624086283902224730586603329268895480305094917828951335132205924684850747113000254562578229247112486955882940290402588412290413265806258319407650772825372557977311965456420339882507145655607473924717231977563529269404811688721752586061442810322314956500642830495983073585733719033493395719932755648864026477780171146593827288871799229042341799422602866836282751357918921097045654069685289433423650982581039618800056949536732220947942430794080343844871259023261191725410062948379904945949748462771603698940007311847031705627900902450189790614316162158885499005630704352098760131856692868291167276500426067142708833910934550059700308266428344895534953632301353977702862898897955878155743996071631521253857589162419442420514987317264771299151611584488931459732815455336481696545742278579624718351647746120951158825501068002133582548114087366476189149529875762227290806901370133098442420308820018667923434338308643515689731459342547200206051073535091829136742568411463680498810824122462779678206355270426178700088590397984472153855246995749122565833121734519642583609710096660218033848165297374404082817908051918263512256826623539572472382211637616750340397899742353376178314359546156908207673934032601359664729786504837600723125700926009557973088233614934260998352934765790920837699002455215484852228988525534035300854739405825046446511742920234020942516120111856056520176352383849859577834009298992851708769264953095561469440852335696895471294752874671974084160444678207331864578345911568649857049134678760407793693284700050022763441143974220052676997220441567014668224338772121534930037057386764630939102136367412964228906800246734024357576233599408719457019743163604287932286009579475615282087271759772494338096486285323918647914289361908626478092674792156375019274124121320405430577435378298620715447579445645101323520971843209206892858441419670346792279213429949744867108007462783407275122735558692817709745976374016161570933168850057535843521656363549033621936856629439103963150533011439016807509795597048594174938487334357940874570147736566741469466076517013677613942382391011613251915651446734065293893950440999909798385924711889437202449900607940556548741340438001374575223198865236377727295671520239800961222818731549185931469236081276170726126315636060390606139591358432472228485801543926999734194068811823258227556428401007367298695905933594401583488167287080569808243809622246969288146320596276497158273518479758366968574278723211708797823825329190933815279994121764922758027398207623764361073784834825665455015391213525787637523019325561171567307860626909740310701979989249011508694231062465596380225556559597656280534942309861425952468781859938374475719726190234260210695135519664644565116418763829848503968093170324095204653431714682054564783322280535188526324093084734570390924207154590864905476370663307584817091423266054124310488034021150588870245833784041333318643873297876593423580572269664795294008577612714507464550944977139217153773320503764847687555803229633257028309772464717647539143182150767232521808987544129022731766768653271679193166869700648896227103832922156074939637277520170896200295780149889925092380793205742994063668289590796999685544793763673614095737001221892863025764450230822085049878371227989220449051398261000671196551266402414881812427760576023568767180108832714481798877781186005601741286444744230821238143744083136913502359952521578534609661997996466470837431433189697812596422624632112754565292381210402641962096297402345700536529582957207592692223440669590134882529476845858644693689990804536054620410482864853330091952563332306830473820809368215106772373867430389106611722626757692672431402952398615252785533963843893515777476347499251037449722925936337244945423771387684732504595006276782110815110989368046540886774143886101054695257290841207009733709846095850237903947550057516376294650887366044984286663706600675700061464346490877543770160019367463143964787444231692035124650529538809784951174444068721418150432571322408792357469442292927373546831973250930916909586264153773198228392089251679639923736847239720657135157466279435119419229732934662228229686989465332346718887921666577400734633621506998359056281082979266831905095067033756752277420993569243159534905387590811190478735008033440751833591831702449236017077794388615554906710103598767497978293663430415552232768711499782102116125221976380390138647394675088422711423584181856263281931287072032248177473797575775798125141497682604276097169607883740352569512333395053149174771910297659023040635796259076581783277517184596452793691189261508700287495304880096346959007244596905310481998421813907402872726863935787384251872546465256097621585799241539635785107894307077210134126268980280055254957866975814311667541055512833425592836777613867965336975306062051795331285656579597241619501246463227055177105749921137628562905255856841812904651899843633389138312564021513181519351655459751673543071445387828625387543131747168524697721476790873390408889490950375045319123900472360277030469236888420008672467103190840777983132481850396780074368280230935517569402216657111870152945127855827605849633765230975720464491238165470835769538952268575012027226469782297043809355034753958410673934679200903044396341778549785918686353366551656711844882226371035410790077351483140999294604051374682396802750357294736657240450484408240744905520818524931078133349230504329666802634188888921601475298846886518527682279907887014017982683365966556556663050929381899053072732733349313782001773697485339642823026865933225122409525521785033526615346282873704698243181983160338929921886184006453974497298014801734587820005570987589326663958898299496576009930444464257601760346851000981242931557712336338409632284035048851436498051143287564058343887453065161707193175643781177163782930734467349737518455696062973044629334448989656361960255713457966928448367895603375038739454711273073625468380085266591249562131183861711587302893602836425905824955248985355759279216078379276149094126607061061470996712337448404846161124482313102515950280978616757185365585852545279252905016536957818254639902363880827128992722477936621255398606101848503669327766743198602468196790792703038694362971074154362345461602693608120253026630921955856287637291197787773281591842751091078296135542415216776817916486215535098384779176762516006007759252841610259055796617373867095034673787818506187250283005633607765953734202778944222138235987712244865119196617864535779012522693177666378384622452104041821746573868298508760485964078259703027598668726185332487395832742673531640592742106505308798455795936975512613765958785731844565405202652493765654270045295991531391349029735404307529215982896587366702810283067302875438967203604737760762277888965870902623983059174558891973320952100412432909772198759284658162621869930365855480703090495933513414175513025021862861951341457148338381599397347106248104269917519296835263551648041373203103129714048376212108589822285293949912711389803997799102356128342488337900807927759585131768939796148396605911062571268004782679151120306100235936082283893557576889778745583073853646759354272134741255864795157147641614364769086740237713252508979075305795121648654956454951481481852330509496122498780468700569645199776808742735236950856166037020936672243489135401226279948273689664019120300610840724845308993914081883996832151733631369873339723288444216567062516047932267987459732116518716605891024416470649734642828844419711144886450550499866682148292004971855075776603627108594060060277935514740587266376676179347866406777352503604382265652388811583313348998603289191123082414415976295524047233498067836442113748238833485877016219753597966171129951795998626112523835530717734942965849535816000543416860725189029344890030237346787954151319266595943359168877727755051230647198420353425253975417241846368837238575407360623814515218935824162698482844776607552200562537306820819392360353919693629684997306623497205993630084408246205889998439767928409159936071757721732478593589148453350616754318664487002890984394602282930796851330160845086195466798800156382754408238562408550748487020329672345358955247450720110884807337190817682275509985443812709044021103035280813558913656960238618815936889470362822724215723798130776769609846099495234940631565533627910491216373801549471500659482301140010457166801143002232436625147682981285413256076196739273851913200436208258792209742412033462381731678255539094341592487769730504130075762984556162591081469454529134287591283784771228057954935931085310972196043119410615033821748422504477098401538277087153539017250974067643691508718168550295593788547845712866643855031872245454075917857210128006262629769747676793282894721736359979366119604129044312027343612814000403967863632907591392452756164673873669776909764556050942125588959662291846676366252873116628986411634879107542489833687511542954775642286016444559519173159153099056087754129060857070538376369978980662469667316137905439011188992567960678646779505510182935760927613376780500607426666831090899573837741303296072481159752269739811875427327002588593871362843582809166493492432870903055394359863922736609201972174749835831391664478428401054640733099159690397043676169173440589811309351615885907118570866926807298936313886763882747693370677384662392801076736293868588694397044260512063776355991644649828607725863118257732923908668848692818106610453202926413692986120883543412996368356188199793134966669430573449446528801061443031319528197672233847522374660144333480251130516244169602129124343731621589292990368614812019614753698810211050874697984395258182747033572913440729256573392404007526310953712010248623816083321470421987986082924912968073574920852867991080979443102887842758544888266248618679049430170984610985855712678179725547682529936558243133796050285478137296632178744016083462131791036126809824803019660897552122267327951918492219034934497885362819758776984562829418297382351330656572738501571298366462878843156424206368913040913941530611869168002981116616853188411692434038044211169766648143133555246118338011284612392111492176132698187099388065816229940195209951025788301367959090457916958535681367245725290493687257649581101025365409395264116685420643457779721679745903333711882740313231029584215583536359658308557876622179436038400703046007433330019222208221761237122799600422759815508765157942209897462332273876687386116344819492171833818879375161209355778319093917774945517913870430728286412476250666323842904207809870696212863190712646535289048557195636681645576703368906261143843987884841772476431564572612974649640260913876228422791897146831189932667419389031171059565558325986341693619990122555943788936673221356526968884438714151847447229981959723831163707037272018771301677368745765667750014392051909889443661350631771310066632995524220593201699362450133516120935087573976060899121241733186618127639016184649678143428989660383842035788909107063452920173632447141521015298425822135143461247470992706915313157268108503004152932593968509349937032794904312832413012163937245456535423011337708551601404476544018227799917265690517043412089295483065452113414477369219832696973426444696001124501771683932742694926319768854584211221735881008852737221273005044414482020617462596402062745503420022359485082237673174760040856612279526724253768059486428313433212764860775814353742847029667595329204291373897898325289841719605709614592361793819016325084974567438011634654999706519388315300621645901174666466437747944403521967554842499967002739070774938213580580928104016624814279293283228455795241800180879071196266687936125271883154270124840130456760260214323560188869678237018740705142665188101135953848049116812852741013927882783778709938004245173310694364531313044750383653724461210199582516615381662729455073761028537557921087937950058519269535541870895271291152483231754350074504994111048003965404781276136551427843819711358943155095847492907787596644837017773004650025342162810498664016818289686593464277170130279031267686668050375017846433127589814757491132764668831357989873882974160652299860687120278576240659522360462614129318383897752223698881379643343744273128653497335663402563144751181723468787414141846983638771692496693788239697469016698676503001001537742515904548730564324812337835276065186028580119240373019445764060753070340409939175958177590050929250596640496962371500955330284836101084502087223785761598688231476256659732324784019837406592624062072044349868170010905998357263797970457629641818739868940858003850552446055540221707538553107369320093235132400202173921737488772026185420475505972984734442158556177211833658560561749743829809806783423275551372917376035924440753507736630387840113194280699680958485294075209126286294075332338186408246695993287486310847234284273367050579011366166648761250522053440968256634472128441010680597187156501447637791389995588285556947059091739864766114132898182378768341686916910284228338721175773382247606083205845643564761654062210539085609244577326458584905914532696891840307430874877066386486524454160233696379297713635306205806980408259686657818557728210403862426244337306578639957698507454639869574368538231046988352565910723205337786650349877273144442263743642026880174780986723289271247324509835537672136018520543732911120194556384932031401592443320808315230276343294063721793124037305644941559430800768496876332262446916580089896602403950742770841532253981908463698666281653132931344760264361938666621062826572484849781120990083013509015154795774918492306190303092512666574658907673964589599252564207847742992714964730364662081195535932091439337573144015265410244148157305979346703148196880168581622143030245301155258802831325485112925386448122939613605722208621632356099379525522959736900312613719608434661731258162492734517089944914803535455011476358458085972718770607358516444157099936404801382587140430899930802439030851681467214561970989811711613132545529876481788234089678154448289304820869807351610181418157275691741211767443728423510448296478418963113315208001786306400570507963413307507399100743538241445390728179524968845292500137358095712279759769908570531353119923319828957446044770850761472550786066852175292812012343754309389382670178671879021456724045913061685649640272103740961301079264066321587848787482948734107217488446180261989715151779129300739195450841037971155406047562588254761370578217945133193383124981353984408366667786169484422747635221854315869398752687054097069473018573087711350925111969822424191894151457322690869196787979759179657344982360139207073318152139115524645671225252793783539102167612527627478781737807187588585358939995905624312541556396073163279210407338781077561097117394087681868087263272458917364172620844345995943725702395896065524361634660407617190785798483777185430607353221998887725443156306658040228195781424239866358849188672405685550953077275823488781720475242343261043044502655638241292595385896636398994318038300726493501465209663394383358192239950455422841877076964559986624146593585562822591316786117761608680689443596852589463691456265953807643494189079695045129775107802981856210956543504860744848630594224164977276426412668356047592720863434884968667624006523160042987115321441864744080328202887472202546271791414054276121095628547917309087327144951342419882859720759790972276989107540395217459089964537160865036584373683759558453827361229730540370253719910528661826997509608020692614719782396966505195004486850091830619248130455873016144824342389500672412978111098547685281016291384050356334769303908928576727740959009838781699881289929136438687705088189961055738053985794338807918598709153557305441052560795746841055245269891510168696465844086991574871903723127311626643392335325089608478722432204334063840998284440360428496217472696661796152006685221056052058709518628381933308631666163224070529895240503294324270259804698211764376790554772040200715901887939061378717044208655436442132348748154911751939232438022939047795714212442795022635993575063883739748072647066978354162545768357826106144786451077436071950278991847003301465499863038031064578383885628552167051725874557127383040304020832097879605752663563201954403033059798861974244376614748274074266496864510561501355297956446115823050676591027816432235225975442615094717788110767956456574012086580539165070509201041750103907782158452989186094009223951775229882561840401981623978666962729056263846226816615517600530533466512024896919782372571269520539466876303100473247433652750144020232286252299195391598777314848969311893879515181787155833518042392087789560004706031182089576957870281593811796558017780571067182879701469287405465092644533454307227431222443723121919839739192476765663438268071386670045493412124396819750106300351806131827095434872034377423407482367899970891252975487626340372068918931710644852925088886107879229229293200911448557170002599381185919941234041210785939179810904763708666580806314248437186034725704712289569504226562527959713210653937735509933242604000250121724317029230206364028815314317891470111509654442549342498061482664535858161526413721786282121361677014412224441467367298655533125966123545258896354206966526909119701855858182729491307948389751002660223981819337294858210826366160788256966493492613877953987840452708959163114392149727608324821600727921201035381363033352225786202222322716617273825426814281660448671494987041500475989303415795236409343852490242868319099296731430805097779545657240581936629653159741382626488224778546249509698113499024698037168748597206745367574132973205865911403671369150672714756469825421411472628022724782617226875656784848962928843869873567438240587448709681032133914833504106915505762323400762014029235763011685900625190623853932397194348156953950117432282519790116565630242698803138061658425138689458258144468204710948599668207070084191143382755609378325873281974756940350700584006382066020586053046102572858368580710626834951329011751125950719989244792946016445672203804549620129504026664490121936234147329179214904774630829720776383801649317680750493178863112484023394307967366183874093398593903046801018389064184430570547096105517563033386649460556512247879295119712037321602445190945837328186529397750626372306294167472133208101786321148893277459192326592476616887899806378204791588245386378125091439394943471905305446093454256551453894969886624659925324465554508229121013395399807721854900070839230538431075742822549235550956965291318405046936322722673109751086622360083296130597542605294199254330717182380077922752577792992933561995138948895974135558591045976475333621765519078057691341976876995101243873065090532913854989597547514279190807684882994562943492227480848145152862017516754667414390656406223582142765877702721307602561593302250171125356917792810200685352454018144630424342203733224047893747586030840095315106197558414300410370005280595903370365657944755250037264420375397068872357975533008098517661519918402191294829011676279557403924719173390853533848909919002791642802211038141822159735570690505632872112925410713088816084881019219221027842221655657346273292245730274553005244780929084291640146335728479903072271833507384644897992171846809332762427268747156015050775936636488175426480381679748519282738256673955023135770170371340495249425807815578535149182247731623636559370109803709165088503098163194157607646799227707128214594552484787614480829439708777544935840027006770779020301429525062779580044666027725673268341801719607699827041582979582195311221492241093800847151846807329249774494486476870873665949829577437813172837127098019801111524453329044720832457682025964792684471015378377493304034503561954472197952755406339556161947744180687134431314556334323012798698375695173170904149346277947940751000360317935960499204692450614406902808592050400257908348343257040216178233898048698343599026178437457323094254040033473580523688275029915732239512522518781992792004938041394386019627876145767071053582503192117902900086332041182672451034740479176884718501264325776892272071814969141431206845838116498490526199881547769699081866739102745246730365817768860865328251657391452936670271447502182087181671120868577334508880017554410168396682277877800863366299453008245227438702404159243455521094545049399455650145147288298005274832138687088044924664101051781430109329648368390479119001899228744506228233021997134886114253539374985108297456877794634852770474340057571412265764956441849322901445940777114056470513140697849457776311448469501558959013402716605742805633345456888892722673303315589075540314189276608643084000333784987143638331073256932756822643909181434153400443846269663454887846202480870924999660144157947592110453878004419118254083689666480701314034291195705284312666013858557700469998900613547754173063116527662324589803017823257513713193994793840028479810976937390260372967946358945555263280649774161662768878732976853504517950508790462977538995678341858121211581340281464959044815032492883917658489294313406420200345042511983413267511773033131860660515291505995145334274877359056568538511027347666918717330004069066898775898494073728196613485458464168766049270603288426002404294879350420105190775488469859204907729989295443607825293238345692201706784837062905017547936333215900338455383225825204743262532202441997994345455425845015897102470879050436333622704881405046501955373292023369497993916974619650982822953207473239382863043219065510027938346617787388598235137447966493519914379422260904536628262494264809655051318805825209017987698750450618626229254176586039942204485459700854345970090623421999744453465439541901316370811575637208009410094475861006408799174133284823764968926734189407733044270214142424136703418543097838149005067500766053052864481546409917458780212598241746479954461593445091236631112133932920693088471269991733761943541348024469760447654322381170102755271239705871281303556492231931727426988789275480399228909316774165674967110651018409328714232348796521323862376485475945469842596712048038458421380314202531692858038951616604286160236024382591189067148826678074758565009232865253372567942117675267436074514741289902698432608988691829880020958466649054113114859977522605297764249074466391770214188261645396442295663834753133228349280480844419212916203769153313018206780327035512453614675045000374097895497404510496213034461537025408178279654542453970567205089032355616974998836446305575970454634410920341461542583852540866423254366604156504101030437140917677758551105066037082307608082234074498597944313530391268102509121327843877800697858228571448095019950273660719693512333632438774220914805481446509847408089298097174217457441741322876772632416881280882599375870146563092611586299073487106045484173873468530001436700941550097748512252454898829370471193913516863916935988188826569019620290216792228840254502494034426019158040211408803054637477563773273626634516977863401944163086036434727903794954105890031126073685655821102070785060094330032639411940685251210842121918728705818776511203382539554590736720150382754520014587504111965145555317303124850509843816928367887510043566009146689032106746426211841069492348678451228578693265307565541132532856833543956534365896717559310350647157608540867000474981200325107705211790930224777687934520897711730072848954505371262115444338156080973800333631823173875415465624064100635498688746130446586257423218003228525690689716367846401023923288376788022017458223859003004465073344098795559979597667497531698014037591609111563152295006640452365765757741869150840667470992764102829112113600685929117197137889514751830930451478505148975272643963095545471675291251086984844559879296112994095703111109475314386721921452196028786496110337048766161354765523590269727028775916915463421019152631237799056071950883522026635508312869892843117064290684382409018487886430327157143653342651864265340290801629140926364031138741812174850922209182648193788248634931558188443909462361575343544163197638391626159995544060526229059550232648216206360822827024685884248171399828971120215049956133740953055716470341723627552768281406564361324516954556479555380275825524202294233968188980689820984973924023538376074818664096821091859000174116510514097876854705286664274903263200968863516186990440442798324837663749733733323118971583696152091033438353443555838944208945624889599994402877197150518286477040905573598535019080181458452688197273441318684438146176501127762128095954460555877689313922146564304436394067475480900116079106626486423233641314999058888442716205548026018785160247477620636070772498123121811558575094936747266582595875622031139019096772458640731520586583380368942832517662060129209749212492513533796993279172610712397821465796870019578656981589545612080554438264364205313812936976718550701493228038473749524161581503352019928125980071641629649509901419256373252538312333084996198886788352883276902380754408254808894182989074820533896337647074677943785290183092379681791269536258035528674870433548307135101118263831147565426477979272412846102623745158157541951028373911546742511700112557062657302044047745916375448282529223889937985688640647467072873059370978812406762677948373755129107420416232385663887664437558836935072313403538029601783428338784101994094482464337487729276391422918696088426294705706459660322229548214513044713843766390812218562323538865271740543483272921342819984948667190795853461413243102466201365269261266860762438113980025346373451502222485311149220348223831007336512749904869647514426394137550679568967071288583086295569871361408021450870321901823688750746752251624526225220058563812026495275040788349490064519687358717474608456178216325277304141254902596073740498222454607457124624967216041665658618751778281377394290643717271445797893913122591621529692635298810799172102142885334632161336513104620475417252154742120579594614384319924591757632498659789269965860363515202501621367030923727296845326735641794495186354496398068915137981905229498607067866457602982571977626448470206824544050193219437343083946466133856806561363821996225012616764389459060709105566011939190526631528331908756637957352140889891679286583033161872959301415789224283766585221247848811056943421098040077210281795076850773810651255322586764281052124187582589902354869145033253608246662802076750502389738566827197858774737735764771215415403126510016347665581968547906248892860108590781230457880720487335685162820161890708177531241776189527235457636150743335622831932524561258822495844341358534447878933495035580460743473676972169235517791744189310486500897770459252569703658801644408300619371538644888392350665308236831190680211346517977265808946317457031281305321253307898183219680114492769593992886869951249859583357910873171216142292048690191488696757054721671826797933674739957318127823435659553737934387629211759842360185626202663632884402313412319730579826739506716609278697796085463222302368608995136639057570450249339738359581377373541961476230710949683747456318521788935296432581650888357221154285100178685563360480516375841282932650300233198964814800259020906414210411478112994993180119652197132504933437473255044051985862972137332145609498366238566970801552473737308556935230821917929357342818375797704270188053207182263815386251556816906171458895079516985579605756312658627259107302155878983965810476998632107595715668444404867384515562377278341944013579965077865567083612301618660184001281961991152053005406309124962663435158944347921528106554229459178807390370099804340092366213581432588927376750317924704789261997856263227116916940873858529630789520631267605542927572133442441986645436155778113694466734548765596004126624507582227583423397030990330549974125004594876316280168083445031338016514105850844030373576920251467760955024875434633159198045216924152946357553330386964136972039498341857985625284750058783725094096889488963253784535364651026932616168674420274693607582789997927603256146528345785302816387295864177444263533021336698890951177166384500308525601482179853552644472094075658396001871236013921958254093614960249471249420542229979150569988656067486747636749137018033841763465186897472761262960868185458842840046002703959227536049716627788176442415855563123206205506913050619723147603527608840594360201958772486546219114335405274389400137959759594963205146830532794240388226354809906578956875532456744881545228325836066014178496155570239110356407724428608793632885403398672241182362874394781232278924209984451179178532022958300163752993450355951003074677522774581251787307900588706363725612673268047825329071143616647927278838069744464098104430198423876194111724521720737392386024635978268886411475316228997294666003540289734006950871926932444202746839797541359726122929576505421233477050404509740187585144102071786718809801081294110868568403300364759117179356535907641140205514638731646664670868292692417886365826501047672846627737796076994322161383323486655146898289505631368668440378628558012822465277392695615822211328645600432823662902907666538595694081838598405379708498442450209095978229410786262907053637827279292249183701446688601690405908497268677976067306096427704575629790088607057823153123166940226718095043026318036776151387566050108567219058410279182710430850486621717520426094922591314413478631827223631852866629223392579452612270090895913689824968384237251400777568753199707477190138703021581023458881589691523729469572622068490477756709029939581771274108535188467758821780511331583096473876486291365102636730638269327210613526709323923517478836111576128182098630304250048886078467179625001369172503050382852670566688081398444919908922191133482614796960444694759951480102102325907963294149489474857498635574082724586026078473051935350577563911734013809823914470909652492919820289182024538382278202316596020426104427052910788049504310486459017246288156507184492540576717041714736171748431988084406861420909906545424401787592628084836142616793502115587286601706481612271283201595060634702295736262542391324564714217607908587474944130768510386054533119535653672370412858010987000766166238466316097502184645584608419578947254850665683106783414272210252930728528466593466217672877558652069308504465556435183929758565910296438676013770607381286029387685077170619880442040186903839302613263965485992920214442011707809435866949690443313444883932415644767241952373463123446050843372852104507955872957590391494023759054816739384414269107285084184162990069644142594652018028655192958890284827186766811850490448992002516033806873836606987139003320555900243597452717520482800931353919112578500322922476559322487112272963690567465793500361197552130477108529657890872530998239050413365089060112684039417321942804267559498223845379033040848890916948044812099477100787408135865574226507507790263030761774418812090426929735049085760509647258724748829931824417371892613436673832114690947302500143972941570925780696508431875907932506626258309292938388306192282829522532845604088862719375410632588153006900065548535095302639493372825029863430863959855531788972112840190821394505729112441725726934676758663152805446286976138354303917629256544409286196311132238556355198834198886582414896514130718183194742476666836384715166576546008709528181110368500019706940473913902616995604567611351109093670833608955134475672222405583607654544402460033445917147329573520304158521564048721335800923720270282594013890460833006700563161746373934491290957437461752170726243030935862519637619429915913042483734077380832559084028898241816466143763461887566975329126234369675191478074039634312723758673439173410675824681778163642242211304539782238562184681778770717280643148965100557767878861792084556814701309635418152349500381402769492219912002684005038169625994914377288133294974642927353806052658276411840365089197554304940109666581564153393762436270528968391751898672612547293450263390445322659224063538701088021279832397755066674875900236559693046752031223455083250046876634084095870581653659535727083258316844720915601078425271034727164307877171641989826169339926211446725734966713140695562311068223422409852423493998349168147300910484533605504685499361307774089755556935183930500565077165075574372985860460974541889148875043469349628657144064064867188654851310425021563581929925326982369672754915914277080798859668976863408353163684245725000911402708424886235058269170303426840476397417726773950369927586516763038858512573766925005143108694659777854563966166292916442990493902070327962176152079043860426331300253877419223001923733728383799123346493988327819816011437387226904669465851224604140926692186451072865856224780934013175056315857995565217694529029041003495736094052943076189586493791043651142189736251342814586287902241544502573045287462080919459107263650410480857052783325134655296318215102454876005655207379037416757418765355371548881146314917867534771709239970144844922886472623917860794087527906498336836783119492857759878032669972253302519368085889400815696078192001337100009676394723682917545484907372037745677327684094622100900124053804698945008961025297356744177066295738398761372058589352576445070859374555118807138179635040258370514399089542433415489544510377686921262063154554412394470777621023120313381867009401324571819031249200729436598468311519766825252814604792768611856309760283332590008850134276321052931249552201992799646478520881524441906596162645320710130794781413782645988291236970581926667771206695387206876283212339849026452044645692849128745781353447556974930706057389624986561992010559731431891885298468447286652948180866978922056245515412003425903228111618843402049958037170509160305129824538247690516236318903889723407864260331960331464971660021821929742797323844839760503023952612874605458523739902762677587836991715577266533289209460483126764661884983985253185518372597303374346007477584021783203603281532985538165254774512179979037065667565925511048863225561810021396271088229017383433676944758484369117887396871822007434246861423336731636125491310129131928808465263861413906873392410721045594199329206715597633076253147254809577072890385067088970117431120028104782728217134004900231291819725098113151258331332383849894275093204808893437923042868200876782295830505398604588667355162446146672686397069316867961211406188065653571123375465526145939303524692844781487014580829174129291616156208240673242954367169133367081111315154267755896543371239387967924165988822342007101737312828213948000386117359016204256239307305753953010543902778589655536783885746224572931516676378552268644745789973574358900627953534776497845871322493837180191359483371190374875962228217632605653632671986364847594461534143088839824960941676307173139241134188404934598787656199923965529826823994271695343028176605724257759988822850711911395311454005762775874643058583475589855298771358195852178936156130074852238902286271082782624021126880335521121016165255722347995094900106543209977879356394840697447110572229487828918132838710668102527265091237784000309608940544034222668302322753267194543353717538270541626387306398247214745116720922944611171251679926279415367903926509101811207837439662245050930892448080112075571895303060791909740650272670967000504353786565471824593900137394541146638074086377012284456452043096896070219663243310412506179621022754202017892174639115514859842198000496467709188886554542321458078008949435426048992101652899943906076352102591266071496765717817306826078834583251004988050449821632740279676317057386080736386802203096205193996168962915036450312427703580848607881237663473119075493925723568235641106837971994161813621224810261483735014794247372333657571301910405792280690615849622124098786242736771796470456288763929433198563236437138769292910770616654569094096570510058821898341578282701361079227184116985000448863080264970506741818156539742070496367293331212047385633567446884731978051840091744118241338613647659344420671964353511712094627075943084107699957154121066524110659074066027202836144936894128110111747396054823040474556367425894133289580699419107296125921176930930162487234338729598106227520350837422292281242571244171532577606095923423028212093181558568382755983721229944607097566416690763040699211395323001545034361409454918295926745292999616654385472220045534382286970950860408082386698225441282602821463869458901572417861309330201591364982300522222647297406390535450481636147299886478238443759869400677538876221524482317768691272228823612083110334382489306607678545678229170746914556420060609628381073760381422910321043614012627205151322548038512836420940724612898847599313273667969295283546522765188656496526235373711810153888662444323986953414980281451558717327695100181498590029613415594089779385136870436267682398410935055366212671792750844711316340168848914136049592259178872883217328165570929053958150936055842337951545972122551224569596171792587388724433793687925375652699742227277834511274026056217239861897186550059281963127711043644833750837383847488433000156733790017613934821955898057462016417389486856594963405608090756826138320865380378518988171293572703003588845845976344614158022740878291997315891529699865200041171364122787422644490301745729260428206432810594477860658472618097017972201257644502078164078506672995575661273955877891257527982561026787009114938364879065921458310798868533478218733225175598456255745528046838740265711698026139965996438870268377584622255515295192131577096974487611282662069788411146558007403458911139478318342788433502133549960845017001842681515073780032981015542109268511466458607645219552595992253412369687391629097600144226828037723890133990577852678655332518258993215140662031999808734872085518758673359456811629539131925729704745274660859339567428838666242309394913843813650046395577386585978867897408167498559654950695063105708952762874863204852336177127723856618162324796729260642278050423128984856306499889823051714065111571870380500396585573598894992973472656538537233341345041378692730376957342511448654476844203917951779899507094520706455137391571116824628463132282276396843442269722280082403836857088969984479199139776179395152111097675688977518033119123586378726327748584859257899748444221908027164874095216064366246653587294356743765829834866485577227580268420456665865399163627927706419452173647250989985843556307062435805049732635331941072147615363425804004977542554644485451259446886714819827946316697088582096969284978242057356488680155752481537049571337510707397715767690253145689965157568029637019439975177905733218766766108632740462327860154021692078521825555895910983985375341823538064932323196107453284944101099972273848854006912596616188976322632082677434703363717234089676444940585879388536324683108028586840222615966684638017415634682082015985322318641025288410448780469666452278280332986686473435654294302967754782098122585255109353257356476784874951449686757386417994237787360467371752734658157161957655999785071031670229947990433547190722641367895132928303051799664821427148475423509798820051364211415255075407910994225696771386386855729986100893918786222160136797267116124856549566866344851948608219129705745648440277496428699993840327578758162982430184773275466818683400929580985046385339787688700604402801566985638066449054148604436341038376236402695777898215377695109899990659046683913871648774693579169651653063887082216698340055043789880967399195780224298947894496513668231773230609096760547418870990992763274069097579407100309145374920073108257481312085853676983185669808276533854555742359334333001162647823691518852950868428321313392757182031558444588831319708827666390856640345646761398846318633313246922920689922849276619830360770305425904475728692915521673370632535536341397192534254623736110442199313492989709891154672127340574828271052185559420070466400055197680308124281079064590391509920421634489837816675858386508338252781871268711954751517921195110587271733681264473535762514955531802777832469928870607502678127221466341382549667097618003282414596904845029871031331113047975286974834475921439303753913064481469442325533779105664631995654459217494421800817132870087659559520249406895294290948501192681705045043462606366790997661996226042043037101247170020938583733119384960525057988171774825864840634191138993867355855532163429432651627972948628945930155519946327991250340053672932005543608825118218021209478809573138204935626271280750968882865410190120878190394021568513232844145168648143602027160276729475290601977288107269400049475741005509492043163966094270365561014311537703427628879302338307070807686780211020949075822233633575955855022502818254576603535691790797025965472040264102499584204975481023829742409623446060580442021312836607133241357677383010159686001780278497053895006630128810678371957170574985552033223625442408577927994853073317417754742510176083419223073517401062397817858189877550152280192001434693718466562948838631346300058225732428557963946634987503385525265738898105935932628829964944256583334384927549198290382152826161119170506442403855576575752668377465020445266843451771757974885444984628537176588540868905769798948942255346808262907451557543811503796043524557977220798977999194702332143566139581571779472417339126184937895967340856773848621129168880622811867882829247904587992516492293790646276071159196555979376553348867064152636008340380087784177418704576511347840169849931996978129661458719731695688925636520602366523621483178013261358813458863798161461396359863803132821829511338773224458502345471303585273570604875846877378838330942377279409705861312487363339322193787163620172007067499214862059901882079601749537363693502284430231639287168370656133984008020359051835202282432878099581311349606685837704004180063466188024391855109702500298693313241817575236397523096488354351348496732558669502881134994524538674883083162395279236974240275090709332469286864570074817828533808890161327561095882121121481868217618472111584528753363527951781359071846758843755111415579041363708015630520617310506249549350879592913331327729457750388215217001245954404415104565410316006124718830714617080005308437828090668224162858822793432117027736057036268531551032907162671334195135964290345324661278778928566907556923681203105135493474152677837143627560143938988185018072590245656574199146342936823345082627130823890461728722391697669200388040029909414676420007205084304448789984950942264575624778850952017397934193395895911574247925533945553917275528038785262127849424490515710622013774141455932551131152451213788248165941661078882346798870123381053013233478498252136526430988281660997928517045050558147167217971346709798342036019699969047161621241017489227443488385367231003455909514115027955912201695503632171473192102728275313117849398031714632415729084642844339089837734122502747439317840073797846562161308119406981382012873757761925954918752105319468523318627939036634416461351186014070246962151617486676572062580400834260977000527196197095824791092124646489806052937363940647040330822382849657585684276116202878410141115160975912205414378084174826319831727879293636006828800569724086166925699950658579753585511241069504597819432347537048340300767741724403001534349101606900590009312859010237412964169157777421787532256146721148727311577016629387081109968159811739796083228743675895481767437454207702707013789202383340036707509489466125626358845918030332255515176364038632046020840980558631922621432205404254501739494979566153748067654653208192875015875961981067888027471690789237733917820757993465826819430715905233734106809159241261309423731489666838707406334068402629192628582011663077315649770837495187692012437628144499084392459113057502133905143376731615528973531729910077386051161719091368948470914387347705759709315039550636226488597198636667788835432985499777336367916812605304403829349147536826457155867591330522023379800171905871923232769414114548905705986432233818334849923075486541688836223571771461444591187832789278093354483139500105163225027005892726350499903223534189556304530563937537075228127089242947062975678075421676166903901068357039092336764791482634600036013118389046142848424708490313703101041506108802334227095810195471271110714905156480903679341604399892632467615260352071052803858257779773510904572798690570135551029190476810429311362682929798231656214230130611320411683181907851520719852728472402276593740305202093526043556433687473243679361943854965813066734924498958943460159061577002226240828358274619081342252659443161720006158062285213827519819632285827673171768528286458304781999622715953477167823043839694747001758274728022672553792455154611087172410773456104364232372216471077216130664500199923350012271855263518446797976947191471663526187031256209360413948789046000244801615871077074741390333339670185248284234068062084575874667198276236185840285456904571945656692583154466766263766810607804399277383665335644905686170548745196195103374596072763714644049159977585854532747877120600324883832813244925650207472743929776829149357506339454775654940258963791868478755154746837820341463045281156653377102395201466607073246484199986805716735278233656282967365161559381715465921735184515273225198861961606631301089244263083070595851500397184964401657480647924114560323996574108949015563477694551095950913171311264822603619075667802409465470670453776540807479984414221851237984543299910688589616144175965953126325526382453321721345712372019215356036870533270082474554500922002027784643770536399870704276781182167852143493945828886179189143193579413589666888835584900480440991675768863974427730647638021163020426734450085238785959078888139739663365277565086354020614822778046259455563779911988768914741032663192838140003754271800167485632120199456314672496195501514638075589764535353518084601966682361410519702129790335174846038476517666454462109075049635956340663404532004493941065740535440195772611792252472861549440197242275433640934842178772933087907758734448980349027363835634950654374342454978205000773275608647429896799698747569429866346221118470970056279577565328204754886916904652850547101024952092535296127653890338357993509923467865165190097790848294306659734040870663702631074574471339266174300549933365909317765851369242857407653800617195117275674757688377158128146354530132398080501797080805469620939966743648320923412894025884354177044030425933911905228706879857802745376162110147127788671151919932797277761045209962698288352849786184951180860053431057423478610232603898641221308026894748934502401370239775656328277868855218325799721959618374686596943281801075741392691092773524632117196747923816854058318927663274675198938610949007304762406038317745683488420389283210591207753785910562223520028266824383633684031840099542150998097738559397491597939176399763925535511431355706775236309263067331399325310075185411961020172313939334818523896414589630293135088588149135517554205422179321548748691606590667439505601399313796820518294458870089549201848998490677176923299579002790882661608833813665688234117823659452493975212546256534658572644555609493932671597361903157470968693606266444706504840745498674308000098984969518354026069754270175568959174057613123569945971322959676470071951725777643791712101096692709912667980232907149019455719927461696411782132582385513341544350289261901783845587529226934117590536225555906437331744278441084597187569110984304299738678258512633661506438870080577702205647464170823327906626248746859028785436582951384856739326915613955654091016753643248034178524273609922884153393303335506096714201221342669669513253093172852441488220130858759039395736032218893583913897901994240917274959470149207083518082017076977000326319814355934646385301321019557813096341013706989126150689722018336451852694674289255763107576847999547552791506311723726411224912050970224248116710118571029322634795505447449674214889000647842177010759985131183885445787175368308217151926725776709890701992695185279647441825981207140704819960992129610330426746089088918210034354709254062910734741715454660438804404366149613926650918117058974524450123330072823016404155060348543944638941164675854199198847870399155091366483485426137949466823501286243230205499149279804589476415766927371811507288119892378995609937053037068751517327584313340477186288061973509803559281585272229722427250091192461041220230713290210443403202733153805925683539496234781531745493199445325379735083009786619018616494681999636612767436344236449763683869954356494008459086567601144258044652735062235708042410400251473000485323047594292167466202631091227735649628162579428975589447792374432106007651040500999851712294659902109061299661230890156872908000181492655013486594793619970765716896331184596398833671024120289590671976142689491719220741353598921786667503062119446404145759703666874917635404025894301204542750408533862326361854520534880052353487793707557510638263389094326176058560582956901190471620564647650557902695565921192357378846179101317254667191846478900406289469734975068025065436644785289699020435525332105498455557066184788864719649217282264958301548448489739089310897627362849365008323638448223850064954309316408175483682764428176904324141680564797737269096283619543725317724589460143781707663333211351169960633309265384265291919047620453227248139522969770525844835785254259786939150930490985014203428575164835456279733995156224269521409958213747330656287917682254535885306792853397270442300273918295972632823703707988952911119278854003249445826014877861082713804538233695677514495306916543543600911844546088261060611065442212659750229211091604623345320053485105943553955531217458862546919814603943112322192253024918564432264456502780457525475590614052767613536809516402573254877791626086989574728139489179512797419402231309087110014348604460335383601345330543887138908880585867902592998348347679313307405482420558733440137994045226829761005030566180843853178731446471502008662172307583672301944861921924749721258507604368196566645074263373544186494647809140439291159119019805342248454602440268952884282598727647453859392753666508193668062901632705293331466655363559555321718934644867338928705006093446927640894960700499976233351358762758382875858323676908743135720648472307153425695166017846808882666519987112630486840934939377601029030060067783828195447683831621146128008138123612414902387935008096939968162153834656030919341557602130759767907847036116512742336832432865416930565739539282141761121262735929332893166481291941203976579879937564987836264639665057351919635636308445685773629548984679828664185298999994358858832241789876530049550427904381165926603922693088726602286084611699964893228389714803317209795479082906092391834927026563413754128784206426827040510621256304533502824596007336997167668906733881310506858764754178094849835232798016658149575643840389409997541664252901515958330579908366847696088499553160384104599710184785716777848652892883285484076658770056586596695273033163829739077258691733765509122496399121599536675241218060209146221595583854125076596166726231034884393437574363846664572595409086644551234294725906466836387376267977210170967313663969844992198246352475739026564195762737035378554917228051256310139563858662844069682221860163335679118835679354792472856370166127665497779367775220177339873190478419625652615168071670575039175023258483348291441953399791172805167933485152206116996263311506022488452984203816144058951927589600557217267358938810138726488038200032409530303987113311602823026715601930414069540332976206952621917026828694161293468201031225992557670387639145628688447383758983917471085333727095263002086572231073500746844851791891099416780034521082288594274163974815216347351506514034524486933751958469112692594515674762890110815529029969294851294746425679877436502801980564189958601766388900270530800314095703241392558747496559584295863691491483321412057470979521655758650981532038143257031327797868304910963842823621998157609910343990532167487020268758737700506099986464936554218753597742090887645217628878775563661206235317838032336939408112417454877574074725443346324434092118674759239853526243777889429320796156480444984468827178305861665611578972332267304751660340269538724789786809580679035859317929561605121020165213257127485270444333793463693616288170778473432370617632937298213669050206413601302588820077008100180959898934844276298614039881818335828128210393773127360247899095665467057420989331505235341973432818768594509452967252039672947468539233106966360076189522864812214104149315510847006786407106011186570502808929637476383273089834405932226768085144090024410059524664166110688465654569717278005924606292335949014573349844840956124954812350309998920366914548151760064024489518480455963323261894836786195095297818682586912118581601011104468248306426322240988064704582969348640414244928518352450565252611589230256204902214804420871691895700420532318135754665161723547254294452082755823388523509371156857804330205671208613931186379532514118706097879752225812891658524683505358356414861655490925883670806418775450550392323116861540288359031522390702756935061085384087288181714272187905188774213267342138817038373814714469610529386923689081801936606969117660215133106953831870432545393905835779026400125960569539689483056154934161149873981205864941273087036742100284356137663955443773250581614571365809055738296200257599878863620077157789077650730467261141253514709186146443032551085273485001872031147620331692374300977099703384205832267377210599891059792249419553480440269436910697328651569978596245261104637254532273398662211828251920420089209639101784424801428176377742613532922784654289131102205548433082831518092227027751494381527794306263378362000960940747995586120434030701235394398630669903258913630830833296118750022986158816130003373893619710620770965837553444555017429075966814194217703104501050769071798818745068488614455111324843696133703472646247841285970580169599962727676335936642140895465826557495125995593075618786364745093459044403038080420175788101134622867905183697711171272473058253544154356371425875629219738075398127959122626498971166402773373117773004512859256748117290921715649293409635610050921543831130257251710676667258316616258504447693879817829525953348141323189888769969577075634696486613100357036113662451756096539457247350094550458448310588196062128403290179482248483860345725443584285589766462075586990433523761345379393434205481067380238394158953191480021685745897584168861200815144916519588246892514545610674606470831542480337868621920626411704089037181379963561762074975975601742375611803121583201509191922943509693149115291181123249804446903226944796187617170986344308293292309012744029359633911257756735375277169372978776701409265086791887554954294825112159128021372669004641478679305040069224921611553148644016297450431059474608777207733682218138063494812850387097876985952814461531055311952991854128541070426664355765011952491821620260636817430153100010850432139436091123042359687284909051910818921836585420299965195378287142254151434828887628943371291869841702122459146069948333976786883178468280312295433534974330840660898826432314937035291811910194398318600258155838661562742152579547087482886014377656088878058001365664811624686671238639623464012148699126156669307326972166783573019091304715191300006524569120958946890691826416442281286435145176939034499510225836965122564358874873769192029775699313458657085000133424049265245723281328242573557904538455181863038770809327288598811391283908233516500206576011139813001796600739665542820929446930666769969966540451805855786546108029706640780474401220876085940509451427506836451787663199460488052850238871876991800062273841491793550399760410258139092524364154444194364842176666340187716737515897846793631987011727995055201137427991000581050704157519622947355243583659203582718114693511163672161334849261455646501801933470986330921519429171207253285015999309846111564734282797501865810504299317184906867851540992145523846405753581239078419092421026739138895945270645925208929030498648411624136744135165816517689491052247801026801329096167259764846714104084515155185772541181329971416287631626285349818284533984046888408927148600514821492465942272248821674156566860818740435589938747633256274219153820362879768578810742061532649749722659652533897591097098000954790930240185045554675312249585292051035103922757447272059532893151661875532469335034751370954778623961588680093709553556170247200361022902448119672801626129641800945472937806856070816916567170836001819700136743469787499581034927321389225076808781756964083803363371783750711631225928248175106726943799618135386407532160466960459601597741832928359344154588316306796872181067119865011599383347363620989636089285330186032374209733869135670372771364045440423757181200702621344033338603254292641219278662923929709006366464368876925046383478824423490287649330863108072009095337789965930945411722294801336512770318812775441867109730213638506078970979285127360963507307244264359413250035326627349080084315508601939476456092664793175778345834601861881379567405673592636911799580307133115434811846535100553522570379366029109010743763464268771999897227721613590817371005594316572518867816504550411010508132400868051784860576590558040459161913271770827336027517862530478137947328485437072606461471865192240837628044362617244055516682115929679944495079844300181565948419646312532898891891193310698180637834478677703925022785014057995886575718312435738819190270335941153878252925316047468105453704081726665526578366941982126198182757339623535236418864591973261808654592231548026186016296668283006806888685897498816835713575385889169328364086571633974122919647531286747777850655989611764763767510062821512411748734216066825475956529737398861930571755563870355357353610657357038204361935874352752226074557552042778955101762956574187535944928587967749488010187411560570655291935328350106574285174577009027609172763467325812499479952273914340126040096648516249594118401697271752171386306976004686764512097960210328574647162171636720179110910201809758177591751467755397712984619146959285326719919898943845901343361867768401894366862618935805868451288900146565497509886406787743276153490054553341151050287153999631852451427235693340312895369745260572877952824544579935987273897023569615329890985867158027198844277159008741469619720487676743133470585446995310770360097047107573153960150982279991129936320014420941471871609709152770338869802095967197354135127635458172566155582701105346401695404085310126873300177135434518630645039525230880669666662349012919077247992226555107544665398778326319259408801304507074420180750811699881657465165995397895189111037985613466739259171590371992453093006632473845686181972643221649776833168668530794844171841635304334444956715903532201614917699968279604969321058325699241811624688632049561441098702440521555746841362313032784764063658470996090305412517912450226698174670564932576029418095318065407570832128838473823697879146196332230537396974151876074523535152988223208848271663720586747668852474814779377435120732887824897913516671880771163357463102806719016798579321356919984862558591757577639533030058481767975511416150097114074049745483081204299888910870189915075226950923051397658698044150454317311247706698560708635068062148805957051557273423099172255544135623397708608543195143329227108775101023910507491530877360710156853709603650628061432285040004531074646561225861855630922873794131095966919266060385386804748729775580717015790858113293714432975008690837752633930414168732324255844411275734731463375443373654428466757163149334338462996278205443567336320322756347563549183056785940844424684248698953961639969142663132103647461547852521710339830741403431662997039907966785523426218191539683925435575091449806833224144429580922328759520381858181562007231715780295208115989867246304723422349835340602690670566453030201166856440681778596262040465291383458799745437350907120349061275221992533221493773282476608525895503832797405113328925534487464155455156972824660486683695868513821826060778498348768188384012907915250731426633570874841082429199384526875730072544315468686434742907089461442580618360451104518975311983076222462497245314370818123567249549581501847091124528267302083633602969880149061502312150983582492112914059161009816105649810518791381242361627407976148890412813503826010169870852905590350885206575245001355153939462065194751712527621750785004080699655001157473713628573506454712443840182703441162479248843763943607481674092548502182022719179168732892813466861561336705411016784959671918393816795447827792398427819510303030442900766045295872087308051247014895089561389965205051338142534457136658765239711567317810772306019971488361104287949175625650677830025009289140952072380514576739393011349442913617225325708492165328076521503679928421229251154767093347115091898427632743465821662965698978392970602036958815525731848882921776280245687650226202264173612687869498253683139408957337085517556068394989841338453187653219074537870099734487017339887625994084803109175218459391548588294358624293414481306433166737724292105176158484929570300097753292666701597542998767849107272992989212228931900884020353603023046683920911087058140965639194958711873927001478565849867794220007138403103344315275369672122617096656674268465259642375488015944205220974394645395395916665335664671536699855757949932480657771837442789388225494563470854745563903168982031418193087754300519684597124529245718846198818061764804361290942316477340141482236510618001299153744501885060474878214817247849052631882122324311435275266504155561898398819240686361121042348866482045132977463149579900193374497620202883796441578462573214779777691248356735118380692380574162087032911940994617790072481642072555300771080087421236093257558238014957331870385206113964751158022861982903787263214596660258594063557907977384874203136108563284300645191152491993717697544828684166186013515662971466855220597096839159697789659557024838295043519105111024630740948103816703743116586722562734439450618477834497018768742201825020700116763124692629158383440803039276239746596792303723974801379676594360343067979282390280410030934725790943121296158950916594742261762380325949505339523720025620928511233489998696321252474709297376082653161290211111413596239663255123639439063787799049748289118978493996364327626197412252298535192921187467208908740016616938102935543463642454160535457614239220847485211341720624023140919355780531071791778618925865221957577418375466387110501015219491855623176625123978432910299188375644000624376395142923752363603275701241720257747003317750722965198039016796043193467796795861308135211031531446784538144362553021488031848195641686874922375920931531194546047418333238424490308131282030151193997188680600521292700035222943664215929960850015542404506869824367167964495186983214656975274055699420477634747673755095495178451090264619101658349118118449980574040357636232529723277355588969124000918288957450645946649365999999171295660418278012765074602659996657745850539111953695346052118028808042199585551153635240188351674087172861272948774343696144833876965549025899197369711305873845977009968872043763429466412227598427354167729432227333420387060988755055447699204039132332379783298996766503163070477387457328996091146250782178571770052684282675613762591595606485035818318177703236805322041897336306367096507516799350448700275326667161028260958813441848034825842651715735449142953088438187867737944310508355200920076531850757970037952881419704434655254239257210773111894499672949092700876060580833402531975752486645520630082294720416049377238425872593587518460586243129577847393152988937072123859919617746749377099824379669140021608287798073603367303314017709809618833475824255378295994268161774394059564652286982897844689479244230950673988672017838877825088438394748454409182261899716328161033869951555074700098285590314831986096786134859280214191777629529993015579763211170104434570188105711005247425779203317868677408228523091330072289405688457725186366904920773616727013433703642164404895367252316464063673829248895232182442568260194841888292549370734471859074032292957855415824383058342019206374565498297286103206148218726840040720725214134565512513964171034339913113870822840802274080233693440435493770634567251923515771377210525591130785350649522798661456987694904912104705133458483679767502398149910902564975092993616597622092203147367612137407780181049095218577245939064855242295337349727992830675523751038704589138089747843114139662804333556664587270912275903864232575347054838272155522206620782111612676519358707319095601799389059570535588071915381917286414597590579893278963217116924257365476292519127990778274188129695909648788223619009418120452083724520271603692551728305525680207106390130591301063441151699087147502851199397262182478981847844612726814109645915277339226234234811376744095456142512951815498696145264843701536918689657297077345654617422177042792334007982862787914498101419039466029148930946653471861402021874912356613457041315455348307304035702787405046704181219404518544901209486305804505790846494034913294690219980991683219701190078591794385974454532075773595154779129444950380686941526266063493428937895389338402023671782015378630103353466218215170721432182501597527107448179892360243367743984513164822883110241268374197106102206337952601965008947974435201172669599361861013437508199610653753530654960118724095762979520183149304889066894846142429717025729245966960478172684015723035313583223011616757644374255128650895057058026802932007040124569618528188041771102594266032248374195087341250567294473635364324322315989031935260360388334963277431993743330968696207641982739483864572038791906308778273458598737811178437170796008890871096904994304469573392973840102912301154456668126761907929506590138482258923724085184638976765368045113139785451259043395341455986136894944998428266105358681099235663314946071195862582545465201615025485924918866538216065765284593196773392027934730189468457131911123032732665448698439553978914303403921378072327157892883167135219783872059825502166684503292485355362210780607102417752461034650048507905788506262180833326091057550460263678465740064670175707577471258825967032025418595451201659544040964419555806810542786940763846312153646974788591883035172094563895399141938053665157329611300600777186839048334858409895425567503522682582790901831257286614206541030012612488605186923134749010319972252208148816969225775998654632198513655966302193274726019810582218286751413434382679378461548367315551696113169398131676207312964754388471585434251523165647403270425898735386890567067619745943221221728308451021420551893736394848537845340591286380948106854434145381469485251460340663750990846596093388346815687049349306499073194984716620454296527746741049285245218591296881800539148358309077902878266284774337867340064778473319813053279153417910957288193339831987881585200024838540424756113530415557634646977312272262991301715542389211932398704073821795495130442666913555994313317671795281627750006088876513322223015519092346409930428636235115193513267085401552240456306661424066462162727920571015237161229579207515753517425243609315944232474112914880687790230374140545316705368553429434407199306364474361395984317623681881853910008704677983618509307581553381024753027089409159926187800320421316340452310700429742339823781932212611634073144232100815382156461184597523806714514269348738345233681621015929600274021429695765673296313196534646098450910929770541132204281001467402790896981643636541202366481415597322707401755954910590196049393328989062842941202175867573012930958937430277644664158030131837489032437533530039309951321225593712576980227001714437366799407116623071553372343594951927208901024155755143209924784326716701565476000484130975303658697206380875491652306077649913773677300657921748566789843211176075590888464543112470582573118628753479113483627813684024332823878931487718705361829745782028092256016707915023488465597921474970636772922646516300688297799400162182538940226152470736191964771870209267766223918956619943071807927774817508307198359342381909673991727733958451731152650489447327053373164205458133454409768591631732234535163342718763475695907830744619515646633856927107555030244519470311202863445981840025314949956820426145514594355983021393000449922588125576873707782294640903895912693229606247224207382425738378361444748418092349827594678611646221720679805886455614092321423672369954446524328105046381094958060132114107578894975168941693240943791684307045547871743407825014850540254433680026456350248456384370761237074491881026303919910422232119259385692358079126937475672471072229159221838694861313638692138941354772429721394732814345266855960921837525289608361706716392447227216450732572468032094157298844573987271420995858048962512572351147853578196596952706258790293375965166905245839318037384145861840340592106430779240419131365338548651665698788174126399753898679279688063927170776274565485550172771604431566672095828678743692242277520977082274231305706170220367817584177359969417910082532050122204939532164870179150260514691837442604670349775301702337990237578952770929451310933536494645883007807251490386060089451785911757131131381495998494479095187010618589752172292783811859827468648698107292694108941337857233567525580780869764147343829665261832569547471024983089352353764987472315697274672244743630983611254964626741779430324016224480581960799351314602430682528185731297745438827010426252900202395646994358606537913598037477220187894561314157283206985063329068265205479328521020686882911737390178876925242526217262874829852645698233429746788426702335237743136523129429499330093769523230677991889853578712561649625959860730934964740571503761502924307513637741498946640430566938318666937625774564219425392049022273022331548435164840955584188186199872334107902805476905618727449062610541705981535785210122422512461261028723822001467071713856049213882412617447474938329269269660673913439233839024597995605710112023146526331041452498711119081839883434784502122306017291989372749489497307921793292387304888210088702894598616933850053844883095821575360705907813223787224994970370848393076305272904547120905558111568086806695692634742627143088609501169097653008097485912693358375579612419464098638939795802219367053624522156428895083723746285810769950193949765136759804784157921735007988649259765732482881475940281716527688309167938032770014585248728095583242823894386417581380373164966398218920606393036953960642497933006598148052734528281132314393237279982179714357021294882259977814813833891593581373323338658197152473153837899751102037647660100000837948619551879899493095474817358449262286377064034106011080291230733189727856763418829463470165709038132131188862715162860425544079288747583908287771851917429150370503525786170229092349098530075533363042410768560143266505133102708385685609407629864163324810799038665530222133954219001489470977015214887233998885313136703454351906350879548482249523692274540276711985243072796518972816563354466046917076240183058974803414752896604898461236660322735680686758072917798341332166788897863182444526923688918197193000991529451302327172598174526640101800225955479088609493365347369711925578135778015658062461600289280009501608332431540270208090578553308035988172040652152984447154155963023092152241802200592986103303179470845978854665014532148441791533420582243041452091049519915511242140085798801821712672444134732292760875819747321400374808007756943267725597982910800296738561740513281860762878870043489627947966407371472183295567873572458739079327302222318923342071442485897110231123888188001297673465702416441162951281236065228758224721797251440110259544765423721283222689021969271217427059413022151349134818113275429604294885619605280450790671250324661746307946498584550825892986447651309287353104619624931081092359935175257641676046298085279803463441100440020599217148766974072168869178828729987577381688934413639779772445891241234122763573490401313631079586047896500622770473947856475914748809891156806690065294875047350370505535499764220167814089315523510157889950661716244067682674184697879364960366824819628937341011535759120624009855570221418433582039144824224583859454144698762300025982017103314561418786948958119101043227328234699950268283469948773988166431184059661987262469027378605979637762326273505478638986513376897669722466367252041738911906624691948383870768286201661045726044346693896851658946014590276243823908106059841981483703478590884168226718970683884741657338505964144054790034251102633494900405094905285221954068576374190590641219823178036712649372728634925211962800069108735679457382960442219865294831878645262554998114772593830761031796114322721073879573494999948116798693372659713189147325910254367394519350898003844277663626518402697823373792474129876749291543324615507935712802288974400705531780659939205299358090746982464607057952319855077466746782066790996752791858599948793620645625866625057417466220391335047014020457398335948407099420821530676686848371412622118647986892668345658659514169334279347273654501152720654222928420685224888717953408958244129947769471725391687146409073136113786315444457863228798468475579645861493412686133349376152438323360324545523386313872739704126712383109198116764221266118223329941444974207154396329380213571579204129239990011689645046903141432459971039457125018714094489024130495427840363450343653323561198103588167234763129412402277051296295013050284435505558002999799175817127594194903492858319530855505516477447407663358220145555983591879039650635812393203538701111943023803690851782304585320218527679486987719835696970255664648906374886657841099926242887362152829040958556865261325519193439480560608197379176540941554007114328056903304900046216603781693647034511817044902387515506354876092360541709319726790369228234273311904544908963695206004774877657513568788338809551808962859887971762910064455786308072704135128083456878891409287551727122685791581804525385516518103672890343685256803428784411940801349005444627553911517945947925627417857718228253205794641680961892776075173969441352278266988812981172287394619053274107976306343224538225223834223659079497866476682934660430525614728097944512156915372096797619875941749879405643749627500844291425114094919716425258008439608610295101475446878853898701304267510275680742707347845866662893895141934712711015344429517780719808033336872924864934063132676183785882564513264171859106531028259372643981371684066577942192684503754065193617469317181628300924488780809980744782043195162438819631875623472647647466672645379077229103993609614440597304088566354987127100419027015689445754509391058140792806334248119397476176369762404674140862038955174467775908604053853264219032607933515284131241385146574884196875967725562092219885526625048596288935763601033275985413977490601007029787631513859112542842940950929137084360019189668007783001942782889569125618640384501708938970390597250336921612597328568378019555511673452387557303603939201186952561015981372950790327721775834064833321050400938902294784230636278548714675147714445121934868589873890318912260396904737699216345040721477533810002559553211331333350582873534244144901809131620736893614367653648638971246540555073415707766506212444691792085551374283867136380075215388552783762972225616631116955079136063960865078917320771429922664365395562932692395701655156409410120286225485282338345873598321593995396128222367859701932152193544137359126413574969109368628003774709481078748284864442888568595138526349187856541941254134200769885763316778460517842288107117645026394073129759032041003558384912100919433335456809049612474764835593918137497653695751123992438222176991545939302716439706052195533817412695624069077792977590029647537214319004643564695212399060570293557494457902987105334649516130802377527283221813753493687852878382738763050014045004449304515505545885624728333171688409653518464256129978116006158148060517793919182048294256048664226009855467377811940408763763841491681834046714338881784126346023715745468281439689692348057648603116550298482087238737070515173315317982540369863825903684680467035297612603860439855678885295655496090067968182898252510837056912658986431317845274168107534769802314933581805265416225326720687813736198010504481236584678312716171283695869570467808060179337597577424460399898184551300523464194378528710168133175171047178267306608010603066634469558587629589615264757909521239514953395653279813686813416795990878377992974901467505466211994024564484873091790758528873333398605827429657420682552517050383673886011051766796935272959226079540337877104180129384804207459042616918958230646794734668495691932210132371392399962178019626248219676450870473634855163707748237813240223425212111089819222740793911602244656367859932811313955428516705732070211268280664009197394049075997227228976467477898596164981889750709477377585091485239189855428905879801890832585104089863788080767125025817229442149798300454257156907293439393551006833914200341667286864354502474792740238960054207315503013145035252226306493268602184420481907097165874912281276919541074858130191325071590285935081001517560890986512059775764853220266382952304842969047594131775349194895078076259230333947343111926144523138565107397894566879428672164308069385095202456386097305438223478866975143641896779854279866484661317011542308609493038216960711549485017133990521784035019158596901642616520118004776795794173072165155129344926910186855947482981272610015963487429100345170944292872889674121967061154113746107192428928225691095531751530201147954551893289354251835946704330018203315133060133774142245308012751556237801498358850915557168494885761351940945306747625360477556927954181253307308238999145669600383824093279720255291196702931216098605318218772388264025432080175429833860861085336147734700588466604263238917459384560669554460160043047897435116277603574451238328788431291944729995116456271326550858727604733967080562518848997963632684018599631483200920147763901647364405059304400991927292625082052539050456062501260796319458953862897949964141933024042109866075839482995949885405334692968569755122333169305263196891832500443294747315977253225557330769007808090668578164942524797171725539732237472828694568958861281879456693673247366752653075101425989016931337105249509300943725447614432610413691759009668257563724596924910204605582601745945448354322599860225864442423280568256589970261936835682204408761648851849446578787736848034037612100166807332332079137133059169684699407328766467343282228699333110087583480629512259957955949948546935511643422648894944882537773134491232509481345458864910697736381548780967606949151238264262356840940983237638596901768590191645775805130561563823907709804232061127195546703831947814484426145764046252471460045590045877649066742475692925118762495737545518923433238032061489001043313445325998976061048181110178815507453891372782872146037864650557845567840737114110225984305894576815238918998321737115486969058295384514553595668866281895736723653281263591188629668892405830335419006172331783524778508795506709327263444840403245557188741760122101965566905961561048207274662881697213972271794845126883267970405952189658145726507118548883908931424537629337966077475109177470050663948677573848357612098571659335166634326903161937526757771954507812115608832478557989519785424255560488314465116488389082443693384324772318323278865485011278043130468091520532119427052164696085948179133861786759911945000304947817616093189020786165326063438433424408228287802081462434952823716541947933617807118504028775495545480761567482490832999145842937976179651714338492157801359277334653357075035443168225007898184901780457346637939962190677500871708290765853191123581945004233918870708896042488289801966909495474311738524072724550902560098642643259211422858909590293022710980223237398826075558119442203512661627505761516740360196836595053879876517880929089140148080290014951474719697604841785227392886980897729762960458898710864690105106844461843646751258698151120723928762903422931966588369987195749651001106719543132473186370868743085811353663011082640570578174676476181994248037386188879194480524728042496847348210304697776418825525351517368556838979933135044116516909380538287613570516516182800795197886617529979216049691697583912346107510379292115838127885076159527469050908097577470460519361744996592209222597142692177326460881792157128121633294405649135798872440622238498340627167983876342512972941763451036092821517802731098390398249595334762709587727817439846771377462090781917178401746381770296844861316364324365439776029229580742084519214908569694689835600858228889152843805220955976923137909616271345259556922447086291844261626646110323365342189237889723080128506455852576673725710708512404432605892502862033807452731106767636057437798650383958409883870016504229426533668809632508756564451001525598069948737784798856451085583462735386145677500042475402846595358939297245366254264841217101033972456737067592002856275857928007642680852933245993937452476031170480585257322016522328306421758442051336860261838084964746451705871306187982005645803685267584248549977579343016229021077878136156955256862465660875712915974487344952154265838912386930673249968184311327823267304732392583620811039168780453399827879764185819850379773630897641839154796447570475879809086765858686908264541852929176365979561001477075478228331555122891099316340126880042783826111786351340951680465339179996139870273494916907021897882572772376139548047268373985384339787089732053274678426321324915560711487005129847462041153551720929319343203197801725872026377093967025216240943201133203745152137746670115656801557018545778819655554090411871306262263446880053596974055399273553498710037220280874329602238980936960042332168318011998567176873114987373629675503501129350513871982635239333191407570040177851709572567745074770068449858524440515898077121488629378229003208805767634448570790204900060822983762234594984265563529414888106755360752093105141842540561461242959064054384066794361109588121000370702985287467343559478773427721831236009928778155806471356981787298747160847120301082831866357659959418235572859100749570542812063924931155499899959593427966124137285749441559320104740518824508577348962668963410421465560230194976088516174738889817779496954537412917814726028665111279068144600226880281928731382001711270172974038476133693889815474527405358635159109986911965639887283802419989079780243699295195669081924182111447279345143971035481858858587681840775838714415274420010934056897554615821762660996949006512531281280809180073047228492004625702009175035623100344009069573136531553442407053258909916012415411904271057996572858765500822760752687691685728375503061055609887279430968184717617121237175585904696338203243493500231975788624363880441943319386826683526653065547207550089450989140788604607042535844374731686132722345684453261242384090733114496922373022700500297812878978394605722471055005601854151770784901781448029882619997534801520863653025073626108507787059642958364529917564264548410636054873403859947579756697012556145765791242867021423513095544458533479287309897731502349149732979574522897820447142031453226708326406089019497388949816025723583104815641661296424397161810868833762513094230305572404546551621951162117800670083079957859752693413169746668823493732127043686938546485461752041986485505455226687810031283212095955390737264553300385994347547251451791995742093451311651790514648420712199226981701476556437990369982130242060140637514611620035817985854824344080721210561550263914031596565168174246972946026766025304423380962612986425773157002608508704713415099961380756148947191048735392100759883607117543182021982829823374458614879637336636861728964160695400225609049914005766599084808480548654716265697047758973159447528494943088009875240077763862996735151826739609259819934452805636336395702416032500786772539200278627164978053207160291445072648674143582882559171009632588797753891359859498101529510694639217462257146244173035496083364397699917641662307404957612512700599964871816393799282442651209307419897484419008740889816319126498646232377566783281384247525104581033345808787834055265952591090821294920747647233493803184184200698372716463513430238399859327151195770624547749081954496785435080716313471515841100129124971736009686074156995063993871785501060587082695196277327389196883471869957119636845593248793369637202315192478046128924339708863555849845950799476750259503092769860158847687057456170980724619325278951571398167959232372297223945838616883361341895687011950994771744801122183721710734385069064177689505497385391129222621957450226147275995411637721754818970828490203793070373793865521782128712687008704698314325895968991164621519726553872127255675847731255196509837969649370748065392583656189511154211364441280317444025942301425840068871713216233057583843854473651691285833056571938462977311570145175308978126487085616575681841346821716297413612967615965970784827208858706205106459383401732338819782825715218901011762742327949722119117217862709028188774912456988173730260012028690123727470270429014443807226189692417647590971455727148913508906521001436065761783669315957380974627697157440570576618875883390160751721853917684534914090296205376981768870344506455569990306701257545730549713937352558572822793718369235623615671275502742477065581744679814342448361943569852755924224574484263679526017752921186882456867313439198353223231000454248692544091553647718572617685144369967327929936407908169856413163426120471841044886024537399512481062448470038593168960401578975575334572276431231641594326280111599563003635674832048052732284173140910953525626356747056354147920596875740135673333298570723062433232176542102086664578216027205267488568488520738389238633629760928314016831948165488819765366060807645803633461213391386171529878422699037749649338628906356988030271967338119097684542246384257078809144112781010005129019368963521693643737761163590661477568351023228653621286709866219744618348941635588831176623454754216358617524133621936211698206859215722702118597204649167112592503777663577389860932527939260109061083462635181481954993542449689849293429556248998579412097025231100949798803287333754903362892238819003098475571375594933110218760525492330271913082312857037996809317848213163026573353178576948870355820187226107438304906209636422506162234047959874245997145330835385215284668221208855155412753420896579592682294917771793464986640047483633616830498700451116287993267893811145378300528815828573582873913528196084248097054113994532258457433337058102225553569862684442770470287703992533044102221117379645702285984873953907243064496699948034159932286521688192793246560340119426227573508296831036488776021374390662581909989230686403690539028836930349257377494233811475935223414218862840310427975740605335502107129588251871288889832410943334778040488060242006574654055069014530913826551145382963184246508611029151795807935740869857868237278625033159487419074495569754436565104653509947627441726756173430368916652536847703331851066253428750904612145305084929527627742658954821009349605872448481165114960937566403040502783347693390601231480590818910764599034429368536948459073303671900699043565795592644914675027635206232610539230401887547728416229483367024246493411429145959679000847893571442086450318481530345853373397039248895962574817443475421129290287518267244914261110193819814007636569552558486119685552764729720624283338793315472323960017698535064848240667367017772012298391361369130764114497218907613632047449700451292245906513869351974907361959131901479050117132045115007107409399723325311208851869589691751034765818639146187902985447035083873867956146549116120394396511219331952329163818628925349943944696938775072071973010480846694411027816364765378580371741887936672092977172686176729283918580774308791319759352971737789970364859071260344168537708738952804467276356932195727751387400808312217441189072890602900880735990549393851964658611279975491190123785734794154433973885548455005733297193674997853800043234898124064267441673321632372127840342160192854599602684175477120658238828059355620366076996457137614633266980304958873084256867017727712279583914381810928668736167777232629773129583020336815240905271099152536815837864863336561456601449737720772622596045871055247742052352463254833612163266518940367487038136725969795726935016395278290999938389198726408646883070610071463963225313904824826363698620428525432388886688730703401945268593164283970232786968307570369678622967252687201984166110052821737226440418324945514433808458834294585188104425909826062092543112693093204580356281384202373480596011311020976766371453685466045082405533503153591407583333931674996172037154963655621298260876768078363518735843405929736694626382214459112403590869636416935383390594390503831705238223120777579375478911149220143403792248500950776732160766821919477156968645485957315577546881028814357383155443207960295121383785781373075869217931775777393001334463434757402467178775018845692428704875548752657654074360260148334442666524811356944879452330587625853027845263383203191886126139612485642906110893550154920160921775123168712549148709799383615834971930620066245130540653338592524077144301963928584526659777580719986411728129897086370790705552051369784626324849657673330718829782858653029327517519448594451187182731315725860661232664277098301302129395259192270474004500872132767617995789280388063313033829292686953706460737258425162096561214791490859225625639958056234760292926913966534010857689278047902114471540702970131894940909782755246079545150014142371013389785636426966078209304324934915167114492582413322181335322602519699982122120040248181711207105088160032869154089608704610246399483124163308087899135173591414392581331894437016738873767452729209865652077002698506963862094210956126854895333029191477520250293881973078997851202946908723328700863703761695226796020648138302456153279706327337165507903089680231312159433676589789688748507330341503654495175117148908854503266487835493998757540782780877067720612811659305735660798038667369918349052977977209281957784377572655971571516954889278181367009150299919281313268556269113676243458551809449125876119275639515847645436974727546326939975052198530109246408940184819433420645403389332030359203220229122664887192350801752456674752997140791629267287708247444194570467077983557504619605738209896488560591855787721782111973450889750272387191296935822319883640312264649306008254877502707716373273423272172735802100734235804506253589188034175850955311190650422923065548323214698873401712355286467301191552863396731069302075156465220963368655372929789968195535839338706985161959164868377631877201685160249143665177182480416881267559412115917684750211498861785391083662583563335778271533090486060712930025201951066233627814376453971432112732199035253158782724674979967979571294702857739675942588528645895543737929568167807881004649279544432525469822586003795694897640226818230231017777662423347405227545861221619551779994051204096047241083380789627320473841804920392915536014839454702728811930665355724982730202502958406320170647065833817393530273469502702852671487560303613819066617018711648795508974861451705364025559904457738207923601775356171154476498157979803887386292368290446323654840711411238971268669686140817832615562944074871656718415595309840451261488928217901244408779123260411776777341884826581293303808882861373380148325411626815803215354802528160366349678404910046389953904729121197315087412718664753450618814830281547337079585369542664434259400324109746235155264449327395011954525132817099417071127344946597837575426403364370985528330898731796998384176317345790422154682237013764404354572690299406239052441056140615843681509920217091758707238589135469114554595508763375211176697908157083824959509196135597609795795829210894381039437765931268209663701698763068598754454792618147271760445444532454008960068102007860649857157211910602522554126028131274170719315020442481834387519401493365808436369441661718066409825804613871844506584521144633569688890035957777138935227427346562233794913990498340502702340063856154699645201268900668878213521600932825836266627201683498409298683699982712006875169989481155789076281533495760757490535061700822026107957375098329001014205148712928397208926130614869877927370013993541987391976227397698040148303153774174649424522173072780620928549639743884926650552852491482258957515555799172565720357086333390764082330509740060099276040819343438930662722601666812370657187232106880438161994215606875271666040196290548448916766056799686755819586940381434640804611740887057720300271098352510826480777291259547592502963599555114103588646510465887796739213761549697539520926811917481021439421866621395228738468918675620800058731936458673457617421707149156040173703306903209899869492830342508503782949236304779729887758005835883517516972865488377091795112727004340120720708245285920799546723533815448333959399533810622526037336212282761055301266152620919824661635038793563266437291459905339896388025302722130827272203499313847969005265912215854733797790858444441365762463974094660405448462547806684110954521043571043057850164457106535600403181249798387465850981717178169617568484985138072555443400054157566625517292648251077463666093581827164274070564849010757060787213902455896638177924717060992983558607768467621524826701009612929379525899834819911214774411225269205577001252517549547506509969374579931982100334513333337892422008372091308362232377582498087656552536774124592826942935929294490170172355787253491494402680173415569613765888506842675333727187228285696573997738797715853494755543940129040588903775781459525341460458636428110737326222303754196807779118619632572376776626705071892244836140960022734691734789320834784571793007292910038568829315084836744067573367988791565638410585543940951746345040855485598146138953046126085457276132875659233914254938790035659708335190701760164702994254501911672997809468708925111546541597172771787018500092598648279449140888451148559542398800223625275101664441117647276036319107000565523298630379604688960605928583187941603255603054349508828022704474967968992607937528826486109942941344750072889114091225699110401726992355797629798100761811915398448099352377857162752689815760546922352769599231347749788760919307355904628869479732781238493788221352154950962702494776069731165815748673883549328676724149742308315668611992270556050498324267285647966970895316656593489419327208421773417132784732867491711853777332252450411611372060608454047836052306385021163530606784406794168591972816593132282159321872962973905298770616774212658021805164285261649578920146383248018813445950227201567131360205691008033487428208694657559487136047209571222893256394379188908490072631728556737365430879004322895515583639061983771280016490333294659758604045428259886213487134409548887533286596557589671866272965165513646758816712228461587786645193920610993699846277961519770277858476134455081801409002789589431348333384090263251054748142580608714039272785127219668785916979085020201569665152229825686613344440538881868817387195462242902471311745020546571722641329897905705181263488333276880869363544495835307991538314513944605381057386243584063817135124476263756782920341492203928323168857821178528258178550218237095030741791363867382980650947610735335628334523040638111542830686228944373494415925842919328246493327524862830858248372915180312726177666239285290847444272660821412503300196548121984514038102416724328436577221267601361911058786725693822052736490258731672705624820850299692980926581401460361316941759973031712918728969068870482879914595069858054313735762979352726262120299718858894474161560761722928827987590967313344701894449364377916390079129501300548785096741564695038210972728589365993161707209653752924864757743108992601722070805073926308066688095821250389074269417447120442855330174707307889957544069776477365836824739564006224767431827623599436828238933041715570120645762540279338968311130580999962624677539187471904047016093161536929290544761661611483179116821426262382475076919141607824216779944241965652665302081148245968003575334099001105451225503035444465845111791084284893482911460154015716338764053112914937229513300619772276698894420980303937190013268581731083825319894778289671689298336751018755588206808933603655596301835955088905249314574069198174213220418930265033159054791722208075041396104073988410266831210374082677007242637297982174831931741002770370313496613367457205242998666003217903825778033559408073769287040618110226949575272742926165916993690726417556045790516004434435409264702386130471590735843012535730930751468411993046774290217607188718427796203553889496141627442781312946954733300182482679849622719668477106907910618516712239339053676511650289771994152107988031480822558507885717161375907759164130104789099101021231721416217323479112853839989294777435157690101231862466956736705210435744159367869628369149475776903957402043956560181349888520964876195206518417912100514757057995714979709773640502634506081836276669656606160399321132801848418202432780383131153290215175634779886093073645432668724060767435401255134949938447199258717648881588490013073909375312767036728353078741591034536815234978692849023656069195578402032682101105825344043003662726683039942307237581224645292139520862941895132100817844530186948670708399923719120609347454976078207127927346997969656641631558201152323582749442435939847645556953877405915802416144567027415870754293800292379555867015700597492982771519736195444622706482542436466058705681729459364982174766870721756097145367601904586001146022954855390191457043061634211438108601518109078288515667217824459476303688533116083664130291042930924512351786891599876732769294259235340565981171583081958227406772596586016655377399164702648100342691949529866312010603735451632846983102022598932582000566898004283918733980855250071015677068922906214491591620486883102277294362321325704289417256908590152259173956536651167621497276259145975232955556092914752483577838652149549725377463166729104674175231747523753260250692362689658471969253131492033894285576479468829008732716515375640143546248216244224578900577042200616234327160990571355842359641581376037939048660307378033977384183919488728224048083374787815131436815225271546346594521774500581473378346088598173674131869702365829224161169437586035257582876221006636831849775497569466105493253478714624858479178256676466162595348098703349370268787806572773999841820536853856772472231597474301548292676609966822828454936167991391491664774947249517537281413859136364217513016896421750326211410714085970886288339034827588864810638627275370774962837720854929740745968556621952933124078159270834121287628107534399907462406488421564469804119157507469155437148162001653968702977936222202565060018050919097995109878269134108781246544897408971527637690183647232929231355725639710777365843088559406565951193923275028322810753659428571660931578914118454902712056062850296255097944576009972418471105053427463331724191021842925720701901293909548685915796260027897998514720316898488462876648387406340884934241657842194277936503436527095960566856478318261604323083074107635349181003077273020659154339596191560648120418768719081880511940272152103716350471038691679751011539335611835263356049664008941527839073229937758495048043307438429388238333618874183324096193411218843500916600844283676168994707135479323145291435375101920163232233131081485736219494075020631428329846643329978509000101490057434117486662990988760314612374611907600572837386605719872619123100605137949533560486738893968588257484221358020911512099147810139998905025652147281043663639438900067987517367055382906180218278281820180740364921706555120428687402942626337886569405698802791601339691578841361399323133162254261745176435714319491882667088538948709401902009979162697485465130278327636654358232490033783968642260370814953630534234649353142280598966086631832556092650521939986187685041378379653174942741988645539005442959609038117916091021870602648523073124833528478367751022098031415047770289067700822680499119077977409550188875783265094674573119872272531026375566017312710062900068788731273615345695017230566305185477742913378958189180709602024255411057922195255848310093098067729727297653079163543299836911660086189452001304830403693954486461221793845526984241131252891161290974251974858989760646000396722151230059723886154597029536511710547936091213061201807359048179764637909116939345574134338565715469029859420789438087459778300183211620660068971608969829691031879658916754185451708834031659617356753093616000500064697743701059830062729844245765121251482468889946533334538698714003766032551349566461254955167423488769421168056793576633872804118144718458838626897937996088249003694562474056258657495749049809027949717728898676409560577006456503948111759404231348047463794487617634202634076051116406873731249148079693792767972941666347914809064260833807993121778305510484686934141913452856547099125354825422932484991290770824563117895444294203666067129116755946974176779517362404245975723418346589244028691880075991480246584613825048304387798191899905117536036427561807002286055106896528956508143257841328554022012449363628367861412196477530000953999776418659644659830817512267600215760486625502322768268581926958262656539052804508638240396356189877271957832573113906426653402361187280808989793821526093752073838654727271128034099936806177695239684035984303551945646161275384252024699924758288692496050565569594300660785316442707363024290307079952360069075928006066638588704841418835348134489343657198706108114092365012146998747573256994294174547505289393624717915168326610850104380180808696660693377778829441017739727682555069982904694837321592733339208362996923265736567420695427930513406259024147878885791922013097511909941579835092225667599088241056964460556916215717560336740275629974888089412570740384295961659633440985993935461262133080344141229686004166613207732955577250759455518746417650122542525154235492920009931217885397184242146182609349023147042943582275977560029801702052516309863279139835668771026474463462371861670980614048350508902836835366757796187610595943165342228038914292393165742299648029531205723669742631478099536260190250989735675615729564547130509811143095124065756392182459929760353460117021769074366852823171664784592567859873424167161089379011687054929182393507013989661299852191910982536838149344672160888523125522820949998558876534002210868214090655554532392532244536959541376879331059488384653914744410231558485286768441099331767854370777224367454764910304227854980991606306135814042616907439630835806110926946996732979972505845945071435450021166503808969546429777352045993513068988788111655214597536766654574197949349594642239979674285205801437714732368460373759025067562257788145183659291817471236069113790457712236540626840686953163945802196614031846509795046719323736911143587845885802055472827088861780502344555802183705732692828717297991847397053294221037915676619784946121485191214781042197558053273899337527359654307837546085803705330685462660083076531849641458664184063251431330592459023986750276528176100868042253347209756023570794122387921170715601436335779474839894941488305415503533304685289436104997429213222552643442114747287205083225012642850789204493660762116626289833875393525787941421231379583432512762266987058690768072898210348227964019398574555816187204964692528827940117992753247903428785712764057002466689658652098592919546647420659768496480174031827635014886646837192506761279546183383073825813669839207818561416569482398102816716166405185517831750820326565370911656684793255638771807478043995758381434369391956390730424553058704382899847110217567302877676930202961289796364593678813475604679959074700153386471274944387721591981353108914722840078051285535492967155163498928970184054147979101820638052552018213862115366283790904626259653264112518922702692972477127114081811876281493426864174147064719613502421828506736816625703144262694934479788233180483973647471880617069026357721980333348024926312977295037683148428326081496695532493666689511649112350460874379126558376531714126061635906651221818461804881570460281589775507319811264671010587033103947089373402083938937728415618682277070995999368565800405907575842413153553293910433226975148403219477636750212344617959659272884144939824825939783282897319796446696566577628850754415528658269075523556448507243568655461173102058449160781785299871595937947233936925799407541943926348177807159409588605678661549723128557930219139988836053146366535558467229040926315365238272517288299883414884228413229267873002479460671225532986485000417833598582984871607210176569028695099061638474129571322160603632706845793274004580439306379837649525981423117801820424623292004639231524326155253637797104180740217752901541949486017170161336614025998931387171676753854284938045921345948396762719860987069243124687141897538898100874107858674030420359936058537595403914477784547544771974421803365919295245246887697892814807510749889220500235183719279062303600943234629603412566855166144968005729032413393995762544536925905793454297643254018577496492056716499184114959133826062481120229689547736714154181064905521710796115241320754575485080087602568501188658053645315068427327138592560770775216311344768149237634831547217448911531139445645455804225450296937849045339715527123801500118089685591613163185072605840690300456072751427468782672379331859694686313997840905675844927289900018605385993516326370440801795980188667093109528613803670896640362209053668950039818392125920134512252958129119882158213029510796130375649422420321193644759297316328393383030005153104574769689760970291135050625347036492155848126914242044368078823832591025908986318811032375410918830556204126197006035727380491707175782841532359892007277370180694613257274921576172283001974569872998308239801681074922912523611630763151219005023971413670669012808069689785930345328368060368769261148378224816589058900944286494662215473096934334084318314277399048717868337748301552010996696161161423753343505170224960727232287895977165036118599006763624035804421462484355879246769898410430000994740711463544177660848114841698273892533036215446205909082562262972234746165109086226624538115179937033873559024746377024462956515122880530356306340784736809143859826530633637593524251007721932723207701100205273512181173711058163384137964231881211413755414933681967202346593383776224395350737741903734800786368326432326034192674798968112482993303280689644148439060721741765159362735880616792861074982029516050476183285485178432251696375227440549825981603939093874703317638151807013255352541908010048805139620140729418851515957721024380880233572779615835154669728530246437816843066025851599443924355130067860950504562659100712235630881035574755296388088462862998166214591795138739792400825535767955675457603345133909868017231543817547410508177246139662168810652552620977389918024884503199910789273662330401155841498037244298999793856692486232062039260173990271418660325433897772476293550717511788868954747420130063984435288473570243604197106462805600097220408015515766600667931822280050151303032339203271999404452968959790440195174928720399020729384287873864356844037637495430901239189254314070579594286137176209966789504904829234045985527074844630246784318252221776464945085158578412868972155156282581924842782553269938346874475657748483936200542027326368659254351410258717520810850091251220413768182383992340780253525904473239667885261650988990100457881969062630516573286132160495319998311307951669286292371861325946264166505454801600805841732363051975041291080621265743255156939607023555948493800662778675871500243162209026740066314467211332124475857634394079299591813154526619335601784664949345046568395630982551445792500969219073647533805753718917133980328830418860763938363430942774052090068486665417665685713690879567047954229750279721182840453170000726331502059158131339655010470853673197514321308189019045400734076941465165696954297124416900472810997459360135086370283204425637465193332335180272134101269312217248226133877689861907760239794007775835223731960508216921959346545323797603378837494494343787825786611038418031388454689981703452248745154814289657076685209881005280013511732782639422048082495797144065402588416704850524331843521785605106449698937757285948614551092217175963394265460981828787357132688668897973439714883975172352983577314492092807446040350834344206279045036195174517811787877047828700557516287421883860633869862325760077763520749582994237019042987122749835805639152888702660486795410015274197263218581829515660947027380364237564427481956910705889124718175496194953823663638023672479166336443201240594781101285658934071764768410864324148475756262089437244787400311287238515617160857011671951621992383684927296479102768437928683903175957939590070605325412654857035696255637863397509017261748954833911467476983278962772843946747353525470340383710070124542741485828016970230855589243954375852047626537050114954810222609051042808359027614892567175418058956540157360676560138248959588150440815862167456740739917276640182302356815539561099108915368306181863181786152695383690956896427210344176035052508925163448587399939458383121551509630981893947323811893893156376401015691994660358148982376132781659267103074924383742388481246973888900941809044376489690631979752026606723638198652209650568687685255143938252096158649751735818905525009560651198423363152345659077692298041675562293911519745986166642444005092707296330259772448888363385836194439856191488752528774117045342899988030733921256815741451151085051083366457597202051255542948763766911190818174935706643625779793460946273915753192137527865773695900255460710154641704523299218502174101223493936084459600698884059658853406919686324823112556788966150624604390928113618018194626454395993683449118155712410089517647186831017002975866338729448570141324305119132666423323672219946468000654320808866705532120538473398719132617876519212987538364509135968974949256633224532437798253331477835669580330002684614898955825058033068114656267137203254818856977408979593321035174067031201956031777959362659762328861673533998899198104707144314003215639552391650689165671408205486451140489175898012846532554814771206738758594505684867456299073349754734165941854820554806863428766118955055210009318308250682969731916819835184707452989216183607473682472473502664558413258308494282512049336513717923294179399641965711449884774209086931509977097429567106958806119322820351578945006903195253415500767361530864407913856927746572309200391039353668634281226389703858064842004133963850502645351349613099344237524104871163266570890940895390021334091918882737996692094786110197184323794074039183939478565247932590060004422692439410172493086111333151157253847126266341791540866716158604450267313404241920174721014152409112201206420221407481651856595545509655684799458672615754496790080362517800040131075882221630901878466981610994850756141525795978273881506904539165010011118928472142832844499688665438470758411331269823735642965716290713450111594504001742491651854035340767816171443630745217433238332252987351138354679007581443596887716849581731648979606359253031120324579041877349395352613876696893617976183988177423389549619183031683458979203706623246827447863992722784541302640189599717172574006149418087477328534542801164182704851704185721456911289299760013305899837598275511003302063943982805499974285218260119542138416718692057526789576494089675836160860139206923944744245395295120565665625309083253177629776202768934756259493598046356648643897342987146777034003045491803276321770461056332314109924133366729687651667240964394041612000796897579408298655596277283990993653822758454013032005373574246079239614569218777437631567690079711053131399989926935434594003666070364058527901116691868479966107448564607131602142149854285234954717268933297250766662335330264389568200689029073897969898288514823765229918340354547073855358150330756652885501504366973565670042886216788703735602278531491725691900984724885063678243882784146572420848513330770362611493181855438458687943988781215518118880748563028651317473442440207019129455383751912112983841284451917512443038706442348401973003244763223690584932892759042915999436600735218303488029853110867181083148963306421582235483683679780293500228445485367794971320519838862278955179913900426625691513980828834735063505806419781538628416636718107687837217316349878190969152481251114485616388465647483224849604361816378601547819474324020888749606935169810079203803204556537537030385680787321153281096073556253749538777897092083600886465092928316500376023183405406537114563799632240204623148540168746772815342693233388615609052084007880425711263361991947258183285225078325047352091772218604625204884391450819969427486318756866063584784643718045006060374403296313540068747305605252031548042926806954062571083742829708688852684123920471171585151093536240235891138669169386349506591636365664614827647798993664700920088827287838234426457289653123777604186118325365299280586172362638419313448250206507954672996473935747493062476302215720434613238404046352402198850444971339573467623561047804019076139492585509317981908116262285025994845565500106619230092915911786179017829963578013218994035530373569005628939353875502585530363857986933960007128546742026034362381685936782795067426449727819163244369758795607233454309805032774060311519741352083667157802175663348583092068117014991244675378278001852379425473576079033287974267794828236722584184197750232090750556233373857861038669777186947436853828105862326846617157987106940678595077930746484477517863347370665711892646378180324976936305717316034285275606211684922146159923877845717719406068170406208836298704163843683833257655574679917863321120693474444856366947566603889102019354786275526881620013169187956945754668223324308782125798310874401935328279832117598422415365830678241229954587337309675381374236810508495692626409134098268505821747484402033132547424228962585377131242765996087626152511393441500229138586787390312479072771894316718177001287223569179213166763522523225599447518755815919849389263154003398545878040034163681343583031379883728156060069783170782625307813652295662032352855361207549546902945044447675312965161402559363630764302411094168005604619958311107497207482841028591687258594790281942369823361136250969715085979789622454497053739712143166305861553415429953987258809140439604166304455726908572346035579224704856890193626238414940786047502023254911853836672390114830548194935594836567905127980684512959409543058293888973911391497832155101720893106619513601831875038713804931664433525907055616157344906536200521040055605163654031178717224333543468773756997544742110203288520012899961001252874789102895181699154927228976387741809705563679625764457819283347873346233273751669965077393443713451530918953144777788686264156338289764091293756077420028156155019881747136905353493293706705339428412151337669364065762356876726348686277483546070258724796164795849265747366434717574120045975871317262995050724333420465378879818157149669484122755703134308342360332249594826608916962473878828876385161916520957973396911734605674110981846907358858280030979525608414399078867422373528777091853739093121527869928119904301552740805590494346829610819157954583289251586304783300669063552573531557237339817584329094689438352576736175852140417785885430943170080515526780295719500975879434175497833164187351363459217866694851777211647898956015356113592714931409677345974783225356316224691866504331461895590879886983367248092723312546625087345772036163628950819891074848895478556540622902543545026540764170723689149690621167724662327189464596467641026987979424924030953917494592003871893493679365270665559335834139108504329423639985925206773603308445439895763139429947315809434659482128879549195232682392362907512374273357682436359033988616839147891263772254138308560388756694521119765227618279969752328701095285173482451348039028380613363888073695179374024285150960076937380894269665079758796819527189484705192774617279882696323873633787730344305333787441584471025365272522807503194070616330833469453825306803164454321642286646934648228732359321453992411250681980312099653088697193433351639103306400994621827980347288908914331561483776466289519694446161036083476509070156944830743518799970988272273792750493441260550714846455918506097306138511964180856373130974461587503716858290876211790470252943921600599116490694822361099102581896054726821035998009802878172400500475227477866714654211819043122838615466882044059837410928420060499294381754479983647091524156822151935308503329109408284999498269545146539204606957026083777675535143071875435834123748584316390681695442132994290348568545028139508104381996619304183368000016072344696473023826942599072004692966974658954894151154394021867991167342513548958906086333934183195409711498686075503882133449115709375005200189066180597557066530309212334948837975823802957595136301470048040527896641007050727577798687053517551104253023196891776872786425710137764503349632944206719147905634532231598012404180182230549315202862520556622361478708425539941132259308744006043462733989473577563464459175944205663289576441543241352335780341711459519646333243728892845510457789071528630653495548734895413112404204986691248669403608231698755158668920896963712585126798272152436954361691172879231966739170473443246780043244732001045953322933622640454958081056365898239557553696255392830486977757190999025173138951694197313647409909517611060785982492883008753447217143283437675867176527139029263729495444402642183482620448585699289953909596615287961339192839574960797925127838306829747066545873476480936742802441084352798838387307459342301883305971568086480013728748004602246719513919468367997667717187373682865646443078971063964139438437688037785012907010420514198507716404250707046841094578468122965293876310727714978329807741002349610715887971914018733476381004663798187021294277241446851521490475808020043838286881441206705210999099556975281601429086147921254062156662011213159447916789503189358835074944697311670950938544869061245628844796346766084794045138235636723398997121932395173513885108071299688947412600239385638226629007801638609960568353830482459627657939426023682140556198115395352529227350873113556766846964256403916544026357546145377578888570730318928416751687519680727606773173035256430063440381408714128513047867197122284350796935169497777843284152313399124916325961325872667494043578171059021583682229552710458089326329002215613382215945769464923911982478401064204841303098458779177808534612662094372603541352764928415550744097092489860054361280945716122077097409712834963387952044292139912449950345650256042391128481972924544362035905949156432520323344441085313692630834867033154307779111721665922936038879811135742025916435028047255778758082096728588569785650729886635256238502762800119718571270529122801436318485930916335869845533373540968005619711595675601340030892330628438221549054915228315799157950829358614970846563991991564776290859278901088685249235418111121807537258038450697892205368215728173204562605860943400074052237031602153544683625340415324497434806127109478142178949788786714129712243143848157463959968652306108949005374795008402245126084233106732260748614258853251712095574931340724332292862035416406942260854115629883711391012161175359786999353023997413606000297300443057716259732715146956251530757683673335917008755154976255715578330197173533967882456536939178980261720864387332736810689371098826082009613664974591336445288391197713895541536980215737269762041739867216773134088517996448112912962731722106344166916168038901852819618992422655421444067079863575802169708911044293175941743505028900534865641357758953052584258004262530339966182249899209277912224117991124499293909229741326947278177371616320805808343543806216740497346900953823016563307622831718521673135737242243610901049895176931768191142487261318548350833921362855556389037252707104959132470776149827576388770122620932967056716812569434516975092892692021371640240259573246017219057607033856821644366886986566074475756831957901390521087206881863097338084487272220437378008944619752564135753222300603444362379941313421510855002973033730786807970988829504949786688510426810837633907463315148078891574650014487043997009091665862031592101960172033736377250953716226113645742222844020626530942608401489491160394163792235145016845825749660545440799117175451096809607733144222316037877401083785536497821449644162982939225034273248242900263704773289551534179126299322028614822178705321882444639103240233204704892170816487918628679671836566878395056475097761131963491795656757029980589992854199414890321595475965200707942654980593648620877554259791963787082215502711936916362896307498905003273751604883896996481942583077348271976749094600522591898738804364376692453344665056804897164556770022517219446421958114374536066064783335242001902056542205710043130936915769663648733701243834944006354254293503668444842316291428971251947949785586558870492704475894155285389147294220958077432099253250338620452527778969093876806702395802892047259637052302733751657640008139015407737167451261629781115757244889676312776573520489306947798728351161537588028659221407710928480563696134993485592488233613957809257497463578305114828282842271041072182217492345887554440857701266733286139108949631340753593724871224857897167218274283062403928248281834918940719028960984411777242396424894893986945659038241491731307276413259200451714321416676784158741521964155908485962560556393831525213228789535009000723409740581129431013020604182469226867299753115138937941718000649966208825851650475476249656584949218568881109488801952869433218480884245124352931819496015168656776969602675103697525617255330790761194909416266771808940120345620757315920200904229785525063423120543016318107261042194180335993206698694839424000092596164476289374896273690659546975622977268115075203557179238523288440717200740659858687397184823433280775390783557240570442875887545542070688110536903810605659496078260277811800874830016997188085845857149561680794467568954370553784137240188330223878124138848550665226937208958862988189193019353523750079804880298093158435795919594064155732987884110773630751323604881456934116256485625605846119319152522076358904021296149522887747246185796412698944460853989472329916576320188890047841927162612632476383671520170214669007521099705423241893923228116328706125899514929194598762464593487832365221933803850623017142937974621317553583316058974605873719468895987729399325162247298610761250430893975530348479070212980286489006446107369119420553623073640728309601278998744521681883566289748127312677941878352887458962111179706970767598997209415091334358069806266142752686581060954259277070472243594436957859878258057724570458979177366004732989776045787653090384776530363718203245370287788482416536749333743767434688600981161082252350531590610623599331696456372311568238968449080353671310775478515174641085344580427567819873591715801778900674585070542225531569805023213311250670952460692411511702973135737568718868034618455730176582463772949856601063329132008278570246240542663195871887440398291643564261386847412614478432877064041260802994778244196126682769233908960444380590224661266288227450511957256980817951417340890326979940562292960484801172090488414819942791553506927427694587727629899453473154621501954318586819823237471662287072481100645752295346192196715019542543535428626424787230162568492976441482633837063834801968760952375425493554876132253089092646315711335619091480261036544757815048408532607738698185836220058114240045496794460396214350931845164567140585917828865360681116820102618129314554776548635192848141279299694061124085832952483498051113325289461083320458642928178253840283651882373100812108017371717291349404382071833236389150338003191661520423694159065809275552424092674537372020060685919272628591699138546802652345321058861498135514976268953373512771817316278527677230258611734091791813231991279387461446834562064627627218318584708419523923407458525024099835636353166313667575439179367110562789747831787732875494443503845199664247222255871286242213674035432423374096756593918273268328382436922016070164171549676807008132907477752061621355727747511473818654761355850500651829960252636103472904014895863347028244490981369996195389590654894543913380961513437383823089938483505361012336064320504124463896688339258068466663679489109282403447977493322214142025379091369118413877842739296483913545052992251583577678533733217417355665970329523631946881508475919829359273181778520048381290764640312494851884815018178930939287989996131041710377575755379926933841454309936592645711387211356209297411713328266363762218017171301436364761599893384411994026030849611726776252114616347013548009909322218567422051902884454793913771965376945728257146953453862601551164050153605798746896331763887038045079858529142821606557198049556082970202889505873422716919304493955294990332997772387753355388568803636907795479304079596817766269461608574463240040748003184672817099131261626377676543132467511059744012815653636910729669357449889509235697772412782175407984683801681489015268055010122742417736428091491206583218458497302115090347185213575191194593275465885912454500572320345606330327475813966090893165995749091004858793429923952914134959754547955530542951863892985768944708276087770727879464945976731577164002867887017897182419721530372155615725873911653047771127118168525743268030344019821107539192263117014070012926092946954118898604852973122936419878666786689923504395297807277297643143770899169560285961906622851892871464224725353538532506997553315289620234307695669556756102612783876874072993648721206172671471895010944487951882870684218553329296200495935297231907166185581675349553957333081224599090104570998687784616727985071986699762837099412958854842633655480756331705602045684600475777367652516457311613702731058074972296546862913850743270478668708781297267953836498395654775237781223930616494108212415682934408059571540555627370127171111007055144860800773114208373124714447369639589721595347969647156371943340501589940453909268274807556222520245587256426809887944407945975525395699757008240793030748711140051759535514609461604095319895496352129274356042419218844274626718635204158761140740044651322208671757606014958038715019724816912973213278234951650111494489287643729845006134471804070671319837043785441301445352729284791510153374485929784427692497444675167516272290529401980928645566620151123739233361835683717910898736423355107919268639326697330029775371275428930227472319080193236948641136155140381445354024909986552081121994870900751741221477926988693118493867377909931399096762505199443512725722400588362134222609214403050224074104681796592287124901220187290632778436681565817177694676642155455808462961192515703308928184306253673017026476486731805152024910915671773208599076626072132522279701139287342792007034813559076176307986497142233846793539175222644541835975391086546748613019411485163860563105165291587464887264759591898398454839546295310220011869883528028242629313241188587673705855609902121468738408060794622185472079628434334048956472289340862661166012885269268108178799314535833803415223639964714286919014927794289728107624988658678885067065783757732333405295788362112519717498697695250225759170472025700014129834241960888357113412783063273575090846081706607768461482978011071201110639541778472066283465196499771815792375401345227733054403034810486550425055817276741997910891449607164304522666025343205362372222029537461377874996151351430840487935823249398139526051422600897419228602651727464609017465011247793187298329362342529060388637605673459292029880572966438848514505334542930911699808617623507187659567273354495092000311376901429662497802034143820696097642316460221986257017030190915445634360355911559643805589961118647160218404918516672431991312610084749282017789001903452476952145396196046417658517759447451239870330103582390705173531973589715045187373544146042000044683558053202213636523022342130363017961600559734135085218658334571624283713753964123929288475024784512403071147185121559616103997605687384696767455680099123483796124949051615785158235491049529804088668785218039206403973710108706765903200290292135994416744602623944080567770628440178466533253789140809745810394797347414223357838943348877536532660602365691032768825768650534042255853735367706472195948480979216278677048885574542504950561913927329861054387076029572679980246895224404517268353487094760925581884951718536423091369672398969979761769604859883246054896868962679386630158759855388315682646055571950400686510643164847448661226039986182487949885689840272797215319376200569709946199410946175828204625714179792672979743342029207546737281080297477996595803458980746313210165259749174943357620311555749418169347342640230079070024304384465766135751454468890379285604462207382047420965566539300100840103932148756499005708626147142519392883707495506722357864736095407313999754542731051618415860220001154709930822186296280482577884360899185610455787585697359630305828387276005953455669752948455019729823304682540807173912936166060553077500910476525389058054440336253777058414953269535356211958389361694445285622497428276302080306818791623414344348994144092330157937082170918191688074209329136334793132248457164865097737369679551154305991488462556896702798340235198947918807681362904455077295044593986240650669914110988645208175892704736063434979469161975012898301001672701284818672647245654219448352355133238869314082578148419864553180637410880265296644311510089093454407875055995651654634476054592223167704851586131326623082020341152775401972260089242619206055563224487399359948527341359663415690447134599821595809763698466572285090293587954480005114039184073260920322449181445167762453431323466191051538977655385589667824688387476874746350163742866012309421992851551932833810954200130678428310054533081281808667674362542778522601871100118506941730197692573366951546722592944282880987133895043735472655202454780274702164960774596038570138701253974743661091048656172650047615276359338594011309980707782756776357942026692749677739405715365317343613196346851285275931367510239679599324307419680169351217463092662509334839146292146280083371501508348759831009044154953172462950516029028663199316350360409072896855285231884546806338126311285689717746046989681511570159833116038516271846008155655456903036742857518255241356515196017822454203338173464710771974635351755579972146888856983451193689571602198039901149542398733257274921259634863532139490307847090023267127878520471795026371845392629990829071500947124940012767836140354290039114570242261518991807204135777602357689610018757004617152174068015095306011179928713348068251355248568642685887981376157551154447293179493227101578713162516734413496090388666286598772801711342540218068864204271110365511295897091531882561824408369514604218211678638528623682521550769690525538739546693145262802114105755189360196650886560045993557113856007531396549164480705037108402132851094130843479970101597651599927791774980209014420337669849920028850866503362543592667294146144439817622676085418931127008575324501624127027698115074950915394719045717871960074695426475794188958556117965259387149346700633644370982183098446314632822191706968698380353477747592611447258797865678002768156406719021838327508955023235877850779405932364101900164075728415891791918857572749183719679677357210704710202171736309719067334406306636420091274287707918299776761320218336501932576327818654323337926014859294158096396247172725782640354779024655965995770447872088834916561039415027426714562710894617679431069893656439898190032725685202764678345046971275231924963915578025004417006819534731948335315037255063577907809228374249732573737418188013192759629454525740066833288088801403909465331888655650640309338704086733100842160026247889664789396202596597243307401000945395309280932149204466729658767963629784523735905620870035977447856953906928024729755634647256261984052831289671353468551517241183437863824201764503464848997653246173041807021666081183134801009931766527539899693966648298123535947749922560469628483951872738009909735495367458753476445890859370022395792201196186350617512275333855634003151599263844478246094932992554693878339494629813454212195583742067746063816933571932627852250887730151251532695841861318867041498253608679367468859654677236352186156103481235533080087678331812745391883915653566783835070813272633812904691368979600708309235167733925547976289541832253006926211338130586641513917831175985016150905850154423794079975221549895452874429553085032174597775472762993811342720498935374017506376404529184829119025513082183586758473040534628298948075355348917284647924799379345851449101349378697769413089117584276304566469590938701113513968148896380867945055261545997395726198546544934527782833324794330896663479015456804135076851901268872755936863381237740479018623971097164600354900829280175383851833023940684877646238200780014727324994592919968598665150182603895530798720694906618251968153457126637827279889469206965651748495424075761077724581077788359328804077051894399923443102924936200836788851832729424879735100955890921006128396393451264990246469929737532499225663933793314749816169193493162972959740982761160230238571744131283443575703955213954678144664363090669743017822305409334775329001072144359877523812262838334233772566026136942346711163915694528650444796696515552390486820690976294008114979425113224295213987651421498219010187728237431396784062917577641598302792249847045672831120812840486351064139907819367271837469535126411007589034327251300596749740058544742107462397167721892401916490720065378491299358600528810618025499224789078577595287404573017669436561323151725287558866294513129024105754484247567961496360175362189874446610190595198403112250025570627187459358860451665451799810227596589896848206438312829306827404284347185501017503096967958250851146391741676767726665056841930967319107195712346843823202175440519969854700672873114168148070516214800636745573227690924236077746394157968808983821057920095572113315715935752205845925621266250193495604231683072354154190016217378328268196873303272137148241182631642517678122501898368365177152359605416026614669380160113537115009955307029432767246511891381367537387608179208620139945954685908112276211058022521094657487051763091579988973067852737295731730836890395290395507603730114175254521823805462969898671161198974656968786625431666756255846355294273603824824386488842096691822116456463957948726433638499067708742185840558827239845129945424030884147757452550883639360330821617668313779050957116392620563369922254948358866489572046933819865421680956786961567931138502604302116722997474289423733426041660384109582121881391689806496043453620830701411343769566165005600671996406505703384212576088791989323403146202026023124553426355299882124678197419600778223917982509469292330543456460781053736908194148136458459889787887416748543052452018176257594169209053953837252869010498127058829045720111372014743671305385931799570134996762709147100849955758412840504636819059638360186152640929196512227037213487415607837022671037402491756345751487222029347138943107556097248328506368554802120497359584164132718715159365846611357272343883159903494964684249064151255214537442697872389671641323360015197416447854358257284291711280870476468378418594582425495186574378038802441344292843875754621805728668657839701374891169069676082972095091384545356196178198581395148949902541573551900464087096100099703707031936866708788855971967384633786408188618475324675420735426176537369518265273028718002582139987790946324750209594140497937193353846108116988190058746229501125824055543925593755417530808727031741627388246284791446438362936475749355983517616052739697799901978507854373215484627727313013596115929591933902329144782072544887842643597885450088034809883217455237142588246597614962039091730996078759770305842792625508360315142300968168730124000212153243121001762400253725335181980570435728590302300929232379828794283216422889792508992136678652658205071201440083714164219257208558972218995550891922886467291524906941312695255266350968841164695703195286591260054279146023952862993691640329377070483971581777757795489280801314707377960302359578020814647813255155234422359725250605864153869596754544754204530418432384063728568649008685248921458863060598957606251084186652048515346890072690149116063228107229813020548000688354180248938640887524387889345319977492385762388682325986267287148664003461671382897064199657455959238778828822459731484989537274778599249335378127947444069449477392614071203288100396488350615478588300175834896337339287667439256140607222531238356355368512352112029980538377511492650055442288602717000495578377658948675461965037958634639387676878048572797134947148938379716174739550202463532080579551495906477686984022946244488630058917571709392097400135544489938302681570027567910290378099605441116184101846867620291739693948087261225770611085864416887279858286640037601318574253456774805901755655777732211021598078358205050323743272366634616217689232856761961984862106180962203764156143469208671069708035806891403148766253994408000779660072028013823867014411030711896032101682969359905390831670723290945440640701296138031962276306889338513134968543288977774520147777367620955973452058506537636746388111223476702587237864844144665872927091458036097911806607725114208901860557647571149194562316116482461896754401005968889688814198589970355939744039296614824615539125032241651163666989120496747158076750355719634063261149855046293741119508623639261506878794084522100686993705456017001638960147285356565685029673746659204081778285651068348271085247857861861165581667754726659653251102468254348387361776218498790156966676508670582031328398724198802361947214974289636895872623850975767670119467397699897743212938205274293787806452903618410423030780341267875846609889428490464724486571394764926821720630042345794154290965301925511590538917345202763399791920339180546538149765681628960374085223070751106561936364625640361004820087874895994680074286080599312234076987223597851143082246355237695339320991690215072254743426762899565361113865843974454221211692325892751103628554320871957120505615293736566744945823233352421472394711535558214063265862485643871362971762786183147957645601573854906487423836072595776123864937278472614892708088167378803305617866104475347698342107636986999992198350291516206700041265442531038908779554922091538737619797477334791144910500311012595539932475940530962182048824327130758735822947180575014608815753923373607910881554352883298527262893861341116795456450358053911867776587146452473944716075911136567442799570269910899961738986033212125189792276924186197134226370519749428760419791351573604784617117739557200451900497933954669002345397281456260697480986215426435139207928453288063366652694782616664497054378403858862754287925118299750462911997101752494217514768505872996086890256357658382417849687090200353812601945305467112136992639612893781807470549412415606725162617132298853372635963933030242270305661538477661329100771215860170097948242642593134453130063410506472099633318731027564967025175350722324605172214070066301851736724276531097347242504519546916034526977785467164358548440501447704884144114174106016564304946718229294941563897392774108662063776247035592266293817182198593569391071929874438913725064862472263844465920488781867335615820000957600578471409642637153619338787564161809148042723450959048218511834250916950549711838065008340520707742971225769221362543443728593484020695542237325394965326547754481847271112723778670570433810139368169760336028218952428825600903704843191262935307974680016069942350827985464929248964947584153006360992139386339040407054526142312459311831997120031730142914275702565155287706061464336295699427886382301974029209325597781504123403866079500118379668983759060183782247234210878945337096073900873079611882778098874746226162654688565697689864658625991458907580981028978716385140642091509005677828445168348091101246206654436224254170384597260923491561847331140334208235046567893435639720426673523839418608931811258085173801182837734702244320439113675744590313207645174240113283945866139626452356004748205864275739830493702210602484958066409573368533961416938714223279024452340697590777816661687016311940872903040542326825053659989781840304694454107378092595474756387404542107582111028290866938918985179757471986130102611849615952711180288423132104697011477177669817347697964214749579827129243032570866072538377706943612562851904185976682337539946736557868933838249133367505157194428082602242429828901767963185211854163857993419959511282140901251267163659381320043711050196378439781545954996472181783426387270381095071959707873173939566185678208631301722133762074619829881294502437699983958945630348154610606646410565754968033944290712048384321366848254795571119734712478968701970401290929222946437035412235811265716890791201513059355454566704492099815811576958449003785088687112528189427913439732565870544144594227335226069702245490201787080852125334469150348075127614080907437748747061951188370077027049652567509701850308283998292629897603359366948848896021963451765937173585969285637839130379698082195693949482033878896149922372882667364159341231331929643347900421353840295602348399688759684297293214017818214398573059009894464799512144317740755927239008098467386315433526469157026141119121348798087040889958696566311341270651384002687988446556633533457527446340131835726986599714108175062794659746631406160049960279772636762867936678892072912582564301460666759405829947357477892614706446604732811850004489958386844162214001439277655076929927281174922399729306059924897171897079716823413908006850131086622675597577155618046221156905786482747352097967059526340717165108184866752265487546326868679264954707222958146862773732140657450548817848456005702977260927540161584166877397940689688876770068906361376342350597760396564598772364930378712987841485544596024132159813842090707403944408845556472009294951974725559821565023754628259424175136279964494604962377138682776980005647508544117573523625941252100471521211566975515656771859776053326734915310355192293372986353978314901560638213570332410090744552514340361460255413803157592761286304588383589019540510301737307108226672269313426555801117747070771670788751225480675722507263987880296323386224225350409116079469674492388419830090969291398905886936861639738938176152222682753418815439547071046984923331129528339092802438101249305368412501210116289391191959914010656813977190383481354212952822778766781765217491874022904913477402950707984455383917987885171684616557655909283485840891198690455402033283770612954052653343566299788466939085971334370987169511909936364363963074624905019293445971389233771040643408891046258149958843271554339396583652930165672249322827677873954007000870517041907535957191326330796166741302707216159074796611277300288200145187547235517504508859247452320579387566050394931606662074475381422816497059371458347597527482402746822992969650661939028743038876928132894076295856925513873489907123914914631745441609820618074390824966509448618233288047949668381230502650601525918143704634592146390343573924360664480667183900138473854581969673336773962208375815649674380101326534319892384792313284106029755232109474926378508719477393518930491013014758837866793187320632512941171209152822587337635975555626392660422413268553496584691381969498014868846394372394794067626750383970584750357467316641993157338560215554645247114920130417545367370642223686498308980561333958070220701862385641871451063536627730789025267818965015414140254789470216964741357947355345734693569726699086498212771866849967691020795631115040844249161127988292202450470963668568868547529269218211008751705808334772492646716081987358765754810451721106242428193185989237462929370675242999518435691632013833695348407306179790825468745229424143815049183445125563054900311101210426778606115002303030591594889155428451764975613992609011568529979115473635268612457768723522821822170085187575028719119685951359161969750645500320358392715657536203517227770473631873127859439707755822204809097788455042914368883232410119271466639865894009376664883655564458288351056339149620789167345387355360518775403937558635196646048861484875219427947832112324210229822746973075599655846582382548338195499988663901355302436657607465568476885431553945836690357107986210152543328670394320941005899829029957027265388624913805930671997856158148030419945436541917444530384924573065225307089045551736253914533772109040562883503054508292422276635334672471903238653582249378111321540882297543517924206885280504699421329745888784588199695098633736953806351213704590703155882014421353114659502348913710633516254647812810282823254889636120307815714837246472256092781805102958475805216691369518031823431281669637416249883525269418117727838289013016385728394124394375578263296140010259508703319489706190744455706458495146326709039925165713972881180767508683211762665460081103579685201447289902576620691910025231656304893632606547792614120256586550895795566547875463040638291116978303651897329218817891326268732709741461817417788744435889378849817870371506213134441722214780085500250212362483553982866789562023152589203871491460132421719687707628856744829327891668591411959255872948456431031366858916017225927593118369184977996429329220496385364896689912600950187309340448230612843471385625816953731416524830289409709006929640099163807052903759116475586614824832797059998572862416723227479814086412757991350023838808439238763348868624669326751894116097956660229617578666790466200129673755436871746519350481916879371205600496721739629509864755140339723799674867627502094492133987583145185888846880223087807334987884345358678354483578570501064315818363214837965975026832471783985973617562138960413652807615534997858843281533238930129726745604287989371936957249940495522384920152913514378064790662280239921753983289907249687125688185336811309472997554560407194307200976655454933019612159997899737128462898091241551748162073270035382982650981926797054683855193715735434950908048652552794751741935854252516597089923446554601232943279152810918120246405489748150005630597466485245928598698168609439865117091211471937232463709098339057424356566508664788067748163306179565557468984068140278900031316647477710744146513161748424434970066463236087566602398077659660763837701852176796567665792645304723617978070805768852207782488742042197683742402321986474230316585109333495476276606599643974886299122795763523277559926992379988940902391936713542813575072027515174108018505191576042235032216464360930557495867014386107689566980628011121515819030718070005200089541205605941845078718635873572296643993842270214459102359942823215027280737093390632188810899006865256027429473846607691306232260332834778372546615106436991995754388074034923831483617561170534454338365443683029701835840844404506898173488569408998734081275980956354610246585007623066101369986333332943806567286890049020512102017884418697190642318615326892638544886130132634485387670092014990309663320260065261336083277294059519857812739338065171562220325617055149392383471250749710809806760383108155194816661139497642351580006894426674612144561685974102634504783680809084948832021429707618976090959746969387697908535809663813775590646330084143504269360935513567283940029854383581380721285650903586811581557591307514871966171399822343312281678364220768637802982864182485405648910531434105387403916261031916867531686166502971054290199636627472425620071899351402437573612572136326652878171106113578659719817487097659506057269316055290003647550446123953247255993350598163558282018954073818147429023251264049217446991353356155842582547495817775726940617880614173900169065316249443062301365050226742726236028607193256629971800288757103474308737901239926409644567228983973506186904547144638280639015587136272724973544797712051311763836784003052992114055984342569644330191394827313385915537777583587942823512431499304846451292822885852070722139649665702052752033834801865006465605171520857393182074353694230026298532952073413038025868726046994416671552384585955522408274116724913616907147184223255163652519350884659114967394351125938818789635481843633240781065682047077992856381677177964600745040147026510105918801377407218400531354382797131810550822290179942732980054343077160138780899226765230818064347709807513985665478463100399148005116060814364663331945380235412684922554059010693047963107584023691685509274229468161911069903002525914330484812754516706302749193875253118435721421286385239752821199427539711330451644390903064489254560487535303262788869113697238499538544032583328378498461380150220020148715205029951829067171353422098151815496430257441632609380902922251341289731245164698798110670177702070277395567929602386631620690707902279011341936366504859801212078705429109252879749842422881912052348471067934461749994350585748076214230246978743618049179569365839433014123959228128975990608023943008566729643259631446100580740705155691744838175698881742245230041235797648267858759623589136937122875222095630835795555686837371565719844575988511714567388705470769789195838319745534563684068401659210663105562620571842994613030355694569072477518963289126909867924939388829989104058880504983791643324476515595117987148629206424392458368370007444226289845724028902405072048667600591713130174397721556113828986517837308004293807306601361870738915979936300989306424226413322137040787515032060913565571029706667584912176260342500531127838458332676947732604046259101595011483758067880034154575533760347285152587449864720826952492864368820823262126276055046487976553790471736839751474083083431916208731582639797069019751286948023509513525571168018083240916832729917420188922090291726981066579185767679000299289845635504725448730154231978314964959556819418905669384337402707547391480052512076037004915872240633995792458302257048069908969413848883542710519581013471333762706741768003547127006825059099408727034145094235923240803380740850293718400033363509563292615795223694932203869204463494046031362471491825732387389662610928182799893857355337016917283149625521979147172406684602757765665015021994278509461082734874949483685922271597146927109720939241490919393573701133529909030581835323839892245830621156005455030004935366066666619698736028535053407842161583499674552296494949424311179719473226738066815631014350078543191819216944454364012252992693094230732114010176291997640260283049393412852266284355388465040451843472590180310765562364947524001464355421081664233538472204554034697976695623850842269659562472029396350964968497511957995337507321556313540615883860903455717393794203442981128671263932776159751200009647559483188514082837795044537103314954528780192047684747519380704332833234554354030439944650047771975793331753700761539344152097105729974437420294659909797004485858112630444013825978534852029739912191222255862164478470559524368037815369912823952723674959585467434985121206903026150676189844876110419120972228254752843170339326720730489674728519281094703214162587751749251672781670265985097917677736162338528421992034642183903188768622990561690008094755842008764795287998072314711442078858756370441396613899799111893465824507660251538685269434511440522497994071839420156409714011648027196864440892569052242132797196115945004132335658548020413892356773118651725649791343808141361718960873725891281631868373047529063062813257516451787859886515742548456784414909398238093875146581015829624424068736784313824751413880828041530429261315549366744726433911775943303228099711529636547849735432852178699639877992965787590742461987971219496213178035185433902608429200959908375884648919527779602412795885424080940076825795904132850886228566703372544558275079291130361498519074513338936328059058498331033699798643627365992571035132285890957281017701245184225567302244346956380532617770461450989368838236584436717155842371282660157414335100879980185612289965287602130372949509011740351121560460848478305135145059464647104693373162314596281150757972528999364388741509227657465614966642433037163131559518525964923121852179582629041142443070466837137295680915921608125023525455617665133371194882078736160140789984950506945693929063896491598706787276457304507164448808904935542325899910657994465509291288315151886257642596480112534881651598013003210867265799960231433585698242713621047439562963472637215285409982716161192712120313438841316208788983546676909483646645957989725438076193430975063489123327246255709803060485256518940656080154835946956444437430661303381563965406810746698120749203664815283142854351083792180625264051262258379769393980602396875506288810160425508842581804389620657780376494484323340911623231611596864857229225900616090721585046585584969460711663533923467170279445936830475884040205120191229389229900734125776511383489858544519371059191891175612315639336257110114058801488329496299525879372612625732242898911993953404545557080432146714119156756607713271439171196573073133414515094313686548928569904362436204005666220419923316999163302750599425924169044909076911595970628500961522908203475511107789253115167889751866801467475459846393478061575698068818887516211182695325899930189086653255915115637773473321520591732310742706226072217678816513868035623245566793746850306387511758465029919994267134099661682665588074972536025636011298699368580853389471282107929286829207213293720293942969127745511637215318836239615909593135176762198576582325580298471791151915951341568727270487129774450784613666265027963268496399138584350917551396420360738480136102230339245492827103656796606282567703701141892054986043117368960632911130270621779908430159521138227666896438351274128850379657555954476684410689072035876273751460123599788816361879849433463296356783335691025616323935198534907548500222629339949117240731719553790621168838780682349490435915016121704558219904174276002337239304704810058696441307647744320384447895034735454924884120224867378589342645265463871466068854360419635574300607746758713221785688672513749040676581828580846427466473522007084088455894909313353589634912476290458150822054360988683519696466120243752095575138755194293267233968252374935336178107608606164104616750168307346759270679828012930127649938492011331415484265851961608118943900623039760480185180331518133727425421387645308890118058503359993428680506208132898656707833781679094024393263562468818071089277448108505882047928934967639380184795268512033622982213902731480648292841141030667505734488263584886081312866171347746016449984961250824487684757739925857562534853124518143902350114102486018131284202662699470601572500316416922101920378579119707157753088023357742428683018325000015301572001861661034604079612534670194598358817244430928631273610180365078920944439533766898242922017080860661679574718658079414475442810970022542625554544632638166448143861150668696199196279835313360438560798262351240514537041544712966087519613374850644003442066357934020979307236713122228453206706544424468995622335239190965651723811325408906538431963152240747273796498030317055675421511334765691272990774516352882226762826287287147821191274675126233172990512272138119121936374560162946997871865408604404105225457099998611910635531750625472198459004107786209999847205794587154212941612178884459544712831385878792604114262334674353895924145475284073119851806135835712623143698957128892769523100825953626942371074745308367497168728888602077040132999416083540907118880283957043804596812826721455031563591276670538626657330204832058269110531158280178839159435083000474999085111709990707656522462869414342940733884927965483601722259173229610277241405246692354544590476331612631952635763148451531048336510086644904449074106462586797253772218658695908957857504600334933591609537722333881492399187955593135813524917928768663934215726347664770479824454029597898172433036792341164278687332947952229051844052296933662117923386943834553152232594224368088759487395753475105844187352763320019156269661358150358177128109795973968912845492635408603056790038141126688312839830307442919303007751840115072933885427540635114335301014080033019212425624513819031911806649488539498811362806312893689809425458831333282738311443215865304748912791670295978923253039025797832823055460525827546825912811056098953267348065146151152519516837077786466193291001372068192085971698644319963922975100403281523039725463997112189603695016391339990919770939409198664103697729806049828624116329731162460008930433433415531267840766422300701336332793434115604609522068314804432108395084405935582214871370012675446314803079108535310178892984818940524650986038995758941246246092064936150813475500640033552120693629969582433406264789191807513104854634566403267157945230505438942713627754273049298347643864299871557410658185613484414897845815929288573227879360177427468455917978489443880102145707608607550982408269085651181606232628938746809867021547410107399522069842741019691948872571082388263763846813278890975656911404814494809310834813434431292834385062624715558191578666870626883657387045258374013212728325773323671607285434502561411729410247254623641497194321513673261497565087837820536819318159459075884109934668241246442606076930959691280857299284347252420084779171797196624498995517734230075891010559835128579521082681042279231255344942945765288806643487718347541671260459249075012147013872154782412884925634904495079420904234973864365556315060431659198869843879214252852771097125137708488375076784400338746874996599650886254537649991464238187798004341213655814819683946402663349049988115638058359332386657385630977019946233816564791271092297874597759644957840082704663061050330723681009829150276030924198661802233558013631534444325807942919133806323284679237790016139345110576259360117637166063956833136010126343842393556762833731148002485718913756751433976352240700144407789967360213153963202796785397769829627479006746672016217856192608219051816455830208375354783802190528064465893057766058739478438253162596205649748614832868226777624534569506921860691341500805744896058334946038157118137758929538753828304963383171796794278341534439835860316268320850812877775301538058623282849618266493644519868777957781448217240257774699271129850264779561766992505372791370812100015766016024992169028092572255064168417083062736411172151078329113717633236151727701842018240101091723524781780345130788344251429989552550750621874037636587537469885309231151288747103106650272954214379642409312378975729171843896066470855928746427410081418691329098558876577383094725093978927418845452193238328957518025608329537278664145663415815578908509572435194239890921698594446016992603365188660002999927534366088546223419179078516797292233431923330097914682074538213039144171332521390337422355618788863201549978897362568052510925684731536469507990164942990780702294394850957649651545030707465334764788358241333355641270581613457640441555799183584886015603006982282223239219866921514637468257106167441932531738082580761254146193844609531968410515136450378888533150257157638840693858141541034459144971454692170128508480419943993266404684927158887182270581393663685802260302499513789188788113040474803935455307227157768672358537457537596080278133742841301539835517430919771529982267101461289707933962179785315131947574910282468155853206140071170896168205134511208846947127431911754321508583593818785076965956072429760932057364220028134935467937517225695712232231048824315741128317412520621509117088416114435784065595610179384618300360225112645433120768003234519237552231952698358568617582014813014832882677315328203035624119574896943692581668467729658800313193282236330311238109189260818213394657068585978520859625295777057642042326918315910938709795884316231250744182441763316626129003052441369844589709316033421858067819102802135232293931570572407743131029510545423207738860320203604750727290366470746789193205128047650911517036478792312221909474799056409757139798976028540092935453967516971355756691899973050995136315480018481868702761778842102315710052342660101304924776312537404184751272711783308383858986904164067162502984395227450844383799683730197110287855706121463134166270676817058341773671373890387813042867911776238981500326283790322993800809181535885698980266669918456191191654738854440226974729332939797983350555071917732355714625704485581878731010361779577737233330846999523835722301029723697091581649192107129637761855618281750874791004064735458898840352737523420199276479235790103788895253539265602505240084626118921145594144846178940022687471931938978436708592487331587084461449695905569897081431431432738433375818227988129739795161422979090189214160247075386564264380417567543123481954861395383062770608731097312788028105942325177257804571693893604408053210100033905589450824718005221511010749657257543774857226277427359974850065545096711982420913214013055295569539343840556485468747267800222183617339652429096978978484889598128598530515735284276999354815952790847593953094590419687901341252068207563988711417217516374979523740582591537122920233538204922443659564740393521273805988561834329928638783356503583601559968767549901582003205788674957780217066347462723527248174313830776476505598039290626904656495055672287091757681360209901116193833091418366748054215759794276150951878442202321724796066728762640194711363231051970506674204658935343623964461108809561892081446210428636067177691140020814987998711919647162273964855499346033515711901580498885786547562206091255881359333681916731415459083350133701273454653304407967383535348711698670999781641868694134998912406419394450294410323127941642130380097549914319713813379610190245042527388590623587635499779179821163876777802388827975702275591255826950671955405860955606640568782474077615612940082307462960662443125997002813694131060190495244038398683756752995663237151657664685876856757783577085707708389155468712167763041383311077936019150134113855083683017141853451909655399173415156679166448841171270099648692708091931076498904954659166357798027470307389410486036819390208994974868960075578543636042031664909416664739659461991450037035716156312202367033309680004521701856911945968558368943722769729594769984764251471842051555370086200570040419012619864680496832637062394901790613441086850134539495596828768090799543603321285747349429719307010943331335330796437941061290618591930985973487548415234253776471884087903565160186558879188924832832719378609644160264234674912421089075274780250579348042802683788010261468869701906637341509858854487949414330647667015641302644600729867825362322032704061143912121329559095035593710276770342605177569559725303003685698245473861775020297241700450532807098792153521592616999795715194660698167646076196314325742458069082901572067433620801392108049106604094640725345578373142778932514712969219749865220923381961694398698733647811387162723438130520343909952502442059723083738712980243271607556474056719653150099423573803208864057178184838685029941832272787017048080843993596794793853671642142453974051502164033440138518466431034618578829941287823236339296816776369887120815597340383530220863351229382423646264224349954780304310049228508139234266401803271320022140812821372823229829164945413667619475613667423645485712746445368992595327039255367476027610226505276653951841267590172982242555612016200985548488318495292248598061290150578211935320666426767716700587995139207527477192537487522749472939340832615843353797092944116345063092150999316554567484797019313538619670139434725567410050686216736676185357279434537888429516959670190370188304453319854692812938972538983394359723214066265296755705268797351628781008775091957761724266792278030904570352193107870273717158586292583629434932810144574794421916906699015804155427853796109864456717683912230883179009912796256327503588513649526948217510418900954693921471747676374913300576116145509087570235959481197449954249575825528039501414445883494091087886205604832184325223435241757475866954758313034502232359627464794253069772609542229925693445181994818087014539998306135826183895194006720236834025217205900579340381999701661963638088646634222187924861342503385373125973516545619873199159593270180559922240714075340784938416145410896503891942383974592247706429448972687032424623210586770353099767298468650679830593688580048451115138990487371637701427867753929386322884213604570675078162013430271097974677099177312779424561354933983227243372663624922588795418468347638068465705236844929482016825416780720879520038119632151245298546475113476178426978846325830752246598104693831459422116169335527073916927649330010186320444802984941931357503584783897108116492438508886435600308915562041539695737748389563818533522578434079550412385322237080697560690956047626939578284466631060009334564040257739041770249668254055072245882117775361878351767656182053592415766852900699091692497917704623866519457310059907544954583677450310479566021877289963069012398896454394129213227276123754551233550528872189597393593423571024125566842919108166368553950717141021443386216134306543068798328229662013854729721950650564853004061974759082665557514254931550177975817320420053559026438596678507518976125055062631508603166306782762388110368984995361599242718703396756736403503955386602686835856485886104664038615840959912640533449523324489247872005077963171817241184490839701043098514915724029996636956718226386349748684434941511423072835406470769097477793476800389450808747478015142028319411936573106063327471238427221352808252707623945989134220392678000524527591231650559944344696423109650945076962472542319464799076897213337288296349744193266991111935084811971054868425967690140878096196202601677001017453888070528800584590619630963664893615525137243695841598051105637332899257099661616112963406898985296199829328595579780041115148581616515030019253202490965331431674971442770839380272514502481236729376021661220019307725739976393587495457800397899197828691005786686561890362948500207239410433263456625907852071704486802211182077471025823675657818127125560388995342455547300919956904378827671458810407135071582272996793881341711889106960716760972622292526213521319635501121103945816969514732468398269926160401135237731709153959282333224059987892156288186123985120614921178537374400497236706343743250388931982123631384600747619117655485397909109627748224757101224258561470564792206749823010974129020553345949960073184709760108231052835385179215052770499482430924417950859707108184470012960719137428724978055394027127406378635709634788165622183280479662729249765209409968002740731266214976254546443828518574555580743738653644382815804069800451653978364181723621584187070696989648871041498794229058196112136741028161923832781515234065592410388091955428500287102312585207816641881649376537705129309081846502056350870275794061723541537481452246836692173298230609720323099093059821626674125115426908315702859247960344483183445725865817889289156519223256882720022885044513331633697178382172996021946869906573685670545160282646746108535854748336820141892066621886533434874590984487769433131749867712293165310989142925329356774682171004736317186048664862442310529054420659531061042946039983787559685756712697544410915114698585004777746364370885390829462195104338390471719590060809139436828402751872215527070039884855686468724790824098920924363766319504029608717862124063831307955056543314457221240859002615649252914740221538564080291321892557355316106797670760672862568957229475259338046095543694554069932458815928577050226407803065278558388234772555101978873633173467341043992867147767123432792587105019407500372363926071424935820185892569708428965869869167797954423577599365711734053340354757590101443515706238647363506833070638900111338297956483298592636971512454218801312734953960155376716036579420353964244101741505471003167734771463516048772214073186416531034828522319196707773187768150511089312213037763623763278971808263597165806420896097503213518261466874375518364175080178586471249943689111629900470276766068901927653057738762774646221166413366453163839732318911680786315049936121245660137340941376810821728022179568225030811996045237009330922760507290667639033326431814541002869113099465797838041974163929943371640395346553429396768092471724110819553950285988377241378969739961111907562798525105846395165593773252966066690630599097972376722884423070545792286113610248908643404368520303033959855579999227946945954205503511989912351289263661079851174963746564707506253935175762321055102166703547951128716235968612529576083330463684014036164481038262121564791332496242364632320402162334876861040577213769724813721538593862318700779646298526990960169011146557584219102417311665722395918570775719709782931804183841127647419909141721911523483295878088731950792850141661978653903800144201781898803737194962894368439704718814179198493225469396682752564410245109410287793042042563722606564109389790313426570603381233767482998759203370435139244792302775439722536012333966379219906011614441130361328816214968624458471425643826278336510306170812582258923525052499647350365334967049185453202956519184298285748010192858214343427744247824452469292785081164289411245653448341389937019179401930556843605855411014146814664389349371397174307927226670537467502670506517112331083683543890964937978971050828995603658052190696630196095628341513733981502297866083858138183894539600189521564679010814614803803458840082573304773255591392291976582293717170831320594489796762983720822560558445254228747804597462817467351554844370318401097220880623290981510007347268769992361332034903946359586396496494267558395908085788430279636863547497648914363648822048536843703186463591513686789276588124252116535968529620701644671674595294370525872799486625807102026124972491597356015506005034201936219300907990487992688748086054584598494833344405598603569040546654351351557386704098158857571318589116657383418877293694765254995110961483820714275821620957323963578945360295554271447653730206195685653625714953634786228852836630281411142447747023103213497987239349604856737542772320012837400127915474899521235202775395138337369193856212645116359148419836009298672118200375081161158079064775297882886471538850399954003957957388443757392387098294138735603980133414093619038401694537177192443158045134197630822097587330202285015473617464861646617698050206796098595562001951749103081441231502425074867874239975811270811817009320876778594470073085919792138632593711860748222281615234698889057174593984696452830375520778406642232921640931496726927244938059539102368389364147348706918322947750728993949380337881738428457503589102188954583013025762160360128514742773775680518372338679108606273255190218201174580543715046381916446514945870531982271783022813858485593243964504397670921969539815398202201077521793093206837347056019632652111475418877668768197045403785064899960934737623655506674542516963179025353785101520323984351695000774520039715036803664636036512857155091990616982537919127403316571084033080511140584429724735968910925063455304901180159330718433543386018568920208369540650398038157579802253461284466695612476117286672282241300380941236951562770463404130436614394098158288748703366897291479271480628605672484548923788657351208705547241027521950578161450774959237651611322158658646109145649948275208405437447660425195900752999949763187904166069849919828897659573049873587782827838670689801535837121498629926269523528496900807600859267729167794783478010061151798856097695900733481931356841646819892324766273335210632136614719284395576771315107750836908014944155666623308127367359062264938473722157659485369799811698275572949772274127643490892724009689536917400013400437801596593444088003023695455631585770660540693906545821697140296501569574457073506946657314775073944213487397329661493619662298115241448954033801994577400630481677226131947283702162323924358114869472483636847763498024886609708159581050104165553209736448385659430290987294545914165641747369501391885186769965349124721685213427324386738260375396632989539842189171986643167938771888852450478959869487112494472652071814254108629390682084828103917303820763023046101189141501627995234862817473267920549084381931571505375670266285433915931043142245300493871905641166918051555093691236029628202486455387765672706990242303273930199703265536567977599754522825501987589789180561517102843364462940775612370475366688581521819144488446061751611348862421377031952617172581577086665729930846309896394476325714903299044700808234598485863890841110953393038085382898363719596220858816171745794640845149070008674091857350777917730900743345655789150083983249589579192208625589115832711731651446247084323158806419180896883093628343170690986295431249451905871960018411846387889984759747885709138779195776546574360996843505605135721570770227630465527811122564550363439847102553476045373597583241472941823809515933527678285783777866323403170685035528072288900576772974134104276901472531635256776237302762914781878025727558644125940207114208790466468910663481354920496871341746028314853693794577642619537982302058985762453128222081462263687966677128913947803219549045060911479829293368440148337747348390585465332451183202734027642653739299493597714017307684449569310891122441168539685148339667503522315312215810481991197784785381345263102914032823676463125783384250372605119802067538919139591413424254900012609561558135183935579572677118443163796412949127196156896360811448035179978793406420927861300844534397192654024413514868581547737499186648981268216052769084506678123667765644616857044279592920372926131736989537510758706856239975252436888606484744892984356063950357160574600572763767227234385341052022352563538839624830195283905211770032975213594433847084456938916907393560992846376290504516514027039637037904515465561576143505669234466391368655980163159900505329237972887510612656275550847519507379402830715041316938257089342295003579296621046044962797741113540421647120599962664912935239591794960741167870590168420386484964526711373207196727036619036778143316544022361421626634900145125594128637439738060303163421993805487750195450166040412409117966922430552609522226007715511416173741211312241862447928986715423972958958522641119996833158367824432782701969248153846403505787994662034994098803416589124121674668413463799295967700481803257518794247529370822262765714609759358813877695107039785343131515271224823499293674119306963220853971586264358141456275166358555489861661171991445923033391371055358737749738660854843994346417346482071240848337988995298341177119769660118381845436694979855973770275523056542973006620831071407202912776059560075378512195324763730337240967121534864066540608723395690704868966299164431330197166957988351087288678972672061411662743771843859779504710985299812018465336884292784326239843472846968283470382307818868944911087720819531091078214126674829750143777578731938540934818692961083191503393313599276340196337360363873946856177051613962644100189673462149498595631366367083362858715951366601081355753002870422923894405728256534134661454655384230666612596375829005507840780381890248291849711867758431803200649874361852675036980545006673964344428326900330676604887991968435686783268535290870589180855042437529362658796086722801164776461669158642259902678020111424097773417466826121902570792421427256489900743456930658274416107097022067854838753672829561174799227010924716645575625325218239426756528552977100484040981616511165864554177361355150779197598714710013702040418959196238995634074623191945489051095395083744355108550005210857190638514657260228914708312971359398215239898766004471561997216207694975925945193101307994772810427440146248436876828755448153654012283550497526499074041247254213015713586900766487006873720756387049942259768669291856713413353296542152853322347194456542404622328658074519981793254821791898791320429688909046655846804383178424315570420079325409097351488603792762021730252918933423075996003403669157126722033735790135597837091421058032347711073608404656835878728518548976977334373439238654907099027083123733692141691876859629461384064559628310688806564119510490450992746891091070966398282875567244881179617282519202998261281570208718664531364551582126981356378523033575425636664059335131295381187239621616931457017366224157763839622928447966414419359645693041694574243886640942836191968999285115739712463435019623841759381613449356802496840129767592611372802643449244235397538572633597642648546522622146519503385613254968984769698552125489450255916521197424571931816998790480940504810571926201244698416337030768807819015197280764220811956167793948047614839522315545286506195663282367297061552168512769716826828913213276090655547171072390786107975816712843016765766036311721053529412659310495548483672896800052070735246681776951186255946007504026394116335081643063735983606994618930939359255397238908300931336853510918221036802516709487055750340270828861935427553447252736552245239232809101900832509455543831844068580843847781874504572972824444084072641369245858153733851236312466715063456166612276387844160451409370605037279655571699882964628624472631787440725117727195652779391627245730416494754927935402164563878288147335198399378675471805281723107734440587583781394340753005275258138246350241269874715000571634447940101531387978079633225058689247182775176203461132133829279625065565090635651565296393517563598161100664602798118906653021585375962457858465048818787131301934901034330481139612886593120615254537436301032637161967059518643531543841020175731105622959476454266883846001599585392305718549919250093945562811496916355380173322968171599778890577311063109018040340759266366138960602628684654241681230778148839219661572503378781421613385505063101585473631927701978532040750257099906276676372630125131889588295637243718762853623069891718952907442229626981943217690688974353289677103035298467295190767871946737244704692055074666106051757850468126955859366140473766849543248974710034311119070109609445566482629429147218205274781763169236319743401184766653918231814991257009787168296334401902192966441857669699442225321419536543025171542862678144292544512261806184863328307704046309061572836700295444502627185673008998606266206193675315406653826415229004978713890050624126395684058307427620008552425858852344055313949078446037439816613950991580567029266129774195014892179947936842042070110945972766695361872370157713155316640982315344627669629213449684864388607434185092246000864020322440956218096878415940799459747088310560802882010079570266720308879329520943171865445707968395104036485003554995991731654553071136743946519184176331943076602213638083771689318444866925162937195974782867262683610322518081715220310440062722705755240719524327271817292114875388365938675377683924205056380603947679369148684698722800320874274241838699362857376612806010279254680505148390739280780775006763484881035627384988894640677940462754506053876967423791588602083769101515363356796117781028770516782733618238531004295357780553405961962063190357579221547797812808223180451712030652580341197471278388301796938912988568738206324909361662229911110390058702809675342200718292524327582992112880425514648795136995428481600642176250477531456104091824665320844684853109288054192698591509878271335193789904584399633632928804264164909410140484441280339772237539981156946216499555251246117564117008111391593707971884785199594638717538977304040043344989984601213112406270170469550218823382459121483017142759142675460361269282303639640569393537977298410621944638801497566606295223831202942638777097921203768351714490090151642273719148258516797675890915666192310836942378108702736122796404243673517534038317395369264179184887893638628759631760963896395252584393099983667291286733356419925730117953385623051309069953956032957588742274028697868509125770324016390769699907600584002473660627704273901620569237193905923576750669468419703679084988567980694631045088520386618325651075702894164833336647309643624157011363091959142656614118442930252553082155721160919478980815188840276786075879907753676102451111335903486322396330392068958497567890299059958297373211182001424381022082939812015532477580361878253408757860684932261141731475701584533624089708436915249180410541548477824396330728635424960715979339634010853138451486703452033692837080876389665332305599213164548601105683483983743533601994018804314113485493600674677399502248233878534816391695265300844164193722359038179207015538289419917928178067032768711957577528107164429239154409278391284646837447705220592576093372163617274177120653429302244700202275106862330208452777583328208321767124462486612761086611773518317039559286085056089543109431875457368155252633828683537179320415301323090554583402922421683216103495154495102763435116729992098721527022231697703024717291116416684444407063109946534371067538953553164716927060365578902371440707080714023370976681982239757554751683029086554770346257158424625631373190438262673448827982802902845903171539608863353180824068642712674351880087567677959186580406125482769783579653682754268867134807812873507087105179877062033781642856183573236092621630220132167854595061001628151305830466282444003966330322522935050677493798753035332955335017091120350518954108000962471884378252494873056364709825077337072936334489884256247249518821810258354451613889376447055205768759161718389916900176061309134111200661418057519524592742973956158095423937136755317823413239968616899495182179672183565831736500718857820067497766279329668559577636987284983477979901953965605266692197712777732707068505754754436935374815518019034419246434761225092385771870477687453726605201970067268664900067283141470150808063029396005799215233400772959259956586341518792801158365306122511304592322843675865086687070865066078733661438606032748717930869428827775251540107869354748837951211409193454029384588980170217140077104936026964724959579840925328164711692374049214132968738550227921273044771421488867420166935529748585448072925836471331391538527471850138708244732766767992308230185610084608031658011871919000030442437491729137856810405202592249840816653960484415325265149182293550692015807689361171118698240254332028565315934156422426279513307476056881943854972906417099948662556331504572677004695700061585083335442277620038752501547737175786203699208586315944387497783294814852542337040967663254535695978633006077659057167192155801323166873247056326055207993845828489744628252040508997811215954592343721721249390607549119390508516275251474394471329705640535913530137438084798696111198955359879068124852737329873766327372740908920186677097048010844310252302828894209044690955365565805698077234313086482518928639345684127525962460167661896516825156341408313905927253112680365747726108661503895186583934577742436479499148073537998036255852266083685303322576398950438309591692895734489416043296842563725181651376199833466687890756388411638362599367877001572369966383260215461387798163343195336097874752626412330492599861883495114252417136687797787047248456131600728107399360755461416794413102131869532997472256354037731103456677424350748178165721204506246407586070681599423511107515990799765586472154410909605090600530676032798421975624721272247047474163038041322461965473478859456572358336427352538292455240255563611185658518811235331345921181585156997771724285068750230531005800346934134236307797219792670418582239781845262322850679112827478042796244214422862275694787610530744019594813120093891247507238020473978448286543297711176811658769424398578478900591144948448358688122542706088275127324265326294828606915731668033575084383914061556740543501947692613067130738613599358389642686189944484025319446445094100915688546418301122117845481023520422054207169443240557207107454927937491796567828564474891123749451339011816088608431334324880038781392760139280180437760592907906152433749393794761234595035114093198699816332612311295253066654658668798914307741019950890927680154784054185662564217587270725309304933102024189846847223943747714314732516195046867452903690255489633762312948221226463468638347001013373433603573977714566531347359574465080252282966531883278245304578776362500098746643665733439861774929653781684402247831209761317169810585175059101697554446674252061011520675857465531583822563282513518791144069507302373595782341116292483759450589939008174133300752173774778448494950467001844946915394965752930578432659172119574854603299901620868279643970488381192374720133118808420213992208927987906798013502070559211459983365008178752185572553181564352044206449156549647373932854797090696443691360220765669127973619670777513638695385262646208867634577337736581918013596773591695524423627387923031193274618330238927092749618751606253158095758600239524218914852385843805317103459597657893233978616833422388643366917174984103995998347551831927049733945367729971156075003252848623475933006242666991887511877294944950362195665832373944689180476911867863460727832907531384311862482351818238622877668757423539004636208508099232539862998964057628927078732646092577050091594175468812233107517887286445487879895067101802388951038888230708331574993420351829676557610962947208737928906652353149161362584552886766065690856197260393385023770067098706309486356381370117909013280107960765589435473273998761526566584642333677307451455532539580708946981597258335329761860444247977633294416052061580837573470904261588247011938210635208877173793499717476126399076178328325262697110822839515123314129566412953622835578012742508836591523773378573764722061465343349692005547832611420645928503136068369284497496377399072434714846105370488504664746416918865216555854152975866872496125010247161325222050688429808580661092195057612810221807005453932133214278959687861565791207612392512649346680492734490479414880873188992348929863799853427594120179609378368828916729027197169737902344833137254078647824571060777204549661589110442413750342179751301458519057009237025736431050555454602965330343751843528166357610008049959979539695800952773715002487051020592736275639298352571750983712425024883833005861523127428733578882448632931545198452553071044840282766963986185288651408775147884210508134807345545530338391388532857061408740729681397607293352078514191390373785276847414642017839686002359986026860020498143062044357855013741844641014256916130223220730329881304039892223710294064527372401125618622300597498871716898151262945349744240155471096620944070565599222733845395977504447818598610954414694987221907349107554092059594846766184833749089222779259507383891821380743035283318912608307565792916218872530159064069331314627598800168643990565235700473000969140392613463552103992303484219658886426455391257544401740168671600744983353387369610690311598447407623419316099321797135866888211852151321975382658001232552510524182726324097532265699878675721843355750878442315769903389616444586649413768993915594293731849747341064151084809419221155179035080812014284605938547814098457319740150226056208954624173845417756173654884573803712645123880719415295768519839966734309848995928988131391084499117873301010773155931221223855118974416225417000208206790033693957398038943774860710382759341975911148422824191339620396392543889749841535817727711726856330244636734348178794728570186672327644814840354100179978741690247399338925177149670706276931106375577189199957081951403220322757948407587130425082869425654407408887660143840273339397924072021674527328608731779476202333270035703785827903891917631280862922929365302981313087755381527111749954617653510629860789172781580191660115325318004025433975800941822486171915683821292157990940841750560372979403571056079797599647465688128361699292852198526908731846744416958252825624196322667859301533861870992658862043660015764425375484953828216985750914636140300826783783861295714930767407206521013152256543684375792374594006005184022534302965029896011225383205969605900610897858559210720602190165539233352116913603485517868140625247169144378799518517075459414710272231538210494302350211832537677060672129678684523683451454090979871383725741840855587858725934668120164994268669156071301374647976260639109741926808407666118379461660578593256671508246866749927462761102481564527296601862772682275231354436931041838085375744164755516998272065104650074931406213043017924237895381450291938455200827520618607672324177754803716973496959156054033891625821488759579247204905114626595052837808756966977467218617447275784045592842649100434124154837616082284241805096487734880855521650792675017686879179283610196708003664706026403585142551622379925865869133540232933879827340591581937900210490742470208806174630031565584728789909657555297373862985969266724873949518760169171909333906023455669553232684033306933623358355079915292694867403122450951457832925338071628709440256133772484564230597928589180053555674206279770825247746665700955881428764783002607418787737268140780482512754346346161262902075247805866116204679563731597163872969376043587376645632762965815929837677269754400165826601125263522555851676067969276522334249196591145315235224351000666236311713595764589799221712693912596579891074259816284641341190227834248584888810080194765200886841111831375168419453823358590977973580806221685647529381517789498348175329460951305567625859698080091732086769058009532346310367388514453320538929475921626029363729211435248886520587868108078824319848497703039412890467701544382348005889764026239759420094823467515812157530128566405095493262759296364748372781530510042849999086658683941912675029801445134295462441572792268888980954622220013019956521260004485691682733870155071537095082850900123866168805140255698264048860377795034692798633786437409475377270680664738223283803126596560714182773382784562297309569306533362309234705216708777484577118503117844554148147966745977312995654807082708907665367690200752390400328883362429425301109663590909253531323049729147738806732553128212442793431976437844252283211258298988989016740362523270933909194498989659643937391846596206623775194568308794086791928727300907326696698788792493320397326619103742542309505086895029872093782950574925152126315250945891309889378507197916360823141722180455741632771362112972014465708070118131521939311283606852903716078921832452875008504946275037530203474421973768958199945984378668484376841796198145214864603915928343955278414990946539705320252436493019099748970015450149077495436288082269213847056938793096024589003776632818301112448165129701938874332830426574152623775161036864028220431295066984753748067451079313542470599654882304071601521196172719482647736019141451691968668777663048067778361077863990946516352929162749029012119286550666278516465893358283838691291936716387601511257597272819685681163995054842719680320515389444100291504502043116595166856346053075852488014758897625892344987736587057247783177743336322105250037390563098853937222678050385036032996556546417895155679566528085111968887795150261254510650846174882350650485391759205141262191257050155468604583166846397967131913517774671088089119122792485764846674533503850818658034968728578351071429895592581213747096354151895428851030810851997055872961927677222352732426476840036726237491772845186380551968785842876156735036073862228140158786511154540384665619501681151118430805952047014770028389801471192602417261761146540266249050150026221953045037198176983136651374797211966067377552722776085337530497045711586503785774725405682344605696705621052485128420935935875713284357898176405654991516346292700245430945348297286431331228195321129518705509663949657218539477652435139948299051850045781190327739572592638550600196764045080693728144381784858008158991417669537613950470618880574215433487763478536214594423823923125895714035385366236915615728606010529979451088677741032496151175043063562645680801890911437743411370803004523312527965927073032778621178458019265178764938913759701121151888941216457599462559876907462626985201287306584135981071389987482080603487754266845534548938473124924546150426402886793133340585038406043180117381439120819211730106342372972208165264595408511850174871849693715302109782880106923095601734663587348305246356809444161906068096889015627747713449982553502882456713042203679821214225264022194592628974727056413796075617319067849799186819864484790191071235078797650266179461973014940129289527624285098897736850221254022464644969025040141869057895104951046993594322952949412702579485072930740817859939531496528041589442337688615870548834015853550362575554383728168307595712589326302837721052856974529763759861951409570039839908056098221473241641380439672038643835039883459202758317864736823277158357345449566781814312706750171538043977518459548803790126202441021076772317056618479451840434518132539265047334911150481828090196586539540320974323840864861627649007711977126530768380696468542954153913166139174993653100988245789059978897581437835048917735103200966105244845872064918339145301688831817778992312736761929239977820078657952034194931641706809765622924190903282854922325994480224103631376573768997781049066233087221640957615754625657998006989164780390557351609050017801754484574264572272762630704026926845073268105943007331069888618790846097551328494813222184638422910839896249392063169009351768432374122991624692721748785068365775109855463718410837877146698408154262162520785968258418203428081332781738979262911725345343576428015979886867608836547158145643169761545496203073037672814448291934151952882197347613677278014052852737458244506603335993631054132973178921539320157395092165556573523048736357377421396179691172212160467524990374080248972073738969571098919490855149636559504517429244089023167609859360794147404455044922178871616892848027947907546263400990089860080551695723034232347356592093898083743758759041099980898137484077245485163302789364277647076561873712165907012917269751838669887106592147066151764590323237865006418418664000949453783104550911386110071652621337592157510102940012206928689911875497487784776241988311347087956618497897239577343259029543218640940566550100210380279213114375767749216912999274905588620884634128625392809150964105550452683547340211211670000362321997233891456407635735303383515521736483089995395147796649991876285583579295296752408183692539309261808426424491536469003731636791242961396362727709754025374764641389111639537732794847868064279975660414084616305869054179498755776007826596578895987531381912660187184106234452212523341421800267348316891694833837572888762198435696018282304911824315471132244565444382112987635292715166264546109897420976924965518112328044143977655689020335204241555753379529470229034679813936244280937759741051630730977045291632170539803878181607400223390965313992143839533856305175968878536241072682478248494359104800963824607446776818705812029196576494263725834874187078332446080036692668488140158018721512187845761328722722943236741163154465985021948969004537208056913379511690255381391188824131365340047295710603922366426814717398718732451591022953613345235520974344910645069094355722965582457536831564946381122704150950561515895928623811752698019314003940873506677455967881663000569328022777231436938649449501790568932196718243211433657157095436765614898285878919876523753375499425938433025138561559575460651101953646010726954642203881683523694121265228965163680927630466722213038714039644742336411485313623160307696818919929486332553380254461703383779976065535379949630744227590104397193899612299925197632558637747975477237722987616726352188290114736544176753586285124912500228644988302561082684534110719949450525453643866196827174680149311362459334311799911145342058304480765776408624424564535036747533996671024323597458312363632341460116025270608019270418945734652948225041815531294914697367418503049380923823788990404818841710520035560276390675299365121151198005505578527983493952440270624803736086673825995303159396035147098880623322402553150186631123440283387318333298001778252657970361105642531777442026217958359040420576783158476983222166728737481348195462635089924390360783810707750644833128559752072678919830430598424411549740435491280833456510623380093048975276776058066960526792419215589560371791464598270170024395647499497923859027402920882450094728811739263172377826464803290138355912357280756502204497414931872889920266506431851342517952142206495962324364457505038397509908830335810534342166095176837822341182328675809362447022872850718018487404151580585541754248333054911448686088120877703383083792054800469949188676742296864757231542127321167469327842047383063798929171014421326873393699500982066403474156115460817085471520927110684254338593466139632069660962125876947881325312588027225525649090490089980172862189439933766241953899323496564281601331422640356672129424497041379076956717644047439246850980177270604147032703761620148270597478326721842323501437779597547017868651807403708959904888276785089905569408985741130373549179820111620044304358964198538403863613351742801719665566315650878867610935288267137117459183856737355533550441092205201371444024554291692463822766874102149342461674502773531872270061177211523796873528450331083871113020831625207211785176545653223522044735582178625693284896878907645177816562584531395760278346884976426495304674281167630217354218085884272836466774542793062946441640572245546638145239209747694136527745779587466985315029585747601522440829086301833408399566254372315355717093721942586753990578281911406964517378421280715390086740323031741679483319544474871036298399383709910569595430604257523210718123670711530578410643833244602342962937534404238579124922188252560564241844956956790795627778234147157114201389750409571390210449172206599710996888565406285696067997587433350852662776664517382580774115626894590185876527208278430675138896574896640692342954427778979121871302132166037539431459805220701179369865159125420259488972787870468261178985870891786544369056533565939654721972109729493593769960151343741061618631592297919236164411146382979011576544076286945603701920738793850536202000405344246656291326697859752208162241965853679892596016204264515685882189784390285428697241119547971849549437099335717025505512067316979441445594095916266693955088095442261232314550728731503219024427969182035591418025181577659782840815478347521148060742004757431374815560617309397269388151276835349061936975245834198455672719109172945824484798398042464069979264374084647833106933528812485223950229739776584493538049820909613348521892097476120525084291643842785749169424107766712060212777536168379062113882828440320347117307106568346759346054469015819328738702755932617316414718036967301839509430312280473639039555373656030757783673452293077713080748018938396270115083899736742193538433069632644088804897037070589788825426974885382042709102520980702586915484334557501399044207343184299439520149567835158578738420548686400599710832256056003465727021662002031939645836925090394041502703371694454153569511810189664393414072143180062341268468990708309671935128663310509782847764039094295419183793858785648762725599070749005987614477073736582510449650532841531321695680506155129829779762949477343018426185992846122359053737232399601018588628882049586504501957874513695428585822040544209012283719554507515390765636739757419661534590023033564967366611662729436269690485926702189296860048784506397226576891487134171904723913955939109565870310124349675175302904138241902556336795428207968200646963953624689221986552525379812166291552486261618897819717084036212590325527517166670984106789402947991117728667334985729678335704342877150820933540058046744090784026757837801444520641879679451922924259696533679673384972772599257765871028959355089583905400061022514230895681061705600838091155465339238937280271786395749547491804214751966593140539305155761541099890199240359693414712849570457226828803343035160947686280116936131445275807098518257790936642867920407906011485639578479006381768721505217431456779389868743948000731253548987823253391931979094575087524674723863884319337267546100072711462130125433219147746807388501747171785460691574625012500921866394374295195487339664938964504737457025062536823023023886621418128199861578946867784630410611087039541848394701109111531228594208771674046168788599707021414674888828055999301815591981042353258694820906318519811725631260772818428986072144543677786021381111946527218195650616466300725154996484965651025240738964174161396048167152999318110370449118987246406718724652128371873004008043606525431185987488041172605760804919596831441861120007801266035063612528898351755451758327109169053385570631922813496253403986146032517567488153199169801869030208087082376870906211534675782481782186018658802063686553177445763418298361362848181979034153625604229553809701870043048502527688604228521035678370271518652081953336955246926411224858512258225201470887440653194804960228426606775556975748069095304032809622575953446616846032321796277304458669227011221701124983626002819367067594148311719572402430587608752275525150451979990653890516659196345812061679027721290623733046075737106829922169204632820000405116187701397689059477812815301830583576297530690100872023319682269119401396755647291270199052965385185956674979042406306223900823685846370672051350923195063733679624109181193101348048955800117312754687587943977483607386775290208130940001505050217887209421518100019432562507785630972236384725794131030842784653673198739514334109165685419701774631512250643759642107152863405903157004062257411572262623146620762743364468082903862012050801585176690881237475257821339915956831279065599799426142962870815061483436043333107184699946202151098118131764104202852047516915920066492160519333817913650559294628490547308835126657008730775701398229615817555216219739162520626309009271628805394218394479928391352449059226075063628985081711330736475554624675653003893794131876816819805036528645866349147444460846385394706701473021662363141865348826484808044576995623690468459275651490005239506743678838637719977169746865716848319654678670166516843824490121582428228280039815578128144696861169388861313636700793520249057932491515808060833733177476515947825767231116676068960526526647386954175534970155342202972709152867816812256486190717796388791392696589931898433179266744515227640402828935718513126018790467129664004768326771926166138263955013204786573286626319643473720042564849243233918105559168843998147095301004009695679598684061879388201259931625808671555016286930056424744961226318063561895072148188309517385833861670452126434277827189194242570455431374733588808189697808874168835155481602468353380313341482602236709497680201244418082678031724553360114274878381161363389794579735373307846724252284118730750334313643138891276820101313733102176573185706173900016050977964802279370863255761128121353389649548631135249862295433836954311601620976450801394910683496733803134931751641928592619059173205156853768013622073049905889719830931518715899638264783607059804012460852601335530771060832868411964656841747847231330922297416015696438475974591854806856877046688387985079441524814912579045283420197843718594931372116463341539968334639819228387798235371059760040911887309690556249978889283705667907007650804674701819922150376261051193777856667524635186376175307187258195102515840576693132033495146027496174943931801818932654307825234339346485494602665744080900780123826480751786182008278563452785215817988686797738917379543125619966869444639910973359202614912587320661132263868746517102903101473452136834731118207873390235275430460991631823730496069983587389048824474909011623632307698682899960853308197860091295561857276079349565815442180750395564160867960166202148469158512849978603481003467286803010943185513265136987041840367744319254907543220356323417307121064027223028732582046177893361241865251666209617087749436246528682758190156211949968330886924068279829902731291436281665035376780751172505000956639547119943624196883667213717881126514372949819500641028433730940394113935446381067052520454125475910457493459870737349967723380380452190385916595264594179422567788702183352950729221366255440153516978166473802641563693793078693577646426345257200816972096734488434339173910960102647769163291148829897830980982202630625135219160376265402525617220061824826217045273707776882133496128748564469312113468959355235269919059432751746392100686958635916107123034571171279110322297454032687803963185426141783482044906979508528272583035697862292523195628050644514132872948664627858207157795412990667761888731387830591243124789971070884140709117942038925504451706435901785877217147602169242291401192730240944916634978962184912370766707416547421600767974198671571348286322490297951925608439023101469202737948278170432116143581366963613662962667393930494911525083463524989285268684219426653832018815882341050214618181593432887435765634762672314549015558988926831999998609579346467649546231768031317557378384121697063590218633287048980565131613784085758148993062095192562304800171605084805838549154614431872087342572800822459046990741247346109718381819672470449608109730189120929436217019096697400929655590793696007447379702950086960361381574825816084205976583248494926868193211733466525299258185076339453719241489690291485338984042939343962134666987108626238302194804087300704261128705944157453912535022573416188927408802080107552867682218813356663872445562651365549928157605924355654350859602287397295360440962081654550555649505470224371113212548543913610962781098164686756016838187289235341634601928412725128458602851082636302704544783708570396371958931773189906936425512711389953853727824219695948309375862925008190963145223807798154575025325544132541722615818459894378931020307214201771964646771276076070496197368650089005126288853070312761267522358020502713410241092346372906094430256040245677439924835621332746696381261347851918782116459173650577177254926181412048338538885799457789492844338034997770315194001316473464310775080981366443016128032338906769260331557715279915197321016496824574423910907484635521904647922984332933063643045444249892726080717934883084019637642871004277857662790539252796959061286655985179654332117578918937839083775740267176431413330429212195443185565193068465602184065712100151520447749907872027509613251648588925595320442205267686975152650765090052881508605093473225663567071136263428252682340937421564202479510900384963826464675041638496594561547262456833829402809504808924550222226389160450246443275721970714574466892223756418556099046710672295591300221365438552224794016925514773186949214081597539836015800222758947538541549617152364593202957949997908613222485955702827891202700317827990053434758828929662328686123884878020818636148480226239594407724428880776724113261446389940097401673000881245415945899919216013339669137133466848607203842389984049810314738029957794907112496168045901931319546089621695992933472627697809339490459094804178205789073987429389078062690095824639948467539857129965737383124829755188046458070304887630733953116034888497825046793324886769584832433825699942249903698047624521743633938928400543811486698353922826463745190310113024998892785659771725044897175310840877965627760137511166466732283180993238332269741546806283726799085824813522299016827771572360304128736898839998506981440840714918457543696331219730693912256309799860098788803179404587711584082439109157413330984719761507100960841558319109942499885333628632088556282729886357436267185606953421695303015431202473425735851259447872424561036008509580172684884718988368354916626388301543537585274887910206519781959607508876831915810437693127021843527436942826389329656385462346554380412402402594767671306150843746114930081854696011950680006086954586902292993696453185322056754548754600964539342370780398088843780022257350907842061595954688377160763821102624271645985952516909704274592202744328485935311596662054324486213629047066393705207738775313579157725009229981632484846794875839763460558466560086129200802060814167153086611057410757841601438040171611354225097357684429234837347201385307077999940823957914118792433800743248277865822458006243540314116580003810936027612674990295150206368141643757729103757197404127224631073418691246830509858463776889828051763608349412448172377816502946512454797416085729932573367708822045009545235907550416238271354143796640953464147368596491725789552260288193890267300876961477792538068987704477246263155486754317247469696058412995584703525449541042586468056398227952120544300651390369739601167545561352406786636452518126558119882448854100232289323778307767844692640830833484557708083423016799359445779666104917875781314797636837920845402024455953314293322327544119313329848960212655708761879129650640938798674045460133842725155758675246987348351437737790636627372508503124367324384580594030011908287926782072154895055489191173631416585815488530399412891380717020497722941370299894135330873690067563913029589513069808715399535116931376037344072509860817675793874862675857877421287000304398388047891227009959580088391846097848123529092360002784102820229433705467882233701394775153916595169706176933216612146417986316509249460960896658828187229112664393882241735532157667857859809327560077792237698653431390564013429173836984742449268177265769827471349668518969367015948879333362111563459051947278886673509858079082291120155570582769171986585952933674631787837180433726805682365645240748893806724028318377783738214296025183854120695479098698857233762805046483367119279376942960868287035824389802824030550811870647253792025614938991453066139566353342583132127312798313210941252782064364700172443953371122912403434034869786017872176250484635356775980525367335033731756794558498998450415998744725814324908277760725850404265194568869667580023642566847614846980802545727833839412944568935012450539967074881358199685407461336254634555837509812166351520125808367778936747317820822541894768193708397373589931210761447266762456996811354168046571742927733854256084709068992915031410073164134775151765502499578729951310242758958753008562008301222326509711654445140161502126682457959604711339395547092313753787060882604799464303929985067903776944796146778008997740617972684442658541325357930250512679865952570074100636808757848627223142308614358338108687716437831052567696798423395343954640937022420917685602408195503981486151184992412209037693515770564723996911394164559699769453447290951929194992979893417841957963430786636050604097330112776668087052817758364772655088116974120502910472450317150388237795416213956352170019324888551065523693240282996525696560540969106564637430605248895851582788850573621774644944394581942598186627641383605865910743785208096240418865874966662024944918708505343205399048959823175207896913501217715170027355777238162666804232512968064477209521269884352695963598605522519325906099008666909291092447173730907525585234811928689780866622106215538305908404908601758455897649408115102844685133037886412215567980019068544751605026811304149462427561676386369609489816370773678959527918798540503340131115515769719722520136695414448968160810251576543202365371401017894582790290078730287575208294587479421936303174973134557593521394603991949574592277230022932205358912871555101072301987291757055630256416445896912583760919079861274718627029360508679625934739174797884370086857064260715436327352674158320298656210179131493637235725151067041003679841891237188777107609077032825013732540949836692331401100805418524547298644776074575594511208582800214020620917134445068744568011561064348325293627762570557857592486566626535047652654429931134280219950671860781209572878810621869364356524717131199132616386594204422220811865493028431762233899069098942755040533896185759922693975753646269738892321705027545313868009056986450373170868379741384983195709758461188572573747251667493500997319033864019089883033538557475170234009943900473899758321843379886977517399757205047984332890510850280096646374292243652047194836075601979903113746784769423887203135239526132697962432104453412100277749644542496104085503362886352162349436815042682375499867002743067503043475420226178095127248810984454201677348710021927497052373455990193303478801460463152509522962159222602197117099370168335683958312936705669223525890966952826778693542561426437194061349403621683010240766152181465239465542626255478660967835471824787187783091204585185944787439839048900261788497769906370344717682901688361678769950388929694125111029086892988593866161758129113902406100604639093312149507690044528655678619804048365127416941867783251538851460973757091297901533036299022393328978444116501034178876277493798453484078403369854932748753858384200708608108564531426215145241104859234032683447552582264438459842809922019220184120072034197199588733057680530443115209741446754687004564737975747130977938628458191897803003677671693786825420096884805164003994825795475877650805807003067044197206363941420398809805665440001687654075258054839120432338174197025457661362915564593153174321568573397739049591180464520226834785227593398261674628556097294192776907861011794200175507656885522765653406106746162783922729249890134527144335117418900988187214995559574885150003810676691721722992471778110496485206174390879124989631064984989707818845668807181656501722671007626562996224330845317981166170171624219710226931218460184236797294520743292876174713440127777753720893873169598154534853931239661931458609680104041904561307987278926869121251171588690797966720623846475966730911238695725614412732077000908303029505648280811704804475618545136739240156250804347416367004541546708812645215502809433294091758787106127125421840883935085586971726697606265311298876607864355115047548437769674472848019442497507435819585309427947212563874889343248934768634445171214194643188659496173410943617837631672349814759412971677293882527050078465139302740799244036513327840460081941003815224203954084807157265201658205075071701133881256043107474372854103487832987124408414415769311508452282147813045352676562582117044005578638075310578794702268182840926369812749713580850110588227571608188009522562660108599379514389908588589986415492744128584064557581969340908862624721753414274878282740831012351046969021248257201106840932755772005714933072272682190883947610570111850493998907167488458401712299486173799813450889466736307504030715454954858706477441880723373446317306482289737946860575939502474878470990979979483591664582541888052006707516524361439933619963157862128603323302559451153681285855384051873209078886347828099966327416139607268992257064060743021450447967631538646391834204615318691472152038012166080157866244974409982117816907735583312612862586968753580704084490136536196031669465171644256523277419907719267527244830581796395012721210378059306217236071449740933469507322037360437912991293215315773288716164872994837532515625347866090869082992594217241837905802143134248439633925441936706125950795056428241938077492434810308030022955287089002163215047847388534971483437815331122727967329814172812000388542634713585502762980521636084040883940143770802734287372764271700051170617160815769112685989326051512064828300093011474771872987847353527757207415630007099378668550092263982083520773963856327636240460442565465647519290091629707952929785735955062421694689690821777886946700108463487919262551436283009675534516163757525881011134553885106822597561081916697387215112227305136606617695930587961672411839417773376914785385859886931136827632877506066348167634791523478761134962450627408576742294845823269932892133860504967487244053720043674085660660356665218173799920374929995881547301516431554241042422887935843571650240158907303275705742173705193815928925893769073118876907396690994393489182827394360839733753633825309185001019082185448522848038801948331657706214246799223897251138106571058613549514503797978131527184007225580646425676757944697515913092848353039898057150134789373356263484898164058597357757947848929242978129150660757815620504806273834660252976586501180463154736040831426144853973132865024230327249311252728111167282135011711761605776476873185731778945035685159293527791852229983438733669241279386272326336965010613394785134248305946069104637269363356443735422780465386768681749298807037685899149123449982686387994589558589533355164906771484885813911130901320086787437221905745964582709715331917448875637781000661183941133875711757182381096858693903970220006100392611148790445711995090366326336093353682938125484775705575003478290767393559298007304454509830352897663045855266154063126227998760896299160779351968184425475795122839640224049979597833610377582164476094052427783287165296611536245165320995072500101851784866789768084359771596442499219130118839339522275709917232458917579124359663293819620079512998640608900990683248790589238799566226751075507310863411535666635129300307709500837710340244962274954579564593945569359560868844864108426197296034705556624201520375081090934686020357702722983427826203616471784223166348502323163110048496146062270136409104431557989399090849259023179252023374346322368259187214347506871948608511897746315193850890418503108909351543404387045888953818072771541892704591578045004568574044395247814890555557336366278525776381264998603661420268976259289513042188489530965911384340533301905717147762212445965463673423846249782321544701645138843971625690808225998753734069475148464420219876420395235058687210548157230545026657049589027532627450381420123250408589110446616401274483254098799179924523394138132241049945982897243291844576323706023779566554607051939188104643684929347279621633223644390876468969451573612478927762823800491351940410111728235440300414295043854572141803405285202694531071647227455284310515887046262247399001145934294128373147826567461547648872569432459050465659030883257598822776716735514145968476658354416002961894684243204368813250639085214772418567921576017894980413808927889844994201082078369411019115522096245498329229036701021939541150649608804382349674494642393278731189091781754953868822927163939894858633083905681240651812445404773225619573841594982201146792824317710148066810846616229658124607816716950815342993168015174246817067361168689741592784058407111358285387658076514508515361027889043894136791146531558648239753301810016420598038838270320592304300114746414484832137550059344080670479383578206649984705284247942154869417539746362441540013653464342108880444547906578990328013839520191881588549497770063583987572158413051558123473492149773657602937169545007553157781310018268270346353994393837782681158687471355278185871626329761955852200090889839285107355741493834768621809167213404642194158598349066298389432282004555731012356101807131995455306523913505424435028824415928736904560617651392662687195318472077655579062419851807914854479000043882981476501144630416891249355659584233924626725257321637103328949160930323122932613608759001039457276570267132102433710579772059949353927254988770012262017039099625290216535475322875558397996715878141806440242409089385023354616498205821290447275698335709752429280393155158802402994516837325467293471319979026374209473317622160266476652804164400937613287121703399590515677305723511326760982340248495958677658454355402076959658297715298812090628724188433417844884930603257464367531434380321744488388282946291857986480337779113600771588407246631146432821003841117992772069040401214737336257569784520399383823097951812630472786857716617491809737069646733391794256853929000010737675387159778348688574301062996440722091242566479845707602199947997732227175356262897805163640449876950556878879066701812947942211303878732630119791520442085866087588384113656859723906395572063351213177676960323079818161378882036456623121872775522140525801746544481344965688815790609008508981065008871379218585644327609213527781504179823157222499553573416772404224393419880704676488029577325699311657195863207953436720066329498678183316803356400076616238945352261131283672282622636078461952590096688021587629423526786230634144881809699643203499378498972798105572520858390276368686991123522628714859473863315991141642484542828801585511590621350305496517811907503986732642453257086156606713947811101731808850805581266718671757873128358736857943471847582207352239374000428734140948026776749405232163374137118723651938847991143196252671228157554486303342025833587466084749148007049775272943060532318140595199103544385517159759443750192646246646340382880070400888216876878279997789122951416277496006637039498078957707365103396564039581679468901286175077245676110536428137414898704937110983979339562703028399529161942715268342155306773416899112790636060488143754863676223350970241865534402034015894247346048032582268932097327280944062032206034558164823421711724026549447369696209612731877465906423751124299626897936856421840209659427130048540194833208109933024925916979934774538521463252825106468394523889884433516318346040800695168499994666174999693266111625530895678550704824789794823969690183518262861153015118156717248128343015111691112880013687346188480368111384970368999313702871032005173522837050611530898586319770270092833589332804156195497562560856421616224137505363949397126859523854330068735640923468030399398900173455407060417039291852275723238962207513955258304577391956912122729967519995535971587599767211544013349405482304863531123789068306752505883388333493456913306659383851041312401386157139660460807946727384969945535884551961830249557606408436221111533087252949475988450127128342848451024838835631800285654685921556162843016646482086314707486318431982457934862049457035271440740463602137401761333910180600093676215470381794879753149463611030608833588033259685817209172819230699072484457261654011940184971075606004368838088805809076504610926634088768515206725478607371665245515928614848705244410305646914686338561817495934997533867136134786465872584707154779811608523853210757186403367771363297410167355335829768167274218552330719655364947135462239177896571255745446436861606844546429800226331508905714454382769719985692957831011863284703119448997727767636501124162782008584555814829605230281418162594781094255911550748927952078023264551321372835000000362566155315787831986637194353779227235721406036323403023703136861518132019498678127870300197049175214639107503188164161083882120332585340144101276623980838966316443146855001404487219299705867649227976837105510681738415357857359060676322926210601486943325217388720093156464718941180461159356441044389278029450046488631690149640166790758026895658052978651053345028706671732669494278358527078546476645246770083762501538048310885999185721233399952936295395974036046216100388185789758740032298775774735926999587877956538925323700363557103327003485797048920998438686433060248148199445198571822365934801337367840928133788347440026384876235549194542046319183099658280855250288936071419402102218456594825634416163457622778649165846706614621261033816261957069546008080339704327913986850050329966512945246775308084053908469400323438147743165331593115935935550061819448708139067413344515463668317859334297440226187465296623295093445209329287634914822853724000438489942788803428955494549113569928208328688683011975770199265223656280892522509757732378512095298455610985527534940715511274811491836259313392614545470611714808239158817202762176828618868057007438385218638026911692452065983305700990530720061617213414650005537882321117958229317600734119917723509793042853872309788476397114495290970245875478160529905836295685530880915188837083460672054367926550423158788686526992167541663431527005748836004374705561787903108334495286056496621759906771595186811163638716751329465302404243916421514851674122200543312730303333842621693624179822007806815537166127068328643572569135745797182122521077246719393059989403324473091891970838940371853918653371447007599543143523500094213597400740756063862059646415297416334692861467674888608732364006538262843395036365473285077808392854566369632733255496537738067927000832123133585638104098400196321052786439962467756707623059340935339340250474138372681237296729644050549440823257059505874019957099820015475657473766620558542501948071254996017035799101604787270060190673597747143705599832312034579968623316823415443108419983765569321684494364659596170596625433074050575017151250976260093069237348239283125371830188523179519142373010030253420955579462798451442599541884954059009786112797495728037850873996776219689730940905322103142524388749405721075238008334539728652114025008018747157272710938047415185396665314342608701741290260988107482887515621328185413361854877443251491282470830390169221492598503704009460038305197006506744711872245413525762580212698222339642337336435221700026045536926080174721946545243224124372109616432107653220490901124549549872478665680944837927162290668085894829992860221679213374702320584871865879655634920891707441902020458405519579761241703632369701607599425226092438979249680074514477256946372924185413120449082401687890991150544193216048186886709811711095912727715502332540807000069230776059412980099023450117203318670724248412529559287226693943726331754901706935593932627248175328796200386034034888979735908474515745732374072479493185612987630310124067026515999430769561685473133248350967938765893635708511524407920709456690799245697609000921567338273427186322503964111026551348683623610080738498845664074272777463013235818381369609331295230051966945167458510319880182895967003897813636834383057716642152419299708702071844794274423241512166546472666690146786192002264490988552169254793562664295178085579326845657130103057502980078863618696844236540182667691945048027482710414694180138598196743248973319141475071653442002639203733542729650922745283957100962430242775348543423023405658145599156728706963424149820372877241714905512419672142299939997747648915187996423249101342381906993051149525615580609098898358077260147708674496664832274519186831505698224392199112239756612637506874820718440952801402738828090268796108416156962021011034046977375099937065344416719910361278635769936458605354346674262237747329586711016596706692272297677719410831487747835295939398762578957578161241993994467134821415403715392587120896930187485208546866508834618132305590281118517056339813200488277488245182204842637628369787269275535572386296235873216935247817083701291751401697868472018466422566863525648642505888624337094505112410839208918812128819069696605876767301562129104431046209404691708532118536341129796929671239384062973302468127062473750898732861934134130254326268669081959455933843474614541994028075058305714998927088528484332276231437489783337806217024773683903652159051020851784253674969274802626346423515880629705719792487002950597150913209202497931975667382477275705752755889086941644347196145716398567324878202271059854324512345979516295644025341080816051155994847897852225988621871112751627658131819651964225998718411189388730590791306973633392292001593840924719212796169065785757672161726126292649213198637674206292854777462603347724376374163288395441284122615999969288941449733177738778419604511000554451516564726836710294946873111039322154171108376268468367954628637028822974669196544621450430435289437922000790728217193213739967402828364247529913196669990307703296854845955693689165564660974289333022217535024560935526028623438101980969762665571108302868031138000532741535779449746764937361545086017445629781357991640251476634069508571602412292750843710620504750416306322901691743323829174549974876107761118152200106070636929365846562151610188198829654099749074000545916662455050735631883145068682095009827541104908310695498940843635141479312755254724721155345633764368472557690760919231572290294931363522274848630957463665124212204221138882808135509251954855365328120408311961346988304088581489039474377091690780799140166065359146602226625611440244604707156494328146391237949108888165063214035658838526977145929982993791512349921893283673385533278108692305320138899978813257295973171307416066872518687672934382662592687483839102886637525485642345975996038123026127381793082627187931525248679487650656688908712211577529513591427446161777740016011552151527694133657920159593164800080804274193556928163097768847871737671649392003624616660038897093728581459815474254585122479981151324498579024253811131340827249139184912201378867251475743303624452309947073018992595137240135346857455637531966267805256613406280702045360765941247273629276315968830155405762183771953492471502590906274994474450771821279317594850068875664850740368095914667114550310506923509183305564881847459787827442470112274601859793744581812335236058002312742934942010677452714324748118745771787155823421096549669973671687756085092278497684086343671852825963657999804834311969753250039014379377628636806731311342070558473984705344010924123508543923605967328466507745071746784058193710944859886781397016723392948027113079124060409633425874280790648204483822950941075128998056768747958330123977778489458340306693832725412102541356454479510944100043839580257313998874130076240633927165970567823191542831696867294617709945942853462382114564445549259577435047175388429151131838593339297911445228134953440403000899281863790043465671494757216638025484370206210606302384908498855459002177979184987922599701336386770555163582794823448063719025315793375122496760682585214940296119129746495836341349986136705956970894254649278235460020366529808042203366856405951341291982669553481412881236248847991426016143458377458451727987908709912522928144689377508200776058191541433081264811558047497391984953798955382216574213587613827612753934589392790937105371239328227254859586028925015668084896138771189807609180745086894056098380097295738006865118999157761857809295173390802011458570131157681735574895709126953323205263906880872852548963027567712535298885477415173940320726923648561328380697462900892714742351382479356386286563031891848062949926874556064463118448495911769340361808392039728911682431782120383979989459090501413490002434559930578897657338425192420636230246724439061743119624478584405212474725922915800792171156106278458863638644453583915040724275531876950499283995552071816647755345171746390324644235512204487793036877570488742098070336791835092906715882258419772948650870512666868125961830414166007874880882254889759718086278058568507458146413625037930185792104597306409908520030125650471697418046553540369682278347222161869265579152589948468942591042771334328068040060246786275306212450753244379566075845223611627964691702528351963564810706985539213933777629390842783116075535768946690155598698796165357081604106169173753662119281789153888423110683407030066052918551392228466019508739643251986910468430313891921380910338488490353555076661320149047865934439676010720458983628744211057115223127109679345821407361187115329537204904528271215628478508682675830713460320123236485797467469270468206950383095189597314466982380277372640266696847570431141116802847291676941495842147841779483189883129574162057972748533373264553959414888251277923187450855875442974252765806178497796766201572193086014354456976295670629846196299199835247342015692138968904558772064083372854224156660464715466028343466745790686463071859421608532874853534893153972852624615674223110926292787408489239941586563514984937160639262309093038662957895992447358837910693086627453221267856492894327782839681953531986899066276085708725059176544020335013360663182071690046170268422339309736629534019186544404901388101199570770691593972600588451677466697829001091712785499656871760011733231457922875335942777449276876367007070344220467616804504132213445639321093283552649829639246694178304375418086717482691125098041959510556345801909088044674876716987668903101362032635822779416719657120260144048197179368715582302285086173296635294798826126124392105024175279987000070552683947216039289881000848040668567833844632864057374311865056208016553993382300541227386378418400235264449299537926544242936911107723714603431839983040356152590357252064391646655855699049655781950769782546329735147695077184261875533469047741719885314784699263348219412077295146882885791852194188620644796040823859657247094897003732449801926790335748322379286189068301036226755985917934109101062486427637161795293834715433108750414928803849727005734119682539716317019513277911153147798526433492787347406397939847245442330317394227702423236055300470693653128852387134591114167341857489265805210229211587271830846217767343765678358947694481118686308776441213678422467589323901466445447736200066982108458983724141360393173396656246999316367489495229035099454147038241661353696961425660746103502829595897599498523556323755113317238006493862334091433302524807962991348576533768276520279866995243235046819952971252479701464913904669920126881988939936673332463963566179245676818215085633321586144193035925129324556297414878562288673599731532203123751992309774940833077279154373223964184415805775777856865344665475470260200077680662811694565330343049063924229017895694327576984675628494582735962175766229106942251120772421118343591278602333701808224407793114083340936064917346742431900621751951184210583909328446731423018720261101454276048195095055158408756127461222080219658503691237640829693775090925181977607938914272865545110362611665918371613383196434081088988984468104268401074763162770029566055100825950764416248266677822119264292999659548209836112824024641832592522570344608217884935734724147963201100825660307419616601942017479890088156034940870181338113607202806049295691468950427160653367556821033819251577336702125357171556501877670362840700837074482251729656412403841131479988879900231442398850603818214970293833440399035685779778226256276802490475651266850257530325555104341479567718793181919667671741763530631911047589017705034177263527505599833613158122338117144929844721963189132662733196545697931037197894173523814791718242162563665188366735412116183550518848863780996652509160718396681421681282114451265840076423347063997822519183221139872863594011262645129486198048876918771650100973941402448963770487601465759837539134422026744699196572480978666934113566167831552166068287533770384400452880274457799433594562055650573083544494980659080187513022220157182103912102616407078427211433295611030160975146792282930842635450823487342626235850607208767925764904259401387131067731713163452802521093701905180320435097755849723435380716483453507916921081588575642704225390628006045940501354048490441963536476270527617372934965705170258854333672560642235833909052454322774247095517730482611184527037060498110216948070020466961387926367763740920586221448360521953630002438826459230790811391614247981801276641912592063699683930394808060532482117850874952597611327280257566199093994755039218995623329062358723673734653531617302761864165413640605098053155163520916823598141499589642382387366273608626963671036046683692490778894919312030516518606210021771757000842377061113771415294031135019665817934203040854338971787191660611985293008942452071340517236284269934167676051697184483128378142484076202100146133302607162702049398945165512114854863902413232574363494624493268276728209259127112351595996731965789518248954419059177394116863459867576547316520193254440336728387809453591776672279845217958278003761958907475207695468191770906830709317017126760143133218272725114831709789222805967093276675780533658909697482838814587444043637426616153896728497597353300246968222843549715886969580731251965480289189023102933531531364108495979434444590941089805423664429575109111238886931119188848284858669655785290111002714859493556085255318396024338468334615152673742065819871297433920850526478744957977047408813701298645629302321071349116621144064536632055192998256460644727670893096693030249472751380699287473077216651733115293440846063258835977073724556341666883603815817862398919584529725028752209828228060688536765564652297896857593456646519891929771093678746935998173086124315006881343030774976908923350596206796812779170813192412856197067731784796966125595907761548190241733881029783826499069614485750326011575630274337610627395676171293637749963179807693331914119700958245282652506244556282778724888211039526943109558914700708915699762418061322256222947641078934997472812984166698800650904823116696649941944999604390108530198851116178274688120261934350037634745313629657352402497396783401658717677353443430556430134986048227467549988699295374892963155270755498990133118155672838959510224553009021113522478842499928189961447536269549628563580464612425642218704120316880435939577117164433106427056404506700175361493123298917440567184648299212580665559398497674770970216207879380470234419321332677615023606034382941728243817637974131491696439034527359494302726189099614426569532433688677196713124363084670059104061726131040669272182725660683334689587005026591341601900107662671872286175464299107331376045964601396378915063073837361995854786151780607772121285858937447210977960020576505080495617614133315817339019662945468007536387105124759190086184877678218200641746654484929872326901032664933666743443565614736136836238992281222584886108131680013558390458087567521860277585758684662968884686076835368660793412317494551555157933411079412763466287338408483891297733511243419930584000786075998448379083411965704635187378575026556375807774816031563412683896852013024887400585967307852137881355871838530957850661796107175522210319219027044152112758781000320198960671409685471254400576233281632296642298370391962607753953544599434680974605319356599039683663261936003593179464660942442956134506799328373377797866023417620377765737407095251283637655287665853271758777522384577046483155092181379956368065223079315474898871106406952471043313190345321259516120937505094391825603410489744499235166436553517935844957626497806810887715489927007467485148544061320698307818385920884019267872712258477447861063345236101482423043764628658730053819490073260935743890797148270278380749964225280506705377328498405774258818285346069533502332186191652667201429103743992526767146919511432583113951462880681655054340765412543189507839693230842970924266275248796924660755363941567625442476977069792481372252747059109885134339177595718136098973378232415807123560925411515959109408064956928242120394419754147802924427130691239658430310204131377919363242300775628877489426666897751574645546643394976394714506940007089805978082893216098394677364780329871547101797509460859947939314407251053017700790701016800204370739521188537931671961631616267763342741494100922767163279599260289573839543396768138618000908185569640396537478511758687824067949243141550876955087657959462553074776280338923464044663098632193032349249050603371911458995891183590269856884957715105989370855642160277913633677200828544236953353993369705728362066233979125404391407518429544758687981750270084345831563283720156948645083694565310699089841136405004805760048670485123259084064376433000518716395072864386673517523288114139815499109972748633717318923784510907132350107688206746421523097472784289584861081448975024959233519963882973846922399184001248695685033249053996570726396098159688850103156381479557121012223752802032670848567918218150660491097927143639383183130265831225887499481774106425016076951216428384081766433509537031690768191251337276024258253770801151117838738787205237128705965829347523603695481699553940637092857476431222410369510779939180343305235209011734075658783652929027558916492656413238516744338755023339109838223896022613176539181203382821046395099403711482239913935019680968196329872308013483705902950629974060059962505620131610375727090629726755850791187638129509266202273562436329657308090561578402419142820160614412187887092609540627992929594873046536004127619111139389451455345978511284937650182967321846818281206944642295818735743184196002618083409771495908065842513577431504605073885153998692479755243363099624771458719694494821717306352581019289497143253423346155550839357764701225756805425551673679769909576570016296548655001563437742938176257266979940138645303726677161281884040282172946455597059549897458856329850149994720828298139809313513975150639582024791627082517203977499425040776421007291702300246873024882265540943190819104040784600381381544389567018560370444651989179704225548668690388136532808716734861834612782693036073554624840856866028373227201868197003871459737762097726087928409335406633238556419341454006607336595699665746771159466775655271514559869688886610659839924091590057329770465744042280025940705074981757431828078717427530563642237513298455194300640390723912861040076117719368516386033612305755837099157746247214739712792300799155685672567668981440531493015105953214559892275940414654577901605753896860871727801312258515005173909710514658319538894121546296476779457502257961864385152387373757191961627198343735095154253616043086600812420453889186792812281811126225569032107625162530885700954394659343005106224812210178450029569381336798011743681210456791957996986630522842476379128286208639082381353175527277402170375724521190753720448130769250533055121785494840347476311367008707181049045932432512167492846311090792329950024492052534474949074956721676254403400616973731433497976773892145167893267859726627625152110122506837965425262420022151064182599418423298710341141096396222660854602739662999742113831673712211546146731252525728677160304577570095961566117333887868952529225543504585640376716550620502390538208268169316233983408862381148809138282679719101281309616633733339317577455534038135352735439273243097682486997055750378667880782750636856892400754095955076771501586434717267575036482215503525124799624554806349877226969919267696539699612287844301274642904811457523045041256133886842926294526137269487809639255169405285366911791748539488469763195692243160324009614320818826822190605181275686852163913351061013991806443805958809760194633652882594952071097161715344482177538771840074147604108764094924504458481880774188164634151238699169813404910512099718406689687379529418609441173582534855226506898505894266916147592927098461662081017552077781666081726125753757245704350541181859714416963853265299819109140792422550848925760653634191201108757371231045197421718471700273597267291057711798552202927400639955386978990635500028766650786309668883801363275376491454082529985083503159311468391088412098303798053665467916166149073987689178457772943325495554792818891949565277710419805179823908294108602801724675275011613314480304674882561857894398245958165407079480758027577491831949047883037979624447064618907491343413049885770836702117296150644075247420788420583416871932617977114045163160778830735582457863017764843432566460312522974189865174066298169098359459984139196797583113713524547722406345506871791296000456582125969281240428458167296687728356234775005986612488360186711120640869385338281442007979138461749362018896274487745606113075001178072765284455832485609011941924285501362784523434981803504480892279010834294123676666677651831129747260346122382539603983996968743389196512629357789217716963537817554560296352547482606259965247534553135437885180986617891601071335237266037703987600450661095595189633857075626002865459838754290293722299995314464525886748676988884412025997848930827334306727239589515878013930938938783871467738656621131306580402373035441043353379306306028527872210652212463962721928606238660198006019816315495085948785291321092028406732461834078014676001828355011502646352334713876255113828305383466251502813683149922671707222893249481824816785268746816050729510710518622692836262787852730486571926815724171186087674755208754859513274793832087355505510627557215319575102674462689583182202649957213401510713864249467476188827803612539713921512314348899258416972196541679288562393574848844116549023581128000379516410098836027415943061161832959307983354018121218254945343185811442548417892459197761327398019397992589065582972984426489074121297197095348554531840161329807901216591414440854397971346146667996270528058430811250772845569748736115263439854474029089090903055508810968085269179072230288596303827491714041050027308892597311382685249161071354498779704297463049585297741400639641541529476425785139962006238766952367654984112911260597872252347951980405260725848722908275607845613308144890473734815447233550460163591947130522874113625629730322451132040386966659471144859649079989329736433260096723441815679904132424478998317110308867342700288246121392334028112847080069866655503199075287397086950791887511907779293435684414638411319924545514467393243237346598268654427704832780863655801104102220631200639994857329795829653554934927686190544583141281790437794428388257142684102121811601531286192283530216892976441350860676927096350807272003866758327569141834537808275914257874497367254552842829238136758324187933529849842653948792579678224666901402900175911552377651875495767465842938322831933768090135206189985740698094414789984294861807191838360082433146352051459041518311656802179889550164111998815161311526574089775863173158461269047976045283663752711647309173468542057161881708652435295075832466246760336849602151013681066351802742404652866992094884403692180346565933045990151043285174298613292053931112796294365069793728773655116225395368007000709323823306662750661110215267015091408291221822147925748008313071276307894712185179443274091984448916977629038468917777060406587290804374125118317569705662365096064091262188268925951536478455445312910315057021931405724892502514170254187983594356190489997785395854799214355146991350796356582355458201895261063108704261284423804053363595516027382903777129053948776621349185242455811647213212759926606917386009402551144045303513170611781845107084159571326475510572120980450518718480263449090062901766139538510107394285813870559191361343028402862732842789567553127716837121508594566484097203211767699016340815490682595347110204627154810032497978995682066008052152660408977036602431936460726503406594019275419343013494788321037733174102394802788045612822917780218500538742537714271793233215118861225618638470013236284003573443629075162239919830834227966413612137506856419751200384994233420290349668237022957323047503789837879356889488061818936397355951247616651539683657290409580039255228300940125362866866621472618129233948485251224474279294462554433893072306924390823775544581988354169485029804190777784823852751537666138142806406649545982397622003750743067331581598839641244885883528601150535456834327069563287625735389227520576720274339293555083389941938734127292058401846483576027743855326115090624379690899097621769821031791842493351676994141983000955268166528217821182083816508031689592149858586946528119949148277240377475912331656272010988759843150056566062579735439233521260591274976301072311361545632399627077435956400534324727423739620438296920171365639449892320797919864805525238074239922699627969654986740427869759086174877221213610519296960226444643345753240996380714786918703780619521679330834089297029678757805532250086753806123432499474101017428026637269964631370800359823521947177056179807260945962315888873228904400722085576543292593702110442790947184097724335122189139103946747446644466739231382456866603907294174848471415992349088965864648306801136428003491500435678900939472066308406898444315130159772959966770936380799928948696952054943177228482772150328673925425405909859893999542272191210474298843200573718456080383891886177708787564228828121353973243501490594829348317967541601103770758743248836844253438653235029260632122690180301359562336459781431273481382720207770514701679861873449371749981167361563959515255058455931407565991524272034893598636863461396282495743535227216944643160266111121523539852418914220996710799222153560433629841042287679002579810755454417390580986835196434567351562510979212902405861554992056407041893968670556060101837988158181206820780188062872018549779543955602910327099620516016445848472365755594901480043896000798698198647769749470775289160515750487487591725624696286011225098586583977287719033684376204055099710439945589456160062372843691497637094432784807039511671764271420388055632735521854615550691849588425344283870429157970068512948283774153886611158637196510754263470064747160264194322425270044280351405400702492779129570920176949489414049484105539872846460813339444921988853513234760744667452341999944844711452334918661120606613260585659767197347705108669654857241156703362008752989866837708690204088629578315819084427314692720700394026405299486075651412813399894485399777276815938439438139963265882003298506365888799120650287601867308496068551233533301948577408418387585163642843969214443233944345357652197243320948995623839058539381855332125733077471674850066031151042617853928289030970940696649545899972722842887341045729167518228229824616080307983172706712846953074401801046661302247308363290347841755769303345258974037553622096555269722403738505493050911227744766333198997998300555002984765544166897614005967357440087241839119337060796801117778280591911563506095521642013267484761876612318864727616997188057423637771599616910858342582829777927724253369200815907690509000857064160810611274389628291764985475844880341930896767289450858216509182512331361862455692324222816292146979449326648284190150351487809015109637875441711336206608012794085341797383607407690793858578483976621792632922989251796863705031186574705293921905756370822449138162308734789482590381986640341775299166796166089420457814674572821635208467327627607677871689255379326563543223977205123430523597517286130619549277286756872091660319793827620605950747197466278019870883724958571701076887657528554343680442764975177504317966389427050668515891979168124636463717021187142459090825352198298238034527588555640779269664837963182182021361846139968346060405211804325260636461843892493226883705659270982826505007896345691921173976667618573502357290873214344494490055154687442575252503196101222370643475428161812655049245749721437617573576205309369465998159421370641099667814586945383816388327286899877198592163461725692492252534725585547557769522355612551927114797415349448594621524322372024076828606707922425898834568479045115762378672230327672538195790173617918786347881121879036524483269331984813225972147170571373926168518034630363331504602624750203841432886018666982109384457566562760051628538983638107783193433702401675164838746768446770119100734098880119108322688616261347743057918109380299480654732424484761679537919609609476635305023340098612213568111176778810481401595371652737727129937594529331390049635046019902063776819618066290185334982026488237897130954428304082132724906608002230590849881647220138785455599445076562055881639041659180770908640221934071479161868797256967643353795159685695033066445008338588045723510541338580207199733069439174779865873734611848172193698319703165559809156676073763516386102059586291756837450790050634184063468192126633364365789189933535689507979163920480474314634265151518947085652170055636940681861831797935429782716578913157492092666810555613287563708250541421939892968326534066737575706576180798304417729165826659922970021262221222092654280029482278128677909176337279445924866368612481288146148297198051107304042440327651674201166036574515954286049826089538136155898467767781413784433002810391444304480092399548727372028434662248002955482621085533599541385472687747289249608043801697709903627886537615710138478694025190663420044840302046374818942741931759758317983129678389004414503370324761772215259437094830830156116405033995213136606027739813978379026196068832150552056683967935272511864176863471624485256164273892465957367209023305136463375380025166977961157178653230684472159376693175168115221339703459638725052829479734963586460869951797413474376635594784273560447160695735657973573987827666969025079024087104267066619167808278218327725078396279555610988385122391315151177197643689742552208248785050655847490965438325256263772949118921920386877399924586521201113393277501140682903803454005226994063703068992608385021349401015665241425329967110324744304003804224838401884870059647697112439859583962740973871511250983793521487423016729910182435464007070076888256960848176147667115381204315300526832453494829677010098063100053680269358316177527022362720335072766581148978819876497953626016536612809951965319500455669828232592626905673220763367670716649916473454722486288182303631570655179767149018117276667000690449678636747572432136470246796946702901090743416823936506811923498215497178887547295647799710649900637368517547472711564191503192336131392381770410496873091810565487092274059087555892103701935648211201247411280061682447961156517977314806975212606549621445872300569567564183439895102173295067145513530833012728015799213631438901334263767972237901127320290450078111474751195551117571720524553464221309999222129089282220912405562273533997020228754884983516667733956125540897491754430000819949577705867475033439821250235839989284063093822123266357196161537588580026634229690706164548609588933458225717082491072781981969673212901371160244979684630579845929098531680233007162647195458187481177883017111899673506799459788092064131689136321140856983586801386114299057908956909262130728339291284246430888643974890573386002684830816679663255865890382413137873971740673781771527107586048174404829994525649547109452443134659558699814704322003350212851900411581965346491784911842129225053782045353002176170283567446987665182858562655148441148889638692270305129547211210130360366467024168889536032266973826162092165593835837693359352423504273012008955271383559381944376552198660018742445827224191256618532869565840365499285354431513434229630922511936703729805528311353306422762728860349856732555282197669331871567805905394715873296243084026852098915514208344569642046029249894196130991258308732658452178849346437850938620035655062032897251750342872594600443573340954992801250254280911518975008753372547379324457303291179149332292216272139525645035885861999178821436536434033390221518694821032090609123262075738362838756714054155063832864479307537705134701494489909418787533331629958038756249237862735586295294147285552155644584143234547758686173356696919732126777351976500640017757518093244969829780589089076487488247820326655772047286856362096335756080312730004783459616543041450932331628346099618458334398402730761039466215697239474445152850386249180154415996243299335553507345693630518329639873663565726820544409505315656519703561540272487984454746772534021343210196377390833517958582538428574518035302609688384868804768223100283586998701114088062463116131408085478386615190727779892517773151088268330608559516488299441327932770266282037734509153090383478870233496630381568813479449177492473795513080065894151834231303440821134415380219688703781810033709516248824019632673200756889282608751442463002810378307972109875103482857826000939923131233049959891997590970580878517989981195215057728396411558292941913619775154923820108519430294613955421146621749972439167254263280289169358408589464898852610375441608328414146387287395268703858495295531209873626752679704335214083166034963679011084802956760582281951375064258264468486353713577438192354381123247916023512764454247597252157547678929221395668040225527991790065721369956499933311071327094551554837253566722445803235774417025940595895686075311583662360750915019234548165355011905270450847445213619077832684267828662419134561011910529305639536158479878346410546709148907716521828914398571897784005313369677769641363967280412965326588929657573144390410993869013857852149690452917346113580114194212016986375009809473692060402198081953257411057325379898040783185940351902535887805205533674313867897079410608361295149750794376562926756458289213873291052945143634210964870312939300545096649810222497782563307095262507782046346381984663814189686918595947727412618139850332898328463271477007354508581381811291395191294339173611026602528617769029298361790488564282789135529496210721604085488277888972533721060245564845159809634662930672715302125063508328199919735868764613705724352151537547609345113837336211127366044466408490151455814343190556420801785569000944076686456163673554448281587001955769970932778252708339510786753947745124679264028382646089989700779146772665998800371626592982477516040253995421102312672735494162661541795754956383721483537971403152008826568284104938962368208508833246968592943597118527847194100128872323036497794170825719039407687013030307796943854085327973410261975323081966146222501112634911097260289486599922777419336013642509596431429887945089165004530847411308256237090391144002151591937123620995596524484838609958617013314733671951764127544006289946737424798539410476146972441501777990986756107212765790811318413899532724385663919255831671720599488512957646854038861299162060722729178280059236830135774040190953763578384720576676709235283162374781318387534520993215032928891655512657671729686874113391187314004652564225293829519610779071509859564405235314651495125421436113853395318253263649707621848967559064964182641439469539464794464629864959060710398695053098836025834875914998502373893199605458153958065518098759396527720842219009940652385965678346861513659213826715226941589175877506037353844762957353764750095610453150427549088241616234403688468558206065259538985821705681653987798663323204998604442032607213413830772738620034595844075704058727720128950307333530526389449031755514715344903842048338260909950016907485391149617443557426540583628350496590437735731911904308529439428423552479350333709193920802760610701938661706130536110366883034849291750071743932747607355024951925475659359219015908238579379985600031348829585805363002237738736769163697120257408978725920594769028427348991187730898371816982396466615639451745364789206462463787954235769552338219015465024831105236272070242380327954557484891468469616971254147268398492606387289338656786148372096960680244615804650392727635996646153636687086864748238167140722633781705988130977006216465333563318843554869931601968814404777064659124995088423548520802877946570403298685353872407972942618136521102931438712387338932827520390336279826504433294084896023152854669492491512248966753051123406335860483912739674723547291488889221967459261790812995681054802199099855970514874767040407695820837002986706256821112992604385649638291747123206829145310107423980766040240255348994743591871618436922225946347942223875426527178945628548420453234231732491980506922151223909642298634873859602474450743570972563782088648829883129280416697761387298142032526481976773346711740719498761748675645159178589233476754001239187728030487150138406173492542794250285526875252201991684762940381496088695175240483503190760408804735724565280004253660725230131046817978164864741342322794683233115793754134864364631024424912351906533395411217513080155419100014766013201373689745748956677364520539114986460285469366887704996441736462554768138831060597802774630341419534089482491661756162829992003654594948788924518577723195492828134041496517222366995216447291434254567760708498089381875738204389868344611751295878618055971075130411327820941692791760163262320500365429602940899869512610916212932502651151333501400619665611750459207256310243804322638505754928985972577766346761497098305183524618991707577961725823051455057169037508256379182794353116882650142305985643626571520725260500861581984118451343174721612558762491419846832538482179661624369775136779929668942976961540088280532465340413990178556145511104803869997060738031497462627892267336464573227323337334403350117050742886104082581034620075012243398476418103758865053788949507934027440227615562427523612819789105963445503690196827862603934667135060335509654238614083229637525910443565279064618697457644362084677471126654608486030318029127506198224852260587756040187329676820181692529632763754276186823675263842533984234221672969728558428850250263804132997315613544586675648157840440263148706953775768518333737353932758431338077626252127160481670457345501043091645372624759325266184884055649599942657690447813682728947546957626632477615230253295046681189708460613524854173458603426316880594940759219931414249906417438844355357446096788046718037270755618811278495503783348133842377431508628408620594755080935537801468846956740551137171763322295937558471574318591904991162196426262405409880723997131867448294458155317542099787816391238118521759044665109677018613720951072348090433314865999183807034534068242474809347646353014466105816257447906276459291319608256740562741577460566302624483483877401199058098067935561187043405858422155453299045741862867502190498085318936301657967504804861406960866504056834819151032246270206354863460243227017253498214966908900715522646098608996347287805143281909046377617874093480288253436916078058873504283704703033543536030709401940017463647845611094055518876342630172864019699521414993913930024698113384593452801373668106534806394662236958441547303856880691816627316833817801884364670958549997662987881769851258541307385910013083908193270279471799532210581925668918988502943443197765000904121487001835421331500647427293317045216994482481601166838534226436178267254325797121454044242365652877261562491628471251067587448149345863512013690608966884608767054884487482568252734666765687277993793964969775957897427237859704175716052265320458687485252258111302138342119535642122930101414092095994889427431739614636465210712873707685373198358078981207265255587320291096177682866312164143716708263474627845756510214842848283389050122174568939155011029210885771843122370984731440531225946584891623872563562979751103512887062628867753134985579037347195447796396992452164120971735917297758796881438251564027462855666156398915907308108640446844122891804226316548512444224912536325033154874226662753567140722335274200619880239938718058559219065343878301759332986472402255834408466291807379165144582905362098329351502360236751427661113366441126745451899338384520250171944533175972057259808839370658644355738548141957624357260783777121132310387731832756540907872444793696372289880451981173306672727746430336483920481898734546586661480765589748170338896679681187238692443791899513990096436203761483685630985991386227656377875669685810192996727118227404951953048123313213261980166546019937621699203811877451409387115368256664257656670732089998235357005298083192171658713266831250772852294352650481245402341817182864237824659879703660246711913771761692131240897244928925915987116675807064849021997601977896595091007685644814715639178394530662293108176267021150936436959144859521806551467150651420450838193464687147234329511521352354855491685857002361407807402597692851516355376921386236992006070772800765722033640628372995895200253880344784333689968875849442893848093595724449409284760596801991411828825532913110442082290844795356341985941590922164013202310052751510212799373214704725641619307705810818294595660461133650765682382558636799905065015349995598590185866464209043029572926456534002534293026430036171664650975846818340819680318829591632034460200449353788525546167796790817286591662563191437485009876774080986515994420653876722566445081522969180129921577076762981218891382449523150187388450441069719972258388106296412133576207418503430942450431479008109502531732086298620176082447980968744621319127822178506881731328571551981141866458728851273648706161985772382138723095344372939071209252148366809349096511020644786512737932204679544175902003090322737511026491116390009574829030393196772989990806024199738206113314483970158452952795288847844776596515612036277550167401460228986337191292344912035102038934212995245130880824146605028983628592923103744035794317351411625024489637470921530033675027095363627283055060347863111106137812175008141084864834942513881939403558714341067020038724272219102671727381990083397387616594156266466565359955553346998711858098332558676882916967901948289186821850827817641519528482245168228757396978999838431559476572813886765954501943987021434881295177366634385759593491975526808830513488469579363472170275511254064296499693899436560655841966659628505527630013009672820505727257275732294843925158680763918289534791709545863587366658195656831435738196747817282250218572822499134308989582359854765222086715568553483146605009101178066756819861073968963049354151300301515588150522912855184884713837698095899700671707358239044556192282223423653158796705285719025377121868510594622220381771176769485119733018373268829570223360267336711189404321367018075079460612795008256779585970942034340902594501469796670942726445519333423675713193842314118045737193901306530655807708130507715458688844312357203884606635795701327226302200464577802050396647036811432293443232638771377972940830324133475760223951651309765952688186227780088334881099187294612520649213137582536095150193135449919494503149305176335299553186417716492026783790679826589935635699144176953008206228112338902628988822028645665520677022560757996946359690435317135602235878752305205292844062990914652050550910381222300538733960015917630293892047837882002935358810109841661315653094226764156572382255385310647704098089656061748881256192816651909352955786145510371919912974638255658622780793104159339995194528181840708366934935094967673107281300254144654485342928464692664480150405000917017769909718837247996922066825895274646233340090194914990450067856139570941493172973255784349438356267072611992182318467377637266202263750033413134277224619816108412868561576600551859002352661043692009807345851536298909729014052665444736502824047057896295387087462141442331855864876450227932076934572749649632302093532084979273619154665585777407976558616073016433152241963544347409182999711349632631153790457480110727432893268649190926219772164830553300995489276150345582348445086679890729866781238072025100126887058621051119460639719507722375960779332685123522286590335283293645482046098880324653066561379928501240024608549647755339445563205844008239307285384296952552640109317510450444328755424595090493752801456554669525468464587599068911825423056045051956695914369241573547330560189789187836248734104461200925559991522906134431182642054409062665371668007408354283728563544649111955976334761101388752556151743595183365986040470919323012885961155727123395474261713425863157492078511120475914566760541268828547464174009570471848840019888592045133436825978782948733512183233229052139579004570942115403480493945990908750179520076238742634915920735858377368157960515462773953916257728480225185935035503725634934604768734710455518318154294890753844965390937830671703822049110173777580860869304129333255123091628464082099458721320339988657632947162749184580147047451663198473304656767416466090048597567194545326546109871354983482021714738045245246468613327547133904401596958248618563006500936708236145280196167006832211176508692949194998524144338303327976061807945609464587035392051914331388027213353198439853149952571590972002369940239811780538394415143097532895580800203982733578074809899443444543523924243152416701491314465960191501619157656847276255976874120858376106903006142012096911211241568577261609953304733144846771093712315673088050569841002373694693564992321784738776510398592848680278802001047035120121312640567293441043638657078028296060955199101046068446670442201007732727561279417240066536569177708764968580338582335037852899340116358231037482534631059268346943490235477372002553706370625926058793394870913441894440128649333897681634716332099228847015371809303307557428318353389935719394639655807656903189564541561303821207757173581146945349770314928244863229457416265080253205195499635041045482940324575592613648372274619233274025173554947981054517195264598131515872121949878553433647235415735436107264284502803513545378940664109085614393511654175721379956497392696338145535156718191407144467018242847492532994100217546340884483817773238558867245391952391606633611407802462653289328325541667677140341025571330631807073796944541242916690506668787967230711209932712761495524279598634542680291737035840079769802854373100126002601614142106414024343486772342402537935049182344391424085673298311311304291315454053173677503115711790057494967171278454164490525223557271648145646856259797727442662296067625172355943443912684888215672230350462432785873081241490600410634472884783786733107110706961865007048043750149340375762031224893077376515206020881461830784880313328099381216374703041986624358962993851087037147866396801544087343136161772021161008031027094318354774313924227186148552015175617464404116833459529607527137231529510107545755789489184970570505283320402278906529047284112709325778660894686562987309276063202457372489756228089838997184920883118788079717853004544107575792542534268722277309977808114020522468149676669153998169894949785496929774653822656151120362361121878105926772852925373574181808447601618794520128262739192659791945020118182835749933203165281746606294379995874021650375871122281849224837879173958997859666488320462216867430017388319534287719309521971743705908917317620746016226908525624997513216757448292066309065054984423078272522256240186594601374933262636590925719921662257064481176975648334469711723547773666956569410369960719638382926132311090669764809792156824398340970798192709900894629951902751416346587748525883965397375554481680913758722426278246141511771063930948180306454261110470832299220742742487683545768575250495788701879389866768049193893728192395932886421276904909084181987612021639149682669778347187583306898821585020522775770161183952579811190270135825089363565585552880173372936922641464707842244252384352480523943636072561627250360493246369800717260792299199325133984071119590676434337895405645523651342775877884774594202220325194028919767767968167055411250639594160275506195501961222518641524131564767162382576357851021340169567194333206668088333094305437656072297587787523424648058385722030937318522798572204921948222415624922075720589972270979197249987577328150293655873526391969585595713971988684962719754643945804786173222781919723484387717487869275580034623466263876367687583561415239847451132065654808934237046725635764296310188366248960478186451259650509469045949951688540956557871797655529956349165584590322102381422108464651759256550267232929485626542897999926173240360536741072423397169363923565879808093910476971926072619784379936192034356588998779742919650299783824987659863665133908924822112071250885366183015218309536249944956084332517291835654709739260767179238675040660133658511164103188888742505525966602561718301676741624867976597655964624306533737656340043430071814769573765707425543314558790692728934420731182677424548294355359881430924958237175875764432765029679411797855690061933011042816453556550113805770690044628263334950480781826593279906061138304840929020005489112475528804264324149747355748096206705233123791091205811044190133460944973426666565830206798718257569961794257992156601867550107340101112171431136566017737194567772959327106246332716275731393771165334330911141731321563149441495861248662110914990721504469869847970725474386006865610688589468289535480889623723999011181873249335802448573189946347637775155719960087204253652200585432401499574955929791111469637841243339473245680057937923315912052323584668060920243544553657177598590363886222652044933793409536190832774106540166644089538848973812272555282812919236273811806103745590290089778695370493306776422169331984534676266155080668492624056410080881292538304246488392724098801545946911628343778994377114229629034725059757137621689375830247695034427305735946085898789715284529991102413368206891358920988549486370392655809657512104897826170334392176597233397389609190499677702006527273801214556517387640260763015923205545028177403006898415615999966185515170550894187395052939139002822568648385896862204219470673559364107727884118638351198718227192489892807326441246809423954394224967641498229169924519215130703654854434714225568015111199127388118836125165967297395958071104186948542063991491076047251984883290642245285501990058086008162917425423648478259771101808288206160313657395915705937130853739866712764656760337102681765077374226325468435825963135673465057117896702988902147956240317839375936785076075669804256274186264269533827236614608093300675615633844424365368244386488910505075332648060832156908036495287662173624352171038458226476543712845496805026108572665435058862382394157473525005009064648530465223736351609539313094584113848529310987262508670647807079351985869858897885897887268856396443022588167454642635218329964095421297568687193687889139545094925315570641086510612977744485081966374187859894325719458748710655109431131530547561108065171356576102871342535226794234781402595368354319800650277630242013529712420698079834945590162688229291009171771916908885337006161798714373264374766406712698142988388471097446509021025439502671063785051499353997160056412826363046329564621422586063105168575856200511476496738395221942639535255077176123676256118112436000767325969955132697645140556726477931810219479426094352298330177363944310160913804448708006542348752005136958142861274212293049481790064827536258662244603252018026557183206654165550591693071455701968231907492779134971205154454969834442795636265682315829995975772261723547217306318893222311055690735209362075472771192944301672024599984127890914646301110555524467402456115269292861863895897529271100070776065956096568699934441605878530538095345484304255582630830998419905458633213900715357903114694350132861664402979397148825320875619563789429073899523649537871099372539559914619263255546250216743289186647063983986818589843135857352972622778939264948848998856692726189256855016125345963475730741856264610398120420198776981352568796254388255244027850267982128496613743148625232940417252154802615535945265333399305702604156713646417977575708907829941905092190617387750471065119200286558270862330339880587366538909601368864051416197571940883699532613075830884839929205947321196234417928944360065628149842197655411726693591305423849293086167081304224871179629327875415338859334617149991005637000784652448308277219451351448034631313842264019436646586910916678440603380729043929813492636479336115893887850175775853528743587786300237388141132486194865589009674980204316159327380179170260955509617589491607738248310730147272336216344260786429628473121409602680109646020504736290923367940313300583541895779055585320459507434431576395386867195659399385916766575938676706691337822328206368623346171434340378678961823399014866945073020491712857360078873055108584757516812787413020444243858217088986556858753995423309414355120259628833365610163689112272454843274618175335854907938265811584702548799227990425378250389501217060199462146004875730275811012076536344483792488678911450290622011889518936746022535351655332771246209025990261967543920048896259251962766430548510766939384590746230201809224245024949828267029995889441523987942769114731044672213045087131818053491241909247454059092425634831508200252191416356340403329469089072144683555740865782671960756000097483076100673631407955179571208110867828817420472330280179252120717347498774992480558990685423301495458082913510638418903390132146113527558344422361981882379438344630903935289559737722334200419395884783456594134288212566189534048041524677485955972754230143628025739534918128245067137042389355075747257485352558566530942587711269890098302199868957648432731088406413887848568721696237635510803290334889050087129697924016388535423304413117992898578798847290898228845410249170246498488083007215177151385360620822812107918447959811337868282504055257517941457110222443664743866466336530751249717398315783330346729657030699593280400649567717851740579609614952067922600078081599645798690315633575172682241924524881147593700740409510137165389792585282648727776390864921072895689212734460317412685878643212858170611034975629088551005603466359309311802188714417781737898922321034397862050085006397930631003106185027090762400384827792621193804555388567195848849623553214716961545775988002127607624137178530663255669906604629880636881023114329639304348049493866998664601489835220194834538001767861665250361882709495666460707190254016952440352533526761948774041361575592154055905853367444684787099283413845126658653294508282664427012850743843201929239400776869774954602601919886495949102483309177885557347486265405071541088291946401653740341195621575270273972959399008965416488697380520021482035555823024714493886320821456435687544855828828066661021440353558234489024059795526793627848110197304323929513010413017005063461657835283912643013866041557983880779671063210784449057098954531881793594755747911888879624852893415220829337634965293908223105528351159666944037260385943875053569510866203112271920152726090562736197590672331892698554777503556956470376489897685430369042838646025406782013354869192040227157322406706122448685862773006579331863392381230725007246410509190580077342717651570666406616139376706416158178258026941893065746330173769434772518806870837114173969828716490241730757177632771321085798162351541324762486006592344985987483516392654793009182952719147702205628925115890799534805415988697688120257625273964503842293126242446867635491516994554295526899809979575780818488654146543520830629592200856469653882166061281686095023714550622424872200713903548105500501705090048365759929675573478477792783204939568391207082816980166046306355058509636620814170818025651920991084872300408692019844847225171028530053529234184018246976045833945670907266436988312613591781815576824034993726005389629617307590853754809845472151542629107776769800318876882990712897908514930143172385244017253281022083710158690131964228273027529199155976225513156621184139114058402793949153967105165365829677608365109420724939930757709271490343180441773541141324020635757729090059323545569020317560472950238397669552848773778015379634811262806258358977461249780165360600892029772804560361279091910498044936760312414018177816952315926828514891223825307769699308154449768631325026043450326866347061612809203937212632389369898677489810697748217471488232090604160345145074642908592838016894752621156462294433899771199182775053504315710436995229343063254199025269771652188228766612442111837030411794717426588028146634184804876815918941090889917453515649812026323087452122653081075462175858066249721366736295589916735767585444235422231215657387894408398139321560576156710496214602734191132879208169513787153302528962300498251119024809291009772315796077324897890094200236950379238974206956751725153237656781276773789526783149120706274038811954127537857346032135514619083590524559334468355116297887827384083010577542440051385967019502040138691972196706713832609545211550027436694113854771202416123023457875741267214605435840394208334892957054317379457285709335641965107246661578544438403544728789444152063417777251360804687409890149667847959533595328436731821970378922588186318372436303947404340060017069970137221558921534663682965324342310241795390866761861253998754570766474156181928449735531278778020123317434907819957184002713239750806256800301065587810733624320912652892279482643722164642163571432961132269666925335228629901691851210052166585160391484595062897266025023221355075838175095316320674400109639832717612253842985111871858015673990381094279473718369338654717958793834020633435658374984824656368414829572218712026311115932296465393431762163616420941728711346835726194251429413463528461623372060879681961000096368296417780295927436159134878848256764791746236270682915407879728688115479133192277113046181610725060864968003768437493838975681501303424597291124330730472943298406300508825499854533650387571499527580105690900645202598543471467262549836011676469223497279358886083442529166864951828775742551395933608524475515075210765261429700269702906405632892964110992102787183408670197289766557891876169247692749414704704123586107240812815152996822601327693675614459562450178314492929762381769842694259908238674397931773215517883843988552050729159864349602669875061386611861991893580528069185364696829899611990717240153424869059797969131766891640528555404592659520903890274548069139792922151750679971304426898440458188886693325780381154253805018055153856575821960250245552090451903088638897255770832922084362053472427378296423348760626174972691270603923212249442872537821454965322014599942930601493730632794613277718870749750422906935941858566590167760277192879906729267922874127727083339210790680369446335250914937381721317520314580762803531936010071887744718518048389877725373408054264117355623664615292910125570056075534965835829227359376675260695490807078308150893156459836327183551153246291612995285438332001163061921543458924266670716221162502463070055358430099864165389371004637367411191810770185901026450731313334035962007990037238361975519510779545200113961113009478609234481355641431908596678201111979489925209991918592473011248083289135316322970393284337226691429073833155654455770887296889927997517231617169179630957366847503331665366712868345610758394193924700482827258670221519842881962011541417993942581939807658030916037426244241931836870207097567160266393575919023280891303826940203827966343769482773573941110669696704546404418135602597080857402173692027232110302721166676465790937651422665213826439203943564310383395947191959725765837971302197275796913486878573524467663422242523849449004079184587290639962218594145680434722575591128304474256181341977935574003531846468014089156995190284552406367684198611641466110853484143748191698152537667574399274194236723080502654042974733652574560503035464502374093305250768053037672978884715474402260601068846168915714624479953500053752061985559389645319023822181188845619745183049034171981946863313487567801760680402133363948938603868427912017852433469705505197475904174647623368266788397126013658899024266980248262118915222773478258965504233983544452424659569470923370784852618277211837706363794493015785009179328411927579824971619711181330004549966914663762799439385862168840444598608800243045248905775190559972139780595040370162299164971086861768967139310023816554213087448690129725184742033447131874088357381254787738959753119087696830073003943716972010664842968879777195732251647105255043341221769829196681927658362463726086279329100294089215636290899476267425739831933737570282509088533579025329786581816419204542424773970101180813548129364052977373087142827528933123152382037396036781711170194396547412071397732451990890235565247124703517278052635061732717771533277337813757667751849387594719469513056078572333152676984709054129446774061975532541344024582581606745234395598273513005932511474437486896391056075515954374793813603330828277703760998128481773884189808530899922811703940508255048497120653604225081803646277407521596600613404567034193208899130042766679465294827146018414499996770392804765858241416990519443012589165681913146912966679740932846665137265149742052369671520290168852235919272993746818599134688199244600854332226643042003646532486383998792060295743096530652220004204715458136116583640054102893469913101497026727950576651816254545335828280347882805840655334412560873880026260102149406300266804389354335459187153057819992240467121309997152408283078258733445829123938598560174970662670474815880653527626271963712125671270963007031724558730238768003154566804239484283611399594990068036747325772143493585821604574499342677993930439782259381690079708262245347507838771397136950892671613456434515127085565623816911673977947003966242184009432550664016725685138840057504305586308039139970423567605593804446516108945845446671448842363489737283108004276453703098090859557363140996731024570281885197097794437851920540911221591915404611257528580985246334794657403788395327190553498346677186136805942125442227883873984994169466972186241340711254448791266078658544335544938591664043837915394166625052149493000289979005315866091404210388863384767719125374405806698443879536335328737652000216021411302938974001373666918619739217337554143119274935347947843515736352056162091646938030097425416431039830047023615113741379364547175260559712471579137448735075975996277938607378572957088413567941512903179439333521147608557000206986494266203046831200606975279091419646003538059268084540330725478074194045440344070800449171783555055609078784322221322376544952776859559495631790665995617844918464833083692380844012403524231086076848660962201554056976148345470123428637246206361804573865653921845234587509569003933176705124918185259467667893287684000111806174984040229753677386285382016492082641359926303275494943566706116660976761556729244690216223363394569274172838624333850653681829143363010038250395814684254879789233462617160697751562837056805000494235650404087732055410600327604060760414533212336938960628770390768323027842015589037772308797326443485490738212271038910188034546250453945697147617031624951462621813298136998653295957895870902792403421598121649910297428907805675355217395242018148941081201297664406232295821981087721553934970667982552210679470696345742386958197307804468136573608347735420367133128842529566369553301312275198426598176282651509792293921493772519214604689341618488950168352323086299624617264857758644109932157301512529026322701534837302572251403421865898391447029168480309087367407411313754755693274828010841700236369601163637833806451927606374141795682517717401357955633213791138932811421567602689845664874390948571684888780780737145024128949230954908530820039535073896472126985144982172602511532260010309893151369433738152374386948373459506411265552102735351459330420065128867562214411891320147308020289503618731041105637988973947637686146084615505811709080280604392723756670966293972658502652059617333110049265539044241799692801338408718007818383894039593337702441043004092883728980631166162992820392564478356613448864896690103477139065402211353289882881258752160186156813898155876963570582661506891892962004165269717385042759748810596797011030009212492734098568679336466960339510731820726885029699690665725462077195697663930432377640052393441181955887788261486016403392195573147013621193308945160449251396492368498153873948183248174709823348645903188035624429026032788321202327054841140025226401741001061645180100428637526866955442197506710930209888849495412704982702395402142323411470241094160408527606189283713749568034451851359429969039673040774827573652542416727777885918586176845510729775991381352376662239628451071927068523422615253761111652980163795798421225562727746736573916671428312352802990276066108146753434491618033542279712726106206606345739585593325479218517846924245138281378027430152065151194132835413428901977252585586797188268051804005245031785840888279359728915324027488735355503642830912442018649688991227019593699366518322315023226934199364264970515392131983270050120505947885199746892434832495926028450767067735594022543200852417309966592219026256483105158103509530801055623514394813189188827910336811029948931577230595419870214911659600205403196319652714778512176537910017425741350388161368536995969381367998841726390803550663329657879448688337724063448257647038676264501824049280910544110922408845346702354577458091474887690746682795723865718906174503670061306779449869256682960725316460119069660981510234385120961139147300935313811103931626368773855018270690135895831225923089940113608512515714904993727104435008905365232353070172866010818474084274535973659547362673151120383682734758975609089823335995171312061494800096546770140546404394551503505894186619498154973158298719618847333927632898627849457177656280004661948035981660210223664359075658903674751870735469776611230312830755383501504811481725727944260469235111796474579693667910110765073916581478839359933029220340034169659986697921132623222549329688462140418523437384566410262190848674038539888157156857383227184190764017893454016418937625412605074054492382379711313526922125754608261782485354586933485982585482631517465878134278702888341339777097221782075065400423126771977023319454395737112845568259402836993577063625091415546279727219384777439816658384816676100453021717312123703140491863517354091687183686913554786916154761538216001164579642627531938156234840708065183596325041672444781094847388856637858462591354733370254500988845569986263245922843384869306917909782240404547186765405316848720409233514571889915433682580628518335093218019124720489891573063425646456953822457296760788128389952162727518239594524119824262394641299609099003421388214141557449324751460464401312799321888445965716919348334799555222805402327636115461977417549635410935311453477233184698207128577781930731119224676479694320046673443479866663118397681175853681388878752222684805538706516941840202258609019962269462369691783714022768081235721667501054303438764963574783606787088238332730592219711342046799049051664391350555666313752667807717045505700557428193906163236182325400620760570550829102691350691903428299384185143722147474209552979995897368274510759031851779363529150889945095105195710402532577304369565871003612429138567416307471112052208921189947269140986565451043255573733450602659578130019020352538330210203894783678886948842652741552441277938358330499122991276415826149494237007318469253348426160196657242123130781303889672649232385065313206295902700486514957703874723337456562991206750026774555036458656676967835887375767793250047605393443929389263396894369344750354312957909212472624927237610257953744239551156770345443573820255590622038722934653781549867477497157565879364303836957962264268496444747039316037462541204017261517058049877318170346316478883789078580562887305215180973236251605292952023292674658884096106376179642290822681872340855434078904296075211193877586895793848997242834469845819319504410272681562717799304590803436003702638837143293510889149856154333624586062604534869044010263397503299104385270343918713314244537186964988279729319308883728258387257368850940794514595568462354829300576016982166899595486500608128962996607194101893471727121086068590539775871388699239292484651422424454063923430296607712505567208572093386816275056071457290882849766741926740059779306466660684701549330061783610990847099987276737088945251072333744435556850359413399823769432820861697139776892657258285834741081928509339706655889245028761132285440550812323955427724196593827582453790158755437584926644995858269178648095173360420248613006759425809198736322979744277451807398772573682657487610560375418674767411985764708526952962116218457610010570657439040460990511653665703990489346723810120894441702322473821974464416058761757071878698791439161918252841492625941271331806983163214143446437892678526370531224516002891981945125803649639146093113594066558531203951607648227924775586207259847993037094706427653703581286924550825055783044657300341410515049074678984226434723737647119832827438160453735534293151438754676182484130984443633905292621757583800623765797867725794282387125108991265346916824355858859676379108375427911730858336216139998553901211865942023508132199614445740027401676524278419698374421879580438261114716914569928017354243026055073743261209943248738760593947309815388176574209535708632030637262860471147834736044611360236486025647183355499078142489040857897417324034664008854778874567122081238822058729179985013341755844476350286834169519926935129516395681259896020936814958539557586231526777171735296392674390482921496123317442144591111083588782478396962224121082562936707332582256942960809968180147393813960484729662457972198582663540445722614188279445325260943104741972738024944485005385621430797856008951637715691720340964133640399094030247885911594986665536767417350133209695226206800328682984742703311096770500729816187181106571142029172043451519963230337753318424028506465741485911651303569214829354745691672106154808418331997680676205688321564102434538431474779065319991799236401843121169682405549322786496686495393770298657574583192553183665674530057151068751327350070861663523484733024250705108836057055769214501114050483595528522151609764703471324345004496569295447323897648438329286711649468011907378083589435859067757971057778583002507063992695319506363516694435914559304562985942367537853476169428917439490552493730650241002249630213110685243375254873764360595840576663045419313095230122759337768625493695046085905986418750913025760630118745178196694951157300966849454428156533751460553550897722103855960802831710621992190880522420621531258189280195196264917699886954495431393754994265068092300240244512192410993095550013516816294112203292094773645618301028497924005010963432137604255527684052349745037426181552773935961475901105194817024290601587519130364422602672702600249436768395013864672978141621806772949593303957828925415180777572903353905348453568307679139753335474347618444905658598854795825836814377278373579702623553904883841784397833362378481337286528495872641203350840214287982896438748660096501374772747158818405345036067424925832291019714865856331741369770242587809507810962941956482598533138272372639321385439090203546994294200405617073109999459647819436038613602596596768602261574237436007743569852042178648532540560033836695386102773456160393858932730707424557540468312677061254279256099225213303448524814215099463659279348027648694862721242714554597521957938515728214380641356132851196936078108157999183318065259140059861325702563801938901354379384507776056469219700854962902626696836416319100657701362179994279946349300995097691140013998249793693764720796611732685317981554954033450341002064462116058177769943062292853324267572928192067835441915632583107473454510231756809841510002693089755647989537441747204632903651211065255636398740964377027945037556847087614187251085662423814039884235773935138952841687249339463853937451441951855519049733716033918839962442553118323466482783538456551459322850027427456892969912036429647696271434033406144765339790845117288027913304945126079793891834845302907778030333041301972123165636657708270307362445104446742956062609527444567166328493347759754563462243191263579795555665116656668910516284752442566359347029883569547727819895905784156881632789441627065311738425457003314310484483128220207795114370152988583377522980238452027986084435463778759626665340727486429296675611460078836548421016650452023779758918166694107248414179587338568438994597813842256358932646008581045842426695248699308922437914047073399275769230170168032743651673149087116580296029425457795998628511125164225961111311734723626993879659818367577866498091160102232810883836553989742549113554882418195811730796193364481498977974244397521587548728421627150038266896596815384326824095066948219794284725518658404928582375398942292297903406013286524035872392561877573612385149715347715570041004231067812475271563714287858506664601206995352296604124799615684346622539031814735277133659529504447846977639958766759861045446929807638414541528389943955349037848099850507737756673678164147071332862581894316246024360431791193784052389398023369515080219194234901163542499949919211540721007540486047325016808952187867835258754524823808340205875106528808777283181972740705040516868423716488505138131045589907559401922720676130679790103634376792333448558293347639567129508977430953621128112531732079608384392585732809641189541129649949464096220126888520372896291912073694607873449242001982815791267078413105828792178824918114346543070867094910948011853422262051925229125892536503116399030258682102594887704512936509805196337361606135723445936276306423904192705570243001992661213804496962458957170663106391366858105412198575925907110353592177525644191100208074745133220397709094127279257370695095367348230016719951210917940441154118814867097723979582104894523925615319523697329920372977456358538848774500304462362892495821737612090480053114486904892218408679590176478409772608265316707169002152971883918707144243602838988357647959095663186899480399602479591054068628746033834072553580210115466860977544656793360707552745835231345470724001722527797450843363470995490511591835585276055958185711583723880322701759360126920216582901560262025916622667193080221107802443905203148124187982628538517515679467477683617594554368925150472222465675894630148929519577267484582512032334156290207003418753594296911194411834824790173038290973310635510182171101931776213607459355734366591085537877466070273347254602315566598027832976670180779536590099840631424508751652286997573639767485153788030190247876322255547371976823137218233656159250398109789336610943052525201609375805966135889356596150602960466865583850549227878687937167834287887667974648007195677997705646689724837117889696388251478657599551426408500903789396408594270195259753361054643223527136614599598964344223114383937296952445441018501014189492238061494440318368416685021119422748453480151478477340347746300824169262760641162372598189143161430671108150808287112314388801467484309759233384579456338657408037215927255456451503249627776728576138645360003837498678286469662409232041259663647193899877444350712989290840067005490498468421006596405978289236001345849332554672598233801861901964632570941341338076647458185835192386565440809502280301077222965649519183967801404782447195083800700337663711318787602221126839940848833737029065134718077665813600411791408450750811172562589585448491747275594102767144203505984854622712640946407708934991908048900590189634724782180888106568611250603250502315797941415530353385969979129000545608289744527434757115777259233739415500084437291424542613443014027404034379568094281492268880050319539217189631555306997242893436489245491340691022310085685869541421274759164940405317771786688994226446429622651144785715492025370722061119578234695415806921584045637096571960267951868727985793771715616674984463107469011493345623049335680912415885072860830924734225748659861083531093309898205869522017509488978145761609828075744169027434705773041549451570563220462696659743089983094394882425691320618755106718124505366249737491808796926465087448827295139888131869231908509655838769059791420421788359083609149656133159256329334697556678206624963924279348446364170806487445244154593695010054137042096178516126298844600413641256854026294203098668757580982968970978906062132525568953671420393110529156140647318648666235338517963644508306740820455964303271140058782373766859373690785638836368501985155373452580664342610718061728662562181193000611742213129799027114114511394516137658158942601495945687197109326443897431103051297831946328503804630000507776440256832650232010842125438695344883707995790722500398540384498242210934468137047849086554369910120457513485325770766765685939397705514896566963377140572027781828038421286797936145948097778077138965600544733717988567657845069893110738920821323271514099000158648479131379984937795264591096038187983327150663688380905916010342640758081295107367179020833001511181496441355599794612125076649588756314078374026639077292333457817877077985910938465366924601447098536486892053158183261108715624712460155428041404094430111374788244914370600537060167476379528454002934550621146758104700737394374511404669466705669364021951776146106826527389301473560697740686993511509536375976076052629970425313910947031559101053539672521072290852092752042837308033881171022431764310962790563632677344091601675502399705507177616198366492288006864119404726605785765082824792761432947170433852374913986818291216015595981958823809379689657900182561184399973888039884131026888428364442593028949749393977167630276939432616080131887883007297459081258675400569195649511435390598916551645780616906442123792513387711224838696755526506966860459567605110144056986907339083189332087394899773063513622401453388562219342534024160352284704612299583058524415152969670424165516330233558003015881979234751592280930064867581997495016673151701517156354992875861688351094638471843893166341465395227248781663517535357735994179737829744901645693641980725911862657907642159077608571846507282750555495352341792752285636053836183862137647640928531583075140572491550947139531446144068949838886786174069781568490078684807534430387327323073545177538914474973308163517543101275443400105339607727017752270954943048229190190714491852873165118441180213786284925008606578162535783403118959565650016156506900376075312333331992810997162349129806506207191877728786606755385152400155488389536869227510767139947762558887291355033729969518075031312940305044349999778117599524194133643065150846787709936311577394802384875507895596911140313317549135102797005330343745752795640503127088015509378787742306626052820535213580679505840746690678770803552221446716655969390785710189334125262032484171631079509659916779938177384633678647550103211850814836782484282239123942389351284356188288345882972057976996840065354910887761029579049008120514610151844325457749434533953507510565975400397360001895189208079545256243124011986489195195973356916798123903150159651707000932135345396995941561789750062273735258404336514792244537061055364885746548428903159883979629771119404531165225787959093269436578703331240607145991627845275284195163145599535456804218116837627627404990843723967905171823539075454766109203024248954811942157853667656731982446425958287574191705429442644186892780977707684801805630025017924101099819384239221136535705420642219193776208350563004582611936183185645035097756007303361491471596775669902053301011541424947400212057211161028962265739577822868921312340386938911256920823550361477260033143348434221562430716887981358285837689316480421603321494305227803173759772928881487797166097485395740627330625866727097280768185133563163986219441524277292289202875862746963854800353507151796433400070603074840241100344903723514105198623128909125838846014022161600847592536557476621399221985404097843123885318788314132602672249635918897077730513869340373492712039506010515111604137461787984981832186358000363939971908371714026572997725343759652449596815271611454971028803271026891054645097666215654042126633797222147043816990273512122246857625756214928749597285818394137266061254464221110713944831911687229230544856443359939219396716886853802769969950778668330992693353430859584282276944067815284071220864090769349872816247490763856387925892805821243416268778041883179510231505227821932281648388596550083173977271482055600731580894203080659766179660598102447627199701155588603759732456463071320951921705758009688514183319120708061003316739604303899217461577648480225387285963343427055927535685867073793808479001184703469707443670210421073530464425510362818885050814643039062435453022276309922827332151323127587955683118706911923480749092240465158923876895590336557273124562720301987871067222022111910019978316046960168605460689186433787558339986955230007003004900483350957898537448438672500207302601296849053720604017823000178096399786511277138346323320286205001152847266795827224406250801232533610657441496139636901246649653352132641651550685798499947400445006199818458883478486243219002101926903234535990561120907722789048330959090670832991052411217519851875808141332731055481445289767095534303139166882698086771290154241252987871964132688452969044169314467923841697045852124964447341809942437259996351713518539241924014393433451334704414213023586112766137447943467100560187400165699379846929672120836404453999658082239376717677321736041922242809143186966518408299292959815365203311095432166304697644699890119277576470438566511512228229558842940764520115873153472465845554413641774362065144216487876623620663371506515420503675962036183751039642710278950533497209824511511605494617750553629963837289644836614864362417174529845581553663721548159379618360155116382387275334283410866116974222428100384325785950494445796095278164254590240470454845786894786275898555145312097258128187458075012084730826540393855129958046331991174643327121383216309060979970871984046052739039489172424281988598164917573905144513213709736517986480097390010876050450882751824948906590822821245429246001872672619352748255787791779869579154531422473872635728057438694665021869106521060068765930540162467497806615061932920413231608812375088557735530866426916052951362501653213290398312060930452922039562330290336751473537391964320703503604180868902619576562493754391373860727897186347147676420258458561614373691163998709598790416001648422907142675302692788963600525219914812317066050440245803204734063869980047664577264524365710929957308956602080783011536695951368382598116442319879950570861808799280051682128455700822132656139794375159049982099282957094800721361477748445230991684425739668800581427715731776905572705774104910653242214574128352092785616969931837560701168757093774211034954189822301724946917644034373573009308200487369695040495485426940699805171589607473772209755423985010134715731751299513690722947943192041942703688463882121461483287890882219710193683098162711748154663684442507778657421504405185005547631604764482651785218045253181096774885214018408071561557568798014290716515646767205794061849176990137582135517245491308742115377961302577269409571614695522715325306493146509543674131283587767585830655629001502945147229995409044264005887225372382124026621595690905925663845826568795466636639339010349826473482630386659306106422742310827033095678159104882222564113083986537098989714651518726976491841650136754086313584573466786264344882469510994126600395693056691470936519089089868969823620594084523171507052676427448241880761797279484592720600162839618784702648517147741878222391983306356312365518499026647252277606607384600244802620609288935953247660991135279566239225907098624790374770006695768755574483062308116427404268329963691624535158600256714055425198923431425384495838532298123004441776052075835791621858611543232696538640751074838176116805619432830566155091668469256285534664773121154914234542218988473502329951407044063596624024384299148470771143563099682404640297477462933389720019864612795910978072989298616761967668573730452390627901222235913247175622765316961900180035212555532268315143967945898400177144438876359696558252427728656419722907588972643795561416521515120518196602800185818188904342326113834514916758477129612241479993829748870856599360316474586621617896462930438879492615532774442624755366182786355640867103431930593846631120929838808421396841462061362371419681776026529126384840945208615478804355762874551233789211407863586996611846954965289907970627310396935684957912185845245684481157619396158631343482376381805026572502747276510520646687321372461952940166226818353399785969072552044148635925743634796195113716606585722896062909484438314108588147555953150313057753921132517170593493425771655985208300035241499163711530113145632619662262183743129159995584643490408617014866148860083574007750697427350093572953572822389918054281384127063428894524193571069077155426776924830018484613856935582189839250459198633162451608020846201999154137108516556338261827324308154365565110920881165030825239189287433608978076550193317710217077051322511281471670635511762128686478902449104509470434018057216054865570953928737127046207291107523326864762083166898480078356088326408840304135917136989752500313678624676189748119761395560550329079665167945463869145328813768497892213932029774683970150220073942926170620944309777466593352548970951162861964300495897053807868307761469263250297693207273396793937027174225779522912749834102331575432181583337679128218257670111996208538147730404052452428925587069952329668965118005664638816565207789180205502036472547840847506421403050744963551798912026602250401479320907376145803802000119378001446228998919629402812022073647463875762069046666337383365242804357580446677841601813984601922425116478202300842701591619025276939260544278116074081051409913263438881793552476232268284173183557125332216184656613370850287647340550051033854211604657781388704650339055386667748831451151781483082427169097546180765460235756775826201361627176047778530303198067741622302810286827697281983501366008109428674394899514664159337482134893462802690160371756540495191136844228367417596192489174578673770204785976957755221146743440228269810283069394614743595906371515931794152035257599759944264639479485857216435528361242983800530565712349815762642968906289978137372584231362877853389617764876741740644397056578248563865887393810011590563447568247944344886630231135225226392454685266113487956936948115730818253312676570519552335400181551530411973162783087618723323695461033802820198570152952994127704774072167658294405336734602154147338609039376347696497024115077638994328258079815956574202796429871368033233408948904731578734354899072759811828933923321681956191430797320197685105794573727390972329408903295753212969029022796487942337230593214642193568337142260312918620517548948921072271880919117073904659974571162891010871767402919981944496548431093074917450449813454919036688218857827884524633685171563875738677416955360388683976832580754860909348063606017437806693906744709705294138520710698298532399842383053679447609258348986646765298840900051685970792522310857757680771008297134329015006323512674967943148826424613392526746370130754061359441955787638715561460560153908107128205201915170579736699475126144872296993284352768449141198267578701070442125766608469226840028035781022152835252114568028494997154018277870367465893869604099284780393213724489614676331666633948924388390713823700967835601877902338602543850719995667941198646569928393686190272875751938777789429995574125823404198090820464248729404738830240723259459324594906518854458999766366507264519977375363117616856583330620747623777900048264578490284082219160641241588795033137779612579163487998071439816833189498667260179306653937767215183938910145262960008634255041280816151466280017638646789935118651279909567086204702485981660015144890848137532987346929601915697505564801486842079510654598330107677187198703082878328166389052054567377235630494933996268236718477718201028783369114715732751095046562818996234067282678788818470443818896435271334026664106396384187450301711314394113026137086393181286005720164248988723860910868359823395437094587318845396326801473619114026851514098418340960621575379060764559598430049235244360366976221463364795482801742772201865713403570109322603686420774111371909590575143856711580939061509904625179190105450199742825774408648162998269535072985130697103541102691706755619127047832536025333977282471736145589768662783399911097095067232556320242848583119427374058592140654423616969641848628446384824291866538338641405566589119459611176396229053337378011347211145013745949875531027352872195708194021181374307901985631281506337092513962387540261019280206512056613913665299910136048245922948305545844034632268161367669543965956663906510649920816952595484724736426098655631397359001646197831200558163675288206296893212876964309126372303095513733478833214623269035349187644066842726622288502339934465473797395875115941467142036125448870952360600923258568723264482739381872417630356128487018013012981697017287700340926535229224697516949475412921717379425885488881805204434093835413862741972973920239415365545301890107031409744490684861038498558411216908426465949143195072487785717270080203095169211437780912608632501904238288727521292890964736686015341091541966996393421160591260324025586149246264752999245231618389677718998345981433484370097837868690782294781892021486158390984302502033899333134361092105768682937408149683289796982170076462851255282826458343199236487800089431764721040474586189256340999233639813504424889049753790810342474704660384328627891877642309109135535055267050722498318112529474848156258501352613500202320226664637683173051189260985671406208942487764901486405940894066034424410684464914071879931611777439863221156348956191621073777146620720999583836936400863620159273273543672650060415871670860496658183618825417708826333164778193877787956092720817733417382293823270995912644495950894507582142323587290429274619999502112737663055984167019488886424278300961196973203230864069209247172892886761939969453076313583284568208780456694024696280161669013566964010657082100160671383992096592025353594589328098289236925840335762440870100675284871612537266184173816010480646857542044898676002656316422471981467007622626147923212004251293873464939328927889620980242467601047008732780263938466004047123390098002878184139777625253016371948607919526385975704137103900651840575855790628126682056530363551042886284079982050670400178410176320711947927306253410295101267316759899650440667640371360693913226774667473564984551922699074032478666724689141931505040526796952892596329509681390341053544831746177906894418370500690357737986713380325740204316063234213759174709673120983031386083779676429609347459820085583457384976753923383261323694245485291268363743240568787913584055840712779683059139249615136434908406218070570933291740381451157909095581143195643642509727842843777053722475577839054087989275942957764488505936536026187914411878106611728830183217294996502653038890496353211508335314120746148625883292467300421806604633788101274057876132222944890636630206614689025630840927530222454037009014330886241040760991096495446973399179468083623458866466589981903801925878690101591521007384052984377836008258708637276124201173219851794529164114647088094231976647948934407024318132827655754245551070781817742855405500393071356790576682952116748865704624587840175644446648027493554748614080433312352258941352299088495808806703051508187415583538426138275178735603465920309637388155881423041149737347634285387191492216183077527978627513715262831413757560885998082745476044366795765110580164760097121206476240146505684989502363345709443047640059034755579937809116084078354774050610978339865209205539450310709698133536409314078645148440552575965981006762730838071450917984352556662924828917113795548048517020366502247999768843043235573544954831127805027235764062395679611602344725939790354325142300810913211612894814088984501150505826807934118264030520417757754944664500496438976206861883751804464455541414267526440899403280826942549427686162406869796107272100055413998171787491618661489799176652937536582315825355095752682136773891068690014724188940779728385637096241119139028173806919585846686502712225255269269710109197107353474059268871007525727514608935683531464455740940587719490568365545667222988567730440939251662564197593105775093358746283802089027602802203124250884647611179785921189391962382803708613008684204062812721592214550548691911917318665002315764672548328969552294822686039253584670028273838781323138676853381487609197235084296894738501833500394668740470755808422583838174859964845644276366934510346683221955105752144500286713419494371649762207786315196171568205942133836629150717606819914566444916795900660887233009842907779332589023114705890537173468275696748823123380608810235147928706991421494684877086403772336306621983093146003110241078258064406522157149821324614208813167990459081622455695428333725803327426997306253179554523660176355232021314992576054917635547130421836568760252943267340604740449092355987175771423638330339630246727946876797214314329985865861511489196839171900851816306250560391114302055544699672689608988944362655130780652328532242089559964903565957578634349759459267910682802441983155592337204835955677916936376249660653659249877035682943636345184542206697630631119743399507546775915996017799701800032842902378743486900617438871522612909772939747877441676085757422506330919039537273136006324941859658756476149252667512316890580306085769544716190013516955844508742880751522121378127636835763812592978801108805612112329023814934214034050951310079478253691161834542821708748820112820488750080965988129406821288659278677309892550445686083122885317954561675399212842008476431308209388669940582103903508859652138749119762503886410755824852612528960832198575939056437671901373549958918818198820945663574314294779699657140968563036017147996170107206988221711233398729755816538289891589941758617563683885749031346808782813861727717919019168835183334279159367071697384773231484953764866809529738775134985068050192849201064516251191203396366152755040268118107718582958952624176201511942544946311831981493284862618847419496198388655043985977340686439913311421919548714806382614528441005655357493728480006340333118745126230975120096201592070411910754532200692071182478060311366369724321073930076182405542634824729590027906081313063095886055436701862026722582835870129553445804357813850430787277352024974570247033865999310221806819370781535731696535188987027555594650408533689362575394925564318097442753092121582462167740981145629190480069603072847288007951351280437297189191372689217744984143857976164757928871063418798849179161544632481129807045931215193326799006364026263214172279940496489079394157210240366058917777744039650868569533835459281877055225084534767877979073923090975755905273014876970071006894782413886352470811854845652508309933480270382142930149152039576502371370747048075074085234949521315363632383167012225081953590722187021198328543234217214218352841993673850952685408024652639476036644934113795055197474709540404203232631883627638346952546907831043811980750916579515472568662854722915928806486629721719285207193248489940542685057375199430324955872507490974471886424507258246566770944629249886643806897546934761687145169547039076436544008930431029179228605260737963790608338893508862066236965459402347299596631716151972809308032816617688296529755771055151547181493226773506290373365536502472144505111652866608535391494720569241259417853534184892987908590490441665290849675854575020304651962992665281775554235037850400233272998760431415003085384540284127886954946894533458332118033039498639543442474638830505984890003743681350682719025589491233744306174852066244229105801767192427583930492109711922002051485765709833922385779740553663888130929325897303595128287091874816690434558428810796139293247041445634937861573235304790721341264780184348624789875527656407725952959457761720967762103162597872845649416373589446466859590352829995405001147524611595229693630967670648950913137632818983161786991807789158593231882565211749977637092014944359721354423597525024553967048042213907069750099782666964466794277175160639486397107293776487801232841847419302032115026779870471455096847041519696486666689671419506937258698067191053218140640307530466141883745133468978221315331209561553529010859154472912825159350648725997383728692708049629083136572891642130812810895656212787546421811810789920099416730649970953978162617526931015617541093091555607411998141704167562917544523214680919707319299712949962544754447921871975940257708231515454873137917537320708228264193238270990979492342497558640725022021862495078969601919972181595415351458847356164715759795797561754687188486892531100878547671813547825455342758446929634670681894890059429009076795238558345513713274231536896618317156348536409820988101830222690000018563034540719561968112482696194011942689395314988832300879701124702612996144144771140718023760402294331730298953710276647070054651255200652910637424854825959186010369614582759437050060633124774181951004245415085691437654673431984897860252559003973560744182591750468746373973088106713312224583965666525783661738797678137898590655105650031781206266360677598279291853210820682208334452049680525356062004490306158406555084008342703843471420669915640601247143846106943457604651682182392448493734708013450380840133701748841063209796249669426069333358053748925262549288767589549064221610458964260518978040811364513572923830692907612130272619941789097563719121802425847601959845607269357288367182072086985214202557189107091938825837373953557141525809690274033777179126126440240161545549616189975075936211388279578487501640478797511850513342917505443399905905552877071584744004098879777416878849482241630809168044274101337698395281389203512551922837248459094054796466706954887302439937788237564243378507873138388412960162839298270619175865267224346618938398630917403755943211511829283777777873971237264264100338088775305089843487769027762465937120659991189554835909657590107627529043552690016935473674844951956550677107962029479235299813701157411170122688267819434367098548206399779536677546627988216928374531340057708007627378707380069791830477980058972882159758211227346763353518635399233611441314566600527060420387852007493260721307771068626310295376545092755564595732900715807104775481327713747111113955037525257089733963665129317243908840856631798556886079635802013676661905365894171053054236687875420590710797325880318060910973648712226694601954801488852534121160558929398952638825342775931702833790246659797360882608408399376139171982592059330656057498703828880546729181657568895164181732779123124485422977343122122377110759891234923118960282602749048562151410779004394749486514942859600542275480238135591695011429029713382761064874304572081620992993109437295828624904313381744484531962891801138335971871665524691825090834305376338214700216622407011264270751333081236068120004629704890218443677300504985779565193236973554396998903748168646692358170128034026764092291284183259665414938399866211042874898519313427783787654887106247913740966594171342178327247595476800826497798200387500965129096552938668416389412884702918581788609023278436290506201212720075372978272494391016118327795496361938088265843873619625997532063035359837653449515685235013569202338543433474109373433841199254034960901489817507590288634601953283642746672531486631958499137375304097659850703444746578187675451540819541277822644331111364342869741239521968421756462781429477498121551283133938147771408723854904107183964810168256877680150409714566519465384217427199470129179891875269474107300050369053094383267434735836535206285938479367552210328455965207425941561018086565803831771162515373766500815635826067742982436374788233586916747637002476337257297906336254409392002211391219594583636055407970029476072242040953307469734913829340971223160716019622033288541346006315111561525344282579694572826314427926862858650611236701079105720107007021721157298477927676412996368696168053305306293478238466390327914928018566682194189486729111691109396045676939179462515037539235326649672376021649712514166783415220146721812385827183474732195561612642439891200755861458965010200999318439405449335335599981535828143932437954057923108245101979271967903633137036388123731088721994193027469690216871379961432123572980248747603700064692104080433691966867499056328574314644307398434778304052128495468740529319680541270298114055752903731981064994420962580576286037416929113942010415511413185269729823389470255563659064759204334746803452459073021807163102168234158970940334709069380506181857923704771316232713504104499648274913536121037801584593534429660355775577013929093858558962111052893475568995345270604964065187509673810258307569395841652628912338234904524738983385904539691376323463602641485501033128444586961476945213278538209027919086145637999216850746642700105092570030097022693130158227100923798398607652900269593635691542763325607698703739618602262610686554545836851513578197193222648854947429135993888626524229646880919479438866872024588497318683315791081802014191698098397834626269985797826217401202274898547958823914669083583384146095930048759892041729406701604715145825476080301632994542006531425893526267094263146008627604836039637932018477999736419938412099263581877513969473918953215039544629317231081137751787161122186990067290230320348892885984308079447766450642493909100739093991306468975434062379870014185543609952578317759710171299426760008332520692819632897641057603381962915938281081558736762537791638538175618778873360206773202676750467266844732272845116249244829720389473986626920474502204546315322962726548667009074158511821467496619670414582637672373863889867552291209811462056761724306465194483096570553781851402564466147878415603623230991883662991181614306274609205649747835293313284047066895729846120767684195615592289060318659386081015982112076625063213469569593776389030780583797502915214634352560062241026984908265272223837782629494079758167568773771690192930691297746575959819237353822289638132336182003255032642599983984176957361967696747967668280252028290861377340286499143603664890750136214281365782774710217194754162770118405262088769965706277444597041064099455983103066577855547083751317466035104907252412445754093224752634500232567932891560283007713682293976873009967616973752234285896388510315605527281986943335604724963996515232304070681134963095356515952145605287017067721572304792423930778225364901826400256972599498884320511566532930076870112290906153827295839768848243298034114372538673633482286052900388050392447614029654048405164525978907725891205028875264457459837609340394936509384166248136073987193774374125889865427705124998213845031068133427586772696014171726041782913353982979305973053920731846272546432490742463993684194165122910636358423219937228624128210865850243757674271131611597908179698928140575243195939922217562178091738726781843034137020898676988822882219357101004632081563630828707870544238086469488242232834721484055659610630673010180781198646162124222325841580182987062879176319148491333550905514638756268575427496226690270775898784045782538487721903417180180262235612726970316449109160691540435429670906339836530725655408757838617208089635916996118118997899663448439123567694480367278298015845713924285284724247492935156171435851264624543031143604202170179360699309461291785854479865644039928608484682076105702618933935224927271764606747578019399953905355966738425536971927054505528138763439573036477263594655282218022108365649829586634827593914957198892577811343885091432285296902799866706870476574851232090306686773870854767082570723555224471523020014098405251087747396122630642644129297803091786526509201910955531148037061858004053557579245464813935834275317988996866983264088978948724764634085383589709048372855316591326275922735269373621502882999626172109438391106380554880851481831381882757034334301671547838615146855749353906795892604773154239418239641395020025926781172422891994970077483399816453307124520134113420914008864550784742836159161263697855437328969740858756433815266463344593721082059083774320285528532789918342438235078223584337684604291749751545248082333898199714173524038808515312202600688487198374453079981773773549479475586850847411528596516090569570554101356243831792602376624640248548038178496089963680282549493462938590226006244032652154578792361383827947494401477991613161005114613971870940420400491459082567128713133346067968324408281963246267473175289267860446512843961900912050256787619262083059470418251847859191555541649103916093954736780720092313393004605407681337633131485502760123153636603593306181193689477790895261256499841028682091127778774344623477909184323370202971000374576426614217629443646056983094874366996645085839031445722054819567765787710802192570095077793219284808037980456445723641205260258919086366057375951723077316659311252780021855409150958976476210278089336844697726819614098354076242376432532587821375706395759188395378535722197231710446294717144989819567975722150132735242606699082441449246240914763060416426586393402337253593675721894870979815532244779095499916393750667476251552070836356494701145525624248364590974125398990335006428550746456038901418717446813158300432734514494195943234680480488614140137911388691518623900741127735591720785265045959079254832138102243923823821708007976120858709126040858995968347874968458660504787132356117777792076850257681759083592605346501968225523594486132892224636027487486724631469532603829298549669557186966990302938233797225857196601637855539540886845112131590703255694435690565047433206144780501967680206426515823535574285991982989811294841122625878750320734962851746926619080071429644873613971728071304669631002884951396636043694576757369600640128238508719107200294565395761460185759502499956086216116841216872278143167225901237155483886127266560838098735354323448752625378168856896761952969061762244306621293112511838275567227896645906711457335327201708874132149269375980628769377633108560401769892652253972086685101388937800245065570658435214310838223645318605910479485024985270660175607971852645481864096978941796439536596022420280258564060093773207276421579316918401692142583317433945132974434650706933880768968124644808879620683680803586244320856508721586988338923165294773224769573072581919888026192481494894105106687914410416022974153520193870161770924527121320938778788141647120812947776804357580780675783164522692231465708390333137475320720077783201768152144016004455002559589112339584535332753641552922011767963565955506539694498507508807606316022744711174605346885823555911042195773708600512963586608793206349283331450631865805292339225695403023701801397106941981502388068265225077604295314242453646708118936975878210124766480868759782011922331347704017760654311743934975570849571787242068733386959201210488006520078550341075452896095203704750652104587040254888770947753905649566108147735810620875624733443166570327310093734670438401317512041045376792444408194926276006222309295585114728913876792970687534968449016654965537248730365780023823987629655064159185703322094546386421847084627628213652409935927635781972482035601909881465015352891132864316772536524019771075366682234310163465571158699924652391003106338828264682948964685348600209091916838327837322289838214497287565467827023856384391995163434496162953523933559647713475449718288895764856788345216029042260615023803949301517610954183386088599099152896310285953751987580262963157949959303505088711050014124962799771242243223411210948640395613671055733846888640613978910110709502713369787115894685031324265509383482622533765799280217208501703050230457197723038418878146462601735084385764029487467864964938969570277455460788857873696140920667162386611462122606836367199874991427638825384307355558840426882001452683082036203067093217623120558618558729251560519102741783425508259096235277689240194274415674318923416247378319435376819453327964902064735020521374681042787889418657988294614491492507247950863869464909105987054065555536405165275325826461686925995908694262453871265124883085369623497811726031090944747594209713262243338754058825778562116922913676750350125998543232913842052095147035338869176453665184117609039640779245623358572881434789293525900264288028540540403753124505217988430391425869077085864985642343013593613856653671528446757973507790584438221171056521209103183775917436262145478097260897339621335661299040570449910400171938302305679754785639669710213064933585584871841761157943376890159316542022795392372515586717363816566724767586526532277258195840546942181127378179159467088223834690729563582206157648602547488370873824765653882405897753198854268542028806183809264120638304071944267370853090674545454999403663750470927405946099152964943517841487958245683993339429087950592169418729440119186989843421475662469647764938036451277461479200274558090387266431806140460400197521411823007755072401130559387543529714048734826702253247022417085092959849529106742683494989970766113428312718513938131206007972387628317757244591541090270593261047947469635528458487113979450260065260064123703989000645674793564921968603911182651201503562617055953308344483880314470903971312501805337344917136323984883223108707162659103055734931292885477261883402070793302931067347638740839946651614003588917808049241891452016889723361474422697247552014535121317482229739729207904908139181383420750061678206901343344128943091405475695763423745904615213179623704222783318198026677283581036210302658478279059957411775481956210860305011467676207751015971717894832593483913875377086938829668316005856195231316608561074836124542922601128852557494660891244418138133235737129669619967710923140642822407417353690093309252867321143435579620200460183646381793472006592712494186465830533620880213047505777993761454310154348962197253870178796228138720371258234641951266769791133622322250039606527760326249457877428534184213043951383740877295510002671971458593712112833058116081176827415514616888467394993215584463023145051623913893090278936874708642187879018022341641839732097785111904161050704295677542899617948174590212361288031547570793716179306984590649727883874886234614678717794411964516186542124974728822663073007721703094276743946620573487948329888440231517242705936382759921513193358452764761262565305665807921917664712151442268904043258724553992810648668647956611665657953175679399894453564564080647446050739865152356425148984184106087396129016242365075846932137171496354139486049179654549072448415325711995604116658550981285760778407305554789950536616679958531531788034167654174134046371373070943682080686422959122749085225841186578746141130289359834860248762044489732786965144730770615710153223362089176282622821257260679864303625202035025963999021530359801084658975540876493028018613996995657936225033349162727457703926872745470729322059406702929306133324702676610429273394675456880662922394950009852198562671525332910262034122785593430833188284852740938155659417564601351875756561866751636201847542578059938373014598655710426837892133712463161480602574467295332706569425457447513252640261658705594364263650648136872737296954355072662373676912149736134497542069968972972161263561380784385753208115872750810295335363498213319089895891454411279006713617966505416085551800624499283203070943453571250592780922030504951287499794712605709360780545671895270549551223556928499201539274557174945600977118230073398029205891638098182083216221248605670198608020885493455512561266842831798735546717518353780697078588523980340774993693742172724198752133638333950091250829577342228684181019762375617554969352521342213012883887236113897199555819061899329086370941728467562731390346641831845924008262877523945183339291294172622421129665866009274009337047427563164241656277343817117443225466374477169994534808168532278203964734835398759558109366241735575570932457465982847664442528330158325479715457426236816664429099477331980083148436879399177229909916113092437797171588523891817671464960902560768913158879240654507826588936618253858055675227484449825415456326158395314014868961470871478238678000889981417307786884797694821816772548455149257892591058240367954928750484600358858740852306383318447238194592009942521156353274398583677449731794128192502339258341144684279031542500297689061896916789994088896793931355051634556626007096425169056905627151897816540678912635713937556522860421528243579521875640106891957136599531544933545109055563513485990813706823428065504829296766193095504783904277533962844781139511066171183444321792927763114449499816260481889984667398176161721101919969108923672002338174864358037298349409449460267246094385738052827602501068525464278068843015414153871770231263875011705158720950786972933803473966660992564503904744952475034830017967343305405084307044626288879469061082982864689991459578525150673884025520174917787548402281951592223232685871338608484785503666568837523015992366423604672604186641533016713326162001469992559257985655404245036957484377632466830341972974773207467050403840265457795097230679905948355630015658626004569656396188632375348125714923468964864967219227949618500846114204479795450986744823596024375240266011369280723652509644726755478845960039252661758265528604586749378565395638823316447887365873300343106605293241158407767017004852845430318791807970589938067602339930744645603364754163391434300906605983120354463442847311449680434192354530502539295498275476350800607749303010060076883074961182910750828542257321547699438259645167998331592170522677249698700155046396153093021655990607634728512356259339369923563859315049840922874975168441313015392313548473449428522291810493748899484192161083259721419929157722128915072053867774187134680147146930483190387261378774977679268335901519142186585677747265387037226684828949016017139584966443743595963552677475754745506244192155612556251819531712461640254409897110210229699177521223184289231825374456469940522643512094440293032281854724718986589063747072261248994040693377085908848341602007379807653703652345501794775258384460688677889400965122689812950673046867774448125192015086490617846516341356109812181832998238907257334917687542224987840463320664925979790955015610947536066845190872155240240861848770302159421911566754437865952369009262973102173178100275433234095928528165480227474093239211759232708300054791683193958476707807753827422674029088021683708899931150095189175070099815130726640353744581699107483953033733383297071541540333761406755711877312938743651436872658223094548952409602509035833331768331738519792054323629980908383039363969189269773442637244733415932716621425181726687070092030886595785233868209774082260490555373380361510393868198823607206415826389008529436353931515940104309484961752241976236110601856698439830918024939867710901153150321232109645722987262916319437635260172676987133892206599646448144021081543300310677563979437619450058460657051167143925077779337804205087657089009957064804022676869924209746755205787987369084684119311623344486350196172646994689587273911807810879782521437969875305265133881349955011027900005707438020352360177645663364021533679664439346826049600015657990470915367508759481443160609876357489200550640452392171713198746054000764331743381168233329036715064778242368632337831037604864392927270259649915535536681075390520344836153038446199111542850720764364345085167160907524108880433575563602838796797941270604979990244582134090950470469951248114216687407791134423442382604570448447099864004940005144616665170131588884516430415107779726212093734325001240999203259772205920354310414681922863706537761371979245291698044762649705529065388308764338757043790873263635561031666916102522340708744461586514408360227810346997060031400785636101489205019053639501666153924539478781512986089028704201328184458382300233937255558336380843625780095497168817702248975271145050776328503066435966853916687149711552544450756440820223358135013218583610693555530583367755088309163447638285293623470536296542062572490192897831156204199326341086135655854287479884938569360616501784120172758979082067640131008321109803338299872966069086497672789809931808914520893774637408030861615340776261284268818981297979567171115609961069331557612854280562185323114299373351525703562541870387087364431481816503355119672542767954572012997811488163782966339096928276608107251762823205771222791542143348914214410880625927284996723545347447797843127433080655847969356480449655600326284283783217256937673599371197385275452532497340946225976985733888046412341794260538157915249594021647973477144425595570906622061941040819009858633591986885179323643119324829901219206494243804640177217377595571756918121404057457404628351525680933498543634911733442925559858045478878640283700242378711952510024300337542084626841860876981958942818163228884224453054414472237952755956404464798292690766279225138893975012776714580112765312826534462047654116786151557186855805892745851709912923892164819189569936518484882984041441308984222887213061545766574852927558051411647558347383985943742719693788324086885653059701174139774483009197233938191256823847075817362395039409582145189146608572854509487609024621555739804195762653799925649356293678950811928169410188900194778825787532666114675287682993714986854420785493630054191169553293522922031979848159891840557508891178610119717225984391759743596779909674226080601898818496887630406757261670549816421697616474966764090436039154441160964572809961107531475286572805533248372396469522055278634426722373611277767389040601190442906044455757067989292332908018613712866711310695454865954762469704123213801297233568817074099310507952241880809962755757985663894397978726637297879105653598279932239985381190777975508763508371668177811855721043656319834591861319759858718750602128947588712966578740132559897511982647597212589537655658976500782691729477389716354858534123978594113535608904732446070063443001621527695389191760887589617714014691190256739987849990921852071318904738789271177714331033478959396643961745853504979582171420253092481556987308320589716577433031923618282412120808094058826332827738566034423905408692448372114741081869274551615293983030326245843744945419895423751669468096889126417259631920953697579966406596047460346856551611145397828562875817775148290178264229933119133921456369115342377808271911095191737124035987487598756953299536219894139962618620393585288286095687736579081185813549242950565864776547007645016209864535493341013005527327212810198566214245771172413990418213795458472748650189125485737575691716385822577649609429746193203255619483214855825803883950559718974704718359893210671961071807682354324241453133428812503686020017791272239466891354041937981089406331166875423897558528371926316270944681124365415702469617684139580769854002440277524056974504482881355963097531049710442719339278669286792608281989229451419159281218913919898986206220979890928588766394400049923594443067606813807692186884271229975367963509410622554060283588487382838826664671404038417451161246519240011443283527996047137287169908875890636498273373362753315548747490038056825948468872481154687432559554325531537646553119284196236014800106675049352868544492268009549116083564696693550014932128332354841969950259765100708130742181864632840536239760090382670161527303967402356518835234939428154045272516092147035663023205564281818964053387975332656365979566117532005108137534768060074901349311344331836824925326619878610562430296875926292005085531122576182256607141691094804512157867947633704757552707868939995871954199845850101534435448216003507478960831189523893287419400375390060272472392240263962418109249680543708612940764032174569314944323571045495106776254943080119907165459585962642791130268448854772251414435458101552452179238381832468041884410503020155569420348989146727202773621125231471123336447698280890116200228465186016204845121628121317810816918747619634419477917162755700250331899904440060369671746816245290947576823557760012380571171392754280636651127828920107708400478241512853361815431246296270125981899250515664220325156669238450022092588887996179235400534278091084091349807722317377708085610186759457185777927353380686900657346987128451713773856601126559125629522402002161486000250329055048776365127555809762196552532813174420101056523425865351021759251635810007903352075968251413829338248802805038399005637552679985486157833758325071134617739202621622099044761064954069570972213289977488806607068865265255993748345953959428706285669955129874564241548265071758431506341002282737257580504242390734864963637848265905698497337415703888007192025642284849665723117212099058624727755187054141240022458160745427773731511789016411331309736880005195371055440866966143352454174751130581257876095195646518662301079026196051380212851466600924328553800888161495805937861045262670832345101389577003597143915909449162887975358517550794236094365775979612589206632200980533348601380004030629694349915117029787355596385719558743402735257338269218788827035637888375114647346106978261550870192530730751769632690234195664059191404638333105488237961939542347750764515187068246996243420648103286885216384084373259076566159351720660950721506892063517440273035754729807253647681572743416817868872794942788744125898301461062094271156114509572831579765832671956713264037568273912828939730890905605159040099075951115943189121258488140569767899804006295505134778513791536573336163536454130253848074461037055363826990339454877440079200240264605712076325550163025300119014354947732907111369217825730617326927914941000824212293008900636387061162991794380610799804667644347099212057015867911022655007637964243049072401058072471138117026412393797882844398046992091360907791231474396401638735607900073877932515355148303503359291934260157691349842706373523849857713202013107079773318109492373744296327998650173583073448860187194769205013772967263627876182354679897152161580500321031317253909604294748636380980987620187870415996933298765269822871440669828031694566804083625720805632242322074255170923057378766351343800468305835457411211557558778694705799314991975280190754737753707493249923094091724005441956918423787907996477454068803525938154898493531807811731551071065031045351574886588465882253116568228082614120952448030399759282405408334720033437784511248127923856226798392249386785403734526220819068618683828188646173192391806243778266487914100042066774164955211886794337167016530790078011236485059353536198504204621470996196226418282182670764661022157022410987987145742408432782848845858395292390268805722642383151588364178536004813431369902424307531526206636026910229560678804814231487093963128033395650890889709950808424439580173276466731898191389838523983318468707568335921456560862169151167376900961341071015233258800102075286042386364251649983431216044070751783059771611519370381487962492767150678715359676508820766635692042595860996214978181307258722493733999926649625366896226563922978633162626948649892114816094682130196959199226399351129999129268918190878227659756285643170655416106965654095803000062801617810846462626377450229246711238579710688836317835208929151942163377750540281296507185940979641700494673984160153323928863282281085752098006332132391244646920871299733197351450421292626824119425817822897659784596659202140277018687294857259091027617910778533564947919324147308174457301775947735278723461995010457547567464829731777808389122900415275842821985909864044441553759902852028152139767410575369513127204498058568011750399367099927936402894864786656237484507937500297643018936489683758936303575423409951021158246420673471455485777622704881428157459654471763675375395576934193384016305513187876364343577552126630063437310836756948554147646954935318793203531946578921457935608512892179190438951877460160760548940344621234451525699492419495562437259292742568598246349462966983898240988676600310270510121742096565263043976248567379450421576726499186012961904646196058436802389112319922934648535077982869821132657923201956497884997768619232315025061702042691742725528390780134832928021271076509725429647310133523103396186629587342600152410452919293731071217370345078684029942431351407527429920159344857282022049486939280076767250612210062466522316427906935446463438305069642046884161546816095991768691259159067154956997901462303905808127953784775715179693610087409311672890798178921706257909390782540820984273021065875038568081737997344686454404785533977548799350294944665080261753528299398470530172659675330125541719261806752145429293305920516737886400592688544523257551244870840642724281373351486062431498214680515116139968863715860331178888797962819490451198640846364534460890717109127707824981386531809143122286066927649846370929657791502782328497245100482971424012684556362409296271255397991812560563254254929666052448210612299229727557090702407152604975248700852824099692871050733903722715565508699678383332002711795892753178807562173192155690691938482056726018389018925428428733313439551176671782591792351381557736826352893972012782741195408819928457436605913023123738892407223650572213977166089130274757313391824977954426875382566960575725785721119513339383314297345439320472502602967592631153600836577232856981212460480656487552247847079924787579159458391118556681298650992545755899102112325263200647954932631931393689114582595105842173658229629165124797127972456243187526840070266725225412848378441077463978461571632637613430734983543161584832673706756153222212957111596056691457798645594655209139952386379248724509001868713609736783788737764784725277860893989341035349138906847724293249477137200391870352902793040734487737663647342153269429057901158421056893155867820179219141878519273888436001792217798471045478344440808283590785137196747749931599697310307497541455923713725029794504895942871352767996971117998723574989004325623958432555986442594277815327262637807561020761710555662916182549438002645004344359151753705138776821878602879616511911930714542128726439513657747803786540524272393253410776684653577219582230199243301910834123044957747725891870473018334126803199080784764957205752935040223350326940667360926886922544037911489472666336303242060311216973002906419238456829866129180090218409428602606314624229158578789362072299837232616862889839262750918309840190764670985454212464750697335651632078004161890515168779570186024688103566157886460740124566382089797879217363846991119538535697966302779963624314174157888240280609681004161484161955530130979035127268298761396191401039594293604170228955875070342298616501651378906657846727140102173566699472773337688900125941349808179994519762925235878758673758153636454392931433495827441341021371375560911068724853475136491904972830756121026947873316891118072536855531536135360261634339274913849362515907848869858766648151000785217839316686334123532245864189401133448200966210060262784255266766089841234017548589955412247479567756248182265984176550224162119407166741703211598454699915031147669162933877618613973472294591502893646215272631022481269538845376671336985460221670626229439633212004815964707391642949150784738724944405461178165386211658094870734648270314452480745324728104790805199967355647151075635746620176860018362931645637778000307557285900568846478263405978802895538934595787270812050892162252334674603049292775403107410881069608481046640217635638035327134506876252505033575393308696798327099962759156245868044723062444299926118147815135202860591443253780004050087830552892199883332339936544962871345108665745797260607742279223500356886968326053367537040502184032750891488673404294634781756223899727285531362086243933954036604793744343966713421189410219020822431780756128490693115728183091490631648942081451092037557425224866743594809088844460874374606626053647903475157999114298731483951793860048071240912639959567662137020027221772502077715214209786099459757601353098319457823069784254595627808152046863745950755751086240992204249282866982480374836781114049627515313863864380780496290348758449196887452469286862248301182410542033555526654102640134960404703785180269597841149573623183285769056648855591888488709079557799562378759164271064467117249915270076769073247142794509587189385200749515538174478193979560648473152224391991646311590116045589883990821619277497749367598957875550525997144052077525076173783650297332886522770598543225275195990504533371760335550439915421406922356778226565190102084687868908936847685195328940112693111608244200264651285752928241777630562843852798085628993733077693434131056922702007472398854372689911823056952542627672741082297984908965203352015935385170017442202167737434112322136126823976609361978167035005108746272836509834476392736929555581704712789374187670540384927878063254426953623230822891766068922171602145108463967292242134478352670673855659992420015050379112243716568286410473646575140762917164239810749376827179573553075350791902736237482347906251504872180606297489574828041783185533268239072840721790951517426868198642550787428144115333664569950516807490569533003372517620700212880094116389783023574351260184126026634102243360750558639806770727924439352825110822571206339087397812213313582873356842555592167864426528688175772907493153102892824301752817166774359301907308312967457468151875912282626108355249327658369017436573047906297125888165426872061263185279480742516319873948937310118653911542589913204528646528461847900063351549785646661105104476820382155172089311154146038798693370180872480237764044579927186719680163849077260179512153366118496608742520453560812041309018590728359847823754410072836715489063187886240415988813320059250581568362264043368158103531128374599123061161073850280491533076752308751161177149133716525124870627855696406423151116968258879689602506155158276975311722346741331853761204986569677476307270042686170066704586387757514459681573195726716195528025166453681537969716531475087049276740807601447505041317271280133476910908589166098396701166725101064851634919953144582207324373913520025504456525576136988923876373522458552375036667031681854879541035547870922769882620689922307511106992482886085116844111044883002663464159088463555620595009261433150654207572016432822940361687325416021661069828024405031001617330993072205359005111755507998016976143640329239746593555795166432934414518151227313981543063867998892592086352520442686157929491768567164947696863680658562453548253341915596984025586468984745459487639113734431672504769386217088455324732512714319569773671973451717949276572390797028744913019079262889671184485873183648145025116523125326718347875685055693338950666548966904621634521421888335447764044484606155876141839821264383765384880639021509905981732742026765325617940569926488124950225003937285827628331493873955410554472374287863073952912685270774414835774864618852255318093361649538592075154665537534447318509101452517397501521198699496192068185700458563601241427689956405700990242793608553852761999147374257818452381171842026051097979018389742916906494640040665999732510409000682421170151309183820314462867531385408534272853249662814169685923906369715407165623107679976756397128490607835521211223059306821242051930982161515912104462714100689484148098921784838531648209132273183462142937159153106403207017696704795847721450124946057514712328501025839569083044827151383498121172317825412080018767931975604984731243456715263543742456884003917454223124973688350878985110324670089166777929248228857328885623593387170847230338474897782952043377674339229880331708521968275032391616695221812034613453799468750778517361395450644789551408166464654494987601596314752615993726681115012642454216785060485297903170634228243292907563652906693220858583543142958572430055432156451862145984982707042655630339191037536291099312943786146787528150359843599147922523688381950943629068727381922260492692588187940821128906848735251164906126050266505534227473335421649053657557522491777684180080022793918377354921715248472180935687637363364452074094441353789528206353021493452010588364687315165025651185329753663940659120144267489580448940849124752788128847167339198566474901178864860350827170812021771882525165265712264244797213194086333474085819739919357263762539131677000611986581298952479360668846858030698100539118625754494671675402779084443010546765736411306849297046457066482909868043631257525615336569058391598654205224491997880225144712157022657187697027207061404982789286567526725025515360817810533602749707368235202717637159829805029454744335546679697643139720736865432836881194661297116713837352213500625721873807626833917214128339087774250220871938352771736994858467001199294251873767440675403909370617117488032821562156840575241928804698972804266321780610077803809575244473213340454131722687062337337493114058959028943270978755654189361840891430082867382342780406005883808826908570177397015326998819147049331646708968961976931033595494724733144270112730932651882074754245780674092263085566761517361577418878619460873368871859031855749501724702884518366126086555761296687861230398463544684642911135235521473323392138259128748579013830833586422522022132297838325026383508029960206862797325564659613863597872703293238588958904236458316310242613565966135587534998516842950972039912868783585024557664501143269962294099784578393748981955525724837498810893069147055048232860186616030938158416360302544262156948235213596508562808453284997942971369067525054535517259626209632913955316216060277637443247227478093677996316282070455225560742864520342803248910905771604001317896871011533171829544367292031615728741918464533972517315998568230083721422760836134464979613152343625829025918001731103224731540434986395317788251929935039851595140877723014704084251439005231502438822662768699779468934644063863365279795252052680155468244998878328365359890800734512437754391535730846820039970803697912091577109139731664954908300090141534660455705163859231019700987666350826276931002258167100945742788879133661977665678535626627926668065236318240165843858155662020201155468618255368387195319390465057419914074866232010931311583195905617605479294406191446217213188162264557340635850503799779794571917420336876862544719931106533494175408655832163334716043872499562446258002996621609343888156471583460872290122276629750904914926092608200046114999773091390088738714487364331606111495604424454193251074795080825864804607077306922815656832789421251230770689912718337402726640012156495405155201990714121511086249735236451280557795487653322553761628791807742868150546629623425667317211931569054141614420394691750040320696384312712177069163701338413344994387340142160861691001875889442521805439021842967388065890061515466039971104192774026977437849245898194672707833116105728577328005301293568964123314507033179818826037896362005938476740800227545944387295393123836458587518861837993301214282067815307399399583431255258881421781723558588421029547082698497628413660054069942334371593306417261933671542665197542813731868787086909122647169963537710014614304781958235770863825873081785382533494498383902491662133573692264259493584960150926351494866352939961638765663086965876725484319580341557046546548544112339568884986939030006716488407563334051534987583834662691452166688834395317709349670965353683057597517548654374700455487459205465884961276702856173519684718886248080984630751640321403963939360861239646673676896559257584863741995620636873602068251795116103956899993109041740579935236008527132512836203334553707380545599060255674312615121696989471498935213996492033633223614042291632611768755660526792679115246070751914407146276849619878185240029189766884900308295429563638292738922280536661973959933409464133810832566766488496203207376220687608611557256313258599431134885507388868677787774916412371824054519627865309769621505743227246785439025705535000671813767920369472892256447025718660229265783554743664783200173285124315690143861039731767883673505458240461577684624960501048341807608159091256596975829634642505271595339401131378998690758309351345868467393111519577633862291176236080008364423098514566120189469189782572257417451709101073925830924260585742418982688267977366927629124895140690896002737141951444892504633461869681546473563631210834931861451055813326305339902412225628372240672889372483928742367447010979688563346718009401909112127455747268753867068896736730763874918648396248389151615744012374273540306820990910941402286667286873300245732764615833044233717761788597613302182030328091014198080865424024630251368510843743799179724885578044628264210738336026822779740190213278651359291454105150539341751754473045518649796384433645859658176976678297035809263613897535443753352616391752992654659300645643646963850895702473322202715558393658328169450753831276166174338205505899483943511787415968336733382163690314969388428697387495688469716866068631642017245715124409361168952307926729906288876626903039579929767498392770306562331671976394659397160473934846197009350108944640270649916145824920725610955154821204432264764796866392900207157064416379376632904542433675236831774354669270149509803923579391566982244683569570110673775249798969391316299175023228520895586468756246831413785726489904357241271047700430673860102705061491077058779941770895914061775046055392060366171640656368145522353732466715660306853591940549950819835064259735668491963936160897312878885544170883763919215226360889893097559795934713798999159736760856723842863503811288326499815528469589823607593929850888702087772241743888421126551041567639235657958455060357057690967307665156359115263122583118453424188447969944520203674408922436457860371671129434781310945789198974469773992441785079157860004650122045366531993228553514224399330221106785743024493603577626210254307087201031272416812458704397647400103398659753147502389236548874699312364088541384199586479442427231495834181572988090957009072164618796248373665272665966646128006981477673304446928142711063418790611755012389151732630593630766377142534691747457448598902853773535534096925185701482319094051547468533402501331889984401189465386456286030776632119610036566197975717376377058456052621323769233796270408196790295517073081943430961568618693096313298461905841757654017753465060059033542223065732436980483249071391490748965123110226305788726709322437269479775905927255400551511354698406422826418064667963365758001684027216078489376104986692986319049303269507350595243881171628579762801492364211739538376791918867902965670330041105799338787701919136216782919605162772571848104669257216372678897922222912222774597936085067348517358391286449573112143443549127929844989880858574440177766079947111241632526235522669067971472720715823247172861162681737714416119094005043018547339206439106777685049166773083918845871332354185469110557897687529857614457141028130971896046897877387318677836475639304423881192012977649311995986217718170913698181002903622109032984747667114563694494858208013875334490808081818198798283385372467073161806478953501063133974068540056448573303377265170058379469902546992160255200044289631427924355493842677197618087065164523395688169183180109769969843569316221079212436273064994707413932588939005252486577086089784152243313395833548728812000921500547459148651080415509836373328754285457848213619769562675512471436217398733172077551806678912546435940757690712663331785427843423195429870148945925471020748692926402593673675645104887150216222098631566474612017140919823007977820861689265755640985290025489270218782707824768727706929548311674471980205122868426947500911220507590760989061471714955403100745721568105007182796850514268621440920267458992716572540972231459388273846137710026927714512529676731421223964009920423654316202529459323365398525773397851800763303792354435513636000863795417818309182274676266715545717667128543199030458923125423339025384219283133812391214838236393283215681672471591384047778066991800770495476134303279259183799487751002268870180911830494056662078415704149557351767786739469128715204598710545402044028537150606912583886836100182128330142360381614949528095203646551695680556539743497087966256948690250895570481656560591433176551704262196751861162885093516984229379196410856223765709107671763120777674237178527937305677752157990496569233608078396111182171670838482075739373073369723272976198466286955542501209058012932109228901333389766870543835334023998961306905155109778875507004272618110612862283334108322724507922059431532965314555351164048091802819507656823693987624847702363343307515888560760770057917059442646280205622859972995223431006592298485311752572937303674538884822651292389267627682056138014695262916099902447441192404062957437702993805013925687464538167201640950535100368804406270223829891449555392119400597739765178960711872016984077380888988484739648228536621449208545740561588787554179327104471151134861907445277829125382785383656244145169797930241806912023365279311757334995173145970168055536078412989463778871482756577811427496872917615134129759494595512616485071987729080715095480301141764423079479522463019120038013507143350783407275109128899096178285274526243449377284794068671147948666338439925220463384432031875127097917058525293863042646304099473730786125157583637233707775555131115039246550460774316187028683655390605552616734128477636786118389081590994338955097879047834397682454348750346038980029229799413499294485572893746648825128664123550018239433447799802207297727689999176016304142814277710316345336259897811215635380985839361573123282524961958103624244240899644157171030994954866197341795170060591649783942931700433919471230385012002268067967810849336005517976480329547815771764186092423207626581853251041749077072383563234094180183685374872560763211283592942198723221091691904720537048362383189344776206714222148767197584992055076171935182977004448385679600575076292375219660064347231453311404700685872970151692052187661784674190238375167241673752275174561310829687164536278573184749160882629636734833936142236218431329632231659853229398997453041590814383115364391553496329419804878488908937123215170323463746728471239610258652149787672162573475138409175813678703010087840130716468727187892407587207621853209364929152479169366915835024432613243344406733289091771617329935620839113081067159464130676699190382514802095526498774320686490624484512380518399580671720769604765816488042987306726083101857018052873528206501766583662676057624024501740524979851361671540662915557153539919422929943352594021682769565509520191081373390774336028996163104644669167660734416021718532617744710116178006602811588825990007878537129407647462624639732099718375069849051245015932386147184458767874675018661285713039434786241844367830745284104751109730416073808919517402608521877853095369402675188830825926232051264505805763616763106267133991504076137740926747476332706667614082334923615168203055706149835889744903805249116653191514811017062069236883852068674812380778224565909241763211830013212488732755976995275120487388543067985975668619397426660676823981918563511083275760453048490959460524378587124263148290108633082950149851580429417637125238683145809386130719760910430441838783371929085858356654687889461890570236587309354768789782479725527773270102910534876621442995293018271019725592784165506612430958381204658794037335122167970149312550014685999760498855634005325361345231884151779263115240975080510475898610914983374532954121047735807440282884491005405328610066675940141227967321692110600929521106857419015686314306958182195016718449301411852361967323857659750908728624607986872392851263667824784658244497113629503455510570060100829509317974179589229316205956208045510391674208242455516922452265249111376799105049152306127789379515959909816152595893085256971979969469968686099189002199429007064036670653246090035615358861173916237505359009263205359929471147045440460590457114393999073175686510783696282068832004122166958188918284593577008589341816657434988736108890436747169081743387799503313461141644453608459042438234441073564912154389698758318828209343073443784096784393004287767624712024654274958774978222217331886748773555900721455139035744307240189843088162912200566263784542983473623126678971715749920015448241987072782025014589487581582222825879162403900038472372821381061808634235982014935017428568942623610462223285057299740261703476482571057749655450556742673486443706058062621199121267609521803695836930829648407845373721812689527634351579741586255308749666961198135895899968308314473882677100249134975237893113842444102043610419669688184398714442081503857866715356811324372162314670417637577108331388880119224927048709614694486223522577910195222018225292659663096077066824181790099045393605935864119203740561698568172258666830568990817634723443259397432206760545058298760681642421613292205435612171804961663137747962293075439800679674501084680160146101667150366790682820013458098495891440453572959210534113927612438664531033494856841473033378487860002081958535425769720053160954999161821387463304154531940224899475916145096784040038885035177866434896287475856777816297960323589639077390830132806843322989244453136163893227841586021163930337087571698892771408810049740297965016208302391747895426675263237005991684850564011633047139087315602827564496089587872174140594519166515910104903608132608293883166511858527179994330156239610607057747333264800211076374943787393115840815376707163181240173278964619715104666907549935261206855455553827284185580378357409959752382585651908365615697910690666618360303836973985739634295431778740819849169133112918385565442628002613049551211996841990841807608337529087256833679000100154608523861241114441023720242389524976299091723811042853513267755488677599952616940515394262013517085399962833751654234535677026136220251423646962816424732607560457491931567478316887891151737355647676979360178119334258004702137927881305113413178298422391266935791412845191396356232567425804135745512575260447457037175024759656149773883014227518682716193285670463632755989762832101883851485746797965658378328819823987442314555089025165396710206826197119358550021020096902160369356028097824739624329728148961995274157206096892090424315213807327510267366896025934710139079501470137744546993778446462048917975038248960343543375109189085299412227549197501193265993488321337254177308205238180041019031580743630729585746552987406834995733013708883437608818304105580257054369530904412925287227284230189683423214833635154753470327610221381252658061044068175910990657908989029437979477578102220783411415860418744767590143890690868385495226349371861732136403521038962524815965582759185230156361088575233581819469136453688369025776938498366860546724811649689788015971134151082321988970509561400800844082804356682608698911180767755014242556921285264738092613735715955143853760886588238616704813914431279621760427065071661168483708879525583188740991534348900555534812710457236073282868335492537219651007803908323661004228534863115899894238021862815883302618114766470289236195923281945062994277379959390248955208863939739095129111040909731729021490603200032281901177828154862959044530063577240942883586369545651077112239321922199658758516595892416366529185986227614113078809679599186276669701990800789653970386885007866668536449963805264178898798334207787962915645919158955440710312013098474458272033156914437534140192394826502630532101620665289725298587310876586120914312169091689214309636891267872724238310422216182600415777029081395899141786198869395331316875626090597597014425732769624467540572298395514136557710334403864237742956167126732946709077023089835030029860477207985026089582576890517460250327102077455390034390558196988519743640551868397490307493977839980893805914050403785051360338674378527997827715676068594694172121955163188230133128536879257388067835614367325921759726298611702800063779412567837324974351486754738202630036868693666544900852991320329095474306549686856774258597781992717965278017836462024148258239282802428814047143398103388838010876726815190438504315327369235773751768398250864191461740154491962018161895845450559617717709176274568999623371348692357623671174676087913528880292968180512531815534878967341185110947028407076007110231270447712927253739406691604626515349951298959962611735317444851660291719785328110990555422721953390409347976358158481235248124587323185305181629957108548897308608601053858537159007827079876145160293461639550853150273042087485698329644322003075997427345442117434942016055793483716160629375760948114584815484157563827504909713458124532018451374331724738390348961532039300768645566227929334869240644224686733248334347688994818663530939298425478392231354571620956120645252596700316630289476469317723653895797836430666122686444899067208774217521342984284874800501932293077018119726069063646128482255052446364151914564511668946698727564857216063259023936519036467863630508281690013828835629195216700727525830284497047767880876822176530285504915186678460214908244603760768148296556343963990241879066022285862819225565258464942443518911444803659502655467954293650767056043031365051804168640030293490593781920465038166514699981780308019165529030543158013715345470085398873382009021326204758408508509973611863145240818729344046962950416109392193227766263110534982528256939713194336992605891439208878039013950193140552813818090573760369882606929289222964485117485496681447444792325433172430391065260160831821179303034641715900142882636112208427186634042872404530569261399210791987103928734853063241295192296591600410228968637187700558993173130939102700833914395469247996884499888047034518452823247444822953099776853347064197004336271474141863764664465810809194264745568281529078265661396651803181888879785611251871977855466134898660293485122966256425462627763793881917718451152376669363948043693774910130230656307436584100542350171309514445212970902969828822037090134698077392736520573596717650241915433403807690542362526146613765837411681979975545244209815860247041686439147082318605447415071835212509791566789467295371207879638260840368224180319941663013574085899951686463779642847146575932008621886838132600600298856906210221811909043044352220938359446517195814799916847583558674787542058662156463737757023585345589357831481289311064284433577135040556645248963064776087797504086280171053070424757093165880588085086375358850054567603032421394083148078242949582177046995513153679016002232013406372012728411476769149708022050613101306577362060865503775665999109287680273812017376709923350859295005783032680753585005675356298119604599385436003035511810789439938755191021640091378871203004878304076740728245035123475590182998109659506540114717627688798547704943299798940345582433842770483713068012393367095094068038177098952819495285456495295517701813191378919644713446208945870731061471570556781965168789681028627712795950013674228390267090563240370269315126822866792710654376740909467819988394627123317866642991667734502246059169206718447831627861559314082310349031001329678357632361450419808262793833591348461661630116178189860077680155884584803973171953301683317564922594176441822160329880861653681512549473442911439617556149069798964354862594756284143826561475205885996584277965878702212984765230440416784689049377869565997361303440744034190662651430682040470451064172620705156681082885819015116587095274014957316792128062859153041880255940026425049426792372860880135271856273266945264827114804675002880577026367785053076860452962820549496769725249803119535452368261851289090002068808857844717491722101796548706780263916273959680141304364430633271153091827885681157314461027996679478108689987694185006604942995754224827739907415030033257473943126015549669697141522301432581388090638598632963982504122812211108472132730120232106899832473669799818578048417479960504668471177954275721216768096682998272732455293036244082383351131605977953709860741304096171510254284360860532948959310843847359128718397122027146163662320216328620287187796228752877520720868286036524680222477178138507717694219606969514040334626107457352200116200745779023760180511179455827048287284266656345795415033450356382123273877287026999679108611343987608006473928676871197526563542208568305113642207291907467642951724984305941691470797839749076984185741744943098679275784265835192581542363012130281387969730335457306696966585864413080626243756084076196744168251658803477337322723523515059980817249553855082519317252525180210004712975093603011394611844632170252434243676255028750914869535324057208789792780377422293599276973982422092025675695656202269933019630251252879431451578772627395683942953986855681164855511397408863060548782542224579010692398946827062960149940725646113550659861875930222738250622215591272592123682268865867090368158460862737396938242801286748016393422911302508029922513171020202039338381515917966986512598370937858776953889915248471210271387086919505470432045664286150847415559132614251321854014365843337002810198276123713566773407395327818811659402007917114205579573480621265131190391594896154240086332294160807106533389808246335488567322035816680404023028625138047882266207394737142029873016394531169415215114896592913886755146972662009750489535454511579707816752303525306081070705318097189138313498023845779029569951182523180742390673997757726453687156777943156837770344227542381967970804822646438607711119875109089893365545225820554656302693340703459893118628724850376564078328717162984981158020089903617986047859680838101329482314987002932423553923605227949506516920524678056470543321542822860403214895753800393302145777910383685681744829204648258480333066798748840322647027453129960347543971439998164044358584897534850837220556488789152520198577495631901504304334637961523577754111803773505486141517761739114692828595994474303148587639114238512406104513525923246984473041515412847003160777085007531546011666579824401975837743186102147362737534801638586972778886871425192813727639943267994846241368120698141349280591411212828786800621529396038849176025777381786533402613237729400674634323335615982888901453499813386441613280014039320708772942859696655373496633917436038340337393606629543908941924661939790503193904542267960447228842882265337947836065630890492915736848299576213108170679464626479198770644960809998970765056512976029009314842354326542844471473233668661321561186258941141763841772250186795564908355433131285916499964944238480092498801614328171016280266290161656883925221250683762202520883602178747779916023207411980797430923195498054877575712396757209333779300210213072395961749129489540043080581611716026151561239126294756345141038038639809517263766789201787823879892116031684805291289237449764488524971881603787365167448371272989197738390557414593221783456121309112703353742990959058228441911345829578556355883873504075850128469599122556826222189061721420055007616358349385153210439641630334528626798665959783108478492076633477451355883091487262229670717018760892747439407166320249504589227010067257580103181910362119727782832411518499034831855989209633890526330871196567901296478838514098224249168011476392480688920626532929732607836894939399196953550326147832261237001111680817598013384389096507959956960456330701672918088731543900777151873067584596144823136640975461235170847495803036723324433607818998939303808173732795712958665498364914839279290001549620437417599594176713485576845782660126285234582158267556888503978452390805433274302240494066624085962364757860280553905711782304624373167708937636554574156092098165555361372002474972563922809698383941377155554018635814580570349963849791302760744908739342760952383486955291384418542969422088804393109860916481281401772553213330207533479241623172141368291323566563798351005746133024175852144177309416820945556424751462258445366258509275865212666806519002973640559615361359166505182462329446160344938153361769181711386974596592270249075020149015155508749209733915882347011800748418526748332696893951391803513731321482211073305144874852568406819986165069032732301202184490111117340952901852538668263859158833880413203543610638478728920072610463617894990740285930167089282915237782806909749881945083971998624395050839319860465593830491831190843552487514590743431843790455536556852461169699651678233140960845437021575293540923205161468915481799881180437744060025074929085190843698094499823373617630944481150967713809273331235657817348864658258399373844288224687119417932876312841541970602279884365945155961086994473483640376906195527496685101291722753532946164048405133453018347882912994195866108359428219798614860167462783641270295599955864501220551241592699193476095093188310086366449631120268867010365744418269022253481698017508139427627502632768792192494982495681272341526062609971331698792481521091905191950606517689434503502761125994539004340569910967708768512119163243806432353507852414803423658702353828669834187240362925427057214511069080525845803326026564435532887929371252527016762577101853343374446941007369823417327803904009863572193011844540303297170336737882417819394876910174184272267759487946164984418653637914834493896106550919854113901064380760024826806424564791169675454744220478088135949056439395361901095684617741474069801714728597469820975713599236701610646102101238298510765684377620384267568348462038900875976240066292594127362320280439289908222838457288516703394174915667732654215550697835961914562937949887088341836147831466974548071428072623879003032437269168405467109542629848680981543732706780842571313977367646304856946783753566265645294572550052002751502220333229516271449373743853300476952630034859493781679795115244974939450957559523819106515221309642420071817516499396967586759704835877333712873613348035194073476958768014627448458873158940761432482459774288414779459976835226489820378687709865414165615215674992805987078105512413234156061543103037015119808663854800495294842239459932340233025052196774325646567531267988791356855604562089713021856758941909547548904540758550584421947556415449829659745984960245166322871254218205668776574418885984271963422986969162927198251091315389295511646298762000455578139573905079414483917323691793597990925606078481769230837652374592863750432526741466168866470318273504946005625265953091431545035448139126998258316914937766579036365989789634871170835772766936679235565805311035738859079523903095200224039027823076632904060000182107274098176585783681279222800719985654341018445936486716249205848539758061000075986378855856697645530306207822184897521165372853780698922104703700006870371541303592030992740033162220281529222202261902584268363195891197145483597311447410656212005143299527350895436742148554448148726064523706682358638575034128531447087730538094317640070637101411859433636237580993877564860487194782978028980941249704702534860765821035820271710973556549147725050637948600263184577646533482970061225064041098974741829602190872793581630544391763106338545603956759141114308633823050905473333229240188114822759577031445937350567296710691208555410610998853296836863540046955553007880666634745553408346263724881227165229006212119143773130235177755994094794213010316608865473774256171013594276404093174679788505172909048243082196471518508495683871089066899757991819836965903576730976173039880419697272488424964457594206877067319911655818178739876690619141893166220782504023466550957537083476805954344983890828198406920812613999825559037445312320103539929014052148386230356546470495051440608718077466842385509958712683852891944883259470677289376864045430732262289003421395380326132916594077210594549579639209737087699447476631578775498386730397016991640175926541625608073022434983113411379057861627616110495263942201673726050513912520120380585976018545712833276906788390870518564118197081406091714587860924894817196969367312307766220571114309071014283256612750505816990986459486214699614876256492172599890940368066796319556490384103609308651872547404536709206165180364672310436734223416245414839275017170522534565905674982169333509678966486637339188062977402758674702742455729762513948773381788701275887812594157218618452920996279102485013537023810131444965082585217620453816443093937624573838431058843518041156914106012535153379650895339661947261372413166995896313019958412930715876445886156146883976855374809407804337533002167913125723238267599590599118700135389128844027833551241219171561043397535784290471355533469586207999303253464160545133899413562065775830312757014497984630586550552106122234447942821434681004723362563254594341837871513032005089621163978970455389146192240971879228890932670255817449569751954634544818153341188858707606426511433961804671297754223129576354034793352561648559834647147773425889921301512862244785427891223487446182628710858339372465635911531938355409622237977873972231697292808208749069907190773910742596666209747687783269058650345786988518290345632543808700398310340937438329831266863628556888009386677400502670884090467323297240767829939695871462053061555926315839455261881391854521808858341195642318049442725410776101079607896122723552369246308677229806091164936964468673140139282985950899374555373619500781257266080568213521786116942625562323025444289522599235428478959148714407698606994481446056393190518176146296765320183822135008403228702643721774525547038826516343961999928618726491593723421041865575847690302448169180304052596490865776451818277195606048749634402360277255183163180453056422841178281532054816862214814817898745604456022645359709530920162155347915867671207143411137336561350738283343227093986918742853411517316796817794469156519013091739242097261172367488661750862670125387307060499052799944099692898343522382312542348342654564621550075947478861879311720933403033511379061123305435664638129252131266943213742847088973131535732175019722410171487544035586891900579356245993347992249254193316434705418920410750707733260977137379525153569636979613658472079329427087841276435099646690173396163011567728274486403877040171211703270820343687151376431408007138367935003004756400429553934314133165593628448117710131488585658681113918557195488214639868081906054424708347444115500362947489462188390120778826497250887195954519576451848142122808900053797064613142014578987448061267937047692332966623420689387408848240060987990851572807106621896081098636461728296704042858091188888134178461495385725813205239519440894169602312528649876968245631095715122836148001135088243134976825271816360674387952640986255223964631132764890192853156246153146542534028158740308473460491494784898403748217833821282035407141497859796853391623026084020321671542696760850120530812351642810783642076604049711412901698784658419094776705764410853768286571974459946589691681347764035328949376001464929305711118403779204808185128289741238434177671242076025011943945454766191345422145170152982504648883331599782831444304770917245209190552920268546859860023672074106459462958268059377553657652883756776984192194659743846533701156663086985858536317571669142862901303868993799659488772916653665733143583106073313341428832039233257968908121613677358327373470813187636045086411842607275146623937189248381538311969217271917956170870097520953673459604334282780700824194625928504007837771589380530893867923738722095584531096237763518131188540288792102986299373276634912267193877224133299817587145922346708111544430450446561200892259314105124182698171110770771485366189166138324341889714876091050225234965475182317305556917574972577211455441040180407048720170962254711514194644094600292193922270875355451311571594035434939563269557905500486724563557816211025392209897770070668489629659373626261808122028863122338594890407612162508995333741613850418237715487501519211053925619404827226443214149556105390132602998440655493230124108298735950201515005202451086041316358203976162138680742868245734404504453496298154695751402923496175019124643154462797250517899953126733059164404343951815459855497934819464864237584561709067349769018869958800391127297658371098442862958811019784756103924472362912123353315969839776277833574978490523943871833477310626128439221208005023350519902132444877754076919905749235551263787503383397656500446797767855875328149268583892489844061032677854404067503851658866588617391145605309043513236562996180478306302604381705996100715054536076213868124690398865823125275223642301920441472121624426109425907201933575195924518874437776527978810423945982979043920629503578524850087326207524053117264998743052269646347732482720405619061949243249414788962035301924433766056525708571938143946463152281697549289940179985640400972713815713414882142779308450770761548298437860355491442328179433864929259448293908356644318366031186772593025107485518410987647917903283766648866787971378233811131165760122346970324737995704223137327539827629201685337299359080216067858768693720706882762131962385989516306610699350202687489663407092132066191016732043791140581297626723340875297368058692543760003132490645014219292714396312749604784096450969192556953407355864079301296678284508271324049526002052295401711817195872488288199050425277148278183858619195546943095968265013248088108458100153048900916753039560497407732389713852180442699403713883358023758299626857566387588508256429708852104031315447258037964660922729708092737900028552370917535043210126612493213548928944444619452393002399577701562382008610729854922133914348125595539535123577558535755728243294007585367924391409030826556723147530028169137723323322191831527600763531073990568582939129624889857230680109146759855802316688836848081786157826659701886885882602070870913044399416499157909380245819671877596213807855151272273536180671076254962718908990603181824512256696997969356510315116707227084770368308729618025650498985929531025825144809928181590204145978490741930241673527559900528294822506549858622140537621061675539880877770146782384364177614235023687751218857400756410856441005366590577362777947167943477207980134838668868345806739372821735993890127060754072089175585293068140293545879695697489719402667468549256204824943660508744857633146054548900508378088265996429448814728189036619946517546608508787430099320657880356200738982985325614409866946253450786003692817805053019866374549634898863394977980757664807810739892863721558286641786838536264951080660830463228425698415950905217336178685189327443844813313297863158541974995442026610057501320894860198307977550192825801976338736404319101788231773036374477005628998770247738724868833985335329406396847273156558685599382842917490544210602013239681158095435091401906071237393131054802951310506002400966831220300536948018526932363353703187603124874312765043383713459433849457807341840938801907111776264909633954484841552475566460149468206574296124098109604159163703173087269681244733916110359978638654470256449363828089047457592769408869377634082732975583834973308053485700472186344858822023613097073028869190482669451083476091679334573476837684937834003060910058309238465349205481996323672361991534906477673785236166547851585840332118880512745050466045799359532886145003267336863214826441073912461693546866844407336336599057897062957862915152560909288687653731340855311696710466620153118247150490649998073879222790365333711587799094855636421822189710843999045867102996300218463093439182129807469006771891112129453995195224351238453085344485855563149541109473920137482423803055855578424392743567726758271294491224845813304528314828018296408607124177039236945522663443449980112718493171591074951387093741286827763855583106836628742689224269728991532123384312785541929087769013567723593328919108211827789249084647722870446168867415377601350560397585915950377757149850025111639073439257854131398920415268217755436591932766345559902463662259250498580750333875338974640310607268942621148386023165586991809386142478249640020962761409195661845030556071274190979769496508389646116622518286118840054307954105970591792097457101402207882870791058376431783135859894648199470421538369397827187516572128732096192804762517716470055568787876554119702931521645531553692537746928845623440045194610185383118534002623674517310471680565086951267238285941104676099055048983822811451552122776002378069751635471534595025833279001314904316736872056980110754887918962722380109584337713442013497901067312060049707885080907720508874809813140445407469509879301779691673862053424496549667691698178811164613568162853058530852050011935744058374680100860331439486123071737165133563799779934342959910500144619383860750485194881863497303116395863228770354835476246379759306330855254271599876688924175005185153557313271855132063522195058651986305366184759871615019115029218800409551657132938389528665490291448738569194861210924984428456493507167159460182637485821006436786428034657770648665215592476286006573796256066522966068312652225504386033491682324758032584015330434181788408723611755530050788136602043135264360734253739927743084333764922752209326006325688530707206657110772296820986897578258538031683129299949746106975303589112695438072805954822369956729124830991192070679299175821176186955401551680075874948601580118170424477672623044156005999823086671535920241163504646958919639726922903296586832909696606319286967377042380437103192483633379364803139524702786166399742541722112637331352597072115505657398582466060509987380294486955794917055408331810370530184101241762731058744517388921885458679120558965975039940770774105652340338805199563686492332584001841916132554843008986981668445692165113604523603809470823618544929821183104350452618570730546010606629149953123723099430527342011170963041524448578795112523325198015239529450658140037824379063800073062531967437619089824118198024373195513124403644743172404967964053428795477795151422853143687221777153932846833063183902375924833837302727257230398389322373440009414445750934122742809116706041390568922388763941821338362491784698485454550773326792134704948554798976040089126814401810078407074992329977165656638744462036769051841588430168173218842211743459824822818585594132833965027771341188278237292541850224566426874019854148174712188161050473334367582154326584924700107696734251441025168454403330581105217041533395331070211086673674443541443063027994569373887267390464404021136202926107853178397431158901051218661423801081370260091833198543769133669713710207668595247884190353272559706277752077854973941255652129177850873023886421180136691371910079161016095399733872651103049407330598895272163972364074995963429284813128807801716239709399824092013073582618233293791917169734463137379451765592815412495500186592427660813646266648988175948432313842159858186972918884797549654982154002162013509335675009607504958038913338887233337788316079763486755997608383339299222799454928448341611147514368255875722374980655318376419546065615195633809521415666378457469259481792028157971362449725586652093198902130960976806122798791359262121335315981185021975294603202647962989049333407625993709894068830467712876312431471673842241307225216703261336345592262467705757243112753510326199249002553570545471148151814197713764271459788948902107972928931672166725050879918288198516662680351371833042640091021932800417398437812741693560155330496186284004263086463804445704373716152090179619639322928256537993934362836653623696152716981805550586889578739668173674485886236107580913035130498905700925544350789320812194330462926276546599038540163360853660211689471308294930923442672290476435483391002674006114314357834808382390989992105373196679272963359579076686376596099573372768144871012997745249041047438367044251130781523013890180307014490959450073395041411386184552571199606701726518228080938729738397994840294082369764897498068209684168981160838552719592715797295744073124465587446294740133298197148817572004013410405697663720209265151656193056048173277310194438036657367907174056584292385514127636091355705448373204020525103211727070201415727500113160285596953016956628684530966506625851744282293229010936339102071877518229960975290602100293508935919826930468725239265743768117673808148910617865376847334017559325528366232173155161595607181027117841268112731798486078006674571785527076053245625161482782420498821659553529065977326770169829131401541879651860526663731544529323058782253107682482347188743513442251778942908073687163281976590792543540403658522700901069685942534217165295676615126922945217100497337988299282882983986643571855169164997151279868529217837361501934781821803688753670238909152313082835702632188779170251538721554335877079388243694313952597422373620583456584275861061614146001593243516967512422467239029994491374325454219361530527824698287538600636594461976115541312146245285054379958762471095886981548311866835517199243151041829253995664460739817905543303257235405617178616311478650754179564222923457267611422500793844603473062837040926193065868052857869635820776100535323786067215088274523875227325648829291451019175567176212256044876443810779684932011894699494388564453709727379572508617852757962766873842060103137438374645367889981372170201884999456005419773263590387020760169329154622200326425363921265746487182179731584991645633317335531538118938471549132525874717471273680102845192794086919128466728374725424644675323787418626530651137886149022446225805831549841824481409328639966566064147941848494792215000823848199640363356659473336410156185471441554330701170242118441770825559090374182308842083265382250585339107216860841069247291127113639164905887828456991578617887202861261748504889917408530374321256370112192634331665692586506959843221002630762676719095526711212996339491247670570384931866156306420090782992114086559170631111652363151312087173963075529439565547564769133109857035828588307222501263938830086143030604308340885294911712587386214774022868941379426951850744813399910202049125349834026788748593552588042961441578628179479562363472318827010752585432093735583682016156687299994366876112761841891084325982565900964712712798385795407243710888829845031432327742794159870540999917274482679020529209321193861896986396129760617022890190377114673972877965164803873358827156532462739114381333136657738745810424298010829478493918636911493196469469613148824860497221656509709078066705188828170272850839911976332494078409550136046050687049772354063257937259671025952389728504303785266171867157377087113629833166679536460877549974888046214160273780074665749848613410715369453458663476980234347879503120745492979389004351643337248529778571031844813820801284317617709649711731384566791680587467091882255122508260018024486045187232523940514522920253200391377101417206387542994617938106270262974578126919695179959204995176863144596605204153253656946856919495335309933370279428600820752805419583422751205529662362983676425162596383641116486934165301214648317215025635452862274001619333128674284425551757862995359416053025716015485627239052309936946781854494790785751455035235135612746009331148105742604458234463841786799054962400464160408551524544439883727173447320127125178017028853913229019656593992650408873780344717964320602908435094279983055406005729252681481878621637367763421703094370923827411254056098428854519435597154779620492610234919865380550281244338220623777834354924827314688560001343591020759991174829666967813611305606140955543787041782919096277823364585287584057273599941775407554782252465305318538335457550809872092694632715046457577657630533334508913466689885352976542765298758821319316110113622150982903768450603247286042168008378360384741106749510577775450598971519580843898084102149649696756444955067053416997525869331509889002956016659559041772698108413409049871983590598259949712720331402985572312035069919289356410435969391167982501159251944676771599636114176517752142228631096638179731708843517698442956757923838058248520638872334756815119492596820562312974777336441738665200352986674988341151659726471911273430160641330083708659733586740357286790357171838407468201497322996440104253402668876320636790726554815550909700769408317127222499207894422733600344151735580546367904281821552871405375007514968740348164415135016652672285412131769795872412375214980220680446492803653392583321119836534065111676054383750413976557338629134149571022753553066684049100628916367632299101945901859756595594067115209829890207156622615647391900606576750468634439198136042880126837854975703382906453540072737092644414280787796406800002852789539390007414873808950817993870659616246444815334820873270662147374584301191388651108725265855969843051294164677611492801810814712501574633424077787990970631600297648097758275483847971406537978409730279713771973116265092546294348414251881099765546605565781929655573978606629074122947588685076676801693378207642786150474793012457647597880294129636176267303589331296687874799945691566818317661701847944537508873109230613038704684661252440436518890572699470392144353358297503961824605821389400779330710697217439483134470911606351332822957099881269790600165480654188495618689484146327799279722035684655933896400060653020252103555150050253786532009240798625750751002763383667219531296470329471893760990807162164158057783548239560912001101420847920662339274032459924655634445390659974904640778928872255619606031873904710562091418491522275400663338147060806284629773194658838340420255738222221622897801747604708015548442002758057235727814492181357226220303965204847698630195976084603656246268457978930170368383379360094418334116624219598662354710873348530617491260765216641903991047055847024731203666125446523342887159887477716154707715018692855544787967052403448341890130959340203358384051550151448744952069649400202256140867814603025329319375842541457848207812812481802403266881218738711558024237922154400434667626124841753532403768911413271588259341747293222309947189205878159672983993244521631462804674232687871602301996471675314515341307524044205996245538265548360806898941190773729548583129372508851390459472725624029444335815032892933825698725507570012189525126093446604190503059330831201107074316670881527680561235975908770324593708148377777087985345268957951206798338699436072576911630664027372764792560231184299184637871056647125085746320821562515533621013379565337036637755215019087246492753518714098744299201605858317212237918451428589280271622222589307225063558853794594963252033604661648371293178544648849588456424313141176677973598465552344332641773892011174255108041976665233122033524024172867482764299408675938828304239005137336184722932714333735464736681337621454799899052173718104147901071828015297250542238794427939475155206974853016277305021925293202158041510516665283719037909913600382057593121210491206998708548067298090147425310673596248685586691610337016637799511754033331374805534561613547614168306906532260301054189790390997634672341839325984445198605195691769989532356091677324128225205400202010378778305336233415309073977396793691881238173666947717176887924023580230999479956554204838173806456184579506080305710237111021986951699946850553953253848466309328360894871791894336074030910660327499918746906138314841714644646074796725422000358650639525627038163818224423599021649068255388711897170216615830029585027517377008491524026265768518876169542367190118220349274750075469504631579839707781616939384633245998356012996480392250469910504936352381066352108412630766464442335771048450420248664774063367003488704892699242044153748429604399670275123855777256402388493108832686981936545183022833392945035266107002795014352275327321627280335350421509239805451683860462379320268306234117975688294349615259081249256254359213008014950482883554167871652958562144274634702322426745236840269360655011472569701212236652454301453953517824743651285282061914005388221176046238504765142031991554370490918434477860318584185949079469815546233475829399045121625058371472032224975169357235862703085900543999470526451831556659474064536068202151121753358757265538754582516781146169616548948828795953584203566296765229853588161753605094696220748782354514044135764264540477509838793852026268991247984755598604903120457389529065327801622759175805954890040065619467958404747384506483489647477811182281910580326385050625258228484116374964956998018631447828331047563990160012428254404374729118418429665455070470045365994426445382423164289786179131355442304968164284085528555838804607419671910909663534952033588989406181206678840698013594646516046059383443411490621340271268614716928084318332345855470215078057657214574624114379218608932431578645615932089929612130461462361953469570755122932395892849019940981071610854003905988470412127008074831122434894616608369549422855789437687179747325416891783209728268479394089758368300632197894079144944885968358721902782911859234657767690336184570353406632379237076284311378081222005226900832036718673971135891053943421605033206357040967523235585279421211167088680040588080418313096008944889769806487168092548283789644574347879552789377614308995663106829998034515157341495991139284516490461313699073191546250899678524548334294417430631981019428217212278571246154304504206586715032296592314359058707852040320647457906742853531680428215459366645082375946313725504414102475559205638039063635781134796777702205157667316125891411654473665407998854729623626915008561294273391814546522730599160733847668625847510438864379911474403873169355109809177243977854454389322583040567416215449929548158257955933883591300204299877246485337933829419591357091796183873116351492608614263929907868990405238212656739256529870999343853100240376981620372884162112067085348617156218087920542644849993374212605515932317719166265343960478232072875296509402964416229545332013521526749520834758934172308740774898816202164897218559952489566922298422500525778167589739410281399205213989021770020053530253283897818128402922500411992041878075986407655945720887564663455896389023420015632033055893729950558100803825134341870740195352699350521005362798578597777994227563704806144463495487328378486385682482792480693795297728346087194161013345885815571874691053287664516017075779319306248101575810062648242210407237162082640127045433827733070125743167049155085474359263335701890665318600954286064281647339795562538534857734085508803312292310633121877251970567764241884315906145799424764301449589205683646913163482638698680509002913504095645745740391865361133331842059120895764752701623423633190619856767807152730882846501521648139640162952382566031788504046815957821641775965481141536873908609974210823844385106749129944891005855881414730522546374381990707346245325475514957794829365857179430175178929854540571117694515808272264684048164998921415629504952698232780703619434388422438973325850862062965223265632381359752676490896655628679770195938751799310112754854937556033755562164471622604938567923805298766153273330094250857356782360041406647521622676932780553663514173268438407643730618159984347669822495799985320626597947394042528053891190789898887983644133223495994171209885410723278694727829075430953145013628954000917814544932753060894503198602785048199421673793808418045178691183679745399440659550533876837843605835639507124549818459060088312218181262633852143769710524161479101249189939203482001828443272001537894754678575899225760504241156801989771925555742644123863238533364146120429470242845079086358553750987931682865696678723643584582918961312403555265193681162645565341273519682702922733908971943419512584940655657946194381337592182262596548905100868687091998045591782205210742498753261438454350751786388261105244730157933702210957629207865376510846924673790445438311605353722429654306586570141949220129674558314693563522645818635370974727329535048086693533359826856299881231865599802481705847065631805363626680649383597034829418298198924239440492352403650058914184366176558815207664548877412355356064884643330960581550939174610559700896238198487906307650829616237785542478236033820350858160898178672725879934595529912094494354527808848355824997399777818427399276385243481485844004836004222533086602534449574515073928081960339350884057903296652471509971682281790163823992561830151513478004478253041737318348338716086187079309582191502065346533194696926902743188381203303799666840884658943466843039175444790063927224429569607258200912131306630492498340730034192334546094378727280264797351430600708143771184292657716320239556163248945882435078992480476212400891638340565528133410522544133414052107743967233615607766362494732465289937230411289298735483628419756222455453730253537229134682459676300340037411437109293401038756625317101729822130638782977241641705723955271967755162833604022995935852312404724396047958024250980928985406182640936466109911275601896296087598893589122110144658780843572638984895572480835194397251296876738957959285849887421552949528923929524489185513107293823707550126899458462922834965959296202066634989015144757824204932132467334972466479550264072704662693991758009151913709423875266884950574783027608824617673574610071067328346900305796622743488641345729318943255419469163321171888461091028772812486110871500131396808584275640069215037897133482510009902303157462728447004495804045311857776311020225291736610542397747278515185457272844549010083588107649795924377010814071969329698461052876169202114482213674235449126789239581027000169678537812596173328535926466960826912098510286845925599224906174852950231019588411035601852213349074008063807786055665656017525379409731710119504611604888326055886744526024735823018321934533889762600362523580117538796860233100773961344414225776913785017092719580073638301616360705320566302672463396229205550102354745307555009234425418180174613285802735949673686565352603758882494415915165459104949201540252383219928101152549288708897963509819827231605238722201578054113490954898073582909094631631771669993072149420662175516495855668024498229358727218742521145592876743121678337592791257916519866264816588573604112600385606349501056749323930002895542948722131047898586649029091023975535362338416695893351093198291389862436486631782682671565509991634977673810806649772622384030380458536846563005887850777602290836411648190857470873335765592979014785101798942860518302509246276170084900212091314062464433423246849667977628867148030964447642779654141370563347871152434443272588029850875026983494463726605655222796718058219347900543856573806436058361569122390257030856776892194241081535033459153103341265193415289903342080079512177791384956325360589817512596276003270516106278796432031189434253003331489033443958986876344667560443161497682234556701558907438998508571149788818883277643349200680671904056826422234839996818359460669078414407166635728724374025908925746787817491076111601698038396327184038062448291540888398330255557269561228226606922467703938930652521277898434199630718132233136907974430882528760764290497364599651045575487515845494239108587800372273019869109381582843679699027378473918889078385152358833889759452909035754510289857394309419265970136817411528608060142632559976256675952959593435236693999163512470772860826198454833347407804956940999339976731495801787636797395967794356900979697387863800021679029376284495787419538854425020323071872617170670330614209720977814080437024703129219063943407686643214366977288845985291801715423490423102266147059951415445750487199184958959978061305892487584056109334512923346456951576921236453676941162117130940085378677251555371261845479710578982732839528167712437653195296404711203480565408358119719889064943529211863149866595463607027192516469834267844276271423890889595436227286764623525952151453299960990472276244112735807146392241327372080944818827697980189677445255609287195136127718568745744247055405178582270044305270419291401243848989062537796699841415393523570719705280150896726121856551794716097273708661737738682869135334701649604035554135203411458242502785332540543266125760263284296113819682396906037571857226821948061019655185182140522765664353878895370464620604147181584199003630754336754795901560059060147371505590107052819940201542146905869127829395015273753702658730452805782614030547388440963514010664858498474405780160208244759287820186963612322435367799368828550556083503812801739144947893018776684044228243692855271919554897672703017347001452723255341340756269584645867316135430216954463981124119674882382056841448889943358958804824775582565821314172153062882146901009404993748156215215092396012627275521670522481947556549375946232381019992064004186396651368439006935220068299546513264001078435794782824704130608556555008036516100755711373562815527566974560104326887507161414468135537897676739214325217560926844645503163872088812244770159825986318242119665621308451439325072941543040222626937588368793261754093573385709900564677054654618316950623455664172451807473595434095247458898906120429541283649213428594968031045693249841355878735221287974290696059858307977236414111809491457881450781793909824637819018522923861546431384928159055475873272509561631278288207152821024646674354105089485584317879985702847830095231581530280031828636821361640073882449139421663474485153877885027752288835610201601237911409755066974244892534123717054637283000543259977948536699060552580853623233876120118756281946407002381590837901503521100542601827424042736081647443735502175376451657454174686544790183988684374646263008918006811091033813153818560108848132506226397046110172380275659249555099408290788454552371076969195429522604012868486709224884729214114638599324014809897436588734403968399158661032019628367048532138564544660917421188560948345048493899996507992369164711013758108787815449154563603115030294499924302883482882952813544477935146385270319051584115211116672464281106654366071049228664107210605036384018171325773439422178721166255191767965012530377716701948089734823942624871391543089060702043872424676776276374414091799288199998704180675255050508984443331669356563817441289412117613404013156707202580406794574117768833136792193940173873459645590014352501601150126881500905429720437429285223646359648967715562754756046662398862560539659873638913110205716481058173112880498484661045328503578959167834177522761484626808417067464689785992202329789860797167445554244736033327962064463173633061229154008233458725143747373609673497555835904648978757692389556483777523292062253593297208510466875285982021042692605544604152898625030139464552877663000471137891945746915039347396836394655466980391718748935107775627954082080613478917791782908607931923842547632483655404009867524557150218621167056724388357736510522870068173568058860175450923184490700866351233288814747560761291836405398122163135780015410642727862713758712109740750632655802108563299740562841530219125987185009964971255461605227232188125529211430977515666899990533151030764624095063411263510086122848689108380606725873692767353890391692336880805339581376757365052283152002303592169824437406339739402802517109963126736638244453570000363024606158971590720136543921097241564165688575839178207886481714329996240252056226886632105528518122932455668402607154510874004740870940163453185716955705417454694819855672246376442519666108544814055665202720323690874019985472248809531432612676272992165791914885637701222783417417287231584655995251860360162402291152612977422439004992480093082284075251481200853973861020145728799188728383630745435202098466536173495889399681297999790606273608558552015980299165603958799888228551977455524763087849060400582245216922122791609701756149821684128671538590625983375747691749249697219678295674195262736877621760619697276738202951320553254582413943771398525070850710863829115944268337450152385079062697165728583658982487903636040792293247238176404493088235676737782066463428935043369042933851062331779104116184785354271174927488538738053374909967798863468580686155406229276238072946592015567445715015589187429788476482561904751208309364350671175231633818477126849771694315437827814787732416232128336445390101801500681595632201099106123126927874575797375043054459166100199105559381784586794983444950529071477600034726073166561343477513708866568582620299930001994464862434671775795691560180888860022894990265496849603830751041250194000923314328704660471256232134215397571984483305489309723711129410926037211834808187356378183753941634326067406948125739777036638371943439630878646270516561544814404309212406839752549234408663793065639982555654245827576029580436925094203164502396751494064222278512281589651568736814446245736496609282371315032002970212052829136106156522314976800084908381015929098008018518108787698761417393044559854283422343304797073881160909269496663295125628840670090758674610182380691897612417537098555105451881637567511549817812841346312004115668462193594386500990070403056509349143361625856669847439134566440756223268533309910741812228512666673664677817889448782338293814628981542176499578479663366872514844263106424742355828337593517409029735231125073532763102389984821792643777109483132433902547548834389976527627681187111041747517227822093437862804365832351217601341982182558055434589582302379856362382810914207857492055288280865377799044205652954397232228485942019161495272002434388619825044919773166891958806088096893115548838823727445628290975892998614303799501958470588702158153793368956557209478825946275736297919922368433907577962549982473208693736900166656985016884113379692978334808459979018233969676715985611567701868762580167567386547905497709320218882110912580482671182215271502813480731483851115848910165855017061748465168223890470725696098810265939095444256359439499018053336258423632687632052986049803284484434742685870755579951603344319109483086246502351344499772402485721973429886020673994069328974444080861554766085697722340656704068267692943243048184912057805009320408944261879115020948024505319874268089993556922182108708154603472800784868169390929786360279963325700769317741127510288435874970985864176082648969669674257728203141803711373887714270888826812744404915454654921411099903261589370980990064225450133616484846507616904048209412370546947353560620649625746200372889945213212322886487988213903538228267449245966164236793996718169611784544545625814637180469566575682430455911887827562598608920632961177370880331790126863816740038823366967878201301145566751513935710727963801698640669199058357841864102657442194693201243464518783087441578564256857184223938559959363624116534619465916634330400948124217752023069814617820798636679580675673741139927432446719329603589636650584845840681433985175351764002318759553986121211205140498220588136683187594759482078840059242233545403084363305575788652519776583716756903754671734613937002151426269921017536773202242652665210448763353987604220235270392273111744397849605784785754176959998015006616552578678897392154883284692990772961688565687809742079385765766919127377019883404042963292234520634713244461913831807519192983042856126230083420409670513911643983034116526738167312415075409587454125911388576411109075698808607394466850588787670241112953668262778994395436623123312167991499136897426130971088717356220803563823461371519424447412724794869181663089927944882207951532526093153722109381987376755892397396737914520187825188710505426133547924515240890051929099874070997904333233951142642220197803987987324030018201976917848024113482101276815352598156588546853093429611804373481315048336044437008813481183595027407054270154793333188619882928445246618670699147371943753495785882527618580712907377563337056446782205077626750639139084667561384288362064964245670696507541156751630962867120314847018961544674888687362556831926389897251006759220139706610179374269784190712721348096259242277322196894863344147393142904626057607078251903162516114775810671045410024363426377931488029839312142836474359174872413845707956552822362297008630506071265394569311969405950021839611172011015043724498546807868373236152132732530110187809381849859802902385217160626210358476147980433072281964906927242074716963042105310390902913459116143151010172006055994704952418228694440795628203004125793165402020592482904585333606424625009420690190157809348777061616466433053112008365876596916213913774551160117843840345073405680140471229492822236259470501023630628121677911701671525174918085182662671094636126719645966718611602919915239746835450505115937336267966289480444654437357720886390101667550280410278387728710383958196173811306033013020132486175636811232113015081635472776529418792573101799249857110261927961554505818604179598929417068891150199398504863216311120709220815544679854528815074700386014720900017880047341803879582974732038811727428410704180284845112727376102894356335600630044591832776764553831308739836602615511353869611671615177685196515788044092455219248948148103667378344848881658079567536381993262116039783987441165790918817178180987737472203812132899737360576748723328256016368912262234634657775418542764808977637055712582616884490128820100235236506514735420921362924182815097739732210048792684542773109215649934276381926263289467767416052307771905950787946236368259705020941926543998090297589677420667685952863046722714069887863258125143420831150092640053388132592770044038834433169761018050811764242222193904904983283305978837376873036441014745370836764279678529372029079656900512221951914354966287689044625387115825885972431623559080198222044302950627813843349030005455334259658328073205901943208871310820140940184864216286820743085666013840455991541001420515494157756331839190229659951256345549454037649765616071783233854816962868993939354971852547696773202807116758755199049212183913756385048382117377627302550607054310272425770706012193754310068622370863377260521617174032205573233265616454027298807810653344172731289271070801070072033938074842810524989271168624160650811914081635718442950579064732354956932083849159367369740253543169839303693178238000796052362341372028523125403435688942008728245874234698390692283735090353734044277650540811169079731953142837768989989119733751145992644040875720838115169275793139075082709420902964378701082356779736619225513205102582422055805930029907268500520611067139041162046586366553233694295489284788664737266702652302608101951777650830906407764663799810892919086303260893362195146039447518817538788609968562724632921367638999545033166009345045444659322234526994419867176618927060555140577355605767016776108482881386801968391413278246280764638166666173806488822185022508265929535929250449932090591865758564985254682064482306751252079475187495582646234951986166524231568646711700826044233468419673340257433648048520984612626992643983527371932467438028506413770418444329340396484147930152969824225843643143702335621798119100185892363652475059892453753826102795884328043225107691359456872133467139245787960121523128031146597220795326860730065611180489700534170597979683240343598816464676740597827987447571125395570042157281210635262082209775632207191473115025077355311020634701841653902599076266785329636349737604031408993855870590647381705124198809344933363813738851004402262798763099099987036266149653942130967106314795405020866296089355978565309210172129269421946519371199599929634271943881589547471255990487955732780783771669161864156512187337891384580692794244190705910121215185168236358177260391858843136649556022435329037786065513015860118729898512199592910867020343904222863497733927120867013106403294618770301458404800148386472294198999824570167616903363165007034925176687475519322849487441634625035104127295295888786920573461987489636861357313551907590457968072235601895895899927007588555369657528563685091749318417802582721478982201310094029350674020189252068431536172857356191168244719284394694754013190284525137655181221864282367582209763504351202831822774828528796069062035803891014458403569949596993344671750086269104757551006145489444845185826879372249665253483152068320039099195542855583582328562344094142611631479286061901755257137936576184858119793698606325249395784903838243439234382289070677213736221763861644058188010263218115410364625538358577582289975048323658623335760190212446503161549939114091121745749585808468837008600268262237830064161679974584277313209441023648408448305458984210671604955846736388947033450715207901973583363242410362212789001311115058587104269395168567614733145171538395795285370249293968444849211485070589177149955401666977832334390126841506799184110413132922047407185720798290324095201172783985382035016236991406930162486098634285645506006044217252678439438291687465369625523475337053630379702614156545146095793823441832980728054456695753933858202648205039582215524711112713100347429214874481085480099975553361659805872599439101074638548770878242331996530712821767364726264195974874423200698757276656183453759515588056449716557065664184637361536614255677709437910029072183866039385210540640811209720806913506818158724065449764671979843787643564738373801137381831269681510479206912114697199372914679906822243358868125133861838693025326999002920994266601894296062584190890994616345102875569697201432952677875726108441948442236149897835504375630081580950535206041342197475372543330202170053611143494429065698375752260344680685870623663611546124005175750023577189399960147432611664671475966733812909440234394848953895656402994457558851592087204807391930894867215873156424095095398310568993984043638933903688427353119266895156159604986692185767688661128267093969961906291259250136383632094296935749574466085953412087590248485821656452125227200849549368724738344404700388001480877859952943903032967356824253494690588431142509402424808409816170608043200429992684663894568941615458237905065611350788927259602025340569217858911999104498943571657632567738002106621878566213865484372643374901645085087980490536004792259449371312358093571265336122603619602041181210435968719405253974691461721858044743008286906945410763207063291965304116154150457717277250353981307965427677366279195659163619276415867632741900813001989765416629186192958288150158846999109438837045961397147592789650531794646818900889443891411698018595090105575077302614185557695542188281131443087263955932458496074411274795787913842905663251036583810662263045901209155928076173051744691064303442954398861979933217365998416621450170289157499022903651774067662183287928737829165944651745260751255421730982315977922614827494872364873646608796001174185919982532736120904216245970818210450877123328426407031713060095408223117321656870872087100529776402312112321962153264512974691166246048773120811199245613544384793194326004747775143512021126226461575556905456254580640277955634848848941116969361818203960313220951979448047259123077883315298414072852576641677579059568881549459059115757320941561238055758702436808376106805549000170084182381538736318679519171031480308628293076384384569048259905664712871863707374750457232242146791287458121449146120083990778918377080512345876033512010584674646519340583567855980572029692854758411549263857908269559306277811009421749624908543781104728645046957255683512020264483180480652365027744210542212918576739534638277473317958894642172160927160401580824358870271807300508107459570187160584238944227548636709773840540786052683733532961581406513237563262423661357063862509226601002579556360017509499796587087055249622889455492577460567170600091902427416489870699101648140094147516504767390353887207945151326603852127305809799145520903884348746877858377289512024207783507320692997359253677179330849052238982629656191715651366179850137160216411875988962066643425897828085789060167454832401114910091198545256196407674447421966086196522473172965605586118356913163715325909898012892213819590727410066190700459333763702715987055955336856868954922033900896175481321417900249996901039984350492850315988637684524252660870451177608350929082994198631833456015570961712564071711355393899313858673557085619284111179310563959156456339963865507901370970130779121538524961213808377201368170664410833193476870254567953547219541669935379783456270425774051245019483081845924566290687259828996809820935441354273308627299832135424164121656136419153184690759157392349749746424223275662019914506049486564666064999148983896773040988834071303344852963261388654142802401522685231434406037246600368571203967483293088118844134131607466147860605220518195079689497306102733301854049109041692141902151128224423561971068066547188370878580225499739066182043828481379160454557419915415079161018726169112886330795722572075203025547695397791794538152264586403695633873819596075440376906783995575296657158390296388776611570046630472376451217501920671302590727389476959714758910387719207258059135642369269830581527534299808711404622018923566256734191221173138778943126686548764602171042493046178927998845816485565973516077630369377101563593255628450266301419607571748170657704827799048960378916407549973808242233389443030119111924846928504242003612103896001303579507920069140620161626004173016840269756172360991807925884432535720520196346584431124859748682736446946478382383358364879955639557573221085768317133195273198094915100956723467564148959167413491723999946560928069794538220845449927739133871205583917462553035624312746798464813417970403518625509721834047075433958750037597318263566000185199549223243828496999567221619542962147986212435868003730153410848948050340854316282342643472973142112466970962428874908478723725283808614941541049424252305026243242950937103475926994620633714050148198357331522712426096465689500856490853201451909285814369241192859841249250813549332228404136346323337514952021127005876213145033622075223301771838501496259085888401025479455847379360796772977194469181645513822443654149928108106607312631724637603946527232755253765397728999823096704624474372411308613998654062992758863526969366792375321228165229362446352342900264450048528291369406514888808472765429014389826265025639737656382158578750884694485135701774197495897912196145195521009511220268102600500244989878461193150924806047236695332059797255042547233636209706038432127849245200001497162955000822965488786425199822039866750631278962733831147126841681333332094901999028750569405175520577469763653118058972497358539239827389375700501817836878371099542363682960737632242160330691332908898123928875311810303080590925312139102344743860532889791517250274986236545012664162822205617298952182061227892987394315433176336377468948832833802052660792559307185922000421160579866507132306047174021077575328071992866581626342125553385625546819140717853019757948618146251600776916041922618433677708525284891363334404180769164773314347594140454865287253352361665175399534812395765557963247816909758553656636972667700954569385414108426957043090093795459833295677994849460432187520622340932310971454767043145681408092526459722855957522607675563964813535719926724890976496306049376461307303196136318066811024228805855955852284670890235447910255820391343600703779350559627380860737008081181338128599370109537093935919095202767074543779870604197712059213711697729473160002913220619325101695714295796587068030788194349343576236113342314276241683453327381247918698679827163462881977490479228086772546033461323622365151805389792681057906362925793379299494967311283605580857998207541825122447439784851132449955946624486809523007789631399275681200614387485678743698105422480689411017993075791972556842790332107085237735330840476009012875780028980570297855569177252247011583610235273441011476916414425149403320021481118300694755793125221598008936675401354890291111770537447109736358906106127292438351550182622163579652066244804999405118946476383324447597199131948160591583903824157958634133162762639538325086500148948947026617599115041597324009826638299205419636536532730096080937779027290488930156633987364342631808710975546047018596193204175359856486197207358646821056570263168364065209997843525845902954295726173637512519542469621402543547215106934293703826703224079178187060613963357082813118716818850835708076299762874636824374931445351482013978693771580360590828418659423546610233526860359351628251949072724445749748379860563424829274718615593050905907861891169049641330031406499626639781860255529721510044668343122683410945298023314859002280320209247010094929315348708886887869812055437740857458349816043224254307689849243062179749764944475538778833570824699652745181973533702509703223976907389092305472594458042350828448734372256761686198655970578946157393244332285348531277993548245495345047579633954821757421234651944641604771516853114010044160228308559681180785122118652810935908276175092291045102638902091942436076955974470319719855839247210713907166988681734668698019549228598579244560785753152301202467225777133150551545677240622945608383191290112583087983441769580059191981744209853051904963594310862448818754547751926333691147288677662136681881069173419436852672020490395829848129899901180341994647293919391746729859365102308247757288389735205127373591106523876548198066808145800722810411801994614270781186689781292991174478108929934913121045257076048810195759502371827802761276389181471646770516069226824578051469732258434642826305739134693604080424519031075290606248070968820819943617131126228331341811498067550135575799814143219319992470358897959640318025249769390250164264021112855184826126919615226643101322457361101857204416126973111308966444914921381192642291781948425357811271772248456585923770630660926508659833195789978252990733902390798039535116020500096304704245515367915290722782533211189394066199242782301717575126714414886151832672569734998802894666682160856482249667126009385276326607600750106660847361970250761827085807482051933424908903698181291812062547352732811990297664833443750144628312428202608905059382965450708124324235517176601463793011410337605106424122717912083538527584330034925439542887354876745686708867462767214324560457584448203992294465527051569012057808334862890824649406350785754899337480908249081313696796732738894656072956653330005403449870912101750429350125856620180443943903147792983703217898513050607630851076304644455368829875432306561928978614165183771664336795390013587517005912695342732755501422859563000107657671095262602228475065820444900135596247820901735728324428356791191420031301241719283781821611982325191783826713965134321094128142418990579359455951483776572663109406868479838150583917511545926588234222728503659554736615547220311936836798973778808231136368786991573122452806095560771718968625464541324887484091697342725796645946237143340281453943346310536298253021896818705686583649919995991399275057484959416060180901627787152947487919990636722302871353834393304381726035478893514420210312340967550589552174058375349944766262958954555193162157400540909707711169932112994553889764923273591552397805949557395636004873706853476425190463773480288711579399942326423789598442692037424960031561414096279002130650480809896258970857200781217381344999352376240412096806246292670366825761439711799236476233598554498616753422351698470852907285014046746054703762474862400587423237491258579608136641704861380542826183033043578592820266251794474394017394989709052256848143345972712186266795252240858554947726108907601945974119214042086194857495409922167484729382127742924288397177781954581323569818417102661354756907833998114772200641720305873552135538019140809285207483122853845714328167976797831478600683025572995329459811343163746006006341643755039043048641431968149274367434780608766170976413102773376110474493075695445402565176109890181995278657009136342316961062430108042165539926939395920320918357751395183801613756470606175345808562799637374006186272426135312148641262457705945812844510809726950670713661217383722863238483701871447943253210025361980276206862758651822137813913096194670816510366033971124832435586433245147511315931778577472727405089210955211794196999720394220600173420798709644858232573116805660169556162503487231141242069113247720384868303496001979953199407989844239318855585981538695780276072179055172108291409180041077231734392864007848044813477749719821958759424691417900972590404571480548132858559147385081403244413039695373536006673910599516366172934730319849049290730489438375172815301920053817430622071330239186781629339748221433821707903531464380387376953274033019609525318865996853078000432833816995281354584304892185050377779031993197668297172802943152381890757372945645569927437872091046291791676870773676073134400789125506308567850959407166969605314372098011039804585666936782177193118870665695464537731628997432363456834330329882308121267487155849392661042318511620147438213689527455187264851443727662533486407805697755505196006812574176521991150882088790500788766707906186083786107906111692622863415702940115501467654307536213444137856087392194494714002354317853622894940509713290691841154214669543738147321972046696329845224240409059421576550508113338691551881310389967390408082724322266691213708376572739513760160991634462238687539713193075350212722562915874700506963974217022309239690928115835021805136622752694899150960905039763571236643164028591474572618468390017571210931217616144818939802882337551784343391549274487359456861076933541273275702085494034208044511528534348543741221887981056362629510950071233781999905131102586199793245209504742621531811828896865968384179427985417695243642294966183502572868692276534272362356326011348765754057410296829891451843209339105821328667032271753413874378589523565620884621058392814180222709176886019689605872379865313511313716627801796195625153612461984595380216353424353413196193755889697146201297218537830600054291321640114833962461089512567570342141822548402177418796857850985310376386324308927936054295982276987355394042430378979845555129944115579926165994561625395047472908595113280013661944130375483430841057415257521175032159271583654449256092804009704852466844581145820746364454651219800891029122872184148408284475898014043960812760905199562987532717165200102083815778613726844262720211640289213102245310702640509358957885902611017128964996638409685000428857495953082608842153208777421481949575289110976858943548790490602467702517541740548710111424274736729246547338689650975037943896409006880180249060474748706519460889156705261972254717414348580239229438622241110718058471658961920438413312801419516482271908665236296391931949460872614187060827369104145957411786783732792979437461589535091749694574092813760121854592805588190633835063314449906823939390413964801213517296200577077143747919959597519153153264688722399086146874972565080799225779209267531985703644129699861989525083510014432782245613836625914858406406506461007094318783776026176688958843178326873588626113429220452352512013941095323504900370816820727014558101054740308955192848504438571256384407324065241519533386359407568408801626310133554271607397061073802349027121681440840625379409706250849857577180143591436905905779674295637422159471080043408432089367093654382372404430291571194158833987361057962783587942984783232660270004222617255757269002934512041341869217151382654242496805856938870162927451281836908944384995038077719118290586785462195449793277939910136529488905089810902452923980137951892371788528002879348526404270423255638636697816259107414775707151597056236579691628651798989661830398306230073759032581473104808443228500813476330550281639841878606515512453919188016563243537649859201807661751060928856091556672955865355439150418046617490406227283937382510736629058406636479425658926403348794651901490538959275732399690556703743308970454455667240946973385768629164968337966623409608286795357623567548562947903713692474717588069687497933387383997563890647590535534418205335152701624381733787732182435246786882551559169629350345445272017140997286960684182463195047852634145489085602253274529589431392350054106365884862601198528718618032671732869090866782266233423789768698925269812157311436581959736963809465572153026397891794502025488303564934715714253363832344662547995400419375779008384821142052423727190523998207296201545575335238430738753096008727442224434601538982020590008908383677045513362543390034964048748130476475124407741055348951609912062360287877105690681837171610322894089319367221534859889580005730545360361647906060235339718539777054509376458848466786037975955700605219764628726010991113511325437799103706293361330608647458027420735183064104304496995277381344212745433012911517793923204811035430902497187707621296104576627510449957105345958008307419766213761188203078592417266409128284930348868448707108314466075535454931615588542346975216195840466088640878804333932736444586796216333251236920282190871191505237547765125411223903687520024049983373673921220108308856307172541950386912349079477896786313606115374631856384483138224660060937303953990821326304392301760175338406707229252957784085864649753071450974601955618945126021698141025341714863803479615915410513236750397865012160043078534234100808800006897408433707351877675674549751493186260207085498427909382206430299749797409820750610121620109926746254816037667572120310119686107438554298072965984004198804644470556554453191425891977845441773453166041131963383496975871598473521530514025040575918831194962213876766946034442163544572929033132475815495137580096850963078230368745435442759738606068123443422997170555841552346753326149230846522455776415884139165311328057331737679073298811032306477992297601773923230898535331475664939427095121280440021466394069398968573059349934020320888478051314223590099815350043428304691675148065427785729755050741780830497253125011758537981888856066628297975942522385876889871227258469673974094277391187414130157796302170216360411804956438926537378733561559838070430378355094004758706326896743975056643449082135893923671475255846788784541981352298623084772947278037869450866375783953826895935034408080214161312910615940449449110339434732080763078908005195797937688925555853892582860059600127248362547948173069224629399767625474867655892742072604923279181762459058753448534906335260205832401437255526316198881178696468382437416002433799715207201077767800765745393092217695086647853412711705823287160425919858020532066525429624984460455150825312407563323769625818178824279120946879504051115276079794224819083141929280959805159933507507440669216146547881552885781544257631778076928483779769850335919519779122384104842800802443937992000017827726951280305429496884946156838770529605100442308103330018138142785063074982925455806398531845474914822393247509502973308792066221408331093905445221855759972959343615978243072214593228880913980504840695814578363219257960125426730393419532144104922936840723466928950529318541039398100898078549808311620661284414182265799220798516095670832781391600879990040461699156486302814330048293884118713278723067406993450929403484849211210546232325175643315598422107297956016624306420775368807159211153919322377223884287753348183048278154937079477041838697558629051103656167136210197289866088653123476533940408754629397756374648744795047094467501510724443151013336358198433387997602294258962135259833764852626586417968306121818171784158854790451531276508043781317373441122595972661181907085826322984684960458309031603348957666614591650689275601120891625787249082459459302222175926784613204970279738848651524225813470470586077845620437517986547304797369910619321060775373128784109634168166231009070448952654609670780163071786399201823133340405703104544196757695134816580664045961107096809146748677455639098582071660990867587101303445431630304215230173608765128892810067524041601065907142096434878096551505773858039089887723773359640770092996902914027229553079068875220446625265413146816207342389089762729920454923360196944483281904634170600021423738348054464645644387907998992734463016827298603991401512978860553561483513928701106608095541990720508429206561110752342804380756427148789696594033693766640938366337699541924228796387304200110523401239255275730142886813490635006363832852781548504004642040216373412674838755872660422297499697547403802271382566871544570756351828494905143393721984221299674697741280998060559469076257692738206099009723795603941943662827223893702486601739518772340384802226281940131405408979698346111378170069499487570263598365069613668118915980737633160240187419426864969781070469675007594875721419231690312740181006591629536273297115188260779458508394779020927057639475935822184860889349181701762383658168258366404783069016543496598478720688231859039635554584372726059024125634409722441812350142332773596804898000876488178145981102124771491652277845391950468216180421820277431185599569379674729857899562781110779411156860659438505926779604039182600031993416845599099885059127973731528105774779216953033662864009568030265663687569875196966770860122402120627145605737364572584893593591225601857229413822261318996378920356926374289897877760871463980747438791750678126607194407678144781692266026383735597071859708151005406230493426858974496232006356305391676874869092046988700717075020306163899524590082581513207223177279731097515302407623121942629564519704341822633493016436292337210743858255892839423919122970004876404771049238151173131786393470343902916729619830814079742089824105391825899872632530126427965064026576040835701753965765000778852298443724143702154287412967429042889341297016947918481668679550184521056529832508275053524168674976256883261150474255234610902583695808998088157256638711407017461307872108394539505690710886426986826725195727264236845859669862970542439072213209780310328405094515085281234439313476931455117157271765242198321083600998378447538482540924299292548018480436239848589643634566250527880013484182770433213373147693347041701048851342959626577502783756538231963168698177436761276816785945054120693162015994827801159211237598109615395657724950305014993014863049091018567361492397771875007072822751235871738649335578247002104981972593785719879358976021459496464791344078063461509593836465515973723245071733198318056086902326055911061415290182543765994752153684023772073929481627812794102505893138786491285622490636162883515567933438308570093904212960525456535321244489948858247503572643119402645819717287552958284873464698503332354281844561323552277317258466994433376544460681576768115910661075981060526133395366522730575950492732587578532192264552752046329762782435281310260257343513148062669850774856419578506704784876059208113682206285192387011769514968696149730480454217435125631549448987109527083976973883026564219203316670245529076270137709818008631819991764892111773884807207801445322609668769525645343014421115713601218437372651805936619081170275924008750042768750277275424123621224554061527792701240536968944726594947760815681676891993801909181637262981024982733117666572397190132383620398019933730148698893600111167135305746253038929395833902774986290974596572455740413957297465108917581278479156519547924600104894251173424493176672348937313893543589884491968875694794416461810998485702660034362460910790639732956066742382904654923900015604666764499022632539046262308463215159075705517476198196274700428134867767635424308008636018801060481892703564306404448970840787681890745798930233128336202238129371152135198014503470166840940415644186976749007768486714462306132341772522796885902505935523248747753420903723153353262694668812357196376180285246697691168340969636352260804786281826195627974288904698338877375171933396882872051472941348342273706344615465044755605094503412050054257153075181453862233572193253993030661505026140619324845506702206655858551459552561525711485015542994126670880065692683817492383756001539896023543238865838936896174970813686517000371888201759213318419863989792627696665529373443969665012391769023534538429883202708515266302831415607459649119490317080672601275026945155989337388906365223535250856101870499756388719062520028943751041650751967887057960903258353926823387471001167097460724882147485530717334828037319049636445139294888441896785182198016061567000909615611395508833056747036748606955449422601446669098816670461947221428856123841747361040831694807279894290095796555472885631880360408576139948861292939531844549984313138797342116745544195920450948244665790649011572328515534745375767164133986442771390178515371685574979194844776965064496760916628668309143712131741557086437621813429049968156005678726173901728687363298653215954021805075954761120280516380439478371241623691444550320133829673488562399111318952412856869732299562972306087231596434227267470721114122345603730970918602854228127026610662070290578574668692217038080305492961435347379540314750203641389657118641640084126284771709736243935713259246786992011054368937492001713003124398521874705367484342078086635857071447781163754789601390160266610993068564992934860805741368841200506232424642022950321610283020180599990047493578127431861835041475862576274784999515660166419817469619266241041240730583708092005853489826092327320051819661959226331750376279212578694055239459863252777642625592217258751250615768404926836093715839450964733441790372820843888756428662890737796264139114742961369051227432756194076804299801500231752388505226037418382714408312524598467312789151222159445440658436625343547902501328359369076087865302741382526565928715782046609808962793907720213204478906853852299094410706663140316853079412693367989043913700117195002260675738444784252055215827278213539287481948349213104725010716695278160994016481411065692538211946056669819780138129110013903941755259134336057339070543500738624751956922199017858637043003150051826477954074429267354087341998449962887043273744189860692505018092782939821137941444427537041697523705117660538624226046867402368814112555487684380789488542868821500213165891694026068177036677460453357221857109585624161833308437921434588920395379148632267670903274925666632102222240122702052317623453893511028071087433359493747107420535807568206910449649078774768458643644010384912754914571207050508380964051410354147705286766839007469116159919392211323748404527270310795147455076485898686530751683854670334788831731643198342042156451740666420000571057521545033694877788898279270570369062129734944527510740640875757078704060458253544105453139675292650147327412531581547081233430387750419329248871063028835457868006197219196829144681232262179079750549236084704476241444917464289562761671844400930459198915878381909880498402677712887353131966235937626949253595740793619649847102692652243787936442611389084575272593105259917932008300669491790712763514092651520428886620616445856733213890874381614262180096550155639293721043199889250961632486419104886587544220276367995245902018435922098203466206311751815151288423948842703178989363597884364803727606943216316969988499733044161311974328448517089478740510726187514192705726284289111869370795727153431972908215332341481439440963362056118040566036262809214984914230086524378513418093341241935166871352065499781343913783083262730931970829289035045692960637438290259782394472782454322699528490422595556010170861395219139576609721964557231684350258148863908061913737628170545872326843996097288434930183631373735022149724121878642442583568383302857888717509260286501640323763221729693408677389988352781598176282054948360952485589857922154074101613966015256128852050621997030027500914140163729529844496388285928083895051862550101176513906526485669561284938890656699624938012947010821336855693825366796274904325475034791074630561710876939804818047836553155162084545265464822379864267859843868749260944002959170412721837019163505197130737772344878784392068387214578164524452254450413542095677685050936479239934597195809006897261100218909299635203165677890345125666082437653164863966333733229919701656101154411141896905726391407719738264621574807445806871034939315548098664461411426864198366888215645794391467210040778442796730566305297654177721148205279039332120609310053924398879142362689175440813790341695045394450426574729694923966458026557438476014677468970994834949270471637542930854950252005378968912299930687323005500290591175290543095729062298841117514800424651061649906821008471275531364970409065284067649618617906054618522194196171396037707413772399781289887770228413355019369565551070365225304893121740013458669078168387866714838337341450225154588216827556002420552280885920227200884590499944501907695748656929718802323781850369820353755142973907631390013283091856116956606051822316718077392860661504547872271800871308238347225363422296356824577811518252845394492122840532539845786097175176350115862480564679066853646723110214278787429119948864036251990033169274172224944656622280294352526917887024904174639513939553920217710121600671937199776049986931508195839560254477029795916928633655881627296297839455511232714003673619612445100711460339099803080556633862051897131853398604818931145486010166928814098543353709703046159712189946628275802922518001229243920904089799408720324225599680478996767631625972727307561107538780907609930674615661188686471455858996482654946185257777854873687240235345462517124228178754925818182300919803988592731139895068715609487954222012068390815816243821874078514808539974160729689170555458897460556106864920438683687941280864571579512266786855392665733470164623428675082437276537259362711070183772755426078072181374328854752607718436262639393743690622333263455748892538867002030957859355115073468288487558986975346858297649425461127181636021699858676941642956687091404509804040396930724567569758149467586778168854394433181010882991067826355793760520217725664712037467438021984364319557257304542620220045315987054639011103996939733443487819735242934162246504011984787008351515968177565832323439189392845257966929672443930292787013870185334040007691334596789539477181298487749478624958722472041654539855701842165531450637290612205096871311805077963881174276768312680152413378749575215217058917456875405731003072323311691368347556081003897534329365047803346159105572633111181358272590920139947891959868469241183091824803139813830388579476505249129366352796165292911528753567065812417665109788592836254421985893978794646229026138965966339951948045971805849059534294708086657566643431198782648436793218844351497448441311129405016888580853758637956235118490912155221639629976756161374289848065713306347760820330658275905996370685756455577255557983961198883292340497566851152636645907871877600910365078302092985213800701599409697531860835235275814032172940919549866145248608500444656479747113029760128888038279695974957712449658921473649927231221223087228058347718765326237273197185920222909799708021952394242728254928761254428033149503395201331076430673071912959218977224987009643384683427613723784653956681230193344096902787168449587409205973314433212948056596948843360208362923290912604592741137771448535747591764168965182055706148324976866634928205323216940052520926747022105310426059899728106717353963074070773712206438296744324662570896970845000015015586389303722137343550284865455755774372611310641462252963636434801225273658568538514289013246393977780825059241497870270664478560128882671868107675892900421423264507901607208427668800851738370414272112725547152096786920887363836873440130659916257455320900855380544937272158278480411425364126539885898196253452221434635457695301903889044901702614329162138966541644587876031194342307964411192208365780893490146542658634355187817611250803124606151028703229621924717101877621878066541262913750360508478483476146843674644011170031794743846906479823684271722446990527928092540134076369039457396053103422395414942283169081712411672635278810049505266275417624603247986004433404198811317352332424303985565964634658648358215397818583862207382276897198230211073765987361408913250104774458826691703980705229417355255375408957008698771870327261550748635466633773839475759796657427187334380830392957568290358151325126795242865794968588719505690996366332134764170145630037423184454933336874488176997582472090241131966140513168709397609259407776090287004250880433444611459595498835313047442333186155086430970871614226781055431632054964455061395179828675466095830570753661821766211469555212374679802077232858372447982315304096920211313591871708737221281888874890902489512810512855565294322443399865136979553120744142010397653346118903801389516952368217945275554932882028322964407217041880717338940198937233143696100296740219855725820490234602714296386210122152570876837578501950760237432866178390536265473215847892863328207761760713218925022953664343377695044925949780494863216387408799442658383530227639750377443026757111631672297762011041723210968297503835446770441216698267777916738166236205962544617876636265777280227521772718260857061027442811138285210688305477424535795769000897682517284707458427763464001147236009138853671773590391880973723542278067389032988879455038008986102506593793498850734742063779577694505945816785390095391562946759629826225150306259429530313658949878680455068694833177446237273300035896601262514344139760512349276589074432654057439896513673007359972495963170483497994967118799392086429234705359623976387985679240936761573323088883035858631161970587124186116648080745168650145204284020760510060201324801596117854570339015355137497652442450316141784641719115369077257643005228753759459307701119784306266105261132668552559399134905174244088286531386113025381714281205110113349966001580505879103471806828892464765342672821845782505565926633491603008026462076754665553013738757443782280715842193052691985725951825500206661304948743366965082699807279917964723112826346234351546433569492839264046975049990810995392395003570840330314709202937027536155956152548408480908733291350346674517633504034538794044983698938778812379605632928024680506278262830606129705399564767593263259411366574823283650915071620615811759776491501984771427638958083295240812623343931713821168190550031601029519585705723210022634933379167105745435973479001098936879938406617413787164227975349565400823451550844426124274085418543776427772344747620509271879110649318630211100043844905961978256238185611926996074344291590127926075510428269732262201552013443220650425521953322278795129883138896586009245344552584609242012386168486921132151086610878435333718153215763105934777044963424192446323783879330128939504247525855865739069064902315507766745079020306842134145688655048323846509009488774146848732184159884506155241980178575783422693071023209525080663056627999733880023605523954301546438113611648787917944071528214797788995587305217575985837717942513405670864218536436799760826082069322648684879928159715766745755107635724259099727798504911016471388601242318625233704249256628964507028737474089724868681441428271676819104798721564076314084936556685658480988304082729567034038351154003886303922222225123003709468121841772618237899594106663641370147759928232042488415077238737679492419969980110456619358064384436965025123584405897103859560217318408665740773052036920830096520911894076895282967077247739177008367409308230427122769862711634059429042309033351934266042293871204758400167865382320805736980233634317713897721392562770281679859221379901070136980326548324426534917238522845332592116129453074806167951348935264905814821542790399345355295889348090298751054309594695131878288873855210660646034221208486894521048170839114928755219131146947509539108879121746727338965558912692169003487638710029798556387575504605815565766678807398223065975005107409159787312417836784894348836954187391886133840033681137233805893245609349638200745992102322024662723891693332550106315740264697310589201185541502066571491472088524184333197200071354196167590775380983412944590221081061268714546120757258334375342919783250788206109927265617773259601520701500967893443747453971276589546399304322781572466301305903657592606252611192498923446144131368830507663817770352575294154141940262673600992810553366414935042307598742947510860964571589277841860610841794318572087809120261722810532242561698492481936888668404794323039911914080034385320790531033873655439734721300601866006045024056183449553389610526044017784729888255694549856228255786934987758298862070398355391917086297731571558684846364319593594599687047631141769963273744744735820970903709514385237977362864283940472533828488226788269125409645967383465830831022820647331385238195630313999826549127133859080125855015406671736197507451960653142952116740450347100850228874201488809915624985514741029979544959096004291350934953521089028025154604788017041208465564955421891944608654155295222374601405003018020475063541909623028737778597504203341087921050121059417436461015622056917804663034450982659699608635821646440166974081125322198097863213234145341869791704400821917939592935345300916234207859193991020470599353777614897935955822772661139347510563471193007125612167939206867806372500946301167902985486830272293914055378130734881499259810371640625027741868210121816798618822351108026065727191840039328015204616540595779227800936897110980748162735095236759415030237505314646947918826056175085687673761404975775085302883530740632286040148547234606402804921875594923630282001285758139295857651534243910348564341846942291321012716405249907542577093920486877060778897374217644232264950081284846104202756600895003706612330882444056022675864072231573445358143350822824744092197532392742644612729947313062311658586167429817629838446259350716894015631640231730654850405076132696392318955361145113496617223956643499582623250396212685846397446388740696535765170089344729077751574295765492918542004589312622976381008847904380669708103085274298996343009579830450597319008583571377954662615330738951614805464188450389082278387990645340284228409723189094196636174780255764781011452636883648281786559830787760993746889835585542743954302084292565202992427407756908987505936573867093356680304216421431860510947239961295685186634809014308556926263181369766639074245646612595144245826295738125584714749183955591969063355955984447746409839322929142328489322530232392302250093274955142809132008918603862463706236649968778417883769382585994206129994749642551108777054226909600375535361236246283069570432687342691666973418034019352981243672093732783781915739096293049213653987187609409732997274314968334787433228405539789346071054385748015946576308227125483580411230424214481370530865279785121119924395436334057143737418495668196743902186436446395762394467552925306705039483030567184000292055302976430280085102166905199748743152111357926857591390202887472916520165187452250674745852785715107286368690447890251832574823199968961930913697873231692344017822310236337097149584171996321719223563854534222234787908820818495608551055609339544983222153262789466798711376962208849493106403560250548317558723858523139771254344988880595728105457575294433714526090103064364759293138506894612524477874557896399795732320570629378662357429466886953478283563300201751143102154382435830890537596236104899581242169935980402448620467035033585846886368745226924440484278806857217969822723383428643400621194360275673920278506614809422254443084404137485945289294085943005948852620797334272359355632048028814488481429265304911846896050621340581731458210570763461480141118866403938841096974127099779767184667579123773106399356947904345906910406716850142942864577216206675822668285225376902117797948977226703270778855729961649807630952739601027236707297036851164764929143576444773498013545137939127866792660241408339297573717144058577516529891698162657912145305402408354180787274311483627722630812898266192091506935798828718199257922407830961912934225208073447527174204241483661731712626483753236824143317402977065778678268037693583587256784918566845489603732839307415635492776768878770889286622462533670503302464774250044446400476268101089395313420778870455507237332782212527542512770099428674125749451605923307766801985135344617459338658299268111317153936635309985771074365912797578710437426160078010887001662169621832627914726037016614140761096528616739672557969832100494687394171751001730975345628442686753114748218811215635235948507421403411517569099752088718620180673747709783548624487603005073026459392484823952927166577129435973013027143749238423517383792802418994273491568892688307338400960693221781385644526960123724641016037050299431006819701465868687528021150109139179536222464230277060573052533189891011324241019593054610946563262195349449851879195243715060424200737121258428040550046730087765682965489961368527973373183217466995711089257840204227611205992741105790254793216308227734013579346529070694821925194381104266835133290197614095532138505567493614179523100923117184623470701731662324602665816498459421592060181007825820715055951272873646124568589986136421692024955973905100908591537466810864031041509917626899634292154040757932461702507031210557447433680348369192352232918212027141941135347595610652061729427605160187821911199499637933807917884633359891863285234773017588960466325653185418330469053405238757051990808113504773325737365205103921179137506874347413976208000166656649724372363712713085713859344970681006613769280372189726347707152278594083406548779596800454757110089101235826639818269113981896660008751256697354644426160470122018872815774335054450739990284950845090492878113501578697373157520097502205470960693574115933859181931615734049521908264827648407319798769075857531376496709613455954874277970873909235273260525017058897651685746308280086691265280176266309436739314474254602990963892490939379745918836000718389954069755945189628916177707044025441474589029067797421133860041060915804108603181928380198330501322501158999351633747029042787137194745110939867501780555259347462138130806473954188628540774474100879290737346706067747770514513625960558544628316361152644388699601206038299001732982806251490849783580925786081064962199441284398215652281319189781895830294671453141310994391855409976110506059192770545475135891116519685160870041080729479977307988228183357016215174345588971389164595044546670809776604727225197818748321141661855106414581808838309651609514099902502273648726287030256552411097442037346498153777285038243080779768540429221817875519821455412235177163838818109812504115130411903969545503072096799823696574839713513826433174156887335476935136657038028800790746095880025711459679996537621986181977364209439468458603699450914535101973774018737444992398550880118442687899810596772075944817953568712640998215826994765773918363279870137013508933499860685313561491633725848266518306691963846311136949149922754319647892020219275529768443865071461719731549977466926473111881385893731590635463678552327246398117267067578267911664096304515977963595002717036829780762131728552650154924306248451074299998698878501978071745260775568743317371095264305160158264279926845554375531847515163656036353737690384491552385741080233269643918017429989606775724452733896471095610339864131536743073501637321627795117708077062040728794145285623851852094664431699169343850161844932992407834117152748160986333084315430409525472460613367908086996880106897088762983027448498404779143795557102263456485882672766812638583079306757616209051292323383530466610941445851291749601656278920655794207654755233631283865843125519785415100858526259267320667882967841904892221219255761937839144391268969246165228752532854800672479260578645032195328123774577074689327851111442201297538839036677559288681115943924594889022528287389250423195352141715747005574963738705107192540216924880993329532684534406032677154361927043241301176050754664709723705951966553851001026533283327062420708680533496616900364357602387566430016742892049414995334524366753622851047252349964316024059549476169457254667480545826232916015178640494608047336707748776822859782438250837434596521496362914298022315841503442133601268021706622859861397966044072516579735763969286809951465820729329446706643102932868484557941637639836208298929789940302776591927834104967052593759302610520495530840239951414906276781521426926881948440635444192227985425026628510146854916468237379104305620223684349051151927620419705999020071455201808986886833396997051723744747220206766379326151727126333349355664566715689483647110072301903346654564374427551498445213352499360201167067729539077899542171903687613893441861284431903923088187078105328951546395860797383382548579083123750978154981162792614715606140654444106731588457616373316961104837562456993017760075601353755510931430340943885465499869218402217030896314876710827989935068644665709945750074624921013207542496526330699984765335572441982980472348599249696762400055266142180708006578976284907394770683787919437198542100035592416310708288033354338889562240413143709950890527874310727510511479708083138566611032886208387343955654593217140587017932321473973189302899092006108347366180561026415330788008465756066521167820536279351107166516701991382998927374116492311537131119626048494133650112228586680285401660710642163002935323050348445144616527307821221033852890165451876891284037876941328873962897418202627082005645336021985316040134416423167988588108490355034110783900139788409236110461639103305077995400108958340691354314358750269864675179703202914978393236201183184952029755183398782748101146137569516888245640775007382668857370050362246235874829873767889828677430146154741841276930146876671959450306873879219353383882226432795822016581794629637861022634795275168945212363274453629763749300391560020861491729843850769424003710705724897512013953816433229336033200548267717889409814529467820389322167891209624430572279474522178045139917807064974114007669674155592792217301438307768011280033647585061740841970176213319779265799900697503140586864190720028879247193500845209604981895855185824596382473582814813582782523139905639790908355429665810612818207544597963730525505074052333134948024736383389036044984303192177202513242532914243693921061769790412185417121962881877632856222059612248466165230037786907845075943684189986197782359875999505481203888218261353485040602402630987111530123314934837705029155307642672016062005045478135224359869801450039258240226694169676777694751882130104827524333446746080140167134658135758968021091675866867030441847074932972244289709513475341970287626530937119445540746068594332155057967931554787207143591747480013531571247873740421252780932551574418072907121766773635174126718109590174176578427428574080950532646469938894561821861970611398775224582210804024911041966690670445515829362804141112275072906784618931460424042575360851013895659941126681279297728677446908315512310199060495394051811401471015682161511166638828116311602697636844045810522868688790151477202314918279452977466812875020995230399496975040465170107309211098920923558019682463812559453531582251353074098279395925816018494008915388529054025122997377838874944243846531188354238256277801306902051387790918821633166149411876170972415973357604343115198107527452404767763485213408427246470840524508066704308833716538848855223177415922480326255466794285688299706936935271029237848416300694156861795577237367921947457076172879129593999021056150993120464915688077948781645637861869566416505824956339723571538010379202286570887606600796349329657862449191997708719441098469893750735633484136662404929989503412043292161028147520341316552482302667548008294061000535364314121809239642008974723150905447446080315997852706260922136052762491777453960918715842243657939428049151535430723512928900174555450470040021526656292821553259019383980498227491652164516543600030453894455448417775338768432214915680390517174531256647032143230575866120239056036413712882158352155730603057561495113343484089048856644226347098465374329706662758591479424533307712932452823264675866357188627620847986210928832841598882678325160423125996915012063383581718727332853294226620083815687294573277439349091799566334172957339155361743688412753351375086327803059197084114417240462702177884954489609542358911542766709116693475901892008934984569084230390162268759213767657050989177121103570228428014540200077793580120367506783171827167823878767150144728014374446956472463366198975984951719621598389233570622146407627272970120341178364428838413839457193709748027757318988003524010323109714611751717140395079208210620568267201044184790924168388941973695813279098641603671363788811473759932564381366974569319319383122906275810159295778697975615622731923466599098709769109116424241898380236368786005357526684327494781351911541774388025691013377562148847877036026652623842727055999573931643170032325207719318626094557450118630279556362577028178074535985081048016231509595456414706635311224217656651178758648745973467984633296548147348288882291809996445944278637781149601989997815781339371664388147858916722866898768712691157111791806240064587598050494777097254727310638514219307188577446247190531324476172195769663528801820725002201940431715308836664407507271757481574348110998232412355681751082945781715377163397843698755811401009311691333360056187403538586508853646648130164207135613549594193031750496637420888810618936361397185331757981725563979521257711569023639709829980076671959900727291695752391600491511960039516350442783782563729217788359941267872549844782888308730009299093861313307667652294406754170863996866715810614082881684254188893525922186689413163554198426217014526422134693770566667130592580993906712270768328460675585421498769387850280819836503980334191273587596713712458191703735964507656723976494290678093110985966979125566141723350823962545137245643565884206755816883080895429223703911729867142594028051780508833862315652897377561409960938228327216651997176757592393416192107614336082871168313750238096786817628107184562282775213973439056748458016419761745515444781850184304127441667697675696548347931722075537733062229414095428001736095369026739881405358557567099628039689554052113884623196329177569566248639440227295445845881452236700020006073427784092874631246699746054999683076058331716511846959783380357414313341782432511589256304189897549599902447180243683238716205650002075321841901413983840790074539707872018155587754350021705697676372455753377087896041016175771492480564114519201166144307333009010845019694147797364858692567575910743105781450402896467413670660413489424762829855889374244827365524479977019770683919334950825369389672626663856136198527902403310159532534547685813416988269803674211513416158285899175552465335333744015185393540555872094749981477127029672565929597134176060494379213075882858085573910498347887426870928462519084284648099185884238713620988085656830193353929450957327341187044688116611795225159052873398982147201812012506383414834205348998324793397070595359705142271808934516767251089925881848443181269444601612618440623869862044346988390479866267493368810834011279995757091663635613929490130524519098375197600520404598448135371688826605600065647741237907913837246179188292310255135112136052227112384753914248490949733257268230844048614017106713052406231966251514415419213369956579063290748034634511962131321703726611285886580761418574496350246020086355135774250414585948024460612990704294121338095104065389506452481471267823844067839491986764630557697086229805582928500328457684380975488215611641186404181159153628251239977210997118025475073295902592767304061476285880868639363070174634635891235946020445340673939216842638582910831133819890096726457109564027683596054658690165872456442904414084339247771658738931310558963895771918392381797856762789830254399149861506010823866517415258404660343751147250084207873584988824518641851896901985959660219992552206697436918696247849756904085394622768633445352325170448839113996770666000907342239619214421317520456440270635967750465119907446383282441144556603585648826366965252507793847337884069727999691063269537047105160211181900756122490873639936093975244222832942544894533928331837595824506382391239898375422170062653069709649603109307188138164731393295695685217589479295691357887862003239223671869784998452635724315246667305052570021465585565152872353952315974386559813136841517574920682472485206003957879511575530676469095632440842151881125185525809844950504993414432564324372044974561704695132313622676701403934470369929393707251974342176947943369866936926919570849658550945490487060491130159103117331336577291179946046319298883108185503149986587869818608621759620269340255184088626889373106257268319167015957894010849001048697551244385577157498167928733484978967626218609840949818994729799718491131055056905758633464733615468571093865714328058794265459700916400700125610085410502387069459525267588783733025944256245762879251107870829639560689158054030607522552359181514197995732556371163599253157292661892416762638835111703592345447389437535701014520174907160145467710679734125005667671415033632135589286337316601461016340123335144673782628026940715805962515483374830621888809654794057813613849695475532835217561906550011374252679480741011571085372739083837300636680669923108310093726166273629996437219565036700749567081361849960156202496126963308269366018936636339319574292138536818178605620262154002237835050459905966422252964722928092067300149505072732668787904152771515618501795281440744958248171417966720555516935916177907980614023923118773540296270520942615482241567733229579073976575644174446021905554021150581470446440996200934585922011212424574036710891750741236145795796133487267971460990599117148931823170430484160516519827276550737701910451488013115167805073466260978827636250674201396796013306199516232573920867875965881734554492829810867961710396277432458753276753417348992567780982576978267508927701254784761647008224017672634609717088641373630725805665707628018647524370096448992485554771907091773624455126516615921405633637829818885543455985382358170181586377002193857194224103885278101789953662721083461376922701764322074442583130010501085544318666469490743820151181358326075043174277963260195920638523189334532063033348255874863053859974996877734071469634206839120273143058280515086195949679093462946797243248900252161912332699271974057868495680618664015608388432627671572320325023910261139661994702025393414800980183343676584384659636385324159958873983977727791865542562844228709839673256969436532784290403469082486003464520054556143246433125921215835279875213427767258515638560499689827871421319429810758631175170039047000104290381658763658840606660181055644004070964151177826311412627626927804897279294746196064291398881046639650098377652469092495593939702968056757822129863783587145226617860758917413966308011899598705649283225938988984647454859382647607766398563120322195948923354047653058565564230591068114424029022168146716950311229373780333935984527314331739692937598462392555172986369581725785210240359080796700324930263673727264507630985474580644695211419490816557419889866266575971914264621088330533441204025885015626022982691010995246331069579072514528475341290373744902707316739592888850824335395281701415119510327386737163377087252948136723304957742050198137061889261330336900223676364837662448365061092625395050209494080472460468320413481934187253548874228610993225429063563042186051404981384940287111619958140726057755604680806530594187114073546081863535503450396255194158010262056970051803826352896771309094146961234423482274928235264582037604950352728265283384802922983983672014282174068122065525970772688378737130307107681230906335457991914401351911767818104936403588951203033010627386565762532121767233870610151506445367965493715602858271441020320797735950950088852461348563209736109739816546952549637429940383403251902505071110064856315775815849557831659067499780846677671466715538155008460791425547540482353576482958020520883179107992264195273018379303304196038274597045172289505411631124292763670818103284851745508567722160086136203498136753359067063747065751824645920544025927814640339364003143866206890002249781194919201217810340692646807080084629381375445688397008166979693532947833078814454052089017544975110446875623085020641631762781203819076391621424327060686713923403848369040702275031087247313763160791056291692966736744426794605258037568226283792683214962445369531392092835502555534051949195411899046446200058078536142174378070524496812309409060489584163772321373553459270041445116367613448218377450808552130091212095234046910312870903971700767720657393662737887185751759666156343438116850994048139275914176664405143234741862139001848945899115083847008179910017805787970183830340006784086706658173042880839388454874947090029213068410706285379903148911910916086091913301665988326356421009258795661182296925888487225983542819451125190224980007848514194961907235026067982160150097915838109652923569492193365695149308652676542752818106923913742061051798780782572829621466331161252421946234257319490780241454074695372439645322643134300170895265041853254180528917557367177479140374685895721771852959443099693522312266513993678589499929782823044971655774387883864627477381949028824865949127913062204793176537261407542748821402311889912586445576303502666468953619073502435272110273450887768664831256766887000073383000977879025814264880904591220715915245898275165166775831443561737967852240245924508970369069100704284859014661127745203772236907737285575795634465384488687848488829944322119423070758129944042278394582550318715107846709650196854093794658309535405395413994215985254522927152515749590894925000852614359401923494645379467020251630800486523843944063939137870362888513845002972213205654074388411711581976134096973146354382197044944839588494004797846767138083672304139499477710067414678013013364374185535389007361482389469019022017773202053520174423294443987359567881557411947656393992814569063536689364514204086994799010889785402964437584830525313410139108038846623481763137273157742889528472330482783585871399758484709444103343997366391838767383891924147427247713866107278653757670219023219995581893194942403438720495909471971071436715598988349206785325307233496782513533364724927139972407546626124463521134393591209338900224512294565218405127507543954978328448227071210751229949623335181237198360719513239776829876740857128035473967201717202515371083628103150897634597200075559394829591642315636188592548975263463035984062393200553220915148403630887722515505271160946958598171635328455499167570927169100405853763781667689781533851160544317676429889681561040125099164335790397086805533884136060239360280535631059653492331947210113334523464478091205849534523226669690676067669357644751062917692147926266503723439674513686792433840331213237173350184448768504874791540102524098464551233418364404331854532908060566661004649259601084919887989581505020385501230992819694429672890951282275277760107396733782128630588007872276270836705692690713286898030779040036502755543731271209331527549997479014719382191613131437591468756303106891722863685291461974055483276703679889828945234458368563930245053535913672243140881253126504456599909199548396580797052459318508674025266807030749737444849433367961488868187962278009225710681615423649137132770008900223630622218824543296441122423826293113486394466593137121914384401926116866696286638217438171392030241809840290803237336995335052046140076530483144593153808108028436432704992356503513865258584881519182855622660046921427298887333107649783721891192446383429156666488466310841018073159747355223511115825252597976053696392681676473326442312212739857667373529696506242852260425364472993400505598324375755649988596120211531322380440383881743948409759362004593475684906732042722108260090335713140602345794684318914861074412986950902949137987348068540378757442943747335686185570234723668534364230145514886552668123274999078106104695163881973827458453311070254901042916942538471055731174074363972593964376527645747271340095108092832670843482569735526146704530400872332833089759882411808303938423543589307652396868669663536364415033180116148244091530493050238560687390335634493495068320268822479790798101431523151639615984950423689149580039925777318003588345889013060500550324306823432455746308828888169646151666067798695291543798624107905322386135354894523612190728958726634611234527095776458974417005311986092836690638416980357634151207390497945285249570955860212122883558986348695075733951420328514157393073511960797316999055157613793592940019341375257366864373757240760566300114151008902367740553292440330559002022757121413454902100274326292533789916775476186212776010946396987765397638341193004072449491553083119164656202108847869771953681471122374595577932813053254418193327219375844349734366100564274794279602094472121832586365188686899405450671187927208070780139629328215218616300043487989072188953342149597495856322852709050328256193873062180500650900812138167268611003581977478256108126285203421437086799838724198114734637653061239527156328699556631144132011761048514213530565810483326796813690203401895080163237404810816290219182516530269656036611579722889971570352055322759685133421263696810873090924043682535862375433023649693372613209324325813290608128447755686704209624911616319557966102201183962382213442824325436615361628780768539675343187932601723131856783857217133519928209639441829731172794313881077425637485427011945624702855168270864254767885327780012421070083530920860194950975498356135089699439551713214011921190750171244116835961194870465925195958821918715394185796020467367999523174915028938539264011873163015808370419481479431707278561715385733580872846871331085358888033006723477191508515263827735932497115243888682875136229035945123180344453109955034398706047955706602338402695275030254228514873039233007763178089052210625713547639651277129203417320353656802979884923811311204958277593298595910150598803086416327657408962410335910993540140696829774189814111118428284029060097712251247694672490197083836473169978099750716064318192589114707155479471883212587664523926020956354318685115342382018108097969374559354764874062094486614335242105993783923196111680846734522902759897295366193858946205487664788841391330987581633292025194722359694981737077060188940122532647464531104735878559675970864026887580235877141685492720260115958488183738030855640696285652363422858895032683216461495583249039383724010881607430259859958647343390796327348788839613867880835141066336585730472688925070063582769165130558293626103355747309994998374175525706828798362508189903533651954472102296830373533623715146150227734425413209287900107343319001293007559666365349895416644766825674190278065475093922411630577241487523692401683932262286621932560484892774763212041230939402005912215518443849727192642280152812019492024476889871202061811275110949532732342156381974066027405276508350358507771700959212472653356505411987407839502757348626965831360854886790844959311831547559083485648844376344301985932031119152367796573144035547472137656846136159677944298554922679499894796069638144478094552031639031372181393132163460167376028661623466060253038538091914624557944096860105255921870589882821245841759397241327386432189189142961847425856778871993979278658205096822102886753648988505107669888906003288546357423589322713515101045052539983282550783031478831714664895899027164911835868763191948885725177099719532270022856320281713714214434418458097870372526080793384096589409370273072004648467436626261215447481079962387195852300812713168039886246314366737146049306032966771309146865260861012950619663442780217555380441240316521651254742147396167034635565083311570333237654771205154707864371356058824507265289170056606097688127910640025108648174218571484758566875194298126602954758686163597126476942875856197830138187369666513629620190558910216378067078902342908586283292248987332509073728364630447420531179152044349719031347058449972946804681763341426133705343504476827508636170190814483116031619756161262623874206729100824576237235088983136416907203510831629364256783050149453400589346954279580321975495987226822820461105381027777798665788945586218110318305500586459258918003143294166576362960376366811017929659618153754018363093731606023049746421302629641600475535147987945674178786309409323642458447932358054996032452450451187378677547011247674657186142945801245544419928523071814911804276273779718461275023733689334265202271722281959598157659362842905579990918254971179566738532829135569423713979325113176586615236455927553173268312584296326391267724800810863269718293337198658130221679098317161618810521963574793721363592554314700699365914627639294051920625413574182640807274586705152006641138340954349335836313763113979518019601266339408176376065669862806060601175762366611910317049949010553990615712850650000082318941682723062734844705792142627586099104031739866319136306532313161520528827997517284612837708640542845445632634669807506037002006228931498172445315754475451063878193258569975706304382876612471359681172962122104732418196330038818488050729768970030202968924336641167117269104469768324584300813589090674875007184605811142268816264461615392916461134043484042445168161781585790730826332876506167270145626039115144143066756051476404456402946707873800990551517657473442721675277094437319613304253933906599861929146306724994873260782411960015835224331211562620208596094142810700117990278892879329835365260413970281131200644073362938200706338994755026004656313962929475437368274313637046475041697069773584502555564601091245075354159471392457399100886091824189851877509020351925692597868812955399699033150567274339073196402537610794454375500362406268234290697912138208450904170894047664906963521415240868060873465229602053081144106420615850255418712171682614807810841771262817124074103102239678036589072939778290161299139378883463367588739615805588082407775556962670927596131374117424595119476040730010806891063861946277854246929559995199243073721571822671420521076487192204399249685422322845977259661726738961544091207237331373644623869314672976349953502049800611038858602628076247373539215275029427293750517547751529763480896064988114202986189000817399341858193667709029627359480466307768575078298902009200876996835230401767446352356223642138262470845024529174018758101341094819572653319513835673579067046612891368324873180488357872617564575170747377805288341398091273332818177398607321283723280191812639056072368432286503638408160602202540530340475218618547726198855696033961587762422946486931322269853039319067398663842959775538826079370027403850310096219507223670764461078068499116387114993411941191591744897249253468751603677750698644651509585625769308850651979638631059183584417174889601505279254682782870767874049775672736409496865407386114333756026360375751938084962550871918633879920078097268013038308655500933809616732206998548254353315314049124183525565538619642411243756819812228811497243838004506323968678659915292856743978728293429900280584972841164374823549579546647390431338755706988634043125044300848679061952010681744890660540486346801432951895796236371126751426536351830234594926077943200890856827426068742653906573989121381741588813831622314179394504758241303159836442127862974061962975568802621888943602545553803557012099159415618041836502409438263463435019356843333279387369237730909869154190681735464130183234976336789803784039110476973355002965671353771265642386095480876648628872985138964888963291366292930773663776512496952936463783183383893296806735741866026865077522315814719599048998889417639366389665974308488410661407014854256242251519871323734878435681143000673231730065384078124303622422648517848903827915977127904318359885299756577390335047305736867205253542338880716792672300741601943558324998073279732299354232965636503621906412399316905956611021958123402827715511721616097629245846155051408621476909553603491449238437876422163714644097978629231182587365033006044005168700051168826412004583901223283770847042558068863330992109227173785715311764877608723622259404490337776689693523355579062483295354751244295761369741022189602139633434916600067453629726581124669329380400395602409520800747398266046442156915992858192876179024235292887237445382121797178570259373069576806740570097036711962981445542093063598876491619970544604680608454465957793888099931245597013315497577170557916238814815871384155932569870297710786579156139151843810363763973965243344465471475945905741899934290464467487481491717853281625595591113835790404706781599567291840613091814227506335865433137690116674834532657752170562254953247464983387689881700836095646912063687501473300297571433701612863187200992685302680717641588680128674401836499199551062028903501395872945812271727016882232888364819649151766177983544928738632202794878726929667393703692680406597949567782777318589973769127350074981228640256682781670840051737184157855601250443977550153303730164448759281532911665174507634723513296794441386144394296792706369837798086471249376886077674570473560373035761851026671367485609881824497295562746182888820943433855627744158663683622914454824022836346754971603511585590767065777780157173707131332870563511872980396733802575778091773942267116288362682489993010375920606770822615723197156295877001091564117854243593458108055540839335238958560450796428497974343771053257350998808735841077410872288419009712137900838120381347954199439607648232893460310065272646887582812083421009331268508333957277697246763413646194257210761786057236602978495732629843123789031405536545067731360014895604927263806621876071725281609767580219854043501388425048884443503479563442131890738414466152484315139594701659740012406458972720140022290314993519225400731249658128798665833748081301056171941671130983101086049607977875606134632329930967773922939477231727536432383258974384190180435667485815517139980524797069573711826034346261409094550747141131593437269376578938848401425321586966440825290984522472946942792397988535176950788978583085345478081419108249813437897385573527434966698446117158140253944853521300832917208813903327236427984551984064666874714864447722998316910044585857449648727112351015673864455707836782675037460686038856419014908577525749325075771594666230911987376879149078484659770338182955011196472942018623569346960508514139338195989276124269829612174490857269625043873582800114286427721362719022376195408444472516443822017364488187678717206158697235057264731976749605898427896252517875757526161368019941699093920639368529092876766660304944841515001010437810353555989456731026205726767607270568790560497875696829636723587878289482225411156300509137016406856296017097130764931069747829439729912513738435311566550548286949603999900056027314920217935846685257439630239422672800254018680675558363661911684245972217556816926623867330091825781161234635584586374906650705350127856878116189228945254003166746964109013681543143031784006465360076566812466838168971383034782524625176041441332330699451670691330777182403742158847781398621522749997966296777115208432317297466320084002345193849547417820384343437104447624213844839254526991201480849902294965332212846090568636992086432623935265340320964269182088945776873864704987344894862849752656638932143110176818829001691134977124213732964467453380441855468844659204469569871341803067331620651088568195266153675843867837760332347892212153359233254734119172918970928869745585403829157894272415444089830538689317721452785905504119926927996280654666093523163521153120974974098404414191301224700076894969598641105384989778340506817128545839215746574044819005695200257131239688984558641846247573100817914564520295059661376930036658821697931025718131227207934441043493835550886967180171531001070171248598425495785201269386972953722303117325575202372431220706551563402148745607656437465620454079003118674403324163305899396519478982120583077640916008801450317314345804541979560019471781603428587020224927214106954156504823043125725017405493514666649761474707117653945497245449876852405192105556145962696951936937006957990286377863690279661969198173198095662501740090806180062323853196688261959756650583651133824093444793437598458724989430766808730432885576311828008353793559185903458864023817579245646265460972559420214759639292590176928946881941916142697908196506467951709865661742289421642250450076470414944248081095070638107459388260939198645527631191464541619520537173062650144230855941437058263729578490692888236881611293856016980973155307384725846129153722451546201582067157377286303607359935399485494357638299996235643173693464062142870317829221170418130713821712300694715717736329340374643875845527448495343702639503433063468659804199932445920937097840092527817827947575545855583303151933352675411517539529364258394867680343189038675593514807361086873186010417018430826062342199438544603631846038205721397800292201669556757973306903231223211483007610095969023600148233587838531082004277766343099012100818773829141623427217075529999268722905617368380111691121131672258821605745461740887859228401467314878871891327115356960461378799121455166743429823720521480426634324321982661980834820598491696373204225843660298246926764502856004129368354908999670528893331132889968764366715172222031047711730701833628488779293269508241622127689375693480035626676183310598247093388656921884130232843694076359717207098105320318165794917406246201988856604163728262389045727817985127177399054521267675325051165465366083627661825696303906217676410797358622175808265757871295021799907635237285771540268861729051367578250194956831089234316719891122388000515799912390690445158552494197997621846862239664692234099096843749831355999769161374888543581121407925813759322615089732917048528820336379182052150436327693970011545715667856067368820887882882702759286842127454889794862599411299219178492927617831113499525154504982591725342358444764516484949757630176083860883840935608645709001996482316624726532690751749816471446818352678640250685581152875340197631047600380138991389146185442380467128817039545135411446311992736400158130794115359638548817162113875337161210628013651508297072836556742133144495574945749684538998975408565968846547031373486676039194962508639758174983128108614508785996064538018234973121963739410039302768355005632367119313164033431402030901473890162834007982913035060965907794419201463046000433178061179286312323275362350265020835454331625072117582198654184535311805284058414993735744568149446993989679043856126632648331111404103985274129860229656198594915853104531486821738602443838660017296697980763194486092166296506321959123864737003628355598192250059152079304269520683553021797831999875116549076113328931021087220474705008374017644500070755537768480554362953911557905399555232627811675350234715253450669038712789954084694474757675722888923639989059928312422008025560963999221110953589863025779796320756604227962715266865021865920126332634283356332913343621169667427617835044656817437319716633246341822768263922095439928924261262083957057771988339530611303675665870695871945328263192180165019054326955883068053959291410852865214724728203340882689521982953702223159936034385170743347189193766814857958665902687555418543182935985430409609738736921508969530487684883331119194015244058581364532142804924821332040715678511045848955337616360254474718106845447190404880254638105255430042941806923002045892213880482618592336284863518163713737473194605307343284102081766139211332240933496508493035853936466449001584275382363407895209282612711320399983921910379399863322731371871432208716761077918925444350246052162747452507452912248642987067122252879895558291623856470893961895633357302809326176455932810348618665563842608308264659347104415126534371330801819169393515878560658976378811689190808566841133508871424420840632844847278555698707442014099624280899468668920139656956922098884119591449965331415715918825380608156699364045477958487782545524194906514264646346454376191252885523236942241268594044317997309071621845197113259352743430670549515599935959466763669399895249066144220926145216023428740452239029676372080458222969295351525783918453609884319224615282332657965443220543051535986288027995539496286895836491704820684826353200811373686908082548448006126549849346305221786379885621829163354469363337407018483225482549943152870793257608857088713268763365981661648010942054279989321210646727800927142725453581389209245143709167807924982270556703879214969211128613247211674530321569465375009293423541899965422778670624873937956725672075030127501253795605260831149308433430972239868499452822367935429883419882753246915959711035817716083604380124037378074336062161538498723884312063712558998346473325498573661596367750252878527798845000021443511838795430410837451644909375707868158482915153630196771909266272952420128255564151311487217103710151529082326757934873375181709400781100869504894007116595001685260210360647873907583107540162373368087067668986974006707893811785354194576619158517794972703634683956580467989173456876775431772418234774847335307221700390530929396693585252064248217782180807677550951402604223608611998386321295006399383579962567623247403640303284977423179138794079182407593622439436738173390022773246821287653915221867813879222984025159663531511131791049590509785231389053932215655051543302178469695158897134110242686985187018919240192433206441344587755383879775401536654703885056067203177543183151049812265278176242128548004296174970718859349426983669996130154277864686601647053841555352283428532336987635553158684452866521236317869279742281583449530205993127588315310554297609616896287428105400657531464131326128175971004168105607348462817469813220654664661169227131126046105572877467620729874843689201037936734438163601956526918789946321814602029460979105810503857933947277821527059443644439505588973822001750100444623562432085085701190315177869770246286176058337069586341580983884256788018830707835196561981754719451143483066010636607435859072019030932327414415068220153364896090206943986284877799420468012765454522587247925318004558670400716696989987520183605765575655462909635972075419032005326302312287280655977339659792785445207562666363828880828051803808709695395694234949486096878873487028333519375716814871360966061021010073447771025223441303016301816955622747217434405056020626255020903141831831165172115988870304981286770756881517654026898514487554674945167017622283850433245368548991100903439449861408873494414346330717809496065093682521316867496419547785917193912850150442844789216578673334130637083971250914510402190280956805403735327349493089061475483176306209733239992946470210193908175886827338669456668557542913184496022139826881284999817484180168225569216578161134469956522220870035726193853371513535660634350283109006707757989253863448765103125565324434914223917546123837814073655161003411347739977589303503817020911759034000977207502982308656677382755030550354633633573954839291568723121550382979764152413147250412891904277112083563164002560516891479789328960079435737031798376482303257883384065732193818417112459003160176396478115383883080844161166381006963848118912086224539777461874136837732646999959520881885057416465390708160378650363996826860872081929981455681304803306237647352825627938644986440104773175148433215010724062829954112469995629908574376919401684542839628171851818661549343082808946147132122395574915826285373496439013243631912845687814429779844435329956032419934224287926451367650992578652275181407401957229526411091604509223755068231898959996153501600455034629929695445629842470415582865841227547873389507019528559629817267504750860437654459060112993108979385148722455444692790583592459792895564956106125562861187999769687492692035311682096490693303359958213943171561224006591637829603956699368613639292668486798444963038791575381385641138549643096016682764406709345487631252652987777582810002054351170025914266135963957548978853856064435630669193689209912960870325364631989296183739646618637897634633217796090320359206433233174608043287233452292719152292446779366222957513299486935518935500826553085479584285009075465868333701558102058857018117284680007812085596123676997040525235783186304413755889939607800890896358944003817733587195268761661801746715469134964674114070002192515565190139579230932939011780643806010518686208122814289180454156869127904683740146673543517374573703032934471440258144623585186754547168779126965049864186935544473712514355093557137824395821711146882771366130120383915289735570333482438539071998714299635719999940943998590014844968987709121693437584698850455406447754927721084037263611738828426897614517809407026160383860489367870836677281900830954260142994265049524431001300183921171767209418937256819912838685919831244879894086462192402573651944772601381044113745734430954353325175486390832732848044419115712373346897235728193729681798986405401442370509456689081382357167637623977070896521706525599471156271076644948347546728450302411532299832591172054713718986153889642433715382218674278291328589616802160986585866533170027297084863048704045166289321463387684519484093744137388138383811497822773348828493238645540118964270269388938007361039021347395308851507744429450942029733855041700105814430747106341451875544024492662054148549361732714940337270844508712904163606115006661105130267029498551822442873165834037267562036068243981831772409610653391983844447542047142117369665785536505577453772065740708826377680948919589213543608835642868330300501939114498871036612306268400742581272126860622966233560291760164064858290954297962315913256488096017507565519468561942483573460186550683998993811925592008673377584498044458977077921675658712851911074123686219007670099556067830648696840180571747301279170582831681705744416048204553584916667227717304670080438381137308442101164802223484610594893209420828973242653462995505465225223084338155491769689182051483770074007271454747004445157386932947046190966256710979733436143757240487585567620671953429907666668420246028666215141645983676503938141538372632330495741749891876669304239526039400477298142146818687249617502368464843074464515002660827800672277495628369618459588380298629333340704432812433187758186426598953794077162404536406168580660556966427059830324199659776422914100718191557811689497262202600528266011518759295145845096889453217333591716957910717853908508396714726124639044351597380996481817233902953363377451907452938984258618259684986150468329339684178410270079356038322834864795142174662996084285653655968737758719209198107191676399874151210616372455948965358533828382100976659485587488365107172775433394998079792634728969787635477375677333584634187052016517054688712902809236169992358406778845014633562501163387547086370785655532815417820559557138777041309798202338412347828665136273908529597163277068037401526339541516568579897277880663459329513333741362625282143722653191525849313424554168982109979548534238115839885663205136125295780819327063254079451578975185826847048309861930805287810684040118700719419693693750155070698652516400442444046129315341758572296038787033133209764261845863516986780488794535214262254541312418555326593332589757220693530416972655027988144766190529949559592802191057680142151007164431712790890683087327719419735404027377456113082799677156125410833738211646511731355518908240005569648171278343130163306837663762160875357769658752318877996812135162235815421345925468504240424157642213709229203935988398076932540325102600132723742445514495147008148570023613354226393050160123689515036474485842998568582011895205351149203036902806071146938457234438005122572271769337030342041533214509757540305984812332142764741062858307545803685740303040860877498803998953465785817427390714721332470415270477343921849404554527576941503279981340520838583123882584715255583995650707944578308337235487942428515868440721595131900246571416869991615233243276410080130130686592087016409717020449133767466931153457922225936875466640832706469644344025550447749720178158057330942864285873982550078128616948652542521429421410041856818736730724560971599762475431795653209796867037077425450297573687495967532582482493284385411815116580605522510402575276600254713328309749941581003521901342034093303617620751900332437660543473850882781519109981577985649516634493110102241207042662306682557801985787700686578537105734878812026989929009354319557533336538819261307840733588648094116275704775548907922728595358197867452876943582283851778256019335568806992164147369724583725434755922154718837074863451438724907259781109264946877264577604107563760532076481636443467220892438685584867060723540318200665657682987911977577079456154983643387887193477753150126986340920658152193353596494108029464734964849321853608767811442523915395287513379624977268742144602519775486681691358206747231670017192764850050608523762463950452826517530142930916548228604415979080236030903694997856377988730087808321542915750904709867356250278634125128583208964833155067000158057832415262908308226148460141770873290339443217545648416833834422556340185715841018159667879491960645925468414051430530707875948869505467513878827559712295716126849698569188920339475627955742710482865542025938349731159440880933826136238223149213694395401609368890270654760167031626839861378842547064094756267600818222839079724937585260474482302407542360337963361803501254097464454444190744900766598561101198494271704180755386098381043089157107995561076832500332805591441889433300945144415815442539483653614010123245923909034472554920415303044620233199142564635956443460392031424199071703891543421014382566284881973830223548695155327477718668444170348678655826648887303654492136473741927531774230090758763348400319950263127912613918233673808079742943757603628849208229091536387943231359248346174131911520402559219682910659137100152020146872600420620103567610829714018699877338626132282443157118925837865400315816425171726206623569284651481430528160815457967186928100331658480722991141588971450359275687524768427107094849677345474918484969731843692051815905038699053632500146431339817618956757856724157360622080687503452754595884490983715617790974705544680967625301744263533866270816158823058382823405022253532564642792748981970317172586711328219668625817598670969914681544230564112400035201167143345413839869723596903356517820243525160409201417693972580329488257939027982745900361210708195334022602636583968205715446097709695057140640766794099441894225328689623891792362160751657807702088484006263746818907877934108346937920829985065363135042885696015476753103705645851286609539676578840700070163034220389653748656064918882981282942285322263362299223351990751205216383412114963434712333483364048464521906323947644764596377560454950179609135352752707355819656405028769915972482735882755301343117714869568188961256095104418352652054770688879052099389999932070351932031976419024284147941165699995799179615060344911152915138491715511383348803371981102141436278416671036303462660986135806003348703509224437680042137076188360046667514433273808039295984186246122091017596074247378506960406950624079664282674819977735238292165322897974511200332496157792339232018027100485189685003862186190561801287877472848776009034238979112171796765606628893674089667573034153167505753439108231569775117387747263276072421120004563803131401132353961883959451666822438691294796513083387641455303394744772085464461602870583625383263961581045564816012898788219964912559622680274432507878656511466482587535029602357881185278173999241652407428865252052094154528104119457125579545652720872675586281345144186165545557885336295831833398065877463467863810800652235141692999283519940101791028881168257656878926405903727432083312149603323139235325032269846217985020761200900897387558336704673536003628153582257039520587119834942220715266827654004874838723470665962331130603984085045495552748848941333060419326348656594537580355960056194516529288329267901092042947695605569730430223978570633171683206088756683844408634807552929468842454882393104920519652562602782266262675604789424832056204694267849410971966268588893144519792302772540252226512855825876278375470069268351696284932217554401531341409023300702162181206751335947129625185184232665931077187548153245648459577033507095785969083298538306285789303082878678911163573838196777370188743484905666311455970780433322861902852999254836046747909938924626056014697310711741978146936363005306862875508571356428385424553457847016165068940990482373781960464883475106502655398470688809471904212718482740591069075653312064189340218899385181697928946013382409903141752066517021783538247810199639295184451145438825276629321484339082946370842089699436515497968886133033956488127381093246964398378773325892576227705683820530896905223650830228873975098976383251375806043531623510537328680793909391437787955942809069163525200816684332443784308442749813713374808683078102521171980393650021909730624909448867908317326604489107815723309558107324957300032535360774955845726609891888056654674831843520830510113285126847882504665377755073345952864436235630989673109079399151878488513104563182643312751363051749965811255625360179525476215824259969044835538720113187028844786255849950312637107530823869706720175846023936710581260967091898836609015776658364822001774226077423049639967394302487578127494443129161215039367326244981680301337676469546560738427775427788071922562382864337924447153746984674606951774230994041119361698979536938913557389007833879200190273984538887264829849827117622938605623487873610639293285002550259497628310956490586518675415945301055805330601287450683423166120738124627357821538025081461607328137453575422700218905270227548419913128617066578014607543267452200488220604711409715321497977864407853856043929254457906586486822140778928771240098276688207522332458158832910282535618455804226472699589148102921568933482876129984365862243585893129969802522007715656082233894604489556431230630823769609201608347557877131110932507206726157881367996880849524669011533849484420467840200452130399821491057513089648309806670380369267128045743660416707237862672332303484410750221805797175834751357488752165441592234627448842131601065347662394920039159991786722025543398853508344776054337146363152303579523852911751945904598378210918733973808356413130770061420105200312500269110458075130640253009440681570123148574949751149276511261472189501355095058629658988091537659805046451749053104831119127697891408758932130784670164638763917585591551534272579582340713324188018775917387052697422313611021200626885403257631980461797543604245326818415635073373514843556629930345935300675314568496985942615919538592508065291759283453004868213583141102521656062110155586325497229043908041886508056550140600628466677959164631187085044781711600121853054117153093383615817655117446090571589045423863698300611842156132016435653614516458101133388988293581693964175816950467543100921714435584811910236059436985914948563298053874021515530110902351237865489601029226126308404330256567508657708514728838061739538458656721948931207932528600232352526523690296740759517373898279573581665206107390912129433991305081447840997847329043077070809771998020267253623358912586622551606146608408835718454484836158428163174628256453272275629058870050828253386994829692123641531480135766117994723164124006201775100066153605688024012715987255022280379376618234651022227642136592125987059200498461527229935583402204452884745526996200668560430729921143624832131273423833216591936479053192604741511966073099896463321543450123549490738891856712172090052387988492299067030030227981730019838085020623788100823036115696121905963432111200241914041885746262616087319376868391325312323013844834625165387748301992402521017266401831492466656096975403000773057048686387552318232293111302031606319424594462095393547662682281307576152692578266309272896335181240051014368141144896650134543090033452666667881222412746665992181222146837014370155196223070954006447160862789447559927460190396247237207171358440683392336709610491768451965252832224900860456549202913615933117450501933123334213632700565345060042671956294298917661910998230253932544767349962273574548893870241048596143466095555154128348206891492514140264663643354211736731738768067506249036801554190678603950863665437699696634275500498484746772473915425984044779292428443111724641135082815513377995751167223377300474504969846854146864870763054366458247892797637039293223838229824635802367891870470085125490114219555832108581247776569896272079701230056505287524198390210757782085235169672758504733500893126749026215495958662827241961823948995595322813016675165154874404425085023283512472798917593517506912146557866675264286310228277761632294688531874662786078759665598695640754182751828166707599408943491192822967365150919747661113720092659420611797713135561540012931596227284579647106525934452987585635455606567875888502488764722891600644882183583791234805325089723567903894002685263774690628650879526165914048948549007186122507039022570105450296975017851661535519603256342918566851133306776607499150188384491257757161661921544200394943384323307373109822861703395861424796303943913948817255144503379471938254299911003217578849912776807195303601167457906863340862651636175859706731380669969599821647964580939223908270478662748560740828843321909589000721067337309675898127710297405184107331110088064066015803164746539042810962371596735106872484241585569028869133715948956927847225356934311344102222352749885929254973604973086275855339511463936096082523078674430594747635752753188909502258501054902831001828314407707443781327416709638166739650698404932596286884374264268306157710478168012689030116364531314280948505086357229546002022215080549481821808349528905010815086239476266008150020900484757109441642502376769384906108349785530556955857586127825631083669640268861756152325262548020760296223778702362320210484495852456385509198362322601515711757632748378192451764096765735040080813449248798757745305351489326410872441810872004903245317718010756603627248496937844687839222777068765021219663053237088121636332296061302145796050999096176742098492368774366797549955862072690999584186355611888930296450012914945094941406332027717868850629389681425925487395830904578629386078005602525453686230201074681994025499275919702981505959485598911933205905088074366873480790607116245042286941731924391247275898754529468208417758569493486579969511773913468545104286751831487618744071001092893177013422128845627435767915349835275586740834134528604372126365310481449219789429126192572581585322116080689527965627873800981049984620662036422137775467638317078061384355571937469931165400057859445025663443210786584951077385284566537640641743832921339752023284526843087459315497571049540882123022610971879040585902219505758289730808140256834626199796927925590865791690027407630251076374941770651062289918868981015625557215888839145765088348781259103957288234096289435300090160404139061209279654453311947935915481524551655410651535163416489265154284948149719404896130285327975139996179990875185434084054942179465804923391293825976853912324966311376097543450513271236983867298238800484311979621980693038101711942018266295792374165055795676450314032361934780429159817335497923867129557763067719818472724267853433785873835144087631903953965103127791665573245616279489175161455895021924349394011823347802304019327981582849660200291153928811509687065425391680058275939129603658826123060490521009317788590409013258160330239697534850925412584595025941227494170372281461596012713157777015925753613496554981241057062011852288616978479855181382702660041390040033532615137645567931501219578724466873570325621781432296684691478044683645859312672218452691466358841176829701047054261757938796421680228088899000293207308528569274860788138129305384759170464285983385929391645431099381340062118022887269201701927641870145144892181661826926020100502716589902088568464936151302880298558921508418770344212215368872828442774108361097245424986302487473775583244358629970042629212761292124838691752480313326456938495738240284026684064690217441757208035136141637934520818748299003633166270545353569415006849649238050475308153259404535213347409884291927718357495974837249134867310609141701767740260270848976766658410472209464948014403995200226436801448554609546715255636130055120671650439457160321289554816451402764833237310808225158370070946198871991728313218657805752955737433412048962509178231709162995057395147389820735364603943856071162903413109486799824615543090030171865847218682219410492607747693307781299877927590560211529121258301617211388396335112281766943423077377239787159393649752403463360818820299551201362670795237296352604039831027333354085781806441357409383740932655842152749433401697536916519691225309732851229926502489316963633004219523950211283994510878414459603535058741557813750415309764903680855117013273054837103076671823132945123195516537516748506197368503624880337823268239741183500508893077349565354991504200066240783893609227826519992743277988850410804504479826232704279800768861896946050306005930102070968125483007463676497371460085421313972491659178574304807540623335465740831998883080981678489634179071619352960514216733230737147587328174124246534322973710991736296062666399075634629899380840751162640994260253578144180012103416177006482100154977060962261040395707639268334747264168439128034033272180368990806361322611249291781095349533888355850496363500073165653513874455018860299423780071641162925953192542832632485187807512446289214526438880709166745316957012548438478090420422126555768317928291395055245939006235183074795444677678121447862651321911709177732112701864231078399208977091168992621440568654123056340134875383605135919849096621217631384650911689629553531818313484991007673662099052730998636132637074499079894707580655929621278664237175629255568962639894552231691834270665533184726390891482634662905241607209624235349875355570939628991913960604147301749810935956869793254882587733678451376152570129963365383748376351711366575601067826812608032136896308292405610173244432923704787192172083738287868834925960946181765238769597960280586240512435693476582071348903940807660461161145516887517896373174923671810981294228709507994413190846933933012579663958455987627766342102744661694474376283003765970544651666583395997842290238633525971304556329879062138121260762316743685885653088955156208601784398165804637046106197103081185377353937383849927798595427291807111715756491449107305984517057052787405953042911045527351236364061436489619904476033794260777071069581375989849232070242385418624510966944102406243260036248694425377491053748144516448759547566096857083169996296479382716727848405509564610015356265399271186102903560333338678349379326712723948173976414346336214178314063426703118748245760103410273359517106637019667652294216220879717304869787514051038176139383827436954105854410642695318336553609690580856204331982865721209560949743384653330769827887717129369622696496796664613483405657736468389171640442083133708958886325775742753059619549682794881535860950805434325802857604553803412000989506730000577007361360583226073965520510898146199351868576383192613520876106396880048468354198097147883703504260954865879003070730302348288708208871295243047031945667200185250127491018914319938841521906191712081751070528065361061512196674912194373716669779577058190777269431305759015035929451514870633538448651451958914349133905471455857698156208330316448261200392631818561636952110983035754499042708539247832385491921834062451327885936433074692583174868294510355074080217496667596318651551361412030144396328894528356003417636787992410431201452416857057673040759372702151977546645625938944697342520253383574389878785985317211500864937334704282978814698051845729267666366849968432993266290621487874769675760927764634575740901719984310559797642565189102267848897736434286874120372309297144128196160661415148830152831538142785795445528555653329189343787953927767196092930025392572722143061701764047906762758083552056139371563685299652144013261789435584716709856108305695248605211662930920546836560617623160523456309181749596136592916537003928013313799691771256377306092467795223243599589003145907932774297577313670170556640325528955953555207616623273876218054049504102228313740257949804005892837714642144094593905002291351644579582336802606255702317273856174108008592929014363796213009125924364871553250133643997468355003465132987487576177385195412665576104964347342710144812298428369988836746243448180653303763936801880232600724157519623911116277555304931811981208305114574558965361935330477398353401666557175460659773650662687469394867225482934528447618149506860507748815828114808001325468374412264702770483654249994179324837306742287875165894678567182427254450684982722502247430081524562387754473853705263809729196187355685202477076253771404068891950195654240763110678768488518840148751388106111847964870723254268765841898511807835191134932584542785765164149225528874433426880260953805758162311208661809689047005621686824237539656304042731680134481783584997653520281394447589006202124390903660781798967643010113177987851975302429739054695813572550728611403497925785072347057829928073600929777522996145020981976538010569711000972667984815583034112479320989932210285896430482766957612574044003309380907942083609381036774526029571763634430116819416375571871884722002730511719985843547757835558883058525190322172335763266777272475847470596343240568414320906894230733475326330875871182717002022474947877211310195240922782779518273658573966773551081022591530056757913245969914924981639782652962670480093267228020590465335901668925721386277976884577248071047152979156051367846088922904173280591175160594013697124952234387814816437434689317031473111494996029217938946010525152196585300040375276220635976187621407834807564407591901577543309835051915598559617229409635918795667950960800760398562414455433174871398108466223575114458498273724857959560634818910854046268221828637056164956122051228271285568994484433845842063515362326631391341004122168110683291923134915947225806775377152634770215014445996606186717990044389689471015758122467421386565462637572885337858578795302970178531592272966390395492956587667733431592014597484826745205870945619636077238854015211273951115634866961965095665677716092582971053392491010244611306639760464012409806669630059673750732090039602662773531187512717119822989676199964283698961021098076461984660454361122525808364546323852955180117484783906201096599633166480622233839098136673124559655859640949469106579615084931644857384251479988695815269621059230860212884695328580101822087012471461751725913594459478536936834577723868048723462937930255728824267359587713602485046721595689795012697995445052635486127989430935772043094037681176573745361410703545775816101930758072909988778904399590541663584398217872054984319544970657088191990255944399687281397439543366220929804314555650833179143575801442218964755705495244991689922606950153929513227088089416554129543869872978523299219141946858748196343717494565593413889827206685580945658115587430477739655792663450877120214663784513799999638140510868364374068805045348968955961901488012843749227167199009227592470626592399271807106284754880210235271996690801978932119460789789598673116754262884882502321900658157764067663188831471502144034607539497160605665981982802467637908120286166827254188631493474667083962369887265671050721348744547701209956622930009458970032908577315408446345177237346448104257029151266619634389094614009516455818642812422531562617880006992162429081645877770265481061910070102069769560069215899865986789762975124309243592262534080307309114252332914117582456418684623543852642481705131007742731296162241394421797416256808038028700685251704508662324396024436677446236241141892473772019560114888978814328371134505203783877433305454578334605833237204012070503926269427228158342710649984743057674512128512580045558558728648202650392248909273178785379959502611773878887541316455106488864671461834195802287554043798547890564430657385215153900457554355562172784376265419796241179439467789084424156637292541274047307424216497193054537484149496609358969907583823951433490706759644372533613931906960123048964689287389320465912987157541226271930952165525554512279066579668639123065515579117463404581445616080057374912280077456654313600646433767744581720789433531419355254146915082979553659867185639509364463174239734674389827294184562533793616816348342467074063586663089013403280156330859823856068750645133436279004208764466809625283244731515266710849789162569192092722164521627561569490240024833032628988283074749103533175365329417880768664879648222716329060088629333697409894457279929588844580649966661019447175511738361926217600056138426426868939916118584899110645425505205465040986891311517989477895643696244382546910341842521403471875402003869120919776621403605958793171273880043686954352451287517957317791520854132078567392583287920969137941727087657765518857733922826359380650306555566337826048092199859421771865516821919311232299946466510136477735386380097475288973810542475039037804733225758301880103653901376619108181087990695118705022316190449708187981613215044761339675401160225976878137639399402109984598509004624024403157935742767099583376854422449946374149946614982738167237984585849071019095697318500877690328313043656457972978078188589128540207648049575736026645649434228752654595172472472597034536675889685444842996231546019541786515539832799421633824301777000935815608608171284422400726525170255674652954052182600652181758985124896112610913017837239356643918873277403676681070176073614529209989966374879007962721687354471445696066717882344484321585316383130179500897973535620256005245129573893235208612785757035871698952154270749646209478489344534461296601586254464997760339654883236779674983730585073773648938371987387997960779488989825696731662108731466120861742921310159952960837326083559840535382240158655610053324197687261595118368141765908185739045986546159363904827364188199672394636992921888374227667561167931031388711373144094833703329062718262945020162366628528936493058052317159523579512779344275521264826689231807544617035973974832006096313322767646738792058653394771977686194757410740577481805787841792794589682266186522363716493102083050376769642967779673478981163578692260925431531258788338658111364790427825917166874947897537453814775411477197948102827873685668824532068750163923986143949436398243640956980974713931550174042014938792805186446563141119470142388384326203220548589885120154005800118937764201084340669578737974257344185951109510325860978053109641575487184570794544641967851779576176495820977958782359639296266433851340310399738020631657618002571094692025777888955447036650201247543315345747913929394835696946051041134249890169584027983409409828488732457692721679952661550774045496941232665849816487993289495347991201037459364214224867251739609275658192126073557967485078382584472690844019611406560822995675721004865228228435359617563446541770184640688222577038634320291776431225943247052679847972348320422912707991387780651776696762309900258061093011371190017652970616704302294896035657926981464706797919038506664003661930363071963694367919867849011568589887429068623479581700555720345481074004087973750975080135114151118574222240632809887558483297310803916602372169815057425657450430151803916736074179127092244855432734219609821159718992809114845429003004337943865282094285364511997832594462480063653280918981547918185680581125783358141980025323394412622096421803394497198585895788732070028358478687706541903534775648796974631907286215949588426462655099056241382421073052832596518161325107460849715650598660365361018367972586198995823738940259530452807154349670071958996076740475805568004132248256011067515980835980624932415440980036168396059174721256418974272522613730254940812233293246050352010631355929216969389571622486419558776547055928514866008960348533526948732188091427450527051757610306225989837847377387572953914753019182394903098229198323538751414099499543969829772291875607000772600408670384027078283363753121236000134318812286382795577211297800202217407709899813812738349368698999500721115939960868666042742946059697459612774023795593847484713984839401596390661032233221340383297058225104664546078092192028966675094970251696811174943495356732900942039156835797922185653066256793861285637483867494959945855306531601028109508235720162427936611278365890876083515791940444481980670087080500498537533679342702789996248249353316765734501727181878488118149013031050742421273051560335860752074132535459233255198233385577667605905121764733248807668548710585174834819889834283956690706268587828664616228829977918697662220925002311712998004705046145058033612221999869692104967505058895974429460556448674889866896146207630497179846546813363691650942481826734459515252942676186448528172628364028417872776794128678668777292095446845491862247916868951535632296154014094649933638358355600339689131290137345701285115453303686622293878449721526051448722552745612260157492736226890880493775136876709074861438047612164593910861965170062096970231383523615794818684430126468790935873020267999888340537975809309630750338262438571345115197691385101935092834315272795068065987928701036190226012788792418867591417100947356044826414795901667213330961433630157118925832569120375915772312701605428367303463484043348117917289497000155151870705406167744010668209521125525166912716928354274541124020572299868516406507547434000890516637412528096564629078984245537623257204408794406580118753990510567899348018707206697978374321999752434357104621499820265514524078317590271228790682772125750270568771285604050510811916619345501434431850737366326416145435661632104107771426380066851753636388508853276269522445159333419973882209877438022832275599341399661480510363374458402251679808726686184750006893876158618178409810040546454536190740534445358368750327271876829199902352988983867787810006857548107693340043692442713283394564063592168202759697853144139420167008288251977394782142637916797329899810687645676479857512247466762098329025499634033332856457851889739868761905468092584572541603766639249567126681558817524616306175269670335857124567939752349320424206617873924271986588181391933910135041115459190709568880944097259661499043626860217078589236609664084880610004381644619882514597945723999001491867079129816004948467245105367898095587889496973025288256413510841006247238033300690623937907350986936284944846832903355759074679551149437506882027779267152124130185598273391926662528301103805439219684808409341160146447049486561913141684763334348054948911046848711858249311990106583285299906118605911028220281596119026559323284865348901176913259709457831747735654765165296792964191074111663938154661034005184548370632451073339942456891154206898420644559672500528393635191594517548559262112868381901139029036379943603920337417401869915787871725324381869654981812742977109711221318611527729546980360023016666097031610343900994217208976134834806878196777756372651118440920352526405039556601620552588228142158044386772961167160689311203665909235549380444936783139884690049699050418743219692114112079056812056882101016253897145483469853110498441747104193773618527374399117387719925454366180601973738434353330131791168347791949327690051148662400137912519444333095572999899290107919178807396900197291694067516757778283166009386815406441524217969812344858569121747957769221789853137391612997013271096540889974367233357167834996687865648044738791408659966843654789765971900184382927460971453487205156518902478719291151942964736886601366820112163516096219490690435646928340384929862069856071835147028550185996932470881003019119641949953031836110989144827120409069506516101244061133990198556536783599688738484242763683131878746636079204805529714623942731872243282735189306041086082064580042235177604294212452349478708969203438830614771503239326851331965709777682943642420870897050988516004749367568831734044710998387312501141152111961322228945998022462431233218046702658093301702809845071558551264880749302147406333395474627132765568925887614211688914104117432931282219718684424626259113028541847435832303431415007413737686076980833520838957149496597956007082217951069550600831135718056704018235882664060521459123665699375734935177542499752762381856951757578309520918715704724490966274891659827008846439072824950509117815620821185192451614958970155441140377510747015134442662428964841419315244349917294199294288822061567143837531332801798452007092656802987402879093907576920358503969487629272017577625603836209344436394430679814344943026430238817038344805756652284279379466740927467761415703669587833619392765412508969171955127827050427110993219556449853831336132800372920913345555222280738164612231722405268436926169549909362781015171774932793503001021942778187347307901658581034704599603347278464510559314275380193369974003862422742716723250279247822743718980260752463207636296915704082231636357140997721121545946540582141311375634215314871771539579109367785510478171598232390169935417801157870452611179485684209281383214180937087726389334246194159400732243425148889205785303483243298263258935023980356274492727806789629343217992803699848798536303730143647296097978422434443041191711137204683942689368002829886028587986230333710681179034201911128736373464355548842995165736952675490754715880851234754474396137379726559904939167906043009242434134421602879592329496968677084592192561651758328335878114948598816853732970181807643928329323014641616684515715414441673890712300093251957242452474832887908662213754453036179987088908047496460037392387812552786406960399892373490412032256522145510661679160138316369896295249980138997720653286533513065928436655300497569128592736997676085910299818708850007498910662991978755086085398145131295961641701275543205264131307632974432429601519133632987140567177837779107114170340976243775241230028648315609932077982965399540381927322811431295277233855133508777287999666215975961031646275770177513993034958005843575124700494830615762162191838943307243813649454852515379729421609483198150336713350814379556864564617551368130654694444143168753183835323188986847100731627454490628543887628089377840222085626393841886896455315858447614906231257481662393422919378617903724074458760345361424209126993392520403005909579665352413429652331946681956913056339657849818389544882378688558375705415920216087897199521794497704095235022445423910080030333792149334953067125091844211837550590683375422026223192308577157203226438976727220842636969303331292964157776532078294598803025416588782104684745337087046395900776682599601393346536517499135696144351062343454193566222022132189640458243213482374387675891119973806140356178061787440330922834244615369417129839717041171461669451821810919571865899225372167409495417278833644120937778558652917976118288260324140508092337922356545513370375791767374432380127274165920242906530526538019294657938958299246439458040486967316262327532989064675866665927001440632901644315913068908747718296704151729426358540918007307058533633053518470507641534994795813061017027510913405495235719094561975679812888848117626953268364713256137072160847268251885372146965562938698722982815871315081752949145543699102541124201784132678810826093212212951595412378348633830722913328636033078278826313136782699211113235195348713578762663394982507409556613611941309177172765326847130220243729772216306722772375588455712549099578430431502914932245567524278048683087343232146470144365049046623623860150703476743034777521211587581285915164214171726394906699050756318574048735335325788632308990015604555233150899589081610473636174549547831417431880989954552449035538100787557667387144756645529447239747832919185634136744644848247188633567274043793162698447334455788439938383779889815023630751974939661089976387520310447659611035787714937580807144055110107492122018409330121399257900533873747861689380809034271557909731498897288835810624519769505029852661138876082974785632145853832203133968521387209880323866590837702884815214960920642095716579580538201597989456547054703483816634590034808919096983963265479413733816869006505202353707584385929631295299264157535448793103732982404602707316562118004319018269580024608009909532231147230312528607804032982554105115557103579530443860377842739388814812756435001920884767206065661800062786056762965104899993531457359657436880804918474830166161548561123564307835388100221557087438987157944734658968978642895829742290711735753293944886262666141320080106728108334433528937505667182927831004042397399163531206684549637364074492767478960427310594444243758089518834539694827995112842734020468367040469145799157927778819149611744381431671557042067463262458650634781414111605403696757061370219106041734764658196664962254117583847133248853966946732117011524289759383403377174075296379100869485919365530282351583259933752731868222797948515081171413451163538851620762270694377272009439363789740207038862668099947578366126051249784044136958625508535633975775573640910098696106519444173037722821696143724036185759019067558186632659542293980123433044858847295941746702353148429347559317162652771658302737147171697761061500146231778213323741280013957989948697503401651433446940746995865790527918734088601254661160359787389421433065856250754721790170296664692566132738659254554914998969043921896324770004784355091335810258199760461572456084699684817583634745388941241108348265281066533188467428453851923423993722624122074179219339163600660546303257052901843471233621089686356387198709301663903830468844448793906139341297127401742375658812203167831053597621345667898172219543475168752207864306908145652513130917643561514404187893556377598694946401389035863874337133174836514978868924647582653715618773707653513065606410853011085833343029981736329037429679908309550674143068116329406647288446205460635215597439503395397620968878790368117543222172818202191160248513377114497072140005716521458211561322775297270929987114729447624455762933074479559846936241647834675379756866015790751479473702508987746795126947322587766574567832240269747599366639902946510601037012252261898530963050144571331749681358299571993055649340185278187791051739001368890353588866785951317017238191909755330495211625407886719584108613453851091801550342729220567818821106061566094566760444118194679505709276715153278032491180544749062674357698630825744111493079259102026395131819413951395530682420550290510891598803434962957105692073735634212909776436282882926186074044928570279418132340199916148175769876084815358773604142718861115851743681369974415059416015891428377863530673083958921216047690081937825589798378572484727789151455120410085107748176599407762896354476602687008009914627826893297000588916807650397944792146349397594882031879309295961128742163360174008805109137108473812475927916917093568722083438388452788919899968529883829950762202211570224332835384514950989420976100164817570792494145142874340178127603507340860191755743601304803079641729643653579948636813942790291532670464491529224348820433292481056838068950866013621164128156034145391817312495180008389002980018202605253029185763352240529289111743154573826427613371269402109792902089274443254350330141621025241056392543867463258533794587059487580200846966892936335199839614448619591061239850990944279716166785088131131357582895240558314670621241303005003727326705531714764724337452662046675303878749230221118474552074449856675371209562850138589857484177092222915279164787706146589030539176947576820470007539240686071624385905339286643274772436112316843828215014436029060011653709476374467771070778895020605369587644650633509972172054835552179825490897402229180515936942005219372343821174915739230676211214041772169211110240480299610379677308324645906132779856527554817100824853212994600158795145500967140171330102683592218246377101198892143710489803296970640463802569191829670382309651705199482359743689025495152714370304027067649418667691972221651056101466567298564671468163145837043942056601286878146930669976575410928562364218320523296205908323175254571507965390568295884018615861985055553283807489974022394126517706079086188641846480307207988858692690076456167400232681028347128890728130799629593510027972665935874480371642589596512884510271554572678590659098852313969063786215878252630862100150288949945946762501136517971899905799296881541870924516109467038090648446940309111802910823421289498130688276983517047545487043789593690753886916458143267110782898333914026801437542640111257325413383045924024794134774301151739502649229529495774480999845159641467717999811134049878226710125954418485775659069989700719621521496892551037420915867692463425051783793446248309547527306858499975376499281446868227642114864476532603278192989273689902451876537823476479519086819431666795049629843449744244982220984576204992489426837186765454575001083601076222724506056024393314192216306616359277472875644624358597563324072080207044378349564430767718848471841207002765682050932949525004688290140454543339421109552146955114671779181197368897581778702362888878450436664586404212123673438268021426915016262510539935523875159746416836151902149001312215519383126745978340641512811248069555826032876897357942369464577015079088690633377759944594754125355225862567587199715055106216831830708544787306062362496013712351142020637655640031734244040894844963537654415596191541490856427264879969035756288678268519248174736482014312584495897826989072051656402181601475860249075509693525334900523538403134373089129275718587727688378194510398439220763767580697812367821800591339354144038949639795469646619584648699149532833862536292109279987926635444209598397868368190002245547674041344695099236679621853809156748993916498448071322535027680805615883432201062536824388500966741573292292952410264479887401939056948706773571000079307849439157687573461348405201226034323870117588634405387844805638855690170408962507662364541647949340058270679036216057692563546002283005721407018037681752566219368883346488238288678026046393416262978293379292129723616782701581836401021232792810667796687349198178162959165959865315284900854404306151126927854153050631842199159021890012582642867132072399988911820019777674395201621755361416379055432478485393826992707297269674874210266461460419484141339941902379091447318458648695830360119921888732250999077426565734868552211982526783785859990857057282626751010012652539389698406821553660062308498272006224098477204270545600845161613510009348847777157616909674794520786334489756885073832885146742342748508294088603871605533287440931358213954768678859140003885970665485166646759559023549657531232386616542692955413919013786643135376420077195161207297555199635786755515608255802823082903533317102482759997629058269831860601354949512666798850200575086161844268903159803477595974767687155903693808091802926359947810903625790074782397348073317246913613822690394287135550477383519723528735708409868897563094673346750998801312017253514148813121650581582612784483307309694770490585844634404481155398830423782010262224663848116691552535564727098179950663127432338836726936515863537025208907662874920677652928186414995439519101167411153322845859048668716921159183124878466101845985144206616911806971920814293393270569941147504659840097265828830840254361069917167658717172296987114320419793418714641473346570189333563668353109890403636847004793846263137934880194007517725342283168876314765438583797847651099128961034439022141310499301700575215890452269556622780782098042044496555583021905089157805532577344676486670022020097225008143454140950549593140549588426994109714971552921095738020140764781123392895946552504000907614755109371196635793314067727516734198989596176424177189977118055102693376215628518829679706862329076599836361434831978445549521223474737604786831945842142483090395943693953938809640962732640580260397214049719312049297246801648412613796373200608207235617182632344526998531268160171457763974147502499206693853916684266177343635050896951431864333567658622761044644135676254369104599756631427430965326031031661797872814529521016578693076058179265042571915229377653237527070149580704064316540926835582200008898938530001001144329417335831257675390847139683086564842315320886409775999617145425250321532312133216085741796786412991640868560818608578343488881623591179820792585882389247456058812729121290017523798205004294464055702524988717332623726535956208051074413026728236713979517507342567083151498780237833825450927425954837252204227033605303392086899943536140455679875526429043565142427609066299391643090491380635039161798966811619008833756264879475253500065510024866552872383588414780431248925427697698770711146133034503218436308693388966593294764151954776786831686540219031909336122757210449494103649208898510456441610647833995242293379426922272108684580751861654330168708548741503220850171363642845930807865697344018059377341552603721207398369250505784441888023015856166898535279721169178799971334983883363985849641104191888910907417635323669471248392886662939724795001054901819930591770402484892111345242241736088539093008931146853680989426815916878299519549399425673401703854584828186554575881990990082945821139552745227741243973893606472384827294653061128399370889479453517528710670663096762761814917982668201588048460333461515068839732716100761436271230990490589982400740610260074622448003377923787803252133939001185837324085593143328283742746615329426220319895332537177517218419466581523721386235769699625636640671495184308602254934801963675966104475099804167498174056980216790044832548106884185100882314331760155515169262509266153959764958728161386581399379199507026357328139523303414536398625009173243168607971311875419791933801704061995256407730900932192404153271902356826621034176089222288077215518589128786889298587352170403298368823930174896214650308378761481288719473664472915441817232721141350186461517286165096627747347269497832366504167766480358458546690387446487135066655144254661591954909608987878257512602722717787210115711481454850808740021241526504242456177625373270563775955462450634292330929853951553510160764646646664936278420289060412892825203968248089840774182385594653447932083135910166578800917504283431254750824502675769959208021175099706701974134266033770380537761709675798404873194673151792130962652523372619690819494643117934478549811327258522377303820584423574808973561337130883906887600083646842859038411390132436812711711571743668210241062544589817776247140652877186134096866326587720267730411082535021816041310718401329711733635389712413208836856399962434187019477150681002469032710822591536784292108025492783618311767091459982601208377740573315865944901117719546524585457371779916422962726003891406491417149895509350976791810811126347738701447487234142323735954237484076458074445867110207262778583049954199307253901954829892764649975615660425947413730404872841428643854035870417486439307111055479004250372118851861772987398162536629442020473735001209037053654378385273867576227286356705966050238059801843930109124496316561053562452708497224203573267038193674784192154071972559186721547343134109402866600449883430773241219183813190411671887329514363268238176638241109595102362921095744533326991868319905423897861336721842120993831010864645080517455856105960106654393931109527915259025298570639108389443667344140019787146664804830306834335010800579536434353668305477190352071715261187561704400758842042648260123181391125673488822035116229752854517630464691181662311911755008013168395415085817490366103245301810113965786037448382533852844210991928445814225598719875249578377892669200626598886218884845454869966103534198331864897811334532233840649924973554674000700266131876827206608298443039265473932973150731051873415403863609160838686354110075695302504788107656876887407428038382901703134233984408243904405418961854960293005361158435069550346724307385677777483227349467906280111286346373798700191132046940234785431181979805647631718869389384069722767968953700498296580151521172035939704490231069440484578118820487983106849110665243209103356534188784951246560020308868932879498540590137074522793677102102400348961364435188397299967162264943583769712876579760231179086112158075353300734646295361025911276373410222246456640012342054616392679900902667627486041464044890495897169820188649328054522549535583432990190967017282956421874347403043248780176529931338177687107909021616797234245091363033513319618315222058042690003177473035091447721396396998029743470848976153542033857216326791924845362004585231529474806537589099385085116621301843624556979588633755271278390346036253333590500009244101810292854405124941502249193287257900031423393194821349642804892137404594067350194981620292594421727874650393228946081937140575924291255050040640436625053118416176299862403174283140056776938929785882831938175831036304878687970397735109558523572368435575610766506717631992254591668465463277989570478229752459697479726671576941407925714799325666373042275144405005318658896138556014180851316152068085056264542796550320085683151317833591207842953697697557412993867583054675224864178554344187642608141936738926845599507117999663061859719820263785676538768621131514298683530749886354721906265044345215361663427014894625999261219273985582234132141585062578577809591874170456297387046088588730575931582377757135056009243018358803791445009442622152304957379371675596008562247886655270455536090577946566179295305835851918035559950119279186433997819166291670873094862014429253785550751956664095912297688764608434825367836320106873139831755489178365237743922060993285361972529532337010161577996026828078553809135885741631710740194441042084857848645730216738177296966226419512796825856964967478257414889881579124071527547287052996437192792623058334194313247391590179550924947279895577753796446761113744163388541117872955282227293486244920013334710726018567231637706051538509028959726548889170533827117460227059884411888954661759251805165598758906038742773314465293152581311883631677150622172274044815017130947116870810842919969204846541253119480916175538119391384990675660187122404615472245763312109208075826439242796505401800849036356837465300271649866020862760043841691973612896331777108435351388186322981688994063642700255032908442406721859599930002360450472428766254023755667352726882134612654476106312265226334360744102006061551611566776870287911474013986345147990908739119049380883949037354455138569882665077132194061476130735483141949478932669320559997742770611592073965635576362717703048350364593764642514346786882338406233996731188609099689432992071704706414118041875809373570502493360477613444572682603226257613985667968221640230144572512231683446699678605037894538842787810311157909382349304251286122246915112580561827946262367646830701261361471645380775351501246505312227676816466900178338210819790220075330374674041544981519266367341095025792685050179486050604334878219929915196449825632146485935003849177151297145999301137479121077533829147222301395647176950221449153846244515052697007725571980662464511324327195684362013313615423622554952909778049228891449466211577844984400539751976876549091308827724316766290554960457513453132150942289430873224868571159490103853377749931772508283592894681657636996830047007787004718173965228407259065118619816485439354937174789033533925118142560094362802514750681485048952784673902247383922520463819900167382428434492287389390590992317170187632156944989078370880094736040243316572915898332813006901853252342518042993075056357193970604893438097834344940075117082180180196325552455970843902819343226308837698913135682999288203288480951204899800691934773512635809035239592681545645516646590058288081292925430491443739213570907767769708690627502227681281506438187420681261330217000081472991373226344953782378035512640073727658062194729789545329155392367892506139941773863187991899869133173145964673141819209329334075498938440774227997607172068772418951335266316203191234338164556835373865572885090936213048315486241803951805768094519996761889922188648845219050794448551859248104362979607372282767936966508612606318102485931337033433162095481198019352083857386643612879948320137146916532516659319055182743319035245664042913980861039251052553054876389154108181087904455633662620881906264995976587225458329957734838888477773755685158385574625135052969103128592456384612812682556452081480656578491284485737073847045100186640638626571755228424133662480061029209633982881944785721002668269566523331206740188009981866704748298582188215849268329469808221845437315931115681520127786390014622211575220190447988961910764258938853070437519676253149412485517160825409282760435508945874916216384692602744313375466733704968074924924818156872826629785653603635638434513077533736658731337357735649828043836613333672354921144492340871810782166374339695975573401354695997126234450358623326315541001000838890053130881753838242887283972352859301017957860804476912536292390944911209465099554026080198652612445554000285088012906814720005343629197133662224595608018842603836564912233340048222842908026846144444023785285313630261282089191420691007611198985295668659518604514944129245102231185561114350726505661405699943222796406686820672699960721494360627763637171073736966250750523490268433909346111237268417852794064420180114980529740768966001233779800496869827667018279621743865076104661244133893064406448857830660071596825422326608970596428019337972511491892810336298727437531662563219026598996754394799163571319319338541143680210147571949711073827355012883573182689669013150323251203782347590445697104578086171481685914100509510418359314476410973198686739391396128849773108056143744665154290263214529350707448810845435156504967129736790670324543162433945973617932343751638361257172229580260457201099176984674387669326602404032232753954969400878141988137412746844320362889568210381217257248931471521514097654390157114549083146108680771948656161381322530746419315726313132949123512646729224766504965504856068813997960454575197834960626048921169413069537417580902016168270389602851522742242035786749071929234419177452420633655480113527192421326082078127443647806558012690797392876977921628122414610170238759550476945350336530987620545958365312234414804051958103452915939206253010538172332201416218111994104454400164597745518203563908154670781169006627094046286478086985268937718048477431534903623954216209440169359974188802884365242529062110077305396420812912525201337957784093226466997914058525045010590001863540844382900148846416614806165641390719434287505910106175055379967105449220297367899099428280144305700644753254083818711856527084366089185727980256147060243520825029664008286544506743276589700562307298206992326357907029652464053607533282775847317755929115515136707675243216602655780350715405797228081567576206302625858504628452245330742323282310171470438170943887173086044913054386333809663991138985819094716189853929748036210282230959428515206234748967033086691168685375540616744561789398150646349009777675279092832043215084135163806643844253163670936806823177797058816642007842206398610885082054218527455659346190221302952229085824909683476228813270752915366154679102347729349529951704770496705966237111900652535361501391411271049544396535048645911173879562480267432473795069287432927510679759442149091186644882036190257465770327787984639649467544901074111429130229122666086099706473145632436138336408883632130130793584839608079637142924464233580240941507325086297811340118939766951551646562210813916785320995944161421849100460517446069631016326543104521378579998582973590360884496786205618515485742783546584188872856279135199316796066690627655678677855246603846430694908549405210129725558924673952223047107381237022890622528775381603608311063076539454551037475721870200447254358922158963297006435500980083296259435904803352758972101099924364296856795109821882756259660269486297608301570483246704269692433064775229042369094423176053617799901893257765974382395421720083267712790038191719885553015875272121965902545123631456068080867369336424077857659617016210938063037898917594671843435405807864533662656522601029497337960761062023495655843500182036172957054118582128204381796904555087755105692563314824350061236059896132604096978116398745259492750011705831468298190176818711934589354062302968824134960581181881470320179483549542908785332231558013299988307051061698387670253917161944288563274398690035374218019124370129020426297464208901773500010132823532175780777288933783145426411461018275950737347338784202762210496301794227279479497066968150147303731607998079517163765811316494329139155820065910043861687472209337535517944749044345366056493496232504380161792414714385540453854636998241689324963060807813545518981240169097617318585063536391111694269974314685044917322291085903395481110966750027279053565686464025028256449250825849242047539058731763121080556784576479547126151747387506205869687054827566253862931825568280872560658026452675579970482795119596812138429020640966346166540632812982890002635298818328975331640958207583071339651571121016379887788799634257766637218074080564621556521872079142690868966082236185710996201990897960945900851580298825006458587279005548865507940846433740857316727460339061313322511504826420301394532749880716307336309867778211246184785443471693149076844639732636956931239505643454465139110702562467091786770599554219601232220318115042739574357396614843219289470720379901057351487568404751244114972479357400054323521252408474346202836215398356397307627068607309552498967817818302288043499271355465349776692850436458720629355002442639773310821363334305619727251214292084504991046220207262687308529349632553187376098932516115168610384891553332669523123628006911674836658950340137261890370384880779357278915436179307746779260498929891763306044614943242597598006655265244441671573557046931253365985174199229817593617237188790868145514902764844381101779543211260579638925703428521574361621204246213373236211223220213416123348237674860061746264453371236818328076341921791851440282798513554783022991071047918559326978684100546539337151470839079084042418736551225415647301036870688843092610140546107795816569580988561873633382815769443720874183665174070374140707315702770272988533433489911860619458839435975753534660438977119207325516619183417449225796408543680801455459775728790041604168766492824755984436487254994095472318851195776068310645201982451198832032075239106434681146469186634313494730801122546711499110702365902911604107117658698635168572022964179503282628219855647122162087041504186283954344471729459399602986067498208883443190059444540744565719372573644783206272743198057933676038158120322766050026483353117974754426798012176532616690399758236842428136569176658962143716018979544988630762937727266832028540702666978377606603682981285104086890062271747775180863026709994628411335125717887446636691967597494585936229644007388763233569670894834226484236522023653064019914387798229092383188534050460941031970586966891596656643020773083040466829770550921979714303761250089380313992429281200460578869475333276763774957031435075287269179016530635590430648690082448418035478582232878328254678172195728133739391666261598261540200063139971924732520769517041374239899883427604559983937657051904303008604902303036162579418028196957478851228098647875743007839710271984727143152706224998213851288887897261177435811071235767339635370623593773217163113534312129670344469417160728342977886896751675414430549139507265702337000742676551189843197138443819310735894209593646562637497616251444323692013512460969172445005890141958946389242299621159334850080644531044470437817879996066726474268085646842116027828673779974207850860570251939073680273658525428479718736549888919155208455988716986498242086404065825651105373886264107755162505896898562244675269539384891532415692406349153724771254073661640169590598979142321220090805807347592450087008532663644401671996451269542577136655284739157222282044146361647462283350084284446551689476993210055820635920983261336200730271085923439158182573019556265801495008747126762596935939174861149611310326966506464749685347052860812317860004626357942690760933390629119467307332483751390379569410409547294682570492819298447105250230760434310346518375686522457911631403497960570468924310812836283366321558864117411847710942200168592465902057962374235183192430934689575365208250353179964609267479709246242897336811330498636206039951960157274585755949161899761146007031532630105368290575330484705840308566864616747293028647508759603349056785951662380322732795527345213846409911820977162997087117750927385006478375238285224458073289795168399131904204191197288711165894012446973338744942193459244056603667917296979340584855867172844655955355472010075026014315189095105706127607768477957106652141319927727559903636550486479260696963984557714775206070496919538116321585389327052341084818151046248539716618805321473927486759959197479460697586467247864318835471732080764429165162954067876074697639785504644511871099391773002753235005042952118671263617535229884289192240763915137129794588493260317748783672638208678013204421095628953447572842139812612325468025349361517690525822044461165444895515241606041019443040832572148419540947867979437862103808190780431796503948497327517545100673808772397574064318908685327948319220428119794230132298398217477311515613983529294766641700228343517508162752631206861350971852253039166682908573775424469888418365058929937809205424298914619880955728204361748661504835476073821220913157743132632963435820024485540565392197184776647075251335615996966923673733878492933841616983158548264896324127887757327039563370406374426655822279898122837230065225270224241163309099670594100752418746703812903712436868874686255933386953361258869586838732986543327433955958593376608899927118227054038556150679507438428669216273278632884396711418676044129456899573579905561949104305977010226692969858547941035468129147179312470040211979331370593849354097757294655924852201229882601606816641527329326739718445623409789716828631587574595291954610461137174981453478171696482969188386795544516875302304838636036876647402728148202309361587873170817089158206647207124790576294162971552494249194865761671237553301755991119996944941442145874721463385553702257591647743053584106641297194608596278286062379786647934942915431234965220044609604221709732652572877983795429066021168061901780788831661999737937552658916205767464250462066949835363094093888491080039899944405969104210307348738266740601411203358099169282375502502062560159404845031360927643483995578146080266276216751661362526790964753048052147423681385259137412320051555325084606292468809171434444206874043050998110888218295438744720694476062733356131750777648748302801892815560609403609014275053356453089445012544944857336681254227836743862122245035978025460979408994619759566996883791904122602487496833334682327281674774602563932638246600335583760076292648635141222674104337474539956167133736772707474572855184198980479113698833412878414155883475800247720610767874803188287766242156205071785342840560606305103858794544379634360967337770734282571475068936903981197432694730041379373306553296965518287939807234542691333676785083884856681432272671353754706342575749722103541845628426003688700923197060073209439057324635063897835421691162354289777646543212977950838213501649570598147638017070661121847903777157913058414816788091545168677369438971181034337478495289984758515675078231442537724075643844390493207917182787587336909888533943390612822889125143742571623559637697683614401049161421440565928918596980789364888434430286554195556772890023474634244359722592766000675226698473671114037949371759300949634921183842768436104212019273262380118966569798533125959795480939933060054767250765641651256691309785661520381517621043594853783667987563592657198721893431995286101552124485034127619270403953411090348392193995252855166733473979929886989259973785550305733881134885348291620038626158518072538063233268157195496307431362416473492319238234947384640911207100043538154470273518651247153588985220642387493823989075566394349498719506107977327462247375668852840369891083954144783109912612531517498023477475623166653423742226618281226898321781888465079114685296300885715905832382660545115869671991047788465931475749882475387389463156246113558266302907684501295327860821601253928882629802066791937313561515974868674277397551835919775995795957438798811186919215507846657673868017188349239070392495726487077642551178250652705057141951696350684493642334002503693262131151104782998116306992484730036537425964826721036046296140827955237558588071632162524644583488540853201284582406951477117228582230699566334780170633624368049512881447671398648675834330141953630528126294653262895794282692386937636391980389140950333538627201313188767644808712993009587566838970107157021895604367819368791583285044767617732566460799999440258368909583139393413953238956035307989233687826578966086342943336569910142032255694429539727620509357411494003697996355106283753120107379801185925549215803686628437359595011744842139969873309384058386722432053270873230184887544024722724776381876218516470243461720013334542270075950392312300936869251985524595470726903265426815984422752150055919316967712762204853285610483920531346895697747337779991158688722655686567069484655163459355688867282046817135938477810650504312929654585028991826850351788327513410522791736425774151697722307785592583563672477983308393272813499508106206514792142693203330049630524538141260174609614614027166161298004378359858687106187472213371480605260295931249396977362145523763119876263393743326561457079913430426883540229435506270553215092683459118034392459015376391844534864892346922980893681990622471385384404518568173339419399231317980562243043731161394947090763604456594206135397633187434252987478676542825967343999540931872508168754579549133457522847973805788995806638226795794404018295888262126904591239703910087358307642511011122805174889954986252895876756124455631158491011863984474032472879453675721147746290639307630088018586003355589385465368246327494155478296520409301457855893249882916843787503271495405512200089086638016493608085903044148292546005885988371286936320233766991062398261225859053254745458036952866611831481260600838644983692653338761936448237083855912601593455306202889282270130321209618342457708084651734594595660848893927125888602729342109123848263352961603672248019321027731711298252197798273600467544352475609465157738090338116072655376293170558636495490134914701969442180695264139822302568086014942447186605862294904410789140022044849130771994869810172419652794419481089802316200250221955293236768361731741952863487434116140567500230923089892760328542030205478079458007529251884224950568448035388178399033094533123628349235622894559889634374408669612617591707356812921724315189608160001382157737090453617013720028019951385910139206740726511808235840459166391308708069364002303626221851618040769751204771798608844802926078708504659418306004360230715254921657046565616336125557659524903887106290676227646456775479675062489561672514297494286321582629961243370645973453061332687324673089260505788993559484464796042860364704904711261337983128118635293344353442619608805240762396594597082032571173081761295616477397284968900265729998273756695533167423496128676070371526957297420999400587375472199636738208041985063096110216231913728137830257261804810232819674668601643944901694453305597768492140473998635557381463768621828235698258084782342805479379635952823003782057181786265731683980413502628949093525208011468628129033750134732068546827195053329170053141220499759884565492375816972644990666667730217926913089784251311651519041631300934988858972893919708500198398824262956042335001836513565103913411189686141173373925625354962351464232927057338368103762762910848007523706601143982255293097624024661225279807828862678289163521039715098595729387959705952786114874804705834356843909653387469600411898795426157088341214545814408574667829001603024246724089264657296387856382767734618385821017796634522134672321971512283306447970192971050486634711521940397631606703082012025016617685884990268295361794300671831519183493458758000804522571876611674546665977680809265135958376731630295285554022544914735518508384246116290396520648025285827856139533607265255679793946682324198435376563274947548749286941108037742095967787022050883261434277486371715566431692759394384402213040436370615314290459325346321939413524833942202183105993650665757149812871845054744837437944840968998038410921839735612883911929936138343649965932985535639648285553429140787638147929296934115357076162238907311193301333749851589381091555345322239688289049757333561485527602096975131020353984824459832967376463160254551095069452125971242904381717794444398546616137251012493369953221765275378593085603193089039391168883673604731926162484828632084913393801432135483380319456637642783526336355187703170522437879997670561501715725107149747545747835227265081799626590278399490300377915136575875795384993025702023287123962784706479758655224390845332848338125745608846863138436791328870054580789355412247878667179211812281840995949681894135531383001586036069447813430237648208951906195827822142869178139893013890707424628067211712618713724819593027347832082352386735351125476448839443796650626205297643907232504513406067843214932944416813076360438783046008346492031230793349970905906729655185938508552696937962227798253779783584341427727484128220046113088637129839536936064402614401420064047405612482049725955359051464369480307815230357353364182176545604962014509548606371340219647637612943372799111817307337239467137510450718552872811845869926716508562998263853270722068443996696583349742188229188780526945831524635496389215304308214738750073263662367990939352837870353668416992700029084706917687109103165048561633812464267058048937251384868998708906773112903939368872531224287791781652770769813143815865684790709502207578875938775827219482751453435551574505026247627037914502913793453196945570578050727846791278293227924947598200257818828416671020301558352988762232523253544522516752595859170754659573096302513068141284678222037283765637439181295536857180998549132091266451978932814396180467874773984416421374861383105761026885415996994888309450041028037098326822047659979787068272743109935164337167073547996876426116725223492089378484438549883396634279257222224025688830312024876743429135180253339528350144613222002663024858736097751898578398774419327785139129403455292267415982099135617638227126827881349688625459364916510110977494107000259507017154453911776432651636174079259148026015691029862221068234212043415958306146502570366999486593655381213992404762134988949087494651486829629699147368437798805043144556419455910507538288986676003890379570258372513710382187489436968607686773664375819067222623693689686770261885228784802479765710303049683357410035144127780367284660443985942513305224278340525037149805169958810239466922604733100970490370425975627066914885624670493452881275959366556063872451742658262227694535073581553715758946406110952736491422257060213634126216494332264981493734298363080051545423867162116518240569816413541092807567044103216421168112507799121947814869342969572843604725215524938048301312544926426748880576594504333453577338515138479676058681454188181817056376490308629498329371529567623177271362637661086881107077287065076195540768540227115005049962784954761090867543052996139395325492704789217907508905000198534361073941254599302685553154401658909671393752801390257034287972904552028935558142876050286834637312884750330554587912837855249022455622770010671021845487004332379140797425045432660786487944936262412773980432495660889528787289168686494156015010512651021237718142564772924226518276737769209431570419142346242753203482406929724588256736062302214065066511140566370827535929538730783524354095976699351673285192636782198685986632117658429501788941638175100729019052509930718558682043307891864425044874476653998596142453780171489862731748314443019574177233534092865137612310193091649974276083809397690521100968403426978007165117803864662826716280960377996201345481305213839981978692984484328189333041910958610111761438509254731657157788063143185851864351149453982853134042772449381114556235659180593802011431687097086835794106449192908834210245640147505284806459417749877972853203883350025724487882189553980618310365309472692462206786096074023900094042917527111932491529464140321858687386820311682104511246407154052059131343680626307489590106986936864589478059927562105882886227717968518875911076603959828604566370461618452964868187323723735868370712185922405371909479022668025999598624677921334170137956620760033108069603294395169553975612232419677892010645714099156030228715639272609251865879259889521756810999052515791727457505359235905008930546411826513699763264449911574535770593310801992260926673646823868399138733795221649396562636032987778088051975916957308586197230543663502436145347017786870600854799277021558960908024370140750036935712798397006453118380813746572465972447837291807077536680030136102571211138182459051364082356543407820745919234278780032439365267288082667214025420786101687288367494559450098843824721925172859544955815974202102727430733133244653958553408100006886037833413936841211272056922483555869705219652327429291968961035913365109615686558114444123896210452512945293876546596770048976793956610035061734653624701931307663109072105377879030715124737717852624081248299505715252758675924458360375752539453993672894592255303113906953452953303582085933771661124900594390451365991203872657405960745384404070426407949653500789847560291504344197798901604376203548052666749603201160339983765609773150972802400197573851061284678940473730779592215419599106168200712633161097437517086403185497555904567682537390927011785772193222005187057131738139243096094111233076105611052999143381140579972218842346386317370509432597392314745431345664304632843536146627039293474956418926833638179880782047373979389971497683284012107526304540837619459821641170442750311184158590844118454856081079009843174856487120813491132492103618121535919622100964741768130791456517171142097872419469616782887212424781104223170229342458406087553030850714589961655103690956934442518164177523593289584804572314376346636395996958835961163530365373492285584144796325509358006345234474155315436212964040559179658479315852554375260480712840938051279140712521501391221216033362357275708959097496619974336343360475013450197282163610816753091184044770766444995441316450635326768057804336753934080016138389724368547859759424927559759642228918952535298876701654001552983939380451611564882293912682224252161726906733091140328351979568804604325700508751362704616633227260534712581685092005641899248241584775596657211021480019253667179317057064748885678075286639517657487175141513244906027913626824607579321032670791687897029798929258045592830843058784684581186422360635223792798058632033625537501625463446851455957854651841070201788353510870450946712027720590115305607858097840619601532643601458443787762609930343275013965022187968977263428239104026457777833723739458040925523287165046360264092342644357301763066937279102975444383358185085171431604333572729941171301614189724065553782319592912203630814594975174676740810076975350273844159087654206494065806905152251792917314836180579795710055434990952441478096495571945264932282819737996412606478741864369674191527506538725270762224282967146896701049144322431064480384939353690127119196676976947239081277553734055239119790616897741972230714703421248159292718738958519571433100483760781980122151079652765075600306503055693345627388445289728442622553709533497543086566125893657870239815708537743446393049193164483224198940233259758416062483275985222953491253935314217135268732985722633690062297707575686574921327667641462871834892940859402858236998493305072168317185132371147725565944285867620114150802027230287001088354372214039332873199875047543506419129819090126958053949769251980782909657179325259817213495931133037411769902782834990174654813157692666414672417499190965186630567470423976526110763050326217393582602499596128964793404992260039178033570090694758737020500187992942611192369386406479612606866913958587245724002498250723623185323626117451782294803296874092573550452251653704784745600406044129763269804629557541158075087906849911718269701188265830341781554332399421398290157366615647317434167831127804654150244353750735903281375494968779990299801128358274628904458041376135709716749386245114870424411628875728524692242218844737910228502316130991183523310086081471243919092221444692547353615066438755248137040895121914893422609030329631058395355521610638051098239348137076656857564717300466800944194401519342195155544969013194809212042522184062471207615176273410557586888472579851156671276185434171349765808723348859297444405231728511620702444958554657792952573349975485768695145559183442641518793076075298634073635370997334184894040803771296967359584080098837820600933102736188721041683756374578179702147395730600992217755802355876770209133290033878800995891609316361770634296224716265559482315324721830943739582443753195007862780264205047249847463718455805573357567690476578200178733428325962989962878532642368542260464576844746792424171064456549284296546165900847773250443462454640563520905017619030865084321591691137137064251132230889684402632644970114408509699747810321966227554264128989766467877522902923899065110732932489831913275530074846524402162189763931508049956629140664958177387259308295524728392241294237857542235579893001713917819446938057279115386216700425080331366328550326805693008808487771928946733312233493536781964845656397485791610708031000778370565952277956480909299535876762282992768713459111968558397977428336793757411531802597060188215016962137770853229499383976003491684351004527413059342228600653012471981764428239124779767105198329567074248259863820919172939840588348480365322277158675706867884044706728844021892949498522209445899939657472132087561472272807331330418769268570985480539617192456662258592556278424596342861390904504890832753526280340869255589352634189977159902185463914444313082324339692552423792910081838160300630822867592245804285768451805445351406368023039966165125894143310691755367535555274116557272504158890119228651726078101836174106884349484336016157164018584858251531542987298751158384491719743370689403283478150017924328372433602455245869441060358389750758567159706428733203593951817652914147354464547936643872971575052793626599161042110744931599635751238011642660575745060471773294434906713205977366268689428587038635281112832352497780590981166944107799937800639133384773647887979217770607423221973455872447014809655204852123074261693922737678385824823556151778609765464803403722965354478625023635886165749906746671106297279570580396561734422633593414424181895685767741223171799843774189934153431849385368150461197497141146048766709396509064177555814399318832400637808354970747669551039690275189980405709599778254032301465720856917102622130996383119464192632891972290689499755433645117334236055375497462258229328279201734514827517727338358092596932534597321939915947982989583265524848305297237958528531043826360176059259275499259435370227945303982494297028078910571527464161077280322166258716482322700684119583744265141677764287489312573494456127239071434974617406311133035991198377174453183012076549296919711093591006888506589088909559618137164740997784941246665778044685511647125571068330843104929696424703240319659360677203534734411693896800143324386628075844252619726808319725237250058056302260168388078360258257890599523010462404934010191705414333731770816589891119863630276924563090148630259045831247729038110835609093989005606653341649530121381379578821218540677354781000187508615288797550851461909881055090354253740991270510723299746860124110498762913763757548326098084733528779977278392415269355654834202546435291236063740720418563093302495087435634084314448432821153569347574406919054910787097509354084254003581029795204009569327587078261553167360188625157504655404958999710585519934596161942000920307429367448316250724037585806633094552589486163703464133472376479841395732973230086432258983921128471495644837274861127451256324455959526004490852912623275558652295167519734469082917291026601777230075038398727644808783570056089317512401675955642627324432222970126228045880553664763412364568795840947506460081665479597927931640418256874323108953676170860029973633924488265944295047797222492359531446409464764558795039119143994904212831427012183559480918309548981280316277295638241580631483216418902347408763315963614712637911742743955051797169008552609390048432326122594619985888886710277777487710674190205864838495583650395267579867709374529866591215097663622689763171639969953366368020526496215640755846340601008296500689192984884439715583813366148401977295099842923711349089537726091538453871899806738145614336135085149297572353851300598989277829983962376784505466631872552194435208155433766320695857936605150304401539472369054879148321429372735351179882026275972541149143080150795141652825618530559283935614332782655905088326194766864089149299158726419056574254614830448959782725483092411093730524616139399655087095564680411152414890253150958211244153425317567157051182686823288219218404976603953939710699297508535662788443237665475666142412951536425661935086697311697853327633089843417535657590977069730252431364186710193220325861550645888452530413893895506102471168754024743434507534211422129752020683586409738226446771977318766118600931835184339522744744391992057340485478726540876620004304514071162149338704485231549350198552140506322308029740762933180717753436939004597124847372801454365321176700267241470907649403202244977327231615129470105865005966530416472932866895722281359101155567781806031660072135023873168850703125235522764352369342635141296539501319050362297108833083275999901456867835216556466965056401010658106663998263499900553967397008215709850290103359256503380177110286389223875737197666508337464022430475667587518344384158606582482999371310773589629590494821405642387074842415292445196104915580093656458617435268283207299689271786288660333313662371236954781425801722067289414298697354511297135894566810320707727790771274883132752048820683965951689345674963942996365051584249741020147989139362948981657005824429282567686116380033616569657086772957806465414584373588866431320609459492840528323548729239455023398979596792334792601930968135541218966135557014191090977004243237581604314365807066020179902639460429665475869235151410956670755835420463821174529330206389933739265539877631602460786187326371921550528388809109630869351234256712218310084736738520140340899128633219115638383458391537081186328866574432431795698451515247990242520732252056499676181666012497657622847012418563461077211533666533638137875411269494714487366745458809633610354579922976541545901298714982126476169567743923504734952008034566998671805725749541651602451933150646089337827795955013908755659792633612707734516706860616624659016576546100300139950257686841367463044323213394324151654712974218374975556944302743657215866885086082294543713763188105667646511240965445648902865565998387629897005332802406215697655737568046602723328110849657891281637588458427412324027740158024855656625228324829891679668806943513783998989189218526557886999642141812692047067746714715843014053926929130235697961452486553135455677398591441736803144587565509213471273530477536019648987822113310664214864164852515102714178668608796865492242897082266145996577945104825121995993751362247580774293245090184381090195636024269346274871070496769468263216529241174954503351596806335028351135418443252295958918220722807248301419594285623126539395930039982450052562725686894375348391446532640920811820002337973415916281652024820934247188618329669823952427753136272772671423057822485529566668323761717081076805228160856562662949018919822882946391344185341267810868077191473057095586247635650402119429521193769801118115538435601349972751689670051375577425118339722511246070009785568575900828304753941368301424311834174371337926383641061379174241602023197345871134000759823366486510797240197088264925494524726472669448634292828545491401711091006028136229471967399247469364007911337715067120072523236599072093010774630035865193977288284740079495243287388039810801076796836632862824760325173761296054655508895094357287373513409670682806252996835704983401764445336883450578456224903258889365213041440396986738953107930293159776741962329286360025766935498334994145350596472564552984642010689987210709792079134040817557865050333200691499199021286122098174470167777015709854002680883918143954967562128571654555476398089882910502627992029915719755773216165326205834114158748345291178569204841488219734443052066206459438173530641158384695927061822407198053351734078953306019365693806973092532721494845412897475909373565091128166308802744280710685946119828512092903590163851614816984653993331232462995753050241030924885778133743115730026868898894944117555801275154973017084723182187198607201190868750723383006925645779499373813857830492078749714715740219085084081540393966717877906115141246087852228110305151660772777712770579807391350360243903688756680910757294463750173338458388481563188859330126948558783722940947899700023405317819001017139801147634282737060538535848962746622697893436975387275106665853134746031478363386985050147790274309442694185885993282658906799252246875418933919759725278442427395314485246942929846092565591933108330398765727801300405030613907559892616820050515219794947780796725664426428281129009273177256193057169524132925999377880170370529242169989921332111730873906895028045168057961466784210701113062034286380919837522265940869403245149752780613608264940805243691817764410733523846036063151969870069916316601116517021928581393993532044064580137111784249874078719798400401931403222232818231935444147987270144607576060370154914940134657030508818350879452133185731547367592112473914201993940453983653413887346704616250793923182735348666860502810285720977485837867949987997867057766532111504292548171096905471089367179612538038353102585835850410348262139949432819013404279080484443472297828156678515766860889454016513698429834557669521183407323180126762933311968209639968416296447018612229437240648807342480150845787791282187600756418184319081887724011125844103867269005638246854490200665079996400883392747116609375294353396223574191966657107866217525549545834066751655868356313091342254038612925674283644476837529668425934345739209807018099245060581281488439930560929611064352949815847552272630008572304036965423203069775929309154700282756364102805839844137370953520696518228430258383497232989118887565123268447947637215510298072761833269776815539481752464121971283867073933386361878454677752402336907647174318246588289829499053717622510388164898849685577785078698437477082356490336512316204839070738654525597178483689543210065223203343091065353017705689725147199028545295513776524403981013326901591691437975713906259141168285978781068335050962209410924894920197428714418997431345816855893375966665041451166553259051344068826290499992620452219761126545004197846965630511154362858623932031128454631228906379044118274379889130646743878589992933365084386969467503551521648268964085021767908055396082596603291787149297846523822862680493833403104714291175042741984807799065730071121105866883358768329971732316808183242750539433503796567645475340668428806644486405751103428076940023355769670221652980005065375438136692522276194288618364013794572265307089723745034573515050703155984181290930864561239108510002628455043931207621865949587421431467070468463988503229327469049975314896796849158267770398517491908694864125112941632071178823733591519566299113258464106923378598930842619195083508937888855305181187817766108307828576739024175040369174211886453579859437178924659459071613737442050903500893101923074357160167972832401605470187024757564085107397416109334280187696625203048376003731179980613339831638713470890680915981044639572263464380246661824867024340113280790424962357056755677314562447935448579756061888594908352405934484056486312307557206934521956499149598595720966320477741339331430503154856966505864503276092036645337049088540454990757792516101495616540815743817150827047621257009149061469030915097590820698194722806288514052985044794816183839006909870508010286770889743446474598214109784648751452106601872638558929561935893516131189363748234706718570732132509085998879669273722711080778998851147194437207183237143552612982737994439254594446504321653406177341592490728677584409111423030723523153992074239061034414410991217834757020301328183492843905839388218252446023470895771233976677825349353477783428271244208082537046112614578843206105843264456359404382208271135416383355142622587481462533933945430471848046580758736888370012058368728780300447770152716264958586121632767845783027072086468973160645977395242786991909914028275565332122652414431402604512573218454347840122577014218225505853685110389933273214989585013307467406602805583151980871903059132474650147389718375024077703491724180389022170852423090714606967390066990641980996870453668112286550513063577781650003767491890372662719478019868214653341820021711259373202825480598093432179103747585716569104774327761414663724397189684652879857962968221843231188020503627053795400553449935847332519042763155672077186772360470406932364729382146977192190765670826830892789780064028954480480343511166938172387615732428896461384665065671648465685257582150759569264294325832760672418273452351266259834016129204095696418657417936869393510104315914711249859005418283970555345105746167533236120688955438042962361956155154790417963404470285228827840142323632766748347274210990978384590838337140314769624873482234913929709657196264159622468452150017488761814542683258306417095690383247547927888851173835161318078268951306040330431730911334518373763407635179725816728378199286186011771659212375619193705159911699616039776081639707620674015548099703966680579247790509278266156653525807488181482742874325591674793548309593138783709809671604341857886474912619834088292423586753275538573061107689186429678417518646010235473413987467276910324217321307918784313814423458583617603572720241538807854624527473446767617199356975392647843998490131843116357557090923705480268331527508595915753780716528452323422586862619538235181282525054401151653625000665004977907583899361832825024177103850200917352320830951739800399200357424207490971817711115984054615376300643541062101049842004561103949711874802368629833654601329978457127745741169966976499701336587555342968214854643149431282894476672112549500535227958100703224457283078109476493391688452328962985326890202923627552830435079714675397613416144070982179080753999877876466582880310477320069026245435738352305468187436637117295283579805812551606862109858833585578996430247809378445534738735415364394594953762133752347877899807666408390590019483333056333769575287895821638998183509879698838662220050437010956267102204887676846102619227647696701082786409485812264249739890926102646572727239010616495038200467354612587650649683248057744605833581177530482095983538023085979010823857196053817621737414984056490965458313366102591201238748593765151480038402989940553152491566982036279056999925983321538596505143092828302104570618839962127684781823890658802951057037088679278945352059206507907804332823218223740447637752698835146402564955074998044033562302631789927841723545476683872446798262135413776978964699533815591712990737650266436912896475000990747180168320751134355922036558354401869676756160476107594128811261062868816581700945679506996386218162849412865767877445031357877817765149601727390956738497928447469365744475482730545127849290812981910971230347793109223908227642031666249289216394935140230220264005289614915313386856856073656207795009630910629777989482824641131523355444970742553825553434606511712146374004299338714599901906161202814651004016813629069463005815473898735567718581573166362335532541669156680949380082464431770671815833683506989103537877177454809898964842432635319897397955487435492697918806066505807631979167311369761629063957465341369108760662627006932921815410956259107526258753015313448139283866733979115409724183637294941769555881830921754717070606837470516796155759966253390894273572408129946978313720833532518946934643510436847520792481673898937346291138752451071961524798305073192006688409189883701098699582643137490149235989287803961458538013995909399689755002202625548836219439701971050182434203015501441222427293627669424783335082916767063366769671251707455865037355878472064021113956056769107207226258956152466636787182297890680342657983028884517101678509279392377285589134820382125821214898422348753572198561626341972491268192751136885940110308963153087224107918127088094930749657485385178415455934214988144399016337015063037551633746942692391724871302754390025489789922337841541566494763984824007373205303820267329458531755276087670108858006362159163385012855235700397308255624382140979064512755944953520630382601124047371344407578963063956181510598190976735896853420759208374856805868261032570032026703487461307414878756310609165512944468639369941293318045000372309644569600601972630333539327425777631941101532633489323619395666120325969590626362642088255495843370542990735187774112576580481337823234275233086418293228495345571048106994102600593532755282638790974171268165525688708905518201236118093944497050567663280026704151985923801374501829465588966350596966637919495225545666824768071061393745032273491902243462734933532965019598997561920632528172710722620457149163866425414758929945035743316259682544429380676300036291411560129265169021491577444183629293360573936202351184741497274592523936398739561500640451668880212363569562710630264817437014875930088831199069329664589439244102810491643127822203036868140326382274556034379786865061775662442368279719154395494231102827726446504932743482062910789422603937494387310489162409183535843580260189678295241159619650264334222991043589371982924516555920491667334685766417521976889918558910070502659193056015464268185898442856094357615410839020678293902718821006324573856088045290270081582572301772876439138082561064449918691750770926750013242590468028103501403798794996787658504969419659197322641544103946083976361345623541909633038041197277838190402568422102206362000707797390869435512282192744555011618602640820572128776381195494590155681291785891160222044232394450327404934164234705230986033418543109784628025678574694359770185619606589003544638790024595385567616503656170551030271214191311679606414002359074667286186277616004322081539524622478352957282244431357845083735515976795068882090877117544993919418675381532910613177641885606049308339367549890007624290783996805314072538340657427143451299408980949052787891214881472560412010667438369673679403963535609571390081379857481946181958296928375423460684308228388734083698496816631181094566333829294555570444481575633534284283953632685833086674299633796311245033005859940880232466237640976698926498802769721900855140524416723839831328454560224796612174767504409687836005721373118024900316362821695616083157663648623977756773671764301465638341400254748027974184169838592644877273903217080761737152160738126857641653899063481066168494062752095894056887658719012782495073136540058980044919565227351160335542354308347877095958841143297033636671252707777520508851472110059843494390577624066041934139023528109067952231088232843083167661215923276929379937164218520277847957091051959585282467551862193246410252110822211687071483695701747835168068330492694820669476568995404200176158734518095603614669720799067631494448545884796413624430546724471319710175453715982574052830481214247626450366995230356251657025057332725050183259716945225122632109376663609118748426542419008236864443109628566971980900017974271203891235542741892246404247054987635977849398025881598987058206902792390688262062070660844592311394896806084399401249601060997421789542655433533297087601565231985935305091926560005414841549021277972321449282242385238513869766833447623245344368217899813656852168001130333735559721199544323101014624753233835555475463610566901622448355022324005021707193267470489280956528079083208617490313060038011511861602328183229200396336668529651426262225085132490551710613682292289027687887094942170146470211130046213237146547816833582658387786655167103011056398079003508710055733155683081836515486192618160631831399214323001284673575843858577750957655322815416755324283452222138597287381821404964619161355907885214839294885382663684232439276327634814451796798591222171148398405539965073904159331422867203748855322902577995491034965846083883411115507217622543963114178731319945794917036776941870518774344263246679831123058559515929214938016837735108497456741808423957593442798071267244189863155306392633334035144275892642677286714712093865661152773158347936088052687832203103272770631321740261122632342748805433962015412388033839311579879251908975789251679164322630176143256730503033376254111114281643227911471128226690939344716683422799834735639190358650242133370216109577476365143299161801701605016700613294131464988851648833205307110188771359717329395150250949136662157751710768079265885695467295023419586774524044160561302639804892330768700707220575155621965076914735047286650342166638740315564019357432714921119516079284358520617514472619189489988046467925343936397165978509060931937626754475053823161155948204938028353161516038337972305108459225609593640054123179821568156027819571828984361388112363271898307537714226653355418137391423821909346038876723960394932673078693807939251951801077392380977592892763227899248964035854635465274310502251739953945579968398058180953090750401034225410730705355912399532679558448806436501233089897379827711657642465441244382547439479654886026681641263473112299845867759977682040281687665228346290815562877001574786595498816679635056106993113296524538531758677974972194431586916773795178152045616589491092863178440869141406925271183948269835038737776133895812531006668162622754087362358146324955197574652558698627657280465275515648573354533773127997515533185001628922016516756502961057354317260991811505766042921229943703085706741062065373740595620270311953317523907688904912544675808801249059059270213535891454433882267137438390373983756365475850059687148034411976702541000220635970241278575370248439491859945923045141674047333661894120023449945086772914907090836147559389741265282060336611506862935384270250023931236015703342461108825775920164654883012423394640471336862880895354966804370266534955253359686005655656543907831198219832619623416261368606496774934855260704922871004193693630465842331290753486643895496338829082306743796361325329216929995002333909812040841393591300707689135174429702296569114985192513516316378706925538380980569943337198035919050410355406646597168219355595994649284092349858856266816072548702787938153212369782282211194835015601978462812601668678870521696248780300216027748854128205955887149157714708950538490063520081994993069853624771000427228019937513412677860614494977656748301493210063498332303696961765980812773883955635390291640882773054465553286605944049919674640449377125222767638716827874897768210639319705033116523461688603800704343403230092714566625702253555561818625500835037001162945033312650586851924198528465187483742311485747542433300084133428919810744601307102351727158689442128544154184116707116193841668695321008734228149775944533173926741914339644217828244437331610464223426212807392468182155893933881405213603692817467041612183510349990480493968515945922931343049259049780548683958619353813970662458959879860116910790211377296955046352505066051601004523055900379379703197437951959102250933806560278806470757404619286780908336751103026328712997775305848906280248159019814197460409642706922524794419521397204337009781420102201356587548113080311234171266543973321299412988674597475066441578594831965986497685254025430277138997465019302114447119358139026223075111505185478994975961482109119403721289395749278439982612350197128866603420685934129031391430110660384169254224950931621780365552353338971358309560222743223115518256477840212413198855931410210958842884306783935392089290892920180459275848032176883649338622634870698759159413425770486971160749844726436876882393515065100014689420931725546160937446979801537205540275775415406116145973447438062938666506807933134367387915057263163796890174232713140097239846433558353178325275595895133552546815564734301484665835804367074096559817297877614678342561771238909557924105373376896787250018077702375938350131191459007547835304442452996588808054690469266237443072885569349926357872012803576672306254153301303851976388603910672179327011279197896620478255049556701769175452767745212353044159393369322611410672018054203705352611148291414827151791856742386250451954547819079439671228930080850883807076959238925951703203706586179160976480731659556646866059755586138351179145115614580441993873037925204287535973348691634766915214205606535736210165288411647849400144703168479100165539731884043883194151468023975905147526833373482253312364599019909495557000336426043556143932198227448215622588560921996828175032433181453927252960424510080312732377668019721195956028548026335163334131656524617436937778921296242101708645871300665007512434257163299268522626282922141583802131368849893754700035016639500973372516049488656074732049455874163131467518282095391106610531229843424541763571108318270942038822760922595932887105706727452557117548776829630231644618735082436013212114962777910415934798303502864722337685321438354802784424675345280287764473243550265879849500568542141584491869419860044630048544270634604269361448926841845709155632133680576790176566879823817882079095237015342639835549424066404160183681518517202250106668760956081784574385311692620893657652999018516408354548884431565635065596133870316699466157267378190248012067901281309805571166565919730153822397284473798348238699780886213859983621499263554518942720408029745634451931786703813377034900593560184976095298193902340175034840473322798901214626079007804702507975473092001516438592550426242654366010808124256642109046218288155099352009237889366583900054701912694006404144250428623863736237555280535374099681532031434076172096889348036633801486447901298297667874891304108493957017115055501755736612430448813635894999487859216122564532440883058367402804300601212886437093042088408299500741151807409187286840071795493693264381365040751874540279872995856574635241241008510031805294646894094808997830704865645238471539769192252600968560641005371944374457073322587571256793257374099156997263660050891326143168652810702810168842658631278080618427473717392960952306555301424291368717821596139685537705287942357172993435828976631321359449896002511834017962469285791154665655334069523510217809454025769028576888300227189610768553085032793581556253233639627977149019831028083336505495248994170841172317148657843555445510604871483132587834885368740015578434807247323168889368507461671989117101749782145463457628163894540196981021869708224084049741299873546394334365313260169546639098536493191955935361387565427563361252592814327448063684847156792649619850757638031822049679064838809645703769552202483870571474273925883884653715324756694933690883406597156255352459145458987803714384081277878034413292255492016989306824143172579636296655905269378964579263093266181252553063522135512348641306883072375834861279007250829579273151661749335573579982706360234654605797916576593832533089076135628571393800995131974464704268841081631992246817883338103691554687940562779572383697923682660531505131278567217991027697858671141635258122977508272962935354576356257803679816695625124923912608426970168617185483395935189306732887676400635733104130275701322190081071851981173047165019968425946402198205784155574633743932406093647912551540598748900163024445708578737201394815954091168557844614576910027238460772335316146894618933742941442101518593772548075722615207268261638073083438309163129114826385615934130189899370343481565866805855697221927503261671549720504446837284645523614603762653082973600329801876191112567297858378260937636391614149382777176740611708824188011235759002800942532196004947816244438623341098025648941432991158694487721426221645804852511126381150553555025246385896918405423362721973934409205605560038990750589275139714957084048627457406227079615995357098315196116335077116783251806273297126826317348359306486677518155340056378920704058966708016139501291775815549679428040415147392584705970477066212193068341463168538610713924483271989310153942194169873543960860482815119092293055439870782618372719489477130474473116834651927790498409785784520432831587617537292856225049896908226580772776132676305435713363609103666508164796259959140162846334962921893554929069769654419208747382877693956117216392411948161430329771521524037809424249624901817407343199596571964359820220040875727330367682778500883860496090768266718324284416903883901653203808464442102117816684447136327611466989073488648137147396649691013651514526912699991490855030191848109762268975960588855353169267127979888917548753840989731366989421658256821297636774351940498313489692106408112362664217594008024354764184791025393996320088354241320528347325857436417474293017898092575752448951922175891736119212899145878188289559202309444252001300965623438873456201805274764674747040512936969580320844069144857160071184778213713793819554392400586864373238450045593206106362522871029750449365976970997204114842638170764077305665348523296604502052246504306771088336469746266457296496079138071229944329257719292423893679768763449064370239370183431045923115756186729443682024988783697822097290338943321000683424039279573286810631393987729672573567063765889474638058054703799500683561621773434105662203770272293380477700421478456760579819943236254045832316329286569272534468488008470001671487300458671572707320354912873214704089287950904000657470089702481931194719454331870540425342710579084083345653340986738171297327226735503064434720613369648393753670598936802993086635564884406365924248465430761903460237241105073334946187998301828874032242405362104588289174995844163312586746222166707213265456052928972040272311326409887151959318634947119364804603341999895718347882561989069537036649243186225821920637128553027647217606411892769826801125536702113403327437773195506690851260312825645344186156413508789887624715691710373974245465550802302888164898837651025020762901090958173922973674146148986099169510362625805463524381781241844979278155586713988197942662657647262358298487205971727621626087611067807864616006312955871479299147394669509721408324469885898793666062963521689572338381321503928214676731829971905478403048528915743385513633044018690136959779291966802844156041668741821775859064571932332408296948681215547788335714505327978981253726932235209719325846786289666961407166013506782916911057376370614698003169843772689283939455256780143608393487344531832183568680961018952158199152386999704966262698719739534261614643888348988225633294712236409397186771479581191442497010363385812148991749862739601552217514832836422574316440773181502902311336183492455686641806517502705125719928052701476392606777124335310042462853732630453383102257357225004399421272790718293002465572533945113259927692073508968933710803037210188803834411932055128803027182508495185014900360890239154500145522865750119591092114595445320559577317650574006452494469330230864958052875449850686416917791048358715636041926669099952239413230056409158331130698814235399216855003385016649305217642177174971549753066943220357004454004182254257549375268374621411892839486061912016708137189377344356313778959905238298141371828790244798459914520868558959607922267008570060641422022894719739871078135811480255543294132864778170439308015504192107300075824853612071621487843526910512454180659325438105297895638426609834599062631049601811153428471723447220956167521108999905188754628216523087719363193163831008287053317895969069871338682449141741182315201419249089540353349514965188813116343939789241735786771106032149308255604370380556205233638438393360300942920804312006542813932644794203107205781918024795442158145375201015841937574233678565747618902705898147435112236041341593382101613548236252504499819577714522031793425893405486100124820837625215967259835329343620743041680866190291500978721157528289115821002882541361834236249766381058040735658813011936362414550401773016245431793758003074140049520337466211725012467975898789061583703571075605048232175873622921791256678522341779247762899577894039912382306300400407891285026843953234432063529713068047872599485962543966077111494571154205494012138327754357076458415215234500131975775560589020608941847467281623721030281393890362819168884698856899307266695752668751558577218708773026771377157301203935503846456185225404916812067856489226183973303737125584686699726890696452069667444142048774729229909470324300694131473604122372570762499101600848310565621877858751218318154266561147082957820934537913142348756508858555077628470795153388336497571256576446274364405358048660377685530002775194439965357232163055436387813217216192741804937248062408554341344882013228589348747378538572998127161260578676107839717526699702667314459101996925110261844522076479814045173121902331114085581984833882400308017231718773545176155246694131098420645239454614853869100610754887141789817807672839849726602452536358501090117700114520102905001897291551578533828760125492140107812662158812220483951642520103428070039625427474144773023843593006451213570793802797546583648114548744273432009323700915469187877151997849141189688106339266150409985422748286705010873158359665663518246477129335748150440042225426342552283388496014192477168190404244344258003991441134941894259933462404418198095327804419382677483732234904906890147584617129005311287223916619836421871255961767040787680763135150181826533384581991025670812819041218597238260781386779842115094012570381595371583280916251944940407008324056829051626017985805078922257317009349022238239743924997825749389648473269085519205923999895929943995827217557466564187467804750056222096395559453719872076424342116820767555445867347970774998223801577268638684453906934649377850573890699973096526602333396908952053267807253349892615540089582621533491773875781641884870944059995635738658571037748965570378552388372251656205880966843209560655520406250666788626137810270360741662831653724196583585657657817532496704455898921782038446992716722444749688462975820812864487963426649325591859099635313638954895318875106889256683558673881316792015804232460658363932682616676429509763488603765030082364847917149715002563886955328261702308192598097461722966426496688656025708743813080052388080892974977654113054366347829006155579283416441114701317608336610689429163876320376565018220376876189187736656420532078662976172462018106983890081946853683280182140886424891641985194597993972757216825425900443476788095971520567292617559321932606482056479495677765469493398991308893493644283936879935099437936110246490459879581364711332622860565070668319518577790991228149026783373024209643091998873402392305400540510582968709878081614521662634603002145790970096101387961284261056197442448030798428330496083675900735123365943277874622991204181828931217565954242913646158565384213498633262731456486477221989823826890066725414957960027742322142014644992602268787320984138190245144670950390181822945469346727527780015875427964064234220543950913463132158194744297906870262788907332206697204638456172773971620338131848909422354688035699977799808393245070401789693530766986932895201719203192556261334039075482951478790764045416630694598776788638792307245142655842469294920416396020338416374686111471499575282089427638557284766760594958774539305104804343664628889421019754978974712297506322952928707482659722260051809388947745266859808248385601237668782054968347399402198977965526946855112063751931071841531173591707891471656511110809543100201291749002709291277409486127999235487557727733179373153629674794642349453459613281027260097658822739810057346233995388358614654506314883804971003115698470924198236811066064896397906108053495546222305131783141087290195440780706712039633041417092760140478447815155168795955755502938620344754981655961325690419883070333915578672421176629919559307558019321994146345491909291252776454740313456996046427454256088391247136235548042883037273891257740556975632664901645318402723831239333747860340945378399909096578740941331758686285812715630779804439737217659641228956241898388557143411839179037703702546519741903342859593002728257255711035682686067247941505312156029905363488061564509756571347501375824901355311879896811648819275429062907926907339245754046527990037523396235018849517013353741551586328004394024425397501387500318902637629799360490794249200995854272751390487534022457246742024751602153451361090272417239134692688105945136890532572657371019361974981391237310868609612639548367416466356813999064401924214031306305291823756922206217331952889415372457004602737627860263862244915616675549791612924139079920683968449557330845242727117142300816455272208707498807481637634219776718222355246283391158349999609536241282048160955222034691579471787143971765511870081797431106187305763080636417944627247456985264654324034604742966105170716995423388195929346421910460158443192757550349056996990761640025558492556003890555743518481473929616907447515181176470523121635614502608725271209708283494579778934771760149396787243429707360652701262675866544375195320968602030913380278046758406914414373370301736253993792395081144409706153798504310336695583193008382711611573534123189824163808482937512805191251306412395127567260891813302459605110084177362756089204366126037021732123827874054428338619165315981513320539071495945658056084429298946718376981880584369075057038936359279283737844227651797087047050971107794809689675185845891862822284140563438878603437951119588465134220098344318870190978792275077352127878187988717783041871691023048132710668199982414011334594982825773842792647888908079435368034392983955277542158496673550043197615822377004350034443152967547364612271497434195766676300003184692744369162381463538977475899392630578369668802539416973331688502120940482463126933350778088587193905782309509043548618522385685484122202318861403601329242753223078976883884503998389302097078728577590092672862955941063725137514185612179392287115330963786855663949126571499544578169182087732632412275355367058516999891663219400454365137166326543682686460970822660517096051763192016785543203148939042323705129574055041295674622352655548078828501292951599233685048385315744204968585645820671531271382924924315554415275975112339885291579823708944407706167422194018662422221165809160385444098886086409966816556619214945598679936318600244269787356349623826710701197941469466936153779562220243309214307742998339473027791748040540275920901878133695652201735884277927896883498129787970737552266688739832892054731008868823171368804157946966255364389620227587374954737378638962860516272454889092014178908452188860334423245569327662134627336808071508969100610397946575379520620056865607979099855058634278322497246867252366060341611483868602298496972666499328346654849768775232013624765888985164942881214382441426787936468120737790054199125763111019293583236847021849029783381831087175112624672086047152161541539153633487311506467422291527131948209331622856249749410206201644543889057677668339043858285416769156187671442452919106635345059639727673822070703129802863133857243354747295866071887579217359613051621304950024275621413670668741845718139286163135261437521368157023273560560401980486543774128623818089420896839198317987509122774393465616819260707891181240515266939604326442144305662283263399512763438908985515404989599105349784038601639754421036764183562249927175594732758857961780798522574437289031635665043514332705902117324095588087505246546047918293521018549492858783633558962687522629851440113486506253560044122286558869446399599355195551895444256649667187544372615863403893251753275173513671174653677702748163643934193382236794810975797734849375346911331978699736067624217151444339084290504452263664859858199128433764614309896474759361542396724039869480954135950484311710979019599565994110513134496515117323820932447218572063204985506964163280972088437886644017929692874163099239677609287567754059469372564541563339078779888691163020634837501822119716428530866824319616583738787020850427460972768983343675248248876747975924661347772553974587521074792579515361170311693399406476153336301180407237332726936607441901996581559558739827841926414455468458704582106423287150474345283498499504556830205291673853873661632222215118507333105417455446498589770476701545316871454365699738900355535310902050247744400229931583430200448694430259689098445843462812643894084730268796585424710151339579618184321444305036713722770471655110180197922757935134289729870927511272058440810049955120257066425012289218141406179215793921188553201708543188151429359969016113992070478243701157602638089672894889226705817119656560824981638391543771087505739685193594963052322021232810266694765640015422255348449317216550590328897991480109957860769073976963219379075134974355319063489994018015694966968164511800968209044361719093680733840243656000667463907703277091010819194548682731539504818973284174771035239999954241312670041111350984629269472886411467701055788331850629496268489382084831081969395595033177718405917388461585240826249912491589615618443354529919888209787494834634393623770299957742040072889272107609002501355288887450552404235222097352855340653097890310952990121322066538843978950055510499709217613209628553476552519862474184732652755841978957974249100125120517932909240712843321352344181314539664456255310153922760733358179738108548599224712154702819056747252192515168479594257934039242364231698454422016074157464239834760820876599456339188598241068000502841470897126203441010553355004587280006296197225189662587648128474496036860024745798885983189534552447579959038560313942034786156055336259725819570597500360711849233726155009923515575445348593604810507679168565920433897315098266420877245341496030292646803747670776160450194565140907030944761163046417580312400288490516685164903546492964860407908264540403870111198536909964176152116152158633220543010458370817521756020433682213108920612080963564453003598400938432487415987460280731294210959482872968593933928587379916761329842155354265366605263559465446543012149510934327076410487274720060272656994709328831281326220771306122226061946450312320964052185369140868165590346181758716721499657830068897494358816102564684773038503802531920382965656104603632204283271854330249220826250340028876451636371299271313703530022286145984233874898368286789915173742659040277138987515611122201282136135775616762818149819903014590352420640216191638387153009362445837804084924060220562383933008320009732967841005323415089938911240200125194376674928353450591726252059299737843975951955469313464262152751778549973142324462486907705153935883343963213395465439497970324731456590801676605228812735956961032738361589035217664895888791064617137265427185077447535899481190010599239494891272543707595601082467481424017671373564718544160309534372728709340557667968468412886805601438531085562679394823823848340670172287075711110131429632458780374722278726024000139184995071712678808557904828231870586909066856992816723118761408887622319610121184757898054630569019496849294163989850084771309322700763421627715483556492087139201637283212533889217322758573385692529533455812600231055492838498274877811779463362938134270908389656851805676024604360537149421690631757410600615548572861937106548853537547717047549076871163976676906752706880895287525610032905736994576374027767189512916467897029707847111656832087027769958824616196105847812224439657914419271748449735421835702567083552762205720368586650999304086246698258164863233708590404233472515417693640394367275323362673653250179222565877053252639441254870150492931615270536503727970721330591689964735013290340860598231785604260239714707555988558460317845303790379998879754795397265976441102624846417368382256404489911438413731542882910871025660502593425618086852142654877094936081524238552990592666695083213910251754841655350156340184774978926430574758442632309945684107876642687391050004020109874126273869585278453160349543027353342753372354863453447608196698002870203492134634451847449637946310661094991620036796432605611470130882352485611080105610285715657462236934661903256703703028877316604506210525461625656195109247548321596070560613315600536311797850956499400729488105241991861412844578809478834295128051940506005409050809031070110408652658599729572545074890231584843183894217657154623404725258211852515084150876035996002474750143438825968754231947863563653949953659901679125003766283137200038875065210547950514469704036610468258196041317298611672648677124432648888413259603970332900831476950153381593071215563625242894437607081062514838801212379652709304418386373967958225276356460282586896452668468550266939454229736183805155831314761850044832209273638780418380510600231226895434603706334112512198551376348587040893420743261850012635548761725367458319356755132767580194794967233569935262882911287421320285654915133985800684438131708038933244433547979781069124176303857245715899690999722816014198092364548753565150961052842286577357322834377494927133713463967039231822806194515294632779462946260448070216560471337413146253310696398382575535539422457447687141474672489220186879302416482360704130975239065809493096064582266079675006048134822239404803271198484139006036563936022621795994047925470449802444130643628579441618065479211314102110866451640787846460914260981513237816670811398493545564650532247405609252408197184544422433834912732903121738131096593663122434324381854569756510147046149918280891708326285676654995217608524207128321200450291998837091295871560713545454171952705314794559777929344154021454522220626338330573979607260994557069187503470630979474880976327706603042767315206801296562992489405268206792822697827325660165285577578940983635025375114548749388530276474218819174544346727170293444512164692328237842085672903465444817981343978207562118508783083901980962281090819300879211903973514323272184232152969406593230652970102547631827356712440745898567390860395536207401181641674411717749985268580034561565211971051934922961979441989179898091371643485512998640570661560063701754556776451574608877430040971362863230735028909043522785589135786500162456362902361623330664274626776852063723215564910803425098284758469542141989016364821032662604298434785480820982120301269698957559392643376247385808123535134922303130437057568604896328312973895500125792175528310725772161152745753319263237600307926561542304381083462701623030339760803242284797426954518977449934719988844145428870864253415001127890150152026375991064911965781201273128105416425225220611249496595672078059656514683717477803710894119299046226451755635659955842274330821958081945146141086486558951385017303430718217214144572441473765562728132605707215089172688208116582383661839996386853965662996015233275853427696204705005905427981714401408578570442050771456585770144342284710628885906059787618716545932532592930474321106523882799021365512489176647397880066082852863013785690063327412670444792081632640383826438973786037365540134309107388827006825152838094580249825047259544761529051262164793288299271651772281209496159717084837916317837843213271422610188586135590453776407435128197477289781225983517265041039861270912685109762586335416620256544613982190013575489442541899978542067208508957503215741120313264928550022189851321559552109760942542911546405273014406657730435946217792695812185781052937524826460843115292658149153618233665424115104288099290967803726488351132592923001082054098797078088431509191160398093184403841306970706618772454600399383794695867578868658697313958579397393024359153765251870711712866810944331419444879404006445255290279199216160382809669092079241704465742817323046874500458522920453585750197933450147998138577351731095970631278911129653609731218506045488342742721423895810387866516791676803386381938676741969906903561966725285573447096288566222848099403432061212491595679496181179182945167107177766559365991407059124094629952802258821906925053037167915528129585784779814607218826132976897254214244876532796660265163364962652612774946782662631240552581479747116466680215394223625223737304723415198855424139774058333518863056233577347462166406478726631346353751075716750249573458347985955993140749314662310089394057798366486294328355721554177653739500973043040855999112354547612309376455870704655817049751334624991592619363354328919110030083790869626948489362533872626750112772730538321011782471124648657304744382674985072333798904925720587627392612989533734871146156756169044652195609965172943881816265764064463380093223429539164267690007674031310468913244617234348506859029761145864707088603947194822682038808733947636655469265460844988399958496764727185377859424581559831400224019477774149381146908355593569169995851624020623046133467973258724292584124802824452975762470693149930019316102998206018873269403707830912063896308114487832215864812686017356581751287628781419378927189130082113312429554676859814551761116180948779650590282869919147996178266954574272714737232838379193330416581665001705612253268366497266954926612776552437768031024212704022004841987352713183796576463728161519199563224864219498807454599215429288072839522108123558502883505796895035139161680300380619039133348523429813169994177582427025171743976159601048288101720785457579794223788551582653240069664635983032611192712124760620846323242055486589007624017225961415915014496470016689434669299896567801090645000671277700512656725695582645162306311132023806480501489121424490674612255018394151028380717268605945029634854882614184333675921057497513332349658059589254281216706060163461956416919730533474865899426933303844190887026073470622916500554144196718071542347017418011901945134173398952666587904539728525818016296509877038055321004684725655671454351478431192313590167850354125701054933735816080270675740119410517551328840106804597146924718781446021181802531056621308831400000813347392451776266262010409493822624941500670034702400458804241075336727161083080787968052106515453772096989903959565863711215098411793001835567398127906678571427798290908727435935166425945425742531671877545268760384117099485612531972700079715328181149894502564372566839685085708050665839027810227362761224070420743014790093575332646847525195087775877142526186977891691930689182058289456879979702027558804816373208637757679851326629956507936273632934198288584663918843852138562343009337264796375141417149552549595007660901524425286516876121476430881936518762553571985221909456763361271081618365945517370865506306760352900873245652636714212502896171275011050299439088793721674656329481217702873608522742230166339414438141639089736495195106674390639553034192820717994501134534231734373058553978194316546384612197696343805224657567408995925618659091368195525228640913989912448837894542636091554899255769146435747766412814505967555770601898181306643787470740914027794895410885682246876519823329236773238934674477856953833964304195040312866829374957735698761896718937461115279824993333643552674125718595055346828374037506294912063903553741679207112182025912018331146561703695854177284746816489999671348964904396908731713225628167333009922038855259309496453970729082360115616174678881675155579417983271067142107188025532958193704566895770308236083229684427591683245182904037979290265163619913793616657838059719949431339093988936202927867615349538075817824377482308462455351528239511433179606490711552271305733390662111986086877815080743996610745097418719543695099374924304993892259959745985471354705896437789950984471352137351962310152462942571678246999758424180985102416509104794556336476746447339855270783360317788005542419901792951139504978556234084691023386171282663924265219061241593333487825219477452882349955115476218991011684019165583318051402385854356295446090369856600590305372265132761885187955819154324776812531718361479150295124039545633976022636139642197064444151284759522289546936158297101386071616257716133988662327741242907311597820851447481113360861411034433889575945179514601888267652739983097008882864136591167345467968971764706343026093813476894934229684738167215947029845411992638116723116512382302823847776310759290089991950200391225471640737471614968894329546201749847230296433099234295096337421479116041216299377410539108220462315683254961731894692827288728767528087650989482245489722945321192777714639361629453759451900013053478862841685546620024755998363430505467477780092728201023027844796692174628047410644089680047289004646479941819319553930179783534161408247725644301244606179144664040106017934457374215589707053321510226565376267153532392840083642297533286689961195998457991094357312421326148559670539894090580824247011973092622215965842464704018178858623092597789534527376968364699269120642582249848893586715488575976865196110121666297273267421156823256358583257044291193458627176087026054760479696742248016627104233601043980226164007869151500314047085531094582553663606589019417536739874012189945569048589548327776810813875539343256122469062609496066829219817186061783064717564458372075819284578378730931183168467187230994683202821610133717225310256951533202917835058643612911879569402114088871143411802537147142962873635522357582759488425702019865931268169983374360802960613714044273674046815670825340200837039207259597331352542174279113788839121067791145214568343280716244427752847583076911044881772018577327637217529766968342489680498906826726329124337338956704562267646192522336585429709013742599568890202085162501819336592164150652012998445114626971704287586328534373158905773776360232195423618266950213370164871042120471269386182323206736373789539798565516904512392040625828650491440931836798535777153160105730263291510153119164095057814651598785112221669083835094773698608488388998931703037084448611803958479348372417288514080645511118926579315051225882335736549445053034922562707420600537575360306355944291227653644177389346842190391535233057057025821956872213130920016465625917669426433630020444864727798640074242504171949353008969591071381837516761821219118580919736105019303970188043713827038372249992700543969792344832947379785148202144730810075599252083451561742639573154075729887752198087942705445542662900708685551481267880576088565765094226519597504762429619760869496814822030202187582799367418738056498960695789299479754438839557286115567539288980456554708942098001221202984943855104638607136938052503586897889246856272996215880446115401707677944031887170007038755047799525530450655785024396795922475598661633255064800402518494640238597848973980771780012547633990736122148732935179898927232441435066144140419308285014177594375571669553743668039616500793673560008382069618740894998841579448788479814329537236391762401998148834605728628511571751810806398480326067856447640000919340498598469009808535331357938173705242586981465931290482919126077914535543825870553169616837191065127525084097272457219643988682363501574818201977038053597845354920208258358678314379294753377661416242272009368564637641257018456454496430363178502607163797296703895833708841331344895374792962355073798640109421341202863827328502892062821213105277344349998252905243537693224696463822101709511394198831821193194350490904286936919654462880813415759390563563109939080282362462718558601798358192920341967418624499161847775108948624133673785285569948222518795073125147663051684194928644795638403513507073571932826603946882966753091843495305785835783116334271234669890768172484374472743804033134349211295463810528027622439122144433840953757532717683073619678162938125059778957864256324283137763390912306140298609618911469989147758736183178424301430096201978360923559199144268930975419294601710630724704677935612441343555671311842743126196222365233230400858060575355109338506278258817945406614867446002597356281675492102437466783703715058113058886096734464976396148954066442895825252701139636610267623342671884657095396737891892114009893762307806045330929276991675571081540284866604233259650590301006235410808131329662322947723585984398913874040132351709199814312878463132895697910410786785645361746283598256156851625537833952747834556433105954309218247319955812854039418647207268840898474278124489619372672097208568169912391798247980065646088497137326000938414451170431696429507223293110326758824436248357972345204322676922279838286890106680810390870728545706468808706490024889075497032019099753944911078565144702303841653094168227963548583304171076194739589208874233049576378443579914838318398944709232900319127641505625451580537435526898797279085205957732978208976384372702334524231071293230028976820153489651406658975476945739523729011340559715069943082880353610783767972445227761800853087321245782922257751287903737570296185173836809473831221303038435969100360164589723374878585502015740054399792962387412565000267932337480657563146900211959977659202248071297641926515599810140078030232731775991671374733352422163680344811040446732397742989631682725168462398151390654740297302304797973059049734624618486699434438087323604066409748364329201792870894482826058238103342343809999564171041920780982202267472116954690568522050213326131188073455490178995097276883958370598585253432124076485710665318486521493242222132351619880189026982883229802722091937543262086526393939084086149304235917883128873322547953623636156293863137227595370839249030608673923100277789220889301635663417982597678544256554675685455775346446989245506966852935422560362463223504673348266638280079811966396871926763618939593823861742373811847864705518467066082394927693122735500917003152738094148573239351935229878376723180057882485354566991449183591506275389969088373883535478705099875633726219609377509183429776290273907610998837064450494512529507079933242896474816717777509614485246809030487477216603117608675868760329971435342986230365622126299304580408174915220959817965557368994131978411456373302392229090899682799672207395946525200569334451431619197176691747213935635340261963551380190881973762849031909627454996577941421488196663820727135879260513445025275831926854824470002797021537417422060413090091393190721643178743911554041890533120630791289381814643460069716207334660578928148897122511023539940474140564379624818410006286736969664133678118340634650728201503718642881185024912981813641070317379165806138381097635388021334065729761361741190792775205446145593863743775793724689664213029086186623850628694141206422180809726625967120064169507413510978429924624463358208187090363851579416960738640645175324653029175245237386150120688178940072521940710042355297590460767949874412533695418686134788431013132304416853613167600086278129310227956300132476361082816713498749951069079706270394028555597906742589921687981469286383974883699836331028676983932476224746038022414822610437437506729719166795939964950232709047327118234430911353831419967350214085341904443921836635045059580873149284119446082275910729190240900498331153504453890899544602543334705070575169407608187730489069490509080297260910016366592356364101119345723654132418470548085265615828691551687009314640040666379022316768228669335700128526454990285181026872736865547263677719769820455421886029616699090958739825510568309611313966618939124323471592542685622156634805951846834182400426693626594369176351222895558681256565246374183398103312658597066758606194803854202202391189956326706820668347626785893713765245049198903955286000442083149812196506986269297625317722518232374832354688894924805873135352308255344346967625363968632251545752637948905205821718561025865343949922856631466691381327504580966371171616685300150065659304810683329317016585082816247330745143076574285744113419586667473623235388647356794659473826229402190107371630654449775734237590318566051765716544127052481368346893797541919323896188664285641707938990965314454302204804401725794723982489243296603588216757352803107232897184963844833141794127833535024946742719708058999385855766383297469538359086940614512129153649335009410723623377643632827907262933943411085103321103086268245718218970865750460064651406020708152601670291654774842217465207625112990007229063424284833897212547282594901787329881329471898825990052441010939514976222447872632664470172113999487230253305934638083432227421369522898711597920558504063999664619569787057667773675952777793016786149721037091415258115570918543233391388036959345478727121051071772766842740062099546244273749804953420010862308978380729741155901104183025886841778083700064691835125828146595650937459867798615473003456354061763480493271153964373114306926057873570842622075122007827859054236787304358156088130392963841385101035477039815660247144223962309811401268229985825861478074286606091420447906322764385358504916692895457232272030823188849043752221488713351027539733079646956785418008766588022793044072966751587299022395178916074850569998556598589804810176603487847668303058298646185045164598095835687277534190127403091875831461168221966477265031641296715170268107971352931375144409634239010373784894228604080290321164918518523881590819385317262584361648999911430029957695331184196984705542142134059006536231449037245031396916741792945908711731526878668042420378709364892805498821750747379722968061889058009736206325161095547957920641506115949774279865134219203268571081449601862991099778275181615162406466746641312557399202005789498163808017628264359457450936948566961748228492876801622216310144297054923211376861450848658916060820885883748885802122769997664740206603181025800855271315239979098568408316138761026725539838244440456633831358532409698972745744018109697208205535929412687391355538479767072980891764720489661222986091618422961359298372229802551633796436479830724514945741156809874045591546225691611362051992136083973619007060574735494902725445813543696215233277590116771976371294166315108576496181983429063928937289255074628853678951000776845144656567607912995239258240052996348344688382535385587541916776290253406325530417651493685756401924675214785472204754898900934462170538527328893370042234129505679787947156456130167674716781067467051300260064007436983576310243601638699802050755885716388381105099389212037927497403085168197476927367230177853556942608764684851946129216983282164972702508133246330243691339386421519147759253673373624746703813531929231838684450106950285679371495556492109961033702615861152748441464358952146176134183256658824523432974619421350064786313282281068427034119404341856823115930818419869903713507618943360397781909297814412700052823512357527851256808294294718664803709958050323137100293472020680442308420082548143199903310006029758277701025853161902697542564472675570007040919976003583478762400864147649622785395927464423578877907208812808843802111056193676271841194524233075743631117146119988965747279292716459189076056776809826258225697841715149621556373266822508385867895527944363363704077132527150818687628237763993111339455673611635795797560045176336026758491998068229674303721493346230571718903280776981681553935987350584432465800739807139482260809986834913094010413657932717290119547408349191365465063432611519061255925868998243128578344550031088891870267205015153600329311153879525572627022450180600169245205018989484146345717569708133689150709352115183811333466969920686425753857128939460487639606981280247323092695245814770213298026997922286995190997002325930970242112143540631762497340985659584456644953257471818392097321344998611752369619839321999627185887407269626663190294121392028229978806862479035521835306851156039769759076842365463374287950342105522830261766613995376660651139982318665778900459929474255953189656104682435572851181889929558925800831056769656346801901833935140869007748089791357646334073124073871236897016669437261225347044514216693630826711866757870865924957140217751870311202541011295230379010067224541136121657790256065831077635729390042232446440402748559667077024354326748536034889410369024518024723169439388141314023340301275798308985627306464831842899929315644341673893843386729464204285321271059506526212650639570784995352817937342031263030597742249041226051733006427554922087937127346660061348955771302559131272474459330350337902380287108016033140948152816051281057878646663188048273838122452075421380650592775129569487154003617145681101499216698247183658025521055801972201295128590807729912428282505451490843030972919869664995768186920344079211817780670948105021376734594108917382865559802336767608424736084119724832648497227032247177476955234235799826093023210618639667868733136870334894069316733769911784567205928193972519441725909741142671224054520335283385985047304339122204690950271856758349932921210171554747842108920971675573164151295285380391853020323673554190033129936228076513894293896772798647542352942835827939916872494683164882931177291123962607368252735744588363626576264521114857051313174838910139743425875421298405142372870271059927175334290995127124036127754356849625740220238027989359045011878609024681158000143473997769835165218254061212998625606255953866400701491307845353281742503594520176660337056003453134465419575818625850229198776340069526489424646260973966011129913601354580678555524457716215320830433811154890010015716693940257836655883867353693803920306572920101810235360193478909713364613508460388392180596415869575893775562014594885324641383222903037899276817997226073278605193488661481251139485447863729024613383939692613040867881148713998889744183562780601600071935032232838491547171401513632093958698196232350979219114302270513840044283537974092316995077970919556301632056156551761102822423144540056687073219169034342936371302037540661585222235798456938215748145939629914694639126614775074797322953193925094960568022043942830675240489719689112434579567890585003563300817493759323548829297750438163667201686809723225676628499650433679896618143547509825484995282678512423184019452955863490348710088035586260983543609337824232065585015709471174689703963130856086900486100478242455276312420180763048237700041979868089892824886542266175493236415985218815133209830184889105704337364802777074590959444565817676702792102370965058167543078962452948126054047549802069695932537635821582656808012956821071107438605087879275144093681669988584615420551438986709119244931297447420789813010356190592547260883634399180125052620009294645686615895689106445665588725144069301607140997649815642767639571952678794795320282942032731835925327359656543741631456372895156388706095085419362207332533029335008929401797357238123148908904193505301080969389647304102694736854973971295645602434979868547337028402709602814595641775933670623029373579885836247066949807262146570455122815063200416910236872991441263035103533517205460243516646436678890288997747943447401164484808061273577876548824385826448879721593975371921645665501252956276348267850095431703977900762011787045189103981260317269890752666231570426778001397993653886853040852216440698372130782636919863252319708576814524819470616292845865036132522021874085107535361253800229769388584006154572383237483774425345445694131499067223954996201675134911998698197482393003883943382939079127651894812886226452724768522240951064924337658617429250039471771199659162061484875090448689946610974288008686874375788824464011508740674623169592676603231481518498440727171400298454461030655583640885699243077370090877758900178877479977868656619094298340935274378062324441203418318247653227166386057268958786487841714098858987679408462774821673448678402820044855045078464154596561347492885557433250118242735937286821015735022873146580089228992614747015904186499192495626230444121994078027353997551426683070081168951291350438759905110116741016382892933682178281792844880080415333341449054504816292131199593485909717456176044907395187480285842991879499568409724415530067707480568534861318390636285008976847886060206026866744396075578531785624042892018126829435024590717595367296539277164081691524564151189486311057778364726938440839036932379072515406570810150066315790329411102302875951014369561216076584380737542286670011014781964446431824440566762281600556018105970229099539162647549194249572619704975927725573030148249277097934407207795645474363575651935385261062658176158354207559822901894884432520880637217676725760207389871602455850146633304625563102177919383379131039692547737597436884610497893531587471272517973387896889538336041580497917158301414656825747200684633968206256500662264960638631374575699923440954863683821659298247696909461117553824216276800072756566319353648362278369662524638777608467191674169147132715471701890221649522402266252259995214387282097033403995627146411780399570732659816635003395619991190380516684979640360737365273504755542292776154381236839450933032652571097020721371069873873198411134758012710959798030201198896290000695613610891793219775677525369778503603348672876759111853322207369247533271428752543359664286094198527563451257875741085606142060123762184410884349158743202811084455425548257046319712572493505670057700235589121833977653661582958509247392112954106079564938336340914360954938685573980677917156727825892181147931918494575934544315365346285231286561230919437972760362762837351669308804453870080425844523858494199500197747667192754394398974137417829704968179079187874172655095976710254877767419023747728507061014897356075262257318734373674733121870952452310741569050499486780211255635728184368693249518913409631247433461600432433908699056246704760365453389960945146692578426071966476675811996589905068016789543863654219057677379857375264641613960637375277726298841364043436456683816961228691842477125576215686693705111600142059106036332418999022562668227559826986654288998331670827904556762807544698768758026778583526922701297321101975988342207676571860704247906594409826055460004928647335903151143243042751043158365142729589494401200800593511358549528942148322710638876195198824430766555941796786951681717449084671298952550188257305584060636409438452612110461803501188930875874845749579147430328361031194640116998412432533305827921594517258482889896816612796459236481474302461436966139116247633529506564172172802683209704189682063609245590676612311636982257523701144899470444807854012101012505578314287587605097630905539095656690460441472346269054902492229754219053086561273583961141897029452793446283213155511862916234947623762236763654338206851558184139879186854676981255451389213401104722315160666410647765632789480865504050469255177721715580793762497624345773012511583950261422008066320233677442534890583880619733998539433689592243652041444667879000857345073622518285406030552087951580636814214868384327695322298982656449832226057809342910782484929646059765210731741108431985378567500699442806830309162612236320333269928659418224376154556780990750503400760731770753715307300063845151624800790261394222919876453687721210805071083979010163084799476840690927364630069004943289717037759063049305137303172446119318324943937664586010837732325762433267702616805013058328102722879970298153333169466065360729155153037977299755731359070427449728487683761738590773120140908674863401000197497976298611671295547583453414284858765546252546319687345378485568265037794635229322011298165584133483219172539010540185285550220206056548512002014942309878888048141513019718862387212252831971728952474673999859885640367134348611292240461769628311046266986414817565955709190090751474523055734723292885696337823654907690887514748334528616950388436974229290743206022567276523954547397639246495682167720894288591777651161484664279381421978460684866806082525487255346724023173937772160306609546925398865504112975712402383393369853748327568652927446171655622491609469474103728654574004565564357967706670404016206412533665623259193370461672742460344633198087610866568652988746575750323368800895622497194246562126843731059146366166138098569324545066792307627540583218375370983861706968507166212465148866275609083047742445603402781031732447536039969776586132058944745040879205844780475261286115792111897248874486938009864897030089450568063804455030642802610224931079587400608351953364942910704755016298139275612822553435747972025787182112508814140772166929997751921700435627769740846423110425444919717268649039866136411477827056555766790764677301592803052494234019992623531106184878793736602197942845112715997349109820383129880276980505031901371705900460869156634281871454512801082411935997644466088173750670100690031701868720423225234028831062027395196919137883119691802764871341642410017092813839996532841482308018674555040036856211143951544183464146633404886495006053425347267475130015807041391463994117040640095198413939565295836951334992641062521495712454144422104516455725068946921400508103495643976539303431500068418627340723519521282848010906178920989768050014523674245830602351439271718053011733432023278058225700630057867832806034333385351796813492328812795788536830728845584447471950991244761623405884989698641542797156437973062865783039124586414252736009173301404058014621609705772478103447257387970073123774686485361234095519694275639271814441817673903307312450247808946167980269703746679093024076620141919378740286108016850993904114372653953192423555735193992375788751941002967797559151916650638098988761259089548475125104233463216401761196205723146853646203962989449765545443345281853189579151702109225483405167873215715161781950647760822197225518310351330372491874938018710929362477549445855250496110918265105377179939369291107128199335299694539530290433616540833352409511421905697232000847237303264228341425703244214276585418267862731750285871303889232481827427701640422217038628446041430712270470670656189381329950435779427766502468898374571532056703652679658817239032788087578004915543087694163131770520338353021892271732534225083910189534774020936045853536364130824589682573352184915400651688527193240361431992106090156158826438846679379265044483120264161998460062767512008759455364472824349176518772400286422039233662945755179825587618794272866874081792725275224803974464604143393141458671469913857939726310293952785608506434223973470214224858778560323214340425113420816331601380165005274117636680887058058811675604948578925588080641733379578478645297717195736318828988990260527894031881339287809145108906955910639200760727742168899977269665990183739225866464683467418519795050288883917106522229371550161265708096380031409596581160289154507843955402070844948732945765097286841540557371155321499246774342763669321955912995032766388234336724572504830650558570857364414312383174215041329719004538063508325324848267603566324049372467357822361833937593045881607127072988085448606560856996612909764909556941715083782945829444013980584693154507318438484013942482898038325657882336018193373658867606824340016066566499977378914367072389719061196491581447066661595843943930194838697058049087885397504002778337291813256187472644097446870029860779520183161250874477990484135750515417921976673154876250304245684527450532405650101095678334791318620034203005930104622929079842514615691710806513001000826346009181494224021971911094800216053852298663475744867447142588274292808429264581617818397937751444623667503383888663996544437013748070880672818176759221268876044926840370713126289804499913071856903624636217211745937536364940308023666420448706829739365646221581070449053512254076260430156106077863750332176175151804006436417028883458693820682209493471133176240354587429401425898294852211395124581527214830237045583534066091052347906605464994284128143491561849729208591382801838280639905097198096666294441251776527487732896939518114048696211901065833430453061928865756869057069190784731683759879072267103268525748616816476217086731758200077430322423429649890208990085927644059644117363002862332741495602143744598866754523273019905300635214987681682777375675186677125021986971719037175069702280149565608840877368017694423870618232977615202685858924099070428674757030363063580783191860169192888516501658824395224306303431898913462435695154165160091311340030276288004688611543244645568050369664293579299705873167612940699282781892284121400632121182391821177990563395325764593768711189110200014854748304553412995045051983122123219397266992187515733645033368351964379390734376308396412895667592783786506048257334303510376236134141981023642451281627405654668876550743023454134552688200034480558064234168079188792595784924814323038839666948126308036100902646049713137918048710453826977527843887591536710485735973896335510469159588666617894730165302571665036903247145691440774887045335002646146811373515595341455126022476226491584868249999684863727960098261472436190492516406693209276041039729043723748939248757914243274502458784811808828649068406569962873661826271270287037231567740798421016576389647274795309189503706332047881745732507433628392953261643036173382448401951434500045333634736621841794874141581484088477507769454681771386974077743515409925157290190354322241170509589466524740204096476068726273852035844767564341896690515740582805180217753173138530764097772286282422036690384259986487552036835844540283217936863345921308791744971047871326685920421108217430179911654013940106149105805983331046002951076824852576025924909418039122060834940958017068920067936724783635359463049252170849729550394490126605457162287362958273650700570691613510435089409316898293948354054984568177775851064122433535702528575396280828474084214555603658995956226547380412034865156092857997687242698046380550378072479455422250441898029686370949020312319268082067161832563404433595215673956453581162439607736762069826004073046549582885822429158882326118269316364793443820425772211400289851383552584184098831315636095787211584305838559428857114336672411630131500036406138984677136207847992469802118609804640386489487614265750234725956838701701212091835340258445567867624462997580585625343493430938048289311506923113785891661834679918360095648265102845597924630029875533663068824281084838583756959839488613296692866624236203680545747184149704170771183804460332928730639133112203537250645151061907961359779105396808469485650336797320606633211254263968042421940114997174289472330670142108926512603629893830871787959710895661862006866290854571783904554145475620440387488395339033270793297320864044186877484658726135022255605369933183910445628663436883292698113645099789941128226468502427438892679186344085770152717312283119647094504973840945155352558272683555286730630129686871996732613716892361541344904335246253006150355523694304268135455774066387353185770745889292691672739429455716950485277520958618991049484074905971692884095441854645012396802801784341251129608228602967781982706074937918697768887574251739788929037211788235859884429868579386113969025098535613878184825278181016825949892988930157800588925489846448552334013645427530925972175615079113478406223063758294757814612688850897054959741882968607396166157123132353441908479316626720904995552629217972257674978048320283216316895322138620713177011710797412497714277409949017185002607204924337445398065990360869223427819963331188440680523986706272575447570429595918282313050094112712108640013094686116498498625626593999060302542461825616100732972289164376915580684388957255392306096836175954131698081461069003162499713631641156497184395782933413676770020783341795144928996824540689112370588847489287904824962725312839891482465347058120479393355042039827199610053094900050916944951019347132316331376426448512664553198364206142891914035576394941896709874811874788545313515779553854921947497744865406450243799993787137345760111049244841544609502511220058663899528006893308952590790064837337988514305489516924172242477362004020989600594897896543468354889329055809528960489858184514821744286981129235751343993056255566005511928060646107581966078982886811965732547098464923000122829924505779701556689124856668947972187062981609056348025495988283342785122158036897687001324888070587146773438677894248482554400141099475453969516220369617336493107956464193483110174747084546403391861624136344382542961908611639338424404069432590090804785825852594257946758704798156298469801736986027198569872399135074390923144688840607497452229815185742090692032385304970540704409509481363802592177093721757106240727405967584837659659962736873190592866681888240153133880512135217208801798343074678347713106047669906299045682944329303932855558175826394548786734492545524741542641596714517120404599274298326397674452207719094946379411468362868486956426216152106829443382988219665672923155927668329259944900382347535973068674021608324144589237142940948763931260962155550886571733995916994576783193741138002618863831568339179700438182990354749319795828866826436984483957838669250807837645992036027438742916182681152969765266702777890944744039679342021507706740217405092210318188504889561478643134654881229805477076675558473462454583161324194435483732409953147819962437845833147333685725850255168616785787381878878951928026890246199262763296928298620439413106353744802744743504339003356587003972867560358960200553601817144570173568695888425561319690646249007393617384194305073622358219379882644482178439080969901623784795008960632356776281273988067848116573349594444230798738948112703110756927841986861040196917510369802842111643359837494875972849645858722954219870604459957047609626595755431017298305183168089300403941106328143938923594812306633994166471166245976886405487544058449553177486512880146660476959079677101451618924409310762959268197300681021264435213781164260169354931638320273194556026561833451556262917174138494464664363403030006655019211784688161621864949317956319249757255798821832922915195156084203376305316346124714642378021795945516886276038982949287889833489303546449451725844675239438147631524959931723774831396788309194909847513726428755848587926942578430696357251307802811571424153454788875394917497165214892693261367238076714449956265223259833133040229067897516570409153008791990322163157081993561709290916378961408404670693305335364554771596216595791187835986155485282951300874466054562452822261894552229702131669741520941907989757935419304534973659340921767898692349323004379083118367969022838109553648858793932946255124089759413220053943967741070208132079365309829374282200746329407081394349535206674690559707099392045086651473694289457802102985070892852906177048459265391883945820005195772356159894139860649221256721974251349017558721070635314411281608965741107004377448163514278977004557444481727711782469173241702835970093130750890383586016663555547664049257515460194679318651782944025327771764085791786218609231395822625043125593552651198641502593104359141593628653106327018269383298036515107396732282675939669491727940230006851512922237647025524644681750469981945085630650395630067797001915772949166234111331281722812664624042811026081568820934208409822968565228145100080331101958477409801534477853476165890892178135714813544483661409088058893138803989618602648003303657061656049639919896940044794339999239245873523313407467839577905093193673015896703795157379324030182288234307403466818267273917248832933513848635880312698698227886080840726735275359020859678972494518042693407013389465520768503376277970965298207249732497592366551953120550611916992243809255767286214255902690903962135557426579151009125572053495169718152147424964160819104259614899493288511959082473781807033732982898924220138695489346774528476095292321091171436126916596898234440168449670672753340877502657910762303727618851448420151216598888755818231735787946120758865201237691483655468421463909613312962603789838996697786914278407727930725011116000612138879906274087226461252199733195409334072986229799837760268165012071135221420538721490335722991677887467659962499568332830349766155676691322223876861349772438079507196811470044615646774463856872748219409335240887426948432220614755499058305685324448433573294174481151938889615935991505319350931234437497011693408478409839933883901088542417918700612424722127600123361471357268398342319575886771890415299449848633146536644967833347071592679345709461690130350869466093986769508432337740185139693654868940758045976611008587912428538882506054796747386962865034670818451625115756229138924574946071584845905133481919167332539952931592774760958060919955248608261982872109572391029610758328140871733844848438705403628188224435208341545928623249097258736727213091411810667550094970199090496418954272337907440212093566935850204436413208940148995547672533420915780841692687542590229910312253523275685643231697244861969492814332842225693169307827195154847078974149855139860231621787909263881614445199499060143861064167117386744971495830844816624122293401764070637659884201174763692787100077416344377137553302927582700334363297381405856955366918334491965706762159632001592880425412556337331872255227653621661253822611084363572056568986775273678445937995696673542517156377363348699418682735804170022538746489981044525036048407171248968083427197650820252162398649068203661622862706741014038967765527545522199871569041563214518637288369843610344582979583856978006945760461956200201453704484750474119663820262933601188452799056833371936962315557887301393090900316702211796458330377107419746571750478390368254326455395977476953557873689674714453960262386152492772752842075501523821133743601190816959854832547781763721783206510966748071492812547161175690579046461510209507315520466519287748360597729727833661076026969160290858309338927994016305408767696688934842720180293341352654524860826991076534473109512494946312449527388301094172810332834130200996026372334622087337063846409806721133241918307669587581572647358952447219178130744504208278390260627465239105146779272231205614346923354798393682628699875650273124699041694326336218550179754765173522043287870617014948847603087819867382989271412461699747616924065756112098779960018957798488948559410057596915935766279864755365422828484109409382113393162865125088543407432530388512219870231112803200467260850237843256930003138465335372418946437825436557284590175578400235261291105509955873481704506206465239837151934992809580987561188944616759485963739142531814004221032463697672666424733370503247064941147786939015305402742938136252589545829654970829450923144254322998504448045853909808385827035331618176852745673292985019466060737853760060365722444792142239230632280091256578928063256282958969050267277955590526526672963385409665172594982562978261682233770392783200462002997492775418194458243050037947824534133545352494446176887199707541174388093402040777199638156538725593953306813225030358556730664971338908655511676949468830128479926314839878285801556740081264655183867407617969713899240771642114445252388166962340987731272426328693480295110042599013277588812221267430294489351152869798285384649190473021466453572557359395070890198663161343290606683112588929087063546948767017918714824714678265374552842349660414577417028448774852506457377755623535047077036659776010295882848082002712029953858087170739055815348360511037941943410497514476495213268416840260920884817733908040802159940639764366877421771715265682890402794491713402561270676087784542788806262658029584157376048293709912119040082981593120612329427359491645425513975540490998087681444237846199620973920062723164051312850004451012801516866288612671743823272127150983129022214213351428348553152424680260189448749039961967785238486244273601211506415185725328656848237872591324955748560275282144568791749966158599446154786754746005573347185027526765642401079830186301004042310190068550646193316492038927860388782410498316335761080690528687078576387788260174115075757478316004313646729315370724088119078719905928943657148752526205758189208131540736475625160917741977380749639134840928830104246717012754507283562589336720756945140148244235276026384425565145404758588003968387730484143092210217516312463569145084999143776206505003522178080635180525415061964733953415647005400486707466293569158500142986541726741252067571533511675225384204670432518950121290471303040587369537298039535928098262467001896082957256169522041455771360974439846404074541597985812649171569188938390938424821140215035317316420129077740739219481582611129676724526211205773798880857306693484254111962259762401450617977411870495230168945941665428727843462923727364398590784858289603577963315842344907287967831095107069557062296947005072911427067914166463604699839417871111858780439352364421416472565021806275123218500279781912091874795714756996695724795670921183839321367275091122809923124486750306127891644173093118426810888351990169881340655000295290299142892356863585146283771625456801707422276654497055361356731734179433722769867819700747834349849502124909917725932821506418545643982770231002183474877746910286106767105363265825997613720183452527114383463537167911792484185499975187258081400909356336101458489581082878541255165905826554837090309941667143547414672627566211325152052903671624149834145266207832822794050384808817075764548928100870499417707754242014432226726106604893701077730090532734921139581709883981265118271831167100723589930884553174519800185801781745025627660305421697019845661404938478809769697914101718269056300256602772422833750832191873983843060621000857063628772600355196385574161735409726589783180629724290275938876970942777103194543760047938044382591637596971546484453376511255619183752471891858292677444334832410855038426377108177510138026114598644714161423021226940805792651373721290586752509179516882920174898036745072645521565022609066665155816742839448943560698802536320549782827342776002935784240482406679802965859917337861688088170855518265462811873880129913591423689323918639390816362340270041849915105493231212395819217960092300082653508097037256214838003500392639636299098887435654129222344281821749605317907157260808888296725894446981603612269787701728963810970176686083190902642186978510650365486601299110362029420370193927148793469449937670694152598876799146298738805426073406643889869830116798822317625299896758168089487561218014094112562792469561154802452783044864478432957399451258649759520341428957816015212240735649536149790644800833159233708568001878039890317492870238866641944712375598517899802987542690162931728551985767017126257060517416073140972581850825401631448058325214401492936538823941991173540074270671193166970201609104385954013699782447295994263962576647112234783490670264856936263965062136401174522429441643552723124743281388617811815413197461535350604470944444797409229392072582396691786208142961912490555207112259181380559131268004457520861540195497169548338562228373492580512874869844896053500177475600874486441347124972814043460371391412959744290980245640318638974987106067328068087101615761247539092670203237595517355669983414531811393408522215910486841877321531678850750428079932954216221734810600387217158163766029736649413997204938203111935958502821908855161871522547166109077244593127033823063536389938676833840032522156211490701576767784704736925205258718329075777737793845009143218946402949163387006675132058649085900856260137310287172410237904668740973802410430756988037691640649002747690442951226493812837454182202227712754923067964871511841755353715626318456672971280478980157684432529933515734830053022737449351071256613609054849447478538189390758633103091958073322450001402537234959971320141778098419738773326212246323054490612260333730562717670999136089872194459957133334056244720761553975955455508534042337098210092332299682796579638826177921128787023560658646710582012625932054362436034407325871221676465841431073127601137055410397932113064593636508662385632296877451995775168695357823794573209863515850289779295452100987364074421556260594361357012108684232527792970329908669517235092556990593002624598368148350543029985072107144242408572724556488474328453957440087563238698782640217886997446270549977477308999746203721454732187862031488500001879342401606598569123503513637699319623863598321398290624122402576039447842760022128529615939547484591057129093178601414004832710284161183259239908242217352405040190637454036737226706776156250941257411308402141371753763758237550897243389510272112925169117713363146282915733530063692254991707263931731796828156970525791772021229940797629390555089846491493483544047863069539186338573928066604697090132307847365022677080275451633310147094196357443189167344624299090806979033500676571918644028239141038133599297006906267391297045390556384170571845033724096560852498173384059267508779337074223957050617999883866275199474544175361251364719774319799709779666579888932641536403248928762726958597053445410985088140213740263319206752447942633893014301777636805169084833998901678729532042107989290209797216965166848381528822371034937121807138570854269699814770209503326722944618286513408980934060777776752857400667553514827402746594279482316138816493889663257063908512568421708940086393586180824156236724556068245193307769063345014723776367914281287313889904950916668952513688377835990164247046390456245808772819586384103057902924741620645152158640253194294744518677259212150380009245638555010279550714851013493583983373495782792884336124531516395897938376293985757082980262090194653331556245212965090083163792227878407450551324702948483758661428622556741920693302218724279513221151887271522978356123192182841777625004332167377891043739150743825028090650748113797866044422051915871869477078664990780178789480949973856333475682683878867413508224697248000276674522638707575126470374375330982732022799691900043351256550265170344151229283902847251038333828401417423732186612305008897075293299454603280596178383286053818841296949053949772510833260146325900651858634345420681878725913134637313262719623028576318011889194066503201125207389209441481160754084886852835401203590303669229376426515745130267005887672241690822007731186091787477518645132996038371926300930853615912328291056227915579400249291250848428495020936665723576189949564716018688574495630927293959011635194467492673726561044647407477723876685075634995326598729656224233436467450229925766215702847975311650341300053300619221796459644969227618292135519633130268948346984968592791339198147142304697828479830755342228926817422468886360922887197824624343130395344879290587084702274206553828911168329328864655628454435377324584684643082621359320437196695711095241132115542861149814054865165458161217259999976621206317705455381611608706377951632537552432959830444164679846035813077895611298543662165944980450230253355332102275240444575436637731690524948575142358773160105486587704001019819599814485507319689736004592886048825178344600031672342947976401178081591560232174580037693570381587320290492222941505365750976199727149485830878058986628005009749969435608715692362528666110461444501891129932669116109480749473790171223363166775376806430836462006602974279161749667595473472135103478519970779074974491477633763421469158118608403136526278189163751457154532325469560689995284670758286243886075512408107668782623220631601757724293730429970334593931826786374659913505435817779372691884712303896714535202401637744169520840440933749673501946785805664021401591832154152826980094327178545360167433792714834653054248534204416703724293827864805226078533806846218766563346916658647001423107313786529172104285750668085575139566983411709839831570756970229472463331283021292911661776166682481152473837235901461200138917177700415397280347154326273049733729897717873838970294624023585776812574212297858210956513671316984199029135995052621845279024617298177903907425824689707342780171153541587512674574929030638373454915632193623054274129929155243405051611154746344317175559788778310382905837515429295475144468151352075018516175470267997478442747685939403230766525723254996257442495371444966806180589092064139857259474195474609778834880333365430168141387557276109694482646573856569426775204488173884793885916650389697063604242995233357194973746202548800319900305337286676006598959319486446990152130126694626475954890178008903155146727620258352948849249203320953113582264877928171062881178742136262241530205961525254612916274755120929255604605413350685464718158959370088098230749381361234493035574086901958171057849796555635654034490545886000527652550975595312187186739466497741339393141059830307793579959690639517734654622370649281991674930802743312646019295373940210204378304615180559948764656915825566115293110077670044487162243634776571692273074468443141235822899936424180076519941659227005642631597880416356257229937759108527430791544450477185617912966201844488369952487438784202451982038778933545965875489618217202762814067514140670455641510841220702111034875339416899989843124612059147306915207853831897276349388979325898245364143784147253770255282805859245316960013741131283278866173334070350113449535988616996255776656492203093157917395213131820281430078785496254468001707256395422017031595097595792244360450024354392910527766322673386860733857196033693887982366149645957769241691423376733371629293585856999788707070897454194635287185224777031707689478750475834048475379400776611487545993127095722217141139911563333204927704889324156886311531829433392954668656027352192407249688558402949869111086772215715318264986015011342897030268375053605344060745661307042014601568550514302404184171585860050650707558278276940116868481469547012550965115231501252200052564756501383772936803600264760928764930359283128325653742006991120908344537502418015785749263102460447048632230783804846544531893183569279598790417555942082565123483203223738247367975552866317875517153478455085513277226497506824784965470530881371419259456469511726789688841256189955659500036320135882439480764412093459632666147357493282758668905192729591336906419443229446628520020731503082746589531002332436749061430140385114272763368460699527965924110312765278226665146710584762395361115199318340592514083625479574828978787457197004188208128172605214627692835940091778039535073603496211578814652603117263170724204153915995171391303137826817098105069314918960675298521619278668731647513248873302276616254487722351775803688136456664949379340808163786076176177870984376633859346891998501768105920503275814477598852759522387161745849523074027876603336931833799128818650950622000618140337443216645776849420566101569035870919551738186068464885221801281248454907390289172870277352729361671878931222155163806718007561953957044282505549150225630730496198689782034597138002987421085239178443237233546899118355536945766808803186956483437570667261870683466495317024914814755254731316547540113270390332012190650637297711540030052159667841579724492022718891522527865782691996587974302285703443010634987427901991747901533520965475146182165824761876765251712453563290507607572068527575063795521583180827906005908921763313120951893924942441382996987924063383856093802475451044487728536460481207137113277639593723947821572367310153395374559116720274788235978109283267053750692303105295758165565321053592935154368181212385324341113882061901279694950061713451862916976363849427859357564924928767909300985409176867442323890683246688513584377435603834470123516748511091181792701044840746864733451449961498408801011272404446417232383420255748169418966041762108935454651184971892149978708543565648398862559760956135588643799960552029739864092786883601432654078994363241945108535071899218465458104744409939317458990904029100412899131799741458188682775256717969369800665834827846895402413390660646968150119747402968569700487840825572937952247955877709895104049997927227817727561665266192600015077825820144144263098256359529008420456575524086110571079468040031698823260311469415330685180274697657414193936951248037040821918457490155716182145859688115435974801176428482911213924376556125916093966808210062849045778137994271336942693618470590725611462415686554552270754465101381903353150841780269668495394762129949338702165231544513927216556142263764426636916055451234436178037015617809573770271852536391797554805756562302795273830797064033896266293411845919723766611805639525718642128620839734087283511342492912329808894091883806277606641371198200295604218210301041425611160152470757531011528373725770881249492280548369317074398350373659188505320144306835180799957375082816961744116735262717936145897132328413612240006887590589387351576918094963436122692024617248575502345483689059854991537410643324538215632718092847726666775597775688383976594905629996156334684770263931031712304931649255030607339067852180959222453032042816191204465889358125420515680503917149825794593326655220602785287737164115574809297063595430453945815931992702652087271250890213500326101584775367610082656472538906609960035100667788416677667894600348321552155642619839051033362296222962134468551947706363630752614005887065374920907626507505347798187396658748733580355948302987501356265783932404868874142395715847933645139381070767301783323109985451165073726191845118571525241762649230975333027812286981425146484912664363349655783364942922797901376479900860645893520253770712638865877043632396690247992756431862470346115804235261072481874926066213187141232146648008245120217281461291451997053425204438409757286613777720831362009200870051095980241648903862785735971815897318580674278486080938814683509551048050476952581445540078846034634913221658042944647360069281300862161377092738797345435777127668608020753285839570215309342246209800633128142413283673912930846313957176737676542716998194293887593698317212948300256055781546995579207717972209882057749575347736516087819215361334326778823626051552095710663052575574079695374125271385927982407816889511417138804832267353323460543441778354978465880814592110777807291095148187795647324930507701135740187341854063512318940278362836467137086365758927038522782901989116184484704925364088382459368244305796455029265410559595889655975531636119300669699268901033561775887697818652657997917982718251059642598869957136853361327592820118854222778631571861499939256096408208525880838237405153299843371375531558865717614941117880125664670421461814231031226010247857526703543977001432918070259821005777082145635706175399176589791840976999196863122470861447664279133390525249988506933326220107049728692048061950336157250706933325978443888327129063530859347001859487528907994843075897947128691787951266416878118583997407356422726927612552814342952205500651943318339572429885810511559061719561801451235363866286866540980184140467845667844961919676652756244805321737867706174001540366182167852996326329948891957302756951834016532143023590566384935464977906159166635760251474498013926551005679928984837653351341422291539943407438936793779729592770916095830193835249525650431112924986354344431111266270932548863608092001898335845729372419341694332417293916291403420436862198197832639442762216560342354477541886820061582187463265254464415593091596401128825455368678828667614999080751815251335924990843066922892058114883435397948401870508386549991792017154741860469920578525850406061933949167573951799259292272025993378722212409133973915487922387451661746796642896787211411310540650826499015627168620930879555869915210462448347614237070753077993225991357574532978847050368567467339942229493940995759932940784336024467960857162689150486688359867402613856175822165015660371267177034150860260783544542606285254528552510725434260545262859010734300518896019892071381624053143811022828321200487004206574389523747224697499149853489492319386576860663529032842728260696921656367192753273710792145947605491575482678197914850689075679540912389664554135032720152137449356568057337724278658242172629347195086019159807282299731516323610198815961104038524697008958221717912159561784900151629351092329030986591854311406821217706323077597864229309316639011014349700929306400377559564207956094395769642470908936752195814039733002374958819501508597248819219288441827716970558973834622163272562202131685891251350825222722703006089302069612630756478006804734751704328190257174599742528536825201526274824977866327634388346927316201654664851086338257764135818875203578417290721441907835785132503874109896570514023598576083440553972951682548640411207735524534270770575733833072873505561049157634583817558423170538038693789837321340586920716309698214856113145148576703639329929416274997386167764448962915996053172120332368372987570545931061269386363102319664386201425882877617829990753875910141982034038477428651817531500543783108833137146350744123599981350468893483392568117173047743873443364723756377993573190799564379575476512505465939504073404875661777002520562770643623884671530302794094764536321898821454362714399113762388995812043746335916011619054925070194070039906082156927899199588542262604429082017218317893217060139131529421469416648995049101089796074886687330325667459178460791044907335949091564453153792515533339899943084742751187192569348679067510833165918575673845909176715811812123575930947862845994424785900619570503963726431569410194629381404271647096576440379410312521828911649101939137892467480324666325112480920322401532944236978423043019125796029141781997498611591844836064760811451882501560246790619062236712947774051012986688223870197499008613461915606738914243767192054701220893439965695839854880113757030410651945508811646435925684154018547406750845323237786209246680570106434526863963933129753501749292645723806729224444876023617675413617023847551984839263690136265772782061973863200904042406684722546047144338930147235025795639110231737419813201296713876378530606872589295792371492652593501750329097667461223986085004773990616202243948492090263120482350971275147306890254447235286550373824090246262027390087595776084136803147738617770420579393280488264830248450136112077946450915298985818579427372711762509767352902737705482481032763768853023352578774165685867812442399261973911652345726060266156198924695510706641361391310544560764430804012072455207194797989519675899467025256698469759103564530510526876637514381187249699865570447278544981286216113005108215895793692189009149262787428226249073814594920226641903028729030645313233154255027455944410185251501821591702255213517413987491664807032935774331387045895129301602046610129283084585539843944768816362767300711345074773739918433079215907049649557617134193634197328042078476333296116891227575254189979059089646960271064699845482861001388925244940590584434273219833776252948553434749040701681614233908894659607828750717159063417263074107698546544740529636580058426004495317438256674608011708836516690585600570102237419331720765721176601467021145931808962734625727555804669084259711703639127855868511023865839650378728278038732910831748060808905512172526902289791897108271781120354923567028435980409412004341308093549741481701315940452684131390569471301456884387440995364320541471061511260073229204975261403364050904225733988078243821357750952697612231816825481143997405796795856645587503037173327393630636220510855235089345460188586665314266093469976026032614958577694874772248714914190213501933302379869428127128756593352677617520026748021359820601646274638902966492245483383790385465794216099812472325658165492836508427662570015678375619027818715985041483154112182920678669539126598872295731186482916831846233889810393942040335948456469331581376032700506477119458646295698124350963033512374948305735404128742006055146356726127492731991249995751955920813787334497406689757932292848913211064535001386747006586745352340703879595759858589716121263020228997100996052554384740439605174208395734596831483714637131180800957825718925328670153076148628207921424421204395315109624409528567317017470220156010996819378747861515222037637478147199059548049546903619036060248520443761579043594151464490795771791372061780086758902361448717139079194307030377866367659778628648261406646726597308049130501125872981245731114860103550402635238920878986391960114678019788813703620953789167572922188252071388126581953644438220080434772633100533172247022528969718367717466167375400528696500898937341494615068839511170465458193566577428195172944252441594531084270299801367749078976037056354259374328295289329663198774853522698111765016799068835300820457793202271019895593074626021331436276263559424463613601182081008024062322876765700587241930884632859509233339458956413336500817003580513201934445001149242770656230896830974197227280314905965974350450330405807692718346459669563577566398485073522931072784008120083631506846948429440665576593410091879224461585876936927424224018782989464504255914123300523458457375357182725735584134611256884324559636064788908427506771637825469475884317214313552957110189937221429928466028505761193387463275828870154750030333255522337734706419384824644991562428327085922433166945133695669742936324983939604916252119528777630454587772246672764236701701760277952244307166795849823297261781337400214559043005625050737479565322080418003835591478137919735629489116553515202658681651978353076238092184893964892363783772286147268662627899273476891384871140173418133850943045295923024540644391896129120055455496082770258384483289843669274669500511900399105781224018263889959942353018813434152191725992648877627254512055129081470746443911730780585621875138446141351363188082426955435382169178510549188233795947510047579570796599569911694648117553569432113235083323816986115923298712504297472226326384291135429489951639960465262944187465536279310747579360246320563709019702149927812732575170902549367721227869452282354193910958697864513290743750646197091403106937157198779654995329983194394402439579447527555485441018219333068706714931371385876973203026102815133861923878842099645682512089112260795096824443591312179208761004460123035784479376537781157934303680488601121433322731920220341441860934972121728872280086430290375294182281729453460544516317342601820810394664741718212862848061220616040741806996585642032783914777035776224651799213079317945283326947899256965097366211982506111815459022729240606477818478787448763404717307861932635170295628020007233800922451507842607666052070252631956750897553526418033276483683452143627266923062792308058596593798808832143080867012447725037395078006137928457813125972563297034650341807528981019628341747054041260637804664422246666983161562887210796961729648195133140773300959614002328573583353625998788527471537158364417099433710035352302691666444469743933216415789948072784090821201638876120437644618479905733850873733548991009611643014233610070169276187148104866096961961485487277659224795483111270726319103883441991414451548006165673020931816754797546542841457830716494653650286504732109537906600425608695784163031897684126710508358110306311857799640159325830865394899082180554426134051842678908745215880247947423346641640638477251546729093354762873898090415524937724247098838562045750119640100912308755787810010166749065687048726620457823359727665851641967418360170604907432883346447649168389557809251865161868684279711745541207557587013966622582759120170912692695541536950417965610888258524644768553263573732652539605297458911290165168427836686683700887294564580309054028015812240228286664434242501709205256977580631439964947942620914854736686991758798207055166551768592061116893337109184983763083051714787722920493311742858992444229808379460377596640071538392951548806449851207139631274169887701459150739272860643452242370203859873578404764410971437692001819099112943657460935343430913682450671723231159197423953621199667253060636408955547767102909820815695212292191595999288881085496746625327468720926031924347845404358402400306599147406915384048484080722104309677207334802718740836902083162558413011816788352213739371567729163044590941197165187789371548293679539533118318957321657582496834892239060751171311897522628827125133259428038809616285742845833547742378175353302560454590347112949605676563196593310830391954032249673014549728964887293225893452040856075894967454487779949677666081289950297750624278754982212112697220713324666446244526653456348445894028224947896420661100202496583277154973801375878833676571748974328648243909235124846294056768443389410845352618046537784414659323833507116594858243760829133050366926482803095753311025281531157398452850253211170463933764926256750762907615808962431280484352724248834850099061867712548491295255915958274974457389617730209892501330879429162418107188492405831969639971771847016515809833500819347251589343637995242344596687258177783387978185999943234059238654151431124254701559337014196520980959051788496205862529980082649986858539921593834625851953712424775738468509064856970587728374102813456240574129227307077558527691871466098828496042277089578242196006685318233916046173658718264136007793396366427469526261414632496784300630591236196286248000843229348888403250608973209322668408022458197262448342530467583394969548441110315298337491040715175072664099498257246965347945369914781651847500964972801281442010304763960717402230658553016275477554344113122509315152321138630831117450990931481738769130941284419823434727426147114853227024818177657049036479357030048816775276648497056710687502099410101842414392150259086101745968160577810862764664103059874294476774473643826490610679084337127315398653945288656346954023637509116351082700046876251386435565517879206932913803427433897611482226453677902686942249086016363628643501627734631948407008581215220344131801994184595124101105560639724689773256625878178711404348550632977333999378923062795865225371200879695622135588314446805579258243954177757981913118992969635150730090827857439535065018510460772068574727577480511664453529310604883983199937817293821799843811042971273074234348123099695508177887281496898923569854548138517033643575781222905914804106392846238044531910211376923845572271920982501483033288988468235928960834875886799095084082712965107465274533150305336753416763741739184172684108180682454139430270757153088648755149274679919170033054430750704376814021878502215031947448083716137343154837008314620929427866630316907706979661142076198306311701741081532112732106912356490797924802521301808471277796888399501029114717631829353776953130344166018283476951063533974793385073582459132512171459883597428921461011690122586961811122554553009307114114864507073018728417531440198200770060004223910699192938364297145023873749938185152556718393019133760260747372310975338584496744780563665628069022851982982064188670737059300719335842624991381464598973297920690018555753846584244673366162034687366770050031906155122810631221095950090224808060939846610158899528473294391801385993448151483896100482495413775730758964216314007919162961464242683316405892812535172650968883677123101819778293978329443761064279662611461063541311206669166462579835175411882820023575747681332008983771052129366852742940525530002253602178021453304301029673670306885575221839793925899699149764952379937285868301398078445687715689299494989408816401770217048442611175782928932581498390155440061273397082173718655069445008470671451615370320172335051963375640462082066171046970976464474583627930993014779310229330812335020638597244810643320412069174606738176312436279040875351034224372251282219057129084869784973829767248499653118506938979290984212143752660658601771729306948150016547760704057447132334126709169982948434350279757537166263348937285445256299221219932975243262614366534893272708458201854567690398944218995505701487131076605660372794062379831516851410933104857544952913355102994837297618389103437711014558034218108243294647964217691399346179610645721709085268918334819493534334290919699121113326093219607718018576562036191079410571248224337056543962139562345913108070342231790735530094366147334376681663037238655085884705471979577998134665075482553555796431153742199762328203896417627655026474628811423071842289031777211288065244033911601666425510270052089133683850994692959185075171513759858068892070525414630529884039677062900812747985202596334285127487743659145906871921348568917374350794314971209385172832356643093421709460677222694464303571772098339942727923380949621835128118347803726343408462238110031287623898652167970452215497928872283712874241197780842116430185503189221098896854731456696061652515142833258952301756643520037804171786548300793855267446141144789958423207783538582018215726474208746822393206024040150275746635598194112186046984332079519422496729792685332448131339173453668200848249126120415070171688231723560322052209752522042617856126533753881525642812406158663940671694374036769434938663878047438419633299820388993932946733854742290403098474691042337874479405483198840808752739154893889212604164424233531896203583394023644667934281344726162095810574413779990272833753493204852592700279480102648971768758357756202830039864122672109233956524582683936164218379618105011942087292086491214389151112188392833165840821044743905143207065349560922634864719633356987610466932563691473934249227277351916122629242835624410476528885578373598184989759344984781765155437532620196990256205345725894914181356136181744534113576941881934041904535017268140518424605056807990295019303887586762937076727980834687954207504921881093015367958624362517885719839235532903094038134929595942069681232146619761499217536145200696113006687330138139692690580487427017034702233927843712058204176418792382086519952626275452919629783302893736028774122260910203616783207145448455223370231954981554392746379727726124089366097040841697377838881950284044314590920513849841782446514916383512620908197864588918523046265812924189330060945774968393194951213969715455894571032221370577465947535898130332524736323852809206927195721390181004850158327295941223931927406334696717651044815196319259954054227445034234991098083628267443102789910516150598758052533879909430599362766771414003501440029778872453663824584144810280466621691964047756617102125983218967687663331425064939286255720615863149776505174669176781065741429422422175460186274799481082393690742567847381045542561430646042422023375632563896989500224754991375959632594689809697677662820840958803261285753205622732941226839121028801710165494917060580865176802094164179416724091954255014480085360411290480228119325931700628545020936896348939272935651058656704262953094056155124619229674507109809460392902473310628352129331042266465863231932618794530183623322080990924903573945665284520280947476028494568442848118532345330655456828286813761728687862637369706698231470380140991898849973767554006638957303106228815861839921754175423344215791378120129009825532893164903605742026570347051218918781362901496630799375544102889829169948629243880074961268496072033156732278425066472519371279094861061014153867071074782297098891038548743396275101182351112089553333827475390505144792878667297149065314860585759182580274714208149155817156336215836760988296564399687045288608970273204261974995092921235375874849919800934284954862030047019811292395341538278163240093259472814592336085148198621495451903230038423231803903621938071871225849738733672297850566835186938297983808527268013222944239859249312807451458555946863265914482942786037414204719970196240381251962169538124111568546108334762553017316840485755435580581338239107408519749975764914489062214153245481402548853017624179803493296898094644550667922952200179022061507264598167015210607065412650915352806366391313206984380385460691300719845031576466933473378620172039862200465648175575701517510772208072919539458001173046591322573347873342975523709177738587054082878393355479334974505819061157859882427829021612711614803418225093786806505141286004673360238173177647695245519315032167951111780371822165809738831533103802733218387022500731781956825814154571335296201928755713937420157353306057083997019585689560564137379081462646372588346311749614245653460300606662847983320005497921179237876884921882008820747323128278867885858889705811695494590261140759905768361300634588041210710555807462563607646172092955144748716379331025971176415774412265850828866912892633465254454650598267486344739676359591580108401388447550871099117510524085975373201287378930044755204881590278272847385062658129634267352093130420925411780634104029520125762371463734604012629438752617547090879563255766693039102124380386137360518950700424559000166714161772553283798330727466823587175242898835622676612652286055844436730951861450362451861189476974171470718950508604241718105677168335587790190585743800836419473402246555566027121913589691412553702519299833082800179917074768627945263148248869706439144536256159021826633266031488520503687893159960845859829633962711420904400327177216919078667029107040121515129245077621979212590665499445210625615217500109329455351048030027305233607358952069004774242585395760743205211485729275425331947312470605804360164980249485671020181386131995671107488811935488249085708787266790222948954371479480743729122733397548610369228128757161796443522823825382166550406795943008755337024614464232397626148243210996842421358300929646942637829845931091317326535902683283275086734049658868412520834860124964953092745421726948924931279277006383672555140332980892437423639933325600629286524818205009377777118734020029858729601592858763086071519986350147961584097265745341742005465168924147137886344848259141605592264648666080830776298710137472322152389560879741587846261967472097428188464761599021505696755792550190952209946462740598169509468320744204830437797445175167426544908560362683234041603071658315354697280242291440033453447550304830551910045406344985569645625439445802364507583022830300589200090346913990593477575434216506917253150228310752139986292944597767848528449002585469800466886428350425149102680059997480484196438330942011182173648699541673397721812682419718400000802704421145054065599404347912759289014830315763710861954963459851654606961196314509280546174906304307534623705693975372474236770297816477348656851649463863496069735197493717587445799293695380915124640979114236391867975078528693939094200312848211284085147819465249885111029176033929179912822095609701145222382744299784379343889420617161490357025747209601409599141285054071563916800337332507747587941441995807833730473333123586364466336446544968446150967310711564404922678724436109755498773159769969968893386745685510888972861701134879587453337921311641402861354337526613050250543835456260398954270855539954440318747061422394223589489018463094854787913078250586540334747113817588695321373512282206807136230247373900859564019121620496099141939131225928380659771025416103272016929384050025172672696509015648239616262295558810558098142117370400223144823497809628262252250730521708296968293075113875915340014762986683181349693078295510746561508161677872856495584078686179817858611142835640181929154658717975839859819019289433562006390355028300469154382596987447868500033867642119532269931186303688039676186795029968409757536660730415720722786829048134098744420227964818227479347820292895326903400714056408209821524661216400068198447272627891674674237312986265604053261214888095475699350131457733766974584787991239126824723779483239086046704710143611097130099160186388571130870980050635851219202796288227036480882344670357133603913549193520039847514290622724963780897197127748356769930572650197259914247588587455269474414614881390912430616868274479836747822758368965522035552694765839729771017012228078809535505025997304994692695941742779842743845333674531519204882868118758812532323200526307475543451969440098423183491029788098204920084123132181544093710547945561921889355571996372535926627077261637427808771535610238622468436549348029119298090335356650429650531481500816472019687288365741964574220283935309644971193126855086703719222925270657407727114818622762478031567289683372448460459531323577553973729252593712064180771576824484058579150232965410272886738989838009724151316942300169522868588000269571173145180950208151558811715666334634576714110506711607715017825151736406474562071490221173497629123913294370099885333999261029463681899198197805355150079431583130234431151153641348448617744875674403394351133447518866455073492182912428251481937707152851564200728220888469863018325682353452653075790596275158231233172296484233891946665573373045008448366694650787463346171863884848579045626654800841319725082127985260764277871663284750637530598146107084834296208251906850449788094977777803040789468443290375630699792410193415924663138419381570405136115659725119839082792422841981936155045952663935370553261186456472906435658693997690564736840059426979229419985785956538527280093088700895631788160086939493274953492537898955981123141596368003210858690296657486942293378605346510320945505892228679743162655000921330112213942160212021850056408729714345231545705820110196546086945641651013665269083604930406113081495046491393031883264743094837714243285672120581963741411755537966960586347074182740906655889022523803837896339330975100036086819650635914778322867658357483291071968924467797218720387302259712070077155513492675720618891413434959494356279744037264955366100282715125751476426905045118008334140732289251567059863644188267621975082193207620259930761132162235736797658208505246266232711721874107404935398179043750722120580667320670017615751778006858982102050172305563566373011769956480262420831249596663385936243615495236643268356996876262053721898298678593623861699263711764239563075970865417760015762748577333718267970948377467259916963719104832243654857162464649506933054402474553082221347866410890329829976837525474122230380538636186470554134333816226659274702711261401956665854960866401104124653847566251854970347584514075733621195851833847959563116679262235748768975487626425008734954365634051712444234752270851853241178905405129072103303938036756112227941515764925380659423849317114880343865079113649349835053750250564019076485594931167941242505002991411824129088949180197115612245798830292048107564013503429980169834470766770440252379732135739956557815453108093388468684002347527236958595104340172749565221451168746494468019726643444471323345069683459166228360409639331191280150837071476316059558890227242050587819723751489906459894414572639980022098276341525949936027460135249601647758339997623450214005103088451609299875666651523612075042687020760368969771768513155781476420375845754449544625505726933208715335390545154055114994898190447228500382606848320778794054817418206532564787286317322109618754432207108077839080374503105641308724646857298725397943695245527663236001511218923428123397327025430210634578505246154292267561463269730310343203681733699221852539226599581323898941845162278115404047359421983391941721440551109047762590297551984797352205498500969678654183664845238532738011473109561680446676885093155438278944857831492813915403629022674487229269410235624641494771181359806018219653755739649906963038880655640761476580688592186351726062310446968568250667332769198197494579153227567917004300906365643199716423276878130221814022171074493240340507197001863206119630350779800595989405864592267531442077651299150408719032609726242603292419961867361843872693714674120337184075219720260110255854615752492138543840446396231338884949386366621685886639891161082979628960688656568301265079260662320380587725656571173915798849805580246222962689579240878191111586618665835684100793160999234232573713318662784707449669856123932675832250385292253145105687249917801229578718811255553799691686750874596853658092948862537713027039174536145455773740805135463298073318247739779049177649858118010683378527946524001365588727095575606549391135480462875166313000045973582314728447234744566894575395502739596114357657658776746809061305131051566845562234154483573202817353633487924787464176893000690852882673024019570374089968324744969863627143070367407995455178094427174083772123800053999682228161801495354188997428320745244095464368383709850739943165320243213725216843281098646044358461541586503605016765817054921909963122683794236413094776638425084550874691338567809119590343861789324359321356326607230640789127271267863896839448320539351195029053470421810936205595260083965537599229912288720942081402457078605061958008718084298332634601979245984495135775599996165062545382999742575061181719288372835197966603232842944198543137207594674152839137729002745120901756979782826661774039284870556220562553564554704712226192367999100620037930028959464006590191141167193497433465557459680664328576146123246427743282029515623975521307528258218984518286660076698009126152910426759533226995009844576031124625219845067658776681357760179876714537575859861363780677010074028321319170119997133771269461930645416487767747343328424065233115400480142482322730008698652707716552207603845547702379298723423965452542144093661187048782642763358466798444315756863295803724072678619923430848397243812607066336130229696293606878049743939539198996802689081689503311591451924992722423446619403441984960187224287848315472190821625419844488101723324168044073157970927221567580667850693868068450777775264119782009185534645390104082451198257243580788658232116110714169125123132567491412845692889556706504873789132026578372265922387585198027855710011363152414252516464859505306313534942008892348308232246777541971027662401061945128416303897692860783090588958207765286670384326530348099257314616652076784149617457955117479964386800147294104720006093016185860518430470011618205653818720897452237121965690618543798609117306385634641869316190215161753813500262604063718568547538387273941869363243211845157751292802346718801425778127216363481767409832239505943103125852952382687121802964239109457315939068237999667831277368116722264954278001921596297454405668670174655196877753860729450103979066156298473176381143490257163627029519831715322214373384968782669085574352875365235125958458553562875649887510229258890367526967403102638484682661605723026786640160518499334879830367879592657740514784149888657486199569941995935646410654895519652343055783746659650686880901341714239533005962251628218353218866876295674448549747847786790507181277700262591256223286105268756786429661001846512363928477505575499523401018718511403027265904446396907491608802337696642412112808492146312858920651124654271760836967730129250064447180994387382310346745909227091308107343449897060218622025139291181371457556910834118392553053349390372330955872867369251391641402941659369726268940072979958351444572651749985435390646032346280053699723869349922057977599682052329847702582584099066594831745772254403570782733424906938320023979914449983302165357352753889624472557442130109157430512739247051243946427881734263627257307914287155900025713853139696252774161259039183407295636858198979992971512994560329004928370854181087210088359408483070073536700396643993186268857999430886743517712958843710278949704466311647509208982472265657517537386299541451167931461458243246424141022070647192175004913635275848634214717825608972057318902602645690154723364522039990877432416343203290788670602453812863062910807345926617922400512846218198615486767406415177166631870128510228218507863142768491010652399159596938520010789699024830019582187586994119687744544316731355203279941964456950795153041154036285900213032100620021705045533321331457233605825296716197753894394817830431372578311837745964852582370469287547706040116342795246553931533294763273711691867078298805198104195985112424433350342112028506608588960527599727871743105240798379487578840188054828897143108471813068437979387527008901185616680623851620890556852651783069854035113255254778947986457071457857618971807901813421935377048721887219860408665817758589774066010203026908430874114424710455322699200143893788310814665502930153585876253527806021975386566141600966248512023427753459397378531686724617936205260780246665715467860817219902780095148091286175133926528340370353813970912976518135766525703433641017765593900673523933321774098606148610012162686229955243173338775401493339019988568149251854766092576099046501215577862057165093109007841679661325038841152386925167060388339710908669693540941570755714765913582986142971419432896705665665027063312489014234767848698663224326453101245567187823610279950071949530256491031838006495575760666232142578148375815123389740932381395667351477567836679874447341789521438511882197801970901417283795738292476885394667316064222831777667646964254332261117163826518904284408749451832746475725455900895450199058541571744186443799703150057067352997561207006156805686140858896509565668146483069623813968627972844596404355486565886773687817933238686191965698868117252464480478813701432744597169222954595829984863364007285483158422078010896724976791454356553125269916672344186951356647013049247472424629084278299175280978692334029937628479500002253153854569970058649859860783313269894536417906880927089741664846962788495920555714537381023584003112098424641336111302850672606845262224456311825430539555198908889636296707042110232288651055406350098752996565955539174137161415616144119154827894889232934598031695474332725791858639441546272815965523232191986271591325388398324104569422871752625410617753963774509277371200947644155432346506553943935225978927161819576364893669533078372842751638697843585707892067959566543996562804692111744766972200966037587241632589304041171281360657707776980724574956219514407894974463765371114594544938715360306215401647264566095802824381836408395879684184511942774508009010514958380836623393513018255983092314224871896700346631612047171167555847968521575833707237234863391184204891556767986007005344916401596262838729297188593376390810128066176894495150080092399114901378925303933952908625949477420634178021104099523092632275794583656681448312706140075448056315358978254841648200664464956197756386952188651694048951500823557143285087165472235657915399115911736622411862055922872254870858725315164770459657778691194996467116435439900082194695418097269683041637422073267979783485665343234201849780479503073837104658474557945567444977802460694899840986904058505336542170522956184063708243277633610010092092412560619687215836966444887782101159859542869320443082581653298169085871420267312800582998898907689592311728875995013577067455011966976459185131501421430525435673052527210962569820804962127834500992518505056241408755793191676633495296617868993355480576860091900257600103291971893664177480492610488110279941970427135424203228917750842211593151708152467969422007715665843935677009332487732740543450633122927653708877834410663465161120458150299740091858388179197222523612468331550925122820478367668346208810279262550402024450539468932508443908153470183324315992980668891724983477504959062805733464622545500053157297270162127627514100938051446861523586216072829754392068331146046813915274822274431101956607311242815979460677239853105285882544354701124724773043291858741265130818423380382006347509474339015102669190878318849398856897677736535114480057764492064973992618218934242639081436921786561673860990590943219832687950525550545211658286145639958663026696810283585720643031346800611698591701600180712821037683039200774733811676249600415718414095203536379849333834031118851922962300000814892334046128553652516127039218176563430253391159642676324006890611487132087681147626327342598413417027494820187628003853180231690197552650358005256308171352070303389844564753129695146638217937922312729158616379260173275810080790749678935257355586499635054856020571495763701064562528891179196669050378581073737843184150604450814284432919300564527494623598147807442563974387888826513984014112898823830451483441728220344400261372291670621594940393023432739151848978770513656185628797674791307291409583143214687069364132488539021534882160066053090708288385481202318653837002588105143339564183950324379896769798621892409161976153274687356221467519055863500855093428993914706526628027542945272754519473733666561976386324570528086767592829785866792903317686939926022259292411763790178013624984625116836293481319668923053970593465452143614260478678457088368416504133870535444868118469642036948644220171821680933663564516810576852800072275924554540013543139398338872485363940302542984372071945010740866222330878373923464803251136021736747920155892595243000826352981761178764965442928585873602399444737896913797213426888727725786991912256714446275022993398304075276251137777941959068410625898254649812987658398232610596517301153473416868760354897525189419476166081329861345317557088337801057817336014816920871479851809242313858450072055304790162605428585372090097153802999761670837923412366175264410117366238637834540756141572142187581340567800350254879655094666197914592091603659959485084940072374833752499998298097326975690160296440171011536864741487321018310031592021884523675808896218508170881187724882984476149212615777393694892541136723296826538263104191756664496377717678491177772633369190704971732074315387391373941086032552852676543003793152964063871768427043814378693794928571433859991529064572058076545323421713930887100102468107659547484263178058444432982409765833546488566635050423360412637873395325450779526403374232100010767086259413339417371531782957037207229702060240776222661374863573285379177024866643017607300030097047216520311113520523659026933823638891424517813362216066457068657528162583807143780084313135642409559523581219899212446055331544797600426694013680552625040905701376324279579266746719605508062563388742908921609372069155683762732240624308720476392980455620952929823852194050298521784552885733540409398211083990637879080592935460540171813888201587743743620058964355586169457326221966642378300931456727977320911250865822234106718789351542970142361150273846700360744000655761379651583416022748839787220896112014056247775530672226929891967959538585763946107457875756435876701218909058168279315628291474328096140055729989544687038696143046665250543211457521245015455474733265147245901605648727685191113919824846195642534015619556341970683400437373210605807530133182182368455304978949057455712336150057807494849546572574192201142273668590103343202904663318286119524817016873390070347713291724203043346890131382501185734290660626853301882761726769012416002953249273506129940922427845789586437831506455650435287948159782741770920677860032365128747624308537269438424425417856555118662430045385668977987572922658914082007860269601581641101513519035045698322768713869864697806999363368994360171612639075729814936414770424748332484432699293750944485467265630229676138985355809713784760552232605186864498240219433756820842876002787544787300886594928627184227212063574102554781917976854763267802407488217483890788291990265202143145119384230751726983549693656044385531745168639280710232149373325113519877514458802042156246604510058296569759749258291123957751630070214888818029424973925138796479664166110987542581976932322123861853819660683464383926914928655196298160770503346022731817348461663574488145265270716455662080740483504073284238462758029414930259484077922229998321020736056312092002930728988685043644437746750160497977159920283515621623504176078646093452285090097178224484904123496475542340490566441679473322359958022807578176292936464926261561449857818149751552921713981444656095397916777964969757570503453892154563638291740162267541290353185338009820609558973921693939492208073878800370276261362012123288553365908471930802543739238821246081757236734317221575696909425714592879845186069784948799285543664907838948463774282740005428428016361810360562669086475655686460798931088555438711192709745836494675833408131278800016188831115926121153888397623346878810717995739543156312528486571249901876120810198628018268885956756346697953869746721011357540402001244573274576188029550988512935949503416124717993327317810669311307626007388985618881469236052497338378850579960058169700542132970021273850132885226133758398219253191563900387470266624552024057383177766154631522691966300583944960035831880793166918445280375275254919480974067062412246571036562117542080600213894254786863604503525133562170080017445692534520362677082560822075661233819607091729321243196111053469607750003745821230120820394002608509964572547863271282949144678685855153546020360001598094437945244646844832917669461161026962800759710454720581217324491611890194185708647572015507434245388770845532812785989280936046715782878124260804052270968712560143135892921081940664492370520185779843783994670956547928364676391571654243752171227742037919680970176378056778275908914561471726633581586964266963644527594525695636428782667111708779822502949425858403053380534039482792996828009209924395631416157558423068263820717958499816636457838040624416529059329079924704918582247359652999620342940205901147103490920248972187882335341104879092181468250849257841140277037032659708936097911469473383654501279931831194880506271401171825165868798453152417467126817713612277444485485102001896340520681494479090273771721794646396157813284893015880645124191604264796072133265158890346827669232592408311243588157533766060840765762976256741158303171941136954261351036777176503616833181769847310036788789066753292754704959235363167499787555456396780961800663542567477524776725016106517769573705113932099536423744907757898094842680495637593403948490108341746705601677332818824340888166277134544094559420929809502208604941190522359444879794824917355823934813273911121490444618899473577844331344176544874773528003765352530602384066255275101319452991809850326585220293583380727022433129804569238379301703231339356161984235877449814296514673003213681718038710231435764074222831066641858194363690093019019394710774116201140008560676534352788615207989091877961334279869044868235333877038931560377591638750846415869553902307749208481041835824778959918172877797893654279814852737289061469567725292862154938908603130629081796205562827838856682206931210860749716146246399180563855925238551996373280540400977325436462051819665297010612349535876132009837766650069446052495321195104383636939053934343379199197103804275687378485880098913034715940677550615283555961463176871720946199608881147587942339243589452916597555085946849837913074473064546226127819773065028109281974696129627567585177057642605031703298100680547981707329444232576919487794459414870586670850314794434415195405802232530645291843752323005879132004548121490609505482625587971862984613873919423665661945455477911577727740359601359165156787133584210794037138896485525992508309829122635604406572393000135583398720309006611962968291532151068167899534564621918972621536085404336699512307830247271632668857416393263053411650559725818401548964490010344238368816266407178832739064853100209594811833810477776609992546575750727063590640131240920551592350263475523529299599832415883596010105856696405798210906731101511549447559435028576837241322367749735712688259987269995784794365368291061341994629049307392239693731308982821801969528506353796773916652776750984200809061067011973505541726285958534060735481901909340958176632438523154637503321537719789172168551763126883947170374050667772768596093923991448402570846410989774662788376771782184172751052907419996848837102308940177414007045621007330418308835828951620782757162681985621525202545343880997543373010635344406524365606459972272891812763974886831955139971322555380292199302019058513600457596514058828476802481697764232187115873831760719534849447358860814155512871091399536087608843702449698835793397783847256367339547982197559000393384470963897691842289988879315578839269369004058861532603823439273523948649182335834105422912561849466891151732948511414573163561030852773003814292698357468992250237988758077452435147192262432737644163422519792961801003507480398953073061667674237060811265980760048876940530869816038736964117394442941314337775340949959012093602455878553459059892708638595812220138122446871584632977178885674091544909275885451088247442257385840922827191403180000619091735313286835978929995893480249183457282040739901675420985699973927430327148408404104890421546510235788778649489863864732680847285023905234595273356655529513980240534705601807319816806504029566771567857118935051410856032636181716763670475771702489381046906574086528714744928172295094570003962139478668695218130626162714034728294722642727507118600555621981131290832719448887622958713387948556741685253696758388222406005569841655381934466991983240730882664747362050100657738356812502990982290437470206413534299635911978960707449420780867066382803666166386159068487754964016098876845063330104202118480574120608328389232705005112752667697459565290032962910060002514909689296491592442926630343279405147391259931011981127541173719181097191784215530274242689527922390690009252042020019954400976915562502130334759236157914127766858952856299761230302669479144680578505923832368337234981170575758683618880667759911759025603400245665574945634148567124497586687756069850723971445319911541220721083053544090082362560190333781995764666554418560843202487039537217561686104233595085577137295820621146168450461387256837413205405746671267369672582791656684728816621383077041443724417974336336720620148217037609993523946790963602382547607221644468277358855398119901974925645906682322163745412145048825255151701278531083180846269260279971357430307462629031036954227928706672729534341136552481506467604236873113405245672523379796916549812937535823956803602955870476577426321006370007800637603110767093862756390882072045610166192178632798718791800833355628595869266141342792854937000215436300130836970568228596343339469142339117480272145211864175770397934203117465729513097954893503266959571122292580486470628939826426880612383733927251376401848969601833748069976788014359061108282039872777525766773812174632450857700471305952275065884031901974795488717209678022554456475149875409433609452125854283156047602241284409676754945933232479475864172468685441858136996746550720588991367520949000872545580439052158374945411197900497948940503296579339750754559512508395002957018452383453474082006988391637673119365409015189457870711042197364153103926426020058984658572578216815432187730529631027837114280466215001721736088743203099177207876589052437221680642564692824702267561296232579393450266866019610447047484713381035582420267689946409982837508199991579300013660019839186677542691862382789558826085139753573581211044649353802125521325977469737100546733893021717823393884947149308074878601432682194047660982356304706413838231129097305342505050910322096944907565117925566960468809027738489152356000183996710925521853850196607906195947752729992792971746362374602855224992749584071605668975887621091012250119578611780896544392288673403885679780758407295128336693341714260431504303373650343320356209592833042556274825077905680126775112338462523898159111930930062940807423722942790378372525812965105271989460944232427064719414416929440318728010482896085472212587665469816757645101327729966445349818553285349562715974437826445044754376083067551257500058592635174101882653527047745570900791271695373585081175721770515714808475119055436794612482974165057388998318582295603687778554523615314629247699803386619950984005973081789419701089996466077175543842801139342498391632686824495884476274721959899282885620551631548374680827430333322787139476546196131868519214148306706285922666624176195377928910652082797933719063331630907766130014200371252903203667336146876782859349585723504740286232391996861215595593841424493878201314852988789668561207445488786452338504940265688521096760652041988259702849240251133204925387173722151717615776894545004128285295017327962516295751319239746419921920229158197712092980767318624161719138343487330928863998533477928425237870928626169388628113483189594088095072447566647657187121564585594976266065816617635774978662752534294185308543550827412653071482245006825866356440669251267424993331335099025343336308063993858392650120926953003818257339396800173317417348112550171412736134819259174908022620896789601348882150030278907039682501907217754863609818807492894388770259172444230022510429672891180213290699016775245679978127933001210946428344724895388209196285816257071218416214640509994351927666170047321449378765178962054041667283316953680433593075988995496017610605902398602121992803286336591213531632153391782169981232154929727294504733260832991099309130737502586231256207014067465116583231454403127996615132153733946307868532742524530418466568212824119242124529034756569898042636425400278291534781767564581911637210610440508766099188046770740415095333768733482942592464737804569027716974885009183376722042413952947427755495260354365128189925590763685667152514771136476089225632689700504919265275878791351405655234855822837046078738084804138050886012739446874641443518288373630325967672493243533180141033162774771196844484963116923477019829908800749993955137539882960044989934997243783683750367248937809730536076070801092401787418469415470201260199676442390764156727201679286810929430341996064622844364382361439152648934750315068912447276223873507113105826670067237357059246493235379161147032759364576227784225635842370213339877212955371463609324034858362319282556325711391886899246054839175341996432196261683241302597658789246172680183918524564164699835697751978706498080559758000963316530662445161839451592018922098801855004080286757934112732579239538117400134270068291509394757874809258969168515365538982694598871208784203156211922992944245235734553689978789984924485702354803443515056758661724515700842940801939136858968398298644995665416959807828735051777051681649097997814276210152229875417692338001489704450649908925878737872619626378575514077047412362600683147505124546790407602876402779404873568004399598274710113898500142984894042865803895007552803755855424468766682150229180915758533938416342670068538405054134841949617502476599051373019486256800028952288470936722413233071691248706183688842466351881604149848490164218812678269451773273815573663766609952882942501132988519242663459504829231059020200761168963620633175286299469025664524752080367673923517720480188367558220620499092949439788021610853920129275542561217129996542297782005849549483447529282890898095391002659017649410729289108303103167940549780543279530624348984991552007036829517479056381003125936505887790641614881936146432991631406704258180973287410913800789060071321077628570928244192355933373369878216044262076157722628787844379807718126551992754965848033191987881420479279161280719341552512979971896880227210697896996443076534102630249679708431636201590258347838302027247106285765475331458747341757590516063614658711240992202784826625990820910169724035431959649848206178145581588431616948594931069690031765906589118905874565217286403505957642895142568426592030346595778678539727091346785137730550589721448865398219928535571177795735652496016342681196278596470045242407072531094250180820907128974819175829568514622074272288586638584468687417288367305308936247059553791887259521642353996526905715946923609244244943486255257934489776089192281171217977725353967033547967067195492946929877139891855873206117512550099582676082742318433313127025331687544674622642775025800857610468885305961770558675819202482673484610770457083024498091893276175193236099953349380479786521749609461573585754175066554832125447671172022534890473549615756277564682814143516374133808854921354925733136156441990370336130292824392864199621120649161863588739769858464502731417188462987474609884644283594841549326798122813936518811731310849098277861491749687941780402123282109848002775935048942264664132778794445307337908747992896626929562665038795284232837930903791729374596021772804181162807395513541839374091074711192073526969171847210729922422186886262621916737271655196822878603910440779802686735223659476136939667501934818663267687755838729269264868439378866332112961961373209912775036846971828001189539734550557957591821553155518478346097483041228193187585627881357428145965895301210976535291317729028950318309726375300761617158693940927544132474429738990634763505819977067874091399094812110851459806267593450092375332026298036654012149933900757512420130934304059103303993042978231647433932482967259951830468622358592047800437099779206463452520897389203207265268900483542589059740875236690082145820304534904758627165130785314475214903786975482294452534258742943976996291438715925574904320920494876908820302562425857440712986418749060410762121683104572060597222282380502393670506008180362012836017689770750491693059666864396623175617215326029605284815508374261377547610286241359121792939422040489555208415379775982204856588972761084987938279577565217140675334671218897053909254757030677933260179437504036720177921442824282795712136622990072906660976340214083863263937633030882136849694898146285565230874515106095685133013163646121056103157574271124024616624222920399443177099369218585978231405067092797886573074185427051070528451551070948349825509792219975986809656706921479399566378122849883261830215858873778582769047989943049209806109098791020018792835257814340474149557015329445480464948259997525160976372758768054884738572922728316311355774401776033174754205498234243392818313794685004698598162761331112086171599447901280076416690231470642778390324260527759433237550784280880822824702638035689896760828624304729044681937990537419590811339488619909693736765701868813507890430251367643446078758531840903818493599450906665923896565415097725448898852767544949998193410223343039527266595699851970758430136792764842855694364470654892257661344859551667654552004609920164048577248088327350357589890523373039508209761212550049179262647650932117215431411508773270484021482936843049390466845545847500332398185524350744290226366803849976881636752707113999100990200409906723295530349491811546894883620334199205130144787112898331983102677418962236354664641195442349508606366672084445700470019109445129684726735023773385982482495449718499264797068274451376076357413090773391592369488940593195730456193308761072075994740664886060038308453310638805223681443711470147819103595488846537789020266225244553198419735963615817503020241064886231238973017347403318336569054175114224502035563469386637871766684910429472180410554880753910047075795011205482191414726949448326872207631936866524712280006817493026866640527176952657242611859713181110897970478523899336061734412394647522608544997332506520728543590349864109764261319944954719085294593387519476508094581314599779464804750085411955361652026127511234845178306047882106925733210217203641990632545461684063081125264125750504026522713160332998650547278619173731390696619532879567795304986109129821266968775254119518639765437869229865530351844955411641188535969640704216169859251633224566287842323430947608838331508797166780526687564243436825150189674532399273584391313980099587067374395779700366338810266513006745742503658066482296181518377305072711116940703199276720898878541958081548753870103834663957372971465952728375493498158471780877368163069021833624598030068668261695614418299031928109402422700412374691779418324898727388391982890930658516302715478453451753801616485880849574337613173385617685322578595648443838436125088334817461722792043587672476127649294676077519593979236046527079291063321977605139536976585172226102737450135792924053246660162140569336475230789885788448824775925506366309109493559502230204469690707722804371301849649718440907557197228846979951618448511114962169240404616534395507906279954062171264077319283422228794207781213445604798630608228323150923456577547072995936460859840305958216092838683876428641422573192152886846647897997393502164299790383313659799617326544692285299249258769478131520772460521569132371253239854544491423680575319404184855319654598008628855705359094700530113976918097546965124285219656784503109493106380365950904155881676095925754785013065121899438466123322339117695248723312984263616605282618498323363785680842734970201559399301254104061537020867311150127797071012276356257317794444230743649674776215659092805112171422546677826802574111930599101652694200468219678753087124754778580503845621467990153190174045517307022763555334743501857019348155802530047154494206590312398317591742066927378064142232673616914598211222673407550713259700475333762821103188947326564040434040042711818778018884525228975334070479359298055506275858827767455696663413747299837246705679024842770022591806941906997196405645245981582065678745289618175941114641852930587374091151232759664546556478157488193592654766367725093186295035921580416981546537727462162161065138963403567479462079153996109688518202814246419852429956023625996067325562714330043241040192806191305995207057555851575401683540787531426449420438189285510350261620314518569367788796889038057282791533250012593418040111487266934955594309055306419258683856151762966911807942799975233775835850233794622692505501124743586511764338217320336914777768970611946006176577625039026531947349972166073837735378770322883199906790337633628474379778806131544497860051169966625563234959775651211576132812065460671469955034219512419797875980239758234825704304202179785915863489882101257268607956317936468881413053872192938564404649487432869594888377170039228622278960065539228608590300690042697696163743443535400114263763536483443794603693631577338166599128311895386777296711190096095000750908311063559911591884365151338262686041412869788267581567914998970910917246941677668914312306163188383411981542839593729435822707027818985835606202507866052156050420227526700921351078386876519531324962654163370852279951096326509439075288729551182252243750578495994897419331154083031085954816779030482332338484252206024059388833382679131816412840750164875086382274032517236991704258182687200325135962604173204118323063351762091474207151628793856861657256279090479748650743919368509755349792898520187247644297380108331502185621445682587558136182855031079286370610045417692237216200864416013039802509083311551705316202969234893557560665103536141131112653915582081037467069125056396428923620104214885788912048734486693958957577941064132350970488823477961223178207299344557037296175704106369413181697321613261155227126197407318569482063853815930038588967909989626717579946938507441724805363121392014910814915761974776254385932257075510696304498218639802097599407051345179168875899708671348040100984206571056952737973049934201154282481830585337122675805056904438237215733022981660940272882357724231944583502258388686160137537632711998610690630057928045859901761890500191791825020928201049109125031035324972835831943436542155913617417967582340520155243058147814035246001317026117164075909862662684942795227425216311699218529001156323570023531169105774088857902377645092444670456129273775438533675730944103564916872657962492349719144265731696950290149290667906661205364477682684358535372014088218643062379924684380446018062889180376327961136250034330644903002477980809596727312050959028227373496953457455128884199389178144088845545107911768050615106875485466278321963294959185349322870273493675776689834787336978485919038125637768885377038290605839084463586185971920695948759641868235563623964288893475782858190236871608612957957569895051200662008831890977067665461579808790241026726268976835698997964560340527299698730034435871200087497090912327086044970454528368602529712726872682539592754044975252616409426924581390299539934391235293479723516246647918238164129622584937930281603529129530568049664256021730018262210976013533325905648249087630328619126173818096755557047531667905376865495502625752146411816349119683213702077226173279072582328343185435136328155900460857076912840208937355975972058196387279199434407115356981794823499438479913496991909347163798305249357797440081006415998858675430204733852546980457233902996638631388403112692274063041544933423559323760701575047151413927707363316619216690139549705550909339407934474556185055361176993157877290196016572309342389433593978464578715453764821021578835765173899130834482736088982733316202265557555891757749100481382673877323329350607416644360308675603745835574114823292525573752655009536047776868922962449744061864567969559659849405811436874585447979471702344198858651934493293099797174210004274994111919676298066083932638748462238839802696263560619703393502313336356883074241522841104053111709304295374985951949436196940760681551318549760782760346295019479697128475931192305121765845046352449986260615733599395066150621772919890156706572215368750445516053338908232064136002934318351783180862427768950300186323551330703923143297315311963064815656723573313645582185422420747237509914680299052727243694430405206243863031036265214463229661970631129125470699729505122174052056237418055806031649298453454524265117015761656624511733020001814124476071948029312457090307801026065367181930526459819274793364885677578188619811132447375452997634114004761691557485685900250012160701530095906660939080869167530939648034130764518914030647291047698940487382520996177302509932822641282022226325304651124127380978628027499591111396254822055806180141414884612858997658007407645190237291803368019844360795027681081524028442158274231594144549182160914988010706307503318659917904330929972814232946750583702819635977267729528185549725131936697423751921784725759159112532601068108689905403736405898216386417027084913770030052948368621516556476251839250449189220449111952064077388230689796548497545094698149456971248975717983248578067177678790231592400868292139166084779376692183378677168820807123759087058952192126946355517874194351166290710609514935042714877318953271886888513754301011998646225919831182955840395135835253544133066102477727306615339624297912568166356415919661293368090763004074037149212727107927132293919505804416499824166442750373763574565373380937787740518225319728688406854289966961285383896909199377403668042465343920541101309194689752939778928845423281125593343025988282302088329166696127369032866506283664237881403499582814156230804875582314744628642650639144038304877710016475332901283448526827691765682054765321659043820347435403401051316480548560461731786426616324417947411714602480915175934688065961775126621073588861022488973547359921826831071485069279275830061441027864305178164132520675494237312476186284358059291925693121480976327430001475380446324695955152531710792767454274888711348917211238284215957592166582881266633237858720901874605585839359313864564086317247236449106094912413698054928685330969071191517169083382667813387765599790006853038001061392155635942783704749040981817729618204465620660678802056846074278391339786474764651763650774804882687817225600405785834625816786180877668828190551208405831412942108820467610689895064240198625297470114144151320158834377827699040163468037556313813345033163126926950178356583280668047756699762447893018303526287715143455206803804490568913158428556940319126626420169822704484247019531242015398716584185485279281491847661884226950830478086924822344604303369315001361934114583577439534698346499609489370211875289055745438100036010993489851946468796318239341037525510554162572212901738171713758469602883878682806405703604825019821859041918031036825959256709999025880378507771707932228203035466578319462883635134994435399319044414995369732137130256828187970559281060405522188725566967708325568338094555440746631488219515004977322116592083498867752451061053837630722127053725064211373329784736176582562091252191003708983632133240257322224066020505198132737949160509976747422597009612670561445439322126946606058463922429536459693152168319751706535592049960582937788748446543348491533380262964197646295165503179794814906959462567242235959929381385554322828829655954513284504026593707501895491966801467137139982488974729925210937620377782503751850219951149408023947900152570505506884458048137952818192803425641639053046733411025017985137868745191753900735686152784126105606597763851551462372531876699569373736598856607162802963454061898399201953516918376700144228077946480194309409177769887096816310659855431243289521587393686225645436771964345088821681267723425832351828196502370454658347538505669316522170452727303222178686415792118582091830907357459939507189298659125168977228673238676520139033121798393505844683267331661684789637829935388347334791536165736270976311544699411519162184265099820927340726677467281039036822501493142867129533117246390348012721735954618366519901397317820123992933329709952547067982656432136982801409926180162425507093833489761348282219333343709662994012385737909982728085789403242688872415938577464539622708976700067182925450952462688628798964272936043390198580156654592678468543848280356916044546076191560069649461230887088481632012417624555447856968598202941864444968722612983866215220431705118725063348363048546621708279386633027193620227103306899347970481654685915230670872768040262580490817311423637591027447707164957439803775508348841810996737348993958371878996221942765887310967074753110492082070353847233302701315159925877483750417497252500276100612852229160008317950891684038949388598114419540048196439174447112779654161615235587017490299039450930494591964402616030951886262285816199545192497229209768175432430461975313805869840436396909307611359788704054895141275586845918280433136274385672754978626067409916579718150140779270847779032510297785975325307070234075669083902780191748099037635201849926272298629752521396808025321053932998398432263642938752246264858309818815127121476808138444069200974633305017849205461276582930235844454572649644531422676796157872553247366658959300706823040620053456511588637118432273535256060710885331495516950531108640008627841127635769709283327401900508393209039841428844348211590700851321435643094551266951261472809438691410752968956778761236425087273443014866567929697222709751603909494723788051478680728814628590779037381705713895480713822901571208146400405098364657775707956338959007903244711093812458698170837630699856310539506708359162569175573032752901263079604008862071539666298134747614993664479662756456523293785783046876568827253801690168173125698246799455052386259344215260504469194836352500697209880900402498941403205228452947383087872238921277780694883108695818084540745499698987393909874246488132422945405763517522384632631104522929834948951895961845321329003682961403571951121453634311078241971854184404174701443276891449555045870932142617803786201793458262352621255029545324186419662506499704805701390592899495046348216449646897334012742273512625112291560873005948940691702605476277771582777290187525478130447052766156357037318942169366059050076480962502863246244310221090375795917849897096124373142760101127315938301938895941543344455301552949220808558833817344736882573617320278829910184668456786301299736085717131447388687402708732005336073945190938718994512451454478867803044795261307973806262721540671837930815754857256582314256802254552939369207669538400332084188508044358597405254765036658861035338549241093583502887000671421760716289914389652203495998344764141890746393843608825408097906600269997651550773294630072706547527178704612216583887374594907128069959536847798723217662521341095114499222493775279636324923229973688048028309619953639642928803583586517787425148636486149858381101866607119095226323579002889896861907125133712809449242940983202700189830408313527347699337549173417827845067194905176305718424301885069501048969386130745793044631896113885725234406396494947267379950989203812717167315987372105420947888070507799937868777898155060770042079656506906358722142397972806119003881969278728336709207275791436596276965937157783603459083858235752063678484054231980529124122645781129227181886359054211616385315179962785298105764139860572866390538826429537899255104837033616230123777928104711657685227162574161729664265955286038970099260959760993837236915616568713272413554625702945403135999314280742202968829737449912992664617663416416545411281054463123390314116860674688068274357416265202115228252750564140584680628476932344081910642924027387514785136677603091313087730909709945739689482402681447696495207264621013217687829601656455284567355905474228435429500506721395210655038511986186481656089801887206658633369117708241291692571434118494593187999801773288366901069703519842813089785211277019936684664869060503057709996129121564652869392614814041737420195378496051408262402252818862048485248445970424337169640225004451755371272555845313154504631154990987463097094006023985779918249632429564124619154680361635359440808868206277286589870673951841122990132250946329611706846684039477468530243526968827023197384075959626043936457952587192815639243359565256297876296814442783558857569853629318726502967351677736995797076388031346733300794552600544859994337137449196195580666803546173932630328885800071812345344038781131297221596544295201314658268354420378324438252174326433887288176357681575850403259005072540335024949565126382544919026413894950230165017758102262985420402524234570674559527023866776528587302481002772200674220587928689414332177555823449962757830122887426655839547250316640197269364637683938186852904169384162173247301493161522740618996046494404757479587062611319849823899182779885149826192970864496064655252211864591126967433869924433864309124318997547210827524891739405699742606193905788408748518178322593646134289291261957033293176049239892266297985257792182267144445031303949108460588209051884286227849678680416981733806937066017668382050249114171738115005499855945735259716145505059626699938508253737972448344558243230196824956817389003998854056441173098160198506708373609806875962894575232432435788329318995534141187768486539242831926569455623709804910808886194943558445633713845635801364233054467105214016461245536765815071279875502290844987759010981289999814442059712051001948619569580461241219217486773755111746479775657236099100462540952502578535116977503723438514800814423797668440399758890009329813908983656347963985804182987032858266804210880975329245365958728404299541842927079603773555489583120772518284071497090033020098303662581623629684292453419880111046741345124929457300702809780968271730203457563290630739553017405836254952655244281919007365627139196524014363474728853521740693575676246830836197555031253028326303733485975362326880714185687939543763122041086415572592228902722061360146002713577300383733762821949225417455311328627724511687918899176771830661232054084102570267736206593916167741531456368794723878163614063892649389098991614113564529917645578926655657640013357473899166947770806382890293336912953165093637961255333948959533839223291886652676990581388247529608176765745956967323106931952316269628622450828389460129384135120885370120855868803040205924905358609486344312424703795169574877003078444493153179978520919696661288968861328199090134691800139402817574701128112431937129396489393954702994257371278065288165842877557394763912462985483104832586822999310742039643850918884298579989519292911783675935549466639092492390044504685350591846803430717116008481709306307190315655036486997717106750114209583806114015999659362746957826315047169807310304979104139513661084137230306306026081473894518596535409318929420549449179702331947631755521158245170797720434971382665405764434491531344685835671096278801076694274813450609305311191835870415296221768614459545843312145489675958904733868543095431352749611871952274856283594769055704019769664359782758270713487310641227431120803967625276883230624039069423352434971614018049364564363672899326287402482611684418812509347826509640342082876229687539504734839588761859352082339639255746758187702688742361282202107916856259191841497257135666442447632170567618119610462735456140358435558457159890559782980328900285560697128878592839290594791839305812979578465577812530475045527103854560166378715491172281580547415563081808943151747971057351989927286657685952493075753214422419434659460554306949485383349928752864896406527760645607394763053377289649749816987025695456563394977206099484959347196385061201651035092264326751136969550443097990037200359302469999138065734611859159254883708946406176529802438685860451681566017773495551919171381265071106357743975735458375569395275562689779775967930645239018284377515669905438043506632518787322742383981671005665591835657007528537019662036128726511852346472857811052835543896427771390274122957725027520101159041858050858149963814203166884055762773548465041961867527762556665682843449945843486569375003552638165254686905265174710827988880559835974779739487945125930947728806373345632584626537112219714224562522536121694894872513002522797279865640652453095539302720238235886791686838242747379378083990305303415724588533335720703558490258589305706528218401795064167472463917893467911564175317997525376608256215604573418091262879335893403085400912836590969903427211423698565714887920440844029507678972828978916096173094295802666636293056906873817365967988596730728006506292790418776387504778216153703110743138219963154285700375870744739553976544413190117366010013294106127349500804261714241723113730885004133211986788810237076304227973297804200673714365856751149420147423972420416582246715376225551751548336132392987807562042855856909241535450423770352392545844147958563691081198438357218289380257292153279623303475276098968079819750195828672976028187006073110688974651798190676280022156593070384752607522924801533644511920488247989772505207407438954682987772509710804318695138800512189333130320919533295885773073175455443881467839680557147813924081251761700517510110837600244500870807753087880011201526103309606363233392361284566554668689844568775968022222000165353541839573816490848079441908071540215617234162184139462901097529377607356666670357574210846279591490334115903294034359088656927496876773220719703213110969333395837302359302874597904226239636748059613047396767791735777454619684810053579075711879295085790385967325234081009811406044581468157930832971263550215484296218579858430259655508365352388137693315091812756065325724546318780340172759587236950999675067048418073147978238253805573711370547360387499992679727274849468926871649933778928990546207104110122057540284004972788241916357032661054151810567167396503611157874502565792084083855804908053899657135727662547929141797188441077948028017535384140343825076879594262965206225407088042233773764437958709564258562287303653811973126325949889596768567453882166055000816206987931971596782199478699709220591970766847947323392560796552201035548247385335217747424082614315082133499339887119439851344029290235232909977764649653806097669672608661659570270887668838905877591892859076992518889378813931621050880447048181754329653898025071572878220901350284118808555353412551052001912320654789864168262214366616077247923567287806328770730834055430599672757364252800799748927263286643556038623623530978784659132133265593799871543871186306080091147533974575251712261925151279179911614381968471792273284248516635716474237337240162822937485931285952465553858583562534092723639440694904133335220003899770605864834630090815730583911406082065229590775281574296072715633396358682827802947545121897531676120943788511004880054417150753906771625704991604507530911293110244745271206495730665224760336741733028053846317088213174590608044102554287239614414197573973250450353348206693702379057007019402571094265907134647812112441569619103081970737983913007272064225959679059354048714557339902981843367385217025903243397151364620901427756391477819906430392321399559197013132853501934976989769198871632877303625461594307176510690814311538449894025009287756322265176422469817116599141454643328526348642930902509400456428983946596933849566611555489992460576410593342739654722058599666683515296395634010533209092292027027805086984729585185841992567143693379587202710496679591441897635604565048846808230324270147485328736980153721494039608548712381626361467195059537439388471865803719996791318876272672611163021107757252771839980564399284114866036758113629495508059473233585707428800673678419485622421625380424647750463160005311485484579096285103639197592636389461910742821352173532330556475039827256824953909776204425793608769801447709946303774511006553246848040931452802605784724724102203692400441786958004033379236432053687637638892238311099975247128535315570693718134459891233073722569395542047927998317439151301962852279262552229188754406466177238087053545955209697911400924612032473619946183638541569775021424516035077995700247369633944573938261164708099714309575373501388091234835495135891197189522826657439995949475105513387906851081648664866360529881137590725942650881403480056745499579467762364897857548029979380740904268611719312766453093748229355617568561940617036815202985753640365103448265221281858998126701774287915477481173317572349107708616637282337408865328149026122151247775166013357488164760800944439933899334712958086990415280912504496302318503242689465500428557080663042299965367790532301585398091701108899601192870388337532682179278440094155978323451284886046294952947890837514029911164250968149834737162756565542680541713380609454253509748319186980760252674193615101449666193837988280578255336020877049489821505030351498441294209011155311433093145072367609161433253592862066690172170361875052421767480786311429866309852345920902375898367061772612530818240643111889040542794545156419461742728523823882671312960255685783967431310607548650914175650147078830560705900581673858887876456964390374525567364250847024991789264114668863089208330168499026555361130119529066368479054542226238187186621744901771745405824107100761338827211134724170488063254343300500321545185821343231430179974473326706982460192332258011953415662996170129794061324892071175603054452028218273101505804818830481410465024408699112552002348306560827367403536702532912379979971231471605202636262701593778913540533484692265037426891940529829567187489689184724341872450070836489962267388203953266837338652253611035355582276244116192388805553164028438767210095416823858220081966859979353165890404578716143369090837747422366701216011238536870908478460265458550429004480468557670813620489927143694772974670906894086101633089523885421739136582608037821054003612986018762042230273262164428027957448459663078602063569404260208136586672296279108142766418732520972672301997115925444480988583645959469121873829803583721249393724290150578002082303592627324700528382620741029309103335483774375175553344123642451899724306669977725967015503524909563479142010162891214637222711286436668053853946495645483598780247450721607946612655612339393988883689623106830806078367268309313269946365291277492631951784385873394305622282954873031426049817470564186723314489228307503588847817625060391576643903372408601867256768271516720034309432894898517565986909238741495628705566323563501772533415654271211133668026613451635096147331266390260143961504458352047737805478068497577495765001600973858421151084320820659507469931560101166105133039693323188925593078399091845259905623675998587993843502517891151759574322853930837342673683663652058506120274744521423219654447568503784647060492422371153400262771499339248006247901138394886664211099010998447819900705386001656081732700347440133171752002996005273491252337849186909777678453314622027636574274292126886665709140592116411139862056821569475938520952395303670881058518295233931727028739903825763741122569226942454011888455762230911269991676551819865703802523859405425745297881275872302572177885565795485616371963270190154340331187138905091380546740951840052990366953450228789802187334696931182113660173197037997013360939244031613928439469412089742948931029174296083757957443555411454071460233736098001029346405155435856071648240677257627040429518027827135525169186215661645025326319714781964894516148237449654873544430533316096364706261679388803687163620562408944899614817261650130945635534094561276328867635894947182921416199705426728674874405656875029935772920399332964462938102787336010476517936144289171135417187380937941202283224252194737883074654347406251818781211144575326821831166941466401225637591601302267790150129550060613305301070489116264692365924278566456112142846776777618665865116338825197132479889433393979628134430442233327884536978792275034380991582484165571538816162880256041751309640924215526834155051783139794951096719995540588913478341465795958479429921738768622724434224746996486596982840812249028595088086978872039257968646494923908744781921364359119292418357418481989558711879873028242864315500537541835829621060387025561907583588312106967474033482357214977138538194199858054159562194078192244503198119722113728241492566372320122132827707736393759872356016485515761870976833644727750050922994934652272744047229961753581861314747973057022376169236532054569420670083095128726366196316268353890795978495140640708562497598667711445214369923791672971717170056786598636509037887631641155409301024052252612411967791286851124118467223839502383164425442268890156420821183513691428174779112761800032855892765610430448055736416180326980524207442391063573415444580261419078914647065351132723076482920639751893235610208374909337889860975731156499930219127888721635952937864716285641495171586039799801288019792218699879229225696023452477625598756350777759728506074872111686201602463965569216624388739270771483672111741206849271287536930771951774361523956278693854822028186299277812927087204777202739083485897695220734175024802319356858508979521583771882349061570343046994439587836013110025170419097110813053947415336836081422266186086756038149529744451306529658155842034911648033495939929514370961433056837365125748859918105782844126300566125404189097892708921606229329438792326255020794068063159799547119944045839591994510068449494894937543145548388973723759110941894729093794019601179430062388886230211417827232368338305453236149044340465402711346681231818482246156438952238686245536176317724782889666204924507334389473669814474771449297734688139435837799453595356743804687961251351096750975993777688816652138931699924274256771972534520074235039823571058839886036058210397155276619508095104180051987783905507881705502449215459119603094387080086078233387525146501243675698393487479514317646676385227049567074136478806560076043299585473564943565830368614057335589821250013090606233493884933237717822643648325524386926020059831643543888283279137510390271905910779856168842260290379875147400735538141608590775635915284785049907429591424433346224460081037819033991576277501732602168062788719021898810960651301693690922042401813535037193362847055638256847884107133456280333612640507394640811200422934593446663982890301485097737821687258508979959656600028006224427079248771910347688024458597281221909302780470785687548124161789616909027917223653241165966890460897890369639395648113865262443548020667720588893047216556581824496769331631887947880161180728283151571583212819181207209924647524930423802771054897846568925698615182927887442015881875005792097788814659819540844736843531660744143682722795122206783499815434473600039338886922685252929108568371512092378002355821324323982502269936042293904941047778217450321994999915457655511896607746010366608261741288987673028393845547298103955205844609641744796513945464895068633981762933130802161201552387460983176034155475245394724021867018688302897509449048996921233346328872978130283461908104978580073373384645292631534681806087504540340863460607392237354323777578540040645944826499672450640880655607412698669275425261461198677165570960678629705591767998898396271830665483826672027814874753991258829515207564162179359444461063098797559720131139368593269604661425063203479564084391725955526823748900600855884291375668549269379868694158874888134828673566632374028569846977025075037665371220747136260399573939221230364602515923780585528580009500147637209915418949824471253141408917362311354830446403049245718062393970284726283557232343059204782378106442729521754829580311056027677890372627017259651044676163228576499163041484929263573873992632474654403042948251836226910781834229967686986251325614922957737612895996322868651156109195294676196382171483628243893674949651253209925210499555029442498024109616136412594979284633792226191665493634835541468030283701956346839634199375684463934164831923259856505928349768512411501772702187754398125546231487045531556220297292983274120080224891111614879605577716602559841932108126956312020161081162969588040323147203515098418821202118019741018641761425724394003391686871272688107709698882945700308881070634053988318386251132971719364640512439247702927750564551211355279324081663022496168107289866143978266248547861286350898605072915110216629602588857197135422452147985375947794683516692676250989379923144258649929608982802494695158621163987286703803150426532618340108584319097065240094701633849068605281845483285156071736901633764706277866232308993385128532825297758001618777970962123856391985552363826759764384311401609769813882589185187055848388780747808345619823346585604632456294482236432806409589802888694001382449439522476988165037917068685856707770197160572736972513881720578588153325100101419888200544046244634916169031452259306834736180555745651075704520183412865150614015183578245635776137499015241534370997751818698073335430891560364809458769900558235808380024984282790454229123572966483058767398357687362087632399493011236095728298048147713188059171854379578757363415050702938617365985649608553444036723213496132106651469758951491513779545369377903960140180754812548074919452784467896754992904673989241239792277463359615409132320285948211896164891901308412512828002207963421481760275298435982579398413513555105664108586673225781733637140565385860872353321756623200635083702084675040102445931187005756854709257575207974486383725575235841734918725225975373134338998049448542161357632428197914694828574563111552623752088073912442531075540494477102163783366205743041228796781253816190520412122501315601238421592913822665310823337794206517485418091618053434119580645502975151223502343787749347667183100143430903911727655472158838271197352402750721772424604295049988141905537738842563261476331497402493706383728286416125647773108599210658855092607505076670192313600779830092227302964054776706578567308479166242535852100760620179759060328264542245918440553853490585239254254138981775097944067541666589323843183013484980566633262914467217624958376033611208037321221162753914297307569835598587136499081936275683785834449334754754130993239074234460794759026435525272906465467296589183736701552795862116525849501689153296105075811399130016408835077469515878548445454091918796112662178433677796050872480621953660807943523344709637979783323056380086494187645956808481692732255385176552733508265800448295327228397158415850367415950076418837782653624861231519457296956763130133943140471331032957244325822197926793178081122174119098889745296296276904045064953357515119678029545034515285318335749148925532748740774415467220379773557575356590273121008983658797607236019131087954294052865741098699022638743747015421066494065312413130689124016790874556498253673490192302489876811669593621135927986450969565136314849390835646903788104524226661578001369368411591128626103974146919495793033439763684288557661523614507630812837054410730676776222124704070282113759594321227253879246821487112803469530222546598278223949980526856587639866435539638286720676770348635769206464071538102375804958381236755716668234852211354361963685917696018194073070493590351178102494047457991522290919117003906318284008612596248826011005050494722762706508744615694455348699201413135820696038404172619798997449210528840836772067797596657365762778000097498357761549289756988808238112774712685632481360930630613165011034288707729281349375134185643313378105318426687432074790394028327818460662125358522924707393248322785929360703971834439342758945935451252598311800716422740830080202545011184713610717984555380006679029945922247419949086608360288868131599216660225315716128461989377323932515734979889939966266543045983120856199335652705367182249428546110605857788822833888636485008062951261260783210651931201141093625479555143570787858483218089101033144026220806243656088338340115161495098557597615296896780362304924558262542940548169084094214223551792641508680093107292712586655026434618881383874398631475080517321130997019600561057620583929141756107260173054383353398983045233901864372677991531304126888653092778096634271235039267689955151119010810310523740625474115048343340242590968514303225149326170215451738301120882056025053390992573904532092889966450591285828545858687935875735777894771310756955773127929674123352577885808839912226089137183900226563338097933652633255138010584156835145963333195988093597452253662747525423983287875645389457360502849184702688095511977673470631770031981596871217673869983706111292174421366548996880370549238157252497337048995729844159820911198478435887427612134701189635562761197805544093000470852717779376285258617396457830862808371615994377250819646063703923395974072758707049951532625351430519843550234430405644940124033823426411933410276663496579607291525830533811891230804467396647501002421547263284699804678410054513886586540677812807553333961938249130065575109254188202700335075092864492967644429251474690589959877990405514685116528742444573149651347079180317714404935933109202407068539835868213349233059178957936931110580898626969071519292504933960684732316392593869330958563207609514760652337982348269879156922482409385245639828512080815086606846391588642791858853696774054268995419431279575691005372321590822164445915312471510871943315905485839411240205190235531190801666843687944179604141500187681176310613757743100309503587398773233183341122396077206570957541272379110291146687817309327329738753838265565567525019705873808687734575888013190257887387935160786838558299388850744091162160851483424186306538170078611298376193954673345128981689688085219190414764307354813129422124720199705644638291255630349429835713381184828956590961875246874858827437815299543641855068632244056376800143938800379122823084433177486349245692258561399057485504012502380145656622712651836786458784657499505753199803535342988820934009666682600060999367219817031065469381005938276807631590140899117982912535201424787288015786147887930237708676781705376395815144066590792352755169612953378068267787545587014771040798170125703738944002012539738498902348761350163539720295523952687988923196942090590272297467087242536627328317836199114666733590816568169703155135684801892471085736900099605050137449989922447523146138472857366956958312282038676371666469137981801914963601953645217695100780531691874107432923006595882148121715397842515907702390831638484861203706411242125826811775872598841999136729353731970457495456604722376264684020729397487110925612485119045933535174356782070028543789270396687480764840484834921806187595234644124957608169103573512962150135348304968030214724526335901414822173540389825784440617610725383009893518162968417928159469300725299164301834000127218259192719011988666544846503255891933187566052346267784316683978890470765424419538226292902648111714163214684572975261189563346181110000301794938638774421317805573079922352580940013080431904539708653363024967963200387466097315422672888678296813571407104701215012626447530758560945337520501627261722101275831293518763132900812721135333654757030345616601250125138468051716354887265278381524604569184079632836079529573907980152366170831568469899516938059576943249534623163612438994918966913548619201174238652722191765647055868327611116482189840047606551820957139081314001655974110852677709726682783983024593973725013590172306905609434140375398486140221671626168520124590088912204148457373345202379570769288141920872369584294167231936842480463388331820469559013355787099997271259362772821315133339168962916243040508913225640317771110701451858675079987934178621090347740936509818528575390909357660946564652609888106003319174891411204930535435206338770646807611520488586890259773833499764896530738892684250816196785011222536154925821691246961133090371771806728319430143182795091735596923984657357445529973188245730640888396375950799704108641897109607862834838067238945290225577501105324468387571120620882726657837167345286301986905653557856484599793658968533016426740783778034469209303552601775360471996067263498344503932390364894068741081344291696895436430417760129283232553559373310521892090793543011964696341505846056263062496539584331385125557854901428616907203380890352776847767800106533477039159513593666733038574122237002698783610388589120130575023171551387402089804656727751556346318297657056214258259120781421092933327597010680168871111652137962644148046571258627242081969732305490273284964891060030795664498854807051710928773357907140674148317762493813803435951129312041590212250898390200155605067845287771975851698854286919106127892776734107776258823825345288450877705713882552145069100931175946728468537037639885638498226634144806628850957607223216234479608519935502567831423847409581400530103843909901154065824962030066057949000591545554380654809745527066176636881291102753678151526120976861685240361704289653461311803168821117576405433344624331875256265132895347105387483246327639155611257318594319711852941217503710056871360326087070051895879482758395970907893929894861045425058038792233728757836867031999772317122610151578273063358466542622632309459875365146540941653906130405264282175762264809912444629440343555727893491778699511189125491498501097364360590718568024430778599863757292447756843695407318689756956602281858356234941301939962634092202574487482502146716619462099124479513834345802270342072948729108988930414783689837272009184398230845586425643698756078199208445356336791934549248681647486080530096103071932569757944323996130408811979499119867175147544157565961378000141635632794051214046530864626821019570193671756823176059603411336124246743411519045463428190920301587435274065326986657110884375496606690052117783505230058720736792851903464854595189298168237039067440419589939543729827134903500268718630271382209787154136301435737696030139896552030180102005789773736588960236319832616398312682622971908531660745777463131759025079833132515101812289900596823611624822425363932773472088963151166066737214149391842758909321537574400799194131609981135223245321449608040434895370900564566828492911488991494520466652255244733941108704442958465855222235725917023823586684057885816852196219505145895366672975519998364856023169137650472529668818456116817671584103414338606364342163928126263965307580600032241976800466754044706993392820699176568733759671626813492971237374144717997913360616985927998613970522987836066010257471700608817747135929809982544719788240396256858942763083306054720825624688482778980556068345755234963442801130658387628319723690332261508076565681957358328487634147051432675204287818171532084098994925456964269207972242840660224011661980911252420629683985367427996827602636062759477852683858685606826715253401593448536781118637902143302322652154560750300459646575850312819096084252630545755041036121130429697886198405690956455627251754240091200488309398568573703797951331634334318374433619001628810465494525844481927701438653028102985980343638138059765568732279484121180039230147036194407620119327052961111514695704023658798705603453822014263471592278170189172264538062347705693852159640661010735305722209754267891024419970960786442728842404230382319416157017507117284617392248918483301872128229042745520545290393520530846629345647747411474549042158466422473894147649391610661445710497994336919817202362822026401633539925091091825023907720812383529403137896946475822785494515354655267603726699872345297718060193852505285601537938701646914112195739020512056336791759542282314968345618114125390518802611538221085758904495317528025963407408680582142442947704335350556810215312653779421700539267986487675814900433088437288025777382294376198330981193504661493073526354531407199125132777661205617971705976394797508117612602674065854560028440364605139807815792913152066849999302880416017927190683911726625354640890890467414442196357582752550227361826988798335194908368686172911785572239246334200986681579949649492800451670991369913556288659186815720348754718496957870633636035063148374960484826467802178703610017955840637694153396293650593940429684975015738665576094509298517194797639465932684855752787494250955796661485063368722490094840848930924798537074608256332123135197309919688362963279430014784025771585909064185148840881997227289369054762320751768420465252489244522197176614808077600790126126328020424965025716570573196919989614278351978468993763660249475756329324974441544690099791501317953836679547380093390816662466367584300474251340619276527383417585590753689169450077803072562864109022525835926866499325642731429283054609099442601438417435718954260508564774901306629057375788061462785105062843239570358346756287019923212719851623886569918910566928086246761893564177765373841851440285470134423918127310255509717938589492562153193718004050291860449968545173791820608190517853613270392362879417608370796688514909275769537583133047150775441457788362324940070178472675618350263733307021565258898184174126318899692711703081295544915758657956594303761101213322457760705248920465451858875030667769008388702313805535779994851022428799091065654773262307300988658048936508398997477547426405057252186332487871148407769212436111730627896561000424564217611319759834074608451723821676003630044481690427462758668647127946173821065019662661788368999827859426996021203562994209706476616735170839535794731507250313191916875913384249273957702439317375628440798988942911434069290495473820806192309325405500801880988748204737900091489944458033532559471241272116762957897502715670577317155449884718749484053087081967369869360081917900785495911249603678246361456733680639882547636236068501700832341697430810421357852520977097193503213669748127324960360177964170810239905068818762137228289660581280359079873193787855012328079344952452220426206824026270200947836556431170259971494096549787643213265499756013403632262763581863383464793144137125223226612909412998146831688382248044616202784073956598785793704822455059354927490836516186766296074506709875000163841875900221614600915174817910410506588172405629895728957713301433064800163155550092938110926279321312425491415059634911977480959004288439178565633229266672934193441952155803413646100782152248930854484674440425346303644580338094821710915127309377510769463864121072739858344573197703108896019637952990773183094187482457022099048183881832219339657549427724081231042813638034882003626908317182147778298785523386134498992065352902301953976223740379921085713156055754402997511705155571549104911215950705350104812575564450379136341151155947546747687475789920272770140097028732240315552562995987010539459818237934840465453204736478079796710816316764012854383309480425133722022426559491147944543578581476298918122091580189529716847132314751185684226259980558952648347288074228463497441763753029614799326551000981880034883197478187428074898809013472791575753816876586259918059764368781847369081013763916432694359754515729921081677607429525276357235292283831283304012101184843991786793693781813725044698198805340170240098369861048121745369992783565821874549384587679519974304559618617160259553745425796921546362265832082922937955879631902247324053376684998103595832556547842695452071281236882084433584026763221279290106628448914759958881259766549919842313874476338998519983521193290721371562055114777411734054756594711427591995846876197972090714974226842842233305634195077357493374388893223769389732198490804472563157245855685664094003110457287626942399372715022784561434275747371201043259735384303674409321395384498730963666106739188417745107915817928119965866688229589546459094972472261561450755705785081751699525401751923705544845726350324566941293879773330436566849706503636830885358509599128923718207644976162498393809323776413865638719602982985666252894950780236268753763538587404387629180572006226898773835220328475522528806776368242556536464206186777790354459065681207929233427430701924179214470338621869088434017036803323261876923117901795890196457428903100599012930313896767799924677893466935144269096727753147298071124608730335837614882879873293825116847010450861505103015056342467342113379464197265961605749339062768183809819101522474146335013870775341686542886534668820088598870511990768321681386438744830827475569564463887863864642097602506867372850293151772752156863845379478652488697863387647001149485898350741107018133616145402771134158103119837159417531998463094058862030417590407281905917396489789227859273409229331451268596323634191451232191525402455946138067176857489198149456232705541627387447489534949900093354991197200327551578023448122286066900418821883726678102472497208284425112691522378900083646117682846446535337986475995206271011596685485677186382499776520153980476595806516302409910665052396783184508544305408102750242796280254766342988253608130834955684552868269989752037323345480735575093311618387103008560721215323059740617443581987713264420257421073506271998603099052282919895406825324624972403557837796404344853271546959089083144783113661365666568818636739916441446700741228433843553524726963351470581646499277250922084800460133447382486882183408555207720431179175614504850974434812675915622007046529963943927156453663937424900421949817850411031640112926043824708209784713364570586820122116570768883897690359805574182418259452820416545522875982908750832658371852351582748130589757375932582111956814101307430498925315688171158519582585647852828518047739078826364453160760302653265493696148474111531809952058222070135237780850676210547716207962525839739558900758404886314167077937991288821647711599205962597531360327300548476820915266683990829351517347568429474925431322819892497635596053177562168428591540024767348290528442506537165029711702178915673529106821471860038938879238412749988084784338974159196672579226304999697647452741625119570981637717467917285191758615438545064929514326299783171380458946825836219348901840688371949628738930807450157849126840874428145778491723937381962371361549097268766605046112419810523746941049623665063541422653304883020975845709223882962364523935078773072422993426603045896894456852997164880113615256720108702007421132765267483996728100854270539271095903520684479192010292783393110699283031514049427368817781120477330128601328154933646905898318770934201976742385222612391530883614258484409319106639445894687533074807317048654534808958678117516325044186194713703703264877752285956384838240300435927560660262713068516096103528491892558446385472921145630713219001793383902014241467317731292175693387985252311953827730738333423179612223600355460207050004209763377938680415438996065826563114043834964509204207426940380190787886717068663154854610438775756857269834359807384282191926318578963533980658029753844541166187423882949209262499876082190189593139566677561573914097846058225712019620601907028743359364443804099183746268242531204010643645880400502985289638499888241144542636587860883613690491533583712281322631877777934638573055234189234531014213939021559305115383959596950283918050468503801145473153486958787375534624679592190399802129908274334702564945561792666980116027567772391617465476439525111447338091800487191434135505965407731749075920300205642645568835217427631350822311323113252957207738381390419705686593381114343961957711087695371422304335438092163376907950247284523247309285506415650616529795066776669557352370461556514519260036566410910112881246173643848140993337585556059792531746557168781933270915712800186809797318047046928019136447030186617837217211928724715434953675999313012423362466878889327203750816143738238446977596766597344987913700450572627576372781617248304988241917635525279285818293539167062138792489450464393386783186947561479738367133594056034530388760120157138678296645500063739765380091172983231622047939076955285078075520585523007466978501236008463792079855541097444511938851026780362420155441616277047963337479204379086856391293332248971587095908455627430544578478034623665840699561953454405696393780808539494907829400495222581734676317935043592990125275809286021756744623381617808931052580232145150064648492100487174608322967177419700557779114037839546596279119183279023715497773364065066662270452417433954416714463910205182672278204133521087007085870275731922485989033857675189188101427438867491009586704919786739531849392269980197853623515109900061690821639506213935268646637616360577508615739697256295270686400939449734664492866593909226158360459837163368319595291828112618653584054533166308344131517179516881042114696416714817755875315372293480405491128045952728771693853098169060825044469278208779272264711601943314155762099173321454822263050912088925463530835535218903655178643225612726963918064356471436243077257318105627606966494618827077516104497603561910868739876359089433203358241501972701041510621162285476783591228330093936663781738804069425465799217600136844989371804200623973134641047791090825184232756013826248649917227381309519774619826768609074203347656048155296209042281516691369953600624469050622884863061120282906663861084861997655296460256680488808486900842598915815629214762054368078219985626266513604840849788232837747499169585693481539564874867619419352890574634364615401356542786483831868707751032653329090978094421834462438370333150013135891588838325775422234289485942168294812903560734246814620854273045113625050717956780128916180349575638510483795009642384178860744986249244702868156522086990901090345195440666977731563453591741034544985274923871953651376046941755844671883400309989173297400171185342143705251830962365320149375986505676725289432977567376917830245562469393145941608583149023719188587066389567861628469672649949705504202539069871185317069803848044927548992718384779684857668111174343199931254620908171952708156915090042676132721591021228872282788704778182129566226924816333230844152260985971975130832737367846447737046555714829711974227301748725149067495181827593613920663599158975214737131804141974262778311685842331096915961318217447688505011252942081432417424268797241996224980282186368497017900366947131605069542269103765646722183379491737433153221604736486415219815593449606390847335126240951389846470358838565762355572075498487076958638716173180516252240328221379680396837031098581928969976452471328236182439785628456727845236424828345814441451810718258649541095896194655553908522440562181626406347463966948019910548628700398098472184198340154231529777393017547291304577008986595923266678837791302976342638232146778020222927916302991403977093513587253891402381642067734850200612681772901329100665923413773830455555725567130416701197337698592467717233140713439017642589467348596457933836829602645308593784968796116644913605976350379517156871769493893343279316509182786798971671379854255206814164270016792704173101158778632815925516879178601499036315137622629233465568926732427724225164750727039351321344974628935442262016811512294621434151861437671448109062885272321179547104195960399585721649086878233643608292541202473827612817578691120283768358981716459225794843713949611873989642728200530755936362666019051647555044921258282049287124057279300736376030555198229360081823768524905040758981102416304706016266622328614220943964644287585434069077970338280966555026935825722608625604744511784771032617378535468415590704013316239880483734754349456719502701230483305025062092913659682627855707719934929843623928288605585671634860858572756471203003669563548801923896353078022288953828534498399307116121844208275694122487566094293763992749320866887173133569757001308745542953273193420541408516109714317962195469134623217576545864514848512768600670474415411428123460092561493429086698522804641993037504541270319419742031726658600965296451557939232555066990375781032816804447966080861568302018434582384893188780885253249175100280568600823851256282131870222022250875717623626782659331991093756140949464972449794535897835019923001961344838581401188275756127731236845019912541157380258197631926335154932171457826760627845828777337245471025103291804741897141177090277320810541650368143219476001072583500366279841635853734745518067049546105050889235962317658199817786954835187028746790918406990323094155792977606666016025160876323214390942794776534596765487587708722385619185572226726247694874124913836923478738888181712962645509061642265818498836557238213651642933594811462749694819001125718073666669429594944913815963240633324495313338920978972111481685815257504837755032026236074877858791672350834823589307735394452508210830633557133786856995041872981452678245256866194389556457052694820408893067748167825150421790197588968001114999301936042245496424002952199906079154986731981090842177368219640830247565426253471984624928068375002030696620580453400219168477215146028263920329210478560514513633034005505837233103600842865594793561052851556863311341546077140197520701129403324712151737115079662537757818560440230498746417059345034705922956712878982097645877074957983524171474751729835893256218970141468218879430731321706918503371714296240698183174657332369339914292666619445402678373889874129981888703794340740957971404965777173070714442903534744796003873440364300578324808805465206703976492025976246321255324318777358394263891087895775970179422629112341738738820453759105105601065733937303972902305410543510068625476990689789820026206154604465946437730805291611128436282268004721280186224548904137723108644718979778282057871321080805604051996200627974851905059349455824545640280963219807384725018686742105737503627175220155858196683335868029241569284930712650974029278183560959574773921107418689270431027109927561030424420065701659119461910942916905444116276933813749962489793437910290761763396072919118311113727946570021783346987789575240798242525965922834225341864406098770521242778052415904725203140658512171050155590296808628466443511475689851750995213265941517498079822078730956012446159376434997540113435196364870150115964502836219950562479679177778743788424407638569936377039999910760895516643185367915976303037019362560318112390241474537883601801669139595032316854707109318051736783300628270157895506938134430236892931433138736849830099067355397432825795181973413552300889252093550011649517854334681724534413430568166808032926623416757961554719447741392899762385908274588232653721370504850280311063750686966035339889311028833240747945458130550318019971834132494667121311436542591624140892925771196971750582961416019329279357356464634711318557733579746008359676511872603905453085566991555281312253301070327307572248091735192249400426785558577386592636736878916070098168991715675902913119591902744491239391919726885523802378341862693804105266839546179748165058909388889759775993476408670635953700699343101203741931333575673663594233399324645220955317636581413244894194485466268186645704985090550336428545258484867190409432931381411980022332968176799251570736061349142212244133280826368515076626788725077412765743424959471432014682392306645315308633080745128313418094961907943163594894739299264658769818901477191624456980299273759620949606148071668382315270673921962111653905137663946879238238188730733773842161552711037168811696119999105742345270641255740190187135274293136190757527209182401839660387640334423416320345244865759189922830792617908525653538424403139374528604541163595988566653261251674253385396960279395390695762856842895264177371065791261896181969644597230510948173986473297961290491672067011099118309218909088317709463958297569594600765211519288630631334013944257782639567565097392784835378731455175194832866231535226360466292656075113731411432360706874886185427749615015736605259542027130372042620490630850545615176452209830418788653522949630248552232367811169454477201728866447303151045444177338907811012358599909640571228140581917276575509187118293501230240410261189147537521894011678932662162176304208609981826808598329804676718357848625994213855278348443884953097095865505620004766214270409534250628508936973492836098520147360800810635449937051070166099983617450949818062304060189113842930310713956106809911348176823267902096272852525007228007653496447010110157053819866036671215064213743594544960560354250550612928015477945929244983166291607484113429439712181762000337480521894260274218464415112133932430406544444452850790324973590675034452562942778550259339880970475531176484503712672023099922051955403833119359596739771935213568838763565265650495682187448851963326242237462732734805776542846808617580390647541709780407520854875888296902336076094858292558984408240232525674563234287256758243041020983280023452543768874539086915858061054391032992874218190901217844945565907892911884619728530907500781918401396645582678101250586066729127244345152109984441710277163064633526182526674262755857323462427340350097328888230992390972575257472958262694402612435033674035252840890204404453220928916841238178428634163981444986772886432353432857890198918568843020285887079363166528002373470788871672233065668213199735570860921772259449154236437566716923935752528206463683450299161134023836559493902927232906167427090242494598934766428561449620309384605900381990397761821312185335899592426286678259151692108646625409713494643327162152962836383872626735068146795291666990782091699028528457266484239485891246303765804814214918790356648935651584003111327959845669586958272042383375184659752720570065132840325547046718755623736171482567258528388198584662701958110662079091699043781957969429928932416135419832079373701248327377342470999013615158893380765605569633852734890649139912301060696710937409204035051342572296665497573296031094733877277925236303558327573082350216312255976804827184996186429897342407998137111298395020665711161899504270112744245035006769084456595380773894764096249998054273671661025595095936055792911833733412680828971936781002096729343205085194690851734103127366110279944813031144714373350470458085109337939420551913176777158541395127652588060819622194591886345633459758039287861068127828666551027201637854995192615696901134155373222936468072087787193901321087602403461381860068643496756035374972909575707269797531329156380711884617120795853622775249035695904775588470869137082420572887617718221343672235354067824093167723088834953264481261576569125443730880750539626582298697331943996070578171282288999860736016688050673611427606388903916388650848416378012762010599398964090087073026221304371250280924239708749947156008759838363256303476226120184987992165105014912259376492793221630330476570584244659197232547064277773562477679010713810061607376716992986491827623553120773236131821196227763908000101298338194534227509393508398272840764418071786568904188140747124540029709503240103203883598806197825968049101205918580064800853806964316297385982657083822035628934242461319683118111121536006801489892713185097344273286946547781452280486489741671959690662006601745498375590922174488017865447981349582405627025117229294238142164264557783973369310198346573805828097700091692786433181827867840298846947907597574701284416495779155656943047876526626278300216791479562712753342449050139608605945144646069822516951364336770795446101365942909223813459045962263764388880800135096234405671191502399137697860750655114532148057441817358509992765455252510578629567084389257529763045867944398918224186168230582338012290645428478963509480501318467747315909663880802069426005229497836235199387861388506252736075833237354970043745135256162461823687666479626842377053765351260398918809047634363056013562385094289973671866489579276066871809852277901321003210666020683494134233818177422435476445647010962479587074639353886348455891414660700959794023096504473139716997157145814627861431157099450475792988411376444183797828147255193224510350566877047255220140711351502143484967721589431585688404769804080771458340836557633018967131481366248394972308660377823538558470538362359756750167632096141021655315431117508634531858067858689759411161208752601591563199602057148177715255134731260134186929703998933216041257112821709120479852283095337474349654709568193620130295498419250246679557173186855113063762472883890496490744923518130696997928254058961645973646270130197783155519864819651727464569665129773329014011377905471509580508273036046547024394289929145546967173201083890488554858393323697626349437314110383333375753460331787721407120882701685157598580587719500620020003212087032821142123884888791234342346951668948391834819066027116455969752680470189312966212742954557057852100269163081237365826306439638656250662135413466193795201961896439641344419924125571393332830560088899583657641558853963215325729640152669314127749313552853169784433356744994164095625891048913833376422905064489401465804980049136432367009236292133004965073159203490743046724402707325539336570538246513235787191213417913275647895861856764535598413142290364485237542998378310321384663775076162408226868117836522054600581199370340875622077434822098395147719514711970046171195398356322068526171205668220137055963323336985099484252569674467829010743403476907682558080200666597081845467161069196677238847311508966615942673438486612796380930995285255247764234890976679548855554123658134693394497411788038639373319297416015880286452480309096668317683732588638848643591248688846810258876266100859776846727694792614850452016012405426457813520890438599765226750473805308237300921308434445640357953326738428559729229423840238709652890403834930598177642753183499772463069545210277669264484674480747548939917477291129807409527960117761402679617203700123433231442030382411954880696307871648553544517501710884663513069165041982464398626720393501489231256082242063460064434772652846186295504693310337472781420019258271172404889285809719040162925298582206755603609576639270266623537277359089614290321390650048576800453453498616108591684050836436039662794283602667024122897820802805104001237634204233118512407625060371576764171918745136000922445780994213579178962398041936606978439713410524819744214413667547278354675079823822948696898769276924272501477428558980679751516084395361145088999802361716340656116931270697163577271419088499354490563289271784029469677972104056070527057990815469044150731753337039014147980751973002732794708460735441811211302236171398382794313198980493500612376563797123568721325619954351012850002432551226275054837193173173703245323792814877422678349682075408186950945791879412117178321181477309280323216102254233710793618028829277194185314638300843494581062102129391291552744815471313029805888884565380565732418103277629944292630594715716785901123332659648898189084942198801318349636943923676253078253429871075805659576607565746059558120538633871942853815097294198724137407513984720453764517675781938654242399361061744691998752083964677929640274364572472871885262809119471055732128565446871719360050160516065158546796546460838645594088059984975040206456284942088870272924652414058776999580185362836283622964008142006329978190047358779387527214641042810307062706299332208852374430092397886795103007345776045344713559057164147800122284548137322093944503001143994884253875077408329014500563511279869658208244415241182987815773681793747400661004239168465589017841714216369336051278320431146519686226835918613304893343103116233520763239946196870124454991407487359478387418080274138964174426910853063849842365650518344417557457212056831924862930728750966301994424373216643488291373833415252049972784001937471944766597744055882023177351887174107165613215749559389493534603492181107724880602572463729154453175652863406913574335688819809064687037519730295726107095406867253919969875525155426948486759957505813514217670191559715733162459237025199702572497888315147459801742405087169839171208374548652645937450097288057319668114030700563871177534662552056943157166739563974018601403501512115156827010447859777208644093096423564198569622430136284520390245526942807528571465824383715034310079498842500684800395436180796786328779503471401946210304662211187249779231445678854100256585301779885862491814414597673104110336562763611517916592707487033984288312477222192842523354175891653424772806725235695978391955584748788242415536962268729339027702020070196257119115439552035847247089440258953537853848186779350590793043527218024352469163874091432655754233952991903191129586123450086521281126562137491176011035954008126401712919437887825988679025308770029520371279095278389639542692578234677002873273707417807616792717486290001657528180426604100748503429280076146432868271074231527747167007957150465125639629703221615287555461258225040280563161398724538258848825933951847984874599699856927150641755416497691004133112329764485941402381186822437255338881152392124508553131834141636635939227952378111883044751981007999272622763058809038815430213878529072747868257650799368479728283072448242579978530098854644019169044277618442214101454938546154450887652905407802256717117518269273913862704129900902588923611496984196535709790795717314889185901598919829355003857903386860180165789485542051049236107207391876945615044832981395970867395686663268919941532862768305411702173069696182850144167643730610211980974975142748175550322130732253997257830266060044057427810651801749503611399459342530903988412353380755249212164495348462198108890020768784326916768518333538865798018322176612684062078228156563721420721570443687676264581772102207300699029375435761235255368459390069292817105323786304407884127326981854102624250304072754309508745468925992151073650868500658541112123645623367271555825028168060533134746075363433768419927716547962172778497356127995300480197678010448914998683151824951465077857090290406121910069857287242792231659060970426006042737805174010371372205213285740491093754639355436573664411987162724067082303947275697351151123861937562688226021932260376517997306841868140083172398278777470633235922576045745292413780250206244113948149409833933592755909100333345508467443741796292304356245242594471338775580841715341473881227928783456013587135479472322218075887570172283661614275842173777831952937194484704256554084576861596815661824712932049154944726572733239119920320222128615975156727434587461032940774695994496251693185783547466046967425960740817444653917551086110955473472844321213313431610320945029330118838100149573991918226228739858679126524051561403056022532888455437843949684136599185531896151108134006492976131136330761808290384888176368550689916112776018436755657544542359477337333157872921067404670661735998477574053725097273979563340028455453013789325291792008833115731305864313930873481871401288509527420871263199735617710058226825106477906394231490014361653983841472780926240541972707559320193932492100139865370426160080125148775348994695440036280685014805915777392020256659772990316098398425019320791305947748350960389522210783866053077496069889138011129399862567899747945778931013356011290761745932361240823138229633478463551527617125015040119546234062163274148495989111809036669005338475565833438078372198173148530978992748951841577467634480766473466709401137940673256118338249496323060177723426022823525813018634381982481561563806011682805449325006660993348301278750645495103900942940055575177647849093445418960827574643589908959881533189726938448573507352766167489183423318049649671927854303827016939164486595597818476734620776697545913384161145821714026004789037245123601040225137801049714694424002714646508214738779485482654083374834259511691775439096653627126764432513843284618065289429328930984865769703575503365444710372302325269576888658059851184455527657255960623925584413462333032454384419565251932468628059652638068340394712928469798523768011238884126431160580701838584660924207150787858427084578975427372939507069140823805832618803390054752207050551299595385981955007342682135172934967365133914216164607943997072841646794172440137234327520710741361939817735377920008225555120884967203661345329759030392813919746462745191044338947900760092519007865845795685050433459426496632239019111982283290697799930294861258242137504084143865900898918348023407785566885468358390699442591739295507385485963611965811504233678548560132000991542982544268238049881028274543241250371050323327619701083667525351221525896442145555469052614447917387211400253742865497692351141422594536912963681845232674005054248741687956094745214460421097023642161017185873830467842561245429955018761604712002295534331614097207591640426748072335042935809796458891666686326187424592920529008932362636010239395319188109744463757611561392492285924757283866045215698538886994117530507950519357190257200261103166698387636814517467916456034137342587312277015435538544854768146963100324503031395642831763247469429431641497372146180494335961846449511320663134207138357761330029391260971435118279618422680209998939267001766393826443557806519603131737854056097341931723843667828588247570258447526805459990628887729822272118716184002226931287811390155417450202414839667996626451771133287019334710478532646906938576688786060999312479357997082829800668673772610217390112106490652068098630495161747446797699147117245869207825221192502853464892031459950592104374909189647390741482401195746864388467159660635055222856455897283662092112435848160687010503808501509388866059969130239089286174510106339840602825275415160646866751701790556593486891539342187996392999454901351647877212771425342477149125786811862201860011398047080588863039896412537838961762831566903941009600885304649647185341824754544700789014427803060108212530083914444344549118689236920714719890935964107644388810515430164943484796409605535754852119350920975037069896209741726740307461013469341219018637773300787587390697090067892559334787837457256620454426208783218543539448463792129123785764672606718331304266803660087673337573577247947699219883125112525748864772485879790423823209760048734283458066566555140639538699193733706103777824656480488040189660145239209984183541017191946554797399515922692965831756771858138764637510513700525111226142582185732046311768663008753573531792135691983153417643020290550404554122564610216762180896645849957618121050062434777144583099817033633385962883259745302118387278817096323352386464952791689119159050647953759151239099026261671879843877132245480794695316953161217069721672270584415323963857022562392325831948621179100814150046102229413464651257939164266733136234554026723662932956175815140206030424785705302819090358797132520546847302103514259007614911039775074492346811682105391823237975262247362554011180328252687680596636275182290121590576752447731234546691369459323118505235805611382280658237861059437226564627336252677976739044396395521570524580650468734355758297129777075304908738934180294348446875556177259764075120979776629524945377475988830338948612364416517550367115284908390765951295110437820743117393375173242964278766370450818708067945212818638558458762054886868146632535633220676457728039522086141773132763873947733790225033610221340396865664169709986734044162389958942881521387901563157393118049092675431228249411393965381517523555358605366780022584154704008877133790939139138298371190523432485449034329010754396556317144051572248128415884926600749148804125165547402043683428660848682026306424510023859322893634357630490880538281536498694274578212016332861774736085569897377500521315625149792535731797226843501387628422774688643630257576498521108401777925519347130105173406395185898038334692906419044271381233592809615219906512079246104298040844174169955702912914451593492861779111752382690698427165913919652700204629462391599926829206075728849029001190329919954257559810633746004661213079573920171882077665573365479855422371874443769448635794303788494875605700675641496443144097018144846186888320183480145977052045267970452352812661986783870847959800149104721058536225047901247176675788268014788241900820371678900720127894828185628881362940511563713541750551945004177455426490388949073749794513935810523148453333764622571346896714078599922022896648557298508875576765700885797738407664757472490542049422100368878781277213216599194657069721110736736163088078738488048939465447008115654269412079740882923987480597378042319084645569758580960628681161703394616459961971250523643840038156666893641017491760920918594942998074727942235010977114669402404427217100698108239985581909377684187475855469079150442401963047116448024827975568685687604451692945534742334950844258012860155101072792349435074882906200167987558404820970342610024573013020195181688631785109007985892769900771674507098909898069136480997887208585478813829277407592435564830625192841960843197411668467470206277099310924438409148232058585510279877928464324899352490539563241037836208080434547503083110235809062402722068409318036694112825322219659417389922228528855045942779578169257225773100305856241235663747526934417988522935314247609488656917188501373546688345650117772616795302491507176783848298962547773025614898701862903065283322645172840988842943768848212123059559001980728478535598500271702621707535057693526792276588884159975332716516431670271506383215319306924221990028809994022158598935206200539989089304320357009195379862076582444786622470313996889995136415635837444214051703784139557901801828118083764314028937952825734543318308116577963394601956410362018248393577926688340115770958824168303236336400842670007886090654729304088417634222751412252205433447785721100660149138609358954443342269213221004529677523510661060880489723098494364512588535028172949310764786146414041231081815083760398248786109357055985508704470053871676062996501704710170396713441959981612715658421380912550766969134665626447716069707785841034014206337429387314334610007327624825389235660118933115279819584117872847848735749808087436027159357479225861701218069087333492483938401120038444611240017936302575430330259936584734106052033898424570699832854140459432875843529967344141722731882877944696859147460803393915803431089468764925706470521569574527744126767895321234724978825300899358362917128208081976211461315268331578796752002866544267801037857304407792831128376131240623291469450313284059441051933496913555291742934654467223200876413635487148069909746740102417403189626274930307246770121905567247782587014502728946021926474107784305636565485694090424056546261721551235592671988453442237527458533997874234925812452401429803023163422639239420434454371159657973476836105469219477163591242808492524055385946643777688483875540653915493339961736606171705717999020831436786401371434282054729758329027028795290936086782383663741209381847200605726456493838532347616805075715626087410704750114743664071724860110525767405926185799854430266659201263163573004950607780877694016708574390301456085802773517712824624498849058503516768381511870365440864443168691041423804442043096096348358708643090023023661320262315511958799638968505711746205756174287717332828137991873565939803664142196174904095574247731343679655376902292470714143403074852462003301396758940330937815329168055020797285603387815704399800189415512183639014163669997948125097435702852723555489439363775250463661490401483144909570205884911949498027490381937827666518583286638952592393989847251710836957569490487028567114093670971244467514258763180221486012115342218454865976196489190286697127963178062336404021882708926801508929467759657955931717833810139385628099498547525254565426752505796653523889389052551503903870569951402163962764448038081380577152636431559598382937880264272257102167112023151279856187477608324159442109858045252200381037822062254421455808001050703843794722744976944663924228191239779581212735053416395838423949598180358934282901428758635913981024285459645009193459737526528810802605623283460849743409636842681990531189295311800976463248629531540813965175697409042077145197341133716581312736869692268038257416189401828752408450166363554502732153105940071556289224225748124974304585992050905869295754248500516395937813148807396557831091076052544456306332795639250530667213204559078248432455966149840595448451647192924158115814315259547108730370987910507291265337205738805963844642846128964412672724553896568891579526516444183663222041794334441073366506834182770484432481652343707262175781324752904028273293294695668567364455872797071704573290365059045828542251234844427744629469690202371000484643912666169971003415192463697713857942946768153599299960772604371283680692833014444261650620782131368666462336707552037712481880069689446787371459052010394383048578467579460510218132127275987913584072641236173376582037587911005295546457956469410382256308855723488705245590648435876799378415439027683312619610109296051976560846099976658826609010361279746113014420270621094146187883100453486304486022300262187664768386089990372825895778049656671794281433722047054529619451227600156308974034888421943459325326281431203291668766311951269630246530001983453676837549771569420403028143676014279572227628457198976081435196861593546368820304447538587307028768172721035676232987067187105204508097524214479753552003221559406334489824597776875320985733770888355288101726952985544968705179409796438557412627612759623525244725123836632738920765740308926956961016813281393388922711359680882854173457379016637084367841910114997752565615691037236508155706101023912274017658598214593484407954957870901976135002645911779413427904380247562033896843945985466568389006650795864294804221460281648917707722343801429346411097558368585333296378203497056471235949659503325503920070416692588934603376301141990996120495392808777189235538526647512018277974190168972834896591898213243929227821665018213908809437534361735748632988236310435904195326253320188759539692481068784673986686710418591697495235980860362371213025359024405392403770275161708695484203814990391585951349743466136317601527841589380305752316917258273288384105464624010985385356495512933898906181749876593921080526188309878232951266573091624743445324420577159967676661488980696698498291748139733707621133536170329802460720690630334433136237503218463436602626198342395205239301678799704416643412248619455627706932128929039807869425152124235556959679927447005634329821841971547285415847171878304718949476212914171516751730151925752670445086141319286867606063154666238655477323524565380359468972954478908412834846410052746701974328507365796215188106346092933206635535785331849923374532351998821478868558823695083352312726713794751949381063921951157579942820807505298303965502451035370697334494220088103037947943769437343077313065815865351499504696645001333709922911904359709609131416015924840619292994417141670092754756576507982850019687594679794961926990152639396799239010639538084457751746719311004690299822601314930140885713084124846580659953182981236331723173608542402425063866664969797032327423764220576211450707685294001896736652448699758946999278424349900773949243892044625630207927660198391626379927018894784892604484171400515193384578560217543288159306239646026856121224024992164862480883153445734933651277890277241264694487541524134905177814916974342109605575684489150520861489967542868667361183511616216174565784060051795242993977190686503127441585199697296600508376633729040772051291410239767455439214775082577709161002535624284663849468306523524495812664187441187882070460088444810315745115371166172872941982734261560266253622765946057609126821511891080765429722830752591781444509275522432012806486314652737244912886508274939286928957248430049702497262359910030566096029811734772845561825991727174504905843377348539417968785954294140464647728148469116113343000370740449538740140066150823039241303185886370719523977174027687028809742593487678621921550860528048803129782129141160286525596883322740329515458328505994457336697318093215482110909414241882929166075083868098555464445247934664988840929460690297317891815333279688753110835419933231226726816477102251984220724920140121349815092782070193915118859401656352215800675086935812685670673101764141200180575574225734427174252854963918260444084036959185078341027272298441543038205052083113201670343209051725756934069611404050683368751433135452689019285287190835669592556705735665354473190007902226196140447559912976589926101584425690377174552116280003058419884655145745216761223542388548426950328178103553219021363297396416508170972249219021960857762305527176160207510628698764118222173454369536543927750628645207432209056851084735304042881944152824638518313535156622586059012002547848458651054722531365982517447634495903885195773953915007654919882991602815271878817245424083811457545390009423160206955064456927099856560506643519571677915298869943557078718402116579082641904211574499465512098159270370789150583120792946384610413167408584726648442485493852836240620715169773288146327822398921911006844664162322027312540919599534476201290732957984909578411927032814329615884505045275862551540341801567616041861645569358222955300705270087540305964358592140684728622020569018768467422944731095815774253439165108062509020551088550889542898230835754659831273843412588296937254161077254418699150972223476163116037650964469565419168606717672825157533616865686756682227596703156432165272564057245262836066292864830780411581303874070817564328608495280457946544018357805655880181140934512855497240380830149138069396430771140483315232704912437497445493725237127315986325745033453194918863380869519070222183540046064161319197288820979863222435038451800076712252775649849341364321605909988930888376281319842157614465501830597400874152465169406885577458330287122050829289394032031461525182683792467666316405597628168714110914130196970697210959125253795330922951314381226409268347770181754173740490218298370869329272404869794140198675928840792796937819335922108216181852314908653293155682773241440057009923258785367110637343941105747344391080662540820221214059950860844030731708152497310128237383770949209559579346100509617044655046326291645364741584059125163492218849582557398592165115801665671596017103891815962816482775333629634331680263846205912872082250443794175312638376310441184712063352186054936980394634203656257890354747178251545408561313289636876371202733867813398727561884561656252568744991742679723456733903329145675020579397059831303722272559855233654292229006484491955600984817729372521530887892718187387148172401104524421177269489238074407114970020183792876238956008925724744006414378250603487736740078878741501520195681217463555973088185574781924119771146143598560183855298011660333693838481816473648059276896379665283054955345205404242611758153534417873856376588465388703092231409748239157388485205514066249287159506562666524893449468856739812131730740689612074249984241018702070805813008774814601251030476870736961394384610178679516273584310359837704796305352017273292503389415331097106802515920418832629639024421581169011020101951145235914371757919170352786620363799206645528800495470739550749438657132958974912467308812899367149224991659261129331903346176511216079258743380462547919987492692005185127043295676148961274089955252367797410071805460939663727378048313439974974335664131711267778283194275529636720220573714374974464648894355753708344383327539445045056002630876798384160890857484703212737733702637654943677122376043603154222602200070309970106579713682371279723930429670360220467109636281713476775128696151131392408917730852221131258586029142086275861835984217655088764985298201959560074931937111797900090043265224606338807542943967923950384903658536127714550050180853589142422533436114991106207054992581022833252686787185020065384537072176908622670957030387928818203219056440090675391119094232157184440502327456387930021543754678880422406270507191930398645318203370740791515721416973323903160747333543029125171888456565219343867977082010340662234399358470661973024392257983184260949170483022859203662754895006383749210874507628469734790336369488861601945061843719405772025117497610803161112639058546360387664682084977848166075126987698499388503326055989812365822418224985255480691276670014119131320301089383855523421499783146543176773154953363333159607874988208455068514737948642126654884936616722059973322745410155399776662342271211543308839912919226536354146657184582483205043494135275450500963912515933244229724051671347201231338859303721535864591540535821289966005201152991446252282201383504959696386604091219744072221498064113914927713659073389942182999925273967320265584785156087869480680165397724411401010532254734493870474068896516908686112252182096166278238584721813945764623706427294720211127144301187144633264200344391514198420766309162831375520811744840059817541541688117418005848512094171102914415602117035492864469238857177451462061403847759805760996283040021465586174451900970543038113281348070615792730405716346532034515764012827122891540863250601373788034806718887694678273770832577130653484059511671709119220453832737409458166859109454341962659901076197736408584312556426696342731649226824267955581493529208829419582239734677138693330200334484480449945809732506012368998443938584290496652072406108797054515737376012563961738981756087568011022154946234451415835253966083845943579685393320049734249601135783999257330256446931783181129051677660913832839587889184190236113138226379674326345448916118879450452920764081083805427032799774000684370696613234621700539030400214141043376910785061070845742015961456062399646677645196428756093926886683831678159302900333589280537818256638685097161105982887301058282924468575287645060480941756610941806018451555670246673684690258789161866026180649251290303650372437058367030487968988285557825480397864008363278713513210668610730228100362005809951602420032784840598954835874481433720773051600064192444159405873128642260881068566541871399307095943726363263822191775989408877693256864810691821585642324443693649008561881869168481071813558804415666720221140324162678958663851133713595462501503244249949918268319926632215969434404506494512492997349576215086148759499813580814925009417242870413680557488674030222478238071724204643502182214376149792149985977235264142168471598446205498911804224276557792959520047506279184490906817565124762987406319954674385355823899534769551177645715540300892811426798715930125210842023858181754924582902858602339748739298607197546475509625570370889434533473289792509964275072708540403899300495950506453072547425263752360601244736253527318664491228256413134724573959773208753221389286940251394125968432108863926287500908198104636127921676580361548378810138427079274850803516884824063398967332893343538255844111435994596954123364615270003091176830539480541038629187686180557705261193936680870118332588561952654659778365133904222041607864605626764878708728535177790353765700106269666677445232991863010607755594068096989417989544700969581965969546176645685812282324864507755121360511119320313261725178746109478691941717104771057264729984332001755363091591951368251593190770089705219118952510671309369768380560806240235410649924871224011696235174167836040035964181231356984043169250700614429748915595100442681807643489484137021416540049104591124252296920927243326203699937940539118950432317907430460116178865787186633518276865866970321837563286080625166952527505189224384158489392780476157004316810241592519028157707979868979111114209370393040843335132147550335599718825863074150197434543766188703098397435731389743574404826082501341424448428032876056529458894864643576600328360512236155410315112152080224891385201492790483780553247591680972967459442421373718766810723666411574993122592381324046040856043699167517506418446300308668156164332209493777853140788620559345126628318163183530377022670027934161621970881502087579203120913768752855384563348961925606390614859998985524965515912968346039190910071599979117447435513623478599046926844467220627231614603286271092149759942973732048243106257034130819424399611809469071893161218846396047103037943910992206815453362404738585869012157655298505961872541291994465684913964487104963282255414425242192656847591648539990127278024748710412257923271512284342751577814950105160014203826117938087659752624278685144229163441733762338144168524826415192946947372668880542030476456688885257302809873520928695587069307745290134100614389622265815081201654410323792121257547182286187947560651972749372262810552969874720537279296116128574845303272963706215905218309778585088989900362680200153023985131753800553781397308111554804685078791008835904013221576833986449050225226186910772649535805404863430412075856641570651207311769270561047515671345950912501662975004832003463135399843538342749083526496357784766924190430518520063293644666462459908458775657482299745188656438331280159948589247300710163938479020611947425451078208632873777088629869328610780523700275773647084798565990256285085191719019090005709705534451412094694359724117393092143774632832718994094509057576859681362364877357444354710474371512663516602329513323555068676435125614398839963782594097531012746999787065301846677821501028536575760528873573076631210078528017333292914997752705411142654191551640429940668323241362053229886084341763020648676244753049686522413828859354887205066314449674018308661091514524422075593553271829258258871319239102123521178454956188116743264761631812612696928951912256863555682667389293067363763438499628562000909935228243254950795215807184797835402686408997403620712114016613985001489763133339510593091891323475468586905892086264976734526754429422587779400632937332656731024891236397875622202121113568776023244567261600789387315978791142395900691529831297703855576906426257268513787219630424774843841582346614467340221334698362868814782226346590364239248085813981264086291107914690462008703575920402728805539295584404486981841301707258997626140072504995350665368385357012076473350743313040468781414864450496151780050386912448622101846185830223201624527872351152081322881566993254730995889168205403289042409317219250037812918516024215520693066348145985354486537708845373377783167867451060520499887190076108161469251974559071744283865500373797396322688089972756421360388301756206092860794030865632795957602274148094033993140648342460239222558018988065097873356165461075150914379761064754638882587128405301702231094303802915115554284324751778390745214249433958307936434335892113868491838646798174904923406409176590174934497714927466736621677805767274720813541973489937559463587250915358592794278398429601758431605174171739416977019077654998766240853486854525062200763760478240470374008093442934648619182891756451641964813310913778853074639122473464259432999613672453963166556864344751488038286674788629435263733798057693871029157369020122063329241743742282121010322894216437998421381657145013344784535758928035148858691589903736379606400949265463876845849152794775034780995419252319728501009839388535902238158924197335319205237952477912976320212284485672217987951139567803224432321616032656918885128419436912804387594390688697954590067567500819254918511808907341438989844553092723245150852665324417661243241168706221754821379103388837683567805746285617158309085538089449147155549439883906660505604435233405959903866343414206364469470831347173481070069172185272587473303817102030855091355360170552887816433331911768912720627871870208905234059280173549006463216371472156270786018882801546161084658938123994734194400000397418681039217276027324811364073176566515723046439212728227067451910804558894904118881913211868071993915799130723138115886389865938923971621786509696373978794102064870822605278176844585519063919908761310886272232966978669800729351952827356207877378320300628903817863021482002624370185061308566982712145479787899854757754351447301117497500868952424635056974263699441268082027916606358552552278689748506705642762560874020548322636545940660355178119556132652287161238382541554944520055176619011678726557601462080082652395779620851848286649203838257358629730648045853699554183834527429430681867046434275088974495538241588063595027067273407016966320817462933092673964010231201919726499576902477714047842052044677091847299349255271890447729993564771715857154879709484539237861628807363134555997058199062947811054899419737302623991227166767068834416142459448070028894376718438148055944518325588554003953718860285098981048402655080493127677060166509945904356393926832925985051977872765177440862281928680972964490252700841225123423754666965724025404307095979585006435959890838646599949662911631918450115143728196626081841832408979613551997253031136191375180725533356894502639037231886279372011545861282334573083508637609612920803217432782297718138564403707275116787085647798988198681572870657506114750986297179446483024073430430823742135433152949675916486732372701692734925045993255019959692526000927020918611293595465847178308583962424474140051935666718266106624798006951233336479204200600464802751041658222701553526393206848858898951162693881999046480946124981800963855082769796678037945240921317807200173952687394561255422029027019511510720315638563616493397960172651673994800300404739551564989990679575000254847605926731890718776666745073673161641785122460365685776955927403484991564772558309049298859702895012836073721408207325579121061317835992182822191698760960760948211793515991520023645557897616403413636984094602714607177495751590023738061885032760286562361675757422436432839461662882675562482875679729977167139170919384066440442482384831470497880099272120032686794040209639366372887125763694240206640678528889364634027187033423014337471067629857478223521681095046730838999561241832505596644036411200890489417049139085455114353211390428851362306791977286635471423160876914543155325912592418856727759876104604384178447027088710546682424069765976142114994690735718290075321739984560192947805505160487181680986793510090006626073508015085308867712117558459415359962990567905653119376482708008263905686025121813224068171783639362689312689834839825786810860421360115723123856598004715269460668529071693201757502449557175998282856114171782947655525213904163248325076523655656461034083067909988733157597236752174146151109026903246310164709058802839949241550138564850241422567693476841368247402490512572021914327446782829878497750746383922728083764568250802901200061245410511977210138594866142286821719816957214949617403900906085771532251746935615727369850067371703141619836893615576035771576511915815558792414725017666707039204356516178423688323582632807139071184355974414122313276801242082119757742911975081687053202730753033903519386714136785287038619102299216091633317387505463410704830751165380958034565887322517760512983778100550285456873059191993898482176318183299613651594678042190630795365920657482016629634375243946941405255757736606111920883624696931332430199008693745194236063677439499682688195610484279227112546085243833330409773420536786668011604895333683001885915394006193636521534324146929229601122650851818988462697292159974908748246542999299872402329123868295574140383814596234691279299346032499567415387966487473906969106306296401068710868614259827401681151174454113179530654646947785040526426361971088374228407077541412543308546061266584802253437190902579248147501739063919552755488565242867524066215689662890057447053337238914062866284677165044750364188533556925834219766221981344503660258188679752079017736101681891768349082119357327639848163064195659830865611153922557709964027416973525399155508193492685036135092912094123299453079798737530550409244245127202842673861494583104924961578424490582320023569246354457348713177548119625880540921496010576460261234529591462310774011428044290064831537602744034061279160277543002165064962031437957552211753020057024807103654314373719227542429507843245004202718830559523911315781932971456772105837224216809443976404127893869286480410322707830096262598264005328707407695059980714488125057678262498957249474048637204170270084249795320420974807158106949800578723525687657046943359837681143727582467155129357228978656570001629862648436131151113183919393722951872765150640914929349526557708265051751627144172092388896024352114530805671918605973713804441958780138778815112314845839074517990241068093085650770263167964110234429205879425698549548420025700033888088210761118030505783371007308891436932785185322649239825463615190738566541659995916173136669748118267646763598422127885947664515403735579220118912677028587077677721057103658142002495150052221530123460119431969048711201115721651325549031439487046298482857671009982090836445136879587922743275639277540534050890841195204163887576202194776234107843678659166144083247754730160289083758358935460079371835420349146218459180956725027984065716472448171953790791634531225472448911622346195769546174400141502701765169264691587653080126371908903265743621488228766548955729148137999223706604705121429893880005299576477913535516716586687992296085682966044399419032622996498227663516903814452857107244185310693452773358711515039330875724772793732995053056937960691421294093475603463854479575229964015703036774298261439634301231945471919155876616110730947843691691713458559388473257292918981145789059724743564318557462655613503999505789916930615416172022635085658949823577254373658235947291815064780968489901480765751272338881759435133482574030943250769966764253720990294690240121106421212539834012454176247105869733047938604110749560614649947122323497900967587293265526856334149523522441407993465548392869708830000807964063003511772752396538459722950789880197499851852795738941001401516608464436921077976287769985272896192871369175288982817756794894668955943480298779825216562754178134643073911619473808534330430679587746856539020234559496566358714110672018611971160598430539509089773302016156886855881441656101099807418243968716670160471732551299278335023649921192444573810586777818361200241593469594946498920957927486894634608286731271953844807151214863375321930674838332626886733172529059372581615950558781141231524277807525716120045398362374195992600556903672982786602588873897879062995470656592761913159431017059300280232733802241689156750344841929650051396063405397333460597444920380753857325708374584450491645182513836138446479423894632723686685197687852100110329917934022377028605288414120041165828021441993321191441135209617292787356393826194346690665451616115213828447838060778051004221463635292203674052683529467301638946356447032451051159176436249650205906370359361763091253822516760083013755737954090186083746929662764718400990451445034569335688565465517383224475886102616451215663958554634104798363782923238900989512119004092293513890783382561310811366367960296471917411237164411450498715405733814596655210830778765195315670818104378657286402860956466357485878486445434796883026548708826469671926015916158384594238188758419687399394068226187341956857575738088747369401303406840169344869468375996473088056428829919319563430046080030393186897148231478711086158945755113262303798006762230602826113359508952360008910421500239586847275118521787766081483601924346177250558440517143544451559336259411743218155776374016202112243476642933522318294417363497786559097583501086570428972914188766044613248697146448105676411431455403862730305521770190952714421154159510458232668812293806310873859663386463218580436933277565868771876961314050867805939907780985884104390303396091325195752525272954259339438510238595034287972634116858834042672949850304408168011591166773425240447309291939009760807611473211359783215052733713416042853178948234962206976952528131260460946967389229122928576230268053087326868718479147324376639363208932646970975831928576564283007152596204144488092407703332657176329798180689966941628711592724377134371623411233959986269032472644562087626353622979885599887011287299094602461784256149987053463000374693501965374051706414900818018912699962902866348158290039857576325511673615748132582979531689978701100837235526838443268115924629827543248751615183253238833359212640218780531878324424638527851273213398429399105689583980968055505228188477409697132499318758048484026269766887952249737689483758211672273463401494246510926634318464943443174625550501151469658522170462693297762117649240760866332344342866158774236845307125811400730336183583315487560229202929209136208286314846321042561305153259509475985784815603111889013402893975593896624914130485507365116971413521606260959801594583697890752289624884776567662156142143295406051255994590639226580122046527664157081600625933233750204527130888545054492606045773341906826639742617467607401397194487637128882706062113204884135014577522518106485325756935764177326085811424316525781986963147079540736658515444670911494494755094483195673302741716448003999940566521615081998847823939669931988332383877793854772253737717685896710197879478726213401699501066369577989242460312565897629810291211955301077756274998405419437225580307456763542159614054967927316653586926467142299455346647317341884273527321821676624320493352209680513236270513528727071017142320576663370783112503889044339148139050862614256371934129475603922260260066915642202390412810352931780676139463551982523230627644809126963727506338859179648468564529048390143428390730508983418138575894617301321023624987713137499721605229935826604611211233352132535385797302204535916340610661718588673581166491588510426226248360258592658790627592486643703652912766493212517171827210512380290242146931580698326188425214988426002972405687920075419018575061661057631421904541667366729369424867527827379278043921655400324939982214932424432934974826803506931995805017159317920789256314845868890282157307271904991950911488103754421760276950714019044665169622942503836748320474294676513194540594323649723332415883508517783294449411529299843203103187515866304666782291779521901393003152732980708473235991469986002895805202155469699445569769984932958089736184781856862149113543967392066602504866473081980457847671992653280124753779869322448589253044494295665171695796822234964161187979299654582485326123008412104941889779347194421615956142051979423183418117478630036088440028350993777548484340241769254143524323750350535931359305875570468572810128918580503121575528120999382448495496887017767556494255422896681429019155588575191265083499148220327353043503963375142142321903164914949376414835991995288273175986570207307132839108930429847444382142223467684926690942979706055611235653971536598907576031979525665786900401746811368997776543127422240571859505196815487609896351926268780558944072425411889774632872389477325278207729792630911723229558649550588421290405502793832350925091184125161407263451316977282581247194831147632865511638938977405269654403311305284457310807813859050789105839297445042692505706935071422398840738517497296198016945363477887246272154732251633094663771266928922958798593806081534960148783750816734056693633549583161481252392114852267501831656829172327302403061122697606906808405154586427793636632637002920933277199992843175959298991721810345471772081277175381111588997226719421822404457832333814637834503483378084163999198216104420271797576544070788227166318697227001196104554401766969832629864506767173670413871139251351411182016957781776486881478585691135676828441938979549049349168712760070261591741871315706888409488624489214734054119097266541391322430328035397277091538781220197224945798899548350459489277698885903105851465765368288671731908151014187023888150845078230455022403402856408694852733898214299778136575405439135862450182191795985486990622972541433090803959077494297937495030664981287137737467088218580745470785320392874521748791818825623185519504173643568208481811592878412238536317910656123190535372484714484710191742548993068399411740986388197240707123732274432525340832484057207682638594779520818089499401903836258986404048654761473544600322505844400311838518614338770100414394147578204834802307699019942568793416045673739445110207716234633066289710828770160577961985954413221390972754275873306737610042892194542536942310473897221908355781840781939846876341374754542901229330958437692243770486954205053216270081473295919127320740291138333719277892960590509823522047855005521536796943720684981606713443687270265655595503761843149471237737198109702543205306658748140516590817078716860956084537794670661998222498647494594931332447913416582136994825304807512871254553324380383588266482252023459423830692357864834120567129726126003280773864425719191853959569774749500774126360265686548678188504703207142589986834270223573733607670909465219070815635510820890633962976963273640339578631006299455549519506913310251251139304560931192839132996498399005100006176431023422332958549776682496078565834790367973579201902267123882904374932510106729105098151172446269048482161738199393874098258573677014543609214308807760027002094672988965819147222407849305519978109850046273052137731274896469954533112618758515335966052487519493337113557011728127378365144774101465060920568167336297116565083743726045017932797351141091425020446532705892599877065917320058358817581812143229408991837722048599457412748187768175033143184811673773920638351247707633460718688215722224049804697783939578944408243351275200551115876871163669455495475164965438213713377528274697491137639503848442615198125735678396808304960021191328571683274969406562145314150765972772724141368721327670509105925985348317862491663922346859955508227442915330985149607810004752307840517145708525139095136811350476968406641014656193360381163809866259685087133638925531932633491722121057058333199316186917015017125497417337335475991275196901330186077477229222656919749510297167695193168740885936305945917345659127683940322067339333342807637699704829572143031904813879636558333972234937063180744276625662305136292368111340636994797448981996658241470142569172623313616322409662024212573963428763754969771162484452589148979039135480249393925778019727968749055649341603684001204990357201633526037683177847975124611324505757535206571585715775851713630552375099777540128759326719579362072974587080153078754435655955321026995193806407086154986381923965328242537442741138321471155864586056250704556424132218344499025073429094002141305552685762446325173196967260046614341970746353957692955205094077976689512984244124526108451960763278004408732474858601441660022441621191230079774416893738082379677954865741207696139803719944065550311406821466290646600359984015089244483663711365878608117179558273000949944113933072249820125974504018377046727015917841558311296116161791877510416876872891297889881996310664876676749772954481285897054244059270903290865439802277538373399172063371157179045467331907401197233521024122487802450810190187553406606457359264504180813840966978590608203635025931319838367825283144541886634776392357749550769924267804183288009707458588171616288977593512295834357726470261452098366175312307179474499880033762691998549796899678746772354105600600854727918711989125066779552572709713098528287375315420942648249408667029017857307526353782418059771207892905833813297625273709785690085634562749157664018947789696307400940459388255813432062785377570211632799460237282436550011288934873657809883340231464031358293315664240908724384682941417643527144094425926996616308962112524523211437960610504271636714866305379045081345242613498334029945229231702057014247271561071753434490937475378559057183057511205020322844792136826035394467829331473774209085291455516502508746154052435140478318738651087785729315735476992181047212880187000291823323082781210778760222808283707651996361262470713261174769437989421464916065546706468329473808503452013227423841358823057145374903655624890176200867283935782294067675794572839810160544649238869865926400922716788553790964156623900138113483312633831649638245970734822145709153768491284429412322154180241169354944578911307084153369492546813177207110191499268233957671936373927445266892962761978009628130967458843281617850052612841226057968847436399260820873885017221966397460572953205988119124925570676081196184729048498063579340942928399001299896347141223164999239896025166820919828831322117000574177386258764458734759014576276289370754395604676805696793691113422732380544411578134447323744719371897290599796407559576824785057475942935950436630671228011674743478939749613293957126349557873796457498512681935423396813555408990818939661070896398323959097844652903398550622586580021055412701323246914893324221320408694631854288235151853089821692645973255232442049407940807393706020810058925000300605930599090771163353164219474965772364705982318789295959910938576025883549356008132146757973018997762579618394065350502570940402645209185165718750515448145367155540853534130671557115835861844695250971811596083546648429174861160696365300608532866816563119181862461401240634152001277706316191627273336341754737002604083512728480644981567596825895576284462899570943987499597055180038361676329844382229906674825356182623533543540196181308210253139676679602654968252331583930806342555848493698199006988436999890973465265688667610300244817451197542987821573371481052741469927820757310932216068774607072196909318947755948560907201428321252073209449702781699651456473754077665843995329511438891591079553776229162465305188138463470901302581978712539441729731266708681702573875757003552907005008971766787083824889523098106762097410421278102099781496978250127700282702627957106964921850876991692203461039207502720095566889663603566426274996042046425212587189665685799605527798780758940010828780963891008871383321788639797804519672644495357320450017530010601217435879710502729331502191638578485811901746509568290648840921133493593425588058691274713398066723438634974719138558645178376443785048751351853808531178265665106969245873634412229759639971744043843803194057894576324451353424456785818199428840652358522982545068455175991446893701839245560522496140483166110425089404131583796247151643673009419289051433114220040284158042231923480067012695966837219472572883568443542356413572178380097840748526475069506172927936475299011355422624933781915665400329108316412715211307867602881603959822272537607371672845680170841393272787333477891976728771343222030575877295975275097327458552420779877279754165829767694955262004591937042266205851736380400257147265123207786676522592588736079083389647083192407142812424741535201764754226123230805198244160777004996284337545805073720049738214986723808988502379685005321699486299360369204078049822965334313100400570271337677207988495125702383146244696576583643878362587942711349409349865944242242556190294453698711071344688848289053909590369146550146388511528909789890260240592248584219330526338524702033743286186699529584630104149921114848718844142820707230573580827661868495257922332743868691744809805166750219207091367480938010822741178607778019102184145849172295241372491675148691468845158946216562864345641655383383575704648047193652533234069190872932273804668703781819458991935483572577362904740309460351979862242049807190306135187518199533712909645794088681509387244904581806987714133159222332231295948646906955093540414279780316721062272487761797671282404032878293404276469518110599178190005945185145157001309073900211170597821483236614024688005720615122150649617633128064967571823595354909918995367897902560773834087935935808343594573955287174725967240521968855187799053966941866696391959203297932084789593520562197637507073218389222077815178511914334652510087043737883078360495120333101065168912522844123328444889725517845759473086600582986913473295444940133959627157622359436068286633670479062412907768635485079928656484423923343367797421321713065918096189104368673806775069700079773961984258009902445301901520766014140764703674933873005919072931965885360416732213877178915515655351278796781547171059800115259452672865024125927343745194551835043849954128712732949951486927615849168340724728384923191638954705433013255281012551915308294301857952887745814341054741861413451703546769870517768182456244876364220437930385567515991411729210096265618558320938535072878943916902166500470801616408106188446448397615287170279783756170351643300636765501446696704697736324461404867839274752674474982026468228855564410979414447092616865563905536901757923461687784810562161108648754172318433515005574490514602711319430850690028767484786702878872879508923728366932670942570095748992053025611160424950056045353275368024767790067628284657948574905032986176718575164296075975072377562538016282305562069019129920191053753641778240137112159295102311768462598953694943718274533894512699557582969943258419074594761318038685365979179099052264342125182848245671152047346028349616512732718449078409843448901501853174178292073020258785112876344766420136268464777091984322571456865435822602114772494587568397686218613304245518822638684988269407250466521693037029564752566847246167331872828623570534271356577607208103148965744335428454842615954208932411742216258427407362048846788072717102863762357884118330545578753196229470222115163089828359666276217101623054483588780300294748497789900994536220959890739476994396450602520437181340122501316031990855463110399631550014700913790440995126708002948563033893251152379211533197979445012628991208925048641673961871140350986108112157547408959520756049508163023133864380381071565640407843346425618611607004547116625715893849790940529818459188271328906396599251206744211833415018059855128316850304892180369553329291557920254896755215461067285895594800350169180884960688493635009599615856634888668667447184926138166019298540836453022881514759984703836977446516364787580726669287770884400975355066562434551562056492243461348247246772394149193593245543742974431219833225726548996732376130345292589882049630786608216647407868936424509163932102283848131635214661043778684209208333895897203676891935400519941395488015989649134865002436869434677205540900032055306622601380976306449016874770917066945157192528564520346616565851601739652804682612690676276110288476513792632569788591016023658078601175226339122419701748538351150763815324952514110781896542271073012353933902157813952656268262789877858028742438991277547290080528297690694549505756425657761233948960368404920633733799753688721966670439561254065792351167924547833884991844997392053618763477058274580120680388995326025380006811265435030551781239480034553812105270571354202510651932806704788394581558291633620120406585460068724668974695357000604744707279131655800680943490823485300321736312342544877488818917012521891381639940740745806589468140261800024291043624296483399355731537548956311176009186930545883935572962728553706558514000511460324548511405433611637170376924191080653384358599924913322276112344244709376250450090462092123126247697725817655648044561068975432803644917395969050662804207284793545083221669253956992069543176450484799476935960681967871610795155849212047194208324041789346388022589349763448880242205773118577000058244121335882798081615110667183420756626831504887124906616372107114828927163693694871629752491312148813386567065718186702201375371526294036656314625505350802030552301028329953880222522008746776872930950147703390523367358898807857228770295640929993640080437364041078879637479567390712179337539103386873845142175389355332145011871560913603022162914149806653862027512261098004966361914903957649336779273248974060472872342880652322586289653045170663394338783982640733273845824973271522791829782942914630574632082643586514797262822651503034595841388846313223827980086724291359811504801621044522514253664824617457557680392206186052026273631929590873924609809562018323282391796276013487911314480302208588813079326998237859732457161869595531194586151885657997452824855041474511435894128680527830032490939944886584013050447328494684856795782816762796004625487634635171300312911904843942878746030491479603114063966730063793094660867350190339050741964632497552411348456462246828196518292560356096551241747044192552439205434840563947046472453698936339182687816542998068280329205019906355130568794991839301559692689946219350414885513613366406196882749842279056969536234744236610500433470881318080893617930080801242302626718167063647887769062752148533903375701274631107268879394291843552652224783822189849847815908732948680980321152146069439328806439955291000101958893142051121937388651372721922059422138371570511238864737261724225077713151181243664469485316154100294676359228499975656404068543151816752328856498382896307527780132347770471959718042145433025273028105333980021542611103313042636081985384353308180138114893596225304543691475387323084567598588539243778870343610985282992137605808914123329330122817529742291832769284189939242128235079645608846772061836915785279717866010330454614376247294604819137449309947499242019614356935228363705503800044933803060290372176979914725559789522776476056639262817400469502463133469378532457431466135583205991273907774875764124692904149535476138762933866484461685846559101248404840212035036430573410155533896177720120863590790802873964438564986193601330441421067466312005949349470650728359068278091718724369019958363363463907750000083861314958789216088084004762770019175099309720902248068904145710493708258468749615664740059794359318627396845024913970010185063024024179165741607035062526544599937044195969471401826185355961337084994731935895758886995719637629154264440027881759504327891902111889951518652285932402081839998405589051197290341520829512455094711784275962429413096303954914237900206329981240459205197433809634010811642838142438686463594239506947522110805784326434328998768441522504715988383134217473230466742176403487714621844532076101810700866936824198725813775773222677529661798738887513841374864833396417728823075311772552317601719985697360687307701816430334006458039729841191498384297385174806869959750334096061763636514700478021161550907333624892350457094274748648919066736497047113704083761173004752929611680526863003823645072833719177323676707579915786228675804584259129240894969613148773563762115929792763708052809266803864224977394184360972568911767320501761931846819587621974945473899711687935072975765282999881159300004280378054491740463541844668927423172138249381960788113742364143272818156695412211289890512806665998755553700181677665510427345847744540520434738244081143929889267987341825162721700450951179826176211213615624268936143939129646042733678530062638256161991946190590450528290385434540406546312671818320002233725609549302485037785970253691601423909996930980892809599282816059700778642895559310750797213955672393125940671185008568449291242937038451486124706302500111532763940154065071163207692130004132344671455759682954808692683813549774911689829385125991293666233056432632937498225899182696372522909157043947460617373839317887530463869775402023078175441791986258566100174228447301215103362929311493433700310404374850383913929383952021712086268709552918071998661243413259067136292996839905612128840052717480354593406104408790235018844997114250352741712231942952227932534933353867203068178567917969623025191364571472567075794394628112488163005766447578504694883434050457678958901144417769637458981975398244073266285781718056847313786045224344981693171642432283859468574676226311348140343632538926259581547223687175665522362513946957043759080110643568023599219960983843171882840387481694933571459429325756930019990189715440995316903844609649883127218993149006511670375517735535236944642776851445850202933339999619076494059048825056395430880802349914798170704018623480721558682381511843073150917695307745740105360486620089799327503895492527920467202066602439047208067932940116207439062948476336172936813184621055205315782233383608151187382010154595743362540813702331522974783344888998600729466373305370574479332240411892783955281563040464140917564749828251928768069892291284953545212485663618357739791536409596228668853897185608868719836215654819170773751368919544376769505386299999597678437843109399341646219736022614187678573230806783604657644295626858609810843210839279006616814169416679646551099254263804929784174222894066817347573607548611785153466895803513424751462767755554359637870561405687749737365640980896159247723401988213918371998335892064897277226057252577986779998276863743086220943602092569517801788157076483082741079904608232007028751394041879445208521062326178432498673944476780978976715904629437688698099115488510810325051599901427833805657744768909578123744671701236031366658247853521229102234209721508100412434481261709748847191243431857897561490190201811437705217207568203818065660168674451372138122139777688890234648328799452387885938158522233641373309547740542891608854267264233430597475871477760303349175383067707746610722817467843574032768370824220991073558934535729926902376570452300589978850235539556736107563665448528886401478844346827517999410253612933172116348657627670004110792586305997234701245684511239479941783495221875912194013248497956974141578384453639599002208983176760602791994421701402391398640458177858723702764466675332483802959600731253024233567287631336080111201296692465774534554426249409439741255144489613825755456851239710556958937094414050996416682400163633870817239232896281700590961405283681848895309108734062248923712759790193438079685571083589289323968436377011740025256337712286858102673283828709650098886641478318780305426039489227022123310890821834382245384006711441864722685279913046167367744021018800198740320774614105432333737454237343457339271218521262426528683055471023637631472748008590097757402604677015212047620244860688783629837446178999084058717429147579454314658586504019884685470099889238390549419948284741070247136743527015982893108256329800197637265594944149437995522226726960772763466126391339255392648263675453990588554794063867899368727797199575740493004996330865517059056975003064992767334864598904162139403237250204103171777324160483862531136690486556398956430455140682332899871123781116279084317974138892633249163952748836684455832388876293819626820106219416014982477479535976679914714258322922560766174609959826579492464931116765119850533019101335625008564410757935919249669706043077279728614912922515188311976252348948187841964547208734405546613516724529224854683576333354201303760196220324553340721045483742161023202970651164353210873329011357747487997721132099894918480363918854155646216335268801722091718831636870110128496799871384683407276178332805478858510903094325498025455600012312317717707062537536458296060442125084926607495751136595228198887192862461090818764797479962358435903072825362737882110811171458644754913981494330211298558308335181330890971216550146494825914915566244552489888095650064915698934328300052423581124433825963727334031476509518271463240927787077019731936726315283614431899070233808616548952209906030976432228717798527790239412264636756749055029007720732855947150528314356131517534958223900637721114772093227883444403268145636390981235092023470380123179960360516135442250107881835980980877014709732305021647909918624899906115460373311408227573973587336040453536319394883040588939855010310217827185167864648731163585511633910871450967130233387498857175945047066055881826232698347563542669628494249026173688514031235047884656843263672126076033625957222062079218298734914727878741497269540745877189667125710840910430853419666815988992289177403917978319090897722741778769099640095502848218019905760171994053574919178727504874444221767777249096226459850628089726947416056816106466789586182749119039523386650168743327576859664376731025945497567291712086184351261956648037171339073662342648011147275413013522196947774881980935624252544954973635889250076146607185512256319027600202778907470165263613969413470409843880559305576813945618675800196492224508981396533055132062780866244729406805472231359289726465527471387160074511632394733993723124690982749934415179262626528628756859107731311371465865082456721861112318953414663171157055515266211038626632966656944368839947270273810341942779682477508051516229109743041227207351176107753668099636760904877934594889049617826821547179005384163977084169134474122116422926646980400259992761397610586300937224012326427749384486722417334548852233853081244515365720999299901971572473620843375668682609220306577347087235056311796620957489444872833558841308374173838778503982023212890439539040800403028311506901402657720155902170071034664127108843891724899058242864346276053450937541564849768428017939988984566260693471169782427100799100717768941692324555306941343848868830846252764558911714111967842628279814708719143068034959390383362285696433565552263540478619461792483960226409766343128665229150007686741213224475391159694627810887345098347001934186151186596621574492992708031540084100652902708186503583995371361088979380131230470505136877261829397871126295235534283841140928123509118510410761510177775934351181695406407621220394278577494486277468622388523139646834980994244212842452198000967773261278220812352399175443280100145164176236164013960502005638795960518951016849981218726490844534162197806637918019868290084561725105957481076636469087247768166891712017612157153614069973365124515533205011003355074428359912686468894607139584095553537355502859338146870257949717926734205191192568513861315201499707977492574076116769690017432241177183040142351420683429120509365993378675549230412898071337348548961949548265355669293323929510555324138128690723024112241716362849967053714935916977985745221748402767168656183788722879664380191345677965786970980103085225905921195864362392226923783698305141798025557386655131623699160019735775052277109490654052140390574660501958653135467152818069517454593650038743005005594940301668409196941766415493180896658118924597042066611355706313532302534203276846658750172049841602769710269431423118800998015983742028727454428971838645072185026113067041215102260203351172348814596538037087447933736809865355691397909178908258352746644123588578519544486560199607008145241669269970004245819448989591579768398377977311401610128966656687156240444316155755399170949712344259524845417546246433859617197130849102108856301333736760580016467687762699048981204293508522790169328726952496137050587483395980994870770008164283458655647788829333946026826821575744906338388969513435953892105076076376683486002570287642107077572827033116436338293560072562110824264891258273746929999673224416768836303522258881419645900147220468425257851465472185142065945742200276691640914858240186754670461368740796231268901228898062623394511305603578467972286036251194013258877857903634777095183756371035259328092628778080718424348464496780735168304558840084825725956747127337962324647158114500872001395138810955920966820207264059271176810740776019078918261538924538283627346600350396726554785452215679650330043276752182154784367222699394186595487089788051648212703437203919379481305151422701983537211356650568349952123492803258873601247895181570626675269331235017008948704895263624072304124216387868415216187929639873892440230975437463493451071677166417122693199944068753287768105608018243841429462840997366419977200351635123829209651640864550487044290455119704299975643567961043608989124248695935029709175525905417539611673752312029686959601342030527025233995105521137234446034674156954267212783622693864872979748990391926290165689500312882273126069340844067989768949879827216705976247962441465073178071352724629805433506329219691313858225817150130762414962749113549556680940384272616123531927120804222538852048833862321594093903936139552100043194798725502270266111564869484107980224963444504569150645843271866639406280534986391357628429858713345589298794496786573162727012927088931687107286778177342240184292207094498081501823094410991771475093038259904280991383345247849768986413614411481772343491924490519472134327238555887582572125497396281784001778355618932797741166732197709012096430615597376108873444573881867094884455002306192272975745642953169177699742157576041227227187757989576167987310465396714993824479160437173389433151647165728822660024983109781565606920515578847076089547551637281919326405135486019788058132735603953508230770349578555214870198328345877355166414870449854535279570681322207295220057600133124349841169381093470497368071871884330589307870541439000337020879216668210822680930225542269729152604140773121746739454840196934961657510229804420312047388905612165037986945412848620474500420705503117568537599217125828763653162394710332338202637779511883607788568371380163798014219400501418641387000914108657938696811868718648872303228795862582177795882940662252717191716498907140931247010371346269192966284264019695135926284174776474171073021098407777080112557232299363058112146678526068347279317600470510328000082372031927383161897372499580838627316211562130812172167014902583856041908538259047177317817745512696960853253832525722494079237550942145966453029591639765132855922370267702902727282074221561589910486461603247557504514269921916282920387893903422112130005937264360395501886122216384347291283065358272676061518225639411754152467163469482023386356454399525800364389248766548958311933391533808802108764785198371759404030101602686615207849794431782943576861177842405879163379607863356577661038969077462962989615462104230292583139830002110498250389814766629979512377406849481919528620848488026975064047708182036838321531180341467953921415835317802938424692463253704016539568385378094417011941578516708606733827206978264249340126988381597193589135671929464450971289089885452203671702406117241112267897648481345210034706311336403167974433212904629232215368724198435662551571520390244470147889029602493686939933784967573169681032969513267811876862607818091589761120571313292562419579237414423616148162834398508225387356793851927208727435155061280035864998201617464217561045333629596080016941973348636698780660239366557408410524403510588286187930824659571744375932451954969497465923878109135334998926716028141057314558513946930943106181098564282151320679042530972183217829412686618248853491467587474221997090356020770264621092003736043266276763453177488395563962578793696209950700489858992748217605692848711863948930968758295164851596952428537802862834205401088664031186151044163547831783972861532431204237586004446884962293571152153059999067622177570750614461496215715726850776125325858950056063579559188945307701661487991800267965981769932887483450823877126970888597193101259062705289711504814501404193475518926064525617438714842865835767807000934787331378980797604299864623571948084097409477381252410648262275356436720713090995648369402117846782260405997626551809849280545844112784292463061555111807242660310495041257227340754293597254446570575241315620856640746642749447267709404701338862945340126353542914776253621004483286560516051150107896398920594880061443512970949394712462862972936698709611642850379722606930238869576021667837896433631725077992361112575071178549557525976332405329316074148588763427650567542051867019974325762227193668493355396749019835362131510764360818602330772860372363912036264027685144049787191817310280309572937957335361442650558146902953959697896880893322212053678291851579390643380602046604554159746395286288628726777838436297358640099536200168033027953096681963320692437046346364178954157971306500219681790436294564257875439735171831084533197701825335384009906648209778827632622943220480784345025099592261722234166608563097598246578035870902600108651760809813007755730869784435728879298185608633563894940726340191986950095442142971741149738242883787929097183283617811796064108537740839985056071814327533177069645150002163282444762519985534765505514928723512336802405883682451468619798568845463991913245712394672691760725195540859959064659239478890451615968751547048393734891266807432269241909766774393384569274610234388130480685479480094813426472490233197178427157068013322954304969283832528611812536783097049173671329357168712132803360047325550201773604739536007928829806699114396663507710050593842817853802558962700452031923132227658554601334407647300409273584313317336277051763902649947267186654772547267537296705508174099621554316505953594113829011174388298391396294480115165400535045919783772867989297548935430371688276404555292418037754155672996839091740792498097461356906118800193968203456884348424454965431414912489778869430383029870588669715639100077931628787619687364619401275813305087502594490167428471228753910102082557389483638254741515005417726811909936646330734019613274987335815203636938281879421133586688313673165623122261322748639798910031140778540728954395580325168145043289509150143882502958252382739276406660099506293231311797651017127380606206206795576247657650456671618356394780083532202812277637445628597555110155252807677582055105980479642483845217911326245452145484986277116523662520709002898322985469755692837109676138866104194996052320762175831160672329628018587442417136844401581668866813084837451667758218283689264192034806214540328224582716248239919444887270883258062540271194405227727256074103532861310183831758605571817879374226319767606351525393623976647173767826232899119879366525617753017092248075377510199895760799617992470065113499187742107550957239283937346619448598296537625576103330546669975279233962023780963812074850209140811927481155402138800550069883157512378916556018601671662366999293774554527265615590907552451286340452151766231996710995553993908058177430769309289329141312395287758534060708078815037925752197688170251200041060814703252264651007527538084892833365923975224006331711000917163580034535517906061670730766732601186071629519361461343734586050119914088103810458079930117544385644540825023416708137240482190405029957004630806287127623837982862243003066932434738637751312016580738282655267305666845510818945769897186414303961680892859467148164765423423380906807105633735827099359382323481385436369480934919670121086517873340534954340592479342821847950903670096772106998404694746621585410314695468746119757279505358567139695269412903203607005605052951117855423806398987827658121616979137605766085184933955139122378800008297327100127882726571298722639838663445534237816955154455730085448605774546652775971484262450651702666992490100069118467463125239837582743764639773998676950959388268112598764428169933827565465661975589405628263859922442910361832266051945889203219164539064315230634438518843765379070820256291621472075140744000408161768866117269672062303168062416408161638281664976397685196721466592519442586685900655978408795763712462684073039124605953921301840256372498375026224281304030880883123771067671105095163998738969031303052119161755731336293046222466944444788774835561531642455384352097395793024601242744153596620953428593510957459612731104008999357806084855919364868133079562263344144844049999055058217319680462376208342650702242491136730831156060546055622376182381523516931992878099130476875194550002942544302116879787052186772186137694637931024789096913506394146973090043750282588165567147221012055449430902202876524403174240264447981018871536837106582148149483722114685360141865754049002454571667783683576423385538675526174972508719274849979928209663835906519974192943764265928039995404254456047324211252614124569613513485076278893760581315613992910975024065258673239391631598855191449874458241771086346740424857999883259453831333861412637612251598772630366259272472970452706976941188544625875666445039445662285356746890348260724385563010481555742555496669176275596416135219907613247005416509536276843285025043835180066359240352823659780019738231972329586764520485417427825535734412058086507520024249851060000799150025913054876924329805010848518133888917771707357917697021395545936693777433057632229637008394284706348331180506949346216587285172541631670972345036570658512809220666262859650969723273883618027943702675614777512290743640653748110510992749448912609357440798723080808522972021756551910108260909448881122227576857504606379302292326314626923431082257098535300357543094890044096558428621400470158681723687055486712394530219520552381573212242444506927298471618696895107260176356358020272114663096544164838735351193243415717594731652061908307383533911748150674885176697223030222270029229222897999621183441234300103779074032707393628694883217621789726028712158611646825048823870102909362347486506614865191351483143951286635269518143459380779384199610876264473529356018942966982633934181028618250367534776697724935556513520272511271400780200755091172174116970539725222761360870056695687103952681340313808861736708600158760796582497087552459787895729171491769295088523648904624268372194864410997513402015873221330724970599281061159542056387489850530680857327362315330596590112148858942083361455613075961171659680873554974274046682844623166944368904342635002026436063559496295854514557919186960957254714990382004251774085200855146297010675914543762644522649342770920360498252854661070243550386290509322595982315836680295620066247993870983307407244606263946551353236729213044152270889113203549819649934739428794165110294855924956466899204109106696365800572288546421134527203760942137317590356514131163163822675616173203889446099093098737351403857980399189015399886224104209129229899322551790071347611727416867169311374017770152505042676326663104556429255664098906097577878847445648275322039353927565716172811473900317477567545052170275399010700456663566393743263165607867363950797267880527275856545771572008211822227476026132923901537194448404777016588430200391283106754659161796500995627834436082456365341974578280894247946485639766796587754556543909168072211477815839830118478409372220561802616184045435799600157456658792443174892658464812556231924191527125776828045430850166532619681627289462342293309713605567133768935698589191450864620974817933826444835757333721368340995234174618449665085048672751431538926157056902899210080326556848804332265431123439647211462860292841031326529219688310667766376595724251602721091550247942835577801035467052574307548388072496670585426289879334218347403223042557919474331399836544370858610849219533268232252115521552078017003365936238980338878401623095200471955547432562613884584500453428469861803776714619140612702513156504191939654934141509527507456615511182832808380587369440206742169405731561516479092924328271793509341067715868090636600819818986043406142013158515611533062478552056287026704728197743917102608063680029387939244165965262551360748461681124342423359315029997252904751837108644073880150922779172239809264740092863845523738420680594582674615556225744198930040382886027894196391443904326151862900552776189193596016864543457269576808416682521331847523875252479903871025930994076813908840985104110531869628727809344542742491654527310804577938029882193254284042326117750651751886436317757348787099093791773110116240163116179622166710261111524814221064976497012385381781465407721941522070338163127518867360749308405986012686129535137080526263753526220875262047055199225047791072040376187793975963108870552787015606354021570612251500023670070596053811754911017467824754280562915253338662116320873065606485231127379563165429686139976071921362001845040661483217026331253129273720156385730181581941063994235838178590592530716999239422416586847557703728659480338075508889191782557616841404692928368557131831081538693461796095014254525372990188027947230271216320419950619359762259232335217290289809644116105580160448124763863776053938209374379171244231388795905126423342602766687134518224222669107866748879857607418122756394635094399314319393217887169544112386888668004907411496638423360230268654938615860919826196241118289612918380479567785131249106986747973037605772426063532562343536101220816895947107664588125268037259677697499144532771243560560181964822526179580985076319451190257032865197716210089842569746940975761486116103923438961044057842707812087942042946505900273576780475842068783686187708782762501590697355161779401584131488532884690966072463084667749970950043511358525842095919006726089892987578135479990973147664251490286050698425950218588358964249438482361351966558009601634008480216789797524535388455138145599806059645272644843567990409310517065804269580420815190151353995329682637317290649330411570767847135811097855647606527949550233545785607750060929541164053800061077191877577973899064916240285171117066184760777286365005429762610680844831623141448590144782416503939714930796102756994303048992720213376108746019419570930586987767963910671856429484960684436519636215922095918550752106999144879009193953617639180482350141949409802255100565662629423006187722817381972917718705697730690244947935024441626930351647563555197941628932829381512991893457602361007853504078381900314613613148478505948293546434681478658408718226033651248730763224260305956125347323245726221943825294602273583577877620609314951526445037546743031272079862570836958066663117203421174589819347514045513370254702595155424269164211189334948861495835539114843945330743408844000950431535066219083411367407749980890268284776927315302869982706998518277643755109842580326256086339411616833888847425031651936908235477608393775329687555773652379399644150409098803219878096562891870689589640103529933627229963563213834765508104759259310457441328549897297696763380145657195146110014158290138692894584263717046968209516670674967168409686065983894829453680310641239466607458532244585680005012149724303762511221133586494762651766827637196117768138749134687582760868430977033869294869352368355820242190507093405978619704460660821936171336556891954695203637957047789783471678489003893189155799931317377781040163511668996182848176116444464186838833637059427674866085556031479137548868982634291524507750628089043081710698013540616991725785339409906929521589073391092600186655864177447595783771998886922252433675919970662421049258283557921640662357165185611500118482673067163146612732151382491540226948631539531601273758184077532479151273165501067174852793564904852974494790401380959741073068630230276735836240435173867377425543495684411570535000024725366609123316046082557335188631760341201526389478280922062478516078820298634371350477782348312931069661148766363855096223326650483560144299529888337834859857008012891103673429784556554377806098413311361935947046184719954662692398209124323103192357159612296790057834139308963504671901930302674106015966323743267445751311225887523692708435122602913762798571312646741589356444848027945567729856779638340001296569072230642645900944002169538558422627252649430864341978905765083165424644903559348511620828021836939520378650942158032073318241355289922739315746200955610596285645071137111414453307573389350662015655779593054315942893574818264881443777937762149308415244051972140225735818830320774967018878278804674218158721092653115857563042528680854349519427980863298161061823648288615288878689287774544988480523576443585364638959546037095201762172456469545513397424377106358744431002194294463065782122577646788162502160694902136490705869530182995024301604041660106395790888572027204719589337914387415636368952140839328246355647513578989857236835298578683300252555012350121038782597552899990850395927614337535057308163375655930021441554610612268431027914394249014136028935107109175828524921340947833594162443495316995119848333941158220120676582669225539749366558535526801762241918942787637446125840810095701600415024107873920571995715810232919153210068227002322011355395972730036540888224509723035089850610241285699119303868050517067746900335609647534038308923240873015077579837490575413224508855530869929335312520279033610563844694695027572175306404282527933923548300863559149278957773096139941084404186135472803878822847263959914908925986351282286046345032034059135238867900454287575711721060248776417587311672707368847072727467030924673107120132166367901280939988914238603392808607734670422476735051380001504105172825655536169070631581613394989180209331374550721708003245179667020396276445893265657164041647243616479286538421988032303988389024218371841123122131770155068577785427808224268288433978500923774772571065449978718317269346778257839598091579394053471735938195819307643605961720384891179623532446752223873206657293069314527184166253746445241853016615802809768810151876781341631604700114556232623388752409090216372551717754362893970781389538176455793562148160490480974739225376712785876655220590406926431989531037808397172110838079043261942936598447428644967362050098502522934140447610709644184916413326608737197789955972658930957245919257442944660126787607047021870786467265997943828968399710563537697940951949711871782414173497014809609455469257211403087940132401480785881145309737923207255901691437399113432604891948447159404063354464798169162988373623583152496694771476025603220603340548952546812619007488201526648875393200140773300038510356734240527406994843278752259198369990327565965417230721225835634744333043871152647249138371104463239716933690004595267419000557358701923253274065150988917064349413657172606188329682096664257882881076254372561720968000553808744803621727427056177388137965112254618050436956762246721745007721746828092090947063778666708971461385886422997883823870673592755091701103764860619414026547952974472546678664715995335609987501170029365337111765865580565281910166955045451618383362304741211688468815238135753011207916839568029149192985598598918543689483406072960145853409588916476234685038073397008268552919910046178774588966828351744777501922466712784963369316023728265507644677563113656860410682826928200925453673357380666541495973000404228408355757226109985051760578511493266563315597962739405779676371924654691485422768358290961475177094258210418242131236085981449136615942928012025263169615638600570839485005969915168380826695857705263887139990454378717886842158737470465613668047748112298455676772209211128623354243693676620281891800146793700370599721792575130977933146283602650935647548686040142468471533039451759273995065400076140140376746513542017195871841519084129306998481244138605549933404936241305751589204131973876893247413046335423282519719254212062028466730765412612403839663636306808334334418981961018747620997935543876790807803728146736901213239420433083483210390855701606071416912982302972843399765845135275883905897165464075192650987937462698040286516004701661200909882603352184810526880280547477102202607100788008394337847506280832270855264391478598115326211913369061096092738406636701056341265699149893731630451153368370863368224351033226964549951695647977427380175060822294233354538809617658558670870967846648600442131473965634766757055606938999260438304610165260022263169969482321248868035643157008409656071276549390127351981874583563870958215478654150448996680855767984841673125487387901325587654822592264427577257474767507673728133940773601464687242287716276889456132695601621601441279571837932351414917188595108749730869163490605794046032235056571514133730867314544140484901344828722132864550215075483168442062980239695116992350665089315069809254495399736362032262038060779329743533786623412286172949599620664178264493593967655011000485343430015565138699176756377903266623643291058460958103167938216727190074958721765314753991576522886742324100103220958611385248050622618420794995213123141607868251936166095209974293297287620624902777814279436209113987101277394900964390456070144356340217216044446527290494346752252796161189994164214694604797391449585606881331706062682740235864521047772053946389741398614709843428672155089476838445906640996577008569183504856640693760713078308871486341108662717635379581257065228327118091599632453364645175335242656829885403413940980859869304426233975515006051972326887795738704685743573867029207151781052484799302929266598241501940625743621325828297205222210708759740578397161652997521050353266872529134959750176959885293764532195636251102716778197160745384853184854130869366577647576551427586786235437644515024825020503234137360993125145876055597116635333575086800035850745760628561558400004701841048635637588727418485876357809544926767374703236385929422056074085424642084898993627734836998844194081971586415162797955931107427028765098481951790650318271136143612377878939072403011913314422203544743384348355598077656820171561541013854695578059007775728191132111397012229154417026529543713734514715570657683188794190194312330926107219310060339266169274672238701292355128297853011919243279296696065398739167303287004985283679528949876487514738432692172838291649460933613426496255897544622040009624261261298595224798725162986674833288142778870919217834410785307974226343782820680513274815961008394013628081646684894914579804174268341686100179184738274401808781160154796606951324558038894483938298703154099059525753885207955504884157432726218726172945627244600667052265887362096053170167499337390374408696063849138638756651968377381540749487520692673718069841611590951709900449833328340974115643145065303816352634135276450471271759971403502066327173092417739224853947629781874067860524141725577399819721918931207445867907752185840244583825808168302577745513668988907764024654044430338800016229043420082259792836141420379574377179022550314257023509834012723550356566878489779920814849479615005720694513623855127763006003741368813465335789435394725366148216339545757932076650549626644795700207463946947087054701744363573419649712060678006906630631576679577913385661023721342384604515269296250337289891916939631531094733706037517759350053712555835106145091661454481302552708043827484254977598326965876230198500715533952723283361790883012021016840257899347035002819707214301940779879518050201836464927423579587577814302949996428216556980566424174865587083070641505957192405446050569732422923582856833178957471032500620294884262195597467934633731305917226176666708611850952210403067568760018617535866923065890945256533067515548167163145867050372542374341154961361253738104251963221213547252652224293781386246317200059641948634016775750339828155996530040045042745065303879459616396213812950306672051639691903629474478666090557908391808466467383342820144893564165383136965869403123978991183867396164692727295184976213585581678560519920415636723038236900060002929862380559156760929459315952883612881275303041184140719766294218673468803713071623545610103683647174850227784536093536268068423109611967741386868347564037672548839874013359964533330758525735671936454025135428422395029188223372158755878891225595436495506262268988822322633543704225351526563955757107382329516196610262849860876731982102338774589961404708428237009137791734289095805502550585447646891475349628194874574214531555133805093731357234343716866216970979055918388164900613718812568963027893880479449014604313471018509904842758349056219447149940206715275816977448489253629811067372903221083918451772709292767451259218875719189202292491423453931751231569260251207710952824909337298607102213397270689033708458496252242319903667692705085270336241442772628030728224264955797729708237881267733443719404272644475946975458365055233690973288496271124480726798937308950031465454028566866826455242512282555935228266049808331969114971017851558385531341828841410684234012758549169276825012701062843536627159484387204759361505322409902997887954404959892119465953335165510618329215276464666317958628950736108792152274372711512213999842126860052997494663425870045581310481981752643415258924364105155441399698200598566747421978887321107166367965877678511854469419601664189407601299368893376970655767823424961481105783750887154326808826860011254233934208335242589367149281906793146517969286659070082265977848128269100693338187435389662362458108864978845294046054480660704974865295076913321185700226293313149267820766989180133588418064437739982198892304507078422915438261393299972884129789385970986068092115479883860726946828666437481345099313608649659552918067684715753604786361913315515937803979288417638388790427579266255294668171821765835112902622893831911542691610706756392382915838767446009359301914585986720854226349662810019438468529382913006402662192686092054976749009293564882914801789989436062449910410513593274441165598061499725418577564101658088539320191501228216984343413168123197580224203183306158106625923358443871401016348137332281531772165601125682142874149091072383394976109747513332715972433022801951050292293606771888458566035457647093296605386644170339127795900117134273068539204173163573044315296190011471751044118781047688749953687108440049431363557870584780511167606688560287122353356273741762618029644433625211224197539890181148847237514278186176751696416981538347769963914793740408951742083523672725601802253482151496578390573916046586216853525282143454332654031523639214939606463945072809237434374521713439391436791527378106773888192030912444857183459598080838624788969745587508343825246753415733483148668619152238493865656847148909699162190512330956026527071407732006076078193230138290275297442198922606996257138491089223002634089999326826982700275934207459112164013060055691206766323710576965920258507171155112755867372111303996916412341424228288717143460810031560403460110152716878442451965520741836465475368083619097944301319815381927889774688720120877622013179486369836029271551821480120107145769051126724539168175017391504068793533610027783340201173691171850368058275879048896492964971941255488553605739249450335100678149446276983904113822610026397134108238718488962790659294606246547406822026673639089026291473175545339268741107050537988423865253357010305615904001901178998104839561331149958283180972138325787707497108620843798416148937682100253797700823750259342408280013859081049893780677941433963231287769653398672842264075610641090085668898489683775891549358683017582289900621406418783648411028523012891319969629909087094115033130999061794930399243997101013660278908130646974907288223672306009123652454345846768512593188119122420644747010023898944851440462170854111490796111660079311211891694280087244861931598935902469674929291844818806592048086640276620813105982181935347806103515468203660629319277554175205371124411132365958303957241487965816663225659544266533296443001345654128820138452382396879865763976802448338705276004904185459451729017783565144080014114568013368827879888570486485984798123008049821396534598725392140470652473454059161076505715135155286843888638499411227886957937445016469762511938315338504199375080407009012215440677913317459444925503072838928093072734700598284646548918366497874027737507371375987580326397216119094560935142451374084413006932337399496407783246989193012641281762764365445403747717885880925822597236686971853387169551359164030134214760309821000552172529348623303518966884078836663400076563286903750480967459604611190283058056504103818161955205203844646927031315071903926085035355382825108984838547915338604421051419997888035121329780400871526770456147160954526358728393628006341605213499244119469400772463095328215459902018524740357082204818535888299841143169784351828463246005306106731657329035439979850887990099753480385422813797119310773390787261221969441658931590036758310416096213141982269282918151845496569826481174524976416209843066262970063672286890166694312934159452767641370916548690024304200489653154899988704555319104387542072520744481930465107376337095845763804289089810414053285606185221787902424782338080548448083910339229355835158906824476973607901959350311139839996645407812224849321385029147119234417544098631361251423437042198468470669626506656037015857050673708877208067976842024940048981448574989938210095305458178738313926146085660818963945360235619418716115358929078122605787709746265446658462755647138158380037673816810569570746756031561344592970531884474577281085423213350956934321703186879755927450535748324421535020392219310375455647892923914020435132987328237589605613265529467485006675600215981960526465120704638000639900589794365917834403194636986371704192486186162347298852227885891526899166535176146977691678406605454440479417227665239307974232597528196828336078859305334792853852553297913115235361635750126418891955504149530412673321197398307800436806311589563818256351774821506179341169924353512144912987809659656122510354032123369120944571482287851410157256841153539518360283466338370315231239899108412984381576415873457726547901764888325406668741138153291535561181008027326030157526675848627976025912798186953278499397412762668561383274987267340063325852718793290744629169262509612469212458521538734973618436788109016962090014252091932723501242704683389239631450424333369339707128743614172649589260931617851633462465450533235323307433458103950443287921270526008652076331789170914105045096539766178700664857882544019353294585800606499807131886494243622185307818044715714161918582826161066134895895390499246107942485924622108271996659949872217919718738534670260509743123751030542481906870858265144779398779055458726072184593459557735505406508924786917431593917223883872019254811038369148591583285399908402853139426717930050729461855395382323494125860266229200795129907968155060453117788449159843818625327028132308635312920679969150212339637873916972880392618509069482738052724484614253568050048951041248038175771553980662748217829653009856758730522415969169018337490233197826368246507982335474252066942109686989613386179282979889044560596053453439945177920563801892520475118970142029084393775812447355268232784025420943625238507457089746094312488909206102265325186795093260109055285589208342859013319779448942147887942393109540780205020865025211375075230614970394825008581442497442314703370532317972436562133088002385390239754599989291311885113969482642145567349531464915294261325061787536935739127579236518079249675592481083111777301141838334810231932087399368750916198160837362911630462417941359040849480529505306925660587336228053481797478454622999722235031451013305817659618357474442318052705418128685716166615382018054066525885420891782850953928303156511599244369459707611216096923262992246310332595268585292069039343362255045225143683079403866339963669073547319826562572931248083168479196019049495079543633461805983261861372475098890566362574969562393365385865268980188337402070842624990091086146823266678966860860643007154629754387411152073520329822930995738038185980941585250370338764841094004098919805059231369205740014991261385388687728780209069757086851270325816071126012191487074900470810714271757862784660195588698581809771625936504717296701882614757727258074506860027410995410473141550358906601095020181671898278616225845878822000526436432674240038576111473392980439625629473503692824188112822247252103592182787167545065693577589454286030694046723021675548279064214877792447957093377866494265518507350656079928035031016467109011607716717511745815695960882778697214151332826100574306601797145477121952993961969156069937232373823618033908383564633093381577436193335109258205687320855879729201319592402594595335534254035912004856297951051884336380046812094409780012255006089166388878301625528098743801037772028972176637768976075266423365083107072926309621015951570286759226014974960552112896908251076289527733619940351336424048669517293072844218226620826947038525628295840350401798221437613317412941997918325708530147868280768687147501013382416135991341065948119613229167585631679515019185578893725697198602448374380888756424104706436610900239774829923843873253691612490936298763710945487469544437799341476661258286862082617378336436738177383722027191062935845641149306062358290748952178561031814527847482142025988081775634672552493028549032085305748346565064354222565475644381645838853843144573192577726631943019500109604413058374605332048079878245911588955559294085447341310183570116370305470463539522284444687834153095880048157663262963105465139271005117938146931139549777210362513256960448545802078363555686951914538105513491234681657614567990637592639261685490158026601856405397146727247021253390952994492544983173367785067038880636876752967726761418281541706787729694278028794744486914152324324892042771697092321809437264034380978269856516232826559647332307107463750756459103168117553392653709213448463767476688542278003152606201841416424722500406642196942966633040127942343233991625121006477024984419418710912322023212464145605860255890796461596768733410574346094928907777958258500739623823280460835474380174760269684818300076267911474949901331244920323733613812144619383648120773321474750720824000685853054363105653745665929467343066179061851149736911660268384889334028939135359744984420496037756035519459836898884620852479315125719620906201742404214830976561503391085460550135862585847964080610127399592114065503892345072396125382085754090956307802136278314702865586240001522086967616530446158743844967887902742516054575695342885118310238254248733464914475513511605885889026703290215155657097225010427421463633265165685784627619952539593397276168589966639266276130147834698593310205387932437015132050223008952375386282606590616600932075880309165177517187427050434946810375354146607124235508515542313474641524803161312875042584042174164220272845639981030422110122932204471555751861724221050229306719708363538598058601838122654027169101403435846863266892346082705334085631414240699890557098397988965605026275209305872415045815771222884617765485532090129360628806937234891114592243818479442968674616400803181717337063436381676914283679253401107698965711759272324610259625807117007217916121119656540902160970112963009913260714979601772532456309313634641505422384963816382520378321649427720008715047194720636372925792040003720970276206202492689991213455939045453312438535492782449419463884713709833733410060572609408453220233203618228200818372431509948581798599723994183916050357380743858610506967597088032447856969536385879323517516877814906301348755323149791339410238563258877902642946585109902099954906357321570490300104715651342687719742337314630300456325229863525497481382260134145159229144146438937170335157186677419202118473915750250921471256223289240777918186348745441774222147465034024163609880909494868842780080405933243848365382142797913638807008594908253114306857625548635939923662142745409855120274710215959487993021619418682523765261834523688652491999833454079857127640563099156225995671663798063446586908654567901070318805453920436488346027917636147801855767690096204903287614362741722831634996986020099654780759339716893897583788547670955355999848824235017526654841464808373899362763925961610626641912740471571865370937172223268042569566353075872831834088373753787786430052679416666020259024898477148968868965727366466901433939380941345855965160116264541909767487471610747136269647922578628205971150653796695575542451668711508366549783593663414974864533980386919614068546633614433915227221514352467706653429102865701360070005729059300922053453753208380479557566126725968496732533030246899444437909520960213803898234519998304902990632115151282131317781044994632732506145699755465496012361403422446411533419742927381938178196006747074155073020891837379151707351058989493886379235942962428824393227501720460910759950081082138209891924254910662389578983684685234638237826531461285975388103414205242921141087833127711766675841886589897330512072169093463748007718169830439905852081201649951172715169311747886090397139074752700552367665263322407114458627781936623489752034499916055864494031279965115261105906601244079253751910364636222382624438579204316164715918792172234070871304588881551803212612406688397370514755013758638321058120652466925996674108695908658318424291024120713111788868319951908069720639412526242392486577505371362866686168170175492587267777794898668975198800297972754467469361902834549420160708744422910615456773317756422416796740798737023928591647930926039781193451239211220843175538851814138062623727986567360723217176889958973589285563642710565849994600995989884915394553527967171111672631039392306698083698156272689097911994189675171956804885673030883510841457355993866863244177476446101878192751936852519327978137880945864575456537778008915875873466013362763771201463895050512775296368292022166747335420089403317221092857908277642800869265358834228807681349250899374065542103640313181650752718962046022372865566489054252104277200261691698579871337016989452465319894777312744281560795092344809367270491425255379565556039223722059976021231297966750065284400061112123928433213632764912577771381103532222156912633474053257703919484504830878210015331842871032624782295450142443467195621261713625428807922321225563830470179093369858319557438532731775385503786592946544656145559021952900566649407264036214820611969714567019258854241652465389185850233594674475007619879041591367935167326175554230084477797903525512124638514322457365079623625238689221804648975571605857980091460235374990459672259593939006625394274874025091521097773177808929606089996989070965566146564982155439503614359038458441957281229270216756349684454108064855627359908232108941165944687829223751074079298917688126370602560284963610847450312235382532050129027621253428356228603654910676368599021638366378179743691453540176397283301620431316271770177392637708982185888039413788404162507796977843405846570770729264136555782750963632428075479830863214405389401495995063407920126377020302499767400237213217492004941512250517063525054548328963254705527814585968427760225870503529656908744650293267051382679804379859606276867420721840076518228826705953492835024102924206512150730974204419911506907351378147386202156472195195368701419917471982498177210623854175439256951611512777637844839432431769966719471568165832870626836880515180080916546183438964834619513750141704328859885977549438384887789978632219008362600070502658070074084726511549400154253579768024099092142360744838217206320832481333523175746684979499308770004435045333521303003198479246352244967464367057420645925392266239926340048056778685689551353448714100817294757823719649408074359857930855370699471641247367758083234498856183772259904741728223948118503843514356341407982087432654934742128591198780671741474266135902762777919996740127133044688691246595944535135141578943022248925342063349906307460264925801943916472893234706920416887207902537009000190076618869000986856454777152817923094778108710779421288438109744630150681360962588930308055448316579821338294148619179232192651511944775068485508076010065043266074608197960283700929055590787304095402610481008770548356609383744851297275304741537438205828974411981629325478399675971188064310508181034601725830515149620751599974036997328948500864026676430577464146408204731827943001152953547570862657325513342966512673653937920100186314900903448944838268339131392631069832844943004175458156725973713725907454999212554255718061270714076990979236824890244924140319334331121224331306884938304794864173561073964347589525515177208180388795894664523253671368673903488384644662509351470969575987780842142768484111434729232658358696197955756621193138323036996372157304279159006765922640336861508937613349582293445138174383230772494409295404521601750692483111970842267901851910655380087050077223341785649912277046936817712406183364465400882970572062028178951375377510094654388405590567321374612303320768427197157227974399098240118019017531969947388332481177824920010621570621286911516760260842860943042126242104032346216891308247498720803893814367003844162476926760189002074138492769027499563392078313686688322357841898805210975854740658374628823750430431233417405207142229036375438907866731104933269881511592439721865937267173609091440708972589533118603626915156461330603490047231505128261164090376289578207215646177597279960682477700758564804735441793892102960305876173145830762524254131619652677511164553212135345381916073145029259350987558718044359063013649380304990856707422541154682232170846245793134968239054963945842122511293048502667208236056525196915162075846347542539645651680408984176880169808072565851602206561548567260117346193805309922518198457402702079913933682163106834627570607791402558253235746103643304992830663560464508869744285919406510708492755667973999722856052065589754751248083337356271660993075973488386543354552945766190759830065157302307920009977166803427816517696786947508009616853923027050789522938006354758071823924277469987296373852190843896589145506259732982647963192412526814559608920010796517965453656813507429627154612116241516242059825818512797622049836774721811556217319530628879997951640012774750925015840424022171066269786798252548979994179912502170432689615282698074722276036835895994887671049025759824718074408635095655886674720346178845727336273999382140255643741276176066364071866398142286928920692065586217250596159150591649299668362679329876405999601263181256882613452047920767532659370563948625559301361510036598468290352189386333413292656598719509809534132553958983150723098045725948886739548305331801687038122670929688270868482633392329534063557847424925234020277358457493581929435669066002057590635890750012105122934615701645468109452018214756214410199325050913955212237097937071730538824028282249507869723115481173310475296182750653276859342307128796897963094328553382567274779510285755702633112667850500277280293894886153622948685340193477552894939641660999975452470006058564160038542428648986888750462092676359385847193915215330397721412489523596384337659298699470754680084246464637256433721980927839958747454539587329639601054551290241302122635879981631976841441622070815594249489089766059700928840144579755807518127230901328343052168114663284843075985224369948619337295761330343903907365950011144692181219990925645098274386351784624518925133589724974847694289450266062740725068886421895123287394416942646410231925203758160190978181525674690948177270133924434353745802373407153612156549677746215355351218478182567020905200988954357067142230358229558063291446357505098069078924671773445843118819299930265025241060829979807754748481204547266264255299038516670494649360102501353237610772967122396363931291497637399001337231060276304762388169935733246398377956567866716565331140901239250154830511499769491093660796924999772595064556678472817287118749991774371991423021085093355830410143982325106287551315808300337806645898828270060796821399261350386280988909402014645724657514890877715695205332500848424421643839699067949759983058702393797725783949297473966205538879282371604892666730857280282521137107721663425131900976400722373010778441542771027795728391176823438383438261904164840291996258806304786177180049401544581418288242830218820383720357049245894973205951124482751429849842058309491431084317999532676069336691607385886198915243731489407892960547072755562987371266975164529297750227569269277689394288012862866978810265724407602577904768828211289655203525112795929197004184469440213015051589210247459869298102844280347975702413433352131996361088683363310755307179872481836462125447691162847059377996473676071360677025474474483556254470014840419702555427406187728321892356881415752670320076437848425814935934892334958277791710218161885588472437144703607352039457692493952489311078701672507830460325050260546220490182953477847845507346748517157932119065579050144221125512138012935784618229816366092633985320167765617335825277971612284717843657948500006287175512606743363136045826529991421015452682285085893976576155705553030286149724356125520889302656083727447121949138682401897434173223480722143327144160168647343499914421278913685530900298793112824180931446880420352402878193959617462261076014414255585338950519249329871375872589717518273359336530839416215929616990248514451435180878334801240390736497783864137680175469648482967740907071438131800064666062181889197341038800987889799370585059055646417426883392846725511345576873619397577488981504016058797236435869638067933132002671172616083229299302129351053365706720587150239422591946750912237474329508276266944136721207179254285117313562557584400727736478966620156987918103630964675511652735387975525005957075085126359104380685400100029282317321423358686557514327594364176801720755556295055460838305693304428592147969651893901144894613675096058477317194624782627005491396100442854362866225158466752869367793013349816509110963528115840889051885319239543458408087183740033430433839121514625691482446348445123955769832525823785528097975112444077104325962980154294832139354753975265361937488587229580102924724051417423629740077069639928428400059521995090146120756013195688737849732678493416753071154394125857346230248798163449318149918310995906814631570086965601893520349781219610058240589362601370351290561318575744912719447953447589804602828654514911614162439236621134086310912600561013668698165268686558971399863444051860497312925015423359985646899134609688938618347018999456132636208709331951477863797268608398895067268281829558052521351622754965424230272811480550360379641731613269842767567098759527008293180830005784758790982757970005850121185056003042102215978848476517455584679270303483299862123142978009502442512407422779982317223207205987169064403303592834694732840017862968615445971703277922880054783440811180083542088920343366249682843934602617649387169434279054309444638606707492909410234404578526794592710643104031732584719912636949481147014754845627174748013567714811630863369892327130682198871500229880640463254218842173885523495977304003285099845114012639939884448014128845222072851802875703641552687007205358252901816131943621053398591575352928503594987884414464275210006040145205110030741819372551935561461816790673303229480603049660491819361039236431865853097882632138428374073355612230557387682642803648269537115889905128659004242065734710270670957161095179287940387339664359222817368061804247759049186333868731516341206756732289164910156952241944845883898811260495450172653996756600076707532014539294005440349054373040605973527138464068532203694054543147301162169555872817995224698924690534454781520115444030765241871489789640062214057756784529468256441757250632587706719022626669713578674863375421436285292750588866004179009133430831024851909977930183689314931722405907272465704521985623659132670620164913570641976490307322637650736987600917540990057228649407700547295978614848778418743760158509967013171075749574690803081343617279824651374851884521620927762266440680451578275223249403490097682264180062720859363696148970606826264043921302667568051896330738859772543796101751397190378791841957949118929594383008944170440746155270153397869075298468344019338344763100064006339468039553676613640868128251477315168853967837948183144322405986157459220525865905084430740314922113479201836923897814927198508343968120656918934828602505845808993352568385096162480854716580059855653051747324425097479185483250734209617534979310792655090575383440720044821214606061242917902601721900777349417238080164818794639024469846320755173332827307117007228511766389718513086103102417243101488408251698137673124083308357526067789855189799309064301316699328928171457775628073022152783208895630400528651648043471031017301673182400464856041097320269143858193566365320966078688076239755843773907754402365541859440063485088141516479845011036571609934338453206229364758040616353001305272014373855576320317672178841251894152750243031446360088297722282807371471537363091081341483224184415197700274887633995124150445242062130039348112841276270059396361169034775275649164511231254546867002792066930913742102469792892259888062421182144356554427273187857439442274621876333164741756139030458051884564376637846695319618124622099316528806193372765107248676634812956920590485245438972756006963242266538040776475887129477346673463381012564823828713497763096555093505812879256605692483638694374471733155482248193431951055972649773072031523692418399145352374644614440768336000451669106423020937503326110921235225801280512697533503444997089771100290892580622666857102337910135449594077145700645716688288073116453500788543839119083040915726746571328015441490886949215134388382798038274232732686649496575462207574277588256890884044313604079849120075559642616100058126298305996463824003057262812659906556229653837051580893837631952085869480520771885354696603475304993750402282704973062999183217530799118185762230914035795491982933933478983190167087383377979887599514121985945969850452003486085246131904567691833770862569458162476321940122145934153100596788546280526009259117900407894025299138774183815984601149580498509686514274674179250990713930710790651161098464051517736985692530138364774689632246598827727262646654602717030821051167089088484533420370197986857668518675301133568986407776184508069112197445746140153582560704064471837861680640340891146545925340538787339517290314541203706005698582825193732686719174881603983257803820991888091282019866859368633571944284197116053023832081323444999757001481697190337562518156079183316827837564940875508446190262027369715270174446006078483054871907389225248070333049141381230879053900697056169801226791460144903613423839455302855459063844398825623047381233705452144927187153288191863053501440054873115825374835636168714713178182329816047671591859182781493919546392816204500906469446007322212817097025222161342580110778371596430466390434265520204263471254150912429568944821828045562475224113659948713312291266823233177248549967831393571534461374395615886752098700140167546439625259158132435919088468721017886609475307863433538845944516116642693868816835035722691398401577611798145017121152909434546252057662202651747480727282603932679545832486535168608491873963366704188143206604105120171522524438103353099155164021969244209566098319193476333509039782789582646759670143744270032330462242471946225147521216050530039861345127156681976186402361189532312511035066009803741360971538315492370940605676403639740766811954716010915605012362805299002854700993032327315129745125670599298538801964486304424921487567368761856442785488971890928420695950892450166158885818773546340565164677130044783561800660270520351125725216529951221472479467096406096077372847591578797938727665190375332133914171487590885212925648965007950622032567472717674582967545880122870975255637143753590446673804527177920730045787844982331665495445148441836967296030365271085538101257930488383819390458713883937510199102334715471347058670398205922222745562408478864062745323149116420103471703154779326505562657084399842991431131753306873573078318342366008946016019994298220188497475245557566018599685261111988923057231918847113763000286682510970149579113134807918917084651192564813183961811591910357138084365825250363246348318769333931961709000795871984865505274654044383794789845768645377992896821242250604031306161693813438812267634921022438354221800887173266527778466153705700372108599001800217662719144741872137284377744927923585010891228231269866435433149276149700177242208798032955505300305860911937380722384033034287029309532259983680771029498149277570558194655995506629598257496540832661827616240389782954557256301741730501334107483696302383491856002137410009903689469513788117671464829749327358550722662980511987279975611079039103066417064750288387264260883949589616912681306474529091897120326025445856423249143599318599138357123570616556027983441412588094684291211253272613578767129325570821205776157745120813716580554720448427988428466782897579318561428756186733517585524441348810683245792115832789317805732273348666030255783942864217745521203197398788488282087808061091133867013676513257457894969914382606278899387425354317959538752882378621509589819686976994086159846657388684158235429725819353315909250852776599551399316774817478533530089447081823074705966831502948637054072680786012499575238790313596732699608911808739261089351428278174690447953379270933831163516228088581163147883350570446551043745416593888283476362720715645651533861286460016673039358632131019043567914259574640449453034938325803968685680521875933529108126536272710911460428524544192346487344095452182356298497971799934002857847705341562724200787547024559187938803967701366319111697326689543570551846019599561936477417702964295376160238870178144792088755259530855234038166224563467497764714077689070650595102527101271211512999296135175180666759413703371037816172983409658787671824249469891112267340171322694258788965163654363387766481112545719286256870460499903596487712419199756336140151473257757240259793005522975074303519162230553576307561431001251778724188217406451768383182519614363022409308123161182296064522395501497111102230516801248515991565303398491375533156707064259948177037799255930199937754885733154130229652160393978868733868666194400790882763783793905936322476580578372941964986838144792669452273225528981766221924762571161886930961162283658251049831495282401025050751326365408200314057451624415670759111153382002677580876856991925792912947831103169294988823609495906102672524442245712494251424670208855958693410702697245073254151386539146036695891418093289667108922918530868841352449958739137094443461826710372369725702800072872216847435460719968337266107265069459549378673789721678844553036726322631357730890439622424997432455138866155012048001339608645228239530304625238220797653426068492985355129531284913125308873595238927016134062549626248513476366953838834166885547621788106101501358617177024907785272514770697627350112476858773231192699181075309130738755971824382255391749539396470420130069757084114820607543286493797441486027239335839623302592141667465585690962312963975854670801364079097833753766237350428901719792839764548758951350438221394446681295659477837556375697732694248736218886675363488982901396653376453062413066270410916319594149103763995986108445534646616186524161728264558218899946900073000886223744808715969717470051699855734449392219750447699658295621697467206503613456369105637294529621806503600805559270549776391358447407423873510499924090465830087467498787980726812304852007295622273458689848326910064304851895236280181825131735818173774939108980183296118501630406782343368469600533354416668328973529474505545147852920995001461965029058839165351115026105480507087356287944788795443623521589098474077445071905617481351013956708384770097321813453545671978951996852213583896703697805434681679641011188427165432759823807994866493901176207501443635420097076542536147761936732708502525574754419049329191738221017661915704860624710968581796498900737033774054722628688534214656405323542764385972326770544374778986015540579240661522454570475489657689958625751475326577696139686297404526959695583713530310100066269816821996658720082749170462773878346192488322475030759926154457209083693721031149210772882661065997466807825376567041828410535390958890548844563647421599474595216342747291478623512176109141510168719565491858198381175932580938531220754445379980513258116680860633076499919504823608740633894272113582991121697166857659868686014427076306522648311401478277402684151200489227673384801427208263936302113984431287041124358675422483750031513838328830877241471270848566032399290860872242275120219210282510490030967649731734309307656226587573634543645934113664351973153718357467929803207661157061676183734948158394034625724003632545797063466667658433169868773435948064389613303316351208799399545358184728380316339436100075491825967052345259490604430002592122175492186285822793764994952255177437032012920391417653810710513328797509026871073350603857054011010921961711277535432751262911595672374543298499304797357826529798352908330012784558673205168699619957121824477260667941740236919421272436904289129886067206441456635871643385958501716757841669310897094926047571129036210820154807312795742612549529491847261699967113089632671759288826578422116259225290601888460139411289400185385036894983878367968983875836267790068817897586367565434872071873028818422897402150716784627014528719541244413165333200638369168621426478528063376330511944498427757245482809357255249165718424080877600429892983314973245398100965672685863809690333581370815935268876812651159405114931897708539852056782542809821421713702965132731021815016599214411236715600412049008954835182070821839041811274594350991530872155464321927013645959834583642825087501903473680165111023537564555996493679440566021157450276940480700463912625308625752983459727979806023229673966187181219879699181218637433097743551770423692932983783643363565909712224600282641552679649571727794419496217941473499692843935562065081629118650434391180540975452720644580179375076262391275911653894275836222517710592902304985758946016367148463991205651123428416183174848947660218914457039514189393131694329315251076012457277940243925651630680340459872259169553958929670545028792538747676097648143893532641624865767198901355572287686045828112879602663035308526126129720324860722564890004188928784220631010201505797501408934722008974670451403856307266509591474261753104020372248967031862159932196657457529027566984365447604632769206127968142497709256946266098622379866270214870302599158474194108666157756886944911950888009100120760881789130420685247902275741252549852045424469313896124826148345794007320869264350366834620766957624816534373975458931361264922498749848306156185741232696895788745423063334360272272633304075926106092026257291482450127764708799087965865922541811212882153306319025590048450430547399762178849285861404454448765340583735570478167948350600699989285611657466183853332644236621290074428092762717017689426652419812455139568201962413568497515707714305246479469073008902538868023674330782704163671627027865281836888430353145671030694140769527165467573754234097642199959797743355409475184187581312684974759792780155296406595226170597537932976621952780125266459395695175579577891457838973287567173403306469792551916845055214261950434689318525538514787930782712458516043884609928469834637147005231808081451001605469403974405782401409331639923898227106338236309536874472014973131095260337488333173039845517098464809943246465782914696861188232491716039484416514339438710562103693852349309903235922232246953032702147500405168201282680925191237420651888847923700979007185416627616763642288273827136399994298617866292641441984749487822631624578285402141432218456373767898472595094034245394326850047586160609468497171052776370079154952664851106391460393249562185677592236066685788992633683987700744810765380384179363043545234123626827940800551425944933610073833138592956167329113582727906321093904114449943625022994592892754884269489323885005091928857698839436898303411896374903992660822932708787423363017849370297421234008630722797226693556566022185706921499941626578646861325266296312893726801626170149406951753444373020971341611782732473931261011506607866085908724120298172403385510478360221486202934643093979451343206862952186730519406838661555795083768037245656328003861436112135371344672805387508703723501558874886900861884886219106354857886223939506472222908650393431702751916388682919305335227280480256465297659887869021690115694201007940231016945640885537437483724562126789981457987314543364649853468158953866835718011312813629273386522814273600345262980290116710146503751108429435156162917493322773888392929581488279557506485824027137342588181711477068195815238143367866076798591995466325200059650756106674834200589226008627636350584751205480000340438767366303751503889560250510777863649098693034111325596146876101785115648251152316182328103219906512950606653992327350839268418561010515586972113197647065569823539497554824922133711885844346805883885891456740802217227029202135319724779448364092383201565742806968828264431010763536546958881581655521923388957367960464326607988799802369140854478414529204868582049445876127636178465647604614140691116668430059240493942916355524818804282282016602027534657887557170106549582811787291117595956501778718771818678024038165316036104375779310650531200675199036146769443299214716392291439511886849126450128637443350055221592096587389744046503171972430291137643031023019289292623442468077118846320287011767104689478929023713907603625409502938553077046478978975958879981262448079285291725040011174191296748844454819650632419209273085101375070073192532555487743328841278316260545135879633365450202092690657198216775327715460135043338677126306604141884861765042281024374574959181074741787538587136490852824942131315234927982835367421844561236216276890959286745809515724175976382182955593948656267089205292382477098975862024953763161646071932968222467639651223780794457121206161162410335078968245437128364189583840081325689039559016444150304815045490276232200997706351762871303710916975061881459030514107570931333107845919363588858267605860998680947027975871960548964596573459070052274973666219125355704127855203305387594370018316682489221374725776522159531234307230779226447775661650405851640241961361446799868774251808467879816329310378565175608198590500848010806925240426900256960451134764551370301001570156656439826173095509706857703222442504646821353562930420029058079637229016704846349885153964167853036314917244722660636364880213108877695025376402955688259727671597375216411315490838914263298661272365597850517948185371118921814268917280655877387388815966853461024919531312868969044292902870015815588241323260512184603101671140095554560418347047562610888811615756647303763782451581261359292970401846954817852316446548659589586325038546557128287483331433304645786961129214912216415462288925857473296426576434069000794533708289485468023188583882038506191365016668101385453520453638643853990802076318335405553280929427186956538195582570441426457032191863839900668701163897578759151593754842352614111543728371735152033103205290910074523962548452681010031072734351798605292921436491914038236972165553596319713607775678636247001345594728681445145599945589795693816551463367600804629548195938800009853053690790013476168159329152831198097265978753330510329493109536722108899897087097056363067187067170155600260642448736924487528945063103380651094970669956306846864123062115015224314453489970352562572742618905972001941044860645181640016141169868437012297462615815648616976799587354131542307240619540073940394216442157004931812289726235239114491237393466936750938399856799199476053757862046584848351869746819956835176821562079746776449195077578892646393402785587323293761602967473380322658145367587813798330474419568004405662649488138633532545769518300013290113466019595702973426319839840493722773718008504374355248600389339127294591835948464730799682914415329812039752233673325633008911068171832531523760491909009322619274614574823072019607264858942761839460136087908261523668298364186584296003530394269860968762580264823058165946507778443919511819914701894660195763871298769276017598696272503196303883660796628545494404815265283996497652841857358432295283472813374425117247906320782628265290475608856632857934693007119081092986545366748557081820733165650834136611668910106852379123721169068573303879410277363399768824699424604068542421498231259619047250385022872612553886738021201038511213507934379243083200365471340467478775330227153010672976580589244948765519061216648693577195471692956635876728303535667360065519306765619421088718424750223737360136279172778209616667831815698501488333020984800369832019561910323745186760113852382186359278610305149509867995483847043547070213463649448618451110038401955341743791770290551037369452362375651634001993009432764844626716071399913475862302622670709005545089471236784969655282010709779120438272406541866041068046335824116311382289858362838701983789371319799726811089076251159622974569682107704252236114014372979562050790165284500156807662311615393237482489958942053800586080522096175208648198800240585194996326079736377633499340924985670933567483791738405914009331367302908836436395063381061873066210377591766198231388213562723141054390811815280722975616607045052547616471486222428387199877913512216777043811277973162092118507822583851522372351229959826710794100101494521025170169999355080586775141640175262159712285621542620284873435753843798300975485139262891903943370138345942272248634815192425946288959722190443606147048854565095546151708660810679223426541170437945353105735566995099271754728404861141951892207375801837811452129068812977838514811391701502687306113794060299317804115329294168866759874575919326034961490628925198089385205668921108103966207223323111390040971225181666061813522034524476397744222612835613094152399730915140442182906577579887733921654454058168681526061224267476925217757827000075601442161476339850035183053296685608366733273157673812139368650133782839180872583867662311823134621915681993763637409666590821597743642587874944996717252158461049751059698284496284470493327871423517974326265083479140839653137553084704665242154017254779833950497474338671121771446416544553212033580823400140523759040294798453069096780183024619689499619151068951782018908798982350256399002538479313722169748097742555717683486801223736063294958375308090304835224472676428688469312515776268925561974941920776424982266204973541349188060195059780533723618792257315308872050625656648243395972930595184668507993487089870890303820974783059766895829880521090530485745492493683624918338443379234295378675264737105490022864562468268462524388440032497206534234956210126367907400882015007006487773797299366162839295727463691352421349988992802433008326733555887916793134715752147943471967688688042714549989710365293700860034336667994518679783841136484027556283762889130402795382372606728616616383190911213600857810607442915644380882104790340798192353128866035823469363587228395634361652232837039877180380239078421102071350602269823327901146490009681546650056259161621291527599088172452293138395776071160628739055979799821585142408879485639074889358263485327112619580551852930079788022332077158436376986167965942520802071161122279808123217202038460803835039718986732237344456517311429192357870908600323000977691512845233018560158657649365377220374518991714197346250342955682607395098017790639421137704924266050305583067270150779382287421131189556051053333160669042562527087690225140354395656998650650087979606160109100778156354427728975095375739805447045916298095823819929120023002096686503497815119477118054217180080956391176335062942904929253747574727295165128305346380324780459859879451654529339737502497314731262026323522087449100810582053332231217287809958279675463027034416681394305775279343169325139708571198611088603455348167054644804360734574366946133931086727858962952326400572715818653752175046504478665455750000357800730219908036296976724359473364519734814583195821761270932235791952351745579979806120714372013070594935213964373631512274001026652673504034857028793499641755455707777087630035155658971273520112375077987567032036357748241831186083279648697813815395213721071193083789210648463630254080065956263355832758472739443307697891125853272681004748826288957049452039917895468710912279450229701227737476497740638697071716794977830240289214493838000692644662066625159649642464933481384870666497068455079665943859546948603230659551777088394160045167606429399693893674187255376261433811417303270499198370883649471868612310915719404725657920793909285538305237594299980926201939196595741169517187594474155219206247473066542371670210180322991126851285151077133774233848079781184270233096727920500630819226662205647358341626212312903545270144661208522377422238560497240807074107320755732963263880436002963582659821536567040105941267101040010563521265749973398843036831423680808229218901842988622868394700433397809477569256604832469109826844255498821230883490538365317141985121585110240433862221183839993816736192011338567153225601319004981097393620819836140723573779853833587760250555933912678616857537738465072712501552957466448189724653634867818449583838158680683153619083191705713435607178067678157128789929033341910462782123723811752533641329399736001355091598606161442700025858416289346108354739783500437699773916830498744327441947657867371922236683165261367210341775531585354168939941408109310599919311189250681969414607390136279274822214294811063710525288218112852637336390129417109974345838371183418318320512710934219683556913117968021451400496847169910283722471157801942862519615620418765410286224227369963414004804278707975367827717489174972395720477778549661321552300571790395713143790835859972663108768484333940931483993320895923638922246100198389334090143231345305330649297976838080850600187068883747911565627053490572365203528445582386857595445255420886458224264013269348381779434443050800241905050186674832415286496692565190175372635460648021758034713783170962479402016600955955524051375129569740766491729357583732354745916655085424081427530366144294435793781919302389204508370637012168033987293540891851291377419435845000809475026703487175786678758561572554777029915592635257055480484263120926746728373069326378025950111694889081564382110329340312741136402294278038385605147635696955178416585437413787049930544854923800872548923016814087831749370473845270177357389171243421146979530331464791797730655342874601808363284683603737286791874543099729748146926816166690516192177819539664358945245008233294591069666278941913336942427015518088923808422425698796603716940314720291597366617132070675065222465393234415931805394849890731279734310557089114077170080408763607547387106671367925396524608105901388070217222819219801651571361664782401471468975974130009195482795621579340214884948731582209069405411595040077322903406139307528357936368289718664960039365421127978885520109116459017985681625606928154667027166213332505659444922820502557792373243724733707860665355342793650684499695608184829181998409552325180086282020363886129610615535001365652977621143212589152028049504233193059205397098091359286126579667826956635760862812856815825853668329679272774371336483967476780072881096970422929195465855986962123993472195760198184697195402044548944303327345019605418983132874600249453214160033013289735357229661137528751263457366034437343762788432211708824630337884852885773830911279103263208971889874441933470513468535907193767658663974842732437075627203003442862435753216829050635840640768445347281950752496143410459660178249876074666058989675246248060813157349396215647030485367178382193209932692197183250194221945981838684591461347457400160005367422718942314904685974331376238697988906180267594638157669515814238542837745642191119153615788259988454050055976179054866071382212162921588571575562954517734814646442231139600218235756477721499998198134359803338914773167756525730216572526365924832848405309064850343246224998894719044853948187267055875807950955244508514898820701257264105906081874796729546669501440617584713920191534059600421552822658539082518994741901314154344045617480647008859074555326332302095156256402358072235226991683043616150872804193357138320844793965637773153054812343748939372146710255650708493365387497154175356609410503459132910572852107814875357665595052279857090621375768032002168244269658198144177749068061987597122208342388205970065861215135730772172776144258811701647996456106546216235343135377596508737089750252183111151713601181701442372389330195390471195552255428298716785136555508104033501278293249645425215629255680418198074804273582022368537920124813730580031150417019622951272022344346179794429612202247736484753149571714839644192411663206938931276051675668524943236065132817566285151925998512845148416062977253781327092245625772385665221482453545766866925205176187239941316457275059049111962709047823760280569339678159024823844772397219260625351001305237933870218122678191208058775254492272134048843028904087378270969218938898534460517035658799215365684980790495778945147380493952179990206186685976506973503145218963921659168069947929428358267358955281374110038027445651209208374715285104384916875845324942388011063571947594029552272707826733258106808804475463535343638486124459938530407252615055417784035146935152185345725649822394695561617971749644004127737060642256247951230269663213504665220920109005796558258063599656006466566885245483109773789794792884025088161097191368392881248867449910028526724761473205386305662910560714200703522632582837886211736863818575470295118283237142763519170728266979397877659324115863870244338171610551701646500595455604989572493508256207789962793801620127930107878851538453997511659855586584168415392183869395225696557500954989115960936737368828042601148625070490096157992102131826228756663334419650529555477775478455827515057211809208898180832349586998813616781750111215393381573117068095748597090705211041304022640524600906301121343133704212860730004724038237633189338578804218017616769275412468655846788009782715581551058994612879147082049163533293182229309728238058644527683624436982220848412618628784763546016755314079350069351707849870792132676554384671818106915026146672885736000003012818388818274333777840125518448053721761800046240115839043269345734970896299519037798007874614320721180704117470137936892721765526575581892870413186299261039348726780874341552834697054053260890646671117155975893976353407852564095580223361439523687687530462969910480592630524154730335058894679764769959492402012612730363600976888818965402026644905950999740163397873151376710863116436766857579765802443879845678344451105269401133392715781302825745609973331028295361242094415359202508302556743137130003171099436212018528025256681606111881776736201706299504924972228139994092624827191572474125910734009625533704346127348192096061136181452988910469674819078055862682293297311020653005698574405039204916998223557298789718798953920509099850670905588059299543834994167889952345894206703081974168616344193725989910244966834482108776555046816985751505716063181024571470572781886683647311009969415554618277258902971343942427150236914243565666926726032452784378175786172924941838507657941749563833783892501839915005548418935844609310069157760880602326907091292634338437848204862540301211914902565575058048582130984605382153190823763405957897297772818388750391111389003679885379761425858378778987007602841924156132397827683300883834919213595942440160423144284521394424990714491817709222012969428964483266642296796869588990371335526534762525618515094346305536365888978734574949470281243114238449556083144115168202332408388830906200293762258541167178764133984592244970534580385787346930716847750148964638088786672928138320399498268668361037415998467208497495112604950562184818020459513315937509473571788311249538579335444052133932847275198994066255258699382102139731065763733107653190527567885758735420134668519145026364588137371846609333124464909411974395899786980374835565606863955906840299667791733636536232522916805213199747510014316212275018891401424351393518219324690671969807887319597144527034148508634534815128074491355657324322131431544871378127355471594408601032635207342555778753888461148706672850051505793286704641931108577429255507004389592223465798981193662386160775116641191399292702794628544489962944900733296018574699621678926339344153025651686081959336812186984786145967318736213381789175095863426274265678474892472953662125838064234369665728697310045653566833589867107903783519138666658206900253805748264882110980465324535597739096449870861525825911818335948550567539183359492385290134788211547509905871323392008040738495969601039478529038168806012522380580428447331670991946373014153379779726047059659255306783412509140751553313752721715953377927278255461312274605342200977440721629905790016537353071453051547767665996943592255176171339797398638023301209079291064649173259182550309540776183186654104671804199279896072397175127754372745275010651610748633948593995640953785237004142462057346100983535491316662512773197531479153268614271403806365507738218544087806716996657555637827619252423636008908433166577871196304468743145540219728873616408372979491439988076999200010131584682960738905178100502698066314759355011826344458780121340468906256339562959045395837965407224091627631312544480301402149999946095295726078183499616834515295800953543905609914410227647745369671466257122272592758763679315310023932047232142204447674113489686976845664204715170950856583872813849377713973990272259223508442141571510155708719133901276631575302343692423999047492088124299045261918106666793829622453276188509800649720039557035013289029653966269079734129808744244241323386167021621216091794457192951050403713259146019943770610240722213685892356201818391490792377667609734823197787900927710986302053313881058347194806976606980724133105805234066934183365784866247333440593348042709502803336502297415100737409471038342931594896378124234044882326295606104257789343160454996062458194164147690762863892440802581626143449348152922372682267687428208191180585948300318272037525713806194986043873766216688804858844570875604667073781446317509290565197514522542870047451377649256895331038408894699143697570726504987047205026321732125965272271283278294012188039642543889407654693450155345481459793320865123386687258109972729141475132502339937601247328214163068226552822332704016471533308616585574558250366910852226329504172435027927567376462120816669227681533354050623919361428400446098671419126271535739639554831973465191310667609039413180920704324195287669426097720081942106104953614840097460185590243796260631190820020425256693391205145345713194078171831561170716021259044789268457151898700181391200123797553632724191470615577360442375982979077997344047899191672528431899015422220901358160145730806616653455045760366008834725660201335517334903816015739076076428060805093944454673639573582079444987700246174615406084668970541377402437683257958378163362016097225698790831958531233407455456927206872935658770912807668146444658002405643636954202368219171183543158618540372708464397276289086491764457682892570184059769282080231813759491436907169019371648633228172831353455585368553564083819121518477212620179171462482980100972222813124594248140657183481598216887385083053577205011121020281596155334282681271257685061928829322673810705406853615837269702816769352692466147858593056055251733772575038604665011944816521341274131675811349942551871220711755780948281675599025816311657715565026861838579985759670398780892565070978628403746500123405691572065022997161577785181090179467735158475712528572128570327561631465445097731217135662125551418417250104676591255262601211113774031469146792833512683013467805188944727054243112130165875484148348184297008691178867895737805237099836789896721629861548054688697736960317543485755706701971032786742408266117240191589552350267473570830037635290805473369593577738302699708427966580025987715359084341156167437740210149921112589821490322298224745075872007519408670093821857105144000027243381141633029779861076754252858032045644138946185134038709693185245851281912235894803733726377051830241948706874945040985998285031664580930822349062365516306549942777091776145167640747550370775035475326483171787661895891481238377899188675099694617232083921043705920173519235148981415536611762919738443858255472067879848522497553988155176253158119653552020970784567655019292893898742902947826498111294107822241179488477210421529528232283213860207494598686698351675164551902129212173296211167892192491558815268147697934231966990901248824748889396876295907308380539668658995451493687848532010380162100026741099533749043138869779532328463659998064210405031693395671339323866238817041157569343819291231349399303267974663987755912798645401956914170434233031452610121932635271615491522613214261506314040763217217978416197220767080665895383974655520010844222260206940090266536878276546526517145252351415891469493555152425274878955303761434862718747795776064701075519682115024235513890766139076240220058887596370896852284743731372300798734047747731720753381194374542185599836038204349752525371284831229898213625118363756148258345959674526056999883502059172788500809221394728930492907178631177465762049204810119024858690712218960728141267650247946277826479264086034092265958272127195244029569598989561903064609820822632621895209337814539417062452711078554084680112696600339213240554781066706341157663263234456865160955650122596186614519478761777891033745047449266790191002794472879360614326127461158441161096378956828048004382813434682153976942944146347808722426103160920435627621946323858831816678570418231445244122744703587343466575249920010800000150418616210850864487659304041587227047742263995039420268195934721681804469242514200821358736707608157146882630718069908275708509065237673607459104423152968790345131115830662253431002754039415417064831848138889302296192080235572383850833435597869497972959565131633875768090713559136774064472918640619581982422619399193800008466709452596473600647129430086814119347638555794446410978535013916279735253552793414277390320414756425405842861664456067976185758817723398677823927101881141391159197049387314212544238954190963867170679002808113305123382787744583716234045841500824025630512215106964860121496747575595973294879241947337317487264412513162176313491088693094007369957198501128014120451016952860387176741283327513569516505227800835244483177752170083599751486462917266326554848491962178226861872468932276190552317898227506531515228740856223912638360002465949630447912973107823333374908211158972145986024886244446210922402610952399509711090545965902153313762217519750733392566873532941138893890204086864639453911619071016825758344275924963013716577717621661673603561237653240457737298574662461547039672876111159125894713633566332444819875177606186557851807223174037043386589857008194502816921251836484268138510691895327912965529938464991108430106090805178084345097633900343929081441986191000950216474187565283397520386462340520990589772765265572268948319629842580512492701028807237672243760210872127680254871566099982075478680564685002803891831309082501203882410757504369904038813057828187234087786781954929473598843336615247574848605611566978774419112603692612501243942665491499262148620813237632118952325700323140024902918842104466322888015811293660450378266801139683712856451325448166938102781773523427387770286118377636007740227609932988120429936856064215430122351422737140697742890178186757961768713879775145810782218439018447054782745618049668927526600841771739086118443244882352390132043590553553002369623547472786948831966238750832768310527107048573246657860758727187291505716782556660781039392166527346976868734194318044430359687895424979182284086296603196033731034385965235034049429471205335616360382487736557403302155212718430451123370289581581930643706683057027516887487095451029084353092304201577340491946492529661735864543191077200948306138577739337481483438202057017846199895243064688145473766151573479985800716846116967089415195408089181304632731382615690150876932617991761254269290924423789311359278979018739783242192874429518073891524724199928346395485440384749836423736687793582856289555947342176581935869258767913137360052822282933938599961656975242437697467241722368213715210535905075085172267144735232889726189422830632098402815109117652163085807719684328416533958686110498793256450385374790900718831988748505058909637078697928600015839511116032058859249675973694906485598652770896610857049054950663460606297426688747392693397860060372165805758932136834999710614459054385530018053877489267955876337647657463319717358164866768762982071009434170199509386828500992340249790825624076726966280944629304351478412391100111496556148704977985370163974903550162984733381795264795655431800101214695778716645216207131783223318559296031977879237924698186774529664293465142274008138695666572498081762213808041618122811010824471420611481086018170679564889291543824072947302858994899446651860060311691858681902131595848650514001739747393862526939621994455140626229930895614679835834681220729116481091090250570363132721487192940618658582232556464653083977630035148563378841612561537518838855337623472442945607417051504837365068173916352257589616527678264748134915270481018932777925880790847882122867630781331719042249414805378538182127133688325449297476946456149636447107838776357035304870500317305742223836765075120659357272579173287461053680831985953508332354880403915287461919031642834148666088486506445495280258205632311560251401141053690039343564116481189659408247883385635061992794680640269251147911339938441377021814299774909262453728532965370603626202303243118785200643651566589754651437247451386946509243541302213345879334876826727171936893557760231030676753640593447776382335336180730740163467607262637557168729212199233235997611982310397235768447800919339996540115986787476476107088869321975240223438702905850744316485858329186370444914923668444915569870221481385357058877259415148495933086846084129402255862991469307315493070921947318514298714261342815320256463126382414924990081402714460467647501967354732427026279775654056096606160541276188947608127726520884540304742930981850472575327264267985061894999709661415359798634397931960213866024926467044088978716374807768872017470093291064156797800420217349269839909969550298188360200504665759666486652423098989933070389009909056020208138074898417023268596720572840553653904469958966634300368860046055066585891067446361916862172914792838978926367056290671482082808177222965951509352876960781167021121117188004116217868021417848616622641467192482234383376568616501300730061198728589342574271065883320885225393607148667058050854844853278285843602377837920244220524572525733239214417929831858360758570781220632240753566959995935389300818571846318345602662907404834326269279714736586559115463871885766439633905722174829111545084541696951735944277574421168345731082067160225488523956380171384093358747721635342362211489721784888634818179935254504813332414245982995585794472241657979219334164184222650454528842833634099527809819176847033899879319701904555342440665127845175097004017621454710336767527795778167128722981198993440346448746991121226917219683367199124785317261960878261880695183651647060952717345791581337863530028479618602725845283903616485796468511995054598338255699594510622399472149945424284729246476395958366354588038594070300091886722766489509774111650037737421788799733922787509904633802679732240229212654173789404834557427976080029858342931242582891622510292597726481112537894124429335919354669158221039011796938472472422421110699627004128609979672602574539997158308370886224209961654697141879192610496834216958418311239556010750317223784770022498389791623983283421246856265779592040867283639105135592902600421368196595014857190069195152505323314200215719069766895355724090040459398698577780372957734657844725040505651595520379983451271478905252852989137426258507226892434391337683028703190373007832675769303792388435156632465937212486344764503032904128778893906639242377286054059845939198372439106601735603319121304762534846561664715924555581570118611261342456439239137309383005207316261609918371133419707748511092866257012327147945531889784784825865777780275173896881099786200242051090095726666795712231450201415762734494699454706755484026022402141784372436004489657710035456765396267058462213349229431640330113561241648011853394797823562085786639716613055843032191350046395188541605834853359488761023428335165831087750656652709263194671083862917913764069959293600950730403108314775025615621207784747549424400045766060126557593352600610166967487876711759746132250338819153276718453268316414801955177729914440994402498860997827412952744784838441282197403471675514866073832621629966601762004579550846868956508484380071192630381270070376137643396567869668433327341672378163941819996780208695620053836273481888608874264803698611456273934971647455674024882110690443672717487565795688909012398410022745853804861832127823468100563079258450302841614147601126134663472628095709483942751667475933765219529300912949934591788551843641612784726278764036993933990383328057371686171756702757894960699109769431733649878719024681297522333405669299556530867459548564542166170518242334926728289755569623680587367599511161678251599893316155517698723390840676039087009937146766868820719075895736848267573239924619287524395966313157194054507155856391593550067541531362540541523505156735631496452323705568085865512796749677785069340687272478485560861316999948526307395978240847795598671768300528870531267161306013396878765697596052458199333024488895747695829358249743410581439453434405797001863693406591333424265746582035291165307151338617526918481824183275448270564702670087089338429731192242215132662173961779486776241079438585413465663283608007772945816438655490775098561738926171940831277823239103447348522695205798183938440013798227397540688164397607178504676086914081428959027589091656210673673302460047801661326402672437465927646395635969942795915019960057323305489846543901374010732986020403934938570578478111166954184364095075856622713247360735758040934401747846705219014302224650888885124990734489285456569516265863387846742226847265172200390704505194018969653811491137005635219032095796837868900220011267041391944733442208699463321647854956703932347948898431453791437428511097339102687887914832654523398022143354591664655630197209673691721430091206804055700814281255548471521320856754029848048200204002818873415746418692473397191694543651548986391105792927575838037664038176370804603083831400760752450064354310159092044509050613522342205933688349976159840273981024771061059172487280019955823897368187643049528231892768853040567289928507393931282257671067783180082330227117371911694954941188220944908627824707125475775023768459674143812519511142249444489954148525717364717209776952577940900982037312485138399943953167253834029454846759957750768452900070657992634183820337201838227269683430391675648688363039183222581453175229322918439855073898818202143111923101726230258877823911150349747337853191950500575170918038632715275097464320856213702376954519355752270805348956113438675685142355647860420562248985219909853957413279045907789231356372989961806704755096055944657026844104399471701607232868373484578050496163021408516820285807000812156207510109334074620217158564442207765548943756004765251688181724883990362199820701318716076447519165290085891136777908067788643304164732685982859180860815689322050005934452780839413985249569511210631223044702553637222759332018864564675446800737781490752943128023091343643793799760580562730256471268369070577564938284606572344338301187645280587021177259755982255729831243655069317511706454982696663883653118873545362759940056210156003681341382138464404702080248603062019838698284340056373537121209678329481099753400548136586467508275967293446467419054229824437172324668445564971324905026064866699133772451898110295227526610438804829837275198914047307609472510559308205652686763438507927023361372455517747726433624704194642308525214909055295435494222366750057897635983695491264900607946604009456460637953974025084889404636269475512604455220233927394360227562234691044009019944786731740499731595966387307449514832664328219139101896895121432271459664714172545282037050511692361351494881448234346809904261096378452622694898177860906931381827221181526035014248531177139416845769018458529300612240086841605339517592867025199299616247830629291898124083250313017355530419926018107071740458341078234949090346493898625409905453481584261119432074075629929697273119761831386243538911921132016076297929160607780577148669904787748180419981305914815883666174306630191632373366196863407957869960414759798147812176864732228765709752123228619902671825931296242296513951804502341700390256603711612237014166746639429314986789688171228684061544075586700434791571806379622545334217490059407342339716082287338445150138853733598062927927612632027785683543903183675135697118521908174718587483093212022658607321786819128221453710985570722691633017064521008767681113587852871834585128025637407521192954877973584683005101535262522218806906112268098123652171414965903813041427209464616084868061703119636376914149349910645777076240793402921126780485408634236907665934630693833665803419794150958394027929870604410036021581721867082593420177383721651221583483472735580429873669595405863236713546211014319157107912540509212636499441220249059816556766111886210302142261034722580456514197029561679652660640873020021587679104992761399584659470825219921024599763920098586060565627393448340795034677564595975846927750145741826792668790136497753645606544856193656592115109173331680671647298342007012141282678779083503165439973800293075812221467942832519068135772068988324447544505362341976795905223809187616227948871782373961155703509132225603334126809263015232828442107548243978205422857990629098653645797435933011649640066841170145011653465563754637701264354333477499403307047279562172144582040994786176522320795748838892213048905321446433743037823100666819954891675763982554175344460761483005736472763733292608581419434392610995300127220209036006291459077808228663960571282467031485637235521918608268710309460027758032006405753150414950484795268496014470559338718666568764296945970604269956046900603684174570949215488484439352755797477474842972674699974741839929953018235696148554975319508712579315815220607546578672475955818159878136756951199183323015815598876669406673280742760720014988577407822242390453740753738060637352821821981805261739619933410904941388902076573282011386640121359357412099272049250346044364991447271175377040979333753454688182719845297477089624764265933245281454293927611460684019146099639336001721187027535241654130858611688584858333408537443721526208905405407377983861800428651020991707951612321759206174659605567915366796145616701397523583230957165907794276790462005580058098256414925014510823336948375086191999953440714442892213268758678258822294699548776985876780535529118558756584515489753805464805499671531157157775935270724578206348248900271971743922089243501694927973462566424377913628416581201847384376547826178599099604716701948265114342420693982617891393064216458098551300339539982595019140856079662579991881325656262387256033967123157887736531476402817335006380751451211464465566194207668967028396126576603491719531909967534387292044361622173564116146733474729685265270246723030406661226291697317441629146287362030097864459557828753541978621630470962462603855493900874841820981898704980149082837210016185115904864656641585007890301708513080715227385778673487424041799843377341010011205603765183051874924895838578095447789509939901920940021672826745544011469395552942628243089200360553009814371763498198967169535578926510297704336215081163499703133895461628818010714062270298913733415289978926502964530093393341118508983355372157198613481906245300154142704054532627708302928256135556117178734573578010971375727915934218536261984490909622852974501886398547980483400272220206821087726858126980091582824806619454004562582131535890642713770606763122463135552022186703201106774470771156816012010282015582142536902315641536957667219888186590755763406625970674903910814193934333131491830442912051431497279145039343753733051894582432243099777607733115803618996295150253344686455455230349806470765077526320177591731831606122127616217758268915298763514092108972780095502184200753154101995178200440978291914342486323622302145732030917914081257321528377262029319848660359134161732754391095292680561253906933815571154088962733434721142749710615740906369364599178662478764031085836936456825310226680756224651979376103193739418401490032493717475582289225116783281267860523730610884995800450612068056230102548108506251676421471878504138273805397418730364380296486942055830939801449408054204032947403666465741404459078886686424834526808049944995696288037112152151177255700571477330926134286043557477666619079458216574806723745606055772757333387287687576903897304595171232123582002402903673164461451472195615221405594537059998344329897333987529982736892160166559088038426850193990271539239444250014765214084513715676201413872670073773964104415763513168927047722003402528678177780515156770483087357525338414276212665764694372417883866272396606994193540765560061309540578613017912324804436852501562953471996095592220661982070926429826949632451491035965721401353119231457172760129531082993825696431504165231293579905096070236898936765089398956038507789641429009244889192395193301141074311346943873371314152354471574284149971617909512495445279363600069478802599077862890105065975628043644012459347994397636543018306169781579337858353875787791195504741768533530038099137102248915327711904225166384509184711455813160277726879879219794135683213524758241248268723951551807340709128027845304083001174081162580871049178756405645609910557782653071003451410697244558031495793887427065264844662562152497841131560328014153884234491812401604630242932209636682683620001227663545014508136294111018224445458770795040838070963805776056487837606290015195522035461820632000156024990141625895681601278167961159288796206549755392132923720479128502316106026267188903050410026935408766036815279768988861100577972942778116018033730875838604915318087235248867085797056490818036665961490640212617230151774506368097116252413136694127395816984126188818817439361041255304146031210561694385802494607461876375590102785891905844775186883659680624334587274560342140673829099981116563605835986613981338446235738528538254794354099471376434661070117701157383334832716803572231240040339221055767582476806565888794731028713075828286501182460058958331841487637776663183282958985294597237208246806593701465372394528462554768565921474997610034272994032141472420882253817847695377899371594644484429947657294637500375716079925332540483149754453370778563659757793836012432371591035156382740171062331450182885312098498222379312585864739792467756399552014495066315729976439385703994626691105297648576752807084632893349415725799118712868288023579035521581484923154171180657336965016060617867207601181270732672759539923666739990057072007247614977793047824662827883541502176321186847828756939075791486863028885023323448220187052852213839440509584297184166826161398660879081596454416710600933319637274188117363126503837023845235862181104467578013340176086087824977627164475941025724502924438959997323981934492251396073534283501643863338817943998394416021871094300912036303699816858619008144699381066595604662195176633309319000541205283479688976935141469053539053875890861947201363501198919051508145618680402033312156237972170258773568084443447782350050730955692709854182968506016715161968561938675439353851350340575215739118944947342379173745777291309383961590564062898330369710873797356242051453497706465295120350933795111411616097122604314021671333416300086109495793403848483531063083987928151545173887301859480400252876379522902751850500587989067850328001350264331028891660372661444277999916479391466372696056949342868659000654937241594823075440704171577975206454850639674359836429916054879926502963379836085583185544979261621855649263207621987811756308082618119617253193188378464336147915108522284861156956766891618888638587889777112858999734117585715279215118822826096117379949775966024441508913014477922907170986690490145471881371750607895909697747563202123755870221451558650867010968909900446828637398086329444155361544823273835009295509121182357301015746291027135507159763903647632060123700248978697023196175294247504231216248255078514677219922229759985528644193074242893587783834400191630483311466010296694147423297240561486631571058690066566700828343630819876628872671231426123361997135965267130554157200885954437715834725526487093959737957482051079845193069699589399110222359474171236321781343548390233873148979717332357740074597900395603270020720621991422416066479362085002574418630111812088948908905371555578628331442472335868520939865231907480553597616997799998606313943954573183913800497098010816773680887203006279134602836463139890024007288866096962270676170655072982988458013766221177900449017101353585725156307409535851918032143545595176592714977121643941514402922104324872342889032503239930889234404069545673602103012346630471502594047897553367331478494209225237042074781285977822831373803311135981586319926417307583079484839623411151828440032705942199606903136298915742554678537252517695038061124235669284941031192301262332465930280401522293742175753709171603740903403120086692030900225823062591680401580650922664720635250358025103906858066326237684862323463939218386130369385518847464550875065402853014846800557423962179971622332849419339478946910330434158853232169040250719277067676355117022706983820366590279619683285572220131079783371822702171922028386005741507610896163157252314762064613107996157791624637879947564642250435544395507493817241646048184755255866880229052112055602703031454699019673791118898607105264235450795347929512997728859964536220384732495290495170967458361166430197677274780262406312162351807599581432942189805604877148359599478903603579998881829515114646159184698473410804569254647163825034111343635304869446644523338262746189072361992129770490824492313405805426696471910301983352804870412656002097225107337321014335624607200249641914531984010875566230546712886364322997687447717377859575726597124648426130747495824261357809926121253309592164529983052594666879705793478544536758801689932525136868882513010652857144459239178506484857441422006931916360981545269162455699854181302354686819118648169124967012157709058971238658876620003164614294575124793867280386056004248321062596252485605306096598188398150161674433955241834857959946959180747474831111279031414793650386360626984407124324814683928309005005560415058602095649752170136237399004735120996969398028602004780819596332834256804207885446236005266822333568171889098882677424015549210786143930663352917855249561622449266748175737416288482527133816163491164141284572082085021103759513873521951321405881517241468671015714388526564082530075813204819728148379390833031396712889989968599151024248105131030936171586491622826556512334023929565913176194044006936419465633613802631169196680298424527748969299567195115372140999117459469642979317008453448240472153042233001183159165226966274354691617054519636251530370598522041378854586862587769226561929234730312811850293088081339134610431327804009617677799510217568318051478352784028472700218493741579601418150836464608264133763928768072211591004984027293669919681514579996429441516184896676035111546910899881986120000547873782161866313324837067047853716777829389173979538223965769262971844590713117876382590263912021336025613937457068061243146787442351807222483098064900827213574570981397815726388922443312115823615724276026151543579667185030789931855473252078785086177336822309498607506867108063727691073278752473572360299378754145401889946160703615184928218737772547905844042981319667279734299454884682787593704683767585588278124414854636907325552387768890629251808027531787640528335458638201561099104759045256573764168769472666530113443291065510358621101929619397633882646536901902022086413725964783889448460457608601533964414234605582156307216910493706094933956449053868679075181587476408156507165676819468593265066063439557952196777673316369017135619120384419926934728616061215431665868197247310550395206323652812791235900319318299550950466494048177968443613259498020153053622050108863084463254269111056100507871266480795705343809242616912280530037585644149271622136679061215208819302457569930093910253758035698186164177104972899993624198469741297463741261874049474255097487758938949684800166487325712308996789310117921263101572428253814534079416211159817077506060324435233337111031827912840443630194522538460466412412272107979279078051002741110960139254214247109284455585165262980170596552938196294338886113986464071596719544701209764902943371987060414124677342129209700852079466561372542041372539613641518246304673039292946637128514712293253300282273032950517528425741329118026984029236442151772675560893098845477392469455750195741181040412067396305364269192537043413550492636439594525789721949382608649809140136684376238206943663859720036088831065281716541538413141936961711295475767720147051801668252848265378943389718468218083188995912937886399376054100255210054846602362900626003926858000500299384987262938873640235603301040564763930390646809323500867775571309475224742862219458757530561122411554041915564603208317296344516829854840157161297350718272415402786449077745405473038560883350607040112537301852364379445569483616236106884251088883604293542962686121269764678351920023132581373866974140809555758089658929898776829607555402716301380453145931682570197186717405011668846465035880617931103677924398868913272985905016365031452045555132375675619647780005447860966098823200275951303330124994952499099038724175629720848853316052529867253382277389811939322700284907990092673471643672530568821347040849578845329628238852980711585759204538450081631679632755127121375153649919258489678273250955781347231965411975807222756305043648875432133473786482780853223977476208786642167470037706210492059288629504217600004637951756664609901262539211235856080964159106149253062686738651379962269141861837926393093813833062765420905280245981389987977264529393739049152183717524140196850204210923343720897549475454226698413016777086115902416209354849047573414646987988463465813664426670325290917226706892518271335976755037397806840459971695870794039141352923478257561758303851783951655058657547138872750387914184611898698913461766140559782988064379092571927788105604277853955456261302439142547874208179679422162160331842410087813151896906772433127380243925782494291385845561030020842901448076803992175316753986014378993992507411752008906925088677477522157081805654922049127841303876982848621735113238320557582532294056454704894936937715445571614332732542796689619280254841298534541419104929237563214809896860392737424616275506643024593545900612383105499394268124972140285118280358056431850314969764484924725322279883293243795063618810195842318206828963354416675969653054852239475754571401185734242720644456234188054782889012297722144948092271361412285583643895929688484168731808142606518415448295695131371407972701016171429012482140066741872893739607382467120845802093159806746173600903724119551611939554036845744399017152291987167960028375489392687623088002697837769422254378679309274577083800755843303973272421152514632655623113233909877062369482630291236707243866326000080444286102246122197212170513154400258814104333455564662701062361255577507395958672093422280559958415462195469379293707650721737786295643914868067994074120518176940650318104962712798946159558023396957986755748666754389569547423864551282784029993903365434680493957519819081995658072198236497522544918846115628998871928178340025701746115311640234291754607590724551746388302038457191297915903065022975973788774949622377469452787768042922049104660754871466710617108807528823362411254995233325896546440203288272696706147181742964931176675308557279375989617734042802212382390801606244203406509627973686483200055798726160874186693278763004112788665342926065806629330040324863826139897932220327855379066798821273330896704439678959472007150270521169112498615397125388606096732108405367567346546466837395267483093740908656286581151947785160471657669795049024773259684658576380372352675462023805149850192198450522731210110922758843352181128535710518474010778352479264795894309354272510184415087850031555537404405328768347271800012863179328126377778614066302209079292106404115896540286851613929251778242683777951973083520859653835422764573228244219073746691075793081913155355728228777219409084776485744837000863022859117480352570631300241390910463610696124668538846105149604368439761829507079854921763338753153722937228107307340411369131169535460769636828641442495551630724857163856320737438162778333358616180398979573198778026614874222492049844986821176337376388019540289505792382970147445110743087156484188404661479263851490011282735641007890002889301479698785157518205388328269014545532918252257601152916712465704508405313688040169012732147560438071063117891185577724233300067169577346942199177231591540578587896812744620263108143896105085344903962702110184273734719216125138195866119804887425216717777110912410358184347172193432230958007822444869471739891072349213500909812816718326714711837047438958152696601192837818329710935832917664109395129339752216573992012076863344635980946758193748716544082487740537086675025933653153274242944296702911869465212938936995217673073489347210299235783370158705015466450192783374267738667017661377746719925891272676023153872423737448224097475533701398719953860049354895510129569656611753302791467092183558382588343179053852877919645303524098445278857307062330596349984049111203752149018923511795003393574800640603927290727734952729671682552270592813472430749236701559608798800959077327564333602242265222988230775687108175557536923358560634317012066061331973481834674552494778984948681272617010178605216606466230287158511235976994466608375334807768339129367790940253264585143196155012476951342407338762848481051023202891351714663446763741365509446149740355505681491106753977938381005690613717864598252667260604602630669890816734514633185696731291269048266774507178792970115312191196664829616196075966683172766058783066960575818042077920483740112010780103405714964116475773091951690040105365937460317181083526173895734119874247724127524995675032474812505001590024572673428911645376466624594563583302680998880304863448949371900040226804139930391367836519855862889390573046810708856366965277086354909984524617020870020272195831694459166298997786744168876096256877425905901852133604897994984560195870108147396115168882784937432976501804039419193682550628220506440698972567047765799088879244287873164306212530882023599382793575581957874236150861272539084894096883894195104006894068554954068340295951552569123884731272338201258096750731011739253193156643963195639494350416364257573499286605834326222514111039893502813918135924240249798651300516432727003740627037396247184873691275375297900991665731856343375544398383970309130402276190333329799570104869863931510800345431285497432694398498310378400267931310011863847989696091879573367442022881031932921666046847773199130621172459406314557293225689963291196890602315024651714161283020089444598016313967432437523700561934685944602355812408159581359891219883068854012529071730404261170810876646520486754517284707005727110862548332666874603550586275147658350516116113643039700303529386937534241196776786755026283306641195384081540821579720343631576812120004849612589549842042434901579998621594674388524184134015721870737003830598886042002091154316266164472840481589649776566005251095474920768542849515804345224234430691497590056119908576215196870601660182727394789642791203419034347794267127938781971733394986663547904250345670545729634919946199077990747684732948900271794522464551413828446982922268312558701488496898481421532958062500019091632054372238275261836979501078889833499564743342361488999538553934263226719954006575597090763580399064003540924491250518929906173160657169015701436611626288398545825277282814039030928995282211290553991969764659931168003722098590548680399831300929830478126865773192506207562438757966368677800119613471561412013202201764754138144987427936634858766269610950117849436329844893872815481976125324248710291850055399587905061800958459061530252568725928814501259299845247978462195303623611471392956913100622561820392299212609137046211075078583673771056073466465759580591912914668218752570699657530442480935781497890166135379453449771002943126223115549499370949941604197708692392305387485582078271469053984314813015044157080541057879559982012086336478661890851151972411452319159310613316005265258520766660148324767935785384890120762398506763741705508750028042249841195444788823091985822941483666638788516680074235597349751779184925170977588444914225743273898705980368732862743960600476291233376252656085441656415947139104167345755803620573626925023383564200864088212757880042048860094385485794304869424213223320871392672669144237636031568729798481535762987673539417948708248307608835354456608032967283642500246456516970902631506564821201114033368947535816167641468051353866099567634343634272142074600876824773189139537254937351839188181661116099590599748478001984421734243425700338869835968102361245401555582950303878263441693468664600307440777611814680283954422282908058950593267449717554321916286921521016182666515433273191349971185310524120115788922946769460900995419486266120268312008277724715231166754782627910095513542912855797285998038847915828815266014717655988324906806276585697138234956406902358386747335756498529873127098465429140083963966841701947161803410055171563732930182313024850298214067990063668454296856665705406187561070490454884515963932582324450067143709046679454219727462352491804817505882157402002170624644678555915049650259030741839552855098401515455721347102130148906513240131190034560369621766062594908028673611278149009466127308039141059759325600470568237435184434497661037985035303835709684897472421713698322774459357589923006747789603865325725947666811487699571126287376551964555411192388000473412967257351552194316684107869464716291086673905463423737277856718328457911607783985188809093931639253515896576097042372352209576889023470079507136835155546644947504227571788381708432710702544208663937613084672460909396573925479812170626640278183312824040462604732839048875502635684078742850366876914484017115892587322892353728929873109107225504900937204995454541993332704176265257030297363900488193571495069991747004172416878580844481308256088466757244320274293833869229606448400337907597640443540434134490672178595500449704346121024946067684837168272801040834766804236990099241023666849970753633482745346479706438459468162077570289323966773226927717083370680593426723289521742074761433588972476650958906669334492264284727234320540857492955667210259204946104995123143678237284845192358887102460892230928331716440313557515444265621630848821061453753069587942803182195146355251165199981285885556824825375228666143880587956912775126291931174569457374276845023589104479405044988190825915336713968276147841561345716561343949737533546516867114475050770475760139587664062498314436366309845684837090569577218965013855020289164643119632382862802170702985325697400733614066809226088512045834233377339044348917479664186619451327659649476962381065026312081589861338444992575688718412520848530806913425005385948516881784220448677662785100632326736586528209327394051914481613526543265803473031193167040275817799336986684846342656891120203130236658659438998803024458721474445063988604855192403878260984074347824539501761571729408402024011751232468035536276494770006185619184015472365478560305968588805559691483693621170232191467820537730374867784214354946488281844946894043356106974515454406438290977373433166783667296115933497759696653096782912490205145348297967337885767437075898628897122111542612415667744231457333363759478448432401085130870958964701183788285833861900601252868950240238422835520845211835678043778212300884461035249200935191776826828655644802199924576396444846005696428501596422524963171106038429927485102785271728011047950687181670112691962437583377492147617648183250981241440965128667638806277303907230418574306274976926518206788073211095180594605204703787566000845157712938572816260578460257224924976260536483180242285729505037370216946718284652117739331436191477205748320710329442671266167227721211607299202525132327287703180958426661077321485361115368030112808000855470082451860773953429952391327296314594144646443490640595130953936461444860472968269258533408114766167621302664161460413442163938278027414716719765500527752924228315239140744053512658033579132505785626016577074590169990948393502001874115248337154058632325166017692034044248702489762621465992866353268795613055876518974468997655669191242186276786454591974568855632817161137275428340656555305916752945005139697561974525153998701874199347931651633820133267993497309924968601934794691052298841924329600108395850600929218651820458390561405044141821877001912015622299773406129478900631680194524261224676211302958456604196064812504147395299906905574477908045637901380019126705781530218465728353757107509009237502787997863273109769973751673097954586766570689611816572254912029816974222467296885268396214366321925224572490617937114095665277871093527354141939847342833703334953074762193928895277039462619347861101093292711713563888962780063211079603882781863332661954952625081000464724492172837688557193083962941915772354840027049485454427065497846656815844005399094596387367206635060799160515242913541010477733488949880419782176707127538503340061560098160029154752433423086451301374289893979661667511997426563361822993166454624478977540826662475459168844333771459887961667513892184341342513619529356819482622097456662260279531245731036033802871346047520097080509517949096813728638131445913497982614106641283035206603778993622449898282023892512096018991224100735865462374070595625661856044642421471216085301926814603825327307196292377179626220623322565910045200330122150819664458597798425383090332104608252167281785355683387252264100612436788463291485447339082610805695184989443741380968086507189900141244797340753430347928331466779986813961007560095982918077222813028977544762161195039784690852577420849546182873892475199765020003664833009218947376375489449737886719646997716926595331794894453128018086654429596166126797611161435980910353679273396203741073053446291384216810375134264684540691521603396515840196405297401272948490621945912328356487621950373948756610452854176016914316652583455665381780392950970119747792402581191390468470499855171451052522461232814636057380332331719423053336699455473204454158247625040106884311155962605729950891810647776285312956445772261812277777937418110427728053967313413141818802935303000039772804011569170656534069210846169996501661664721026735799602040374885965147023122953208424081928059190401615577075720441072582824228082033431950133496719690483758635979400774716427625106910648406623610796260419694337887961811399307929084798014405062288744061557658648059962548271881546707935066731160293520279156585633501151326835262936114160988347664063168417050354757567570089937829184807988826816547055566208701703448327539370250950625267054475357052082045431286290194101443774034574515874926411193358178760541228710365442294105264760684421991344486492571705629280224218880012993128634193295719614754840735037311638881711311808544262852354893910919423736216327695211640275451515190834753704268910448977431657200649647867185598149277556771450982024291631791552693663037427948133887735918582514995452569057682047083609936329788005198334726282892750616208807748760595115923847818781430709974272256383590561356096426601104021626932302116756768955887739255490568246887833350482216387299681824977301934240128595724173089396924834455375516927096687813187987707486495438891138289486835907108869425861368941208943919993743559034145412771921273045009122524109599543774650809811243664333092983823919292064541595275438135333218970455090114289451545020289725685084110555182984090042697623506061058370478108636885433863676553040311599563181776124905176672380331200887143368670016414066274843423869466357281342230166025727181773549821482393448114512914519188651450159446803950718728529848822493537956784789518156036272979450114143611325398562294362705777498568421074899917125479810793485919627555749244884058774724597471179655880449988263192801541842158084425416860867717958489775644645869581300843339583935751270822191494754449307095694842951320964252578456461394894492678135648825686271461138720381232453437122936919848942629251975137252921593404047929243100738274696667944644221262035415337884014606241189594534322715547484847036785231655914451357546710356816806597525697722728614854625713631152609823626320239028559041145244015111930300621639617052614736303508673957073202949048864110160978724810975210816447838176369005562017559659202474587700550812640223774636727257391165316470349054375444779997800797066551131365032044267228314845665609411607828071754744021153304653661037691966824438832560766920298961447381487251177681420190511147924965298274491763505601886200048708860755788278833115301490013239738855310777745978199997319026113552754172293476539332076723337406301761002048495841657707542583462057028346759580113961565985752250735559386900988300254552264035457577101222995821569215838059060180780160823997320006966510882532724637405905102031173546210053248098711349915577686752494361425924374132233272455160755584694094889826324125669428498801157807399781598564262868135067755077499951431359447881720842668690274895760626579368310603399418890282155375052474387943320405818361136376679803375925593371296601508880703996051440390211047504615776045788922819106264399609880114719710068810811398510329721557289992891941494483506943917092714242951206868676399467693922752579514607563786654166070703341333437816834209548348549846437619855585910243908371491574609283795864555631772644108874219228542530038943418466501023923716383448099523037150135429492857895745549032410818834865407512614041001982505210338332869120394755055674097231570130905087838554998457883140751889654681301129904008970154399140263108819691526121526326243251236446431699495739315773576305069341563569764409286134106629313053898040934663894686100476402603426227747769752600022018271559205547261335351908048691105855109085100235650004150636567721371803798795528663594245262998449473253735953886406298876011937186346354180820034363501527215850872152081626740990408892110061618879286690341093887275240073348916281638616908844585695146412591641563172242631207339684543292074545348234179688714174303204750848104364656246882575361618832208475049436811242200416155612238783460916842131353686381564866667555829160585694031262810436211975937180038863309057648931108332260649243078732282283538343029918380234821405045437810198981908216076811898901342523018776454998880803787737065072806540692931872116905489770104157456255503910325313349144232995128630020046739753853234218624690428686049542799107335799333938818778740155806441957745961989921337227810149352537454572564321225716977126537599704693549284297328446935217265897177508277598699915831361472379954458998830284226653817675609446915111003700112626960367835401308129469852271079264905747274284325226126558743682380605969972545470581958482253054850162503021387742334394270197371871300509538950827549289929155193996277649533567962737920856851828588579625066048547980659018550387667022777975475981665792715827653015718553875831100038430192093395763955413861515281001339682278690590573082261579864316153238770929126113692188956117370327999125053862088047956856101974492675243322570694616339861456838570615158833527052784910573339679099347182850445268993877516504249365601356247443808445170830324069422072975755222850521233524970169736219650888241551573864598623820689721670419794222856850222120099653025373628967899624899202568799745020948581349946303746885226121573623600027376500957041291809693057357543032127471179288025704005306288380060293506005211942739670782615712863578152918708523164913776575870132534085106732353868190205818070028013657925082346814407609507782288108666277018819414122225839664759946012863607471542604411613346623735384604460846541673317122301943986180406747705033677665763567520667705817320269454054441074925716712744850576614084359496547845400557553622140460938596626148095508478051776202736478430101786336373666293045417914115451179082416631395793865750690523307820460323880524811739531230340111710635710554324427245022183881295736666377576584816420637778546778532079830028116114736392275963693607459911353210224281134576790826038630120966219072751094835576501296583938841365114161571697696921944440250065180263789694661457075409147409295356481899972210798601619023310379477107872213316455408650185038974311480415609668790777620512844441976769874989151212658626739506658777493642047073706291584038920916122452343350443936925830247297047986932013549081864584691108856920501280215801433930061533065965865916158951961558535803316601899635266449710329614233941465088899281177592735982036777973942227823992093799584681698979341519350721606654797069057209267587063947946869307059930339231244629380226699467825315463383498055057336770319445268465703743273326756412873722340715331030089650884939844716488717529124431081255318011236152044333006858337673171824956380730691214731400155028250814749510916316672376833495677149054170746832650616707712968056852974205818324295293743365226772595903408165962484578565411567928818890749072334851943885467658478322717161757921137846404761820445482791273437455983364186031359762148201447086893794670839558321301919205001326537596456378479786787918619611285481286416738448328189085529799435704574143851276469414592874668677497245839891452991446649711051745394526633041671910338912160310262584567254144200766990099345964601280053353296785048972116004867945289529347108254798031957848464845172546335654454761879180524159694197361011744852307310334372984855038802017221219524162765295523721563391356476842656848018192743561794441118108679607881132309479256524152663722196436331535757060121840523669469376712572742059516298800040358837163775293445346247847566149884191241057964652749105331189271802349073512537282960463106621325711701565385181594932290690049542428590263055204043069599954654336711378339999690742001803494380966171854100704317451600165142063341050146914385162318361134798686414618850620109996725024023217457453480483860982753206268099226256516180486990070653097092877707860286063223436973332957418889144114982581571499229665053781916007333061944162257471840985792423487962107716143325541569942940226971693088493839749873467995254208086401436772230226684263711836773239168609383955620863201454846217874540629850478355255981686910320532498149900031963805404209533968533741502310003745850887767826062941928075344853895935935224156581737400921552835729232389619960005461364535837505884293807101123858078390115060689330135161635378322766420418791209343033469577294517242144922677406001539911504016332226334666294521504752695459795462051854818593487680427987961884619362595598506383266150884367744987970514728693391830554282185980154209659580590766825247690093110975589407794086213454871918246679165719010055723522623039107677746574872164871512017004645826931647511690116530974771503919245510145477965254000293457146631725999111669201784652188050608440495814778436972963044106147954062123680413821514051957740875010130599906857232411270811755015681123609950597997455697400915463626633465669708034331616315973849698131330165679696089689037793924259028035867214774681898729962513959369937765520287716173865907913968305237643218995215732004387326582849115670598894076254364052876464756901493675231714264727671348967915958606507132411754658003517815663054604457560037980786252052907516079278247769811486380714836324806111017281822253508831387353140337719951789327459983452755526881589903296187975925031354983580630451899279495239575709729284523963651911218161935305918168109029857605678346676083551027220981640953319402391555070019032368171801512323226349998285325422482794467542221516221428461255338144384804650097867360626846495470854584116784124266961094586269414100462615746977220046727441046757712346518328627851429107146171089161602762387043051148031454479997167461979244148629916819801202856370398881158172353123192257214348493617619844146078641532859612675482350029977329548717369753627693991144708560921262588735021023073918227115206363802385377589135336114325046833658799320406490969498211144450202271580244667614553469572807641117498379137627458294411976099104882584200346949581704364295195376666502373705509149648188051124423952373457840606327291704135024848128655238834759854105235239740127613674719731066396782025186223946598199142651842569943445052941184609404003097746580323273125837238543216917778938490665452574487497169783853275211965911794008870945296496414577263014112403082590432446499678729016242618727889005043989470217906140957794423985093311706878053291763051667695336398003617957624450070116671873798169326675765289280184627070877817601378218717154762405645775780563919280852423272019596240220426144751626284767237772286613907524853343613964541889231497232862017351922708422376004790649392274065730888998146280268308344512472572704316764083094665312645086643875758597857571663531135060097234171649389506653961090345501114547724065720145502850378926672314383107696981299944445597369954332298651341904495173332403636434046445319533849746404212618787355364081625491344327196991696427025411342463526202031912154641971023136698439643771681343122049766613284736626500235093480107707750054141157761383592228407680290949349602529682326883614801211052369199394736089783092796179577494172981520615297626634917826262617780368536560074476845144400184476628771277684892615844098821521549589762986860601828567778379637109431170712790532560590125426474820927840345710036489897813009628117977215561929114937202902678445270805409869292211556016954035896768907075022307042091853813319462419922125938364550199191794079681919188200009233987878796669990366856181402730883837142842993490906421803445529396846448263285416642795245811008514331970168404286205591141688747392333166169907470105507804850329719613038977526841120147004095786580656220252392819020290439868080619067415764408871897145669072645446048803784183060215978079208459052858703843399830391333512908693555679165803430060240273683746886444267029639104505813604274902198952714919873585900484092390057885161755918733177640529324782555851500335325607012357856337375252347235971655407416849877361894713302163881200046005520567993955778059692011401079954306628332392939934453322400553604237513366356491527934802489494129125682098720684316453887384812723431874157982334075397957247661764026258891850828052458505746345957633347791337252003546525885212440995887159849686181189422543425224252581846025818441398506251885223568767039239862508910336180856514924528049836747077646150002622082061331887085222337673685932466253843377748408180840118891180085704105846784934596122438018175771430647210511720946826684625003331017990562843265734787050940431522917665800606011318500186789554279576471385137055344642472818297674409850503541148552159290326728775799606283996203765417106024402366950813862106937597200922906207950081712652450082825311249328353838044190934786416784584232123683916873508583250899710816783109193205833632400864582954933451537778670949891942265654330576563414578195814779119329026442209125193188479750642500247710533977168335000343846799056895294454960011570886377229165079571237101360422754276596448671376392016665314811620113682828311295241146035613187758853331491251676957649170443688946919092702092576343406232245606313903526141689606801977285909253760873764282453125161783041291883399130123417004997692628697489300671527073022495112789631793776420298110232925704223755609305732570758556179639794882094533488950486546443010283679243871644473204667353111795555212794429283940752752490398503890130839579996297005212900558096916291737901918215085584545444522364275996016845600827582185037288299154351157674032902505003116048705983507497232783203532450499920111895075505512826169086084111187864022486359131311213699919968953411127680284806463660147066134553968772159013699609595855655730534045057762278108874202677621004736464675643080772475661268033947088767693891417502325595430581672554710243809227337726020639598717930618934281502401058158154194182635639775779191014942900471594235041956267785937309011946483788401462199526262499952198864966073187308433830734342379816738625284760426978250728116801756802372202614552448181079388446230624001013008114390453199976047191298906694740651630013935459122381318549781429757392457872631722493712631815836041493149251789983876646962324263633051174549162777434009985516594820674122864463760420096231908205937900917402612264001516656207078852089453692589181337267821225906958330391436770110854844838500891838079546214742893018152802984119331026488403451709805144270502107781901975421755137839323754683203380011442575140436263108093403833956300931087825352454885534065332393731722072093024944361063585753676802119760681267183451569951854767465909941728507107352489002862971666907039765207893370532297546424044384991990631168976228023670950649243583454819764301760980772465297517945134480209610771733517576792882794589893351772965975232808534306211155131257560339745967255436385603251351265977194471078723110684500155007319224908684429941079350138569720962624367421554624635497354276863376846815541183577013533023980792815808596496488951842894546846761589766899377355260751414178721068827862415019400270233305834098204360721618831768463943021165894498074728903195334936254247400390081761169693905974607453314300234715462563936855978999352484078296975207308805193984568151785814735213565422017866378881513793607164862257701659713363130491326471513278754107067599588465678219122310060348193144203678571375844849466612813754101990075449706919740214655060172520494416421926459041975489444365530688132316626037946063032830392180711218845323805846264557522414346374195178650446458477005008777672045332877842310567206178965937915547423524477557176983043601470366531632426770421128659414473880394770554104015364081458823240767004695125231031562435278814138192299410702727616521687617747970977645937767466096461627315872706147345661689453907406476041259436154806689206468892096643027423007071267251208033279981811694799568530990952693284677677470074798740138263100327292220582299265767604026438546273273613369610221223917058540144438084184446365794548725484770820725589025652593945913785674391645699775874573411904745810411339229085797548260932646308766403251760621867007931446098700034950403298662640294903479890075345266359653442092604919641800324665959052758362424551590282616182568836406326334835899158293083318855317717810398419001114410878619545525515469381567128487744741881004640241449965538341101495058709875426710117198452484713404468097087220309314682602082722874785443344412293124064434468685580311865500900073221662280585457997186879931878698931228703331298879909444138358473865326164705089095252598500206312079731449980725453969716938282377151460645651374874801225543067640362201764855208320928886317304607703128799402077834035653750429188633932921434129394979980938508235071946836796836418485447910215275213768535876803346663174671428714232717295690480031281499183806289546970265811416309842220354993934253230234858675033008772941527080560565052507110079645697867960338668995620738208432218650701621493421103238579202319108622868801335438539028654087874405722049005472838185222240931474450360989970121140536867060842394478133493015729386563399777832039319429112637233401639546280495884212942280529194652925640400915763906231407073187707692016218906450681491028211767878326007480841153550021288628448475512550472920115752801952806179350541216536990079219292624938984896633091531987609406660621230314025000036684637469459178294960911498494146985157975251936693339638361475974984485876213070667359212349316621328231659254449968798689563440099603153852604322104795876499225921149448062451200163864454403746274224341413266400530938675034716007569711790755707927806248884037135633869139184488141048093051115515786754613705917238128010834342779029169034580834926417543112728838459815171475918125621460445504003437665601723931596181177166440144314282537240526270663242914552384057650210392319978176393309430889311494769423093024886703870403392570396506896030353747679810310636998515005374450015125238587067276788802303431415969696493564044695624986681686050232806159885336797015815580644593568622808633995946215436155406688704130415542548638472856749968830222371167718103260485972071324294432747966109413574480614514423173698014267367904625287430951788578555276263957627368199722436504143452201679812562834485044698515420413889762103539271615879030267773065948048388744611294243486023366265082233306696121303835719699354474845526619531452505328658859777033686089084232892822042598842299902979189846492278858216126334736263355574825576954357653404245052187532429857369919820815754184339144583438936581940576615058215756972219113970273785670752478746019336646831258823261846636252617363082462023159619559496103962780478693583904388020630078454593066453491407840801435103724998220971141528282298105942799173528512109172216433413026572487000717576475904425935131870874799829781373586347160929721158375169173521718305251462381675475327573494285553768796245668919741360753651108153402122005096120261593414497572740888448212819157100287321840963554417191713569067090676023674754950782827947503281376956538930571612001685176202409591399599601324548841347254235756350483873097594579896240542822351822700714856588687229132615431373066712937957492270374133053805214122309056816887872147592211922155761302937024463698005264489601791253339334696693147221794422467771055482700600960349844040471524891982248202128165601588132152292437780679087957415817141373100328757500760485666059943572948754407307851667210543762392686174800707449743118413434357586621434232483662969694810037189251301415751474011217665490175477325939039545098061852697158808361995460706792522219102489306501760092089024688837910382895783054764318310878677773280444671964725746676242950949723742097155903334031123782731733872588654258037142335269603249192869894964129097849566197996299643462978120144093592226658346837553210221777923986376779315616142425750517704397922903651959805767206260848079672465849594783379328087024805570980136403385680844227560937074941956177858679730762642450672147472629650644176196700800725663069968647748399410049067109807637984943470979834878654113636549954083065411423879791850900792327498544816941689973287323323622245778535273574052377295082175209621137648925399256946483809899236035215467567814845816041623935005595487542587571782679715680002802360380754333540255472165067171533676015364776770012722016233588368181693417928672282907685129256581346719687734786123003810871034619589261228418553171994430819303573887520145784171479981795705893297507715015675733025708003638494376040359888695247145460285974773152256209613913568220167064752117851340788262445189575330833784616392956359099248369825714212660506210981497005826607312224985401765193130925571155386124757278540583502191332908874653978653377875132897279652530817491390693653104356399854824045890163020825104824141526699786579849525851792400956400235951150752669348150039672678682844088106838978503205313878103547759876295809361341289965736213198717469169819843492261753270534487013125225689598007961837217377807952082406294888603759802233966323354946515857458236056635277827297467243376525130009561341006744460260758214938111597005438962865375161635490164130283792971776717323634942213717695444718567945384698088958395812061457433110540029291325737528452183029622866062247954952358451486049634750766874910669312406869267526962237277618088647004243304317021772781822313516235266265508659543323248198912637778245390303544837922813793421053438916532681649588563779378878057334473011442611738383646032145841239725230422174122310227296390122265581815505924596797355885243734690502759324206636618088629426144100878197439581555790719740035100857236604564190140516502754241700953637811368871997846239889034271668575783100506366633648989904469770282074345945106010397233648384582981511758465331950908269139855157446915156644729750944229103212138539589743143392264355665111110673874438672549454192872360862659053502845118805599825529444699543457917555899171052964442927022706619968506792030199712077738147830064775028095827455129318631298534455793235306314413768169871887922039428577693542843675646627857253645956705452766001244105653086353505782038484324734045317971948057841793197688231590485472176269128204362265492742268588911472377462938409900551622956766461004883878305880971708822765977975545136475053766694464126299957495278090530569853129325056417978141118831592818201702622059102019072662842137857638038011312381099590620282959278945619594723832228767975072413402448898632310403309007135336667315632054975707959144882581973229146788458689882839760806267810590840897065922731977485631497289570551974495217618890553800692881160723410076509447420549398044625832721122005714186155358789266738803217974099231685562346672779566754194104022657788316019778886053261748483649856165902917379598798968180241170730237289386862964744206208358007437893787620929184761351513297784733268562916236797000713401546094287025010490745981200788040081154803383876766594189876038365741786676146385905875056446964547560792907596200888524857253855254287434305946481103205694426933526754129196526080682468255839491779715172302593593730771091288297016592975580646933504716591482559085923598566459072242340423019314328813918057087131938381818477072050349776784343072748948482300847448004656685007597377031954291636003654359068010186074093566868661532717136574365521621348546320778636144544943018637098220130462674279692344148927245355993085657111598596006451613319174121900519115609851292671264729551569098389363000038635796631455151751426816988138975787009844456077824418376442695734177015526383032087252737039005258635939851500552504641402321795082164905204998499066438332005558721972151392525067590908716254807336314914089090862247131321292730618025923816450419816238318052792957712014990725845127185768314390968707907151884469820687487823918703735738466921185172690427069387733984207944786740492955893547391366013239345534994967030300851070274216005850185966122203213418714221321518524847470294554411688694851940104083405069582925925862069980498059101194037219954641943478778865356114295192028318812393360804866413797637571502165375828686568989714774140195386837383168795144703633956162259748997943704835891182598087424571300114163631855033666812995828856580955895302005366325023739910834439404897111236519945961364787433104331374171089469389111077258410826689061701099250621299077482666757570170675471024406302921057482315053205207660843210932177438948666394064587196937822582173375444342919231755778467547257812745378685677797949587893233222449696808760930355768443650586062625067336733863741936258213064776156777824467030502671543483622682946077592724140827293247023529569511399407661932169764061567474052033959282252010978972293514360897079332631835840937762365593082468121168300509138690076192706843674103144508006582120952672306915500227650877969738146435831987806967850877923216456980252318693787358658895433985960059527914778268979128147891691887614896058476011517434228029923113244763086636298870486717585436662837980204169907926514326424724701170682445439421512910903868426399191909415715988753237780548564468021998763936124195831773547776057955866792388188455864258717372104514747214673362162853162370872710854229143929978331924659010259092086333436847772679191061815502914176664422839527357344761434350169789488158108865191376467251921411443004719000042372810161180457590695806348088517888972664833984392220326923411473230678210330241472644127299267179388598573958087032760567473951535622554796879948315987241160369117874335086691732047187845370966348883065215947242111159956549737573157840869398948184507778977870964895070032685213292076164194674118690446867467646603847107082680023773746558630816901406553846823237630861397408870167584667265621519293364349692232683136341283261925756467913383678860954181842371428939569630423163229327357595447359957737331130171200995672848753871850287717672997482290171363738043122455224549357787167834140427140116157786436814587341568667244157477755592806606193835024720443644589128614397390499191214002636850229438850595706960075673268815919577195087064932280727541579135386230138754704161046741672322155260163438510850566298558489430805225916134819776501208714854007112064650425804805948016903296567679006251416412167033025511796684642592020913496660153739160406804440192771827644270947167894332297861855532991788946941139778599596274694725875289330381274930308067888146769918383556908746453820939662630104095427622916256663156994724033594205178646047730945171837958361708002941032603093901104025468216538287658591914694388373288953050974779210087455065320896311785629221761386542800918188831114427085574492059073173874765827623673734972666721581861541440719551398346122639637290865329339159432061008287351949483935070094899177996334988209351834862766476089589892043528043792476408625564986418257859895938405516465653060025652445987841445534274215867982753151703679509911531371223837495846170449755529522180863804702251865699879029498425926374619164020179929858875101836511289565381987705497265836073490326814770870638118386058042335722563484331332853414523316656897252546938229416064726114362776492117335833867276838983818845446660836377526771864679793648058441836330279660992937427749776587498227611070566940141812337828607514162817734305262645408309310548428622079321184562815976110189660613608305274946920255011113041356948792343524882149672497522742070359654898439852165914412233542883366985680115977079054130362009143222767591293938238146239838047302197084262602551309758309207102677937423390667838381717586775796143423950553320630204419772429732848645210901514150214608983451499171513172198080973279903711243221524168108156015101963577752362962771325727252692888200113599191970846481629644720000892127741316601318469959845217317513978772427735833125381767008799484130221154276466986488767421430181727490209366443663099731433541791470440871209759171353207691666701564144804237102223801043474779100820835639450450220492260607049884500510091140741988032111881124959058789770466263032322454490533899197995903045135258958216974212823714048443145859016859429724460267726881975913040455494126570242023545898532200056420476407698079944613778818835728920505994464934597475158493492666849363429946542999554606358095907264627661657700107340310170130943932003447814624743837162629198856318646874273886285401078310016202298499234964934729143158830157412307798627952089370853545560833510386944807740325123676487704814807947172465766153906491058415590973693846236176116192658805079223766905836814387977791897728194500313360350867107172099005493096206896106684207367866882528255666444838901827117372232893107065300632653041350342568229680865339174051133416422101424573950717955286589760872237921487111356683382142464535480471300555959957945627964760111944464070698905279349827673591841696477999744849401507407508596637753716048161594906966411777744121690571831623656670176134956711047173896892714670109344395142319877544698141138701967283361534140778808864481983649003879884752107256518442446095166988146569350908771654232290946683350209757114281833251094413660409891386813906729852555238949611776401939868155546369605221762477726445467181641960794372950747325125249671271105172657637389361174502263463797082308380188819734720768880001909793168644223646139871745547348884934959202639932240723943758751440551739086087019605933260359122110531229047930234635609309380611922686032362189798729914392511671295229816409937354646971428654983927338364554105930548828896366982272889552750849332025183780580361035022669754950363561061799939786474082500892281738390533256054331180752694611370770727452179404097862675428050680769723026241346917443307558881966724192301498354243202439284347873332722234968398415617989320413768206731738161657302374665316655881622570996270775536550102594270449551361911121926270529772399027598800247233391782720554538726014580283285921575159383572482462254529376373294763672371077868062418021735342176065889104171861316142487153131942249869729984628102562769507816552839606591163995095212281622695528463486999687193034931598213458224005510742295974006255691564279390135800775744130626502405788681346550187914815460890963695130137742556882204087922795948473134273454655365016717266676937414356987365906463315055062779467506298654092983138059465215084971796679010750366512860276650538828311941171238915047333385011273885116680548964994274983414739836738981012351380276405627389695904764865969012730912184892354390723765277364698152439042600188360607469772050532251351778011489952407612617874574263480994870730478613231256236552328514637081864678184315863909546843915964011565706981231586407900287108790368072419329492801815015953747111804428857185599248540404755718086242625903220147305063548821184899952825021973514165785397474008470898609498242012509310604702163621467832769221445913819835777299063858534781897709445843468752981074555749658617453100139129894062773051421402104031120030796487739876024886622330196791851417824938062372336648051488840586027145875057388855231607246901635464845237300305870034532148029010629097898633935227187864253646109045348881049484293069822334973548401180241058910386615780308385515612365828819875982725027677042558952852651845952765300704761898005397491386923163007919204546571458825423107702094960680481808656887992133158426673929163080366727582011055822126359568397869315444185484622767097609883991002977225069884023539720612019853525916715610592623430162447311768765531006976438933752661050940877518722958150225522687090848484308907310349738335338740960206299627707821119222067416492249491075260905737765388205559181915874041482138280284670683909415322233610787735309418158232663297061948293592210548570635160015442374982123903688801440323884722465623760977743692442633493855592775745222946556406633291925820486892297584092803541191663124694691228716170667537312506301077243097238275029830816777053221211418123873414123130334605355312474814868012465470593366427703091191468980949923044147085801416956504397226838618315421965654643404688698999544357835075877402983957003981812891468065354033681599517404362301766951820078306102417998948046718053488036879290078377578094340806803847717036743238057512664905854152931037584532271816430991411479130185986167714462865401328871227321514571533141826584919242029409022749859617238644221237138971502993922743318285023916468075778799821422270903016502914296239460414661666965045103313891216374702161976808893705634984685811013722357343731417749980244781738906001137639517953499440134565992400663120365232305031461204810596020723448284254103508691281471508979382516603806772319202367492559528656315437964438461943303453248793254698153699994549297375218052786183799832703056388801024346083961313039287917872366823915745587860024838173330555098638273790666988332987421902644239474219636492957035278955938060638827995105097920683775564469332969630193774969774714719345014048636820773459441986640204214024106682341632744200650541313778054926521223779821702111085363412112334685889613144278846896270802828796797661769317989678509777857293722836085742304760861334531889130080575135981847006096451455902352882653630325885922477388544680315887142493882671903016514936277830632275598843957680552760355780654725951989678707692297960511469572177946452661645954066806684443760584900927214851432573426710875714087420879147202219693420444944158976997643812280641423884698860360261930941891192758275145786445113115031748533674074320484566658700556023543082834791099590588929993244107603236800709354063781102190832617996203544282535223997059117560164918433652601723089322558966460189159371684753541733385193234373017050308651405869007871994678300490721581136130252728806839877473368804446937806974967713231465761231248607870335743763412456268921109649790041324777364643959966430689916883865408011011910538544365707414174616686929101800864220578187501748854915064610123240818742459902692647460926563227790183646015622417923384100697062794700973292303991912025376795115930997021656888222155953196247349019273034946579548001358465519140910939022416463318071020515215346810033867641218736382802615014176419346675874416358283726035450867180042631101958961696601547681077472308773249409072838640964229240822346295392442872502235746699957272132977571127810241567427763103405651076224215276410107993159827988032640558925978026693682012391653417585124722980174693544120970433186284283953827019481216864911354619786712997746913334236943439424446558786103727525028428026771292369467238180957359773170603189943739078105525660430506519980650739082536852247733800340831749141519070058718798515138461814151579789406828087752738243259248004653134880281416616021097424734073667401850977020960975428707597932198989545015995949786138849288093430852439580591802044845544090997296447474172703313460279900473196340522657770915768493042537647004072199451009403455726008977038768598097376695585874035686858182090287886640001288567847696923259899287243589729947896194893813327428290852138163536248749045936754207145104016695216773301325012216842771274340100754756142518155773458379401962997088960590111198964750059358548791719631223208726565746881243506004000759271616495159816004101207270087350221917207274888594321723135224385203663799130776168979663261427277582998265213690411805873328186181555988289338707507288276573431850963436358603764085941099651640148642703347807755335952044207456024744244360221630649042258854077539876650957440033899815489548376909883998328289098142802947618556573913050196446021168536563310927152117107240452875208235656204511825290057116282337261138060269924468787791581239867960112159869749650910831083181414413216010990737934127908974643283667206826987672143463528403859365035256480175815500326036499401639785012405657507713538109419410280465832637443760966038693662849327647311153109418903765823456141293249900649048380095513494623116437974040906732784005375312901185442535326455983561876787502845333835882179747084490211735351947837566763469463391467547700734135918566224628786470540976860473971255210039624160431482510702201220091990755832524669937195223680590311234970924989728987004368027092575772529171950670234588567579170808580126470896591932259132792750645153840283164909911412425538886609005193656290661824530216044569118556800383441932266051280863305522058650491471320085232367882233903453348845608694320243922562688816938351022255233298892968607235158476143473466220760633822889657054215031209557159548005913342933412083534182111980574931379579860000792187547987605675054087725740330712515313084962677333440356909782418983120694574970886080182847070314686186103654085441644715147528809896983203214418600649767539198883162644076989590728411383301704030089637838022725858237685588800225495559388094171582864143321320526674035819754393103788191511142805821244150878678565405696030742646548244687791546226804287086588631228030791731536984988698684451858465535292050532692501642439567021705973673228909304459104522797036421105441582198490023693298969129514879592434649498353417774348801662506242884215994969277381145992675849084693195521258900641111051246381339379800019760072826458721619901046801144203359408120588913557683599970906188553487337368343771010280749287955720517676600808153556454043289023834608127710028454350487499445413777010973406846368433380766583774651697714377437524862545492021790265504921658192452068745254178502960246748657655915415514133690998727552016895228066824302982866263979856534093759041649381638848940699670821587119180653717710495675454203464311395072709386926032504793310626507126551082815761557015946509461302224123382882009780044872921375341518402078221152733151052169828510832114181040926027431848468111019820852218693018777441433444655649736035496283659077770920144155865139540912276675237759429322439998698153781179087843593678999019085178927255695275596965643297509131744263382437075385441251672088664057746172794469171218538340767898157293152917493544998366103870103841779735105200142591289492380790724581902028867828219054905571578393163379024841833073414786911103521044513063267448029635737555976838318043059722362837059730560833250278936475134386672835147551763573098921053293920589802243836492069717293753531882056259869215546305004007477060127016361670126689611086849375881291659420848759642928513052650898221577273835930427073956220524117774337396168998973713366738898821279743829745520308069330970970227801899816512082976755357550108565227965838999054246014085183919923836381513809358278159599226728924079761825238388029282729569025960030486339917099647613935938477824790134578523057588534653774784745459017881160714269650243781195277030801533573751733971499336250101529545437696370928057418843950564494823748150712080031251268950211783190093161412787702025554675578972457142497323562514449939460445575309016379858010165927297775104576150193147525188772460654788241866194745093377190644322770527970545488166612753067165364266863844954191357352272470426232968404510650769083477660303609880092482206321851346617665616584591774383394669671111124554828240418456199856573218689800237425762111981207780067566308316221083006508161572149725791567327946226808780203589570832448815025209556863712793504030274009984584391726616343824130969716117837927021086314585123199002608101931316821217688318577513131107907452526320133484914093090999785967755757480593378570701922097202934115890100670271311673361243351425345317442875249505510602012366449407337266185867207176535935897579383840791744210656749901245099149233562283848046863967942326696339028174489234099309865494843027992023438409117498314507937710419607343215891449141349849654103845083525043967140092028335426470936378770155166322717579523773244145198327672868051730461471491488886795179515776758013959141352728635549328968907684706096604409643305149146224545375577907928113121301283463574230616479968798715971245588916363032643134887015507258679988429994809254973624257388474176802463195517543272811374138014481474825215088647700371703231778521767640806417721648145082468417427999132847354734859941388326615851229576845655042297938542123861862109478611763260893438341203477440645184976616852571596419869215147374370245766700489802327507529552789679762576338440204741281695718605065599933433335710366072132429819063828139420205061580828979866201045906082577884605904079636026723548091765318229518960962970044345824041851342948629870102186770113316513776359649791071341398167150571243042475319011277867022089838814313142689607511306915868397444208278968753998488366725404073203774144052194159612102914244056672602773297023469280443783250429366456757619617962083058276514851212024354380690845131269525987676736207218079803519016018385417038661446572397346587608505560474407470472996590171920651327975849919491657651444658414803512722822137210945682740793250696434665969893247636048997554352246599471094574120456758523770068670624090984414565394668621112826562610503848713672259402813676811301804861451745027654760320129315978054174081310390853596892226385873805976251924611203137825949674334703121609502870212168997856561108200035853707836668819061736932846003948933802443494780674862386934249118246538857348407024732981535115381116181425069466576007855086747159575614526705170101509859948040425125912048890159099130687278730183789227630555702687508128308854546527816225383250026882382702576457103391321257479572311655090844051083922009624589881544921975863467815150800197047653096402877098233981994296393431798670640620790620475582702079795635693976699169313569730966089342266393289595398413123559507573995791464214984441285719910180953963801828482362421070384818198319685544350108730347866936760102920153929196721524623066060724672840642064864527982184833431860165114633285045941007174771692044793716789918500885027137560875096842843422478442602085455645407325745208958305848292523525947484991558345852700703934392765825467861988224801554501655036697489808178935779296850160689154755224102383738879135576176275924257721492112125091851961899095110534185694512209128919187717451658740712134619476632286659575008464370567916445105933227467774419501066341308940875268181497703137562765219171135874507949846160810490898350275175474588581414795821463484641814986025465002242004746594458031417019775460191308386430652780938554963282824875304328521033082147891529668172381578639055065008523543508943893198131667827827272728735636512201194699895481836022880751833445285270214364961913905193217139315197158218284635576583223902843562519947392191049387993611365372037965140655181560888041500919636587515202110919785288178961190448966906411031562307567054955368399820392428030963225458977356793107490275228940344095533348875001294338730622961805111692854266036562429738495031049636359456786062244357365688864953815797892184462850301821617731138130391163237789530478193812137261724794514240016222418530688644759630440042710843045909651608369308233613981566213843811930117175885776920726172264677259585513442565077302656717582906963640101563225224492389787881248084036738527994446924890257353379484746324997482797550145496780497089412793106983451626953152032472407526918428654697935689242328144851277760001103259115080448101159490167126283113930488489857261133194365138740971852192291203461478499525184208677548605042780365335649277829679619030007961903232769999888074317729519156410500843939869427339539151941318724576756415695649709417624983970879156163497016824621679535128062097255284185206755042452381509624656719457356186232135134302523686604596340554173615748834587034947871251139455045054058002048508862237436249655735183526595465496178210559226405604420562526903421455926309121630554407220763496562517128273738907486494403562026793366759915330903555955826327326354767399659794692839904875530607652272634941533817347367388725419731430362388621586517744881552291568015956044381561266329785897771239350787702330635748441402100240570162017114759761475791892854258349287313586682794467780247194706139238887437030182739496190141640548549541952630691399282814107331084052074020597449200949800409708446952884125982462026184858027036104163819684972912096388108035474314190072102195620319116575155941033961480087143848826369722181126708333331826791031301508225124910344385792746711747616867267189576109845517911264402370737596960944208143418236132345194368016736520886340863635660794512589474273893740771396682246390863489041822765874315634084849175704313406319768894888518411307502716789684492148727194322953225305316191861558259991367237090065050612141006104117239657612245246734269929926345710250305418704766278560585213483898432271371460456510437477918164184757243560263863251668546014151603324750707988898817131939025384798768161435946566726246661310090546781165952190544420685447034197412325841891372375588222778673575328592433095403730614547824556068548503294245991880114108645035846446809091691058377815079082895723479702902426664458911179165161897293996926115503883878530384192591206895278168681604723655383832529301569679019289658545091987171027103864665826208243857264797632455871258296047081342785897884865304502845983347341361201156449522425039668247016519579736281381943531728542993350437863383716892742590167189864806145477548888263739360683638622512649307063613614184540228445289397755007955880725881690108391209533237495277326575103729342837095146281236649805752121436373425455024697991606184095217059151910418681429927535363368625484080316636794753263762649705818473005141165124197717713835236056794863575360711725839412903219361517126189555760694316428040676219992956761740419860408940132769840474045110045586218657185516935709960364204803560953811064248326917781152253188463138053171840509260668653815190976002035316152868369656815071226891516955693141270993799588400940436372902145976072569846303410427068491020989814792830868363306257944319095011044467420517790799816089773878093304978200877310480517446362564080657312690198632665369933581689407602881283575340083658863851524121864924764662848436437363578926613451534382457629669418490322959110248102120500400316438235327197272362439474674667488285891593558450538597661452894439810388558811626969549777373208033593014799051052916819439348973219137163155249104647552759897326137917038827585049816879696392765554435643404454008137605070359654856784075043023959475647861921506023417972756563118905155916270869923607084105606850775607076785301448546062328766861156684816510668922647735010108859597584253997242071716748762700519479562478729239009146403604302019679677807838158416998670932658347594078605600855844545342988139409722184810118410843281221766485011299425999851122531275051689338108191953053428846922982881702230680337523502906112569792729844430902684569817542967358663983148899252660076197235186460981466084552519015551516590600269826573305624704289600417867364335788522639223306863401818672896492224176653668203907980943052958412510603225512865792444073388034699756658376662116116805794645889722004964912595256865889353293107414231401762515086747172159341750833628509263260237325825226982114357808221807773843980325926222117455118349896580003057044017136503680020528330362343354313210948784506522690052025027395559493138400730685825676256930615970620546242089751868200483413522909312828999415403574714660925857035617354048967918360965846989581626252311690029058034371876851483234021987040594095410513683436291505062129701597485073738452488772218849507193792717153638250759192916394081406060021952730252619264867001393205465842134207733720177648959872503858643617871704154970044277034434400068367298353651238893646631816387498713930964966108757403961399299509977865934155785285037529445601026307148814731134991912900479920257300773226251137849412001170857502565460513176427991594603437991017632160645961689632921780002098463570909336873553237609602300057754935343393402443807492586107820911574523337811715434643878545575109141093483519618116465174697092229235102662633452921092474600470394869129704227509968375025010419530154915981427942093878156330074084619056851436489943222289084725364846705732394787479096031157282901043906323317406243384379471526072464463845864570094931137535273163901978583531871321876988456994386352164872760338365503838418273340944629992891560354034686689467276755126465589633332051479503315666089286074870271746683364705865868563807588186114116868508328788271161187314268669124574793524299499954656263714199121962091854359338930790267911413144715142904349694946926481237167226260851580764540733507407516278189585314238522308533775303527623994594779975586594809048934592809940741531875045262638254598412569427782966596258488513150847671579131259433980039399801439216157874322037582802768478448483344436269564580492624496778959079116914631251239648854451359127766126325978290258200513171751877009773199909123428490141914603314400953929404155473883793070394082610956127123380361411398572499620920628551740749013379425698455953420232211296230684745194413659303392770129433292211392931514272813648050657782799918172266369580082818926454864568007872078140092050897503299985285174728206363397348132186453389161805637496012461331540430519620642465381211021450047126810968248810978575404811648305566913129178707783397633125647660098305343009724633851370839453173059815069082106442617464847675593369651445371870995080405157203911613969472284904458413035342155586336270063595635800716175875806964705249812532893841164191478279116285930374409209048336945106444065732837325923483335329413698700144447323228509232580693981397144267618248439473481706166794125447053069172237926055011775472445721172535072835790607417189968746829698209578593324781396220883246287442340116329655311627983409119776169846695146665469314938739143282033467477012588089605772620121104970403901794747222394981131437072361818640540579664149391334284537025414407264620633789134789327186528338306892250479672178561301479259016755138160475763706887416393453294920187193129106233918714913573810727421444503042611559037355830895833708356257730501509703795532376411915627678836709221478311828578035772844555280507698858445159630308414639859655244043340891003577868439256958613486930407175388819836173531126190038050201284477872904738457632067735985998598877113207689230641707069256473875460645915372537601577113044540070975538979245182842179964462068194059866574988997809933671375570763615166424338643642178054015485623026707270721099338036429452068503569844426003426052009561422229645008489193695958398511599138644100663854467711044223577657765002432278378109354482264898684061680555979247540914920576191124478408803515970175608276040386589540414553543437551286967311517441879697498941906404570098288366451104663932687337330671528341711033309947012290237459608099460451198416449180202815843860107741935322189914588396799066998354080169898552877827982199173343172874006663093810126423790974657011008123216497097234640770641385319261824835484900797558060329624946971951654893921998979240943486382030190580644657989943083345650129224281991737853423720710963265772639053878945943631307024796684945953470050418423008572006539027815870624120831379814763311368361770576756226402254366671269155496064756635956258283071587965728509045272928893735355371800116847987638969638112389052794943690426940339013982162671786492249766264683988597280866097080229761307427360755494375172068824575873749996313567563605185335402242495679742345202262916188082448289437572257050973311318359173789299486158423125456059262294265663294523663162862686631205017186669510998520225339095489398889967972798973277117543102697754579967402796294695138916874059430512980718897490819099752410902900693551519156273778865354192045248379036154486792729664162262560889523130852047658478407754430475961853770666455884501965557843566209599194084487791466857105437169012203986889879590443867898130509428108582743841334115667180290545286381468459584208950043183669058958654060548900010006993952615252373190242723752260787949723010447813950928479377328541847806203203639125978943002510124862589568799855194132891900260248295088788347195245125560415866054335179642650986942118210392091320395032015902108345430786619979172924609319961121240103025711169993071856297349903740348438365126921940189923350744426193303670159141205069760374610691026291071128789312704386757295180332999440944030533392119283249092046510378989873865919066263027622558446801258017391509585902801661834508210420969051836582998805170042234175359332017318659092317570786755725337905768229221637553017039404731034821447316756537402356950804831813833614175929166834833659151017217766213466210243382086047939765989161139547029611710855969225978744989032422990722385008854273363176548245289434980545813513605659379921058284386862878429500925548677915913931849825876820500106641606818721776706912127138614744413724238901005340163465742087063883261159229491507018362207389998079182226001096356171617538912975611915433034138145314761683593761548388221094480318870327465662513665124794062225413838108435701795361861627308001431788605009083151487545329569475639325863953833855441737323323113196285032900764476920195592410721485723784153190182278551930732349141651201350282285304290299416640483783726546267113010115825641309370674360515593496224965639176267385740330275700719624577187121073719043371557201514227082476716878681957732450908721167254869928789164492800070474250070620879088358383135661989925266071906364078408709178728158958815676762843166976067744243605406576849350147907002436674864465929899560517580059089715718855770295419944935166092827673263151717353085316188447390659683420252879414038116740677897752369250060356525634907999731447762494723185592213690086415656867857060109844045692074900343175240854743023945163054396914873273992022569746987179489505238752304793795306566338967819601429968071408856207019927845998587847663323720730618320973371249906533020228346890436624870330530286034988333184397473625930426049832007792473145829373679683498716826201244593543723011581176904164009230969649504671941460785953259150755831794080549615991877839823869362699707106587650410810892103543485791679127553466343608474988419270024867400235542337845903203724717795307264596374143044678590925892716478511292902189684384271124853437276481996302101461013025908351517166111859481688824006175746411890884133967735934069420964859810158083982503211935261458918830481177804046672991677919433429501964164010105975712205808320792686826033090746122682594273255042843650784558425764748029606455037352898860338170960687503124469081815022502807412228806405045925057562067666790691408868689429664244614431546454700772829997672877341115088820143493404570271604368604011155105538843627882652355688263939788586299589321882936358081484445988295662553375152904303384466068232620650227446837371596404131744698947634964608101424218866454579551295968384507450154074036368218557794555497550510149050130791403945333400580990736384367009637416966509947576754761879736300962181750040253567526658445555855194256863981825661747573677726667328740018454619486160684955300408782598813464568985197776085625127849288548888397527702099676961712666360876885237499332801051461043904016716973573757482327941718320118705659621819707407597312243565661745815843298699278479076954010347555286531445903376499316966978549324572365806577334575485660800283808874211103172604578294611164595667174364988370251441751780922255683262593594331316821190483608357272143597262186009221344491802136962909689512674901566736938223062366612677341814880600423032836600801884161490844901213821847217796911699543743360892049629904981680338467785705884390847642348980162561884794623307522284403325704968195988629590563051652404811336285087828460973508317936774338608511469614264754208510322196101661876667915292343114873145971902011665215101934052999343915122567189879937778883749438499719058234044670818196411205447158454813849917460868804300850123584238670018686472574834877495378275312534191835779239989128173293302057002337942320958586389024909057408723152201911241124127815646764216151946336695416773905995640574164353768741316288888890131801402745097956344340880187837956712852711186095869675117823062527970772652855574722435610077642613106159874777599030667014314001303035735791259766846022124380442892495324718651010291688374989711555223209695478954856776959676139532983416365015064044491729889992017183558387662772256365287896972256740180913837363993715464108077717365483629824499502608428507150707690581535002665853295507122108379716695743083145457757710329374447068481482168323253363693803754265124975886420688889228023552691983002979070050213251215938961714176886374741389957359412088816600012413895824052615332513090570955988171190002698266683871171012785936435358168982823959257236019418435220256455418139182037535829046628275606376767307791540599327922350809034315193359184705433847011235713828619595047643287601229741675462653560089546508892759221718925211066855282796706436449110395475379652710306051685253594390802409853959055371296517551149465512948333469959447318391022748076499323159441974620604845880757074350173655092595249679401105297870886121561865072522357092433724259514531745018285045286722095425841559262060783316021575930754535655495767687453481226015651986484237832750841530165001457736519313668163632077813906314806854573571187049654207058844629370298169061390199665816384338756073712178840215444955592960435866688693804773913485026277981220351772772876393934053420398156370028633791979567448715153935813340004445908054347457228664394071777567501126908755558950360108306905583514283728795199817259155026118625901087876244754426005793721639129713703271754395825511440827573628120263851800655070935978688472156212038753511295278291527442187144600412610745241438010555019163510970267484865665915430048357350639611268977016922196850075898838317725589639659412420543039793319152566870937738953041786107012076371868362967269148686435579410277464306990420583296526139992665580978838792057389515438361902976215215290675662439491778846678511003537784052248574224085104424946280234769259301562102120987711740013691249261991477398630117272909414152060898821635384170754268461605136104414936676513770596393759947195038395029546300108591732381226792277102146902915989379754915455152428751750955674477162752594848562068379305057643665232623362552199012217641354007239491062539762390464230582539440016281771481932298475030938173588872390311866060762508511361508819951368807177354721390389005648154255036283883279524280749246565063191411727428771169027833533621426809768812050212053895081287156021988706511781131029592275453367518576882334812249680267073510023443041458309070229969921054774983151235429748621615826437086452863728861829987975430708909823766424484520974707219025854379967140205704150870535400863994347811022572920314108596990987838810094944146982243469205470359046618962113490524486412562050531407271694117804375917718995500427666370256482856485393820273042381604052599171669093824433498861312949462864945238322674113930901565371949786813467720533489222959965559710846633292234887101918747764211082867601523770032405955539127612569362541302095683742935485358173883546472202692070345856962713560029403012451183492466787389770203640521899245052779570961093974260272296970296412836752012732239359842596188758381273289722416292056938233155209381021343579583936182526196502112288619344064028034266051665856424118551384162524393901494701765794830237991045791083596806942940882567132295635784106032288258758949171804815409457730579743476516007296411523506353425340388246422221820050249342718383211246654241317162710452358467512645905220780478465719574834236779978440569741465370900712100253440881703778070742797736270969649785142959022937196897444065698534203817925156538530505808332365072211484253753438355200602825863079911103631038289717171984828169034875591852195088309414568489476186607252017484016097331261985901851600431526636026935744803834070609496695918961535960226025729449053887612970948584507893967807309240146628835562062619192749915923649289383610734259228987878429478344991475737728270268609115434089305862677326183724480223581882649565438222385557871319657308136510394911824413333188140109786498353701654855926689632089772596402871154912732726566962986328350547050144166774136614488123269647146583138561664134411566011605664820821434808212970997965242735679311363314641815208782480318755415934481141465935272798278163813205715626613923790327889981455923506716421446151891389923133572293099242675407538767296073430736267707593544822606412434024535466100638442583546477988063390676469786912723242026526799167498980349602125996233409448694817267269928092541046900291508880110292721435204465516460321117284291341211256799726933256452880169841718817644888791309577399646733588395354572907882673373229310339203089428585790661407333551612614434675167540163964112646424198559424013849612358987636695624190809488718130360595947497058876538653552521471046355414910962222418209938324626648302274670580232969981952262716711237933056790203707691303615593797277312429641979885710585059757861850578898423918686225281960133387740894608195936397210934279339859161894937682104627548056678493007743094246327183780309548027665276657096474199373664661362623796172208132961831257091655488057482238628802788514553344810883064827958434370658918530661970974048702412745385914799932819351877508236526477982780499402323315038872074959786142205007054444726549523524762915911295194964789377438382210290137330966184200569729727933003309100077738361906834198225108645878318451621312764918373552634982642609704250224528912693575373068263833099026875197650984895202303926128192964161445569494567630494381736085741542834052354200619701172662476420181661291183245901207014565780990518715436312914708540902559874292917400822143132918808300218060479290802125370689808084292316876593904153242745923064122723986134734284386870717500058331445907750249435107453742325589409977952978277973410192841407840329334393388554635672800814978675859606972386635579091665437362401526601895461254360297841469043933908138969923808864710409301115146263100488600202290457074589554493242156541428966267375495714061037340649547122678417600345986700719537205741765143044283888526771814802307020997942438498917546845485876789839685277623414711816921620455353543411399205283058204006583847422888047965830108734147213603859965333396686287538749319200787307771355047203945467766566381200432288971083423111828023797719563353339296551906794260860966254787305543542200827156689178833834337262253818492089164609989616918052751813482214878323919988826934997229802739002867654603010355912009307183254878872190163940173997800284139404226545109228449307664846340548815384725244627089953951424281632548773505236972678716170254248772252094896252726929488882640382775334032752254382784753527288664429225944803680099611606622851076584322160443011761131296808807964212427758078251746694546964784081400995932834238637964955377372774641825717898868680854024099850202553008135128713164093133488884561565645646311678205214181600806520393477672093687475016711506638259308268120566433829100937314456788451836929873258491981780222724438625668968916976030806809321115224893793166901309084511594632383085354024448282966369409009480975186764024685134559713157006895529874104037111519103197978619785881986241014179819644739354939511922395438943464163504217625924989200433308936544427363350759360286078042947673156822793564627844862948096670101046791873712575213235242363152384663321425679547661291861943019842166119745524849275827809199649395176331392826993085340271414198964073449137543942715759195361408160617650016921904247931068795461541355427277867964785601937593486647844948970752442830915841911602853940066505563193217056015557941827092547914024463948333289783160596196546590271654364831851503427149599660541889005698793116801506014102618976852610873682161957760070269185457656335465043000315578441564187163558114324117558637006173032394843111760773819784210451948888048463220462928586025996196243836669077197146512039447158866087354248140573818006735001319330972286999141425478480047057073007038471769654011380107323858445790238306559142340764868589928741221556708008200379745711232741755927669853045616909709178844028050803877746077449185139107224176720694339442114438569257731443992442890053653510621794442394470492498396340804273393437277716213556769284116985411741234368990924733988320398019714180072845771858195697841349246370843766175145187751485295751531409554182505474720709444413224052864486824626177147426493967429418741029733741872362180844417165518038548518671235268157499462324006947124208052285266257560707934013459230384123516099770004215392137415944150502633219769472127834131723538823502548222780330370937818833380268291473243369183003304062306394412091380586859016404762412373697819520457650691800643149821913474466927398284072618098465775665048520848982052405651077552923188275528537841851353729153045783708901491610624045585937536043569989544445302449949770771968759985637740002392308382507721348158355875865228801131248789978796517643700777027803995908850738580222687468994672800385419182927387359789377464606937647616182140426062120129760533321746655411419320334704961597719487210731805208160112122627619208652665945379447344519929753361555695145397979720190980641316724033127437425019776337276949979562667085359190671831181015573291471162785115053222024724715639369669703314858781233226925713812339929236241723633794119295041838050158574795843365921230401250309009649503592932823007289923041786252061745931299376453057897815934832102559553369633199595570033755816172081980401146334097318323564832071210074271624860663798117211332747147160599553267579143172743120482473731889242767846542582091548778337620125002930054536527751388823836595560527333410041355981496874318978073289875093351288683436238035639562488380211405420142312592095190220898731054916057256954746201718900239644421060533651450824363107842611696061012648327152485775117164838083800756844927821725734863366686583526620914182065470487013183471259216532907115893418552220981535517340787333993306541459666438379971131258583618586060058350737366376538213100143379767476554535678470218910649589081416367562933800624190349077014207403471052353105795202541513826205208089468249268731432436267357082196225394767254241703698850103374632200395583939121653974792535869867229157970382474109522465514755810272810415860540520491558811905406209836642720964796400498313827760946214899487707363751827701325186915009036564306303752083418892547266999078992757518317388882066802136681833325832880181661127454207095566923236624915967328624749274639271650031275286599903382315703789620042630389517358146866473842773605494730635141958361761974340995618899389070175632783190919103977614430861282332938667381518255001647223683808404482224380077504262811423304388803077876030725669809344284799747596486960766624999187339522777193554993103454075553306733470431026093701476574870728993852498734609080353733287573707994472840977206198439110091118378013765006538972459938263274176028271265792080136657427478779574880501044170512772160432373075481477221621662016571198784923018569012331787809871312389728605410273456905898699911325969977665324856985806936965018868980820876074148354166648291094626361740801048429286592426308954849490308572732846147194752476188167222890275410491633264010982497063472533086903724863189762068475657389713146598307565623192029786253787254894757131982098776998268991523817907461181593235220817674298122375015235258537661376610981432446465033586633385625920962535506869002662672651536067015183127023183431831735901072178812871388377436385577859691128588496062533600015542407933996946830201279759344268393808275867914063665561603205306106259444362518087329490069798635893055263744901241037492772206192259506905723814899139451351367454911578088764995209048211319991101187083755164265742794565503624588686312421550692384997419274605911721729095102478184709152404992530632912236878048910988254197345025587828526228575708615539218038033960328752744282821898833684508259454707162360601739381845068702670039062156890784196918881416512356874684923723360678429511211568518394915880789524891713253578452653707064797071547055117485868287970169211043610443055888576936116932580880860737501926209983781646572481205108173677597500721282878586109194679666354400408540346463000408470360969972599760635480437618314722331204998624323549189217673605278010573954965455704830100890479647306656934793666230828333459184300778348759177573545726525465643833415296031763855490720335338762497993939302717197956546074909840343889569787565430686325826302463978578579254244123519603345563900867507420535130023669113742118086591075864891475671770379251886310730186492582531795905102922569703465203188960405762767826205074537092251720530502540549795679658750265487070731142302379022363408565872013138353937583619158648872321116426901635194438068319716487456386681300622801036260882918287559389954180529907802820866631498406940634599274404158556066543156165183028343300366323891438246445913891309122538923867971627261205005940076576497333811047689193826600010937305166319329945646893121241324730438003196042519953926056906830904176525856887567921769692878825610400203569971456231208265253823158922885965648110248894447441010139065577051205819744054644791702689198185904807129899410379583458787047646182862772781405670569698864327873283223136797016492327986754742795148909662412689663929028697206338721691656642393739913132260067940867022005439951269569586119652392716557752855408628462851871617245804652227167878861336818713787372639871133185693090453031875325896157119048169944615095932613643208847354317756710385229867938953761012904364046193875702563570365975041849551046575667654302572757496620804992326884160725089986539494423460798753909667038179197942113291330931806160169499554279668679603577865560298621718380694881437782126847151987670159249288949107444517080844543981098000572563300818699571716732370542306301918764457691712086276755131287757424284182566925462579049087602463723167633107959745996783344760109937202871431948013382673891701407153594991761350822375567163115219508906804210611676399463392728126413045432232565061157625556773502781297706333281003323022441569796667636646659556778670919234596156918063465724997999609124126396357682454200571943445582358370800041938005448928434665573620700447435025833380932461136827640824620107306018706508531760068028809018978906265038042898748538377047681526660207997503005120403828621910373470263707646177890554315912672398489493566275766346843979305450921572295976942678960657228303691455763783872972542234585779405132264314107292115666599396944874707962962923909814842368910313150830491648383293762155116158436269207395565538381268084845697465905824369615398897748133936015711889650021911277933205025954874623066197733464549043967015439824992607177909166942418819755056880015222076889208848236763814321964147798876057423653224063406801151875354451424653545773792539322734656919782727229412011645933489600305494122365869070300750313785637447139974817807529676911949196921239916236499248441603003827081616776524740882270464301019466548463561593853966186519835742505019591153928405682874089282026318077164715822405843877094970709846722196054415708607295464300780333868339462967781231602553841393406291891461026422650964598466218774847683564346661572663410850935942746523114740416244283854731375726372395142500776470186550785354565770611569961067185512400858867398549631996748764298219025549143093107751895714494744079042696645407721584353186050920654948327276723447380401444661874398977567615033180561203644191467837651417365330857646102850695126421637834587044923497471895431398404313159299655985531672188802865841018357457645231124178601128694133183616685154318313953301435114819709244274257356797225647048731328133763524825091959581904836013329017093825465073159281442221283132971189758211265836204888105119283292789089539286389250412237216064357738099252441896009454332693601088182597013131139428946509090324476337718064064518709809796229196815125619924124151728811523489774241529643606408178005388424591352285535953342171226264988232482138573804911466753827660061045644915799435048226371291016054356538480269298681590842123428686259480647005413346861126148436133780816738901028839664820611167264078835104541345863916253026948118114072711945472015822071975265727156814912535865602188843976520031162173890922336016999998079725387058081578638195259241128676290316936102596434951732967828596480947216374221542462463972082139539489128216004122738472245270368010705179945428644301946581637137935838397427542647908532301410265693626260825003343572926359127805571931371719968558337881337509458066608851573497844415147328164665443809089320669070401790386276368645656235161526185284426496877584027288824138783430770279942241747899489640196849913254723048126402148153486991532360670165277626580796623356148096914438827755213600790309477783534071028245984973241841134925663092371642914845986642509553016770062222694953802861088141804956332660670439610674464260687942788992676160681212177524300391148467354406065184987606366409412869429253180737580533416788341628434674997199346495973084952556036747621954769119874320208170271145590397047765236926587003195711527391432825779489625831033026418641447217995091716399182405839626734514148195637117814639309178898769706520926398347672718297229103263287263804067675115060816922390121898920969794084885501675571237334302154310122582824558089952129938074171037225118788602868378652970392331158591920355754255620165997665438349781420530564632202589090498499416131732303090001857010256546565751781221019166821797901269566988262039399785706555541243534762879699517084250641146886888656971426419538834076753843389698682794230499513305017859020703769102705146179345036167030814509286546481008690977227219915739313974905040563206208685835481251233781129909236762055571095853852121870945633952199017025950588402608639248732804301366763371289037199905952776500562630176439250753242830121412569615227571401626576506855837848653584337053136145778935166034126862671547383773631626085274163632027748962665863017196098148918330269087163876748052590147230355167335291156793319521336142515268141551264683031957105531950277750954518575652979950464448609752663504455964569065501904549942358596365600744114529863521528380091267707825653645634858610311841980608680897158775656335135693666099768607395106976431210854806742217753411587557906925184791472734387336432440231941907463850487077726567639506815114381351340744297066919170413070608397807444341245754907055558468790851550283659011914137867816996437968428308517684480206618963907824853280859454936814976196516715391248960387572102908306192918227281884325916481654361146940107169189713489811945443144098716704875475730094497400011871909674920254087948423947638079169522841302653864716836325017120595330038233808390499985017811235086467375881998069715923208370059612799182243394968468532935336539956175572825703324805728831787235011259430028673122015772578424304665751311990331079555054189667420652801320262799211620477549780585417645105761341849829393619572509556035398257386218656684201388873669431842214745142916275385525284355162398676073163000512057238476111614468314057490474383077274920875016348696516945858087446160591056583152669003275675112350974636748769675634370086956509677652289329300801968070622916076789537873995913236407832624272465791017871453910445192248431669591872270572517010425154733594281933617942398828234564782938771356345615445144540446946476949736435243657988600084887923511729772584542289518812952302220383616293902383961521310674953707987292329450581544234155221162249169561922384167353085592162946287467722962352383186172778627782187254114269077558282139022016719498964975660385570407059585104728163794105730369291468308791069266976766048391461077624205127877397119718520184387399854076006749720832058784928473565385367696894322551629832672127684527987985684136932012552128424763445189343493367938901401765523721043303085062199704263167818073789426087356079528765983891852821708509262387246144803610579541325143800465743570455232164226457112055954168343559858905617683758780763908479477791508001830892531768659462374288646701393287272565717575768801629891804691424741787710504427072273353629454402402778589292618604709084975475002585169611049621160510773802841607270092412574690353508998462164198097445329684452362486205920823414212063832032335035590518493670394631214906563169423546519586023286618993376873575898298849246384119654824092598083336062850659974805627054219730677178869502356523225516930326265723037080448700086318934249421119066277981671617121618443108542865256405905401177135042277241182971031345801310386364662159243225702671684960180084990366706210174125228030946178572795122978495622871730670135820254859256542096151830553159357671762163374635060039221176737843150341395851811839138447481109205445953651959316772205053471008488263725656152230212789743573730975985857678216428442632411124262135544393074345851348783892083982988384142819987527524797023382596729358419514528841214491955472997323549452519060874437765043455112068691922515409292900405910151527358631521623566375941040732852555378956536586069525505651836678379762783998592463369254327715895037720101451585459060916855093669615335268329607799311526301087728214954445977075279442027807875960055814323921267202828524951525746961177074861580872507627376924209619445266050504133609296067919115752305459296107308873872787179119490713482039973744305665709764152381124898270713700166165674228088791869767525968508418190115397770713969264060878209562400172400517188282109109891102913238326637446824587784445817007115281508124299699562885133975057893687543431548796382485174674009622860198634604403493678959450738261688193112562717206440388573839083978683054821041168038673174341311005113084599936823754085653054157712842291902185903349584430270342345389052673950349611052765173796521050606015429504233863525954212584948657362057339682355770890295615657713992410890442750787852577893375114823859356951519442633077321166624563974933686608100287596185771087460682719669436177213625397680815139747441568422904926705785988282366926921544473263571140003328471406925231278413689201255229679683838136570617859976192247527811280520520999708934909699270488254627013690625799917569626546407429931766039780624908527674193510534794955656923874850209964611715561506649613674566571347423070904238475859661910376992331750098835942691381152882251866359001715362105885982591250811936618452790289584709514743754904399364466466031401366299498983031612763347116457627296814462042116990622913673890256372760914829533328393653707752396782324420829537135850924011962265710223996099067353388542326643398410885258022929637382608748890742407198155194171527078582248686017690852143785559839828039797494479413207580539125877114815592973542871561416110694756194576223389892450184105057852343724868725089402014543103483409251395566718767988771250823903886104759063144476230284413110714916108976995084996259156988336137432375315083190432831477634446048121531670769798077882808706789116851539850815340627422825877248588999658251031903917179349147675729345764183624641034327642557757568283940408963731133525087091198232673450457383671561065526531881938897400992082051879707025130107733578204906024445777670977802264263582252238065298950753839193568873237252425715626414823435440268397851143051166216568125991249171341316437391161362290405028922234053721663821808213540068695417956919265907106986852950056977384842915206474267824885101171303055131502092882463061684086463928880693079459951411095658157704251570776949417077584407473571114585027559172166715621569837660581779568992129780663379625926399801652601555257750413834383891393113548571756389967243333241336585614371447537862754536304716510987968491324430308192019610789194866309033144106335935576499379812165791280318673557403112743181124891872991144813904156043274564502930119982150008021607528382337711695555230516803544457459630958223584772890283363145062520757755152103343258865315705028766668667776218070080627523939524739969989240268406789666829023011330773722837201112260678300322379478476481603145308776890833355142500248200730968875803189703499083619545623146785446057592481680506422915900411937274724679725133497614696595790890584529637536035269014413772585713995079062889516416688722164406235585743441563889579572744719721808888915285739356196836390583065929862671850558040500693523973676031530997327377265918405218920785729544066405523871212516416849958543292934718667007810714367632445432780542146204575105577066176390611657636124527126884241140678635136580695712358712122919093784020735931769840524032399018251355966714019962619067767279073312435956821458878274175326984199218260797392409729523335306531469188685294857465666123850497086688757282594861215533435548203873085025720367707043027762324432971887943919625500709175672625131316643232293877609242530063947462834317680766622701906202692017862806629852620417904743111581209011652868416901751846327930783840893343761146574122830657961352520648333149986191153842257279499872968584128402376460244949977424861236276151492261379422343510075926720381573692496398296117896473564026885526502911620946569559735399583014903641001415281660400174188210820514277780211678765706351001209457465338970229081021825581782020817427763164158257862869206469068565513479051468188336397285103054130863445555335490722915936132906405799917694776837279965702916870082565209235333351116342871718202903554102717808415496230348944263808098329842018982418652385940696667545973940230772442412481424457280000106723013072030008362055247133713839978956302045183041266098018832278729996184755104426887149519424825990051829618961408190349576096174922920691967262073053895095558907906505514047105988736766509768011436388802379453932627012899598858887194634811063209927614404245722395111862764933373048463550371498701436021162714014833029292504333996895582056788171795357985993991863417561577962247680672704300817258298322462241364961169750448036849859114932935576679503095679221699047594195772970430720670968316858826516649148038782847263390427578888209796542518870522140284415879819454769468793730993841005602906150888259018342442946506059010205822053577127982496306195612700223285212439077657106678093878636602540794190030878858535805303920109730375682059624215791525709692253040237950889054588221071833476953649997643100014132275757174822940356787265343651278190056695164789314402742696517533657650849237041500894916444455358430215408185148802616385646550619694578704908892236875560871884309781721408214751519036875805489783041511829592847886741743120015072145699665378893541171837202396717170790700911040067207014749124357840362533414245287372513638748521266624580152477481583123521145637855732359600681739811069525341314857380254751472392917236845302627784430884501456786853679855893860342854248766196979850949272369400645125610096497658388779239267207694372403551218037665767789471877207189914685745482551297134935665470108225453272230032403378442211615069422595007755126368041588479498116596174488066617382866363746433372232700368307425365491797724215060586391453057348916734385302659705578868518864708307576248242345458478613681606427056124864003310002238330013743868639224181965039849442733423769551393122308573633403772663771976821366706835708307807420230715675356705272751407872811170374869295212923015278546183380197575890412834834469317540065685516143559871583954417044623721607887163106927747344656629877028384331663350394724533773084370016947939204376631842761601437557713146840443889860797149387575230610857657125369716514050816313178943033608695306038533148898134151129467904347138126147601724565809321404238006485200919135370091510906620330499397977487796373105262421912514112779318191485422102718263232852421945510018959903923457964399319752856958890294903057518941826546017949304098822038035506191594167463335274682951921607414974040392480973999241155272955507976999844044414904294484915788369253853114252934762892766541019167775955858081145098489101042087141044639065324770666250073713936757702781108006219503212028584710920137141898570456687901477180110908228236451307159863727055481551590243656152928468849546236323776171207600177662712970490842089060668217729897177455219967905830767621281220755853532941978458418616901035751178171279122385823091650272217327939503658549879446484499822808020490563833193677292003282845820171834744167706574780151783675418221651523343439981765370832153851530086704613460269890746540828975947561787331378705862008877953807352115894036476758697985639440771707568142225937810962719563404598630696013766161430645994271673184043584650161151957575653194471201389147830768476915202308512012404545802042966680977662763715445085538636900460649449564911837413972296097887080010384003829074052434541250398471853060136027129642051130060245183555929850831057844237556186753349340720550296731494603733474079901446098867985006421146617872200212253614483390302399022895989843823328152383253545011863201159450557291677905866232553320720208367235911613402395947372699755005043228847998201297842713687195884803520984655477186824183175172751570788674403331807317262531287828426489580727130395238730527293363774575128563050886168684340713803939644988952178311944195029938550565031640496278591421330793389255596193252930564663650464175109035595728060622069771479137276996504006389512090635489316834287123059171216214096656118018419652194352418473044262250526094884255441803978527282210214675599342017970987948108242849209004314234687692100855507962494387080318069007991430893339155413599628639068832140013671606724840530856214185676326710869501903939659184028602350363348375071360053173655378887187332242303116409449133506202718008707937256306087968820623762303586929053051407464382498827002048331271663860985079111107239947612338323673450583751782489204268967333689158198540320593717070381683685803420791899018636317856238691885582611961117399554218865069825317220217856964990532724140510271051561875388253128045540864765053773943073450668201591946832567223769984838623656245861622551740394741439139082792679414212539272698588121447853369821899310102646825342137215065309523355107990945576165259228708792072524075389879531102862462210328517663664107064489208970898271972919520366903252989139533887067347114345055865795472830915662273669898485371545271113167997741353303196135110545675173439319561158399573568688653193468516598170317750739317417876464261503294317117066107101115796243176658953964700746365541814918027942801485492150625149675575202162873699425745404276741025248501824837979976440157215794473591410544376725693540979831903103432492727759155738578342108393428022817786869146538372146250710856802461626583612429855862409154741470980179257017697545003297062411446802406847563488081942989074601074104358790931953632746181209942430581142058163994856873924548405430432057284471454489682187775797410194558537853945400605345746633928526346251094903408305301096905252368517516046643395654804467469104806400025463071276577427194713236937246453290991918286969842778955339291734119807722383469490265169717748191711808230440113554434889632244763904128073395414029568544781630357197557764423270293699266015298875541497953985090733400926418548056816680523263046994826677152320613166004822602114125542705728505513331807474325277210022320406681555967525079122140787101038411590166063608121813739689167000481771343519679563011590347677361607905388143954406276927982250343414973463208580243021690134875971426298812114504260769096579822024412546376588634694596448235174894694228551436076034936895347499514730166044873691914435806933133529762616906024113992586791916914515110214040558087738034278658525269726816769391419601181360771686462394560193955303322905775062117492822040122432682107707779790920490284595125205987735193490122739719114122970963707274217213278785700626543223291690179388606309565664165486795569883874253607131901117274722266788397450393591931928617530421733900800689694424447711095730887046753377426656808506026758630725582215244424105742529549369661605336814136012665465781703865817898153888854661866277614240391861803975952774654223726846183138230148486275075251490552526726175087999832015306361206245117193524189160476786319603048603740616925996181239695327106705472857606334966197923626131267039198915107925690080488051274882709570486608306248276155747526823459123614619878588771584090024818951613092523775844235187637137290279846282235739979278926268773829019566416840179796599238051034387370536704700256982648827334263841935877885573248915378343233896060239045555436107979276094521044647591972975779940853474402119016582461122246352428766194453667085896515204113091876842752063641984994538028510712483904325832159745917416446984808317618662397000704336344479828738131644807359622693455433161595068622503755071753216394562646281274450288440894268964142073538406395522608237939436660291644757179282676839558196817736836712618587678661212460619445201143054247778615945450182806153344520016911390624347542759615586112678213608505398776644571875868425411195769779784672141512698639971155789238297461260018793537864160075984216207975027057885119945365521651743713415532076314284858791957088685316074492290535760085793411915817368325074015201337142113298101879909184705085330221012128883761218676642358033076430230160118920303658455217101504671291090105889005538525524216351242668371532063872821188941901084780653679465923035784893941528196552831363131812606294657471576822453394271314237384753068122523505836974148323590489528004752024229581536241482194041502868652353913213189047406222037744604281648681608018931062625003606844427237581247707218504554709266524279060372218513024689728186259449149001375229638430708922488031529525056397874776819308877329799452850763596856003381464160725334878783934944370013021445870851551064881500401397238196421362610067895696196696764527844657877250073298944539185433395772175296440179539333512411173765774495852456088654181334163217421964676675299820876871368514370948082836027044549027430483685225403746210154541619330585425691668758735246178470444531186127522195267704216809577598188783615386123995605005753339585906605920883890863811307712323600882010026033691215534014761471767068416781824642887763619914726414332044679068891229858035627210582727290080953136493097389353759327358325428833269118246060835915028092889101948966062958725548145475652258648689331772729620890140222655625920962864166990172268205878613510369805056526979904427364411795218951014188372714563490430456778249698627963198070477605016011341634025690250611475229181825589839917078152147569928639729770235344677353604471122437553598445996782774843153674536903026620470168260505030575649774283451764472547487058101685546362166611210008723447081177065046244297910267551467912574466660579831909485877235486302294821109077782696573862145161147033417222711760833747495106017977661801585287731450146576630540646160891800557666833884219453012092314733682864198341488878115159006851304216981085154037350881156724954646548567443916031062843391427911971939841902641587245851176223158232905106700433693104580559884549243226314018390979715320917371365799916330008970273009287465571342245204769355950750471685309858787449796921494142275123241270239710477250498124295670023792383104078961910615060140329530261160215321252349608200170641970714077649124611714326918167443955765108933151106776684212061907685002596117177226352552969063299878547684666799850635561883217902995460322530007031734048224784025961307353014273458421248741009246096821396932346947644241772790137187697317177835106226639990207986666291398386657353395346986762562407823168463415685509229572663957846441508993861798226867781635704823744861032255055856943469461184711666364383054513787257344767293213596769717944793299012753308886271618747959965416312627736674522789592063758006964592791003271908225406674529892189729003197894832236297388599161319684961929843792458998021685577722192344763438968262747043860164522204406880058435542559295152219347556043386700925696169087374697682896190751415243920943917673022810033348362816002006608269445118921217459446521846953033470574338401006169526474751994682268258700692961469065955483815716239812947941234972987665325005742933917809760505551929594390668215129905929118901066041792687846186432232237796745224111609912538960992743747572700508311706568798932114882004659740457172645435609708084613305849225918209380423757742797059969851559413517646634695377630142403548680783491844762271776601326534835199646627526384611604573589692889847417558621817697771662993351677766437161822230775040384729245903293581657905205071698037107430456589327121701285941204119991987791920884340240532714741656440266418510207616904702040805389599686357900762032900817203775012179670606448118007177743689201063664904124123629900722895723127809150257476955000440129930150170021414063060968646040732175415187488015339206158567227504831425547294038162874467976595942111079242244057121716630466374948516453041016125085033422043451088746247708046502224702801578793485600372343382517161741380313014577514001095600611036690730398610406056629747444301994460455110327274673991109270849171177270870571113027052639091406823861397234380056746158195762879114864199818089163524164210959804421250084955119559966362650849422002502889913739683814147132332050654999639793546317335392835311510824270970474679840835039588094048189960526258905309442289682460586966394027497760850277413936692937899653688010994985906256067539181059752513348965704192674003413810922004287744704980271866667228873297099349895129755628833716536819296215148256342368025698120655544665285325931081783796538240644464180706733268918033007984731434284087233966201524713733440076590513943677151393324414631774436374248444909731244759509571065415394728880944002955236514371191926764542344803631695073562244248104798203498377145820693426950292354108023282072901708753032486411317863618831484269446589178573174108189940315276983604810941996921498132814943928858678161944117415159728611287709157806863687315867929299870963964472867854166337751028195411764413600658118583805115965156345161572085633584942833227030020150753078983808232480866390552917155623987501404115214562032439645938839070085431945219490506551170617790442159229615419163243547191943968697893169803216362148154458657631026108417227315884981122860223903830201216748531434950252139034070329029314223281915294660003177359940207875141370736619494742274294563960591112872783269087739725044357947577242546300976714083116970899608277367984515914489365446206997897242917417322092084059980528181206086879736165143903394667187922480246648114864874953047733932557082309688226322899926134560913393741270810958343627156081794628728688696982369811709940134523801995049162722757364644661032916096521741393967632760975118863980063063099265978517443654995719665344812519186530063870706097914917951581501942297392953481420114947783694268795571409659520310919350293295214366565537746382926163801847908155905950528287578099274305464862054670328806695108793966652321740390248769044852318421429817206506522022241244162599529799363880582333124565989003941950101587866730751189098166823552450303560998514928613885506662132029876511309987679710340715068679362134300422924672778204878989087069373247218805614762514789796435881169668382934595795054538072787631892304637703421204132741041847291144362051839259614397731870238886072972271224971455135008428337962861272700961728780175551508111171724366948222142295042599135821155496066880979121847531058000755551872787209989482989444208358543547197055617661713119544392343757708117937579066811144005768425101021510304813621277043001269057846033079688462020000585236621371910095158643473468514020998579350620323200681673790150768494406207925282948046710406036533358592454818957235767377558152597668107087681679361197070771980548663964253837065034599548256422703656268660499246925701443013074677574545838647679603333654816111300711667041109318714274435637344069686266318567198915373881970327791072343940592954099609123507251533402409823719620388448687150436314973178694223056107965192621170957356998818808466455276763077360634152533692033747960077060331265568137745400552753443064799017286229228493565059760554656487346570476282356078541379724805722496842096011470917573013249820822173087238075249944520953928089392067875199244739304140031181569829125903758558876974649548647940489286390169690329559586759166708347195792520378886605361203492823380415022548340584120840353069990969752062935916141556385353955806450160417551696983690683662854694548767086790013840233369990554995501115095086326233289615621686427346047765527699581018987486648347032920752111764829801061381392632559958173320376836160927756256488861252358580033776895473247654980732144255645395480914014463551099138117237771664829710992135277972985823140142634532352980341309272162100294745748822301261977152107623232739496291022346674627406905812384873250434377767806687125728481588619117697244948208787255203942378576831116683202800940797101770558954455063959849846236098402715439587273723023336525099099844456546741544174969368615596173140069736040259380035168332850559864283435401590441288532516715519513800884127179965987133772331925142410248183175291795066427481742337276294718808473586274447439811286255207535917853767260095865236786986523481854258863964600887106150970760585278613309238057683549849746981980596336529381545744461816989283968408327877257681386406066228220169074946296456515887774185100120693672161917734861858449944619954589330586317246996558064442834857017721505844400865248402093100616962236947398349792889597035401881045591331508646983593975931107465977557308392172138799934149451674225694638080478298089045385844951527749529721682489771117745139556125183372766446895950925985444100088236640564113145360292595381745826975082557672925899531439657609967394378276632236579806007448779149811435027128150718398553788102016821042874424361799691154206585356544317801192413323678498172404367341858425821047109781152946864272877217095815390730840645593643359416265132920824693549653309763716289522487028367647051212891991570412297153089328881652011221210130835717069408997960409069708764044742847717485231205353197840035419307826983771241820678607677749716955566605338832985852379498698546248822230319856832694352597360784820934364168742342315119938280742237143706948856492429577763088943962103659768456167649510956221935698024297695601880240016053108510758149591326107832100202550025830578992843099261825259953506179186568558135134082027264703123907778078235660973096775560209933135680411562246615549931405680109467268524011671092407231546649463754428428686290142313697610373241104385224721727472547875356306632058796752995535779815182062150156433747053887033462386258124514341494095964302694136395328607587174263264228583924839131637835969148890930607596316780836829241996981151723730924116454904981007323254755526532230641274220122938045871174828554506602634132870250280537420705703266678879598553015306587423081957525675770504713553949759415636510224936657644899901655993087051980130621900753822765001040539238052601517900887306439512643949131915281203506083639203079594802265592553489140665747022865303741853312038954913598889002690889898161712130359869174614161707138662802308262651895521505427909075756599898866528459090159898352646999473976880999430059904071293754713250072065036482141257141927171227463136782691259503855382976088713258592343447891846851440663124561900722682910148065772872604928905520984814991687525225671655287541075926641911054163001275661577620955477137060192977829933356970799469591639038064814135823626085761368672743731305026835366541495644740748103857382934724753871525936153223212593790822123422829581077254271231808625163598235644120618958996096280102737304645759846923946026273056090512598007400397866795194352590373639818440799821332830976182052096076476762826909390469973072282883419315571965893549270171998270877540553447360440738905878830137273183131379873893799069250968920890093384787714621868967953924518173421436360200061917996081202462658214479733839158767431463698651245428202404632648140801258802369567083935873791870608718659538707406932630131312106467016256824109032828292042444851292482300140958255895003942848906848384217042310242854210407869645847940251514366924617217914636559890369529860916684907446045714914653472494428723058105150118062121706199525573194088120383586785153423411620100866072330455224649804526154128543815806672732404400011317306031979552185970608002885285448267529810759542401985575952753359811637593146172381448744292049531594814169534600271888408947730637240254801650668602494551908906602291105286851469576691291647823858680416251472091986375541682438564290375345498802987461307880953059757926849261595740613674294055694239488872289766682076367647427767621042149489498635935696226915451815669062258032961226282928283862763798800480518283703659653062146363783673490086819893722660661587122688643292190363946522297800672243374953664921299961233292403841512791784390030673374064611678795271315759738085003369669055973063242998861796448114408683188190275574434160669459857022718021469609572701320264195618204011283315465289591753622944945128917389339378662527568587853551335199801372943062541619167663181969483444802835289178414248026497080045704330474011036446553811398165440915629884914485047146192572538912202015963792278776923379834788746289723106493223713350906243140208600755611664253180908295773073117467850152675761725164728231468778961381948074477139781852947538565969287120443868283119136783027836783580617906741582293996355190244020925416027250632414488562429652223706235452617006442605845329240026196289365319072447329302588655677558646989659028355770904897124249378934618153421763140281432721104739713579694231725784444285578381103618843712376504055046357769961869423785989892641026861785882940329092032856585933406315847242233842761760150065439733816570507268361687695277597347313688750155832269861455311026026382201685436293085406956202388394508501502400409412053208340599056293834077970971840647857679599644370608617883352687601112885642183687806013627642250776284307142624712299504506380824398526889118113789134979212585640258067833064909289369361542513388615936600693255669996589263624870831151387611312998896987599091424588306754919988527244248712449243623307072944875680145851651086827505597640751948868261977731370387482935550131182535718611498635906951538999943456813649974213937024458992643300424220904305707343427145126303547662429874005364706672897095664413977225418546592762611616487400257370150809813400576670595820519522828739994636946993448586577751092121636646342810657208669340293156684019456489753487837431193126652527247394679692200316863376705703520845560112562297129043046605903027962873301113925282713810455775064570406066019061948240496692512650927411384226573566493810138507884904970693956104467250091445220403083160764551062680207422940394101942086545969465998485739592371800244489870716409750150202262061482203367700398358474312298386305332468064587106365508191780209804405613165567579683508632653060907432597942164800910041648745342900802073806175611136963413578624641751432942856712275725549220774268817237546627845843851438364973177424413930019927768845723834684979281385316774345321410724684965367950595539810396415820921752042379768918740011734951277624836252518427440886250527239221868627470333868163788029287585072377917464433239708179158592269276211762922870910337197038096100813043139704264220071339647950596051458967841359621559584545800232671939933323133880644304437764232601334785743799884101166962582953003113751513030952282332282241368829234234342198875082564091676975490969748071697095673463885704037995945355869193666497787064448006625009663888016280619706346600338122515903314092034270468171783471063656005577100623823344223186851104379966009803549078032418302879114477140886041922742276981290928820967501884097539367038958549796681093746990667243121659315800509365805491867692060875167128362892285041934096935371931504594869996766008860485094600686467275948973766334683586065641129767991754162847229377401592364483747951114874745086541024177651234507564567666326859140092862595158475983797416295331755017316067965924538765949879364196463376548280523993425597288281107467893663820758595542505601517727728075977043119545570362216816162116455235471103602813013952080355080462816429031393306334094286949704895699422377992444239700259115969239080743207800366437900011558656135560010116636819450078623753742064894859163652704175802870914306589870585297617226453474694605407300099977375146158799875711747852619752720523753935480969241726091476293556623472550956603652826928126853440942737453541110376141064639135056606036349557589632183287348541423671132382030196240230078260386224591399698299957857739818025263891559601395405444032139473190082184411989240186557645285041661090483099321182059408542941410102054723290847708192005707195882039377781301996947891073290763315038190920280579265465753320063436940705737096249212056518448090047992165376542264881205734943685301834324628424505870036107168236090820759505766730402538561648970752631508059825019894657299536599406919196078924393798169793573806959753801477370460547686134904931882292729626496868728443566062147943411531822447603424477192096401486108263073578177369997849818376955444605639434934284545880128887589072840622013240767304181099806516271322048147131018218395913881026885348253966978758999171898862544944024319642624586561578306045685271086434080785876154805477712127911207476212950375847269340067219526630424661889669816129048802671944058657093345957127845090740132473089250470821160469978983329980617759437448184668144225131770618265503050589130133606662342775663649039241401445645890883849868728122043786828131186909576076665850228298259772337770517774701398046866369080285250920878056729001853467847037118902988879660458572666154560984503203769676276110663807282083621023771611922301925910831605286482969126432368590125184086657023086360251472308157429749742959154633952958164547358707817924616448139354544121926946413866926795799048727022116208482414730851670354676084838353121051545691317976815906968910331746560132494782010911820272777915512042929568900126613553671613272420549060523638216344275982107303562654876660167154482024892893992707120694724291917395200571012552910289499786425850152503766482456609669022640115011602850962773807300314145229124206588659359881136985539324689962364066553053732420281114728182864409626856306945274435832607290151751365494461340029508891992588143184117096727741527640815564923606686063092779907185038068089533926993477185669756185001689488215843715080897156500593079907134177333528409155646000819174861787455716549958699546940392407650415788568295427091068712123968389995667022014423872225640343372010359006176764913295671972867357280225864579610076077527640718871167248233223527400697683413375288152001099774377253203753047635112622146864287451954262385442365454350562349146882024863630861255191769996457028670388150580393154319807723144025881165234459709490410059822513266308282541849386170534263099187006146416932848537730555796663016521927239714720216305215171480425928892168030572718694609030435124278680206003059187080254152713261309734626194015749778027723105806307220983612873130603013656555034827744355335912883268409994900131308820246358131939037393080217920396282423528481387271116551559540202194260269962781721691173616366598478243806249702281301502095471896570138303760891110143908077543724756765836320985515555773884132772597781589234236795116653954733558141758842817647143248467090520496041003841272441894781307307882449675641582590571864283993092036625426685884099522779858787500729035774438713863765750817744511977321262415470145057608248026732366689125668130220243897868797086838584284616181062173506424794938908227954804375664539797447618816166741064771484921625321323844874226596725277916964160268758097169138743786096075433479765469118351033661681048562120818051422988747594671953508454710220298217195599583842436298442518576077471493179309835568787008209344954477442190850926870288014479623036306180326714457055614214612864791479468785142032631267824928858845120924849615703739031020376902337278424470114682057367103344465182264811802935952106370342050746931992147716519157405586003457579156697334791905443451754822113865601159094656964362685882419785467342202123040061434836728126141810063392471429023750744973800990518072177939573560707098822862568878576654660908395202044980115000839205075845930908918735692965294774587445059517381983140418232337836495548352709053431058498861030104694529076809094567094956579451275123802069220935937577026986038042634025060931409214718449662834476980662005510808564955971762584724417613136049405712606005124213853453391933369061686147763107024308545782457349633241180935635244669744739002748511177491241091389116147204100786015866132074720270738415920657254474282902642845138485328104516139807032456501618558188368031940711589678559262613752462748485253501322387404979133153378030133578686187644069641612720679229161512411111244235436008814355404514742618846721704191475207582593754546206698241462069847845468201652724734599725728627710875744089864998806292998169417592214640439255344348352152249050650204334628343721312449213885589262309700714910804170589702103815612765615211925561563602657477000326454342810327390747116203425753149568921396962334522561609483766104361900447323639250458662664887711091431961501007817888632277614129462758588735588323032145263982598676569726247444933371859592857407043970479281606823953456890784653648446903030956373653798436785518505952972543876859806225486250371700023894798767742979654499078191621403686421923574133408192696550908792354158882960931346607265607006541810402613075942302313583571770463185990330239465182970956291920729766838378525015219983172294510482760698734738077837661472543140964135161476107200408278807758218161711558433775535019728558235993781016366489171291528375698463419039213661883986449026831880836635606636447790103540605595602152338454438274337800456518655817444751671793126361148137664353831674109604731981854248169382571022617667943176518122919807552002278899152524790095789016855670808730900520627256249118486372020510287035695006215963229313007157489897537415519329950799754964380077397810952102450202040161973867913172480750476317382889562399140222786424310778056514038640060289104405174137195470078683542264389906665591119460248559379241016328102597723853719083810143920878426353847911679049189546153742788977784829770363024213814584764418846113060220969939696010909697377221944055507619182111941909041297674964280003520435630360617925926325081128306399790898813509716916432545091107016651175933241563892985822571362351835535609610824513927842533883315167024058543408873869268622950295506362062662320820310477694698552023305824171888787325678240395750915540596587637816382058698430006487352584414680613615158149622387197273658486261683311123513405047970313795215152826317432956452304774125242247499365491602940989840067162021625593270222290844160809878497818038707692879683613632938185035006548409422688383769595018174299713211234262025756200605045908066407985001333079012524843555520775831629150831877272651765639283756222343478719159272560234860682559505858425157499408498890059827160278850267191226851355044074656196609500535641150126976349713922990741444511232591895686177843713408953596756774849518483115659413789369990077319110955673643459746697403915236186366735693326386299670741542240849692398605180119937269956461532796729775309983055753384472860762405729780293581436563284621868735363078487230035243393980110190130166364376491549492524367126259165067759473307442936295594321934826863699622860028883660126007783895155212023860828106643047469639528044477673442309552620041768600122795780913513003857544542911323496617713216760955152701599102453217337450611489441641766151822577627098024478459418703769152391481869717323458663288220385296974302286090205525100942891427030244122677169396831109452700899185220228178129045302909857382320819944763673563086582567902450833837452558830009464619327112695426111044404310702448363016520522694004502748922700107891564639262236752628068382759768872015243556447103623724925695599835483912324105861338724310167794219766507689856005615638291939119129005483767348555312908991727828876092603285456938280933837810518540847972994829255624864304410296238291412255966595368775278911170338740320690973337265434561681852408068202752520599462711733856217595704783604581195338773343547574809945712075163304951250320958056576648965323418168283153482711250878268569185184573069600492443572408113511276822689588338877673195435814676753450663787173549400788842857296290330617100936983916892145027558219040356003579705787127058093901848527732662002488652327904090679883234264120257156298555395440489546209738312414659128297730126333961593986784077651793094812413651839547307553253285607594824295598503455590686020244776757335666012368708013398047888157512571766574674767237465724263396941849138460755472692384411067244964384618037006942523907773851056716601140542836971782161731106741389625405118945506979130892785755984746985099548043958573231631809218689449116479870644180564265275015125269467687657658217792561071398365684323358395184009884514804510824927137545734626989953875926788755461468598569162159262964687530987538102054785062130275824746231673303610772032778634350146090059312435100466514922113822878320403070586392130708667940406391108837128296175912315582572993229162810221813466768454610563278874983983809056970793082178573011590736950817750768835411975064809453746074270302810732435188745814205923391226616294191430119189997237408819056145716796094409747794751928368125484438327271238046835054297712984838047809962015360122568111265354682754455255786007575891069728450213728124992718909324418835228869160299918190042136516657009502135163628936499317563352784833651953580795411745485848827634373176119047661847101639097090108640452036902080372065195980771649511127905814864033714649911074432870753461935779969892126228902538926247029848891395026121566760472337627397581522519000997113334653361540378021014013256221236874776192265906001267473745291111413514841339800708927282557088564383159805259519744725966134038923463695164932001142484737008061377510326225667422512723532544926452228799663278811268472311973363154644606477810271887195060465921242812115106808831389032221164942221586279555348627684440774258115683885808982845212625598464855158284340632311392391866444521965891494909516561863252789533907907825136317020591149044114820979004199672059436255625772498888581638042616601732805002277352347638115603987537830874348536597183130492033222372841871476253859485657440358785198651632666005884176611914212692901451936297778384787753841290646037106123480887752954707393560670071718455827566297424163805477252678950012924637891703695205142852592907801427512398120030801773168604281044991765676765205030923715251324923202139717302438655014834426090574745479626556403880513271270810710724220556915670078481761772395373127666055179593593098624782675089193391134488308325705997050436571328791109711743552097374301967019145456163101024302766012340710749975812192302546525644893796685810086954260695025468869932632739509055860280482152705141783627366236968634320496645416642588583683014157680244880412448273685609859953432841577138442720032846019612803135242986622680941933312505754455126383140172189831206378015005091197550844383929115496257771672630868334125469237129071166640439037560701582061222449442555746647831813115594705150668113296717749581337816935437952745153105846935282436849563181425139775771301945169148232733752005474636553212676834640089615087545439376005409375887041239217461330322240116280772075780913599605646653286429956421384659927314841119577872154846968473253276661300557143121942422909495786319235697047363106970108460164794307972697902492457087086782395372572159683876403733716873817927445351947893843405447747078133531026966768815754257727820746724625248563897694938139634672572598178173604559987702997472083463517215279566614646114131454494143787879546228321752636714197915872623790047365443013277290151879192221826197297650532170858300842488579720681490461292071809395556959197664282362402688904267509390230619531084769561143703094964237247636857221096031661908968587572700951877922807088571026054675688882845423859236227306628071757720479373584285575294081130144833906643701842762827062150073277320361576979505343473173339926865975181289223500011786827345797470820684123976730934734053192505409594292152666021367758080614153476551603174424154173644163548886572848479741439004288250975480234149792806333528615519694266945774464648816864973515316700009178010715343699756123673368307215807955764539171814365334067711959110372911038785021425173587652468659289684509666682613130829473587168167320839682469480408949616671183912461231824815963506266535732633742005484657499602979917692416422688458754412587688017461103343394437642056786367329557148566089154763276249888287587615365787288673996799056748548540739529499099028746835290234082390649513189892108516361324485947619281476068730491384116376814820040097563118045157241200771580154108064945274948923475774468174936598409461368454108156983174040979457987956336419516526436888437795396394671353884989143339950616986907942320819413935969621220562276851667445797432827062186591051241894666369945864489957037309027657636726770710669344197924627755566849042625620009050771864138708298013764913511232840239612557812293109329955170972347293672724372514734706409710353688823158062446243756015803427341789080285083126974735750753307128931226398702753951622616561199728081886161049895156281943566555892367231623030912273695525101933774744151921472397877546521877949857344106983377451185838767793305281333559843647638634489535592195714249725100679171986787552030461883474617491823727101792161574414590491796995672133310849081691640998247762046641079183368368864992952157759855882424373623991713093980974813921994220321210971891074957298601463363609451511257886829652200322404475234730628746268260697945692419515915958777976481289616556163516477555052239900237656723494327813810395205636018703981595412328095305882766888429179449781104430903800283595394513177498559509727835864630768511145737692493053746996153741006634390362437036148325184136395965529273139641064080269591960810010273900152556973972726061079478672402991991457003735227131687389519406916495993200202694557165306583283103044182499929647516349016820832241625288839727796635784620009619191653579371443386955226752402161281659962184444539947506000613439534554586424324543623703628951639231963012064606303712877901626605431629095052586710164042507973417081242815754250220688781509706599946305845173507492942830145547962883076680236287234747886133673331772723140246475108226272257595580242926864219430400791682311206771636487980891854610870976291718608613804579771798023800148052204185544880159619551483069519862355943380118152781317354877326873368914714471451776801211483784355811041502667340864159305351412163147995186448436044375704406816490747771832076030073747803971290838707136742763311631976854128895090645116231332415653372949966079529115454667943443381531295472756261272872714415656907918911744322396103995295778558567879443186962474960088487423663858995871253563683847797514727140329281890234523778225653952546419977261672746205274862950309044624873654382533212968854619060760530309730827840953830729609236949893229622741880599331035531046479359816542320399571586289589679147114284037210719064008522536869167744902557519242901029702141215117788131941506918326913444269508530952086128235336514890603122441957483301552857221984677561319251436073722530476539437148535987702362554432849993133355454294455152543400269326931981331838523102104970970828240536887929762656027915893147151519393873626040112401693447960827716504582088347028974398918837446263330736539299954642598507895782580050571339457249307241268814415886733561485622218656193467358490213856161169442872123614751854550813223559967993126892033176450475018314247011558772344452401520131981275558470952025336961390843129467493976452178546767061634827147118627667991777519244221314678341484322379302620565963820320647229392464261255634899966790427277687047584094430237277953281838451170363300927308435082315771490578614832112824759258207371485569734047745051765088959370499896525612058810894185997348529487172973859462271388436385743496217472553786106903253171372688935663242451200012461395748811154033728823457289096230445264847969569806321705443252408255481976975865751236036453617443712209766404853675446874028174388196180417351028182080060421739545849852230453074304395821608803950529833304219120280777215642230942756480934261167110015848907503936413498514084714456897950706882772736360015227686218695813129427326966652301121139372682404955555507104458146956771184987681970344117460333213261941683461591865691229152637756687944920971071144250171777383161799184043196906573925672028199268735279977500339299785608722830075147032484803727845081423765765002560607209091315744166548547528438337956103811119399103527869327836036875371305604320885458875952794564219360817011086250888793249741669982972682168698797759856963624298851778649362410080796618721611265853389533901569776182884012207565132729251744450210957058176770867454698747771037164871823078461548358523163681857711545684343008198875353463041025002297775313062800253873071101510482787556544174518922447151854501929951723953820352795029645274738107428296016023722673243313754358312502237578395035963385239452208355478948769290338023019682691483154223099279460763559049689758619627888074046536117510487421182506097317106008242405070627500216588938681889013226789441792970550968490308015197346732309088702746214746014975725489418108157084557631810621432867469634378951122632031732234121768878397144318351561661130720824261348122842264897582648422517224904577866488540663926690699134369298038094624612199449669456721493569753293477269416703807648506932042320301500982047887277176506962389123293120666001496898105399803181919328908593232208349617232060319746572478904876244371890552553710946894108032964095411240700021070547623579976248530490357541001969237551925574913305049682664166918669886411763609753049301212956312289630275331800440208601898781099785035007418915214460209927717476660167652296619474448478391575988828396132497534736391852366614987378393360788403392016301996759597809067069078953705705430066906693496724565279534672846305263835273069190078908696558249444775446763508041728664273119092259104224795730038277676119396053905238592592956067215933868534323129126486742413275980601655478773495645663466820118297234991053048669903143417332361071159343433239966213192658193388909259143688271136261293214366717653835599797652078308075267005633318501638287906806540258105142415504674438728553709612530219889165577363463547247232517733699079326620222812333373217755803291669302055073934349699554133914348902342046369269512730274191966347917951314072085934979672073418210562833651719246773549103491756726889047140923399163332869864022996493487925245163576646096178616755373205103709691992012580453435997669344635502250582982602618815929403442677347588062994618644533088659000390872043805400308335215631433086995655612558673466861125091369361164617987800941311044097153254358597651215075428717582147077488082967921485390058927730302767430488080282483119546224361593472715178583093371101587008933775241989819373189536138579255479430283306303429498683256850084762043427385109985293570061694130006234301844789376600794374011086010813850344218722379914873029275006047565952132638880862571205235454371962072608987226438372840373987319023617967732585892718843671205026992921092506164238932019573212652593105226513419292016171584505282938349496717886252265489941713996579774915729517864602793198793482318267344621404501519393263054180074434808618339422408509613881964709433397334228030178754978050859486503278439565088864479239031185518547612942784400696890364847641197864292906707230332029368742877878792346868417183240913678165796827601716032586639458109589465635787732238523041128302679897430544736337137864782790048197036313353839106694598557273808226741102576340098281524096034281935954441399555107853475968310986996453797516161524286626127449642922058570457126427984786918159097829922500322936451740606588148341650153847432454822794632383325343801736520498480238172491053410577008118911785417121184757580201852854364744732726354283281652902654855078406693417725697201715555215640234687399935191351643685502882385692353804830361082489925650636379180722634268361752177396437040749877122050973481380919391339731374887398847209640640061003225519895111448325818650583174583263101152889529663475578924047935940320382901295724687996573290440100545516487273345009075877170545335652227481271457140607388744098535474593709782796799203601453821819335209078187746412631370965772899547414756896393928485391734824244647915654785013628277557102609792956984464290510718791142192533557300185287483221199998148268555482018743045544124863362598533431596959376815134130873458508177321145888950176451925831755012906241684813947790751146355202181700882747382273722143348057855510434322640622163999761603650412125143484786325711332815354603236830883536232656689075919612870984817280160812581439425504963313180412170059089849135937389117010349174071971253276674896629335086795802526610502785795523075140665946248582758105464149260025287521596116959351957831333627721722969318916632614384749937709519324792850849832221007536900187601991307188358463951113416929185515298350179987337604709428568711734937669332603038759570877106546919100634291895966482420944097926675557035962233204333880234011552319125087367359376950577786087727128539819463784984746873111593569757902629950543326877365218154656616195596037545826409894484062829420133621925663112453281487946387987444732795009944555065853990170670225577470927716820926625032397792016723906674892817021948478500481845330757332274729910222332517553816963805715978338177271291005938806417190501024341798036104273139345598403220361489026041648469152811348206358012855992894629711650529404230714773842809907898666460898152731329914998389794721831955614609595140268738012674905154176883100385642228223911439733290559920405406191263695354314809071970619549973340788361677487436684391982782253366878444790013576871808038752728347541111054294562901298620967429670427498156074513229074246079247397892786444358247481658950239524269335023088637843549619113548163797974760688290524793041899049836622765692019023376358470374158462221163347837588629951806456451165671353316758650865900201250564850381051187042813343415480183976658815218082874890348855924889920163264211575172353528395589621678985544817187985182310712091168542222343660073574786377065697902150470213464651080956249609122571693022189555042285567035269447679446607897855465858681130195943505763118038607760741406217117296722418941396761949794976228612874686146089529602626208653495640253449813995560017114262657685722986905437916834458482780428890272678945061813391670086801035005649014721414819759207929351456427331241906927454166327458385709909000584673595359938264384395261754093778313664075249606079886231422545865542701979547183999619617848728111893509640361758161282450314593674533911960795092652090006601509258666484357315065837200642464925878329313410287009085222353994868964317021659239737313398952949411281779967920691613127790020723686552271899350430831013227861804710137307752823421977226361701095633342739992333500190139013778046694585492290359077932660058500564401970620005917463565589915713560532348706463981075910414248452638402433775122310359930793284538344959565683521287496176333319683720943792789549800623119731178885474411769052675256244695393798643055315269901796207172774753367922232843044930629955488470802239038968416575693890250473272566668849308065796516271624521293848589705044323786548174048136044369859119862094922827256763700733766692279062349920899927695672869813536753130480586176910129324570859065974486145017171640475528321716886573507825024643255260810101740663867030397187939422955808172165998424234683019660588260818762474035163836040528973205204147010921829329014786090259095092301029269840645613242565227437956829415872136949038872282734345228458306631685366680172129878480058543115515118026346475127778461138410014519474683484801528062922825427615767572924590990697420741176971209131567723819239707541256198937031420092314149486955397957125455328842428594141439612226049727368848829480597789337524011498750634075264099022251557508896375880552784822955521636544564787150083283624985790908590561939930252468561434269155675292912867268614111736473844938034276813075063668920737996210077713874723489503789724071077483449750333225198805041537861225545867210032459131445817710615990195799213480387201232577567569478652257528327646028432132440665358276868174863970841765843822800569000002667486128545240565399870734444657141279109600563204327928650507314395494196245917670210853648633570047071385945346128399622580783087798741129655267958244808166132234755294010960057224113430081536736453789404722714044613897816170217385309198563367928945708401454152892006854360153904797388105713164685922675346973676636832200726678766285030442584751902952078902444295900928589093218632193503007914176035483088591134690908973456438323217472923456121900397652827760202833737180549730234822878243735028384651380085885473388374561120439527005123303018286320065227762709574311319917420454890052648665458571696642522268016008272844165392676621343035521562637923477169557372492186869152563929885971890429579772886204553189079366477367750160736243438717527709387641898387659880133777167292018371731186229312086791734705823511933006453633090649823595729741617404140271966583063523508044131845981560979882602291250318179401288677637153451293242402365018854606920539526076980416337561276056337832901437538205470025419498951856543782216285108190850542357062967157459824925861018495615570910350072526142241671574993962372392291851708458520461648646322841149614995041157603631339801596501175111556327783651981060638941260145897336935435174774605032626718637552599130995291274900690536101529663646582864123783520951252416260789620950888765231712368603720402064174886987573731989683235651959851262163618610339952504140410240717965721185664995207326284455738489953275735143127820070866668205081255133920849224731447055833751627644521027006998036128506480885569225205509165642178962392358039148503203069216471297268668446085651060481023083637714228153613592115876194708609300763430658490143635977016223013259450898335841797937824313065530863726717746479319742646224026153920629968580856038056869479779603521769431250693173103778348059914095574219582389042729198676242075794684969896420326219329368113706276384643605464631684342823885753187335201137763662117819545887656936227872564272042044423019680164094143512592558483298963302985787269543786584077280713925346076754852048872367631138349034185433620297919433939484011400427371686595195626667927370826934667848423764260489150063393101683785411634018199887173884321825650036394062480623077621136167085576648597846387242239981893468252986544745475828710725763331904631599487101977440358665604171272460492724828249447363514390111792798759468587526067009851603078592777360776091650408412878992025328686115872998997980856987271957780732295667118201305235778434025463263386094678685022938523719393661349314920614339217794115806180898786455342789627395233460560461795427443604994107836034006964002486066253279941285982639878791093023430216149412868656207814144027401221370658727002990686583569117562393510405054069072046316394188557541323098573136841694818622865812040695539447998578308399697456975655637113012863051782877828842101135115382122555247769512502643456814884582581358143078325757956692336414149089080649032968628939083085103548111578616025955971811195796050181791084421822536939665210349352892921415612810382071992784309014158028574868303109992760869772729343292864751685625703663842275637258405286832069043674726645284657736667015670807440830277604033276755617400480758868240466898026368447167929103257111912145548466814601305881943907397576197869700627157587248232144640003841186975893210511048830237117928399778045823258313456350582478064713413984824248379011128309589362649059284663517550552731022746898760944700411014598116298369759553250852467296936341880790949459605475318490153789659660284924523561656578365377677185962134688148722936055783672442356054999087807987616928765982719827667618212453026186500698544948727924559469300037329920847917238526953079867482736246864629509618053031165952098261232918634102858087028382739304582314677593762555386709232369548136276285011426741400372736451472603589350092626654453747059128748936049119814855846924388760508945428555229052906710901593820261750271797116707240065198449612083575407394572820439787232551863230954158577560507734697666048404338135988744309464883127549253510318629991924435451300181014485132942496208169322376003628961716740253635270374297216565278327062496484118243813137839575029994559031442779472719548351665938784220264089626531658658685583769782728553972549179828508143141875240045618025824340615272453099291949536300115807730262717535564278886419974203491749495460710092731707891126978314250048809475160724866667811436014028480712096992700716768307788985009030933566867463898425136789859448221661899194354116166785311662884294109153228601284312997534125578883633440198290926051750623887765171328658238790631163684673879643946329029452296406444593567115354160704982715140303781608095249237659863283895746489907534350004161652390233794864641998879696970082253250113882733100936715346524236062508865831201722775228502265036357520528031056559244685148464246106376136520818543123539879388149575244508403956998136661000830790590149090977982127952608015550937075339984757182857039614876339116666220815755762890046432753040557215138152486761621390486230163909120576650217530436323657984995350145901799350902595730661924842828801983816711651590617759631386652844936649624441576846357874891602115357175701355374601528235800811970896396909906750244712224015418200577423028706770188015512541086639801515857031583858661913567893678748936109094684647077936181008331117188956270906566764904512838704754361384346968259282247750484501809629831682126157548842769788953261130944484616076105440439517218536724384649882307170970636688419816371702265950492378842067845327164856805818544250416679357477589282851887651270317835205907076101836855474398920062190901991501718520811765917946809493674384224989807815826757819874740186110452872141951472557235012116655740404357042861579671791217905931258358009066193184159101782813894785113278436316444293815376001799150074983691349194928963627394849116005603993366128169294035444775089704679262175438813714309464042536168290062725528494033339831244332589613577573127079141338299065780040130799910790870794160067050329072988909946035008273685234305860889755023533437421291732255242655826524351344180005915949156105987174432893616312571630040471015240914964527860071217823167286275756440460781722420516086921386948984581385811086025800485466750103131662611607321528251263714983153627185168788677297148098506850140251885310201153421533956557867502047260097149114469296183499614589061892866649139662811113987132070684635195890409330659681141644362384382998845142365109469703417701107132557087848089687228980170443932537492022687985373286404867340928364277890037114700617011290880760726845100950560207363298031917272473151541532558737165208271695384504570651289212748719592553092476615019843225076597239861832643316403347073793405878510628441619481201232239765760370614908091575982434889924687782270949976766184268592029011299883855982168237487234438751290832913558220795353025658064234245174599695583979923737875663680155354418615908442293588137556499036761560615091351244998060277036882897135360177706816123769778720401491890619325042950631516896553039349681925566297145024275016176256204866832779653974745116413632849489565260171474609296838515209594783783785700583514456389761298592716454800181812567365603416319687724908094052093018415790007415976649130694716988546254912028605893389583550124508976668815894754879958672460827067107724347307325225500721060998318173798108916468978423852335098406049537228570155109345312789111384909774028499734088983252745099009948038473389910696408706243565613477211187774262153741675342121859427981213973608104979344544538008823786970727949530025678257885074649720265411798090540753764460096104393921875832409108926288237026839103493233555157029934706889495758417523135786831471489607469765836228226103543669132889546832190210537580287498699945067815666347421038513107829259992314678213970554384913483648888823152691683840877940188923163326454621335323549963162970478672171459292225064595568982237034625831334775872750317757259396970586833706589149237731683666283703123811888178044682862782067126511883307132706870852200426297235773735675368254487725961877046193635073067941341685668061512015851189698607676668975214230063968797305034109644432964888432869733018758293047339862214712742113661952739751894476112200158070232456717746219060619749337055354187460615300290982071899812090622588148095212690532737436771480363867987673816085105124203313657676725988717253867026356920540820876377646860181560054760597580241233440387510655151069382964126226447457388670725593894259761361587607908468860994983282121774006091516488552429220716224649118906265157187996529766751948189440004518246708578497480547876805053168246560265158457438196809933305048220584048462816324998396550381449388627225599937634417959889564626178558621765200498356916847512364404360342581758722669401382827813797034544631886864305224125490372485726956693472557376586892341664658960877235106186783411822743012466248556032401238051160768628000666163670958085091608242712170088580929846556402868165070593217825393721089880959806168014650341355031675638665107504659396518323512031498491006341367938638320177061586304204266063721903712824136968856116509495107188753808035222083508893421558258474292673660727764926012286190195103112174884253414369283726163895656539400743810952668479611722373600122864311376930926826207844732752904391361617084768959373748123981947092792802504221150265613745528972882127003710277232658694376560072985063929005590015207364797010694687017617504451713132732616985541954050671640477370025853223045902410568360576202863993264044450837635630133894401117676122374683542680958240397820423242422583485059970929447313679588640632499577606008898619444737045546499715194537466842288542964969277926256511621125824256238113100608649320163316907502175419666456192827433744517274718628415929355570608631051383400724541699429463563988674505635775375687508419295994276043363939469846294411791166932559273863077568212870457631070601840945196100043488867502665830355111690632633433931918928339361279449358108909878154175067407175313828918990688432157224392293983438468298573987518317802834057432903945025953783219543848833217080885442334783342446342619851334474368272793026298323240003490996272221871716029364561185499505354167140228673923488352204928705008352388599097446727422610191955172773864511974363560430041010607729399318836003895446899968705614350146334104412858975243946926126112651697533721282946533820799702159335652981020517555496407111220276970037882036744907790643900978847853021328526153739192695333798780814029958365105476509168827494240766326769551548037919643079649157590521875596663316462183346118473841298766926488546604703859151308205803493408127066549377601919904364116864813066041976607027613060472233873649736219970441765900388738293402176140180677945553276984695442459227731448807193177178239258736396051334153261455101380599490157285844378283705976636620203273127379101446020494272575297242533957360526918559806068342055185923640690167938183586044630988307674884854414752120929503237486170834020884106245604810154948035120225097272124295616843709212734609005470615420252245998614665661817328942027332452928816410835422605994976687537690194472725575098920123655145488808657451029380651489735526948108194663071650945413740217105954675258571297919697108166683985194741479110961344035493109386136105065252435750348464827331208471156500568656423784554639386359066381696265540519142608993744201883169977392203747362135053615378136773019987695136316507914361229255934779060679830886627686688899127561848907774354897416100488335382121732548272993734081834944651516481824783460415283377070612637100938742202765983840359033710485762333042522813509337796083462901980191150321612474151777836522032311031719502851953983591942843892752132224430437773435590497831884267722412109915262358454676003793573930620137563225231738123961597543198095728492980548471984405592597551992787186010279463724720572001721375632066485103387301965120692583401813526967461709998566330224241318196128083941464579898760686494827427246575611266099742659383422112865718460293402566569102446885357208871799325810758830465049631955916245202809739007661122797558017372307013457182237013943685513548515092431528919282929097471552883095300398976407845439078407966730173636379198633928172087005924941710631958567294105052592830183559088454353021241613487119329255574942513362315944890394726148234620106019835154778787856952804763475916811103353977960796567339673463734637573547891230513587798381411042986015400559435643823883760000694896625645423309169250806831105493855694612175657043296969552763163130508000181883390588431837371400114267625829801104523231168204245314239185497225583891630180492837036663555179704655158755900014322070905438174782816843257088248363175379367491196473739017403864509339178942819370664545722507083489193524190928981763427966371797323954354021731628007165927691992879174760468076521754522712359828250058807851610379615018929091986744805267071470706111356819595464223042136525103238767978743256078543991214495345228848781333490830042447530068303329673525633238839859088839926767234403485916033385206151888357019252984560433024743146476879751075858759494384987638903762634447797160093647680163700088962410096744799234163970427599396232000756737697214628694215015954070372329479635589913082325168380074192337955064703502443490467783589930624045917376603587361311808334287662897898333106123019689701641391774768442153444808701201827748280729994322912966083445510755973194541303851630293054945275284623863716454576132865512874659934004197991625482636191829833194143118501849438067486657212599995909741056603455928108910200923314275642870218760612295831844028879584690899662435403420084314148600905242165061734840863039206845317638359110920548707133033783052345411739787968315064666454028829679465989326577872654376498604623177786420879572388048145803329493678749779285723567382811813772529081228741433581773776607932393004961841341907561606576802719209520840879442462338737685793029041666409196579863061106823444676137041670682164905776715192195162460744603944819908669961861732982294133022950168010556764145060230225618601170528113541132119604613541010211562941283910693893254106731295000888440561651293804637788226290079293205770165567864563398117666494172307101446877037021034169922221954969527714114591207194169670833890226846046454405319290650189776565783365214727019595182238091159422027199505063940618929415538400256847626799848829653717567740632126738850397285805200147394398506466833549402653810369944615552352038982072462607277509585480588816514508289952090953709873767384002487755067170761632296707203186858861418126306935241446913566838482972904680523301969809618419616689697159829174574048546536965337349419394430572915350241695732591849194474753610567723532569419678758802558914648429856185075909671413761401370619955645881053425075619349737027592116468178191345984428050704797697599936092387983454751528992110337232005111371463573778284507745705350893959433717578471754761516982169757028811734522100954493674295161695349645100951243523655336882202441748996619927670352911600067617793518546692876616939726059715411139998509351696810001323768383329866903272906254426795084521848483045172017471625142340784774011139782269764968562869312677586828139910324621203968735848403300354274094131758785322724907938177043233793688223623057120177444216301263140831256813573580683647362670008893593240565135079738483363836681999312747295067441852007860494424680428824546497245964353149818304997260723313102756545777089399363091133619824855603267680757592641568851464438045643165946128564980054115233096688790653922280428283011428596348352840197688342776814933350874047250850989166062460760700640896569777325071949894824314161864958389294743657891652021333502951638542410685646583313327300854594263818843906151063625040382823889982616530667342493494303147100589004872827168314872270624411735232328602140420808920420144140193257509528881166919492135941947910313891072805430361392929208177118473304595911962894877721569351466922849057357066807595331516366670009755739244205792471048919056852104485426427104995111776775000236722923297709759971038774591468737030967390966728923914673961494178587743804822881665781011296588142148592597185798977275187451645029274268057670536982991463370466834261870873552060265486789651598909976481148143802179728742116612443639471140525063177453851118851560158314675041810927361131084619798602699099123910695553778355306485831554721360638217495418321748182009382280272320906484539909247215276791416393988710476010441532067327196460203381879469734779469090915690441750585681591809121576898378192345516210798627826202620575902641009650020425708096050905032818721292210223121598126130728179168999438692637590433204836400234819748807490409168321141388322709985754388886206325230632226284294638865071413042425210054559493687545708836437641087181334817587775538707385178796956939934208842269882489574136447052705495919831571946771104215007115482595709894666759762683631482140374691866769291913613862140188489177854744472545439966243709004998364616718866280854259634049868138536676941234519909688832095643434561255737189212040449975262181387160143514903337475647080802947401289524441033485784124947519395019931747253559537487277952235779489264578092699286787240658883663081291064390736658623497556733430101791880749762338083493186640878059920165561971686148523239885956569987569742069554004772357080065232970572450397495929862874347284660547814954863777431763628693747707008305599070505737981957390309515617672379171039330432563323135687256799451117860983520414513368680674306728874671736934204119854565331933171407334462756827340554440579679921278647071375827963291902945382676916379759171626848239148612805086373676245785349680563319577754978749063537776580888501617707125024809476130208732538798184899227346643214318414631524300619628646026566949353576344565858823932404431420185252281400738537426062599010739021310272109768987534161903365198192558461621152081364666669248673960009096349174567359829066455368434708159523771218021273959899557261038629602437318206396484981324473331711413567849179179864148676393036793776263501315860507134717205562766075377230080945375023318735460081894159091570515533554410624249003693498156109834461662821039381004313876499843235396005290991347337539787043879876851550334845158524230401973211276635618100087441631382384995163969690245227794094774073424214776889925883320845817405999607269247454578302399615569220281298714968298867408605236123737457785653183942308952112133370351293305347262776148681163270958686696597154490552401979291297584674860199007710132263358037564048559359646958498056814705818165526076635702705913193448288452728494033924728679351423772741668174126788061567368616295754594471406950848458488446950100720643094272091048868792389363616951117035226913143245795482967109935661214150609639697291875895494071778706846584240483068768346575284775479835100192296272966045865635657569016961931818908422503370138431841506000664447602312351543219869306941054650544326043154323799382495563187680792514767958015024496465783318360002246304742267565051722269410201863437867119666180063191742453898305659591102814495533722157227814720410009675083039412004225902247267066972912051507797268583127905795322810913414206964256994869353259893380200676731207350106674522248435354012002473339519649562958377191563484572702280933255637157284144434610613185371143993946608374122052218697084061792312620403611431911498525125188750364395232415705575837405936486141496879061172348554412138842868609495428290093450801582416275079178691140181488031375164902607144192347186856842640950171414534308063273603002905843341633682976758925203547547555349407867957126563159455590696148961386953123438294644658781278665404516919305373201885936277695572774708119108123875247152665242859485809076336617742448094440996975120234051295492528912064864541588194572013289085506469475937819127658969059358943586521873167729547142751626128959742707133535378262822755549370139256463482795355695174448884195366385960635483362737248132819604130445294652052140564579064716201792941846221340794093143242062922769858543689662247736801234461019170354158741284817527592482377314997711073847005561168987217162439825958315204737753307885476936354467181474431670607135208803682539575407515476557324231087536700764064448178547198912585940639901940062474833092866092013671912926441384959419630004153147878796445925131678928308010951310024031019356510191001661710908739595178605657906175236616681176786576922907897534606449196143019907691817849391461545482686674735171793706734373285092097807316975953965537247234348330173400394217774213617697804258338895666471534848576447708711111387739066520011724185555841203841910799710017407167518832612269077645215103252832629975627473711228581010677019328818303794975376799442290716067878227414128851027075250471048865645990581230395889350300472972142210859370339623888988092403256264029482938309611228978619261920412803877252867044663272498381716529107176508402876609263800117226696735113560731482470481470575882955905969952588483779988637029336977289517419657308928857480351329721323458346277811841182780141486444584047189693228089656625708177826010484495833174308668978787237579497661862551852968800541883293270447391891599067006748005711940999654639282897807406907212951497028914812183603973261786975476407504455726280700591610749776826710435995734646516851673260650761353357499260979291837679861091428623222461594196686518912080452571130525798755116479862284817705227153383614499403887108113161811008710068819800784990502756544377921888109161305154695092622135448384154380207796735592469629584422526788377907502053584618568614325071357070296615821227196899584884997422878358622640664542499244575710485724115048586138681817324387815667306924658996034803071974864842843857650439201133342960116530739939413110382143938876698057951272090861107198309076070770537533190478868852324150501098333148291996478428616532961834869325183029102220932601454548168089623124943112708394680241763690786471869787882249567353344881866430330873266980850926340074333990749610044616214731042147600387060442461710057890573558469886968189568143033689344236271643720035163047539056174120329706453945066794885279362228436128758907497110531326500603911708825850993520720806145532414014329150794682261272550343644191665343413023810470833145332109976687423170014298036787564630561169021752494128024631402308673697160814075710073552690771808583240478156738321981956664325973101013650639093482933682087998780610257763342924527539827328724521963317335219162883461803545092802377865858747049994923336637888012812764913561270056621174516250691975176780542347424552204905978464300535261770486848654641583436506521893664397178428092475122841089648623423931727318394419596011705166417571475723030951762327950377046923708577603230747440365156553217205175081578486824048419848582594210262053225004331174455685448450401138498284058352019722769764980767047845996566456301010106416182911910605538006524051513956128550171373894613385043765088420691210766206970464372517200299703263885249595736572306297491264340052948495225595900335551471154520554718544689528718500385120087685335238655849498208541321664669362558435620530477600465322802422476659988429439417344513875030614614899843763820389354048251290704345702641404715791917378051601712058939382752753808752149698973117935134632457436564988861552923003378190195311892045260960088411328965115157865140990260812985257537209015752070489117636881443804571000303400429520597571378207232025818453604026506257344369593436793813025364976595105801928018393896468051920794031201783310092232561004804883854416694036249053557681565239111891894046254216769439221608002745991791269665315130063723347399049177680740965159938197932424831857764866202253557264914322112770599384424928293201408194680368559380358549053634693436092375455752056017291379206439321816499452908630754001816446422104939257230978597620208460896303938400443811373822919533528861327677950578429585671648509597549934718141205510007941891165536338351213128208877610477417841703523907042205273806369613558504656437670924960998737072858064395689494488942095089951647882890722833899999099027095794080410914539750813752335823898642628040314905213746922000455072389306501216051818713975185624713318883603139471949012584347581941291836773398894117493327981177658167271514202277737648227597583728848335826725431122534012892732344967568222659723607304479731355013582121421191513344199794179474235035929647488425545498531476806050373068724378599959348822613581730846806563962584297652132134576321572606551588559781506551260754119143511869289650883689521200150644275526285723636157155565378348941581334148993742489267146293598518622327755218389206324148942482843962263348195209470640990320026936928729206723949828524164060945808729671273814318511590993764660098739522263438012511093058223638111415040686114069448796422229080573110814591296358321841414997031012274708599804688393847732921140367547587491478846062110973794484780529764154216781473075839310460939458667070164651845679172075296441734866083176909629449279600483315334326464554821498961625192355252434533065169039646396578991440292290740985076615486556029101541172059011551648738467233286954329952179063496664430757091842495516371571473524432626211902665443186349535301759414232095528275956923927480149376710808435869504577962259962591335346583581618254017483026988899751625115130451027441228858226289009594347061520334605118916320044455276065502598175094111883787619140453509494791212189481488809440179363974896834408440356892267948015050603751740935117206116589803371061411287558271836102904040298395812552491919004155191558248029543770299776942632727208973448904044300817809709790686314776915380827599402672046450487437884954704242197600981455939955056150481585142021055403490568549685429800618290932449344981188384283117514644975302497082516442939367997800903119061516462945892996005880748285118600575157216943350232004852532404630794060864035855928140955974138056025754784352647957937575384601199799986116903066651494858048370691602201852074024966806109324827080549036409421410989874261122660132870604741194783202751681450759770692607481434182559481175079889125705371566363447926959461263751729109799296858533044968463649334266736192951166425923198403932596175047465866051230121737869643426586781643113583128032873911853444201998640949014848570016125387828758639193898541760536964859669924252641804602008975309187239179615650200387738625341395526840397588890888287417279054374072623346754500349859295903229682427007334110901566329192084240572854291599364709737461977466526728125941253736717901025064328370081814245512364225409915954135525507992412776521386683869210098763462312480210058089132191446396301454609614831521348804292302003382848174679147872973747332675532555172777872856639337104728344363493641965111751289246587768733917480163543393636675194363735457563784469575426360059786733716984824339469481715361061984036389027184169706927857226911854602068301003599898008137038219693317224312109875910535928951509453395592861000168468305559771526011532631740130140905458457771169487867613932844215260162737848462257150851619892552675040354633974265039170548994929597629398623961671971563509447112607869105487569798040336858381329362923102378966575369259544770942582412452248737788672226813792578145651707515426307069299683150159006189457942760015818028366343142749113341092692403114234105331525273173025255906922633660721441633289856448284111819369114098736917369648151444345407701793121095091195328029443033090295502990583972145064850743948677279459060392874266510257152329673365338534428647564568907266358665925885981041544136201207814339661760413704397129017485445296792166570149572250249170772670410421038871902958315431169672724769529621667484787100354406756243815899420652242528911959740040827374292974595908189979469949342862330551714572832709399154680428010727794348653633840061643999089171101818767544513293426491273042527973912421019713866288735120184817656754511254081303565788627984910378702675414778975168238382887408936794434273814291210467079926322108360288379451232365583358886296313480585398141580188673741943846973371910149298682846386108138122732352684277956390025497176826212486500981216269842787378571076237253299566163747604584590650476680638676305583008370060784528011232549104332812159653023963056566657924503416690003364052496688224358130493151189923960329448187827043060488617287310318108924882888509748063478378644993377379541447077608240726500443408552202170516180889595699549900682585057283380090278935630734496873270549487398072106793931544551028114342063525310810891271348965826906685855913957198925666697293725466195599673746303540995819938794773760290383038190174499901632584456630576420302462139640865384172140080094572718058617435653416432078769325739307342812352764322251846334029301606993496107493781929415160682599297019524977142638963867701662706636078287264932186489489251937884937657945395463023656946332313976747150027896832346210864172579999361973974093318633876549757115015200629739722381041809848737116036555021691675285058584927382530017908225529821920522497939754796166632282655579061992702368054497537124312873006174152487564532740696741427550900026117234730514560983584158272834168622897609044734576246972765911840042782641643913132994691728175885268259401967895290150475989354478213011122631912204181796519962124310423253492315684106803210538033669016969323689266104902983337705889240670503266829710949776682914057949700138620269079290698370624296877136586943368534332182124634414137264348091290378246979106755843482846548807610882848345539679677673761438316568041723347631547379938671565202785041003139995554459825051909240113983107908730195895604920028970791496671399566796139061765866262076576844989739971582123696432512867055467406015369759698757288709699285498436532124650482893971637744285354713372415932201638064689842788298210162356114011245850149668863993635465911830031218471107118389964642200820527304081618009966702268890401167865376792617914930182543711348261103144895472482840633367178484499134322318571296215732257468074126499232100904108641836572934343290796272170369395266291565697445733775230882936995006150331445631808781599051256742503516682570759497878331485240056027689360638276403827450801801995674010049668164091230793761964190227767639363659704376182030026772107838685579482869031779321803266758209310092908913062789032885207804914551073314979417773105186352141327432457807798266037358732587230251778000485584198177180505989151291273083259148652071614821332082130203795751255898765875732675830751811800213042276369031076248691740033865367740322507912698886007166029508161076484643598961652374220225140035454858052661876055759901555020470803436092964418631852258895485790027415894719513465898201638035284820890346498990247331132192173736049721352012636580645946271481126748445840411483261621544955098297997785684811569790620479187925177885000816821239830732788603777161742436254806793900410996250944972615814689402447466811994289404673991498151712691605566540166403777084927464878802449648743072849320387438401248795120815507473139442695893723134600256228389798916512119298141005417733681404552176150185905386543517542687354460075775353857204459642155307550535769405859883373447602758267549284607291017052345281773476428983609014837196685371811215264138235305624675023907940767097536922222329444613408819812217549960730507737184812473404393488109522728096614427597800235573287239701383361993817666522314105385076046934492646020058106463144025437253221639310845969058201980187798403332163580761617120715934039406740893577891194650996358163461321268339769013941467911961504090986020818022775553236926905818336577106633206528673237202769514955863456827106538642102294284050506324498028543375806345582349654027019830577940913390044465392126649254704189295942238524864759415445153746507878516376002799240581534622627801414110927534016523134824996836682570792792933667383012791774255948809319159048347943304396590881557364840791732644517510191757254536759407690223167706968898069872572986307750723311846026155674853717452995041437159355493646407139402682276463009578885210298185195970505159054745569168728612430063783505125568288095947511227634963582307014660168981945294315298156864783997567281495003183725403941626664129613604946953421543928170757193781786357590160888373763710332490263447823328192751738662463659034141863114171431869112283849902528560752073468318976189251445260059438364106273933412882012341367144393100097671259766888822970226758506631069930338322624707285271001662263397616773377653455082508025742883613929492880198135110201615227155509973883592088970021148474136400330121880417782807561753421786138296453939548131902773524153494798810984251777409303494163394783637428163919344731013439444340616577610541614001553369783981356181684822128780233030688495331409684654001384340127591947832014948613971425453586059502916905121801269331659465687145516655105741568081870754342027316558340079453108485225291157701052051338565663707996100017815540286645506075156635941181103467193182010717298262089709171887882078882883499625896376034303439131014691078854311408364669949588185337054929671741029551707357639046151259754188385738203586064658341418351566300107517867792536596843924881253396696672993950797089396058950746304629327517496733652973485467865720090687463412742718501775309402082614271886848407478727937956130789049204853869260042058068965174048768043147926303400985398239433035138798948017475740286018042443391338137192222682164980650188118654120928389677911181696053501295705911053548772079411828550876961233726549072341157300001948538737669835255661747406223858157073018371091601127440330051758653556437334353586439160734372738311063666854463157829799898731435018604071182891313046957987202496924116848659771771079557260999208548562167060261650215361873477140123239176977685225990051557503021082895839891089578242609193878981332682146263364139612653530196958543300077845615727584420645192162109102374497229838340096857596490243116055991168290149251749921208743302611899521620879013728801816449917166938429759176562059511527752155459769524695755761675252991236481152401664416506327954885929345612573046067138445199469523545773823551196141912569466002628239946082255294334723293326229276778769880474829884924548480565945279190187084800533802110324845057837036228381694557380428147577012296910875956856553182504930267362862856981812691428025033649706853312458363587521490822581488760032391690848868203317981663534724536398892401528390703373745247583711402375127004481742757996088899310962675537041437666062585675950732836995252426159109191462155105932652306011707880183368010322541677310260044784332647517084517122521833508027678716668684561137986445150276837690291053836315103007099173420968457205103914532471174756908521210624626010920624945547189377637470071817435403456768605635776459608168430534478401834503797735269570825689409292873905040447032659382921255563214336070909957963969004954623986281353254527124289038433071359721708491868998395658133534702873411557823673024218066688559006264587106853489098382315885249131056858193890123851505725860493834580962195190934419465116129730620943510897730328481532674135597520576383966307290222503998589084921548469690559077993197891078125118121604286313047705709840024358822562158543430925109475905751732535453919231607922722993111464728133705633747404971735364905936579199230591968696703009736365831129687430574880919421880855131609186710231142881831604877392426608890989724210271217261444928792824356958625476852790333978908750759590650364703578159327518218819203835933374482913536806504634012653715941015419552904378020727345910712836745201553901520945963843668427133398567219323325581838200555847276573560371402055283609854014389170313781672661153649366029552230254624109974286775453437887379580994228746884246386399125691636096507855367464913736629522722168393471428408162590482226550546390192109473708343209229920590540374827211712007443773886158755736541475356363274517229825105430134123990761746715384031401566972501340074577714592392678898773806646508403964575478319655584422497859913948651782237031381787154491334678346992513061264037313723668131513842251328401430679122291541368880761463800867813050707088262551006091534687947604940216622406458792713375859794817034403644868499261142410891886588671471991948220842866950041293296149164189566521760668257302053015027278959548656269234016433181661726072660149606590157319213175431228114517833932752049680730472993463637792995998482264985774146353294598309122283832817053528506904682169449863952669932805345355957758420106528965081579334967970434886098755803038719750721949846622252469609897498640692993711884279851797445261559773318463759793513111125370598423197152002883786771973058741926519578453928460912651873499912441623480869955052241642421271529299643302231101918536444324989120564003375512862284420113562752312225034584397215666817396921104473494328363600772698181393497186349145858007556045157299045118202275348368779226551008403752469325843216946477188128013471346617698853235023671168885670977578533066582864173011083221672236690671914455862794902163409275711946899665707256519103369145942664016550428285293150995607953459821121230778076793385803949977805564692126290078656402342682528045421416713507627328791708162540305400879064721791241729094838953691491368099157539978493121354809603074582161452218125266560749519186517098167861639369100424125487876435859908874832075598576453779252562226980321741898826938049198721828943335809103704631923592756871670154708137718821471528222353476075895238783873162112846471903353813937550714712316937325436274865759992194250666766803992434171069859008442762420860067484837210089320337687541045887610870580281505791416968798838344902724753708912047997788073856377575086815793611574115902192022670167282531193623198688771824119469203449763139582368621540620218918566848212210325944286225895751568750596559325712143207719220172840407907643421390127146734351818165579821209928577317792696050759641092751738707254487786906689193207559651035381808252550636326345093053122827361175070983669488752452907296476292948615098607633816004577453436088029763281820413532299321682927848257139666468144915963716572973729375676741185139509236694722622510283685136628305024392325753207789395338783362299455622054224609872089969316114047415563300214447176981914181562860602382458980574718451482057979813286143511361330278783401775053300808568279265771200353946578360375270486579640114631240016534552225120483685495905834251914633907515042918529918445048082811417740778904989610747522347995874639177076285338452810079857570814187925882735598584533857002019119540023449508852451427630001394870371064695050501509667653797845537793867499999519146565897874674117687487214671833078492181892755613334092614529768396904229267301077982355835938223821425792099896125415740790479438253397723237540340743418302750835684654892376502902393451597799493834323888423473322139960599341260132236983778005920682301282570673939699905345880277489207358118412581858522109032522806877257189152245051869208448830187628936152992755598516512923178830653244631511468566940109181411970314474618925606799115862212378444340595552664888953205122030524040634718988390775647409452712357782618649189220810015139775039554254104907512703289691615495048504881053916010629167465239544038948599877960528222934733274773781168137120959010159740549729924675604293485965137438722350729601111385294126685406093294147843212450275602131393980355479649126670534646516464042057115964237490231066773962351394957422851650529346798894708013935607417349800619017475093653054887973943281395334788811660367241014036212957324019062990661700660736875782380007520854540538098810769721156158684884274557570163606102068984110639899519594852977890849561692647906745551930753421181972989878293546063707659832862746581280912373621461877919710073586248594963433527663560325146264992153999217713534962455642309834891463649734387305954307338879570344259839920869055767939865449273527768065608323572451718898298402019842746037461215928801147650182804907336626751801497835326654394546416267642281313544466688418553558055111614818435243325283652767738283849948124173651751351053630997487813759547639661025778626299666616131537398474724688175693260895533215872961883954661289786336257569546158125088918690278538639869144199399149521079257344461474244913651577416576129168843549191865274723151273824761907868460466163311335250698821474488582897977007822540616275937082002044233837737878379909135471654261041327610936085262457881535631628904945907965916828795234017182149900505236645395158099670656103930910184293731787302824413448871036069897731305142360476702258652753359458958610863886816757050465774981538868595998411102521833272982719696133029266071594146575708690004942467106081112333250411914765920783253842030464414302382145723777138060591752684983864757640645569686543737665735925729551320614629724087076911597500640447983975698086422905214026214358043423663819987460736707347242071996687914030828915580807534849322382948813134174881331311758912429260675231652541349871208532036132869694917561018340733928704322652063556104355981263233963358953446533372927940773897532791661840582034369023072498661032756955417034857592298413302033460389239371875887801350788217217153519061656063534375451610444581415409140208291051321867725002705777669210904263864745437721400149178387223647530482022066777839332903863139643417931946170117462473739522150540326254144085211102744968511991674759042319610399050808799602674936453161382518121833805395380300114425247622911799618478051058963939623962595235510367859911836930905579275216901091656728543370242577235874992615342859333285756713792801845977145480120147285465061313239189837289738374636956344237266062461790874796626883816634806649495107243230295657396574513341738269159727090534366006515936891794815147770262032777913212793813571857299529909121865180410037532521225436429932762793344975372729569146407799838537548249093506573839590257500174752739752688164681458046267201536816924244161011539876330158080231520413470845706425747914003547664586255726115672032221287160655776171446489659051161167741779742053224284144722025430214916266441752086899950191426071426419524690804017663219779290176027648003179151900890031299427222629046250534523681284158335481322813151925078631831743448370623749914870092954694056765818820752450632103930810699310503272131180630197988074040764242782268013848277885496806444702844993302426707813858513357272978948093689312176243004026662821917409550452218748021007850916180731694125246372181534247043199729636074209552597599223000077500105721658395620605575156050773185725106455438308090006799561806666976265033688574698631530562464909412267282077908281173954856969125057237010351097464712643840509759165266063967946528609558445182434135224542200413669007643393132815197379056625069333344357795604852654532091815363037850470909863426247475660885923541014286774173160474577796799187447531562956277788407496925765493570505384024970978659175211712975884254795527226295891547446709763151570062475878451652518159943139714876566963318911391192677825820648524790381748063231927813223738925308954298968656991654425469642836109527022326193873738377102566516388458824097022269359964113211066193219628970183659689322553034158245553620039766611162633595405907032423045349630319414214667498817406778096938272020244940543330024248965589771098270936180279576413012694411639265990310703879089230907842577190138242828598753915774698351059055707355223476920372115512515554870527944116303314731924028718523715408894891537553366952290810028640934702307078126467299458351162947579164306517583139162477982905375111381677212629848184449749151867195706473751720123428519468839559279264488880889334519768496078184849757216377470700556958731863668684182018332334333943634395269856806028132579953447528593678481502669592688046942610466907208798744736022198571229896358852931074670132383216313886690096566526379044186789363820875968793669436414645231304508716722539107233319606201203159185619535415145038434690878067893928541273380994191951339487738132909791387570812527939920014484212823023779409077486925252931874503489213239258408007083183214420636110601530552641413836811582216158545322829280041457902566462832543481666176385458689157933195915902891462347611047162303040515055392777478790152895053791240672645535388718352142508143874628897237626992096748245941827853621737319759872236929893042759077988900721846423722507759660374462689115805292352822455166926356764646704906381584272306675242940767801648843397702971778066420229405325146122527674014275709456033504765481205555805655998046907396370413471269007954562446919532329563954671514606108016775345718061971666875619365569375291044796521539614617559800788503269673297275818894254714296659393728278131293275019624003209899506893670869414532077290767128997785511095513163303148515824862845002615802036355628715054917614032819853061470304239731979574127133710509352904024020227270036537972390507294063389294466293834462191304743443147470096887771465099042472932715237337323789080284234562146029157269074767365838021358403454483315121807669663215497304505063026734959115154452675506588051552168045977951812214604911734525680637878214192129188703252206857622262015357225292214395221831020737360954439816955960823499882882527351177437376486008541470433732375907906797771263275040860395856853781664132762127564658647349892760443071464393299572952014472402869729344482399718965281362470086206971281514575326119164320180171929645536114244155196176399521009911887375252612755481659371488008187064959213912405019527062149645419508555950443482115813976841786545102306691362329176418741077029574706158266672866688452665369877490672349438090191494468897108202031865785655883037558263767384168228717293159042346236202875455941853493082539457157924025385027615306464077026711571984420139153187176032515263626874934894701885945272479632541573947697190722558826570892856879643682299275863135254686572549217664375280925704774753508939476908493938348119887233252952600576983901085272610497767377287321066880264204384987727928163944609676225412377330747146306949960119685055809750979638549489255216801777708101728158068796988688067913114882895876197051396989219272865962487361107414000021003816247858493271595472799249036314729825544473828824301239671676803285306620445221486139513570969046135712275010620185862295112093599473559583350954754923736533804826992625506952421527270926673149415434683088850762047752025932328906059170276154264747628125452340463886109617994790608242064216286438214040812933789407168473379937567870759288085025110210799799237842269362619310306122424707980403606215264938068858236381103667437241081128954953163937985386905725057916837933316221896380750257722374572960904937862228181817221286710366979016489431033520450788181389497196291015042296880940026461684419799174831332260523771723626168323771207639904380767837662483907082081787705116042700219126201361616523504736611754282329899983628969768592805845441991411780703584808929865222816631417394683087161734670849285020618603551667082852016640532040021538450550086789997047995467690197193451456569879233368175849464714934730536267444714745273555195427986320983545441296394822320773827324973781185766017868950758437919150751805737561280154738099115257791562045996533210659231413799366992407742883419177960679354351568417513728865696086196711477754203661557809986902849075109728055471124968248087308657341525609246439953745926389888505099489617186950800142024911228806141555723172320700693908745874061900020542904021933722628495488640351824833893578564429883403245548811817195663150280387885328060859888470689053080134652011923225890507642868488452179784622521454389559932387488697519042319730395841749554370230167226200304230415651842253680870255650590496544851810218921711492698535590786119494015493602555584332288550047268927764456823241368619876585652065883276858222792933275198188725842176903619713686714349276161705094475871868458522108099362298809380907714581973919778997501119081840071549391561010344189330788481979578636453266431916969176010117054350640138611698231352236558434278722628910250373768388081193353348656169363839385002319140838517497312378265665535744763598619319409929439653628318223217400330202475164265957315354977045046324723991594325553142148196903623290122245979818150059603582107186852356664415396341080731676934410365681891565181531047672052625065163870789723090825146142008350202731823941030081725845535825110801073942553803613990817940649916043850307212848255503490843942136430958917714184385642111990669117978751591640922253564174990636706901311222741395190354492921954643452530971135933559330871711574064846837099792400590980850758679217446659745316885432906713174034766304897328279296937073268738577539492809022808883735964174629852625736012162132247175510975593217355103069620825754679767362543245554714656642157669088576885112340930223146579233432190818298101473501383521002291582023686157811699095213529076578218296209484902940765960352420386488278829212752164821889952868457842167478544078095913481747476478403083291338848834594993539813479225630743619463167554037059743683300764606260981188517471488177335351933330227949353550034959935132889876313749814216182812081568186133087388436618934638174734012142561803515242523546268895650984091128188067131374030993972507599331357955128436792528708382591714421761916337419615628659125557565431269601768267394608691531312679040250564004765748538525316913139552709876718188565565113282184445363180110325232014330971173028687264065885478959809579407234426608689310848265334503905398406889190696266324376685481772459520361788712552015206236714001945889868481338527325836781316596359121122011311541070663666988111049482784502874757971304756224187886500816549001357246080497882248367421468936913853792174005535418935142639102109717997597163311554598761403576003572733344235095143799960716321334018032612382511254219455430739447404735126041331511179208256886172200195129373443790200592207221438693497896596138710800910670975263659668870567418750066164853974604595448648144644476684647656855608918880631962220512289985523103124295828924274134300466032367291521031198809405957127978069403517714404386138922578227627780317095221371137507359941359939183211680274091639325728140244938661954238297151281779831140328972990690581425079774743656908742228578215423369973777312970610897631503711062620461294210561359253857637857176521268749696859515618479003416279297604011694172133726158529980727916104892369912824682576620036381608811553090305099938639003216973589787233998545644960182802646980481046601470312736789587447374737390820729379631738842888279257181255801664750820727428390503253790766935003358591532507644729514009975637905914694983540215683705783243359447348990308537987976980092393038232116368939951814228226655162051690820706507391121732247868095994932961072330751890706236896629469185476267060689786767956039431511197890433205260740604328910678220994896024728766957551858964240850904144785321398271642958158833335095058443807245784639123155612959469447740860056648802966679916385249496448388562083164260399652852690672516611496409590212070999690073597343684726789036127458328340669671745310515937037366709445795813996738398751865028347145995460096037719637917266582755998126004670845617893525724972097665403030358721704816899310908878807852000458461360184991217104589133051366130417252832046047352515355198132628298580243316788575657665118868523549418153321347216784734580290961645812619258340940889910157655799291015175517937864686540673041997449719187117697061456522110685229554821397047074653445678833261201517818969130248892296119760483146285610167439545356539936671276293890647628867959476125337891834896240449110051000410485851102880643324330284283976680559265887557525669331531695429502986561669534154278028862724311014350024041984425312617660157301132315205647400312389476746142092277217278946882528706782318433553199407295166588137511873879661001015368477352743886586660850482790768458114418796762897986812043559751200167728361206617372157120037163112760219458779237121715968901009804470308943924018545080627990153631281087053443675666049086017575915612076621825077568479217548316724242414870034697653483005108454365109693713519034310613262781566531647002815284918606596011652638597482930673065553080988684371875644907095908789684614383241086266937279796038573105744509772401267081326750025337457917405099382703035928719876288757282198830590036743823450689268543210114383522714196630691088695864463940679988550861312597283581948194318872819773469259380035175822535829682669628047621086862839006254895727804880271514790529125970508154710834430832641646602059160428348714538578492794992303223194387752048296462108221710450584876380876085727437430234250989676156158051669966005794099950877970103884270180040483856683704448497764283963535483262127728409800018540028619987268736105434477381769779972394765394257444846232050126310739009336934431530260997983189752921649424196542941270616359712848085143555448055275157069202818745231436837932094363485456405731094045799340808032015343014692695208347768595784343223163841334696403550449489811258182854576320822591665334464052945829582691009180165736187590368503162457624451597820404986968167139519070966293964708246679387459231049905157201372713365764781920765095154228976493872247860747420788379574980258034995115497970643394715020924810382031296269128578335457674422628297387149881689568998007201531750302571588414934647887220068198175604144338952631640384311903931215769424025999417164680196598494602909371423363360912865476000185560773732154930250391246355950941997060839465578405557968419973854680627301420231111364352298322131108980970267817950620586161526363691349296412243209062383802777252164334339775855475817380249503563113800056762259990573347123739920600621202244811149878150296811041584453205915216024223844695339894803491070554222046531844694795415471301189633558694805602122680437613262555696065498659733163221283398040953771370258617476019992337325287578691791067940010295838829503008097038263139213099479577100772632054384887927118620546837626069687058377950348076896603974106386490198339243279284598992731269937999937477942241838873625755727955796218965598440852881984712773394448986398765861499423547824037411477992766970967806261015941702376075837875073727699597693314973858143545687916945779807201365278006668751796022113840347411947155466916256869843561912443742052214040334682289190288244021964132500979806636527360034317062338093106982129888830495005678515561560893158604516494843820266341443667266695979874584724666704819145166131961618829187312323804854528462940068539180911090529582335039798451865585873742493329762272449291298965266812098113058273075761155027103266994877871151222026309775978933910890162408959089742329268836348369789141664066396353571430521017087846117286769356173438980085094268578739954429790793105378569150597571620267746593560040355106039242316338807844424388088568514772417842390915732085735758233557459846720648384021519471096564736722974574949095249895927057266264993300663272337229519111913298395616542739511377346143724233844934544642802068790324038106901458019550147240741255907428972782170706935452959117719913861363747208315000262273996493770826934421627185686824552065398066112354712384828945258909771818849481766142551387297173276163878210594578660170477190121361924472893471934719005553044577304514502920241281132691891486253001121020673009566928215597936283704037160185683812267020636762419002767733841658070204518130969952730460518078472790227689625949693789559092725257180389866924063980600555052816245343264837428872050241973110824516095755992233807067623047556647809865004031006514941565134054190421395155973201289381635081528355649460665539796668123874443176846442460830450440771401148058007536901971559020608482617099077694427867906389750798965311588096176599686795654430779492549548865821500090760010276570290487100910962210497211055932868777193012604133685019779695090661352858624987188325586278332122374338454517594316682012870018169415290887271713318354591406067529483394944196867958203299629926254801493132651251613902439032649412044450406856613911065195127208276781774935184761566782714232690925050601762542145210506688037576519503937043646279543001216325860348653568155473511110271508049375585260683752875484753457305050271136281434060352070104813961397681345703051581292649953543945473655776082847810859262853185691339233612404463056872524925937773609914811445981828246273001156481689510392443445470910691617602758479450281997071569026441707094708027333251305831124359314211090048495320455913802714392677197031959359440460347218668849436846195122405540556077584555158159488700747957615486140181989692300003182187415198918290488980374821621616037376096276748368272349981414467276964564756032606829941605822266402615784388706813806046580480194101271586431506423994138622024839173683167296165313300432738154234751689225131025904825005684598999552330243501026245506362230720840377183662283753849584068583741315629357209151233658360749077498690424103604352517237940740792896463476454666927133666299998244781697499645644831790144689014632766932787949657872859030650123183932433458309629159159125072441661666073479093008288848371165482699352969977580178286619100232767728324172735843528703356955884014534943413900263367785664930460521165557209679314973341468712365600270788368954721896587040405458212501851780273091291097046159146587668303655014926385930248339657053730900914084085006234704853745925952024309566841414010518697435378439592735131992267921107352644636621459779907637608148758482070991459128121433503257927724912116308303172935893297820396124525806083322067561447139041989294659323690561057914580063880011064052337834486541537783686661359818992464493114399569394700431219481303649324957228517765531307034279747370946578702896250037666351432424423859009657598837462934232574614903778461631068693569525778215078335672505525568737234467062294466188055974193898507197940432005318335570252624163149180024780664042495777881107965199786610445724209525600578372879855232101809481328505083385946881190811303374897750998896965242247619984808509465873761787264627116053719065390760416623145664043017076585391748511028354158842275674134452499089815872304530574783201657844507817536011369590207521729005437006413743938095996268736895930357718999986232163502522743765171369945163413974647845568304150586933219900750310798749887979506198987575809598415302871789013263368927596381895898394455691091336591569606054186406967394553203253206650534565384243243826279066275748184457526222824611064693112156876298610836748551861813040230115394854357282526078807531066386497084789000525899764462373195342182283970916930364163102981379737799163984618128610967600294292380647486447147140290500582731242095571130035992642386130833419077441987856733392500624615198939763116999865153846411411558403475951685121048286715378535982612088464431777855448428383554967796358025721232487116316563227907823506157432101776874470747019603481755482901198992608396209525793751413369539359462081068094120528836175093582987537881624631094604131570353647561039813090067915616931292199699535642078677544177769509699809394744076041615460288425934523801233715204568590510030659525427940986837516156417398953161248327659559586449480266678293154376505287387032530245609141306784448816838238612690956964503840132451726790297655261262591403581197180567814580594886402125871312157080833630178953737996500735772033959863507033414770440267071327774778902136377115762686899195215906217164493746182308351681852504660971379002963797146150733848352815650496068518372953502103849702379954048658594173540607071601899564716428594918412903618282096089764812648339029774599737121858994458457335744350930656981807645901357638519513295359347560541894962456066176490403079547584655374366990768913651865654591595595678354144155907962410962955204316736099337683682479464622888719025826538534772809183312315889617380271590106504284739754533837640035440574918706866320262442182818061409111034141520947979468088628138791959307899272104521683716678563594680763254089395869353820165712770983875169999116407077551174377029228136972367139801708025201129783427791295523752045453346761091738189776877087916849411707538950604109199223327676781556338048291196590057460252857802941045530313790699143472107520075291901594481345694041576609259116203472818897938141282615538631936727137654109498092461382335116967427774966995957833536073362316585990798940891538214887522085726204329082607656055016968730491035640006522986188441233114637851707544837000700344132391675166371502244245284313558053216471916538862709192917110873186548626539577841976956021914411465144792599999951836631784084825625902800193263879483333131965333096256966134240486048649502273719935946024560213227535417376234527594598195133203572139293123649233979093245213664815574051264249411644722042778716618565108368453256466247358222445368819420663929399877774718525989801436470923581115924217498545705322812022868183834319729827364733721381339844755460006524240149513048061235465936013923602695377660798436523640038373651402733897177483214452636139327084742977215144660377351680976307082034332974513369555678710784157864194804380543831931545726574985707464370208933912401812640333757725494549711511937685678075161747088691577899994166755646894544066047810173772084704912774773241914862063973001918192135993195316198730160339864060558811002168009487440035117815854736949285644250509342111400652461104997450292405038221693610472697992997440095091793983514843176854132153375727817784171611546490610786101489258515953065022314282929668216504941686979717767872058468062103184462235524470794498457161985365729226170567402378879816001100648081905062515707533213056926984726729643290736137025322967120783980661777006728812157829766371774588730498058669429174725385378259298312828711770928768571554346829817429418885543432149595367082745161396244380675707079671056316369150026747047241541935800605107317308101811048906304338908676650109479813007827985522050549844048381479235059913895461147436963407872884755567822153724614790815141830619229878040133065390713629757631362711182495574149465817274600024115281107197568077833562667981697104932760834305852988949664133473898804106475047100336645239334202942971167037618992723354593900701222123193695743170860048656778017411834950191975642514391002642206793457431993284670845413112633267507499777842694278223530861628078815801270620562995317098711708215055730422616389119152769569484249194067975939842195338023133227556596413304504174744931570522665511457779193205724050021601392356928623709330538038411500057098701424854217281224317211834520117430874226384632296551811846785325454683939593540932495203359717038267672283983753435411368281913217821562394793896082212833145801162946194497080818174558395665120159626641367997801762554735263772919793371048205138090387055495136846544542107988238805242227290734778982943416613739614515036664734557478987448184823509680213532502536327780680792034619402821842837934200441100220945635123490216760147683286439780349025294285050548654497147383989635830906745874766396512740259958769558471148388052527587145038768569499983617017111942050366428669685494191309897421662773676177156464589393039132271534063754803848911320370002156381819359828292076031267753629986011483641199689272910656165802645949163994966220630358481857201025979459557303084418143918874803891086094250710105234624389157504274328680768593405386715309698479682182807683995500040429303473558737869950604346442550869715614015504382416291931334613414772314109080260527339208660956609197099218817244397876179977150876388921611550525039252448316774435857470079947160231424907388605481655989205734604350749877115791711850623080173205309763671276149252505159785878261527330378848858299555971466808086901555476696690094266231579894522199214538979200596523159811438513754739318640814842116054464435722037205358189572671415303029381638237254111307587679938231895536097539935215853271707236763751024539935030569192813173001237543686874085475998804466814145339361704591647303058239481677579131730063393569379729545388500798546313556070605479486288599661813031880627287661532855279559208379112860945843805928263851782768208754301577743781203066437562447424553946978707326033280018887873105270241930116431427643528767442005905822677037786180453729394470355257141480593924702190388840086712296501688762379935111007790022429708829264582793184730261630804399030649499042743456623427373016196898821115073846957677198505414329434341901297826986265595636393011668642303236885990920664159918621841274448249093319895251932134161660499885209931448265065616236581955761279154797463640221213687538386710003298539193198968926344934509864312616545925133220615404109312240945159429682197930724580145118485533241311502752196470501949296573497123847208636675976009633941645675616251718063633669114995323600276997902342235308307591314239662467084672266889998470315801787329249481526329043277570824935105822589392122744514862589522626477403578415289966648680969314299554326581941796441840561604041269717062954057067302104039104851433983627909019574301057761442601413012809212535282777002627615511652089199304153354118878594273903804311315673920995821303723687381086989197321809012050263511055573172003956459778781213693106306968765420949284363429639428175322345705920140574520156627638819886684197334228748709132496641161394906799022001925613870411288318679862733615620157256668436078729707017887316705946763268393333274800391796840004565639332953766085188724390177488018769102487187703057001107522974708932251808793013997431431089363377832383513334620487874168060111063644788259607577545134644823952637247914438898402197715608153615052234117801129276955491800681757322331277263773393310551249005807828110310182278706844336643213364892172556180579150420677996713504326196010424568382627744964312104573359289702918169178227337590325498511705347364524446954772544118308062331656032274857781190738165291534843291211605208185496674049970218497613515486589062704011308513544397781837138563155077057930640959565061688571120069405820623671657280113561295901032157579963912692239374645279041440142119673234866544291852031151646861767642004517608520420026321159679380846178043294114709350411382454874385261733024295520241046231359304624954122202821310419296039901151936723392585267604579848136670125364152124431983196487006269124139118918078424155997623981542484350702197109456215705994154316251252384094396925446894407117752545608266077604114030163822669054076003131544157114613973082120145079095203113713261406263388815689642579354255763105729956181626797200706060391183447774586841772375456091962865535078726455696639514511842431664690196878256312062830349592641223800741822012475426182860272659129444821684292539707315835066253280764795646952767700333055023222446391731083187614353825935801846932216202538574120981692944026016951062987440565849666397405189896027278797690513814858561106244569570505379568049984471198870588841350382998244499580946649869918793535537432790283752843370265691642708177687745195017692204312430663416411053186346514585656839661593892815013785057658973244454692803416220550175176796691013923048885071172373308910869241530868860728618581430954487681781856577269515974950608136381793093440972192030093787141967894525083947562613515665631409401312712570841406346819342215428547765464926957973222827207609074796963781093919476474602513890533603094478307602888626535464604465262744264825710553801035017175089655689222236748735248307145834034745994761616790466490840192487782809058335541846681982338269217329482566845483240295245553502124387660779936660374512883797221699900907662904089074042447100531401778081453072246727531640897687656948416676115768227759397221226804517256077913785689698852522690773820467240504679981488008665719124962972524757104951210800383821604240758276099027097947333351713793473583925483139080501687526275032859993787662308968136592274445445114104242017937186697455392968360094219773508265095144868400182875131105908031029220757495367791205315713055558499690739500640098464436946476959988880997283725641498089632217948764515028861428772469290928578380395357541543649243244033616119153928017647729667149666734949332555715258744152659294630968086449203694154014605461638449505870707394226778310866464880595887635121267510017871595990882026759354771432245974277210149420351792538802551782029115431010450936297905865360645256846204473415901876582446045182597665952596681501312866152277249849102202860124903264295628426111720398209993719471654661840433771049987206677051518671262957970597668530956574428212875227138999027757559170882767794949305511183033774234635407127300545879976329976959815855332479466154789340521043785684575589201900089286722554050686577444603632355489023035830831863640725863098737531046373491488482472441265708427903397152458487132876437087596118610468085898855019897765715343507373086700451868297797437374061759592733071442510606555737282299253736048003530813570098112069007853849029308973253144530042370969324291164356795474949381265705054980759049049966554769826373042278098228796734787443852661325971830934405777197256618397826384670958691189066232423614818502310830296394129945493125845980907283835074704771699839140655230509217468153519895538303842757979298130765933384712307769227363205004569658948800575037494906017256387865759443158957923942441843699940447395756153444636036134777267162081569457351733857482659219335726282985908072131672993092554582665044301345731363388064258565250615541656143372362153333009048962763860314696936419336842562383432232749348498209702954344407030453635509444694783961378808074983935337868584990444807308885866327967197337769761518500609243978616158427697714467848611536720123549260104320018354345657178438654349953403787695755731986582336171405040282264725766331374466658916484380789643705233611981591912863908653637833490423762030246798405279543518891089116212612604392334510536033112757224194654608822755846454337549454120823574011075605332843902666934900558503723515386492667414781263355523709528467276791991009849598313514257170742366704352583933231957560223836750782136792632013871526725730412083792646225277414800441114262659812511696345304459420313930881053929543019424087668795140419976209100056075305238308811849218443655948361705768866062791529804686129243324322681732191376671729076659689748243833911633472807353492342637769045292866145794945209624436211178025194094333976221537003403914325010980939676231031309607047647220669766342517489295639238251583922943349924327913967395776884009944137131812953459599749847606870592748168642705995182799555642874409654748001081220357376878709866644610436912410256842816017890084050367686974731791261854845745436147961199996124709926967544001021282186936228998518750196428465266817705579908042697529463756649771770689745368084119562052226557930821450487785273237309180992597297645845253607419594469809594871970545156514719842792789477146364959591520975518904452059478042321630182525360998466005062715666951340368726981837197810774335884354872949363364660758004182457183728156249273642247868521896683515198611615921268504969606040519467933290038245559149794540592615448219161663938125761263638702278903530748156547423437173752235380778060445428354346794187079857647928508190323578857577052155256020779563626986018707423284653993478912542637490701671315513294008338431723677834641837341119351030280165774257904133549217268407409869713486472816184461158201682957102131243892111506855485837678668863599331094535171214044172839541692069956985606599933115361709844126106428669180335265202561911885837637949594686344757373978777274648785956789746421228768436972782393577437801555124112308827199828905035761296963575349951901714013585838059311631754922144649299669670714114359627650682782186623545763411045777337885980475082352486998607614819438413139447298341252289487687904279262967848313791734213137782592863341612153428236597423320661183153790146619762487956456629716439812414296778534927843011284334755731470332514396807466092832790207773498915901015681308896737742979598599041413746781300865678770091003375804189480299343033406076645767817809081964926075173455880628536431465318344496114562394639707313576712692910042703062444908722513529970518762847394838177124639191163438377828174478147002682957170286170851464589965503906887455447400214409555750600520646774044916042500744880744581994189139156553443658140477534307804494598838323416280070927066463796591063773192320143667630472748522414488996014328651546794491846033508357807802760745305427199318917620664811807352871258836145121389775173988715082550061982444853883321604244977648433125551238757890833017392163530301256599582964786874637170175332704758999541666332116304193603992992214993038343515292972854251287400584337732565298823834555899827392452096020932696198087059070776538135774192254364612464499818156325814608695914380471659452070800643336975135145177454506409345394137466066180263920353770849173614423603309347977109754469487290261732681291932567383716284172232971650357668416797051341101005257764225444141073893100622751224579652454895567909672132074254244554262345143663353556023800133299048290380280050319547602272256667197171673394105505237813891711968447191746168248922748964317775102901858086609240400235567251453806510922871362061744439203561607569199182961374823690881882130379514963406840168958135865896250028664256932155664067246626469106862015525517125108549600915658731139081313106802256201496151212835463219688270432133619466666699902159204707581475899863304969788845780860741719505158124918968494296872456248564634882280453814005172711659284274933880109292510054830332877773093180672473609385125363384706273486783849843045158763844994586911608796216799235773589631797172442222313457911508170245175998954056880070041190058669446690325098731190212506184280693381889651137053653113622373154855237714819229831612200692393319524374210768040161401897568720996573506155748115267257465934181323908893322446912345359834235908367029696169509955768965959710419659340465479111586250083422475448168507073866548275943697802194965854331333804908423962102102036964493911604013533513752232943126807834896926103894287040948085549602067641268045062516286322909912118652654680326608590914826159813023587050396918970198005626331396422011074620821847758124855600847143537111512671121195977946436120022829154136961171971942306406198848299458794131795907631516838780732192833862636768330207010680871676866045048559774685535805325525112418167859668977696612720312626343050497543941386448268175875833185427691005129472716749532197189563391866831713457095862151358557989310784770962821754911789887946328716988995882845502622575889204696593066859366338548913043347107183536483657290005407449922149461159215088320296070180290060870832714792874671356629282764093575198072740602463126762688779653566624996781938330872861974421894825617033531818297827418563844773005520994547232670927347484068946388695091083173769499617852116138977954839464537676120198136298465746629494342200194756949632564621984953613051808995070712085814217294012506659405431786696464312259070376226155895284113311557408526359540568641542428997953329161732568297227674129774219988766434015914103890916522519965124608135929023455333879316683856230708875997635896100201096122978115815698432832821013813599361413306135856038158314623381387692158474368594363053613088740917355160639866675810098420681700620352562103825521840892705788689064491933243504412397832756487354659347977982719793604666326131604686451268625243023167406118037232712800664998071571023512943048778488430998997744259425811401020955852498731820087535957886081002371812987181412750943037124636559166342747972696359593591548102763829108342801169548429895717249197242231021227169807860776802565316686696132715735937520324558416956809564742247616113353323885572526507432630519357257871053299296296439068707550086513305044337283719188203434827418616671657722546467033519510927111895248079220780791962592229746744861656207097540352231794846638387378171845958011272477806063649676184268076158353828620920139753422699295458920044833577742900079479102154866344815104120941148174029282154524864187773162188998824508918739075643134684822398624372295146089914300860891447621522630987172029731655887623954754348609890738715523653912870325402605387929381425067239035709285912539953737790500602157918027654243936397516345474146435761771167805387365083214025227944033683465742887278543271721826455915683288821243609741350460837217495504632776464796887981605388834101777939334275455411188165302195485760246508012300986978898389625819139429927664584125337239225328470838126607718300161645905392279169661197573065219571017719906707050975266666514436886422868055016707514987001549209598882313154446093894987267013371596999559797206446039564296819683855641697953950165128604964026730572967474076206311409588663527177502167588933348089077109437806634405640254026952900350948404426302882397716889019549500264344706229965802692355585119018554815585310111103174617377610207777283254231612867353160850040840915196759815562787009922436254551822740516125367858117080984016062773702097336606179570605835027164149670704140026960853484807379395142219553409352657523520265354920022225982403202436325407063976424736823055292162086367565100172279488505466509616230381327987105801255603951482419455362836618184254949631273335847102945032850194226164916577490732411361249143599682223300287476810538611684407740991717446462443919569963163538297245629947907080504602051110807029120610013640919527381272085189448306978375149387063305776230972207487208794020895323223304070534051293568616820997940730942747855209404671661272462321076797209784843275735273864372712904545191965017126380422675609954947497045442202852540290493616976527660754749717538349388321567740650957125064071082165729036404580425354684930731028879138472202687381014939234560791644549877889327232623161953512174371196672567061786898611470666550355171140069951884421398981139780873234636192819979927505064269897815633534061454778738697058169285319567214335459757483145850925219389469591967450836424280722816079648722269296858982753488695104278818063641686677400517750324642778004613715654447356907635624116072942810781326151206290252594134601316695270233268899428235885097271219940862466018389647926944940511484957310075856754215828850343572983597450928292144664760173077390538657482773058199814971536687049732102651486063234761186469282800798534014397498498793313475486433729305240709436059233732146026374251336700870224124482121083710167479437861441269289763173026610364925637925465303411185951279056169418102094287800301740107332590634707379898118887110597760400937232615759898181091957588200185170449077802356379119177269869082320068791942492845308462648323892312755430856535826740509300659040936999825856564277750040880976673721264910213531564744936198980133608686588371466222052701391226444469893492039777935365885918698892587352385214302225475816473374580100175587865840854465007240311994057097782664408854391677079846855224727541671694506922303886010402935230490832890713550728343040036904426477901794299504220095050151465752906308244137097046832824814807662803857790236044703001008352486105209908143929385718493618522883094316702274745248997802613912304617695180312216067478303680575850532427464296534485693685133977561721991356086523500362421084429150367422580637423877220183124246027799618995449461067622969679516105806691273468026722755941619909277293809979885369988979990336083807156219109388987202238216025275256166524945262227504016123774362792175685573021446287953584769242571747151077175732800760119183925244100872629195564707533269016960063465695655582060445693992099772112757639462740289549982936600547165938852967870186349170275982943522838309264676648115557206493393552805653849398530513450584384193950940744624705324136908936668917979961377735492390264887238928942698742897116390995617454803090478797105269498995854176508948624569708981294543753786595206650816579487168979059099482274870572023076292170570416150376911693535684489264647344999105364338516029092946404733164840764698428258732500633625894210118167414780426760914139737393222770893500656040282984844624588854803656715802505052468329131524457942001973946487729493714694191890538975741573591853238677492577462771358480051040638040966371537078876783942065553361423793117316474619405237056920151971843562242264931061308034699746652702485784710457710885985329868994567963047124957745290471633506239226963813406692385453014959230553816502426914710649832137255410960884936385274192804236929449063993172612850008214458811809357776484425891013105563020062712338322162779720401576081919886523123653242530058755297179872080139779686191142236216386783433732745991179892575638471024135810439517017889401239150801241870996349822534540652356837922730519374253484541569070022451749633895003077414504200270161036733067723371927602993468580059940132149741974078054748335958555009027559574899328497435606430762209568812039686107156671929969401120763191544626942693451064849164319476638232474283346748945686564405941422877177687696404883281949716920422024452872741012761916237697936783680425199841591275760265982205945055614946577429054535321730116009164067478972845307545235201886382037031394847716605911479086049527568490333884934760796993195569384237237117939822053289162803151129249603410921028423612502528299089479499928930802957213820625330848033715738858520887218890633010566076983490568374607667280880074291097278542216291352028774733722492007035382594684366903521979454897147844892999485020234779370934830031177706084623683510000479858390140251436748318557475668514432218429344864473467961913611417157796667781547597170393905007583762158386011647759897601323629065788374977462875563564906677043915605287542407657808803632425593518888226090363780377351462091828086233481340530993737934545860424240204699527624751474925428867748891668252664842375098272675724262160567277570136832415824397083255066017711253029776464811981760171795381339995113669498625701144656167254217552571513411990528002304169060273257260040931417803612966169133617197560531879115632873738050025433998882977036316601330416065176239886016811264283451217988661129466907748032648655162991433033088581313524611449683654414664818192459343699310372842884343764095685717550954908343209100511598005431004923667350430743853804990807228984546401694105395913722306084759145109998915115892343867214969669571626350431458099489183631674705556478866570664801191448594283372693425181011000784444775021512884092440579771461496662967724258933479623481288456465741088730896073262165503319227633923086281996853681770270713417305423353854055853881426243081926186888542338622320529186420371708789179307946503908073416796615380079895034409437331503311794502932150093920810744677426853304995436310820581253187454101194003653468522653674184120593615911249283266528186775560843839253091073375166596822900613180179367055361667022247920992119842500820903216358735087913547137918846124454672382583169334915315534153868548155180515216481888633185712936373926257997182502974894013270218075216619180168733391395062014932859828889265389648849785634583400550517071886424580518028583580571687772080439032430456444782019277118656093608211602962714322412227193892183795115382086585751082976587846355783251767505064403068096868972136892297868541343260391998300896231310130193086619609115796668329052949948703331034069299878547573191265173287389698646442188692173640862265321468810692765445787570945903785340965637083405049752629913936857249860416503903247545465655220599053138758134400121768500343905851891928493872741664635696223239710325412426650063793746410213529749638148230302198919987206020017070843227945990709687966762827451297468649407397614156526754086489351174151310153412145960979103514149572504484847484277333306139534848648782658980287347666961287149508848777034744558746815025424593438267425040860768439498212518580641505955005065094449767522314809241605116426336695952943080770914022932603788606941559502679082588962497945584371842854977751047916500694679005596313791753388645008805784335849918582146743581055214109645989284648876100198596993553909402450180630021555249838831013463994816382065438941530823534384669843491385392251079505069310746881410826427637244659290325411050698152269912494808235771843734093983488990127416951485626317606906029000433474267808724487657870210324343821911117905292673979038815486066416443326121131509947853429965514774349661654234702732998090866086392200899901907710775245126568442802365458772224758493896684194170418248708049406595534421364128000686340171375229923288823606708077942254368928376086140932801229672072374958521364512956876578825438421764490104660395579887811137185993239874196631436246364922417961923708928193453736509566598310808885609331467946367793322716838890176257426565625022093983302670191638305827806569474499623584100633153388067043480301357838649483679975143366550561612703671139914330228065095436081816714073112476919476580504322778341137370106146229250871191137510340250849409836658919708081646931733734789931478606087912987250762566877089359747642761072482367497685499520368743729104482834953263100494440239198567306339989727152582387870921479013984574731880080826375933413885366877441891616324643365492662369329297409124041454172609148987058127782525868082923848146811392867663282047907355529767507843925385845284741214252807429344701404469242700868793477153329220191436528838397847889296814549034326105783479584015699631265289529672780930430234668657253105356515565995404173622849580280425374298105838650712261852414716653447487382391395945561336524130891397767594326631891544728331208730523824518315992055062847809018963319694131047747829381256534360949551851100687002108048720594300412472598641309079375836887250636035513266513176738138309434650937658796676423577181806966312870810671057241036798743674806359290776400813562420082134795583209508181688559266717820985899845016277142644366035327283410872195498805233437091543580847892852720071978719276457441080318536518035887504114040654158028189153030340873437167281859627948451365467206119063604635998332289707359172821072248511090475654006987400598596458254917116805789019137573788038326501248447663713375514496215357124796061541920174302512915811245925438592411179201619029078614130120446963074875163387875082595663003459738471121712444377972349928730948090393032260900727608925154953251955666834822239651518866171614691639454514009756694442623350214014590729615693732952728988172011239154832770172726827559568913102468836220682098977279753994491672803114565116910024249597284957040737564146641295905692746275265058559795756434487827736215166278792167037196744585925524464776234260825302696778094554643603705478198406554561184009788807164984043885637534643506760719164268025416644192932510816546410949712138509542779861853799863728529636265283882562398415808249938898273357903990419278271376309912685596212265697240028900989011923701653215332708783934389838451195188076096445183749559213682541177504318554065845184236736182261703147398257673921658087787238809506405174226452839202227835858247785502165616773478880226674355055238818319807296798939227694983829725931997918244922264057612807998822397750672982558650516932449074038618455459743234545375825929309363528413661360874291649638767081122484752300724671717136376728585522310805022911961679205488695773838285694228249380427821017007805559337185823980993787834741630601574198890674448046415611857684398060257577947526986217435000669368864906417129783017973049904116081267638492038837831009513897773698250818202950496019173958190575701432023067201866574664208316891913171357089556942362646554156246256736346231848374263112563802109606713129275737454735089575248845650766078800948484245156091838515353304804766333631277466830572017822527594478906051773082935366249533901667782754717578805103029319524507370956624539024981259482601376902099830321381524021393680968715038814211318728791412803805118747402288699327256017808704204887323188174468217549460610722632597556326242792404040101356580381436086437223136205619359407992363689628939374500344165010177086577458786790392258894719664873315668511406937755292630961595764786747603858557191797759922139527075559618603461361224414493703510249200833078613256033210689871277274919047447317516654642271315856298750457885556390480254204819795366241206509328849568174625628196807506439269535248632999848821702306119745600301098798607088242308540757142452673266874838612075719222913856290163004227098914276029387771449264665809107200777990518544132142612417798862998599532230335522977545460096929711471261573096178909442040505912720412717312812134187049971412525159426253718852533529132117463945102949225724544306048774876651628717282691376460494621297008271366576986135033365335327783794879026650843012011537924678974102820696092468355927938523417112656936736638696481523300231114256710365293334845509575361861711231693512754604794106935222690662640075440288449603340642518067595904140390771040998408921192382157733894544518434715486404471480462483363267186441990816622229175260430320011485301594329946723291906044536971283349544886905878396142614449212205900209136100913924945392967225988409108066763073932364546945767634727770100991736675514077191178474268103416047583165471506419560985816171268115279741462975404519591054822888023663449472726294679116464427752907962361759522162846507855311297561430904995627685451715585679917813075209337592571935535537225339725227191920738398892229861404314719068621915913224077924545105341591509124218207368666256997447025588944770755982024025954557110626048139854402357194817025951568031138434758778948173586265541933301830564554402276072258014559797925989536722440854115973701756328607089485527256401111513081575985140124995040258617402483252351722206417478198351894243732471746119372699730405011265541935724532833434164671432665420219582357264098507291026434353950242139050475769700887676664878086808328893819149898028653201316818522123900941955013093856062871956825478784011310917201457327143270884703665966273039721725179549271791914463324117273411616576679472191812204534375901780361435393238319880077839647056819080843336140945226774721840612454975121162828723041576216193211050557008635243699124809905731559726482400821256692920902972581664963866168300559733884743501095701613116720788773005516519851527496102436980241036806350299182394824560400447430644407427630164964147584096878862128892680195427593821452141994313775631107179826697460765520507131021428689154310448346700778721911197074766625286868192289702372573398751728256258571237074588853680485719546778280921034365273054245969525647690497897374686653285720251980124896159983162663910140241245207487377409445763467250320464280209936226221929523085927805514799181555832163548625774185168367674278777287631226620027844402045677985623561919328727523219078219413830213344755891841815730877598699219492852013389520568510247257236997906516628906873615117388562008829529619207249083908113210097383472789065058597193620236404181370526408348649757018625654765167926523642516942361542855937806776840704489239797088733779516949013788257460209715818996455281582013263970034632169731625980339160013152079057977349251782834875669616849924635337614730486752169842242624929257328954125649634703975850005065101320906183527556084040733953976582985416792670080486365771388101919283324518606631655036868763835172399818948557206625293058186760589953142864104700956452108973270183674948069287467879864358261334592708511918254981130153185631425876187700951304478085052321451618997028822761649255824809703331965538176433616539765776058742531003948726952902471054745534939566915966150116191438890443585622311147329716431102052983732149472461247376912833623437267930967318818803604605399122527205302419417510642675956070927030870050612547078986728634153542704949096568938972837221978092917230648004116438587300289386250219226841757422737686759058954409175436154445872341363182495576433942608931261470386996503223401108009850837532814153734081471019170656484469849968695768021957811531176036219500402350933842635484955871177699597532830925355478663430600291480349883090065994774551253644606999705688356310497186812319892510605624907714102500898399057450198267644620944571241289678009408368293509254424020608845302643893402412893831796395937184190626502738437901914428212746292031591907721794922746016330730449778443015590198195859187768246576816112348781161327285649276072604376671913305794900858701292832313913658246133273757809340488049377587266401888256567290328518713756730318042775602762566274185997661247360021202275045640918210942038833567253096314443962020521629245837615141375946837859060024346135769916355852298311944942118234416737389077313911392701134114979309512338680645531877462556260673601078213998351072353712137623642897733855781333979266191143544119582083328829950156159631314930775162804328291884883967881236096503109912049868389833884648061888912735332743905884471470941042362610682267050267009634549933772681422343949761071249562140008219235448010103083422082861385870558146920201852376078368337608642345774687639026921863502133176817453940613550666105270321451906445263521206912652600688461283203755296548055131202919959083144041972151195114025165911590592529941577548265623133808409791728229324582268303065473333636621342117324631421157605225496449830018536106840467229561617831256948283138469762031610314719594283716951093143428442072333339537105374908010274017656722142218203841202955086827694179185164572073712125289683093791217110817170312042571287336645050970460028644662929195467882065577452645882454115337419210850367088885438429277808820557386231129302773380439499390696866270074917993039894200120243186175336742079411466457830580088232951200846000876912970682165843288775078178549399173934332928638548464428720151364783120082037907520867263896793991281718455794055639447146039864530819269745715355214938263707619372879394278926351556385161429897809472715245518043523780528701595102963148828468248798197407945969262829331159142235990128953194338591833528916851477518706305719662111448938232928671994906965240033806959306083019568897061860551077017203112159221159155951228272413171627420458279968802230460584575900943118950231365778365695270036686823584678867348722145929334548499631165773218184089628505239657704171264346178200216901181301297446489463743518647176282076273084396553002786228388564646113500406683864327683534816808851038391239774293610501640543467712472200310455307260466452544520418265363667569403887723036947631746486483237802062643103744487260328842409970276903009409544236357348277404367074916560075869267489680962097280891780914065302444873986273882865040053945829053088094669073653185153018065242739807306452017674222620521615255412901446302495080513003595765465328779338663635230173706940794540609308699200846286579770804951940867876603521998960718349912269995655254827788031418433740772836808078133460461389906635567842204595342182021684171179442172924272472190902932437133500575278083533631054593612714048196193763153291441599810631711733282844801238440071658043593346475340116768949364459457928840931603486298352703810481148334780308195864070109101148825933660009215843719030093765513562603916818578650560500635192768971962232578649523685912379187243139655098109517125109127780471301803482277634659428134358836853176263594918167567652084060535231609168690812204166893957769525417625563530188467809997256726020428580691018086864536294521311048839367078909836059643563659720239103727569413780820649259896123547852758545379659344616009056987494820696581424835081787881886720155651026171473976322747041605574466030834559145148064559870012169347819734694745352552627953167334153795333249965890039267796076868957521078951563013568167701201202618638382057959627531678620084132891534966348719475072008403228861799885147750664021221334098940579254772440932956648901655807166089527064469486861443699494299730286714615530921592517773151807199155364178406172775299491832918113641575181081142951713760490568018300027262709428444972205189086761788870240507425900258846209126140137011729920544404890759297532260852245272788268350766159221881994744061065394938569986888415576853820741489587087067823886644169951997735519722721585563224038317030050507767437329374129180246875688881508621133431398594476590409010527115802543494741027169509406192787785712318277147574371014487131514941195976250401828015180023935603140793248516747569010410662421857505995123557225402959851403701093917440230216872865808989340238720270486883538367815912904760188685070599930857068375561237769555449907681963595729431667862894101977417472949928560541146118915781551630711046698142998340848799973566567258406878193975942317946598260010976958713311552362465847594876340445801302670620203720292279703762033837260652613499500514879636757756368104528743802659098513338516224960512063486150514277150399874243625253859995842796142038392466251048515045652950584413023482268867272281288880332576839868560687902043433064630035918088603047042690544397006044492300813010584093313937813155522654728638156217012096795164166921317973365684707833207962760733630414707010476394094764294703280832109532218636254566374009090893752297744468563395154971235874195107054765313569798949130635026304205078027899170092543486398210935248142724588837810616975189916553359056370428414100344189558339667426536120343200648324692757894081629881241595496955778712195447349280299561192382005612568227807045368201096414009352809950125872220546713354707183542604149003191332598914328009995947800568030165329396877654642991130680144830911644594022875302655838561623717327824951052746537026324601014449018492943756319548765932232154686057855415862788914052419524680738926711325534349145567888102226502583141020153148149451520452933460022697578485412306485338808089669092513487485648613757069288847650868348788400922490093035850118533535131797210260635060139287952338852364896697761144423493954211221943171835530432460135356786461465550495224853333443322194625574460789596437535539020180892495814357700564422690706852457788032244326117448250024752449793123688089683224004364288420961484231467480665354203471060980490693964086891674742400837576146824768477575680277117678033319601357057718731154021495550142414162616507610376845153661457579755893926793626363654591431528018187536948895607677411607437199879690390216720008873024541120114819010247260218682046435934251279009504587034122372647920007006115647383151333564062852307059643733627432144623479109890376107086293274956829607346752414603071432637826199387761745687014003983797188685195847344390358045993521953114835163880637398240831470368030822184467826704090800734555425856537046832544214318072159661469825201428360849102672076729967011396778079656819486696723872584681919603537424430134855168876663383951049914575905538675584468054179699613289706285722548460340566527363430351530916612799759142871076431492689409983100561797946717660746264636247848216651413368671249666352403431643290620795127132472188242358847787338804737370696002798343602869639703069292079706720657152984326430471647430948725754298373392573426950887584816439190832729156365367062603562566367649275160826000569389354961713867234690354947546824956463647995944499530172363155561560773848121824062055844007960099777069505847192004311133395143481825583248892955644817186938020086288708795245759385136127512846188586522825626529844422234922715798001270569771707135639460650962976255157922267566495497408671212209041934391831077532203045215003602144838876162320071835970445286272310118140130092076661743315888758346157305661267556940066090515580798105134106640037273666456332389803426000240642714094087029459612729720876648489486292060526056427439671142241834972309496174059154148105055127905711777548877877051817297550237254869387071720853922907168299731708432171085532922458734917484151403336020773295679205982669160252398914419430858672219378554113202632716962936104401531681108052376052343508684852497334111154219000575365250371297135916313797962224748741638963304991162023272326014767015209621400351076813756758007016175861866290230326649117195504801462625879399100596335950645132612909884054546737357473094791377963704095251878568096094236107180676352758320181160292801170334587442105478457899478469930937254266226161440495571778225243075347562237274693188734613705096567393441159267157527548913290085860056121874876265792052655226050115910453422475526296393546774782292944071261895685862556824435823615751860201065869504340705325290659410457391505864442906484365064713307148670692532697803797254378950679416191147039586836747640122911543691365766374764804142092517566783737501867020930292714623182254585287702680016906522938266961606783084942043439810186692846814919037053895213644542136601127532320498361215259492542073910354679431171120638843087832308758386482236639741365231887940110130353693554318488556199456248518788538218682824672333705506659365672352722411193615121802365366718634299096093103489923092300858841661144136061320924746100469387885868030572132222036909059011281298354617737197493848671018107633567147390484936147870891188647072946258723289351585387544744235326231868552622355949355600097473356087904699724201377247306623675940271100370954941832259160511226372098182891323278501948143332157624723135029021304467830870030064723557362259869128678944191649843313486752832688967267728796350261203163597324066160396332895883534017503618841472335552723204048957560955785333714655976586061947038165349590716750404664153944318099094885018630305050238020492722600048715028939568659621977418657665480501923085806088879402914709971771679891791868304965852356352602134071217166372626963942428585566081112043461091496592123993203354715557758615334151667364713050555412769024942189860583934472184578088525359497190723453144008521554036371459575822419229504506348694270321152521890774942010143846269751348460958344574215258251080116993045264341651750333960731536089733552440235808933642773401632295374079177522778498443281439809981056631849276417204447902014107583311583661575582543418142687086794328779072944727802171146055363114435716843233236074952174438934131391494404605389985164795933823886607293252830531127328708277755306017265750957965592512220276700981110827276204264817686512366007793145016560604492688244821632917903777012454027894162173919791399546108056102646135800327150218791359377563665005569082569619953096554293283501872372692297967008484055427364785322600716188619471577311494656403075474587640454239358894187861883750944011366626015399091645722482182840042300099342168605871368715176821046764492264168596257983900283222479543643035682051422235035618463139479361361353910399704744759913583543262106757124321355950985049374901683824880182387084311448689940976145197799873948738961024650808912321095767464254824894114775267302354734020681278378748089116955693859682699232427539073356223440132504444162981409394017967202274097681983722292756654967967764281655261453078533832324476817635365949460603056777108701329394906358350745861532901040686029076820348486581620938428808379777508613487810992197242039676626360946382692316500603276864056041757696411829198035386945581619142169885760925406502931638077986041385699027843622451589230917195413552345338976645396531344373320071378242211601171702493262718445530909429727430487824237235908386796919860733159779367578260331489768340466920386636062449064290044855905589265161730017984004174371514474409113060468633962982973355111534519091365775237671420850857589440643120296497133943749684215105219586652225385164177800947845127324405247035195505977148015791524880474897836621591041295488472445224163876027548629857116883575511510342142488791333488044400874460018859479855540840913490776163399313867565743549588361479593736418655858606878943397341825100677329834204748663256971766792113875208198908640708827964286896145681300223838852293518278483101468082684007857414020484616531080314489010792768565235222166775737951863513469932947702279176644549657786252661920114289996931423910806843604927981377063621425299104131333054072112821189283803136815027790782894922016239943972153707497125472076764196494329397813289283748846743886870835440699705663095029232985865809347632912685609430948570512685055329227631067841999186662889500529534368196501708374104573741904372479453181398768330972685902239419583218303439506761787387088167961734113125889977593613890938321716891554388738569850126279232366224445116109867362563587870403084867186250137701338020125250199474940742882315455588631594860967152441558129443576224223835090561535059562868990191322574348069549132149210314540211285433664981923696088720913763250223619038106540217277606432559408363911991833080277543930113292554283792700712250750867274915627383998385617195855754811007556080533515691738006152478790470309147122848618712731257592235180315347933620089297698545286140494454656288827337890279019990489938608085214004130079494921396868903025696152409833995161047794057042684016968126510040660849490093185949129827811140473776489401135197371730945513002799105888111848058317540214303341592895878551637881800240545923546351719910361949046697213590800544792974938615944038468762904383090655611107962250503928388143075682464588916807206117685522461210545007467405017733859521863158529976187739710004485524839551167822202777061103794985901773275915680979627736022810462916609553243953694714072948455547838294595439489695045456480924893463221176812242715749269755195946239421460764768293467094126149354630481995716588806358643669235777754052066257378190787261234216394796947074025930279252044775685175213269315856772474424567347376720756630234391452781242298917087392151790426767555107921460683917109602505820747243659867037639513609651617498545781494945936902655653382440965434232776289315572266472322990443344967390477948677464184419007413341795262309370560087311550587840998050952692181566839932862840855772498130749785800913551985067041639131479572839578171112760438573151985660809527342910091494106198202953413546482695299519970584657138214650817148472340283594330221344844493476703318465220718731706321121304239924184086723866509572271902547142671963977961677774114118838845724489358243413411610997893153996358289454345503623772610941673596889995373629141375582177764003300749826409115978127816743121520860203477916975137390550644858667640736483032629313707084987216177393377358245231139744390258923482324776737943803519755461843765105689049811631049238772542196747277768108342307991545291731847758311788825245463068694293031215362630998075272891169536857407558689636882112938431866725577479453561656197026355187750431295151036187416630880580669956249196448652409551089041971939939048366426535504450899254676291736729001833278479600131136551874432597590265858887793420329308713884805099975165370290511760765142172012623482885071723281129519400173249196654047976181941318338797360244923931400390909785465673315405030559444705361891467805728179955808807511731298410029936030539658858909368656961713330437839091111577462307796110404059697873081150581817207529361441513066927004578009608136232148623108309301527609182849864799660142598289455914484622571725379900003397692700025059564636419945934288170201276916443818068370085310111084063901059418900171161707313411381574302180436134343960344748022759997673300706280922909477092977990775563051413976787985602579627019976532365845587444265454230229325158936687605523049427300655352125627835606288207357977697667544038783554801737333699002604709909674823949204072230827252757816673517196058715803798099535097777947204858552876882725954369953651552362824186747602013810959549603025638659042001561866771518234478100799730962430198512770928696258336785299213854196571844783740646186237009441933281142671360611919914723473221469414855496673495361911831785284312433127271985073434137028824823469688366377393044480486911657563178769535861488262101853610225834341476550459412366369791845398721641649378374582126855939207167848849347289842504181860355969189562443451136529240425472658109089662853091308151791968039554186076655684666924489522243937929167517592612974021514899107944222010078950541688179345873039586459216069915335367259090445798119021199283094872798786579532263416348048750495085901519098989849418462708838538988870430401490484543841086790428932698558202655551736269222396396271623429937267714812065754853173378199739823231508820447719357238332171046606666481861818339529979573878721673734920483084035502560032520557558468062419283002408310708941463489577909763658034103412371084705939638867041651536922339345334067345213580532120831285493612164718246151025000078992267198615366853616499206898732543392774246078965309279612123240590497777243706844897217346364604102805116684468828586444211571371360164598770245612565650921381178350587708625837423024643936464615887944249255728093290654059079421383066028409784781641276495133492683465150428028576749711620629093498330301914001241345047048983912629285002312218136353913828099169698749404787205121081465861236994467267461439901091719299001586053507644632294082709590168269730449640951112474954224318892410845453697565654126257792612845831974103359346124976470708685724911964679192014432713221403842184597181404265006501581984638033631294055844210755343086747318191523171995871207295020630886788006056604305036618593591521636611714835697645396452486735573774182390448914864301539188890447067271598540788719756397980781870479381005674625840223132092855119934706975684191116620586755167415942282093672238274964610085178991868266977740117247673774586667446514619875201064621869020641950581945113527337736462433551976886994541722143536259172668205399008846539725996932903679603624305652122207597132885056095900838554394718305302343442927087458463497953725601882509910561048817551602052264836778854036019311695246591377730682232307153230920678152819962010299784053510217579962670197637357633819212474173694047521831418583104593078528265347346393913056355543705050804674838133567299538581616962139782070650389928586229121601140095588284346935082240126656679862272244130606476587453205678750638651134683069768698056953471977337827350876901851727389744410269900406986058714653980300669724888519363199297760019560361416521510370294999398046463914209640791494959007592576753537582908150904263644013203094020273908147102754708595498792775240024777733008975080559691239220962281381628874796847211721538357704525991190762408822438159519694789426607872898572312127875757802008240116910298538160686915814717982909741928054024645153167444247683098571590292017862146595122671107393900319451063070683185336579294259512228445586253246745145479915817309181086675052812854348181651960258173849621938121801682709016804293857766836500358900261809506591356844629573494936921231596868808611050458031148606872467041199537634904009453359002429982794394770712252951246802337603581225272602486974580608785438998194734293283249707833827687290111715173938329448910836079108325076467632766023915842410949736241019310151178424298811167140464550265128138695359735876787912276518983263246089405503720819281681302340708944611734261465994454902071356121454013223725576577818032997872968449596345724675619990264238121021280135492199945876266964231446417063033196609067320783305441054690008928627300249361646383276958726768965623858645679049661682603122416090201184032416237332232343244807667893298374416629189760661413835770056585775204233301731019763790491346126665594019645044622043898920453394848876730761272140010500899012736121983787774679561519629756983155106714792423916791216579017615682791305213607782074642911482513408621222037554773191943841025553011340706833384223675659435902023039289304650598629158372844496653101737155727028911845139186555984321157031060734828590007010316183076773240994241731473391805731118992855104967297364103353107876642131821388408424238019420361424687130193061578571778929536765938851371919106572436050372285452198830239935221632134631907962030089809307499316762339576102779283009386693532218816445125471734975167810707764942352856026693127860770358849427684761428409456191987226057761122964335908200449116860547497800981618492471490561497799750092350233997142760501646529804888486340588069568928426250361029271396191959808900293813098610365000704780738813760901902300568617458238779311433938889968261576359809179639422932899920651334902811297741260863677496570207939962756807498332016102540095432735470779730159475028853595319479558286675767106371957254053458029054462605443590477052358425246619602116567605127397318343438748945547651298041456359955195863933727304964774076905905291964075726113621778041136327248202298157848609864733061961353356919863633023397310222237934035635921385713337393080363246353136206972750014151915156247028256832469807268687869446918617787576219038324087037204999849351492077121608417878678985827526898597634133214683700729031453688240784143421653886512852243824132786701687658683471571895295309222314631472105160789438244998493886076001465184835464142205973321282052520307817438018218654320317456884532282647420983164243644399002047773544642770823878321291202862684581907372104658054090237897402599574054750328045753307014752891999571664135968799612477241154625550495502341157988450031664449897723099311935965346070778611198272429141257484497162354061704551290976392966012979132735863335544532290046413773020364905808985086054515200898537535220743674643504877956326799392385321422085389521205266180102459809501606828891145732630199070280868931614518401919292758685975384892848705749344844158613320193752185463697568249741323381143467666454871792760391343963059430442854923010901707703281140582595317530708447760199374663670868018311419699038289807245466783473944161213596491420354340834628355938258821619819784865591384745752320579845418100904814060385663616457586409097152978463639603357534351089910651787792248975681628041999953600868460025319433711180560872192352890717792637744155684434617454796944329186536586198307390547073812737818078149879934311791979692184501307077580511440880295616798248208976851760118228497311266940112802385224838376516766668668566312413414629519921293636748887933771096519917765439515313190425665039748585198277552400395204803952223205284578745459879125168996841377973218364053554734323670873941989758365251211186662809725431960474751422654005876476034419227841532911611581161980679292577897325750266669008924913589911778620668391317442354337602085436229713060871484293643285755147467370991358129101041400250421065411166250821676875456419956856448307925971340173319483732856115473324012351910163143782409640983862988765126546447443125868202563411949529493552694216308871568312663207605439013342900261163899625316489721860503953556403172570284232131972687979514291607174358139668995289021480956424653922944929027288578988245007332069053501261918523545883987436568690539032115532796426215462182815982968620638315938517230807673555673229633318165827586159603267652680457681153953577830588862887578188010315119490835145184032366108392425403315750600662766733115754261750662080640398874019296618346863184311945106629961734098086314095456607053464417956242085649658092165129228814075090354745026480463739022101101380016648825400286730266185972855748506607379608743598569840660519780567877644377306565989971646171064665148902651625623316971962960639555063121716325156038790217001790405572154810666240129216576595887924343312469469263662097150221480015255171957018924869806228512437716863832774221405444813320024513855381328344314509684266673353655746265050781940069166214429356623987307960615084827565861218877828629036120434099580215618970330989456714042201780631976986958453259383635598827984636792517140413935652406092517846740844843674864243470414780546586275278813082813227033611830824707464108815172040316755933320411831780260397032889980681306185521484714194809054214998694156071781421190479548797648224510783233394115669160201426979479053230838513650234942750307939625127450875632952658705873886893406252189565612090110415958353050129677696526121002614837511625399055361157428652990845435143289670328062345592066597149510449780033354523977777861060877123128623602186966517898696874756527812033733344702099625248513433881174574500918597419272923381926959027063435621584909300081608487291862666458458963791151776894742540147858508626136131922386599575430371076172537377646010546983514599624317906715048641059079640419540662944339744684210211001429005376673625495257487477106129068812877899593668535151788499069319305727451031446858856086246460515095751565123962646744530874562497359639907685825957844153073480509430108225388934479295586001257728972505274159176494430736820270234758631590513236622302599579851143007953316196758824763035189502128898554876660265108689788148531214362007845433317363777554810030834156930677896379765366408775244162486167733115371110000876173203789669455141490203500812253505733274589697288900302444236903394155629315955909566636533745259919440591991636595188219186095988899986712927503502642410308527029895888848790568506711189789305902621281021421639973994656008010523143473617007134079031534972876940450895225603608529811536015284859545786688365488281169741219561640187233101235311093856203647007801714521376092018996686095259580279278431913568660241059828923947259329001833771777758645631687375282277933973416486919730791789619404443108951409813551946618160442388364876992149567584115778547620071142622829817677827201285173759744343004463500093172422366589762148364217363946104180203602010722725038354202668586453195866485543728728890700789157364077136089649540816696330645566252669260355580833801406277608168852944973361873187962681108695660013500895240486804208102281482140038160723933080438640210550893593763170036097290289427593357765942344382197094148785671170377647840223178471039311868360628416564203772337051683141960820503703932782368676707594180014723052102517958508013121683255539019296372736957577509252008320806655295551017462895149238846088967144805613774642255022057775749919620391307851970627748039999270687840520207369146833272175972689377486464302142206645317935757294974192931578678152315009182670893009805070753999175034620781631924642949943923594947007449607503831601701543421394903096383573072419953219417929562924713540185737215719917923612014096075207515886136849770731726517055242043022373054583394979675352250810777962945154094452712379706247556179410861918817351818161648095226722109062187520977001983063236749453081124171599282868904548536692401311099300041618515395811574838116243961118308261833286545842965436487652591215493867600939249850168320943226042021506423775035003632332217437672221255808935252229035665451218838836430959840652776624067888503509764301575180825552864422985310693109766233629972618244462370328684877424888854380766016913305800001124431414204381689975162764123635350210266183583205160508580509305619906503656563277543974699278889064455948090028354313042668087536237002769689420057321803500900945250495040926409832913297842092078859206201745426435683938413793676034532303219978358068291394555564161757298351840988692836006764827812090742779356297512387325900721369665906951529732962993289272422768214666215772551066994466433966517740227474015695654575296187131157917127770217633677744137807356607746477933832299449548776978576184235987250445106598812818560751492107098583123014954015317680508497839001570135998856518184959614603574162368652634165431234195529744948553609338659432858958897404180934344896447606106823085501466517597109908755031157972166403224607284111994553656687450665436679671262352108164715684370995275206937965172241228446872711944449720466237815893601167152328109199245279936337441624500566047478866144552601672670280586888134177219049738509792544685262283452309648635357968295892390581764601643372713707307387287700890592515318856006375201656252997317906438176479040905052572261012183757174266074687036327625756239851141405962102793211339241135609725569323090790923627088792357695701184296452617544092662138904326343909254939362366661549385462581613271553422465823260873009195200473020725791168869677221217322543207639465321792536962801327120763328361197054851804377183980252473393065818580665678981901987064679938429485566928920669377238705697458487662866277303146444943974943565212195264512327238544080785135273623045973618141011857934085257471820286272461449365645892494528273365190972833754260821371024941539642629156786752786171895369221703797894079960512890456087379502264440097151684688432028737301866554010711414032200265437905567202190487532485473134315857342807861711090593284518475769319180183325192802709467703388088292501026112609671252027800299562883605360476601462027327329822092506113740641633497253181070085342954837880277786596128457500096239111346457961227497285785140089190285617900689193955901570428818021407874930423057601671251207074962327107335231761806821080178854866513946727512782756444443258778191431560755054898474143134139044928524530955454692806760623818966489647257237239249498238905942644401133515719715365299685961142013717749331105025587446973692429416856862767418038227324622721000142221290459497509363830527270128857630656670595360598505339716723572371950871382849664832074335390342323867135265677238160461986483345440185785690600494357622923781877609063118863606838853367253863405294613702392766270060111125270039813557216064116252503052658368678165130690984051658317316182463472706908163432966381470524526561646301992891240933950832561283528160273635939612597507211382573386063259929131580714645225003776245972415258555068279539028183853899098189308888840287490253243447516886164159412383350845204035742123799001738960823836588716316814386068018247027451639327463108919797784851314483539903432018246825926969660110326196748763589074961748489493322158281558504227035270191467869181623498152285632764941448573977355686881735653663514403486601390290289145155762164903369192232152834309497131039795051804937462083861869534636866569325252800102796850603580295230263075613792290659659325429568620813348040045397837027446795089854904901906385634388806199830503708579048700788833883446655479099389272061164987837328939301872667760780667104589883429046234285060505865017281944567287243712734045850593673859049889172280371729316909362001008948069483751029873690932857070081937771182409693543699757632717557697517924064866452577239271531147302148790601568154393621692646320050739423306482697370304615941799437576842321148848425612198565665265594278438724680548790535471265688317555950324254422212713098310379768124879849761527059797294183366065700955011300344466215832546257823485730096046424964712380060256756440028295061412741005097580888431475578646362635682043585706173652271926814016472736842612225216024828516839745579446468483823875380898810109672401871657463486456070538665424929858523974199451379123053937505428327992063531565134758663351831711831996367498079448473195933928832477762598718891408198783353766972704509440606781103959420909404553490977623079993555327596204614438135397252693481703782972154025525218561493581559558704413117544519312361323555824205832624161469291651744742324745042284402237495988607546410279609193515267298124783186021130296399981866216793720352448244978711412076015937019606308052599578055184946843816167913889668809323070752358570535439674125246316275074099968493221696081395248472256079251218052666617642840376393574627134311596494265475259850911803646158499685688825272679766485600104616841374818873061990653217964783211893206189697880186522934761985097351225190750475861741569525242821488943551249385684865637253528499929094545010904607891940159817556394334508272055877704177651722643608328618630270489450136521517750849423664794830798045031620585163135604212479230872734711896526069109707355406471005201239404946884480047591729962281975776790316176450273092099639799879927923109540335391777401434047758507690420941977473220729541468462869140583413878009954784968945627728154099457038571916854578523890560018183835950434509346657513277998573928447300924272309501493344973965402033092021272273659319661838145651089513206686705613989172909709315628073585510283908093608938699767376013844238695741597771643001228786644817156687344150344264825548340781675552457504552147756496716119053690356226760220424840480764116643532857515630383679209461032595578909690234312841732851925662408405319603199295863940017035902311795441331640317342008637863683224362994111591638382077735778612181982905953007879310224288277767942427679960818996851606799761330280795296297924117460337337390127728404581341899159207138013597797201817934031756116201333242871082017827118585955531414353695646079746111236305471784536865959805390098323308797983097808512483179387124297427745256863205131442479950109970738744044708472517328038179934234067171573082674139597197842716248662178865803283675823251222370204253481818135916862156252822547727508889978953642461940148945508365310007373022339583401609327907697427593367558684173381903110972820972192733227139948334896894673949591431283848311085944462212529022633713798369683518965323515114248619022199445206233784636900161073155898551899565215913892134971862384993944445783730238311943305114497785298836535826699177394153432772978697800896653209089942596960173614503957877396603225948723503002083751695089002936767738122123030958822922645866952323641742221492589194010879272497828390578098285758183731975183101830877678614185435604779318727624788984044609795207348981441375380881159977669078283449661408217492849182978211295713954355020823333696565505625180480410466967195683972925702528327632562332587238784319123965941870234693378818681907721221848131842702278061618214623215018843233499986244394828819951063569649685669835070250111846645351915739924334324068036418990374020850627037356137652067891961157939094120904228788689059556144803720863668220120419429536091943844005808923901534417834562267238715737265803517117044034664935646149684260809324942811111653379595225035330127521737471003382722598902421588854860432221671504223916294112783915631230612799351664079930135188664846531273735749379672358781767712262738979901569808852696496045971777579505152608131195603368899464340430774277407143904884044158086921416301058136968149140236376553542511215475981393928419739500498445516200870728646796361964017170435425332488303171947646451143819381562685057654973866974859729061675846720060657378000076299397249664408152073207462524985972275302528211129703211315720422571816546139040529705273775543281565170497258195301207647415798030393316586225633236486478863387471117747425312312734687468968672141530734062778576040763110155818922015956041581066506520573793077950665640649752060603386922931497260712047764314050760387069606840701304860380892031111900776710301017544239791441635695636632385282746394937116072262112647070925750450494030214921619686368668242662695200219747250528854930631561290577731716323133908152161177437128655904240875854109406162162950062013249163885342461579295394079016015200316526018649084637112465727502837214022972990218583215074606379790958901676191812228137866807244591069570724493721316252780573450182024885502200031830541036032135063155383539325447655792330315622081789148728898521818010217555973313934518629414038524761534671833255640040250589662445527772301735159902378293794980646169825947617083497092504761435891172260979194374664033625621152668623077644968606478512942166328013422838542154663838245209651226133251584292603158854783024112870533110749975448115692481132715442064609003514692476425436200047836224356127929591040330263636016856952861798953695620177482197804882215573562276938503100260566280958511272653141969671013784602056605363099419273509965488298666011306390194597374922384260985245354492657364345757289432407170884093873631776189016426817175804625002354786049689814328142574702205163153414034349003777320057837396696095719885316337862107756771979811457397296823953239390956259370691213996827055510808198397403955463748823111017292861320174740014478639442201070894202210722698320231705615559316406590625814324339111007085500328839130067488521433768952318784563403181658762203136576715390075534604017183622606897831628132366184630801858755688847298832707790758760142183157951997850848396203928384977411067234768089969534626887499675479940256133000374523068386961373371625628457521740066279925664808320692507807451947506563555587214700992267431104056298649581050478114116680181192410072967818534485702512247415165551205948249072206085327305233893386942715993868040462650423149434695583599215430063128506476898293308514080537184787896775534478410109928011886276024011562232297527994806803549910615376826746315231434856916630059554634834607701872822008732241610052129774941644405243432024707096032156141168494128377602074368317428460272116588723666936056358650985803785107539185846566551438233816431341732516346174159686725493866836030136778341002460371297307449283117823522346314598229897614117906149829586558926554933742716512315784624939980546293210506819533424944578930353398928792636366371913227478166512919187747614555246251278413267045334809930636227871661352092436085665669192997027678169623139925914189630650757875536061634934508588450666690752085478193461676179355225657515675972057869216429509863301354737141219795045250041776603574680176012073261580688009448215340313653020789105965645616874589965663082742350101117105775141379638830157810496523194563266196997516938960871611498108721561073949145512789285387458038450082726549041782493627045928942272135974652890997359467588849086492901930073399318609626240827542778111229438332297414760034370551394700701425631954196111242249182004160839206923429658065734123268839792605922036591827262760933980003233283136081719825864001333796804006785768364287665917946736342593608809259638164178725555814221892012543211900518161704047379983121101152921687234418962115460538048806298486229902997018478811363670005835351493733521920974630290692938043897627539075392815843114769849712482185418998020949635551748522145542178142608229058681446149004002627981978556739617564341539092301101246057164508923700282025524091745852877078897520604803629019396178027092207787170065218651755130289911903367498372468552459269639380549229526493990229236591813809535313991409835518369348157764222185078017875688487199462753720779337557145403996752149404841880638200701555104430888460217259997229624915956343160442879123782995743950136982174682721558331299664736016334102987146795865690502760952446881553262946323217565852648907610627528987384887894956323858768694335520656072909695699070085781677300732596508052673591366586643324955524917705058061323831561030506214972480446979741600359667652535756263518308552561542344593885236529386450445006597587153648448031776375989947125025158086931949942571919612745427021336073101465532335623715072192821798548657292781051152027625241527215407066463481566240436578513695404865567580866778378188973858244312903760777960000476974108242939730160341440074614292867023078306412570613044458306889820356453866461429020339667872272196147817300294442721280458962827591682200399013824441622754638756388868449879007793700118480347167092289646147194891590328766988526961500017452860684753045276846131479930792533115462029321374841746710991566078678113008176400048693158685657942630076996738475507433785809327809732834944553596195811050818894644781949891941840122614978840470187582565153513735499044791380230777613879182855214708513883361053275888300349714183235019428964032758085170463707202953622980778087173239884370824561617109624264781973575073017532968154937220610873755010084899758473393557231991858001086466180617917462307593694935431688671454410823584553053585857908831347888251259707075311259727591177505076617073478681472237820202390453219572535684249729974677120438507699333461310763892859301672919075446956571526479744546963365001845017217588697494495755146614901570785857698473773951142630840433589072390927013434976878386515925729454738880710456370421184285552051545519069695002275254833629712962612084576287819274866111505020724130846919646477561572005589387177847480058548997801907780225252480677120664246216088414520219595787022828656947654916983078062853224957794147757775616885653906969427829094804303275563964023711063732503985716067433232421825112365905039652215357742275960147957227139416836989668728054911710977065928094746762411197082553338033486210291919125514361597054160258655972271556466009688791753013589522774877154886038638596062515956081888445974547290498996935479190204327573630255559211057745342966442375152821607108771700460012061295310199785704358657214020479640859364574085649309768481473803169690955108304692193745235462298008469707036298102161724949885438304609681649554619441703350503313386911816867782460551765643354902494164072656862487173202012865212838334893121640736335014426389356288681440633548794548370552204190464279800001393232960947177777174826263683285548709875617459577131980624947856915986435222796441910820916846759759294872012738807613898437837388295630698879324317604146416677677680605055366410297445711268535256198327567086986333802549646812795374279129110128449506021221062480843719349672404428357268752458362704981939767210760072088568451631362444271340043858439967734492947913756686771779025829497461925160561506097780797308246626995125312858887648433515010857079421570688990587634312444374748518324863569610947548609380121976313479053245903036195385902948577973705109954756345941736214124481560001171107266825559474092368951161612412576190550315077469821411694923148963566724082097135755727894561109189344056179398931903633589755605202744311772865736203412213046085810512610242121210944812949613704734896715752172260270947680323556722639630409567351892316012339174600269091866743906130867374672544388522502279439070045364875478413244882787641523878430397617479751437394478676055049573922481403440217511794381826437068053521963801399778312014255513551447360359518751615217185009830018382837494748089610816623687004723906717695493971370980199333002465063177895687978660828505481235154736429140427247005909206542493810828235917007411452977083671679086746018828611745963897211445016638752736620460215038136224229087126422006186939538621309351903086589411889017453210485259487258249825711208104894831107224267818245785281053494062514928021316066259688499831226998077642725265129036085339219137203217144411898343750027013246999985099414256019992661275288667320032568166320904576984106674538959839173281136989796676371499203736359089416384743825786623889998721168392824572721535973739212376812258570529075872820611472701098752179617683102005180121465794560040054578914609361934584838440804649642087020185825074877980779751750172043020653169737143021560876097316619090409094732063557546366131425411037356459972710008767830078563388929615532791112185001060940825406619933097400102148510436917439627234069598453215050674141184348429735128515993357743743641802072337393656599915333345524258161122786169493198857938022754595435502537153386300410943227874301357742337974348067974744251592744281625895848333489701228705172161218055930949018875065801412050770721343854752180100846021258164613502976926288880963124164889804457008460739562719403765404148637449003171084069291164881356590396489084424234512054404109781640388510195336723797281726817933828104748141730490307095680658885433572311166523095627807389329029150074058934797414306718842305649852216918361677251762564592041410539365931754289023261568960984170899794465308478362883969018663803306832796760090692119227946822238283006416594531144285981328216306712954322565522230796473013581410339226852367416275302574022081664452579035384881562849670689245268024925043353310781456400871203869924744948168320349305325462157097353063462685513566700088502891374194161239242565304125004400079835322439968358027851030264441761531139372193974362335585553044826540558543664502442083812925347455928158118357798597332290779549660864755988411625824470707911446040654006852857164449566752644819478221963397467876668990255591425214565806684737232961957554815294683950629610453048842545471982393144242748390766260176360509583388845454953585040378621050152643796446342519551586252743238088481142125065013211133665813176488755165938413368551689000318605604147572736911593939327907672587773601199555876911863898018948202515951722390350594357900432397749786967573648743752550620782781292199624209468089018544704288895658806644724568314948132115772497265131929986002623081350912158874208470777752485437037054588907677306195567599582951282346589639089470770343582600554608828857053093439785851481702133586087826497301883089406196248807607737178225650165126215682214080821710898786282159564661334596581410856498682028600211106558762022786268633523579966816899574296944581084009835371790111177962572306754297495829960660578788054260547140399923068790952343450766772202221571444091478527552235303410416308633641121209079373725392837716023436940312353645492190563115796472507606772281271165779481296727199337562191587719459494176962884830240394700330548398323756990621415924727861215784672548181582428636167737213110896001863033629384239815649117545736727606058581991366512682788665811007503416461396226526568679608382766240232092131355003556546994055512472931905267699405362552961805748173902109853414961810914243017260067738518447520655404887620593928667170263204492857568978929369153979484227925608768826416337499881014518959246178188663237014993366426575501232729162823096074910843972119230201047063905240798165147995759554590563110357029720155412921979337468442059891530370548629588804280868393240505001964949480020876398260701868722539522242538681907716520437442074415445870193381422353089269051891263667768418907525068413709200527950895677008396891716548665570237254082985226026314277241475863498430272141690103959296278770510639686375042108968745685992764404345667810667922642229351903934083456917130059128948205189288229654082405753996224833333798206676856820784349963500887326780400603213721407708246197192677788669825063309680935130339990386808303379328824122293321180760889415207889895235340494607082458794921518399996376853964236071713158766285369159403546394176225860580194879113933361362614074512423565756270997055120555820924766931891580476416046849573773890284095543814685439990769323057961195556207179840677194446191393970368367458463914466406551881984609618195169947492468510953872054430015605419000776986994267482143459740078104369757355307064622643790742263637185065353628798460406906434042991107428147136951657146088325689988893358414230011694451967103815419181115885325650416705855843236055495209503772040766146806908878811924778384036226028235972376093804783670147655895526442808208861454692550786204825714951061105955021300255198441787094483112473229722765299462222052300659248583101212989656435362103309586224643409078140945495300264975733829937869612674494067786056624140203221072679900686341513109465647928258658151127893325640925794175270316794542394826322753781075295842053573374090790573761138564930349121282208169604400138631676943014478964396200588432665376467224671723675775780518287740508235871568096249999071971109228458787568352088694460492223406994602538258294356815240543045572454126078636182735878677125323535946741556791635807843464070038220084207194489822994977747432252762931043240651422478394503876861847981249470955208754784380451176592493829635081978533517626715590718450799884815670530530978712299536582530339663158978784201708388975815960837590662295358024963816936908133554584816979405183220189947427081840896542073450252261101648353108745480791925628301508168892894756454107533531191861528754844297078436529435717392601703195287250940203476906507685434440222294462689137310369938131887173835542952853546705683101971605611434006351006184971887878457562707317793431856175254127363727641974810526405644984864985724962243099388958313047198051642722048972406233471351635422269833761296650111695457012832223581334725577968650217420158187049852179521727324033464404844827136635432124423727775806446217444746238574258691904507446512436269656186311178025031500647271192715762834230346715233555860692040955188114251267499351969100112684759752859482203679571999945019030053814581529037983052715624348695069313844960472118164273137840439459378751678183717185107550635700590232465356803098367971719300023428774082647102122303074408488967403645200265790659631010444769816731476936541742694287520809688798060786319763275619101235957669244809081078225223414980608665380081940489343896249505842399236833687310795972903365414200677837173743593634875524790768656316547556058784407322287252017125693632718404152530368139117834173995020498675571620119182525012083433527838562099144229458425173896447409336986591959495465662584052104698615305300973832089178299581322961148358025432063558026071581648648335954248501370113204693347388533365717596198167718422284892199649701166020243562991614700349201551183984194568544087036474012487983924700988830709309846583201320494924960242694774398080824138966464901245187313449814747135884246456599584099007240336895615844595093823477177092394947140943722074080144200946243613636913811056763851958081017414323384953660976816256589163694760653116629828581141319265134669941452334954330868827998396346119716337209998717763058439718709135516268093820720563782775224438225637607260601854411182459092292909712984585762698913651468153355374817867265266055041793314752805004897198470338608245629650681478220040430772741820831203887530531744873362512227323671952145761915140648770119967712091040549536732155523557424199819078987992667355325227091766858074105875567823154542958632241612279070035413270770393072665113328939127457144649832841477851426014398739327165615188239411741724543727279216963510318338581772500608944341801982678383332285115449473971734845736451453871862178837821073189590966374409600910908219855483191553979044083272175992783743674326192991528650085740551921363931248624081110914559222574905580395587149045835974074835757561313395613122848783140440279190418323852472696002199476394083441353891386817512096541128284963152480814475433707572596671311551466042368859329663347000702378866275834450637845792450790821868664155814513670438257959261425288958640735867369003847811624060601019153229037648056663405671893057627411219830397343728311696583321707341680175165412899734170402790437950284509694116125839764442239617309415904046800213920491653157618673127793411418718111719966964150294255490506237031735096176657396013200116692675173929954075804628322496428994730005759235941958079410804488997300870125225166344404519666512384987574008048529878131517943093742225198075386607658813133329339920579011286484013120162713719043145385620345903388059994587892907287477784362469062902533604867005383638679693085874193441637444332755986927973042339987241044592128735966059270372619682320604372111981472674833328381550787265424736160462893025406055024631258729207723084489269982194051320918310582370734903945498665633844648596684587072363296942719371184542667595329008824464875555133765149921466392725785291562980287056924969482071720568385264246150367250756586521512110381949504095377918952902262320737699541483521395508301493337766771606491581269402870003079517841286889055948380466882555572994728233286810439356125364236542015475908045749368697304579093816452324622060243013394948766822552696827492073821124875336088812330172843787614365840888484500336645541398359829500262443942206922630713731108640909746741194334160010612269491427216390160189110513687618939025815220453901465286136453288043017073408452978614784403609744314762479621362267689320452293153819371310994925748320639819978887848123687569718110260797165541508394909400573480480605096300258621763045939481872617275934730067152041777338903382316919179009617565990245787577807112956625158179704365080936690219025593286572890974668219849115986917197543036018253303681802415265133917349168032271007134544321380571269520597740243708649389200283235152693999118317716439556822544587927922116398321446761505033852562853570149234327975818080120482527784362203058961048341191307039974205866313410133524377253592377074241409582058895927128937403375734196784385335871173189258792398209576356188128641732940957707446342730252893800384326272982422482170764765085073105870948498802259518447851675304372661922378649871956917596278651406130023890674185462294286533970625143664959931398279216076282865606969014493034862288240743557288623701044787199652404130976747787058730995912793771701379393572346843692614373767980640988038246052014187634220508699162107114641605672034078085585145835476127282786654371109508781628595955220251107276036931559284629470882765571807629338236597198866241314293759453107534606509012977116309089266428021419242853239050107399715969734494877626870472534597259391332680994445835250281052162617198886629466281612260605294792035977543290504657739035813060732462622457667692076131137258936110417832243183031123713723571775613642710011074450199069768734014823213783577072339349517431875981732231605023766166925987355988911554827629713559098564765773977378245584198415709188389685724619131517073511119584715630789512952535450683139247406172200407482321601300348097701227319978489941022569084172322890935085887275349444552089493067793250934266816429468287889250895413252010806686533832720384459420370359954807057238469318114054372373744222120746193465622949777409899509188885022662058143468273259480412666985160020764196239019732456919036222403588402538946765107923589199788065196723973252158812671083786080324057364707802091509947904224500126790777620865236846191633905676608094317917619138940743109925717973578134115551056668641025832865749886325608384574475788446559796478499062942154062816374204819458390965169090940966388204288967337917338711464257055151806237395153101575787135767831991987252781442586737362576375472749549047890625617532004520820533994784347757192133776285882677611945981779323005144573806574505636958595127795652753031447557220068846540549750103403569672903595233213327581384610252175977953207691253906407388267978233983468198621790939284654270923897100596810170790793477140779890257471969498076948953495720212335412241060035803462417482815968215356078809012211543124119251616225447943507714147334048953216045871599988063691491714301855938449884551279725598574728755638087362530122005848579805162592174493562875623775296587759403003998710192971304993865203040925781159991480222287839708962025960594947126921045584579424036264161087849928585039425021024026795194887720374255867237120518162709059610643032731582424691546097581093062304363344454424600908770367508094935608253676143445261877815135344878445667241888023997168285013276532933289918063286049183808272921267501318424925787503646670074608316770796165769272498608122891278401640131032111007767761016208261975323015047338859916730619975292764266950590132253615990021435623254561804986393198146875654334381387879617168599449616376750157596273125592698711954984831881305314989874124858603892284875236523798072656360988500191209832848612316356372700086752187689252433542310135761074412895104197523340339061088410538815558157617193737268428585280699312767975536962731240612392202049549901584906088120957481629512907250723916813980130609961864701701874958873809875916385703348829559147949429919247555064901818170174272703230322104958010910068334156554787286987743070554248574875325648185439970894773670907079125749850330348369183720146130635924800558534325323927551942733201564820375255576616653535041979244974621060739408361826405596415469689404041131599168747902142851130377913019749098868596914851563799202679486687787863457563582721681140408701825818499361843562735991827903613809527336116774339705366038865391708192890054019574738709974722018946969279764422090104469354444243598099617448467060042917626469640301951657082359153955895735636737928783758875990567057332743580033450124988762275129814022516194507442077237977927834693879341593718550748711726402574146605585378159008328920787944543394230376511482800321851324120873399833828335177521210736562675772688270767387499054507710364952433229133234828187602643276334907815688040086483572051346517629904368270167413689517158965956240906099045231828695775605263209304651770178933313039851001168717440902512808351273949740716675567350363797727756471085462950611220636085906348635018797186524626382516411605284245956975576463486808290385771466280652037666027466172790639083461170924771615142519060549460298518327832636812716778176167996949276344587750702271001583874411913228931157401446306640296904977657081259799807995794705810024565690806119567496468511231930098606173187642001418569270426012723038112640966409850889462742127508397261238753445122762284920093937844428971147687695799743633024346662903855285725428766083081137835027787908104491689645822734724554219648905724307741273868035788957087024066618548974580266061029441290451910883682746293419827712771668739930730627322162830002076564562205207817303427726465451792770339772146595805992287874355169147322445832830248689699392336500952074985751448156364761741063093249700105755366556907301263474267486773135306178698432683061254051763214920600450560726301178861394326611621950175708841923743867945589788427442409486488643388710200678144539538226657921424906123991975638266442179881817233254955727350315520954498929265766781964498193293975859393159640324276629035664817130984156453856146422334151405721189354215688865332645806956571837123561234070620712970758336189306853028401572863260275656127435102721450778318409778393536679748773342492297839319944295244614797544454984895015987194135453188285266021436636572846613000048242858942075407492796186896553353145193118641157955072430339993902349647591017668657966557140804124941490135058980435174379627569497741156324421253565595159528887233307001910842013420362277145825039213086386314389177073995511081758267597641938912921344608911499393828850329754021299382259050014534218413265916297429284896458215936989450619781422035559852560541871052496569443964820054891443362178289377906963948810484505160059105835280169446999968468347297469726266577881341618010545781756486117331734096084254000328906707247268756116175662773332313206964425016107851865041663294552923117152817483846224746936723449072633714250239290749784376960611409546756835833972826133467658488439954078408225323771242351858500445659857898953017677087038551722267147645599742189364443776895358682245849735654061072055089014521569198060366583846444681257948858268204595214976595584390563732723103669858103801926249850832714870663162873607409451916300033157326462859994335139030472693096030850938668701335967274300732310477889947316584157549452602753191929630991937387460739316902162377817092240132222594585024863902017641111560906790085591375058461747774127016221764573153812125977658438413473639159905530332717149233033689182365534377601229999167115752204181327454130146135606589406477848401445600112870167225103533215231954609546745204010440610950197135258969655270845533597974197692949557180886009006141522385699679582723271125231343445800694888984667558232429127991470556867655985864526534328696888381022617275331546700231936423012379632597010169845849391267531307134716302910800285634336740852331351434748640242205737573215248402791518514644115655002185178273306656635834685496691430517784156417641789008179519429482046634825014475057045650568864873899777827809465717492594606065776250526418107944643381539533059333349141622703462733436107775089330217030753772247404929239004324307909605841967986160391165283570938274079941173525526217551280218836143129461359021208114322124869160070762038067520394291989957804551809644358873922865304249155891503287636978431218193457859436780922945743437590017838422994662996546645865158681641527508123445484990312358614646129302861601674857432972539497229143512894184773095934823269907960955350353568188880566149829294172657705916621087458716642583485155481758186863864945793847477249535568308446993160201940732224587182112215968864716114396182663930311137831507560579254088946620750289987096623312200793818435058553172019557949989745240235782945491713106905000704408336392614249346251975673832690151071385849581782430470812646073736613987643675727523697070042126419386294607021521461843540256024502904294207731935067038475469254107731651372477966414775391246682298108415927816194420911610981244412418784282376713791592447045472273247391325921977227480130288825433148699357079118421190878673044754738089010587602207910800353609756307021845397853072624285643238091090766900235313935331730409026788439695052169543969518847721036096197288970933961650353101763162707962532231519206690751248834162985642461470700954974326229223670407760566265423822439532913806883202587903806949500120180621737389315231471890034850780146468598530512248825876319817034542063423518585591227402882590661948006967472115813749963723422688644953294967099902893205491888093276270515486693699767383332071319570762751541714731042920393766923566820791534795971637122921165272199624776698928756623001929757407231436995430582292880332149014609472627268203062812357651021771556372474070198224127538208630190754526410703678415472279793750134713561778968638768386462396488043545801814746704887991858643528985065712513436773421567319301704646353953249936619671547053956514182338415787258085472193220763081752567076999868655104474938692137647021554675379564647841800713536841755604958788267417291217513047531333984539261080564232269308994688411683998348586413088005983692933575204945030125112863221128705772322783968749394808636216525232684761235066736471974046159551358522251424139557693962597519166405533382389489062794003116664892164952681873518474000343613046776952213612292434201836917231964056499674330394031626546925977710500260338535020786858895154987387105741701205178757782746499895289804834928418552998845479369719929968248312444796455158237868740133232885283888247497257469814182003419895929590701790795968408774095707207666585484796753594886899586938474280603708221454242050998168138209013443440282735781693092919790422366556407645196226528055811879311252627983697258498974554316272287345149509727386624475482948937515332816054576413640475029889794731846882388399306188794591922152260853091366522248500818700547993477684537896517843024290133805290107962344378978927363836463865762513098159989443607878471290483095604709333677040464298617500130107238005340140182377200994292660838134478379540965302412587448419036610151131551568215340840380353080866999212713771412054388392822593918884508443453254646273190089480971884260524486060131043423907247069615081262402279115297904920397487120155775986893164373923162631721408206067055079680409280596913885513294650626331778114366003548866799526703585547649159976518799262486036281547062042188560338508728819570715417909540807313691733416255860431820816446174712691234405041306540569202642321875255550029199093462151186039662521659076727514497541930955594598277166761888651055470072756610606877137465264480720130730925266832390899135485846411931402717277665757390976353684105101080108968617050091017008683248148753996354162009336874665745871922556324769154102407331723430354122247014892810505051612389648968940732866440918088677863929714767802232301584741438234782145594626114376664598807353859672607240060230797362577325897499622762288793174723078914588319562807877230076616979326815348122182552472582931702557227404866225134010096195115487706295964951732928271108752842680367576344685583999048928004056281339904375237621097301258167864952353006778511294746269251584211798749607905750962089116474605589808054895980434178687675261731271024368679710233334132893888505769566428027809859039523845694865072549080230096446600722838345733583915761728024713875566350399945926336091915309577845717406002244494752164379426683296547509120623466311698427966514221197679525236681545556750995151389287602667816823579947179024702310913648503736108839501884236133800041615288409895655285114577777664279882290917613693205094465764211555454798890458648000194067052288493969360509219120712100573451055482726534849282788407952861189186628099502996937284547571940949586726897541973301408959528235377570470204049776947074410944047155472550266163413025218698820257728594466522239702798784493652981335814352019101011250812552603294284538432870336083043100588138449463025248461402683458030674646953383295190223369397779620629949762736228137582233632024165153453345949301057828924446541579634150682023652401052675785427550565666713722018226177933062032882360525439131732499084124216401760389340587195450667854199333822744067250237366488033737315018110419574195749807059004972746108883096023401643258184693571927878907772911129010932171121275662646446705984292214710418281439647430943904353658705560991002012266608443318774197119564140989107331541588609095863749715574868590927847985966804710251021913581356469995730220596677128911397553524053443223723941346024730023921056857421300872170827064407337009345695168488240020855249326607620978235657197420771511610391845758881887260894934122452100238525794521499099161065161013847878200519940052607136317354984135845162828858871195479726563699203557675365179292153602998725367947149107801691925088851746070375671359834384955979570858177952799835364737998295226797938164867491197885257069081209643987762723500025578120929756266243220665653714345641693365265678947151495575869256478220051515451856571768123485126266990528992355571941553477916511981614653684258927031262429633760895725035882360099099149156352332707343067685288665351267212722459565142406103166029905840905210509615557647890327197173566042396821853061398382534190912296697582067752378508147083150082300833801852450618508797171501592765643902756500867158836879325307598950088198790107162734624000998705774881530714619242624250935916292741736527455394225535915122777389467407355094883327598037198026350928502860948627701450190987803130445008909922849860051677855441348895709683714898741255021947164788269408198520856131491731537800658628510212908179937312230521122950766579926498734943864350842245466473096161006290754762613153348868731316725535940914340913978162413827887540250943541072062781807010121464755492756562756511301889737221714486548412616314844841070321318902635600687175337866311497199439764439870552943348485244344738338930312651899019203159244217954386342498125005792149938341254426266301646498824873347383169606432093599104537178604139022254820472134773598001625642378328562675141492033707523683366997004013232291871430231795300764360166900002362944109464464249916786040714281455851245352983708634213773001184519526758951003817266445907111485105187907814446928935153517877344738680924296002404864232766288023054301229924992964071126330161420744268954687905088032889641694374425215303075217724051892694289069719551715321688305375646650847545990392609746971781263267476183647242552377977350426410040101366353259499934334009106529960484559455766290224869964020553950946899168977146365109069959775324591424425494932265392010689286722666761555611941510388356564165688650082205445472573231552346743976150992357601012824340710495827320937319542068214839422802002370865789560691425110078520181817352528819904904504695421358281202373287166521134655723279423099258017984136854138072160696830742365050944963618742959190681226843733835814680088734317990834961817477443487918998163821407636432861164444795527611108183978526347393539540559110754839901963034348345482663852440317938050020790265788072589184313261599106049788553546042231255368789616872645085272497050140775024273930989301778386195218455895949430453690369667157770358057871778306738931869349825761925523455678093809684982614590612682322286191425630153469903618767279022412207807410159900207310958957581464115813366514737078080130521315842690454860731716922927905912556182203312146184506628921271415426113168967780850414483534094805268872496202699329314498854093007596090669005416153344956781761287986010167168313287149831174884571947437825459781464156736695285981348000524291989526931911464606756221897441707916875768093741947816940509101365374976058156497073543729715162359464766362030492401299455541658315271990737908091957924637429341807070791636480441758612423798761517252502541936769132506059976200971728190461153520735921549844794814495126493528636569138875027607543038767785158548852364804040194440869892490008433153205021672009682957963926604932969472480525719159594095856606620547231937559370963601899290551051719627672506567028403161584946449066979142859966399715797987272418376547781473151350786525027639039171483373436369952763836360446340238283297083428483027312383624323734902467119782061660475618158992396502519349158216680811646380166873936504140744591235948534066398354829256267845785290190745212008102948971180570648564456158466513669394740731794150969579561693789396423682948478524319986730157848488908324302318150935987944969495088244868700240718497516663395607549200041488215369426361633639526829137808503529254274274947655862399976117063937878253772064928989841045463014525070397176610441212860747735001357441488740769136099581453236538696265814231310327382400204218925123068216391008884975974247495808040753033673024920443483214590612912265704262526669546857954233002316466574199111795904601936979632734947422937092782314123748583993182791439673995966187188245920150802101948784266728163294605355081786564847529225013687973990992237745876835984614307894161846966563971758492617201184640056037143979233133710603725500268584975984299667566959160787430904497647417179085341440673936892139520513443781928686823905609811368743744415444379181547631269399585604238434177097126925790446911083649290480194636083431146147859460381809823625115855394827685388032976355243602940076620025027708317570337060060913536615178532939165589857191164235664019296720894635545066356686549815885322774129803163150667560853465085573403561139975831768151525964911706348551826226135125164400513139031075572057420499497460923526085702414144640469563046804381053818192099953074560746935238387384995871303336192648866501318344746847859231301522737395250828522214970551283830122221956592928437733154611962163613338446780322564714131523620367411115896116009324957012432045924428859859378654119383921744772751494276905390839686957029008291971953602812264831552160636133216028641118848964937522918026388339518333571262046615692907743253952207129982416888202981572480410104784720251733373699319808872791282275920181565100245942259153692026503483135625836371659222357169712292237381832690395143891438889052915789817070066454972458691007321698586029105750582073364244763515323267475252353384108639645295033753567350513845638745829504344147728064884062289982172353673720627332218437648557621935681660561256480062741207381872274369233012194302623128939346550045663978676616240965965389909145767331796882510688833455121799547459919255191848315817814697959250313560325248224356041322267759939886269371008067394866048828581267087259644244187787102711149660134540164117175713543933121452646551804634366911256755176899140218854417899191724577466323592544629945990930831617261041448649652925530013084880226544276250531711218221194855110316085840490841987036429971025608152793429066070329295363070103896842900672245614639392471114538075055714165599373542400358861585154421486234224365887689921498888921425337382725892412320211759822860131660346483109633337520558545787438148350168686483444704997217635039500948722153468131719622367948043607094206304960420884011580049000435757328453176248015215117652055661839272904232240077488586328674246062891731249189774806938003386503168729487055520013332886506676647154440655529437427576904449239312490270724246796626084780410698765730657742189486191030354637527569399662242902724387702130274291529619214249336251215135243740156414825318219124548407423868987781588443023691943093180701223986012705113929535287826218695892371950953022247922077442575063590210315034699852483520580293109137910821545271274914772474433503957102963713471769813386690112258328565105700942136999265541442323764421504590603592675869634294267966976072377506287031454025149515982380447087063465899732947349725927636125627444832565401010028830631453089499339761597308056242901264845428142670557848667067099756017470126283270110313292036815626177867216353555023826154136379649606037202089654117582664855532084403626780216087151465008183789587886926378750169875903419834454762837408896622950258683141659630011301050818260964659124144739121185854796214392785466199103901543246987464775381116413691494602396543983838863163226357297309739284357010848875160531297654761133327759883679104603658093849784609499800510236226822735821975829225213548026960419570627234068479963587565174139424107970498210318639146402268627285940977996773474554930890871622184580636026241071829842019687913370746221904290700359436434459406620502155604924592712720419055387870053238898457149742833543857750062435065766680110619797655335511437893568747569533525461710202419585536591763487917897158884676789415886063858937777490155947843871117592142107375539945005447772582988677931781444266840660771530586189813125711947891329595440981157681714179755804146008078551766294093634631404962592748598553909543869655665922891299935749693954042342755859501315419499979748964425507400701863596962181297735223786926474145729116890269921665044058936544162222211487975347343249792412386410951257630545542718059790618114170589348659894187660318868467085583153385474697420127883061488539711391222331404279485548420149319547544082750747427526649373366389529090200424833989141141235237549012964965724913798168218552795872485379859732348497773744332486514419714538545908185949539070791345754250461141389332660053626129180144243938931876696304876696956812363210296433827299956670132573055022478699084724976785596663414644535091918686322467895140689647782982786216019507452021843480507326622660052589966424571549586966150197138855317826553389572135791471661234357293531613008707748419307352199903795034095190397950757536888816674889572452012020832040204196156903237517043822036528670282504303967510238528861146538084507955431474000030383135670178444046777597538300885779922385010032770769713125106030507690912297611643126897147051506202505354061957640121888902545346994728056410089679257246587561243204310018742202216585391409163690851227973577200808162237127923058256042767508564399385062823461441080439512759044345294688709910887457224555753690411951735996126141341838445915554788001754049410018179926847491093564710192818040751417168455241605750211724709137646049561751889971777137425555336925397024055356648312425352364722029458809949398201290161998394233316871985787898971358792917518315854571570287872373841759098096303148803686470831747949014673693013255680800597955731477617840644455154196902522314596266051693593580862637611780004248277460131403274303853893586493179857594371808319437897728462160195162973118309896541699819509633239108771934163284417051594644381689467457877517975013465550942993054118710561487394689290259549969154337683364220405207967721009963180391915460619738982494821033729232346585225258013619154783107437853167344636060534330354236752807093874966125448880416972876524364411703235706848719609952179221123136979305682933819241156922249175263202759722376305100028237699748724940399297215307791260999440790549716284906360538079107860547919362234998362098621322690443766071709876015189846552384135033816947878223463042689255532508985879593036094091647592894983297868466085172226177416036812555657053000822938068766989584672072601580358450928810570786393730721814498243099077962576167605114350486714381036950576011789604410544940758296367232220948795431580846961325972657322789208083229647254761081208143187321113712436936019714627083158908643854997115114724678199560090180774133817387977070509820965211854740779896712442125788518070182112254735090067385783684569806412155216923943040783386074198849991196729826206854175798188582516183877254038985003125909371067274879752288959689122309559608148672356041117660140192178984252450597358779110289727612411203861486094417287507388884548051497555211685064377760385078667557907968184123198764597520056439405672004654776496968100979327227431248622527856392772886137204882030372885574599927707761059524095902833298870973987621809112896328924006272420776390337007092960860706410380673006889630407208501515934425380115067719146788151061276163673325433060569021884333817246376022894143371874852656631218806646153860243600543303206529825730395203350565359662110189546376734659621832925639684971962622168566483717551887711130455944914303664911806909500586528308020156791662195454080785246172017777483061498752668900731930130417314497558581146006108222829390549278928596231463224920247106594341323525334564424108686150669752894635677066421533473477216727840240288553756069535217573973523071057150358253744700600047818377851370486954981647546905071425281098116896485253592541982237617224462752485365051286364601016155148598294368603867375717392944600579473088777267670810161137906621903854607714334046921213465640465359764721964832313389040706695082318635493845549201069474692193899840367094025780520545707625484301935237552653998350942902722929069271206987568879119510548345001167414130917206391039504341326037806598977994144727463749940897292357377870779350957549710802222049996611649047608427908158233527006031120344921907262284415222687678791227985846321539517905320041149249651330714432578200778425682085117594723756373537660546151294776664513092624817604637376131810855515601633758722067525490543984858762673189881456044078763209246894361107693012837473313606618429166855138570332452421648364392959371908566437246321210370076729845434009099651580368681090435965904214474878891651544680261258870989815081668455074208306808257687493076617951351031605307861535020731447542944088721497623368060729117560973998972823656186964311329852809718769148112624986206194800781477951822838952509253321450754413093898088789984183770281018377595122537634722589835929049831504175687507027392985823400420689702555926769257185275873022581905613104701222321533083291138164353092029113134057243548150889393285838021707914263474662790072716532536310171895777854502790458128895991893969719389784266935734409948666733075091164895965750828014536568674696181968504007469756655228661516763010492938412059333192537776780473140072162056073625215463281939365071839699290794237922001422013771147465033219843737269454630433294675158246783957940055777516193282509708406695849312509740568070820890663003195287829774192454826953787797877379624087504940755563949808841532815329928462821362088976013415695657370788259011598152240429580904405036689634824882503419842587887054743568560153238631216584957823362533106274336579367026542424428505543278076028330109570525335952846188896464102145506611088633437590854235209585908999979751181974510882722251211584967039715099568815952244756773860940847154639154134221694725183428767604504095705299374305611702587806062124651390066093298043309948295860297799235766716402841443120307858477736047853469638403494751704937738835823679507295621506502590911304374582708723739329598636570153695714438434897327163048550797973276165204862949417872590287628584748149279249356744355826447208886550490045391415630206055203661635952280759203986169777852221694278081399867545621175259899679073613489573644038782867254908843583815367726024972583727642245549389076942783986348030416029955120597599001294246856704423368690630267223866888933180843082972708373977271011933679092516885083217893182036836634837636276869932235023550593310658593669798671364259775071363404765904948826181932931574592898334420039664231807069702037183190325661574658547125354513455674503646227642365425792655892296517162508231499518003609518697967815379459460099473148792867285259644603899146276727223522173294179094995954640039820685904025745456139793041139774376020681991590491771860556338297847720431719345184063034023305329648567720862365154168923981590496033582061379069987947520229628704569692007027985384102949413214945826363576486455443843258434305580910821193498565106449968357501534753852414151651096530146542026684653349630612692237573907392954221872594330667005578134047836786837885819131532946225535603639306574644488496012201033437540371732732678868638957225609331836724744214404392249080993504501535768794218712939821593783597078857999173994485004659569554237321883848424961759535599440993765796617508704503134657914065139391608607779164932964501685917168233803216729090517623029006244437611512914212344697187585780674120955796267204205983961089078986484345397012284424728970363955415128173285946097134547299720058394181123252294633603778308109331826966993870593402286712147438847219360377687851145314448411093769426185883301709660672570243398684490717323010974646420444345493196790602063162005692928717754757776548265352727382638097812177866998791832866984448861826580337808478972177621991777121830857791355322883445618387611880507524094602947001038265579164277041863527497206316216973712009385421161796123022700460108779764878325222389654717811853104206180419429905560860500060835170002065266020879521405227666244952979483407387713880390711522369651828138960841620217851875625313700746179880693208397506309898724387120721784565256928244044481496139654421121498081356347422556897170380487861381958920658336737828057296510363029976613563711645625528406950159394873761278672470558754383120717700447369620744669887554165093062879923165766052334594801001880407656917425878126686410026890098474806893519316016860760851607192049576926042962294314535433693956887618184776942179049578927838219425875067883540423592441995362696170272259521518243779711351986378784980452034697109093251330082177247351893853746864540023409667581299742908467195765581841836014547480087098948516306826246282345842424906636103990804652790014312913267227873155363362141691559660035800774814294616831962312159207801511530564604235468501282682103160093051335369749987929624176025788638013232874892088130595948853721394327458575818443830133271513065255625492501516037551950773756203909550955142633517713694406536064438487868131647102112247745969349161864240069955255703075294966001328448334975914315464746015182792133015020029001914274417680197717409881948628776044442267190287883918808408216460762984091522998020059889216971665911893066286211229844761038466575737457373576901233603674399931590482293740577289205568183318741922065897900027745092432683856117584545158205205857155037754039573704739158878808264021089876893637310262038072298636617871130912255111646604064646440639460340655437873683374132655744421888284598473953096112725855783588600162960711586369235700863864980235143513215032525227682824525608655824107893734990294151335472516606035243225814614532295210842967007215927914971647682989392835967023759211273160339082937448962897656375608045930956009530137754945934017736999948215679047613825038604485042053426475821371143804997577150142259866624432460416359283016963657747652946297022403613929980382473718436781070430591481870363542245810449059608756194432246916727640781243731682522370530530897036182871035718321563793519005675336828762830906748808381691275311643350300609839011970585882785925704734101967608657203200817139495170783706729732011864369694554022141406526313946881375006735478464478425332716271993154778796048737458904823758079670919360677530653772272745169764977859369745059988548396213852022030444658993780636160316615949052601722315086376721324598994863906320659604445124516624619234468868315059332853630051033921751251021195545597213842264469529791390148495516042143510427762726127423985933353166720669534023389174940340925322826278896382652721202077095546468144285081974984687930244036641281746979648308906320404386050065356182709735160120944912807142183375652076972012702049513067290256835456969311264835266160585526984186272252663738973828957959538343916116009917039302463879199490277035067974730667195529840314804077211554175425296340410987490316228745535480592669410084044500894872986219208559392657071761282343980714403371155152732177728045313720224504825919645421280225708167807438769692376984871495223145598244927394349144019067155915095789513353928684718302985799628201603155467871998484232179150285687233474533920122123443287211937447123173625326924650829851771870214713529520726414871492188144594006247912651613133441660281188443383726287499542961700475923567375199376843972493187108921187926233481535166049105210688047641326244283531562296973530905538245138202548057364473916736187941165024344995062476298555090822334418928233470022039209624521740255606845302935539274104539364344536051279599560841061023798003983600094372152639117928483078821005078460741072557126141425399162336230991352186232079688053217789801744986085914836507107385537135174018278678318557645395763276516622154402197755621473761031117232134434144472894737944060924297882046373853672985974286343492293872020662630407387365294600998765102055086558626284917423295058072204730430458547684619121563112852591703508936246938382289378993491327686993226171098025080603633917603739057659431304928315223773676183132681321432247591760309744052700854747248033685100521688378267726528434793187366590870692561085908933403854850700732429623006576261946380003404809910799147163999836525031527194890097965500116064164264768032369877676433923143359992500518076495693385937976217901108610621437534787375092238480750585667793971805267098497434583115796278015512865953772013800707833259953113853656366673609956049779336063178880885206916010776258501092719691031075412716462784743333422246931530890656728037408623514955296173420335132487603192901634322869346066208002829243938411165591199181851127764954763070570774873721662378099577686655104581646732895960654024298377373101341754139909598482802172209811396618773017327660217510029534677222831114545101064801003429138359287701607711785373076345754060609508168175285093073912425774489278383514538838921651882890381755398565861517377299819898267678674905911491808397820241248168002980003459502046124476928489956969127837461494507800606859602641874147535069328802257410460544131646171808134037435575713871818600684312011693377062682548653370022550127404743449623402993015527136085783149129331158676390292616045357993754316756539145991261605587900022438484430347139475654036088720010868349298661585648347410022469780598581752553159581493405295192695984365149238308805510358307239968364337298456418363681469651810335827702563140288638991920610239801430838663106596117299736746957778722734301750328867790938697091187354195963034814051357925914936057689110051702416400749299845408228704680315425525247408974025234758865263290306206792418351412867726596726373229704365956831218173748638360821949791776244207588866879769280896396496214266788651930721051825906594519639121111659938595412624043407967227190931038390137662454111164208817588465317036746279209606796952182077415923071866067050009085989959327190414600203883943192839486492936731855061782964889874925786497736605109258199198508184901953725997340384988554688591168155925372922156970765060436760346089242703644607937310167744068172905808163537831753871333716517660026215179706183500341907365013273168381039688306348130517243193052520863830871642772246063590228120859378238212279241557737566362686280658348889710310106173621991109641212318472140987752062743157084559667744213304054761120196441661560548547369484796107279004689215774626668073930741968371866311478797180137708453852273908188572068552252900124636642777903531145507548563254755197828138405901939079958549335772566819192283058217154822829013698378900599310102229005059169042994540876780491993358769945046611973742533691358349794692221518178039029748586157783763091460975830717736511504803044327670742618105726634106613819764041429861254382862527872098351920228789800990286664829774423983038578326172249542228498640379629779109670908638593505625889994641707889671995095605817496241379004850659978097846814449514867298627268106546945077224680319639484100251099132975780985359981544035779069640603987766559680606298125493097549089524182279835642952675973736952844752480524820105015644382050609280569020269055760401567360523245266924611477764759297111320079894724561459638154749933642117780602428543392126527379320684147541122662422191720184883117430250129255772788604598169130802370114858023237318037504063391111195717298148898877398050310988018885854418860013428364457346621191134531461795836533276110889835975824014910714429980885790249742910158514578190778802300926455409450020986403363697913506161493358350410177656237231185663420128530731409308869950626280333467707221519835198063651419821726909473681327552128527669408109383807870601005873371104746738808553029131526264580910278757044778055520854024619448717296243217185824130972205518263932570298498021793395804540452454985519159977570887501650524679940768078726958333488893901270099164612380112622732350675254231446753787874782869122079770150162040098946948062428330709412395324597278390738893092084219958686143546904078647381988462526233865659739008414597252480857250873122967186481194078338699922581385347308238667248614591492564500550403414596348872027625893675325477502253957421324897518343442482648589556509152821791630226914561872084875147518852853409098869218362573262909364592272289157500917632119139084372787731845940323025724728800474530142382149470995508933162704091399581337947247017365290929056295745746835842052380965493837228125858561000509414627144499143378776603401137260182744109021932196220134869551800886323085051916847456676745207446808498462983360148050325009881545088321983696670347995168078576533650320069518400150110711944729094577289245956615715221165958130584913756574198823563385163598242406657163753013055936633772498192046967240257078095895773071784212424547107016349088130413589707648459550310144390868381958262300794714414961896543999075424231813112909658991720547977130600949183075649022478423341249852420765024852879887087328643624839613068815845655260267570027649017910789320949111049042772699067566879359336509767414274017344947248265924813142427422202866819444892434479303550562730704755791003645396585119995997424296895365049876014414341744233314116691608723560288022276868735798034642052873980475804652081220510598307048937725786192120652874574728390686259735000967712285908624747864010008890345716215683916534324521914377922126423700791512727226702619088436699747630265502853083994280893070607303386834626541164063199540637262420395693743663060538670964795636208258291931552261846839542115594902811736748787514771983801544500161823506398833646056262818700962360098402129262093168168385189832050836460760916010586896614455363181058341422905903601478931459804231646513152257893498547215045773391067988829641392822904818706343184516713714951664487204067030721861434668975660380706398066405355253816077212144498208860574417030134333539907603796230104198305360646898657139677223386209006872103590490350914320686380406395597491713517588212475695585409267802357932896157446367552432198107498272786898605439721887447034122912759343774105243308189231270605624262196325109813515176468479833622779023304133069925260158064453324844162026501837881590672425853092809852565356517892449123955643453757323624190454094710013668952920756388583557592737335650760758694177507385256125257560758930734387133688292279428011646653342118072062547546454885545924223327913820699628571687660996420148915982221757119802005826610100772418885483136173583056545788695918471076208629078721500432097499743651204471839467494872316941290782818592571604936863120287616115272923936955022006580526192039726590311576998246691018835495921274348689871711876203895464608243556092357034084470100052399895372393278222235990987197252588248965231259598923477974037887907141347069266041557384422294096327847033066151401051642085878567287500623741595599307531817733373486249689061926076583347371146228119707160807042757822511885835741254445766066262442271158310079627331215223819772860583559168159379085890014592577846259150862712937904526776734910885218248725000353369918053659090342637461276721760904787657858297245647088541774423045113651033827747147707052191437238292162961023913127190994901503449880719804760691936419194767912366171726828538931603588532228593624501817005674292520991214947858131736421982981317239714030139247756637843618379479817419955441614796600389277509252113477001762046610774080110063140950907907873329271352969440163418012864163110798124238892283208657578650287694072435859135020549741590063545889957321631852642314441018530458438766731971435178919916487285022526726136494590256587656265993486711854974698698827608890469535684228669758696335148616164073197258514179972538515112486641081144806142298492132154203255374653788315298036789138475780968408111504079663166380285704306335666718397165824444805242401997952994856536497003906796562913829136090240692005082921348150994088173683324654662552032844066513376682134625430469114520817010239838758102921817886588010287412129183582532138232213429312454599119168945884616146607697319743638074413374527537813653600359537710592030769541893121954917706442882132036853377477770355627148401950678490145388826722893201805012605475871077556464764601748341411119801200585450178167490139372914713824144416387181513351280546251613936172911468530035183113132888571662338170066081822994420310410551107036341623417534290333775647196607931348954706026005252550954779355352403228871524463588676257532399832061472943295723957846214074120293664990181323154442894536299926326331455480553991705574314960037087783730925578857208112029159601933453580789470803965448579985557896790226625259501470961613050672193905716510612244054777574902633466340367225041976444946488842218453280828700164837866605485777999666709157357321716166341837576042746209273820839602721145554109318118089702666748530215115642055027827575002261996843986260842135963311911803878674278254941833638720508620597733935602048728244981043620508195449014219502853501471821657370845827196234269918738749014110206636281591750937447738252532729151061675032273344899833378730518063667237129256091126079184247781454883266646633548624159838047349094176346278855943406815002608618959291293654005513726624164394083833627715726988450976122651257858450565507731942335540091105298788015703282800345158094441910558300910741664762283848025308319425504092683893955282493812833898780342686160877493213988380604180126725583215328480220457079618888155859760087563385763025556706043861309925397083435137877894248902634633213459477956334891307210804092962922838634812936902200887881738496524045425687947212925045354250629408953170191053333459447421148827450994992564526902455734225163471518127274642879256726875624879059834242454941391600381829139025443954314671659240253316935414088506471892026442966173442948853480418769785127198692909179335506714236675478046251896425740729063330429835117821506168567387006132687952878537945089153336491086792958807337877035511024087702992776506197253429551541356200617637160091632383565372175671520928484438693976931109767410695560807269759310002664957775757775665279846367055764498081230225038471795505313120605379446759695802581204796517508406948543605112369038861832464760304158890075116211307678318266951432943622600370398930666511286795841552206567051150734249505106460196893991351024879766615332583435048857080113630388760469627146338452166938680898062218480947571648475928544096333670918169692618197133493146598196053646261445584618261223620365988152010488427268001156648437478199088152745453825628008916738391219970998655515851802054190362227578163856660448248870648029680690101033648199724827000546274626128626662647179821056561355027954596131634756098592622717763810737639187184275543589613368888293816019948079800654650607671743160430838560327624841855451194559994644643328345994802671745994853898125553201458753349183391542294330559896071880710568178431157078408889196605385255624700952576225381573981443439743834971300641009791459257432701190382085887158755779033702525400816696568555081773975775333588460123330927880778427878253241438607711760134604005055191938103708473739560175752002630350570195241414458143229243231147722694191973794125966685378552082979594618881586188527484540107670636054694148924218448943504820194810156340163676654040408009472330291794867547432142162935907639542306496678816538237419518882258166793193846070060811262281091429265420693518136200411064480110638033988510227534993532275338385750420715159607197838795079500396081569026216292932322093716757104043668538100645604037019185662644996582850292813604714698032153954261339249778796817954425731719833800467499535981047788141656924635901870316089790809205938870862231231047339843858759918998305360164691617118599954027870241988984069360862683306745419094050282278846775111260107322326548820076773440528992383559771015213128003186616462959385968267945387210382000288525051813412324212602316144927038674612219150184039326527203992268850328950326422436615039688263110995798552795989047108395466822034353847082702171891068099384080061874685024789637196019255190685524582775760861176548891919539654463546169043277361052172261705865000320389662782397066195721603282693249813882385715453191886426894082501845649833993819271638146045799483234967367812797126198130090080976715207211252337830260974154285448473079807116823767156283134161458377872229372809739508347737502951396477303198193561864137267603312817747092635821811137206942130756901243906132541324655980151009835220856856141501227692874123199762159123043477129376894652722616323207360694120386075249690008488625503486355166989423628350354030594920339178099449174466987619390032706032960135522915847398542919499031294597218633809898721462544171794273447866540491204286821162509849688684828442180464147807152186200672292118930538757624506257798356269831244575669061952455370594338258833833080158101028159528452602536817044105097797595541330226381657596836484245545489428705546019462520165423967293877849606322214912026829112494475912089796018184046546493600066182844405937713796638395678533748960438524176501482858786352917879724975027278419018274683577534899929594751027595581300030690158812317077668925471999617741712683931720128519170081103467686160491364978197302802090858926879605292803142072126004391753470421312928694037800995028649741795369487070715367541525307185170511246269933152487789771344102207746255378600629137836852251560230790321163620315036297883777945008470091315669678011329167002948507089255992113160537874461926527373450323766907549192531903470217930529151872351145392997740135283742110196279527438571798415669202878397079927303347417628741270615518539160171652622097531053226260449725441825272432012998204139978807966821805612861641811130678949390760629308341656632890254972277661024933702185406236566235435787235965140816416280059928632065904014731271500847416573817811215402798808877390865307991173395983666161835852766931413410290241544185386996753363824825076808653691115078563815759290570600552733890743487109233117984466802446609059905426091780821766602612007397395241630701647456508997207231507914404453160265263242236225176269173418254948126693662564169412549741274403382774559364103281274092456726005815018174702223776089369071689319163756345560025869591501435860385838606032175138772865141362092351891562687623962585279868444334549192420770050095952816779235959193737990294068082016620007178658137860509334777563711697313547454147441694846695885463709019272142541507002588029719018321645334997249629880744659705879909300228544617809989591078118767881643411323358549651481833882186928046324617175759677809010378208745661015511398962442117535606860672173149528443417918573646691319482138812196292683414100433955621724129042540078345367492413066738030343060980737749975588514449832432677096046185775426351547124657533713684731277128017761366018354120668110355995468898021917498393960356223000871343621368453231654422894005341655160639773898523132075053086391264715935472912067544224707017953221389981176990231427413539934253058074464889673491209146200789185859005532978560017439842859973316056369969566253699865274906313417071760690534613717558064075972793537924663496680127577072702880916688545839668121778837936711851042782096140736780242102684973745670909270622185418828565546160451127582391416791385994425691656491225554640049567892271694065726274376448468616554869085724894200837786237611296395682778251667933454562688767213734376019229680061325382779723641817968408366215585473767462082479381088131405295306845391431312548972460378255891643505990792099961121866847134973265081853499533793344325973332549925607380159019661291429119974282292986362580565186501791214196944805490679843383464476382724162448074233412203396144504208318176623329553941807790516748265950852196933412929174216765295153669019979649278135910415339898724108836259623889671050373109016259816254596510479423418077627557850961227962741083017727647520608104918567563218916683515650641974178812694033297142060540240459555021858562791767662964541868237146031305726971615955387512766042264973625482762091176599139062661850275185233358481111109979140295327826151788267945491085145017651015128078924451413081819689323806509167399134598618882151559208165778962227415292848480743528296039669787421934043550369841912022720085226909023140321760619356364274571591040562663956013649465061258186700673053762784089238475149533904946562887224475839697044703299087826175964141698815511051723634368307259665378771480222513439241204172748385808551971577627691517909351657256042241718791908931841708256846544479197904852993115616840817184130747011327274702679357659011267863599871100233142239026527063726672250149779329716729012869941056337728123061013228225505736693056959388316782766572241015982109518280064974633810380705038749449380998466754992731303537453660865558001867490188195794929664951198597917030424580916666019446848190235251651232647473957975705093693299044474484965031786570634916164060322675516555929684863050674266499697889626044050610553332397447684640717864637618004969723489450066872648106295505975292873282275741812553221107008041528267593338043653671223198092586501246739356398312811737459482852260542403935602576597191018473068134677167762569848461650518642557538871490805116103351572686299352705340675026855942845091795815168794545551076531394337778487480262165028419137902351975515624560034454354437588914756667539091141193363830404723104413530026874988386443552748556568896070817843222090770542660642055740954332902301047159711373924599367902447984910929905069671509391862128346325816083347276320653014628038452166069525034711769072610353156860118162964635198644792978905520824354060768761425825109903748824689150321915552799966236446630137504648809102497789943617729112481621808293286311422344662529006621635872190365513529159751113484713334139445132198784136370112284415209814592353019554684709242293901507315568603834503094604070370134617569418222290182944595933247755053353195051811677224744238042593599749547272798825298873876127016082137804482200006501928398064470118165708799723842960084412942518602469533044218733837985955396217460452839754694687245257728064117835639723560846121183360451409027587586443000309596842279492789327789868986227212937577705387468349377404196467830786575904570795436598814135261944947966899401587927193084963994873428245280243239704464779181572350783769624318737958830592327193829945628180170563292483490890072430038055110664561024238944699312552296056015377714440985668322008875177155852435624114248245739354572664057390866013904725158998641478154285593193714530372862891307805956203102029503328292862114154743453321374885335069591814935444897577402964618530693438378607479322816794441662849878142743553681872383982650974421334535148730108628646538743393345079364511912306091371865596550161536469025052837039610002049555610800541235964520866083517217185277417640540160989098181207687905778332668020921108301003146649979323174327438228818117587635349994257490051878767711382041858281625835455822040603966528904755613554793345808360208784164660727974387434745720178340133989252246597009972529787104161720574634449087389266066284418609833708020429165849914201848868492555899331381104675480733467320466877337243015171725227744995795773468601723932946803621123075075895902898024614909764090141143455653906167547148471603449582893718746546982458986517355019779351957785611362915784684078694400438586908636488771916587404068230797801971860826220323968648527432789679381947029136600196380783375019700299673233073320248137557475094250786436204133420121457098288145987165226456184307304381706071972639759534196010208526854224486320026225682864559203690656483678449893346852959510871033885376494332678743590318085272101527530716458212019562030737484830161737925687259595825184104880681571526356570528749312001441515462756046671721769278120894445817253119450542439428077559734560947725902469930619502551992247496565853949298994350154601744042868602649837179395486552062812170380057341760494956064405408732586585602039796252131760561965176698930096640345375009331496607748135442028858054769445204342059972930947945421083945239685903545212224143214080745366966237236411226104818673299922884730887922598921744314819318940175714561274756842243920099679336146441029570697963081492617868421060272532577247633751342278088453902906939399273750241075368996147210121309052971645601108474911720083689631624270079182596640655931744032579502899707860743372543618363780241453061745912016749812966420087311442725241414740647564463501372957981217040401565998780061623795860081071807311623558546358972628565300322272602905082472196290214844353144572773210220435245940464838313542816263174838660940208241278586343829692375012781659174613785853666575619560134501185261762608744778138498386086776723477951566795380967693971941148949951627748652304168847703346877734770850126114355871049841918367598426426974696013110984788258912452612095573724748272082145486482266220398597551642206445233131974453481118692902185406853582194901657425556428687121491331785572427144837404703921492119722171212618760519081325234117581424317026167736468750069207794752001268959232723198078437261051836452528615596694906519857175037582585584676128267110885174278926951103934673921621143144247491481430019065514935897261535973823719952741708429008854822520466311641974617217380705210632195844542192713344437457834612808321793995401571115213176494471312942564029056677964035966095583896154210812804770158612740077615476248840180622027696696744024109232341948164784381417739617522128392167327725799005224205585477960291986818052042044661810589248136413355077187397505089756513098597853801490077913948030952438302853631110905424721168220960490521223680674119984718474227563186571889313857147304851368766004110213265483342737930982447919093945268185262590309850868514710453750323375119411635738667565370042204457184398283849475038405149202290474025986352463784722062728924498046805936739785882336149813773139408215911751048819638149170001511163979407834174278952967528700480910524844077530610706536041928126141274810116025236289676829700881657487779238786744894711588235541054270311440095321434642851887606280572057125556922187307416749928806562835653753675048816806094940050448778398480024585882876190702808437009470365129924054346834275431056166601177209231935342627366514822534891840306409814927087594747207865260811064583645523873523971540158294555930567629132476210052663978329764053661342606623612232611366624377780909645969638589634908840737799703442660384042547242974035697049095306244293005216442146189327514045004222924598982789482332335761792222669442739381137619208791835903531471803146635661447250434631489802275503618802957773072435457854751407700482342319571473679571137461165958314493013112884130398404254309692059838360538024596415703077480277358295609809197733231012767769304640748862572068673104138430545262360931572648721279789764014130713258107034850397936247481622784286792766064354134483889963556285886092496680734423437651499028006964438970723277335506514249605923446476431038358213971367552335190411312712211250079721338058554280181573054487588060903720425292135468613638304643569646300084859311762107119831064230585131585927897545675087401480931038536975518590982911352859066315148739176373258981257915630967890829390136021418063829514771086415947262453624541338942264202952374185784410869600639854710734593493795665208202333459011832368530921624003266253474170992529267670389039813173031670250093369326603129936455277468224470815618173761087564161321963662195355939238362027212748818032877158030838831486813207468920150003411851057057839520130815221415965316504286225044151772432337730773060847243471589185069534028269175756089925865638008192716014549544859928460004190801030990637539523868473881501903214680356871410821647703688782852046693370820431388893173407099442207979510575785540144870184945164563171949219237194010101851436498619059952675633201171692383749617682210134664209628236675325888914858094451173585619571056407140291852509587834215114911070986129991318978099421849191324339831097565886497876720869151137193879681889972780432919470062944299616349482435672613804745218805645298381335270642488275008929484671881873803501511262646425563950908790384781767445876282762753375382051459125104737724127520601732182269113087316494207663761653895336218661539496821380948118457510888570938162102309728683798297613600484961349878722947830270527641768782317713962517822137037781464262513365018281472527355561442885177473721402357592518065165690101778890313534416133354726847553883094952286217558755283068700036022106086719279922338041259066175193997811204398104622199192126041221928030990913744288309668173901973375495612216685505994559860816252699364516008187790680493857945747321136133216209612605533889860801834043959370259418828138458868420420045287148832452997438818830838858156228197411922432797590563567541148972131698832420631319193278447701133420000880988990887419054501065240165222242241581503711477583156704356480879278683348023118549575715354229239941479565770989946919524841011889042248916580710725200303057886682292407074073678879164080221980650339399653696357877609096287101816124342710421049907620237123262232332341465702536239527628090265698100624048057986522217754288601017790412173227217343238388325957422691285798012158754429264050016699443793705933163352157275487238233815607939587989700717850833714411354695986175674541228271707385585511581186434884881013999756526907753527495342149254468269028395641647312619787797850596780087326705324129780393613936947189411046521623853086615942633512513625872048181775850879882302841468311997223453837223401454317188549033712908995488456677435224392238792608912788601232863230995519108618039756032457645619034780376881753982232309959091368491984531840268786260936971882452395949535855647564911365416366413040258261801766839562851753000625025301085053773190014789581641055530460359283805768010284569304060091445666580982564053643533423658431778720429724357680283434503773765990478624941884519420586418791751861744868249092028293823142770635671425717272645058853562193411032972534911794597592386866813229579463975127762515109590894555455897758595819180144234489626952153468119310958399042538290761794640067455288235479186793163851520704531288172980637513406780129512729622176864760671932708162537234020860446468246536802937460538258187493350477097509866271422697985012614935288583692934236450590971565960828646722767704154770670284169626068531664139494180618061214287510091480063933325794961194306512517480033576103231234648937912798135665748454755719611063368503114095831015926341432018027831343820510250022810800511842136373335586253955723407357301496024497286435197282191737837075504584700647011957752492139337545686432169474146567404324663149486891395189643784315712985873227440246171348755671452331117978713305373212635994709698930040676008494109026033847862965830610719103276707448888783532872070488536230481430010312418466364493230164882626222186486293618290498488487315862930919520503897572040060156638275383940034203869424951162611452186573330581711430514676218559452545919150560070153509774968137716555876854514184614652393373970461807930235346781720220344877878880119883347472976136591852949130183864506843690406950201842796911129285266075389332318729785290576353991522948893804570782029543317393362727637557921410232146488477596017100085895395268976291777886198777436967883291283332098384159524987178360917976106695773741947999649310027185762873677210362175730772485971522823328436327661572156883064356124749702541439045213382554788583767611158561156658993882964218083632660882130024957988002008380907913135954285954846127261387151428424174075781364698972780180408287569761111197341655223653776106586124316035691321670586771923190479123385743771979488952109794479146724218917719104547465665978212745525155397058229323631815003326608048834270915545478492601123738723727159773768586386124059010873536599251467429260391720228191145777438159903221105761829406602107142851932177674343315703062782121886963899638306438453871524358074530515425261888436099832048310762794846666583604868774588456811722085311493655664491409714927782090053980311876691830125603913933335750553239307198490664315283077195828950133127271484359315406090382663032434414776990595749308637710268450224976003724854743707205111277435868836428024688990529658126659960033512197863982872955931374002598675004914003444360310525236967078388173968888827924966229578175029608417052041208687920776741174239460906722944343705409016240001527250794562343332422192510257625712494471590351151884466458216281411204405018294559118438530291000519120928441419031123617809229859276607109248613924884071970577289805437906984460324176699268813327953718847255229560766811142640054523753643334499342211994011440984867013169295021161418358843521134384720151638318692224744340806951177188094733198267161750262303034931130070868038500917758201313709003722814757626322207129845491377019795021258854404876445491022504277443818122312136598712907291613626044288728550095035181576019489935212041959364664038219856647507417982958018860363742024161395765653974333384297988813359292470753072141298257253999305787665704033102270087717372227435971964358888577068624119630318020720245103772836891653961028565447096438976908090554645646697336428941947331483634505331533381312142472505849768398494017210989959869079170308549953264732772050477289374674368015727107470885121031842695936897365657700378656902852670306815239742744247949842691466160911492006361807264616592940984366366732375377764392521146613386066450003298363076114505425212921712490299547491389713221115074635332120920046730131008891798855552726568388869945361340765385746951987660301817088677377030810003871854680504535934636625286710147240282714241087348330484571389812090593740070839866616510643407477525759636522725395882798849392188230705347959839900707606098324474301409021747550257778601333244238194618271076287974648532143277518120378439267708606914061601817380060083479649867174377684914654396257886740819717806720090290823234261428029112139292847163786041518390972350633463835269904377453831189953895170795005547801581857878481386346660369202213278151063203777368704842389028931867656775994660741422514875048035942941986100881528725951476508346591710491316575133171699173424586083084167846746667750860091946690951199444474153750337880172892386979494913499672728089675257338651212503493327705931131167579833098534391342705585868117423337118981385135025036487140377605162780412375279359076181480907421176058305412256508335540798598012507973250347334716376647856658437154684448638911600178619003375197085232349669303857206275164774945903959863482517321262505838897863283455776911599305169810561900726036442964239262225007010428341563229952503988308792653812325826752664364375530607240763691178086109055987832257702312377776202525394273954269620908185650042114013408429293707905018290429634452451852095552602933747939194850759022579908402641591061681723739528366098213235022886250165975666951558236411447196838167035568890773765554884501970968307713386393592461342929330408240092211796208310447967533696797849223394115195183906871394568988379921283933016293216745553337856604539214423116491759800969225551677729425933542033817323843645337929227524016478310569484912507856590873241368662985119700967446149559965999426944150019469771568477457221862631462002685981855296710709485944323969046382904931603431249917088317107648408821024358314282331376718388008097144937351031505194872440285619273281058189160433644563066435006335213852002416153743917335067431469780612363892841789585992389462442788605626568857405675237367005346019161722302618176402412562662897518007038109428631009502167732579282627736813704972577625647690397480703804078929896564531665593920185898400538565125557381428532346046420456014187767334964788423321830222541152125064351530780256447869201821240072908147336839821349283889744169856071173772859796860128345408008228366363517893610137932732012881586108104505104186483637074646549352475681707270395899132572282325556900875178084010767760549938552773923419370380815347912814510050286238190531953258971887651424378507594142841402939872636431387418524673868559261501670939977364652525902402476873277687573783771460943693222447876047529837090155781848580888488963233614088242525495845456868296943395467152929737280540849032840114710532211599273970302558793208796389653310265622691241023379519947080406138013808266545833566884251688668692047227053998250179765203050227972082790985600729805282366230639277200739130174416136739760531412788562762232105610055905190396687088412366222609802589388039821375407077294332337740703424384577776986235061607714896099164293731191852174178839668243522176562482403922972359946112527728034210662555719803965301505526613716882303945833715690146922561475940204347790139454557318038842940148514171791782868617201965641615255315093533096415974644934768946558118356887170241258184885087260416910377915338903899257474309576192271669101879317706850188273192239204465881910944855715649798919991993197512712563412402472940397353081733795904900211375119002605139420287958641172799855852009255482229406438445637176522191916912316753304775682838316197695676148518018246818432425112438074869148540946505215261393641670755786769951675780750998462800923636488465664130296135301042304227312544765182310349227280445993260507082097621852201797738758406020994966869744358588747493742004739494672369337656910948655611681570639163423587998784012831348510870770152558098812896115742379588921039991282099638805897335177376112785604666562747950061425329233419893917031067275506723175298643202382187539565632412788859760643316969040765033673702922195066375439012498077165259211152944131670559010505651258938959040037309900554903077010349142724556282686113886942718476631040102186270938264621211786416766524273257793079116994177859073353094873025634345882640448765122625205734649124617031383367673070913588723526134328954401947783839976419734092341021773403176802521661249949710384877681767787593703445775427987109789213323838649577447888766085835263903392681539440128080526793503124796790166140273032996130819922516255405595415508124159824689049182338432892231415394303530718795088501650711466436197118874592044401254907096598180893477782794999116257667371029376941146609697730644886758231647458139308206571644499614234688466483050417750030592278449005285676593064763775673380790859547629260589666841591040659481388502225667391626683001376967777331843178094080953217328523004136839756586153611907837652491629728626130159263674284844976027271369985462098977266171139893325613936169335274804422579875757248524016873771530284228614722519967126610671185458007320831250173089544031547821686795968620902382220925234051976364715622994062890929006671116904148358602258726294361482251608954924018174253888445744123301722069145691845550859270482222495555709771984297576710162842859471337750376200852331551475534752152767278253736335308734434250954798488929091091159686413935159211726679067126614040300531854540408537457220461604764407819108569816695285752424164099878311069473375325466012222583280504405677045291742106344159950816904201848589742354467830318984962396072671714867811208284932351616062117304399417075037033958716262751476596034709595431216562658714714841322641185827099495039931069511196460544599169318463303748195256519336586899322112797172575075639656229386173284587648750844013438218262487428039239433268291615027886455568590896551499280327581949676897696388293553110986189423452843928472338319563198752656183666576622049802506668300791412022752388838465725466458615137036378884172821069651442389050523593733955976429955409822509451406350491914535537220959677638274051023324141836163201891350919143953800560622206897199090421274609816968580210820576010922191033032479367076994094477886707014826142988946478598561769419950794886369145889398800658726204125325782206173487591045091535013858194580056549374564367442718483786951435086285488951735657501542375879963848955859870279754409598459371638570067601946677394737112009572317952524383452450636988885751276987191484701885653709816948888115825348611097734541488616998123690677295333316445221209781436825174160528281322268549529401304286381532346222132414397680546152596433084471581040601593152899982201396314253776137143583942718679017574656846051680677128932753553798723322999473176976412819361567023030253174804461090959876225784437093338946571816286209164094105462753524326482631247472553210355767410568456866328082171209901015318804339174225570493894641020329058754894152934626275602953864689994661011626524149555161968198745464838426278307507897137137128392739102323456686612445058091324018831451116061667512737248484177387086574769839132034809010328529716443347725632888785200270533669910105185932695656946873913441136354227083282740753746783835190603028159349988834983797800215664169970735592870126033135029121522577385742918464871676726677630200991812094116051584558737891015956538828976841004538467244511394193893420952177678800639842653277628371857442660538627675311766845236530103409672844183183807845224194242880256927874410823099993657834141006021992448623329106495138307550735647220613652377511223556155557509651431753998993059006534018358748295335194600595766667109352119490573699143509083341922446964819499830939059248616149438449408101261695844605392516462261714840226575854250161708130753193169970316218564306502439392382794309763040481593532648676533842832450386086689878817409889616358069942285372693510473025888979670391471316852442258437281529107502865583942350714609360374879321821885825285353175489052716432154846534333229283932241474730526663688938413751079051518981630438778801590746025256937160641581078016899404764988988469767893560316079095908574782778070115808559215939687345750161731255298325339151372272807348773361007447730889192438213432544710474805536336724071482262610417257236095523941196752547220707308417830051260391857303677964512805863885602547250541185489599358795042760965013385222670754179347178017615237979159969324503077969134781218307270583509868435711975170431241047233820291289517551629677248593777938491840261608375251080979493743588571144839161170949018100918869972029781724995820640349671850105760567196918349382949383807213349570558532514118874087896036869597726541064262456763125312584601542593906267976343290162952911418449478150041293860910120556201272598877069267546733096499893561144661196896026387073477087594010384658518317737659277600671742702875111317666938024450569854176092615899559429251862114330842308462402908158185410458804928971158767273699279091179053586062038027008194896894615208564474389675522874949479894054979970745585891175235196912841644642153758715765165925948673493952784086011639025247060298127391843938061152007498599354740149143245679775407076878673113251259049911844878127136538383475885624132223592374554862637691687363312886184387276056949280129185515755489314162676397181997978328207146408365922233972473708483341267526097352884633000808183359465181481356135804119550020417492054482522909601772771091680019312408969250758568166120023640740220773525683162304498828562371907170775311920677504512330355961719712581964814566827048712611593112137070617455837763203869162309435454880375512378044473829183152325772448993968917163825978356273773800382819680937676857364670152120745150403144149789511387412572423802355348165054106835090954817922438743794926426406376986879517411087836588793181662110858720324626290486546570120324192587496886568117798257740182925759054415020883928912653832670017859205543461340753731562828237744347262062023065353422976381128720295615089765517751186854251275035706895557662111503237685667126941362955054052293471933074066817493071956023249664931021615170928378295776525576654970805905220809096146725949168190354942036971732546924854935976013629203469377425456355404047401370337778247903424192347403029935045053445269689168936097897626654637201186112053668920781260265609199044191758064246032282213653646866315271128212895109104034934297155929004796880815486544369894083328268671570633060755685217927428130598227796602729151227015523809761823426064347701165527069449823835008881401008177430415325192516898976546335280359097840158691835283796401266888678691674168019590524791286989496490413593130705058494088425658823142126355582864470058453274962476904591037370603567695348769580347933956979803036143729701018758331951359932206023141283154936473329994780331740479358200705500786679545334698347559126047157822971608914771769086856120853769110330056935109405055278651810412754110943227054882488282440759344712163184369025156339268274137349162470311926862415389384599815268733917212166831277082680818278303063927021791830229393368813145130545755019124353951333105152803294698454918626939347703201202938606915805573570270670801799664063835475872178557129123628416336184896957377522779801801785424910740569560635885473437165214356015293530591730347403195875832822142427768387783140886384984276658800272018528407041618692700767411401798327014210832175819458385433672833187909213641353114196206379332776355081238293070202126584883846962205976165432639264641203135016521425951351309475704679520609060455793722964858189624876791556745317992369102642499396914626113054096679321640917024632461356386544324959744598769690402751615701617904514158610243727164683227606358794584742299365912205314190370028949213294707628654434999828115447824402767367788774708304414878058525835108709022361603310618955952322181782967959253783553632816612071945117162822799904970954568673547776020921122310761604555585631147288477641161962026114247165362360000026606670701715589418957230922429289862584362129762306814441010152903453087776320899014434609923447604439922634558305724296617567184996521596059178735935374068254382621161789781967190233859937320341312087944892842665909600470643301114518912684784296732700300706256365448410591948234825932433326681512610803417083176208303606452065237092640266662849118727416469955038115639182860954831400805825876319176355333383113208877722450745884594117325882828186700100063968893975635822336378856128008654824305818483943716874448387659887630008762825304026715450042320058417133832695667158962483650439225914341433139056806416584265364435798325330784570150909744246511174345560157308602685967957707750112162671717892454620803266259140150816253756283401575859608902750976178260684652537409008574837654359865354439312450925355718552958839253415106627678115761143687942064129954599660720513345430173725491507422520080074326033119420117372435868480528691880767801916885314398470067709397763735391565993605061300369081736164678464247009699311939632252491329875111599142835028989084631656522435957791573824803287113688793160157241796934409151424007267604748074276550992924022864397270550131784563490317631049213745841226869483786304150989781206558724532165645465215370414840420377414697459791287496424994481219934434835380158719361374569472865931989050249617436728591348689123934832693347675467339237643852472050070582940825899794551737168376733632496836846868526498342341772812927535340151092881359130117938865717590105132254776432710163593813977472257502291434486122743783709671510841565777746144513159903855129427989715938658566909259531339208607055259955220018418799090822738241692039253175135029590988477732937619935870961731071545610009141247279510409090324671745093578486571408870215843102829174220092191165453970447515960816023149742937790885378104238372168757792511274946153966245844549942951793640585252187255472655811275305955163385485378675624263147561204580720216717710688267392675493188834944556886540526875853651335737970547035262748772233511425310971106400435089956894666419083029733018413872444149256621915931404892612389390607967440255090541041495730981671091521639082673249563912603841400261702775770120389853328048214179806611761349039325243021703344825322562169512314383417913750628139753567584422618417686786500136626434240808147923247612101953162350504035512245170705666040574805908784906616361130393258181999815591313324148394736635629025513122340276433438854782321396134142474000331515450530972275317332708896649257517985016251252062394144493779563937883368750127934066334526772489912600281863059308592682650992070856358814572064822539458213873856659769589940017359475040388347909164810886213289070892645476675045423171473937044216776010560598900146195210912194263040500135036524807585956280619204357609992472887311548430400557842719945710994091574706891879613915974054260654715231930758160235911399431240413107287842270595044211146325781877334862969725564370180599992314438251536624844917439164228841371092812977096359737497833157745513467896547661487118725111479758694691789590436802494150994175545497233661700359362331794541024741667254772102161136908956471534913482223232956980610314749075521582738048724717324554049601769626674497443422559190514046870239440721675732818974608648647538238012620691291361376511549272117392493101096181773037038109810192672700588750939252158242485868260122806218730278703435648099030956180745719295226678124302192697106220580886575615778999642935695078674801671783819719862059944816614206967767488932349096866135561127340057982584096192912286246244086060843584147258270426098666455379376806950128921224611029383794222084524768860168379125329792218785580143152455573288929301314877308845044563254191669188074756771973130075441215678333722673145120776829858327735445777890368232786043074010968565731899455379275305274233447717148203237602815477042368748194227710195345376014872239607717397359406890102172022134268189005388164933825517700644114498128230641529821030881792029055636071066920443169600596718074366511159888560570384075777958944293299581983043219500663492810702071771171780011030665747581266148739318497082912080105486560831291062453023666666465433514709589500051931651045704616121657930171475281629500728839938146632766794891321956034731335142064569695069111069601624619815140828209230213770586117418210207911915572392392638892027301805406914610144450640874756174974463036891946067312050218898564525392553585188109280768769516285561144460602407116191553599838377524664838576199026555630897931087368085403837677393482581326713819789122562674824396732478968698311955389299668167359203090119778137710159883800583895102949842702956532709003597323965723707971560576393393728550885361096689555539876904980579431284890332401206771365043854867632440527363057046685873663147364252634320348958812871098198231849187013409503291055100973175557602530256945875261472411753911419831597531890732735537969431888461986009155017720126476843178151408349466054980615774742771040674751131656763752865287917245937436836722706840206971343056850731492464046709893076485754669266494555577536140674653999551532761161808452737020711864710209955875701724881625809762836244036620643826910181542950063432462019024908275935737034760733318220933440678149676243899102663643727580895103156735901701172277038913560261485729010019535990150984037552790860315155014777220147775540622593816038201812026026600617416412178223092224326597800066456734078717026691661880340519101179121676989376004495028743388365651316359776765973788619421641828102385402492637357525438093523233977110060348776724276891651046931766914183008834919816135431017113174593680665256391033050400530420889446648477056523417906534884678661614353976048344632911642755746234650397839011339812567564415474953932500002003151405172973775128679783999075853607206225726917670496006358204231361624443469731767476822370487565292059144065511307134856624328244004973036759862188292422301632013312334262702628107606318731945816148450304402359154968358948911794507296858949506877913218625299480729698868651469538732565220682411181298651138886142361554188929600194993231579842614733460163397198588046008047303359474072472935875299541225558432427402813184147498697715947938113988496169619698239782961117903050380089598019316338282859054262329912755146169200046963730825294122311545312337794444315133232715714850791701870854638660766196112388347953355868211565266348261662351694099003786155403307774085303576104087936727223429949316832989152127736367987119209235395561919904240695819423783564456930272115361532952890891830233512434305437178260563250130220723995592369472306759216247718264222773630455408379344978974916536319253859311144942448439205935305992721629785228608752407939142307463129441330034700714511760653102310982971488591500444204961479675739283511393023979361783234138945604326585684638619504103831889619447372118006736988265993913396951788554446992495447121211304672989770509162506200301573771331956580303433983894982190002439757121423420275285916987676943681058773556973662582932149554243952603114998998084738777848035393292447438840108894788951745634741342992185809354469393698678875135316905832845437539359905695781891480526500214454316862621632678652271958676857710020062833475516567823482996189392648006833462647889557812384320105029465877656787285965740686017892326439412124413490534221338907172442170300070020634406659956952975601466553872759549236404894049967843685986325974780746796705373332996364063989694647170927524743795541511661135716072674879323300918576991289284174275163337202332831445553602751168276380639332000126072920290542117300197682804678634643782582434906371931006850812344021322360292343909505824968623361914457163034797366682361979715745792505064506277262585452722188049849617435469229521668243563884991557773574740978349754536560194209614483940234967077447704407787831699089933196384354724283462725294958828774850448679223619913964568656856776918341966832482492762998352040956080701503974649313414135063941511829925722500403162563962208034142319530129529541437286987218609221822622131249799858650123138700168285218983169176060977878759072745637307088291120656848263474865281751729475699587508257322116243244585081936689951133667701280450433160204603061037855091662851090549173545637568996837840411954397722165242468578786542108193808306335156042704974154695107311558696185028802870802791416065869337082698400388844970525484886283885270722861723855466629275989446854449768179862785256793467243125836022459365671694625684998554496848352521600728058463846368687285933702702043877403056891655427229402648134727706050300466715404724458979475830815974644985755767550418300009504698721883735803205289813092607516185203283916823229824057273732974817527571276396319003770101675579960434698939506447789093554732693376427838026020566591122813321273600898422174583039472228365271865092552621188654122406452191845526253413698635141218523369756753871668203762995440459429779520692397067792341506919616856140693626422220928447379103684400365219469911813255924631204535338417043866172646508405708526640645686556162409340971242749698763162295650732992724098398978407032970529675160197103136034616298146197679361587871957941722101592996098751714671382243720036378305688219696083297970836087710783039416102323969768094101085976864364065376372043380627770570286486648998094286525192833772098569386117756595041391180050727701302394937949801329182334289755227002909722329884241616223538015292890400288665908968402247557936646185654112305420972709290939424050495002483012640130988536148403984560325173609946860447073030302878409159221126502908165974594889762875088397215201692388364649511572366212970646128536891095456965702122290339201623831688329191935070175847612549725704924105092625365204615444770713601444886157057185350006714778860425841817240726805312240782282802808530151926326208493799926774157225307999573125432401033126123973675785450758734420035249812332396492067951856287313714487096072878444661159129062713520696116303217476457901405992989934302542973691418793580711838134059964196363639262979764938745743583035172980382044525185659427313680865549863755328696392088728445300889896586403238364980489367136328276654756597307581508946693426236685721744295161290340118727475991520172398936950661824874601716064620806733084076232606368210832874763705414580090404973074660602364849263360964174961659256831569499889064589493337544628375783468260737914877844354074060148657536522954713375791947563743193378469777259035737107792836685254588163994240980703785940483842812482571298662846988773352833790568057720819205625305603055072330466557764226250124162368290527467129950001718901582638195176922013791750705269808927035758749486126134998727909513642918311239719674190308776538671550681196563936228699302259532951250908621588237593388381621315206791504058896373731327084335685164352678192293299641400434072683746734297360748827389309682289817366914010336177732191310687042729436561542344388498447868054599324610232832927523789154986668621414620551959238789737569619747423206526824164576057546194433199531934348365843328502867690696366804030449872396717069408352011524350779239623869093690871828768756827779170063146095381949996147415078636772397091241296423633934419256227783285423311412850560474236474320686084911338330065330590740243568523853874258124401969854202650171574574404112036660135169594291210850400506974125362975747197004636066776633668796443727964137763832970278574856509294580962940114007864660003977385662344793772397120437252273219216180748825201166148201546371427026747440330181326593503736777141611834865742974814128862134153583983977745503513656855537358319844257787454157057757763589429529246672008481497815603683778586842309936315810225122625751176808929476429588701125550564346773970930715757454282089929203198532369395954375770869005181382819850866195218637598744693763724339496888310319527077462700322333429049145389096492285228444931042434696986462880154606653365857772570980005517979203926128961609349222964568791877338473504919007312419702048531928888257009800652893702705478568375239083729855825108656264834160433799813693082462354262209499675117315089645502896248154159811189698008965210185851434685671072280041062189190195376894699648627275210478081657050525490776165781761652161075974786738387155368107055622390768087373183372149589722323689080180167743225200758247055879036565961796263871933908451509636583335942088715133736534742818014809807879424327050413331917746884770779758955913929080691397820920388800455408568247290143558285756934345648008344009285199532603053230582616002369244036914618766745817444581757304539007013768802383881093453803460688930641743812104439584134283358737230300931171911189757362675619583806492234489112704746777771930164160274500311462986239212328498812548910310402475012700875915904859986443858830840599419613809514327916229060704037161991174597329573974872088090197614312752557752232480093169245663150200822898556825476834496444480125203431425968202007826078687930825886503970015580543848681492090753545571715188941552348010856832957488278687184543007551705725308343993312512527283334220530583195626957761486113023016551983349992787985303446789569044291941137851337745966579396715582794692649029684584104400438112792793069327758188115390512357595283622594268723407394032086091355097939798987011627899259561162230666159412221329974474545244580194523453757213912345849659008033766219238901944070498992445794644356501495716902561773494584094772752141223429760266241521042643150652733487842380329067514130963112356053398909666888560891462616134380565546837303961122646412226235229721526735699719111418922225959031343962328712063879958012891362576781595626138362799187782378045909036935434416782493806301256046307733531438532830441583695082445321565372484360002115453329259786004927531107103694110232763632512349773365415800956610305039075612914146803125128105423509035993789242356308099408132904471205939403240722949460108935100399594089262107317015666239381550854561767574575504312702630696478724524158297581684362437055329692041633398241229117396184483142147221801835138760559813127853124000087383332839913456829838270516205204121102954644148543908949854971617553610321940977030375441274509241439174916049527732837454772738256239099335754860350449520657602497872955624257353668695453131696538357082085962263900573294795076131996360491452256724935401297875191522462711794173314916647031249999192567316465414368566835622320528955249050822997780179817678344632303178330444773948199814419707001557812710807622705803679699967497046473399045785667487249142747059847101699454277241894349603982580423256647814294539504723009578321083867690114026689727554305486297431052847750478725819600759703908091542921959114741515517782797392763097553118916658231670548514206656836395874234445841846228001449178755830328886539543548243970784172141018860546323476161376862051319868299430312265192776397411379135798941059967025522863348409542537852202043228993876466794429082605921706298628845851552009942849581687231735718280141734482948001123891979685183474310776814600875265023624625523851464268221262427450935586807498795896344900616565143386232517925227220546230754800432693952962770174304056499716069153127927245249904520573195351030660981074047808016381656210787329721229896673148580256313168243612734808039185631615003493673761786609756623701603838034125785768225201299045513010399638192528545758601441634463181085972560386269203346849566107169390273091009263259776801364422423718068350286548689240257739952054764397784563114302678216711191217993974093776105996855219497979778894028196697944683222444069241239079787257069856789281243123444315460025360990651019436331464408122894738402922445248018796482717772671947626812342854125606713068975217989600089664217988555366426251804429621171683793043711471418412936603249162017564582732327950856231700605280413913979163799837293993202338840621150138579771125244157341793566742521996564339536440873338654174998528721078602085992685840825030553195346366372548382985480391256884462635018265454616109485082086887864340878201249082188006201426019183520091500281317927811042591393951183870393796002832437135749513167468685908146484626161280454079950785269510568069435635867182460588992465474839041758549723540324681290809187553496793264410767320503839944691784378488909312541154783929040399967277681664614304837964475507170467243465899463667942291668736399197705318406322285917730210571530151376848082065653512310276046855851762140755763727456463432566534395833210376301824402857176460413790825207435365248158929841021922468731163079098988069192132057089992009130564761272840004754069253058834964923264625648750478671071438434199804500964961207621936863640123928686018396930002433574938898213402047197431739482608382366434642596372566070063093675648212007829427453581684538793602418405939457876487721942348777746601955773061371082086649709151579422145505715257202419566159782022444007057407276461132429119263548930194680887553995775930592517734496867694633092721862442871156375104858052203396947182539187180287738603562117482687109877924448970372921132269593227247231953373590710524723915735652139728783530459614562370309518377467035749846698954045161838651219576450281659299169425030258360722031903183341216922570178601282436781270146941568880273195571625868952655370920360009334762349728126406328502928153551841521553954648584779681381057632143288966624543144091923197187384571707072168639804191542020678823009229326756240293269003771106820895451539825916487330568688577133979214715992048456932266561436741510488654416852175107833614585081343292276172609303723774139411590280152280263609349393353356759863527044471351061464850998560754481236832401958863453265723790912601783097985098269909622431818675943231357684446247218658401715655650102562371499812431541511538386882885767679341052154209911927000688930308039075564986818282277053624379231214869492733145210408963569667504502459683575522109916260486200371252724386740984625253581643596964854148263975738430190064117568574595101446210649249448079202275892822042328753517657901830509421425924079558313398827449150895535527934956533472134923863785959206007997312969549922405458608567461134383286483039047268828485158666357181235461618029542012868198306986859826760512483993402518207771652411631422335094364785437632671541519725201073978312538796502348829429470439063466170536354464714001658702075285044564419902723365705991350546627495170509561502978884660176452760549656080718786386899111689466283888380140871212448877302114676786238375229698669793242833303701553593654212684014132993283172177037343416170666548717411817248060599155730648777642228173219589537125623966661824286092698483670614251204464097641458869946726161915610911256894329310356350338387940217146605334816615652872218976244197557813948526951928679646854048567935278626551760991643694615157717548311992225344824100319737670651908635117233927154340805828482161718551413863716947003783738581263654001425997593511224539405471045408956348599045053746089546448662568499872586741001857966233291172288874395005707583133612447057829936692037361102437387681138729336663780547029981628496807259879931483879114160128480760625750695395027522775511679834040513987573869899646601627539540297236368482471768578645292440926814416941671107359721406548284683186438713106076655904237930450990247697241063072371299903982702903432470862816857162403227981138147122153465131987585990680869212760896869577099138898862776455676913156720619859033156168917873464972024560902765336147989448323573885237570929396499402800533245464216300728167023731843188860364219506649978292302026878994328312901428515388446650801657450166213758824657377430415870036608130440924334077211372052451604931257142258279339758746722429636187743874845961979064345109283982307562343669981871744056663058722617145938628928336267906033072503771921625588550196344409444930461457883519690079093981613845294690796817832370367279115309148615459183536192674212880644198735843351279940723378175857245814082391648550087854628694885576639820933848098725663607269333548905392236943654307790715350615806100089778848541869413609314280442753001930140835012409064977477008327564802638303519776991002587854287669535134527044846236395415559694948101057061071097829670854453237464131219170927787002305497199057276497784658003063548895510296290845854125893175670611768069100055896187082407558623375186224348405324921624741695471345570409045331516695401717262020256629686446706902726691045592777199922060809102129341403592703228933770840994276365105922705944271126612276823269821096310048367762501793258275080754620129436418515040065780177273101953879458455574755214378376605178216022092783624770875088437379166827301473813151858674679957591745820247456706627905522737569921403411019759905191766446293608906204858105097343584171707522533542125264373429262568210706988462359790751577448555337482510095605731361447555930737373579638258467893946797807636465841496098564147942020268253487686114425047708909411063807396766109290853422527498362165572652262187081688635665530272416484669852965719460902435599548573721882276555336776902660489701892345185093816855626470752526229661257422469399417845944792341018406183285721822698385466506929020017725118259975554673586905948775045105724526458862870263127462378878391606196851300267165439721469623738709391593364178230354110911874697696931768409717953544365189905013417065342414733661795213285904854112329002431921737842814551952299331337648603243254054526209472360316941071584061230207725997075339959075693436683020607192658224198932583509061271504284440959714176864909974197455611076430611893129530663278188417128297613565034508085427616544813504955819950875144640349276821595953252844273543389528961524616316680652786674563835038501238311428272657153090409215548648024761860208185183691503109263248077898461930130027416231634695057837075643596911899557997426583743180778119864392172231088523418498691601190236610178066118862915169263335095878316878479097192080460610116088244062512867427282331959942031771209379408341596509441779954098630037408487474385111688167357366838289633762214403545523693395526654156283674010920963653884872196840717616425857424184400358121684257863274236208610848011755185980166319548958442073857790874052495439087595312914722977290097256276272109971047055000297968446871671636245996662224806486500509172261531511096053032361851352304906272354778273836589370349761301762783621233392550491733966244119373405002454618615047581651467974115254856822733944530708250221935022064473252622858129706515762011818695850666258313961131981755330418046106965897053893230415032986391346262183449867590466871640766901937798652505770308710421121877388776659712016664926032802088837579918597534732416987712020573922887072680082382631039562445063148232463640381249087619743658565842485231311906533024326291897208284447303970501936348476587515801563256896008126856171988134370513005648864339678766787012840930631998737454698248886244060311952106083183132983577017143622091961805118645569859950425989822554959748645647781780267989891065623128230465247084428070246725233747686417483591141995594952915689717863225984035987465030792634778295818738988699815073862985888489845652125821741838634559984280507826851676452554615501752481579233456213754247489909336886219071665542193126549197866521671624093576944543792338398664477378879788040685740284407804946611751069527444697329225469641553368602963961211652905865157401420045432435539310614451169686990005945895161622067316783068997694334187317192988115595320838728371369265139947197626237891203416382144148282793860799770526283972889548876333142707601150041146537702979121058056535358847125272126632209294691058996837032454058401434730068336480385069145726472858398682297829074292993521753014721602606520238948351516948662249693482847889733378797712455134299701703187932465222647467866619879528877334478191111854523090344675090031346318290407305676245418756524839488719635369900252408352044982461639424389474715310690102288914772007175300919662170559287447327932415126979794557639638776525967812012729569532387548421892306809769140817115051922631407292827631030070350350231711608278633751784229072211098551632764333424252612839200149396099246785062872408840751891740938250117121391397534613404301746249665147100021291066168958754802149001163247828704537540190128546516560407368551728208340794189601716793398154450192653698119226376278557935610311816637676345622993654172471298722323924978735848881147982625672310579366084338733448300448894799003146459412786454520928567574627753059965813812818421557272381859371715767710499761126188577424651670499457119852218633916059498790481541959712496938912426087039743104294278149393894931325802477349112304160849489297363113824078758021688797366294538207777506729368843980894807469136522718721679418508498205683123595200348862385150784272809035976230107012333142432045313478232971628352045341594127326863072812550791586635574209577288023154851173722324140114104255309778588350514190394096163290804576131774951399187140244764997053568773558050091735102391569297455687298766436947918238330590776069105333144006507168983258509169067939557961160375849199520668559210408302588559868300823204881485558273656507711878987586772377071241718928484970157132301885096509507148335826889977776740809224793402591359342331818314537727631046649783465970248741737693045106347700496896764923582814931233479835958738029140841924159952016892965088853065356664868086204258217842402926627022239868597733518500564376672042138140369871742443212482257419559214386177936156654017076989997144313344234599806910994748297967773856808318442771782513721846690757167834685463711013202460350296177390259639947017076928854059198290270042810051137800520255108740895714933865357821103225628972234809759574292387250643022968065306493157916481277462852398832027153010086363348594081159371903890385011933250975004341816962628295284134332060824149088828951398226337188310674708266990618132071806457507638917161302637909260311172789712056171224535256988194784656974155287519214388589661315141341574074284293603583797434908681417614005201449686565521942208673331715129503797105316334636938697195529818089331901521045418839826017230513577455147039498401562730829700080062054785497443041762938718752885580685380149699165295583763698092711656262071053896135476600038903031055633705360362701244840020040676811452615431102016121759481180282502638531856193746214810775706749203984019697000486786328243782169516285768016335351386002485729926768530703128462811536563292889759039332069180944016318875321674820453406213982979707981105729921740150991275431581246897590417921469109519591309976655920856783776379678582338058265973274690761032388876882222372823441778259027504775838522770699449116332409785039793660704647821869601963205021432307543978750446625551146153274783320725766029376820260682493719574815081014352121608064651862375635750199769088661563454591739851786100428462179514448358675766673984413245597782884942462395923820879893382958612394855338791992061706085692561455850648690551191073314233957151793056481780720560625675408524678719672419693479720014679514995897423323878811546741891435310078219967970621886243286574715380870752123627390163242697946175528297676494195388265259434730464600096894850953781432078013912099074089053420704525875576898843978198166723753490027560172898746037982093738753221200235711448178402000938679334994495942005935972881107793236918136524483487894139927243657899061276462514547905593337354704055241203584697694066083952343388592920070918920159243697899638897536133954584787090486083799889364997887586145877839483561815469277856324695975044970324223485165993834344772230350249892041168681642241601052520692304245339646424947027496519331789948759862520913102556710472519029058011368660665252051029818337032034878666456495426367598382301026383442568480955401729388169905788138277424352447199376290823253827286886817784830780494744916851881285468919076098023920800217454478997350622587539049816387856665828962963256534521178968186092930072449324362302977757953070145788067262852149928018739102588534846620885905747944448276907273149564243977120725445175384508524696802860992495015870172780746947770227557816792557246127940300073839985280147609622012403083685112878891553041543963098809398559118600687608472829481403608202348498259494439489940487695707015896182257642111314673941542113334668399050411697303447349700778719875747441198341725813033956065133532868047117826806832120162257563336605359726157001875207672090993518772661136484207161642820850403560166464189293902266651550318349167426659497723625706440299135704768245518672680701886376475199853357968672988840639719516893644719377674003621649854416918781477869563678202887103379313872190266448822224336416366300600425943722919611849843084743425882546372102342148953464344292570818622040119274816046275782529275155776966354198618706511647297484177618823703388189393350292754889460811717332171469589756045450143907274595584488426694443782313269057671604538773571636089003480848032061489425720337798382098694731136239726006732906576388717707661396101059204580211261664626168651248933572185051571889966535027151414280898281219328676049409310841079108067373354348791847289190273693101931471117547119428914586333967484268925443058896201930806289323926132253612299693210811496096329178475074454625758296084389559877189732171658222642560258654947656264969967226744581848070509347804565260254578341844632709181269545244393095838148145921011076211214761123340374010737239434627926937858242311204611155562382840131276641034372158037010984326609313396279149490127045089176112360766539913767116087868948260350051387378565936362237296792682866844620441669903882082227598226385915129809185329366263307262871813112425070894437882218551904246704970724815163023948526901739369125313421344702577805358809674965627799375548771896210350327825056492298533050400408923328172685458973920162766852770235178189237347336576506244670242600802092390164469220887158935699917019354617021800929198662910135194303427667743487280653767450046656051640621575458952147422227608556203386022217502647953374959069618816635233697870893888704545092652631941416811806073681416218075285637623129840144035337841774237713814549280807704345555676543386588682657380844682824758240641241603487007060438125876299488232963598214469195417513924142176015551375407601071922005395601017509950003266717890035508779309764754735412702800747296197346709153602614460244753374777144842615811461570648651059020606867405447981571718113797920006339415058788838620318376685412268381227699867008978336828711921133909823372928935902061001172909212540745850756956769471473608118571169927163534793474874178176023712524108845644950427704889771073803822662839413439623957263488646164838783295282821975173943093637833129497255360494467272311846407768553071798392139586859012935385536912726430599891887367378745704009688670328321973207581386797568829026753422604384739053765995051840908797427559753159185117676472818581996835411715475717777256356141564523552556774006889441772539053900430274284198847834417093418765789507093364769305898102469747160172868932755854995366468182515846687746853222812686009196667061561760634928818534188366777972753190630890549938826035386511909172032781936078959652298675377236016479170266095106337126907331421000762050653315137130760137314057538155205987877396570415750303533246931103645985087664570715701809900834095555275883287231625286288946882001926050263139353665878542214166808423180159668849992865366751383158655911883322109668370347634443889927754544761442273035811733665973482742296912870950737740857491123492491865629136430609477079102461291630267529925261019108749302458604115748438570549882569728534543480562124282280007565589301489205872899635645030483531692707113680325587928490069232109430868340622517128366397527491696087603112723461536359466594310657772048682649096045580671137661087655223816753189916078954288802619242182892222854598254645578327223353204130020975944096064944123705281528396933283176610068161603918071003479923681682752362922181927068697949089245604230759091990516635799432652290550907965056886083541895027644171774739982531876527291222582438861312954017416322505001174043014177499248370494108852789673756595302423191932077640635629170985731776591674004573959754992496144985275295042804649166437433778118024567653675782227373548969787702980798594777962709847443206951067993136963481972954196425153121222498830700097963117454325566396642359067182211118747528787785756346199542470708853377514773756257514962250122141805606885847868175919586742819245594684790136216649540947864051434972869609231636233309291159488236426091226022223481057792345833594674280838240447468843672606052736091755405981438598032111919270783822364891941769487465667654813377355385253373225589408039632863417775631980281468508149147761640518069067595942837452649625928641417975235980303425880817372531669598224262710957629201816434881971190314405613678122986896404624735823955107780881170925645625534058325971723935284355678726896856936190327689919531472370927997564723855768512786888931269567568661322160895270706280624013935751173063774119562025698473063024659275548778726625573707178962767873229489044063326499696342036794078673853033196119267155768070809956532261668478301156997760564010807884819228910989291919841258794622321583389446581780323627916629180316089518508571070396085589330497316945369444076256484350901778821207419981878898034152620274403624518650505398869441852796317164392022220919169003417371512503233872335829076661673398706709381229645328472894182563818287759345089181875801730944107439066269018796394600575107331461998476759494520276958583851025240890887100905089829488770898510117757293869394849991716386662787757145269539464277666847271785105661116002005794210874292585763600190915252621706951110631830449606576300743760446641441345455211480301329627220078623399185981462320485058511722721130209249216262364497817278249985709028189457384142404039264846447744744052654167918136437478885511961568112460900280800128649806815950780563527941957305992670162052985374137245142878669213035026486330264665035307520341313647951395085247677080045808951196883031048832752960503910840944979207043093310552781086553091351382984119443462108038565385311889139873153625033988395836688511598227254486365306976224109569671324107523317206989905538287532945345195033572202309583752107850621385455361166912380815634713870291076518045606737690909769181022888375495128921926275797189438510482419814413244861197651588416244478763945847936325146283631269653355087429034931461753667435139477317977542653397520379799094158860746392090780526443985610221064050168005877515857067047416874491568636523470212243187686534416103935378083716918660901397352459075726259305192000212413576994800498390803699006236947175624280009937611539456257334974186733934520125997592350439603352993841856015613233959558709349717772771518573111290613247319704132679424771517289673556105937940323837507260484847635300295142985267719926021249959476056949801797864351776862566009239864052818067468744569195839621984539911327336846260011146415160301663121469867536778686876631741605560241372706210782897940467562164446386405719146203296936187598177462419094864853738933694422750449619315355626145694414727040120570738549234241181999111659982691369199996166767317279224260754956596311998537336364628329386806996457235103524079795288546257546266602155029940039691234494645157631338993154700903743488348883184390481536602795997986998472413086617443183445705764604057832522682506881617557906415912567251742715173112930272180650538740982828235196321134735743869552656377382475495753533495474083686336017134532962958620446915856986455670825002687347989961873338026264821630812578333861120537007586320216016715090648091165575377173098351059545588983479897245180845253208076095811406616665039549354389492210409903018852143853390137168660997715873147620840835303089957502834688589140592839025236841609968058225498124934884115492785956264149688934842306826514517901487830310071262158201678443076511299933962149864782034821030266516473639430985648443241947337580639821650942149178478214568690827704089323523400490070983874601975085358706901655715398576601479625700782092807575356149083662670999044015232555241076371673423198233383641703103472889164082579022995460598465597245719177499269770269682962900442092711785327238152961966059959520249632134958072764263016909228394770259444820473649613146421654480547861358209789027166819455336422596898148993794315427130951992261876156825090340703014847508345719477546433990030670096945566524247525148260728669020498134349819066173432751476007816253668203271328893033468579562836319964062311917294778405668382190569883485951515455277433360055481450688214292542245442595150558814601359310136219292795582044974043208645467621557363707826522882192058272779423670323617271684506278641450368480896855945047511517677114722212043231535134420409078138488586306313010059476398947072676473219580649731900865477000058425303076137302349448937296635100292945364549132055434805405106751332075741288319966511728652040487926152577067089853574823706484546161726552133795698609789885642818009059544652396757569519937160731709963802222807501466522169395231551020720956575224820066727133416904830110740028048279819363801403315728996112531122259174205691222071220464762929156044796013152829370630146607019688406494114945653282248434207350933536268064955499921437136631977121128953688444390111473135371584492630953176585799494686901294260601252875944644525544546307441648775311709122932122977767041340248942721019367203110879547775512068069461327377398980594438921014448887854932243279723107746136623668762316060208887098619750298497572711018257604164147667240082675543739269264231832607047880320569735952864884089675832368311617506540817265444726288899088486421166545788132700312745451441696239981213978860668047823604541458901582585606132836685598635373905354767378498528531300129205441643689139503894981006379231743579097739041453171023433072768564969618142492333139904355556196314582978766111054846434046104212372813798931470995178930274528250435969087623617438309155318849179517261351537737720295672004114180509751187219630735669497391472243591545091525645862824520238347435563872672925453611471987022138366315629269481968959403338185227001242642285985351939064659972003257346247017155299382017691664711452083398256367483134282892747922159588843322940789568360421068991090971945924589837548895252535386543155067377506186031701432654374343803163347797113850544052911466960821933502240106701388514775629041670849301000737531152919776015535054069196452395016879641061384009949829168920563641124399521384173953252533833803981085498489916182336055067532400447440663032992126787184311982259089066747279286672545033688383318572108621873992916478932441635421058956420208991842428903039365679568980562837851206319207459667994434658621934081192109288817705653882434159380814828774521997107672753910463896582073855299301558510644095502952940127219421790938245934160666089948558870197977649034157673355379697317765112756133283753204441982888176821057903071920612185520135528665742612679846357786581750704591387043360265571478514875073292356325905919455573361454344301393556629920876751959297820494158065150818757280030789190929474399871581807084978082806839488903646044662079778241864592456896660353518615835099738821167059176694437810175144788080090468006530790377624446554254663921036825026873380382770804586640840386531115857198950920820784491653630103340589690908816924478550557864622279227947910447820772351840173526319283841148685536223357018094737726426541954053491866809217401814792819304475751339856727630489371062798084919186505536179448364725604067405195387867266075479425397027035690914618669277363243623277696974317985785128562964434305404098069041580422156131046941385639929028676868129809210919983529259217699279804389494393413549431656849603657197764349533955909915852886447468458922100552226686387524650001150527628065762698718161492206253954398813190584309942363595364190674285437784400335579767808353280711376827933182881438819952965815664717371979553898552576777452885201362433780921039212784527351427557221490711745128716187769555060571022158351045695560426764950826425148465353052201198956851047750863016857771642685525838405022190718763033384679919146615977324486304206146709613306846841473756108745791109384911819055188487525505552687435524780437962307530624858507841972906247938535631232344377115573041493544979039823268129993888963330551115996191978281044617326801226606046034817972527357328017010309583349303481392614960038549204604229499861448443155740311706220505632666904879142879515573155824313661755501038682811078021360128087160233006653258574947477538470055347436550543540761349676432033608340102323633645324510699081184311817058993368419960590554792806261478204957458045937166642542191165723171302271178167514981542487903875653134888518048097375827490386196565915221933394016360231996680282151652906585404646535199171538562284050652466219386943474788953142933974011449681640724942900139621901319556951030989278809336592473484827801489085696694284906383569137065956868595363030992368057777478399854397509355062718437101003115328769517534332990636996355957244810980796788154930178809550151424531415386699677510918343046298026484008715965085363980741418317315576724002461512780988848233518349893530403781085008461351740236478195667921684083988457540786687737146742911025229442712215126993587651139492601386175481284969779761963435890514490349159453993399188249877796623575770378797186409442395708622466567119334866920964890413017162431395989021098326640652012283253006460715614232322050332969577408409107339766256438788427401135268013207684324221776430478295115553206542943533791053243309614247065693648222488710138550655165136680274858387696108023878016178858616939544867234851150720812803595799420171006656010404724479109840843913011694746594059325441664550943892227817761235497318365605183083936495976044315093231531143478977767879262102710398580496668411928610970671133062549245824653842350449689755410030753154458718602564164963420269077297505331744536946816260995665071826478131508056807772788226796567346202520497938384514220383294478111716572555315550339934172031396373635746013299233861797238567832895694175565035120657427842038712328012239292391545686542759495457672781471774286592517677736575157413305573607906594480216858041358522657191771166440954987161187505168178606450317215521148397242970706363224479616078265417826605108519629185913794017577055856244766717589845448121116067624464978874161715213134019818977239595915143683752220898590939650596860568880394227308296706079949091571704496292635502391768076917120421388539834656476248407187160264456167650137131592400301188369652712755882331486903802192869156951184325776611740713233880121634858692354193219375462700369702007705968267857063482847098097363657350228798558910974066450276046089286672686398105620119428807508131787691098675581958485598981325698581614746376767743742276849288584259408827845208762775782373999540124882915970842497887232836368547218447772843334629704130033285810397186835701208750928463325239173177158095077630333432867817421116675839545458138180996067713167662937440303634241292727977620792206810706706563548908862312273395094029129741711981459318939578924920713990907072974914033078854916016227271305719474551289837454840115940476709826143430570756323711293708522476557884732147538377586202232692714137884091664614827348033593983997681138330423137145761837864847519594261532331141991715018819954280367542085168925889025163517063073981182345180475270878006734124652424695815772216300956197709664349882798155729072764820642077546170047027042843725190513816333697197508803616622948945830941095608772660423779789675316920259426640788714057352256379315795805025320600082930554415284938641620375125454046962379820984861448668750052687412547797532195681557534307088793626878936713162539629552450813932001470596580896123018591859177081335994474799744222068359081488566394261710403509645870587786586376414080715715314983517583914134798094859928169868236199498910320693153720227994663275165973246165067233306798308458637530646011049849111394860873342746610473423935454651300825508295884865774688950480842437223108130783454226230864952340056332726121531898681475746161272200302610726798067124230851450007369089396066958373420179682142644097190413682624086751810313544055203879494171454111174746416680699144554066111042820115784630469740075946810471395903222373380338854358111453444287811626409649659982969505873724395010126413387636027518475026879457374513038376486364746294363029002749035860558857072225297362130985769971291241298045368176469909867952972549377253614832869588143792971884824871065742791024770092174842767242797766867672291038757324963200077084526498027850577793719438690675248233850601780205552207306929349905364678166767732922370957145436347811580604517436562104365942302897895534450412785917998254422960577355442308419918197247427570731119124045786081454363934783838772681735668966072324652681242215770338189479033732091242372678094714726754499212311037384173643210687300113532101843564703816071510553007355024539419686417303617919838320405577373563840114897662828627681766679465386298130413523180641895144213322919774321993104024417352593830398404158883794509663488053138525628094777259357334526427702834246196300923698455800252228002702923264554412468741548499154197563220052649963472018830350114921992498634102290571773981353673848223283351520499790057392356012286186406735976326346691580657067910465778603070467425828275688724515218902172750219925400206939474960617504228884995968740215827793198898677574152240966542798393775847940548582502367172500925942167380581354886987713836944229601356948011214544515615827307308675640785797647849399430222311973529291056852147773712434765202647834040613912386289125775909491041679443782761932494530778499865153276569081651643993745860812097484660747744100956075111024208757254807049664676848490411726196018371742960597754252091621646801863714437608421325210942404764330030815154114344280696490313805276944690375243806701643492387198915098605624531108061826326231163228968792917438175802825126486049464768678851668977628598264622668251306439521475045859969802272066023985468751436843328134378878303670364675920558419791316471433041387083088591736328445895018536727779622386068515312415313909035132581349843468073043956593565454346377228645038937021142601480941450197506944474624137742566042374363093611326607308865595462890656997504103405758190323133145331072913339598793339150017777429934311911923962457888957816897953144500394881596130975072482963582125319958890554123271193557263972734106289447936402174188272947684486726428867999143767784248703137631003892513810878065498717626532221520231100127740267279708739086788528279894916590142413201353353006361491095737637539158398391711336432477960495281039184733477365942409321417871916590486843871829623008266897744527635700269722754312732330829806714101112904173168324800406251223129214073381310376674937726419168513328418520699762854245528660772265716230864851743672421168779274797913232801018787104087098651189972510467036539912315493521430025126541813169119429429556394047349528233794706098495765156431051118129717401877291913734596910121911650053901333753740227841784380842563494523171307595249313176814218901182881084958506485704007504511792203677793342686774640976093204981517667131596111409220875352403171443395981570557795901985521911395637370474776643617565351669797644283868930270676539749720269063185236998046963925851180900673141376959807248192676978407399099803801608757996725055463826848457178565537674267362312621349994088549255385493005825818769998025084658172650869491916220388358674790078096183228279698783877065113952006869339330134475460816784987710162587289896121529817784495462028571104865713212512785284408523953346418639520257448099398330110472035380579914583173603617048399763925534993150198519883952440183174052653167175057162861209477925491370398001279308147280912495067097979123394387956817972445498305988750460752625096561241746052458887127847123326913569116565691335723978966268886584450589380495417473821774712400820288005970794225013129886229517356872624396102907125266033582632418290800681976342126211859596860641923467693461998919919641274148923739252415903290994777532738142695704890652751527681704273549839468064164669375345262236591502856720516011804569922251023600697605693465364156275768547082618823846179029029250685803903601601103833006452015565592657692907640992742288889567202594669785401103384514088102563339202446877629911531180874777023404968448145973640862401029503777426515790148285161355780472983913354607736537132252870696847728781085042137562905385078883520041278795842273719763237582576983298027985718262203892947819824108293342041074346998725923559507158943573156162050024044226145419938504142504357900543084846346477396060571647627231056502435052521861139601390417922086931061693325614162676001752808686708431632633232660045289191367584319503737166590452039324324561429837265215050402990440116959616758156193194587314120016058151090134943161249221224488493235185437511808935047769521845464332888143138133923664034433925574530543297114163387954090710466566611388053486451059929646254671201287984437042171711787447794817483927437579943855723114282941234256764918563383949921398407132993047939955824193265446652086161819569544491014286110472951498176641591928694073657862129163407251650292314403172587515584243687321958624183908900492832272212523848059760742179377173434852077418909994308491453938928131351440261436947195314922417439543358147167172022397035656325472828823788403148319009278687897716203442175793002130878386035953725758236994529145970750744189192678983742679533907138039530522347064837291051982900719051847468817753435600294975169538831055696734085391604250301708629643220256804524756514243583994818240193239533484046533091161539804702562859397032952950762386259857993267110794671272649992059474186833902518745431376064048836153863743436583045194342411168934571276641367354731631490267142407582510416144649285799522754051561716127503403770861967135060959007520827079083593089938507529611252841045776034064605211570782519808168596291819512823465635363059391689644009425476154378887913422614462663277997504713523910737254470547915508290579728774758835239976036678701908545540576193921310825115909263488392175248948760052333705691424935024307738637052989354259235273577644737440045260996055948568573671835163285313803114803627803915333747138711821386215627200873511866731648587773926950894673304558908179782570298943994503179073594363925114736062053693678257392018895187128611486632555329961985502828471541156006932132569136237391968638060077504574447949545401452596556180301689721009198215245880403055860141483750360457619316558856582030563369632070027101241376651132222906961754351998292247337359883482710937629389386033499714739923055599137500871406677138521469413081923415964145707448781771390418273108898216754645474672756946000488278375960744800772248365764651563644437553580573259129036308477348654875364883068845715592701845967978989941396608753800813064970895497267033237504972988429544791250281676278012420826368869690469626547884726347112504342821185873797347956609033275810116559465106895398999862914659973254368667895449956775719425429427603056352189772580276148653074222831052951909918624199514148653196710007751211903232307039070189260325880558705173487910078453429836647936650672980460381106964645590449435867321283277185496468486112581780118591465158154805339749743110901419035687955765941695574115011956119225911772458536804856589483464372325464770271729960851865610649854201453918515622580487408539952470299072330477881079846075512670057898409074814457801020363882969784856821049615871038423702342053075050686384597500183421705072806075988277273141545260280533091056204101763600468903727560737610783038715245725473411981235726279106667863781723861524088057818992010366979710966603711290965327238693792002254904118973155999348148039036274440553585667886725033944223058047860586088680537504029557786911196674365724127963144002450882115477026454918260511195081606257877822270152119496453183787846880537354361212030260224283097029915401723791056971558960730942586390785201189202606183972488089836894181261582001849552927159605829451358233460534715780134184448351551356579672522514617909098788245631978983304566377212015700725682055493518629237346363155317377909117090949280230689181506236962964362559973015017598803783436663098701725117895096469486990059993056186656529256184783485634683050842480276216756347462082656639855156996758868779397149782282483649986593370165442724403639806643898806926845730766136255140125477014730321066895641400360526465797505187140278136084702604686315362948528435747727861137095564182445680357010435336467679677549611639348294843973835965381704899750305321373708038961786029470948303567591533155818127965638453132056874584709887961074230067033521877040573094036056796013094450330985416842400680172157972608663934241422964061857901532094814320835451993602323273134701237039007324424859314893784866301742075704638340060593411783935496581006931507029191994485738916635488747629063923197633865548083245033137466114388866956241808437429512306063386959358992908640783979601774205791579226573890377786969012629542760009002203344121475608536746990997405030889747010377460853490938067319117037952875532544353867262030651241162676337300324574832816638397226133212218893027644927229018803974602362483196461200884216609837805602343529794181566155709539763959012153661573581322797581817116153723894019509572721832642079397073669547919165599342253751762737179727128507595136719858107978812683631820534719494963084891213752072574359477968171437994921592761905817967700991552766022950790459333176841775392005283930646609162438329105015355845494575461254638071989535867212913699160720557291777246975289102139466522920129312305964348754712003627970444195038841797371088315043374671644692882263329375108306290952596688105924857844520920385985494524169151968576379648176412493683119398029584931890870588541597064022550143481580189396581443679172325789540915547212190959453783003436179757735676847925594665157576073930603750629189955831931124507770408297254574807185483090232248306726985494190498027886486571710245989056513677193443115403539842971478009667239101093516859177238117277493502206411213419096813742737759144856022352536114268867618989023623284266538454021513022056336539190941120032483279807618062038582444557329939232298309991741265275543310396311044303677235158322354148311713394363517807953208462039972912605511287860719339970092686859764139678130156797877066017618056046426946141429022418735761479618807813645028633380015089280012673491859975181567971128473766893845059775661548015559732818163873254373774796498731891279374179335764837157410785158934245249596644609436894826847343077878081863646422294204003395429886614316191577461938662831648632086401542137479624171209343589014453999506597675380116716490936888205905178103377235098659318993847680744234394142301465935095652849638114126338621058089899683647874366109980254147916487728942853325530956699596984209457194754954392484839027208000243475461588152949599807107237792255285001880609132698823803615746475472316633306506359893442236617182451161366670317062803737381468158294465093680178553900230757968463849275009372405010523305270606659823734775297726170987790090927499981250265819195938027079617194581481741551944752756094843525536771286937939087349088445218369543358720905232454133350379814831714050858717716363377536612896803497275776118631276606628019825745085377574981137658252124840491853655934258831451666085301897171177856433854016443644617048107448506620174629821477104616603165363692709993458698971755532930250462497092062330263603206001272700014018986108003889001362059283378985263659410539754767971733308022981023154076879503160216947548972680489673617722433703828858329316640330910254582305455861908731098078219357986456156969941196424137405227984963573572582592302453650094409640046103890575551185727961736579542297825755632814996819117014721630861248230447918352325621869518029012097660968046377314410215322684152874697012649017998906837423296518823140345818641131677393866558757235790325622617780854438251165751894046997577148863300837346304508241439975122668351602369330608331520881251076854734387149678873698377723538108108330233307057031241285876665733160306170914132079482575970860445868149817807420774817303566131816682446283063702478638474861541330526336359100222958870885908587764331565637114617082048467550578186999923827400536906046470626001720544839606269627763937215254249559400605113493413146827045037150339657304128278661863782426623566932250402025928255968469768077863736419513228233257416718911670027868730023360779317455641839584082001512779503165717840148168942923285089680688465478539246263722732803028326502762451005599506693458844988320366319312482604189507957152541489741008360098384751236834726034219513676020063042915485913169990230312192688334890334722918994117535970515675287867056122449054884897238185665756526984308173471933545606717619297913383013805030771889045039657182901832282681882148963397617549431891231010538060921048968657588321143405065559399149649743633434776226124029492544111250972279356208626345667157780850424846869161914027859712621548458554903738659998390303713532976678468612471175909833062009164634702512884180319435203773980453681435380686747973922653235134417949652806862293308733865781513752729738945425265234377140835502287383377366136596908325510089580048695285704533969942554016574058615284002353739102019422311812004932402282899954135407380204261767282589736247328743787876875085169159196624381519402350687340035368225260254368789651685974249279439182697238935871575892384607172269617890368754380075369493300177485075137264869994368333814705649960717995616777792685646486267168139736811751373130993886479410895989069446664084679487666035375091836839934010671608738386744047445074196243127844299880586020926111439778088432235078054141444584586565325733280777463200346792038065136493762673442620454665855305570322171616898055399094093605835110258792838239656784560945943925715183898418619409539463829597105509944718434123650269977890312653943245360480091362337679427916573809197017713168358011771792306253820454257607480602126848072099187542784700308799996166369682957862201338914192671260265962612900552109184469498984502316045147173856468181236201819149687235649137442506185219686194582881030229306563740849357396974169985409963665366944417796057377599748507908657477095691850405374047414218580459335879193522499753007839492808679656357329706878357194397673766474760601746095126984476941825978595499732477309440493774233936411968723909279479717861347223868439367078991402939955537418372471598413580162188500405065687084715638018287276588225666626032703289469944922707829678289505947225939500811439201882959275229351182202236977899136738758332160874041792872564282772917568173242630299909159222596913056247682432824751511744621524411704117843215622446382984427710286645478364310254661353929907474672107218675123017465299131153295402616005334375521696606392089364706551911746256424019371606486897351268112031136095409588809023477345579006896783901622094524252597839266420927345422932990479046714266658404661034997294063148227826750844405711312872514539449886706434205402046653720210550617607225857578641346002230389640025285260903793028302946265427898816990076424043932099563892618254239288807834500061134981749896743858813721273469088412806626031322108217102698184945643316211275386050551607627833810714269604402045693981180513083200376678440137235975711423522044008651374185746087754190807889870694393465556730758803536624236486666033233791830703735924240281011335789238951305640950027347695932178507603373681006181988846822169174660302666741540582387425530854793995964497117732359382245653890692883244640994363436408964950264256665263381327190203285872262004719568016500738420697728070597769685192317536652140190526480596181260937599619420069192223216992745444472574773052544388156210935091362223567000508855221757818494639856380280423641709031625500853908591262502709557374274929622439667739685971549319173906210755564810509919591177887659869094328561423649315891355784921047298939782685089853740660216301535635851526614837456197464600822981269007388676970480626327226144530362786490113746892082629522902586211999662688239174318016329535145907443068978418780262904606587272902244087506374784661328494171219520557041971092643106194363705257128399157277419328798147647190624360762793326603928843704194649146722235375264448138005405007698741297505631080930416474710001333590706766294529023889915403106104053861644649445608259611771395755044240163885785090273642969691697132782573375633663501805779563847588912491588557110424007294377113789330254410099645583754793889788504163840505139436510907756077153762076971284493920984684839748359378140183582657812568355399292943319332248829565875162981362974474321488108556512226732464213933322549932178087196946900495637051864398160567034284578908617408736708791225598060088282358332742801513254226414610051415219628101582718944348876855455468243625133256066499569798666704326233166239821122869600397819209634558719458870982445528068708145878571578268103132847262116577298574433539998495081273839920198836817155404220013372881871668439358559192734070130905493066262003008226620523448260196710153273787490120280239347030030122994101901836331672028593287374996373038230577882727882341079810387122396300617608088460882515521836117311748138354320722132004068870480559659528428939132599611387839406215630055154107706592833692706145979181112621231930177187539165393838692024472198787506290116803271864725063981697178543113342775071229014675763325854038510285325916048416477236273799353483486176438484930804490591387656963662202799129262344996618191734519183953401556686095521882997619645080183157621967824471101229503347068787275914351149904826609532345808216848412404730942320576416729605164926049982704286189730199194972774358779612843481309057158172766637468053864403913378829599285295783412158172706902413669520699179832953260390847536824289720107784669318426022924910866130563843194508764316673224954036118282936557559912459734431763125995752130954360608076628789155262445018573504904815588189043471947092448016331824582676225083435871426511579898466602133720153386607285318071624466961351306645341042691352698016868576986918981652439768230348521391902065510275533007240960428200349752651464758494172527966576737448889107727528929447096847324498323735306363954822474282209124950098919850359173169768429725731956462921308587982846121614762818334435179260406008867701552938130120535550380902946527980385710452345891383989643838765740994289326836352335046087218998480416064004589303261865867421732783828629938134999580451421665754264049259358029850787256878355761283014920992385101351138067740550067848569689560765454281689261749532240121026401207755778045391042898320831264830030010005575297683198299858375920711003629427536688189610352572550971649183946591946328809635881599490844278773265821451205963948225239505556935353936957578422214518127345038814351111918463150245465904422283713278847481903461385655240823437402636987132714400152210032357694732482807563380797651055915757759179105178712458407247672084771698477812280472423147813881010977446511689697929764322046361439664277787228881685174217662557512600281917226534084606465794981272951453049139257865998359783255896004683570929501653854861530254445218241630686852775643365886708616601955222094588948656745158658897892990653572818767710714279825384653961567689356524203469673572786291318895080765732368553491315771902259580213424672244250090949633832457168227840842135578872185061878037014801041670752413408858131701701808674235968462955592424132336300813359670997214681730238078937575041717112901693607653661477236741199371439559331167059656679850143198048279994710061531336362837081957089511430537413569843122793176692420394302182354338565832899559342129060663334987965497955964093279243738709324675391392076679833560506306545511864569351094568765696251045887164388138406868972469393890716059987948090852226281176703711818737418362711342855051371536365370470947294475665564807260677377956441470477247698360693981279433844806212102604320683571411926353319508519595561758350401552153461562741611426593441192917713115258913719185965426097364916706914979798618107440416770060803874596362752209212080224504364606105444333120835253705795740398377886251881743249421891183073576348869685325769680590819822436595434279573131653821624993326322289697569676342294126334558972588576915979639769888910905100807341745492827515993893894274013724499731432804460426434749482896604058622462818180291128832556541487000576006114203218862715632919570980117003499127571195174105244861428271459325338805169279002372429274685347640800397388485690620847994871549348077454599526670058190478069350774722843923653533094633344695732357975970795698349797441360949570784629760202754913110360840900554215045628423826955519218582226673903212528687913257086731124431543115823683667293633215680379079736534518725856806385129412968900364357726166509535048010451987158282616506681382253022094364572537552021799633890761175527082084447221775486783462207890113323717162029901460782003433355759521921953446341108314711061189817389656849897099092064758935583448761707770555693743905759768199244431553117024536354707474450529832537180474262428876611827658007547265548753419894765574104890646873580261889129934029006343869725479644574626103236793937584349770268694710952796167650373769476215982671576177600473908369130107409859699574835036370732466134662086552680703968548315797308081267136472816204365679581810638005988161256880723789921143867261324074700244896334276512365828236993737252998957569280162209533407845721740353579471635071757753321671659926044878143548504647583038325075792805024196545363710031466871135865786776401137944524211162844018189528333813543027880622176935327476172179372649863189439734014661422537002360927832095145128988649008275908854948797071318825074506398196615881073828904467397363890435936267267531935337883218870337703875126335014822265805538062745997525626999333307822769585559030533219243275946111533871132719455867101164170018438301024078588753854845693396246736998178091908430495408659618336222985103403118709893624887524413724519866062792024304051206568301911531978313858249013835955864848656152439219601490210106830409975293131455029353863065883075786717442249609855754478917973193113849353140713415028164347185627193480867613301078848732962463954087653746179128581105113722015456819765415036412550575737228472813921905340932660488911512608281301340898117118912068562225945652176291302470076004430842242444031672525216556177735031691702627136384074890240731200887479399351746265081082131736573477197345965452269722052780746707775458556536084937067998434139943002976003703655749307507381954508638573116586392884403517528059920309574353365182036894121279995608606986586215171278381233017198581683206369510731415413124654318246684532952046417646563604690977384880784186741570692315293775693550551032396002407895577852399088442133506766267863557066478188209798651039532470785338379193677415887038726206131562580601715097780744170524466420223450786602092774027026301246759334172920686335530657650793059220363122578028815776328203627538569365395072789873620223882322015012736573655908738322412367686662535965674221775774944189635941516475412623130796736236817258343291981983093720822464517653938766899863115489513731016449489692469962746988356037851884544040071081675575615745629020658709969148498291260282733635332638779155641455798617038241313305491462968561042636312303287980129561110168509104316393209036700739101237038684872165246206850396417227250339447127044766095559969757986782611512662722323128638658127572028821522877612478751736092791286854985502242288671480660668294007444669169353363156356553813174140366529427025336753944762146042878297833106287026678745238005078165924246166719947582192333073295545069839192180486675444560709694179679196073254971847325445782562545858746172130732202947203695190517307946749069247368726185561675572662785689826972805550510305041197898095830779217703677056393459016098793917717768251928224826779949750449488692251694934197617394631199598230640759547736817467289513155734463491096133196016452926284725973974357112381436969299554541295656416260151589883512701744187098416630932123017585919507001076482656365865575832053335448227432653680373009041080324498615266846644296672036024059181349214011880417413101404140309653612989995131005292466777584809923746155887344517308300892375982977314064301416192190383664261888151800752126787733077936303344942773987999788777298773609675486894735669842712870656959826470131843308770350267888198883868417877530265713037448684118433420451041957606450330937031129922138453534473825378666215785267303788656494278338202059185736869305458996101039413375316017571428255417640715312521387536246641012700975065468921416572868333464368111218628159717487583941961986205815368753688681786405835514269256174827123757621908390652391478677763242943568899996986319190081207518220742179179094512639322557182932030687202821734134058001575654595415306824091800912965740924940605327340814661907961541561774923851747710673264076103150515243569035754148159465685095408408217651204120042829853045251582674853203622410564960227154176303681415508155829098244801275089680115455388216478988975055611072650278724754036829880604895520975567824487094935010335582011491362313068561822316248385241549873662225062888844302283988145949221151881483152138235717002285565265093492234379833072266443097285433202807231615459148838292151089418299108041239773701029928057430738556352236043922105092853429765024094889685370928186979965440582868413608527802466758389598507386702011156822993036668479234378457799823515185959689982480050595218798567904519812717559184946387555034133191660746570639967127401240696243150656732029019577050130343731946366674645971564924335569428435133337551573298963226149985488324808008557815576698539217981144821031340174584019809658783857763933016399712630293169468286939878798814913148981596720992595257197234401201385741362806228321619668435427377212311498503580590523122455316062471241510542169597790582401928702486083314172780083711012077803923235834971291442361139919841165248323070908929593729430086840282014972919362613579488472045832182007480460041139667147821617218927440781448014375136959612452976362540694382988031637792721679061784638478533688402808013339254452209127601599504002602776448139215242984744579438367660499175019238428071284264459919333883259132022781402556842440370038166374214361047564247367754245641342608774474138522605999985136368540841502310926311203454648844831961505837949193324497515719704623686334171241648777194225872494061096172179735474095171598870374371889868311559690455253446210434262252109003244385634610737986216592371580171262666682273395636116416625662782960979069217560545467473387419563531718683380092875512195122087289374807247808777046515798538890368952185661600289579360874661589961876785206613642780011461953213226076251199495181377305316625819081586643444702986657249473877326194596975878756584390332700535239329015299568680286111848474192454404533465547052627479516274879880898279802182318653534866868642197074781488876673444418482861282711930413281419349544143396117305408066070318650667321721062030422202821863938770381820688105619395661186466774568598903745300784636270226280086343924837378292603317035797984911052988596806411757034119964428366002873733149746547655394472470047985115961971551350617844190288179310613054710637678875578554524731987240061378465984802933405972278973250706115044583568291055852721187411925591979487178399270895168000985855179990503144809545134798328866288242422362864887428774480411502649668715161047020967826418855075547710633564315325165033639818325286104185862089893976895569821419413262422714180796805149611179732200670684745213591856883498444852795668155213983391684955974234415764170361974219336062594498275715399084254751518593492491483285095860676720106582030311845501558729640798868872314171040439597583933360032606206437849825254214122138945694392651652427401164072191518559405579960486125437057449802603648867333234482429282615208567929960941793440273164448130709085025445260818204659502540069497869592488824664352168008548438247420626116148948156676355412388654542591256803561875587611879465983377527081384250045102830104832757242656091441768208772639177224945769013412595920835699576990327009200133325663323167001893503827847006758488542819494569408687561497411512834620345012464158911180453594755053934025451491229144077555464322074793834859913391594239059381055541109406759961010351116042149302713761106474728128567153044173053903189482384432018395799810541648979479385831250211680389806145299486807441832936144758467034969635746909867851959923536940282488152446968193605084875863627126157610539160896652656357684342895086014360605440511189560559538598878506453843077566775134668295348538678275192643206589349136637130561040875314111564131177194081299198280115326929956434624863042277249551478123833486371812555349902675564237017328873832556360480403358767628658541020851680049614587604582929352475407640768218826930207720742763173748967090264310103693638925633577247378623268758534354154319761696003327740064134931524258995902608914890985985934787861643001624725298323469958540322939173066923114259951892353884881834210738529700214388615643859081619970301453661933492724652942931649094122212632588565736292543739603540248609087883517861548617326004800833296801499033327863059874870038370785961416242862149084160352176508616612432871217971423888080541379848996066485543084076579055774094608379192876314693955309580775083731772130547422115935777244168282984350203457196837340759383222268011619410417728549524715969285893677161666057162432753209711552940535528062550900574462417169300850260103067747458130016263490237707631699012995152659731935085694419369510775681339765496839323780622998300211174577529127055255807755662008522201083217659342207681400129431598451924512966747794073973753192778781886467390628787458481993768647816271191008615868981829389551656127103410197446259044169337437105542459418608747676852156639216994402582091904066218203143521314320434286004747016322454082990514406698023720980283167612129622790935380644933676777974374180050759741317870965851854788270058431602874184868818778629312470128056044402548828128167201956110795945199394056193950501531299054102949890158955276140515260894963692252492440920176045758679556906404217718676577432682248150018885160453558664135557866544180662371650638464548260815675263187331088372515145884630826430586458272533382174907340643865522466720534355653285974178139384248423183408926334779353401848312736363927125791292771710445388295063078082248304525633460925486465770047819541269943630165677589115273319588785621119770444953914127485604262903763033732553252145592518421840560550909515006678395420031501489037180524051010270281182780016523269964146203324802328446879119379135411514978780801929904291435282599137766856630166607052511150035461446275677520817132179007523159942660942109400460305017814182528450355842934422156772457817581048581912616409624939032785739174780802653063980811116843759045631609569821420735128611887604209429680646531438263596403943626217663717183804204309533540450918375002539113032560739552762307171332923270761486642230836742943604409071729559552668603695249827502862739596326614778999032783097827843136683624684459953421612565193109817258272498153677229014090575506146903968545959918542197040218148680055085007874903631414864610541813097844857000438317882976923042167201267220146438825606336538907548181803825659872271784410590177779373881638154990212438495318526768741804702747724303846135074389531545764859259387114388728126826627790661433688847635164076049958373931988245733850094577987209561398207312548351689614244249487499773805352333546894854821184019546689973334630953676137097241609248358333978503174020514844506368439274521075192499937081301027866276338403462117016078651416135718742647859562577076363877135518141689581026834729559857021672660992647123318328465797633694840785486158235866305955015574868973339676265295028420816625701123456604794837335042777201284632854849032684408754463571033817448395814286194860571554509638740553334569264540321283454508177762693314374214724433933616457915557040317485650037783233301321259915999976459917148655864568073651916318119068297279598294505417850341777858998308275525776735644883345506010806905165030631894848948181138640872390358759191169342389225849134015663110325566497706061696413822938312086898969118528576968850409916590578991817926157793220555642134804772306625123414655337671382046250691531452722312614425087614636692668257758292571907709707700097049316584920404797944170304498022674253331283098264899230403834527163430963868573260371668141593025354185022332348604231471300619368201564366616195699037125146700182612856117106462528993821339202352948691981336971246635554612986419611156191020628589360686964010853082510957327220750410707830473679037164388394798597925537064430004788851794359546431097704414742716838519582673910777523278998041451389816010634990525649159046654060176939208411999917515844557374360403616546038683736277074028199048048682080328098116614679472093772078626178597320642460148780560479925143070399039571312410906098352991891128779833793418172074061206094985738267132592047065765371896640875962172756996689532958947045039055892178677527111978322244603041925004277822751748768137692282954925496770990571132532300382259410533265506948301486238116407928802996769642543992380540529699211223781890812509064946118409322555172657205146597225025997091250334672267147845669478895183509753596005979613446211642189523068340352592376378435813385825898585524033282390189216560496439855460064858647536810500639320535404002365143108424558094377588074175747681268413710032886364666404847359701319771511483906492667161088148380374320550192681379447187505858610620361264983413441358641895911662689507426928689834554755518648207314970904292718827331984722064781619172918225129304345031508157268909894521765324856007328379333436340259697018323381934921078079908618812403479248047493511122828054473666863859394276869729104110256936776289636441322912978880170135419766960269848956748862965663500208898694510833405625392222839844279501943684066970117701990889248890047020392567060164520989977192833942606296738824846877610634566227554418991884248027041782559874414834030562708920863135388268518856473836022767153321227305850377375734928022820028319680825352304849990435175318734977694594558170179285738583289162785859334448023063359052530790188870609635955870093403416269360638950250256280474989422692872106365196444028835370028967417112928829883274034989315046277547622070908546947691966817610959466586072981597701650395562642376907801259612486742241465131417380720126684016682298629279116093516605572530497668142275775190329252473184256430886537051377004029289985767912597543666946496342550170629308848327541095317272473818756842830625360027934649794065841895391683995996990278906135824243784245148746754472328861935933287908199649683914736405967932127414580190543063688761540569212161631072885762807522178605704826175452340763187701255555449563150019121605204025208941552255254196675114722845300467843437420772122208862784233609629530200895754941485990725970531089666557055098255642863917294551639036519571705574755866222231782532818550063484952017372402106875641530321751719316396389498163243664706894974264228238722065475034297274800353760711099705058672788077357992096168064259417092015042132588433733969841890712162872261858454492947570414608232316080702999313513925636180103409697095979582901931083049840165177972458105179231145485525477042498648207262261462582103009783936652368248595301093431486931814259858030049815042437159513097325056496347620316982641452817532568953782360970606013833878896824054815959981063523859942434372432334797322348928120323392273924004907476850373215328659277265651615486799512034042311858887370921040507927048729178230539173848046498975141461704587031091126848225073691735278803979629517526035400012460255889916906473191938001415267467655607164101808993121079190614284371021822338973943922668936160191927823016963719050535606860088172827265695514292464104708781470626233687939812831545508413072897644674905996753461463386972683484514598455655395997579176282904361090969777280366214168888213082832822266214499699723112738448091583459793870655080626239650361952729279687380191199892658977123232443078361162473109138425018312330997864244829610501374815732411147970421798890347134185485294523897203500328626264214745636536199235607010682009384665726612225840859122080771374869101069179752690122950731115703149323116134958052852060769878886243032278803848677171699693460252184785741584284507265163005952677981375586139594234453575516141156247049254295121113988810979922448053037311970558055362636507201436494417962467582699571167823940854203236529256149033300528127410466461239516936087658335990941373884282971940340823983201806650501404342872494725661745922541641189171376293678155452222699642637839787125481767878596003018251585043150820350039185684569933327838002641195442173800253765329904612394699837917498039046498914073511136212471029685802943682979289107867527403960205354956521257635917989258162963397541039948568275493349329917246447831231563488667272752422285911758544672757210289979109717141956929187454345244899832568048812745352815461930833665130585075295667609332853666998386795931089100151064017798950549155311198158756685034335309748631672494157338813610245578328002032781799651114750434426029624807123458319863359488506753225002123972700078270118517845125388409231222488633889973983604517143354880305250152881955249554419129365854558383168145956707399841673011170753977220348869855926023735103386527278414711460532314806821139252362950884604329244224767115314200314145555359009191905197571550897800521977711512579807918942926768509799975180579654823495970074483320141713257974821924297075641144958767162511188220093193667285197941889728754765322737518094946429186969711901171763621240451847424846048369594250196832709751582415735638161550321817880371043814316342522558632983119381184088615195445768245762541060324984371205470682430930224620346723361387954460127022174971256603197611411980846950894793281107948745968733789383983781314996551964141419165461211383727873818509890774440269024218643847450106308065634360404420147512120286011738878106059742655600690443147793622277982375659180926678504360211774309554779812908025734968841504180069291952523908096989197518208638142102479777797981454683114051335007472525838054255869972026409354291515648443464089847215754083015952439614452480857478037100559269516000847127909381737583243232477058580916773615451640193429946676178792840273026282994924294322635968500736657024301878420272977538035295588870212957035188580245772261101737608728773710302903214837627386185250862243137973312498799743238211052321864167168840405461723470378077805450446530801842373949928186419981355815216592774860926109617538095870546245012230422048549929777933349748777515877842400473727512125522628363780142484108431190102808689829926560058718699811695710750314679852368667588790374461879539928304621313348363947203948609099744631280695880886194932365135924973382555740884970406782508984685737024935229484381233481105851425831732000110839276175407552654762802396921364546641396807204555762351170584536320462103344973759426379892146454322990281252204683925828417203550880978835695061082554639082216669122895079153247262704308047333331043191660407185340080968266154794544873087891289256445350626341997463094702297514492272761984596272403871514972876620828901193551197984625162205448201525167449468173613977040895596352723221375084259494376804852224999428119131297599644476701925230316772345723815543638277158766573374786231870650714820517031680861612255649863984938190715364714702567537094687288753105661130369728992382337154631915873313771940448429876523420106864430110683822401598446910261245517228272514131041214549180541564685608767292356214931493886747752581816936455635113493287310388988728108254657228061185778364117306652091921655458003520669376688398530100773488688457611467042809358700586502633685428958232146315772784091469261994297702032045127561028831715880890681320493577551636641062032147103957054475517875713376371984167281386231999966915470552709327923791216238773503995805996643135862762763355099104806864760428945843128415281425574548794385294819050066243354254760541316377659272910991920277076219606732621740875392372347678382255318975035309006579508507466810213163396380617941209310995630278524222453806772470380458296911434377041641472535986538500035862881730994715784541993430494859563790972251542429670528924257403436692978291546936697040560152287867736183518910729588635266605974906518908676430038521900355071894948293438595507259724471820146287475261667027413265939180754591386190784508996602061504140824039052569430389633497905790760921381888568932224519314335853761337277934323150358258353801465876629763510621127545073687582248374246856045517128366937994220102350376060301356118857917989580400373481045538267685077496474388027575528716136619533618694618464327200824548286125115853351795414529724933858855292876397830072504629439456192944333222127155869867563434653917877120348493023058315562827415879831123099339344541827632639329453617122620701661666147334539500719116621587882458514731119677172340415565250508173913296750207963402671662070582581826440926864151690129604170130300901918608351941417334836864984298368372694894748811331686474772257695124301862460072507439563795411651346799622355646600130979950879372933364002206781703959954754680258610707746336289084881911629366625314906444053004670718668227874602754113679067865151861678617721752885417859841153905435689993348314851942103287408490611431527495964088019905917851572979559439499566480368486992704222001895158598818217771385043841103445694487318124365101928720350438203119698355624993893907715002028661796085744549506128441240840288588437084088261997921806015497803211318968220354691905961015570052919289786689439336038358222678617018685139495359999952603065739587248941646893361911597593230130743599512516765274984544383167971612503146743369509056087245356728699681793735386045517170828344184392495792466215334184017430530049723120454663880693051049823508816415940799310796984997008926335197899188303764958785508510025254570648248229078077532046480245580308607124230220817557797414817106911883693807900307088064602072487414075876013598426708734683623857364352659491509135808752154705077396053277702397197223028197048483962156966137846765838171271964738489927169709073077486055830325390078929995894284998464995199758124800218836727788786677205425110918339172994701179593332927340771225002525682288419478055780550764199228842410157969326922432805546498806841729989918575080291209359196277322558725519524029090551742304505685908340708216272575434276615647840308285491867850231394507610107569548051229692222131270566709242914456404645257711291375069095947885545153153266382609313582809448143780267226741950893887247241870817253033580808909762034257597995043211745152424466634728087046840498880629665992221413638297308683899855106175965962038667316934201485286794654214877389036737275360748052070724430636458505755160605080587822534410183206936539190812495859219008359858712688266407982221648089136254866022874711997864782769331982930733396021226607555339722434935654718705551725124501387163065392669070302928737274373526623717980550241348805937382763218090548363940086462839429518086979666937914840211630877191717733089040037426792047196678573761541525689087130768469113605672508900790549206129860870008788473712010026197411186247024024600554670023777455402644629021457098214477483285348718315092974915282759071066683610274767503015998173454341533469615749533393543806304666722239602018820360735589950344419228050666606111742442845174263095319813684848410008139096570289772595195551213321264042720923417236502169384082418191862459233548526825821970912262169768055010513821161271436374390722576995353601672245537014409382081952830460580713050588686065774489493892056041154727789148968286014723420616679071026870205279300352257737773924696116495365182230091580569598503903324295434123239395510096253684593348563903504916475152055767977609684599624483154801532946216844761876458271479321085029863214418048450821963267826949856174375123436652318085020910197725323446850828503825800348687841582345173944928113869657528540109267806028144498073685822461041288600412787208779348038907001723584324743098789022322995791438139532490328053616104973868820602738096987354516175053746958369373791639840429067847949710369947598918481284194808887417490868900429300708101331127133250788391992290697512577331899274343913784779153292452136692839007106493998018519740630554010087705922695932662274442630863079206250803485375079151867355920876975771437631408287606554343771574653490934703530087693048939161591498480546816542807620068290864601745777903234628205177035907127686322203787644641100848580825750487954912424290186092601335604994681127509566813367936759868929241891350097509272407848569663714633746918938805368877724629933638168480528151474978115106755517684357662918106644612721794892828626946222912090721417887569925665575967158896976075549809750049813869677425653765807369104699028514214799233509077652413849883170496036924422544006956700568719230910834818949220832982930596501178308752626536050480580595429026804037629017940106637782280292715544954372913614716525467056000077122547569651545043147844269684474760394204682023475327566067491400739996026858627032842727416297878096618691446915587472786014525606030407867772350208037435439466477560488017607048796244589970163081027272072341602960493052721796755103492876865493707763785052343220131214289198067564085062784114295457092195402933150369524768242517933583821059578379097830939031122446872329424752383525619979177300328275715408380249793241000430647966190996082607678282268475302412279023572439202819916174866732187012975108914698219022731088065131509100281579205848722083093957418074652974795431148053835542604809803939890639931813025038396626428903407074978684495831951305009491643664800832896111962632329195782315019761168991700392572064642171700332444854946951389608118319685369781856386775448191117804567167216821753969266958051112503429904939861508828123734067297064983740869724938473533983498970026536887540342380387764403209591928206365960653156311418339885212779191770038482959109122245403801753821311672462422426783112803930012574116807653667706242299124715271544987013869384566198996014784613754120319280059518023907085942090233920303404085577448438287897230368385782830287869488790040353387342934036693268530446754886943756499845317052711323527262009660029855613488037467915071129710926738041341859202631061220353339817158158115315015860866923831473990975020263768191581029363071177934724991473603235707880790431048398797252160134769515857839366152387836106486678376910345392307829408800514141154238924312104459125666524590817970504394112205239620786620029383852092482709757768411602576418388716863056851198413389437782928049862163446595792197447423052390375282500770803228503632162447477571153115358254431216650745089229817209412255954666992554894142274585946234109510894816869995123631971676357974570700446415148611288412848441283949625811868065311677774752055401892303415842716054711512736651607065105719825425692639754190756934513095346754884480776120908413729739564790285809533097683428070945094742500582971360188314551287521710705386249744402171329473505532807146217714312189992076168158129565559493648900954868488595217291060958742680437170118803045402531918395236968010462388399795330313384315932945090269179420124283300396286337737763404774630047839498355530626959824800961802853180493882654767329448976365535312598357660451567747882419314342938188903889576941237627678499774809961845732983921293829634633821975331097860315073357513729725789300649378133695624829706109543707246501852970179439395984816512796633652774372393679923883015239421883775510343866024572714645384518145897696440721000263110076397811644990921881709967208008316950385817118935651752658561252960336191667852891073228499748212090899888377623181653079776388991273770435278521672331087968672109174466663262532941735097807459352970245226753175250011222402104377550402333933464005885805939814329209591016076468225070269427483724410486536664714304184124448989069326381553937040702314469406059101692972459734379322175033642237596721748787930803882475372236628098749412273102610763261459658750214681817397894368496648118264021908266399597871262603907392077232414462176663872449589352918280613773789865970201078624081668487653104408593642136049628841180586540021665099325983984896178765185537647907381469382372247658731349861022723655350559673931715372591653225425286281557650704574985734798497537842281667065849863892543575019008557471425673715052141687174465781056917394433495874309074986537570526271144969871884251369471507678206360201293719343829032603335039003555362918394340937995551254230586458271027994678790528352500532481589582788706774020476398910087468106412499250054477871878020497785681902802042779683417111528727726221941546194039474367885989373520403518080497115146092307743289954098940625006362117989490870865027134415623355130305338410247139543647888299890082760999107324043453803271345723162433031269358462844452922705976997246536900779260741656095824597072667582794321344781888662197929369873542557250242295232366457017979850858459439643429292004719696773134838323823963393034174600148191084150111349661258443263641372079519602778275355840689269363332643412354573811513940565344231428971230061400836285126002384066429827135177015336333940772073655801658250720957700585898005057596421278376196016944291778451332470422748027906705335433016683895383158221839938322699316014252924676396254535370306540140171427520897945605247796109077447315192332997742826621778407919624721145483338395866835639159961854445111901054619224366960755686024519694304897106261460351608440335107769860507716461864266710234454523727316426043453635934001353396835234721302774812664436049961602420237842534454264224999621041512550757532387176605254911348534951314510759456445364400013254377179906497373209303058376897322290448183498687587828084159462039413002481950008756530539169201643528096565546986500201093487308635717530794639474955819570351013096991536448916640415721939782639498755205308497601889538011413918269025155878952834498156066624861803027176376505745873239499857495712594370842199646291167158697405684125940495665704147236046248463358817007195732421456873583067453324891500821952112784827411103482003657662162298495567398313134603063760972453109374464662020930864733617988863497080608697974825944952011331181818254399666402976837872822156320538012476865577974478778515840066340336573953863465112387595570569806486530571322092027661506489260010149391312880728727997259792534679796481747943701133223127223109092096997540810515544572356533432419690727549118023077764043646395108214699595615851972182913887490055735893945975594486600143131004177176951969920671839524324140310796855738540741677490254008023861666558453042535741502476422262344822855378381439153387740407213012589146257290268948192573933041458539788844907246541556780268393141668191219934241401562457466966299780763364454062261544646487993084604346770884760348823698318847387389790657010915518513306387248219442412589651674732649926189610676258748212732819660848442691477924567674702388866800566814167882989150452408179959589253255445448877225634476406473379885930057444174781992539241130562176584025291355307409169615908223682316834248184845009155744426477808754294447058418315339068073748789840408683528577940558348296169104746062787563022178024072127096402782674935014357724074545827095885493335385533934826212862548001821916339538061195290355117624371088363896041786623408107254714433187565450549373373117592911395201942009379091842751938863411173068427993000916841200579524155125426715325583676199336333852503674078436466400550940931124595132220563047826511804428756364373269267453245693402661789172693858754143721521405575262370346724684355886789580307451415266103074841223017066281439231841246229378208150882126814597102220065136148979731480699141485328495333754197214136215384853439713943817612117183031487634544557377136938819719626809964873881135028148310303877952295897855123665680488320965279975590624036414286628116497317018849283900584655519960640796272437014403418402124486710022850722545228644367790248753288391075808058848619653047096243169511474431692063099331611173275305207415697245090809249559236988128502455843286669802561896438065847985900578302342750728786243632159913893165053226388155760548615810437517181924729656429028218999135315335105651369789930922388087816551807424637812664359105322754487842149818656304691099676915175699604707006078251384560590051102479172840794633177752176778543446218737921230936562719206443923568448390856924141940886515212795705909180106033066751382422204724796894960222604390393294884466805071714770636070366507368481067693233840460020566169989325871805226907668205616277829629564658143774434964661627964396787339137048620796655063071025885652320410785473864833147639552307524633312084385109964012329839078178869875793331113610677915740961082499472552519827492446507950354282378102631245930533378054783507037948347300482428532722177506140135863151764048918775433257801157799838655183349167318803687209279738967836845555649557564758431563920999041296632480429745781353475393106399539135883799948130859593544844887613920581762874412332942512821860435390321717430750754797159457298931201574582487880327440993323039446163126353111524955229724393677776062415763617816055851966271574317572690915002821778595714670369761507666869992144053282517160922611719726031110770836166099838094323454294345954309881034454095792046909033231932784664372247371212924087446389643188133188221059302400103858360195282956504511239094174183332769576389707764354879623245035207392715985078769535841530077482398921166760306415708425249137347864470415018276489193132296476367974581056074734905811906958969247810744190142070702537891936985643129304832389861605315710533358676547230062129402982223491442442662196841812498953699064272234748821618830782768282451246259725757648015799970704620439529975092276895032123975969477085907470673299047635339714775469888430728693508277043883514933706503015754319690668465631588080386054105202916301801301412438891408488464968463434392053525286394242615131916523750394097063394659707262723545428640052674312375621669138354663706788650384202570469986049314615266321481992070591785622015349825476596168153408390966266976574564196527081645006862924939833047409499200889710224809405014101622907984243794500478860533059444755798639926812437736575536536706707009036513302754304989343221693041360023165516243895405247443035781302306618519221689597179555837228375250379224774951785099311540287496002155143113960820423574159255130538694371788432366326275176076276908915440013911915503487544702750075653547481906349511289648322736535616798553148882827401396297619815744606961109260908139201185631516330095950515266877325018300205087265058431162945697945887158270731728760647306577259102528678075284223144107695256102860610474328475954328637367906437126635012735678975392235583046253953127267903268110068942415865392144297247240238190884396596984145271588379356215067047864558221963903539290622310202892372257057368230674146386973151444178483600293195983792782178314753912558300261125818622362842508710722540191168896690847733317972230493014209185103813654360408814520321263378588479987414689953993009093129514610153399066437063205103230764645902538665600307978278721206473974758612045595980907544056192780240972577637766034337189351287501532348859697764016170736521066722782780322478368598056633097132250597350314168093141681572208169105319873937299893769054907787217347490906263646847721782724014813144120714675598900702019927804730449292903990710214244412962347701225569164147958908159132486648423302075222498630310971487523225691719219934973980121080089969296874903463537963998893673132098692259676160693526879353405506321111474857707559366905008902106920754838121763890062173186006857376924638585671614192178550229440129647181222084787312358779676361877512047123921800959922206549668347925722080435257157075572617797916594118611735565025488970500242818490442004238770718092586545954599544517349200225887775883099568565655082980028465529890415096962301520653448444534415806066752121679057411587079791258035360658974552658453044032332874048485379852238793575960518519648752063742489276861018292226989977500918553841681585595475598163012847985796742134295769131732923845448046149540449327881364479586856349731251445022804465344002188369862173024808327815007704590352108496143323110681511772798720595467673375237447401374282945564414899091020934605231971813671922376490213871309066015323992663305523390418647948899760899954004441051663718657498215156036584318605256586298369097979863174167353945714214214893005774024995275953453881516467696060138727039962038837674524168400492655150013595913463139790717529082019129396762956405770476544484098918786268491660507176833763715280181877064273365525802065826309154395399414230544162506890643587424110771068987567913427178640818735369435629897362564415910984088772070945414149366229127501797095084501083339436960089883664986330296691790964405200597278883969863483051410521584953726779948704406457310842591447394191398952282303823135986304949236698824186102708634031846527497289948238683887744304606941484169662665119482073828281288206785392857659441501518697803618535490467456091176075314981945699095530890780049045059429408518915678244984722885423386687497878696708678990914477871379583904664532458663346849998352017781212766195323666304358217296633587746801346483474941053304332906541723995971251604519965765965019269653866691533189586008062336604711959975608771412899170366436433461163958491904836621894560313962041719416512856552013234203063932992402362829504120986007006372151886854823209312483806751832730674241930076461093113349331858193921196488633530693023890296457838988755715772221750491831552213398154698540318550441597035209095628075809250462685573876752477489986293938244597778821189697569610711809359951941787173671950592494109208885914513522207499200423857751936349483323204607144573410021026837253840009919727759411465795974171538893762205146269016036910736650568680539563890789455110550913516856818963995756560565428055899511113893953736648500697844464504409255823846813904950011577220128947440119466949864081496843673617951150035591894716984040925430349282117689851622596693263590336687835608109843308644717570436387971627054566795039930227899514974633338863674241870576662190402317522931761038012281142786898128496756457247191863644631189823946704595258968020647288785611143559131248329836734886264281365211187981870808377161543729453120638208957503091707324638788037631995017688658512203814816381266244635029005325829454783050193230292876494711818220203641872126138509102019057992552574201072437599280196525604035445121717204749502862611368907627358951459588262586776523999896716796371651799197713846848137125044900418734727634689478212819821746169463737739063414545638668932709640970486193218107324442355215082568089741275974419033669434315807044718971679977404287504349750727530530938603914940397514949692861356044090000105534507653582281432521631552046845574614770751604989247466038556627167516701162405329572002808743143809242764990573502420101220971748865796486432285971724455925964343409251480598768632274627590725933828922606320605455460533252611699031627472721698865350578084316101560918789336726144366238929492536723441754076402712944812950403369134250825515403110017762160014059846709372222958879669034445030747081498883754874209323014910354842855747358420555721764015879388191522890823166089266454599320109914860138621239848406372745474172999506487458127731695920740801550259471635208768320154269252073570986308302182693841531331221348907849582814731256338403385902773585319196431648536346116042781270767361530393715689677108206034634038043710351291351123922786132283861088129517902597705022367461986595169976527290417962779528385771423321724031366633101067160849058290490607923662742596049856716657363579378163568740343229599268503917661378724350608787341734614696102678112846525540532289859389971728891014229334477100568982158609726988305992350980255250250043099447093509658670732108414305452507384482434962115093477243922240481418235304352497032073812527975885337030323599165869075510333759177907112259556975243628120583353151553379619410376626398290575959403731567314076807000401581064767825896664303583360640684757244532837093509448721594381688265514518759318338892355187795460384181585984320585804787095596109929388621752783656651041577711191029521254421856966397550924704462027220590135116812770550868029375004053658141950094603503726275139101965485286808861987584520998948566903475725262528757457036846844018675861265835204390071749616393833175185528443450857314001337280246542545118377475192049232485688942062787840980153770165096030844110529146601393518316893473124948838975174855941319667870319417191050820921029418382414886053919220701496917920823225552093769080671991887241767592049255194893771558895832153818747919218720359577442050281917355182622792769178421055606652962882850957809586774395568228488103436233269928007834355085299550939523437627840814545718188679032285763759726197329263605020112682749858564105195081689024250074099034105614459230156764504844093533950531595431827170981336580107637519979034641365935906298414027219869539921462323639978386961034384562667289218422121344909271048570993456227361138756177273262868273935554871164578941254268644183541731229822880659702389065491553003852549972670289347630862258548254761367998265973183442277070589941789769242061150601746598136697800242160475073429617034773767729135784146344786134338186222966390533574889110889929769771228846614724939131443868033975599363132305824758499516216859118534404870979186753140542333079422975744692664322253622108252669768670295402614667699163506291222451845687035844268406242542992860278212589525917350541139329615518038205396817847812472774798995212065445437866737543575646358134997596891478374241998433944363248095393248155608140524552187969983698746123254667237997123524801714816657703652387815519328353061440577896432758820347735584924805990096718531925453219585747381896480096902229174938618245943319639179733865048385147004686795876125840481624354797287254724828318726356359821202031568038165891454460594608145978209515368136336664050934070762754529158457651448169819306269762074191094784262421153404791675469604185712344517454484830875855866344615302548101028197979937972892361561584279616324764904485364660270332370354090833916633296679260894296109129102335261376899100605490255306397796326730921023422619891470622740393618840123990711518935058775570316742681470751119615379986063784200529816834511923635876796583183009079212652560930900070204990072783115170191649043441359573100313220111713817753246551774346514332133836374857636393002630179844820496239811215493078453982321679375197967829486946456815353421724325093663086657165466460273117930144052375593469031734916145121980401325299360311129038215320660362183519395202503598831385180112937890723959136993475181087348517813235917191007222465712036094616086809918592819851923268858497470325459316725346864872718196724546926391620779232239778659439159648332060371603470442945083800119620953791216950660939142059458147357318487996354344044468929471073536410015630677840711388019284541875006435502801493123207498105000397989534842607528673290252713060267874065163147621488251812607631307851276739051500415333469778863977401232891456909527908781544649942834215580672381071572076291305447960777284537338162366158249109149386040411354400116634355030590552881227057511514101830282142584351850212996242599626640103883297958742451170409784089291266071451561070692042392976791598314329567969250262068380256892708650140720303449883208884828436014915328745341209578986963007697026359853336543796630260706449896895810834575557975972971090096349856389460722715445170891979877978822555387240115703095231331517661934267008773695176335284262242105085664579503281825336529891293548310836338411095928282664262282304062547976461366449143917964350165061875728184053103839088774111745354379834667469681205828853701267556025551996065399388483049416678420283593004477987306209506417661616864237564767006009453571549702989302673347702425248905274113830638970022502510987442002781536399653023611520120665579555638627330264481976332387430267143459264987050890386710149241636698544919206941409030931458654492296604925003273922658079388820857081972654760543412431088244489785946294715824936725660223136228218851288622342489453617678750196152460496693037100180013390559481608644411763472693903031253473189206224918125155906121411627228072049352746065538538634772322228417133124685958516100099751633610136719859579867346927148515584145395747041559848776555999024504439032921718524914918771773005630086276303814007166332302200464542126304397774092415288257210673696957326805383682987921256862002942264502493794237513628283492296841906179632049251806089395635540397551443897932032191689880712251717635155219186189469216669928705327937189996230117310106247376096160172724198377036939781726727683505278379332276620324881378772817926246853209300400524587059309637386002663628224508319209966918835963855875954408033635949999532291500593841932646412764222101289242874343191250396551209354973884592938465103249378063490099278462649480336207206836026414967136480012642733440681061549710972637619682770713709148308044787365609315720906673123765312303950859635659741511951964064568561912452805521262865216384657863530932877354814078883602690356422123708163234257042603842809253928133974615418330902889598672631223221219619113746166213343946723590242835885626616138355307265640394280079557765522709380973822881890733853200111294453348479376459997504025401335027492125396941407326021532330133346139757742911406100075264420893809534606269915125388416334311869173957530670063141471052075664605925187122989926679196829413260048762734721959666431484178319993227924056494700368661483061260477681720737391750778043831269190206133880281069404881019419909603119929502106145075530000701794065286824643957264168894850373113206572715432890698459959868067849155737762305795392638484863531924155158509809866587105010350679618406580573378454429851046032443337438819349048270018160855757907364655510651282554424359466249161401410940734758457438506329280292656727764720034739775988196127818928562417217646751908553145600957977545426702091322854440535686704091387583643057735579101964653603862943717535101558438032965853940385906635186784226031904980997447285909726807070371873713144527506824319029003688675834030835541761694012106920735768435489126589584398641933622095750643125938782477774274737506526929259827276479018675835669949554165981123992058515970364543752128220034677897328701232362841036903672540067064284046148925969683707568481288525801209004505401625391160798636239726148700034051459338533662306510940455643177316021363961096762888259252872026292856107738507564759251509383530855222340752639093065573893557477553741309459746648135471263369654883467915366811894391994353884708135689592165910242718605884010988715897965224832879108495365898150385442979664050246373197634829355049940358352785937453316260125186290101740146131887403688057291278935373688616206507157979622768874126462324091572168920726164547930169350095201948643406593038876842584930740127039510337781905175372765140217366904093910254675146979296352496326543335463122284219431844426097445404973520596605914472283797825269056480863964723409385567661816312149365200144172779291255037765787093908994825376665680716653378610176397158809156456703123290521126896631020921331957571749098566248023099693733746249136050965852286303690837526788116056253599999670562925553944197162143328390606879417433785535398100314046907975137261577279327371774704979759739815209574525153861363026042004079047484089808491639063084224437100635204392017737317471452236975671137714510478163409342096691427247538797528750970743542164236681389139698382729676835378601895890493170401035856267862198251173559320986270773687001732111662321794517447709054152316152460862278248483644085667637488761330859738210396737415314659047235715472232478628764117832123405172191874686207923031429913216318171133174123494239006008560209355778390914016020503058954004434321031734052052752629578645183695962376216691239133970882438447145419201165051343090168619296129426876612947316630477653936411766971373250076878020490646204760377964157461856188912282601569554402874626010218880270956804481508005906614458800824413601447636719799860931249339050570961584252701164646704197120859879425157965113284605953440300690587466414489064126739713317481723352527538998043879128664244744186957498290774656799581643844302342491008831642427960819290589704034513271035508375914265104313232901920809809596428597040385167336054920058039048364110440892881909522653973614304049889043542578467474540492546226267431881412663323181674026496549969242353753833377210973702479221075103963238280289539768354877104521224290528898173202088745594517832105616204763335433196509839489504644649601300472836919370110150323306110332628316081686172734545904895148975259916747018733330552053841623544491154371438210462604582614330130034185725642008748291795834420361134250617076248061938331058694058114613918694892068338776220445471898030352819257951830166508803909544165533010835729708023403585515050456554554269033868038075197908358238746910358944172441067825471573266561946849930390050901448938017549292524601005894740390646087722226746865872248010981061806911959990135023764242443941071246467156474079045923097302756090375966108290828194366375263858032639537343445832462218674703974710131502029492736130565999732903123798595127993161847489110743276196560564668642413155096056654485885687354593906047763295502699143537052433280128147818542522132666329265517334033340875585131224407153595468218560110703945134898685528272136703839997078295797378199021753308427783845365653733066073928926485668479299560640179069590870132536510108296737137604807206288101477459118073902470457388897587900546196962636105341037370154101181902689392002873251730658872803477791002360357318151696613238635009029970875299141711442777281293637585152083735483087807438547178200571297485826407765230016397442230691676455588704355422659174357372318265167572147778647153946230911396440813293799447454557656540585289389816055607905492598781057727597215689342807751715960814230202852975033573802314297443625071583646019461522793218279389880068594166651157844131157226556539292744776847877794161769788100663063357438555065777979910259765096840597359430341388275034049743876434843137775866545005872671362879443229141330921741938243838214281312316679810199578553781178619893462792125980788281570276153128516457776949368406927885630695401418187498898299823389632122870903242563491589535870833769340951937963333031660846017161406203789262857839940402219455469563538569300836271592513532258936060879288015301997618834686771398056366354139896495367944708026851285886378409559008685162344425757725555248005039527438323186594530709049034176477384877112061056897598148925502773593375007292923031902991325538611291219177037145707024040755377712027341343072804907882429768304085272684229155782121209017907681230122701146109576308190557782717230648332037352458386693741775925941945542800746037794900741968754787765834937502881352510996428953657982152989876376762186773742414761404311561189385064046392211560381475086889828475025458353850757883413940763276033717960355031748672369140666057617020914938426612216108133020175923868171735959589002026195318049535954877076336347643536915225060551317369460748090614667112758781453476486621849095565035738410913388232471218409797315119794004448704172078084783573104323658521143520495350142912952156541207851995020800095706413659725700760110565983459574734117943442955100517672329874710764445232370951039701909714258098285634788514468421818619844610445938439656623084846621289032140497350575863055231089090246360079055861518759359661577091091724767051577233093149999080987281274427865270601158180053538106453799534507325762802237830569884127879875009748505558671736547546306249899607093415335906653348988359559610693142900893027796872369866830149955599453021508055455544594593784187734586488889335569602880280477438612196519744634972330561814952429648911257232567011743828534483090670047385341210203223938333346627164152123512710468621287909231507258644144722423798567487393511006191605647955542467095943625403911560091232428726060259058233982678568505546304757425143794265711616873223397327357151913159487857602713294077296223633500928362085230864371297754962921579484614565527200526613048561362977908592304251960553495446004383399423436197283065997555003740423180973262222607324836544701957739214630836128244090343956927257605116090265669720582652692947345021891320922978115213816468792750966969035747141063032899694858990763125205061699149210038309322917544850805309692548788669016470867732176066806681114856236552436944415176772214617682450842743809476920893481687649420178469006678589112441001486668810088922652434571653769100536639885632502057126089602399418109489967760402127731602151551569353266825456963512881054289647888800953027816466753340186704498839172404893839545533679318076217112853600525789071057925327242047013307225877133570311422292693874329012233078152380668674598430655747718054955030976310979807527022955253462369814079864174428179164207899691164739609729793454794000043294938272454541049219465991428785450772952884442435310979962369452192997816139811759368637337227873384057278927628710158645846359962495976183075686440622899768266500679192165254991527567518940300249761672503677508622076069724507873204713790463977202968287850192277544663565008757920894476371853493700644781044106819305953700099749360641693967337946331959756597411024713583693419066702063678214948362187037226647171492730141609633936203331405371613491341141628094462012598133119479778917638695818954098342465598390839214334164213620969487910457662082568758566161879752490434656323509928747376196879254589142584951141707927263594626805829139128670928925614100790222720230146333422943127368655165563359344558419644897355977376294818382780754993387595909059436813165011329383824338361314470787640964818527133438671116800542335450497815043662916224718615809014607112824134196934557588553957146205744869502161124160506776680186393299754798718435124081524438594512462074555386503846859073975564672221941119319851772414223072469838228591392961864991939201758362850941583460423118726087053249279085811390427054041797708420826138420953055739869566282561079151068420936201735257547063971409606743782742684454753140139164740655847532272226137206155413755789080069932479173212184707798116826488906884507858642254547224674217916047919616894520651688531934544314832834354162552304573526448661151412587294423276729356834937668207744127111500950183118307112563606781297446773168257548664335314098803797928031058173642564943863068001000852049352941658961035034465354926051973177040744717649464772710787349172445264405615793206737600060053258498938129122264609930699493666889388586458725216722767606803279951121293915107374326024616057576576119586238556179861395634880041798014875644582762460943902851612840900981157694196544425344718670493926806982583448178332193575171182162755845930636642611884726984113921411396201826758186897281504343668999144951323702783809007435205223396178122405418518566841630444548278650557030553290385122239116278095707357055378091993786819662714818749846487842909479014415909542407254463637557381040598001843992294638148338833906594857846955891641325141298700669359491301182223329066839490403310279963347689590478906744338841277870036242472675127757569654992695717002367669440675073906133633236175462939273659194774964435447392486332521636874878924732433550686134767036124289216175128403643468124218644673036891777520689879338149444812599968973119913195397411435945255942863119497593143588064962553302947676806596120172781938330911013898167046647379844899610433021957634224841961531826693833810617187428379224005906416131584771495574532038998551799763203597153512788027827284799001185059549203894581487926810798221569011640807146222805449136447188306432527088868276924825101543781846531169592125064795162595408067456026116224897459432173578756951417700699548002769123981107143100204945252103146793639072058673366092143636580391517593033427013108601160403265672450675498034790797703788458997059835785090156129259445871572573862067227375326937640115752934326396825546101095363362938574715944711394923703450755661242512814390307685806281678073701169975516242870861932210769931455055869312750674927254563110410572321665836913560434492449359760380018843883251310166139517272228108058325749924671915812459193230677634262980035856549198687447340559569301592691116570332139799101917307773752603277047464163898620893174512449154010085800867237114619588134294851305696831170308440345740671583380365667112444358768502419603364989562144149722812130750837331034035864363018156802978849167227688028824126403391622091435301597840557033570280359753465185224996258672113635485538091707727753582786155650675129079880136152808042387122595408287646691539549481626221692470234619020170148002768724922801692217290793555556654535552205139968267793838261694335242505218507929464323915852565159004810699333128194266127250905543134225896475887961402836482171496313192230549678792870834827013546187564153721007938432373567109761354406246409845332995467249872606733048408200358233841849262539821843849398920008478944707975096851465049754130938092045881036756510333991934201084418730666176699979308786843411669681016475195294338282596945462895098634331735882338795539002291100578929979537926851702330656792672377621514849150134802326711860836542299324420856514109129822504680084702212893222779755525110633889434782890213622449645908419943728869831826026968223843052756725297693552881345739762128809328392515034046673761558357273762002637358040219902211863270330898570846626769237584242582416290033307612079355997091401053990708447219741128785452320125090187666508315602069559467815989516309855067828051335244608580505673329975243019566623871498049295945075203639042918611069839841798260914254690169834828445258024086850025902402441554798742691111284748533509556393809376502443704570417417894603234915169003144066011068310511218579847786530257368394536794444496112688736790309418716155691569275568145239607016985751747097083340711612619371777402030292057269503514250094749869690961128352729656539784165511909330981060125050543717354720502018191042800353173237161998763806316514506569803966436686085648037990078198470859061716894616686770645783423563492628964782575454811198963017373028627827646922464629000767088778147568514485776598339204729057956232680871400089527289647255434648455285156909504701420012600137282634542337193734462460057403862629819339940932654956836012892270655933372621962858811802014499444570580264313917542922116006037998565106426570700259285358114243551777376199512701193117795320551311237409570285093185432946017840400363245835891560309330289119626411594668899383091355398930741811500279028383335727332934712004275978233200637389489621893493293235393247431380623498018792841919529449565270480724831953814543633425663159730620134580315201474417139587039305769865012911215955750966326911926915439278268470918212729713425245797580024475836789152270848450796616749459469841523139742765303539526807655428548033391041444803497859485790208491371355332840381887275960168750686190623634907578098094982532231571082126685778332784388569274595859409228308731569893538509332696976682177416389607339184026363738076433325484570905136087787433782587686384533352683163546496776710609224220106962776550236956825225270500634910218759366012695611381946259468204052672436116136601221329422968519101320794521621674210348728963858212430495203468652238797233666422365162468931956472767613200019235128669921290926918696749933886434597430650577269385771569281114851031326187161007257235789135931331095578019364810745467744951743977763453354535857559367628171864521983395712271912725097683037708048915508985938056412731636598671695156470960028731069707362538433613961531031554111173658864999016530657700212619929504991542267842617870684706599204189575068022294321729862634556689203688638380692121968625478122368809803938610670978465776074601213896576479461547845881039269483020018474085470063882660838216414074736842027270664880641122025293117778098658105611781613287189658402955747939287380548094596705142764634756403892291023526777011056041057705062564743357739405682207774447040684128353755467413982349314155500998908132905541125506388924337887701205837639386149266598636437283421419799540098420153440456814273565543286018765763396191151704276960218205341782717986590964572352954074597685054166847104913049538213987796892190690566897163935363571118323550162319921218336637213491460255509326682600501163517086322033446032629867928919374307809317157801918885025851932248488888483068085191471593051771440453442236015464272965111675894599521174985981908975571272833731127956656655351339742061116593136437746175980200001893344529114383949430693137585393117475993786650389535765517844562358304032979213273290663999460156389803809540187174965014699637286962369320030224194579605494609498173224735933835825770020317504050768015705422973835848567795335269585759226973228132473733580716726184570103799500515677569215586496649249981018361789606226341489737016431247989591086116493385266730101581731151819364343602350284620468238049370818609724141985965531045465471258070478820199493768054539192471750092127434899769847923236403597792867601207440828001397736354353024384324189926837042990051411270509261642656706479216815541418723778767043244022934959596872300721627416171955992941702702184244629813368847147646567062757200195453192879906461541161293897446417989013407803916063823200430388447094245862895623173710320839726085589508316987297727305814431193203740150448645162546415890674660416245032664315589849939375131083519896788235448936976446505348592310130632588279971971828133796250924741546420864073263451710475951704872391501699028921971140553504431505317644457553405870817940055340206297646376344615724319257012150637853947049861245721499489970639618387169323889523829238519944744039893833724803479307056004594100513201763973468882654136961357549352206399891038382212879638252701987484235195586523066882732348203867517243473554060689996160964113645931564992433415785427778274493347052156002070893489468336266933519799982062325377793321558976874237806514708550671328333775440932860365205471959012469993378505093717126990896726921193445388424431272972057297547324783877207727095568101433246221029855722871188725575764849755780234655028846642333978652201058633504516276547173747828862713479463047254988899944740658618134875384026805462956566915922580820679783773384028726820820498574538984193371600723802476115466432806200014466376717797883472726299699796383749851648627370435666191166216899719301920922641023788708660553758917575017010433771001252140142461215554570770788157844812070230849532004855275775957065151999581327298054554706940134169078621744241174087738712311412515089179786269274490126254523173816666497280685585682657969828712226011620612231066332548431460121447843276955076123257874135539084369334639188548440960021838600210925899313849050150855215700673715215755604472623580282885468292499440819694439137144504819322790455008863543762162787443212097618060390875118974620069992400921736767099900386767132595433721883658982515779002617691273873386542102099959349340873516410168552723819413675089824699663292367887942817869777532135709046990606157967555036617552275109063316890804997047233097766709875769468788266398110872996267838912419458628630227053004065943409431677054783841448776014811374504565819112030896425937154334897535698804235024090493818001793394543326671024369755292891746558837832090524449058269672117248374885180376884299693050475473951028512847696630785559365635500959100071340339721394761078219764168915225866130280329975990132129981407943581122184344099658886171582597233306081199354624132846446932965321056112196971293764301611218015752486798796779773235300627083882975267885020079864136130718368402989483431593973732643281302713934360806402170691243314656773942602211737698812380931017310498462187427771098993499180384659295621639261860844499654072864323215864557186628314774318580618756962726577879639371746029519409456805382051152356372727360990318269664396488565488542932323071111298393473648813380814857562210321109706352515055538705510926713635166069271172147882721713490121566727898162406950964767698332600741488413392227895264415577336639798417937246832573803490698499339074195538628421116001416094345781445213420812023037180733154838825007828854162977504722204644638870251022339591703993306114940401243647907132701456853293787493174841330646863565493853834782504930732357699138064039608045506658712864887133842562893867560089890771280772511235327404778747833861584407430380197254984336845118428219381725649532368597610882331703072607036140630446093630458447298285135810476214199010166796185691722057072547986421210681533211076135433605180150236911875184538658092690205578106723021007466758348319346268858472147036240660726448333483170554110780432949701413280126076593821470637250259935806795534940510466483538030971291089402879591553914092824842169482496916274738242569081308719970027739176677326148911779377935845513264212028123944909298908215060013841089793968928017364245314914455024523772446087564717783613736569624737349386157171707429920426144812086059736579158012188389531767479353189590939328669861309512585745379470465849227452980224256319535501937759200627625255752211305749685762761849560340138315335718337098736426817025210181226043224154309216957557605657185218071328364595760789271272429203587749463659460079971046886608773743105005304370807129378622006612193539543816494056660965857681180681774656017574639460431295574055951942510033806362684510114368505302611412689389828982292807794331788529012205678638306452521492090214567667722492632151579354453715471079643696056964811116840182333960521142509236555612242147026106649196219623336172832511065358795636807340274883372152186513546103669710936500705280050981504111287078417618933930344659535624322127592592397053599516609514195325030348336236462995608157436002539670465687155191374116955556688709410937853030718867203447869115346450821006129973374244141424165886449104949276591660443329232044574020269633635485499888062868192019255452865474263609262306111057966195749056523005431517608614078395698601393005023214849758211979896367653628547627564703971770929603522327224130426240887997810687946414638049714413786635238034035290911419091899224908427231404379623251693442013122601348734173133249115892178591987772891869130982331386802335737781072425018579913761196028564670848683088840418858878886196570574444933045780338812218999845196772900936248167912498812171517203528755739670937933941831357821005192368716679434704000302480129448735224783639286588943725026220919427129898335285253051143454923995419389682539754539710947976365949722614631058517941712129676440606607869343963623904403396940950186404763502747520443024859966042110523940508681805575529829426707928940460018807838476901720981677654801236664025343506796523373386903064740939609843432230895542907787223233971891507812814399872361729545172473927636248835772554305637289635456421081828237033998822667448389552360908665057725386524891749477066385391621692070996894228032311778577614781810878317238637326021245623119327058005269196613699228969159474558360083345660619089013657501308059933408530556696304472029654946508704158295496287810494026407943247865132973147073284025838077769169288023445421872946374656196354874214664464158568536735297009269500274148478741673453490079614107407237475315941682027513058766633983427446259255422224527865612825215910353438946001734522505022301067204134277750985482121408402661321160107955392422115189228295139562542964934724827245789007325117190050276429420087358402026894969798008294714626282540321337070757602454139611367555193378825302368974055759929425965836669342868866496591430070931341965360341744589168701401652363554311693712086613803500417021202021490158103906466062087073325234128262497178160664108134424267412366441479758353111015683312487029795454694379639394983106043059583635805075757992982024816512555779626526464964074121687658795416358927611887796285258738453482116914587092776272405431191059380039810048491339329682665554607296467657740217277040168240301396976282492118321018018557687144466773459764368355274807365561801706182502787401571927842722147138181437861898714696653165680959782449330136534918518514064252147915789753177535730832713029131308620636477247261804352290150177509249345295060337708190428362100267388916327649696258495228322125863261238175411432319171437364653452633306800657808788784243697453077622305437971185400712772100997232335886055232520544666052500681159005437388666528626197571748230989288004119467155411776140105336670416352556043420039897160319458852985641631802828118987651522255294948376125035337215447760813697610070708732152997130268540707650691745162424000250576450771711863986102860996228651493941840498480198512635816617835557982375874855284861748711362475791180572510531523664335130818634868526967602754865388917045278615602642814673939831046322144014205507395769267375184787804213026225621810026576368492787863692956812098054592197934772031203136265581281953649074138236134487759592839864760280725773748006924194729198666010702091946747654178577102960776692607428750705662422388091482198653346783254405481763525308069042493946472593956507904037854270823540998850449457299400036815494520136656500343822823587309502695829754812693678564797930732330490079621952532479266944687809083567034880587392180538932624946196831421770027661641196790513461135785118152135436730016894172898355998723001735291303546520094334876314604510756772546465030318542290506290981209375065856504419017649671597963262754234744167101994531627481648914737025196271394361628431872924981525101147449832231341433238780298304118134492967831952256083092578393239980285786744432059931820510304970112276569895433751250149475297882418421008323005702618999692420538324402360840948668928839152723801032733232354454974715386042440755018587604726715155367714728096715227315831378938822798283668785728460322437404514308971815685738059734996503133493597878029997003838427319226208124291537910520887963769473009733748268627543062546026098067329297461010535925119306051952571413391158765439312196277078022888487185501209456237202786973704215430541384468409210631310281139923224562165765307602125956163859843613184692985166101333019030630740420318721450787689549368224127663269740169248479573715713141931789086602957294127680052172391188505555039233129485244307695176456043315905450188131156618166165751872310502989578647171290156924116978679969075813980188416834089981799316982715560120251077374554515095873300049529852525458823440726036119161457940354260379214220148630180504480474525634368066173873972223862139511778961899931728092041042338281070253464600907775955392712209656659449111702250445469005400777814765228112609349027133390255897066787967068182043541237370822822865322611947429961436165504723196353717230079851553974612525206965254443961970175951057125676741500615455753390161944373922939804217978873454902683206754606596491633541591479281694021711590936559622667537173961616201327526835433412917268550651028861759452882602692334469184724225921648857568684454226834944749504576245599149646578962130410613564756999900142301350658440466515053883000279279643384763520792860205185558649133143615361663710924007926860789467820083279101925220945319718595893744938584686159458903019519649557682316478775511381124195649158023063587688002756064338377269613812607047104983660728084837046613663726404138849665901694563131486028008114873510661950751582253426424230383296224366539015669585519033025866703018849170377404690734949657421729204591232233622052063189628910465003850368834508812740916766979307800961685973557836025447488252054145566876913367924871450586222194687147197820790166370379553869860576052787286030282603829054466241243083115924457955375956674397770379674837508318358728402646500471162148996600980717523785552905154211760748249804712922999233997446743810056898916553023529525749993289789060739632479856965504516704480167388056538222535032088428092697416744029115799512901237128123261414894098018157842698709184579696682777536611611821535089466882479666449915514489590353433067307903565783294506064318009671966300306646790442657378065535273427772723959847630030388747979847983759424275744488243406916048566243791780114645104037157976997135364825924187191656574427271752785276604179065323316254588848769786129485730188009972022647788652797407976183863222119923772648203790710759256796027534379968756334240910384544611496745569893074308484978711862589827092299409238874367533611432029181182463323247834134776844566530602511526837658868997932765248536304489114222746411360926227267871544665098713606433941523943631311480661622959318602561442524103841498572424431162471194878367882851318068791775521396205219273065579149054258821690920522792491320742378080698830092890358357501273035268954037578650645393568904941935422092935401483788323128592133220089947757179566568175055733664251503459013928781962630930172224394635565296015873836413649600057872332901010168763519922506596598922762407311046288731119678374914973439162495407916904425470327266730078174375442272669350960293061479983890575738892326555545215265851842264658679863116280717222859249536230698465482284349300119207732094062234431124947410460369276333576592475951840875419477629177126210993691076691716329767753277543489232703747241091060347779912374646377717725062894293059565270231274828151630543614481508309928460095658606089928881773002006000699978471742756995272853451212523979172380047093239621328984800979297017806073179464237836015676467439150528705015405199216353187476682379992563306619690717841804559671874870325392586610768575602511440208006066180308173388356762308280944856570273419967295319159987956198964998673810428984759672941214632730861124824556596902270677210496529729279486915412583380496060618140703150544532915234048837150211599247666277063629159544901193045638006671384056449531622270178428110074602667052124606745947238793566694149591507365857729386190143727122819293282190738906220776231052528367204436738725279403358003911852787427036530906142307656301695789610877761653269762769721181140795592489722786509681739343977571466564404655694722884181995481752464384677866714962479732525790667695257571673803155115838278680171455839991835811362604884393969684947915411243395356318328068330296324949146463338397398060218506474830042969076758229281730361399378607821020063605756056707047416520777459159754479363694622387732010715232227419787352830176506004622016286518892181143104465567736823694785202771543752630945711351189597695068766319303670922490049495387222578758843943866993606284252315550633618248674866389418636181912513499727873839301509793047772899761281272660712110431454057899358061483462590863260050455009346071055227902312156020616667114441254165945306280376111842550485116247960141518312064642280533829812975509350913963770451640430440062722002131811059476385666830837520569584364487993016334401539542229053006830566531649451000506612088308210079144042263165859145737148597566135209974606101213107538437182359695895685365440794927195747504014236832230582467622462605596127207095426461397644962621896760780399778198840633389773550006795494040941641771598077456275355126591702694004879017533398842482122071512545279475470141871533942248021238596864591190967863731952774142619153936783119953160977524375384417314715614171466565954358199645691996534951519944599471700066902106924006020005103942325704284051205732410827767602740984512841956295676826191951119854178990949735208436781109335582048074717138309558019290369533317287305384939867294393365229885798641688272300784652376919283432174246786114063600182996565427115295039471987334529241171093159135115910004847249338288079849829157052738122624903705989041401390838546309758406150263041632492524849421349326866179574671771859480458817186961388218122211407019349457084691717129341851854598979648985972211845245365604830346119453273684867617839336636108887269200852017022218284127093043230718493197193094780809537096567494760698459525762690684052786940015608314561880628184586697737749152165174590428487204166200117762182286837381654195667640042430442164404301929799925003050082783852115120099669482247233972284763627528302815433103672584114408909268404512446267904149279934051639708997177883219458799010499624194179364463963967394679429655249703873989901205673837869848837137662173919995610660507980483038695695015282661435733795455086876996390085096227689364153472402821044331223958054272586494022942374711880218691345251882842209638965877137470861191005325387207391378094098247092074470927712657896985056232929006260761417625017049291104259111945933124530527743004146656738834398338980765708564344005971269659644337047254694784729029589282627532182019007490133127320504279139100663813644074994662959018526392998489059153865728034448132768477461046907904624384208160291535728384409336181109827958385876803808831497859811965965980628432689396606654039319794907737375535452382799544984228290089134359355733342462731263411184606377784824510955656148029810169578416828382160266585146815335271325483884518074030505215129629291059082366666969895541853677224470976897702090236083396525034837504355575101976408700444308036683993803845554729920499841835662253430977177404892820252292613962122820192938439188541084614083500955728410625182863247073677677031633819433216949531270211820851342052567170394598854472854457332698145788092217704224689514198127395056777426724925040383732930644136131733371900861387183754592743137834515693111527298439941168373203548695375049041341204912867951945121298275959270525677918003326551451821990277879204638766676736198615357915724503168503730045530677204981209674640671468784507557033976512057617343571721351019884164769055423593151411897580243582725270009986523573273993887972165771174792021712612474461091103946023955925150658217046805186804332013447553416047890541320299594387117490741150233965242586758107077357970117622851753013922094953715247299096098878734000855231563884309558438235681687982577995764863792434874069052511428514103609555436534888972855191217466326526229326679633562307140571347697813727831523259405039014501046428678750229437602237073615612492304809697484320506975851276478303831378959042499936648578943469279899840234360269540509328488875872107294648316817419560991577064490393211644755187487634925663687193013706013649055109727079026846963934377388795819568637197311738280724324208926494318141761720182124412555242223874264805532054526041891498969356624756973408853241177594338582010587881420522577122246813518710472478638453893981277803547390826208141938198506831640845807083414257685197965387822792462072318299083155315369294452348575640448202591692861726937037707663119357153723260508984819526248682100427370409278257437736139593678340763261342428178220231970187271861501488778930246743284797542056721032072177701708563921596442290872525196781424137418118373598275474106505489091666782994463881188732338759094935241069236491555857090441668716971497605342093172212889696128925276880628292547525151689714011438256046335708498577741419111085184337274562844051033931539535055231739087258833681141647540105900720849150745611230515286015990713098602801448566723989493946268703030309163432749888733711697093050770351719413402468255808027126147342740665646612396381416450562221784694304445991340764013951137327803296971213313397817143816088737523726394548343078962669191057775591620971790905387751029028336691981998227432950636399673529185404337069306791143208416727617539168123346876778233367362673835190266276886704815477014908502860486254044133161617202916773613190170349453963360968289330845293389825659128353463092823396692511948445662130714475562945848018869604652010895604865055771592043811870217212686231219429970037643443930297545689267879770825171038647775335870221157952719420654483304987630500128062967323400030943622321055768176099549854461867537949702548453804596115822088615216383601118991807160714156003925359046915769646756805604459722597877686146170655714812780406534622811366255868463847293914766254197075773669858245715120195950656506895648897583620618842422395500165505049940241423035399021053987110267530166588564339890033781253377951506220699794275428590681862378067190451933141430836760408453344144326370442637250345829094945890099855401675737331352533145422305285073027801242946778452999234063965701549435713905171656879414906306568743508487228014584595919730245504219701546703936197673841633808567133239436866606688195435395138780415411729019838654891497140817139459538492878954292528969578446707720905139287151938054434934341695073678787783743490352594692527519304643874055592752740032085239961809786114824588400703422683254599457926479181682872486626108469402413995029010297053600872694087330317923144713010834548407085931740277258737882894235104772163482535946902174410561255754773926460577283185675584860458867001858939288032453041449394614891596481904347634676832940421500313883773720852965722804363949663307244405270538654272588452740884907163964419178403667941192162481570064330483972991857389619197622239298843647126432624636376781770335668178072104479894956083390823507476013677722714659141809713944941007623139414211421447895988993401196664170745556502044413051813884604729688001793325754965739205642710734406623380165401457149471707372812292452776773251870852832449519670090383946554802605169895744745842503629344754849861794051554294824124840014656797734869092290463896175060540980298464073199896992845952469063484260547052164153268416948893710851941621891259164497571999649728730608951345508945440699875586615422303372375976971882609477429700741751635960191889334534182888706064970229845294969575476294786234482567287776967688034777291054244317086826634627543822495675712883585069052734599852998112002724380089926741166322723073681686378518195981166649343757214010752721813350028548834680683122948301897765316974093278946901462785716746766418268299246729690628640756071394948050247644703857727977504411548795785949600288898066390052105280173266295009433901338036872601129780718402804552460128361518383615397633160307476664605660492064276717886241144339071405881581681866159200114808828355628850491338401200342488296253299997924296029337125292692748684866127943970942460961179250729461252732569059962869597013123045577000538492025285511555145595850676444741539206930200077123266765545016449868406586763781056748755560703824352538103947199179281345761155246046414247353693946112840918188195555869154343505467969292235720568138223925332980198026839666730391275912932119327183232159784846167202914611804333710778315179603783533938981473832965103372624141825168493365436792681022682705763393281602377798389767740891161781335461023632015243478723840654197064385541186300834057006296554582129552860800587992272915327565773634224224002464309980153316721020259235374516664894464614301100804734077997992023621691185870899310676656074544918032854322172685062622465076454189162520549442182639792409589155655786491584224460256359692112597005604915001696224976646120613923936293953152618816288383910508554232896868445955064274623430873941410521229263499434489732896046586871959165235498111364104258598216959055559743530641391435165514980331774681703693743108881567788329388944702286462328876176863124501158571675744832312093467541342448446747209601813936797306062358561317916428464714204597023669145207942327621899404162025455689385610296592509345030584632263972120553256065759478686624945941159505064859383485304046071119448521021034600425220712044022230997248010728187401737948274867987365647047235161998005211789893103948583563621493141429679992639495521130009268238063521060556618079180791495952935633292799421102975518017984201763334139594586225318078282327444007754543143887808576060892476004235104036733142932713652410349824464387033862953371116619346303943209343275222189891149907090659155881909695873461449818977207497805663579242979083729298086783062766901927077230494331908015899634256578832430169602640037229997805222592708664414291380778020956848543593262136728488252676948704199291901685296561854234456108936105211892859628568804566330250266973586555933057475248569097860400645713453324077479338713129081963582430426828426189705290881168388480996624378007295137185670423223626381243397554332681508103843435937620520721701601798298587362781037334683676348889629641967852866296601081060553199084753015310441778060803617518810724955618450339766037756660354414489904944384344079442752621421067002415842327759363247744405413933631110170435005996518211224928621199895991463543056227287211740172194370832925502499824840786667708031584629469055646082689235296335161842699206154818890371485713960352439361727789541116879525193850030350440266721422176714094338026775736744610383233248725428785362861382948469255310226152420203373037531108676653468649977498070471106550875480157637628664047659373030805920621493441475970755307350425743562240568591334666146786609107912331314898277408366272350292662518533353667099275811795349194201442374340754690834776698690198235050141232781571244288447772500166134201240089838423826462344414316676710859107162961830802707982307303179100099365400741340140000408073822945085737303633050016455693772846992801591941467049985901796824942123548890946377622046042222966616913233032190751035998364492436807802941548334672442875868803666056686774434335502390603652020571840297256678485499968156253231053291118524799391234044123280823911554970893417327072949759408337326878134623300877508336460773916014014447668937748342227247749456035683685512613395124475733134271239212907460175093276871582704450541797738930024400328089985996478856783091785072627170671549169162524807939617064452591267280523193061027296894680749396913015341139624326252858771963747939518555981243848561364437276878401510278675609969851934942028948436221134872073676975512513335231905346103982269730614263451372635975983723322619235833064617512235671766311648392783181527315795287539004454369021495222327916407655768565992903882549706609269569568363458207067247557603893420459694626574482415869374702175463452103170251721485394809999202067721385033013219804827243955579076635752073075387454640348785832131677184895545277818687525898610521192230496504539955866322002708976571134661503327947096058132102665518274102600103178107575572937687520011782894612306288447178571637155899064504325207905913378479832086142511289848642893884607353971711382249281309413669923842789910844606918891926881181539035068200646621620170419323673152553972684907098950463240665062710288926811793597677916952832083952845264413552274603254598999071045798076212431288915129291690817622489400674894705384698337063533860250969731097908390533014591079833768630770862022487736588128138307498003438883975997100741614106619002703362322321570719921280327528966964669749336731620241585976788280999245513678224782105824770397785840034906847683538184858690912610231133250110735903298899914609290620485225689321053065074472276279945679525431894666235602646586126413103671918240843360253814638451159405933310232878566557447375705844272101283619138202497331028128938388887643724597215584390021477888107576598673968348979607593707390088824209435198946137461827089788930797974931419297206487719126149082954053497224506931107895915492259776154717038261226751892607352421526011948909699272512464795078984474351758586045706193584016555602353081930965169798488266995050293990225120888030025412410256903220856660437329916128775205821868146043947884385788370634072165904873206607119184858126734618064810015737594266438169626293579252831067836568794148913793902124916837223055655693270265317911182888638489137241814867822035990912836559380508582253847885256160242088182175584459386219634575322719159680915215772023697078954032650733351774984999253104644960302199422259964536734390150348139783850980431205513214892775437330986699182172949045350076793791128921298936483414173005947102262218539151277478967444018188021347568292502086212163555338772505745130536657731361313269550682607684837213039076486347327078061280506326185472730459782151500509993821301831082325952687950152305407575772007239634793914022400843092991488312860213146179574471985062602062219562835113797414253008793881973474201582745700369376617517306318759052112530581249910808295484114733556870872683827294761104501403332067729425671847123111837676183065557043888534582500991584409526746592570841153205074793441597538814540152095739125241919810785461521296570506015152179941299504430505958596054002036470013409406562975649268406129663819008301396008161460008339201444502713912634603030401299229147886420874981913389231512307706086374808654736393724809701514206755922025943129668301313282894927303072234970881357880661909468163746583410824031687515960128557169061183707027973962168746102831090565930547595095273071074399245911670109264872943150691549062307931800997143784196758785614953454596752572115814665184580393880901201583954365201605398123992129637485632229912906883051502278155404259416824767048541751657421602764573054378718932866841511920884635263708790917895283207746432938172431236661815143113180862297901428672532865070581406578103302217259361414743437393798549006153878213206755138672846130007864676548851628813373010064683308086068413779753896686957905919684103456957358769483879190294881269353613341941824802187072315326585420508014071817157512296205931659374548167392768432912880233184379180411077882554362878473076440934317175253601224411985168229124990249287877561840468038206161436201766534698325684303838080316539165064205191263427111705012728200122017528397979712591778115713871040969410823709744241454278813419463395403580385922270720128811355640239913076275974062112555402235574668469653328406984346172094768937673640813082928228945378672252277835596524747751433655479571248125706779237827017999268636289442826877647413160561438159729167887219636598467614544724110347996005446322346539865287463768366716715560685445339871891001049282634674108059598270220500925462771318174394341613974634536652556005822398174989289779694669108682019296376940987129603514580698687608169062353327215887438825930214504652510319239788505823753864974136865355808376512966066737714308977710467632610014589056032764747886781410591319981177612399220203693268202712783331165880458793414607809509521602569754550006291430752413315188414210369226940145106622021314913364647268508426733447223915229956587015753416177239524716028190102010519374993237635841433877272531899741213202379013031985393566372740677741410195044264765119097029626249467461505586435635756048238258443859438720564030427303069657537037423004676541364280619187379990685060378554864222471091363256042817177549254480026203301473726832635531073251107436406369998677511923630883794162206446749664171768123253765245072467014447450735393657678380075141978493626092113289953403129017827352112261986454782785792223677293378821363780082422775046734093592626273095300459072819052430650170091100725239169405311983513626998455449008025442851555510942643075550540696061009370778369868426868545852182581801004445875920998177911425984217386334995707128304782339507682439281054929150208169649278576110526735115150577421738095828205012993707442807234832588717412272963100930723508340499655442391837716489216972417977771403991508336900855783959294149204788892459109068597062000062938089736368601186893562731327245009527886506034432158206420691177839981854015584386519202117974529269116624438129686871547242026786812567277078030129160765882022984053056388629015031322556833915845657697870577980533335229106258260979266073494880987326702223544931105332703167210203591232062126117110190459474372684666725823175795832963452429302605358622532709744727934766690671251630520487487872969043165778162811997000704480502036049023305332377526924420940153386684379529249797035681737621178246106015258719164352469461715365269271069685305553324338527395873425882822301397036449135672927603654604296650717794300398760211021084471861837990734974005680528367568169755893194945312324079298979081270353929596101057597323501097888200760260678052920900307513582619916473366042341452085105228691203715807833760245229514601668664819224675665470964386797637224266240536846559462558547301845135667519289782171266158521913601547527373455036978404279643277237613118654634366303200233947003920019082244575050528342434817152780152651836120165703428320065447858567707238202463244790391207779007408233565023957365958795809058051025479209674410157218285280869896480763188649915860218167530469101755745957640772432959044518500311507042121214755382111966885768905587505607015504801105591136174444677344765168118813253526454419041692291676468675169643303639050194567778850439214544485448754820060662992725295513439759073212778993931365265333771780435680445812588246720001075125335047430606279509838619147997283022813312275186633581109524979367968577435103437949399271016149592391589142534949358300636053919392182404231740419903864254683790270088182012545918869963699803494384013621885544093363657398121746277088274357232107329028187644190981551996893017699857804976781138902755028092077004795481060545064626846986320909025084272215049144376548518730731763463740165026830727561960371342010972863960698861710339432506965002015450966746506300360239555130154804524737561848002273056961890047388962224685170473449687326512863597198242912658685380113140375484657921154826537130586505920436220999182199620143305445870392134154750952106995114866710776071524133991843128842484551712509909083640218297588303036850196169297209467244047055972346384391275063360499800637875323724220811807469488107401481725426976661294888645303180037850728934413532434999623104283915109930945994989051362896473597630787298926673716174751444925801698880836327184146305641558495812028437941411520052810410861718795249687781641879511158070653262659363610266094079327343478411055606453403206592683740679029002215809622601485432654731440635084421995597556804226404391279335411722533393645889794985414034272747772529411128508576571121882677656469504106036495333301735302266002924996247040860151745605689076898647133129504244020191345873440166800803805644740106334625004236670325201006512221894466199744293615276239915053345405596586540827202329719399230335914637052882272375443393668456941309957408454837821292009183668456424549655948534385395510260596345304381619569605580968129852918257604398487618533341984446708306774954153121301572869118550128923771695354787568690080052590524078975918513563213406711251106594423242515855995399686188904494096996862957883630719048788293793725105453091821614857590692351489191490286992332600841831397792484066376483816004460087638512207548181260947160086369985249912375835426172810214241119179993632522310656342248878854275813163497952458859503103560872168687700305215951578314354438119919069536334008149227445124943360531919444794871328485778344884698653644225574759179863486517852668808451166418423130644699172390149355167254440723000592876406827867790768584015174906887507029568734003221680255916910959279226460750866519733455036801375008563675794245655555512049970900819685671395693126411171231899605849035381434668425547011080475068034664994767195107540164797883839378260148774915736107704078636179686863631024324929988045431464852173259884323998287630239517979926641580601941004978626874212018678433518765489880172631480485505270154221100206057167849267465164543551337947954639339938662892806160967692613626098959526727817257599518292368805702023628520863246227451737022586695241348021790100882772432969042271621455609511701760974945586354855618765976199284095215433508742753501628314353275061727003397555164124260254512891572993586053102014646947806589625422044321701395479186113805298457786278462342688934941124252935254700135581355914616633450097368945752027927468009578117804798475212414923044899131083358512551719784771429136687003426897196947226496329729289330180502097167481335770594296456573814455397911388163849484332828447931828735844557282743100800322518717450290526772279498141356399201149710624562123406544113495844309401887211419573580284080303950137601353726233737690202920785341726252654742280601133283975490914197385295700803947840858427916765754435960413593031732123450277663464688283951493921982658211627292788594052452639606328211808871412554350385461051686227611208371208062765106311428487677687435817662849606488211166597165231586882621121008086447652832365523108699192368901411921865446610658424648619860684156934230265547147448140716924064091805229177051567211368409020974663450361838156453319126948857993457296133581354697139970674974614584941939769796227500381271642029460906874645792800750094797830018302926610601437088634954873205988069671042659404024636470837047140512941278098084568185908469842616998287518603380739342052782917293547971318179782787371803564191888604909900425638622711537406142352540735341073543156862799538029225384790466004316063889607800419931595186475597207111174381261037549081465970462345076138150961457628550089362002860427580229204430314972087770243510394532705672861216502850702379246169360907002196336247105853824759726060219267487544887902189490669495647133845524953429291322930461045081345896992714241095855528733497369810674292028373529886331972146202586787522777456165511238178063513330928752367305079731850651914638146854264218271298096861762899644580468906447704416103797690235210161497989807357201698354707729256949122548252377085441091181869623829904131975636752952133814840373323174274766361982264202647893019348132196549102527253306324432420899636403452761029496430052199776966683143862189111630193030134711792409393977841697056564731615376572720765126389906714621792145964785925556654466734472682406370419859882799371443492058717307477443042474102337869279519971285983100891197577443925561967334652788466782691542053790363399381877990955354769392294209621090172419408002365526736084667721029878401518366600020059712653336465365586055889061468401230955617619709134367025438452813409638692243725782171977393983611474337426616067557843775621666785146102169823274799389124494040035654891053462126153261259065313626791642779202474968371247302352750690002005957169393902473927788143445719789832330311026231252748774683361851893184019812105723311156084742345216835909478528231646871734998606150026475945283520369673333279165276799726769700224334331469551128645605837611095517910541963334930261148586319171168381295471403712924037476004357900636994166260589026624054135085778807119231415911525948949098359747379122146305735818821162060825062203588676763791169316024354681280211988295001587260118743684513984929272634022102642635167793572238058569345809938887411352730311466118090916774822913486461086445447415722562196833092997766378773907662361796084004011586822043173482344513537778828398550167809217650144699438633622042527217499660224268047556675329409727277407129080845827434401022160934227606667201714699506755950307281075389935108646123215912444514756956064043184800440637770909260441672364926521340830983185008289785058660318352065956199968555189242504365995536578139582259711048139074364572160714796925774704514533566577294694039961926009899029594271275679496007261415195052897641302695876390340401724210221119606479638220124530969636344003119804996441640387873035316604455274948515784655565870464074548544589744351408474626890512386204377359452361607688616679027502115305719845264123419385351534070489121460268828767461389253119997815968138327782176359687809586213516931437650876070070568943811858297551437208397819145946918813070916893704484880207494552971781545702578449793084558291086979799344501383926749191341105897179293516843949265613276098528035324232820780422874374760100473442748111585113126740021546489372603062847360001588107402062996268890708544640060510609358351365648964439031933306243643878033677529707061556580435251919307107631404135582918244286575588789277826427381933970345375470879164867079149518842792710451421795203289783805368556280456178941064373470835598411885595985686332666048089497436291972916019429723490010195049057472894774694220255712931629184934561406672007412533180752445384173855754452307255020968523541670704404654039969014857697748677807599057412010070956734152589258464360360230901235434476921910888694411488882542238028288324764271895626513900188458887153350223434637369505611138997987055132690537129850032834382502026144806852503212570511705864628978465317485727085731679489749700013049147662197226387013464379740090902765079788777275591995025566093588813379416383449191402168533242402598435755831033835806034381208387042382237282096565760903725958649246796817645522953874422164247617515152770777491502074741308384777610276030117170755855033427669555091579497139554948228430961774085190697132433912635079963828751646333942715401961068205485348090623701169058941719068244640403326030143496487392459489298386794503746744187125693579361470378885247563758674649077509916730934038134291984403294881828067857663207823559139438528620699753239781295240234052586871535461845157339318194874381240634571372907536747939179768258454030653008230923371694867378706635318138944817255717408157735558087241609095443600423722626942806190901046051000253403484994050876891575948534416794700644480630519534181680775751908336442918330324952913741893429659328830948942395130292304456719584664151188238268804962113889784209836868093802583030464568202506800435431101074539783062538115864148900472102248837767108625559914394935973986062040294516102900336333071624545278018003903017639913195404529465748108092659556262994364015670025643703052163272568192355683637951232864882056309549296629756495614013326265156946016640979880404459172982162467927976373244731983151642445683143875546623912678482701058807257377385664002112781994060528271408448597980171216133485637713872409212316644361242222825585177219401506283504805196507189744458706896337500192609012102251961637190811471465324531741973264940591325325841655693805328235923152105371523010214495859498338953675521586032856244122383012691336709110569063808883356223997281555464038185127141754989239325697719673740610406170500456601613150093851349267857970014480364541876362879167011928130228609535962017972131738122260382478078225869050364404412096164683660643254958087789700414504780980344414188531702596747810567062735389989180443251719615863842225928643662950443612777167456603077097326806727829261900290891199815363393535419093856247492950118698254519583607113207437504320179508730361820387437882763816407096760193081173697155660181625676796418360591983902514306922506040176211336868148972002933029084647436431163795501931876843583118176627246251915328115104412603038458864346353227432907599294244759630756043409609798492851291135853994288901458322559502252924195868233938252694422458210600729116699312111270932909292081535299645847026132301731108959163537784570155131707780064285719619793765637138378148401012030127742997977557060242591789114311191277126138914934640387577978329476909045467407160088659844706655052166162593608335674788243068079261423940361508430249386168716451209691609396115577120277110330144352763254166387576845512366985039230032875854067816099117400646028115682086692424993531905091135848142028980336865298114110309148329000874196663156590805083503269691858094740845674892056560150639110423878919842718875450040194965757517766799045607658821410219312098223216581758237248516245672334814516049414547038685784556354875256816409993572657256829628963289744759154460095004483318386309355686599817224819155325525126903220792355196385811252932963422659536987264151241125690300799855194595903338288688192115161372990899261109842574269371650367187000650396123472059354929781795840718964925439163615865305155006220640519006104738601477685875547315794247008937544246178561793966153706414296563968382740624585362709975542315046124752422956936669287750407258625530369467193471765923247510246415010986636129053538235780607781653380002997964914416952893746188567242075804477813098166136852809615859979821971262762713490406523587689060920734602993310266204185158600091501181968519083117901387146885224795598305360827775871073826763202227371180751671203715688356684893153446993369541112601786628065437842943495075055026520118325320200131731675683684958773029273956732211706649265517564132387354799878913238750086956038080226359463154668897332686029681404000908697109146995985037500813926417605109791011905736575614649601315998261227781219495132612985165609310146310354533525786067344040014979379067876814216562291958038461159190055814967438724112415980104931196390240531218742279732548902563290764231716512230810510788664879117757178493604503772450430244116989206775996554304093482183668507062767723475716594113901414702522824485473166009377762088273545086960368625213452755642901930756059384950517841498845572042554815792984282961369912982064206953113152009415342041327934096204833908030025796752446867947384485458207780731384196351321949948569455061193815075408477631280058401637740034920029671064241913629892694587901161544173410184125207765958999416909486380498888905421418837379059486616299576796784176508614905256334631603429659989708686675758899271527753973354122902007366706535364624762582994075656389837013968215426708085985441317868241794631259590788715722260787071104845303773292820872376251989442995642542820554694829930725103016855541611606785742452053001472449106545389408169726927162961343254327171151552781846433482292772318615021516309680416544869205978611892114656061034271112664157245116244472979216666030999087863949389607568999126743968122826161220461301589851007259622567932954564859308695834366058887621688568158187698923079310055658081468876336434262222481950864592819029898290043818748356797012931676713434327134785947231822881982115215294221990935584416488904168184899026477202833492433692845536322323635312304009229638488188721126881915784709565263513690906238184496359235445896211168017187823636594956362331836447236273779232075230939980890240849695772830804343219127443936047491734190719073374921165011873749958370470169484908868172720138707232826309507685801451797307128129991925199885867929352595109153716455152724982193148489933274375283020997366777477142556663655227277392211593438073612873960966816072108503792657295081785507964651662322153090566865757837684342234961663849924661589265517836301523164989991961168488021033654796657660645265339471501400745760903441876988417114964462644000126235124706624987846230306009238424228654872494982523413825722322561891744967672462860146350931332533676201563700486494777042646401003514226306842776772744432445102435441702852192826442127019818220913176503117050307007445128154653631128791205355955601475960171281185242630952393450590591620590890174650622963172976006257494010658021338592876480958373032141948609503447788208378625436816301011111238203252702811980347951921614471274408484283963494285215570275591220702867438390858206257194744782210123938541084717381988840672326139711981910525595610017432882921260723844047255646843043630442800346717998217905678272610599294440904588831087243631926669607231944531121425757146171216554900742310138698161229662343478902788774997936865253850339046765192697355697998110746265555313216787584109901766995346825057754955746493692355231836469481897303558836318185220894266773058972473090931147713189406324079737268393368565111390298327321609124158660952650837885253391209135038134546317703457430846118233177015963780587776683661335055429247647756851701018051467967835298015792894590459355075616725586182876188918843609457993056609929749738123648131600237951711954708041269680814290664097032193769504248910339842408742552133204939555207673598794896488916130865417208984872096011290203849529546574441174868336677905837833335451764816437368276595910450066728658640696277200055560078526601314617921645294558728557334148165150884254994796794641822740274779300005980669828540983008152306347677827189938415671595438613329216679507978376696856668406465532228444951760678562000747175160740582146455824931754571148974989047865394250315933702951966644484976144706869625815350603056342990787015606537089479377288653042253643832731732443165556222465970304938633111310035461514852113102863540075862373358614693573012016637903918201648311329527135340532716322163068164045876659429812966757339668487581330629069323902898570948144505257341233701598491201374358167561907988601618830203154900519352845701497684290929883583750624324939584681550499105233299897334426855231994565400554831651223582148703645029638691535316321235636212812169172497648051730783593431151420455686420053476182543334257820643771895253388014980731159731990410878257290334013046782609423463943124304701700875828001507237834098764437667890920551653608103747410895567653406842928920215294009974050887513833480364466588042743932399855850258481633196289629377030617801731688090354855281818923022991066734387227397160928599674850302881376326088580824903698472157843718174866579103585827094315197004988472515270260413373511291114115879058649877081641425852019527745706785704842623151399358791892599919303022395175496442911873175677229662907404584961668367634932892200097832135304777231320448056444648819460083904325227750716288420592861017483292434406510112437112640115516824044168365634916651638232165606343771427144746927536526803932826823786247741892777880895379845106460097117645890661775820152594370444784415161861365984908783009373859779197339989788593039474304131703473444954774699847705764414204885543620260520582198747554387352426183766242264089693306621443258998817127212774763465457169007849369182939330493337363428351415407460509077946592457637473744679579555129586417814704423567933805061351903935472684403277389378383826538335848211885784300840155663528791604273089182643870521133902770997078416090662399686058445404240206376401534264406934739261875583929741937478638306282559806122324656256906207578301872375606273463171147082554435498067786163520302181127595442406367698265769651318568513514602959865110712370686705094967913888079864062200523314757725778152412258224322066037272074077703038287187093400245238991420025624896325451273394918061761840983036872584869575784262217274842889184044740627540317371354286120713357802141227209251143463621846663216700314210102693219251560998147041992177611723300696867704356208542118309478456621353204827684568655670801726780179885630232123144976275988911262185713727627375264737701299458542449428365955855407761016397184401134810646883332252479640746008261065855330104749121911224697185967694643835238031646310361339638648388510246773481388627972533947227813668679860788011295138707394991055428844921137788233323935870992413981673979487791732791445622224760403166671937726473976621217782185280795018390568691444070602555473781521386662121690207880401540001608663691002437196716940759045638888108180399765365336897864080535548688497287609262230339939760192064407227019702430510417745623542437729056142725818073947908473935881896629024028561159023876640675080508925794504515663178241302839703848284736262541781783854728862708222672194115539397733262438627982115342558692209343170815678678927854589224672791690299672294794749969710440619596757509075184814012858792808092803816859763267181246768674121929308700032975123441084185918771089695859146343992982263666120200938105083467440312994973684121246046454201655915472711657728548668661274063461769673186428906289112647682445994781698359728006232880827010232132463778703097359746933011644636881515863887852882369761450520618250551547176749597972062370502205993538100161756129432030495156506846653704981193867759627309494721170115282693295205070382718438093047131012276839091902436461995049700955335706008628578680920752680782485749336243170109959806375847230841239893462580131854789107301390796290073104587272633093254371904077046720703533173909451191170463231208248597002170755994234177947632650081024865370522885074655956850269214541548929874994366410104553199305819963785797646822996495218121250648503747305643558551492940586782861832995549789545612989882404435391199709057834876948911063282303506554610104210677952925093771991969561661678407839193218076728488072968950659910137403686353136061232599515042592447397422476695025169357735592040786306978894214062266619616965734275986096652577905662405954981522560355203064995273723207190967462710995881391436996938404810040725438046698010234353489057259297631811601607374568547188400122309766096769202301862078995641806525010788706102334673715959030633118418049563181493116763640141922041068333910674831531467365705102687403213874726894440652966727580337831964349180004134877734867808291692576596705111650511673142029648931532777717939998334659196929257804330998606295206740858490541032074198255784283048853705885311197903420024290477365808127672011847912010142713698234102845756108478449716567887069903753107307095063611468179488637425622208839890656137815992262732674579446676729720715920666420939612417636349196305039474585442841983731222179718001725829411652245497772327212643616056942512709315803865848668136475039036042936353476761042175796411052736213148763761354138751274797977899670892011559041689161420237826169662784878799438275044021273507703679291726247779142912668409213881297640712054171488358098257457881758214297907571703624134464129343598919582776908871081848395886597770450093438381999279462673893304929907043654555834320987777580803062788627669780797157897329434651022106447928208135415243438377788892256379853947717186846470721653709855718829043449675458959813503395044952843812814421099833081357381486272231138829075109168638908435913000179481346112500722899935686347582023162999220868884315519398895641434677302551108817995815950680735942651571777836626959918034582695049441463803538028379920834013990562756002282037080845319319833694374288080645869825960622989269360911499481088065134484374156404772924397908455840821466722301018296654818693729525226395379355278419631735383783000687233214108694120867397652818860907311735209689605867172182731139223274673474186747698811188390255213538702888714774245888221890938130469132210910366302477784448438279415810799680348512512624549890264252355146334574119213555481079580801292196799064243734459520482651744095285636973066445816466998970601783272740735100647823189267254593159169102374539489838165220110741008448907627976306897987668690735195453632161885241898751001818078074640532012702062242345448114777249664223371866333198166135679658963503852227317901454551228496327982143717162491038261109153230326206776411025635317415867067606931721339059858594860041388087442177661920544175776137034742625790743976592649191430615195283383304152756516283575303317103271339759200097916220920678965292598346653158646594096134435928882227872331753502514397737873488082301339440542903006159849951051201289638804245809350003482024226302017105644774171285725124164689667468398432238331682635012179191031322404221177087014280709715543625467273072143142333021917113697133195675164766429476293594824383586236663314086595912554421716369225889590146832665272137082289356935840621022792671931973526847811110587540453499322417127333619605433879891880880736159019107658934988348691391252390858845722617472618828715168002344834156882596805604486698174223618247302051071118854483716477721006028877106200140210037674757470423975132247903793633072453352651579902870054613744874345039633191766041919222351264790853555458897091929767048568539830535383574033156112420880637811344844285463216592847888885078938132752553761460674888543458652401832082275009496464125040896451235190115024346353632783830036833719457738491032642031132878230771740198337495608846198594880710383346710001726185244056285126172547684979345659217442910369920516744180087314141461927921445664406978792002071260043942786051522024093062546922019015192820714464592868091881459467864617335420762757116139546400225886797265223622791526759125073167520524735671970486945407061712525625682618237059320324410843343213431585723089024952713419938246393987349263783108121715655947844707243054607144350539574957461648223928371701424848261927563600062053036181712625506462324065808464853028230060177014866979214751430721086315300667236581225722800605862627250752059283608485946767441092995375422776025004670910536493689172225744615938233433297004138430778947050833510331127085773927743809372075889969591824491735039724107991842403339491015728258227986613984564199438973186489548075667372117793901849744821799182981867018053787528124547177418400979730145829147923666477755403272476936138259855645061371627553063948101139005745473710188336990137062625184874919068371824233386927213197909494270293783953529025570585978241903151555338426218585706051013211246019049377345926121659348621504681922844727345970645187143945132714786054907258398584146835764658800973672218785867115629897929893776295549433754244729876454211516140858705703451111655907543090949031657638446224893898500867475465782606569048071505824114434908601547998050627235581303482557742402813876053198225229349974640389948583138852064648730947598952501411453449976749477390304748229356493212750780247050049403129352824623975621420191901259953152418535817779866095205471407091023419659346133784828334017871691170152324351791796996717211538068864538559966973415283645118219137538091903577631118179268073702264534061861314818928512252426054080005632425586779783034164455006025832666741425713701732121768003800822326633628170217267747383671044337652884924886331834941277526667214093335557339849287796846601391306808860638402521778592606708254550323120729499410867310211111464473805329900212417635961788166956868652088764915375986710743597140709327167219358023294929623001643343465796502705114594622040187443248127249662260971757450063304274285085304726070444873104113310749062597562392889657113056216038934060947048571243991693864291975932423399904937735075983443109859567750350442836111083831504956926515470131555557496619194498228744950935502703912507802478360647060004375186446284919689823415700630352197398637681911258790480439521698900698525398980370369278081318053774462344702599763783497029391478554848324142666934895840586700077282835878928904589262257341369692329302310689319384427272137256520182312930726255022890869548499124790846749859210318679576195285472954853318327354427175552764190423525471115606851845141558906323039293406092823430051173018925788316090483618045827752721884049906342688686582164921700339766167843968232628373037142313774668924161965888503767970077509489040779269480293807992301686278667140499076799273971944479383546745492248391561800798170416612963015529246748221090377370717223685097788701086572316263660560608280983492243002728075936007342516338377665505357728693090603181895509454779867469015747760098327284398420382291391836349644768637393014109307836312060342941811265023016264957057965568926704940867709672193948038940319737332408699539214501029685788843866604181476985014783702123430318512558028491819621805978355258026001917437052672824385295725727183688486544550460872099285811481439631963010500719493482639091918191222888430714809230055623670139222855121818051246939509668132328626772668084568488014411565866247249835056494957501045013340506093039495159401541975591550032539004989015553034981034896730199511386092078089507477284241181344765609221093692437322702624770015301437270416610803888397055279441759372693031461907802207585446685263304656784193949940008696149340328406642632059805050106751398029099416866410117026688945877214257066686875266316428235382309046295540858862609877015938512131105063125030485932753768111897081584772821124246431309989716695682440287137935752602483860123835442389197524076857916720630455630526299285338985487819382788049284429526061131304113289961733103610329030927918666311487549583350099056123021576971270536178876610776343316599580100107393320183491325134221173458320058280519534769546964100122206518647717021919083119899643349275969260627983360518984190752809933322599854045139446026682915708789694479754684377333465176680780547399575417325413023185198830036218117956055367622623570384598530406298281322711764580962956249849255539299275347646077004797178084135328381537011310216186402637909539489707929662399030020220909353842514453744721667912653128606712681917393743535799882088794070724174504881567126806707784415232478948677756665984714385954595462534306617852521798863215492546754804921299032381276743744656565719416188791206796082363877580353550812881055478193179607199351038342844341209725971922304984202258776501596567000209794078419822129589249876998186811717441535972848977330335158060796899763787510841324687913758207436393645974815591901407589996693400013691192673723288020852446243454714937458393045088380039710460863262338542809793325098082553374244086527794121970957371546954027855197139416073626297368092260261056938589802444637359566420774913760701477827268526164980965031962007824990626545518886469780281678555955648879588778681615769926975858715835294501467966251865081722260709636605477212467360514686710853701523364834972469784215121233002503015246524939789031325097002422059861676532458950377982989400850577853087062947035197610963768951973228230235140649713224414217680038181933039355011539511043541813060819619363670362134225098984715626393796788510109087383477374698280589987796460207922417466532490643816033381594376794202301355275567513353636214040597543949907080325603598644735541109477038525598541770320741873971727115385385950846768651105577194861045994303150852798578927157086281403192116277116883903423692688196643812940420050058626436471748079238917980638013526493034587764260875075060589624368742157112152343876169678867929744675026698781805617637598795142359485038927533376012217306482900259780751707969103083578062395753214279135277934934649826407685636356440578979129617149060679081758333897144014191202615403538316356498981802778926422996556137135847613591278215979916585530168672660598674801085307691027868074589437435813807935991189297037986087212873295406408427824895335991079747645172082876882810419139086232246635434580603830219861795403153322682903245371203261203042237642095980453695278592600958270948866755223751867649322658807154508038778891430101547925901686271601189006979309916507627429692056033632598213788214305919848484589131340736529185711214422294143908982702154215987830074434504737785259294825270048158657604849405223941003810415822920070485197719036266877471341439759586167612180276811800610302504917278337873396743138720484634417925868613965701674669673448436670941853587101593448088193378212622344331090121244466551644951324775519112187391134964849295362950030581714036038097085781456104568014017153742556178682083690846935157029662268540930043273907843616600241680140783487783801062797947034892712387312770895048779431447019511273763704967096567880165250356868093897878869193596160638386480493799912482421238259039396134659872963632789663795388483055403562953997804245721753952995919393363724645877842695825412342580558412967464736996226516409873624470332776849109647425652486971232112357384216795264314879704789980848692322010321638088738095774764855849166979535603918060903727479298143727942659575304255604913075104746691989748621095967627685238509874943800624012944167377704602080305290593643306772017657712155805007871474877124523640051142501123422069371461810157374777123953944133368119793809205468440027303969642959087940287588804757087434610174995417571029370093726794525580483546706029372498585791974961707099154703363034210566105785492963300638054897233875436459038656344741920501173222206346864652320098428366997266615353869000526462171236970669138106950111151287503194031522824021281342247588676287609841662579857687968576581896710122909584379567647515357513451895643745543757566856983568789038552510965071836450803800966877647100786976037907338944215847098286982511928027941333281515776812625363979038758265713526101362505087482636616970114950796982976042492546378389442430048275343087701103433786545078442722923337037253807864828652585078178024292687722119228170861174620667203732257658215150311268803514275768387007134709799591000360768284683190155017766026119495360879956302354223808801066455347137131089144816986593374680327744135013863247458272699984698624026300635428507740510033204251128505204883697275209476161551553290763275718555367229862165262823657463469961968221208199776095784939726598030939083193206510216930192014847773687400997702802827000253828685673397750287645204792944125479736156568540315289051892309039648681065013970543197201068797825397937635057617519398600372698673065618333282136215144428412810663884946038760157458848611514366172497715133667647921452613513203229984986776850165193169879638409198299588907526275741840176977863776301250892431807922295245639344145828619555474064762335948356023853776668387822353055755362554562348261466259350164416442919316811208189739234330289226834253554258544424327550932315983602912729699188118604890983878985030118401381943201037359628948761806743170758712681244577250070233071217729554411243782037287001134843340806995903910835981326596316449566870795431321768419744182689400573717893560554202472265771228179373429374219455043893727248452374544229303191533195693908301876827996727531588417464102112537950114320655220167738037951627264152377834779972987220648260857373041985914644225307938083477964585824025714434498222348129731092482710587835710158915823455062013637103124748606088492068491729575581293388411593670187546866016816252646117299255064353698743827246385338776104447182052752431314771923862371682066764331922947804077546491667159554634396747623382832200534847076773263781396432275646448494730910593903917910819367941585251858953380463531852105732110338524991883432183294456321666952830293366163749951850312407577505233339895469511792525118729578695872137624366906251953155833328749949235671898508408325847833818402856784585325292428944958205088103107259728732428116654430809889921526537963269866245138697657915918969805358123409836380912306822849645521526368814203685608281717736189221887900456395068452278089845403909492038269724916549078158836434981357459151702674264519341452491099109733649611288571374101399355721492275759503104601311486561151978132613116309292432545576311573293031542991894805595722445041626160097864742999263834841235703824467039540071881113753881939268790127449452560907164949618129076424752122964256415284431251532575046344375024962353475142705289628622818808503510044291938361748858310951900237385231537105607542259067066950708659880916198405742493908084321336449774430633320838482147064254400504202401457087415385715024432415061437135724096274317420242820429179758218795640492555535362592927536743790579595991569020153139151430929900181374047026017678214986377517356214047853925311457729311400466280462032955846048066185121770060449464207929583841894237979514984890396025067100472438594869582823124521308171693330046857559971366710651936478698302525525797265921974799919893127554866784144158228091311829732030553957178900431363399618957238933180680342446401678773528551145612975576321434700407180066482140010535356318456683832740055985832844671154289783552670611302079597313140777282312236969307196183124818744267992810598011531932185314298736949556278593592594320735389917247068163069705775274941461913780580345989485395441900106905139051726135097455354881179811663629847027571980063041348572324238799936424410409410948775681251443921189770446847259509846582274316669218524037793694873824695961518398767359706160987203587302529249940573694334445956598515357033439788178409175726270609622836732641607801998556266289515600727514742555064118152962724431308764575826693331049731614031657973101182283310215460113654212151640230096482311866150152369204772324410902388173923821217696907310378337680474953607936218605452547288976983958731305710858592790537892237885698271667620274514085415926008771391492997326160131319355427591197131080687292129158781434385790084734707481516280886292484494771227275998918890066757201911213519757542041830438934704584116203544854662346696479194181043854056393037678543096763622214907217948031088400222992114138812215410014304645437320482070700869432775727353238033102961022701625644361393503928375474464960898360102479897541839557956677215783136455592230927864912928602246044036200005166808970365264025194754522582226372092878794793485643478082309843574832710156780742292384828434660140990931311753032381790241404230647095629468576702740732030187769472044993272003019550700472799501443439352972929514988970341069203115301794650005238556244952749226356621506132465117791103915739731450077482999077102510326885637745521417285819149055214693832516652500743269440251958407942112468105916438651145418822180514176808295536327691448134145269470291744773227185238196637122508525026921133998959460226727092572325174203950655223816680352229750744791798706256601847042041959791672715948835114416114045800418799017182980162328197559549970750048911995097440972179742609391287370846299024279086272127150675741065463731901503109419930617664728848708559866841940357929215917347425413038868515300127901653097535982772933284371426000489293359853406246019129529898127761267945803514340632018847975178916154959737812142700247855298037446163498752074192896021984389600386061952534888745178888534279752698944199303504365886065671839001652772135538180592599111006207474661426880141002924651944568915343002456134516830177870308027367928057865439810135068268521163760133051642150477999964812838841567081943635432328256828121241988629042896566507827973847307390273849194287198289267841988098775965183390632673389572996165404627112334515224014132876484498182998299382369542950102175420365303068148879536832959754487337515436432043803933840977398078820747144580091277076372362015908372514129755096338099972716872929619298175420833538973490856570745748527890569604199602319754872783786203815203908857400662779655443053228067494153988213165462834382981581617490704284602305554950647141181411687903916123213548983118006728082124746705688552037165977098422791831674496590723999058839901536221478104066220263313868735462583786641896657665761408199251214897601720886935967144879962117070387998154705868346825850169917958827797468234734903729384564536434049045789661607520934680434404528706806969855374028886677544919805718118525099181122425385422338270913550096018697523026584534456745134426553140361635536732755013633047786055310894624854668580188577911580536839893482517978581905016388498024388761267642213581462308309481299762737858720463441329045557723131275058251075031702805913103933331225841897463116493628838026750261306139739444371329355804208307254787629860550306459852932210760159101961853190505421200885540863334566784546419579564559272418609748177677996043607149478168968126707659115614170545327636085787919698421968204603031959139806970781314950211092112342683209658556345684062681848051534607922525319326735257182629360284724544551441756894413727561715915030944857520318649665387922418679962430402459022273680219866164656466237604192612199057640557676235536877677281771194628609322669307121190736498242945713443196613173377274192412197655129302246596133646791276024501222325443832954150200871895671618558856493664798571195562043552879530921417947726902766586790089113096873407310514695780190389762213840403727972950666854303491549727314911426404590887763430724975847373596202505659835079276768710339640160061933655763037256232409157506208125215920175413426081959631634231022921107374487070165846890109347825055356642769186147394867232797609207091312479899003618227186090364050364537815207590089694596498680685435934691609213230177832245281764237072761868636234129463228619601456753028106292558551725587989869827543434532107510308220329173692276727964713241085268360295135838955354981331590591377760936695668403136130514275626343826450973058920534642721683338095879318637028846578114511456428641658557134586744332781570600538515213991293846080898685495711764609532654547129786470309941471037942956034445820443108808809837187343231979586531937563289159989119574717550413566562443339639981885810462061536658340279295293140340554505266404257784139171750128096306584940007196766066645389717831694668111159845714703553730428125391584110906412082813232623104244568630165626898951638250545732154418991211781008115112603939781053489006599549231535173875597852938977532307869898298885132370669151209283424563448958259272512989265284873446605070354705852259593142837224072238767650064345750962018991777358211863364367032691113690128408543999537795434180732715596461488162656841933185266531277910711493285972775687835963507764417559395299406799401008348663283518922966508486088676333131928440190463302783404323947103311526366714770093776954275142273895882070694050563717637241041209144562566665189216182048631387386025349379617123629293871908164413225574086268642018617493810720854742365664973644750880874297754787150323850492193989137568181911164460905776724109783449872849861091821765030001302844069967890918930806021586032458934639273724320894729216139247470180512217322062104674467885386309833999753627910003907758091622608350491828921502275705147234420852774259352146860930194642268146313148097343802179461595166702174534089942037956052137459590646756207288389092381412742002667224878242991218755213452374241322085878148382765504397215083216063766796800916324417335106449942425747696777836963566520388700309216196448159331515988301909112300746442392998966139501984065377422942983666249534482159950966510386458243151755751341071864251972254244308795243089281708240438599604117059997319929417445438972067912919354687130729873524833509479409553091700366904713865664306558559815302094258112698063060003515421245563140224997215444668210676979636310865499066242958014630124747157759364089648778244557919137736930798767414167795957206819755443934026250561085929182882902657876093518439438840997813285893792012173881463968222683754388630632254813546021830238530193749039718011544948994609438099906574510359734774301125344381923502457810709053936876090892949959152025813021648816680311142182182206254712743230338306940830382342775703056951954896265290822082425554973539935854247266305301541718138852706899271353396042217403966137093944254189670226751378721088955678449718768369095850917981667980678403688000127646634132976422733696721580684205880937151383520652572444065562661855497646870052938662351958865991356599627456838346791770915554661824837516865579108072968561540435230628146523282015406258307374615272643073032839065483764035966779306652074704608468986612887890689494461480448641024074605247839232983139229155971932513210882088155008638078131295739904929922080422696853570379011672615752254048358933781584740066614814436868857649018358400669451575629545572807246483895128298079374988666837925885569653208865056013266543390641892422363405837650570653509002458339167377201911800109496894627643354519175678441233534751055192775596427930852374133448871547791917810520530493197097945645479626315118782766109655356059450812610547211294640254292668665038203124066572406852624564858152051263802913827427318552540406183960975834297979079889220502760952363388626472693873262656252494387742199266127052963359175405822442293081292819807641847708390957331411107792484791698093519522848277927496034829732053843060326170143108661940279816750058741523605684731586886127631667268504878308851353875469101275720510455007933801999607984393391151568611397165444772389911403297520003524625023156506787455535672412734269703786816970721740383610628443362962848134536293763802739431617159728014594180507078749220300799872892843545401093249299851182086762641132267953975952049880028038676983346503361954243959125600329001339792605684166469456308281132636587438034330020765933505914501388171563161784287579966791936999354306846531780087803578776449537903641463640686271584167418311682396495707691608772682546729215957539755225460742453538748491232578329043976091022797424709543915621678457366928877250823579949135948515896021840866982133074486159957173564518384708356714784148933447545400417004366063031448641114480517203250289519571523376879929270841563450004576764305702259192234846012130495608156238651818821071283786328132041836063189296182641271910970018599745975364690460449649837173351289217607168773795259242861865688641228241318001365428932013456583427873065774503369420865223694769837939263229717506639495985799951806501556426662306318400444233786792993848096058465401937941479909596020092194424542940469102188192220434246438974668306552254412044307288599873423099146330208564236945096441307383130749576064875452660779722060805435290774340568561220762587764856438620000620314053205513200149507414810635510912343721551520714661909765878553928229300631815360092100504523517959648425750112158650294911589072198565389849009559992484589940767027910696888188959465825140748903957469911346764060296060805737343147653867687969755102797413050023333612287779830057655250656042366590265702972459200674045090208343681434533495889987155134492484836498525198798000253378203178551908891741550228170779705528710044667215979461048639469021980736880692107074732457278899668671116043852524634752923765525229710217487153393755169077351670209460971104290390978201740061816201418739872120598213911508278176229276773786454079073914206446588596605100104341042867516158077877301354307009890922114173032206632427391098256405547903509310250920928683727840326166797582653395313356290559931664713726423103380570469278286098375730552841349661302536850635747899842431725568600390694018343493806754394155160727231576381786468992709192568818025126940128415653370999316115731648170853399211587786364765351365155783979859586596553983239636388740337240146350341762655706831689076638765669429937599133159659993925561834366560789682113166420960054552854037733076952990164679847783439077700998167313806941472029851146891238671507859703154126853119259919788673454288553992653184941403033976295978168290787038096783497016470406697373822316931011163293993093390890189222203220863733282317181901503639054891179163701318523597969185690111843008084596779393676270697775282261615397930037609786634889280709237685848937445970858125747489121624003241775371429769743052434474141847530475115633413863967289594599446727722496921236603975076285447259783260487603052732458096564729672537663570449916095886890171060391460598089062607024971137994846150137664757105911878945849045670375275397522489709556232955581034366661489445542546956430880330884400574210067882502876667177390771010457921796110280632469623113876545069969179352234035801218363208710610287091178974107778296528946974489966744254651667160628035182078918520736133703513178981057259623029500646886434904819742864261218808288075916925950248161257610247912020956044628771929550036830760304424145031401283902452455820309975366319433924979546293743212587912218442504734436635257013867620921660745014461071500687440297842403989735879473862801019580829728896055054887135052820132100596917975916460424548819667017066454368138270561957691391782848095694169144152481896622438343141445274703869448952737972196297208752530513530047958355814162300851240990284216045915182918410662972638287612005721304673533117740833692461663772711074000250233452875724903269560271632140774900990155665550777149386201660932814706769622611347421988586587826725890171155733210175230538221043892367786594170674130341032259000141364930923461414471955501337217776517582357592692610757229495032744513632374443966810724089151560599507006423934043547217158386700264748439152003672609105525822913766363109809112045429845975013042560468311457152518748842631340880104398557887557011342216764949421002454065073021792709948236069819159817416033199703935140278645123008065057630609184604469591372983532646757844284912275202806869044019128834954064272858826580069003111288026165473489849608874360561821256797073881073721858067569262697319711805702286454511174211021096190180219831617593639345264320301205175910402499116851468435217426922230920821350251504449751328851644101663635811192408038016066744331630687024642407124112926886448583575842106521797544705653435950799844785920676477605942541225136804501513267477848669459505526641568052129241595100330454209286056118467642930272166582564212819117232096140971441160164127130267279384164148662147936397441462956781765571104658482483574666691784962645687968429131362252553558387458108565290321115188591920950277192097913600099402327522166948380222986497010331811971897089972772893166398158315459884168567837549586471898207044205071668188866305371415502693724846997411188374132529284749565604447836926851579352260638937655602844288791571488453421720837233027339535888609320914593388476143340021969502820716344312325341398127978804593214936495823953097582620384884246616602925958124863553127858051259021546678922160445526518950288711506386902089093504787971999015559025402807622519362630762482606945941689141188332042341480638946706749707900745190478672146267535307454953027316744173202831789856645722939808709019604528105002143179629683433341650913493924108527072552134932488764603280770588473929457044232171148633068262403705519834958971191147526026323428565607524060841976585879194371091309706347400963953168180655464244340674850407902888640831698739916438867023434678251102688268292304015870596960773995541495152899436137254042293337457514895256390759162963732225261954745923746875675581494934150981593864884482241473961701214230616356308478351426140839525982395034080810661418554142480297935472821798689229747329227938613409859880513351612915239612802843414709886957366815663412174736431726938517795141902860722553915014388759571010270903084388627094239502084954234900918329533561930183215261448542135468520731682667827129828212125158036112827721613542203619780790963723035778247548264483811486807007420825470772717435195445205229315920927500406263971984904964446945618387740327136616371744788442853272930081707484769011334215199307770645987772192867708146064428189678619324065310488399545321102414606579483270793300192992302870760716692197821492340849185809347304372622750583829683281258687264204466481422581232399883979752509656973796155069699543073624885941542445577216771440727367227273808594486675111611614089841162520633512273845038760561597744754866727723565669090489070655966840674706646209017500965815684727443398070490859418365483276515425086517142650051235152445422034140100679262199790197298609938599286981838661969994319556103892720477810364808691010086804853282249719534060555325489779393982942093801127652329236052898497854158993519055539876076072911535190514289853134758688249071246549040939185668366187299451658810886379775951509203668851045449140530400366975014013229429724772093638882392227258316281780272388995856677852645278659658852305352895138713093745642822885461127595809260218476761449590553456632905628187964878153778569327664447659088497647512613112984252830576722062026484991434053463231397325191905715403559342935000585371366221776712333871032411901496770891629075781232898601640945616099223566107318839617091429469540797380187892915367089843088063154829287489251224675682754406318223125102849774625597082757377185321620328070756920907715985763595150824120018898386228100685536500324666059406606376826944803219821390512526553591500962546849567204880651206425839387731488790514644903891776568430039590558455942571120687160641950870842687052468613940322519154655582368152251692552266845746477545780123183211469197713381675287364576137231334760088299966509357181189216493554962540639705541042209885816975167412045111297619149490985578080124682254018433259451683149006143887404743710109146527759898182888531743794042378288835016844952197890442823242868165883600203537129534093701435795969342059788976624877673274794221491035188344678337761758727400661945183179715194700142635205589173443839203295231761126347395927524521544855064083393532661613595135040466132523464609281920422527934760312071052750783254301808656031319677944528360562565793291096465276856393915951934113685882918367436021032109432434871093125062676866280359392998495263085480762986064707781777160280434582861884078410439225704888779554077935619306330014989148130065416557391533544333824719759648438761115573263918681420891677449227669137611290378232390899755298614232333849352382738531118458208386850368316413928659207493877951776930653993027855373756577536781208882936782031980504102844275368486859275790897721228558061343725697791257963006646397370471722672801911173940224062127179721393568131310801278401326312847862328448919936137006158124075317004771160256410060497574004492328058285510799979859880446378936887625087520800033553111447469472513615112693535256883676590994704013446132008692696882343287214408209560812799362715157104541349706644232140015239046185941251601960337359431771933347141371476369054501937800588438858083675170850435333178941081871772239862717397980778330766681044600918843825798566658760711823053595971068630761428128276509055521639980549583477862258422779092014716247039915504290446736278761181952014073028708821546453776938301404765509261144687501187196551834156628275817102602046408054380403513414496959580310663845353200442861439287790122681627302635662189620049755817281321506547792730515452430221493150920852235958289974840437232092338522863230791239852267559083344251358330619062120012476351423639624168341140231081354833106004684730827704216978647587343061462840755586026426960473020903456501303338452448400401022970400588846264848585914862327195351771968374767810896070740279202849621938638020690071444540067602221207350036683177480070660371661590531613863837269395444603921336631952606979068986479471499554952692672686304482737293036236268518788898899926279864874652737773000041629742004706087660736153889171590425743217327127848849886906821086827916663919784264999548727646516679583153695307461926604692746532414619967104682110232098705068139509273065384499661614417425421653881367188995510589439762111774406355158530179145469194004012196445160025205653700404868374545865623008548061904242451990091008194714425968440627847340378224406811667403315407404103018475386792041757176174851231704155116190645140358178722930324638475202115794904152468628967458815933933087568634227322587614392163201925353569303676442045574482910671949125295070507756851331272266552051837429561072028222856333105103859048870413709676092028954970571783819337400001130459309080868926824082106270166814107298458045612988597737986043903446071271953845229286161968246109354251687668418557100320714462169385104550310826006225509968001801636740446399462224802990523766600912251870089054946030641627990297879111255988842257594491307580773702168706094816585381974181659853461106162808094816392151131222175501934435323205552380990604456516980343289480815106012296191820446039923728355420275863766180597136424510726696147351437248593574205127636469586129523866084462107310070641338041040833258583309684215335027147951103037974616749748349037211812979843936599631313960257792362603384021717185565825091283396586648265641738920486388941770927661293061921880590793052716352317558445802356151121230080459830259733281809547652781873843913711645272049766589255864959287619567448723740313972802014380643561873972806083578654287431615054400876667542438034875453102939511104951928003614319170116469463316801726842019823145509632128062088644548352901404421206575593813503692219172018116947036231221743396540259269645596526415740054900283835468231054052123332297472919948231214941238585893304018469689373235186456338769028212773962152382792087810870036582187831692964382853620729821211258898168973374743294024622912163104188383936873255848124839107754742531060405623616408409259098991061688602288706274704660437860014523334795961582715435734747002984319065856998955810886582787112770334036329918039958938984234567122979598320914066631912527109064094849047559124221680980434510600128147242523501722870114459284006867386195147155101969647067552996064977177767892603370930756693732753391105297706935553826077669319989969707985417607012220981662777300698504342598085174093335987410932432634328268561973391541008865790679187039213348043020487154834693677622026320880651879648933640218304231503810263186826384933962193509671459594457646868588939077555558151522954242250387295542828263789106369045771460153152637945140807929564030233730657162565642951554433352257683909569044459998326456765671048479567924245408014845969327257200310064978254660831188182284301765123380109633987546849831518405861662123717755265893439140336339396516682465686893140871366792499776943332201714367482908760283683952804652789516908230593518398040076106824233247031549951769154258097134336678517831109267377956204359584757861109445185282118604029568172682353466294454593136758151612460750344467986173244439693835887120718089351765560839265808691346047977811988652328485915744143337410309898323339051006304092721558014024955829805141594030267968246342808857636654555484880280159937165229597517940992801101323287012256602599126496911559552833334730486912823994588845437307401199645255515226872961291850673785559278356632023463746659561181703756958959557046419389808180613599981376681667765375412467519768435017047324664183130291151313110437533712340771218738215094588185028114082929644377498981700462700271652731423815890390644835080270929823065222270425937605889890004700261908820154211962123376766356888884383662234342278097952381200493700518036252362644780142068179050359418756121257029698458214697552227595590920685224152234430022213770184497101014579243345682156607816597851531696660409191624745557187458177453881907152078162262609115344418783896454307384482512984458790822351116609742952159145312803626035104118729404009694890580016222134460981718803236946599785096603744124771456196331632888575360791123613079780756108449910542152312451329337433364298527293659040229928591210968546894275888195248837797735987350089884431162072160024214565788305196897900358230782483543997409559946703914310647596277398953636729252414240495865833927911922266750299023808865492090122332304536117450515354289017360236119969695802846091231278618463737143790240710500916276293442204612700738026541831303362134459711268424813356506770416797745894060328165856505767529883367560806883305968284140365995488296001474305150922974518723618932028515837786746551413597733124925498280575617237865538101460901617400637131411633657714851692142390714424830197874843558765728781695302612434433228378850475737089926210812875513764873102070936855264761364780686959502734248016010283548457082219882186445035364579832779225727672695410031978071340015073972419347226136763023755678754763233476342943735720541636056066987780132316309951968079182069447182335468695297215172829161648532775638727978083891704725028276574651045971668765921967236876866957322793161593096441311619229326458881047021746316599208485792911214563597717050559055455769579320346457132378440528678307088190870665291016602498897870863762088573689088756239251344905165692610152811478104322256916637443214010587507045416983062523015264709592543769103423101597678166154433313939207934470719836607978741759563864541850237351700059804740533149387965204638113529389679095625628083058997492670908746262193747992082258266822640485599631045127219115679338803338882865045994795650186416026161797380792322109646853647152029246391319054211027430503357919111019185794629751887049529603639439283415807346187458603569511485513777914627146126364649079971507714624870015432389403685525277107364728950410162862877926460232486435017037892310269398497860400726825469770248509487234867855556034527191295222671063805011769755477795761837397327614839751636987772509237203396622732923693392211297668026235293920696434944881644468124855593561325369923406570507242497173425450401242734970035772641773119515590088913702659242562347032381939307054738548269531566557319388902831603306820222213019650203479630013094913547492081345291055468629193159292677006295222522719102744391290220522656447628423159198102737303454972941776128644067996930661805044280164079544300148618745306312175708509503877841515087683989284729985553393735397396588260832295305658589212280669851058154078503852214505730298744208125285075715436686568697943456553422459890366387787701396395573132502530666229383978649871136626642165241483193657615224930823284887558786521451715140789882042508037943258737179839191919675050648763620001995639892257435103638911889563500420733451313710928526783181606022454268281885673010825348318000387838333105263864086679611221000926740633690228096978983451856638691104099592969555408734443680300784965937183347278286555000513357462969554533225114697879039878029923870598579075308219026396477043505125745850946730081365563192050954283494945620156845875487134338312029378417691629229181777541850148089253038920407488584274863708854960531200512219504389114898963053307573764053623404304370478455781759407091105208146192271448506339453887679670001396501077695177221865126711515954870725860717873135354506618982177047634675406354548156225806315348295822807085216096723315272916165320876386061033184204565222071860397564996326247659619722524975545139392208531623537939766509431722235910931128634308831265251862222323695841544390081604117112551723638986384662295280698637067423635883585361519210484140732096209741064824348002990126263511487335838278078695479149482071859215021391723659458012339402241446393730526866524734279266294314495918634754914066378314196457812413602462313100438464309885240730713515278969687513030415821090905474475556017118810195975878781695150393519128989043509834286778772144690749599143604342597746869105100300408504433476363604716613711062688046571780783463026215859058702728656702995491519622232853817062872852407702370257615319311270753102131982875227235895898562253354478890848900409418511203237327810916899474002905391210183130497750406873620606543066775999616404170140210482826464335865706375251884454327818767829573951783106061977383544365339708665532621267527880700341107861058728757702662711997220767424126554278326118589255923476265237473093392183973883050892521568606593257878333289931779658426648346926713743018388862791377850263628196057143451591895398351280813109032115672060272011454427226292004783028853137083007236412582694716190045071721352419961092320703393109219279000234592254222316575072668021950565751824239124320927969581161821613124855565126518958329314439360736510103058150058160015788873413682242399921954181213517056379527786281294065712385305118089192867646995386905344228355874362941634432526489526902396275388970475497608493353159702215805431852057973754797670191396291022358808479713973268749797451607671638050026382415761281943114177542490175423062553437426464045913068924560561386567872669181417180271298091213453495569072825159200217416563892078398723431445788312646757191965506748378574052791121384600454566289989029144585092372145952266005425323675732448146757769359207509747650832335061943076393329651595926030668666086122365787715756300121506268700111197737113130549561299743198105200213273088198526812711667939125866892913881549244660282334090135212785660522536309927385902801218025701352534418569711919948619254729899334290192735428720127299514856542023263472780292695511989507800131075307775692360607540927293231316838150142369894216795305868757353454530711025638342746798552323918207838729596025564051959809243720327970973071020558209779945987751569563655755734113669859826152838836732517133789310910295492799179510548301297575357980826056362195698478023939520654389587523392008568929519583903165440991782944031707067246056112641251537126101548159935835480684822717743215407499416194214329693420664133511324458640689613435953644358534820836778814780781994698347834785186897393024541614581816002633582976523537877768683621094209330770013418049483482577152828148441731475366889596638091073161285601750527867787981836278261498423105304894057695558928228763727503428154375787203135072395120157701473360420469076600894025011971733059635400168302914924109752822348028725838106178110060582252979980572237903075262545498965298009372925180780338737687061970071115043812829756980739359326031082645125842108064661381113385778844791802407508863145241523384638619364499031595571179397654463911180924628052622341658025077116395387509612902146070693510159391381565101929567307217193821865623738159058653776839537293126350549322470063206296046600262494894629738546206383488125233609515367706494442842702123127494423855857363390051109738791424286585019350125379969350946844339771269537863784601163246164546305439154890028822609842867907843804799811490437180387185414194880199050447170254259504564881048510596735788493413738888159302476182794386761112001195312497403316864842507050156933878036690355345087190026153450679289356133942228748949381630100971365521203428835508344166842842062740010141190983806407491485370763088077078171057162484549011811169836930282242838246869463619756266164259882969195205316551667426343679304069714085720520579483301223912375565907590858058074939237614221762651104532652960764694516782403055924052115794080406597973510218675693818615343924898357703541213295256219872162021497099768380625187577686561983459429457282471226214435607999240393240521074422966773902470162362651563346644263842673924429961044510599283344845382503832669579116335015754439244003147301479193180567455912584558185739383161504553253462247710690397878318499774828212280933809377014381737067383303663466223364588893105343420055448772194381603577143009452891686467204390627444683052608743399972978416999055106004240489817923470369918238832367829207421844450127434302611671370326176431540893989727646789869875214478880323789580486401727086069929421082588331020924667255951464805116607020389764895027527729696700006022897613520269263796854708321903677613432717623452446609853769410130491337520499714271776684867336565900051091090680037952782354809796936192675354125865958320636930756286763230839284261375027390935629421502832038872867495758875067133940059600939456903097954881954159321815414302504914026925953105804751604043322578022311505552757660525744674738280391055799456130140880243746615553940370230109261903421468671315105281174939369542437011214563427743684024850267171470292715004551789542405333201407526305126053878358092037781592164072996472329938789845240734976773764616929365754273031597110143587900957219951451206180841683398277990090163313884019884414500880425403395188024867368666641660324809431201607459731975632542074197381143450426875722080753766337324771004463904137513352757380717217556540116905868147160518410368743423121023365503919929787620992010463684933763497229590233173310525944034476591435302681695599653637242159155357080907504966364347436657598342486853403150454933831785892761314548036802183296094671082741178738029313408165273513538107709733061861793511748239819474800955247212773591127266123622136562103456032131358934182525380223375660946907926459235023445909097730828350431634093780595448044328188612479494773638246673858931292241802599386727731619513529146491027796398935316530672149995432745692916032022339678170362038922177470343791795885282523845445524274488025868226708972649683513246020097778879666857716641948286397569774372375732317983294754111273529430938478237202147653103840911674029876290145502534767530333875655799345791785492908302019053752225886619916854300333236921175973264889651047259073639264089740109874117831341818349006418875386826788207548295789138288327216136009401018832538215112748088832815468723616968914143281277298514452449410604835070498696615736769756586971691701671591412938525489357541633404856184032944487405034576725579600278113478357362386199836141621599474981339577377525878857330413121019285859293240265285187019892161952490853446215704637063390274691842259406671805383139066816822997116967565914782799914195189921147945309827649708791155509700101764940472705782222307527026947032872092573151387636414750788315932224008410283121276741215989622611045259834021550334716527144962906513135153142574875243350901151267574090232850991230208131943195169194235533366470696420043462645896077027407449297701219193628946663053096634417196631676917723687212517080175700427949605161553582188702756598038515963840032680837323903839297682729978416352990076856701648305075423110467771264761975481478015492586793974770655508180375029369822458355186727892001964603966355662370518861051961055902957462318578559089150609431279264753727910251666405018163671488842647156353327617758891594687764245967413167204558662063338074379507255566120044826648570356311989103798499404357436666612111623823751109709865127446198895754586047795500787069674244091593408812808025912447103178552095755920560209406040086817645761429834946997026829284727840447628426879404020046289374917793431905026141166598209071086581817069168999913059265461639870275517914502968823523330682244290245858147201107441975048106662788775154317911442456035440232185127933230033435395705089579808611530485889251666164344430427665991153364797280945619281910340483012486109662369583965387144132280393180720989625786412307545618423491404203141087011736750201322956605507215903520128685191848181349879882194136035493099647718807126580494183178905950967644354876440505778051726955076144492300980624511625472387338945333528102904375246816736094105394966098524535053536077404557713635465841064436177240571511650114185299073049513259159365853449012970263352831942955444449377265940983208381889458692485761335374960164342562916204909676429032276191429053430853643209065222136341533008849578270551319192579460907292920886397664014492886692690202518591817115713876242292061803627329852027670875031944616985741927417752048934130531703573391332645560862487061753184947144966702110158320448218952804022848911446949031489114311847827814121616068316519577245545934687660526498626991966701785627642418178267889571811023163051119059537046696356009000592719684268678983107591285133274438442060585418013482226736262267143308127446584738069536522682345318117208926507873720427055145561707861839132200982563365565507986478389339119058390919819894161500761190737851624591336757368779825062330730303049950832574823210755899531299238762949460176410890377610751945042100083856990973195098493016909473115478398590718564160897361894281610251475801083304676616395103250476439981569634103931746565956777582680482450384961344638554700243250452832491971305258571781333150427494334014391480809993932954389030954333222816213584735207348128565294218996381439066888396243721883907035626161386115233034825303327335283267009157555537689306576541514414858687340546261226601410694017959786540992182324917088321504681175176783670772533197025850781034845224154206436115409911600283008339961981505008960006969978354906560353240316607805439803102166849989455873829321993422041019920513293835363071887860781617032341940668465219414967183564985780710114548942102199356869707716653911589739528524498800385861320938932427462186236719279879813769765171941073125205102273207438702230601418031944045148460043448061579636808980813715619140423129292753531952503938066921146188684730190436429394441850530569722222979606920608126322298795114263613880885549496177162726021161435190016053998437867505406640563786544231413705068695969883919374503860340344597387021337781396254997999499343018781055320012791293511236453344228551226103805433625348621266407361216651286158890449373347078524594783070122982437995812586383116651740608751968928708221996484506683371541034120662793065294202852768513355230953091345598792511248843303710881219235387596816592402332930024980605523075094333334836275756308132402390714441979082251736418815074120840738419664629566517887871638132371334536275303231699191102252371658775378209798469552818333455844735565174811538001036662612739451786110310190210197723006480810093228603924749823850357001756487502254481402031423509299925908582022391155002659624872061486257855958217777084741802231023039291342548331937030869171187230209042105577919624091170111760419717162508270353015541871290348280074850183130074775522741959188831329890920337257405642187670534500842546754841326872703402175880685049038171131576288465107283617136580981739228593409966573594533761840513574151889567363474487487930084233098495658102346173058599018907975626094268542051844280191058401631741800915111013139514000595276776302645218167055143844477822698788406835666664690242318316898057936629933978399279070935347207095852314426595584573105841047708239623640433548018489481156658033820990325215002258154256455036157020760261324210955863235719246325561567830510156498692718969257298867756740276186739803529913241958788819222336261255643604454136124895789215259974318583451902963086408454623440941181226862101900410304677492139636121936143044105610936946131185575542159621388075346273213873243659545009485388830534049751968873191402305157768726793254123680034539149287230186413179090365192255985724616859769831473419206558067708725402102182647416145021300159327392698109527293305323349069368509395554365165886244524144471052296345788419190726058089418102303825591659905838477103746334323868593715430558662055558620974655689690379175372542251889795427567582969610902973384738717126623138217480837357830674753537787578264881148169592054578185358130727444434442535609522321177482197699398836564818270810235438484802520625462465273816809178927956308598876895211478350325528372351534389525270174055879661803674679060414159914483311782301852030874173308159697583249096375491829118969875712123667901597009129569754544266056379777804546770347730411223399210859901927916675100695355135420289571839740722580628103082579301905342549770093013422414899584742581945764414883089581766529584786180172389632284790447129623573887800265442195524408470036559967910318860501880339062725107291160120167476583668997802938133130595952423190990423546900998151600591568779702008849472652130139654174124670414138683064251185383735510385352451799888571110103460961048143547240541946686240816511605322803187063541984336707459707193667017741041866275301682329716627322271055957960114869742493948825412483371602005749629652396504097954616880677837907128163098965725450788665732639981358451792207817483158902766254263171112021905552307122762293770385358990514368220509844111087208935335135419651887994533198839962474911922623477818661774489918585490643707336625960864129760832898169702182918127359067206325758626916973093886019410870004530367560170732390230459077791773748022747175990402286287648169687025151628646182251164191722456075762300500615169894910335833612965814236817586653381132147931475399683026555033448669640491394954360957519313295090753156633752752187953208981389217546478078551363241560540451915668375629871027866575914406233411442225448667705954045268628311817928036619834672891546238736107097787230614822905379811510724061540696640927934580632598310535553102355030064070716166932307088951187045201976868723631136627755957378847616183430053538698412324412549404995383487271940179589580287023045087366243895292412789901226796131734889146203705960916938105939413436917556439368356063797780364374236132091521491731921609722703730845947087649504816902475738090694198519702285881582220913230917442185618934036258819427176834232185255470724543145222589522918206865611879810276748658737058482588006922329160024559662167306235908514759501521157364054273893218635748108382734092600835275988708015284177613516958579385006476739822490150935288157479997668875378127454375384096818113633104971256441677513357324560319056517783225081978248538456843252918724167729521919649985724336459876845132867409702554423809842735487691361622789256988227520484356350565435979330428380972820760798177880075106067419875528957036591295289156755510790977358603454539648865436534898153410660900645513552038599163520129083538850231327293296751597926822534257748281552449609538939751918123110617330527689249230784904551555717295973379665524593436241217593060791598927082206718147975021738668132993194698428450751746626054393355362836618782398591203956550810982239230867927961844063525283077557193925183888750805083021441490815689679704702332946540346359817801538919894400563652292397255942313774939380427107592729701770777503984349559244522892494019722506773682467070079416151390916175827037052882590884268536084433910133306839480149036687553675139689974594881517952521459939285075877978689990050740129215961960616031861124198050631673492007830007429715330504465964489826672930873467824150882212519222430885674341514636785519547603674950040072125156948995219174102127456681510709002253108882926972338829996357103798599332820865673118613739404117059155458553057627410494320398458513798725441054432377242563085004352183260220411563211524793173453823002569017871385231096917220932380748778045607892125100207267694035273557317883838133489724733390136093984699310706732846212281774713046964359331664181910604068318931654887362281770719782313250034392076470567242661757491924818464548274018144493803169441646921068445036481981279582945026921552947965933840299406658461748114714846805938318231588336708751305233596295935309135150677873958454334846659637662831078684603662578394769381908691897940836817109255656664023555100110434489273319793471468015901296081057571094523669603334393464087977230678617520414018482755407075742600537220035705905006919669218679297493284803932474161354793133358482140580259841261626807399279977994029808140778965229482974101017369688722766144104161221917788657844169507970990147290635222829347681991322331263018764267963768592951810266663017290612830713291155219488378320237061029920433859823134047224270397100716132548405058112978552718151269127080853748361937322779100923353225380897840468584142740412483425047044667415412889897502995382600867028871237433357293868849405003669209610441930735600125070995931364205358722152992765813912068483607430001307469081751662173434207126246030930467000120163100938745542898864227213232372992657036510433293580260715026279404031670383405474013639788007450440705443425734121509632165535958852488415994591114065080616084292726286061284052103377887802937477794432034853466077722389668894138751509658113512939649450790741404533442423295613102556695194605142375381581041654602681866162885700112201862265835749671748427429550550813328788634122001815795345731406644891996562569512600963759173042078910872238350919544807707524728233865198269573827043027848533169253475112754343557946865432896405397913121651880472291774564380188896794414626461931782957717514755823944152924201513947191335467608694641358839642968685184913264188424807977775728287943690955009283470611906239472771023881351164618923464250174193697491685035144741171431830031511212445693273610303370517511349168984899594717192465504208934494309605505024209027239476473113677054262267763741783209926120445327128865004088260532607798409898807861899175984129961664698816626559292650372649709590431416962295515997271433645265723799335757983947503571416382610465440626139339273147841171283949135491798363691736044984180980855332406456484394841363687536965542457386381558453901024612087549219613046077878819504680608926438903179240793316405294389671402194623662935320974105280432728787538095268951833390061904253007570268396827417252645959332421838626278312118533847811469045154688445988663967278723309809921148811883143390963766579844445655282096102948419710373365078232475127577038625510863972297019853302685753114526842208091341658743520944108440074083531616830055315401110473473844226224915906110484047080371919127837680251801023093221183809063143791980508198971175386830596112495913276877936435787388282747128385337786043706348453672297999021313807826678022989787915568799098047606491889800760089639888335752303546572954563065321666593979472967300660146567024373367044028831381694483685589699737934786298612912473388058603182261090222541494286933441992131984121081086787250531274490627573631346155258857576367171966369669931192982811952118347599255435711440536548436247361511386753769446944009178525233782368338819661059075730000277364542370227486039471898081873280766991490744767836979753999746733576320870790511788991100626498138101741242513897718041241717081371500902283486655238963238324345735888678323757714350925759536490019438941416130476938135596890406861762539798928001401525095554851021790660110132800141118914806797580806333714021240542040158701439918939060271702219554094013880331328300138929967426660602923827451248774591660736069241743874379462269124241820471765192050776297886484940921097998295470462789341782786395995363157975366747038777367287997109981165062095668907168132900583674949711848554483519918196569811163853104325079677834248973633117394423337455035437627754692663841104586453170493519172723401405381791794952963753969699496719568285339788173872216346407002355685155631074356407390316391778739901905591522621369991780911470985902910948968810483324924661284222170172692154702716019807197117903652280157139621112257454132579447104200146844951991166001293009584832910039403827179258602746218462639020840860501402966829986404409544616068108218487193645793057306698295383989472536255450867200577756098660277796148748022622845861561757688307737783793304387745377254880771084489836766863743990971260187747739689412956436483745476219650983085211203860184878073306610706802790561212739527521553402602705195791676492204993432401541844282307237132891429594603518016265191786563948369288315601923399572205440814697476563130630731038457702896326126532794935146531381822331267189250695906273698328198493546889325875411819956618292461010193866977141172996595387146181495080692851157282046658105693940903362952842178737427521047455619372663256193864079860402060727350373621257129871558796919192659532439883309726151254613143352696656079493707929206769026633087931471492252925045118140895093267195419365951479103986613492267382559625803840601789663305208916407110342825055756277700951573986827606652260561964750115153269903665054796979979377122652373734321669359144269580577251779483582727673727607878064658620762645635912733373656296647611130301003930479735431600053509691738572109431770550662283672353927962079472416998941014858419710192884755645366100056412664959389963349087347348639063927538356779997263172048648870344103739112052570127868526114998695925107818810714332780210932382629985629546724997597603470134991605979896760057146056656585289361431030895334059186578517969690185103073386371969243746921271821525749327497094840914362287475853236551228338500664822902638874249750367499149320467428717798970214554345361507665912523457159036765159144534421112353600459605600225818435934938928402361937927121635501679394671132679101807615671417066651804613328855568313623691107237945469021356833153929452184401539844809439867987895417779510996224452222191833154775791825049464244409742931436315952329699985732464641813908755967624629976237809581494703667806351608714282257230827299948857501307775391957971949046945463964683778305395623333266233315490774748297925153733407526720914550517151786269000619924667128843307764905604608651849979604364607197787589745985503949866885087695029737847779484630233188305120533256049671685151281155004573290846704096475970010865153875312117991848042120578027969110013244848455198258868380634220776236773196995190255475828786738841162808778519085086551418977910059085080181253193182570379291706747111258226484988513898400475022632189462667376624571513811185326673682293612590491607063696459594595387864719669971485984548071063672666939181486117183530499858653291360651401467681200200412531619268826539968073123753363038607280328566149922126548257168759795815194356913538962559556269759506800738146162890396779329636804244052673546024200677347659770766308190090049271671770820216124372834182318201922844389801673344838426029122987842965694579350432160161931967687004759601362550477949803958976384400868491930858874306211537984445182577592715350602316568848238691192148299216533683320055774451777035027259017168331924009147460632157713827415777861799844588398071697211079023095402382614803865892465197771842640078128283143855267873517072205560469357460056090136606802562428908291729766498902053390825632851029962980263015217731342677914438541285546569751882342227293988199133205545165363358486417428452996282485872542139576136903190043897335017000253333533240174212055584006541629974179979674155679202880135601682143897340554917292514111389546341237399338162712983099796410191231231111490794598421127010608764066037210652006787754714708805344404053003786545676701015491225570836593344404555950585469835260624476686517110173668978025363958521458179417222025163801132605790044535179813451875482399123105766728760217469006591520600807971698532056396474401465282855165569173303489446318324621932122435677646002263573949431803560757314772666013723031740531490267115034904940275917804046802399480373676097262424251063012964311165434546427904832257853018650186927570944954121789320312171532475588923076518437359212146824169097966520548963143879735973600362739975671636340033225179634720195947172754286808971029454519141004237252916984780239282192823086295777040367360229874337347279311839550489068982178025415824116688717044294780936623623036545873969887313371030409986392387424353404237655612937624023021279567088077359956025420928325522510413662508451450699468578107267209651866717872834438455556262541556355115001317302016085142713832076540175901932220559916887515607865509061183230748822476658672846450903932195033301103001855682338913471299887302113075970301619473646705542552250764124568021955878853578610388465970860887618915940497041577358366011272538304114842258152933242286313083154649162413581092738691633000813182107518485287880620863610987401423535509056978608174828536733687881034445797317717387744595616953965234643236933575830132957762037398663058345951299845940018662191977414641318626996966962595418567649802297104207050875362956491529855478245068897140584051526852776945530597927821635050982271881774894984015421290329399424035791754171224272366229997490896737208414352228555414102852115784286662617298698169078802358874557727671709496927089689759558596531183509117643575452852574682123282518150058106857728572143369000754274401197704191097915810525351865307188513174924337674386553657748342469543334458770881240144640458587393125078429767121077653205981572065076566804029502879606843998296985815895193050018581142471505302722736616229800087965298000552135478284341015035627584908149916742122252073067943085051424454654559534141167716743105622845265669313136529861040644950410845691666070574128176388723891956737557408229967975327475139523423524303756551308089298247246255274891535138278131415607846252668373636207261908277542355642995303043071745846647028546949583736356002217518066901407255362917089358219430029969384839084712571762104440440744601825706941190378372581553365410040251601433933186620884857831217684977541891092606517500068163572674108169630467022835018853178486669571429668026124537763613464489147396635620479469936337366558774690931826719186669866082647442807397226550146558390001287456233889788919575513881809988610818309819105336712810151489437564391329086164024398727194203930499751249263698851402224854021145078671826763361352361374907819097834144390719268586945805437477655902470284016706714476195504097861243913342248436279019438841372715483479838138676406349758641997027244766634933871878791660040816567982012773245201020540299639097179605240682419866286124859243243838720327205362068005533339513713250675671926865551290624132286631224814055003123508753632473934398283874438779750514388369275652442331392494592693029153657845327764197148310490524582482582986476034763884899982637839942782196648426535028185081146532876675326901053667566099578024711323050054960558925504348361087010096173343380748977956869508370282014885732026361837751711513318819803182919655481853802017087524787611715211197412725515981461045088053104779730241469518703483494041614479881665581417560609449352873394414072304620243650393974856268664905572174710817534627789002813454554648368121812413994285844665741191974076914016025821187272301644586972153020077650143712161273567465629300080156380239580472241658891993104071977952997146962441415648322982941630390046359214471666183668940821639936436129000717524478742435327144431186500322807258723919261109619326653748823072866692156840391548611158859687005956338052612222392155524485089910375453752410108010265420200945080275967000247207353879183200005303088025217385192592406757459632690969154541352537278550186009181747653548617742682419892001110893858114025216618923441935105383591859804639348550551962048865432614856123578326539314086398169137438390921086174831701345621620634656449427036474735032960256149338794863233449820182565007035137464300881235999456852268678654987264883660626534320329354503220535896030498019181984646561756352091045806340729860170879507274807850717057991223502675228180731056573776813546474429871337659465380124236012170870705358467624969316553435139496146924134024173185274434128793016952824638136291776226651564929393614323398279200881341369463537649104998218091480982933611100202379797084542353688775226753425613058189858538608942037249492463893314885340495146725030800506752179618867183234097195426711048186252374495824648552547438277766758059978427240430288279896518290317377766489666451433031461467307841613410945442754572985252689517295277018085221698395479898387629662503866463035637932809527253858678769872756274079805944593556594931757447751768537180492331019755424628133017590095246337550097408484986620131733396972541490309990462332329368123910663349390709967481036926882824174842908886155340565380101087811146027783279291201793157545798721946122986810067902778603456606466056086232265653794241239572663741243780392360722100664915207017493970441329242738927729581880811527312722018014876768140798419377224642379151375299796208972244054249059147270218541173349378606517009655551924395751962171417802733606237558750601678682150816177134576601906960381077893944913078673934671037359958363181435219078471433446308097480652820352579479120399012653961608869096436721952409709801270023482676074352430543000481618659397249243460464358691764781346519075700456997295657852579289084231784290267391276037170708975547019346363262863349987847841615116268416025270038853181490799976762717263720957614770594517080378339504286817192603839504544559400157300696167316314699807669903822179528525905337686896428933464858642633162599754474955904706430429944059313049822406040537528617204815460671918736476451643272356990155969282973691509015804028932366050725392927479605680863868572906538748524680658958576793852522700950806139780944965526538115374997445843836380228973858635373590284991586630225157537437664959340845353784846929804731336575637484784925590805515712338286946970225020302903184114449555978186437691263174474365665843417165305696260497575876359275970498247667341185879583824552829759775382516019055146880193749640596927253160170916627528635596134988230245624682651448302821711249455011442310204251035217933945683596044838143313774547824788174600407436594807713989099104647526852293437774830488155202669225012431526431622425280886441006950122072663364587636804299518057151623440524907677968000704703479450578469887246255232085864653844789065220731711024819922802455083602415968028638217103410757178175559222898770470709289130983199709378364450737288322463000765697600110158030045215182752255159813830463768491633583075157817445159497631779217424436300664916415373967448329732861372645175515620154471870310706579084324989769720649222281651014743064022331991239464318793243989882015000824941132546453326847609880328741091135278699309654618480680487447261318503776521782291970366177112963384093197113730812096195307834984449590981293657317699663073407217945519758179786601092047950420072204540830482196607131798589034119779158756631408727294078903746441763955589806054839324957402995530484389018706869114085539484390968004130894032164946080030422669529183983713440426713998923969856912789396747233234546567356845512040724858918921560612914590975312962652074847173774947963980807001634841079577370919963983787485522771447840625619081963625448687323178566071661995496295628830773454604429370256589490226833806941965329757640546794771385902848911798607991043067269096264548862813888537878447350390792241495865073774753146616838015455337793495079859295730809063712523949694977796291913391883927321622469107111575754718895907831284198804150392669270820528493336057616352036400182306316645025548732321739572528035892114609422540125213802161072207725990063680968795621263677486202344985654833659115153944241227817698335739038333267125150761912315174414151158021894009395657162040799598655640755825309934288729186234326258387690410333387683771621587554673784077898030265469420158816956353743857617004860102086623736412851377892957689941276118183272858521089672789766944729937988926791251866592521109333385348295817499782199991263943417594277557850784822269032350207054755260502522544902899703891324940194319345944797541087555330990461187201373252089827484951642428938276813063222303339251191271903181990613217037305586282919091352543508215673286501352535313715429681431895735121117590974346680320312668098691970800857498830354941845195303971480465319371482692383181094107460983499482720173199668342982355599979054521906485971407260658645633118212646904877022013124207298103714738488663309397627414478770266785855027090260281874955795605152044890693924521190752188208017888105516709433523066043574015444421262344752260553488335918112040600298491843071921573964699175038802326288876604950433794809353415955277664872670572803989092743208340812489857177550844132333418686286073725764244880268460923012370012763960663328479473729667863228547920271088374667613888774059004317123716346887280196568580858086081725506783617552236757785427585119351308257052110879031736395339338446313406281754993386586669411758045003227463689377649119036515376227466633523700394565960550506732456598828458180503228890088576917580224944218091139340173014005149353498543521580206523593063699991874161385089663722706765686198561531594778747614281315653011904611824134765742077407401510095846058675335302638135144332486547178975547867190310494877083650476021856452234121929615535823313921842879932023542469473381338770227876567563204185824407314453205849799050978843550994566494146334743974112685059677907392177626069340589195659745421516159392854474501243505804861480855646152902641310155287180535683716392737232731505597292325221681280610273677112584680390345445934171441132569210533968940869849294012965025880372642345191882771235512845530365336212528521696440531674822629668072476350161254580222569858882377999388015231346432834482014450645116192557892670976164679319458923149078541634106623557143328260907449339374687031924978983976376650083800075570595545890914421381301308097746216337470529599382955848991042473032666920226569402726904102531294585347658764391731504491154455263714856606156845595872484667864305569522910272755637194456098962443581967700021898956220452886773545049382109665670833489692081966953353894893325223577266191604255370286547731480254045343593484593600639471952678744033233657997179111952016171978602888634397531271246917438371973919840769649658519932701415089553669480010025479905159300965497824743485471725050132814142572300909867804560868048425916185440166333278323753269338094937124195510374830780460716342405668427755178354321384340499060271108672374799196817929482725831548103898066889226690503314408200313703381591533875740616104968916364688593284738949398332961494140185445082244040941675360211115039748106079349283577967926492552182601592076545701712165493041110975524904710102548903832320201118643084046148352895352328123735835503157699957551960265080846414616702681726012438195128229471941598411591654756147073188670400737480121025664756961243503849289707867052778509457565015681266636900828781495036854668448557333216723251911205833507144836776795595346196200084094800441910357363438256604583406041434504981316504575255498131016065082606489937894304282368134998377772320939071965411445691112039786507580387724288051645048848165404252496442249665232316998746838099170389858415159116836240863921883395188130634479336580428362507335192757764628662148176126915508855265853261511593125665385766046069755299938780526017807570067090464543481194823849279519546862445124436538915107895057736655273513657802267890438342972779604058740395493307271695239182481255221749512442883723516655873726609280179926634071371326506201405748336345597925587289835505859928878012140082254400700236280008528104556474122784801037352522104454921380567931260347543443145799978680629871680271944613903748125641138425315411223863853509008580209322850866558807769591697966980885246929942931679453554072882306456857265897283414623000184399357114786389369317680806650881202810432191045859122442328918741470143320581320087202018553150482642628678686390763469655487937978408285078036956599255094684127724070163540830113814248628317869095259011941509795943212496808237481627148072299137476556485801320913626005210518449188694065887894104449187661566181615546286085151001717263743655875667190554909736258479426069356045168018311694142444953878975700690707938701535530743421711905616303885873818205099172100429237737975438295615855553545081184904202304351099344123137354509600749792584663718098022401183501608271016075214371212772505297398733015833652758066098299445464716965316942529919811503417833588966257815711324109091557677315895334105326297670415017456493257481667101884670633690061209201501621076164260027209206923974640922808098522414910634089642411327707672023696219385321629331806544006835666893505168724062833865017886168982110137802169588147258384999839806153980162382315850139633531264224572605832482561917383352098721166785567420230187726667243024749600841492143099138819011923385018943522806844140529180652318180288721573739402997555363708873602266844825921852974172841189432201885648907380126166679184213677636850162975460408878759659708588327738726113135174257854401417687250730007975098269303512486908631084219970502569765456866021475506518839433669324199547292760817463805469428634818961172179148385396339060229529982859019984843642501930394663921660216809672160588878738815338298847229356635407665201759543308977137488874599277697774807471990014099661123285804608382729471395080548509935095559768219379182929552648692561267595879505925292846778586738212727400183231387651835631354893274907014671905891351634708790761454190098400385989945855009859827062645271293849024189923244079544212391310909328735734264362028526714938095629409471340952721494854122957157698394359081846348703864614010523388243864755431907297906512777889350718796048864349904119009580469427468880597349081382041543579002698788248782881638064965248257812459460181708661355519450462980747639953702410337316712373663642725302379350429262595132682124997797036725856371191276873214409506494667802200802175497623859529374949598037228543896932962711537695632904546146084820321099419025189941105148872311831229982759291134090869387398298155463539506934760942288216899915453812264008664285193591279082481095086602177924209847192753203087858757755059964121000030916499383603001889729007145252872600980477812580597779503373639886363702804608672716264832616999930219066422020688811818104763828848939136325397218156904776821429078478463663446226118231961237401120108780669209261211847907836456458489940522105928985913006775602495235791271045183132332837186713451711129330953178916238662794899114114777864281282442861658135107779685695680739876687614513621413212220423143036243982028980498513788800212231046453583056200797813963888293008350598573240730398748487646709510561246019932569005250888321277172632449540167024314500845779929975452628529257795694192402599029490089901158964084868728353519798288420926297456853732899820533960943099224988532425609134340228273521969401572814932123631989316343165130223578101103642116500756513678623235222528515543107989059909053939376945695902951014778180760670749259547938061794919211907293082003829410287373253088032693086380983972345892006056295576425535254866866087573954590682206003094774346730946052501923912228753550582111123474606160414227971913970485145941674924037687820216641950979037645050539530042072541640676293911505038342861791164602012511801672675762918308800784898597513556305492346192532948084771766942900922787973654132910896501385322917620764181193434462872622543777242473503549629733392219578687852680446795658765504758692788615924547826968339646515233488647865140712804341438866506920366616704574002553919731505179504680660375529451373942936353037904312875366423964080292052924081133628183089848444042569834176835971038526228813415803806311875957156728330870127890941710272768952243598455602582184591288865864751082554190593441336318499393947066198412590938879638746656089736368529713460298044795183862456865685263397525884785032792004500818715970020004937612197010105442016992936529929223233624761933732438986526745444234073506428553829463740148406954882680229089477047388581967877437663227119172836334284318268113407466107398224053516899388592582106726540627823247084135941582613160778709721473110360773301622105217782774965467337781245752269492906139748605111419548966848977392933330455404841992779031905722497682782299813160425471280620091681647971951779608559790853065603219547477615803518176483426554196461726939759053737155212063290064611424708089771477553196029368343253412240808294883112451995132750323363541101380515760798734040044813403304635036484369497939079851928917222463229569541563332801431530980908367967745080529046286297448160436602134949434387566995920822971162435739396624965602347764343063555080484998326742873739340635818562000418356476546911871579546796576017795564402264400368032288344045723810216198996518538210398654277824455232957610260718836247399255221978007094563462716852969316317075166890981738779401859116529260252085715689846836537707803024338048709245919308050602720164358542485085529964968085153513315107252939877402461898360507806883802525736794158563491230192147836798346256051679310955649520954628571454702802882654619016832380195096268593639947694578656614915927487440263551996242750251023473701792335321022745716870566098949641902759850251745855216254530119764194608576949852172881743793768422578479597805168870079984907816149372626062571230042929912004696868245645755582033168559739977948802845212764744818845461964447254200625116070243984719296605200482277411377127152268386355244049394973988585635079166739169690621592993792587992318645464241273085554865386018895514960818451927100388432099873968098458330512003034011273415782159993219026670616299209025026704621642726048895095372688609469282594101499151357301166968211858127520497611539794579964619616347706814495618282114729857314439237630101612752125229988499732283791438543050873208531144622987598909746294846288051901903068343900745826131024442348782390126103065993003375870036362865512985805655324396577149247101814728623158003427473174528252539686163866491643914101888080709673032990504075101669532799530362472018780278385426043140108559899757127795281568463119694920900503607669294093911822819327607647667396414521372353338441742582746161388897690833609617211824774096487193059370727393795944334542899321044584337931370690320352321381485200737996259274763509381056280258858852106455729276526432372207623585947901941725871130856634847849994076163765535357857123407702685268263199055436627429222829073715341463316132971077076879413385746496479431463428964834705015508401182251737257355712629472096513265249802840685839986457256692212307304427890694905499995714579327737280418826760939456161697110635418329367147563477812021939156808334099631264959175262394681241312691347445857823320236958277566083505594979865052747147386265449199059091940661623464869961756743748752416992295520702252734369689609122343783565911597440948031168031957101787342380225838082561450847568332167818194664535993683943028395411620123448970212375996199639344718051627734678052694326627346781252004978503455097665073853969320153082748390413592154907133202836442774217977282201986835173413258266778385299283883558062687809376703683928905615056763856645184978257464666149184939908978849919221091988529473411115267002519301345174890676802244371025615384572131839182424800531650379788710422243579167500737608469551856746720732211618326757446895879284599195050166993071833091613520824455843713802053323846203200840569490118926552162872709529481414055350078070306458731041853691704958824259674072324451990266131185993083237449396302921976710102388494489487674626985346454529987109130720743822340948752616925119959738683120233956537314687726831863989065472129605641999447549305663258397084282254899745053809780997903035641245571731207742647896482075012316901605690318270385489895527362593689899008876734742604824331852936911396378978503425645812391195793419141535947217626066960413437511131846784676343503782625515949165105959610810283966379121868956981734106029620690287530670761662061529272714802699873804133374998010381565559907718002194923413598601750172411353963482880025096761481303302103305725995678699734303635048826176879482604523984747089860762672348047356835098538538690436701045445138323079742958653780110272758393545015434881164950024492419891887328017334737971549562170331413135533967073788396313702651219985335423550147720924084962310902978126288693131426233365028733779764328829385228391600980659867518015344472892478112952934168121302497094895705575567048268689931895773759850899147171718521130978408684805726604372970697779770812822041115550928934089474430684192953379587001583236724049671960695005971794572244320068738515510372298576599038688988778724879206726187701192597937870297879613512857890243828965228051737840608696692837914133323224433067363195385999175072085944810363351177118113503860900330015842272121933044984049831584931237527026653334157152796996011155805474261759723243221015858857421626548190416613983506037144944944899839396515638433069045363802683004133720200666068564467293543574301005999352341022560259606818054622139248059629762519740420352651737700638876882644194345062355254072198870334292775236421721804268423744933290290835079031741271779808244574809927594746096959957057646613975800520777584336675828623794062837115060871243038384087784194888949898789135531899738654609871978313954825589452126044011217536819695337148505209054082855230900568468518634093429252816385318994256598968370896753764028830727700997093282695925711994087593416661582188304722093252085709862386659979839061223676325332426101271804894732298725805093813023767656294180166646909157590762454636792929314834214135271942506240722016719300423859169946633053338179333086627703115726878607866879791587683285537973891716698427056966207882121696081771259513551544503080308647169874274099870973123899665996751574130356692292395432470816205718996183578258096697790703661591802214194220095705519315468373373607286376860187527402481933327443481423498765875069256116505942970737206220613426182972952405080229807959617211343420973772276259848650039414832031403687425232039421972891142357013814620216492879429835933312417655195500532483159398597652459459589507446397855531940794194617230536158681054883168890557111168394777068289392500396795316379328783892337587335049252984659737672575043688718684893944616271678799707543649141153219333964429294641739857175808917810196029608002184700916603132194180071529286576840194955569691209675441514987883589712622795431190167030423334181635059815064808383736851497717014261618596093566560829463287582553169260783530203367216523044563116217519381584319714253036906465881703230592532584771269445487481847527527259180036082030030841906751248643725990873082721155388621955842850940946076245711207344103048832626480779523677031375794162495978924835070695485422847184364289609697442184506874144369383025016340047191536556064955556119193514779604193582504692689729758223976794768781893790945664537411257245276560255608707627266695608531709098432123804636391854961937998131842622474347909075962808137282960681276024451195868240547487027809289640953182006240966595567468419485546374103395084683128890238747971687419113016035558251996978857086945962365493726806634058368058092404436612861953052224612253242674557412647509555839289560741524991621482546850321006763173292449152407672462455117332179238566157524009144536750948268262658754833354885068218017213109186534776286395152765450201241184506650911221319858702298857570682306326208454041947403752560617033139992904068524282550830271659048030016802177256256994662119356337470392222693712144278093225660870446906664952004800760033227565198507392354872967521476441675660190407350121909701405038008168190245201690737545169582754158235497449227197968710354328143162610910915133690232694943368999265303581100143523829024857158982304428966436368660197946200983384694259870660187919954719882028812009475786160607737646160923719631161504353157638747972370035405039651911598701249333051608446610999246511559837782321431926255664496177513348594228014989929729769480653517969940460235813340076775726328993610425556969852460527708684039825680584417297793801509769972627917867753930450112052440692292196636511590357329877198590647802220273472825706355372928003640092781005444046925831220840600670503227366242982534019072016279212264303941550182023945946021300962670148803243155343762214195458015251233851533772735549710280820279514699570294293505713834812601721640656347403285820075636541133879549620293284344848676218476602818043259355871778875513461512074334535049855309919601503715004745374144014847462772922805555127198195252946450778703010279719980171062737564567635267600494660252662716140738126764089386101489664301332724954396292616784085010265147966883639322204255906865536080684007960803645089918569477767904467679952741438778200429585748396755982153684256609153404031080288959489149157360141684208025153822084855979489035940667947381586963154281236467002852260071308925054838076955637822573191519055913044027545141548168576953299170408107808376461987717379878007778617966957775305672644589038401547394679431938367145775927238968869762305753832174353460562370112743302284731247025743169524346927981119985149505007583421361154453435707170337942683356631797579650917242707693923730163524607941272515771107413917639849743971850609043098929087095839835262051634813954511487069375553204944028260165844409589165722151512944706895156483613307724783155240141812570069410912087515029572040202217046811872706252896362656732104713754891562385783955377336437476141835992210423179414907502032665722509525333277843958466663410388929592272110474936797278061867222673166466209921641992063938868158864862684280595211576291327816599788875760452711763687656109225606186132387845474285457892781239015627672472902536165249981029048671081568580590384699194759350496826215917875309556973193398177391716277549198148336435628602696972614449145638477159359280548633437675655917097426087672396145631142377497001620367581251916174448028660902293462654163445608254416867024429477454493647624177932437418203852889038727333874290923374272174224773500628272286805259651132365560114385663806998726473804879671247590857493923530729316677782600221176282053712394181771092118787905009054039294144525932090897321970463785061638228609425954188784805244121850681654732292729660508384193951154901241992100094781709297667077874248383668260973791149488236855126240963736347074476528302248687616957623268060430959869219612360355558165268229137150041943184147824979212630135087939641345573554438649646901777508529853440607713180951697637774263382670795414330482244050391255441157538091808010470532526339680923505684180762086407281300423543315800893576504709639254962852421197485816525104552043989998198764965875012855382862173319659694688025902941723890671331826343753223929246065698227814233615687102246407423958768677010915623872142779002854175933309148040180581012385121229885470718082890027940117902361124484908843135362238813075854786030798789261196342338851945207031168773088593606638961086255018219089121502088328385474945529253300500978361362255980445125510514316121496607248375596122929927504204643378295255470023797070787857427023851380148964326997710837317157114401327364032278337762226105174585648906364634978847013826685134596370096420975822677314044529637500971913964956528539792103474245462419792289595220852269239623520052310541456385490347418957183516348805237217303441810849103970907907283836646775896727242839719196576455984818357429095940896385598416575713479669650928549695572600827668049758763666518550561030698214196227532561586531576454777918628134887243903683472199393495108808186819133414065624842954404433060905205105568210181786358133317666049911153719084724038743115958006352374063284271717308796731685314678100745778767265452150164701802711951362989936625698653190041165461358814099327539489121057877319761591128015833787182035314907062014349921914399003450912599051179938467022801041850148656462093991665339366628100026065729350112662991738442195829289503585717263143826901601629442123635506536167716183921529090789508555815078082258571096336742234641167053406591704947648293683808847184097921810224722762151087371658405132925388928634445160977091014100627028800531735291758525220707603083722166351685485353282885196371427684732898825273881432729378776578712058016501391858349080845542685132809183428668641964878736127999393507985833908777299167667808257569594850016437626125568578936752409128935744127565751403792788315477306525884443399472212583146292503158458786894326440767027956325128753937769954194036480018977029736342069147464193029868458440169557343956982811454221688939460938350869105270676557771256312529947510978382284855738962320095448159233227242400952738949313451518657254518012532801180047143208631967850106202851203805296280288912823081821401951554860798805717097695177717371363873619074383064389046079073138720331238934369886953888214705915939943695510537660523331348633947980579302264769135152666771384543986896946705158412359471735585504312645253124400706331932321225346328573996052554451606533321639367939143261748265380096254035255972402007279268523693292020256606853108176171796297370878142315796357520715379866296388705223285975290569619723550884837123545781122836997662790897895029675675230923425836355542368535049339436987026771688061231042618928244070422269058302288354117945528445755982072850549271861433353782346145475119838419887336933732045513212130397760704255312724404372056145697891581677505427446614754755101676888583361308230171140502343544663430253030893901615848185147622405022095176870016251748823917012795135665921579537700184670231651960837570840905196710473223159448878594185018249670504079800091578048586438643785825157278282905219192048528918381094209151005190420510497200695492958436648679615627408397823577190843080890933243739517363999914697266846025005772225982631025792661185061821264958684818551637414447640313070556091237182622092254755512832725675480894447274830083967473320038585320096238031732168449924585882656644963622523336220276239562899499188944427381105127758178847271066640249038136980769696294364550627355118821771310922966210799421324547843464737117515334987839758689724931518966459189453276167005141373891526998867762017291363351361757969013406790825282901144232126191386938882905431468923274370837661996778309179271342524756681734252902238498547703766539959485307488330105651274343566767258753510813095667812849662314266890598612656989217650059175122862025863732236546033175193817974050578985106297341022723720902076278519012333429214447047215941835978471478461152835389354579833090542596939598709397609239962552579467177701663932049115366111318930838111640577428450990197357784822907355378851528526117398345143765953531371700715924991520975566506858322467068795912462081025517607856155362596709757961740229888662691976381509876724478653012564314376085497706616156951566141019260115682588659718057789559446732411235305087826508803550987776999019485112803004577338954435559230418583551913562850828479289165696548756419249777315215883716668620080984244406267849020630600088708838873897507331229466070448844995123667906619951312848089104327427428013188890882031993036275412206873724981144816310518982017612821862662826396631136575938701451163956093276756587385864589391899661280080976490412184108280717935679989745630615606537062616391148079191439551631870943852790723151444685366336700289672947712852910714794245847347222154629959666160698823673368464081655637935359318880353105813892713365013773980939384512961465669640071607400319029928381631994104252043919692647933567496049955590896324875540119965589806857151164378840720555637026742623672154258445281894123114472546227195070994806949011603406653468299425589653533224195111115636886849430022617939912619821994270190253900946147628371661287444969768167026953795283728645238505409324936234073774205510786737999955239789499876978833793413507192341937657655567701547798400153566879909652088164742147374867571562988808983248626698923458774996192885598550638446277025424504265699092831658552570340376162851677854200430250519926650466336864894045083172982916893002904948716079236501874146264143243652246755097120939962838471006321281738008902867030985349138089470705473381466986102440689190692213933068729517265073136468921958488214544046775758263399287830965090693898773200866731277386363960959224570190247198062025722678862365391063985822308125121743503664157880796318105030233717171071651627243361123996352464457552645960955980721877079216960708860724603242518559455106480024147692448373834720729123118534921478546219302974360185915774109388954847501501915663296285967352624144926561011405456041566205027500255942875725669728046861677847079773377197265674203303243057328975818894548311949093061272821011830108637232054047885212979611815885161155241298331206098304325502035895226094104903435049065048573405989716223505092294784720213509613482842112691309718752104583779319825449019772992243114844607125310673114347312556930690760542098114392298498886738347528492284599572495650810924363447795744831903744961756734828287574528691513527417366923273195590108161270153761292413134290016262680701626638030787549554135329699946131570317697391733769517667703169644891240235992863245822891218859859988060423792503441611368252901114978895843055354864895946609351189461577501180145520565806416066564397419993825804661420121177379503638074752009239931846322746217055051739248847488038060677230719785273216761711847762851331941640785668077542181404349040703241582498700251649981188945067622299200043501437855048051373014104477240048218549059459402476218508668167929329478664391625113406263295887502942453151816671017878839573993684591915163199841164433909841868545856943606011333085047486222699316119784886904903642437438120727859011926647115102064890777484974693479888814640515950986125411207587128804617943769733833814464271302468663634867067990572899538796476918615996630953925406790019300909189125278683894163947281722194165430607977217503398688808694492319188846677885508794477485452215515880657297642509116248531560081479639670720787562471718241073423184274447143870249936726946049660777132747047653597450117943911741000612247961615800377783457249325496395186160167879648656367733311481313534075341857606670447211285448080529159097718712138471172219811073834199013485891290061757113673240585880040388814005539252254180688117168457441742034346124914822840052665558017655082480890380308229918853853903532948756909083143143288075295599720797151623841737368686459670733107664081060933009907966472826135244745641587919505086996422460448959915908910880598899961134175315984789362831638130078616448902460535793900881460489559732298613438359585280834480178983998398313271361593147975647890262553362349854740464964614734060152069986872597491824086334866641747169807287639721171702150681918396526200918689376963409660231681879836279858734096695963608836886001485566019213360258493633229739742085190023307732462127299005857285118972075350250841135883479731581249033703400272776417484884569100842012853685960095587202956590848458921854457500951120993325259047664891062828174947063094263637325067741578471166558065445145388053057016756041527442136962588470516285363245675124939149111667855973365699830009704512459023515506216250887133902161089642626759593507204642121454746051889090675851685985526853267066577312417581589240054026732217777468252775535573184176946039545570212112194812633887805507065363447208874129800622320433766692916203218455194955378450332032450159859453075852382062383361533950021178768194503639115833808051776310570032043129248907732328562803159607547698784538494301464882539058789963836186634490792343891217057440398932513700652269510933223810722987988765611805070376374405149019562399650916292911934023597939867957891701610875673627521667088371833174705929347475460891194438406324353103070952108653016947763056011812540210786942747237151440962139137204451646299349291816510058810672781714921048095109050234808136801544651361887093999666351432936472384332641605470006317085736671073878415814579913380224204849989096735789621719838151736982522592101144565371131736591759479103863576258782339715185557745389707655206474305165597032567282087715803291584032362786017092799570472045535909540222282715788698853755138668506872490567268879026479587456577116092029610316585111593564696763851773089944095043697915883075696528515267931768977253852026899331849103817694707684303080773432898511109826514253004340585985770749858975809930778186992666614719154982205806209162008998929391206039416575513475336755311522205023801486783558678983341878490457689254539026138045438716481736064321240891439647813333230467874035626799225209092434091632369913626604640163741330759945330845827108049489732377043787412968642573788590111339045096957780539642443396426821247381421658016758357310292781636113862743738857934097095743185138554676083529928720715550798882883798071451089087270245856704704505028584693994416572622031076426246917550303403560894258804301884339836587908126714809168791292144904166414280904449853542875953601928867205408684924578912244431359250288443932102551560503507210280950990959922122798523323661645904089151019845089251150493726172408918026389701881536490881833924704464174770675504515878952338656062519185340197999865628076621280694050682895833244957226697874590828421493623759950688302013804250401916110806018274701773051863498455565021119790364067864936712225245785807550829075178625930691339275492828199411644496588949847038482491812644684287870766830807324090638448207075342567324612672716858862339810658971183020912805803419224234061457818625679845047600532563463364631069666061082522794472586523401216268011967372024215072635826407875788459057613069939824951063959319514079515048142428911830703448314425885963460218835143086656595343513816681180228096604213619996474442624594613564901292751341681699220162801599780450735059731208489880687987949073937297508849651170978587970981995644998126921147026150720122314938174194181277225681987717715377568197434772569787465421816658202039211091838252720126153674468207371110651050206837173151926673038169068535033710147422809737096231545957751024055547190428529788189117030433127403293654557637448382043323453915735683883186021699135419256267061693713651376165454060694199772124846537579616389655732095984887501154873876727282861150923482032561830410882899494355682178710057245838713078261536774383508492577616311154025482227477709593707504712828985675333049064970836001269263994584369442143115542005025666405743702401129512217697379916256911016898193250459964835920749618214898967049813983956569684825926901479659928679581377847073278801039914604720846038534591518667888273649077173030270149587946429946537775832773508630372384605100934625581571951001094248279634222304102639093427603663450430741485851354646099773602094991292600312116380189387943740357818234932781783771890159412193180937801220175025319528585406716526178496992364253165973073246426218368585500557104226595326844389934366298078210403923210404660773153913432684396914679023083417375182406735438809555099944129405295395813642972353179163868246363254465236517879586858206157468315386144837794646274799168357992001522998504015619100652522260875039737052550410883392880829013453620260668309314820585810996600434458855469329169566087597399258961149776898571790594568416258218424310234185878988039095533340066946633300843784955628333047916586734948587578655009734204222575180401820445490617175126047022926522499824265537229276192780687105100021836368859911346630631430492327020040954839298612568569694317058553488600132508221116734924218660536585497569078129547499823718832779316689561774954503632735507989662663664801737723181511542463041062889858996917409909765820092629835212691280942938879301272591602279366546736940408272954138313734426481129225538837375761402811735048774960702504484595908109804961746320953465683365334714652749992304228109147247045965914343001415658286771010905817868532111985993659556409996573844823511624037939508388206596418187851896375991154463759373890585636574135539354104985462048210902691301691821331367267068375390571549180316916222606067144031598564350374934301867540556524858624456829082562654934221992205013757650382593124189435958344192444850325384703149912669536873164108329011678905236731017291397398531471522283156712003896969572080533747578281052108037101856341547676488194094248702909174023313947515655036454715976769321016218138713723691500696113356647049312743790700220786198046618675289866540316552453810482050840868467163154619655651541863995785944568296740027033348512051626473760372865221975529609038453063353409098237933272881384778246850158707293949267547121788267403130049923699637619646850710895959714860103720248201541599199510428959825881675940216070452720277183954164071131061120988750814599829668811291317414673303065172595482388837971538267043033562809979590307583655992419129199989474963934538412885617491842537402339921715614406148565917787585103203998015547203690067674201503189698946429248158721265422352393503447755973251885618295004391620001979650131650065721214462041679825768818354723223536986968311002648396521238512432069471472860663507367141842233265415837911054800950035754900071841596266943097705149016294853465655644254269412564375977506755465292485196890348981209171169729439926177732585809876321464048725539487946777655888958816091479056689342015495428627517349266418590011776482357001207108943372699837122584941960445883838198511002894864482982670831283796247921540258084476816880111672151238841527164419573047321004448458052266251745128006827578541502282891234215738705246911642549407107418845954126350914979835045547728501731644918566043487100614543606938310582123026521948720314744667912291197115254384886499401700286497089416880447064739999708691876518444280359142416680214332594147585052487992244230806072285990510645770185989421063836275631404811480919211852809134642193551266352727591774218002159674487228161395381372804427784243581991239896339919005711897091027339086765223569823722007211763278621636617783413902161656366240057888560492803997698976813541140918804963902274956863418739432351505076032317275400665073052057304308291707102141072885092229877122278803628191106750870146585004692624590912733541653388269274501914107819763204713272923261277860840926364191434050051979248166460696521636214489897732252824572085303124039470539869809042710140246856507289612392891305030763014738602868488032566034555693029484106034918870732882018284106611019818325679173331054313527040797104515430305454925442948244790616923098181303969665328502993761075976898574579098103578326143494163097361285522119851120802295883272691284538023216394635119786246467105534492151280653535188787221248171660104254670007324359141928849510961683482006989022475719905740205854561164587870402656288259158483042622570528855400966316409262570364785528841284954683139536237738827617497247174458709179140664424126615865216007307544660843125245790971186552240900590686956559952759956649444316581131581142769957991636783243654784756764806208120057952335235372091431059958783211259618355789841344811155225777294267603253498927776586628389635980086120424003639844935294479661304498576790961633245632510462283627823341909386258095222821487540617485796036026229984388407183518410235741074245027808813435017177841855153435493996185537626406127120625823975897834527776035204002472397182487145089845829415899828523466355634824357307719637653124769053603906155791906159836304389207150353578368483818832259696940155523152886610293400891639972767406056315302601211577969893666950421901716451534237086195410893523631791026798279111787164907305384780597711542567565576871625123078796337244322846312462902487524367637737915478544596799512976304586308646963810928258224226266064366100064184309841032481883580480019786441315973787562884107143874487011503096556485355783976143386149032104271971261725566510927841732133683771982107296519237350704565610643317163179122690473746784882756708359426526965812905754855806589943816776718275274018216617581075225629942044091859103279706901168463179939510984502858224009600958332984536257442960021937789737779764261091463611259813606311530191731539889780355898791693041757152371385666580082396967895151587734874092129970407485561746575653162382924866344174056195335534274280903744385457500431168045938613191148150568502560233229818611684295527037151908944398108352495754990858705141835779326676341648293015449996328144294540973752279705132144815040805779297518898281251367555970364564236253275697329622303569354209870218177691091377328418014235529853144056717332968369865551856001207810957276893721463652509069976372341580457020878264324651374516922671132947435503970795368650680300564857860562684985818959909668835126226864953213704745848307540410774555299173352770187240253286550376517458191693951134297248328838679990376630020682781266075701108337581682218053863305794720199550033538825483265542338855301783613580454157530783828161086914955380338494420314883867723270305477940723526445699175285582508829719568901975813594117181793551414252828135629603613670550122348941952301108988152703763850170391262011989334366389696940926564719884153723548346621517408478923368046032395979938453710568153557672674649430632736510472440935049743864757990169242186572094910232800078150519302458301636919776782228255723804185335446328225523314981187448222062492248580418690487542064932632907576340705686718186510694069796548132115324731617933098520188414650429803966854260942517715300637537647572150929591179415690783587522545242718010063489424899652231535458391721353763259067779711670400872796780900123497471413525434335056571271619155640234346761445392421562280193408810003270384226439865689903657126736423163368180879489087658060696736130848441334459539046276046658246807855032413031034166790496442495718541701751089909775714040620771644795791152310459831072472929315919084301492402597454915725950985201383410096887601066852539383280368932692406125515040464084903278183062490887522270072376361434481417903147957705649874180826966784151433721028870560898592031800450365799494839786219339150775005447939841442150788375032629161597855486682385259829395312028067768146095734461624129309946548737498295398913986051013952674523612938789082601662888272440480361174656001948606237439545440194417860212457025078589758913685654091383041127949574209577980835883951417990342770202833578247636664898131593131906713670564897836967419196448078920372826544992972766209532996510770718451070985764559678847876883090145078961652467007000157032589493836068117136633072496936247769879077005377405604587145301416470932277178291421118760235998303943426865697023104698054411149123508082074380940859147272521467806345719593913978498965311457905056899349539452756074195425237643306967672554422315669033985799579484993478613275934536415422030245802732470597792606956587478862008641763222523220730471318956110779519732003873861891332059559581170527178995610683641473998468450935128128585947590779282203808175044179220362706740977915864534690850060228533939592752961340395629005820548352601573759054768547400745180740740310652857144507120204632304805175663715291979628161972235712501940435467078194463637525588024854070515829012168591455116610441440005935152897033521704989429838691587345160782061849839648390436723482975349782043094610392733175595118554580228706975185424084862899653587779234143744440699071275606287020762946381065114012571425002370559366794591555183367316076056938152994066977589568728333523546730257864453433667160426211149504741412446103715140992371754380782579094418563879617090141956646027546440563359727103669625870941034901738883577840992494509052857158722437605089761938080221574998810628917972797940000767892766672912946326572932471751325370815978666295767327198077260792618574739046343223902424784093291109521351128449221473630777753037006239253660922762310918409679098997939968612951950465244402547015639631604589163775384366702767063282079127394312554722923247337916300526152875191693708240057460611317340021513133658148959505608161986108716970355152895521038591506583831076867596105332163175555957550923796427564951353400705270189105029907810049554006601949499061203294989389067827982506331293534157546256887874654801554688072879663979778808435933943013275870900240135425184790695294328619384563217105153263994426912646825879462524843623273227256167796697227787643829955712353870342961541184231911799178070471275617448599991267498705338306018315644903297795099709972773159786279366405713854920321775118309377784366125907476911645198649829172832101640535176498906022102456913814620924014684551062013273173195618820800841751894586071388101856680902055634073785886732928105266831810136931690386127408276949420123435542969699092717716858079769517440525817611596500363878169055378819137644790135020885746737753833789862328831227938509405718303530033958283550126668878471596452104678901753279314094021472775035162382355812685809621087796702902105622411847433481438634104999857346427858271429077010278583282376200719504882906610726156988816925586467327347662667272553198995744702131287758441289402667614470939043293257407321168049115508804684342457490471344649450067448789780865740310572411854206202603454383862630472397908269871283533155990743509763725329093837015068228330796536345524438583920235431426711573318075435768710284080701645929726055587503409070032231793365670024355458216041596448799536374386957556055623640239318490316647052838853642927443922522025336477284987149126170814409239896410560401623909742014575855277054980389414045329227401291618613823064015994058779022042275089035648517313513562067458548049719718802429621249877057075108908878365389387284459661812845686737351301487701314936853871132843742847814789509240747406999392729881057668381969887578690975460533488329057649039890791328937177931778836524000073310101733850544748425720213647794800196903554221363613835210365213528548981601527330916515951948278719092154284416133526780135571706839262935550214375554673112895758543154763301354354108626164065730280156235869931551076612303938164304408352957451498601593030266039678790509046667111552073684188014502504505835751350530082912857025205698492809325009034912672079143662873331889448132476281083839807058723547968588927252045714494411448815263250851074437969892748086035674476956683018143644868927458261787884813565536252393515809563671286394004916223181277427968135507990124915080676485340821929146377025381181607074626601981504849196443476688545976969550443428589050127232252677062411894892118294528214496040947562080111948049041770836800393135897455060952295633536732022286743328595367360424538991029631123768506879772252516520592335692215314970817695212410583469055242715383615219461148572801376573791675759204941827144414671795888829818687328790365679869673420726143697396995078656538655328919868865614634659137474628817268303120843902209751421450671654974681241390853848951022902805788575276981909487312389404494824646316228878225148541799751027311961063024639581422355465435860428923101906895858373239233136090125389874948098603875514851284954049288551535227940265791842281351927374601111551166683063316116418583839496539823053675134886979705931136441043161808979294701212976273249962018998399796726182118865611932486332416928290766708386299502480399064582456842279692058788022220853389732641201982508885813295796245746363085981571716705858270863373568763640328025496146870538785588973711746761199752698218611013112114974103489411596068517284584805735522704235269948023765233506717429250397563790704626524729952909335609612002957696276691275869219785970937685123032060794014355767278385886766245651267578854305049155438207522605914784305418339555683446784820095792276330620914178904252707079479555319412708642510900005102923824296135736669720237772841944591655938610819063153961622230714677594663416192809525710496594199062315892607740617288170187371983057178443200926529930165345637221116439668176004263421250780232666438755169250532566766654575902506351543208011604712024791667310805523942283346492587957202548623632693716465674760245395920357428219118228155352794327749001289903416115440309320945482940942817525157838317424903927957638618773893139774475686177635955773693726970649538367715817426501521467052190239822378243651100420596601213919909819936781142180439739710446376645427245345037283880465720320646334819828317514982993539278263831142127694810486821434625313271600826409454148916315169311047654528469110085122001096102744757994918922570326824180720662288264963383861696776800481694138937950462374432350381258027527064117738393241630216810455448786707466254282201400439090245112807397706299360048260912949261476782028459469304844461055871935794328897287948072018742005183924445845296252614988784253977660168425953725007849519812431714897526985800073075206062989827475169851264175002807720058152744571500005914336894499928961691128454593555051705317316202305578048840070030955367734866681572456639011401774007250947635687325943821228605637941469398746522240668656613069013322589089280148018389078576907185320065164310121057424100472732400578442060633632050794032958990784084110499584212793936326771750818403604696474667441454384715388925514239886189192411218827487893990397114211806449194034689869230252880346019560157106630690648069680074318467088551838369703716297978329004262617310152783551959670278959114274617075268044257251817339920789776504328907506756315800250958944318194307886326147962290062931248880902479589651281965308407084308361049746721108184879858056370074774605269448708721991801175779599172192710521028584070646225239523683299496054490254060262957124848659027786072572197242594300682641448574824359820136886519823474541149705562536280450226402045844105219937977202570170779311381540417740032246733487379528302889875714115398879314920122303228152619696903506081178113867556793709513461544437851992148282038693151410483513144747496917360901609042105944336936294649360986742056866687351317471435657643667364815607427199608358064663691842607011826601115925529056957809400858276373665753046616790347759601357380854536196021688303087818415137064025364959054000755643529694496083066334082730045299717571835955357126223927735076236862933488580399167968784076129452932282237602288523713094183719603236277154084863098816743196013818173294513705745126737359843280270801095263294152834175152734040080054617112059117300154055652460520066035549293615237296569259872227250511493300123136197184924531013495808349453347091718031787781105513857507458668774453271119798297974209727273661057923479994240355371748351784212526239357259253219094488945416332544157545920177710789573177160391837274641181635594263398150986344105444749877818109871007935421355942027474754849563556247054478116887764343268307001737403090178670750229318576416522119946251288811252264129776927309560179692362465612071282541162648770017065438968968583741502911293226160687292314027777104599622970647539844096494586175728657825677252052786972651978486986040224087180804714964139975709109665386564579900908287175766612435926074214712460332816843938184647663455003347654305319945324569835989730510203192735779546922426048096766082119015236182522065062485784821762073143867067818301235122766304076661660568358741782814907733647792742187488835385138081952007634918507835105855749340984661729856456631822402886283946596939995342486286796929107104655565381119410478823808164424888249061182414897335698155443362100829198074846433495994210761766483435120643422703208926993032014825959719398500087752161622832215800235201020197009515678115949237741383798096781745313439703609152062324076624177059566291352680255693909642323658837978972833698596228884049271874514409734288089011504175718313690388612663065666831276676137073665323198334802500860946908366973729314454970100963030723394616071745629089698529066758574779961658555075001133329352282677459755287287575923322051166929285920663084925892219132507684288816140943654575249625289770898367797528290496093489377949878685957085900408857981705249091314746622883915051845371945039031221793377295697352228692234222761310811197908434058453692890234353438210607699002130960656040912571018181471853845726447402153219808844592559531073679176663432806001015349689536290465121832779132105388366520868291661401012566989304085945662555047232066193870617888889951318568437606619611999612868075808924523695951748992177901810527684683567512448574634424282376973965789743059000923276697685585550035967195217478439607801798828901661157756321621602022669811135955587770530324761546510696653716128976200402436530994881531165163602987153830610779262694013298087676216969189059370838929759379335170324446873109956756387041631018826891215655513660963057004006699193827125589117680469871307459401500600522039338713013452659888944233225638436990125747651731398867415662798429625325212071239124809764752292675210439968235050457064628499480518649757815866492682974889427208062991354895303365703555405547245098288640709106380439509458266637348540657680666946876987788918390919455552241895010420468572226441673361623455992482380741327373476294761858121945566518132024011443006344502944932738901377086603968853078922192818991692346616891877386123052321587182395420480453448573808643436626759145123188799796878314771668906774292756717247408871945722018856127581706929288943226467149339157778556301855176441237233633695439736629848272839499088555742507909382321185476271330112164484153094791529293530155569857596842907773143901077524836949405368296549216638669661537680773922694965910361334743551916383656747440774449870995486663205717159080745511840981275443479702762890708326670009054919049525820460756118995673257684591838367558154302571563001035196258541190994916477630641767260590559969222523976987553794124963692858930300510193905752911927870882649582692770863043680878223297053647279859537188569070130362959298056301110215405449594399944733492660176353069765943248669517312360850463345119107105954013511111821627029234461212822522094311210349232099084684684061224102108542347175241005198143622659755403952159705865567630382889860234553988840691384113953361715510698401913244554401254198415602651438801705032972931181934389677972242905567184013380389186140029029907891159325229765803255840838069861951436862330241260823837489222485348721139435615295592670696708058793194163456839973011033099559352007904486221837352463686169272333778595800068433384340828426043128274539207597767142998555612233825302633998754291360647895369870079368538692507081620935922425176509338211155948050313079822574724276390351745009178868480034891848267543371990677225581335958917093899746973990174035755575146571996296168746463941558471326297914989008172803726438933557013237009361833087395535803458726421877750564148422063346479701458220647830447406649663796458408703458065568703165902757197799778280274409408496195544959078985438381614022953201018450860678450999574842117167942946408412141670641431337884949587080050774554310139766631184882394433989828612888093317646248784972172573554479884249681472770159097328244567559716645677227668979074279669272126351908397759850418819263044979610096357822037622275488155257930444006478741483444370327896489569021428372442424003692250836331577511833919438661939994593215070122427269824039944395395424342333569404052685557817852656120546741876758417002079171014072348895064057913856758540306778553684787720352721562216708187838975230537687406544977471287741044184855575066178480124542888220113330031110596453084406812087099914991213386418612686676005143051337507926032420436349757338374267272419556371948267428057146770641674263751109105350662529705694084617546240668339998437633556243984409782028892267033780959807938678575895130038745092822168856851062369832902499033244537198398998375632822424432720961107074383689521513762250397047036638138453936676417607716726333332511454661754241395362912034003849072623146957786006722310156454689303983187868305716189048877215095314851401611027256932698066680122316548097619889791618454393595659267805617862261376382670644134629634043208322441180688687494406546748657040829906945053242653826367567455794988661413199841922122333052724049082292669365478720492694651741617397871137493206406175142148387121761124917740219245877482409074767960243953257151202230929242181600654680859463546636952711296958811848188840969954834979279173463932449555253005087963837780301337507231181606800474679202802751160466785663742501640641111791232598494613704662311970076769778539115641748200451435877051595088108925825303705198904315994927594649101381656642217548793758830420114684536540455588310265677966717911828917291706705077351370275675231393849031676595204049005544437976168368030767884199827993721748338041176623386645919686913673951540020985956610524050063847618991865631129734694987596020330859852616831362043624759035588785832781518491360384844936542922632803367992162629442343784469185933959015090510992556487012665953068688527814610078450602247474130615013969368560995319128976095930575122337328103374529980099983463034890443441660648067265881045611325328228032930720860163928554352008043139366214048995977976908696628942846263735056753828144747194290469010450025596695184279209995922010170779679296727482137556434392594412690101408131466574268243032613086463441024925350157568442953586768505711154390391934424422652348938990367068227019340465342676769221694108838725356272270805677754063120282085694539823528891765054697289253851212372335004707351698521705416467392073478260063960621387797908475273228655736544415372053698149670151042868647578013927158425169741130116466844946931062847536022101768469296420412046789821008102375385627436692956603700843341197886541981792990860880493814563815251105769491319787627741373289196160300658167052116679614639455708001997311247414039492094786994954513156659210164349877347125073002687342452655155764568641601531906693912158270156893557158665518480319184297961934652059628724324226243831182188821572394144452815214454899228783679103285660337880022697767412137081244084611790368307275217498511879339529666968185073177953173772268240430184799870913677687347682818251790947602020773048357322804986482484782176597165382980968891632107884820452520475777537514739026487669831460755186444725701178026629209004274124808519906511549500388945400627518299057254563610909232776982644548019032560747221966155309167595212438138475065587885829165624179994598673424237831860875663176122867317576870969272486361262295465434016633205057045299962693984053597283273772936646077150031910376361353609404863266780796006755361570687099054946188029286795867535388657886838157394285119295629886712360964503634750788848845973757931113325074243119351512903391921212042629595526048384243873362611114739246733173210268985889655978257356331614594849835730170028806969226364802598011565097348461596701005599034711309627654866849871741460438063504470120442208950368536006541506731666944407030097175419259674658502433632310245082055107476236016485877652949577353567099015780288698276923568223010110884226292194860894685515076440870578381887125371677314669205795736991038392996816378428263063424527074457217733749440773787714156488220751327831076146766216694714200851912206530009687431594646439049044584523690545367447111491438050925971622443453450748715316099246363562326409105071015348113301843448444975020666558963202655316872185760448199230464563167546784614324840711260807093824839701147222446392426830794856493190316241964679721068879660989922174211084235707061639236412529157362930873639376514237918380330414696070278847768069645547365224809998829634768724173350729355204196479718613486534765440090836212240406122916059269137423202814293559267078084240608344853250128262919059045319811961444900607178726564393624688168309483978024301229359995070035997204521468796446509329333339141040651498666137679074036543067410169720259122018260651630200214487661376368196411689974452008438822152145458260049950655263544955986248608327600120895520241612399636764547619551866894050328371238415182863626364123807094729943429546435532364542363839342470082693987547886667831670713690443849872103635046820643795721537776086491277687579357654362810495878022326074138359322685860683546430581437713641095899406965537581164737748065246671610759561496583518735670868680481012149435155915434143189608689708666240899418967044902106868696305155012988419990346606517584523695122050841413919066320825813750912447553760718594923975346539116025482792797398546993553934710774136743477748684890774824014718885117528410126594818288510730393578259808626959078084623573612438510505219741464130372732663493330213476706233129427230761558537671164634000916074757297629253182180349288202634741987240000072487898853585562516538392156444517332570001594496445298694916350393815924687301850521279806892669532640408483192273899599207249126017316481835210730995492904339573375270700069872756726196814337465266266297533327464834896495994599835748976614212370939106152191176757708540757740283127821994449550328098657049368690537121134568157913389578146160731948203333653097617117189689391731854298041230965319817878336114548710342683654040223620548954019137094884799963846645320833442237766187690902653783463589668752492053565526281985795438377051552941103705964562206131383036324338183458469439879914292264372858753057627525398014631324813015480418143603723326097501924461836072669767880291432297430186071124529692667441648616660072436358970722371893141005328440066480019428933099335681149343711876616841841292621843217121767315514730036062926158944439943911740495312311938461787170816921805715628350190380119708804073972262639733227097859965396609370588428952524683103813982751235155464126874487788680946483697798947472028447561267557644513081811293095324350513227880934131418689703023933406819316304420148114739967581413472297052432880310997115544592828414531604056114674249445903273679851573331003547454106436397774744930714901656740998146300181988634784610763773834321177231605142742227039267290762511084317036405695132237117845465263064569469774125112490832282122309997194914575877559116970119057050063484923035064730437800913583464800424688748129147993384903141036193636697702597663272077108784597098036409893581963684568227726029516940483245184640538107918742712477009731021990629246902487707346548678395843787386681217740994283164515082785920924544198198848214442331250899969828657376904280367817331468828958179111234711224595175910765857527941024714775076000243302124014990095217607593861274772867633023400067319304687458769135574909863574441674184323712018854380802893312798923647735876676930590088504117040873703019214369870383616430099903206534981071110291745786028859060597075055541836799686423369593959328256522419749666309899288485810837676887465811436752679451152448795694928672102342950988820892967105816917277029497558831837110207753791390713601961998342020160387820205288113431300256337549247404827708630540546057480649080606778457749863285863639595210968170191299193168862402443266882667416765584101281728584041585417609549330591246482658133905938395080601933738922824403760248905546693112097447970961192276162580186069354468607085586293909281119678004797349824940185521925956848983349746844662833412390591914268639800106448030318884085759429337399397829248790242096657076192925807837073273088846675393995055343767705650135728160540876640455240391965070013057784528671587366411017486950617405746085246769233152052108369335022716893890609594300781217635869567798999561737270518366505620378345478353899989838372026253596567756310603974744110274098298056699936436635987442653636890240754244622842023871076360811653718846603856892907835466591338910659590231370866982567475760965085447975318239153534022098732481971174985463103925047152418442402692752610735583357696619673841744149541961910982285162214095289191244069091154323466656473258102949370261943620591671575013234161927142618122820247213862298136429299770835749533624283156899220711781413084470152539097489971474198532231147953802400783923128483821881401370720022835224668550793175229732866942719392369309171016787899682425937844013754042186575201109655774144622877937308785738167588065599056886309084414819976091823249941724463864746184370635329514934514531090802177781501338908812677009706331412554532547542926828760510805892214843683777240711755827144281443569842887697786270463072802364718113754477971734548008144490837258336267844273655624269738610720738977443987809296953970706770864461120514763770220615815315738449834384836009259321399444878073100160155467191425522292993526553577468401412003227631937725147718519396220078686359781880044195508002263724737712846808126299089177295151124356564009082474069416674060349458040560657315616494172879256333444854304341734829254759844160598920904206045584990290177167352173039603205187116877111259944637491797745513199029210921234730844240929870882932127452889425181876002488106942488296039505068914978580926086130638443367881564890821513395606101842947730908209018028830512288713157102786634662085791871458873087127037941832780450015398334129202777101643481731269979229968987991849603619282070135904022981865153250627029037986622063468127914648910892754465132891301633795105155482945029655149027548859448375955190560828443242977519345126864775045809920728662669850575052385583021418432146778047065532603922772793301074175038841822267947057746907095492166310343273100079045104025329543573483475940480573070516961344466541049578329577427639261502403090229887908143839358645864571508712912587813371721960683672246380333168142493816992694283058804291477224018288918292208304642407051509614467251408909434560125844925109913714606782125712836012343990281735447637319465726295052314531851264947552041796850996332653336251897831918314963323065630518627000698788747634737459997398541930403491488753898691176396132695320176062533661226417649179119468052371676714993275119357563966359596423768617002347266675022815216371745345335625181274402079457758631601999719953542066122590076045117049032851888758856827705318687085529006359701900029948185829602564969235277978117982445970516634434502281968486878913990131731949977992894827185925677069767809056878806811026928369586235444606461697620879655866843819903438711008541783229548473216350213789556613328119278943051921945353791401114940890928423552481332049626364460755653670725561338663524279201834987085287982426118678800587791156908145085052770971451965732709117562570112076009481846725024622758058022063063380920736959683741735794334089811294195980109956704966432819304259564157525793601150464997080986338729868706469730149742590234925839469796363601707846199507684411270011316215288198257501234009545901418533093837160186930071176292033166319291268086499315116018551203766250395179162551776609480917761947414787529463645807845888377635149969500169441949143631692448201673104730488759040880974041070227894053062933542507394679730885384956855906806969837679669206071557746293097984812608326869619936073942231346276216789719211014857615551637971062378354989531357524062517188144676539663055386795664798730650400881863057929449285073842118544869307875766812341358322213608939167494616668892259006356341673615834903995245534332758602661596330482105341503142702722251689710538328240821634932612806178588832651227747222381603624187556569403029097480307579048545881678763460437424970247083336050293077474413665892510106518710967325164161590560883192084213531971679639940765904771159906698572049877567870111315889824140114085988805890670548052595143635094713770842064955894101515041089059324252532303694192778218800646217905503336379668871239258528735127825923540859904025170406785899021903424499033167745577944187019034218731406510322366961361917408414797899520060941196316143894995643270755419373631447077495881776244194324752770869511472036462518612105225323984252400058384584649563373455198726203578701693389685048705335938091755870745592553894718117067819949653232788376852289160322095991751562881508105587351456648819998489036352962945587892981410818169840262646935467767094667856617509591081787469885238374605684907231146634197089940446525953657407435970528134321755783175857767177871609915402965705380931136917838720576097784082082400995492135928273117209649545248436852846815757574687585715764751042855314051097813968055321764913267871500296317696715610734382058433193274132407700742164109513363432484460130986799224499248973634062259595691685544059036880149706284676396049583463458338123028678300550910908702600101840461890638622243461962419250943220555282611084084830702709175844237864127604952111792621689483028660572588924805653972709336323453516393158882395221865137682776047517282977296279656648921648360246148480655188965261847882839050197684934077594312203295172585722353139332309005850441862619022480032870579411926165231809032323343691516434620099310455611313886735352722900775299814363040280829511568910703392637765514348466504093627561989313375379015777269151141514951601263132039833484466338280708123662985273429319026107210179927955692749955994110933945428870084808178961433982649332567997999860507593768758900029111632273983595683892893800619281303108070585243200362155684648031822455867297530228869942802542718715532261710140760223982379629345018537308967248554539013481378868246375641142096015983829868519943334646765018278360420105841179110330681177111789373122044709577504438169482100847661484417610110557703121695785896143624667292538373027848087843831968810135439114029453070792598187475816710020861411235822724869278835491528981845283046793572021628642908923706904669136148751793420619194106585739083525223253544822330279546709350951007402486260275381960007267712421306529086872670839372354676150554600315851496517643230515855863479261969266420615524786283804942089624222391625161731858034565783419832828349181960855385554935742996724696392737906858352822360656583191666504457452046853517182026582386338336845942774112345286222558087594061243034094465034140991781524027381487620039440776682907850761929616290021949669188150211428794443247295076488210886714684629538930877235144791611986970989355516511834997634892137628462994820762608378950088123919557545026537172455221627046419224150434602709004046992488425819086186159809663818704607681912815080470367541505583333406875318824726667771664092778912982822767080121781444395709292939023470915369961076947517448392944566874946147373186067437800461782399665953531422669261685419564191203095012163817861630660735336915137101008562283578780359945993061879975092014126267896693676778534819963348453641468465742017475706454421825279149980512295662997524835417010443392359282425751910797858098652859038299647484475590955938784727930484907663314348597348073544451117815507128199611762881125667241164767437580610455242790181978615489001014899396023611287310713544987763681812554638232191024957678296701034247019323812457190696272220663771510604610254351742301503474148485785637842771207048003367158886601911545072745274918168073449012954523031960222555544373743688635001930086408094503046849988737032406911926301532528337980724513900545404561652594986396512459957103537443787625001438058219965939568201924157307364192883563459916642394873231035199818599594060043684626045422054324392926839574425384145023824623362778810582251138864901435806335546144286885378607386823412920427912439439514777647107152825487635161276554665137400625390806466841301686252303043968672222363510755494446503643364820086561350783399779295942758596285601462656526687551959658802821825810739086914774354212346136186717645198513937659301673094369018490322166701014886006611666620593727010631535391115045786559660974618406233719417972829361823868698081359278705674820205087429307205529957895483378505910592321039310663314095221062064493545497002878169493729353304915465002356878237735045935389746106714293294678281602078990199260229340150487676443884302710296267513486472103574899697836812266164421134668748444384000009202377978983687482366456251052641519089040756637710371123023539115999032859946738533018752626171878442660977415319263254250023395054503523103525359428020362342109213212913082554681429635635675400565019688784935700499171156931019111951482611136198695811294185753049038664572144613370787282778313431289491796033097132272836895967866931862004221771340127029813565856396548792561976595297582912584461618460384641752654375486846181170526254882584363572045395404261596297136367808981469939842051228621858737826944642060228591602714265199393126977844441436668484549217402650960535944743040016855058483602602545337909511120025109148853043416753739511827436461185146591300583151583111338962620625659068479104486052864442919966805845351421426261374841607901834378133907847895733359693001250070603297281570037369319615748169449380740647920085503761662462090966852541771288720151512959380628957131124045640966066617874486590314161648112955161773463408998841813649401298929670381450476737445203271831875039695890180708008580741167119245642902468631849707794331928146421810134370233047417935438303643005674842804035274974182442221726708065315852515786962644483063644439883705332980148891915124001727388385317916353788969324517055040269766784370366433078514460066552225695391648581834953286849976204431250364806886618426434067202598772122595643341895393718588177577863672452232238480639896398357076126214320094464242397278025282983137093882616545016947289131912783584746241531921155688744212488085009580818710903836842629209490386007060262976082282665191206749279228507276862632953742835499771577757297984497831044035148363761531975172301423342905838226158858021008039134723201195570184657087039643600371729337103935380502581473223863420369061668431190372191449593631945211794933711302264414654020416409674419755089695201641467588387590825004568925160966717927077015704908572286541377297328302912948912449487566881740368252649167334190493393611244653907793067491057422473903560123926106991846457103092867134843852203674159025287886799420331695638000812939932495765573475407584706101433759130115460222101879197012217873739804713835955068857980548991624335378755495192330651291011544089700569362485417529262093393304601081775344818091457583440464259223133523103371216994445453664158643356244623514636282034156909264816104512072973250468394554252414853690120872787935124113172479117119646905911244335816853323182872377081899288306873437060776840820700692310782583832414464632542222006655453237136972583920807819980229922035466761351056083251349952212787500591985791206171778623821717530824501860015272329238694609370615161080852711963370286160879005678036204874625361104707847251478873333924329034967287492613995880533532180298755896227051743044972631440973303516617342259078758103816685103147037490193881026651134478829915295161838424797822688427378021715293089932097146219335778243063260179680841571185265656628077725906993228149024376477817441683574625130399219454010146300272136878911111525147848466399664470948343226841712262899042216124095633130913393817365213670746895289757687227121024591369679842736097512562549723335448414022090492419221319978256085038647965960193279454378173460349587149071125705783759154025469757258722121290082025858513491754989981718816942326995118819017273255223919221336306743898528196782993839912021292451964976792438598203299365207987544379824073268260670627078006850035260778493960286176404575413559397099394118794525106334459829316870009002524890667882932452994693047314347135075613041483016240612437122479232789788460414087122486524663800795126665608060599451595954140522404300117582455756692402574165747852811156526577947497539837157086544392399654710079347076006887023406811445069540073400023012057887869002756881001197895719486399322865635407825772803166890906313650687561314698275857064400929733603738861883576118348277113654927542342747500658880430580903286725161337207035599232066104482715847785014001799439498606103189369439156705640571348539440239940593981493998225548932557955072109682359314062081715095755455619514913410930575582998003722097703467179464956717505963060444353084758334965332443995528287126023836846660878901942252311433800960887833224509755167592250036440886056929239728102607023274031964189103440659626059729847942411281266342893973262639425840774863017916765972775860976800073307431132948051552300497235472523429020407861383712374356718809531425520676182413964776040767726066523917566279562787016599571062086075664039170192251335257400176742478312410379795526577284597914022714800346739465267881022994867346471938790279538103962851032137891532255055641747243848970033030860309165372321368148950763710879341150421548093058628226335829092689414968045644678892129059192115638188228479560116687268666046058940166434453795139174068639749557687622846589441710499288657114775340462189180799516542797210331027493592515965386116357450830110860960951676063887148942750023574454909678723802287906046457683482696877444868977522816056256347927145007159057997140850884914422161369743924385424564043084770540339818968614738417450729861551925645917904576633987625881963593447656356238932432217258679402160103373115267100954291957082060039569915193579842379025394096965901180546954964888443558685782368657619383744813554159619340227635271369716401926616452356793624384509459556449254496149842038866156362127556685663969634542148322662518051739174849630152667720929611541793879967694228536994074746475889310730853688811481735182297322201351957349984113135069755333180593869231580656113632933312690723985017986974197863965222397500443283221331842436531475805571268922672004984369362599337766817006527121028432296139425848612565437681534923979275320096196040036521237927931198943941519674869935770855888814978048962848415293241173935748878304380847924637919120769980792363296687045104931590620819100999084580201056637764344199393576574394862396962372543197614466171459102364991355352871891909617226635909653441260374755385457696801913627962126471990267063124554442898089060987940451942241373124484100122029399638686502270967319110225519448336303039968464251979271966084485015005475254120657961116636343744510694680695752735854063118507005436995051193960832039773260630172466833679772586720637836376024177094953710728005929003761303750214322127916623337478074979667385793628231079505849895757175735479163953971494186357205320237018706279801329984192969290479546066550509825337490412256458512840175203292337656527848957033580256769709604270169372163316587311285829479078271742303331928168145551953847689842171677149569758987440419043551731279342679059213073897318010171552598760989503884179706913124244450428366542225192283714733553250458400877171310189247553045655314623141166591718768126332848129911045653819196859651596541066829712698922083845944051838945323570778796987086518069415733532106854155410043824636706566235094417332700115224442634146416516760807987095278618814573100967022588620321625589524403387589090220643206138497096584591869998240343009544420764841850161450640023914076728269177753773892748537552675818292660637059903193181500352999805863428631377886853995829524069183403242987950815202944661593034896011863570427457114071627158126123347859528682500821195647203689970313759911050658951526661022054207403496369667259375644279610827073457620880306276048740296028718708370801015815085562761651406197485387058674220106326595420853775508617525491355842493230195915130113086861115356188317085569871886938550859389826471071009749843644102320047750480765640342147091644883237463260794632780249586238534351420442791349632796383368773960606579593860977230238424526403128327139585943297874523064488510673060593177007332212701991042001886276896088988477991033782868040072090053208247647497736540538307922502464809493254613050092189245016311390253082678112674498222854612175818289701543210440723548940108890216921650497065134888449635689238811574676922127003658701795345459082853231750088120092722414547862325483136525416897393789028843985737651116762643559259399025683892072971752528401219837359965508684533097989406448253518271832786259964575606181731990490286252995704528977511298529045349876246277969536170540628686085938629016329418320579232293957369370974075294766281951587040659848155845927322822328156439253143530450787630030362312122182878293516820135420093726981020505496007716932656555531714349469382066646015260891972550408498344357038027869198669087752454484968101603888553605608004606220767848649446467462625466428394358903611903783293989571281871794025799696857295951293814382102034377556029010471777158829402082079271347264335688585084091481537747111922020264266555880572286096296434769913622777783152428392878063729036054256339745057219605353797063793767758108593695608355984585619514661124321317008027116770303311545571502726419675232686198949323268837627398866185249556799803710844588545023027958867100760879138179098651975361969369274472726003139165186989588861867382177425260533264848925323608689457428278603181089781279049051667534012827923760828208546423070882091804514321605221099564819727903843614744180692562262300842471982039220366505904803948172204252786119506349288532288319667948082123505159509962620411745970654738983182514934145269161786974210697951126918693169579176752394994758919832667534037105033648816000949207362828381336653730784239136578752000669678179209045812545036912613743773348374879380637257355348767394844420337742096066705907703023990924759713899704824752959563495109396451044799665264805070586562450413980571750559487991337887710050963919059396120247601724747415171774273905372755556577700255342749042998040625448225625011298734665091812437500521090368142266632571011536867850524561188959679346190641147130089710417417732831199621400309638924291122924504349733591121671483008443203092345094803902785946767019539213869648165391562468680438613711594436516042719764853326809788964905809084267018498704098198340662567733769342558012647791364475368193297081479640374605594957331681780693402598019276878718472716326936918711179314675047935235635405171820798040722752147991618306342051343937490877419268923230771278000970047149034444436908702123841536853262334139745737504254908800101300976004130911803696245974551686727336572892645210186753022149501683158593131073758698242300864397776066682680369046349554748989706645592699282114747137877715562703755101409384422493934506271415868813067301741030863087249579934065618332941935998546807600707066869509912076919257787135569641145231393283732170876244908835984250456571244557910172553187811797064307212588251836406600380023839629271096173138161081202024982510479633737856544954348552693570948597507167477127537179624006786194592772546162877610040796625131008063737955935530474322285916933594390418555864276396773687686677457939180540714415940003459880447601876782378485324997628961499907164157008563886618922811402121839556116453667538039583903290892040675302118717506469179538172082858319328258521342220404825180840578074755380901022216669182271041874194801354423396056181599285980742926512549688522094894806430975838679563390829122029732295095462795438350766673875496682819714879094851129553395970035036298948391161676953940238438653253090449416364173585511285926732220126937011088748787186245172593664569141887436940727826132290858548472901598736184645472967912255925994701389857344828519032215098834388968336072124919526096330361168505637672221004181434402579195969283264248844111268033505104051659833410853305002259953190180537908889091082328027735394466565415645632695311431979769961656480630900379312868853406591049289326984569459149580446629050995214193143711784604315197578087886726775180598653107299435467661774095523401379233699861980886709262390360214088004906180876323500252702030580793116968632281011743224300307470072361637738829013186097348685048034455548249258483618424328549505549011403178022804594996496391562730152486331350283546849828105833412948854673475728440759899457750340809438419576595052009828317380549125884909087559282250611675320084254287804171593340817413993619660714592087380348956977819196951674198978051407437897361588030318772266457078939463381087938118737366177589484166859606922853189504551830533227376642654202759266993126078608771037193208425986614727269329552145827558132555358646231834797224112317187463179862495444519943326289343710722725204788264862714498066624526068545621629478121369516490402997873445283306511867568233379736901543954720714373659779926663890690056426064590400258947805295459298655602893561196311192057310989861665626791149188689036605211245768109590317806611960315460513258534073166255289645462002005376034241399430701026825897801743193747801365869859126413205685463341707147011514561832717517386533508831074898314183827242435438146006664536748998663556135429929355862721204232873632806883543951553634359819125232231378709133942626063779417950154842944247131555337443594741895558238078799278627263074748618088702650007226756353263788906649760774307632129072077575186984219316186998902226316509563362766598853662296100208139836538971519721183577359148952457029338541904661552693982021314426502873829928653555265937838759142513135443186511697315467508775965772993069409257511232620610304472061561965618816890882883073190788363722658201483502962140806293887622077707117527616110779548406014314797593252353933602627655193184794312943872870269664154178543857440558779748198714972154331185538809900674076010036836366926022315978701437655634817460545895279127013139996017144049113266777509849813303488668338383426860812880523473923325809455851938628042667205995200105059826799142329125340208677461140286681677386029441235612611189563834270766093352881028584091450037077190389013850439305620024167480931765373932831543967209205247733257656840072660463727072394060730944640048506157816427119659273150207644790489992563355955705725079419108580816934586572848411840388760979029470390233105594214936588202484992627243564567960459369800745984442816616998879674626747892591009549807583462981206003053608809259503635060553153799483020347416420557412497885045976226921875296233457993254331964558385699902661082952824829477592050846899579163605010603169001874135045394102895703216492894113064783044618334598760355051349868050012186599765698480421784998885865808340332008066423705277172375212627161069865703200533416783829408558570501817922778878171578164352108520557050824823372316435054857393194824277068806378274232186141314799236454175574166528358359632772311410147353156936082547234447552573095311419707583381330211848303469980008212211532008264487746380227303773411608083975809012965622309850118858154855793395914471498489617655298966376671550568904125534752433620155345706242774223492901771829913895110085314244251807040898034060476637617037111543796357916429768357989209914520197834235984546100605413014712395452192334699844356517526130607586227246167158662893116086457488766957286326621649379809797861839249695389791521553148380591094763642245665756679671515759494658009030190257431927951107736570867224284544598945165122830123727690494186728165391633077612182377521117148091130304620682170625532007746006728287026241673436053656745828952969558867546394836641258927567083844596654482509934199349130900184658188488286148543957839468364223119006275714613685446268228406749255948997257572969963860634826720457378584717329126151888233063621106244404825433766587899872554766078790791698690376096859156257376220253306210390900771604864061141064517394509392078353473025964490613841660299203112797128504845328410607533397070423411272547386742437223471966174455074169447378680523217624969707585347089204484314837372080449328357284243886015070119871783406480719571950789024409719847838312925673767648745103989408917166065632647654076218430453411583971005351335963671114775283931609194878253134621375185393896657689953754368015702510722805691082928655966776600512976118502016766847476004869054070527445170525702998463246541792910635593380455998639583379748442878047889023700399678007861106668892580637012982977384274006262783344662859346471540913712979304719555988506293072335175543225303045454557185000356627196505692706626868904033262368724093606168354916336024688074927771578735182690553126048991601711303865870973599546818892075075726001886656523333208492831441928301973767761792798791197062174135578689028253198863723060630601196087376522522855746006398239263939736197773237026776572394568745015899428718376153178006945553871090349594638135758717861394200713842120365044017528939582824135965556005742222502009929848499026572597589984132694961782820340400163372069568517380853871843349667038606759638484157244305335448362742341268562013875273084197535390869251860834958289765868751028989004061421677788287435606104472787539107368411828052962958840214567830751562337824867849658883755081044581078013696103213451349837687683418899098580686340649422876606284151189375916642926559846007174033730996831757880196014248972119147858716866321272658278129413654365565836563790791365047258810479546999581472444339263275899088719639508382645494855471593114748272291772349151696166959857643732820607328703330637826871010658040207821305150886268562373551862725679703853420621534341164411306605174431880664564687626121580558781691910624922510438332318053387304792956224311654712083887657540025883265251754626124512359105960383878701641825193661666256662782937772993838082649135558512166395584352076343840940358633486887701145169195588637730210271895852437067490814383543094825386021788029184955113454032524183505683238872265244044158879186876009337734060907847263050670450022657462035936361492782456622687320968491111162671315792153718713260778844556111740481387613656363844681646186945999552948164950429138687967399208351755066566254355489303345968709477773471113123525369732153174027634012157398674474245074968421151635216824826530202297656095196350533902402580866317169717658936378766910954660508545660587241972120952470708125855670191595219798705208906988949418542495932594638613553396111490443848799532697959422480786542835474661659559947737761905343280774245041980868562658059424981328825013181873854227335503542764530599330185353608293553856127622452232397338767427598712256383883232586658387704979843901232703614921299648219213845976771608268556540968791567378245218447496601113608043964987763651832745650818063143015200231792061586309142886798186200836159063780204872211917060567433110927799845449727335159603759905586067562141557904235383802086310622273237186174380067075319532371805376984281955311781881275140342120506376793931236406433129920078097563344509236298863181803067895918597199494938935196416640942935925621735590811230645964509213038539630840755184900639200145922063805702524993449155877902149972712397080742585174236756712327012216500513304392029868197155467489428678731944401681464938709609101680980102496111059617080193814813475024325074988907401768634227416826431499400350288157757769259783813888269491064322630066342176991447585061070149336879284011905635796173132559216593057842565364979285472963706875283827463083980536929036379751196515371044080944032753429063180973576456293631722461203156096377551642555687532582032615638799514745624826340386212043265139903196194940207560931107775580614481979900658401087344930188270714616152437658338035285308966919610634025852064613771206787802275734975785251133739973367567017616014997786476520166824516949369363366833925478380116345816812243562341454814253050554152755960505167965830564416742277947648898186473040372616312733151496620918975177817732034679089493031256207806040399715091238223944396150590940846803428165586289405523102219604524841302963113451061100642520128256570219989076161950204366304274559333544032887017738494831584771724522544705316458837864176008580558657165655085608189028673863281631499021022220083461935823417198363585265952712221763619188269657744376235363843696499240967303671523275186480250058339985061684963495294603521543560331033272900482843723313078871422508346807493781700457602084143547755014687167169544635311568503502052290188394241694158791939278700358442460104860948726584555439795368800953798527033578995935638595238125714608216013923531700633388801232044462841339596900170291230363251966297042206269575383771739819837507784973448044639410555159610893622582471545818541895103570956035417528463122413928536526205753768997471435497495733656851163845020588778227557094908232176842745737388621646068402458610728691848430822094862451848636412865291964275647726864950110338394047107025740101587623577892305572924260341806283999893747534008539370819297765691187732829660531007731556263496477866852622591303682086843216957363731738412564709879922502487446163070293403640529716050065327271275017744826800176419612763054061142371112432842373994843811597061263081229967683055137134602822173912547277381520002222522915883815979426705205717109242495148481127037672000867751897869446367887999165492744958344510424147283798829561803598804254955290905473237243929476797872672638022137739322833416573543844128969906657212652802728014320160665019418276764618487427345515283151391740703864470697963165180188706261402489100037773296997151823067974874833612559160513790168935011373099784817602825612286505535195467036887377141685114587370239640843179688965778910072260463957079620528066766341096257160763001474530854303984244175724104895815555947405006060977723878185651958615680188530937395848144402334992866414411222216354456611034268174448948874119719344634290978335344041327524761495218001329191594316699530553433072185273833271088073124667350409916682456375673906691778009663682902456431408643966839581817213163176163163718460287560513320361901583579458403824449646871773086519857049851111230572101260551098070148869170818149285973336035801092464939601547262242632094380588444206605317311798064833968462591704413792115862345013680788209610729498007563680148362141871426708668417631353309661756268270586920765592634501684463966618517291297156213342828600497804010310666704474786478779723581881416929705053974834158284792482870114248020543661397236596882944004990480267049544772332056634478261605134418566446815283864510921878203669256600245571701625458531643290574526064442222839880444635628338733681548889679321144502383169362679729636273725064118517704280701096258021431665014716454281807034507165845356043618704870207100473819145502772839433062588604728545296641141908132923076837054392213277119695188022534848171670131929319888038563241063757887608352955080770023453595873955333530500393014797466961296566280491988089661747141735831529094324678099461357793978035811898408438705132149165766488405398906304099079574935346090795462909600692838135767253508310025849751446805920781333767856668175947639352951288264899284154481002507799658998048219254141094567104980034011881910890706340609663116540247935044104872208402200621067687393244689079868185841584582871620303469609674865043724401856463976179999645965418444152572632779704129392391461121305980292278393188428670498698813188898355680073994571697716898860317865785477745209334038591023592176952366951826592383412799847848537607020042195795517347430343554620960551066941133161954415355836885767472466668720112429957146603758176190081268461060577383184244893031817739398070798613106891595652716138887732545911137907494134533670986151825845761515853522005498883753253578721905477830976222613231531018970355000843878934004958339166255331104591470191780479228228293484850980773356273671138681875323733440725168886506171278389791102591713643370650549045083679322049377516785691663893688715364790387650556595759997858592164126168128469638219284823052734982458149143641160723548514422649949933959598369967509253125468072710300745938755856879974706043864039372868840664217533184477939234602210768946343066772168444439121691777338193859855847863013363490483116316214390968113286078157946559608983273452704654072817751704541711771334911064242762406525976785296377950800326255886545645454998741542843374249112223432887607639964993402694100569546183358345859468957812605444131938731268468155892099411111493108012005563063565490091920053820076493023008820491000636568929218377956149850320154933993909842030897579302644758021644349827755228140645423699714972068603310723605200875936840349486473572669436548109682390730790167161609747478681431387968085196243340829484669474378982680873122352441703889816395964781018791206232846888923196611427027751195260405499618281040489877036229336812183599552843467109412588940726923375387121134698694438655704190850587335778131849584588466794999901739456281059085169140923088998798106656993441973918678231909343062040619788641635700662034810145460282855902426914432117400037416488289265488039705138921858955140528023520418910459505398737358432512759624149652767342971285667178521073035429887659281298136750464460846748905740540575303181649112747502011489837292998450713993268115795244437394947423584572273324237675022113860958966565244502640282252836111374613131825103140647952043810281377579405867335899768703824343196264861193107622258824844003928242849727567897946398397616442331692824802849761128710102004457532377043859802096479247102471117244033691367630710118056072548567711074153955341186660006899823279630703123765437536342261423134556512029851757882793690649970082895930674662857423087534633915903219833584278117992806134915796231316684298363115933634807447968583746067565608420137746950954986415329353577268911871564874944780474643594705976947580196042962260650373136470529953623709561245910768707794822043938874312754561346137815069986275842433930538127677129150588752677600752075773194909164072832448808285223931350853137291870770349191173938268498084875936755164700116984607225093115488863845147871274254203899144681922920972248276952772557570458274331032076755848330390422914953570059410227995615349020891253163806880147575908514336827019905162320361990361812470900591235496664240344645281568746741537426703964610585333469196167209186487043700372613662487017550943755248808513677643339413124107450618576626750488279840917859267288473416785761912881279102386913324667000614125039382824257372661120650685225141503263847089118332089466851040011777019927840099373416320371451049216897384426762065488619202756665869109748388198313668459049922085172977656529497220646024409404526118572508212207146486895013274246798469752817361819078211976682501666989095307079122265853468954619774411156739651250483243734548329951874084518693702519370462425927234381164820869449368304509563244498082052995388896685803418479617282713065972412915518488047575832224770442732500232219730021440746607172764802652122240729407432906653627087730846468422946712318060478922703193184634086162845527252609558054357065498000536315973474557325651225180693650045685064432773679893680584667694217849317965216220435165500160948087687892282400234238990268212023022098359633318104186965495880021504371017117640736125564468616370784301200061276813795332919399984039149549811176474457542814931434838168456958684216439260521708767836190220368174207216167065799510092613377642371380064692656880487241154086779381510136386947863239658393653651449600438686351129643210520581104315271131240801866249521549245556341056849529997720122983137185071841308441646946797601842451045788724041170553802037161855537392915490992054425421539883876406368118026855215984401225362437479436204685112877317984150686876073018232087258184041972167451567530815762292076847921509762108013814755017803864617126101277480255965321771026817996751710590094639253320594270878224264398894319456996078467944400647580214369073506256485735035369316145620276989734185930379139092394250080572626247424305260669137049711100065618733025260459404781010954865576889182129860210809915547037069606537694496940612907428030547704692454685059645691087884173708552157492456368358603086476598878214696333855975554676110679821662467839740740008000451211127099901679564318016174037595186378591266473046825385756820252184180530109451087786180053699096382409927659872391498613558710548971842936471767344777591766390536104582167952940592510631123592605791025663508619197336447918984471999362808162214281570830799849709367510104899854330086509438683500980269667763635254626027966652878663646312474152119210445860933103431855058573597353983302570454660155085699193039314749140009573757964838323565672929585139976961097260764810041919732644499387214002880274144761510556253476087973578324743397737133959786430502124599890989807143774508870690010599236626916058653730304395238661710382098258244073458439827083825173561630308781644127605135446718098307698552011936805498312217204619200334442776928070127588517080714528953887362742582639651810015539414850759834948340840344559103735270615770771159327460799115619164154497678708816854539477633103719307058828161531972052839809735450059573559177479409226272215284276589197300740973781752240793704188307800384376066690089311411715452493307150527916017528394652565886436762059108986712159714570786115426270655618781041313238993126792651693937575989708925436501618431638781754988153686707082467887009000399963114983633228354962158349319411834665792237225839260207030877513664358563713330862979111247515833982524154282088924791503610829719722123766367119730868896747983374813836428765731148998632311686862920903412126449083667060053692985335293475535455606738986912987737971234718050572513665102118950186138662758293945846152955040077306850266365748034837809526378288917160225313759340813935944478284631468291053054975376204819754189573905287156902590898010619424357806177692540054411773937412189441894632324238471179810674879998085431433896794274854017524307771877427312485795436315647887720317461170902109735053864643580115328523778602053240536525666007361476692361046441920332721684599300901986155807639857340319611408874043510145163851115496222366502671804613268065756561531514748514747457444894440669730748875448686726482114623826840324796931520742240326540825292823191055253403080325289833271216486389196898415861967110303264699313611626870983288716616782022777193380613462079822526433950049999712488894472769208211888682920624969446841610600034181613044409877293151755829400522228002897701305117985898602164806295092031018202131515300774117890282483855271916076284403558589626041353696468492022108096206448270623300011139276933775768389347653727275491136827747738336810556735547155861674850305597755571041138173077944125438597317889820680413223963259002951944084104684065475326673500577952928207283226096838585994616137232068996687908432501676253782672373497557625856263133087637060840550862689095319068057415498817963058398898698878755624078928214452164762897916574634576309637429031448225915998045361638589932412420979098994267163071322130443211855725780587483458366915837738101656573514701718964832640123075634186788809557440759943578142866567052140682455532113575701683478142998728227638552009772831456291386922284243275959608282287972163385306969894564758102746128681395865593580430770795189861567151836102046009834589709945323258693616196307799854317418320479861891808078332035993314489868577355012754414178554795478884119998563881601563342312713666495938751779789225845064450930324158655270988079174061952948872601544085371761383888407615300816976162143248381261567418161651794573022751535072996147415076170189074890102780863447984729619224079953323682839427410032838825868430988232423607621080213160050937587694266888297414299123973613173435526611407202399116394744368181797422322265588324998666402880768056750917637732607241989651777954932626537400211659331347895041087680491048356719392064985566931742242489352192265520536337813611129236884914841362087295185519579554446609113720719681247306219839379577803920451092324435689837318001962459148116398597327234436982207193276003909444487216240568872518269330176956160121676960666112851938540354144939023067550987677221824965340134231111805381589027591994067082151631022076011695497369680031368834908654775677921589651707246789549088541431449655506262146827206440696994837279782766562384214805074745852267252708066711153558515956759192096072964165371422921726989712026921324790218253097597135443379221063596764752323215721968461344808418105293221821430113419101792304104271158941238813888153774910684958151295708452834076542000957689327780187095457341658659742370240503923208517242882861002231391710198958709283901382049097220259277398420472900573459739901136643957499928364709965672208522530948719410880954509684515394339849496373598097785367870252771475923364417489430876471567580339888564373795314924847665872419215137430909601953273833951503774591474845831693561242739182441637870989683157192110673988967921138792701173299529940654455972317773697328457059658808964531002373214035338205354506039588898795820202993254098173831192579155973797020102920843360151448813323711084528952916298743738858453995306491212046346887462734999770217794906438750718183930684748795311987409034668683310725841025179153158370611727748785317052911374507150832714011435402018907929998741271816524199758748499561502481253985799909599665057582390749399771960945705065740245393743862206177073835426028018387939811993174908324242370888172278455475944585993594864456507927020825224404880404887395935961151148152928622683593762212332416899425806164831710547017778332465517481692647166866738589136927840647627933970944629389414611949588164713397100937211947671707016668623822774223163422353089915208012930368475382694503704413352958459092940098735932435240577782772910179093029667442816035944416510530288795780002405399872801910916704515716600162337525097714279953611276072665408787862437939761845038267413251521789793302476119882452792269675730626381837325307650584734379111274883007075326690215111760555884391726881572918373074294053746558087785230993863630492869152410766337766798438390597863743812854485333975667574880013936574574247178531952178361531008375978350617692522430530940909095527138338013806908669281927418105169643861416575731116817507332761502260844856527710220482586483191753750455440241607058145484646657960271447216148711288966533159512176600774102811601669657543098966238443611933899273532856822365131940135004763269363471701055534313258931374455681782503178675605808239532413188591663005064518626716366673236692903909400845059233790783329568575909755243387917007538850086309480502418027776472867255211719467172057611018577333162008057680531071392518252986420208203758790465206773379587358198650167499608855314647612848166183852122897606727964768483750088888768030707554815170458488495461195617661001094567773490310083393247358212675326021376521632403605394696954649221640328189525124955409290999821798370531351327238100362269112247884587006877508393888631570496164007571560103113536512125818348742203365262113220593414036046685080035409918664009592790568847861541123632789341006205853520773400792458939937282386661994752675676236629087716201497250715783644883113317976175804262510347367227453690655112888927606474422746222514007853229061118471839947837499744335130691402408604038237496302487199623373422797081228358046906323089377205955355267021777880266307243748169824879831986200703344503570695259310671479124368859982316930351010879280754137696626275391189469097464462935478543104757683053577959136528892189371523685828749267216165483680381891167409968834197212119495906872822747290293568983557763422590227425683000366482550152426787717286456952137137831783690647813170981582940993520226074169491172386828133514852223473319546508576690731421069877226094197725969105323994133598996577859913328015854988005306496634937962913648073990720941868696754178741292613980406086199822760325046626692294893113911953372170836368179940943048055608854146863464597625405504369100448596240794302264670240619644406868334543963189865466567923950441027673861837491399997067985546400511446861895436218704054560582951101248307788146666358843080741621239464989850320356849197811216420319743403207862220315192439621157648445124215767554766971894022531234524838490584814949426005600004072286240850219504726637690268988549112065134291334187185957807594760646330177010198118044345888047525226740082725179878758909285574490638323041604918459611433938272720731673584542364492635976170233397847818360716977776676651012735795855909926319419006671894258818736137026698505562718927178662481021086889273110667283312263970148534331937970006835581496608113665351045531644642036283035923094872244847630631269535543033871450408524601535084751123536246799813918847534899881490510030573709866919593577223100870974162581264066405038062469234801466695162405973493616715315089713503887375797591585632747112707523374797343254560244782625868674138728999152290689822411135737510128237348342848242830445923517747612864057376098957300957718405740290690250221411495025490155629894689185866344893940827287304195868613978598099569696781147914412700440773471818738115762267695471249872385104061874974260115630183924781698914916521962131481161879917845536719809043747238273666594000814696847262908421936306614492187032932077524891732509491296691658094627067176668742436208061223038539617833160506104617142132543792186705000523769916265879045956569945042692578787831982420125001170138498301740915967879250453662260641941341123532392116361575824472283917213039114509907028664054961467080781176935550947745318810792045319190998714378958928102673920701679428339415120644637517679288896537976611105488436581961201581697586797975038242597321233080204335316539631289552300630211828240367788915878921000308974901485001282095066022317128954034497039092115478776128757956966295626640790379231962528636324096865653435113718121623396337911201774485187967837070170968605626504151846658941277345410832708572508430279850963901965408038770919442012419693984010614050085681380687064682877286662006050047501765001432970196200312942132351418273736552264899897902962135626084066116872617948876660645258843751422532004341751375341062668523399595552749166994703222104709291102977774686065321920230498742710329638452617804023287442697785795492455879222215196353423648872714965047161411689919815451701622121368999875285076275088159636605727711556198665425362949430118230902584473850298711718608283993220619668695809142420367416003712615450237567225407748088536843697611674493532405778125893217924106608377826374725534303777504086891926162982474503954673284590366949344461850821279656855402671708529915291097897849339905189036973451853795653863700146926203387530432670084152841095257896178610625972696138817385728612980992486557383779914358625406452978038420372049014677455175323362139899431901367928338758135249506392995555991507639352178847859467845036191056213930581103388448758811554905570946816669517163984945178970747938825174946670377906880384538926846019220733486360998341538260644482778616319105609451723074998939073882719770044821215573527354357079312347700579743101445731119324126355222937440462247319073496322734019403556642220241013796793768785015268439862350686521008456047462022079731134255110814871576266963893887663606731264208904876420042931595906050303477047179429618550202514562388113514980187310875673220148516071538654140230501211864045437656522140799889394955526942863472529504443730436370604121707892241481667937746448463170732190875038805798189697888319497335404944014200353291884965598893904966146684503773380231612838249279025622029315605814148588892875521735102019635858930348280751291250001506139232483651477610201849118747193122272661374513001796727300743006105690949963597821476247060300787864626766819026368559925859014863985214271386812348429109335515145598482336301279543224171622164037040540846907312447618697436486999795785455779255069511028772006938091894876444430436482340249766420226004381031267505651038349640892083446848256496455105188931620637829360453046079430328076863954758232359111691148830857523755192499868718659870735233880312175623542624751509176767797339834737152469658966835208720999999150541130515813446580930483441184967909606147840177707738299396768070283043859220432854138890328849925695263866288308412506926889475651534587986421186948081656930981060794260206975977937692972310013482823554923244921863958658119561013502459872583251449419848482610329534956216740669657985313691735190548549285048697358171591294019458441408056584250753401315217984673740712407347743976982273386850565046054730680102431606787270336304488344638589618225205920657083267996101933425564895705985263093354269649617878223034248944194374732145458005062413581269899130061290180200368426734176617632474765985678436311074281084570794330750561943262419555722652749725580947800178261593707349296021243399477973765388017813452700725352274232732392942088467166604103350736857062788210003641340746032045568024799264640866648764306686002680996221688252086590442742530593783779354469222599755537323649642616129170420293611327499288474344905107529905170830419517081571027851880745973969716768589812322869687689550616644061056581324210909410642147328707695879584324160724103478796848505649882848177017478083552563671191453418250626137136189529747401014116666562659958705627595221158106358334365358521869354141296028932338687193194870089706422752966893307564790449094470253159233940723586305159777103654459705775269214107669435571274659425120007855387729214411134949059342379879144213926826063327337055303193833806300037924080523271330847838811945019025472588999229015708754305205823242087232884312833189895802814961647807711058461159733676373429114071642273789920394255198212103160878637213545759589697418467270512646997484143500045328066474849265068064916466798904636419053621241901100658849945175767022820938719922738709244421833453452416113603543890804033517867665890355674905567269790581765494677729337298146785857342588554436487363669650230611781751068428859085628730387377595481846939648844989416035443485697808600245377525419679503002964056797167342502691942453139179979041249185660930352489477750828065118066935071643415742197570353211317421509248973552155715938398594142035091645005491495507606654075644445513154014622140268918113998329472026991528693939145361299929924179189840369363800698959995102508372309552585932653302944467075847874991477158648590567281293316944481544091917160957334369371679431843085073253911103809017663601201614775651675535394580832139043473684070502572507078185158343319622915133175510220979653499715133760065473596458814313616203102875640986093055341481603491938518148124030025602582480375669237101629986838437216192037208815522067688140447386047498007520130805802110257315162729053414686990398390122115694159384726598480083816172661175438392042680178740012120178897376590804456629822390564610547422597870499879882496809059162867646947479580136610933412496810787061157044940165357684577418220344272901105169142906179591529280792368412222233893466571960376430829668690899008863072675800958566549087174261157005588619074611929483414253384630313839381002870935259346721614003301727019342734377722217086838724903753659390801901326258089596816424892316419386673604104967134198831637003092553634522694059373231116540007580950275813344192100864720845938767625703066478415786870429874359717396835513292225283300933759224862955216539276440438606203363531754726685327716060846974607597883581434992921175597536589365139559627523534260642130437572672883549731580115158955896729111959558262877090180318967779324931626713648941620503395072481503869973932533461511366614653494082079992122511655055975913593982640103935757410632459314057671341004364421975463394734745862324319492962107144186342900887149333141024452772072426023399645953376395339823530141654475249497998404841057506934104345713381191603161742899562278095243017765693250623801239194632677201291016409144256381294185066232729478291906068806337571838321494363431904983693127226222854693560231360352663777748053942865889796167518371346241911074664115448578638710392691883767347412233825622349807185165863593867171443945591817923243736450798705583132690346502822524575288214024842901191403731245471909402155362989090948051099743239720110168829118171866253056630359434465287739632573319438760090003818811339927518307964476206581489080618571586854212813309289203908129036371865641521589938269695410941948525543259262238025711585281596599082291379201984194282775391146567189429437813276548146129534644137118136093796043870144692554794566610571421957156407330139318099389404850863505964128617472995961107318031377348466113267668023087356119576546590153215630723006866889664788211418255594582336671519558581981034982991471320301657631451180617431895876396159777945489396844414703285014188853096899857008846190888526509930994215503329297234414633006713691214316527387942710314187288454572918599088821244758155934564995163121889207553356575225288395050902520935493233188113887902298228501671778822997946866995272724311859857345454370795126154547843518080356900904449657486360379784847682654990987819068774669933776007005077160059174096174865253929210168291249849403608111991345133627888828608151715108299237347844803173706308175317025716188375208701032559518203831131540146329213229420021091668863763530838021039366127582028295229570886915196898736327093683198603963392054674835191827457879244184121780989482729180717651027996474549559247300518323844817922661041372096817004308303997312865467934002050492476018892014042459381660015168643478060407527939759719476933657112686089568909189712859037925091996104647191459838262551306748294729538844723825924135907974047108248579563285849363932482631350947123089462528056046323100596622737303860940930953797163756687508365154859151074470420825120617345286138785506054791038614441781804159990070552789184452335483646803281590598090511807747564442311472052435233285664258627125613978654736230869796734963986502687011143746332124974679771597973466907133652102545055991567235486521130497718744404012896537328825501429717599875235225080081085828303616082699549267763729301720269447013725979885421148345449538734986210921923002400680264728872163647677766807092521488141470218017968711121148226408518427857474973205560510458148703228192091119070520334537600983931585537870948150526558774118334862001065618506809661321445739072233690664613911310658429792582593271012943429998990373031872083527999941028835189312243976660870935746822193913958447064602706053404689981948333102194717943460681154715860111626367288113519969649190610081765788778025651280314904825207475176375494279482016751919976138151648568903635898202256079431351527257993997610916535452360954947710954292787088208177256961043915338107603525375554665867009386627543205880866173482262570350564253927046334206071042806523405313362122468432687167688084658081991318913362425431128573757463108881484584666422529209745757417972943575132400024338026205520491049656106940699311173822275650167499496727626121321082303123549652325027362539916252155186832876028581759036854863010778965388676280741377598464219962253848176086263851945729165728665357070275785349560966709088019289443404176358700246285209221570035376132911417827655832208715887972517147369114527180266190221727059947267163439944265169190934247025690108419657285428824673705603002740951743058269009492532567735233610772875031216606713064362357477982556334354822202969849958562453093706504925199789081993211422675379585113918500880153510220287821474833418456760181686100416160878502875132211365035076186585466915685649114974351608937102761898043332468292552906228813848245078771459464776144486341650362523287266282962519004843371492042002713229345836526713706659224409014629281353197029472427122350661787914585378325775991601445702616040384363189906468057832017934898541017198398705768902237430515095354437623924713526029008248713801167146236994477792337767342952102007821916338742450817301397925977472608525997265774601126659101258069384430708113234186803473394244525120335472605413669295670206088346248589053809578876474824333829778903607724863382862493030022320525363765495801368447463207500759256570307173681779949770158309232734199766251638247757247059064517915801081811794741175343589713442729838648475189088004872483965286338718088507701696991970306385869745690596938598830576938353846772136936522217093477746816408146717727567955056900936878222990504211199029590940063015402076601242019699145839321185517943874190300789471506713021796218811301102797965220528731663500156824608994961166312776725787918739641193442457282617583450468197798502659330280145492983801029089182056342986374101290209508453496273418072941607747864863083962706235656114999273658982601584288991644480161522327625576368852033540868711133357136209509703221721797722031195303188686518160951603853912466047394414296030384668111122411897327700681850577306776688165560874817635082364768524107718100505669045012280227307507416823330935507637699713142119943064479460006003713922721345414923580521230505064681440896903134809791689736873570861046956911306164209685014337338287832894120082071261257431571654430058509349163141261842891475763299848315337530155392705739122332635974126150318617968892046793046613751497833467169900602859872056700966822618833484376548927503662760306066607673315876177307119093903989193893647917535032304042148779707004078265712360068493955427708367186686048594292612347822151179411146176565589609853686954209104812640516912584618100670863504522098944136582913461674019526951680557621142923066631651710764561248495020352996756458996762976456767058923804457667852805274893046090263175144715791495652213480336876703331004177703438756961720287748556166152703833318036425071519173623923633827781967730763703559421006662413503088977936504217282960316847151780112279416000117002109069841201971722881506408770034608254170029738300864236011209462267929375459399668849963003220400845162338793612031509750598368195971833400418239582483564767939149678648263715872207318858855555951410256888907202441292175113051119660082332588810227727300703601143263772174034137031690340593807308149890371523301946319141654200143283167095722063409347048072527157927824295491708166399597711809205487074722537906605715041986833543817274676519565005447101266806090163687437274503132714634254070354842772138738975442123642242241719094261403379539767947314776956148946440460671281234886755816453583464503293167654803823953590350884526675930202783436401703917016756001403987715935013531077806996440669905978063950145464604964557063884104934169169012569798056655412251576142394046369075495683030426319692917171672151703317455964678414177608533838308766918888649453014178760722880892855071065759192025555720721317552252259504820812685972873939769722791284778747467825864672970091661112645011397900002496519914050863929622665928022523286040445036615734605854137736990885651845667327540708791403543531975918110118402346536356807959873988511583091274789001036119205387530581768571793119537993280146614098800647503285130016578940945611028917061656174585175887502723958070982095565302102857172631090160047795186465590805184095614361524540801554070117922824548113889667432179599912796959484208270203125123368923671447028163311852965516496799565681577478788498884260427592767861758581926783743588776372073959193244662877123151598696102490621449492054356349667035302857072122718203790371690440224914829368720300961885561567976120625270122146533205260258766359835119707252295183455553359092601977885621358192267930354519398547904858046545332061037554129024033521966952154245488247058875119215297300395041243635156144732587383129966098500728789907024360084717740268798403201068919781447835732250928515563330641846449251789701662888813422998194751675434085824901167286158155949689394192758808750010348416349808072336784825368894018745587289489680513258269711961358913827946554019190446125137975321057853079329750635987579222315485008383661862931505943637428379879673071285629598577391058905960268209445518893555776319980883893040414099589507434377001911498421072246257278357191646185701388575093886464942736343491041923158230149785197965611287860296570623757457939575416827881504986429019248235183616179581841001053562128403263756346734096719492590748798816008232828746184476444009525049242875777110094419559033888015728553662498935286482554721145279651111332493196520599443387249126186037647165670045083153301814434968125280831907877690948427886081003134474918194270135986256871628125756273979337351256254685592340758535762403275968028214361659061150041988474204244788617552015624356717813400532473916442314628944288281058040098467613310097615920260713771251660890562495952577708658706847765791683644696362736085870327064402781452981116358410873234346540396992286504703024252656293865606182627983036670090835227844439847688839686936458959163264735946638711797585905968472252848430228718458584420905839545191708971498231837152120467488859574048843120041202771048365671302869941034622054261261381108573144913822008669887763603622676211907286091030887065046080253401409730312352587865828766674102985902261514812202761962518079936587486494869997477314525371720196810070843984550795672983564540096071781833703429732150732245048294327089588517194011200578669244369507147671618361194773770846647208233740985829448274617326327766778385299721093067862031901655971991883225140376190052435136641492935774602819266092035842164589199186132729502636635083671017478141141758245071068938228176237560107281401805385873978095589664927570404204011049674090011803460159006604525786515366716438220221696790634962315363391729226067342405891154269903043165315493495826417602827747399031164602982058535879313817878389514753781670514398156406586689479689591048401208673571579430215920908465704720958629770498327483745328259054275200796121151396555925953256234634221691037489446227121678715150721512375824074434459326643749332217468805236601575906943080472683280491631714086241609879196454558552319894759237540287315597939219894381709508786965223425716142762011432320814281385255896317581508792216101124525004760341913103376252492240849680090899852688983758228725113530442687184186403065241486699724282112072197806633538680828832378849541509337781088255951691790520994335408359654663629282508330564512048728506100619754613256744034575622947869020682832527724316778673652065655994313240245262285098202887443114810112534731658512833884271448982926224863869278893259175867325714752677668769828052371813146130827796435026333717979658668422443442146747834187031603014163317730010152865030099089161353707669940524801411105256796308591842132698910623367922584887934416336961372680926533133869894053979398247522570861209082284674770201306182259033716022019090609140437801532804860869069788395225257493960049616832885683145793395958816050124162263211254703560925990377116774304859208676195523168950039490701697196590549520079569936149001670944813165502833662215237889603287120849120762268531843704515941948212959921298605519648244274769495800725173977976490482793883558192391871956503905575907511735884743339321488340329522668604481413010037632047378077918574355308142363835415038260898546499906772104255061328183232688177672951675796491544065054549575001477063561484543846358250507532157010218676881786346696099945641665213376302979395677657231167016829730858499729429391883603355112694538370004237107050429300014954289167423448692844091808416108944261342683663287210542299580802721382386250092856364909675190207103558748578663749786169342262750051202729480215711785021879717889330518156069820851474632326072168537720729988606522216326240833375483671580124689300351510288351409527454858698912964839610672004927973315073858550897705753049184910720457732941630302462611344329381690805045636517380459698722775438841481743063536078393221079442352858717701611412216630178165744049181179516913893360934476698403152500372137838040038065566194825679201897283814521726590316511740568129363652349255927164871458804414632891868040155422719220068298277765180846221309348940014560151663440933684198849365621801598814106358837663254124813280013800318530480356518528874617938438944107391935391884305790545640686709767698779072662734821595838601168934417801550358174518019970555493635433110318321248704682586837201309135287080447866368912319464882965051405597261182775637581857286565699513671838909338820259663535809800750661171152779905640627095245349359644484465726310500086359092964489032578122859324913477043960189498205966742576203578603602921908505402227511998028332241105136850503828899067442652891145559600382704028416420491912345114514575042641867199394773993619468931543649796728524908604591311991192677028584410119739786026007396659236459059077691549427151428066480922784077466087539153251689485977752360089923811331488617067020349069860340050218457518222709773704709446189211928258653928320879515603157246649372203490103311481420508230532812514098544447481860450958416642194316304606172892684460503201219144848424943646083528074319167258565240629613685821544607901767061901983897107523932526949760414082534328576082584551591770988142282606428630689785883739000628645661615369228639811141474373206622674399027945592914196964131930676660625065974892713124637465211603978166082991328987081801616137547319526629823836301782051342183392996294218639660633340442128116751212769705142441711064423662445159114150107824381460731019170281564566209182690293477364769689362364252849378686944576400685486091109111413794189823459201224915604037297676126782192771051104812160775444807776865292947005509023333738884963479615843238970064323963989628110515611014564280422456233282287860642022018300542155112060938139526040422927392814861291816169313126228496189973331235978673566763504723208658198262055854184510654559893683366601139271548964919967765241161763342604108035998851490365832978178535302012181825076346299197388207977268217512637978749096857466638802464494225093608345817121737672294251895114196903833092250897208728181618678434287177413508473481104241466322193941563711401432612454138599603112811644233620029231722521123971621451473098179837650539933170387863985228840236877115165395391773261842113480581031003247347723801457076702099936510419312559852491366611516764266981500705406264033882810438631581856474593832592344998259576448032295480532382842136087424650636562399223943822104042346077995438136521022301959207531676778833162622203524279906141439688081477991675223699312367007626171824880496739195353829011924104899820914184655506729241866389287683257934928119677323578455696392639571309900095177939131783858614013004329527258351272744481273648213631223522760887857594700366019691301159394215652940494290304204764023655010845531694904191852021817363593020226467623516447694330992270258390120298466680131876611136812672037495320393230940666048709787152570012635517726902946812982703947640074677723098388298799773590498879686584528120746997848467540145562215583380472230630841894049780947640053322923884648636308483878496295314925878725988165272744585719707355121236423338221187508252705666401344596392573529218356571659897232869554526880696497198031951144760898406879706699012406973515139133500368257328061896192329699444533233206272242328594094781075586444019199877470344091188135393653216325310253808263651822396684786884168631998268913121670591960961803979668729337650433745650756107271545708965533120561175293080889284495536213588036722358443339854126786669066909632271785316790907694789125141482652687718537531094255924683647220776720458706825595502589898110561515736582625918755739173741835900059329515880843058233849517164863785995929262630747517933543085579222385618052801762885811905073234121674627868273381246281595813627992246688200535359362898675423356340874532460729839954797196756595682900807984817808301185947488932866905368485710951241193865811541941492948311690010369001163684297899290956263770463209278349483854193052338206361396961195312416885289806206338094716123984130936895803524221570138132705447411419182445861107942224994971879975785779054008437266679410942841370884065078955689577212659743361692984904706043853064272204418779978962464429779334044487752827281777047129021699589563429358818771572415642239580983630791589431571588992438947725415052626729142153779234644312510888928190962970062534523012400099424546411484532060394668186894995336340423418958314671851535351100321496902692426380854072827334131576369291405866622463317734065472086671187119556445147782014001080273572547912824152386963175383109477089627003885596940948728373763540005511718089966687147066110642832026762938432857232163361128249518080475218339104793869260126664879849854141681643049232729817658651787463950429519772795313829490392677588192194250938189294082504567808111079977188049155322854160910677060904167592825267849906556193696124741539266731926830302651022458775484531853880889594133500567224561295657077610150306832956465811023542690275432891880481413670752678656960052215536886679078565162188035718542599818138262632465102769476978063049865442003385901785767195255078550241940032597049167803212643762202156502981466060913339076106346114290223086730955428381909645646954455941181947773541014514469448683203072460811822825049013732297806425744025088119321416327976207171864817236674707256494365761339574225674318855175163474684737510993589257137587135582302830629211746601179933767570308598392996300121383846913965738080551077866957575759147443893197276581003122452094979137162908492958291035723318568546908056597776499027219085426460072038562578314636950833310736295016108040762999014306610710183193290758131935149673617273295225023070456476668598847120868680575981951697376777738363505020528486746258080735146936201128547760503961519373136913420359160233217436521788778444378266460328902990505833338417053801484347195003984929977376159772002639955819699274244381332929577324506021427262437170732206223602237124311844086364016927229188288728910365621779422862112793036809544428359251545153474781773843239942895692766614842995357203748534335563566536307035555818608688049352574130688093471259504466760628658454068527764271443011359263556905858232514475623724600375061443634824295308405928509011403760569495314125699309376152853421416841500211673948245875925391994267852881017568116526532212564572762718472180985389589631291608809899922552700132561286290495708864693623908606801863019823987540482777592203037372211328698719153242563998156246231399625627230415813194003289374034736282347741741139370607177053339648660959855250126920190102020874560843779821955438217744667178317772237931065973726913378807071115593512769204391128663314454380664329374732058503953098008031321172078522960463184331258138336034602037959605975350007412817443148519597998696859429611297327376648689200031436681229171443388994992295614039939769137396738614562998177237796511348808022635559075169959898725864078827444641556279449402275809527413901914402378108587164945096538881861059067068664913882349383321432299365316994284492455186729342766691501953940693065291674590381070041642737567953278904025619176916868419361595357932381578434514728695281629782010797819930135428428668551474992990732730656182886142524100892589943117854656390143244375090128519023560534255071981889627495870594519902726415152113557110249450793899114324493751890861130607033105618236354854952505702065560907834159873894344637886533963516216604994101607954088264087509800852639628845001181841223409238401743647810381836396367020269975151804783175570957284895003168286016263623450613551246716503931485379074783393082323422010130712750010896151872724193315238479725910327445785982053501261823065792969082764141673802544840481270542009345095929994793299773910821723324309221964829419667470097085104277651738596559075215319323957438229640946497911510885104265715502778840811342883053482587257811273842403017481889903204699177989927258004692320669934031837495167720123067190552275158157931298384947739263102330875859372496667579790174784290437616543004128515865140417978722808998583609999308486208836479234156519888558081372156442458958764064693823561558336447935327313412457789284622516519627143147207135315145247091946265172012840905293275294445500047647956811436191392366171643829001106721397505428429265624589520881207213985966474439744520275339746158537926652025278780399259049815387918401466210411858262956400620933649657736734472107175856773118010362037417474415869212113433216678241368060473513836464401720269487253994935661171950236311871961656783003936298417662699667135541576340785661740107611200565152992463937925541595177928219360250008191246867596347499854831238124400160553617644053222621160926245798609330883002425984128724059189563132387745093365778907507172937736056736326512410230658036925687766237069198453721646532909419949580932636189728043661915655175360863058086991845959922430990705650516337194193657943497189971104738999441538114020331943703686695487793391722072307756562138097243907199706118479027816170722515005862936460791845600242918182950039888295937150827119457987944193827803810631885920432644967731208597446770843801331544168971220363045653553190360186623931384426843717546219160922798050915228036622433600789664601896988449396993778431085106949856657095700277131593435373753420698007832256042264319444216471214852409115490531400023376683404754711923094967817330810557252886600125869986293490058506487640406244241883220529858705593489077545177668072274630905896194546615585479025356325535487777156362606289454945440575376267529491717229529942003995361546890892990059929423707155079459028613107003527080418598317665101976966843059621010118444673059440839591224537074408363890243366466565283320439488605626480265274126317217825202538104536861020941010600559631378428642297439006344130941337246708199456219947473121052244670749366774254708391074703184888391675834931299045988935221086336300800605013879320863437371836758478421563483748386594213788111346433760577174196537213163929053963664863842556144112725697841189777061860122161827296533331818993790429145121594116907912170575684038680397369735158403306415239272968438775415137282298490098207402447908224616377631814089225586462449102570966990341852559130276055613554811416356408737473474546940152414934489254910261970981924722109698112269924237922703845596826906236985856971762581103568789257998158960271973027738741719849613984159175626612438611259049817009851717111093964720785939496103161175184325351411565431063055411936420728501841054174116247902081305404093958109407494508958204224725800331797070021372475507534390142088059338587019074209233611741405463103678612993024657794424740466104850852848363920781442529397382059438306087792090340222490073211716592419311454784331095199810789835872588012909145894513669188083779943409936276090055407451112071933264104100507416067354698785661736260628447879976784124145970944303124652369922110453052287730906001635407004859163538959503500183065187921565440816033705671681871768338005640594024733836232952526057347810533265427516017337458969611724415256143835002222012866244856296005879142466062937954692159231577386395251928314793597508067281190774874465389237599102466743872146205591749575641209119520956781844771780671548070453798723548939177325528925714181632638319992111876135911353533962199497025938692422739356134102670085042767046330138535698888937134208097913582262729460181753537186370136049194074207481455463323461324700429636602689552921569276579772207570324634565563109146880058731756251917825374888432282070906922094074247385697823039055419481824460556733942706580458657716961565133541851520270623659909444872566959026300830654050885284944461523158809210456192836187651726116849375580030719690272954888375224578570679908475583275269825045621086895224214457870946564301070712209251482767138946565290628366076713007382033934206195187018117087138285837217389429338512123128000434779516978782058039870081619991495455788909404478512867393387156300627746276508267408619327875617522243560207653430165313233006463073450539388877392639496267319081654876391163201581595979402161720827230163041132348166195322958382837905745948216250302925906547246969679343376714875943477438476148427624779567902596441995325140203436981494666159076761546123183278806797061529037299185692528827330872787221342548048576502343866342428268420704312305385980219796905343954664763771395445703276953191821246700387432379670783432029071677624647123607549731702405672075049614136337947764310472532668532572846103421639409144345985157936993581428654351484713425325968475644144794008126036632325636474169862240877531819130401644017544033623724184469898824591120556153935627496780178820796405432301239954342977995932376748876379194739865207717363526776688016446711094326986124752415225930736190425606136462793705606900325790307636795697727076399701331845853468172234646984988175531422148585012229476659456409098378670811534187819342519650621624127909788514615985671451946042737923331890769398710796606820520179321594525442167706080804392646892581893685182291093492308387257095880422966732933320351718536153416400376962747319360876904649346243716938333762667736858062010066106831123483680290489798079003586982740048302350536066990625243598393516628394963074442656719983751936819464581203179395969947906829707677846324550518267562651833292061288914909681212997367698624863369410579690333154652942192203732031372318617030125593789019894862525988894973081325690075706253821252218756480487870430647939494819369333028821905455269212723688668463045880075661559506078788123291242111206340605593081587265898327152858780313033384680131090571271805636229713107247052628615928710469465580161560034517508008115720904547962706941018155839479356206503009545221315485059744224330163599557030200232582466162421086508207038598125654871221101958989175817930116373510341756946777648782822015770841892031518626288147514899369872217358097861624306534370898132285543339506989815019909526886960239280549754903627524268878785553839520078132231355142510047050998517756015228771618521848590121392660809306455256376357079828433094172590077736566661217139862453932247697375784428718962327912837671792902012511498045615247731274748087038043089507718901497962263916301190008725114369144320311583602592590422885865548796593092138889573690649546566928759588570372997902450557744849348164260626097551759316827253643652114784941358828717888152349256108363270354470280759487566590776859128555680082827161391842410730807177725617729021274729278966913798553120581077082298747866230697315665571430735480168483894641649924994407111277450529717675138543682613346184310671136215576290212251180924453338595289544929642795626471547325459179351835647266132028779554441153734860129932466005543644764947735890172391057317452062038408808957877335151736924660123237987333055726829283072980249890703903491576827096968089949459266120893049655849175356479969018725637519624723712124878647000666699816199342553640171249320642463262931621726502738688595136083035756054142847496652155594967474957956742725311532516457819986478538802964384145082565865362284187974995745457753960017264843855032884970260243351477503483647856592321329346481242221464442317281858683888772648786424453290999561712042878666204237335015550564245331686133709244006822606635536868711032092315449883793628827483064185606753297802286011799019849769742624740717748999567471042101408304125122277131655634812467263819302158040592144393738668759259118598867789659929380176471654202086941096912756944986703643643987962174047275637168743463946302441806150586448924328879259058282553058291766269391019460943387411692242443044936122744137633310591878961563107166285756796974297204400297981749290760398916892212719156229117850467336640084845289413293963779292185796357590860999793120025135712014935318710433189379344408315697883488970586284959225604753505244176307868237713417193327123984466588931278838042092665135235216194088319639026956630063098045161954493148207100883060570939159577781473334074092908494419582721813722091650411791300393549992110251953443367644410588637440123092730666162509854407681972056507566818430946116126740906999767584247441498500537146910337493361631527278589334253249924429349934077118635417348350321855880817698332730872114093157528816313974525832565828916937699142409265756615062130474653789781620591040893341625109341018489133701285861058410930473894290370156088331418780834636391841652057180196404798037285457226122835148123651842166797339069187632063750274949826709744523581083064530607214164430966299472678495941632828489645732661200585572926157135929871675653797802046483695706383430574506891377512911676765491223799396098411620266191962037121344664183164912601191572726886491773231418291193907007162296113925400299525348404981255866240430702930100797618034737411203799979392847952963430892831582319598867779053776776825285369589803741186475865613139658008421861446144751181354158352140819552840059155118239548387149518319207685111952238939810289350272788629146184335513199976009756750727797131181044092690529593701102715083247515543461206996273450296583999601577826780985297570619258774108948499399619663653106213540292736669752377923635478635330240859800846578175051454102557712037278221582048557487364938338452887961025650122635409043266703979689784399624750466390053911528502916491932513176420053099669083323614137200097462973807196855482919987520140475556626105837971510196546107842475370836188496050838501189444895970711555524529170418436636570011529998947231950869419095777751969304839314057997297964584535432691757853973386824248405433149076459905110187443455882663252807963525957645404737791318601755553248046645970953917459810851119037567189905532056465273649266746489586743047673967008716376084372764245473992686643121990839448557133304577771503142996772553727472690643769030264713985878953997330128194650338442211305692559258026499827368267538786307728107046221343479159900605266034270836158424284509743991007609428361333332677709767252599631279394788391664877408600517145117570999425247650434556525897696904472907809472551906559446896690230326130515184756403400654713990891461308110889698538777040768706414518612463309465136193932647501607370663395552553175318754701927702528124657334244274440114220217248520776088129972145070778518132315163925493404590382321777342125835375980638495249137603971393830406674127282704137226626658066557160798485350032966500509587598689847895333487963522989703586370822405109113827819835745357263434158853172318168789958951066649609045020693177330068672933329950167361651972358230421717127409700126732812761755052512382221545346753857191767123503370845466557707015307491262326212616547669744968954558153904006940581446068000552111828084311561338167165721531855568824458050307966103100103097824458676297168057268597965727031091057125071698318451016129363711749887472356012691245861713824133281557260228623922808582319875749725857190342472933780597633695342766709198095954722957217719966420396632726530113978633094813691384284663221028838631121711880726786910819158760589476079832603562238122102264086781126554755606292471813789838160673965617911505083966936860864905662544795369775443623231713254429703935304565730890812713833672382706585228015315972809264333615345839431048060449315817408778739899562393353444909530877321021458860584148270602604201325819217976599623913654823344057541434764190583825328489289346648246772235482136895014375900496033477720775230727325115581199638489625987791528514439911013447735846401146256032100211542217735411397826046324701806070013397745111185372849853560886408723120002341450437411628579946166242847865722524553084501389443318253421014923622618439840150559362797286139923371267847211895615334682772298379798549275427405827336997619048844539692830943701242297196620711879550773918091035717226310740030489934091712313954455205529595980046937365994370165226452743977416974814230359831974626537626119338545187025116026291298099322787572544948050616447663613063646857921053828882082386509968576553260662959617933772585687721550110958816016049479653128456818187985798396680422122942982604535875880150401572276401660491711341558612281848216471414466551986690967900401359147892081782659880052268604375027034156626697444896545217116789954035756870100490380710407472165422188306827263962838917724451777893246312012769572031554921775925937969398175914602486974097712334586752719639867154883335703330371069809552917407875804171882119276258063517637545464281979383529706825101569667628779836560766057404533397117914561899135803958476417482442847070525057533192826969015499328331804056771907336484404956018129773672643626292306382157759560310916103224081423983483325212734521523728743015735354020660891216454243888837052647074202456099040597821230025085569625310557650071624629803385966564330121396674477157029983473319348019550102532739362327530316353849879045611225848586110194249703946307902831861611386608035793573284135122676539180002592237508397767022253707213026703906250238152094470662984312264183128504584095303708066423755942113867904544685159175988926404088899231803331252919224272604956012937185073748469416978395760651856501012313368476781059563311891740888762286191426861082100208525154546343022304610822183166864522301687345538788438379419920967926138858291040187266816932037026086092082646094711898277368768349876077846776873573180816952454268342412683438160117748242566269558960975755761529192328716086374151825299314955050443073623023863069085675406384014804746743867596642641504050652180114413773927236709330248384771439057568550613536940153260265907477908606347922231707797407296863093142149415163819020204676611880670741683455693416271425998421538569965387412374598529800639085815997932918385685614640464220110118868266783301823276206436569477594805188994125505391027161225371663623488061761146193922526904533167309413719294516207803418745657193545389224558729051319480375950124441865767074499062083587566002011168246616710154097266013214670096163147220714043680628303864758600295976210673439557170384165013362458431713605409308123230711153404115343881210035008580039789240864717003771935635476117831254469611154539341535416000309185161956355236880932209076811035367675333294512857937617359191762326385459160358465154702023068347591604227209760073466746188863770554704845663779406437662778318438245359134654569937395865675798984036513405594536145815655271429953584275952295876801018443010957542477280055138426288311273837433269239827072687259824086149703256021888696661622710466521512529912432473836087890062227503312138068199997786986403613165395801197444234277673729843583790886008223929437570170781296633111459315710380662233174556410583484432149365985352600742243878092039485083374303411031141600597484989177490336277624658958254436210721843386047806646145928440460409345260911048239997162084080240428841417541964015431125018035153252206551554734611994239529971442794435111417349413733318817663647224750366141228594372595843051325137656707921807197364746083210478111733365091623690361567191781931057262443205118420452887104212427770678022482586122259399983045203572332397951293865414015198847635580481699832416718865566357254683822261811310249557614076282916379915702444270047096574108991374657411153655702739459772918577445310718209539466000469951623484137269218223363287087789230039927083547479536536057338127731772420194090708862470164498746517110448906860221104632517289975725178884041258967726328911201238454673520420431118121923495110397882176182100784830117620032251274511531871784872104954425351382797339826392693804511127222254520317065468241936720923355986288728059444297195587934029303898483909448197582795316879576018224022695502599829918832379900282331794340613407235814826361575141301481947204098531587481049764909857668122749287230021722239643164555162367848530239317206685058322048144502891213327680785793643253592448505140148932349551163086782258520579231668231063207194017444105606139932273408036182496769606030120187858139432418694497444662847072954705065977706706089645591091757319201495415442023168338489744966112164689501685140414817945949971906964385230828608045083025794120214673304925806586423975926308083629927782086297244051184205487908722922328699513259830297884883767832204376473572232512436837959854986007450508893408079299149203526173488922792735079605933985465936840093761914240901325071865574885604381574141210650342727717041285198494761521860839969407775405332573822571424968973485458343704368682414501918946449877468725227882243487646603033904036580026195764613390289367628927626697411935417232083326524242873481670353771201575643347932071622207919418320845551249969777783534006481518251132111916724693930990695645014687441618661875672877938750539043782528312477696697960310214973270761031883255692554163175360636680700009991940108372110498984112670952706720931283308892392374421088306292790198484413764256125476629958971472643915735064197649864284443969102145605735124133946657715404143367996710137076509815830262303169359195519265316866471582878051617782980827285278816512128371510252410289778042993769865004525365786609372864548696087927505834747910560553912908534998665258652430791724512910012391217679449688352829200268126334069035899806527608942780018326712223558943360692921097815731034627929021563295525701767135046004192185809314748530441921712182344826281143164878850465832625936183107529984544179474177138922753927403471483405425787450306595323389755204774379599448923491288362326140231763409244581305415043806807573099524652123271463182974372609280920454763141386702378104380352555665139548800795862781678385357626342917348109600253107804065940905131844749004813268840658407794120142915617103058173633583291296110590361504498217326983699714837703543504850146649432560952615702301034736876061258467453323603593319066652715125773005872213912917842516832623625386429373377200948948286021777219707340465690555628775104715307945550259543283980530937226991109468105670534182724492390956587531663352432405629736036388763664298371379626772178857992268049322458070427918555999516186844874163019629882253491896818607099865963270030744559922362033766192107252849339982809068206946130848907847197571953999416639105840267335478462008857271868481328697141353339665520635501280595543329070315180828018975369776171240837655697964456402896424113009494709495598356115530079949266112675743629167260678272362743751204122324554466239687060362483486782705520728699396112870426445162706522691619192552911211866797692924762166575551866272966058750844875631354157895320697267260503969925942382347969090524090381708434335390536422356694321902942161333885391611571711274291679134729966074046615407218997803408346883425950608401098173780354238055541619354710591070141794448750074706171427036487367396591583548079502944444364515051995682491202430050321988026173056309211274871763063886803686214129598877934593464844065020734397720112766674267964246200846011839012282127031682967778127481423504211534681338246836834156692342436650426416651071046820213975160787562593020860037754310907844645990106843377351694141267451895192549365395487275614590423765657740074803863440916331760777514456705305653544941559487391803135206721341880792564416801543369718590745135332833482355451042420547897956360011385872677248712484935989382950855436915912784019783709862871054949239949966183763286947826530263125101820358580933690527049193035416997757764961658378827528637908285932496132369323284563508930971684245194838511969201115838560047331714404275489027108139729085484194049486664103052332254358582125279980579096577496538887938259594384717999435525080342932233156694271898341284664922949374024150200027266753707279006041214346631573344900291936440474605756155713248676824678165779339277509711120791443661720513156376301256878969315993083280072564402756543905366135951901755289186490184667888923835444341887563639132682187699088468036683230150834053041597666454461931764006927258928660026582515312282705035872664505445602191571661309620762511355638356580712886611373965233305058619772932195516340066604313556832682204778713940988358813311159025275664304964147362022650037976446159953645233848611644867195977015907233135326669603995720413387181904323299698830332580394786238150836851393765348336647155540029991070696434373215013186708815738005107217428703829267624570682711482767441924369601927298660234347585322595383216664084432655692976176284353544681682424661748420752884899652202846882177676740153850505877328566401124415068557055878672816268787895258453438674760481709860287207210257255052565374692413953643851635758741881353526409496642611415607855905256534837397962003823784772324662587173719177098442059807245025540270616730816462471188071492126856971383096573029591279478672084543332122937926626489415617711432156815588282814131420144713044431079803897877966238755215934341570934926813163906283517469207365287482461619002439058530967726514277800575543095580142169914336528029870734087781893460286372143643536581987254466523621206147194732525626409844105822239054957923899011337932746651775369407767187099766060109832559705855215916997916555446400231590199164406908461165790646906407106812736964517921404493907731705037675530585161696324488143036492151071857442253090352142501474401364554464244022346673988180049053710476712664197584166593645679714826068128334449715662344943673603361452676861236165013877874281432273822301403227778934912560677772089050687235446383033439181574419002700559936153080309572793991125139911047868111131872894915519045103736793087855094043192750865987597224900387474343840883701629944148163537534580109660659606702206484709013118330517450314048437644159769416624096052179347264661986648091270838604367442527077790413040703317466763524259741085568137247597176035172228100602676620695002824179154018205901852069817717322183344776810027888850630839416956068872407360006797645392349161818961120520461071450269835473518973929832228408908746063881629231796583013574297862303421454607990971689972892711818107842180730571197102351954020150182908161146929014157270597750872159877573368565780502884754949524372647121425309556312320199330439221884119174034168411669133746243793452641139337362560050263650084051167803685156395174311347503791633131370786382637346607616367419959552746582067803207981539987614219382008112809500308196758917342083210112653842177700110987488483351929584929842657111700611420100881931298786006972033587808385143215975215595046854247950501401821462325950352384668797807755569343593373721999173269580478505105256895471839786242449676603118439818456166543574178260141499526646609885728477468665242471341769121959328443556337590200370117611037632198658985850622803453639911393185859276974287711552285292140950582343255808021011899189984716350130110248286233002439174767471160921756714753425612963344786646976597002184434008376357144744401771269736209841100929184934498560485900110166354342548817594998495532326804956596351939455124781090541926109513180683743421861838244442338554256463171615539214101264905747190979867967416231007134309689658909080109197579428241339383128289223224835206450919753882544751798937815443098382486494624634645195259862086744989651305309715815387282541456824484732350411515722935672673490197487004964948266681340259957703424495421283514157422667437334877825709441915185241111166306174024945526565505420067434254163375076224259543236194202548654109246531593397265583935653011349618738695536961186244812940097570386543796571147668482099088573746559576784622183803166035136978210308724737130090121959389098495912423856682121498019951733739694494187795402718628126870262318383523868655354261348116293172730816904199558812828653176189801998549880513770254575952836494206188825798810269813851742519507490882596248321235657695117179610145368511844501996741684852706302758312965556208445480745292984926501921684007734858349806588046402239964104175629715655797337176508148635608393455491275891916015855116204686177593840327788386964012727202402351438114218336235003354852376624160843396965188692730485775891867209464666546322964506259601445105494482869364091479647468096931919669635749538338446217522720518126490317392327480712748319035647361748663798724594250610856222345288029438858967017557365828250832769165392394194197148483111555484499801923578508657410016436388037153451547392061881397608136032810112063380150316248905771268984235699669131858390125823941276490954563223337043054442484662837528837974370757874135027886469008695376895093110306361670506232507135014522754640007495614567382126978134581606588301858902221269286737678788532546186653119861378130554864155905080168336930397657017737326070167751133873388129565758794605786750021682592001140901288012774809237784640823157613893674577846586011119241547932788815776349084298822635689989298336292088785871163264079856041721860578964714685091180303977964647893200248444381338040184264109049798375066716013994928185171606997606147643082494094679126736118005754871772034313493885223666705805391148822131246591425525352635287554697675848627318365498008807719245972411095487582803334554315701828171037356136766923146258393871285831804973592854198574646666008962998867667112583690786314596408190929268355043078853497750918602707391624515902309150084682928262707147980718012434574807959367712082556239055937517873481530419238913602123624882626561597508074889204821361408743519481580652419797595822539046885493538155219086716967046412287636261834482352567584574544073495174012805600208512671610811482973484630684120727494281052546661233523807021086649023726617197903128737917007159310788526287951784664867762221750878285437828120346129994602123946004351256366011890045551476117751063460370209553554411676079929684801833099823044294100366096523523959060963163762413188767623283848958240447897695238524435549824152653362927571325846521141389206355106172972056630580742508814183833267717065122503855506671702006235899052452655589303766982300121938867521658115332162133388615080299533366602039216089809698208575599439569921665045639952886046436440005910705137668685408402355843392469788967941467271109358871849701947835825697525923984356519425138962405126601231124451273184183662619954788960715528485940334498918098512976111983042462093253607929782647117542587296385291335359221546143409555460964917529860410090858672591378060812281071671959192342991716726868832888315659300352044919140919018813872843267074598389193372141724692424013505495254030347012025846125987989813351650089487815343430266043856539658714692109363491364834022744215522516864030179318889972971349172825338021745845287142684286612632577794927065482546264261595735686760343177835017540653394078157682475333721734949512840622094587376410952223218240548793398598128353357787535442425243004079243470035829844494453449295887848224385413203577603124327938525938681738261004830986596860907352687666098281121237521240851294051357658814877950853524162616296724935786918098194829659746332100341473002023434345323014660955089333228964175671302227051153338420310037930464131869587002367220427821550171100000603345919806107397854673921136447077494632171159157714169304947215550421252454451140474040485134944118617404942823099966456009791665189230162042019390873431297272076785886332366609165986893139253440921479166940886673653944595070624428184178753812930444215733822461671757341597139426848319501353667815938416063400998195642085055260042969619476306510792317125713230720563265907720607717715109582386722002301712423483353667631862056903422867693532661782463937282983215286782423845470620014061453297457750954106595619530642129773915069566186756204360369181035725018668071439158872453023390732144751715933743724434287234456591583832356365521606815398257711639433388998937898959624085003834054721468490350656740960045143939163812454730130730599318017577249229353751775223262444549646817246869351711053300625302235762290749350834977659498565015972774719833828843426104543598424146923066957656294647420363502037603921955278717305013407292662111191113613563270843577986141054209835210447065248812128139134086127646200792973824194865319551354773605396099608172275408932073633746882851950783291561373137129565694937422299841509827906228170547932336993252001946840948661168560492190594815282126776958277415005251154282806827247149355922115972840120099910380464302347022619602439474884936582092587113464182764223824548614665633917204332963991301622056306587953969963301304826745072616149848771486311768790730211510642687177782173585247177124365476000078801723854261092612016564265408978764777830272152386400823408077058433747279162602902234221586867674437422926844931301506986428090680514345808729311287825132976608444959810805926602979170781045845821767072345206417185504965219650831791963984915060451903633723048882732387364617402228969321131039220634191750582207006508474137917570586332968327070862552592204707275768296969764401446309831997694141698178332447473097133074425956607655231913203023508446771550911415339835368237874805868428575339909000483800586325423146678284412317220262513446778804836895662594310621866028437917951469981719178330350676688751230432756302042364789805878951922322959133484809783011193044964456036622362794066986707990199500724673534843158019852861410850434778152817990412522405401979340012734751888207284059089100331192497346606899586842935986577035126657863816321185313305655888189973235343450859835670521425951268654728825025710358135292145997719857466596878122464730651393475538723049822489818358367199467243046672780185324482507037356078880124883603829802878237913247247559101414216897207902526403401881582740939000128354931436422593262035444241076825651891211891396776817398902126888484871370563724519079130128425844023192740756192677864501668051178474110064768424282872445501677031133615307596414841579212344667066834675252208161479675100161023493415363430309002165850984119625818451221189464380737457403385738041555631536647052815851169952689670778897392064690265392473478598176246463237266370795482919188684220393079526778184089770456236423883696071211205836990310154213245756351399677486421429346570481973604049935730891557657176867447754642173080107659654567500195462727206231126917832848752460922907047560262976277198603149688566821955144634874207985894783602784971691678016591513685715794537177848554907041142898160839561746071499953935847751027888121688409051102527008119139295661083750712711793675472034903564246790606907812209694958399647554643531945310555131911004120112207433397167754016483063199536909579615475656502235669426258303575536719846659001653248278630998079747344592151972970538044677812867497376898804702427233543763663657712736933227188360578864921521411200082081814744014902543570318530917393474887732813074770785635110918894073523820030599577193608786073563955103007759173526478775809653111037632511562698246949474790260091531322684688031112610893703363036879265916251166117467412667176192703326461001494000420767311675225853082747158221608023704068880431241991884177333649472458733866756054906343543494027169832833270202118206978048262938611439783220942645957347125220724826482770472976927251935316320148095845676981625873239453929556861263968529436388168291159204212170136422233340148463985907550274743158568195377119766193872290911632572561412916676870192922568519577386791235459635815468993321409602322351611866186818696119960827697605531394485848534192319793989775514779011112581920803119365196823052073998380331244999735383369085239229929223819207500012331421266226064868670746052931791618480904832760766162630613777466653400276229163331902182141060690310765816198185644973033448984311140234554854103760073103874801737619325928755051469088014694387813797124827047743017851709613639400183984276775634397295522244128518246286114980105662608484280102527909049753223399027040506646171116713339563988280708380639568425220836816454810506659419724996418702919943206618815208986813713866881095390706389195934925368827106888942852003377458586764939323458816708620843737655842683973506341954349603041161484990520607730945336898925817741454365061375428627247673478732937247781906084105505328518223290280921146214443799941172480429073765250526427773774328965263796023866968743515344961959402250670423942389923652538880293287614741935184368109582293567741907784038506860673780202607677260232074563706740505106736446132583171224184028078197014804859330520136878403841206715930332270927190457585240051029925036040746954608579316263311973893951217659367998668750015358430805435159721550192135553302924738393097470564963010681253828584821337369845562167204429267922790545995879432981267953296276518362285616340714479788934628885458699172676067632088146352389392347207958655407203562775148643589345764186468981110790544460084959742334659024858520389422483822207426734751479534567300074440293590786453600741458404235796295731343058350832769558886060391599651497659263306962374453994417910160770546030644309226372349799955862281693437135031777617531622890220278922210544623494788066698810404953342867967579926878069481471044793181040442171910641573237744671849532199193197563290931723605184229429960030954180365554239952917050302228091758483657665561142094653542608171791947496697170478890251305984187630736759795772657035002207796697870409703037625762016786106160240395995548303622813917386771025061960589423375608787221456969624322130126574528035805813224884698646744684996027817937936200152721086440525971252835973527300488050797388647399143019173726499747602442906979546611209062407865387657467715609873624355756347325759637110912484914494309790713725868854281297750354546720664574446238600830707278431535997640159442333888611656904166905857244407661805005941486607657618344980857520212770340181517985837810745695432406603826944014638341068770648104908066354959636485170739684283229960177373672744247265743695280817751096681813498775409264121255826462504136213672309436333589383196433035533061768750044022596487283544820275706656765280204994956427901498124770084361339744667037860495893917300167133577613415462849648352345635292416808356332702898337008519811573163540618600502277975330611767699727653661906030455904827615204113180904941471002587733858246104444744717418491091307351553209775336185735198572890307883180577880876019794052444680922766277534059807933817649155709230720817680649040892179694264374253344555058528614532482655602331914979028438420164267790688328818455417976372445889160424987942981193639722079197384122713369385710701005925222150641385437517307859341521519407950103678421372637346207234950056188459364442039153901922454383050659020212441915078224386394204617294789967969240363422959246855065064115223077617702009958619860931913181104075694086408546673244868163658660802315995135194283878026848567842567283332487703588611897031785946605594462377377186462971151191549904184178408038212096180215979668075393871708830558301369484409576606516123292800231218343070576465919172178350382828504893943374446084450555685950208087089925763797744503522371991874122998682768184330411506426800494969236471914468275368841501915258269165615476667078178838516620045734563116493837149132101797401948133282977064274181423597130579206549534023760329183245399024843871945760670228803602245133134144008653097862562782967205921002196841855639967705112322333853408166296528091594443290148011054324382592759940048688436420805626449863416126656348188617771090324564265716492391298087488669179630561710383339338545044855127898409959061115790618209538886798180257412011254191591013052139829297482373865171041557568470426489964989508893773239672192660872086652386293996843028154795904692825781549597772967283437279785518479571623051108198343114712091431517444433280770079164649748192810220267190115596774926997663064463067262996476217856725719810210316847526793653243180840043057593166067330926064396314499264396173048058529584501920627016234417898753058279195029098025077804237984533241011820759372961539703129612198074767572854271415868530185714396703999495068750928495881841001709396770038278438988889117111951612221330491566072894291225286015266100799106260700628176701819949859672534781303910712001253038882324922370831854701884055582160453676575377771815974469849934747198644935190550279698574488551140159557639354495122628956348548568373873141951034165317131492192315015934237556155210217944331875384760871897591562204166374242083502890922048142453284750149937363706461126710135044044687561721404708589116344160563861162065499767754119742572143265731450383997586633614313557996875673485811089729410708837192698371567567495896118128757551500607443856219302276520480149242240364077723017790819964310470521038197109691352450067003966993449349087746286170880891653288742662451150751578518780504981992917608459913819015948735416762756049016550732107084096018199021014302032027485907547523620355842719771745370968953209013502005082349672428818002854969400997426304976526127431226790035601908512784102308757175390421213690984307765126749975749500706738103573675987775915257979547882065220243345506717231287601430643148543247931578630177446601260495888329327122058570917190004955086188624449513107159413387622777655216514585532228123980384292748639151722863222201043181589462965525339007634802448264277716724963526957913779059909869960087945454056993311692340115150048369920241451002174980223398275001690725704650891596741080539211642081962254943589281970272690977022970023978023639190596172114550456913177862982577084662005079885874281346867493739695622451733839464164512681197189935868898709268238849973033872289596540053464909794913972044140793699049217400262461970062695307234876161746187428208375660791314757170741766887059824089992715022344688433928825072507948403514582660917113833277216673451975708017759487038102841506501009646858369338968637289700234322769075112321185331656670135975845124058566887269708705636069135550789150418710347477460225760453199283663771460397043906213943836371788966679161302342531835706849246168325163180023260352732133031740832986800639422020453505139967030986928897627713366559194678678437101585059134365405819941740640697385918601739604262454655763367066805972077785217469421388775643848851052210506248841753203773682039467586390211476185927322711407392381943904186958313098245377054272988693915109334685980333781985205113580179063570236843578595070577157797843724557327748127947252366840518535123811291477846302483476639815905540767906875998781708834930357036544176117219306657256038786785887297371767408413178601067291660123525082015204624554574991847846942421831096319951780606465263885414602340933903992774750891650312134301022154409122725457484247845868220213142530510681962555345607339078865406972244789791069659438468360215055223584134913591497407534148670903814502863394721136350670817629310435473916146237732678423828421549731874195099395280817132504201869868426055461648109342547391332687848506790088229902947111941119528912505648979946995905554720034605728679655035176668871705786952611306668729632661307576057988884229094400243444635265589910829270065543415715681151688240323918472276556391460152319403122592571731359462567690981581299029470429002335156998282775257115725564545210936304375729547947465912128662621811673245217443959619144663797954145955472736858837726291330266190606829010179994242671194729367745497090198610423648566423301030777302307489209804332455423173272776617981926957011940916696991700447322798327226488034877781050293354213593086171889878656898596176715572780560976470826100813637178513595363865505590071362394265076521305264308489373013701986894209582117985609548738275462488223888441300374720499055804281617394820022726461364744670652003249896596660411925360188883821406109496139717545798596645454886060278458286041686268668700062066566498683033964627633527976749022951717630220355223100608469270140604790690965117192605462954302445344636515080044661090907092145248143429802166966146382324756399257258170030457274584733026176817563976270188121432426734732078543043318333943972864393476680760579786446001063765505516355560187676642466430246498216772734481716442864446808870343393406562964928072116670241901460843166561371543965388964880613231554140122505622661964121645179915701258029987733710082650263814944940635900055824972564017707857323737629918374370386333901168964088608407425131903434441798913372297655088992630919987089294524507240377227481106193523467885437133583592860889859338674041179222602672121358650589649848284547185246925934802749876690413092958382431258371632420461210853776860399968367498639360828609604745818587071072399424449856281640467321767530536469656529234661521274883947577061223311797642739728556561279085115265131540513229683997552548114665501129422793008940781828924640078629263827932455985405246680537748838612140251840764104192350706404360613506970495463504993392902687728409159905176552890037082529708129364596261145979318277945140996649506307933012375920259454689029154394756090478637984500077505874374540867522135626557085884838009101686497919242425659288503059994671515099077041920578446625419827095777554415775840616840791211781520528357698842462460541419468467386712364431367280014706565926084699915504504395860634398470502365084133806607264912066038169128913184219865825748464876890486294229543779177896945308578178798255639559463787938875791634439504487082687977344106719216361333351651282356197164631548744545952185772506784838659687604317061138402520611785876246900062325096889887944214582126499319617942496308481471621378988757471926854838949560833908663256782158720800796404652386893201956882876456712013721098676006410694710823812722957086870420068229954663276541146346669111041089829340423748600546675726874120060951795235951431568758395669470058697422636059704890682127639447980354095247663896569590305743357510910791156917216363238847662239168822621378262520099788237516930377603629458023620729907134665325412789843985979250141408262554876474857856597878543519643582182776710493308763514962406711372139402948387973495500651739183053343808218695233849331983828196851838211747995524439338951404109321524244600139293381384344155866447345732476032613337220395068652244055527360032357042514939903102539427021779691824724893615784365017051507645348448707158996348766467312274245248050154233737996043833611227011702815592057012986375882262438675807251855666184269047622074077608060457278569516530908979541536790628153477158067528559134296042982934772343352455388316191295220224427306581510703670105924928971177855287053689986318803839574330889136319417304672712201292139576243549556317207809721806758416390092645701300947168210651430897449960194759501731342585100408789153648689098596821574813473564787683077292592382974930577825090234029055906548562140922501160388654703802619465843707459984560009332481571569246229182010698932813411316758015958478504095616517578974122180608248332399084357505469432771118590289450707611502213160322997914509109661666672971106616847869831858610360179874768936742700473392403383832506496216644393749545049118174760809093495656562612343997390118876991940742726609253721460455224270669039817470205836271025089142384023062049727481501428456059541192844193558256866345073439520043994860363384236408019787229561090624583279142808702816323316650799351031431495315092899456178434891798841862527751790829856018405616383394631515199578510971449888801199324792112794563435239950618892766960717404096764929835189381017585948943975437640171722169964383362531464966285120926908791182015933037449049589539903528742952077700839503318777219456516093986505519440447424273293977286261550670027011967554341800847564197316009462659323208509225986223586848678723077029566643507886415251430365798205094589349288533451450514529486513803285080703466043652703170549256037755120772103858311283861332735447379618283084496241783615502745577909469268047749110318763547034892836386919083803888063041628796349017919771440359442859486723032524517686078524461742459966053769654623997807519427705259415760539749109366279444427052542645249759399259384266538341465863569715679579437653970995899821310904246462327877421724922955317315747820177450407131520012255213362410587410214317748346507558817947569900810549981983665584528630949626765666376607393565435793058385044055654908595010258309244696769304631939971516682537948722686873645649309577889667966268372320679083482363388690553959456119536763997647385984795562874387834332529207537276893945780192354249814510796988504933470534129258050152237898848848775462745782816392306319795584441401764603215605487237549780222774694017007729366417726167062601746296811134475093802395504021999106360821360384967294851430308101496443162574101669120737461394508669411079743872735810370222996042514451324451590463905674288975146401008459021485699409159865850713084804491261155856789861947732107099047177215870836350798282131726765828096129237439201631227413330847192668818768026457268042745333045816275323887026930687953325756370848911464088649967611183651059255322639621438027782880436084282904419826388681831523328581994867129055949722620882920772172476606096164741313814961807388386135092561058589944334130944296230668009095653252691822896186954931688280981310435865102875993936082555520753447131195737015398552630550429094740888497357469716738878550898326426788466952231252163468330161445331647961074529067254247488072630165287654990557090250365664826986539468971419730496956840082895245408727093684197607714646546922142564529555541165573225799564806434722310956117846312935855456149877914496671574199999778781898251015843706222671737168520206031295087526194425565244289191342427026745346607410830556702890792117760151789042763898593220799968617445165821092215737096015177176106254367413729448351536598759286472173021927987542567590628137197680915921100513504976736290949842099798011225796472553640380204730119235242817048717052293518948128518021797645239818682445538951931673732483836449526496244701985733812516108062413483221008909198599532942987675619511223488936136731612856703974132362621771820017820425193590072455262063787921824249909600957489492345461259533117171359269798652990356421172676788903114209199793801237422329094019890446449859018605332100268696882331571052766074382631148409313782505971492152098156685943364407971455753005966830022586812479704646788075956143684294090838288961677741976241786266521392584224348269081006605900765164745844620749145671021308036703178252775700255131560153467623302553489546315674518998317897499618482852125784033850408922727942351060286854297391317287366800024007684568634637941987193021013074432053412213616262586322924394553574299817872290770102577037893909231259642906871253123168333090758115729297878404828253204060605741406846454932683715845354061994264761950613497181674498651163706412644720823280043150515816015102218117873977274162486836742113018799254982364853410772915439593736009317947442566043315058849021939997984082100094177448899407700935713443628186109856483303755795091508275117590672417001831347264170451573315501803020380244020004214078425935110272300836785287854070025061603890877788696696601519425551864379642941053999086025373551427990479681480027888929939738495131891569240133718845725446735450630019975698960576369249907845530818423930979094110982318911660999574663544925744542018440130679664485729954346567450052078223046574582309736566284660580982142814634469020028839885188882938231437407271244644767581905935528227848706515578874479002718381035517679506777748986566801231170634757421862408397258515563909237012562677891839352583873809313216164706414242229894410761405868096156311258399500392192809330249072199911442503155562170837460662713058965770167572717133761692053984680705543763265653494689967812324680092263846098964557938399638485046676123548944744049324123590455809218744130825029684661093196342282530882507854883888293529025109587801374897325328130307573327092450573716570415961650048067471481927519890805174835633225676856010170066308390971748955869824857844687860813655573326521208291213431173139367874022172113864575804671807996310773147579323164117239855520306705922856304086661751847881685952458873638036250596024240214506950697520125454176871348287740908997641548964366290830845647450692341765097434587043102289310568602915376894663763522403986444215970097861682146198664766948289025539173658386889990173263851026467403736558636809054828762712459351133013155347843445203217482357400710116392184277423865212042401122658934358531982201839424323322455132328476802281690203705696106785688063516518291141575841809127653581485481786241718920937091534658423610792027896906343893228559653136483632320826201375471580634832117790487704304404800506726583916417651901295789828269171321578579998552670295212800417609565609071188794962095203201687221078206592790744379745785221553382895687138159757923863519078429250900238285201049499730323197505771435674703437495214273329535563759301986751896194271928998152458247500379513287042022214787447542795165414430863681174782578373422309622301848899967900842130164835756744430482757385781711566495438584413865802696504763917852557117810085418964382706190256151050793962742380900655080663611033684879823697246748095106357805915867696805849519438386418677355370065543950412503194785833740693953662892444764044514935872749981297651770891133919146982197397779490151527595369769227031938883611192422748717028249874619482920174491662014559608541890765243626746342958908578726137642103665133861274660296652344522809817917361853193781703352509198453069279770919560422707281561956298312036013616605285673925010008938301073089638251269496232166906002586618966664435370263478633003129353271296018269005498985936810963531226476479757714221946053237231238640706509638117046128353544733991030102492643616094380324674757366845380777309417523794342125659002222901011337655779293444832429787202118476014716886265853946535697996175817664429211004437508679732952063526909162976560392511533431084473360407411827846810368238265020980528734607686624638368409545955570694213676399631621182652783792826866517797254748746870272913378576742328624785962058566821021728583056468177465352114884914721372560755419242996511981860639327307479395863278041491077911390801871561651689660956030760225928034653000338563108671818554346769319456134988335792676661302913840522446338347390081269245001827576034930567162062251809659290477595683182706527088590356479875256149510588413015160230583468509480719633629060286604600024078215181678256322240542614528807695855266131608862335449922242385317741692524153464121034121086437137539873346740225613149313531792394725528795260262978186380191693630806757447354075447779494351034831622994770214965359693323521825362304874161241731028549005402603878256927055945969244413170491050110991660113368054959402194267820285322610053164703571177988022217673723820620754593741552021056915970787615492874229130920172821480461813224521974984442788904120818305713162768509473024743527613125610382936668240627980063333594203443210379632101520477713442642939578772720197655295176891803322497488933377560968062884322916336749009295842084984752173583323678622557164120637851830584924427146272850549804045158803634681456122662629391025593988504770138133299488400302054918205082163235791012813085867103905963600228888959533232042505085612116760911949234825357459236929058380885951126139839395583025766481472974531709514888938259170249088261504206422086487354058162931561115943909514017032089234761282083881129071011923898615110627558266815831737423946315596284775062318501083631085954386028548360968022336909341889970138182874201837400593817641064586409771353407072988933229686151149755257381722377838821713995922793378654385753134060797950390908975638029243121002347841801452411142022726985722375281029076855142913475609114549926132491952857465082743405309562661148343034351813922556341301745594225242062665453987821665724568029434220075464648926780583712965993092707311690016107550206518766835030354970339712485284041622749320621750775913829451522685105517816381275317730105382321457962961371057649056428375204784366993436200326315043514822090970631143589861592136949851415096819374583420206784892053149995170307420836818151053910917891621865744754197106840811328758295955615754715991236715422690014166957954768869443019721591865725626416385068923690321154540164917122446361808382768192299732104315441998010412686093803646634626515055853397109281708431314590016737227924392758653297274394604442941670257440294186511106133912181880738337506600469625531526207845784263420126269873870134351623881600495281710345766259747490547261838374363300616304798583125749899285754688572028791116314746489327160013161205448003190107268953822736714518669508653573028829561164819480246646705996113955591686999352799068798011318064171947143043825360283681341317420915846296656960604133822238927263376567496382745374535207481373998549079658026795359633077542014881161069568963398829120889776521070633106410547834602634025274663059020867891265198849376161222179719612502189924187113699170299792194536108569457229522096898835606373264690867417484783524052945649496826234145963213659905904239446256625154248800916301395047262886125198627108618643000312900232086705899200825873045024255995460847681732340412633932469740340154818926228447850443629865237541066730984520297849686519487032008797364037116828519299869838341523661551880449800904881604996673600788664750943841168399888001205652248249084826972028354176113413581825923941550247838189551793691781196514161792176822806859721967713485483670131027648930950017803637283724014741391334370281515859692130182752391628339416988459893682231611770127615016445825580777194723017139178855915926127436228423976627110803788607834297995943678116824960304552645027378147169780518927309031871305534099223335790592146200836232584872359658211302645493562159555906265626580190720754537189188067443089878525468919923436060770512054007090159351068581719266759934758861307721852249993591769895524150978632916963431796009951769573113080317283803816139802113843080625936505406611490995044930374244099497035562601446249704518823133208819103428809797736668311953923809649762474189720353118520342467389482714314203570958617891194026407646162297767086626284562323056901235017173887210522462368758072569304747646813946440557596871842196185808250310869062264190382574327447377660493079489300026637200648752253821660960748486323349931253723198051327888280186111356327320017805518639742264654784408405501449612827742163011784879612792843813988598475268975566911494437360691945357530396960046687615827061502211565138571830674283106859368179729512078287327088033920558829531422460740857072436002064079391706208217256097750162435376639099624070303474374417485478484435967693196316148776474299715404949606096336632024158848537560355691280723218978731509584683445539200991096303071990700652646849415859557625385555767568861168800952135842223591681475705885723268644104730222279658685831203516807061712549682349535974070929074340662760563337591266061128319861389540713670131387998521356047058614008884679426021813413344055623734326492053757655352594052194973664053594267401906774261249522913210866963520948090055641024797445070365227092858222755350453337453022975089080547893455746253189631346061727628103845741565493436445738387270708343364254352587377375071786032256899050341047589972504233462986586701347919577046281159010275297415626450307888190319890569122119765400873972000019542874992238229206869527994331877675807974719752532298553981289870430895141562697980390744915171735007010081639037422423813667266782483643882922641381126404649147732707532032452404110646609361727094153359479090029162295248106191664768321593086153445000478514087495328176065074614743116379302913800089027953640793690466276716353739515981852535352220816903000173694223958188492480863547374352499121560877122269874930833902337729967185097240745824832842629563521895919960227732909845116582752307732650067243396919065132358138711721246259241967798988557052005163754979953920315206919275924483844853671206567034164930484712452770646781573539174304031139758567431836957710942944796301223142657095299696228831122150631232772113999383759404295712821712709994576969983268237688070854668913028427086072657153504365313365280721028955053987004783059035060186676619713783886144720059320091539465376136096040705002234965648246490237784572030550269062294404716201456891814913386809055139053559248907977586699229759050214562018315920893319266014145184858815765383754365790631519715196749395884305234597179622055333643003234844524740194630679763061165357062914183828751952146206235761404824485371669816384766690608735690306576236095995935080531350544809165703792073341703713726480723658163164394985874519853034507055355487233424641364074104358103061819170713635532810714088025726064440928827235382598363678714060268868504954922576993481984222042884879552059113437337669678396777984591238006759446026882225644857532306839066317789060244629428649921065187272003934129357403045242745521374876090824910083727853067335892052719059715508336278164966863012740989371847546275691213851667080489776992643990513619643156535836846135164262194121648354631608278094129520232467204615436395843470735302094614778794323080908256132066249328451050520213339896183949047666795242646717641368348401084817864169261209658332305060938932859906537312477048248254150257667515272644738807434761317857041845129293634353636022013821138467292427078784017119791003853357892528675245141919320381851396356278595694722035795524605502078860381593752854692097646175623139186991742096564315840266798938202383090429572822971932919135845030559311638052192934750408989806233910747262452698040211076157377598882548171400846510170955054506525483274857305689309615491474378698331893832512804572182837548703445656849532254322797966820713461249416517464755017934055024844411455984620659786465630554901969967831214567947079215824930082994645344362200621210090766696038114023175286437571452838647766056422339588770006457972680674190851036633223143843589980852156042104159161825117012644339661956263200507860744544441205245892443275053747465957109460683095245008806063934056282153380616758520002510997729555767517812370565225472347155747471786037136672343094145842075315130484257315320377948943067039908117696775891071208172999632449397392423631970387516184801550230688527387961337456289739470897839457280393564555582898162909205968758764558034162182607429483656829507691280744465287988935794004158056085543092694633371150079258844123407061580515982820157790435987305593549025979710066127142754295794609028266238737452189660260175723634119959706569477602423855632526538297293986068851105809974013780380740320351521399861661986867651474415623130267420235238523744329569463466180943456210518887792040989040188503388837250330914239461262054783917914462164691735697756069064451647978027709925598271489312894582431346896039626848845560111041230608626588018824948831576002539994791689257890627335164614902324536359814820251992867893022601620766937096017273594225929776136726228443386686707530600180912628371652749204717502357354318718624074001687655870132124754902414227967326337576091461911739858379550901450496096441119619450766308062708943398671765127544952448764253493147659379476057152282390601202943467792498338397915056870013049982420935742479901947848622149365404822397583306694457242061249531327581898696340440595993729358822408582738050238271604090589528257663205590135244362343945389206150109601669896077069683239210289829693102139317632621468214787843939729565649561271670721466145595180331690449705766875335940634479109650965362479823486809003051443716634229960373193354543891755944372575436083202055186008530763625256730669629717980922783767397130759216649953278814863542010531425108634376000756397970966152278761566612925757659337585223771039476964150273065818166437418664991932427323600327112432936840777058057846001268995336813488921837563715225254054717333124760367835989942450813742209682121924663250716372505246827622289601304190668509997969195279207899332306737147688560609329937427347324165687508717231994531402000380935373951784814510000582645231589973342085277788321013628905661557882285089318580795349001534480859808078533879162197132455161486938740703269912812808043572332612464915300515054337461524307348011662140735838090014238440035853919814918501819111753860719278794447680682300044881211528730830580857914528837035501729734513938052385640335750553305909062407911931894331043812822228102660132416107754061155858799667235950746669333686003542021302033415336657915229234644520541072255574741582136046305040293786291448878584710955125205431544958780586982525325684965801109503805752195110690677298911440700267154509607952394017557493623381396144060714185769142210549961758204215504841558938932168724094307105845897237781598782510960181901666551800515652206167902784650592277658637846515597334737823990513944015795962557136060115735574057851930092121546896075427508343912272042684446716457461082522761097078635262251228781765551203906353006983600592289610758338179167157693846354529876318691859376617658239245690230100298188622364542008700608142246878278521363759184799635309949435001234366837053996117682832213268133607630823567917222838223309378583793437672288035369612987522811092987200511763411738451551452497102295326157875431122351665630568112843300130949659018621497284645709566995726010119534363501047983050950412561325642152569977518783490934272534061425817715018083409934356577947982051539161639246651096504532247628252656293001054820511256548955434162961675725442153355283401702932094078095636738423060447033923152741390195381952966334468653170503275707909572534954275898577426989724346374213309299299587196337776999492858136820572050915790203696896849282313589080504656926689552289724361679456728176242277382596610999565526981504125594390718566993099180849138906433081022221356919793635908417397049721505006931987687023229683248933552480277169373741315258406589061649098974844526384158887238920060185294632310575083018672674999072156987692876231574544102305471962179024527557558596026270406969017604245832170151003590191776952806444460845613296009872105049059921697336280075218129465466130865527780007524416090366585213765564529002286024715797333854115923260093343238375579213601244507533458525746655039029155252878810746245398681462208351363555640621747471650480180626382072208007433702250323754834471797056762245495337058446260282867044362086613450366226022288223654051794607515934657297185659162042929361983776142748165191744426402743488226770127567578885241115728892900658382867416965416289911009715281507382032448760229606211661349046505384619104890886020022649085326884999474179397113996144246041183395401961450241090986821065290504588429662344549103132671065917126778653964869617452354506677587604968921950488992320077028718653505429551842700656255951548831236390525968181197851525701680461508192957719842401037497985291576231160134855649597578271891246448929712445871346534972073229780429506165379412049460119365448298864443368618798923537720267807189558996682638808721005576264832703280736900465868890826463842634920346997425493374285131398614173974934273427712133043093528103499115149779952919854381767274117149635387064900525115515554767323855442192008445145605098244937860534561027287360037764390813646074288591086399674850274265751945845180097610428956373775370399265085807391223132585336315248167972998678809367529585493773022843871201403149747855274037774847973804182356105645967403690196898330295178296414046681598198764369743443492801660917021545636826664583972394722915490599120902303933556301124135160138668745401386798425036103955030581806665107501139034207021717145581412600375656960134821459807010916566920777467671696271101848475308638741979818363588126043997817962324436499952477447188296428422402582748438198016494088109776197539375094278845636460877465068157477241454588798393294155084357014788695618397428059495161754846540046294247057632174785578625135937653211691633290025150840514692927521608339338180718398019533829884443327725153031090017043282048016797907347816088623532961239974841639065499011732164534618377610555787184489684212990696512397158906420341446202378756518132596950865986872959868228128886662144705970360527952472943629624882936027624241146894041751944500357919920998469127422106467511902701154684793789138059543566502710528956447550257252799841877834077622169611660394033673802898591553108625937706680503906973794711807482871712108062857662423778160898048096059807229450379847434329897992572927006270737934871638325485355999887085909039526398568973804776240083726507888154828083254200408758218155595461788430844222207924809932872116402360886478330805969905121033378607053153507285989749517344809753678645623556089438005126650227808062028228782763362246517038933445371531329615789658765922773476441984196491114841440664159773182421273116492882202645724303480096292657232250417032531346131891393983539333072179447919757566459003228504110028044195208872003796874846053344835230105187036639592477694927332648273963963860796893130943538652943857427126991270783599703415398595767156149920528453581914864924057742402682999992885598856581683941653526444569955471889869785329601626421149152385755205802226123834499446516536928390130400625992029636011551630491264169435485287303825422110195079701667294919333709568353654208186231071028099244810937218774291227257072928695389343221397668932647017848470278592624527462301774866557025615024621561826743729055688536341142498054785599397900317235118943989125609712286772613371187142881572904226842493654711017878752584528139697814581759532099818889428116242215331146876480161206319361530348760466870726793649833125038411897687815705623023445519348029894137087156257990094284158544762282266694442244823660805663662794251299552266431885667749091351567705551138500916168018245059993226914085672925071650276826998113784379678821749063365234539281908910605446066742028279253993509812194642829383766338303604330079268395687390906403033265980764471303498424579421254473133585899846718179758745266583446869156779681415049821262696951507674431629877951624986966865629606239762538666338312389802380767850854683530155731549504030466373565213388920460972526101776642425695771477426237526925500527613879902684615245648433061737891241333995949522968817315374080021502363873258003746719690118211794087616009542239823695627339707208213831107647292158241312890360542490424973676637847822270024234279520625381280057664634838060566916791054368653450634873433974328840046701041586868419329849970423649207634196093972672724592804167587636418530932366057847696078114217006297463700328711277964412933584870341197506010047012686857408067722101509610367429745371759225279459826447309641949974163391319793563556874012418739743985084399777814611680399597405091934880982066150481810714647122586873260293688374422024919103431589218244737502673392927256194011078097737956166264083745098362599701327057111407129954311038565908748381372291912874667399551062079020470826015045189393699789814916395627103171011453676969079097283928657549756060435410256949441359966862623079210762181789645008533424154337896703688831325676552900600741152955520743809500273775890093883178530910678537054542278910809324389314710768900918444037844524225381883731771129037955623975118279965144981074868885785404231771764767092840308351970867421576945037708920139191605799693682172095696695240643790277449583833193780129393968555559213000388959665578965124678288342868475874252496182270999280699596660296504650975168915856935827834716346692458262515829132610224782010087442119974328962935156119703075508295888908172393039707367494336379706741031302490539930539701553438315908175397568563596665733104885279990051033416739431164417684372203237776840462378848706630261322194787075625576657626207410062245198957094961042622081191670159510429177345651139758913983790964056600546093719810061777588569861589000506047665953805394985275555658233392641141144233680263986168522475361701363101306569698098130137259325963750393529517284002431196319529467900447688532891286436216084195294934838018738693872622716135507082855879122192390265292652820402550266204644259478656789985969367003356531857225761225622576427252574182615345389250159548506521276571261954560474055149905786910532093686672645658154258325131847998914607862711809743861745563224574525647691313925885960874225243769974939264075570224229009675862580037262026934935678415838673810894483505429313337795886715499990062189255837987573489492784799556899135180534115342895864100044673570123195594619238184117774513903809560607649532923502625360704524150442434606974432335641884079672593955538641251698122708492962282205225986564426986404614985623312947558381626816695720200184279965212562539836908533133956464271534130115662318645755824923011495378650712643370241289494565768051890118236744887709552218916090148834640521436349046261003197957528509882039699572823947304663429437099993165817078494611233151342538844224429134650857476447814171088769975106943506034995449201570270090738391908968369671289430934247852626638627270111948106544550550819063385823326194783363646920645331567488676414005655113190419434751833659060808774013881549957511203648532104932398048374015449157464420975106079924151181018368754394290310047009410509240720677719522058363395032796789907005856436610561956579204456834532433199758483292157127449402545905174326986270680325506994861596008638774354905560357032511479955214682266278391829200748394511035784742095632013777796156680922417279396893269030431824129635903220013070873768832041884495215523982765522824278201091775494787363388199172086206568781615310544257102867069423084822256854455304137962618475956146099907134430118852865326922030233118791329831748315510607117061445037055237897049670475461230653287469208686912169876463985861756294612439066261642536584286537501935378850090673557083716633216479216680017472586504164750995601578083884550747522780699328888506453504781191391118777327407730691266171651259742028833822296108069408789055536163101601464797288162349358558350426186846088261510510125012055654773683524509469200408335186202067182802560549248622424457485086201516669159569936083150928688400348195867279872287320718603554182687855538998047938850181173631671925006480748445277942701893677006360486263208682936740839019765302385718455971633812589700661964045554107628419886913472485250004290559387302621883900313419209608691196412038822480479522109536203042982726369732076789093442672096731162589048047207093043746920409626723639479399852979177605716948446871040605937555776225403535405726224015358028365782837469298782967038709344033488066311276646358764239289174983684036428451801933682277192724909000922757430051850949518955200728114051630538129096715667880017304677446492720291564676214695307911718990856971978315465520344095940264225902510439832503094582955634651536459034918237595383447484787160988823556428504190944727758122752657080669746619477519941685256530771042698496191083462120736083646214440686636059335573595482079880128228403151212811824575580529693782590055637660403424208935096624817852165170722135590965297852520325100500994614696790405157518166775454901077890889674369885042901693253146054760075667770866709442660496637282824224307786283705505697803524414363509106089957742267909813362328445260103914164124336451165459506576455492701718303399465145065793648965530263727616412212485234602066811520856856435007816074084525554046531845044362295953723976564202502379682841526167892118298448492244999354954400048710578094183790033090370369423837773963181261750781544907885409486604630829965725396094399915860932752686651569268599303808584164860211879728802071085758355743967310183245834414006319171556722184537856531447268039739486748995848573310798849798017622225401379482180454529567564391737291188791900863330519215474311288402276640987166293508556949206578119703628327617570116736358836699188032618214292513155019790558079350564845988345915662831034989832399253655291404647375076657726565950256686879251078303208551501188540067457938293609980871616436906456709749452496750055154617605985270750696063305059108673332816896808092334796576556822855242030012456902155454323897218177572567456235325529949037279908144025434555405418025366706448875999914625505826150606681301211280878010209048330413697538806438664838392228406471812266114969574659683949286094301353126561354746475940976769338873200182947790150223632226790356849353034249890752667084134194834459862488897467498550964014124563089713836905045014720681582948059975926563858250448453752840438856128445979283691775835952069621310303968494154815960699499514284298081255110975219157472878069389506863432938172417353099261724213740245868990701008342761837519164971202214987531611015626540959845246698404012725506862062947858319691961572761669949580799670602667844807581403735495470703673778517962627853295682175509732292111645941710992826367526173990430743514940024781598152037895850012153225848041741945356622064984672367042787708741564143705950270241820082635486042337862499798376223190009635598171406342018629458205057118582672220390501995080394688513454045479701000540608114567361858633694779169711863453135589828610297544345704706278973660913025658382325224516838138380698018295808277110844756993601766560424041706593175234468907298943064844866231003845957712835728635656278933997332061246178048211250872992739414775113569784060803350626908799189092919825021799670105523524928118933336814346849490045611598024102738743551777343409749458300218544429441067658955408670293802383132700716862380196957877217368276575146738426770283665953756394908054766870844636029292756572002942918455641333930193027105966223683911933198115795989662053101171754232520630407478748066085006527431263518181814100838882282684063647279121880381061899755554084741027347528686349023994044034310899178422523428595105081402157822039748920557399856989269650829375869305981579401373693894770450867992328446764166020330050285954240436317094813981899710113351142079432582299178909144964258799760584098566323006170206263022192445911730257822698950687755139488132163757057809292588320310431404229755174646628349217675463325203020485944854623034766226055107196022224385194077866367590707673584790882277511103349147161544088142373489437306915970638659903237271647447591826508492114649166292646640422937127682321693248753060139549970952989036151839040695526391204091215207684967886034475686661210859563855744309973885174552733277634081006211178177890202693738633249980372761386017546711964995513159031180679946078712450077432802657588312879521280595351978668218921131147712218372775572147884258913763289231509130662699484141048091603258959082550184667684811941986286389351447055859981336624699365370516192348683157048263666529742798566016300356187407112244591907551550371740494934743612368037836192920613125612269049423520167963789130794456040634625690780318605637017126566128992289680805066587564107565847796705448418289823455372402685193296648066846410915811624310738536811158019893837515738415864680048150822495492483669250443781861423058032116424270473852652648940569831191844007040490259597343208032527359104224452818786333115420694624222358621312309432612227583004012231209787479833389743060580490900744548815470288777900471060720878808026763668090548258771403930258090316514807146212237192168343914996210548556763147252205972526435890937441631467649356507462698379794536177887101189873083826191851403412019214943471561608439799300251902061205629766836695719890721897597262054164103139079197350562770716870056649468314687274024213424790757686454084205685226225215524820515145972379248447706872330083694146088037050646985900466022779788988792627571910353130426151059233645358346005712726419207268089525923611911275329233112626239823492266135980923632649353454307737894957873521811555109185132499921776561216268137468325089790496170054012180078693759120149271987682893313829827960617266570952893209270745145653909647763557523562934199881621749286204160349910793628371169773696644233414694512866416823869909527133422065653814214924723511679102060001241284423114405085987727875433862434714327178553576909472379317362569186334462677459297506472851473772886077731937090755448693397964110728691475038680038442892107332530879951015165475605918792074811508193182333552446176355974379693732635770923214659742787971845438705126057432709991534522193702884154462126944043712811961842412892019054522243844251431103278119153376229296737450202089881381078908087275418587971553881142323360002665475049498232565543207641566131363483184435215623743823340241666745143673392735906170459167176680021777603045644834590668105697380023993907188465705912499010868275758767439753957347144346667791729756952308958846883306054583391143491513509849161396492609074477247736020206562295785462756622637275726730769870693495905638601192099829359040756957981148693818074471195528185887756734722808621511483942251712722757250877941897254274843730156567449980881156397250959495520580143128615220564291131956785470386993705300732271473377057254798132040347375401252389793669518249377573139488133376106644020043580713628290836937003057371170946565341910222847469784795673964096789227512672097151916147616854373149037358607574616451122821085683092540730925100407168685079130084677082881459560317372550254458057565417473965994416299910966691996146183255903507353878120280372398174149773078754761433960749092516542624246236047890616789779008858953523783715103347939739239218573382435954540556255428197893217760368074046597106833926439229899410883910075198504562996741023075216727734481731403365479924621809610178632915632532983383880050246038390872560408836644157044523884005269858627612126104248506438166936868551064155550427435438699715776023152898431700710483832466232006333490748800669014928172524429683324858444515418292187886328234130102955427627565391609048740681113182171010467580418434195365236039494172307503976147265093589624726314471276412047621745599420386877134489464123523445528114593562013836331307018249917293801343641385110125853227565410200578518019842923686276961610279963681280212703172317978977666345037108100740955140930721265130498186769400957813276429651311136482331953651516245957314742094755828147248477026113702949127354177481223057043071007353280075612566205402874415884519244364596383788543610323529376554928670188744104767821485926115199918978090990474443259395971751760183507119489316243326599440229737963936548783484187447403730936885161483469223240795228768900444652028698395155854329355032994606731335502759434226234606777516682460613510040596246119212634239788156072299782895563485808355214782854462038259460760085689122626512839444248760225498398724433757825554157534364731134887403756537447794438107525418008422404874491465809064838489924972306392999285699132601761223954068215113760570418682173309970701507597890245827931356296070003352285981431941337466225047611419670179172141523635691835624996330802411929622085328140301319759471517974653514241676564258776517984911605695236340886715634397810242094229951539761142453212982949754167379267921807409655133466247891914984411739594024959978096968191642326300300776187511923822479947714081311744904525389333080997138458753657678336166669814334348182875649532752909804078585235612477029928922896103561120621510038936299493808882157002161680745892770940808892484851027533690585465920528987496147832710027395242204617285524750850981167277831576655026372433345254631583077385861267067055397194398152040730424002386282593316781921339963273038030487442960356627623181874174940930433653042559409012462400141866998311129270609220988084465700696198984471198451243574356406823299283882429061157059423523617343920587367931094245910051056437460228310786724658840950698335409301791022137765008994911639275789406845454853527343334281944500592805402273068459779400532851374200617234707304320121306886272851629193979957683396999112730398776110390312958977795968562992105769568757338215586588993408664848983952707847490737782039849928138994636970046295626517421089970164928753560494223646703845611748229806796145342665858911314446267839693734107440003381618131180297061914842488241831006852656806142774617313495019897422555352661840352102077242903838027571543548452345244863928432736384822215206200667291322659291268135378070272999409356986546863069175966225043985375442157828800486013965822358135237976108248966325042707796764351720581591319772369612918128457044322865245798356425626046472668906445026939128177033656817277111166976172477999773422226498903565773583981917425983850690643763737474164725378607207069018243094497298033359556369740374429531455268834940285815655030921954528462522856370981517213382458891814091171071219971766858601775083713505364119991324000661003443353200354509930274045608299726225959475780914943333974438165026105121960771084517251603616638311733437054046352024747395620747671985143411122128316956753720912728313404527309757542278192771314774366734227721145647695765943419102224854109615079185042874169835014542754468245432938487861771623331310518274603579021703842842400160885367486103095018363235456272789274651445946219623803999577652592484009279001985356390253565653897562446021419173941313458823000047295512681010181095889322916674839222615171348695262407440298079903948892850657124942889907002540979966845415038785709744767183420710061541938004030155982097784767068725847942627212054490423966320460755954762864276837558563139177089143074813206418297415478601684204409659954414881811983196285511153561792162946181826226614884890544298039564210233577899362348859097970449149702669192672241840170506523902420997447823855836377881141267798478932469154866967838547520018527231260673952945852366918088055746292211104449950372752902984294716693304742877927702224197566717632292386896989748083547696954908791150958309478059250092537452404773553960774048253680641411809662664670458085784894167020731462574502035694406652982848144238307929779036346047754104344283337411518846407783543057404517119161013045081614668354304900181659058997107400833396541254953860354473493393411084490832498839521589725763337339480918822245881241104229393920964649621604040074926298027993584887211477110967054903291759038255882149093233927844334766143459463023206837060402319064049022766461971442977547851326599793081578648713323501762167672031832531545167333699920706041671328188881259452723547074737678131134754638546812607006168255600036570559402568526187954295260322809953009369798381080496019175113251218175150477308648572695461381024207396896753577389024429777002507697996084148942941686037074016772046041168773379088185564648138084862283151110395816286241719839829140882824949650762392972965034200831634528026974578495012641258760153033730544449028079244623047063694870754784509715367224864433309848984381635590941231573182444090664292626975733913853535663122209370042922931745477485746686380758626005116811130293386033345610159015517012542916580182424792999189862138985554304900745723933128837623210235768940523710867088061310749838228191536938507784500133545842055934701887274069693582315660089092512054989278616846911925702755167599453747628196835459816898102204819055871863539112136899555336952759521326868513056951270391786190615191333631618499701429272210876799063519241631896750871003053349412686644594508387441397346464154584012156476392740601753450994461967775188654844677267320451466547109079954781056943285649247418566978436938467328796572006531995276010483924209017682451836009428564806094103860029757128331036594316206510910837949628757859666524630814011648917625439485263387673696145687856585743378610842176234987444754294042057066320250482017215431335926157397481452856000030366136386460036401286244959168374836554141713863738886291658046339909581078116734696112220191255757125908116457196485268865546219920401335966597514882149578861935622496103658442163024809607978282628914888052929951280023189269010706369993354060449810426339211872899086553433536207674013500314396406536978051872562054355426062772414182190036838936691767821236647259779493360091997519463079256483246520649973169682913326001347547727510307182382306615348855700286473812977261852591987621495895364412745891350512000199648467620149674971351992645326488791550509838770294395762139010879187709135741171546401353668839046905298694748308349375107714638895494286986663577981345046921442546245170308534838643116911640534371692411153924605278976577056295287588016751845626836821003280569767784292555196766704761407114396677512505225543806055366120662531625747414880628392675827352404677066616093793670503898276395387001502769477293835910389404358051160355248525329613096381673121411980247790601633986646484887878386137565255795997283774454881740751398403834113009967180538123081155413413418472523941760179868935984501550205725597807189020225206179880015358995820714637689791589098890591287510883962459453970175792488818915199953514668644814183395381583831968888584906933940854787915719907690475753476201561355055956673485888861039491635609073079305803164689770903601572249582171159851147283548288227502416655303207904457389969220536583564595245682282638018337733366871699032526763924110687840154366608066849752553747456844785668054108445541493084230926133073934693204734210481660248660268360007655343738995354583588241690783449139454422457613576114615508583443319186595919245044710503061772140798714650639600460410237878593334084610828163684304766283768511292075215946296552216722177316174245273119719341141516837770083944112073375285604377045373540284164034721498174047091893767539043813528428818889123586922088722292538889582346607423606614831317705474247039894860737685051935976644897805659013165438843009972473219238334364224373325994931996798250011462318858466472524732538085827047097964096153796217578804267036847215532519436553544979890399176323552156910921003028039527649209507797377440437222585040388394634939593769515608451910765319812724445870826895965064128795955559475559415681715977377665298681963239595647246851053411530210845934521353437199206091909780029266634618442277935465019653679582805714303816705213808103218488493079577745233053571727987877610978083422308435822097210471767815035866485382015368564395911114169294066641572621215764182788950393842188551690302010216114773099546045736992745308856722413482278363699463484544453048573544085322419498352856730533389368162756820573314107225869952505993588963431635928249593923362601650516895588408933603013265019296916715069121112305093133049629745177222727579313441730431474220096248569880320657680049998098533713305857457411019496064611893057907131632762576683425727388411922690734397724472530818657475247059148006351997350455256156600178532182079726733873132211182147007549782301440860914715285514786933334319691808001112701039112638045737522295681742220505670653031112386455578169897990630328770575915483603593822358882046177172865935121361342559393926916337150852644972698631095917717762727213164747741536212722025165043510442354373366185248440144296436577435514314876594213313333432303412197129708479956929151712879975821392824592393919990493557819338261938519139603650977182180450081857822368876075280558132944433964917742235979088162034320515168287619163990634627865685963271615771770685841679396106797407554365506109585363720365918034574373166010488631111811702338283496035427569989175507068216893553348245965881914279414972924141559890846667200654726452702678697711701374719405884192296353503759079184070085819915806928256047914730633392645636474925517549353333958194215421354635019387012904714751379115061919287371529977549131517680921736920788588057561775426577139713297282976046377870047228801125190469296179814504997117758947753955418884532760422230276150481303405510507133440373629082476827189722807535395410624045633343786640344753578871962556879610508564770796207807716985184962832538215177103585331337037675121024413666822326096886531062559983772190480363819869740413281254838663525819779964220926624360703810127460396744175621445241047321887152935653087889048085955837570957361513088718870565139544797455239199168349967251995606206334031501217884910927207361928663301509354431337905884011349055110143817097344120771837824091095995034352661339466353545091218548312623344127993084609184316871312101857303967463332974936000895252034471758069488233354190627189455665215823052852219210817363827074560620418175067964133872428668339629189185761935808536300242916642238408184953428121141984739961842318394936903674711342566303040133131977329865608531452565187343755760047806294075712722740609627925945627984787781285315301095133995667513757364657765393152203468383514653995318475473338785943616426018362357396908596656670405889414935772107791993794550199342293563322809329750446226010589343159138181346895501258933154541744246430797175094583588645269566985392811752047205661896881065272089086739182099721894479391650248438542751719527118029700356048852363107523916929318245583705043814846106124044283115069569582621525181304632527628605737476871744941046278825747015090753604198719179823673100269514429260652090183023604035280126948308538051237696797528092690644075197418324950872658150380785154159653638488392265371560765858388500268197852240563668292294560790599179107033241753219905676316663493261650527095608063567195046659182126471848838784305686414123489891225220925179846475146467218472432177294496455298892139019429353758755302089015733277695155332827914060470908960319946285064330959713549012582372933863692562363258884869472150616744081639238933451971318484592553249712907318781760632084240445117384169687694529733378173040251460362832557313515325975564543045343810969859283979375496101040925312199256686379707882263081481325341023534159766490116809715198154455576300729705180204907756436069265505199141821070975905380539236388741142375343573998011947756666645976413571661229296162486694145636547650517185123889288132479492101856985370952791234031967697424809304068893007380401905941882142256641496398518663493502074405309342798171165807577579993909770015591350590271409784109664617453904997401138681073748578806697610311211558551452956332205893581851376335893214257139394515563575008003391557830876704181791161870041719135693386388452259100094257370278821096206539464391452632606716407442290313824512664626963753673409277214795364503681480542703708136908756162871842054830152897618991604143388583084852942238003910727772734745660363786147959301416500228531274891946835100869878195651167945002847137279020583445674356361051500329705430948376133316684915602223512257663598694154222593184287639369134334585120146927518429934864343952418598647502859316415916953632891506504159259918665989279885829070523877330369883950260941013972885149954567870595069316603665597687510019617201827791853698823465126521433870891512988097161726879600249219437081106852811144867558961110075689059858471133784381086215961114043262411995944138461582897982407100369681731502104039970563096273569965021692465671542445699364290313266488412730978145928410649349889774087187879354184698669705767839507975231311600765180431087986761457385408987988754867427636055612242930683678621522926146347138056161419858797105586813773890698249276670870276236841852184895813322771403467609672291230035521800945728963735394665230528078665181209169302710626211665004614420848911811653682097855571072587168625338322372837182154013391388564775326061383113900261659949716711910219608714181593816608707376177511923408809649306539782679041295242229195717088508935047819125594508251391046262267955204585954077484607507239334109749318400942805285333126017756462130931292956148930007452853048023407533196480895058290776212080449560031827741684508806213370010989715701095538843026353554552314846895293179013133122563900171805463360439151379931636866896707148836767849258777939322259141857833485028584907193785594735058994884133167212140630900952810854721709931719623082654194837989757591931972500904654955026088934236750826408293981385561396180253812748197864210568311485933985717524442656892371758246533474045077154080180854614634322215299429061854614930437705530523195657106842461988753291536643909646358801300241524253029239271969695171935755650861012490797748605262441720010768209335287822360726488507785385044520147761510496162661379492385646468695324149876061082457444072193395684802728301363809099619476494827857174338652434956131857149730283282844481118725085474050047110163436001503618407753660431785648911975490139572251532818587951131394399031738677206674466750718634434540018282355178599820076638712508858812989866209954531944611021884579886565914405419272540982475252265887111479572662857311367746908380979967214494872489490887897871173820795153618363258287138060844292776070220994383378104151484776776207489000597025135837195120726663701396855946189064096463648239315359502921939716298509260482693672193312470559064608353390464232284558670154855908894789331396696192608140895669762479053845429674609089863517078011302755581230982495361804321530521738565600532113155100753944513033408146655486132764967055288383902266579071138986081931983315738871919065777149307595485123506966576790549909258811904743989284535526478696124280373669178229883622836687370313516650538734483518411625557727205387911485769447684011835746707823367630077325598690845495493942581974590651476002899844640207028768874855240324403595749855561981139771203169935634517878247333688351342081486149097995111593008209960971020997224344293609661383435307044130044111720251654235633111963722665790594113231434715566181402531406148221139086209084004535148311644139264097840564893421380472227724897184813582808235321099359865865643119142689946034090062193335876324195443764017357067382181167624210931253734936660773576439926348534683410106929368730070312970760560687388859999806096080925889009948640326018542626470859398926344605102808791916097731607616539467383684880218470875786242395173026015109963281917876490010104936684052084301179173238387709563593530628586876985879628192542799240294077892295462607243699904572697227677039659085760067464007902330614893187378363372423143724464325182925587403523927561085894942085209375729591463383180312800216413168005383380692043971924741100738499005286633877676438434824136048362415858034435936782968717723931098114195828038699977375661321858621623505594548889210571850871441569092290477330451043232933074986918726806657518370541521362035686532426872526407519699624394239598593823756228484084273640208870262683374429793254097852832766917322223079176684135994703965284376944498045233991256238268046924676554904630454953327180508131755614908970707807851993653472779758356536190256568589917196763348566096200490393383765272739587516950629808895372005713520127253095567394038790502001418389828297940261091331194040334773931750400237144883982020755737484955863885310257802561999560034981948949738752308726340601241947396336680219209564861992180426941434410856434410308028143575629548661084861205076049457604980618133532533383503444289863626433022382825769224501872959840344467949231434726679931017887752262144796805971938218785245672190698687345199133038360988710149231626256754954539246051947718402128839147353931551615181126768281708876366878265032133327073304087370929105968118397476459684544925419032382831268384454560608637688395869325976672641704862434350657197469869586866773518188180615271924713578621137414818980319917581195329910186874866548986235906362568529553484889429343868398964581006809518573163092109862664637010019569326799490986421146181409358196241371343867547697469098423433305705236230397349734023567085758635312562883062601908603735858946137821145534987970291955117481222742444315132251002718189168333034320427743958447871106145273884044863027852078556017338473142018233270394820982788195093849848380158712343802071696089963519502940896861877800497470086851323914143570040636078273041666031335799301043791260368942154786832308180687974748357780393778993420003383925523182263410964309998611902228763190286278473063351311665998239415071415940627842271757498914047023427920446882406961585057150669374035098417869781136304962401412686474540528563198341144482738557680015802336185622386937617766074969542616546327984640522055038164083795604490092967104530226310117397956373991968103628862406573656382569156522163687276005902569536169617228652206500684762283101266049099447290187944301385141200099154770692504737480044978151902408147190876945758828604782136180072298333173198909856056252502357597743010972844865992112338299163656522213020217624633100363547782707982226602653236838805945321263361128172756567765976134241670021547718794252477582639174728775716190981711782360819500891021598671549529796828439236074624757067167825525039248952533921394493371595542830672356323128256431750750626644096915984257775758791667735308895277330875086763579828432918943304444998998199507162867780567321432221304787804520645324130600447637484111970560090152591843448320840849539168347732544546227962685171192800638873911805934914829389540374781115507336244940782193152757886764987564454460562348542539399479690663960226784104832270553217293810851047498704415706756032446702924159443324483795179137906323091418916473893496018998400136454484020809068840844609933600424247196441115787924107694601382168415384009020992393458601038978436362491033893038493898491767849001123309576506919628017084764948413692147128078127410398137220229163209676430842392296727418813681643100121917520250487015614728525010000038180824770126767984742885408329282710340752265402427278945223957149834608573988462155032531765779794955649865759748221767392102272363546167793282460666004116665721030734438217009821340696102714252922360315418727027018499077163134079344469740816621628178237473925190690227851258573225450221402309446730805039548215879821419233384202404955933889131370427142310297491708220778191787893849325308659834743035907454149692136849972621889982200437877510479214365257405149698651343167691685624933461288918875193076813904128396586990988063670181440995810630975281079310564171941451478693384729101205717932892899702488284640650034966885494362591780798405179436004131588633018779847942907762937638691095152259463416010124126362216531096678949597652576737105767374104663140078423576261975829562373559413892642758654305595907864920958557847206789000698795463225674971697171234197309845822692181407778180954260629380834679229361567377134508421701676177757717136151735385640474310824641978275498410421134956580304665110936204124259361657782129891216832995125717749834522469919582804287520213353134708533140356774141327136638147088864382538539310371334647622780385009573709628295921611429840100436783601296659180890979453083179380932174637879664879701953318323880741359306128240885739027678036602648208271800372393227468949769573632120133550903180281461805715093987423441008654378331235488942599588290577489065934582199190358949431397527991150195634440683893938252835432273643736218641339455560798517203852585818164056805942054485002145008079202750407648124704581304312059096716846853322667516507409706381806054335999743272321100598153542204802802274667577137839085981101862387133311237838045883092393390799265640185902675299383194892937077262459096199607518994104867099021470313351175218981137207813272505931729737029210257737094039753182196829664874621380743167577225895507023614816475288511987177968877854786402940403392442236156409504404414769825898229406778820131198031548676853605487084093843238735481265701219146617550010295915831155719279269546972539004405005296937976737529498997429883703048284906965066447621947034128815761458863354493932079752343600914103520985721239393065894522180124399388760490884701028638099796849339490102624460344472795011518772302718218656196482788763547535422856440836109798358433419124639335692444150456861963851569547598107578301371159984374433853605004205338202177394251231191922849599447026591816483495160609699827694458430064671085544376453876267722116450343480479921126250058168044852941523943342365034770835801932610069190145746676573570344469440903062875110968628323839328399743349074407284349815790877568502221822172259957947569268830559959279287672231771314568798772637034503522568267361060095751216687985591387686347280435239487415385009878122918597596265442283228109506391583570820798025488542185997798175667084242826196096290861533593014982927404350965371420769504358552708227833860975046994080553334674888822808663620165237659851150577405687916789650467642809509206271763005869558693363361416926960662456009383997805858861840504162853222695553354048345239221748785249510047252721699637576004903675531518556942504631891034654617056020002493372505849937378737455873614751616432213273730574469028147128296509260920901193940457878354181606334992554974066655866013438842834031738209320096100802280332941551234254158466291697422703292232980064118293987860951428001950713159210795130992491060804857456488609675079266130742617915123416757427557424066237602013554075085709143745584260625751744961389588577926014147880827842869896924396724146634118690718309307417035944054848523846261678940526199643670209745426521436742667678228621085171308241451914952626629851492331393451062262105142739235919905491423632962051166152394756409041840629008902048561681744178469690596183796947456651301775307215730180765052886251405903247098639226200863832923059405927097173635002834996643158938031206985457345217973237879348625602961165369991826324545437397208756205950553957848703859012535421132040640314584125696982758336200447370307730720123133631182165521770778820023090495482424768761880501979270944619631094023450762207077417481852746672029819784619847685881482500071464916341077159113975958431469879159637360809581797545094363194718910856171293840810615051070503547052874026559853809019748714469368126512823235676979055883855905054417726972379935871770330091002422825608597937531338395488202642468914286328642840291459895226120336848420683543830535782252775283581013371964485666827195072994939674632893679257643633238679414967531605844512194684892702299647625515402950853483742310655152226219093027935099176726294223616558461217126809356534117830418387152669473563420488733118408831685274473127666949058807164619126424403690379021755466558941871049217290069059915809107505604161318324925485211984817755672012507152846461541372722949719784525135145533875991696524216794104016554559326844280329359843432966257465016985400660458959121164668109520422353438175947251103155386559978685423847582680815561415820109014432223315106459404425337363624322248267362886699148032572579971413446139071343199092492798188318656602265321009421993080208698969038631133148649929709772338573058315046962335828784902217650014534837497008540672162933298386347497062199359583921530927587214002246161926495438303166944383065503053908361679866169578706151329007234266956849165629137991480296494237207911047985892358157268715544753921864163408896926153002101039667845523831810225606854625061842903660713541325382893623155168329111604062909428721848176424522812248110730546729812115304334194541707504173608835875274504038023867520614091498449548880077630693647292716253043622395453786170253963684033909898935337239201049176480729943331087881019280814049675294029443951333430948110660692990575033656174088616375643219950423834177753582023628348970386807738292177965727016259244578729712125003069228725203618288106348826348360705798158143764678031102399849896882983582595254864779022164476931527980029739853099343830693041559373104329309724510250609185465326311507357754279697911487901085835049279062248985291375722454119842717173776234025200732075034521863269870798791862930227414762853902778012796725705919726034742261419071622781278591045343303781244096899554413874118717194444543686935079852070576018177656253617396899828007652366722209520590091648956323624506535806172508865777542716193379523261175564756924925574870943781493241357052561703627325934411010405401984820513960286223135631583501288106795069855508601787658886783557176932037247335662105283194640554233639401158901463252207550243985226845248968800229128844636951506885412252956747627909257931616550560467280359642549911470275732735814782554507090198441673769269447900340726719248215346162398478470068855217880499979761524712970145488959224634549739928606492290112130962280186878647124603185548896752750329377933853544285564052975444491941726883243340576243648407436579996802936576385710322735865075542277957833777566605120478843381757436029598851265159790413352639557346613729126437920793528756151532778898477965798005897415815485133564052182256106922773774639315531765461805729085415467456650450556011749534784166337894156836546694115595229621510053067362325926376522641163535342347211858386709261779250686131644786880059130494581678164116389572200842764663284256245497380941154727021804066606100691114104031418968173079683795614940821397723138646005501624872769364757112479625659327356827245805909117358515644523358037892880938242413900860265226421053655434761196858784309268846769746687003640605760810845997305686995428629891311031220214945542748364613634838572876343392037085801059615848822506961936690103859619359198246589241756387001174043009398707528592209207134460817838900567294848098455886245266761273229514986797252867777192715585143095370120610891869024710277348577853558071233276298647418591099940550477294749562962620965706101351780966770624876248052733431650297760873439700288433647567174928385049839393585904561576680716712083340809152077568976700440525828205878541589978821170974579324913926592976798773428032933167977988367873080986136501379604612514030025391289531841092203099321441790085875093901044155756663504083338105880096276823041994659764654633209040023782610336741023885694165358971615642431742664256411280103990399842594163830520982616029547721269126296925367204454335836006166019817782761262091061943590468973422977980891644191299818551866027003135181200460282982580990604947830350805080639633948362014796349045705292278905201117137407684111666602232503120389063568547934271233431060530197803301611928260815174213774235153662726244636446207863337769488231788877002662693391023223576565702122075635988457332108520047358131181707262367858221862285616923199316971303860799605776498182512748656967820511309864254015168262899548241563271307965272762925617324708270057098650824543120365480113463309443644568971162933540312303218749433341533968376292273150597501354252858176356482548706240702567791622660820120942674662479712331834215989319608432250879572216917594518032224951578115114035351350386300396603425627024360371541211815407980237939781466695613090284489388534650132793674387191309086837229161649068994537587383862708645023647329146933117700485223342773743018218500367201069825851461952212681856827179024562444159504251517122588164318201143571560802161725591779004497044129093831101053097300209847822727102451231350269092826923463810026273492019040221001322138068787344028106454547746083548185655318530201529137681340627402688590716810914817786983712784089509007732423539918350402456054140264239685818583379606598246337056333915986490499405547656040887330575600574237389622231992324685181455254275589324547016188593098702658644633146919650997316930348970644915036109199220902859112474212703904392732262716662959622912165810921352021407452776101701209268859841682930482509496741548783078767064479172820858806729088319991369100335789566173444141533759426875239824538036231965005463952526818033046946683981358031498985427109872295168918075171113751708472457940635655253230493714645191062085844867145597909503975899965641114610396358652943183884905680962522662091693636895748560014221509826760778199493523752975546467775097345268007036351381282224325973286340498103500664284902511896847586619171044469350416629439857814315959176961939191496079025342728884525627176331625045144684443319065539804119537939329392007442943566385686084406783477021631017958869098221684545813375503256830638053921817831388661356456525998672484275828433236831195790349991643562599722834008450476989308051685894149598110838968510963364738667989916458105867201912247051765747201549514563032397028829335775304956769503791974802303004912402104335281502325128627220414501965773170348659720532752809541276406382320913694892248165212677963623040362521331270648339068077019971480887330276411893839418139428602686559295447740848447434656696480292654918664782452088356742518582151315340653427232129303731795777855301174754957908530527465675426922041394156676775302408319400054252229281428906679435806926655286969196531744084074366053071343892482106703331816100068875407751580273110504750577831619878299739075209991911899750575297220748111880743851331174742329811948622386969105017058613305412197534567162481102914457771179083091607890935592726840358452058816129401920190872152729554887268794485457562579740037101420949308760472153470067474058257127255026320115315578002442872703826164961463761092457240445406253774515771405832618800476245223837187509252437076343051860397727570257736249619578250769958496121762180756060684190323747438821989889813033817874988203157787968860455512295641737004271443552805185076184364136265275454811056572611538436758258408004398244139238881626903020461355338885816104004220404360743571864058224710919988839599482200345784559226282948493933826055847547903631145596565671980421933333950499376673437373392895150210766314692380156275252525238139459166609979082965791524319833281065222146247045991928719215727044092206095639215351095489473855646118792431041601225010131768388169580156744637947335722587054155009391521146847226815687072605865649986560256845715949724725700919523801095449886067963631828986196144382157469303269987570739002776475652037490288198047164058084420607674135871288197298794895263254853387904140429875704924028894950062195717014698293071149729882290566380993398378139939936179815745158986807813639679964131559634558847865420117690440552094581941922204585753528937019754616697687907805149754215282255463745254379384836477974800996185932661847699650271788910974035938450805774959805592995224064885621702467161049199096463224637505178256504044344123729281130101802380287879777544447905695990583774255754689018806971182225466632639225304122778759411019807389003664064596860666293010335408266048226268639926100072145956545399108242765238301101812637200643778575104323169350300998659997972244721609323341952157710585978082050001900707136267683256465665082746936940158946759698616558451672254686512393019242609631047351046294615982838421180766477436930849460145835692352949233839866069191308300428849140110411866037830772227571352397990727885825387791991953286350706073423416711197892736250746030597412114775740679585052259000987105388655356416698111565692529297329053901057982357209078043598308300239839257197327803136976517512880233707054879117874848882733507488353589242114753520563448671057943399997729368154491257564669050561862338567952348424259411494751069396317896710555779061124189117497099677295721363938036287349047833095473544442370599136940480780334973986979396951530237698727095287674023759257401489475039609758161715939235680238817188329042851355341169739077974069097014439678759216198080865954072589402568530176801791345177749219384399970107316410672066717111464135723166512414882197794587279097390313926690218121550996371307563228470150738914439179011761004386367914092603099701468055558691756488410718147536726127632266983687999106992931221959092456078154215221972359873532008022391739445914389884030993024136717746373125131476507316279716727707739399901873307250820202592951701296729190916396586258641057357918100884756709185029550514800895526886877407945201846782591754028397799130340235294243560476364597583882355327464608176761350181449872095522258296238355895227748275170124259427603528051075789954815909663937144657820581413956855068581518860358490167764077382116670018323244682955014706771635385326728712019727687895277674041974017082354435786904358191730949483460226447754449533262614479512684512206310772392110221715108752248459763507142689489706406830459043680744617115566724732899935967513508017874668527527852764718012921374497198940692529703383962166114981217644613066100303890410697556381843404869839296119816662495946484611573145982417990365246147510812480469304889765603389975682554968965677112340234231639283604067051425556484563209628814315555980236270788820806397508980168346173276173224645868879554399776234721821280833815677414211529584795770210623494835588142220244509849636656032667533370885619695885839939838647105052969451262107940649816460414381708480961171319802287337061604223928818082018540745212505017847777456992357528685157224845639473964450276865972596667650702805947174386663118142723667103254407332112699782538720766072362954793161123194914194890196784383638484983372642657682400191383965918287413001065228542661202894857643109126250951139382886191223375433863837386956953980122534176500181866967010951470702784359222178103767388969354689931584944932331401579917742056072085476798705419724728612516558531472049881709365666252268738418975820568618501223308468551266327630274428559488624716927081858302798808400924587266709679129619913276226671880364977226407962203900513440220152080973493602549492926621111901216757827109090143353626222805998352984632710617550793920283911888726863368448069274363933332693897867773422188472638312409574032602333553259082254119376004119986888612706401441425351209249685471427175948923617073876306576034121293883001532629364993772613502176129654287384525883379728140293490494801394118727693745517532235657121062094798636660805459443574882874754005011504060985039579507737579592116698087090789934624294198782354714515339585770205240058153273185391991609074593806578679602272817999244059410586504011620823452101335327091903077448531983021733592177148498812596550587675034892494860036675564450315937157584008614001570111858113822914368639776903926741264131312591204741996145661114958559943083943823427960448428300820202263994962688461531987263994680351508321492006652111619191589378409652582512743801204904930733977365943431496701713816630262084108803908947281295781120862636602040675578495138570497463547395042821544172209608073030914789928510876617920782053620651516052158010859495968257116352753325990135755160514811711229333397264130843471103461756689971861116673573913881567389566168098821731948870146115246390021699129081417045123911533978179323036897195645344805397541001086862419977338001614297764319837305381660715377437996715472692904410203402996660382515129519314115764973183336877963783802799724876352137656768978490490132630439869545587506409116235942716274006651517795822516441738032788344492156242402189641954224777118622528485570297450077469079270753182302346926265184729066198557471857063931723560296077251662289462935557394375015726774468440503166052702859585501773969199325693014157800335120134678431463673393905494539831176427472725653516233104466061880920043718243883280074344184738117417973601004784041745083926131223898948756081982626533579923902950838106470502553358459771207680449381508269207311228863954105727955109665410050174345675554946955993356186405442281251014583934064952832851839405555628509906102566051296900388493598678598436614469387173115342280658794511772931012297287828430820603297885359468763407502951252209321144874313976708037555253809351051095548291168353551580958902960992259286075771806228739316188027668306886506443308845141300100413234217411726738781915828801874238741530306379883835382507754785389087661028279951186483386125568842425562056859661439267688894697397525530888001814001540389059478195913290262717527653089698089623213195136412864494366005281987650990925988932485711440182179256609729539756412245225523664352847801092225727515653440030792287104859301698927478105779289897413325872298593491611078631530105471273077398054579615784101967601098220397371991694529411319592443632959250977425541490389540613429918862359165057871342888900403464949422621694201529912178639767544467334356300459874745644366573534957091046884610002944733907026858152231983638434933554969543468713543866224883525665619629565230135942701726658454935944226606638727959380695374941029995125626724750800263219200944601080511630080139284704950270396690478254522799983053141449242384296290256810392306360242499292942573355486944646052229808171876360038673259208503419361139537278849277270313200024749061353241090269981509559220493534963463587301380015042462885291497266886966750126866052030933109387634004932305230351674454636826646262924464354123580351156683483145422481737386090301371700255113955297652807459624237458097282254573627245810035233041434573444204360224296439707547704695149227932510729745436962612050550910456461261919984462075761462989170590385017773021057115278927439827613809479314872219493922513120156200238852335626032250519343211856210356671556217673805221463539673321791334550579957731942747199715982038626023086126375610347104578435342698411767280787364315707435346720880779222158392613299571451865158781296851786081814499069816349055812491636160734228422796102977605274361699368416241752773818328184801185679391512131050309110696895099525540660850857088756660300820001288551866752994142333280088389900055668223513033397816133858410283023177249871882014945489124964307786921793370612100731986829711296588051890471626533312918564658672457968512872766521426448039863553530302688966085984609105271584482998580582032139980944519287376117651307682431635866804838549332116248574533437103466659458719835751485082820321669708334447105845084545240445218147774169351968074002448088296928123587452476217462671291401520771127725998277852515675472021468699405470626498491418922656239125785070349296828382569066823470171437841730910056254181250686052701624877479991959325783424269697805367233462208674864624344121500640335334513907649569912488714894103977867584214424934970310845686067818563329803930710840992301321208726574743404243294008265802749976459618847388578430846517498031243028502407958340682436027744893266525206971456176394473174260971219051097199239863746883241510202310391804720485624212799887539056049984079456685297526530915183092942277724542729675937190515778802851957442092493735001132303411148104586955521586629942711544783761018778487918735730408355753548748678709448261124878671538679385691391325939032406314410026110730461665571018345747569607315650747559976612027313428841471189297716822273839606096841380551580771091874219405421728091081805356886072232666355943323040350928195786894133508434340301164625952438404690437567768844630344470197700627047811418455624719290308428292933127418850971130239625733881549223530997366795290934945843822727179765404937142586993977148911808751922848668150001799942957715141039525032692660737176612383683873239933945319471574735251948717037464522369274281937591177055771928458934834992371486805737591291204374269105251834676966476193326961275842406053387253947129852821561216367854574515074976924938196848655938751637505026743525695655009936948342151958930597793902122532302870271250445918869449887946216176066433874392783995647832948403137136506009016063507395311266016097694872041141194061340976913606656061161707994113079473018278130952360571700426545028623540696989275718823156083143875633792841605279499507737545555596235161531692131346621790337839457236727953923920575263781499805748733983739521165729254125084188776031545819668468604360408429852884224729417782284786696316268891815661897216882128100877496504804968710803448739004732193180639732591739691854754598174424577014897617923629405398328639230872384959534416301521297670957740404460810335416044524577550427562124696486273193284988579753384946410264166505043246293085755099374845974159323258734476886072596389439931109250329923193540580323010240385084732881479522742094873503475064299901711030641115414587043541371690234998564689390345559043262420754872210185679419123406521387186539544861957597326983707390959724749614943652940345239505396769430592259762217863538617463246446341625937490093525181869073454649159951067814751525839061228766842658853992990989078186918470403421983504610330796557109029573971451647130725585174487534310511057045761597287556951326950441365337055547952819108188541290121982446164709473632659375720889156621986487908522666976860627575333268326618136076915715466866562818341010543725764514199866266623366888312878868130756541260763156046852080512462592958241130008033867508750676551069780268289192184446438832225917382534979036916638907762664594005880034717179410057190939533469625125810948115466878152727622479472072250718158132816184954362984621119972264359695154334094239526145701319657990557452716791680946780405113371799717135557685682313218763749563949523639088420740731314411667982261518527743332129464141583686951682345188742503616724584246914855332391210810318004798737238899828291607173246335455364973312014375960061520922008740914692875884293453583526178188988142342257851410498934369836184782279280307140145614052567839782503802666142475228666324287751584366330683011754378269337502492502966674159580810320232679418097527538713168692226080735719580947077697754499554724333829144738487868392584380047194603645573784299137652765035506971203960171883006240208329464615127448110950820649564134038933424331944582786469984665167010776254675495241760145862450815954452229593505288152651996621580597629680132068991800326908536870705929826457141093539363514742152968827604006600534522023808197997329377366474682971434054424086480678153381723256483257036148519847190416977761506281124816616006311580602770891180517701454025178351767930400328554694379532915400433288738048660960026429998747511994462620881210579843473610164030618064894347917628908123795634283805303798779894511175019537925811435302891689826404593971025937404372517697353710842828965045133250918912789732247182069757671087842996572699569337765250931449248063811860054753191816721554340880305447823823077921813313237234197949575898341608349325733717773122038152459601107498526790469149178320523404977005139135243901610373614088207389783860870637292460084602388377832360571135385272235039279769940786371883059601333512333145323383659196993665837013090037771954146427190965857414904501471017306237505855289117930788726403456104214390203111455315818496936735033779560242345823726744201269472343677606807962866947751611059376012573096660919337754520255643126263696276026425737984457791775557274011948784742697057814101791813060256348480231407492739382532317305039383609400556486854943134022402997885064658230792020728877890382238508344230415599597453498761281747096448414641309283650481013187093935146954178301419679903007214566520712182990351178376734049250575669782630822675721410723855164477561875592523043417743110118325817293312410099600627723126439679549363206150485994954797951592662996771958468675296591951117265763544460212823272534051181336609763891473697623524166721324844279962468016561025191843989015234110451517696798742853436139337414926886353571558955361675655001216255335508803545859286570303184814119895123268810859856430519182509146437305318867837163262693487709006639469152821007472537251254946948123211441990970880159468126163472309350014781992184302917927414563744702681338164629410939111482607293348430060337091526856584745947558400181659136710168882505718431003021211075743911366564653071409729852817473927326238834569642553184544223833320442161215125551514262434504644177642384491106022557867711816267946671134533480024699255660513832268824491674243857722168771966142440569672167226401736478999733898972420261386802007022075692487987469050729255538335993977414004946367034876532796193827015582636471532408590144447574613094306424375015245413444148063049926571560141897871139491472700598817193120983780549811748692838605114410294643801858456181926441884677348396055262890812562434047487683201259759195360448179277663579586063609894973847800111678907275594300579646073046966931098034683365229974962713198206502111871082536694218536510928263174810463672788259621087336258301125694909368756971370438701709839968091608394792220012419879053260051001385632523972409911270798113299928023115395170293175784820768651899884769343595362534928996256215119093586576796326296476769454193650798990305395038172897616603279834117844149081806888290133230363194055531225857793486666190364494672903538498955859907185811138176954244304916883649882744977547990407547381920549070059191765032393251463817884298143827778876916892583079884462392784252436701923716913473835146929839611864871681464989680325937443565107347342247595896537163585244419947054357444030282234980546025181608194152705611328785732885826253153014459209901672272982229690707326826714080503633367433721494498594443535503202187273951635105517844771496962171191760595835082317799515395491365212008836106059522903604276529460250222287614022049344971363663062238767194626794588470980587147466839828886141071415367436245730477163554112495558519467726517017956969894838020338743973480813904378022735257546431524339866443401601445326692937134015333988236553014764585440044088640184282128828344194621926099766955704249667064747514711648296238679128190331981656128652805965380928622105816711812684202591614085223149638180816806821866644079781169777082986717497966986342832823661836032702334157229235788336608394182289677671827653237264455393636212080302506793974825400952187171960324755148025625192449537750803851313548894103932534434919192621508210884483758370271903506361090524699173652260803039880866031813742745046256318167012820589834165276361600149746649798852636237391361848870087933909566926332866675623381289081989156940774814711563098213286058801534631540396623699756450506567281250249578034814945249012834891070765458583159752617003393080961040430961208125880162606457725461224381586191364975994951757638646625398806016275702548516187834915224517210265526295693730934149455946015826416139576115465605730524693774544286878425190533543332526126781162716342735413078498694057494319692806685696412851456662226178267926012989132090782716278135051958120236365612192272562691015286111373483128090721722657296566635129449160869704911015334683349853747776892729445832252008723228736497244020751061319111726448557525597209534390279459381843043475857896296849110283147887192633185789103252543334040760627680594650323701769363137898764520786700954284095154341301817685505634081129621098340275307841143342038883706278226441022194260340691536217245888439422772205970890075363537661103554016416310124286115917267075421140003591841863760390468337600933669689299524514678256163319995095530608066326789222512669775982439514262037510785209221912282310411801178034454339063416188235489181885817838189013586918400692093495070076169281881014184586523352324680582479114417215618728139227344111993540886947336890753161394158214225122405285407559916072930380122658696752331244570696751952721971462172840995823531405032232131724390931670529029606974653535695283206392417411820746190295300211222917072972641385123386614640047392474066522525468482803605620723302336975436097672368834126186415000108776794134933067470795393815490584960684736370713305357956650711433740874328618832451434284548322465452860783288981332737518103289395321232214302057356387082573984422591667712026753165073989416212421274753119270245040678846998987004170761220785705715110344086180195841191635633332498540936700875774031781766759349428781166895320208273268635070359541226375760827716001848007661104985011614096383024905334828169875020996456030644593981060627029527904578056147848876936950083528224127472901351709740591447456334735721373177161168850091600889871642417884845820250216877292099336296748536638855738088283075434063727653406261851589390224632566479606132313255891842272007578872578537964480746401730332107561098995864901353693598709056956249409901554321353158822709300202197104911957977262145454139320049575364412406531879308864009556797813230170730859578467479667946551231769455348506418578883244512584500402032581028347270004766583516660268212140943579148281297049273256622257613844703383761687444310793893304779564316282250613379755745555502371696737331217578773204530357865433162698045186700385163964639720075482993744362926070426137122605481434557158772359405021682718570445950155940700222454985521048922086024894785052382226155250111854406004203706252950629044019746576399232666044497491210188998602690344785433142188581461090397720345648351103609780284680482726193060912419731248848510396511973295123636273840612574953244933451268965853638810031162300494963852810473583633687853127056640764981931854084325423875676183908134042048630732077407454260215384582404511374556255172022287544731707777418497667924283899372575548660090081801937976003877227935801925998201569494883932038075581565034534927129147749728736475170596328760127455559637943414220168405180110752416428211547631352890410210965257044774963751909864867123321506863216293760555409626180768709629114621499017713150644807496488809314218212095370527073251651634230780735785509111263796721948492826203371511652121548240175078862692578035299620447948689261246130187364369267849578210384978289867563021175759588885834405485012743538475248899294768165416851016024631900470032446199968372782868345621081674085534776281380081512225035559784215265711622597983018178133589516424740113142609789097026604422481301147676654789316040378326297942511204559155300240640904401475911228565005515305848995027927115774510727570087554159291123810191450781026275262273715903824230703703952904250076977102702615003357248452691733453898088993383570355897502817531575352742811490356260459497406197375080626525091972713705094903083471201134650744473812173774303137669857559304597216164144165634998358166933489937347287073207474248383971815787874742189217123097865645291801061884724601116504149990112531660063437448286937643990856892138267516771491424018212881742280394328692910981856876630515719559770869519447197888162407931713827895631911563815699552250924808894910291629996599562793987050450857545551030899218687092013352863288739713624795334650060578336410289301029180261589920999963085120776455955067611115047427340396890341669593713702253622208285855969195546865203735667756598844943569299664821411075952750827761530415686018849182948771044198530122135762562154983944294295899572770084940301158235962648257638897422097562170707005782057369133788310460745287719371509921938684449300421703553305398055125384222541266161611730077177561869198725026557760240824569235660650591508640343764294995991647836714769168171413263137176898602711261567099943571287476493385422184367918339729674260826522684317884470805892310295693899739993036727349591961659870212738319763512223209361449283741423180413758483794594510968805398948846007169685599011587913819768294394678802737991650392178942739636695394097980473822228799719525154227020128513454388042724530604549123994980868566199741627818053451692492153023036358947713035646865390915195939782832315131264453596143130491246569413094590643534011632623166708961790509960519842940800508411565766121346290880192392897263418159774267261716081752436798036330055765536881349714813806294546894136287121401980839854510127210983637744886618120666008682684137104635377631725841558067663620788060173692027818181183737441964304953374193533811707874705350851952864066446927014278854355622339373138238669142776799700362314068849778493101984111241016241399257405666775732348125700675626562107803993450370805336289557710000689582931744216297357965439632424470230059397862978808342035549299475333741307561980106459043024658701816331193821052920073484229448044452294352303993942022691860566813604970123620583541166650574600423432754363010601300709418000755634656889774352607195507679558015698783187644393211836490246590377398909407155858733132390538531492241761431449817224251357234565091112086105164039261267319261498172936438349879009470059256759441171644135509426539539484336595365386298239512775326760656564849228034766785672926286985407592633159763129011029802735174782907513031115485618314013703760212100083562434229439206957032801015608433315395642873801845123063660820648067975474614536902518931264405425396107548277673744949751265937833664442723826039555088890190205339819412795235421792039198658169881101106967267987239224594605852370637065229262239758117427037725381424485891550582023116509958914099884690959206431748679191112527837292179633807893869040013646508884661321856247569743493635892578023531174687719887194764507101141063722856335277996394895034962273550190578622256247767422023185138507154420935747672553997739653865195400702096213399948338866781996666254632801144474377340788189638450477227156054124648199119620095645067173082318212270501543980715472813702980277282966227882279701963171341250413859803343278405984716468650346706155707927587197199997946936883380263466378466648000032207220440198733736121574323470744540523849172443509723532516104930564954345565858345620136484040672671487556019809728909267343044468033824593623934369858579488696326529530308417490764509691238948734291087495778979325490424498364177232181137121128269542736641028368465676113480381967095340818929732033379807304914158434590872642670224581617042412839507677923504872443558557331358146961382044946939632151552204091603970796283328462094843760680478957638860310270958880419115225947121985320587631733014652117793776327248599885729063847991428610064737897013489664549913939230921987861046904999932396011809654112630985677309333121144690657830432489441175943588049987912866812248470385366609536877761684847671598794214128330643837563205349594076692030597614973046196657056240245552380643896195258496210590527835540403974557300630302330715420844507744291940142503538568631855887202183341549008198068868466064982376790556475444776758177173757968729009110647390080586061277137613063329061614762729646493339766532678017922716947333640488173168636954644416984082132873108527390083011247164461551059355013301933432428054952973960825483791228847262066359991164255134428911504064790054053753277277696091343511954380475835043911546560092739245309177970659285957705276396620020108845488976004621988534084742949847783323087243223014809311903173736218258263622745820366396651541502699704542497929517914675783536489776299372989453302198836699572215966573727884933208462412055865677515356719589598436602731326092241434250530127598611023643346031595932865139214390211722888428127563284351926706770452911893978216268068801398099700928665119137343726345395394729804933528656556000197458029491363472456966044922310584848667881195016071737254198678911930758110910204496470347949806248798210701238913648060110496822475629011047482343212841857358384301142811997190279832085628365128540381809333551260322071604853185770545135787299218154178072526744298258236562560811212994147797410578391241054592622723338120869300828619184999723353903227362731073732928264457674407388837784114642571106809147057608116312659839521588356195766045764681521245335950719653007127445269189170935370214474337106748848147059375213830202554792780076555793050176000136891279981583400469518212461401756574493164943262524435738609274000368631656936894056566482053015488916516763633530123075671582877224608856854043808322965967033454168203684872157337072917865342788890490720081551505840943204041673139424637431315979245939656415606155390327049626587355658809241522230459363433407952153764138830013418535293668591115994504098871318036534089228085893053519169510885211900955934637530775546808753176504675686988319152059710062427828508563655163443619029241872273462840801415159615934540468073918750813180958445296756195282554795214807268669620091257940650854106445599770313772384665550784789303942545624053705716077764545577733979258099496912252719279418156871260091837905727909193203128085950645386623545931232274631896833891329137540439622068407382136115320355513472788507555527652228136844636924705653094560166224953186702077435593977400718003511134992845430795300121610194074817375192796689566351171339319125845148082362332914461620072304310638615827488798717970393981485445248569427002790316441444178091832075337022882342201129314095890425030435629582984430755818777941684341488870419768701594626991812325894933747312688063451427872112230508065459392783420937218065055478139249718772370683896034459712132154132379092971834234959684704777431444263449614912967592100503726710908402321401139603042856915498510356664805595533936568640363182705662006281045564375019304539152797877605325122194032298973972378442874632388141162642374709074510701612749836174131899173936776743176141736455932282740412908906729870596555844793254642262233871259652376573981734668865293457065470140448430433167232697689596619068912900196240124448006211520525998286721807166632170741716807889225080584112843901160648749473597722708149357739935672725847751564146972083222453058584460254529727448001431231904809379829508804267078831094839775154430238313171353899922552179272455815451472680170589576532385420131945596489412803448875340390841581805380779367198070754893976588800520027685003373492595627079841874484657501754516008557768603330746994204640159463662931511185102168292437667260047692375044938327917937351304172892157812343520950643805599076250692820783706305949027665412548380265759135280756953473461518676583109791368498833408710540720658964352318618309195406379617352965147954593162139203909637340553171740860649457915696449363219062939839594888085811199068158669427139874511829521403756982328715038974544891296933606394986522037611723835227969842324717242614999383721878272644507182384914170335269039708288882663794352795316278237089170343510479094643462788420804065775155505994329732910726467843650556913242109833003181889186710372069883792371296324022763114449039907039260358857696485058871846832988143361271020019530108255049823868390531624762123605217744071604118788051919437160900367558321772006133583833191760070953922895153773565446096145162777932043706317307844680701370950468043263859081577493316366932792625456578667771949265015244500255783532175912490978225664842886643654797391860683576308367533953646224126978693745424594386556749835901393682379320568624268821099010843770753574521392614621817551900965022635065860785859186365407037330162587987561004857322619256768310682246708837806129766158723606835332368633951715200838925098429163301138946568191829836913098834682750550823175957845851443010336989923257671735963494049745478601432249605716618088827582612128776183326337320682115058942195354668896371330129252767339158154609860721531947982522893900220531273703867739244019325472346621539528973076152643999953047022571680317705313144366111414477889188405386847254675829321900743393931345117903187583662431026561504039044515090893018258102605163868421554814960550812865247874217781501886244852322460983037859137387780130239015519404856409403691816150391816514824283378787713708785689155115780185390859690653038029060374219611820652735969317473366193166391310376707434220982072119758446725478051363993437259668732443249808480373490068387803776718921242713787266564806620848908833464135104333733126256990262405932607138071603547354822873852590649976564894089673792927347954591601918067692907432305057539169624933656818472751970328353826342494117221676223173493443489968850266291167431278384683708617312847850579773254101051080661997547122162432893034185969049422187888416883735967351257520474523819576044527791792219431210507468180838960251991205901175761294125490453865774321609614239517381459266791949719758352487902040667309654417007370086223103650228960986342681737571482991899601483654834139385917838932415290286617110937408182421388390501673165105636105379134581185842358340087265747495297271186319697184927638393988373830234952228883465267034951884969832482359502619486133637519635937374734199714172281616273743009119609188407587456500553117847260046541258883250300962993161021366235771626697210886551798518328447158599653967958054287963461485006226728600961167297432327031339475164520404474127972132058138077036658855433854563599066389991930048342641403984935309412665093372809841232726162286742891962952405336530552812361061018713429352275234853490330378876503410131588882568610253539851593448790647041444836872649213940720048349904672139379912552733708607907531498557349159480709006492191010572916325654054366355920077693428007352905506549595227241157312341721431641826686996000777469838334676125460140922463657667316347202851299490639293717152030890895852142709738530269128272014865274590063022359630801845132862113297674765750626733612309751422539425046857029534116284203445552136353078902496565098571290126640288057008717713620401988002549057133633751581574029090267639765350109867392741051989105082332575902029117595077919834620781782820211489056849436611526232344572100931399260653035775952475399927937560085111444252916523565505299404632457759309286413554073487803171456961437884600853080547609259795602885924681224281613676983415473114888456511284258378232903995221617362523056381292591928071297050823646627800058993422265641905693143609291662145898528168085391418383330328232854365916410912680806362172981262026612779577535709262793784774058679053897139877389835631193086382237106596955729155322395746791925658367508943525804807651092396417342464934382482234969652441198327416313399282683801954781035535443298352719873236882512259676850038188948721821889890589897447797200393783826588059792623324481515545066167506977296603126312213807239370775383904116519366035997879474278324635727765432838761475169985169754558038165728574393598205997165887376174254811447048682024489915975943033596760267567554940433536001666176216478528440534855306438663688613741007205939293687015985773301367658105994825365825660760849252998622190799764427528506992589902806409628046917285223938568051156426901323263225420879061805048060805023557081862258925303918848729032499907210408365187244020115142300443141558705030266946427633057741813406985549638024292477257415149799470710248013511108168394901345895220910856925713909244585342531661857827678560125932623511883582290813324124571550163461619610574634146796400159644476701837333512887561112045870636653461870476605966796905540113781580911420336855177367213176979866797634749272489004614406202329702167671370940248672388556351473307065107544183150241970772199033045155990242850206939062497260205286923950460078964921294930074473471480292715285604777787932564867484559118843364516769294781008109161795565504158946929693004800172382962222032260993564953408871417936162707447262732739690739777766691115144587017734151324120792548120419375280061896555478419815682246426550581491065048781883113159776696507208733045243010114125097921887000025072990476638813470835795868121265518703809281007428742046471284614812542555710636135041420851339187054541367837006246173721485868767026878544728316272613198223999810686859698009179074699190848776453875131336854427155958181888618053921073657322012693399170464643115689566626532471829373232284934274841615215466048094514051014478296869416890468581186727885289050568152271878949277000217829158046159888792720181754231155840085030809986852922468343734413047322517854304768850727844407353107882392034811338217282729298575599770982118858345419941615368058565608613595990162146565153102631777177651458560002364608416054818761320009492970075684886352322908893108669688652654277678324080190041641567589034038470216221912242690950607361210135312019131256547701306729700790021898144738730442139467730767832516910010386593331046205499023162099049359246189753678598333888695006044205559249277740467232586557960031357588261777850047298567589340476754293567154923900830056400925213625367008804465763397110880400867451192208682988430961940560774560571889924252347844821925330184911894502298397883717117186143823559593471486592274842483035742238970921578228997568899359150066956360846100241316115001859990668547882112553638232927506523657841409130072408926087497498764346008792143465664491035050633796373156534651949132548955328637387868190424963193779729146998673631005365027447451471021252441936379011163355625090857277077616573836627609981461324620938824321457675865232562333816888431566214753239336916018132907653027977775422527895578345271593549235330659141223527618410048124283359602696431890687922324091974021177145941568039978413954122307007095760455184461908688223609642948407108922401859336801761570115523069784862982417021175542690052213231761514344395573532603866239029024135364748633956299733608209507139603624693106809205079545923215038314007817056014643785276947483383007020728544641101138753898442977739782162962734496414028199903637736179165915301944418554678243493329567005422804468463837195969138787253853068505587332616013197950936947121484671413326582394279898582782605820491743155492820667922792935478500781265109215453133269085488493932320651366979047963763820540585245907508830751344187858101300523255288165183338576434391724611884265103815905756878013407293064085156459009855680605459577024369216658343813466694612146223106746627415200999103230319150717716918803595876276933462185803023496690066800310088024744598605088952558318930614323515689910309152470329437896293144296556064804053481951878697272391257232423289218536882977707818380323057260387006387918424686088546155712313011044580337570403741397163909656429771407964321178507200788153194616176780827329255934723451353974561883376969015622394513656099182195687571631747271724641698117720692342529592368173484817494459153296262560836721239410547674814195419273598983662236422733007697039943679853209806226951967685426120514196392068637047378058069495484649663674213538443274750627164427480807998268695350873648686196556607873493037770322789936632726019281773139294080072028934905942419188936161355730959198638546424140721515250930201183415753524202582273534563339601386629280058463156013499142328746598602184306177709699675323194283551186603460781870321220410771158571738753649852088263156477000853842197890887858884713224641678528905754341650089551099554663760494860554345282384285884419182648292241353120376657905251306538929015027967697484722402802348852989358911167380812350143314633164732203838007744242283628666316822303027775849775595844951770879762985295318192642086132625176903618321290428363557596313588687905505381190269779495453081704885580421438460961772059255603077718987680667488603149861979960512403392651260909279288409647554583216729346884417928040522716726908643686310826000732692780934472941246572033830216834767199652097583378318393417177765989063880128592632467930539181748388598195556343523104910669377546312630359823022079930072015855471910769064869616489489057756491804810193399780716238950888669678420721713819878777528784435285789175337888999359391226617321873102543781609842582785224073239853297239391823728624396917152841703197442958231965088062060978268977228418288420987004842194915279289105039845873211463826074960244551447863244639948670662348633540810420018627834524721118386509184897931288790271599257092509547436844760383657625200585716943169413344112630437420523079876450749134019923000392486367549016630677500082771961129338160308826313582797905181149957145172243944868909047444478038736736060759276645557274609316755835098176022042438208406757854362586918708648140645597204743856534776762224598127770090173362914092370903015596346840039540510597756124751937866232482179370368113888195197879755832958191420469973889069311717991319508743130819857228168891560587003502555003075460575655062621769494334039237602944850392024563054601248257972214927525052754805958830543104605631709357235447037533442700330743266164593128371072201029665741620669511669486415684883836808091529163001961543149457269082270992376540436387266166664726880838495449956200969792210461682683696304398357645962687546933910681042005181306476456781084061581810824832954884308069666782348963775026950526948909976567523538861190165073294173738519498396813833248941216785715424737892625000089694716978020324019468642700513784446679353504761245135183740153492835993074443845735336051339861681518047327706486891945672424663919172253514226328585218506527001334557491631814650030522598556500125929120406442926663542553404720080063682762399686464919100977590600529987249777020358096968403855912310266190339798106525318276647319366520059378330991000993456141333284421346897345456254538257414938906680152203222106131000242671051937435676652581063149793290302573770493967610229872924131171542006319425318076847123320263945994025929902681503705069124678631330868433751027690944581326375781644498580988562609530159496154395934852485363050276894737784355118296692636763898070614879794803714251327113688644217507587573438853156726229219307435010637628141542910709250002464426955055195194652073411554060978009930416376397037529082163262290271838972230914462757296179606822298141747743164451774551457477295166760920036567462567984028372866870909241591117315005692634148457477222728421912080794480547811211302149209593340729890011296084321152515412338510963794247420288277652692693953449364357400656920589362701723386690148643171255564620955443742856512091625175989322521358690062691121076595816172913102794997115179003709746356958885209478833622156457931558267684387820388409824803904812925046376300183996245590204835341715921236230229237950998383878761977453151986104326031812411739516267100822437351512439474804746806159165632371894582496581967137556319962290105035505941629317741743529437445711781839083260429231470097525940013489919297796471460504864622507135510267231739716559155542219638932044475461521019537277941964456748482944097462646715796533721517039606440966578988622250679157610417521537803941136509517522788383481870288361911499142312355644703449217340904481262247228802554465904156323116445864122443976019538649503981339762675092308639398791047536799610195609948056680294482385238270712625398178213902566615284312027317081201219600197525791066464688640096319717602513494844045284655479415281204012084882208013461340261405441956068542513954828441973660012742818920359342307646687791689255071913161544219793389649309764873261735540297506768882765604731011061401565846458424997583241097897368085981272977098092310953284491536110209848754783490288287636783038086679158550713429267296287129951323947133427834622524251051937677099197535780699550843201995979783514131881095338885238368352776765991075144601554352859868649197973201648070222040299903064124642087355156249183242184472552685560013009765994372171406122306711672036244994574840195954053007039394991792558150562294418388796516879708951347401489784533678758774198495406632707093226851772635442264301341488832413825610656341635463974824759712685466701976263727670916548787296916404402927844926759436557990280337205071244791023871354474435494499528583783798117691494579924711148309835840108148636776399249725652904481494185534829643118078474576431642567258176928167052507069397835568642523134243341520922627150078254126676810546249568487420365672397780507404571423091352832192432301349492299457938603691184040337441029412615744696327184701195212126725886836419491949197229183205144977061560178297923672061729153104557772711757195876257656065541301750715476633415988677621653427747077112323253102195081821686611383094426136967233937471120861195974389277466247715221240749831440745317559577633422772432079657698430360528757739623133726271921522185560450082736893340660377034808269134744400813076282960750142959202075297747668604657885514988497298987238272018064569495983807266817716177738629646247801023211953858935312765711525071616118810547663024464443279740003392882101674111595510007446427689296605594661732330145744938149974332045536618144812052207537276314276079049755774603018845407338199024504933457033217504146997745496505932927669177389772816943393884234339810415047418103288481157102997595429552272928370100735775010025142018310165672910352701462965806090591561875129625348861950145352751671830629256861312384744084764568047700927811598927387628391886571036435705124578106741716906694954582297922935257359238153370488868238041654484130022571229877450304298752541537717730511113401946044112471572580709230800678517397442044528013518016667518198353201488205899294361073556544779607976245318326905553900955730030829063644626393079402080368292497812477934060315260691234304683506200066953404454693778163262155108555372562908667471562469561679296412905537133212237613116950774610291162820853836066989620697675649979471156588097875990267469705868639714645219335822365764265962385099503966166273561869003597933625670879302742610556138077569923161720765958483571543519859798744254735250994643631417954308437220813440468209994662472092997151260951026732555971913239238761175249118469287718647155795452426322792932107925593840900383724108618047674566842043872325610195282523888831195858759860705874665955901959596116263299960612023017498328976293504205523062223506530211602522468039660695415155128836456940019823278688621045686380106215674171448756366802542819326053669013981401754117679218752049102538544307790668662445124298351677684248477831787603493695312394532428175240642366710963252834301633880482256499518995773212148155650407798888062596780713699245202399273289808518820528836237930940505978909820342944997173066418696236576128754394814015825734868931656729732414043384901050856732348114006575567519669374709157889644762981112092094307233035720922734479609698258146412739377419488760664199592914409995420198068990171349358203793518352432232556408173723190669226269676606334855510126858849066077384909266102183466090104794836559790409074841743517487983972231052371758339742718130126600683454972444306197753606804779204993735559104725871201233110554916098491582690500333985925869279108758944758228125860428768790148717990928659675368368505106583353851145381792838365362496158948641195842180965052645444227273444162028709030798325002700237664621721813613987282824899353126730635420834942351284817309790357051526908381023441404788915752309409193425000803782742164742036059858100478779293902816025171869318350346747661575227100018540935515307524917686708897593728265487417351061349844457830004404684495155325328890501088228266398621705973909648521975792683831981991380135325167475396918824176562031576074935578267671030914026969649497217513877248835721086571068722267904030924361672423993396425316328199480670217396114862827819445775533253632106302055600573725821347442460635490771710007015516667831354619994847022462312437004111510538820936246043927470761723535749304682833986560611580647991806394682171128276592665349698272597490450385797095651068676518003448757453332409235149538139477715700912928858852373076764009062723557498627568136469015740020342012447506545576148143029188633741549686007829301625792690721599074916097655999070119652758022460844738310715230983745297027973221082885610416735350761305575078211181273449832086163489462782195983106429968754050317824498243808342881562319689448740127040527705942117552721608217932525170311788548993027371262792544987416777993114582363823155847546080725222168776498047134223128372127436724004134363261145142075655693069361605224320843470550734089637458135739832505635023563951799473887472928513317103698898105422221997187249649381119486504537301438854859583040250390910486557086936290414399725478524263186566216866448872887597009866648854809843002569102723068920261166716577265411153978443008201439939281465331526030467403698675809064520428513453038179538216739553601353496387471365518870170963825364648747435743364534656113460140861558001794509049172287338301465567730105390008977293639945165186521035989090929892576620772847920025783529977067538379400881886502022274970984789482153619015308599583795984186227774249943715207717257099015967651737990590395863180913549600860721920953027576948312456215656899960433374985655879563262665848594077475529376406512339115704667857129487361957463107171735062213156604802825712978144515719105588595835161611259639986302960164042678105748261604132522563550563831138834393223110462693674732693865318258315797907575223075547234203008492997015409192975513063380775849445367357786750331745476574135029408957845551921308367827069875988026013900777109355933776933228382489835523058802494576132685751537267797257801173123045579140474285635671104139988615304385095608378946844919147798224002842692347712183691099310822206936862796140914618869626929101974139574738296329725644144195709246424689237836751313289716512713102915339525365244894260821558129046566801021946272240126407009056933819279595209758249125833091390982187272769469205796073393234182311162558109305582278567158225853384115014880067260105271655537583296015601668078820260889874703190983275327581938971983628656131947801244992080136065467171229977386828318753414255345338205908474282115656730579838626645107527871253935970462104393406402508299772509258594018189266264679510128266123157002211165972252081516187600133631696029457668867158341074503049814458355856167094609293022621289715037277705532992192678490428224568693299681480534841962749339567393751862242653064281428278616937657439071846427900372425520351508260785713809095530033006726270269050551902679943700167635366146221971234277466134365166690721574093112200019480989034069269623813234300228146326142971329657974234013495257514242255612133941187881072606621559842137953130192828750727666754305680618622357271497708539392399479130774868228724441064277113150102814479400771875238210979682835920220935239776759894171825553903993067355540429786348378319893251587374643600592671708406351297845647692694776495252394753357897929231517522526003478461351063979279540015242134690062673525926342270356806991124255879641522548188742240722418567824562849311079516840265911749512860553961457911528070265963944028995689707778215253911047678762344039868259571356717091552337586008344648915572943146390788739910950744074835277229012606810711523025326497665371438519128268234874599545744696671544840214416993405069252547024805305228222004511615015730682324107535775505630482879021002834566758726238005003420367925089460127993657076168772401799314128172818662625113401249522420836232344523346102465751689861078514656912187074352589109066437781258295352685348443142745107668755653409832034565932205133234802029295465818745367529659973634285597664328931568342772862805253201209969532679874977822502867199642727809375897621661631577529431576846211401960717123969487144254967898400863057535237436120320058983458340925118564291096054928776953094518810733274786711109790786379337581081599297384666927199701685600986177756653267713852262532516810802926507077607054898609094838470440171004343946436527904806980206421617751064013055470494347673183077862430768154844707119182912621162751401460615164775601806102779660598385313359179759390909186945086930860606130071699152781589761593176192138087566532758658920764558213950613082371093614376974413554687749215286459823776153236543543935616112616712251415791196861838814545097724360658084087874228177896545791940034035453530543688163400702749744242398059110354531044875526927212306989127467729297320513557668103884484787194042231428902722194194889352328555521745501980021554781218830196270294149738802019423942968549886074199853221142174015648308663019803534265379785088614637062759645382477557599542117238165336188938803542100485829338982298053966273271848093201077434095613703361845088971981092407507201259577126973610604106783808498114182631727603941833681911061234568205375258126812343890455022688579537619860423144420576508087054497533028346634839802233579765717018211278018037700402419048870874839322350780148103556288901102690835848216020360009493499442150252665593496243914801281383597656361414226460386089240632481080204895661621212062056142904344435423288303531712371986640172731845869969829311468878356744293292667237737981103800481366844454404526954461733201531151192499837255217134600717484072706494995679879445040717680709900857436156546596056817030645134161524932671289723142344072984443264755382831746441938405885098938514916332409589256642207055024924404857917053249962972739482941745543423056985198700102639853155743706876458417722173036206595743757422969629048778122360098554425315645707473726453160925483803137411837052439457052742672503114161754536793403681326518520981215398175704694206659924913279802543604328025009922599881138727330777287937612218717618433978192975876907828977393644009532428587832672763981933353898683786346723764804655187488920913675733778543081372277128909009716911967337374037544598160580969839666478831548842579531492565915167673189177471432595359887917304918811498157398407816565437094526329808194701311529782969871136782758827659163464101573431059157653912338271608485858812011275718047212490808995982619684873879287053453639329279654611587715321438430689890160886310866279699773676251410981455933960157012912665675354310438921148059750877710439991480369083365458033887906820011079272155987149588402125919333694241794295280139135583024915631704810851936889463321220624722749713287095004527631428553466429671429507324748116326685568999219829334250872553975604885324291005329376842564060315679574774703425699454489901934078944353084885942912766807607158261503273073922541377173868595651970681347814000341534914094697027875338973470520285547879970043324992415848500014087424558972414273429121265601572793253194477226320589441785717396262344814025585307999201438719492951599554531901714327106652740825650112610528702498590270817604463965131565400144505124860608332730196346909269701320614102366435359907988560574611021867288918614590610254942554543154605765533007803989474077410865090649466442806136378701066231466133597712454631660737779452009942876935107782047245444371497337843838603876125977317178007820695536910503923563194003503052228235404903572372277286107327483919197024915085608260981871606703759300630925825295527662402182359701530787324885658862818988144992199603596522534269086543283331350248897808555667450700054603847700013976994862524192505867571936118738641476196884520853477396596373792931459806038355051153817200032563033484479644320550992504961743183585274452405252020671026912919395967811828718172381897256445961309432247419135316623267203033351079445213921191327990657857830269665827541837993123579693077395036286506450892562698704777108570804979686468601261839662741111235447376981201588371193141627010937651879835149893067383881802123654583133118996084512197428805855960107149735217278160430486108257973409128110232113249807962325379102461185109338418990280642649531652388932633727510481625913182117216710784497071816871240572694627879703884694093018130641772603957616043798767802077869807234700925721180553145389593351214599531178933058171211383915909754784236690412982045334879952225137055798778255481659518276987328926923633052403870844513109605467020071834745825962863681824962007119560964956317452727643674233288131585810301886057737009663289231901352214378744346293044360143195999912487192970241117392009666794184623610201896950184698652067015715352533264679132171671001038986312387789045697507294471994936618206422005443839368463469781774185890700910582314810085275450373248362289248114885589687885767756934234079136935745766229026567498431943166597360531850338826872149946387700320754691160389376672672332737180360384102582779214025147508038378931405692572628723345174883567344516951194875820250124347224222489353112685233292582698444006104217546843951699503458005572784372310357564590964928420765062905308419469325778317615065431738183789416207008728707891318120182659314712831302377702402808162643601254808247074504168261468776742663712220793591975694139526139406759894607979523157247826659583670771595117114651102992260023989613817637793729002127555301351302679452037429127724726777047024696127593042378831939985488848880942905035887143433765398779557303274581406864428752507468384729272238054213800900145841538659122623361536025992614594010229605130653321956590973521916884833665884523463097730968266786740357948829766381961869672177752288055152527109680228994033148750356372397037857980301037361073396633097844478472853127421667637306587416072861153325530822750248805696366266919348307322587773363734735978489172628911979841827323185711275311870770361491872450159022986956363826812899144448093684408515445109174800072095498242951250599312656002109105532012909013938214104025249544683262794753247785227228236324228085237033580351873772106544446217229628501104486915981412938016684816793224167974053464526474850323192695224720367071073263220736288441452358082144511714625792285839880738682767188906949964541698492485099106127231103884874090054543221465083669796220932461737015200195665475045331827578892969405108632967875351537698659636209298170775841840316396074792089632532493053537141640686870180139877690515716930885937364786939950428291054212079346921093648787405235739874682919978363153956373505584803059074291414812247444854316180301461383700517505065211364687858276332314560619812869487030942903766468703735494540956651751841574568842149825210853907635265134066856421182467142752914730973559603382226657987326127815317678480048932288228758881547035744492559527806282378363165910863445648051161575721490612079874460654588028487335758359955744118230911270206003700814310830029677937046416558672940389965164843362897763812572422842656090760224798119036488395236487274871841880056553861173553594246294123371357724370586022345852798328509856794947174126704431549729730101471884055029585423009692305919796594893963783809956984438881764704189197329329184832130395095338967967419832260710069977002350599646814025731269501628758052554776853945826779824296259326717717323308618797964383024211738038240088032120350775858485161357682731934788918929214067503689952232977296482720412262955693528313428093344037457707445535770424515967242747221629837845812940439930742760258714900817980633686352025463496735992252941775488164732039505455449475638178229116301397993419701807512678113033226363277721455725564213919555244806797189485383091325986891978767894285977398979965407163782494142581103637837242201122470961733739853239122068724429445622319910493498700641153445570435040073126425531112462428793591088809500262719128533916666168675674736714341473956653332186103316995307444336914456465933625035117570441679086420231791900329219163880232073545921642327783216946298427384269852264530763754966769641431510910464137973001229321455719716150463985860852983862307327031362530211086077901512019664896285627368719545851614284850935506660697329208410602827151208945126549148931776888098397988397467932521945060375934953441345711149657711824187711386013438271071617650446237575398946184204296306006464269253871561436145943342804875156772510163534089412764455499548171936573265239015347429787336965571589625357796930757932109211020754714597534776613494794070925280035049497930880333757272362197859382911472450110170346838104634533737861042348052973920349395522581001994236848312977683185157713933774582795337030434080192203995572839902797505513092049905314452997372349438518547621821080161256470945695189549232727744123346586235840425864655395361850381679914143024433985114202961073761234600563576248287640235449141221166258579611426835365575416226389164233887148574445958165912285629888602345039337669087618498788728643773303038673245818706333893145824313882651009513773718694906084396500765207867063526111570479577655414453629242550118035113596713030467193630214588756208996572983728161089950167100211813047391544337201073886516761334580533574853040322762660281772213215723328798990188092458255284422546480822155051680360887840707117419180900317801746020976507156347653229596092669901810840217527540696552828183036512731868725859421871100966944826023173606835935246671602009127626498979205847543140431749079287993258184869061526103615844414750830872484039461110563463194485303251095115679505048248550189159841485319311812364463925378603877173517023271583885152708543612502156474552968832149595921337996559000673080145595088130258358321417368594006765002497227935454743353828742319488250383931417320125656408953927799615268635178559903162755728901402004362611247211083032314323708571169770586451884284969418559227881009565672884736061820701683455798802513306612660326509295932169575849599767833003528550934213757191181047959533307794859249228396657459151632611339677508851576240828823582609036414635594288726476922132184931395202181129497798714128061585028330931085353814600852767234684226591930833213365139355839965162755493067294733169730660509927906091116939062396532515277972067089332110438538948341131598350123763565341362154817113628815942845057012612348652126244105286405250463678434101797958595691028049092810854138023388299113273039268662266008590448021641316638139028675929128000688696552895597669606105753220040622966547899964530590808343520779402433793936829548256986576239297021823832054326222987285372472780448729803750231757132471333563976702054157901424675994286202814192738106075364527965552043059585327659394418055687381179930443320180746295308958747029416416620880402074388403829728363830721045007141783911351420420177481057372063517505391239123052752752362958616335190811389142344668867390819126916081942900727387998325689511110882166751561194500129728149832225074304658224771501787160441368375038780616515124540541605669399517847150410978584626904239376196101615878666275979660575241903523205637176129223222656463239089633047988864086914489316205351290656589522146093742062082465610068601272601220129874630296807680816222647260445303599354062938621199230966178737674105099305301814797252431736304504846535687785739967146371501570365633782797032339536893332826952528088053748691776288513685994952497542371616416587017136645375531079926713183804027891294935945880908583243317208643937542430527994949342020825379898821935362133409803934451077361442819468222011641171363880375774088979188002397382961484117986294611677992665474307096862336864893002456031945984942323963079043864792998208824491493613561701380649622448172204336035609705635545283888633885731444085056722607570257170221338725882753355776631606514282442273365734813328407925784919739278190588449166850221049079154129453484692246747733529085206221776516125371742941247150021528969080936322182235718836464799489080995191139791579648450787139764683670321870328057203299935144465461637016329707287692570428594962409675225661296872862683556573918860734851577473375316602945913780306233242978958554523794972175388855988713282342489131228646912015777926554662350148984130727474285054043573798218321381752029235436381336595013817569292629110056893296678101937179588787632354724493419341601414767864263625762046753400037778659571480880709451443345464285222457724316860077958554118905681386749645809153576111591564814821327830116328374306806293606187076499546626982890905880972242929886209617142330820163089670481335084705892470399285316789663740235238094900741129210484781151941811638973251966920397227239357370983257917515043025332296014124117801491851100324617721152870962996228631834286224178271156282869071614999137011915888933931515179324312693793479849864577526804529821776791875732709445397698823113188211925414784199534379080446617813333158210468625938530573679455426797956399106486705251435075701361930069529972314112206556978963448146936995206789258536139598083502009106601832827644236245792859236561409325874857074107217955914334302431015218290373486460486811068269073186503783710980756073932530139848630213099991190996212900659386302338625915742317129458263539646337962692288380473868708135582247413118127073863081516361003745221150374790222980203508104148406801747108592197922938359512616784971911151087284209129816889521568580539965810132599958564249632538936603934853325468554208243142974478433424996015287052625560086267628182948022731587487786328622790437553609268853771238616424827116068311351054822176287663143403289864895399715971981471612297081675550989352843929719892500029875238775202058149250747815131424626350261549830819947314176487732429800372094917826477608515615607754928831828733229227091864607474578073658997634302258054641016270123169087022723202663906618024571444023081734541415074065141540455726730410145160368738266236982968786804167646798817285623472975670431809422407335672217067792940361233429222214427101991351016003343978097844992345839057997295006006151653926917322704959715337518447983217447648613141791833854058834863334494604583828099790740825321890449115426322687402039152737237261988471576250965214217234135756388438207727996695006190495691240887167694435424563145945428299436945972725770791017922042201134116953210471067164869778604748049713994533322614767763755512310059053384917097617349307485548070558224790678948161426037474818211974370984246434530307708241731805247101750968365885670047134372411312410355550162174028651714380137556305071552902001639177199480866962816545052472490990295526652062866542484547532177060492518925570847982368694505652878402943566407476617308819694048776418225008860238950838047039629660092086472825751747085209201302004606195538652740599901127509666284401491838077333136181151666178540188732138601586550580507327673061767003960773047669937390121066805460126383796229508367387199159097798183131234012580913358322961045266400125243672957239465839216694019481793107180451099305277053425052077725004194919294344806239890946818569359498518187666205761842132916738583022153514730626937109003779642017124410088715980935555735884355596458508500554468873147326714141097128362354109273108609654383425869052766713506842271882283212832323347719709736899074332297042118567694436033619240607448391878081772851056857974086694425763699759799754771856833230003109109188397806075388733154388351680254408173221546002362334336703958699678216123142216645015499354426712421726423481439108857219779000396565434973131587472511238238499197141836080777044969085936396129254054551266309657191668069672417308737377290457009858722254205872394036485849183928667660024267978082386886937344997165137516850587093419371539038134754802442580992010254104321968430561382640927094952430004011967530125316556776574553536243679754933064336430039067683629170385213758469630520367566971496835955022428369922133778775082793128773725543687294513043403065792956161974358824841523299337185084002238022857385807963897962063271550996525352404181602037573217046323237332793660481251046723738522427816624700204629248716396768722890374471571223094512235229832163662820228225625670909016845277990351676108464423411229875663158360465674554755755554376943859957798350243066205674514747672249556254152308820756322287603317903589399123112401047049052396963308515982735243516732411752456741438134801210821904699122333244217813630379750053224552840754663752637180903887041524826007634464423779048244180156864613024483462361656636504224011289579171261485245452415938329859936028615313235084877498843050756734058100650625294551735243050492047200114682991391287008465289177556344913867583469645736911092407590303698294674686081556318866363657964077929370147001736019434785926437996940910561525214785599771634650376340653057572036491354179309600002928524304687271059634171083745212374959466457103724406436497673229206372293666497027250945412358548195493868555432216678846216436967233359691046883284814931459201539629083832919647611908484553235133618862757998123460405035984116992559342981142158792388868162223681011865852669403268940366361383342840448654149978140464881234031988597990811305842443653456992162334668588760130730404435952537520504554993339625570002420377611465525303846428675381466960849097769885283994086699584896854337061183247015409926210359615728031309703336323753440099268173929417188511331413828426864995472892051709328893051908812182241870946153468960790590687791386904839286496162729899701149290639527422352012769743125177438738464842030123389679221036684550470117238730934959611312490504761316379223834302558015389287275019063929437810554514052026229737874150880562702889958257351886835252822779753501552586335086407549926540459161975299361923040839304014846666114820470188772633858502184651342826270132945653908739430673168931763500045524861993900000856840152544281156566464810981296779373459155901606622715291859772525887220928647563221343313276341910933911436521034562138484002572643752824529050288921739177798380244702991944094470250340677355368844137960045916808550720069656228976473000656098032416536680890908700574147606083121088473845900515042615508431840886918074697405551477416882817247091816308660698785194308628484529127693011335363060976759526177459415816117558168448798869977276066235635578973422273771277824907851261782318062058285976140105511556970564931229333090128587850096892487494085934394927447465090119492317206130438436913768308587084019912073574990075751331314786971669042713002467072058519498947466813039833672372694177001521050633720209878169049823259986971200870832914360170296662604934095787332177590462870253330643957866486815297671855407951897495025213772227390026956169427408678612838633673129521922758485890585199200772519615426168458522769807429139959489401089470599421397992180506091515823403438980195273360456095043617481209751259248614140232725012585129484348388921200574637253226640964875889912490933719762716492366797241636944404843034471330368751233807461416038245059871221890448307703423571292760584479763069539252766635039049187566315377503916147575813811367880717659141839938492470461328844532665825352506160887294641818165893831079689592716452446550931686853737526130024435861248220956062580394266536747150443834736273484688275883343929202748736633453237172999674974943404716368834476104661192342427937538755074196362209346649648871232045250595637381830380602825242404353942577674653321110206083495875756075725485779332001093072526133842049276100450207053592192495448470665728866809244581791185685310284148300273107579173182678449066284137123788242015575080719925834419789469084321847517498638594238072947953681493586038698831496241482915340469929628953437046074212605086234835138922247685064179578204551462067922474483668037754091129286522104265288350596942941088002167984798517503346542827421110225270059311765818767533034397080636381503229908375962981198415258588988069933846696576447545882980456800935057598597295678463485630377004712841053968460062829774952366952810150350748405943217547525047797833527713669933307751613122332041884624838633178998454799182031608557102075713381359143875784703760427990406421101160566997346140710540114425751912442055581004251330691293544626709815624320994146431189837239771701386810458440920117130160979588208655847226997478101214792335873482754743042151274179882696416917474784464455425272374652453541551518354111831363479131156636437162341543655597297966525300436081277884082880745064908116654588496629268433393279732339291985687596971913283119332859945716072373401391227752268165870485353750119723454548866252192072353471566785366192625889648189468809488708913831932449080067991623421134250111379187886444931488747419853938926681443247754726667523589185726822187885087526093820094377999604995300242533971354148777598144309043564776251489943323164043082920103135117206450628669832211349272067326867921030745187868318153539493724589056893128916309869501579645572087709593543552421586176553304743125368757148527747414867372912162729488104121653611281103950723324825125783396517912557249409342457894901621429633818031977908918927514694191543067676680249147527662222449189347892924070635905361352726640112491336650900136847664078009083038152332867799811296856235184729598577984700776970328983645450988168388627292838784872676064291271410801407859138478535485410411268249984035510108924576018987738153213762438449448854007363126861472985677445890668129927395346022420837618300287034444002470634937659958479538222544123629667644729582320537149349992010441339543085402621761780160216564631813190661797191020292994245269800134106760393125055956241555113901688318147566094853453252608920973971504825679900218752500919824705910393501319421421773616233912370168474039989777750532207386901023575217269985896011271336598763526636979370378230647705424305562713266198411192100269217609066839825065394509582760845713447829766720689016865623146798824604144390158365373810161470434613566784844826091099787182817551554205719228578974129943621591946102902333651274989317540028426556975354845507455575836908075293170620479959370908519823721995019047775762620218631253017938412732315219206433823507969771604246359318534530775871634856958601880741087236542478440543246375567632661419338971165168316199757101741518249439733992367315865515456109718875289266895240182038314725710695470633848113618656148927902864946970562408132676122962940716102540261962918368800615669807477655115732520033550981598862449599934129260161860185067271036055006343297996673267504836349667142094887680652360273230610524735629896826321951757920018301092211353362536751239924020828150483391933876605666648143851307987852651842991408624199779381701245117176713571494107021689305562197322853682886219925262599947968954126015636760317072916506259846192159722933620885682892138581481540103879720634076644801029785813180950951896290556294081982613628967701417364621418689080890255430035662164481108845557485669391243008470721419776106211346078868792572448462963913655764094969694729127914138206113550791808960596398542708099398212287814266139131566755989627933985399477190557825191416375608994126633734510028140779902847380384415607718921978908794918095376951964942936088704042481941007031191694315679273999462381706030363583496293507799560940396071776085455952282230308408154814968413674079043118798272032549436094577496797908282073905376100120758749637644665843691851155380886546497502201871050947969548518976640573823617926799890176080989175829791609217399223565974294711299251038144953394364470157098625388133721993081689212696664063373269705447923899454091259790641926842829194252828081932164301128470889335257288074450431083378617349660591688319301251307313956394978490419926879621423189894228659091565851492199930888240652063344840937072434930563917408371522906636854895835631726146462104967066185383116173651947550497485945985377554899618349270897533277819553089029292582585933225049201717352362276013287876243011861926650581593228117914793229033689973032273116231521608190413793271360226873619320134982723762134622864583535719683865435026952812187153534675303479657928773879349614674183085407065404987914189738768567020969532430131216818778542765286218080985373718437366694308776624909685441816938909936178580566130559285101106751173732700489034520199953477431951277968017950866344009798974305217688314592238182123391136583885894118252521761878036149210767200422406194217658611049918721780788987238229746303346792090328928287143156411082990562470763327864116977976430913672655174694702884275341162080779727976095221293714757607502091791712089209920440970018376755938501815712918081754266295163082750969351836957964762713496909810391105082554215259219333431058741264036497409480826747236396697166005483547705362685155540535238191829920409917080477860979896823344167022954244808326273148882509778358127795889145544577552761473741098265209668576681354679243595757620319077712807849238685967059921330141332894627185059425885605865155841288692093741854699696621341004295110283860244341366964702998358155794303168777687674969728684161978083745477356114167290586587023338474655662271618886311561111384052132219352241369612418301781957625989101230626942345101636321427352995806960834507893472413182216748752679421636954746721891496255802276490235311366926913264315594866956122145963280642623354329425222366548906269274134727248557679076444901321584941429046716948148792852965093181982455483454864004393333786270306726674256550465099134625000756948676175056590109343357996507324327418965617871097175629328105525044575919218414347150817407727065114601082738033693437782119509773398852475981226739703537783440381734096661694018389984625453172867244381094799465483340169021503469840029984259195941155320857451837958024983593178328870667864869310112698236743534946102833692142160263645608313155727933880446123723424234127957438431478111461994066040887895385313799284295249567650761584240993948928834217772480115565657443520638501561872055979084599976261671688138031709163324962046590771725878087397105800782527868312540508048452400707150923199734650300685598993845060917946280590449949018896648308748838218161286783765860428850572626446707129847082724685855242002524919072673388580381609380688257982158455360391957164904134516212321944941442226795407651021442206628495508886658904234851533328681474504652956272050137592428852700240917115091741312852059906070885608771480052662625380536713449462410329012037654049331700160920311769648426029207331867451974526363057870821736272717187178375213841832427258511524524908752106512024670897699757014285262087365312503684209385107507893240250712989856262258401862608887473284957758597053585681316086636869476400299686512174120930983391635270999677199714528133026575977081887247503536976898657755673988983959503694689023849273800638270476726641931269455769150507711961858836565478777949511120451436589322300590705394085406021635978221443039254860101308756639916332345405091142206163547162818657461172360924448914102999371449505540153117776126117745081274730685503856125184040154504729948688347390405448168439127103946517350283894231514618519129676684631537748061986925946879302663121924407168054030112425008271108105283550003914656822833817202461714187286979169303875925917650374897734133695205110896312395619356191880965779282871448374183138503852761127198521404840454202374352180212711787329493786780372262957064130341401001099184719081618696998506167786108124732704867103273550372619582325317813823839921687187934643964162347806149152487958982179172741654491097942277008992241337884157886455526632282892370955633302984842937732574092764703608146002978214938675680893968630377482862272007846516479989352280692769417786411058791795639247979353675833680487774751438961045680148454682069775681970528788510001030154395213126577596258175593100867410667133839639254721542292670588386832794527203105196689555940559060503620587696329951984767587412267021306708486390893043868562967694787421442313315728273772763124760407217878486701260120072914511505534273956008805192837292198810471242116910070728410870311123326483471828402696757075232156534504081085160784743430834772335365044408901682875998919501346198858420900733403654843912988864633616359838352563120028548888260866211213102519340156336911400537104775574084783986292369531285477940248516154754721533475969164110194966216857459490205359348481885476185683216489296106860210912297707153475009820767538627609571881057052760830075502515126985157650379689239638112578129035674728781375908767011918723171774016841767627436252529333654593776174665401435776194234610651767617374701999116984493300306901388033687236305771365914387519975006746996675046835870573356095206364844914813495698281088097959386039467140870389480194928621491877477357474414784454854743956265650682067608037774172426240387436443008584413858336408359680282578578579024061491611573001599841136006094487671418942204139926386999991657960977503492939998049599768444508800024858999572546744891797857034220775645524912995293865808592909503548361266404847211883670307136299870867382903604916545404319700291136761726475690820478983844676697609066075813730395952108401016142146531954415230033377904864027847760422503249979004110516696170684333171831277032439803068448653177000251016520650807989578641275555276799226070489530605579756601894773889309030660848322068059543147291737378164296803279133015420216865280328445466896017032031207064394686304547251305619876189937086629184163966738419585264448224783539313544495324612436158008090956060890325836767846423415610192577959654808624832800461705472798672994629842610762415828921289756444806249878397596426405867123180415070668547252954930212476312833786431608295526290740632406569484921792415276676797482077299036156955948129579521911778126901515532596113641437972317841969327866271995523101962630648970370333110843907117594228300920703148387446743084853681761995431416538977869594356026796327052829655156278366178487822802920336737521052674594364726286258881519438930178461247601766659655759721780613625061846577637203657879141403868767670972820046833033881642647650762049894887643827757305119407533036195143401654003197644488025793516578992209940663884574121397524444391284213472764187774491566539189299429206810474253333930528089890246804777529768985443744669331385622308980585819816363458371426579577405576324271351540687075187677799638207247386494646338823155249726149691464190781152067064266715932240127892242213061758422356358104913493321366263002348880034339998572874989021184610602974671795204647974787889692645551026504761464940400355360827102833243926516656781379216752502995917305112489111088778079290378996388252948415178739867574195451321822118883556785090471844973413697397147014207711306109124901216345994796931858059185273788302639418634893832521353091052410460998695265819328229090529905429216837323441637716382643745870856921955832379816455712102102696150959814590816862024955667288531001103598030998522828010246733396717747948267876535577131806785743790515029205995370201739370632603549489391295079173087590571717739338507933203655654059822448970166220297684667093977178884083470460763298362724109868160057716780970697339207588163224261453888308708678959601461550147049402635397882771153339145840876789517342605726760100809646045806481212810684095987225761688376177850831727210162347327856264732661694690233130890325717443175194247264215295007913087147551063705192326922041560647501193029683144038635538622664003341415548761415844215741121608207826096714829411118287344325485996384388385458526716895870019780870789007691407700713052411410891434592384271628930297712776339488858191567706528925258614817677056194623176580475540802365953006395136959581192260083846565083989125864197808760885147341968920288016649535361506268836588710882555883848314807173721594462800375882835532041699863732554389033752450561034984627549587863541189395520587891747909394017471491701922721899213261955660753693671229183227790603157020573209340807362727708509466321562371184965720916720338088528044407602603780287206974268677683743034906047327307883191293612847924675278921225619109689398768215763396680896888128329195093910450774691665973957308573690355946140580925454590957747001473509021169805562192089906920992425554816757046670471489710444998312891631515656733235545460892400532353709967249486375223637019856789920751890787222972857602453556326721219092938473430431455526525812217118155351632003042461682073092090752612814259014760354755024839979066017911889687497120904587285779974263199372330559301027324027563685149766608645502977047313777266439999926013124843822570525936124370527737860461829537146788046316911448131889229042611248634027773975446320069846448603261415489356020457459629458598569672285430178995899465942753739862842417348661920057594713151529462809610910922842286073571706742606366747697234480035893598474355769513785677067827150294751715618469523619519078533866947552347665866153599491688416132087754755477569098238631208539466239195598995737565704647648504066286783455967461119188347580440443471762445380272096783693426404541794551611662103732694590564318169179421672764168221852540673229603649046551868545790830312347553975050469232481765471732673030126148827431232329650622404571369475190236572959866674169357117978041001469484179349171175511776502374884334332609871254647043688922767177628307226830339634270923463477181775567923757134899617766147327316784341549291051686480058816687410328966643931314189035049370332007946643256889970988194485191223639404269217131122082129906267063304120656367275778887982097500144647819577377936994799810010537636994411956114882106511387658810769900621492784280309309234597472826176009258797117953834185404592234930001626738689537364856426460530602311989826518986846438675637665865502281035856005775955272772220202675240383501842042301076845353033356613596114391777390060408417198700963115238421435473701753943029677113826466248522432286762640690813335074903134269352024907266946844486928668579025406471041059037086924799978197033662161212477356479675276301896065261558722174002301294177807486374881292664769426549172899696606182889971311572461517736001014090644946696419121584279386127036728192591140987216830998128576249617357756413776488757550286269096278498294020735613400632848810507497749787668123118002340502636900375691320672236478435317058123843501433802454153706915863024274435255676773287655561127932720717809035543511924970489446376696126568567290013354931969861944090622724354020793072555960611318522367540551626514616851722866093520323078120225890468576357101157155746262736483411929330028127066864286437828827937397160443433470105943430855837115204275748780332853513305312462400792331733426233089911602736813940807446418119894730456378868406511581689050144334568496269044087436486903012263964818034761831510607085564863453675456202098116772740847216671290388562803832887897327556357118186348817306238982240502121836351991474232146644871678500197153984860313658634598932986858288893476219960009426246430099317561420837271023243733505116436510347414394904759699808750514925671902064893216115323986367998216819392023930732391847617959762505778494846766991842662933884294200909322384941530909262272780868121870838576733845717700390172677688387257821427387164592066003761805336109561833556571943177416081978149902133050451784393642843246492260097946782967153546211075779013712595525208605074900264847394862906414710778044215120270955702309625234507339705855618176254374084333457079401604123522615143259450152835927888539871033479342937515345337771317871081231251413736204037746671139661904866549739770650151678139527319831723404048980828358323500239143576865177382003035700445001693935644748566023715826429501357720098512166119242307149786191534553723017957958959538602238421378122158189143291404315682428330432248125321109726116784354724357381458832000346343906009121211693694613433048255400449636414169590955131559221713203301574087320669965895434896183521370080730096868872573451700055908251711797734433241142368866897005911648727280101736515533101090132574072336062449099648053024185874611157942918615242270102269089475019169813103100437546495880475881666580670643006325226943256504851299369882768486142701691895360036704986649169625525900104099126427052280841874390380658229495742416390295947900140454164753373531796359790754008415607361476777600365006356952588769957881956972992276412406556344784796398748065603470263972095059810330330720810723292710908200589705424108894475918347281315595505239455714654710357296127018246173745211991102825248578369204706044464306587641950509966673364334339923400831588793401715894463912831328746521264038507654271535669683759589360560124133290384402504971164249261353350249517580347032744890430963753593881477968719409615922914438308526380280353135490861815132443315592163637775907983549912440673403098073684196016502823538622051884205853631529170871859747965123626402083839521869336962848457207182278501852471988674061146573574221402598115649299782229362828160818874470543776405717725746174489016704376335256266162317349490667893185984291589747628965160685769830678485484751790331661655215561266583346748774846465857626181971317572489383862207646132696067158954526677005674470559685160689025886501180727948513830612545213388488968795829426473715027288250837258791116642686856507291601053511271023169633620874874560657569106968831376124317121930219485637834409976185388072026398881485173898481913246484202966195238137559269397542291591740615163165983690142575324169108903030590740078576834092500263909910709436846093967952188834549402897975115310172041040046833525575054034225561041866142855095705900904733569137619482202701064395406618131495048151151972787887647621672834599482400272673771198116855736125554500134837723671200090344657953454498050919477150936770539258049621070867931343752940485207157783256122626741427161061115938300217298251768587524633473116108031026765421907012062154622924017642764372798764894893107163349255824936091145378151535921712583998983047319271844553990295090249895676795314583413254769798845828235354596186924341310307543029067755040135344334664167422386711713322584600422267052079161192521786624700974002349668873502836644839698942051475485220153012678523538821391189475216953493585358581631924023618652447558126351357417250078756382043804898571024405833099304670666542753980707937003921868282431099463746437543502272189575268739210835052831646544802274218109346027727639876940421930076748012737611222910690858918292524498681457682471692837166537817699130279302440128479648707821621315268701547737481472061759052396210562940162223859853113235351402120187127510887032566298952688912248126644570276187297681335123600148444497351579282146388486759445564802049434904126186690875149303743161041877125674794724790858917994698469847015892321051976488507259820210843266143298180793471809240002972974523378593644204528977110091331416314943240057422521326973334153475476718410288775155873728221200579666592582269086084983331501743170249784295221273077153379804948248336516862038892752957665212058655041079596056388574540067479699828730311309866599052758289026869926709932953322697026344664766318184336087581707060760909196069834176942899863292609435528327942727821795615892463677563703132569628421054879114027425120182524411952320048156387757474041221455738088141300098138117721666288145183838940387375723970692914975169291505088436523729100437586171613273156675740384311413116335930142272783040235603491171255363073418315915460052335818485056212315201210783802682592728726410242269300907690756066204882597732700533477488382520075314064334217244278596323246541191806455200446945372052125643507244261967246219551416445870598403121438591274521948979858139242739093362408071512051771571092908106932487887404169404112092252235170367457789772816329887384928695858648177646087847811632041332343199718384264371042723009887621231206104040898664068132297061780129534388633870817698298396976001501403733259383117916154982669367309416224851225163168890264015134549668184754875659852228417005467281749398812484644966553901571413738541013202737328990722997839599678839441896831108904859861699716101529294294508008445317906039840682445910489273646339226840088367160699244339773661932854785385377558420401547211923648117445658574169184017516989257015404548447805389077416658834803146915967897868033851889261231975216087043284667644990462805916055834561478376385744245716465872665356919541505352218245035890707642108838260480953618432451184747609855645363122319660002778493558553859093067903768203523342573344452068969760746608686190769554291351177319813587226891833710671160337770338469560381734006933425685175903771983135435495504994445901695574015049800878075961280232144015224865196325499405379137679882175974320334657976721912193671995785258232221184661248308468685491837069921709666113391141404052600107232913149813149650431558005489167133354720657816100024701092716126147051779923790332196387044128006792331085844823167828285262359246072228653915195100008714116622091597891578526669813591797239888769625559921218208703792554275790404836464588298990531726996471031359936525787445706705227082734308430074140884559340936366277458385652876002844205537006689856514656532364709162699360895869007991541419768065452412434942436303179524779579673850483975610357970726249748692411045687171491591680395099427818863113229802222112315164653757919362388378754512832598559512542997896553940562451519083674542992951392161641878058658402269205845677830961856152508966276380620044090490131096825549713962531307822572002355793335509972143480437373746192443578445131530323643808517432893347879603626569892238586060101849211508314822437070497439647962082227236171512948270802360159473802708259334106480466573508470232470462576128442072490272425427898771789853157600180841136667298791155801154223096901111811023607352647933167212774945073076740027664283600113403108423165918922176174762152664400424574467114202551195040359825760094637649541823744001134560283607094724489189215949836133694123930533037553746574407297676206408812017137145156056071004215546441316269457993018541523693694684935189077106480879219048135506286649949633384751824287163363302937984729991078120428981583903951779075678640969225860821061871276664132494988364618139696051328420838443195517268977033340656771562936251314796984643317985199208303458525358760490076421506960254408624871531031605500948632779554199996250915808511463037462270988281179986353824001531281731228303057990502881891456678682448112807764911719278269486130079337149976826031513881905517871967938506867309964877815408327512612097298947234706436660098952791585172333860919578446000248035422707913026572872814085106827494215621465730022313502261376864947803199859544480247451658269787296408501034017562608558952388554777935147674846872446842378115914919756159551321826562832912855893323431868350970937805054470229747504792878550685033692005140290854132071683366501508597047887942365019588112759381363535198038552358145358641333413943755847336596191234947065762653677020991744939828805257580810513356201080415434142922196527525337752854568253798983494643235849514392512758581115651387085918905780717942398685465265460276421941747721829954052858891236205359602751114602121638103098893764412665241291418721262607079415501500701235341554562688482365172500236091368701458410619075341725894591768553256800512356403621105796374539263637222587313295859295280878404073431069143450698757870004629015588279817055621652148389221732784246586318950980819877235892146629779124031753066605152967711832440324729198698833634712500444834703570944696950607339722387437145717843331936028927913203650764224219707599861187672757234038833324631796645660723279125573052381187498176467229262427344932213240833442641478702128068142606813212940590519731358921698942241114643576692770538258561097717870684495041158255689069930863090144041923597333731868753381141217571465753717798540421208620346764461443883857178023679501472998989238869864659193402917560317369418625509114162312640951745850305461445439446645619130504401084401251330234863734016882606202336218287067943281552674210788833404926998819382925112216132526338692497919099570081486786495063221553696781863273384789961945257407905325595716494091195484718881219951787053000262480408914687690249828991551918436636436219406049932194543741543083092343495339803061368664125349531726794551863563364410301503594013519640653744848884820281913384447605553310998345344620639381384107628427717226134844765734401590179632767523297679686167632091602176586528625503390784121500467706158296845969125625739154102823473041913528550472801923011242356778503920480246926648312822294946767001746507087919206717224139827200233972256246097421435818860030091512087590634074025845312885782479982600481827369818168451453828005057035969076756492238604243497170893063115181041599626356483173270648770266682104241036925832267195816486932438083289729982344795032559927878115912379627842142579494945011976756262194557952152440552305652576906499158611346977371392117443707284797672290404675505148092582651417299515111418764843812047482680550126612169629046707340954360833188492076629252572510710528579708178398718379523465360878567435317050003249784555483332704295686518035197088048894526694148641203428364507258916095650301573331820946295002279368105574580386339218714515645070617239870084615997618081088361910783338130158839527083830104361105806626303684004222432978761215057590179559164692692788958529697033541791682183336973445091469255700864911824729951774948604042899489100192650726465528404762098967941456956841960972166396210969398226437485755268896114031358146569225744432838959033697392337008768224687080107524448120395761095188952530589379742457626934184390784272968541557562281765483448899897639075505538011780982720406608268940727582013477825780309136819471017338738164096487118465439183307149497113085146974935118144348706149552375359859110695655713879711565167569084945268337801185056371482711019093631585596877764250290189992470712324525369779152521177856545407547366528294241290351146564367760179126543633382695498481992413571176975708032932565439978110807241359565124793109534243274532003716177749937813280447492637880598388825636087322759930641957254011451363877662316663031476460633803180772901652516146182083733209067295058341186807030299371540175250538574122331092109251026129499957635060479677210629485467960194645454776160120184867141844245554922958213504800610068023793012237146540360410374942911377208858214163860864594156256700198622805232779054014671488155082652921262444940002609206246807495033676313106794067182139520030911615927998402581608518628190139923205602657058704544109987254356937029114137769280811805411462437106444120142844300686332671063950538047518076570974365281667799551134154927854863545697290226695026149325803312920785003333461791467093071733863892102858777509650899286695392411071358792953927969061682064656179016322136040027456410819050342108212021652919630828941516459463453087168678449512539627278485517580834253250042411750403940391602425458949794779854566256233311074574117033489391356099076395114991325534256641168110162980575694015481686505011603291339318260586379393055379313262333563097016299547984355317650541712951222215463264364905139872613034261541708275560656649337263415802131639679766876064506428349877029794163110806961886401159732269226653675584484983690075930993182389858424938893626054876288196571516878056060197059057085585014412552089772166765060686603666380079510597166123608082337550631187353143138706329919736668002855373759114079099324947259600843606456423589535529212588112227055627083000501145708662877228589335584582784905499969273005550478811798586992115993212930606273072228688661286149440145179003920409510775112899786775184733101618106438986316004169418264854587585695566541916907396958700331553530492581915759995386016339463004098730302280462437811741286956858647590670309542912966774594120388766699977351847920436197307342126192905019779648494460433268296385600975355639134734275302814572630831681385194993196184937488020521102564091032248907911388391079786344291488481214080516479298222307146995180262878796053603776318272299833644220897431006177690875400604609874104234333091740331242156913221665516429674662983171506332423319917625799364172873420382571410204755089779987675763654061743024509274423479802647407165317224266383428950958029029625706282389825332164427181973559461203308393810421595855819288078585728243379263706934825373550979578953013576718675869460265627747491649471839231977679890706594267962006832815578369070789814995702592266251940300870549108828956089223745491759723115609530720406444405230480830054892801295469805957599836307748641369325821153563217170264674100665779258524336726056070466952125636328104876726395944973896852241670390897264584674845181229686914364511555686629602585159663017769058243514323803436038033593837034924152778340814214733912776470382857038583495593949084225864103387255402806551843601344462005803456921117104366680198293397086019809854372572873227187980807852845494179522772940744253372880144517178438388889935931285926911964712061420913293177600809881455944860960496422565262262331731743260091082713585860299805143806750212368786322184773551116697916808548595153952268928189889282913853288370663804789759176977086713947395802255602707260770363519425159754629932902656447997898038169493153772144490282190552380564374156219526896224999299327305272782214256647519577323076156461348161860622068849096157107659699285256510495643457934099794658014851690691284785214979832659261949882093408698284114762101898465455406818337368774737254283147015006887066302541787855193617888365388008034960484683548210363675845020796445960706537824779310791225199234755551615777839690504929587272811713427236549303619245152920692423804638538327805733257410644155780222149583364974206924668470236238181917186257958754439494865543395488700106692249438990371195224138622000799116558868021035777743239376743271133480435180034387436748621311950945196454967054252864791876115385497477373491470344260282553848631908158453731016600356646322921800208440688315025122066198169774686023339608489614569125161275318485146445522956350879842910425875587257763129484273651992486280876255237775752390477100074347341308674815989195294427673781233245214743628625998280970835076373967043655085966551826055372999126145471399326424413126197043985900393501783282742011347624038563642222580040538766216969432770677734883483470536719963730345307748515196698846429464033760419486255805320492322036727238150975566524964206582359549525355720932699701517914381690082262558605686450969960769456688367606221055540453924093958341337250341069931318602182933624348086257918823205064269451693894261635444578857799968049683622600262522559785534472703731801849133985965829946918162515447328065865211673701830115550192976574908662485175725505172292100817853797396243546411871043318233676209551664831911941544795249360836858191998954025926266218107353880381078045750248627652566125006453393328823619410932669689917010516768998404560488704059944463986822020276646762621336792096559478141910579997452826758170457765960142044396187733257764347799773973513488357748522778501697084500154791657910201882272013383712310632085138823714898411086121166896418273969779512537884991763537472326259685745317874916690224078616862335036395674112296162088639558975971909920749682933779947242655941604351549246388415433085662211810057736631958748744871620571929473004707276001912081057922826897299064022280314235322799635965574707314345259023802929978180963558088787486602861188660805307434046045285516055378709681794158568015363998936626620637609428145297710955486166627048628721093702468883715829683766535429370437953094719558320928105968029191209526922759141708305358768402293886526210718334722937262991354242073550397990248572479764470664419964501403802586777407940429423158898097469514711779321799906770919395526363900978093853923297737407575028217890545197154265523781517282772610645679895734359844293147331583390388404753864113335485124696653881153609806613016692274497649768390873412739355798460387024844889586024102882408309083555832697215907601387994388959703073080383489789039988728712925731376923030682615939625441941191564148390851937329309854160398154523315006943002025279749917673710268873135804832210328708089022205388519355085749147370749973386495499446397114580825978512909283127278884088729542015101062039560658058672963535891228240797011606609527234342954137418500921845915712720236899944479207340878450365338657662635100474771658647059730248274696335757060186499927604884287573058511858887813247477978879954177761801737431007337944580636403108022691494367084406669724797258907010606735527256640833113333167362121199211802543900503120897578615145657543089528663851787497841326723855306358038468858361885024301222774556105375043920320953404461938177412598610807556615776647423127598263489790420323341024117777211910335924122077787309659346433441119699506288294312994917205990976647342365198473677836142916395771915926241701886029672600906869564165424800007019382972184391077510196959566855962459024205199149624816420609074739422227360015277638113032235458779695869978857687798639701743654070754548013002184611968716039950606058073338783734427958718359590500089969985634616801190118543927016774922839916871291545873575654249046357647285227327409294360282887629522525267629760279414963282056979231159815152651275070171828473847665983257218677950130048232511207540106541718073524251548453006105416770689591601239023501030556666181676920878507975352264593944087812059990831370762320739803507528654151882577508987883566986680576437044826496005941807976130375603391253524526368843854485391851633815528705414840191071565721429917368567754398567595669950470284116848923147010792188413670155760568145578722226862565428539464500783977635624675523366584141025503999958006697361319759838833906155581271025117072822728404702268518128305964621056403847757491016225216336072562869958234524038328038203425650789494351145602665350289834762048536605485638385574351666631889853704479303393042053944580635494805828030393214208950127950152133765024461390624151811469911156727478493262943365690957227540857968307168262356637223626317340593090893923317452611830673121038865525260697705513265788317104382887627994964156977375508425776995573860562644885770928710469580076765924918901002853729096381710563825999138328337424696793165020899443789486864580997515649242214319427918192142434072418143976861216901253621572229945833367241207617138123255523222899559238675235846314474653667478149226093507694005856953096117283621160308737787425344063774530599768788012110717790072896158479861459442040971611129876356892061072479561598992373744183561890771114135556669402779608946302461275735338069998450011231529377892707786131798513673847056388970541796435332298085502641521281898081051485644821962648958691210352115211205850262643583028065940097580717987832171839190022731544547971845965352029221623053119525077625485410920615343559303477909648852345625720594793021289102152774215412534122580742727456625430009914092531976121706428696890914430279762452118568489475246701148741401585236975851505309902184867115389543822441511547618680825927891702568957302755103402849900424852053675442034663947660566042561209381898188550192147219028240727994579756251365492965351020030510002174447676489493660532626925748846199811985285923524142611315678211877200989791762887260375059904488786080921074247776180132148810499545528656997186278750660420518705462504962573416454154684445698968378115247448849963148803240722616673653463327037316578910338730833748209140493593125794539125154320174492472130352274620198151153140366210082600630462294131344291795931674638924615590188128408009438270097958678135458632029199628855111822618684372534987647329555678939894628760566523129356160523186958833084303360042143228836794114536745048072192330531245790537192968343646488187544704867661000359978746172413255320524587398327349729024060906282624286979152504093242283095003980391189016714262408622641616058559110498311140616949315594990324909820445050771963966096144000586999030687642141608323229284613652173814014451858692394873255042775600385674634712608433217587868214913000529433862915176987185384426353057489781128888142596241718149408527664807098564803251501134187697156004619069620484248745281820358720008409725210112554159786179123586285403620293700071199765357519164347906276295220257349356595741544987204745873548036271090410040068325535853898670796039401803502251931219068980873791758227931428344628544558627112900177435949278108134656006961348601444657671697679610007388376976089698715467885139789400934326803914019213284514934875423638901673697205068107220094151180945394566169300452485800321339250925211478072852227343416839597668224042317206231247775396259695814081225298868614962754530276000954545582850567144805206526856845399697583347775547724292525036930776278630690253417612111775927774737428599362238316142883143101925113649918549461199191095778760718613936012571355850827237176110674636995689057816081448433697823755395589034122073670888233791147516342405731912588354945505445488000626184942105510821016132331080583734304893830311075765091154083134742175329169033138668057945546567435525641025835823160314602951972516766667936004409689695502153809110103576245959792667740847039910894888276774862251789519008086656647114903457298541120870382635521617700858305555805261836800997789787785650303017225098598417880492703195311412935756130107320961461104665229881861124394022124859874784738673328677410619467300723890353887759396115985970459626979833997108430947382793083087308459875307004745921513266206059624242730905637629295023676074096559213030315710633600411739994344189193522466409831956953751680969729269228945269911099470024032074989851720614047714952990874253458914250814754741198092764153233996828065546481019177714773678020897477980615409748793257879351110538671782244394056559159876277744163940893669215715596517820840579539035945291111060968006622375872413115644178423408174775122744620646359580917518937095266184592774113727658225488597326374955954331009924730641725650323577991530707899296276610862088779913267725743164765914932596478582703177481341033719931158138316091944768406072920465812990804588420179399835477005417985626654583153646877604252920455535669160560747929131296114183880994121763607394026687282865779089554057603851876006365365839192055080234297860104127921145093494880235678542951447439807196354150025470039100123277603349622976920454104421841467517934866711854911034238032850623985383883308299763083309507711057724392673536661738836181260695540302871398180878039619352207207617360022926919247731726903956291079452903574061471804953028747286087706834220678250722998148349142255628913992454570483186956452502086752187750116573778763647938481420230375131309088040866037504946809334399594361706556631568812897823496851241609599880073085221820118836323656603300030493332298288292126955950357668955017207522601599429168568559717673582327870378359887385099138855952890363105093857812686605995193469729945548221374356714319659384859419132719039815637052426848308678290442394604569899321343012680439434154206878916376785215695024485370225014269354879159580089761124380999560358901152296502404022530238522713156201102447081416046894583738411740743198450431852005214611541389860789642115588172205638782218375835605413464891527799425927274437009849438903767371520443990777716252675858491925840673958876439604380645640778874468640987982315223532893916606982972796151355103709303172959042927580827842881224998604770905709877183242858924369086338383388789062706623446426294201701393924190428125569725089816419378225685989664571106399456999770560755180871891124954502959581501325825859620082124553735486911998214946944682356919591063181485086911644625712501554417208692333044554232056534923270822618956605885529404746073713550013899362048006283260303020401249286203134836062572117140332228759230758004947747745059729715577615288645188923557403464593003901137414362935949845859682029305791998709696647147441565358740436835566903907375082275134969368258095635273935903161869666601296980540867232771722367679676382265742588732779255910342353773205618400465963440280687322221822922041761832862505432955061259994319207704630501869453664813766527000611480499877223368058429722556861563726947109277881546955974848936232772542853235579735111243464531448977521997268037776692747240719467212794273331299924327959009515181447261438161859521365296998045080505145369551153609832267308462893038331073152410595489552698785222207146462965822390922934751266857799565746369611941209524885960076162471646063757476700005196772560399267424380339349531729721506495855545396732146473627802639999062231812617016114434628292017301176841845934455332208605119266182995278969933925678268960566219674594358126425477290626219456342022165005082039952531610580060556004028420780160653718167111221514853053473793088899337135229886580225724738300634615055569010173761732996209084628669098723720604162410763367593780865592332864408347500671292964903143483589549121706705788598432120462666156214803083023800874267832090639005442990996400604818156357937608002242221183979388772813551165113429362181059781033187490118159020418063819679578417852025351306711715512208311126920983066294375092174002447845092229907707790378327829688731339140591337260336773180961989524025201883892260550958824340768532769447753842435235463830628352918546585157072449551591014379508859794856496909930641881641982738846998362126333943196196651530342192479757395364995372126316117934782658735115221568561670797251246198016320721582300786924132152602471150664796682075660695703280067813958427532538819775292437263530729583773919620052101909454934587374496854491832940202533467463729168691213405010460093413012895197584938840374422971889865996122524044425017424214339550990815215261603527019718891260263264153293604813958704626918778008242655007815890888677065910331592523058566891634608728672787106972638676782616439169543634931042637537548996147827609625990584314976760089888067517847796952087270349421327426041941388560068170849119167507515512241786286979550888702558604062831989559254392410070459908055240702049532524050111581276711670896250739831216720551313954233221513819454016053842158102454545124364623397816036246732300613899745486243915734521167459753590933065868284741307192121485362098262985593069805534964337879169527580609090052177323144006798628384305868669393499731289771473414091069856583439426271941021167500810942885092420137171241153312268907877683146047645552831665649672362699505120601880133389222458054996961657943063925582617140897318651802553495342957348949909791698467980424346120376798529680864258123964250529474746253125757547674871652503539097480036773012853251544151823578757623162084816004649987906331586464232667624308516220664714742350695427788418210262097974899640517109816732657221481930396710414381518424287571362506546598100817655721913985186137412672594858451510284230290683373191359056237153430080398705937018357734131560492621349263460076914066544647761569850420554561382082432372474226060320535064119743779093564908329801253900882882598535375541420236253073023656542311181524487128729618498682657430482658649343804329101453467144695892356238193494324430756216852811891576259139681355189526082587471169091667975271620851299030946422645407957227638960554449913430880191080177875968581243209517077840096892564396017514136697001900041639881038607146367736468305122135845814106979451628186996575055009854839322449514086064585764524447165681277251641250620683795672321531844833495210724495910871926748978447140729598878701044578184726127100966292796963886617600018867364929609702968733338735353037467744921496729354809785642711805990049512057991419290360233730175225551784573750585726803053696647895492128436418598109202682113312450940794869778885479662848947025596850963938568971852605398508707212680525456735019495129968904534069043006025860913636758073846660403295012788583982736056530715815425767309897193057581526273736836032573924607876621178769559578876451356964537124040123623954341843894965277466815349942313492898280887175770057825086436436052791914049121584994948423541623692021701157168962846205532443860178410641758518012919361919254337741209818616908391270690903605560458875270612038655291663778630080873829089916585055958756594657903835186498145598799336578472271833078373255220271061809780919566138251729505091029753115390511985861287290201118942128024160497528405452212311517398638046582383940104188550913142004695005399580489450393578542121618930673915121554234272941291053920280636251430604635731036044290079949658093739893023050750219956673858531137323197491376949778283660939471802497372624466173646671744741861988893818336929595591623536973241910994218094384451910109723725745337501443151322555201361088949187322357535580094070910836794127229234601800732206906186433820297265034131982192213383077713441525891896025179218835231065762882242764602121221555182541773898765578788369415491240499290968163919175756098856828242902113884859139707302668817069424798764076845148360882619918832889663939820104223038361353180267323835032139500755264154559606813739674775713506758312216409038500630652437015527436915418736096824011087405735768996473578531667462568650367401081169754891050191298439472326795923898243872721507617191289122995498207027299456976442185325309557124480360780066430148115190535533461630569013446226830284151549866933807141127468815285337952477965819660208155529805112459848937552736567196154928950262256412665961933219977020297681321991515992867766432543209452319612834316926249419520523091154623556680461559198279591558260401099562620171592574906591950840621983329995768842753263226578247383394509230833985867711909291949845486251044376788661969945111465967292054180153264689560549236002592787744825265341092049186745521671664158347681731535985252925515399091184545035995849478446923663818464789896666301811994820576680863400225312465798855410565131336882594217754121860960992448570465324485215543192410057018123363177872806427478188014000430873549786176187032927899388842266607235818225697958332706752211462648689656150397544595186914218455569804095091150479556375784944566170897320920317509823616335474058528675378779975656852490840095815034434539457100920197844068029037912481751270833508173232003873216822867328550574154464961602232633463270731913669394667008686136789538157293965567244273854359156633251110894424061976330934823023151911819646099982853865565632762454315101976560142329154416041572731895229567082892438549575042651209291642536306471923660433209282468183785990560066919988687246727042707333325701938197691815603165225017213469267352859361097146639179000998517135309198374663998892521836152861789011672183893008062431869920381950881492410449376185829139274689491411862047748961657488781425021357238236758681803158912662285884799913306078551544714738605478462875576824861634269155486350462969997677530784083274659771511440749632245576627597745429645894795081390755167037131190719235981821037466488088047021726178147408986685061912146618744536795381323178931578054837791171578210075088403728395583581405244781045355303504084945837714168201053959739693614628610957341498799588682846082341724375633671895276712011332498508900478435254901091632945824990840384377421311037665172193364561328959937282554630977651860955453013709013001856037550480902969636483605626159706430841837159909189105332634178122349982543833940730186590355935216681759181873602094195664696343174363163027775349994258224398887548153733292293673326889552894684903735690542242045582633471755960787578753615879979971823839542886237435201872148618050543013047725825351153397223039918145388922501504931213441329114034966762470066517426001883526169998773929287408013176592217310982323365457899851227339642307698952258202699722862844827304861831877406114475856170398025047785384461490422867331571274389281539219386732318221616700949303226802931085684915276867476338908013329436474999190864387218322769145379652608966502986410032989011628306483733204626431046262854897610912384683624745378332809826735276762826716850391723420447182495679534869366391141952728354472666191589966442720608624838288512751835150737182903004541909375277772245566533396721653506264966945527036137683668649801456272400816772493666553215122795110477891491214391339593488795671907612881235454750377146723514867130597130057236137871515962611977779173492954068872610753963339426388956894498113255826543993958154885091540728760473904051070403764586680186544571520336306805321127357318072958844155478202929779625377013561335602800752327779107573854594460023612512941763234328183769973383568896687824383522449296400743547710747456524844624314674286594780709284627129171192934075072613607196171016014372894797182225463091055981182522276026234938136596767879859532926609056391001427451801885657935186611312913777561031545775752465312696197333983589412868334001399307894175583358526106733161045470449622118969498544506866825359750656236873814392779392974480121120987154841108538414492197507196988216762095229529212016205228417519767432639243171604086946691236134048897667806755997559537173275015233118453477040242001408883885001960138014563105978522374917985210658795809131061050647288081369211358236420995563825414116463576876510783175961262340844283961472076537507290865647269321781296536184353458337232675560074930659459965950886369782161413488864613296233972354193189661814359647613825263223272806228279182633207570612875712619882639342704627612313407166962045321071679919495759824263534168296729325481300026177582013876595724537231795743110169792016813570056521063949539795532315694987838191081287511941309651570499876407948357861186902739485234396797881479530257097482773945764443765422315455760876666699406533472598927789981246670768210479981854262873994266580220565398371832180943408491696515515505285511386777980569908477185660021400069383305304015541510158825132611586636394218570456432747194465872976375035664423217646286448849865877848464216350964778285609444219062304840054248279688348275576201261559630192117255244536680042982549239392814223215489656034465668405267610428227733819270941389982926712819995342941228632358857585306286890393949726707141955596458273223689162205130591381940004739465077913245292458073663383754289453070839578000088933271696840419091432184551383813482061112469674908568494563899260347134381762472201219518439002681103211335879687576863464183664891171643707404325947600273726316774798055822559725383211159903336177597329681492423285622361718711010995665993674109510790517789221345390042164703431576522805214917686140583750764357920072502361331869192198788345332629085421716097345916329783651435576135190854248847464537572377872420463424517736108165133582467666508692412440112399647717506931633403394164580169193851456578001153479412966358428876618941721450274380602595056261331355374932318474424664416722360845812049430405776437727987096310213591937308004528014623916961736447340130273218331012559069216964412590901240313442748551044982569199026673689225353858392524448477352831532814478884187999836125227032214875218307005930917567271479907085400104502169671340555300010670938451660903120660588353647833196149412676421900976982603079659779503969762346432967486990153193418182450733750142070955252636583418348152071937826604045427939622612347564107429096563561065866775729619334253764409055914028710309219515028366585726259920930481372705408332789427748220064623547044956420880086931088056070240623702161497378008945495962071172021535539362833101750390756151252570082964689382626122050082049608707342519516391749483328616070276820519065871301686160956895202855274326410860566457576969863521472438275445487120459319649476589286060108820061225063023332114129398649265592518888638216492110931299013686139829112366379779491978645150188037779752146543240243020738290882440917654008577107727817592608008443427101072893357487326321283856445180759960768332401860239189312125056830843947608905617431571859439910612579254556592021143645477803000430075304216787450369594160378929445023312349325376894831656607653365945945133170514977640387515958565650336518946923104632635159406417983797909973646962501241479078859447982288851781867754549383844872392767126487279770999569132871706909658298140337231881652756265566886807328578520464875194872509080304081941422863652113010545116089892094596964389150926848500769262128327477034133758663200560610738485888405294082897814694521533663086991466068465688548148758164102436558978476614239135773949477654495220489583434138161543135821899968363831412748070940415509267717127783068827056248921538993175185148684315491102861625956044347889384773043437372946584218823605355924823426803641216660921310983970668735762903986065921000389872134506815081553439461827320034356217239075778661981260637785107216168723241451585557161690913917944459982550329165757751612537102310247014799241282338214523104775538011780092164428272294534803448203289831467791144046361419825769444355214472153109225529842636547906280049765191552504230398130616034647306761234493803230937966089055770311265145766596944882999684200816083772499051597586919042593143901125629189182955547383633314169109832489272240721275829987391362925158400225552980013355788326697469420927733269901935688921939697817217657110214699000093549795896305756287529788546812267586206544423446528825706768595115703399834301519768229321008280645543133630385045842564885388998382259283671807424703746143318626908126460150399504876705390114461124635964543309649379864316126447551831108502305288540992355545035522482215616593277912066292940005848564594351855612904092963353164503797085816344631284576770139000865370706197247074691018157649472009748496754653097791016281526700823170703305876196256252395762863497529163219732599819826207168645627990642069204121812845002461720442628052926224225631767661018257447581587614592322103495945202768202399415074967893467640710236960331524838586547157285475046986428063679956430303494834345530871418776371221963525825614058796314430468605113051696604645912768184470830603177683620444882703185715685582404269075489141604189059454902879304435767598675053949164934022239939622285499809459544188479802556664426719859251027174255411684535950977821499814333666474613534945953821467638221586541210021483215565775160236852097676060871109140823315107704494044201704552562516187089718986664027054375622889347468163952078010800746717179005245518789469190145227181867866393994225420237722078400231503478120957106902283760007717713588717221349449850739064144311060905016724916504556200526843620943117817710604872195259224502162477582272170318192554254924305876975514102758332920841785160161284757681714828221897397900825436685585365850770770359406829546175286297566839864577962285388383818241680462559970193958827671226795747988930914251190707708468400905412244025324843977463008051565308109302085947151518149050372731004235614170126048176858239011571528407576553843806883923853030527542703740155854143021844889856787687278476669953940271923110197701413068082634323063884038317700441584216159944417489497222533797695112583724471552953061426509041426626208311693996896615423266472834850156384129311515961405155045395432446861659514997859108012250623870397170376781838616109457512041819928891101206921570080039118837381077246017449176363246920038914759024583355771409391481320370294272316263139747076132048283612956343915767769632394935726828377565263100545197898461447250333105945009476130343736991871614649286692408938167388369029812770680441284452757312083813740273755763390665211000595212518234436775859073196632951518030458976315352516579986321024014154512582599050357968556264209973103380476841872052726681069738470403589463733479585112605904047688476532167718186196889048139473709290063058175970034818287970134971553295456460820218476692152217960695725588329884280927629084624755605845587771834669032597841002907182145216144885582058686204797427612607695673083886690074025401880984985203568059726844454787001230475945513409460708835250383383264937568776220941089558776401664227955031316387876856292758262355476068869854990434747819292165454227207648218767681824169286998692233236577367077484382930630919293227058508000046796734868433468639149229621978252416174608993572281299782782437858449283967770628774593149673483718696499262760786592295065217032061367226537044511850842169802803453637073183571814148587449964161977168436935458285668809392509356418605773291000676850817541204171661047686941455827803027366251464159840143758640660918812868174461515774235424873999022513240614537382129682712458002715982833740686574219573083311894803650005252136004745498852577552269832907984357204020117337386890462340249475565934077908754610674399945386206212743816789003628794680129489371959846745166665211915748244024997721577240597155167035077788029457605940253661314834016568232909261463165231875006010613174279181787718977037106088552407573335623606584202007072805426901349395197283575247619183974591435926075694930171829515273862734019205072638341033535322436712394923849995529289322645119970477863192892182098121841266453304621686832527502530859922271528925608399482681283477539795409464315999196915258526789569616746750459631880352905625629753201434738301082170789017177399297034903021934562792968151605983029276662392802486543405342384890143124105255744413529991286033364815941606814146449647116433272610127011712383971443533323969505495364315027571869266595715808770366306807772661367521797024093054926977781562712381648692120584353887973435528812214116313562981504212223972112983447814750973829222504534427275288620309471223965397843306626188818550120999275094051000794371086914426814708911812239780818710235974078280723341602973839773837070930119167291695988044321113287421910952623380536101759280672762239198696770131007536084676850571196299500484618764013774052478245367829391939268035036082204781916733665062795649159145583465204324174121567522144009688622514770356153679346511909394434134484831391112498842636199547263996658511349090019340130864827237811344936429640987893376971544902129078673862647774774683454800988358348305398026943650549592619238587320912735294339258246796936279285874109621535301037736487929850572570597405960851572268697948483179616212789287247360421418134931424422621183917103709391678192354357410071478041622861943923666519563857570439843063157183613662628638402578153708438355053059200662160557242746576604809162109986541001331412040281288040052445122400769704704916095434791258277502088886456710888834022001248456665698116299274071181835117326530706124727340804384671838170991301272233342510582689941944177638447134989794277403330577577319317059659845846749256683751964238812252938197753830234272692296900820513397590252485805750716316119557894762798215584770506504116931504733727859926472171205810452415178114657953742059900748936377376851353139503935621273687795146849765847233765140812824023606329085549171440915578895630845357409324003372387424454889366394587054118629107374934039900313979524438901721872961449748060108647619526404763447235126511907047984145348818964873258826286593508481547084359112643534165853591170800652225570815937681965771057718189578806705988385428286604020463525128760705818748463967355512402619830563381048358369929981081944289055525816472540862375310552304181472529058853611486349298408353822240813066530962808929368100576777085710070834273343424583781999584918793341508614063835267735688240118335240042941918830285459175861889884731636551494574328417566753767682411153884585234360127733275692983849494359741128860101842994459956567284393676554143036328478488323054667919733646665214827965142514510280743583149150449958583320222615926700493812211877376770842113161718250336111535451090111501987385370717344836436280969406939492725881928850792416910764184880212507529012740130040054007203817456276091205553640252285924147225215448628507222444493781434060568968771159046172424362692644630965984018940653594815090088472298519015871263287340536012605345721288545103921133596743360727488064104290861532422141733625123859714275921447995043522817117197214503420368999121801227299706067497949920781531921524268304137308596142730056140266229679671796288499656730109596452732740119978048154653045871263010935954390275169982126615054095604474798387693419906394265268848998735861832259711489967598863555647490439512206829698675549930824923846481385961214907177291621391590179375112768811795793204210439188884803926322434033872986656113438315069012880531152828745979635368917997983345374745269128909891452374114853672174004290253207942900230944269394587209891113828319630857995207212623805578778909999762359314533993477684023314755695094496885270572715542921413538643108827399495548619311050079964799819858630886696394259797888678489813745273876223463562838159632732234065033003573444834378195597309237737910941226508262326574845563785508673278309329862583117461234553982154494832627712773832389020767131749899540260120554016310462289179554067473604587790153226808612422229584418291833876448490396551558913064131606267112001984247180549151132798430101707918668586957196910145106994434878101255063097351433600613176441150035964617750166405542271100093182194246067211254072593585885613686366409674484188312376663849251854894612605050042206701547826355232875619974911460787503561741324948600308484215864894463230598903010906746641365538940026686620091163968753268485820576964507110683310120691691967224766063666712293283311231418756812396898946277421173860754796822758318073543605514370749161262526760195674687244302876667213097432844205525892508886827245758449139318681348794469898364987539144953404568080596657381762904459145108343255656708240246446886258621580187587626325377579501929965829765082511900897354338159339303021441445445276475416534303387614307981808049219589445410638172054956293342405792342308130854755843678059630643784484104519923701178011206111840185224177261290179078924991269559598039460840799096260439170370022126016458277534148329721149227635431234295557840772259190589319769019175645293368936468699267057806403688446629551719439037661092513517769237657176500670041584853837990524609633194473325122595948866083739333139595621521924146103975301473735452344205467652824802600342549332992303510144221998572778449466731487993040488656746289977588305520174207361317361273357390879915365748243420284430207150143435191636171231911746644968128968433135968329148106507691466615157030429152175774169841717256876144321036711323412959207479324060783841544626111255925683047594889426329162696421435476592889010318657537287471277506031289767835111955358435754563797964956340829833480662992951815378200452624235691529046513145466811053232562397627664908388302700588072838734979171296975489344704559084375652569022512718135804451706937625467396709795386048798725201076115542064141234943796264442813711441509601481944439372169754084165739565151749222671822438545030570849920672099333935760718541624349376027728536579249588533749053113751417969198442966664108753670735076921373904270858712588340152415726286664082627331642559035864868974829833050866766513377245557406557067945994812643172697971603742512509859024820473364070589886709917168279907311139986030112467764827130807828835795843786949975265649587086268528294861304429415167120072319275185484118039308540211486099645327295930724812277182588957768886420740063825905113409578145638129091305417434668927196685959312006610564491162362408620858049514963492034059991340770066240297205074932184088144187997154709563937261194306133726024394349472516049260776374949336327223509131799540151953350670888887544768817742666594994547222208712565704504830140122272791549624390547236153361807549096780265933564252855805183683639063939603766336719615143167953566348306663369341783528651048665797233998547612376338954166225473703790128960213320659820485545752590595585322986865636891865202979694120448842051568668867568447411362225974594645056937379093862435804367062517204735533786551819451927304748504838466956029361659670335649711957910063908793436681444184645392999627037018019713759478635664139005703223726370493351956112535515390339035268348103215472310534253769632973644987983481934170080754969328931593550536373611519607298233255599057828317979087417144208799024485998365229959702792407906106475084048646274926003890887203297353650453587358067614497732093014990214725404887563116209508861983456085068260211603651833755817988369425236332922746189263795766978454038960949080743442983559153954434398809901902198851125801290642092812655808840365909163971453716514523671644242518410787901601012520499088609142815179250437210717173605568909146150707989170067180978713781036837253977706654340276163666788466832803093627136504163259251459006942913073266111238585157407676505908395046224635901625898074173265833703778662000780306861244655627206424567155270625430176269931910017804084024785696773451674881513391052310599599734268979807994196958679495690904986420131104364960543694582505225257368113443789221271065062249190288793630085510377653350904933513974624914027288078842335699518350687170079769975462248968965210191580356738722038848941542495991243149613071370465503815775468404833025961335708296715331628656224386093284807062761802061589617904690282348451004074018457141255587390735574551289604999556469897857938681605992470776149266157673058539082077770656005874440580443513514148168788206178225317855737962433824362978379971515416552749098774747677674917810829591311630562150659486156475766967105745843757207908550616364663520765835602702362561001290272669593831983959531248301972985734019841583949610441321505767320641038245590369639704487461804339498299252053913736396566197095427269640443735056724293324199231712251829571328936986554444215237001977760398938382144191686462985935661187195564416940496046937117264410726541836749475444824894487421144702838900255829929785864643552945166520034135058608282959099571475079555381647175372858789699599580134401826358086329812343104825490785875381397866327880526998958471692302228305860087319542465682075665673613489973325282618615187511236337898064003369805177215887142892167186773963295838845639163167376061836824547478506217230602647283645635640122145277399754231873219115818477325826961617884542572478258170368779502060060108092940104612327152894668047090869296426317411543869830888174713650569015770213989718257640528579350500925930202291518841726967880790869101409021074062015151497389152815347088073858345302564880582030331834579065932778403040017856475406352549836740614785350673211613271256797358370667145983804621731123985884046133868889394283307710439304357369741058196947957903311941222854776913304627698380044075627654672688353197338285717823966657247668177904085235677273025778500384958109060169593179007774458055818792884543620016728399818805935747312915044673093060054818763505089658755807756713528697446641629160210401874773203122967289645619643867095026082815914020829042649439294610935610411049642393268514304527013713302833585466647907874726954268760724819608506654615997619813214663234470731117674651627086614436936655104937934524648772641447610746856436320209435539233144622147424407080007965853604056641442840300127346962114442875764824168488027249412996311613151206775358269777249141527371155141402601644213696910060559825939689189757845749555540272963626635239544118108105945930808359491797867204784251952047588454505544295296725143363211148435443748033213375744622636319635736023984645145540719187746918447346619686439562823003612417483253407957899746295602118125534308872466873211138581168085639130068251524453610757384934659358901131001661774197221711339940167293872957414635504498411403733179261497579398303872177853453603166171739977848368353813497652666996878426015199345759324883794605664943348969523860182487522861189753931558718729995739114464552580829011361915167037546490504995099484742579125524470012831113855876754399543867342807124094374230368483588412668825702477557726152158358077934271401253520807837707700709880592047134267138020546603856863094394992755494195566497177206984759461537258284298575756716037534858379684213741143962131067880695788393938014003652138873989497960080561131679236062192311852661241790603984793598242355279703844991353072566498951858143702204967697750570384079766788940258522702694186035767566066890245137949797534032967101392213560967837416357723235615531130911295455819268351657378163438229401870112038046872366690495102131526778536728405489656358815181662170245227983588997556018368907969227206715408385777239954126093879942430075908047710940099170324668109603709161688114515739130820351598653440094432844876767254060641806035817292969463791041006142993190802631565984252612576718188831456623161968880261139539867901918874799962607062823880686968449738460621094907544993062626036490281535424770079201601913887043779232222737616504627029751262844967895505234838160775653046688681418972972983500030649001671562606686763566300853281180914410983728022267619206014584711930473254262470449507666884235524372024018463012072910766787315600093572037438109650037203914906933784388480410723908019452618531243117628657336526636423296315566754450533183545400248626564772817650743918098111936535737537731156250800312730420716986048359712240526262635988856400713642687778641111468513454571134496583300293428268610714721728961715622168529090188067030091388581789434476722907116531784959424775657178077142340549018130356912378086151715621448537659510346276701432339377885767828212658901375756008277390548613031275689491325734992820403626159656326879341600915491245171016647559601065673194382589571921471946710615751122223773091063841972753952572690604120803421016268237382202833119932526730378282626066720028861962359982474126654616546567192881556178844813464169288625570588188873968518968356168570955447626744178931574654209851959584602261765255552308502371855425673362645111927316785954416557759350792040246758892533246084011240458546319092616482350719844599475759384193715315534576912021498835992617199794919677955411398585478960646824557786676566200638804890730876757520627860484909710330679349710822538955278705217933381043930878986768411748112703966676958762625187884681100492210892198193781448385965433001897405065397481865696969523952015998022149204534435973624227586711491109255285419745876696691448813678548781293729753628932499701092435548800147845588335668446131292862087235192162555858740944051970444607353916287283916578252573377108698862926170308104176355639238900174528029462564640357985751837285567585657598025812007798017266625732371545136232892689170982616471563271393634523770081032853895723181302601078752966584226114935830707493860491272091052696233741688738044385246898060176270025248194259354892948090766151160608921485583610075891002345047200215108306042325856969943601729935574797626056446498672572013551060783172038909798955428152053046681243861228569621884200542961341670366878433213036927197201432316291864916108521814086299971308201060123477585588736786275826244317389349078884966838200408184256248643841880666934973307671066709441929792055360256053785328353961541858651181966216761231453388157284424423018289712683692643435397859926201558309554963369912118821811134366198508584216933248369253209811709750792136044136596262779292480239583181023467777006128034109296334395738120461540594794282099257525086314368821959305205882340469303057093972721113224890730132077996449916421097973490605042979050855189647252572981101521904251401824316639470943452769126759412945652628461658138722870939796321840169308263232109670106406873697276854938186341504699834777212215523252242999067583169425453059652380147652613250835271901826750158560403395578678130076245034699542861597350711038037323406635742408846024042375972560354717187987990995318551290223455634456178276158738574457241013314376715480254735036699560888620941066677841907473622462808744883970461911088234007798839609987879519842698540107911586762026548760556645519529158989232224926241258718210877839407533919412272153570812476214706674162496641771311177237550322777794280617912178736332114626657138081362712845966162711117655006116262346122992242008993750841757319051408358566144517391413869264107185846506693238759078850899611057353115971307644556526372433356453364494418417992267154009406719643575821833767121829822142437899320395443370109627519372626839793196164054524143461163242994908814159683743842530243585227255622093356310207658650719884553049480743272498664355752619066300600021345789808053270830230808483576903342200792498579320661655060928108492257250829541624384201838092687454005856404562670108236869464743285246359530045342133291055829260449567281661054125390487333951078999162682125827979458599659599357035316378137362790573468831683905079239605291620291039558320087395799415463790122302176037399858476628550304718504115637891644384247642928241771300753611907247650436379164131995113087405952992409379600688859520571151835743984967806924846183046666948187394724330540700517610023351413432627067877966473238653253565821933146687143887700371923468631693482332681577891982217288282981406441837902077946353062462287083467872763375415601371612259314934632784397985880620625767724733964036673206160963552130434571209336156900564757135155910699660565569771699503203896920633658015433276583929088467835774574860054877510503912756052349979171859256330061302087368540237950772831481922841660050526085810497288294019211984374479892178601589793728641105319338071425383463273644832160616750402702940085406221946955265889515232208368873615175716611042470967989538134870143778709644341393328795576538970848379641953415707893180213376584426259608210448327605594871792798832136707252318166242500150637340583849890948001840667682060348343162556461275847995298311079379429173994415570940385741254034901127592677904779890606962790070477471097225006502786726297227251581668469171657422019276069376590242413217291355693159068662385040137498438276707514241213208830707727220947989782324101957310077253526650529795990510015455363645297864116382672182778212510931783504657902716752739139387296583376952428786186318437524415990573838168415232064133528417824177486220611308504752118372642790171639132233129424758825494956899430636522184338393955933899589270906899685717222688540627768805346910653380969359734012369374285597681009847003847550009289790829866162251942294025211349051558365556309538086756525069714791010776960341562240598558453946572105673485841270912311361624598659095806044644552161839762038166894479415104777352743241076714275501948036801390488608782404145381931721620701393891951285266674727186380187678527683566540152657213320594404331959123580601318732362046887366836083342490251324777593018522431201839660675222359925073114115309461301781117576701625749870694140903961656284873385259221864255671298620954021696129574633787461905094701973727321579071975334611467142173652151317160486356855520593262632773922434345968699099223966775684973823524574601638857387673174336224759742715572341558533711791721603331962671638351702090893538158273242127725588084238567001717058259092827812949282069085347509807195006468998179034905936475950805663060079663652046501976968114343846147487082187059837643043799514009582257647946447540247398447036728679312814189316719513251714005640540159397936656205105859756265076451935595093534154646102179341986009761485684914000254697518754375032358201757121844349753314725367219744034834075311939991760080935903169074762856599385105577658487268830394180663209435306211804802938218473913798463693864501747054458797894384817750841847287498916357373068883873823417517628887844784348833920803645664792426893935949515031907783831109405586879193273061939403432143181212306215652575968898570686266227229169011806560359662183265388515788012363502361335035137377824102339035202399992938300152411071249687944952436130561317732902807616801391231864770361020447612921169623187586453225962397012964252637673919274926031025311862012117312273986481522511569370092463318265468002031616988400898921982868415579584216452954265220043324957656662900415119870760667393060876147637161738608507409609400777690403866313346249221381492530016053158547303194659702596856272528188889851852702917804819994373580241512284429193517746109673012706368167440894526327855047874319542494603881917546929954230502909816846027133556699747793197517334347635056980772526208473383935776134209106780755634273124495700713805293727811205652846141049538353005439972093128222962721079445851340610108133468860026838947881866741257488509255274115735696596773298321728381456307133808406173711239965227596839041679292027780171803879781536066774975869517085366443580098296835748110816136059160460648385468384585337500335736980330627804878870393423127335529667380657616475127895943480701094070994920015466617001289975236007574102107849498794829153077945136949974809594379504400679178206741888830966427606801361575126119650670712765693108585739413121171081045623744577338152535288741445864988020155221444085389776518695327764708417657058862803712103642047376365296071163991755618795061973230278674620444402969229346430111330315734551680989831741463835575317288489869891307064903035137193498945964935339465086663682827768215663100862702015054763004209190734933100665122115814375832407745361979240874701903957916983920498850358667562590427301761386993507415254184183364604023412524519195379507883736595136232925798097270496309928996798983238156043587628663313144913710358862862450836558377347331747670077109348721817125322753709502936797064106090466990075374579028296104995601709235182529231103790028891998670197944599645095932803332285414151470809353804010463339200336378549203176135442005651902073786131172750833078022454391939856803099030751707265868437262471537575000037126303017218105590908587951033941610676462663748026567873856588156886603952476429287984422671594294624909695814464361160660833226105936734923031065234534569118603739860787585760543299921973164871195591496403308903466837457481121685840567687706130974936228519447399987973490364917790226631772138934616254814708822655968867843826586121965715021511290088058249231927915609379231598561920938038163605782495994880772567244719464398014115427167430556890815624940681383545230435994426036102290238470996644717145048013393784597723431780032784193961491364910412974032722972465576230107377249723299965831779029692807464055983533330550809348510928898673693297250966660636981655366103841974191652725837357425509924646380687692004300282703084397479683076583178106636335914588858371524769195259766862971426060378482342184459797951678265091178873553414960418934718473636648095821128530110827131266648493379074060710618747627218184377782488031772974934293103723657192924143252966364925476213449140720575957461531422374546586327301251925226971837825239437540380499517654090821903902200612576737981075526370366197807222377484838977461694934566567044514708150532525206938144938522110704966794234147719489272082181395746837512156973360337640384572059406104676090970303171960515261441793651696939157318534867113786265258784343853335067122304233206438012824373448881194341841161949864779065484219098777266763372004251215801713113909754184399605300726446539376541533131777949381989336474208015044413845014545876468283334497390715882126469996025037862746693262401240874640196583459869660362615899356046061535484523854294414438486265872029284511039037131436252989601644081623056957246020298632901699983847467605015664061586265693841130966475851292046660421529876321599435348213001507467534094743887007186804840315701845530105333440601131318954318597848907997366327603988313222120599570059354343821423643928339500423197058980092810295350770708257264186899333068602880121143793611696654662853600908069071337064672211062039300096480143797172271409548576251559587309933142335238507853968026996726185185475600563242127013424929550689585285560920463414557271750802531146074125751258236195778922058959420308556313352065532778729815630614036282326611177292975949411756805556469210012389960226631676444258180062579423977205998114554486725362943741281839612486802287868693532020953372913813011889026846232180756688644717147890674856002494430710278785101345150405657033558173935126656924400219147458025166747505369114971712998083752575189462155436145090881074441827138430319845877246798549083380256725905765859055670019605614635055464225171026996787581288372872129428991732262714179096333476498756936546128612153477655575789226312298426806882870981030201793317052515791700489959762064453335119505034129304328862834099411454896059977649656549237299292777769664429737295931100343328532824934319070747629660151113387248457853945376912470539116209380361866505428485453820092311819736972030886289892476841569465855171502149111193527994265496290431108178687138193975649427287120168850699916936887244580035352987781833550394261138656210681955452549520280117447391809888488397660143813704286571971587433584364270328486236117390960389781999907817036261776048983413494493705773483218044338818716572287683841080444589684028114503621929046191198224190198730267182889728525837879730297454950851287751959981908878837906443593427932436000217634104831065063864876146103977025011134808989570614931896619464199855522651391032857704303246735255976034632614598914451103037366265092612956459296888484499691950040358892163309499506122812275306693178540386058379267038225810945109440957787151979068295768882113930755881481122169818213498841758311904913175404546859886356992938499960649495307148419583334512994915148305551347372967174607892214244214881078631131418438334119369612651426598866971024641520675536085850908269416845903682624815874994132105565251908478461904592507040795789836626910219071907436779983105807754460827940602598142816220234751255007028073207573953012674556104098972024207708525704525467455431185990586677238659530033800145389934805635680011201537078114823994640406742630021226947185560001065463713249820990375369185172409149625490913396553971114207442679880853559353712197074479435661188672885162582514426437219397899019072229241573946300623865337386661961266463881652903995097559119025275641722577610805010862673011099356089713876851786496123916120506530602219109016282376378759065604075528732706023600272766617370307036284400911660037486986035196252184183623137568915013687797137207617755412368686475163734069257236196369389299823823537869737609069564466342259396174544802250192865207612316932177757925320652750000536411936758154208092590272675800041902290708440594075431948908762727739164191225957393131932220286066566347148625341231716487768338494128343791089053646168616474423966854141139696888543899161535354965145498173896965154446853642452162244425112722912381173491825899378945772000537314555846770454657661114957002820653918629832934572462278772988279797160404970717238028976634725575339360310063929728520533552809571385486617888495030188728528741446463956476956467899822561513225202813261028259652195552876953484401754838938600766313839277551556260136343183828006568942505092784847034572381102239235242147277325772054625915572798385992261698723891388168890702940385293975529851106064261882758662327475591267282285924736255766664424452392196078606443435722078860227331060615934037089598239372036030716654929929154947045159244092255928295499253343281217486703900724222652095598244950862908975098935563162167584957086642160443285478685083316866207761581286599004262181518772723721351638401780567863822735168831050023534556191771015366088002669561649096464586661628679264100341959361308337337180125164986187782153079311593265054045050544414607541762293588916294752670350449371098474635350200256075347123813046130829925634155183137943467029102339629997895949829151877564513281195660743985857145434880250765706675515925882205416899084220681224255995937261321963856828156835318792810932233966025136265561490835640073892048405955658290746572908094090969639862484084296350607718100739655592845606958088478101831220834413012254483170466586217816184525607045788913780664639428472678366134604421201753506342197089889339876921455501756130072298669151518490107457555207997025674308989503118416425501898091763747151413874018017343177432360946568273925722910285608787350821327645414229029649022708201745281930336502171200925460196176570560541073063981764532321905269009861485711715065485138842370757722103086023045224559703566959263843344947008718594384539207706013818693791030590199179331220409795808969088714872637111546427301684374679634995570104284984704506167996205014039663754143367678127344420050866724971860430234483088918359753785713657162069968920176376203963857613139225520633272265892372248899822074888130165101823802489906015189930585918824840869650226451654024363309145518666621019830957376666361976510113272769071999915847161762511377303727202295294312095355095181989393038081279225741674810019557094961489228680528761934812258581579636875671524089744915558847543632585304489975680452127296695931519233381645291321097114537060288032061137593636792990291202597992250049767008435623012186582395467696796943242422189899725996642927295345691911626314077762529374003777467687845899003267972203290941063672786961459595976564169787233613938362732335956774290562801927499884464909105299399158889127064839014535634125031840773491386914146880338207324869725287247998572354871277044254282990070732028672228915384331897828131428906829239043650941523069088419165899204726267769924321302852207616552457043425174115847614377460480224365055841820909885357535471682666496160272921718257570000531158947046979483040676014891023916049367775710884105453486292731067688453121230474462566439682500224278177163635814730674634087431975799895419975199821099222915521973462017299094561304287971448848770791904066479519931720503895724644047690010033208381135670135734106434946730870481187180323688311938375012958931360319536178051058850366016946257000881281892750513084260086746699853380619533324269155251957120413512926324331219477806209404191677781343554717387716963688043702396303782774157785209523711087998932515453975446995725172631518531462648047725149891444745678308697708362765876118851632982414853741770434021449181117978430962297654877933610005546913896217548458994778456370426042117098208062195556111785140581546862269269800240157095600209090236801838032819843475072633195842759094635764311512767184257871843941321328055888794700975930191426414266278460137815168241601725456381683491816915423638078479900959594899796722860393680232641175501944930670363573921920668205513462512690288812331405947617297488731714465067932298278005066077503751077240479526629026749932011075142209216927868464839526413001966141977400291334979478753216319501765247298644258423476610563625510074932026261112280756475205194700886152984953034990190295336005474802455900414983332059711401922877784321238616856612149642045546318641715351428152684398436089289585708585265464482768626257081814886517733948913023490793139656942948908996392136932821284983513039523370041029846232999127607354564437285597970532825142080860437562003286966920611394081621032364522643972398313825680032000795142040956893454587520823264392605815799919801984663953861140929111983956523527504652244722276265107677986972382968686053003565680509590183883335535060451753227363486093568600190420799393584340175506754648870655247626195038540649139969150263605413331480932048050330621447167573083539292710123470948830038155484869800054827000682888995908472588657965345532136623065207718930640530728355949167045759273469672073117281485387427822101660747846841581942341687568699336887198945299449570417824911710392566233060696686228503112328761934863957657984003952705649907962554756487658577260108466952849788046384045559403227518443467931743822232906398648570915787005679650711284876003204220828212937895482532405609195646396715377209693579377152469405897012912561776788073629489545651021091810046993321806256566211733971695294248882164803194110966314193899592944413221789584779968020629110130804925736129497911384848098076197407333638449047047358373342230920433447169764066096153453007925634201104187669145132909177400020520701803195266490891878280612319285460489868071921545609845455260661620886289643334004966460020470609001325571787124805774533112491076632451832286815751876278521747306692395569463231909074432384298354356719673771281863019419731546324896238936154682688035329868370235540790671768965658843065168104183769915694772080581436393517585227079241277014078811190441531616906388071857975623438473498053808237155669991764556649472003113032158880983360748433814429739884259055832489443410706312897136240231971225599966874123410698158339219572935280084225773518088868098581789918652305434232299033515151290000295023111615748122441560669457970090960768771680041770417631986385506918160389701831718326352347237314288012146780743485440990753247330756043725781598656287454909866112697172537983685883487765808101153774671421803016677852351671241241423526639248863880028509790736682302118021416046872316214370744481398194217474607324731026998823818255051574737516829635485060433260732905220905047023620164563308587415006807684133946625128529603980509906994777582214855253674697111180369308382973593119970882092244976299962831812349203689751279528089563465940602331052640413576759953617889680822392635429735739603161186703883340631687070327573672386313583656134305975241611927323525890378682631451917464453922524755297400583550958103903401366445256025190729430534030394505631251930422033513883739820848301065425268875035207748452817828537307296166421090452329676797441548369025376322064977802715473467770452597862420526333722865453670971593221318810973402410192613204265879440725104854881783784552368910484738554535943249630189700194647909265429302420988264979932211840337592730204279126186157842712768750760452988377519416876379337890700331007626480301159841563709440162937627376774824941041603080741718443436198732489221000737429145978050383069787861894340697313211026249311130709871054797310549779348601500247945845860744647892779906285843098729299937888566006556198556032848479654740912699493598146575491053288478432826748440107228284574192097053487542259328282330646267790306900179861338003694540113076307514826836337903133598629753385695595386605971801938387263836429563565942534881827948732515311877870674155130765017552756255465588755274832004884642240865908508956264718000062803026149868616097787383175627556916228037562121876742570951450400597234533976052220011697913778930406685383748513299990930248303537680209787474648047769053800896488853657202735008717245856418951157278295863961982139688102276268418624428964772267391882877791126329981047806194544433961702530883627745198911452797240079559748936108389258231466664262237026327255653122830860924785321996388057256342002316569422226476387608739418285600565692023488653054921659625737469806021317372798088862556633665373789059029994238660019041672286406314289010370872406845329850289034586960286401863235890986657080476992415340513730081658692475840628911416616871849703731300055961707915798886711015673373341437706670367923369987397727927685565374726885101464010018064037183103844745267338332765706790516555423368035063988473900674784497018746797796140826855426542036868086436737814301804161054915252623413490845538597444202333680619879963132103860519386300163255221658277268232480647706393948214239662257103369178552455763636660598471349591611324776857112010521132851143550425754792406019740572379678012385008557428634851319116635577167611586377060759328209411285214475792119819393286057640989463277934906372979141368382557893717708470613998253335606889044522984266436250739126146363570092003980223298443119954151310151453841927128694014253080549852188396473852708325370930740681780235397958241387377284931704255464959906730524783134795965295138040279115187115322450649960443163608679706525701772105495315114642726143996023278460990160848554374314437596587647907725898034847961143021235264709765041418162317812381723718898999741787166044971731116896842401938240392653868736091720190606409507927030347713453353734827448840831543401863407050574641120856956010151970025976416742222356342511718285605392898518063314272936288218565405289523920467436711891808360274222959806192380390646984179922726763433819985973222374008165977515767564316922845517408419408021098690992837343406267781460596907960155326721570597987029470421071539882873072610836126111764417936470125537201959362832600742845387044653571463734429845510470203984400603786111381080858424535397303155877146351508728444499499976346104851711800119264518656695424890121946048178003926357331893470236633411325258487273957551621094584041452472828090587089262368069676491148704320045388622300473819138182470366573236257225830860023860215817984374388735015501714144149963580689426894342755880712182407633658552772393695557677475083388535014354180478117441964121309312434097837430407948957416754619571663786447936136499362016966693076192719224673275750980642509043372400841935350717695933368800055642776329536746455004179864739713587683903999171790525377862909002633105711885776199837076709468312195854189081452780955210880905731392345129919157677218275261019248258037951170010037006548707959313401451906325081674213007397481090426163908385947360762129278612652865194391873895015542581826101369573760844662351964005719184270204131067382467894597107496656570316396291023941815950901392410991555919536706353704527824365875300327880589916609928177161017712892391187383999756056957085634911772057329706356474011407029051846132704405934747865522797472506302266039317956299723122952473065694038998458658619202842307234765434556610566875406147051556808125657317040533390313020839090698169125422979303864990667353707683581864773141446752604188399450986283823014919843578330605713442776481491239114428159398759681398986318761155846094869192147103182056363806450477861152249995070728666407387561213120609788632790245248065225403082606357452310046766388253609587023843830050359196184906118640487522158189579220302390697206568947856768011778075365187713126217638739855904104362331492119217530477986806268498789582274867594405648022996442190615280655506888947680421469845919824787123408946563332339007035165523019411850290447468743241450793099175904926498848252673782176033547793385644284437985641138490107174449763399355634019057780539872186055806091682059646258844395536368140248814275542520934042810739246125328626495156395588344263675855685130632768706302930024716964791291663859642345192838976909086471361487376700094021122054246885602359583979142001032463648552965581413387611111599423166918009798344089372379784921653649119371101683027261513177938375284763225304323620441586256547157807438614722487918814423300201775507548393123170900020748158795726346769592507933615338055775721308196114123443191780816123065480244364506547986855672974350776243800840160560695690786740544538922909038936358888079035317992675535538529103964143942463560471133623138222766029067063615052891263853879351542147183779811962098835760441782162662977965864478145024257789586218134797721309577866159858791522147374067590699596862431896896883847479961343272071774146433310519572810523815889475272624741093419264808539648997138276577024994431135959859787999165268919816410757524289541014403282781423409102808613467878398271668680539970707903749140372197528291392228151416071523084146487944352346071290612465282446264509511537428045732535661796395586010307653463184807722728695190604804917613821997628493023488662892207143464624858743521880394732009363547625554899459184891073264205446985121183682624258275537923522224247622649520022500514402551404069292794435676304978868619494161138155665752856951519024123668037510562703435987864150892483691655282634743536464790146244239174819052721445549915023653454427699260504972071265788081281681283257021182703971347178566366664214783697310392246007332771992889975067105641555602784594259258741536418613517921767758194415363393697385965893874218934410481199818297461884350773488397275409431623684928445693156153423869585403290099123205779012450825609155701353353316130130538083069704787280109802030897370128306516785027863381661432894864918155699354808892621372221070719980976094105321449522498416756908563726354252268285558451921115816435787438543956291076501464020215812965941108972662658462230239810016393631922307325371635749483939845985615940814276875218617607938768660953678388180600248941071342349058227880012869699876293476928683295134801943084985361725379401374009458314865861010986315172679683272903659876091283608787679163897024589278873058485769311931511848751248518105033811970979321315923262729571594492420499152819778504371644416966528096494951224209263188412045723471427119029542311925738410892850501426816856665460604582390997912512409711101963377527871505363965523688169043480839345380816548869447173797011705339815743672212091470947899465199587825643133493806609311180966233345701770681030947736571237263411553370157106940462913071278138966766160475584236392433046662152127211737131348483396680711125993527950211738238520032935107932017876206452763009154905391755751566063768160901763213051803214722257388161631244374680395290834734621088716169847557399406769783671565896750073116901392793871427672208682975373300382012014358389837875056142162126763629854050556809463225663419465200456987793882726793837726866793623862671446901593453637480389352474234348464141607971745203397092879432410571066925848850562533839858021642903735376485809525176390487779214347568858039276490673398186328041608784356302229902875757964528220745252591680719865963500370138059628732184813927611705582517600018243060600636038116926818741423386850270582898237257272704452495470515884928370976930098175019701185802542937848084797948795424749388915468588390058522094223923299865370191609394235235902644853268585040495181022297043832851817365950984546425040769166965735302598407473323357249777648240979486899203904137155728560239782039665583377958017904439592892575107149755156066106790059059353408905394628862989685851906814158433287169571439175090139219622437852317657453936994627053986460857954762365612143695264063106857172709009260678226384102494145661330666988029060658016651332076178645252325579907041303746864055528371493390638429284939818524877965582405458068381980546580272573047931439492745711457132381647377051776220180889402522562424941099542525338197835130306391393322841552089101970714411309440849587593116810895293178374495031647926961036686536503219357097047569942065931153126795668457284183517720707864234978833131943815287077679531343967564300160177650966462109084139158025724058343179103375383118273048803767833580817261449444971438984380379892126105617451269056333198887433603128954974362549135277258030837176230056439844067346180116444985380226361142354466229743664149982543074216546588197420547003666284440878600510043511354612296093167749482831178812163198479360612807838453576713943264223646486755177286933657104891434654957674472433297592062016131778808452362323493714858253059054663640198038059503661803811612417044429585344521242919296903047237929501541741540199879673095883150391933937289832207730847477683899757785879556496459037531029908810900470431202106887355777505001717312707604924354445895193919998080467201169697079086175689180735745780530088259710140710306140384214210303012004369247913839126402637472897263288487599741720925864544429788804124661526843466205242189836861429994809395731196158771792536553157049916217948318555398565179083558366123875445454390715977762941751012773189061443976705666102157960909846145824786320022610842504627162721115562189810370248891710753555267259766074779462803375518137974276500178203867464626536203235672312180170689088377530881288836229935005060152947355052216323391432448100827638642338677094178442412722354762575901779603323208819577093550365375291802805237269588154972079654484450922917487699481009864490653760176449933707945298562667183112854708324341310067890136151936161873548081777255081202093546715842952772566085443802143903903861597223928622612888612771267560987161172704583827941688979897492017653799849486379808212611197886430623786341504736296027170158543608059288705653865307356364369896908296217594911621787001111215184773919796951098282464141614339142265924090010845346239280670718310302207858475717480928368335474505336309706315644572192416799256775440461482438893473885843483010978508843962003759752792147457329836273330037413691392118510400584275430889847929851358756554210193939232100466538577336905039179743567495397573754989104487854609075953340606037639642445387031278689161991511282914569119111189987366886806243870126603511687625141139573668143810045388329202435598070443333528296719876449046405367843154684606868580083535935195062911243372310349225347420125723274919174118474702983621569114592409642008135103417390173591486155225174670232174077941302422504066705788354827845152048053552421865448616150843672738463001996439312065338289047357565214202708556684990437237883102364385382910508910961035371584010055798672645874344992583454616039987881078397533584320975277156520395632260636132094608462029880695234917943417988492678990546684828342338299503564225872615588765272240279653968207999774383023874411121677285255321891130461017413099439794679219033635395311706606059985221356967730047769946267254744685146922386665178911788544951723529377504524186048853394093919456893184815194797745478181102751075659067905628243988166549860063533183211149752952486931054854458388742925008829345359007538671883117815192031666897003427625164156802556304422502036312017409265928647015923932860456717102469222405858099070263045999998860661374598274284669955339233416191713616787876080152233542195916941381298275649462904878993205174271935631542375230389788739797543443490305201125622952064152083286364590650925725595785546415649431908252554156268623530307387994458831668504047964055616374244079101079283783478050373910417128877023136430493275000369141591535756394747866001280209614126607496325736237482125620112346170593155478672649360929433352188651672937426969036077672722978162473306271257145709159278941666703195368090959545709351985516169897958342545197185731524084261436999757170543772669873609004099400659968120631777518808856438254479228542788098228345904134763771236870261894148209542285206090026500002600074199722994953028976253222108212299561903248755891679955968350826888205964612336132140741186907145968782271544192790341387592907868815432183885760211703944323363098568690503259929636485233077150898980269620520190318401168115947057633848051358177365286938065361269049263060488263426398509446888225296369050706914274424445740255149597966234173650417204265399337086999811905916322434725745701343644617152727299507342869544612327013522666410915173160143400363610298410875218258313515229014696662658440356197237584056507923966136963901938253525725433278825543535867759741695045331757831301267343065469841462030713309453866463896966624565140980426412316713422318755440341424500978524872838166522799832763296660436379114484562367777653416227645709881222696765842936321708228926496341473131900835498326346878052722996631656824793434713670522583897619234380327849059255559420578765429620231715348326411627056496449624750846287711219923493420250388906410208497213463387513048027730682656683959758480572989434733888090089061455853231026345225533442130526923341931260774322639869316948994374515213182779968134008717845515755633950954038024984266100376723227981056320772264407320134393326599109787431671632668982799164824822322068607039695947000350008906684245219667160574875251689520887541106088420254864609793034615770472201311763920058128403126835923194464459109469636959205348365232784686006957418238350911923287633932905452595883958396554628537703992771253306838566109934554304910343283776156835633490494236901585283052750375790997520712594375606212512019733515209259291745406832572551952481761023254854664362519269647145928173131662486731999167320794337920608499840452365952756606375007674043493572843770407718535190986629922206458589339234472645605068268584301895612791929894300411443001930329561087504980713710159880338884330683590465610433219371186193495285177249394280199834844637163042940594686142703391945556144192097804051147749705582157396708062804850232826266532822633254065288624400331023483054916336966646326820908516179259380283471398684221385891673108697078911326743344166125486467817872678476884114066281690807522214613696594577086766162150920355569089983715748437399327232336774914699731124011636837723146029085329574098824319894735825602192943462666726680801217060413502735555147063733382269948836810425341709968591891064855427189529269315945564031069579043905910754491533369063718968765393263401231989687058808843114400425253116859593308590303108407490471517346578890563724266285814219685921132592039100827916299803550943020813445300540844983695547800344809069578302820049556164284325380134426297620328647524906262036348767083167769388710678851360257692789358202633303397863136406134174617886920159155241135707893324748038536667143550752971491686588342560889618722975154552815359746931642105634291860764045652059791473930309387840160994433852984614630728869952533603163346278374255338749394088424793888504055531499373285175171606946413912067419321097052657623070360967207806132595009133669049903185546177458344168884412942407258454842724239420131584906846533050700391933254114832334640000442244911473479835250417368066897045211324687055591493406039561011036051614971070090350004134184506999455946791887943358287985024919700395242167065068944308705802926684333643888823884724851555541698443881416606479666457367822474161262402584458622471984211023092746702677380107673547079783555555699946538139767680522078607869429197698283939645273980857292175284800142660965708436509096972107702230343299392376119877063311070733980100478199108825669129720904527146647094403050067389418180257194819710883697226385479073444589025479286216104279335433977909048833745955025598918531148450212761563797718856134847079884378492505409097368167199679010194647377158175801905356429322118996992212671319071053459727998360134893384340718599122183882713226676582760662639962132652834711563369016552564383769458102322887698915191931938407448689980987165779244821555407215283202093193103156416993666266191891219001108053383275334042484679850032784043143355937661802219627040272822890587892737459923401775819695073640215454576259890551934492443299037180228848014250866218213172781867377994724195081712843633712335247428376351602727432083657170615445329475211655310433727809897138671878608801045365240564562233262864585798770209822340830646326132580531313760597586545667527245933153844101344495508215546071911720175833337883260837554058130808302667819839485049649595301049799010040628766134369280358778864165453821959959280580633401967916587834435342454957598757792797160755025834508847029613901707174192280010339180245749846877817335331683132939230362634318835734211347016101494458887127613914548680988840813337205207859482831335673846978200859709567117903010163915062506231796592550592863524035562196674858847616363476323048973314374629807227841220413067244793906242005208819379087860512643023573574535427625274398008145751880914756125530958628470904013968560308963557754114677136818205590273175853432033350400728318728707544420995298697635777345624465628937879967364026442874188662491163908371893388523130641014914813604877348950711791200065695420486513177818168547745208677429014142764783485576003726698991311589896695286232307639118448129427541796248641241334946497299831289338444331539958706262142886701546666607478575861344527298723342894503595949989141121895601896289913314382168698044863434752996485581066746470602064927528784627179553014135696166236731374464531311522525799938552421323916954161300040056104203720958424426442086511201182290127760455659897044515365655427968759639689280057034121307067405596747336665017093209244018476098775516453811634991304986531583727973329942225772179890074382934192161083500977236769169949564085413213753741271019457375552986009406448532667005863394254402685633429586960281965395597401914383508255196083063447198797173001061197973349334765543092039522915916910533885071342749694914929105320261671811373745108645114909728441756355634969539050286525679818815404022422078126780574086845303549989416400461546842486467132553675550104029151761100461820162644001404871623060932950321228464605097987374785882207771675903261276765168025394841525987398652829432318840777418421579931972920692404834985015212730860902242161796122961684537526322775208588611503392026633278006836154588921981299087239557877450381545693415822323013043571179078334047472077518953413772336003201626204686456374386289200283728000638823178534268814147734362687945311082820775677965923243463265363221601802612215958446246382571188827241605535978274424450582196584613306226472631585559758798512404907095948529613314785947572706149919598917878611918368351043561744131505282651029330309682258514719508100951655119627989540456900465689529592461696458629104578743512691726629651587903528675654209407616703525993587353030614733930250614017680411802490127944692192492302398872204482231285153815017204553659881172878649638103380776759672913200983322816388531653186070104371936051315558688219004974844403087839865784323123908273065085281539113767708415284941715718601675872084284056437188084133264994047052602733826278773943260496740742279925736843146770758957021328426276603070198096724304793520665871221188543660489220183024963368283016347981301572109092315604946738181892164437861041699724093173228391344785213738065487842637222948637069087826201345156784988904513021653094385063517126656007452940480837279402958153478476312019927800835339988804586303600168978348971502339060608706456296902200482833587461290677334328265762233994175870904038869676631317623326695125047331830950982021940540799728907679836865976042834729209218785285678609984228131395159790310365385115723302229512589368643436908858720218154440823536997009902635985793809727429858354363452519774188434149188184808349295262714409860342432584000693997560831856088384848784505280920872052263063000080314298886246829812412078035286893298949759940935704122785656171332944807869692393857709241703656228148308321147135366921261215942704797577545274798098529603700890736926625389948972067174670715965974857601466990438391207939538061577631719894210831428078700387134159173797769995865970665576794001979911148316703515182925273389831999432194366832426883619955654028579666674058187724236070647169198609521965744744435977750638983212485165912794005733857290358522006677845854475189348317192684365954744374828035690726268293583868750871499409404360416538294116535596161471990978205885114291220731641079551786992616042169199562193482204636595008818721501621643851303098747124852402869911647903545861207073772855463371435455870770768926701159559382583253376075186973614482428944090744367293735220710546529960427651567518256567277099722646728381852667218878644741492755597928331277770618433962667932604767384794336385414933695549062687037583078429882323034317928097181588968901394905761710789601264010755466271218264892716085815727590646109660689650299175682048863992309305549586677264492629645645803305012696408773088943751752613835556874797366032417953148860535467658878099311487572933307702800338951422071420841793620919059460793351929057719726831383630317589160879949346374710311805633093634032115024704508204476911983548972721005761316817161398068870822714136255187082296632020159060937431210485720309737171929734497785589172615474456109187798467175028523823531349173257343263982990632505850268727619294079133380621708623110063849546177978362767176080781197396153588542289527972314047298803084931076732505070743719046713140655514146306845440144215655721072701475498319730732403210312599753235479420390053726921293617463145970409095433622066538426189123282137370217394225885785326735838538220348421179697916029545694573741283742704992499570896073870189441628561783365473126206823971226384539070048761791342752661709190789849688526424535015374342485026620259842343457477333737523406408287509806011004200286011220465153220932952747347030615157072020767605551198509852387247962244175648358209069942350909466498615282428234676479953611174246573699094638923179592442457112339504146036771318393671595356442136184891354346340317514172313947370813209249026399754268698088012044918367733276532093351934357569661034879774744435663441522581226729433935794718702684920005633946664231281405463777323666703248148537571974433732402588606572863696226468194065252355432312661463855113857123391718893119129695648312374231518936633611364391425018342801506829769153375204568340648793400787306796736191966590412268980703744898611211810741911114992413051248825733402682492626917637654761876580685835347085955342845596769048714038821907365544021142839246775866050756242196714419365970746445986922913917275993354227081809264305745730258076420149303862592649619841399169084540902499799003213600936863564663378502423156549820176550199213964483730665188651540660579828650510793602999579491595977958600192812555438942435197847623696794093305273878351459787058930325134730111569391749280796513595639767198494914255808496098552983139640727788152509578005140464878697455868735581341525521010414483534926163270560147884973327752953734130659962536905177438257760216631376511201140284560654294278446351390565474951774525154198151227830316807194302685675902442848896427718128995623125761598265607904113050161147262528048892634154526009670788666059950051405759897012617858273063278955281633816820371798502688028241156357199855216781643234037805062716267961456282644570291346370061015937991013169511056040032581942444885233986524601876461454649982123419044193559324640141337958348591544103396310979847763974993477722657029666118920168776546072571533773873330806091268990788348642800219676228561770219119024647975252590339553064627466050450521349886713356977216524455201129821135016453445537786449569136926611566288268490890970147101704533493443256811941189540865134484300563234036856622505063946981942888038061175137398646924402038069532347262834498343453429521660387270725102623965178770313367467850789001858703875219724795535248350984550989693505171175806221421925208497193972912276643149443876893521231473658523547040469096296146952102870999712214396939706082495838025969191366989069537709964526908131886282215074932072690406924665052158621833787410083844445900736798797114020747388467750076375076266968819194148831838980324855154073466717775655626521353603676310325335210316960398212336134794904714711326157527062405520731901574128525548807861868831845785942132409344444345675386050588332502356712487041998018335109904936702533413470974628135455704528548045582500981464775896248691564636415696342897679972805848311228843990107317474352088440561206771013032296843938620086855238150381947776972896513964782411038931443388887627493489885219610046092046152941928306385934024663661063884723282319076956953857191858507658599724005306371994701724648743058339640413558943946321060920276553051546080753597928268428220057198659984194750724405066690496112246577881914394873424937067575017201667068805492954174608444635956454460913008901218031529717826954669650595133074268477577503522798905161347363999941961976793568656961390946747047684229886751846394738016041046423137481231867100765206795227150823466428722970049427801576030115810888140372378380934381953833084131711713371842396693107316181817560586016506222821255597493744434090422237669382592427569620632155658010814729600113540688238626472756573061958975792956475167729942454544701891972136250185451911521695706925608918535385503681672082736173084187181510074013933589139481027458326905286370683393349362917867345663037552654268364604780033874218094408943110313733139623423812323297484803845740729492749692195871338737524668304460952371334904843931043407526778664007290163088084837300492969658692220891496168305091660828577243589746118462779846022008998383335530436004775128118911817964805256803526211415584885442533724105420000301389383689707925792381234695881840365759611494629194199196581993405432881073772410280211305277008694980463966444898074747213433594715722443441088878866844574243860744245695473015556867330083520142468962368612830371807592671201162553440967974718315484917125381001562270425208424128970962922248707336122501328146089907564802526306922138212696369093172213261561486273474816081034992410574175041975927456186139102350321753576628957656531713172241044874590256936225028551892249577369812793546933907868771601482348815622546414131853090680034260099544564733572158219772565742345821491733891962079645831373354537731199906351691964714135398435674256530357022968810015979294040198494895702617686593570942111539317791280322153109690219456162089988301275318753232354571731085870927144446199964951714677598735459030095846587638818302771587410641420510092839025559152668291445406614480664883410542782265962899075338939534220108509891769876132140607026363662675765920463399133616010860151667018898120099946274047020490845109442522750002301219164804297829267799334519528047342473737913690002674514738976715152197722888582886106847189719947546826259439434727221609894020970976458045484435707007607519643725890765435538156001460501763264103993234944156984953341751756192780267790858826076773236993914142914508284603655711862653226239929642839392939338753109777527766655206343228388988568012672433196937076545980369466446567882275217001252287020880138477913849381497057625193778331871710506251136121006513072214656422867031488894031997350086703756380227655816507656251622855274265316088278657649048600251621835930512688117021372715566427818654948405889979401082916094536089736317186667281971871402573884117343762402975020557355979871508431031183613446361907076577587975983631694235407442463890686022458291623896103689822986184412247463412756423431532196552701323672485927359220364253559885335865808329645431441984289572669065999709262512825371149399706816942425338760708766034507929851677511328931589584900116830199696515359718033780592153114665102911259380462328564242787836902764441861567555882002052895474781542387835521818620700115444771404353306962833280777687989385643579242407341913390299831458883862167236571499841474669477543931836645004178621302253275275834298615961642247986754963646622576720048859336847782958029797787719185199674765268492994028054286664623900488066276987638073155733550428419886493600881959339344380085123687330929738304781400232149443561088884404577187210603143252843340194763973241815097542469210265187377653646877608132309642092667778154936918041766230122024510314504590937935054550479879107530480742057207051757854473931326130243182515686295842095278857840470173094333085133170688151749126554620042695853116161787409906790546736040185247252333173611955090137252151162583279184789180523964124542202852902906265123017221173522110040487105023735888825859185095572882989643944123437403302712871578099035615469735014362235799767838896316886719833198745321183968403811762717958190822725679830330204623922596694526695217900569714861668519770240664250849442791225288325843534363405082743029215776717766506317065621985294903503407936153219188897787289698196661533140505984746218981022438444675505810503427461674922592129231438925792579162841913410974295580384716469895989362110948976954812698346570444565147714697517306970886360487626083888676824208960240196930077461901261925513534127427314781704727518361171777599494580520619281181515474616042840342517700317291754426584093907579378934707407437321845112626153620942849361972826847370275523558308264144529305488665528218927728894075939123973617014416763206775131575596152770545752948708643212228535740309596233951749734542578252460548734994191415994085107746228437920946799277173084746374695965872957304341208526137607192991166620396624947531368879972181377576068673964590933105267329729756328656227383074010090703641069492749278090064353954983542346900371918036291514563266168248045189288796669121078095650429398239189139140036828963140462056362671105718725269772065487258664455009208770974628922475139970322441636594507738000702744024405224693335268204239890446522557137710410868242689246833965864732418480152863759209247334598594758772831558265344271860555259582589139375877392092321437534942493349664476514108386855336249151987874760099018679551897724815595119655640223672406024842722347936675023169250806872725572346926641890514898653639909237580611943961838792537297447602984278515894126102842476591552094972663422966654801244931074905746199730115484616818829909367427130513927042882024292099967535466145874989721570390851707899072746069724578235758837213269733451344756416014750756567909203514382983722975625964341619518296639667373013269149094175003547349184616710279617648962967772496889548797320752941281839275987937849932518398036521633166692269940745299491014693851401394050517923581955786177382626649130526491400821556513305280248293966522980638468431995995846148281710218718044154126822013491094146364223494704990196734110041358939455145277692565414224746753413759905166530971887691567865234423904391733978415271980355919907366193526701571891871303992326857509428039608929282676244861790673864562421147047370284475188139694513990215928672268380574155030087101070703348741791385050316460715245706979982916612680925730244763015566919320792987020625697545005812896480598904446694897336755462571207686935092929636036768143340472590560944090136131090053415575267035125073298819253872128911145318241331933575791098835005540669199679230965751086642666537844824464516761030375619729500025729435701475419712842280259561164337061197568713617713018078640322783067615571594072345531457411954227219479097608153517742364195524045929492557950458534789636583602073373492718556348693612329556006274671400688358060549827590116175100180942579339874516374819865247014662765343531185243862447612558346355363040421832233396286026617910786593246210487690301887565622820011982372335034660506016996743367508606379461234669396560460433771597087169054431057971750799548366870709333231929858657139937997605247664013736720147259811420830359296513658655569562721159000864907546855366663254958972036227411019400925668762437404735463547407258272939054530807785263181555777333828534748962677026607947706074390902132806314662542270402083754768614954912109471985786642997474332086908992372441632203552621062923497249137185658899081301058260960884002895794139904425060296220685157057170302261303389987752840572552438446808549251211253967206269709326577476933281038765957282696810047064947467889475355978869877271785189448114855920363656730502038184554604186737946005072019177588170937697573376381955707793389121925961426977738713974940826521186235091243550103137294356298480766243921587110659417288519897270597464988789821044987944559454757856379286626972485747804354469002692885708161623607341036060044074227139007480314781048875310485859902848376826863033595914005507627059564831216508974086465416842889556922946201892389901044338356544653036919149254953594440151529929633426769380624162021190170233648901732000000545360771899483516740797038062011367480899266409566606349866908964885531607158087257037871678943492251138343276952589245227745017798470687938060880610059909777337506056819031935273545363988323808724670977694282900163305800735405294785058424652603792106026730331585238406013516136254205795421438425872634142998283714168232923121808973562402359212140877548292337662866108078592404838531954866503468116296463109597365647355333709139915423972875779617398892816687581624796156603149447716756428571072477210946168657077243292336523751396408626860116977427282654236520737661543925028870082731358339027047543465843890668015658724316282756813135576322991008791571884718277750885034472181533600168101718810364713746159644491511396879357819852063258833545436585569656375307640877846863798217110330875661156894253883297149640320422548002687813889765781247537089633500100078688493470053353468245329148329696715373375042888214630264744348991055503383512406627058629054912994720744086280165506695335992107347325174593993119408367286949914159997191850272813904399226166339879657485139169149438005009443058151145278288637863273720977375631366534065005053010509432281234831453929521051179736770651910097484306524374073237656541721425643391459351333664435343151366962710291387354720264883862904122402734332109731997082703727538316617495832613054761022179986328948504121591335128191467962637309482193730822369416747335805119397883998833274373595258577464640106316611464358308732908423948637835367846939622377261597039185625668277102085377526901134545265319079202064589859389702643037891394539134829322101154623804766970349633168080664802805625739736122840171493801085722243922408988480056420267605276113783382556644074904733092894446445214010367852724286617485722681780422343037629587186202109058581744313891849213791923433316351351489640242460324547531584894278135345268120467849214603373151666271514384793218523457724713509682091143691976558321039323750055901878177181086473145929571853159735422930283693834512772877070520334911789984292688347526832765346418168184070543883080583888633299289001343340867759595857703506055550247711873610190404041389641010548655944243568922835977915572378750999637334319955393433547174891512605453175738135923985671613584711934725081457488276111973567757751573280563162917951895720092810156440088427758297794907848288871425146610644540048227666424456077257128027359449811481272697606567470007378212029146938096108188010802266979944283812786228399458679937585409735713937712958614413556510885286737869980428991569390288421014330375091730616448894807468740016415753982845160679047133893721878128049686321968821962341940414135868498598001254836783135348931619309018567053824163282065438095927160767728408429373683509897449526338107226435958794932445167125123684603294969918928762251329784659501011807579857804031266735149370405159117615548781603780257544120713704462065385522888653308436055350157712447612587886537600420734971795726236152655360885597625047096264027550679824816880158514154100651970015316985921596766420615212182142569911799454503834674872757406391592000364834244687334523855517007644632601236759923013038385943116990481332134211235326485721693001708536746929220323940702362094009272307293367356645610446992709967888854763412275179490931139067720161715143112506472465418602259352558977150833142923436775408229585733238963550958058841070407599708488481770496786034100752719175014467852510034628427301192175367043637126708713620694050082160291606729018599036165185284803065539324003605324797106892239377338792791467409266753846507080365909036538886243509070649965407931936862727050052715363595338641338358924230251089698473186307146831487528955308631392253851668746923061852696097984595812191271575103104018993276429862957346535333022462202441613346017111251016018238168122604110031233648358910168581456713312312472950520504361619415332444189803470120198475260779367010578731839472488141487072488422404635344061316468836690224464827334014386359412390834614881922068127386285525854177848332060459747014941769883934351647332250528189075057576999525349873800866996259945869546462807258790861977863313391136215130459799470262809180532747514822286619399677366951353141717886556294603588253733219616451408142957245449458777276587081925380794006570621769071056467578337395345010666179461101550145647488098214696243871337728019022960224026435706157823176083690765093278722088622646270004007529603236155685177633256322980988903762555498759276398969177380695857708869413008225701503459042723825231121384785806515469906255138913900885132933963926142049183409538916181232764207323484608033836881601187523541452302764914422028553630546689469722048347551891036207899342681594719475793696666533103311232465011061222422925502167998971606785716484428655143127460402297907988201793190016995649790987817693938893087685430008919929842232549914193543436090856289410532009911375451778116417501860779382414211823236808641684253489660870530304650525480982119216949310662062184130038884780603173163999997000678442710647901583722946740946656739151919551984957518998289105119833769387620286631425358286250845153416365177658516797984014318948875433929635769781335628221011771690068703237799347535348472506418943631179726397651811688050043106176009217113814651737994367141123029011315137622625820970682125528324132522251644440059143321540395845425309653264637555350473845347845315118055930244720971368433529372778811039620746814531641424635094653537710775468778891771345117117081204204293591980426425992919389135857464536720661941214163329784950077777915986080837933926809712471367167406348144922530464694813760613489262421099399492823881675070432908972510754238869433407405665330374672779210581282609008687326202821637681902222928216899400753530117231524912235219343717294606796819637191186524477766898896022685262283339483013895087203650215314745548179468115795932666851986051009721364625776922721212468920475794873593825191992387425683453587799549930570236530272193165717795708515010055393639058453152724710833536585217045344916686443517465540686887406314526425640089571431313601540919026335358279528443530894025966837280697056440306621523532147947494854827377324792404514889159342031459383373869300259797724510841459290945414053411139464706287834455132397171398840554955491916636037079950759278327927275877500588813058153047026484816299397491747179398152675077801743122905097069499072189034783130744852003455239850461175850881369818063217591390766502716152489279890420726979317936084656707108990418619563885198722010895705954578976377274585352137048058007793104809282434742187379760413945115918680218770704530507119149528709376821957468252867692410336781579127119536562789221708608074579694536032684735019172853130674525412964562200494728340452418222858748785177792779435917555516571154274281797553700832287101860518870787512558024025046023257092044909616170382534827022533624073933882350977618540296016412306840596556267642283237789775024076860426306318781065580027956658739061896333403518653432932177637396337110040322116582824436347073573514756981408046430392270730410827900815325691431815311989908957850601014656170581906616887470723413461474069582879915756766686906110998803474887680181434351729459977824934152693616427052454786961172791707425539173113618707330649533082108057370931589876746825073212889717363536426458307714599191580635473256795433728537854691701322043671612126642447500919127996938130941752855361584302134731953538901506280305311108607612353792847751650814352261924715966812209727434703656346313860456736153559605644756715926472282004309080749392007048698418556584373080691604500862699118137362883195080872128457701824086507142907421971348726330149390255274948994376415949771124927703643011689357137255424819108612898305843950689974000433286572032751894609135313164807965894388044549268369408172603543216933879261894217433368243177505217867571390962010371948447577288117084008256320553482159853841670208109246070029691837440826420732356152349880693519625372098902465656658040888120868091463671390895963722802302945015114327723469005660930213945804476830408879862373659990526572667322316713525333254292156111185447866557599754702079091137301832446010853978977811067762925754017470287085452822108672636380885237706608350622114540900618645993765448250881985256289110280634352307841370686589902609187238472160109293315598614982542488925212347010798354934077665458241285925784150452415813339127821595294763449364625331772614627901202680838015725678158643047311572817669332524414720248184905398260963113230926425480840981029391965970089593327217198858983223228701346176753521957523011788782992447527154960411257638621595658388025532818918054752364281656582508154830180753733855119471541376711960901615904194731066714002371037333125348181780896419877999988031912307627320755302459509800508423451274592797249523380612450309183954863034939150741524106451176607116795561945739099841289782874652355803809783569489130803179032405314003246626782799295328628828067886705271559107278856762290331104162359619289166582435217082639126838655477153615562884885334501262991368620952499552008347578820840443038487225832963667228357245482935517207368432416629330621695283987834543859044279434547331472795741882689242117340207484501027558363570176556027545085789272203366805124616747421812014284339812569058016961514096940554216431268383519677933143433134125894358012291519425231524093414623409544411732720826328352018380296018187676103262710908178361146837903460793873650830541819187183398030329770910073273955971164216068380458919640866902324478230916783783392565742994112805259183472855938643451096538182278031482547835760629023102683646876574399904498102318714260569172897998569081402030975605166434018252504769551411327403056224846017745603171866663734782120156077422478566799302454083278297614466035367011056089254224409598406716682840780542695763195115174827395348906761690139646846779117407913994359510419513492996996513457550145149273129883366481849700393684644967833483993268087975728107600951867983364393631446025096168819811259352981127053503881440115919386349884526629346144036002741185988269962911545239345222254728693253884901783926935923551445281365933170984190767329487615106003781464641361208050217904750481293757701957558963148066461000642873501546775252604016819619030908600017306335131355346098612238605090804466475648396404330105070524294430555621854980402863853289975637991821236263282853450485213690015789092005142673996821438681608840513270759787396100359164571614849442713803969590150839075003665604509204305804747978683646793208171292804305322350931787980899551524167625721582044641768727364985184839102735006690407153631156806546778636751552329386406212743737242990049918488308248028264741337808255231765660312139192291138346065126651763874229629481834684789681105739194020498962356485214338049334463530334543307307355522499336844812752396155457702312581547685565485604124588194108327784554665561204000117823072933089811569426947885245981792006897079727472101427950145008788723872424014685169019995523332367062505223465361895269035301144627966863591648566439981734585891057760986206361426258525981666617695811442389040234148689754570345684367081716878852864851374747014047985460403903053762813760967688853949827490641368109493135522923015302014762109798618738075658661333219201442429360328491392569432004343560629716218196365342368363168413821631449020947815328740183495717812100093587146676010307672285846161439443448384252666936007421904240758578962632891737522457334687564943567727664253830231185934539364091164994989979858879636709179557327210394887133670694963662814606253597282891407657856829514921387707042385606248525956435285974227099018294894236384771619659839004752817640700073683467005711278770523692372071657935473845160514025028380457010684236518715535752545182233782010684905384346710904942892918525924297708054298380219448251594017729535414303348617722127184565599943613718321939788053111346220055289289502032474140622222692245827537151573833259525181895185814404417329533505493080429659945307351326684729137620107610228669353890123628193421857424542584856971864437941039494630106847406320209211674338952403291990201287055929419254659272624186686559093358412076636700054682656526752610921687583014716617353493025423944659158972914055114785801105632442336323628337120309892310421667356548037877633796896272931430929877760961295711120946109956704692896860522118904316344257909001442296483910840740525234709152019878844695546882705167027995361275851677010080893832196090479129130055771042093706192935004367795790273091705751662664149685478785002386237526188173694366935913608730971921287537799050910877806443381569468750932537879202952805474123744059499275090167421273596118560443001149845823758662104847747568357009709982834422130489752372028092748186395261706710048279637216615222300111132373653338378915183258273549817169922499437814384250820932912717367144420404071374560031587457486841454481908800569212720538601705616620591718341299624604478714604925430053947414490432237959478500033487620841149085811887328289542010312112355119618238743314487865773541145750364569875452878368707984473984575512107647220776235900008682331721676119368315650763933878481284083921426112186618074310392477081290826544137236328803115621567571310959722532355717195059544700560806287404547009734551974731532145182030770314698646828102379797440719386102307700758548357392451378931825581318002884811905559314681222644543304935304241335425721135069015638896533297687456982552201259503828549947185235127317094483100055238225638543003457722819705011903473638124968288406149031862678553176465578379119030832961733186185993027446412273193245488845208121178125132025811223656379635598360986761641713281886571627741081437121739923384896787680928685205349811966325918498353889038314120354291162094332113115518067982801305605058317999271874309267138606351684276869695192565983701716575229294833852221551995917493360593375416413382703114988952241180305266827916798293657801617409843232012398608355149984387820886203635630693854227787388955727881902497169928448613515550364729417064158221079590902134991245978697528878636081070161733102566335051775612450844779478414753638459545041394433361190720074239123647492129993055153976692423316029609893281599138349269614044699319486786196897728028995388298822165410146944697976264416358401968238331768393444745497001214533747519675544863802643469756986760437798534014463954359313162463324864747164772536340189378644986853402175518198841571287923438246796938438583058976064168896300258882466101570062798736251009848911816973496411497084544797231422585097958939390318841646993304431885933528913694220321775201633380162234079973958152162294217393660551888134140410513925988193158407815682332682572459655601222919457784251639408455979012297086388330378287907281976713160570237661965395329809819721692114740337119377521118561046333816633794946020945620938270799127683886055459645853132576055290223149302843526457433414832717955663768264509007196822722839954151799476755365733605824535960694344864920709631316386413508051341759899622402410700618436334679066339635502462167473763791462680750635126046293499376078472493897883595383482686129564404931232277962089228471947022363144119459268594946348040737630407861185324338154220187121282561934363156778243173599733609994346379909659117844099678315559250696119790472258195063656803744456273039535405607487114388855234691803895518821737889092445153151717480992169069330346976490658260738607258740288147989586783669774514202439287861144656396064456983895911120789853429900714548026844838286903250880012407058541181030193977410812017631078429258116840169491229714064281020893195294771368654979976796341494760509485519171332708403200556111072250570996826248491329474360452154890336628250311202895682515131616687920767914912828993599568216372655250156729691830870095800327563727639501873250195878358437718340578233656848680189786453476548899920552463518510893054028471709058611419775359533277413316484588864199948816658902934387249502992561932302655517541759653294952109886775173390292369280695944546459794708695380728801518615547654257349569442917133317595657679886281907455145591038119017209896199826114548086610637184716150502136559337100385692795757490954207152367188100632339884030568083289474211639807324206819431000268791308076779270680051561072010472927088830965831825210644025557780322925844081058688752410052198547892903824034043255858595397864062594607772849645620020324893377695998363721272227980898596719954981406536680011643794693426101978136700186977634474202468607914516927427693426832570158279803116639317190758426333290558697629606539780396979433406588305413778953892060605834976491830352048190320525298100166364715272767067659141947151123194243795192716846187620220638611332496184321363526963862843121229226738013945690166855154850019572685625894495230528452672583254602029314565060482858653429412549843010137914859799660815183482625800586712881317879032452623885077858766017618563571137500791272683164472003093189921695573930790676246350102076520706871233493067987499164685923380303962547686888016636988145815501475205714759491721702677703714138206726153504789174491146443373120536618793551786890096310884273807719566310188317257351984962373652741454595466134148383643354121962823517984480521914042281893166550342839720261333649284484540866777696784872086207462608351518251523579597400537827159332863143820132798002923460912819490252379984426590740788721618274484279223754057319704154845367617086295855199831247495974675354135452223714575554297287855464607082290198480037178926082350950909681648828690566355664448155534247411898113817339715452322587707100085045063128140868990911244876559145810457350662601739934696455904821720144412055984078153460084363773319986394418366813814688308683294357015528769363205034805147036830070552424318606276251077110285630492118014146950940845552222209969597129592346626306331407411854089057071537491471880324151533163254016801269477776642107715792775743530348491847107200140326975697113593319571237788775837234301418012214865809650086812388019653147952500437124569410022970456725698843270155363855613418630399486745471572558299178211559295893593325891882948903322629688457790464649004261043883136337911587780350444182042680106979782215990201662182927033281114418460953974998987513607403485722485046057170987754282150548336020547618508101689250957794059231796536376816781497116767249560497448283777799783342283961118209513174895812862532952882387015274327759215546427947757541400366576390522369099224833447758611925793410854455907502090292032315468023436623940414079276757838259753481830432801358980760996589315301005412090002405106443445694167137790900595008442354696499291657288525531513264696477895994099540696086405046932689554780695507205523771430346253200947116676897647172916778797406905361187913968233980747351494819514389014071107502460134295270216076869756881649512497020226640985010818141245676028448865895124620908472625902960536046531874980518149597883198033701279064510279887753378579237236895221682622674598903927845629854444309464949005260647746243763869494965346596246383282614589951759052945836434771365507265788179445894939586381387979032593780184258683301392908644419407853325040009467880214499589073062918944447564269801897614373987736685807152258567620229900666776649564915533444288102369943536924925624755855434986337701919744664353500702063199362261682981747101550024513883755687602863885714165831965083786288641376391182703658587215123003216001117464297922489058501547139168596937912277838237436231786588836831977797107956900524876138716280372092231582799248645856601111751622978961641095882823095440564261493487544894673064758183482791354756749702287571092843679005975528248977548737278714094777291947684661806236335746057754326813292173159593994353168986286993702664464587706411482252009111261663534090505202080376444743020167311257559541627974423141782869095131558246125273656294739768281741937548125998397128978930901410397331602331637807698188641174433276662846864321314916660063020748568035707203533496904264525766587852401844012763922930843378459527830898298332574570115446992999326627971325738635195346850255173534511732588419558291642169630643599253134288941326337551013063220333436492210958529795504819415719669591701684599822281947617119299980882620309042959245923760347757835208323747275324750008602024800215008881667872840538262754661110113536648754088928105187016957516677107806980003636535434246379654662142290922702515228585470069460460008926213397586303553571875789952647176613175127080864339618142423497613925700292309438641291075851072837180314424300618011027444679547055072593610578386021743015345494838356428068913125375452531114098454513571507627155182984388642464060024067199801135952083080103924606327134478988803978810023309017657341839013756620200778652607010237637937052466290954728132400597101688356517955423041725274317872377694622356689462539223493272436728290532593213996296100235943593004875959694818734618276271490604275516005587098678915782898152862499515473293835083201579330727297084892621187233258896478086945233233621964986354632395317148611584290140411420964012982422711548658124004546599928486959649384612244774798925296203635660645095773953968343397483643427863944448695130251248216246651542840761834019105132810914478821117071677110020657204709130198684369357560355100608989909258976425718626201402760058209829728773228020232629525694083650692031824944378378724174334638469026397446327542056697602830499355077136574500198903451101578693541956485101007387505761168804244334852691830924198886701616870768991628132748761074953653899679143453794578383810511750863531753128273517876457389962168065124361298869377526849101359575248289061489668905055875493895105802761342535422443225364286164561883517541592715584365852783777577667154672642762679635439644027463539114642823720856673746121488539466244038409907437699577849924205556583131573507419494745363760835778965408978321412913515500102414235917775296175695053912618611432024513918596616442488027371833200649245187644465128392814107735595192527022057003106288708895558040272678207960975964131592482549208953803643467477553778770601992564431554546879698725998211308684407790732179284045244593040625320749192889968531281557918752796928339801354729227039168329861936921999432387988159491717928996127605905391157865546984816091925115706028228324662979131010689782621699577425748620297965628064508005272221429218444268685780835594393682470711905922177164044792550569379028856282157945872722809584298889251311030119125356163672329069625697196978125647716869479874611948191185211266813975481312661293986749637601029075937177073195138825537208041295067777460459611271317335107976761746858931276747818818142962203893177467020366496189662690128169675133588455186223386731198486883584520261769531513882599855624595942034876424604291807579172859057533704236477119173208537264594330749725419746623416690684124730264359338701110506955920278082901694959633227066682918543820856585665059014997461062799145015838170642565391062428878367656188544107522778211003037674604713268278263745395175604701205726884013130753500399003735997711431906160460020871535172594149191585127856966155323877307277034086812216324625039664235558620634031828892141845425277411445212250051291413165398122049677876550869827940149541850991401828375623615350328994113609625115913372175341891872527276313689730275251140974846097328652084882928862453713820541141637368676589569255783661092418478392368139949318373279205124495240533116886827255796671583458420171834479317334509593850405416313843726716198188620951281530135538858108805825379841669378240822451074052415526809521100909219932252441085946408934934000409210762885867890918434898344122885485214906227068337907032894321795563057617679912467267515682221559031771495951920621634669232842123484771285145813689080987923013746439733260175419982882135275524568440485757423557019332549137678773591410571489473317189874764787585502295245542918016925712476999925236409105633983062730696585156625506671246973365945879086514578798802839593375426782297588430146647334012921059702028684662203333627434956944619498071341337063191333879440184205442114072106028823298799995205354486034969834156869976052281080320020852913649942747665009359882847746129152917932918952877315993501673543653465404823284782386981901103355757187146182333359334591594966134322716255714852271416045700533602019470904587004351058633128294293352063287041508654326358549183447163113786105041926741404239465744549279104333710814051257180609867573025495851047941791427917364127513634517933810818792246603884772696230085269060644047162208718159294443597359768734655576022719913195038780150196323595277134698597550242099687808800472146581301830998650286997051437519591142396832702427217459387743431773686235113103488533728997163300739731830073835115200446563405484620308422221394063325358790190365048998927854999781019183076025695039248361255564430467251383516331752174587078129557280127221021240406770779180560635318417785048979427718708252486438342735661891379736858829942110159310361174255292469690480287985278238551983377418907875146591255483520491317209934319127947072903339453816400244933339053904202850587585922251287424159085680604736097015644749510978320248213852478786847622997598535538381499811384234166061688144383368907335983595490164792234191991078158862721742076912279431978617782161460117595703165122120939088219206642242010497630569441547924840647205130070967528997331738362028058303248548321504123649429711367482604331845252344437734440425783887642987447146417782960712589807591509702459495933269978227167557424319393402446071891294167999608646724570075475058796351361465813494968618151667524184457739640198279788851381583495442089170989303768984046759303004799916274425136420282778026382606232351143071570455170633387459723615713323853720820261113686821179490910015632615848293279510437958153302989217011704453990452833561252456058008748902171092227364390363950780785185315135472510479899144647166573547956823304095916922561076826135913188448883537276219194429545137265235364113446847289126016017526190489174810040626959364958365851113903659334128078087794439036004796982091738719730007201706399520755945341824184393238414854213024737903882801855194540567365496525161777425870143481217184437392909206241062303840621201134588340505407529120284113414566852597150062408104055590692314412871677138396723961454205671094437191831914624633389003589332109077000117529072868371538663982803293944905322277623687363636871394874338746482115831756739607739348417719592802268770135289243096203643468874903909505849641547242802382534617167297236915080575477646126042452380224845050997610159902467346998093648401288420483291747762440507348847911279282301320206386831248871590541702586264432171137603909995620345634198707650585114174298855245698484868031142023890422219741050659180093900185167580922584826056414568803206858312535348112852908810255379949129031386104786096827477869522258340366895234198746600332588343207143664151181673252260776738393305647587207469801184463060416977915706728559010371100993022616871913406632556499588346250082217097048037430763401759415659225705491332324918261212851751003787889889867497892409401656440824465740832226547895930455150700279382338409586886009942639359827233880478764890494561474112688030420615082356906673176471761508565001759452214382101163804297428284126726958802218692129619834468818605412298457692921110179479511459285592498164457635211008585439846659393622893567423146521019803108903999302148927759020950965510502173359607838993800955637042568035457474031138890987941358654712575405479545305258998952156722174736946972752168009701616343609924052871493228057524373745406657225404329773350199031775370080610988081578716283694786532770070815209704469939093060675048309189488863191741505032797828665881431167490885566676478258520345266130340262603804196856663309635602749979679959844608288028766733625863944373273174992761873756058293253004038399870099652612079938793547023487884018536706163886044499693983360190703338749824016439504886530902893329958295558951569785499682130436177698366946833773363785745433086785755859323779589623124615071714455973843756122591134119988316116973050702110249150882801035778058930748009641181529588112959916556190363922123934167539543637028721336927284144782183455957987248387172969515702515985188868264702508817535044734331071371675135294746379584474479193205806159271310250286841798572870691730484652752229617381186746581633751099463531455652696950110470655545876750487508481786849240448847399808841615849381695321979773097690973238074429461347768266826190806107338063548671493439589334232076938286228974358036093483984238813227785280088888551949103912837638578028357928755564366769977406240947470272381886086560404612460645305030399731890790045897564550928596457234347060657802144021854195169407443529692059055513983906621893175730097956336576815030664371301185816971487466451758856529150678817873763453279578404650446423802989273550706939390569938876651133205128005483523531916529858378980883132323956249792535669527204207683476032242353678215902645858998111411613419141749921111789937045188978900958827785290408339135474053183226082298992202180348626297782299137675687087471606654662603696614337677520175984161157099151535914306890292917566109023639454343585046983221813767533440047247268535838772751437457148804187059880025943958989628571579130525456978710556184655438312348266315150741124042213228909698204461334255038638522770927142561364080789312931776607976367240074223241741191663416375116805332262575511280586948379329540190036579272817159425335873979542644113471326460794316428592703513689836589242248809767429246420167722826851625207716139775537829234923396954862480287819811283156230723404136903318961607798489109363604125255207162051712166428899797144450762589598231698081093739828098640786270844072465870264169925448002975653647258984858095260540253930807659065197058412985233080796299313190496611551672672228702016966722735934634172185304481156530493260882600466175348425592543640319082067673159814383839775371565685445833718568435881233669697885936898314331450773505468064039198743333507372608968755397969445517009931529529763924911802873817808815946605757083151406444151870535103952380694610900811447984889165025668876233179404692502645713859207092390135277826349865208796558041230879519189086026291273185136522963904122242866961613698597864159169576317147033919692703901289039106958271678962076509672208106345577822761168421751489203708455907732963993701532535737926665623981559658867731770576202745053036571440459258943830435095958721265883695050963786872880491685852673070812170780150773028227173502467853579896506610288353149528425187843708122693773098359951162955342223421248003457740479080345211412376771823273645910432170041783081536344444164736590831509423719132907350350481184115315226141150081095354356360129585824985823983131629866980749049387735675348896993262260955279843363715444674769790781597232592948823290844010439032713924817271076313837391238391231976308231099818616081815314751241662583923858932510687533939926805700323573193970930497584666089525956433612464858586866320229175045828024546561768123651397768046111785747341491842532205915674915387888352627055041908461158944398352240411283798771486929648466478964955505658555132250619466132209814804410269537723012646664208182909760267674623272021308472725654890127603744178824339409391073470495077318410402527656592775033817222760922730696236794243355118161024745583662319959913209378095150658961173598232212533163746088119811660051647326694723215393396747670943127332515685419132116471099681874600337255478695639986989057475666819172221144296039300084066195621419679765699580449293211126729476743888472218733696324034371727531957511747113054314395110859194982048122447847600139795022369760629940398953750278975122233179671443270581689845212372594478528609342196665344101124840507546242377120907263560279892470222888140116257086838996989005148319169971812484203202516001315600252557591630514365471480190261636135138967405469123664265592775844004281218862280442005715585212513219078129992495210379257395183632542983165142523834404163477532937416120808814571522049976848348016241264256137380729254501946188911301750864047814766322456024885447571207076584237879857360255217683274329318403515331461923052556093738029377303320659655837456273911634670451673070046851359833803718778792972054502127014831363606367542735386179198814060061945186121049997259335042978897117040693231606720084216599439402080874501584249650845545715769959170825448806214957873404396311888455834985928441893123330428116899865446920093108105105776898927904117645294193012912660664513226112952123459903288727174138078181380364750854209095689030256020333732359724781763677956023218681758523286444093968685544520676440783310519251728772184146421001003769506477390611177422012227869228999047003811728842033630747657719115503995771189737256632120629251225807783519744454091929720345462513145127660110612966981059842876488531132056950052892461806360713526846539646436899832924938212045816980406970272120571795034356271199140987572307908825031532535673121829082643350169652921696588770597683383072115526451818058166862949080850844225419528588772734945977229712514754217767213587779554637996380429815026397738630953168459800022352958734441792593708213507608998718329262156643668320222734255010720975562846373637708026838787954733748416837887303551165711771541349391036738564211604886302553203255028490677853241613062500336671812260756468872571789224155700530542823502037157870323478774440879491217316454195317155597732053218262031156959873534159134355975574687792079830684020795780302399309647536488393335983142380390741598710141084735438063155673632692194257905777270246524236361409236701039045191846830379180027369194173352874955389582585801232442177112160163458487268124030698936857571093139831113842877421510647501656121932730291270080863600455168421431627442722438944901557744170138810246112675544147689696871047420614846631093958504778072258884110408917383457571320194688585898235301930742413839136201815673722592135045689428646703590370641808446292604894912029107378243674097550991126856869449428651252683888696521178490495119698185491946092273366347410061747030738177580824257302514799353692939276128484451464214671970743751455644037543813481430134918342653731620699413175567439065352160285505039875628561055932817042233759067159162854561021990024508213594283187781305610910700343343043263329100738940234631179778269680554278897554404786114023923361653917832210076343672392810401928597753290557113058238064520728680829590612209404995293285036516123191746313598052886808774805062421610003820756853110702007185444117837053208070696797237888010301709841976901497969886337593093199616154385000568260711734822169505875622113489889919577924502555113459598091080782908429156532613628447287028700194355621998792879640137329217283946667034943099186526543068233044632958627240426886979808700408040652279125517860303060583273274724666853415422219534753922690567510786329249884638519996635314712921978254050219218699594818418970872154289113726419898574342936110068407754835147105693684728133667259770752606854683891975719165143268663016353159335210488611138189110948579709674750247457033176850294776993392344037424271410744186935590702639033319154646483869054225745291621638447708222012248903588156865990563193070896682035181103880040093123815960585580167496877516123544124790190517565331757053517098305402316506307660471479580472987361328586396341983727033671206264376680956597248221513625068325396189917182036454804640479429023810837114110882678563952187507355608960878729098932381721463075249707623463296120419199475913120267246844302030153494010980918960680666324211987825855136282294637122762077700090635816425310400298451238002147480816219878350365917368254979568851995567068970018945985895038081690456501282778472053561889607649258911275818997715044624705377557762231888579942187568540443929107750334292087054737944489946582663281055237614018461742074443957683629461721254995766766041670932989714334484446420270219511240450473977719084765634614768483664975456844489486528162218731485611940768450159546665307740720715043487488097234124187875667709219612330824711522852242516832727131286205790833671947590679287801770991441171864948092237727082859773356858104434577693755786949510283452086122561265469205745676215011455295307929500020232577733077980990878756277327432329255704659450397953768845878232015187795179244338900543812361421534232252446020886681307472734733102252954136031805362349570473630474716515288204690188044143996300289865448238037184002311898638353597479818622142719493886198244284464023585305000310577487033116473635016088184678938841348939173224730607118063003516711024709118941508900974024778252591548233022301958552085306191471895180644964968132375672404225756298328642552506717876877800518795152278477461478097803392765313466224911197604436171478338614780069062388671644274694830366412811488999419990681605557918094863577683885437985773842140690417300701875442514278663825901994021673993041392644006339338603476811833198421306653863262406656660411948755635915111148455953664431196679961361910836980887681532610767694605395836257884124663782567291143008649976585221829130762190811015491989082468239149935748253488797447738917395630393993039130342372595160327356891738256854862414897249064644294220656782797459910785571516192874369901508986600913264611990392570489573018993948938440254705565795139890356309743788043011772118974906214573721170711601040327715073965475906319639367824409929492037749756426952070069598681463675737896830707756472115768520723755214207819755546837120186873484433058991509590891426400742113302489353801211818246475994170408178328789438063579338826261452339285550883801528404240552760683845802452581494174596062444203779227519087097704408139067342875828556919949651808840401673120827803927993655486701673106560437194979969830186565672983183354146557926934120371901715091260724651677689882853776546140964667956278190772702720345112932757079589297378983695080550302496579884132845850032533551475444614749483784395010711538775793431626875212739697749659131013732046600782749380855403390756796355678139003651644402349458173590391336541256802970917495791735326150072660692579045997206777575418128865651996416065765446291875106343541834651189447084901344921056323026866545860071275717623188154493896738750810381422290105926535483293293869293905976100266555595526822695435615802352981946193073246829890551440686745599724151983267963703151241108788170303284380921525573104932291097456417261540421370255717048152183441396010459339559571210128081190917620150197168900345412751211675862100957274389203945316368133048067318950129969592204490024606434190799144931274280984214780550644785023239297073645140047840189420062044251873729518676951499761364741376199639173949412212305547373978232375621011746028961145652866526646935729473925647710706658978453182261638918205840789111628887372957252956953194982028352294580513187751693062430773093812129833128681549680427779712725669944250761577748314208243110246229923071424523542903089862707630431458084074752617993959866440976204807754967418008483796069829542423464535665384874227194824445142949813044680719127166318860950187347244774513310199305510487372870951980375765928580473947864345638559460410815515015983108270229385381046940031396549684941806268172051487302105408139411425386621656706997222918629442361622643649660883595111068152139845085048308735931147479365111423203512899064500805992350469313296316341612049657143307351339889710560835306663953948886441689490104861559780827765927294299654028936074300285923073716633775402536782842001652674011301871438397159851547956282248620031552006829353227154220739305390831291856299857151932614616501198644633441137634370411459801839016484291053762652180680436799306083908193938000606732087836612774509896179580273620176027090445460730808690194009326100105317060967174635733940544155681391521884197752399185848140635792259644948315071228705230806353410462538096891070104955728607400417001968683724796055723379980114195644874561728169046878181979808109822062768375389930852012842889871258269277242065443595883104676185270393356082501340938037330796525087197363712606615880216337183936282199627233255079754414779308223571182249954513939354207337670818577746734372639952026484100263019893823754000503204695694204959853430146173070708482316108722741670128499727522643241896130486819915735486944843758263150077590033372295037982054221081690069110392910400309720003007542946469001340964406234882391592772411669984995602354034126866614507360896133296255063910300855698685724625232753667711849941232035253782972885166529489652105981415008502656196297764721919930429729435174333820384407348930443354674962688387425676417330441946874737681349104553189673847578383940399286708185986588894398247228345408906578579212654280803612248082881922542003045619164961905538929507777401874371219382965492687970809083726969978536704807940938626876043452528898781977351673908633743520531354607493451603358836959366518499100101839259298290547789858385970371083914592008116206371611089005008173099128912755013206119421269826182098607504101544913301035197281417687815703614083435541679425955845876735615656487368817660230887427693429107499861584693422551570696343504628854680336822924986823489876569923670854786595671941237459311377554481301574409654395924031228615596783721180804373266652976394464174904117990598342312295626774948722025772306595399623257750575331691477096678498774983418897580434476762348515322843010660898469355992187147753096867133451749012636328838679080542831792404120945877555355953739719242593098792893300959542501420078695745171035004930306188619338803622546228855777277710405051740498075212328257966371027396069900226350533707502853866540379472434523595057165954178843384004274818973711772338385249059554935179023331438067597181925968608762134679825583852441607036992876804502239454454492704624043509799255025577121546749301762977809190725549737680903077643008690139698979981390125455309335470538804275610180252647055749570718578829542761386850092694214767729983474839708207442735784776388370800441788636593941299777413627384042443709830935611369328021690381999348324070302130304238650197975951371807375618422508697422883420010585814071638032335811436763450184260658172521049803153721567232907143103061342677269370798938570534503074140881970808218146071821960453345732886352343147122343757878593617535677987123204935075565569674778851114453988921299045220796973728200673921946721567877772494671438524503255079669314905014295038343207477554792874418257268075226317303084468155496624881655689105226209198461869655128099615091402942120948192949849165107099652856167990040399169874939434815574985655848349282885782211731562499195257209178348292440503179905160268759861065579111878208678624459571108497380804775923115796919384839676945853039963443508321747965778764314929500429504256065330309711907337812671374119849314692265575753453942011973758962252170123877300411824054971768541844962153174197390687030397309550554380164757421549179646431106540621468031340663591810635472337268260523985954275335805450775807869170658956250960733320642529941139467737073732842292899204449634354803132398996550024979154121765820602972703265239704896325848789185489258435124132298341042318890645148666488635275091050975531892807311102729102352130798271434793836115032328081587461931547055854667631798094379050516732578992019030343795897544227139140276845220816662727755302589442670770035199177039123809560881685222602614891945361857930113153262209223374229172716869279994174057744469455609453736332998418152123857947117597695233890198427155446010337335610608733436771554784077294759945584019290206509615502902488481238283353058902031193071123471459567395541040451413509724381643448587787184320081672362583347522836125515054340443854520619859504842658927189340695216330439829210573458445078223504127099762612461176169609020570458867384105406163833847279659664005102629428421221859547490796510252769109926087229767307070129589740043183663564269638525573774176733529145821645107907623678129541347217607197567704578712362981103201973769246951247979554134172743730760394537941882196992522952323752696208147363457419976880164803921779945053658947486200875699341612526007347716010725526325896631678196036912245305145252394056369800182505642499721205764862664439716526401811245088380774697646072769756651761247775271522290397846219574616416219170223133310046256029484608495831312271537651691166925266510136627118078651150871396077807149081221696331695088565227361033781696784051641296875132248703892792449672435718030166520401451582379369110127145335273461871520763943222655842396837525856288817641005698683523620286292153116585643620166511547004140720349066097039556880049061378037401654961063023787063250983745076687425489405223333725702311310858390721946595831964318142036247700409123747931464865531071248664971435702716565861561078842745573443878033326674314229188982880591573494025059666986312582986685713470797125729639198645545719708105778520839077946806087947422234040376094929743298554700991141201782486626877136826775104004893768688878639106898056119954502962776377799740616050420756212624452541399257732312001177539194099122750079550701630095105140915552060489390815239517453400859051612234397113633169510319967525827642623214665367534026993671275740444773677198908232757142254411125007326355137011641636295152711669616237703619226535823077644573688835441258884228768913277523076913660263397860981690814132424568980330470694229625823926848402722413757714717424332500276540145661542522789844515744483749551457793866281556702992773286448264647279331666121745305358782797786496175801613537138866197827428229513188366553075752359815671338339072192391653347116239213351804508959681591442345891942843096796258534699501093530114281772646053512050471880308639801476642775150368814389640513581906296360684995210505516908472300062055657708990032481669940032656617121215281918532948499801692573276649692638053662631117007505590166907482987561133154622453109594110650066966173293728491769342723039239680155908094180459005424548573065703402173619601896471498583860396995943901839995104907332990646330692028627943700143497416783483075850255180262465781292923010488715802267182642233228928261445464546013481658118661393567210237837675985530201441298778432625519421250048970843897634564907234008134248751724026567792630214504083926755907535502168145543133024823259507906852718293606212533366372521788960871564208603018624183562159804711324847592494417650652871557455399458965884239748011148433658819153604995548313303234033694794764173247436592360756753700930208051992632215703773870357835244156189123244855185101397253870852276674731529926343181694731615080498117284420364758471346716270032914550923892297452211330931674387563721709127003519228265107664210283539463891970909315730648408493438094930971687037469950027330389258155111724864178508182539945464494270587265855790443741235173894131797327819550823540600299805817952189965226973557268794379538168823589999709220239523743647876323866621243176473592269748908735811284425640383083999444499813475316834794456672719890506087306810338647362516425870902587231895794377834736852375812129800504630169102022090728574383663241033199859317856248066975169116539197534316135104293473220615335761183167413345473234663753024980518268733328082872043699394757258014490363357485689221196622089984686921015978041068412083528614871242577359189065380974995634918743151174542382962531971504235798072551795436177717755204450795428218617073939236176076069822857138220994845498308627190804877752158509252580727354262072547728841263496931233709299770992863789096171105041537730418903126509317776029165579354062838039999920046409902226735720916488902675174357548763634574063430164829033252855878566587191692885241712853083422185037124532765602164054885658998743774402300578604615944400171392216037697060861757677394100765604890733238400443866746885791663168194973087951337374505674313859891901114164114161056665146935819844072726455060592368765716105649458816523481730911845811010669077463285218890251628742986252095439692941464164365538929803963944528880351420639098940386904902366252075415949801964096007463479033209480029377795168344597172902299194239226175883051643890391190589454540668018426132035093252171385016530420555978715985627192556987446375182920992380409410495899599809339086389518227525886944018260366181437596356938785101185904464130907100180525789846740565516509713131557530027842217374413713751630927687708595546551193121457762923034877783082652514173115215632767586847811008632822925843551123923362045345823564633542397712704181306178538315795932622621547917908951498681575271867122507271694199868252704095555235998087555614425615722681961854181579634039000011946245868106873884065897537979621195201998810390437006633467395893972810636884446501380883507963953978378270102593767137172927624451897617978917831574272699856588049281765066054769637566925284545430814910086752539116560707406878679401272977791311617708118377292014789152899817285027904000205987327454923896687509182208762474522381282034245245757893718169268786038550126038095418659592724444683432714566613231560159571346993943901938298510972522595238189025510382732901267719668369252229144709340400241810813819602993217272080373977475255543241466550081827255440928650594447298103122765175267194102359742055291994920441018421545901362846772901769191145097622134628244734842894735044898837893224904361664224888628820666028758955646807505015768009272710657080350104437727142846298862713380184321809150925300916931442943232793549221381279900868732592008495276912909446062703627152207398309299117160834688954379978274454524838551786377992514384198410271206353228136200218022213768616768347578579430797117871692380307534793148374672325822011532745274222596578641924013243001804954057201804965163845004294051787091380862881893782213901315658983223138005381562297960871790550793617020551603220047998650961986260649154494484648067091908192987400807443249900737009130850449375488137556254192064174868438213191193501534916747690817873099204177309913783889838164423235566619668238039036617766202613914934944758559749499054282608050976196302197997241699312954448611018607642256633779887233826541925398479220638593010958131205810404723471480859385397674628543069121028750221397599568698571245390217506958986763664207479344012686951839011399668961435521815349191235943452346724348862818333299640313705738877854225769229590494504647610968349289887522022599331572735395474293324148821412412960880464972211117587579719366313204601026424741928454892579366350594220822150981760552702134874547356185075086117378425065645423808482282521959179239293389231092305812310904957546996284120196584209155664687224945877724090433759450388018515231755117764669703502303733930134962532229964676306525796864861517112908787216438702580421018307620451782705247114791847046373727680584676067755966959936609320062457428440634865303737365262403279453995274412197399408578066385256460597656994664924619700562904944336126555492560453095695342690021715133644758058037644829732801221369955718686598772627602955602248526767123119912473670015203061795051405893583065728093462697155070406124681294135311781479804282751181863172159849164055758048908361401990428246746194520407436804002452220096344857391750899003383716128161856863466218217300342484601832872833131021468614884307535382321171671273478987914026080947449183005461021289835782115487425523835469485095048929918932176309555785755619557400097689999003617226830143631675970498645404022065808235458228718975937229816445414930171790547886260790627164608496202059342434066065098136993169323004679234582187248892326161124953464721725091812822296584525885253736745621003788340230454040447895124448528833930202253886030634500932144207596144982509052394188647167638159633966121973288957558916953858862631601185937578574645601269050104333859801754287012915853681096869147001640489327795676394601208411703668123985239502744504890857559902153600761490075892842174905836664003676484111203580138148911160942120992811352315670212154242323554827005825840329351653059877774519748944774705585731216223291537086654110901401650566680584170563650670711071463145131477939958405626019212071271407154832331646867059293439502312428221763003505792206694387868072474986152418926462857948185984503712624782874541238038405082598939857973809481249942785262989584696016629377235757636110818682306284489338737851951929178945598329285179016841748808551283900050856089542278121676476562291088855799880777782239673404199760442899180065821130093102370711619242537618088035764939572475417600157684887224050404695459159031843226513511466542620279484269744374424497411004888674132026287452123081195468660888570175352951027081083921553615171686178123187506327874890406354244008587527704388664536317016110695264125111714185167143888313502533838331736506469703609281492359585194395119129135597114271333824834813178599654733054096423775731335291174804489222417480731972128076958399669298202648661015002398372440074565258719058824435372614387209716678712270811026286079880755178311684158651788901867158547925190210582633376261421424978615351617600692530065051082580497172907650311225661620274482214942254110181975099749542569159457497562447146821408008905270928828309342999696386108919462292543414522556184190110908343987650184674296723860873525099133534713517415803740413243302047142989227625241566967399401499246562032918896163113484059034528216452386985444125629707225187047706105887157336921124294938640532428149103157570369162067134170375219703597093789225404820212791596011504471087768551437184089837557171355654564191704309287121254693816795010352009035428950789560538340183056514999913196594103125530878583513653340001084144870677175778496880409507661701595784108707039495691637454035061559816566946051425981602850714921211761426529719236566658805513478671392171182951693818429401553545720109879114103281437413574805884927500030053830994874484712371706403566283160192840473720317922783507289286219901465574149783847291793262408307470491357689716961915059118047229464154723609118960163219224831713824190745938275912736936764931515587361911952410477729821915097782333284849840488820040974156009852412711192677607760115741194555190381717833575974571842697343454036810598097594065721481779720517692928090853327814216655520520085480373544024358604641329666792852670762154030786940816614597492261838300326911030126186497286483878243653332793235602912545398348985177507141846576387977619865156678600444326162371426885728283817207997529621774585451317785667318743329378874431214145796718854585047980130639998472583259613201170133388581707181986906374811804332688088001764254464934409514658836500862016193354606247455347976946464955903518491884967768034955261924094345358879022876810248671658101011707889229619260366229383068564782501227410474089067112744994010243776038327273553338790246211517768183901139599340018886182403270497666591394081563418743986659276014698896093997263532228235449827601600677527350643187616669019427377584443757797027305272988163460055778213514132817148960845993127741656461085647965399330843608265621783908100424655806342633040624607313254578001250239870000073902852282931195057825444705783335271223434060881729582452288805653107381939626128221542182475642524391787199226541868820683933860282060947133068058753070949505640637211322535655929161324717475885596719196092410973871693059772125510213619013420212874837210405266712659281163978106605608523189892064703796196057153035947823863670259248610556924001442865976589437357990034813759409090114322204463001495664934157043981770218535733930728988668663041289341659117749652703304175017525282531109935111278930083479186436655229046083552346619182481178733267003441107397646717717775115447075245414784461139924971301098986136884782538065963391686879791741305794144967884125055568566386423618777292017902582612624253416805429949305326040404111062841690640367523153972566852683064814208550285802148103587218966199117990347195580108099965956083702592564779823942057475937240817668699317900476525239573559518428878608831344292542736897466569936273079073000247526364147611650439796046225504948649831411688446471296798498718111905727181316012888341408635871800360982212716354283783403959620665193775693100356609463526634721187097703547813151272417192069091744312664859915267653307896756124357222574751884705954390617179301739382296512655164377891894977186194645778722455248449244611475814631523243978658618404465612478002800187403584697620687641472686109442857010027588442534744394035285581566729826590380535127400807292623349720904219537797190693313124574536348541122976122930382969076733065401469693441991935648385708181404746764567490539359591346134548681131237187189162137256200063199637459671799153589662970453309668332548698597204097844375932292162305930329855693421693146440443094177836764851813297878899098359190290717726452150945581036872029134954274696683947656149270337209535207100050296407959136831740456560969500249239040342653983663925717660816079178284283394178245693484341767804902985741433599323025698517263921778305162924535931875987507289247743282691872264936385632367735698595507097444205835924733620172748223197985332118398859502659468887720449471328903206740497176096038809514631706657200050734213379377284379449040585954384503448556322556809711747961546592359911113936428031306567743929561406023710221297627661409384273620686636680042119581063315358251042581479771796859430081993453018109164774437573894764736807916581388014005458159433332617916848465710217341424099009431521149914540326340887483744632030549137012380693579220969562693738502728691536620583095175618993202802555282097242817855335595513997733967417972781863551746178954655437534911105467330705818978487555516826810924670674443330495690314231804517598615295922866120412565763872318387246799167702760403629626877852832101994559600020470499043683345119060755659324617468450065443945774126519230536579459590374515568201884968294365549562579417146251853564075795050786600635897566384165695535701939912874930303887255562028637125756122895033668239580498687435648354606039486608530845763783194927320709512651795105375042921708047074000300933200005438644204975612561818912324459506138548779731736600576259368725893813778552271405789112377896559250158184013767873732507162525773003990785479467753141762486399165521167544119436536981395844748493840142600746097282791863619249538644313789705381193074341763145751898423869638787567087653577576702007141589702148974769554803394485751575403257118702806364693926477247659326442331009915024449656143319769233581802480921238308202729441521663219406382192662932452676012092898472618259104606359291836159644540318709319705027640586437607321768260687708623285021078433025010522716957524508144609830150977614473620528098888705748847726309100549519518626149826396645795235593173987023238793053896134594654503144627531419754735544114109149485011425295005509611230680084879922948293437936922539787038215978173558341157836575685379568134194205084392458566456432691844380555878050159604312609695620667988386111940674118628582697552026983250981980021670167074804982334877000007036373305554393971378330439777795855129788186878783799926875317215366303642044319604007066035412464134907890040264565715499814227956536494991727448478143337618096967917976248864703849871099461325692614919189123123960735007005960546639269420863847214656765933710445320582597969459373132010048049785872987166870646898468415346806819890634926335911154030221780019221098219042215711270183181205160696805815464706924653976256804347886054601891822140672146437901978048491850060109336108712513875424493263883034658587993555160123417161255415585436571949215449866015906164770128836529585175667584691731839177106339949459879475101912345648763360622935229947637847320119843755792581071741717668332659386677812888795945163547640316901520001532181183406557477575588663284314256589594107145122392972085135758396376166815150489085199266959987201055517132063102673231665620804941564288255323554535000396548899009175138671672599959651008016563150257428516600139629370415225075559974632418386536628047173583414725031532166829002874769364266433652177878997760696845319628665665706283146566636841701338665776121927455715100141816088566741139132157582627605987593869394694426151205274864176041548859356005344850579677665885616789248056837371188290698394365111308761147019286505460776676692565111176420335173284675631495214318966564447792292641863130667536942493171944944307313764640010321795734569154003231614804908752695763685868952072286079430966200383503966264178565093193748312802725742382735893209114402158236778102901214053568445613838132616638645769533331010570915607716110316202679533184851660412389185966978945936329881176960810785087453110452072715843206790816675884547752577853931449591102389710131792006085546310681866445929072474899052077036106573409920544688168998542008981919122254939862730264123908296516883257277806907308718494730603402808433792263724649695345582268822098982689009158229193389937197819278598433196358311006446650418430431734746071792766375991566371702630757584550787279274909545566549948083583391666933722151737294640536379769580926936035813414718156904239664795585924643190377507911156593063390844817824846897705422522631921083812053640747508762010466778811054216559870720000267906396830563992588401280114234145107985874477208420181780686537678909260047872534086869686202930894425345903197897303481553610322319404122081437087812530853121941003401737848228443204789080911767072185277561604615222282130570367955492380661711248945706569280725194718420837353724635439707087197025913881216532663372397187284384628330398415085401505509323064541163748466191482240128623430488750052026589074539023211432200284792313258131475759947642485162143310315121268299477296241176398815187334381819378477917503007351314851834039492606106465050337181029562819719073828835023181326287709794538830789640335280350803517924307113701762304640486254215372802767275720950992878214444177835209100386804745272460283744050057588755475449346968241550396674811240290854237821115185661236404804266456844322520704206656051916630515501352562568393266370521442410619518659766671011866411010377858052613085571473143515989180398451124914556333069140577843255044085841420134324643973777953698707358251650020142581135023575699602063844192428615852285349509673243825240286498595148961209250881778583958652548498867548675971808114907448625989459118417296606470145127932982983610999349869230116002544731398586542244297131513130668600481977153912502211295273462155054992497874351906599815128688336576185732984674845125118835307078640967938040658992589051137082224517394035356731469227479749598747696301863467956215450915521285199415902188043969381257004411603423713408975661807356029838438223303250734608560541050964813086212229002546166008378334239842102720938297748465493326717584312291836790238947992809934667268137580755020557535075157089145326406385267349904214235071613264125445072258493955798079625860350212097292640410692124030083781779683889287321776656233967995483860690670717555731185123971094471714907042193194152611372977193659814937068175259975285773031845107125372593964597655859159635120201104367740750492171604919405228541095892560030702175744360016960152831846962776842599703405347239509754725652494333504142816268430340476515323138751995350722883476838403275160050666104476763472938419585991420244731105919501509738418545390048011136037672797337550395329260966120302617786882008292448566958883910436798393665135644228771055918011782367012451260354037557992203305674679573617653150795827225868174243493529316984560910773359425278068323507285912454747691718797132330523236025436616343984876692500992177278463126298873246018967313025487080546451368210414250136916033223622629599477826106717760416803827056384692617278548346431259645244335531429688642359653984952027066587627322272503753999304449064500727065202948059101717592064708473495795930360241193923256666516691092769154702548225454787180027744325742785984682487108356078658900117014920118168484737848035490930393797277059273630582071669866132384820145575502209732285133525758640275089278021340463542110810731614074752868642829615584696759468262223391294125014672234701569774912656009021475056882610312551164496060713297426786996203386625969901754374536662799893882126407204793062613954062658698819379571248735556246899974574154285190765732692658626485702080739480021372144362231750452562908635893188463676281821423341530770177012626728847344812849847479376070634440709561019537896547645648508961587177150254315181202281940675999762986681226187928187980280528466263066793459187894158817105893948518881082280457097347097432596919969147334092627517189649349389491531536672285323774729702567815206388710551982332542704832588216775317020318675776932283797952681025251044720721123680558003011944137248654455555330199885171392613585760223764225158555658116950511189209102116555198947204316872582882075224145237177085841424508193699089283276380908344957432056863466697717155458634019476207651301326839957862544812338192572715510550623838522648426116654274306983045898694251171820978961503235982261062064915359301919897468387850930726451822052248506541676237003932196929063971760162434995833751840311528972303845555737807996272547049391370100819535708337125451254921151912627116847819656769811230226647807868945689592993710165315056647711638300086973755772909986176241503338177707144569394431239553428285659545833631468364757790881078560552319188392448921042070895429914456443530618841389326303140577572632763100776550580275666148380239027867753437407336610977921069249999078124740832715719996600767568429060847802047794277361190690950686555777670237319727905851997193427197278944423194746207720030688731769314981209059734924543507401639865509180419431172550456301626318120001540840721610932421090450034291616492437446683468719070324058162258813945919757236592903936775765212773074506038205159310157573559174104746916959578170352075409851280488287214478803181839240747656491708626194051990350715481543700692970180372859763027399561429004654192671376066322377101450628729972020922509551866377343696991649424027709911401320967052639622513516891134053161882969511376815594165662235854885358347016909454263785638407746088866538478486948341361022560133853695008846282851519845086622761103519217251163182593972630340107119026849317142948129889310825673305566319663202197690241482836620756861287709292733667162978514911183558727497992496207718280133774217080855603358754877332615324159208260868664388364541785433685622779452133977414817927596391245738719051671872101284046208494580632659451870483301093326400169525036086362252726180936696766699968325732833000185012982126901927340863708136363884451192068291888300672745575109096818992447615503752109996377426696200098612696894434413573335991337973622559728568003402719530642969551845407328481345670734573261159803163918165404610554288079263875912523291612794767359979860192906975684360048808024975560535276876605046766444432478300239449421995745442673572953433593050266816419740307209039442394927447901055916786471973193401770976896604997294912235590142548373444865254063135449232113131423054140902032526781910078566649526747372584583458873992790705700991746002618322293242417107260164926219796958085128869792130202777873742814800858422581235503140159463465328889502106046362760117463024913902114436623890368651093167040924173226680237541722716562293032407371603933869871565764927025762591993978199103971394777628078455967136691455829128882137330337184554461280440705046574740816926873810525667451900431487918886459106751275843532416425683003362042436816585414575893445172558847694026028683861894861406133431109238183261059887541752220560504893705050207685106712002752477939999098333432515500461694289407289203093249863046009546727678178040812258265602910387884795056018045193413031128751423497981353785707013954559594174922046812425393267888614554625613767888665032781518079383998028363464487492896433718758138054420506771050803940820467625865824235206400373156067420171751098471412105553521459677137241965561267451361460688457428921996624443760210913901982540246093354982556495982011621668143276097453739251745561798478934537812135422669989307205805019801466374553669299443147666079506658428501238880851630707160450797289626099399105857980096235829384481527281249126831919126400354115295419246030710283480553509715769732374302875234368379659488914573474087647181222563322126095507202161622001795243932411735693807267049666200390943176337404333121016265549525636881348011254982365000928705156440521118980464987248826573606199770065979214323438485522760334671573406454217842274303551926627452913205651234965200049125694206327603944233413803845952849704027957287844449410828810587914071277316798132387031108694115017113242482406987276201861866114731528203436750298178396520065986179279227381466306555717741592944062110659114814532427091422108581269470267045347390448119827612068443166116745482890106955595077334033291590448177351686078467541218102792235153104364747256130413191571814999753868538356164823373165106999565007189910139594183983068220029119949588260648456482810092956296838672284306289880825077451820240441668622228569492587082184742493016846101205468485936502254322056102961630389824113791273155559313520285354835971079792029242797360998097022634968074984757387385732276077715646637902004702973732018815348634824060607952291832301403572236035841782886407745627932256537507478630988774463209817627551736036580758408953313052374727870938622819371808458712209531339213150526479852149212537368174215165838017586088489946169379766246512154039046404470308306790203349903504242513743222397190099452554836338498851420190735905840670273023429947839211098520357546732302325017853890788410767073704743425387834909783744696867491906271547867645710231756188190045824128913016187839248043112639248881153080410083089881571574578894332894223484308427823959802956395484547877799447159020552172028059584334522592005686583002305028471292281631502148264049579318188296807392554115797074597920793472051641937873685211052711626662344861215365794242506036606668465056802098360563333611774979352366619824231482174708561562672634150997435357444144150526627167513213596328946702551972843684058382978769877819993973185102281085691634368938538644086583386557938236197412171940342644289767466031440016967714307675503223987035386075090001557329955623912278548754013427662834682278528145708874246029689432347991155575348815198271862797620742171864081012061606398444434658295333951775249728809967112905300119412942435187346893655987730359764508848654761876121480256929417867582410135397895095142598901828692171303454319962703676347474716513157158447635625758704282133068820612114536132286878088770832756728664378074913553712714230759117345369277249840013148899485440095437553523282946725395952622023345863932894978326615644548259421450432443811873406898529115514199980865386313573259324572477181188575207166625346660069379663378618226967713181994974112710040386022863031944009109917670217997072836803095658367329984911964426381040773199852033478559654624501511892893466226847650906764976815950077821992608616626556480025277058238904390368262624134815403974126401616309482089229452689921398553681022788323128583524613501286906743439733635089818155729959494293069831482300689104082143619677347051558826130890206745793880076248437557612882496305170226514595239911474907601482588904359804453585415767955991726841756890085046179756230756732240151351084400069969132095824498423376751787279538724715264333613659367212230262699880720896557522577519697108728431625321605978977449942979061534292636645177609630299472138130678109144020990415011209028071153734397678851732463420409888618067354440773030642926630224594826170422513836180630519150200183795991479310332753225042569562928462472959018522893254222115885112823849307707955041602669401825165495428132402210393748864643090403087932749071480228103904540557809671199353732537474965413504433815656958509553170618590996930969649462366127921980819136707625520526504749695429900775441461619710723031661961023435763918709240027946573241267243525150646176006933867230342080642736549013918399348417138062225042569887184478035543679758488924193591748195628119749223509267390869953296281330903901725204086185824396342239135266512366670067132215684093146065233149093544618369474875042906595371510492894896223826080458689146904185725006889309407419754097636588501819991205338185356306976961312760651206530423057086192266105317924489092436259676142568774171142638689598801648088791977643408460297639955864690059064323789933188865524518681541678225418740092272128556345120704871196004502050890403963110507346130954564549161072954582947635590267926593947068512198367798846368200150873339726019918837133837377560566523967173181601009456591691391945157216071450615754975942444700266353292298945877976168415101280657891843623100504936794146497085635705621213191423683136254136818480878735459808958994821176347520896573986685651412955768744984474852261145396720209964910584672593542476791746318923794035497620908181122347930531048582249938805841616154509260844369216039660066048285190335993260468624582386777794953353623998083952973544514030834045262289783889588626867912779826042657780872469033784484958292342771449117175445773250169693280228562824506848472766165811577898052038913577118225318399139540175131962009879988171071927390555518090175517611044275780680916969447234594407384420699074553146358959490222660791494398400769341327399032627620964250963236881321856371164604214945555313416391398620647701987797381001057646587150895569344738982380168278257641907782037894312230153886715723718207060155327367082640127435263536504134936985217661589065821577951554606098737586522461551395475537430658508006231798491621759625534694757057151195361244369232672175686133254589569993462490985494144728269227245355832640743859427378733228195001400247299224194488767618856671159815650377079698736927671644936401069633041499620321050853318853792814537262853267705612509929485367593461519039979381498366064471419869329333331479074938651309040175455332327893879393573555523240804930391936901974312955230652022124803621732436227618482920849184568253513645077845941790872158294001324653048380316545869276562224845165889845077001277822015766515649681498200786565532735873456391943397381476156075105333148535408357998017932938469227711162318879924215724804218314813403389754465210476354293227726340270755605533278733442034517060193781072304169566006201361923121538599267862020664827003578246077320463331776877798510904661230778238125497070324916076102837745442927369317348301040566871919096109014706640149228525845077023809060208130149339266322846597175394185833407957619849582522288322809247537124171193469335450534529835319602377689300171033393557896412715267782259079893257382651652990550446167906467994080039966585632766183188464818538716806281537809736615480371120646425825701842542601606835921121826668648907621127507697282836680322104263580173654365095899226544379808145636451702003863072903132647244030979715227179557570733715866591653368846031921673159487312994323018183875770097646166854427936567793299929522648144407955527969463738976692827160197293938452121431105278830183990632261371015254077337050512617397002172851657902244100092308571301453198276581855155326632240087374085980275973318102043586250929774342847841385056373544348607694411592807022698038946119693881579592044112723841763511339656337851811310489032417447319935491233201349790788635092834761939758075862876234900216283241621403026763672174915154523685770087989051416433239161635244043710956898383124184876548644411962340697564857454459847685469376940407239430412410416321099911831583829301524602982024300501739822309257705531464722609417368953415162250540024302723432620501104182051031841035773267226690401733492123273646996757827880605258545039533179656270812053413563271744684345732641402659287460399525677494974955437663556602491527082821030692469687871848910285589631401600473699754150149509085420001829322192204660488466954310174570730163181855435460929169038655062335128328910945880971519476235029601113902755613468728673226957878152491518920516927146936468964882413465715190108091736949163285144291048691878029970457030755070809183845656960973270509921379062013511083314972061156317462409260528131489195500599379707714424439803861280391323655599083046712462519841166072196959209340172040471290516933222362014097536697456483194893670731942946062048081906435671034668761612093596100297418335899957761685108587794729587696477641860245104283018248334995828943510615300164023550883435577777059351291302618250159563807675729027559785914607764197598509946380673129686442418488889400743553823511758568943383674271250231942135900775014919205953613793833227396066498186819014897346921143950995378966239661059111373390349801667693260806824086557467460282909846369237714976960851192599413434512562738143204135348875054613596491962432649854816095103634860734226220549874926801954996409352793842331998351601455466496784736746331374535336328751434919534930777466174384161494883114728342853359149138887776847983042108209352013373280939316776021057504486591495643311432337221158224823848946471472025597143697106162374927012505062587612315631315944581768102782088559918766561548878188209252115652480697848795070841198433006972745766226041472036880420758847129048468448387730789559960190955819009950099066293261892299074976998753309756106846724507241244877660398002829988327760365693982335865385344247200221925687120829844570233884162371982415810461364546576765411031892143368254960130247080452017707122099676227151937173442757066997636272093806848525900676639257788955498063322970995597356268488556060274556578894294427104643252474117118231967414642610259435166637730009461796902810573224587484787542717385963701870990790980623992187469443549113877242915449037077940102652276372402526342974244998967966474780199602729741906129394045184917584000323851636418432914357880811405233628070116792758581746299268440078486546282365414653930022939427184289406096529565170639955303651872187617910701181737564672049392939669659935438232503378116047588138143435551880364510720007483042568145734719399786302749276322007391081620407075746052573458867707799965357005633698644965067537440358364353965926526804523057265543353938339110831758545557262201715965906582526629766742912310727427386615277103474625451594949336275133377096893407351245803489011650174271070544428731652585395057035518524014578013194330383890997128325554410681371366498074061567627905853531370185290266177392632013835671107486057830695949689034178168678990092536532911391596615304988703939416901704909646972657571422495252860211295103332377797035901027552270485518029452075114728118235161499234160852109856834044191451015274326852304253748703306857850869743867964079333913186005484357539248635761371798176007260912940151617196256521073103847602393369404345020919880404692962557049108011295686036628975705511665728395356726581674419610574676378274023835013703988914735103125146207832455074651768969451529336487050411322822093910907401552228624411493481452423887121372700717165854651344347620124902977474698301124068278316090290958565812733649071230894002184652713794254322204036778134942230388979731191935606133515167948906535103883559474433967199537164073701472161547419707462358212839869582206511281368701904256359348633173198885476743025805842793312933194678300217082074467362535938314558141473124852516762954932704620563415379495524783126887175699490457801316861913870873867622538535101958018936681035192903772261256443340371030896722422774435218646061080049389637508905364736775288810527474755277519495130958012069701093220203748318030783600776037327345696124406961063345665018535176085164046896933062820754730731805574812187072398502935642968120244597895959009558995567262722815928778587034854223210262909194105661947482971600142911221265841931516914013944476856302231600173688412246535047544654287098725723544785304617905880174029861992111513434178109354975466583151425864981102903302906433344779775647267739277871040409390512347093062997231177620691802877720223467253721733547181305226431057774461559473350710260180359260686644184504669714858395213600797701581118291012523982943355626961683265271408532813845123008073695549513732174328660685853779332058172078774982173525171786951821362813661214106616310403266001017491495906962932920146083218624689672768677704713729172052118824022448192702819983340739606639390279067471017486086139131257788606425683186546239733072549661919343856517129093033397961494648933804746334431253653628046565129298375107455165580853260216769629839644964590826248306397465885349207487696441041794667880693078746280165268318134428365004101212592551816423558462185537784832352749166427063306338037199931332095289391322761916597894505740960355199644113409337422729225728647927839201128979220647191941529268144397603386754873660390961756867779249882451698247184456379138360453117195743330399702850286540285056866334561053186397215453342910083305949679925589485536375406031547057613354771053169607885494170054162555218028345890918098199480072776030645233626238771885301152083912521178398025313177316868332483656084251234477122472677322659676949414399316605262299660037680109827824011965234997140386599998743694006058125527010713665294899823281880123046222569237362710782221920492709487163065682787707881921398826467060888029068919304979974234874638109182726034789582362147687104480418898728009835629935442509750017947992131644756620439972225319702649635622271465647971862959454099252136168818231665012996205486111968677024061973761731201756096377006210041134444089984298935833515813461997646557102548223405438475651675853971967460379893294271380926407017421430912040375372703980378026212162644400577433271474591606748951656535983192977493585972735090334622731921781944137323255443563932160852131943543280950287208816049278109835685064775776443367473001154722973084884756660384994227096360836004215083550555478741753401290372649476328822997934704447601879545416282649039243943134080566161275200680711751096067268749473581950747769414052660359075612128351656389382453110204069531271601630752301702878016070235964761154411592451190471136873237000064699694767755602387470823493049345027657943300866247940367427812738391530940478807853318876326018358635185749484061489884362035175168839553288770164623563861922665446180218862278618566691954609367645515468711667745851578179527785243685454767155933468145289934780746464069732896344344186805485100336094547947160763674472458122244168377942153990748768551506659946093575908955961957669967884497587051901030215163069244370613859757971438811726665104169366710128643056175780558980432205266063420979808937642851336785495208912535391948128562346066959754982153061372610407548856016866662243596422509274062612454377556528480058335622743799593985487307578754276813582340120675252213181988150213162008565849663472299652723613044618063410422643131999340473797681978993860555257740497938144669863671380811893533152391981441002186199068103111433232766467044080640647076472148870525773318569747116135095276839333238770489006347041831845134879923736759466791246778032962107319751624327873523140652326450840608907689025124573074570194124791998280556232132080019684022573676228440863468295502074561058002972195055536988889746278217527960095318330198645444755169629110794995332192725123053478223332462902122659341437912379227076181237364739704258863879282058595535024715255764923799230192147337093024212872438523961971609306507552044487412923235800343014831567699337983890075022143822167805283365116201709217549117952968654964733910293858093468696029178324482292217971057234310132520400283488653149281949547667771558253412890106758415478718203946473293859612502622502779698733484438321769434725161855972499503272048282322774106842065315806843041832295774874427439606464620552576262739153480116004765504480386587085999711506649008080074817047082712512594987338693439082035838938601767561331870485694994833387538895198432905648007194234803310165656570280660366791045998244676742725465684686659997763419021312281755350765501283931634522720522964699522305485813467579962328007093406881558727000270896137372903371340118845487403038041921488996334946051341329635647546329856618949599094152687893974050589449381598661103244881472170816958569125833408476522840718854266482596117939735147289142778911690534192723653863126052015204542965621261222063671186643088783899656161431298675637311327943101988438652178338333899162535576043606330726525923928763054633896256812287468853386331595194094329642575735209063641372479497047598138706812375080643171456395274416263889924648723932675269231309702495348171236256555065512712592253225815815718426562934168198497503032461994739702413622495750810860639703136646180641530566086544979928612368430728882275711474966526077784946642649807391102198040540474678591270417306155463736296977953778939506427670303325613540880652722943117572640316012023999180366086582733822889761270165277098013497842787579061886209408062553074194799718757837707851323689965452997914851252500252597681509858498404149540202243083853258197534062348057470979408849369566722938428086057606580102815775690086730678524411419702069842264262250731019647974650654433807546995225381116485833830936677007758811550438419672923286715919591374206937142336650206468960880372649772834156263081252939990573668018669232790716077969669573134784011613733582630392015304175900652352765155219805411396487935569377830174216654828315675280945947856029469047423497142302515174178813581769632980956873172758439366251763801831226435933007673764812992891130805894429359326677136226774987301607808564152884305825161004576873260033262849270905149099754727734540049742276544919288222676074836564702819965865389654126893749782663227361309705348043111308864364921842698707408907236157212403720446550329423959361686080421094620783742548882252534679549947400942083234176356301942701667982643677929397046261222410480823751450751971726576220255446826939294328635915427801248030858798069347101449933722062839292943653430605948700063300520742885395000230047262641247168547787626749947054854914458196937592128490901827798676601603279875479270076447082196263019387270108999505748868170634285234002400146378888236721543649366809348995924432811407821430369896112422974017906804780950215599438166904627826834877679231251325937676244187625832617275250787794876179023889800501718007798004041445395941333230482780565048674258534002246412703876083891940005586017380347172272343835846763152558251339989521732780726401279117835118577339030739715828953021208198986823120565604202751924191169705325941457686656685671796261052799743766069736213948709672112684613707127622493932299662341866848735764331226495560015748670548084814433515811374450674485826270292832275195903061547916587164299197213522295798754750604005538948241625480277848188650346241600259780988885133808523582606910276003840023399692714043789709599905478259923967629583134391013800747133107279574586555570568587178719849283826216887515549572385664539486928307018938552122521183125264162237330249960061064452578519488112467165208362654906928233476319904306269729704164705376841917150870663340405178966253392918121350597322185895715174279716576558578967723591642209805716920208570079590795368485289834399772136368866410401375048088795903943919615992120996322469544639013480925434119235776932912451526554970730015084151369806981781551389930883593254810716037284226218231824579808432565831521387979403209747247579725981823896775609713161706840859556569746561557281503168819665814429094413880316211908249654501146671762395280637437463380799827395810531547321854337089082198934576438778932018506472478750996462594458689487533195699007277832664333155878370707698684010804746039571312960745722021185003200453929547084855350273879457973553830498769970396738479810653422274004500073818015639785738827474254074724415732860339955564379521967175859795180995354915982281400640801682147748530855175068150634198743772463739925693379020102695165879941662835562302713046955669220211419524929822953830269863318393595687438004462876843024788132396573043031975650264144175862619376277604103489377062940934285090203566599574722770227487032031277744707172715735903615183670035418429014503099399565235188002222123124161674524854264076527441898450490817456739637798314849909497480809851337726417663488370434876669137808355418961677289656401512981229242007304065213569952611172093356293891520554524028691582438097736756432966718200831158470793623724364848980667015244582721587903084830059455921769704979255462163067799721159120532406081637510093001195289012643867694391552787234899372103626324241876437365669410301112438643836507934182732301578209117302901983892967494712632720002792965594529111957637501986068555944197772411654657879762561931080496422101351940944940494425476240151306153449323336432158577977004740082629937418700686452145371479675809550636448950971003276022776425521882940132273809700463194785805497748849069081665692808468136052352626195864419969117887104889896662725984928948547582287631851965768881469183254680286583484288907607661541430391195551945215196763987234887387680789110218951402695815310466452174585541047190507534068176166782500015828511659634508694526193822677635769858399596656788286217184404317486506419677194431676548531461912943959117348495916780940133795132306121459016927037940495156389787419983484155675218482184869107982521677872244633133059506636352669041884118375202045212087861501939855024956029368111516121479034691722654900373227884108912478337592946744626072463926323570002337300024653219863025464616537834365996837540724206135936652266192856315732582344711979566771894759570836722816663107506399354915735306414011290762758518631803631989280612301778708823013095217750031003501988129353779249946456624388308658275523579043548693078619272591543094222048163213560523663926351298835564126514736946208737396248894865268763421435636238815230634162462377044135330547395237981467425738139856197788805348643243112033158139200823544004606957933252691783926535816592963242308766479337271408601273225689956901956371886036231833521836444959462859455613817355741464556310183278871038907786769336349872241963781114482962179127301350020354847356664489888686190198247720680676990615697333729315398344393123118451785794329444092615638768207662081858492144707514543268871673165367363570723375036402354538957734114611349430588180551542079514286441868064574686653723940518540205625401075183932641096908812642477220597061640198251294346170269921045357841077216539549895217657341327859055769429052386521903118749047046749675092525165313516098718325345712361686689399870715777839403469974675399651345844418471096406642922749336138989861048469054062400843417206745120055760135937836598666909402145020411053329646479242583522757959751519705851395232528869331726174620830992909531928116676277308379393214157717415882071352837364922043108808000738758652875513276542680525305680617159294494735265378167264397163557909892118437006207471609981106906121301387775261397905094841077757450461907172740003790920524889923283041747318034466686038152841556471461080398486651242812093459272503879981966596872367399310735338304855397949584691943042825184868459301627860808175324558793413355089434872072473495482190875267578560054368534149530022268975457074924900506922016515753057589196421012310551110769036582037613342546526065864992693127221451272550594425345445869420703369218189782361942061961051999854047040951176892151811410910445317222752142349502567815020066311409216325176187047753510558957071476063379113113498836741120065011910089822502862045553814484640678132626712138932587671594631924701434281515300604305984627862703512296078469150708690843696471219122006156444371816953625770575269500835753576182211110134555405471439326683177953714948328413820999014092287640607171111875366514277185217457935779173448257929598374792253029691982200347262245678776375903709707103720240948284638696543781115329683956729064396668269845220545755016750463311904432281663213103151698226723531941852741898840056732451698180339994011387943678428594251619898252061103261450932407546250914564203380377385520083890422022719666421977222564688741438541410239940542513740116870807880067173650522079865271193472490756783410108159477700485672222760642265899436060779244681930150352232295638158211391589425454615154574863575566008338163760530297428501646039375163028767610925316741837288349662290611067230739317459531317377283573744293691348971737521975048751833342257421692191456054462680912732776741908623734169487011212089337050262385906021842872909964124407702754527384857070661361666941515695376494738604066220736183093966328727088088746320548727232107417234296772604324480673347381598530314462613190877923537895256985961175166517859274369505163161638242488427772467787908098490994629566997909416030320818489297609966700668318014176810655375825667722796985294098748452879449830524133085542650744716387991206683413064393881047417788667142400145223524707151236872010657184172013360495581495852131549896012745847509932897952090266940276609312776203858508492467832073261518763440418783270930549266264167159204139196907071879101995068376359434646045935799353142596555204162841066699811479552640009227280002141735148353733839615739631061615354961655328695477093122913907867925674793561579322451743873129795603919649738214188042162837141959551886762940842982245378543148036719723373405237012589119373482708315062583377306514198361277481115244256327479660985357899407811340019480070122368085530700741354962176797172422003119428875836617844399447454624508364179446298289125534115365723226846159723529343348079651902441729328127537473422485738632303491111554907410845069951500327371939308198794934309630179404338165420953372735519468502128109183534418782921319540628686403967634720547360921759522313580408974762641136899575292505673722432789713860678661720135749566718658529781940770892556039868637116765281072843120485988412930597054178978334600713782012414687681254363570962933279971316113761633176345172760500006612314058476564997842190279397176946244913228034455787477769856417193135969131365640282600933024340449803693434723920350511691900750940574139576068001115245981059718394909167270318460444065900045943730288093756491020413535191698730233847063045925900350900458129599865974401860093884022558204693023031005711956440695040506486050217593508357662921881562776619740965789604731279709847418650679990990852691133764590232625713612044317730896197329894521077126837848310967309867198804607344895593412956443932351934973182073840156992423588571474787725974532150973230389888454978124782160146679612492667396879302327714114871024142009065073554182846168445972182933738149960239544545538772041409035323549923786265490729649791305035390112011159634956781547646612133651044037011983896677130579803596524998122975456036262065906320562486657860211538860205197615957893198109672353295431755472578126279884607746337198150224918603043660768882888396393566802307472249833024757048610065265847992506877799189498085401645780128685968283771229369431213502854087738418236480785818545053244515027892180641718779986568536567254972847854708626546320979783569857209020547316016665459790383518210134661109645440123609049727687445126681045462362288721804334789226383682546334152434929007244684971231548160347541715127948832293916541301878145082242774399286884133001522830117793369908718871426463284908752465164596674351822112050928495393111935953395692678658582967635369606718282736143485288857572393993221522187640877833527558356195311080203746512910091636931845651352368238153668188603587076768912676901626561014052213198935563049427694774790474252196183550477547080967662988401363933318619048008069527912977332778554249495568467348157409225021495233216325674504902335927995616195147214849961352614787634871326224129109055918160725540100849145979913332724651347746180585429660347212388928330235973912968147052691629732498993660136316012116897014926699744600852824953931794916802711159688477672855157378003749607061086461872864489600072623953587148098870539251612253623121190584814852834263929661423617127519321873822312607625109524667753970723464297023390915960631425110626212804491139135432690184334151756369855027137762799882527835352041328432808127848325669160876514657385771973989702992347462105197431572005254426026976646272820569830079407752813917815431162465302622297622148944844846961530302078081154809518594234953700880922756901058216885884603825016825856092280858223434309127118417491239394382918185233946034099637818744408617788638265959042149355064601367756364949181589683113471447538577636875331867444366171089410019140929452756011158159748907931576551699543865816578008647831479846891940419972861803036963390596487426433847039369952988081891871660354891516490670215480229195454785806188362900152484428892645213844645852136992955662045544634363192602053849207453096628545609577072984670802283189599063943119296334007489324751784744931263083603017499129991120900358693851092635694715079206340419118353746598543132500566825405488471737199369560166589858332455182993357560174488825956944896063971766094100424504435237087943489649172478283253380017063440814977961664046105548830854008116676282018938732473323951118371675273383434648951481311157641678702361581166321020423338237860691724248360972050949873311330823932265585760132210139030033500215967639072306710563795972992710362337854479516155137219258916955054694343259732993071052667197486520941829949261957833573719534390868769569145245460990989696725117741764728410625796060695386648739711873421271616544052339475846413734934027484913518575779311978187980753395696511256579934037648141967419992114439694630667100106042514769721780469155144629939309432061160423951607449858722761391832068804247988469298494858421875253650295813031954302693960821222224815100432953344866502564523212749688941750667522485400344018022453615146718068118783375454253106357385773661645828892023049464281792372410932729690843147769743289684110753949179807674304013460043261481810780413144818045983848101148733587554051732114990314384172658238404361551206815640239235184266244486651932105217077619158799663335190506614245894890462075591930470486678174329849305420987536870320439765480511289199051463452860701305260040550328997934453169356343760529330326369624045320534577353300499897471083991651977088899383537990335079917780121784307785658392690759028553222197153800778722201284250459439640955568285253633964585554266427475622243160710924835891090791155684957663475824060023408798630215591516095911791768853587206106222581678563384677611494388095238132620538565771696339944649432517789657317027381793309576633834610185378313388640859532556884348471573281815076609216240887297196100152883153028966834031599365731574521788254709428831286243236297547536538057369997553306456957264069832565337848619200627326759901706748443564707527603228578424822313314146717356574579388887957913107251933220062200398417112062212087822135776191504489811000088546886339492594842418086014212773424136289951127232563175795689054066809295011178334885121109817582913078087935290060225437821378363409906289063977733925868301833532403618644675345774609208031094010556661311206469431710987645476696200569983562367746233023308967788431838234592920640430761442643891968373550021927499003363069599253285570522569880412157288577984573003850868556134768479454668155446201541509941179844070838494648632910836465960564550980226708012474134659721966774449257031666460592576079088574748205842068865093850349582677962197794736696153119527636139770995580248445776380049410818459100009694535767203186976601654416501787935390611324456358745084762235868480664707533455574251251841399108596560924504005672357248066019264016933579630502893799118626745358976406304668157947741189135961035774282245117668665587099023310105911201063304909976094766093692615601501823682781270510120043308843781608781007192839147264079260648982951407141444562311044011894632349374870702111541814249222303622243148371233955221175926312970145915546376822885329721021226572251226878437823995649151422732553312238647815518608112857112347100391173108280013966771346394185990998467603874045915955301255754673930150215610496579203788419616663737125783161038997262187206878058008249790456928401932066503996357636717767542596271379372354311974502828040417041335011009756950173058448944480769360378963535899976974052250654694404197686751194503749628476802611755025853560492229469485100364140022837750407285507613146329065645444744967299339860737026073358110824461725559748039730120191306260432416549276461791479822449583694477834141223646067561104302164577084736717318864326150193727402679052646261485169700282235345993126541740632353294998423363959088600055570114654083164763397064467628617777595830486775658997634694926254692299592828834144716105079300091830525490418127684040548465953648204674531271043016319289884009494565823946078686648758218239189471372535857513716033200924162092223317976562775278534256034788582158158654107488208031878545053559190955652630543537836899954069382248202412909423789893318018848881468332743174317061137797526045205166236509894449918573520024078592239083109694885554048311514028692046999210111624736694454012801212684605371772482370111758078536282459358854355168256834217093043238745672033789284701343222894106713147424860482571631309346437811924630256692469028103360091127881269631298630292754138445472571803938303354320002212510471366507898692224187612618057778081712547338997296910351327677360622199234659167318130531715893386224948589381540406024581520251684970411689439800588653417736100295729524601205066891335558372166305404894703455705634370363685072731497391535464898313854431256032982145731739608529376047870108851831878017457346926317397137741843127353588767667517848735616310233821748264587812896433742734856602331127431723349122646435983539623476064898501438881572935620626640605940483077687955731422296172023277142318219259683661258732491589368763785752875951198422432307785222157638278219636089141783317516549319045527624237669534871678228131067055434316310979637478965947951949900655608336810979018823231362859519507785483090353706446615361326412151082702506277534954717532471344384280537906117357371512804414757337627241609208722870055604263446568306055850984801057151076255039372947853086027327196619213573444170554163038822267995839635683843269542492810344636669352552588154949593213487345137054934261417297994859211269300404034038105825539513090804020958956594165653865950832313922197276887912862422129731450466205228943489131473724613263972585131241947441985976389981038955631364622947902680829686474906349192104599034200559440482202460313601339945073512447205621841207728839794057825749581480654037062680671487862054522398937159952229087509206496475863594319739219128360575269954569557041540504925158940784828917805079243517326225934481637439328543676481719549455747365911320881829470124844083498013977043457472660533549919297251310760778368460493670523407173651466339342738190834519449349361462478903365347238524625245141790670782273045172155198307171795431956468609725559151820091087286758822966076525963153481571994667526230625796870580656545049254390450850762546743655512664685003771415932129968775660328170280866877727584974832495241657823110747121297223100507672319725890255004471927830810440665740904427424799571727761962455912918991413311764847244256097040976362452274863277258148973708674196826299229840708847580472341942133872368985409015634252949802278297791422327608937608280493314446778019589712599333838397519434842546531755979368512006442982993719110600890615254729835791570833097006181413005097709865293652105054738268331423657179647793754709699835893405050744563300709775995280484898490446488689795062589192661817703016787176027289785595388243391441700563107023820216237493902129775890601341427366048708272352661478862757879645075671495576110658359724458336166199747988004336160259963094226854134479193158925800013392515244815236212600469545931320629036060129408565760244411584204287725452235964724441446650944493317567669412471612051845668472392705143131025125286694291942124875345337233451027316184234391094137869595438018451778564625732030124416416912855662792642534141113531275018376251539887843196986663365217668507072860601034519327629583272917228528559542589202309831597968833793381418120206879657289353810918942809549511287733028591831128368890924471497773877419506880415136809135407689956628716576622575524098974811199813529509379386904770530607288366702343100364469011827005445405278950082787050489782695220518444106534146592555220694676087807830358035518713009545615536215639451518420718272055812562520511567442187348146897874738884046285461102316645749293608700138840851769309299059348170752745694132242324021489377343668312543433306132018700176055150879401711882948451058043872722960445716852804887051732545941714382909651539749810705376935895213375697672514705102338595918065701732804123868113904278737873676825597003102064021543370568429762839794278215523217345679681145968036605687590073229185511256926229349069389423580645968172201305102000878619260754397209799885113533304533310588806812204995665511488105586917164095407318858781958956881599379010708190200272079894123381252899817096031635238189118241392941453393518182479773935307999392836440008689462343002916215786217620622355040252591817746860952043929451673373217263330354667583049999734590879303586798417036467518519836371462612089310296500565036222588286477516775807849156480444273189488657013500183671701573178141397053707193105526570981451947987107644666114742212208287154655032020426105925167739926417310571059304061647341412293306320866307842310518343469352965948539761144455463179148496502592697007728175733052299851263095247008140082618450911293937253168150073692345138533515792521172283200300027747659346077435979283412950433441566683101868781462863266814224305201014543756624489272171686257504609359307881719820604181239423774847651174475446396119886405156651906208594453291996913648982773704206483583522829958726538686671672701428521015447487455411908917077391173170621471789517901628492273878045296783822461628257179619999215487562520615759866418833449014390523792546797666774435605797558284136993446579978692395737121334606352520821237397595310067561054615202662290257479484237437822904614845396752229978524681087380199276713471694483809135513895306556643289795705776241548901601421893542259295863355649282055367577662423848349755435019210088438588473169518714077287984120193311044047872164589939957354849890209574052590885302247978336061239960916353304843647780322924751801195648454210534146394118087770249607928754658427660123158993246456753168666511686594276077548305779514760764159118801222429589744094164975506681820986809962611727989260155592223196889436267675447570631574947264927386556108450669956423461988309898945671621010777616775289779225679065347303540207274496818854608207716054294906826493499864824939492251714569762178851780873858311652403765324924079648328006087331190465853270742051476091287915339478664678684973916018515969304675651468514842063237947409989267705365309820953465684742259305373166567359069631717523860476258967617062268516349684569702544633212585250850230111033630744719127455751677405007747111498857823405523214299639152026058404200405858912447542402634349308945904023463467179880030445790415444029100764395617993115205826310224154056054670048682014647239794579003097363427435374612862159616076572089263932950162338384198053310158102962840590096385719002470030702124664973410555430932296095483719987203107485414389213344509108010517420637976895177041051572628674835496416705160317807286364842075285917825256534603772270587775988620043490506291334277067730994149371781405924536818396809515949699353155802734712305596686445473777956622562815767413200833753646865769452005788988339733349520855904420237823656179797215215203325354114226551585281805928184402814828394804116720915129192916957961332996633694382523122304951472194548798338331765298219050880147813278776179034944720230219380474011938451912209101182271890196014262766477010329004398046337200339639657001148021131452575686368461921844362499400072999489632113942697668991817243312125701182079909458871049721383125648629069920708263173613735044453636529258035848741625761080215784108174879486738185468417939588629382415216980104566752345822374321421537441674092956395296836850857002775174504432829606629035705005240789326063634176734980263417239602403041505564197157668707425330778111372845799618251409426648586043242679489230053867671787291474871877223124371687944300597846330307571077032483693708553853982346620498938515103852843866391063093295006950150977703602664465997794790621707951248971488896514963091765365754051678771365248201445640861575790377760065730855795417994571400392485743728532891580730868837591561899383581190169991675976660639256011431548343922154368104314704535692213159848483358405804097261357523054955672972117575467629035552157403765846723354216801321430440749809138133868465705081805950745005930705132654084914187185159963544839192544766710224607612742861219003208565089468763910976891232204708356508006159927780353438533611979103062229552187612974841269273129386336952903305959495085164020852910257598331022944923448072937170155002213251036558846253009566035388211509189424540526335073639306478651680022405574716645080845623445984026692942809896981360515380405072843710090944619110187355530468223470740247037025358448263580766039833789930943081946089141768044859664603685862107124738788892832069373304215855069301404441954631924032773842570568013032994438849334487750129678166906253464016703163451841975649819684804120985036268942654476333273515994316894187373609008879169398361210048999321067134546309466947953919612484654642764685897014412329832167876998728848145257561147078580781124598493645836283018930072834829229205126633668243635525548826052125558694273401476931238101454457456000167515645237168919285622527846790064804803538741502309073182722065375985339519981009873101754230660603513670492576792705008444874407206695288172525029813606317464737095651577551737535530220867080298198080841835221301082738009414232840944155856895585872484013412776276488566847950303685118158006978445014779542791199181704830063023869886633420956596567789947841410649181198201949619806200053986867607366772653115413798268049656459171084746272317654807500723294179190146306150717947452091948630325118706392931547716413501386380722954057238991686822346792327018494477602982253790241526601750213661445627008375059288942445935703002792949488159928514144318889871554120381479355467254744061753539560122427376879085742126757357009912408709564785413501645812693521538844346314992732614177306120339896694468085010772209102105892799839540559154614031806266792648965324564265537558228440550448729899589412371040794091504567890182236278369972268933212557135276187584002859608595339000990477170269769426909567299010373834048709188218455383381174090718308720125042640370414837581939456676500555621377277472745542193343141268571364786427029169439015122599982448690932128121024606340427293882192826661605547526899361782839992040577475400320669535719347685569926267904968911691574761881238409633496890247810316633949851233910032093701328359256899998043799669166281790935043963311078403200971420519588991053723491397664430818760250756640064540690558140106170427401698424443565706404153814059963685126043360889803353148868152777291921957472330591588162483913688714328445316061815386872505221611178331713847219219942164619650287133666728759349410331537817236930180207858553887882679853668429066294404815419569038500565290188942823811468928881306554243764573313308780662952531415330628143665974008026684468101941818651006974960981853974391808660961796697162893798050845245130863445428821405033284546203794721920054162960100413135807995310991447679875547222982495107193803472620502663872900750755363126218692741518331735440718317019672111407759409001874149012634061946223735682737557494210937978194699902049294258257271248325664913578411674442852672130899390204037823865801303942460425358477701345897860641610679862521224401189150501335824170383145596686268947483899402990598140750891904008942074848152352434671894980964076542449051263720915101719909302645320984806326724166823996304053274255768055211754114151884504137840413733528481919762785517157811524527299902146840718176816279297278135156939953172450957922292753812073852725690681306279552280015678461582654829465115477696193581281269356071736098004766458276144955685115269401244632296809318534353240822827235795430590599763068525748939692856011651776157703732416312952592162937907962332508086622794807070319471295010794487827532492189487342690572453643789004598224459492654270040891677144419934326779298302858728225606493682276680749093251170192118554990471898566144007827760342643016440458228967409056865180677479796783094745898605358765238170645463570419364441909558777985865688162021105026349042993032060717428489590669272878228687242258054194014153846129800633951144575450969793986241434192237756005792783672777810732927178500835654921946689714626750121217114705118058375990449262918446802057735725134837747719915606679219802335624850892835346296365972481600108716282588194128985613774246979334096067677530151084412943675754167773650344923937979590829842129501159817136286660718897852857941661258209692287399328745678566780707295103928120267720944668078957913793921442816972970975945378135448764221656351270186010039441468948758552735265512873492053632512367437788457773204647015798766474441651603074409443956235803489571211272163170558178368490801299890945115688992334713293221668925700165230665622578731881413669926697358649648553245529947934709795298615384749486477896837216385212210176596161429434966791045506681278047940579470515408300750311743581781036590424125991117789725381462439158326741723452620665398407815494783688687989812346414605334181886832781908325405819071354058969373455200324601167137782772056976700312663723429411263805733009794777915730168507830843691664985796776780604952362624278410375386570964529160546539767012483481040651398243254737726828823006122327220003836366167251347671538146714617183485597879115016965185488363442542789525947526607875625939392648019389719041213930481025369913774395121514150355210072766716319325245382020765044512913365856166152349172611521098362992860092821982000154253044859123187749572703989828607186667010138196708910884026923845410066314868037920079457804907980499223473902313540354845732431358258089339570520213711791731955502742895337984110460322340691893056452893693823097149301109485544892595213129191051211696506140647679383230976008669381611613016592469163131019074529372667880742996895758644663815244117800112122544806840668036202709744774719449045223273278541074698507903670777057944497697610027571471217413724831719091130653211691354388964691391636808854374328314690069121014000221447157620488138986762258506479193363438675304977498031323065237655370212696401389366184141866665119070992851917485193755894093578971055831943315510439221514844967149524349294796630988108791791816001826438255425636900230363681072755347010563692405788690612666992652487205784224982928474759513714945138442665556813321520812988463503167428032211704379772951319546007492945608849426049582719384325757952551456798504443907719822626624521592259806160249213729797141022073023553423919442274731679593959766470377022705916033905384338282726085046565199664100060905164698400575395119229369860852001861873684829195380384287569916376227259633863666743179618968953323559769636528783577653123499729770230835978666749738261108839221249004638317635776849794063155655062577788941968001232532161038896414115172237698501106431163892953528161061635086657328014966274447323675117572017080999764015489075981491367496930995906322409520408402791485913071643790391110133129697731418613249594465630346599493601539978873328368728472776219631725233493440408484218736781449489358910394172053616141540864391986019816228125494319632925986548830578804672428640586209700112850296234098023266371242170863369506407220630666507429509197187767374740526549880748638252020023339514690927781684553783030152196531223038787193329624822127092309872245175794515558646512394157846052685068832223741677887707076231405240398425688964380382629246814161634282591141366803757176714632699654739910008482967224959524849143032551935821177441337113630611044256747790586700195640551871232168744406614043715438939186646514191410375266569055900299095965332799408206827166804848571760510780317205100557163184297886096437859006756699135798306229013102134904342321145034216055159187457464800384873225802611723503972609207768640316478372255510748764155452081405234519145985844061677564131715347933603319440468272686779308865708209934480437784466409308206462980709523428657031211336471513827778788719615449699107240530487072083178444754738566059376571393627769034747304542629911877436170842512296395474198393046819731084034392844703208440632154842341377896696066162328148007129272271246102461077154161676722782967609932851855245833828307245829359334551965495137965107235180060925002080283331931519760741176378373989637623620375344284929350785755365547841386642353824489315059142873394831076803512324729019628166353394847958014189193334576002157336761523463340551527491493131759992078001493478973431635641807242553348748857253791579261544462714759025736282266783851020364043672498326002806619001492674379247302470686482011228808557543143829321588674395524630600319027600879108752743008738823227449361654442400632189581339431682481497212113974060146727889204210438353878092215169637943207108315037251390327159487670022657388410599450134782741915861036662541395129136370342634122668426313924857928172301294018481155172124967847944933752409539369762241598095172361295824109135482361288990168629992491006616080065857728261974469584002882494313855416025037588789957486519011477704926216710664097741150417676712419867189646633601644069981543641681393819957915668181554106890563967316785339455247355274511828283827390550957643594172026164442262101179117406291785606252207246365011141375310535395470369345656943856324704289147801616727316466030922613140094777515241310284570529404163763047347409661567153589651696356650608589579311776370072584782272179256594780380260846630797827307006353242925498894106414232453606973920200052391146734208000725195176610289484463724708425942373162152966590509375587770887429624734111848684547587569941506061391519962342932419080134068461815306417037648256541206574445486757296018041508000793224694281213529537571228006617797817189694356465994923849738740184890712126484600440469046606441037316618966968119625697758400929119753070480933409378314451973966952124425267235062806426701435744608629792592478888185931756034076299259825334963083938260863130215400457246376416648196590059932039480996315262399634982540644432274335191381995638689904078974979054222562312437100854316445131250691719035342734537756837077631947458209213329691115271273867644539553683171985077154867412333309520500990847099539459372752745533885756429287638231046322571888541496868976508666030954692170384894212812501611815091536196011298035294518113123320962493109836129455386644634087146643891153757702776626118224259781920864241242582549093593192636967570634911338976325920019319703914715816388978403327280004517715957937913201573985618732242121060979174094565822478621179258193771494859522936625264970485601201299393432428043826528843668975036814278231329383199816671957086443060253656315660396627888055096812269543076164194736076341621085323225697256446656933637758268690428952635690524219396755718588628489967016756950469290283011013167267015250855993051274060039590937794477224273996719729275890538818904604522157375958322784273511908471535577899556562673913116981616839689638041563021940079771775063996943798758061848419435708908032068536893996231561951035723776813257674423783806521537417816021117788175289329142761685558323314759672317774690145049844450454672965995799433751178279534013678324912618660424133185154680604016958745801678609014356478108282321335599091132682487489160118513148785592349356828718287961193307069573942078680732570595811581710397244822416868219062989295756339447893212633872183498565507416525569059427489075280099949835540704059519129345552578657490911806972871388354225473498259229017741255253403858810115016539418625120146312033814405055945945642029932358686949417286494192349691689168141245476549712817498191965096664504066898599618473561730267042068197762104112972808152075817126221118951953358909261085976107857931545441707353033313511116966065502293393682130198905801235201349151550557972597094329853563165625023221960492396204643479608746634076027737066756566382504920149726286158732701859599143629113803718820132827215068780950937442157362738362239788192170160082717758434122353189169861158732508805647571697585314956906185151967971601899086778839072171323547494075951642661888098807405101129241798745455477248258347313358397044775666329382915013085858787404375559586238229888712241783667939002030237134443986949930231524600554759750649336486054339071071157829806532493457066732109498097848533439526837910559894457066568846607410370742906894182398226369736779403926539599517605913185325835542827225622571680348809446876698012724143881145885233533065119217362308205068329177024385820299023356728176553298916884268149151509565353660598657180281746431063389091206865890099609407270916459237320197448144837313700015031032576972064951058603602247500458243210299978315706082597968022412925569331213883147021633732681096785624243857640593816856706291764145045897158540161511854516256950950441459963788561529040638041341524902070613987204738229091851922034632902723697125707660940732281488713849734489761636400074455137766689744114949505702692507476831874363920091638002352421452831195019963049766420243786252114537410965846142560346306165306148832084136991592485465656261774238790642659679771329366809977134329580589195207952968482083926044505068472436336640926578762372734700084422478561562900134011052785305665003947223210410008698826567466672911770694208994813435255968677769554581057258065334600349078867982868227009156210811676655979496047944236959460110038644979106476274964920228165397399314712462313802139279255226216079170602079173292722518687355056587660001007615245616871577358813450133419059026014904060516590364151971387085250373594371503473902216088493967000812481482566196187039048759162829015667155958651693217882730790936126153665285293640757051828675109245930217994867313637783859588343003476112336256300242583185465844213141350313625015532539828265467012143330112425646751484057676842052273600909798382768403953405777616114393701980201413863692105414357245795550493345866380206025459155399964863346782911709891616356223844887809066174385540827949401729826942668233467444924293322058953423907824806827662778973703887072962866748249568095290094881621941261100297163160052394149001727129323487314458156297831589649795510633560220104948566962789346377135521707579431760412695620617363165608525247808361811551693874869536420820674928085284537431435315644393815472021671346598969972351067794860791266565838074677530460234089375408073926673125601716180749166430379007969430978871725056143316293279276753750510978186487482733639431721249688736629524414189803986414511592157633227248211090077111434797955437355423125099774525147223492401281628316489012721045758575581344808589418923853926555780216965989646930370699630146574881630889021070333242850149544756349151038175710150048702383299475382976548553923192939888340495167420864498947819509564277130603392782475072931041611451725315361725372008553733629211630544391598545776439800660433935877592151165581480383123485200813978286674452673634249421209340766825067859216912924255485176072716915827648911240817150283707575319872739785019872998436643448199452216918518876005589032172364758274060685314303473102194509567210232747196266370634434643421064347428694108326450267847418919757524439279113805284043712692724654996936754231244458858853897523226775817025306154421309588416951011379680468462819087652565742415734703885745282495804370853483488624920221249247352776940484346059698837391046928326925434192237022046339899646359359096219466643502061865073662316194731596993669326166451168393060808705178303787013686162843857268430173661420411197262422450801270994333235471230653498085865246393374580333789708083974800191784337780605584449445036692132156802650803562281104645411838104893505008772725385939201543531737656465897654483475074214291849900022590488789081359822825443355848535989859164145038087000103389916767805860905819518142388205077467409189959193328062983118719759133911196729669418938013692585754452440901357455413413470856161294735672413212224665172239427977803156089938938560258564292652113159728640401162660553915706482899465470223503303260993343004708300372247436804794007307645784278886034427368495317642201811300148997679412933190570334206915457619622084176260461004515301475535795418311828661612508845988043612023189295195997605444314778742943887424925767008284778308456499864955624452580166952200150462174403529482945942609422361259215078125153012225687192173874436649617303104842240405213259979235285197347335323521800114642610800179240321046488498929512298274122147974239857651188148126156465018156528208418437049955194165118877478722820597565129369028708767758914050097054220109347919632820955520667374241725728174279357711956845316213737869604625321485736420253804676778523169473115474903156994326823826134092443847251039093151796988416830956736945951483557289250961015239796846337139588717557938165868709838251455730064841129306103702954403056477351053661695873519514842257860548970151855222325353874175818224489370227715359964545025904100526583326647439702917110695177977095033678196554230583387286980139684457305192775652961604294993173499324258032521098190788685835582486894577013718236236086680651209951626515349908093419237717892524381794905561187695965968624040913516506515799805144160708568908269584092046256770057527875055392632434151977380324982551670250201176888743324063142146465858248531965149012623748148229034856170440108756746500224129617690498891394469540918355444209947602754799015381331351770639096242174022069482238022655630311068290384599860306865428685170473398717972738197923934666715268537534322842707309185497458964193361219210174474566361366679922931686509549139076971300030436995675861503038706684702917270639910419024755335293538509876752939872726180443311945880020152555252600257085271450592045444736377506545540491744818932922742791008076388106628029846372938262532862158514163872722427376668703003330374141985563304055432422874724827083926409471137427125117156977575279942962119623794165261264249880483685097057238894287008861703526347631456664857799636410484813547571808414632299971347624803639640203068712652867096630935823828016611307349352623468460712403684800570876386762914152375719753340439311898735920432443460128740639576116095325302542056882885617326906247270859689839242811327892423638916022168651086693377480538134471233105201162839771763313802600218140716407301280817748967354611235573327168638692757877300665658970753149646886660625556175725392754775080728288403247988030186133850964245755236432634403529019713214532247270929077520175947118635066904960995618631716442436381873686918976008226236138601032161356244863877124459571048585325866927140303476381471535284947519152049386026367713906238923300560680943181547386839895760662570675886968685915068229960025638839251463078072746218871893901170732472154445358148967107717949088122419489847094716038742878861683950650014998202841322098831707396124483980371321852658643597271907790324312750487063568129956481585304839609516148241225876032783761193378816726719400867723587291919166600354021722697176928592817574846067065397021610113990731575704496992373943375626374129292748042598491765480499661510814318550012521705452952027718573539641105069050839441175147760676174811002856013516053323628639861143062995335438388171764938536657279453795224407928241895058336108058498248289996831573043329191822400459067964371443086695409073164226019687430213628685338180289068750473173146551467885895067891404066972677562896840645472143605606655035973534232894559364009157644883191159389469937046896754657973878777433980765199709791604250326642075524469374242661952398823244167326212871844914442473323636819484727476014916471203915262779403460327995915860301725002432467163563257033212680631228435261190163405058441446758393596665692563910273508537657897245654123406229400149093925675052816110993828378277018119756931037068950616188958886295712539297851026369699943693970641489305970094377024470792789398531937559822297381121479317568173102600290158827816218215474037562368571609406856715708041606975327902584557274240392067511653588748240496811146185104608966253662342911862852562168377971245122226739489384101181344823271490424022165922384142219491115662550442920749369893915805694852999016294344673583941060891790187152323215593558589976109626664597487925846666297872876533541761810501903810793151998445752273084635990408436196595532961429030925847916943250510086589831007147012820233971567133254728645868808653806029297237362050727499171263085879017196091311279938367872377028958895254873091262253670598473029346043610632267085617657266259250295376203407091602323990411571641361571688883909468686719031195553364768601846839988281080375876366042635335049932717398030077580386101144368172024264001379581439104845332588348265629045780045012302464956713334814558291868320629047220621982745717753249378885538547091349557158091685841305785449813693047630363580034492193196098202561474874793422764150907893289987180561067401061470136972109039692701120229022019544757666050195711405131392273652202268982943181153254006781407057189298900262213199919160748046140816395455295540426987613761243353287358157476342819181968997659562580971580119886528134150199544909529264041534990977978118010787667010483316313877473780518354746951840623882669436283723283589280956042341862667056533489716116213102651392227077959241342113922798428639841921877356102989494790451380137757525306842751591342410520663872412973968085377408928131815405011619953897869375780359557874208678368282663076072945954898028549217471110587425932287787816771326615774288571923225189885872846238332686149189962576691706229635732221142274128871893885984757745490107239579154660580761083674862410265951763367130403993702502038992897057022612417751991582080128925208736585647886470312632793799723901564455485201984602342602811025108709171932362068342962941893636803535960679119052549621135497113233828289212803565242623691441916135795908480418560899230553088742369733067655738751066055793517168395792241781208538700105219409413628632864114909648029733719141003698736479379935019768698635443732267966161541639528792654803067106841410661213260828853192407359953057345854794028618241524855702842710162306057674115135943566877015999803857327998871388153821572026810698416324856591100645550134827062425653577581295354763327800077897006880747863813045570647185424674165857913711205310908176548871499221231156782069026037885673485757909606723749969705367365687730879138709481220600836805244440156840408243451744048956267505192466121969047957908949950002457963205391350458427863628404758760673007423342612022760665264867702162691887818825399055435979075373614761319512829873125813405325260774447522156323908696655382489968996267474320716574574107834588450069642624859789689846458603621639420737150105096457118805450150234963130952248441370526793931664344434710330114203242315525413827945018357725776016762728200598160199306860948164394775497014153909790706383002793330326319511246166999457951489450201231342128869528198746112535184078398272914221441991504867353199642457078494289199156185616935859514280789278488558144755753974595370582819014115777456921690238314267562240604812358385051394609078440733448880830153601405597487728157278018616916405031690878789822980969921134495916697560983724180811136816472027444172323153333541103133424927710194566801894277029198919708113199572810846642501057483904057531981892417840094758761112055112772665886176389453630299892520934337579054891978557838855421134964288681641877932965572378635586815109310195369475392422167745900774966152213964368486739532921140209585493450792239926745786719555124994325161781458904811157689464657814886211259370645191971865355599307012690809647939435010405916597969342975117975524934397519051973125742532597309722701306723459412335543464977989154940296882575415269073264961357187156816160490307115854583448573105895472711213412035084133356147712964607687119309002014527171587405140963714435971634735378500155440811982127673203748552929043899359787239941431613963421202824147650793255549678088103249151999086166440736387484974437855379746147951289974508550787106423107586053828834429668661673273817139287136955901358415363440113023725723233663851332361608239868367870997625194338240098701408562927624778124148039992022383554771623321631323605409510847373087789607672031578907252933975203409523323581046916574268845570411019201366273512640296987018017263423618576085615783915651205647110323875813357755268120312175820556802089368220367292970529742664953055649752403511684824641751071081303563385814168745116982551846733646969441341935741829869207135842991304167630813707906573273513183289352163000513596296086885148752498096325976716482661669997073577987760668392438637698809696043282653297639767221987141998346197778963071103781744785147589871924194574510100061788571650606156297016803721619635707164592245558810723193687652036477652772183266249130065244751191937685049687456935305433987156413566341848741856104152614517614075468471600301986642543922947566993135737689494381537698661201030006787516902116815939618108801432227983682681433677793798579639603315739720827327021212187793891039901453808841579126320904586331729427128932320762423994389965572460286189639907948052566036748194527881939571505156007339607403753348141122210999742540462870627528621524495995371662652232712577670152975322158338623332562108645735175855088638164914202137730627806264847923955723971874716253088539674879788484056425193500513629604440546871611227565094637947310116150592527157669876776833632795803159386444032324689019256463315076489926394258266675433271786384137784943625916953622852348402190155389450144320385372053066083207438770088949216131115687389025794134378154109449488755144012354700483845744659805233566042632387315682654804166424170632288597059033533478369605329313026935187881731849890814659618924506550604064101718943697523518809811935353210283238964671722324350213533779586366974215575009140226896098979029619740813844751875917731401538474447650792133736135501994605072723513959769657023353917182111355946637056944445615566831051664198382642126262367487909366554290137245417864591167592677214258545215547755730655978742869087479698289583357269139094182008333442807304543824141167046759647059826878799056890345832523085126480494235757089556142025139755479203142800167981044510903080097769401700333836005895959146211359617120777815966595383608169831156562626458270456076495058078261733135648295108874892289629603824507436933164442871057585801546751512238478112426277443314232947816306384994446249767941751611554695664780703597431624019153189408752335346094116731570222740404128116898698956407667898862143875639492470085159949632510898529216764054678046560936023860171577860129295988144247591460221298925439297026252367460113470981562755817805810088998473205319456334162527028498655236513712215690339207491707919358875057197717804202158078782167640185047831220515505835634001958151456429331802227530137641961349398847572673231781050478756090706158461345757665778293384235303352967876542449884848732808614701161166922901433565491379119916241451446173903661569992265724102633623901986883798303058605563108755602346212667705238337830907018520344878517501395755576050057051736192352513651894487657564375990420821856956466741912682321363752736720726710822125323590246527886627842048854572554579721384152364295958141771093341320698490248172380645192115219751738816442051147034622263725740641998745238893189671129624689634296976837589781668297102450408280159001341035452557590760013434024201254918912145921193264066131587064456162956857788232407154306869291518509254736693272563548375022808885821926293443871922721299271952468305966638392086706519235452335078986882998730286055215996785273980184601224104568614046067955412427105569363644478713407269367833743321531282241423480669541633065744109034051566257568714799066338625570445575008985679731972643940973050402453069406852846843559856072050978968617311293783134345047520843876610489683173464007106590316304755950062864693758186858715121634146142548820297112687898673869440233513952505451672024932232676899299439316617231767440928868020231094821946689019464742486157679199194233255814733127375466185450494809640696578594304135263445820963752451179856747446411162139019761714158662534039365359275641006737746996871399221353242686877921576128036341825485664926784948686528339053533700062799777409234600517075024399354973225101560424901740268331468921385351353156786578518524431297153805844514068074892998105475956996037566266443057036861368872351368657227377700848907821471192355583657189504453180404048222902467097168029734180448677421612736234619308154824402831870070619333788913680093170934718832381660022222379133266159850461884961908368781350441314342724736377097958635231688204491718232114359258243833829213369479188089163286260192545424927274643427531702477823000613093200096306582582633411467891170737319052696839332385182706967251842423468705755340637657717279626939371135998913649195358155041250293322100402947737066630375912246504016233545007395701974765326038447626856330125761355619173965704187984396768348968481328301322367048367833253175353047073707932685139133039902460581531094966448756940546018490308931557245222693772389690776819546150451920755658794729285320787445111581885229484558208533839938362025270015502663247895356866739609331906101276029704827123553834723506317723247357576920389516545116367583987701900043927806519526310618244995352152204543849578771823052594898693303587927176201578103898060310330894841205312953943175740663119714930421307026803856393355690808839345204715480417469509144143968195100220713802546386236032556895367255533614922227633759599370076056044624132294160661607967469867308057077441275574302931470142776511480414455056139851262207185278398452691044990387160109767599906187221316125124826676158871562973303680570176050677244257670369366953863699063166452690922196265177035220902220974717306813717277287561194419638903505805488378754429801696011374403880407640045089025537379161720852599339399400643353167191026926512935367520250857792295950012958384533428470153570214852291182623981420478817807597608420475835376275126885661194776187705260224846100925355308948314052620338552221380388349632707787132537446573617734408187664674731903980220719323872799604897193318004161133419419364607733129124810595376900708483873874135499976284711894500133262527608245152144041681562275055338435883344603684237545248582128485995533753864592238800880044863635812153019921856437865144424724172831757916676006644004864758581515810759914794673947778451003999327105562755670489084968169118709568178502712615429708299093371510802808309087658662232661982112307672301256665106596396603030152761275167255848375598617678285777222252126981660644387882014608288417097332289409345997988449981320986407104117061048820391400218336595682829497181830091483024194516157556322852385114388943180889948382416087455380201054620143678230884982269913537518531248895130809546899576512359373457773766796652975959078070788531725745479427492509448590047991964204982207389208905995656751704147887366997259996179014368946896882570633951954626891221884308740951369848129774042647119660622351419722222431058656941557544211570283090417578958129026955671695392047257829071839207327504559691006638379262322787207430733999793761744882626688574119825846459963409619241800701280304051499469796881512780730423397656283971936539510629775201002185982015619666537613438896894323836620960997509466389078006961285892497828342331693724751390597707661059975934463103818905835512403571932098267654093747713393881445069545164820582383657869164038081459069707336666517710134238489326983765671709224052016725628143438755593901995565243998129228243290964258563784326742885585264296916121850538814886563335914918830859831111362259845805037458557581415084881517172846608100952223347031668381957500455753632241010498612375821235055393553714181371413575915654288682107660333257515330147850782517682338238353161054852433270683415985380941165571771519225653141790467583262684317296788053650613749943278855649683093199469204641033857815006306942972276996085185120823530360632377306956096183674749451442315165735843339097753944966404488134317303343708242399270832613900605463801796120441266066443465577844755796759283272920445184942910664484655600969529009976508025526867492951625719488917437597358178570259509690841590624674611393153941285617584869571286051227683464322643215371183308783406603722878813668058092701840320534091832307149892231048736608709640971544042327952113270845161058219094436926358651926725391845450744855353152900660389157842829017675309311052613107386556386001480674244898178835396925605284190893132812726999773682403914452775407371422948946061031396071455537098019809767638674708196483985513342541893573309731949780196036525672203227673265767788001433423586220131011568620590937866190948711983979050792948947171104543924319156817759728805355768509148719260178660726977389754502862886791509496467773300676006299103671237053725665981686085400778614442426292264974361837693543893115600714418975071866398556376522300288334498301713659574384996340904434239888965600441555616112764645770010218943285742666930474570546658033213751010048694255860503611928799210601147864914027552611385937543839060225143027794155540664694063904599503412400914011142415168581178546968008856463722315103707117107750236442505372031740630450370556002237601559715789525489473556864812172758091159890723304038221033811521099118046662878956707622613904828671955631855124791447431472609978279981445773776509679905230342633627763627076546741279250860759702312057739871041916776531748778471233242638132764891375326655123145634541629287896010233451492128352341387163350670268457111071857595463860529560403372792033397276984279969790043197968674104748237548589692298686188295971726576245901753179155356287170516443637579052354746977770828329303034136003794435893701217353078903681096695794157139660319139920454046092276244110840880797194948702283572656683603185631972425159045440531559464645965514983758960970044843460759055305516968897569500595043168553507042284860352955870583221813042492564145023355983717836976586732775384184917554145914268119214649521493336219943259321371888013301863814690696734277282175837947296769073964936547340052319115983471257498983365157766736380432844522620249506144412568075527412316925806746672026838869680898126249537677068399641466208677478211704525195323410776230852981064904673788547135086648820909801983814623933837077052522092674504105028441723590830128387543403036475402161126552514799084589862043446250088343928983690937856854528175806369729227756442265285116992850762150071570622585392456351595607292048190296583920918933262826992778582895930336621180432486152323173111956560453012591375280688339631980950456898104374697635668733891818273180256769126782828853569015076500812116458747810296691347115376723346789530098366906984773697450380853121723314015304512724352716976704610284029202042863044724385051921594505529273823444168950438720131752334549320671365227058947977259319666858241407638836707939021213174605084285339113555010595556448644382185688606431060900683031441868794164031040431118298572752624156352766166643824880036198292367918151744569752867564293922117336262277030368027936243088825865786007482967570316627806333518256616440085680379810144717430322848891620415800042647758782964061540931597214742888495597181200841736353849283759544572992092128893022124222082668348195507131895409708640366471028044624750791010412632274581456784760284494846125941476271536880279644387348622915902531506883464897269972465348104189550086400464093502343316954070762856590772348598041011798170932120262407265860923229927663670085659462824357195019409809082989625673525931418006242083951301996723073483778461320743306217111022422367641165587319923413230137804882449863649301201944720709469498312928465386106806186986094865522988283191071431307875043073559316030953716468414877678516606979030929753566871545312129444704616132716217194273856283830938947169831392437063314697334031800336326800720247533578776886406625276189426812454455792686944292698550527768248996839145677540297626292989662176102283023918847767444564326595521284946015209600613705950053124264113689410118921359196275677757864702903812326479816646681452755857220910610819096063563853625110304065613954194330981700776532786890981322446382846032537905095759425439595045104767288829381147875112784495416323775351368566437709368798698467466468336061975348436819650680982199845190812200769810682983770950906768051628514891772553316726227263442692440583333122438753534760838336268985585892524515455395970572418915376899920726438989556018601761185946497241749466212158061392583415759182831691528854345131002437486810185532862714674118969700127633540593311444795380161608102011204745738292754979179162188822070660915906084161557938115098576668418838175141056908253803691044572093835170633466529257943226852682351325390288336117438346157330377136273009369697655891735316201800283996856587164384640466205319798146963559740374894513022372512178351225748510065558662746782148601158512348486678846339124620132429004635808863455882172126457952984807081131512587342718091691503545262273538507030067151461473832441816105449040863334942148411887783356934171534363344673822353279410554903893750094122431964499316902307944053138032834079979051610442381526062985671396498196900809606331139734361966655777884322176712852816923328958061877626677476311811368521866795608550184730631238240276683207604823444176913711242511499106298556508629962980677266798315091092037029108491388528087260543855990295864228092511023855908025972854682955513728010835573602122613997045272404301228112525140199722009789011220716727063949596014071632217469651850160035157445736252643526892342432445699525452744172052778867811865180137673006420596780920745505767433487554931053429045714520046960134524953615854624833699599732886844269866883881132750579192052083395181735181382719265665017311218879880531577269121517526833891239044602271787530415786109246106233763354680193387455125808923504925340311610115231181250160074053452167574139968059317778345338331945773690507630334139006984141590194116880870189717718615823230005365473678261538532171495851542471953586587291459863972148457905321654939500366914480901116402932453061419861700713239863489605977125631456423616194220527922737298447168863278180417759411074074565125713467736707941144427253281593467866194771002547053575659292417356582874747018353206462503277626282895747271236560493183133335456847213889716444828260875361764623979214470132366052527154670766844510193511605899806979876666235333916527912111558570681867359270815906711561046806106610446428891720931276892778509635742518984738063374643370769619213738615598585250312926166218005607012499901250646035222555039297077527120679868326563231686632490263533311281939209692514351086409838222510474472055309897152650433561296430684812109968542118342181963884563074401651529757260025800995184188444108998288391901855334591960658307622255450002171293640137348648060836151861680031085290752719297016223190715966429185874479755156190771687276733993173213950369460013312747962367895268438497444075642237288976900771221377679800335391650861712556927381772032863146023799768305298127900073097361098072269053636825642984435027940093462922774741492803940937181923159086665598190028299311886462076280732426335832466488283181353019062433138383019615656857171778201035937996634823248912514701783354952636087113358973068876447456592272979040845301635894125070208085705483466078405442630403381950474408359367889857834440828354991652314718310902835460564500823524471290153301185627371596155995202099727278812546473514498730708960105576753823861202483483696165956689445047001188097719282521260540121057155072934565819332174168816868732006983855737286772483019385523487938022354700489833503833413735445748007753616887734140138987727376634510299189161462800415020995819727992083797643827692405515905119324991641763926022072330018325340287215681721433288193384036350856374772532858741636994229413596397346391679500402635969223773874528178942332649123310890492099907931295409996450743976255402588167971177642333533607325626060802629108270882678671190481885877586875595160703021005433128924852905078668050069365338199890947349694771578009890032732271896431121815851121389370891103246010927748666884909877265441017071869657980628577535838216170705090399658990443976141590021135897963840678203984850461494094384706432385636568700861974886365445241649218216591030959739666403349714278153211937494784396849426372979076599234661649224814090627890648425439446399717825768157816399522069407200897428181883157346337048422377945531074848489361107569033599498556706970496712782087429049372000301292581192623323331293078619201811644206188565117559545496891081305567611456870965307448008749997861498167920902191943242975924450751870242902552640564530982768088018035227320640255557738548656189440739999729465245524816632106167203809642708620374545578716311827517491451900148490073304627730059729827868304900278783946396857821326044993042094417440427108668604988694762236250941209374265757140963105764655152497584751480817168112489216874935779032460742827079487426143272179105734018763943856304845029324086055543865899059691407361049063242769308181663394314661450298327497805835971539767172717001672707758011222171812861169151748385645417103247598298084151193209016565619946135469937845784411763617185382942386335438246397152593803002305570141039204884269405750595713754069481302558386734473553907361922678765806855695679994923088833849911792033986273286828685692629781332586340289379236973961685531255303945438202939676302396704793375685671843700149734162576545458068091435980809378153476619876528009422622275125937751061969562002399486884249917507175708308798702317463851790383805701740979961501008380155989154926496152099183695392220822983591951066841901962055673546469874196765485426810210158629466871409325768185807834968353068717002610166050915740068903518460101943720272293216579025394754420335628393372457082008658496621834748436019101598522460166307675374171670416312979499486776541590980330139684250977487004604607731427941904767792516360881012950995735239340637971312166620061794775990015896488067814169170744901275077103078900741104283422648270763006040436678604864399259480134244125097273887790261417229144350067408812959911606968245894497732573030233990724579361028065543021205241747629776917472164327023351513584048264890901391236525365695081320983244912643698207135898670049535731918137945670266290176796225908491582426343165598817234616665694653841426756425613196859233840314105575412620404326378636142269792820084010121747877398515013545049300042334429059393750399842925925365366646613035651942109508935779023805688603554365277640992817335635561040327128080240462497946393735681313154534325173530794646657770258029106796179997592977095269715006328777169875515388927843254579387303155717603366282283168835081051018122070414802275862009153029074290985111084185166369667094316662399847554687345698338086934830890096132088828640560650414289166284793939419502983743592282415477703165338162811869288833610095236476264309438107764040990972180120045643308949914157712002521362687214575787770606046907743803322966296754924803296676571964857983679206862033267090233477489732860555824100722337382858384347241120082629451351933472214185056084170637140733838274139185061677586608902210744566945997530799203624847833495091342973178789839781522380019616302449989553842233087091760610015829747546846039138408206380057608219543971214390429867873974733580760747729312734075072543264514314591514678025027260286161351700149568016987289467381124382996457923162739659101112169555229452237108936380502723604363711764851139826154045918318446187953178383316192309813279135608633434815601318905814062540940170470944341272090708886018233381177373674313986366725402983335501557298851480191505888794159612929705126277722861591112677793040398806717407979272820614214397668792598848635640499501216798899303680166876866841905159552347300655685345830913974243205764617563819090340940057065682409831440124655317189037722596797256932220645467648404121854795184877262495592085694257935216996281072514126716755647477440354476425462988221281870915612002759109673457147366737780976439912227753921294435715987843066980514368471679262422160947515240264647362389828234001581497362931848268292741177775348438527463897803118437470159681374467104163785728273440256240905616694697765495462899069127279412269311381656084785273614912967776995159715522636862903364756116336470735100535806113090353972695141041593327518549186933114045722817702266314174964175255424683474977339946349037132557400391299237150826784571843467962630366492442752027813896054365956332458417884219899248190833091306442961456830946107832283553844260094716213329816826502469753701983434017104770730551371114050465514391632664262811732294352679603172402502634236968294988815839922187457499632841553107415630389697904750928112802574644844115142105095676618560256100604684887863132868850837822038370453035500341352204987441419569025152309325136954021597328885069879939561382492344865635209185620187530021602795167667939267669954689023421932832968675791633433373010280930407995947396217322857869801842582300647862035360585120792987207141269937031075854976834174853737787638164187717142593615041211502463313199751047791527549172021110698075254762272131454930407068248557487058211814652352807352339001904386342983923323651946093536108308043623426199787852384023198178101143439429821634694492016699909430044347386247264560938241142722944126296672885534702806547586911741450200327591374675375281228852143587553737617753814065571419477099884285772766392358198942331806529679404190198856708911108930958220123420186063170771053466191292019637249901355503616710193936246035562407956252092948927037696494908136383550390380271217562872834504453184541422453871483628288413184822680227612598808649465520846137112627461247212599912552384474873816847081980140120135346587738673371711156954541142827315153069873611405895814720215046629264333801552961616550968553833278440273386843237689544491974645599427571258923110509840924655477644471011873171788014869206140241395882331121912852308476464058648636668778648670037407209973105058423959545383757770958327812447938076041298083444140328092164507172912726630368768410350393962607999568257572411785041269579934249451989751170539228175233127292468121865936332859082221404437423937981723280546951686157239300679895480358669227378488751153238434143417756619778138059827074012751126719875208988161737029810513329891249459647726979303473110126560849870541347523040652058974071985199573009093951029765515119097199412950765073002459704443812245869252751417685396602826070723048238991693465769019538622713549496618142660454601295410611944566230584658382642075210921580066963773328947639129771782409106864533816819935007944009116777501086076278528121657566422949595370948993864745205669722395832007410843710385085320353545963186756397697391101539821097545713414241687364605117684872080830546666653403989351436156765956052953483643735501782149724821795594954373200000734312080969696232510563156166910921040114812776256070283818071991085185614930262349327323205735310215710634024503042036911650083829021651891936878761276887832228383387370367192154348438468142016316150458192083088535600151982707530132705594553035609205381780012439820017594001502559162114805753288478847632400565339949231254686001371733119726466545995105390540001353404789121817745894985333971528460946124802006991060536673604800493414297424367674088037811879389875402267794891359700447721335909638983399945392622650815108860367972209664801213859677235376910762087948019626874919741067959584776436081259264408023479286518924543206700912692750887800679446435887449582441256074610679697484627896397561411735896176559636342652046545641174433258235772902014626807137439854914118672078769823946518294067021584217815192215058504746426015901825623329894594955730092925771243838160223796643836421500159599378779135009428199968835796413727217641435201865806559129193214963134425772519280824058524762890186530711676177718677903279899797144520687413210113939654577714510244953692916353060237536649399466875772688486499778357316207968439614617608265461949067362430828183549689166679608153832130005234863832395793215935397450274040143434334206123320738080647197446687874851188930119042173568714405344028089241017319341227275676066791090859438743751879075220276691591457549483119892700752947027272195564105857604168155139767116616410023644403594898720366362440385214045392261049815281488561331379642942099388137226866302048079636055753780274552040571541323664298919340460496544828959562659298339388843507554640803560888885658272765683839600212109182942223125135457337004888418493386628042621838597985383838441831688307260934648699236694450689353500180646590056945232492794585131576062973830831256891210386999478970414428561333224009092748036574438743062801574948823847456277148826331342434565267998480741366056192961936312046122155035186403131597480225006159691646591136871818103146900844161259893240493367314733327399760876708545447983497960091791961470775994350344977180130730936896110692939891131229357233067926423350374342418237427116141194233836866371611524198519669158701509909219195632145339799045466162718113315504275757013783540519077583919662772420238153899653142799113837753050083135352547945017927158574529602696038002969237730239188320646367137552578275004445965058745514242648162753735615736268793482838605318344227788264206683319500736047394671592523186507865258699396016533331481213849859265364977073195817348634480661840219576746722442903550925948189559515191240249690271483394045592602529282442192028649336212766499711497186539514762965804514014746509575532925671583640757043279139564099392026290833767896123914049083748789291254777700481342546809891648587893859876287289365379904639015761567634458744246583489801034330185531203522939199407838399577637853936249854117509361552931153451650342503388849765666669748661189511773755304444179414127359467311304742269309274298292861791129971409060988118712737516353806395806602351480800075515321231510508031987024702319391609852046677328867163400054574452249337528193144066542505827262841425199281219303178406851377025090709759223015111563904249269834888894236273136453393649211509760846406320456079320444507676628168999761967496619612981693461466640706797174127260426579142975324696311552791898342923653842174193282185156387943265416339566535850576576528088784171326692373073251888302284850974904338509444306961169951964700008655338717871014751640585101157558148106304562664632068685447652106003613478128715978147894280743084147481973857755196176794015843758960142793979816511013547664462582326111228995771506732118574662589539217364626060204030868280274759775125509566930861263356481914754417917580334856054829310954571403190418145846481319039968690179695483848470698611357168930310842159402723792565442999366662168509955315727962292075032782015298422081698443371051931828290175413798031666452880460470820954159006523320017304066569554636846194742343902833806274660718570276140176549404453629206423723061252050485682640472921049464993709842593844335856176848924968376948395708813993568691227392981291287277019549833323553634668839607016334131492237980442950896038066784391909293463854077673492985019486369832687178350067634522229082240005322056367446107397822898801306791416907419851740302207445423849714914254508980250889301779107899447737438180155744436634788210825523161911540209133548240961451964716369304612482583192430842015751264459445038937065542003319240108780186642724324183075139801909114010674594255297432247629459769500042494261236489868061221400727659676455113440855429948580851254669405844232081475233350854788093473631365316256469248064193815141505138129766038787980329384863534737999239811370890043524313256711726680864285212329213911762227248810052815100904927786059597710949998938500540110290267532849456644099173276884413306870695372280749030039245093077714765363922547148155435571029924006652887985089623165929432829095658584271041858162000490334376969621387468827419928881617020053485274355659910907177220009157009967104474547036576900666310470890147064449446391791662494857710657256068509179412501344320017457926882456391588329348607727937191829791521759524129103348605759698162738409819076843937646393279702388070747042067667629311140890832601486968026200881017185281118126077542789397788549873995786025751669022849074343601907055597398609881912661232810265336554781879817758146457818532616594092636203185484063797757159752063516093364926932161687269516688226850789279111012941083070168578050569001247056863373082585227338959650754678755344714082560081829443726712607445992787500833462806361389000144261153596715673837459030440763145241510288825736393122173225229605064008566879783604602359220050816261120194435334826082348269076207930668260975079081629137842616349872010674159935606008628094140273889227163532079848785726482167922294535100407173244455378380867107621149733244911535331086325641679874577008502168224765423242804991196810943838020790694828199761039752469199120049197110037485324805414380949833054219583264044523255935457522255953837036726411467810292883630767968923139467707927185041707088011160808002870343777537174737258033830382955975385372047151348779975903407693458915866390295600107129725183515747594820284603943930969820270577395468939670062612376382369987393795839691464699323575403601234853727771642637200339594219507109574858102516431488760044581494200671735927314277826594194382113612486836332623237098043021019863164116637521276027630711133995974634104537887969426129297569388448714942727037809340476543697439479962569266316966312008536569447504771337574432407044150104286435701556166691753878125729662340811662900891074613752532030735573821209303514082420122006795815606395123005460797512353652766018657776484473588082729196527045952810466051559014482059251851551182113297549547276922208920064935643111175631037142137051885091688537062749026968745652528790452008354942234872469998581362024271150298843075874281216300720163518396601561667583962414058375864551216856025099267690245616021972815830220651973970464556364068636749276228455629162434818135598643179970639873152759274517066955476848675594697237015426595444671601662610161790777490262210994407586733579133131071484928277227894429666309701306930269291152590250981140127275927432268894891485372469223220909726129174570501303284229408567340600046427877248524677869151639053890650117178818013220353688376028809609456709896137898586376986831322574588039757770305820072280471600477647228199445636800398389757131658952587363056219763898350756011039974608071035700766073988998138442989107795981153799182694513891957885754217801789332055593653530650930706812441010023350826822940860435202861144341894699067818502731621421536724547894109642469552733222427183257554827661114932192115222111728082916281279227083127980730314425901618580005256442066143758298774644510521483271475119803537438517599517100808331013600039211651827948167092623733611101873074032188378599097799779758603223208665561819312323122259546087373902024470124240630482782304663371953106192139892566336002986257574598956058656742095190431815106316635131796514074138828074915920834379777319879211144644314988204275202133301542633432609328996208343622838602807588048788776235814494460333328304742115437882515446351500646339939409891960049849767506178049445338361271892820261484470709572256700345593021211465696677664390053628044227113496246725601366580537641833999751768248572199981165211642433950506370189916539764549365023662419570327083377926547530930780909333312183392556982892174982074493899440459886281296987160896767128539458666864491843144636952554142083980523275650413891335083690517584881390838328050739177395240973451168777200307971218295842702951689616808355317280944616388875398204082609550186655181577952838536609438960054920507989073559704251042203862887140056123931558383284816655707278110815808217609745071593019723613947763786745499772650089038750218708468546653043361040962211704209264208432889671498324389724415604711714273415261046734874273747588955529851978937725678005796032416254081763658650860642971715533066261438384380528759231340462876729205566091938057356809903101278100604811696463491163609473752276745959202410504771894517520710238510888303434193580899249860848797857754482889803121558816152573559903520334116698662894012804126382267392835688658876674941721749721585338588910592069652355282732496685497548746661164284791283567014341118242429164314753365362054710555121860893074604579137303570151992359730390583617942886702194466505039439441960887202380273459797680088989258989693756734272686671776408728143341037560780075960660161259289038426484477454913984757220792413676324470540692686726588129526607359022654774815252960060652498022294874786498393330364730722909939631312957454711728190706893139560931623218009425542782823914454685561312387555344803872648078716518837636167155952810720520230721253729145663608792654828930136426846923613837218985598736334760876373447255509016218754968819557751854337144182641013592777955454510020093337939887195774024149419106227672734147763609860800324909050708968029239678448667546882374983002740224989703145272183155274046220656292942759577112723434992421042888362659919057727568250808682473579179210027848037578588707623852572277014663933535784210742826800912190821345324728062193621186249340765505747149347432076469834611369381088213976016199959012212625606421295559421463269446889912473459370595359208320904560905888314836975292736345140806298769925412603448212359350822115005664106139951845166879783419449761513576483757036434164501427008455767875234109385954390747184693420199557044751983735349450884096752427960234535514311474015747857386472408703016326477089357043254302340026811786612890922577361155362275711116304275805195968131139094316179229366192754171348995519964396836686475338189534675997067949029348505744389416386493565718837705210049942937108432162136726307390752764584766239201895818739057363588296934908008434943959726429221596308300365554569295104359066218360520282934802226972632855734197503119946357228496133572489958725576696803236544227602903627786880284338550355070513694835676537076928111554585690495306816347345092825783888385614472143216711207719870119000445598592358866297195804164323429505895971538712966293676978796262927009814739128272299124197555134156828409421424679856644032248483639138428051589385497099316337700549045544762811123258478949634523969964840819798747362225707422159807159052527862627958053717340359327861961685711155564477496303822557725503147542950503948556208934021061490092929899320918411049872856046573441830076598123370464367800460306723566031347104800685703832476069571164663201957526018737469110468511807682778872834186062949260163180463365522890711519780185305961007382145596517108784252444661078248329794914965845817513015812729892657931692002529387778770680319910558475047513301772752935394201515187741934024932871508253317696861730020278519462812636902712085815137145426706294692904291360885541848440048902954627427008680052545948641464180906296132113810754160984662215844200496289311588192731044518985237567792987972327905984234094171901294636274699893859633915355588633016639834017590684733162255151969465672947756254048652893288831436563102057603749994373553838720851507966835180357496340037611501763963060621177808454832089199815699955385399472486136243093443490365619251108774388384552550863206600294967004166922693424284639884040378748866399505638397015841641175666249636450301311310661618658211327350595099174697630407378449536669496701698536774422395261521940574213735778501892077591582589983800196263944110930030408561390597774726452700404485818040964831100819782153077070040530734870809664919554418390373984530489282484244768927301675842758119775993211121718202372612970343121768418075334924349624475145232081771576030972413970393652656379871882914440793183032586669352598683546630832500836841685854012077499564552436117503087777394088097838669426095040310907369169696275390328354678643500494346864124174899742563694091279664658318665348992021262105276532259896524046388535339847806567305185019185352982689779743703976142873613653821116193271581352493979018910967966252947173907396197702942978043340910194504007549133097052647979740616386685666471310571839672662134806509479506761578782927743448498675420242228380090534567060582273653756849402786944502319677975394114863034569519025711952746478204781178371100577009828724659151569466670986404856524569019949988000168415109922249019384299674505585977797740051522818044283914211493379292686513578355410068052075742397776529238629535532603932448945088850414423930530269267605335868157013420377128616172899373914225816264173341486287827513998692016105485753362759386134110442179842036008095120277942552274191136885717402092485634412294456942311792458411522111281533912963374545039876515428009988644322185077684667853810277709622210045406806105988607850958482809641341100812123976508276880542890887488176227061339835512146218066410636181553204258835553809718281051255945123820887850381497288618109408474611374140025090437993045222334316162302910137573403761590794858507435811013133788733799714555789059983702009740674025093675415723446600894554284817808919030865914466921344111815656325026724529158852733236001464644029047232717642148021872978319750784499844707450640152601485426023135159044808499847566057378103530105583555907774826409116059338908518795931403772272570513792490987782806693249598136570137058962605017442906649443462562839572805940109134132758078265339994558682974127811881593911581737592276750711513134226621879075839567167640714325079282595569806262492208491272637020406378905657021109474872835857571415353039177742666955548944565616368643693697193056801844083909638046402295192866366150458556454697513142262298714168992637190269082497152872679908222734191203520299475208333070331306633314703535408054116513857780330204965375932368176069806963613845447195305149282420808424065906873400455339176491565371625076271863377207730622847992261216198002153054673213900718238126616467807757341616693238235794716320248342144840242546167101918287203057533493849285102651251798571765589568355477828921601470268546882144580064505180487418372986171468701773975430790605345858942216999348759376585269067634977594137547590221435713690188376898076346234557824273303501360320986138284228708372414367226933915206444959900361948447127071720939765252276407438588196904612792793743249005527126810228812539632963320294334817450967094388902698720151695532670880976994564611536950336891480988001228951562489156979368006340224483687352042887241142015056053559274760957089178507141846300475620977705576263366284786988813838285301316196029294802138441815727879862960753638798881575601039773355166803047275644132061957906961503748845856119019621919948586231933932426877363973395735180155158829470505375439973862057858854328406238589051758411734566378357526666431492129417921837194667831262559400893231002540082975841784358531841888546119073498743501201973169145902787614785452524050975636955637536468763108353692322866808214974454622106986201172279118814213397766754893920598319510464127441621879338921810685601990712083449953775615542541718333180419055417478937087430698472673684868451143054413606097281395488758620410937127691173355724228012850516865582778812821501261488788765912107544565261327956499342604380374396392328074822509128665866613372850439806992539482626179959626136297794673551347111166289887224444125205466574272973544634402242908656601268507538790002896499843504731275831045966867839257818409463120443657055420290346331315657323859933408081695674064203540261711824433983363200332111082270413431711539952659887907717643260446568592230646083915032809086192424154621887358576091616807150090301207390878775150526308700802213706773010898900189647632112106766267909962814135289350190161722242865562818205809759358887126961993332630205356969516310372065695988807084639719843054229591846045994160183910978707839951732281707816221764711836820404351621914946817717073900119992434552092485266112757487426988219139471377833079314529843109466553518437338803119423610229594078428748180516458515366368853316682263069066995671136722468097975373508654299726816924112864535990891881136755750436886137081494205908529117981544115747825402813560748454057283182901067907944963976567266528360365076930004041325297163892412168763112280434796611951925173446754801458293840481317615345672750318105212773967032745001859122843997306508821427639321320533915399160256957561112655891945304263533364884928543210426111706918406931467195512289580314411129301719262806220042592385307962679965624512889133228995001635876956201643198172432084384794854765523103637842537987320234675830878056027040133657426761032184363887205810576503484014260731414023031005503845126228755238284361654155721898584167335601462296269209458591080074828366737637254137676434358209852783419798496444670107602085091901928240025048877611487838331212697341712462619213728727981224048475195858048542675289678055723584434301358995061229406688986738901070179220221139085333718806092095297938164832687168410685879947598012989417214908934369679400993174270144146324394639122125949730618629915195646035170179487180516973766776536399415913293162624296171446373171336071139820185737697559215062679324398223197168708335857278743091830757337936565435384618374350637338681195542481199765034457814810191176985405943572480707229546494273593347171193600728116761772282501471924663256630400967519533457732482356079656880076213057945456849573065996104155566686806847900369876518379349714279765204628113791079776729252851150714374663271270400493740087506259923025890894223117039372574366575697598129939498730442414038522507671565260737419112750234644121241065440413850796674139193815506608044636201090893906849497570056034102681348206183670606570882178939235017352027046756054151645530414157422964683383441076697387743174098810171256468388523217338165813885557716165161838814792776608431593151223054892543151322407425084703394880483536263368147672181826035088828460722715727500817697518958373788133314972523146984449761324014881628937670456638555217825611628010613404521142531435918991064669675315997196093418468036613735937609527049262299393096411234958852377151972159885549602058779408042659717691730749666715164196746956607955416248933078022678980214419447306643020044309607509437895767303251773832643905057854078799279192673897490226775145156838457054673369152578701969745580534723202450838625692156793265992669666203292148125548758995642902012587676660554970958036564025372556971051414287141778572535085503652098944905897687220856101490380962450218622823537704969571027478450637514277918517560033831317720959328193152061329594615353291535490678098976121721173440500209559924743493228292911214440439077402298579341904028202861991270495031352203191006342926996082797143939279360920961827880360320383387496334758370142552205768999989348145737680238196876356496554080747383421762602704664290550240205739425227604993427188688563366029661378130618772264889164688313461275365215706197496115641850067915542286794456028972965731658409082665507096722354399433080822392056160446117252622117239199506489829253979672186818141534935920839448872807418712938180969598886246018291034682162799372200062577055990593705801109246122434703026570464039622387806485356214431281950099501076052236516716892574937433294411205590051599652428739258629214572310910276974292123885820413174261105191444310265122853168166548922790971750879835381786231834920199865874222809745717697399984111883595028010389891217568941693893797172492338288612088552224854929553033989351283265172355090142287197372255292535522011132902690207917017220098347664947668776207526328506495491271298610304381771811313668375710655660969713630355807348807369963005202139634863284180406208985632862560235408077437684616581685439720367900820541312357554655447141073721960766056253065244242063183140283556284537754607870191655407251182874311780541450918982570780120290094041182560508906789316968886006085975187823314394666468910494705896011727075945142113017609252579769594066365212300412583032132277779563962860777144236693036422771208459333129461548529853216436733675381415306300560012768351169342356142884591069409853043594107633541018424278497606393669779065785102222553904470860727526343498727732177948993763707673148309173727689184029811693778313594488023759496176958922262265052777816071806827012902085704978352532188095989376850078890885003118631749387919764510481467249291109187853033595886399922504584256343439911493694472407838404079076557427115460311212596216071727419361349823957714194087902014019626027446958883657830841944874888676877296357351092947904156566976875546865586628372573107868302780934559831861489195147179148329469345440296812327725538695896119539058563907773212337034738604020731250831983500990525065577357768642619472064860051530753112150336874913709980550616091148761412299828806277360265034015115427843042259603428854684691686474637060853410562505748846319005338546073633654392207371201734257131724254869623670601002023475095317372907484699460162827597627647698874923382882382280442771703537848140857000709648650033597481775546525716517792881697384047089152500908380540826266501849602244688669558775938833771858376644417187726645711752024412064150090965042266129244764071921265363766323360576768258499205568853173376828203993322904086456336407479420794901312484019285539939230918245979865586055029542771467085377662734456302929944044429065287567179981418491618326150959467738593651941800109474740738265412108281891507242583798565428300047357539960919778694638007327040903341644767926107946751577485578861658633278924701069342724950961682379651469434991500416214442399571295568700957403125275204635002702581623283619498801645439507883356392751328498383771712025658074854482196294323075095644197439715685142991525082309198507298481458454521483618890783773956432167512480253829006350630801898366977345636012144156267555733839255866434621137129826894472860584978202260809848344445150959505265551023465092856805114719991116040376837858729929762621335550191960094503975993421391301685045218832292220236809929890148484294651982254092452462768193909919411225536335753034776676469335770989029887284709572820258702930399111007883239618556459613829713028591806006900946858285772050700550724812597443908303629865705684760186698612462638950327594086439303161564750882440870220014631611836906220458261228515568645680319521393499008777599676606508487360704392870336655285290662325596308848247348860139361014001998807479196912098181187310250996574871826644297861243072791199631605112993058222857977815522671009607091788747877993702200417488806028110379136299767999539362980849693501106776544069997105407644641678569653687414851627850181697318106167581103976347340188648234356859151823701600841515324357058136532759417221867318321006632085679356909506542845829815951735743264032225387321664762525447867475313409791284164600141531227565062006340120596504176362119400172989797816881471490348731250803548034049539398744193906526009593484571366915553576579498287795631649306545860272786971111507939247723230600523173927680290528872742076609864373995075365030591296258197404746201911777419310917409780427691397773057824115713193650343043217168467519302364023888263412042558268478084880725592434259603433647383051636236028265002108565856111300602611278517198854779701360668601045855506864496200731291874572735599944367971711856221944803099002342743830858815287081119657605639099160089514551846731236763191748656732948884717545019933598564710718776550928593788304825699706962400255644381604185290682039264463546426695285673528187675461876995353628963122016497358108052558402063595338121411244595036252223783978761747861453335850937094259705866259538123081540225007257055050664922185248953519116668177013101637624271320808001718577417864689310350045137529310797317304409045311038323214597031041600567017899307322520834615974307045777336959506396206100930024242703510377329863311648755593874303895499179736160157249706014017899930796482258435520302827762097438046774593135309174637638451041743644322872275397442440377483934325406998536185686479781671801455991960288101142067915794220553535122161638566520028343339652467756018341633355777400165368411624992799557715237069767963716227071179188064896738278242451501804656595004492731095099133583436953484093451067813426050679632511754831992996224660725019233360826415601716504622273045725795055193641566576045265786902077281654733489812945739874978812895516751625790260028633971221431935954606048008540092446933185666801491553476661224279973934524081353482658227961839770463785933906270473072883720169535298410710918873889578737868793179849129920855189985769279221482340212041231343441224346740544429539929087448415543123613432924865852716516461346979129033386825067727319043078382612491520552892847257904100040140920646099921433711485149098101994552502772324351853484167634509939788162641930377123471833416871702795257713371100088534320915299162842216241886676649167208404670384562021199824402293251078823455148031294862326992160744007847714614818859260105091962463095177419501381806869595702702619597969473651843572817129111855496407834589697497455074820240300978501622402441009845837664371916527998906780439584804665751583688536893100308243730226978783114601134247070447607101815953551997308882432347518566779749060733310997041676352736645625780222546442180568086660054310780079587553989301160873691631774688503082680956736320538844733564688634606975443606464031330891720721916193484657814668834940718445736887562567558423267195261880033372533860327131401651231431901027582929370897224942008480803950707888945174977634035203060525305504738672650207384800759727695349949537899320802865759242501071919630695077411145395997872628774473392029828823932112561608467144761057693416707820614882065079673482957832063678973392617160030157734912929787411455317889241763312872739051241904605574611630571966618474318258056440152391567565915784987544343595189420572921108135171213562696091956542885286309427621744133004769550147491115109349137317472440774246422742962312741414566376974130218553941306682346116819484820998787592562825393796837555558871193895090728189836430894220803109054901553556688693815926558030795696419612869807888064810005781434541929020052416847442467147237798731467898407935836913402619719524383635614479359077942574478554308775929062211777876009932709387716269681364698092753417582630248004254534074292316097320615519595639593152266635188379145677020512986598925762069449567268719685277567532452677561353484725696289182673443730941993327743221027832450717628203211933786675785860281976135171221802987074150029938302692104216120648821404188427027752672422152892235735377998516943024363433888852357554066642542195536153355231473654717001355701194936290826369301796806432504127943935595323903227235436527886956882389085945245505789369425508278624374696259669097423224895503072755584510712915389861349526852557997980072310380556751166574413668813255858997664349533810390279761112370789448301886113582329879516971486236874895534087233744977382355739372978488563648344081232422542076944542456348244097006626858386166777582129488936826371970608557219448356068597066197134215971557610540313506393257499339214479337230526002565722256061220010507264705068193948287153242849179655884438150297111113793657271103739749794181983554334518435682661710713680719282902284792726084401084413587358551565952991134094158545202173592728454102643813624972980159705947144493252107417070185341545947335977184061226310075600412301981944710207836174400696906033301134010865674215555325902609684999289442013021148095084583764840320487525640470882249861080262892257286485429666473610738246342745298243861686701129685151142925672777828186050554731042627189946747368807364434905314933345364713357507480869915055319925229493561868099868961840982214561419096215593121028415166042042803164840363515131814372530650053725720299049489002267973297619074743229038377392842086256058410749799976589354038179076569871495477124247115517600590711648805775048080207493236408692811707757380906440046912933709520098525948818696701075877617454461291456488768797710370599392479990074043770915629378590178321025801438405585241006087054572108107112027344284357027508720772328182058391038368543816416391947011749840664063056377725730093606542657030103915702837276929587546463655166143914234168447593036365811135560216977698758696062159916842224661007625775541759509029928461872536720286586854293292125265256041041476583713400051355064697995739275354889580628877699698894252268541342648514424568836309655776745425781193133536909523061876626231999745249687895186714465910342699850585113506919853493704960829697840343294305887139602031295326116246451365614179058736342173958355781425865489048800462703977738173039095086396023554690056897236473344326481692374478900911049219284863475318507603907393867476532456802969605280153942962120314456990224602224036017153503242632700443482206462959117592594646271999148828678003836509630674750185942973471706104327948533979743764113612593758763080092827115651469434020464132469510619938801239924109672880091592898434218921373237664557553659989996033008262638821720682166574231887851717851919355468852581543875630938229148226546332239363771882850307860743661239984996361562625015976411698995095525378255623297023146186581126765711882788063984979717145947231876859569522898597621264868657010006172940819418237110165191264774247475878445057476242347719251178735287894568153091476411710780076491819025205149912208565696504474871346419895052724296870022708134067958256348285674373284511680494285660241945884840782751864408199705792915366542895565659131776695743786032872359548547394734869115159851842473471792696163216769386650714941236608197781166973373190792653617917584609378534238827365461117862311139499603468173705811001097270684026313781562208203106073667684653825780043997888374474022622839491669472366833525201271993329577982492764448588058488642753928536499513150819315662411619181446388107438545883390780316089079165124426900326967107426847877915795170586213039663463079202251188373343374674958531519140505563284043797171535343760561206505806495000506809352954461652414765074643824639096499224396005040821880584212009373077181950285259276707350364348026649383761776776236882047668623829788319420396339280954737410382766180309435407388053179546147167360254581653007531347813997428374342513221155358438087516982278231678889141331271925995927779212013073881574468880170279911326853515792390831034419033238268400231978213130660109847564866765036572406671753191285485860565032173113629492330466546130499092219845900285807656366876488527891043396459367264028538777220094606363519201994852002365954522725599596087287350838955807036690261255760495247320034615004899108837692421180930400762315682983082188456024856777318460536206767278942095014948287414345017237513212244547916102643383443337486110321365703326908297799117061939269821737548335598474337154030301894629970159233828318758318988784190715885879886551206215767697595540493368705093725100789740275714390916791529043582454054483234749405205590326614323729514546097386861854986469770421917886089632446839418230167351358821450036371731806993068475989738546109639368250542542387398931151664045437223032978317813660908688833048496533936217068830910608615418922435471071491071391946760202701103553280425159326384072677838704597697984598399954554011540151892574707560248909284092259717977377663992187846422838942979987642934425608879437128776952653763332952479493569307035269449784310525894869595304337446019200030193869345292876052188191359369213202621395169752255073762115194625695278550479812545260228790351374220051497456769111916900736976565525018869805780565732849416568294607794474980199619079102233207277740569379117847321210537687642092905947412651259680413863232880856901830425355138642625526314763193013158738612958261441680296243938486696548704649327535521720552335879251300219729190915967781099187659596027311711024949975421477839058862012200034651949975132676322320037817169089020677267323748428509528139057153433510697394190132107905312386929496499612179323051169442622370327848417402203176003180164219971500168812404403103908352069291086479897690340427863522228296182173071516081962221590160710307188690874297926405427827184744282629088109981957689527668649725663232821133829798223567253342682525221918145686404405664814340448088294778139776413850372134396909852075080071789275380887466474570144400534418188782387295987458377268661345997835875376240114830158012073283093987419629671322891427754684491822287869147348016466242422593923456196044240654286224689889012373593294436073338063902598543901957112094872142510429561970859263971435692809779211564369349104827408430818405052969622232072267413758420789748377473738358139997700806090877831020682252588353984948574567402809950327942846301733289814988469695817536336819294109572994846905374553198066594534182670279771340363929125842862784167884040414917444465089888209433964026674226156132745505657843697646071899226518492833505922732748188332658174940686325737857957976718685693486408874866328957638112937597363807596636672475388863725273589095583325388196163706808335868185045730589775916947055634399863417118633895295417510804695366886574232482936153889311189451937037567955167472393079184645478142517255313311637039314215103050160519039438220661198916432310286485490864259203155822134874377069608941777824902998427785834269712387251948735343707102547808445348361629537830718458095359997860078241714442425289949906234051865182616063237656544622424830111281302383156097993386508787608513490107962403149826747159899393069378282908458173288855569045602300880539245588308813865419823982652704915257310887136325057092064598385522955874276822005826987402836815878767758290486591948456847223090485864765164179569618556300580111975309461115384086240775588887949924601822212345410201342142091009053399048378198694609464709110327683260123731795995665752690482154483966429976746141959974745869291019176557962631157819750552965343373989390637714407540404502241871280345653357283674182055752480593480240753090668026417564550781222530712038181374713144828725678966333126438299676879877719264584039891569945561190169452654297762194677174033666163500945238615695419545621549196088478922327137262867249799226720444930383619011266213285644017701981804003885616351663615205803122416527965577408736834180494206628978505775045173634097122331568119284808589744496324585517960517218373139833800266441842134910081926815794901021427059127680340090947231069650691797092287290673151359748367401338007704613757757771892376199633705373638812221765200587279141134737669317030293625516901350576046975912508554456860643431210558627435766358321016713311154304600692957951131656522271130486417707027422422449884006515567854590489130557589432926717679313050468529964039103935682736744938893109847863392757446819705292934519076914693242037411236682230337442572031069566440100244689714467101770800188279167978664657161508341628985317530718904801232591647764238566875326706402149237839644403886553929309099602381801502648925786242397491473036538081518049565467302363303860156035764606160741556340913913959608073908841947062635490729371633680808139315995285237657085277552715219473377831537500295280112673593345815994609626315548217576070763752874054174061322153209058706109114151842438655032639310709164850167293006297901931260557088667139205661444070505792290586620412248542282638239036583252540825758445366243404686558033917071476863784743671158526308834459248358324416277365649692281394946470481010657724904983676463618622954214716194698262610081704079525004141658137285033045938579675237533297889277234217208715080937443929638302944750209548954087909446514502155511495646186541471626845269595671330781697367131862092230936300085553612898806127885613749451619081615703387236931405354393832597814910793365320980938861173557535940430408581340065166925887350394790390811355025879484661350616292638441975831521129434241728003284779231191344378388679168900709624672906103561195365641969225256172808584525422074973106231321750462291677332629638996106530154897866702243730792388502780452596465575244768072133737258754164684016434906852325954708740198355604730839309300027856756461194745693688973734092251690023932461741567136112859545346082895762446587227422735269041923470054439577769991493757856212094326289394211821421399779919011458851786473979247399841888514897451299531214964986243438233162695930955292450764760262921768507372468027801765174998975769520408206320402335573343909596847168430005257014617573472854550419768359553473830755636059193179325221955088974761519954622335617209425289955133368180297303859666955619416499332854939168491079128113491124027858890450280506726413171890709523476649093225382404881917696132327589770684687892780341177854390149454691301551025506493941626651262760235088991199719531099334223465207739751905778974763360628605650691717276107419521563857735279514909087335088139085545933159451048153711159052591586746382525838230536397708978252632279286777730624050570250127093477944568924765317043043389627959375544588199207795767182511076014451634099213579622849671686348568736640628678471004097775386835243542689108478904539284424357569826517487991805204544666890869851061011963605302974670945266288985766501247822464052998815486454055537167475748838400012127315082267107384089901433099397551906928597350537509379588869784024208726176866434119268607580925789001537588674158285995106972440156438261847700408906637997943676125713270396004886672596639887425711416738862983145648437281079538458184613600209278347159445185117063121328192671052681926280432672159739626322559237221903881707425039282759366370184098106976832793202122658497812746009892957771415546580268705223330531209760822507516888249225472682475582266093635366780073480166099270261677760067345953105158956225357481337882425644883639907610797362588495930625317886496278391336267869752429266145885066946878139383775077185198628075181573760477941214737478278988278675602195548070877498869401067924699057173267503447865167886486037627484633157474117315003109335422172621707660349492981674013569111507818266120283909837376689427685548212101678473027588838532061699843944596993297360496206763689865412225359376243043119256771447500805232763695977173940596294463037594418833119861111303667871545542714108131229931744511595058895258199494780977046368911641926962841834116268041349608904342194417954264877493574667817321135643448405815716448983365470770302394986795889350010931360138417406412704740879585946019885514217777983098607840165193502054030406749976800594314500707448527372552417201068215997894907404227320732684113054127736300058641108426437433911280035380791133819722742349066352626085963366872770329285990782288833606806824110659354117047827653408366741883320704500456196270880395243304477924145113519732898654026815924752043774104848050559570492934907389044598117480204906973084955619064091362249302352827057760089569895837109662387444589171543437727683729962265326885139673894170591143517880525445678185865551222282645846185943235205791047433352233331283827531722264744894815814535703308984189895745701072833433070408164351143718430480572652809147481243961025137196555372966678483480494839232504625107047245426094025245674368842169237239752541509669903009967997290862941706797200172403185585538999884135113379097947461227566884177767447403453903681477147119833291553616841249694766137975803821613634410259324936831488389159349911904445878324607200166074916212641145417623988816137354279708933297745303014563971103328894015417348277873519895726988173784991873212837399527804665597058054561563726437036929689203263515603116011845652686941536087497325701092077608408024642288891364136487831157558932207262870240947895262221660633441737819088344367873640301026817766275051803817767750850394205357271502344318842092727131684282601761956973922302431566014956990251624735387064327298393476349313369575866304200927668776095103280095406277990205496325890481108885118432315835440266184930799653755856884844224343656711557946524164065899539192836922176208133794198191698691928764559463379442532822850782374955969907010315341465959424950393259953998687840070264305529553210700764998920212714777410090749961167213282335405993005084840021594118317629362927237249301198013437570792261596264335639071920878699643890283501902708856228747963883247072532541927924321984695448068215316933920392821540782002781829792253965549783282252831626865720421816166492832276858225850455565358336614155637575397628006134278970459705233502541916464379526375875413778794437145746820852414080887072394229402643683113132012697575181611662076269410334227463253139885653579579681461774620542167178346166091664474363066221834350383811687099112272339090848210779463739385601825492739887613461449737950551249721909666951443212713497794383197901253331435657854493295569136325467354122412273152048724403513404653566451053049170262873244410023322788129327691342116358917222785542022761644856516036672946040016707057658758747363617124561208127243504387512754275234305689741120505444597641767318043692186605689623710319169400220231400011023862358145407989522297957340193396036659571406380562626457956997341338435019985176578737552890209617769813558131249781513469061025272695797764277076895804773501998694567375846775956404243232171895948569091327687667353562362004048937351459617977161266704242210346787819878713798262584564333351064065120551514681160024784390218707248120572253334072956710641311243724927793150878295236128230630441524603163171022321535344709304196382725750686530274724420658116267412844508093444505295301848663408082951211965690042843455310981887174435277453815465063964640814897541239030483505890096694525493565541291616478323163024386821553932991367328483113913596194928548330827641364667344156998009904219307677297187925339960683933922638671550765979091522829391456076389897014795473441632731790602331854448332724565292046988104273383628801474132582793303595080137047195883618716870835278840287604032638783590964239204628368329736292821545789274356722632510225930533086458151579596273281648419747308371823741822760646633920854533057813999382740056236007785922678214212342779899750572571694480849077750374203321101247902964289115774287151751311327676535507561718087162457622875731323484666304897506967050173712004504770849800917633431106919185587530429444656824918192708894164685285512991183758653685865744969500246518624231354008413767858482878254904300366025614361704286412716582633046917308965487326849983666095817910958185770679327357302236227627636282624449006211202466079652930513864562685919392767094070365623366624295956707523902194786528687932162310798094432781672940290255147128854732780579734126604856635049618360033370632419607641853646539956330731243672277931527671016225377957292114490527968737077450072375612696586543969088476622900828110030280768067861474562400085008406736190004136690889184290164443154516177868197818910890032983798976824529533789234936381111132695059190047924892762590131081770136924282023702165596076735842978644368200178124076855437153135989478153973388584940906424503036858911368332999894386402689534897664370346192201716161259089791363859980704882040615208350158186441407408562378207270181710914806287405560049410843432405260480565601137502825831861702340958603156571947959430375807564653902806212247423254001517895510957113588097713722488350557135472279372034342869074267028896412372163108116478256780253454505307196938554866673859053474186106651354934937545754955334482045414032975071155241448082945455591272186074633188496562612663693423470824363597335397126187664857842990901309836010033821995710433126773046425625739061624118516341908355495799030255487107670510935825179834678832207401038553736833940555337247275096975087942974607661554358139167010207136638110322138695111681902462262437005318769379387632418833363262136946822831047432430286021036977202275972046014048203605844567305111308582341426305361463428064446330158225670108076276997250528552309672620413260854956308490707233269341969211833130584026885027338911266043699947992171533127395558531347848222388187740241028465183166905175822701569242200458659047568457542935749863453985327100399051281498505649079068354562890252731914739812008775178967774146422044867547991636851289172499916007588792016088402526555322740768116603019496267106664428035313860525637203770833053613341309380115260764895140510999246742858846917367730553247745543893555060230145589330562718410068315226665776241090212147462316660571460150583982131491383533130729250177627878308694375531329364786307675598739303699878123746490553737633845793095489302085281692089323507895943068859766730754813828188698715922361401621662067622986599091178499931384864751340036756325836192799689394123189634469438996946546370520472950631180239866609067905441884561340822944187468083073343318146147502046475171907874972766168927712895175918169498873753423789281065901318803088501980959514856233395283174121553165097297339563142446669305755454805135823073748817229958719302465524745308993784512845747156943103257777617806380704670270909276892272562907124133333877911616562172039403325376110576237347367676840268969959608144331634179290414760293549966988332693469185680094229591205882657473009207728918078592364204068943014310472771100434471321558025846271031373823914934907614592633906726036931678356119024451525216656758899152726826480759234433606599359396081306709928169853716058463115019719875451265651838954507109855538356735494491369125218443653977340923217498792207719281366607073030698436555740484120817235797768936291773322742378109344440059562075401039132149227044876974562546852832965529305689765977281457946039005864198467099891274062637594916830747330799344368568682942191970681756771518134652479770808440095676639316596608472182250366362556190891028440569149367825780164616456850372958325831450677024942560853518589162805737088993640486103431269536583562519176782658213717172459582804920781214508128860434294383525351759331510710429523760101127283898460880758330317791417715960240886685357115418306036311857776253343649365741095905974109901456071852552909068419581433091410026188360407800086990732183442830704979601624199306219231079140679779858327792533261924660224127148020017559611087963312458923556230272467694326575156444122101153410815442723059959437404217016904902110966724892024483944364013725186383546951715685605772701153379145811851009104310606366393955286753675589568302716152136741421140524318836559206979808913820010037492023385313528468115205283611197931041485633827539560030163961339307108256682644520030963034186764349473500099591108802382634442047237816234290468217157539709148229082935599365595558412965275315455924615546718496865213338180475284399545898305653418789213229549786002015378783843480688225614585911485243451567780483580845773668137612324032757595634934873521223029940813627413134819103181893038328483768972840130776264291910599869949149679330630843579791089954236001183464953951430399843514816041030895363341103627049996997926190606418611845933050950585223215569863419701748425259595262864183619718868951207295617702712515375949218307727059635855301205315233017862073929521867367165293384478620479261192714421141091085509230503082298647258481781289928243458221889500025364368155690453362637656543157023561706919298610275986104791775071571166208215167861915106535762120720163724149170806719762705679694274117370065409617087944191614108905406904176970493065255710000804481471715399530647129062610629381902540672725125580989571030702359668725207289413281273630660350453801837401386929003565436491528585182553112185755482375033248428072612047725422762634963769348237756202082033392481118985175466040403703361590378230624649233281841158201733045290540397666236051747447942808025389008069779601254187766783504753416610954780184140878434947152006399807203949679238163126287948245657580177678594030467385901368474503382440215542752894244144353634422902740475778110351121692105984203419842834646421265823865530456414654975937114100583941292878856490537028132100578123259082907029545343454722028446423578771114901750943180967469920062293656680568802165256647846157558049504406229139533198775093414100290148196026390667189378804653614936569097746128363838069520843605752605770646571093874770599433690031337718775140571807995384471495217363702013179232505052253807271116416613557970332585942443361198281192792202481316211410577771472578480628357831388259843529086527617928440162922903538176361854036721564990496964046862092888893667311122411137189564110093333384374602291801501999420996684218117745717032566495057920725222812282494180962770343951344756664202160587945698063894176445533504452176859780122203575950638206707562888106305529962804848247973757285117048521215386905277804300595046626525935406100859040587418566206461684450012866800331938417425786720886217866696244994206604032681540195274069873233170265996397746916411759449134615496114132773757700611798773666226965930521720656684826087239015896044927824795087944967769606702071855016768122902874660243019211259279008869781239082560036596473632145390349395792292063387589430470997424438406176868791545305437581772175468079514732348953536345408028709319389343843563578090991592340915124846468730221321135814173825858079986828890571313458291811895188541001235093602908202987536933585618660359622221865297093577207520578497963001021713746564382809092209557977150875830510946929389698526744055699429874671647006887180755213372381359373345430669976633008328635962146994710401091216109815910911876220758311734714038314375771637686813691408967912726066132474469881190652212423995826545492287211135399670585359954274556468436521489510014395666860589962799544228256157724486240194940606471583429100741201522794205943316780860648117721978760141961351411242537003634498497408041647761291977527835480322380650463022770536116684544654170516837614262054987310063948401738046873274846450216445287388140624273078445216551269874289316747731390308582831365132604768970559250520459366537822215756309809336698771881573771936855175842380649554165886289848295106390679711591957112357130739132223247752702116985206992374412762983616352867450021613558540169671609303322483811089788960494648497425573619258560281298410112503983404824109337450505752361194196506618418606893113280080208884899058658863756116113674012189195815496661376426883328215836499286322008516463545714387953193206923374420138215183514189703815180279344555343937964667535916669538789783049302993628396570907080112345654201862694081351915668783103102584241761605854521186809529305064119213335078031063080106454578845835305929760855125964072365537097124540752873751307957109031259208272871820264225459730950010279516624203855016346191560415928669278116025367667398201669056421597670736494653783319459482543630583510923048396228900374267724419253888750310675375312772267923513536230690716859580388683534593858874137080635699628867393719021846270334375847273821326564106947100605833632610741041835914587978020366593182418647356071298319661897761252737017160443382594043955094288043626576329182705679928166544945017108108315023563767773238974708131981507979021802707104094097464339201962292399621396526572907172933762981953472365574701027285508192579950803001513913695696512718804606688246868506344607304927547752151238799658929740645054601295907369325041061755559102396481172538392522492330708709464928458920490098880850352893512273253237777244298488147685841441852433694229476349860865425553712400177609279745154760533029575043453699520411463127745879221453657619635365540000390259102263879593884509714020476578425357135729831586608129477935894323239092887070045042162739474249435817055076030786017106251493438959622818310033153897785933706428602986872830648353963932371202832338255144561947367688397459915863872470817814237659433711682855093550041292778377790056598987248734990828488517586915888706483601119222691362222616261462136939505422752653052735954841915223820455368180898132917338696079594099397722025689038157859858897817567984009844026461007283725405443794607148093249886124626050017314767756442542838649680036295837894496203438172635940740389401381212677363841046684289885074613466924866974744045301353046932182640113840052145651777515631291615550325985328528845202073613065274473126254822804048411033150350861358138199108642290916962794826825170730490561560094023897099245168390414977166001249420884079134259133071141496074441808081898755403001209380752366405161847157068413544153611525558605549577320882518018510873404440559978655168266884171287031585013041185758814180810369931122580879496262127000737997306249213079517227693932411130514311244822888241418172406845762566423931138417770838035783525763575207331071987018976674402092793152252028788260933923711226530316926178460847470352048604415229916758864868976023363245562948222524341555578312894994970255374878801459589403645010714139060919953042339174926080651208372801498874900879205299195989739238334730778282406249865875187143225635057213450279558979466301245377804352090193051429057068816870217609738737356872048188175585367530655819174719661108017693628902524257585915068347238598027262409551880857046494306389846774247603783159399644283669483714151118643318910734066584604580028926168726384941542069164991561131299412848667128122565998711549373973484005371825326110227996510484912186237624465622556624897463808194279290303999506995861795222139684838004330490245992020072169679112461696784291269739422967991938153750107874235832698321210599767290358767509173107008904551108252541414846801753747149433547493547101746323250438761401498696314180101469453700693915274111013996852126457881778644013494395159519040925766291489386480120212554213459229591231674367780972782378777145340184702276382127090043745070854504944133247851229409636253414261237648313559690825337277087939062683131749930550652316540336297172666075183245939152573353844479973161795779340297735032416673749753790125536618258095185109177931003620319869148876193308209546056939195681075065938602485383289326589324922890524284501739867321527608861730754383038030030531136797588172665486161027066167523312405495340540346087810151076978615442813241074457477842288099349877644250168181923105332464395452032946436234891096218809590137552229668547833060395469414259942784671325326604050527845487304291171825933047935577358536547115804201900484658435624473689100197700540302299453599198536273844813102799577397826838594990419347702765058956454187948384625405351318844370489009239333908545841180521745767983239491568253079856951401287290242590598408618168969810655441408300497348683038995731734282728408292474275178056424931691651623860286015297539239950766240803832147886849623370032156342308956107830683386774670084439165435694375786431382765361687937281903768225547061919473263324607454326454174848949792366228377148770365156142434134813879798138747703172498057263269643848704253369293180579328086620652415480629139799290698314907388466329768386819358469805091812916561576525688860457345042219725630474743931269609703051038189800764551200981510671713970661573906113261102299334328442116353685240851740609734218921524500146767496972655196958355321895758761164404773386558398863523337285818061031436784286419900979864894022307521320616905340788808258870352694842472440500323531607725676650895503285159017638761437398379854248129772249129321312659722343034364926763200180782764184418878245857169349991170977518219732376731758658556851394427974502244628832388205044621063962077379134173227087607476506110340507011267196206848091299131540082271180134919849672478428085796094260158501373949558409391987447093360363454934929713014935931120648815160114745995082698057985188197482910199431497073298556425722647542111904651897621803030539962147515441911182014693291252660084355438853033936877913331996569237319783857762378299724291794163495506592641133013211732758608616560072230342226200626704539375560935129316628451065815330031831747045174368224423555806748135808130483846424775554734166324935733187717860652456591304147969844322223268837294503282558691813129112416949894506926413557522551058218235615466127989147552155637359479414043095587725220606566095991134347730327174881492390192285327638083822148949365560659062099662014251882415550990455174661862092400668166994836932760097689907562055988597172798556594303854740920555184032454222313497075206360554120499076975944285067272453881637239811631111610718937054797308113248091320844603962092689821712375630092829381771738083288566418899549476755741591161085358811466062102339486255264073870019334415707752725126607010938158826490732905238152124041229917798200915831855959777162241729552262921799902641107578104026379295135419286320698815906791786803312142937311766493055412141195526287865796086851097154513716120641516653798446994503059907308400487291675884487402269265804757226144961610664579349775129011931215139705110872402928991681144744848076769328405566650057464218546009338276639509961719090994119843690445650353430173254249484859542261216023228560233085214223109902491187373598795366711390540647353098378751295018367899677025885223447070531226091446637034870851624645724826759833653378901418327787639017349940128842910296442470623971537515016758801240035754521665251951921278265684033980811861218578938486159338985117384213150040586559230690138832182353141929075155855315161318492012333440651104169190819729267685089352077022041392370383572271208832815534867094503221462343685639874682934084642916592168021944630459461212124311276040943722445382383120961276551268452828553882409704658698537458767287012694425252626278478969094091870391798012088242842238087548681240271568929334092531584017240877902160051333825817226446330201855969701743354877644610124225366482576685255055053736403508884981356614218970504952291770871055370340934584759661618922292329564571727357853019651046049824975519546484416848439498733784085870730725810081014841346727514942023408369272502250507605948237404036997055947022504705719834105412166054082026167904500190482611921185728697271387384572562344818541075195171295643924374939690879023520718495532042970119165551422897496729171391909535568678744823484456715691543501372043669370960792812914429494326885584661381057305478853521355452639681079901394469279759692119782823303613522343106260491850970202646394055281939954855627324776266890311424726378326161561712710350955812232278419500160661836718652667783337891961337484240772103437051249256131915901789506309120013555165935003808317186885089495888741696497164951575741179135776046251677208566950915800520687849456878554979803018417451987911708026357644496050612036984460631280923454700204390053080916084159209451106159097607846880582580312565227182904534758680415167399326227006899983980386111031921169731910972898742305089231515001912542760865523740997028611496481252128600600594526410455144056226435699397818241217927353971145274196214776720285373815979110320039836412173110572314396124050353591272056705553991071595090283976652611621214782503898517051798591317024639741954810610476319668401377185719464084131490398068306418559082502973620906207171301048118041247565118848601335129918661345470241360471436152443061721239981116071961118174523672032900883682373935859110003375055542252484490116033450979753232680194584342183936733616645293355192923770007984302160257041013880288385764618849996786214456601408182200468300695472320349296619241729578860246201756345210309017335153469745408370640775118350871422773381410549125027540530404867158045547819522099034353604042308575702417060501730411922208622204118990840703542273299222221868172742301650806785667738635805532410342217761768899768562209272540419681677242611384256076492036648540041458939621765054379610920274447299973596884524182130862871997275168934385150146959170615674129723510817498487058460056798573979427257632486411843807958237585580781372993621854067900061878616875522337760708350398752205279982923204338837053896544373706506117485211025054582406993162475462004752989591188138452971679958765305790495657896178990395772016418784315764602668539816980610416146078354952744901782961327815600701922327177987038093250389263324010405114593829265297204429139039767479572677131927496907782764167964443533491040855098468718309103435714680424158268062319313983233951705027565667639822275974663288730305423981630248844597481251507905086644319018308134464571870307600196486591726562622529010181181717861522154891736795866829487310333815584750942242653440872262106520847820888197009716814458085762912425115690996156781684725772244749388332508928193173532799270462631599913060512279981455185102839251105625828832297087622893904244800636878031750940002438780951320557204970695672052290046134873391742082931498198796631105190795933505841850608363069798503452478639104358545352053221002908265497836685416845843483950463151360579458442509355586233021488948562855458323350904437752064087336660086440360968334753876727457244504918119647085443099481133232491318910529664125226175892260751825735587880271039960974707307977897338787766487735250156967530868875974712779332354746763783354063076828761912785586200137711448705313144262646038383382981496058128019239363356969677577605029984665869282541916030116690316791460112611535422289470730967169148065509863942789793439548737086204933762381957562571913186436863981821256937010113350969989444841509344382228834691151492687442547247921369981521314079579037478613318657834917272811152958233534124490856615053186540887445324151416728623540042634880037958026357724445489418776973425022976146534455782366040984062816369546842778767327159607386956316902427513750927067459794024781272263899546870309895952629766811166782177430729006439056860832320531638371343745520543098339930805929904381778147696117461042878585533536514570392255082574616071519444882299044961970529275967334907800873622283217075110557657845653639374510714692264718836440428065698665271181112555661258327642133368174562130619018855161039769552994319359203359256861635415845955924518245655301146844542948202638512123729647979163863337870033982034782957582609621240733749015085942059129878240024268937837820158184605580660548922952867108900691875958120032437012268294171875986024964262190782337359361811708821308943595859757403318933434979807820929685868372583850353041502037174859685889000186759480092729072354406199555109183243440986530943819827933744816306910157588743103902775988696292638081411358510185723091223133555177850235579252152630465755264661611341581809523961553597116883353346881212623599638315701339671192198756359563266376892405178745218209999284623694304855548952911026215679113557395648111643012526389355486033984897299020608933310312408950536391833296740494897533265551033995903475492963773789173883159575260464142687152892186574496594545669762742905707041775066508472367097276100088982934910284158676181059686431924970941386776124616060082569509613690717067484744775139365317886170065528597451283811518344185475330848084663645668905135727383170195300324647782436832845561153921300096631222072884869728742823888983485489917438631796267204898322739257518376332488849750518714896137910246025474568360046554028219291308112511808964471497236873970019081131563918265134356732750893394784061277148139250257073108134889156841993912263546971537131901980672631514322512427510174793432116688327730620620345536743956321128665791516669443201226102183358484818767783267298126743513089334684857706035632674222807664098890593884077280093678204410265174245745345363575279245325823597149130494319185008942126669672138027292482880805712479693811517778449358503560469632061439514205802213574636228789837041222721996346112537821396438862982905456113804526510125103206518073825385071561843107428134250699243401632364878560716052299655879368169906171209379747166596661909507807557814262116914162071517750214601145844340609165400694936374671943621023317634494745860655363251234013797805770831619517874327151222861443620279487106914626979179975066094970732725456714661707485878881004805130672615166002835718717036106831013021546583964211453096340896024121627477102830222622706593191049308766843893014292393639957114260571609845137606301377821419724947798437358066978934470888590272939787056424138912572346410359460069110595830425440921808883882549987625317522952748133481079915687105232363910342449250532793460380233701201000320726662352592379546745477480242961119439462705950570108911799200769936550954410747866740467814548046855376526576556392931203540980798198609080302052273173055192132945069879146207906518178558124426139034690109332276080705039416544683122438286216885700999936213226849691913392321605315885774704040888959504809639565205440762980197900417453440830258897898520194737663157174511794717807182885235903141150240243834477313175972818945774429783998098853221599996195253950017099656798070131057143046275582862971737066739279427811218028970546315164345154117483965609509026625724696408093136873500199178229876620834133067098475226854855526682036037289027866725040016776431243271275768746486925111972812179908176285693833636890431180258475960570647143654495759185403496954108245599501037062692520557072078280444601386666049016758364186687041818801661577655863184999275068386343881136514575315942296403966673708033575665956412667045618210102719980273073678979917199206821053652436209213746440039368666005377657165555190863114753173094505726701592937376884822344044340561257325859282741451233380820226750170649036341918538861158905709723305637829203574298617387181198567533550399053131727541596343046183476432740567369337561836532085833766079668187558314485728338142378407353976897152081574003996764993574823797467891467153977219295293679645883334109479879255573825397868031201609133088789034179222473925927868130165609855485369380300976163292575427228463131283705692757766649553523375239878431544986869059731544873179651910377861362508302133294977599491533699871652416267006248354607977884717521210900301342333888921332894234922016269314986920123468090134239910588394336499746178112385107047908646528107105436916676451896424142132115496975438704627409342691936745443993026537620070036897782315173637335856348483738757332981134192873640712921696361081691721748159203489924756843956609345417987611893664249970488933868028379031495183722807914320500039170653350476584321391670095218792762091262361268517646151019277248562112600476368864419505656254340620257320663574776369426745448310577946469307622977168353440444392682443741266813996826653440460492966581670544878133020889766701762237751009814086703775035401903911341439930544886867532397767920972197647271326655087045157934922603009861482205674893810915132931837226299917156992709612975939949421079644590814964879665695720373267765635722175056873117866922890285610622708448662973216463901298620488386353665765926699950702066125594570676001500183249449556424699067611792489747229467712695128022581853790263423987422589921808481073473564082698326608168846145698935751673914747468957387852010518226513389634228270691907132173975284665203627236297586767249806160571763090824308731265383275696020486144467286735880705901619754497975334385278339357510009264054663766035587612854551297902134387252980613114655930537638289519415642945467758485501704653804292543881452424416875982343897448010523654554263280258600972134249183549077749688290331270434454107956887322204777665440567827722010344983130000555123507172681798820081803869694619043204312050405667960468293582429586273840263254744024651485900149527595566992129491718517106211348075575352927154313885322680998051659634063135655537182878122887689082141964909340828031830836672057326216963129509373113201824109707538929586271016436801753813187102053734581433753764048887841731832692200346924332562185115388072442095021107200660036393903378884509243345237413204166406302405161209691940599573703193002675818152178560223569050727798397387149298819977751369455188771023677127093176375385092760133813546328977851894746030322556457608706008919515623585085626081074854553841356551796597817057314227799799016725628425590311904739714445333741755443220330307168855235688494467793309918073322447897947029047264588817044633136680724318874685120080155319167358087241801404378338086565039903497395261908268943350835467323094358727963105008159825209276401631619612836230131085166343593483620945161121802316894517361289446434901687554357993564035939904302777569315645238635391931429840765721422079387312066646502266072899689291182749270437622855427114415797295350285058411538578748895388170055464138784059632600811314183898586698541788600000426454019438513162538029027583000444007186623501415311328732154404365090879181671927668984039164599774763700862973605106947648354223899306466023833231458813888065871950869857729816677765034294595260585410306029388368758106071090197595996272321357516470329371210901085627961672679334996526876067685262066357293503228123269675832865690391563369438177224508681021454055389162698560429154038819482275360564250581018550173601584722951195223070874216676145066655571615977920978365431038033676595793656933553447584137649070463175526591738748553408495737892291818107604554709783753719819870431094114930820320739976644190763203560866298258780833148718230739981249892319690672428050104488889554659982365506270856764030036277389767626877670605820533738971949704453364163775964418436835564463718180462127292042358300170416300553317642286653111263117698516204831609678448219212491294549098053485030707646064461084030267050681733414956204945793865119322025814865610394575149661744112360614273328844777820131664711524964397851967490559623362608693347933827780074522254727423423869891237890639779753291321388558783704514151756911472626929664577197221167320918693512424160468601209578461950609256083225645619610308537293677970813832718514456105035534746682979949762593687375570509770658179187463263121080074622272448361840948591169137895704004614684596819566765865023506434952986515077310225509108750326885337034732848772958783538053461531675071979486154125863766559615079539326643438913904419686786171533802113946424040306518848406767462951248704380132506303045451837233837561302026549441307537656174558985150046015491022064369314484725448530479059467101171430893186863038468446136470444169910611178866386540512983673000424994278203329760249168960130723486120843220389865623437580433351354675832475473696898962049339381701931486935571230188040351376403918038895466889091232152938047325947104187703268494259582158437404622955704614353517781548370550631044129380649125593800763650990490033875552309997770235806239232115401004018478711406616232944706736556545614253140227022225059467809013509231846582393868977507823053802780254289471231807205371373676185268322699418596602011159580135392518468377205687128363162780011928061121045742280327655056521836482362406339407924222389104593557524463390866967586612285454155454069916782672779316827560538884117230790882889541281761315528556506664688955024163160924667257825981573789133534477511207376750033118477984430553813831962919685550761315331031917758768785272421185024777698775341708914461025027017537801277788459054077063846406680893017380233776709448345058290038829758212154363423479339012206191263530862332509225124933659050762475440642726653721281896597204996566381069109004902040450121497903496519395799539462951558271513124797444736658410139570429272200490498760141950623132963123954135963006021497905707476260379648859967859127911866521521858927279865464035938796386793592339358528634249229112131487643598363248804600537362913329205342171499001067503973979737918735658908397095537852255848094282493211720189536022099415193480770370317887185459508362950797779889563895204300674461677778178098088692810507059875021404829108597798886117672707756617690253406817286576359682702282871658651640706994993081466065284966873354904950248021847037892530224021297283460875944477194432137752652881558849462494422424508440988452725556723302408048862389298652291740570619207221702311145619719636543501152285150025224799416804440095617696815371997309977042870268142311276452338473344251995132263441028103864436307455279095716395805059819237772884260165404046262385008837298349975061981082589312762447099625974897414579246662843640086239846247674210051766247091096016936237010538447058538986874943421085782220346552499055565804946451673565863936069998307708548023788316555449704994483628873304751958078054442646845057334018603666468773891991259537323913141717844819392786233258688633965154342214143658851709139686612959661653232979269607151497121697021819040132824008946772918870354863434949513599977323439814934093630311478542989248929042005935322200808538198937806705646637582321187420950722236674576259904614963924546495650608826656810931793299003477972065536161458579287966004871732525913615771090636367602094054592175945649688183745300395084231294325516250029267902166718864284181401170247349281647907520278734808161166761823241299152272512008294108008393150519655152536935777999376606353382709658880777992300048821094764642865501926846734091421143509349158432098400951626439458173335754123790169076704708154270801862204297367834612518169065987179164337826545126379116851178822800722111112868226743569141308035179012370566496693791610602354275145302195163101500148651709729829740550403861211698348079786703081165588402770064319869427944790713465062743192334545609165348938813295619783316320867778663121900184002299477158424593376713219332004164983494660908826252460980605026022002085535773604322104407560406568065342619539175393506492256890798638890687262578940849798121985556584187462331927689808319542732042685737668460784932931173088152167963775489714382362176577495923551745119233051815883619063340730536204839338527618968323661548805384410912160022238362715415340217094544148347879487460692419130883002951890476103779417415913956977390334906695485045995727814229772410367562542736613766184657881816495427413080145953804007410004403551005770105200662342771156735271689201355710270455430773131985128168978516015599321474843788305547830510810074455121166890284602168910224845367724355301537968468495491382373255616101097055234591987254656305043789684144903908159717981160622595594498046802320511762348931055381126630144494724221982158385011720097290275615088902593151703912824190039503312838117018288377090614114722608373220638014554919755929633424791494901935229159397617033999243900834802016849523490865894943653345354550133605988666214121385454843153202537039633561199899393993182408496034795023849633365160235065645440025792525635887619517366007474505639607119808671743147875856773479561990207067525578272967818775937147975483811248652313757684502682852367831336438860984615613661443151979295675927381542827206812735407538368451928353322331177755499493520441941441227433648683038347757794627081504433881461324030060512957914369649247696000628110561770073911464111624338681227474339774863438918857591034470853139425127645344231573173028204145030176143471275791962287655246183824511754871015612041341104415466706306006364044584366681496705461529093824095571830185127023842725855571995623222422293650918858902496852701556048915865716713127041947944787708622165292978909539127189137298762695251998558312641538955952016741155007341839274319907158603219871780635429066594655989408337830853657597476972866378613591550029783461326505940430844110051486140365026674479928847405062637944040765069904955727015229918226577057516913635468896672363763866907915861327822476662400637179561361414145809133033417921340184363671908367087049693604091631868880595244320965920744129988140018949107712036111545502882225197165918631092330909285737284927151200889304881956227985490361616200061407683607591942087600629736091915272754968663105780942911827026090187802587230518264791295995084174402576874680964921783015644465088507681632061555309195440979081179023588217811744678528782813872736214189742013425797800603759169422733680592097944107683971055542508876285387252107230836417741161545432417022568619794659966559805304444436506847753632434277434270168784355691697024469705893403502985347332868519526061819665381541769947723040217293860866301207268763279018802998945807209460715503387248019815760465330652305547447404885104184674441798756171187716090433718458804260709587203474005352059256931666045168737175685873014272304311028426817538450613303129080425579389832361024557651831489307817121710183784921764336436956363619545027761861703858638977307342993350798236150973943785498900424998666006087660302613835685955771882324722093749104361994172069546649031486933720738254451411500791642234309441126702169845254530516487901637606491111026562220506776799383537062832672156355546278615115783741514669413580570318819280094539827544393745611620458614598645780301994358126538461905185025717211853525460591721980831321948686054936691398401100897006036313758435234699494908054092918535641386859826994960258895917050399318718621052366729107673478952931839600628381974006359344852991228322736035906111882954958299737407932810623722184645681799345994381892295950054352965743347275566460895499869678572537719769963491667039875087377796205262631000313283735083262461313364046526808692302667447516230236013105085593804374605940420677023442917866549747851573194899491627659503848968767355169714365429455579529106991746638963056191020492563308441509054432735502778425701480196375034898533824646066149356486141677158821655175753551058157147360304370378602336769662113622455038646911420213473194092799483435360104632583780963008355179050678741769280993635508965219784663003976458065527889029894290640707512760895037664194023060661694857028519604573078073893980213709091493379122161731118449878538040486072263895659148087579950019618684747242436209588937943038263800675149988088792418901291368436187152470816799705359231753822052347953817888104329640336873433720393971239599267232011639984261911258062091022101672252823039326685293576077828282888722117080207427597221645585355813829875163889238691993722522825290665866964098967958763975895525034887167064090203763118727061707724119178616634143506910556631434305658400307357193918174246915547713229169335855227428849953503028965707451232038730193792510919757108381986973426713207737514500601319407484484213102914044488942657961769293573807110001031332598170865271841979200352115236841412964554753107120247219351673139173696742046346753037673234051187767874188167431151405108756470031638283620657638928775017946273587342507381969786772536770800650988385930162879111543166222843898074634415057333921656916816570960818780259363416314245027529906160606153168484584532717905586139340607418010639183946781164624139839553088198747555558772355109129834805045405372945267786130024329444972043767343973361063537659358214902679860271810754665415998029072536285082741822202851717576079162802205474585267677521978097379290438213115644510572958189339347403087329109055775860085761135446291741395007982799928848925255332840844856262796657742097001429571373567053982076717143849103265690602183325125659940630809004361134502939310294615309573282860217311010486449557189461524323269363305637736873465863563177100343352690369102246726852431165989751708550673019303701244995708359857587464753859540743112288194537272298703977450510951398817879672046280951872807681792455686016987413115847590158254787308115452090144768597387583759276297917427191776785128628829462211708095585020379468302191702258657112135487955316600037127256922678200150977325289853866141848429623796190480613298315456148115770209689665605997814199760849655035223946398926934029535326805145736189615344177501416814503397042078651902109857074798731304903074353292860670605041660460367646085029196361671102861804376712089702072759140612668045984442264792761980792006570481425111451635078255923698601311603776145715642730305880882562663117936055259571142699101155319921674894105864088190931841881510116428421879612386033069757148711257944447116759380236886283093233749309577004661145535390446835876211514740593182270456931538275903659799611919884725217784437888066360500645374065344001147751502573766698278385847754281853167658904549664550759798762691181169913178907720368549000764756578473562065762924155272668454229678270604477617892963169225959093204564516998757360954896988702098769551327443356362488431797697657501427956702481731878009155297631121504266673956785127038961254990757501089287908182860628224871330966251996227619103225314056413784730850938028617461327448930026932728102291691973039677633517098785485241188775764409390171506856192486010015706570016550373665447388247897804139388958275684534595547881865082252599705759395625969236127675829186764877274712483008716214342358469554423214913150289375603157921529464140853987721460243400880383174776181377129866401877953355560643315323060729453467834671307168489760215005782995740937683150223746375411926153534899056764379243870607733014051305279210453821907321987677123703594458207193711352984503987269752527716105167809781434165461634712037623985209136936707398210394495672939185720262917349118368769082934725102637952869345167679702169912929051329187646758283121120984658800378576941776269884157632689012728781333810529236390058507979517519699189937656324953245374080033226653614093808323858294232426472552267755293290723858003617838304422197884467712644609069628300927658874725492168807408851206541902027443931573725523486465216431770883908386296431299363365176807607349800229402319272471259406113460380371079267572052948180205884728272927802370798633752327003921056112913047874642254839535171333248360877911861116960365917973553309909038911262035493377470826629813820157852295550185764698682400044817180732669463918151192471864729427984469038344637677485633961564752342647872676812930330209967565317234756673107483884334399683829043507656455114635109503921321136188492802771295887583617715107943231012956839992831919041452841501261535486875193157182076171035273204982055271736076115839945428892913539475613018437933657547167698205960022856534604216500977547193667042648999595292014248958003679273701446562606032810121930617990649766353033886418548703917250575161633483356619941330946030941826078013951294971413663982742877663642309527008280883050319476974692098743739293402382113698716233537787876298602775806330777265371938114815016737648621935468276705538299122028062402035474362752812901686253688749006752377430170050090478331567085675932884486067898618887750691307159443898631354311064587069852931122690615790049002112864065024532935147770829614957328084874537889164802157330475495976769072833746979116189614177329043008650174612861491998092127347811190401325423011374715931715481157508574672722208135019043613143280966306496517468603931249465521039609295291407952655489319758597725643963938292737117769306393759711082131599431880947741572438112229795090912731312712106573144599473561969815824132548201977664431177430924957988955186712821550346209455370377497420992194889487994623657813319099260178472472672118439932333574893264680038536283591681512750887226561274706028118937710610420561375640959194910315262717552822327925770452392904009848880205876460422187046315284289697736474759658138852460534026498474025159086503518355306171093598539334499034635579907813722982142090751941983479561152684050757540238808843780177323426272401616898132770304806128820722991225700073251280730643609897165566173549645928936738821440269937030531098930416997958006838537313930902171360748556556241204573382200286343306390204332784862646207037056632864930290627226625358209236208263425027069098112272784287168214045976863417411436890244002281267171065463323809456711109560289379564953993856865475914756636949620553909714028789310158356639409080376488069727015342771162752636708728245865587823741340849359016408169771446531845035628841534772254895854296268877863121969997370080749847073348261983735576928066731193999811382885761748923243219804020644362008044620719716188157486607137721040344420421186042586360203735800288357884976751070490630614094913009779962072652967280595460027631130785894664361546689400988611669778078238462046398746307380753465498296408532336748246599352631864696848997657345959009549969631355715744901640867446655744864695934008350774686270890008536122093377524903888720539379078647591215865069662861275853857397394518797928929496405126145922296129916465083495013806850645099491593194925355692878479461766597955897200324902285852282231461519621615827155120889170170569649807627513942811436861774431091560937133849573235124154032103154680759959080596219343053520589485123433503011856533513266584098219075669823823200766132793056766046296134962672121949796372508965747075974491852687341479654052919114193396848426546732216715918852147654955668795421356834853068763403991108601342963536725513009968004597992631204232689323619595268509457249613184196900883290490313811284598327814007475985903204113455764748773639942977809355592877208976850549393191589830149938611904311972134464025880795030520371948674890220705518686199515201305083446505479586973461888769493146231426839967767368717179314443130777828053475903896348231558292756106130697708744341205883602539356817363567106739401869963744387064443684331849725062698584384564057595602990869756989911297209426733363109433355787374192976625874826815273807855487474157141476762328184642289194699462690550394534077403168162597640522937262503031932113946253882952808176153839350416892565179871277790689605933667285793083696735351601202995469813262948261700163900424953519354133997634228590896121618286986425153039584601828616104871825213406239239977845158712192103282156784379895297668901896637169731609850208298025747669171192715298639125964373350631630190828985311669814229426928142949066005299983802429413113585978907114526214107571840742061068161880408330595703742140121118869003056489068652069118853313544735954957720280773597225716793080978685158793392697830335660750165259216053761184734364633640724072748592732219358769729140366313827900927022572438488414763144180788599350914242022336016586173020290233680192462701183988208935249326920009611403971959588204759775997263702317997967522012348286689426551676847522322287576936072254156588484719044883940904994470146141282078958716117538525547666091628915676692577405675184451527987967032724896714044781804384487467953014140753587251177622337982307472504888695072308544593118708234892149528371237737839308077670385344972776950985894587626679128612283989545304877792138803713192968681012093199005344248459901311181721517236835065980778083927602893803963148925151842920994615314056764272450501216179998819300585488058210709848699172368541342555117841352867948737276465792003074804412337821954746837247183298760016232147021064651691010931433371616705285737018314514514033021977622535290339111399994863435172282337328394890906801196259235869656541821435219111345203904155941894300083245049449610453885253471964799349831245636420328865040554052385050562364779848602221951677484705599746078978618994280610882386067283464781504168007396710033720128927652824407654447264163012937093903733937529089045316642769236029332446756670859117404950417377318775416388925736192005115484527248301949598034571863074130632781226701192786021626009531640474602896500684767849149616339520760621488929830059559812449093858005944286200162674711662012338789338296497239065897362831940975227491005469250301563122704793761040346612720110969730102037549029184884127390114619627265924862885034324878080604001382611631872158722965252046623237419070199999334142585525451873320696492022926812043266057826895394723135252636166998611241376211608611662726859055923312218508056917283429424561077731972724820489232666015719596370729632359125021437443034810612817385498316532364497868971933691782534870803525178659807253961002077348211347402955549433872632835665626349548060876825300962227303443059684808198281127282930342684261399421669132856588495135268037215369769764351381745602964166877131106248532650949176159367842140197371245938232220259814771015649816001042593902760724548664196630712195593156594662665265093969986829419547333469605927611166916335274628927710369550635601003983166650095201067775735032403940133816629233605081759965091042587861413351164364975066768245265088614588527993771487148109234317802464521751318366631348470145284396627080370743162872456764009107172918488173199729548311850013983191895241964698745050652405766348211702642416103557290469915703115988274553803656144862920983312007879172182807639138458320954887668278843314512101738499405343458639476467361219708660947498802466224062106833422358533840441462961246124015146835107108758511877294652233912172359824073130470823892262120245505387227616008974836813967498408898794044229268405396746417066378270140499844282832939487831163576059290854653505197958109033828758377680777366157663612279395582749425672525167314033346103478799667803889100749777618346340698424594727109088016717807163498420942701453185521667812212781532055382321960975103807537370397255005406943755464973758684342512754442897478879644267257229039689660630047375605360748833788203977657056704268903823809455257169879768444211678086771016565998988411059560681124593383760482295418448300106153867663485252740142650056638551565341210324515791000241509951174924195378218465374585824647137453245142158794725558556191588408624090949972645113117078825833076137784857617855170784200138014981937335528223695586620419497446947564291352532743124478006026524729055628426487389879270893164741593878980120940919406236959520841989592359872877637386740248323904127011964953925539736380240602193566954124285018686287856591753300133853811788011286136308021605752410619760809562575817088836890986990949796525672007648509586939628612278883629411624279620250902117110604004375735268230074130318037593076996921072121324813268372939764232442974179265074263373685949058385010262790636544595581407951221644685004835508984294712141362980463440772649695903821348796915323331224115340122354263190449063891066418700732886153435145418776826116367415602135291391690170721767533018077841194848603881429693330621594390486037214238112545652014041596800193694916558852695348606934814389360791190208294039776350198611937070884494128615572333599730649566725913858836136085234027312236660282097614974172218900869059485891996796993407622496173452878193207906264713888045566698107003412433477415153489509283073690949141171581801688053757023704523847764365076457837432406430231105095963181579421929844106803371240140061846677381224950482991136765197868766656557674816419916964630489623699647979257793938055929850655359593835871429922513660276309090235135506181512167542450029887811670194113843311327839183534911503352294967537615172026408779665515443099772239981790646685565140663924512871310405312688700932208834167008015954577324114703043599571647154327384615543818584324197876725445238197314233751167517526645442881370342296869666048604129833659753855253354172809138262176699307416528200190802523113293147573666646918078608130565522580211082542005827959590567943379687358069924876601866498901857473076098869115889742590913050032775763611000179671270174718678749053170034273284803248459622432992997582264011809082189318848704673766259481026188961748775943449327991021747364089850425916174954001402712667352140576071089213358692695102953249720650709964655904231224474384001820652906737719159253153245027552791388660504914436262657966066187262334137276783115363188569639129731725669365107537814497430336800410159503763521537178814357698651751228063665242697029369056180004911244960212204221073161641948756596073941757779639574844797063116313134436130929973092823193837309350041942069058341499145259659538064009541235333990978963598001618332675359336242430977744032526545055864595438291926869705580020164576574513390864010673916139759377667374637801494864019071913844382442928599208789840250541657595065165100264678761472618039639196648379205057636548262061936458192924515862992022616272013762888129387080454333045234463769203087284199251219501027548302119952940304013889663354699401681106419024045035106371023512839950508067309849479257146804331514454307403088372286493347257583819041258565143990919782364396632789314543952738019363483125461180560016153667860016949714545124308785166532138106453892949979849026514780964443340902722776301555947674524272911205906811312330798832559901317756226729372843272463367647172600601962144917822737367677717460122069311470096775089884093153607569222201453671389108752181555841205228711027715963450139751796764523909765613090284185770202414345899700351651686254618331261176725391301454530297275098929005602784328809850566176667939983843786119625016716771159240176559365684041125594202694970788775558045834366119263832182172062289041117357696399418742235842993641331693213931908616655425435473988913371125085994380986119232082881624644053909027488074957575406911131256865852711585383359461054289653985454066281332784346708992335074571625362998681448886049028710727044371751499972012101511575817238909198822656369646754192334002986546606251387176771923082459271551854298641241659326349012857851141169175190709288375084999191550553164330726904109478144131679657224704203637503379625020271296558046857707126912752758180940834417509112818885371098929405434967215345073060857056283713230108916502918165698048553117419776890641593412391647962677439906781658176689433483225611345451818222987700557202845581626988308956860153619693129364935644618105686945592726671087083748990689874403403124320956055677574617202682410213185971488345939728900252660849472454948146731201884191128131287169536071037265673576744241173573395364242306445431412067503857999206467789234685842161020376526110711760253076905899429560326545883637768620379220744972776118341012341083786953433250390896409085327014941638985336958037524994237579601345647300050548632463374472736912772274371506467039702962632724616785067441613270219947156850343324226096576653614396160303617168692960955684291101728438385424891392549146137029349786268888880262114665642605890133182010872333320995322228563051694474548203968806102791131390994712051478161169907053782778220233956087930924949167913745362858336935910696289203254530282276211258108473734619646723551291765752699119912504016193541888721539347890920347821739546529607320517613875148366813989379072577058354223212966172721808167814303701450254071072467176599132814633286167278259347362922312225837018793803767099829543750513053140135572858385206854120532391532609855360043787404679004150384475393763750801165858238178000910822626024871866905395870275539437130693480816153716932910253916917075958298032816594699666441197161236104281821062960671867000026786039253814130295850426637195476035332487493117679297259018018873380184996063925962165193874656581575689771502031582319416682943803015144371695119802337996223001961216822994623229924039632646887690088477166141096635180029629204872877395631774087460241380124019976673806744281261492885289192491630681332956421652899370523430443284511382785278173172707282136415770790314646288611500583060639496581253195285814560770278134536795472356514629883911393106585206223792589768735445818408062624840938129996078716980081319934003486063551207578347007092213045826637374912915981980033076273934622034096438906297454502492855493307854337883102293958743494339068611756021324763694942193042124508556040656146655602473868540227560154200443907334046940470249268125502270836181639423010201057430036318311203053794645482184511996984336716967375730151383016502663472744814267170693510518143545760079871750717061695026742530019776427679745097013563982907105707943623620487363834333399960880153752171059432863983834262950304147131948404823936482047901696203808990304380112893770822884038161400779224804323513852070275257860751076199674212962974210020501105888234806448612996987336548508611868217140215796440209397717210710583217218912990073753876031102436914908817891167256548988890814963775973608109707061278568013210885623784075425884189022416593009645432526264404333526118131069972245326783289868488379304883716247078451157922968966910668761745211971857223389328879182323159604643537309485690778338369676039825398704452460653000400029048747777156307350695207544374120624052890660499292477971639737615477393998642144647973115833097323186828365897639261837750230266143427146171676645670098073265970256008772619489057864286430714629510398061465670013932115130584432957450035200114220750541534088576907173111331592650953723885448432972992017512269702578101345043192696753760355641634679014806792764954651644253556826030568423948896378996961204806208543110408176979937327948107966721887789161878663251342233063436401115388325165519829584230467569151815049661636000998092908481871696192867254269828652271125893291626361088543835144412763363400518744857048942270220978238541988927010408585586216035368528723685297854830986323981638484402336835576013268604371150222055959559538427472128164835199752039160654136915313871261691761404030002385770995171735757547830315100515706022696843467345039127105994076680834818373285709460397016968811638459930320500640219803766192114508353045786925448224657588886752399854773370859217195760754048818468714891296508691048294640053010418674650211346636181957878003483847136986989388762351864805595591813887073463783522502489357722015711106358770582388530158806681390618723634743669488499332936629945408864707811992316378704034213579213033177509922495890970438062544389652569971958465701416960497239912812022535558438662851296077955698674086383838997783772796024778317928493615750930012768761492966046149717348324454707132216507100571923746833094388285943353474497435580654594773028412410276899307869897965490536025723971786572708561683058088082701102755913709436040240318934265468201991815836549309689933259647539193101673410394741297517322045470585675686093381297858510816850675585117871050719386104257202549051198656728615433532634113098932366715512465037575171812121262194086114950472876731336878386283340668904007949389082115819266062835154100439330723125265186784006198604614478263075572215522908506736901402794683420669303065440256283767600494182511688919847930201812945492427257734715731419350300245352016931972448810415226422290222300459556151447684871310831387112308799406918561181428287561482653607216522482808227263868675001031745535044476725142031081075140101827861221969865240311416110561057462841747373394149112991502334999906064538795692485762024405962602303581543481306918702408237017619680865298256796356556640129952284987858150061497217091293182211060616419273378796305750489697264167107991423018664544217919980063850362458767912499377609005435898457418741812582230994187904518017584230406638151962175150935098239446341429777952809326800378511087690013838716829258891193046586756469614414393675877721982635832031616397381837574975907320269343998336090107146657104163751404986707579665776972264616002873026637047492450015308608554216600461064124871850590373570580208049906423072172109947732765918896500035835273177951085544395349456521960102202444859779782085168840102368562233373804746504457568792356268105622166126253724458147631473272289894325387607130349167726233654093218828488384447927247437871173153842308449519998339653414259641555189475081168846956255131541160056121555159912588072229718648734927744332538778366244390461224317724296578754114301959272314786466158956545816397087213624812064059100601511045171931384750524753125592167073471457449957838472707330232218398203779924919658206954681329363025006490988868661305464092653712340172478533609567724705046009835217630309602824541335750541390100717576137757197849798151370831245344230945322947291889311155452897435003594526258303584698340232595670441278775664218123986826735245332035529846270757326220791011409751164342716339321897489291606015472249448680979833501316741728683796491050664565823665542712214013623641451689141790468376754850869936182026436012757049282467302929602201127267625379624234905267340914063516001691041492730113098683567848145988087729254689724828672567316267413265179510914395279135892161691389810794203616446502263232914350924844199088478004474995467824138645734495592420148008947462583392249717925371999537624636802525529275369777601271366109370728492952805754846141023361028813387002618704715373364858048597228303882115317195214437331167799368158557897092796388661051352994449157093366221790985734080491757447807386893009385825562263398329295371573014295192484842356516472190565632666696943141236660829677686658211187259405587125103583702296922520590169490815618389833876094275500857307107587534512745564616149416088072782330082433711961118232570582549502141216335781197891706126367854696876249325613337912681676251513105737924617917236130852404440994893279814554913892042445008047682453550107932104483189709423917636650815626184150641642980150356207665018507607824854825983969068506679905129919905449595220344158799093067614465111085391847029364269055745043666958257962964652677556828252594963037997430138084555456493671580881825372717543103939364264884065981712452181879312379124235053476183920377036082612536568023177369003585720104708666987819374012653694854958714708759353146518016905926942801775804499870951887679179964250891878301836495591877263936173526791874706603141977991318690609780727771202340663755381154720356208826687676276162821370892120501850698848794208456005029898579107468302454266923913291540135492985885189304857964213020456963308482052152000663162132792326525319514893171504075363554050510190774651665098915050188295159289227400349166332425534548671676421469408170661209940910472867201867417642374387868059716798671121304913728414936755296710181327299057538128752653411238516308838192638460473924327900233086644951294893688712778732241552036421247339340132424835475443457525667114808185614185837644695141522833736171329113489436492256891221084025621698908807058642903783669593071735300608541556734854875231096840008686919495356135384756088281248008931201709652841647748891533453096711884854309758275825262982278647689012815822668647544276089414485842579483058878532289555595841379970924612696313343825989563685038013583235739640948607218251072333979809532387744826190574470564629641148028151696225460059677102415748966514921149317316665747652383237785659941351506048988743354382070776616445043944447027721184256117508173338717671055176146577350080693479605474987264446405039994693269582275258428866189365416860999765136843629228364746877585677171365006998716282300457360664448987115917837171080521720851685450990163152898555070509728187454673134917887518464053222537289565372010643405175244534884508621541289610793090158823179723250906804111568476987819650223052317882172748007141089866530084401771266269034219796794006465493733861764489164186009038181759450473261470820539887784908753075736924951949576136452460977786735866951322197777662151474480097839305640285647471072831409729098352451495663556113237034931898205365610798480590961289979239431357087234282728867538648042118839235633096572387550603365844847468352007331243619261019957150950761988478082407799401226452936488501883925606273848589752657155881264833189412905074384686302568523943336136385532475117380615299175653143246344036043797212916727252020522613029899423658713526808331490536154378170880737848456384593694927127708335638979833471221843667403138064678474063055332495691519146279272299644871341160425235646594157215060011886515011636333197338807314707359075247821354592540016102677249799543369740097661999620335690253527062244123007547763567782085714910320849583891588253217493984471964064377041629298104610719864514328070907047548006294189436570075078728904408551095238727627380446438782071700593883271566092021205037840183374978512177837619600576007549113484157785764004196782864749552250438611457721981873265327933596269360826708370200744830044206597920574614827667788196644733224178768763786825591440679729862239141463614600541021329120954803255821284678159906112941456069509396231766206720576575823827655184315869411148780352889450760656912506066209095778834509045450511480424870243869104502933802708916076805472009365426919894454463199607490401177544360916161987987360388331572811266188952408748705557128599953062491512709389718318221151083437429150795322143803380454802771862230623659617132751813509258375389624273010551183830610209033922095456588507080753531519973757723122683303758903708537059780981048470987074873350256498493341202976978458668562196917930944445004920077097299146150915267404266030316633759947803076002272803102934737530052025501354979422020842541691759424551244798182981467102949962816393317576162330129853759936522166851378586328003348491912595807502130179387835029648686406850675694450431416350052591785712352756208146351196255457004751489146777100492007990412163523451703476723402493196436079157750257128424493489358802863959168127145966696413826285072420594200054285080225743785049816171025635721985678925419565980335296657951967484221497361791698663108339357406224203065359777140280864140057899341843222716145577466572897205486786951517571557831396864727908075121717070463163222714887386967712436900086554098968606471015243610586854477482024551867347353337416487302181389962754363792670558585449602363303216749054675845454059783164664636406498106316332150140037447434148652424492977704021624083868000745453847560054081227623375023050522136369809858241923195064616141868979831725304269461266194152471111484962492401250594514687435263670437199990106896911966913544229788082385394901775810485338028445217172196970890979351223849609784760321826873885602841174967056907099437435489575668468954474020054357221511518480922497051568330818059556742269954089872916665198846915545225607949634796892869753767883097786803596584281962202543862605664465339967199576601397525487830008802382467996909994232414668340072045518657446848023873092814388525705546165036319514079349173006874850450168425809212122328829499542347477920329033133154216186712778863543783816063121068521910816725501755212717074659783897116968366130954031404366437543731049290288837682639030088496263446069069839859440305942910455109994202882458617541655029751034374104392873703065935682175158407667582853070731983826248110085889272994413047767915886210043131356662259785489113710545972273124324235354304664952061057804419015749556817913250504739459182196863885375964969472933079400151042727261086781182207087825045759727359573037434327658012660483559508573025099821189766226969077542777179705053272521272465496809586291408994653755695204221350523318497160214811854207957938981588182784645748993167914773658240526664277686024035711871710826559327065032879818352813007415517658552909857512658283029754090154253209202831498644677854744125201161256189357945692374992698289919646404198119858120123660350994606134812502409154831026257947141662162900537470544748696625095662951293317566019532986175667943248235899917877447388039693022898125159490119930199626329311794123424150730570333279386143013291893828864244739416425779983679745366296039319564662692990243649893428383426252360263000666404845014476919656382599186244138490505780146613856164842170383353645725139463416176778426902739874235536460001184888105540883856693176858788084564810597475791852068096095911213454230700985617847622929245919615208900625938001775046500686590153797289337883498944697297354125492337249220033097829986393360384536047227178398060159332098687904983190046712213257763166013497795273883844512758004352829530195675081332444384491531366106723958833154121591140374998289626596752856178487068405466131311025795782302599934255232258641796332221412219452670299839930804260025927019580011923543487621378907385624954178387443734418012490115577449868416543121744888175859044084372054547438849389286587545552194968137372859596614796902095910796733229480738054447798442293868530955777710041443567318967705414116438437364661189379414695071882852951320721473745012377825572110818579513434195941320902951299377701763898877569865364953179781991573300909702347715188512893072144973968425191729369446700164464403822988234810034877738618643313746014541980216205119074825690705125799923956721643401161058461243939678934540823110015150626792268642490992371049070928866262869919601071450443680734804086507956323260534398928238764513941436203241856195719964745630437281984654407859528280375991645366021744269150759679981976869922387952886613944637431411761717557590155082345151077781195931351942152756676779852853453446909609825807003193404186442205521553372648049158594759042592651701069537476501076011156043450230448200368003111686994652378958027590465243377223006410488347150548515920302078688996710415386798586721575040747849817765442513463818293614731086440052958329059444848504613680421598768847933302580368945097539909715127303720809782347855781116580933285198439624492838107873697520008029701291121617479636452217205565277090624323181853278567760614564822277635164425176281327780202193839549734557380368772484332343511962926653985156453701356010637153190756031039121074433643574941359099727680027921711204441987590670927709171513032845122264069632684126050287902798596039291739045101411688105625364470596575846875039592060984245118535034890500382854614369241225042211147685507982100959159639117593349848730609246241988699657602688850568467881532710348703639154227452678472973357623823855553767243306575111226346751731979881510278492517011335859482147679996348881429183338301956066453369459971092508003946924588463075845869640662172940439877291227927230644719422592927740533515025904726777725130226022266916750087108773515349835336234015904489305176850639718447292254765347972101901761730268463997683964111329438487736052985879238537996410955219626408271576563359133108134927319069676043616979734490499788608177150783959294172815421409299472581238847625120411937626723534388641735299825822172012141078442591977339962632371731730268477091071667995955225159361315385640026771683412159764534990445249532746549136398019061290476462897602967894714790638536712872201961318133957736750794614761433174664760075414792726533878930930766552276817045079047404814808857174675693218825726394862467820970612352707428318847478968894984476678306586125618712112387724906425537562834916411848113528395129235441851803480659828537106821541184507614480790568422760573094743658539353123576908369046499330960907453155535029834997291925092857832026858119791683958928877988920479006709273138797811637638915699946730141004591272572039718225238007370177462317368076457889694203211110787003640214797164783535693918540515362013281581878236378278074221093337548434479381541385692569340334879028698578914849259271548250178188514669558141935776882297998837293265121066192728977022008094007276834866505097505558185639946695305727414760976284430762953625687708466980177174678078515725152425158789687022750192433265514954651433940913051925788204216956517091606177411129068263863752750311192578784233539850983481570551982961595220957304127815952015411291707169505763991909782554629088197949671753937499354904157622958798785460651648513085956490893685489557108408151785622050680518213357904902853417142761228300876565695187809636027909732815995087913679831161581479504698277298907162207549491869338171235460335780890598279137673156119172152849154843724224983758624518767825889637715581015715791807603367435652477567942668455838796702460421557306689567339428149418504798450770385657219485177526720753433335796996166670517434818582664553475667450183563355285993545585509759684643531402558013144858267884817656698120853863995127633550825218866128884612726047594301733687744261134568071494763387799271265413955525521664670267593221702182490653970130531253874809596520269158769396534855796075243968681614169100035591276065943193412495016002514078843558608297868516626737253056782246907383430317081489322327302532770271304559828762373642739462467499086443850332468366881990318827835039521336211889600279653001543296943733849864849144919760839240708547729337837246481158452108438376832759313870903478277302129520468968090334308780776048044882810808111730853890261685374613782591508060863364859716352904393245543972550633311559800112663140617692470738855185569852445893858890059817683098648394004554805242723973501174497052387724854486746488942912352846681404916304668556979350007457686009204273022072816269960764327961099400749848417502374517189483569755278509290273674197277440600297807007154923391839656426277475864976467289365123442894388014431139650799109747562935007749308911993349943625805565535295531767883656347974171858253008580274169831009821508201037885214276388873754740910512849918961543486088749865747847556243470285339058550246962710753035911672362995855710647014100537427280115759177570405240203863621331341978522330747242555073430745811107311158667343649675213104187132361304417022723728261821114794117184213788875198641651094180146639797714348112687022983853433421199360282546536790157495360056174449515503027457029369807362486707341584883551227943840975466126255040338597428493139857012089027345495172735820738345659756545082557183536353284348280673937242594492865417571303121055238842681557404754819854868885287268750834004909590839837991174364760551999778722420088591525390835821055400702041851371271482676442034301039583198919777123562216808629998168911121328460139422572970223951606993129901416456445217697765894254427380592116073215870266396545844699680716315890428589857155867457150861642577989431374099232383513306241617862316281644978273464014287900650553232950958791935400968342834464355303958239678130188198049847987016594536615406916259000643196972252013242957484366893583231290802909615701432085380893614101442113979726465143871108977441868498877736576432803027633693910874106857104525307207103533119357799249909270869746341220120069586937875706614143626511933254842071516903549228702521077207983700867625724397482573936469080010194192056673923552404800835244155407569221763093225337774166032846266813306858695269272138572127814583927864739561246041807133136777333012251820730287116807285927832906511809242274352950657826590290864096349210219988140065396351387985439891588519935365558441960711070332751026412232739736776645448758963574004502804623388608353218617935974567606530828113913406770595042611167975327287642369517162425671324964933398860561071016493825272378971781555381802802256049809070900479986296722026007968673602298918426594810561741282038256174418205909999954476110357399770047427752149542522913123418756159454375193119881618171168927163119391768322241054126830796702518156613717432465398253757025361304607843137118284609021605009671766204305915756639946493202067823534432068476890359333161332589124834515318180738162467286771143603479514399523024388310309834604122757678312039573424746106400382267588656498618589289868763807740417751193794920618813677580605260394438030957979361077817579925869341402420816488886995298576355814371185841184937903249867582178522482447739583458386586607957610802315576361220116426123486796593256089831146711218104425021391408309968695990247593650550477935207510911821038487645304517551438098801458179090603844333389250944139385004323034230260966585648754498871954235803183938150885473631036443320666623082384095484340438566394197300071925655443010453399091377906690598815706574231436373480192576794217669933344221160715620841433724038331275368819537958423870068837382753884282954431240976924878472759434808542633281005953214754829263443335406893686977731572708851093674723330597465439316019630671883138742274989405651712973693278153404091317282562585079460138759922485353110970335713545894713614732123716983605585472932969104972911122751294001443291352529724380594363245483042572316383716698236081687620626924281332172334522614270685106535842530982588144807273705011484918549055885462431473683746633010569524824642833395575186657627169338421352535388251921303376174525785047772890027111853506909025090033192665237334070429558405037277510399496704672895886780537957066506817089311726097990589623026493580541449828392136504838937142709185770505698502843662463356353612583915415620276250258785723329383083714153263612596842414864086717879497558449419217931627463631954406184580406047576805261132069773669150841183762131563748003695833003530661357371732667364836424885108802648037074423462092142011385733482618256482752033174225517259319009592703147505684697293146754472143916409689829136432833386737262701292968494465535079475675753547695780982782774267589425997190687096037268526085975277203041930297547142738805596986548087202859045449464245357152957340958382038441250909800277285995890658061499183309311181131931407751311556765237515988908039279296106139013849385907313066396089500004976278771528055026272620025054803497390176626248966445228272795297359376620091310118611233831360981782056708394396192658930510790194932600798755399364690693590569978099572189401780510183471524541971023068703679553550179370494955305325885648043544734709396892647178193413787607265491695688840878559525178648703534405507853562849334437741930238556699631049860793347820315110649701185530804698722659868865613207722302766630556142314114551404770313964860081140413701064396154540242526064592074872977639462294173523938864676924441452193829275468436059863351979243849504123436564399200952266985798796287467377875758377591230910025802902523932943390298431535785250965013501492275488946829812107396310119082667405506947634127432987082438099663053113819126547376104584157791329720017096645070814623920005887266168986246049240174010549036034610744979912742790718212204832711821344188617262861708710992067740200700734341351129542843289495383291917725834410776063280289219756790499475006910563554067435599294437022450202613379056713418013753873843241532875314670498728544771874800680789280617898426984776473020135610002989903258497014741397153317610809406812458063444727678624393687955181894381914739085544051574302651043914283005076571907712044841457463249524638869278110682562266359069467928693765014806862118594974584254668933263234406485201051300263079771974468276328960941549296767295151306829526540221527107625354043056417889860777401605867043908564840662490253117405148086606606832223100842668607670331459722970401845339953270926410993201436157045388305828818095288901339128662031480874375495336416089593316832138743805998867134603595010196322113483486778661792395869602758307040781485160905115064717759718491838649993229439627473339158728370862938963658635231786828316204172311283362099154650633784151900350837445206951995323879374664181354564905179336042991152058054684683165669864754274222863635641926205230935372548152624331569451854425713518453242486151830280112339062110292375742269733567941817820653734601920096512136244090395683514528513935445645598578363038568249929120664803637087645797042714523044570361042777278107611066388035042641178234285924641820745101111663987914240380056996073999469026073445357360242943911309447704836825416029521875552017724609182684886646607308778429350197385149876886242803662083770243430992281879605502426895350820881331834382023241575107940062564369101388693431115806481746914837952517110405871203145624254001497963549916704217799582187941701908905066038833495558292748046076410916764742858592075777657531844807881478257243396752615550582603761491152524846024542851700248938428773238232674219720831434219279610401230267338134939557678648919948419830535983490628486990662215364571306961873706646254713409222689879915837608932021446506324407766217539742229750723157792344617334774328656523973831389103782285703406329874403929197151440582623050554533649529873401884137201819287068504894982509840545174225242364001900550492523248617429035732896320791591047636084077207910238133944964696255182279562338047022619798558381834029953203232925636745419178005525062835931528622398048991858295061174040840090242940642619002974885550583457316713684724664616682947751633014752277706766376259733039676017835114124805872889236350596528618392388320980964827712171179666854140338949216791517462304644756447263050330215456890659693451755886631890234036073607920304438011192003440179537925300730542618495695780442559121312415482163797109839136917298296731458857564375398583882254395344338248425076403990778807674620062704366297136151236198723993223705493246668941419758434232417069373606283056343827806487900656041527920537850705577668431175782964639559231580148372028894030745851614085227146068789131355781099846553198899767328576985963883314011927378412475912684555832202088380838027266439945369641991462062906290757116758414527850697324008338235766908567287655415157570928970605746355078219743417793469285151130200957142398212275700672199333494941117121125253803382482568349980064619710120604579102186313997246272550645558122981771033460200197319645195960683372663823101457475245526637252963286956059255552168613677023860115209404623424493270003862906115166151734052541290486492675349095042098736481779306154398874703990358830489869168234385433344880809107499337094027443912461305402984155458861169818856281759973464720016999740760628634706628208570459827960051746000178251123606195568372928832423004452193656680630763946468712423226791869718316258463357486769800492487143265587253630442158343292803884201097630098072193449874283893709408633489606885140766663770757819399683199490862657558872789159284925126077638891613534914380512605283840903117454324280234962195848490277893794878818661315497810494831207279567891841893578006732953828488651512041006076543715506051564148031002437411049582237077385470685754271018172460884013697268586494421565343198103229556274701178838403643417981532804114249777192356553993332072888130129570766529895987360751134631489244218823121125885901000669000160120470509340120657393018371474066756460419213480313800252557345538317194179256251457608724431142444350470558393647840019347101774582774610380919022268255984364572197498614307826085181786150415477495904692883363783213592400093061892764491693183203639741692271273984089267314744539880166274111982120505869995436151598222989157247787301349484981272590085990799404038571007495869804344689366276070572959587161898672103526954255569187867818831746596879972949927244720529701699641234240666066523231677439726329525709215312781194541643245851220679824435979632877207937939350832053018350802056417018299763767640543220740956417780634833388210276907746128998124210913465607944169008496245156594858544204590823026389231651189040325262567684843189083697093461557226474414612868996522675289107205365569594528264167706105297616207843414223538992158359845762654094354582944154992719560478710102797809983224145238656032823326592229071706779874481012485937262374197642129582555566695841071169555195146518085542773021115110562325886416265400718127450883129863093528537560852654065021307810061875498841766988102235493279610823788472466483557440032781938673692846357524762578204855646001626155549974426658679861031689478377318553500649584267448247120049437222733352606694990908964604880446630313480446621190315559295107533277755943248955797451664445746303375326506478564527411727704128030022516822038785069626618918930378573095572929445019937180210563584956032632236314610780441200231540809748272925899216591457192558653021881781405764879876880753602468961236502184948106591871552890146642915319794847757190241633275861249688010196063154668503787640284274781466433122447817169112382521109109220366570871675294610177875754161393931486151743955619665001280834887640447631406989414144280640269183389323391338149960189267366910814207163592106140378850320364896728785618750193205314527112381859079568541531053069741459386167671801645772028217729459592482681524480457659649550856543163694281639206251265110538314293103075717112882618851501372300427998461676035020166132586092807847848988004467928485471964340517036047105952906212580087283092623237273820829482460387080674992304448344610276126619723364552176367715098169010081280994972327574735961021427490689426034001008782547952388694724192050331948195593246941660766659536064602617219464313571491360230807976486954121804152704786212114743663319840039118171476911239021899809320249689579011096699337711089596326233223161819873449455914796676903616386890716737148510063664505147918503400942808456898223635896388004120505518240801098426481506186606676921369313871626017243330470858717888217235667560392022945012721540092830599980065311837998451130402426344709128855221610580155703008322115271621612288233567911772815870245974714971778587766697646822758704267001394751171281571108124318782753845840654333129205175276199320610548038732341481902155584332185256608659877476688104726928602102256349367436880230032855110630714938176548441565361902692354921938685032304065165754736707995818471888328262422041490116947880837583155762640651480587256639198927802364080412926324707483508142188785566966027426824382707261120466319149872319215968931994417764927611573516340744448852363864284299121910406735082941973260598651594802654108725543126968983256490388297147284865351951475525623336977315986313477912524583416263926919652154532171528603483335264203523323009310164110817291632026403830405974555558656229327984594978653205597279730013712036925463336423850923617299558156759096172015839731705712573386016442687065225028595311582013026880124803123444483120195449839713489781851933515631921235463422729111371419379004683032021236965932138406850786257808249653469305389407693804221061555616473407319192094449159148659245447153109308902442721502795640982155871241540328115864427108021629088808678374242596841645067495654520747607783134209783521369341553667101471816970614960050593868446974164456970609715243415438743527348767710318304890944128198274783270462231893584614667482030720815805855090630238990155652336998422078201028852186883162713349161867864232476068429903949495423355353126503032511413305725168087284293299234256664378866100203423792496517128116254254536020532273666321237645511554317761773327071170724488527122662969821180204019101700002172881987369715738613970522054037514756849919218209415156357780957729372773208125231305066698280671725284200554858017767643306571611339685037330391149361581223114590301002046764685122722741237047550893495680977869625382098423049767695171089098097793332182496286665224857938811900787928010528422936475166450545476353197881780356833055783066465285670040479897544474809161593670399351643243439118131207695580595123107563255460997116373255455014678080717818708803508455516929753358466642614662597276638142802504954505422219325015864417557847062911783601265631344845176977810756485885931033969422021158782029642875343994192017685694309295201569950583287057345808166070646117292939907627204846014370602401319874418002783525442483901114983153432029467208158710514254539995212470317720620961246221600819318237753581411276603818327937129293634731144438222654068657655172346279083086005501311691215569698042996449413086941026905680206776371226923788282165207365858185711105206392357272425435038915983545797916416294594615956812600055754324937486747919574632378429919352727761313500873850901331991397822506476294425446736128718898627322567849584250066804772579259744580738588179022799230370351380740716584493073705885790643567059713737873223644527586699287329080461657410075562634418977552453278837948213425821596282626558934243433758351721439052267237283211321531894500071346687899334240668238472842147427370603716662004572695399948388792792308333329865985128605095182332343641135862690273569767792526429085266364784710411753781938406527258626099852652765673782357939997594657748086198044257437190744827030331164298501585652234686851207974632608298030117614537761207583370110691166651253526949762175629477970110510965530350757875321023056822723637590019096608169800079511720787900782432667335820108495468069952322175010523243223276681157474706437590346322144090073929487601785324242298576354041214506394579718795737072796399630913108346161417387332264728345121388514254097947484787499501611872214695211195346405274904464493539443961446537697500899520744566816236949074468405388917097461744541373484738709332628897947379072306100174123743700733543208718509261208770877837255080779299940372074741297700976653395808816149693022721552588317078455483055459937163015943100730981955413591018486090239391968305088593546042571608603490108123222899242778129883263040777996548182927899770167247477408298638016392888476049674605264690898081611916999996966133131805478330812773904938667633256284325691394555494976868611215766513627976480190413425610187752576798994941542613943311896151915834985900802641928900992333219764872653641332504498036095434785100785850442882734207848731328637445837701165526285352225320358269140449607170577332575445835987686642233098231775011913454887544161720133230931282333430162936340304806534796887399818477494923926085011093437444281201951777151796939656706231549095050422311020635861511096393137560838014517791178177423049545971201454273856570667642653289261456289272774048674329981479713423320944074538542735090945323586838734917022904179022631759044663942114027795161274017848259766144355651711577272368398494569087374092023327905422111581983555030415817880864653824764905995969548042323504107039284057613785403234574604293673761419987385704344461018154880115586641513607713956033093905635211200416251407828924485727431389270292357737374966339629079643552911282109605864102000432102243609896137340708566294180931842518457654985987237622577687801487340509219190327690541460416743684807905689572372809325739075916080245483582836775640517019637582052645681272950632297582008825897808726766351241219670706715431070453579000591042105401788854092720842701202817340085437745567798813322536558030541500130435019351609845827083643309204597740721044990621720104693775070753879965911801561497457421776462107663332976375283322125092478151973560086583845481854439184308524229954684196161786109543462689024903840334687215141740638935849002745945945311835209192588201326155297659429309550913053166224480595517461431965774196268535558713154607133990156800301992961761957854054713977210465554737403033283639503543408531502291973029365441043099703019978670255624667077694331566811241724134055391115926505969580177111159691054299146912120629965239620610748294068527318784636243829474996020429918417136043417356928518767666161672385465612757348987700890690178789221008504631831146154101373473798989513355105275888607891925053766090525581544887750391901150858469348656258766052315154578357500337301533597004081670148128105306344381727889263197488734391443147454112864434572466355156897492583666162014867349477264140905097768190286381728652875912180416523583279296294987198407498486447755714505436417182496822082917829938291132135630952117321831761740891959033604334988241020107844530515566079579410726092362366506425961386448854435627182185983246198204729399779815577495307395138999013537820865436857049439736860117288917168192949957857573113448623101761859454067747561423031120313256614867512595501607765796314244761776998774411608076262597059825315845431886580304441102619484132878860528909234988165158394209453532537907378976577758493381276754829346889632431406118737821597661325849424859258128947382614505123420194546243058967883937817263470827887320110361723398260456496560241973986963784485769976940051889654824302285086091813355262220099041269435878702935649340785542499405792046773933741665530839819704377654373473359964462852175896445172294366821109861078111208212243515661308400866188373944957130364808693802337442010092913507145070145773766333005375703948035456143347127965122453478018947426911948450525968617402758857185335684062777771144543026457839170615933984260439430794037785169851041600260020293638230386023033531638942099557739952998504077592007312791929402867827177971763767321291748046748004147928588178760690132605071015933332407244937991461438553869050796307175483624997586014173378026138963545374896282003887628885515542692740018551112658852065216922396035692905055192070625325746060526341832724474102202641343771391466372418419209734228913937285570527715052540568381543577433360314190250770812819618591106389586936118959354379099860277835891960666344351896494466787436085485467915359368576727213249096394512846335402301235436185324639585300927455574830923207581577463451100904464990875025571249620923427994848045299890600756874665820476189670186781792987054497481502363631984064867159843130735734458084534163447326712022099061267334678986269192480121317391111901027850725543749850088258134350543871661693838327017123440804166523969834135415683941573850300212850370340352695363875593843372796887773444019560753522120425470354392394864104713943603183716893244024803024772992500978609256423002240323028512131343588797030734669677153526066019152155629089428343926868948516373012847826136631282772264600012168450008218505955887759438579245269552209944106329724278163532102964076907494819246333900454162683039358653769751787448054013119020887630147718170542631431653772665905570817606469270257481072914589452625350501274703330649762947501196627643485966448382447076948977501855704690860660397583611429844675921199388385299156707436274632163585867247607632153234359670258087414012232177341254560889938517044398130757353817524827156345354889895940451403143626505730195219953969919036514537279897949127177287606573398450307791812248217131221251213920951273339978477304945943977293881999603088128081213552993141118515793833881107985277745807972189096314360101431583977570197429991288498300134892193858314369085266825383120570306486047724499456466017756381469913816445767585886870005251706981971802246515113216230685770091144487206404616286042859759130041955842813461714736697501828037311375384836367465002163339107517404858136227207092231558234887093295176505091434008645582625615358503866717610473303214248103005420614603359358594323103086943001430011706155958768588547246389420145966365033660850144856559077038437340078593480904697936900811515213670190077518817782866336710358380624264141238507238055388608817431510093262788771454857068982179625212725896049216545676201341386306219876620852169145579527363868246329327099297248977972338484468230752495302744865793208929049159624814524816641476215704279642289050522818722091023601423468518057437695237586031239079266714945419056236489640838778698761833246058037647972879494774771878839995450371771552224176245297651614834390090747259268749036931858862117122937976566677656234990120176904329706520387146777909447543889366215849569970398114825224684036493906359277595873752008227447629502404671606523403138067254124895481443275650323805482217215301203345472772154782845067701423748869372118373480277507997808375316932799288760415381375339662558924162606901759821259164178712940646580347635157677370796730108197675343545546462511297414760350006647427939155374312823887567430079311289514743148805655572107839738328369174902108783466318479271875249933142266083092384199787941817144193778830430746264219683973473080061241145986105649035385268857383431556064635519163660149982570502961045785944255807340546170314113044074162212592181808357596667028518789342402757725564982387397054316971157605267429949428963794152181316288786479751754693612061603356450419724285654239202801662514560330739631335810115888709085090892122252564587706590903072820096378310488205114620540804804340536109927238587879881109592771420727618770043064916770923344944193311731232009777458821172519377140453996440564815343137034254383619010889511277410878721921082833979567696310299373630768464210774260663020321343193675737083450012407238949448940227687969389418555056333369296453349999646114073403948113399690983759834338934975366938148036260235538631696155209677176427550123156123228812849397764143723732549918833344204136967303278436711533642108951947480257500938283073395074024071435426953095654830203755976383384349037607397554239391718015704842657668174950862230855532613617993294615614842442357860987450565778268762192336197147455825423302067098935654495998357307920620992237430523116048349754927861858183866408493535972879181385871444891131151524769841128819886444058865449542429090521556510368820776014073977894742589731129018163636144499862418124672546022465508330158342817078525710338584289689683476741395871568850427741571143178076748911631279937423220795608872508177908608658673071916433950889443165361823340691424290468214952764148603406406840856350359464228319119386739722571615183904335667144607924688541690445057345106959630722416875917650256129569375452088365317551678751981978546634843823003309254623211395583673276338477278812015875290255525346684714325896816294564915041352775850307716911861557000767793855669310972823033178399546944124545184013696568014924413115176468895582031413196127435373039192174209724850335277766907850658410277010071979480069559168531246069120048268621366611528186773394533732912191889547942685966911873773422164270396644997987620207299789318265819867101047991821771345478566219998959049119712290415032799436716674037000441649172557772055191432347633274263518884387231726614110786102312901358745238921739118916056909764400947061013182956723100223438273701165179889177168730768351444978974403982084501193460658849995505925389357976048681681376479798573932771657649443712636028622165910809668533766103843047620017315549318765216452185469815547174000191028731007581911198577239506872432413298349897285944583179978303779465544088611153442485170192605071281387272725368386614950534214075947692233642557133147670569747185595597281978608858627870282636320468532676773501597756076867506609060073877133101362366261175681353894900512551856485784908622756621314153455918858441078677128120106581336613755189525746153535611351826111835520295304122213097550278049197765532936904538877613727957814697460226115707168185895787263744400820762510469069358172946121488806659948524147810007017321494285984801442476608719678970184835570101084386452246455840286667715637075145937396505180106891211681775550524845364870583666823826942559168755261915364940740957800313492703495521717671527259465081813020793301121485666269071949333610027678459809433956765471476683962923449575718714415945287672446928267994249847516194501627346601925762608591847548338030643848534735634699713067772272066366945896600264026748219983735946154646151045953575635195766211427441777134482248666679962386495553679958460102478335133142000553686381984135212328202094188522196226433126715778579922360495880596494767282194769846740605307124274523648053549244936766554184445890896541859075367918595894399352185096854256616277487359818376260590783308751413804304023302903940471471795877732153154377666935341829080856343208016613021724771369798894024905719165641870638180379650023939311952620626563640140357221095227740057095385319161010995539579081020151335287955672606617097055109089454534500915081060546258032731131860655891863940758340070083695618120322258785520429478499610446455884082527427774008412101333377861533498694716273194912032546653087900359827336708906232233154132135308585927039331865555775495067914725154257330255420287653797619101419514583322466187308580117786459896254582088336206200027605129161166863635567631484375936461321336482605380521285500830716863159086640403753959542494578589333130340825721209295071313283979809365073186890392304210965109556768408230584997823922439118748360019227917284730356537826336186745706807580758614152451668815522499492455260868076437171204731575627985000708521705049735795754902766391055150018605933349615626214779725128883339282700620132541259726703265009495253698152669862159070695623234080010966005329879469409974810752872072675889385549176316399979163046291118625656829983400259240254120094346648673046132702945629956965296860177336056686816777266194184683348642749100906971291613547579611678358944585284704130971477128600740450959695172778583631791460170890313123536730936704794647367788969225103396443242209215265550792956564281582541008551652266415998677892181084532605998484576723312518796041586727273370620954694680430588350749050017668290621468443327985908721269227978794939274303532714768140035420827282026865671833649457192494736316897911667909183318550241244239781214886361235427845377796681218982777694297690687294386507005483349509291414811420725280066318408076157212754729203276974015107383508037247078863220982241989502888100825853604188502167600592784323021467697991812881079415156345363640948551958113409927435137071953891463563083705175320985198562336602640462812126966810541941975247753204845552737410833666621047151453561834166699668723928775945300476414148742732528179979637956027879403425690119649292944652627074366806870044839382423481544204932184452033029531629204899802222247618153449651045964310492512059505857834128214319773455890628065544978301923832315170872517907698899534946709788413329021024807332400346483576897728016386182638372531409278990729582641105710077346434339956222791013766284410218225900857043675444267761467918358462698221758151705605009394404346260008255966408963918056347134041953217321800532191776713694240708409719289061993700196668536856688923183833339249433891137274620325299786413718741410888305109374747881531297418901645069013791778167968747918866971352271281264881018054221735731097849008738011091723827375901836000543234138313343677269177871713322694677110420230721151083191069561726074962662246319515861370229442729619564051672232259644022891999129729197813338123540413811603222251873203122008886627832491752157623590414552401537608988486347187717089585375246893362651300571935866403529481951947500214013192623869261450216171592053380329893081391051131284996323581980626591131774057884757054218299384128205324663151491504255642350102300016417923768732694321015298395348550673884427345802216910280273009360217164107376345214589535812570640039648083077116045989438762997439767417497880247959241784608345386148975977918208531996397974067207066861533539395675216233242958416642277245812684827456574997718269171050373125528458853532046379426984232561746532114827136123344553004230130181301041233211201448241022468615854131769077319273451661341295373770609997608736889205750127686180498359283606401885107002622742784686548285700422451707644023744704820906216716634297815786531574442221600254637466683064233691134092413670610301676427895255462078191833758255564394154591765202602605166500651311635439467085715074400510452472988969661695664107966127788695132268716003962836658482607136608296092941615814486366831555303892901482860390261148098562602256118626124099087092352366573156356916255629991811402050175899123610787812549486825593026211042481854274985023424001138858309417709890834026293936292557293590357353934920000569567635931834448984785755291369145033949121287133765120384519029027990175381355609399100297846979242776293021932770559494282035332071266577436821091045088840106782988218670157662484773393809703207167299386901083536380003930619269942438179126887219180922306630693613610996579834092998804496809206201924031349634292046812026887391503829622145294351562705146484325025441291978985451812822418755054187280507730166378441301878614995046657758077120341955805563146665583580910387387272961689533296730384968742430039395401706230716861264213999316679740654652903323083633316516642444785988429958375685896797711245739795860946146197225067240499756622805176138311162213158951439018609485487278559309581723852483262798705252938774339808417716058272452404020686541225009008979009148673257193753625239982860319394809327760384763108225784140272920168500694242800918324453934765609095224680280046937557380021374121325999971025989632962618323950193522570453857022499263897818275015151574672422608477799638161853295358755653030971932206863798014329991006940358053127556952447305296030926482307063938712998638534778620745725770828761736746305431660502067244031712082055292438588622637808498921364165612795639026160462797518060363846916093507784287611984707114126396811213312090251917476120002354341694041210844787547713925827129548644447324601163934389735312133900994095202830719407951829738294547680154918168974106361529620575566627004889345922197801339576260235349111521346188995222039524575341421588321544838796320005544079695274439441011977139065613417122300610710158694681980708090415826743934511050653160982823286670014853367602785617840814595122759620810943720095501446120306578202020278159682309823154595607450726432376064568059809408385374893020472327464735405746885542685040190864988479468314951931188789583146904597980358953117349916415159452946352550797983455988565369663516835699756133820993020098406475213261552421835535750881188078449500783836134686201193462045613239314561290110282235204440969946182500130357956405411556167996050484521271017005083907620338689863581381438330346493503036398272204728212806838778020567039462130231622047820141437312919504042370849575182564084550972312850171368725322672666941538097094086142726762424154554554692051565050679746066670987668952605741428717341158523616884832463144474356401610363895305738830410535723822956128738737795866417222002033336547888191553148222652349492348184043460519946524468072534734529462642754255367014304784100795670816425887912534635579873376748941329759516351986054708229879731345994499892889105205675486426755920543463503187279410047136769564802083939806352611859788197827183772601141152196280951318674771338521050584545967528608214816255911622960403232657811310638429878374407765518582539232444716156925907418254514049271816830560788767560982316848514704209777905737038980230031743328718005885132612896723867774342932781026690849313722759829781730519780229266147818826731369876134993877913022057931252926920646627375910102395175769188479443171104354862792815204008000276969689574368449549381444821953913238409324285795833191559311031777562853069534512859989472006073586990073733697884675554873870656076789931138500703504935001035401442060160966112084698044339921923162753850888149092052017315025459951441341878947469382313278771052800832605868395131504890948658481292696302780974343666024284458085394119548576213882123739313098105886009590971765642354839672784570669607368068112451897847538442979175670394136009601274246652549299300095827126189890653418365133374417182736221601559379288530449475222397029600670604081010202131821290262122448695298120156092045747346313703409096008582852440235900065938018721168188954943054038018084695350324105871969949994521711622003578563494141831410750664462794920371704768790203209797926002496158650258136189885879913061503609899929194533395269905706195377168471428854968655594281113839295819541940564371037111377104577197717698110958356305320269845886057833541288731873684156226706111021279812505449852073242774820358907623178851308955111000474730521998978053618251463887382939157860016014341562917643749845816766025664019613945397766588371594364921861451275556105361724746834805356260282961720007484204075583354428357844563280882772027655497098598918837369555539356322770439706734267692338276107237947060619609548744012758768432891202991234585615073869365841467092899866286654394260909128868829126754946667176191039238020993756512355017794604034168374533787629220128551351559149008636758273111395298649913125535117401809113164912322872114157427726932567264922542757444077389643360410903182867215409899495572079309455251217839449157418764943362891167450067646555684613452215633035856587327913034763687308880845012959692185687305639933552260525961809005165273207961543237085190376545684854475190682278543585906028201095213768755755654622294814885399806378382534540570811505046593053767552405412709696464686756122591005304240646009512574622262131177384687096995749407893147531101650410380980064108572738292019053152441400036581794998427798112306359879897345713007468417489262632798886534452705729207711099365930576640129704805655802528561259178674587246108238018078850490302250811948483043068155099891415239187327775152784797965868503297232636492128017884438138955854878725138491482550386215068177352250334120706999611585271104934799986652785743463712017773621282631376736793001048091221352613695957921400631106856735975290217030722558583783951905621952755219237091068649252836374377187466858662833164445132444726533108702685423319532157029945257989114719458360939738149763858523635021655564995392180958611483193163690211678961840398464293383385666756799660194687319093569126052410562715082701994312987642685252897742141500155428565162248894737969428828102091706226101485019823087648058955978060832244554309178178982989689357071292857582043241305872839796780844389728289886526681633295364024646791975340422043230254097840174318968056162595312048087114781320034805647370461450819128515943606921458773183186204321671085255970837587373469259447081270678996289487972328421125908122015567585080017447576986684760936943300827703708041376198027622263359704740774514277122775886357492371562326533458423849736910942208477653856938184721783808633926710837080769930048074487833728986647038777571380586650506421177692944417267345653141756822590146695992746516749028905261211622831843124151870645514838097195512454472209048572494209094380627526395572603938659328750296559432248621090389117637871164048347680397883255337035584012105526949130601895101895871367335193377839287568721240108398967055866116005770612113685185336750068936901399680431191428638024330557846787268431033707851360788111335637108515713218241178645943859296483269129715066339485259217171677674542012266036953142771834304946059397500754653510771091789456057796589676984598242960106617476030534625778172115716824609336398614119563875862669100163120662689887052539790605193242191535849714226831523835294615523270170543382853306427662959263272418683418851429173474571678924697494043322189712447790750564132413843097454732871430807306791773670607475511573285144703648553034330683636036962548124321115753868142057249944355919360051955958016879039263678967780075057206462943777338892006103043257413282067395928281805280312321094059727470830542639166854777654920116528124491397361296053575964021941861307367055194196333065241541706994738083063805498024487683206762326695042957141796370736766575805797380909189708232379208300749399023476016325905944049764817553883947387158692477235481654689886815223304024977305225971148225382391055076958386655303950324079306708825432009614493645807118872651234209210365252468933108262307508999497291710737486656966265730760215560638561977861708464253500015184342091268776763153149968341214010898547030971371852707695637123520764523868734905929748326500696946793871338375790210403160817415693492025709319939090559281655641586033475156449615149938731949391217210626658335720634435519667213910356084571655080500159129918301212050136465200568023505807172844641800469759294996175391119166420469433080291987798241302892548766838276681769556589833147232996928085271555953994233818276295730981128260643236334642955370016417934137756122839728442241330617708337113112676219233729730135025027542060747681011569381776738481898502391934866669088940874250101742786574437497057874274227888771228859352017410449921972880832817652174140250348099283499530674803970068780006516392711189979610086483535251627579633832764303193655621123793229038562423591854742930277216644023604962163060326389869068829868934476013983255534987254007486883973845175563861422656215396250927274816517820567442563944284428410080848851711232855708895235855313681754763438650581878193768247547844744361156759266390889192021344840254751114011670717825902220258062909081966158575387587019180315311805209010914933731043548076771541582555011475029924882432459629739140425191074559111674722608392073110083439672662859000292228492202170566885409337362349928715619249304764190492705105510456549712663329063695114069343054483123771770406296373175977713799501024141939437833614768509559344000293200810759081214880594883615751050713585493817369430138091600360554895073785889180010504147435787580738615681225003068474621370099132629981582833014230806187744257872461202198297045550710980480678010990949146344541227083995649591395365760041165128140590109422091042361784999331576688399575651129933927002078935515089170095315879180837462246142248548481754468269501680433811093555730157178784238966220705769680873383846849666487136258186630931183539896640192734044495618270512755758514251520804847600742411904227064285655766850679730731782960388750504543364640271692753865681251679250478652275320166369375924950216436347896598480945252482694596612664369878039831170251660450048267840092741415846688431805251898909688724375638514734307300156395123959131508896904428446309067816577524247609806570548243908756960272612625612686020839670698876227817799998596605563371672625451502313292036867833846972888378915702977705457806940774526971657146872158859864515361815876900288396135278235241313516977261263473225517881378235576939214220322346471908866759306858858076479456292943950190292188236652588896285136018932226629778905888981210999379038967214285162927582645328924039469336121628290995323170916281036791990034009004462564300343140365688475220994083604569474580845771364581554572129597303979734807900109793417245117205930006168541553407685163307825510936378769681892391048970699966650026444500771690559534291746595395510504261305089896487395029653327521899616917887305352516752050680026755906862400954098137066329629303916655878871730277107554387932569405318889790685794610730258300313618302265223151494857698387933237545047950057619383527889591155261118285654999800292471816320022657291415864473544269083257794549347275344276420453866969357762541146502002239477627168948097439492259199978104146078659866081557602968669406960778193597988566411122553908742855896607107586953172562497301466371713009118648019254316088821779994813504462770248964704285781483762069726271956302785991155149736276773828743401524481964358697551393232870183414173731948739901833068425632807707195472956574693518100093274600716969963423775155532281902046957346879884310331912139082860166403444694079518604221969868051145552870587427821288106552411950856572290201566742145221372902273650456317323673922147873612364690449222089408421438492424140013430250717492476934919017426419414321689772239485712206800212911534272936513735678295817294137638705435263382779252908227455977762491865839927243605697050293023316928727487890861254157487594181150770298029821318477804033609113722855228752576174413733024035537794144699036993977958495020644623975408825604558334267446028614520235630085771148674817240341433330863111456651717987493834625730326401349526504279908082410457587132775341595962062180096653763520180923505465366678769071993582732225491746013928573786776356257225828284278700721959152922053576417086055516912697883626703861623602925819983030571081747921486146265382771723454086158673559887982010877034225885970201199836467486432491876672428195595330705559198089384080505278405302294312309603796140300406216780763420915420005142000947678908602978795107773854693507189741421275038662198457836797684834391501634352140047725598565904521424599002673657789886879190601757715139118430494614875709110344103134459126383004208374281980032874128505298419991515438452870198051817801025653886005523319899454645893984394060590069383891026548913590841942312430860564468892952188617348216271972982955788737020773846082344320653746233335786732748110625978056858438780218834765323376422065351979791193012888300221754719343974852024781728802091142535557823175379470110947582031853957868702444540905237928047623687851321617979718963590868938647145765030225296208274673653516798603001831920499552861415631398686453664850743399647880716217346671027682981981279066273879686194565684985927323214415642519022314836442022122598511816542044072412130562410361275273078023457150234390738521845305687214482959337055763493820566540421359954721139165614548999553418151361500726536916013124376736147067159663110153818241152070820687710263290800763506457184515645224799096133685533044128699384835198863679071713488375200977069119965651790438740074231917171598770163018676623033393651062338074133309461755683556762559937581659277840875554790180391125961452447585691157610138358448896768513257215348419836391264938048392175711174238034641321493114583827473700477502366065624847219052324010878626265033492356265325890922829436908148204299379540235638755192714361727185318112198439219756391575695986708528243176828114774779405525983183567866528277511956192404425964802935141156483729191511257966449168166863547294912668467686851722975178948793207599293254110937848932753805586731358803979301350708880185634453121211784250642875657502349268322896409259506859294780000444092238211517520439422614314493823801165279165528921765487847303726661134633529521882888049978751505259291804382581176698625853857294666383289886916757985136696714933694599598448853419372781858399138272160165144737056310548031100975804718987713718421269071738608507283298644177272399256329304989162261134554665301137895132478505398516760543389171565626930842868477882829703553643215461861906000722937506591879342267406553818717456267649984397820266552154215238093659666722852441438122931914804581627846082933755298923986030787076513836181020236268896909412774361183424399917218494433518405385177846835287662347709710711708299380057683082501088058781769056442704601436546138077815310605488710920096450772500739984861182405929732882166558431329285323650590965171705133867274192361521205616269974939954516018554265989949298591469440367638702193415894142394096941991494237454860085027702214400278527777410260937661277872520409784274524079448351670465751094645533746720926914936360403180783015019039308830228822711134599890201117910718094184634827229944916766418779700998206684693308372185446940684581244012657314936886766287467417650884674760738359808608662025788160444148704729813323028823578657586066899283312196549713541114035291626745411783423597388663582041421181078323462658814297546443510945180857243460649377186689427907520797097420114293294595948208777223427455833233650477462050626704940793848058088346402777431030461723693834482348095857510729081322842739851941255262243453144782991869164546713259519321727605030339553970141244745881865175663470793986910880500837160267264727295542525781024662815555323412324910888068987105051039008062818056024007678692393490634989839823206673645821656972292367224807769861674706311939663078598255434679997096978126957178550338388852781856307338619637031239055960927797176958682743287551404688145895119565622562348450175579959917593575161401446410652322550324511859039142219549736049641325026474084699783282350879035845239891272914646344199645813086640190863992893819966120681098967156654805148270893042531826849897701868708262575932338809944671525833943030579402882102709939626051908318507213458862382812062697460087018717325159954470529097861390333920013996323479358429603867901088725529574911956936945794302931553922264095249849635834892624326013185177863757136967349457504015686440280743418519980877640056131590949705578267603526927412689746306189061159457398558709277008440487592631546375326720393461076516628010857334337909971873302556327438334781261121001738569569465376495753661144329564309005102161768846154596995047333068030100444864407024180517917422481238144925445677910913238972599384145680470980973762962380984403155275600441026575582867767144974021042233256545503569958386533217314603303671914286663169642418611306466575183643767531527407861352556338015063847025524671237719666683729139173724447606563914713316463675989461704731829582227494391864185685887196807765412108625872746193798675882091656110910043180533643261758983132820264109084679102722159929184077947351674460192429889432534881454722064986229572527348599924342777755970107495986032603807416402533183197312283227675356464085473275431552516836970906613585560073160439959565329195975281383429202827441780627349183806243522423829411621825349049809510385877373617498402403591790995788349922772157950840127684209616108939158535250194241304665041477658107282728931086264580929188656469659849348086075556592532359149269410184738043923592653300359012944119427474673177680240746317774709063369959358029940843935713451745088156083274079034979103129084190849150839444685111499716954187157672205257371289267011458586852613308767683038365162662894338021396447986765316851960374527922881402736185182701357111024574834667751153480703598635461793711428743080974558750161267185193857577169457386112195395523807655571270844010400839405899082826094155378418602544709446758331268083952062470038749769780298693948415135367246475180841398890405577710203565417921580221465302257928578185061950149555392125455721635713208068328439103375611323593137759812465798079656270455361064631919586261075795131318492449336479934572041206500276107955677964184161115341006738521643316024164615763195205170216259687621543774651022590711792627982123561928794822458182237970907786088692266874579467136681894234502628043268469632842921557567265654450318582469178601739484116701963003152950548528876130297398896246600862643231228557546753500365620770709894854252343097221596301318467633270572641322064272952930912688252214745043114423251240396035764490415555971451317234234648263747524082677781413165253094713001206247528187395028225252102379664575971649260384247301911533181198944273061413648689514720977427003928447550888119376599610696889562055623982635871573196217568273349042006202513594923460867517383389148848855460658406736035436602858881436682500978151595531210713029413926047436871382752751054141577327977278069335143264641212988192861032838754539571593682852945645243170665031444945242938683104132902770553036020616226352331051226405432441654126884894545548267223838231069174171099700399792085629915374668500404147376745243433250186915195357851894415422557923645352557401287083360884985520388874023737773471460349263415123599688500990167973346466097293544937249549946208920632528233979037264278067101896650669689347480492657075628606587022003268662717873545912306733008365235939714978993695567548692194141464788177992283807755314751343566857719600455612603299044444426839963683195803135781585727419490503375673062117234840932514489292648779852322108545974239354657510631984024772806533365064629550392886415271674192651666049602303583107605325281022069277348097281066501978813510292937268632615222694175294320007007953190866375499302549976669431209972544663872082106638856595640207034478774428758996564595746287687341338529635042083688212220977486475912718465728281444356496698462292232229241172346467963883728875304216784488495256083077193649411881960272566490218914824764156641416498842325910530116667058101069757393628521315359674926883413221790792633769017615381900576021240513103390746688261772893418054269042776183138292940965726307617121080722025630863568425900409948641059647688052031771137485335910721736014029997870110950763777466659117121514583648305565067498561284347900983276900160637750679532615138281270004197755783986468521769731713519551645580828119023064867600786479201186076802409278058991263658676312213715428975236707192623755917981233453205217120778265849366385575435099792356623002989333279925388172692279653551929935646608401814049724924593098581394731239791395348338776335147069185184074434886215071436255930454654533856930385944303263049368550602149762994210309815882999783553037644297723181554907381319382090294163268676773815706252037557083016553166670335078191536316333488154914208043006162195110308205988971342834946588198469251102095196160343527500185017264356402419669380990936585154014229058179131956357562433086475457012260250654912485969914549830755060152995069908680342704316843684227503953307139349152558150332887529035524513859717504668407534517076246119706546664477603698434875782093112422308701899699586746702445562545108815269653176442567104690876607723401268322523009230813735854625086947306935362724591720448442788910456967218006892808176662828147132308932153720080623739980433063662699448429553506828647096758364202338077287683082855976568689754996639796758108918447475720008527419396349467664207707303348994040654651356599789995793826586538441631425214236198910289350174557104566837957520755119235598643139683793751906123747786442009943403967581002089954572150899861344818057185938686945866386298569953381907751442560772764515336029467390088634234707692205982317230031750550133592458853005679027699640751782707600910426998492401296594061901320206245152105251540768156739688752442072993003226975854688769646653550001848747482021723924335004528494136136475539747258058931709310323492612275239914547635348269836006400781714974320871127651740011546338662922703762310228621757745565214917940601539755178817481921304603361880706219013936828250811371884215257461773458278908711103514852593048671411562670621661860669447635415449986881059626195194680598460120361500851379788465761730296086001912649255134722511832056635665441538774393075143503842969890530908180858596372823084448406350341414056790884527700023518920145779946154314977838950761645632256879720571959943579483478388810101652711912625178505008918964495532007837145586444820957818125011908707142163986094268964168230550082267720123816389774681110598576651104699626135146861702866722411608024730888432695691165011403991059583488959648368799257604607346309403341374355934123820545349237486312597469415025854921519442028957496632427836297584591559312954107098367203833873952685979830132795406729853553785410474378726386580090765515526209175115098070685711951616583131131204992200959586554082924527140150708089511602695961219868898643253402300590252767821269462329115995474280532197098216601735281514213809495588747004893719183177321126850033414970109550492917112881936000317248034947740285231754815191564905830974862207737514470717304029353840547540079235101213923542103027302283962591275608913117951382334733386609527578139993248491580273687750046035889983615480859326845163777181102192540312606310403511644849042914275854840523850165633439994764280170407611028309070777119527961062833228740393240538176045064653519033130246056727411486362501428655786508726927283725058492222340814919975417111785566986399583434718684421997420756490824038078947738086103377739425562816190098320450016710540634779705116393115551633798722444000867067717421889694760360843106369420474872669329317556366229019927907887966356103800851981046220837577860139225806978886851653925763141520470370785348344909619974342819730083762247723904270618458078371083599158916395500074349505993376883416049418764766101169583729313508707078685801856125658648975014131057966071873455902244981204225623193930659326602309495653992689694361041790796194295744385212905881459076422553675436981216778815863379484778610265821109917798290385697595402638868046030427233091329412435986224280332093468639791589277698698635128523866831712188824680751560709680480670420565217617228074037104793617598818209269993499005941367728345382499046661911616983788863632763878929617576723767300724107243494225561980013114154216930078977474207222660052555771860175728330560532615052537362016747668635041435297679554725074255757229265999133981984123255617425279639742055411432107559760672107999455480737615334240394290594516105344433385017050358238909174594179521562324753958927755081149717898855365230264757847230126430918175453682170676165992757992627229543269375387529881827858124935614904870921398197128683366064963893119990249667298974147066101905375713893982453183549366949812035563613062376845479290969558941634112166882559700532118327922108014250087467264288606042362832475798693233199793715055557823402158510813580553375146399919904638898964773659040489510293578030381484461922824082282081685792334615465066682195239578049944875069894488305336548307732481246311362077494478432863723909510809156625598349939636719600929368857628116450546941617590074408124037204879098119273107540234767669438110614692072383727290796435367500153040006401972806940911924751478199077762560821839449506665362293112521862953910107795132361322562825097086287923135274346238650302553112102747443626830738403136975322751140255524570696981782172507512403451270128578440305008446971413601146356812856302034477360431946640205589000178335520535666993341472610616216379595619785664744329477504051961132492985163560697694909223200588009972187510493838332570557625888919539138863122535889590428591014823269518992398742235680815976931550225571026872519279113802980461770709834743782463817725816137257483277413287604868343503727903678240630717270729658028546101358288969092122547755383918078458758369568771246133408114910081492659957140531449707025985049013316729364875769627932657322252263606878827871057664182202396611986426610773967885648803019995813678181369265707759304171739437003850658517147075441163871486416713738305958317279327576484035034316081570343955774535593400894038184312032401370053560332685599478148997601362278589974597107168308445286959036945048751152279932104668480486145284330726904844359999788248996084052807711169652478288702502044349830199702792685996749417524380583370052583688807831939063068739752988844501940429110250678511205760765202199514314177711785379342259382135301321189274338363265297803591134805885636236550786648973230589832195950702652987119450087275041298234529845983597046909195445511842759310954002359394562616833105935894740704616695315629950661159703692567701868670073100979441666014008009206215420121182180962327218880718437867497750031464904470301104749043859009982022145693150958328942234089826595595522341626703293389762641460177041732224388495722067584937144288280025669935750107664163957276224735984902203793542067797105520350660018636158243232653503092414713614118205654402891527076068401441949672084716982976400476128526920313150552886153365542575524257515722736041053085725981734976086296277821402357267126792531739584719203726672074011340212666993884285256728689636734748471873621647081090367557945411655306790512643087979120903196373066896385172169775375123471696441119141036235474335873436685706035915954563845325441029990490919295909858605509739342224773308459590614596081793940838335815951724799812322684495897225484282372737508280271699501539999514585509822665907320163820020883917375048872659317515746443563404622986342644829918576866089732846481562300787577042705105824242377106477112553939244062513404830048569757047324054213342986151613293540827193146636611517951895531459236599923194606393443830915434447499217502063868225855478880439312205646836802051450081130326809678964110888388482663044725331882183314826468749936748789308019397202404746106941813908832019589787092732103636973546271927773673781036410360884821319918493068475043754011257354684743989316904185833557448978661834239624149348531593828021770592381013693309669134339825818377633712424519339109086882850327933931802264260220109837615754432380266736610548059434691871824746778133290118391762439636187119737801341128622038914246927935531978471397403084782801564835085523591083438434587308313870591807632531637214787229656260935805007985251944953839803614816730362762529852415379277664832105720109092639502454507640676768068440354543507362162954310613534132496665978277136083177654577980637263158827912715210536204789902919928598240115659151232249557146775731586104544419799177189619921247660454521187223404718555901331017690280361372458489734805102284799413978463368002239762609063888561934312443205154683496158052429288511667072976597552500890970261545700016559374035852659801370708153053423582441198446501312343070431348057192706732194971184205068385801698603967337028631054491922362217803242381998240528662706943564842436252675521098469303204862168720622647866319386368213806003092474844637020253184914126899963487954234150266543768374409466845011763524972831341892213787076334354078016824225764505208138011652784460711167821554195162457798011606046929660322499078388056889241393598478075456256576229613887992067853270492494095735077962375469710746351609556218693467848378330818139724474418183230118085234081989349829552101855415235090507150157464637834346521711218476592090478089616025321829749944796874275344718418451691273921484356333016267813745631805585023935893871832379278448481985320191745733016151226901179152640368213789031006351379532054876977017621537956382991425541224993276067892506338268617662926836536564550966102836382150120383007267874797316653098733680280883930953519443852237244789174054592057701937719188659129631836215701876585629474190488339527104057595123406492297820921484380102312246996290912596201354580578084711968162428396096637518762587122749757342230062857303991929268170718604951135804125468859952530307326919144768335355566321292919582558625042544761641605748398500627398323286286102877373365883832135479260042738790130603567387452218013785149974208128806791140452108950271480136685142822221797845926644395030974258561105220954200790073893925068824538406940218667943235755459171251423028469513842984183468002606527159753984894490633281080842474092904382886413038552731569067599650844034345339956639858822299431144724038750167281397611558808458175686504816959294686514181589168446990198533370028695413200693072544641806864797539602836470840330611163064347883444198809768298735934987342087267504611576509651270924300703634981376186313456980169132943451665822059667954432365768693109899642954618667353592340296052982211578496768940418576515254168461014120426239710890685525129271726754911871822639663155879515821625958966076103922460053659013956653712104615354061564158530916925738530087214557522078561749847024903528055741199189148886679627474881818817996299603392464137224735631964417390596454099139318832375798133701270764402703948797120066756770378642723242670082782785510209482874398423176059040972631736105787384340981207866842777354854133566261778093604855470492779559547013335096015176055061503004283617539323414542169458991291348724177588460765392606873365762691883898986653766613588203764177875783947875118824449011417905478066860693376745616779093843091639411486622947215766208364680274201083760974066861964111013068809902915048923168369387571690435649680031054441294451999610850264273766615250887418066714270691739461417395734011518712642135207060535961233001877261470178680812622911237182646138387234772337717996036446667653105294300481466553131052636479427303602011553562784190725711336976493260038802070944889267612422017968450123187058265033353976317974098619134346100993336480956020059237129280163938860395029336334389801125817514645674548680578412911513987445577840984983968388373117617837709658660657699420588368044757618596079122843278625141881724514004255053444632661540148417973784290645228035328440294040071131243542394088684053928342784771256948968061055215823477972549095900043680252391504711383532101415820391878248903348788630672810854578515668964634894786916098148971021479557489181583922580692957935406949229705290368452494732656488894495961082515068125676611695272966661009846271541629411292018712782783092123255365757439311915004626884043822833758991991160234483651132994842740562243899154552493402734128488941900575420611595102294253270992319959809704287178782287456680695418056646314867023170981852810793578878433988277994120054920436240575767696408519523508876801600416860214270125961534032718152708893966271809921086225389524661177011099962150677041300984158987083758272407357986145485303050311807216846619933622356898376650608296270467129079962889878656023666357254029235078042406917712665463359855183064963075255129071557335189758102660674242059911335840393033128069708760528506977591518156897392081228432556467403751596339471310945476453966627598790723849810145112034161811739431200264867129220718777820311473685063696421185332437084827059726351054381106115408635087924243910516114811082558406479406863072522945897769072257958807944389704591442874340113392341044796180931751672176828445022778762144913754629794867275546996301875436165825230843108842414354226639373268936943233599182858455736016846052254847768401996067718584850045796062927341517114866425292452053628499855331432149522355094216296571200190271218996872005217425308077036393453160553121927752286101450545661013041941147757630019435889615320102532553157742259559001481336930094029036432274987662924844106834726102777457291486420796405076358373432240980801161945168530751958224393330726661674926846235341464567929307661270430531944689826872478986789018657041488320917876860679918449921177387813424194369399987100073204100460177547625012747885005084185489655984194175059364189711646383911443403243892027740844652348969935703292960949084928083410693722262539180070639970673518233102004919827239419874873575102819395678504255831216342998574467502419911074908801658580375536046079959396986544367633066137346109461812019183628314347840006309650017327440095144912226928212688156079553175208426979916873684742954940066964313537993066144391831723732794558072414106336351090274468173900400081848601688202657692038089016646278525771258796558906155721946412262979885898566853159946757095394343591003092839799431530474435973883392565489126042848395879002051716919768078296342386652486511909766749466058913454441160411003878761710135270939174991577456988011894762912386251814724224916425378133546545389597613999877601527336500722929347067709651218987156082461369002049827290765793326716168937558540561239276386486767346001428639933102019229898253193615309516996669888018416434913563721141319472717883741078746076158287947294279619034320336748208949596022159061751277840299196309558544525285259431482171739327881268389878092773638335370307383577927592162563282865196051838198182495538100028986911248732102506920053207270295510611895017704088803532928865684075397934746703307828329477053768559246006715944114311816388493099958087060094789181008400141534334407244963193871771712008121381388403434223525615206492691313768513442574211155878641876658809069612361919331712877683104333851190593145277950678441481877210224427852326815259614860564474043906610333977823550356890011010469676832584938914512259288598601233089917483002446970769292638600732164790268189021898609728710130297744633257524439273248853410523057760861171597708331078668100242593573640355963706046189899222061821366248736491845300837670308293185631692221289920158115228674918221344543390527232108842177817167245879532187764881009605514445762504816831375966991349637785839278563432054459444978289437577995104600572181361494096230767592083488047755033709558056067357236889760986095585310456323639574335232253271360342532124143131642609769400642180557375430129283583770928316341840775470380158693373625697033521503337346258271877268313748099175571506144632453070549620992843277662009576309013036771811675705926607618310441478882897073006561253671334309431842802277612784984117612332852001597955067571027356382391339860090798803983929556033920199907946049064877330923129501316794530104112296380218708760209611325825935667046584481654129243388214058386187380551492933254073315783164858466656161864086035717895189304459425002740621494967807233929703565263856930143431649385209614730388443881637241168833542641862116132340307931163943334557709886308243636895754335986232606080858838526197041452018752810383618045414322507898814069177136753587569704326688440404196013870889392713931972518097860952357871753773496240012929414844338534434354051162189128544901782201376126945444367137114375635978786747936841774309715879209179207037931988485204377093345705819376486468217995841459904769907826918609423188768495885751500488937890581360479683618132176445900921171140465259855443740601612718747995505033007281382467681534946709562835315469478448854540602583578224494789653268904251309048872759617875561446677673379114991616539971269015705635415604234953537931548354902240945796754384001432170196593677073584063313296454330987576594019304936388717195630794782336593046362293101241099089145975717829404847993973375691188174236747892013684678289355503618743065557340061470981828962851357716188169361887807067470108770409489054653485516671047773764973975632469533306665325799073868953628155046928718621741431501943477145122604200851842350292638736891430091624232751034758557373142900169408181946198974495560961184896847231735485877977203721278453390236434866681762308225022224570840396044267650357241012260232981689693474088782288819885241200539832574327563399539365242318228370595089561623279487025683336550829289132657507169225081903749551500488838295984779345700871802095130885581388671520068715985103643323451904757993268543219446853781470561148126028561477177828984442420060633272899054377693004625627032274886641244837355166120637901511138633374031021014800576489173768682722173858737210809956144029433205193346319828977245379129500477022164168405254677052190251874877407691507824202813578512869011498992143218399678141865173017694559891105022314785868498634797912802835332066183110525049639741416782868956187394907329549339298277586470245725039700477435163644361958233421147486512540551732770014554316088785353396586951051944724249844263803315606819762774203307078470461896074108745893015871260524353247922732760991641132898043982348304930172692732969045939242269167898299849469183073729300389359169995531687443540376939746773255660824208293988572992106752743841864857583854424176396002814331846282501012684655123207399643989471962529016526444327903743650588856564568855841510315131390891518615842685834508567216207149030681178300985267293399259389699580381785151698609660292263398220466783252869697244589282522740759856240059308642391811987899226191269774627080313797501992545832998307415294855391657653329415570454979313328796193257233375072269666279168031788271326522682412335209887234874704865835801302327848880711866425560641042605893231435015849361279897266959676405243744552301202735414079439554132208995637070470262150840144400722400828395787998417351492457930436275595031689804314395656930654460144298733256421361337956770284543644070152246150826382820179986103144126674757879822415502256284008677069629461520693942698801655018591195238355003623032009128122600023897187497523821045931463052107408299106441096476093573339942503977281012114359964286390005113922869691486822064165515949660266326363013941816113982448909329113386575811861958890205759545009225391000831335370404931442283055904650137777974821452428299707911004363557953050883619904627387070133071802101089767283649399807984129547615710650512962592351242594763110045015616913468491189336071264771962345445225205699393643061589279183631314321054686368919997551852555061282443338492598401346544419531268006637187033715417000188301386692346096895233552693261133057884338142108887271358265989170922867030434417839475183003253933140977587100097261047029055594045402142553596379646622659852217742958425676836861872640261169193297901021817784639345007565354905418130569979627161125852742195969411759708420935011460980131177206136085069839886869574204117004223919180925630502391175527574585397224863562795561206594157832990000196255347573621994683310389048155402020801981311395978709269112271201415347550218877182538896998280453859861862371793081074059011652890204756078952320849793453035837297119277013723711758918429623148798963811722660630642758370921330147791763994773868201365286965403691665882104139423348412677905481490286969759067325515243034084904530386479416000611658085959350842004571041097189549668777289173958097220340470752606767168820685410748386477958596196818722311061356423428880377637269924390112695955052118422186183267283002553668753128129403549442040243143597862749819222867263401570865290729224204713593079906731086554107148001326402154427475134203464011414964983187774297186895374780890228885734159005171271021363562193067441352227860708469261687187917036415172268849305842750292434242109544062791838845982988110979284942888314498985374283959041769262864374544232817860865111279034295558695633314307444153717320236116023011738491973212208237087432000938564885368970810551165953276899732669183885893436200694129027767971679102686483070163935339760119801013780721726817633874189744601839152300927966146523591107139410674472783780288520719378304565724654769702917502719565832185532029031933324703874706527741646618225066490349453980825693826873458563780965550734193756724933297105162648487041383888759477837482160452641458388721362399324227572186738829500545839541986816827652385529027353304178690847639100885169010034404259441041714353507624949743016321950489797870817558083538210453953020647207159433178009456926085775836035005231036556276348824790854386854169701737583067675419037014611193760868232187329162168951628432478517536112476204684169185847407032102096800902574204042723486956597078389981039683007721067386950649503297659037336151581028780359130269820451552040930510498329995366517342953155648520584069501061975277193921024956222745972043909339455479294103266831125477679815184385852459096800975475540248764579728433615953553646241408621160966781983470028997237883956855606107424478676651705031761783128953816327648095577344627041494625572936808544907909617856279562956241405200158395786031665526806352935443511707590958338626033103169539805629957556050800914071324351697334191335995602527826917351923224335117446493840212051300321672813930369081591693270240783471494937237988732407287548190236983963703155793213755638065296720900577532314623311708286657250362527316204568066204491502450806563550009140240060681613658496762569690585069674906482744372711860605133149835017409557140741400144673981919284271770231656781920042574829460888157731266376024505438941880680410469728677932271141801736491721854988709112782194226510763043281465453021916254571787243989864203652380570448516590282315417054721920831516228242810247962095318171626190798276961970297037640726787082444735973897991556823401055860219759007963869037655448267594262676585558255801650512687678255238138575273032244833971117118658449372288741848294240680398438771195892166787597468820215121139259379374850237485077346899470164157640574456066320520584081362606006911703826348252585720349767707701060240542159918802772501244584990594933916159748114573589761939233607120812802001435122212359452663915470656142104938552783358708114260391154190391143494581427360976674187940710953889811750794897607722561520092576854058355889764068555829067086429353192978232865823161584661373228731203604057609883319682484369329815818259458033833899130242428205640874689036416321866086460769843487599047176598717766433735336637545053790721567127254624371548784530872985542852723895715406807619371321240120039248844129752319210138101236191644256886516284235079724030787603200309329734965392088026006570639172678764199174985418024106605665870979553788156171103349310652390735437327905541716953720166385678665124742919889606688846452449442323981618633119115699023525453016151127227508862223120539561607331765024485095271507984444656487100938865814320127488284923557138499010918369308432952172419691040795552498770866152313685941112366468037766682321270182382179039460143883432748789014243359834208455512432253262095261103489741655892702140571525866090860718879371108046087171214760152340553747984851322721714746679674244294890864696308027032372635929719566080923294267662826553042795142366167525105565374732806734340433617574238077649812446005173162542143126217383330328377038360980687505220460093741578654679366060843054491041344800707270051810499503186341290353820680423187981622056266703061985805983294994584463333964660098169937825984868468371243039539693809740483000523519220760507108848484728685663741483049897545545633841612983654425507283053388862609096138709800253680578109637094237062029628818508586669996861595374915015763037034787440311192942359967527927731557761030892704475715653433122913952022888747241256878832029581011905349750634122238122153701303773827995819331928338840511179358083619228803024123762481207557938908220694059416063435499584609219467291175644008313089701576381190050150389749415456680874141903914166523714059096153251515895307000379780637141025043890090712245743199078533719533117586302612889337076774178865227494555059093559042565310173094882874617711418029351773549232142306551814730282693670305844816155226415457929580301347430103820347661420602952643390906891486687160888276309245849758178222469165751654264281840957343379635316260753896529305173335640996871698355590106949826505885359033392827386251906548730592867470999665164829774513035820518161138828666993995588070475185273283490076188424408811871175438035799134816497866743070637454610053691490284605692006339513751233311428585281303539777799256240949632303710864132756947697939227775837666003465394372665207940009781802332400289215668678817711635299995330464458693202960295154723242348611255908806299222092557427412247266196266584324362728901137018211125740543890357167005456205248279488706545782667422172160208265456214460115855904850979482586983805548578797803938937765384717091304457884589572282858484873956265788879650787712009096126735408497968432840238325358356004784662743400899976076976476549161257902609571512273565852964196393855375220516807140657268015703406656921785529799222276731049134753553669610401591705868479344955148901355421560914157125571540645923587502302767562457570945268473574691596678837749247364520350492924700083678349954189562537455710832965207129095773163629451392019040795306249463682224758423578941141750311516000023554343136539834260668666054634332813921792761352906395214794476106083245312798708635856754760490188333398133631323652639958983801892442462073697060786692912602226051540918539782432362651829544227423821239447524382794281949502427450752544002336721451201022283910323497018513974515937073893323505236206772115150119730521912660608376197996927484535890453435355593673920906443350505272496612125990783374480286740984728772006756094524025785217616205321664526015700902000558829323655127546223318674972656437976240194579471772962971920063240932543717727152097460220182003060305639501764292544662754335891985185009915351442022115635287228093130790701047518106071983194507751384294106751901130790831309310651732827969704111848013890526195189675137290184372375717845453605092424430289135897674947052502770649096189259726452190761125305944018362114233410839560456986217318728127293749041753046102524161709499907761528833151140924667928730110940717578990359783574418757874798934322692599156968431304675236989281606700423110485268629931708517649933832415769322678024399550074372608962178742925867048723873038150064838311042230265466866579632074389325693619709287043230116782219482298460211397122008848330256216942942701560695994438684051833574637479580864263646408612855750744415679765394571091573681474896407927053837050871049052516450748937260588862612941023811942327678775217814077916498905833243045505690249852770273988560339554534369592741339551209343161379053364716100049940158254168049045431793629190851862539401367392984794096391779276177041429923640365620959492271611037374839163635588946119049546961765338410674180671302641661330977144273686284962507739629564105269102224680275245612304158983490764487560397509605153231994229339446910419132765429100538300781699281197652565696633879574136372711527453744399775418861997896348036110262149032622344214213330039974640048153987107989298716211062659937737751851048906873208489501966407101870998689952143007194896956886668345726945029182372972816412865165632578848410244422396658899266616243906835005638175225715292491016211996635964611967281580318563920090323725067468838514761963306585965143748985460536283373487020238449113536591794494725993207191451682812980424729861576360617115501843338690773051627358649578875922727957374239324136905216484239526044759426888446255326050442738076485603086375648816518421793982679550567766783700160259581951222324853206571586542637839693458642067336240106830046944956308492064356407071264333222605598617358959940753553341925529164750154686118180558643024972541098102647690585193246072998030245531562580536361258171831128706115805481207295326419913757826239602286227293343966099753336130457155152515349762957892011346622024180490519275787047783968380903604293823349057020354750681570604610608556135465505605185736534618652680256376441872109532917150228394133241950347110674798132175730852704104601267107586212746603465135389670826334885945181409953135678811944408502560264536214496059534238543977684038499375522255912943437623094431698433522550638371367249645941661473767574064994004537872164698283137550224115579335274745405584142001410543250731363006961746059177874393128493882168235412484602733391865265215866200380475820381953179636555032161750240634410523090446560100476022777606337354498599984278753326802426135899432339979247809482967557773136267406184806716132700369893385310281544783348747847334256239213736331729109415645116568679696106955290329854310176974559616005404506904825775087984095544905846613024233288031943695326951176597033702664706783375947016051970724940131563660130498605860696943833590098622234720540294340573766537831781546314181023131453816691613590266491105040937040249870113665357082285497540280391999363319180884753577117624623811850342222883789413697499654262366765997505205419931746496242204217384826329337942156192399217877057829787556489911506116816838491827878403231167872690315554899455570324294331200814507124537467278104947869186907018402345651035738977436574306702167123922926507657608400231915571095599863434926801236150458808602104588298135984764428621991033565513164244986176329681266556079259308265072457861382021907636142302189020005240421108751100586234623456603204638396497206752726447418423903418595831951661987837360602905659922395970515340365827760739167969087152888638185399017999793322653506695702929245142557133745016432586800000097499780884677934331889086769380145361917415356660659578944275658829954407149630873095081183579460398723936275818633171847885848520647411194373718010998737168670587205279451065554910232869816919178309222496209227774149892900428667130961336493083306749294249288226831175761192311246692228317203558844943567936906715529741107401924013369411437703093298794338359386402576359246646832560188842500859097885222354790761553323312414217006476155366595862502448039125176135650066278211190486035347623750200276781202681207171081977558905920052958076100179572968701791577772012339036151807063727691396698662271311792734555289090961477650175212603048533793060477958676449685539952695027049615488478793083613747069136116578302786893728538541289540776743224975249652173062622502091991438195118980615015395049840844190830926542205207829409139653289064674456153093183500551842346968899083692960611456277390827710860732882464940345086677560961457178101412455215476369809793188139377850980021831723683407245202138991787389542857246526600230446695669363884544008254525206541830002325172140473718117478765190078216234796520613674190898943948873975223152120383978161127537082339438024682651230975025798399247431758593772585309774595400831257843425006494112157453272971573406873469690938369360081190980009182993524565565503043031769552648911324147726265092974903676086307427798544322797797211045654440537328579377593388242952954960246187498392122296041423475094578550445209139174583243963104477778673042255193748045534449573611708939364519228064991713585653090590613472722076626811422279716069962721146650317196404858551304563964898335381825620540182052816488630709521379760953383403497666019821450734197785898868356147163296804552890883076595530216946920296118620869955228870108147867152310890195750724652012510521755081943365969469039259390427190456600796490245332354909334594146077710365751374318984545294879148443708992145468220888796144057335089333074467515821168672291826286996919367561420893316208068887465220576068289006297515568945409080292056923499186782543270765538806536426398838472978825829167295873380949283048015761389312387081934476209614068894754001258916137354501835053861704375498299993661199112645078876114158416762743296116517184406920584893667091432321912519992824066485331591371467464618300972064250575189722270898551500200651219807139642073137183835866873990058759237454911702614041995761423824109535530702872413199489886041462344478290490502166934653103156409913576734820412040213548669316317143329474061913355034254282775072674809336072933348825403786837241617110183241400245431844064856164048156937424215304454887825585513675948926445054514633749100688529450003407443396747147286968256312487635220083812687523496814880899616650972087493088045239442271139307278016676518210494446707055953979296258804341594820407183244144824776063015656512660830335348463936495946648018623865090946459087889232701319768849358884803856760628987253430852722124372751261255861349907870715828995920594985730911809652235720123938192372450924035492307246126371648220280325426278656707048525299767895816652964871384004262494301418205258846824889096598825644167960361457235441968158111659526604618648061855023475377135287905500248141257060402024178191252769639806502404214848279874635235985360903378945153827082750315302580263951258309961048377884894357423422203584298348133554440857002417006253683768782230648474833569822164676121874086090913902959673208263199858560904003286472001565206505415521888908628635057611713383109144031685635703718588407925932765714090306223849897499228630975032445302876866149107291646582459914877070335020281358216742311510465145959987987368575270107348165673109899749623373627713729181664889001005621969799799797684060242793544564509928183220511441565320143898602867412672980818365655471665311117852737903809699617249673616190736305521802584829545915391235224568031133095028877526782727251696985438183242609901761843131344107457479971236677275287115842593102899272765970708749666122688450878145285511586614565849541019132825503382793605965417816930847753860082158494148959727636734595219757433009145304250477298340048624600435540971524577299657111187116380153362991671572177472634927506393437761835711765852927631804580958577160591807953669846656241656010725218960747365040057408879374730835737107231443462005012540700939101043815963771912875280488506205070597814890090973833324011415502699952553868161055869283757615108461326106178680752154045735180678360588189307589024344143116809313766480196446966510285585451283097192234227517385205375547188878558614015503531785623697017863169272648594056352736845626142511779962283412336288941015188371105518497521205516429849619222146742509497124344945926470514166122291042388508834093904623965364536638615864927194747977077567811382324917006063051032174734816033056086753648936641089181838602949431645987368535320695860415919881060639147534485090950740132808525674473695146650774707408512496411202961136816720189723990359130174142929238309826862692799426085491868128545877487450116839763681109912401512412751272201404954273295175321424489431173566336148432374367963306655453490929428075595887721615833027660608293462390228658125282911916450116875217159581195800494191530753121567553435375443795073215490053821628341460463682444792145513967931039592760745158585449376840203316480907794914249755143705913490273378426647042475157198837166337997139372267219903367190273932946547080186469053186316709033170329651791127414424589301779509840520580548041891836359222870671818596065264377810877506665778908959960755511045732363810687140668276874355963836090525253971709752066335676355186502231148766564343417140202351938533053312844922430713859496262655535887541257259049904764451824619239257660531632113149295005345027644722902421803419829543595349946300667031665712092234909831145153375622562467245006529932243066079867996821693981733863763777690688428038052406597950564752707349788234967302575525065931225589328099767885944671596972583759920832771164716271691971873506395022632127199973013900880708710079336563385933812314503833060927712941528210408209804775860461941245956559690036944204310594498357972664442603359852467182316982991517884225837951127551301862565042531396065645100409962242988984208388800411624670531331117939144640585293014659627408879494889426814793232996355947287945324969327117378035731505055706262758503988826747768855856395363176370690388872099507466611766777812548283408553100601741251650395874875566638650483575338135992414646615071866326557220621386483395876057297413159470033227347215417132926344653657969545879534127564429607355256851311655205637771635294485694375859510573645957638572347704147300810628725434306966507273286381187033446860578911588987855571952131370442758012392183304821241368553426533887089378810069991252349730217465770949366068032094152031196618743833567062473681058786132717696848710816472460719355007123846973533582222107252997427027445448098242013681943680151432114580528624105168135027041752551650429633913619171313687792132731501435605729607712476885761096744374213162019884154586858711608216777435891413792882964903751141245967545474741037424049738894471929044672970785958106635547673716607670290152573329342430480432203815139357169450401994650050547885860075873150291580592775926006712893132481889017632062693792928929328816990863837652237087321203891329254796387335007692410892453112851678531724333210363912298025316468963745106632748741796713433525871844979321375166277795357152455054357151993909799957522059300911967701018451306182065378763806014939558107068875195832656509624109345204450319364437532226777576661815512880309932624796270120851287029625344921858969335603168012284743377451088416922934610658404546368173487138704377308904927942952266254360673802584626307086879431854947588204954523050189466807456233014234109453200845229389950011452760317789704089174793310407115491024496700580560396591889488980540361632216783125823317611864436536515986334264997652707007432904136578874695065480063199251391411392265317812588593883525098039276232774046795332355061459261403996847712872328708115829960342945256837054543564250008155231940119816850458281252548935780058672433995361351178902583794303476816348152484281059139281993366253246636227414160034042729017031456292991398573759291777349085401828759803335158603039840158815273433353130659800146987287590813595715688449547075912423351351465841043980548193624114208875216406835752841952335991750681213351077334884687299128886590441507582361683592285894662442867163975497432632988156009988663753900892421527944685407368908396864854865599539248723658104720250545645097778087464538534235079093649289179281259185205739041201080165787376111668313287239804277576085723046236794834594831341730934482278379018022229721103569846237680079375656094029160183823865305716832461709297571136711652154140502471892623251295930188857161479385828272561216715249662219179822945797637600440707776683204622599417439492344120679760125173069436020793862118009432806004125639598636368107775383516674156552997094131147749065614677870736982476769271529781015612672474895471017005479404093398883451284533864095093559939112774205870812165385571807706288339855466295403566608635547369900455642271543243425850093506999554246436395487185359766156947770766940605957002047897293845499500298359468369432252403814879213471632529739786216146896680764744598753291405630702960544814200475140013400993822948534866863238465031891710996808834973645410118696983106600267546154797239727987274030531308263491721804965678058291693175745054770347618154681299975099249397409852131872060003335831783581411296725545517647341814048663869726993810333490741868144468383819221053372665534292508675015944947822414630433592628906827583754027708634888113236481078832583831036691684094613741894209256106906445882329741818897616084097374905328132635579620308546354870184492458245487041881618445042839233734024352621455521792703425807487760183823623168265718449305648313308597454949523133987339699942642668148988195309809800326455682260358820179497763206254639296481916455315092067184661864591143382069936354109684688512515437906276940143250166110010318392873940595018349114746311651657611950123835181495133880975366551319117133199971326349832633985335838998848723657967447205648581143381206319334387203168657464947784848956127033542029730962467056112698289499897798647946115953560694653411383209175481099905109072554559383179313580561595083696312561998877285386408400111639207288838738947369879911979275890279539846021836431304209661230448520493784337064849316140927040117148119362920590541352433464487166895124885376919782674614579589049103290460165143350640426701964345090175915836960322751813366672115547599779255257006432559038952826574051195713015091743866395255049177806215349287944750311465792796895773867637680735290576747630623439974878782000685773582550913535490682503708579218958381398042288716084486264598434070302774073806074654151076224532616391614983940220202971529928807717382864115597362099770099857298370197779022565333053347880669629235481762416136203310822709903674688682125520762403695914188611883272362371088474916663794152895012700396727421132227096388673845966317507991236280568492054701793389246441313951278338887765546054342617689550123730560558722085820542825250516441732174410891192768183360081228285546629169798633037765511839877975185721914642536575390485319105253034624977650116942470606305359549358044976648299986625352134805571456710678397170521875799331605033012723245525940578857111379508954170548498632606344518582474245509970622098412425900135693583665735519457287279634770472072564163085722739556172559283986937326269300393060844838469608442203028176603023696892442438714259375056581121735893235677300514684301763690336095768687253174941868889960118943181376742191588458189399368619126052797094556696861795038148522095264429165179838438879885018182235580425539311486957289762030710961394307128520094701419293117862831567429481425236932662336753981820240882959411015568086161131113948517319525985059451038924262580547465229105564345173313411210692195616713684694934187498270082298040503436519002971086339731350215265549724631781575561178922317211634736020557065436068600019818912275006476682202362899694959755484869999796346169329463138530467117581254745696344611460496043936152120147599906237385548969872712927530936020979986760331395558465351444250058400913446200519244759632054986826007456111576074274679562604183631400795918974843147690377474918303224176261773931571279322866354751521880184637560217661803115915349340605998934315443602398712561036098670464325080460383696886171789458227131378764830532279025706644707741370352945185826694900683105329619852945570599757704837579999633126655766168113807943016317254867887180001039557794847475073234920955774400971212789112351642717743825345442173047343873383233009157087798973573587989004036242456434517050143112780865049473250073253355229283895321784592111222197196787152921761631878320710610664773848537240494400874851776488822982164082113887731505951935424334212252294867971936028984011273660974993352656522485684561642291810024235859230035853069526793435935608064473482220361280119749042991566873845616993585298938210215250175876945855055451025185040161588048212576169762359065392084713401657766296642827253733062638861124528411781877301999776196552190027609259843630214980235461505661703571286400914136856228016084607620444083570676745893196256952869017666200286572821461725626539744692225848141199620803156170975339133510595244274932907756373907554840627805500974288947130396463783652781058347901157796922408249607849902498977034295002474950888610717406510909983374098135823070981568335982522104486461263288492235939739402189254626040308235269573011456881415821441324941173983421742385583911644712107620162531532091526915476808542559279877006363905364062421001704213462549673105973216434030110679454490867213277721616019270916948966721319823565172578999194021283430612744328341876504217855134778888417339951558609307417739596059329747100929788258538509734016724216038968204319528934885449905796883603050852631809269769956046900506432811911542678044897647992111308915363773237261109724618319953419477262261366987105750418087536378845617733464965513254683282446485675375183116493054885560288762526649040049916776683551717101478865560120327722221738416102551886686187794055946593232284676719270264000559012463601786676427566003785091335050358438216411234494291775194733007737128649009718557599400349091155601950101651679929220389459992890834881922867143963146274648346594119126055450886603028101500201194887080504396876027001344294287930825547354456983093367382087637156970663809742628726267841860411276605386762373568552924431597082627873015626619990199737877408313690887830797868737395022535579960868826239020826554948306299782035828074211321583786275270098623344930070932713582316881051271008245839642882799464227189368399920172330591099460894967555644429829518109695316837581460441022730056388711631060248967012301867843447095594804465946588087814745951009043989225663397178697616214791177443225179812139929055170346720432031879565811385235271897429236633973438568402503294755863380498288439014635801048459678152937659303842640129543608991171453669063434871686637303585090502702959044701875365875766764174572734590654816053179359531080718498342290557989303055379394620045398846276682447218999754307615417414537409095029566226057863027741853608277451268953128004823037713325454591768346412314381288033474822619391160854414676014086327399427182384484869631099317586503266459483874118405387224704225035713430504279802044857272906316694986461809739245581062577996563099387508700696056010650536004892590351696536843307089538588585577911516846412438587638770736429582573498359768788007289424572586763591654003975169890609088684036679183880358847472068078819216154296583723052558177788629612195851868948609107554241458966984492210030232103111171731693038558955761008978680316054488972778930624818458380977199674368055168031781485187776180021933598075762791349084110639356270369975899026259639387766829260800612124129923673527911615212190734794964873023829956339132724152555217828072450317873217276640396302903895838240520200712640842079793962155763241410664248923791530166644622405435502394732300631066418063160475319706942001888530307904854105620339637950326017015749091349418267889428288619512250416318654801942793009999014070986398222783360799218630923071488214369919942146312648370351823724347224019212203411742557555149080787596861975280709081561409400615812687212219946419262164821009173616713858213895867437557334211826846802677042766547406329813412711816635893585668916243688394915328482560219322895251925360354984276821453495837995460743075320982721268264049039232277107237380397802460487848514534815984097360668285285044179507744723907562824239036864986784147596909560576422901964925128701657642813735867847965915459422043450175092805487824462033182081883714454534438732827512940495336942277820356729174772631182676866968933917535952642029947140537674358799329092443624517738806151935286077164318621480920159779862454878442158822081565869693195135831347631211807776568575283940664966519923393558749008001633718243354573456861193496816428256761957243289225996042515244439105676389017308340438946177578959846539069012956784853510662174240879405020442346626903088460093881407738771788859485985985232212391437375856993377617775682555503257469685358288425569819109022187728625115134684846136965485559273302432336417474625399727276397541863558442526299071888529510473190761083951100464759742344449501417283648075497410066662164968685077857340125649996309978391998350528118989187026575695945495338559310087510836197741714425392363148648817431555164225402747403086064218851821129399460552527390107543343943448167553593152236784678472712359303360411387357174011283901185128685824308168710353998514760577880080348491653385231390109994328943501735475256539168517824713094178471516113753172462428222616602979699373807786682526966460531235137225530852729600249231494068058086885164502687710944359260568950058207931962588352586409770069484081240660794463245554158228256360593192288780721199936306731825339472708526178409193556363362524288470701159549146608899743371871170379042880886851564982208983708497160440855278094220056665182790262705010594169648356460730276928904754885692169881668064110521451105325856024358474474116025484278745203996654357298263263745622861770510359748892892478484342085454945860928792837108755073785197877081478848076671223748254691049177506048960488165135532426485091346367725269144537392940566546564984474541362033886001900177393193282110493237211029720938686874988076118097478840698249501793230927451883880068727587646189362165458891522605467173431359961804677169106581491040765433245444886102636214343340570143339319103902407276684029771853680655719197283226411469217633759948747700351558401088096115112785075110395254754373978771148407486007091115425844019921263850415682255360504061515314927406272532847868283436423792234839117084522830839401423657910012485718540481550142439344675263141549384150560964508871039931346023058469975607278874725651936713479912889228910580818100331015369535721582521660618729295432054268462737478647837454177240286574433069679992203919444234455598745245923667618036498148567286868711635194869509890192119618546933143610642654796568785437361752144869528400183719525946567789703070623102635176944734866629816425526912051294283074353845844089703774547177801332439014622502216594243632021434373175154235784442881771305209518244033437679090344990238468771993864219177610219357655026505584125077252842555613183720473227904996870324653502447821063676552539874308217693593819441857492958570523616528312204651443486840388445339886384317355160147602607125217416798138494852983180949334994763192017887725714205033535318215298917049329985212743072373651784536421872603530757965776957374256735840172122464307851134805590513047008393166211156840484855580631399309664014454752146294926353503128018205653080517810641491522745142583394648273145726928365376113131788052359217270121469948029455832189193962988223096582673515080607145175386731133290933312613232169690815170360214019374712705427835185291858588086614569840944226633271349732050907600893265338527280001114907030618455884063667864466609442336018328212154588629700889801586458088548140747936703039483021456650776445879096187320449894521133975161421275099128450672238962891758662838536922803974671209103687812775016712064099808760187121218663994263547919953864895999771985054280991886968484525822360000727604550427240323839404189661559004942157091434006533894441590603707883046941155289455138514606691172809520322072884010074996391247639954080127446220852407371808741306559966073090131059939405464708798752200124025292806369002484007695246248368463809407699657382270094083425350255676022851370461321584086470494697067245737843337071676455919412651497846597134568478017576448281928781578682106700897522497867778003988408489584370830989248244740806774171214679409830462118125585557264002194400391698142515149120633612890696165679194760540568112371567300517568253220815246507466995488203242387595603212125175230652893670790977230298662710433575927822102129707502338400133206520572561621978505144511899095141205791810745990015588929027183123912236098994789558724383933024953079150856184161607442336466959964067393127347184467675322821098959114931907933933027029263781088315156878203319664680744797669280114215972555321964534131692627764459556920792375756734022534556108273579390875284867908773601537813109787327737385502268902263532249029254872705024255050765779480051375458405714165162335416226961702308720948012351545631457592226353566062066572682521925721974341193186655955690050749742541645152119452560892515576835274681291920260371798404237525110868692046342851196046701148187924179483911919583719945461612737237934268997091358074794778827581555025583300322004766817926701706423346455261783153500633750377244136106060106560920609047613208961075954143833693089380384596582680549637837612275559985268019340103234205920819060630229738454317712026370790564478747382365563786566998780998884753784361142612929137866402814138752795551196794606597195660059471698050873694652697179681684768889393495257917257924948440281809434063312688419066009770651832875438009000581976706935650383576954430257044225074918268832610828840266840173803252525971418869197157370269020518248430218305782076527708396417758907573561088711115663626717934704518534527784553400312165243131164535476302677104656492976268678332928903056599786289145150464699917193708655606829472601028275635346480892373067686666512415699149607440514285430381667041579364101188403793261412281802837909340311667568963373112151161822063528102449501621838921894967336209057916935286078195973913123773783543951934621483461904272444013300404251751146902345307469604247763430436497755809717695970211809049669208468360427387869481052258234782166588948257411616578047789027387205699221583895144260608716477888468741281622277605998506145407394801686736626301599443745314690460671947694240026134073561199215695158196591046936033038451703864328940525958006315690224481641739764695809365837254584856635929199381450139194803218143785937683906996159060098801911633034126124283609204850899290309344785647942808149579208308644133345941289001074031814554685171824333608626535232673850542515868489173563100594100034752138309918858563590642267526499420929559704973745281015441634654883481592357426014898099994889706061562122767422058594764749080801180254288790704477890830495714434498712652976442200156667444551419948299656996821973392109573899955338192818429872639685093797019230238203739489240946198227905222396932499393073708813191857661828880154376093775090680405273052750209983083804897214905532419215614648942577478929708159074974147580146430988139583373674347081890387965828946645120533817690160577075114737753800718335628927145331873128367762340856925727805923723719714507823828586164612865631319136725061046367997106320743935682694924295590289300687732709987026524070877166649630295427549398466589781901554687167108434539728694750232739444563305579573663843294353694705444516791383346558814508543017501443198046497051230824823113238187517114356014284918043693416488562281604817737603617033646856045468826914350646170896635086928620651053071286218662192173781341534190413205453779212109012205503201866882570690089761832192288644204235211203521983935733656917219542825107674723142053761071395875722423283042482558713507397960855205593419309082779102986406530345617827164120789440079963181182527561486316868460091911359884796217588678577459696328929116724558488565396824738202897778351420591643559009273003463782010995415751507392194960671909821314691651589645606686008450078018833618170703371541732256326390664593493175707598171672000285924231411488141286233477929805827119445194321514169399218168696390522482841553919160554292729118853288408567796166778528889107480082523790523847904621388731636782889804962422913911609291232230474648498561292370610679473015357760555743070336005781127136931650881812832047963796088149759567133155160929027339745836010972653131299077021063791127703520546802639009521362452511579022553870923391246334122581922270698863858176800499830527916265260743578441817852532733200698426953358914063184007890901234178801156810966198489189088756474305181362472694162316702084910183993155094257460568499679661914575585990658063633057824310205679097684675628304689410959085400220115954762521068232159234364350675492172672082236207665279329198713910985250550385732129817261263541855358505292624415287887298038132064965224677501631878703842944566222494978215326318622416382814236313046895833538524409920061869549011212378768019804330708363155125308645876501691745441807136088343229332524167226810636742412960560071118486706299961600622507443386681688621458271992136053183553257600565750008352459365287300608869605792249863731302194496945230027426968933499650615197951860655416777230756034399648339183700697358187246804788361216886267186317183945879886603090017866317106817031695984747156551902156491355799113032284183871230033412009305520548067198152239640428202631466573125860094591554479940216550013088144650732214706551710541157309567460807107087764892173168007376795018538311160417604533677681148246119402644685995110227436053467430623515127419108521808357249146598634773032965830968140242406838098057744037053265219229908726470535785852357712554507644337686248556880395858180653024000994693824441840589087615396843752359980045300192648603806094816401756155166047579414436747601810614604992458616529073833293895931873485589018139715849339962082136897090805067496186985208567693072256175523157840838612941094196986268048567842959717541592008708583301103605835719205806087509067380019011882638029061455476541161040712093577046198326558815166146944779226502363632172685119007179937306569132784372817930000317225745740315818518672241478475244854341951765231849608825054626117768872121477011052083983147330236353202768495635572910792279136177091293173602465926189780004763040629404084759136268943466623818689203218121913456088584092255207611268972857148914097282755001993371082470017705232639293210067011104893267701850517617403033411530613186895205970764018564268010380945720890704294618162917567836803823744359838943788573091770294038897429978582896131953481894976860942384766216649654060500803398102631419662014122653803980158786692570770821237792345175613120622861333312132401960256460744089541318811280453077541696217523702119024332151026663951644904201936717308754826929357855147305692907312467231221184598753594601108884413118385943570797316121492900017677970664552058461049270751096450403032534915898124207347538063442961459903448654897940814999061368027695767420401794954687973937099143912331048194796133751381686445903005638063548385054091041492995173962008245018342315949243911352338648226199578732164629943490091217726399334108961844323269183245900896381696029192809942734902794734687344336365518433493062843846485724087759397419454999420991577784700378812425511415725072574825568140487922331169768124739192667389282522381701398522182532501187560168414419083091591690094451679631516139541922518175031350924949938506553376081937630205088425984690473888257119204063236261313534766913713831997677130987435404923300228044048199315535990860009077950335464705332069833348505999228127007475689218684154354681270327650568461723778994504792557488399495323023478464350959551142252605367329223725973425611062471757467192693872178203457452489030759585470910560461894334321057427491017730862175374256756971694639404396968561260577959992663887268294368215476584758513733380679891257198761026070185190202508575263816144768779033469766559975974261329156181942660280512941585331979094766315650463625290468809460208441798812804114475004132867238631064504115827615907917491876423093134182830976176689204877605349903921392630455776082690088084195197269432738524378133278077629054159679497557690375737618247085037905254854348901849889182201027644642031070838208657691899336622098919168776674616709760542540425759900432126195858781378762003907077837222631146690348583364071936829499783970236425728992239409592601695668081558074290242086619835753131400552205520483836279932418116754484617434152445549492653933876023604834192576543338352828961366567931745716376212367221545742738292326897118722399327478584227087283714338082651422515191136983285389990445923458579780591452399049397533551734851217570761789355927809131065993655818856408527766754433608082073195457484926560299527209585083367252144919558208767749133893827996172514821905304250222217962005180453382012261211093897118222710711255826386156138426684063053309009039037164246527028211517607003353581067768721596261610410100556521492851594162153806361994508150631480614380718749740748071145446183158022958100500336925371519981624409455374071431595474306658038272785766529510341704533628429157055169431251722404408278540933360107260186323717030987793959775243430462957559155795169035957944052466275394845383307089528085135283785068627111096073697497700926331785731683258852406976566794553968288415389094470711664969417700976089264857749882573362364481686788590396842783781865130462822652956959395302140548797830727314257069989146317356754973089047519353570437377839291514002267319806665600743002949191965296189801769246272553300147475125847767985544132762337974308317401710369508165358829223573783211721952617188949895644898174329866692218830209814766419235877133427291135811705158318151902819846764835032978339636921697579111507437586754341549826432051919436509434299182787229568515540039439764915298737793892280788652229387423462629496719551512544463698582142561159358356149857236222371941015573052856412881334850395464232836177122557040346504054661163247848147042371724266394449015790845632724149615229135359734092610663886662157313388173718072066038633977673449739982953275074803839422160766871304382581751553647512511574463380351887452250392505898202369388113999065386105132418998107104548566087240101563155997208448900372873862661422239552966701154164183195250779830354229942045045772844292360665290392388193538160649386331704899435651565007792369077196920716940990316357199620432352711455808168044679199287438495376110578636539986746507059557335235946434893020439531697305102787964107751879448987646579673160861824674011892712356936898188670347510249011224954743038311114429385194615058848228303417603017274715489199086919048518244120320017854259688863315009206163315362461110003959193335605929533522098760323361794940660209247365841512919422308446047935569780498237455011871545464717346981795767319805204779824564794421052823939027768946500153136002727543503542094040845243531258208361998477839486006690991865915686624009113898035280989203180427275043489750184454268828760267587107490435055516374016756808059109345191102244327813564748089988526652602974925359182782672634564568811449442757378101596475799258307988470685603703153413821020636554970484920126209031592507571994265356276785045621650008072467856125823833268920564936418352704336770057193134399486537183943882448428313295118416571982552888591653730925887913343311712662274735341728955166278983097021748189334740868792515597327241190534364260866864111748647860172970461642212096690020601959509221264203687999689439558354807318551749997478610395838173430402982228207971670234556422652541538558431305603382799161897394762432695726315783854371633203640851953366517304583367241080544074307238568343719763520275031553350089000854219809879691921139226251014160835790351635985451848808608488320767960349359338328792535956677259469886505060956964072635922941089525219746792989890947061637604432143172063062523288504399028661139818324087165248902253746145728787839064539840908507051447760053146320358196286376959835085276605950716021210403279304081064172887751236902166590048661399487782043842427331084561171645573815259038252874620493305414713577789868810026304273880672607440176316149955729411101957256745919443434044717294613949036297140872494263992292374486289794144876311848681430178034883647705818772751155810133737409130951116837959550431657237169654424510943959786423663812748263422229484965432005779750549722387578093983962898171286429621867695142076969205741525129212927929107837656697982327572078882461469233984148100494486855978583636579066841217470997955666356034099744168509482800478595836399410135747454961514216508879054327934277770740420863989313998148849327715692250995006048445646157713503367320483149340967565371716546196578671134187507421511419458302425238662760661784698452909630475364528124668019229504803642456445922093454884330287516961930703773500085441575928507824916366281194371192039687451181272620101991093184394677296523127255853899194814672644595928100862350815306130598454037285745643079968052063211789058617054562959766551028501140191055884188355909065151808163546716441821603283616992741902833260315202512511636387013879848738245371053399214765111406661578908690052882435520392886500713910388188771977904363962376144243074117008321337122157763845638011262212888384200285530163196566735505664226778423294842599207302705507560518035112584219200820738624488449654011777156842180531866639204637007276936265616729398899636377650240900897506326858910307911578735741013719148898704445972507209593483095350399475562732058703970934547090036469428024602673761042658583987076234051612877399245680846363151153971260101081912339472233931884307809374633073940703759589551220559605508705732138704389033918661722073094678795103015784748763557910357784062980541604398867618653461247504037095963216761868209053819215668518215771555492807416212757293633302651804523821250490289976594426161201305090728037609657114497556162276933134706823444268989444952465522404320897925550579978668653276617738985182337246124780475922743406264647617215490434660842902695845281930866047352871876474684426010705098146538259979312131002726978203455537173324779378779829256500383226648328949038042390692845055884713624488189372661145221213807991197479538183764529752534321056516591868613551131010758526083992882485896531238409184670818693049647991104975898410111801457014548216040783727306790798729831517018208655628210624066188580102833510741476545011461622750190343426950439551619043265618078587277782780581097091977654661042198663234019815554808024638288552724288879800534911866355608194991674384047299829202234391556473081929289964022848918092332414043906077761099683238409208891555961870839607456202837146006877982135963598749298740704786948503002038727927295177115891224233043292601981634725676689783223303299224840738907077832761540694885405817271803051149298166533890929268797582218451436640648444870602935576020085397838312687021203809487115007170908840611714004483204523563690053939052182873211042180231469899111780801624599615068171507876992263488993247583452834898942459288349167793636301160676047160015932558426427528511237724635132067306791814334395865694335468969279097184970069790849200306073631050324053174151657287913196974141044475191726339192889451146463709246364703746453902916488203356565733336933220378710870612306330701448997363125422226870121450560795910215014711128147693777898321474842905259584020146761211989157260067163681965721277118581968819761527458170111016386348662608165022723111047554035621051759852401034317599131987883869877546295900475016092568471664438979933170591169000598080514694896500420420330497591777867612204689023835022278448250192545724368258350950521152134225681472672526522681345712232983891308964760601179765495136995006039514467918443080854961868942772867112061608633279566150045083414556350530127754483531216419878623920769785694874393721381991963727793542882590606101915092076058441607367042006700774845115126344473110369676759548394009393442919495963657153194615948240328645104821449283193799904162779836283583214816312004272599442390835299289494763688038125696476594835690572507565574290725402829629231454498716172739481845755705779127864238338416136423780030775656948180881491003548063765590573350273430648054576575509361384309960498844302175718880017459643645345671468671115670896928634347625318780111355266313357084169159182923715429666409206563471642064411818015255018335697875752418813532223906198486104792581886999933316723206545249106922896225148261036329118655459629106345211255699346323316601119279317299714790610282072796009639301786995129613022149132150021860136360692832141850395893480857084111986301277769396578424263804117321388462706550439615563021608637361374968173536853738953145988881913874747750873597345245160653151129657565503252390609267763296531976312245821325518315924806310150448714395036444722066636576478732394617824996433795052048893029937993297675940962006782244733840254597693437276418339892275002453607450481984745975680707870584590621501559255727070362718111520224168578970373155475498276216606086741826921426729156905126944170156675571249267824755801199671366151820074860669068483829186495258442194223309106831339414875394455743062671369753318748364610206243369844365587188753789845053467880126623721176518474290484204033566141097892494670203136274323945221148567611052897302812907944654519837135218719291363103357301226476257395841193691245864561416631989009484144263328816605575974250013017920898468275049598392376207021278862685308736233508059776889181540847438130800355462556935844340753195976465673575038235596849071144659564424728868391214579254161719154146559931450312208959540968706837312993661086656152871875766416187089717009155868576576670877376498173321336550247046909314347014860982315519705667467156838953435178423329814551240406442949711847992024414968167072598092973544840469287861833338611387090429906813923737669691587336960038177512333932659855325742226814672362552664235307757371632010279456914649578165674972877428589252594047328285057091316316490418433560151377808686292929246901892069462428505403868433265651553031315046900569276684018844740645450504193898713465315183751618300575243793250264134552467696225660942321132228755388797256194040270359330383213137800276255844536797164591978854422336603663133853662925207530371946996844371053006403573473729058225632411242072294743547509557053222172229997524490020625260175973291245262792632129560352503397967018864177487763119717664443724173783040914879489558475341914984842380839838076161028707870876931126444236174686473673389930912814581830682456984433419500979814771487791207900832185819805341785729365014824157400793402643945640926188297083493376131941100397504584501942833150335401535712333012593267982199789039110040455590899973966245139813407835256107051926512785294110486642254597355189162176972764565871406501917767201475549522078065454874952272644226001928055787527677611106065412093247674042729884966827465162788626219733085291568859914124227332142246955692557269890030595826587111865579288713797300514317810946374492316354753951968553212933392593321717129764190232821126295341312698814646940673871999211415306918534290429002644761138423549769686129648237917691249192842678689941336233051086589840954612788734899225238143476275505909202560803282027764017991659036665253986259467733270550902727283050500703662773798280084253278070331654461505074150158683025943815396242025032150673638257942883118758745508008169001706056430090568736356163963328362825995416365847970971908689491384720148728455466200452497792133240373642484646962383850251226202270718976766252042180452982826867092730722422525352003979064535463405318155139244621252865362415225338769906813655408447233906148556601982707218681226945236705845666396475519591437600389949431969326004398334153648125857501465058636994543324067102207793939878941565219497947820763060578969809942882189864690599186557772611915037289582249538303169146095541802731280223553197617655689817397437692490899162577545363934019243076249509792274106544420672229240860722545500335071474523031978881950369776354879703175311988112616691905152203606713875517063208745918469058875108539664614446438023352376817804410159484050725228819480971745859651804912090638473624084001584649576440347183980603838909506899998472823457696084131227992309068365137538686880498592892371959861046693187335935754539219022822107143064773580630024226941778812342402901007804155070920661491563525446501226694861489255239287417390399316737325523538630511613343226265211992381027690164863293147702730047025321737339788679566056427777936517618297183127495743113044698491872541823679593625718542235262935372567043226932227377328786996379783499584101134168927656779862191249262466984947328565677931938567320096387181789041816984654007895707449252290960794385751637679689755707104133514166213819190991574474583911550960468211162368326773660024039274100067949885667652465366086362423490218492073043837955838769673873183307992975946734101874562041495859707303183577013424823540406766564021447159734251275469744458529831006755184622486762427389685429072316450967752761539070818938966040804735215610148572568917748495526751584291989206602591664734448674932885195818156970677224276806184497335045354676332146663679652786912117857811086524847557343018726493147652255726730859991859816748647821729563656275124962226527941334681662116997862614749079104427153818800955045930588085718889313784900608174554575595416615303135138488019265737563720310203830830474022811007990857132375716911864037271509026575980562968634526285000021817361816070576236522286533836597163368958713137377101278823875850113104836713691603215761258607715024268124819841608769212442991109940065535716284839563291257410798788698033650319361522964602480607647873527482928402467023806159976848931269895388523236490694381011920028922965381171144907727693180272012940922814645638063877939668513135627889438989889851146108501465734083297807460095963454068524494229362194851656195511379756412211488472053208516162331185047674357076021835276066344727978904187162863784465729962533767123930070471488841967377307890326916235529301669804779168788538478333219896306387931926777873227107158325096065903516174029886737013255533099057853363465739563939329430972381450476663580279641048729308180633879598127783284584617823100794909836834522515141455577793446005657881804463432977361976995866772889482372461475028073751207337535431769245688264697843636223829893588829797026666263403486346275782324158536542012222518774644008169094720570498147590180224175178197006193502970966820299682428705962716133688605430536219110673657591564269110818394810722730368939900740471986754916221789899738831514973109205096957238082973763905847051950258246345533728422283329665426368850835610315392790308428716225605624185320302189163069049481108982689355113376086536898326857206367933102795076240210246445435463830753819109287833202760192641179241737282296577809465168137845277637832644180332712886888508822962603014832793524464372246721599430423152772422353157114528040978634547904982271875501139069722547619293316179470253999632990784147460133531712381179149244336466386495650605281642033753401489431802602744356708195324840322995062614636352970418620375030604718564034503153971340276501038600864710284108734195403668113409860144240045784087977009587949331853776632897370929434466295169719582606839199972770927387386984169374470203047153747501839315660140903189896595264340143028368346594119974139231959817124659887571779415071742766540857973546554633424377968215994639690039422821430995912781946405997939757135776097755179929264595827307520337976567845673522845032564387179495684099003771960236386923918866757018463456612532135708549417470679952560090590723124468175120799729572472183395116144208236173914467046108148292977617476894822139981177543044145996545900780021845174825459724011042350100362831660227465480823960677739817882335503749931527956977317181903862858526748950044404015102376974726244711042213457873122511646414499031436938022660660744574446754648054914091371475451966913594498324089918796972510108034351548634246626324898157581762788622667901513301605604115201716982926170516000975460424753488952774387039265214059311665165781944623079368127187320487030832960949400852132581643916609318052418867833608007182100506611741015706362105818309467160455410098470199786081462570458227769316319825543002675065918645755206761302060640286900650407447562716279681280533947854626740046705563229940840421163207867622967873819066791348574136692195636385637049530856433931772172732548473439853689500902453859325892915607411475007812138329662810224679913844769267683556250662172611354737158746881994886854716598114274039770747652655779034108120621488114744585510646814403727135666321447784881554759100707816168658996141627519944784014488768717983287062191747455379017911444120100875974565540800120598824595030433515653286075990360127760832071459625270854370430954720179271807801659135607108596942343577529686382205388697191487738748200376944092048079196002420707677599828293724049442732515223791700928629862024800241176042713708117067187547725261234304608745849521483345239356309188085564805899672402579279039138800421338440748137054533192261853388657022966590855038674903571114765613633422380719622139068557279578679345538529300492941862566321599649463592594938711884745898052124321762450234977697491717139408930012316415987298997847823062220103484516217838221133265947922866056373351877166543500138390962885216515483568027924661685941364173647452663179595154479188739804335299035557823122783024600365083339182927915913376236312477373405004888725931366760990191104798955984457988448206200942502054929894541255759097492987009714845944546472299055001077793962394692866703569787545605186776524516652668841304069572646732180356324255067970018845624448355034541095726543871677747498453798611984249476241592208392658121286570683441352599098941149680845561027982424482235035782575142312609471671042299097619392396068744470685601739454392644234097081347191108637827568414212823201015657857876992815529765453101338091703514036639941135420756772071944787166239180576043537016281752946777228620223144990096759232419564859599180601335146573090594639749393905120633485539966135256730005358215633771190172444854412917598804974356960144313953229623661683897739744721111700112429071357589677927194906453767857145332614490729859036246492747091284092050934783588806295888792703038720778978105603639864055991350223587038781028580248350245178386406667571769159168369383988204299664811532179364907466773019544956169246948119788704102166800286458614445903672797407501286713084513041309103328159036667178875588394793933477503538685538785374048946014158644361091608892800264274723822230614134067414560087894903563402434345492864447698686449060207489517845442746598331873446631049273711143049836547944142332476571270301643563039056219612776135832946785622644130329606104337735551230309642739768417281214165102789252196553229583592554261652995844978519812502188184207734774384839623432860275922788534360489502342812081291970591274217005824151359487319067251792248499669551378441148829409353054974916989123703506808319180307231321870892236400903514873927781895241500800669079110457883344658764119213184726108926049560745270283286769007836625746138938444285398947377910133274787504660504775069395030492336283600380506537830395137195471951637012628127147516577078667979597644925401349502779118002688386587835967213565199107244168306799662228224133018305131456212179847679734952019849775055180153639759971850454577666388465683784351699391418926746133666559092550629315402093392492026972860026518025382188629672179017880216162609912237820003918280158122176983635464844630132238988029371642191316159422600575999468816530790459442579488160491164134783431520243315354403113735796325381805940728823209783969540610163010182603696587789821935408983317260601257245035503768457474072987022258472283690778618007281041746979326745510421614840493557576016513895623954730923628348905327756557827863094375419469408666068839757448117941261390067887656419473914846645733810447346739762316960622001112643745363859913015293342281132509599768905421395458931307162724915397869944880820827926598870531328660365784113128676854016179559587759140073802096440974922764216304517515419591469476577239332385753062073731271450896938471976463233865563224540014880059774058464716771207601666894538824801583948328350336290488695537089234017960243463623188923205417983348635731354770282717122190883109637767884687247028102165200189510815806147329084004097662165827593049012055627902138554859894924919796709020303239740911329355532329117870447462255015309734661246073307213988984644912044658686979084995134775094800372197849844310873829184563341817522535090602156456028493265103975288866580654162094000086457860358840696224051456308138561509163128035330772885111480479840201677111532990607458541549430208861972600073473896054051562843896010473348214881609286787210286112998010211450612873306943190453976995750708580639896225617665790460639132633423917632539490258276509395922674175699126394077669147769741431198296055836590651431365499750007241904283737430641851649465841606574417087847993203457850953927653713521260805983386146987980461023575355113132473729302105191665972280618152301001625354859375256141865647600617075486287600004763216093955106200015729061552385537344917351905232964469309761123232860261021760671523266023666011558590705173398141504288976098265486232893439237896817853025456049328472368174446311446424358336452676614970298264423413753864150349238067109949066484005180353934643107939711103243799854314337817913488158404308619923755998643164107145964572541026095846586650529063012824792103214883606440655083157815238696550858865014664604548425733081353245840685721178323253200018386060923738945093619262726476218224541787536993244158974353341528399236325795547642491263528563435733008845349957316439875722130045161178497190896829716323674255239423113167630953803902257943775533125743425088955826971172467727431232309705661943258617727983988292910197409910308051070322749639470910796384033404236448538432264103212861220594462205031501170782012858366339881518395839104378608198588996301104947553833372968234104884694644178421691951839796788902212230052000470874899181963407229882135467216923561046259869137103276123846488331240500124924837774516337327736214702485066078526599199267971555740714006393592277029199971274497732661769321236279888307334312803226974292399409072317111029956582529203079436901595566721461912894763879864851298299153347589142919827417186257020893846013081498468941361913090476887978527145919163004861169628739777598349284824598468806119990785995237268673467348659700160663099850764709379685195942576856740823189568721048726904840890106575162587419007389128098227378270021345000815945271754245103610477217601685310610995847929594428951001867476523693831485933802485937988028456911203628180006624256588787627387565802358199260273623711859729680040540775934585997890841489933160498053586265456127684312772485712080034054481800280006979278708785185812593472009313818346499354103094535500634090404611774126630836015355009805374190819156287266137354787050580215591876850599941640888261469176198014148451879743802223970738981564054129380437951907855105891717052982742971966565574413162677884859396156431972744341958666706268035155493429161157864235411037668005874253623679004821983020514077444735271840468807678272299592945946456128238356309660861435363422696130229613718810001182241862229899774698844931692112130205044180628399613580902213490049795239100759220494309308591724568376448115351194676144579788557439545690204870840964859589911956579230559506974558315354984181797031951522944545156975465131004790451006475722046472337754376235183741902945937259071509221872932345017901071350221601587670342994031233843879321856276962552560938445768239840931191172593781316986277900716455507549506747224722995699587563050159859874121444861914291602535164851469729404962018562980334791960849781249851879364619527290197705725187734675385000128388662291725184247903069965646990795622276188630650371280024745220970516675452981697611194989681273706495829315401859962775506981919301463135766021201735573921393836417899775907220939463532576710372827368566046604120521349448341657295285722841445262147450647721514657918899359167403652034427403027840892218447983425726054084464539209677776591483740176758227986029499084280085826376147628473808880454134284076899707796992746405076038205062805478355480443928667652837706801021857191580512667130964392901877137959617653473416555447476499783484355479443787482543057840663122176982569808265175767666019155373868162696834856687835516228721600843906566637305069062159657629143576926415784020460325326027845607981892665729710480246354494990868761899859205412257994402648972506745958134596905158937888049389862281051980087491278475464417269505443190141416084753612997102891869667078905475724314771145721223953261126601213543466407563726272532995692546875942449721618975272211636873813928773634211382874481894139277996507340229079195997154511117366319682503437682252289142012069244139574577495303674905001287862165211811010159734879796327750307983526108041828890523225050252191625119383862086775334055596465222397303539235413523200454700965788034350048906341628410508673721913424308159651266228773626117975606118428342734344786119493255568807201882876030903417517108448055737055466103887939516624134114372023234549738847273348986251022528791738800046663274408690387384493077552470310679753941779097554361237909872852844037537623571339810276798653423308641187225577928696090637938368039739563157634138080914936563619740731056381290812194697185767836034224767259601158296984412824451349266065378158984035497928182912840857132333296892930586508781853342739918523598899678509876400432184503665652726295753130396447883791797868901754168822010057756708770350011041152028676652269601940785066623365937488833821690558053582899709072845633724678876201746424768684916422717012384412597250198691665774774116394618267322066557905845846686235992761759497338964011563659356849936642688071777870426521343607627064371318064008750716956686907865540340587780682146466057608099142850586082708560909784558586203501821684589264186893207121920881721701211162177174031449311357747739874897148367687026650820607163114859570026326526593865340771863740290065230992706578738548912485636034380307058702232218062724158380518667320775987375349004064911509107234144649398261717993805141683152203263619380115059548826013964044485134274266612922500649624568597270435792854068883906370870873254122350893430138533972286033759588310717430294586878572381322856251055084973632908338857116218017922653827061457812109720229323572191021878780080424911439161225438163138211257792702213824093293329101405531493106251631802834181096894624171493694713773301049437868759892601634522492153409954679843484926991483817075679066102764012506177569514891274238562307024642125861265175320273362066765905092997255041134482784658602005272847261684490982467538745281430428192465949997771932350159951979110032746968202637297610484137876704312872406988155850784041199020409909463244895728831350552556635690167230576323298712369191651238584268212536750728363750544079041598812012084882436562619525836277573168658851668657405591493376089121663555740175432791549336521976719426771198011281746801683011849792477705466242021009571307199829808391530474365732098495535372407437584976144097827942431550296383672650247013220265637965753682194224808794024973331591282805574086634356098990777374310162022583033280610847505485233198341879479849851324944767524199236716015850161726254618337703835522184116550044479732198030627596240595962674903086738729856405347535857099775696507578434134331205699307212604642303305839430104196182978083542180635585398197174398620754561215003133460857291078293785051861600785592336225749921769949885847235743688650911436194554903414065885100528942126599572786796788476691646435035458150668935284379801126791510729088783312985416582176310205085912397582372310004892459961770671895474592827300300768995066638652602753395376944194601111838081041437433363298713754395364666026835334581643455571888612043761814241881208648898978770613337118045850813656784370323709235059786827783533455146378420223142085926072914195971121672103727052358133071313195609244162677458682272255281771436854811174232504270469573404260366063817011985974880256460014379724069524011992820785082210927602878846302675480353229009692233110060735599254379422230533682936069660664029478843625545873037077898709159779650831896162561975249065224192117795401928460998530115969085081823076697265500457648937450107830176389574779533101795595135248990345083174257023656689539584640724290424128565132748814905557427699034708937575582764517027575660545659391052663170446431686952247381010681753876167427277705823466400290782165295285836435079968837660906009504725493784970529972729194875482247381334908546207415724365074983079032573020354257286072625418134751172693792691401534118842619233373838873617487651083128406019352845018318975487509653095724378365926866216257646432329616561720921985867306681734195134351215635747812139041446827675253134397315163122561587275658514878138788413152968372981724152520630191257473566164498698940320622081921193029959960245560708878208081532077072093523285310584699102732801964838941824386010860612690818801868720217268311441206255716697449472685479503234087653807104096842196985469759152378785326961861855017840423979481626466852453388092006494179722825835792237358568199159521607750988877633072534434994227796328205262798237719130258504850487754893096027735325941985564812642117364695041335638984816599597259686651172126383086650348915248607355041755552095324434909432542428652355172581553699068721104298244510298718371865713299272328515650545430793851968222804160977497780218008365608576740099326498727911471416636482528609158855053326783273271276694539659144314306776525240278702859174913221625129319317692589334445340968736361086060193168363426373752362531072166085622942751726462054755421856510151378707241956362112384238283375313074305385287563085239539869680052334269051022790086201278439671609055987686899029992973418975312911825861779319860662958600470036690722158403228166474258672722035036289779446754418773575112395764975676906205568958097591697864630571517434663146042704002194697825513117746793460874097113189556146765179911930541656865690252681659706832225242732846322059761462446257911911344866594246114287192959736160597949735958558911472850183643207126291687417548572025524735427580681935349170576137101550556311000759294339750697027023227834821903939190584728240961074756548973070635683608612561731290427912005695856217915079963878919410538038105525882362220477585912115814216123773027050503285206446032681676875243002988995752945397674759779423458021370058913222254934864057228858808966203115463706422024404677610292225588032379616367639338700205650392031824486981567493488997785078075366379764847966815828038735788589585197472808252164765299714615853894958311160749122753404760419942167546141738030943263259805502154698878744930092592417411878942669487744621224247962148217258445517340742189495026303041118463914644365392997146212175025592526108231340089441350905012412186801500096014890658192115184978638576975831303197998754039202150215531271525922812586345849848440769841429671352452472359324479582843505110152451762082804537588757345398022637414209556593530141058149482995396431459367026386567344226699497013832883782840941673678864384569312375184279548723491237026692799477174455242971343529115422092840752528729229394966800057971799142732524759518544838896447392335124964327714316713970604172745567813204263149550021495658828199146217742362110497918211571498940875829354673715460613999507081894044745962141085909468535414462218875348674411075084703078202272809830011578578917951158932215524412850982144258295540999256943963310434814400154537367144123234723086956849202340014984400444780313591087149339876632731408493843256165321587600302916615051791983523567488494936353006678903496202135534006222305746677832905130716290662057208923060166177804368138123015436722355737474556219185288971358925743193462153131436904089861850640698531379809401793657686894079113121393505059981600535999957710799549260431198907246947291589090784702101411593831722527295067467811715130490170416446130442790629909401435400489101508981846090832060519534337423136569379334241458695652346683356414862906420659652811683884663285661467737605877874608039310362920675561789036201884971587585327858176581354405253566437221634462921836638567445879331271065024173968804377420358670478153298152529525276390999536343723043836448545006560946357880007364128167478923754751955669439162393298177629692165541112740079760788815240222397265458915164451878188410863971494051999203964259410021393214781856880694774826870950380635006642572659199786700603638946186373208907281459549835803554178448337768801448488025759816461142948011350045321688498827634622235294395489056667604540304182727085292416655831744277646973386588222150700243471279325814442680900008472538262582256502041890942406150242856653820071925076917456310115608072652277079449774950648110315305438221145157860216487829901896338993578013391453801678653413592278338676808560428317628038571436763270793384566938689820116559040355653586278240945483397527969736971872841335786237843382870182771711663409785912055507564349344610890926372621023795485324285203398559336065816121658795625046171803567528257268850096585014986502686241461462018020811055331134345874589059167317121393091735245273799087380614784906540053051930548507500740544330945758803685091878642523105561716517703567089220106313623004403563259162777923159754906081315552636955131346724949334144641407980761931422418716659333844364407001373760909716806589721689367037136476141847054178447607835346071612826472330833885167453501674195511828812757558830140890961398590362219585344486198615301483378776622656290466061345660446131487147309882562971904625495040955735674297368341894149156081846350280120468546793801093678652243320022707221704134187663436629344486539513594079661121832589543349205127535636480246047301747511518750203314917936041461168553028269598512119833772210232023514263001104133002857048636247461413705555974780872291201787161757486770412125513551385881156122019059821484739786116927910499947572467249477917378447684199247807387860375870594513433609897801455988812547052091523520508534491259479712801764976064598409022542957343721515458181490000685782875085477729492103555479896612685893753156790050711723743076163417780649201451837326275145942422175318258036380371740893914805825045333176460790048347733414740333188442355240046245764961137796795510939234695866112011358673260651342819616165186112576304431764104796152554549630413215122703267930868737625457264003939008445182002204753253842579004504058515155974275077726299243090100821795233639731984499593155930517650808171902249150221763536074720396200963068898340722083683007744528108368040022409338047573777123904721290977682677305045603721751473806140839220423573750856939995118215576687323086481325470601058141239975352425656762858603521293668716781878342554675179772310284512536941728375108728011344079800096704137445270154119930155742425394953651308159187262830259486837244975048668135298724988602004211807314371188385690406871795388057108496956261231448965637545179867785976547405147827642520006806972599675159065561659316600786615444326155409702041474604042761348501504160417093035492817244028577511948273231531046862823442174156190982281326039928104611518155699749430700499180180937624693165886898343639094646097967382409417289890634047037983229965463493496624927732899970322097672259438182568335880514752388029606850321171976964374899627667763082405361321656635705537314879481955488313432862877433306467720266007317110828782993619201692379233003732695416627502170279847594861237430066211783480529024094015311110388987232173966119341901194050131813295655854418308122483160912308363526417933278766416944757038127678511433671764673046927650036229444472506867930168569166177488360723532427401124858509191479196991296808652417180694150431901279093536100399811453212761890690478426664659203583338156944021965752370694327010689156872016642757481067727119649373137257472452538798646943373883042693585649105330050850084457088341561676229800006083897813559581615881068204762542079900035653705363704046315009552793971408683627596658729018042641738151276794972550120677339614609867536351910836445453693539462990180514754557025523888619191089607792240356459856174732803896793442947137739276040072487627622158091801455836689432232674844204115766811050596867014460093057823935181730492161481443804344057942595508001654183133124455085825461602201116679981397294899396015535411473997233926231494016072827767152479363591550257750505486493508517910942217357551722419390198276295601101016411394642462792222688087483794489856125448510433419941660529666987786795620137991365166796168556760765303471492095744526437918525890766121574185532027101468787344081876373682987531099075443550621441900656457810462058541310458499584008556253006188558518267122712382369970913107594380927562731564233566754072655856254359467871303562691990038971181669795705958996209196591486436924018759922604980735380749146179219031402285668491407261276833131531272042156918605806088922258056100005710508114209159679932026396804796709312075290561040831675514249633537855351837870508878393107745368863984900430204692267893164346292757987786549619299481833080675528911428788702434120317093142503924915087645372032590943472344201644027350085887235488885510486610888327469577228275734960105211566901488716894406844807958472698641405939312054900889683503767168410366478323004408182151065540718875160656038714544134714825510707524480725698514609219430746685541740156450097159505264118843572327175595441722890308827350266830752124105914777603569800616580967229409480207251654538688296885076018051636595408067408089107842562484327330484413437546840926478784305520539664353892816406071662324426203780036278320831522569472380449935573428894273296506525511061199771075976701636669308011245624005525705826919500954691065070281196865571288453134517442206873692053188312550359268105026383686717557938216606758606164190061199539921874622093575801946573703546831261508392965817448481577609232051924397204742328136572366059117110532580658475309862808360418089625499451504859846575411807334105161993018677590570351056719284662266400212229457456356168949537558540989949245233463156624535675979452240279182441291738267690502822326773839712286471600528264553189824254065831219801158206619680174151450985103424169425621678523762108778267526953066260410431660495591407666104627736712925015165070724170749399244343462282136589242530439107911949493117751110621914075150121296550875034665283782030274603936155198295717427088739890800782093919214913771096223328585950037391062346773140369544912908685253160552239244293184460467621509670566224159319009902644957537792372634046221869630119421554386555714213905161014417407511543894581932560900183696647398520469366550942006864804884356099969992615930694740436651812665883077101464669200048522189604390522270450644848842263264362227887566445664692141224800056857677779671503153883599451411674345352955654597826631372629391101249565987900709136456250434191063106614892571727146950645025864186116818510668521581958732526578265326251394458899291631334700919643844883329704793250106471778446783270402468362993883314439840601868825163410906301972286033506662732482768460432137288118664994699126072485566966894197047756458344472670578808478846102509760728175175680071809156771216712972323691194292342186538294972110786874859450408243426505662323721673879655431951617570677345410918450015233837612435658591561556764939046879247853545848118411502712372060488045773179504038531291395998696813636966286099764944675353835861516875597619951337235341199298472899634402796685433537596779808579566357487403252907705300897306392474369710811756019783589081622066468338806257718732938178316309076851387777739384797073742613981415717297104398676381597452198581124578334063015955955385047697951300879103776311901690892882793270599427593656521918637067865453150760367790675907923681690093689444931027484929491380701217228134895989762819180891101497417221902423074379526692631841713545613907725270604883376454706722048743422701859075883859851042853884168066896822961760970933367211024726432645110858758442391242632639813298059842522679879232440487011310457940798988834233886631212386036359030239080288285476348766843891511756847499959052840474331810515896422496271009272082538845059146140207525102680257358835692180355479666576307060146550425034863706320113322987612543229129688170646427555940472358875186654900140680914441094765187178462137413247163285044905482820669751654008153877108042505343130563603712620566608927181575353935092803069448477645299079446466098002866000686783245903013635314710644166844157372859961713409210112589396685475173652213721247568368906079756032647875375090223260796208192361377793780691824146963586758553385739456920889825460369947217744405883682656669837989453845901872616241525864245081287377579295853703976708323889229087790748706957886579618530705465509267801379340021316020199521643887441296824904376156103998881209395110052682088337546226302045181085587855244610993027155247397805983881531094396188550961183214646737363489508157039734646340835418252365834815991240150894641041022494024441890858697382288936162017892078052426483088577556064518155017530482557563770916717384746982400952274981248677149092007386800825394118429297853675357873740448494915461841552229151051271899415470406209998629998302634829858355657414698452882388924795427035731449331394114366121622221202314103207401644622610917279291184250722000629679722201923221307413570981343965202491050908541578855508346950261814117628638861402086989673754282016013709600972154524224013412509612401424272393189515015468236648443968201470285045668756133288217935136097153399446733392970246682893335455009425666947188982701604583559949367729278204419926232171903657961453634651821476812051497033266576823340129708872922715618796568230862952395879108499329825750529331523730182707735483301446069314331025532065643674355463125600190921689082107257929093878526983165050274007508634945484738885102926844678491040980273938830796854256073151746952581717513381419184715281726893299331794457480184447460689488183751245689832600145061520970062994361499726214478246418142334806743908984553372803875109479139430079133757146295330008307417977573590598712838615588275813552277943550298218522038142649493454766382051550943370350488305725225204132359643552940558039275051775217716613360833637448613899788049531991839871463574174776969757166021934544898652629118022653262184205941173898451241828328784659433188582708911081660457992314957699529574634140255029351468789789407368534769996234663427220485306833734630702531342233137506375706825829531818527446259054441547103419315633931294807892722662746994284582892010823899243843679195362075925755095517776170902773644164926044627562652926988711325188496777920760624496221102358970997332521690713985013271757142694914651162707361025753926410732283995819344863103066893251000861010822117402924514117390359003102243883536917865139577125303660895740640052834848047949162355236553009827629202704599236161060490032770288749239528691992205881623469551938169833505617064516668979696828492222353559353936244220408444037344857456278774652600275964315083433824860412808812191495480138853188225581397047446965540382924416569485542736885782961973466614235457655086671927974195916953397358041565086673340465065534535432633231291291284438051008711057296424051094419926786703809903003856424331377109241959905764748489303457642034093478174065580820689760499841092681688140879776573600230612248973566737181623141186487201474738257736073430955389161373490753375175276807499719028103555883767846417556090909743965541784940820104231132489881169760012094738531967257647528057534352627392155771901433628756929598762352296480900483256855220414805639193990942953518937700649519148663983266294039656202620276467357991441971856170443666846265508319447274846980797595831716719819326763794554933707729886805182068331295327361807071396036547834416357237481597334449891583639249265514157806381384759032762931626108314725523660633981513282677040773249570103317157129980095730689998513955978944513382923076312079947244300088725236155017644938111978016338553464129984226406789855521169733431836099737391012211233648802463003836108036933107156981061373459172384372048030855310087071743773681908140966040737554668232221700060091184653880946037238742095985805625128646044606430211685455164695320121888093210426190321039427605598887707064350915181000130588665468157851727192950484917507878043619143490398195658999563904575320668446265985465329092723614733101576263189362545310677927325734821232843413724365050691539910135186331166838137555698015288378475327176555366567949748412735980999993140180960941001587713226072418806494702619954028796872980563447804433956477612777016458275938263085530837530188835258430912632684303632539066768299491298985556497019666097087646980881836157513805596389625785013224817689352285391468296678375512116710078074962379616755225878038476179547218703634415427107038920368944618062903688832696763405867371045587204079316303325221710893446962592513086451458449138351348090788816705977601069003428464837152577521864651862259796789977381627799503079008809409400983000253896780331310653034382861654874619034697655880667665939050484901241546828839900005940490602803022080350369246005935003809152744664749402952992523244483482804246384015353259322128676830789429018192490794610418461019771916833797780651077998157513999728401728702461594961666863964404267812560475789902429471972734804739516660432503125060638710244412003630868177896407097236395197116226660713539304355217306439078872723902566243585510369021035797509112982757765090316902220252358696945504731883159389877006125125472222251399133425102176931794703700482678843105815430923357629617812863677836342993363338498918918115387228620699046127482140348511603310951847309615257281446307167095785942154925465140583459482133029385943405337664774981076760501987927381829264315153795434962068998433303067585453851542409033388657847800637888244716359811803461024057969181938339205648124489958763507440647119514901091501607565885954921931511595983085953731449663699748599711394469870192613635561712021452488135386241075699284290283170800299611221262248445745724309856547770104660010554064518859283752610394609088831909067432052980477402677627474118125045706058032701505825471721266681259513725648522266790950516914740237687315327486570888895759886104052587536845297734036081505659416346694072293617595914473669573487585953430106464419180926910481798993361063071122354065209946667238233069251405133692944694910966386162735052869630240885451339215391731777924372621153905454810813362937933158813412141199713464538633212187717145980969779281226506849482914001575591163563638484185537258177356697095246211391939846027952897341806840615828046584344997427284977395545961397574653869985932985058417085238047492722663941614695054532024515210145806431964321805260110099644810415165984728866223615209543673721613358122213111269075851667565260548061413225410240837262292636812784004608164635251379750724354227893825479993292962175141700943087521847716849206823870216824968654808883370938939955392257092919601116643388737000124303700461904485265756172032360255058115117440894303831958626934207973954104406617889962783301010052953178089570509297676349836915484457618835981690757126458760638281782991325191278057260698334087664024359097336068338795225240369303267158252529939926426706008380236857110649883633283237225486680758313553469147099518803511357623978225603756458956936013762269860947369522605351133455515756278622100343690928025201880189842530401938110435298759870918607547086513050830043261762995983652194234037467044167610789048533680239476705194726057603189106700998820585452331995998217608684542771509047146036304600413101602284955111756227643636536912595781231457741571987326117889987104641422339378336200181138923950745744970687244629687445328353684062663239265337181553988379670826332441062760867967199336677658717769237347920988048686897966983107314651946618794604284928435063022905432404290320758503685880456230571899509798784305354574336877030896172239264652499866116277048128862993450222339263528532895920710335828848374572302432912508705037117621575027494771192609250478652591700280863000119581789491507517426375434918307915403137622449051070774045687265619179494432656505212507900608015345388093272359167531942563562785278947280371135722330771545467130027332885901409343575387431670939692435163127032118651345611687997182659416104939162324917034708919165542227134973599147652502045297115083678215208197937050872342861931700033520773674723305289984099463829689425169288693749183719369456089795859370632648742461989266653591009376628450720174647611103297910784362688532662275933349599030328202670189509856766462279166233645577937039762338956409922607622470246853504129812755951584812728400417899757976212873836376490639523461892892752879521248152544764027696968703420430548497372646984241912681465720315862525758962870828598434126417850609607370211005827169204025420135991260233017273235354440423851158984103057816676951614313606969633026066377651945158635791920380058448510396237955682258110445201860823516801575819510035997713759463247631786543444495332098191309922699071927292222590378546225870426940906650049026438327231326205570542196011139026269786888449706211229842494492143899002207244963004636687898915947955016090077808968815714637826614613259574359379860825989975108661334306780540907751499055581681567345005112490999285382318614960821903788392009238592007820473360212587139483411298140183283665879226508661085106537498188395644168648971733550870820437115249151519877323662735507523158474403735922729059545249937055546303562784645816846013732776383332912427591291850637416640747429573042471177204789343208894972465135222914682992621629205077736712597290681195619962643818296636962805774481031848888429884325349639994233587862715608190232717739429617142841608062191699621992195400303968600697409803046326905657549781336249334439243737378146795749169174106012155093566797221698357969823155873414196294598625522045853374726915051800257710806102738929537974790150592102893383473619800828182285834591332711100495354395575405927929068838555724856695298588011375132381479894671264563404507953112641946427134100388128795141334401988903517028907338889241034701791807563993789933130594113038462014522467447593158374727115123117542659075388554755901793703638180812302916313646430636302753403180253754790550506657423381305654666919071316140791268956995765147634769650980104847105383140975262156287732136059989427971981531305625772419337023312865995702278730656126430054743701878068240380675244645014376973233445076395611144903124492486993517136603591619366757982437898630409119405318387367656506238351622261919379974713944972110426984970305867862136813213100572071626780660291932465763692988773906638174586160492872219646126350926851615839718786714845489799774874798418368814382534392315777851661582953644938652940507210412633595324473792362460645201655063052505639166607048889247432901214904742496009777053462649304708208132529718520470998317349160657386948801050481147957072946395055064579697062983939547179037973014576908745063082268668888122194058916365320168897334450351011829982912684593368356084327352476813839210607578637858810790318864970332795387381083207504121023076421507492140368497562773626092068969034245489537787817796178630689191550760142938125680191269421575492618363709882124859069167309436243485292571790496197718217130011060413855417532044059800341081046752785267514733443465801185256949547189310421436605710881015086000104600212277628347838481182140545032686784857681949262763067671710045543497794954291939773904396303522523278732444822973100918822184234916848930178583459735025789493395139228757914496224953318987016891651602359365097753702753361735020888403322585007839891834623625557417337507054646876518826862263636666350715656069895880216544060229447098036265643082290336511268505737165555795381676354503987688652876988332874080863527779021689552325920844883024224383070726446352934943679853372119853482297217135430065159124090563132154961984253817145806529865728438292035936852870420479035793235742443739968330315118670915923493782462897756685903916877023003366385316580548707456861339292815402631845461069331793134289692559689548355517170483298697673957086665530344608648067305709921200177768233847323661721096331769262460932356704867807652730692283398969719983637224168309001948461024102867321450573683727743684624263718589553786681522780468171202771828644528679854483160631900861656936631308226822179802452075534949259706960193629952938565192326543966644626468839457787378352507939715846326724946904829159361273816343835460676646032344410033378311582353120862829380794449311856256627881138144110248911176569653506904995803449242056538272643158321703050252119872886763516923315921449621867069945765525183876643956448646480058433770176995751908259974389827776864708627803503168282253020622721925490764644282632235307383156920463839090287335526119804447851238550265242699408720637447205042907306240848511052385080683657063747134485120036340587132649824701563059286341852683753584175683586544765580372872679897387777890996803049755514743938418713508220030455637133153520021512052358385186754729461997577428272005609744832347537215889671071417883287736347093613505427216647572367538096680918612203210974618585609799283699360150218772444943185116766234869386403383199391563636906140625108230205210091508777628518854806194947535381600274983996477999719639320594142234280943591651794268131593984448997827826807423957309480501944580690725999363738189575108644150374336644027705379072208318214575727762018941370235506140170058122252571953438574442565879035098513555750688975126625230031580002221355934240290987108398725652703999299319352897575689661501455449872089349796699682179696039951442433060135469378003043093981044624863604300347227022147360837048589393928482558367003672123296923791329344076417956410181729481559416069894435568831256254414567558006014690078790845417987441094070357317132008778083355002014690007100214581685298260083070001444460111144485650117449563582935163405452199008291983387448022462307077975272040460878846629635848686426627664372864389173026856160868341264394116989623076232629504695093017073742795629792525230812650378182013651760441176679170402449141057558308034617355630529735455865184870041933415777535176590164644131668846874677804263038090910360437320935321932821447557178748503483113982759246924185838996833335472509124569424813557172900995831662124717527368199274617892369352581874568156114819818353433600385674549196506840258609636167916268922025481274275783638323177543811561575413375285152385178555375568661800491919222906033053820260822964137589232348612279617094480357513634791985085965987215818307075876229081789328050099699874386499125487499450329392349387197599894605984560680294268182191454586269130348572463766051860363916437131052126695728560315673669583844993485898072281620606273160480921971656088334884349543192873118106522027201762390734993223372752138255212921248195037940442359281433322606491230009973748223701532088488882476172901581771984757243618004966301654417669010584386907906251550633329183867271631565935587223644027763558377654963229592604709338233067609735408156419067524494837244190882917606813284468549842116325848639540618888171175250298730156029803974685659977593142352759207495772448913035840828812721599484253146431426429258216670473647860553573911557738189555011984832572223533035932999923226069625009809596743952485053128212725461163852971158903982376101791272178829976242160644832408159117673418178058733116848823865981995114380528661123012818908363994735759874206391318685791549248394326958431174851364482562730166986221775274880032070577413250229014874347859452122216921286552613271004747386998567173168241376201221512064480520568288424656809305682943713902636246828385968353711234144765128914880717304617369222894094487049702118165574379165725472007753387438536595129348745982755829396093452641798101497855590190620820800003782849482250861227285349305028168091300586252103779115229926306268873448809804816038644406468197259399587095202715652265779291700619612166021693985040177809542529588143304586259053630123391213655618479949557371073669472895347920633410735945640437603571479837221389379134044371300025222517457357055128469023309316069017027739174986246469494254735351709009399691200154440328623988310685568645625690562990255965696940337757568271702638998321346965079040240765338541135237881273458566819822453774787398915193434237224670505898837204251538100091994385653656627431167124067717621743795291515264902628061383991888542285473993016210144128742398264587098793557186965033082639168073966008077544665999228986828286222195562459082634875381035229521548347996364676744791958140475067080923048756710990225459799425390833322033105479595522762896088176740326201463030473927689727425288652589004005037467940747439216565984496962739734421073895215976317891342456194367285970482331494952993637917070156699828980484669862143715891748779898223373594563478372182872869133682357654651268412082551492792186978130431929988763552380493600548233030993350083984090360239685403533814381001636412487106225760341900428587304586178773776027066986536293145951255938399676280647551264660592217943929443160171842187851360949772917740587913346934347847668317792948794757957654677179540131630567083005828901736991381122707458828545807031271249014665908698879229190654976128313502800618049001801425479935485592256397432502636679330176269800143747461755996530085660572898441428363355202718819018347455069747399637823999852446788197511276288743722508470643879069760653810906067608460718751441750549640739295059691611450022053937089466283345719799983182740929688051158506904345219018286577484241917862250821243935548344545865230894641707724097877914613280875492168534616914632701952496712254305656047519824514011104184892168093113167271646406538127784230141047231790976289572644224658655490319690891169328406190818770315856474991166398678101242276895675108347156122801280410391906051416362358973763630734025209480191323526911268238415663404668505069866590363160036690658237157155037040913037612449379785109576710907285378246156188162404030092808480718986068019639078282112448292313170622789962351339013575572257114057247350094633576891283895599546604200473471226739754100704166475945525381109043102540465910693392299339844860126549748872947956921196453297903796822489823315210430210911493845668554824454229696725903189892174926853016296512009891718202421449059721619026347085745016262779365023092401780043198952495952177204269777765851299683757325651578344034264472834858172932736188678403802916136433114749242062337022963975854854746786141172188944737511598533583458837853796881443968169620371107153849557578726105284627634115131109061661348061145338875465402410058347516086344157077911100583947151399224944138204298090260464116921079551784573965903611945724998730627620939666415028919362118761741290903715306221250394525135193416178894714797200052664884359944238284277704038560241562138401750261038968215638735083112210626295644687849412129472583238864871572038401142883369608513329781287052022473768406833251371024148876075215360161141008351064270443921127934705599470115647604476820868558669431912245312283181325496738245044446299049115651852128859226694105624311296189345444918231834811477906468837015710811764037501849787540533533813605958099062040967170812341838507909672069986490350881813082133263410002556263181085190148843215585751309553652902423106477469060420876909189007666530652639877610796133215095049692928395431931541215563809714475131728778460567514802522919654626316382121049476830645004104934529488837490979411522594182052393479173670245843803425569473553806922021984509508416821196640480925016212356180189530200111594394887743745877580642853103019085137761040839750933872164100936444400451548196775765086533576874674829419398215458643949643460313072420002114700076401087924130601212283273488516993705714722791678400413336041468414848145722329965322278459168133181750079630740007987283943879494242185340995147284885000723708729166457485361954597421004739888013765101553064915356081008639308425481422945455363140613982826390217858689080053352916156306236629191146467469275173739706164491890321653732322133640277718781068012417962791594389343140920104322348720223030702349401780693526831962552434240659004766983063806780423186448880587802865338731831175000447949164924336617915292110138381579186828102880818651340388867601673549693603187037010629737722198719427948530679852171527596197200551685025819099607581934739018273453849506022442974964372054027465433321371341578842470912496056208400966631715386369770605381362787800385567021180503151458509972884509519751394044877083232320330051900424407012876064892974975034936253390624145805505131247528867293739485548225749948351981004168471504667259499850425597121064398092570003124602476750319601958737290371296028650678175975300767901444851540132128408361181178746812240949918915668634753562993787769383486315964432569456852062401836358391444459981933010502487829793430697913350936828893993552137052427115476548491105243268984765633105548047054021375866929200877440126620161510487510232157998878295536090545979741552195428853915564528093645183856942424794536765491733912302336992676948160474616055850702497247405104758945443718340905350198005786852179974190304513431947664942048256296373299072172096421621991198921899381452326981286773286606926376594528305290462381940907942562573458079475488583070133870199669883157479597150866863887772478449134786041512384909476615363794008078858579819757378327760447002813829486965995486904494334636355276782266045097310380291201015154058155178971095715633908144149692528908032964224948055923644935310875205509361156559262750225219278891343628250014181104683040114992748187163981508177748222463897442096470440230050956524800271649674149723506221372216077148967863393702502915956605418031224341659616972168654779257150642737746548966698266701627215583848444022454370789237878704048456474961928716196507688510731829979810010876642584722327887489609318532941717323210036466285992513179485874737736191203794174813947661370270383862642503916894005186824984038531326599515452495364736805268697198771050347000770572719861221327696667251681354993957673652263398957114086371325890829648853715249533579628059591213950646371406265458503367135547972908158595695027358592023466466615949030139654458909254874951538412905041635960023255834975642737759980541898002163623561861292702589611364299625333942580710535383410273864423260646376989160270779067466562769049948973424067282191909398124206750726192917294412675088264953544881096574118607030477814608555908923365710959731673625458161712245785388074613846841070165044488110441808180362903902496632786762773723588060732559957041956124366175627088875376927399161315821738857564422786760524944433393219182894772213806522078809367110127598595231664107377422642952597718543853967053226539962990953622533570928012602275766168963480018907955357115305648042301140522125709712003444590680622744970057601078395189890758302952345458256488835655238361059028146809964327913620161711311386768491534967738050993873410720970628609750569121182047501842360518985889677230847243058728295125277239965128794349239165318527390028564687803234095719241768805057583543532644066782271652924570475261277391697328408648197260070153355590046191645104962785720990753456256669726565395126110900906726738447424585709821752643463586997321660139119512381475227329597356577262242772775331781084397822493614184594102148538975051361702447537401607156476209528824125485002621925265512221001645990598374007520041980478104537272948608696968855149625270771905276496627598059626747459146111823810492998280350186105259884567840007130585394799679664195186535542033948393678216962949987842062821452189211629236407000968463378741167025374717808535476788495084383853952033788891385621092737518767702347474652139073271554094319303572009613344814096252892496276836582980158980410839443389878347349404660914041250943166163440584412816332954195042571750762035392763739752872294611720628269396510513120595891985275837084174668490466183157720518733744106216910113057324602714013013659386825613073606189502050214975042116995880322339712301421214021560406396928389329205387026675170196718936447677899059704596311677445274522158734303871498180076810078559328442106770797670201811504623236743737239622895494858588147792602203241977013852447995579804338322031742476843306213950489922136204862429681805639186586078943225767758157360653710569066222195908729021229101758210029432165826023585939927089960810381693963949387403670527023618180849959718327549964874661917301045092142942818063059698050683158905906831521754813573295247716978896037233165927612470799279801440515511061691513339013869417311891949710433350128376852112374482483494208271702556468180047247897055732866083231394660814686154628307784118393485835427671750562551276388570629004844741795308111262202977635144061977512197916739882522461524661016269919907155093158703595034673215401159160187569226862186935925421793721414322434177920973781214217244063943976224267801945333327275862756331696059391958402775188666336233540539349911884393433770228162976348941664187338356111152566846431956126402937843743225800355505684739906119866474904318335226974934301803368507893613252904677423324480182503582149825121349034685222592887889180968725734832784324656049803322917237485432183744142148734241472769358491016764313559414437297907185414788442736363280676370187156220755192954291101479667257049478853385296071157390760495075701181500920850331645048284626166373049348084659864576902776691137961326908953098516424110012535991186281047105747978268937890508222605616089168100788883787252183742753634480777492159918163369833080942896684030643897883536964266293647992666404517948934172165632264749034364228078356868424865252171142926188137669886377958330736774928911794649743702962993237696091431715428436743176217817550068846129749657032978390813310265919977857018478895484095901659527885723243634475237035667717828903765738190585128507742363593083457318283898678339006527671333619027559869971992483782668786958980080681684757561370219614667167612288716913811687455059618799829491723987224678965636609164282306051018180685612423575559415846292795263220512459003287447446645446442454020351493296121556633208007601504944571131152509476148071496032075087887556574810555311535396443618954117497746588809087275046394953824739134577798494472050164486597565138017953911239169945499496926062152254734616443712290096959721889266787488361007137920253164914621750336195154959524006811816005800983238734144522946878958333252959831970655558033602689208993416171190288138855503780253094665072943110967012415048234380276460356407421680474993098025188423261463030446108728593730227391210139709724682229976357656597992881436904543701777794353165002168548016139062043637145083230781933783611946558744757997580765222013203502006916650396121056506158404457569358165068558578099495673970786656712099734093156426968071389451193837990656712456682806455650865912767954988266995795406675346588377170215863742665282710464418190664333842516352348257991206269333929407702465499090256590646970720989864763180688064333793151359014528651165930291553893330332657294971846894570649785442251539373711120533825510751011748418392440688384916370251264713590768356739331465306609156361278645713296382739897255984078514724296200235880879003492819530113281034004033372182675069536490427489119199494399590730245693240018829316726618863300482757650004441875557131888459169597888738180051356971351443938742833524967827576528608949306891594394012365123285977875358545600584998573302186047153864347911625856208658625338756834165942319732749538833153401826396400297761487771959870641625312069890947779490822876768764399761795619043403488315724406033434976089614354762232419156281301423537982111165157669670017991124539392722592183607008374594187710006591712639071143143103717740233548949893350375689179223589628466167845106771438502904961723149483930979747240309268259672008681730658480803635420154909745570725619254043989315672622378770967252261514558527357338260170557502657898448727284291827392806687238303759588934529539941521736175971251385045021404088137627751439749990046666370257497445647155713888044637664819658861711230418522560851706533756262185458456344788087450647315054569220110355175813942460251768189256496123131024784967598467043691257063488614052251884610301725582142693549525911641938909295832740523754050394880970518072376151103001754366501794713714666604576490679704585512598128525638472772618243436229784441619232860711020667600654803324827811751459239910868498055410503416424956765791502200870167971381496700262085114664995489889829405968813308930378975169296770759602934591816798501558072976284721306885188807101179452853186802077287975482810718416033681228519184108379135823607036396059015250754383306756217398978825505180777460431954762595308893436492912539817156884558538340544039952224455221137958171145261951604751650827727974645593177968807730753832932790373784901362555788728940616235320426781947256481687302298234228475870482253373280833971405609343741886481488959824425329729694915549938568246778059866149879697376729876447715977738762323039628254443655116356431145046204336226902391733117674476089959188519752578224297282657264690659032367529070785338745809056425213876561184173861389504311027151110910307276475090797597184767490809565532978793369215034372694275512360033722456302004842826552011701805091338036669531685921300191612956675699219207489519530628030788614754546596869895894795920949580273206932171555091946732286889763081707742382055319147112790781539880872112891916990028595757766922570475371302054340688634031578097642179552998986081819953395676414148979673854048331231849751103029181911871411086252124746515384603414177653093430643464821141821386815270223712866757020946422848010383513783667128425711202668994051734137912749233528938478652256914673224833531630444629313848782373564252519211858838818231212500203205121887239451124498770145166888237789984002527817995204753751511646117038806026104062145673851501115057846384373569389672251406518287626802981135503174417359614878179266313266698467835980486321534723853663282669045788519615766611840926688096568497914970269026847105570573836628385289982441450644184249202671123070547384442160879597814620443365277336761214439705934367486242411751112790324135502010131150555169883375402253333393844134871870142632911832916865391954952183114499816888597203368829807487179023639088099457519023900137941061191533522026308933219369856585119785060598320545654259355239440638964380698693586813678593732341663671012111634785913582762787347350719210501404333212695345130009476738197051448906109525655778389905662590692963320835809057513827350476297695835555309838909705580829553340475338704548842359745127557483480509915936260593048493459764114262653704439895939408718156110404929833880536007658605218475238845417430751402251252925143719053048809605730364571751856799338340964482785008707291568340381871017309140266042088462694874474749329146052692499878817470292414642983135693067962384075016916568889665914635786450261218307022932489278619239703145352108455539839626282557160519286450294741653725665482380404696927773438490464665913327331195754658035338311604135727480813738864457858754813396702316904462123557846149932668595654915445302344997010048674708192320697578310466964576385008688787159375331148438257745490832191347383590422009938266727677085510597105890036545594113614230441985079349119292631044828695829486253282527192603949627639647046879585926779420247894630699190436050954299707978503826564810864376429329486635740157412574666396798476499305732192535538826494329880611434527996519586773186961188852065243684370422288465790923221856938061084341430918616702159687193362955450231320943263178626907982273973631707818484316456717289455544440559055067532668310357927976488198107941849884676556364709548556753093666033349673316461461823181914878891478590534167069264345858326816480375190690185285563925878758844525292168206920499948440441227638837467348308169884507190321873820034988668710495436098585750150082622119378371465359144455686847244235823508630638810069411119503630426359324776260310943572051643851210357173692897521931995182837555179052971066964514907169369457153151950184551997973244747140772571097329389789641019276222830298237627673601906615945419885747590218814594473017062967540904386334164395420644393322245158811970690563991754150651931198978300013591618833331894211249652732637609485523857155870187029935065937102327954366896070011472296941102706647924603599394281877900948200485076240918100667088775569537138132084449904716221490712433226987888941159282187471429823549549688624660618572679503338512816765673271027344509863653447016102277995342025906755498099450527866846948812136452173374352563894613066756488344589235895143394337801511120394813382828143236079842879382364266250813894325595463379566553485059640819103042503059267079912960144346727276854021127782109580430791669618375296247780714114541651648343627009752293585634612449027019082629714721992830635213063356641100653411352045858871793909254106336246831378751927546850429256145413028988524086127419318074366606480967105466657741798790876923220309245494497038171558199539387713936030711142934958249839260129325718033759636967674194022646038888182007960062753807172396979047480927722728082483774907945738566463145764151582597329580388402766930840692227176281503888324997246392855107603427924251631840831727219128870027628268591737876788486310886823699671476816128551364354572182473003437633075832198815406092312265663537883049463593106725160052266572292778693566940233144862894562287301586484170308766980662858147020924715182138162178362067810053994191400882453453606149142727421435702686543184169966189542132262402533990071626792332421153752568664445053098259774874829393412666944883918188638493415471437551123264174573681229531770968467990872331201228467889052559548140500382059277520825706278103526083972647027665756386334004434502970281174239348456105305201952886115918182375987180953246253081881191142054517902273083942637400511003020183074340361500560163167188515142905000766491720316512722246429272164992193721566697561650452587464357043920981630829977297811351916831678952026580211566803321956787261417459061530901225210747488417800627264018728444240913048518868495040622212489300143935932077955102236060947793547092688428382151957360637086197480505399149769573509210666208660512339466617181805214910974274967630510186582431149432431679114910957317373997102679428989680374855852771354601645361575855841068978882680629611157097767025672014465155423614527376223902763189636264199025770548299959308407805781270911614053259012272903931130377663703527478242585595540253129560972299508040202538551889347852198619133479720756621428144784494688366341456701877858506405540978683899167747161257100425314129686768758695408156148002772733653995673971210333743800370220381926274603328493345248064057920590220797305594728014112038983572259059282582294947319032950554077813349159272623796814851569038691098328709546262249730284259981205590493255794254565057939384191031487505658090678443898327067919024600812517613830656481552382998991405323942969956431141000285453001393806157891757392017350939067605457829761632374963854901579897699459577252938081784613708033593409587928988912668025657787890072555121429296849154443228935934229768605316966787255103633401366800644907693173578082929108917030726871150811273716085077876045452491548606436049648021206710988945454541085721971119291609435460767479917088187099008109081028537903721301070527598022884761569546712507813114452585096564703208658663026517524530678975034959570509686042402512960717649498504156315359205435320357372004970250594212728441908018148912420230268826746673776637165147663577922744300722599591416162548097834951283455996812916294038554798041535577956269489223965826325455044224753550665609201296880721908200381073566800759554145099067793781307126850262693104306804784015155796418947116712546326282441468465935951816841500441512053076538852691257001834327870396440673314881690372435487605635821143018745121078716621948255038852417154928928353806556467247297866928253849210691041235385353467508247729370175944419694579555863055606917330538933648665234733563811736581626959356471478092035508874160923129260375612210429711842450974507547334583428720802619493743666737352562206411532179172018291868702440158063162149287140078820981343810745824641396311534662034258714194129874895441548023952493357861879308561153561379357801051817123813247396107229339650097086601601242871903710322372054493710897243416950236353324944665731460565664265724299414807525453635615943267953128729923486318100369948358888426441012144034828282650227348562388842403921833408324573259649706456958824080498312591871550698637574722152855176704955246824819840487658333181435274941535441250041893009503864621788760127466347036485006927943573673370703442800056485731679994128903092515373225022593247489766008886682691922070191170666768634283897832869818842200219324973687355121026194123675805984009023075942556137084119717552353830093389256021548115676868505807747995384768848459109412679100101806842019585698648061526651379069894869224278015802274352058139103713810054529499765087573795128035935623270629419983439902045889255832154773723139514737584536854428097919987278359944810353430283322923557783123536644302585160651560507127379500244740380460806855865891347375173246260710363031357292918552279471594290945419485321279707134769695169365336259910870952689491619847265481714507060332555832749359153397241403063478821774261395393251202019029802744407497012670055380701710915164328044170030108661626846046404111992861089854064375732459793920975088314014988154343216128172502954877962700978580842219936080681348019612296499491815412488443388903594378622402935047204297940972504369654134435687741428389332596252188270902813790105649077006623901993792512048932653620202277206795747710913098502350830231958709354339846278367100333540416887111915700796647638470024296987322500652298428967106839633551087591688968784397454191568534412526422606622437454268885255821865500783972429095783551676711735296484967313672820087072893325490083855836677966360822494533497548626874516698351397808413346698895204088759573746612800273012245247196189990600529620031243722750765818291169530769083209505245020745718155993979792541390264143051486851700093803557067091657201250127098477728620372825302210966474728195205673725061319081580078018472904911539614120739216156429891348554113325883452130311808989442581139737729904515877108278738391065973563524395386714344724408912508355016112489043037729597316246148641278231882356205878240802739489120681805997859172679195497217872202806846587887402318426935513969144853015695309823686502419343879379216132426765950629965893150333640820097026819954977416827667501969542745252357227287358889739169946935296330934953524105139742824106805380080925920548180247054018654623785669833842917313284459189404393771007609577779792881375062398488398403589010536267541342727134451075206020021948061532365908531720325008954806555237373192752559769553240022843687228917078385390924418167709438361608646346346372381716100739058356488323366633770671499159360370594147289798953618718779020850489019673867803041062725821277404241879105738412825548750014520847395547065321466181486112598845815704184086761459342887094714041019664048102949994512610546103717588031540858347291545284560409268501061957420210792307099342529897210844225912948700202554339791251959252086741346789508349065904418190907394710391842757403294333820569570434344275850360681484024124427909166115591656263335220830155435096923787440345071630884790856836549839397805734516699877594478504106667904040309100310728804220226721266335805356705142783017609677187625095380348498707559540710602321476137992683048326818803968279820148879001877580373850462279643792260227149250335487388779890926566106491002636752141612695981936495042655660414514834319836677593830514490691534139455905767157763488008340123180534815219006901879785966559980807668940223061738134572177939939015198771686833850357218886765377711954040389703367324278531613000431226426194517658701323823301743655226515450512452553358966376074172200641219726142340119801911942431736926319145113263960856751034764178050680605459233224935899229230559828257554085313422126835299333136427308605604366154295631213731214717272999226184826101833187819242244021050930886167294660412400638430805544642978597719486512057155905402189513452239533803015592940620010482840511344100487080704392281703788092378147620050998265957185404994279118141897665363336219159884841510800378781898534226820561397229608265533492510862964209620937197925259473641114777410260078390971053413791218134255472913372425284779746726916437018511660011007057776304284924414029113226984289590903983881830895479323289231825099290985225792320810721522355801851732154506898959414783941264392083625610028889614264283460418092026444897697036526913051565364037637632728913011732898780617564526059548061764493668795925614443855273729938578089250761737517334966208707564142167719574573254809836313583900065667812696989530554809719678947117170885154972208507938880459684717391181212544127511043056261546348109018190685605074555094587067351275107167455004213650985616305510778488993783798865626011612823536518016076898983348152044311224867571286897346665823127244813562774831473886364651274942309884379041345160963067207705836478659562681085998821014135014315192005033280522686787679017072411562239873549102741422986202781196018349587160046085045156624759910517945845941884188999005342381220983510716256416588639263124255162809126691975247532896274973744477012681814798021283988431149686217377573618826365797051616801848203128815180858823367205624281084809018783665948003551972080175502154732282474612962508085567459209488513733038389688115530273424297291939236767261623622590365337326583334323702919517212265026967021270510231777673516387092979957454957737162498024144414100162124590394562184403279388488850603853261620055240169711717373263801727928812413595964368636123214802923214970469670420557198063051580989920537059289607891379270891078626597144838064370905424402186205486175875726096755710554524970072498633665779002714332762226987028713982081160774387304625849737182332110666967157319394246046662148922999141319402170402759634936825499736348794970696593315990653098306022880176075240189411246281034536274140695187360795550971609729395018495678548979144367166269007546153694884935853695494217338486227913730367360271670198886859352857369445388726672831278361499162224940497302292362174778932917015452917638184415936310210873054487174487600250718305842446838095676789705451114808046687022732737486051429778045042506523675618423037300263793151317839043756527231748509076477021216006823016608043173199929182627658633101879936381660367143240456858987607881487005415969566509306911826364987775218773601219603290004082929347162428010137456144664683640093641155200335941410710379989849536058556755350842965014563835708866002341430983478876671468769601826245129884431184696079602961320621067848511364855220626629323528994411837477020029364943473574367503108079657284606022086437388492181829376934321793974167371538775897275401553282826927348067986096575662579576637551466702813300175966477315486011522759182110481559182873370315468108791460315079592506932077338939862152826460494580169143257486161547369659756903185184978279197580929555949909307355945058121215336075485007692707347104959161986421422862296809247560876764591050047412898126570104367247453037853442172198608371817090943620460968669788609651187088812639760170330784791018760839815617019447599151887098683307376563628325928902065284950057261373866868250750941770240451277796854279014809361779608436822524096009661599278879896702776351880987115899064379513449224081724815881418579294116526231874514980485938954770980883377295223538916643211112824026013026435871094684753697811161348782990458020324043885122496557989278789273814747206887395337278553587367350096687478989482312096523792802141812624361269176011855016827353370229639529359381105602197428725171933146791149931661576655864973074305996192121299312909738923429493540257452992190718366920619642574825237262316828173839362716988164248814124829954985133919823289035312667892209587010165414114982745553951769031253025672654670652729421902964586693624111533707784941130909299497072786326047734246225958765926038836235957955148858295980652613526071783965036317981254119390392572146028784608561432601682437448919355278404912769034961105409742114191148850415262097890113458074720800482522777884346424672569224665797965226128070552843912991960589005595817840522277702990690942487183643834186708348349131113551687382162299099487297136972505183692879061442057498214877117329560217925988547229640549098942494376348597950944000981456781384386618626302307986436870504802012042304326891065268091584921659109087507129241226099874660583406133945465730281175193869212371715512173077006444983846204309236479168980541139880148490889550365711914393733322491578202097232266863152045381258918987639729605847760329366078327515821302252004508995843831877620355983554503017295092997616910061845743070132693496696138600921594790268326157293618471721513187620013801748560612080533326849280574186196305094144282503462739261997186908387837490490350818732719978589781118780448923399017392607218843974784230939738649634562257722833247936139145430994348815140368958497712219398291977018005450889086062653906612812614534714130555404631172629233421473753888038793071956758086477664615443708646535737337620050941662125882899916894721510560101886539941905849839168480125132626429028722182050891853072475329436983928438362011623444659934661456456080382488512245242238091121617114641705031316328706592415912982540773216414109230604373249583296225211636363508423707079723972218221559103289323796416061440457102965474058834304322104254846744437711112459427991628865360353394849576167533058136936437640757443897858964783081617253129162315439550662918140399216159196563788981951562232144715915311028562059009900892288469819563533013703970908512019911776242559532804785795198333028210483098905631026395664776484268016899761068282985906392092285275651915869882052160665577870772088694961226298311687678443182199872931715628140635113298961522579717813247251605898004578973186488344766892599794313416494736303452241553936246413824630617222024289254417323917727404253459352117078457954798120942313949066588381218823878741013888873705170450804818642432550956703211308902368411095092737024881938750648013178401936229740408757676150213089826667507831482351227015526245536519575367566758004710333577212974698740617149533976751038617368268676357056269929367088197262583795041238511653715617953925895583191531432802549484161661797240577681261423886510417962444597273091725172763401384764884795232958167466083870718999956099827304415984099715881254742918469653640499443792281478175170181891969063318672440147207956496222636763735225677795791917396205532316306707466886868714375640722440859402349014842184166952324358499522009874551462138805281532695386175492403905843806013051597317578527538412215263593249348729612865412232228710578064305518098803053992221000854083671500705664671815381825802841952888782731481659915903591969370617984800456958563854116949026703959505982339530511183001500516539608256571725108817114422585338353319507547175052434702191348792597088828976217516298641472132471440614739551273059766900244757541455520935030438942566012488195653767449095228887165136055669991057073515969236361122801791514708273533022198993884857410122681692436117594743485307866637592283529805543963295928084313756029715513998961259749684827196632483274637541437426903926860342437075392811118288734662529513373687044114595941034959227165948361638790813520504242581966127545484992910226509400148367545452188099871640757258717379376942354907070182314797180209093812886448775160741932114430012686242260521472576007225319020098812767306122852627300235285554856544284835648641914312221485585458602584543140230622329498004141522337178744295577273208102385194726630182687460786738897044422106579611204036740228613792156359985492517174113676709782170117272018128423282106702075608320893695435923834454007784235300475374965710842387130814836002162264318141872876210715036164022959652244200697224877791420512203965084446759108377764731503513471808512101967221300893803832699164858980915611745973485119818627020333200480761910038222309674251852970649827634058289013597163203087970081336627496193427296117874923387120281002591903293691175493274866280518720730783447892178861447651138527427305371655918694506318497775340651916520673984710059292931832661257111837166518870248043556948721126499745079537191735462136732604058940699817246901713708095711550978642256306600563739900855728968940102020238144975820817766244557631565005612323110946838847580143661319547756800065626164359243279117089747933484803535220178288237024985599598352966328037626330511444425855059467056671979396165954921872928035874742402356966963603340436941320936178516950885630803103831895241975013545854852830496189915368373764439165507938460419485812983663195227711579915382010956524333453508424706052236259604628090335990969173509770005689929600675649864297912954661921050058585023315589400328687639120665657748432760618516303634998582040146079988626471898750081866412641166935915625897799190600388341885122892485102625844830098649761985877218004555160290845737354667811299405750696853547706654013869018037148862090342401371625193862238647575939750172407446260233925947700447096510225426453323804113167033324414420875281325445671366896506558819165359422624949740036166779965788949203350276637884484433620293583079173921300534777559839321040243243925066962100790408506131604456334135203080584666982954269913020543908926971257519797079060612466318496292319022292027951226177529249096446803805686797823583387599522943392300887884163046781993430208122870760139118323904436966501340929743463404606887666022396914440160574594078694230347747409476119182324773667938598664461660232656229194257703906548954336472992529123876883076009876660631167122278776377701583338211863225888325678265226739680251718344712426979706175817334595378924600739038407537792286790042412084402783793790959430475108379317895789161953203035499881218631623429604781659077413754878218141283886639500483045802871958221859538229060849436580682477669464866993772161829576308605411939599177199142684385139009164431132951179500293669693509465856740330673648532836312087217447783604353167937692178349084380072438196350593431335845269552968060721817124453787636677169931515609262646833363542980705490223662587883777316008519878315014873523452190756296707518420981453781081596841055747736412049313546272515701077351371859094337472664237325156899956884898748998310466210961164514586383135035510728614919080482620347782368881357493813265870089558250200090473095842027805914940315947590911634138061247016068372364836200608715820156569756320395580925110198228435000085819889492467122629748694600444592778600584490169064749347849276404740824177376647697092684730217849257882318234316048747928332350577609509310178668941470782271616951211360557187689119752308661400302491246920860219686545291434690111979439274140507175590911047397985029962205753021588622907331715879573058991194791638360647648609332994842889612991466325255542851059017502759985897038288912395560680966597240552280194788323172474682312740796894129477915360480576359597457561196140505702966547635181726557014974723589835381035498628376837716410935666284754589140230527825139554159770706512886430451325536833319094356862517052924803046592986396685586542462187764558028144699945115832811433097773543548441890173009434049714674669546007893652702771728947656954737528065033498118046163860451612833227329385060680556911942836366259001628620852389375752158181672718937544408078808669630431391454082817501706689093512697466120688789111325693842143634102769291057729052650585315339300115026769355409465859091453163754104479223583637758337831218495813082713126804751489777870016578110577849910894015445430324542850096721457424090094254436063343588439461820611444447516503087314091487234024460661081658337427579837239694192199841299928612881493712206348828261672918690451958943788058530337618940027538466738957329648111720596956018379858963066588462537359156981366637028912972125384855602808560242072523412942940526611997958082789425101816758747887527185958882636814000023281440151439718101121374890702626907773888867659539906743854695847841562334235511000370902180548410193190328119601306815783963922286391346668156514511958451964534646394416836354618683565963821309742877008619192428510348934760108969008169981022410563011135984278932391559339507214294925647194954489156278423975885455481739539172250296296292474532749339496817683041343034560911956916637896889939449916199216827961417014283733611042965567304704437900259421902187080214238727755848001818141560637583147961188928230443823807242149579206353114143580399686752750554021821821450425077801828847792454721982024312966482615102450942316280159163061624669700773436821583643775646570219496058530462355046315673238055270033012763854348118569499796983771970507967785994085472349589203724007057079292655547458656708489441657981498699588214508035896415983589861930829855045461658823777139902463147401435031613342242217813018203997148588738346506671032732466720520461924922901534735527915067290826222095894131671842946821091143972247510321224845280298185674935254032297277007072981706660904672798088405486890182005419354585610623509656065039014719299694191061100324683748473457752718754787073163708505830060916793334129636467948841934604085324939232936767054158434658133758747371866969220146673022578704547601490327075757706325167703024751385909872383480055323504058767411205296456363777558077836569921062440435748844479847355061166127386756251522974999506046332438541556350116102139760684971883748769067452576103189791639178794385903258449772849257226536470325433694857098310674526829697440766673277306707864322943568510310675696015828664348391846847696329367990812734614925780998516846448300464578601463800889905351819261436128685796614752015967437827125652067649653523960525400909813163102320196079975204842438245377851225302187473462782756998107946277019578364871289052678324469385813040599485828101552550805910927732936738293643855809172448355481854784156475059714220941185901803577478625532743895868932386773908365855870152266550735003589861906071380477265748656977101035937877548872825586360691561261731189669412531663017861310988707005331508546390319959006394127458018384607157669149044926721553229600042601518132711455219295891159726609791377411176268119355847934648215760778835205140156492693048790952129019771137728158070418571409059233565606070897367316199002028974080955097891132551633011884538066680139463404982353906582979692513525271496415347880164452411616037253252243929720154219492874179300714156273528804871876462997962683854801836577759753020586138562472081470720755294047088546822495024879385161866114167614778049217657546989082313143103365771014098252295986017267761380178244184574815680127100734247092984391817587080033027811718434487446067713159654906392567463406777837193577497078808306842952255744477120289552554290994681326404183886810436560324176881794317889514837668972546869230432667758758721181984835536518938588234785546850534229479364842668278738224533470973575409006379912306636142808848658659937030097375670227093276369055051754338550055316640239934756380128187743984085829617830922753977579887868947817076194736264254822797530752976657420668143950101969513241749873115301546729010025144029265632700646706008075669343023891872944843943890436264119241738922896113545393764067139045569669738835817835432470304529813899660434226913885962068263693707485305713481453611158324632531055634440792797373548549079730300352253900166096973851511558484909844377487223759143259147736419897585783161993702412379229813724226504306983841295466453792102517588504792710820545783775277381385956485989603567751297160738986417641574756755618790194602649355215528241996760128735317192314468542050199082176507637276118781532674771505984311857989092859213406778597763578253514933974043729137660001394555982187349637823175785458614330355556551087970911832661751377548373749190476199305236926201156933108648478546772143428720049826876258701013819343843107759351499432803652519785116856881267117582938414140794143215544836895510591860838884683300315374189050554067446271404327874575701543139539773511931189577881442326579499701396339727135402324797919887406147896854282432095736852271557801797349023518052811121615724734399310304205023385040948619217006591870507689792999712727823799970765704299734427217115579716109219535457977814262960071074399175605156009608599021212089889498508798165401475508781515085655400822153712232933961087747437776204735182214813927891530989904225328579146138846294693091072781893802280575829763268767847230380696979287396977740962551577526710398198557442417198266881641228369347099014261097486370012103201305181318839774247182110344702041877323114853905566918883108888467259790943262545319664678310872191335655831637245176797623620010645079857039885808247360059870952432767277370672583437027475950916033040071616043181007154268352651834864563345539458535636026095578777864450994044233754345003987027424621391508903225433786711433407779622983097986951053105668785864008619316373713685404627290186003469572819337212916640004175830710753520941771971053638184091750410901805269527043337164414984562844849295050854332547793335928836910051398370701721433775307419251849040405503373395784823958739593467286222545113248082604387073005947924464057973421892467325166599469649494839137278619336272602024401315543257319617932425383497223462432381169148476507365990769498801059911854195716593626700366843987217998696248015269782370681280234545141698204932364146004531106982728045984453949546923385787887444921031769695810101042789536673883084737577094104241756514977731734089928891483576520662608714903330840205454765336315746155602555382790328555453714896969109381130680252646845576775912488985412997762526439305009020112065593454688864752161838917066178914964665107220302678955569639010610958197616897891604579432849167644130292842256256695537134756092038618369692292312306274770822940706972283615787741367625387171668249690438490483313127071079567938441120010579514074390861184944184818978278740721083688676993582609614875755307293379773043000146702645918119843898539124918321299097617497498753748188053459201698557985568465151089455014699193100269964028189407715882819483795171260229583491410137596085789006069539137137790779546716097483185279657531047596657184030425273178390252642501246398984260012068275350949735967149284237631665773483827295553247324535062279669705773714894607325485292210918099491468957522605886076914678817396425503399684632778945914530330921355691964507743277925203268987669480364939786683641258265025213245172291753860467916525818731149564638733080958046337022961553437014635961967354026685563556713006685018911107963323161062386305165231208280079113720061930318239039802508922515021898176207757069280564094652219176538133458183736762335472693837457852650614057067435048183397062293632826565843539162145025434187381377208701783425742384548958017050385935060444978299161225810051195825723111736761892680308992567034793479659804406176258192199528526332949392977485443157548514052830019623046075674338313136798157299222502728492665208139190383544418859584604732462779131910241781310095780690946353421322383795406176159835408384838897554637087947196148394748558618617278941364937203321062804563235433204542122846638201360026553865155196947482409123559443685882171881516061792998596064777211354489794323392048240140182803708640028318879929518184135671607267966177201627543375437657596400491647257216479535235387209659121613714629271322252899302487582876728729950584233783157934407920975515759928195244128775535693850570239242694452286971562200232538914872704569827876486587337641677265743156930746116470997184062023413032214116815962209364700203061678343437450987616447326263167283205836450648007066099804839637875739573782328193499142426377517504125171013955517754758457970979852566955769175131565609338263459514095851020210148312602856476537607260865219293628334266318409557079288068216050729879321697264571535852532973377981090332608230658491195382239515487153599497060911254110608435942194068754537281160447928916360765832483136821657677993569677624481727596475386188830475998184476386554014132336600581971430279574328033899328040404510952998991991391402069826099846115445650581672070604308900484229160887584874239218541324799655859827868012829332112626585246033876349896347835505661830987186395532073569930466015798874181093444096764747227084507827647747862336346431341666029413649774701745912962733118394490822809434674323304967001988569895031322434774805685453288986176970206773011468715529447582151056566142378985013283097537999879461064245999562242110478979285717990680329186124485165003810405552952286393244762749166069464049527935745429955221128355604770043548456733291976482647037779040564645649125735634224548810802259956506277466865060901505164655670036790972948835040058866781641778061559840329461848744150686188473475664295934009957867442348905933666078780568818511923643639382220674570230346048711682156071360609467228500033155969809480490990453789222269106227998723662716033062097877647553458230391099534581415255596650665363914241776295411511919332625501286644574467676090496247657156705909323057706358947184445218262875182529613913884774818335948758136743202571669705680486766321378307503479743715023547665341523654735901483047147989742838301161352285110059915209766631411735354622895163421421084042501411401096333905177522438123512874535636041227184219990652165833186382538712043456087896622339360379621551604483582639623743547389608566386681706344185625117117881188749000439787284057541769241290849254128151659648788514733085694026696595303381363054299375761769623935553041022937213642558130754449320361152725927221123761202894621235853724688883500698734498517711785337692719150367113408551900023817086108268216630088170728815257302075981147688596221483446232283557633260930157132360260186410954785680931896196935843823795943981820721541429322645343057055980101171246620887941447851413743787137660560118307690563492374869669283349450257607915807365481738147985043556032209008930318808766124173827902343296577354707909623914335101207379204262173265195922542908062393623231802411233497722046942817791219368132334823766307049511085355519850188216375682767826877901342836508826566848471510289916412713154187250101857051684737964006081965647996612370420534008513595695146448608021587057725702212706481868080478536305468593187168535957809111572412403943604034486669799531710630406818901196780050879056199769094204667236919734099573464466685949273981998444819828908907420504323003372919727143631071068261093925831535875308632170091598400223953940155510909233647156312857243306428002376967458176172959915489537287127191047052939545495652540471009558484312547629866288471606139311364526172217553077295816833897519707953788204668459892494815821904133625591641855361290800982825450829335917182402763423334622731575998798141396584611137972044179681955810056309103596918249798826214340155806141366316227960145583845414667768055306111401355536054725246046811044437382041448075108335320765419746930697648005421187967604615135302270309117433590217052136149903150740187399846519944253508034509872067683016188759602351470948494680558330994428192621283405764140058773774781887955283269083259103352850826811694502234970889020889686254342183662780955363436225698081357028906926733135585297265991261980340366380256541152442738690239070435869850610230568443805315386126017288409649141845063336647215587257428918776598091477850344485017453940115069735068329213148625186605986162768986009337241504023452771027969935636679967144465224119042698536915739919834247187423656980548400453183689084154689232903612737022822324909648234850301727016054671929112552642397073816508690623793873837910866581406272893609185761316579152583414569191490871894317405045751595479685638410644247975575929969310312660195558641066260922654451712777152155346675935833587192921547804828230717610037323412613668242924472457277852705946655500183101031066505203463615820361215701390499692713344224559353951302061690208844088986668899755072660068096155880703738182237847766677247248319372445601627778665232229442044268344447511404230682150255948421050669872265589666912609859403342401034300315370880326617686274706446438543360000485650633877591681368114899584397028562343099532010526725809472286474670681395525964225840821673582417951962579487545750022734543159207952190276508260439737018444178027798020046538233809663393531390583010967200936031560741545306123231695403259153074590723121014310886269710175171996106095730464131613526888377941379892734484853443811609703508264948132889616260292133109772521124996215087547098728236177985514378543296489061555175287895702073451078581695442785040264317568481261391805945641172100093877549412849013098434906154500684466415513793748146895318525561186247196282085809659553380173243034004119368699565962994726788274850527011051337918025039762131976071140636341455186736984479251877121565170767016184079692414952498483698374599790514199654082568324430722135309332266023081262194792384357914877073127960726303690856672061476889628127319609777308427823186747176092194708367740893571827500697776298086570559870124824035452899618985895663201156633954972386462939683941078835775615850429500239708631409209752008595219949710395607696213150186413939735975131829189317144915091930607958003145555792282424716088120471720235372498911774782580588809417282831291140443778567806490867945098411667105412789493345732798294416295371765900449513896337320019092260734366626661292451116019138385509449603210200162448225640590008933126485363287321684143493798471851533793771625707914757402871601794145489825265726361852164412321214270832992852062850077720378648526075475727145645212691906950755660605945132813957590294712315381888395200799677784710413768859670071388713134292483355934790920804580326452120654701730656260181169374520132777785995026879690212750820213631938510836930341608002953555719368446330183370650332900997693678236478886221422685517370909310921157371952504817900777106293345494711874309131937798787460718273246620639314825504521350408099931746239407389393210592593712899336257820956591488030143092404776647526035999961634478431714112214531324885108693095654003691123337643250018059996878502083850005756451401666956256843023118981744270595226142029170758661018435743857430372409874517450996380061980809357037481516606881784298156425947182776417481478364651482264647316260622052372385765016630765196177287829180966644888544090354040026081563060153980160805655213132915292266196323536115126547773323472325209997553391800144528846694114528993991467447624447464666321855896267878191719663588303233883914882314865278037644543954531797936176375012724917577457473754024817996129243187647842991492879070777298767775564315750186380167191720846628022505898111212855057943111105217091483662887546660332859106112878363054969129278447955092379913345408637328565884958260715300156582822186651501527753330906590967156857395122414010173629860864252558837089784654647435084227151059300116148254172877725211187395518728335285825624861060375538512582750381965939242017093547053014024578664665424865438635492492942019516405258547445305074729486761889260209779187359299456182751090219000014351760860587341952905073439296164346010451172293888032978414881256569260772208515327794983876341787605574765774604390003287476572687894088355569490513824893251896919770179717779087508859429987056926859910285099314601938910836825371673506656904785275235827913233530136575735838836167099043841261622347520415933911955546489971761147941783334627797904052761551966184637236448863151194574533454804646833707907798165063123410612217189225342173275579042004573119168656390154883245704743927537888819339053271392139507709755752464935543737050804630988879527303049906837602114972385629958178008864858587812769380038251421543230179533504640265532522852212417407939334831495940512282287729242673733013507887246049867277711669588778536862791596928724728536762421466073273065364484209569401268993022858393548009769749188627229435669482155077538170038905864994899136100748574681820873707700681530044594332769925052362234806563434565934305693239056074645705327640424813621364553153426132859097307793253461418856360885182510456191338792518297355213350507650917153349576453039094912115890008043786848956867790333666380207224481326964271011449796384175760721515144870017660358899042513485585999229286763192303607258500229221483451086424293613039873602523405019914694297255965573326512981104979143256562230131998791804685973977943382579344863082795914961148932818988944695579008258571474741770857607546341535418137367297875932682044219380068943819131918083914529681861208358881775533964788756228182727965114546562876503958544030593631113089869172865998283565307022519352583296308286020981499377562016287350773612674716839440822101946726552095145834449335168428779090489900961802496859345167272204283681079869692830233086163424874971793092473320199096962480920177002454618985404528043040387278178878818429046969433208635439428845610096178115015120148163211154443025739958227050119373664583481003243329558268497300773280498745426191420712303268183444157704316254292846094567792224906002030917986462916197773491190962010890925825690209081231316249420351771747467869537354641976930918174425830346480527638621165906470858796750290944986079917169697782298116126460591280807879577792460614584153015172496064731699486365661460257263571118241303919273861843441677922116783815988075400746429102276453856762414932003571895109265383399815622395430775994978194413935500839618843232951437272813684108548574692562128734005918967018943064241646481295113582834243754277702077254005689051644751236494177829971569131340721647603295017778153920622824107327132199980347511683856594591483607707659224002581243191289720508384513747834412574828393234397568268451215110827728761187020848534114173935116181852782627698748612086182700559770595213827950920273944219254260952170632167888655772155972175425388953514384131981216995013469493935730908883527654710991989621925684206733890416261320189786774185727585893911300039820106157275553288495136375192769162601018972766609454603681360130965722547811919308420601963244558217206513356400744847319385769182992263928112941647182430716200715613231091021215750007755178814468998404206224027453338025578225014955863329261315963147057951313355644576507503085416405106898961549509273765133132155724473408016826672206495726522237745435283015258166053181657292062528230156344269261770615081499001419664154206002447684067750410845078191297912763376531000145683282841951385985028478913602203787829877029360986485391342217614963421878292537041734855258809385970592315994153976371371089819103289243187038568875212471850966297947677610658683327859675898940118712443500343196141088871729038955201722737342311170280859278283164165209929997038405675346557780607982923591350350567127323438144286546694563196293388496838148293070850177432212174672418127362988990631304594609107523821531360127275315595529058730298959646038192515069872450953047995794752537306571187550359375607086601599441902197951892396402257257408207592649745450907878466263215590360096780383740747710447244986373859267267086041099826465012747051307813532572043615027194019754190948861111669045383389723418073206298231577199288432103683479965784316402594855652782317271100666716723231142331855021048913132560474854802182053282780198863589420336134440629946996540447746385821046859007334276304923989329397071985302931182481692627016940059004241604590778407549162485279909746782968610676564696963098961229817492529190730503110115512400612719377627261869303833944200780847435767900280064523604260328736014502311072569642878521471186245922095062210663073671667004877763494936062958991437489912774545519430515782605517447163762867411352468610604907206750982287223556609726902062330524305665072953220477141395877266363253330053396973615985132590988170418964443379165417946585387667248932885292944140811578795860534995916201903180191367707821008955981484333834818057375864076666667692582126217282450635875650175152399577186889041568384081251336268592126120060691096752387384181648849661736778425050656108458617373580677895327505819884690423798619134189587722402915744345564831231636464665521827222326758880381198883029733000468480408383279097316683696324919966835158856955975511591509249644842886624575496083455477834349656453399695636498789670693308745259346925702773790420035755322468313603791668511387977854141934998478774720272863081234214556508690321811467721683308238811236718240120750574232703455237655286446077233226980799780590745777418803574397078323373382945918119421626599384060568295869710876261129018686124164824239950565418720219899067836032325625179397368691967870666186417180107593661477800807234041064371488070740471736751080148919308725128598465158497431464649543505762486537266864544536218427288680896891438848532726588487434719841781501006657043578663594473177813101986109668224511763824202692958026450127657854760585230637517387255735537674163674515223637079755009687825742865984262668982440559871316288726056620036223395562734682193907868485797473752534389092186668790599239329496410198341596635711261295969090025693549238120323075006014744023141119303379701107798667873056314443386655882942015894081966647928789085464107246325376273929945057287435731354327640979018518893594530336473764945759682271137993075552808680211032985511033450249458679069745494778841248114433418345086525022465367926793052636435104476562532939085529579656840301833295451756490083802514856128874880619326151848047294622417636395430607265536171059121891333659688380203756719370196024079306574702744609961749356191232626031569646922590241924356875719648758980007565047871241698862742698511333471056465694146735151794921930571055613565143149866211462412847037431085483070498603682948169185674290681306821371131312109101127297005358386102500135321645404433016819611032556232389185695159335462979371366769294306751226950984172514751690434864585511211068063564664466655131665028728327078543048836446888718563487801818533679709987267502030889284676724151738067526678853970626741203891029998394697188357098097238108749169464882146285963739490605842825442960091942767387932209320085730653032374303816063270178727444890492915335473086248106262168557553540921657866835406685606073623841687164248738418449894438350556999802784128477061127543041072549132775412330191093290999466513202512022155134889452951028425809917800883581584881417306203435949126149384090184266215070891502316781676188092047537959731858096649480526879602876778497132793216001817924886978958616801483511954623347240622612804053485017856314673562951852192666387603016789978392778774586349387889445307169628199237725216167778188449974227286223821768890715674196629644197420658305314513309388396235929515952746770253942359936426166655959739467888621471272888483787983412603779988378630694404206063340639832676501184480717876509556682211668991811302126020266797682646334311061652974944885118980485037739908722554759926351628226036916928693330681470679276027547586591955080588345729556960643421684957293418836432566107870605049316358145246499029805542969822866561518801125023424823466985676493391801405435346043461681256685066818476384374122122209390194773420658898023687487099228481906011423860395916157762070645898095985229813865938562986088473390720259457249968208521164315591185579497805942984079423939217896379087473360590016196246317130266968070938869082347994123271616890922652871620647198691249613997886149191376951042191260734007203564274759429706870160622936678503381190056384927339531119126877019779813125982943231022635030912311189623335718741465391100497474913211639146557672416815062845583201935597870448850562138872514476709332081291472812938712195052582890298227904901835760796469400742804252520007895374522894970523408991843301440248629542923649387563143085140947636888840090470777370031199592145154386439739433057362183247894267153922779811206762464050472908509632802979516091959496496719142366431966586171786428287014626054885924691252884465852077926595463461242104133887874175601649794479273515053703949366643303372952582960773121821599089730288048474852338114858244861121963387660503030308771477388183984647499584225445545479525889630797092494751260314508326855747364064130218740509488561535553346109130704010600503365072283860620848365813794102531031154303480632030843795122755967962219647564948081520039040506659188658133824177405211164063494939024994447647908732792631126525464529902826950784162769038771395186638877868807798489266990648152339583013577522892993259930447501671921383972075115360233077679527054872165325798726643537128429996715785528311517266385628260027778750259766204501988875780350915006103388020051182474945601991911456721208972678776790879920620307440583870804520887674785609537804995092823312540599485019106039454841964331063142150888694019823238959968716291646802400588485173268337547471614797097572895893580336001921777741216570084703165432834689363003018817258614865693261304669091361057134239878779549810628074184674180752629934543880825348699033496124670614347183332227461552888076660126820258592397285154335414036628928969883993866906629294046187425104288791635643529253102080737665259647358182127073231542250944220600961983633312397784182401046115017151944040586471765825458640793771380090270930139987159675343813764760075323490743013242212277750874350389590023859003324975670097316236673732288281582621950965673413783778233629371886896182262537945010003917744623822830543506230539394965385414937329685995135876215367669293129260271271382013357768922126861325852948302317773160801364367914487221323609441261750442760755519387613833056850916736971362373144833129585104357888263517471117059750674909649254415388352512642625792021707577089138736781925449579183365565738770786451482776947299952048846761025405961959836925517719224469764684871683385680896638305771164460681152972863700767097094156998152726182133405908356438320087976933791858091454271001687456820056745029892278287892795984644976280826656951787012253532007775453518598351311574025251232564457136080980618629787453883922803883033023775149635535622225530965446821140786112578361190492687346149780165006221692387822059132564766484343795014543591708756309173926861871748696142195960887473137746531201056768552914704568471077520997667015296865416900451705841082426816209222305878754335482726835801306342778045022120302226091019485862244966276856170337936572705378962516008363889620993505057692331505616592675508230407870688617879895290891407108443440493805448053544838348599636851025420015325724850082682626879452480577595454535144988331838961743828583200746423094158479778345628860414868441040626868825581018819752066240781510818786413038113730148193057061041735976146606552609025196124715912925161629937189644620919666127003891963005356534940464117855193779986902432446458831403328183400918364363608384493587551533734193289260099798330681301589018825580963987535092697139093056899259937018569381200216165088927990953572714350668033664541583484965859720754744005467387690613455892961277794801954467176172234954609474168687920876437554503439469704547276196930910028676680245565412083304016487328519001780106103124856506159164815890685310799346310315319491253321807589315312780023667580724781345593460469600035198906210707317108240825659633685726964366879849264436949418626987158448730461130984241292722013392614889644618800788016953266230439876886838491659525829903000867868460196054454919018958621923940907591646567817611665917996192624258386647881672170256034220549276722379117391299425534518448409883557521359084080199246864747443812564417220911124457610942598454270305107946219033393084794837920233499385063147586092176750253317353874180038246214252836405781569682919038243726825864978646023581700022343727234785632837679720195337411351546038329410500217626540887548267099745703789849613512045257687903163194957729565447511583824728744765806973229154681652149072028844708689849843258217915863587454425141038025547962591074246090996933715461799107937655188356103715889426930024429902568819083611010550780582812485254376965833172539937211239711825071023054084272028448037146495302526920256142755115716166143768932534862644351663597577075080781445899529275434841063839092875359278244605219168892661214141161577274129719711431911471445708612764030391121936468515756884292449352853775692966391279307266537847368460551497705537339634923704911155927539322620736530102178992371027741042255430238186412448248893589174548425353015180260439532734784709104811529477277130342979539937211385127652840621100086275579470769518709807847976236610290737729083459650597000213199060339105448713412356159050248534363717634319304184178579980176752508482901815103494798851906695571683675629717588632508112330174452922223670702361429172015472259970855275848798448467567958358333293402116589115003216119746032991884742268029815833813140986778677693247143427963749390745202587078770256970515386223910192288582144952103804675696247326065662317086131571747250221450678097524592308328931558246288676645732939716599309374027257492287064667984068118946166127204221564929882308129291341398234661846628331593215973132502321495656640260418904028770173795187687885135236831365846629297601894406040431330856616410468294584412817934049811603845150256819710417744381054269521771634182053046038915228196983514482306096426410407185069920695098601240534667270197249592973824471729807369554584905451342191170043704840674912360216954640791091971767955766518635223109823422590470617754975411819354042879537099444613469121615565568182406582114196415784866026986780438322660855360946785521675000324817572947848291042964026573018738415663914324083155051932792034246137683791658926358030819930003656520811328742351209372357562408172977346517065623925155237762615990899635814346876975823582743347187988602802625186800682086800054231716891826791985033937067583282596472801212506298212524524658607312905238530203222126089112408242765479782528827081828066264727924941965907075943140910314520525103412373682916600300347000875404642164535415640781927144149598409773365583984425933194536218087086511871615027256122042906614034468720522840270901064139815653774972606507963976175907618109668082326618512963325846298017575969253199450777124920486341131801780498651292410211667382302693415942142573506767061358522499871518114768495050972322558068767035802975217957594851783381548989499200007120822436005632837097118367810430143000928430858851145069215212351731661495491887541953282544660661779201453651157326677882154660159255967006260233905966570653436379812609697519943320203438075815566181418966788894235131233555979583950521584656214312883483222257221798364339121518061111648848699815418238238421387176725791541895954700157382691989450076949704405662057300554704106085876677915443575825263662875955887074205533424992089334149508754259954647594363373711755902101059171138007975924289081272140506130703027367260792561845189557672688742497308392540871331760454921154377712126412411178376591014191939210625853811592652529101534099186923089308232969658262528076559899241236368109528366585653744111857946733757451654627641062144738607472005529360219205221200368691277072950973036870715448520112810706967684159845251351680890398526354005299166641904582489421452709791322945690527783674892392106698546043731100171474907391648021090100678715907346301647732250792793953147621744593271143919538947390493971717273035150480539773587936250186086623007361582961471313724494490854843204347677680851377537042547536965387099443229682590013484099481717222644859726160601438367132169636859471107439441304898872556568156791071307436981223644864918706902762825983128237612039402524457441102499526106505150889861524782318103364467569753024820294073208776249103876061412969148843451921837893391842135191910507025546562537645337706907171751173975829571802406712275614269275431088120419415723036325198363923920922304718087052961122700612577153027911801458154874241147536008197350206471585022794534518278013738232286466504060678078335712786787724648150123139846279565074783885749893984527532544438183861172020573097249102650085373650240854321364260240176605405023292589337068833278023270059362689131445594007273143645015752538738857073074716291822794341286334294436376044987874547118570303495412990779233655369067381042887051308873461963924728185575949882326319140791201929721216640273645238050548264040558698326667979394401481421600009292272596854966904898315089153753694844215356020966406753812699960547345603373084624632055468904960649433556442959143975628455140869910843864123399400259251167542839640122766141614699631192809139692951482408031222124348373751377705529280180312317401632034979487965154174533299095236720694902414760919604119114283219040178967547020110840333969775046835730814177075444259912126081252205383950163458783868972011001809426701042996189743184333701452265893778010371023275921854602746187130231544481809219413030688396561141667984222866995625861558200200985430234906997180584960148281769546547032260118254863669596134320353047355248056191261319711044852386039425894255987187805154070118753702320766673710406677314352590405231375514462710615884094905761603704329391213533005542025660226042447607304662851666257377775124884675769426888072021655307482360718005935960531513091141978583388210843686786556916302097969785848879544842146849063162237064114214642814349883280491515421943338918381197982775730644659965597571555962598404190132677094384401582551525364832621346590090357350365965404812837037403138831032114605730593409744825802672415767278204356594664908603167175922384009457903909923816632624446781486145400298945213495160552312747657156810418010081778197957084989659823898816822307423523740119691646778822825654801217727719939188368790248844056794562276149548053429155142566448672268773956506113573222590514586435190274574649049385302958259700575365948324419441768162186418283297365088007099086455614686301796849230744034369760842056502903391670425523995662795894281715896065069381769237110215002215900217210999889297022644680540198870232461464663815647422796452204036256833741225417883543369145140494109579079197614647700672865917525595135267934559049638430993374924341430779968196617750660402639579843532010000203153711145424808382625380477374924478931304876015954206736644835424594075139243014093095605256473026623734613853862581019149295394232765875658326706794977793751130491450351441393172185486196024953304071791638272940681135339983971241669960722801574559824484319969194978773660505616012786381845639441737207135657795460307563112048532561864218980310499679651210308184597497173836674499647918064914541523273305956612811541417117581235646006032208674648855373379827283052872705641371100397734366110490544514771600218296336974828891195725047791132585177443528069660761342794709115194441164923654830252936358306858924241823923384468969702010178037848991115596741513757359593883822389697945653482526676624355284981514828691893020057635306817055792302086239404262447916231324009765647538856392304715016852716541409253129998590927722383495421258217985852021615663754267586536256882542608769980472871659864651581059677616497727175064922050801310979685084365718374363788186390474733092840683415129661345789985608461449699873998216660519685683342525709424062398450056206064667581155531771083702693531061629073169901224752167602953338004405220302898585325269266378594290775984357207893803988331166845731044378013752318556625134014176351797137490964260796200115918803860651047601702717554669207987840711818393169133585079392387788587256945401304760242356375539597049218991030965897316184422120810181514356300323181022954581860873903465222995249149110812901110216192581049709653059651625293454401942169575220238159241124749481437030138710128774929148995963294710745562546519984572105000188576912526320636682552323365157780823003741392476565548057307371744003306492422126680179858060924717970965670009677790184184980906649213547223541176181328821402370470863797457590065444189897607584000774743339817773877341725504879562820946386740155485957091860821283935698269517742354654049428752599239734011898891684140821895680376812738209797658885867574317818558670773668723510798642365410181468298265115425867516792973714691102376967588172930248515331705446059680216210670572645663906480131860312702845221597881631502837061094550660030358001652723105311806413390157172485974055518910275194521473810064772160209352473381225396512545344916410935650670848937436355747121436233068427992191229177415677968060437403697068573454156602829454963587388891797096603400951088761870475436331144349179986983028170615757494052283649444194327329621773703561975521088310517993174927936589064425961934484118861386486635414617968052672910098688361944017481000473777886080429841896705078919578093941384203759204119345149792432559090671160809431136719588999694247116194572337445964029181771014719029503953750547616531936391403674953836343107731326679580728411995486690988157124095255554043460029600416115305023839859253622471943391033022838363165114993121395738911898051910690159412453226085343082531189431594933798737931455293088642573695314168542676354968237649224057761590230428810811765308787017769068578322806820307485556905245967300061842924466573346737706706305027015427118697639512420531779788799610539607768381255383552406639986452423175806727116586765560372772058291965725500573035117562380328175964940595454561183321553510702619010266067088896776645068661984523292076188025813201707414737541560443764746183206706570318286869760764269696046055101112429873925049770275402719658556144858959401521543238171684866058600494764001012843950444189775081960503568605324917801889438728703999943077629788600894492230761096975595491077388491066678114196032368939959708963262218991215665061194817636353454357665024476419089761099937060170741948871141043167767799189558867032861611236214358392079750450126370199475313659146550736598592377158906255778902516453816601510763185407885176037574241285504951417617469115345722880303957739116596457556921943982015619369771463812821830508276022841500409544124900493035308977232297729777256558731753287513961769378933425425050931322669808222105064115133462331819265296542228460029320803844112969347150329866102686338129566611467386225427039376573472803739931758113853823728968619557295253004936773737103402019579374872169246117488360426282409184277353800956961639901417375280603453225734023836828340588828878331406978059830884216225789516042760518562722016548625380359617739753712130942084240389382237048121946910502504169281984049992017566347294914759454035269341991600070770806212922103175653349829778697853341089718132713006483916123918348226387216493031000816193206439595518643624430855390607727059633375625389105218436331302987778331771098503098991343269727739798495246407214816048786399493154290016860339030080063628030501719277602117129268814493311140515351709854694071544736003606477313237095995122511474087005950478474596977897607281450022811470048395714464035048738777319781605676790181882690060902601897425281465245092696350267879013527519115398324467367448604814198516864357113172281270097148699297422864352718898598344655237234014475356332444091332869292189401711183564869446834624426853424077114041569237740710519845985926440210118017207253655249127372791095908694492965967703684198563103252892779911209510207967746543663318634825218544983211647282721730953849135475385865635177576479423235274605396171890483807108351798708521417067740245049856864486155676294583918789302436877638424684708777465565612791828837838900607538728752276590049016552752967777936411604802354813150927536952760632621945383466295257244489401974525556370372015217944029124542716948424845540910259483610277452338100647927943361801504550481757948454209138619695174253086090167955828679222564148720055594181882119706606759578674105600661997800231025841030533589244146081432283934941900609931506163997699161924160447478983746421462396051101651333278561287686440525108961247789930744507343440598981686645865589448786501417673042212131363036187516221377381027922835225613049407522888028764690950044869317052148447485534124567848792257999244392054418240513269967427876704065610287818904914001563722845787914170637645595267728952911348327882698218467290322018637387556973315640011432264984767644942050055734616803730220801972262164535830201099904909636737898840371273644898649091249441959150163222769930254247103481918975700984634607176967389537437345777241645446607803281314524462018076170634984454750959685652624194187769954747527513857609699979421823349259222373742380848662248278973968075823530825096586392355632074246271766683999956177057111546270848868272597600282239911219354600697555532134698559727960648380183138282918094284712278089080529320278130597387670351577564472471544219292481764902970044064297897254747050289007630448599634721235572726281150099708773940892468086875428158072924709779399771739970725810339593283255080603580830237132350994322583829035224769725013177710273531282983959320443416233298617475344141309553130139409223925596010788185680665604503679291093717239443347151977361128560502079603104514829256258690248718772304832334108959965265366351116959384007212403131791013118094627049192063904162342589742629967854589391225247746477283637454541594334154032476894960975413997715669504382113445365908497930900477374364370515498244627049047845424960113574469976234184776107191328864942743006568013238370156475449074668321252726868239286437829149430792544868659787064927942344501828096866406121674817422434276206051308490478009551791278712658401918494769288497418445818452543805613204298929136667931062773336698685406873928371846805153803953286398469004781673891589771330325811768463204527359188129055105468039458295658555719068847152999203645562456838381917066077772557317557242833661077182400023790382867775967006428134713789341170565739085039458798805655424967449323000285557803293868204049812165506198017116631479663449149672437964687576808891971194512414596531861442629794113294736749503719836435712535927072504757022928065058111695557718378659285607920218003578559511656816981371533052262666250807198566461854501636981668863316226850575656059968508120051821045913962528178850186761257328959347761378275657340226622104657337779524775284512345363045671609736627191799541364197146880276592746074811559817193983688824773892109297016046671880197463922760633535319251298738645162533655708629293200056704140725055740660833018215422323643458629734442100207383256983337473410328751641622700750485905972968516022598506755826419859667313572616623904053705098109654527886610782202403470400439883034051827418941740175207974277779119535675069482308363489710107798338531968932621495292631300544896109339390451156033805022094613528204875223158074332133294655598399173779604981193444849049594736212479113871441947317040781022434978827717355728368156060647409210497822009089136755832222949786364262588843395640957336887468163177405127653299753040862022716195678331793397414074021116149688595440916614823728370742833976866398652278866008078862747516017728692972479773923061407122350304950312359738613544985437195258749178623627306329201561260755153977949082877788637778169851669498163381261044730737782652698509482590612151661752846374542687541448308129243952739226630085700304917153507279432853294254779175861492715572561730882756067052962871151985775960758618366412733029927274538554371656005263155265268488414035770597142872865205759006756770827445341611980123285608337910954173573814352382605173004664530840559550884228418836771387749292872885876670918777858382773931240493868020862008272074502792268828554895199069581627081376578195488482339266950432808588112880907001930488816912174233742123582712355338562452258221542243894397649055194015431182079511387745901965837325544521246828657277843462552386698977020781218211342494141835716996459722524250134967698727769164331497564541273867374075350694197319959398350816700662208077704070450991279413003931653883414879318240149294504776968042933807668480601341718566598275073456651215018239661036088806155223269523879567935712361652854078360596047276022923709598928529384675068923394764084638691281427050605757377386069696825990607474878708293140197221076256232399014788615803689888179835588622398074878320528425675807201217598362691038778606685450579597730888531559970702611446226468282946622632120295129310578316246811050912041185823845835124592263403549276479976068279161521551542425467914321690006523599325901383871514840262590782673899375032206333058691219280493798296435407290759446003043162828505269719293996301744491921027440915769265325991145355744000510101386821044883063721334952398125831869788529554356552166037733007961020151290575803965018983574406059163682396510513894302422735807587345655672175412548759185579077310488590931413032463289591142723033992546812539902726964162879725404426366762358251151608095278720527098971215490837541784359704579945770925893901894503138980534618448991615926158232348979682365561372051756152717887640501886570289610669589335099757168463732382956744261631544815002424215631873072152084444174489536279752140097968594599292587362634731836085739715430615576003139161248766694127532200704397953221394206931064004673676888259588916997690279740881128547386087488243450373118919713932174113485125719813129019212284313502919163772935429939361440278561973568490585686987419242768940213952737291247281037563028577341695040614746010624175957654215029086172209088729736290903590564654964936913320106119055419309032238343284422632663137297761956521810038758458424834268342623104230502727247294617840341868675287606412797816282048584054081726597017263155410616612732506175049665439872659686940363677567905580437791483896191341336454109884250224252409897647961115210743450146055141136259333180871969030268061833749239880341924511623113000691754279115873386330756766416879866155391586009067069096532468302371843610150478104603263748074033494155396728648880019155300801471484870528053877969990266596172086234790536302566764161072143588705592144928952085107023088475876554075563185899131315159781149130100260871414153359810030645630168715592810415577202716461178726861853959940603080261749584692202101636885075012822626443031580518719065787212494046841581253585894369266911715433689431319253272991852235660075381189922439942686281051014268851499950371249333177584561912648739317371875728923145608693942596189839107262901684348403694244450936404135408589560566956867929207592562563736706708524327444442373198488885812464207875548267127940180904379407740306197966193396185012321428657997837093895931563004974425078052093186901182080670689776265792880671663160411982858973630955198226563363562218659009273566579359012622041951608416541466523381885370649699759854682931531674097286828541884026856024302648124663105389134899950086395997377333303278771833883040102926764240672334053694603501367868989305839324325979147363142869175774172250605958101925126039495497291310925061382964321268894316471186125499449322601454765829248849155116001314789406317952266062184784891852529860705925737578564837181204529289222653794534335784935171939738650154228473239234655383992675490706999270747091375606750664998707303390461879583221364550848170899639757672561892893412236278176703030690735167652093565320206263920220204346051803955204677425621238662007377708496918076290606160693524083948745950196276328687796097315430890657320168772198738417614180548003451817315283084158454536949669892851581011819987971137898721241770820800005612485967218751335197744917342216723039955446415437038461726680604149324481846368279893060428550643368186191268778878121471860423133157136702741252423575496774298602705569057912313004958518275635882704487804436858506138853153190135022954414920463860182941482449603864490810446023663956757379017203102730528095363033655455954870121276526943006734818272688984385981037731415386695128196614618604831807570833087459764803755689745891168767041048378472909914309515788697859235193313237601893518022158045422150184676939282292890799844267402028007124346013683457542566520456178766674988587712830469965486641675089647709796683634134716732323023370546192500994040954690414638738833276274110919833705913054609456592437264198271052585142538142252481240775962959104671503712199499956002705538241526584892203893993523725547643736778280621276826661257224829221715592284749419974687194374681475503137452849426885443163550868963452190500033455975741585127913519180742486802630352726277938798401558669006375300073581998672550081622188846581234959534190059373896317092109123696874757026944601129716190959077843798711934845963008487820720720060486029261773619260270648737578729423404566408156779125364747887464164659059133684679832180251608775220610490233160336867693255845955841697648262306123247295220093725076555543781231914182708191014575587429441991032610204802536000421814590223141314085177180329060028563214148858652833756624237591646786356429633131657586007871415993272703619292575524332657666815496121202896586516129312306600468980070556266144583401610564343180855906494425930375376244741145622109228413405366498316035603169592196380401170547642079893150819714329931879294837640228959535997896232614254817144954493326627779117442764265656522831724445975526004483159477220803455522472424780063855667409641380888198600500397395763063206254282100757695196909998083332987995333865500322383999706842999005421612974951505019106402907862863743654023835014227796469062548769103338120063271130624324881488743233909687807193788579363165904411263841477338118097730483634895797035823628721214353733994040360125879286510493009677572446058653740552037895239199699122295639634464161879176264769959710667053063867331283577659468177165425874187796943951142336471330314518975856563089281847200288523685069746636555539812805678172088935643578815662550847576811655509663836831235572007897515226918132336737182959142517613437614621299096668661218767759414031971202412818566075517624702759777783493973925697182764771030398548287222465847994843078185151532055900163146685767026612350996002764818747330549104611962075069615662485736329304431063353633150259519764115318465763436143984846996609657050633355470636682547541020673884179091701966818522587701265121458289192961311915392022818471875452957567414064591999985482280375838359885479624374876051365388305977196158118498571716818332693390903991559078339127704786637256863196855869930359363976816035025941525343465275121647278326746968072400723581454482074644398668242068173124824224771239531748266127670120821403412507484889444887498661361567244245036497869880685738401349665854714044211928404703086509531612149828972619352522631598605750476810458532204285452903674071180059557041493629565877029291378045348967747349659748661460135195003049865828248400419065581298522175770825797565259767103766180214695062401117639302458793647777991322270082000227154875523945446363803970687786995441308931355908323878692188494353338386691527134407070472824387639795209364298497982365342631028250152304419287138703763976245142505202539042602920085964870574700802858188916212897217477706136611086285748897232250483034943140187824508799622414654928485893717860000899749231910851867993713149400078617096423638505920189782087657793559176917862069378339260702507635231269745568717424667563990847055330665590701562348985414394598836729576544526343788358300137960618686433538635514955426960818007423438203677990366829358444528845048925038209784547975950952576914370074247529563590843143518159551510776034045366513843756922571075143806672750080365986048599596517745439996686813731340527824024454735910175574195796800747713202857344757403844044899598402944869854457432167403762261549526511873098497708600008843767902565528999946486532515057877560598054306171294456677521803808058948614247761706936164935726572132335218872122867175459697275584121700772187943425599983823189124175455049867228722994435366584715046154880612315219278835051977365452993610956670592788271823592235657519957612085006157197160843281056987195518801368790705559490218654019246894462410427671580385719115074756288319930401172680062141163820928727519524088522687929043251559014460427288334936577518671173204084775436472647989518133569154910045584694059530538278922246572892309265702014235474242936103080258099112943896044347263045853128176894570058806232856716956099994678116416451311977195924434148186576894118148255366332877726359233667547875111753513788603838642461278122727476655696496552338152996243218127356406729044597535901942113439544528233778633197201001695291468285770014059357218049669491794760364843282648493001205523977063524012081492244988045229727915854408724550270599449479344164977243923817558978318547555685406544653706275859638572398119474914049418962641816820297353603270517270792721765073754398546949951643979586599809971771422108994799798062617250554684855543972477824730308839510629569885743422111879721158726379419514452856398825632789553372886757110374236956703844994810013757127780705477953638260335262203660660537013230545999454077330672195558869840947533270805897801231335966455955579668210114894956229858807812751587174660377751722047001139551630117137261750025736216762967441156685690644168112492170602045966086484698201003737610446038000945379655821692411723477881307886609979944201602080872071329593472895626789171634949044731157282882159896372372504678308056278917136820554180822186199622016434985965695084904250586440306012399723846387188168664273895326303382583737125387636031073629174505936617153774639523379607726494292825066063895608889752160198193734931494385550428488955236221326048635000180663216873902169128256290682782485749929657431423505352242710303512818139537052515724067557440508067421232328554071861923216222927951604839412068610322641060819330436613293231232927954948828058259573620666124504068318152231867383786663970400730684125078432845544626847196130595210996721388292109757788226385654204542664026319819549409095781347018451989970037046631889497041102223578088413894626089494942530935198227677916671693714307169446548195263802652449240086264511105104369151847634219875487454925851297654545381998399080650351089972650886500580971568389791549086753418650523160437107975088883279652566133728539330858814157354603862036517887227060336873029647602299021698399824522588210102490056180017205618783211816983009054126386127554291689800416967912853127321593906984996617497502684143837205740566108377630928665194474805845570992059713363453346486682919957817044860310234278399585779557141212955816181756663020159276984581603876911460211752698727626088581375807032935462646167753901873747893328385356997462215522319344182101520999419426827717126532440789243734216831791129452774441109769961518171647483747841726726205202813272565288975656441785098120506204058133225152813992481167545354857949567398376422650200949733742939696853510317800486841089507576869551114474808030417662869803192063330257931637348917389801106803937733836821726904435194470564487161881926119441595454512303101279151397128541642218243865110450188537689798816895718289422338243577654200898955941168104839949519226012755019447887957225328227105582225165844659529058346598818133285885480704221503525649795845420182252644612724180909499962797248473284112311518197246421218967849780433624980317103412196946636238194596971086945023851571941141670104544929871201128112833801694173764978854423071075995392579115130214260154112926143458208503797926634500009385098968592974595922689002333074016676555202231285018528413466403900164588015689181887765737678104671643368411083444711953118820079076138343564690117901391979263004253816046668369009004348290547940553667249209207653995997185861507265554237607941340664875698092047925799208003156234190598076917211269974451084098445882925184416655228088604764082961537183029980909035380481135507143310036979996474979500801089430433327860136436290395426412341705458773699568231286463632156354390182054122857935294877208914495585877114596286034329699802798660734470906611604096829627973145648397863479628259083866859642691422653166204313261831507382956750458931317974078680830603269176316414714640590450868367169759916050875063194693545331807946595586666324587126018235480214857381360360530368140785036750946346877546055112770651590056492850526177739597445702959185814408739184138762843078698096948982257513850286661731566154433586473249886408891836231567491145757749492312185543840339079470466893547211199065718981955631921087432804639843543052040229568645316758960549539222660838629814195684004912754834636237228673891905394473183383434724368794487512152082115048014876719229884193860403670302829710410801048221992515674499889076049202986148494789504839431789346243939179404905621420580469847750337666118069309325916300411800994406938264375483867110457957674816658581596487221064495838217421300015607282062294106989415347019383069014052391304067799246683559851135618443718231713655630109409983813453039611516140515427473615106508696231275680443147588131004439305067214797385221793008974664173912924495938582689557791437861360888121911684455348318270632550530951207940762746451292685187423442373847940862738359501679943371989831432978255203222127728498916350786962708944539228159294109763155395561647445176357050372697712514145652483470411519908955638290445979133436876599387060160066197619196282035714414170217904979378411428284863142043708718488857387012038921996885059917638687233683943762685180904750945614238073521828046352046903277912463970860179676260337447203790960402716832534849279206852059981547977936062428452338773013861377813240343235671599407109342185203212459906582258470820730337691246291212903287739931803355892981354956695919269913302896389913112932224900444897903860774342682341826500826102387574257051237397061271013691589846168852512400370921670015849103874093678017016142961685164310891835197437073385492281593580142562530750934521157650650733855302654447728787763080470844708654963377534430547703634217407723301598871472090807654035736055530910635591950136012818380626078697914412399183738647000244778935204561014131683586361804188126505774398219393809506230769703551966416580705498572459757529437140727285396310880634233154722941481204769139872521127381702615031017039903234584190389524670631922119138689536660075706875368182993675698418646798460872445262083116083529596818203107537099050909253889504435941642256249177236127919394996132937438212225432048897714029235108989246815105423913989735197074810077681945628467860830043014644328480312684020272168087794813184257315554393981362175212525759171314697480372991361422713624284604993794479117522517760788909257758989180695474990190063073969363734194159693542945206714193054990701578127222418973727479699605427731665180691010690617268794797436072294829371960316653700647355020388729374349372003976100655362319147591056901804315830327284928044956569287533640811606722604330479191684130366098240473551966635062004101304343834043478907521874849195944801340154224936043931615458535335659781311814166051127274550203890510448860009701845854759682209050166404490245094553422426919550723545561550589088698544155159864723921999792664884345130235764509185670377016979434262444217538369478623207292709717795870747324939205194237780864426173585880905822947769828120508323008096978325693385611937757496053489644595862121057131558017652729994645956296564185976803517300506746276086598144114034388777454062980076368805689889120016939977946722302887128952388924697835377489142840704846159207104638610802285195002735487527048758083353099561974774650335157392074441732274478212232450482673521364154402925050352544230862659572510599035296615478776082731028336458522188623771062146645157551920958965268349049503833108348686560085220893159929675389551677868362991005743952437105740770064177587783037727100900111969621167378539377280585722720485658190171956242964716751256418227421671429360127271298505552492247498923349548843745054856007668127908340245172341653893418113916534938817464868786200646789482334732948167079494486562769895838282973852569812347382950032757193870337466020308638929656983639053373343212137094121951683693059715494195634483731609278360525669962558230486596540750627098112324751928959495962592477309272922635437753756429671891307556398571161609666969947576966831616073121914784897566205644789223705032168287741138233595523340279381220245895263899957187304421389955194213245875328179369228814128969188120262187036480205016534172599305348927871308360279712228906736329871446682104013343428919385101038219007466915814546906667808792447572686045568678348567910278417121555993543433568092518687189289634873999542283344645337182787649407862463782737073808402734336548029857021990313398196949625901955025976401712870044764542841581751085161994301694883119059552138636720672681990556711393621940995733726413023603904795468781971414329301551798010004400642869246579833237499369600634022990436189584884748364800844002566049161577189800174604944767609284324403315137547458386432062902801241276825902685417571823768750912049546841922403546750065894819817331421257944880620260400543835420764991975708250997188033150393734522533065273513212491527390783260838502578021305584707173705975215799772189834719591477995735110546948678890369973527908933077063916598151474299248907111515746193416837550540578782650686730210549660003585322254691836857510625314075748221203864057367391571867488126131886517660041843633692945575373053863757295887491077244546115777996176935745397253954868429031844997039444693840508655055272180725798993744583726766296906087641528068366780023918148297188020816604974717606190784831381859012567103063743036853872951416854649396755039219515328864390106133987386171869150103454307862207466023178766580719414487092871634671801183505041501196301629469969087520305527061652156785960039975359578343321430253946396903988515636371158026059717264026985259656679458716298277622335262550131284947233557214712425169053956350613136729877211437237168744163333938666956780985406967016576776777125803281716937763936244004652773761361868086068231365052679884307102045319390133066967024133472536199676494895304617024074980701837822617021829010350953736173931785205141135291400689986219400596642729749049453393888118367202806231868898835604493075990085308051171200161486199247670853721099870905616490845173861939189182854856369406982571447036903148380964652267816073619612342137497442229318164577625440983311624995836902206707471104298397005449093362729146696227009059587381699795363587807021782750019551969909882908111912803592854500065798966608784274675302189344951290269616225536506230918648451151249707482122649998099167578844185386661060552681512818073501304115557999915371410237996594714246566262184120200232366601136273503322675209756737980795797524500029586368729284003910853531824014858811717994511730809710202157590911154160391171284313078347176432585423192622569580281410994090116440102967898725277588701936881069842476318709893494882314920091912365506474470425556649417732445771286203916881393858201099443837528828772460360241443273015804187436116778799811116644810267306244759488510692274744013495693140772671009511546394494364578357724417022186961830596922314025798594290182119085913345032869352595744814737726738450835057429149348307938762828012471504986160895102999341577949800377349473993049049781514239037659150763434164453459535774922216186924817637368848143704002177815218407120037617007389623700874517961015868363572283586377961787583835020673858611450707097922208165490924802259292370526490243453064864277054755870438132114790082478472524911146857548771060314079831355472974844275609462783387773518189181655159658017239024229727732023152264802623924414404202483677792240501306058156305794997803718845316889770498682518567907038701139874909093007137944983894564511957317155649832625463818317593454979221803090266496196343662127803821815607692919065528566289822533710472131686033200463399754357342200622322148457769989227996649006752251008224170219470340880728686940842683778685219436820295433564539448959439929179347763536342161730307177444150537834599666281601800510898358271883329761217164012929835889562505678117256173301333456940330426468716889327190564434681027745959659034446100108313944195990014973924619773808532951187659973290216540709058361887934262704045487208934439725341296811096454676262999346187355021531013565929197881928268888694238372037478218389066676016919712547065376468230390561761045561139009520445480810484784325834673854564035346230609215323620579496115043874728405718655641128190259394989790513872791682300993978399493436600600137371702438130705083609299893156909156473986066687404321337259832727062072041654586168419139905293944952243647670628604131356067865801934024042873747109683532709845927990568030882742996567278924857605421944653757596208275641780423401066999014562479462142871104128949192122511606024700455767387410496425103530057508366991420779755393973959858369027253182681603858762507698273830438119758410717248797645821375470961372840168074908469863458717541822317124913218704862306556768047550475140800681672674781738970048600454317643428428456060943815025554124499150267830817622109348970770267802904605454840095644159680029688605335989906055568363427405000168485527371531847413877070734669407624483337067379749182662987109643504064258079288730749487923565849290709334643348382054725178743624427974168528237275736559664454836059439219435048019478194210256735306425576437931893929991868703564887119443398181485656866802497689466244046820209837020396254791037115776136946960702452571882276870276669110900281186922119529974855529087362509163238316974311891609898886454036711730525199065650544217125398135718724769857501095972496784390692122847141042382136495598611728753920504605061026638473687110531971881024816305382723340711094945760372010983378752539289760058530471989798442444735062176928963754958327140409466629044354373795381329171036979585843487848620781835050443020806778410354609291195832878827066276781376736650535398305672686440942386797932010011196866173529480815769416430282941998932083014943932353714330621971130304678836165502312790390057550130442976466593984472152907417723491068345466373333050272813482286470379586113980334892956189078473483573173660354848043390669148982828952324004282660804421559554693227870480686485595464360306807468016304848741208341702078200863854300857283452610882412671273109882199771622485644403273450977962255260793111860879336273082162582338599630769772036766439416206865397095832471718389732945156513137699337532738038472822467514815460992785666106888782140039941831607805498832771526205274257154919886239546524760784605831662005199236086818246687108911406499186339265474105540338830588974321632593996672665774600854281686973849667353765024592999992212368363353990809752699137753484874089415044431420533426069236394852288925552125196183583895152242369431992294532573322097012583904151870944616780512567285938429645600127969460880191815981605687291668897192229030006810444000224193161374278392244124071713464787757579633070834534456879758118622776696565007836769872734116835452290345989466979513095587061494195686164658310911032798066997308510114542430113715407371148377644315545913041268164206408134008941449294489706062518880710802389947704583088101488566898581453010352405024742310995057157184926968853653663557330356854299850251630650321733199001220873124690701698236255247285506007014798689527992948010449966341878428907473692362542479717541962787044417724452325472025575249505954231930539618826219114985492508818785160310709951878879692257518190211917673000267589766267196183644947632896550629117432563178240395545694371179502646138932608532437507864313810222043599186778997775658632041148284538924454408894037077281608722506006843434085529453530930213070666066064741752582181712638420143679324449621342333430086776205958472157883994698945713914751291517740764919126023579408572546849467851054571607227866298695646912160580370395157885774229350185252553816143804971706593557536162659475286757705547931609407566008451848209402321989420234980825778280060838018691359321000918644866116912632814189939984856276409747817284087772391079122327837941340567639155701985262914426041875516788093623045063466491943480692901830837504834221196499455595052016696510214057337453605701596606866187779967161454143957915845208910230720689766290394657914235572909344942637892086103246885862554536134069644781567691817814111675304474649667199394877592962406001352092602507877976583791865831478406290548377241579601311661767497573289478726232201956712132050556698911719628533469863745937645207557184997775682544935782122070017990548372877958304184866036905493602126447084971861430472116224797129277018957546535849250837089786916631354217718100530543721276484966783383535708844943365128356553213248784545412576062284666604497165099407739620250431009718332858459333236857316103471980887219331752588269927001179279822761534828034942393436105513199497756463488311510385183577943151040433859697195140510405138705522014814864866079324015716135728715345059676316057442502922415705831343322219308439207082788774737032925117550525382086575600096085229058263524754105040066442629770675176723025031587505275483942441076684123758029492535237969774607139796132802627050751593217992125734760417997231812369112446508640762700382901029636989646107798899615047233697048924762749043266257571775100475779096582066683954298885420115410244772720956154733029952534916134314702750213246107170978510029166839480122134170538623656907077454643077079695416607500498445705085158475100018350267369317786567548586783694782108122455744052012529344430970585352167954979854346098437147643814536755128038640856210092554833911749341454145584447284809045065446358870066193833576290882980597312552557697640863941815615454858167489976874776733714042117534273020422016872722056215877041652035928356126168404602897321804816675794010067005036830361464996252527345418291797297667856687128527260138148042413729865165473889767972437103920991477631249049634126001161808368739910124136723683652143429881453233330895299833468819365530149090974581483038434056026339784366028902858455244422418098248012090793115446345762932628906695885503910164584903886818201443980975089962600129129259955335076624015151528839533420310100990648925318494980907951860352038790518119521019277052449694618924713665706413115776602951061369733353457475398412835896926307983421568549503208945209958960290767459761452058575390981736317679592306078663307372373808186647811392248109746367304466522834262177329444549225907317115031312325995467615833606367441461787654498697852682243740144105000340838284806670553984525675597720153652014171781581593639221251412786945704254082678060913356643918074682000776663915496748004971818225111904659819637475120308093292705527037966927663584916612888606050043890635710939623255058047347883634820667380450768882168546380830845831993535721508123018350302616986325450240018354053713919512719922687558726277520995121923162635439205702799708494488754635910761373737469621898317465266009869163080983276837333512870428627610564167057644588087371252865867678464622614384693279432266257140804385160541470887511180438780979445534520527610455148584362114682509369377806882267892480330597356536997496541636229651454916812107546310838184381066692773841729730132135834217620376461029745474609685868982532065287341633889682361546266429160092591183130011272283963343765260436973694548926490222745526582517313480818821657668653230333555327878079356031689146679706016380414637551021439789497970237892529067822749447011731750692639472752728767379034386943552858574330332539610270092123317853073208068347224101761575050635178850335203973669663424135510193559853446385283839375385734852257496870132393240271235453439395405378719586299303270072249901372921414700509959117849903595131191189323634613395143381926726409174960968942171318416369296081440818444202642869308090850072150070910682588324765670437469154482971789704064870303331328256978416490827484335867836354481854690027240487186756394097431388906327122876705993321902252470746591057097460395814900089695163221976152812075014298425871853754386524234515835440127635325924193916316054266312910854396602722278895642229136854889986018286306527110491594778137397684352482776147075749814436010565368015906227670207306467411397586371422298963050225735297878018106129126582499398889179544184903144409077553805169694945022777689087649281647275818323831390172938821220849939853775248056295550316623511995055347359396628629710653203133124460750123871646790662410274761248357126519499468974087585257811710588801874765954514521434244730523093413632857072694032670793394415900487279375531693156821813302867348735844141487879654524798050946173963133915800088723399832917166668515924714436491275581913797771135303066433337068778444372404830026878700701715134171768449442567162842918156907613406224200134226172800383528118824036646188904614331497726438895646415294225566516830283766788138154932063472974186384505122766970545999597964236220919957866387073828645602139731845961885331472433719167719765643769161671651856734562219492631857747230364781213829868126490067568307033753419640994081076274256476460476179425593497896428000509713211168975444203107265548410651279205626689980378916052860516087575876308685652747432672656571573745039554522457218522605448357891770708411195436004807978288170837038898533280573902970179323702113920622553324494696865310719891535049532885963043664545711929052477948228144248200778475516426908806899150722999088651207636253334084158596412635792672363295997203995440303571631423545002478291147134478880409589339016192587214115772823360891807494469968994861808115109515661970374959648214087814261557361709818780272685312220366860024858117846861396014637643098693026118433286708719696037977493627936869730080684777011129249764681316717994156199591353175264691745478756952051902275612494936715501760989242277055364746995720256562713299739456687013764464110738725753094604980545551186911513036664368974329009183465838971460204216140458796240997737004390801182666259114446765477897007873756682461930667732284053454325812940516296129026124267284501973973365884865436242520042742170430767748392533881528890008374496251271780523802606509908864593950684274269378527651117180400705320270306644850046066914647012708464430356436381530516117903054380769181434401272887843754012065736004293588675119574399681207614226655903493672428777617063085314402116451453736602444310470851639239449047642563428526683915221881371373725169330218585437253336755190922079734689918762856657377960651014551520631083347567508116881822912472302703505439951453503691359285897394358609918490520755469783161383311607342804106160046747205628479806213902304195898054335830596174807333766826133904132579186779109610712906564850447355962216788126707680252794546421053634431449485085635056161863015561407577432606800182158082218858670985361434169328460882049985690833748097853430992802165049409152767923322435347478709323751613252005269878890878297680034677372969547195588197732031121740472073145294768369123255259810257096649324957752912796700764037125452136680643133367652780625954256320971096882701719323164736532426676430175500546397916086257883495718584940280235036925257414555108686525681289157697031791507991224363224924321310011903086764691099829142873224183984454068579741182858385013443731876863285557018865347852133394811145175801836302756595391118330912182797207983903776336134207814320281124746502419846380002622591214517435522571915387055728938423222677675430099967423076892695289704027260702578688141605260311342345146973422407669830174790066381861323323821824915587842038218038015576572992828130222846496068089663683606859588711771032752660352789315786261867870139437831067836946442830055886605570086638992968519890074737341753455836493454104501042120636843278187873796086246607317706332694548952734155001035612689357989243196402916991239984557183053940244175477794095570494687535075754729963470460772871411983313020044096104683330753367849029479102499266910013190927908714349357884131122729763321887320640416917997150987190341456765571027488605648799678066933037543211546659009536579549814507795181136569562503262432180068530634444210645271959740752941819617406829501345296343004361976095821277252733766468577259172462576587743166825017922489020354093550582965886551898374710695158468091925337232338387714671415930152917289224866680559674898196048083847836614176666782278984878147330025430651639681155463621262585435721189111182620191665095205141809731891503429364184224572300310409166691745741704926434136176458778076859781621892434625908257919299309271312598255095953400521226756369552287456100795009224536583325327797467609037177898735436096986744917519865738183387650761740852924341974430227501478662311076190607004246369732115565782802006821404308557803834943101980065351410576561327506330319435858135816582265889876479715749518379258464749093482885768951261168790275917357817423813359899645093321257610463121565025702231193355706157493371017561428387220621681669953997942379465616402086675160763987285453457222434870548222145528788850536713831637532669278041069918115570136064626980249946031368149951042957294119340759165401363814837427842638135124487526291341100386522633735603029400033352426823578806620443374309763805995551016975730772061106748246329672631292171842176085133421385476051194137575963558544892932767506486925668626227905680903288071784970087068883544250371766529736204173034121346482197602131820538267455933455145466573150807020850071173626588038065316769572594687351429240587494247483969817921343004866648723907830386238760583969901946439696144910518984158659112189966898135891733212521990348858117817884865406291345837166253726714545338803978518766520614500622079441214799146037731321378239197457630036238224004638187757596250178648339429010929432589098562844425061093191985174593862057490975580435985288507169411122691403407684130191764409966370841463072492281199817642839829232629677280214786332757563773699659749864851892993262107546892428077797990271989031416578080512767052518786091979773973843228893072548175356733016683599495050980706785108618326890131373658508257871304176017003599356969754550979538932615496448213760544207243824358175351547204518143568217554816796298779979165739328134710777006046207263148676698280626359672932699495325833571934796096786524778072388682469470720465850525161169521913414783322229189343767577705876878679539284880070262698276685992599072907449649312555077417910085750281089497664938977299758696444686864814680616752815860836860857243414495753433336507861382280935892913435266299070560034872838208115203237583696104563211346529568345098943100716752725195903703198518657714730362012012763578831082919668083830897745106671908380963359689478691980962407502754398857964980217239022497270664851104160096557164731778619260955899300134365872311284678157311124501511511078361005901773715081461800329593252782420235380194877795204188295041165912614907849894271928104369160527999349672357535706099129691504324138892117487495512613135144120063662008085382168685155065052540113715942602926730698460458381455484031657997820812629561989778436403231661429830568095401712701055965632930218633234911200392355983286325832710665528049429708790984884307639901437193841511911918956773272208266509122392501909440874392591992405677648419748966920528897686905554948014979143036450323749534367170764392985854100726562600958842376425836819584233522004702061183576043586537353998927873678999315628347137357578728867977617875245109072603246240907218121034257514081723330521320875410321137338510495536028074924107726294345466229178500138830561898506736962932164207904660425530276802632973837131472786028558420110005025971015047699206829517210998296531150782429652110728955225390784844722857882936741257867284970306211969059626250875655025845265976727456237903956405127272220093239164242175437991072388397179024848379791905142201124307141376549810926609773749489823866195558103821629647252331526321821395861669985937973572221019474502239201247154983406195146175368662565441904478541160471018698840165913662587368466368338035569845577732883048351122186731402348304751882428537696413026197340232591828585831939590759866040045437303426660151732687388899885047935058265065459457136127699944645880770138944575836410071728620221264275745153619563947040350090851040089634866045779088454094278755711023306097228815420438386038780545473740509822234247883392181897043521557100964484564402557319030846570973660547800807220994627353650738533266711267670349018476516987620131453979680821172514343405244512739594267619160059636393965154698089368695771359355520074939421917083726590308282344875806970009984968274995180477126405367257758440279848951094163912370825592653378476887789798546151491901790630169440131061184898903636378543708078534440515693880154065949572241852746068848870176124508935164717477175610561009482494550620899592318432230964471368255614577270316848795459788075339994911563682018281331707227624378292716343918073241538821307364572337552945585733648768365217712917389957021207997268319884403558398451797995387787457891741498454163078233497205928531151818617466093455807768317741719430836377028980362023082635406583616469462534335938448751637923431003174016402535653265415065363705648451357439769235999370262011659542748449335992252874690981651754511884761918484399068638147598501571908175515250789767259074006598224457633942104145568665756712740868157657863728702893682086663332621620345193315781109012771070924174399680723814803653942364886756815007993497292079667158013960084430235206967353029399861288615749204432686257569136229237756238963167571480292214751499717292552729346589218486843861905190786429976950910537992243776427458671695910800722628635808292375149894862075866673320414111961322913126352249466619200296472617144850214909438311405495448264496517369265042204466104750829286089832248786976454189633586723928730739004596405414653615757298866301833638792653326651001487051235783383496236824492713514380715708101333717605629413264775192207288993298950743363382720720920461482685099597118245376328023694617558748610786186531256474470034423080719298251139945996239701222205577888162707090678494107630596426329943074652636238295501226234465117838135417184263603144588977102773195293443181407866813609555345293623689407557501136616209967776631687569256313451999740452544994488632532317765770604467629343652589014409102554891258465437957657883976100265965035124682462718082227552071474054900605876097119773317503979397708654780766963254409559526005318636457059211009338852254983042656612957573923903624534222041175558458111324688037382516580920048976355283195526708649139145851206460395620464050640773131673663642662359632086428982730639990923500724253993000145733665023193907068112980791221326290815923877308156664721984138482805837060125487503144525729581563616698886273424023544943717166843595786826574968960018624878441580347703452280120310627510667523728781226396341865488701527315311782334762196323177832473127444905178332082943320599983086042561255926475606439337463057299401726852854727075947182036015082495277810784813764106889444626465902071186709055011880935151339265009352311536386029036978341882541212697775435327018619723968301211552053519794515540362908618011071765118761857900123114940674777544765743619623440005866347749559934305045718202668602632782125397985121767531153085150736591266565734303177548232366301568861658071979725489954348509900214548490609032810427759182673980439729746138030054755679025906206881603995624223691717866419603986961976618332690028121646598975985351121511817456654725304004726116443204418418367332766772353265701643945109221544445172988847285393522245081477225103198301491833879859466981070937595597179078898370308148176762337191584493542703645453294411863664114556848190794055122337185567225121560831227487665912582424115307361634800966752139337233404051606612205703204504156730464364589432674057587713515535239385043202822081840343651368921436151488938151740925068586872532060690750754424570273439082066697755928134989205043465221025254452589929684534437828570544866874290381389860811557119762964554726019451811248548815895707949193933120499655895116244834260862091975573160104272287769840726708467798905928861863891819292155345622811162149512807699970126355267754201744419392642920274257187078481571010428827749962597129057060512743417182785140023446232696557283732665825556639165748109300371460245651912614935290504333040860663103901519655321787148405408737026149702431471212782917610470247481056909500499120405074772948017964463339942654753937781036295071509590770633115003214034332567652667459958766896013943820478557670649143112507348934563418049098109125709292224049166711338199822171286499412311202670847380996755257973342606296790088521101277778394567633394866036650921422996302937376619933452462171382947611433287078359834782633181737525347324666988935263088447945090401191819344963335555041545618370287178477981466626779852774016244076971628018243604678603275003307016764221996655029115356496605789772587837001703380980519413696543216617077758510967191014864118631315240008490537134527395041589167762053952900592877589160594544682609002978434368870838230502835599157222429207826561633847503682397143778615190834452930332919164649915938436240356187799166141413602609748045044077154902817246191687116865810920533347283550343019105200160969052674648425744584459083485454417517647198981290835938081815566662776228127038089033206985082923368402456843824980445895765044511424071921897255514880687836483683331656705492941692011356351182606288414161492703358614264388730888915534488757721635578745850585103675023251466429861373020615923409543862363633351169481864903548634087932819140214917908917085904146714002962903115791609120814433620006339685736327366811329278489569677608897310036157921174100225323011870104176331323144590421229977335824722749792397292265743376977176885666670952033535018665025330265868846451375452962404436284677096035927403584461457206518843048901192833197076687339570215425377783976087440749448541195980171938468312601559685730487714072669218749409071093175100981646262597845284867571496023408146257178997739402442813885409983020758032932547776648443587309551940756910866404605372920567542093784474878821014803921344011430210391806779990833032219836254626027629260824130585911622837666416175481817235621836727245949367374919991667683289396032013677775548990684278029264679005759211800148863643886694098315060176188771595133139430363074514915275310719894528284243900991617151336968130794292994275736337474351353316286582303682678795772421704953939427176150860721089321020663042805026704324604027569752620684414527903830025332051850305849948651413070912257755771120119726681469845249288181930589435431969343237196647803673889735147340928166358002421719993237624880457857747321767305302992367103610614486095114742034566253397452038920946989464918575238070747845838998363653698285701511197231506625322572238302195620984926231036666525090930341986216828182835329568799442058986018174545086945407076677051197203071612870852476494836929267045501854009649682440835195501204678836957383476713019327643550040634350914463155028993300174593860742212660143463324947453547639123336171289453231955347004541359572236741707803078198822706697275492484977504988864531339373960312308310806376112565217080366878998363929868440458777122677999152652712775019056305504579377947836021210806172946228303011585878706753452000647927757444964098631896219248740880235184367957297486660082932960363881119922555410832276885483770497563513313376980124550865506399504875938030527461048868010795368598696340280338678712126470491156911888373685817102314893691910009136171764970615339186323929340488824632442897957110895254155550167951636777770841099928046166498634991556474745521596722143186372742503496160457050328007355366195079699651934430351525546891685874800855494128882742667539273867112619348828401956264813866459072705840100201174647689005552148267107741477546352800568775725458994425315691420363474144305304617249768709787448357768411544576734672275782507439451093092587073463663346913553968062892264780889835174130076143331773077004946140225537597479726509692611663326143192761891205038561266626540094379436011139516625499334705795912148709254995282680478780188038289728611763865846794180997476272017119603406824208523930886765817019701377335857669141141260512934333872036041957322507219000811006189639512882892547889038264073606930822430931977575527236721348601453267522162329520064364512985929160377068051194954934282160885124534678487673161819921319864579116525514064011042048109841338308858522761008907103272312629274616855025489494816381528359585704501482672233681105008891773192624768311690094517697661701415915647722465858729689174411176110116342745110880585179096071045120460876919178277151091535629176767171432087676639391945000909164134236216994820524658459052568264985022770782289505645614446987112786025455148620125652073747958776733869397508193769431809598580799360353712611582994681923969168766472014053670623745594842210092522879994183428477287858033624929626178661633926168079868828411501357276355598242714292586894182817752223472690988611567468682738396043353688327624038942620549904711540863018074715239963653833018331113467642968421435088168612739134240271246201369087919299769935286028085083534500531473900225492800999695652911083111394788927453203617951697744915899031435975096445579327956772635329939188127640356584604607811805822008198324321347986211842981110687260722444321691673761485792173702587021839792297398425272171050023159985261701292427340872628701871065093732304372436730224188797198683732981699138835003489530496534905667795953763874062779903365148568297592269347893248507951487502042194203715543224835388704663041753104401214559888818015719483377320918714301894867755889545303127226132161455457248405931535556234689684214993607920744533225396672024244804435620747892526677627654185815900029930276464418037874282601155774762286041233499836695021583736580057966110488282296053558017497098045152881869549550125811449808876102763368606130524031178017091030644197518231558946362169146409674447541474509710280160642388447835136927798454309015653057685337212234933002135238466495991805045779599342908184209352281751002170830285899094497767456261322820794059168424314089717304814754943449592493531996588845454852745553609124194853526389855263492832438088168258991179342724788611437912403241439297241982095015955430838375899478071649222779652622616217759810301242232331495027468625905546161646870778043521689946110141148827273829044529361630121739448178174050226504802993708653532402299302739417586993550899094077604819182785971940191080338350263475957587994347551865856886879201437597993571056385834467611671673427436094012635771601541091661099111807656772370873272444024935203410908455743362581383013452401299082202017415029913610565124578781971781062261628129092025123625019482916715829371861619797448628928831234257489449751654340908696617510315020288423337878866130278268261627624932618661716247061998067112725687822246779853434249735202542223033186535071659658981041998189905666971707808184946289649267322787618996801001885831225687965966049033079082455305373575678169175615885115552403049142685836472241773309252156121685011074512166300517101461552362490278069339469189016808652347422036415907418143974902168466041546701624911759935856540341338023192145267413900914722770701868956045584087967933698529186979146011842090437597535840865139122288428935423586169157230593133204658322179329212917071797984425269775129290415447032913429540627147254609239524248495243548510602437338570909466708330987937978513215969382525482267453361259824940062920038013599888211847476376557758598527531590118345534728791503235521001729839211136168950414447118981497085725759891194514325775972165429558296525912057349996967556955510929173282682715195855586082427047762287136788470819720229550740369937656974986442512442140308709612503389125609657587181151662477142613297622485290993723069573966266067771691156953768978189049371741692906598339277008923578630187614848355827316283952799402057963831631151154051803073595536279784320021295206171717654900979412404918590177699312423845133923135968107489746887209407352134895710387683180864630709415610366726118754031509274600196302805976748010007433483472341520495864319758350423189698355701716205983380022136824175335688357892034893633391221017830273954284738793157023369639302147664932475048469671140374642041440377110147232964640739985159072460973615457610478306984229796744445634545740153238524164989358430891397064644781073915215686050553902069353180559632116239115495655075509281034868027240610680516886216063824005616954910018619735295980616694977159196296821308237191520020750251658887115574797059920115523285612096698170034064808956458574867658448157507015384369140152905830074320357553700135860184085592927982584400233826697158205307572738145009225272113177854475003096213278444790392787753340734040207172420767191786511294671451681624463084432766388544256331290595569208736807397653802044446878678179629753480001147325645669430699675562470761844308045063482189122736246013126863521593637323178339835159692034785288024376465552461397391788631632035567058222711473312756934923367162257173570637267814971421776278823615022303390157471809581873046762434845584420255803636624020439226111536752668236812045744688711551902645889440054718411857469241229973136472322753438782796904504047777477356779895091503058438677275502495601226703370074150220990527534221575437233948071597964696118921101418559113764802052368736080660647841267073074144167398802714668045430637952202863453016048509290755393342227117694195227763033183067718318485237323866477890236068836815398561451302782213935135128840715973733056197273212092679830528427146150667663314785342307065866717479299702282995233555362992038248793479056849603382291470880700388001249894145102937632852890311418467308295185205643351222952550419864461873251082480401197056038406038788975477825083109955365712503623588538378229873626338721375567530377572595069107592679274131778387156361131638755233304636915187281665905990716088425262609192708674492068267515176565597984972347962919926159997342051178395318102332127574735987733141287913855613125956810371039535010616006739081265218431665074755478293996566772534298571309192237520206839814316799155379547323586426302435527831653091555947754344319482566336792635729793091603119967251880958230118649356804985833085177276013864312140878088397208963929894913347649244168900039105190643300073919668210643264372727063279425925607504980444139410128823145262140228641992848576813592942620993942485637830138416147555952438145616708121437960596514693112249155695233382532115560776287505757356666645225491956554562110893699790132501163900325676642909065448253042112569949939556397958517017651974065816446023846339598418213361143758343179848026789915824784089329471832140338794264051889903447281529398192569041763778394097363794181098476809808507614477562410583819384618916987234043445937844500183984863643438093971836115862581568192009755970401269708467440921898703444901163544385443183376022102380474425426005475200918478855701935702808108535216296492612879812906604020249839992730427806617887807037458774319911229439227862876922080153708682413499257662904635137729425638288583021388936267796302829461357057703092191605011542814386798147369548458141650358288214107210002174582303771945787193363956545403066017624099525773358039084100407824013457947822830431685312839465121021963786087829026939094406691036310242675302079569558354910738160150449033567619035985001146641987882809952044403128519961458410362580467008670269541048065804382019905951516961006828807180620155379635090705895389958391874776855204425576362740623263607344991949551039577204882135627264469312458219163916698615206233444246461856959692886402996684693699275588526259269354893074860102258745207685153571990456314631021391310448411312122771882301956397950769577482641113587990978331712764650856950848442195575747569011318981800426022293943876770219780092112206627851146062926764819965261729221791599693813503031606814522126230807189655940634249388644648624904150656345769066236280168017511887044455951061453987012336981628646238152432656167104981532391207768923589921742631150624550935746411093446469419021503552133312224873885432694405935641866495904302646806374563246362718181428664710383580577150519713346735551802811276961477156515339952183785440425425451731396184718484050467726088432568293378339873536875926182519550829936212722425852368066969142615881993887793029010608537332395033823126763628879937826947561596387113049046797109431597666991905779092692787878005131286441220633070202980223102906582205016143424032610957294488766708654734864988736456053795769548603659222335812720129098788477067209318738401298215625499457077194427375537970781319844643979069089999210997726167398033767351502220780721413075172451256427405199796047910871686686235722397820581417249588012583057993122086272734026637260668136374985936534978275546424654417018109801136062216834146889556408269888482157488392504487074263339727118821815383958897493450219542641460169632067666884386379088206166165541500684777370202357486160000257053779302415753598069407395863166705667256846787029270653972526353631330351627492379817034675989430064137054239266880560843658029662412829300011697590547091551646341965802600744866413862167076014946623623754737765117208384924570137646590905166818444389249570174362792038795331391602459632827831457385799276423562705880387320105228456318349112714519096613013826257214459391904516076496365294374236117776067698434040787755679003934247382363773324166690065834128535192759829994002471601605069618470516261317669479019296124935700813868603577534381927990312143932885078115827596734522007344659827113397463221468957537211906194876191451371811534230526560032294467581166555895366350970491920230164291176693685065045579817480671913323294091040703562263521907632331782942825032284196617947253006212327571773194544008148423700127944793336465307861776099710887813010831119419585137226992090394254580305591028995956390108424940432149504071598572587400219982004791291221440884449989574037401097772020438104802711845957502484770619434396861476033767382319146318187984334933092222358054385854510727454033582773811347570725623311668271317823091755190784349978744466201783340802736362070835771662150752288738011583758127744057466101672614035084922406858750505328302814429040883208393761793871144914223795961996736862195480528196214967228236404040691153080835676063048811563793859785937775633458221363400132674721156577046501525848827582999884569680978210509359939669928643839099391183281407624919246500652998216709512690143210958623761468658085025308513021469464082731125696805547681107571972187438785864664658842026606283961732665130503875410085829025064432079765540566105498917751723469080929402511970407383953921272416762518197621127854137416982026581469402587742204633507425710228994673591953682295429668885075492806341847057905743138832924101363498769688482523779179945723720588107951448983057962628334185187243420298546323136533776881751633061485685601512988982720217829748521904679092707097067799174228317698880310783361131119741210272472502439659013689731508627244390242084310634019234115393835872416538431140301998030785396148289671284745268194295909515422614305559463738357851245517270446779305660666476926112368816934834388251586702129270019431384457022368230184146140102564505073017268723132625893517905863558258469634178135979501933017253237979910660963419063832766501949617989844132325784365854201923468004627638865098825094042234223477508068122404311574927671271318993808681442185167049750127405637901648460074436803545215602408931685365023718307437471206625953641602687053883194366630314344417062371554869392285638037319420288639595722134128320320195506968790449489252183828811520740460192495988223616431968184048334329085028063853855839928746600462324440850661155010622992690471193610542717704380781638228247839275210401633248841704508958035543964914777019628650365619940886048141746927131565401779601108968154302036335519006902292690709640714753586002652379349329558515314907126041965911213909279861651357041613343960877297289531277626676527932038175162657332900482451711238385011074552345490002352320688811388635419640700899896930831401563524199144962163335538597107657652403247009729475518798998201622083889846035024281546059309603790497645395017979109827881692541293714197622318016538415404539401813815768005333584509722353497696411047945658932757708956838905862504740275341716924018229604822097404251861075801262383025565599680109070741152911754809922749195723186011831706118000129801473823847263988841917541865913132939074453499616660564729882095188122302180372415472463354015865247528645378829932727299916455773184603041942724196346772222874475376239058362458771302875087464954459957517357481512263373594860243730610520267339290667818678446777038413912898006016915869143082304113875783108427518872085442799224180345584860544034147900065285385320319762200936391760880087000319343185879916800257162579544787256105691914154828053742176005976169084443323201309128871768110828557642366324890924758803697018208850798785418604466401710444995359492828030840732529098268769209284744819596172224687041623395040343138529408473625453945996232149415136016308553517804623022198417135216665665740918389153311044100212939112766553990714027576635412692750567837250018145117763867059463432542289438709756136203450529238868268161443018053767526810455864103507751273918082822113650489538330599215303123444832427628511674753296718535354527810486538437392612032227332299878273997124310899170577990297052677316099219762735688009427882297261383016873807525326512278298163287043211393004443234637593608686255690676829711646129028309441045942781420402922848084798172857157124815426442735018491253486825642522763730756486316039156938710323578630417998564779345810503901939139090738663029860346435907989540646942619521157124579839051579781911059934680346672139105434432247201356778008134858003802254948946759501830916901492799533276908734007885675379104438935984517346489302962158611985657517267005433713263211813638169220344789273402848134018231783415140898579150962912490679269743673975331644352538816225824846653572309917093706874458475992543919950743101127420287574991006852457982744175220503196768671458985791981462281658476901838014141215303249874830275852231389579751639280203544367902332048688815129288353408737041720889092577049594193276435910900216410338221542301360018027924686449122395089928034051391862001489452007990291045929244527506984337753689189907320401588464032786051692629032882826490126473897388140506028665416803527150370240625630709916304996670874730267526881856454427303166355474575714498004518219261578920593852077537739330547762978674088506206470644584684261363663959238864670378651726898005481121353019286150693122177569240909330732033894670691973652558796995371221496250319751048661143150731039425152551468843349612688393184719467364142889503849938854997835006188912806767429240588716011872305538683006095732912937374136594714089217309504295789021890958260978256632743323093325230943127828904154474352042241657481574731428122283448097095353037846736385459649941352100326461079727906610574761671811850540134544389809466841154622869913063503245008202678518451203860322932680557659347295389735093936626114839196878368303220064688920135349133184804337927471837269965912766427437645214552754568922902128363774921549835412700227269621284597406246656482783769717516368804409633656701640302113046704567653553763344316242628700885312912626405850295589933712513545231213493142913992331606303777762752052686654412719919405387885716786202981375314280563578622483446684973400214558235739518539600183385345836237175105462855485464595781679646817637110924335745856905653165639422185124205292047686512258515192101273143270150369144760696626617431224983122163747875680063251175202364554758354495265511355226164392737235598421553250648910849372415093279918229402009437573773817231324183111017810587092293835303495744445465377454671134499275305226416313441773889592608419843355412102974364755004973733957073048699828066422400122477696180159895799191298266022437954540776806355336825591909080256735958273703198596893256470304425652797377677322335382471557118347713522444781065879809844111930321974520849856495762952935674150543481645187189012014573376259046658308993935119962165160772075457485393411952042393034091997197555711685146535392430693077517229460226418602083173811344295260126874140347233382718877706652643642543906555519301929897166545882464804940829897702247094254575768773752532721232584441232034956433864613084581804521083588981124161112651117859625653796767663591160924968228866313776090506633225383214967560198040926682271522614070218341508029752558453214032700624608384233203900445345664012337602309200853278389708940871449185002930627852532294348616731288898352951157920115145679481372947634486913484273822285385960953516490149759336509416493967337782848250420551180060243310523686720451080111413647035552633642987209939795920280453279370728597551164363830292153701891742212487627506335885468670234836984847230197076791415198380040400016873764628051563273725144215729696261049942263886499842293723808413310961687009779082845747380024913627076035802809028389999797478735677998691680339491342593306230225161297084555428340075687165368306570145027976309463576349050709212387227811371524555792041232224604067625729478200304309478651745030174264512340798306982705270928346318418875010103746757226242564419305459811921796885580812466847075901918799781295743916852027362865408743367878408960140538659675742055901364754440334259792751237341984101938126515366161109956643356419400507114684744626153250430856533756393877058821732853381493481118033502337964277314487889098618582966418392285504630666176126940679711942520907200162111974097138176005143459230130670614161982165289189172043188682839978681689635963641793105486484366788592509352615594912195457944174012338204623268204278160442950110041067878935094824608394120450790796561611274580965673528896296561240922257968299167268290077096893297706676356311613868961835685280018309224191011841733289726568649573131057229940529423928796527406456364246077058595591775318221785077345680727399745728278316405597208739331367024570802369044584364502748614592694898608516325401282800553705550820189217574641879069916859316598782381295759477539997107722754953457695594223714230065433760505780422130387228701595353250815122554984112163579755619127140958946985842172983401778233078225683643437237609047181744934074853919736267634957218478294806357141664526803345475808712136994288448374997064227465702196622906923596683193330414800025416064632520222351218286244443694959451390395338836351016597251085380778546376796647170444407794398739060319026729007302176218726857339925980689369349573161306371324831256549142894622574393376716961241118473780371493756767595844305058254657829781125021753733806270923603041964362247911403720916128930354976136485705440938433556826434791816314531533926378093851496430494737324643101867289604083449260696633029304192509824247449564477613593689012387707024730694026677140175631665792723527187713508076134670704169744563558544798504268436431734993903448445308894882878319796989002307025630610904696449458256925636831789761868945882284469492145196885023277486101479493454124933871518307851326364237768670268907464915596772832428600886674984040521080605218355872177657114216533693925543254965223731312355153049578559090293669358749146130747824745011907941361128552872645326496719512953385345497089879344115987495135823795782654139850004623710863441767740402039717499632432668085153369406550635862833375434196196589271143647215650855645901624206326370226015205865552409682732785302477732897687871103938747577096419714528138357599081709424866486556063946039711016370878628694971210392458188117780218767780557766858516386125729945138195297377130347553762213205459780571562898346389790511481445239171542429941141042752683147101118244789622191654815282155777243168172649173420486218741792160586582912259809746913517598948904042405514443424727248438898121099197618217157152565028670099736326758116766645724779148965374929287907802265001352428662102102046445102432766235286451383730388358772705972441258091122354297326888006694047730742872185272506331732565106957786455021768782344419475087486046025097460131177813918812234325468706824040335386796558840339092095253858399516799241246719961705904956132778044805627077269609226378531418457670809583459749668828125487888694615173395428017944737211224192076446644232184458237336942660671616682124892349904242098787922699990746049055021419772026809978215279972602933630919760024591608821142494976620914248039142011850420307400737941503017355476290820759964383244276099604882064279524309853992661492583925709197301212664722772693437990570415646617369164085874134685874266504918889986023742640397043806755895518980175619003144458447607386912924800527176480846335345982657038613568500468102463118796932999958690540801684512111675115563739221396118391199905612208891211866137307764093655868118660275270414406429924980929069739388030079174453112749556376642855034216016230017895909837324435897337937839925633392054671962964713065634001709486230764879637270732563978786855421039625624744705836105728959554844270222872540709262008881962368638691989457791621307654208876936397311130631715737864966569150045752313415771174663882576075493672688630444746564846079923161461794197552664679556406409972290604588629124933581467878073651203355094744485355598207304912136844903599997111673332475216376980645862669264291314067162909240118137741472758436317680867341046789816904390163611378501572757544158694161824419666868315366258417467200201648042135314945359216399175923589574402604771381571311745568054622696892137446832357145054070675182815734114234382521698136638987887983655273644036700049043079211321346593923111155482525747988010614398915332667500695224779530375748152905600586188708860626444075850948039339423722332536574510225842953358799279255496483468931838254951511046900462982638142972653724765243565859760726511179593228830892542023652282034072253724933400323315561273535729453360001841582081842247148344817270595831748755582383096265773788613190721796046079430292757140072233067384869293238012342970828430242803249086721253698223609304016128075840225131233276051656101820129096996790464115473947219200839057083293424886969631488766596032871382735001034028841404155561329544601062105935418962343314371538527026701634416974984210022810321722941933044353610218493395044403247757004021630255882042002821535451501877418228937876502586001591271239188202844342296804815094185495072182550326693116423315095556707529058144016436934129986152576477381653568143491984751828931203798880427962097729651504292335146715950743100366287013684670315829136228141837410532260187556258234988197514847859042000372003532699576809509688333847469949464406873256020098225736387749038010445053113642884630284204929338584102179096092786207436127434108886143592188186102582089365502369557694862414538154521245522592816580567604815487176791931061818494211759195057303879164288736998020233757302944359135601076470367832540381632112316573756777288664996237390406597398456419228911886388237691219691964462125965660600250562999479114126030262017361561723540748531648513673069915419962734565244482739784397087628357572914611781715112173672697492625297676276127169025328790595794073120630784242372603350345739649933071898340702872334056066612141423451889005462805742128484325573919028221784976441562060596510165948002622507667876521408993166846807842163803569914191297178041813436093900086059981306840795311416739058236968046763348511018894647987828316139778299195980551041518713555627608008353542667963541245201708888125384755343604700465335725434515317480159117638290641274844070837570172446285073864755976226807632819401863325981781011641787360488919011595145120717797747327707180163974473819195922700083453289423074642139565012536771561310960285577593735201487035572089939274393096627958809989959805738112382547932408440590684028240562141042595174560425780183267055516632248917114427820811020671482503869485959199197236104068419909282421324747793079995191825196242832236902751741309788054218183678629902684853230877010386509437536549441423755290952867869352167667148101014564996632833409895606024077799004097435232122034039687171548548244153315038177332003070462283340005190575335167264598474208298978356565349812889701003344538580263646272118838685661372579107233219211858093074366102826001171482574085622329571589215353224744459259691640325861355935284203535527771081202488571111028654520763309049000346651626562951841880778785605341758225156014113080614840343908341022789011162146880736447116081133775653987974598937637853875203882697433748323187611413578197466236833732362183256845900609862087264365790191911998846042654705992534903736297696892953907601410880228780550681377607749611343380651163167355094531776552835790243973321298645692209640368896716078468926302398220834126144659348550276580930683624273472187146480343472078283285966011824443750023741791199040408166984742061297867152856913050573067530981983720275593965411934508951443752127195759444780651071468666519201732589864322421562042559701545836583422464262361279048135465865797109517915491956353610846887047497876902023055139221910149023816152053118365671758099267781792856711738404504522102765824999728917808021249977617492306918085477178445414047940584546056073672036227596013821194153359025596050040264759588308948715814621560591567429855222073772434939055776393689562942607939955264304421628465231686706934282263640475323562151077051946514186500908776263690573674313913396458115370166068644959127528993126888883617154381758266654069681165019970055507315875418483162531288917518937265028628922402138091371605666778484368303806286963644413005705049145924177965606494384146020813338762796833623582338370253152576226491236459297386610242691803128110054241063973155040411773805250595208477923571553305239964096080325613532105452523565808404335231091960763983551050634712700211896612041651149169599292215863947846121832539805271782695078927883025292718496787610213736746532284619935829419802641403874471326673221877800896928213121012641856461576448148059472822013949324205580257102977510058569336312454598785940501812633716251137924501883780949918375410561055412206790281193975810550299841165782242215748571566889802401407858626701909225012168054792326466599788942718155244570050606796252046130080999997237102149119827360672116981940714587833041886719491732501711321243355584635067836712817862287549360868213289018012759804604814358850685097687087602046546448891155161478596155377698134012202158496866207502333060426059015682919324854153423480872447480112923136001803975025220034750522104080548573451588452209233966285868943604756142562142489570818358476360183233244292588137900419475233445141126145943160187695796831476710947834975753485689519414831500693858327327442453604110674678088785203723600811309418545845665142730956035856852329990784441643513891735053184720042820671401757274675587475704460556272929135556667240054833452448258298307136452578115312452810419548088050831816896238371695111184482713138791112709590428350078173818537638470070279534953015513199075485556387158927677043123997196766327217389047821670332581077045815069522471473564113562339298129964156435080867498841806100134470927296433227622186217258996438412340611246423084799209782563123436013487267011415503065295979002294931061290494487792062527847771854883889004369177858726392190018602971460648894827188463506426596801135548145163552199772666411364347324555148285118722417799311932886090996563002816802776406380844521553396209277983692978874532402864540124585270159220047665230333849112560147367640685362203083185632369722022695771789883593979048482697746595042441536004567345336627061825964862073310984132472338017707360895770154114128301932671663935608156200734453039441638367873253812880887281482193204150062081374199467756070225373481089707371851595119980877750193249624203620042025567271438069478496524674049243783870836241611935877271198415878652969709118496795582742716112487951231522594362694677735129172219355771248810901206683619925583605903322533785716026223059597802871144107666318529004076623033240555127670552017015913318170935907793218870727909889599656534264538410164944778959682685021213973469541027267581856038861553056080483677008829725086936472211283414796889793014665666159466366721607312381167815328611229902034433528497644529700530541685958560797782855569878707606198768969383163615081251765675215648762686294358536563307122907910100733706770598065281475619368845699707255825427381276329735028238541247759611955016856468309786220736670783706932189164900709510869090366667942867553305761669724177820148278892621616117175623976315713329067319579655455494825965021273773088900546256121282832437933587587036016152815534941926419154303382197480470376214134247512182154557360494546772377174633180835198690515150778586028351235720593689663639204035246109509996305729587704006040880724265019903315609163748476540849433873836785166505962746739496311572323023449477198053966738471670545301259671991029084986219698595938937458941161793304803260209637901925518619519412351074978176786948364748284641604525229914117708351645339489402233144009812137500121982877912109222934466917149532009669414630116397160803950126282988197226942546158006527886269282866930868472695599725639922571400954863468255733350240495176654388152720740739439001096827767502181414794531451715731212845726525884405502676144717885321451906640034806773266273039007007324815624935140384300139255524544620429659736512420124417742566697384155923277299727523822190530272350755653132455938118970534976701947887378593053607867435348761420466035174974610554806587551352419868490909865654554367522548429303269470799991687552900490868048020054846505605829187156063667801067492860951393963094690742437501159994962390997903221232550528341513601148738497958904618113000745031633669822180595536494881525433515924735280022712107126937148357930620828491798686522711846649449471530603972824757507962669519509713135653551830700517781804069476703134215588963182751184085908082845697454109283801791842909921014350267193052926762356048488714644303183480705300505169248157298734545615336335099349113848266194131121136993236084671840816701757610903716097226405092211571730024608284521935873790556281702530403605623923891167566525124760021254090110817999263340765951514613402025517061118462155397459686244592347836651952793281469988289800270892328598865657021625914434952273849198621846386098174518475248949842794255697369188703398288942352059861751342181923007557865718397659370720807124731439553644427633967538132187773038788915114589326072386440689388622753177659825506011152794398009186773056372793104949899488208369200387027322846469038968836328523397015891038282536324274054094200711037163264281195436439365465748140118858091917584905897227667229363890765172459847366246941089271089017823689763965115460949813809577782337414646360625125846402727962506000962560613129277980080287422001972749229733904378704550249528702284015403107155412431451886295770185658421714572488927059148951923795501659705367965586904029473297646951089547126605390183656837257014568134266989090786179348313099379164151188769788516072593662364742785780019061480603095836611690041648136996046091170500350445447342371468798694660055178467773282603057196252658026760351432565878322274439045415177826942701310410966264204065426277910437584302833433798931831256681347122547293012585944378709420220984107950922744908104407523101428199708459918447403041023938227925958180935888148462078124725026620404152176136969209083105015438806927673177913652165681009000425046998220215422751064572757404504348159234038898012609404306250080902142449766526059230871615559872260821415970190712424844227454042506436133544965958588819250824565816652555442614590542854868063469857311263190128553671245400708331173355739452785954781100824455030272018522410319544403215555550689347974542746228448077361812158530087080235767739848245628942690270153297555457396968202338485387843152604151028189560018965992719094674010621257392261182466916841870181159374822972232926795162654878386837355940068528325108098101686150571879665082778828612842164369486838641232355602448175153383830069534588661530598304577767936911948790552645857882377999649724266223108622607971886166334576478468474512628809027915661562719216564619364049652337785872765900787976724085114602936807158581300248879196878739730201636550334312359125000100400129725600970147710295407529983626426669619267971294498710862006133017653812793632653283390273107470740479981177045037755062381397198583923595871352220898652953518630048004721350632188492889912780753800322194461089470816991736468536509276728209295220586198651565821675490758590743040212092843349918029994207917410544207078207567531709481458215774492316304870551006181484373512954879925174589594166683269434997627845296593385806063414384891648924301856488401851115450898778825892648477102412527217258755153745329491734969214568427269644438646462748734817168105464575284699491489106441043131085388441802238776518356583153129648655640436937921426869944704424040882800345813000630415618314483640667405876379171546093004747114189930559806562192209331700374655066605302782844094170293154752210609597227229346323691799068862665461776687334716520732775207995544757422616197405668904280948382816264434688824803508473938610945541818768609040866478890611434411766077669759124730688266711759557233590229756524561969901809340060335595234638386531637719584565788682350784473115132545308080457077683654776438361158069691034935511542985557266944420373355460638473606323601356381571481024530894303018426915776198741595750962117711244502144141206563121863011697139173533854360857676268607235224176549080320491977308392236457509075877106053996952541127884070252182078424417590641174664351613000651690651900005226140550672210818315801075997283479063069706212509319848599798715442153766844739394693710198609580970615441164489533922313468696359858397052824433403735722758835151548079605152333447421963494517692918739446490550182975047216624320419745368666014671654849359645586691976087210530773213188104750504108045959649263743058649618767048901742248825126300745253841093624753687742864510780763097491828671732979801020898368672226322759298733650761101858106587421953549086841453033447777463531146129799830941364926923080572296732235986908426235560120993495860473872454486924342781759158182233584981721085433359547637096035574856901304339976569190546462008740419877522992914029202422603596907021568681871671789284467279888570060822259148228937142922538530111664475263133889679576943877485324935106086867673303080687425335656249355071252077013319639650166431713686427500536008359433271672327347688318653026321039459178810761006756487185580253906214214040550566150639595980393301274600803700307493865061165584484088496451373270940615276352416661626056419379324960069771555715667739887198254494407446952191387189740396206901090787923833441856558556764782458258823059652480099658342187466034639917428787811654525447455166530887954626382488710128284241515169208236903314828479911288737206989696188406061557019130702032233771052075637699560663464053298715650397916354933637222093041634580394261502687754409411560196949128071713296043652211299035668208324510471517390735549627259037901801095659694517847604412207025931008915293007847569760139796552010860235452914055594673009866508486917002743575535299632430222262973721180670231923755371160674193167119815956292881913164234679906917310757603906904305886279024845176213605532861987982615239251978011209450326149292255065430357982085519911468678174611158976738217197813443940552719385868225329290739925670398216567343866473875646583984179254370534305190603312851358665141104110563751802102320109736235326944190575332143729438196378468100608359423105686399064747222340093425431558732113580306265159395704798806645369408717656610420101399578609577482087344340218714147364996996557812165808690226816396371612110760425845640025129408321146468855913705654801122875597158441364484379435264189112421178885577695453823458455082352822475374584542864340550015197341840856857274478934412058592586801967323744047532561885697342958413507299596720867754119677161070711412943255056352662920785322544964172052331870752798510346468577790272579005967291029559165126534551840311040959682349897827676660053639587434111383634100433125668970588004219777157773058106380555111416543581114087062609230559519199355682956806444027115838382827841395276161375171038674714617897473553777725194375067737454751813908033679640459671430306711710289719584843640267090115635166069547730916737770383264550529187605653325380771770402393239843053537683390802527000603415973618753193745630468314317140144339172927868795369391701462763517687775007942034482974390637543465860777826187368961827000274683870163296845286196128452432451947568921332789513715836715649161748613547754630048081157769142642274275291475235011507460232393792585965595936886738333428449496710234335114346123833993613263113309000157085751418827330975085064605945503386555764551197593456585088985117758042471927525625783092571633368690708807946396276036748837411354707031378484694176242623717587468694752409859142943432091217946114804204556120248477180243915566926547288585936215275603800583104266962469223352214635856158564131674143947966238485261409456688578930722124878960170751584949843795736837303685424386665821234851654136976081650311007661293359896162443696173922465084150896463819611848276267502596761077727566607728509149433126854621073445531918724864358496868496601787161757306422461990760449205434143166147964673663730776054155732379784334339390625690575192112039877683061062640536238401457089881516943639114635389785307501154225543513452863864880602461287073649820250780085338305585113396026293718673537879814207705765006728765266594554889872634984815099964893723697669423068090162365527162091945096685806445608799465675774198424335350670355399270363804563457268760721495289393385464935859765486110477150455257854337504681055003327500557620285828982469467874940234703895054728708353798856847033788960203819597008364721445847742180824158857979873452489221899929462818334542625632264527228985828885570110707274617677915374846141391866911331897805198772822281695682224864545824157065101670170928851561302950241443062456459183370902366807378118810836354247393761272597718497073011401349095220184216580913460721854431803630032075271937243637226458666219980582386731235009528515276351572425764561805729004959795201639701755586846767783797149410147140379060448580628160794660947943414827499201638117846986848941732766229052768395537664720405836715937246373533999107531084311457109259911886057607050774230166243518314233705122058469068116813679762387885771044785933436747171694790967485328627429383675063110221592580459465275681648281743954180496916658205496207497263585028779892765268318487053147629190650347126791018344266166593422639271254746025964799175704058337554314653973802363198212477183363167160417427805855341622339532556754319320833971464188662231640992175094509904047787309874255982408041799079957187692776821574329160941937995007857878828865355401703537116011407919640055440205804683573541307711473975909272670458585761010557435175507075815976472367837189637172096909852846679209123041764533483147012335664299413129065497514772750028317319466691367755876838773156052492923239924940225923022538676086761192052837669913351248349366066258668814015805060726866313681331169007936444570600650453281107228074822270724323730316026657971095418982329014934227574224915087499197523998659198309707085946232911198463473109496710403706027642550770573940272417072917668269661988215371335297567630856073560472830581058704920812994139143940364872249237224179042541268449744330234826445087022039403352455754361766506444392612280466403546988996549686901456763599702018961044228394992621387008954849496603366757783623561088934456237539382078571088174227143409532816885832890900909211942333128020112102238918231525979628548634586771634549297754863446044489128294237011089904778206761265622422149717360415416391412390810530418049636943447870839129485851584283628400988629554225600873877249632273585787489128882374301545649940966160101762665467197150187455334112257070502941299612621035697638854641480707570253678530686782337198035037086352139622656824415939643646379065003396436320622920505202421380232628532381402607750466265102508692151735044713073997480550897434709374061587688734364900335283537457743840053225164118899563950589141859527146677543859263888233393758617255690704935162150429199259602498744068843807619423154097619346290057011311854749465199188500109960526139054550953155889628641819493305447466326008490858709117292564354610119024493854605371435971114961396071899181717081473424323375723699397962088134990642888044605049586441903829361428301390618088823217639518815542831825280974982288772045226920323595007286399554480624307486805576314412489339909344975433002766661228649118824741148959743057622581154230727000357893867158043250611796247896869497070896562046326879713249965496305747118954246080861460465966742450737328784142640039996395896231637398412014514273457314978934820124941018758521740756033651917910790302655988416855533149650230083599006238727785255954009958989759082347784021649786309109790254836265945824287041858204967113446386927486810464035724458434546488704073623100119941230511716783065558577777338685607737523615818671415769635981659172983795097091610378764836988115080609589464205553931028121298647852037781838462990791893980660616968742587115175545510230062519111166390786894133808979971351776587379189658842454614219483612537983063626675187723432261244164893410612044889198938572377231949096530906217708421848376358501392946017466494271268210060476361944064508646784407273845819681664289156837153199238001843877529233082292059657433404062354539976226032231966995905460544626622524938626187744686167514473426908553268261381282061790917974755399422309890736154759424130353446536843130030302055569876824736741006809706390880884134436487001288777166307853602470710401416323633201228469640169839655728957360988310406333417634351132771630937321624523292734476176538709605062500424901206783908237959544628225765148438190827755391942477231179418240678080394877785723896251792797656751760234619430213563410162179045900867952002671997477450852086392562083749455256486371517906805040036794603946756764300150924902291113965699087756142967964241079233911470663102934046963576123956785547923940705735461371902701312932621741654366372109575156686513089976596946315946382121847959708863085009287828684755609469408542857187543238616111481168594639275705332345976667744967012489168355902529213041370513249314591837370976532400422680209204732201694764380253593123928019872818336979621824851907197841184332684432918664826124765442685367174248308618509356435291422813847262797844413553010557075936125577328484073851551542712378268736136351066796582895461911454930526097018519526148132613423854474067514810547584456541528106816235243954450012973394544563837647226769167206994235569642852183834758812516818296934144272675400487440053985534525586296450057054419042584724636448607385067798951221069046782031598819058143845151539684611070537684549962813946610557797338079925252972143670948492302693998236084582855948437653305046744257459595406151612874459028850655231753540343945410874661081901768438156396290014668678529748538574092676189244046727645036327584889633996919084870838732043806481917900763530205199514094080370510154665282477249933511859387689540278736027363079130972111679668858602335621278391090483229037754772596778561553891807053541891181320882879474465365073314871971367574666315753867870143800486114590398196472898410391414055787471456985070733631461090565310366641264743921798903798537979814042949842269648046420820138692520658197421177658219137095995593865297354232592107706585683253200666611110771715309648322745592038460622755373148786056739703046816081284863047321175316616191614142872022374502660138610068975476935484090079504342629996582762376614899281097995270258123789619903423720177135760779739517498796502995980923913447147717907616482376772636393961651778279986255764659606465740162557759725673580117992338259591797807797411452393701873085182632668429074144043495700251796091552826117388294940933358605213355477538759360559679600263496700939146379888451089568953039021332310008696512595350175023629267733035245075714648692461140746663444905811846982286369192022714239229408760507794286375148395752514179521233655908665620178302594251459699530212256388238350230474828960108494007270903561562035976497886589399667444580290757955307022452038886606723372015914721607665026881549472537850816877943398027005981323027877283370911795616326062019094831062737435890177519174491367954081143437581725995331818994694658017953271710040535167237501452189477327878593621366185678144409363696166909901488214420338527924618930717640916592370525892366850007139859166467486966124840330657788460943970434329424857309569190097885396190324990913654909684159055030914784645151801001554839677848432408747757425565331795952666356434519337669071270572471153701954696077585391492129511276006550962893893168189140430752309068692389982475920366888924091031101251114402480332497153945298399642692953830689912355066432472357494125471514072753683578547965895602432025084467666492765570480292848460552434597902521676209493527479274803405802128756801731311578719139714631756912607740211216625989758459967283933064451344570858484495944152287894817170170049327762847138574238237376110733667868993364916585937569548620522740675600708923044166204214140637151001628925366202401586907154665658534886439831732762522651294067836860156326573306876860113936734789049586715422111054636087177805945109208652933266365451759898055932746668190056765833451238263531512062353875082679024354150344665841697829098230004459019508390472272625014981544880069635487620173275374933016969295845273752980556574834891773504888154232242496829985323780046611794242759577952971411513693676870172062814329197308776269378407721154015027136180487486647135128892119604568566578209113356868475647555945705658565842541571405339452719079931245418831656869088170966761200011316536811867825482271293019110387427433924592554555600833693627779778451855836459046959490729634271629792677996991269457835695301958979153564783990282793140701438194994493148137270693893119439482437864349188609147793800571600858349381935241884120386598637754613271629577415140643557738151051653626160509890402103075396397855105179704987679232586745818806499231520994666807267452098899147218976871018386920808925081218971967421998975649225611637892689451895195350228147494693829890213935274518016702664322835327766803789916863114460647100971281701660065160776394590404735562997990637332595552328115620478325952407273842448952985683653266967144108838251712766751306761188198959865889222668888603215511271440229515734422541725665449162326959451267386746191021961731710258038629294923667486230650481211654377477876744599160641528969319553901510847037344370380801433766784490566846482886165826419062146778861236099971148260779625782604061393885024440931080997042048373142829945790113010018054653157324425362528962025873819397486909623856905252378086258148338453973764054755662351330820135702240387534532703760209481394121608935445853725171043036256337969361240201089228188067309804147856208542905711292151535136281305976782963621889492373765885739097785415845123123946828535922966567230990838979829496500691990533646080914842318491184849870197438895107402582214809294559264576259967068104220476540912737428055254960778823378784476757542933224480606921888335677893273925750680116418510888687907070558669742648710881852342543507798433803323650503379620652074384591518030539557466558978693071897932228203690679865493694104371175996557896225756708045799139569069873038100148344693192238040999904801690488573136826354565217987102978766783498361560193961833717624911632937669309263876925876410615658540940750361965312572625292139865025620995911201199575038811018842166405403924726500483749707579552947693415902147882600001008289618719544932419220671058528197927752128557027922235515370562781614741466494987337521205780931606824073653832591982709269104001227495538679557824990456785874224101140406664517446041977757132678629462546630528741031143313387198227398709999996788951344705096336223335601288667636079755063983899990226786747714480422159089502851887384719821151200541849966154020757067982523070958012399452610115254268556740891579516226656852501499566112688432069652661990889006236433018183777280175054200108115270133876206761246247392188764609444268243785115217761658645803700883975818771510189341613783416126499754136610367447018481226823653741834553704111860130226021461692625548333378015110206605304317134391014397394911895160206612809398235827011175501315018647191636052374274931383599805800595633461258877931201145170914643434081887158125759984976836433226863575740905116112315176439144441192388365393914778317213904516375718483449546709275928907281194596449586842892156132714177841331659076848472837536380967515810501050910737694705519652678514867767888196679480887929726484946751963894887787966779257867250886230004920664018688988159423755903172988740273810945634090673546229242747688885906878979192513227322984675518421018278754168502198108392833914036865206827741504794258840742175372799033114960031576989425596920290000142228114386187659942779585424301538521360037606594628771334238350825238252301579633387562938837140684018543494636615974274895589524372013392811303188573548142787763840938979588205451380355134363865463003748297720360670021791094908607308800938545841154988202983389370956610545539311451839474613452510691579077719323696860001417904966351517557703815319434183231111328162912691020241270514238876706928376398500074458399697289141369430363667653812451359718214528776700081636570166945286745994199829230483954088043331004340804166068844388869810079343362165678232269358757061654693151956147345434924479712124091437307017629923080150313604031238875363158221242217241355624118234576622916595776382523851395326570419978850712213919630335229960250675621166946539853150048879603909768287380773172630711249969188449717598451432463167214241759706432013559897979652801845952510615562907145523521833528866025879817530257195418616823352993510711482428346234456125882813778392467929878834325717492148206359022679290432320334550452605483923899013704779328655170987100574902373831214288446190539562184301842574616317581740086370493235722008731479159683069545954495425978127259382580865037929741104000204992326133772750714162138361320979327468593171119387578068613712961619116126062701309830435090689202384315569820807973269479278069456602153208802668840489090577646559320581649290809790254725498998186700945769116541956023103837247613204088604787274846541834281189095383081616365604227439215354785744633340380050103173898532584413422624057393187380477040643497182861930862707734406169497562743429221561851470667979214151494118645178650109133226785766807039061580881960979360328836220373858857671682831076281565650686661419409632889068668165074550158722313571684645679456577289991435930793799223044062500795857806233249084415073704236093141708569662029704411992760864434601699017437733927106119922899173319052436016438800843942727409813580521229580334594728068483523669735005009988145201955815763591866236808345206590185467609677321268909878705672144102937953225281736471549024523219955180514320670494258502752980391294814202033771295779499507424437152239308329955760422559808793489778289763473598762618044891023983171966726172508331434295525068590934575415945730218484860522521686133932097420660383452642240975785579139282606371248506351177303376608780543940677644332599091711963236817873398231287442438095209976715923105181036952828345208359572890965295501504981444237014464257667383181615727488951254634926439348151602692275067616363571894458868071718650098980525720000722679784617232003743373743751450463371398291529513374813648279356195913591206684853344205067348676348493170665753471443841951677211948252969987023225109329177477545155914642335023739032084020616678397885962977468732943356786288883047332251278914184978944399608210940253280717125623199532653601308354704095716892846786584708933661390764756856424166395044894110006717412876572399222408203195099955861191994421178676332899374379479880810221759151849280582941713078694656786941865661563844840386970520934710844682438660518764326535270773042304274050940994704087290863708250181329900745525613682871779085631702531660648363315282854559923338154252243027804248384770958661507808798307907293247170967339675964639719097153995864328025558090381742667267683653684911604231115842459529044568338230493071572583983097438830235469008149598587564735367094065675716874965959876283660279427221186293989713420594212135516526380871114777128174545898554895531831097300543642816745279328263899253836559405235824407358851384816799172870034697548590562725266934689344561589213173769985143629240222322013415424841477880002286686541769111577484256536455585186950165877344596309784714090295733543434232793281506238059176079782005641559551574656410206714423270850686049218818333191205684047234806475581400725187196580301522892480054276454831162869725931743205177607426829163357378097177125641297969602898425632524200496831117578669014993455731198057931395572857812986902883156095072985894183465796157972061055577430805573449460245890877565913364515340759462691807870061589475598817997935475036896232860776186932747642897525726097894360727644873987216218663638557397176238491157652357986846963641053439450940039186211524475434858307866558637530173524867186561109525506757134600258478867315802024357821922014823354965620827125919685858775518892682468280477254284756016446471679206647923834484111896711164476361325763518543554124864754200572733947483806596995233867432839773029829974056889599399015494897996669788979796955547232860285922890107535805869929898983260178970271418598135636619657907456807891954228456473525228388058687234869499483427857879599142982506239173092102778381651502357620334569956286851581873911533318551099319942297599539685670889936155927667486226748190093953013722203481421771404146935519058414022594289340934628503431018535520998489357125007098047532037192683592345063663329359955108537957038998189365270769527996204490656107615804068811140024298260389479963946182883836027934506283888433032149536230633467853181338503470538555234500161341392854185977606802756573319836021198969704927137490890495559930590244938009993935360241492736675152857712191158622574429702341781535449524558053637506642112002895945112239711874181705771617668877737178710168857678797500529668482250066086047455828254976502679475119620652566834620773642941468990586996994552335724532076228161773187951843550930820471751999716882011578468075755467847305829458924220702772876799563270974817990552606380558728235269593477109320920301039240233352227004440184592286206729345144774843740050869547269175252821220770359240338346766334912405111594433294458448055585371583025793895203432099384118325422151289607632251801827077455621444172979697162072876687943494018342996542408953232966166391847588909693213288224257901145248287567629652968365461734284234419245700426622624665954455204315256286016621957522494359198926151041536991553829304534527769768361976451139157150478856326766295416851800199932201751143879305836913188538137963126626254709878144718395940408038518692310581384360133731662941472469099788124083379393586689175919519946577859906837519359626660389179540130341557314784287594790142969626982795714305379763954269224147841558772448019933806540713441523461010025111583904190350475367087297976725089580510823037310114769312566088019041319981508727814478365905515234966279638369344345767838528779850954908322977141287799949815930765649135013861185635816820743407751675101004809013257585586148542724132236919943784089100345920031235037322566077455494804558198102420564404564099562833974638971803921144368678017521778471713566622360811842391013389482334804475247631879976454688691384407881612266631315150808658817503821549135416325805221454474444393066228029450160810048802438997681169646340670061665329499725860559901805388998183278269373987111372391183626024283508262530273402175137249054862880487498456228329562348375243962545974791331936065115877627269652839920128508136323192985360543676092107982842850752505327746735729482311107719673225675647896497912164958882802748575516329541331365173547376612953496231166841441105544348026120735294706220165681640157413479402279924111382557124411691980934400201861569775639789354847226156639430922356920006095706696601587452727200200014956023822363028626485756251299989071312613580359020557205889499047269772953630450085006354681562298517567082947907177131248385236840534091339942263993456151883168432108951332202318698168559526211280796008572537228014086407327029485233862891063687447798834768979325255783056001656343156797462242226165270719990561040831007542873246023715351167180277350370541705482371421452478491398628023957442843366130716566569315139428957280105311666767070625448896085590117067990888162528156487965071659184025965962849949155494575431816199275061371831111174394166994776234329753363135337744710706512279113117611986717046346759246877515047026607224555661653529395850802861526901917175926923801054270374601372044352316046924796408085143627053569386837960726044577612545844248580721367170607674564393262349217913310601611090618973481547657868046200385818394416544158713708908004994361688973979742730776394696114921279740515279376850806319769061508519891755836528331363750608509644746979021806919125995957706914637251768942456033408929932680777821910544336015566514882800784752650598807447077588038639951886271165545907845895283158856929969593997633519450913970949872526645287548073293678672722715847032740320486550106454823814146109644116513829898989012039522150668065208498753030811615792308380024105799905181610111248128391841129695784313928305261010710131022351250645013230225511248022146578879400600023083337367737968442457787201957682622539977574089031737919758805286718884214728613154917475480926428198152174678631754866533680486934142632878366005473517804710074927444488530222234495221700875326440969981993180014632257665758846641281424329652412574711361717520914862421967593153979758319190827599997153525554041262018976280650993392134698651151508982067133357241487819561424049346187822900652150032454214515881674641907890231919356570779051357178859734545272328973830573321866842908162550103183903715494786626954230960602861616038889974637935677373470279825400878518740679958346496247387749080295737012084478357724447358651897853532876402120668482264441759833167511308206119710101606005772588877391609371548665604434241334864244131098676675017923473426967886219327036518029596627374794239831655139122105349932624197524597031688123125936504325980378629566183251442450184899292018168119584497908103888195706798503494819476189812700723685687622468190815039148688093556096184042858532519189787184467629006339058801008009375240299619661995935452687283682188185578010054085382480765038412497237957084980653828139941735971943613220603854093800993788612501250465115657187333701014778811686355038223135001358851559928400306501846443367648953303467605243543450558323334330953434370120451078694977730592954396314284401625348723312657514707856312748058336933546345714985731267523710587031344777011127870381144064115438816138006281094228588221735500069331777911747623585517995706473061949923038242155959912399718795701289583614491035628824991133750113693945482201147562085348695279639451081669493522698331141648528663250531536269096806680793424375958371434363293857886901357604263719096100435796951475214813914762202754574999184263429838612708334917584273822658246948667487723134127494036312877220389954869391879167373378518064467908313521615838806744332476762560949183710002174839953919803787970140016337986187572877525208174001443940937980630107957482086240849141824956600835655875887079492251933804983645930968713023388887957063961149856204367765160687040543964637400697847500720271937442390205655532417757490304941550480982474509705883367427589241596427520033053222414063256631040345915327708609411204915088814327950080718560223780408770882111421516941823511414626235640436438622815836702752371347109325345437501707720637997587345311956919256334569777309886389460405415311376101271460380030329346393474245094320563600349225419415350749862419553802686355712479295372493533428085723995200478902642191566803807025956293233171259242072548359637626912008626717525696049524727727734145970454305868596390861091426967771390692746380781253909551641118843188329674113644204097994431026197288442105640191761888800270578688691829208543232027999943128599006261170288666381488593495450188059248304931810933505808727684393921131427837174080488521355720131655953378474441825625044387994633036202686156886999476184213675798130512185695031257482933591019257102668060635975151835740561488611274529274829688525946834540448937229642798183893402580679519590532405194374726177241500668137159891756974739339051924709937968739613656093523724479957444127501926969116364118415080861086028507522809035789936987569916194319568142872786753892380347955124125490681974473249801667095159873492787176367796073769674500151504631609909711123690295240052766502538747103564056824471243832743882635270449482235496252537862940449293730859827289746435947013467423581720311458933798959866487955191684366697359957967992206826114448616561660553138386284096124361120024805196556306093729158577816568229657154243363457103975700915863087248242454260691937446878459510600178716558288166543460091059687084183650513781999100034904866819520959733321026921858315544744978985132019703360677620802606995770150019012945697033237121159813589495078173167702083819366197094286172213442104798712636318563559592205514400959759510820993891992332886622058147725749110158601760760556804209517491002110754996870129121530513924908333354921005312072774286812139988678869710266817680757807835038673738921222973767596686303795328340787244244766796072756850986696022249513671136550272714698437354159314714386092316434222515108249332548286969088337560868089200415941069939622828769399176879980148540480199168384124169445872724583019804037820113458745132976547602101346882864500371715641893839846873638247149845619353288092207873419102145332609313617633319443466472586757875106942290834612450492541243313798338056142202420323477764358963303181410969675560036063841498087652705443958309567818148230366307176424782939877901987250414860555398851435497064531417351516398436798834903790746177992499406836450781737709515739932589321953965129307024509024069113132193538694836724738962596869658688415762065223786305261845405731776703313489916228046399594580601532667177742798455307823595030767509411457076730899954289382444742071218339389861068469693184858362984411176804935277955922844524467518456862719470816947466103341659782756014497382686019374488798831829442660083373963212279975893986937887383485970030720795957789674004832089122039299330068465124570648503402309715145162064802715880602606495761179960166306690483370307035463788826634573645926087315898895723038358712207146688113505227864665241225349725946818320792036787117421973779502680438059033482816583901458783111116834883500839902591997531761044423057385560669397142832609744628473325722757168173327178454283577397715012927297651727478386618341439844531254262598084866467916959823330385344405844318318735302095029929009579728894275082832234597567943890116806320055634616848426702285092647174392324482076126413399328478766009183394970754373276708840634780848755435986316374188705126825980730472592220255030879307602668874357260072862465187406063230537403518370799228951490961087936516314299135196829690711008251682242997418235538914879908327446963818345399016216284666798491303451257757509634175315999630518159876913580895029701399129185709399162282873198662226675745336149775055544875425467727547325921814763945224417354386608279608263832488379676336773230016069622069646582676934611438413449223106723808576908162541772399186435734561879291036511356326333632235303344244160331879888511988264251797335127421369174662320774550698395389150266868688241604568201460106749032562522620218849855224327509703368188241412707245513686585417339772810112821798692029216501604087555286115788548397585262279472352149426666987613179359449953053950346559067032899873070016122929154569296445206441604427345090732827132126747582140390796110164578043165476716759798605255528859815467458145495284906709256499861441318450740616340365123466208795210460126434712950977842116409570925968293301579274620409214300608456778695252751090975025837038889041251212368122252541379626110727709512562586241935472839970571438133143472173403916088560933578868056611713953560029222675155227096348490107891728949580792542607627787976742859810996937658385147240250203909522756295524039443744179054557312787061429151532933952877301528435126389027680170823388303696425920754700265434929813695357483233589505139188524372959331049343236123677034882894485402799251212926912803001880095568927561810825901806159323249014328331311430791548350235314216572916580355204549238302196435766713547413891753935000849384773349359545282914261029548536807398279441787790988178037440282697298230951632151337838198980928320107628498186794395176101387583456490286844704049965694548586502994772784781888436183735104532567933685720496135858438297757722065979220921600184758502129889552896770244506332382028417483637896635037461689206791381711071607621080262030148175900285516188772900925941077702547386155109466130526198773466031589222340828052268192634121925689679735311932433460541251315531726883416761749651113977124629012057339237338546087975240719305669363551610343004911716814902155557898969633050597112361563572915852557124139135711036009923048273983326825756384764909671683497547092337253654456692932830493079435072597296881329833895728086489231651097941566030609804711898320084236224586811659869105582311327985276494875423863982378459768307737485310766985716724376350018780587019292785556268382072043155151137537607235598550767221708776310188638494772309013954858272857594952443630565703485406424092090956189967689157809164566851513557920051649736463782145076172714106316792017342526157465035031957832094329135138085701881723655250208482275179982083120740705014903644067462618425907851528070887863125136205069676170581963387052191943212891967870305124224624509094800044623872140238148011843959722365873137159995230653422038895415201975264200337281745058040170022560916513756335576342505344060020666802741168332827682536769014130246057148836017823361063894146309085760640746615467490407398498030683480407230125661085999521888043462198090030837815272012283851284299302087171683151333991816347938258804486934304828034462727958448818864276940571358991367751223398930881429489155478762087567029610586290262164839539578508472168351976341649324514279454235708433895443587718079722441418943694218026925464186143257265701390674779980769308103496385184070410804228408031709121546620626964730806789722125102196496737487039069849301414144076596079438579867958057034428513590140062674903144484990941709458853074750624280989804158148041541520150614057801248548207878020564255019422343836730214313323897346630334429713930122963404792300135149942866151513846759129926722647295812945681012052972902890549342449333900018323690589849622271689512979855905817761312252361804525760499573639377569616629988661949350332552937229929375952848435587388332435087928861527780113638675248075334277194075261661481981948522550016425831326019980743609230351376478440999229343408081327001218199550744533721851192103094245984363532052904250289370491200445072095760795227499931275763691116640867093986101206836618588963825823841837457402047973762440012810561558506199553842336326885047455201360559277982742763347874534499358182789279986142237802596472286896007960638959032291056140073482509602325462957856672026763790668263037662552965219427610336937694408013742134353812609540399932309980389962102656802940609446761350339022121254229311555015463844806391253043542217987781492508287409170943157543407995949686982032139278115577013557681094620252306756586858974586688749342906615555244526279066039054193075410003719783548547621175125232266567063003434116041683667152457327878448443310466075407669292697119873951047243228851231821101996633488935578173698635262303222201749992686953913226612287063701208266780473890895856222557204532052560987376596111708708685451930591562236130232868551074883743637589594751617257099141612492049432208891329521083235722057159250664917909991825781398695770840763398315206366542777553989571990518462817705750416408346671408508832462921954266326256624520211547265917363075876734626718863880933244621344465732662448811647644930806896056522222579018861908084634255455344368079709598447753912488668103764604311207398828305708705890297763400056495952032895817810993007964051091395512566258014859713234798755114605914323782294590018784049562069648628873336040692700721357746788590666982951145599351180852766160365513251658229914142692186430553405411044459263465109909203278565436855598084277143434685454385342509186665443169740511712255074877310502844722600790615092985016061199595330867208349178327843451836595523146327746489521243615156434278904940720581606491597958554704703809751780891621495365055356814837613143053394499340456931837902426091392769818159578733599273009390421361004731762671425018650848717247805274541693490854471999860000575463178207744448708864298597794555745567700708888078669887102616457218740619284094448440051109120780159309425750875148197206963055074618995585348618064348617556611663421750277769607437454442598543948773661446771733536416846643534142101388433747315157713076137730163291945706857402964944664687937474707083176428750881945752183013555637281599443182435768940529153061706286990078235996511481033630890604535737400405474815821303331477607766898296915184380059882355065298128263390025459932871085892821017423606085448382376780520617509921651828279404694733737415721998704520341800029540495041889333215039859685299393319317298683695454053228302138983669991688018897999313940607415604359609035965149377804362540256645810883618406830423506323811948263001566959140317645207649819345534683815732239303644459486910844258024266776429839181229608066111667586942437382351818702366618906677717852947980033053583294400240217795344872255966403507509206276799927064896006578230791768952466265576188176047011914814992188705453886484020111032634930895164498037406345288489463605850010737833569694720018311212095498831742315973291388882564149197931809361395674065052456267391482122351032943329402056493102614088910392482241905647197383131479844668920679597655209986038999211211495158990556815186295183330686790986692159358894952007653269662353818486295866912715963762847830043026848985484708116962772387397718706895492718101606809376470452819083846034835063665856558091127199440606795486449867316240081949299275080371821498785382203111091852864608518011589145701149888148715125139303392219787000083699970471228185169128347595844227968565692099968598069328523836701725036398466102497712968002800468560118205773574229482102304870566371365131120993787842204983838119123160600805765112836633776555179816404520386796095293547689863671875484756308841040800272824295739791930490486555531607586509816452617719553523023438889442163922966981221480032102381260625425761408429124282015380866058549699063517045565346463363332072721932424466152191001395373638274436541170764990941612790498957280787998993090023866346178268081394220602851494038059746457185004129786874137113683269171871688555999129742487472159814976690489982940396580326233662232006175922847568617548837717476901055763645726026513838199978482683087997827470193202654169311499420987716104470826014173745850489589585942885228041092105927634600771265860918332928910463983591934986970386845521616028332702163372783999783927649386824438064420046550624936078836149652012750755839175905938634797755413837813582312513563263384312508648162974380471399950516389878681404576897865151815526935324085443884086984854673597733125980644979531869018648851498763266517386853522622505513778557384344610355030952333143741662842831681640624601738892920067488324205078242316649940999483840028732982497997270508706840122627860567110944217960335007339302562272021365154283813880627089569286792388685132167634684180699384353439219876234858458932214286754967014927469910109284128934269757661244715850612614142295995995765317118190842886900496957935985153561439566522692014288378231764645334509565468079204956010465711581776558865520874039312348879962255698865778644047486881802522543914980606691673754623946343138644069007919583098459144282470840082096408332703265887332956932291154482906932228290447885976734855918699264237827260830373107047072672525366932835681375526037757242862321063959597791898415523951599626898157321952372209166991698725976033377536670258905255713973853118361088322278933067307865159993050422575430138541105661934306656838033615871261875411211248799533300198299581970408637056119090703805245035600130486128538922043804234141936085545384632123488161894376121020822448581093226965014684431530429312646962358418668012256151850910838286924022938121279596306292871966638444394322990477781306444926930822254226445508042477192204683263280440297610642645381700087006149795532162146277742689362598744768133536419622391584037267279848144461975716065355640878452385494596500861386624782474583334838584404190170763783677748427270739643870705794005194245753418223004608243988745063029063964383794284022991346239654914484832066081832781276366691340983662480741726470298223892497342160711762562692102035909775531597205613304040189712667867600877650232691948000402987250651436420578911783876726160132535237087370281662012216077222152324182330542684408037434644412156286205911689103998599505988313208302787006881455167077059225441093314735851536748745743036823667441300643674406062486246625210504112804139320365329524309282290339671635567575588329219839243942779759027857539279952080487249430322886496458476271562541515409655171602502491639682135297044827730892269314766788920056483876346172676382730100557402094853603891263958282130598135973581550756845404267311849713674602772742348527926890168305151406217326084910805683205173360557538623501631209672969412813955858642038233722414595252517429754371326035215050425634654210320393893115184487795294667321123630929231394788702828219824151668953107269798949237162391587770344921080683594209281719466776817001304428968988810861056919122737905866256129978093642265961859576979853791347129078149465025080265955335661780128789067543089107343625963477861090204688859165520135251225113649986053953595173994417537096371434130764137730670886909950556155517788563708794951394954091251811884463627568356583945399208113538932955962429352832675392226360592934899529368855150756763419907383182478354462465382501271585706423092254042367044767369992410259937729414815672672499508577246441541565671812600594622051858962015116492593125295176274964926170173220557284049478511792856554420971653247850062991089213228381696726017746405341742228487781708611796887101340362857433986570156690861413514684686292041569426490278452391399140733317289824821780615310026005737337819719470965860773797278552983234936534418105931418004688400689939250622826654311920763175867389450218852410905456030680673299538376568883078497488681853810157256198665241578457251421195757193894876623464044715324241055107847310845302604507183955022539951156486944861159307850133616666400484175127009902703166877569861552968708736523418911549084934460191121241086784246674394610973357719135019642319132391567059933368421794368366118114574888673430258613996363621329583536079447887137992966886700959723458369771422795121905644941395274755470336123264186446554887397740833230682064260793355759990249587291158402353889080889406978171330220468658563176855185232114805913783640034125959342335589675174748030396334338576794945254521592762609761487936654887171129453553659033964257413375953533201292950817990046307446442113810538324266884979689168183607495426459874368349678861817668357690895802910929418129229172252706547407213667907459358253074547513136062175748719738487851456604641405492587283149498644424283219612036223622464085489754246041717788085475232564405864677379298995676371149729194269744941961454992668840126190985293457605468697910127018583328022354804415861633489554210009797030990333257094228356097275831134159102541445094374680142137898091554273845024422958662064466362559544548015301698366556585678885449719159722644571886446537700327737370117672865441588205681949322093301716452367211575374767559381809682038363586919403662039582361763630687610974333637298582843865999619388341854516655647440306619324555547714413817453898999954125570154815474745012302364650071089204266556382222504005450148301735650347936025047267462928570739704760216958450703236231756075095608535212128548370192281556618841091920484717915097233802680977534270016798490263923036054799300264390968342610158199976222296898978399212275672229592653284995605312822322401239268348657113488447274861151270972727674803529130017072737371130240982843296138029943166762569821200461564642789885408393284027234944577382138550280729966629569622544704923863374149110667311569483774381287294229603091693254754460255177507985764926180251095647619913803605100478762827344255776760179436593665751311042681910009027564798436531096698827528918238569598567838139642211684240680741900964879812029294643830809621127987892728012386787464704383604238792065776454718166681598588062798553395531663455699796740025108260821817108485883405715098439646651949718408403136697894473467913727943986436765214743872901411771282347851877288014936996148637403037969814688435383696407757667466013563231938074180583066715037433976595244591685860765814772550791551624546281654676290411232615904576642351189362702400904279068622723165654618224174712453581453520166165111640815019339851332546963537349185178200579317533350965374846472209092949666959786284794166009728313145489544578687628504264462212731099479494997263706939439515835487495872746516197731532835079975762733739361012328338283203780979556826433788435518044452903714888982991938551243032421460740384571330304674912396452260471118258508771922143312813300583281908700762876626278580712827036772328334153882541695504368451544836717445264196876070758533081373166707973134806458562839682218330143433485691698690154078213860816380039054099191715856022394118950769494675424567915482878657072587098828181587556457649656591312932791898942705852410416844763977361936273162658623315252242329471434702666815748835798103145835118387254928184575653240596494002448485802808566878885651030632640344041393099693757417621319706531784973112563321577069323876707513533356199707706568845909128699600923870317527831645700745563003658903541777570871617526602125663301259661326620762581281812822659408297958453126676375905518955017382878649194045194015278415731950220308641040559701139248223410855285566997581172698830859243522727598647462751121124438814030703655385708084533663092048643637237642031584792696196303019616424904848960241492746626933224881130194468284833028461430208290357109841365137085417086357451071137061466271673111764781643618500374979640765878345445553362217140612458672023679500654137741683465090624140758308161602096833898198074587833458996923341675084662333807506098714992290190231825955539565267740544807367975634188786649314859210618703473964647091997347873681192198610631093726784875983070030299645677710917299932872960175005782546944325537092097587269704394114637831811123029390962018423150512315243986446247403404068298503161557158465099764984979881745037014679213806827069010736281795058155564855175956345856267337495379657544484829227832232687462854456390106816721404049256972635494690097305580938775256252649079871659876129832894861679729302274247464787838394732388862709167650213198440982922043230533203830209332056046049943905773553306954364515900072036169597366968414542003745426988584078122174778444758590200993556163409797188848371100296189661712483278996718090775652663280698107381620220174441236367276723663975180940322917271522440752963449183629688387892945087851796236222783404492839876247460463110879775540908628090540834201971761118572821496620715993214999253496502548296994105394198884971288810362252524550998374347398861430598068420901737611166883603961542557435688570577583212376576263957824714780760982367096069474177665593267744122901809125823592710765466426122854919739190887723623998241911222925568804595378455226410210552753360842650012207557802494258761665096971400980070720923248021748853692876358856145384271723259331344974908179092958517823043410857417259910272184327978313246025770060486119871873698872759187351891438903115013551972374932247671785694887561150585685894593994617154594992991628053103773432429070512980195763700849039856118530277792887730569147058592062796414164384283283082543161602063160345404417085931508984265782937809634913501667245273802544600687866758465376873674300087082203443458267619412786701625884748176351167793656418352690618412922219455577678558609395664304577123595409471443996724126060314684569321148795983293068273916781670620107725679431396152142612603861792485853850897641754896367539111323627238735912115645530829977331035057802048189759369989781856582743987698401454187179705617623036208608202021278318522653816344269158714004776706799143213046576084031951196053414645148603719275523638848766612909900147519208931456181274994016186040120351532115947994478151682363021108793146107788640230575285956260295525534399602675176970892396062539696370855574811470931756610847545664673226701594166899022270300286737385254500881639002511796068227608513870390403836907711687388537864266734654109743487493878825799337070436544177655965399025085874544766382581984040552985692032862147484719048533913651645292278101270413866281467840683943143354969571481413676942143757964413882529740861600064849099352827063686828825767212402830987632092198624045722196030379230156564910877795097052147371958910368086742615228794485723847680863377715968312135969443100643254338305403171159501164901515354411238112922272529464078802092368667356015574627599143321143958204423268801740042491303573460255023669913139965055936713941253521430966208575023820105548974500735104214159402874860903502181707327760016352689699629451463170089781497309722355222272902777021331524271672559181774594549786019421883247392446672342981350077036657901714548774275200716571586556584215268253672391363392766500339595687318177649704523354764598213489174633736007872534039098892590644673446755568584224699141191768962730059665114188856613535764110827513974409020065591173761387778484788787094069608385108156031615547502663291837705261786611984060803905087938076137384656383242151094648469106338686364105342781762705389521967299484377571291869080529076845145579702244780765299090066154063649189869922343473390166158213637258341687265184186871487285120136293486384357011165120201330181224325492796954193997216920841995142085598602308540588342973933522234582612172851371775314944443284643656740728846442253207242632836446710951172723639337840312310543082507542923358688861166046247473357803847444664159074743213375456446597758366746551378156013100966960762813467735932299066483970682553232245215990569823739507508767428257989422650356817921204433687217531527276010299900364254833471005105587746206192338109332196159003262655958891616428192523406428464681704546301522884617721810054865091103905332955011246887014897587211712421847201569909271993706287343210287048649801671498641423179557865543524392819410279250372039127658274658124035433441904900384751657092007385068076815700037289188404866719693454614943017269620366295709279155415149914020322921673722933219848966120693817714235404563150130313140420161397797450424350992499163561960094487063198017095210607734468441817552070831763852914991782260736735872147930490562947726594945541979393437408198102655813106019008495551017099353085866027580772056447738978308518140918634180525685108950950498215362742491277757036622042168236670114498676791482462503377292492814719188658630893950698022725672814765011946984945641332235173576753186567191097059473764116388946334122625769943402718762252443418850554711441235200409936225727345466785921756766037253411509577820389732411808172863594347430744178977239249214854425766652416550191253074559819581875307762781869037677894217396682405134438644225789906740663246363520219598889441723455789776265661395477539910742568726883099090697720977336281478959632163292984547068167360239229462715501376313646321291390169708504435187709361553825664060192379330804119937733556020892453478165285834389191090840526601332127060940487726929418588931021226831619388926938808943327385668491033543413511698649874930420412943879633305899072282530618813083107024513292354274314946996224101997418560324795430615742031205021615979601548997974596612564485662466577554874166037733451333090003231932585014340793466076911084959938756045519032542303324144759210107363375562821128819886763425953818859702566370499903818348151680250989344046226602179894235867507416428377139094579188387061557064626932380714415771923394857637735189460737724088821812170219093246355052337273267377929486427142585775836478814398654149164301364139408392613421724010704906172117784501640902886307529614192740086261910520131689545728745275336918791756520687131197930225581644048638401864890314849181866361338822989110451479226739628376404432814335590054889087147554782384641771822364465771019287047528041629941374772211481141350083499059944527966488985789093363206243747686557361929625482046973989873153225156762632683253490363713419911942598992305978163820304813075422479896687643947037904952890042025945531930282144694016584079419188885126659323293757106102770658443258709352827678511536304950903703698353034817083449783945057626486739377092879511045543091928984180107193987952414538313695534542055801203342577623084696819619420701117666648221827583965850002428595508428004288096916620025811065787816168794911370249157521717923349944538563425155611408590948194986085521097666372504693276584383960908920304242841200018283116687387736194507085893125891764985044749786761337101712683879681040150020546441832870274040558278319369727428448506053376740764609921080216185643535742606891360262487366654587288907575195585647163960986387528658895080224722657683208988550408173157620024931885950311804832023070367536553086029155647882727790115947377258994919091636772177701902431488908802368689456964335952347966270267223491785698912581013377716902940960032578904262084073156895642734989356908352972502409090789630013965053444963337298525499133427455480659251138680420943090939015602916198234831836397513349807281144521380072501357660555976780026238650126795632510497751543348160299037223659595965538188907829315920211534315219046976648594606322190308915311466015793403491895824636376591212436427908404482104049293965188597539400449771767992187448730491503362152474250687348200403588246330863342151748065197120983927056538231086709772297443859703500121908546390420858782041494222578863648435674167296590220574769526074328612180892238640733182031743811864091978722087783531427305968889390346480134014562997397049517664429294276214936426090019226390672908937416024885619154819215082781058952207048361869351905049933110020164394852400309414876218682869502985444110144626684326088675674391460609052301363767527285951167422957155479727548492512077317463910167043789564016413493262955263281729627459762720356059684566238609772389551611332961141289075691462977247071635374455298644813791360903878513624741865443009959655101285568848718916893916031764768806467899492100379777689211171557497634410143418158069156608745246648703256801435613774180411648932342640781552045397406412434157332703552526061764483588443155405892166652250582984243041707483764002042803400382708296841975506497256658328561195520277279702566871527882859638983798210094680723258771676931178623780007915241026550604590348938592274973431267459241369132808316068147802437599331064141895504677497191835715251107238866123888836058011716758625543693071087214983510441545394097353515179422635701879498838492464554833998890880838801344783586005827406188730778376910225398783975194943026412626019263328411659134878796589918295023163264235208667175821908167419233421777448928156942044088197028682341428270649724453915595595416474671881040250754182512265449616050268888272325075700837916588765207106530988530237913297588376898230488035556964712052309043050973226469576759470449887963681748962412249917083908024191605085878092035756425114488289375338819032364242345461669501309048347997982780964801801834896931396646912988429616029341100477748314149598020554896043438666180668320525885392108416013293526983323159993943653901171941272332677447323684253215158573688732545829708955893706472344071502850691336783604529183040909920096882690214090091697891940798483397713973472830685137098660488749235926819276132317027055556058206128261208115368830809876057949156101823717152715614854435717978678615584846915596899684926344591594173971642102216192341118837635260568349811496793191833119355303604736487598823247550535703512997263192968793378034178474153334671125013073980797034533717421667576125900004779215415794902732948591183692035780751244058592641128052238074292256178084594238749125517768516312092809801960183650798280202129105393750272915352861329274974788770815093005631390732425319033830911021743654810886599658620129226231958538166298224785097537909512059943813231437941476335993738336487788435304626265489383745471980844521262623780309505407099337379945476266116499713240182869944107120672375809250501415885856555194057384016936927367181943792339909108320456228042219647347670526697744816426027695869435347527278602517187307786092781721400061405910447017817842371976626063321189612144121946692754875876499474396742179347192979797599610548625986899697022731241104866914421704752804817240438267980913990802022125201406905319287405294837090473896360757060018480656974382931592067835971543184284313666959385012314243752184478729828262345367694636998916589263836717241826474583143669796380607436463497771307293798872340197212972238606090515094592474666245990302973407885226610211642093304395109905093291213945760178917357375959527098243068346081199786277537526072328167068855140403961510155424647894853886295056615310538643453591294732979763215131433857139338415777703849509165066641068578217998210622166839892171897320984572658323986251687572974591732425672623422753597561250568629115969345556283449236782152446443428590907510322460519259423065371287736459231966053154243722771330313120230036593525722447357051112606395240242172902077230781530284090358989458875592709982884699126711888737578290899700664813806287523991826796978951129676912172277888258623450481806167717296998853835031651088740112035379306106878476291510778347886288784573739867059486696293875599257180682091375400407629757954784263122394265202376240431871970078362623214625794028768089534286681793968814708083755880891941782856262915658576162645775190660189579430104456642346204467079721018214289672220548051803957016899870742088608607724922361854765498927439090874457922107183893618585043397993945188989573796424144488139564273018610071461463801815394706200246930871333810646812007627286222970612950694627749884273884566690181995916718542095623976517326414777386196875294057030184919337785681869986996558078058154634086029944619642587080046507198190442212272008288122895148285025621456112851725543975318092471118165185485625998862985013576878660759968467504107020284205946496201422629645535908046341084840605243543009963386191729583146078003484142128933844620683426210331896430915585130056901930922012978053817585374192030054529389579247710180246630550912978498323786884648377696260953301863412083084092150313765237193725082041413933765294449458904963491618307173063277061022495876043623479703909170631368006956102572664832341983319943708120758776095631860558040955867031403767317104756867949258694150816614463846677824709232834574886223860854829991519281082322935163094842006679913500065458416338455372236319049974392485588220551577965545584117354835533755119437413823610991696655796803846816214454315392734817373717454855111243168523222229009642950253584371237391967179664502952558107729000778015567093597399754337738427485586561975381595024657717557666040399816427289836220146862327837279103138927861932090879123955614999096813302387150653688208203997921107180703439083202630514555230331452227833088318554246103769030906114389791319584556269553634886192931974985192102125024442432360465362764056994387652085694974170332792948993225060746505217025014135495906003337483710287594761760255806264952514739361763661693401121811702629270299133317366039354433553385809822542439018691218009974436933780352500578534795221979184272362499570024760753449645710807864483082994795634088518603180929410419703603544786242516324294227255451857155763858110549341187630305914532367908705371841228684151632883509711057566810723187430690291030891136854456858047953698225309287006194737959558547129374656529101581674816559976481749616887977620313009421429864031092670454160778502396678364265859951562834336691659821077733583527942894712084737819010865078103893550631964285050841332070303531938433561415930562533592397359233538815684378736045521236024576031139203245383247233601791121182165634652754951262993734890051397774616730986154938584390256147791244874364395515099549145555855069963956729704850028997700581473056646686077750392324536652007269294184335998442760392113878206563301454515341175823927700315842368332969069565353763951176039101983875077922904187851670021866945176893555434140123478260201868596434994476358589770619863052576986721648434601379658563730755939320351238196294839610509766139283829974806509438022676849549249587582896922155423576256798555412194899049983089734323598577636066925400984186253913094078111476220082860405131110271564162995897570754132173085616202224949599606552142129852223473588368364392569553856033025701666658514133277583518251323225493200240024316150007301677187500214868721028924369692619401813548133070245414817153642190216945853815433199257478326768514673286938227591247493124829506908697939903643532459740326617185505762194770389787944375453335731471523617497520838400032779658756608193028083045031724899193184539520938987137409527109628627430171107642532971940981617456503952262686799422747596855541819604591787468950513220434351550265205897725448005848509569556207814369895660607537944062859845320111895854540157558466468903407059343793153378839852016748700635344207094988984249121375261921122321527743566570751668618970323028906442391810136375127663148459346151318051986919923011111699706434751029916610308096967099440334334584707662937323335403173843947502526511105982420602295003408616356414556223205994209952126951149692465733985694777366463072052439801880711399099273079559874899631430884910173213846085711866580196650014134823909401600905948964481324875239134420514393354972868169236725700796311074283646013326843677359713324366499541462433551114771280150313737809097192574799047279553947193620552949946084900394532078099104799252248375255538171932161991698565734391926749834623986452389454671833659265257045098106990077596690559282083599926727415965304146461386844744747992535110849316570377995578563215974947287169723941440312646229315791842249621918597109646808325858079664194909515193100073854767384759329571319716572366929984609568373431495838822343798421093598944780529195686709047736444694413112585168976774930744215757368059524517798469360497386121828617423058464823643646779724462918532327561606491127564909961706953738306952643809446411849455344829281100424558720515107213054319554244776726739475478901785536722394641804971330572328146148820498533839524150921669546245156958951755950040088638516461862975110790895196062069195659735181316570189296188891233635062381576686977837713768899323690170280372033842564769835441203193695892939716978636676309857849322622728063264551343142106725681725078838652904134772060111480640510265839271331463925537615857443791355465381140778509105682743671661671737942469174971088331373389020568450402585897063289604389807100190502763496892593757304152248045046423104221547214996421541519788775007288268122435243038630110469717052878364654155919840255807216037472684303138444498223519261369874709385344787862640530493408661775916931200656048562172789992539437249437438465315827822648911037500439551146101820714616591944435043908852838271790342687466092541790606891257069131580307080032237833425359796019801551552539943652713064629337209892933820113843356108030469651819822904372109665729287753745811250572344721036170352122652617710088528531279478100076092099358660792596297032386920794362938866015465292462590947211575799912757940692380868412625906974893913998808964337092316915885763807024810381403041014792467809534635795349048199689038984146784103670761566626100090801419819843105136179241162588354251864269974612093777664293107333956424130999961069232033346489305789892859726124239229803647827929056414271736244829884436992401870869859749841934309601005906314030673000864097001130854666427984082966504851156418204176859103865905807057251474642700900588996456499178395222554381169628347854716532970167194035856234907477435268394011804857154244424620496758272125425789228404223368349097263728714697673317703835870374338426274169884270683544938348381006614112730363582977721218501880535886756128135038756673731828140947515492509371012374227948961179518395089385566811925433515602816746527674067319127152023732540863104724708340500926916214186735030165207877996894964181892117130735365366876824182150629423259802629859479572824354730857648483008051894729383187316081279918646479722721348829228931031874830624627871724525691665703850663213622956113950779275504091503427389956658223214839160457565889538487807764073627483512990231965620385891559596985128239204836756321733707671078640100117459453976215539486559784105334300865855891130696901738652368703944275783591713833959097460130315940849030470525534202164742203036259108481207837949912870012521451269330167022968886791837126083961737979064736281510293400930862046741028882481893622247156517578191949676189159855858189358909395529496844054653587269120547190041524049065349903199463911576304707804279499158405243395118264849916574822902291222749987963866898733633086250879748284403094345505886449727468042790533109875809622877569272796416397769549026743292061025060425534780710488500943853094361935630740019302703159669165809563583348368576089157874528033339857620110608574115937565186528536323525625331466823939768722921437373540111183887377615331752685512865813334335455313948472329571887273808590546054218835172593855403147476124853379366378089037050194388888856757612451151244785053565099104398919654476709321692405941915251974666923536383979628486219003548405710992799307760699765662048012368442118921847027433480161250236379981083369175354969955998525301090367050304658038426951443517487032792888305750981931622559944172612346447064307970386762461566490393596777428777501991627491045909113091473473206975959251860702517758598939884235488429114286637600235464523154139719673091466906753596464632350345564733111232699506294227194541597870510501548654487881502697771599359318589934397091146445640653433804384342709735149358390710796953587321908341997863452372937618799015008723370461944604057957608011057234369497115632281541547784828342465565884726158979922592676717478524403618411531383398982207832239977781461991732916373067168864454406785683004631898454488805714399177092620643455962550842613579552524489152982680484649864605460208683780641466710350847586823477567733379247139214358309725843013872373373237212925479360814092759454881894619741634309934350717112780787506793736106345370516607725281319821435706781484140849282249077582487666671287365214637749609002496710215238303770448706120219499797392273404119700990321273813345089605635036424447943044407087882711978666541120691095613225013181027069406359216610943019165687181417406179770867102938585399971618606767664709608327113403893962782362925116305032131454312719939810946480919265291001736484870583025769400041516510431582172886357209700385561422672859153034321664652184873531894536090412622239548812106397359012730763588644070579402555892714172408297871820181795819904820658418848022288574362160098624251682237684931368538531063741624052821695306712556905513121067832044609238214089422261435300419108706749316088482807341057469610175541139148280283099330170267482445260691817101661391810745803486843609622684111381756741629517507078348730196769785401861418799006098285375298095948571480738359247822862200030559903167896388031995225746366818648059040080396287276033146942091584416066275140062435306512222836845883408273674265837145681615365455095369218514260607966516538914309266162737889318661617956347117133341452079487053787198472640198583400029126448562292228327543642252691001858709785888621146599929196924589083936289412487425886420446715011367859050824914710460384850126725224211114571035071997330978242858260844881899137338338117128594936863896080811190148144911970776754226372307713050581699966798267405793825549941730085604361228238449304802988446998121943118289394792522048158973881642902430059967043135981431924780499082656143751468683084816326868177642978240093187568941703805250785462084325681984989367679738610526147764648628852957142760357184137438572288317483553151912460883293968659774067950022879722589606206618505236037490536719430499441279842332448438752012688192373118882728725301402668449471200488794513183916799134124082182217715464706924553690912860811043813166331870699779978721911098179029513041091702733101777296418367255528176446898598067211119673391565251454897117015126765787523686603970137060326839066872219464546462070821311384344772010515133253187012805565072529959840118581439719326247038057283987669652581519170370826357011479499869858532447456277214723895719131382587935267275207071723877895417647895116678142477532879494383149006215108804296627676694217792882868995186067249256977189962382577506591832884300302332007866136163744684651771946265818127824019157907420954968224103393185751679602721824213111556212495597743732730433298780047662650372218542796402464726238390322859359305510908619127312709167472239283642144251812144280479829515772957223539978241783560667372216457809545786507533566685541195665678037825123015611917613104316616445189981345165488412092994945972872130793645057730039562768572778559958514007227313405361251567721153030551368334340736505588209599397238683804497133659883840235379854275767810271454042459940657649505261649076272899993716758790118857758790504641313476315014415224691885027825472333056281356955037630012698649718408258550966651037443033025385032729638436110727014536246499751029215751391725960030075677477002439113643441049397385932763719968505707562828656398695230227167043233178000308201289696641748525024629442816294774078727288667735495006661380628431134332191303912820644286288948727159200876467848232639789227496866612596701235701887993875477252756143292238885857026022596120991155027038387531674836090770511152967853775580253790304611800088945671120359762026480375292429813907296666492536631144337430049616347809924113105783648695891975016256657962326161804546500212066212690805390120013896475153897304278356334552857854366302990940178435421903230460813210801680338341279738004373147280680190960594819137717988862067042958483114654136793441122007956614735720002624609011957933467042977291224289936725490170145436091953620272212853612331033145700650554693418112814049564980037384327252121419828672589760100978209561467797781209689719812088622699386026339623099123408163285754894492546692299196685612196647914980107726729384801973781867896297029470726812593744199820496057223523027675301762088399248622281559832251636497030468391077942251042995911101732365191369432277879338306284127326189687622781985533084643165693083262811106084176950781916241114846061216979332518874793238807084483661432588461537146482700002136043654851495531649159825725396466238701504217372249398805652983049186472385039963130579584296984464500170994368249047550246544006298765170906549529333172633213619482703345029534048905983634326969740192390443388181760625664889158564605446238131379192016330714370166517533892920507756371904074589674522182441779845587430526078369209706256177503404284944778834003088450699527861503041245513749750190596557877578696874649888276582749500045694880649876633277531752928813175358207833960330558265036680562413625978579269402169158710844810389288991169586300623279021077981782524430983121286476768048453139737667375640702650807561388680442920483329754729174904745634858422644650482106198565059918421459457839007019176618296947488525127023679967782031320624958739618949089633513498533392653456839237291010088880994256397229163562075298950371430564549377168255127002662507923083251092019745683161736251617545173991457113031030129385167630133101631478269259056788582029565077625293543202501649061948534082361328278938448518257633742006392085597427450408934390581269920259160917842247570462874200486762706274266853944958480150196201465693035765783278372228862217757696749364845492873409473376572972956399413647410641185593747066162115081561232903574787519898228202852085506543216017797547061985519865898715998405432377325352939628061477875765740028624062975742840479034048282385250250746840662491008171717527962907608438954979272408250344784837276884186626919498731296821369503442467333841774439458886345538175000201059849225736009935580952831109385422792024364003625234446342188451612083989401512700247242685692174755119255566377205165588703375978241256934917377054048332432102892010200558023950329154357077037243941878111213315449721444001421899600616078763418453896632383672072418285470085820634573906460690396323713029261611930975851363722577400730754180467627189810140546109850554972115164647475910070916869226361826491552194631667073363766021413144849182308275378042368142240763016054600895146704597227283539005926972349250336823774190289745082926348864420889083956952153612127250486789279028954163386612453468527489145081552973895487886762517827449072735921870282004327475168756993968700484444078400489721147164740127853528944443166718281486163154382951314234884072202706994855320084692131879335446022898929746803369525202478384021736323659776073367214629885611621638194878210424882835333139486535894342719315079847921893964702465587645668834030205630937972582303435337627375917525509045011791921630201605227568741488323722649365652659986323099184181380284464694284694493110197871998841091798486616270456202643581116135992996466099688253486937563931256708094932053776884140405929448586690894995400841279007480696833082467700077244807625537059659777597311594545564337303357419410615452465021530603073509112565689778114475681325184544913691344189876500805241895699060483823726082524539372771433168822603299977245078314257649111837099349282357261252429840458779745059094826620285820582360602006416747841576040118819239030969166606813393058332989463788077182238885678018331307679067447608320411777056403240788903189738714567954046932830593762718741608504792609296401550602355403943671206074607942487757225650425480071781678991595080946367082696405938614503690074838559568335710182151703078702813845583020188838328896997830412827511159520992946224053756891053912035253401314539213370283334367885442347112887250767588937088923498614821213617766332085524719852863927898360858967769228615326383637717013967039327447553113584785229010766782892688494605627215910104602851462341502061814881174548155830331170890544453445779151025099878874353793392668873074340339289399902805378815181027180798081103294773976450825152409414856625086976750539726620428328322010073391224867620786145786530699993509575359163190550498910316975228183704008078593768816166529080467411405120791518913567620919104403719719377623074410544163151363447297486830220835831884498610737446374649128917704106994917311387712098713667722007068353056385425936918749791035217985667191037080909619170318669377073487085069705607704006830996980712570409645082117461980215042216382708293543658708136268832582209519116789154584489249658055825321352786241284648062291255072883904146966067202718210911633884708345954984710071494425353665752474473979667754090611102346732844367337308305442340593760462970927914919622113258153422602407156640918477880116033963701794896165747350839709240131977939767092751750476537809105938678668990554733791595285449830437773949935434656386535019673562671592338189816685867225425481675727334295764414723626420094588715025303442590464560100500870861185563647248442638224018251240736980292875796290740384894067126354863861153944387899786847104768516145699753227983233937676837338893505192719959152321849116914633896771225693760196371957711969135981004160594247257221268517648103710344870535893781778475749313327493887226620019854517762232808528517420325216408449376522426715951186030860942039472901035101823246155610690969511206111856829337219928092274530987744372536724882084093667181631020636437596858436429634527712726775576216926895527108304220411227005278733103676611395499559065699697656428861724817229440167090386868789271075613053272178853640768673213664999605833590623030128301655911873479184101464671113454367550101598795932920277164813538705968613233977814210964078789023987680094383045272027629857087593815347453036598380866159791602222635604447976819209497895934874131808662285891145981639125434313234470546924832038830604937256896680149753921694626373344978984750092133570305281698263621437185454848646260119771813117836645672160297452231417936932514882344758426660914628439956834650770656615786917355007714684962787181229854014620005689065741857004517669715723735956234606836606245451368570983277034066718931970147591109957210382621793163380602395974644856973097275493385747611966163279216867737044256300930746851784758400168006295314510553969467795371481061710627231611009803471482294005654141883264694335398589233256926304773369066686279301200847269501912055834919156609654203585363833677607891039314666742930968689535766069264518729967441415631408965264941993936118441955259334590545541778502947977939961723421112633412587641812358103245664064008970726272494328723053837021166186460999457656907310074681965468328234069471893002370169033257463041691101816102347011612512698181576136270208982610348715881265683039792029495281377302236942059127556160613605453470984215297370474165162400277118125784544898484531672454137474142775600480785476130736038968966894333241592636942463946386745229095437231140700654351726403418967126769798010774982795931676139439511382345618350127146209546741584364293773608872443762825825563825628673835627515451967320307905628941267268990730523430732527870693512685527269093388436459721158738628227317804449307639705910969645520209715005599857725182801675792917389337414625576314088018169331832649350499361321939360880948919509656493355279373883910158491665260276021207232604944928652602043275854858420725329513879685793522989311460995097850971047377650357074350282820261820176562812317346577710914787197615895006204223717521981550026652351584217272647666556821512215596680314536567040880084380536965642813574929502755850666553921450356971236197603821410369474241779157796331316912334120642442736900334201759806815219483977683590452034522433547055226285507043306329371155183170265439425904343305816033141549894642709689202336578454056156745930236631676532893722348368242350884655919460653669211951908989601242889242572479649221001036997280757670969388121490650765397981948833162571655574284620246871696615624196129874337363176296678620493717761656572743004215337661356511090853793883503060186281367334991951686988323724058829143384112266545877112852002438881566569472097818682481970989213098842014016208132447892503497534957838139514784641092388376113838563623579236255492624820796439224838425179393265521108210472941273272443109074812059633465952041414627301424052890172301794288237608013086053620146352280307252780051881873540856383437590096497431696054385706188528104702997525069535006139932530784319151810015366227620681766175124075067673945742063931730699510402892246511041326650532914671216328571055190384129153399481062124294711336487734462057099153384802660889817819096119921271872265342144827392016963624566329140871743395752777415330543559358643045047610075552919667047705412739628344206078141437925595732405362355480622095524997305881583788199418330425314691878289913883507671384834657424509205403203216216822342765251244044220919681123404968721301279463017420127634322776621298689901504344619491488065569956333802037198035926645525041590885937900321333520388840640924213246240669345214600568623918669782426426189255494968128187251485063642402957467878066757669282379441419169764656582520763268327117577192682326380158444986671299942758208888343418603311304273241823771718603558735011056485568298189384915714411097439876261162235976401003066397138357721980274774514700560464258541277054894252337009208283760971679683493381241507993264021388062922300503933772368316036733906300546292380030883195993191693664032850129720506137900282165200937270968740679500993024493284388386745046500239517913063292260717509311334506024833143343735475122404746058178456394500224666876578984131915580874291981917828130422532324373082101905898344740960340421151872903281483120947007314070208411962314300006319899912450490902664993627374194872806300765672199405953777062301822771630682239553713458570243714240498727059745233489352442006321292786984333098961521963044325286972610349302995804889843743124557982969274646856906472490847764766769520551639939233374561477378553600460930183476302668233861682583196928847766613743027412560915663954323007004006207089642826642870131353527825367829869197768889009981951334378296218950562714544270360813040322822625219075159340604526423335333084542797696861009997388320327570248125114458337875687963983140131558808238087490607525561749068444333765520314679133334743928405204188320778674517420902905390458356046312058681871760462885762025218879923749157913651276725959398562032401941685401018807166714754767754163141374717367308182855167284848268512013426473662395231780910797321011817138818663213289369222183193773099303857610276888995796724030767346327554956801025767171772029029807761014505031846106180761437042502231661830523397849078734402418355919622230848273828536269015780927115823005769722690166228650302122410204245299885850755777792781878655240547847821377805509785140778686830354787329335935040286619843592492630702434373147684021522242542746796979220634344131632207843467144017800805384610661727266636640287986328560150870645957629246234299085590192911653030653412841046916038772903230272099281497550520801647441538939489786227273267519533340036422374143612683899145067183501517253328687265738602015156614286831631767391375153293634999009578303596907709803104892254632966390858953174747055106204630774768494955954148667050954419098203502682142752716213402036552352844980635264543476560387725793296815284218570750530226461848914456668972797896730898922492409850125542134597515089999258253421082922394222088901370579683326820263825850780633900998415515325088903937136915736221668273195810520201683768328496011671925449146660787436508002881568616568709933046370186489883278737518031555183228958618367099616649764085562518447720680596844230640146352411891107255875390389486495939426635589902436739837185697634883434574077922071852405753442317031566498893844856256726325813831917036850493751826558539436584334585260462434530942102199360500933992768018845436831290679302809341944911845947771860289401193101961535648892923488440322974265178542231966522440273822446349731539876863473315955067883584263935002328374722567645395349018466098098833146086617215284179570541682543678609409543862117351653172969994322834839557970308637370323539913059664072933586009822895182712796137138925702293180985976499405790426251573276645514319965621142475031895183470884280374273194074322509975602164686678188883147742168749803928244930830610186800224334717878838910434850958309428041541748794753988260449698567350628793069211121309286297324467919585476095812466133875553646439906276356219420480487481734064116392387224650902032861277538702012829892713448122935176259579378716155486339410986047520341350423570380008699014577877929848599197768924828207161109150247354435915699511866104587035665307798947868405325156688158304267021461071823739915893923630559467760084662244930137683169635777913628009019359087747710209755278903486460553573739965960000606311277365254395002846881061840690266877743042271533463612655552802281968896326963119093584542081312136817925852048051446110553674625673043014191789900212780368711949973741010551027798148622921019724093548139954586974504558872029057275996625362953898952453252087114799944593202474493584531808283165388144755697453774461565489751495899859962836779298885757304588460213609953025664243457841509961732142600879311900655798504379402156101123651104545501808526725277787084066061548209980766844534962648414398795348972880755227465922368137940459512009125999003251514993319477659829828123526208379318400188576482612011242282630189911959861680512526599399211271977803572203256501664241128136154443778816704904852019902631219087704621280374809778822398128239960021843460149431872535929045476768198380798290347759765792048958616766761509966399211713587446582836122671377308366170234105420994314451046172433449300162757481029640034976299296053949017129958293101821018628089593847993130594538676053658248158026568078245917325082410832079068375572075152777484793824386432351599158111163790177599210186714423874805232550329679230385331206627399062001231257945444188675432325723971156579918412394727775618537689853655030882097634928154121782339661342018261456159538209676398385239439771934097542695367063888385690895446842677053149016739750696088105110510805051750688907076885234641846069629322280847309757318853948604245433479612800684812990600116702147161551232160504674719780966815052618370369960632780207500674298709449730137130342460611124375427336986009159862978123742410386453388427500995959819319485177310906621158672431891233946892721271890857995860004326610986944762174612248043337294801978776105984516291596272070421871062430501301194602933572648117693695051525990303349106167793090311750286563965595279222326358011288050404458314049718986901181645167309707484121742972860541618030441679276801520260773742600017056497130544573040838264398614780608629243948925284311216850942233376194050131556783088206761086411921593377407784929947718245898872959822100206051213304666209425048803195990517181858853942532385223844485898402528672103697148178416961755263076853641981084825318545540797364589863268564609125716883494021874203406531701675923035043404564106418666348472342824189359234163978145321331129262129913045290609671365743998271072963193784635209886155079511341347824273896452695813655890653999476872941607366336458702860146412306152256498031103937370883971371154549878289000892562601858483408094955505905666931376256084267948855704718574273188275367115258940194577284011012688373892128664305224838312404767882072742656179245787167549241489528303716396889383655014939130518547342957104023102333112330266394699367637550886550904334244411739960616761078354978985870228520509767693463952079432885824638367200558215469420358755359129680598769414105278639911657533149965352709457200838072637632842927404319564723302723457008351417983377343701487394276007611387057438614141989583265714231415034652191539237565285293199440131216347342130697570399212330396681516304062290185128892148920525638255138847251804727006926619717293305765321188375040092505721438117850822577637743700020850049737461239374010896497443225077109683891125991363584176184789001870128076788343333357101820828068507357306523249730444995419704631112565866212823182433878050053967460718249371247307108885709192463721288883279857927603640160260127652372750667597935752613708224566826057852456709755807024082447039035760506520594569188424012213008260053197001880924348606861965727504658745233125920231110854512281566935894574725240696281649840035853291469765719548920989814990239473192617930817430078517539308790009065687779824460985963579250458678658288019673050745939620288786016435408118333814913670089268994665350680047746928199823966426476905306498893135932767510617369215122141707329535018746802438788057503188863810530075021475368103783308097678859872556726570861922840938633746232491304010537236750923632106869597218031233935988761212559068203454667427830604779268124406522649860840930530608514230050663275923169529655308490743356822488662265338007118984505245682684264807972033365946240440594425233813251482609253179486568325929445257289720676962024267806824449509414221979988788556795958191177710693873391407473067456209448585509339390422336364679585494032529904837115636617879005893316007400713218284715740536684278289336531913203865856824744448388233777160934251100437741172124337969550699132893938225922459961204919505223149117756680540523129416335735291315287965689271755790610104050441212120513924773067700540585754084998230408295106523517473810543128999563828068316316245575548364310594369583442733867164004779812414664331599327727034220111027852595738215128273603154646834001893320350826428336308487269665271468327225051763616014179754312925989230512951238153685653975307398380234272073291537561313477472640106140722936525198069244436753752050214028610600443143770310411545533660670912876502383992130174033607023257873413259282061890109284854015117767873613005573707945309036228113641345517188093644195450343503707282306580501586530535972836212652696791312276405266822740953045113323046254680390064555070877689859168917517870175988615172441441381900632744992935815414594981612520935598619303085899951039763222153161035259504109579702730321549192051566740719142144816931945039738723487873726230698361683854314945589309236973177550893154788959301941017637357261169457045334438027867137312591698349783280300963135228465382269489997507559944457220823247847698687517637404769532299534412955998475898740452598577645346551037417763460009824418584850925785407054637064195527521408224231497579051306834357839028226552249963921293788284149656466787878289835862528143054187066168224194290292471989140412535414249378898927221621207512247396548701330474515500780498757862157160099101585700286723782052618656529561624894507466520939147120889192544277386212822605737130660913573499450926955508626631513299714524389707363013220907374728252008339864816492048064218637684071690908609113771838418743061915425722591744044112566686946537188718284307535940246839402590634499413152529998407466191905578387011014737651280592405469397617710955510786454773489879152176380007247446893638768572705770758286939717581967409027688435340345541057713365370131255156654512049345493334589127469181766403105038203411756568973971237625064816392277456210369260943447477419568605820466050400260140053208669013540167740513223513185640281595698819432181681583357020568459191101522271347503476548537963561363611347766170104944036339386508194708376416248286431133756604234966268387555354178541880988449593096430193569276748844462389396631733306346581240717412155069477343040929744074163222674972870624221798345225178246185564107402581223539521072128850793003253212401232582489927838158932840597787403552021888793803120086597994834068274556243773604987345762641053808528200871882118378965959435047684670275493452476068928251266631306339361080396031985435490585753721563761058261361630441718728066417242358710434704768355753838842691619691688781250461949181625329071882114986709210988076760535808825866402898034330983645910608541497466163926989861381166382951605273519996202239552197597094272705942255627329593866953969031439749517661012428267871872266711601323018078536193594053285086769530054564703631701092784161354472390246711818926351916355303278390556131108226518453205364479610012419789047465259555277172795773653366524925070627465263002067644350180817098371916093943641005625253343173169436177700182685104759800751161036710056567349534119382958876930820544466994705619029996875003194059521332884414516207042460028679650368566415064265324637683824030276831634950167586127586157499100075064547571382211840236344038879232682728242202892424074741673881212386421118858151958009999610340044404471355002238697979867672590343028198009085947952214588373192373809855671697071115496919768876295827838633102629371248239621407322953036866720053943615902063181931437757133579677272282735556086679813787562111858094134192683278257565046169329827143644112972541213443757367707409862671810146744029855014252113488019496414966334015713279876946236172946666561624306347083130779359323420990537514842011117919080010333470755387542902781649903600308604073551029452679006580445919453352476368602263225705639765826420382156255230469575712628025516998327561998604980018570819662694125761229739738496131724811810432996855392867811339728801731800212228290369356255909323820486403320433738691166124292324392635215531583089623378425994237442529097353781003735249386296179033481090561974799432473330957313235244264195400557265477126005755968319426031347765014409468147809295724178378298745685164331183666945261046431498671698662207931759215352926876335602406346295535543185182487908077802071839473710161969395481920605065611237937155616112271313666629319856057669598518891568687955141708769592977701829159423108632865132484682809089582230215329647944279634406766868927474218685091047122896154528031942230744833199478739467695223422402212430000790897329182104866211411082898536270815982436689168121847501478208297643089312879487621259518719947568457776556595234711807484759437132396825437936874453971772419137960461539258613092615863118635384548871753416878105678222102216477524193777697740219491644663106242054788073103456048116773691310203452275011206627175178028426033962629455197276792182196989735582922124246528614729392062907621212419186028191580429337803000650696622464993768931347550462217850472854273041381138896151729531605551674223809932380407484417656865957320179346494137890478388102317773647830537563702654332205679969597007948380296126012753293004350065111991310673964936149847169157833769203010022283423981780279170496873932586412283309469426280598863835023147419372878103944477809502429073120276255313585850826684569132608238489861224285831433492187122726261903128964981654375439102447636755441059633559902283953064553414773346811917391653780202395966990758368977697560152889264835297564002018883608468023490952939061614032614401341095363967200448697526201829939696512145861486430389201592580152560916041946241999674223754941180660912236964084238831206353507077818902629259483604718946744160434439824821556060842983346216185109490730667982643071047232994346097402620628683255504974193318223810195121328950843307615070580969039810477914271801060894957728131874687766434702664795526863363849003703104070358822216056353524461822128710007117895836450383050778233712184253480910912540209895818402491834252031348368963779781789556394615472372739849620577971117846798572584336506160609749510499032299898668033313231164133579208507360835267715660425374381783654887421733674826146893829937453379881184477358200334155271871898358183865249399885602189752951409202850577219341106349370818513541609207302245364996826112544524385483218416857722147189568539688499876838637340549057216507267942096522318026074257428080000259638150694695308813946177801690345241321961789636705755381446589378552932133056023828343660136250238766399879515102247599805594498639485739838943616551831026885823023088981756561521416718738919771265415879707807656780354967261996315235153815244123345182604927852838662644614409375871364909776204940283705359490598876106974325161378162185305486944537555183099038623287078979633446029160148796743877430969186407802513723898173436523882945055355562804599066863564408658647749136245513420931384807350787155158292726040875694557602412048376254129250223580665653556085313456635339041611498166014942679398362218934159305847263847651571220175337540631508910294706256983201468418521283999256032442688655598151424944774524150010489120810423017542763396994871357858909349507835276194082522015785387635072304787384867030144972121945388714417337957033452370815577904427092489282239963073260848660888070494781285533239487710835357329247316465951097312605361140266256115429189830725367700962702822077884007674342230329840039177723470760229358463969089115378052625357859160102543121606671796693557204129542968273947187718522004796198394587940597521377716138421204566252363547315344870922021293215961035058657908349604067073263481237497767068437205462202451005858391269656820634739470287729087580092948665758179176491774607252993781111999851315030528161414885451516604045477218691057647719178512517660845426237329267189522807089395582041913086179687907373836557998285310656727006529804177876450932017804179166209951699945866764376333043105671741603997151014657973988669725046301111435659719286101267048238059517665591329830457765247338546244928868446083237530913742992389014128013006146207627104427057038095181892414036770259982641619944366194628365902660457137427430154448286379147079910012953761978123497642937532176629218315540796151608347178213990674985119501148104916281721968886644102629584399715752916328949392088602763866467208154492962437791357753589809558042391885185962996849768360459905969719646055987756958888504010846321406121925707221409123203377529522518174539268278611384814337361065861608914823992792955002539529230072241297424851727009443844441300796164046858299960994639425120478600749251825581573257758330035546327707905684572646171620238673837295491174032774689347540107073515667425763383302806414791489520161174883363527479898609632815980110879370756592641902576883248499498911526480987186219406954366348482952858057879424381706876511444039330568674720460278063137134636147074007029993620067855778366433914692963298850692528975015578301786499982706540760087821673450258794865407539996379125442921328636217394414279559077028049127354670535529784583161864011688265911467226570309428885573942798398291919416254197317370358257979245796028082734036259877163721529614817319015383217424652933556673498523618996680682903368705593840544153676140023944478413187019834386892859897678992656284854312733511615936296775935209244842531517877482784490257294906063131568607706020271175711551005161590141588110847446581100075754413778040976777083545225866750465040228881497243550657776820602952252152329589340981587728273557319384165606428476240802501949317334159974380740178715147353673139856428047132976061174525378554618247908686710020117556392084750294359339669960207669642639367048838473217857273662205202342661716483483798774976101707359461973906211743582976351109445217756752716936843362122263626188430611293149442077680985162499652979003236376176501677878063729193099208411071325469442799363446315670357686650495449636782084803609120791079674925352565261799113219952986020116018840390788391928038700001213805586365313444996169853773694769588793120631480688729474281012412100743321838226843927496875675404357457149751700235660408861637538092989756122778487905961032825657139698200264890392473607480640367624565561181884149198046698591242674519061199496888579671313134033944549750630838869909021247633519224406596665615687484991348337725094461066980309082957502398713378762413669604679970668429032498058050246865084771707052294201770510879032296238405193891711004834389998476635362152780930676820564697880329927217334516593793461061451994551630936433658764928288662891350239568684651712223565135346485455164064071550106992386033257283367451028662940114723587140431292272301487563929775481268783735015534322259366481632383986896804609457198063844461166747251588637084913188981543911396619345939927666416781598254347313794904024825359192632183233229323132646770238885605108460234238142390102884608787043882045260436069990919904616168520620997611257809681581704976999979465204514664642610553508006898210296127635427265194131885203200364702843050767493252376094788027098311684960093207058434470997539946761802395632519519660152183902246150284756189962731818135996546907426968366490304924897238390780883441365879074142379609170124908412556683285091112166442070026449308426543695138947424719081884420006436493585029440919605771101124089437079547879570811479109282041672166080845493000425989857632456316437792471700650539914311119570493668526681011413249452946940937893093877715905114580009657465343053242902881291824719281600019984037282466522761699227246739414440555462560441794414735293277736401453766219976174049125049451688979968585569573318783183040784390986185168914279549420431416058524280647785513701209649425414221570273591901339676658286413203542865100904062428006169987278910853421704092388219242179819617735025907687305667545350427951341671624190732989453560120023095146096430794845658281076295038111389257255058774529918147073574941683968693059808125284871595371206860658289624544359321502943082027205777093747534194805956536159587123297026800641702235290972567102826085984499691364524576974993823641398190727815247164067649814409148426098094269608778185948385660093110088622859126960727442090911817416353979596318468955578881143591006863162276512402643573071248677422464303864942570203779734564802174265809839053717288904406416631328941559361144726846728723199226984604195481930285405866257639848174809263758492646331170093654314027090035875820648812020933093229667267299506208697304799597038275364784325140576045247168896700369159399173644808065738921884099427689576196997026617400612809044957643910847948609450345714254729682995932276924883142384426427833808121772565523703989430781508724955382965950251678478488533307948917815342642892119004835912226913315409645102106398776623385707419195039700832222326070547167814375224429566173013305937747229093442718247198791449295806584757611188299533756248909043514790906182388677027993653105541075059468017807436339514137620393567050117533061524728138197619400655913631204616244252813392381008851903799989370235660753154414604771863296351270420692812714732145809892684072021248221264264355003058568248656683139032231912237796897808664668385305720227920527605684107338575487264992267847327814693359412031174013563102827204419999431888138111948875804608887906015723958111302315678982600670894238173234338066117237111395895655133562946172281778974132994090497353043216857206943589438096377209924722715905606067151887049112984029870192052838742310470602871496454571395334447166489265897079419943087017828052183978984043621763514132762382629535958732240049497980713988608836311000244653768614226197365014369016306793490032774674179111671943722643699639260935822377613528230749816974421344743688210134685828800747832074439738846409018038886989196223487764699135609114188526528993904222821007700525499221784991236970227438802438328600457139650037471285791573885048432250075930929675915058465921630231921565382746750834035057615031950476161211050344603989717538325608399706175466009621710861273822739831998181062423257054082167850568770451555408051953176541044604736480206184351804046633852640038142167049861535266213429344297117076624326451052063533801013318510858723113592957576746420903854924501780580196912312320090985968021292279652782948312272156379675750043429553514761868062290226886616215450123335520969063128273606104776353517662166566331167851850757087159031001822666484621133476973905051901367112043353693439729640411925505712714721600933439874564276190557962315296919884748965007584522247038815468650714614649586354048240854550524405032078615269607997006156232310694727092586180064465972763829546194508550578201082950216491502566083220328315787556108997143742939726129726836536653606229044711104226860146706400997433344086416519587631984704391226567658580596865360504056868300419951302721795607568645109094871397647556742344911027876450422277594565616264331982960632649305016261539127205374305339231576909365094508625163079829626343446886050684284122942356859535712398880478324339603876966358487711264275355358045294699729967876398447694764177555742179002514162101656642821976164927192099931660145383257894211180441772857625027535177381553902437276864371395501032059013326307118495076257743857667972140386890272585577636805883817830975004858608843183847152221776174482048791425985353909631877607171485270986672311150797316578497395774337942237390838837463893253237456220427116873683926249744152146211045221677652483108823374320781086752404663915440175434187382421779768645868921086864139015968203946952361725745122832617268492234935554802742621862546943469965067393869318436525125175046509198464088925096446591112695983019604163074777436424882683005941900246671862273230099085385583715257122307665177999495234269190302757395792656092393197701985330546988254332052757185617129358546920402635053822456822396756601883339910622681246246863293059090979720678353944643713181652192565912885592536049566757421027560207798647240941469333358092403487552259160838749610789276415016900016135785371194430799569060853260797787751993670257135619715200599404784494296440915501570365155211504420310026291727519099056300537950498797220276921759190134038103991535645602112510387937611117663178775226214405375571236785426724923170099766888500722350390414573673464637663888167656475035289681676952927308169996774933558983986669836470357250115303798348215601526184407399856927630805849980165665471614294238570390744029613143958130632009663250442082507937934527779619239372700987017428622743781268797540598043149413616080759247817616824049067824124781866819976952671277915256910638305414078298408651207522904990435916119746324977458414128980033569703166302085737708243123207740245760255159376366566936466947697540813729191948075611214242816193564581358151699173636287857946726025484373433924942246791231237920936154179852124237996410701571252603536622216788353162685693335386369355796484247176296690388063250890547843250282660555354340194900929672847294444973201060262284169257911698957968746582635826577274461605583859696301779254993429852835541281770341498585985779824910330220336732219062579807429755271380832927938827513741636798282213549559543065219131505276509651517567788896189914060675485792228667087815453264555166892935014122757024883656111192503404390212902081160653325348259602630038395303179843008300860385281550269855862100891148471823461691326486220293967404227002776469252537067424670357924272573961485645072796759287307564665861406033904692745057755615363511474097625132997892916970612389056437148102072215741677945583469851945896870144667126225188011055660220756254664269727235358098234330760153759994854580015819819183088914361195237009880820359131739175017814153084379999185007858877673338432557419698231148480428207369778857399502869944586331902719491560828605791581422098690075423803376580456449624004301369492839497850369677389575443097367098466926217883152936820317086553723496755288072062629960493038550283882481063985361567139758270868692917966872194851881923389848979048356236400654070033310261351124553633401282077536287136929633303910187419581478929998574403499134614193169526758626186198720713886083734593095498812746473839167339319681458261511098118863918749819018681468325879351292578586145747158577075372910277552285010552141162069633831387821847505838882181015937295752495020240128703092620554844760829775597623565459064414303992578142664244942624075899128371198288568146437236775046061476257547019249513496144894103844763647796185569256986874893580931220726376223477513306528123931433510653179670955588943727141221615635735974421091623612109769901185728883516011605029863626109592888605937026694288502674878408648239266112805431119466584177967848836097033412731779395055017238444933794757947625681668881962979531010624025010160941803976223148078720787950908555022084443757076802622062839041583627681446135353386335621330805545685651931627459435395084696309310571514918188901215652855968393791049555019790195326429153044580169174198937105319469332488721209231807969136637235808712182964791900343642476762221946664980304012662818903516340791465044182755034765897091318824729583156129999484922438637308834198611176057872372802225512593518494935905109611234378507400953391330428925036555362306608873811058484325400707474652115206070378218686366766416145878206185963302041278790509884130827492859390171419964499869777475700076713305046888038098455852752495859629928529359559165406005572107123516607080399653438311485842086429872571859452699134026887940911996546468971358059508864891810784512568507019853361682532321314149848760023853706527069864711315621215518944194218406637713457235169714855144090288401169959740168651469437610639294602631366252117005259569848686217983733199687675064611450384908491408253151625032445649619535790140293608968386578369726766101185581021079697670448292826624891751825888451998617084172705395677429626245157685748386409288653895527675099633424678463790928354548880799556095206981391835745297281481573995286842819803383850373361545944739351338063221690283160045539541744807506556465713147712314848999506588785953074185152828060547594397284147981979172622345890492161385097616973291356762723992075834341364998514902757872594476984668238470626354346500253965420290185652021010711647630015395571501180044122754084816101878422534049605791755185515256308015071732173026323433757671780929003941642633039272070699624358593427123327544585189429331113183763931675677607124987776548752903089618603961609987475350509720496796876905784954542225278152780269108643286218887088697706582483678242014995752561164095121220563010133428124164373418586105525380624195351318419718017825822843607463541608342169303022208667758587511790044203480958926179407278030766438155295159587124014886728510032812466008868855290227682384562929467506128578153183814762521717126846247191940660684860162056546842548807211746094992839478495818150942142684139204429858627395769787955389593693214091551099076103862782722949115678057436442731947047483382905058497608608866727523150404081939984734554958523736904913259298870347084107400345682436453870670770172862255971481798368731728069800556899259406458538756174873551364194286080685915392174755086267873156024054281364194890585977320744836333892987267424635310467242283481723224586485538487744348305508416623777950426728611503933824294826495929834499547907474566449310905364034418700037653803271453453631141363865146440326597088314476989609263451123278123026021777035830852936843020466313130948918642540495998246828420757256397642817589461894944140909538842739623089086251728876893543369624338062207534623916382753155138166219823256284466582507320555036279428453808262993192936345364082083721605934364693454100855790919774597650224344992400539792634036787367488664188445248803166512907951379168919820225115012652328969348003464113756704717186485373631037863456504462161412566759822882948226558397416797104511961014654403295344651014216464851356844376221616038731401167919356733511909082427998422972011076841391596717865906966523172011931179468900155105401054663759526910195728455526584562976437028505604168153109044492182037878446176307471000493157441023289134224452373386654759457195485828943348800771891672842814772886189004837352265290645993752115825254845648037950577915469347402059233944418784665324729519228149080578474443176057232818226089243391800154277116597332588748687790644749704775833947278279275734455942462632146818062168808732934568673210993951726466046798626853120598916566651805520486585245961388911799206681779224062920795261322641105098134363281854257614585801904458979872865717201364113784263518140737823316707541193324025887230494425645407178568228058181662259722811004503675916036555403210241489462202956451382206649564384245050518598039746091661624312635044273841419697449852810077186756623726592695801497956086292694725060164942886295510104656113711552664195249141169092551063171487117999567511886960636023538042275364394396129105904853234844055288941352895087931681849391667496063552966063690549373062728710261161533925235438348315396522907685309243995323501345092425462870643892707141034312623341924862003948988220762056501754665589264844314575049627462487184701790767265605086837309204051279264523903515896401884605135118757619829942629360936509739685409395587759156931405368913615939493469237863509744644324938104051607106046751812139757834037014215212420129351813234519767946829438579745000061668280124407286393749140058068111654683475815207688911020059983040645471223664405969194123174855508476889676019114867074017045606500858319881373572170219696172834086189592346308385094674151169982879258264778790942875320891436520265555667957433707383002278969361667329856919914638866188521540450943035373029116298637132977226448090885024380544858879088021698629214663504035989907077343135546736503835065944527475504678927639899146530228843449745621462057567341725400961426183688023684641573885271426918859028089242377469945612032873738575595281353772591962587563416199395523387901476457252927235851634061374417706026527282853552775676918991065016258269916919314989843883338422297488303641048586441227319401500178673407339509889543418879416923810723956494549791235463205125957570195243557195606174198213252718330163634533419438740382552504379072092062932903771359793177356035438288709439882908967993726571909535802407882036641326677958271935658157399106334618268657904253053818316669336062963917272918490996569119285647805800856588816047628439439279316957256156586393514678252756479537745788602496756242083652018726078719490904519044120310175476292905330310900991111592911786183582669728796089006994940000915867086379679409040228922644065847281740122297036430700924874693919338667947572819750202198965019434824842702132944711107071653365442797505535354029740250980584371486284331882394302045000327249047004927008736629258513788551612380318852711735247200821480253464011702633721488495590177709791944251587484996283123134255700186287788385188253236380197840175216205471572757686671782831400888375445668494291341768797678644653338308012678598869627946939290315085302805671646711561360492394060992361374364490507388921339427566108541121192702518305792853105017541500300531630186956519198276438692436839049451306262517330144905639391582305723781840470754572481583891752798999256597299842266866623293045597817545146479976605401433996632508564325752265243836454177814663592455695685427752351438500385112499786521438526815868990897332400825583919685429342502947779697324730965433518475130465894366294738846548238280578353182943973828537849811604457665994430229641513597749608832163689108392585105885948896224886069925982355407181887416416404029189014814991223035483632280224653719452335078545058564667934530627673999901500495163475495984079097799553949450554529936260252565018977367634803396479904088020634568562011240406145756224543883594510847537962326204884292616215655143321283101024190693816159243333493727175824302843260033894192139391886296152608325012985096044589262440523192558267748847927496926423063213885698877462514383052834436441912584655771392184691493820194884831527893377551890017227473128785854703465495008621065775667325493015315601472868490012420035804358624827119487847772989358031364573665983928253178427134157919488567995186727836775508882901596859807687587276713730739679769766852894856271528387169445420697465746361026716806094414994434730426224883753995027656920869376753278085667602973733458564753138700830583827688859012034814858666925160974099454186799004081742053593089702952234985017825815521994415497618563561165870820629200010803290525825823451608471235277354980813828668054506350566179372451152006520562865021233227675742170026255363924296319703772704447049794453070289659834749551288852150404473620259384968159707888790929741481750878514570040153425312796160968879145460103552661121564495251631654714327784684922966719676166432034029546058088757141845896868406278473700818749936384087338553135448855074721022214563435996618385470158385067369064353895041900095200180958514014221396640456358596539857363705995254557925820257428128526558026017069663446035715736272935068781984306426488421967855613294709151415921013136406265722157826983202583328314825250835688777985447682310067504470439208780511976008943024833397963071257995409905212705418388341114302175517762039402020305545526251283241607599655679599393493089888754991511628627486925309472098640774632731860054648623489381022104377848426349871869968809865172410097525883930687592279284181057891333691777944045141126800807305947695016008108922796503750584955379659803801033421202237517010987242796140869454363272536998662006592932071021534608067057734967185939539229179031597648212155841774910776861394575772751670220362025628001250541720621310611495960169377940566621034987635363959052599473051519539133748745113167379452744536817301699039096815679815269430263143366912956364900658817925919907889760004910038629560328075029787645492109825883230641400351090045513745234290982699538636646737666013581435995650661936234114336540154126686744597273116609587430382367961300587579272219900095297155738577001645882921065602152481334097296422392543358265380242984383994000715579451600244339780221885704189025512910181198995352458477100678313513116215246009562149709351377309165495038166677886595404202175560853712700599792397152157531591561319674906768369229425077973675820495159815858362500032689227240063348053413476974687148117223928065903279626184954697510733389799273193399589490981410918340962850543717710041003536037959142369121463704281847087508180355783864098162314914255099092492320129473104727007232877159208822586547346381980452647237946512747068551391571201895170279547292287864281985094074240678419936237048677625018122620342438472483530242712050349988746663784215617197510201180178355853698756434901092777526734839618847057675724971167279070457975575505468694762714069055636618359089917203019265400455035244976999059116090705366591159458274393291618374931496205554713808074332291791544946863000333186263698598983096258287184586744710192630299600476185281739421447151333583765253784578171253630432428319407789007237154080000483056263569235734959618553919532722379298844756033390107333812382400492530074991677768276754935103595999051844719734478064743271100843913904975147906054194443404842091424304563710978966321326993812658251301132646845555069860310649441133553534102397662993243007404190273685654561746640026397389722755256978886675985295585918347851076297339802634597584354899187356335897612244637917123965844774687364938877420608375088747690808357473196720300266971603492499741583280632822029825516928348376092560637443719394716693928632021084620889476531068729090611591677020892740071795885549838525601336154988428506314637385907231120118442380064174949813991781108927369490343541373073395841744183247324896666546329866856507045927391937986006555254540488658721708842053251495940989260206734369988407828288450679088700189942352537121007177315815028768287059949266864448492869755737601644730782685341147395707288787534187908521989673319097164825644604077692272503559066686902461085641317527339228863668726461136774304977131823364997848254587874431670889364931879544864915809945403546250848449101931455383440190159565993067231191315662078211744317711438437107598319073118689312740696509020930240031644533882729308692862540717089689101964827306193511957869102068640098455350889595406023840856507915554936216205300775159391120165115868569528633169039626557249060231508956574548808415185879997040969673914711562488110966887238784258250381359776843837815524615923822076210719734710784590941355737443460203893252897482410188680822237280749190376707810317535869074614419838086772581465250407320368467882754174012938093663873894050803236354511638588758519425855375472858492807117316910040935817466975948109947300660114386743875376351361141173400655399433572986771529602465288920558874705104121272142706726171456809296048033372510854344896361959186035064994275412243224735007681011496309263314447811668416866627641598295543560422963803814916557820465311479365061025043926327081949896275458399254475378585691017347167679577585976101662052854941183499306570108774384789432998739110454603065203812255555326692886731929250009259401689403579218639170537064269262325427852884621675525772348351349756472969650329717170687899142747017396111657116632491560621671556896526305920655877740384035954536212027654819143599727832023104531992577402933178921754677972453956788584467778025423000224523881937700588500570567894960856210659593760600164236358383365665852150888895938220852498276409880095889086535151930713512733180353307139369519784773526620438219003113948697983095050400712725094292604355237896124743552028166546722260639821752852935075047376167747535702677577423772492956395471750581038106330984160099666420591409326126864065368456857871305535968723866612425791738943342121209582191727511338907419454523311472317635470075359373382963766655649854237936091368844345402026277642144064777594913286712959656928609484831994095031510508741288047208311523967068458297306766013586242815686198475016491796781901825876089341287472132772681505316719998006822383907166306502424703930362892423100379065413836791293589238425414237614083618454183032526569283755790389495909923015571436736085951133724361727352365343654095089097105870875755097095005851796523053021720155487472662045876342250932056763378075311868480979796308347421454363970169269013420309832046035093755400934304176334359412764726650872947237105573826237751270847859372724769101140808805768472740825560153887829764876844568840318666536737797175550342565710116416226198197107863119928120316020939882505995328484410830254378874377418842431420730138607565199418807386849880990026063839804037977728201899059109599217745354637622802822939697629479114808669629624438141701135962631307706855110608940342158965546445231100416394292497446458967386043440709901223214737564698453896556767405521284715764073196145244341515716915191754365652532756503622347943101542543339368586507197882538239034053775471702913242281173893459701535461518203863917266277524378144334630301396586025173719250950205570535187152532436243005298575061770845557915558270939172727695465554384060467482690466240185002622824073741855621785700961314557965806559985684670089451610500769619831637648023736502863717520615167273094443109815691545940906122350463955258326861935011466304614732618675112523503861551329276879335083734761402992210831561281344466682471413125687828515246079151870916075029544768740770885226687345386565024384516683759690928034133490036950926543745479644513417643215600975575121574794474750849287604656828695468248130638770005875107611807170934974146353967690557725742155023184765391817701392859839608605168217499424235436185464689509642415361743728401058175094494069626390891059874988249358645104378915389348248589772357653335823158643398859997928519999767181837235595898596356969688439804381174251529695366056284476684279731413629212446731620509967977777537294335000375288844573509715816301390478892577807491365563332827901002874085460389063213407714766768514289306294017874876921403637825294319541777546564758702677741946556719808062653835751760490589268423338727104004539376390185823872610222654972133484332075017173381061175336083681376515788111438177249730309493840039102418506371198122016652984649054282462910188100976004340209159072489392077561784032874451705915488832186389425904252531562526977615028167109438582584790338064930015696359447749533276283692074900329410060017769791593304457703640934817201520008022155984737933161549336906905693772796975523390523227193799326105724782372496706725556335919881980631338622419668475390083730395130930260938480198947435109258567464494978698717811879267540600301614020502793505712588093245740845192803230432192980850650236133285317534286179343719266652988256636348334127022253196747029989636647378129947021375859396498442168080174488676461098589216384656587665919617562398004035609192744845953032483005509008025156172973777031092522825245553102453775403151451116203001495575435930119687581771046317228593824677079303297535670014792606590986119096122617831253784391953446142142076525854063148411753273074435466440565570794085224175260539534229238650419097486307854779318032882826133507690065419143512727080980946819139459663682868101629218344613071883593581866595411684920314584812943246333333913773184921201473924878614250144078322386057502109238107869789344753464153368132495399807453841641484676817651936006599742934693225699676003415035612775416605912231448244939783952237536162973685666344996329370339060479587082599598967922241467328326704819090946530051585598235424127576884701228698117679272338143106114711200092060329424826268204741960774879660716295942910892716443852853098389534686302204105086220183781348239990777640545014230262811839209118576267944133953826490781950664151766096040395026830442359382011182648163444285885037589012166901113004435001368039907010368207878089712679797858755733794467917889744136438427357241520347999859891352462772683879587614829021158794847375090600015864974106729687030057890733597535048567904994851866053423688912387198938853064160425459837640747163805299643788824658453277773533353322434785332753383921770255509982452488431374462113099427508694948924146822573720294137439521286654851564895870248592941521361021360617374471418285996993629549534110815791790020301326274733157621177327646751872931664927422404743033338556276760999795576540597413588833569449581513507010876408091541718063680734670392629423204028598523466457977790647604713167012299445563079863874671770966051788870530938619003390645685222626669570362656655971451252395585499953324891841536087577809362530432938771613528936789746183947096722823993620292924241353998148572488216580633378633167281903777760018380433512769732104471814033213102229355764880958618156547041046919578509353001530755878604636521105347804653978694030931554064681314133330417532468138983277334741732817581649467349097601985402345622822096523435529503314069374671482042968317033898741548690098489920646755076032841214875112071676244667482661190245981339456489906475895566103933080330467305653342129863012614216333208154776344357895165004259181377464132384715836634759139324139803622504923030872370908241818857540404416673884467714065983428586365694785464302483531568669372196083418252719115834815014499907011202475116237335461907948901296496163079330281929355302136772206847801495786595534435055230196985893298119312890705637789755591968645049182982773398319590567622788901152328984360793534700430511816789275359810307417444737292545609101069443198549364103299620223811372690420170568937688459650934039614270435518426119805552678400592608534767982167412548983869276998688516553905022673183091002906684561632967077813160747024659902740337482467124990338643650965839155305237028942747884155417190927039773145858477150273558445889524979045826680804931043129562157839997496164152175817897814642717748256008105133817146633393849285706524842872746898964306182625156216832594351031654344545550148997898292207327550178640288482207210860672090007702654395438250829148168527647832165615146960608338194320395274482530885330391323904885949484667169865521785688249355777172524683355966757806520453587449678134899082858267717134274780591337595929904612960074460317806092442396887402223923698995725018978334556856522261883228710475730525396637969338865933261056855728426593319242971012363634891398138593097601868155681466448213041250333107830846640649034025755772779904347904129162095110094416598903821496872312111027438596131428441712754456647203999804520314692779029606451828419794910318654371061029078302950896018458625986390851681407804637303800429398469705350655997641557512123800300338516995509561631192221781457834871345320930157605994277764657505328464270416687654273591698330087935722691073956575382540014308759036582877388467793486179229029519509756170066437956826786047961768528883317383019064504158007824563009208507541742500205056031139267678328157224913358248573962122493846869719952351443355457821858347968451675524250535262759135560750299687684279483786155315020652039181350860818969286154396298737985233064635293325302996610367577231949693381449710851636503256825684229129369496184738333863101244922358637334228901551699065295817237071317066344023830865595274767570106901273114327431652500192490527068822258444414585730128579411226179652591773896924220384382847563776298852037235785761430199453402672272820059461630488602009372033206575073592670283395529859086735146416022546128447628761042944632788598501713584538701164166940034734666376701767455558884884251669635361794650139892636157090791615157682620048315676511854351570793114375136146996961022179209332781939564467399121771045707876409784025591560589824872833304583267237317403520629750519446547890974281205270673221475106085209894141962017190984383277802864251085434561653749827327414695810376070191932254080117653905757568197878656162839683258859051672703126042002333023452414550705415798347626039839470806101673682877641048405438283430962562295401852652276114680795612781157168196530222617214754038444094928307118578190503818904767370209784057564506564083067182419099616406757277203307164610158970826542690108945314927067030486079306875619368509068303330933234466663370514992484122288139595353768853755565831490529537078665520167155152673050143642663054821900856575029743496954645541469080428016495323618597493686259431124190189946438544523612131092491162196160488047088126751828480191615192599452470616477711222390720166118229265839292913616725380495552069024488962418823155170333720830449933148086775648875350032605405825033326521505368144385331660583164684542706688208364278937231179268420432179609442873661324035075072555170521446614192470763975655319202662989181358530186505290890727550384213683850849542544598774449068922977075926640133549204777746058594144421664826645227260956337711245445259123893421061609714873799379417308508172539716982862556612671809104342210245348834408635307123282685424407615036601467405401843887606370475383581486706827994289483010530348665123526629431881271053920528294400413347728720074184535428818104345040825065674139612039879323581787366595144751834293678050224938656695215416246288249955208642332951395451969071274503415495535724379291920653309373738637035260267452403841264368709355919515042572554034624481811833624484357649094964449027419598934911129437246312831563893494960695929860040868394291750375906421775500009870554311672078135670039376282962840829142974427392221824285473882033168223424413440266027142327842925932937262368280427955515672362531176833158796259263213650329234534996142319268179706493268204020547041491781752607699511703160192838988253584730526545799359203037717134317564416942290343117519594967122076642047867173532313059004762198332482159183737264577939243218327018309633814788384190134236877724961345171293774244166344391921192556812090844736168254424603640915109709012333459929228321793786759150318932175362324905390171880440493474885516379325612689465844200058585983429655344480645824775489444869944617959093657958067553452475231858845949226976792736469199563894606597547029525413740153447355271245967740418598570665256772153929908303442430814845076529551652415767466834271509944461498898652084676104223314890292643253195481134433694731050010848551888906240723236409063018296351186124737667068477170058329424851320670071089721020847801086673034803365046456598744037788667898455510409203868846386450952525612295909512020519579854665681839827255089425721798985053684679650042732196292234751228194155504165571924888045664204560927742395874567424779046445568328205324793256687643716947706325752787840054121244095408838364833766300164788488463073828064822010534194016733052140117155504209658520364320522785551276661586418822047932487558938863708093854805393623175717743275217391522078848819963560778395491523637186043455276096970520537857693158942143683025843072199208280671911945113944167801225474032228243034278409468831675817576838393204584789209071636585131954120412938632675581223314430026554440816329876979214368252640266979505300871113866502648264991977454771027765814736029038302554102019283766798667918638610996227619125194858857001149376805278468632288443052763345556776070868369208310230141270393636865262575265147488757086936727679227254989160805724938010866001281178354332399301065069606044771136321858873999918041934772799017693192258399516471617501663636867834725523146872719154319260985382222074379811128143092855362059627388788248265097484123032020149358233347603011578400246050635757178343741804374062987126835405633097086925517694259653850681968289332609161324698543446570649543263945964846038682287145754231028578646523316704149753210309647077266275773063732688754619341823530128721520343489471824704956365492063971259875932401282298461159676595700079044475417494200088981133030974105228182436092460952580437153748120793048805927064032945014784835244638586823947860945355394840037710209646548095945249709439782719367478975579157061890471887224310324243316145728181872235945052039929653948995063613128122752209384645761021485520094043481090988949000834814642173370617082445082122659525413109760386529335281172502605848028864133074860639581791115747688638426663436653289906587996996355858546420474963982314561356160503082037013871517716066929418986565798436159474000403083897722038125337045892135513661908562683169878633307805024807128259189539515905012911162734568660389000257382295200221508635801754591741832138959507848400759477252801360354090220885190364386699707804829615201102428684029594737123924010985402062808528818049376023281608982027591690239742895606492269707481459641053730649676934280312866459285470993947033845105696249202763116869908690753891808050379468608551685498383170423689702482982844852196647363812326528887675832041597803409523384917773905606527755981322777452117866092337615411073795513274057496010277914946435492487325229154593239070351006603687023039332774174345232078006622365807684146145313614656825545337543287043860245670304090346158789767660670109163617105724038336028937047346963106494594898139858985484111439651850651724905362391401485579498418297745614330990570221739903217252141417405096179290606127351391070047374480493010241110187118795358185611233494583970990767789341714007411782665092986562234502264249422763088130776297463511353535970343753746120278163221172166364637266278692966774182993327987467516772984241082664194274624003642049528935361637422678528055571331578768599540652847564744207090574248437586801567413937413170659352465482586812504826483316353042435917921071746957116941493909795471032385261872716827881810676594357148507955031697418339564889014101340440767679625851192195054657878949173066162643832570296616992250357496187679161962432686382461176598550670025475633522177788579599465617402024670158780795934938908073600175640631254679511627731928858105121908319620815946015821667558791013176921686574836529605725719745379912042310792365320565213953919363765150658789134954387207555053894306621664728360265637665739231642585881709244009772279567206828308356798477773147388374874340926996996435416463367377737259898710268676500991776103289585424626110902314559536455306088707764277511422333814736639473926809623968023482623506167292784636687454020172930481494810081820509069483888755523503152526275812122583037018058013322669784859242935602091553160881883845651390251724406927460781233905697840083980025156106999987345478274860809755434356371076495150514466042261072288365816672191997014098789249761547574035891175104747219097709122787035605092008586408729782153599622021630272617759373486606933699403203459306476522589878459280391542507618346707052333029457563246365944438694302855506187249974414645381866397782582884859609204112898366143722546138304581631525955627942669144242415486396509538761993910716131537561821255093374243697522541694640773818778210945259526382946105790194558610210007275805629992768542006630044617623754282360022018032051876545147586524843493622098559772527642412103587699909645934323637884541854689335459804087925434242249236124305306271439445927547859718280603899351362725648776002796670726777401947433611617103013897677944228257419733471067412925291722460832444289143787043167481296018099808902492085020491900512268036693155056059971111513492550420024161816965763241256088810980861647617617283220003117288979044429198735119910193320253676524743288530404412749941641498022031427854636632836650875432407842273907481958714193704824807474377573782735167421092224217014515282754195660906396906839034721952367153878151375252639988289892813098328873082438184851362926308237990668907737934594559677000396044547833571633336044942056332632788651254623170348811789340623484313197299845564230077936521469276094514101549584045607374220127151134080523179996482283711820749037174484328559904281421562868523025702581716226866080988436445228262770742811751395858922030729182530381746309309862638180386985276504674733985586846583466551366700470743307260578238428765839211505237319262572794543458001954231716307581759768538705583463720570124475110711004163636283325930433916963008246086374940551842303876287038776302967662107572674591332415409207030322727014742166231024996738951156038982707781968039846532225841784101499336475755937036384883766592826690929001539121899598798447929180940936683369955877030443045029950792222148106305952653819484343115562760050164697277743587598825756805621692330369889647148900194861063166538346735769628181609647920578882520707191192345235942597321649351163881700131674080884895309526729997251443974942140285493464082824801252952658985121617829723163842049168885243891709810512096194751785293559315427291448798532584639190092734333784696336819389600839718647045789021540663794968771144755789305048208527887558518103413393367359306908313089276026322213153371515371417566095293228196282818458644013150199446840968231083703097821261902371950028311937368222466113012514619849523302047957347420080154860419928785937023638729144768897177939300811017767252406924657654890157759306932080199696592860797584073858715089585257109152322331503288630165629239000623236830631878239675799324313986385265621592658674541543140888639160798417238107063068179797858308803646834198245937317161576722604524107696159459033807615559447694477347278123922007092928310596236659784128022182378783180138195252208600217032107611638073463767676223861933675525158733711792150632364105500958526218866261828140367327938815532235103830986754920519160166109980965108908304742413362641246227290939697066246679983272298794081664764197863218973757508143365497574478339059048885564878103230574030239254612319819166319564052713773696978698331469011334697865302200930109326372449730005424294987305153801145883235428961841473403889614477733012775954301118924489679992324575530389388379285424735500594471287029062133203943233207001716766949209045874876626771616671419917479222009396611262763031293384084697317128224107877965857924351528604713467859076507359274961288208742910343782368224553259003589048244519085458702750803297412006884799925350643933798339686895258354981178167932909696049706587073441473598740988769472471601049058045924508601538382233859818680856316144531738660606247226789816511332062776180257951871722584264564033627688513685602134485584449704709577202540114741151196518106841238522951877073718585958780530509550163249114747942597673909878075156204857672857563477530969278910627526507088149552104320866475435472174837156413966472042727282439421172792438833805842061600071048563424583224433372223994831424579099141442128989199362088433285333643847963245215095433688102841870174789250121759965701399858419932771814508275677766257827353382914685352859432299154184631205769854571308053213227824430856720981960416615228859472795037089743280588246441517597181126036000248251433928942232919421277841196977562734991945188366402333045242828279797812765202431143038806764370306733992149364829101952465928607932508938605140277397996765338867325489976715885354269668545294629812225580769878102025812319383927429871069566868313291140490042436611038203164811431138758897113141354604545459111676967258937410668441193855841527449357940468821263245616411509101346074839891306367359951562380148745979426276010821286873753032508820188450464237340250474271462731109150436118815526699278473309730434900273326285030108988620505357472530234717745205529965383107145308439553163789108323697807638198712327503627513499195448850510012454455084594323926847760980405633011853144123139729249094558899675705187673360360083080340737173525826757264651748673495101328449186568944216841644041782152763756466446515159207903811675747197771261260076375867037283885568568586585105933886091097471288470349936057527916510391001559006982584037467920248196056921438741604350857149837048785185157729994859513759382760799673049666005850789973576405996665303144380540123227178202704626040185906118511583906323463973410503331775372538655029664695522022404185870297208323727309239157256535072608043238346887301888755240829364093513973232632087203017192674228011059299828058385937992297168827432952927999001600326365987870769126787991579698002978698136050856251239530226238830357581954457981904883663313707530021821120765635681029519389243765317157748217512504258801341175985511749462863653789661628806978547052148509510310377356188732349232464797306722795875019403907132981299056376439018022062826898921887923786692004184618643697184402624128608239531246484994019182272018360629463727230162260516043554510523322114155203924318618749665089794377408457306038953801411776461442123078613788834828969550845338224249184358049937565121731758201551884616960344222953029635472636092380221082665539412630189006144281140366945723158541670725867232837016008214131536432074368140954540941495567450643866563288635831394278372214930697927377524960996261309778822656829523224355353256368416951260120357405536422596568148015967288197650246362471109085731782489770926865007809391562953249977877902368151999295392836669106478388132978134329273895981429229189759084096375879584317551543974660540955907491568547130245289353171243986373169346149007882608787631708671479510861509055787904437685381220551014583831560745809314950024659470507288728274690582103375716630297887567213439525045504913911597748992644560953057066494960190086847480650080844068376662919686822274016308425531980075220927930263640426266864041800951448363757945666992808416692250858578235218179380810196849099568203986628587620899970252274457384743776171477999365829779422774997879160167825380279387216015897794420492965370219705348899950527153455476026925847824728289049112232125369710470743534195563469825518144930480049874493050754082473155719687086736244639062658050950979193500380771801515281367240344993938907338631256301488206859326835547377355447203083476122598477141699651558471932793287615553790414073544545548298338712604620171643429633515236434060838207674195589099319048074352420382057092155480897640370762833297691755487060808416742747300303530280665157044778170745130300705299903417914456551528048349626519389240807686218482677557733046158633170486415475437749920008467757918510264231503829869012805601017188430480791663252755581138933983553662695238128071539325777431763573965566594574433571105611070530019582082826125517508654853673660670271056831571047772947521738451606504328689176459782507812031356839706097936883719435946998617813033276923616808792435504597268147745669485126347464308659937871863336630537009177086580871790304499583987981127800806995342876751871019423940787628413790991434623324761463676640710738840092765130228463043566363529796941690055700756291826171963315484964646426267184301474885429071134253791046081782286693119370680636945279994794044696559300368440135879679801783798064727184958651608491449841682715150438175228704305074746920781829172193631187938614420574213347799338108505890985791065287601115462217621428385409860797494406064439839304653438198934335443643550123627084646124166790867444510358482003748252773946719861991980045991729295337531566604293666762221369899396756410136082935235703164271641833529371149431278747343473693829006577463768959404417225158197460175316316989090898597094594375027822478905488824464489889732222980668326300072066470788107104122371160031102814905380026883065206886889721360697136262944775184283861702641891895689751787663828685904450150372685304715553157823915502570644170908696157582056664735087570398402080041650339949986216384930647305629680316252066241323715313173315269029857850710680145199847069952194210085863830963274146295167146124087318458739633732686380194229266876704463108453111469363755009272241631757331853621638568438484813567423394423304645276011916105825836354042373560018919515649204963528648353129943668508020887776162256824691338386074119392963280619462849842036985433943292606615300501980593655396862961539931049543088414924493058080189639452976408047934800460494992155906949519539830188264938321218965884736227830299185470597811678224923366577598210062640458876412269426355695866386633951910017381171229420187621255764227019292985293899780155476084470374945404657264242257148330177611777400594517666921711109213119065987980823489973271315057305870228755375616828151821969519980030035498514972049235381921614478268613358513567693135812768045447054918972350045059775663817306693429203711043213737087998640965655771814172692788321649335670891806736804885312471289082449440343149363651702667785398530496546240516577563951556923568205097275843954838628876251973867666897625644484339928138257816499394768229501142532066657994403040621591311573418233282190918249203419102615796750122057218664182118203722826800869196880781865548203600458814750590559498999622269013259855250054939618880464775842564551356813973182831151728595501017851217526293688094086855515735297727438961906880494107319305576599057955601490597865565854668475906172362560718890868947682088037625917168160455198535838494767602102534750653593557459592286591418508686385253086628482560107337390109512928439026059203532709919130963170621145487699900043182480788711510678616219045129894274265847506934459753214716045363043525597455696273791915519581786729722689321629233550451483199124304424349807199602597055902113796161289119095792596304946164232490149934899421801285241594970882884079619229348962678481092078253014886475973038858517696339284408479801154721970674400231809661567582302288500526136926801657536269133467843922000833464896205908732285327519317912826348815198714365637029889768683641619777800955599088810514164543162692671527714528965994401193319042003206119759281741828861697407270918835796792718479254745946211782971855018001920910555482741084182857103386949031081022299115806582645555887386146672537156949948737278716838177726247238534639172960381517801794465473562853971658355841104131927448480347292599115749423566315779091497697686130485434530250498561383310055726279702111713612655169886978926762240948477641255937156025285740686000993818008263801371345535059846902422443049628406312763898293845664042503311690125117671885498494254932559987670405632790111629668495431528177695505826522761075272074408952817703105199565119880203058014254433044321693103465296480337717402770253401510251435888914425590446787882447175843912585294676387458038106051153474444656238755071284320333296970538496656055194811531722546420470574243984182260330064203462299157866661496506409418902093519536441144500147904608491681373115142102991178771814253026105623075914699250240676456878161958099954491515089444555343290961850476250511628015234724998517528150944446607265741561161461472003450921405578428841385811098018744159227362173214543343469064055134763280349550240370759528483506129815298853870884340261796605249232363516831539096561739409269127282698491514245197164621991986843382745960252993024436581832993878045039161350572041199665528629577905880312897577392880683688329679408032310343738964039019795804878033081840091420457590449699524569709389137012398996548334734531932743914920805450689651603230449938271366938195275356020027298087536240737429357475133655022808997364792233581254269257726902735472291947111672964977171944913160287830394145976175192864326997717778740506448504229690075125628451007724505852945538918301976425738421660870640125048348664332553277362727985808925796959761147327346347386279698142002423341207072657208292975490060803522678841458791528621504513863217914343131523116773322851257435681484414331001430969808424766389653841885457406962969709691274478020510348050278853747782260447238253470794942764024973077347309701778167386278196767181856557418583314588209108239260674318861164905835421495815723024282065148241307088640953805795564593524490184913523907950579486412196746206059929511404311511814314948498007921985352067761654822456272321407509374399826691389590803415092419995661307183112662070325722616245990113090156061296161236628505015297351846719313228890732979670564247194874039843372385384074031729786439850973236522505215210511728081436362867882840329665417941041509983993156437308681016779337268107907045343712483438566420781874474362307017954109339513212468771162801567354916671933068412327761890894017711472749141748587017038539965916055905536326165815377420130186415809462392338885988458897260561806689703512511186570821166089502710425581908408926632355408160548670794559816408985752573141686845260810666351366412399957667458291200859744251513555513408781171981279678026021957681713760804954830884230894610473543297851267096355996276837273688668584506422028642221719101775375490792377400683589915326740166097882872220691662555733825808423770357392052263199787807528564472422230370660469871105903689014409584865371634579376043789468268491843288041094190004469438411124680330454605321413536719390133695574905606980702946647299844615681859547767624176146930923063379385452116082133416011943762308638341621294905356305123842943894021053574124966446940959237212759754971961053496706048790354346856993006726095464256348694661364261040219381551779533608547817101328387951601130340446084220424248464347478184132724649730053005361740954530649125684005322465549790466885450766658038040874683282101120375260887822425259057545534485484773369915001316892898802969523546760639448160373611216145272614503275160260647668860748175801410492151567287489512247055641392427863750905263183899753774708236154496888161462910576554227100038181893217968464328797826858927771800474914771734047125179234694787345477757664470749437454673027259121914341881798920359328782789390050698378832115048717064576814435204569540242530968496989866507786222168906707312082798986637540642257351819617153440732714163614112758273215683762794323644516057726759754865165459705501371255543912102392473877298683942352028727669924597859618582274538020781158203538963985491716346813305066190422343332172522267975484190803977633965922873887354103665036214275237573383988953157456791663120535806927059703175458954525258791445503645716335856236091319538591511377016934483019853851516545442599687287502711096169606503578781801217763675100138275072000949339200264589340952403944665569146086223114611911123670945404943671683561371368220125093633548004576218958373725095013001627208452753073487063411366420566841971670960676698341002045199605969822466959510069533733459880812551795510073330751668214793591266358562246509014379474989232243189726656739534745185231272619014536918015894082900481653337400658194517215553934762707023568301003359125158509204644552505875352258501302122420637499864832073385725714692461793720264708113223931160153914166048433089740897242146457370622670932939904162999845037033949041112487755987960167495218590224696330959838980223440364977908773925964516043283328987015005089779846138384425886710219300608855052200906684034986590130282850515467351318588350518371329967541653485616838936833510791372328641380505479207348157946158844578463433467518798407560698982306428769686415821120674294073341577696866307707597595279102496740500007502934960844360986857410971820874151509738563444870303806160977519741292174703610157339513641934386817005514294703789875656926056900111844103827512301733030080852106384925190302351901896235818982509376177244203284994085423907322218087529046910868482892614741562190814967107346081092976939310745899342047401644223400228282838032485839978273629036888705410634480903350285278311158922098729013211040970419295116804252101592502885230131343970460478060878024385140760104157938259447302405864329327606982301403056641525365049941548364114475300163962171509951310927104825867644358950816749560732550430207831576372866778772780457167129277764725339743631284528519831475197053506626160670754151365652053225955808980812047963024784316087100710288714569112553876150688459834594677908137355888407489678386696860187561688924961539557015399203385077306675110594552366543278246317887844076872243077931134171343128111974001995350816324693357407182724143881321790126062165846884813410430440606062089864587657505705286963015253750897914909251490153362585301282829349021266922103241066872119160313558036606801264382882892390444574214807402220083549730717302183576773057762002864421391044339030631068461159279812160965254360914232139112505643763706182307380601556650319880536881138459683890805902077265637755513217839599859546302041124634680198026312767425150442738552628594017114362921458707120967865883076922836570599772503452512639789727193945061686559886517535229243716590204194891306352649005341964252574473593392396378489641476729073650993695401926296121069273006791751936138082110131992684494949392247247506030741084334357878900468721043572929950321656699668838054969131136393118325730611973500602621835330800663980162929734562708421823977526197397632186062214372929478032328201721510791245510273442065101755455831718996009133256743711484643274751856460558864231487547305855661335439938926116059946239315502761272864726953090702992669007158949561737566307450739430841183701276164588112000644686520126625136841962150655177068761218973952321709600769065483913669216253673583342684895176894999574511407776785225819151517422993934933083462671377653860431925926771585979341954606817618451878370214043282898707937018846194741383607287188752386713467577209636984839494696837630518178129273679891317642995147605645560246548886042741348525829055294672968762034459407557163145406110567243849496655922312210498761462067587548292758167400491751624686100325655360336139072050433949848746535586783004869062951112366494261391575390635034200801302161693116775562640987946950143398484886410626018155809129116328313242472307448269608684326259603098346753911619812143312477982097805442343112340150384986897293468494412693698114869126739757085081127220233191536430025851598780524132077759349434065368710165702137751661064435601722317767766953262737362485920011115055565446189979952648864566666645236684899936427145158022037832834171404864306401886036594860005667750680845512303737224490248751521628478178047490592628041791051890700189941789327451533303237693577449770813449594950650378370641686021796457067775416865400580159047518087129163469396209685507337605060347940609642694757586755099690122489177281288673223141441413161115128031803567461526247154052708438875595881996008605954993819217642782272792648404949070237950630523450404631837847433824723564539813327268771123647459166284232859963700250426600582544511883205283532206325084182367343929222514022807511790593262397709943052773947727410241402087316285672672447984361363777092296334557967829465374680876065705903276697764974996226542445961609170798836110400211970836395965327172517626741716846010237925932060924786543878121076637753408761356643228703157189343467795570855772964191680101532965023930314196469997809839055590483979793883229869165141497668317060592804311020922310838898759675355668105636131557685676535354438259460939390444021021624791713230662714288691768580249792881305514395838864811340375679936506559461160995283156947650685011504718852767746015854003849943373300720575256805152288760552651087268705330127037478682875804252604149567152404361440864838809045889237956631151550881801504100967514916291843704962967409488507529257489807391842657287564057645901276944807323564988181785804391410617340651131766962681423874468463272337219578154011321109997254303732125294557139744902459944560479840227101375034335611529313107000775923377526189832164419173285365318759273518694792542555963981225013891810946745416951139665446912776392681100893820157278825830041372022215054947709065331241026009034627039302706819864609740244993867673961627364340965687923392948358025179254338513608317749912617527327976249739671222898445374243671754428790307733964226362698341561141339196391667986788141527245525930133756148737906512561677354803633308139620591629038108831507636139735073948059744689637406951393971784077296275026518964526472770621839964887929037129151550497968205579549205112358109843191176498065483299689565264643784855014223488672180698054482664711881207891794960117318745696899424019271958311747682437918174375912258520147959508971257324392972047278563872960411294460826369701120349768054405433483964948686141002299823667381548624017768305012491084669831503664807077419449011784485727382032276718119911603261091828178930971328346792571637040807971868609372374694331759790918179547725700130351452018189214633926855451855891374256396933428402072661506308250007595439325732298129738164559690374205219100297807791723159641396391862913312264997464308497369198638628403475283390532946211782562876299637285563836147196746526036867076630107582207318811762988752064862738695123362545671466730989387730119861211597541847197464798746113082586679641443130353456360920828038631385007197418093075775149305084981439986288063721779316813117964865417930938491092677371820458237090459557790395942424875820337134814771451280649075337216016854566525714872114686232590084119585199437829931021610163830497755246684297536708021349999743576281335375987208824442785669881326180968661484835867182520360989091046594773079441874848292973299391598125171968759921297231777204747921786479060673107942289981429772505107146018761462580053640598628144173927261246875008677723252156354500795195750924946940921233915725839724471380178988880408908719220016910859071619490508873680021178863366706108771617733990055416233828888377983993208860303926343595156629476696425115836698964989250879275679618649871381995901999891007326473097382196197370058516857150120359050237660719233407480759327118429066198503913293335214818598568907077801212837607192235884594729569147890070996987326320638315170136604555594130670859253329836068302029926138799823453067870199600215350945150335784881603370847658648176068394864122375246893434196781909082120886605532754092994350475841412525439607790369067565783549375655900187390433988714962045789331412671129739342266655919924005328710555595852049559317624560820808130532989050085696316536917034072975563574513402519307347909527582614634480780131017636228401677062755551499868745104087082092144298317993388434622864534161398955946062793603404592068442890432774027993442097878908392943179358875975337881871554294498963984648195697513634492469682352619228735389429433861515676437789779855958116014944449977559870839782368596795309509944416110947376303814350251071424421230497152526567119730651054000590834853935629416287139147976244233897458980332019093349202849903641423453592478815988631837403838747349592950446341767807200353568383165045143551606653722826257819423447477532300707788805871010191027211594865639793167821226897546106188840959608851913188878579702525595306851229661377477352022128137849910776008325313582720535745400342160537747804777774720405604084231574922125313621894897313231322827709888005445031154553268153925366991359596551296437752552937484957717916089536519004950981450843556842847534833712818062870508572658594436475069201871735378768009910534766986155070339604497632125221395309330428518294894684570129946965342960106231770020706988542297601180289524604223440711465947631500774698619245424127070061524198113251134381651046739548346709528889330260588460379180424085766614793198328137886646889247120367574571235940413496208308808943305605961550675094408311144851411729454492071162879993579209621509681952620858880933313470585659876631037062917004505288236654728953516365912132011107202949377991269006442805491630614830376427093499576494795709267564245245158124673173194725793274266628714773116873487743119385840650271767064196094891548818480972066153300299209525320777510050098351366132321857652547792809424314629050969938420423167097140580379249658247786704524129037178442803997082546578911285089116908249572136469318998412493546502614502448011619929790693788644025356939730772968918195386556303473859135120403667046792809480818478995119523865689745753998021407507639758549958850075485747096839240423497980097548564587292293995094929800100430146047950582548051715602342277107345573927902200704801924721824575441960050944642004762127371948614910679125981921370183409501838443514621233697749823279586106586680750964268573523604321737792360796137867154875619138316892648187834568139206406458974245429620614854436028105684657236585122765746329566068599598964496770958516530652761793193322518932891949450820904403658427994095616962091849530920150615831629819883609744681527079228174222163877564087952105351379036460576249973435593756249325940381448174726880319954572196578487491968171034419938025825607114327645969537383425674935701322102758684845036114991382482838278952166958034550140111739069945788709296998741049331951948347362559152109443916015696999915724365150781583074837529886163414703455694993122005496321797997362026853198349989585561269823470663487428874044955890783564578587277759786005392711417241018180266299679976797119078307900584435976325918196416336214441229252936565228166405490261629783239250821135460295393605647009558469530747080530306597994248793192244097223278645079755352309848418091653527912375126856374075940324309449015667208271128665935961968910168219690827985438713557513120291521929446038025514974250978668566793459765206826014461203055413072736042032332629459181990771059833102322341263709558932451467542196439507196130375890975598452958169389141246573514589504963036994626388548661560142431727360853050684869296036285842318106526951804748013383047767248362905145117847998306275914755026356729849205476162151383267141316960428300076426569658112552042874124681927928167611108331096183859576784517777527660708247849647353905335385667385630221687973501714968170775523357447551289220024817966326798992566305027214623290132692857945637291955744179786967120949915098516314798662646596953739101387178132238487619559260730108294708636363758373556062619138204844808901678271777580612928231497682753663017031556249656932934039984783746349063152383201132516733487063380765527322931833775588985338356334663491380897923023296967283083391361626570169497815508043991287776927726329459674604023827856413575645544285143665278608118445884899100290154090754993766541415996981517849703891297174689086281981245727625619331585457801048629097604299350271795297008877228368949619240874083744230932420800207013388752242302569100882917405815047778830063569558817968535235475436360333001265542505485773017997330126314076845902873519485260568632263497414683561661334162861784875571869744523344369880730930073370231321720903734240622748803011006826871455738133795342466529961847433150783109653066040317690492077557735776815011205308627028671661518120881997811077064699482028121789049137168031556404210338369024090158747185054279163321282428372456802025783724531659655523216022100288485134113860796313333888139432568044981767991315384910141211854272499108804545929099043826120024746935434267109117583753543262790322308967727515762762423179835401228790983513913650651493500860424128140566144342905883478192415702811679408541616561733897686815260023669801913974185406670206723925904920202191702665233915720421881861078876138280887847950788161460770944332376454710557904937837981292483617463612432658385630607694255500823423445172315534428072931138897064380463196450889493489507713873975827774877402478769623570400046911624596266179620224326945440788659812124677754916940561171770194038399403712205189909989808380270743195796835923578851851232168727194392952151602441137330595771086805946150040951740403068700201089397820106612904283552991605070122816836793584189168517946153738940483965244882517931204687877594650411054481359652742274984658714952374754870234433784265110202709469312778593265971759736464230091150936050636356063302312105098662423063991422739723010604635687944895272197859208332669242900515373762325587087961776206009614699455887947058127057493148430641877964442211134132333411279209479269476376625637842884864575034978608571016375843306279493236437679932489234067317041475263973419966652527617069504876835661798988987001833969741559455215510187097430413171959514294056630803670903633738238601148543197569682131493630797347280278538652345468268743492935708690572757979847075476286366254943502821783019469705244846979146009632293786929845966991856989252684289208889421076128699414996828649156611525087635436710391186740974036615952973370972646571832113226409073169140961626141936662940158025858140870250154469553332598825602058776541861634973034836206942140140236319677552895584255462683315051437313148080878750341434080404291432912470508354289797667241112213487005543648846753254322276743434818790414838192843186747838337601330448430846004550288644874952038345614331876657884767337210974600587469669094238296678698312741414164011208167344041378279036458889997856278690685336889389508424194096033657093286172429419287715013063983293689941711129088297488431978599347541789033281989669670588952900844387502728294264470117223955912193705820791839986816367769476024057413661958817676065912293301891058440389773107960631042086669504624416612368590848675556356531813328564394767126961063286159566059344208649199927451577000840405203614418664111897845498006735660788184076117794450961162196910129513134080159965138513013331840754534364376805020517525803139725442371869139706538086718187731608575714332332448481759090057295369566954529804334247248850624740018843926421060373019580629406748184746484064468566707495900219880279293973437225232986008972280944914603227405072739933698236864366817465546423111454911437799092793849470314502111401067563094080377448883679430140492888544258668292407874087342483598602192249501546942632112513642731429176833551324732789371616125827039490958741393921995727681279283591147526878282331109948337144349171860232102045119524773158709656980179290871438365341602796887701067298329525479610478865170851984603546738791903503713748887039026068553349436457233822840732484997818257529267243987978688041796856496266740878429014319033888370084552353690356759455219036804768438247650371226857088241328473822939775711555341409403169834246868930520199988220534250009756784276955067231196701391941496290865050559261488516319392786072965214972675485801409665875688228414705606910156478455522691463797654528879912944640090784403297406442967434148345318351784902361685697722890337719909110147852485390235308471775233996783681125403328971732437268966051048173874231045760302523913761946089692800346258572716286358169771748191038862735895552813372723030021643290866357162584149528088666776732589850666955152664940351262769311687451088403692626709737097186690971274778038057905649678582514782214090996826817140500574929451277982360928497806576298562664991974771475991718619297904949109116041639909977864377078874916969538578612153255262028101722939131926875991948785913268040374883322647779975428025677749159590962490650635737497933805815966880084290008040899121263295061713536504266314660019978869438622410416798152141583408643936747562516438203627570962704075051227821538812335852359128153037098247348369092002365972687952391503151196441913042287413996499655804649924872315322654092443077949196050947140150218929562289486265429896354979377607811049221706642312214116804995569694476848882986247773896243332487192702670035950165642538755735562073812123099811087345728409888238201457878189414487749146290138037733510990190197379499056878919149891013372799240780341346415332130764530218978493322284770305312599866402755708877603555582747902799101551608869462685421294212413700893441833537749884047845652994199960416222501457839042975103822852826543150805572417997480093360609024066746136293006293531271644191536259559458857437864139742100668062503194262304669441784818358000219743804053804846772560413390134450869676096053286666542656959662742298635744889974250021403980648690326395739783674336745242905032305279889923931985812784576905212182127589294301682287260430841945182760427900973544760648904506880200411606963046652516553225353843545501591903881189321387173780402117098569259846319158961462904628636983839784167399742958544111166390626505092543702718857199419419216159859227761216366877878424690869262612842150095723339739263795893333549568866926968943956102007132251422305807937304437033291889094750055044332200131281230915040784177524736727734050019534605201933807723825009456559618452032783847324238514634803154836336932981672928454151781391156809760462205742350226559356897482963285028705555687574114427470351681615371498325263101990730353656390143332767873979360937438868668149111923530682374755623509655417593264030841088013880771434683631840519717346754264960310812773908161790534079306363191849943566753093624666286176416651062761100039255581581177789055062483245579772484992262745690914544663414052705395025350130887452310325980454790855250819467769938956348648648930607655619171461182919821681557599813775713431493452015490077938999009728520014388238029875174532951678175554231175938492605679117703460001441012499639298290916806225606999790425932414731772322778551470743931493970707858191104710381745114940464355771525981286662636749034626025278418968217869166445895574285782214044127496570907096348210737357263313928777178918152616996226857532290442007029664470747061284183384977999854866427205405199140917792512255778790622483960293052148706780406044561473271497680141239792391711106321878207923245333323084390000867397951948257281984362612557702533973460114613397767422115461853356126061562149510278045017686060430484288539168630319572934668914629354656007532305912468713018812867915997606403972687394110475783037712872505741250641141103682695399741835367260691843922506972420526907334945367621907435387151328395213330155761565428604691557593209087620532467488690557719048057653876574332131854832797275849623763930518856789738517830461121355671949297986845155706334756718109850830029360478877024227492995982974872360569069710784459120994420848955904907355109364979604151522943101237849956586673852118059839883853053182555215958932590488920000210931933054425629234482438332486578148079789597728025156035862848992602896417416532391751832926453585544881300420419595047232690735064096098077342198993831477583620716720412285033411001837559826905989030754024748430239649316223453229384748019147380569111817740767177861083879089143219073733687665037439815018896942510246451765804795505866796980867772590147068173414514571753445702343064366534025032429297390853861046868242322088208346243361912572771682254970832229488255297562324638459421851553640023061119728162034573113690072138163041252883019689715162245344313610815320744986058408887420521626666179540628647062384562805336121927473316354166878542062624414174814115559497816840004138269921470367614964466017696705959105082876372954129646844730994506649639360148323518051003308718228608917929437149607640631630478203695037333844490520597791863077532618987843734296232317004375991701516142210670919884498042651346480520566421730704857788840731564884864534915555771264731994286312677081887349240522116729170424799368408814618049330032779291165779981638874887363396338637358484066144762425024927452191987994883400800631103500464916731566447093036186674518422208482815260601317032226647142772713518095130021603738240165681500717831969895395227267322842886781639157848787046166212874875522284430138208140631522836677178078176847024883257758839073688857331469962551489691499955203160368318053591165979911195897989485019427008745594840476771472621641941837173073937747240370136771836771184116580615748462353247928686594872931892244708112448181626909993703679420573159855825657465388450525326226314638350031499162396196335660601100964542992537211786122145734956437384691068110351914680213869470629039900903417718293785196516622742910303622799407990386202638262237620467170853129514932351810922389818976027895122249414818744973382800709368887261752603734873674787657824241965517642353433513889829184597799928663559437526074271779953093212843074004676395965739673372741966981992312134207892243182817592596029092754494738651104283691766921390560970026833640409538688474706834959704282344547269180512944328235641983553077727806323392531641325948398019649661864892883861876533880136521278910238093512958845160412052145934434391432255495784511399064419815891505493116278650032965369887617408750380080511073896024881334044171917541921888538076314214880581707980959311461227739810609573153847889509732102146151748755428536576016201238408980194236560679111774343529933963543938338824423423319734612265738577259634225531918068959475041167059424484473918864654414153146065346536830253698563526525297569270739250050094369589933440198651023257958345492270961741783994775499814239040155923391398041222147386264529772921666453152957099665229183635048169314805505097305622525494939794326087035284136654875168821317064539571519111729862774964697754106073880162597471544271587638333319134473241308173974298852341261652720825924896025227198683588273912159489321544165681808455769335801763081148069793836107244650331936685769749492307272804185936955043000039254707549819905000323694602563477520542525994916646028836235483324000831480839632821700336275153391670726197166790455323567317097337743798615419314312656796261142783318921796115964799826100681076993900147418613827351923183375558631507902196861736458140325431421867747864012227986378707680380335095394318824717943042427249978680553174599433249718507129940166523402730329154717871081293382320895821562808880198401775311537726347385432829347479236714204341997345079581840050187188192462365164214009897823034988453898571083882981273999056226023501653120341282732196535244580228046926187590863379465254586461807575814742223831222019422501079484136909736606326710453388203218803770283853275666181748772832559249035822087364494106387025505776280184751232842567808049258463752333010253666996054069680560020989505558672040764071142884440067546061829309370728943833679926176850849683445983671715049305994544301309892104495466698409599735032862366502856306652164593792567924602787069811368506649727139510916460782336591865557992440928603333009501347244735591765541228149419175098544461600169653676856557286730044888488395733808626271435879513627976440745440248297407658686622585206542414839499893077779776831936738833855401153050505809338925759363938954087095661363407107143634874946962683555965157780309107863263447566878870210179757031849626553733692896297472865201272767391923945097243438079594133968105749101980781699502252892207329523536134725808097415708552322642477920505187504057117968466839659243272411702891318777856222652939830749622692867998676218624517895467914564111575943261442528535277035693982083266987334991916750347445890248829562887707879279693284406035157589422905400226845570951983203745737424092354582051447584393881381543166462032741448515900363825084725158907741620946158574517144493094561288738408095393185978071689168360950188417671344762869373381680127427413294233561931633782445379391104206324943314448202868406652725277749784822365779802418198490477298751599675360317919910564877543356167500277059937945014513614602068283542122480615983076704741748448752489955880454518304681108086193944959927485210858843263047780205415932260930127626075740984245998562528396982061294600709459060064337448086974275906387932146527649361693574930508046683086037509661251603319692804608967719235903297888264680007209581225917328812734526062878613062720773237067954222234401550777714463339263586478832224715014169207829725278319725834764479606773169893123418506641967472484069366752246677383809001326180703594368838514118761013971625999691347952717839328161253445418334466512967341825978423944737200650589262833052919379095689204674538576689763317950984473474275993474312868363431993899281056011152902139497786518988198775445448226728162984354198908243467245877757839626575391211164612403638776502427923860989821061474515935584429851855494197976261629748797878067535214484863218578023280180701730155417838836286667481994540268779730425203749273221719854555040730159611503289883559425434581648907630352281253181955978964156056371358016535898760348877343109140553877034845241678561458756802194549147609943959933407853854154889095674355908760473073372102208064029213977660782407066073168550617211222520789152325492089495581501574127658804086619091795619519327276519550523681176156440264918183369748577455500339566784199003400039816817250806253506749781960633959144583142297767295091738390715317010549343878871831219843125376451271126045031569612171413228703917360413124443792247392085602719601614743281268008199018662670780886928040748718515835542689619431923479038127071508588689604475161281963169853685466284225375849227019399952710279890953971595381881190315458026861802431991233705472345126234163374128136132631991925172397733377060892955999591035593438072245759327136134260010624204025884796329820292794252146544658071303330987517238550632054486408218302033992174884758809239750441633474089656160235381000931753650024689310428988590911037841883455112521359471787688952030990648880282775883511251487011315687048071976187280755381118168711538269601916469674849972142324893513781397027636371218138818147931785734112425265778580395535875583809984962902725389090487385248531525527869465164173526027707978796255363880810927015112672440622730791619082009768933515861751496649805722090355985164570204468090192355976277747520455022459454476464586398680708140097488039587756112622960142538110285107894009231547641309925682413013204439407710452381433643195963845616375691569234954958533261845847745672412023496008899341519442246411371232249101705355629641445177257962990294078818354975285525106154417664517785980563904123878965843296844604475217271957402024792626281226960075356949292132452083318724063778178572343487262415968732135455090869781829793885291558358916166965488940815204339889694788983699164459912841306370922033231154785291554386635525997164614077407101825661045440369042910099577397210927107973613609779350995308796845568731265709908324563422149009765993493111825610022571256974036120144716063626045200502281223042577970260407686050446808172040266629274921490296815137485538768480565634675960111656844668840507975121903754690069236209282430488966083264895385975091257714383586339569640885194849238817487933202519963298750997131861285678062920161934281956853199726302821636003595083948566235052089547177719393531461417251324866466689011834978479913933994393226248250533970564528246028814843965273222237823194062910538492332474863407963245287608795570270118974575705475635737773318866972957397165508141851081934349046035629194785032353950608546897638682987906963116816728496498097529092344909540941656334778696843925095124046410494997108428343914370691800852583078488830613315463729848457442778336209134250334452321912376311928923217281323971206963954254244657462282392162109652148078346257945951256191088501675031955886652341415377802003683345568331417049660240214361809434571412110005512493334564648761726866360994013531395417281018803395426422888704842478259885785992000445884815184773355450768889478842170116927319157773275066063615313733587518755064895868870725874479624519300230478343583501636763835036328826439274386283651606575076987830000656648769840704334798131243921393320135390791050319448806387048565236838908686485571872596103140594052465254121918746312039092749405794454508733186591256571484312681547915084304233500521650208854232860651429134475728245890131105771220309326454057103063281778312863918612825656216899545301335004491321818109048213287649803988232842976574053706483036021510639434164647598378490905160190961364306135664751760459928219969760677722236360610038454279704485602865061976369180381930648729528302024803504706283702549057327435258219119738751306431589897280422364949289555137343950435755589932787744510081447348150480500832861003956342833794461239850024106331663015539271784537477967191414120807571312862519783868180939870164657615597795804942557539754745893394258677596000083776928994787342102639930148647839837659755493561973268538099383697778211436979953861774155887169596376855229580412482217910509816384902766985392917055754875827134015777756842061998590531461042807446715371229553782176430799708131557256411056325189850252278121072940541731217443908869092057053086686326393828912568132799158973309377106457422414188287291272797888227678325666296695801766398189425921553237976732493270497355609682146092554560413640182299622894540339565497417938103478868247257718208131172436065878599865256554979898837986390283655355366202257070745470043637120044345436935346033762631315526546966708525220988182742855215761887289966745642313798733458165697623234745721931023515399419502578685893313149909162063096626498047982103530467824818493913812298296073518054080626138692896293406661699111685092806218953280884128924812868108595753153757090873898782892366660182643692728129595079971067834744604324592528683240603973402979155623498938710825530144657947812263035295726783413843627498359292924650520507045657985709290922790917032256149152508874515726481130300278079442401067755538164629302978477242648046073178345785468610386004276413056086895510146330330988450224543908233726488203459990046187861168890061043148846217927584388666406895696735792818578528222411764073282393112376970925257649582349051991868803727751379236755188919911203765984768744735929281369627422803475730911498374538331263069880045432830617628026003164500752631532624043809446805208160942145121974591591838805631641768313376011289910703001602084950813357184181966645024368599817638178722083840601314499948135972881246489452502886402080669128258495176394740686856340363554366755966378705668710801957865093807429209030991430483655226353960028340034735689278736171201818027744139151152560770077552656816268956486871363824478232252964910939897797162227280180823892899917858349382602192085079404461834325277979927362251033210781300082590276990820004308854831490535628214307136940271504860606615139938443264104866575503193303333192226365404818978536124210990494297531762117885649051517299107622389109295405453777855356702932447447503124056869279354368303540525704028391805784321254400309986478859003780911747988453543433474169494080765335358542119331721081906340319220001222568615233230049263238376049828302629212749300049350307606070749136182105852331833825974137800529980355795080233779399864276418984921319948820335997343801879557846051443281335695155632087511331300495837901245809134428080507602525876761762714338471750902020593412483766483652533757735732863624804886856933216851306207124381309850574569042418085479907790198101075186354164019758110804557731819872487998036305362937937713491881900038097395132360501893043015478264429818097384006182795369433608917581324045911830611123065033894009895152013393068930969035207633141606412892886396524922371972450070885139421318621359502627768145655089288192242423889181695539073025584201845143624503557567130027514025919836700421063673613293610776182050900991997054335222681251351937663511707081794118436221073410383723289662260071989264357333604210905527377521605867447357296214343829972210589317147595932479615408958414835901927236109807048115044211783810723197380735900244901870992951804185084616489715190854840081229506744394724446166620496156534345632403715534564098000563995988304120909614575735307609231988957444453897411724754564830999887474886916034697951098343587308375653126118473473054023351169494456498542395248209071458355927771541283237103276045734816451729413625643370812620201961463611825990431101466161537981937708843038881646370766412634340643165534863335174996668925451788304485778482019359553126917784543273257205249267559379268386546003830657071034272199486859281173517398868698891908627447647413649799074346776302862470806267593181032209789664429396974271710482109759256220648751839148067015771725997746636079143787729212220009548273250331402739570686172390596097899782158747113357847467172021325819197905059484644739259777104379846467895238551588744452358643343012355952899907969894937140340962757079874601026941910244488050046753475084952305413565025390014626816160463138149152778234493798148163133762764216529893924232046952058024246368801603085459315136652396082156076084432556717503160767687628098602652270701681800448337393289396456695549756807973444426019171122956758742684971830999575886277610771748842775928083896974010855316644624728688261351377264139927199193517051290326558061757748265970037252757477119999606008200748982825332676420519282663540895790818915352476975087768692770898158540122449915454395413637608697130991579948176516530664545603062496417837883691353133517290912996334946410268721115721743548073251137739713539177728403018987672641306017382363139032457056151588991900855553355505810935335709000102127130478228409216446389665387864161319051647235344262533947161263068502093128278167224713810844158093951709142218400117010585596443540026867702533130484362344065711652796127335585161335142344232991657077605993650349160003630249020394809685707792057364331207180813865546241145277537399240655060142284061342468495088348707380773915782960490973654916040958063694184759156024414531167694487963948988519869280943164339621015436466714754838067686679509072357199370804178016135634681314475833982451775994665757460798336725389834577343208402434768853562291937280871620167505770758384034145238599296849228853298033486318931789519099915273435500297229907375959219736247790726791019722938955340965005155350223351273444013507127940486462672024425958448876113294568873028872705398803700375079577365873897245025446372104199855975627590349140261625397822956484262257448387984294356525587765891539517897847990682600271077646606671316614981877887770261339130565605974156108042295038480600085826899173568673517795826037397358914830199517922780376869595824995122851045149496805782569646405752442140077970470131523798988423337767368828676961389639132689937577089403060472699474112161545896455509877537950017257125721391018169696443324938231135333064459504559679906855491754278789953638057769809635307399279868039979969492260535216188174028474885883197822492350084850070386896879232459042073928426077826767073736159109773940450103712979959974777081788116174100434001752250323651029465232359761668268778207879692004151347094031951010609951884589732041848161642001624492430506805064275285505858328946807323718683826606833628460909881093365474245356576793070422684291281600370584954854771999926220854121323090013388629723115076873547697354838854063438573489719965565365602846484345292079657283271648487194644313303856568704239382388196069094414324160643640847519282944684593291696280751067236329685658859297191878301332778463996870230998635061567668284805787682785313250578218215096441924755402686832399784910637906416875624701749007525476355363130239261150078270951051983519347308067447397319430766323494049897255606339653966820697639630200555439213063925554987120129693397197233964832623478429005477471951610403610516243210135308667456921026555126448056780273962228925770180278322989872976337332077877918544497136257775977492380098540173233036957999814839868452120373136097295358978963425782956238856037298631926401851459121365142143977700048213259763233917777268915099005400903749997292678808223527836416043102201379602028744766162210459791471660580173877041387275975391456599545808131728078023474069757397420671219080306182134410712552662145655422701092124454623421076904733956303478986493826133214815119726163533306060663788553254002889510159071833887137575932681134701493643968122166954849865953219072662881146612054474881639744939729734703313025213938154468588484534867391530679671612925332493576385645764166288522002483292420635449038923623088538885049545198527348153927512577312956745467702095877164218517800505584042440914479387234924395639843931403654662498902775637533931183994922083029637225524163153023828402838384435774559878171231406404974607533711725786211542096452138780930777887562084632452217175061447947058147682630866279085613603785862479978721950083973455640774559738773791182669640913896794051182885013212488507419106311053250161628752625756354693638554468730684274548959041906862582263513004620264238320543297778206695907455979920554187455711596156067904053024276244290065085224721660883506629097188701013003366590536232574699498545619059616130236016630705562242843441304782131305295808954877665582676286188335529885874880412416851664594207623257098422211423880257570110807299702176210560933465275363117940329419068238912048825873287104990416139186699598221946344401323715296900680576414703478790019636013935052982970690502002031140348819368612225108552000914623316447011066226094074917621027979984893323737312442976192584142906447951741186103067480714464052348486088142967400063337052895543613629398225302149697700559936122558130103883478010504892797103273312149630847540324962504150892773192194661079543054061346885792353903993270980434349038339610593182525377571369705776785112708639323031633289078754344472550230145227730300481859189804011620595955264487606226193854592752248979087661358730138482469440499394989399430091278804022391085203068306630202021233511458224273911848797691077858417708417986547098091437911069911208830461118475551935632265519338464775555958691740272965909055809982821195331768230462179441253946454982837000244588015364072107239392934257072758409447507790441090066077926278585201944534430367596876728526667273215310249702681457524715767739559314967599180129835585643742834565623408885875349001729912629993757409524902081731203641407409088209953629069503078787426786459086587068981782072638098743506820704398224452983038877021661387173588044029202689115209052022055312127761398763838792472704544399548416643326945486784717031075862187424591750132233443780543124160672905846914813817968270871351926201361804326461098750162347200574738070050364937680326971754695617166987329069222630931359231079870652846984324361348071757923368730230042383180672938168984161561102641373635315772048155666876957702039039321186077988712216365465844595857783189106513850174896903555040325178572292643707778694801264153983475803648467000415686272593921200487367098955268385153447991499689182685750705965618055186122274429258852561840723649497381647087838869616498668467374602258766921726401271078271135139680093923734875695506073856943482251723672929653647607765439608201220690800282699032695750726103555331988882666225830593556386714451601346881776407491612853224742936532791160863352459247767689577350843186653366874635629819898478564410432787617068967404803793819056696573040223683654190364338510286153941090867082916113198357601395703553091800600035259466182866890554936593816636875564815655747567333182235078253479829596849621404986586135550548659223420171308670559424285168877396406762318704377604080367850884459739651689170315740647993713004796017313649136025735999783404823380355655197062270022517108707844211445199930252776080592340998719442128279551720349154639127319220519479356517408219353919883109325193412848784196453693405437645486817491508984548948884771172553088389124439160788322623658554115880228746974771772398360255422917930588704805060768364692143119695108573723449929757874990933389501682325690881004577968023786333686333081791625606514342933232931364623807370177845432388688113905333012427742056483796908415610780280572922598937556540783019131427585332916261355861233387051933390079017864579128084323207640636246795548935907121778786740826280536849604864185825663502735577181388696136547232609138393321479947465753980493189048889429788800410757114476847270607243054759979214797426136550199858036890326885835611114323581855686520760578924393593660336386051273594959979086769920399353668804038625286758345149912453821183964214058730294158221007348443119892496170833693677572452510959163456273329941779013925295655275183455468592698300435752529930314386681114077563253767210086280571490013557204148200601193634993033813246294893413341062343179905132127045130999788953838161326074691237619258379119159583872095624127318935661206055618882318581034911246633766306910635257548174602995249064150766319387152506957937014734722843648367429090179912988470307443094008035688517264487679057267187742461792402837551882403894460825413241448164252190068790963376523710351270225578897439901123442849551774443839428445497820317105317343248135038387021256887630498232547157637264190346429454749798413014784926410197491761699824680425818131184401425835341891027385276740653916604458221758066261878304439250902340998932549572988188974701404112453679561048379461589935243869287917478568303542290374749612421312388944126319079187355420377022379778879086319279442221031637873061297179747380234050278387442529100871926174547462299732060889923807179066654109411229999705935367126640806706784312280374326009181191610382581329090217002955791666686411703171764405696925403371690087315842781183052134543075863086084934174741209842150403140225681226106799478262170635795017997410582420972707030919295527613121521035571892144633904679682561616789450236748944330714625958332202592553886654438315256587439947877642596699394201291388178553780713212058230285134670790233754941345788715111847728510926972233682371481329181361807730355259778528086237101962887366850389390819099541963995792841833376213260989996591095823589890095303692954381447258238701796487117327945844184689995228138627557647592302884264009192378124293350245823456713750730245572795467334663040728004600381920887278957796828704333328525642783291575622085113710271288021648184052623234036318564516767304721218383553359414043707840272980490708606785048301637909029294213220906605291570655926819167830553932058870499628306985994398259793534087862585130687553000924509524195532378363106687090627668818816255982109773710926976752131005093548346418033823360515151968194798711334255236979485739511571867447858501700583391356951984992424680646646215515103652825220159561518710876553156736462746982955694152460035282939881862018952274751695137381770198109329350678312461334368460587676178816029416419962661498238848116327999039678061866726822303645136960407127068822486465095329127918480285521122412805877942295898675200841084380357979301919995226487568694193077199731813677612688761638388946927568294960727855404517587858444414258557695178671727648699116289510517338210529773637073255535762822900326632600013940727794785128900568964941072976851658797657405152841463567501631166783776442668005814892090884157682318279135358014876623548209921838982583489423539479058952186181580744587829581748309328689285586862329219073962608840424591008342652864900845030186079571065332370004600935771459539659702299643367354036555407507938200017200837414194271850130854507989514361830556958064422695219787631826436880317122645779627444124570364859916725731261939315800419497343583858532011250975634445685494556344066566852923866430847470882077778097085892065478435503172353734551926369961445848448852478798921174318054721111002845612335026910674337273156153967875040202828915138513987665749729917856098646895595280609349785989716093275042118373492580564759891340648486201167537166625065576355320861422543238266214373005199347077021415525729382727467207551008573067334967608723624160283407792992213029075408811568356926088172161334838142275551538049855779269652888266287790052078959137031000928159439416665386491720193321788733755743854834734074605113900541101733025541825312611429781181149876402066744676913429471913064939585112469081940898781591658984550577568759187055535344752519471608374181111440928347242257634105556613463311470710255954148833903801389796628013874100962761424402852699340195414959068151555821378739229866043151143384168658450645538357552286342575865782799188860709565672929360291104666306347952705761611784161543197494086543017432706372647435508227571361554160244828267436605586259886354863982687002084111369391281212938315611841201139005788345928748020027982517770762855119111806028014706791011070653108244158345236957161808062470987264788878144625727118338367794983491901273987021863240590792125116382995585197308576854831015924699732167078569605782785364579720711660551371868028875710457403575663688417387281549881732016040197593268610220686579964306324102756324346538650528740357662881719132509930250885020418590715614107527004656834757575439497820783394764496339484706494999725500926107344498218709269892433966602115122858719601073532679615313428661610754113344603783324154813618099228677164205507931630346060827108629636069549860485583566867890354685710102240573812849897915673606118439600794049413180475395914498181841317011497630879813426875807611834394829685999120980577946068610974442393704754008374917920515833657644473229123691760043621940574671638286476178381284973675267244414089519676762816316890520871807338962611553360433051071740593268479200713424055828185023115904334180371843051312145129172337185661310417954238953840816133219827081301789959256805853002370761797685069512419205457227312981302423746908493386717656776395898314897432197554118761709169244323036648805066784866523820405930081210313133537645109673771346830996907282076669484194774712596450941317311856150038864300498350621610610932065604004554246134097389829452011228170293396178957118822162193932471925434639927297846188192717350291602558759980487460544745481799254001591146551308570986922290789431313628939859825835000416928918195597757526581171529631988970500710530211909576729246397663471957995928065983380176000948803790707018831549981508032996733444997121542107775586899987236650020438889985521972946691623216885275192483677879929056017085882536170572100602306097934370031263302134522715841143503578979546752593114966134804635811222378542409699025438897077794257746792363594944710438299260014123816707234863220968236948368308288996701909613173988131816065316554918404330996100864568121895814122926624700332097271781122440037507086144324727061805202912189450592719275204883545046092447117483389164288484036806841967798641309650257012087280290087998002925697213059904900290808113771340936031780034156354943584708641969657308145101721213327615006456622946523067177534993359661685295520806187922840051234187512842521410904954882108339262502055501569980379546398053586884948023402814224708981000713718559588656596271450294508819980193391148903507138816129992742531088686107110104695314109253231205863995738371685271512052376967596706721781122059683672330361817096400201956204896308381945328082450630835513954207261592329239064585603433268040925445254993962875476787169619979951883398846337977645076477981969627246414414073275244020288391416817696108161332250764360756425392029754046625084200824804586560238674275726989975033461469364834207901122678154728026278176174809659784091476741871890751479228819083427075114043991325224559588676257366774337086644311023347614252303472433377978470013559865235315024492020243656133479110553748068981172997489667438277487473706789922657700269627956686293844996452844637100807556704358419199155529860796361606272465518332867519106994097784222390626660484017629458115199842827061154075289375617939758365644852455727151671894223106493200820561768037518219400700343864848093323242254898736600756134929843843980423373890933834892530132132004474243392588363311419305060395669092667822338908863999017759208926333249183867622413676077642053309772196545063920314032722321249769334886736671212022701264437397178916957051822114849513944686509807369240211546093488036124798345936320873618417007908604382390016277985526699675170999993554708153583256372605923059194831300914566153280561487904271378898905497602141035487899706209837467172432021208925048953036860616645065109585901841980262375202000381109418386646347562302722956544845498752765777139273954391550306164556482000646804045380726485706409768196315027945441349856548353486551498723776833564031634610270781045515753315800142778981479207372998771850479174379031445444459222518986944572390632075862806195780201727264577143274021370157486183632124173362358001183516486741270875918850757680658884081836537784004589369929030658287016799876727116164705143185867707601579120675375982360078623874041034709739287129230054663406497692842867599739133239327734754382884182465337350354272187328647083703808300202208509554511574810037322801471377559815980146595317140380405630696289788674594670783781736013703987938048936746509173557266563212395276881402592451504544679070980169588295679083948010252847820328394604359961820726420280951621330483128017391910422381082237623310900924600448375119261497142714605676980372282394917339997769878140083207434511275441518512377503218791666396737227253309825390396001242154670927355592185454414173146368055070856964954227301347038192736328192364178922815005203883378257014781877377221961743467457283129605019465055370440843603719366800002868047493409561883538052016793558251084649091390133883723746567979837857179596351261426016549324133589996879458309636760962718106624753448819722969871929727085857187646984248457718054346506065643025872237418152377243027415900715648154271894896405780981059998023626422728174304298966106052491009747370027692327681441515917354311673782097750931932759006091320919342093313985476612209902488927994901965542881815889736316288847833714568892342904572975359048601686559174709017479107083287396103878500580356744819626701719449397562898965261410039641171406570742043699753198786871101867917335955769320348113867494159027552339569334016640392661016236127270294004666091929669215604312946979481839968748551433226460123124901739455070026290009023728524177967446582599247881841544666455649715492083220261314514593256613749386317289844700855110477891916948584929933334303286950586603740638330411499939679361054383362534316377534485769306153053451814245483864337595712623571208408271134547630667089683161961280636112903249246943272366994552280325181129461102875719902791842226736884601529868760500516170655617003844222464803080489437815435016270230430910042856819632422613658106861888171000169389694682626954257192610947009819475818178160345782903066786595089641070562700105993643143702384351608913937113450545275348051332762617226003758907090867100306615723191181495874280350190577740183189029765137304387492369768934916511528956497968598361107900731582993179405923046468328196233409647195048041486362186265841535706843137658614549714134823804345809547905358291892679771740759782926277504626055523400365079907845482625429462194345272995100970479214733003450745171823087456986815731707486412862900978445631040265748032785478355777690235712682946409894172005577405029237472231712166294305113961653218215307294692688825773499931489869366832202894367522388338252700790454448335175652254472347900905411791769128235735183339688744189160996495195533863579786627847209589999985629369720686210663106907011267360423114483309413243610584290572052557044807695601835122265518572250039776416283237055602329251517677197872513872333669429037293690009305466594831346784125961533460146694615672498127096141666054370278629497027009488440395150093071845343221659123092603550081492337814646365691373736919856099178296549715629879299061559658547574970841533318169782275476063449780720325540602845980478446246537502801505281484893887791001870096303610854766290117811802571424803919579750362967292301142965387135351887466524982509320239199223272464621262010764734563729898096686669485476827643920641728043412652788277527311765490778953717760308867368305129881818522152410139672180843544836263035956533849638501540513263542732514702076246982333906674912141757810253623226166364285033301903931579921900440125724583960353592976804678152865481100371193176345159479354773847262796278748188635794805492995937444247353632427775663062770031503441262108473947886127598399681475127486709220125710292750699691066171271689893370755201378067409395068564857807169624794475092680602402651500931396563781070863866470468365224793265391369102205747012617644073535209062111067029841905735176505353153867507771160739033237183440821607403893185642485876266127247081921348952028067521018751789736149033071185537708992678093363489294160496441045698620111388900927419915810031241366507158051751656139990183978306122548035100388218094232037874967050402413449822772483003738083997235915038440905479874512836695971059540547484252259811189129569768783598041280792065264569391583988186732619533483013953204104043916276157538215055781567994456354003428950676141959030720962717556462570582268361471479306288562950276926653843344383757834283248688203359365550736895702762049721371982727109608933526852427139368756965031981921554159421596058988745015392615136833034041218878202448735700475941994698313744103711857410340804264333562604896870986157233892871895612812670470602989178996916669736217981293866217281293836677947720038931500663914522957767792774891028071559893907399623484908942346427255074051097195751885913648831102414614501944367000217992448130014018739662213570699778563690636943579978890805489353510815526828257932892430880807965831586288388842539418539741458897036416236126087242849835707855173204572477454399664973303844193462162712381686049220183754541120597648111597249352029492441809544658351998566718748880043163258332255967956736287267249490552787341827457496170161096393838408401256083606948109687260765441808616598937455846951345594315709442052634501021990443488590516300936098786496530065443442963192772993096186014978932562436462165118391710889309239117241680080192026693636454834886614576952333484952446138764041704447523761001021765506873709645668577175167170034543306786120456005541556055186725143627572245309888418775001911338533597106287267278096198046068462613671990119031329823890795461256547462345017493923339937615884884494629627036773460746604776547589243332149474968403270092715069891872555178624920641054161800552596460791119184879151260879428105512026898786680022640054846117155846976069450258670057814537938743241461596930171232012038075781655050680432808485771380593086987842861957803591334162659195492212514227349645346871818230837826973194539254888128363548792319455684744084362262826875792649008532147546198706017525872139162028275112095814584917161334818911253420286961324528878951759980390496882597625583570834719845718641310075198841903587651184207740804243250849707944860875778634748235437993083116130497229514687908457046693749395336791096776719143252791795286307120162389958820348816606754054407453131088403117123966884852086252051188458358546675368521768888948964211790682969924513594066117845864932268040619926211304628509964583480675322364671999556590882819155821697464470064605760222339646923989102895837388993993419034212126117629297069248542121058548767534232175645901004250614586744023530286093132916665486682596282936235385275803496043296445830542611746342605831692962897236955456711353007146631163106117863581801416266183158548194474030149416186708807510169614103064629704776947486384316754407708753044122484724215746589785199179461706341053281258079691123330758518007801103982865036389102005534116331370151488762089216648891460797353898647648082548584150935462349073375199719680331742656405998206765955125916801299121967803337215873868833877702717097318636012199432358224838097047339750313732740706640113657370418620306091751189779149438691859415409924186560429982517848869173833385239032412543323877199682147337972673972403525589180951106036715520524469446352234065456454303844390803569296734211669520495488523336558883585730068520450314390338396781271674284979504288988834983300189272152149980243455152312422298132602456308738544224082849609202244987701945276566490632645946582806118820985481312575838774187987489798370174979229997881154797795829871371620172519533575554307930953275318830252021903681432624110536629540849196610948636051502990419219297710672791769160683657814449716041783262394536737060522529198974841902106578617802032426235101667814261949171976745187640957690774086837638812069837724309858780620724512228214388453809488038557334615863065012181788371689700251697248261637677652459281934269010305129565889714871948723846938443318512066946685030807251279486279296092836679731624995041198417833949870870458343808654989322150739617950490572702551191206623720796485550225678594891564283480643693478881835688092327121060601819208274467377387031426199440181492755947421127966674374579765894714455785301647537505989336220712189670846770317463940129475740548923847000573124887343025235205613498925161355129641506650646269507485298156534350880498297362107917698132216877828174225961887127443625735222182890987661021460468713997386194052771806921023011681073300742069576981180594538956343840382130505378537133686693738966183502542806662409203077268857493734954014499917713683946895641338600936380595214281005099240555972577168349398226835103262369658960885709766738240678640630497658824112969508409138762264382710400367883627246260298657020810671362728395178309388557943923329455853152123418957848611675240143457207059220254144970096865428357871612906753897990696296739444059853292041759911997913028630396010045945931258634243358143068928421702077805830511960124927746069715909068611294143537667868926739847390952392185708053002223429512005785437853295582609695395953950301628396337124378993896811763745780135150757518167676134269154243039604578164940609863168841782976118532260620686752368730909019930499635200397750960572773901793229427472144196749139365411491537519955057595063162952305627967767600356045612837986101251110581460899126760618842147907878407076037892227534018695834755273515461471444001778433823101497499531622370140377523103141957796429532321779299259241227247131069131120571960143139130567460005316844061652665896548188016818384166731838933993841328669515566017618458050244442847324291957210261718175047519889232375160587062865029564705548890968457322201658021862931937594021909229837159418785114729718788250234838390772787993360963112883189523625912551043228670387092707383870107433370177095817570799536955024768106070402550506528821485455953759299379963765343788962858474790627495422530235376051440735386944447422463383490637171049008731041463418765526565126822971001314801422006791338480700054537223230594146544237729172659783957564244386849464108466415524165716545874833532226040757135570937810664091201413761116307503228283968319838388937344549433639407555814689613855520740069019836237280732938690726999521062036213726920324984705896200566962071716524682864570002594007417259797942599902155604411757527724824010354373678745207579219754588094079735994444299733194177811933735271985173987354687722256922424392077448446351528938572484514748196509180941463722316932480824262084382505717916576321872734872037587956422633504870289676578737917697932038219375970374417037590176865483780821708680130489001953265929057014098979181776030091603022134410033576737254804237052582767991425569169477149501471088138182516214523200285845599512019207686736742803730434512854346795745792642331393659797274204357707600444852154960343193313603261330392908571180344164290234583157233266134959803775113905132711647603406740080213351447804208164857927984397515739294321366675256503149976030759206045012450355984624694794453692924929844755812689745220839731574883932966044037087261207157890199859375112944665243846041515679045642122743690033544134675358250036119715275273214981867196682646596963487615739954818381269930375979727546387017478684761255043567407010011822123265255165324215387773841703532308027123059370489050925284871789378853527140399791489560566546342343170109294474823877188356734731442182595522989854156034906142327579347817671849136235709836842247930158006097072698795720070185369714597963263247330192808650950970737729280400204891599445360326642637820263330270784507905941105392570812423458679957445781914649906469016173388389275518013991393946289596168353144354704813184340200672860200308426402001541818570047600339421402343914248370577792880454078807285815319769332791971431639339492564967150384090169673815201336675276159183061961254100417017744601926878855120674989427093673378137942691280372104712804824304121491337620548795556835845235602995154962295252975159644262152902242316461416042605731167856623485719881108782639297497575871673403896039488392236495069760125251850039705945193102895487468891008570898813220371184040340391904577866844083386462077665514209097144519266135341094502867347211012404886211640505851852699570891258229906855301733726349462935294903453112617232188985632652475552467652219033992243809562121466891406991706634702945208814298715245497691084247602721710855045170431981614197571967808210464175302143302510132048743548345061141392655207239524830851566640077445859816605017007579355659429366496174011442229720778345663492030496092658397291662602621877622025134553548739494174222993824549675654586338214631681609596974527363695104422426862318465024078957232132852801928376661410656610384735239459100792001979579637319385008612225181075037321164193944825489261513471842271143609239484459289052904008971846436985655284159304746488493423880255175446828766187014645346088305687437166126109734263262395364634486440323435229693266046245928597897230365643668611384605475864754963084816524270477963386395298799799669818694426597669527710702061813336361775695260907874637692877455523900775221733171794647561198570356299301217028288923688804474648036744429356008844278317398366423669792336131962006804233353335209021987803525829935250867841686697673538419616999852919274051925309968634643899753207672203735148171635574249414501904081001145799448231351525668675514874540389301170321063725704345049457180629399877031183637064930369511041503884033724550610544315070858958143834998325403882284620653851424663995530589861102417037034885736510216900472239099283198919308482336080207989209566965461550255101236265467784318622436360986582230290713656867589649678317390081548496256128781037926617673228275807899035081503882932417682582076913544865364856687040637669418526336767462082782473493929378051574650089132956689091310326384016167647445088493460113388475651939024503334855481727988003502181841489681254661347978853224248918105432420996914475386189445402016025508390179072895636073270729465949235899671943916939052115447069339158444586450449937775717471910231455239781529598069174752313592967235581450305919098110888135657102982874564251916007673076755008162532192156625360726263268705021137989555411035676376013705875800219770157440033002378132753986318994291045310188305306502485005958637938218949361868211087139794149424693702259842118834225197832896585325841651980393736253030569966692320584196927863294656862382929144070658393261977373573522983176568757994676493933560900667292017075346779981663270243650983671101613206318363597454179921446960016811350973761731466247296000532794525407549656744122424776195210158038842096382364766696157287149173226783580506709802918563920743031587340147347945317490860070499081335783446874268990259535275999270899890961592906771700790402883073609831619542800765908432716650639787423323674209164778002672066798490356887834892780889410249116736850895278003029334595412076823774161019614399144960083478259834879163501810746046857844593675756104375876539137490215631767851936652853143444073415050545015734250219084674810517723868865113216518528674548590285701182596560867177150810992355519562004491743756520323100499489439664211001448646867467493762414576253775266464431468128489595629145433112782722522635018487551700663800722815685132295098153807896080950877897318251982251870701919781266638280140621281350489860285513231676305957982423402276660366879511800551455279493251274570289879808184490991105982006688760783091264405868962451360584862745423058333988770895447385895299144330904625032854826643597733126080867815276203972879489506137953790655009053754109483490511825253030104297407324992814122567404803882121090991124029713933064670243432963039845953065180582083441061235114769432801944359266558931692360424006902523933218760541988326339799069421446166431856984928441562228228742509670731800571612363391698630663432946571017262348739743126333165955328218584806417245999465309296143966577195025639059827165416381475343269636309365885748034951671883992864355180561597409285525605258241243911807834584558619027650665082460381050922822730338683085322190331240541813320912382113547140650482266989104124457863023232537157035786810582249491384873573442682794322582719380207349907728251441132618976491597220567637894898448957907198102445045939663009044005311762201283553044151748721865317110981266280517900320590410477854012048816485735993052924803602854761220544595220399825984284801312127686704687438637169844919811347475572622114330739210447063858496683395943330911454839000163356000957936095142408987682811899594830918516833106321749046467512424995617283027553950630089696148472329329316177660345805726132865276914859016751780334990789748159214047553718299854349855444539928907593774883991491805909396103758223968070680201691703768813485210959350875864643135426879299361590436576270137688932328811922680545395307871027167265312953638714499026497376320079408086585259974165690059440660257135578634598819143080736897215331924173307842802432656310755418297180843210426383367108392454541517458733153836843539376131347991905585902444336197484266043524997768720908995462513127929901458930777927836200869365136626374610214095313898326834959140441857905272793735578355341301608655975854411211521064301839278973620338311608752357542680378851503685473615587324129042540125299012624127854621592780100558435892445652803799955137948963784840420936688438969031063421631392663717178968904571717143418232387140298959831329203996146287222701827435194847961929349390253884123916938352718590263892045545041619078127964050425839316268078194240253149045126406521488977082623029691254166881660710641482369719621671617731119971046156102224260093049590666987211391171216044618921155070313286290781349513662307834884428891062296712379051642080566013321134506308617445498402511817935399641240958116740186107631671953873247368222033776300109080411376077639433368998499026411308536746694589228967617209195600609062284327073946734461827894937829311776857203808098137978875359311348432938753399834849885312568213054524166952784534065320445951486309092441451325608136409147914350814647074888492601677353150992767463660154354367247918445981529975113623822316582587750556267821501977600141046506575888646995829853239204239964281399953873126920468167316947319152927915906459430008536332392919662745735692441634998734159362652005965002778978160764911483987627392264836383817639496789547998912410070943437039658452758184724490117305350529668479074609439525726899651700041920435841613206061805005591475248925816187968295854438533099332387958964904695239758838720994107615504588829101795247085879317877715206257531454331272676377231897109039489588019021100284645407470193183063172427257636416786485661126968115211003558620125921388226382857376240174069390758232561264168841800081070827532970939586285791258152432416006640546621904063658649955971724485210968199804749452316610902729363593185931335942212617666167289200490856345779545864797426156918279373185491133178604926601824533913809124264394616796644142738659324935814667974745497862784391721498753045176648137671084566738293477686987026870972893411886787733741355188111220720322661172695572709477096566264827370548223576873931595976351326730780452378614562210728746768311802993542248230229642803515066506866579696823434524769927557050672779008135663431040767402926761723963982165527544236482434203583903895712816838172117998174952696790899353345545433570391317915918403630267190673294795576553407006188222467033994231737558813445885085873882003122183300574915831763239100019093322312529144452644132364349593700304630701700888886602452148167395577226038141653420300610807033774952698075671780332949267253449636513337025960978839365691577608795390309899663041098085983894406793781981816094391708378952597921645611987058695020404399669174807054280351527270409425216508667812203968707194372725591345420525850157840789245994461900959597001765680506883548379632091418373113075157410184181682951084079748499048860586678765530077444287213207511479795635654177939468301659066635755694929021376298278148049310658523670189584956589654218093214964309132883839437212453681262207386029623290525882391355643606670144994293458966975168543926316002637333651187715448696380031460500868725369624429698874474633625296197821039088263534748129493365947136608067594271915168022696583402087270751693385997505942170699088564299493671078914885162056256905946456912263512905236567980225989702720251253530246874776527575939097777158530749633334496086156324938168253691516897437367634111766069911015970126437134936585582371949766533342380269284702582832005575348729295988019300338002192221647733710999071074586227731231426972440348559601596061523276081027572514695479044868807122642193751340891382604206659416068626697976023209840783140197492631850291483115564886860797273829525727838693501175931124949305437153011073154903876144205313231067279070180153688400527360301938589881560103875887770131877569693255340314146585592470665835525031865027613738108462864843271192424905992493514696066376133948072028052877307107415022188721312745973226176435797566327258797695169478369687010080632123713829645681544475996456320486628323972541069003077438712754709101106434934464397077932924397488747218865243350208349868969705527617884016744833824131724692666693887531661144860388639585213002555048511067548143379892041743745149841360017530690915815555835286618813647578423234675227346422069952803405492212613610348467754373104428190538133634878905541562005996885457404894753579779858468928969498048906527213378590323146374020586933436714475180955597674789012303557338188104466548037460962502180310017665319455169544954424946734126990653096006876350171376148010876180414404062597473890559722219763032937117437374884438893061178107241683058382010817904230327619589160087097471893384617084674254742494420975614666910768899952660536062240013205461074335021784455126461574796066985219623497852674474545056403099150101118014251206026049613405009479044310649497130917702879005920947860440346152305926694614529755184551573808455432575316668231339513378707548060260602674773389231812129761202090048930350796191235498602580071677550519226655820632748338123640034096846429358188908232780370315515940540648176390934117192764232249871757434779598949294022098817521577646355077755995073674326713910364734710312298739137848462441139066784387183263495063828957103601884543775036841707169078431537844820664602082474695720065207939903835347877572791929600725753427835515220094472541035740005617059102284375457670457572065754355317787942626446241084107761172081544277713505128163324121577966118597297541590509257828862539269929610499820989063226057593823571896033632416073359656614901672656821335163292570403702053404798874450270882706407252509832415880582879350179139832612872666338340484357394532806295058654099745311041246102254072132567324433736378378496199305258726704207642752977973724279028347087745714120524288020701801415224871522100023036041936789929675927438690014026301260447509932410901697154166359708533777789157869772931716290793930473133202792365071249205808384124735420148616477744740523882853171549798630063604737904170651928995465025120694014239981999113657319918761624230806526512083507720532582822783431162864172202529089430694053441634506235549474895603440007652824598255027000946545514654136934230180322098081835919271704644655427024374164307509954901356089405859882867559414247050142387433972357112262897766751965413525107094953019491734977483859544573717764983197591916666402916442688833705320196960981678325049398915763447548370538239866104902578020799247706466946580899465675675215132049781174256458515148279464806321243309167969274073107874350208449103691418677319784789789870250362548738004941691724915569631360534604483594808411404805074848435762021218168248349660932221656699459008986530272734918485608341278080821116457221546526033800270865899156079004340910899093141272243233795093765294089667989287047574840494475968224539198797023018584783260046892299257583108125908807914732777496557755058635447683549113664735555379954872318782423087880317915177268468550138338431467093704993269720933486496451977232292025113998236034316646206314576266532334947331146833156475664211939809308035028197160726597016367606967474378431605863447310297540138698205607741427952139657894878495425319411678540796505568346522711606657187278689938272232180743651788242029982371294689427682653243761586710826734674702685887679589035414357123748650964037249732204750547431999932350670639704585290206363657369494842957886875304304236543030403874394871067242525015852450263968868562775898808250783692784404221059202067808615959830642518267125895696821848862694877190450900716106080022729525187249081384042795770879152397386890315899234690767475663886177985851968233975851685794260588216892395619402298613842624691224889239410992208625505216432709347805956648416089051856136507632223264487703989295172071190596257190098771758564697286609465033939353351653601413356837308609859677972828938316445281984045908194253834464561803374435495904817552160533323498873264689762831266451931011905038825943184855540303087025992547305251776784987630292751885573644263867115045153140680814290112392868288744103269283327990916831089904958915433666290315886860074972249435302613103288774280792951164330504937207484569532684936333414990880458133064091015558272676684331168396922088618029430946736464577938440466364539449902469391235184852958653504613510608665399587524017911321433003870193930648965518125188686696122024829223206478248758038850517204920260556755904058169870519337845106920117494353365309146722981831351864014534537681445371453970950885868624849803678866356191785290164902366469725752874191754861976244719124816686314523890082439467086493836308742913380092171095880191201482867513945260789851489198225597638155304727016796010847948804710344296461652440804410086694260918742145259328358815131306366334110610184891902077817511761333969646229081457188358317012403390769197584391060845267388114338923911335752092661018316126384334757071752529641786513262448853952786448503941674666496231893211167063437870832156554234067909876881411121956085735151952370852234330897527100760212461690208125132251268611708372940982767453383473502343657298290366864102943430155186405828988962126958969931221375149285347043354040345171697436687536355901921745008991826427549361609882647524181670050533444616146735178728427118971663048324261183004717326904852584873697847179764272519820223929702349898875230863505233180230234489873158837204372953130696295290860782895115910497495140461393378374439544397678188251744516615145899583043686828474424624707443847383925132378515498664520076342190115672425218957498567786352115726963034221489705249367964947534004800399582474815232586205408878395924994478958369313129690145420966309964509842833475476858172906510686317583207503081910448968407077883338320452674911256864059559778217238106908367940620076871663570927815582321538332115919065882605431057406884562492077831337773034503140280703568940338602330783753056445063301290501930642423376508456462714052457707543405858326447065461525133873525242872174144242140727333084480241751862550367317372047461557274278196169988594440472269085162873890969174294442203836259775402285750012463234661853879297047228841269984319666452272561383823581716202593718816511106538586778864002617936301009086263520722769263253152489914933064262851737077864098452398114130774917972294878926365871118632259746371692975904859989692402229031015191020975023764124850680458440314290031017860404570438765786995999923574890023429126085901143747567207647683247754999342438376195438633397333052941435839629465402076569029604018365957142120513079889496129371185129401918838806230460131796729890934193835960994615860546754326652090259976109075546298044493077839139174710243555686372465878676828750307757223587976907773927631213985356053520352876059701107624391008119297309433440350576216708721017339357040649299867427723622226340059442555984824469859277171726509182738233415217348498589948973712801080549209751295567480816498552414744500375573106476648046073242810412007633273064770929545797702299779249831315662835585277217993431663807866986603754986974975628285643789654372234384846553269690115994642514242034773159697295562507486142591563928582573988814360540884927344046621472281525031871635623559405658053342560870529957300377602476736665782677070647313702471726039510767293539966728743855867693976317059797756814716440510558984443476360937595756116397022668082729452559171005908075433550207700237396993329173872507077159749772112369963928448740131800630445089742756597958488039820957412809407305936911688197299228881933886941142012729346887708460159810631975564296773392446279341808601568935103968279032993288994999879624318954742501981652374807837380494835957213313259977464713122681822751855812752166511096569395902284684560806896985225244824344693854040371338609370205293784614258337529071779699228636105723767140315705400622437233414874874706350398935265200640638816011253861755769816580482165147669554943493278180679735385875298094282604152191351202947818317616734329191679751348937293321231383296505198972971021435119749526123267319675544019812136280929492940695692273434367515748135515269932049755106830768950007669587749207820143970964949218457216754442070328867311722568714178844557162455584440643911979614220323593267877251233429942164227252012369974212630610194558775071367555271625690089316031600261819801710061709470964246432535724328683141548431017750248021548985994127998583499588559899839371433507324378828142723313637303458317435717745499823525430808282596976161524435213959687651128416145666635982078181121620453706600818298330638736065819419280112901157687519420275451417016223533476868526527133701522581317889302185942515395831677557226610289820121766230305694852893563629631428800912411189370044344405819253640513035560563521551095757067625584910020378603848803786203964495586549206274818530661585854969302155152822953831411332806523441627993755818740472026810252645045026236350894758228208880393034588658904737322824675224550901153238841105165118810747235118122276171671427122426311430321971884874705021516869723093836004427521660240754937472107922949490862673283642076727337838849656753344757257014834474737709306021633757067008589436973716447258211492466583584728244320029383967268802698104879031036533476268747956754770703059520102762036410987065694518707179188917780435805309133385138837487820236300074460443369552118811467936450338648490887451230555531497955344298342489959665845215934179599494000174263490688491965244347931831242469665579709374569994858240933656833792416367437422814748359905421142205035006373568486263698317689857387977475510713960789325195930968540887796549352697805558369002974489965338322014097406136725973413978054453846252559673849166057561499796785464631528754039246753331888506462410925041656568527335986190113298096944934059539877116781609703222301362204315045978874580491225256929976009097717759212850541008249236328534161071816053919968492379894141265925981888949021132716853788328096670130881043868944714027385651655692006099691450489959217762161230474451209113214411061515867285116412875505414587379046062256266075310675816823539069864025664783912435872682804370401270028526590201082153215121343333904493534294854585223416670741442780339198165311227062595144369417717262440396927136048516353621334825201783140008751972535510161999532938760282786859164930648200646171022386909169850233475463151266767533331163940635996451196577128157485512183026202725749365987417389729391629860979231767547953830592254800800197639964795856065467408583327098797988975244312080263254532698940474500954428109142029456207525639187380228687015633372467721605966631475034016128332163280112358295592107442933925956143611619339345409990311314075839321869021480709569778392687485152394273773440879941143700389731101656542793104143514091132305913080338869423681008481364888960039642521429100555633867806247015454109891732289903212390191386412656669931584559470360433854343429154470314486548081352091628171122699099723132231284719139640700883892044270730111436922651520101443332044564227077421989863722391173563319415247855358363858481448995853896782637749078759159657999602737778267432651928732349314378117486234885293744032354574456207374105239385639906151443023382428975869970918233073301234650848990463572625332246669858230295392895360532136896571088149063438037721678757893114409724079280927060439692100397445637442972059715058334888963836749149482872808242053181403504964027379712121944849366707285720184787760603393261297424309353032448459645009208518734309040655171891739569115052321626013572907761964196782034822377611397892186880142961717653261243504677417359682190029673887656267046088161032936340251037181239778702292894178108843557056161234249521803645022812624784866653839961804572195275284789276171307667263822299991085277816019887828674938677169441225269911248234858138204042729362737950527386719024052963944160170441236753978155433977524392217108918803270667869840385735004652059296371643584388903574478076521000312850806001911976551271296895385338472000254735785941753211459027685548199594517658670052930812592763137898775230970691845769286101078954174930814097800248629904832725019622077810716365026393780753352236500064773647733780927867144587772144953700366759973394558982375983210417447414237836284860319242247759017006363130645895252792869533715374024725032194588695725834306727487192167822232318674395707463566318824612128956261808873081282761674238733164321004610501824803756272308918041342715028569326318934927179907885742813828276372920826423963474300328682182636894234597745448142632035466012031927984181164695983680279202925180980422841028089173506058202866097900869167404015406184066678987312669601772123908390902289648873696324158007604512330896328905123060418844599117294203692731179801432055562100443334677625611312192626185200220069195474535487857195731843442726491350196693284614130713867467509668679482281513457330272232055729359787596795015846716294674132041481625048906701253594596842440379667659062620222218383546073479357020701161566218026493723188384389701832804557937077087727236961577990578739312609258677690182252488964746575247231837818471750513234541024985474328960501553610969910166671774238790751139427761032348627999201019630712193950497571498323019666219404379193726338953191216458805183619643885675579228683338008257693084637543146134624266234923556128450431774007277528096807586410376365392484443199373840923613544280790020478224197803067765317332040133507423592389136353669341935076559732938965189025448906909244366127976956825845743981738698184995317643596125308335302464396231378954841194775653284122951492280596361621059247605009633073183086218509588644501818635561386885126700872699924760433608387601428500402505415483924038520464090036514808373554800432776384230333156090740370960607187309695609324617519200789209718575059453141029397535456769354670969759493277270314826621828209743037969462263721957041180631008636556945644360367744405809789812296227054649160885304656454765099746590348218012951245550653081379003838293463226317065330317326880075240209846019277540798938900887383757545972237590686952745835915365556454196920704605073043525698408807289002122584702661317003669263022464898510378845367612512700537706071148416128766595152058106007178804261979298679097343263598914537555809302564770860242445667066069001106302650695216432972962557798264264584201392333734026953190501689623468532208084249648278315696093269229800614964502341584342870306078442962282377796159421160791403096558690007198350089824284001432249244672785884531113755485141824987671759806989450797737187179416408123940118380559109585859155517187629756077351691214379120607710906994514136604819170159168039570008403176432810966039231028191959991720315249613812831968277045552162577604157506650810174825330882477568630292215082615083170760623878884673355609166804170282085177317813562943778517201322988847846838120803159051295446274839680687587040510003019449687796055324703628478246317830297551043417757649210648293896923112757447964470473071188214985586164194689533540542054142102081456243570746812970473315249420797987361071370456189379656679278205597555736463708595611339537147878005123966700489844784544397106959862525254951741028820618662539275170266169540794227173471667637964296225022453610692531758325901076743061359993518052438379646075728243850980794978481222785219098982949237998279422976285638126947115367309766707979879624014794066245013567720169106038248378179276846253877240795078838744749203919607368603712006650996142323864021206845427654557148848257599219154793677806506594501690828127237136187238492322990128918362522016022348631022098899597550155154249194176678287598776132001055207225653808624846980805382745434064405071103846404150903967781677989806904900027021959275663684557141597968046697248337013890182100512648013700370637297144131582512016060393571396185528235645285870359567183405568227487479731303621609624845368549500888283586319139815236150428442230811549288793592065131958805843233402482990561577823195444419750009115763801716169877758572735243854534194610225186389332344293031453657217778997978495769090814495858106340747542033811259967603467407754043333286201839440340740719903242777420891199210785564952218534593126211333279693410467849082737710551555578237037679844680882696632115176355703659412912357714836329079503886474129795181583637834527147062988378202936650330464768463367360461214672366715927602996025112929770334077642492079441630146012792087195590271056417216990755609383990706760397972568342909227670676967346773583512670257132820061832308829530091277190727946544703437397420547174100524297430065887014357673089048835316501994674502243791060656053188587948041949594123866085228816268707336267988696663219438630621071443262673107581346101818531231152172028224820996627587652838519986430653200445668112376982798597398140698395664623634104240528199633098157179134260333061118244738116576925344833109366180927737617131868340198640159034307013038006510697016564684505268109401266452986513270820775396681518580703160486413484264564831756321012738403750710100250443340510686764787294339865493326558362661039876257574933373136455242554533389920637397516821451944965876624485232568796092180951452074223500410615967962380346433054545466369109082157490583455232532015099386734240858006569022818778380335484703261185171171893285719966789508671820726652330390481814994596657385504321940092091256922392812518736945212975315196111459328221737756300544499218293559800084950455245807190389159187232739238446333787904282139308347180352373553609387356561513792481840614462013604742556013223508581495914096775395450476362311051369802579410339877070761558286691889432564759413110050922739578727800180042216718027175843636847977110412161686478473333211425602201273134793001990307525849017243583869060434903364564137224495923402837443443717920502099443776753444335155294308952721280588847180141914931233181645153393297036131104788963158576400398838272999130342736379735846721237271469923359187613463780477717214101199020054595808228975544505017752136781844221702283516900888620587504234191692637491424982701390657665234485077462926400424612509966149606984441847229014844590445596913082753369950034659722043560105266366667614016696553574810568313399602471933796240147097797693304474669481568773636891395274502315904635136101033226667289777347821196698195406437669372242083446075809241512784425094413469155857180237669738878071943796566157456489366729056538271401604639862500908305545928671788113827922042085434880715406895092064297443660341766238512433912243943518831736982209000722783227613999331282616323300176979632130551266574893532498510878857057418971005603533458731085876343775637601748463484204908504837915822758754297373162672319044737215772708378174534940675932508323244789802063055591385828614760312303067170665657953143652344641695880533891982244855337307102403934723007944726158740540429598598205146851654974102147256584025808503325521877957945661108883777104086608671750899705309411576821391535106118737072324082007142083677134007858275913439191187201528970750186215074776451491896580913716453208766569370622685779309978518357227364649731022417535081733485079438321145620850486937141868574682799890451405652616018437800404189965108673371830243011478756876194029582567560993839493580847826131281164185669399968202259176500643017905804264507361858701136492719548669742471231136974323412079086582849279068284575453216948191431479772563715317658494043917767435516096907315471571332493151624591079096227950842430476572640358097615343194126910489681748620540115803354264357863856180339780721137530660447506337467392455336307932676617154004268538303520462197814523698484652897936468903934799894214456969759389750799557417511778516594070947642404690778013876630687172716732440526462885556449561889400420135568659896371804876911242471917209058530441282634030199473417706141966529554676353706889925170585418522775209446082211982032409653469982374499239046441141848002195675055502215486489277857389068955380300603334568015853216714883862134595489623404125421184484387515629000913263641703065282248419906780571025459117883758408824003658172833036835074581010721234631418481762292843577315522509854026223903866197854574841981086723453351844694550877928781462685055219306392578326333584331854186142744226231190136565483859997310018210512072637142071193969596441658592453743257868023531998963171465572478877927577854656883524823276802405005010362711894059210866530524843870318291207144047890696611047399248309763865061766051876626752076577844048050881329906990276968890532052100173047054190579984544147606136327338037202041395370602344379627133864796962837502425656198684204364091533743197471720321011592624357044205387088588494558348393503263068954447667260150755150818296325416320000857749551736427610428790446173553379557154303031109223310364780449224027578302455173741818889535369186492831994398064794830522915248520022536770996983972675312279490360120405397295650596519144695590135245879625977680856158963397768886905423571790578322670849253184062714547099778700020673644472728038572046251928603083297008711072239253316222246441166208268961552915965188805147733911968100459502178563317095518136484113648351486618705436909346335931756693909362276108783390598912455453669776373925011289725714538543786524204643709648862560436763342742528642132198030893547106398615923927803931138281676974394954512593052035635176200783581509083356878176371230041822770957449445930904191605062454821971257847477825630012824240620989830656141467924638538552307690133596872035627189246729581666742196849824338999493498086050949349407849871687175883739242516619305421529035212740729656628471786905368285705053139120383032944451490620731014976064634781832469485846549006949890940660459344127846771288285307736826936859359141102948639441491956121113555295356061924100381786473818995376342226361413378078455120951050702874350953889062657964436471783855662948309505145300290728547482269877171173884107660826820779032325023119413365362517354926171778778435544711503650510508355635018001136463319393527908503909108791097047406757799920802266596511486310307963023887962541650075900064823660567693754130580474783908137195506388812143483541146132755159718985155539959160478446929957756681086071693871151658704234668719975700346153339385590487232321020143271751881864657417303457761017861468274427865072152780162986330662981145419125851229676343736348075237710171126843910588104674584153623605028168831144479013144375384314201072624729917099997890536035844852763144276452944276456332265656453365724260195829616072387597598075376514496118841396815271344256366673413246728756032118136749110308188419461876635226196967619373730437318841375062755837386499434480262836274715858206271437818608384829147127615815054298425944705662530095308715067139829042135996464922122221774816383117552353460988468612593774098997627789881662244433741024391496078216273504639930671115409896437867542470899876602005623823960265183010128016414044921998129535964246603537688497196432051494774835302557532513515163324427550385485418893323716869889773466613003690761691845179352937848178044055615379947454850674000796336171375743195134788265030913893323912334704271758108283110776889181305485191924399971190773752315922466810553464812287761085993174819007445647011984038103499252177520406130826821850054098399468694716534229674902542714674529436877860737450348840619190928319542418004261562158652677313681763477120390815150882774434750476601222695737815303506288228854084608636202064244634237872626946188882428731911534029717497841965921333570677897747299049702915638238599214948167192602303194924240911772648569405268828815992896574361085675981361883715797738356142467212387222178032654880824129371764133646059366994650743645746436854605452551671031766496928826411456939052363176674855663207922336381473649779529739646647736775757849922680911922537701378282151779752218357565677551673435055843763183220093351717637635121282017896450706549504254070274416137614818263345322868534492913325171843969476229778918687608824740457245270597779622626318838412469109119815716907209881972450618754921835385233969067433738064396596796776929247602502109750618170000803034842771589575412643550911933060988393366382706936714734074704165938363859609613006743708631321184652426366826177721584676450455167884429571707304159887731715361934151856670796485706464453828645978184949603060723388139434366714258691648986833515554250509242144616148787435816481803724107676107593015819128412560540828348424498475141905446114462706925411562530148559673758163953195469424196278414695984722054020733953997759607626772591191693759972896678604325561231906068867256488389547236534806525530507218919771581421732502506119627000660262494179742160768012634090044776420834971560757787164391368314282627499219513867334478999014915192959095427462535819635150473971756977452114350288988550578388212807119383682754328251158346182132805301948119951335004682558173178782724447856977323935315652693398434741735081261019011166118522205984935133425452843345186773947754175192379832910568123704428201926502709901439716575961422628069925452465521197238671767241761153078307306386150932581826513185302652109994702055865115808501528773916507051520701523487631760377310016685019857567015596426632405772319458112169899455003763565953003469020448329384664097792627373292703060018661876783526747928274704440851145671536608695894830139424783074446222207573986581542076273644276193452625177891296658345571979166101865397949167939992630635242566525783991026779923599093089083862807496848055374779951267517917157960160018984010920512564757221840139863945146326839345473945540563404704219931015169242052428308154121170680031429100536186531734922629162708034640857870506388083427226513571622646326626686154855818988563977700189638991123883722394341833550158899887053554397681480739902573007609282059786474215329039529236564049007449245216119037490328435813096945569637949110209799926571962637913660746230411972251574519770411722912552193321038723014142722658421824650589253165900766585460642542292707172137297990828984610903048593211816507489397434335724373055437119360534327159200108174133667408745887413242993563136488986622241850786529891865884792353249842320791480203790465446779902934486917543818939748067558135616924750827640207569139585296288034597961488840745054487820699848373342868515582979132973477835227197874253115580358328133559009155484742915104752784758611422182365413758857504461851815470915994464621743925029657320853260331768025572111063659231808942044257851455085851334510985888167784463757460591191772069803816711856026539939060129801305263007109262027740102912293771192204793013414136113090196461878179786496494838767958816430606640377168749265184658324431165553842495774759763750578349309941895152986121985589589362574179787457840407446551154043375601354028569835180646997474682979434767556915832345351473301576324513590166332789550791787126531469214349088341807961371320847383409818841914111135211543549025334463479699581547840632109333866646365102988335078814535736802997960026363217977350519869064424830552640448789874302245935733606663813194042700052737549833566508192998306355171305939429643344149033001143684548741234602459018339539738579754935187896665296581470991990206808592639450853352216249918928844248247213490632241764432407975577493050853271375648685007075036654604488255463156576828829765339036346691459556577325852880698538545883154029986310616786994712191082275430624271638387638140839649986378860802910180671006418768388203802245797607762020454891156999296785960974465030033269408836000928580972587436211624408012387401014098697634937696483334613087766804005520678986294069136924551889259259977849845236788192566135068934546585420860592792391014960486776210872786030448215321315042603699218369418224456792057246279896516750939536101849320877862561164311205880440901877333616200847171252521177703938921265352247169213277735627449065711975901153455236961227999050296519742635030441408965477939791462181676031887389312919550192481428376321134447658054625318582586630196604423641593847975563240244742934182536782539408525815809136225678675738771434693576307330194966766382284933026741565055445181172677170162563247195553781621867932302476609766129442368894196457144890353547690993240596670028860010428445305534877260433932025814482715244701980320870096769830252120701445657398922499485184512429337887118996213506080524086003920157123143547630211908996700206460535336761844277647365337009389684098155440090578030534667679838599137979969158570703260395703188700047148118044158070956144409827131540178988212868660203984674275430610623949998709076135857404388484111244285771365523965662165516766338616243906011305333097528619755951880896457621706762227991255259603078707201038472436036301880778397798284269558139277035975238660433465797831637212109089260015530891495851128193236477384394785483333475369802725808984242230134461775883297970390869256321604836615950460042965155410467868027738830690527840417112886202926503728819852011998361781570975268803803640716696672780753288789495110939767554052108415345535872608889949698630179217762428778621087727846433614537592482447136308492854464575242952036943427603114338562830495271973093503799217890799240885007056614445099318579984064523709892087786472626770047320311151179555306479797767884334675436155606515664408069602867517164195757525708016171251962502991776880784039698618136437057638333558311670456661845333144686622578143085823687819424030023031730699755596645149072594179091110153579370256858153228299355662563436478533500464139088069173891650635354327180560904592664932166389468616802206995118776666870696677884921188591009306377047681532386989322317025401271321938357972697171335386744538402328892107081271742894823645790154594918375069028662957569224934249361785487573930171934880550931602362185253470679916490248431794835541314194528023931877378243207653108917834727720783937712279292080393043560270136408003273261054242686852777786127954487878429541614224217761089232459220427421388702192695565067900613255341282507399632697455548694359372021998211718521317112200770774203002806910680239755996139735587264621546347859345491442597352549669244899443203415374020044346460407779064535389578831748443593035326451146955433156922013402471975933783636819238411272705555693481172354336436527171044608599695657989911558052803564970561924292702832500659295572898589583937041185822104923254172970236461910973029669400068199348039860388080873503695612975655317107402073286702571795067719843920420441877909491049210988060177386827882734036370020141143092710902698076530871193452448058928881535288557950302906245124745007417638454619906709692514375922515930312884647161978415911463617556373167904206814761213623903080045091232129157234465676049306322497874973695704776862375235747247395752652874518520849010577806575592386537050932381218401412678258572221388592010746350671030107914115528240884013742470111174092760899395044937739739207687637280619903286729248229503927698847620133507640795946278231128908416980771906514699509058988879107468430172747992914151717004247962121991478162632847309739220761310389647533339952118631612728428164995804845498068084816708885860407678889631676166321491939098139078686521531614947021040936424979920410124180636940010634908664197370747222533758460410790583110467524296641431211309953159989543110256996195295106246692948444278597163705741812845002546044010699976545947644199074036659245155962080616592863939187424695706457601788646599817111921900490491250125608097228754850022217533784342640685256529665832934834030685262022645286373767548991648242380272955184292307162079905205453845086292722507501007466299995185596579795400220533956340330131897017794189665245667839969190439799471128946414363759198474343298471953177236329835534679784047298811365424140311219925321488834821365834066714571189882385854064243777027884476123984200259669285921809867905942740057886096770105329373376081262317700077046864944507372839275734248641952774183438201598022060489278001376647531492289827379553575644812675731114538824805354884647772867029819484556508712859151890446035345317150034903615261793192739361832252830025872583647925283550923029613690722145141519675493619142499956992696719846529860612302419414583333466075104973456709178807299327291889215398741751368696089959919039276821948506059074840922442295781128458927266921871332248633922541559404348738241186477462144561643186265064149468113008854268521768753878618570869511644329593100994497718062910664285437233332667889024438804006440157143833790043776309320023087556452267853887264983670519452065388145613892436293044765409874956945832977829778745220524386290840357671160108263360534762395724925575242591604043009215467644837700168056375762204846064781827931355876024815925467738251808750298454002483700966620454906891963003556101030812264772708696416936217950101356379596359820055233096627348292791418290158141158528944152075928127543037448390727510311156768834975248296989852295056688355094683182321463391852000141505946402464072241348427181855617412319246991951549406197748168487217690867985205538061195170625465679113529170789570254869978147743108809613199613789087654289440929615053394815044767238046788035190066482131889594498809415393657317085780764374067296829638982850203682117160254894774550755486704064571539363428498940488380017807546116129849045640604234908303109734187976753349874234372876975181964476337520609737852709571715924871097665565380416433462591649887963762269902666294031038187179028189502215733362011481221066137623141889072347981521892412430271831418800722405326208649280506121509679006277408430358438174754159576950299084427991921681317387937574638797995455606341170857046421786666221284356567145991304994534632672543459861245346824650625525534262493759061992474177991893653994785513220517611631162630254115268416017562138643108199448370520652352815734244829435301495512629523450426133888515503107987782746551685012414219821590783314790450877939463857710283050784967584297663251176057052075328451079600576330059765324909394816502748111968936827086799117829656817890692585222963619238678287196874174162198277477757298519229549766053243436091303891958433072800078358441160499560501609096576240416356971439807668311864840286121274731610724886959372997787443034074919894428519054761669533535744680430210115578771563065394020204149834775440697175674414929277014514944995517681749348560807953588437857889530758446923080334535502805633558243893249359063831810481403206571480141014571686799060650213246520633701883603095622204570412837430450844448923243025223943225640926737270388209337706731276256017115906484049343019035570133235844035110898385882355829801071445582151014233120193341389162005040683614066601158061591890650740260159265320973502430545264642080370739041251833588027533487205064719180719136614975689694709458956392589202272313171844551275517190097012029247493358329202322153375395332602284059209398434694213831540173320804612104953521101219913965319330283218566619360005916784578318756984551620898180031845667925611678936199576517142592780545895162329261920128951065824358342232843307611257943313247689768302561330311604735575662703371978451774307421421492614823384530565674931687961292056772647963280204764699249589312264259622852070445192053343469735444083004990043910483601972510045369723520803816102328483574891614614832647113395147822049037760660022379591885567458727541424985073007433540432269526464236786583215416614111003589921902472431242843520704133061504430451358200865215343017093342521477495479014125471621280828903345413931569229897538514156568485465623683401373839637243842263181431138195806829499161755640998808683487688503759906347577244451146437100340027948544429879797758029739358013057030269345380355345093382015694555143267539980151220648718119276956518569095193280755976588261996228579293591649596205763301365733073156677884290300901293332227115983098411547045796682503634355644577921218360889628775135471412198752749720867132514291278958484890840094704772311826243876892858191515578287659164034166000693249785421361546624806578064514789884877947209862111746070460659517870186992398594847754501223239063885943862977974800824057489072361636651659068351764012346390496637983896532364389526129182948313556142465785919748013923523416618366737782320431223399349249085872117717096737844818144742006692724827482684195775594100640502205788951717891144904877685507091907977980522017353767305148986545895926212505325429814982291439646573594953256130751500515604446060545590939075407254375261005185406643033893887729727900422684516830490719249660947009470727924532754825134749180952962334008567236478871597623273398401965105432900664769910280524847009027203858303316984565173419401701602867401897734735016169551643701449367590409471530028023913545258026846943763822161124390988545406417050434068641748604193879959523108938162844186747696228233570848778981623606012459104468636633628303753013983192131334194135627233179854299412398357517472873645387245731183603580904870062164598696060905656242509317722046345806146794983138796737136265244251343282631979552650901632475058240580993435247804883657876990739327197032047327620522245963121869138897647765542546141442937438577180205509112802775401791086916761971053253514185939288349006598621736375029307634757540631991621228664229354879900324361818211269768626816240520805441419301564437329368261058111439806768840320713649514431944891711463684795867971621595636815440297007060822198590500087819139835250896755199145062526820969769829559192458789906775052663757892381806049635895066801026306143797022725005854744060463688460449930112551888236192607237250591832862221738608221797932479608649302141593292969673721060582146838457098156878677572005379875583112290591707794409684158566736737113164476288637447044201607055842569964027520712126226644620537597074825253344365376689812868720220057563774191197234550861197216225819956709961551813730672413403441437664186556275910255411202354078674404714653767620763297093585218245047562175082451203717966511067520616958743312707450349832607166417166796238400422194003481125308810738466812864099352646203633880196597198064643858837874034678462936463159716898778506596632837938051102580439728585319616072086343205596884393130581128913707693005194121281227203781310799266769924143011544463893125273610973190692968363337502535300842125713821255781930394447059872941110467396774694314273221727799590771988479268404723014054748759060079167027277691773263657895775775843092319117697227086302339987990274854935406799568681003709510675185632075071855649215997870760909787271476056271839353830950072734014357105247825989647957874555728777711475639757421668235178804940930044817596530116279860453895966017416604008150878714210754991520119916191839575673478933460921131856311081653399609654634840599757955567223361065131430993096261597611812408253406691161412071364482992094129698353231318338931480989022821664681099445921973992943662764614440385881571588081601631352129510718038343122617363760434823128804446037212875066268773567961752363099775963855599836919378918182922263173601830877357270096698979117476767149288456007966049540357214971453802484722671627675598726678621126961644539418249609036839996714058640977512984869976520507607654201962022166029854230797439127366765287051568831853478996631824224498282293319757621912143076858891926965533023367357013633279090746928057513321746532726580212565827927362656486512582093061219899047429964375526452053764994624489919506336079919028356901373350365006043341236003069511696118942949962384308841518442366642756490156842165597839670632208507081002195880158214139465296231131981162286596368687132641146903142175188985340332623076579252734275653464973210020923098400214505432136467406024548749428396436917381305900538425490554223041481161243903402114440428538416813965339225479945478601723445008833436827771574245673693889862215512571702418573866211503705867349799033096417028069907218017263848464003930268312407464010805784486170777465646356595324006472029605360012922050723478977745114351752909773631667604596839184241701952452847763780597576135389539792474830875851116694035533212643727101403189726357581463527329753167792108214234918790310760834759383907895238770891154028477802012176108523911431842918429624698277127935663015775298254391073773970069635487895658015072060180581694173368984272202172966731376606824359017413622136574560286576950971754220053881594491510315687876329007669334404676932014419445498966133924502780469486573436020430044491820520232002787000605940067941245532128602522784071040716120575472760812204087438185770249991109732591989481911141261840793210306889345773472894496135435332333560876386827926631761033315227106201981419177246319262598550605469539910712956127016804163481349760230990293680240093482460577560156370775264393236080461150698317762174637361317211397109107971031992064214657006732102895386186347703965023094456267880302151218861527250679174496856757720978647304429646457759797769119689879043545491102764231926448161474360010102112943789805030230937279980453683461152765047301257055001915732212742493415663216166868866698461872599028118583241585099157836056214599331981032477297936175179645047453957213040059513436625613114787624589337657110638755471492077474996664537727886282627428301846972946435349451993914728872561793201163007289079348682245698362071780856161297905354277973288845517671296799039465631780343192547518714381769389339908265932514925283297807975269348281945719150943579998757582300818737209668316684172614242611562923401041758000912148645801506884341544254457214992832575387184753306757412539755274683825216852054563270431117826453425969224366962047467544936194012842992932860766225482915293145976618893405031890901459870539910401983388741548536476809207036090165443673543773819350704880085334470541564615868388979860363924048756348024019414206155607132503145810462051277045453845061122780777308067054405624972216510368575127687281485915577350609788979937678887438251328382742499320321702202001541447755665806676302840316996780524718105025038080577913066517252722900350639152822218761009615315057654154155978936388713299135048824455283210755143381517150947728071228680525302353318249862050654805759208270845704503778257413800364339885498891884107218753053491913824340422588168700158591289633981664768069857172318563864483502230315591468642207195492839857391269261315672477711482986537478226270759512655032789701386660012689118278867659238153968285203104747957481716320584339379591712069471048078238226042732742668567081107460230455840299745258400539829304267811918271112017565345727855364849146405665431519314878757401535180986882824317930683076944642219815092181658225942521672802926882371581711821061158074632910235346462305611748843204659705464095084387518338191544716564239410231424998485648807535298610698422543374790870489569732237235621243830512589308795426495057746176460925811764349457744192010127127059844629346295865492813103070298182020240896079910675568494086312381648846727277769854425357777414118942507059128463608185653440621844083603047732535149437957348499429331852260907800136269967999976623566255190540589305090981445621581339748623492484939937891116053364776120493309881116915814246820604725771529221949586883141466809081298513479083011764777493393000918175492593681164636352442310389191814179835847341692882483459049689424156912061206935212294688248625674975729380687658934507579546697372856881438101241510180389429872047854895799860720702311457494260146583307351444664278684952245910814684925850288012487420601422580420651719492897665769742227389730980403205802158239182646836809277934013608776049734801748760771310620917493683569567000575369617587690945223412209395337449803928046990458977967805876345772206299200331208139226000228618106251150301782154666138852708670712049632955963365327509372481563994915565992702275272722708413554186108388904410794114661590753206497654422695656965838120991509428161453295760648727121122290089522885118757856732116974125665764910293525363953331897063993121157377159584979927653361430151604283487977839824384452046198564030743821443387130226470048265680302607462637097723320159322583207093465664759128914237598450187064918563918872106133943113399406011022862017450513767152952347069158302501099569690987659345554327482268578331323898198770602843174875656481470910470355952750562229507483709506059694042952590233665998790136419002238281610911554965752269127766262359098081513894680233130986435074494786284723149247334359103918501170466716728446262241164276461422301940329933861363433924097770154219167513616448597793029486375109283320120002021999040577267892223077304948101514515007492784010922151582712546705256408776343547914999941732850045600759694378398478271307820445229612298151387178376467625996402284287224690822167038005544158731911148813668206932668529545293821838487676715532961794195658869874587591988296949249055377730838983871041581717481093910848030724275384757439457683468843472313099806142626618547002216998542895866435867713728020029782645569075886283497362478316696555895617374623562032926313338139379308337503054218356591244667642775896926897100651193196343040223865478425342928643112355385886995772911290272459702887178832414006028939958402316552983610499370950483673490113431854322207958278345014911337014778040851112712118430318413869968314937656536505164908769952625637120911470288946135953681686585262592351824807661992029524479248034163292237256490346551399094196213757548865383656862868843671024997668084054123357317423620680960733406776598401362242053530411256691067149000676420139649241624381857331597743884978882864880529005173523625562924710298464836891636345131045907010355549554456214604334123474044272623284681728585964511504225158226212792582536484942314983272689059820269799714794924857514676912824491424740119135901924803888298245251150591860490034989894088974751829495760776912075038589799977673597566977866812483571734991758561905927589324312628261048900277641782817173609569147520757470380716332838342078119768911311898412417364802536149025725094569727434320520193141555532953562243787088737762383829628255970891049588085152176192591416544189298368983154695638643316820340717923529743807328622131555860620716110254759509995202917649569066542963586745149898195457127912493364398767479729314879864116928526476833981624831461902228845293601151101442564665382877725448474415658005609460934323443839307026488538626909546431818919350818054506107904706184616474483324387574806809398319740605623975849645905564107042320677056315719341863797118260998244411933019718662178108531600297524061483512713431632745869602752239254720562677403309366157133943293705617319209730364650869300614312498706338493769055367984535302839818484079019608948780641335679654061987920991458742410550840497533558935486217305649347821348826010042064459797067359228929168553783760013766648625310192642798546301486685185420250073622481341930748193630961060836602659440970569516015544135130675700292912381264548111181451677460309211558854949032725444973590038714769217847901915047689215665906794769664662364427240982438963105993611649611338678811705504739275212951222790394851692440587693745783882157719773232918220233289449416934404573875177668094910285929809998622169714054919375040255934055014016716571347235301971469414277682871654670042475662030318730499265947994426843446914453837827372559145494328329500963454512898032921230481432514132985618925984895401778583465094823535617424176482685500399909694299262396998264208248317170336774625163578918602704327211915446606035188885810481291070380180598574787004844167359326339646894150974058073411604553850830726727324439221646590228545581613443781906041541467048751121509759503044927420606244829506870031232869788415060930687159695628980761405387861340922609611064240605198059100135543324635253830443210117709609415063511269907642097060115359452194043650513459759150105965175680442478078669942053609612075343999596961431059087694500525285983437625860603015613099601567819373349804573381722773977427413401195108445423937986375357092563743384408659617469934982752076754476566657016688648564121010476958432408088326428682389144997169790795587661220013870998440175032170551574249146657111038951653715723016708095781145137284871274086513579014858153837765139195374455247577442859929150988864176177436802285159666626119323763405121802630658272801166794218948469978760893951978375991451821785216427985601320376087466691844916631950088063067632859845414573860977339688801382730208926616598506590972877929114025177862661243122728014256654804313881942131201099204045878677915356506949879528825458797252571258919470767839489911458714010416109260554355035142307205320834420744474076944532283540002651798931473002098822065155948225031395229613037645712562789730109134467363690916449136546460758331929833809277357139947879209994813797954177410254551193380837532530322916633482127384710677676702377871351170418044820037762925324331137061205623375545755416494695102026950318920536707061965819484116068215012129208623043118875646753749722056709861362937555159751334763467133194478755904448320573252120554348600719747654586337920001357366805190785250943944385364840470835556126205752583020825392308691358911612396748676020657533768511760965894482393343398001367478431409257016945690346993072281830497218286157153539191216526236596597480747955309459761460627499204563404158803405531266874333430337154364169643113075865912172771285596595427833685278385189756851702749373520423198351056628940939292991368599746118563128889214879312237169969630702073506999835560859776339014025109606036405842425509986386868324182129685760130418181835149005221017372929594307311553569693976122258972757687948620154945365513388907786056722588573375524817202900785812227126591095753878426579982122917553043386920836546343471344291781766714952003392071482302326144651339938596122863485150757766714431805595811291043960888703782454038710420320813165691105934467972192313142353888874751825087662999390994307828278352459169438969107202992604437028308797461192910674947379231483919205397310837166824302610511776675174008741058207442812805423497255498165437174458484066326703070622576291229658291756387908288266633661812819082525799191807619663586244300828398806279757783333373100495038318902229843058847856986928826885110356416544621484086396511860573249147400236514203224152870910843069130051281774779677150825966556372838774491761287221333659885430418832743126988161210566081333657361162126385019985634050117893711227701384336350912244515846264710912599861463375734180760619554341366602415606022687136532373138530295229185908550404991895282115192583584847414869212818476870274968862151936265275022526031105529694508695131255080162297861160416644544846721154821144362236891283494866193404818751674992698965771517289612498912001718536660094268250504158004056313923084329314228664447165403310784121117117121834450189225347800600176835374714972565017550690644721076060719943836035654041756780074416134981161585766177008969173374445332063489809290356416724809616445134521226873386342752114465041676944175235490495750564726134464712592989606839546259123898230863633170620826903452165589122414748763284247295932322804901745780587993951651232184604800075544803901320161728577358978360499025268600218896273449365262325643804247928457884195238176389836974219874954099002125154727147343888151966277607410684099687868191129210869770876055729142049374329339494152135531601704673666508764754591815280212972406009231907446168099398007675500590415663229341579311017615113873743367749972035010830377088266861260501888354070480184341717181940214828031216329895971668827940937336705363405411421570295282386777844920713410815703877506517478408557188216764873543562825232036621507696429840845451259781253759903521276287795406776958621411151190779188499761688066111827445410514130486729668988447965933094663496534852350083061746159005599435786060153050180391622282923611763875511695241985399858625246853387083785775757216675320842386627306962549806817246061115290701451980013705515510876708940587812019562101766236676451265772419571799417240505469424705254821122384399251382827877755962019502148454704941610333617504553536927010767361323558668853390869498021140301019699472976815796404788447607510976784495903282772292125729466677518474404926456648474523715615527478878143489708827434751731958016223944861079103298748245113675768958468706729735063854153167768771847198232215927797565979054109998165155541145655305329246461435442830192475023005568552326860091031992569837045552283480276433681372921240888323490784312373964188511912527638126248510433426120985857177706273510172341173731540078321757222205332174520374988602391915673078058308987770360406504450056659192573413163768889723849997744440913860535458304438499916973960321288690675758238518296840734971215385368704577295853097612279129171505343036646218266402137259556871548006973467927377850487796390318950136740079750044181402408153706905452325475724813658734092316568680535364397201396175470688429160049782384871533520797070724355885457837508979349426443208262112937126047956624580787179433662486976027269429044326707171079888698805064617165761241052909620379448132171381889835560927636359013567031498063626580558360997350782569761610269093771210999496358233455667305844464923676550223082704712665598207188175109905381206576218494699461561486100820000757282928199961341117100560913837216761393455393157546780363061066285877712930411524186120358981808519448676183100753922777059248802635742890838333520370367882896192187768201715048498437816288756379642613008048694038265770846377887645491303360459366992017869371778719284966798920727127936266147297590146410351870188211604972345983202846543249532177700911500992756177284858953573932025844398452962710694274647535815727408454717568521920163743512937460300867796127015575762003852737083335335388555384723555616733195681126319326743189411639724770713537867445647422326818925585714638503316219288209510586322466721862986976089275904197888632769460378897745449854077331685882655539005971547059682774306789213861913740763842694378766772469550120533016133574769489045510504030244538057112647826192352689786944736289895453455306199649720512075531326887681397905299762142929809067832161504489268511579696047781580971722513835993161066258293167067853443265271697716942799980436376782403219254386888267850168783271636489051663045970673896171775609149840737766860646072529663827574398168076656789975979871421032537139197857582317721428322204641988097607612552431556458162857478024513296078950013334493402231486175197313732166168889904030128683321537585038558520794296678523551049639172958834028355315397953353821501620925922680950434986001678418158467107326570737519810816327351110004245821998928623990845896536542750827877673850843140599107461019601042776998646314590575536671948988373649386660464288759030563176513518562257237747936195461137666388736468060041736436264768813914148132480466465848862838512398523085875312696661549582462425911453095995211371516236858916556606742325084962918759979453579561404098943102842851464354231403593403991771317522574248009709021586500115030195483904738796838376863961053776652605910725127603427793251777497223445116583440783780460985697508956558998358997090722765951361124119052456923712963051610723375917995752934565583773596222272944799283700792916828636816713877499937173228750310047709618003523072565826207739963761391517342594294125400685003689465328651074263827709317750486743398866644409180636331148446587823690600023902943305649863405648638492835213337953539364194193057818087601786178237936355447512369379358101157631406335387810080667229883422866375622239290137204431517766850982486878409495444017441010506361116955670132961352384821510109611797018304857461560885893983229069426017451469255472957680296600325899019846772124192105603458132766111364771677775669721169468764978829052124249939823366504179271656393330578751882532968978501817221829374718445985695739917705658622210369968140329713413835578293537860135943221277273652697638273008318512621898251634243256511686879477022119886792117196931633849115552079736726427083962799309613635251484139863336532682539943834731359718242640292055065483429309837784086405952095145785982897820189589385155132267289270808212073560556788888667035408825505893786146027208212338540591133373566511210331775262863014713219886299550113439836940642833432848828062535229133756812058126621602156019702273075182450466808295010068793655457478892145052859143559286793293121989700151908893865854639490974765593617080405627973050684353752673667605143424446377017282829386144473427849420523694119015919343237306980198777935227998176943694401923195554637363639471945950656114871714949156934810288350372953087536030327693851131500345831200640330575958697852348408430439442371578401379738141575942880387813529833563367100402545360942230284093602523739162863081694610313280811326717306440728262628302666557340073476164773760118964652076950014913116667500406894501985167911894600839751228138165090663579817830377324793311308006080942434610312049597515716235400869429380347864620732994362522142548118474823684596099564925074266019916465508848959484507379926431335781559714139070396441025566313564814125497649287050524986002248718886386454904383713388167868856946377013059723314193534493679997225575783032108643539029847304599337861070197739103432308470771486020244962541666101539535083778451992785052644627889195664822850772600376141371839368073078260106910617362566090728212620563725458241716418368537817971388516419237195537306535164474753450292097392908572300765726970892804849173596519911115769971807859291169747690771805923579721885975056907758824051119736494128070647253706088997328205489866637123796478875798852832836871794875372128737296323944246483972534363670773566550706933096780010335432533243680497523826750249752554608469043302932243883666600331115862797570207531488952342959074723638923827865576927286648202009109885903587987468140845788224631390369455483428093102032421601557446577471032022071533714033579213529221051415464832536604676833297573965571189927704948738595354065607673989175368170728807225689620046873206138524649431486368931877276495419489238140157354531993047670497345913587968411671984430465409436195100915770198784844304852506754156516931596814371948457453031949162771661362429053798531980902372223461603004107872106872892361061726279568842385705774270436885549121795058772622087712083029322869294705871918158363232178300734496959284837619234916959635248092115059643729099773246678100160832915731022639202696453713585791585732554100835409245330606587989997520427664036826900926908270846394744825874246412081528494475047115257827364910404351462665145897532618466334621765841887703574389594700423521717983540733850638762555958668638442966937049923611957196683992005857316490773908477810760347374048000277785456205231111230118873548482478553616521301112226904484139975573573501915081438097796245603577175234532361983256209004224573569854264891380419187794251349239661062373867783268095967444264860108921574576467664855462449064264014457541121849976389873700738973029045930983835092394395524020270125336571461988988894396572426501117588556523807566905827038781556061552567510103652927961973391851313186349665479914131996867767315398547642470687781379050586289740016684220513905434789333184622944097124408786812161239501536941689162151292279483649056968851244342905561336965638840844815064285113204761898824692292672555246384957958616155353323838803868173355833101924989733797273068928181703451173077486509976303363462774073169035337979570085384291490016899640589540858652578090062417436918975217846209076405613844368834524764328765048428235594647579887805637271760907939971749150359172753730695114714214135401817189687151392611845502160642877328213053938532358921892032842181602480160814025784361954551524785661026754642030483935984504284321160868874294141809790090380080992419520299189467379385671047351440511867556680468160023738975142253997390081006111021084808094918205752093338792531164618433106085941228660824093915487720665029768912558596885694768407302036595137446665356259556333341907892368342260307168746833729134469549132949555961826886393593375747627884057928005117464305554520658270096605400234311615777479589496131964444646147288239119945449646473460402397895057575813747993666046023440680267307501489358976326431097659717004209615739069658791851954494098320571992639593929241404924943329749284108602626875081710461043623403468922258020418904981816562861906357040078334120875416379199434994351330959414163878252052516808999396852234043495918842786488957073180290468607515486176022111667218268286729149196153710211050556046248357458194887853034542942239430116948357144259318248448044165771060262830548602987592765181831986737623555416000487005313881757120201876096559200365945871574804799916792701480859432053335196172440976748028479446283926968371942241833540806457537185316236204409581097258115388057294301018914997266290655764818112655619301201213456778386674559320620919525660487295136535234620776023685532189959878148098436028552913271056037127953895157185552397620737082490691824969991397487225321938144250644225207254333036424561658836333279288544833519010641536109367568868001635305653936311352224428776877446793244140663487578526169985028868265343598856488242538143925150595889667267641468226077372558917072669753644464926509513266973516540693385715159455197045241542188546714163291160730148648717041723804466111863371504986490461770370928519624395722766801936250513181353332302211841399407106253090668776666609922233219726649823084924131053107358140527299088179493283004836962524853981814770320575037116742973355431672872599795738746438939597456444687934478693050071022014595437938585844954747848582171999902185445464507663343257157292185424056061526892381774438859127324062472253230430479781590860827788974051216056903091613189820143417250173989646034946208572605546568336040213215758854607113754277868594540442685691371345063914589369141597676285762463392484330522723671471174103545449870504849849009912169600773026982902802121130941258581238429996593671989476895466684309849533189625050950523258785126684787737254620739169453127265347826788207469118556821962354920324498384635181646278818525952900073767814760497303564471095877390009904848952583037479526539674167968518268494113268656371238617646768518902739667488393150576287967966628451377479035589890453141069743409252102039984926605746257822904757585630206258614066049578960342097223682947149690519898659302658417772581255962440581841356474933697930858849937082960347406614907100019562285507009773183401836122856115342221952915622942373627564907269031387667162449964943293639457863139038906935033569406017771906571877508462371271867731444675444093207301584462957307405602893052696401775638881115074021902009194110609953724478613272500956789014496019251223429049332189814698669684123645054504238250229705787824440720381689559378520836448578317712616301261689589450413357011580336340806881441754536961208986801228373617209312009891457495870540710561408484822688982906359312526539048586076634371076734547160978990357884751025269489059462145220620217440039610988182447879901689443900824332987927477337007156839776767128912280024529071140371738435143988217848238602391570065371177866289816380276987276525362347625415171099250516846258057806148228535761803410336188985753335934173737134039270554049586333932870144512810348764604255712144339069373529140336670557570648821833033211891476228235058617175854452605662832053970182478628605041236764027435330441888266707573818984569642112212369385960360269894244681067709219471198976417682234396011296715186611113873148424263040350942055102052063669537197194722007256341334125725446277513215886733366795897815428879360034088828755316676922879892409829952524474265559665248909229200858373012024723540533281830049522085885442280342977006040966464526052035085391875810840501144586556073423944166472066967044830710062223413198111232346779933779604389285304205565897208521854806141557539600796752998851533205155193130616354286213819634360289437958845666015131292879898260480183555549611866819991227655222149803598787733358481204653686526982137568549902135734786868698615021870439526838158071770686839556728697325425669043949895741784243117238741549502937261202524734836275813988860637563177941596929753563166986599525332763832552904968763581947491348651025349446415729878319364234543264627964474442698344963259193691228782744091839460406989783924828006160921119174067943553552649520707614082746074441058930000351714370126622769167531358064844944854008140373104308731499284933215482906776947982810869966557967358788310237674772753542012908963671106495901397717515628820306996945211086471374307100711456443231529819414840450771120207900142359351036006516281801143220618453003473682297171013751679559472051810111011375494240651030372859618503495780174569729988866095315058648765941690949777553427392238283981520533561204935532435131664489872045682114652720102367283875196228006080202611007093991536498572646038278201909834273778075195103705587450477941419821943711920498607069058752703807881036970436361069269321200579972940885666123224889049037671558822133931937555714246345979893654104189328328482253958323153329204226219452819293127032195092007609192331656733704800127492029068967342684548635329946137592404701432432125874481145196276202316717436389154918224846180704662274873882185294278250077334235608389198844092362235560760837867283286647360544924370159238125497010808099871760935474263043425385572765902918767440361002849789921391190552444289103415801571372385403362126731981753939346182429495576751190467076771984994983764888380775276701988377832624752151600436533682778224382197609650924621132201472500159464518967733088059461053360899879817884900310872254240260603903665998254416958981233024220416167265580847677624240697915534552380962173983648278291046319603745201883010835754499976442516350165303187494643661818927519432247272815295433463641934800531077158792992329586125649167798950207105917182521980439117563678301568041638727150414997527673844912713826042567784462113970243875510099207743016907115425659434497406964673760982985659751094731702095468411920849279983531790567308800755762958899583810053480720913599541447833791666151447908945819732253195040826755027343787915552720427837972952591745605385977165015110977796490667014660999494851627292870792498467739345688748284927052864657238726348970692476665439145959205701762101026610865572385292858023995654868831870223802807973530063111786544689307773291801535527959477169537671961186040434891766791087764125393733598405590917060289057047163827217689500345569057106500860491221726482043784873795265032955247635922114777814876184223434059820737764599834175253872404678205717700372302284488994521572919371724714919022264465196104820475735553403283805441802598005748076720153940080767747527455808877754344436956763077220404967350620638912286261670699273198869224196318782851292366045749664007685628636434378882705511322368609304642677477209288327602567961214816829963921554392384761583278974877621094156406194681807288823658301848037183796656020622018778364285218882912084683691522039366263968658491282201009583056877965755254856332315848880980612957294732627927549415188304354987223274414380879357617276309042503494248917736048673696149931944737126371505161341585254520977971514789009715767290031084898875957544339715809034277093889180530552581998238759519276094473614114649109843771120166287129462523265358452057112351954915506067748732856352924147702174764481842540671053511352975600077391290877775342834545669200523544247877118609820037732900121648456659183209290081267810729019826052621509596442545601390646732793723858405896036361873804376535026438854293430270780235804741444815246683225146335337600265934883945473350262801903801461148473266197116047564469614672242810677158397114448818305474690670928774253169023001588989488367058593831193854494202278639811809096952986092342933660215035374487009855395442721276333953310174425006986818132499866218483556788147742349632016018509225190030895296810076769378996146579093366384886664252757704765539411074529528338198802180328044111690039106630019174134213704220162710954148710395879684263176977333032666120663418038688988365725586736219147668900846140971890335446827842043548015517207675641152851281748139386547852906769683682108590447019003112104870501316059675530040783191400700624979838908748489988989701144786980747260344375423383620144375363940472217813203475575484962835590631658043436016320968922667603658232099954590187215306716464512854309677781963404667502062574828174083801031389506684255599399286632228955850375059237543614754803496217120622188826832625142089780947194220551203092950397979207504098241354048731485541328259600358181225521330130005489070292481240311592055241095988029600398508720140436931466058195502550408813574182814426334580108717466818783841736488487824970066993972575688204070823894830360704544961453736056800268920376709779365073317340610993687240987231152101766048451290745742623587118439836486533132489021613656526689356785522756276701513998448463340846773659063986573042253642400700089506987573803401279948110359083889164717849484822988868823743468195423663437135343055486476950256427284633969546353624324994542145652706986889401585525813456232469375519924888466999213851492558122485949505100304966385711338902055275433178864692524686212060347961952790903980810146326579050871192245967902017156557596345179917340663649485907754797140499516325967300559800679269694088009620298082438382027861909070587213234913664425603628746376974374454887018024268403301004548616641735922728702463580058702983844772814684426408696763943502711266360962180921900519571710716342957308621506167308812439180063634279593807419735253051724124533755859461133429092780935136930328129873498737042008355163385156045699402995348127860605615319843084491690432517881150671791808451946634870114225900754229744598654381378632230166808629810646756699587122622876809978251732513993344596633065709563997237094233255748949511004832330073266198993441500374458356328776812006917175030796685865521950714186977719468052515728757006098153631035180745557731635127933307590719076861043479732901697952302739616179862734828525392403182989012620540446122835683913085503939962822646924294857396200001891369633662676293925973823108464008682518875199139374766545466599945884021850641363148669803343543516338170662696654701684630314888855894319705303112018831556196357299030665180457780500014526394978861559436896203383925119898113901708666668376972555623768219358363273326865219040173141484177385504848150178995362186135593971730069187285154739606285755058843968920871215255326362704560031303786667781469392302402156050971986587870789296079444383496690324326009901004230906437550661005463582200795582040004347372884696852898213942758580217901126259422405098342733044086543040534103451459022182613058763577486292024365110905928703582874851289417196867025027488919907230844684139648869770883163315970013677757291192806287504989441566661397384737264250715928938709477043948493012296174047024061200739828714147711560853768133296658893428902971418082466730455600524758206386621967010509498865506496906200877883193262559426461283205049706095118903772300117100791563595947280960907782451712074300497872541752611218614248618639277839031932653254519603851915695713114737384889633514077602729991436248096229777195417776940915774991118872479757359032815198763766704452095635300476349365805504852389084174291728748151615020820702307510674460920846993473668572130373918153878355294585971336536193060748290424166858965420917940413732097703250397574834480209295032524141261996864614695269481064431424717377136279298451015540451341939686772827806619542958183330906258242441792419311349275626868388874969312207890540651845858983881073904145533186443617975300977931047072201636225690658686019089460407078528081839060623933384614525867261445445759536923643005102699438270134128907367942539117526891277736222144580713909847736306506697486020850034907273616645189718025960735191974263550599641020129897556392267053084051286003236707120434015828483297328060336123154299491588771740713508694316552983104140188158507986502313407288179925289181864840740021306318579117909820246431479325884915338668029946920019270189876590896641104356755087897144931836560609026924621405256969398455947657656258222792000721669386417106739820427748902688259765343793824190678761914723563060870751288075066879578511553763589747440981173888956025820359131412625405612482167429261400106935367396953846364748754825962088648814117924908519421233598754287562243628377603318842227132958166975198389673614765533294446084839823820600104271851072063011541865554343158264703623961385297794970139527107371087022919019359388671128833421681449151102081644661388843187579542109693069917480652976101988555857445869745707215346487826267224262865180941279287091364216152480151299552000759751928166725052898734403992007276362751809081495692290207865617007300157439096795684097254599446776154241770424838489834894283666325207388741691921322270497147644860353969978526501505997597551013493309931297363626374108302122147536949920566375266781112885245797325694916532749002881998658724227011633729851257998788250409644780209674137813581119809415859305053918508307823852733509047922186199307854119288369530240212926984846115448420844162928952619796587739835139361695253309132301650873206934538961029376506631853770826751020972214448024188737729367624329197286750580617365756820143814976350461268489356090218278471405599158791426397413830453419701172525048627393057043808124936911007282161432389580894227188170981887944795117303028922839790061483839969796200616555819177488798598586218601963874446344726606197290448696888492398344988388049153643855939407346156227624848624901600495878740350639035031083643913719029414535298589783802907647949541194078965219823275100887379129799905627192625381965103954692857935726238913864334784560876419862998635875424168971963489456744853174342968412306113406828632310626843449370049758814801643322024143663625493223784553615047435641069097389768062170068902815510861582694937903349726799963086037858238761451019893374514514101467730044568848495506399334102035448157439017674482963272316060305488825794017036712072222226938356735259825236696359680770460938385334337154433486904470137226625735159238078167560429929755643763676339955562046592828797918851870859098992576442543411204447356912202008500327267567096394237967700261019392526628366333526555673617442073156667691354095428384146439638871449959673157067597078288003954461657740577789894105899828955297910417680932040321647314621151769297130573741774600230741534793598335358990895711619501183113247422712778598827262196256556742073554068507934462238044278832386830245490440884134836531523915686557694931557076274723654934681576891408694122239337717325803885406987783669115670039861506045604719944517332393659173031923960136098421463729062450935248505864681636386132073438037090837079134786818661682594451644142775466140919993069916664074639774817817406238443371635647204735813088983818046179420344093333153126919186866413719659792632401515085905563378452129973411514161890140253152441529980067400930010392530315896012468635671763954735123303311115687655048585624508650760222741233520058062852701935773261054148400483373804777706360288467524370942965861459185232653360903270356693193867259973071883079616600760510813317116877702061519324409287887538259213987626247033170320428978067558097461133573871293873732866872137024276470054821191921319320311077982569915534583189193885450132020630811783973900717729534619157653231575527281301531454210134560983111296203177229239178779061357621934394311339362767334561161001094952000901741686972247470730767502778257200000878025895689739741144052762836261975684131684457619298113819291346934052228772701562648003887728267391220190795131258048670234045196462412788519316138567893441111047489601275104165675946141607430892072297966401249450833513644028950428933641468186014319630425305054802840765181664368459736305624124265310696360243192827206245319578547420853203587150529588009759225217699527660797558416779250347135243415696001888142778447286570238563186337622881586411890413813616465636464929526772537930920464871074355765419102135135096206612037109257586558309057165141170184041120859719297637979826288437865568746685017036054701740917078813127412952425559480078024753474199969138901037634790173868197928209232244581618398690152068712892669878886195968155629710500123036182952950041024301459074084757441364146506491385826521498324341471021202089149834007694753146969113169165926345425498064155296384808795676596298818951536480985590136719638017238342610617225015735661237506432166039304030279560549433688458232242521767432378259939191065272623991999422032041397561028627944870216013363038016136074175561293303274394220293215908002249199572342221580305527810255575501621701203784984353889089348187912239970786627597908425488272799480715338688641802465794330495578322697767971009918443637042201293556363451445843732905711948992363013544515914250762110894220507168456883123278489120472407448592994966590435665932383319792880794480561096446495138305187567414128248311582452704746619965651559809761553359980803180329486962244935011586076723621234337616837010254723008888460698399354259072429216886765941786242784484408524375652220969600193127554878012981978661352293010532496312720329808331949157027885216095340556621860553502108233011976940817990087087303354230037721440304223755951719510787832902846405423488171106993703537363746650661092486453073229701255911378069114771254095482381735879779177723516246017769125008374550726088627504184551853841069563886585762413197685112483853376346278516334047079091443298138598907854478104375848873606041982919598933321776245228407900220055385256096891384365179679262588093274899354170925424358991491124232074171683589332231461275011237944484641819242374804721580409875658157683962522012825084312686253497698191281084721674468930233940272762580358083217804750375020598356559759345530643760462364996754156216562960873045015634158026875445738648018779590682081453820176699531553153769961123482445231471512222980929052307183568098132027331471921658776233369511078369137993670710376976705559816970000442803964326229721328793893554193727201744785585467883338405694273434948386150379279673005663860802027747125535692155346651367470820554671976618646727005490724536511788640392084940283809675956114780603907635999490403828622702731205315290541443829200945488811644223301043137553204995145611730804450494169287071289991787867345685944874200144209561100468397671138366473862315858072884278432123837406593247607732934700183317310079475103272616891395984147303020635992867267800052676890778708909783001859687459726446902612564381208865983731458144514856937397584646132229838497818416411006035679833841337265572958991034095815085778995411143347204676406539029832729110349791778463695817686415466856981096413837450830308916847264417285989699062152782768388172769630902811636182225226435825498031821152643578532396441370842359766633492858052624490336490637813533711039571273742755910795418969281973804366387302177405803288223479007685627328319463675423309173466911509776384495338429606741693882076046547190062372534031070717741650783996541847006492042213988678482758789606748744140538637664407682435911278755014888529713461742337466441235725368723027234944060091172761736592254673453648670987046283927368972637781296464808119889142970841695919369475584617276200413192954988123350491110350267840255862920215088019304763856534139337928769063524100232714903633628837270769868167378652419394491478261059507480542141858723681483437171486353113431737093216565638676362634806339974214517143207818863400578552413493326068424623951332951415939037714325692414737903187573949479313657052682260493297202854690313017444132353133459358687941513466047280243997206831592803450190519406794051813194642621652862885723444025971834551316353479861924082094684259993490825836836452192622259583021266359879640748591149260036060393921726555666111680719506209460074491251363679493388103833870203939651286804639758749296714018714850910843019362152753167864453300794080412511020027781043214138698408436240266907865067010601685715443755418948846078492835346790208427920352170847438704292475862555112905286359579718696763644302624419935211483800292519698269312357174366881336324610830478240309082611143806510364687218022424925063090415568679527721886969647210891337706735832272973899750917074302830217088019502241603754520972310210967638474873158871825560434467056298946761833973204280037092132215198561738407359756409974098890471426339210071039881715741959582813855301958963894940086022032109380001001045735625834690829363996429334905597041419179956995718370242782860245602717625926181038071625847799675148971331271880672335894115641602342489624587138646675132424435210940571838471615892638192718309581423538551447299017698798122949097920132365862312867341502155293155055820456620005319704295238819803632639725174907768502559830093857834934860628280367104873210707932850943804529858992526766320943093220692558654944282580336815055039802516424989642416392397092298064673009254667067343394943698438480961349331714322726783671967659986647782050583020544267296146834188230333090198866785199302553019029358551607005992128734209633106945809247587171373703115007191970923729764863720142534415901397592131150441306459826762693582279622025859823445309615781534003521961454193613737293522858980245678133043205288124382683329312501784352717390401728902013275656104593029714317256323163834367963754837606941976087891111210082553004600058206299753047180523680630961246032628962185109168336886360042574682351660547310309929471050672421858079732439316862537838343901132162280138215417238901464547415206340898838829455918422389940016110622990002072622393074641286121534874654686483394109891926197504042925222839771272554416507297262466310315189064295312271342271234159418793107231145424328830198388911233908047178956141554256268331807061111709344824466006983088819589092195255160344235921225835934089535443045443563676782178580170620618429230564208598487904965777997405834137558001935025680056606484766593940349332108215321967116976575950256255856120632836650864412088153445608441419078797100362137573162743580765148884830425547995003182277472777908444359465550575954630590430035510074345138327279578193923583082795082277503813004770419215119670263847069405042343469089729982047206197391928330325962351676090972054790302142797356776485920734237989233901726786429748294307786974536963172538921599675726332411545938210301390016234251140298296703919298558815336928049216185475062461370252814273494535934737718278579449225928149174366172217517896683082420598864806814466443615430536303917615725612930559074175667732272820776916118242905687262668494276895784416571551101099727900075435759357150177059220137017338734172770983457380692431903487079530397782488864932295300563626503844378166193537915723037488498774734624524203319465280492841542507783658090862220437191825016148351560306695051491130542058525432171655627381817955922875534441842865639408723502300150483532946891607220148073837680721788156002798451108235237807425623048522377887362778970457195563100426081281396841142447195193546520682828875568902794498641221242132682950157810014026865781354441675859428164656792037644793686712359810579675605176634031054169479690541604871586318633847620514334438892245295758872439808506816375201197319047882127933414342729055822461481659286926027060302514928877691674370065766179456151777701930753889608095484778865460400721528630857232758535944994771134044930412431317346395137714525507342501626153562160693222686573003060007280751768019617047076866652037940328452999779960057765756953991630174084811831408220899614891763345903528056227441592712324490292794256731431839622076247831828843402149256465026672932756302077983042470226366574254709871839479169383486405464047041730339439414315588377677284650962797761649914522756280600134141725172223388888739292355276953972913276895811126518933529137135955531006170564774772196435649163236782391943546785516680866566522434200184841007838994863619822152967709007005193535507561570713268773532752280101344797979238984653070508818090299039589867481528068460160356969234390027723070994802137130140928076470624534022550729627482289588982005880270219810998972733694429839765447830385319586940048184838890044517999079877494376472734205609873322223971317574724292042538500667937166596159634908420383796823281870206827045938321728434586598386900672850002425049515679543261864660169527742908767792867044970747036854583973300746845930133763298738318493083040722764435609815168284657228335039636888750496320473781386832499748192508779311623772295042063595888217787173352802849550593393468310087766753365144780306675272306579290004994909291003893718100222425932711252080952303652475742491306150014831417868440502131181966618584359337767184115474162443966967701775630683979480562544740895781813577183915425511286478896469831642635261454137426435055014425879441489747002941920528243572094534330777370979896610821755872288878162722714841397663683043691589488242230537286154375257481760386093535753603080819587991747582154992879028972699367530111014383371686595023826126086539505770150134371782765392181807414661861005150677332226984929290754893166497740816213364633892198590415672939990894043212935212933604324798542913546233430186471124724188427160051865012725897237223202234950685082503281525213019355261892322270498289807632663113511030709791902010036944868073267424668501546835589303325999357012034481227638252981704828668374970533732244803970576199491872927965694858807228467456880030997560560735249197178024582047668081520200330920522689637364625566409354515052559477302068173584118736835147735542255761730372145940184908295870755923181356819819995687820239877497304016571143428505269555343903845124367296610598835647546141773368420699005534220979499379098044040250084180276040784633809678754399551620194560548978255209185437629490211294329044429920398273757540218398827462990654427570788305487471695926735052752361018504870604121273049952857377245193983191236870659251240295627273609509718312966088545901695719513836029832040896310322480554260818289177613022960090314751754639051863460810988038287978504158460529693501048079663706204094463800859314771540019186997105750707835092710196207984560476944516217513240930915739634080742376206652838763247567322818186642299878330402446456538873627535426101761416882283833993451547528641486194102146357172759411937657922158940874600883500693432354503756665412812855958762680798128944531490779998097739090368842231712547423061057254873887400982099706445130190877683041799624750182373175349268678171673320185715125590518097644572060682754696806885820895931894009140676672864515617421077304184458305888911654384468469601331577411694391219445221066204162414899218331176674801887198083424326008337377996447526249127476804570737907845854313808297136917210019319327182079557154912502204962341848399039077470762647031273634811119491308026968777920823570015281426262889140319092136521935261401169636155087776751634203020839764014291760506909671885833095695171180042815294842569919011532417002622630184338781922508099327429260039538413582554885429476175161921015901904018903199864250306565256651240968734214208913998878678915523975114489724650382656159295338366477242287251807544043257920795367267469695639394855642512108785645699484392540648804369071972702627560925806658196724836531551284282865046035507799596957625711727199462585993402270566403073440584741441382648340606532576927303947691305629638030999195685380328251792428479211684239397982814481256146069746378942059028441628423194560911582786055641514569646484888057965483927838592052057247643759192182001344506900523066823010415443138416423293386433881301091316878388741205850982766847065323105472443928896096513553048470752038632715824173842147035436924261809376194967142314429903509728290664945398065796539463730125523312005342230096600860424153438104838455772221534775981432163350114269812108227186849640667347879319635986114088090647714234065563165774207391443808206893690456540560938544375330996799606571706863009711503825533419904491961130194259828846836201961820622337012280354978559611766474425820881423609842313611165574323246685880445167355554821620176136298477057020498337697801350735107197523476558708301984000557464100174607330599243105734437762326482822619246529142990078249010223320291108876899537668532016404443506892032086454645798456679917812086083416370772773633840327038871485556888084488493257041221395310480488259800498050597285505616115465833631472418096877606889804296087389469105452462024857335131761551211504375179469352199013295115994550500015391582740282952873906587696553866914297068697145921207335666561681305670273186664086149092019522385418907965986863587101380364830320201665210272020073229736543542732944230983168658007284681394486959032566956450771260032740170135219107739043171765316405698050306908364800151319903194309980440529719062788122900396369428185926740559207902392646786716214782460399587079519279889280047987060920963008521793483496629187835627754908348222684135116434319080857785119862331672905016276602345416245070073849841200813646008090697435485036104350073354595026368621509881392953073961980574494277461370349505390915191484323511200276922772728904241341530093337792139826197596900306107816777462018512728462941861734445841218421454350350348407442899826498927413365942602951334379780963010746147949402161039965646639198090032729032420061584383536638290239754473481328027047169106993464312509880397863691230230627977865678271071703124299863589162500809917622708976540765269135981622261457392187429123548647648164338289116874589495517930135024620499262412706629857398963169057965146758215644303928149288040554342098188832457251634087625169730259376936094919900263060014727666005498156628781579919799922668458585086862236673117819482267426495057821125406715212410523784426993031853667330182161556116277120959298519287185752637893163641983057250829064276248139368590638813278783666267436010768293682118657598548207989166187070101916930562444939192525623700821001680813437663567800022450548362161611221491652782870222659717356877355795565116702921526240491542927364531126139834096548720203279429788818761100265130215975401851173147817431759272469517217829493018416781463310913292293489665382843507783064617494979800361455047214754971110290077686009883835252280404668024748248665556629110298514677134867860274253194644217635596741257612303761522389372599249244059768557842701432594571205447759271397517592936102352305371335174820284561871733601060578989202145504470982403531951375357692306578960660284695198478497201790358301930819027269062960658597682565677400117171998962649554181350884159821975204492661812722861127459453909430886341663150704382960223731758759115922134619493817573999680926452644197477671799845217176080442222150871703715982745886037249280877883199930123354751462336490390171450662289307882342423329783667341676566441033650540515714346679803136031710901533503433765720264246083211857851101311444167916538597279209799968262360437971386659924804629568132602078364054608268778784417601046848148918397040836231278841820563296501026959266893511040382930916983908033111645331954136676084734507307518071663763399248219822726540187596385881133924758778540374224722589344177256788987491504338599708453700278096409624476118347518369783285108800367233308153910955663666382315884319624987810081027275518815014791987150404560619552240701325058409632173561165243290720425162391452043756044384224264855796265770584185174601827203598551678381531878933281028403978970352939465379379867515863153132774080293220103894478656065853506651173787713117739122132526696273163042914583102452119028362372017436241740108288767299814424647288735628629016642794316587983346494039256207144359221945497010047213164939178753409215739458044862811566536821821297982386220226738780380041653538282167024257467221749472513077138003204088643158212352971309898345116068127344798729655511462050044835769504319560504662038042464042891737691704009232783745188551314249859978018382013960825157979074965154769985140335658621121597279483611825192452074896191845252995522959992516912505303339298811809334643006592583504993532688589385468435648582713134529929218071158050340601717359478088519736444101926802814825029808100599612243656653237558150157755794722163644899182283843910985051899897608376006156979181744859169814412904632984529167480973873131824179885458041168911766552505671453149818873777275179379724148508223767672583473907023280757903436987326465420458600322510839803830096337439437350554972617822552688070173989358087925309008106921860217870556132014285582316509206592495725737442509270714407150840105159572341014483377380212405136436585077199669023914086179959510211612344090843857739397409526723001934091718770195342899078454184605028049635529881779921579377439941046387964005169840497178972084680569154756223883479720847749066256817939302209134197179769232210130829022860668994340553194117742460176768503744467251164853638025676220704979869078398067758595524013662430915710942324045213095529914035413301977473152713165937848274786734577764571183257717839464091240064594891066808433522349751409957055468360244505451394907214641123923830933521614410964858608173101957865251597646661872619288370057617352825101516010044649244669300845205613012722905977845181238687958596177619023800912080729424969007228464105304110590199509984394562793550132923126762704506904798665586973471910908775785824153888758489966383609215202201359072848762236103618798236810109756421643502461463498668459555348862012139491613068930707512737706706727871990093785360705810116127475375655400791288563257690979296837598709405820382612760520859805808796722507680427568621448269691083893668499393898946881240148916163451289682808771408936061483737103847878649379631600754591671289499709249741396814119156666143367141115452259307744755261087548522653117065480728352809722006117738076199660240494195273710384860909005764979285430634795083059366583735486725397675965718006661066056526975300829254565251182808857648112970366114285632454390939247253325995779734847350396484827096703791373650650064161972354363326678588174273510561373725629493289785777464761644203252591888628423416819835001038401518692766895676637146203012368750809492439296603472768343042609585087019967158781522646525432733737215771286478709759223741183927971112303725851571631144896783892290881803703840737750911933211856031150818318065297893192745600887534806885400642699360168414120307539695719092900777396094512218384189556831231442621986782029669321200648673028890414621899334529487975197727753302984715707344174500896405638355131725521167703829520876693051213799861425762418948666388898658414663184810330147566438983145156952131574839783080717968809289133688219280954003015802487444086552678348424265327625353277342623361449035625913365598937702721447622881786807722185291530364991326083761870360259952505730734221644762026949121601996358560075872633942924426075995365994960763394113781073428044645679827786556213995947952950425145902814865340669849031163402587635291417167057354827732270684330678597031696706946989120019036466932523457910000511930218718654789448410162871002472230340756213854870960120856922961651428410690405274787323073359459820698620800684740367026733979850579616223403307318689050016682633389835563360492511034011659001486624232284018404686449649011938691813860269714945075161016700670882473297752907228396632738951424481750800653619291744356787877221095779505399855854421657132308350333742150170427133638825348230867904294535107527515061982805452164154517698394729750890774864290946823221546481629206036697180304255462773758638766214767319935901325050999299781253457892071520931668920601712895188020601228721100957218093499695761556861206456311394515811608484781384183739335434694264138637779785899637260021429785794080445493547684192485309057571528727702218293656047609088833724315069826630750641099087993123856549685925565503082494865402494829874862416618604803719224682180485987124078383245122599120164170136126663097947780174026413100788112168653276488215146139191793943968843734158446570602062982153246313089049297636342034618710784849363955913588349521783993198098243269165037848973850295791940830590237508120255757695635550675326925281684886812416593590127085805852337741421013927083715848722571058625248914305161141795105577198942576273376252048296032530537506088436518330837688121520346409707399937066811933317864656202625602953074905122621817699418795407973465577762076695306701637086592436757859152389278062321686726846772533464154503675731129382731579982304693779275472409557062288577336876048053309024623024216502275399334313430743815158252880591018369021873967932925124368465577666260827543748663088286837814341083588847527828283466602777643578476877608357769734735812439827615744583186784088115485175911848148851832183220697523421579388571197110991731654373148797295198345843883413099244544847181858709356537386028969489001694484101948220645564718041200991250409466043679686808511833538485058830031547686313425053295498959966604054837018950368530349341379521178619856394799974493273496411917540722327228033164040728728957645344141252417926048709176956533858157700684486583804352023944582616249334496122068971551765219589725166286707754049401619858062860610211043499626435923863785542374236437669140152753098139155860538249588896052541061999471532552114022916366472877717695365072873122048698985822193289759662181379084308752413443361925758949345699243044165770579586162488290506813555685296525038291042125442453133226075615455427343454041841526975398944880335742175663414436865745432173599067937232751535056674784278937557101815140091571596649346159036535979907561304925733784985849341408024653302339901323387809585866485473035160616189948571086530843066449588472552064308681664282468493392532356673893690268485106883446880181019951213782415818795811181034049403534624472430406996704024623062426777593710419490670617250090601855381394964200256969300518378863499484031227293064433765341550523522990339114874589927533885068360718253974651662697735709380176025440129295570761450587758996150368759268621271818777875404556015856589619991186028587061256431439296876640704624716473119287411907436642186827039926766925806935211126472174957442584731971060569113212994496110329887978757906661806206625656806917763348420838538767531245705149852068801853365839935427779564032332015676718868651386535557399422711398363808620644940315861001556067257857998303616815817864816377191273009628107034460226326539573132859188960694785269495876456422551455100064089272545003157217642503433459253744981800453020461164032842957920664048224997818900140121736061596271527580236756286437521148641710992046796321181854832978564060532649345331769814294816497798621203755163305506013655744516179869485187297232735243692364387321932032747502576537748654461749377499519302833029604667889722240787573906732363496770339015560429101885035998109885241863366361728224535910074917086194548175721667007935503261845177721687946420360358635255568622261897178346378286973824913824157633527644832284973384577926621051023762244454892334940847824674276374453215442395112959654311829868724822085564912067921757893205617510220455345081738714484181095050703888182721999425063357344863998965782006415114502441146902632129547396017651395516321478264449185831375634025231717877354559175712380493177240794948620214228458579724013717017459968393136913605185115444553058997270615197754010896282143774532811196726709453663194374944159284506948452578898562271771715579235172542064277547543562680691977376553329066761455355142361918598153997616708381615234147962678960097376119481987296323615242233433671182672192461966756963589050402806900214699879779417292112978774236517575442195979514733830368748102419932315483851944491847407792718191444452878393544668463446793871171367500588353397260204324558561381746492805515016465656425551979120342346805098039350597546795192429826058585148121090163275631390030096191072783063753548267009937183374154661744974113566867516530150888654751384957687392612477418074162971049028989393171027524980472007749586324499543012097047415025329879922945750643316259220364999692596822242660687231262758267724936215849727689834126340099939791022070162444546049896238531427398152114161390058871043898413523626953711281963228176388470933200604526579649882860185395161949687381163619615407848470794514144703006086533739204769007258319310449325286531473663638055779511289018114165849957805445443413359274425676143080809184746191227718000958393184975353309723500271415647688476012880149435649380735390977487530322200062197755977819245179555936780138770031181312384424276444231617179116057341024419037999364454587675437485971984522199754752720179817308563719802969716627254591485084637052531491947916902871799147179903126751537413766137622276477344100560628712237060280617382393562011762251916431420208600374426992199860620809723225412265832177067998757332420193734153267220422180470160405951623094156787079023520948203187487687119619502297792183827249898598064272748930543129473440823568846509340980991731278395637061987356612996772140015801398239644828409747877018974578833453089724635582645057521771652173534163856430586355788315568788327085663112913436706625915678463782771551749820265749214355694735213905762633657165179233134061292082567213843279563518862217495229014574006841116626264564945481557278087168371982495378097234637457399862094991253096208521285254025562773738720458648754823087206980830681978414008803611537728074026553503462254809984933746248265901746289518891525324939334662640039572255982370622184674122058189703603401059268049542422269920878375873322670634603053776488330612365720190210117569676234065093324346092720580449993666862759449603595936255029143373406984852539485966115850273082088128721830434156591647578665565369212771649812462027882009779860034832648662156148411575957577697445544482086004561517933213552259020936330697936792052853031031557207799684362528830886528056313592737090070834834497580299775384889132182192741127697287959331821907179765402647965551076506149882609037690405665871645821899293493117507036594908212333714741400451470436046577982461738550638308502809669383338415923773384487640662637761542879231411439283440545823766297377942904029261705560945606789237134510401609072376587335885059711364741045745900461629543062045461876735027078799758406510712399226256336967353898100967801013858270097343602975042302811999430002158791353797962572724237450860438890125978813581522707412085260672294916772711560496994137040796797710975323386884131864546168218295866784096150755191540616459522592381485951367849904580534313572284403855014213310352898051693047163316584953919943993228313774434994958094765965138292535461601339702570704553357940673716574684014298736644599980718446798014299085399123756035497924309379325718134555448423377820180448873427117854840679107443849557570874560314519523647557884076978093190377448141138321221503856331338460147180909566076107959417558313143471734914065627352838293478035121573631752226172992569835386794925521951475825361860910298109133838399393327532709234256325584475689982548026713386583436049186880573616093122216568318122729670197990585685187705189712700590062275996479805560023410649698705823692135179619019697335891892878827073898470154641431424042011702324912405496901247918304686314607519380551456333730769843152656073267673064034312941497241481683955031134405015604511307510167674259483564490871132841029998140111930639870211472212203351089467146362899789103225722161355253733230307089487727150810414176198225871482470327749231404316819491335563027871896286736734775615136997833888208105044731595910487758458712317229943336875697495423822820568265946514397378840842577102330102132286000441090477674741857255676920027983470016109809872850819779478855415920766238653534846455200695063351727778985485721004846899948185831993199990333192276564568551844985684832891328821926948434143408504475763506757744178600353891214454041113713307757500336860405824494734379340548896808492508957697878208405979131958019013890435036691788307366737187481728110076943947085186812617806628072062612617891963528674267435867891367454067643905193008266265949652309182100077589011428549375817022550690964330066110069665084481571636028553830155936938805134526907040921865441939834403826175103101385427506755803935649900803123698088271500570630976159206604037875479436059307643610808835239484263705188658350580406713759258476542014451137871375508762655150219335773695288406643219156539054066196172623622105731170660514796490312857096608660300466477023323083118491980521023764381439591105646413539550342639853681042464564529049285928190761788090812523534214354034850905000373812921535020639078864894105442064445327221893314061767670991941671198738221572337352655495024932625952224438748628182198992749053631543487259145706844212801087852926948175887955421503439798777078936657581961908486755432301929724035477419501027993279490554006933412261948583502450736861344841917759560772774979774634823352159360515821575444801059875737582645750667722697605710288673294908478952805214938335321058941511602651791792660373928564155694871394231701301759118946209391495017551796091761267019440092982039503376818154905224111188636484210877990806819448710189120830114741346293071800422093845398301527120671460583804116502335106988680932007184932062324782347600663764883648716297582503781534304861603372106086077286053067341281796470839108964348697640035316437972567465516225330001900529529361838152484520247275567816950256232204427913647243991652481115244728714732889703425364032682767752912063757663616256031188440516894729578569505763001967926645342848293431476727357535248587736494041478302696798397171629310248284783469249646968535298168247840228261591089924472602226921797354125715161683853140307564424109005595271289775922280999467967511620081625529388461849499575999261945388390851042967808445953789127037646334672146610625393928256486307051444539778644451561760598165109108375150098153203233596546971437316795339431412087261185860595397575958689552595131322764011493125139927788236629709785482965342190971912286678000061219874904726551796665073216605303101027670547653784858283974417196384697998419880842919315491895406071124869062388362328135239984694130800275682745939417833356651657910686490954122535158548288094759777870305806142551845420459423371685427365716060183635478228168971490530713864403577280824122513855196899132577825993673117387939381592455832538894834592088450995507774828063051586714867970500069052267312497889068204688847490026030275842069440196974871777089070502363679035659804955694259800907850559174385964480904554261648028439615933373012814910792616918915571519103104091860379878894316890939922332509392385420853925004250760316538682992645678386754560854292034482418736490933320960458301191979960665693066972455224814342894139065129625322451993819475955266906943612277508680943897130869603417761217388932595075096843674518816974803200006171660713090695402318045718311729894724532160520901777340238254674944544642110187971364186981934033549535152546227433159842859573144466467801112085721348306246355633461242996307841939398173641006039535553584434151658298916128095999376214956216020343456692032203041696319742038353135165739018344751074873614178543739891986643057218059153141304850464564187354296650841873291057749969170573502887468444275814887385820208693027449384139827364626815711397559734945851108476850352793050644544633372485870974120446537645191087548943041837920090113153847987626430932323890804966637838696035566546188060112919684534575138671580708736819003352271911890780029354883487629200532630545013931858798553995691107056450816336836774712594505446974040398983414371190296049044853753962803549129632413410396848622724818249177988192701042035482759604458052032840561323450507001972413425479094690741547622301199177927989685769760684817666554331134120294312846299220149460743782140857287527626217499365848101606375599286889371636649810257453561722370950831948635579691860574435972702923071143430003435803403106427710342795262562811039991511079805134182027078276861396866148108661739596672701354452423683221056389222648268060646851457858159741591876537563674397624679846262343914452196514022615256915490602955311700503905282490529071057365101013786051244599205896733127537967083737974096596981895259502917207637515062054128270749583263934231755310633366487345239281567637220270223995043022070302755767175562557377836336179346039921113890937523705245869635491534627383364787984308251619622844865886690444308785554616410341207075381619000215810999315085378948659927596671398636284046280500279201140955990982315930960650353135811359445940638542173685498949160773620267901934151533051227822014545863521192001813337322377938540782983045940326077300884273259772046086049208302908452308678129323243296884701858092057863859491304651173808079457054127871512402460706298726573277817704763057884192459756375164776970425536436625711547372646339686134580731002071731134632457765699725006435728698166817220313542867131234584917734780524951466288144890285298819030185632436645043546234065342814948340195500990438042036034517634546286007836131449650315217644399233422490822298080316504539340429317945781610327572056077326015376182725188777482573882782169626920560356585325945741235289533362643349657303442590562750269848029656124378953703867712415221366155568690092559329160216628149040144845962997701505645888576789568854657730184847552530608648901690859633608647153423719080555610466627325062682892866584951981940063094503382254495502773302747727388465166465460322660427493555923992031650349736829915032461519348838481685654377935314184643276866877230311206565800953190487857236571284157679835320865888717503975336548508924915992896241742021496884793981341682654378909240650501506844054331165389024994568625745432504012712378250154090155219647068451136992858735144474869564590024946680083535082518442370724660999717887963904072751063864982043122391141280892674337007103499011604742551885309264738936984398423965064092575094926643549352611920518082415647601380522949722674129843168331013005846935014400564042188312771470151041195456645860140043321731924368371250260300055239219199597076929478745988940835145344870365645236723363848454967692333116674059362200266322115021777189872746730904861182078813221691003996619076774893535518768015162743596337241841153874198746185346740115546225087199731484877467507944106750369742594896154263835979689409868163285005918900230687892063032968240959487347361135924114483023729917868235026310379105091653585528186893276668348227881611172192748491932567150249156668077272912047873789543365359462001585590531073914580372690657716115616952070299059047595312919429993333396305245808349533094475187005652154266759199612585749599226740739412387371643007679103807992367969555953083656372098712582778207337058974869791353332124224600908085070271723269876546921955640289056250662396257683172645650557286468873988670891041579207253962568001948647278716673428164703177050129885687328261186287265392536778226936525978780880982851910827011497108982114801132888134091176387407234512898883937953841289488615723801792387639370573492236557931515910415183056022759685956746812953305879862325259580652978769186786260417049290195521503981357231191024655346310531470296997588664791511089134866440050214777553605733125987061505244226158501819989543444107228372754213336098421769094751775974352048314879130946230964788746982041482818105957252132360342929397921304375902852240534107824282282608223938421938037556257680018226628087378766895435102557549451142164292092928299964747779677201377278407703713600978483216477259575349452572127144920319758580902821539743748164986511872664455638824882786101004005058714405267466878161214458421814045255085236992244451519260771836990598439046522296618164924833633782538226879654397455511735759195152132783135811181556462074154626427939909292296454910489876873204538829341630854137980949680323252563333116496110605723385026055133312496014781115354190943148029883245518129018505323945744542765660785683153461363658996020231952708683765402424489083165103181681895625665785752077436576177855538449573239831189737336209280322175939530976150369103352099231709093412702970622892525600308299697909657543554822273498538787931183027977230624472026449054987155788825218030948779474347935267907039362124277379155287269203670179030452262277529139520115731843406480745814948767616043429066135288655937513392684793648313772139889907926503535160524225635796641212096604649977147249591603500247773538608758403752365524941006964772271275998030670148462034208908948532432515013947836404612317472711069423720503324003586132762542088523853576423987045813032568427340614453994976137975242837164956074836998478364652997130293532647586781698692746151560014016774395662294668111028892921658959647098876672708701466945094365119735872567494705511538737789455451513830753189858221501266069994146137059355700158978241203985335392212673572361853699323725765859427356613605545149282266614180518658085931374547695024715398916492379238083618025104041499620081186979305676521759963342606968759266229162293575162164365115217189371417236798538705127891073124159882759927061180837221005920413659828765974248645109005954544293178672232278363409275375285277925011649487706422606865234243491280917591887877960455662024181189130728265479554869634806271851982273774562067286654418487972673512675795815334404389049370960756218491101977472702022439575086833239389412879857071769411836466996049398385172725105304509392597795965939163950294256115319623929444335732973407780290300357958590337998007237500349544433720160953299818734401347122792867808392107821939258044478847425244948733397541865560036772997150300247774473696071180721521907800460616364732475388795990251754250033048690317222905802837469525956321025133155530779280397366492586255698406834613470583612326571992686762723217098997219225266304271049481839364984639304543228932881784608955084186392982696309349490535239843657407681630923632343037738172057503211966703791994553768992629424174576317856487419303863966070206940663263722419429459247987976309188746807864590575710913097240183610478848732730345899144149854351365844139980351043899155283426503779429568011016316404550724472896214373579675982627185706357746609964104105198753452254087505925114064045487132805238334204082632456568952281214351791353541100900660364485601618296220035930713436742547593180921992208024070192171065859943510526196334660508087800371976912434223462743036613164518740796262828677765824840873302023762138096067184056224827228981055886160887088305206670489177045310991384405993106734404630456041608353240136817711287342557305735016922563739052118058449670962635221273890801166788471861352323545480110442798968509243469102489049019435900507128813694772061178828929982862644934159913520910714564027065968886816231317877314479524661105366021265920490728827433939276335755017675365052341365539670004639574868219194443755011084004373875621349753272918257857264759016073474054717554455653458185626177541931571597343622667510586652183896271306390989225814688656845881571622196404557553816935950163624977984120286010294303527455423866599775679382840547451499624026742832857247581646699096517560052579999129103875334920236724526178428809960993667438284646138262465140663250443796060795402512087930234016895509953808726131568181776206424241708865571084032456613970158378967861725434722807944361236357090560462126744442129866547618472956556927036189594680926323141761590387562987928639493550231527483712938841923264323023864822983073023647113690040202710383164141841347504537798236766082842283609811846740539517507335648261390303047984174510257940341236850424441631726741816155997875882003209591310754456781529503607290411589901573694148961739492821349688064379836365545035959164530294957476604807179583260555560397604606328127050072108219910184862757053855162697969894991118127084006779530754142875509749016199078642505827895330232146721477994644397977365599103705101606955592941525414354571464934079676293669985789724260591642485360408809540347732101573267156647545234681419715821874650403684508600113029369042625148697654259299484618682220109015573894934171849695858001171717117451234747192944047525874646029316208346491303980409263736490112649777653909788700114177523186357313414238316059323232894281282291297682790518575213927567821232953386935997302323472585923015103148532913170070360202606570210521967577883506647882755967132082899004691156864810269066988874431630553490533281003906629105435650401722242315830214778519392635366198606138794499101220507896607067181672713723471425899461748443840166610580944614503442300515979200914704291293574810423495523856920664984653460159695281403001975312635908806639744730921059498987243593231228584049783987841656662513391260344332966345995575656106708624166826800516079722680294624664856373020537541382315534596013652068313123031000141057320376574438381230520857086217150093395112270592355491473990203986674369789232217853965308153043855335419515162520897451551698786231784323057147156623786529384931103527249777117046306600833078600100034456567534985930688096034508913078018994999490066672211660241160456289958621910163260924452831415078699890938551675163539991880750312524619605285524760927441673492097125774615479042923383461780203837845696389436455694393209595037293227201869092252025112024539697736439695099292814605740919618483509463865896219898124360244488342606987318687151054597949688183679779459723006255254630968953756558152060418523088724516377208486284263390156930275007585479593895544846166629068204529403850961346506114618484889564993849306736472149122160205270550844989777212147244808414676858091847493429644597610417935772621899004503148533354839797694464946017716448015748735918934000060324452052714703929580706777368809748854035026224521979496477442663334565352306680447282054691438803745569657868968737811971107146589498038868553754369408158148559704397565931348125095728166328107902024160132644991516767099387621902082603439864117487139743831673028932281655905327466691002936033624712722529790698108165746847219979351281015387964087322307502015636220484731279208687200377441875663938092238727004942235834167301092159779877498945322417369760001603931714620662170507019291371035386441463436623454567611566596601442721343187277591027831251321578635375334430560350801202545001890280672227501151328492530277130586613396243167540878929740047081876207158162221312464608782029092433462707680040033603156292341004026777629684027976022931017735168157576364648728559392376739841729450567887202943529396020510607812206930584923467219815675476153224565701744612520705130110613032216102775407318549922898439897959164399835820047712729827848112326614786571168855339466743062805563033414911270901670105412237935616919228452745930169828405054234290179741294201184036849321403861052242913921858954886167945117341636446300985417839298254774303372700579813162918005583507348225642173685500991508836956185174403944648041518741705007842916449489366414368984470561063424532235987379588255633581001337326501906475050914593237431933771579347607690839764503642683844274919626341192328111773209443035172687500497385525171093689358295904386728208918375990761711671123095887370771689933461913414332888446067973182581423888548224044391425888445887473153823206740107956198124486677395602926059510212140222305272078347082362071047858475199665336152103569405152901853171635307196090980551956690275896430194712244117961207985361194540631729305103972104718752831513667230413040051008983159565411844400775403347880625865513340659725678735984918983807005229724228439804233914023333280820710107106155572653596561729951871985287725959454302034400235280369790551810640313380136755383988610376910377461610784253546397498426807071199848409454226868459260873526147343413359994689783712963270978739584444358563048551467168157301465838796096894528264250291047928834863313329974917434560054972835435533450006917496407187237247818028954244216398452987453424434090429499006373290838764231189340066002425399434113274103768827207864002402165941444989248460924820439139699070415075374833721019168692419469044188592727220465461838904400130597117305200819033495104055184459973835049786660728759564941323709993884189141761387589321188611253334820587789144113701772625421387786074765814714366550676351769790997143061388382279212281226050111533879389751166593532247759755459968565869503470509309422508855851419267627925500344996626705197052940895079645265517446040938714436107799175000656545576480831483038741313342525902984212796098887348213168227011151200506252610676698025418370577842154732229297667054591704925309830074919575842484131849600395900834769884063346655389872692832593022600541043590450056771063001280062799407249699544781131351672324616525446662923158731951623399290669592848386217744396973271914219671594701819772042863431755223879411412458062233372948649571967736207629077269943987880713381217602555845660965859040777943341065160341816658663486471087801952970682543021692852101539783147550202338642490439405183542459990190239222703652009362665316092072265859437445898180268544069593341142106879647640140240838554591349662016794152598853858903685535164661772443917030229022346444255574319516492171395339141363238867654934656127322081905404654188783907520882202516288237738175569423835575648454202418457480343460711115576365962213671543832870898243734712991212212986051695655871043745633863573666453517407648826907389313563782939447278343965553653189808971442241325254986119094482747547761544929492509185952273749933295045812081009941994868651384145077239564127879398119142864720653953345922416762426991130933998924064395974743091236609994787134386021127921225425773031710039215937211727467282839092326373355544490482347891144439278316492371227397455593219649740298875343593174610132281239004415662377981978372370841731664890236148443821325102196310646994977092328140194858460402204861956792264514417428255197563599003784565519036985398870172856140716014898283475791997112451892749159728424682458034907188244127325067944878988535705981741306021112039082761623707930896254302338267103991323863335863117255371537172086694066670548775912579528930303379458779128535003499168622157257730402953937513687659188058431852970629807035321335157868959859534843925645772246093704589435408039412415578364707293519787193714147001327207912656199929438663215990275823241905159119743431063472049655671128743066119206209083902844908193438037984780342579417805542121364922932731361857542863195680085900668373124420631931749114642889104519457531770595925137337437512796150683083092356929950662595269815154674569629587067429357056899901968730017776366380264823367136382242409354757156167861650825095362256268121059976775343923540757253038845370727995092679084694077914970966056181654476162459780854559006344369461122319151318301994208608746245643985179780247113607244091308513404290642662556615892466717242381798238048120452671720410649917882656937006391526628401331735730307694158158809555263334478470699833234571905396074762722540424247535236586612564225473738471032992876325463122650682225394727589285202446255167804933398434374977813161694180201719296901167749131122645086186308856454468873752764496320283462949994730877416034563198659448749063846501360990702669657126400382782438826124027870712329913563804435176274061926370835366351459813033339973165277644470162307691573000810651837896507987686214135025296488473877487861408913201005661691230773091719592140578132442192692651911711119860141394238249324368818473131133098969984799854720115082434984342866238442012583491938545855646086795655633446486727095134789476746548332668963942393852254210797726282465354408323728096408256394780465759021914305412619391435057612099709729243682127638501777644652809263793544712515845616979876231114763186772622252788104736016424120144385728026688834161903668648304005830480632843048362600128754242515674244651315570719840849659399955067268087121356637523756698435422045861797461233087065083075718630209668896268766993081354411083291199962156388304835557712966950616947939883757732320788687078836898824333601746722860427884563406407999007276134689967301805848762070084427257589518453638514538610140769083132503028108152327065045080134520193888249581775165022952977487181923700044725443324752274391944105804612671061989668604596476801847898840079985972591679366098289308556481435425322625106614515139272511502402155259914876638136534272796201539108333018637185898815833660365997705651549936301854143392804932532578347469885419239971812800068297892696793578271356748650047900446229287574562515542207807613827519886490637236474455458931129606084361517813035907588373801467513246792765248724163915843975770798287673018650075149332752254543607079995611776427556891653659716873455534711644267211264927429305718947966842355639172850771990191101723238065195639632859879420331124797228245839273866020328193202237831164986739358189637003828530081578217630945854663715892690470438113881232827534110351158687633767180727462472352718665225039570208398522481115008392878522632493359998637337434137525311277401775173345540588977333950180358694884470010947083896275600702598701529567899922217463161198748144787361834346992100487066725784164880225218801821019571742905011079798900400185686046863826432352298231466338821952270723879965562699004833416489323370332953111119422250357473658258897830856306880584245607272781082993942131495600522912515053024241894895474795886576709573181210967828588754104483138401351395965980688657555233516502405263958865324939242292003161951069104984814638850633421442986302685400951508224667191495966220064336330696506058388775645963819998217413306346697772649525114679230664612515702564614209948709742257964862288048916721731034291027886691221732517566691114544094654828158474235258228225309924878899369466982388712313483141376608885238242516069155920259454306712057032736651683561303458959311817309435116352056144959987085352535010685054458692278402020789633254417307943458805530790765245186017365207713954948012035001017820636111040817937880939571781872195199189842185058232977910393001603676114454063364249127747214537960551860036642826318311046567473348943117211427928877841062434372924617794116130228883025701678979741924007221909477930012795587889393078914438995029597964031387254560718464524810247496544028896604428679565554730911181123459978188167373740492572263457675884088088393201357409130319924750186710671524047194632861400035254862009235335685361859618061606627158949618271895290100188883290199744242194636177859721486336037103559150227294299880999835450263342259692245361509647215717704980613072362982898353213368798395784684390575928336663897674866103712331861089896469917233635160921130695376620052146806465439100505799935471783156718867742587602121500024017504073215926324565668827342689173964482790986047753699432440350947082034662153309178579024773496117689234665654045508085871158410790946459581588580685228371107200403032914712908171564028220255242803162965873926406792992296541384668927438804830611232964882508803418651596641849583546247749134627495993800455637745625466348563684379614377844114133249313113967521846360663438350500707480154740050811534654751978773233597979987848035577409908735779385208079713748383275148715532689950719563804021232383621316740120927662950439626734944683806964644485291197318812035497624080865422950516241253907116670604663747024306223157073278826875855450571101013197619209254439853831895776442837563870858058945771047522005602008271233931822247396204604484374073046768076479794329716270569971408959863183127073746676002187681785320587155201750622511205711366989036629839909005971679836364956238814686267372400952361457558971135513714442510495144225761538658148048589334182971081589094152662969215474094735047486077771709752825659027265841018326024374546079643495982909454740774453179155488073235698301789391579495282028190517022810655991106129451961182743264996480947531705101989244940401763247917597127613444878640465119410126497543571708814096121999465226479540684751547441113016225255624374229742601757709505977428259889963337748327838391961661699755184486192786666296590274558881222529032546377879942354733661576225878420152315340860080003116792200042827461777163796082005832915537999240336245530339347641418136543805673316754237696266831613466243710905094224703171767588185755702663706555111711092332081877575639828281974437011918122404963165515403552882903960615053397422950268770926657931177792137638447220595635632775449949967256729808534928590749647064125923462644931664669164874848195734177572029283869919534551593348248375842172665558909749215607140235631154762150954279774454384835378817942183461371344083500936712888707044554828816100119593510209599342485101247637700275231237287888599751641112676570442887408055682966964593634760895008965009483046207147816330105910737051606480721808105663302937145147365619218377034942070292243217728512541456189578330788437191516306833632129924331475018613966566203944533590567623643396880424425214769238688025016845566055776789596975590931686708427265369380610113605856488530652289904961599197952714915437620453528224035200856979867465043394951713066289053383689588232264974085247007824706602898942290121929273132341319295091936640874323162400752520495504565969166438650974429243975374477038341262317560634773396433632130070939141954433651285607337354642940707819379081105334494490317714935613521501899495068966673443638144786648473309233059861470758627775427205260026249162371703364260685002859723084387938339456905888513559289912116384538070714273792446588705153191390827662750073600863564758281157047820066408997075797861762405128614154894243859890842670846444939260107441373858811224503619478151969745627575923464588833034138680217303384874044656849731969524291733406996381444969506600975041357823967927796861420673545753993579374874485579280138309341803521894292510026625296036960185244642969680309471634513807837514116947452242819752216992368214617581005809504196986986741050982326358457602182270255847350359627698417535266522727292949428140974658827531818542182086018152107584249567318852948288247980999048218005277434516446564205866053509870459596553192282713518548581666660149459303470113596481848705576068177655784110406583338398970950101421918482447760671390963225329544446798081640614386693207582370973762976632699496009569558616263895923460696232744558732371521911276979533966748514423591658565561108173086342000666405670485456833084842315742146135985318905808166025678429574616764080810963667890150150374145661265411312990119129019488709907756578871339979043558490587946498597186021150393983659223922474587067421626005162217868997645662585239485749209686045475168547233769860851334416060247861285992753179009685420683137862289715910382769432795556935531262097511475344706656184095655991033895691373643563333321610060219664399308266555593106257170327998523554375437728402416527102274972203965983642386012696220843869725423387777255217279941676093319534099440145925329254687551308226744097506321572560664995457396725869632788256136513464694260989077673459161177156116189035175190412003136470124834577914404580538723366003695238144693988059575266228318423179381025071319828203004072177398031467632873021796715148826467627158057296261741227904936197075086487483147366518681756672238042660060121910446311779946251197095573915795770127440557410601343150636441350460680129202353717860572553949811417394720903318272358461475814403816135074320822974990584715964400210890600879756887532625406850044735586442080529232800274836504682950504196784793188854603433941124859267776737735321885257728907649309057583812917281717520975849130683488561482743789479440864611455365897958695670832741946971092384959351536608654224212136373393699282908548562169973472266453016795146993788744417894310824233666319213662564226713186573050396520114153980587272406426867015047406709496569333155574546033345541724310825287168668925733334151496407631859755158126599805422818593823308979703569319263261559702259786317570900042709428365137706023000868754479872522010301114437503275714394307059944641954763998735333006443422521172192762821796994947797067773233896317285843848555668817007955326404812653716999607359034947396251448440555264418211416464163680917430320576642875011970803062400070357045435785526971521326979448716015238257327797705566776505537757751790607541846240981745666047037589113135422629992547095736413133194373694984505907946102275388973306679899516771055713693097158837982851754079066651560030601438926101621010228042615695269867200147124730488660500708005327178135981564846446136927171830033747460591322374829010294236345865622893537804941678264835901783047244634178164926049027966238890968827335993117520487738753719668599180962837561693351171512258694013236000905374254825830767045765812775102790638952482141856397584847174223961630543333643635920591787494072356450755323616658634303570724941767989138543496344465942491156364705075968969600854290170337480579343170971160215159044850348823036763989363515058271338437229296540636929956877108237806285758076590279793840185279064643506142993607667084211665983271422220592346218011541248848812925824769573455059338717002177875774715162216374059847560536712594531043662804271386703261325826850931648649172725244895301631327988378741438344033354438338270636027989712610623627442594096974446187334945414294713689193900124171984895407322947831640534718397985290655057526058709675036816151804397516007015943416118755483081971658326710348246767773181451182863038654473306923657045488128705342464725399306921964455085598204082834225859782412759015196717904088941104926030235758033727498660736806890386125050669755437795009913374019354567682944449729278747015691056943028099631063661493978030694730216542685477966446668090254555198369985499975710709215093013095501058057975756883101588383920368090654725092585789388703052994279388330572381402834244937020639891810921736542006739085221590802244366479464796562244732404638120665703735790021316083816532820858970561646932911043680595752841078468807733411315058970578719883585161538113820444116192164161875969053794088420156217425946059655251299190809182934657071034579503315033098052962831422667624660711104225431316702826915023828468873841550508317929078156691582021463703610553350382021135965680641712822200555090324566524909304345910760164879833306291770186473750667367250146974109107957239268871917772192573305597526430637690027701536125353307301666779442768439662200111652440544969747641380958250493813770113926835821348794646135141808660511659241135891012042532126237336823802840823376332364336905139783950858650621644930115922036037556895965072201594269094014961875476564804203054678483483642209781801060260873548959974475374685106404487965111062415805343613982818048221680066619062231466563470236471826632546251166833206372736271831847563868464361452536777433301977555750466353736439728899382394006545347054733026372273856133023957184220095208341662575801475385169933026390343883976751565172781118468820600869097800524123906596241769447941375506114210837508822884094989002010378513994557240447415944520522187740961609974499837682223146425570168662745032004392758767903856695337134764599181812141567557318946002081155392214336016384596920780095367165876080244464713986024044006760916591533139543740694805252304423030217348620812882103605522636991854153369666720694032510649570215949411964984232509473535497046517261782011666983386178869413942795371434307952637090806514897302687008215983280270330770824258399601796808619486441685420607963543460810550930935983236741008050977021555926600420892367572764181026801569898700822330959042658700488160677389947884443151791752348128559633452437105930266423929199660145317635227897978791399881128293602728098815379903055113068188147727582017857841472685002284579763485709315689443883320197787448626444089742620682466799192785138686598508783874053049608584592946166938301435654561389210554563843574992773398789071996796324500284883666365500591891721113206536014025649287625397540552696255982223646730543737781645096138728382289909112776254407263774411983054279614198415367480307634111712164175307202065730197829112546269981255012789105923996491785514240983877700821988194383047342539699007453417282018655659293813741724861651540051260431172253964637493957132661739850384453246695514136551027725448329591719520271854496877538891391438904827091813988893902477000126740880962701748432017212835065330110107984625977917399636336922582529110021338045431789671497617751226639931824239989290688498110935996388721594999380930172313624233816977546278310032289386850225507758974668461757689787610453545706782594115363160518243465351932671581968847487960056584920097193549861489207207804499902864788242413752700788485580362834289557166515254529964090841647782462197307700409052402006925777599379174553539861823633249799926694835990131673288383968404293893185941967643823601438168773306586850196862760607888666149774930440891390063498260927818020492182936957868134906955468312893967400399924786343527443513733176732478538705488215556522809146129492540356562295264511820375130546747900691275043298487410099546531576468670083341744245480433682272635810551470740160009831705615718832929625892030928015149302608710292419787414023898576695916691516183584603207696380074598018906137264512752758709371698561326674946163504928001008725767860255861046484049022661265737657851737829361920816273985786813447865268815742072431334445992308664867208000808934761534299004933123767084801528954802746324344638289186631109597234774147953032701353106384543980160960125988818647065612377907814410664084121576757325694539778225766151790668041269451789015415114230676342626513693014032746871224930124811283795436428732846735541720860966702656303961513578690269794995627406930188509008391664828553877217477432081771666949518762366822800117544907865489278058834881792446267436660539341030634986114845597279065841236124085746647046188733698923905345148394112766996850131578532813409659521581836000491741520562354698906450623193663937440495492402618109829114128153293002325677300546786757348069468878270671590362422765293066839883176216962504429884164525067355756641245958376793995866610679896126683768704089768564091418526231084267396845598544782315010947174877296892423517126358903190301761232572880153660173036155676985500706461065193373379742368688190248500093885135964991919808786079746182850283125065727407120413254034808076614537788260210949516691826187925362958787665684004488686213850126070995855543548777144819975330959632583756363479473503241440645384761010625204979923859541193912871296992481624924181145018446174270720612996211818341800128671093381631246593126517439557489997351684556984799980629449134109609621024211465143265227425144581886177032194012317955918642795014124008334551020799381359654345483427980606190855066359802042886370673112638005829979383496301836903443853711903901474124168536300030104289652375576498119182132458095791634984549030958053200107299998144485551766638278937994551881404825674301866262245407218692036649050349467438572976762137930218115620125430449603980800346199286094897803377360552087257660668072260542475054797717096914804999630072472478121298272921763977075716463669479086010880726915865911647921912497676135078768881814115107938359138558313563301417048426793949673279986284507977567366167197502548762585463412221245606198949059206399060908528609859369981385405394334370416105860948761703778455516055213518703973793250608003582583656854814194220519159095453729088627426953144209851366824110333556781346165370075520922264603406700001924236609823153150156848117906698520217075055450051096465772769558708673657952256110750312065156192268326052104362117879067254538284087680510030097899877029159670998536066015708562929735364344041620450482126369260396085671982721385128563581284100828250337990983832839018355260256027446685807109508619034386255780284072016931971364308893225916158825369436724717539936453191537033875338772946031780032863023860555759270761344073340948778481862395004862643634025815180420177603607012996533291712913116994991825739326828449012155770308025447139569497383908286999791899571295698928776702699771617854250427004827370863511421422683589935754343053370690976344556185649297160522597823266282384254863449274119612600272105328402117910261513139960901743194200927327154836550386541947559412183106095753286681026325968096654504255119403993497746920347008414856839728980208315176707697278035032904960620429616015706940263462627072404273038967524214959745862760599153044223154647852268182598529155770829419776110618163385020809730986338802265867639812384802123074749308759191859579146326194806032983197011838374991808909254545522001064435438164882700915499719290669147748330953859384929000278870624770720980726545259482176269422507895600632331274201060129446393377603399875146737276120141661229965404348449020104608662858675706533041236178533660444672866893232000536060126783670554701986288936797333370138459525203029120329471048926759755613835485753384116301870372049768797742218333379011855104057258988037724386721620745067677596954673936568300282222867730944085050260943795484794626095586817304612344943494510539045543305524926037802411608085532813260226151407455144297875747267060909832641792413733232544172930905192494085688749366566624735571380733443924062395565113330131948634842439099886965030615238835372289240160484784020643178205746872397097296206559582556205287411202775369169753942454235369877088863656845017316344645839730130303918459670444757391075565831079223343176349838458793458923170127678283827334155076444266436663242370328095830083073631017027586410698872918503810524872236895357758331390727024375849018087780910787762390833185551780476765417017916729746182454300514798114521587108959512792799703444211815836952792941924727713413919469610140285229350141168441918280817850680280344892229769689861486858414544802117001416544244436031875002213526345452401590085699065149898928451986573767626701356168604021599564980563415468185398678530098015623270819479317953519940204795921315435684448359945416430281685554544679794416313594228494344984793528834820266381348120077236525951582265431819960533719400530502489645975574631675551775201298930726290143814428762510764828458290437146461790084656841709651398753544287357876819743835509300906310060551817490513707544084525292548764005401013803273009872574914370786524290217105376022317866684459201481512864657758917607051014934983523996985735105811082812602924265380867043123104875641422555737634982335606531291972371458466102813316650431044329260042805317985959237959402299909707186394898018479088591331236940084381740820012586122134312155400423369735952779022552466621109628873141925949576637714607873876891909405848463413787090938398756456110028319572367471519860911738018049780310027758988188377596530209521427469720596936215375481450059613694794500722455832329157480182460289171694225553196169710694443127786649747851969274428966504259274669694218873040339755220583238732936050225084878563875318639149787619797360102664422187197081374077796090490491672101554869644729429820542792699710545139464670929797610124359281800848694504993387130717977007789297456016268728510490571882705404340401755496983674157137754978319708540853459091549603397066140785221384211170946113030187329686367057740686766702027553821710274133399957415816984362770465870178441013783324225286369433575838390066070869736303409878858134821301855033199420035184389115860237247543097283969311320583374554490360640873888373258988056522688025974089583337810229059308832426820103171442950718516171154091202671032130129164494551291707024690269974517978589251936481704172299695758962714875988250260293413664696385940757869602213226288834579574293081228038577073432322437564891300074009358311456205378283387495316542173821252763317673098738613062960284324216586870643128557166068152495903168299091359076266804720176143197598053197788111342479674261344577886987114355223798875836216610519214665719531248387094837465680068769362370774651088213980895391809296175791057976246750056517371760838811905107117471290925935862335882595246154690646900612980620677794207430971992893560187696601885703544915146830098915494983026678460046046715372556566842240132721461452602049981694388782907944862966752836920075070023582194832579235619488061524644715500434895962339225390869970011083966132521599744491771139404512484916074762058790013364784203601137979369918544577280483940663259423856379324520556481775929923334301436636392685221334596037254979096762814990151483119261492355094147492983906278666394646711221453472275182166337352118519645921945518661523817489713272936344169153509915296329412403777828889137626229257289078080029659184013470269397544910414269900852518721278290357498697426365198434260081863210239745579790412164115871348736528885722612798288113123879084709717762882998114420366422343925860860098184776685646001043959584788001969518022368032586082242063495902540632760107325734025990482157744984024681497525077220868857861156944505543573280546085341098532788323969094096036569548175246162924163655184753524691484486132239597350252653638705421254954056839395578485031922392768923610011502525476900030353235854699800168810092290547070940031137597401487034827532060491380499419575570715992448348359594697932733121094896820019410021603126485362039323340596791223591682132635893491131303442361177670493010805992507699667111821232149349171641491008853410907677425017550182753760451263968724901676060177432093575600737499712923299495859491219991553475144670194395070671886937582491256275606476245972515208215078987913794133967303950651298051219670834600477740717094439084104748370086576011796843285490618687066393834313300654658742384750544591855238960861843780772246301590322147168791769267710049257790501821498595940250135224575225775671457367039807013605849608955933822629367997164708367723429156689321500013156494176900744077546918403660105656070593572932499406144391200301228557005304011528107041691598973077672162705416099176476434017971024536162421938132615507707203849239142083087610563238166719670856272041706775713968757853040221178733324565541849851440547120868714772377045041271904470727862709515758510407640387958123077632937013030676101644560118719300171767337258861255274163292741206471193258568393028775035678534881213777301565057522157752000336084848787939810941528347025284682949801941753615728356917597075287918366508281348458073378589259856197455104815458398742540789917154274812414290472672372199642437538621523718813458498103692381093192260445806310648773856263643304899078724343817827038786370485416039059660439604229590582593554024273073581612748114746013829106959510210897670501302123451452009588563374194416480301433541728011605961834115161021681851051464366798711015091759035589809965868742682159843937026128410465532318619053596104979912784862607355469658259801776782798339191526212504941499938037165037944416223591670863555626921847787097535906048321546001202635246960028876402076565218874108761509075767921983790128639906743053907523722342838765348751184254626457489897182132626258227792255256281064177413573851693217827227195016787840684614340573156572665760264340493792566974484152887509046683961113315193933469429122150028857089528131470205997912157447355122384777508544347708250622434623231772600324021738767147094130665958923038089462825635351703887667460553972795431502387027867932309815158391231891344803553391224657802951983546831903948470555448527801906387000704766067537370757146150635138530382630236812571261460394640735249732619142922893267612509675129845387411006266627190791028892783064856832207510200389474273684375068047487476021319516341970603124453503756747235273176808870388514127824053993220715624057418424543964706248003205530815534097578791871992050342745659062037437785369079363896871269964198099936286106629350338933417902928947934231803830709809224208542275229762065848192274341806919886904897239200165745357871065142108730128167390246549739577937079960423375609648529011281279252764095467346297739785628118766506485700256305195449870865951109350263554702222461729267585126923617128603667860286125395574545545814018450564210924509538120230081651411260502289824852783100403449024762061530702763936697968185787550100941682132968616089004557076505183661606275500556208571593140790598565473247008692323866452914056000696690135120869921141887796030267409003233052907622016267423758369389839868046468318920044179473513282901217593827807574146269712212537351884180936823034849948386316000030471415952700984409782711927688697648917313371031429279861278028078793749504657331432777890803571708521698830905041253262726382196893199273392565001602478823303178798708531805253855363182406896220048075776993219907447217495910076498972175816674517778082588544094450687172887607427193436525820400514100941813250179235769407878898960489475764909695080853548896762101012470383991273040677338598220816727735921560618395404294327919332147587895839210573082064038498299897101650688015270847934321085024253489639812458475171220674433387500532361036541277724110084897774056233358655016935434699510361628451635155215104456165833715574876675563994960167269461864778641558943845581538940521134130029133945654852085477701013435846824601777676673708167597499079841999694591294119570886068812114389000213037799350188843256651429408697453958843011436005555549174529302731132619598666228380674902633257773583605131420232202353720652401288928069772306194770664185987547674223406245315170099760225235758633728095183948917660574229785849329187895149269046712512204593063387818465622637422026917200376368095909826205051762613599798491223754135828092454649050211773256944431321790544907582016668243727806430999618863786668513873132083830686749717005118851899764490785488099182208657454030926831839399896699319628331274812628793934658715645142961303249089812014756857494646226817593780190423110984700310711536704884512364488044178808163372850232943288368153640428344233406301438070753683270349435428530101893779038371377130146061713860188377641364414005252961683700787081010073979323767213207935337186251317352605885461735294123156336628358254601729845217667026010271212880305417171995297825349367602851922722758719159152706354461494332886790535514013004424333595617506775440448988520973844191267053600338588413419667838658913512540987240736380459203826879684420887419745271870807807228748557519855601553899275460701421193779733763125286542175702139047939643655996480601761176144631747395192763703114175079331109814073186449383323054373187512738389988861885324621948364643632756698821194733990247668606942252001483668465980979059402762683572255366943280331662000235060884959290864245032363491959879040367230131082697134995374852781512400911889900590937580328988038859622015625417284794990235014684017092909034397935824313153190648709585122308619623219236130818741042225142526088411011886780686376250849591444804777642794042054179411592979658122328872605527222483527050543166869281913153563091782100111692008081985493116319238386663667973763973415973675612255248646377471708042207895111162672292383893865525520039566447511775681581025260398449919887403806483864176439622873215480844834433182025237100416362382590229155498231934886659265793464409521780493648072598216637793711703246953264209218118564288840435227865714281602948482858890827394106255315175868669346247425989305260621283720182305822540197355358404747947130863473805200672071001308244029529266622148337059091939659233114626198513751372821111830274740120199135388745909474593368447637999978618580625487383313970844582508320723596467622716462265181911919188376892018634442933426039848025609569490931363551897624387352852798079215843433779391233635411166217823220377044025011430916714498033686825139525687071560373288858846094788807886380954065522054241902952842382809136331036469360621159192835576329297754499242854709479068226710263158938669863057901364596837730182351758579513619495089101833667826870745722436336763696029456714579896957662118420361851890716320100736579488347319662992323691609237598156985512130196314553299646540784469259730020653123508016855191379206807567214534484752320466494151510281736956960781404049152480024594591137101244589866294413746126374921567068561456087896900711894876037216251743765544600505021880089203493003807873512056618340889391028288313894393844995654866800929425350838315741738048779920625886291244156459231012041510560533412099223428140318185308901661404979004067446840144575629630872466981805686904304895899893306004996715325081875271824635423156419851142766486408965388877013613995409491338714577923504962439688265920549516295273713227346405023859288904823371751827374885831524154408980771623929701083467391233151697063181027434338993396910713345144786667840394127084377186946184723635588905230634734907169602632749825997749354253604518757040186868320772625883434143693747725006394477882748344402795957067106734655688356793290014368674810716962378816640154860593114689123063813873109780251254905904867216504202260648696479726093911148807795513629186959074321110259669871700779590135192186260250644832825526227299981873719188523738490837941073166483515162036659831852640612587618115369649114961059460100903209860606063054672831851964393718208654781331081884761642524699639710090947447455134567118697454748631251616110241382636327431052334839585635801985053934057881211254744172396512436091145637480486238382113874868915488558703028287983185149642602453263527943240343429078338557992877201744742857893177869878597969466136445091291544936974625385332415238652009168890803861543724847295610740786191792724496420284119483625037888061176762922535026135354742244165506159367358286310858939290315279650740556977966219010238243682229313916081639072072505345231279439328309674597558757290155289364148517700484296161204061404149637138980342937651791345383515670233646469768198952392365713789748252398094326510742385149041755419798013887424598520007382473599287358762775381316875066010631634362489017536011319035419087711255348943644119967097125485865493002857567798667196235036678573465390051246544965285208395275445207721415850331042714984255231732872370351474112158224340588181360083842759286308217347883075682090566025976733574172019142046243431467218856155152119263619754954824748219061596759245321080664441529068601480204375605730462456650603575359299478243912765214683078972781907891976710090720598253618992413321917345736488143337422871279216662202877144380830348628017513321227201247039035978094677796502020556968332712841468971600224182551187288363518480264829605936745467974806484506680630986563763518250307551533298270885985235490591650826827903661544661565839268312411790844874205644709301345916423371700817165580130962818134871779209747683655140235473523511350995643430235009853068965068580658446564818818459246493982057544109231090546799783110265700147570631869113229141739536273834989982902178889301866456216878954700856164204765555216280167091913919149768654963856501001158865456967193378601818649318722656623922001305812675724580106128583737403486337086971721951034704142563316636282161980040592246325948461262093054608187624609807062995199371736611683346210763865804382134284731751154919886738999649927236977416114368365762976467783163390121149328604536713192178393582491758236547337290049381459588784036175279670541112589934715357596469857090979597423189805846530336690093456088792157306778182248750126802698606458269773680407481866594903606884375222353357008031462273308219258039750248320056562169513106855342508723948038529083324629981833579878764362690388866933347132973297227969493312164455284620602492751019812003026492521439487557851745897161092217201777685324144520240034363604599118386971519837111110068950669201215394136916686022543710741424209701380206036420360010562882251730940226200473294786065910512625544971418693129168865186685377248977827159146271220330026866711972764430052638779150876329515980432630042406459171694090851657955214083396777704656581464701671096415299942826530768013298473996372360471651948083730734081406593107033499277361263678784172300433525585658478211486639678988996733456381701094302369530063390863265626475821579980618083590968725607397724978304512337429850957544332984328449950303631805317585249396815002618468121257797812127681873708336828585536783494483348553065307653548305989846829471754500982419811216146232040807518298350045661024110704458322988264375809174740297232735880802243525643863543481016512788628184279275795003732206832076383546169853699000772088497391885455887976951199637487657332882115702380430254881492938892064583852658891127209188558988792621782156563570674397489707170580168208709259991853493155031873314156703300144799149221145909048534556144274772748605369794645748463906637129238000712151386443999082287898987802215062535074760970524691322344362663528607566257329844679175679161627194646773129084004406575285223260487905500768903360472550657289083651101296906825835722215964810012202049940686655987694351103554047780466106435213511571924805569632103313853403322639007888340971295562020482432059228523845570746605496520611680711006861991015846626924541315739432506207709645415288314168482150194623115308151500226337347853176930440664836231668052880968498282850256253943544937504109658239791325168178542540205022453569170722855634438251042208101122435291226896968411978684772515643010824517056522246291681775410956422387177082837060373068099773015754283283758663269794818746023772741824294436615348556066815016321927908862044902079443427357775511822485769504493752778537550985681764935710071671452181150365665035936593778877856229840575302240186273870631768172013872556989297473233947409558342940048875008138481179149556640126769971708390927426529965067480224167919787194717487358984046741019758964936909042156779141168900434531263174818881032156270745527261983338578936795537978709274803571505620297652216664371135638945770924818832573742960221628115340075629383584374729045207079616908283730019382803335041690121170048657389663133998878089846571767668301292300986029805089723429807286254258339980212931392060373446926763589306349833010289639191896844601873063910936301797960312283566369065448780071524409342037378306659645769828757487881844783096494097404985975828025028268700502910876064761131970166306544873735908150753814078369477337812045918397360892613057720338101576562580154503475740284405827497929681582893456405393286069014850414011369732661811390399303386455576954695759980420363532492085596764204181242387134444911630711524543846534531495392696467732545457872741836100830343330624198391847301121459399370787976432051340236061333996291446791649083204427538817710747721813106969148665793775101743693209590040511619133297668138620630837578110032356270662612356932163173350931867555800520338847642480832563676756748651229504012546624408735877226374320982263983872469513451239986830597619567575116207732125269970914461082191989192927788779874297803541018824892003603459298252541565257371170768160237063847511698956020487639660588407560666685673481202771942280023589420430591623024118960266483085206096305051487959496589959329314755113494220601821503594897737631128646471665630639608621601897164998144079158293639575803372893736747512185296555710329497817665976238148975318050232378227975953177126455119807632953565301545672723384958928974669434377216124343787264693381566309031794658700522893066935884431269031022386099490783386461371197318098010801861707074990825703552888711370349862121618381767579186306233651531712031165233075416046621620715631124170682177135295408030770572579889944529101640049078047917513306641472232577062640473679595477765050363852916039718782742615299182288917923192251520602502206388692714443430862315776684595272510807074465102129248445168793732031352138685470394709475811830471670394441288978825796738485612410306950836539381430469875140168786106627958643656440337052133008987261762643942649622362786743688132480553650591172537448012046042916919812308044322065371614321709038928530713612200286947442871706666970330254534694477330489248037852225191511291633480368915083192062620744343718474292358054383724719279223665357627309741242640882526399055957959399447412409720584529373803215147085707508076507852845662716810680005681516785897299074909006832770772282078568138423110735712663801799430945597279476722542033547883893207542962229031427757300265865293797581669016281409994208811040633100395587933334026994063002929990264273880846323359391131397519075070233348874006855512775621644917755194736828485816755474169244753305214428781136096191853418472048530413103678752201522343156479039527149517093247003728657693809706009361056201134815172087905393992761213876573773918615007486895471263353308702582043567311053936760984537561054363538751035041692456029401908967026602513873474955368750647789634740469353488094776228193433706477427466149624808751030706433486000266245236749536925786519103089569138505772853745222984821091303184404496254909448333236183451258745248076198712094010862182006806919603420235565480031384261221779371675255033923260571664433474813824635080551816703770481077664756645241444049068841043897677229540361330825252331216450946071445158020792096162440823423315443453278117136237589232064491226655240370916280734209524153415410134133153882662706566979099488978639556230225655571398286001195704804369719418673216172235070670781557347809747733541152071428591017347086449477047331200170469566049247253275475791571963913543058606762125522447440768328969717927829725581132683758052150185016540293365257928452519712643846853977100948823858625438041726190687680323576711512127882207510978333639681354038305561321789382846396278989729545253472830575080457496571571795624828764729211306761691257097740550874822141560963610796394493973915484021872161358354564898929159796791790835943966493824289619028703408801175207900691993868585456146646846337602146365950475364176095335607636913594518387965815160076693633186082062138538088910387136644827001925521815976656263879021719275263191370869304218168260974971275468890286815470066900325504869551773967267571856999295144573653551440597582868723481680952195457709843943170468557101834391219569968793987973264476575301434500172557761333714310423111669892058414456449280270003561123368992387187321268782567262261054525972767692289734265620834231238635146343440828328332198718946085598036450933319907651825007103627436520097160945669966242522542440167433330108214064334325216651089209659126775363987512023361611767003010329096127885585655149544749619595202755761348889201984600333178834465824940832490281954348602470804548121277449030989085507838333721394795208611151940995618434010935952140916146669376153973242709172034814553803815284574652185356660661500712797061777105821282882134605028420865945516318916915251028839698970484365165805482469197741078711099541233027010540119225628873698992993871781115489773597053427603983219201849754316661704666898038362365655421754810299124159080661187167181456932924391232367986927157060339267589536349480800732175350332469538364984534629406133736453419914104609564762491285784365442826591421836513174656063038478565001616614976563428722361413112572546381647108575464266725885731890191301354252241987128985567351483412734165373244043272303985245929788074144198271781475417671006654868172984762464964911877672410548482961256218298135408525545854420806609446602145144410676483979221728763001113058855995180706421690718412454220091706365910271043964266406600987245005628697417456033619318099314692327132385999240944614933639528621158276374978288324792567164385658928437249002652620986126938992234330131732264788310842263815204921182125647536025714173714570165438415659336813640416119239042865961876962831608844802301900808467839053980914731226627171900902604025878220386392098550339687687773979365085153168901175180711611049357257982846989122187604157132694909579281936455745238127150224235737422857055091040299825323248663129255275963679681449236354810334578906431740606079122249459157985779583912033588685642993849560528730022286175620133031478477254864546044108634635647461518370943309086139430780608469764547849345329324913207708693239076303486739169295971781225870405837237302002673458883716471678576041703563443052801769298587080232230339358256389645963625932792111354372232108171555973063194235217499042469459483769980974393384944352037341612693153274414381819063919557604352224573256160745004257090331716305592871852097404295779784567458892047312136529231735789972032644049389167096173401319614750201709601976744640066052318119635538107678488865870870785104100492777819156031779286929335180909914283531841705528400616736489404947849454117750797160031809865744367423063003799062016098492131416765286524731882566655587370362321133015660062995724805228937228092976159642485922432640219591273911962065182103859775777546235906076769510323751132160877923740377262097991385964748937160419759875039163039489118694824411148896694343629364900080147803157354524115155487495182079489825134616714525290846432499311331092646017663078981558458503058928934492387793981364299462338963231217243625324705969637097504443442275285632849551131750322744618701662494496727451455962743078536131975768840244348989335061319856105168901849362335722076985559306244736258328959976254165385147058091222791742434741898101487727255587598785272501546424773490815305380351966739423123656622668275783467393989017825570694498814055082946260877214544274870437389701957071870598385835293808850615131047000301232893897527304570084868130831720376020658321570733326886481077817334563762325208027237268694846543549912693437887567005437891350261377755346337660933489194653543959621347379773617350002518158877787394291253816860977081559694493995797610821775389836618017169272470815081924955086168833982744736749008207061631890353878987596423137189355548888629792271851671960996068872177794541389401603996731298639385562140531862903534857603741328673631676104079986855012952456896250072895785216178115645203124043759293143438386332432020961428932829942868899025804664693561580005177295572884080913068481577122114776365948489262322304082439157862191258471687641348281601487040497472392357855639479971068737418665089295488784012954265086681817084014470288511378770250708339066361165331556630271239571371296694724365467575585839912557553053750633280715789237880172377777989491655624078369927187544431467331836723007044283612799428112917030070802957620127357991576553707724437540762046971058644757687935731149916761264912211001780239104302634418569547339515709968947203260879705736439452538799222028791037458748051660576584374633442558143662189746814933751674468799687673868477941597838567319983621053337728436393181769951332204911438956824485488424031689451023472934150417149896116945814361908770883337096024324481427476693309273420301760604056334497522475054901060197539521851952673785359049406852993673259681152990960422390943175813789533566883042949769310536553379950770959161074524961142963623345192440035195360821959511478568200360000971243455571260299219595908549394949317051073508703639707393814050729616365547628817665077426266116488678603507239959490352988919596686475298381117685839224433393011719079905066129686413315346365109318900266875858218632404051484644319233732327327247426916735742836165863758364540042357154315657401335941482101999106784726910057343785378328046781415756642783847697024525234568524099705955875837479040066137909819299976095873543813629074031905387458161346149737766414574397622386476429106552343938281482625101531019263111476280886158198095251928907255194869003190820453068725892495559466359217740503203296384281674828426232215070894714199979101044227672617985399886161204255949771801067421107208022260389750542268304845405691681291567667392514033758748063109273656660258298904645926736553879118128029758735311830625254108090333580486383684878788997559698346433856865470189031280464722099652999134503189655374329019908270786273812683990049493249798789019277962916504930552334898064600680436497889078687289772707553679260625814854510625450577654417776006505454359839677296322741677648578026975732478400361903953784296204453671211335230637598500650477851523525453724843429739072512340029686767155499505644388266651060704297745481633282091509592246493714887997187274072110756594920644008281796069193444845418901605947838164261265846716789811145918081566720015042389828433775089086942013574382207320200884262938255806256959149420161941970536018963277022730799878276681287135640322003117185207415970023918408214314726785297741627026502648225348100807243481486981220941699863969427824063922432995288377376538775139306493169730198229080892221311924404959364228223866874784203899913638587558644788477399593469835191130707517702736467046457844493051748807430119435406391310687603443279874721734183941744617628851423461821864389747704971779752947665642068203507791357875213704291887236494741893512203712678785209774424241515264479130884196412395838113997548783551453573322339005683263934231313611222252532251401491022627075750889276230624168873601063537725586190311611093780518153307907199727901596298745004925085074959777373233833597708397704636530268590505652803029855525997783941914570783090126126933643584006734906501063564102937770346353847554122014934333622539802402502443892508821552795297436918715248498574090767794335129859254392907109905411577552551770261677223984734531069615783289959149010272629904528164828532789296660930810852330727227791447468554688236244225823714299199636521597249605755873067455324918022769545711239755475048220371896199987141731376845697834871541383594069174730635737469653437122161014280378008248005338845541660678700387472071829465943912399629353335538498904061171403087407880185698184683922664986548777335315026585187096278189825561689840400492558717844125712729439806900662852579526958325863830763196092509643080731484612358898678423157164476285990887785056264761855735164954095529693259638458947391182612428763760420663283523160597412065929840566716197565097028572280716797218516342171504384622812041774292217862582706652217536287294015559165208501433018148211617682551211162999606126541304955995152538252943120560584606459872939634012376681062035768584473281855310432440303813370374270013516605425173260848118494408198150778007935372880031091954049519000110257392389834885377183516588363397474950069995428802222751701654514026787989640272470082448447434060428036523997195311753855093804284448474368019719706341485659771428732655360096784876397425656214723529626350500097901979811857411900241738498627385188304185514606229232764764382653280254394497077246188297909208949609978978885507589381069253899820252325419060603050005685011570658148105627408298034718781368375222161006803412963077755300718563838724818446788141784104632567465423300344406157765477309481056291468523451446605873173560691912024164485993850339313947441877870375464759864892430237725302062432851983395431016851883346852476577409838429804995348507166358908540183369020431214369012152329644758938687733723003785679489197304460823884849633625404308901612294360887051686549423891143483455926671360485619107740436448879253990863971624319004271349634515674802332187000381341551549514345647195796554312453835124661787160968204525232866515450743523505392284076384921000347433158209651224021074810408495281015300272247426203934787225500492378308787473440352804076342330215290252708159594508406326764573803955373913442384134587371769122159633714285294851452989421547323150772810883516304035441980927588572009545950127282072307356850823747923975028413324993076845186945256115356651876070817681264342814408284695958128853514765128787190264062077155192261532747461879658510278578094343099739481471632593524774256369837668608772952704762699189898798269080559516841258303845891160977944796775111148756300004056580610673971112163263175923425882920600270711507732900480455722991325385892089111662588235861870642287143032426774017864273013530170368873193486950516547707541743044799234199926563587378040693380806671767306337363543663972017745835182670609440478091671957163574703022152693988540322332401325123649105413568029161963861327379063431070757789704818564161458655493562494471075731769116935174569341254994963890192815295071231530656288816095426452109807766769190102454556226513407218279226066848226347757314096843866524082916905067854670705347838608921063404481223080417854364175043151963048878840006814818770678685223783922427874405179483367643065075832837501638626253291019014480216879743271640752500473915787615300846322699098529327746349344399279104914772671228298747456778198078624404937059429622976376841257968527851573864724529248868669682350684642938802616933697856525305937078779946286751729307381534720053511538342502239797768563538512505618303987445377659217251809577584815196318868986866430466367776822317044190272194197415082629977244528908928203768026348389602427326049474447677352186376767670936964936205139024601998313418542347945923744796959070289564310771154188557067077161251732353438484073109866497711860362918676623142759196885192159265127726933425198037794075406166919947158538018408300559915099754619042794373630122100403718818634297321992677005391602057905604499149155861971138953883173058947004685494054752947144206217595148535948764541862128779841278809508446656871694487234629001938039599623736554830224246850397562890982931939127274822404196803225153743607463052003549017242503086808401406145921164752890543630036757313676588472694383065427968151218354191175133642407992890712563693331743681009261804266876496257328971778938371664262846095012365490719063452467748027316200192414181334534302255938949592522393070952341576174811316257155484248402137210001616413994213047912632675778725313540244801151742854383978422350550509594315933381830662589977026840650667846246008662239510763393189203148222456404064985434257788879047709526520595327888032503539958674525511367972738896110829535694699527140906406362039527103305988495317712748616908262130264507850542323633481982822825690019609349672300757445658562866481183838879587855588256052214058681414352132964160111511772726604998491329721337630477912791231297800677472357129636554536282377430093099755320607307112814260791342957767052436250958306035669394161401107338514685996159424908090062864765629789759146858589768030630656185942115628389586463057241106592167124013434720535691770034791782915654524127884407614453482310190193793098240837844894926915288881547262159505653556527701536660054328685563656410728338691017035459405708631813105506013749427234917944129438994191852830339619687521331570646790360956123381326991460515894014571626229801276952599499006822879792444922686605273512416517806761526139764394714279293047740125457105003734755951907579212415875273933491225391443872705498702331666540821940951774777711270249345910760414944805788445937236553524883563183049118327180153246691246723664792295265985304262961246499478755433831751215806895102258584223182103895668220262787539521645607152678630228981669532514325938659146591287639586161993112897290189693787684664921472127549868957492249061260387297980311101608429650621763590502448545239651354322008797177446503099878348966425495612570131554091147231873632426043260697150446185841458197773461918227219965306312655838470034704584215611981248008901246493228927058786657942381170335407870852284223277204755667019122809198446585678921305063207923836742702264899547583627849064978239671625813728551564484273695121803967496780160582818590156901268491485294021978326687766219775733432201977789263127166127016358515561303181678129371187642166977737938069140627134968982352948394222317784309814207251038476310524892841992254614858707774642280682352470618884693927130990963655224699138068532646657926022317001443564738098769350837064616331472360734620838401634014205486669407856482625059362888626892633267952609565012302150431244729849751886344005789290847454433530706881509601669011471429659456687717272027320314597546181947146979142485868785369680777246452698517543169720682678229700703708085151858572845810262175251076148063505918510773600520958401258206425896020874564431356553346193168727245963912392802362237107017205386217802346001774196788702560620862485885389410721018585626171861481501244552409487849610964146789048519751287559132686915243185791400523475325752950371282440097357981722435006950167081409679407248931051089452708492459558393662154302331660524687465867173313258601724094912656929886323849599421646234354312035389788667311453592756957272502938951551819735659102877572108054195943356265175199348697096774179737199052817614660398294587009235184894891901300766279863676209252006406307422318695153900944036088976008030260382635344114199020011723535517233236469356874040683601455290414447739160966397579851073745150194419682050266128971036316622622311978377915889449401325515860023258123647827692217425064830853039875490408602654815382664564009137981995879001882068639267738491584425521976371884284979848997570260565600897592601957153757096002511083829612617409163599589661204984359455702166988983507841453556266421118126920853139356494415523008488230088979986696440147208200898780772009547547631054429869375197856148896237796399788516542511054446178231792223011618667203689360755879096199646647667845864894599275969432564482844114482096652808189084794207503583944826219861475043727766417143268717994976639810213184220626038370490236364996402177402388372825079841404783385457582023116189564967492973257892300144510010880900344755011935043392126803979521379444933632307813119406492528807281512637765267960074495389147025775504061914367178394265842336277175275560596470824754079427037209519373102906777308833760761036013093800807281778424213072544559659044322443675862458518797048036813718493647675412849021073929072988168692924227477532314187454564958802941617188790692643911522676561989258246867890511144065026784950867817363925451175982260604891480944957023916107867248154560640217714479161687664233277069939903177628088720441087701901673372564887406899903784985203998576857852276354455507237179164298073633287404287423645369153336941823788395439577619610040673082251124480281261071327025827597451912355583225305240107277765152549194762478170678576757660499369974325369994163473145438407787374015696557101609571655165883736575907117072136452990130311215860079481977659806586703859834516270426677452926013013744043938253034648080618240657826603827091473745421936450695068149332762010980618914391698529313622927506816860165058905314243095455752007147294217926807816118843123678171576415958781544671626433594656310313209142414109924844771014964853259247856353222698693839099448909068584164525523455907516320762764168722840395473755221158048534980402603651747610144386399392430835737809149845483990315028331406568890441258075146005012375879279952090549030904213328905672157622372081477953284336198780025776854660768648051533432298335882856105018754787078454667601322406210692871717735938379965853561656588384683958268702976506486599063922738909870889105327562715690963811347398397102515415104336151755974549885604737882579176354635862168052566442199762419088963347336152546729691316431452096174373626752715268449514993588779486455890206999698168351062454096140532735363774617564485052723603591131589870935588560584047408670195758847389666500045591862646154729676380170905982060950515707850187936687917919138855561643263863829344589050791556824702545115190449053743671661150818766075422126043428777549372267771171413223548853265261445918147686202093040840929807851001766440625872579174128863944356236736171492484652515933714762430877441435153012031146914706209909694533871880596849860456296693160405946213603441990968505337689278325988350859491578340225843070616936236197096524300200742600410945803938399010057597178730824271032852191441924016538723071313109575038337859940870043716105778191357589276732589908312415387227669433050567287458136470603024231304673204625639073305443859005829842476969214582998115369932641152877885080980881824206443812346286575067206872710612955944818794125148290752198083307615774932047017083985347397632983131376502940371440263236042831798621773085243600491423605255588031298205669045614892156293298426706798032003151987611788051311761226157101971213398072508998912971348383083331164163246637149235248832561024243403576481064887568994100302343252586154958660177305381831449560023978933467760184670013915718758736669882435027849038982343399387675456127553983605412509151275747666695136834295245790807237943648340950621829471477365378961693163442117895666191699460920334898587339724190679902503169106180992178727263969733619980458554463451744603766268541213227533593803500894260496430392509607080564590567410104137115629472791151989237303484115003245369143524824776883705161951495985590163211385407651765172188160257243410768128677787556995339526956140409613655252533042291774637887676622284872353139887497844121016452232142794644736585202072128305002617306000490526768373580117452190537117069364876345378631222889283243814245686944466258327577739594384770641346700855038519886560337000419721513755871406551824441589568122013682682015224209349656833823485528570106365190411756244114443092140868484984223674224050200240693395340577900279417024712611575790387613952599039038068545961219547411564785258043316165353532975453450300575764427995325185103587430074189842586176071232039005136545003679534096617333696225234630081944691973804779795874328934029518963539245674672857906781410066824810409036315516470289994828281873681815232917245662078657536083883424383697900197807582116657209014385507808863930211167903575228499645251749589091563590168439266990701198759779253037651456393994223713931506428595036922316464438345531026527275344453745643533621853304140782894556325010470129618834226720258794009599077156266129477553681391867501551533430919406460329149566229664186257166999903606012063698299768538308912883642929639635280613202197685900368203059735434751828145341158471307017252333988177515778318212241452772750630905744545038846457237214857859632193906991236797265890815495615252758901828951336938069271135194379018259140966202543344080832426255178746265269257843343661949027795227361005705601016182318654389302144415067116823305997285400315537588200798520610964915972184954227438373825158023760293059805866626544741015343127451155487644110262976814888235450168549305206567079897094629818953357662024578181234328191074492427718003320606816359320496073505017766384591994917566850829265906415766832433563057219595704221603664349340777002782424902949934217583051310274984598988670798201642266352466702866128335938062624828499556323449195211936411436166509821992991861745726208963696402560926519370630085769088640536567650845950683417947198534983595609029593394947408299327155505442983379990143338922848296365860672787806576727546529188566351859671059385902029920849115112310713303145097146910720848228626806934296796456457830216542553782331461715225740376340171867666008613027156821337364116491435236078506003315315860760322067808017056800015898400477032713994297805003693816319162061306147746932834305730724510465855067178380655462884675011107021551047611783152099522017254144716720709281240528099448809067066538498794069777245064319424670179918671288508361166804689235348914242677543028922344482226434119069679916441057334305701807964563603117282887785195686507661517721920272772783287544524446299892340281835228435505897987977117829512393854772203065093409416469100288549390984814399057861504498701340478759859464002752871974879806199161237936092135968986204901727142474217396081404103389788413541651288244036009616524194721719543849074999156985974118806718952889587144543489988037723604277362333479792032175460058917803113122928499054982519555201407678192776552602351457695840819124878607015763113915492663872370257055983118684025443417845919645121568655920705479796885645078617667253566912086450149180210549229972518272232969587805400276875883135243356569394977290683379629631169740865240777963497608705099078823057591867975151528549624539872362108471797416254000023978480125761530549634041739348018445721484795573537145957202200653575830682562107510020230787335408059314795562182119525396486101937123762835540976320832513709536661268194330443965469615890499502375169382508764005712215711596995711091735367129383844396291390615245965020908060591930802568194788833727508889301482833263544066228995395841341051916145875362717893364979544150095332193317617205681528474232797666482820715343539783760235965364469424247732190891484227026634050843328243117353250442718693374942228559901526274445069942594682190112692499195694806665821440874836284115457308298743371978008941024422257684835892869618633257018384585787167754701484393776205211450990360108568702961020484058164296660567097479066928981831978629586570169551939060251699565031044534879817593584176035581424209506128494672996820572822250542459763173850422858792184714989991714572754499777195575174892312051058690761894852408053529291481050753640585866565758035251326585996641798777807289772109561348409922115242444815128170987372310713373300716979295124962223784671186406631488933359807958670761692838776317795940028050974647783141180823751209814090921617419859734644352932424776024902373806972687297716807822190464382301446246376418849551561373331686992788386171206317800125086625168760249077692018875218377777935374474028655374585081962380849305579622956568216253102323162185370308963745994224160262680232312125578531081262447658502760429387539680726116411174291332059387671299916367688775051404583108286811775635966896705943783541503493113843339086557913916677388102657842718480933130151438887119268439529316633564994355631487932894772749032464856207152647139246164350836010863251653759668678079693009004952777243888195412898869039951443753769601486362124354591345875141987306163274042891559458313689474033978615094528066112865387046087675578624007866145658670285227472191936636071119209023249544408970597087187653312233773694659833554520518849704431361275635704988930505608839083496658469726492891260633981402456873428175185174995484084428774481775551445956063050522398119616629329152435007663045453962313829932902745033825710843562854253656833457014644395983371778791304738224412414678877137955962325227084830187180108722782832956447949380221521019511474887649645595083654214623676037052436762021021798609568004247800706151584161511359480348085951852521569948689429590032070202760589324227066062931874198128540732069227878838614022720375992468265205233263010776140975433083593980393664736028826678599390727296341709149464229770268046372841133211421597285860946574749548919457008985693580979932534936959966231968918878973751080019809227571990490674762813513172935641258960225588310296454013978305770887839879205496682710108779125982913398119981330676940599744797222939957429110934416166432326773099401965211257490868136755801398883549717786072088519608279674148006867443720826326021243038605088720070835677230309598221182718021049582144297042987439409933454090084144907483120025147081271218423358273428950975871354168148528443827338222834141592239579383240427397225793755212455061779463411724075529861600271207078910434646905131842116055090974916282805609873595053590088920935958245565589304257280944343710897376640853713584103345550891361920385594993930615986961299051129914226691831636072539891705042386050537720962148676988078444435015366592483705944710883171212410574869574186246832216524971674028381652146305512658759244117919183730932999201834793176477321441082286204298361373885428637819378658003822938742884302364130115864622712114678231162428072339841936068252089667701235145731357866387731859485202134381984130232571794804046138228756381199421674042067766973420970334609311621434611481718122270348599380135634728611877687738319478691930253634571565272280763725479440266827638775098059328590809553296092445295148300734193647556354949145444674314301340736027190213503051415120384686223039534322379826694265745344160607407455857626537170893705000518609300824427631562291431421182661765094354485931833882544433269472093524597196888707242711207150248974434370063055579064807789547037501395700455928133580908147753293435107290860920299550819726304677057300591259389702547259890107107820159934329906932435594914451821024044602601705131334287549821028340064953553900419063854029645506176981163655584115071665281098564783721788934915748768205586498254075365417043364169741954222618105731461219014124868159953059044013161456349752314960793538875297311854353116608278277603203588365377741154708460115910959633670332772190994936281694070600395881096387881726682021545300148609962495532821005253539591119769994964835752707857701757342099441694739511704029723374919365989394057253714535524769424505982890455520739675911892573599003347802015858174777843894411997455367558409445424871488443003326929879564715517006540151214719986930238421933397922790150548725450610212519527430962138362849209875202209656696024657857543128894830350068901974926991275471791719835282627370487309556674958454911477140589531564583803565605045012276144061120156666974993505355441564111905053628849638936996362161843096533631457296329941850336691638524712681230713138288906411036209783069787644979579747152896999194411526957263661264852436681450706453097505918269730326533300891515147355926131722502530824189482120084900563010431494752510462401330144800832034022954246461765726000931724286387103738417396666169524258433700603327533703886653618369654154277867592873412963118307516247993982696841225724807510252431389869518590372270655905613061680699753574692368300330590162740478551022107604782372526078243373677667199717284185466730752931410809082953656256215252237086744383867680391805993293324002065227705453777310970837845010455079259661822591086661901686839549269381897009837554030510806744506441925977226298806380911610690347814230737689434669921781967870284647867453982712044568510190661286686324111711713591350511941223290239280601010491839481501041551625687907939434067900623021626884332163356941402237467789501798031101019281369592703763364807406671564943264877252759242936928077357294373872828809941515540418617827335556323348770270421775793181883186854766798342959472642063483956081926744325179364683249802091499734661504766252576669629160224846373280320094703899276390260200749086419199037609283637011292816347365032056090540750214043058554648236735744458828074542341128774928871809664659572064909001320356698367221176161129103735456951447134293738664554110473408772917192059220252112436722588396768578954588991702659935076493386082028446335114475697561456125930994729503592263620340988128851205008677308841670695838278608438767877365312897439663335385737800186712293702199295089598970107734423921914986409118192973377813932901845766575690435660134133574314904964651271310461675411511944139351940549459780797910911046978197127742474151193899097047338402244670557954273181623922436276934788091449769672638651969333789691971152825484509453711505095448947234919666766980440032237160302550900737761111404934638992980183934130128493770050239763207300217110339535116298895114600541912954624009119163479226378862785069087999284101816893597401027707605351509451999696365271015637504404094962296209967958141138324059235904121379701188405022041345028562978701672082673283932246401541377820477391462815705463216798793983814086068266320011454218281164664080359269763886484468318167578186913844619449332284706522594312709284736392713137467304630258465511202457474903642446155050334697415236744245277844314499693260067962030361300665137114367264126018374056373743288742012699460699938904173975789942361387591456178820973122298001715079489879061376970230992708675657514781456997442621882815367205706182905710922027501295370823250783193352378300577614082875199645947631927188900121817651363578387733150136535198684469671645110938322448772766204804866702813950512603540832122018643825304236161297258323018254488887367310094714370224578667296047803891469319173062757738939114642051635144896411408646445614232103059324698438945292871827823485880282591750648817195003581628527387031943974977053142551303747460796982647629375824728142029205727815842942263928066468055971259434423686425261171623043754294954596573212507348455810994905693624969126001766585289235638388160232667910314681836320003123977656273404253536932838961711588294658054457554551757364107713654773925834156137882800524420400403564931654850137779029860758621437111612271784580363633296048415448378385707872635444029423141675942110316883415747611829481412376436174099688398948066467721258097571137468453389462752269011187562291012376219923954579809823089081604872085546117045878719386704568608741626239776972567309635928555976566166521722282535290900025252721869260579009496698717681969312424778791352923682654008292575227418108324946793618198953951495368941331530978283919728364127005591804685672766985056688510181569241381841713010951381072310439283423186263495889276556771282120265951503467445464681613738025510985876299923679611534163039529187986814208158761128725987235359647514815779221877089443254283841175098568979641245192313141464109049279555807784261769824446034922772642180950053002037941673678488445360504349078624232525666807071477212058244377843037991169071018513514856968356585176898383913724875216881574494095557560111484513434994207266562520081506383723934004711800166645440383869116324055421332961503250757957954605239566359603973926441315624057211081572098758833268522786591014665022588525309503803829331343837157687802008774781527827625730582259167358748986510899361025090510793467091821884017145702768444163324174280304907398304099900686651022589843588663371136165494400104715334286831928912583741325895207078267575526576129028938562840405769761725532722243691249723219796126208262044738803184890070777965457646446945315056267485615290098833260376244077525354902793599754000530420792823426630496365421639823533704725033818531898655976725670640526576492149127986204660662859369562035950018293881050159717807139273769444139010262197231412347396272975786889166306531418238427724066931037982801698420783883167993573474124727334812215835413191751850440071346257687622784954114531492718448601850328167479468256741668943276651827028777502843299865453745528993259032318889270094367190113259772842854615515020789309990534034070132929027399529505982692477896689337391745323541098629872610135550029576058635510632550609090182539685093977267980050167972358621377872211650619586465119736125837682192361459830609369151285593141216612866410356895916959039157177916781744750068486104558603168779162240511547939386495688097183702830851585292985135668865487355755187258031884575132218946243811009151918581221846701278768431161055393936200322488212763291994040075617419281083565953140960579172257985884236383388494828653810852043081046205344297876393523109576500837817641063190642075779568079939177452808375803158083705211433711632483557836852147891257886325990980002779985727669871795793194536558962493103639849432225756075954720888024447790372486562328117233451328883333319788937841208226100897452705281875377113516567301168109289661151997118243875293742114739859639636892298082469908665021278501509366786638028411516706152733387597336601103586482235432976763019323025672453047589850351537085951755328084784077746755798257972364470367901037523927440514345276323803219371293160781619978557742088345595944539551798503031092792520455979856742408914923624976692865847698737979627426985360343368468562259703920522749192027580342354457628616674762285631366488702475932412054779620995167159574904596476630290168802597548496261966559064141453275618270485188131517426421017312381910173221113730730178656705656396569291835889208753655178571624252517738505997671531031206749382597347217143524662545838847408001771174951944456715332038237409920612554199733402800490886579799933720708057919748479605736394468098351859169078701599713437372500111611186424752189607308149682435852356265388076656366362750165766846274269625736964324857913103511166773866863402722655485439717001179922090715327937861676032737392654791968685023477436310957286678305451444872616805918998852981468420472911057619375441517723443066486384591340694014895184488485494542043046173366757018174126266358330922972873501839062325481048131073638555907438999434106802992020128809729622041226982652387322520143116719602669741969191576995168004524283449402109485637672226760913343677001996403718619774595405176696659960226516813155147514155284205775683050060926058430737832788419949394244951691406630645844812015709622461096837207182114981556897520637308039919909336069010482792102542238892353332692603542963964912938978747324267483882962218344541310671797177725088628803477660196155268085436107332386054600502284206098507014129558282990075940606056639688006934036575083957450949549177059667733343398465622343058376423308616020784102543908728361764700881061257266741833857188329639766037825007282062854343890256350638295351962169513453102363638042854727094496991945915950193192558448613353345002354279059287254104298383444092034113631894969110893452315546729539258096367155461201863975810421387947771179490115976862329219612366987390168511990238115012734152108194020680767560643404808777193218207556050710649200676754174942275095504560778582518716000227796481326444023303821733436172914700648327940526382020648571609031120672965912796382101707918626479481160235769792485949146547306765378790381933645975640417599347244054518904576707731384317348796871125676020725250039062681895450588693777622532618792920459285915083592416833030037725397598061161607670455795058201180652306678699105541943438432192321186701603061350889302170545842183505646470600151851275219439468269656144374722263897937545706532465488256467942748767830386487092515019473524036466799872176816656657266394794780296925328158963095410605544821633213940083924913031407013644276390231002778833316277414110843597560375518850495477401524242182345690437451022693838954312897226072013545723359028669065900674132988236232412702238058584756912691773428340194854584942933737722170938200046950331340826710284944569241744547852822508501694201926687677234309938991922636279355725935967568923934339958005289547436800700696578271820684277532714408785473356023186325536385817205288169087041077107628748559763363342121502019585137108149361386868377878714471335987044839169468345534760813817993304558252121207610888553396788815373635280549779415208710541630647796805107900393146273690845581003339125214962128317333537800984166761220184615709581198983447701783692352744341103297139336411184604592595974027306041975420214019027081315232451386385354684671128333684927008689642566234309377871227606932665529814823784225222437482526444047129171266429799757397338874323957498359348768650768774086677725034628707670533413187182592898384592271193059720008137092698416099673965516216524522205795624635751995659403866195559624862977574785094549031059779203063475117017403818810614953587071406134054158584323519707156384324441022655681810395353879733803583034275241308209893537190636761134513756299080598785731173859096677668911165836354795034471519767026217597984318071732265785324930694852226889375563781151999731240632971123730990694788806163150088739931577571119569922313697313453440928628838240097299368478965066612666925938729708553447224829025944290074864025434506236715437307245492034491098012251895987845426257601072906281996769009902771033680337834218273816311688218844644162031990119930023443120206761822540056857846284300980217403133215372376004072470888816094371709306393263432147325573590547401226944613085430157430527812617163412330823296644259874998383276471283027189266482964232844583211011329875756869973298099502293009777449386500173924643882531274673007463947877803552436890336606464441333653799001647383047048002468816338979160050414783209180250814439675465322117898928557874625912380473491355699780508807430142071184480243468497441264805402503983261238917480398873222950233996474521179071154408867839949259401770295516909813774174883239328095369409360317146474138200891772706772537249265157094167598673882565457287784376984368577478813835665724849987646434451838890202882570004638474448076788346622586823075486727992481867906499576155092662307739237815753994134083094030808539483770436972433648016485996400547065160178704491448574288920903279527304510469196334934301302375552445937863742697180471187338268897235850115211103348810727913834028295000129757326545109334817772746284438647403795707829993351080603039519535676154883433687792409642134780418047522958095945189415939104692369708665785662325123278704997747582562470185522475227826689863491848179990329118804950355989993192817369020696534373455622698405391869105910090140512485523752275656394561891279935552668819990569922595731034102387260170831277742673518302755345901598853153209540539065831499445729561298312626457871291400777038847369460458275633190151029653564752102321881683154013939584806702841051178514778902906576684790008163471836644482524601851233441552971983693216162397689917130740416915111747014169651318454340758290741791180142021515226481672806332382485292432682298024448132750467889743691610667185039808509394494090411493103096799692059875449383505320815352712712891939367184157583141416600450016687312023958706328256907180423478685542050104888275035816654990540458694371282843685170526461457325801425537047858895114162813769455489202664818011870825000578223919472611617031608474847715737452019461821976573635352043709188561126294280304453490448142301547941393508245971023008669753330581542563670061866396385303858788020631097672569984250001807071243386745380251992405391129856493154273694076885994034415964140185688075024669061704991670716602839251590102705825728106086494208440582883038978207079256890324522016857341479065943991748318350550305127118531729502223052847372542570395674864500803361534686042393551918302377591730542807095756794149190065484732428319860405230868494718373478681672258827759390552632558608092476473672293277247302371751665985238753349698870900039287707924683096682066404705097760012138242835797798179037435241486187747795707673650924045948085487084975941416464380391869719780943338895167657382168039492033583567807396612745608165316246640920890542450158266694524308748066287706624506758499644878576664565007683167222594035905223598927032701622852669280101285545967767721632197754841390982465372871301350311190705862923354780153781508286307450808692605409538909737459482872321441953331490085184809960367731580429085925071313919644928686957081153656114015944254812171582872197003581730452000793103342323719691024065425064792546412804589773476447467665500042252349028630353833628546669972113108407988976556189903335715168376071783673323190786144017901478652022058921572805213537372503118262929219127895999358719493704762858359959619558505499779976378556594836554632203250027279580149230800733961138978000630627209540578691535467927396468635371025828469803777807133039947425407327599743201156290956631433198580839521772330962437571864379654462539773041340774198104355450228625339363314910760064581040326171771122711413327085161382903790961064444710588861028708554545912471405715579098069606329041916445496836791311406384120219252543079036456781291897062862917214165628961473179940414245334825854367376353508148165010069781792130156302086982095216107357119839829502347557325537570757902616899809634759571989461303051011987923999972997582180811249309575797400607618118373415148471977861850638351970415463114016269907749793883014310245885094931363783608765840544922065852314708454952170403558172909281079284759176134064276762479403715725064655378005280679473451966774712803478410362856037262943366702629912537849155987524082245448412039424389743457226820599444717866119539044736300580545009112463872107080745957371455869597812111287716908177572140237846519495637093822568718653987675139866596926055317962306473858908900535107085500867650977854462068503825498097477447725760921366837200352776084861416911452606629933397967428310374330971782386449786310554546310114407772613249071776362699247137346717491445975598082108085244804165538628610647228747051644830771834891847932146178243003224783317086208675261578717342048288053773059212014214204399761248471383327914166314214252730670583894517307903747187436502743321559319076190313892713866321524460403920374600425819179311094537581269505765486367636655486383040873053192971934673313664652448622346673921203735419059669818600825598296161114916623057244296721952458825686161591807865734739647737460974896790092461627744755099335864575327954022528441446709431949895477420623825224196557232893063816489333264451501668543570650956648668283903283869297321445338620320313709130770779467290493816904858592982542874665460215096249561969420180981354566746052816691431225118324729284088735379832531232294942457878328636893778949572084004137680121058492935151761359436181191866431872466756934759397675647685974879371512435183980864449225078755377768666347381251958300326553896275556194211793142172521982383408378750280759461393624683754038157888306097299626817417649208954025688899773929391967071463327738799493210476747239118237859666348728829140320369012767383207261722895209742720155804704296494943218654151093342879973261044991366060329370910912983793295447336759715108635585315210497940127013689462926547519395335056373460969468552331731548722921949142489777585266225907889295714866097405563238460098027567071136125174926835649936138671223542539421657188715856277115726205069756461766896083191295140207856723499227820893527210946118971804823737200904524721456355926547966894402786870953753198080773333597306768087334465896124712064085114970363714337755326903804038440314240010422936997598194938403021418656486107547127818761012239889194683553497312784775593763454978781678781487648369038401591833126853498422989437762320114278385664166571135017672874122698589058204991012102263307547919066209520151354043276721707495210580250684172830998464657514413818255492732998801761684728948669612881516566395050083408323946267258227481998576476514183700762504035073425278307706676963856764546653706552834012716030210780732428482976155652693474739615904070843347958429351862244331229889311504591421377580832938636477861167994946220098571863248903846383683423623471644625104578417728434267881008987331070100544274160846176328194019965751927513017003320443892569399879049078784339431925259620820191102560198790897081394381747707132268178130035802757783382385486841563713929609207097427120630337899739150439303240366535332104244458014993463379964598805951184770792740624451409752787469326839230613084710111068190234389931487739480672218212295245383104849551749577321254422440108768717671008766100578737609745110823719443247909015623094529799424233954380812746317066090170704949601050825335981413234191713856325771768205200213745627129552997053491398422640904766889711534379529996143307443184933546533167750921208875670797762247223125937594743012387485823673022203158263267409835394780187415496750440896472013197755962922776860224955100467093511435902827161592494766387969864757463295635534322254602447489344487582626254623269167558136280572621741004301304567473052699803070063392734397235222584473440280994611577037854627267054445243506061160455965936195205428192746732224250363385707110618291241647510417154635783060954283446824797143615767498083913968286555913976409556172163663512607444624712375316437989588280087236659052656995242285588907230936784026998038781526351424330949030055273047748423966288261494448980397331003109498791349245407704903408636593091590769959913702082606013141039723813390995394414748242108507429472572139161873001567757487377560476674231153915839324454339869176724852221607224875301393497325735311660170356105540656741366384632123701532873215459512706973313890740774083984871358143265097595216111467857608719235177512619982336910380330818659990170206982645529065178865178058700332024402258465613350480970758281121972046812106808141808347932648665380745811610889374981303441910034087394730135168695527977040056072416235348175540466820861493599454985942418996052758135330793962669299587209353986814604223621571855913512931812517628502615673289183294480742830568805015765433489165224042834020623765272591014806232880612777712170338374305771426922644570285848102204482518168961527934775646058643830473766727621161653831058407933829489735026110525153541950192336638353269201194067885992131536322731179307272572951670040348312655902620543048501362528419174987781411379804332630820825058510617433183287581065095833502285448385495096453276723654345909498201399679032115086697437694370720136632176307926207073047456255677517666395144478287551219695550673634261323068241565558019911378226635707841358096082326802488466562208697137011519459105247424520095670874013061082260922889342012718138128453141597418828901056276539864831836857514736478079724036558720307601474102857453546015837848927112764074557282050872135121450234391061576858112956300443889615786557625191551387854809441424568176586202144244205824189260092273505137411058068040308493893662479664005269419800542080450573880837402154293781500077136834949729494411540410400521089471601101145815270956467125101440691594503396084302227213312833785955899378804101192386154979924332494107492292542468440694642358804998485074865442120068144436349435604824942188190018273584908832239324583472409705771554600909905451466938933886656816701232738691945774715803428108264684399557272211576038337926167767661790317704181128693979893997924588695638491129401256918654705509471010527110611025848930151357736896356223041330863224895150814099233761225571181351253838566319694336746655972795035207281992938367908990991804401680463795987410963748038143340840360584093548339428239990233077596571900404685767400953472878160110025022054798348132160061924326671639307073554557069290235986556154496686972150196200241849971014428749094344112026972529242390330450506686036266325048776062032322307293824046102697209887609951398216055401430903836738610811760690437791474542442428023152110941580020000644211919563245744397983292764532331879010982348680240287905947213839195902045641405093055628243954685519030600110256411879448231821845003826965601840477112538831997665703800723485139219812130889244741975407647475418472961146790542544999259619394974365019813459116800458470049828524665919065056777500583358532620868480790408140512919183154527003361006415020246910201546343980256276186230348605479691228113857396329490560950572906551365757783452149613902171552385384976190947730161128658488130084886813099906286593071759799599255681343500897634747077953756504835064912533679159443974038774510376850872582590467068517629581901956553806717998321535620463759978472051497134579400461582310017048335976668717939766317116041052377703495125189606995198227450567466463593300866666491290537543982456644610676994012748491642896752252402109742241217340223315706920128547053561198216951864098113645392905959713755560582869221884044438007832967661642918246513141771373755327407508323878858376649469950126584194083247712932264671692264406207142874914133032252385594176636604516534966756480446989760647084836912818168853114433903624645786754167417122902767016220561980551779688636184235545811840325207935742703707546744129013092948726717875622978083919070400691305750725834324389810012926459084751418234591273383247647406810231790991254760795558855215977177275808423192787468502087682801390156376052708177628057716546236640264920983741086733329429477396994797157230828502687439551295652397128697085358791372687587554977710285650376805269917344905820095608922760117524927179759884296979923720210401472480220447727215198318018036827026171213880032565812275813947105866968439307041659790204552082389455714380380107990075943630411860565972448820308807843683502915881132435644724194267912783289519503112832217781644403116718777298383112391378772246200379111724149450227450575118800774961121962181658536598652724548647380661090076619193393030047572037059828217674754637001986900975232898569419882990885437486722686734557456322653247402848141373981134821111184740522235240246601708438774694584263212044063658647625471324134220279785362427224144884527760937771126906109040660155772568676193525000164177909411004572349736784464888488208582823830483148675859905159549406388901694450655246474563997414316702675453386824885664750752792719087847221351079038093101010040245297274331260383804643036044753284455130260274787890951471796574615725235151155083280224368852643903865037575838668183392377497847078061092931648969282308196069340466385862666876236371559147343805132206139254731396645228707950782294456114722377497099939563783892523866435060214090331573247391867666751979697670155681080405395566872185575458456093177445915520044282123438670046345661016056984462862702594414040677237174617266707240934849915242952355739317275907746348733739127428728206543420662483105559620051079578785695288881141951429969433698494212813177636142317349508339399944204959603213853374582782664594671605050245671909261128751517729887326311425007948986901644171027402576234677435910224182409742610069116722894292677361586597785554823539145742509047416341014613503064381468043542971287919121928606447471716587841510253263283219879080624226918397198201008618088529357551565346049177398063264363532694832139442634112469633645489110517174934521886419014031578584021303304288734572747867298838049199720649131197782258784246919386574607628180985692715823743311912652868692441796142559299637621231001193315575029374026490945592915637897580541576362481121826317153463503741089091358333672466074402760561313114813231423871585629952282599225531443007192421220813167985380711924663341566495913014919447010723796671949346303902602183993361373839614717557550250147386037370692899075428659385601760845736744649182926720752259763674321267401465478588344066228410593065871462405640051420196940584300400678829268258145358482330383173163180403728075651676211340811889324194923538894696655604754425650061644288399154984724058912166567320327065900934557693388428984160904604219022596382294952028662233074145377800037139647360145602987803168124035211797609576123321232266418593527314039096876049400254648128501871894218829580162692823715555187591644779952906300431906719673618253207105204742293560249627381328831089943931147849036980765864320855825997651238869328290228071088149845291449151221606337921035661826673584773693128127214687211750093602609334449764582444030408571243182789965860270404535882526871590582709889790319263189260435974852173085903475536973004017971219017628194017624523250512976349265323756321269386907358170581240180747380826133611927855196537597746520834776498297452418610422932336393345784022728166898260801407538710285597151698709490178488113532979510261498923066095749784456199774822786179743121136056698829776700549915807362003856571213197783191176036286543371916299395541186970628939039867609745858072823428665770510592785307960548980527965382352024801759473965503216458288418308507383712186667274646382854053450404974046155980888545346553714301713529724849712454404800008424278955929190290420832713825179670988772173230852652665415464102084924697689757748635008880521145487582189107646161468844621592536811111384939374865602297788616491566299814004370132803736594727949271461729200833309157141989395698939316730364034227384852349752186982034004100052382215307984355965956352214043448573375997101159316127294458030022225406817171559213279407693831403852897848740158327126056575872074967453151045096210658737888189543023679340279398441106818943773653467945338215861771774138064103993379735413429185628817664884073547492805449942431707853355037092764689882181878181111348842950884173533787427137660792132257187644051123529899816069996308232348779948198234590713817867163051113117701158156250404069033883805506459000728762142489765978357111005385237967477108150316714990227156235012500873888245329417842432864098974575782314086079748095383772944460256726442696356332547350185830086686648925044951602820428253145270258265269669542133476463183759061250414960651220057259517041679930607829442088264798420125515855707074362540046728079693122311852492683689747009522069215397673072243101440654403038026815061252924880828178611917025671755229761949640206343814393822388523868036355723348462726870464922676284619644909797571633732271144724344303331237285230341814966612950004197501892605634591509103294489981613379356572193232117613546848330565655823141866257028994525474433875764430269102700768912519838107443232553732794113644043946547763471019523303343246149229425810348776062401213036769688945441309129504689087386614359714588911132314570416896787784760290465683175159387217098652638185408346812090439448727826899560731190016070068899589667376113607875794582878239194417040300236607880922515443391896594688068393472647359437156980857941788819692011120549552060956551627774241236840321760953839926941076906905250728411811878823123717937895004681139807568673576074985802028208591457510276963315549696947831166331804954321404711380597142225072624363716893225760312546890773826005188277570720291504426359114552036637593736544938167245141249483734244680101157855923031251291357182207563397219146880714460002798402686149589709200183122510252782237197850088796058728207811936513691833385705569970247002711476041872005406447031392000608395056195156149178524667821199185617131307860060723940898919733515709523666902784077829320510144699460792819833582895676540842462325452852744213265739124008522915518331573740920474785475402663096013044267601043411296805700275175546646333742899526759705002690696343527591786609338981072404115417652289367857462518217393325464948145717779941329545459940365675329979782571961136651882771119546950717816846725409792200843221344971875833172055128131843192291727876444964715911916366279938623606670984125222649197828216598651244168485969362671465849159983997088558146849336871652699311620498046322836012267368262443555176900048481405281587207535337358638453514085383769820561024765855168998218646822520430721300483442306813769003694752929860615327225162376735292485135802747969007856936170508732703409420811952784409723819134018989200626678685969855739802531285257888452637634301195809940349251269123873949555250657403755012118275559559458073854473101655658489325065056036128852383239316804201459143682978507600848674280090296123230404647999828640086575008045648510976519870015401275767555566548529429061505062876536200586438864399230029108178547895984733723799501257051304312692734526931209497794431642624556799275161109081296987654719952168849252463549114813314144297791302589716861088695856028913444983161411737535873989994398793935757267640211416634818342710933598583865141840396930432348989927496918442182826894738967063765285435334765653791321957541103186392773972979456609225318414723697633574602134505194204299632921977516309346578212983537051470128389441154437292761377650678047876796989274644543086322276163962551028870759635932084058433743589245493476863622212920795824013577111905028349429388135515347429142521699730188968056669849253462452780620992608146511321826751182617160713680047482599279668752633056302631315226137176147179966498800576819819552960819303183851037615922558485304813415168648090426400235831385153541159451274123532174507284546601994216144550130069478751721935867241488693775366676387219891402927346571014916922102629308067758327988704499105058016346459103167564342764377161092377943339543007953529121896549921187542456746428336433819593677896610231002613052754101717153451809015073286976095630249677817851794708335382531577595025756805662200301274687250278635217614614374718026236923463000139999018384728673448677396506679793178809814729880435386969093739934077482961477265779854267754501019150657488592769312346162891547895018403987078318053144940963571967820270264315065068308418270037569616648675283857035259312113562350705859299877040565071753095464972956873629398748724754931826632645686468337892490837026666389188482608805317142706889734189685588653073555820033056774942307202650149746256142127024298668551315478073514645759669856875440108235589906522748589450467380737603705746724407814309278304895566578114886329918123132561011865360766260182568682118905839598001834471440853053165323382246844507451023421393446637895809939392048003469991323871515247227629046699176511485306168997246891983575958924426609418815171077170414068985981435732905825030102403123334187976920955545557304943958226658751518699167209553709664996546411877553121961177834299182188636662183737719512556407602656730317466459194349401840666715981739931341923524331800221546176030667027235465810666274980940472964425585618559971633095890935560966352685802913820698645540619277130738750032741197725904387559911807767256393850405521404898834292733468730887359246981467002421798539594297042656803801338149784803072609561168780086878532741269425396735666855109085481253821574949268770372594948133073786225379043678765645824145441680227960005727900688244827907815545198974460250058601887680557667175278952173729615933638700952159039255696442254791025773595205122652876744718283807498610612268362220453485476948747046067054244515415318471032287944121951690859885784200374844540867675083839461890857785366407691453491267950332802737465880657408480882764479329169542774649214074977622948688038284625020995471464095133938031625037607171304189447205804125299202985004583945759078914924276799364742010556155203331380306729016573654442446374122986137600253257415646070106173997855372182857849571411064767278358207346748417250404725303092182902032832535293382982293161039617909456726258903108633334394334700174302459507030464427265961088841998010024165506024769913661099356977565556692204374352213135094396791968288605315702883267141247549105691702196512917437346762358302611901488091991363908098741901554228733004699116184251640220434855387454327930729711940205976213218375065651727158006485579818549688621105001257375436708085831213374176857286316891386962257759743894137773002030067239335786946039755399053906404259447437792099389553561706347305123654888849007256116216260248876288801389750613718421328746721601788596431643904231637903299984313552151937041184391540753314582222917666519452127431116706606951920779687157003012118226628119303099805354711071892445569692115265255764501010736656965290709024570362769169493629805271760209877861405541617672776450660938117407684637793240150870200245300959179739467334946200710499487103262272044226426240291097235528543875939078297416858651986045378702214898910925790731364973924273462784872842716188101920831282393861819913496853654765077510124650974216742115634714564631164894754766322177403800995036722763002213047662060407498461102009367086985973919535775830370318677059912324385059608595989085583446819375733367280745747072668345328384459217998219369519519055502551199946564354296020123238393091797226992982587294191696828971065487234921154464180637503838543257016290021858620707222574699241929167533616520075866790633242485859497494835074443021741267586141154086454719388183987968643927644804821863589290491318835851936399800367523085324056394259614175829302846037318313418370408862236307070362051925932173279660224433544487390160491994905172734399211815825278116129407235365044153142487521882633925540638269308239206153367629386057507738759567239262934434971507253733203516190828592648755948300915091354954216874020454411755985795540049797503245429378342571350112920227682150673035403482098067046772795315252377491487057547574275909034463240003318228554494083458164567480422337612760940325803223784058648001003008266028704903251152291860221031301659890192520321602639207948161886028494329858219986289092445346156995242684740495659235942621066007923761303480503920407550203106764711059840452395193666402423636419084339477792589030974567145688047230093414358924890928180090348915224601372982841124340047160972981975751933943669017287351013381997551459236476822708388786101202579749838920426974652380491782479964557692630991815579586110451794286287949357128220515702558707657354611476156210721153791090022762820511354543170193654934425595398817245147307074494251111164538158270707151552789129914256949982270500432634454188998910097928692609087838119038852338456938060284796941996792260276728055908459947201805160944593468704414407966182185407142287369989044994827131807060427966852093433956145082084661857173902317352315857597286729305022009317398880460856627453054419319100816745658300216887570106527963587503330621436121367590360744622358644296819571418497134350743166694695450150929622694130866075046806088599396531284487096334088284053228646380537165760580783742031759939015387378455745308807886068061333139816244617895883381706857286644348621737808999334114511637674084481381804236691470606962542971555074696571567006852462351983131863578184904985862365551805876303761992773897226708147086801797063726554702568622513497314423202664606561913934414691657864163306195372632530961443083465516046244877526721904065986994784159881892630285826000466677346446358423165514757106253216963447541028438732245053670017523070856107284221589988308838100058949718975355366076941634624019816365310693384401184472820222101183977247755932901947824670571520371106595737103188329372163405729970957413886513629431011236696771117187390656246199839007828324185250549438566671388194192393524030350808427534653787528258794421893949294526353886544465486674443821390083001192488430372719631705625989495342376370022702572544118312054754439876267388087069211293745779133183705609392578466923643483736023113468012348151552695646962690000411279832110094221990853103240304727437111021830374287710364294092925717089028955487457996756830412755793586360727108483009476197223175872243322812968110354985432027346131314757051248564584065702993590788847603836888967564219720513734710124861289845187765192518137293343851085546866006565442709175214973776722159386525624297172209188155140532246897443860130844199792604531118791929848636551503184613582176717770335625724078459627766753950123791220697156725166980243617656827892163227871628041211576245758523019694447394717600238340230735955075600236770663827514668943685163018114111308385822188190408612922748297706006981760104581788610516467024087293097122902418471745267653216372064304430340217137267811135540562614621240475968562474921417484137477726475801781747981528056395372815408851109949614167318960678028131662269836349792278060210418371975324031187005613375396356921590472397002285521825533385786580414289166113955532231477104151308550615700403710010322037688343996583719010840703031623926341761704348702301792267446124814734259454096579329894288584457569842365983805054614841935970896563280860345426740185166754840170629242117574781054627105002336102074252609609497915511815036336265145274212811710378599618263800070170351140842784010587209595511389234727013506865240208245385028897255097603520957806543611667838129491308140225781693131475535877466657799008302199834637281714018957786865004740097199217022169549670939952838756688779096131971071888134759674533862170329678876293070961065468897956389748843271979007452630375799425756927338872867796703901238982045677036057571383543030266126490983004663091022664511212225725899504878465400799769973138417043678025004970681821312189965851427326858878009633135189299958950028363818555840132934466667873583094905247542462091269703618120996147929116174231698987418048667551055441784615663985748835942585066468411510019913575591833317336652989368859980699227267394364687079928770500424651241906520117339064421930068398327424843423407500164615501466921891692821402780779226726153281242742983004670345789260578610106395278996187838852578274844287622996602885301172685147927224618407760086626764742714927950241917331108500304131516902749267691259068271379238933546711286065994082365618938297518429584961425631799536882270682279634849999085569116683148645445048121869104378866716438908384048404317995128472865473746300643378420147296806974236962271961879218534668752269221465506196394237587047450993895835496182907322460637759042403717770159131909082947217032333802495484918998054857515929454786669061949944595334038755208204916372963012959901116981788183041370221701987331589537988877266146918716262993941773150762788076262332746932620791000334066713566972835452451554543426231428630850891686269697783795577795637663733581015855673508672475019534542452281527639505803383522688978979510129874498532174932283782566118917280706558380750244979818512034425747244528682747148753724461064207597275847836813848811526915713934368752318790519802948420736105542645651317527227043995381623267512618849224671224746555124917782815901849295797333528659002722118509712165000293102433310119832769773570440789570159204307992703422780455923493499748562473609807902336378639918301475871708414533076818790432988194786309173072586672622157176948829862248690564123926240007358069687452130906734899045373819738299314596361684064244424842519338898494066250921562457522543537290721561373173901711611077563901011478542292158354854280537884971561785249768651153541206867326722995912610909615216071794573699293470957177716736804376675811690116997595807446519214563470668354834165226447722492444587821591099323150972426975742883980177750104728819094088733843624075251225726007846615249951004486076940686258459146593740243067757397864820507701507928969361852559713868644375860863204164921858704882453661795902430025015327831935009227325679204142285293195608559634282686447028461178583616827329352555307416706555861316721786728085011329167526505406050208021338695058909028862102645314467405255124520261716706789576757502371600534160749991356223551599144555593083645621192730020732456066029088334144583553655482327071223485154466675241164615219488650101188885849000680941600208214832836290229221023928579060110379913690274185134877866235852212448482105167295645339219079383995995897326313039754416388560359402880855901511337538490858630830495833861920297795559067459749369963249362975044055999164601964011000729902273155856112912838053692865894289712516463313212170760475155245117866036451158451460242846564056370868429786381055968482340717911679766786318538345775053724133061061036238561872755376935856004746828355640748690809171921737184948935634595421084205725365350397567079010764172098590674802524580485416718039635388050915479291217851788018029085263505523395347158540867007341034954737718150109595732588341910621614511213200544097975972401002751886319424930428828306341836919591386537117027483395963037253300529967170818503453402228059045635881962860929473506315997965604342418134095954570274680068078596954438699918362411847675248356575123860369772851218331522065011347154176412329752332457671858141513478793009646538641922607993384211097176782196845701800567996482712533411048061455743980174636627576030305036954366635600822656297896417144822306437028209135920955606122558455800766474036561740926362035891441882642466916439120366308798348727633855420866326894722639338773647036102158784807398438817149577251988217204217111550283160247334463127938110243850904083974652823079486898677310447686045901509464068693852316206730406181437387433304366017998531342140123383049360823088886869464980558135981476683039758950111626543852773585263559814692871656755789086329799818860446640053822887552011277253356550904404340600479624909192923501438853765678545986745628149672124420114662365158495745488820716376147174896303151335823030038242174688749256231491356615363261351387050108576905765616585299550354649938538732307141818322947140795787189238388354313353401900122763359748771859087248000122974444896655697393528735004710412745184471888706079357196192825259685603215303340409053416383885436099866282082555818065217040779699996128462525184303072488958116170497420899635689517614214061427719790983458552714406561581686799261704281924775383330010981132923911377723807963660106116559161876021279121045411606515750396950798021024409081840188128095059319540523020665902409624848101612228144634527726182358889174520159291732350144436655331454648786455640080914899346809309822611388551693398089863911001828473976708951644940698470505372375601827227556846772441968416952230418941468176881645158345692741710141940590713063850123306110363385753434676957979678203596283916260886850376413869757953731600336550297237035178020334049829701340475093248184780652117277031557574326057935409992137301369266587381808869917428991805192112472107154695736809256777836203585692750520788577588500171391192572086373287191835667679778095038958603792650884491696014143238247327584438851442290021115464559015017627779969680849086951730487847249927011340589965071718639482391089229679569489282653429540916290936617536309764577209853313762337857418718743120435219385324980111165201860322560868382233617451470118984956520607222761356772704916963400460477589846730707910720339973970365715173408297431909835802231068012757767786933619969346282374357310673109315150553916659858024355625635682904986082176537685525664991579383944235974960307295880408476817934434378144896922853680738928882895051982044284950009852868926606336578078658186397819342591863426420162838159446776492462621032706773293275866528343586353112360181586099289610884265053816577864504060705075634341676225433724567000365438309811877726808530299392342115430613705558216865837753090542255151569303718220366178057373481154196557711169750605773841607168194040633748244120946910621353697031276238758435744180335199747594800470020458796383171936961773547380400317345629947900236379368019662711782385952812621818806772727134491798522707605411432052795373186442047543462210575629716844010583001297062014906696194455854514984639130378749471454284268541645095978154427482801233388499171111397942108130139065429177524698689445974242721844256624280876359933948348666845861019210678202937122235595067056841939906358621246989584327710694388175632151335719759742582185337692125731124316363435088957445514514317290688765373202558608748672583552495810707060435349192212003410701087522446864498674983760887029105375308745862995160511560862598230025033060187800393765587751103888345481052404092095614863836284517330508334840444844414339597673617667155573994988902413423953728962388593828808646021785669774427323712439166717547202136082730423777273791745876797188828182975062032447720860971968316326824967062440207030749123348503359867662866275561216074769193619765043925867420644333970835785147445026564463640833942722418429312368296951012038884525776155265222770918190865767357657005983203931500249997440456878148739474231265844409376658165227493686018269006758061396791277899535807636944990474883366487456290464716774812892747905990471769152927864242937374332486363475984507891323683079240087188888468158390773261449225835658906237595233295065443706220295195752965068304153322096708306590334573915783210006483080830408594180415381419735790852174590445536684265380663902769934352931044751954701286623169906615126098246022032593534564469512245413838774563051410984218025556170869073301611975138785416283025035874411411438689952118117892623719744112336655226885040075048399015455090851714386255255534331156508870896267418450362957417333718065404358507487573595657454888389416670379219234994511959559741162726512694719208749095826869153437943029499623352181378593596151960387132345883572451625360967455082406637288295361123264898143070055077694232975378757749647277969785559617749921908036643724118177221151025460418765706336621094314026353177884775951481997419505428848589320283112401546494527699083930245003810127821176606326534784061186227623572398206362836342715992805580461833920296950829224697037475367880042371855706675989904011632578118279668338719103044018299799281969935334373088275930781546386295860313738364612785307817466525191289681149256132159122273551521525381069860829155672227719896077385271638745755784203843069131555020386889348686720754408500176717291726724307291327302284294331592078429320844570683298828344418360278776271953645833039654600132797465994554203366773597139153426792609868844484596527628510705567652391046552681135551249067564986479540184722541926287310771957306165452806007652619479818201026316772472248376018217237663873297464393544568152288220511619671183890871088345586773677200156197763033713390082369645291043149033695959599794266530796127500236924873963799688900951081461121808779649514891624114842994504187643720214993205612195655942141939535533935029489411917905028002474605951432673255816305616085696269401515993282324522030097442081536255499251787490868833959083188634573805740675703149825222775111649634300456742732686578535349635208450397420905469078775047475049424131580769457318747192991607882975425424427287007073983109758767956397365540488041115241717156715866892464159943088503973413283736565287876248331154437688826583041551212110673451987850701576978382623105053487800901184246981414565780460381721160255183447070263756671848005025004380749071531336728895487250211709107022030563955681235542938785483570759405763557386278115286877951258567058074918270887577890247232718114677501804253974569096748340295076231910240503495003248771512812702086818388166271670555699004388606807751997254309352919133739314514684884688060290613131150417787208459263747051130977159724622835026544803834641565346337688069683143127857111493468415298953441195208249165617563511133205253839113137778087326685407319217819003947596707521321538068559190753820008152375862625133204242003036718651383435286588832059473793594775892114059431252483877783090614576983937799603854355656293166305852176612145666045986313532478648396102138451003012533980430070539695278018749522238523506522413056683393538552198567297089736077968884644995974028776287396046655326366774362861397298661294553734180530817233313374942859805897495398572541555038403291117044824547855887669331227536502022692689267251715754003114986764454394732763209731917996990569312643823018538243995217230701467079632686032374100337003139553436510157979845774891509885686279149967925452240200658170246234832277183658698364233867903826089678317254022710303925448792532044512581413570696121517255528579520044772836318249119702148743291505645361416044976839738581531680541701833964536421339406748818451517407978098691358373276762973691687370847399056310660206334274572511565465243472659482847070746816074651321705914384902363251334705800795447054314506981468940104755127862208904686268412779342126650372935353266610771359054263323830334880686358567614407933884176585343931987074295701637841891747385541088114660783358123312667028234467629421313329454041811076553459300034451924656882912515405857423016834902608640404504264887580622297858636369027130980048214902132972986234927287786002669627654938095549926854083950155653780627576932476379017230350382486634332611580232824729381830972692290823617323898617778479806152050824282858005318542353127137811021193431756672281890263669703034310795838098059356147027452244739646785961428414129794488211236759010608480215252442153738995826173662833028189310465286182709547906465757649081894583820788254468023051323529089584441512584188290658863363805452164370170037127942672587410211256883324749199687510330227628652516117687166325305384599691267309914801529261178481234029821955355036852647951429897982394745682335303677631909337448441380339083154092007711607978018853412123627896520021679647181702282781683787700132774693456871902576634904612123271857852468499808692662916845366905610265171716366678473378905322308488624291284634703519824829709674459635111835888265439624674839822222289888331423813198420923578991054623894253327327491290298862663938030353306612398506896487454161213115156809265445017679389396038203823369009643980482900155688613568829902223778118964917808508494543829632665921154853704052271999790057677172040599150170559217271813848457301616531480708896111603459027610274490046244502002618017583502138662191957545515952507198812741766649351192323429814252890482994369347038811038286711727059928138493524814440837112036478439011419404136829186207324589739972979874379880388123236749146305584838505809661357804860398298869830848596598062481824479030263709783278657391989280561601110287155446106815226435192346838843303647759979036826069542153464506648912679375322053678284173520539308667284265906036851118613432025922272869226375943367262647517191274556633584104856923736671345578140660805361248557467416467224615655594266476777367337713037107699196852537738338510534997858268651496361995004922962388501674665866914120247106162151970866305778455667801664802539793357995837443496096334702268866500991496510119276091740371162709756430475729877770477793201564201843935895978316974430126467790689109218831216598405010080775615594755386218317963080611103244839245041493670198788781175518533281656355410724485027218479971403706931947591464025031526709944607891601565085206702967571929691308599585255513671392200504621350120276300986755772099852971406706999374034189630762366506563667612975595990243507631708908522764354261434635146925150592321460532594990112022925082573870724190429936344871658032544293888515923748460309063801833402470575897818824247325296175678059541008865948674099433462244021474166571588298177997123956846091028837578209186424420695660303867776073036142682173851292170753751792813326262644891084022042893366868855432480418224802000146962215224880714192468552231205594474561493907772485468253249886304718073189200735573767013905843307950550847212816235813951130982878863583937434644962598487152159024094811436020174746765115432065566305300895343087744749954387740763463368186204933318900263691816328463040616827062565331374951305361554732092014847878547304488158290008693023482302342100441559784620465970967333661470066569762137553522970928435639636704515426115210535732913402654215134022801570730303821392205703844257063355926753852514766538758149299523093011344860415333642314195956011379047849108476251342748298857706725309713160608619724968182011498101935252161717973169792736426173534768008617796875627978356966617846404798221256863130604031990736585851164234138432781720963926749047567939105385377011870326014792928774657661485764324539444487306042194030429046811163706248707141500125553216061549905936136163290594632990699934209992923866428770371638634413056832907890565201859923027588142739826623110687109809352847804994239791527603977795253466531712811001646751662242508236205654152242224974446639205934374320303812345757633161661292444437392723616104546381483423098787766907086607284238804771726647919546549711253902404602621780731484880358353205702180730658694432863241428347701400988682092153634759091144100920871680859155099675974947951230573966671921931640386451732481608654867275768483380438549334005570058840794636243826579625966920852141789748989812796702933891744619584269995902554548048629334157635119038087494468692043763954458785695014318428283338357797556154235848197151946395610440646201901744682885513708977122261185699091074145965045618386843641486804239292753227918393686577609744467140336288274160977309989947304081028159132061872139541157489722647608649884470939413456284858032843679198174778447567895215685584758086150752878047770356392453167523209130627660847379123538142171167492653027243026234048609793875346118864806458171478269006331258341612849789322650567092570186746853057185435104129740370700093314156483941063598388185413634717397997289217924486338542511899170425447396547796836904479820020270568345643960327120315128286191978691153620543719791187127771310791755065218095001568119453500370208268064950773597809893817936204466948927855307525827554240799576047288720862257925313844413810497207491494745491568918713234449882493756895119968402104039154095369721257273730235437620141193540024574499273340751547702160876759999941590152824461691794462165528590809298294841515714314098999698150969969166224941204455056468177902461398309503653830013658423713586136814490330280146903052172432844364038751283325651354584872236402207526014522216344991491193082912452548684887435068511505102647549251407145564344451423024369897867400940753650103098163159961525725681667387608529787611176558980998068003348564097682701107070698327275789134730110613644469963881755842814792785764023100493655231330067982107693345726320220192917574716101426454394697417971573129324750399757282292330456525885361722503127623174404128664437414693782842659246504968941539694896684458355975245580308808041182872565928772418674798967518108960236859708354665289260965271517325523148662468175032039204293207127221531113065465373869196725588653028028227746351906814491809864846871958974016636920424666153693515053723346389604866109791413157812484576284403811059834550606565355522521307987028333594088938150763621289257672556730135150208789656647570598643354518701739516887446496538332447957174385254011572486088957132388788152487755491993639842575151759684418199363109156896777108713479040924821897857415440940326244980762823788430941312999945007639477691865450931733838813138544100708487573909850765634360169359201340518754036867904363151386129738437026498775085214274387238069955481782441157734647966943446103027147757117958293452307231235278945758689706110148403763924788853864207907449386394416456495297560289884505580130494474703061537019285202416982468460227993978262265283969992116873658750249914510867253734753535301137595960767586005556159558212968602985575096093097213181662468087667402578387046994406455699069664526822882922446291727201290119464781002466906885821420729860244887671418518989062497058661007319923287689640110105033994414414679255689205803039128377687908465640532024374745537898668073736131973712667920505437151790919475368969674149201888712516061112696331428644470679861964306186290807867626750287598131063368426231042958450927751295596175337711693486363275589540514781725685420731181217919547411618554542437612934922450967787684286931584082642197241110929337891791485415106933035271670561177426132030435681563012580635132220269567623875075296419652604127332718795040741937649546942666248116066970966095399935366169311062051157458763206522550714764311018540188695945129833377938641305455661977456683076126773597073132748977662047299805418449694079244509315280948990804145658365074387447801968006198036960463838451592946652178429656442222966624139366072664722837143996602445895413581830463742697302625487428450707857670280727484023240380127975956526930397098130327472259740881687272216947227403269294285357580259635349085015233319698727647198152639058724680818071673336659247744427408517161762975136895384052005034112245661940725951272400999370538111665754993115720401412860373969310101759846301144088828129823082142236943610522415983821592385916955338058058264880958178376991375395261015207444805124356588431472048129950844072968112664758321464182599790071896284244167332900759415789760131428107324273846158839031174589539708324360914853896483473450483226937352694176412636799844255404935476168157915363398396257403293053696804131385282870059567399633524351887666690647975041576421940971317284353126360297999597763689621020460176717817572344298875517698053087910549808088776722135579319637180341919371711025635220526524769818655809764466453065760723362119506521486027216269267549147708444104311276902918617248289260522486309859246247649292600081614013340163621154547163022455745704885398370830912250956638302369555383520021535750094626425028663437449833111278912039969987151428581244376358720633450420612705099216662525726052205885531664211252689116652831474544519214817015413729104583022930665826680336158128845556884476722463294547497420239785121161134935353225295417372665532483150757944086889787559568606597734366524956698272033555773545589543192950111851208768386562076169761243125946011778078283950586906872880154578042895993181056494630100488192190655011787161300261869716417284293930628635863092041151750357552311321663873652342938439876747425886954054721968452582831462019886279414406969867961596652931948379677971096004324068964516749596327857401318925859839410411628855975967215440077210611698997009092276840570118602353180336467527208453601561487318412672826725443930909445344477497449989090903740892144563551133689440127814871501351468326713039458209833665918478374871300699054149589678174721615067523679689775112628765098276265085215053262985328321626856923763852357590751224711760021181476038601430482779790042087885887243635598988510574175102295440160214738378377223937178793419402583046123977622478923933390628824617993152601279079551465707179743962587529678787327975132943929846299706157291342698281053885876166720668581482633441678481850947111745755366769884217371228603575068821518346131226459646554047869627703271650371641670796062169278811139773349019591557403796770435989107240589183835336277351089497337763672984649987562125960970076477171155103960514692654827970278731589981833471614988126535224800204128316677751477170363296345709857319756428861829490640912440962252944943042241756826022803571710674416006177382780022685199956180835986068300524297752791792230051575419245165205175935483342630574141498993021334250061240273050066269231836296459963490419480697564875397042970207647205765382810739063734693290795268267611385935663651326613856684609085602640883919842347820279908002781155925707159686857975493846704829787596105632020387503899290212397671792705870179529962120191559309382877362933138114163237837111367639835885030637524526587162460429627423247162583202474800169927632672230697032549734735185327424433636649179118547398004745347095246531889796936994663284967758753676013341305369666709554077900759724756552938722665659833109799051870826837713419249792537429238102804524418199669284013161865279642596772027050860323736257094570303473231678265401841837245055992434239960307652825222562671270999712824311707199680886132464313718578541528277447882629854476792360983041302635248593908175165778011888971359088698133719548407134970508409604409675199719812304012907947564998103887988620718063898825233315100346707805720044851845732244858172138717680332986164332768514313353265602338168157547602417361544954066288494257939447317994123741325002563703978425484115192238413059021299095852391335099787003331467683953702706130050917861143760439215042296830166986227664200452251396638443963072283634217269327953251672802188956116510960793903747096878032161126167347061142479339054023579952878202195519310525580008180161708113753546846124581556021816065616121872910802102354336805937285986022787775445408699475158440687056278101541233994759231121845201855034762381580935483166207571209997932543213955243176483541349420638718252480688948163553440043533500603932237252855010546744440539067344633266569104836663493444747514323327821178225520533638694866855817686585932675245029776580114009346724336392019527411757585796813741362267018785724777839604056255989160302970714386078188893450247847862727748658204946296582158727039633490992333127212964977718347007417071262670407447128280341289297052484002457833962365951837777121634863731528370466023714774478975389689977311655024964956923698743126767166730972752968232243704947144554779361745523704688994547070465140442782507351242087345892750049557943974504484894938316844868411911322970389645145542185264662239223863345741358783637117231609222809778056433557022966952914843561286641358113850032745097008540469414687896914824091933782695362503514859094598844249152954556353206389217533800561966245707125932627199102689954515286243988575108958969627473770685748704972010007708333202885205393311977704855919757058654226419115663304259861975964422345044552036911283506654211721211014861378434139745309602158335949999534889016979474656588845753795471937812622077809373006747903995210066892014075212143433413385549033086921744230371488259797963155728803219892765187979412461907351394776165756028117963968348453973416704327121914019751975794563430784485611496080834973296462706692021107552013470827757877113464628667634308774834236895089557153664800589105662205740362344090955535629246181316646750734835893718778282184521888637446350742891959687367944271019891937820715898660107534074843193895955642848664603219924081963235107959697344177403908881580568972052580472412055622303691510109520380434173278122773041091792201170064421921661965970377696558111067647683630077551831729194935793977993133677243701591766340585413740450363116071034749089986934688867921137766663668902354027733317224100807589356923354291146715185012437911226014553092988378200345857625843234085980435445205726057864092518318944774699436390551939313963599210852052597050322979076876793615377363615882485297948924656213146000192040262128946464355058869577761038906747876845742609377019226347521312145936575719005213497483247180600907459912556754358076424871695632325493699971255905739771054914042622944588944264210273692517679155799158456940530657762248579563697799028329928795531594950304573506670552581303552538600886029573122936980100273220035692128870113504277313177280066342791908144405703579494633937836571996844306420916803792649242946273912637395618267857894364941846592477015950927882595007456150135758852150935846074449166785532657760430582058713271126531761956326221520151898336805714582160980772519226614182753691408102063525896150487067606283480107601368289088026708463851912012363105755716819828391106050561359063094197471139367422897610486061420773973685906161513313397249551236806143279334258551621324242882193406941644993251310227056996024536621643340958580409455468540768024911313168204885867186410853502664306976930718082200269627319017569750243510271322344621267200067887198682946430521955696235235332539898532191607617113993856802790052346782957125722206639893937345301214154415985445902225992098205056314141491465243181180690060728114423200897287899850902000488025951639581923513911096561170638481593006718041291983919140609142612873110477964716612286615981951182493423883151310916134180336711435787854188282791241527076269893201357688574154194284079696697150216308352395552486755993791654214763798512107030499030926000939973095297741356514468114603680411171712595025767781059036969609332984095071209756251528533646677706001178731294238118568385713094698822140597092998512116584196690750814523987725549028764786006357373467745423079788397855650396253497298101764974996625944916363806981535869211638644540682373689564984647974262602719450512582449438772138222365609135241702153852293917174006940533786233897647929801294544008740650179416478280019664190561838026130699532772563478777814638265533578559384485292119463238162994464739109410712805998380807951499379956135744735661380691559629502743528643736526172074334756580840223262583658638553770018586436493630790028022910989467932411440088811671667309295984157797953929542758861748851567571221102412173464709528488017989802546551058832041785906444171997092169590433307505143977552465604764067501380826173720353339118466327359141196922422805600039071319000919322691714300281116521979759514708467539629438108970956251416017952326870000214837128974181829559116588352641143261123238656028331587390965694110563747066045512184783225076299460069362858739061592773291527156245945336732441349722785724952774930085278661999621995460454116233093672918029399289025393072346598976083576519786763320189520770355826619095262904237531124575079458649584115230901331147167040113454655831756391311356281682192985670046877121674055373150136268830202773261744843371987869703081236475670322734026741806990048952747216153784423751631672316812182836063162305269034608951602981350617437049288603896290880386351841380305025932873547617630461972785042920059676123842613481469950655225955333449584335257330771054747536182607894377802776329192843819008608451180430294583875089349204639641096142854653133287111399160069208249307100005507675059927424231920255527975442485111247530850341701274718862842212019644169822227443309020350772670269539363902101030015792457136881607445790265342914795697581057481278838237083668809447006010193588675600985523707715552781644004519431608085485832201206920450856723254246081361565096031935663495433710962972031719661232636469406476791263545760039361125978417264095386663598489275393362362886557293997452891116219101263932579973010137513999120857807073049935840241557467729887572244444641214705300657125824552607718411929584187580779984828479553594077606153828730886854571886842140399777816106219705129539686987060397111799316880735410835115071184045669230582171606640847226842164161965724001206902224509156540372681716069926164921359865905672704610299213731412719360156492033640173678523655472568956035170176291448950708650062477602599848184523471402077827875037067785598679176173939497423688508090629604840606129627382216628135946262673008361696440107421442245139141268898646960215483258019904373165839745392049283426083975271035655206991859175566254150972155432800413758098926657948992580200367665800713612685157157190313510154457592297229243496018670602737038398545256252395579599214335331356657343293725209777483139004352416417391832190076096868715135940902928071470046527964143996169063703344114896631845564044288263876304492895408842978698768838420658386807555578976989335060311802188881927877893302296088265495270325274381986784577192566744056665132300719298637877315004937649712651276114895033708442570400133679580675991349938713048762510345954559977194418328486942728677767124084500005077186663059261693354606100869284542812492910745416890507297091098151308918091656289410828996580370427034314554659339978025916015238544704660065632290724110130625828614603112264267797885428329429685903975365756310369097811854611063813648540510168029613109305008678402149641565131606449092561535035431740192762792132287774021591025587981072841664322373562748555604735691164186111471785625109944643892242832794417626864075066042365840506745393319000732444114252862546925523152781835180995908473270657136190549767250325156171068970899675753651181209626048143930625640019102874521108367915150861925855912560507650515497874878005860178752529426935093561992166034904309184992263089825705267321378404554698541823566307179679686288925382676796650331648007216780762890527019781984455491683838603960102321291108044367604862319545886307878150459987831869983091027683472552609703489029503588342314252083138390516537397126747943703064067890247879171497503724213982075256957168127709119874312723804177999420337982439691524074233543144877880891940848841552467439350582689372253560376752346068406624449108466371979227965046586181370808429468929361166478119493933176733422076722821251364849138978326589808174893051804245183756348917123755341160310730718873105881206105240168127988634248309865485746484955629521165754691699912720017134410056191067789477808544764796398224759473754394472587776586026422866484615639572377222240922062671199800904844081630761586463813421524215523834435255626078909528568808815382121837022591556613669998716017568869611021918708193940121528651956037723476335117794091377070684010594535355958651057491190472363975463765268288494721912623406901982805299778650322261755096875951453410244414776931144434041296419654139331074183958978044922077736731561811145736317199038103886576349073719826336139939530084250593988948426643263215636775785300904687129721129921959563172895893866494590101737176092829651020418299427465019825642297287150761894873266967794817366450661049521757144932386811141279997097965535646173447141863478789028067693592531652169886775429655267485738249069979095274701514462241397772567119123993961003155310097156322700419687018181429249624683885336154253407870403403296367160121052106250047233890387963134285664637732871242086645466505516853752679490047506599861727035627872529473562000511427847529742160381399415446195087200430960234690858601747843159928398899147807474569876307988244974368091939375369640459090930327392785524552384365455679393618349225339675440257179500731480727859542261133880910547568730194246913687233651635079036082293008179735346682329725382283678065834354305916206202899986005179182682828658643953329174051871752945745435037856511008299444902685172035158256862910415627828526317820126550305713338595254263649306680093850729578270143380685297304823001441151138267787487527257265700287665821480253686531386591443543010131661833958059418776857830053177943622734371424783026233941859326331289431099749108878072145447383452796777215616116655965439000821644812517283323088318001269097139158552730319355272650014211592144748779957438230621502368616153773074568616758493152911192877080269208060822796486224671444792245107698351266582324790748167877695023195777955738874421196942162140539883427495401219086199507677467097512280677234858459619331202172239105107484288940974061396778641161938862428838194934775515759825418618794822298943953630128778359938873449095616388216936669153728172840744400178688120286520193152328931836338451890216881491381697304743942652066987917938534660845352163249782667418092946737324742117695744628212279301872529316413349568375320234268649834880496522222112230410977401324111583324982541447194287305674904135106866419081013623699039035989478010878336579863578911686215517473902433556692616508312258120950200612990139219608762342019410474240827126070007883169585633483431740529791428735530007364652620679197113918837085086337212166095385566521868393878842334394532717938665246469564095600103044412461355401604900939152942453383775183093400490826311369759742454778339660430328464363998701909335728725998641173488133113662012727750555801093652870336215010578449521657543161917922410207174046634418242478613763554712479228560510521571322907419079773530722789726795254076408079372905398858779964009243891548972307431984739260183290948391556837950407368754976440913553821952233061528798637093026161764202705103604054765413311875621558841737128052378447102755433075606738874889106082380618785631478703975852706686656513766853460983891615612689372562184637845148830826022989044456044945682765118907724121399039472462069027115240127422800785251321428913500269879726147309779898304114438181937110464012819768036803950819603023829344842343606653948885362247995101559407983862729330991091540048189802668959647393156683960378314683103220303715358194662770869861864167780276351764716993700712841712774689266076616347856216485442976297780847969747337280307077392793290282763351931724183909123222304635189738265475090175070650723512733486366983122629430065336458319608845090374893595372658380320444580280167644343358796005031385852323928702866689665377759094887057846554924957595633971177145459895096679891705104275910813670861497619022055586008385630134142853345044924568520535433356413454430873681754573100229575140865134441515115577967256546486708266774509540550383269691239054041888085091390682737425870330466630006283532017420580799760255018852480331353564366555661039434071867288609431903058254215278099394048502888438033462458231184590027461059480405936858485476718429028334572547297857084335749917946032649580824822098858067940283811095076266836370959017055455910413025880262227542043998651494917186207290886693897164379355195655965170369618905580209857841296566788024056497174775932870809212045337108579375828931948259218951928771631902821492419017287152185233107250514293710773375581300813846918396458073523370528507826364481283814237749982991405891218597396558583964709362658132762310376785363431512480036127163284571891370562824279004153136645181777496597271489461227925287040156512800033044855217187167759794771630468010043226968273097263647430063701504386149567698050209139821706391594080182517695575728726320499626056306801767165127521330016077602091341433347250136575318522735768542620300929215016390342234159346203879586981005822435273742795046317607829481792309538006708628055979614347404799247429966988716573550055012122499325659396318795599414300631865441593078957426758069831719657590717669571758518810851190007409011424317025930598636762817083273495241661191468338482013880014211369358134916393678753505492483092829531986612019443970338992450046086162620165924085921487528758191840244703791656840190791841831170778441150918347295673463508225574596501982497818223164517609924598575050772705964095440287698830387005467740327802162516287876666326091924994620293796250172243357402082673001116274693155057617270321860090504287959178724558421918138454384257338556792669549377995922055202655320629317061354242264788252321099339216004146559970106691238294729718323610011130971544231362288324384900108088720894383465895022573447077578237233953454836892834492763485032103057918585638242687169131123465697556092827417328552338146826280866733217183379070290302228309444015997345017777462934965081275015337755131709647694330768195915438548935833100418027053361398830763202730106272930481828230052380210491301973899689468577708409279629203796128743865743416693216582087540242789197540209041526676013255906035524008206214280800184830736571414262661627011658431720159656328862906885071851517603316920301140624962844967572951973212868636253821928354290093164991897376105060353990935431270810996593433724311328597225066372211470084366755240853720482162914307342236574524058158950068069343168030477724765844255769268463700883006644864469709937864229603881926035874339800293706993512453746708001522797838274624502163247125828522806845891560661298081003309449509248137780991312233989235337773073213410725389892520219489972586044448487558542815868572965177703119501611664246031130827077778561493911970243757176771791993329290883232564754789871002320419431028660480523488651133624645147461007674537221760487300128836897759885717767879779551008654589480508545021966063334064315720836520601380824828998649289877056307156862482838960846775567988948783424031051955401339383828223743018661117875472710293820314940457287307561438038638411948023380048260799204537378178076773046080151767912494883713291033368421932015280639892203751660777023439701947736378035390470809934176900338159368505206487974351122675654238067879280047412366478491668346643277418665105043573525357527303532391367102715628130893748885827017970722795210066273046516088856454167388058938493276337254377260127127258701566148441331103355380676740252857575401095663426789646161532952063401882366808914066846675150996967426113895500014778204895673049777592577822446110691953815751557096711879710890801197960547178797053489998717463452520413094673332035714797487349796653156476838471502450479566607513090651723346757526193301155008055525253481462034153673102381549949471414807309203471839083351991541298788912599406441335309062913287848507402752563841354643350923234906892134786141490224269656145894447231583072100541395593375541723580626551810326150314423153177853927047564944597713290318406477499533028976932822281816920492050577584058746293821285770831717800304019480114581548164759583263815619050966802693208094068031851772240636547208528555118793364160022450084649117904924086733847102035493550763516379734965464457698552796132425938821795679863613801496859508763707206207392791482093611337829429273149905856473856208133829784285431731127479871283309647973354422720611974953052476473255127475511565886526456993696215492643857928596779839571346809720529389706500205865365719856874908381507221186152032474131150785700327651164250447465284380456208499910862860680356468479887302901830382575396122733153671722843055445902537376310014624154779759698870260070202738346309152154017252135438652684177408013939136106335507929473820725875013729811876642926530749525936834158457731743502816484235463953183618493145622150056329952897179373886206720609809151298727042698278002410221208514245957519365320247647544274619985926048989135234705495360376088265847692275501732228594654112912262655307235079563038033273590475861590101961396288719040654333626211765001948207365828032460467437015476501432596195621641854917994715988991761417405146419884681733942734675128093237576104866990190596141266850942028461545500808306158347619629678328063492469955892745619275854595556771998553614750406732249935665053817709540855559953616379513682245738940668077146536328465481715740473908817082731557650333881867509565648810272608041673844920582651078707406521400836711650898390507396328303706983078021821287735405905178167922460109801989233025408305791903920606511544147480810291907644871385075665547021823073540552529374411094623107721870460337823179519274611262608960201302938921861391263651960699305750952416192334381558782850861869366139241292559911119877316181315011402480027014332723489255390085103501202932748278388637653061605083340416047015659524724737989424285934926274924249750450767601828349541463392141420831539350675874795410775019237810220785935196616287189591373919102900986773990057874327038849296256255877930749671885009168638599098363372717698713352538224282887606926297689985968620475935468798525541435859083431532436730644376896675827120478728439102251365064701471235507174287132245055287277184935949145025475595390462562644731101573007366344957362294503546384781024509169141137953004095964969437447078591053709393821511425974888527616047249982257200258979772536980277455975361738817759786986267386805326834389248096503790015989124655748453993713325651989215651789568264364077160316897656572846604264039420574649370725560588314469377680474989121649318049163707676492059767098222813929368259095926344562897661506877850683926672583690540713450991218720767595856573385772192422805892949391346222963496422758603194061445370859782224044531550218382218065092548414270916161647588964713481162017471000900545326294871532747581151611155670809086532309471555945821283486502309789830994306427535377934592202236501429323888740162525265842991787013566426557951566374316823383813382518255643338415165675102636912521878425180047662735908053904570757383524521368854034018980338113070703716399335246111989317751240264798836253648988427735097818401846394395045272832961605555830320828264507933673749085782960964197686064647419515756122218331668994225992522191600218059579059903753848770479765201482820449713191635542983490502989711055312907179227102053661821077562978698592187466435488898884397649447697806021829634543884453369506567492653938120693407347187646995321291319728732126669957360088667700393867543415199500088871637700620965326166108799530803454117081997432086658809191420031490469740435415451398753763071227854762347974847862563604893644119741630057542799736283566881069076473187665258900390052517040057178348187691071980514901694575217462789712812077540593536127885661205915909837731623463177565145080630217393083284694238481716904040694257325538609946901366733478601040983831543926764011525452198100080077920473323713953791068201268038499731874518178798335032298820610533910968564247642597398810453300024531699231150380502933110740102384060189299441309452327416628324352237560704217891318385261267748115644498401900811914339873077481832256397982840558688762104571422624966537338877026151072671131970300440330664849771202275047582182954868759236610906151450333375300688177863341130846831676394632934888115309046493583027462921399283400502337449680085096434738606471030315914518115374783092221185935622910721710228023819601592979860452913282026959419196890579693051963806928278359977277692063847208576081261908108290085923965795302246573872814609671302923916856332721198619490816919136263456961124845672178993634201616975834091158102203733554928666758161919817233434773996745245011176255994334043888051976294764632121244661944795721423083005480847109052563661819483729187538228406113693744362269856976620398907610770410856329973139832396559233889717961971339286832138102733346847740478277093611688466387229282246560302599997532354848310820016255137296265394614920879829108101132331010540148841447063751526007602413121809587908323127214006687813850676866192328731935171712688396323908433625617212073112052596633674833547903962330444967726293746124759491910474600933069588147167638153242786423776334790111450125225308346037827746199601886272043077968364260517785866803095560846980047592940417246673189827312862700464529752288701495531546548332355661190951328790209283237397275752145084638451142745762691259670380463465881724571153149805193085937291771240691751519043563519010215692569023328827676246222998206483292291149027714117506728133489742307675857383647541501357803070474442685385609755297390158466363123037356186634923583124881684519802963130200747123335060698498919763720652830265251013187278402962648918120030493288010925143364459028084831681527613339197294312627647239271022422114822176731876571386203087578955338141073037361442553875680766035536876204208915153877099218948869685670388998805447774983837192366281999748932673512359106230800469888971633141547804116730175257476480881375792536069180239414549654928464733082978971456440302999924714152520587653752829580709148567153922786183903028458624675234415099311603782010972699864129081487521717492078908030703529163826521294943702671139814620519352201375416648317910378710548781475049974185218179513680173852692643593398363723140365007071297891745544094360930745795383487026538745582843140840136403855742094861033011575613497413735472136200467058442788019306298662531767253216654530886037926695250386317683610688054052403289035425128129123976356072955251617342283231021650506727862926938266489421511529669085470292691678122828016125110785506657728524014778389639884545471993676950447208956292356593871886120914794939548437697861268556964020212046470145373687631168951079168034107591221317287165584638656280499044923023725271815912025766649384203325993972729277208891265201287093258692566408403612179687944842110589961250426546581450644513100492664243829993983010286606415423681940155617326445724964228853803501921997645730235233635987716286893224482614484443902344633663921902381911913859755052788404775373472602432678132159625064259413149953768481195914376716808607331413098759953951398077789598893249198741136143923520883591205067946319952595077784433987853963800285836764264036898591094097818420287143740535225435456681888526162434561337903812962069746859723435701898275780804176833008658514521929588605180444336994716775512201739465652267001372070753273587554524756680100445836143429367311104959327497675408325372385920315561744271911245477786654373746479291098824458675012541847964144667354169276777899607690932387090596996967342605125109470064602611174145066758929871109444997920871161908892039097162534922481630072926472786508661972806137575562697767511649726113472459817036212138859618242510057355415211245547255376776016380541562183673327785290973325269255959827563681563913298199372656890777661933098248055703560318685039209199195979167044062367710464885227639056546444206902891265918809157274880294521568962862626428961237565392701463817901427628390095963749935657912778156129217668778659502078258740958769049337598928359591075803241256578314368207844845420229015672053873116159163938344514653536083799312009456528517165979947218432972133728882499063295132365686075828650290717187342925783736877566351552884272874469139550209369583130616340957922346868708863001805769553307561784854720832314364543055906489352550470133059375909378093669103578915713455451097448810933845367927844312628093708437941231420575601677584009777624774020018394548150930150583560319997986470573529292213145839743447946085324488957115142721506188485134946768716873190362136682827745662083404919355405427358899847938666544130229488603982690704443669292552578685759198224996760164687232320428871335715350944210724153608949499833649272761911697606118459497093984940068223171314409525125385280108374013819287923289896871068196526070023004632637572344866970727806821823138040632656684638268486289728927152455862796003231539889842054218746138203592631444802250658768133191953905089864788430035470787947904958253742176072340971489062716809257739186917634499119607335319762513260842618588526921993666508479624275381297045101402607510561501188399484451054926673964820337688304866807084474481893747836016736791483975856906286275933421982952017910460393173086370086931517565305924304114563865753382788712944619435952988984140310576596755726177937975810275802235434075946996824840636381720641773471347209304509176868782677041672180331693396117884363776359822592111795380204846952152908128937700322101205212607991723240213144210792840246046503307552507338216478811855392622877003534050786146096759243902332163261646542951288926469356133343538267571374903122223684114787312896632129752661777042626400134416380629116957973947105944445389372810212035382528698278729533010776826619316904272889075721256408820251301961620003373457016324141679359468644207990627557548026272510019516028389265272053908856788470541347309309885244282494239750859739575941529581794930842439499699756243050095697337646853605699142895166744071048450379548175113276652298136822678701184607800007486713631741447586638670203244088666418676255128704362239116621065210288213845122317902027763540545421498102596496497559012975083702885496084206910058789797167925993511951440382256337320526784405029678945194113536399635509281689627904224902789836709621730148836529536019970054592114960299227093962773378328464674985818767580024143683633354842520069861045064894803118155668965860325232366788880751685892434266835508891337983829156033709493468690742123421935990603475284711817329340719908040350735772607864484489649993949428624794992563119454838358247940303326254937666293365676505316259103726206355344536863876605728192000971824368922370843160548876324643923675363361524277682015533309528702285252870733163749980046403957501821577191450935780884788521497150645601086820208047433245648018413214343070219590979178712869678105769728924913504716409625839906329603387646513205256099909704069854882467985812880782812422155899732933689053288239087087925501202102358735706961737502945443270178970131120886019037006439213821093649266728582098947270368987315946751035993028309160112786179322097039704563788694864121174306582178763557343024983621873145116227033488666916866048116559886168758257295462550658649977428241499585379863537533541311928190667565108311171250686633450440209432682253985294029879203263912448515825106668986548588887496007770836588664865127436558809881450509938257103207913047392304511946595070183057731119031268842420578179394711406181920502912600464343675516381045942874826609492276660198824593589120164864590646882387710850421470593500683839020173659881018317370798682771541334689740449668667020143309322607854715690493571388722640214111995407877277519182657198245600973693441605517799235373919364939042902892291452121676186802475256783844551086087559746870773018365733567952417462776462296507662792277835656013410135512721856802590063659167684987219411930207595056480747002384722199117213589434960537910492171224093932208907165808159105913389122157386094033987952268369850040285470301108895504262662414684018584508526209041156950028250914189440466973944499620575112016882761629953562045673726891195001901384489323366766149455760795555057883492749987748890255039420836626028851276351670335940683541598341487273356724369939362534068464791975056450829637169005189403915556780756373802258968081582990924141116697467922113943113062229011351230848448706862431686719765370833835987759471872151774779238951293640698895895799051696612069911768772707508907052807464243994706381786424092726217052100988630838134400753684421734745928974895655846764821216846111976734147653356012090829603220289751026147931532221167781739321861449439028672226170541000853841892144225992599535530387268699323220844190887790988021708164014721456877048076125904768362494577918792958155286782470898661068390236844818472848968240725452141976467625669454654594779709072154631697213607138667439331598554103284412228295387859503731553474069779603469873890146045887236281660979290839862840751120736825826851535912383779304134712917329663073921350625438439919668896334947244470060511051511920195268308824674291353572315256570426365687244921679234005884021990660648889840782247084053949499454867619655232570116163155738095168095063442835420496489012797485645358142078861330303912110044384087201312316881282506010848175455827656493384732694082667652261108954389346388347999293890549979627412529579034816638799832651642937138135118451632594163691039978355005964387169166916735186889005592091590472473984723004034164962583637967012761020826249935011542769989396206811949089020066716901818925727946473525042967963853768578554051266809300863534460832871211919732701003277530098352709600119726991535221303974843944438561881834750695623590924792161901529956878624296389650428833228498345816529042230098111556566905905844807020998725680751426127455408800436667352526561335246047300750103756970345011298662362188355429320863484772118759415361996310813862821283192595777883861132724880775903477210475244560581520513354677050359688804021906319076003776146355907801363933372901116021892491261055298847176932047210508294906919836198014522525338115848624234887927418714872731485893102756797296679306359506184611705638193595038226670783471983251498945344112008329866058019556792303089751406054782046097691029497539205093402967745078196473340667474265876306778208208453655294742945261824745948587475675396477327074680269816536405071819200130674323625456574742602613477275616055673585605729568959166707037191024498113549461058164652232942775260431998919999133691026572194943282323778166245351078445861763009961934595753653743560167271405912348015206185024410128162281457784838019176928446294603890095975688940728140962925713896939416197645809493375893723643907258601299792481062259705726029935251121780019207320437346356036378134895230650756868285283925143780304559819814362505381573856428487714686142214338853891318456036960073648178206816833648186168861396938267134974769484869819248099543100635024835598008908759068589555014191494149346003759402902930680611063017057843112440863035800092455318528686012334405184021769269450852725964373905300223893636763462791718807915477886303849036878635000085301576330512619873299834005988602627050976460162950018930896963696150818246643977211506811801955714105385808965767990653233782280906411804411979116876744072614704680130913362507723553326383008448102896562766688858819796061751016857740172313788352095146561116604830548424201589297376396335946261463820646954018595162335023388856797042464288663277472309550097448160077495804597504887984409373322876456784074706059296650994639517097976492909890604695837281349194952568287013942913102542185377022459915395593001267943114099225714687339038127317923803628553191306051150025931731307101525663219803092514873825415113555504035594695016751758800886549326343382350917776013002716744203917441383284679604595255804964040368090175305624170116972630305089402066846576499292671844009884472914695578876448114341031321211092665625073707098100308632424299292109838930020026078425803907365924779184334515551558240512755490498661242941667548528622811490409371206709002336292998823914686358385798310172534921135535003619882671519175326150459989841868449132848845124645698123122327626373168007866829665803529286767023711964040024658379643806373101485167604398848285369889213078785722908673940024489089615694673319272664100601909584403644229409123902140457841061407273477259385053193097481961886514864441909122698535441340965955328144682651346128664230704211737661049360305009970298332912137436678496365549278442134981876078673281307250261490841175276047975314831569901166979036974703988583301621452985281926967025609607079684688489771495655239640932222677841335690513323137286560955456533123258274063416409741098707429788452530171641615745302415566033636068394056129764703164642849317800238806308951155210677441452671835011182695740708567172726163611908045719619738147411925230394910681219106924485912064963376812379766925741789905057027377452890680916029643403935410249935860854216940502830935273011752495878475747719207601936431272503162401481898228427787294436886953145779346366450789206654498756307295520588993892604475540855513619886241875463382092040280943386719750297500844279151530714265022581082780487417552353710236134888575890787525118986131236475545724809970517812879423627620487428761281494908747881978591615559622238197723286524110127625430040662877314460140370731980579588023063768850191428814877342269134719339261852405878668647548897297004418195439350625490917371327604723471087140583977958584271472747512922358456887048609504279238658632907698932927798987440554088406564811935386506090365805460955256519845925493869070522884252098469898988825483541124700125472684878244395345899792805056163581547141150681943395022539354591231038500098991914997798242486456603894630884685312034272585141195614126670557202798678966301011627905504926923007519338285229852281182145542884895148356623438519166195334612637832954991436128907781969692886113085234173291824244519905802770577116411759499839618513378729252294150288084722455602482470367663780768093653809410750432505595875543445567166821473042411094803024945551296871757154012413917223403915361247102374682045825919241362313638303021415181318095108202524268146310387013416045675688568723838529930983733871446858172059439285828465188477872660602778841359732415847569026909409346167409208781945094675980444348558129757909997013917459971109870444340864570040335655558270542078134733743743221028145970983527484509370997236736949757922498744555072648261454373215663940550632867576153385977184543213868918314181639807277873077044784051715931275277918676159333916021528287314160316868481053310664309627221274017258025828160026675998504617317827497521754259555178482954220787221503717261536188748995762020878354945365372162223421885921149589026539862867807951572337964304431213718886269452920623911733586517843326978604877917274500137383869117459394742624239715616944671560465508769889835993732552783332053654336889746898319636751154125593777990099827385023674495469676897964838009835969905941327036838648555079612547822786016825796223425964547707234759965689363011448557922332005999030691001608349321538120230649822756139706833548013082860197497320778986174336179629428830653261187878309491541672226016132725845456666465159288003522873490123027030301863763249524218195098342381057222051819077557152358651185257694226828456803124386707775790212951175294324736842144038175140239372004440335565871204733770183312176270960168151989334639504774690626087467477910721831202921492526946046974366854759026380514060036060250011744529466743462826496208493196755936199356238097171277033419000814504135357856263840240113111924346747075451602673046970865262498102175515152659203024821536130551606065928298557652719474983383311575148048760664922158562721421107595739311119221939145701070099747171330490901151206174797758514092616581439765680988329337533292366583285992404533086165877489967357759165561005298284032303808502024847181163716408948304220941383240810427265597994546932560050809029931805007964407126045420466674339462732445295790630222862990995425302259219624560782065071438109112990058797569900744201499385245554439377266911504481016412270501348513736481035927683049830854890851380918206296440584034992965906902672857707653501804912681897107966477241510036629200048005149505032019046314106875658091773446716749364859674693542268862291941464715286726565821358148344421510676397728567513855103328241025879071166843280443504050062405913960706291066912178952931234616380772816585404384143359471553426402326000777793241940192843599924032238171822819232943049954707862107724325976980020050602996217125385349876711403313867475433720634518836506433961018017670424475723420111142247927617926003069473815243574342929348360971554033494483371382352730853769201858066110575343179978111582388035827091003603618949619872621560640073389757067370062599988303286021406671908640841152391787004941503962802035008900607561697027234576295930228290444598850347578478290587638964005406680703907405848735284889528084280796865208695238054163718592606285947107095174174466524218888293643962980371857842588809481597840036729763136601519652254513918140501049667499059158331711354404614345106421546536143419374105758083058880695393821480314139183783756895543361805293644505571388654081081721126826283216200778949699690307326977335632444442795932502517175562876710133987507827062789412219741692629235556900563255212982275807439727291456453790558926254958162206303413197226510106718057845332214955349641673047426064429247645791244678256497104434234016339463983889212739130959098041433497075186810859454054550283444250127795162220141025177762262831968177064493470192227976061681192618293287043770976077157681614810687402184238315146993733842636881242620068703671430784223528244032052927388832913790411712963693082292728168775899602669049240202877765941441840920429410918699418539605700297829328850936153727318426912229622509288347124566424831181381814547030681673511910719336347141442759270120487817045578378088577048161244853601792422522822229575206094453042132216077329905794391232082720960919639188439946834706913486488133206969088149293135696306164483229784357068439332717842383508447894778935695766466220142965518661657610959365077452424319748893321933878953679140811829767647374617412613418444198466184112396278456154921650899048724497589904566552482607618351848904041032240319914442404442010343843677085257214067820742426296812363650554920245965643776672296924092606112316487693228366290953704807212796768759022211556849130965914751073878550354208457827567223199048526399462058212171812873297626560143477187607255589828114095861780835757257108035668512624008943580784454818573456613376337722020243258725136551446404036108043136990994566685685092896806755091189957427677258145926470458582075543057911037825539981098668121914048396745234770315477933426610713498255665832194928856656166532154136004067088629596530343715482966338254088503659158983764663805492759241408042631615687481448098625980696402938212217467685163023256375267551765266982699380038608709789507062908396439425484473974601958601105951249007884655952564424594584310444364560959235726620290729303368123483865369264454994459391895487370599309929142541545804848058044034514339370418885085552503709948903769059880531842137795134321059739988302423530196617045267002344335121343493805256099263515845671657036079999747105223363006333909803050005906041475351574388241732971112127629847459980491297003605822967755166072874846701141255677073139728264866297910887315980009488564778827068908056961610229546567753709876737436549069888645320274571137133282066914292640932443442338132414930284619631946718381898278519718799022942253965894789168749150197879037460522125012925951558277259730181322021773016437781980347709885305155971104873306941418935866993475974503599608206066198158915504899202986245967921259319900208293458803738341771953256014805928833108551554635265170339982971510511130095679242769176159230349582896101987437661621839896265043043630996866549550159154406828414846462902125690840989984992507899093048666389291109537559076533427137999542346006914873677214925253549956763720670089372101175267851185379066115500015173387837252358250193084558928391408169197563564587390817784053651663939995595251207063262625556277058615917431291716096189516575240480997474828533420795346139345688347144391973966106042729198820629077612717337517900729019064813606922841810622806855335717170682962316557197522190092274073654505208945045854414541464348237561188537742465639304028077359383556144091566003487392839422791668941767065576709410577758246093011647226354074475662758064674998502242770439414674963092461222658553828800056255958453728756222453582529613218139486126870252738281925828537156706619057289545549828559707907985731185703620828842956872487429979879416263492248553688582087902929149482001492101151443753281380534294780778468868279073239070892117858950961955998191596249556403402569276250765063703611954955921120381254334887279209628816045525414784138649603755062755947851069218970833826345972563737856863390810594511414428340289453384724237304866684035989765761551003614150464257753334107171328894074536439497105915088407022246785976933295804109821263618057218248542352455423097994235140632689184571597061411026776266156412118388051820522017344857358977269513182316455655790714161629808071748143217803263551376076857537495255445102482469224996005090470205949409506138138555392593868676196795026718567361965386147004110242241643926129315594424884427769924246817917217167637763093434673328713722987334124246484188792690438551625706814988763390041812189354681386524047389517179931519897556553652648913738001984904788302877846896996629122071174919490099867048340541093497872630328539856799128918803834754709679315889739688798332866050360640682044465995591772356566782965624013445389972168510909287917479774903280036748253653280531970740159326466633028120195655690164476985620560810304562451288071798530961329305183249058805158781172906402307736843773908451057545631355105869393873977773506494310529587269990262536681209030264286234962975929420172470464844071641894218943575977884850261880456636944242095321595649324171065171552853969006454291042039926144390219454461853699011502423564386483503088466193556037025980253753051430187400330550456353758193233945798423026196025584302260691788118812529601622069910196862543019601098950373696445483609461822488260755889129127584816713863605342014641224531424909187077999148896853616375532040821488973382126123497760572000940718856715507134521203389781702434382611437755636200100135340666516561773286620017775385404569865960042809619054155309885551744884434583575844190354921503489949886422814916623946113144717623441944726167016021508735534526455512808460838656699927553241057531742874398104004489647665751419275306538621816593365444398252738583850898551366079691628507766829622778193202228885668921315963807674864515499684441988028220020457004173876778699652828811162519907828129700918105531862320571307367612704985052017063137820546470032007634588867692833836935499664825501350944566603102259650673383070345233024411102567725983698343322066100170512779952063110503483918095020179666617365257866345116357519248569017543854459106198334021201206746156725357656065367197421114409384245898460087754389430760672611697620073500463674907741269481542915207432851731322158336039353871341552936400426685712292924940722235574775573056488720058667410360301789783436172583926962546983161632811497372969090133949422827705350797813558976868331616019082422730519767480522970939065579973370797684722234087845593049094654231851971255726671479598255859117571564726483334794565242076555031749236946138777433494715406398158534005133504259160034908241359125527321337957340597218693178465437936210644147850747209965277490585917898553006774471772998152727225061513836987417356314496536833737505660416964564675912682489215651703924702124076320239687604526983589933728213332900658422152196843970558148238650469996115021452950259413264327494038640872418027050027875974613389817302547565254064402736909991461675251614690303165350132404809792644438123583101208880957205434363748294540979304664259164345686934727884615300891196415181660494972529759754709125196283279933426734021026321752191459098773278353555831237069801184675274516846914351086718250796432061417701053851846278786600283997232117843891243382410613685728906982558581806647483758253228324037335245386973686927740945487958095765804218235285266431582050155750423012990059816787708449925572270904290090536830997126672237225706779233760777808485632025114795027170677278484291279976022876211305836935248840208120425586226449667852284843741511686001922174930287367817932449611055509362107725075283122431921888611831018113101439299211264382788719381334996435509344975793932707486156976777685928308407707464538283184969530081388976294405304213325085543352632193596203123587575439189183962530191154453849054548415131833634253346877603178313613454394453625818622816345700916211738619578550103664895139033908252782746458512421251153776059650868167439701613499113050228791816326702549490932755598842382764193536600616064079667534377388885073929598084397149344048686706009962943183322199365828703787706903030425732992605734600262950412642676482552575943975820737937462459174824093302663404063551488461205866434395211772526876813589282609135873426234110165384000109635182434224629817619788802291735133910654986680110254148980969777918228859676183297654328766784884739136925330535772269218994624586508349588623667587808678707716948158347144693650836129613931090742696861621248723589368667965409100304877692222665496449808393706328338235810841463113614796129618434192634602506792743054370413837982011592569828067259530870688514419007808673451191933128382735621221450918502545417755048648808853138272734780439941621052048044374960814611870232073309093191604487789802067892778246841894218929888624304074738361438886557065549828084407935082979864355164189281822350214395154612727157130366037284427813386238541017369483901992635961660448791932313752178937137044212378346988593177380033036362293029707437441371401655998726511655327005386918861539382994242488778447914714945929948624024349275186943278608356699139122514392888114811609825194651345744770732110436281697981050378868029864266114219278303975496156624447447846991137063178690563462996184746975516201048901555642898743232672000403134831741653357041254952480101026022022406955172690009450600314648423367938098595074660078779366429655870664862730890379452815976182505464840795826079348160606866641516858161573473253075475747638846118980609527990679073822260516622750454818257349460491014238938682187361917588466999354520764003191555255610801749962577388663290160137991127880512029175607302826511357450251145196353342000855695593237457880322406616039930963430190156532723460557207415953387160540198109926701821238682610798028526559221396023264637175695585815098783122933650786527243780260854614333546601119948540854780449173209404483536203086537954920210744511666362150949362596354604290187169254503818522764361334811844841292388845590330274127492651943819902083838382325318362365329540047316768094733222090396955803440149282602160676096825768601447691820933633332293347559999534787058855662068782797995984337718933900833007250952021585137473326401679002359266837576894198700665252481975030794944771092380255865880626457972743885600697096651640037801537300322228517397074823627430364328846354280178263593384119995287917217913105437397565468584427132786272476755602518512460165462261149505937199519229215584288098638559694574722820523969955941368498631118034784797239115197958269519765649744572807493698307515273758811610632208394922824529578202093922411500240627317897235892516268545802190420023121765000845562095847574224320300083331050907491652357221381318243691993725949454403659630689775722379988718967510791142223114168177106804576134723481410126592358693903550565851524663726954906515114857483346810025355505198635546084205841955195122237966423817140695913801731018911449687367469570417749059346845972429577472150472885196870470847590094645783853737695386355065228637689840581728384991227542569275091992330532245241460069859282186466678648380221658952670313269312306916201935749317095003317714800469486797933960120639786603465907789956753536006171529853416544747540094111771051075807979489078193261245442416089226811938781792514116480902487791980401047426884419687686727241072996710468179593449607345868591477009788680620753253638018641586253663170453964466297154625446846787897091112382298239213861098104656339049588699294255191303239842622003707756104413816651931084327455268718151506836723924902505483378009839788850688037111222393731250220664304500707134296946727526823458478229969671960197563712887619935861477044039694975723377094148404691840155634833935125410835155714463915522651332810199839364102426383790800176139465132818892859683870677029258028411857698182653140900289513837737004571089520496426389744766452768182183469949828616270878013802192458697683590476608913883022537706868625951674396472592033833923692186943535209410630349599343214216321535320021865584628510531362306655677423316540317467054028322228111601797738767351871909471345106547246196657639984353900550301293245895150193578392739390754542073438658152992871413118806598409770998435411894524185339652049511560089825362866865795879992714926079031611574079385848250612719240942995753485227447833599040672807621382521395607526209731042471255820639269977413700030664849602033698132862606897738453619299337988304939784317098559192229630717895271452463598548207804317323044458159347489680741578286391299906083029357748287464077459522770380182429560274062919320026389310742913728904201246399849763970368240852494202300777334179246089668670734801231475417193221783020225213000044858763234297387780924830860601652966396812092072578127994743234100043069941107628345080180081144749152714359530794139306738981553703559800747169931694186932521404471810410943787326945415220010716129039150227027564017286771338834543300481623868380061128717519174852050010453145142044849975754552191569677458812477951050489203892294464331541914650216071127356271161850324299977633006346036554267414900578141924062648396550954435474803163452906907757218424908801491976542907585736797838601001834266478060618980686972798629196374947111289193246007543406757441286893888156657970062612010297709086998198270578042389476779960352306266131414632864527641980743035117953102819523556319550673282205408969709214554033332200805644488479215299180947698571506817655514954449829140348069087794733723654289755769140369572787838152957651079952569502314920130178854572459868608911484702614831539756862573958239960663260976359485317080130251247840025856201474818461154068400047709096536938162384791193087704443620050641695727714460717441508014967792274356140275292292202859105351800847896213850833785455369775441844282570148800945588133463790964626601877509813241610453311639498111209959357361251495921820916530333582959787253069774083040539276497465574234423614138913994563530085522601092506053877790286031822626789866268602807275458661579860887670095298933618526551818102860314936100021561719198557444479828611902061009850426987381979847908384799091879070672800766531106120818816584534815559386229318370108286475613536672148487314173736505061495557297017285224438849582485031339774285263118097834545419803450601820903816845284384057340170643313676497791603875347159284332848202869350600479134586737774502938911357299791210446066208367069218472210955600977496800201222727750522599567686738328197881642398489339090996116249313601175462415512083861727021287409267430505174376280356543361323852560291970622635853592984702568578465417738728442619082487277803246460764263650739695562395818913271901736649821273873435916819383964244481116776879165826888393113615415238681749629570542784630672479518716040103363296745419495710437855405722885043814454788592300765680506688769078092150981201235249445586653195543983717878693585381949799205854398512727527715340107846026130808737408207018462542618652842706049203041277480923222795419240661510282982076623565527237411461244701152640097606063259758287192414555959593092262127257394085234806820566716027813622846963793326646561393194492507410730161195376776883842895008486803356420774306985505648518946097558397413139992450324741939982648086333463251973949924008888666767591377297180845725491814673861148398564852157254840300203627231949673447195154428193325419362737561368823404494804845273496611606478090236083977840058588147372592316137697947585220734858929822399596160726723506842327101769172294649225733316924581580859890325431839931970695332341016765796797774179770107625029680396381493344808466276879433668475888288397849846725179404042624222525902999763418988638702344495746693411467159579867708717619046442996630227293709698947940584798069429259151651224485252108196953042745091433583577375832968256592020058517028752210792575155874168089367388186215780046733983696079821836003793655757979243054885316532596243972768303246098067218519376039460424220615337772921526303354764223606182470781809465184287047254157560391489238497693017503761720568079132738154521462545120605063171964274561391181918314854902611428869710174281295398682219268386723830499829194603826698043793433379783739832931481068727073824841738658346050379090265324297148730793613542223208341058013370656661075982021732849261293717246515523873336206238627819506063066572881625966513140292953880653984864525610617983311860665293432193757301329980115984382652141785962010990054863495433284325707602018068638410134561338317444833545096896848084582512850771846307467180332687140338123635813776878349948076382429828005434964319844395014554959501317612760629132221258357275405028508769233572635448072105787834804765959043872030406343874332744081773501114716880655761803105732664481122348179652929947755087138463697796166253698135478953188903046812777667049175478895590349968388965481130449114393180000967594950561287592099649147302634070237277791752881219613192993484913582190050640083602838044865377446230203744627333212993785902550784060540534694655044512060053294967957671257990869183530316643982449633206360411343011454590736078075942888288183822403859701700962567893458233325752989548212929112050882009997830679249243514437101133741921631353778004619437511180653884643987272098820048399727527486949824427128785894406047172209012077740209404595280460780622196482674747025852948965015176586222765421334147460223199522614183031848627275731758084637560526566806374118805162335073733086300893270238515484493741159407340378644045067320737563641616699612478954159742502545303973464616496441598821020815605161929974505452384419499316816391648870889048795846666460324765047517274504826538773979321076852873718482599204472289500993620136008671268674286302831088056625157958944561015286847552422809823600560445092598556269175187028013650253853540660611953356713197682289138738611939097868787117695107783235961553968518327951426075706119225037735891120422113985827928832162715420273301414685436915239261927665255968348272801299657924795174153204313807190407592636231568840210132328271662800457423306714825195213276364893323477182534056987221486255147718061017329080616560155576212652163150731189184274622881045260617442346310398583294775252063262669013841286449577564751376899005393698336524043492824479684007969118826204778253329910560158424147245061865300371881182668810010892767313822885602410280335222391342063935761255917931400785678981946683267579750285828398672341666858762833518749946223599138993600428787062152751746962639016278166119394538119296997711831931480603200775273784386238852447724780960482147267351115528662282949648297835425854445222096466876270664315535521905874901148163271443515740809964227012682969387203074838854499333870147133490770108845678135832765754720442226705535632961796230384106589936629005202966472155116044500820143001207987676062555223454663508073406117835639895164031761973486441501331329588606152826465382057798416179095180460705744689681450347534688917420705435166332618363395109572949721617495850179687956274997125827639559043847051391637293492767815802228566583337696356967437176630511136763076931058564456542664081112217870800531301813635652311357636706510644965046935708025461908364355209305804421276829954770586390130427421763969679246225214458341058068824462260862879691169308272754369462270005728350543645328636271289120044700962384992364753616134026304501987726911684224246945090944812831412833198956559499294436965528091828632809520710795986999130612005598451822331876973629520096467842601232135999664458574951993254355798444051051175470979246728912240440521916447903302700935925136508183985473161726427244729420981765176849521349337677659019929134662855243418195814477110624896456750211468278115167191007675743616588073355387281083830360669779471027855179097990398104526415346421024527965842595523850002145604564987459277024648084673701226639699511415771006159050547912988832769592365657861840080193924281806682735656094279796514000561904812644134443550783193397851250164805125323543807481036541950509636804637598257190433960763387982018885990385768499297909369596115884871531408557589053096132290009599245238876855097537469439401692207831737134082519290289625108608730762506706140877948030647334300398291269042978200334978159796229066453161308193689877620316607418524554188635183457129205914832062094023647663070361147147706466310085685587064587632956707371923562115086388271743946366931947360622720515897571139441734098085748313916300086263502041028129946428357414592452336286882116925602717757339322711080252603985791501152440508154503269857122796253255947343098533591089963597258780845690227119894208005938535985252591075373305915789735101900632334979844373213357318087118090782057860659210465146664642996300666540130972652668060135033078209241505971038872236347618811249722845391682014249503412523961774014372665522287615732321246019828922330328860627543614796210627490953881781261808686187347453734086992673780686001129684000653748636553990348338629353688810683458295248659745469643601695964502131925825335240541252756929512279857742299083266041667874756683573572964083229659287739049526126077518619481278420126553176719320005631578288202692188596556112098568826236891197598290363086588506877729939873019449615389881357849080612808294310221967285399251550017930035204511225858185974457699921502819871845986424810798601336109158874152243636537984230700998074253701775953459258865106328889980224506876506972083209372566827453259942736521033066943298973215692268205264381553540082323680426544172900448793119889230088316188235786596097770511964094221051463480626937531045066020215050473766375601403736099028578831462314876423482080315182620472059534164909701830817406280723754076928841911038058635358395247451440855083930367350493098421112881160040285922025095208152576344214660685395861373177758271719769081172625829697330583663057054161454233382228380959073238766463871311503860649381722559628712111258966488401012707863058746261014046410819866472697898563050781983135494297558257528325468923480067664934811726488806305818524504590334731226705234255722785479085735187031602121785173742450789385002805006695314106517848416003291773539511665552960987797852634797012036217381703988992864798431529147194178777141940398366218723807981135222609189306068690074509808148819768022590189625567255897383434672056393329651382297681664579180142433882375779039452979381305746663058506337768358126805037654215510862201122098182378198830877907632094594154787785726786309495207489942422777642530018882549439216799496065128717846519593365130846313156936776886377584324826718739089368165044331609271964026135522256877228637866945729456165798894244597188536630605429515274691497709654071574080573070714783364744723912530379809901743078879016579372549523414146925644250472544228826339383170364568277360123622317870714995324346224153468529630915945713966801123421549377195627052284189704415955090830915905466028475376545523218094081182330040201203001943246020603555707091814084975654664269183003127335992432124186417600316043273605104330514044302803750729120464307248201915365488071533219778126790333469466192350162270757826684889561945281361742503827730222478803335727517450045536348353117481086859005029032877415377009013888566879651951317347566970205151820922521375703338158394456630656377404167252062526666823570489861081920525963056332449519017574866678765981934509884090970270282457706043263865842680852469410826919877818985054257151014339744963032793433534717041057273982993679831991334720281325982127201081396077504208388461058634812550574129293341616348834395133713162759659955448406363380555678394016250015842271113090636994984964234378356772957279003994374806403102077896485125503937035985102334139576179401286280527208912129477595109269559355272733241146725249126397931951363445122342002119126415746567543504476145057037299002249001918027280137329778502121690691689518208022718738366588186102414205392412408211436445393013672739732186633464226620143833518264272393823052174882398097586304228694652341727094920654510529677191968781320224799422670874500070038570099741705499594644936543895037885278986573781090888872230061217590709359260430094278726666620170441774113493298100886163134333529977709115997690050423073435198641513825762814470811889155621388715985637319355844559687240475563981735448291646673469803901163687766672895168970461458056159818417657145345561091489443926640935608445180536026697444077177147173155639436235641489225674942817190628156709301770508656387443227020157758142464567526724939719531990126265139237540594699894572082436300126708702204722438308691457989634617727219747282367732314398973454463042422497998818077658947486871321036770172149268506254948069473218348408547013489133049132899482468794676430295432583675643365790948482091570268080189753365176999154313009994581940272213015311098368474995758183687052021540031790428350863103976728802831217948103252162516542421993093279074377060867101847757039630877410480302888531312792210249614936242715477316720473502601455449470720385409899244261888764523167118553695643579826563831214236623297317446773405827063543593550353377890785379136421597313115624242319171677646574646054490617699737553860174465857353705831598089300356206804817761771057098139950929580385989451624472917753719185495451788205772499543223592160779696152259315459069789594256821754584577499567776798616042331766102148241846150775731517858065457373523628061272909940343611579998115339798928755620358841099918429569120334091203003167740106621928418230907728807932886255252783773529906302712773890217345359763625258403457294909114617148746544012003458369876864485484763309643408247956623304865751577823506525272057722820483001700075766409154328721198239813075265890239110882557689892089148993153200087621546673137124801888346184459411441882766888329006542936094532815709476025023483513835596148587117891393603476535314599527279432500740870617802241515225737312328147055929253883802961361881853914300599298346427040073243507471271667827855498731531793040748036973735624949018581693647988275116985896036998671846946991006471532764398048223100524228662335628597547275736020466849060238147698881147426723214470860165340577517971324570862873305951400245793787115126840557598426657157588251822421593837521739149226146367254460558956421178859141101336153463191277243904648141429437985648110047270585880892442104876314366254946495848062191287127940894849152543140557132107218063818549643908999754274291410257687088960907694209049071164504269701069679251951797059915986395614765247626680566966292028079439728175738437060038539994866739490768528212052793683957671612831101019076472627467555230808349586339685853663147554480316015958989150520541160766350595086145603522474437103402145098925161528493118796012213364881002050839805192672303084491800913915238629556811230298888306556823373255984028836313418098519311463548981056761231448567538038209536843106988965850800948013558090308609402884506151620816893454742376200679845697792107296435068325369827715689158820970190647039593710865349784763727573564072817788616843367096897892368644273794468709442736081465779574290120699794769362699285614426469811698179456408051963441176651739457351821287687447726833823070784003157969284695493463018634128432054211972829860115707798027525341713272602247039922023216254884946089033078493254377486684684868666436687757051317385172594681599534439797946873376517521574827978744645726634638516881227061509048488575081147819234265002009840589393025015848575613239112299365734610006631769245768937110212960831717874734001446349723478225054596558607489402365551728932529865580440914153116797640314951358318176916762635789659681813635220361524484230396722158920885081439368817685852040562582250513046489565470855162977003234321314061799842336777134228736896725694232075454982780100001847682286515675758703256552980301669754674892058147072930845344709530495749671062855017821615275039240371503599584732748471490339214368447879532090716188877141711327732965693484562110902148544701789572720398820330141532925035402405920829983165154027254140515243792078566587028381843487060960423635640278231935539383697744090442411159778386036848107776710609730936666373453592610930605741060909251322905052174429057284638788718231783885255219563075293083925520962735449204695878841200413405290041713024764226552216794000090076793533669963778922146562486314100645833601623450382321675625579912271614197044626234001921570761220878263189095943177014729218077332789620870825471555144583898989235962767894283535531977562482309936067416094466292935107396856374756656304687531463766063170103835227907387143529443326180467313906981106151468829949115554745772669733571547735429181757613897868746789361127552436598933418688625047859886248728986526685044670716947380022548585191878625563539050313428507790292719046130175325030962510800394237325706782845866512106904709720620625799159852803480162679026146569275996022176675690403397413309024086427570809123440566905210293999359483299433767613293472171011898279881068805403386027881205837845404144699062132276069239054178532240992175277328569659520737361210948977597481546591110056410740186444503897321308551374530881484717828478403484578569112830188083711318527333863970057772744771069004098657625197728282561003549568257890961929466841263543373022547070091574469315527147197564791547413011232173633944672228112191877888726827585104022572931769420015557661782161421912562569475680718260338458017350899905077510892853716939111840876809631458954525849407514721176974849577484937895726373296537729928877750712701638783251760854440780061850235230697414023742337140195036727714003737796626759669079616583229246808668497499631867343157360010826780815992713068613504539849973905316387427311131181376861689587879237011117951892661386736291409554504802274361575503797388434533025353609536949148908850873640083676019388733893053087331459704933065540253118914724455023079767922357232845481513985798908799483405448529148763194007044117744799638150218537542531975654920940714514768548426460061077383341399581434262346526676981127462542028024927458769329321472392593860776656088599809767399837672430155122449790314695536003606893403868234737118483698870959885953533706204005455750385052354625375652878884068629035617788412597342607521684269160026267565139842782514677581845170037679943412666367457742806332768631064785769865306192851306291881988552927973991855923112710453212009104026758022938093584083861879254720151989465384029482399524860908220199765582977666610896369765096602487197864408336009619289280682306024090714889273646385323047984427569199251416749624571943150574661734747173542299639502694633575997895470890513235161390024868637688690403395307609933604391898624123208790311374238205322955275974041922330652019013674224972069414030703513623591322689852510759348191442025547349690305369133530884699906495002329782310780424698603723735031945631181462311561857751629239948484418864753910841804802955717922887839758056021765267747798938212914707757366999314055351089107896193183105730842442216805013991157262600677833296081045033746523439556281129352598134064483186632241736396069491142652025087678817134038076909975036932382668565985234704328808571582798046567643376169477190215656163995023901235080954829170979009039182666261461272473189277022462658507323794235880540441726281598211110732838378530118271585130515443878249712616924751536975003119294599749433421035526385847730324647476938261829354716031205250980964504927929745627464587788008906539298028370073542688839379271247791523151226806611762645241303040861468097634882892352614891783543974565002893058865795960460104468080496418731737650588337181438453827705936082575699170017032452687599517636081859611124589581395498961150279166420518450075762702776383683056144136978631284066343616313787360581409393528829650329325898224452222539890778419877992815219083119041122270099887586127452094434049970863956369493763993114568815260926954496384699200808809874713257818375171655788745625484782576928467037177521187575834420825588760211177674884467293285658503696338151924445972005142398193875840364673651078279033756572842543593261767127945772540596186479161136955269747610861380530998863396614447027604130731268953933469455099302377248378444841936830499947212292612752752267212786558742647311958537255268253439155548699761022777406154561275446107428237087594513769923959189767795867222180907383457796967353877809767444949296451086267551242799931349509785919008258502778848139459030896459274233856092278639061640119449523283831392152383753745524799642042274554538685502475531565080033725027025253233451523066044773230032306571123880066888581789160965420963384628417424350157076991120524055270780636173976103582522189948376237175169140141326363548212855878109121177717692155535141258380750490583068728082478891013464787334098631829326395244187801461299481452124862760371079684036469617021015486629388862010287436322394731874069300739053967046380559290826485490254845181379110495692578024042061934206162583586109170826545672766969524889407941764172247956379642509767361125481230637399042515353724697298752482597662584881688809725773520923617639397079081234430116195996620400537809246562574467508554710074367173593770323018441459799153584830419813117571339795308962314503925889178666536050950480834652457558378183942592715010540121064387211675028913685431119568133158046701452510715665410577975528790398191817525572498651672835776558644506816520184924751730669594319564562558647084333468534768803057849123046525003276761307694397068398627571039316806571904211444467125422364397190499786127833635188981771027855404451580883557096255588879945172869424292875942744806322647536389770298528030439549812529776389631713088706510232144128740348292026741578179225148163291821506614446198902158935665000851924346539467683040858163176083796941468163996288525890085271916288412510030520251663332808229474853172188715689070175922244963267309533784666771512914078995680729170478353425327827663321998719371628513546423217631770282656532100139247855649126680428682997871024115756752708714429923308081472192636248804454369258133278343818453461087216981143316597080965559006006954055870384318190711237825957456732438838404958903353817998389074426011450249094577067842885167974393547035504465721910532192079624722477229061622607512517833316612982426240122577554172705499543451291387176663248522167657364022887795574412789903579678540599402790880777555076247293027239126130151891894419312406338946151998003888422436239885672944054504590556393321933146361680163460304771267094823238230256347414745605734497961054671922320826446482528461281082003939431689408675019129660910163518606349619326676188415327615657008192704527286835498813784358421904635727628248500182457068500488225776992447224767905227248500522757072103115189866792884495217678298871292225499002761163674648191730439888566795053808698195367873309333155408812671041933098188428800502538166327397700580031824184555087997896814055519209918193907610839466452435752796775641870058790478566324413093513556240422526177890936277976087505419360303563376754106634650615453463110137765656538434095340708997862211514030902989367148683608460307170209210414398772432576658249187170471404750031825703694248761430686093385848455652339283188481591903030005326598424186614840325975907882402590398576773349665838535989621281319605159016500395244044146084935704269879448062687698684983702902028836897430202172434389150095032607857179479594384635113699645403593085889939189683886133690276889513162302205303994926939572463135232665931887377932490553297054999646054989468433520033505940189745484411647636755132206277948726674961758061393330390464247443223749835457204929488595901839315868870118934150969615008689224126922064485168250999521401005925048737661485373913135973964716798968631062631561614782111579089929287671685063529614159141496743010089293442025703308856306164458023482956517788697916956065276334610350790819813668424968977094483963767423163051406084477501874048150083765217328496468748643717245495983329913650623729889636326349047366353251541067594796726775811615085225081760655583132525339238942036625900184095879524401987814242040393498474551897961195574066901349780360432004576501686775268210156464100364566393553562340316203555186608994905481086521102673049492305173698353462945530531149608623087612239051640821885511335813134475479934787886937010201445519469129896375472946602446019924309005414943793308910894246687195197262411169135118489728468524878025348718228354197460311884768387953540683713914750413625107721713060404745214623915855136313387918003032932671848418343676340996928982937298224309245388829249291368995105309391561015452284419670073537993462846738648512056458947979332653242653146759754719340572315701789680567549827165499015797458600865077220446492332760911529057988314913548390363641937860871107021917371147269050852999945085673186714106427753907676428106467942640779540433344295464706892824652569041595748448813881997251897938485791844917523066431345025213888333213424804900670132471311820912754141712609348436097428466736667662343790572448432051355442896417549856885484614920792948555789249041425422538281809038357834315089371292930701611488385277748781600249718661042932103340812648606824738736945840147283687387449617154560704687795692062328400595208748469792365493028719846589661416822742481927726514877787828439297856355862755809407352780731625973911137738281153737646019119225539472743653094134377942104026363340572469637077829041555563726611109666660472196770638597582909367784915035683009667704536199780261841338591035327668516508317487347087624538706981542647234587116208954218796319818964214771495618584364828481641371239408773574795132225551264537551112071841033254649745574532952674643193573545302467556589666561126528032798830340213757618324080526296708251701526464772948192939520355634264526542523286652125331404341572146341537695606097444808694077194005929013476264630358308631266820373442578544037819317254266706133739171353597048592928257767856054023294568785597904468550747161736356490413478955808531534181405339821261181923666701607399507384621672646190178707662420205603656560688644746669321367531142848505859163781755344156275012057057059027830410923819025206616953668421003654125244843742999659893585675514826614915209378400475352174289948976602853087280014529383101686503985667953491058665776942683657559093183105120156686248059840509884927486771399995718151906870096719443053365520588764120611820602684597967118042737256010509908144959130446237617832121390216743185851719692256576193239392863782836027052606764585776323513368831104900271999528763028200147665718888744150953823961876259167767060784346259741568343669496644821769390975218981720754503234856894574462770459502117084762205854778146718983192622623092473766996321877819644576180031328675626110695873231439705942003139838924580698482518106519693270567903078429788013524570632888941210066894159552876545131735212746423397875989968977851844070081916657082659184071236647257015832011083176487185365525608134836482851367551388806664348359999201625483346860999343837256129558896981882890924139804428373418576604938817036342205510954545998350632599745277730166620312151159861333138530276367013404604454212477465814416197639699051841918139278948357251126070878215728287287426069571235420253285660828464767426574260796579371498099470987012512317104654038336591620435386288020937540576745205818882081533691030204177349744387705768406041072579616000229689463868373923353268747769878870163942410419784532345216337469599130816342294792661014821708565094577531784433968552386055566926036114761637187826841505070817744996283138889045296880790298637479423288408946929971163979528354698323763080007309740586550523324608396059562585840267906725521771519394462172900535555007324301023742594793386292857627488420629461665178144588187292461258678594949270776363468562681074169476852901549692465002437560524203808267740905125503065424805833991596895843162086076367157406294665722579838436791550591533383688066192491066467164691461166773479438043506313398941573182111342047973806757619051628314961206852787787862121266745184244262641347754141327638343969076778696410670607203174114745436788830375433526918558737212471907114510445237336548473731609704648470388867126223591502766858108665747814514163404344330985347430037495212631619179301911231051736301900932636496502592916246923198260975738206334103379941236115153817982266274451440499121859870090205394832069927052041840746240103216337218051686095501070904825906285688380691201437637401283235045227967157683000950616751221442109768593493903937506436220191375136351638374353895660991398743028788332008966606059961057764221205982640319247176659866020836744778789153912154283777411474278314812429182759367641697940592254658438282642685543328443856373979412130690473168685592662427912262641757574935998922681809036873965416243026009977304364225286704464535971213258663233914054615313661327058884380057617221068457239461305817545448332363319702713511297294482843725613932745653548457256128636958794995034834953789444596822647868849106750174661342648193173192151102619900831934224757317595696114322298621637762618648826492960918594601032691725509200578039066835510641135869804074505697995995989380006215494813216689884121117781024273196828838363889649842220368249173700306398519894117027899841408486753307232575525941462517665517282066316414856788239035259950948844237338721980721599745743006997254058706930494061134382301694620814881876465002822329510001672789699209622425286387490339433341215703618028860291641902100405523898813024675354875489931960081542432337202215880169908061266396720281429286997382888656368495915819140251684855689531350110738375577820346116296503737423772628610067660472571617795046627529076315170966814912181279484226845498946036935327296824407242256318836915418328384611923232129373837602450931526927192492430410100277227443684372081723317869476757545017477688418359796382458427006519950604479173723984010825993805840439355738549117742094942818873510237187912523883686017650760623315494788005194480329375952502386742352679871705969723094417901394405543799946770089144703509825755204045357096560397987200833197588355763199462293247134347069531528602407494542122775892093657313947416968759629359054391492884523887770239032995693727368214190257008704852281104457761683976510039854707122622527911932490040214108323878787152320003940724600544336167681064076163664901520865098236009161134688413763520846692231850382155115013468360337022619575806237699380905680587236812327213159437293664672167698038346399778116620819844104798088608109288332149302003489260509875060792895022890604861457780824271938569730876215450139905737172386496948592399104335520964416835667001043447993656982454612215737982322186699055253675897820708473352219552204345428628961649932636992599702481824133043091437476240077256099191062476854616324492985366327919401912289735979500155985418102812886941675001116287076084463726670582933824971907873673569810135950053251773602244316107713336214514980768856076589496701215738409207790371685209957752396951326495825850303434668328427866499587133873976995753831714287651230758915595193138790933379468020212628374533581711401340825973138003974140472636784110803972673610285461850870098860321187929457257281222394343478639545434361203830151939122465652553113914817015832365925086691871264531176597739456035986785187608235813981364231654590693698729498747365102587738666746522899866960765017740603643126561994389490254662712124338454789238169668818650833291747441498326752032550162466227255474766002157551258711192723179271493261741639896701370682960798548591288744035581321754166806314158170927434117529933929836607657456848330934840451568752526976917427374937889615016634853125595402481070998252459615060062474550614354490605210695893437887558264199051515691192912590492256617404933859058636435032333184309265645870328870969576731377843631320845238266102730928846363827065077747285633998176373111450625257042566826546801485084379957315796310462783406909164627055283792555077173785423070949869700573053931255475577714882480856874661327072031153308405868879760936154803161828872380918835230265688095950557045933839802361012752205280821674392960126017804541305935471139823255642161891667656583147488754585558654677736504337109845841948583869523794447785020595724084348499307130773245289032286016920322496018688370043915880908684331586285594050831907447098834623535471792945405115709853102063832277009608047927313260761973782800789955791813518007034797062645744452693843694309595280720298765988975907353686223334925959016941995298712132900288645870721356022084988183466471214916145898321200094510975722611939775018936757373852050976690480803644050099595669828520682415511622209138945036963930176857416252552394768301066915403022930888211489067908728516569125699752813216739783672876825281759526925928357177208538280254589245362556053172727757193030927436411878744979630876126173133529043803642074274103240040709069906424881054312191696638234484749013723324157200391432295901497653638606608947837183073779409930617837117234054203023488735964893037909398922359920038026527185876374695940846396370974562528671212059220687899755026244462181804743171839488066866337901174377817173123910007314747669474389888951025653588540210992525604797045500669579204735580053002280546953063982155822211820179857544359701230907099147069891491765448562385972784353086257140667062034434588861814453228570919619778594836227217844949019314260093787826430204451189196608741042441776896871720590088101969956190789014300072615340578602629163316290964931082704384872199506873619331995320770549348529343529185252627256787123542994550779468876966474914708181971425037193395666017662595043225299685724755557405305323216261222788536291901637427335254383166579848376551092448628341990499966225452580083281640200137775839980868465363493038572740696147846004883461904255533491555402755109774206029521138254206600964909312956313326794985394766519924497546920103893675924451720469447533723272314931762252621960000181040838115586031682203332942740149422030731494864497934513813926916701319853080935867157295616678202170579620128778028074034268735285615739582659293462191351515907616420071108296055858288208843622987957616034972620455630499523385438009212153737208394758550036555394833193294574093928087900402838032493244256613562670022615310705474321312551506594852129900626546448816499010466681422574581828469048022544614348866245114277642299536466630377993595325866934080670268911300119319113176088031432788722936318959969427561637006001140760697086158136657930398254537795200911203480321140256804697953068435582433896719750505095221753548186442575688534479754711878781989319533567922411323165293488675193502579352369913667489452893731887229950399376152307830094340226464392034074158646806670888370840391426325223365710122356619219906383503864504199792642364939597247835995070683731050037162643892274195078872062902596197739525668692625948872888277193441342557814416018086513683069387916619712192506195113967753067955132187473748173987674935184843951325717496110911578889620613819749026277648286854523548973115334812306447690668215566878401311978100810571979062332931887284417687075331554270949456866253709409171021083531818397248122437812361128207729786036519301704186993469975058715296557457590787702036778500883930370092939691651606343897133681386948226825911186332217174646342147862444646643773738704855888769906858024441233410378262786529529293298445047724381134923472637585954896361845893655628325955243382777995095269886493303682343350905801223641937813356588506325051677482224384372122213833140802683683808795121472419213199092417521220567396691426547452152920191197832732473725337270385654602917738229430806332217999724133336103975832810391790271027963830655023168896051600912451501191642163111263741357057041477023412981573157300441307449283762587400203110433221610911428483369885510272338175789015213207294034252143864345671850222544436387956884605156093184832801382945424220576494231107796891968670962694220610332464151905690686860673650943901925114763023021945117882485514415745977369265312678588975891023658761903511127062720266938692166871566995009745363041535137079541053898722562889622078177897453280023795872656168405314374729329609984129891069571061317446269359969989985109713188080371379588068503855715754993283069531893875111727923402183808135866777701617394244090499758920867170474729887136087325825881240464252857297549458595286980010526687396925749711182829807138545636450169066748336332857886289734652942952507666923741899822235668719550195147373771731555990652834426322021754002787965173467638063894572913573798838944596378635125205763747580816752910050107681250329744833868458983942957211260214508464546918232486053150759097647350828130491187944658242476453860429793183873894421547804679933471939378739902140495417700397726577177050620076443051585718732432693226853508228726442356797235365890096935430914268782487198437532203680545054088645354714275091422954078850674667196375667917673196942530306024330669188322908183081434551892685365462491092571668388396763946764786882476180111344437375528002488828817359900044081216667743144275815895594840380435408354927588748085498693889302132816562245716308183235822163392623559380826780331170272454514147413808808598127430282217596045101686217051160238273195689961991898168291349857293192568578427601775214492820760103407993411740683756072015443819436905303263432672897103589039416032812085896099772880127650994451525389475961071582535233169254523720169488328249398091974952289376453928735028311247768125827551128634753744839695531113649430143689452782476202311180221279897141496349785228526108694492400935713645815221238115789766669436180639936240962365532442817960055457987836867599384922783908516116068102863969457812354055858472217200153173275587562992217651484928363724210378218408698546879197600576688544838246485038414341943348420722917763224419539764022664309019566757674728815189085580703066530986877712853956628782874496530059827938174066429359287637798104914471765556044053176106589071619049773434850774257489634016237179033016640022163972531441517867017308378005115216669399714376829432527144416778794612818600410604526069679055904967288199066679835806248683863655012120178811849166691629762061069461569597555453913582365942483975659469278564315773050136811878349746734890150752956215065255092569693516211648467810018940937930461377055188737801282483314004526505174761124463959190191345184502263632891799144017739701682123610112432546221063111361662303019775694520465031139244546462297620479863846942844570056484124773786372507812796084738197515406249071171988660630334196864925786850196993042996672570965208739314282291410673686533171888543630549008223705017117627078087136670562263707963156231749660760414707236183451619779938357754201978581166278581408418641299046234748740941751354208606336868661190660845788930376822387987413163011289547296639482851940469280467950493448781642746542638007660814952617137823806045717616254244823658977022699170731759306929973690130654952435519635383423133601619562853208080874825700982032254244523287442197932267342722154095064218848963945619724914769386663790880005488635296711803847596559238749223171339766322885518609735407516908349991648466936847006481368178149078086323061894924067972275819199736517414238810793618032066593518149763166467771919803098048621992503782648998687206715809284326085359724391929048774685960047807270556546052193748658753700418568628553939177653133733802421401813467619950515255879733875658082955981984421761890287066149112535824435496454399215253726781359153730472897921290592681277647779406977686014164055214081813012101142084814609049504183631096564999721387774603967176173639716834568489786900234402392663371905648563799328280560737877070885481919503465887570505116939791909343783341498044574702785601303056956338872962313765417885004609951833673357942622867222560943225679254080738569641659391537637954512398680245879219909674431996644431952814803276136750384637329287230604824421958045238974312615252221862581091789528499653068103549852030149614870705604424869406979960222462632409621550230792629287234889236708624024324168890268077463390332960777125109841241143200321012059239612131639818976072708735226596048404628900414184364950903016564126694756735622768795005634377971692622047859371569494259566671584937233684932307671181345408421260954544841569644204598462056725128856195545146706913885188559273404690603201501242178075802605146263475373531608664220021247405176274688017224874119759808391388802140876626728470588358288567574768012410775853194312588761217286184160632294105162176700613884124419755228167236671756591606414136959825124085475547670510546777116940397473560144450343687805442864732017432467098417997151047257381953957578474866429253190589918027787345123261575230991836032857352190003501999466746250404907373729313064009477469069180014265499337865065734681403188212895726930778674161979883178989828936422707362788686284803336695836937898181992739495178717395270446479209275697652373855742866974353599787099735045854367150563688830496829457577874365378226901675259055263987316931588876476787709730615101843122619617547503661407143854155316765593473059774202500530193145051488854368714977763273554543810823926490267404584233604389095431283351121384055926069598289736017708840664547706978953440370233861934818544852470422226177747166330760441125644823049945955662780749369570359977211080309331499727187670821082819318942299752651582797132448062881343842713321636957899080104392330785958663305246503856163216228113691548051633854071568490387151278058918005968598117478508156743640938791335144072619644591625822650255737406994619656913590846364728706379856051450199179681566558103275861555131734524189790523082177718495511665181122370753084556141819230121505732638474337141524280156528005666083619348986934309790323143453827049203218886732060185241634672043784274617964736937109037337711373610529668308179175192836692719555509709970117768201404539111613661111404757514508104555578501802123991067803647213713483166446622226430751327205975806241800254617561465660087540789242931583719540984313333178882169144717257403656277389535479283368645301357817673815799468735149847418701527777260405357245407441072154180731250577200065750815735678792713431816401025997018518946156870145939361083652715977909521874268647777921146435064270429806679131251971307262146722780884003516328941781894059756657477108452501223605143750469596100965847017607648519048336207617932222641480697078335714093020530304924269542257684290602092969704202676194662059458900202629512849763036288565576403669033405317978593760651271227728959774776395692430624317693450030500904149336746914745807362788930159895724662965900111662994252029487846667704382785652964536676474717668288735698826593769366044730333741924320445641987372995109954898890289790183538423487856987611058565325249742690046674137417762125941972542395526203789428300978569126761548519702807298630247987261421886958664412567642396178135708961464162459165981642806995691870299795043144009953496158216093496465397056790674037276077652917766477890156663244249939565146178256899732211322294526385861781349066398628012792462875790022834871208565047376645017243712486653282830734640277415550759946451243029025588844751050701191203207922843492316499906530331607940359755765012712211937030815475511938025839930425265965750627238698158652913412380675368707429096696159773661354839564298228319824788227862406299068425543467098089610145524580258387799001721472896477133248721313020702368891693736036774476202244692149798551885110998717659207210655836051800524278028467475298807508634672443633591808682790756686756776222946473800573494761706932461253574375527338418209086925891862517715330034055980839060013105971753611614865388655521738265827045061422786023420564607761746989389686806067570401298453133509248563664133133537672462921827450747836882926574839719398209172009038976625434734849782061797315837876757258511483985188923963450462979981633767564956660027926934600007661436401472359874768116270827940934913179607262060386176083574311989778340289967081759595629875549741058290602055421101501087443159846267133018114983836659369555206275311900652782948681199001337315396718762454815043699520123930162373773540674530015125338435440222799644748197012946682570280677999425450226048570647910321842826288781768711451059614295172212067735103042705734289319629659546688010825977053240758751443737445592526178851352050776435190901977914011959549030300325368390906497029884919338176819228684055917021416508826583867375127355855987004825962958600767362090588373640106421941764129373469001773043301100810445747437695803402029067126359742618845044182463241318107582283441197203652726143440033824361367445106455937894641367437842026974469323823845209645730165054120422562001122647108922541530848949292550776163795044628801778457031396329965727634113431048236514324689245336768793507923823588134778628131920996442461758936010342700117953034131639694390897299315310853803419216544294322764673853295098652068136309497331853301720301237263733916723005132823986990916677035947137689859359473602508517684146490346020035406909518631624743580647196106266305863275198361618758854330675712687550511912532825205212816188265961436797958939578262402486243170194939807393836558240224466401104247403724788805937342427682820074810725297297005749459852860500407966226260479672317741337333180812142626750303607502590334724119170252990229421418169385668661875870042508769143408974038488537074469258207010321337416835875020974932826764826294486385699658392789620423865318757343289487288723379962437566608716718814644340392111612126250815889395364914727706656025146288991680465940880135829609995517221449025453340663680983168620999410933459271552025601361101740441818068313943146504636724871144840037157673407416328121590179670546844330080796547015954157038800243779896673587048096931069485596285618059357687397924428666279113660511959527741953997934765875114958229549148037480164050743346995120104715897779761773133102449936487788195211530431287163726772300265204755871249960005105775814859813911272675087404481480661047513258605480149721560177667640237724570276896069931401945023063236286070962044776612400107911643794886348229717415991736062724264505256965037971837879419869392378954829705272256150870066160466543642936730170882019112090824092170551223109746114319163719064987188089904837121132517485214257944207426580148669023578537335290422906264988529957274600099745751565800974006684236113781487906489456864581182737269768200054444573667120081606223693831060473362963944397983304884480766354646423759085489229083965287811473274792235888515335948473371359740699831396119168358192756827046436812209763495822859555128797379966517774172618855126878536943915372615805351689691063213691196294017700278317490925059163426534113133313394399372235573611381874424558742692460125788732538249847478798135061830965669895615952809536578676380156281431677803504244121283395339593836844926252931170107622472475911699267910806821601043701450409857188657751046274876008790669081454223465942412587624679269255540804730524082699208035480963407909992922451393003664468782662558570400741630163207768526666943297816230288329195602534265630468034544199790423750024463207784080658110323369501589524813372861560198173056209016965366374714696696763826349386878110363263196374249779251572763526686123267873021543797213677816017577651855434775810406881831835166939233159457601937191757379571042165680425305786681665401282446962924419860943925004743605244927648107074188453845320480297944749133646869703581522846329841496377441730531231983482110728166384288190525266874321042118727476108382337523857721682073723805828166947635025190039642423079883856193815948334274970075274319421149896713198817171094154742620709752869995609181933410443809128345391476782239487067674399502532233049424053744612057382990012604416125617770722539516248926934666525275114953447074348297688947480885814063824012231524861402058803365288969830510451030968749194371329992198078986340647160886163504646675599621290732863344841757507938366537958746641685729325449672318818955804119259001600537536846772030574547641875733952108855575952663467436491777072764083421122166328393201381139751862524588396180362494315284763926404282477763970703575447693997642341660220475954036578749725608198341777565096045896171025482339905203407639959130663232563228470939826864384412617170122277810666340441172658283296032521644265587631417531009309625311797468128892649109296993036346240064971657186203053977209993380731350526784628104190544611721046677076978765652822975506653702170384764985278656333066629359046587557615428648843298144285330495135266640181389831683821898701124839080612496320921749035374910433449325717811155482588033214163773694464508321011124201114171901008242557851055510165629201424360430941768708771191996606665262592370042996070121901923137977992467456773657276746459291646112997850580268846182175988237814131783776964824602372742003137283775946876803302334901314315883500941594741668267171413614784311683587957624450131959284132124001472223505514556257339103647452264923709705180676666697925769723976348915699977986889184493940718635285979018738035203626975708302444064907396363875960423258298636960992162537573263873892536518949201570165158975423694234035692063428114372478603916567342218074540338994465241683719495870129530597036787326326735197730067561389087021978788247887707321760480688639381456382757643936054318542486477415731625992203592664130019890842127824689829042955003617287705877017291130349091606574519791321387966045180247206055900896435376103844566718709292790338522695584510894922326084059304937615560182278709413211574949653609659837824693986877734893047093144824185044387826647449224239596179849197168464577068511589676182236554328172365384090716752706132656032198153453135468964082812190658234158500806299652328959803526009767519589292409590572819277436934806883134110814179322768308562712506822413619497361463994016990872293364675575722206644038089572136431838110168909889693688358032895686067791007995262683808031960961498611890579380186863867298588795687247932430537907677215743177568777100335558284331556444414768412799193897523910672959835187852247597096861530701261817078570643016518525243692765666316068171722475351833258912168352128956283066996636191871478015144788952188480562609810019197924911908251255969315639223788035378358223645160341649534905495588949657579786971919844258888576196116513208924753271147785607684611593090320003830477488909952665433842704174637196861532585257076118045885761464491947387482954657743008494425116838223373632708378460270067017126952567698167231544702336329562119595563959209629951528871472512627253845527066768535624500702618514600115546276536610332278896149464169444769562670007068880248440339897210596364505399286160435717778840744797796994596974861221865023805245050095819721739749274051189031002412330068828033570941309858573879426711940151624217705975849912277650668919924343655214216305337789886509319906675914999670912657318420433528479034011289425938114617169038596743495290860668123014466304346515125561333199967856597612391834745954679496441793954712507179379681656500187657340170945087116962072259077284866648976038719895494618141281390836241236732385217647797501104663645908341484626160482179326823522899063899496209876575293250496439700967709718027305750760204400021362141781605902009981506235701428405467296936217197425061236562148471695482248217379817072704949491053583270543632014588989766325490886339400136899910132182831993848614286279143518204782346707719730334251487366858929216559864292062408085925755964254240284418940250819140043210801960141201428519559117656642012528344707160722572264868011763807891865867338728734591224545166206890459840181948148900721828233597901106798629763989457820791269380792540703875108933212753315048184974819328714927882394888085959230585086499422613574359716870361551031600977155761230746753096515949271004292181719040704300509118653998855435318926141016078508029190116203777584225829506713316805648010486018658098312192466787177143369974114550501393296255311857202852687759162224162908243259099306365432569808454500872345424086634552271056210598444574932884303428245981467355398065545795030307545803089657878283009259291142842405280281104096153851260894384785246473233319287121531244742478535584251378656935234068026849699342569024560986521237563065406501355511229605477825082066958439886750233136516389823640799842138228291241629184648983232318850478726149525218594524155905842166681090530578437439539949719268171105286747481867175129968265653727126255502871823632803448492637594920850782116592781553551219327182859246472687479500098754219072055575626557322685295316477069334360135972468633645592118829159949527278721909560013477404980248780667164933481404277534019220113506532981644331584202274628101703615607166659915972130119464399765200497638683771062572629746363881836431762444388175320868848640515570965859353739287346045956728046942312711800039325624687723030063722999740896098637846614562992334731995954684697954883961607759290845708333331503166003097333354711227240869183328784487007724823427331263573428959678779044528352143782579762504713937048781654401316956616349203852874006972370358344752716355475752266621050962193097139160673151323909741009133543170509795385548519563981248656717905928842985477830432568550163642119550210939581232316141950812600029927543195018061047584827636718931670748526070366536818677982776311498996426650796161000665701107233224652676695766436818643480446261515744848197106798159454193249577101733881030442321561072779959864762413372965355843639644189090165422029746107557799264564495746283264677328613531356925583926984815002607731515137828384715519797607453950666646621213577166957390122633812903473904045007085714533187757231827121039973654719041981297143696415644743813368700922101382902512685954777175086739347263267890121334612556927423395444451701464869014033693683362843093775216517946862195318832376094143846289677681524411140210973136221483225809658308109667686175450648370546992566282361615538949296254615913586369897629426642666660382711425058660751874121267353842285996156168227176347060615140666102349236239263662023479596009612762427494074325149639767196941620857711084454750428404348058861123558283501050119377990295252096668537154591571890411413648078386773811480395571881782709927811855967549955733441896402645015815091673228004009636960277000376108582404303947168341133648575634008942707489302065094057022831127140554430964107808615457312765190444705649943466771595887003659797941417533458765824766118042631418085038603250617486551840890617633924094194198510768808324795999302402815290474239849549564922515022743570873096804206879558004399047716834338078548772715624025551989658356962636120764395997140331312453427424898986194398385736024602423046912286481806453240594995163003105669553608875728598225095970134636990452204487565562899696144055967144628902043895598284736490446576815180548876132169078649919613067425666362665474051811114763936170337059871870240329173610579195943120054412608901679664022240217861188194720133373293480251162015137893102808133732356942323412336505288880271757047624137603444357176609605200022059364397957486091564600779794006674171986102120863519036388803028648887519074465678021663099354909944966813630038984583594759906180563556539277422170682962511955437128638664858566013154220624598666885326433346206214329117205394167787224765311044924825286782197084876070626965574908622356264868024597512080409988507287689135617695205111046495347191798780272853850772496501625032946251077976223715408996380879034501639859324150625415978442311359071126194280274970924836674187447672213819820116324442336793364199774020074592663138659397339027523436464564904622159897077700793296746826285201742071278022349236036226581560286489440068567439420364169746398224179029814034536154064102065141829065155442553476701739531187745792261985443812224777010715561066645069748814929545425430473006955753832550782801427878729114021386233009808400605052744409967408573679400481116955946373515719690926195448266603526725322512991692386690487754266963050952798631272895513731361638208399590645468872933676659317215802475029370661711154083428743097883439899005901980965098662686183406756549569467972365621002252897356772888499799345368742842541187384780278272670772468255854361512456456466810490317444586026331870640428891001278452754964721072095930494065514413786213579822293842600855623896647979747941403876570153354391105874053602937643047500533934929147660988251708824773104516469754552279265256350129265863042544200576563359134064247677664928653131575974741329984038616487587543812583574992085909299977517370332375841591581006491608097474024799117409763947863023655690329640695653886767033085670983314148436010982929979715265986216346334833049588993250025769611879790408994213286067591129939656311116950387855422100319358358085281705006210570147857851529278572158136499914060670840716803986129810058324672210564477759700655741835345346096137876509972326681555280464808747144110901071201433471597082019688492019656075810665357624965824249926891167157909382579061993930745088744051229145356368668978796406199200625066280358156195847295312150680873503425265392090323675370012365102970092556569907704465528394581486957404597176762628953454306213722827562780709938862992206244142158452037157079079941593741599461404518407579195438219028982579263135210310446361473720657426126363421897892642460894728718727077867410858385662710956736793078719955670917371060847007479885819270452861210117873515697962466771752113028796046588882235432481010209774557401939857358594894443927287472920903583628411735195482794155261533178540764006556624525018947665853755891957120825953715777519714492909527162792995933787069918886376778405260932065626448475727217601128250544243788906814960712297833242125605369003505088254536352253826904158195439256208411510862829960402697242231329687250465345015394473082108323241894103889731658375639366572027679878404781168029903144474346066482060066675975286822951278327629431021477065123468315488621004888610102390371726283256413101217996224324823066353021429772351594257100930986403126700776378069346772539564712607570915674341382846769134851248289738199603293585953851922153660322252705888422161301302388148729817862128511925052794389113205325760551172313976111231406186102222938525373213713967944233348528805432650860638566467878730105300759476460736447598362111480516664149302451199576425964064589344873389773053314631834992438699727182530900815489468834505671389761068225408395964117332467803974836821788353385515695881226111980671005609493350197879160348157966407342043700514662838379432181522786353147645795141672094227266396802331259794874533083359231926352203948650543662351145202323846175757417942244421667564117364866934958802906378159789799273695950328704124344692284773309984971170939658074517883965866968501276350478416645618469460790283208654699926240636750229872598690859107996485368973526818007126873642427122494195872994419099861044734326855400619478959977130185148799119290818580913669380716915565898646685118931128703585977465377599953188031524978972122675189254838011684508594542237918533426627967080808994602577040950991526786507873422339845965306101275059938971974583601874397229282277357637556756789068535277356197592154073016441643178317222326844802159145557057765377828237199447237484729517991400544946805921676514320219108526187575418410924874653625577019293154284805827749764602441813621815215461731312999910615795080096878543173706416406851390300504503235096243073066247336782634823865023959090398324825769232099690338281880950548012968042623166032357002639296019679985730782766493854927314185919557847047006053160954680172293982511597546310717441281097113643312666928644892869356287368297872745152956614804665418156985902001634753421370867709588881329841026187821304121431649587676296796654647098560993583614583157756365108440346421813299410005294460941105586939912625223747919891280565662861843415678554055223666495794942194481408626190341562307136285324645340168995777128713697898735449301450145146619839229419220558139257203732320116457242222006342590688144970442184370700963268760033763105476459949170413856805661136660325327698043740666327675385841358457196478060186869671669578201415549397752550002726396899166063624202444306603643710080099190980509220608177810942094157931473608844757551917192566977311387736898368072841712302879900056201522468876391553250044904523580830260612439225563873867848957524446166064014264308371237341258796577887873755928771096201380566646918538443801156449813493573565797031180205549864627511653650819822349009785537779267327298392590396980145188094930172134125621125913511789506857529559030083988976195639996052500016392308095662269932625988595507441813542329185338378653899717318622294575640310127792137678140313821416324027752882966081805324519946157606564646619574814687194975456719330918075163446943464120623221406924780679784120039024957868345154919577310658073049299481796018220542964971303424334861479879721760112885041770647064411533484826736181101354821690329980130408438105768809401064013780869144454686721895043778189122955662157255207428597673363223577930949478872622151713031848286257009701161598149885925253918112645168809840192177779455353193368572384351453823257434686918305373201748527792155388997606364792160737740121007895438625556681207902681833829555414709411289724830752406086081069499217376701889250136203801006826885661859858393301483344238812347415937828444632992821003477415582607969074706304215353921467128515925946455963042264856260023705600801593936170620466719104894250975165667168176248601602104162522882680417830756571932581086920256000663815815473005289533410031766655731444821569588031991358070033251108332286478631081322365168604714893410078468123987486485158825519492645779474995855329162754322604980366760426925574703110674200499241492622479490964873618873069540113851842138147625666333155707738372995298392644626740220002908632277357183709695283180626759823533612192312515964677543042893431139872391039688794841356235815819060997414357416913994964552223020780222737186520297452998293308144148192808390916216396595231801525044974611142900095421581637623270994138128031503931897097518023661590856881086938798377940490401793763448368995096117915425923066456333871489289258548447117881756512781921077498055217795183115057929528331024130645518090075048983029628805229098927085186977189571573274701168964983426281073669437372851941890261276614591573932063742904093732301902105783205997045595594965052086610674148112835708072639913717180564329714079819467236446443648655158466348636661352201280597381135995512144211370571088524699191339137977452738388822932160303093431880703842700810700090513292864429279567150362840373145177813648745776999998384775272386673894963830512920864545354355675690502976710882221217584428312562009646394981313357039212459973337505297051847486509847709192743240933036054301431880571601569176995420669368862595488400486660941718487260510409425472693023759028512960220894084680052550976034959169687963426508687679198929410237908089459852797800559521961379937401614226401939438050094964914258972917449143932394555739311732856770954296503066637877621561184513926198489383904753981593486344849004923097441306776518016502772301173820494479067086391445967418619584062635866993320522827532466446578476289487776495483909711399380067676626281510153967519830916151496743591151097894520080128458869582733103283732031710287631676224988148198815210186604212556054647306399417215837394300091789706243779414629140496445110045672065040788908135810656021587530865142639986105859142133509735534364411349453821704987789498405796076667029874961855122752605736756098148905754676220571804389343598863065942979108991781310746872083956270314627064760217092467121083626117961398856198008893640146291503776613498149367046781266950129020387148027075623892784651771186588537529188420922018852286997450701969682269060495583887975155912831273107855296205644869210310258839331014578023613283470244861687437741956628578236688255012737064989814168657216204319399570288071016556190514834029121580843161105379500745036011708444464439856888566051736010040826455668382504855986949070122877481450404202323228122882577165939263241937895089581510775891256973711659582615253330913746904203272509740641288265197793168374401358723003493255761494155949311909441529587600667855401906545980298065403585667327693352653203912266720395466564416766531254276326487549480260220025291228242848904935958469049232684498553682969887868590476222791099201527021692536346613648291184984914582504469028894503545064751329249330299161265326315056992364034986806134541892227372789371612276007837676500104275052261724247677970353776193753199643103418224156142215606646976353238193605662257342560033363281535566509774313351206074955768511907380993206284008930838234488528308357047285554108804302717923130013103550916423063335288084842779626047257585029048516004936654507674186073462324833490023247057238853160859523335412221217702544592766918873309230268860645880207186502165908600913114479389303517091808808363466093857580443849552922202133920239566990450400159701174697978102806697875156624600210822630659001163113954293371883227726934437520499319688657486678170823535692879528264842659239760311434796615023759543196442338738626669389825457569002850825548404542101459279348628839947659915077604910276130472335901496638299575039853370598717012470539059215599592490212946063791227855422829103683199538197877872225106054964518544253880518265693311449094331469198474317707910319877151784232442526097388203095772309720164415166844085767019599429766386296066583567882026581620267705429416302079445873449821723122965725851139232537613745765794926323355325570056411423352141525126391438773155353562953696345696009905867170859467734853306536008215579517130529981844818621203790450029453872662870790004924330828548238119543679717178453672883541975784648613341021663590583112578424766430247821101121217242534655368124765836913013687075574566014194138391611162405133133051129891788467778453807602018021612387766072882910326309420887502262655763716804207231537249859848855339381924025594295524796390183569754090912639105558652002384707703960863466400684922104805052633019438202991190554080676720544060278238884275171299169097607521843950212903517124118447026039423033304658831243101713405321686232470335420811524715468072591875840221376389324966694273075350822308371759556796895832245682009615486231226372451212221273444410573112595192540156194662314351918044872835791359281275978037697484741151872691468632509301147825473487512305779257783497034790069118767756795275057138115912346354786303766043535281057065870593727734927381616717596003859484767508286904002657695826310168192117889137254663717459410623021344221587857463057941926578543653040447605297850296029340762354079197469213385107739100690272228610587980723729679978296248816187361936309387037915222416938929143893379098662418696587136347846258075095198712827265962358894225130729056516939546985409129232977393225308619644412471295986083943060927030095825879638802582402469083276316491018946587558223953253116788766236799827746119761493164711772269027722695203640181330553239375640688092100465652963456897405265942027170232303503354804341831339105056359121312252778423356365498678569862159088103101357994193126342983805034411555251726367305024841152516086524813354802720911426656019133886569939760286265395075168859786815395472068981674787262613950009749685468835710891443621016467162220939941171823680757546890563036002752154063238434046588097817741930591997136016349809889967706498468362571717720637132997703837519641137909042366113924384600379536041379784943144414624998703197305152437645502415054900555241279633816802781112412852424541909958259293408741028153967344981635859130298369583369642975895812603768924291208169433749473476401312077904134185343220639461675018603555634182780001990686855906163943426842406494558334080195804040756939449624564127534490629625240927613282677437598819584175342351745944614249096314521287653324068353292577913822482237775220943761974630731697844453151417909847291034830472753394254029666647273814844406811745522678655896857419858150453142386147337923993147294342522507512891100937644196112152288321330218438375744371872037479738767059181332688614609887886997532210936405507442073720661912672308809905570528345621241307713820421308785865158773674205603321486940752484252867624466904220796472915277520097834629112294629547496865893411103133343933694911519736766496374363744613924749747318753970831460480138908489243111752567367998559042982770948644122755444449305871374725897884993675389833544504078619780015930509997352651311944091116833502874769164541805040163176146890788683072416288861121373789953037267710330861349351216726259467734197050029541422887023673672632500248372852755317424997640718170506625082038418781677037541991308173475589482264143962691189370973213282512599783409990733341548223039563175999831169087798199371150484318251160528966503212560274007562042504888113506893258174274893008835903821627634193393288603242346569407057557542818124185347630198648145323408496324923457882563716384860272747612442738451005617949987295496245826955754077846359631089643128360659535832441263826069365070187810297380009741924893962272002829806763467378098482342175811065032833180402521854401914482538136088999966700651132259326148013716237222692210892383141223742775566039902440303044249052744614207486015122029825467810582258760736639478034979969579886618257106954684102722757309897337101487872089357290440195693751734573496569538162937223469906682091673771220192167871915323433149806325614161307587665810053334038589917748186598791230868295883597930857643757089956418167769516578184186693710619460800637188066266770074138813716915118371534272651549158823573478063205330703370549419933713735913622155616155412824173103824049497606263776174298703235894627692430351028640674343687950909548311163290493621895477093513385159999914081443526993959667473364281163714872799992593457606846239418302042088518447984081398796216335480980085915873637136298042911386551387050633719790140693436911563941637174386015316493158311598647873958698104553865966302270549313208733974031294937395965268466669437823167774617691959513986460688451585709544213682179687600536525453338549179814834677568387608054087424214580616246623221903396367578777001435507956278804271563621376445162268071435878241162119461421357217820909924812089732741373459935081969010146237863911126992955640388605916442325462831095181634430380411290807405600238190394048309785651576072574253117403794462033365366247014457962580386247174274101682656961363331814473598433379297662971219740079466226251657349308311526353488645492856175278249275731153881197147619901134165447342183754684580270940819453552967576172868961576500676444901544762643026375809441412811706067868675728490783589606487279131256031017424152159025015257953774544094871266077199198063293762690941610020348056067419104240886588904731445181163228157958817474899004431002880451906395044780700128439609817143341373158004647749761340243639065611199673770440923080344149194542250963070289861212506115262238792065452671552876973622043907581730875185265951962956217907859449679157347082366015345497135567513688860290144329964725986715992363345549792728926015062076138310861254055512950403116076825460234517754789529149776613766882811119973460305349765454462414936425144577935491617138962408250683143579415558444804492158038608129841023092728586667750563344624779299616688336752683788040575468835687591735726206935622824576125207996206733979745550698969870092843156661753141038617726285808567590335767539226506737211857497369709970497073354799374535513345843546947733435239444555492095166834340398321291068055455175218845231424130360505236318978341682193171550227169028408905099935177730234499295775397522458403691638254169412052864707262094365231364057830693597703479769643281995841474344709579119602057901160624963657721310157524564635761277524821215972939980602616293549614806178692020977623717401563758913143373819932532663691943903910976408622773728024614201346009037539283706122067503817012327843215911393207669123407854206619769952539970200308075132156369246655477875894289962666862804016362616214257631357832420490789155549743105974835420890543657845177569842168439561839046084323324559373163765637891608711410599972549025064961369388064945037048933442472405885594391991350639607267372237564633267181761401866063312813094570901352565182846734828765056926061925570593436374599446407126873235802512997958166451084773623177485855684489558436869664633243037826247828641322600468093157694602077486623663774362542607135482274989575146529539956732969254970073305850585891753198685001262720771007142480933987886864479895049959543292498970094627851757920325197423487903454586961873454854870957517962423895245080879671008384552352390533156786328611935699055925546642145230557622867303251091089903427206396974806624269997242608191501914569175444918641660045230825133842168550040872398538485882560332102546888773977471469376398461106368962705062413448146609113980219579570297739969806703859915405599834679122020614349193285438193166832421436904466253619536826498587360865041568312005660576036014216944808065743220823517089789378139543557200058232755304475339981105120951617318569887387803891491072350174281061251366857201878794538962754411632002574293033046807342718552658380121692924018949710173089160922510270390287490046130764626040474921646680652027647923555753112227834214540048047293244789817620228854319242888840208105392922990651322206476820847635536035546658036064412811041802598303940124644117499622974260459093008764758955084489675846783181731934690342932843956541924067098304933112822641510121855145776605218075459796839806395688222733859202123108151745173647503953975948155279882711884625378403863646673292165377212836312802924859888093336863699079017315257669123051981084779893840453128208626061559195441552852424518671692558614484480773177410880915094243541483930296544448971565425826095359431012447864644172665197121472906797707041810143727262008530625380231952704041722173390268251203529964569981035240967322470249848859045730124759568770703719120587619031353905066789192243241020978847086875175840848079414863287220061726865200752589962556491384230962424176070397478612854502433510490257946212542870512678303738559157516246134554644671929289373305155163497296920285805502293624476005598233132583370380628095486356949789219998159845190964666890386897083770490788488284991589329266275607069281437881176308192409319202273951930189611319171398837380279415488019969353688274535074665113237774918181831344171238923406836241415429599645350327351367251187767316731644347614914082584578288821580409824714813462056488513883682709038010694453663596550809917041384632884685712806909406686092333257300215187372441305391959328878364814802807061011857668537406400782573541471746628143574701787383567220534996371385652531614399980009845069595433028251735865762234191648064535663463398290565857183069123781922624984941711632809036983174009834955656310673880506726490319564782224516544535959779283544717156727987266656357716051693722321800666371273013916117961442999751551552061679860863485142361198152498237272554796812889054813362880918960900766216885253933238261937468643040420075372858370177165198780574448784197494136449393663741948769674794395169749907599412887521191441232018571069964141443546223452264964346941255996772419134902604473057315058241422436823084883448712044253870634230517806297104976810860410302365482518333958941681885945883485232526669831887922874668185522267418397892384147875726161082035842682253871220233159355306607604770196348653795456189269873950416565250188240661266660914420230227741729475521249025140162858655088917865307903749315595954819845687992817351696677222250325281260229601905602149311577127599210247326166780410000585685852930443796349685326538317354605227221777293537470886748426943161581931642269392209595452738571549439500117597567984967785208307411429375709450746432087908577660032550871867554959724627822910415161309530685241983095708541415946530417700880465597286750995603447508049323005524285016541551354255923108142611927041781080059734750828018575007675750330946073195724590966044813267256593206802430783908454536740263876184811793606979355288641392424988218550860522357121815853211611998983045167492827923507902470248197292912059983359701070257365653536232352806274763100561897649005400412545312239763353502146939792564115866438925899808140650601628767330342477011307649638876633478853190790890690047784415418569744014483890609621410220956375421301408819101382934094454434913793084724397656611021259312274688643590257301138755173460562852852485710505120392299211278502918612906628545509417349167106566040649200519598418314447848206074119245046108424642451307590151130567599657260830385438741746315436848835228150292172421976260091126070711738499467807922771851878308128936647209987274703324395884877628730202769858964396023568526248642831484230144078519200397093861945297281247318195345160345628477943517858268770032513840508272901586577938920308393928904961336369634915274483905077097562453044077664935080404732849510193307398533502998770106921325304941138583742511149414286968504208541142460157302136513809335508522398582781530115333267667050101023016812512584528300992064412835787623555126029731879311057604679203131730324264179420116808214674035945526312637997580562968824886355177846982514683209575729626593829760359493904530514603015288960017436848105033430104348314391974523490595097219185200896394479400312288285962097573815346500939720328878441358906401586480972364961484944693931888698045540662040733210159701356010621100922591573798363620361766067929912135473511421956167135008800547462910123837806048850436823124257666803567412055471774620638492112307830234512548072885494902496214084006307199534621796638672253044715735980387671806766158793426184557036001097406627887040419753644682065658590862380443160912182511053681755071601820169033527537382660091321937714310323251210548945112735295979803405179987938586573488216856042214793909566765876547199316635228541720721500929938288062896591906257788390138352907763325938255680585713873335424249212281199798950092978274310473882619883645657532068450059624507650396380605667830648307356146668267905759990293727169799927560355961199477931371887906348445791864434501456005399873483680727804591019453633768459695883829035669074961033951777539947675523756343239687723175126361282890286459175967888602827388932322593506255741398840199340019153265437883071893454297270653656510860905776501148412408930638691477385914987383035706440327721324986491755436602219363848754371846069124804037557925721457314951379473193156426473358865192210071426247042206004483379696929881184023245871322461575021584975399976642395191268082971938593427384439067078302774513199223989464712482455955018589274144624312028017829081516352895218550325155120777920193400252522247429183507059269198662999350839156927122166921077212143897250329392593914683652936207501902190384482767471854361322322672948738080672452975373780902826709479020173471817993661311317574656732151373682304931282634318394225105871740175651552212912146462302921485555331629880352971239581355621997911644018055281852044254372679205243223571150726588729150264905982417323039297529043529007118393013473599382981103340112589685404755163335790225305612403097609456519774050214652464829776094657376949833185862775963118840554215962039743558168274372437349753761765576585575003718119310398747264601355207331887096002932847663629139615960348883872465782809536728667834708508675536484611166320604837947988820671330129773604583099387501577692142360810517878475916073215028524391287808600886944983330795795319889245592322471890889375340281326822018072741894082028933661532967165128450837398230433425012090147703025182998265619505788725977188906752947415344809915126647638693624293878321960656421876757583946973724351871702885899368216044303876663018247237575922782770177777920199974220232993900428506980670928816393174462617853190692585747051175605474412000913612541654026073571857186670458909306579277963368370395908575749889951568870004794130244324759916830280756424527067568900971465971646676202471904580326097895800188725348378457566726693320785773998457267115387381166049730782353546484353839284911305802144515197360928956934292159178464997811251991898675690739511127657387803963289898984025727496055888196436346770145177167833620105920322199762404887044326228725008445371127888809994644113002990910326994751126393549089576881501245337259055743011649347764438529801613643547669467014737992531606375798960179930229414100187819963761694176078705963527775349519622426129086117799554221052610764096453752583401669612212650662367922799477786584169730501618498082769404901167646994633149404036324658288087535457729564832489904800277198523370722155902886381978067283465923394978555895016129903043380662127466327547121210261144060326485253738023750903024085617723543484203596390182241587674958012774201667101703967787055186539487484371831509951781783851021982122876477441539090556063991825401321731705540150979795895502817185695826253989600634062505862716996333642677886333762358174824291323698850531937603725087003692662727199090431821828740556800040209010777821422506774883860186874172381109105460096681957791789747084698841327518094974811664055351690899214353155700732828758096802535176946221343439209863744241229855379326452623541797775675287709634560595592245745258160536997687052238476805701374461365809866305634938399264409886945288787332879034579589426147959959661769942010151100904384285151817033637244586591499459249391838699167910801773266140313390978584472559257362645930915252714621481323110833888564268973999933668379512850511866158914814046995313951474806004967085836191929445093818678852346301896155080409215370671474682930576627815128998869811059928346643390553894262600292397511179021907582911030904412238684867308054994588920091449925208643862382548694880216466402092977210750665208758063893233492707068847451974967165931274234190669514574017275955729715056437059315728579658027685500949666038975641321918255860575294777758048505547039138890489979710197002856150659785010374624480710184301696206745723144092852133128949093726172076615161094966616661292725722737698902916354841453265659844622194252057175486078861305505247656846708521056718144769489418729052173047162252863887386932718659941612630809048615497486774543810037569376737009406416954770807351239983823584700885681357606200335665417253710958051788279079135377673954682449007685679977105309936633913253226756584033160278221809238496629069928897015775838811405399753660099714573308396821065293467408818106758715196234465748340400633340732577798835468973136019439722960083870179980195684645922638052301338132983102309644545061258361788802905979690303082099701964284894212911777493517068511416810527075668230056935506367479541314958135212762629561648861602605681521476584523680332867531859955437030964388991331598249763697216679153291098966570572634050617293928991046147845533092334667209999406243402323441854999425034763769026332029916840508082120283510620779714699899681939120715731485764401904720418989248180435676776462492258641459785231747706395602685562759949036849624249679635412711883420564722119201997889178225938623634708573293234747721533587275840234767472839825831736825601258994929107115682754985472870776316750657167641046126678587909055270818773801070777731359756256701804638710487033317055592874076154148703174661530367738899469606845634499786606320893260328535251292205948541860013407131860974678848283214555426214951274952714714049300820599296132403171085620253502847319410809238073850921320969105080819437184098111575602695912860858008347862569321074758668192577032603840531232477952305113285315524532955514500132730148559924032175802170966837603133256736764234095994451233402653551510195078407434716143151843779712248946361447907579993321224774466400233479963583184513418705014961119063733021914518231359506368966761436021101369899607469525037359355053773957721516067405850312699985975961031824189162755988815384274516001930851870637857042512170560600527560847646252109074848568175436437193723580745465982397730685746707262982969065290521342224452932391090622521446377140384793352972367311763249224273223931899204658817742821147618252790324850299881216573749157976822786110762560976465978673689815398211666501762008433814465447664417116555216453676468317393916389104367957594064045151023057153309708933209946338427336196433014913916875207997767310642501138338611077790338810697738103479981754976071555776206003149381159155326297715808440156676316901060461108435773115285201344544671294373038813601162324791232986368518329553313871166017565822687176014568760112765700895719707443234931947743280740767085985535843923213108056742534558016929383835817888180599704979602210759784025447278876194073514177462402728189728627891885220149062249530077161695568878275740464610291746708222287888071934512793883923753901411255435378261618075335383913548176788983588432566336306060807685819384593740027835169159132644827533270192570030794814869893678046499462600827625186886454193805287758279640772914815212534795930521854865239733518218257959651174825464238769760586612336094187517321330966974783007025749289796121821155718030917191390306235855180665290701982976594616894228219442655643575959789444400667238749567088528194932835621277345732219222667574446123455192701944332347392526610219700454480273488551033106582541201870118790561103439808866067192514063451545451979871137763065728594897511523843550714835697783648271132817712641783806030959850293454113082377284655416819820415320781904422438185724997858028855123322544646766630335594222714110892100079236977517625183823396268687616275689909357823430682522502787691281015747406758947869353555025606987544608362335987400067824020606947250557041422515156397673845576754809311558368418979728854087637143957276213257777376920176442603819043262370841386863685325783367799505470116757736480151694612179968387044980527756864011635758661104960198080362314403245137423563670807922113322976153301106525182365379731063280215446453367707048140257559511513379160952554735435746450925279566360185436789323973406620527496758901926167364083892714646198182642810032056810499529951079630455910911450139186042786798995502758264080983179234543018976996105704812409560920281872689282374009689620544609117000931855379065251477544187582616357578436279820512238483754360753068306177652320442404302966413458704610406309657513514803859046278713836779962862419053506224105623228394591061164125881510097998865359948198493185071506465030375229888481546058809835041138003781643967677665703374623940451383168624137473521467006937920800977887456945384604571835007071991101466287340198731819655614335530135315581632824853293527544842220468600834883322271243225433307617314223657056665973100235477087141790656515945877219000428049358584327586771085268102365343422127975863338767786325702271103295174131282506128274166865855939484953757434993231944346763971750808241670478435974158838542692579921011061162358091653412225476925340321581285698032241615376966575038265648479908750234352859200456088308794108572325733701564218459742879502221322153232272714007098668597557123022452384218871649109144943759636314056593768193031395743143529755168582827728647220475289956409404191910779615080137670630612279187775538245720632329961011805203556985722094129955021687443647611551027536061256084350197367934613156407227434162862475178759106882891842304720253242596042253990482369190511162681647556048178326252220875124170680903605909600812044534981024677629564303289946126262217623455496355278584440107530254724301964923720261070958750510714542197355765710589376743011869926009673902305970021721595446171432285801308895545248629195962977700397643787421217846440768635262109926375455240185779848801964743343236324018749237587067133816888732745074335392679117218193542834889574737701731888221603604604829814215467179645577387574377744085941600528402350295668668250746119606321040270324063393352229249722597189680262854824956677945768329460475066841384926627561360104162324636130457359653744691547713315904736520402889681401746487518204871962170733825598920490820492563336498538891104945297878900521815524874736563658626827546724894792164504724011377677768804336753434685512358480410178248697690999117705754141629723647421959286889290686719622918118482322058773193846484141802299723298225622816057067132817130555231547286156212752271221321685264135462512924679053228280556297307028509676835257085288462033364019257100230643810292841308170107282741807516667773545077353111724447952450798553780238173193950769745240612311515955666716599313632620350253590426857762541375743393163152557476840985772622150920912265743323134944322715798069667068259378848438839502808140755238511985673796761111498691108611908007270479627990600399103974496958861115045008532134292211382729154953457741254763123694448513109353439440396148852732652386154530039994535669529814539449022683862161951951047818289492096124132934074179654916880873388112451235649716718675185529202333580284697432148945751465943544354937000568099848298157507033413257661816250625634118175057791398389210296656325287357464333955978140866601800427311314827048854409717834960546188090558637924085211963194199433107646149025619377482874053866141604690299294745124047368567383971046553751815627494916973691833917684324830533639156773750904407731993148958864106243600090681851147777868170536695832906676409165540653770985507608939974870962258783293588964959113969529886333425094875234098980147285013004250420520300852464777945956345813118434226197383432662421692674794120484230019453895711817282591472174034632964149456983920263133198632645546760218174392440894744667800075051724118244556880368339632225995359672890645415675889177388898638449093963084257809775926331795420969589854949975154406508930581709182839634107309657681397544821905973387287901121200650472807530787703184304511566437126314527968790211204824776342437870323373651724860552493970298654305939161454978074705371012285672692034923309692528037964735933380110758781656228496459377708473778028391070679243116308491058379726685138051483187140417508720788041464519883866331144239108673427541976899765335722990338355963239066278603468920431941372569973135582828014762810819126346648600977791840851311050517778450510395452993183092849289505138553781679216003364639797824397963309564671164924318481232842368303457852008019759098523824640163646350452662951087559895470325296843335077057094214373901169879505004295316465857685002855796890260142522900579765492515460715407839522526857855954389820404748663169641944186963197948461255897304282511012591380618338699489097480798075729246058317051641165712666800746019849108996561684821938932228235077071515417309102942757985906408993687057824392629738075469481982654813140349693334336839641659609196082587482020418497907958954058803853480380478425628614603451855656598878689682272654042036933681373749790394647206696703720114064370042984230322536200780767351387691581189316988896274799157557345324784735310769660805061027433998278501980279633669647944645603324029341950362070306683789582747359015295726664759782138776368698162269523930274005951159861090858163847473369400395107067085164412019301983280900358742595282659664054020120501329464442045185462678436720144447514235724073579390826129620176158896141736565205672441379198378008687358398858770305855282493037660263683233412325684559890323890131700076055808623522950222180909175989198895913778842038771753387204506201062397151314157454873700069005170811430990257590458556946739243142784690619710134309586563518465618140888957265872870126407033825310995623754024465315214683928740562890649189241163553582854386868944340017311606550743076960367762788161887800273546367470784270944481928108403371656395854127074657948016162857431351202712268682057816268730295478027616701349571472300779119185474778327461644361742386929683964477625172947091527049210624754884751611977122885122408893029564725368433902237233898630004176484781430427449855691681143936610965785819793179462681674945360437196779200385147881377092172774099056497346747357055741984410372626213691122119575545139934130451985489669573054160444136509184238348963758021856090692419861035068985393746542039379055876812845739967879714063319189385101593996595947760491953674453292990497586465905663155250984224329126205030260109919057289900021385023246647503529202286623685359004410465594921377067475298972734035881674031374952939782857005500200147225933877925708532339917141630273231254802635969764723205795797426512987269388470291588918984929895469189373323246934059657609304933575719109808025255824441316814641106921314996828246922351375827656966974311947318144967726553319242699899930397662901210768315746207907600320448675741530724223810622605707685188781478021648684986354099189628243320673752903343804741472881385668819625531906180317448642109561569619180910204154644114157261613268281087609513949894147511251920968573075200629727064661755243887032577892197349256733443916619836778655563505484907115972115527494100316149617852154651693223875600856297673630626572375692310225574858615978890760642323172621945051153892699298871145917593404566095589315608098400977145646500695265985148141056784096182725379829418231873947171533874669161666238006316835572091528913496562279147003661031827412187940975107615759123563541659805489952648754099385669829799580874375002246971122275670972541369510153363920096924676781325379239224954684430799828986174578985525786300581101438361369989609704921365398683512812736163684253345527966719880358241254212674200548914703750082255415493014798315292917158523302396446515668939284149264645842015900673143599432045935722140853569648779978892901171087927627390539151361446311267915985997747861194887623082109769452664268280909935726256337028346848754789174315618938907555607575826227410449706668881756827201723957006491970476201084867130059046125737071500208677627422276278711751064439149750201426803364727791787743139257828035088818388573942800651699066413516972672674956205997231577693752307324887306577754296739329742352939922936620587283877490361005017150600477020090124943397881494252629114282411103066514293179190444313516439713919384218723037290083934949898771010261370651600900790286723728013349010536124921960313524299669801206164336558594369686000539979589746874801958090781716041020851754358258152803654877639236162880939896633354765089555975188263610224210490172172506201569068688560948717661921625837090730913720803012071954077271543628674235992846343665347735013887389884864023572832140522276353125123992021075094339238929638806481596580956426974427618137376415298654677872868241779261573309626050986886286559209878409993616762558162613916129464642198374537836178421990974254291311163703721038137806119816147051658295785658202697085978621447414577886415827618842096157579366459639693769098558184557481102089326489785527554490756160304623511125283534320767875403669504047545709621223234328056719969920481993557870875045990789577366075608047954087849370721322637634316332613948628123351739417261968773530372596426181168377907338313888219805655050507695117112291380921884571667702007201816694413533930877254971638145695249711471626955156749910163204599895746238500832137399697343809458081081856995573080307108938949487283708403742630622955457357448382337429792809655724383098554542763621153270496494457630453232092411176688605082997617443089891770703734659432683404732451798383588503029404222755569754422360623736808571118074504806063490553622534578934317921585392615332132823709064180482697791176727866593486733222087169835703805977345042423190192625040865372103617247576440225562504652502656348640750209301399062680788684933541685240029155312641201462240169732257615728060903221230480701195138923334810419202712942074203780791623870642377319718367819261370987056696924551145905589177208249927505064801834341494151104734997642433155452315015759899384485413615614480629861452392293275717698539969091774489350405540171010045004812755571305584230728201065957283159689386180177391304591198701091101431431754325203172824837621718171092811119101966111419424558486452349741344067415060994745925577222465339719019863716213744638498993827147981458515702144035903686996074322725121142076773575155826615393650261327806383714803740886539626144341227730651077411260260070907850325787731516635200127098370292847266497544478179932295216598889514041662816677898237178495649569693337450240841185266006579689256109573967839546591791248136970193641386482795514774357553430842139828138541712995067366732026919474838122351831698299331636505611895299038302228427609032196979790899566706813685104024765396259862216982124658449154077162573384856661681028315244298973820756335106029027427456300016433001889783691560693663000798293198362412718346015441220749956690394964420400304381892125636897506803269649651773691544732761672076111963892563285959041076758685306558623016857934336033861976986861315792175425260290259673703176693143616744117236476773593323364341550628065886192256600586949193464124722038576726249035018933142134104639896915495625668678728861254498059839375520040610731363279491259828099088082551227954932249534814605911134903005982198781642232678343509740748997006769326617876253270653352054137500721543803598307734454779105528442624429358369332883560003394647926191637896085499773507356528241318238492317659578450202472698021127969565419187836731979577326492735121780895552671333123302860540550397795533981473863749433400114248444474498169412180258498199828497375006485182173692373873959436991651371915089803109547057980231028399710160777429297723840503308710370773823255348073788514729237174582850076906053542597150626064140662512132899139691294923780153826385853339616765159383995419794055565185101640877006570028393379087972929795409332483796579767685736459398559562556795379380021620329629357502221170224735721289906967920619560993334606087534630871006273162977406811896070223111680151548452345438227800348541250391042880711848536014240628028759234439966149845038455154608083260573198691439370296509067858156319346202606355954150884504489566798874437663236999073788070808326328398796130544551196229539340996721308227810961192624253573455906885420140562484692729961112235907331254200328513511584061863807076419298776551264743930644609525573485381846100154400750147961309415352443637044303125841689410393584639468512663272695785707911600277468900589573637210334907899705605849434236988130063665507462901042595683988226522098952860623002018830576433449247517229644666979694311570074203772690827668045691059950890379793309969674332156065576821664400559567267326960142295991064174704324526014262732566225119101883888382048903544140354807054404412888465915830196815390455131603340966511734408325704902836880757814369493462220637007412624326911610945991713768422021431149010290388256374759639310324038673484364799622873551921400411942152603937581383519327120473948755522577050055303603345683503088212969001830355109099768005663822376669270499177173399914952659032154180622003604750409049487748422183532927623328393870137086397657338220104731308272963294229248722494863244018010832959563417979215417234845228824150850989117065730291730935822859862452654184538755199524997985336205821631836258106551605453329798236385070340579131195159713205622357336797671353414806754960206257119068923885699574003995667013943127634510845418176306207461629700958344378973286829433591118462789652601795896307661751811709511904223812977921660828226394846584788922505325460029273805977655377485775634523304222631872955838067259115235946811679234018463244326819313773697147541624996473697477378848129713638530812601277579978416109912735810655159234168238886186729644433949674154194641903954424808610743805749039296328495063093387086530052369696924232414170457830446230588302398252990931400001099853868389203525087183237227176431010894650335144014425924921898154486040040869886830374291839222141018334826998021309231848740835475827813921734434004448134846975585954371200088163183389588034325455145068665637572466457362384925881300917466682773326778401252318429702313084741107068890518242578765201209314332966174639804380498821619445951801866315679434208100455663044210935855373000876929303734434604249824091090484881778587712494252383358886914573703533066715865907229010515737692935764559284443554867133791417386095567815947288797131839049844870491091754497430935034320903568742419255693344131664945533400520322709927881505580018099560848480824938421602644519596118397568038721484989298574625382465212205499342591948544966008316505635173039529205144790569778308980223665283548311375420715958673045371863464889395288264183330236354934547142963002518220826995030296319793921941808276649506618971872103700060206095108770468383136696508635565944391943147643053520075374605204762650717092808878028038807559598043053154254552790475533659356389453620080937567297280440730519422774524894414391629550166889172350909154142220414038887389438913114044912168348832458095316569167693871593281121896157083626705078317012588087722174400339971407701367215427799331458542470791955144352107607861410169119249177971551465315108215966965164761550822433328567109644678896849748651389458721465383391427613209397064582782238371321774369075850373121539615821745091226587555205056145117719368621617212253378468570152171408388696965128962256254094061333243265478685104996811919294226012934112249212721920665663504002073235788296498573818239277788911459254358780081515151649062226535996725017004460075200339936434834632892975946116503578267100968470059235096784227854779822157337726943892852169808519298990279612006311361363468935079571813352493402311158039493045769498524884700096710644686014682604009771907518894115131709209216768231737225974376601698723768002389611260845874540635319448820262193625343129332803653190032213565864873410655161929898582978852191852751963736124298171089557823060045362703453871170109959437017236559489632230840223750792870809785385273409659885909941931266458756899554801335698325883851928246693085201273702107213378556264886280470374893225190866518168544385944902005322417072866485179248074702794994245138039445068313881199731045489284274990772059048381245183082871818973160478408180800792744852746632551550658100017257547326312629671928788140062006011380584301806239290046098703506103951501710048988883307304450061053779204974921894223931647678679247330760888536007064809976708622031663623508386493223519930067361813517723425276921952713371364887721894565975945731356307282590636967999435139414827871959525322040588837242261067488828603337889893374818372424432830395690179640853268070345209451250796742627799488506517478154104875090532733585333842496683596021962020866964641927355048278658469924606661000271454668747972202088833785054117920086304692076900232816466819422548578789436904930159660148339942127695353455728316509703264150056080392988778189298184460873784253577938542423096848069886826079007584882101042320662127022775267476933568518447527137254987974466379684911584878125964803460952454546225477143816511579057426540401916650948225253341377823390984158974397810048209123371109675391071551441591390232709253609092909482392233896849634527175727204691192142611764146449890526998885665289893879341597777398816548625089746845235579265030094474306824006989407799492468624622804243316353216350270412250751774091762085623668756875360629508988862583424386164878602350050525456376369787768402297892177488494288758508737218229229290341363621120276205430322590416382267895295201279679582053676687275170766711447306926070439172531847468397271132885247853957394887838728149216410587062805613083023644146400088318438248506847800040389120896975807596952196065096313248426253031714206318344585867068324559781830731972623588912631522465935965771235961422016192182018881018484653003828320179385977517497677774964944778708321747868451479211742601303500925696594901139567304413505668254951198904476776246867028529025476370826837591088248167014874085043725193010196048768430553704566254627305818259253683642591401024169067479170860536689852778540890146493894225864370315505842340382378232132122675082318651554879394630185529103150439192034759917922479578561019855032143588373240312885326055184890484683329191974615719076594129158874349270833336101115135489147224830072590734631725661111437955276007307708658347088317304044244739377225726286084545171265036874605072802249699064762614108012529185939931802566889466249720412245812498775678315481373281106606971686881512079539672743670640229359182670515398277047152939347947733932639993004640585875222630530847455544803616564200184032925529908225194538425002392764461025756294284613622717358408818058230742294213149256166738370809098027803689438769153609355934963348028498759926087063644993871628132052006088101365768306827839858940265459186562265913631010234384983325893448436653281960303399819437312544203060472108195539093153894215340886305864067418325080189905653951432642815450161967374693610345377911026515889358647231635054611635640752747836386078895887044370518662925075110847080846647077726135759606334093837580781779429005268775520671008153669527292762948099903289433447847130110765461655989445269897687284348339703823294927449942615399266769079904405437781308333715361804400766210608634337377533620663480222110590889807371965992345160782811641159997166725822422327698300196759890925083342038002449042312610107887634400697139715194820121632873535767000668281269065125692503455847256697354557686092815179689641699193573007215738500206744281701642887070302412190812863004084712916039066413265253263565980905780936694003651115064779303223987515805630168227734514399913384600122145985936299204880924892471863489132305464704904849229889103248907913580376674008796106282693723933073056459664350020110993064511195185865932776954513695700880264069449292716808546841050054485202139963817691141532375096636042489933961117106284039615454548647595714315035801660860769222056857728121839070954288524292853409077876778636833347416091945190869819461648758802064000547970406604161087105279023634147613461199229477261991773939831286194598455443544674228132133056228908703846753833099253933031316396183668431156801204643275269496950618630217414007972665084130425451628524996923525075806480670083405557756862400716288949401619888691287531012878889758509799469603342262044530012646692554464727366922925084424597820473662149649900758840142778121504526586274744104418960165944100368767506824368884868753802749018102800626877331622607014545309233473614359397447663436260704314316108995234527843788024564278890682042051977992987973981543082815126494598907060393789609783854680328452543659142919791591346192836383329010854131849008116384740087281501392507859551399906428263448652362139150783349539734407897949380590802225365876573378980607585767481687587244415016580768792754596681753341956400489343331284665822410245215666114557511031633380918005777444673449390893215968389238496575325920557832477384344888350006675715934785851626277645664887716655945817469966719651758471055718981264756679163438331915958239873030249434640785455973894150823887678497801894687488931412917680574981272287053926882613864483729175964066552377270433677087137231522576526518497206659304399799257601600821861891897747854488754165428700966254607651787070178544690361806029194997560390788712359499504020756834361266479324997710665616056703201998539666692885389336707741493213847285015381784897580807080249542244430364617664207625229084333637761856163843698061256816966105849605367244649899902559259481716319360699591077958432157416447456227909484355895264565308192026913957390209644003356473686385811165746413734352923314469814846737447162075598545893165321923921560930585305323040463107494866059362794166366411757407408553150545876512526784569982256586651684084803142076955847270433266948638850235968671788588548478206373010104973402795837274027947298616279772337355092015362093736165729851401130287864158325712001027327446673536039583573135227032818582772516150232272756450112558214566050333162705791018407451600230282725595479272410014540526411784440746358771754537122822436915279868848987764921025303795322635672613789351375071668145287137737754519874970805306410847700636826711023449525997211821804880269075712053410663706300635438628901230276575375954770964198245109596144283645472776590818935646103223554680805313817514351358724773432449473060463884588287081344129794263238150300989580158992884271305640772834284230620516864281787535368547487926853725900438137030360008547135376419556418883452538479121898145888781184140705834920541840537356955978022554204209572485956281068803923661910725968188848473448325715599145043561480174269846239211394524964650472461010572456236239969625447590841156764048691827173437286907748092043588647206025065732819197220688321750335006207244764379463352884325496768400328216347645540760886959510540455321621387086516317583356617468371696566459445106702210149744182815860761057854600360863466036035112205615972045907167980331486751528848010742511258325393912800609595729736232299704513241366035164811768065630754944643585440418535174217602050993692464204815239162723972756856667347667859211497268572983383011389485306500106617497709935335833444688470245337154084366348337329110226213835281138631104192112920485120953035129566128249117397739538916957415304463689463655303021684542978330951636266159959623629815186135551884122513733914489898617167021137228834959917796605581076915049584483207881659237837119775366631152249647066655770575269179765630679929794569048429202608611324999412545440935014598417517418877195616986916636246683446373509883346700242951013238385584154233123588690133074768362038264684610760469695191746242797918509239501374013587445769340170775290993628965230378799559151524621636875722484538221894514137416054845410036823064439833691826444696646594721156737132730936387624613004895815388351083974257655537498974848602005828762017454033692962928082474155170040856418505182602562328212805455048994545741558817649502387898994672460736202233172753996007904281618434181748004050464415893057590056135763499117744748185439297759298020384320034104492253193087984686746447409573306195931341816569756796696043345352444305808843950461961739674875545220975714047440401639189987513437764327622696464908475831216661825753266414701850071198921365287969431508001982601636215106050576316743583040564403776503363947370577762112823883712815410749426962721153708171780650919730999410836600960943234960931068535870005694598950474642326559124238263673431659203765642270898014885705699773748544006058153510441529309807755441366532741935898722994017464366390894792396762663502333790970992449745547034657491350595859617554408640811043837469334744869006489956550748787002229759194761098468735236658539141377382575947114670330728308097536670846964928138020783778703528280389200793059628207154641945368346765953905225694531500710046202709307994703763210465281411520197199314572057434469442104347171184053779710571809306774093663988447285418922056021487418619601447322196555388788259299988378231646809003377493787734903728396021636392429896524118189942035187068296905636769757609916682281995118796854561779307521095719819377515803091398586957886062081024883759728789354513119856737669818853767127155653389026802432148960064707239378912281966098226599121214836751538526289954324248283762573599958683845375389805635035911299231963576417104151026521931068144153936879680078955787229152980594353492884534827369247749891868767923023914400986012635072743952442779857045734081938968278605981332701854996351260804563539039469459574201721385944384440204377737257515298705363264906566473805166291559786704760022723111354094019369339085450619543037490062865598115458875622458141424757213058073420849257352902274481599113357154454388806421370868809255407351164871397314368893107562856555370767893014336630182082347578701561230523898785209718267795350655758976499403394112805977296974808945318461814113195482554025743509959317351760543085847263254461100664891621000619865918908714709800084192455949126305079447409848567500253274613896587980124291366816214339298036681628658919949025769165156151692172844826912937666444649329109044544751370880603708736794085130571527272798856299655560563596010625085431657787438337990003781322761053553462202956272428476950987996833767027160511386016182849598572874323887386955649608741086986410535787028978786568081762382638910615917806081182428762115402063081473677720291411782151296500631890150961506452297434215952315969700369854173375016641222818439100469965570617895917703197683059733198670911835977317169312230343743051281855608611931209724071531054861803430700261470939546147053353498874998326765694015042050310928454869414018397699299969370510479027135593413000940796476647424921739509155521823643073206387922686003512112465177648107486906327522258745340700531163081425841317284954021500096045683161021087979947199122291087176971119144231138942359548816738453680401764261500489144466766399235441590374891161497754962251984809493677261480079868681043624254694001900200554609954883592209984725364881936187480028898815408202805853906103375702728482843213858803625177035583261543415042553383854313680475846433802873874682612989881410251583630961518899706226623313100536335666020620242965735091566410082292722777238525665655914042488650597360797731042033058362338227439823469007775170017800366787939117769790608500537448826053559276572167505303684863177840941251705004624427736579215615006456380265895796617213364167513817731385353708962287582920810675397664260063016829162650724779576296505604902929534196404157342145257646716703212399476598636868387693714395403673110781126573525795084080489202010005160227081845139005970578957751953611485559162552206584822306692913776021092973928517520513407928420246547462445257131928501449336926635700854261652683719342781988216045526791341503824752058894902712746619748442091509926157569450254485263269149414476576872380901922996032226077178936185753584600907343942521258393793304615175094737813201644674679959973236983137573720326364835310918234156453959371168812118511171395772198971897069205485054490156120342808968646548946538205587895269296923499030422446925124400484914109708496373349603184476058499756413305997847824321065241597629083222459392853343073716702731486953208931054080049095063839346036235402960754840021280420469508549948644414135076639597067212842529105492664902598869812544215313717032023423104009567853655071645409629095873585876674226705383660946530627046786154919439924791182876695975568603373244157785189348156984034397479364761520031117859599560341673308630836209915163018656261596141330100775095032780843587395043484004011355520845682905771872568673715125655204595710797019723562246775699608075255853970042161895542598394810339798453863132769026646260304360126776181185881177434934397271747866560605896703109933437355032482161462495503781678085344755447358719910391888608028552175787192419041854307429003427625121133348835712710787561682258083557242852713359370513397805348906345300077177745532624865072166891816683691810722523072107822420906487567032302484231704458815419000639871997889979947867556048214776852377755802446810648833475740686302580711336863359274681873508126910686834145031159914491083608980430323852880718584896470158536466110148990049626264251825815752679294364019668394975311587883205696033677397030740428742237389128110217864797407710863260107809054091393710567191962950027877374564040626155286078658604000413930818191801897593049167457718547875070768390152485549769634993126113146788467190477907594422748887841155072126543417607022294086414638797798864900582351236780043096061325097617041345176203118661065493283996900238228604078531798378788036438112173247442997098148993432420584049093359728922966772242981330967753310942588572233907953660890666397746439277380566608639928344365034260093797164371704932612607740105471628278783267165080472351667621140568936898584740941134677173677539550554816258811539814740844500143182433744724261848572385147801565162127510826013607875489295454866247686002347759174045472706910516241217383303885367237533212680151332788290320444824316941924627189610198001419379166277432146056306715457027239601460122144378841316090930175993483932234609570315204771035876466869523123279444419666452351385557488530807947136217678844677271828842505660879280641114701282103548996361421896154342873443541815522497409142013158518661948811345840426616986145805072822361011265232167021103626253729921969238661304741162802661867639360468310279580893571834234009932666311287874938853850902294022609908652156205495176935704910710360695493365958437563666702650117051595730398398944099432811725550503398089846542959248170356175925636720797392493378070620238136804750581955122683437709907458785882231740213462424649443305690250402824340256633684773416895289174165149662385993227886310625545947791277106355502328467295388532151143467334922764402904809907339230376412558627735864178021270827232512315456571492306703331293578284140685012894532693179240496934347452337028216310907495968663320214374466285179496971517010136803004136634752029517724524510105828854142959359747603330334966445923094397175442936161269614395960443507127058099071932787187483994599700673284207370814204189684938953946692591780069359160164763476942267796510144780841195971817206988045722306759607733711620318925000241922864074438462538862224645088252712666430878986460712019113876544332968687632344258648238616308506589793813077520314250093460846258452887274846728641108812912018917436164515193858174834178764168819484619742321437308213574054465348040659921787890859488651913376586573427812168214061381340540591194917306835146777872117687194550980924035404633943271916925972278551603584318244300107699774559419632459991979541139799185000618082565014547319624933817982635920949990191235658456289347133283641104921773137144780895362592439672113392146110043849991483741844913657857275680791409950409781577688548949895287002168318670933903171581648903150722241605980432032239607974811760480390385162984896099088369134444391101250637085410561247358910664871148823032160520178680117301968929515121322659093210338479361084299617540001052263195758097496935162538232891914567552804461427069067122353581348150074147760518762468597025774150746866293663414699967631458393979026729391096736458772917740107842649747293791483063146404608230796156435645961710539705648143382749400108203067040806780458750626057004400946011635706969006120734565975070771850913133082334019093922602140985982823738573099995661890529526559783027824234145381330371259626805219274315701257838815067377826698362623140421502644373092372763161697602300801354069414947529700929726165075463974430724189148675505406973571491203440960429550491041158301236884033361237221948783798152156017215332376218508450331727151423590649000210467074495944791478116734069326704198681471879453228631978485843001827608149498005398072211051157319968809459122446592290220097558558351197118847888365416144356283711912936811319204347638316377889702995288553153362076834880415430045481220549243945103983215692380471427747691987727992899633871773328567437501084249288790600564203873011985122948505934386140694084463513703386538966311348901921292541803994758628676993918036194556185946183638518056249315708972329244561438826743905567452986502440747093815214084450377475893551366298617093349233938287635772195899337712570004364151592433947480485048924495341013884255430565407409895187204687446773173953646815578401633964551566090834095539814325936231551077114106122013320823787236636120169544280323427612887006328382121566925859250697274530242368101928648976249897905162631315286670212095326132484047549353186902739754309537745249714962494678349833874999213037737119143809235389397620906382741372636553164383369664557315570720030755363324462306465309286357390730902885578530522867256863772808601757741622213341234779075957527145366139496595075611331616322046951472310838891251315758049090850154335463965341663735168422901707279209997224675543975035677037992648621244065547265425471160925421526284458391279836038819937796812275312723569365196505731593206656535760758187760588704281258407963781906720118786924354210662205296650468387613657493528267017333728580100182200688345458736559418799429789888307131835243656005264999783228959286249529911083951002927806681917034645440204501691406134589921280877300452171336931127841060281137788535140237982461782280327192138440498200027708137510901908025546172851285901186072574640734675378352423095496565609622189767312447039711015993927833002316142451202985446188918044833282937571672978230569152864935276312451352039299323099637932775077644872159045062387758003811154967244389936042745432306951240654980290313552106127497336068175829311942457349407243969152532708820030623230344668653436489447790618034465956966399574005750739974437340341766944988664347626836747057361501831968726487656280573236836335796927140404270279217961030164149956403739316387776634176044678820231224874449301867826325204082586202111046338171629057348521642609726021997953069369322767273737588117818382088182276558500888297583458184045274847337684133651515127046454845420914425222473563527533726785789210848047120289880245947814399784196844485138910893621925133227946230051096135208786558369662791995160199313532803825097871864028800642690589301263087155293457628587500438838556099623581398548744565220760891865424622498316161344445361543727322356945388046642156503661668526078477005298484848709898572595695558039412833684447205414562989984715579905446426602161221852937041984865864311934828261222167131377620212628525056650690723835591401269879020322373826516959032247919359008846590251733983503057058523506390908338865691636215663742064344825760846567894764370805112130435700894967502272784514510717690112887137293644794700488292817338304460569454980094886788800544895508847259165075945343217350116732047538283557037725216036752772935845185917468813483036888341455868071594092426177391754728632698878947994018589584561980890835726303383818425480061784603375079481824233088041143659983269696612523381012034802987592118225043848665804982886545925044158361165657911339923334745462014892353279128514681253379106038365664325121112156572547209576975030949897577409228248243395489424294938637794589605489368258161616211472523954982825079382172154704924250506120689264111374489264759510634992966210807369855933121636317572364148116701722673711274171158324923258410014461887490560942270051102227480057536792643392387171651615188616156069756946297834447568941702281873270801357970631243440889219893356480141040268454317512999176410719855586890138385958492877809151084845502767503925321106982992259013477880670410316194498113992587395407873260246776615730597768544834371256395587679982683788006866617545879772566378383305898635069594819068861993231099318975687080041862353233995191826054594586479632380073989057813333288231920244632423181799830379977827855128023981044914994662067963542563375962029630942962845017508051102189831225003997505068703990353967534959558450667800927574468787410409704826023887251272334085581555730892789296212230082045907826838481030316288460836633107070345986049581696180495365463934466678954576468259867218451813386381964847137398112464090293549531204438801811234212813381925688596530550682434777204693467987633579587397676836231637474306006584356613614480606748303900478273094049730784755535466919505312940961250299214313069764974817648178164964239408743856360609654956376223999012534317942957950022503354396218460232748783454186193469050333933900909507398351173406687942442701782374402354523590743118114229547336445229961303683064443676124889811557542431009694061410522918604490334504289381651905145411517375901503434248274614036757822148300466709990471973283029243449991890916357385274869825820537393796997853198692213986195812560581200827907589332908279342123675000442251772212502194380732110339522598401727837581568721800503865108535631133496700106659903592987386291490537920929461866246157788258216754306417999687916078122287864206389529728545195915023348295965816705904641992418294470169872591582916834642667426381407505999789490583032080209247178486572700173712571010238179843305065296614183852138495381017512526821016985012321190996626361510664054371145020446544254334540114350598444714751098405370904615366014440830846663886845949290546632209053306944713178040961452165607540335500433984719352292074722356806578643692464677799788390843323719995419898876889128359724505985140568073499985172489223997591556687571544999475435776902209275077677625990012054682572156063189741966895347548843579785261492825229262265477227766368941345151187218254309586830329779616381988784167267127941833559073249734520098877112467401637136656120256000129800609131224183183972394132722546795926961578265623140541011983679556509690525383174479406475464871466227709872907754811760962670600156933502785387924522889231053173151137863042817059589452909287798475808701825208174245551134411779487303650611999235356416429210222952060471634571509780309385087178413527870663666976295739690781949616980497875732980916935573587649890792724084155935054853697780327360366209470699929246911385700696594751087359301515403546294340733945791827106195186974550168926164152357736715014848824620765145402786342394943741448107338072896708808320028662500969227721103414878266800202312428365012401954497184999205489026901615532564422950725934349884567628596046362324129271089433731415796627323798333638332330792718940492355057343072315226835008020592937512632227238944076643235470453175423776421559503047701461692953785912856780820765133465338802740597017915540108228142738430266047871649073433413396406240559992965355546824134897793809772019751417426890915090825638597545035421988566630596841164688169527926705842256298123458136297915913443750967526198632143482752169404314081082338090921253608875831648202218563761767144366652270157580599356099513097220630102537160330845923703772532493880320450224291731390754116356574552110355360063664013791826756116618213438233978107922690144555308121538152539408824796075758663075146157832802133697961258625496980569332965524850470374794449685406476364480736658882784044061312581525250329734093527957295939814834960461896955141775003708125604657662452329380742321134159241700069444119122522789917664373344480582559345835441344421596332325765142603467570805631157456307241988016507810941686963332273487762107751444212951633900120826550960401431519216308714813966833571917526032602676719487736123338372804204381661354232907717793895769769046600501179252968511837814211216263961040592245702000335248276185813278349910654934114373872253536691679789635180625076713269529125978405854663455519195069281017681931887814129433143586829543878628800595214384214422552892058730041889225006664334378900775043306716621544850906767728333170770565145423609897579350317266048970433302937862026249252125993532833693284640799071678824970183187859859690760065848645980107367320413133277348666940191477799054189875492178493546077331978636935365675426704861369175742165440564614893731790251864693359911870966771299942425236874893081323341538429995635595610263634797924004047977914027537969678621269385771266784630001804490324167049316457560138598863496508172202708379395739320983954969660071920148571194308605617352284988755967846754841333316809703659192837443792586111601116867640889111168058132004917627860057033750327937161972381549473158141113806235873128252553810562279604910317076577241397174488461800247883434277752406053810495732198655049795945118284548002660033574644565918620150326596531489427681312202488507633520590619367792822046143693435285900002177769655635448479544226179896002447740658869100260800651658266889988453815337464166707414857165197222073974296893858754569513244376233470064521742631737245793731972008263905979314488500413639631489688786533704109933126062366282325201598107548135124132033179477673993014817186652505975209786984861583817771983912365324905153439033663842621200052417584915103275404291687681339239774443877450749864627207010387289472140036916259834072503726194292192131092686463537066386840076175400889066763605096940720293524792433517042643869842505026279009938201861422267213962568788396429096309944055117819268187406557083582020044745045653189071730917909798975855759138594740974552483641846093450491124449993921463074332644188759249044695810564356779146168120225288352502467043431070340844200491316860289029079277605298929634480358862952311330641423524770199732982011564596261016277084618881602581850674785516834445346545671174111986610897218129109768316467479530055835892346013976774295980229185149561245474796817443041446971637446975170529868223941659318935976014412804076826229934771574191270967818478995433051915690374973295206101775982107891807462456840262537639563778983231384941648380374510436868720841000784527740312552491939160217365908580543851905609810212300208264603324095081077415609854020943122356874904607754431414652322683727171277857753682103536168394599473489225465769621703123733907447962528712948532670975664209782788175350667539920263981969322723434392513927109309053598582662489990855763615257494271377954302709501281317940012166075651570669037492577489732128969075087157711869460322541904334214736244086668154535134322992817995900536925696861386685874522603727927294213683486489457255508891504970952490530618063895352940686454377922086852243479266031129024382472573482055574749515558240294718662917242063165799475921901625688358790491418191078997453070696744699165697347515653574237019533716469973752387123098045691447607229367445995395872888080377909629154844438305037942592110657921953150225487923103762577892553320842774453728343775320398422950854865874428120969686895006930292631577860475466644264964203222789351767585458061242897553405934877970810334970069806707101115610833686748279201154098277239487427916528590901979749979039538517824471422859710258435685003620301170329835253035490547895455921838075818368094022105470685105170160023400633463342588279954253435464935871335345715995579927090477200082967877666596907999830147336830186949568786736470853963657811697025301036618191835185916514718162858593735850402973725654919150052852503340418394099407995668473586836223964189731438312158411920415599284819090417572199001879727802501404309845353412780643544667959740407098573667491906724404095243744504076144895243151381124907206140747589778896348955913213059713781429662767753273469392173272497959088406533270881181135253374170272844951205054629682508528916853186750934028181954884854925324661935826349968318466432236077280266190492371562113980304253178930067757999408068867140682491291340821141378091395771933487326286684062128737843834901328331685163088845188495310185411659307764093857530318752015465817396761437838627242155934987188138413553335857643041502593674076985966278903831421624863967404667671893851708986086826795531009988647777276927572375191388024196294986299866072972298917248967003280662730459646755803802487370035287615990343703507897011516972149801275754267123591258774122993998450593444645137461628879910722174036533522674081516322450449218008549444834785225596460553393793235520239724890627159500741829224219446837263068848448880131087410100350034063218046372899239378234702410395249677726318460736233102453012027324566281508018128566566520508937119721258866523423343265955787808022004890439294932435651076294697081983910074989087789457734579006789998870795520204174709354384358855275729256643043061944992716878649193377893291467103125406298630352565031451937821376039174831827857859344077869152759741497864171031284875907958961268971952105471035531897790596926461959930399989474430025198925078236593001863313976502125261637766163173497338647532870546294460251514291359246399259207161533179415486003875338571399696476082304907547692887348172913557411566096192899000916979498890997306254202850664210379269392076823182856033145434320931451053066447873222789071649207658972524408636429234284978218351298685720933533367353232938740401766252174238125434075134816550162883737397248161673707238637652350317412893146589803675156152394263523717146025094192109263699843848086061540297911552625110693568663526915303293602136272590776448969001692496844410697086161713028006272771409065461770992868606880574014054019679356440622750821475972077470055802563363184674894806018718678717460917367600228952225921803113424998506693069186041602232713798727333893774663664656215592833346428752057248237410804532591776218025201176995902933202618024010937877428168366228080903020946273229650238124924936249074648263143480716491133671205868076818234643439943672384075105888973856254093780163775240441359155342589193109418709679497254092614496811743221782834567228884877667955891430140414556145345183641118849262528626393354511982246873521963449259176308468268862995068886456926875524105398942359237339017226737054746280057337599107556345743289673409628437121625304059928745708728513503436115194430330705396985590809344052856311390857952996331844961208365085915378884382334921602529982716482024502035102155672746120419425702247222463184149185054894116709507550280949035862679837518710082705814756030637523876207388749538233295629418303302919512707231307426035453417212869251556602264851777698573727110079197313000225855048411176019630203935640363304883608134546895875258446382860964610757649543872479693583719195240524059494101453086288780634464535541839517964383876026114021939939159760324372454773504536864062829297632247674481469207193215936149499275113841344239595854010531534250721219112096150735480582983702082836150823982738202797728630517104788907022498159591409465750650418051160512921680004013506958505794449020983119291876603405179382705246464156108643673649282186892927364817867116048924171268169012002971659186397795454103156746174098891731488996419081398398233234155009261115151955646811542317579291309835873204496726040252822400924087674943717758153183898760355952367979211731765774466413018542275185179981449876616231612701390178815419856326261422627695619670009962303429830448985041580692638738161874399843067334905157082492675323034617255192305604509070812501079900767382414484212763547155876573720394999509030328731417486235379652318379637488012856956983255771910974703973667116377989896868973237170629795665465156057860017412946875346002761359589763893448516958534873385860423662735762216631457305836223736809553964255544348320279826122273251612028197126466198695868705178170821428144611070825744682641960412656857639887702435058804516882134149715417743867240225471294443749903478911944138842096682607330672956599050934695977294239519103053048604786040426014696301132490615271642440279722276184480215659952138764458477939841705742267464666472269251381970078616779457661391176590112365053704611607489640716274826109233603733913326245005171037432018243282003809513704475137201511332843915720085361814123451961918899985048665087865486889352483462893597436320494258648259307379658453125743053300510136123720141064058883845547768228800373339124997450293247856204334482783439085207899869501771573769630536578109339577818659779603199029950429952023800312893604163411933921779580901891531818390407499146335204310579003526002713755987495259578214888602447107455678776550595337062823694167449353790547953670098387323869134152933352059198138779277233178729557067977706943190947550888483031384817246301890406905238883252955181770178651436937416755463792700575134349604326077404536846285209962284474005387927066401836726331367926574288994351630422476621035374769855206596307198104857955369225355232271615964134410301189494323241463368067794253663635417318211315275181613635091199739178145515727826527803926299055553706614355839061879759749048629321481808253613134841754914787498412677506852410587465184633539090883401552656934494969511120174085213506194877120479883207478301792408561857103986567208224452415973200558975977091012412307972852878283595910749582352736155704426437268048938778153151532015578473397795768575324732322732347117641573634405153940979022117736362987317138323617753864637218949072894681203870955709176595006820072808929353074345907643119410549514664597020899083189796890394793240877066382702083525101903667028944673425165191864297769630036284246176266057188488577275134358435961540346660691604732321188599233041143718352857168753663106612560779643281747732422979971851125980844203805862999484930247240998497383581288809011923857271739570207990416642115183415688215336249892803275842393509151057560910451787077019109918947397425989751853688743025592098234707542703853979542263967328399320751206979378562434004375525645789458967281327105543699123943730611274061048074104638308467304952509133229911356865591858460856007212515236364890879655845551492756222961044235622263308568083468029581987717996986022781820721249425772527105940719915569132610062551818632493191334965056763320544025861490848622669510954306720451040565228297496182245023204060945443200470848424682225973631826341745551738108231811466718421009672723580933896188679495410178041300574765155694890535045584553831220275095123783362868189972078091228938855910184520456951266335710754275819810447337433316241841470261235778843102527606959222429531474793228688312785080201333495975989416007294670754277738514896667092555511520247446708890637633848516551452610035670366479315579713470850911556048560777203879004742916926793959027067575014761512411629185489020735132906640161994182862650196643966192109351891551349005753129359389732368128959202513377994505785575252188977839120626370165332576865375454038876055365202660395458050507198431083021474647795078324062656517135239677784479546782558437384126459112070177229353717697844416389282501601787160127927515813638880914644400018375245421816959035798445785018147324513151133579246047590093178168364778346437982053122638715668229416585039384194163579738458099784613790009291921899436268519430989896111062343001346923275667069032898303627078607938067401340207446365821243050359877978924976299656942364515797861593581455294217555774629595212878582416264647756413794030963733363583780038199375516711795926069639821118973911803505709556633169886227583758722292480246026811895215662993344301125554785592605042660381638072723844158228699268869205227762862665491911365577773735633760503942900709494476723797371440145399153294213220092320017819664517095744897498785574473401823834402657745822255678277267240121738411272572114414250377411617852568911330345563230008004599604216062559479526841309009060878745198769667833114341501026553113244405873929594363305835746556512612151613013844575038273906369539567100248347529594122563533070381264174769382162601945434846180264257825486642157853347764045336652883390626901503442566709176750160331142559851618667617469078374685928742874350925299391386411356933443192086895389465851326660984719153463952408100789274242272297087277340074986812346902533560213118861211856152468362720436838222243231474238559567840251778638912644230530301802334094418396356633677173137867278312349002107366296038438747166335408006739120736651075643439066436555833689402445276672852262895447865157760380038359766042764866676455974445680317275757441279525805748149901748514890815617227477420894523554096398246283880984887014388783770351919135481739309695546969942796652713359208170478007989245439771568945520168634244849491987286422342143046079661224644953124705537383179733337554731865739364355784875885839633509742910515449483999174282447525920528422720904907934700717893340888288808740934804705381870479135218917986092844307968082085645265569827210557332515411972288630636332644772509254611032606812925235132496420706319426955217910828353944380096530175814086894746353396867478050714355958154373887430216813968193319491706177773446785080990356881228933553608742884714786900277962217534378095299236137630531122616739751664895138907060243864561829531613508686170422979292402970262584754069413238499420715062810982624652828437911618864495657019648214306914274687904134418866107313710940655821365069504609232387053313967343201538013631093665305510920719815278035206204324951522892372417445708565563444212380443232696830468147171114851722984343892835907378563947359012976491843040540968583328362022134098497870098895374364791584113871474547781357584358394386886955330189010310631491327450965574804341322039035607529984491069207852543038794541372917156143099289625796883397554022099618503103221283232298782745296612916037068738238871336298038032115302148395956133932218166874951414799681704398480887684182270940282421504396475931918173124434058036230787688311288392643058626316220654623330140651497741850943265138956481414100440752320806137496540778491874028075384503465359976991607834367915499898357206405869791311016077817852904370267588915816612899631111863403828012191627204022813806137261951935496616243059471794475099568810309606275275897764910682642212853142091565595613683649355501109446813550959377736225262743060465699369674218630665900454397392177738257297515076967580385002718903466929959249239141847222252633133167639870014713044823783691422308250107298579395669733829231771370386529822347740103756790001441562718203363837406466880758460794796074501213409316848079205747008364222056770881505217923247009289467776848690275596259553860609301610424652127420554751966643264984233819891818635010850179384470187724799676888018275952580284896014984932707255088824419549375051126337179181281021507493354864369707501514091636048336831558398419305580693363335763336751749806594526232896204245303331400089235685866383672457485671501620184005250820163501509032796855685635381436365662562254993677394694710638574818440098817684411505681389597766061420580625452122064765104340945632738511506755521228120249627918103082179835678099594874301568408890063342357800945729168330931065132319563489171245836105067509249620758187921369909314228405475314240270397155009523155008184927413479998123286518105713800052006941000272153382583967903123216745716669617870946966944941198280973877950562382024545896131549256030376322882841678784779251855668307021977484587363544228981788967407304831309879529491733475220689268196071730644122216121752836405119373433792207644007351817259038244653056905846149899053257609905701443372833970338741341547414411321349528958136565040385146524636127216731721793384105976471304669332276008678037491534277525763875114697149721825477641455718895741716327734069235155210844517850597039135525979727626600188497014307292666602293099773394052711781177590278911990744819508425373214953125834796948444993040138264166522958932330424043556382011210453215322714813263615733871871811434189347348443305356441886189964015082380077302663688950200776592248522383195008949229291819192205072183761117148976577826171242730425466668121855524635537597567885171078786296572428966588910109873275962209827958678414717925152641232420828680624249575882686108726095580895788123949509153806024731416453201115222949319440192094291368945505634439590784454706376806708951450320213497035371016096786251251834686863795959893291364943108778206802880959140615567964271302766187990528281567809493254662776364425865304458314712916362110601761350701961588161931639879338100350385827408536275730144027352004818030811855382718874239846937625684699587296807724111328600445759141509640292648332612843825102002194111992720309122125717047858705365018229455441025778854074444599551985696814646582617777265880434552811171969651197710315049760696655575412948512183392820866267797618186449894525097700352218459021078759031887943669406320208053095019769363907354838943767421289050899426305657394256378110654190717181548242891647802661918198261686445411935536576190822471631119864752727276424474142613213731636162823628987759949840451006881311893742996310986044705967246470762890829234955153365997617517641042492321527539074743090172119852822685985759765443846800265752883871494914257289272561991287466098868654106900150610546771176681700635718457230548012587414025720232122688680785047461364821960078639715256780535518985827837368844482559628670764368926672413115687603540603525387179712554860075120612086201044229483178424123191557979812327863812837582757472781078143849691327883453363426911880927412758502612101757706588663875466294413897696997312743135583161796403738794858655765824797194615210993094221883832344957140817502881029626653560922443986404589576451988199919750509568797725439426975612727942962461021401641858985831968348724631312162379546007184671994970915606001792742694296154460254251601139006722059125875884071224897977466400075570345931817820734919458697761656093455982169739383940425783334457124289428361793636689779703375900232544801848233016906334728270410691119975197369571676776949653757903367468326473583669344885851089866844046447448312225394103509014059465152429140067382733699747031244231218877747162999149231956335926971605409138074640432810355736377584931617221427343777728641041641663552293421034506601568178072230470614677371989787235681129739039301268471260694377201770768824896308841197223971817601640441757887683232728392671985914092444922481939639912037161666252984138268923801667700638628565147602370096581097274276315152308304343908294637144345161818350655189670266122691395997153083300598672560584380577418504842702707093269668703529269464506078556132112919654302836012174364389825378715977146717435309501877494380788637244003980833210926259672261628769581793393988263762627475677974574318031940910115408594038867594999070693086573553276486587249988909164040476830929208863192318306969589993483017655225957223633733779277422902822121957179836868284735054976547928414515130996532035058981510879988051449725711554375801652110532334422712282196961958786184621299805575644788321028795207274950864793036904820026781083970443320484044751028904697397906755513391092629208420294682385406040114844803436481659921569585899033505101032140295446034716489996872552128744827667333434495418123857058148641977126390159554874672090093025857009908355388653365284447954997707233955564072355291825224804680908512057930371639226448999796643280357047430075545562041612469246467351421323152126742452856399724473332015402618551354381773515803508060994542651453482775383762577094011916857818926850957707863133041473042334557885240173085358791622438870859323644601063830862278553979802846041471488028516972435756824771017188864894089259831904212043439877148615331719990633802216176466200638099010428151097614311924594883430921417579669704650573120974735882291855236653407172996070324405565574149480812260554844406938373042960435666846784647747747631740342284024560646221974946148810134529348288226528195854003946542248134347858378929413634550363487226471920787567000103998831083477053691022110893011881055027979907767023644067801714350594422266648823220459488381186282667131902767810348748056325082802704431533705748065551730919925471983454841204355150775697629562673143158831293244820783615544250031650093420609651991156156341240421852487427537874553304374668566751482989050902425044526499410422264678584803378918270702514496375940068528049006347616281918722728881986718688243562014856969665766152732434676870934380439226482736790261853426259997994132901243180250521400869762389053157891044013491260978387742230477098290892086140148601642846322925805530610056929994250833803464134400143249271384750954807271943441168228429280418894754110731512616687670430657550697011067406690183861249528793891992712820094162562025993242804507016133146065756187863623835746436255576072163617192047176583037766678482272012495931059819718317865568812126967357770180848366876086320567261937901288738952928825081654038277910800029338674727965150493715583464396248147730016508178198255750193168871063502299657073782723665646118165490198190160193098521228617473312365153577804952053455807296049570147765124971049939185799793235922061925203890684772564351054447769088254839775233954179610069823166816389776149839505341887881078464080674696764390374350795066245439522611935675411473314214498698855230130661301838306924876191817797918303678217134147607372523003517942516278322151110992691850153217622354005615625331282544308322166629487276183777397967949752395934361579993063591703638022484839425496558188409006379672723962373423591307927598008998303366754643298428068971834005646679798709777720503757813787836872905024722064574797548810892630857897745361180600305521463880863560312164541667642532393188617519032548623182532641775954609598408492221018237420096727830637830596327093257768465828063449091931093486045000963871764814488426951840607487767674953613034397488751306424835293965427797194030428261930361310023240202563016265583814046704473497439969855479067356479809550689084277424594124959578567322995428275892095839645761928546004236034155899305824884686114455358481121444732793314210530114749251188341732217407336464449560923078868615666540172109878943407362606481695692938644893308363187377866453749591897374651931742290556169143948535050612576806467157879141592554532294660516055069625560875636077920925021761906886238654321373831470446414505285383080828278100157962889060583740047044077673081541831181102364224897054476683980397674142339780702147072675873523217205255019914119496831861140177151365924507857072471664695174657071562380977806633240483212031979912395182754788409792667345532126771355474114758102713586642436881417437999935313784491500183769849694266234445644459060451435425604253407697961812951192410352794010683831972357443077625801036083204388538656977383214095665446301507060876487292728144830968986842876643852407451810767380912401977021479669894759331860537100520257234441267114820997350369424048535012628594372772319338101826395328139374676696735914072185288580040081817839524583354618705909620268143166294030800614968685984322266263826371759429285284397611306213112671688034526393681579871352131991257772045364257834563554804801367665908412283189349479329661299580279095694178794642228353311597237005813363461755978577325032910925927569850016891867287794430110072057793150404341185502029998415163149339526164814016916815996926253158787183130385202045146930249769455734960075421325810465895738731618997904917385713556636899627754647115226556459417663029233176834727424039864773548078016879551942706970130496361755955330976219256751977906808720289044443526496255385855780912334774710339656250203848007551487617513399966719581311392872916602452802714481853307707180128795536379247946587028717852415972572246099812413795719274318812322158581205030592299812862353071154572871188489013027556428702506997693946293329250831842893210782992629218498475617853817699807822904253015883094555594882590578919700939195768011565303254526555673024204374992434207376774537797220858890501798574429110821167825611375849827594963006664891029148716000244889865625835371505908094851260827046240640990651169735463212615302181043266456950340969252372537277722795967089507855497236041070412033859530342160853968672503901199554695825217099378916803412806121213191298825675317675474715199198752460146746084228601175732976786398768095840395217689973172601832454464263833924933430978463227367241357417250882189200840625966433552749634479496610099963892126087629437243911811962101235789023591422654401917370695456241812043222315559490552637866450030564690208933256126340101974839817869252465992761986252891908240470906216410973499545619498964002218176502500760373809835346685958581484019568954684794160786235960091124302374303086129781309770407060983897571834121591491217811977998269475164187619596092635420996505779394045962626544993582142451990271692804681509691688787889031668734997778804649607667565620320459698509901523711720014128132133204568393832402207241017426361313408073018631745288686093939023405328507792669749091951819900937377333577227768573661974765121623257979125698716133612172899660532566739035430226151395070639417154621726728517780565614167003088105552016060928138665540061973851270300861500623632754534946554742729746288313332407388644379488269202254904502596119035693557602580551755773583031802537718577499918530090151553512502279992660384054650183246047019413916194959149679325933388479040666245598099095990559922735432473130687652184492261539107579906064325766938335221682081931046550676196956559236966025792158527172187441436582101529807089750896691485804658548380926852476765418743402483794452149343241570499361207420692353122458016688179038587266940110162045835443532447754634616622112814433958022340793216824608251873292382004394879792008460961878638193604432111136347933046591554175355121888690848150725035033382627201019124965997944208391004652603602307470829476679797900746795378608611478331168700601600982184943113944737898811271478289666397692434305847986770620723339607335174405429742436973350266708628732277237824767989652716758776833235503664787619569934243421859315203299161918291184743529436967443563181116527887833990134805309095650331359841491600246392810839809983962920862201614278454334604321637642382214883405097305376710141567627152411968953294618780084471262774819533960707927956837490220035209751845682326066677623458869286849396966113209355112332606443646677385671773833897002440425605163191350220475355858404816345747667220973012943401070050700698718993604734385990084884964020575293518275935962159098371457928368071487885643896553206950418933746330534204366267029017557200059099187568785294213127193395691553438455173661071531806487643656133494270203855903438173689612555618192013269868978470191167214787619879337145562173542655395642032180290148787730574454740881277692199429576580732350716597400458269010923276087214458204157395077513084168883681753050806826090204136129396732707705440743506054994904556856286297501440541704822143687454837639949854054406645181613048013810751839193645104283698797149287103345751980623132658776933604258138862423002375157233629661342813122526632997668222191358378481703954018713624013457038672610574492874621991648761065609259347456116915566552190749392330979151339490556940558573556987553039761017234779315264384325391436329674601182882741607389568913801594445702658340956043444283487000444473441364924975879004082221790235304915850917918057300864359074751184453864242790639147024636963984008490603114122201805667312646549725726541781690904749787641436510781521861753954354607429213171694775313031565982013208029820683306366642385015811654773916821059960839977094826591843377764319759596827056132252326963509545887668878697596822129882777300706527242838044535984327094354270465462816564852103315545440459880822297832356637681564017441202055414927255973776099107168700798593857962997660578219620193375556990561535291199841776692102588929165332675097351317818803261620721761499414318945413922261412181624150164264590459823007318826382742551524192958404547288312763298742065498378569426124254059896249965669043003371620607952404136691257481587634102808861974495805831502096336782895746762114091999390172017633263097879474284943135906857252697801782093030663946477611989460164636966069596348491831856657837531674725519376912818169016178603430378522418709888247808290530179795419714159985832773934537798041680062836676956843798316831171914445290071080280354942476217895568066202399922009302281922763962164698548858378454535051170363656278426131287689823038640644050154953832747699021919432726721845329296477673709160165693983817848048638407591275052116635928181398176115824813673570594738277689633666222097653550530374582047718661796400693333843298590878027861988921283998951584738944633442942763453487706312914055094849411130570257091981995658707678869163265966827716991900509107619237273315025134005376209653208764393861204490693796265275750467002257676004369102481900440735809512083984794701023642502513524649645157153758033319944681840006890605190614985377398242149882246444963089553304818790028479370711552711714008333187183632524302663606680939051759925513452635615890421540334477596589321022604047672203673313250551968480028072725309257565677357077224044907731047882720896902278627631913903181561374438216631765340042297969373387220944239897064028591204227004241299203884048571126140486284727423624300117954763147657830938633194319107799670000788314377167937470948780450640418198074623239135658310365328694195212256711557911729680979133861140923080577733835901683565124054044465850283097970940837234070850239621091379549258116825911511272131598139254751050321830661410343963073884698257708028512364603254952437428255851917016591555834800492239503944222533832000662162284324259980772880436762887763900324312883190919840470924592685560801020689499673255877664211630903346135096870079578777175011544627387227715689388412490145309746567717163673503180954625345837665472932898308659568286446681720668524737639361560178263045037273413683489295080484207673101475469679260367801326793735589479942243400455619843915068930536456522368085083907021047775029849084316105301907909497829595353395190777684519085077202411339720207243939020112438407876343289223469080403533059784332833013468075787573474306906532910122110239182923880416798728196539919446122979388089719983860175155415160145178900467571262309344410608582909973550226568191178299321280193478865413983530438346191427277239315414985480801343685911814673425846897799663332934344286526248435454849479937032549292373028743659082342500005401153675921408151790569123122336982472680818460284464096172277198802645075637150273002078845826177912797380926243507898502934101561393554595787858301435946997121888766473039740876331069293692977392321270763401589550070727462528166057047037472173523907930664672067395954486843183170861245562657076960787003992402258569050600441499144301541515341222449315736723942693069915749150172733123853018773696917881391469009912161661706721246418346574671972995126151673018158372336268404536546886426995094821104390312398920765040486165441751651854194814905607899106004404420236338917270035476429105770727199003580609435400416582985601304191570184577594006518136826797821271248193857799056016185580077303413645788078887283608602568377018511322635183050691239415356753485619475570331332258291516782925587609393642386650590017102238839852990473148853232383055816192676502627745312508770139326470185948550186757956392309974774851229878384751944153644892784517783451711464089906499391750877075214080988066872347496643683868219645672908316624602616267190235200976840206722976958408714931961810506821806391908961527933052716375419981177143519335154619826950119382575450526690663478544782950203261522528628722062730767340305134488167391606493387334165305368796021976864846919208321274290705690222121732179226540042362438901627160535218619973736952916980692813125756889771931090698490596404476154658275754941845749026585212348845625871718758789440595368300803475286321631280310930123138141484936168048182951111491901950040176907652968403701617457425984846107690602190066074214271431670955528939430822886190573377905707379490441945575787636514833185922837209870024140000479917374487978612979613435888099646988207255193066755584571855264073470849053886427922137826521267390667841133855279551693742066873372332904164319996024584332358350265434219497706656182139977533220002564048318919549261488030192547213375070418536588685082583327912420863822535188653716930311567012108555854703325326848915961604616673448292627074260269307848102608253711192650668029721680160103495610447716875292296879056301147733840961541676268153463766124871076908662076139740555319480574500888149521266062586529823353142943469249827922632254157976285040563329880198500084358474643661570151395721860653766284743882764835171547050442342197348677904561124605514049595861119732089221574925514859490153437235378215700339174629790552666652149465285183575783788448847177542618071021773958243983129853950164918600995216019755392488034499187083052258857764077524184075264884572113898809011915830493320193393371102527831037665377053616006260248464828030357332786084298280317759143536165650563911669365645796746527992678491405154791312674487664129549738377213510619538801904083304196784642011926311959681958908427740802042645164721661723625677156782598129059905620892712662364903445854787008017282857296630196211575163445315236662329116443931725609640667271502959148004384731129894291846358210992999146960332694990621798275895272552098956807365652653351741722527828980532696921897756681650764099788129740014822256114060907767788390271630147162069725281811763566827842685429695198299871490959572564532227814094777692655617421274094004062436656984065133498708206910432875230866501972289730324718899998721515683563821395003977516602290801689676526489989501115111617345294349619496143061758859007637552337203792803290087680897840657544988157582111700342153819369682782600534753418627822630602583198003450608525500427407938183436338940149781226636826268708763270867229556578601662714704782872091112861937477571811662162948776903706093731072507612856137246296080231660611244746388521372509990175634740827346367229223197160026132719979526476871799454175521483484838722013879447704765413597339212473025541983902161148813967103242441981023945014013692790659974472712183857815153273938038908558823753726266743505593999168105747394629024700229503495890103449496143158156906151600884655450287061343106744022894416415819519759586597088757885082896771410332063749392901410435713912180970611468236338655846400588616896837404495421733777815663218182880517152400670988393162464245729483284403374234072301338409262076689784293800619844854749616091610037017733283796133405063143298969372153183600993261694324284055395172192179806226943313901214216382340236350855901282963191117094185813650372267576545932514281827204595115097861606049509009211180070344420169319604381141959165765057766063366840264805232484685333058513150907020840594763904118229182503096673478504456017681778740879294782396429471191428671942573992014911149385207542328806672723034385703370882412603515721711680375534389564988988629161247034588042958732553650654287396524146725727997650851301241388389053733693206789929119665646803142202193667764619423832591828364997233058036041882460029749960360835861265837526821948849115726639463293842241165807524330077950061964104132235737694063440604823663959214956601282846608963900563064007130738747331523755196820003194790958438162848279932155574208759420397584697432343659029460728752752219565660342769504575389682722151120374984335942872489293962572585179043806392208149304504067241286462188035608954876100909690849188705710782054327714586083028755659720375682352349521199005160394270128015198548219259533227061393518583101465947485603252123452851725030178357926412581837431668926530652205113720583159225472761207469228507387109453153784404646003519299533338282496493905489265020458131097573838666802776632488870726592454298319131057135694609686427203575176490006766626116286153756650873277077643071782764794883693563484628234693834128444213386020115220085252382169083109500489697971868434537612955483562300449145954709202390746917276739812091557632453647310186272977494906588649522537345264692319021183051004213920030826030933616173964903226429670219535028846279189314373614672234484930010487944971299359365918830700276834758652222448817003766729936869144155811292461123883469414621790787609205711151777016128637424053265746115648297615443030915728476722385096447610896689075096883248504494838153240972574196392176535886651142360539990958994642345225064328076200285501601126765210827236507690531896148863275336757407759891798890606215478270973947529264683327125320703082949452331246411620398741205402183517222186910407023433175868694152108136994529359161986179709393999292772082284174513251945048876907565254781029874424385795068666852030758488221499333173366703800581197142658761767732337516066530326003296649444619646652501398098267965313473290334554942765601194880123933795851335773604055790950793663918459198642507858585585969247049042803812573292916721941117526863524284012417327175332842185591761941438478320797101777377889257683607024584369235240618383575669711863405731081558931321065554854543563660399966116642792202896287180202696250861987357522411958205232175528360116147243430988203902293196612651824222659977902031824185979480077094034988919859439609335675614524395196548357160201426441984115281097682998921728433509652543810427041515982336491566888572251583176642393036569929509064523088068458562213182012581948848071586953681981176835248623501961001138634393951156337751255885210863783451326561583000165442441269601190829526659265373696643183967279322111122501400912894429303684362301311113982303408260539028516530117931836351577552025684104050035018890049682913416437374136082110101637221251170222627923592687374671123205379163943535848421948198976765404631287357243713748108320970228883229152639526264694966346408661041838725975082297213806015348376689861212299254815350338662604033407973792636642616950306903656968840664716343467434895735437327786196684801755263925890199323614114243572915447944289755810062248408094462540617171006422535793313625648195724902808722399429114719589749021546842042441078964559416158785600272883592443275967522161885790680222923209746645525306886388977073150870487188209253631975684914326011736708633270905979572734420970600885504397485071001762353710429750941398247040477085072642852984798833716734504555790861888592888636557472338407158036260251345336985654557477784253105783786932111629803415622391736568915416066793992490194042104804374477330855758924459916885055130365723002395792363400535546230360930091547642725297542092812574310415141450096419015780073236434174303107798162169899993689564671021674534499799553104414050757946801242066396293453668985236306938390375436982900082312635231792706823768774418837073549069509382016284362497890208741206756113993208057220736199797778103631197304753784981656854324935623502247103815315087077578431112484201495995863955828201321963751624565033402457760050080415650146451263259139250696965727447340780851221065517338907841706437773822019196599101307679082861278521503970982346322767131642457711775626086788561426336509282161942771711471250933984594769435603594044454129696964696607110266053081698241855776137158567433803060140715782436204935684229464406713508985235043880477233073160197865763533540802245981950169801514800898717249911484882155106253796178740377542482397658551412509699382906467508212955892280712940360768055504496498567252199436118358357874869236659345797229719368030880568211439721985772874725417962426099568545072360058722188988495487405556793018986529583678978593747869920609855632785764604373076338068910771433394221509274052810094186346736948869452993457041586837891558854608060839828476897263770236702512148261566280290934829472288109830494401958392527408876489144078776573087182335806329384946071562938247025022569793570475137542719413285217778612413054019683121184616237644288842398705655411713951067223312271314492786467951876370807703492507465781710013622090163277219274611199368689861296539277664091065378366377843173843592531263326652869449528763236655758312752513209044716519096336112086254332216271828966875350936850131174408584850115324879526215311864126737641407025006149723441824871973544228778074390181969909048772279479188192061924366306269719800047558546754918258518104784720594887227226664850145090522555528982275378718510543873312117557698441371113043560572226969336561605978467433251990807395894662394073869926404334708941370484752659533294748784238992786869544725327733451139280185515258696443323522901685699930024562224391961491736130530402196821053400463012488552507662315816434949162797771626009434206513176000936339285006211224057118571046283661411722531395179558974009576276118630453069747853460570203224012449524237172243577117061345014034992734951791405036899686082056463332557287576111804351135045831192680104804451094878697426281168536424175704998458398996232177375980754946275215952734899104998144069258816772597612923181383500262601107646486700593561179290985288696132710549946420095318278670204163989955705769879517256781159820206106643206179418166602608196538380611229880681756008409061725364821902899883385698593617956432485807048765221045057527212019820798143364729845839111944328666527048299779997789150362392863009414230963551002967396625399635041377914720544928344000718989743997352974261265666961761986511395370211916202345374823312600385321593070609879612666345860052439169621938770267118270523913031665357516777093588455571317148355561607833036279350265966122573545731830717043468125146361775780197319868947955199575256735750897254761498688756788977526754486062765141846796484736711256743733366263320272182017189957749937147820532565336395186009895437034064070212914031848286200508070897267111163627529865788070564587969464383405952155651527580351658571334314786594979625323433346179095623862591026349759718376101390369843977167027237609164567321506814148512626575666014656416265148880292866651859619548859365227531103874100163677430866937668767318688918218856641731897331063936239308606062786446743570670925081825635869414143990767786474617325250242299241286835162981371705691863416214651195722794089386007973739578224066625369378037729490476370737766913372454478916447018346736890888979564128351377823794880250979544096506790421261481318211742956303121179269927348314072366733551087696312014478923350969607845262982075965991664623601652339539191591036718543278917506774632119299524727471995610280796758076075519691983915155882297383874632132255966596070429946849442786860094441789927043346218711407233908820810745109790821851211012431298617944267303305390510397934146817872677716899897487947916793213460696093054718165411308164323869927192270150194901076478645222090182549286986326790966365198111763135045180748844420817840161087193864074033107995610818698157453670313274342442139157289541888444583906552696031476695473740882563239165050562549494959206490524734486271883313725125756816412742292087784590164343001287924916338563731292689889004365184439912119170077217973162889882542386939068318438487642494350208495085290454002112276096817028361163872327989491040287998454468668039193850082361164063792146964386195311079221459782272077544047263845210453761226751283515934151581451039822044967480871890195298849277577600304781647493356160288756712387597913620478309958654112146418514416187672721183342206011345312555134057320720282197941186913430758024341081950582017843486818769369149282614565526674773101130868406215300726918252241810981261371818282173495536372000125581181107004793614355429145923388961121048578919922924494554770277346117658490223047251039519239907315073661847277093891168582457257406035511860875715447291941136955519852163215404248485292841787702806498641467344540062706990273762141659053701740775693505576360110706932781058455452059222663280048373381622550518946255091951088668140557148672334212911993999558710865159281934144739510745105967565149230664419422841615964789542454742422546644883679601534616081569189100655680263368561543051292091585041539610124932372283231592677218602353495815806171639478633889498219360601954706888110198153196873736312956739374612448517257931487493983149667309698621348805989769324658622684261185714113393148944080980170175339203740097845659462186214386012450562293183877405598822666315827232482797483117196380941765868535519909076261927313251127341971502081616936780282551076790109345148214488996016656450062209796033934916034337830282857322051885220396662616843683954918607037791324872490045632234828799346298192879628344082451469211939404225095042429762132988151043944725875941668647017550485327763966090697155491306474662334537985517173145868535188374298131211196386639664497979939764774981073575280044830762798097678173636665902625808970620566931749722208378181516891218017230747978188176749434929825438586779448838749392474516104749877476813592492094350621771579279532062062767224743412022780652930114156402946835062491832005703331680687623177121444519871894915790352845808571876515181153087538794365689093234858295140133437582245250544308711017189810004812333104394342593612977448764594166727324498196482918506893841595683654615789402285564605295534202622999087121430632441987507721554221609763114531441203967931703368890609042372489866829279365519710716601356265883375763224779971908435245381154044760765053247668371585552771396060556596433627156952727212132613340059725094647393747660345987461594710391032672220870818080123044767764017842429458020620943173250732753969302512914456081296378771362044805228711000438647036550942329006822138324053534503653259720729748437468514862370253326173497372866154873689389036430372798107167104376130021026382695616412952419562946087224154370808600250016793689764353510595957183865387658888054679418360278199349330363456617142285779421622625646972264469289940674039008495615110519826038976880336913471697409883442618774005348658174109381764932819576107479776883267441052458777456851546674162483472154063880595303550150223354677186382452969570927762426160863214912024266726279334617694350631732004120022177430767788127577103324407588146384769040754802858520007245246409423658795744517591100660348767977302422781100343317857035015214529404535750934793627710225624096196008363821952290782707757021437210822290563843359587621690589724899119621126026678082497357847425628610278959880211546936269263019968128065695371999843525586037281527790296813130434132066669277001148355694251970779662115996350723853375475106622795085014382402963489417236037852840925901231747119949265747926017100207654593228286875070790711155094723004232379765617091263713782570215030725336779625013687782472939853666409131312551414457576299592436432357085657627965835588315917925588070486539536950915002111286147505308499884327224773910620814732295268266640357322434708625260053884205888150524519661285686104978146085053587664134866774268684497390001604149258501841703913742112634280932069005976336629178692666027750743430782971552998278398555198573454886691349021873656131115546587811562584372594799772615127606136506510003823128975426823844286111495071716493212750775986816092932491535231638478798567344338496958357948023139738408345484825691863774317054756848359950999673664780912049502516244973764235457334099076858799908721791064003357323460743660231979456668399829489714343042725658994219187086755261871919908180510890538286986809338355265914155511431731397765936164564083570645651870497268893025947425224243477474256293192693987053287772253088701801177498108712888145468768994131265132634277998722001637847450922344234404265613859212657631042145712546455811692487641573516721758039800482332621823868869332632960322947278076101994539418354575946606154029805184169535032004381405917289917051176472134875621179456573122606077664890260352833361122091860704304327071124222195715809649840189427688641345261692220358757832509208045115669110830673447583153244043961558474865086106794221009615101018005711430339176255399565710768060826488260446166393385574202931456258680912289424798640704478967151418659427860376410398685388284243501906296683594207317819259372628365821570993726643865656206965595907518448837442406995634306152987149220949675519363394220315382038478541469067861000654488856612596136191282565813875938678317112870393230696838195121675887832707332720526477373737671021566508561634245299086510086147313553969021606793412841901453852017258516630572771738121001159675905816194179752090047525352067768596751813678994263152139604085150517947849944549888469543478007269838833575725785063117222099256890328735104277829951945748311976131065483641259333695964539630910157938426045424914951967397834527557164454842300294596457806250933385403941969073911946230834835202822759337175547637705136074853417051006192316113946359287225471674529109809775906321898894813433808340389679654774346808106452682102930829028968031247149719940107572563025113398844231713797888006886860284381714623115760855863380019466188883800673280725213450601637001834861745129115217380894410893175269635434493967181465212781220567312480759554394722811892156313840482567921624553376195359445758428388886684856415616830527503651612886999158851617657535764751412923313047257819060508536343998825104127778844430995768894178299068698337251158025402117081445876156439710420699241872551060307146183079503379477299473117520073217525507585325945530434397161644803055727662245688817314931560902713222832404941727533079087513389979447973360690908559061778674648773333548180021788190664120794211318419130280125551693980391888322518289988955680306876990356405077347971682427109737619075654538157379543343354814121295109450622638093942349383045672440843559004977505246723970157187921971272692479233988767716898106826769842580912369464969726867489951846904512724592889270808557012075612269771466022292815787900360425725040318132642350754597673488078544701427756059538106551485893579973930831275290151653696460049361524944967839830824844251415371656144254243505273848596164946917773130118070170986487856468290180153640748954493778996031478421934914855182216512851460382394110332541519669097630968150827833443476563274239099456954783539904360732372252704644912197382050014267957909896617328921398497816853471576834012474809513728444131893107616460732202405015391221171357097049178804024425417048983621639577240283742974684551940512091208814543708940744217690168729071639272592080331536999058824100233207000628948278607858918240722038953922908542600857112294652869876600061346407778854648455756827216368434578262954114261928339332544862643474951961810407742773234492860820400479934226443600899176057097916533971339393111458806853510971527172340260625369144445727885557990296128852267314964937489730664492727075113334992885382076422121361639803402318121451799144886950040492679837105419469490670342391665218861170446884708228964042180862404464145283546933632784245506541257561836864628117065998847422984167506282053127975775178995862433414216053216522068095396799762707494609277391735558450048114358906575322488654826393000863276861079887167169970565111199170513592250168459484657198336931578641905036410271152219374499551526415163648813714112268711038513419083742227839186001619613811623559620035451959171651593060701276450731724984322825646277856139182326519180463262428686564974697687665707356229208968995950224165659108968705611305380086943822646804184871637677137988310117635737280399362882388138107535713331644071078874483111034258308639332292544466065867580408204011202664513103677316274816912143782571094231971877296458551722468711430903525130570292111905894038685734125849951616595673982002525957680470246553579845931738543768017951964019686348656674205025059306213509604885691303279794972930194392218829636249639738481053709636134529595461343879745417474494878027490116382066671172376947843835645376089246711801610683076949500205562045679603319308034461462974155539565605453632308491275959742714187169416453155047705888146466356677699533962501416230042754424430075760377095180358930835109181391786873061971468711807746341509808200936257849832067098056974108194995684753451497973420408791554202171797359439593766283914196782109251080810123994302149590715657870064308947125925553553904655367725883489128761037296417531395905467162741802498291962028887295413838351547652336121251448517156210652804729655764317880006751971860912911445896892261867708832918107694846871608498981431661436775972719773856175172093900753210209976134868742632261031790216171181470045788375855866862102413342445389870882617978979521979902505213869087851294749336350483612946631146581231436045527317229836201710502802705614859808320599263107553057450365217149044206121465405582664170813763509375936261047379784145153833110286522088863237595805937363382952417438217769176296054182894621045579869747107375587716411214191893735283601895676135675841892726453733316562427149035460453345489263227417112988310608723895093873342940666920418467763866373579175008465832090608319337185425913415535400099790494391093920324715822242561249915215654633429684070578459482781919593131282984737824966516838148719860799225098099407484707713634333946225563889913010444366026909331236272051874232570573266760256106439519198464482386851313287187260006209124765622975289137026379673231422403593414601860776172750725451081543517596329722976970115161124295065776565132531213934634291524583508069451838413991407240539514116592607447953738703713025346796904621676878302808447194173613350938043910589235009360033906932186604917908209657284928476903058770570134169867417162309658347902419930542993960754215093689665218914193641273553879081771481469557862187770179246167673031113207314558027113445589311259190811464093572516166218880639125608567563840908708056190168192621466847907126181314832728730721031870145636914279565868579507041117125957960256444726875590759710855974005134377830014418664913126545749530110373887812544079883264840211938386085716151356539267549830878607108674923302763832679914542427662985598733374056983079689471868166654572987288144854312858928823688580289312085885931476113752421231642296005682175416212772611098232422104922154332227527746473592513761871098404197247179288056031885396314173465036166010706879977453393599016419153383567314396578905764752189412710854543717044808271861278455729465916316918437962597928882844667554290544711548397409037865044104249737629415155001555139530515921374147997858159270903813639282988598918913559560177450822986257758084088965989898521323361674582399757502639638087134678499820375794123531811216331147381548671862835573558503485902817804911243404831747963648346831972835687739819633950668065963909796371158941459851383153935385072707216612012362140658832734437083532877014841202660168693386361099327145895571447357848885600497155906820468941119040355251893546128627514470026643677764232313675141061451777305131307513069192023945191889029941829162631352059306916316118281309773628468533248962492032922534783981931804116798883053803833372344647275700982285542075501810568108000843819135403291837505498275047469742052639491362638979312209083859678693517136899463407300061668781204595701491261677685433730382860256360856553680660334105896409326364258257042934425950289008963674622863060919202052425831266555297177735752482184343059228646637057958385250549320092933089900565789075078257216200068898297222182401905706947237832626992211898910790810818913375102042986148478281633981581329493043533444707950565734338158476540642430920855420721659347047493468148969470986606044287697182975072255755917468204404705802505877129330749065489047533772139434003768338892373199322537611582352454930098890118772065181035215474557492892021326848705638734753140844653588545777142194893275935015077457601309034184727987269470754711741916217500440419907313797604878354595647592633571817731830709700787577682538362514795014586729568798278256286549464630681316693444086768878251957834497740746943135806423787641998914553363080245847462780635315552383562778773445928152910975613812289980312045532035731046498829524970724631654056575177106629406210382206547161720881579072582320420572795387588965253216190416378145729942406392381086878626178067026218041151714508283246144466419831548271264846522562177571368259207715340111439319609128295851202023006901673566955910074461455945060159565528436992515174284714644869540495324807942330224930073553650907201831440635890219566403265784170284951768554996427865228874253154333204289316857467669615342261683268063848149922175460495506129804848601154775344649450387377802290385924960929068656995215889442581966417033237157879228171718095619262349572041689537580885017284880458544915985910962658216805292055948838151232190790935277877157436565876219693143569347699024186301102131389131549060642893981502295179307360576030864850595022822676954748883379476117892341965603856672818724471172284682557634399159136704386360587700340454407449516036492727084787939718288657828704210635790119180594378297214979108215574956799693070633664587380014208444181309028855086090296771628103811087314094727343586992260559430447564272574264116944453942179667165784929175064991490281519032669553694187792781184732377189699743259824806478053598350808232080027175247519131964048601050225114666607552916764827044606083680772039429365926050051612307736244336885459193426291623989565967552479737396348109882958881270549283335689461240689619994745393725921924284139224005110939551116929350919589317668717393929978392667334641420440861744736466711224401980985603868677791045040471799550490935595027482239391245710218549707792685675212347597748123423890726261890822284954976130690206255800565197743322933486746878452480046231601877118680084902141556484824122067723446665633224291316327836913003344621250029403443697729857620933850627149214133410048650102997272829746310362309169290761928325040104747903085751866382320070302421554934748263936166953839783827582690031236147814721279846245765177779276499636060957693711874234345020637543237468307243976044538035613273833476045193085976620950563080298223181484113718853730021869638754344703415287157026258562100251381585305850838418238058444076466978722408903788166263736915334938171851758331837053046421798813141414725007092352590607564813099330814497259673707470733742595688176096973118965207874804393602909374247191974042383683839407694877232891665106176841069595348005398221303376153315087625251105143890196695539547877484474422095195765018226532460941890751525833266287940859383303791845091077414969239827435150851417416400296595737058272339193884705458829251936265599216491001785161480082589503504313968856477287186515499640627232166472271262114115450832662053052877434988494997382957874704665600552648597191549372255012073956713762254079427252110889860086163514597671445783586743874191441176839064656855671929067264292957919778527791135034329127537857659083516896597397357176666785299562696484968891928096560260714514138752213713933485534716702993127004299366928498251550199347016009714106806055800556625392503192596278027869942478098286290421457933716481290377762864771095438816707472113063244623853606301759105484807451379794789311150700927869008110121528854874939288806411806097005875103123428013410245105615712877390600527278143803589494406924738150228740694865933419978198457416661331303936915397016305221743284351549311594481972730295600817249620204332972623867208508034677966736817184429183801516557521688290908387432908184751353910892581863666895822180662714135746915648755316129674314758020560269416855898890938070821815255576706839108152664205458549770786716191768909449857498590629480790878062871310289979433173753846652493998680715881761265153113126741024344127601227040999336816424207244714584080302073974423138856416293781617048984694326722663770166832220654753344124588748236766052195386417683972721425483345847666406408108039851873148135706963314001611735045152581600528093706790815111841095734716335118293209799885630236067921487709253798683322355638397141089814805061149608316592724220946033112091228047594513694001184927055271324977461921278216438442309577068698107698466857711027917008478028788034920386877588454129255896928073224608222448940456347088244272505944095971081370473310549767498223286436547728149894573789316057509252541302184947894114873123848355256853033205799943203140032698137987447252325678310958292548121774054747775718380354774632047478349771655482621658504487544015213241500547721993417871527980036157784249753056585982197963188449117725190287992312003949698489254669009094011515057854712095610041101565203012456688587043400196953700436531426682678725950215270026785169600505716968826408700347335886462059642111039907908224667308129682412428364453193147234101485460993897217798289081918582793135288215717553681459549101999513975180327688546470143200546369863384678890271002073368625772077923599525635006177578788886501332359201547336761473008837024366136242145729721852595013778664549947226719462961057347069575141384311140018477888173234346089335561220686741325038200587375368581814827686154074852376388760856028031212907788846548693344762490813797108327831998177875870282183316395068617912797778029322572011469444256841900972372712300345088323619745331136606628009394453025566989423548242941928625300139554818905043470692314865628972604067632594004151833184937495032303360048374034205723815865309789185783055098555394425905844217146205667763010084830012006384945964483000236010282599894638603749267503515308532303752568383644925997925217828913002321410880379948747740029738966351283908489721354604779726625568624451313755730984091172327447037260836956100985759152136787433237402416417140348065129390711171306556456682996053137833187720096628669223569335993655461864377864192026753646653547519142646454735203086366919775252348981768029844861359982608209987690997235781743991252427266266195405026969277152608826833677330179341324993775722348557069218450996542857053467920286589122676374797923090035948330589415726866543301190946002912133547163842026284850308338306780403085402276301491819301266877291073868606692341019941296182769426619214316559921245752063718052005635363572309526399790781399981675186908755931285417916018672377540355609903145125059415868142014088686085632499286383257033591041044716031528990637979733050314188536740443686143551716978118901765578976551860595531214679138994580727258037291949558408000733692703509457444830443254193840817439484938851320468611270917269124244613874867717340782967469136762435697540409523224968436878953056678287438288430589377960496834567840561707909365785050298159183799440909143573741527826154582208868467845932489597805906705924341957427956672304916999453786345335422491605856071819564096978465486126432591490117370519202930250841800977371580519356622469532253786692899098205793938993503624359784718157355586910433282916240447672109161979221547282558012807304585443401676744465576759939054127001232809492779657168022772140178175740533560209735806889274768477636243626739716152092816798313410943202429625428867800266446176795454528814051591290865259762625577118327896095891563685980001865031681192065554042583307607649107563907543029501577714867837066975648331043006937050161379785424873215774002592068739788493203215485390738006904643227919267582477563193975240095423506640153019377811790289433950739762812438578305529664688533467807972345631415212342486585460158413142614138631229403507197493033974495022735411551163455831191376831918508002172628897604141462766831407658352700057310448086505370084333950165458864085794161731974950410139708317230087164703220206574423563939195320331361212248018333952758707089301009359054002878141569248393267844467148920220897563265284382538181821729830029634094601208515949214022093985346408761782032030580869766446075943651501082815665343838965074181322236351871252668474320918986098597998888778906475206746635110900175952760260590368318212665506394871680211305802964763481229193806634324883222274356402232332351928819239519474138391161283000773252725960727471139181445244536664143993419440428184629335142871308416717683738365268361466220797279412892502587993508965050138280205936499366413187170016983542155993091640511934619760203093066333669190860611033652222912127146138801822816270915255877730087381200136335388220586233053014739849862991977403389808787712145556846692431783170472158156389119480266139629459823443489801298831546384117933549761811420325487500212277004616535539083404260120498531188045133648803623438915221616921711799164640608513816089369876423173751676049885522554175045555083397113759400358592905116223381602948618946036452127060735276810339057761806852605505760931412601852790989736693010174397623988280793557925515032892231126714789540288777561338601697420289761097297781457646599991528149980157334339978206722826241476162937331730968136723138626360811435895303851439536761200205038947897545361508215504238637061894119147879637930173259557961988331913595351487706835631713339219224177868174256708588778620609076756027753352466267514642988314216685631475944667236295788260815171544801480458271135733412033881464531004840945794968859520356117281500307810606202161992901063438152419617324694809367811526154342580613826350350854027578729554212159666306245130988390133556042395580222740917793884366508105213539172351943906718041596379302571876642746298657810476465413348579658884630172742785521720829242873848441673663240468947702684572742136833149169639787870604403573694874888453730300585944828040621541596578466192279681868945533303414726014799476285032372484372564410988436497348700653917655332326938173402543823025316116694903281351820369370411336215193671141475947912966507111455416827516369421646900973850366674397245564429107644691492737202551844327741280234823300908479245647289587659672648827253830480119166874301598671395714571137860698866063088546400878017240938982640071158145414872966113163336334522482703903024206128163359394349810874252950440714077308691034888234371270276194396928514527559502201222856455473625908814307735845579416221227777485781401347722823392923100402115005890798921329367859537125014226273485581603588064125810403088409298688158248452953066403259898154153459928838795393132361584723156042505418177617901626993878022587593677098767030167461302666714967442219522212130934335312429319501869805191196518415844787860514889764730024822525054662638729567044730262169019057412632812407553953222835930899476982771651329708564522310392715493196140121018423791855237091725816708149988085328997188819536850803001438676288276744579988164484928623688774688024427369121035995489094471873206967046230893096462202930065004860299392203735030325456433075311883802182523785685787639885537926999632749929932307580642438505872490021500929086220613439137832374101892975875311335437710893412693243036360279521732644998059719948721396635662943077698427859305640119648132546948191034362149558147162826979520315238887093080288909276715337075133141027633966507198676044199871426398608608048592610963708326877522840295223942618967448007787686209148899463102974105643114189834060935699967258784367178299154388013415571855873656383319094031605430995885105918422797071772285280340523342184690396208421601138419918079194350046147452909151277254489585844996250312595532639799195808785768477986640257712097272146312213112400690270117022309723404380266971668134107228860225352592920312323853714230840793820547987566554616923647016441616364628776589453898699813181417995870213690479024702818953284031936764043109703899028384799443659301983252813296276355709356470241231221231039054453902195830093779506252635518498518491046274694872901188589991775777633652748028332157842908791678967650518600511720308176384995481523805269753373222536201552292801061452704079586229353739130906797202758275471928153451813540907744127197167896591647052769265293916175965204627768149634402309071047355016358209513374026080830870983818066424380480946950796736958470381488537597013688865877977539383169464896741693699612708146993686912565646170726113060907704817554832698129389775399128006402462560022946081811298113097051043219804137010238483649246129692230429577444399101105321599645050746645889700188804516478284362986843578820757700428396073442907851539946777178873575062719322435103030341918106622077719322101144197915115119954937779436359295267520156636979529668728818177199208798680716234024578337896242974994716029924195937010007158211230435112870666820853764049168587635662479337507917677984771520582242264426006025146601298101331197312281577649018448251501212211124594967808359267690851680170575508546121802541559099679736959612539875056986472700926914318729400173771492188290342835451296912167405644891185206224483712009883619287863351563140709167488655636130330146180137560578830200472644020490392235336437459852889726767417781872541480063032345130960061198506119010369921899924679124315805073976821179421147747490686419918293673580434515563823455654013323686552586231786183944674496288731746124831728847815123000302808513150722047476143841228974555991250487617866075648182722656577615482285933985651928272341193639529172536198544718758832102120680751980647839597356110736561841601011901376173021347815260836119501593708131992479987962965610893689285429543383126044280313001450053632039286063037970645391590116595739697718428766581367138018002624511434968698566034491580332768677112796272020576034259337161286507729746530080127659796995321133414707220126600479094313379736246105272192954416441135623545695293915203444813590470670301396084219712855744982629529360595363065711092223274845880395806466547498589769014997000409360543112729985909638074842761371259763527866947473727469372998349754388407339410011045070550535030728993489481882615513986016361251891961778671229696399415256561183612239288083806568768341418634366573003884070677717774535899481606613661756194299344738199634598293215469945679033074257660220369365754549389013517295061328559389302043076908970072993677945055688337993278408247257923282624098073081452166784721660353002323585063249564327178784341161457539163160626652309334011567685529985503127613012803638769228000930351479649080779281234935070474441861207306019608562663444409328995794161382504040255466196327260753465364492408407251072723746680816786054377012627249962352725893736346538119336841040590038429398749430742237030913909916001872999430899244914913436016672415890715805541170414645509226770536917956376269264117288151311758950202138636643425510863319034285757213753877105930890716592615232619720217395935363979682623419389728835745920706631466652853308817874770127841736913024748648010194425426868981873161075508992745953881708011812564211926116919584129535973846324743844804152057812832633259648201585973737110634416198981918189932863043895577745951122853478611957884875845707623904527107440934086740441169864933492822066736235913283809241191567292572478406814991764437076665176026018695483598305935420680470734989997158340329480736023551080848321619167710506387061600545188315153921473109575303539211625443131140164533001357329287373951116354012183359879230473623345391331088029455165740694656686552080834741804621098324628839364787134415009062835011267626892773765550884214014798031412675835887448860195879700406470943993643145143306476796801503629804217190739121560094686190303482995776622388719953488811682334588402907996351286329486570099601727734947656241494570966568578735345401473220125112541642057323800722931627471787252395208483565463743472395000189781872044982094996905877594767584791266516433923152695398582792577379359599708128884884031157139676411543059469463704304168463543179722593942966759504331480982817377581649553063241501442432820500182965897266570533359262652029545237478760001293819958473139746409090231305878154002832070883512914324499872471253116505384688516646898980012888240144424075566870359096370386829697920847081055607420057190492001884420476278591188949655481629110974650184787291665795426805013887747463647078069096871932023821435671701425249086964264737536473549359037791003109058455451190176418113337711663340230382730777930335118888877666121837158520713311413398819655589841731960197585387369164813464523837467634495507940860908851919725962335287399580270771802688463222054838735210563570013202672568487105183389057803493586886155596685379129119381523767353405071967818369067987678251822663587732368785827918577946831317337410816568028618624807298207146988732318257645922378129172462690721744762534609853123064752902185925484522175017186739553242478270081064924795044027860491315724922660017315377013814426922823698475518889358421002150908860855933006377179550790756887989199288475473799897133212121326484712725061461963694472940657084723306209513323489992210018604636802953133478664939843261378300917096937647096275007786666229613508826969367003240398592947439032822457071310616023746332558623004018051680486663732344295228648464710702112069622939830650268301445282864757724324589708678501626398161004474813766313445204480556821502105068424441767237747638320595355640567749082112435118624103841818978272667657157952952471336260692410662909684376789034178589262427541954503438686360035966992814847236017063259310103263823342349932296468852735535813516827849615397502135162043707958751565750252991883019845894552446145730190716944954186977353784243493498987335144326187656760741032630322076365670979794268217746638780663226857655660681755618921541173751390618939511110740966838493699500616847499312483749708052030236330186005233506799324325279021516016952285908240573934403682038222025670119223693392222313418991321948628557046191532829435109241199571526141414249389509799573615933684747737726142231286178379005400342919962887604101173841275840801903778677897997829783100124539938276310918785737970240945622929066777636831286179644893741389735159495897059792880236960544017067906506997998143595045324346093297237151108780750782123804077424563002678432382028558603075748400847699814358448415475069072354798297352188205917517725583285776013240601796035322682377379377173717704986658842512860471493964402491603436190760871544397230307557480885284434814240309433912816774710511800954478250979387987767675843245700008641320763513826201431135403800882155598175393130162303969274572530191992218660187646221149582176096773175930729427412507362354553410941560246607172084744610313653396413238105786342452797386096259959751004557081961315264413625894506296402486204626124842151915928122394250931801774521087818014252752607262117777272762899562544111940289083301110107550786333704401763514479370557752212117182826936510164355927105822553087563982685016234701583061476400294034648236498202368228802269091009599561222307248623019910762111851461758208473054310754650751040827335689129559622246911874057305506302671561440082361372522503927166953359845330743655977040671559015680182745983000508502016969991933064603617521114093599803664619942066251506181105911955004339166503534869641537905545330244169280559086339273134622442674816265918303456780811371812150947807188580260230149827491229604836266926497516455024171588498479706962537950655738684829365916645737059212525675305441875243780382720502364069459440287218160396073752261562721787263051674884208110763006240319082176078362658409313124390558141434380620307923062145888027713407852415646636582861079870638747004314585012544435640358437636505895029421568409315692470334453139584310594962750441949498622487265998503053908042368574339346075362733424581697067942592448303611795368848823982762670835252615873202690317544192917780406336020868139245312673454634930459841810602261278152777887563202775759727156777102512751004307432010228458320568299649016392732186119995138281462663466261187652719443893109352868775685976852555785514516166797685047145188618901524672325339276996888219883849863727851231670116434080962574102822464270347929030669601753922704002466721264548367983856849382526624678567546604350820585322331879167192137350754162045460204139322972355415999294735537406325454585720566064601517854570856466284276386526107367375597052306146418662858343799780302539932101865529187945481125894489101785269410579545316851117564788936656015407880007107846697458342954449786491747322763619443226580390476097556956480111382617836932522630677527050328155176902783381061664186655217624675643951925516605316901003698125940771352289181909939317969785108004319867091101856983902070456694644879511753351340428351570994566176251744451726560298020193252441485667724290435510578190293288113799361673912148911519951346027824671055168023619991987504162085809951172700167322236250093601713976584405500856681761683217951915928682394130324307522279288366066276062331803803324168562242346708917332863721939968218015355405490677747982395316965470427863522613930805270936471233026543789100340970617170396343180377303508477164621323595907660439069874925809506115736690384500833151857706263797554915122189144214913717966187453907195613092433733410203245836216085776543681347699727794470678490105350523707802116545363688174489490647132770762278682182776826403877678915336799236504383417264260736917403655009459541207970513603600402961650033972341337073827043338496525309427348367627312608260586795932246884488483928826057065034681524896473762853810826314561752312286054244429045914189373546392434462519959323521491516640013341528919609639316462503643570314497918993089575273774656296100312929032626783174050517711059579075358963672978086147729233086811097867258174194274981706008371169909172003888144325115371985899285566255713255141630862579436446394173768705022369258487287256768559652039645689293660582114721678338053620492382433345822620398353095036115090667841014389430545705783340043499872146945178433561044255444882151473832424395612153123231342164507402696605873915038592897673223266094370355562681128515561676521878956821212339876159932505000798314462071129490697246307912655651556962735375804345188783105872254543440791973643301748535724055508317645635695220291452269215149577140007163633474168393599180387859058517553854896973053843965532103288229154790479022509084220422343879397593712006638359233984569797419500926368246558039833124655694128203135768953564533532232597505384824557648964682440518323449088097665072082736083310313140105651629118374798005995214813795306925695549231845685031781875204895936935668770345604671343005737992552711140888229265630637591636911215838712571941777542266685983488068304645014328589550946949620655946704187409475302195698954114829442069001811044089715098030354575439021159796353240613775555003450366292500040557202367818572781201830896561953996550814372238614764333695918502585644385647349062280520585443101843465275729229037371198442351934057290975891790028568454656828577119607577331235191616769820118099206959886266766447695522768409677941142255455924135801788045548319995084374634049471911704267277046814958327233095125284785148227580796818660794195148329369260097541909896220110671555638830148499251252686760538907956828834016727073400913761282292159947974366495112114287750894274734488467146594387832901605970681924715519926544327302156374498446452194849772252790354501301515860210558192874004125295737413835507073119433441812891473149715820414084720675717955891293287186341054282889216896439544450182708751035412873053060740352119881662009761564260576925322183860096508953531389829022898710320969962482256060175441370350286610837413811043396563834907249325097199333935602365066023166882242086118964487039891820803445399911535193415856553511287950564037264946438227838862962364712497423093197695847114475476966492018480711589614941699353788891855462254366352951777803066368332266259391585886768386468958256739819653968566306418043071699953824785728774470184010162235864426255419125638414429648608985815005563886710648775173933920519984270713121850148327069521822024914525555989122279237351850080840527025201387058945743627042841957521090545689863587332131397403672617579499847973852341652999981581193225403366242241786877544110751189517549475522849679476968964741501554328209569170041217080783204195145057009582585213555998795612634227976508361357661181013164166373274781975151505652144208151320670211983014082980896095512400830611334084908901123084813319267072961570773936897918771605268766875853288670126200180300781155995159180943607402237508870328876229849189292024035454040242980333820636199023005686969733739822517454257465999418041746200072000133067459582755503822761141806216503417843832240772201980897066482386758732615947257069928464351827011919946354615107442612766503601384904635842261517692712443042100317666935743673369043687375399147716505163709933385644950376418481965019761919741343859093363010461377642652634197208959518373032978811924905672868114720417907061048067698813702536481713692657087803429156984648076351606943618595490881737282642937029389029022733676946590114166332287201827494836641434270939723884350850773448513203098571225661512553710344763230250197341124896347305539856003723494409831364050645894029065378454936293052929555905646935818350961391202237423702253086998288540468765980338591321282761203017842880991438317499866692653560843778219543758782928835653875098965309183114977277861429164269067925381667726161003391361707729744461995480943081025299422728872016308033868712769735942605374954297307868880944856292313352947224586289758171085816245616823882206850375844058892545335750131108307806223693966628472216813483445890655167355563706928892601641289063192851993310752883840799747030443679026001986003964975507015248173310597022323084754807345412901465131086298444407400071467705106223204916835565928951501052088768894461275543881471895510169519418051723210275768929894243152971826963155107623330862321588641480560461184305805132277177938426163453523862634447825149533239475115668175927788245722315419109791245990983074431253090530536559568628922986276331388024302088116066758926007209216782251710622121898722825962596588431138559805649306211887967647005404009757329525113266101350170240048008459561389736352695984656115904174746767306420402093418823674254549480001884386894183943014349153026907555150827309348722473314786146599878747712603535766433812902056198397303996680540037100641838157205877632195965326097854943311712729424424841045807715361203434206755429628236901280804797403116060827244733917599859792647893517000197658965259017852016802892379653411549320577425864450124497189532049491242563084078028608255446396970807259003093619272010019534453888178482187005757155969567250488689337251779126626427584675285593638032563400696574285626880947140732121963220909342956138275207018546130519351925981192966195817958920712600380893518256133074943859804848931968368395342736062238982202100741791217606654070069296906544298108321809831769792399075992457822494761185809310969231683749052255956484611243970816095804316484528341309230617878699960883887066152335817745815830944902059736701015532399351395189002078666269476778367667798960474371983910599765175594063818596009571367146467719516362992760114333116001284360552416510613661654909352369947392532868842787645837581956329034338929923205265477588546924664098480418778921284709450037578503333960221333766274501390224091273649901009423272563797029112600587649976786841048582892005407399697344530872855635275261589516513597219353412529364643414855423941102482476974406756576116179275674054855215370900700623371391641918212389590490418390717912399169599028593299264164333431559427305111433740036606676987925531079448837487507065878572583626456685173390067614108406086142900166547164655688898009788649913160035349040285671318562463364562738061720400533163411552102933866747796129103118431672770041802762068534430160401522602182102100485238865928502010330475700379138315386144828287561077990835298925851329488638865075254563003627046810312557685193323525464613035320089478432171794242557493859988795652788403819757042577805235593119383007708536921076412610126866335717340016753279587970965486552821459722924209139208959527589167968580499735846727976592728921017471237527585277734106615936341935826300705032840675559645142796181503178954462873110132576646584990469641585185077613177118642751483176451992941229522096362638766789099091465933896183144177239341105643037856540106320073676332488455378792110519078238091198238038949699884866050336936216311614928359728820412603233146266395079933484423750303240666522361843832775186300434549003103125045136988658520572117927518567906715652598419146403297067464884744556086054134825567937724047405352116390479122158213143383372145150868911831031800047215697242125337855553668162603691104497071741625713376452397303573682836250685670789221571859029564205093443708104059705932477089321967992212652073586009351327301169549312112025532765153275529357607633078856467500798327592620907140800272539126294067125879042632950611484404759954003337266994655037633752278948921244996015512989599616616790914114796002757624967905355726879139473666075383548207892221156500557983860425013586993933569324494877398231497542578006124767988176422050851456710436376913039153962873036587955257500889093598937525364163985449352922082516010183531839150779958946507788968002477146912157544967167907700513949739993467362007094174166886245028958180957691148010881968970309129036990043508745236027269989370265422020272516106759471538191049167964024071916911982902696496809784626037450311596727445197821689395716167769487882798863473836624279641263837216909552739195275730746233271795776640861279913957737097747745341093828580615918493099967067427374326359757525902639002388998338483380812145599736256940403112875399521073711423235798462276467009801891643662839553190475194936019791044781119539054151084279473641023904515034452540044896916320962066683332603123566285439222730005027254324837582406571496750993231533964450833877834983371185540959014947147294312522476917667167008860951970344454724739984169037434783698562258629979291544293549278473033238016067418994483208330184233702479271098702383466359481543404976030886911858357447197154064613991765216050497433671315111921813972239689872410956826248169061324052262027972069498232783066012388686034396238428630051135464115558757048821273740174592886133080256368260040056717671277816175658614772381645333940605612933487333593913750644859665377126282874068325319279505410076173098790748595590202892497571620771732673113878311114931937789464890904439775761838310952958825819816497245703954176818788063714822036948973830272311520786027046853477133768969133338372758770595893218810269203579237119994938493243778887235837651131086979600003941517403121921931862181881151224650628164762237389868136681772979949786403899065207338441360325872657964901541617841932739366315729211955218368091839882845520416483440565203300303416741120151632767976534047936754483449225301110239267538248305789866591813896712104167246060304294352036387585970688208942681814067942117881978092144468338213973854539754049893411592676775297903519157556945764122435209887586721329460914265069902628472232440276592228244826977977105428147674939269289845027132825911709587134318013522452155025149493080393957599576762460148846440272713600603243267248816425533509450277701518382396614100540223230765341748778295420449187704637178096120956714245710906948522285068901495375129073634785463609603421972920387323676344045498704363877038544157540299353437070866655673862586899160782361761858987872868611417670779998592084998457516478315688041329259152564755985652738767676302356087880146902211875305388438832769253502144266019417412977078294863373072432949626693230822441792077728384093271707254470213098684256144319902808123472917012379429968999388706347906939912720573310727426496065319711076223639476114177355767825502238698058620240139590015174624215158224717201954106561418445786101630267607249340514230464791789441088779535727983413557647868338358171019574335031828736009304045249841467880176923736290590530161932528137351794229852585469900281466654047734019179412882324902614929604929374297377729953892046150245881546985486647273297790806412487296671433090951924969182513585908251479431930044608656937505725387112907191327698716425233969760827724849329340496513384690084341366851041331204335404039224496957122010008791322478789340878883613317525138774590337825976060006049488998125637606991705133351433664031962935382633180847968175529618286327116681482375936740733333022509172966600942054046846160223495796531558656489701118682547838870929022695161937948140252455504778300477862304628078263613562957393795186431416935330525846268024465419341050933658997556128451573327777758136092053060484127641085796531172383193434744469657743445482780697155086613496014360545372437698656117453903751258669437265347311993761853933847302712349662600060278657066812678170634428095657868773821053936849922855142402571460159253139404342078775179062778208241434472147655619002305586776342154001908431305932127397423909917556543218726181280667638993124770460881070954040804585195855635687776404898512298151165802698274521659535934533221508130240320875141557308587958426578775657673780283989047218032228124848563062624022526037823833687547875326520335611825442164567199267544776636409647164356608582478028593705606059260356049285375786491896320548239558911591606279164147591828872336779134959319434202930661106011075477063740967857991029349967905985855046901240982432396276312634389937740934762808753580638207295055326790003918969512881693670624199524498420996921327799037964933895285670839170085676919843015550432238144928476291282254911872762156414995106577136045804098847558775055063268806963851366942320456445843829784774831464975107458450019431353770296639382057637389807081428831889741096178140478658877934224401330774694548640447440272443683190909128466219749481443228695551496353372236026219705134206897158239280239971694511359354969319183063864364462930436471032763349968320831081305659384259137728395334225279253785577996032119521999366109471359991813348700949196596982570939873541416197549072749715500887786401945818235228623883356010591293464486930920684941917751613221509110960430347458213716298437954304346575682420066442652262860905747803573264083701075847131626090681418257541163011208689118953435363700462098644530849426700293376211482703235240495555243150578082492582652396981710343865667148556520218559305179286098394246214771339922135244448400844854846002217474583099310008154557003591446361795111974336268756003148178034616341209588558597957411740794466107732893826426760935456894315315315519402185108334433298836098434244372439154921429477051468627934752931685636991394906909546184022025286874915197745494930587562201158189310805786419406173121916489453059274735729750236955995295445400763838645622404281343916400223203081642169726541310814339523815538145675635334913505820815448151361743908458576464535942446981581704368346137602412331484480856903208622972836531494892091827552041771718101342247712497302636054642930099612023399088473531149494110088114354815935508103804919161812592752452799710740991347195981030402789735875116170099765431101324503416009997063939249557250251032243981086020797407834900214885834014908837160530956136051703231353411846311014624352620243440744371120753670431108957923879536288571373585623236992857392992813255781438664981208190374371195219062021443502758679125567864518375433488793480776467503630315203472175861507452987216313996628895462520264447233453437020265579494850343273313209521366586037963922171530446276374584672352245824703257047509843089902685360005260797060536074674282361752336037614107134660332603806707802888064048442906832506676233505119438412335953264943889244793122975356209743853533092282427858360289370180294484355871483432982066111912571821222970948400133776525410800997963000081053329754910001427817496946581355418466832168067042955292658663697955157169862260016648111842347477515678331670208967455867839839114962913047240166367574616274562934606320341241949623995620719237322093992273743457247083538987305756149523199747434429508013528211996924245949877850799708213772934304148810135939717840020818973088857603060574415279487502286365418876902806025708170695389821851392329955115409445881743522604913788844598075105219358091512464171772757611284857165360945082977904318904282157105659078741834949512251283859605000789819426836547260323502719535280255935702189982999205778552295582287597176402376888276402119419628653131576901246906835183842874583328225733706007878777465252958292892777238152492198010231452843793105419197364902726482066839601212724755101082738599042099020937565598763789691681541976463781927672628345049416415532878597243189917585315966520858407506339792508650260552336226482245878238412622872868919001301831589853448640143155362781188105243367406759464637225734709917820316560488459897028606727028207847363459693257452302658936014098849588187742766621012056943756938046537305915347609535329894303579719438460648704421523256599029518365172157221191980280340187562529853919019751963715495644880072292438978413915427900039929270278904041954467324189169945907854385007475037886224573991451171151401831192398522008676377639499987856132542511920839818497004145607561080228457698281399440428312658559330796227342504880055835882292570054059722516727236375978389587207238745975040062947645045994413535357524571014624868456768583865867052515376955438348886786900458590387001091857874225616646431877374969726322869845263984571288498859712343054012668776175913649856859139535538628694548204880710531612618003837881563310171621346807428065995998699805726367649191434390467394210570566309571243294431422304875138480399998623570829931640578973440831521493001408708162304023511422066426379793119146255259421648977058066714138339677379697324701804947506546137290679091651994173381771369873706665855839231796273985919142546417156502563427985429337169402473598676758559280320179483109058537818707068756584261693084208400589284027038138930986501898978978717272632207649903106263386592516701026634383608284800078463662649563138375783219327891615104372192940839310313832548903457635807820306752890248688075999236992441450806700970710588019832916361787204039154934617422181239903873677568876644941288551563990756185267585350223894487427004368388915380913781608007513503253086336745078600212017750803367615045532571551107524280340642565606768015498945630492312146192585043432293369230586401508005252830103672163695377906948921313853879870721830873390567206747738134709623161900939862589003736897760409645373463984350438292809218734136188692545461079787062943944618861949952114859848665859658712984493251315301665063618599300217213542123212582544210938510003997638081456580438052524616819361943460606218954489515359507720656370522418234002652154346813230895323994716379949334814792286890683271264876677370490924500887124551032178620016386582658025161406478311624747660701938153943626381984873237451337004377496320288983910137620228713959166303244856953095994598397469960882486050275528551274081377701232527378077467720884041543888418817717228875938492242505606406671917491878965761004366453457299438961062222103706134651317708370680120622579543465358693683037710549536105499689107322813257888755686386814320186733019378366650435908820650900727612305487605328778563228126992075542184384547311781531529514756654948574647783286858904105037784277981254348301877443873397417331102707522711326059436690482575280376052663527883685100860721692819014824037570915326218193034908440879907771316229599378610085966301377376735507751110582240680962500678033257761546182807503998679364595160551709449016684945974907708001777481543575770560346503056909584250486482891163229589826133527303759632013503139119534501484363625323313813832107874815175667909305035130913505810944204810792323954370024312263622182766154136930382848211797619079949705650302635775891356699349990423815169124313754225129569916277716682035884686718516192909578521312992309342271700842195569781832843285324588901876321669862437716986292588004566279059843043905189818016647621254257346855993520495199455803276621142624786768720683724698531182408173660714628136637234486083783624363764505160456661523468307203915193314042143121040408606935468770754362967628642012430072347135592756705276639868184911531515618687925247991658571443239830220607349284350450104886280910640690739570181154631468319884628583069455615703853498326741355146655956125717180046361997258998963572967661122663643120167265650298407621498431215450682280728585448479550294168769019375335210996015423361605808668150560378963629095912759520112777759886820585445977071096082512091713555802384917416789874511285831462184848712366594193275480338229434431783985989959720926093248158898388519544882081051629476623966221441905852246826013583254209567005794965139067125717800637868632096021267697414675864058919315819112620576550759597997393109205078672790490598166820531642139969726242753123734069606708863275666874889033703400435846239723170713975448320237164715527413455175343010525955490727175597623872211229245449550333060647175330095899409750301857747704398500911068031735859517093469182085273659893266048271838489114895421737367761783586543416829136398529936312771428500187691413117569823437685275515025267623131588251741743444249472572113873965148338251942964799472612935930847578811152281862898060692060118182531761420407290159117813314953345962457672179898727313168317994633426344497756748753001265040634849735815259513071834396795583695706481072149702354997769187529967776743981441629634740471391155001854510263591628163222875827685987676997045517996012615453761276161857095334991146150575395670008462517261374952044474860588750330047395957781279108394859943721272658777628993188145975900471021840186211483746502534162982769472095898646063012440646714667862075873988049205272111048081918430013738350442845020754492846436036338561376778571194877926145559352240622232960055566472755635202332453181931789181561008103432613069233910576312262093825248679209408179917276636014027157007779225820534957584754804792419049396243280488516645823970208757279796794450009905768508596448894341705878574242510073955426641088511412521927836683887771993230226744858135357422685672465707235346855811424643303615565614237530402775924490747843315658518670843717434196400126181976882860292149820333956120983096279582234387851938845109339401819962497344959432557292557868876940896352118739302572715811767745602163531677456213795729915698049485619871331424806050864127988742039375631537194693286389020823855956373098704740548329979966053607458222880929733546151711648332533788182730420922979865485035444365654702258410994418400200977538567599957452510798751352386999393879207961223959211985894089263951881981869295122746063199828820829774277672227610441976221091212070626111677986200363135623454364158202893605398928454350418179253745471852701046072987103008592153981492466525748176116916535121009921819252745837435268922606106642565651879396594635959794848036815506691323535108003217435629270291651553125531895989528080484191093431935895230571366739232039334465300066032956357372349940852116790377128118661140867815635370379307366334017043342470495635370134265935416488753834899825133887078707256679425383310587214636912283875353049495529409403706641107471834275774727237500594687688067439439948576673183306598288507709979662980647987305306366828967889449301843377283524068698181754287972696377388066213452540621280418648717271943033798583898754492747347723798034319651329884227640610090994295801736755392548955644968813689338203742299984729276971014246872905817660005599544472773712072805576914018866030989824853244534138909821067030734037608363263879606273099856421468815416331616954036539544437328615039355410199645614277271233156950605089666751728049572615564797910002184474691565282111249342363362579126357487378132933451069714340693898176218653449738326904424575086335722885834510755134414549758682625299693298829459455337589808842686211558758630450864000196941508392057043041293617381782033553566058868607576153919964740821434119628010682638232093024099683340567775462548383843342256596693248093075421934006199228768839279134796837383738853232486025410530428037364431873250547224152860270862929292149506712748978109372372516865940947940230164828549395696748756111360042757608804231532006911814179078127565406602793342790462592949429737991998296856117746535719746153637469701340012997844429933960535267572497731797109223785533046696890286524337474994156164394459892918718339878065732562890433237590736474801173009298160538684909746121049522497553960635250695818521576879598135778642766848056671268216942688193783193747450879725679879391396444528238791317311007348060449550550053795806472509004738275295185756080892446351393062433199909687013132435356590061768740767259742180674254288679595862488656330332638925854254474539471683555011279131214619831417635524471487307559400624534031829774233303479524015831227607659212183165230054835849959534520665454303027743753064878194371331063247259582960164684715598584809622271351863662219910274258082770856066112834445643742871382213911396228420554247439678371488410692041544299098981530977076066243360549155092252348168738126897348107217650328556686398278431478514663659423299768667168211529165294371262403378240773447299585152773239480501709439980300973676960482604609818977154546668386835390747414315973272180462825620209679951035179100252409611206552734263273260885722702674778117192100230309867640268434018803741979602629592866994882890249754554769511220222457720085113232976222148930694936393143900375101442972574897175573339173093633167146121043633538339529114128690347309478726694856166158022992919808226621954315577744859931588094633334510885557402474548746787332625970681702538241028080770777915130827598796648166606889391574088567336082702600744634599256906591687513215007048567492097264911075941549424747461764026415551698179527907042913840249016457927895139266585461042444018751534939305677975715104819761700113643528641317348981516475412426655049097193557895696016347287905797613278285743585078227091694754178344136693056365695595171285356536299106263800934268302915913353273439178257981087229023907191007631132882332937305891179162529939378226820712796133282231516019788976294672547296975712592193867022280926811905536241500993268113248045759686070686635729021905318224426231673209401061346131406918529403298639904425558872637396218693326256824670633185903844914073027367817199822415577943582717477133133590466521619802473435538255359788387866387566969286532381957457782103493317383517554572145996952544396830297026121275067897150402817841119975554869534281906169538582380886470017731757970946783355016232205487653964836319548286775506056356900617940845192401656803742525067328088489107043517526453339887724177227085754598994210953111971841944154521628805530169001420190897555624135136086906229864253732636530487857631835291863196664851389942809544712147327369193728819468791602344370305396501269399157772061839331841091949042130291141626258847128824678096457024040789757708919209652860349748486641588090082596038984349048672596984971740120395690106423852847260389174852151138914987237606501312076408258646651743927054317101308008374761816169219236726396239074687942990545122216911849843211439902082972143062160420720829392048478797828121656578170182583076055295593011286641623756742105307896994189789149808350253000310535293554029334492739941678231621659955787533864889448021112966080186622785809400591266678831127677660206670998102766243728161389996166406786081518472070105228561803411239816919976218184660267700900579997165880902698610527437879352619464134289413837878253765536526981935926489968332653515854583885233607582353811967750028129713348945406018325701280156931239448782528584490746362809309083390973290045871975837481912217790255301827395638076674865451923593416440781166353376832398779151280340732822997542384747314397605358105264410480977015951865342060219489200958359534351853658199745900194574114615286981305777010885115557891049260660967944337270261670445260122650152872064545707680257192551418997108397000444633198189981906061654403017213741162796627719466853829634658714845821843443880403749873931372311756014989083240849398156022443069980240915862989993316010315016832905208284950937640721410222656765979619322519626867235868030078870195908353087070415782810780414352554812963913753502270401081763284925094183899286522436025743012422375218899734796699103652679249965074294754749287524985807570850400867189051971633194974553323594105503941050340317754860912985003928591601902291855255370047776476368143862250198010066662959119882253143134880961358173553180488327316537448921786282707024268265717108068594757759756234333128724203668169406579088208203493977061382861537009497497528441672805340221915233011644957034926780782106799640502520138650275269904964630562319540431250176792833869003779230576172497660343639837218838812662370512033601305167736164351571881918264765036710453246812330704428657120150248918194572401816642877004594415222648791321633116837376191853789449785869224616740043798795554944493562580405635253614436813144548336048399095111859289138966030809553214428335754212070226052597351126235444949026990947091230903300223784442823020978052640070908595776766611770659225645310825250749043663172223003273655415996345964874549412258765716541247590002221238156092574616228592697999125336541092522542547892764958886837321639671893128943658912893671987081935768816973488263221099396510317798440978310221288101872356041953590889184836318842713943563833833033227472928865515866427362284530107333405464512706221059556576185518777479216885685664371966389295451649893415150499912547872421604952790922421969435678433308360648803348943698905165091908898814560815236948903477906799813820448436299859082370979948522744605650358353477042230715722774631309153083629025129349396078749925627344764794375419906239903159271420356316194940442059876478364932340933646771965017400963667667763901004113842393044766286304507847580539762677343125588024355821112297427622682867615959356712519256082445802430726932869054749248246466480882841695263579421970908634357043569802280481002240685854940814439916171516910344034309437005561248461548180482725290509993740631531522481570069510609392452673004030266486825380680188485253777100312579771440936867163599451975528088860104743455410761263889570362761804961230509873127121999632291232544060076998225427478167609476912069946317573818365881537276639135117531139667003665126472675700579576498308955799520799749320580575655461712031772643683528125841140366872575895363965777099645543014857618556783934744662346225846617624368374318305764943164100762854929483054683940239958802649000017712076555985575814155014469479942972107904860578558382746952691313178314598468109843620037924118194731917879008750045931771018855003621796496195141556273105770466985712762512095328569116617042461577090605239568368075440698421384666388790890121768102159091819785200570157866698402043743173360727707345639159538405246164945267762738097199529254931266653607941641249382865099608816335847442873568204211404089271964712874000130267631230531160642972820894147461368966871424860766211498672563640173707535070501850025657970350346532706735168596970815717237347310521137201368764548350984481453127153720990491323378174908463964890898807960639685432312565814446149096281188559513439481887230245320303654049838005444930501630615675843815339590517720644231505112890098989807617228705292310264299811886277659667376046826104753608994015360288330813088879326109176172247577244670215610429068983366084155815071782251398330793499082920335614099318673482540641100911286717577084061765430358675886446477018086585532311869034394391752775696005150338768190148022208616415871069125229476057288578553402125332836230377607395516350284029734043448426405953620291112212909551866417342644142893000235754843079100101006158550421220716321425253308601199201481588949980837277342003868251207001169737920415489461811729378745930044442393671103534766810025454268792135120054428471014142537903829453992930348832582176762908333099083930914645080092942891168846503513675900529271801363944279425323616319358572966545092485702082288245926983321190597341414098621740119709079231202463697643967791918423750951579278224029875369070817356925473149676173181403109625206677339013184696695121910730657025178611497562668712244690801153651771143903289968942530481811538975987006006837323963098072477981111300558336033310749305628862481444302384330674308893304788630976651641594651983689750859075478539601123926133830365086010409959902477346995816829424664984328881211407944494792976692186209466029461661501995490106998000929406716758503068315971943082511686283368772727191415661859629873639074899297239195987185643573862445214852544510655190494594857485539118088134544642734529662604939599203752995066741168365505507979892422175177911566501868416730616651268809580297182056302251243883245136259108688395175498015830453875900766580575620029717245649850152874164026772956169522251861722049332173919189331591922232495755443133518106203031707563621427278098741306811279615617824276841118521980079387363645895634088238265107546002200004683155772984347411214558774884591587907660234710058103707394407282491606662440253078540796297682537324027688232075777494101440969249051313310849263956617170812331376740447137951177264613057499022561882364650913107319666474619122133320025016859648220310401239841969919557667773416730589384791811323608811299718663666687639577714785710033047460530069927001407025820723445476447564673645123058105253022145592694388590453923134128792828546417372973508252654178341025784726360387352108742777506317293695479084814928022950010610101225395720418121339991482193730469828280252086394903425379282962520836446509298108681749391104622182155589749043952096230938111403645648151879949187565611982132311347382169125557733916784166257388488999096652832664860767978719427744200231879992234444931106537299316923130623252188114290028741468218742458361359526451161251803720035804032246212087692729723608258371017047703140076231323005053194858046208265718447108341544972695756043881127716401097686727574295965193460908688515211888060072969099806746729036813474170823579042532510324761090622433759958854928435135296017594490934362109957941818051597429319178397591092119967524648715819385580248541929786577761750023064580105525961088753457854889899669975647558745509819482411218081362249766268908672500007808611491633059468043704657832555991207976539899338640650060215093444155602116203912125444346532984045276196940421028122427683898963684917766121530341920804447594818938169231220876323434724884504540954598283783608811062466932697040521564263776048900636122071489987535217234887132418720708116975541323673252048466016103126745859409061095095037232616349325200167088524476155365225026752891605519396961361384003596840565609244249235125448360293450140579367159493711002130934526755156398281603692521459902480027669634817784106214341261364233216711025302779590214946245878675095287809997622967770449604024888567313862844784198772512218637106345810305804706901506493639175263556184622472232930846578772612884535531353027091787168270491540555060473282909112036812195583220596799041766045059323893615560374681011571154909788214994596298438053184778146785907248166391615511827298633362816641846956576088015874017934399038340949260785463763512178754690745586350852200730678142334456945039449232517926617152426556701268096553828420182473960890611591325396805640055054400494210395725519761313400796540665345797811307472090884575841916100608720715816002346185687204870963868137931235882563800319259637721613477680951578378846238448852913900736845164871789474226554422994692237927887525100555711435659565183769794906477645299780886027817719400389062284497839260932651129353831763879533691344721296639213267012817452440400940150612099908780616726767744872737165886085017639676841744154737581180925552701820691399701557171118789138989779930846126350443514118443354280359036908522218186845670061571492935140494811971921474860656204906498532270308240204769646177673219116418619953179963814775759262900699877819009441143283503122030899769029972453034439660481177353118020113411404434925280275663054892255344563382531836911146112226012357574616733316261910247596682677134817708817917633895116609305809811008644486451857611731490687410458782166684668486033511977710567146819072246641273706124115310892280369071158879418474456537800371774069142640703088593415783477313005860085688110207428906210593970688415811858349552531846595761024348483872990474357779750206517919729740127456575342555101738739628684926818888227768890327172261387199005646859642110977378675457896477771849040566971825759238995777855930748527657622442031227815188100981073243847262398060049725819585561065770591946033316815817918031626467732414778614690104140639661050012848063477562328808816588202807820755649416937812133063836799497320486154413320354418933010022708582092404353794662571328496182538258245657395810907122330752090865944316997749394574972384976314118729184156161175798100913523842211356733112764035235908423540483278427468659560417042466172517666258936519997602166408878931769804665837564344702687970120846166539640292518081028633489679540660536810829880096347186769168998143467038579126174201365344896552667870070693595974165263942313522764841211298812296641559344860945649850741231479787455542204827532071688758983531334760419370871769111238552007677815181692257743112665627256780338326230378278638204105326485818558612112657061538519948212372129788445538695711408008415399147689367378574163578312317705482690140036829200137587195612126032760552657941431408119915918598480166344007877920093771170034140185105878913992361673232991838021704377175201474628662386204663276199233881056354580363233492365483861846299947075707572910854473722369569862433539468614569728919615865286950680332485588709004386395202844496770709229944698316785366146674119392885654990802757849749716955644422629913063931046372549871836513884892119862966106166598984237380869082548352975186143267300376939173532141632224066703032444852025337124194962728189537918658012145268317362708433533655222461688397651145728292902348596618300050747431169478186135608107932569949466580036346544979140095440417229958080166380831676539555173056499702983324003748261908324241410453005681627622549828938505418866342501540474048785324976196330150911524581658379175377665195672460082267467516682674302156150674443171296590611886999159377174300193994569951643267289409295265057108001099518145296041888025722422231227671554170153654725803287900122605542807231815111292781279179119879476083272846510143388105944905078654848265745546761801319233784316824408587240988589890493052724295673350692561476279467767169787313102769696976685795306242492519965159118567134945683648784010696209837956871274904614724868616417348875631758661618010265655327067090552084599418450072017583805234497673767986530862780438016733715070210551594676954543297817258529315161039135247368027505079576506380876619835576217459963505725280973259800071563128007582565744580645662531184483496762863889321413524427250970107891948991546821686429855062606409869301684610764485890589129711155764671864356795786407703782827768485478361723924887116801505512090257075615197945733585786173705530947630075281042513344471706867926710443689517465398362401731093215660233030477620432815870336470152522545961870119969280507122138748224683822120339247609247524762231236762093726897462351129593304418550161105417904226986388425826440456569538702487381317344204398170993112720243417521999695408750667153356816327284844260424230856413645498066801778943402930266297232429770882176600032868241425027990675120520143224359055037615862933825608785928255461096655470977767511914861453443329863516693833656994842381761154887022607540581391567473151451795180878726262222317575662028453722653184610904023375138224205927249763548750842234298545621246828282740535389071102597482584799495790299364980036532427706890839036897294372025420750631425683040227390168215457835535983648554155102749838894116078919616169270041566226789496914443163326576894629680292847220185050473830397531188915723924889579277891401531049797824150846277834673792158108685095264990060305914164593408308140479500277058157524301715794546506494654565654705726057530094280300975912686503769231770687747730599277810326757073741625788689669129942457062761808501467234646314038179826637170268312257191831303994341354949268438261709462998341547120020944464998463328334673752380000709302305133489278439794938061778489710429476416458212069027386953875525535923255535857220428217322511539627576362612515593622922391466018514959968698794766728914211677002197847058846555019730188281718152891732006496129224857363377438670442113021416611071269742241558901044862709944110100272147368117291532962179138711512252597198137958732684370472237569610462258870029124898463779647468103519106477096390992028259076625350100186797810689302150636907645694227941131137951732113482162858709518099253331579234106333461413873623227100582128886068039897482334542492079876845986980486200193419824813202030292588688974813911890898992121873530457989913912427260156125094595058095837634163025680579782937503384666751213313934934124248276717319951971190702436010352865325375458713839191501991186224734246448914182994615965293891104590737013667577850736573058604389375890561683129262401353977067775286185831571460916561993175430177785064484591529808262008605886608710770365963378210437961508924013541444397378447674332253273782584271501369165673824257033000418448668286333848446121338723998144868646098627915119369530729793913061071207925899776199416044504874682153334290314917165203127862695975336182391022505798497443119868303125228805431323043793160559746367661184565734381204872528442682919809764949974138259657181672433369664888672257671946661456989331598433371150448115433066823654587407136559197138792766372126519665388674544889954726709791810885686666262493699751479699293770466565216947236622593595171908109145748979513565711970365733961023648528389106056018698157048083443919222479450231095710985123245103362881137127133186586446455125814390468390955819980459524172292866034051613408412020258778214211685531512959922749740600108992607921300095194960295154798539529884429406281499632092001401157518885688996102814066790689210795618839075286506262120179219843465830297798356480476293723927754538389410959231438895192677575423586701373046688379709572250419836108932336168871963877348930346704422905222163502679632363588037468893451291292581841415732503778612076842278743155608837623250381016591092568992364496870848523719045908846321253733430927758456738183996481349693670685876690883045111311960237440193795883601688196520940478224067499991768483122464600933803256304781620808126525024778365703525915381342256118375670458721103020467742568478643364958808849848979276798643956697791751698571966560986036262145392998513392270702695162166352538653378105313596365199614007000821730780676327106299388821141320295121797855500671772605869576182346861421781240832614248182232005395621386360889827729725366621811533958653313393888804893412563548779830812483310288177058073486402206789105069237800131023771945342924359203970320089511437852923559593858332356794909884148563972278043636215212328943545622829626074656724408061789972264816243454961022107719319301225462020630211354383271777889391144601159405790961851656839117529745360358455982624791125136024466946807864641664270000421859036134664009712452465443405416762009046578825492629104135495951162720159017814569573511851390035786419792559233010388815644373956760483806230340536654263243087357843145988388590627738745372737962111570709378092458123215034913012219410149325043609495221672119259452893397832932995974755133963621796933005271413106270755886993499195210594432064516761815336922206925448682810541440830256572025135805187138299594972382428644145569874492171166510710272432759641724772955826212212630311760351663375712294121124691464730965854657443165401467556079449961730664885010464250887471791934008185675040318282133025973159835648817230187919963694394166670013954833376576218807981588320485502989690168747017596559893736934513914980027337533993758113745630736880349705213840235085505071103081717161927047115057668334469110659596403624848428200186350272028768144621011225971137437557685551901597145062273535415797876564844583024153395630629561615691214144402241179101316892970287776896627544711795368774891869003074180035769579791535174838278700088536284074431786174145326765844122852762346687598059756981968448788917045339831719190937172193388738471726497623526533832713239902481633954178224745578444997655651975652727624212520715342167405949551638094881846207332117850010171923516165185147265089230877781774520145481498909472877484848941057242168695197608028776752238106049298393086754488147939453307417906776062100879590907203947028149610042949302195418409212534278699994321594588267004020205742055325459180019711680356862882881297868645251021296431132142914923660124316457999232080644881162113146505422518300721303400778101818762254263153190409641586744910069333448049591256824349457195342302752664603017439680002144945931699146135022319862882991863838036096817058327872009536198221206312507410448950931334237433919990508262003484864257172634030760713679048741509011967186372385035731984970921776523850137211683350596381970963285183338302796788393693032489524119127108584811481916886315051867043322660518269750468841003191803360643409710814345434995006327872676054479634717855256347464303543341644588586037061467394198460100547636213312815917438106644875224224894300850316351012389628610307817630471052690365399868235291600247793029003863737172523414665916924015131372737847313579309365458429571792419653750566350645954193992545347816743552614028770402921232961356466724841107552017620507820944144494336050000698506304948708398306863762244799147322248075324977448040447701374940733203025347009936051895981269377036496068680605193207689581693084312197386763924891817836757494839125666877405279363219803648989849538766140309228857752342254144603420169140041437255828153478675091996073613417574754339859798601749848536624530483851488008222994383785780826626986366673491742111729089323254074929220045381284017865858653993180559683083631464817909755947235309378483838296438715470087623251412089741821156004439774005198140629498238667072031430558762153278510359499357756970157574902059793382345775418288266334768888299974157661937407944770814409284257556003429509944600769453247531071535655666401576688328376012941153578970800617561135809004345355052176638984871312770823017712045901212408117207391038725381214732446475316337410777114796931773734308844112177702684700122800332589032515946415343068860540917659659993872112295523279195333889128847714093767637106410766236010500292132346451483165340786640634373040077941886145335273616457786423602046048213522005986767896510040161627462665744765453251475897809389097765191661495489778081352433217148270052984482587918986788392449140271051296793668569498108187126049890705079762408186073084092470263092466154240637789955239876939438461385353964155556989098486940279169809284836796340597317815350333916910309533440288747493956487221409709565789344163728749705650397489274534894087244195924462377186586247596080578626776269256989993957282267288198420029475020387931646356994764428658727698431248011316889774121542462349033021103230653537373242055139874965597749032772374627914294658025366103841986551114948100300788175488087772383710699542144033606676378658017363106969886641015750997250690265523598401846559843713523937983737614720832770830456245554169253361896077441863583848660517038673651601806244294094680264420045195245051929971942541722076787769566590073450386493585075284062107017541144116271822412747133438021444318356994081125533036559262977374640437155541505886569666602671336145068392182088730822368426035397309466529810971258387473314321728837056814436700241742883507628667526262909643557350073318675872616711108322742581930811484905328357548504084886778538126695892185197008858899898122883650238116408710394835974094267291359016532455726294655788793666049400298776148806740005858978694738659961466631019846480581620526483356814485976673689291584866249287829110241804216860840823024484413865028113396059773338306559104049287692682269617334620017938934506703722067243820440311911538927554892422457689533630835112169356242836871798277980905617488514947524179173158848493399545417681183052123396601253003571683295263792598471564630697483818724199950076064006596699822450452945563045583098377570860302237342667951508716782725169833587425399738673422713728012686576156233043477013927167692237841615479338049527347752393906400455683706465134500184111739976051099654011485698056202292897014851261908905429557721353985933860229792328900042534360657676351595478954509204180627521772215672756772342616423010870290094325002829155152503414016300551558875510172310097830490849924778866956955111478500560635680318703384750823297857937435936947803145231769988948550163083354570808616917899347562630322752278710934984286955557373677606609460300930547630145021216673032009033184802986918737971224219840612952284842930269063607883217884264891862501192664100070141654424174336971271921660750998257527031904990591886450447172598762035433535494077805187541928776511063011615102633292866458951054104866681493406423133889918805098499687685198052351949624386577410235902232898417018427964309068430421950577655516512679731601607374858439722819585328510359058448015834489869131660835541998512743730219084419842723637540942550138782247267252727051574095019391563584902613789298411422145515428501004346380425833927817047999956041253462877743698190612975836141040365324995098967733923467512116457045338807873884481118229719088971420440330333801217946640963159972136094926449954096274450307243507074191365554512784388153322174181385198009695832292884557647108222400133858426510091888136416450827512649532820294491748994097739773663852075114068827247131134435472960189571960094539737163948912635279289016997496150638279248215825260959466607872918402494423401281076474835061401949513494741407775761975643681294367746595454025115384447292229580147583816951056967096531663331955763155854973331319333925934253821342282947106633628139748372406646587526004483877157981432306278155381568652448307491666518548227232689684602399774740160150223680642386625115092435663252135541320803937248470744819785108713425387370568463101347579075952432296003404850659281601992953334963366239632871710844523850616992657760699049366069579409506825913855503848097783386165526360830827745397662511184079004535475685601734731573963398603106345349632238515907664922346823943311188537998979974595352141580655284977902018757131056852903273170621510903167610408727873635343583173088868501722396600679785967585638520012973943735061589931188430682463022019599327812534165564062729728933440697064142047901616458496394139112317716280730608192102292006944203968439183284664253050723345217633463981274047121646678677529461752186975958313426608908510006326875364492910740289808801040856950404367366552114244398057885525477820563218774948086800271460027862128765669781510422176993961914466044209048150192378620825298258450107563274672994227394710617495189253475898120784794842905074459652399088262442936771808379476564800782442930081577209672045616561373645900862099470738499525983741673501183310102113405716925514207546742939918458337124744053343324336351838268488825506156863125556396537450231839344949071948167782567920711257934451818706580742082987900741077113798721747141672429136430468720431565873707434639412381791127752589513884162112586950476245077813749828385887463366918183015728746766785835980607696014217068180786123182071143774777602431643530967672643896408552067137574302355726578252198887802191241970921971179232313766945099821266336165517044340432679149677959009329631999851351846208318199960161059677270434296785588647103794268735577456690198685437285016875352891452475449413655070903764238163776555792209251131109063732680049114654590351404379995823902336206838712771346512061635685928534185170216912517929803710633202828070375441653717157664152777682837343464429850831034485692382640036500285886510696466397603519114931060437568592893580713239017882445696955927072786612553790766709736127107705550362375527895652141289610042412550297077291190348459715343712403447555251651840708493859427722893446640904742690593807748793973785396226187614865292443354163931884740598591510887615342974191068589809204526371961234876664072210981915444621852490819584053472946761860227746191398729124594914023392505909527075445537303070082251842672853413665947545793597063481940981652175591646975351645036427365090943200376009530245387867743036129433560277518559201215675217703740031277096806345431559084512176185325532005152492871265905234003081546798449121246043212463229537088445546980993350697342185596609478739937217524995932839437688462123028790793786341024810241203059499092187088685562169665957371494871989952433200916413020048241612306678684404128242183800684841694758615710777227366192847473438439194978803214331361442427856459976215825504025848990118635977204186976166167141257468646519794476431717436393270918624011981303489750062329244090636067495991504697166407884629763874318588706137856953796938601118727133972294556109313447377208279507204448298754672077710744592167940460695828320799022050569357367535179635462952767407652673779652332961201100008981745752737143201741820551782294436157786004818440318813627770556879523795694457894811289114026059984608715711330175763015055956219156605393879576036088013390142403964299067029163498837753434875833692637654844390358212802537732547545681693218268811557254275734782581383550228409801018631971500355453535437659547286818289724703903756915875954772900858248878421886606731461511247418785030552016445436559406629089801625299296238162859338610527270885804190065096165344429669468424599657775639924620051394711358171607850633670225908670940139051950625443933774454483505445660476483153128307359072350581859448621968397632750730265352443994698719378789548162843466962212967308368445251231239418742441609289001516176442088309580719127519398554038471113960961085920684731417288457988857381152748119127142501595253196227035331360922041316797292296870298670692384321049199409342584394853361327409433380572344982424942755689047205615588235658126982856210676768355838897203674662814297542391603575372858483655167872660603382664985494766306982010422738873741350582629501662629642608700061462064263879344747330271466347198306351846937679496459624210708866019576672262568114688785716146897350120305536077484459791395257982400248951092045465443798211089490079930075861418802178514774188452880188269591371140673319659308979719820964087411744864557964236364388618244127486068273287408703376577226993445961841868748746151419831867165909381421778437943185888529340699298381134935590860050135975107717848963970139117355541147168647102738824133690176029638386701599568591117659993280360745733836879723301842340570024373320093459393611099060822617184281786120570081835532837655832767180137939003350950572050589066107565349706780657405188513965688506625707052586040637636839352110325221705479635516041634737358678521862515618260797090481490781064808075275647095036616612788574067279496054438479556540121718528057280688990106393601574541417698771655632136280769866474849905409387918692879549842003680898783574172306429099576176871553863177160136461370027993602316534267584682918921985978774918308471680473531769619343056739078885865363285849632237241400388192448770563270514031221180154756910397486311848993732233202677811066397388299725288849115216445514268580794215355938683576480267119258096197604772566948200169881966317675193795937661286890836928694574853866312495389198377424413890147166216952169591982767321417654414324941010293328816009445172937173018942808275752259997748807226723244826808126761344368369165524712888155464696964753838977427672011645094583839201805082759960756386371380169580339368025677360286531839872228558474638919496225229385302638817360732539588722128489085996241186476470031536593057254737587697161046651347639062444275505507869203230380651423652411417876861633287116716550870033835851638794229456141868339398346201224366135523198098918547704660011573646385272451396134211722375055527225165515265751055327446419075853560244860791538612837588395208611913759578387835220802623865793773622419190812816024659352117894190402772704514089655997054520637250775441587238723369899135351362723583106563064241687335613589490108493385354680985784474667698551483675419358476947485259978688450200367575106197291597890655831004655631408409528058714264326934576900963737610796498904579991209565873597801384209621895951910271172012457579734691661268859979028457921773203945994375680510211050375004489247025444873794461321846845933044008554856511463149564328200052208722077746776352294338177394412224701330770342371730033484881387264924462144726816964082468903892927849554733126277569527247088497371811261766058001109040538332657366792519862743286853143621920959888312502143570860337614928574826574707287543190847379893954779045022870976547153109496212244200052999519239089925387316709956640829936519697662507202878836128685326478416239726875924740251618074755125491266959609055539012023997536650816739485597177796660613419292504575760183089405249756405665143775411546281859533174231276016470871003677614633049698781669938207656736493939449889646761540314138274461303234739125221593136560552127917766692864229300008299466673157307909226800045475458552391416245323286721449070835479592116606332096581336510794100187669587145218627764156811755799030596996341546898498814767776107470995323194908529393369614217762195234115509879506686502407101941901784518766128556744138625626801625357157997993291030756293023717833302357112687592002907953730364293898867644705132882485584791126261948170271101858404861676445703123278919682279333405978713372502551203073970942541374967929238599039943588371466113243675569076237410496615227124264041125137219401045248461888527435771925743088863666886634048043509233479529035214622140591388864509206543931070305627460643698789533145620594852181568729472169945034351988804120418148537268261421449192504385213806962020713633111655735652776323562603984008544463981884635084447533994841104865446458902558305191708394302219492049505728213582460957621681401530593859937904486711820702928586705707588577252965535725758792915454598076378139650853101465187667835257317412958910162973155087287266159732623479189351065044011337847223668233792214395726363914682938226295393194851224856417884656147115159601748447030193635339660978523409323829012098985793148644970599494363560811818620808826240783889562911061190201161024293837950843969300809678600435648186232355795849075178518906405167873564335232820037965716627709286762465249429621248925482566111250548888721164602783859714695396053016372591916129032371385926501971789994504150340834402740102017845149195461545225288544545719045655436995193469856727635033817106667979835915187039095097396450672002541274346560959763984876143298424822766688308907563475058859833330829358972263965751175980299017603000591353349340544735526561356895108327109543610076013069819412201191062553520525857457458557902346849273290590130200593667298215560576684950589823221680812761419589938217147830146177462500109961711636339068666447963939978740420227659233509710565993302787668296340563401682528749156699888432808668834962920527371915761559307748147291022637090755497182174164691508338041707658270170531706572211094588153999282587349779537813694891818266858360004761934733758167168444961978508506911361130332585780757208330517734668214078714966731686786728866202654276833871957947085189643699227154209680655594479634587971942948322905729543601240977947791427297437981780233214879624063530266588815592318375154317203570029382173856685827940515563959261120788655289503710086165417318753063628882051930110042604464100285172399255777388830594366352622262115821031065152933825007608501451801785203865368679149791257358951916525586490674594100690773278865900841622023134632685889268506538973227238085427813735013406585615672430553870009241004904686235732117964893332821868910429998311830131263799217172404191415625997099502524845325771973847721158239836848414248088459364510939035099560396701239381088994358613077291530911610527989584829279557401115997094588482279325323808964121158210327581634557630213466777574651783159697830416983473820161916662285219396427243219286178997911073821363135813434243402079334951661531186518205502772404899593119104612715079077388905886946248603465173333232595649977292591156216807073082567330454471764058105338031429699466950453714000509163746422054853031877156961453845917341552973158435822632101385818887335724633569067976023096022538869064216963227066559913991399360612119955125577186046732945359252862029541155600655826475142454572176694752889418478433390686581373772309613718223654882869433290638449835471666495514444534312656551211508429307703307252133320936533227425870536581506056871290930075070866833117011754132931655026131720417683692739944921996553156160306264565553524113733839243069399197105212278458875640051820104881986582505529662395180546740205989208877632882547201787862451569609457981303370366745369748246320585861286237426212768496466135197039916023586976345657736315795853035670149566822154160941410771552089500868638840342368616769892540763606900985846652568320957446299245379782311792847085456154177690952956386916708194638681480070408710146279256717071619458261296331534304028802157805913180498073217505285812210266526206257938982308645115435621615299520860168843737793509541886828462062388505913754243301724006575715750414046786862368792332966328366415136679618841941916038678749279561308191653904336322796039825156384859485414358676314700930108193428724211432526695302254474307134294550270218619539588555877266423714511742784481920988120297690644213638768384107661693983043460941240541379395695271868133276688401582433541037296162269939603620679959001603248332271667048982500375356897557866459901384804569146813509296778812104862709282055607484999433420182249823823248258048702986701701695086027432565031303372078104130285772364429465185843721795198610334822878979826695394566544343999129337123530838391121241386795046910818182711319429292420150591107464636351265561730839700307416186144396402639747039666780584514375598841686883325532596036639048733360488834503515874344691050044931185407765660786662326475089354379824921129893667012441947980510767880447766205818071707268282471633477445368211345345646714276026722472634165739712754752918818648456495608784004854290075812825175125349433703687835694901664856267439566591000432654844396531239171406264035221102526922414259514492752690297350560365205411787590561416942323943192303993505871905132719129753998248513742929611001326323754706988649394141038615281322368263852218801441661950846644452346705803641654994270032902591491476190241931441915195567933503492453307087621495192319267369201245333876541794077946802803701354685793187562441192872493162309331842956170816765742931349383278438232623224286062694094039112359757410788314531122616378333635563051673151237726183492182928693808093662033127557709568080533476008120876875553060556719985988049641807880306387792715885476879965336822932982717127366666052628284320704356879635116528382376875491283153329165871929668591099646403260156930689226636927168613407091735863940555297768484373440774879123614686780238926650747923499014996137324245459355595202695643824412123975121499650822492237050038063446428110526612486807297665131054638646494073530450683899830762643843593642852711905780989764141500042152574681863998701442852114951953449551643289019861305065265108841126793747199951802460238175604226695238518736924704793367085856267577192763413754736662813312058541506173056484041180366712216729639163848655905787893395329943093296128779307390778062645720861321939255227977958105600760729558297096579059632458275287842470866817276141748332540329540946440231200601837821909798150915903032600005349163429323273478091650023479643896207298697878291283512560262551362521890440935825573449077845495790298275241640189763854093554032283006483992891242400882653964186486384415941224508579527340811606199873956988417345969341856720159285975962193926172026361358803270475130021022856182633053416356784510911446545631246878821828934969618049760668928060392735211590478813432348309681896794393534077611374250694343462189061985696708281747323005121297312527109201385787498353292586073479398904582938887679344546003107511071433995433659008315941634173625208351914540288186359992376722470876226698769083173115329951612971621288307424450758178217472254680374363988624604777473217638590750796033723761599296454077084325287385919275080771619470090714523690383353270713727894310106283408191922837424442632363327894541705810931822638555944830530136625957109888240786846500808141219562598077422838654420227279530840412232773692645444463408603018307215987125511257833983705188602023896180004485927231944279082993501918822574024111594041341502729790647956437138941285411352183815238867888523306026177683485234888204785179750702493074943055627460016306469245950261415151567159596629741435693053229702767533380768170147511750277379063541758271194203758944754549847606484712429366715378919970322126691934725413069463568122603350248631682338903338614911439027693797525606154549738563729563175074622842949612521062783342898617672777296190622204759938952320556199004399570213907427431605121210782387523487131405267370856658397237284884909379795603880132830936579337117046983430553373376522279707600382362574303809328224273772651552912486725306549163415214562873595368987804631015317661879008274095150900063768350101313118522429021142674561448704260159813421048410889517700812840683734925168817745811044185372718613951517453141385099793533362266305044796001435840757664952137709435966182423057691241447112462682786653079715920046293293192913477825163655011517090147764022978699536954008786659330777052108935861217355685230469562897845258182507613049027758256091376833480354641667541919714632092524372955029292056064122862353737941440829685268600756996470053551013798208562603162161351169855101456432348621487008447306530142373172694082088076131348945384305561416598041501316003157316807010521603474398659176450116413994010273625030474877273543406412930977316417937588021717803355677654551107541292421565552198473867180176093106651498921951686156958585176950393814372144420083791877771565552178219081352258215927555765061142850456608617654651696749185304527028092962001277248942689614275798249151844874318061255698729882455379302541463397498183652967937678535715018749494104460546791374068116024091341995074710468333884243926434263353220202115247724307453304919901929163320739524315586886587462810931373847523556667248913626208158250047383368886194197592449103388204503134793265707541876143903791672312984312817119029484523209052149301592966816163706854708016668684932146303935894765052683288886115818309079960402909091484363882655436436465630582690625755831334200867430987021181051620208294898776204532719727577193923554852254199753745407743496599482762349336685232548253200139450155178247313898781775949842940416450516518833509401269039906483719379388864802068577901723180716459366743618093256258245744201681702144471356227499753593071960543683792278521168228674040949782917248806487902213651621414253323040026280293272881776292617849206843934989754881186861101771376883471276304039672387934140032149803301680133693481395239647596861871310856581003624217182688902902862584426958533341881385247350464376889861938204528763126453060609431835752928207838451176233873333387170565740521383174974128602752614539776004247481034768469817099542436883162314626863394425950528223746814567414080092196652878456294253746219578051505965807740356642851139288986654019266348195196254734304007472144927193823463791087200128171998683657802868354347336296298981141525412631193319935247940565094629884229764616855959219629485549856202997079215016575661089834415851328309123534564570438997605963843466134708563447424348464537009202604715562366196288836063867477678346663028099129966637494128046456768397565849041739289080183999781687633189713242701935018345950613096042230794423524295560430404281489672306352877072016407791241991446995371594266527955193623066946401856104772795308513523859072114826443925340676832366908543468685102844703069766498991920205562290581598221601480321259505431185693040594538376825529224792126041370385146394885820384987074949386297188368648123667337179886393072146009140292228220959034219687780144881054299235702069788676796066109249145249336791922081117163033412189243388417945245974603977247536516704435063034782800003900361170529140904401600091571720378375712394137456098071085908658545217357200420553477187139000321819441044651694606646924403778923631947300348550271962065175983458904190937835240707316587118799687156392499269013801096328779313395179927813673854940322492928360736182481593676323027734652453495166520570741287264509550785998196102102064175761088652039728663308253480479004817508706946837017737972174184961157624668128006665649432799459871397945473871785639387983639386939148929663524656259040104904097611525639257733621494520703736223681400461858037263197035149875444592875965217984403144123327765312125412444778132312966134390844362992641527291582913452482250127820936114327164104079837436778663296768430600254807229395893013442768019599054396583521118019157138972832566772189581640475726005452627428804011084637070273503442432898876198204121161694141787241867490270293019114172177302073964678903262735896829837780647900693272161285255767117963097004575033570966607740896616133490754532960019386903686638980860359877165281406096242989665265763302343170371751327781737992652849274141930262259036296828430936718625160263226694813949319063461908617525330759156465010417941659329015218389669179441777230657673252068616048630395690799331567449779962267871493353351906199506307051756830391566721740878999216545620887763193733492252209393890468995273661304198842881440069048626100212195960788463823443677823923447364841728398358754506736058708591509629511351137637554676853665171549332437556407578924569966308253845207944201415370737534030737798563278462443745871483572775433122772727588060604606537879734740056979430733622184870862499766517278742685959268251566293491895054584513029096095046073463966407126973144524512655684141221377790213327959516540598871793148015202149835986194939456017827368385295137167511231110524893240845505470899097621965518598599494084728908590971350870398506607767101287695120059585745134950148125000561026870426396824851170736959324580543140943235332505921396047998895310584777172102628402352814296346017721664515774350072286043929775123478517434648010200526410084770014549984174483357581130927024444857750387876759744333174329262790619169267988659698619282114934802687440808199715953380710118636095405214794173736782671940370154885230527582912666967993411580983173579575005419126747484041159634983692017867319992140780869388134683353829069948389934233455010663091741327558319182597905689645656698533769834400182222854610508942104218771663252470989529683249817634430246433150402597046362331225458618479751598321937889275465233521039473731867740890384297272911042855493971095460360380926597511516837017354192878031057841962415900564557108515863291645086968590663751560593315249957541051880219392015133283550321551216251514206450889201631462950136987589302158874080447692219175877875332789788084916961404926073716914946234463664358625076716896489320325095468153701618967036310759124090954734607551908408884620078421329910548981034903213467781842696716781093470312743722930910906510152561464638037233930378759422314494477182769598143257212459005138301688657322091432980519792637648708941608476851248239298774884067827493148496439202458867357045790318148863785362570970450739282887378160838190895167071176006574248610563890999838924017121210907318396900693386364105277291814774647251150270331168946314669310627918390838912147376411737836928194922125538480235450866189083455338469183755975826020342036864876603805705554134213270960437181031467384361138924549286711478899177728591218499453466704615456637719667668751049396084358518261305907689731877080927384351696104530656944514629643120659550607376101172419686517499786332603697992341272006276089114040182580498649066901252833695715811673788129169957128961262365884257495921348751427981488320719972676621331446061170845548723165986878129300062403273550519682327582052543429275300418829680651458066203390294834779520540711467757453539553713294729333304777522987624720246508700452388365160627567644578323624635865817836974840006546131607137232580902041368753633936715681007831373002789741495186879600110660223970058791677384426926842598496231999734168272086703457801744244139751212093740727378091157972834236879020653620060960130101823118883654854150229136788628656609141175378711257129382239384943209272057753674005314811273262900345930061438580009740265141203012023657832664470876548115011436011903189220332415175538060545219257279718976873164967906518566023477053619078478202709689642787869191332068708840261375741199534592601262747286246475065855508025221579015068338018236720613455801396554289081439516723605455884335620228210010160536688603368833837090094239716338773655160137060270205407073689392967739088664849619652608092747267543488097732750943583471325027942401479961469626182177556979621178737746354902137832943533942026628509535264739386762093701002531465745535664554693657339672164793745836287002544274732248528505515662536859572004122627240558575767851466484079462325026662928027519787278379619606104114109981303794777516181597101869575770903472536577826053952299045944683176370046275719245929167323218189024350100328638447872632638302433478039002674386584939214498102563912295648474634804451525014296239016033035887976759781957682873296140731414458139907137334123293911249276333396830538706995045473612713315591209949655533815525666956733853718579795865036422549794414321101165556273860172791907798240984071453096306832128229104040264645944208521570010497576440583777097803819922417411260655453921352612301763250750221428782047832986717317844284770337851633265201790995626838622403855873180897768441014057026681659836483788864970243198171837886876685566964128455553972511809492788433264310806597142199752180656383802972297695669746854770808719209225793773566792713808461342729179222518706992242348794520030076094933857147633806297285013625279682059195350107671954283857739901523860647612537001276247410389684303814076036480803976785138235126414801157173475766231806893398016606411456425135128457138965092163994757721020169177785458676147388560257951671261957144955506277844124916253217937381738342104747738521227170541512604841413243035222674382127336084164468183159800827524823650217167757288901436757086144037409206339636943449643148507665574226090490274567263477141710943724583763708949170768043710534462894116801879868260658952015797657195350444868907237533091426926296493062899069595077121872170482147987852153496450867033427801448342209013533506849285464837576805394291832361689572078927552150658832868049859917863431363742766051675255432830562323449960818733284837876883899350697170307231290135968751277576812085293089920221500357215938676127771538904211840429436749160735759057829433023943428579955550860620100617785889413288446041224064440148829999457623924716466188093995220054726437647753055456024291143584132191419602281643200095862181941758755193654455773971304425333383745319689167301748606669719013292671395956863760562855248530237397513834909699222184501745661060788660107932343618612711670118512275117801861699413151305979954488946402624259622412712816979173282620767048244140492101559816990825358819325246884322151623385503930392105252037241991454732082592571261844506048036908844160153041225316689236881218104833938464763505348784848279192558607503993040759662872286910412493912612750550317912948309423711128018662591973144691897711689593966004372079369746619977394747200724892996522373081339157020045808499465210467964974662987891341320879717596449018267997415617952948544408916563695665649587153502369102824883032985142073953185240665718309795422946425408762255517574701392309454299730177891551815613039305369934423798631331020613521677538397925252555078169372868375569149261858560385136644408650366711657085634488387313618951605186824462052468758821271737129702478725160335615485414088071015179879055811050266942405297534068056773573243160827317026598741987526343213620158742074693386249947873521032850071612115862566587951459276548780373671338194965990545910492106820885910809493184335119849171220799212324852502877333304062150271201776620634275176479337913421355353695989559856624992546375296727428753299262836627857750698549171415327673061126583608381403871412909289999337038871620131556658097503648143268273934166455715102633737110403850426018432465689792042640220380061277771045719924140020270054379474370168793294515577096787565101854490754983183937296984050931922964097444747367078481027470990574153591251280321344140818710149183280644000622475741914757487062047761755364828586201545803335047958296853148903520921591145423684098627468932255286090999852862611501368975336276201271661316388175767645848507650584332478742752382397621907554168968835587728956661139769434804681820330595683060900183705033583146239632563958446816725627833875536863776451978938501540308636089361001214994149543027900808194091329150383857850081659608688759460875657928279960453240113358057957502157522678263853877492205732524751506257690317296111744710735415912780855995126820079156507776684323050236886731277135535520465692292606531468256127792245699162692084084194668579601509366855714748867386871363483840410531031575934384455947903741836971079595945544784575615531169918675723425984645954364464081374829502605888824849805931370178669231994055078815238908786777489097699050175372537421530798092214330016195624854437556299498523398480373549778887275968492648317740039593811614803655414974890534330779590350429537803199980221531830666118238155670131340769145984802234345456556679379704139493976556860390671470395700863867901187993447583236976702319484057384125206507096060842518647524653313668191735781590016682154928777362151656717192139437157789760087122896627380991548231195698568364603598278966838867348015621401348886915939304249245140618097171917435780657765547518742293868428012708733827224910039826280331573976092304235113288404011565667445647045007543809309083852683926601934672322046040222424061456196700685249481345376409308517587093013262459623744180259017814449716551500848970888904967605637832624013660848287608988025658384885394013408590078464780045250671814895331212346346999556040454043286113146417577906995927769051867500684656554563877923920810737060038507573249176204596326120822716939187191712198267911617082354755505657101597255093861748614090968257940490015292387807164134944745419581826064397927650318881021316094899825965605584107835293487715747942228299492057762885873601163749496134291391532853382056871956991448195770730149173187799180634830885089453513741452302701282752637045947656433553265224192211527349770641194821112204847721590176826544065635767943795602868234162182820432409197520399346939475068077378237877996509289083518999803242542672801487774474744793611787230126854824036291521091080637835203233451849001917567641643429506138681515064346807560397432262811877225269332595975284050335654499065859052431232763621037981741103514403292570845526511757670064142894949358156889210003020816503888638099031546788809617414818963579307041805760915076119064653355612950767235733065895167242089189054453994122250218464048315781385642895311892663594544538534511893540950690684445124103997407508541324342229933808435508064075316168835755763681717743031711804583688678802444676932858859739070360128787102976895280203263382982084543158202633331722943807699742247233463041638826095180792386148316041162027629127678333232360232667176770554013680855702690198508015278842015986314383365323128893670240569219898202199796339445140719617703414473956751592384543646981243812418373572850832480585315679909804912172999043926665613383542200383754278644756637706570076094333116779562731409032570037346618879547929168478291004238734683167598904252230470384734680653036634456949324730988563979456379020161567855365931997669343361228802217788594027236911900482781946294341786811421572479292805681335135976437265810187589425995348448449766284290583869238164709895659123503410577747412177272203589940620860758895470639565719011520702715517278059076381109906592927711225013906750324211772876515159881796142466203279410073317943552808411273334111112846124438729909060162273188354371260639473894750116787659965771258891689201072891017485686972228407988934782120881610567817210545511663091419012526597313747105433884930347613517813723087449940133267368939004591464593204503711518052974230313572374484982977499983423476186490000097511211591809941890362157801714306102335326567039572718068272372981973021053298991388542232051633704741458248317671211206919926367222128164879725029447914078472394166313766645431612847717852684259631589532051636163390880184954946312791176245949417468258634878983630444124253760924165445359662691876931280767533675980405968389731593442672354975107347578622159498636865832180979606909282152931584336821994385246293882362742218696959300562580777894667712728021675083307583308161771219208299327301244847393315058266102103139220626817273707035105856366246924053750702263795278839826472667652035269039514506969498314936098272663970802723148993710556551510105382837464277053551760181475619023364514692623077029654183631133766294227014624805937190610782400312711261400992362673652509150422741840825854812873691482214855316194244650458702329723113753854793719768257938290760720718686184186605883390076354785962394077867531598008844824060060527808133982007102983803292646660876583952377502005076715602891863458645322527500637776869231694220339205862188328671609824730924244134183698669070426225606461016371895798450115829825717231405895820654016001341437007422033821093745100490647831321033616979175295906946842463029410372932984508990697381588422802602884548520613088762670634199690144778076494456129016048706182926686080374931246611427270366550539106009176714806802270765818223061344993166167400285979517421420470539066658332841015410606102813703028347318005746046965954367822514797763341147215660636338299707181582113502633333861765934363415533657779016625474242946676939305203414641764814213959329273960612986441703656395985194484680231021742645781019179467335393910559645795186925380702585221955013871372618727985088603268253320581626384731578799124455823817886173363408960084375531582799269727283275479445743515048058101075583282684801303818458301000509539235961643785318052135048659785406260956917977100122389227541837926958095647721226977525960714583973504986083533534961723831656949731729494083994979882177941093158266975677722230820843564270719423823607304242193230146009540223522180737898490933094488308248124614320499761307048981262729944057990018037814373304197088061543886771334345649376536875617666861328866803086963736362890511524736234549505544513078234425103022889454579133765361182689768968949279928796192958170838477872839647124724010832979451797166550095322719215099448878070170424289305748613107281089872967503803307215660758829990497600971144873702371802085165763552850462884868049525121946032189331287424899986547456398646244437979583563933526513408032117119019169715737208922752802218281983963968496003778464834948849706920197246402320796220315537702888923771268949067432875049339693857977874583864041139756858291705475207499737285894027089407892670082362651712490841228494039547377312258500612684496014575774641938744388639544984545231413568790681529637858675254734758107833310965776246765965149768729449060309381732237287788295515982713463107192646809801886179001875205945021540165660340582827675442109558216376760827997263433669364545954192007398166511338086865194797475811790180327958559567849869905343757895856117378942884330287241440818633755665703726898974195007933474416332239784157935366341418717075404555090617929582983897383283219487354297401145109623640850018632155434492012184205139138056754884631942440438293320779926746033564883519640177355930057635138531569598560300630548347251215017511130895728273498054556066294066639241681025350641932960978141756840358887087831343221352940445909807012988340498182378818846355914435048044880073828122519084473908078230818196264540420273742846203958194186490894749593864469533481443700098332259637936973503459496222574649840319861551359446065179513162163011749185204970842692837193775764530184856590323359358723071633174830608922813796634353407145685543135997607823540636741286992087352518832110984759342378380954993263765933183925096514523960959076183329880024893770996916567206425014467324861934901319647809257629829926704385486184444738844802685406462885535264851961606611727187728817724018090730203929274434767914206173233703796155956243564680017606473752620248348633859521214636240494823006462390467955387660025567457458694845991651307474057961841399893153610077054462515438990748740655563244870763096788102419903367979430041324423575850496418946120050122067077375711274419185061307274855736084688554569811557977095239211380699023429323553520845622605818119618420672339936329513934434886719962929259013239568813804351175366845330700434435474091479676892812144173540753750273008988156370208969977155314365396654154943016318851131971869393952541542962367432026165141025456786120364684660274860463828519985048542258485635741717418580856362581591335015576503584666321599686670885690086513158950891642769006866094728972040001587676050579932746632549512581075426421281270392619017141721716412939257106078564312937761429339399195993674025883170305571951312094917342213945274336458379118076076513022119548769161239122914774700190462442360051768123253621377757987895415740034023303871234174835714158463610434016367008267001170758255967351527059395244567717406791880691783263768360352066135012408918788474836324875830839238899576863142662313540125357073788192038292807691690030634784429785055644485175857082405788929938312931710238476463016617957575652821135523320501323521790022598782371445053911099837132220877772718661084499076171408103525904962667801581005900694225635710557073140673656867616629728421266327130523664950800377030192653486241885318937675823618415434736484333856834657355392291406358338624313915275857630091581365790339077432869488316867484413299870825215313587394443969570595155463946616345673087518078259499139580555853092430737176040578065812691096246525159055632169791534390858663973381564352269655064782044991207946347537488522278415089265367805596223179950019245923846927518609788718005840410429318836747865519883241043641289221031236434209367143289475044179157262257990616721519981949383574505411134278021417875484945633521686124231035875456952426622834695120583238774608204514610042453806716094610497409695408307199027213393706354874699761454946953557595127969384293929902689278433004422951364897568072199567240833289976016278385471426170123374154420097246513572855147665427533215628333548601112319626941955941901782825882856838422918729171747066889504200760918150983468865519505294783315230989565365839361469234072295957058638478148801282699981799662746779984765844630230908597146125468557947391555444428650133435316274467859383548602197689237231235033622105068856319864234214964606886568471472290893765266271030858795420821065349648279891636300661639448545610048808646950848169735049716279586151140635185189158161069211551337769403598958278672548467633106667824178981930113812154681209745283127389570707877762049516486198737075143536577770408837245175532559672465350707578388441212018525743685415216142856510287057766798376283277271532302350500030615878232490659929990549055695741593510790138269020209654516184980222367829612287431416616503301824631643495307236411717226254494374755975479118918823053882616459128646556239745759130119616067020072497798932432527394341900567033705924659989613692232210239102695654934085323680858296804913861929752359839756843073290394379523081860698848012421376487691192143169756949765268276424633429561421207520643134564892614358810093739525911935954364738479582939978530842070264271630414254829431433275182178464163148287131676234637985172030531156088113906098820005771655054596631512841185258226007890317482849511987710299331443322146348253422599096673170967559123115631247257519058376294572941396758946070342392147565504902018684784195548314483006240061829758420050394838075585776982667306160348024633738023234223121469031405849943973426445811880571275405749268859417741264865892515524151020807041937286954701622362778923990760558481256485286894731909905308857523014623804266221660792120553105288369188113040783510964145708441557426728886670623601924857788101546880899607558287984181503964958535312936243520075188255338814244771108880936172500861653636815012967311718595570539956646296783507482468945830503941986163929364930940058959495979370942835048222247737484035324868320246034533177638822066134687030942114120778651849308091357863268324397437756732174719258319395247776568938493721854814541044245425882296554196725587377586739978235080177046296407725696268926714564297180938324609294810964568527129196734161595992989859543613829167663536982723819400963009438831866838366580657878153700262551317836510910325304894051996054955954299986098451741730413805284958658989353342490911818926397509628851056770911979392493325018741273607484171375762103118300041700957114054568008337578185408458011349111202089244337663085310116613738667034818880705681622450738024990090117760020749838256432616717815636003589225164126641956581197915775118719470200657388496455006835774566958839952170214906453912448214646572486443015492809649812941559432755875135113907839486465680437413301936869356754124843894273722878626144494168725591598442322233832755795837584668985720472972579864556161746925020571343623366972217553247385385713874272500981315710925546937556482746951438353653619033452511662905026331957094057076777508990895531298118573578315574612422175410844845855031612123998433680208109488921568025256191650506923479250818340926657228088681770870486619360521618729535266728509769174913704076645593300085926572737745553981155509553763703001283402744940468673914087465592971994051283345462576450326447544590385627277623376437069408324039294848790361361811769188591938346018624159047414240777990165957224929323796168694448626521251852048850485266309181133594129985840529957435904461998076642680910683501992279414420910207339360144878728528661210128867349870668327903080062268043189219257789392930749727749699528497915599031884817469703947679505662087672112678974577699441204622559902151787871194924985033435073107423511759351502993290917040117158940710074039968809206415140724524615823462006426882223639731029392621505007112753690646035122429072364680182945168725357991223439270232021149834480402293082277573902676147997250239138771585395708180664566773986765391998253862455054228076180559783353035895959892788319493590085721768102737608685776068381523283353285923575250935490941941241426619435239285673264744554998939237369814869847314269316770037637574754636636843074597136685998621011895415917728562746870595698979621955433110838387043479738571151278818768314950017071119428910754598649311971559288338399110388770144901893086210369130270917867235499067492977509354199587172790431295587902717761764730593141242144042788848620390784829472571824981670522874609800388771230386025423037554033223290983128242362604822862588684975333591014404510105140395261901347877663716584682718690089624538462935778772536146795302605355192723702737197433791316789087779876269809979420503605088507098817752011241869438026798421947148453246086469768542058021345610042736286400749905823454737198925219320537237247361759276214587088179778193948461760706672844474582752231879132854000863755244102470220232923386957193431732899012889764272983969577597603309411037345090264245055907218594061990769024497658353472105801155992048901588514408004856055801527487092716743701147357170920068186723373043335290397760770540682347631570267186982692762437512531299771178389757896553472430247385156226003951364991909246986581528820272406437889519436664825120178141224213386437518162113899923225879867306620925907174339769927106501906021074635399908119366557271593047119143900323465278698643711991357592313262996431540610387616647429086297337585661475490236904201654074883923856749691519753931784686616554484421390840207048865748464595420639416217603623746870893961927097200774560187091212861473313571261066938770367174180083504030432559994918558031253573791053529862391841408763161416103370338635874099851955015045771938739171645852461193254576367704006551716874300939528871517535767143380339990595330756372986910455600155172734698785169053596289193084203431204658516550151808181342525012128097410893904294161316285569776466606685478229422546976254371564359314898233940948116237687261905485281929713402131593803295562950400935823280471090687453122077693601529758478642551984220848082436786519390673901476837276792582551226075604344103251124505149997745876441638600064180708314759731220402808168004972800304649081146207390217409825369692057210892880032579147059863963805966843132585187111485193147171662371044418839453121832803725521634941124091809236860622827437663966002356240537103712938918162546796305413722938979689545745230897166158820541522350678026695037196463282518444735504006323794790380020975239190852673912008185432129804820112939866502905972071090301054680854438364931754031816657422177075933523338059911251784352687552992576223680557612822053614083598952309166669131696036836759419516590679030786257871030640780567918133038581752138181193979128843450458003888203100733641469101637528418884445760911134073818772015790111442128053415408040305975843433013583335520468852805105123108808363374633181841587237070482378710767113165114738271027145842249098773279319292645016549739224696706889530003669423516437010851383095721818902525269108238494526286958066747732703692076353218548323126223712891784542660431039476054440366960037382314774559783921000107885975882537356455538530310465345241162511436214889315439967419134424082334104757614052676193891878194395653144409663523036449705884089671138986721157157078139548575351425129211473880886782476290023987806548898890163918722540840517756178655881468607371825479536616526097477370998122201677607034802453929066310349368344257393481177677509318323631356851140155404145488143444251346245015213160369978863907056103044906567945902265867560907283197644876124584764525231613323232348628209146647471537615027830327801957137340794867942873592341165090414645665189697711193396931127292020336481498791075258464162175513125591927976683600193975508206834253596719726200913430862703768743658402160620928908147512207827640550830756884515761345365478873854277304717357886875774118333010611889250395019598539115055486136717949160704734177091486767879312159534087667196718261386989584480890516276978611496473491585041775897988006802342657082242872206992566231443388258595991383017220055845225927526960891975656291228301760674242443595801056288199189108968234297571830175625621640416484982684370642220361336838083455801510022873987998241194482087995466544200256836700559024217803815249045756493364117254099411166441682726329330710801915935458438231856244231062543166475834009089748126525554103828184992596742502893994179335016268316017328180901414190843878594661199373642038370877776933992150652823771971812537670072538016532514597139155925404821866877264422286016995311341163461356785604096491403505260277002975799981975190973372040971592813729140367888985010900143573994692146237017489197384552205375968207629755237132586856959119775117973265706360515204677354724727692218234023238904901287296357490296917835931285191474985818916013927883574895146508045210056638786663522138574931999326984752870760964886269199385531028815483409223280967037313564788990145705172035296884252644402796873146219047380151683182705257225772503987717960619954885978284431127912480183814982146552283979177910718636393997527980627674328465049331244558241447302092880855365946654562632001439327233885319270141920298094815664069985556146224421974515117068681364755022421811444177793144486391763561343587056625813051051923885150883733627273155180986518727785998850480824162899112679488616343016498065858155292763011620444249906798265604454711684163316643925256262075390019699677937070250702396415931929900331643263230412393791916861603674461725074702310922909544017169323433948789052206694405852909092632038923020935314889996281917351929228047833412374100715246041003685375925751975243708402025511333933187239144730866039923506823227631616473216009383957233306041833776371502710659576958748452144960989586662761651521966427490440838555474566501948433006724556015359741657992575465424212034484447496339488673732247219199319961738353616156528024058449738266894620357189362117178680366536744619952566766684796686402370415380308610922225953511046076605632609190650423300179165271663358564815685790438187679873533352172322930279405328029745547560804893063330238681223941239263074928276194186248139585325946994632532816408098227318909972736265755202542439005225075261380557036772065457727165303824376170552328343583434901580617999016418784553014250976747704867089117525017615701843898485543289717519669863718409740973826105847171488418994350758695761402239624244173454047204252474491116509301913831831658084445329383096372202509207588552025435112329968170267309585142555102763845334482849647828558541815751222528167568070516917576371505406014671934431595558479590470991526186513416397614171912129812141187405918191147775886300431913739055017137537797123324644482286559239018033819092495131882823599127262509226186236512859922083541697128341258678398951773959668239115831138938779296761978866839732685995642099355302287413260363833305078963755699472180672432432065338142243995007934017917999907662391286481449337563218950624331352836718268456096166618054991579527655193655274989798681644749822404538947646747802090358494986796506267183856535328393178120501172402040362560751640698561700726966921694884115501804656974650381229600623854937790777934516824144732521862405434218686049253454077570814720455092549025609150023672130104989559855249441757838573531728553744560079194005048538423648197308067873405285082223522255272011895405325247964978618364171770797001221660316794245789833728309468400004141907769970864564584346164819829759027896283351938112279683961555119302056996244278364402977857396261668373031652173049147082761399718441634833746321891679461754383767070207087182038463318532241825943994197688133169724597076796817874089350623992738315600266580066722065541684543289947064743437508197269406250298446348512724301636366206712142984304553997796076703079938835398103263957992145072151557190329603673107078289512519538789592220831764838811907722008908500372281335041932445814819101416826410590019238572608039562138202410134604472553214343118313793816540950680245126298216316296136550947715765565805762373403674042985404970132761603174158455852981032712181063751506628210415743831070262690927405545583277727093382045619314523914086826376926083992717069506856339590535047955501183747483474036339141551820422922297999040108452867980930199197761248417268342196517001304560067081040747077741697280572776408156222662138876645218276511420016652033649023813921464665651576226332047210167791519847572019852105246683914652116031879399910818292225140446378631243663260619283071645085456543721927828295057173480055068967043947328899784441551348196960576932881676343448422162970075541691784669247462576330101966805082242242844510009434005801211996931656570836165204814836932362203284721554147937177676495853213893511498275552176581733527695842593711303047197128553364657062876604301779252654681793478225825944436093227387399649362446293239638249411990324466319967290077641509937232720164544925310540852739242103822981549013142276376647421121237445679877997770652939643196230890578610950330237703638850582430548389815879103441553508875947742816582215189179206717177805923417251666777046356885012762146957042087205734447491545904186665981136651019530018611371607701476737173343137517310795641545795027423547136084611669747267678166146046028552766981880344287171491114989337998110871369444299635012651156517741028064796784119901438917716267072478977122533601861781405152408684325998052285415722923689464326965187060385638419515927146915618178239528793862530006734546762375238006838566364974050692979257027871414299463781372293185441768909424868586575225980674124469666178867391399989406056407102740857460433915402870874502759075653772529088856104577506292602331034354684439002194315836046912970419961871757547536317517486085635297319421970362146157623492145640747119351070358124364629157513732221505875240154968341987980168338083264077330106710116567882960578940411492349096058414640054571932712748445648846279818625948276043473178879701329352941938617029505352034073084361998192109793964047372004590247096830594788722479443745169854909247748183133921682878511396646042055214313462400710020528195066371571354140497819502875918226086108632783319500017213450254825057773514018524390481342633743260400724342507221288247415164749782862845823884018974319807493844941246077085896166481606710864645224210198395201332207976711984315019191784496705681445484756367337082145412821848967405879934735184269761014949547663182665358942910361621670908747476956337725000448777675993408897122353798450832328681980581581801672863783279866227630900091831648166482124139014535066472444850450037245429932926066064168556230909994485542915743263612584896502496212072339013890257224866545483037761222641691615171526053848654224439260098403912397451801925792381145955491212221095171320164322491886996606635067962168637957383507307922318932235839544153896806052634748926516035725723638128314698406570986959312120173428884417809659426357965479563234046338491115985321316045179321197931329112293895613657561130836569990051430895302687603856358595652093673644804286159935933887227970874001924524888762977545149608458058966976431374527159983448340548336301406058560165251009589283547264381786910118831329221433926960691594951617159226341540818863415056698166486351093718179496956631844892912356163496674145894486500052566416166227991375177468837693504929540535731380428754121340138946550510859307610940459550692835319468192863363155349403712467711489773035270266672359191934746970835806933219096394254699844622478309893461675769772353497580732332863756397821252515225617773084958141102868071578043089729839116441497674863080704696508575419057853037608280044658638535826174028074300208847474721857893916140243453640804052634699218224650802528677302592259716527810738793797120637918922189236188979555862247882485929590679495598937061257715145446660322534572512031704690454158895374148898073734228704005326630065940869905038152302217499709780565640576368913697820346189974317896983108240366657791026611717980775675669495123937311259726446442945062847161453453126123779811560605676881691153217982293760845061058921809212183408197065262376641165933076380777954447039357294803125806240206265653256038023687535004660389053963242862541675359090037413935993293745676694396248392529674069918520026441250156200093069330186596778275211056749034008675276569505069586698263937200812122900673322557882081740582803839336736226788023839432922301223930222696675873655385432165980306626864534663605974979198534360297261776589205570099776854186149017896510807675271435230969473773141302993536529227842945708587249011059565338927778197763455575850119128080323634735784199008608857417270860254048844881960062549153221274245670954243028031960412351794660148537059888651205089089222139094192488220311709134154563283561064657907280289374347628717141962009094120925456854829372723533461653437004250012730029022704746485385102429533807048000131639900421421583209185625744409738927398803531252988537715459936452497837938048240213991028844105933765956842662479958824216566068216259559300827295635282826671070689479423645051162609572921146721516814582871349633314566939792951096569548105322581344838582939294497790111550332731288730928997021307354378637802744745851990656060278983206913634568008235026480598105584523609337877178675854552555993215331668542066080860692158240369059890776149733125576560582935651591110454722092192373867948748697600657282432390335384580087001639480699965088635800791253827424333903418066351135977663110184740141895318829217818142660659293700336546325700726403539675395772690047882242729650211874909669155232217698371321483346121383685856567469215501429023055465445076851331132007803182460753720890036586423655201702032661718935364711377221958266681815112504881017503242358186169627768005217645950203426018821474057888301974520243992228754936468917787625739631765809492724982510387529279247820920282706626038697790726937137914816743688543046640651199863757813169711888568093355612701772819057840528703163765139275274686365630813833628678285444874574953736369349524920501090906524282680331935283087870672652969559684368621993915017632674746185526720426664041724464072227418026061698830890993064731681455999878610626256084246460200799771809668393056727171345570714919630234818430963202328739988827978333611468208813540666925336497123374691173311990231718986640610255504737981564246819884985904156008100909471110106873852215281539819086057283338142372930242753738660676355306806992512341920506738749811182765386540295489536011769234420293696997212512597096025855697232305154144142794234450733629033981350300843809180698303812330516299641125995751366343180381542517863651851497851505455508014788157562037257203327898806414766585212820831520554389142317734820897479097234707819716755272947213141417975709002862178389694774851218187134181235138033207137344983188901428107877283019089649156605351968898114927264418680274708231510289826569752164553162185831003549649254359343578890103559834962984405931344145041651333562971856899380645897007031217299029442636553542946721755453573854318288970600745398018669548818208754798867282311139507322654824289938212915713560892150111528378480654060645907316896136163153302579252451466892134437395515547310407644624114276841468563515514314962016225867033216271961729571727655659187406598889494091314751124345770831764414260764008467195402350226401098274340308832374281563547193896823931323052093923293331496802762441223229094168426988042867557362144127287074755504893059715532887377067907375946948525558298883201043749127456389445461927262205676111265044413172057552251031241743691424547535114987201241817319424670949533149055983985603494544924360658609612599040181066294058381963420497819950736797864401656890861177737073462117835361038480944860489485949771354652466126811318862025209414595865261288026304026602875466970272627380981131831348284825373007509857353715285409732967943518450692335502505864050346174384072900523210691094973081279895666397624532671379027746310849085041992234472078016170779246610248986142659928479011195110963637940219417041476277467620029953240530203264938434911910722745249005960747237238041866765853598828937073948176478248206187854043752451030704495226839184294131549101878504990345255325032461474877251373720451751499482066103613125616605839097751979345910917220820649686460420695620354646155773614080893494613067574192756889645687457761259685301368713995758283965996701011392656606019045244523209733110039364814177153197643174783635541154383716575685818293490585622782909354786733380075849672268236002320664654309742766443676049806732743740344380982796899743254670083460064363352526217667291482456823790170706404209741185983890560297037903089941807371570052410030841113652761474669357591820373348101237226294903671780847340311487069842885518271826206495812192074326859130860416726472883338869091174524856996424282579211070341098089668595675224046898866195978446698746489598833754601057356222418378657654524117530483266958566171592939723357773684008566186184404890957607324069431563725305775636783008778096529567215102519023629956974256100362758123828389928551434200713201117440309325368069446753324899914481793232463604762605682264640435357840958198197978006797965960244321288515432621784532121322667226114610962702145560683231339375692829476377187752661387855991451260486980741051871923350798180652329797087779109338675358119133344180576786183985081912530649617937216260871696195875018331494606411975703327890098776883068950000441560341123882158404857409849218519376598129908033893705656934338879848030117469788652682667934858454966203106916384209363873188038341212647169229605864707949273687723575765089206891601212788259795688397550089273362409023726554018453781571621102038693294807932000251636559857821132389733212902610155256469754651728774938295202051700762449741207703781029379931370197245531211518779619956076695181170205249596936683145849227584599661495806339806929943917593163444347338091878285023128008567742152289629792503182856312973464426266183446275939842134400427514051191270920467070647255855659296635461547025630800207128946898717750760504200889785254646074402917378547722578894275768094749344890767080268106806420635471365967059142632557654878499975826889327929847679166254736432586286130570215513353968844662669861417316294174985822927518438289628267437357941658599408064451515154258677653206296602226537420596253933181756525858595827683262848650933578086842104719221243521646095786882507395103398703761068262767091227471433477867409574279049182256358456901334408710182307118243542114373640996906813495159684696561567398169925696148267921009439294709131947707970311508089933042849787822927630989009510550283710061855198858511072778034500861167950014727821336088296245303639171703851395134548937639914344183782899319932092364443586679937811700027652033175438424440880314815085757806961665630619601487716745001300388896784845243495548228666239339967946204261022143489929655189399207587199766549113579889993315948872661957718164484093024225049824867443337280632159992386636755739976675759448725894002267313007239546673435474678873709354305039962802240513294371826794933532764455814533034211052995704508292084976492691029909469025035201494964986286761850870084673961744492289152198892242707388795866227489910461321525593931090627904435391530682072523392141096463224989923774632650740082871596261793637564618644446280650331017498881777669804936087813265406189175502082086112968455303087770076819334065301520078156075090843573747174474255703904528852481705466241345837982345750731850768819638138640652528181317862450424690544718685188258010094982141055443430922741605601764077356976309342631075392139516778846142352633318492872015650838440384576138157358999534922068686804524851031053576698702874080493578994206047252498083265986259449619904491875435765551207688117892764650298364083210970339332738907234810682556861837159300659539048190584690503274997892109089595760780266679715680682416898960912028580986957530413927349338796648249855881158791585705101767402085171022400393959451710589029039494507886565303206225723535086062973328659040694351341095918608219828252399812551984675229546531481689670467468007472940555476392537866896245495423791278995127338933097856067294992527680955562036285847019245820801447285399683943265081082056134198761240236563727358407761188309835149361024510735853551469747724280156831385679464183766410990889817659422804585852209313244374133038391335847446152008843214226962424495902686809044039658098871955778391316242519511801088417685664686455717197035957204233257783559302419947244302573016553837791748830387257715455148228472161649078906239769053028761053224153029623149048921283632400714166565004527315298566129804465207895626477213272668538543166623202411657719558379426327861334197181251580330290734636932109263063001958059171117004539835696729307286200828777089652109959441417064084736700445395786265202560195056060134153476442894194065054934655197079540512108326637625166951784865342661133789440576996506711528143447782808566182361338290496314142054624531545106649696652105432882596869961176750641748541054575074983161711288002747752928864630192016470872545054906671532549105527001152226794575634394371606787962186016984626981510119431728715089020312153694644310640961808188828894044517328387540186191820730179246387256325225872410162256398105740904989314229422357367911475815001848416178286931786627891899725213078425749091582752985798887381643828335678851625738858384244705339000859598692471041970744336936573305981370373255898078848291518418194520846953659787593205622877407719236019291499994658583703245490236318457475788500644239277895990365176070267089274148068550958721205641217373076273574359057715393578239749207611735147375168424995146038779990266754943401939502931818859189244305137296315898804386281527370665282988366481312028300912280127724541777562942753464136568385894822689802540282976502181479825647895911428466092453184892202241333086606453230188105848552622928825985620487701054479919002175369684974666768208300979837976646046488981604556024188439080201073386804791245563098395812213867990306261395887870608608895342691855727981676373502617018142366809369954246807228165716386877531660708285508592569590209258706579999365239156178755635081005752618113127167176472832432413960097779683997961638904900121743622291200895079818231676161614414136192221476061258916822487179662814060643707483959133467678049070231480919452235167172351933632657869006428315973822359772441390949417103454044949122191990304014115590078006916992987258633572899908436575596795961110462913790912793046987283437436556969171147027910077751688483997617712477920453791522339663910069003449461149616556970810361414208391402477381325971431607144001052263225163266519236086348923742780602719526587852889316671944780539370645077663498442526354669720976607487044685514022418269186851273000188062435105923881302027917224154340074869907705431996243422060038080725632800482601976969451269360335510276075229467126458471052804658802686898612743939246878869931028580464082461802394168792449369215670086384333576625202660990471370206031005449605636120756891858818409251008339479176777389918719450490325926300044369963375135023319497979873676810848627307047243636045228858626913834963141905574280202668267293917419371835628387109718547266481611842564068139719473948577605489453258264701662876623518423909135739805108686464123645207528023883657431614940555964038783238578666416830028850633839484164149657017852891896085415673185338778046797245405550136887839236404638364561247259724054639654368043379270007613901366140245294265962525925076377068376575530959512652775755515453290144006377723705566840749440156752606266810402482324513506589344758847158400755649967545341491678158599692697350187107672663067716455873279647878076898520113292272145265839627878564177428012039290662288637276412086867511898348866610676537447454121499539812889142157013413244808172223329622904004758275609500817804271371186562392734572674427055255387791423569571950055819777314148042682724739351507336213047453181063906894999280006607680822420966419359024982725821535809620213334354127431947778142241733458172518360520926618027397905872146812343119591502157756656382307926775704521650567893308152738196918363640196468816164187260101083554155679241593781298128236306786231652868786990193623413361614093001459664526836311725593446189666978192436577967378263587109638348645514749780558437990415327426887239778000123693866122938457876340483123019081605008916198645040712330386558983502632499227109495551200235779659366053475006919713602906999633563548322787469465378013697058407601468629909158250107449447800300701989331774289287223109994253387317284023287011654904138943324767585917674714993740344252942260525604152803445570509693824612382840817945256908636543280261741644876630816372363940736554159044695497946982903718713975882047592261032981265455884121237841900236577359170384446092780762928420441529591612237124068979290550600350797613178649265103484378385737523070759273633996215313457053718527412129843072079799204035196553045727420272380931521797204699290662417505119151456019681413236074628722066401213498930916912744900460522147078534982380073886715887352452598848164475242707840795630656872709313663906037634192080511255120513565365881958538054769078715161593700834030503753260772188317484393248805327806642214098902470255793343564911691897511893600067093908952916771038436836729765559354862570548978798858078500906492517600130772920032270850463588865858792787609113760784134113312519425467070662152649340975831142024895937465578608930787205965465399782882729597198817397144157628171778989307796733790827607048208220226569667212068258221706310385669000163598916358930793344971671599871213501098509957655492070921015354782355235464362692665526778807431809190320416070129233320409332003557676266993183579029085959887726002036485070299157593781528773215709194232170981166848693284817408022849109282247430292969697745207150623160251234002649719189046842197979105834076163367098662286776721088626231546179775117193050649515524842684392258493111152907435086369095879667638054254686043338379555609689564503930807879297652329733110468312622647078362439891086902532201393780021974759003130837777311031270989863505574857294652695328107021103111597966500479498067951944840846505180497760956799853257565668827941065350435367156925604902426083354162559932773293807946136556123140298913263206280152573576565467558874458905904583762482126303742044087338087199212102295204444552951534671176697704486262091502769579175571593506225846299572347903951198507506324662540349158511139436262585912802535662942751641986699882444073385837318848023825746354853141508246267386609375976689633481842225391343896022955345082435500594027217576003203109188741039460490032730877689494946630798472394381913520698214269813053656068056049896630194142614712398718640337923821383581673107017097875507573386117880804492248681362211123250299531666314943591024382556054505608040423667244908905579825288130275576668121411690034207528089798101191671596258275309740728951088629166807362192840499728261515884346526860482498150657501310857389664810980438725210393944851047242244537546233362643185108302659266412871341717333701149101659058657106123986609925682652387884345609301273539617197649819995849382284036705149984107569088413279730472503719337101167869429295349000224228374424946161226005697153787070891804126561242855422768999987817400003183789202698279086233903221780659501028435718649945010450502666405718617626647547677670571355560156220881789995538810847345830851020726619599176682955559151936080910490050916516754070715744360644313580742282308837523130462141490128201581844883597672219209308788720797623747204739062342874698593404365966003865071514972038152024382773579980965389449994321841725152465454150488614969948521464559674614219841476613648607761949107043123031847018686580967535580300810353366664509046189825603456706784494383493039673922927667109578035669019621566649677629725844286052572120525053503890285280253938435862838397023054842643620472589418383988744534963397039931918544503437071888234429315056505052241739622238920992435076720264514632264360495832107621251655204085014302484347558938075090611083865316663432261861112637768915370099566784357413053240690933711606060374225928127679091910019595859397352526645072922599190535177540589804899579934206404206275883012456297284792254033494834528900445502390201681286542232568631469125318857552366312510402051891083477664222082697481514648677370206239011601725124189602716404643379823618225752851851780190501434769320438739039823353143594242787346269142503399348034209728377393242385794541218667719846945136328132243184243373134041550750271035673174632986202078864591499185076152015530433637731880648306187407117595359862357554601777281995208965164648102428998809249017853700962885471236160107005192917964610464063178995526746225659777785720162611614367045838947803829323592570539742555701835110145663791902472544500631705765174697123951476290120130264730030202223253567323743292675743654725500336556772599395773862170538886076817808939973331854864415490780721315446718879601396546233970351169096348605390203640866514017955311546536526448074448613054715991171690833668986445657832732177925351836264165160755041126316252931927763577708685270384906794297713258533721883937258095829147711681262319036916585359998524615701228204142163737458242529344069595784208938014026166141541893167822001265143926772535773113662935956030626020175680412641385854222566470757175433681076107603142750757934722805405247855470208216249214064023523055495298315930220356625955494415009449078884294051843824259659838350037341774948032935389806257101628684526910981963338468685184828198047313389446334323899112959947783922092803149355344445577913200259038558581110057866687289267192564141722353261902136125666491503325770760672531459141358448487554305728677769232764129987577539722884991427637032584359144333947665680709247007251018451851804408529521995925542075846612774364253873296303740389964220337239692949452922473217156605470766698243361160395319593442358099022756139649074973258320486786717632787628445922337733568787506982002058639752025414232999648860264971843456368876534831591009065655055922004694936550765008405917922944684381006045309465865722976852580814177682886649758983852478769263377942217803197080731500382072360183936358758612787314365638921616350795719540824182008125089502206847544947121813148389312683078019395029009038073844381412305564310973733928638394738446677933142668749268469253201542481951740868864842973678283531224786474118317228779168817783404451366735761657051752868612111690404785694698867232129029306740628092921469181891658490821352839723160074516732589198887857814808089602896120775858351208578624975468248618163057882827378158039894291996526362741836091436330857930708756768184486913913924251597178396564063953106300432570043606824348550702374342590796480077883861799842571039918228451103695241268099158931169247370598189675389028915756416113081409678663889287282498522587326437501297602232100872675853015960231451691889749447145928409151919117255415199332768633588573274414832161432758925801340311629989390716525649268118173382513531525738810756914323303709515910752116857683726505307698274073612853994737347441962091256354437740670221487945853973308621150049465047264210805926050073353399111644082602169554499016950474123545646713698233857004042308626173831391128483520288279548331259568233993899504391970367413804091380652274014230078341476670099505082205728597979535847526137152457627083998876942227579601982051737528260042175912670443567596826230163027250110006384900473669899447355898650759088806578116449655947379366449512413443604218334222268852976006128356673581375261488431951942279886611212224102665414232277541527454244680256131495449670631907512909837618190145577719099106208908811973998987889543994010197933537043281606293530074618841797066608843047150554736037269633399858209261897363638866720312027581844563272527875910488544411468114013725422971945311522446495574441620523858340439457573947557709346503358992286439940891268365626452112763458512819397600984032739572595402737747480352240371071821079609617959815789008775625471937671889856549049736691703673920092608918890223934360401914442548448791593036777235515934532536761778572006270999959245605708157793957747649981294767486215710408084034265997263027611386333625388511584461958101508871869725070542610542130580069169595643015633846690854958452796127341221211858391306518575316535538193827969200321419558556681511037325996552269400731690561783305055121325829922079042725150157439864314567260130470621549334319546318185564856192639344774794079894340577645725214818594824938935968187310300958009484147506823393580135873299598974844198481470997404591974825437388014713342808062599310320255721248775049622638469140569023407669305618808034654416905918352361608990889332764361990465563187112558021524487412384534245909025711496369478922701488504326818742791613936788585389300634077403792656224621633687352488108388627905943333615100227380430163195303445670935956170651835434357256500384633458937998723099545778585615998988508998020538734351305843987686882345574860180283030294560254851506207254575847119090714700052035186054544712472714734973926698652818852650030749170045996057507439473703045241000972275479908849661846314469766427337793830816562238605557240538252012892057355947826895686585669656135025044846102658507024728175475685887470330559971429999371181127215661934456118377821445066625483159802172555195980379386649817545170897723252591762686526203695125996912459055218088711482825284427126895742161729769033150859695903712017375841600359773562739139376775709296453338915070975759991773012630426672324555460112459226740469175001487295996035157676252282548421423315392971797768925443392716490111983236847706685715162814386532521496608642609708797774069129456144442794990680920605352647835829634859351391195319723913973268068245707770003769381023977625237372193184601756583611301931653641566309400641489524462204707325432785358571797804593314674680761306294092605981520126289218498503188091337117133036184852115497966272206208046316527266266820681160558104468568606039595389866343810596470809342349697334973457871243615197617105210509814079132421421749342882622373295403881940665717784231092280362505340488448287948896796732024320858722009888659202863000177193359962860679575441805946588535781621063501884198478110194072235369221052644599636944296534995791039517199860079187475696309214207789378473081343864634133558904650631130345787896732756526577305171337959340627675656998949744251444779572395234053078665344705114410414274547251280726605308002887622692233108779504542821718270599539860302102123773926754460408499889142109617229598660233776018295651034481514138147866304258579645721764056508431329362558277032618320444016358384819865153971098077574910726661668135815744806461990929002963016476539492323104708437965611498700614790149511526696412569200025672838228050118578926496115598027741154615120233983396773965156700869058078876497788271115911092770799211085696636074902560763988076624605852528724425040241815770697899122803414865557330285149748740731915021068640905892753847591598667763130443797707624749743058858309463099630833698867142377631095437994180272244665317436982735707104919787684519979856052071393900347919567186268772411901000174200308059371884573185481511048686110297165372877209608387602936331935484329993976731194543269413848205918958966517945389820586747510949058205654876620830885569121345904927193568497846454710035819560757840297940397524795808949559882293554598286753244658123695098596220643957014230829882814044671940717911974731604121563847617676210579313661561469746260184312094747227559156905190183846278768601747560733953382328500247736425049413090540383878658557165532813630719270760937870749145487892797627166419993917846781545913656233513260284660486571055237714432500613907525635495042773985244729881910099094650139293929237525832408761735243980794710771205441110892072277136474355677261212624153384855187930523127844809712918161962884447941472540876125872987831181873122448375432265908623751815850900905733339749753921289259718251486813885687807922038233412630607957123014146562671232846653110358827986819019568666601029676670787771810400766816219164582498076050701415328558658739544023284803626145571150299180012526527992724570899661691610270654170795617238455494848373668735372874129086817431390029538327632398891000567541152554961063182224089032475003116870944300553303271936533095620119810989182130116096254739824226684695471893075000852885102639641178759878125334322999876992856383901253552019894041450039673133587778795231667711571927014098976943730161655456658585926103853108644932185176306641314615109509123784979016640717524280400337468696125712078098889035553606941939663109189910307198902063827329167574516597101787639567836961739977832242122033333224732856530010548360275728833513500945538009526818199620315053646890312674121864197924680051096431290632747023912850865462112948690625394092658455857508581970634588445588800569054627975811175231993518092972550743592416658005603804890275965965567308332556430661754310279633681357961946519122095077010315160315350708297223781259909629218548331868941990649070259268209520909106302280686163000198627509793768389362008320084638297745326090085087019148564359303699577889987485146870716948648244451994570192158861958773654365534471942117875422055806264376267012568750878850440114075785175456444688533363756639757256087498785801842023359379202915912684590612292869105200637120159727295198503125606745830170804393844549075641661735752451660906437087774093266693119224302118918200642358445946463672264528058437646404661529821977321981184845633323463011512865981377974881718449988787140026248830388605848547241342622551636055130769325018729231723824678173912926799749915059600815546579960935706605215429688906727369477122329544503355388592522845041010167654366786124069118538395210547520370575706603471258567491292979664963963607755507097125090180606401372005856608561679831530050021306873036373076031390105546742400113055561695234290338996915936077963968610420575904407413540722854786729725360274208112913988897840295936067870645198975381695293038843262025802062200891437814400347803417678227984883512110098183935270718886774839838545966461297547962042888745870824502553677104635327504779504935649008288848621595057703159606168024935776939828455398461524386799887692018511228492456146348843470261362944027464773938320288685954306072600587106288589139490710305160336807742999688870917656764032811476515657444204993693304482424177460582772746547411940336075150126815740442343114178230168802372692705137196239563191304791959603846279525491339040299119410726103088752167399893284983009064261057738413288042263616216762505909442261860527711033662842760115501653561868025077466478536843997409961743420580955862032247158984338950587364280962935005051520429663198656337403791602331788583069016866298772305601134495258273740036018001579328636232998586524911376369601974145325454018137767316451395525890691959022870833665407822557833858523205939945402998982432382295304355125930122008628672511083639428171116627222482311156769470740072605458413509658790719815333587472448649490455061496028218007352723222198776406141733666323668954425245566319399866314299556068471360475268752348404955558345567302858475633061639247855469243925960899243133226813501911046893245308956893992772540939444043275052269605214770092793054392084331567497718271222879743420635684407148143644582312870217465245117376646649102474904477036100328594707161885880075556638902163795804783814555343962056030608472711460798447419867647338257200724254689738397841821496425809503400433739440512023299187889305989083208187795088116620076681761217744479620092729405530139756375150299116501536570885817986390306992246283736749895712490256397452364526098663784802593465024358105901150900320230241183448382695919723923396448137932645706621903277463671209987003992658550028699530570227364679463999931630466004941945008663690819450445178016015750822276420183630208298465986410701897468798386083195940401151749364257116620739217083021210493590566550050742055078002504686168077371895705835224662664416054119589443301933960587357870810151705644708996120054312465615475945553906139032980944027947897752348043470041894515929901536290716718448186214269332393136935932273819155817179335559934595809025294475830630384802354231339210326370792684944693547839116158448582178701149181936487313186113346322199963276838122618949045171709970609016311866939042199393662652142485320382569726227006160752991697582266988141714527748000860810682406321516528964788073702165362992732736758852579516523237709192878733572395368238239979318275640358328375759823611860182033951564546522967425300115027034931572160565774298928285725918211896710154555232646175532641767268799087277448917190677474570048021785684729463441462129534100938688277025285839428273764707072128335142919323759866596333663902486399530933819016508848589054903197175196733377157621753103432752957636165485477624445062250161716993342981271488006364799031138602787565103686473835235812709586556784522103109457037934278249184687321613849996950353070900473468265035018843835556216122352479170596389838667447925429015689096571858576300830140502177805845418445268838013268018283464808904609909068867821735271804131888751421403382395009590969215041488301819937443752781736059023648078442694048985679620084816725919566358233535046112541169254404937183830123791665538008430555618405566456572165499990325304911896983700300812927071285711175841752256776906174409315250339224917960614474048787286964237515090816462025231617364106153930153053851398338908204045996696584739120246014947759180700139103217641448352171113627897463010310590346472021771261323160792182641297756043425714535517502092254456677695861112823420851371661415470648653228989936021310459139533754694152521996459598982856529876756286348526779898895558026882565864596254939937675331494456536432432358901849300990026709119300856913486612831095632789024019604556982456058686807302731006108651185320336503121370955484017668285144295113972790850158182576737707911146305386090290138166242331784612547745355873317977406393441444640088131992481741080033560891526515356638639239867656965210952900360268644439892065554300536946599338111738508280086934770783200564099540339847944021381082493252045103763907060971639008683773884312641719365800897045152622538684147708575482788015495733236721085150069639682010069200745053111878187881209641428621246489310577448540338093836380961967678697781765127148634901548419815220025296832381307139653299617838613579440992236397774409469136142079946981264111218942073368687808670471235075879556021981754081949282581897624775090578841449158054799920230024291469363163292684352054385298017642786697603725990374473195600565716860949246822545650530622748171684512059788104068443183543419278405749306437095816760351581445914543486194816043785368782365658294408981130654398214663679231845894248614710975053118800177769706649271305596703196839872716814596809309846942495597927217797310500573377857734131979388650070459298538296061085520703090027021089597741410159527996548585384730355844665661304847282818685473078351215716848838501059235505606533082849553839296138845342160631111866880649314955584211936472899386964822628982490152086158188151961793910559766958135138793491843396829845840327244351099291598121999567005619465043088416226147381904502834287013293154470664534892933320814680779267119148375573707047437752527559822388970610756323559380445816025443920094139052014147128740623065175774462867955658655539400530689456404592359649760033651857532744867747191997105397769438702176905577168056985989937081056179177632317417655450415632916033425723691038327786498148044130679499165626633248176157885270306498627370881843439026365677189169105139331806159664226934747744148649025487160634973155281960986940533127876552475432398989187443615087145401968937620375965843293831895769699371555586260041238757728781840106524399435497308984352738063475298469550759690012751152017220437708071266846248179497775909738828149655862645662786033361320674972757044666304473866614542695408224740939242776728144024665435502516450783984373603757532593857404923352337345546814933248293454438740907742934397865125485550029387239971997236158180092836863772750232039126617286947932720814912249646144019034558950274370999781431739607134417904927837100650710236054438091043676757871478427200271916375855407131151244351272997535234988386240132725848670284913801562620221855929335042378783020596891230277135202222157206256247028489514668606989584066280085604460651367496364716460478145965428249017840322721771612709332448904877434212231624228728224207008872910638894598034347764014001498174024115941314278424556596947942119560754904671654130763353925149989736000191001127101514421710752795430480356390828714991925799342728056316061735047423139679236097545400458126027425701368968602963806148528211066213071079088150407713162397856150377859793606516967891597775070523105632557088384244454716689541869801588414205803705181721300493034049089076254423822317659239235653883804667597889737674698199757828487516830972607370349190531185658205248507007507821972729834645198426406393777570311303201985182688059733009824190405211926458214348662309755063648712769123078839223225179651768760136779491007604849340859213878519459474737727232087246788542015912465971418392590345098413921379384654196779219981378455425032451169658380736772237041055402762148267991041489182612861867378876966084596290698988091044722011738499039249469591770733793948216379190442234226947500999844966972125320846492691184048178152977295519279411879592510459766940504892726454426012222891149100345405352035032610264283659414863171627224786965024350821514063856014357113660372372376390856960860738832227648459957948393029174858116551452474312100706909092586826010506596361307323844747779378507647445693940975185819135679487211685160387024530105193344320272071549335091568889019933151065906723670322078835066502707541884224616094638858851752133665485596224243550607127269456747652555356779562951006992688322475467023362900203046079898842657279510847174476796829112205835124274068713822262324530400605882874659380812744002853200392059652045583051947908399845599611420457776575456089140976792408470382062091918209747932351643461496393916204512892667287718870198338090271299146147009988532464381479349477616760064181860258745752808509484576771941430352014853078350647365844965467617499216540380555339131337387402915933188908415075568082943896223415622126391033678195018395132138315124855729050311725377986707818311318457724611310197008948569648212661058175907497565946586207650472894166907684864051994958657935959549173071858060959986161895349820130525633388986985760845283768377360783098766433972138819375911370852974803006010126190034927089052523221051056988136510148484338107373322583408534917685502271153205936959703764694586047806547905899543051454888765703828117073403726226149437728616864094354945216429793548642696429335557576089278230885905069145119345762336098451350476771648182084069414856845020325100564140158374344239733950938695182600321268409620091373961239343878636670646082051561070893393144627271685270043146482028074374463523691303935434112350407573989658053542837515343377090967494989799565702471687773994553936059409932890365720823643240942894273260894678395220962350617280196292953424702218229085002184446352176195060554762042605359046046089295445456554973478179854723712822328322691766256565100636470956460235360205708496227839351160265657638128361709987932322336575881455291875525761604595013189281552509844044489731600154706062361340046491105551802898274991953987719786800346993807581858878284209072657948378362105845616163628067545451016327921050429422298666726524105856782348498255213478855243660456539908720708169588915929679425434825652594197937975859444526028880214626325749668605783797172026025533472354998617954279387360860952422538927684070047795696963628026977615986593031245288696387478119756281028349359511702292272295436483616534889198772254027410819180272405791422304482522955946517295084105593967717887827717384991962761869646707827860208671645644551075947914491129050280740104400678386839732861220045124638407379978867009058957173237045769110596340151012310389281559589418792271094034365742836951942699294429917212825808746335163787682776506214732023032231934143241281710733003374253143806651271466381377802928505864932488315134782126381218854201099092081209551785464566871129699891459128930788505174713920655100572373191767113316279058393140431453273976108671867055957629633906322478963985484209568126193450249189872073266808859510872341426787625077689873617530552285080973771063436913669452648576926163121127133223175800173958931695585297958351971445618654441928981130689843482559357091805204263096358972955486819645933656825857843422722404888884487145390116294854783261534029246153212796265533374019600169690562368317535290067764725058527300262798759112510536200331360812296886011908526405793543780357734810215476263356418344175090253751644162199860490805192248580577353490278306383609596556298448495933179985463069093339969154116421042529709962190698556056232694653779247748823785660732131189468630243618292055037385705729755700591606734996211927078313482563730086787218025397929446598841352208049750611924933719455354902971837268147223106787952322642239570408446259298353484659949196959548849432099876280145358469981833359074935670983877418901532062705799165816623990492970784362428502341941136590258358044056394900974628970125327418724998240894600001830245961549252202463978241706217627321132492410585658572490965667970702956130423846972846018251425618468273767537662952071223777530053555548615285588910852859306180291261514093536219589541421442787578716878656120176045060654738316415943898991448660821858217432162135894495849294620620100593772384499494428407004454245892732734978087871087528051255486104424947638789936160997022938229720429474016156179371852325196940526429296621263154859461870887820100572023990083269820319846990933243910843318505013188488139493516662089261157586744531558675132885063436240662704207982907063628457093039865788991459938723169940746588195857435455025862922024697750955316988202803967432839964433930384465851965644223217842164935339949960387409563951718937285406531760325459898521695388883690509098166161594642345414692283163335987112835077522256189253877149335339685566691836923617696246938107394642775930927925810595996663898036304200288585865122449611975677972222581880187498148619778131842612257584153989669907871871811025013029590972518595619905613486477436087356693466510247717676077934368410288220027839342723575018841893426553377520013557916304661832250288846893237683408908550491999228911273795434239639225447807615619547145909805463873161578768783693636658524775205412395120226646781069224273972764774834284027599190389823658745042841665561489835331209337188512351056588316313813076408534816141067128326837434248727911474465419562461460440945992511121685069273227630065372098613414943192950013496216593380182423118697702547241956575461289226464989963367126358226942755345258069027299234188723374247518253780536201924330024798144969405142282528205650670391370399148434791966271422811796591452792855506367627410486498004668898040699795527339414015956831159162359054831279876126121145859820393069255517910810101227508513295418376415125459099712348614846133846209600226797095927593057777404694503059969574210544611228793972470408301564630420738310376448990316735672546414407816901423392720575199046842256419263361064523163688067199935018892643957574471631465933411353700862439584204274582812682715319274097950076078733866100870826142207191072024805320914124844337387218758570470700152549866211862663522926882426638538614902716156682627073953683300417348680162604382731681893801231158174863268812677396063533468101683697563863044803135621185637326406158854368928308139095646624072463247975816378242427014735909984663927520123468002964085345039951072954651577688578177337903791615147123069662689522117431149418703215722415141538919893693994906289939426387626233994664736954594580283847557312853296616324885333070248394691225501720719424338423598441329644410542978966155763110090705084551774273571301928681457585277319706122428317650048836789178867244969448716721242940603367941949081251555014597798111170239349520524581612097363190132647797659505391854781694095493281651076760646833516594665644357451460751802522290679160218805226982913010580367480564656725951413117258799131091272785111743196002826306911965908611102283945327143177458541353940797457512342661753985985617357527163236383806064680336900466646909737692882676737284657094515132657651649259394832756955616414606910521805530167194840313278811062130252634678825126277231176407555516313509682729104822993034985684096523819333307337773735888871805884796254776425345958712220743977041384605468797855553150653784532074616782576499328306938231817277387611805057991568685252128993584268371771938703914133325488249204000611206050288970653497340516053390547870756833458236725652320982335695529133817380255554493830714022286980516392678112267305260239110883681086316123392860582528356475189879603506954048042875519119056156680533010392291931486015091185185769095718326585164195726063138115292528507846010631018779177146746892688394094788531787068184599421217993164219512927103475647049093188418265750075951290002061921488027724739123956891411701850382479117565059995518958627046460379582092258277747674133448406683373252295372363745641576266871903586178488147933898756837527472660724827694196763559116953780816555111856725543364553137156476929166960588681042992509236134212191109480263848544683361565222691563618398954646124758583968859300876725656106279763071961236853284652393653852289836546311236543118347065023294786530076007238955387882204986659184191422125531898022286542803448561812924233002084449668583142691715732609267215285984358892672544020074987931805992350144265837194676376850988578978118057087826916966421250696680540288117067004124013139585671673046708796408382721752703332257803730213560222079072816403582995386385348685189670670597044048871368291861108312030251630375860717278537293279799979545587346559516228293860000596507243164037858046481617958112239821065572003652168043344060346187085254086532455414603312159795316859648892397614611048230247348846216078189720905609953906908926913985176391965335268357690835327506698164168890812483491172888397076327856275630481969987241740445454253708703109701391210515863091302975640883284441965900444172861076147592116096308005732095992830851257246667454159384771568402204336922462395089650114653028554222764278417136827971900679456034925203745201190613139493415750116146866249310525830291135568077663044289305919068075099964291124332981430978842303046111725108766117153819981069567862012564879248940786767076421477793236062012066608573689635255892234488370330516351466424905002152072324055957195271160976066994566111861999826048199066638502742754842975461646013349827103913367853677793318319004134927067538297290526046287920707797496772234573052906343094432224782731381503632322077433992668480421487358222527655702345562533268352923015323716108805692154712644041225480938711701353722183991361158374823368758450293712376177646016424452425561738241358510888883704080356556527653871913106673026796608703210167242827550611429461183112156445904118093144582982741773017154066333299797148451348543668418048521740994742152471290689468751291655056796082217384149245170955639079329032219653598221765555904312379656545660559392015364354767832554314355642671632659096028860632126354205940767471701724481497616255440646901658253856080198825452701535466886829894388084762882151325025718130082408204109236332515686292404598447102047915419208807723992837834934323285268666495611738365743113388471501397886718050005313073912705258346044093694499112029572687114616650144075304694811071212806152769726362889565014762296283315839079734698747614340293064875340727244498824035252617130171254576702587620898106660381701103804156979642082260812218359822754601694806334792804350233505688858628323211799836868950100427768393199509945744908689374205422188991954920404274826927362014506073007974148978265632465560155651595647609430865931404004114203108202567896095971761240285755206812927700632175682444257369484584003008386289988990732746336327249523395880168031385198268428312699328429555274335522077247813421256301923909938028733432944811428030256274830147542521949023278963730433974916652291891664587746119232785370700356801011790857904325878662641150969457115898193512629376909074657572177907787876960240813224552483223297592750442722334483926939454594082119403805564976642642760445066991703486735537034827439153446173785829405603500324890625722934795246295341512257367596245320995023438904466632009342241616152636808209067574715669021806061188429674390955413405382706181193646406186616778414282144309678529868495769030535144239329468864469976431015884720918873136721712561378213366413015539775700964795021326254870809592705317834412770238925295185486197312075630069580248287672180620097958064258687819631915070450684615231063810490684384510791968398408507325488307381970208421537174130449186432023423957079721345204781526787885043017440631903247461788078026425470425291605609202588543513422607541184907335995578569091508495117486915522051820206570253571241548793667232989473778869480579199677119540901047089557325032822916932271729327208322577563897536421130218122245803041042813049092826189922274118086659029582781748614924460399528967879627977861416637455297269338598192796241668737540860382956390565669958311352219588475861359072382411769162762571092961990979118703717188074716370292834907510372377220870819079992691875981267883085382590864486979611061794665748001106527545186845847426260398684483896117967906219803968660877779090417368560409939244683515085846310025026506236864131341603045091441427193427817598912871543982631708673208170400636146591722299559057394468584776855073171577779160798482323176917315339184121414257928942819146016879648733266017063747061433774856539383642076520065762619666897771132135783496628475438269989021617278783774711767048313555677547743188282196991422663498973814426830082220236211422326799039422873175275141397677462260330396752604611950935686375868076026772957486032843014037201247007869805186408375812594365147173642014563360639849096498962921321983554581610175984701971659844409272026881431747179697871039186049340419717633003087147780641640364503471253520847600917752288171728535729945425099017215852789051990536723556540104768147342411581913185948512145817328176107840667855994735611584593102265895207194914861479305107255241996960420214268879441112705234326292529161746307069329805926579884176058863833768044456995798620665656752506745443832584331521362946564314807680499526046661724063780614062675669321445089621648481054387364226945810681413626900751253682081064565623545603176920881003339165314961967758087765477403649454850257427664788347799785272635320194334390697838093837598496335283016385538210996085500840264226084599723730178774540375981609462867513736642871123688317258209429028138828035680327993752542063674259746574006760773148966994897988902800631858365919148274585123144559743754593777803875687576140626720600239406263161762227478755821860259062037119509684734203307455207382040214452736765496012676064045928834318290250955463724326391070544481477054344905306915996064065203212877423810530466559946489372598017091802687384284815123547993503901856990890715643837649502989550883305780953937899938088046007108133364511498740995076323685885448724123320501081151217892470167340899710579747765803428047063765806171368352509007474735469856234156752134644660566992864460374834040630793723720943975106953638942518384103114662179351554086464073591754060090437875418196843693812027238098170761888688096901855221698723695932034007471723498958291646317617103859987407825781536547768751790131889965005622834018840669274317763121991042986313544596590323520705269704481139323427700567642609923004060410075377867876203680181344369767256541832274331517769402607281623750421486185241531615477120308447880492259289687021569635221041777381183828660767408828873476398586090414713332849110781273483482191138914930398836337953381452281995213490486556975707133764943586032775937332326296305756469151185043156565986320453681327504640738724679921721807587380796047522800384953524436659158679109667833524764821699378172460489524724491948351882009844946624036444674480290784484026323839234456910464774433369861416617058737309384406617764506763835195122381965620624789240776302401598662392874600044901017446558500597572021119527619936968412495093682714707864026915148483604124095070542045709542996693188180180681533193331308210043936608119784610493654539746785082171880348207532656174316636123963305504169425979266513430496127095670223813757420038546868256008816821526590590510832953136698250950431989525406602324961005966377702779418891047296117371169471929829400606444965344074897990400513074599510858416041949550097536549375840173851748877263054216587920651148342170801090250540311346131236116144663438744398532736730438890061514877065125575523754125511919223987475012978338992393866096979206422298448890028187085934094160051910170431140455219024760100823094991601715942476301107995179636440837263992843181768203117652707964054449544235668088115052104288482463930767381570201833750586083169960822565181975467076616048502280376011554013345134978530102063519974477361144572720172599601233477129315482470700715453810147566684962344965005684713576744415710533943921916314583312574198504479113341287962474051484591415351795559989835557202065478671602425996111563389014954766106096460052686620318686064085831252065179972616674616219681140772504170575581665694265842981851929190716314541378441880477426206955738238574198618213422841550264715878737109174215407265132583406458324004618194119531859670535306434479326124614026812371404948961238788247054642233523710250658822230934483214781135392283084992993645111401604142072044007473359517003656158674896013467323908995333089955689631015293327713099463027739949569733610701390993484893687673214718018927184563853379959818956401351324079625569342350381973632845616179011521995787177361451975891902561476596869556744128844833854194338753106822601280461269342253436038076997403750943498342563630965442319336682371433474160278913268577640584195013299685994601544730935661766600571113037795349613643689839578183226084796903943039422878842226956077265740417018164183316844270766325542518278945141015238928743569102093358304086578598305565746045483035375743445288202722287928152932251983283045101943340795551148850114215503753584355447703865432315195620924857699389467095543951838908945289227531394447494507677832722041269313130765584739460580505201374132738328451195249812693350379002411061624389628593869155625816610993390096335204453101024588463597540958205011203705769179464716410858304945660171499504235507359481235667747360961846237208606900011659376520429874515500160211675739076662692411003318207474809868102988361537195361588355759983875419800497354223942288487495937725838754411091828370426479345192453159238694462438893343470330394018937198110395206818281479400430332738823639822833751302238665355374904588419689025274289027632091114834644570786997194763126110070853853149800386686280114373888212025734313358302304468663208304363992900949414905198657462871366819490277666842166103520431101754148888320595782742998271471988636334366029035909462876118763016392800779244952412930808164233340792763516132268003297372167300285789772947012904636559582069047738100298042868176323306206279655881492207373931705311309825200939243542617729175835638677554260913865970236421406078834181466828703088176049718161060256370029488665540914258473283322827942708598741709438017460639763936631587076758723004769889448937306081435616298115455048752883673955472202045487150014919130640598213814258958723050074229254642323423669593919375171877970661608190350595804811652026606563525384328764477925960560800259016714137959969437618959016539735117937369182402062005270248460315537981715819073537538838756636887049774421484669903299764362194578679759904959223259245762575363362832396963377157908820493197556716655913431874721135202210907103273767670281024963999291275350230483763077301555178368568001296903742121983222252037629718901002672699768785666371031356982117035858059660128269274481889256942943024534253709717762842851959559114418143003344049989490354942734938094897301516619486992233986295612044664989211551555253692842935776740866671882036476345035002310136078774357619803381349761808575044143113257236170449122017315666212024501649567209641230030510680685976202777340838917072208058604135878565270881164842321618278636138711508828015164023007403867860607149117476108952926793384014395797011910380609583161032880148121364087287782081949524631872104356717755261262073660258285602309664022557311359684006585203580977144160095430760056293280149615555381932385430651557189776637991129611413936339550014557203317746924021045658349595249601470050228608924646465331496758441339062629793713070398509422485437744295561956551125979870521900033425651183049243565635598206423525247545204129721504278811245600439317010279381207605095606460230630207019968708110423185141101247067504303958002184313561490204355560225696185682778948241481472249085548432008196322926389965292483434244480728596794155077824717036222201696579496506057486831194819606132536567279263816989506817528623930450562387614553102885983564992023064687151605891837120211788079897714448385392767317125007598387910827946781863391849536696268112252011092458265834647505770817912737791533085558311756896643182051894459217518900441488327487515900364229513019219357827189746832426256262411709209152242240784403956141892457369409926263805952943081745366330372034382432679755519487518143495331975064930860379345400461917364324645876773317261781708000207636497537727952940365714315415347968999851326966502851407719978616205151247136980699471955095133483225997212183251600347388887753396976438746465491178817173124680927461902501517113049310153129831781068713737549922957146552806170582560490595220306895798845848479693350462061307401537718135931940703776042608464632952830876844310043469333459208700500586358362344474370833015972344271042333974955770238778962342772827835976659674767480841202209498907574394860183718466070857211944958237199369233261957289696378025621364964392673468209725531531638477784108180611295541310168399673592859015893401433098728145802437284915522754258077538373799947353470271589615582308835130375555408101605486712991702353400888776076453669525094592848901715096937253213871488779756890455176105824403360944223533300269202808151049050059919695379203469840727916344112255211614157275779840860384467718612786042662544578615492967216761359732476274880355557532328097559825581720452072613793651718430944341234607218145823153466727100646133879791023789683241107527655174465887785021312421990175198589527574062629752749691167815975218884782792279842152866641033986522124323781446932470375274577428269121294797387778662427132592591703254723525515294309885426427378785852247616993219286473220902373783055122086198129713216679153404557883296257138841520399502261922232407953266655670192978790209608560341843861746158585359253755317735322668677536086319573285523270630075858566715443922927688943475653812029731072344982977916378681388796523653525887935754750489850432087300337716850112920612495466799225924164704305164711227195193122509588285900536918362353752638163358386684036059657542051599440542560441125485757975061625921026255197134036443520091861860258047399208938824725274897166524312371264774163498528942653926974242354765309280122387186325725193019042599242418729547284725071009139473000619807510708350223083906818369441316905417463628398137319379271135079720431406454811514200286988467629185795660566317882136970249932185375857875471881868224227323897999400368363319596835089612170121182657248398898664093713559995506198268964000909114742040504392965482853343730810421778014029155961435720278772623421566292718590209603653452612111504248502060947336966309427318857700447908686263857758393013404543538817715061572479651833890360841889954107588757603120673511341356465653624141575831108488671703269177922664440604111699856820900108434299543233746543467925213965998051992626375914576393419138931970500702890249966127239976224074265814502259458140757295482599884877802684857507697127977179470379576643571497270557023040125051177698463117660870831725084529093648933873046346691394131472285135019487431561915957508756648999712107070070046797968132295180645617068797395504334165601495489151887407668896292072873800141582013179142855909603972933333212997939299624445170709891536713833138027407214607761797324707313543130055102077691060773979740585799268453013167623959502881692266146487717244844307810781001032482260664116872366963218591310999564681103924638254424686525786662754280380628459095193634375470439936492989935660889349044370362543358007005335872068369076522764617626353901763236180466960651841190206217112839194793468414071740439419751757085698844629038545668029584681387162194002275723555031861247028121784977916341717366516082896804383384419426063248875014803795923973246185079051750948599303439272897540953694595342146038393244763895428417349964822784806932831972032744438361327790528411348816527249642031072633833063030653514630209508094632500366820526002038008584698769799079455122031264458075650097900629517173381448527513070762934489742634556316122053645968681148414807407452676835198528017948582560267633509377603919552538464622961530555652046538114019957364100877596260138099395604167653430528288086540722554494210027524849807283475024448242166578344668940650816932930599892813342047438472916798904455650142283670576690572036395873344458837869394360711951532909755542073297599095863976959840981423418295005372353819323102726978994481509044191351894119538704136513238785888724140655055463383534995441103985053435382867924056880769240651255719951778539775110710372551321633984720336697486148047632322918274074887113332881129391137953992750170112514225526097387835967184313229000756697694625419708391130078404361958653173189319804697837734846205307603841583494950742726776281840697782969272519274396196010642604164341508817688064148434870392134208291913913313350658262031952751420966660667124447518128790139692512884678470085772994805284568511793232993527869205794927572645031745751867625852466217854564914459297149212534043842015508511493799338854791479597224261477769361518541115833064172975527220596170194156286712305750457308963519287040777326254544847823457447883456900091937406313251302582967691607949318486896521891566457708723537270563433510905408905970655362897905380592217851029171751917454962560306649539133330060599161994245145371969499829410742885901896890976014382068201832013842292408520906967364570738261014740739683017719607667210173403607177616830107244117025141886876865149768919663950632717051256623585332512644730028867811524704783753156346226498295894611607080977236296084664125881295611185815406010081408254717432913212879875012204233802313122804185061867639951517036097869295394756087825182179266365938791291556942362587134066236745492652599210753289776453346278860661547416773774199225799791089711427358686248685040231321433828000364894266770507815172231163639529887012729947263783662054352932148250112521413327169092829067655999713263288135282056704777687573390464478946559141386531684522996653904895649669735402257043229474408170250536068904034168490228635624837376690936981296622696872209616173836385241341024699552036922128890905721406627187253356532330920320539789017854154687401789909446635380861308404555877037951470206324041710036866123724935276987161202449242686589253626231203707957370326145742446674266107873607570666141719146940258236400662978394379157134388022515549791165251125956650114966859189030589501221829294371222675724782044943656537247741106657975249836401123664663169025921938922592508978799786489212146765393654080760998447495395703197150370961013837117644940187292068117075806205509017025634436820794183219796364222470638546741409216709517650981812573414903064440578214107782753865845737498315578455223449639476225270596286532810052667983434583655366241706766874298434079892924539109846467691566571334722601975267917002910733578340251689463632477515258473410013308242690651432363067475649603356285948835559952916606544086298134424011405990172217954715587370878877484413857503250331224782533918650186244248138141664114321332036450160001379048556494244312762644448044806992052684945165737070004729983869271415831285045262116123102305192420919754222628104961849914892619019681864808347746383542001970656469123097081178287724492873295544171107291067092447741448817077286250975275408584710049484115410962255661374981822443341630479293896085148170175795621210487722843504926870908968195796129222180313458022719629384933591813932626368112165683435826792066397519745877468751903998792282184569731224556437761537996086825875400632739863641139628922287279907656415849028320001068509492179446217696681491624417412678934743112002355113962377045122314688118943199350391297442742124063643971263582344718433528944804611719447874304080707638491990866827956635054478089457463494701677107600687897594373572284171032392877368130248783235561951517289347099165595864077700053982974774918904851151503286910431598026856066340761627355297112077128799961865926651242909151013226428958679734824952825958442050860319085034871364147577858328599682209750923737183327742916239843034042030648302954259115096212043848391655176054574315718766271100726730165404613775964723204440520231535243349590744163021830592509710828734110733449466387611391317676101332121291084810669348266653957579054438470873159045415024618442420838243984815477451972521735712832994262723745442321624204753783505847791409852879441058670392174943819832984526840401189650120476287548628673533165455031506545303375830871462148695507577056078003725876313237329594263419507493173177356339487779549959303444371320030089460735583193917536267240880829797910286131939015098317246037074176158434794983556505943154121749189030803786482639276792791644560833507809020723732539062297222344927638576660682836350779966616148099431127831958483827125104258344117314390116988074173273067429244678782624018328603990586617936608685763840777577170439701332666937298221913265093333053053193587073472423958532897061108556725130707576359762497769151551092231395602563398518564837916747323161927028802499708824624930497675882326633722688649534442110612020659365136698058019624163368029454825877085928351870846768567542950065774880741242301328831321488228364588579464674030891101382522705342236834734371781123990740866267528934051637111557012824945000882721799238580727106798488470595110687170860240190531830680588742074547739536401431606064765401321426732723353704207610616152705017258213734461812951552448765248851679544185063375813222286101372822959559034268157766561621117791138577962436524311320214801088149013220437247329760066703540184647059920543666123382789067208119474420156099845956215883498197088010559803986297941966290789144701997681241144055020743687507198063910423852242933836560961092054813920755027875801168631302666113221440137019788839621965267689457309692133812838310914093531983095987077555906680707229187666223455461551476695171247046139502076842242830346246664465062991058584179992453674770769779893371346558826919402718608146691391972149385487007854237727560923084816371082237052099993015188468512675392541063910159850137399757386666208556095961883121709202543194075592034679254559488582390373458757601207625737971024364347908718148837384528231765603845578732242249005267092526877497929240883170907655913915701801024203010382703813165243202714212673047411794111078111024093396896035084217128583378570865871362853328857345671591731754776904267686513916448626947322938452139205372775933735716306362867361431080300708051280729871855757391515488490168681223413110049023331303494942056676752097715692882536182010904601254680001014837249315227826249626088687671865150595818787479059306119874915279638047320204481908781309454008413012395785684498066863304995169905431143101713868690641908518482032651666691697980579940373483347185030959498989654507530921073054359209398601808689716250647256343089951868728992754806370013701886645466353055802359227367649209606322412873811492069405450185271432427836967530324478973928255196949551339991891162589575329775353378151946253258641178770380637396772420897499293632604538313101249450226945738210052051478721519114814383235633978857663448139151098102588602923935030391616422453619699130156881476277028137678048949825082356346244103697853187585887053137467141388536855386902459300820492315758305855604239329822420516079687366268457253199957619878890887822143745375858888132736078912902780879360134243113293723347841847382828080778733546691609084415269935227205260694052422875760388035114074262292882427905103305465659817197338512687994945597730077775456058795462346412291331434947253767692262275072790749889775301297728275603733444914067759562099700501432538861158317649172150261287690119411676459433103907092568261405939902520725528174392814341746157568421334958624799004343293944964316826768269010709100963194649819159891539677755018626976802190721695414407370217363274181878754196399857179130359764760952533337932526958248150803607230231861005613258961522617711151836909103597226639227649759211214650918216992400141982830010708835831544782503160528983602740607205887206024806163047930289395053291010674091055943449626430083766664222230511072216541538475159004372678377984377746234083598406396889513362144153745944389085978229194666515928640217992674204016427017837468170513074651917531222537658470372255455206741605047136935741942892075974865523038782740824547768233013412668144715646120453680613768191101995684079256587814450355705855754206819974307465462526233223714295322377825851216377085590798173899880792513668674875017794373478260330176488256584334389435015755233973695728351947557314243926394247038019735420015461018629234414281888458557175720657498079112910599054839449040823782193312133763421069443042291990387587771051668099283042500553380680302849419874387850662573031672422415208232167693383445964256285291547001068224276118124482496657056820014706874193472803597706382353007087802236573678373664553663868734809333927990345839336530499995203048416045833391645655213483426709472842386197380208638574720053424367021614407901537110344043455722744667912895234857440592879159653548487041602297422129233738115889861165709506857067385952144819493611806015631088459410503117229698764468361860162256218300878859961393058049968342501770688403590943486316284566227891342556514491332972727705142541024574816838739104558872833952572825837198183611594192566547371605945587656136294087934144015720943493520707116699128814416746575413048472620991538060619097679330313609383285017339058600928317206145876333173441403503576164815051113944023662495526524098431367726891224256865366416276672409402282515090951176701435680223237819246454979846706796148767936075740326013532494827651905434128551918070910886621706992815977827064891559638227198800973493943321349415728477188756366662894454151438009243968813843838626576823443512888639285122323815390950293105860689455194487202450183205201206156341879287401737701808066081187969494434630764248431729396328676627195208822005119004878460741016189492478591360132935901442344392493422738734113884441991205518326648290641452466815933920878714878240910700877925527405226532853611095339143527038789381362427846179675944368001104519098937987646191968213809496035884771371895645253557768658711932215185102837268097149968775134673510454842359924861829834891423209263042084404362059123733281530334095563068007699666104594152729093109218916289254597642030930322198769385652612271965701488187275859352269889614037489700195251905580684147159213380075558075771885725703249796183217708803169769746376258117827604538717306123886694781182117928678124846634617620398881886929616350836403407966422642912812957941823428001777482547621039768417829464419209240335870575471967191306564939606131910309783228234562155950029229809522553876409093481563679985766260516390941109873789821639623861451287720498179744211888169312646552402086184654683997802888289204313719065364729753326764902030313552863982818477984699902381459882803392676219864590054150768768979694600546384526543291551807232109781943467162097847270255859525928529504488519512617488757533196844428873020657813741067786330039583298684006098561478767756626198159536943285155569839054455716849511964691335474685702799038344158983326336226157956837552902818857227607777007178179180994069280881149987686529316175464615071623583528734954667567241144891350616161742460731819274132372687787836578197103380287851634216397704331355658913751127245000817416451131590501716944120170660925270435813640970188543496675389179608773222694214892043215851275662426094383580511423183378032563704963382983087939167321806879143989008524810483310511693226357255448449495247373494576949985123926727278296546535327847166737119061813122487894022846817538497818820543063222128428680812181866014898562502559562312508338024932467688284126924515612686044942393932876069606246868632024398803650061956755144218583075552059549454797486336560122932608745459599452501340920806352504489846732577759132046886752926341289980837249554908498174620822833863916732456081197902609786916604048541280490940462306622978138797980637498123113453491455789836125374802189601597449831207671916137611742529436197986356955319816861441522008173620936532369257755418864616216641449377342928169290758833797303654494162963069418796407284313669425798334299973464781983690169600708620193599558325839104566564509124461384064905583675418930121781692936945364583844279944655750868510922270066346285855760574791938622541359100944070261491509485644925254282989429343712248910897295142741295719883312610523450899990539421388228481421456761685751181736252215188549262467038756709325884000123683433755980806500158438208161554843971166272614923606868250589783891739110962985551213355304637720678866998984847651539093096129828769245889614508633306028608583051418444184665407892827498789682711460863101319492163989328604372232057571051986631534718575487795508717984767933718822981775936699092877983051430026733092692030166893463457466008663856140522004127433601043228791717518614902303278781958532317207726361483089048115380057890285503014592623485327024411241697308183017470005777391931823904621741976595633184906947644452006725593973387270233560020752357938913554210885051684781458101816265664717290202530054319058073500351376690291350139108368215416349724316506244870083058351814382608025724679742479302925275833990600638623659610761914505823249323854171089257821029487075619725959437161789410700977662187878727742714019173495073129335780677531310548262521585545944516243934138811808070210790432474483254416255439022998577898182591533698630721488326416443715622544112197447724262113344992706309416448783267846701976614102456375174532646137902187254473829250856598858862157684466983006586428309875559364478223212598929622879871954548580265402454107236100975427210752093208582045053606621985081470117219951636585541869996747953237410986836200182309236758979072097404566851863271555546233917763396791016354051783434880430851399599978899475668779740853161134248778460382498892432998992198603384630418002385825163780619845662501903045114664852642668198387566848319931271054525609713361807086345457824402640103299907980122221849975164020045919337991982816229483170051501052414281176693889432773405361007310612766493158789348169458534688265544632849935501779863874798240635594378932054805008271879318543590225745693107824156175492093232343365238659367414934263609374935351975151243804346846806757032997407140250256444139924712342652000110947121773343259528691360856377662001186661511120229347735132724970080209255077887463826668910723249641005752474262439727414366496888731299532288890511915502240368402112534363532165328521517764709966365528354737580122471577805453440274249592487044569155996602005599326154549476213068565778952366152367673857509831121623765691182279327111501763885581862118209666007450247708209184710109807513474214490616509692038940566507560084058767425516310403645942268992036115250066626620804966321395686667351536902235715524904916886421306087584546426937644521194222608436084908243116904804109375601131008654411829463520666658543197502809439582532607010892918682633102689149592750600153892127424358332258708690318709191756141176881021289493211502304531417436014752697560433697964043344236154278018431899191946612672582246787278091135151447257076506213697698168031299214217607169816541391225900596848561205742007338027159138620282282968125690313671807889741153063864805536311935315989212523494461211066582628264777157967301358620299384949950290773646717219222509196641918969525633585517633056000459908790337325654631231361286537334011314617012551449772416603036578280068617626185164808079851723085014913202036458482762311974245328584253514371145663024625976224458086241653793138082917713626485626121006846153304141585853080932447326138179613391699865023692375576752792754573324092978193488712464250411104610053127114369948355312173794079354920205107178368857404343908422090286042476408236733549721607771679192281897609784176376829447068988656372335890130249004284985606269070371183696084682913402607660490946039685185690822278667261805498801378625769429550664042029967543091328945330207164206575945423749696252181140647817973694558329922951344527902682053070303591429884730293103762843300247626025899843554083397662963163934606348496833905719333580851209616119670936210437098676261784115075797053079567669261655580255861034700604293780251406938886506822734635934456210808309268067360316205466951383537917586247642515248262695832606531153457431312501497702819556700455291403219151725184986103701462702483725934313754747706793920185091510371169441293940682863097936086628891956241182261816907376130370008443604128248065164149190111505426290094454976589067752507094630437061200155666533260450520138383488342257477639150400382061935460684932452105240351266219399575087937404078399621828058657461044050732836369974980368427515855969601474158900793127098198182574382658131224932969294051936941564731814672592024040529026871066148772916269043987453713081811603982205054191765130372324191008889169728117858162918903849581865167844772439793861645326216378914147466982803466144375337984075811982866489267524801396668127786331805374660412007522794318883192172523375703905554541474727388607469866882598197943567404941124760477797944599107810169783810066786722995461882384950259965805861537464478107731549664090886934837687801533110553899287365209311920284419806134140075505752187137257088338218589923014534579524946744523191856030460022966161620071974766028674900307635605685841712268906854586655474427555909276758951855100182115120121806493355666391001361735386278206389913951911544137690742798629076559538501397881955564685374815396111281425090605297569424769117690382510732809090085792368029234941323633507005454208416633046476367908934347182660579955757451255737045376127291926535843296028048647180053330318479787312597857659537754410668488428086413666910950390927239833913228653015383932542493333750213258465728941412806035386911188027204700381854967339446682364087897815703258957701131146608766122101469158874887989274341513561019991472820754916166822905397303075001593326871249421288140062472381447896193042109480096495497719978836568303754039288525046663655662567630690731417054509640414780865974198376035120134830744785235560915835902087912607155323268458233829252873083736412830308522277008067750741268050101666918602390182539698969649279094557694043474739118715068380976182400792715187514429058644133905079616252671389913274327220200808691806278701815823468582923434928929008054906324322681617454252501543629929597543498333889887352683537609422987825321912911633187530065432667430662110915614275267179123746122653527799609345684635411608781311828034796462845532849799914460078178597602940863195257014905751315885743615489120682409722495951928592228802177770680139512382523115637666343435792239288973073572015705537868001978762257024689815296037617437306863141744943195570373791069380369036397220057734313482998787266269531220528680499218760834719483114526242478152222516991974187122982258534385651784652925946395405143673949058582607218775250806184170500558508419137991348193199534189046106282880176548766285773233062363564940312714159150468162937842222197164809597554683169817154050993100852135861412697849056294309964389143645238893367409616088292032180222281670037142419541732900462894062946557612063152994205637328891669590901882558536629631577976405033415354505010183463404551461008624300558663019419549244368136885712279013117203311509218644885557227818456643155942485561596158415278766930805682216219795434330654001642264569190556776910787956302145243586571845076700802858891218147934709680901634821822473337749581160937373787242468952402847482550533322822954657937284817485436937454937320946714386508635975029781976032528323972541439198289887047035216368059876048344100197393422076307229623783478527099535078783176273432901954344582125858976084054785089974167988616313899731594681477866278511184824982504898461020645889609977713628953679567535645921047461510041115265897843518541136304888038006291554314998351852837451678856514871432563496219416206158988947515595779267956773153686481150479808794803970069624014974288510666824899821509166389379524113139996147207214577416465183131862728919669232535666100298277071716007776787421228402754793919793108650793854784184227769536642101858663439076629653739462260381212745848819841891341456627754010035463657282545561823583967899792596106285586574809044073173441690487534359384646495125571542049106656190325899563090671827266446249182206449320261590091188131412518596549516520508318523086656229749097125150694920299392430535386314340006890923606972459159998147710849736889362231342827907046698328540619914394430459715091577834211713876821673762535076438252033348845158479729354852026137078230873041691251429847738733766733144996069188574274792957540898584715406861492841676974204534632859634500995215214555556639883349221963725326963733253528688053950447428736444520583920896068678471023925631904103066668880849343914974655068062555403018879786557158740801029321086849469562533266648004788964828646354655179407836647985836438859870052619519645599615414361509064333247993487353707953044122696989660153745063429900283730031488528310595428799784213652150370388505589411466908134963875911123037757511068519433080749911617536022291669403531683347726986807888105405821321675248041492782720555703917692011988221572135663552927462831545065312048056801155947688433109536446045566769555906477936543016616460376057062408932981837245125806829327036330187910750481285958452278582863419462030521602460120392776658186072108560613820250363935476861492738449310927547868865405357888857700191075090367899955827742110816161706436105268735643812997540989251849791847898289633542799218962644244532579424307502012357145146625746472536317048812740074652924907627608962334124376677485642238492777159167826845630904798633779740632438856850270095235955169148413277781506403722028773375546758518425547890044544589507671091187584725720912422656947710199113349639750207838957365252137396202519472090213124151787464572919496815507036755300350443369272623101416900059631398117360984994200866603653645629748614180240115630750385357319722510092724718500151419723635489573099179056131874031840369781308501624795085037381760540930505855254623756205464590763978825263412318060050800020087699587129843133570595274480906021399232579063494971746606870063233933824657349548010917536237244424624353847571617598720601009696855415968252801573427082796587825178720467716694102529509210645289889067680284066142922315810544302815700169543554104136929701277414081987684184092620616161424828741630269735575942876931534936477890305624274816444490956332462259979062641167868315462714675541312263032855704434167972515641800945293976711504639637406814844070773851357297289551771393950169200072995877537795473326260602830728457891207906100390533598270893725460538445718157404043081679875050321930905794605354349555427986309703890708655343775309417212486467900208974456735364369510041626348546284945765629491624027798939633618974234814612430487165744425692592438323204157598514159815115905318987834720290568121948656909324896293905917959944496349993209191910255176271623753899443525369819977450383838113430782274281450272521736481249422361305817075819677767052410089823389862371216717402876368106711062258805342715712231150958239920915039043765201661298549050924067276926610388423189529188707149032443669640883908921653570032869255840202168986709404881481046536537249988347080005157208019444587493696174950841066520342179944200003131675010376493376721218839885511891115732752124167371980980359371243773404176202623092906368253226766245990312261200071350443911304794154484578418028046758353578262336231688151384941603570115507728554578563352091440981018871195852771272109765062386266048987241243228605126390147163746134970504024003107812461923042500864530222827067647965366856344834084161327488649224444780704109034116757187042403976118637144781599259019058549774694342365532365908847561540912471974045751467134269292880239485226643771231674149707774600167747058040862346730969643117574259048710556194602188754305843760793760248342451397213296675260243477927860218092534996289976508461967380467535370722524960468695875722177531152109877078119160164049826042440716106819416472136810111349135696925100032615947137998242431816463778255558685103517668844800534155876960929888848866762524660640522073793189858527463106293004008026426083972230865006755077023371240292784650076979893681982152940822053219924822988431693033600883649659276750345494299924171716504958203530226752010896225366856949660594459866573378370325481664325500567386414994685511098425586807490818814303739516273842973327237295957069461389419535473532193347755372997424033152446924987832670540897161720956509877195323369106021151336543284050076797789364599661393707934718313563652331675152226259256587513470938618805794057535612834432685378020472824020846934169248021275440794810481957204916921557710028295414502795710927326910884504519872696611845138781577588959588276824279011049205108188705133206087947013116313947141498406790943762794149001249283537565747342523907489352876468606738703613476802491470861957664216192409087098289962658442489844199234918695105316090961166199047323678838733591072359654331574762262749650623697925605356753159000863690413229658093041728567788481489513162766338025272337563885892138473188020360908823891844054443603173030778778426143800315721096562125810475068599537334647864949626025418514275591378406621815507575291189507080295674884508674307078779874302036568304774094220825649324860885158342845252655810535536758547401607660248736036947454477545704662510716880750874965640998457633038954588366377556246809666379542021050818225288422693628222981085685274332945254611389194002689818966720724184129558050947206257984278996693143584690912350223858439889049860786897076986601139591522361536549471306397154595787525158833756347515108255992966693140463529791496012850023827714547039180818611302589849839999059943195878649452475207318096057728336404887026421352145228746242300915769086844523209755226662842173822588915745495314699285878927501562957865045045435343077713541619117575432803022702138668797805984207020661287255108582654405634140183241424018854819591357892624905715465316170750245444270935655311257278810467932687061054118197158906940807433698948931083912319835335307949512042005129321324751465988078460764415086266796709269402454338366525843845464110281697139065868773418283402222646263352792175737594899875068178964143695637721648772953920470613028150214271736492888606224740442384194169864718832721172706417195843630183392425955883619396953196834565270559279318431259268111057267473857980170499390141524010261905087317450191292902672308107152618007629215877003868582295780287469679709465507607735078633428653797679508796160610577306940925311175088594862726342535192406987774011947576422250306523368555423951367523324328116564476592898737485088374046859036796904862304364167067570669727517135311102000473126009208985174343155745848734072103819385504131936739184243672770643374219090297049361779967004882653766106130678496749891992315326240571003028458409920112767337839056383951804581404507851785329504010886756394827287249678310244323019031543577678988152552045659193827425266773537968339886532498974713373297712676342760345431669753439044538772616891854310618990376644003657873042167303487480748991182125551402310737273872086647849213804217608646085584730637316981755687507707490152514043188397481092403494773864434318509342341325394869522276299252640792193679727753992131963899846211594994219867525153983824397623768761645334704423308481236300865240871456130027628445333132430611610350045944946477193781519167729137762291595467326030944900117779540723374521222269967498021503061588444271495740128627586066517026813139048596745815993732558066816897344552393007504821190071995565308297105764290771105736122733925322284889738152006854558929466643322511399387764408059016130925007059996088252311260915668550846870718989660454768669371763306675191841548653498478059254093584316355498279388022525338699020505094840010869961961394738021129396073257391900964017786995531633406878564184632505837513567142483828255656972003871750936835099573551012611504078220072150916194729932135676451853749099981003712850062133414040574001732756637662009891121891087593186778729190438623381959765818068927856404790077748042644913987384070964504220711841881604361298286320255106437287621001207039111488114681717123587285338822161730088765161175371531339302920743591426493010857451003286172139034730210715939511004025642422229553662035342741079344311415488308057721088569843233629183096633053532097577765495669304761043501187866359032487120198002236456902217129736396243759431360286642119798733403504543660311958232301211435272623198389760117676294760216534854734397908917997930684257228390670579024393120922856730217739110981170927112294151502038004285539229033967221871933244466900150670134055376618974358825036818183873817012021682921206500994670576344967897915149951790783016270496526768265488113115989193784798815496990767031175694622134721456251554554760540715103393856283055937512903218064882511907165386417844265051532917664193931830718531953184657335618150209738049102732057589850179245632082423397060920800414896697383358664881673816012385200221469697744743305645760422564652012341335597841807669073309452355068413397946974088121061999002274331688725716622648449600111177740629156638153933293514704109568278676876824107220938158636005265718779752994848313727167516573043474186520351746257764784896870828139351568562188737837082462478761076124305574068890600665249517589049133455410082215892072824109473826116915283314704268333289703625374768014991617003871955834546079959299292616819022059516976440145907449854214775210341046218646507625432050975782010561171500599637104826934775040773267905425342590572565770482087994181630182835113162685049279273561735980250476074862200229100290144749543052906083318229500595116854849558172168116026827304271740479132089055757258865330308357343225653035300649017468873333196817149652269140713619946228911245144024770738539334465202671062047953343836563172406298912126945076232113407629182974657157656775529020560018214341499573156488116484955946122748070362511053633087448285745144100802558849233597151935222281518022346467498759812583508626887645024280052800300426652001694028541763845966660394169370819886264841481360727763624346278377074301579042186132298869941245916611986358065656585153817228954976032540412975725111547491024097934413518868879198443917780909963488128266915539810167804408485803369894344833558363765442498754023605712322892183816793248715023482267126455395991265796942995260320158456406051103202888683844377158441977398675734212963509636118484117918004728557053039032750019570788820567929466049820357005305803050376182822673552910862989511271941128235326294173896579305070872685221989647627676891614471647758253093552113344264279936772843200630288116440182483839545569970468136295612791661790569191044293868800267406205824631444257205242613871315653483242089097312532947961857506362821578275945782457946495187693608258182837148927944927414512192956225278496573008272437942869320039243184948351140662086296342642911528705362123906977582206560751786798340575606883029192105589499739492854274709184754271348322080239681966989376935775594746529383961300500950068245081180625860148080219427723500799557513234713550910294953929938939251393895358744300982634805335427201964895137576886093237837682223682382588127551472592758699514466960032905543922134730367952716032549659633188756538135147101665262402255532337121147209551001607737518474526306974157113275883778947626787911701452625812263306006791488066377008966793759071453494500318364909372135613205003408222883408376566461397161987749387028109635893293897895669716906471396537198743018146764506838803975516055767703440685584539040163659205448068912659502013357715514737991606683887957100652020335133631068562836625308709435922037417286229419399797508781420743183941465536448933868781712693075659468965872226476138665514099624182259629662351600629530163024769260611413844559005070993085533777902386078717572005427268853117141097380537312465559316662727070172302974919648100209757335693312924565703870330017691111797776008759206507883460335011542091200674518099681934412261853112133832903429903030149358943290476816145172090684005203505381651217981900242307728326593408140294372312773181809819606554629180363791204485997586519129114910180471771717172836389647378794681282439810263164182897170805246334899433331700754462989211693336303873021594331750653563346496347685902978288773076121595721046960114396561551695558943206787239446540812181048910384025931104310606961386865314902997591966032807781927800028738899631856630034652559698842781089542874441799200509889410473596910751319978935660884786958398814743344644619408539187207573860982425664868365014534318753029155869018651067927204062627754563774830959120524656476311599221937057660101564809323878983094883577256417902561920566176103106349665120729762994438418839015904699873406791433351473707263633312805517000595914617417260030204541268639976981022936095958731309936075962504363112673387436274262647826931431073782070405326109350942544193179087303080913998606123084499627542684980160309323204410859317903396669812355164688200470108596782804397357172038240818148044537771440033316351692007566308605593842631200151602927150835565372931338269749806880145508535552607092312851244515769488066204621051708412995759582157311389731889317269599836042017012969831323241269101394878893962779176330916103732637130281575912800485759587557438804443005500325471978873268365181995970350954069089028367299177436754544240925852899761960243815827992412634241241517146870317897784496849049350866589922923845264752113655968914611619269779695125960059497971019036608163330147463582105207497597419936834946923232179359013708054245217687311568723072566879335871559769865577583564694034602697383873347228561525372445777484106586070770265819505651181638224459434496959240981660763369748773387011124647136149513954275798403677030620303333303965080300995998830545977022132458847694756739527765457855385203808672427194086434420395399081905574452478134458094740001392714558535831338829876931746997010615308610291167848667562521502075917496761047987925967498835041235927732689346355384583838937821231262560014434188852397786417107323246813650207507360990268048069409537576611061007095691331316322466956628149937733138189065643881082198961590124029608121940472825765489952814106458038726228902167372157719941778532091904152354576862762660968344904703190814465325721458902239567852281429043017835319790404660659071074922018145473437418662043199697494963010706096519811639011743260673870991466795625338577483113332080146026523061730423805088187188477505747873391306808620106490267411485669294386474114667187550897636522067872909502761677061236122764306516910543840239133155936123370733198950915575827318708298136987143307523500530821841386688678548402119452253429641099407261178259205108119218434165497332550851027289580130949370894382365226166024488211280073236901683912256860922553678127109788418029789141702542941674110461496254958224189171076303155618677156072098143632851927731824502285838048928359351095533194367424550741740511746532336038319505100520112020307996652243055013595723917591344306066883324713282942252320188932873269911241456105786893909306538247184681322399735720636034756692609083161703070731042240943168759166060354761339519861205089703820319637807728593944943167490454402709450058364458135653166823219808931265984636353351184506672056789847987772872834850833107182125015085752304062377982035955957581755756490147872604227004230537333237945169178469844403352862668799382139238529182905537806773395868277423322234035920764079159140482024685641350675905426832433271071374988137940940583138888978378059727783378343688349491784897980815477965995561778732607746551653900379824277312918000631961069933051197746517568528352303151949299667122925428571056934882973183253920291175519375511221365104633038440630978692026562772619845131396879001803031719644444926799626241798486968376973533491493314296891824638820083928519945475448718758181991804527636360953749887103168052441400171103586696719976423452182615738893374046143728960298655634421671223057555453723151893044653917728858492198330189663535734356576443443249975881882269585743124624746733820590521302432574459328997528927924230864808128657227741021020023644097564242393029703541112693269120642123153720263077396004783191350045641483883582801287338039272037888735174295319101267879522293077577391215816798204023842390560172523850268372435346011022651380508924886931783177542307002516827637301860301417389014342520593405996799616247165667787836549866695695806179542938277363030922655658302239993931932021879782711226531577626870141258767142090135778249065272481424626694515128581183327391546032083890127282420190612443359783560995473432360682618119302450800489983779399141232816731299921958651080981466376373020215825774320451774052049026520431384691278582939957006849076219051085551273990100377070899951759117540812623247271082172590907904539714520544310335058720915549350304975430624326831552520322189799503383022153315789810409455435538398761124193770551663967538313276688850476231669671924256736898416284831027928976036549640138544852700184562867550793959643035537108115553353658046543272236393818415130882004773676667074856712134658312754700348801691629727808579539649960739502418908281185081724786368274111842458880837556191513643723824870785866188736118897817008780479902516912529178906233514996189384248608912366904164518480022226925067117997460604100853050288989825630291244373319410106019292159494050969077488326140845298906664805236153971434903125918965484887623255078245052257091946617695923898136245319065284362649918461556123317159052671501844613035100773483036740603659673532548667138831782998874094094813432440818031535969702236233565733808416353821127180897080056784591922855650084848977405666390493736316173677072058841616667672066931584993260461232881014447919398403627279024269071012816364200992214021355233759858366609980091764352213287250898726782342152425344359730458066496111107580382805650603457692105565651173143580716625111182165120376329917982731862620747575633930398280972814473536983943001331332239892723291582765081119282052389484362521708445324252859648391576990137122918555132535781850547709302650159738841998415196231662659495102215553809025883182068718248012900167988511369102247251684288429519450118005683875395086897458600638802632880941719136649297201127634286523000519061272262761409532948273885311226348470606744538272926952465006046505833546702706783470715814598300124964898341944749891201426956707979889928592883156674284006563172845213778783571299385046422599295750831066508720477908951942470501673725987466535724545015746322068120498389145240293388004012031600466963537383105163983024532829314337524911291594962584906258818425340028628801656236518393429778569508293148858177921793445579893792491252120832958507494826848547014359405937698974034250823354142084542805280301261600669882022517887483001985049988915741473927404690962625947558514439396749392804029681543451707976706214319728226419142374691408861640785163860099403366667604388734596952253981938310862421268754211683924970055199975146106923246164330310995562560573874250000324980612374963056525704902448791128251504075329360608843696968006195100214988785909578143481247017240148668442199917268179169424775551489819516673545771862959686046813685175586010201077870583149332400151431344340422439889521470608981248519612654374408309465676603686449899091948546386531962456836666193466483744804445749802890411116685222717162807164235537667621175446954120515950083270875568708199498051308791293324736371381666231590732674812092269900897226743542743741448785714006535669061507932094813450395151299045400076441357112393076794158790465107563460180093138225065931754366243164335412900401313414570062210314614211803625377976193112970717164627523884168032721648513295017796077822173431681354858127740495717719918304722461080953016460971085937898116784950615338056050713435331855638597692407550189621625059026936347061465141822025252642072522481043103471487028443644205153480877650069746438029767679763914853052801761970100617076100432324744002631590851873541784592982003382233941006089905608309371647986997667304326543937399947800880367019122806914631787630147115684417740689577247501020609336306307833063708424557243224188095185598122039527402387536908205940730252094682613299476145428764417037626553836999801817232874368337070139065057495687038023806159638449923998219010707444804139466494539332851598721455754816527301349444138465684271196754634758802241023576579902819629454121485012083619857988100850864358245949665472795511418185612435605365624321704626555991034797639496173065360556963795265389745481089926983755338751288705146749198038183332662406715874462549916302181964923163567933718799684774805260231374473788615840771314492575971540174046140062845376239725274199161751494305294950461826320635461925529692991068259878994476402014764030979693177834764613810621658883021908325361979868258925917880986415121223621136875096421987145305108151023187257225702220558636815204936593733067724828484048012023195111404024251408067715982279178620245931430233347799392813112733637607927985008761571618213604950491265268575063505106666106430514951290858605316836636286687904561596524370794905892284047107643419029261735732944625244484003967505123090615017604093390315841632673689181576974006546511736093962603072858998648527036779659206001836092888450913278776867218966309585089220456837237267471861868184751629255250432955028382664836427987129228476022723843359528993541990998699949006074833812289680001139086724371659437852807818776496152630298061930958778504442237088714112737235954183788942200318670587952763978698885823274204110418515097189092230083889718414223951601723458363646307192308054542935991273543569887410586370884730659896502449086937945624264664740797447262299351559647364144509666690944394947565815403616750266520913766984708024149457411270747168337851787066775363960832125803113568960320789176715630936988160564950152172634024619294985772607811163963176420263115501143505271750688472800001121233141117334855747040304375513084414765843060530783448606513883078667613557052648222273135897287116527711517268340834353366970884338245266030763372726749364569417085862071322908451958311104618654927394216884659168350699227695658400645921874597131071262909386726125258580750519078695776469884525713327324468752648587260018870434909152110123076516958335013871811802074787363329519995542324833117325090275234271388453841467548144753147717901257417751085343587636883613639894998157444930149151871169636750266253092892044753777773633227463303039836293116416186715566269667665790046815244699453226344753364097550475969268891700330661820197045204209695904492072480595668109519906723833269319358424369587221422400632495569277658832691512534143813277644874430087356487324762123472489376909755686826846863794672728751855688374409487051354643973255517168085316099256714433268121876475658640866962007133917666237910824941977046567407851340272238279981982824085078992050784127604979313783674460708453235311528228473044608464762657279843651965273246517970132549254034033714462815303202717871892576703275622960731269964436641617626304635982153509407166561260692016979733789796827693280600568813758439663424036556267439296738692244888465036824109878392733571648145760740424509693496830240859766390155807518785026365492012147460352288269142301581965936932624454712836856199367734661189915307724345878737508921986301311296486836543440525059468275327733099388610055776097257081097709633121913443990814461485576266385699056076008286154316677433123085948082515784095156491756947661544941148806073734921836718911444914018251668331999970843122492117606271705016854922269600771711493163568526623002752829962429902885762961568268914533318943808284785143283028854095086366835087516233405797532874052871933314096846806296718009676689224683804188695152040088160333673039690526316663521107242045351641068857323592877468286045801328837714801870603555612280445454017935269661808681562335498417647121016851807969028703228267644436672953318164779695174100294981636404775943914872757264220591762462269127741646907007730289926267058119625668163362091739048075698041960824501224927332978645271323536705936327970516040987842744739547366834549305129887098649325320431249399957897560521158650934622735485378429234275067650697898969068328259793213660467392120185981505217285834030436094126025064782974436624979428479255341154341900427882444205658062738923871837853274323452604613963753427447633081737031918705890164852410280808575940524945479682503196584093261236779940967753042929331690889399025748340475504668721525677774499697592207370417399124733404978519147421319729662789206699323452395301769789076240400236728196864052780414133352403690216149367748593582425179028976817253663419675744190682352552124956390968111456640392339598210154646458702411873501807206726882495612746598788314893377828551003099828554222624907798529857435617890344160160730700668552753129870268301293628173556549367756297835749574576578984225244157775128820348265724622259891961611583971497376092162977034139448800201907171603048068133550342645654245737123576749624538975327228004581787242174829198373255045837974510765333608330821329291366070113090287162700112706166465002931911373864074569563628791574563564721157131691893808970474226325921629244446999417446574530186527764146291346137361344742979144300950579132866043236778697045537127193742909390045226584464966284305491002687310439346437298731543369432251138041201310428198819591074786839430659893834825077081299407722256773236214912413731643636562440346427439940178505628947309992197270823296453259342300304297359940585828282736193740705059623535403091931343091894597884428079205584186445850234993326417906174083216766334163043325311194710612764274884210172074424595974521067562278387926236725992841087971579557057077531823824876604109552253748429646141819580580162734171155926736836115519341628455047502720581037031532949237811334337353478093840477153994018575788159916547644718652626844625071612170959569824767111764238517037205886965733242931504605811104942538898710345612420759294874699126524016860128108244823117353458280483048851307251964007760770345610787602763272002872028839711989844291682625226464413174210863687474402554047537574402242810967650932178315104902923505969709052832028837329306972232376403908661325675777309051631787656539611683940403669499646235556912386754455679938330164608167806523348350024514299961784226793508499644120777133381599159809881752897378033255415760547404114011719484821468591000387228080064662047555356243348678939208371350811499368481026034649467680397443479065797089154359473706427263734986777017659697218034508402042223433708027797652040280917453722065303638823288422272687608032124275952506755537078004467650009146864939381915014007022754002716214118424180352224020427710376690435570337520233653265707938645412368332694781516172060262089401406939090409295332279140061917514772257697789779136553585798008639975543549260013525470829709485526508793349494569912117999924170158232198629181812132963485686026331320733096239070508200423392656867338003449319718267334231983417991541485203640526478519612213126847529771733271678579126069098612526607310547396858801175948365215527303249734510260542486206155548067135749430430327995537856178579002942209283536274592596656569227062915825129586951124414034452414796295501977506527966556965185858073648725883533532201189899855868738316904919136682058173554678806775378450317712596415681290134711376000169564048344585680479283497340407513344762933009935772911819008489389569873695400035427082050803397666220455178470162128650416254595886910931582882790226399859749416484345071641742404198027058499622027892107479053583810987517701188586385897161483503764393924407243912703535984888548397106556847436968469500847981840256709696554615815301212245186568416182540116042997334479435991886237865181219697859026244706502538032825808873263776906494648760005127822902091512774838457910038270793534134837540380202220909063341757094421810650957509154218348846599909843050690118288797338633495579854176309954708400526645971949238805453439734077563688224500149427160856928580212844914701527250822734752086458878040172806748609595404837019512718856195509889613548143406547483250528502880972727614475733737178576773636000438470069760310922816503049923485411999690189495885522446780614507629348343855527334925874328990740080931175661994568476169886734922584890277065479974767394992060071151765075623733307847478988573670685460858817616060387977236703656183450590029375901946771593750807423519144966010362055346333209294335654062177077072441345632302849666573764920969738691236893496120954262891896359900711302604109574701666246975026133487710015144013523750790339078841806476625412998070565985985303781297609448758287717986382967473452977160120269393281483341836327837113117648277608741555582347925219135251930256392536466210332758889888459453960926571386011213272148645586034781555625753191679925270444584658286818162828833068316491614379933722900237856065467807827323921661863928069535062303765461221948447400427994671216635618869661133649226037270700499289839133676572618525187798869357865452469938325227278374736884745671305982546008904636657058288545677385836130991971709287885918444511871720504619848624900343921073042402015667011780122520463706016799255273114584838255828740253665705175656956744658619934927243332125024749187995038732172392703138918871769351322887666843988385497359096757255783605265193326689632121054462520464444171481870268807845070131075973934576222480893942626450027237098225124199094361468142091139744269918633860628064557873589695702749632629315892693926929953630394739795387007099077570533296355411686187724343335752922807234992813699352524159629249705028516670850936393009756258727008222541371885353097700414556578067909356843909045535368777481757607710685220238645009072156176398668436327255953203879202979006311893195142932391116618946118118847531664572031825567474725607009027487888367781627638108459582077818021523269252007394096281217620708381993971167865150321832308898178116199461048060201505979586218015099063970470591022123451015352470178436066184527201426772243712171505570111810782574217195213447848662221928418596909892364893988338790491961925650876835333544123243047627086150875542018592923505265270734891859393660939885635610416614941222247236853894169830399248261818658302927302660544866150092045634782042436730907990239195094335851588521503334841434801057961245330615255501749327842099955639219526356618302279187926075815888491842849370150580791081368484058745491349173342416907844475117614923781498152064247677465558886143160433363271011467409762455753931923678419507325863302190340362572103642159872956589539925820104203642515548865969428557734371699522496517909980029691190120937121638466034131441593327902484454204533357255881719796378731676615063844687547099966086912302218112012191375721259524262081345364756024287362022384316562681083053737225320629634560882403312570677253512110849800634710949239373257010296351715801430898739909602601018780281197475108916874775619382912516731209966743842805079575820323566700182913370722377886576906994108207918770270628155182190994786648701086458658557263213641365712694316177179839704635523839512453026285168128650257694268191761045189681267910712490109565002719034844279627257978724102799729827339283273169020006038821650050067409206184084917576629674769720595497701957616845263943698120190504541978434744149102239494686632271765524712629369487055211440752005309602517135458380300201279953490634946006484521407992234875728424393730578139863142827843311001349989406354692824297352660398693213264495728457466821908938415515747290735664026578161539648417265665794926162269898546595368597760754773089052702994870577096891642817856267856846084572564564291908121795091408386952597403318035359308509673026715474973445500778831026656199291804353956762696937967915417351385465863366940558077910209218249261436680802127073279455765611111516321825172484541126164032680868980197198069545553998168626267042088827220844962361913166580502281151987797259537894611419345419343059212167997490406096677764505887922514480774740263191525328455052121982403803170548129050046389447277670592732965028003263876674764417459385309989543752423745769878857624195632419420799241916016683753817155999056737672434296902628693010452177980346401940813594131466103475337424643529581263502208922441372457709377066709204687320281838868702676058632574981891641899523579671659303025549986302125682141236359230899274541304590495220060195213620990835015553899592957991679521629909726085096712621372213054541845960795061734202316840910708357263770724400806642030479914890989055365574133093950099669276607027023034843356720606254183377779299341348159716988303617092015694332097514154531301804079081890679968385847241488222871016139480097863272925657051056089819903735253969686993060470172694220654550941102988209236381422574249764147553589782162400690430578628604765211220295615873907286703846788765227624373079468076243159184313858724222206671791287056604304196590117642290917202024836376059261214269830936764850709035550984054437453088232726316363717935254173918108818708057826126950965387589500078063918334893007481897228935089458861770899999946648095469375975762362201606411172411998969134347852490365574820561500254850381733476240190111473712280575320880902709995847314423372257179769554817834186421625178064232467532129760868569705804806644702406558288060459012046589049394883854284713653308646255958480744145793072324861819593604302878408994054665090895488108015628719302806704293399939544768727282984616866162269449683905739063597906612164056135755314948994211755203673848163407729293000392991469086176159294189512329915511066101911565237574089921878833873604342131860002458990134324928312307603787216987893558922665986544127989695732723806668030932006924229233103106112398982898169096500348598447756379819995543469139742212962031283478430312005333993710825096762323817132794573522694236836321902449892228182763412523340244473484416638233549911683032343816128444829595234486172614534411586194916611456594307411409696542743372512460699140849771323080343010896280149801839259313164118568200019542372063392204581135034691175136822362373966739858873914974475032644716107878459537154230131753154261878922839826649216628199226223333030086884266352098980217108176617926034074604087056377935489606944581338167812037886310527978529367079147558134887957703328963692249067997624484474065460301833015755209338812498247869975700195612720100902133756931462416601503327698346282596629427005756022825264956095264187732829629364479050049206989236427686668015817264624086876105627186624197433665973017846150228551972265641851938683533591971272927040552225962206228733338542767937028272110689655768953127043548897199761613717071838993731051522207362059972497207938318398758533513036919029097588583979906871336185525058896578350001744126414993781115702274140817476112490169740776715266449567102828039969626053765923181195778538336261669028867354178065927181675020293190978380077931543907356172518089948803767397006964951491204456903556895322530025847039365899152297151191896111761817599328322229332874589675987843662064809425415649606540714111273480306783061255895456982758124393183910108120866206115418027215786585923531231363899108075621627231935096159953785927385035074875666427445293496988170823832163714518399568230414964990325739839430737078185874587438460777493618586225927906499309973913894440419054749275982417608654016854770557674392746327464659046055522878887329836387116547356516556312813637610288428021668341195491778214155668825773068942709199632421176178268705582367850213452294265942795869465979471565508877289838416544841482790142261289497112546130229120938482919475148582948272717054887143031689602962435645918804594704790650795921073261379200024233277634081565407838317510936888520812054946994145500201066350775526016082009958164977356903839703333743389668158968483409847929385002992998180470270941442790324612839361022920373593510678655230905230234417481309570381014066868383766244180240776095232347438314717163065808650216052425607898289373088398051301184842164330355179742827075546421995717773513206681755571281379582948962884656882833881428627893836921969067676116412606478728723844932279672664372717942076885803981571167590919775351386869981179432236837016152107470136307494993160577784960271818158219349676094482456045779279913475146903827640078489040845671975918259468049731281298786084122968959372058107536442604816890668118826520176282536575063795022808910617488396733792144116595410568148484445704760517548715874151222827025323345724444366303616536568740166061934971042552866365739434108016377259976809936111858422762038679060186204767606021808104099324336357117725491139562938236377314079584997415692926456870274076566209877446974871344870958556039841639793936101143865560651106606881666327223510986443207863278190196850778251166707419040368938514681969566027142779867271196594245137814790591887228572526653571588246294464376008984182964462398428359176818329597186561550767524948850884106302192671737123910566495113283259557046469005200655800177499274522924043668465399447011301132532014666906659402204000815929206579631318431182033007086484818470448498195196149699086573652534516842703816215545509092237750176476933969899820258534780854732652177824905153615804871602703654828055941379009925789207221692284442592618333665109432783120637587433953395693441931531768666538847427846429893900851133546475993225409604506036686189608516284619292937413312236540357983418110253879383991416875663806170575671556721490145640979264753804842920169602818275418368491028558357393020335530450054963999399596187717153633761947455781494638567227073441520981237160418365518167919010145024740126525641331513704502225949478306363880825169524665732206261140717578300722470389884052449154019364894339549947000751666012995996673376619615220873684726939124706270933234071087724538118748694687402226544202958843569685256098142783298673917162085533384520372571010361385060541254470986133610546303723486989051663879852727866837537119306398639303480012294336512180208147914116657552670140307672719929640863629304416614503968635397077540660675991664019643091289556675855944520955886908388384089788001112956709926546393183706305896994734044088077930564447465886385314067516581945070132452505404135291109602128663126811965245916555354834528627533605455327674620850307838511139700439760983338467591438443278948702154940702515351534199591984219388854225173176555142131838756784386378605524091825621396291391370348894521095749949103611870084618908443179440631054113856900904158452842737131274674547889510435674445875322653474459855691159817105384935374782888137182262092588529492918219934196640246925259791754635260441087008524563064036917795949437635474573391740178271783113368892453470031431215597349518539288300151044074715234777599217315577206580678772635248479940389884711815412719452850465091329606247622085943567234644238820263007674471824886864569455124317328470088855327907787297534325340156034923125034445909865438347028066182925304865260627975485576354994075971113369000877916528651451775510481969522198291550662258107074613641606508168855866259048230898548369690992204142023960800618096494729351845210826652507460557924299488695056812395887734140435272357517686684614396640324652186323094516075468914961775580867550745461239869185188067406652956614478098635326426809336503527990951447927078361194226806733454735873283468095945812698825008644297421955359765600199243967350573503752183079860715006895826002857818954577507475877594863297664071751396384525081643863648838953357954689628153292882703592248819958544339410454388141366495045121203217950246590042213207984467689442940847422171979394666615176784721556538266744363885908425416614856116467905089445300979084431000331010658186230838089540336332661481443099772317723182839824112784699820255623131630737039934775851194142181014309721002316929656699525359590412374088290083028784952593215145451779079262944343711633765618044531930956855465732879582575579585173817541348612356966730190414527626755243596523164066105352422534279281931154750434214869329213461631766772919542390857520468246597584927312924507717427150078966661245770001466003638631354089341483271761915253135567822764051399078649650360406164538759904103418284147284736256912325293923835486889386735067525601010674483614888464046622814860536534761248936714249522621578214077433676074672509342866130951964372740950576946896132889801486978590792695410761851929185670358271562656127535818461050890307835948775157989350626951089663886556054972218228063432292784020070832371563734050717930276791280220941362467430695283053728425639727459615338051033125162860624586442882486089305637701147422407846576969693414005657080259882531797169939356973372926317463171227797094559658391577019746971939642970602378112919063052884671849576651992212165709572337017178159033425982726732180869894982937934406468027691335369162373417281499370771211833532539147551921550222999461532435924086262811442928070725944844900055845071796864189189937122668179992525508792317518433224629483866281550517118444861276657482986773240017870297116649104908849765348472436678626978452441964954948166034646205464579312971735622516926086471631716024121464668325857459353564810618487198240849099320157858112934900031158527089144706277538981316374942065149514847304630846460372534842882316409574114797867827829170077714908662036002507351491603143670376883794454281697636591483435984646722959978915736294664888388607949837798953810798251740188647825260369840685877501497584758407818611620412478149942497018214079956499824850912689838135657283159794285938316604481368560818464432063380625860874471277494364455828685380978859169104450462497793575350927430152927699053564977774263316282593879761303369689609653675591033369460961307173328424026082212774563636190838669490964838151145852939665005551797262354661962953548762380636638922036621070853789569436820444093943430763468882927227896483356018968223114464393093683343250714266808156177872977292095384035557510831263323079317271911602444661224682179375297497816387496246446846875410047060640522298965541653112318100979202432465686007630970607507687927523555752116295069101744191745819531927469833773042963221464319370034746710726972874006946307641070266047307719136010523218407664002933517424310835730212436192701034934778156223424161809330846026001850163600820079485630119297803071445579635578142947508915682969055235849194032639250882012306179356905238462856798576213465353713003531167253367749370252711879870569221723131907208192316417177212795902510910945410385630379104942865191713035501599272103872834794666087224753948229824393825034303061297922288652153432332669607704423037330625760534306846687352784967598386067374277963960331238391728839603765542802028844295308431946306320488811359536423632512497213533160524481368319494303224034356674186002953782266554608360114560974351694322183206802009871604803801415302305737802449619528719148626066241838756151357640180382294264965409449034830853683757309085711639818306638254769388520392793566054372567215321504737169070344255207331070515366775372830690833730275976430845205800689401558486237794565105010132787325466251358321323860026167464754084784543207332924335726743772017756840299684183034043257772978887154249386059526325824688043883749074686213695000117909085628801585750859174085483523886999591925279770449578549457881890840349796529622418163781157066145917890319484046409528817523376685590350388649843757992690334450456869981575848112563373423978428086837976970040276312554123157191164708541906492195726361616288788341448846689217522143827281858061464456337145562834622304875052311338788561615589425019394760134738165001327439064951766398825576052767097425852054616507292780581499664368625091309000448293045552384152343730148565814251518457029700749750189969118477364661179780864775932741543803446863992232221381224979762701694818678438096737935281450602099836436730369420407554201387457443273479811990566487763698018512985662827576328810281793910290387129937424566199358907023566179011234649863935775408391917384510893250455672504165653901649545095271449472445091706523488016254309159231959339207241906833577583038967145222610426797674813115124012075119353333182174581166901536742343207713032031334682008886389556115863109133697772169554087857263577243450188846717735010668568257347989211138144590473979296361731325150514699151394047131869570416724966477553726973242539872506194988504848030359548056113771187163624625259397980062190056681295498307065926633287284159195728731387862132273586624230784570106795012030109031129144540099770170760564423483326125162346462406619945071185141055990837675935397835818367470662807147647992883053479212112160483797849140133309517918117279866878044339578015744697629239750995543467915330428321775630797330204957219963629346630775980124795271745431059296040736804664104250085568897131042029709882621935656100305173471561182184836053697588528696259717681398356013646245249059865221436481653098557229968774437344390238711258476856583204458947467003686685809465670620593471780378090559361949942378913783885167845312279682385533301524685998069020755574261835980942432425423358516581104710643725934233904659103194083270878663544015387365677835187904450255202667931875348801459750089531755297623469821460747981934531117393621832879994029794710177373736668039517258031068476934388212427508945844448486959598171964184969031447872854571858674579028416234858192727464673395296915725146876186350083671159335519677316409543157938786219222915818126452790020338233202079570711046459150899317087916969150012115696250288151317451500522696557754788938245919610549618425502351110581741979360379954332696975404313951004496007555521317232596642040810735266140508989934059381338319568347233194680485051968378905914735383404257690009290922864508433147810466362543610263785260573817497078468456390256481947681624676291548500040898274005440508294158731122605299485872456498228905131825768923446166267362367155196723215105485660866520744781072951519240537406041543616725008489918296219691294455926595302861810299137457393620758835460523596333642337423302984488716917791163840665765906266132437116470804213061939033133404432206014858786969230236807623111881509537577289926429784077884847055854240165866247429130590193425707903725826438827576471550150552831135199473742489133613116346858875737092983948189625827152966639439556068104990364045640071853513041987171148545784101157532773297076604862291262336915252970769234550520063637184407782756398313276631935944140813141543797674637131516788089006336203983271606887552526968304384766346209050419988838276166864509688415282349503583242762297227759905096850923881736893113027227231097291111993103478628900918847234364779422909284424993434693080262209394705623694973308772000866702998815423683895693167136404709928487061909235267758260725164739205138061774098838547849145117162618197217057076949827232621484375252879376791855597335333397549561643065423642313472382452382724493254781193022671303087725105092116736021155011500438367594659061390866743336525878178063466439588953126897758239603514482725345913852419735432011115967247865546211525197263809613387398331732539171716040028240296890113313748607413853903066510721104777241556559037010530402342308774382182324702646166823979588827127783468033566494084656976155156337482802618196281257566230855849036160751753173528724372123881485608793603105823476726466637014903580612434399481661430303667578110414093541756538597969595839389969982750516433927744183913109681279417291398171774447854000431288196240320066182207466159450043178634850956266894280563687221502763597512729392678333751199118815724604262851652616622073295582940877946871335897109880851442195412082068662294180929813377039078227929864337017670321271278138242576908740670718604641999430543642436600872200106412322222616721580207602980459861899176727277169725839097157995509463066698015131907309054070790678202182423202681073269520242498239767003309366717940171735306055690338827363568582737883308440467924140474505487626559247884210688607342494316987157991368267216382262612362131255667019088206472886090646270306033787530438157763374631555210520683613365554145183826447000286706484238435478852399396134433526680989550570749446219779470792898549818266513401353115928090084543930826906359179408853878826746213505411247110743597475276985614232324710347823432602545783337138080517512152278029381054172597039112171366461160981715610014387489588283022519683730789388179121993031569099192897656602089344957622840721344237678431340612962291945689267987785840262673776205896828332210741338046003793285990981753720216998026146395853587237620207704391185763088107382875308032562346423679883802558492033077874351978617255353332574660241218256478212484694015405290426302782433240542420716900985763005275449401042474630505690848725226122736714146716094585811664853185706843325273190829364891543953757730528277088504052357725004340708728961036430873396454465408374253876251254489799442586184637381203194903893083879521760851019892464368571666237654877976177020228532460474669749526581349172008771128410915694276449045876083780958446747799326476739437854350977394698788583097144417949447073317776443086097672061279055466751517450000313629793562714437686852252689494962970667944498380430801745525166249657047110472576433120223871865518670770099300250939572853307410874160357127864563311346827376207019810924160361649834418973601395331822607123599709975457109078882954358672105204523475453325852642786586605138805635125826351768297085911325632687947820138521697251194767049606827516824244106027010569101270070729826516826860037610154799600200831995494615564021537768044044742634258267501143148764082705159522093960706858845321469307207484702245023724352613518416511460562762358427988593461422612118239150138704106525423712089509698736640495524240251551705330675812861701316917480955496749212244478796589276851374904946014125954971314093497655957239651902731658953081305862897996944911646754418860172067765659721110446912850333287500835189603532147322417380003292553007019048979122355297789833742460385776684501814082814332636514324815154671003704178694113044735303064101800094075509808264550644445926560394369754960871455475769390374474037352961920520971501312443130353230892562325352119548000713956474523482109013610676203467684153741769777825116195094638955469712934888218455068333583944606359203265206312913809640124382185987732784632142204424541662523976609914279194537459111168604221873988029249112933629403595676163392993278358479665105931581033961579785497442446175854478183690219739352718618494779620744452697173697831085549924141831803217292190620135128219071492290688683611440324135150641671182099830661972261799982375076237976467986764911102559759282559734722420849122086503780293811963499059515804118449759422452493549847989736253814172047532030845066695748463924949722656554532817433491871076553194113412750512432835333508411423937254754901087143145840118828845884904852159274697340513914314109405624425998545485609254397102067256409394346129425554680181491513876301882777670971148204269177614053637714457492818111077703376141234690189750693744263343312424412531448062659790376284080560723339910427663331618757002718326815671515844085051057243739487993782537105182519422190038661289074168984845428672620038198183146484647245738509597166490544912957853437862938759164422373548448786059792369868952405018549455661895075747506815709653979817204265876905926271670765376553550862729033013352965203285634749796614364087882036142136701841925946144787179946644939312251596674266496861240753209223937341190049818048271360068299524575371230486382014224649620004318413720452181767277551206536980682261280521030996972343254587065439303308425899641584751514721857775086027539025272669870624599825193630488617341838952486676818138168066156292773794162491663514687096907792482176087606411328955460905872819187852234190256029994254958718500844972781594689466301379861856031925415097276225818757843496048571691569702505736550866899246491780187658680451040874172858416897821249970923163510920374733712763944368781979964776465623394607165618768007385636592980313017264794527127248347094412232041385879556216632147666623873552273550008791886925512027972345344952291266170045099708518162810492698370780014736680061771162331772161592498303259534729158700222733328051603811184704883885417944437266435027631383199346528036389637130798270091676622656873585645802565418551625389958410483542537436283245679780229188300483866554404873518438268790816860687081946010311331345895731593942960978031665899024294697194743282203342942239715846430765240851601251001881262552239874898767592584979337951642519225587826611952037127993333158033008076498080941122650449648401976496262747609188419090133695085678289297408409447681321312567258150990290536537937436537453698113558163379359255192104371723945397687738376456684078527300850067657486701785157282461109563103769084870429771795239698154583667976512352707327559867442822813943913546053189715737051889822163397026102481878138736354592546190659604791513802556594299566807403548233958459034948015803704501412027126519859657503652721704159310708143484137172061402390147492816056286176162038936036020051023644258662524863681165589097822918911131707116185893550996470505680086575971611986955414843182806344564110183072393924811658484378973688066923003218519290768254267062415699253722444580648907152609298607425698133275663410035099507589285988531523848349662924795108383309271750601846623041524100914349701584523641354361235098006034440116533078629708742970681460835536472081191804658512258092648746702855281297728596001633299197320095723638511668867732626683857184165289685416618008660967129802279167319200565059645308627310342221048792892914654675884988437937841571026085110439650795197840747237428830695134759146117398886089113377786754082124190072127894709738323622018479938348795364241056136856410123454372048427650460449589695078250974896548891203427526967867154762991374453141321275731468291254894686993737079750062204399407160603555816929335442374537636191861573205399099772741652501022584387875534535517911485711627846586071751549469996836122914534441352359029974804202050166945529562178673466269333214867914351250905925947319470161312668593649357300551160780734866683108546260577483511012448426734575082570189102410897301203195597927787437727863733361578152575402153566891669144420872807970518548627311992174744631066600316887836082409700995301899177334442799788149668485469733376581701159134056880199815186234097623164320796192272681669598153198053831932879638559837509210358654068650522522153213491288583738629244505390297368615867623508988314931392228176969822248833907038841849634465344941966005667927052001352036258622445981878332723210213070418691137360868376738409236058494390501327978398020661715702322938590611359021491055559780336244315306502428600972018448130101649309047604978596436843671533182693338889827329618614979616338578303098296565455521552211320163405817095387851415890247100851171077526899913884523423515209442390945502593169669972044225625345312348347542756990876742282116993945089694579413115490440144701531927506032125572949303159453153532388181109275880458593567316208757223897616276197465077895104236024495315878274400882413269256845507403810416272947184637159961395495497518071041784793058206319777563552706264150421514404874510885426342292843767781658089377373825589222457922043958525720144324309832269123608535407154280399781807350669964685957205296907145395431383633412981936916534387791010865251142875402291752190223000153236947444061679285035170023917953568898231657949494386581776689782258544415857407123794304894187001312604438979172488174459101739531748516632330700976471189012956877221935102247862321476209594011502330839301470936215213650636126251261331306748930758295157173131196214665247843375074031668147542070349668239074885149933340976214276238913062668629972292837739114643229702231091628130610428190123481647453268184170670840044298625573179023642546596736234225541965287185489761400452367921637936337893829741633448522132789209213905607947845369768830517940241743638928272769069880053421813561720344903596385931152800939836584251330115299463603469701184676102835025739533783583372116929327329076036039336443860189706110195018602901656162491508699436484486440130413396255278783479177087297347543775136953720542850940755597039099771794216042984084244477972461424381734854439411680013868131760587521109676211508242567729598523576255451359029203781908489898502812985588190627684335258768222911754512360052689382551792039738637720836170766828928830619225870356116412144010089241401532631442482061903803023815470840946295705783662511625101307674446171967582757822287580935868183443235510140895168246216109695242148076242052247030931184288082479798520685435265258151457726875768987276162642631235166612239840309320020030870077671488126359104948857736220740226391563973934334338680381137882627507407212789855389399182756216244551121573437925602241772005940442156272924016290308000357176185040885102436933488870763594367057665151089823963111795959001287374224025705699525153110699395287836885137452970473869375598663505045793061756260923141990720020233563291704745958116275677594675965050095901622782780384210862528808164354285123685254108137855930984809332352322939145624346921096672372046923717525703258050445098485017027791394518504621286231023288844604288963568277781069075699103135399215492212492530092746164823660366654146750353933755665521282295497450356462322653340140054930863329325589042781774164387414846138842124376364252436116516324270284762031076872134678063301851923163241537631591051250245686614891319093377300931388722317176069990269116746789373012101028140675791213823347490319825451296506359667400455868853530245256218747148216943424997155217049860248099847050761878787859942975330052370079404660347430801086313710616617248933974544265615723083748087781167940431577793075425148374293850983060303451075895778259708786105301629530797231301486889656146937722455527269329414738181360407321129604895048612175693550958089708570785378986798828487485935197502363358539126324939965601509261050344068235146857295055280584017286837069790994248565865003858992591328800840363776564654446335340335071026281341803570429684333156370562689189493653779840265135589888811545335354237813426059761732800774395561766765014307687980366748875652888019051992437614995760559488307081322430822494993943669115686598092834286549631801701001463534889094572890524790274081213469052522910098367999687329299934692710649056473170070132883251905321334193280319526593579058604554946129340233262979373079545966997320789939061032399986702659651145408955120760468352007204925062253294740183502827091347561569756420522788869268744766907529141540245326696155551178297320705621973939868317812001720715613211067297473867053532628711864231726877126409114215443631769986333064899993279475460376168398533096740243954204325638306218623712712866149433007551432372637925874021689931345897986227348158109133863079665933873242002507943850019208390354631654047767223101425576194392448264403128105026594333107854520376162400039896536328036538309270002642781436430184916622094079297018095742118050061057498487650498445140300518142166481333012230426542456737110273504302328017601589151363839815167717154011101532822315106566456115125257852559530391647708004649910515228427101882001248358287204233988217399303481212968440047420562566972495312963412131039587457408130305086375868097787816289951650189673598023278684524110697048663497169995617910035585176690564617360548550037393123981395824649578398981032041617487932639609165227790026350589349543994066722892758041353585603904767061793792414302159846119156670018756968173900088439553795437929890408578776763428053625646067834164772550628950400245715259129161038567275799468834618426497993568808034707197913251630935920168924979554086506519113479018243350642260007094550196148210464988927494067421291844703807216005712970234926427064044705316099857789459758980788381976558905980035104195287304170548130974313832695229615233481342038838822311001775776320416158531001419981529162111414890887972073141530947158499169379069448513012941807680608310214503464576725335727420698750705748301119233902237683405501932800079329736456853682984556576501389437334571961684496807370360256737689927074587542561425456737166497938537884431029932113238653837532245691514195106254175522898884378663618011397487238312013218999215080398505639360802691859310191501070605090111295358749065250543006403276281608021749654669882888023713492799937958589134023565984295279727955431988161754194417388546803358007465568844526751945897495453706330481960483677410770868425376343250492537622208341588865386172526266604460761078911707793822767189987137677811921028252389721440728968224882222320712281118482692923085192335921822848795070143580535700858912647082757904167528246061452199127740623531027344192764961787243744450558317665477093180064477496491050194576744359749452033312399045360303419548165585137471007630082957533753677639361764849907342779802181259119586005813235874038351171549447185845840742607033769176191570153351304136859846302993215146942857569774844070927927972775995896543970879651483871228328130506295678931635289972947113469530994637192848499179760301177245740807825821445854102639166394922574314599161273140101580453424747952283454288856921962517202812513774058060959290530184979450340128353787190694161017791113267712086790158641970078548040321952718498460983580900649139542878572323510028670090215019132836894984507787650396511663617377579528927198094307140924475579323007176446017222409817533831859885633009939229262738563434015478761369203649014195217310577678868886448598031988086298501636360935879034585152510857775735396041454261836010700062395044129486851779449745016800222856861791048393914738792715934646018323454269194812379467737979355500015590358865570567456039810562050520965789960202862961699307669450108033555566304541302410066243123323489388413899267774482478874789188580524708832935142197376242884092535929892535756140583701659257023055946237964810959346891536472234881331469792060174029777718204629415455522598755851169180337437800696240145653097992863245520098631684938263646165023552017123802813807324423853371990075930164187968267489080301009913631542370465933175744095675757587037733699921670214046148112490169502584921404364833088706596004388534870654253937203659532230609665512371947868956652245054272326431412554404521894031646684217069326478592073715638206464580068581486630757481576672959656188273408616269021102786164380558858453488848783318845714304025954182643952440400668501546985655895367262924696315497143246590325319469901479923229115560080899737577891076164194773007572172278016843996110619943336255324957369493281888885504397316779294239733227294651978589450616252089147125633021070835113079229307236726856754944364058884947439309002959319462595781770723016239907677319453143957869944297114971664909937071499913450649808218942149049823541756111409644041467451314012914890212313101167518803214268569465254383740279382806426735040126412523506556015335312630486183371631482750965619199820104526017495434564520941159491174921529892141374766173922706817977569809773791937061814615497894880512674100642907340871868181981594471544288575949794669293085635639682189896839950782587462364973347833058846243357320921245882858934792053410070721056898351709482476319579693808997639039301618808100370007439747322133579323321658440745007271622553558508688213618091604889176723035728317743619015782418808168336076814180382136214182400275026392647862339696505816852595413040839797513296097281570497108002672848338210876765199566758289896294896640078079628371577584546132050476701033770505934171086911986069899085720248690190649941567423514510762173590828073060702772060795060931665716881376640453014306652555763224621677904478399748410567722865397443829309706643298173314550222649820206152706024042905363640731015965973997112315893467211835820107393913992255719652549200868185291727912700759398262005876581896979443719565957971850522243484407960893191198313432919622939681333826904637152645818470514332278619581948137008526057595390106360022223168208101969505288419930851357689345577632216892601153560797242682789507586640830397517699966577239950604084475992116059830283022583263982703862795536932078167374234786446676957663750674108362302764114650231092527850726987941666285794810130154726260832359620096226271736068220995690326053853464353225346774629805367058910684759870590401887678730539422542210756248787354945687951631317847021161216387786656407125511438171456160755104446743847807776232606442486930118073378624018106700562597964159887096659216811705729539985646362291050440701509085883732346998265078912549232232168275889622480132905543633523802652455719235513872737109904590033427718089769738948207021185335750587153003967610237550553970298684160181102213096169231671084177483933366686389026078555079235446608190853206940642780847535848411229238324419850956728072950969754750378398271227973690053569462142302385573789782362379475321673829339034448196475173891690634241265621316524015140312766406127819719842932685844169148991153093928774632488742453507452939596052641726875560186754649240296524314983040789713036481650598745997688462012254637649838850636720568646779207174001682936947882705059808125318281764287244036975791714478942280899402152175379651748237104451593865288528975624705502994841807437571458511639442006747769989462898121234009847382359359148027931753102215788985099425454934586528152732657973055693266331209578164472849321861258744337440939835683419773390233983910534369161786194144177399880914771887931077399404613023207545886084148707277214845521339151442768182937050330350189225372919478172206360371074583617618125807586375716219140494870398726486681338448804166841409694543741294713555659613651512714603619758968071899605471116671099826241433570102823373657397274193077066744125555281439162942782936923376741969389306715430714282709058815385347229507174428149015554307206264661500994220233345192174944838446144631419537720027761440151715486768853011636760138402772641903662606924942805119302804756335402788052868820899828840916251073261274414178653600064979900324483222303373542985569272567144284244835326020353659461777568537185614374996454895842418806389577047589394500743193486327596725743638494272470157410097203436812135622584830886093968370876378422657703666614685317025293221527263523702524307136950812196227862559508390752107817755451073481732772895670183813837644128008205792112894903339771509320415568166586840547480852087690312604465725148318474303244385601907123652357937266713750462831780658626230884626768070459624663582460319489975377995641244210938956425748798195603552055148248556289035699736007835710622693203763079799403842770158385666723776736493959992765032803158958055816642749255897486876006286359656186894713676133739210234692617096053778292808976004072741131819304280950768835238875335847807175758528960094226277147010386214283670325082015239824879502053068223851807240420687337703385507857651846433679886331802067921629867124504379739268591126486284052961861003371559000016756825271173401501413653264433850179926022943337518321160455925001814381414174964849699834362863010891510061041957375167107033134416682070584187310454476530947889122721672124367376842051256702538369029236540005032438493043196834388689844290660242149274407974925042996951931718658176732487259824541607815452363268931651596074200136291717296155556343046298023782006822567039054055557443449816140659086870333799048348494716467039862466484803728680614539213599476785121456178505299100652049532810751050917854373044767779019724862338849898366885680226979650773402411744745320493755521392392801179902521006450307287822934925036421541511921630426646527401581401130453856367114337220319132247156705445196342201852750270724452923633324104607199077695399630658865626024340477319672718858038182845887219452229466232894830558678307793389111481392064224295573767808967286868703808816948882987129052181500351622782470077071802466497201102913610350108832566231188431817556631915818042794972443321418148402866978809076343663928598603395536695522740843741185677331225880494256576585191591663674658296902925692291180980105625308863659425367246984849561310397089404309093676276200480738763088227213369963229078989732524288027361771994674581991399164530468543145628371855085643376404029219252358238990667206780508847412215464056846410046359545593369597885652621311121821785373371994875036711486630478992160529685707792637097418025951531540775898173582295452654511170823092803955533982826117626831936032478592122271109103870817311444499212470614631915055403202367052681530025121487375204722735747682875187995520926791554939348352502581297377312081982811470610687441589431322627487229230079269330625630413716881910251455743661584307421939961944276216600068758356404976148710650077762910098813172309386835983345176750136105577913002409820973527709288919851518813196797494633155684770353787128094057085659893988184216742237618091747348234627895720652209917424576742271251864908268486261275482970846874320687384757449412978798196363718587352334294158629145617216716890565141524384052642947888293696515751532344212737480572073218485392614847229399485231213361893016275676252356619621557920053469879500682291116281553266128563546437598891886598937040605759532057716587338907604164126273090579085060834126637294577945342530311505800252398223515567522104733836044418318776184277483241127322219428762451528856091489662899513028940467508851423748388037400020243078305761511397713865954914034714015165867065033915760555838894474313015860960038185600263333786407477493194596458419143526099122192826533870039999181204480051810803541464685742206673391538537307125255586308953626406814230945666110697224211553198706816959471588499790462537994138033033475423602151648911912400637277523389400160613577983490440794401032645164841245280245465571976448679199703989460680859826092770389507962576573580104260742064473365675868718259595878799256297333542644517687309465544715804454404633780764513841983881480591925703398564010650418742166085544183336508786712947467832303924028349553761640996358244259561718781969287803075466687702774665902012680786475883161931337553798613383543169905211501063590973537304243816118041914583287454172195615501161249655877936837419479314775975909644574799007008657297368709058937542904017850719730068631324145354201201200920351542281666133003037198877054087660196144209893158303927203655927175559505053415565673064325252040268311134451899633751170349609633991233767385975436754388197489268319984589580557512116461336725976229469041689113246012846895781052526177446323784677491139335051538273439826506649128680263878269180025442971934434189438804170593972745784049893243539883999308377778153741853947719275388103392498919248003939278556400204895749772557129658219252680172316359985414049367498904247293686110076532047056793151377345195954423659507874858403339136903940252899171251700848586304979752198928380067072475903324888474013216366073953480315894462117802263428342627787453702007562721151596323617018510633386954025285936627823176624863039362215978167276828539116208496951373122660699384267500745715036430055690735823942804636528802914102227264878875310293548858788300337745928914788318277653485277594110143432049318702902047158250419186816603668113266214418941807643932723444445644562614914561430824456305078203719582210488146599159509816116358807661550399023183279386577400966515314393717045643119293262117018127987589233665437870850117966214464864124323458449607849649835565730303574542650256718950030442684442976428935236497324234304780123594155756319506734437997376358121961954982320254931755410625299172212480609672983464808017831839083684534760025553196914408260090835543328318926087293027784315462020857457240376403374198994493267531264822692994067377763613234403527318471436136725695783421239008331999609715200052668164091539462941754214484714246590305951952896442768727357772452981638738496338819358886753183749483346377793701168377347739762542005925691461971320068455977336682952413486688293271028698764158875625247039759434380013021487184533414652914982009354813325320122710094246957984769702679031313340027899737917354976826599620124351703560081419796534076964179924850814159133947678936728840376887702885269190284959730748862772387236935607374456944125560344117280687203946129538931115385076788532267922840451248599109233522663913189280186863674125572133146653660553591802571061867139377075442302817894756330032413368315077365157969842572462885033353881994419903181313035960872855086359419960199099464683864173523708057003964580031328093164867772730457967289906882122870521533379600734553250547783788600700867344000566784713153895763116504711532909095968833189116139024113338061114147124814897693350992902748007361532026141287211697350284285370961063738560698310989924254839759081303176643051874637265440197260696893133390185038297026576516648249783714782928495501070048219450092464113829946084526942395189634340412255251974871796870674389457210683888408932731992565070618803565276535877482571003460212502802431996914562660317478702703478120733969172727862093631665248561977530880469232200132288497288054413340209630428589780699853315292908204961556417648130910990271449101645064598646957750929767449366670011938783316560704585679769862412528999897534094551932530497812016604716435240581517595415980779138932955854783187395537837467738065545512112853228710617354556126186644914159798086563130445353308259650925076544188584268296870798146214791428824681217643874271722903998384284720995730295108247151346052091108272118918843704065813532477305686863418823369306387570972836643659271998486795280212647424299700730816755734780735102642854082934142899409803603786516887681246219574701510584792042520271880930161421017896265533295554014582706943730524021565952789735997127622310501964240658012505178197241093306468065177873770543027290761359218164101172190732900005429518412051529063324582677491201318646080343226931981678407670498582895317694317758423243503920270187696931194365529077049291620424328325006596145031357899384802464059960625234629750763941126775348871268644670733859793681953111612497461048315940540923516340778278181504387797300223538609781318235328908597286939918506695099484931010581237838646005259758453206289025523657083960258699511494836715936800530087807422260919625284856326788561296352876533602280748332694180940610775377309204947363381999940216689683077842189255714619871105268491179638743471087068006257963465889727107948265431169095939561016583159945953429382832120705644641850587098548926055633529538611511241857394742284847579374391970853016749970894204054949255195537941290679462551730957506049169056537344988445732547565622074059018318629983322026970972587506351152756212292615755688887002251440279055030415851721893017139527545343515274497473667883359436167655639967333887632551547946712818697473150981594478995808269563164463493631716682967940329812844943280708279117196830811999940903497558623189117431198803402302002581868982015831855949324786644082164322791289271252024711787585486254739025268115807554261272934000119374443185384378037639216565944927337992547955354404306139717615816955165290525623432755916214373461049618610753629655888086693017639355989057287553336034357357812113833127303486989767488978847129600547319381734091886827864244662104235568821568435458454796658922553516701665360634169042267657536220276052125827399913920956986503477102638353169603034464102459139890029846343088636627354479227508301919377848144792480026904006937497161039548911543432555550730513749922133887431904957719380277650664139488662543144137052143561309501491497409480168216251274801104782642612096719241790015907269922715674935828959663950333063965133358746379201278324260599487856713016797421656615279140335858442692894581888411928731135896929085635510597568697688209227560316973682697366840673517693115320301306037989866016474530307452872475811494958442643447558652473548619384024528309438001733689478546071603562992819050313961806371133446930223777473110081691812339916362991469391031846304118094831666088140008216715423925472929342677198336673940176393846752981246133976724549113204210737711614342032522921227588422576606052857398910402565044411212002837838216643699305453941001532095841362024559350226810821922966807869591970020102924091217320604929351029496653209071267730954948278978033258554426440384082925777727965959716697562540196649187678756290972218416104014311849949264756010794806242678237223880704293923923181451985002482364939953757175785676192463883444052460726657419596568193862147462685468731380091553416162091580085401465472552022637596503126673168611674364960732436012550527410027343096607050789120729481642580992316639987325714162994330256350780522182905766549094829754161828634976313635039439960964892304426512647411587748423740418594170530149448795274791293018347127101553936989364992871884866741579976342246478900035244857151248139737308338226081467381671994136794189729804354202787020116301326412975839070869017661363417284037498657916572308801501344770479583652036613434378061191009597286972232723451173105234075472790087436327273143974757125778167785139589631799529660235367708830357481124536930635185233922722390778739397310405686501924569316860171603191990427614818621564433168656696726414403201789231736792723443479156713652270072113571385403184307639700335864977797387683974347109318192910661868412790972094337007904944005063646616317894725180038993624446678062189706049793136680545869690462355396541708589648404789150418164770705329045514657624960081011742266201765061938006594369973803741032666019142065990582768419966370651106425726975464100814525882286229904885471383018634965495755751067482360157140773651243114800479994458172850853644996627084460971643338853813963246340600875348886682545216826587404741104286556894364207253381333728124852050946797181448292251031950632978140980952865391247593781739469476177790135301354609005985877658633745024952603890082271172674954646361073651867996213078812310051411244597548355810001264107915898450066132334783771664408764808522514678131960989518469972908433854957654608792974527007261101044278069733732598874062408836055490438181684686350656333677913588346480240456635525703211773242432547656810337598376329394497797469435641308007995635598071342507728575910047098591734517114715113048984926778725436155593184718695027486441415553585545196828852130794683453214408219184917483831632760077780815381826026080472593565636573437823893997814983840308570420618068725595940765736257126260156135558544021879683147168928130653069991399948461267195452047269538546410798685420804942895296516780586774901185404518233375682473330845725526635501388065242691435594322415824892203370853711307560903242802714037175027848876078736878340525269319883692740178569140662973932134945182011559094196838983093438688425336771331118971254477016112008742661810942609261125618559697048333773883514828075337808957435909848792328116825647243422602305427107264363525006456966984222096570252299748721086401969511413668774068600430135790684828128887897978905424252825487790770085501003736408933987989402389883950661126646161332504831783643183995089831189724470628903398272860456131817624385056891394681578332595106324529569023661845235180910122645184505505050337483058017350193228770931150309981135658383461138838809617457179743904935998373800388285032078697309714783251898123171122525711724024638639258157075542500649332924319908671188894230625888079550972853152968739124411149060905010724429004782392288367020239450132465280249633711342933569080497360477071975226502471349165625876137713509232795508560959112964574114122486036509786668647846715758826812519183447990563296552332005503823375487117428062247250862118387475843927482018448746138907069409909905031466982025580976228305566610649560055245800820004150906916057869069592383112882982688086939707759680434576253821006559888772571327161695986342324220887015786476823615296912109937429652804742830870444394906859575357239082065659968509681118216631017567373930490353661194743959052428683708310710657637871981328094443758438832212682043413869804449015214487411804680910510353273655150280448131427159933146725829773499694206103067919934375003831701205588285186780574816748323040395316582248611280556588737685842605077354808486884353627969695287369167002341814661505008231251674544813151970434385591169599329837919918120771197334092383930887133927670270006738874932164724578712037940622369029470317553610771763481690410762234553639796338464547178138112357204028965944795877977696238691627420834676533535880692332316625391886351647970773403097343185010436261365734021946409532554728512700398839495416374789169196448384861494727829075003899310613535635862706289737000862605942934149983921473378800245559971683109731526835087364568441575613134375478318087668438598225197687709098774284211948258236890524974877091135227110337764156123910102266764598073072027174126754960789633460373453645383910366132757203144706041813647291704567196713565339945792894527503362878866157961826653554303405797462186438317591980821182721910588133440198753556356985879439223947551245276480224156078408509756915312268664606390977228158319056225279975381774783245366136025835050772840230075651588593786135970007911002005922912412647112269541183256704560638014103099300220025636852794746415793482929252963608226147748385636608556196070884947352173675475905352785036606900347900334921940675294747704797475723232735777680899660455697315586314754755780442162077573625636874932433002733069648883438741978353008075097146696975365560239769412727239658296556325414080519588244890187344617956869275396735632898212223204826258387760811712526792440291615416656545277550568458472711605319385729692674531651244454446793065095963713763491511527249175513435703925845608279997366549231979961231626628415715283536657098248926310565265263783063624498153857496176511692356107793592751281412040747078607300665025151664577165566424363289427659553816857976973775301286045682967997342899903316429787703628451632233463532938096956001777925775315287719593648092812130398021826580599564951744221204623821184623180123425983163727226922048188197791369297680944806996999418298053531640219078823182436485265010084641488107119865197622116191908812879151333681703832670983937457721950710840318480642048934420884128093996947638470389289390713893116412090889849386038421965570230361873456784428125520653117918189363132411492658101703222681455304130424290145118914582356165762040607247190290542781250695973034214828159430329579505743350815723956411112951892324446309901398124023828903290088595112275179824964986617744689253508976123233401019700474636262415109625689511358724098532988342572230535059939690083989791889873040050650515170254549939589641835466386382990161680847942828548309132294748543855864133643562140396197806975718693744493613095692309486595805717685914315571270197332539927332912485662571864295860791657640534338273266319882049941324721135830272308759428805808102591577614413209292630144586764651046911447052060286654866702588968997332219800955128675781457215572838133965908588141859950126746109109213732484803859662259942773609495524976650960392064330488221792946573719167127073347846571777289827644849985760910332902840254513148709016530860443176757503792139454061510869462583658475965977524939632441054439350028365331711948275207447506517203333566166026212580215096690709873961036597266223467962353253095320069865811455558250945058776751265942706005656146946412392517229800600038889625749713842612320814417167693166601625160084822525371703806396968597581312575024006867983253385223858259819321868190478620659804037603232156756897794556224552944958717874214375444491925866658208695559608040804046386385901248498574669452247891548285267096015157858071135417812019526658019070953604494029435613533239654866337560823941350043930908036128846778570721864402944548466247370468356444895087575068391984774908452040809110097928533071440562287654390245411744813931691568648177630918875524280031387059520228121465983077344353796776541369703105260093804957567855953117786284016944064562610685466201565157447836116867081822546128197772805396005695944143199714487893755552768109327888026682299250895018293953962357860777246196380812132497116557359100451660041422249319781240313438766102293769038368076502906523179049579246989516097579946810558182379676624104141519761378702021690832132376935734530442477408399434342905780332834778930090289197032589475547376321603653302285866389899643942228010440589453436886579751762887182474948991210469054326946321298425815545464776182377878502381381037623274341043218622279705406066412486658687666073955402869966841311954818641973493580843908463660449749703549845683547065826500915805280877276458911860544333940441248570072535344261779068588187163770523883556211765603088928714071269111080922927009807888243564108073453210332294439102025544441158560162652200260047133054796647907905088143761221234990440653423806729327531720946311312879554941403782808661712002649489786754613686268716115993861680645781483532351919018917312490485846445710127325335095872828318459197865812872829280008925150101111989363995896306120764701778052803165684111223417863516002425165049848097855786794352423123256425409781821557532678579329635451130635637847582682370293164521835995180411496355940412212656392842002873494927550953249393187874030066477752951663573348786218472166289302363582457749628935188017350731228567729214518286866753266041968990122957541789599109626635642223733654640896000725304951179525608149666993756048024754213636966644909868403153514832660750433615144940836738655096960038697307855450855265285706560601495613386238247022484542112860981339312506191897037508825103312200568162215824415465815247249327269570015285903702281346357225532929252070494992129167231314844667397165260102324618784613523444386683276401125098527550629501882181745683039738570713700394688383505074279466013502483931560078126045829256900907289244684268744414408961368949551332503458517524379268240481584807087533787552745271391190016821796506294196739472082064804006355959547603433323321784028714104769382940062394569095191862321900723339422447104721995681689861949711085958884583258999897722342690570173254148576034619034567730157669864873573775679753688108959283738121196511127093289895193641152071840336405697744282292075932632378594196446233313455014604286562603863805956710085695508354444497306565022676613238092560886388963636371947468549286133052649314113023811095252691226270278686739913929248757997327302633353572845523158177428829785193841120117446512248488545946410456294963172135663647167948674708512764459350556151754157158265826440069430375907120597216073492948192051128794340786300563241290564686771748225699175868203538276584454800747627967970410672775530170470339728824177608740021792663530587941655848671453500113775569939745474044112933718714627478490022472478092383866299855982394800847599427917484967004290767179635107085174251222215655358288179560411573302443630734187177409255550295834250723632401395217746628715083525069562665010060388670440469379949840431312546280782622178170726927389485522208553151569572007860229078160217844088308139567412556761050755823152658427171250714478396300788482604934447566032336760064014072840209055919547690986676912279505064095478221502980663196377159818143050533125982721101576662223468121479411365547223535154618235147487431191297582161857555105112118293391423391025922301330643940231198212906144295245693585564668425418046471350479415664311007998955890557707090795841585525380301453843158667269117507558509647764482644211947030603430022615610826950016447223766109038127603723448197048096574393038313638699398095027954839927308064305047774532679127666248330694208458016220133795121991149082852202737862580216715589280716778336655240558711507680812437122301379093630050505729328116455578607754758699748464450554324721223513201097585720611836442258427711041692576965969029949103189309425241906855013610704170503434487868565193356846229156286079580994546288262336696081858797820640474900817427996108576005838765146619840059099070218492272025153671279421624414817388588249168950266160306714860256572179894612542966601651409846938275530499374481443515465727329782623796753494438833467938535771316288902438969861462506232863521047881386136531739160002250264135624596830308575752662555844420307695637726448963930601180794213553510007380054463219236973699244214628331988355012763124244160199713765218721982210597869599380525842132555173026143096701033556834702388749335342529254161563703666206190093863651367658572190850744547227734480271049687308602187206187103917871442481643351204830287773146428788512894396189764192677715916359354325395037747700453078403994294000252306240180271486838237692634864673944824594869340687410897043025054519383273725335797418503060456208464027691465259099490936240783450421615768377586443906498947376354285384582998590208640493010683746247775698736015318536135659125917915121539186393911868195642988260567197110164785238334270172509521880421864472490340625996381296107616476811668492363567657147421193679201961359914306253031295605813526598443504249504050741734632927711775623062558596891757639280477408950299207921975598022309586460117053291523907797802555072016941604479923251597428226240444408243252854858183572818150133716200030971653021146220780682127644867199818879470515418059358513962322447083152978123047838466778132382080023768230758565372216322279415576948346260318602303597900469084836609786585222316433820887296280941766381345053801568251091874744382005668075053394190277214503041858584984193280585775030593504803367529340197907031560961675146939935898739713786195651299480839327082718288328795569636413499612493315672725062306388474127744556560910327067191057722549763646529283775577700952759401272990087185320091385195287698441009876183184332679071888889982134102691330752531590550883010110234553875543960686986374907987230405854148647160849588609351799107994315032776176485801729800337803620616576225844265385746800883057009503498084883986324004358509034776777989279213091670041756510790105876699516775785457197585224535663900199115413426411442929491203196064507654966310186799467444453158372417455264106467374457816905179721825286750660965282106316382654461674921069254042136308633311205874672224067785034346878857104830006759741932545079472983402116142281516152612726494577893630292266282054612487750514541074497283417184154569214864532455871485983005795779578307116717278445821818486489540260745113983381735908363604538293081366545022024322091291132738587994103077835732638651483981814473897915854814302879801268609012556420775386930780937431840393984587434614589058788036130722522190470691486362558193242745038455589110485072430965289355006033986167745202499785228100708260779137359290671131291663290060965501507475969757592511060300409853957503996506989421056660786812856956481361169627265647425484155261326896557793415475918181327611448443931054022740839614094526124332645856682548992008972107595283469850407589718472830390787493352141790695844651164776552445632920335984012934607772292922511335456935245103179084562880908288296794502612705978743089716310634144704822899529169359208779766791256685211666323531450196805941689306549945887087794725228096649305689669984081284963188605100799351388915125533223680418873893108379435845993618836506116994454967973440780342713296397772153858314864843937007862182602582722301746098260149097863106588500057937729862269752819316846135944821261232729848261090404709753488199033341208132713449352949591577718817239199098494273687105263694810559328288828845093910507898798922382985721877204240176035363226623859639071287571010749577839132334888539741833567666935153940058122268825678368571346184057026138041772479243403630402187890171946651425071133286823347308055633879537428559535288028994660242730236223810086592180697027533065360808692366259723271567545691882873830135773704347805129728991876408591594803182223669581765878402364995569315581592325636524737995202472935873764637839126647469180199353448292327816827407694215734609439536867877095644049942404645944009448247207820225760351307894281036031461317062069224594154362877726084860821776577259110874007998493835452398615457494599517517040667776296922463468784210748978651726486161245367806688370526139934609587141293100572777072289261602063949407937373282267572285660832216321029690953790216769612338266212235795626794746886745536452284082104896943350447453946901183192593104693331389505234609066917312982696573247854685262755755294414878580236616329944595575971376296407380024804133104659704931573390887351527264500455680451205795190416063387168563759196555981100269420217573208113377317829835532783349583115797403094098686302740674710263848586072707677218320614384088155988504201464842871356921682757708268684252056493533003283889037683657575802232098639349520082669201290478386990920109176730275202988793562430378551486457926444957345586559071723261809186429170382708756500103606873274079379141011018642524293388154258966860864786791794405487495092127628069430960931618192806962609877690228711996836843086959546625905117105508348384562730979850194612712725729861292767531632701253760744619108013527207877340770208488168938573430091718080546480700713304162563665443253776127572945198036413005773844622717438901938503415963591886133705320931806977156074382611990423602578327739512089180719548438867215080543463339977937665365048697640079134107019688292665198992704534227864980821016951365596232392909156532917886293159510760411105401619131669592615271774266567222044050309173427082674016716531482323417904801314445910170610473229426174368769320840273736147305185173648568662441425321789573185226616892039448929576958078255642375123720478522064058259281473071797888113733046916748249737375097634860681273568978155221621856969782903821151120867520304225851309103552163271773249001857271655609038288773748091544449592364817000156943731293518472978623453816975508289086249527874110697636442980249651050688708671336294806477225593314824870401883494169470299147168873591581154922593156230851313840277128734406937057480353697278706359013667317028202173620254376583695489665269576447134268020571349073631096207773142058234015547586410933184580675819517427491582537707560713574586622040189035143053556011768937815309900603504985081791060011272920719136357506413844704337733978399058537152426712203112227398017443191485042945411330368918070999378323295298120132157328181148791729833112160593632612288851824608674391422892172688411933331838765122384803953092256011404510611635735595916894929674149233630097981650523165116008147998709575498217916425800975598223750896391448683557235764458406249313908369460500254184773037568159894551410850548413537709359942636314453951721546836440159424442439796895657428629367286493475008943394109475160957759674977760249441032187292871216775062358356167582590021365070931135379917419204285348580766938479459782316700972678525629790471167092734805038152969860916318276270023689657207096140920883161760492445658244554732464589000487375072438568889382446949485022400182100102118623083646394398229391771148987637114760488380199581397863722295391586205226550733707205772599964174107164480625106331885522946927304423422320693250477463457311419824637518371233393946204143062797682050409341509293163408358969795856277944261207380594123768172915483591001235224606821902369862037836230672231368139208823308928911162932740503157028626636648438793058928635474631559260199414705532973149262719239352528810169631233174771368987601785312711911444991446624649672171177483729164291332768625931932003796163355573390866592240794026918368260216737516900048241204792526649906193481641937447307333021216974119831765286698780828626141317092274436459363999106197592159280782986929362741370443514806501716602498725291603582762406635623334680326282813580177835677939080393731655999654040911520321727978502260615111844905633267040056260324985804813697080960320997984745255897103595435167478923365349455521879648093973726187735863058089411639455429104431703778262120202189376732526913304881783243326148887984154004596998884321146578783471537624417376813567319243008194711376416664177316452219475049330620897259178725780120727893163602515193046467092223814982409946282143876979216196463389311966477058654329552864584918051360009852456897209362077765543142969166989467188011299768593381743102547054578572645020215580321642872766359645002978088672594490217775664981869990010860389667032233202461002046621438180723481535010871701238922186415343867914634295901098691133064311044520568543958909385713614261117005249342340680610444787796381548390503492327300206949818810827475398847013418422056343056734014238218869711658969674667112369668647013772098927133911329743688068800422936117000483089417120703076669949522355038198831392150915627914665390313865194370008355635233453138917179261550348708171244701661538909990747562601207250710559926723989250733577925850657486301616004280693160764716316274897751889378913888207291251943842217665888229585877134328080590208606712674801266926170756774699156762302970472110834893321039481471264193347229828824938229889988060419932289410943813365343664060517666094211172166723283504779537277661291584058418009600194323059193521068776993885041581465984097090990499315754740961790762939823304144881799033014731141424078155687579291167865493534003843360320286262925000356098710910137866245744619567562460423899635605455946509644986981151863983510761316835835706971539341625417571932583420459633301391712899368104887084165127818152531289951449759107070635149969478958115810936990863892256798446608051290744168046889817042194125044010427098246493349530552555943379398976481541860998795332549959795360651235218565657999539480698848812265395336493046937339060558466627177199926772737548186681299546038918525016231491615193710153184381959920815143712585034059333055543880102293352162682660189970077063445083746960966195020275103913241988095267187809522018376471148129261044052075232644052617648405877290210751752369252457888554353784988098355373538942389807065403833956138441315732475960865596961708900047053696269859681817858747248889096679594384272150608063178309657897499898023735206905638641153735930195624073635382511253956021050286999563386575587058166745559636420733256047874509290235447335206574321041847923059731328880311139568595067043191264407713359310494275184318816469694085136228809076650995158583949221956898477633954987676840678088356154363397554461519079501824720661246096287557186531025588507827289320951016761581636174861330461248687179134724772417559912103165589510249864745809514142196479431721773343369606359620843800200933746563948486092962331909512880358405725904766231929721676824809138617993820062466674552861952647350926331754077572168881843383200674391880720679955345178726037382971341195528702575417363808011500093168192298121150587235868475659880959103667235694929124380321772853530147700611049645658253538136463111324676892470654011983671680988288554379496757618484446073615726895718847323378797251889446649279864729973241064446824020244229333049389139125705549881804155175341351303850822993652877242693927949226420743402530636255412381310420489578058657040869581597483257319838250949534022574839952542067024507523098384124053074727861178317454440057402752429671143232356880529643566618022232887387338270683744486174056608369564810676894236387152881592502147298124232179710865969807325684708332123951451762408477932402973560162795799511668648891967976226268068817999551864807242552906173174136128921267629722981774680507068602296042309235205119712749396358709764530405796937322027017928287825158906579694168114577191827867483542759710398082943155045584491305805153240204632195792709329190428310108057473366218584601508498752244628578018580681107765773315604172573249114716732631790403717110272214981968273431128948116055359990181824734717214435606135113449412365673018161781069175735470774651490442541199594257681794148395176458237648938506494374628559319670284547879407364762967022110019924736749608828577594745999097048108061742229924525698674703678489774360886908413703887495156701993489285838267815595076916803033772369886674350492081079577161273924123119241402862366697287181584741958398031375715623032815272079769073036768321643170352711755451465327117164181558084670200621054554306543296100964300031012951433295231314670447089021297031474001811436886209905362473225376625725144626175757265025928673679636965032615161967955229590846781562608065430296462531448409179549221399424143213989839939440245852096094400263714509754019992908818966083250742279913230301684006044677564521877579899121716060653535307425810808106824287699681019197996804303839759166376502007171948011148687645616164256374677358654299437647861986783384118316832523633283871721061090999719736509965125342545802785640028956340571964869851885012155089033677497178787630461805680758508156153457116852360501938686635371142853721087621975725195459001562045629228042242297517951881538540441992986539989566249518192068310733256317498860270350857762865230038219824585366555021201093120128957712903774762147608838171572504443035147282238882892373465911929212342437749339632338160253004603080588666128897631792999526617320708101663018541125787964065911817395025233087495482879482053221605018400224149732450745506728145508324204305317028599075461066988455858051254376162884527253108793690099916710834157315362074012473735382698512249771035650875439690688244116816690546737494864784543245211995638364057049203631559613186737570595288960715284774520714404837877401405975945290584312252350819640433158342620891212638156235690359130630736114485247695207738400474148713263358249010837026504044233698272439516005573030785976878651936494979491156865652114564686577608335337037323555481976978719290291777967141609544761231894354382889264600838775589179835012289845689290067003028686462345558727577217174270063375523253269262138192877644908493550215877153211027897962156088547966771041493671122620126439342421713812064043286084425255633704812213289489617282357499097238686940577100768304094203561831945593479041452498869397066845700793053622507562075110044762806679776808385058674812837930303309578458366929579982733574089364910179876771562671838548729453655477036504249329631101853358243012485936984325601676132131713209079896393902675405398112097920856027499903289246149198054953737024691896104711908606865918271255647005130202999443079971919061160085809109330993419434425955449442171117253481315018212499992813374630493068359224045168288716954621831882323468973853173827284154950142821053730432721924609500240084872011546551530227899088194078385850869749821025911549568126431460434220534408595333319594147526583613374198805819049029799801890597906338910122278086793581785749354273177901938117333418362200012422844480597265093901852015513928007523491196009328215292444300442252719896955291329666553535611879323599477379935073759220770274510331946266416354801147746542671815744864053491375517280076114690104884031071059523812590945464187802692272934912787876661622902230708407001291064110774446412723145119104185954992828943919230604249223637087208756899825208279344711173264704089650397042515244667633616691082169093993017691357674490728077093397318435430190720523173000808534802055450266199056680150215199236911375657006669904401911148577462948862194658446857334365175726160615667676929611212914405458165621191024155129548189152113197538773098969187337973898676353378556203609341415487889612021061640259670076659387280217117598867599042533864097437455078476004184803504435496625546808712291445490586620516650922436514625399576538639796950876519896564929207838844723467207603674080983137058901066012727809559074543263765022456896941277672501519416642879150470849375184153719863583372556434301404992653412722814909645387566995261237201291613459589387628424446165535933939154297268951660616419097536440866140442565978248424766917352463463807703817243560946103911005531247698179953769065784758927332921410524179181005077797167485860464322610130162407545363139743313222412412610751248077362092144583955942488511834459605955117450981224618795247637684671197834597932056108313129482336963278707940494377971491749881219608010245305301321995921265742712423586450138293835415521345667110237236293727442369147801060624561767911436393242591261407123023640158838582511511782731969077596971425526828666171336168028093413935126031504870293798366268045466719406190931494037485543217580186746108787145388424866682800736740183532457944769521373750214275692109360058871751042616382845307584152501378247531979609260158880116906136823658226907891933298897003727289970013284874048460584804974100932485525848367504768373090496759214597584820868448893258380474742813699732904668439751207989560495480305250041750362320898163496829131000277208723735482937711403534039504149737236154891542921480302346346957516297624434690646322008128583278016418270579834725971677717751170398112690490058641927869520423298062621182981679836044370826469359759275791893809480249318296512672969123528986635302537024929060689291781572461043635477603070274603043985088355078858264767161148082274502635571528183571303026751338530712008225378644037855131286600992925151828629011626775765032438356950753409029007190271412105997294742977089988598180147664108022858288864522606808339510918296344459719308143892043729803722945098445737521620066767272571405201498239321696681897356671757686646687525343538068365990989001244277702745849576700390638201927655527991581310565282904660800128602197245467502525795588677644978030366359230561817911922543915516418978495161172421413681009490319305142666136062311838962528079800157731799510531539779418426074397613942458481479626480590744458944272600938802368386732236716565173221738356000230765958684223580847090283987472365557882857315675914465840268212817228369859001904429146945643620294464082851619319987186970375628889647299734039209275879629424519428549712651388601323082999757300288163755533356163093957364567484599947125573917474155454277911453170082946642568763477506868941249512340191061538779605957683569565556233804324251649492687196789476638857880045633402684010402332402913769143641864799453249474618146294940897241430076351221262293559046170289112208708108831480265949316186768360929247064493670499904873801508941756713149459118659625955808776670441295238787046564054431727074320724523957023139374237616082740697611017882005515435449562833659360622284896918871640745262220700304313809798862265216499563147120094762148246893093031973814780468994637193199328725349940209408417724899740335051495868194710242944574920147672269951044010473918344974531756843406191876745894452964351572727360130941295639655270218968558700598873914256696007381290396636166027266937669209226470983424702642050179552068518426506602670347431851900212883835231756675739214959040479887789024570375774197302096402978817430984248813145753170325070563238470800622416253849817739138272585340711614278216480470980976270091377805946040610206784190720253858344913221312135534394522453677739629769705004214841935876211253911394242449387274416061151285041341228118667166865715413346160169486214938652487692718694365749642220051181260239711028870980113772010277453061244107273641989834317885245239129112725481972383280320017826258938393717042265847438381265955794516086390303003359595453534221144620184465031715381270646502924743167676327961821204044848333847757365674874622504009445362893787299400378232190531994437249121374192401466384304965337679080336031365005889291000793183447034918404546545813789402814532754133411514993119458370071184369801857708375950954574224112099138632161642946504275143566121912709818299442842049023482536101709302616045382586135954016101960228404940980003840526152784244932208275064538419025743509447644407860459804533892342180091320389120003382879441135293638859537386471967912422390118870144122171732333523213246571131231180487498120601191056734542567024530579670593196903898644374022229826540937954102695414111993252831553891467003495953324236887748617716967984871256304147692200718243303708968183901017963334919958183903332150734136712268050909968368377973356362406705734227908170301638660494550676514183633846506696482345043081373672093963099955505312425618521686348063279382852743152145819185847376857658110369037597787715041853705781967570689694401949551025749586751987405152616127431506844219257923853057677816305226775057391671036721549791116333410651932776682023369198894593246373597206298537577054858615421492695512302949875711457095118085258463494440996901690198631233988324928743738292299440779171489183544722439619057308277204944215355738223116362290549615757480052692185966474430311603481988056258390518369425381307256576722950550684639299452132010658482713354206647348314439267675110659456090375343709251237971719232816980932935688368551015483932124205523672478841002432526303453854440260818505566052856649482047299501689967340027985876228391527008678105337866886479857580709248960489144788345582993262111047024227150343241983212045168512328209852387143937779220276211394372751066028856890591216070971701760022061309820363475229466891582201699380480029486513212897400153363741515003070754553717326801960875445646155515260222985871234264387163704441642076460735785734505316268026021680693272590478114559679248284450314906505541908862431359146234061169248054182157019208876207343030956543325745367067639310177753199267117329306603412864313416653353648961195726859198496948505514357813366747211968524898094216287489195838201095125289635021356268257082792674446164391668788997550526589572111146416160850937448332228050907022076330983589282507191023872109181501432463880167685983076906190259061226376269793461644343445540374651887507492776578988917085313928092459254266735843074262735330275768243516005596657793630336332984836335519970662378591453380620631267139241358218598812390664885191890527553185806277745331842393099273516627590276289963860141999227620227677194881354444242305958897858462070561586860914214971575767819748611607728885045836614804074258107136458250415306088282296627984979256343646618549460712437787670846341125406656840282970212895202462013936854489629820887570094784505572625448210053048640094949312529359732122707755565080127622086780633470126874540018286190016865978786918050828233696869637996786603623757138351933671738208461129985848513565457133849529472038752177251933922665482528372699812024952426389391971149786792347171320583134440959535863822336783560618354761025265133344944850575251237384419623024815737318984974579072562430666068217957966933373502229883483969432185475563029566950832741291679262310299062837814598990465995057955972548454915584576490296782925920585374522789039412657983017677907789509513515068155577809222770892552361013775495273611302562388154767014501233850451427273943496690061735626133712995377849201442897871886985774062452326312395226223729856404271555639699629758684696319628886838784539921512477046399527428433545983557579595747007112225269633872221524962512188481906759566697652103296809749054039624270416780629839843106747685255146868725504161961033366061518603161982424038539208042778677424789077511941492327863842873540600647905595689717107074691794765332420199937637414954825541818540777050688889910208875744686753412385568662777886558919114861061345530683846900321138771293844092088735205531889983432201376177397890147094793278591934620094727928557731160312510353547901555341568445247757858931662047482106748853858097155737046361747004375410281870812998960566325775943332172093424291806033156748158337474836811496835448430357386569451641329840418274859307426081540341677888979192859044975990719351980539998009888161323536176911504547644977836879055142359007463050463964281895269218242146652256191660495219981099452877014245158637358266953522069778000258522457173306654875755556698662069263440753718604136362388010113800852090248844633111430871402014904210878349332896983304760242550488325052560869342450289250267430365057052709676776336773863810166225045729533011006127349208801546657534835051549090847615769785056077424972418037743145159898174789973125753903067082812452191039056627954358862367991594916592881974411427224255645414327405371360889386117170656773437602569734890170523943851013897370573236502517980366447915518712532873805721470501803067531239870616715156976450949280661091824530165410553378841525794506609815070450152225524383628089345004237035008595718602342842239695216213150578600157841392364044538593321105535186027375450994893094475864158089985257875392564768173884990746974145547949262707871415294706159566848198091415279866856171265347272343634204382326914026842750155438639589982127063104989504302376949289285592158408776015828656575620550088637777949682676891372031421671439380512081951050975802290902606797404139852751728071072868472667311086839813034867695013536228852118533092662982387441293436400453186085069878591458180461779578194888298031747230130884713532817562155228379368309911745725313261603985976424009774720462816665265670436202672497128574962172073732946887278977523382973495766502876125022769496577886837175594905508233197649537209935714131701721704610763616806203527509508187727199777923880310073962452508941163713694529176587554348041056625444926329747835911134408793261200468162834039616900773135710158642561559600328396341576820311259738970645273937751427793670244260950142264165150412669557979847185409273582343540700518252431350300521472022817285095615310166603233027060673561157784793413459012636001115968666024194056022560111045594607604226424930082276719272196836161150128802828613299347498511723349424597557711695048239639414653231365517823513485991038510978293894251587243528058489180451048670965022614096815330049503139611315827341491711119855923202980236522539895432494358827073817813064387143802547670204454061834745367295294589522289126435144963583672548301170862986923656352086541187748129391678041472686369370698451340839543952266597969935416088461035224464836201612305639060075917871230020246122391489278794450168452654630549579234177568301408880375228790654295125382625534629625703816777361549309516922316574659419253500917337607462061907180257285952086892778708227098705079956927653161198373891389884453149477757008233054116556779546314908507718002357178551585610248890383200365033226845304596179833674541406464494652307558537318055103111412331283378344069573902185954073340994327885428031105540544634959605187378118972262540655693690490284110869741923607311835868835681771141203889739619126919227728324029583799347432139818652614479564774454412710441966857247555597471550273628422052461190520182620016048160705246016953726951072536338715286920392150524917963677961209875438514654740931724966091391157345531069009933138819518532230535461659047370278676317665033150804998969553476165585463277855380820109656273173960964539888826657719391288809098890000200566985895665444602346865413321057810619580200788192422251326952965209763679438197536121377661973093159653767464198075142046524258759156683870638336249116891919333950975147882665609915864203512669682374870931077889601491297087279703863204479961594489094900528554674115582197003846700333771136079807956084544239518023543810160317807669757459994191470088140142113221092382953906585013867292100661464191531036651119232125336461864286478840361428714485026702570329416520618453901916667357231136708361720294921106824125652034385161860400045877208416909284424997090620583747008717445419240163951062012919159219986275405852468370264973946562066974745755789529306275535782794137418108154690697182875759352751726394696309322598920289074656314022447337258830736370995950667293294347534005498488219717218405472593279353972939380897366933266730748097642583053693307982557508487732891337190298145099728446594564927979270303215621952509791447750971868493884223602869970428107557222155410772696150169464115183622848058871792434893893432449026300942162784649223297351526780302526194548359115380088069421403706640302842161996660889089785882595313316584418909541917527719964642401857817883624957735117060626893593299031517769312247574375320904352737462707362462581740555622012284187194117328279794176394862188189875524855671507054239784870696524185185836749938817137040720786938646024687664483058660722658701244168187381568049954287323808261443308847712718878649797279823974163802008539096722111144897926397354134674460738101717688624006292605923780774362820817042892072918627304868717739210514423692816164850195885748076839228819400358424857533638500685346391334257136739991220631190763163647049897722441239238269620577979159566305227389084009653202107157672593037199916521594331365079712949029365071248758798662460742002357289554552322748742848410782844663547330060035226022951972305571455062921347798272000915220458134669808711703801776929887424863720502661175758806283994475174551407760129740665611978692092127809165914475623774044451420990707635957525012932534768535278955284503346710528821818400012421270767812478789710654029801786449060472183784556415097713485664916696274147619473162009017325834478179728698501257754942464192251909110163665265475672108450833084521230106325743186987233419442442226226286673334793044453074564577407478801920761768812132978409797378675108544127680956422140550245283835865949653027411309304396519164477609291407872465112777306974348202442627882689047807740972899860245588798815598412176755375986218136160137461308707989834094531023216098775596968679236024748240045394260912244644910015001154380641283756476501698989805097081885631806735917754665415469645031923253208199074085152569118896791211434278097061083630532042728518056892973713917501862497178887113136006664180985111200939821692405111817209872000948736247189455990817757918860798910718131889248481158270584841064532349308202063670901860549738508733896939748518270949702337117623614034760094666009853762965275112720122923602830408303670586446779429431248805377420882397876872394887497343388254615009938868777575914090052467797669466863794783647371368019142240930547100123174877225303588987908731735063711195602058160145991038320247118951679684553564380083292665500669111991169402193257513568821685215338748490081224620875530263547620029267134259776265507919631136943213588296837071681815386630892589727923023759792953985109384618918221074354786017588203543787620210794600682997718136012645223819018202556695347711252286368541381319262248989179284296786691422577247842102043009212592421041931061767689400176993726298339937086225799745306654280657826948769049811092527867090676797933878379197007505624653945806755576623107539315866127499905566360069894116781491433584590848977595369286094245717878423996242790379136077396556994220126198922331797996303380281120995989269679723662564076134742350679149816020486466443000305510726014600115890807959527465685854828184981700687969553688565072550650965836735654685440665547876412218081591317582229660550407759887591932976106339495945132378600946206278165608051556389595014505378307423839015569596956740362018695232694810942006946685672318652899614293031189734934755490010163674608047866263498235574959334522316886008429439108409009222161618004112936421788982387047796781006346320202879845958370211999282697311673822142026474514163853037731196920277392918644688005966290204096526758394047324884931548011353734074902508849506316892839591495498140875649149206948882273034495327803481110062608173857099473841798043545688689902278701922438788771207241307826997620984046903269387987430355408643818953613927779594448608107465153808987246013221007457077249782702077345653441633993797112393815285156965037696437106013473588984730761859717999583932710842380083124169228201418814541805584110651360162370211910917283381621023269225010965199204381455430021548236662368252421481525428497400361395111870019054699737584820755721004389181837692485024573714667678937503029810081599217684642685065584128131062911324070079813194842702239246831823765778917956119458254837318680946298261139998670379279157693160487895264535544169229279187392651119648380964136702417818249676767142499861170759740164289020530832911738820831880469167072105819791504758531530443047774964320761347022193627057727227666497920231745865891728299388950461564180133210296149861387035979077135598486114166089366415752727674903427776297147186288254327309459477630368892476009052740933404586909844165343581846750420260074413116491844567957356575582479768205313729981796525563568409644541586192927859490368910391755258682971448054156535222066481807145856061481265104446861125255526695018169327513204066106011219966865471760846715736231135759697856033548853497447494159902283652469396595250810070573052762620099316176510768939405911948614522683405187223086372332363806289401965123307358182420230052075437398016922625877214135568921646596890506563160941687568843521750995966887898665734839371308480641909094431827827358344682447149311688851706297456722892320559418669339204049018735218719431468425075828041094665917727103370319394470561756032338452467521886793408973178163187819455899563071329798470191553147674414665994691958416986845135483578504390509385381085684366297776759896347939056756321809090331303282116023335165333464411941115631327832984927045023343596986739135128634846795127307501907794724517001068453552777817269410333894582031178188720387107758403343138260832170472731222334024866096423212958231965667915213285254832448909612630396078570894145018562001190003068721975146722624394039311084342898934223790554945439588723175500303334001124364283312594080159560312813975598410967456809371100653513788241598059725527164040401743619202491580223077164919977771550467416101739515142897166900207859342127333247892039793739675926816744611296554267921934688121671465633147455719735749332674601016273041101005801068844483448254006459782053678050059654623987061986569401086041737515941693211494550512804797781226381244297324236221137526184590793504818482480394842723777858375502668541807160562866899049244620416651789505360195402508174231591834667142129380140037341251065319765357269398947124049977593598896314031570109695230543052971212531999272627052655268215510875948553662106096495420852143822223685682154062637166901791841352994044777865634144209981149408557999219740685633490880457927208090885846294328102190114240706611428917972607634248280627503626033493347553574768264036313113822494768832233571526628079337741516509612855678728616402350693800387971734194022608318320510933059924879321551284850567850667675156880603572984075261780370963323082543096733376587254382542684705056277904754419413919860421782915646286220122868718431493497854414617859574524164343069597879920860367653388186184247170415525200890405324947363155168767041429611251377742188647950722462339284855234162941842673450771271594688111259097247502832689930953928163151077102557978458542436075296661293604783101710739349283527906091857657310781299317272916821582296393674721138930388494334001353693413846421666712320610273959593116539183722695439233127037370043423818854763964035278090897135009271774583713129880355467086549247940164677137550353809237661338113500310543247366812412514284357342301517760956203825944242711614565991617784663022976709139597704667229430602625812896236070364779771273863379985215271464317100730831585620278595204370103750345328230249271453299948518016311625102941313740784524065730824309354217476125546880803524569969893118339314493874398507699679746282307606306158088282467980576062588537930598347511271008864216428266974054708732160340996070551120026639903122352691248689915590622556267637026675590585489930304809782122724071399502245315658553986220034984204080367938888088260905040581706504894627950889428333365914602102177407582489265501037642138665915464712242184437637335698801965260113942523577679438516012212936841158517377939207708681871236248695492489587062087874830793761396885609345325010175555890288529589965455745294824170436170037839991145397570311577521574802227392054105389653219105909929968220505414767913252097146123731596229965698757636437401957450666500542075403972552489916875365857496133678327197346359621820272524501793711917061215976711910012008827916700423975235688149041728891794765723316344352544171437121761702020446843590518645559742931363278565909885779605166178647573040673218107290580943639094716539227886150575435987845057116088744854350817207516153182519914053877260129059342199302802198746487279839554192252816286512951125084925910220979971168752655411760916278689277074816400798027508468348236741467278060767745593845036458300818536656474680848396652974048814182292798514619193780133694028830854884307807756621766767428996728145991321677814022087157961442595208217907838614908971836742519373886816912431237197811238866000161692439324031431869654542185624992045736401574111664836817869640114835883611112802855735762342010533366409289067638192447581660867209109391813699239187366505339370296765325524623792397403847464681813563361925986325122658173178106069340330627813379922332386639448377285489040567565548576986144852111089132121144928476762934714132164471552044963787294350253287890078392215521892725979528288158158532710836712336231246113935943924019828222535628997646363572570677223875190395022161132260748298889979254042871962118406908051683434569530162322046010274117715439554820483004497592952017450481157223515539696851861727496323091157828805430405234750148950268502340170735547644010641136448638314954278256423732943524180856855928245695100970432304998569703440052239158221204199346330347672175895953480035983947323856653880099758645801021313104925323108906760565370650394041212557680210918437603415985037154066774276525237643067475895427168982819810698585956938109714249550320004923494621165401264522277563948583648064107763082778807491813216063483747865091262479475270432716453310633690115783884163184454048876482804790029877403063465671180820234424691641321389128351513508568896745376172332635529281551098754937117530531504610592061064429068558865738908672010914058213820749906841971288299627279919739666174024493637273990623533258242942708243356530925493846588465675659247218550593360673826035473051392264233155648681402757722545378049237448162437251948027220067859126820268744860304592412639174417753252876834090028926419091081190584765444966744252399721387102606460356457106071161426766345780799094121267298211457515167129186990832039166909411488415701119896213740230969203480463607852951852809925351629543183879302291899644889753059555299784124481861364822605425750346327726667903811348412645128749539856689559821920451602259592328561331710325958114055528408846004764869752206693544612475178989514930147140057591170995482523086772422575815410065468508456605392608850336704332405310395065776333330532301182992666967652974945113927016079962900712823490731428809638808178918379521943598039046193105377583005848172633551258166972050305534871191397020374650896697635541775740097205189530950771696812569118386118847627511251827988023846839440638559090634859832942409239837217366016784983568042490341864664459916415429107015040671689567064001659916527289034998214272823576168894519050600910694548181933934114423265945661639107261858859621249273424977650483350782834780340518979834711997227412646415444125228886184560495068756416816297419624976620195615487804850324244666576900053344442801878066534984744128718440849145795763045575916454943702020664698254797396999691739680455195030543525412842398770727308983858895435264789747872852748955659168728625611449336352711915918873950892161345968768176132245146607015987394460036775312494366124734706600440384401234452237763458708191496258733405979418894988832932018981634916451212074913093182370465540429465545118992513861770287945726953064925912541401893628198698546393913044076810965941041319817075816760951531036633134912104702271729387825913546971356933525727665570580455800034016569609167554571197701034212708590830368679259973514366368418122233424729105327060631101400042001014469197091277106239421226672210048800123320728177220904093103526768992743811954652516663503088952881692532249641964373168960315316581054050965075746275655840148746799548561168708830806760191148121019041069344029118729442977643387190187471247986493656639641923258769185167497166525027870779989167863275816770681578806576832841867395339088381084277923861529050470741271595090418950711629685532330646447329928088362656870440314911852274156480110499153657231550811475508650936512823901811886904684416916560023014579175042309931462478146089972762325101585791360244933835258899908993846535883249313560997251145798057990715033981223315751898619123443165404700437482570104622041748397102889762168040989294187905909653949218739120658693048502818124358491254386852810673583716246689280753730811074178580406368252335830378481944156404002466892643033737031638209883834642465302307497856154227453456019531715568173916577470877847245587167353933568497151518332817938007018092293444008154063577148257481196466834835538900919068661662297226042005524540415759620357251952412175157223285600656868474959561209112436857769900642669502394691161579320760299725085866761792364207930343124064997753741016728404676241110085351755236081793599974802801765289350692274690769845667047737552438489045102333570561369420088874050328334979016130774114664658691947851035827499136010512931380496551442281591615238317436424664950089996802131003027369904236293129489356663621631469593665798627120918595171702116762258356584188674996451914766373895987816137391569725830889623833491702524680321752217092587339574937740936937557784853834194488476061892287360055667760174433660502923611175461347242404373504803734978153814716180904304650846338731977881175339691764809959368654465157964595160355779644479716093129443677990385819895797588308167011815845485658860025113655894225945899024727217516226418482291590650704305769412764609329763027853132593824146627670661226830176340201488054381334561991510515946485392537995817919975242834828283860712617003274897731815947825119648070939071127663713695866249138037058679827277106702369679053215766036834928845649736811109066686702292912520180699697761098562460024340012622866892110096977340257457262699576507724340751903864001170194375055930382784268472705045815154143023608502958574686545252018185772749750508801602057420208288662599990077308985558984767754522071409321972487097178486065562481513036900974032668690807098214097043403373511758911354185403711367663628845885188222826658381261998814719540246578914204376871165187397269899630870989408421250183615845472813887508263775490819521710718102185874458878227173224362436450314618439365934161420883979039343788583672443202621222424601488465433898741388114576311393962031828678846171046750665507389340527667227057506952577253193633027528345625253000368517916735072456027094652041630351622862238858677669277773861256106376357696518640196709448026710853192054528404845476685277230392233218415379714852375973551884919115981928244282373274392813246854808606321816880805411934392814425207558839447128717545464115127482634353802592387298771127706688719778655326343108551218286587210060426250298003246635190868244017850452478434986703155759034895288079408722594960198671245904119052335625348097487560445234103613141327400929538436427063646819178051563273989161144828043417075227167474415748732429790629038860648440523168805589137088020509521397399633418563976779238987596209705021789456073948459671092265964281797860852674070807021237724355768384612262631999162431423935218227238356164924685066883019188140813803108850969601595578660354651864161856174016918068878828778629585685263250196963066807170058438134927784153761042764348676959675056764482606573370549179565464016848967766734425952734456821458688210044382688455128467659613418827211717736560108264637669657410421783072460108298634621539776368167917635206297254637864351742595686295954273877120963506806801706289654518750939761907955150253271619931320681794046605486344777858287394709272113394773657156393914473056403381015253767115864858163943165119279246331724569533696438467079774023465247872601258755396991611880267115323218496484636614149891722288491367741826199466336124756008968522353645091407679858792111207859467500073477322729432227088059591425604790272223158685660288931724384951519459000522119224123082199193318542400286577978133830395252410032643495749181318992161026973998252343104232753353539965365780037510690301687316961638449725909125977434257012534724792112651611116577317774020571012160990612806569987021854829295484851581189988268853561967324951558770426808423949431639980228014357608920388541263170015050083043531326696555746252111833538663434192087941871284095838436941872765114571465496923215144350419741399795009907301572814759857782091528618568184236410929538462462837477678997471674591221386342013261240621103880321993921289177756870376841528196071728753979641082890095915428401775824017010396074446982806625588672611426486566941987225110978936316125983700447394112935714898342529642612092648354954414935817907428579448267734249680372517172855407214430449219018386662735478714205188828394087803283922138207143050789626859559847573442573539440406633088839800479893877828321614437900082136051700985266771282736710991283007568973924415166209531017936566308196588345909054598861801052544619990659978092777029600229520493665253674868651805024048398445798049283359408212160140642952484396868692472187353870631178451711779380327136431889469061456841722400956251242145186412960318261702647936291031309583092697396982343918699491134641461008076256003761385387196679119903857474529242663302896083258911803193912361163984213845612968050673514412357700167348832313329265110282352115311140689093344339978305187325538311293339137539601880229233156155367307180892522030097206926608368413426843821658050610105013413175689066104390192223204730145317612861979072420545623896602985490233154625846348139264013031268282988419438807946774575993586073648964666774107961688001679915023019882304462136303879489763871223630948041782144030547525952710812263814745297099848658295159128862709977781706128184898259512976067766702050112002500283673814642576472648345310749796565221362872039063256491175279965886341447814094912534941781853136352207822297908291062318950056920473679914886218651832833232906649234667289531400614787505296143873954150935778448671647738060050938555098512837116627702791856906078582216960951707914343857399045591472004040918096515635580238925045630026979897514594333179456959164791379400825772970870871632786877726152202244863339328547429969397093260366634377086842372139454052081455282507605818689535400424138558070518106138350202227570450264475065383774193477574482210636939717985902051588636016051470951320072421485081608778804919549291847189324865204398243489905529322778550926710338294927814272202241520552611465652151584426124349811427681605406414438440778580668338729606360315883467793720342666609618965520731579640974912151851893556539079106840924002420976231122094497986553758607029994056288157019150989742654156097846291046971965125860353021556548395908762153660744867731542932448533269678578709447058440541676673478112489863015586534839520245197062594481568841483797836423866849727310283861650330018342801087337831242469533377829725856404601096808943503084633617088625765607672051563054038387095825870387795434352678944987128119942121670298239944421688290175109350279171957641747547214122436674480528786060065085916879034753845639225234766044492901088491895023109291148865293451979030141139422081093270052028955993617232403316031980871571657408505101083765383867156365295497229674853979980582838881993757820114459231399910845647631117808577185202859374383034156787819341096057637783226685000735100075703290530939845296430962631084898635979091471746940411508283001780178671455331606648486409189372205155756426390618876375197663308240799739021165559930610215999459372191562227575507485590834251077886620340163026361792384691361738539049821642529172398684768418074563006000175035898858765414189165371826145906042283965402808535604527531140004639770258758795329963890800271603967309576283385670422595881884892355050266088421454972296007945312213735519675644078088171237723997866914974621397988626254508509552835067113187037466626531257678961499846137875839020124041033845738400709715037611674871872999455825633783967620478182932032964543238727985098635454537709176398692420428280232896067846698021043078595513169017261081755394436827269838464298691540064485637528832112755933780185589516443344849706354079363885107079760197624076886961587404294371727637889093368889348842942497072314813054834994822978119204685137127179785137027588738094396646403341111288637804239184487371388605349293778525461654881314039332082053645291178796353880911145842390035012070053856374918668425908139136361254702853868566528094095228540841074347095950087266830547211353008994872754975911447833048807681219099325491874601265004355507568746206831418418018052745210870295634404856389389299601514827687495300141428401823185132264023287649736812527229452481724839233043106085657528235158314780845111691106030606441845812589275261057796722645638327401229148102720485975464735784293605206257185651854379796129328238161509901702153263953206883567065493617088184160237130100113887438615393710352811557225657235021711671607804658272615455688707834560878183606743133749010163591801838462997144218495092878249344456336281154091908221910683506948171646172083522029673057915100511755305295068082449514512622789975305271053139677091475489360246299128721731138582698167426910605660146195435246295198450441013978694180921821314980664883039071943121755091812484937206688456165145809842708266164532147811443651071505798383647940285306698907981200650900878677507795987636614247329876307427882393621248462075720823984558956347413622361771504157950325964005051322438342492181273198925755200303223181845608320739022546360563524586997495203196247239330652963571136210794094878765620560826506022794228921800299868912868984327223786038274904567879588944408458961336884099927198050800045231572349098901676845043431749948530753834698167611437781664825753933510045227261200536358198423026817799820202565519485106488554598760599201323328586358253061729495878468206895721957560375861011318714640035888965894899016225329253170369843515971804805405652055546304868938492870375304747582690280711448317085576276126773622685540623941803135939936286965690269898949843002045494917080110624611888712186972291226101314109825339977513052796665640264373838341465437146501820600968244977662619893992425717113913685542040387868347081276035802965780901010886099497814175894980780448223595809558948550642369660892554778645036615291972653587179704601514139596343832814816951575589550604907551651232320844695353788511213688900581544792304036567476196265902953585809203728485652322835419952374319804930896796146705343087066385329448732765752492515318445371501950060330716760531173952445492244636367451217082079169963267230886818635341179902525132389617100551781812558970134067586157120146705012617627391111039627137191863567007249184944507062844164040854708359798437751758719553191209253889166157241873356705802700033903552322292800418739096974411418109346316857969941052310690509688201836542462053488881223961375521531269367184203348002551521433270612060501877956849656263476542949103499302787176882020873454023760992055567572098453744599323953511482667796557775570229161412402745418121166776043883211692697095165897972439893932241930297999892087539618032628273182909273711245994635245075638512612764835128520247915745445949829773245879623070049877097240430890702383510351020991149927899848445718017511094927365894751274747761535522426935788088734595441390192302302167961455321148149308839247554206158819984109552906321993139698874849428784184857884037778705115005108486428929533509758662686777002081195803903936231354550957956127189799008759471773619239642588381847478098594717171280580189401064887485595570726985944455139034064474216870786004271672701212303284127011404033229175409090730815324628668922341218290299864761188272028398548901074975803627028440594859904036293752637037283396579805743717084600551658021754594365659922134613473131850712993182683573982680052268219296862879969364502032544793715759037621529682535470977226768399765880937005499959478629630518475203609659013773735155863523741727582662255903743871499980028736241559882314171829548118835970207078702865657738610469396844651655072231627476956400983642288129896285191430053675875821350741638893695056048299151630495158443554238774451534119242397404210460735722886876412333787074105774606445688012034220699489857464697711527074823262725387468611866494790004912207996393114885480487496922079895189530729142241431499824800490936334306746280342160216999193371677644021386915384414385676776501527813483285895458150209650260396553448927148649697190858699504635234927286852531831207420430640247220144004741696539688501572265477273995147399322199153721657016321447444939267654104313571587282735602024633448136853435728305973778256276953884873641455592108633590859533846086938607376279452834124401711036425456184156537659165962178841134486989748474097129757584909004260956541851977842225512561605582575081187653209844632022019269910037875497324951342953949474998821824821072775395972098043415092393642515230308611621949045101965290896446899977126489908198839099243518627323654026504415398989898762089685587469623693128854392575053865608806538540726799068498132784006148866486896426434249690968477647387741678149469978363816597417436149423888357750401028735521729943537733240104677728398457323641728889929059689106181425209172628365105628765646977899236527838581122788047756844489279148167965484272352392727296714630271515912397433783519565394805282854891325914987666128800895514956193843805375083994294728392076868379436206556093219770333527070957389492688878775345976864601770224349629116114097165927774282291223799057045691236208826737396269626740509167667303549951700741422641327578617276873897781535178213912087201726095627772180862282634847974836017220120581487002824558503559876913894795851323666503848343487840376479030519247269085186874229482640537631446889448192704077693958306837122425938796176403591624896602338296074656374927214060432592404878387395915226468051951502600542821403320277942441904335610747502320318543618361419355450796935212203885529928888784113441338759335904359947325421247766418010355009198812309784158277883702180331388795005578466387972272078207813901753125460308199275471845243224618777728288878197169787341699582823447627679186821317350588414395596570060825448882942471073026580736577038920129450038333660407276648174069404746093422562755278962386493169418844623363009780608066473147318480115867553577583753615080517672790048385598910534642708856367326974110378194539793109894063858089750185827412055067428472826599118055225328100741453062627320511083515500277388665933042379254279398223848675697137534590820062806364417213081842431155244945084785187506386930673292231254309001708056670099718223082304904934319617423867315155141157680129560529006501900594986889471124863256365694234709598776481259836910663830735885269903740419426975951892115610800602140312486795574193659871961873204093369338919455768050862705874883559424562934358379232811371814693523451107863196000921477706456408856746797950959238876338020489360561348037837072199170336396530555181381890278838112588831831613561461150937877119628213753289704578756013904631069685207612368740933736393303309439526660866469660717098089052159630957781039151324023766169739009551844201955480498078780699412534815063650882113152282929142936971268052383306846179341214389709739261326991651521604753489013132172943166621069104437361694496809862304751933285404827277451388085018919463730171221696530975212697467511961218085160282884890806891774513980356820925031682498946400004981990519338215468412134478307714958790218971993930914312418370400100026464693223699739406363880853980094156458590757902408651269645898388198541058869298676462788156414561976158752257378903305311151995610180588587503951939203472825583151471353559854251764348101686983147398346073360695365451358071744981471335816169090091398588505253960000542903296472833654328879699120164572021476211632063688623064531215123265761968235857752702462095630026859405315831516038776065114306988055134694447059658590773304561112578655260593041780586160565086844535576186253950795135473391574426810811705527466922597223881634238161878365331831684256468712904738559120073815366409381982807774168121913065658164309353466528174326865048201764921187136168054215519476443871530899139416450278037193519542809152668646582287997723517163697892721183728518546944702798714528493563764962901979918412166775467894193463084810908163765921887629683308656885129101671508466796556813537360201926516301992183365969680952476239470872762528169195523210739897581931970889760605175380548323208530439769777818339940289944386803085584619903994301735217518654637181988510495147402244706608313064923687593438610080444785115752023894653053959827599643559237794213895618196482387951206862329319563721328598334548590145239296759666603797959306969563530629920327563069403058052660754057736425850098096475113421449392335825590136935759213478019904142117888484422586247734164458874105261688865424322551005965170890516951407815623193114444196340873384879305253917013742551192198499976365558237880357160353475227824316968358546949774197421690683909700106354206996684803621809927670026698463634612299834788183707597413914612140828235642744710343641073785164180720094681513605566130713536591108501706221779178292679757244343702271900004433440067608574253410002533990810181249790032618785412330559185260594677457062762251858170640472582532661434149129103709705186526549448496982396971620068777625680776314753513701228037148131730685308904312157430999875357377032286237062256947158460130819645922969507858281251833577385164004243394511102777251871651443535689347598022575800446997573802464910336229187800604228066946928156105399712548594790623343117782921762758232281201716737341244597387696720282941908073770291252896330590564938390025763083559898827583556450817374794862816470638524331891115839746650906408858070768937586348528098055323658116321886678192662853341665460172630976678393521822824528734101245063425559088045660719255703752706726207940563361534440559683291738594370756080159984414393097422395532666360709314382981015665697162266258876696805259936309642205294326861722397718112576840011428441887951020621879152849370459166106656793413192620337322813527006791663933429431203272616307135387013262088840201779883656995808559207667623890605112467341989473823960460377363140843880497089443492089627430816070832054338851644110979975963289274633630036753103790025762757906987567030630617016738316512188025046521156466881138960309178726222932314505683989971509867318090765573906440253353661888546073576872571620231766124572019659848641599815102084019972990098822164545694845136887157428359517126131442973779219428560975647161246536113050577004816791678767918539742937740621755164222868960988823201120079006692196329488455596013351979889153585196230961281346229302753161611063235508426405567835098485066420178534279115213953448690814882352697791555707544550244418628255956463712753368245948948306463943107008709606466563434461224443496852798202228677884438166268037286083211583346186983054901760226255789176958582073179746037348963609325140738383990147975882043480676238279820913177652561217596937564870172130789670962909033594294173298743813733350289487651853837577236187609800794177399507839631026697553574724563393095965333470890675220469091144936934588395062756144101978534915502125501345507541264211547385454858696592631876134981690062109391378343722394596889982303744336262325573417947721606087999156311249282441144609931607859582250692605282948528796811684393467198681568119540331768406680563660256588867639896997304883418321214240888191199249977185656261377029259085610071508962787032599802847901030846531716606161916754692960695675526229353097525691059433291733873426061787855562478856935966159487733747947919395250608897386415168877481082237930162385305468763509979667646816343210930009655245305708599114475911247563827807955653715158534926900718059740657372478382593295874984504690756984879088254890280490466402085045995921483151907792891856233029499950485013464274582977860560626311486557044940036570815055173738227146348666121674735783166610780795387302663374456661631946365837069732419590955987068061009200004707010061716819760724530590738592047616959777600060083776888741841834409864592839056509394540093876181562448809344630080892307733009693245676911594618232278738540387161116223719072028159395667871325725270591176873586454691123581462445749727952553120059942925789492008794503816048111547067403376455509700220098958811681848928971398580578009973705009901619484536319038795106583653633185613316434621278268036178408600176439238124177288992417655038382878643651238524618645140691350501722678550120142567863278781711417999871002620746731504272091055828117492949174313672606186846080486193545295757716122419538864436402277963728785312199571354326298468280671200528308475570437383169837041273063981305681199990145797336023042656173199257914332238758249650264825282289515503573330157322518679657322484171317086037111441715258506138805803582329796039666617209896185795660628538657820850363036105932150855463628712407404424949143439651116298300852369843776486140719305005901040676548684888619167662647252226650942819362880234809031001699042808115015955828691144921828538259211227436964545869898320828673543867537417296332319166893298181180671104049876126210527241037392379067487079000917805067056109377160139899774737927501376146461144285328662397353698775377305414741581658719373744749720759117996579264097088018244368314444062164217036525611189303567959490283654178750652635835155997674407048260841747219215637401965426675282687288007458672814340334903440446227906002589950576381156534371548838303157079265099299321302602654614502027159663641595454511884644552402114966561334705829677943008546127294519510143228805703466301138029502630794968870527626322348746328700054560994936366231767678676528010371477784540634337815867801607140227633305600902152474673888636837378967276832694348678563204957021497261745334877049346449948172601932490690495011413442670465455987084208974310079266031859336184665067633355370982428108264147318381966027743557448513731373629428330372813201160876149042277204181070340313459011112119268326475312325865402784227357125057567344605481486145729949608079647385436678299626884545565468058352267997167958481167593564576349552644850493633871911498361598209286837072709165642190004429872050175233260252018661285059851272060069634723676170266468076964057263651233593229369610583333603686409891073497815307812242215286958922169012734185992521679530965045157413417848362463868837939409930145001009061561627652135380551437802004301951831832181622489568500517639854132400884855308905601370272297961998267402486482091588256043010096889721756595452509480238245002779174385020171639034015410588368990530675789346334235775847935052731439697462014331179159216351035342820055801061242096582391124791462713950425488107066429458893805143716567994706096410902056218220426798888278737459242212441148955812057375275698698629588537525898128894734236851467492742102119102783964331593970118986630721618930139475688261127994479280486005369475406740678297454730855550450762472986459388627794018475967385619186190028048844445099534099432020440743929076342923974023512523941685301141508892243918429244963574572411866165684331604887490626496258673139977900836389553989379067596912143299496220099352406810127720283074755550064116786007540852300031910822167672524591249924373228826181060057834477122182516610109599924959345106740786460678675398460077162237589946672166879465762302938340467561439875864358028239511787167724290629140003984583799194714418635349197519180212961266182152823594705445534476328753964680561159512470112639036702499598297407152670896840215593364472404600174905026940031324246027987845549053674789563128925616417889769666609877924285661746270939894996880670619550655793880122615741921173337158120145044069369409117897315231393894737843305443825169690177903307316584701496122897213088746130085568665828657990351979179892995614171903507971516470545994616622218313819290709608270620601542350618289034678777062970669888337420915041758764806161397956325320661495487699633505776476248326022348402603572779842788852491220308162426646470310342058926146029973869017591360393680688137719485747638575701791679212105055362428072991395525860298083971580046359182054489489286392082004996220056067925886679009283891710362623086320887988732338098100073406634278975689351337662698073926477893687186959763750675609805478747897027676814028492833822112373080212472506196414953361869315404794659857685682426858347380864712423879111218966081601295596323396797571998646927469057707705460660570922560882804832312973936809174339974642458473542822214507669445853147880232652654721751595723600888495256795634080619757055522168243663801599379753711368474143778504140723944558421069454103431521731066520483232041295039651338919916048282100729602821402232901937071034750642539148733947606489844982359079579787959205009620019732489677442337920428783426402165840712125155508012279599765122560151354077779764866026439645182246947035334731294468906584601828560451872801381915264770460983305105731017823989600337451671731847950030105777533924133522981159686039253859585220608358700197081187835481054356772169656606109110200309349746272521649791018811141252593569954456990973464235865217875209141719734936032362389457877276929680042602999219012701577569223279791760432938490699992881030647023575359627710197929490480063542574466874784309040152040223141046360314309268972393241048255839935363047219382306256817125702164287685548970590604664525053648091950223393150369923793663903012514554439704566931720506141145813966116581705035531009705763983553397207427282401598792848487304842915872495202850036328475447326160781402126562912418836128999485881798515532524473208392184624293744375515378413498699933912940725389446223899447932293971957272538611386302342529902564013996136963163882062303970388756726687126960274437152339633758105132154842782962610533913730745970088331432501143584340726681508454105763141511205443456023754353579699949816288835203641955887102745754920878048980441323454334280038607800893510004618541336833794669000378761126990125168283926004138021172484896584458948331587097929884293094161740657950078478005362571576317956786247874571522007073973286512675834513624883428729466309108443339422898557536983978846067728395992070596323815378843666223351572143130971021587851738712226770688539293612511991380284994738864411173017050061362635538385069683415641930262635214775967161740856433375750518795864911694017505683483769840072856541239266264206615746601378679188795259544511934283938525496802386220007758921580997059330240503541147393405653084947227454197792282899751780857922847481615108486798549080595692960332296664900534555221532745008221948352925046179069171127484499853442098174507705371001125319302067422232471567881709849989514404185345676150624132994859944480658597759028714140490779878335267668275734054013559388233156346601048321172857049036557618617951737771674221152807350003004943047559138135064259561602069688527227152616401339293467282033966902630106929963732315802513099174005191008947996296397987161143610025652565249457045273333546054185376600232424829466465657048217411545384668580314479551458969844051430442514815479467809773757170043951695679325439334002632665934780824772091752481372640450774289197234432655244381238516198987248932671914098533866922087075667167786142303413636771956175252965624286034854410199031375912097789646158758093342758730118727535617801276470789424797497162878157319857368163294466602456222100284593944577629332223120805416569190095681705168746043226461207971301667667965790078781042705496528146577714778791550909366521632434518269137490059678665048290230033853029095364149762328770521923404705689557397488653462320197391647699631080079648750668605046967779306046369864385793086466097999138295058001483386620516658148319198960487862302141633491013585911697205439876447050520608286566228802709943256271117838458929628478830746691088364836414780417365923638357548242878621013472817371697051605844848912501771862530833283981774940729188574110239884352476603350784961678588165197680900612646907838442173984672655618849204568672898701156140894856444285625019938930569014350603627763312787996489464173173137957557136681152005807645371699499420355059256407352426050676072100699560987957612796546978253164802657705863609240799389329184356914603853688790743513442165503267945036786752961041366035949874098031768883645271480033490218735471935773842224029264474392173582417668857051585551071846062580634816003846915673078417352613560284059863662328522364693976800964503769770580131835899399004606984045347461027040968857323407587680604777406335086530880821282376545586468964082343318597747218280055317264729592241334425573161016386159865022165714014219308179371324084019608511545384121728982178796496554040097405254235486842737348010450084104386405615507998600354541362217069749348502500009617208458414494678974244266104743973029170845948427442723902571039177136464791378672634309294686112784637723334402040547126070170295397095134431504903226594789145849474631857499559679718691180504139279423630143859196367906480855225170911411494734330509185655980392377606794698769197068517620563068851394780101515061453350776664580367407001089368601949481106963022712178496418733501372551575798279270062734865525328506285193188283136760169398996942339236588819387053886955303810499033016129244371421711882585801279177482791607800907185862162876810718181911196437525130996874684477400957502534222448559996592228300265770880752937128607864273866248387379585326315564320886176733221275519991529813516098344157678504110223397397716643243019038292026867331933798760207546320060728617818229306805451926499314925804036783755619711109613219419334834342571661026607770638407854978426102873793779233618190530280033349242981914941684127679962587718500004880042977984824060199047910994473748984389036089860533995200463648659845869363339678250251546850811545754080970092716334957753780763436052998420246752801719446253689915224163787731661482653969843878029507996827937498846676168527494987187350500041529688077258158856422393351367511026243595981898249304930666358170479726901358386198457035139394820665735153343013920395274938125697136297486903448149557949353951909274773851981701653630653953472926170231935392845047490839685793316141570374018995228626998543761531847333100333776684729242660764045734877132809037782246115446509834820859990367953356531906850127709756668336147626342446008467922867949925821289303215867908239099018481582272561372175553021031505100612084309735988819377906390695447742719445021336125904143983800603818185811325566134493338025669005101626210929891248822743553406257795198963624884724754752913192044831165212972582810000107343929503535728323851247048004812096426801876435023113149343693687811263447339302060097897880541592701464847681771954620845494610593798471230982434030304232438108177197383297520117775574793423386654412474665991270284076303650491383057254343606833288291827807495629861698510192840066928382707666985313148640643682618151062287899968938699283207244455193043676846270885717033770544871828090680494268355410314047934537642924428764771589779474801814718035566940162444123788880326529642794273475239732075114540396397697905352891789811661784440551422511047142584046007849639959813515991299835836468266625970976245816646658410257872349202706900120859673936858843572284615878857142560611256844276476417004397887555293801006592291692512105158342902496826303318026563729227737131633599441320564864353919068815340096251847032601213717539656168483622544214795545037112545561233909182268703649494085063965805576004237678948497320938819331792176190599310205926435207293779190223930104613889896145970747603461150309309551579475405119599656054011814676223957661999156873747275816048469582254465358967493917226689811647914547453729429124830987257711517665885315452415502107586836400553876167205851787512444296974467246275097794041358087294886378119404725226003305350338337122378315529247037147813566956467119256322955145893871741335725251408952170274630907651182001325116935749003728554587847122476284407302734335211994835718409224799270024902150800409778743260051155354435446791626973079980640787912896935403435167408406563302119178482319496772994667473401479281927517524588686521468478719967654252797577239549173019540306033182684579827753814769098594704989259953150023299029789435988823958263772581760118806418989422482447633460424744900334075293441237319159853207276037316082627595558541991013575210788208331479233906321979279350593647871352443511791003737625727414064807753664927101177070702629252248240124842936027287085726641702458546146783917774792427780322359828183602156331146772370508863974458410879750137567788430980998614562029090404804891836250676727389296847329416642617777654796944381468371828078222113427025462168539842523207474846748938194125989166793596316383279225892356413816090767078439300352945271505501110003258521033145541857088463480908993104135425728833403140854302581126676866985859186196739297802043992187663339230347320287847071144113153766220817718373892347128487651552580640713078104992973675526357448660053323932851128763946906947893217893688311304088432709255909513952180981139274386583132109889236848978590353725441679542359457786157901116388103132857068723247141583568590762673536721673387563679544705883618081151100306761598374314168806093854185148430213025758556667025709232694381427088803065053697821824329036015810110329981181802525158930391337297387222342167202157715662999265513085039330172483956539621345335884778475017433632839051922242744217235059051530127265202746626975767427823422853324416459953787962963289961882828545754378504024163400141867118685741506775521961380433068646523461640900993911228721490435224476795453266572573861655848779170348263146480406887315524340675632196338918752763782204354602252175088651075862646996778799647991592148719700108963158907489340325516549878625106891144098917121153046097116996685072064579983438939343666992107766707594292738667065262299364894067954731657469013512405417134826371557970056612006923937411385467235249702531340174378494651798297653527123364189215883656103716600335863933548281709240134583696881208266634602245636777784782636434018794972348309233564655166024870469730321913772753312603664593175312838248000616699017452650213899977489734910634744871708079485597497856250091519060426055005842818992557734712737783993407260991685573227398793030955802914295367344698743553863215085720799413903710699712695216172994043547445893263971907851515531876547854967933673642041482968250334680770121103465645691910623010473696849831758776456029335429329829368196915209747453560207402287257574598765678238595522477053279734870151894630413620882826448539379557803261393919690539823456083116674659553812538181401962243276704544157534747367859418371129346463828117069437464693231817542505529576067680089718897933497842768719791139151529622596403863069347920145230732961262237589089695219062155685026404214844305483688715524205699651474703482474436871573950428454235397008801904925618548926344866295933146435701130915436020050899876337118760120411428191861019215412317654744630707093883939888708188294069359976745614887173514731790719233140786026274379168905481662962151972416799413139599578853711259555597912084807301671766728822297381213842147536503639276495018594672248868687812817563566161191488992888775950202173540756958048836999373552422478934644043314523259334496383097577004128524833889940442016618206603379540817659313248693711145660643781577771486272112123212681732722291130921366692135412672515360967081125565103580109590247337537301465948730811226387088718064013494233382778662880992139248699387654452608622153709748992525898469823985086562043564522080056144688105145765047213261823015634386084413648079054282932027187546989041515916776088765363306049995847134779181935762674780235595048448258175181262594214128600229014048893584461960296548283686711225873955471180366413329898160568733483767337093158275682061688399715173621836676353411989186921814032575120437002126605702772600546842567805613781880575377164363421476340612081858715039581023453510430344203558790205451857560330229061777429402121336988117117818033879283008712463515651133467073883028970305399770027404010332042431393751121240319043790212058988971383957536579442487083200761379875392682791651288767789108640760114535835219406388390241840414867829710325043342076973655222627445035904386886899708990478949616719356318231473218641199855662312526897661733092512790229068880688677185164851104061112068505794012344678845870385816921866755609268642091952726777245343802370539240016610931690006062220753972529255543827464823074924967176416239344429338816838531205659028939473656012481286843805413892780199224942969686442125665990255933625788138728762676277891993815411866911416052285276442888714323311001564221077340551037540898642824812918630259936131513972698285503732082501853012659249536857708894629741654537091508846734715476555475329943454252133103535553970338841198541375723013064839369961660563828314806106042709809967496152410060413809122145865846570625239498757840750698857012597969321127264656577862234867784054288148515116248965835173140587383873172718307847532104536978014588938916833958846137353008264005714393563550374512933182532037902507345789358621121895233595953878891129789849653109566444485584300884641366544105822768248865128136811774243008194335610481057793778065972854520664733770102858302414937978773470759793402984419607294998272813515916391279923284317717479693220959289408323175472451419989099129898633782454935148504595531813147628415849208224926125758035040466511952000043641155435930981312823824448206568595996266463240260794759349485503489016786600620273174749448123244227069547263831334630496329605478711655099700324570664652458797596688942421007607860259349191183032375943375602965216872420260066660275314705852232061010023753057644795102004201047200074320678934665090688797678830601315237355939220341310330186391815641257216699110473594668416810172480602806953579133227540985413561962627782217206253188812236715720581899571842174374685276885414333850658457828140302352545865949683332352658230236873599824646381160647507054983809792419430803494126008988861158672570862917873772840829155039818120976334168530981691175006940429347913485093238834904975662112610726069056613701492719152157992954808692005224283480760778229623125281168721353010124279359549808549649733241699842900292439724451530990080173478424510277392108650289651503650937535026104094568063282907292945368736022722921243992414668703397075719024422380804146925387920755757150024739515694547960904761923891444480783766557197593398694984798695896847127942220557778601754074858221620130461525019529370676692254367991538310769502216377260837217084878698146762552741083690248216777456451259733368720241568442679981354864540658268925691071088145680716005554854719496875709381444481327717718132838126034870765101673400534858995399628185730565933439076072038066404071427774683235811671368288670351658957743159765130602628822946049979774056731138514544881467027339476637989068417372710821611993359536496743428843003505172021833922199477850904071148318167297172716928813918284179214709759338341793514907083391088392874776573538530262173880650101413419158234022820911227609923728550288081881077785929126421760948654427128988992562460743284035551258310030795020874376352231293735615335628313468786559187445350451196115337232731983874574900530144590300638372473047740827187921531948947173576354499221452191024568624674834425578945368382114788738427419963479338924845856539711991041136025464655772511566286436671282727118485345892985880884622145764677438325254628823694121986154788978088722189051096246869144055664032142781756972120864112725362059659388069468207153694709129251993777844845120760966701867160213068868290878229727389012703968981780239462373516897358687717577058542582391516772068170373589139524961185488685489013794623954011280451975301578266229193460159137380070027108181130418334338975254174074862046860239950771558181719694767283288263308202559089134403540830851549448426677562489532059238393920115436771137748801005225352926351742464199766305268369342618720771686849943165131946591051802064255805140413169689980250892083629362965288416293234321988485043875573103627553252640178871055545367581105303595248842364551378408703140833591336135675228477851803263956269213730408161385779732621278597843890578690908952755902044891594044230099681965214907098251716921816261649791932998224121003629670819973097604749369897752789745460462234817822057460131307570595369032180882766720469344513369490891574354289796193493508358636250460341985247015787226496083884445641255235329391711002031634065474382958534399718703064506152912812377916015037451141020450403118896423942314819459798751848169564539902419902386255165409332935259792012637485768656479527490197939299371214029036501525817414609719514358113857658946106064383710126105689228501073663809637308336810637508907861475837823031316163652741996812865411382669213142206150406863270106370756020110569500055774288443744575713236690739295002149788155599703796741187210941515953460785252551665907489606320641554770296979494191813537267668937158073907982531083164394647933766301415075880237113965016405237575677889784728603720796081121053440727493467180223225907921505658513842642623630922420788118364744430804632678240037905623737919463737620901363096658618748432464581837357074062031252400059937813521264493788055832916538261847172720455267347561429913858246767981715498518152546512239603597507133758415247537869070229714679088380691447094116874398164122456487021207937107254369516110421843844597704599115983599220947745766726520656929528432772893244545225237461649107779031163315816208571275845636664361282007951003468418530620041128498446244157066966041880559112035539589651735355944327250097949001859381878526490503754927353042483489495600327097083003100843059696358733922407522946281967542757265070663920654634037379227306700537053148595565077294080225771085167137744493721083054139016943830695658678217910751925570424833955266477715662739832366444131601286854684755795909061123877084368728245637755229494729526859355440476792141559945005183173816019070875883928215959635264124342672907888055742748304329165670650444259485000463256364666042416632164366604157227565306471825402431628918053405045880832883141529641483589067041000071111550587520037154814314807108186713274944062414265032938761521445519092552495860274303273069055794850382777128317719424861600069730577887454124151377303842502167855382953773647460963411863419585095954428505858044942757220502637346794069919904569563289004514164181595772629022203312617213087938147093199146305754980333293047097238589317781181229003757967119745358952943024945686835875497432496482913981990278152034288720314476708211010712770446879847517938488742552002245632132654501686509250310707257516877834924848684024966036927407174756160392339218013741828470396325539535397697593611877128302477945910769868555779348563443380087490870722750183694125470024348824616392013961550584361897696972149405632459865172014384032274413487342423690424427928347225632223723025806097933965342916367420963721050033300078634449488598312580806010579952432343644919276292979274045927858745678800373746020855259746932691231665118083396301981472502086947481802103063912604518264406542193138794122559052696988086626989668385505500893556443741753997151067031853320993072834906180535926253036444900057821186676567915789119281866423778134099429043049261290710612238865750707570641667569887218727296174058863195561744138900921083337572466006395609389249662497476977555653979066833804603390316073182584701240238857081649839628555646920494123625739787476931879407839466922346503039577985452326373866024390938962362560224063568779086356724217253149578363609260330147641007053814999733675781762970291983191071237532490139463331073881372399497438615216071953164523803756356158571165457521477980317723604825483782510031589812080056901910448013779063380789035972815804527943536665477862652075646109922720089334110022318898869827537688715543763525007450818872134208940701870585642501970371457422199107281442685441098508257777594187128726572839518869070973584720145182010384308903989788686659265611173330384293667916228254492107276343204141299728445851589340366951488209234379974632812614924992963534556829051587232861098491851100321526140217571353858238037164284189827275706423137536800827699881902833410700091814485158842561122466845263831995201373734155225637106649910216483321404426847710036932612827954172813622962910374273929722813468227057824936719431981136619649933637355583216182220227516631860873323991386771615202905435722739692228408701588815819305693237602186662623526468714437339831079203749595130685750664345363254008930493264416793248432881941299444084815454583048270878692845583737393364023217394830125122464161473905409551778842319141868733662335295010249426143326812526753501526753468193693195009349093668319838816406973810920310103979899039783410864159826848038725631910251734582888660050006751875676470545482777434926808726961382075191255619605300736338531316189587626127610357689938887295897315405582528141689141067932536910843866973656324004748276728156012788022236092828768911551044781679883292009775245661529911383814947963383320337755855761945687216274323578809019715450868961156916497743288766315545180769850168089841607700188808578656946824015355187575196853558162978423840946990618975543235804539350340881108567679241266343712859466628695026605629401558196892238848195994824469499110355439436361056309057629996414668167161033340537387741107759383341617819774305388300062250414380270887333505394954552898280740319585211995842597783116773397919797334190202983728093738725567301799468028874386536365645918611596248424009497064513817201435724184646362926071115415238583681047974317852100936712133272234251366395779209424084079937783031920055757675966775610417385627893656281834949629965170461692227290137565849034553978291828080985795740142325513977787027051973845458332697057707831700648811799812727658635422758872479850127453443014286351930935158978446578575467470189177545413927484697394242239020277206925932985797684245304153019476750963318404550561782358163707488006667593580858436169608850248823815592213913846704738495825998090521365789787044860832506841801431485757054187576215026117547837669561840796926676517733833338146334083169325644239528312447681583577116936585143156148679632860183610467420183776689810928902127823497864830499838557224714896233395719758275174251000122745572721287231489889327232822337145092352341095912658435325523667279118429760921163737472158857729090185597984060274961387616655409103364559426211986764080377734968167046155897265541616230234268438523929063780703854609366119814229789466677595604432846677957727308638913226488512236203352052962554208088083115121906352944273755853555670738102921310328051401179771360619878651686732584744878400330088293660991374875484595043266036924868659026959363609394705863280717266170764064892380669452888024019915458739306254141478119363032538298213849542011262394651419142953701531021110274249697792105828952729681162839262804545947949142856309208618734815367510600861463681541890965068711468931602800258779163772028333429790718980703417364811659423654584158354884927050555212675758986540586707478019792772649762586699683917681974097215404101431630316738996022709453711599475875675508460108350358637379461536155224425828535610514447249277698062922312646078746417165561865360824098955509084511844513058710666028436204230809341302856955756052703710294008433691321055481714080224827889051647935106011631363116864884314866369075481950588493127251887452673269605927198727828508490080294388113334881379041991695516180063188357904785246090066904141007923255546647121305571750873056510104291292199761564778108929946649514884987702654585204805089443843608693112946337628126892220080921322710053752108367358577852112865249386031690515904406398105514753374652448408518139815185436413610361147792798007711977889996343696052935796335948322543760734252307833464363032788475113227341739153427155983210075852085057232159054136584826587132545777551237078898023076059228674328437587745852258428995153052861108291646088306344906387700077984137074438145344078352971578964781328703220491885362583400257161192823886028570656972327260191921997785173225445451744581094878475119121020115118414107857585929573429116756687178905818288110209325139258127653987667782579617274440783976592972731430970592206128923525892792889794220399224413146326639580997423163644777421251875756871231150816597625671481474830699216958760568062362791749475702113189766203998460819573025575916694850988234959132267414622087556202281532412026414300284325329281012719367727064215182193945370910013648791748092967243707047938705247127933259734917077247817793084616023348591570769103927926296589961391333814784779827636654546485214589603440985184016663334182478959949172758828978511109045033495782476847678185498050914872639110600612291043125439165059619782909401374297148831569915936001321449148631782860787644782443134276544994219605486243920128674037396541575068723417163211920352040300681566478684609161226778222273670483250748612162853690291691315982174816196923176120756544469947181122552200535582701474177383998116952348344555134611795029716226396353446788634184672305260303746581739611838516680254276185516676474148687453420770925035401799653361054059339815873068549861660177134851243752564223140683529267157257718952369744033390197029880931467290617186822959611159147811375952234527723760379542664073108269035462553227568291694481212401615319632417195580533806850995278250235495844891707254076128159013570923840894720827893521024532214983264214325158277444417863563605218353588058488316105196806413032478372531777718722347150899465950062576356462367565139051658447171577964914511174379053880104954234212652447954388195621074760509713313081584586001901964676197385385513709575273324510419598360219604459720354565542762166267312056741874998951153187180930510014395780863554413388377156177651698350362154620007685466043898748755478730604491114451011083089731801834062749074908937876369635360235507882814680892202162122918798576953033842842705410575629837383085807457326756313818130213226373737028162662713403515226550114810249580630537691007572224314633383193265580479921194324641865208628978042987339992688768856877411234295557193796406212999999970850192175029983606900663978071679028788565997912811451745118616973770082453146497657078369641869159101011597436706601909081906067436836319428931677641048671933944020683235699601590887431551939355272691585333910429513089256031364894048083332404915570987526701871180931654949429881335680179156801976705948677992322291641564437331629308990230080947429146185059131822916876498939398987803213022327833967936132217906453853724237723353860017787706850501224902295934479344323803029547390125991512950713342704238946988227288044409697045981124916740760775749579030472982462135263812514270771115942285264161130948092801249667185768194517845250028951912177894804567637211893917117202657418905957378772260711195951515143697896066985150793486462339927161272612315687151942731600680573437910896923253801290708479468028394821263539010095682095391575123531151967533524567628533795707488020872285239958374625329482312542594826747098325244963241526789013422476904522149203430514764816969202353833386408200345092639565430653613382051912782881451520778546050652523836993585544712994932538259337523726204092106383662112361139593306679113756430044807545135302352021765814055884987551363368850966052976096303915748661798715411279603419477944238673066142158514085110660425295925536535486447881315163612497063601026503065988912245387658146231575448609061018697065219439562066843099785494918381371803929092818588411319159251550591409704467723231357234634434666382151765756019223721387746883479456112267072687375203352473150963844260043253965025663174495934865468352529474687685487177561952942244887562968656616168935596733881412217194165638481108437455247754697426927984015611410691189209928239232793484503276581493841834099619146457109532649836292801374047884280870891447809905975977744658041272479580908927585085874620427759032805356811041706210590576865340255505343862743437951472971915184002374813586946949876382134164744293900373257046526627493300505929403874117465622536701678136156691569828998394405778059667338411617461210419746390683862943829827612291440610754224372478230880865238909029844631663241134835527390580682318621536628735691891872180531855874612125461137678736561778954974830365706007038218667602186587470438988807170035243283568767843857250513371973027237082033409834405083322395515132245374710158658333883279481159996181663062958465939829827135723033118804334002100796829312422335667539243576095881679048169778119098685975645395861099041385057114321807419365528614273507672479313815365246046095614196651498161283293620262281551413053045731928774254165116917888552882385006937894272748186470405665487269800645226844726344247114463268224618368147460630645328783985729960202934695585348197163283716432116335781158577840129071554899025707298420641061942625298204446723720085806607643667902469654756923626906344676424288689879350196248757097692453226631252247463369748111574689734129936052455871956012571520192788570311112460912721856607258502996383479583073171011211259774332492745718222012711060641627550943515083568294743800444003236705775935984767624879556585902300448579437856407331950419102628027101553418020246619314204200573836444869956128961721938610663155200107947405927087561726411325573964517289902239351077298647048879097358204601504790782490300691874908922764333157362453120717644300528093082687744712797679643598250482389333322028768276709921268893483081939844675327322983418953824957484705641006524868927034497123428908496930341874947549978927997516236748336119925181937101604769035150380036597311199829400881108989501924803129021551231969035693855136623494510203341070259129002722153359886345247842666396219741599894168184175999262426688299629575955466768616085241466377242208034709686137772882324562641032809034914845082161835371142221739668607040669247098151110784685310768064844705252884024730576901267871726273888468506982781455086816851745901015593902415580851584886628634856002713021771754696891129647357753941563201557923984306981884635885392670595635729846983082964832902643391207087805942549403473673012904928253296630065540267411840215580282088958616522785071869337054279348022426444190286514000090113597748688664386042191128799106101252807792203038205974014411736767695521567821120255575559470124227828760981922944676031422284066750658775152799538668424358582854534722510473142541116947154040994982410162273066923431904432138447954344736065683234415324530736023546624856197200089715096391370741372659738006573178927734745738623108757927611818140531611929468706677537089153244754834784970873392777163791267550396682577655054793288779187391757273435429919534039816181755114050879675467805337711528576903100459841755444123932581838307172361165800304343502678993706878866704423249912957831037832000184357016286821965929354863387025357899348485378780882017411896071716543235423943226551116727381483905846418815769889210075887692584637726668497914068906721678629994742423673424191021526992809093905465749289105334385886997040087894573115458411091649652263800570534068212863050607653838025124606068176516639991894844644782709486697098187181691869197373581444597179504777542837217129239486327354614315840361883471654441023526591261028421630706680849657443551212755175790319132210771773252077672937128690622056250569732999549952143532781622762789442764115955540847141505258467093555169742816538331665386074184886349835014230395288313478787108018946476165631557676384507134300522438959914935498245457977607771395040452457911813988729624059604539148705492490661569477845019321502669938349488971928637955858887414573515668047543829910420019831672816505474962922216781088597723780511346267669447568488549702831450721191556629033103939066106277837460005795987104514583109597253507751325320097321042494326322296899561738968209906925984661741011745045976655274163622291435652115055772153650002572732138608249256635877907943852995649094452716508545942107261736960933050355096761408693913925116823675385386119266050473173975593726981571749786186437272245180336389998736123262716050658705207875468608810818424727675352819956685954136189156106589001632702517662193763178706846617394220796292054460629591313337785586101755588805355868413256314699359512868550191683848161544508845091393092891558567369002328718993253836682632338140460305199521725425901429518324993078380379414552857107400303318462489090100656087555924722790487668198675226948573418771771792228602310234185056838337611704947292454200906823089055335125486538204957632156424285231873619253689841092488467216762582955900442420048061711823324618821244851959754294568007565738540859092228228398873649919118490048308381259894673367545135442814375626618335968657235741781141783337378263473185918648444481353380609850679495221547580935755918524742874132546644632069622959943929201177098359167222329796197703567437188236590413251391184200590761902741599322135772583205872484049312372362298824132499874263410475019831213796825046490601250540171022107479477767911609175695468689132754983301787584314850831088483071111745082974902476452728398988235207908579054771119113074680834431314539484224613377891307816538162926273288102277779743268772577904860363113121128933908194145165481919412086187538498361902214983888615047385617297696757522134170567414571634875303941394154787626304641309708247419342078337973818949205247532019872438392154024259815545698320187038866147597182205963469584550916225873201873066872918755480481850200477734223689711553435563040749274071855670740322988755679458893703541746624204434130440404836755749921937522562978999314891415382501901536184790214600077634078803093139422909142392212456935102110575878264657231684275230826776286205725120486955347389045844576596814750307812724263153252887524180962958775711715524281999316292787418444423164645708216173986732582765296469692808017958611957806540099903012264327131737897218014684297536949537689690897541293332024652692110680489648739790435888125657413888426224101838144541986916321828276533510549797804769896989090366943097212530691888011203086782154314206830025766301847581629411276987180093129847701997243178850609371608554592699274779267356342082869926086879460689842118161703471661645294041828777006891123520624585322479636804371325997493073951391961265365323482279945670201724336141280563999508471402155764449693512304566187934287140065610223895885029590176151472061036770566736745011092393721509675270639238096872373112990476797540517428488824956507704007620865483274837047941671248732189071260210978672560982717881196929554528452084371490283284642503538068690372173720423852147654238784158560625433983564256575515290661464262858688235110996791052767124026291984542213162353209770318043388024901859543142233020532637117673214438698392788494828646864088353066521001465593304204032477553609478696892940547634275159203288785716092280346138508798327596471822102992867249419776041915202009722970760305300888896264639517106855092309501400578612496440512401511344021974191184176378667758931929574302189427757601986336542362501023150504484382518732007691011257728366000334574619245191656663980356033828276019189848681472269440349003467301966913699332709918721715128250638990970083861559185072032556530370283775081268915218838271253194959571474726695223564535212929889842255276365385341547768317277140839496955116554495230263082035732996140197930282711250894418673939452023560980551291267766569341202788352288729361847097988947832096500195821143485161297821275827987087979558515015579458127270138466865299216124665696834388303368503773831161003793124629581057586897593300364476114192099008379204966599169463165603969865273697791475036394331247922845714820365270875207937475590305928213908274086870755999934819253397920350417320709134266231219365277254994172270840550518987641277502592800988311196214555642528165715049991710831203838024850056625192382352002296779920251357787509861648461469548920622034194240286594726175826794666225017926442465968123407987204880677665228750415300987185554033367449115685137698622028745136420743502187396958420389952845176547297450071533130354741466742657597536960194492572934024266309018731591303819222944973473820274901198361030003339847882014514432596314977601179185285269727027527150157517579245345440930907965986530822916788739542718827187222485871090396436806379282291152196354586052605442470629326245522052065593499352990477882539003681641062827263220863099594690729398679291600512541138068149246618676499899028505799625592968862427878329367221691220070529833375925812762382471836861703723239415695904822510877146845139950334736322482245426767567423563611833823134008770850615720715957113815588594710239561806214209807791814381997088403593720866357552474485966197978591933863242606702990536110135611456009492394223133882370119967189570267975750950852663724954019126112283605764948483253721040075833299475947861355186621003983577945769784905299436468104045576506908526799034554238412752182492488231394821251143705464700193466286757477649067880920222006909180526621708466576288959265110247363248556587368884341100313001502405028337630161418678766073214485695833732656723599058009827861406516024767804405353935060884408595166650971056303502311198226286094927623761796119085996701045835073935975352318083093551746889526850171138549046180645399963037797767802056718555166813308704864017579183452018906354120160796266630706340189200302151028590094543650879607812683694351046219872754118865230487821786359658408748827845141703165210731663773258909026195570060273567895340515068757998186783480845685205774347069090928475087924374925332338976216555030908954905382710962079288745784301396615694013907070858013949186501132298348760334035344010894290358066608632124279834265955414488744657545094024778561547409875255248803647365005496784336064310452900766840603524121511940608264842192399418922788875710992293373217063713297138449231323841028122965531317472241878859929350984829424970873396952607867071915546063228567047823936502203186189254281990681291049875144177648183258418896550219383754397605658450102097865975097852268747247648057112459583930460294789860714209537519428431785871921795800198494855742804270826195156371534969168563829635801807096384877691677764844531264915990187473650427610786609422735831346351688934060016883055756168300592524474256763293951652264422244921814843966761379269817689574355711030596387100918001392480303686693620331435151527936325168813025933038071567743377381908368761174450678474142811116566684953868623763806855947235607112216458990710991602778172966631680337992269540945714221808334190967130969014461733858786764279320899319017833773644505348598658231686430020938519645359540123007235845700746898561524293644111862094578771090085565904766741572410433138626332730139712994419112450677225657099863310966936791892881170879429967596431714266018664155045645972182786325753007148031066189950091113341559301802418037827283420043449459701629702367263715826570400149818258391868504801739530840307259420372243655261304469129875587022111088275601382327024769877524537136468232125822112909811389079677964442638265005799670127492585383760025483387378019028852546050305391124374264607415274927326850577025430318625727716806588877660693795851633399583003997918544324602667190309730304406032766642755864463615394868149219203866407281022474984688700865349864340388131452927184090517134320247449082027905721984564757323174697621168337983100778520637019233504303895218763945065719850446009282477324961257726496216576227380020447764493733712741735026791761618238967050811832972659404692298131353641922892316191883742993203025554251022547239806936195273579264854381920796554572744886397831506267214310277122663191179633506089638988227610783042241429560152045276877009725373858219255138478885033550240509429017664591885345279991722958392225755308243302461704117888071823170659990269673643527940114736785552959703504032222137867384532274415797029346143875258990820952060859523322873132666644069468453415256763781094470624272088978122262067794588632470577511432236108741846003665915819476783489475564401822226166848591721469434140474661456998416370846967445498698072207850894734522794054636505761976750178022425000936119841709757893369962213994395863283467390000984230196857336964952294735538046120680486659190141923075423877283886669038637947207785498982850703581181532218831244984811402125065916492156974988509047896789147148240462415579339276408745184964848138402050483348156413181950582825163929313574489960397366475247113934085036055132959194663933012171034424302135147484597991504765017405425845795683866903582018491682046018047084340453826901770558889822012848678631519819833111791420588286606506785109522228823518036436230181402845335691958284076337520719512966558245864136213330111721699215814231021550752599545469048010903990986922502175378396283895099305540586714426597747239950296451064901537726889175413354600330539185085322038488638960051918227486701147092445417043669766763881874510043562744382073576751967945754752350091116382406206635360847202634507489755911803460218487745399657505832364020809143258770524903994485838240926247715246226888620544663255165619708979509384871688814352011558489272934069385262327123095416035968486180535537760099277664165724906375988750659776359945503647683141960876961688852599297901387374666279087363990622274391687457258298543328533865701652671801944894217948344741720225984504193715009335955321871957651127417873765850298620007952408288978590208773810949014092122668190936705310371623424232216364103445153465068555279438105626841847297582386877491880297997929754551751614183417937181464814780314861466583211837094125900214061381838094385780215145966171922885434404425991234522100762785153722416845092414688346699543281068963909142320819743167199870184630336894761927865550043011225299126656568164167464070170211899208295192348560074296474716141247414744533335247109950375520649838235394828851215023175853391681183811121922426919858072597117826126586924075700657128177283231780137565830492217784250589226161729077610114417057318307079816360264629895829097702466785498234755073963989575905358746054128881316856110639127477650203969446422555215315258241749483546978157032544080675636578106003345877406307036409798849386779491098448102859909061253649625472295560930622714320735638896514400967276571760977338243218518703439021387671479463237070710256246045436380016820071024624821211925981292661749462586633202926732855378431666125110202288221511436525674853026805124922253894857297741323715845576051628972984274994853779581249547595160361377803417353559938954410860478989617493670520173074652820853686706072886451616192363018555047967960334849864715421626189044748454519644225806257181341341978223633943203316935186713185113043513201485968110476903196715663833982457486518138994489867680617473237721993408335546899278071074152411639786217803831335046212294513947680721432746190222695687599914196486454257408202661967998516567724861057820615558663110632913352670971288302510373346301837091395689578813827873369420776469489322390035227039381900967276029182028048491291490555378516422175852575519651895074963582077031739978417124282137742822853780411953546052647708529337858318653254675283400041225569950303416939918637851715226444514578177170136553442924863371028799833688701375671684412863929260066751144792121758089812013259066570763897985349429578266803954993391039556937087676955878919848608766216338179354107716898416414814888400099106250260291943791665071313179817902330843809188373034381693657133217277385880538649513720242429882593299668131574641845668878059307235150826420018871584149938358400257672289010365151407498078096463786198914596934577078404016658567031146154521234867216024229991315793404802067644685989491198561162988953537651964698991876806538308441721388831216189188753681832745533282963050798526671438355320488649264104447844592388986793095311080986239551946506606607701986245701503083474916642215353334406275780622846785764846223892149326676720729583600515456420689380235711080878333293886231324864453464858378845011064092514122953389756391755796287264559106091088157424407737545359551669343288913119253406683134564849592157123479891068222502699299488095261274686072006148809299909169449050717066626198275080945036793311667885269976340068055566632418204243796257914432034519097306806506931811730126330277939646838796256252274372875087983741883679902391169201437038057848658125147091153957210545453924297384851781151126203928823567280006632701722162579539252302114020413667984319284912206412904545206387971467464460793666899438636688215753081439156684631538808309950956247609143791041165713042456050160953829950117696294264004149209695527524863268829053635419389763192096051148763697190954486690873900007346782193639398389491123528933868664965196260563923117841652027083994871387637395268079429968182867695130916356512698671225293972414705411067148381432686680069046621894634284857287986849741511874308938308648561243561488744864467849904744672642184398473536096037597555441293167142546705631285097216301512968449095771896916762322226222959609967386288942655643358287789329092408096711583100420771778494691050574117174491509781962201714560583650312775109880549738619547781023475363316266803467342220620646752400777355688731941462969087632234234421670271120296727270382578025846147739180805437031662591156266657138908740839550266640043368214771111676486883349250021264479094071914712289720889460465578439184131558777333715966516747200711391163306140054731078982463611850686579730541213981469049305438528000459675183624149178413856724620657446530496541129147513142735470789621488561173908236259093841934287271901553528885250775721194550752603520800141301055732425755083540565816576390542902696355953312805449361202970482074521739756906179224486403461896325662141811537751490541163303673335242974209103644204319640465594378257424412050232688450428470317292373969007653853218260615653577537059179277062570462178868947942607947119727782821721655253200135660643348869479178644288491076627092643918685342826416852436316772123334282904714822595345780355782030555258280715571289071611652450073480355326328044405879719228646094258380870399610678159211764969209226262256847305171216406683323626993107892880349402213374551927705303383858049764001285178143434742841383806369260044227705270369084214379401607059583843434625271107116040409767303259587532513714156946784934483900848081655948683909528117425109696185605027547221226469509050636162482443996016045048025979812948986193254542342905786440581313642347037384605747270254879389170392975587044332355971495261779360892526648536006366247943482690262540962476363258486936025383244841812894405322911830908622732321091046398850237973025011924749443692072350813202062760400743875511360698948035327048570212657393905077831273588815320475730624978746871033969431969058947151862331773800676496898159667333545421845866340033834031628755437969475630239583077312758899409772755725951985840166810099480410110389945453414116749194209136016450469939646291356808637639877374895253403286331722635572454403235301198682960918747586492728495066448649383014802866869514345434785429079491582901962469546516179772145519468422318156726575618850623942446110074998717329644451034869242803225136141593947746564476515198918123609633577214426323889770919175307846661630888421616801949721356574360473428926683687468166337445273785337659151130918423012127260197925386144745326970400442829728184897662734291443650737171491938240207324695756574929908160884950494150904190661811048754283836427326030112287734045719156069439362462067594723712801216762655937215723911018499539561736343111691682782238694567347835361103597059313323219528530670664911403487260445340331776406216015915919604376491698384633569850718804825109916553411268472139636048508072859885484643875786266012495113306979581012706059633672596600173182781975096409169852241359683681162350610401432429761621379079111208145837353233095042115587110804842160157849264793859620712717558628827404128013799737037734396514769624512308357403929771052650713552444303975881001456576134620415728117394925303766453273584080942056150037086051281473863100434701090047020596415697708172409942018327792970003709991566178579821733283388284452558917843856508339568068400061690547781640631749003540628198416803730036397558813830464432088428917243859462865691385063983785008223669107079069678792323561368268030876451784570951292458791886756124581161920784245157602709544895843126753188742423465873735353160866669632217937082990375753259820343256337818738368321912741257769599027407585193267042301829205871320108065131511006129892036464256229325869873907741619978900313796288001555213442981267406112520870731626712524873074766347656005900559677628478337142526249818717226439592831556728521245218912255624139034221383239764907626285086804173786344792662378679447329736218934247002462268437603637661193773124867728620560274966028271731370886541634439385251360542411339077445498383759288571700361512284251354378722183336890733127962275400538884669199612066815629141346275947971444881551622937805330860816395410868701399496661632312177531048919303670454269124060210039281100927439465089053818089819769844820980284243209053217491910949119975031390203720661817513844195561573639049129472879977008181112387884722904871328396525086699812931460308854147349328680259305609735620842333785484624671951843726149266896863851966317107058047358507531321006309587419337297341815460025481701801782765267297212437262851087030027437232540490442137543632638721421983596546518658071090772624322293605295314598775010668402304761459344762796221123544202142821048341463292205211224430565079086719759514376352800894513073000862616894418850812397781614695983082761134390148734012490846083336180491900304354046525448310886339873859986118229299567510257543998464190559781453920947215506193453277328884734352052968375065754965364068654035707658186390977258491287221609586030939994093573458538522056857310559252345852749663991597289771148909770485902386985797555909509357197791607228845531376959394584004907182127814920836385580249855510522587627413784785600790931908149167660565842885902548062818321648059603855505997252665181717223619308352922802471910869835251325974222712700826830706078118267825549487668386105133937304850513499593326189256038436277232153102072476530517766167711218375620910087422884717327888291909957174248145188647923957967687902451409493525903186507875075835292541696908113809568905893787048089678479387911154017790999555859254002331099836005550519266065836496026749980612887148789277879059932432257391407091950657616116571577500527239589968245544299387409967407647267074362867889447537508879391799080459954725715462495031767751367655971064785456847919519187768760059448987227795549643218961886227474774352869388986561034066515012938360710508197259185716148622842501006612670375338105832683959318318321584935424660427984459654261605125772573909097435722949364445610412228783210000657684645532433109753435671382685585097857407791219046517447519832520343503351652564090878217282090265634046345494432962800890254619866400282203298469370442071726777650913628580922725709504717439703203770175604581930530880782398595943304374184758904837062875983852775859283777755151820426896527731766266888852353000906087824297491042558640414286624126721320265953832681096910785610052349271027157076356279029790465213666182385540718665933348307275843016341592281656000860079774641487128704940572608492261527379216587128546602632153222652616945659676474809853827342645509580844860934165646085251256489758838765321133519865506810833125437200079345841589484675215344800259396653403365542569050851292105002523239069723258270347591413988150816281823162419743006646314356997909810060074457164089081788847667498240901829091935558957833696975541988851766014862312196883397730775943511091853667881233564190979765965058731045717991376444886956826050436435535726046404493568815755321825872779074646443505183367740190521670338491795884922487355157601638772565445764431997580589757031551358462181059801898074593869567695658032748375801213250859077586494925513161560226195523787862902138085714699164795388541223575460721421972638593832734357660979791925616149188360473750936574757089835409258510528236313061975537426609716414058171870186125176025980079217108750463913038246789217630376595552967001076686077317107552730107631657811856294514127443421753189559151139779226123302113575671443484884412924931111206138645188998536686487326580483316155924124744136616161422752807109372140267154633561527071814424479912392119730226004090864209251401013167948181836692314803079508649038826222946882688828610145249334902589108297479614350836510110213072547750616106744527148275420140664165849884210628775019683503335447868324221863135971436507300791260174360607310198833881193186881220336051655530364389294585861301319631774931528880909929806297250448111754756837816910391445725274940952889796025697905436898836986347954897286648282046331966370344095999708144417537039586354700718241889896582793389593049578525808805455987455198531243999421095169510120719442983069184677920335528514697610131626264977894100586678551375827727244859592901634935900891490274761685066072388641333513350378241942090087231418578136525823263517390105576640027405543861019543519677674373952335904527684335481857838349167538334888319482837834873453122551697801007369691248330378226501084847520996586792859785398222552889899746990947288257172841494964084555552109315685910728252184051194891734327657527952569648681289729971303675890781468615728384639715239056711931452233915504661785149700719732021307963114980523486101138196563788221084821334148542002480988100350401910442790478596976074433588169191285375642006713598131681840756336506001561762033971782516936800276688767484483081637812320535136596871471854518051333879339311826965627542467132441390670083993520111568325902351038551794673456864430741419536760846159483672413933735592675935797721423622674162730328410275186547341349552831785229058367816128289420004506566893695407534248353177464134065787874953421466825597616185903693753791499880401320971797780724757398505934337938280338468366611301693960017142565733264091914814284212007429419892222585451416382100386703388661265552628009281661546197369173639809085839417749317344102371124596291026917975408854078048458995112612391756210996349290914210010495215580155265670732882442145053707794537871576235569453186951282708754091472114984604500974832902360909236905554157616630329627961314214082207478008648410710250027039921457224670127970838715542400502199126294980093803348570618985633066332746695089236735437893007529734212760078488488367428249720637307734929683164911649817127252970266920886652570153407638551420233620149435780448724078561575346623667453274010490943407570358081148621808822768674812080437515430060251458653247925108121729603429258054656445895547102351091257309544864022168572675582557022319144484390755761457063719550964323184815722623267681416059605161316544074322466458396519951496190270054874478235307626051386187446354080744005414439449915469042192592053501308025187516193135574470309010487818048285664047196507099122980064679367389852096543578146753124482163967714959741177930043350840323174311981550756892941079409092035704225956801178487986767273274479061750754001670498705850769165247372076256862534119747851308542229038092490849965050024451908213835040295017393913799806534924917136748357020675484823486542096607991736233032634467322535687652821660471045310667292804919917516759371418950802433180639345904773782760476987865201710732045690205163291502812417991217059852438712219818050840250248917961172431719430795615349232835721139960987739998209765886785964323223664894882917932425450426157682822876144061267526286688912417704646448872707802744246112221064958492090171171185298636719358928237490128451320850567052689046366131255809888487461432161523042468520189658915485522018132730824699949233422405136809342392919941685682873174841819972794678218533899775235081943443874977319464047382583128277889985382535733809186791435403247292053224022802364166781765089079806940092803699278747297657313776863899096889890490278892152527438559401269699240948675501748160642193290453230144132155088224773001404480491686443190242715329361025343185045767921551314310296050102114291967722511412577132365710826591978670926441563395244914877469813650178695009147608136147702400672570391209229994422833345471074815574915899019268261731272702572186561822647710702954379815567416093453168963722410620898061829054525544485725090334327970842588489710774645023682669954890128714015178653526965449879646764581320007537578277849772455048826001582189259078616484897093276144977264799494837180537629274918193769488004374166000643655737068120350374713259289398411316383990611669618635646477034019200939895173969717517952178795430201260230362269616607790402237733572065413139958648040841373961122581571755056446164335507937058710140935496576072066925478991585938621682847014192842478700449612938318581684844485522021549514126407559268534025948183066168148092279458042540991648815724650352556569981340992245617476206378117849372040175320996832568136225877491955169530531757926573638919232127182792898842769771224028287170181912233039301273292750502353596816526195756090391663667933159620079716788024959246093180313805495037428162093790143467786922284838245507842695284980772966555958150565936864985325636228188114986302911431591500018548041657208889388695373806704770482098661036818444446821069014312865544904143088852590642595218223150109522122722044630730874721066496056833112041981176922344750538009553791430704701249012990037562621565422756479535342700641236933611724197391168724997032886267750929989982322455427138413451854122940224093811741019100859925384106265224762869237811301865014239505460773435645527361921734696304516288881742693087259945066375886338872232758300719435066918617569449610310210097246990768046031844276762390150167650558049618084148721699107593229856307868196116858975367862182989926520917105758011977490488953583853984168097281483990043790051587855575391281109352669250048195159690002963145547911644656894510339267169897569932429083718287758529900437130655070570319244050530062283499033674702553356661649021386839947231366190378811078614914582683464840262147680029868063072251061825217093547430642214064600523361783322155267866203050205823795759547541216847790664691070340195998825635237124921002884800511925912917802504705353893677651087055563008791907547105628786052933095497266349887521712040658295008374935346385806611030601868583602246447794648236272843853823728847767474532914229187656849457694808611905564095751420287749071835847377452863042640390318757858862733016780077247583361240910456361494622579237973419674050346736385157963404543652172213341885905493322449494451015251094215393838102596765760382695979401660858992302398209434024766623588679422188818523093611747840231293579978388622587754231850095535220387044455472519204949824707275443166357895742301817880896189619451080275776378778818235245460328310271034536562604684387168226491714455000809427462977167338377249058370081813008418689132158134194695778679887098527008965542745431624870092339651533506221323223221884981121196047475308161680100448754411207543334509907447505618438271749409262289307158660484005547846695553563263166888164713085053312435603429331884872614668730139229593759818238102210330584066356546113008593828246563606935486303898687123169769078993530342059032666515119650656491671114714118423249186411385419394891842245544339566204589297076044289716416154067543640774084633722160910152698812840175340427962054173732245208514041357577748447120301534686002875800805581042744077407117137951332323658047519068551610953322029971409309439529251886360806012613470474447128071167271748092559161039638924919950481981024042171427212416195598380190914716665279252636633985616078877050747595452067700460062397107137849943794285648558447636224196363693935285464840583058359037686391609506878750778599273723432410905756741518994267336580635016602981529378377331164111453032585291967579732641842661860425433228584716299862537221914620397999760139709944110150991997088342658475226741042255857072530662301010098706806445429332567280039477405327938436957632088486120575032733116814631669172436935215772599984135468370681837924853742698405362924547446122608732172362883148335919950660007283012083378572100018619564417938401073811754902957748858046518644497222463804790605233246056263702759514584479258816586897018212691382172728578741820839075207337184923460462088739820222285539870779687492285487345728670464952973004830834189155198773219809077187767583683838204256353089372536475416487833823993604395321476668494568331712694386212903506014456431735025848545438251846119850144896231848713614302663748228126854665246754119969793747082965005384734263476952387852002181552321346025655976688351565677315028673983971445838683139627719614724530833719636641883772388608372985345272978770597589376018744380022726395189029557567180197555807988241973780304667092955787652777827481618142944686597990364671943767552431246783209303900509960504487612806393160485906971758375164670386553274947641301376880939765338350814171672580995689451906157554540229255075151334963484406382744988304395209472319846458620878270003623756255413644661883057315305748043919150868462243395004230461856886763124651346720060070674531541041032330344704992392528929697708415761047335713522717569881078976261577854267934844384859840993486349125092347635975685994411518561223561148783900741788636895289282729667289270392367798369927762479273516755921243375563890289400204229558585024258828983911689273881480225717226999238886138722915885744814640753174949743886488855345454103549295317754548293885824703020425458215997826174064416314258519941279025697366068078096859789931088499818676467229108464733654945674287206615665033274802082541760320503685469590063731844099893457155025538755345309461870539450091446021557111697355208505572107541351689030248145345751457606868829104364046911029578975586656214104044059455055883879231887002122187491894276233059339553311537017442564562397513551610667920647614333479165799070579600975648588526210407802264797333805607013167267371495703272064604741520589060876494266133837011438254588173634204781990276512830365702919014334778365427797607617165463139075587079060847605521076397601558128375942074660161515036363271187608910994729051300290164409929735318723023458070816948773480805183767580380270426410499775651068543522137390355498549614600082582297158466378414483530146398946558168496339841910220160956488417798519862769141891982104386985647533394459665600230389649914230549244431381711697126463174729763255489988323241210640772269067034588963524933829329516646953169933126766290189150937489905605596673730911657080962093737865565663108717911410289162723065540179587239743519384275675988434340804958832374293518448723290772117601429545763078984958827592804496718670248663369213059618035788300412345353012868968774989331301031092345735715825006118028999293011137615486314237340696040148621515324972786165645577119501804233946628795728419241574348054102198853901208614521361368937088075023641067501119825328864198551203442121134193921699080689606342181579686141365839849667114854786531137222965642908282141482185572626768169519592587955692529863290841567499873130592784313837349921135265534147449167049291981727910878484148881125695326927870308485721801936402422498367454446146376747295901066831119246592391335714157673693859017371134539348034011664907082322770516902341496531118609639640598934536137977499999457322475362436262081386920978389389063735018995347634715547191302881198411123801346864725844580150534451493607558337337695260199894575800641909863807677045331587289156096651011775794061528556353415372652457588299315178142676466682092771454951189577619238984660067580326946188951143742383094876094267934632321573756110717192656403493274276816710472861791618697379087791990071104221455474797983418829587607180143380746965662276175864641085579956474041264453531631868390156875037690762685024359523039181279870903310192960294918286487830965996840199304491125712666146704981603221088654817299599330022847514502746020515923635011943420607779960597998559512946199734223560783948832282347998309120697874596093392474711811742426961409751620470542803635407001755259656480198574971622964531004868944426266050405222975530578853918770765312431930959979433188409986056035602183759646851700227432738376532161296929494516146798454847969215251293140329658050575599443585574552515955226317169163501810832034270314260326951750801916711009392688966590162283805896585481715247766638032864077360810956891916198136200926421562305274403627368788404427902147136514298433819299699651675527691021572085529813117011120506027302033075274978839717403475677897853911230476974920138993700062984565060167512897568504879261823496873595950059321231095950577831157420003519052128390240575979120535277571553773394618159181281884481549620091027626587200580615851286079671199869066086599123605406610701405980762891487959578227504028469495522517170031013086200515115728301926980155508831359098299163836868475009459217844298837230234517423595502552981824747404700178661513104057707035152429312932750526300780064941536803575805749196623876141679788931440311005473866126055747197355466240594817046713268973520752554579942567702031982797510261533253038186471483601704241649008992035728428404463023409365664594670008030332551625883155402026598334525451049508329205711525961210729820183538126134432116624060743474579594713904971056674633643303889724397326948439709439598971231673697868860912903007877888026964525861945214209331119859493088714518600059300407850579801327909371858024955153122788403382994465190164601715228506410416854934784237975354173168050733763371203687529932859862286594187500925633388572623398819453067372939848290442823114424427962214382348216705286246465807733724942952096137318606692507123865710006639983059191784759434058891805761343390971712616385850119925535939166140796484980844333788464747631272438914093519078685650565936748687713468736586607007185894269987099756251835036792221159844065737280402151511084596123187654053437679557374107411491412797470489117353351015619902966562847090486130045290834983101819130452452300643432417894828151261103070021290923839144656682623441702382951280382514497201341774627946553627866454905838623811319291561957602663981321755144253555785545379564704828275573833883358325509254600667053127163069945084521615643705679625756955651504043101894668970251102644152666849869029555103869320028561970353957461093217358842531408728439811427516846508898246680629384879659142990594075986198550448047419754770393623578678422400324894931862302115444676326381384651396151180124152503226465626506920977931251101268683775333393034234330081964331210029605691516854633320377641778622976292576231044373660601536052228893393537539201590612334024150998400063062399121664260663043963466703422531262762563327817526714378260015339957781463238164020335845724667565060040470839912057638403854831494473193897003841274843816348858043326722598051729706100576735665984799008652320246360628744472192112326310076852411785494843524143376765971995303094653178836596503763154210963765301359136410578489246014527157734004771092859822224222137000633848727638866223491158390079816036514099420488617923770079688343469728088119532335619202694577745501697544466729907337163203659848014922957949651879408768002424261959042489711308556173473760616263727500520961176675855008926649464563584263588238238348610165453732646615918978011305461717636278481341089208057552037199185035415739711600093174988222495172835864457581477443645297819034367676131078232809693480645022485840804012466560195442936530010997651346875573110949428616266816946534392014569926379980328588840544719841688806524671752501046007503809304717672338078249773338283412962662891748151574155478134021437128867840850916518269476667529135975165008590959595643189075273965657106231375323214227404632943031098027915551928571505504536641218897804519219281718338240803465381150908137560879425812170518845972420158488788381582834603466310925470557418628089036159922885864406494390453734099545000595613716129583058605122138320946010054028708442649223116112261622454694164798697049400929544194937333811537738515081273594825717766794511341121709953729035777929398150223927076145755096421018490106888938175714594197823481599177732837480406947129771347018547184125155759311958564627481764848175655830489919904624558669618959886109053287356294346788093342038926322699593493308778145186122682611749417818583749836124676337830072048238567536693776673111332005142630759829416421558863658564118516088917605751407252866384012918992647955028749773122873010851382487073231078037062684334907647315086854758974906068085071952345335007833742844035698238691276483811230403304873479556560854178464256970808501051753834726952517308457388977461334277393793066536025869857313222264509551768199047531461560298733865936908783440392955777526252238002684490240766377982838365565315738039100236866010873654801125805612634593767164094034835589883145256683904559147757166865843926394517629295458571483162523798808307738558328101287707843937657698174012758067413132668375894144517630810370463939068240273808559940563736649384882870043418536970458716026525948157223061647566316431273577643205372549669329971102058202055360094382004114240482384427751283009740974250354555325128790227703157370461983178115684043505317580434033396288727723900297254350345579959453692390649298079572807542865913502812446195235689526418867442958239803262518230591008688098569876980883229179217393712970328262468102072984554283691197264219699080983724884468286275909216088896240454404866674709070643298768148277258062048271686112322761616140207469690167960739466643315380061550840529626671142192644821968813273680113990922948715288711314188317153052292596491046141016756505703853392237237451926236473559241754690287148170360614079931676600694263715754532539308468692880491200341228563512959950080815762453373547717982297360165606708706591847847367561081284717133140836421101532406526417146811219986140182422081745003461699378951275657016589035865963076042683997944899735307840812645159394512348058488307527201453115123638809862389855616103717209129632271730856819824161186246991925430006276066976050780154321201164221549174199909139124152981223344919756481883082174039035907884444498584830512471803198420614266161137416876030110560226529941121465674333486631831053052578896464211217517627780895120717141496770516536493516669024948041492002585381351088095148699923866029390413752328013920013861525008452648163403042517891679198750115791483524105175669997941739847395634283459691896820699020878308927956079536454932509357934845029825656436723289893869632990241737315340181262242030671216232870081752797947464694584824894235619328466667958903484484723595861693713774600460540522352664702685510119315982285524963550522148257541629654732034141462737960963716224476806811400794900822053757713976325741364667742944332695398430619803286524494577030463376870857606730261384727568284093276834169589993451303001875102567062821872232869122632908579670772741268547353501499771845180752414565656614380248416849874048548885788640555575687139266790609369119762423333862287181763392531813856315287516031351394539772480477179946762426693942498120271346958610670981220386784288920090172416213582717017018002410981746432164877128799390132359909404853551845650766988547754640292643485840474765287103249244831773952094216413858528043922928692446678107475496066516399976800758403180849294696690436565531268727304349890893140835059193502594585845436280188269059958805869246714607684761436597703394742314952128183855664262873815010811504248644240126106171489410751253814053316520176321505882628067943311713552168018557966306329103440243411754434940951265202892464632314926813987289231253806214928243536353139207641963733715598161193178518638910780600405622081058699419083233263554911861308312657954992664044095456246580059317539892887623984607942633626659703019734105948284559666125843301646880860373279863102280864521896614060683099549285104467433656450015713177349980140782540282302420869029254833602764706101098764359520010312635624489643641165331091147914306761887971153066973495720543113499781170184194788028880384957110025618469603571444234705561055852554363232042725059594173999826131397395025053119795037399389489507721273485079834108757243435686245808784659679340709971872877508044147177674887301361399525966585055562605226281742990725362630448196636788437188638877796469644406416455333927104944148559437422330140864231573666641856250725883936770945480932432388008993482061353718826254696412209399592771877775545206249524268033622828590564690573337742693468641897776154805703334014930139271702397589545140190398902637156949830777855168093337728259038412497890277008698130163381964035121071978723018294267125493317232990502154768783525544016098061794764923834264771196750061032138145324332893216066139912409470887728138013265252902393987077923947732325695677112572065954653937163013757446384405505885534962132966191796923975314880154685375603440132668577632753556030972868614902057688516150692423909215547501258843504810396502685631835769162130406604147344701780558445254431753516468503048942099128225380322960042251517496371652589330708863188425005722230776101126142287734752130297481439854579350456768523927643674095289801448672803117074497125104971306640855554808031735017019458733427704454545787938147867246326369087951942462332713156212367377065800952430900501730756762730842705063718220790083325730355072156149641348870870370511834311861367790904006960987462792328811101315776544052233490757311631788500731039705767812713038745968188368993414145863455398157812962295853000346707250397155097279863905672350525696205699189983898586691454644553335801559307039350867945708350899115366411868608053817182549235521676757229473439567214634403141014324759757113024078759995502809857756152609910660813081828613806547764079102013798794180197594053536869963007899946966834395012063574624380407828393901663098140953789889099024858900781695844015935291969247436876596811582441488709262256202619183559467104350978244184107498520582677225582569279719577129579445428894294875556688185001531544778436629951270818752250701218493782632127196890930938461683204812909668057765873330514609689468898048061068888895032324423277051449996353370373463266124761500050817173421011085403943258334244681595048859224390200499362340449583027924821297457858286852766913296253452064465206460238094654934799792366633694979835801178938878631822682843675695356686620592046864425213392237665664346910480031398604117242645169785375736561284678838091209665904594482126660440454341895589961296722306324868563896820988292405267287682321751116968890215491731015217217993205855996615424959669513458867950268518300997815320680830506362085365988956880855357194948050854800783812550060810089112602433821199032734424944291997825853433538918850281724279420219240889687087184100603888601077960590409544798951917740591354346071148598577748291922018588531605943833713061480490501017078513692969978917950801184018312745479002142051395887620894808152316414164812736602222205738778710237499202868298481560611769820023654756016476665243871196573038052929690485901036066141721536005738626969837863439763528066020241372911593322382150360904422996142038995528944410887270095400420939105257753063534429611180996636674021277508496808053040544253134431058548580424162443364296656897078674825062946582364865304036451126560489770315472344219414095604001843676615465162582688212079458343749329886330392150752460284809671465381371218267664281433069704457476360602313353959911357045453164133249266304627906004773279083525302863432014250808108663030232086731822782086075555833189205952366622647129380057769844407911415498519648640036542862166877036776558902180747628914476019397290869470631972206673171271599975364446890325796428476193920613350862423061580220455696145948028916135629114434375679345104828519919977455192251948740084251206866563961098875137521486062870235591841766948763333755808342110835981346305579446625944418457035351703808378358459501024955058881181641423347351090990802837050285141569035649710560556288702964102704991760986707891503039308835504417996635544714466725314756922049936581263458340322322380851060288473920967272234543534761288418058684383512350188916076548441361948967177293085139098674200449499746587969279739408723908617684545631845677536945092038121375105972837671375143558582056441395483776126603755477750615598334205948668493639483892508083810052119085353751484875000109255801196559293128587879650033698487514941443719101759819352646093963423640141654279265044365758936473441790129734132285258841086161462190759754699181529838981683831004716943287780261065677670595745121407081108083238057178846339998415291498793432725416615193455765000719394314209713841648270882996400333904239357734062896230149722628772340742925317231586280226371776847563994247588049598238645402271723250021511357479871575362099675277106566742309717937178832444248536193183834077818973264226566590058694893128770452936749716749464749852000321175214698505700539841563717238487225596749352254449440813293170213764236890482101269600877048315833817787686802478426447831565479793598654208508647151025375483799275793127208058682988044783051169200265833315064659748982964049599276620045979689741112446932754783683584219857597234301329191074056336570891110279448729683229153609182573859494192289714020057784928861166863749371902078000861096597512871819885088822435697099098502632503336122603440942986806390557980940289385533921756230964113841327944760635966810257450273755985346480097721133898269973509231545563581257171372505119706009867417124240825050343560642131520383774624099563714975122122600074794900020282483054187106241654331444961185413382626434998489138449414483842166738233253814253045189595670304112496120408086547030321505314948859815781766460506399028995085581465132582152505303143138607642004504107181417829939433317347598152875822646323766002842569278138901176220522706326398050472508761193432226640726823318130111183851215196229887372497251317217290967857749188226314229204061838481685019810855120398055493856635731298786894920453001092475038454006781543623758462133246324740439315818431283256899439704618269819926429373133841317964580030825055067472789052509884483653803959093534532283691681863683018996314547121100195723743314501294418585657170170001285759053127076329063385852324864847868583168747806094962861895436109390202151539097469064148796093170614037958922371814602056539874429621284720112253890152999528876158572225312193900357763929810494094688923126538701168461245638527265299945470767988563243245595289993755704558846697904499345931621717670962253562557234035446803139485283425488534359375222362039230545137313346726734663651158865424635311432852158998261440386417252542779361286500974486155334261319288797648414840780234291037458108935302360648580306780028443902357723398128072643625464012000592596904094193022437427479663096020766415438394242116573494091481713573338137352124035435616491938845816610026784719905745561574372240264909146037228794706380925886061655343526760235026507842662833336724979186178697403109247109764406636134344990045024983843338941637200196977989837480781394463057551925102090579675917022374484699369488003907058770382416789133369714149364774788147977193001056838502813500971242103556907358668654764745030496294865743985966728899427084984122172192902353639611105401967124982164681617830227471442433087149218780429962530880094176663102894916140055818685952257699015067423577693663686751403747987351579615180151993329592628190090155763925268447451945465385360459444779640872332196437040682373255624181395047738081743252517185032856914498668782330119853226464292508119406503731133812417829811828372672779748766329909684173466106217455084487492793953717385191056369522938191537312027824936960318716368390430710003429034398143286742181941457857788219307108217740658214445690060549924988455057389187461520806361402074362436585424634967243456085342850951559775813709702395275063755280813458217573568377560040831012815419483756200838229780608522671539030038605505479584078368738702592196937143407843681395248225362240067570899108535399718128200571190293815807521979669554827093353591419919271925448066101352728344544792867502598440170021280964675422436017026113300239393839358133052679531827120346434663049979252380126940473025097887389954320222868677886068959257733456635424474683928224923528377426969425714048342653490659651409339315072124948047254906579988817128093003454171328595887365674893317228986757186585750794784935907100796677907706848755964005202615420263005196845250143149969450045561062441467524380299846935751876146196535148469678333718345023083687025040164867882570599716016350740784706626057294064024694926044436214615442179045918703768166003774994208374768232529995506559141764904449985971320047616428878208401155540232963959591891125602440902404514218584119771881639777388286952460943066269498902148926759914258168437797158949571701501918925540595643545998908664433296219218234154494925931314434430581206369194004618507792589376907410419161437021828965571763623550225395994066598338002350338032442881968818859434350525630097471486137073472298713440905979333003992081793241582944654322212982779555819436968033078201799690929167556611339085630448672359942562184464473761573721111679479630909173348561848068889134184791329480754223076640411444638117066168975170647030145836166674943368085220420460585502950763389043780541611719213366044218420605449343326058740789405989817757110773306913075858068915220332864086245836570317667179126480703744979659632847974458076824060412354730907929542931190042037729413063692880559810704534301877594275527357755019568175133897114975459170676245419418504526571875664676959596553904759679378188308158191009580431469863219406500391417755406968301663466297156136011074340536855083001104081062061374646098599259690126196720704272995450182081817072659171148299532236812033450237532388470245623190893666212583190109883932467476111420515947384005525739418244528631651242044003575631756912836574050072232314414956382894118185410557126137438114723850989015840574919208018123061276076586916658320456989205806084782694147180833715712936319363620073336687701882569749815404967539180436044599657724366645273254790226727784621877522560928886646507961171163407950647892752633698448076847390944687610880402532922661030117183816339710726402303171816909366686473669424058801830709988775999602620705737537995334407859724037028897338206114649213474058072349733744934595383714190494639524994533292921653282279597861841450161446540550586951695545014815618931409666393370928330216087801069272315444805966497908688121563621850640325161045325191801425109546920996963821441040227905363303518346073668479663775800517450302473312266158676200906842123116538896709969534887200989173006194307959700908650724012579718867728871382450480263043077203623600549110844095147252832717337510880061580780579358361461204422024214002684178092294885147545106338149780334997584048364719008027147717822985540491823845203227571888877180326028117225300913694980868941374956688937819048969257145855433404854939589514526110492829438172422524236719779490289065072399681648503392194213321293449651139294518795946790183582123718896425892521977696032967491830602828297308089357680157007514836414696399399957185034841105550357141941983000955774987303935279971114338581798917639191276953309894862976630846601202666307562791445111455165442436014852406065126155210625980760714946556383808874249413115829935558752524055639985469764462725908074044078376740145875862948165063247437918094245820150157814462664924493556228445780568679501764195592839322463008385775811374297070306166327881533885298475933865029161680352556853381099009423365616763893552761576089933839353517617340820653530908400312898138757036815849878141448553634855827063450766100642798802625295300961065600951272552049151376160033932720466692245177691268156614125769686562647763956258718196674974910432523828731707843116412550219499178039242081160122332149042536410589205433012746263200322756887173358649587936569782126714584719617087010638934989864710271948094203831089451042147299720179601842564392111096198564557983945525427394806357973830535436363220855144372936279287707421993267231494072832696313925665196136935734192218479095406826870299003008827257100613716620787557113833150695641350234128852673308030957106911343358676903998674145437844408200619323991946780319186203284470618111776805945405067031708628076267470524173405347125696337621509967952432655057732975404060529912640953422496798247277925405894602948729792962552602385803453474094332225425350463682249934472165583419362620040090094322676597795954765315114095608379491368432878382201765615379345914288970419898162748011630459123674366361663056340566034760068485032581003796602663509328374447432777665139570618361778296772137147428610358543410743992643067694482482267899048676679210116632618524212566380759790019211455822908558089521683188126329376754611931793951614794378419540313259816035530783587120271484081965248577211563241169522268054075205013916189122444129109348516645138255539311034110594910498019956003600256787509867452124206428913245817813558142716691214294599071481328479161830451279780851166819170367918247258624932052916325514229475820687847366216043785856801045705499995259155872738586490898598899883830722723719120619110966702832671682069577082324255417721828333060889617429597772828246258542139284381236639672524735008792899530303593911172464849844178928341834496190035911260958998617390785957846155991043862432017845134009207022589931503738211918612449385749312806349129187655660773033809961992026002352320055144307728784917254685315065458511066932972762306963992597579537762407581525208994464859433450959948456699891448411588467361864280114795022983598496160356995968914431798661315305634009602178141794809045516004229510383761528706988991669679856730822986710780907491515781027868460186666652431257892122888675059466307614342349280025926893441889008951389925305865922844190031387819151058765566914374823033133799258585613725911477819132115287231133068242653441461094088844265506200060629211801714063463838362658052195054097435151221426604204809133770245978628605232012330635861156465767390455632385081658638917866960429587533522361331082903691032371728870021836172676368984835932276210983784202724163890662069888829117843671136526150311909085867309788698726929406176884056043268466915370367464067623847496030640083001520237273396899005657213981908899316304088688486952695085003505591506985879212806606840826656992501720256821796720631516558842998325335132000964097415679425309158060531562536846260852650381677231611157620801555695187454961303356741781599504602172606383952009207713616500550918056968682860392479572880454924638709199470444601440553211904049114305372799422403294337923196784980694515703618116733536791319191093625816286215241248352470883033449276340581619914053224320962826527424033008620537764279077631648056518367048180899159778819971611930632726570969640954959640374224355292849143679985624583398961383766867914146240245031165405211934131678059924896087226520372119731657635528788114563861851928453420696601847021751132483371030444621267523927730750467011744145291924037476449538596062357272663933451342861417560654772082749190131023025532549862157288163930823026305627709203754528328763872711435656389065615428291933603853677460685874337858722678886865277126423618605949658709758544217520788499894124185841750479526910667868122235211788787319731527141751662373515454385739586123423452601846748903696779959886879866591734477420694931701260642144890244128164291368041623402265782801009617858158548977442927568010142423606660394519030614171862169879542280417735347241994261238484838741885730945855925316003203662623443490066215338617253341473275733176366997899354486339403631840994279286226753847858749080668234691453447468731337886587839379265331030043597518391590911148287522020095368094980304996855314755250496025740724635996592400850193563343892750165101256680375787309173285701441164899018206453393027288238288758705835119893069313816860384611192517520077719737801302460949772207102128687866170181053008794199112905937252238583787357942653403535214809329725035096849043251036031851538684480517696070796445263271586980385991298270198226719327367281217060943220794382814588968102091957743180201776112816176040353719546183409782086028820935806109709035749994449244335382357253709130394270544925430197374366766053478573562587665719115257857297181088126129858415043769801540014611979608179974721287692256655724945353972879423118033176731846378198397789732044959197716751299328397776197622235341421909640569020338464630241989175197981163401571799685362537492614179561187545323545894452074058043950729316914563657469917888537812005668384826823952712549102412243378021505170640733494779355426211598573775421628520106855448629787976633406228165593336216103971579986716747974824147950660867936648063719423290684533154119134061811411807139433289412696591249531913048786548297390345236239051009525903942408357624924076129220719549866951261602558702717211883145010936627960598497795477006554394494686812553368294602213649264726045163166809557464317014545543715344881651201541062648886758397696851490546699395911410934315710394046834092599690604031206865436011057007780679455463705122964220721430267892026445465538040750360921667991488410961930557323369747470351148798144920571290571501516908323843357505752175937423443271307807906702241860011619192107094640345859088099059527846012297133308464502372554134945617652626844714041597868912810361436247122794433985943524512114728651671205076017250018699630771454119070469735522565297214260757141422331742020208443412503620564748862319741449009920627374479302336738079201565432659947758324652081848477887041808080514739875364307214998474650722459227752308954898671163582687168371523852748875009904793418513832071418279210846119244910937370786976152130540844738261106361735097307031375645402282181537794452094954842199833195090647322651486432415642625932889834407976037214070774424591862877281626462485095322886031206688956980016764985084329558054359437753996688282235695111607661307933818154036178273656182430695075471049183089284053696575827641788594025935902905027552480011570065846599221558684023537070456751276503000915243002532660954156606483252049102493319096250532527715456748886744152732008645050787102331079620564966261569510044148785495234253810864960548348715784430349654702491258272715828550867333928454904548058525374529218308566114488461564682347087043209873196620786864355690182856248918677876622452935387715488346015868633935178193501605759475596034562341907219123957245564665197826773885538683251841048305750400046802826165076626775801256232496896217292818740731446499773137859354192728226995291357328353403952002823353413518684505596596399949065590675163253526409688952824386509638469815594352777928266847108622679418860550280726010423082467254996803466459316090869265599720995012135046061470961792132622617588133086287292662494013552000704663017350116459628840849213289796203772423639185533463535366790896575434395401074325827004019725420516718573776743333525097046422524918943045704103925057862410981088889416238430373372430724670657695689129030915369306796293754679368218943992249093243345860261321291688157425815520422935571458293114603266652554691998741542458555044414557600667554063861246950307191259924359547479607053533712943970360121442744877095218398042110722889421960096005914016059604821123524408487335581600288390398047960950018060981840689805035633177640964680018779867215338301383749543932812398223967455202762413362757200050566334116620493591229564671965877879062393655506477493395746655268489948163226383327715084264123955855620334549207223884620377422752058826349973020546213646136914991049907218070140488962691034347491164398055521664847804588462724365267850129108247729911813562259314943264055188019829664799198110030159316563622153754749826837456130334687547731310965635584231681995899859523001952456363598822341273858769787031986577903034673913822829273875025778770568635663046488508213609167347916410989056447302945141583415494864703075818454064477752022105266270691234068539913099272095232670733360597245766516260523834159903483347713789029046999963666698568082668075592133811118214659478414203155990065488814003773914159556286478118840346354916977836582637411313601866317018619019757208799141556654893522490102116137450487342045233688156071121455299340673666948771357793503511936750856880715540005823690599353631567003538764819031829899796655642344699351625247820323223428031479760428844156362304845536178222433224834140681563584513736634955842137679694417169108769744549469076665594710481199164441376542818282622196029489459977823634550755227458409509740575737489986330417278171094558752435049401832105570374755200638874305173895222827044856699608309907475550753581052032681586072175117607873895985914373876272206971436375792326122295010077751551915755261108660085520079044928241514167798130429747359570283734062996924433517512296858681587270806711442140634088363545979428744404265418041296793065315753360785424629769991347637567840129272812508378855632964198572101516436583675877952243883287395637027308971999040476666545935100775367132893062359729011877788763504127558144333640052578525842758442565230567120339587967827040273180788126668867815422232192944005681890710004533550766163960428808042412789595270442489533362259878946654650369510885738551543617272379981689456809330612036083451632659251960894805862211644740010703090295722469591617681629543684473212647015471334903864028499265430991075769716774168422309919542715830482627521992960129050955132108161297794212361449297741757692043555234010365824331444298479352940515388260717210713055786376592413394484050898191978961470980984172369085886877571041654711725271698526665016614607928892044455210827350112623135646089938832385369705512337607715373553483687307695113021957018823007876717309008017384447383142023766800124490754195397859103784070081153379545717691796910037533751200044041898340626358183838016984237831528913980604058248109895377839024272147759061497290323932700241668980163596401994913515427961748364896100593856102946018353186994160996292951235451193536883401430868884932969309242718681597305531206599422966489998162152235801332994762702408225935994146112119313487053597686721658795404263153135193204136486070428032989382053419837102099012533461557058238167598061472282168354056166541662125368010610611327770681922706094346393360112073925980256334662319087206795420289887397165037154369428228120364375303378176151549432529073987745639549359385663435904495960416667324905212668515457876973060928053319378941596568821796651770649522274504710081728034645032118197125361235743200516340598663966496107781457138863539916304863236606948553914109917063028498456367963591950794058780082687624170363367319023781028917858439219098572851509422341211060221171531604810863515368327090259957827784975928892450647316762840207137123748764744469990146816869612205601281333329745057653934542114481316425668765619694562935521453083154203355443704324282804339253238486025511239625139377200543816583699009033838551671056589312833946559413923930097251616414043022088739744780603598690472858385530428594837678737387886396315736050109359859263362885844505577257946699102031159913510848888710070783508442357137290752877424823984738997834496554153207445061401229718591956670565379500759135197998376254912778463907297212731441274856619123314004245421384123943265461015106938336233317121126007829412148496825423367961438959987549452463451584391583662998232832773200893603249114713792655011723875907103984213521299568488385186190173800865788174447402728840128590578888469082029557420025061251725940702000566677575193319914789672469171936695213456456976954830165003038680763011083842133878012698297950858091548495062385015442562915690466629663491007853996710470753277232541751000454893721792899110992295414753531318003637520287745997582778224910046806275407274127608877913944973517750423589184388022243315958717196971154245804136930321665201098333536873453262379070724446232340243480248197538960492542782932941975656403446813856683459273459181433797947202247557511487307665178196940087788127587179041159094341980392096602962677254126047848116866892246514741512117991899485544284132460345535652014666063627460089139168727281876677925306482830617437604578999668829534456347878711527681223241435690078193152724653198891303221061967743866804682696379199884774561412517480984158142220127117602273553359279210939651116548754152650563996607141166528384137892054961325008246492379366068811096700832521417194042788145667419225114339132876625665045363391458296456819031275891747288628574487308053735201248191098668545075869912753322724496763691583596619886349563616478195630844470376018182518755247269809890291352890221661189916368157380202902277521110446376599732369854168833659299395671945655423689193208618536517502993601041719690071685040700132686080209171004982671411492797962713033240044804036701312685307835428282546003162492528460512425202253195559402840198238687241859863992678161868128774446934504564393459364263148381890931886284860415160617522783287593612618573918734170858331631384893828335508001249039904043504621298775341706691001083671167865745955798636997936873990112046628618238148287685052976037882841006867723656201951935978282309124845531375616001659088227142420722434753788369705502027285576329985003199845133587169788236376934600625487847288334554763699668225504428126663382177333849972109512441439397384285523369682371278679213154331985052560121073734505455462686634519486766888064267144288954967077354719327425101669671390547053034252657217883757031781384378958187039098017663745783340534226885361022139374179891457455658976516845402607058977893605335487163159606048533279383467329028096469627347998352402653353875832203504647661048743539374863896230364581543236539403432276595695499388677133617932481158111161470486526908107169732932975382732003743972173835331159982880404952832945684342993709327349717163817459454097085143269463188502979357294253270808990591017596540777654879207185601682120760913388096130016800112576792404907803730260800255057439040497445527875380168389213668877043847550309453181270022189841108029475912786435882815411494798792564747182201198383864068664985039507265949494504631232965805852179413992877507015332146401412250257687977934487416704249249186493102695350138571468146416592657583594402250503152115929908353530640676097908721108333374750383480500575882683613703887225985627188244370623723616997004626906359688428408239279752944182649291205991159469734812076708568383082890187056707005728656858044901406015106996192420601328673646540315337420808131812057206921497254664151068034019360770787763456616651970743118695659379684248326485912864588740652245141523101314271340659897389648737306650998967472242133961499647371910657600178858555237017029484007067053226629379726022005293036698278267396905959154558556729951433064985385016623690600368121834532750709313401183169876716638175347494097578944799849127136935658564740472696558996800143796629230942603986664112924345956768401607343160376866911339867077093658664807942370210693688439425162940736228905504005002643750433775735789957912123249299478670499186228824692776092313650774510850256396051681849506363219210360001372463244105588690687994892160308798116281552098569559409047582197533807476336423578154896045134725423218827272306997680055956188877988017127267121456247335264738743946988273718673335755571204621613979123868186946150577357045394889690486481973067491230444768659984115100630816642831148843659561131531541659561793092321036254052579647312446840203444276934013523819680641830073719302242845235518229470388887513875088542868001792428994619409222412834896732277559057682564293608633866901271908973833021255522636284836713527254741487797005500565496092243589503744709263950215639815555660114868330943895085694258159873258379653900225779876892737585704346204244252063880552182217383727613521892733087762641904646622614095139508074325832061837982632465328264103384864806501765484495280178874731358908525433548790887861351191601058108907631757438016999296478533526180919493248984138228340888490393919902532918340406369450582831095745301711961118332704594927571301612449104569649156665126311433460627315206394525194672281138820540433320120407508267051200895118480855874431431471465934939997820205950701987060363119849447777299320830911372658471176614050515501572125117061267535699668202070709159582528284148032255127468993783493209011073702011036735058410594463442464763661007834356068410607676234788063819613116383078130643632833187537024081951332051950396015740178508553648063805281420516016144338733023199044044344883578509379262077825934360950884097869772463160099489111565243170878275216329515620868064932068787861248212259371176341969150665553080624135304330538378216442204920207011750584407005360333021481231230605606188818547868300325747812182777690616137360552525168501459763748973382015746234792473812355040468447456378335516623855010805186569282998623922356405279767189829419237674382326044469021468518503126272749699374805683634363316761738393270525556624494129683629900153469902295198418427588678611023356813270655586521152777946609517278688592064955440804873451899443051320273920236933766935858643416023438506940345410926892033487193043779829458828914201833791267416704645933294972502357301876803001108580610293402228295495637442259002626194604556170647334052270225702422114865055284686181092053507435280966984384905657412045328593957697213128645249419044714220356747459511464619802021234373761836779321169670770307902319317243549233616321844320516894514277770491595341304404942146719547658617419482936094425983376282692174920837364925381206761895018637983275313370215805312446777214284604160814666733290341418062109375619180979524798311477281811522493059289905759976588361531773903406297616612150324699451180854665265169997128990922439313183118865714786120195479922694424478952399343211983182169689219806645009176901163078893066264072525425932530688442510629331463707560145163157597155599084076904969790798882759120752646010050136512118083618783224608455365887940099484128968244822637206267167411250954785275699318305454167686488241848036046190726220310314053453567668294480833179579848448137180325032891805757791269852883019355527053452364313177350049139567963872438818338576602866914898439048552805018186673876150033065795913591168422349440110096287763259862302657613932247349666466374369054944914511916360267461894936723844315709909419642797193064067084569289253205113751122531036544711740776706734857418100627209812448322900858479119110596751934869477200671835677844676828198052740367640698163021166172135676581921462473793497706195787902529686711884480476373770478448396089298343332498539018322829432675043550370489858388307957252759134257837300081741829615478960720589852021710052629338600640109350241491395685567310876948204244022573917822898787215701718060061377542778922033479330519115337773421702351263323957554915639906440191926468044545059104362079562073888904817839831558062252322932382578988189534200861977561595164007778405039755189012987501334109690837553993871175383166971998960288073571678727496938179072676723240321191492282710531005449462565472298301130422588192400544397928203313263831261413779990765311567238091643545886151887199040152566788556155970283678237498985706611610986705118007101167661418334542579891631328791547921012000799254838702498406687582360641927345402055270296552140192348646840000507685579414236631870315514133610987780565401618998688634138091390257750254627722822850815664646365547643234234483414033430922688472817117221506776815994341253622917862075719208582698942518407846056756564935298439861249450156031286606929550308107597797382399716768990248449324127021270130576936742221861380214932508853650123043463668448505790442359951755087000680020472191466064388391652902098189133271840288840044499128098346006118108902504841602539188633421973688029871381274348190800558086372987882505050794843960265439721680349033311225205484141981738608339157580700838538431943851399967175838341592842210070473372756703251281831171543825131332992524675287024366443575824784026502708049680956398399895266508910100020208914009711817838899610194950129639347627315997179976582873098976550471823478895885088225159603332084835635781178103287448879160078452784144596138124877849055476589488240563064716951322138439530975404180233820373985242273405120510039820057176872068531996800435577401068372901242171079367613328420007595021075471415077966716812803443037168718044754755014571079883546448056086426565847173837678875122194318651644925651717928101498813251213890128581708927859186266341611467248889573052001805614591153265397766194276564929045332131894858313198534432298432017249521651560375810976279668850872416283250085932733274812200166470414267386170120505482773146277765376791670024307244880527586091620101158512655439865976089629492884738765226719889115967901540382329415056470591242150538212032651964357031566381853733579722690816567819817549813067644723758708619892177572913652454599515539883276182342686941074660475830698979629132836903100065902343464394556984212195443493120927115144604137096403431929785995594087622185091589551830801476370704705165207293049721719650594068755005366610896202900928744920907923850515823196665389056672477261874799129753570115769284195892124606776745842896170153959898920610596018115704956032702672448803757298055181758777856465468013321623072764402490452597997940977955194711213441888025456091060582929092388555548066895774179635081507958114751218743643676534466568845713163817858469594061316087896297354166913661131854915255700327410185432977746382649328557913823677178677060800198621802210648219446743228850720097703743816916110613773079525383555726879179012342138954068802991468501012973766365843961598654344825184092841674414535416404286709677302546457596273515611038373555019933958524995391749871260493293946199817906826635150077049383919072209912943033122962984822817284822026150410457051538030899367848461447554395876703915515268208889036479735005277884190299900593760686333641585556178690875893122047110282049570835058485563086096090761305942485922505527838377264977763585319134560456582513060555594310234121415968925394048970221450434096679435980504380918867823499388374476820992928359811134555086295171805433965294662057292087782521977019495188423804500196982419371876769435606400126110653257379639185939627644697056018145070352256091901071130610674341112336535426165377914360742477422409331377128654179996001181747923502339575503560487736594862434919572519712526123277853873183079236904928440544376443520522893350710876571711242237700383080003806999853713176504973226151547736069147787379244376755200728292409345991309385389314900208005769452128434615248516973339086679244337421856358531031601121490068456268040623521694780074965068221001179534478897474841169063428314952155501241035290350393521588866218459866546791924474469060050051885856450742127838141622635775485802043362790569610953242598964856382611415800177733844126769545008778224328882911971258251866020610380124750222386046523493033595014447677784264027975580586144378609571453571920974406194679185927588823361693079853941564267915730634468569936817414865443007439846310761161325550651383680800167932840266411980042069775215108754207445014794260285542077853020274282867483233379543727783270450974139092751748740832417081135105141960692336109440924009949529601880820680902828968218859428706434741025401462493751894238289301505541245240338006937621677976588841437767615166158933632786551046035515493674225958775871693968022370497253471845519767143664813362188760234208505433228536952992308025041911673609694001771654498202446162218462440755936705308444213257862815927771082006445158543053988917278684439672708697241408852496640348035489906578303536150646849856141675687805134885757802404072095244711794624648258791519455765352019240947035497983326487126746531200162044311001333142987496991179973528043854336247455330428991906974849379740534268531575395074223773583700789543450621894966052399334506619945370895029652207647248285428946749890935368277835736445063319713141672195495500775598469107105486124147616077073781926596810063715415512708381707849419106711342032079973736166974928380929845212140178221208557633997232186344286598654021722440403751914123354903715534688627882597087374539724104399635026834011626308155456608174323833198708475505018131806264771449548653636902002628906111031378193418852120891263390723335037950875505982545895363274484212964382089602330993832717183627215292436335703470923512414186081786611265315845514048390844854424955126171278210619344351296697761833267949265410617936961112440565462512338167619728830864406632602292892006090137953322473238040771994870430391378009620694848738602871456811127146618511210607143449408900611460192334193695478363062749989860598940471344242533842804113118189141552246775140975499612134042460453580780808096734551687704365583928352862634376290678388461850904599270552069754106804754905201276554834849119101853208250326726129906043011162678442756232807386991940247858801081452962633025028235800997569873658982582969685182734361057368486967642303842597780813002377196295985775875544805910479081372696443462844435381102371794263945866740123717121486094384852617364704338336617470390690612262928488306237580693658893132809836049594446915872816366113465332990826173920296007821874200618001443599890203497974777775793348646895730972447079773645349555369906975399727281787056225807492389461992544688784327507844340129930495927342179340899061203545878630711537161091615250884779267051986144031659433026700873320313461899056452226115060735877462120282874719070955123219539075656859260145270256165702853426896809826736945848683119002500601081537899477184909829413530805585656950333114471379747065806287052113338083290716970464036742434893577665413432778749938186562701095508409938967051287867716502128848892485727469512608238260479555504485159416800320255780544326705681927814182989425220586021781947570603072258893804178610060622666070822079037180868413145441362969195658913648738740835602064078242183518911258715120829278671991604431230949612869998138523002266275118536190578004378649622372997419687889956066707801181596575071409714496583197280719519779169254050251289477865587700065084419958917493061729740198768254327621489774058669317438557230699686944866265163824607853985269180632369355591335701847269330727615907051715253690422809220294477850990234642029123819279634022573419084712376191044152966190574510763329940501213940387582881961430268345946456163824838399930477743168119210119419662595751982569037403276355718027798585877614408188666633010709082583555087858658057175141381700601587896473119097991506499723934226822785972860790725263377045618425202961874265718068339332135513984650243510201220427456884240974367944952220776691051680040052113714307131108651152187795822151807595376804622291221027742221028933943828436736715011222912028528292066895548912975388869920348723746265123254271935720098589540912102594759927010920055411106294258553616168326888011643795872502577918900504398198645167450372976913841553078043606324252019577701645743409232888398619789741599483671085040936412174296757424898798097933271957196315203484999771785744114205782970575176696419597432221482082522024938037028490903075171240718405359572978534166173470870253898881469380601614731083624643568919594285220723116858073927216103159630447929043671498431290905172723037609996757680788741013932844007404619805261706992036758185693850585296556511327181609234924706393547959312888075564306671593600369415569223211130358312880262261976387208793168166543208463370890895659453581445453946208436407193621204350092308068507880111565607008634731134354582855142835690329868293532851474436977441468481811878041517347201066460795543532939454913820464880974242129957633235033591838857630471402841862649610624060243882523185983426248019857586376460251216301467002474264322961638114727669119624623591633085400325735500559622229766794216922757729664323288947406990912854238616735975230782528304299829345673873824050879644636509468377598514945486556626514378776504713583330095335421789272370786542557220251960174290874424987402927593882395477834110984335852109760226755953036805410531619978384946037237210918066885082577886928525189221312601479028640232896142605497781433403766997650121953656705327379863340612318814340004312725292783298892388170021538538752484630191240125093219863238435599982156857037617516479417258573151503336416417620696986905024729106983368022088624859846802633975321100638884469123024922549000265713383802227931548904116838350815802335230678125052600470277760199113261795144885089468899538720808897053020856170793419526906551616732029259579892229210179109004285816009021951583891669251649095933353001772581529592476892603695822683996117768186029527696615591848881300946531570622250334761030939722060740576172155213620919260870654673658971905594378954305057964333799146132719382648182504597390238221933408255431568657559034196786050873789974495367998671885685630816020582989487834191130373237954868825332688703375534582224023148452370603155279283988327364921564332353003101611062108164965953917536494047274340246117658104909419505069794082149389792103645836528809009906718776760255911524613318954300160373333792288957268391405838541710019818124243183087538741000880642862538138227821361594724951306671672297873206531173637584919996291044952831060111282557898876783713125574679575151920209433243597536370340822723048172038637690613468720947779472926285943554833487774357947101374277712535801055764591255661303659681476680302883915203844144158788275639066494070941855167783463745127897596233618875883435408378324832324522978808276748628953070909410975496579306127802826648926756912781753660427940481813375357715443569098137382711753673465835123638840018938358197700336398835458595207688270100651065684575293686056931025892769699449904216265400459303152899728191436540638235891089568636229710194384491741380229189043655085145137178918928937529566023390104371957481695482663421305754223075529337732599244642060164880201602818458651573812652955358663988274764277969899485070386967779271363744294209330524503793218666720639986413053182513141240091830128774011572329541296454955338194345562672698091804340656503305691145495450370812954446245914189166839718600393184022816430479348687186552001337508917631388300644011092973643786566097386335725127209544441885894443677249569518265828258381827705825008394683635430448613242404949560442452279751717478759506884828477785074699687716782505499170498220664527130007859863607425265060566377146777580210580884444423663110120732463299788330169671470049209362044616740787699417084921603777182462200161961164336925822794098805652905237056359230715145164870141609654329856249484672446697287639201643035942262416722329074963356498240808142790920603382861283779710357992525306752295077571529128339153334674807261859073024425556038250305584426040185080811170074355413923616606707170990035535212063247929309852516103028200604353511889354162496664084070615000120113222031052807966355787747178430397683672076775535198854615606964534077240730381034718273202012346883507425536218821372867725206147624587633643793358773416471654182683692350023857753246999629286615389527022700402092277667122759968838460233002928621886408042250353801038846867850129554304551135488014702577423018579711948406187234791277941933946476598213007851881818961348257093365971098012059612142036936831798791097645195600258062380571949304697281117029173373837394413365083597043978850800139712219778294387284184467514353369604756642661670325303262635863227616135037075398181841534908276891050429340644096884553995153351094710605099721551149344360866190668120366815505319357721871391795684411968512260219037191490731841362592430181002826683855879096483183300808236833060416235013251726204035671851930501650450044882610046185378508279174615237796327701127469982796410905540621688383367777266584028370785561147628058086825022995489902445307854792559835624739774353981124759912587866116654448645475076484205587592190415882170891271885765736637644507473508883589485077403450881965310829127527757441900255275204679324683833660861903640884559209578604186721839188550906629130577047868763746048912699729060127767196081283524733501549242755844881819872419845940130403666071007657104589673131542590652353905650866087468132421280857332901971134943703743666646056848998289396680898133840242120366275176061104022857218394846395096373655552062992708430131780630802323406747372152172764730601960708245020914417842026761851883437776202471892087802550615139878888505811469114106474105346761521048938545928389633610387533560969209846106946629497380053302751931123601730518209783619019734999371665525340809543933191147661129691907448374250383411245702891807714451460264116152474309000235823805254833722331335116639714841032446225365686380845753959594907209247929413503265296226663248442675439770452188253328988209105247457165890415058182045052368001432636051270095519614742401116129731637842425761804113140683093017143480873926840948943814438532878867499436412674715299181269887443003409036075494476397096790711004278829379635892205122098795116601172987264505740462167905500693634860294802042743574082811239329637188618344701134870118805518300725877310256434273013253128199373812951887063485962747997922941027652625439767851493458605501815806843103009546896895832107792493967220926682070037950243413304716845996663751621500100956029478577818961429399528577316851305006500955241589546821862890215293185343892542244295547769444211476666491240382349389414537469575881413325471828343868179183831454233693471877589160755771228210741547115273223767456629448108576650967825883764955710145549343484678288448250275754614505104666333759206204741793845782711617831008439516232925765538961258585979863649887642011606982526507392789724985455849952290729775271040246294637294374339311273634156708483997395965374426211800340789663711927581291513778014466924762232087335529648983968004916775548251483356599354144392942029572138648065417335504041585047286294412848668100730286930763736132759273395046504745152225124869630652691016983642270508421009461173497810411443073726061132743947937274399642277899706703178331527972663171192955680908153074890555782133352768924245974445144842138639743062289579869471744348688616752688578241674259047142703624493244262650226238021275163400526681351868263012209451487570224079837775786634201301976990383939355872370774291483651998965482495622955816809338146150998903046033918716749176491034012488351906319280267557486187070784191821501851344611034087971764802201600377352440428948853841413473005323489360273721213779260982240825580752247285070781467292694146923359990330621554173366097623886932607081181137564645679413724239995405684490184850671410781835605266601503850713264155343722900967587588441634456170443139550092294626419600329748872018013442483656007913929165003564665259202988583637485537914545066117708853586030828637054359341938795704433982513409311456965783753683196890786399755660509409383697988881184786267630478397169886572780155479838436941703164212731498118449662108488602371681581911957640566237557093701707047708114253448265370111348222286269431692282673845304454618794641232009605747220700614607191454971391406608586248003489232464102516255213458596890652269995978110709544557473470381889622490759386969826528917469889572646488854477878052877049593045611500803976453940009460884759038581246970876132659099327444120008874073187987993668147549040577958566560606494585912280841795110860565957232052413705795950762245373795800102035396465284572419334382398995084295468226164762316888151991671301809155661077939129661408447827599862405702406778607391287165326951611572324303496857466976430055633505604122564046568611319371085720599473647039262020172163745486075887025256066554347632823011905396276776857958042093565302998394286332606474779262611850136404269304150579448582339313050982189448472440134971507497413470604967718840747281859674553039114222219641646625966171996945282695288757999658999250426770850330133122113017533462340248744820037762283671970072550600465861195240621000580265273212862032896734869909430697880787755827922392665520062546799609960875422758107035364797301746681185850573849937959737043390935455926022824595332677831233433452377320355994474093561389785625789830715320767842469503894645725452996839407241080211027681906006418320748112797815766490688441672057493752497279859878745486528190339533511408917665805439044564967745993959167177702858411878419277454321855576808518351684296219946799649018373244290409687637438869993707964217933073769911299311705408396433933046451867424816156461215754360265259043334401319829412869101984472234933943926078337666799555899531072794493422148662467945152900709735359148968608843399155342206007027626720188714409978604426206928028357300228626728962619537755395286187194717433185186329057181664773898980661583139066011802421867641287027617746973423740152323053382910891417124991965847625569473423014271214904924673808824682000426686746792320086209595910862918476036102938609939935499883661084482793738633522450983820282050198965846605095024355809300687182045480200553834343404850081044792616635544420506089848640610180777911461785290020466743457865793356109810041508043592695450253374965090563952386027442398540965863262045206745680396008901839312520128334322009762646413282465302181198417464413686817550263080999229562315660627485979983769336853426895431869318185458770989292123616386299466610453033158318798144290739483391396288593924665489908307662280601445119271812427926934421420095995002676935855339594296949290154686399623338689229428584861877497314454709552134436252699728971332817127659662031058566704970068573956971856070794300269836191632378968617776573774406294383425974058938481741390989849772439277245887020474564831758102223011240284131986306618930661889085489258009550616615403714565177273643469733933657176977761778697873075669337777434811436031135966880123343760792243706210979535502146335142487746704401905603041659000088522282655543698571456161628755435192935166303838514362358949068427417682103397791838916477746386662091502265440565143631370140240304733101932946099179371255846485523450370026863488434806708880227215828428845279391904213348972984029536170228883246223396532408324967284872757813179381820868824222658785064943927942854320439637641823692877399246716973733003436474013247558246011538323012107545797501857418915939709070284451463353580867512488127035733509927973136469248824466267288910368069996141726090278482089827614260346297284718772039645178548683758699396780281949757892796072751286100900491345303843172488440726167365640633246232620420508133382731575397477732719615794948988597877974840601734987973878492298994556181636852557836242095300134366130778435950176258041170440829635926360279583125557924722095569110016966555903879402348294123589329813467267415047647226363791578866039383248515893769548975289505081416293511460229920496426183111520537609988154607886351864128572760904384182326353923792898620193995690986951832936302839313679685954576814410842391777958114521007937837902238062189928225922228578159449040143128570419928134228836030719217768738649664560962148232812444057680623385297063189010230936684642440571617580348412912170546259834522923146594077577884665333646109534668856799726819604176324698568812125140311838055901818998914653045409624332854196461310829927221236330774892686945883117259814905942217187592761205109541616419921395531475758569265993463626222309444549391103500480108906869531732757683821981022981494207223299025706480149412858916957406133865406514674368837907992337698287271004228223500479565981576639814256653488604875328360375511616556798622160786712388680833722759485318685222798980164057909859810553479280645171405220637034907677389598556069656913494673073762689662053540081252305782640499444170462657474354835343830970315556152240524490222531021885643439835007519833346813314265165174650104838689724770975581535491751069220212778754218186153727073330426007030217222180520947035590331821095630387260236768544226354907770084492851843451309058188397838799109137328612936753821959482599002335511243610198317604405305767736412455916714377318331933371688126900569708547806425583421778958080286075075572373762335853919225837163203545876178809212840188298614881271145871126441063656993766955236895970414574401556492775891683503112112583947824403134454140357324116584676263870861610576273367465057769057647885473644455387681123212994732304637535712739828268392947249586278812797899585893636947923765146603012603846551799398358458920847593438452274947195325259163403718008471175715981189833374333416801241641650462928288842161222757760374343409130874187635601858357260198811671315380096321659623104897655114393538718767759990290489535692281815570954306913971166851202270634835198946900090076133178199324113769168970861247740388865769846982348153556384191761277683937210886783159552315892346356982859478976575022269417359756638638262010872111490424320633775252236438916398246201755676908258390188352954768278747978606948480103495368308675915349192340978653004122975149582296759934868931029015964137817491860962571040744416197756600509912869814438431312365783480743157285824194771332642590655622302274592775374191525352791956507590925795092162097647304236825242653744206403623268848776035857153792222458143758676049137097445488473636698897869215103518135762868147116643925970987675754886502883703930981532966055602257710519465664044709169199433449213985645128634829825834547841568164430072883612898150789736845938475380504238238183723100209462371722748217316260524185919240117885374238501456876833867435031829186060441563736750282650829239754635982237652175653625162196471848828234799760156655690689023723826879853136503482623279089249713632691062233707321379105905168433159232206065330386585529463970343160868682370471982094700678024168936327974253321769367218637964008581534702297234741983668269468852115074353618796191593644997954711640706901155440217040979211982077231212387280296074116999023066445665887794394409911092348941637969976332859873276195911478785728052400054618753135617719021325538909302293735143570937869904540106158024653068071132230633421061508858550540299154489818100514499304081891440754759599797823819150348467662784265657329736826655428129735322524974384627207324764130824039670081768932324841294272450867450604385710129656217211222414299960741316221277372366429809375472924645700515435040996346381931626927640995799380139483712762691446875166507245165179920741317525412967007812533471495831892438605608849004703887902489384341664202098296724441349736711150681612131395094731785219188227612207205293020283702503908925637531329040282382051058127425057242991360517679528772417540738937380832511856722876064389974846919141483890131672587282974137117029674192816960456265776358443134010902797742889668139922340338774968272444122590754715158626489033946747663107094460217859829686111712720930201343760854058955793472092043937806212703181696092311146704201452012772731981325490151857078231401400299586310120766607660723436490627001956727006853054956515310751775122846824004966334065646906937656922248164099933679881747463139518206996271600177385386556382390809972211785552786104813839396177698405875335242540562352966708011351138060939543400542781181661893634704432396087538596640968742317260681781582139156579656126512311866407921833782275551668531184568832946649694939092743437629733209597400912709707521958379841720732365226214471913818882255080083272580728282190953200726136162719282845378836560547481131884720734903689332795863639837349623833750880576056585648700207354623795365055459047470243450298325540683251977535145951083288114074887640304929934630085490607064210428858021970894045908090733350601793270830712058001261915655721561058145802630113836270957643924454927731716411207543069077660648484503219784486327753580447028082747756805068043158638452936048679934778132448812660356981426402697066321191258394449078946808343586261485720471836062666776568840998519411492478731529927475796050805719692352920436993571550691989923445755744498635676321635015340873880087987836632929567116845850951254029970022617895165582578338755893374316966015873360718611517501332353371707756986559177212331810631585404565914798438854009071471450146483673239695026382928351979534244428229390730597711719935747828565729247527845028748093657727246681397663760652488153262068701853213717769320456187531329352577267813167428775520372584001869544121651672128396868113356954085983255094082194293144500635787543558623311742461719188659214443505111955134995240230979172921231302586462408723405658473243568156891515683642143994426278928843493626108829104302693350720781310974104277411900232449317598518710808473075610109494426173823356259912464643027885386095912068157476806119407132215839590843810747390805652045689413601438306863981065186882230041659893312353759048250406044594181650342398396384259834725107251622688348058133537237961546094812169194989343724361155670012061833718932400125871257538386453544712850999185210711486646673587330935409743241952682314310973128392018858732292705160793189123197209224882250074438130734060609196195764005816221539914401460229452145544611486067578610749050023279668462467983651993314624984091028983836115301650955010219343552260749264706079104100226205466167570446223343641370927271990906955214001468326996682532731818409504981542997451685536409960647407986309718309962582860089588377008340879716162158476318865923250600262535115887389396237829227842106957063004783393404243879124705044272284150079938624071247984126071188114921183614891393285392614035961389374502460129769132899572461487905467263743280931371992504498127047298076926086263038855993666177484735556151411666544175501927791958711059494811378491617205598649292846126973922014709615454391228459476674319440923204592650356071978232997921688739851310075399033800290321587448380771913485804641701536497176096917882003907932042743504978941432064791395890700138008670955645053402045965738278570797086081622236145177911539657080297254295440772116557241430563131302711875183376376342350725684076509453651160426491845026163872829335477393166086539677219578896560079599908383928944905097722611439032628506612118081817731650620711787202201152019070460532654397877005303620845480551368256242881553572431120728264749735091413156625584043594400301733692756386379607715168267704485974754246309669636704606557183787626398361282800784554359893376218607461769883721581985899350765079715141308303434616938544736987251896803561806491983463230023242769151106035125377302616722363836216303307849663588477895075131600464492631720587035745718561349527915656188288258125988004220275225667240510740242342207812750038448027635428056702520232692923673739510178700927683418116424857028752438659681783278185145780897329573196605441011152759694728178987160353588386688792488026924679364350360576808097814225025176521353242272507319331827272405093700585956077344735051373022919026109751684817128355097094195441259991802994509866791429267290778966487842637398757408412732306846924222956047973832761663639803041593567850691745160075200023422233690647576877431973541937913840982438187948178425357979280009968429969601624665272211563041614558078357801162869859064464342002354274664170654310038143473601089052744490341938483588150205275572586730055543222526869885823210316554652818966664531133720742212669106797509252892108745682117036773011271973913630897110831445547301830248720782335073976275624674744220368565243668846227454802655731340499553299372997274876231862295098063454086014080084494361459768237642024323986836387306652150526210821098481073143643631356267218513431952449673365455804096281238628636461326023435549029116589857903852134520812234843870812895187263879075268009153796093409096714844836581102337588220249813575938498493578649324560522594563665400018484462032044657134097977206968916043067618837778258198364074785021218617094166200635153919458856695166049891518609937374061069599176098974168640409071661776744807780117619390387041241788279179036252194449984411630506921863318018537679922204462879871497172281160074751192696174181462205648398020841633227005913467140963832677538985664165733325060405483372803911372373798706575043149325921238829143469180999270970017611638176678549804446843534041896480847469031956836855779041374109998431266388344157797137046911838137111670670038294736428266519147411650617809790752899970489145596937169397438247558987815126465357438701984790995660392935085582056790341222093743645111207570913141060834069461781744515646022513301521446278211968622957153897150386685699270828033647567932392866413778400488641418434645587945166695345978255345170396983177935395734260996637314318810773132539936965080318100741696940846331128180348385946571880787304138000400392925673690085635385357433449098026135337856092318254012684838444466181690551677998565402426616198854824704676565663093049523771799107735992145235483259019005991593001927332683163440463554266676145167712325017058950069717985003309292077710666552157337158450936496262114476065807360169963119620428819464305966278344645019441598903534372764925299110853975134400570216280826830777570421652759877240177328237701339443967815632056160453284320578681570575047306475950797122920158500974583436914716075132837224300845865125713546321231707110445488972476157673954484491310528567948524342245816644106774336687396919917221324017094568317288983762855162280728790397112236659604995075939574925964611410971495809050228477386037936191062140402506925798209082219265257442113432416721039930530558175567783227521295270438811309532202767592615688752325315580667017621105147418363333927144709665910754932013078696863384320526678559676619258757069243301403801955508142852224134283452002871901892888671544674511165387488029316393065370262478478641821708687756378849082140831408161623422560385661510474702299538198378522678669746299286851090955453833162851686097757682997437393446248821628192728159887411552316218972404250289827124965763558046948595948510100021676714188464908653098331612226556077851801846864801336904614899982175251842273575152546605045808613251830122669852206511755138436919927801362086742181089497739770580968176851986316857057176292727618957539195255883170320366691437949792779343231310491820749678680267511887598197247745010479611866238084460762793080659678781070903064535698666264532643098577497185203412589550440693822799036581273211340654100235978970252723588666404262047888501513380934663455126319477272786783031225284639738249873407058483169322265963510496170748354176049107266286201619714698238544093021713397538741431331282150729589418876447250891654504129375494281187678467875177781457987194225930550054620569105566021633402406922374967503625084163987114664188660084355654453942398845695917992495125166473024717003182172387695189216079298839826149481479101536328698569770425458345445397933848619754740742077041000361768066032387381983282012006871552820502028267634576696867828856337696907636869520164578689114207425273380045543694088532674179375790565015135506816702745155936318187445472248260871034662490796299784497018117621829402520846189182122282827708437009064827340447959529380186867240650031803905299567601253804947714348496011491664939350532098316528725678821947947709382806727551698682615109674477496677769737350464409185619939115755768188416232253354938356065557914994948672183274863316654955553032665743898770215737392485069410495984589224008614622208931352939863073787515786665751750854896953311773216598421069186756874372219528754530164038412507735272703443648956942861892057300082744429086577473446007862000510859478096204275576905641126401590992558878804042779796465266025408997708413411384783313612857591658889781166651050291684971809608939545098182328405981136280214050743670880255431665165958415821090456323650866901615810447755663326614590124040290522902668034043492838318475146232597321256506845654551766916502749469394675979200229359188464948888771874789814933100807032621453277307586734824965568656431904280458717458453851304586337301238992013450268745346287776924931703435547523652724930937954371950678960316269192787075455652936110059603627173705974847503770607358180879284418676664187728126588009735667798171752501606473782921542066113501205739180743677177920033350248870218478030094311852786068942393395441608512294201598442649851823122034346511477306441493251308085272712277031489238988141386044962545354738835197326359240676170910110049741747781934283080967625653531836846868015814568795913542540042931981760380451127228725117224730020799743271911828583578673610950408390473875403786884720069126268075322482124744541494699209724194269816047876586214250392620441698421635059220903392551610929291881168869626702557871128331320642496642756380215111383858282420810053352340893716388239659849115190525993249730445282467547228201161725748623603663577963247160722543503840104081599106594936619233101972281550937155145130341101622013248399219624924727174492106725748827589030704125714486851607245189147407941342358223801627324485782741984450948872576631575711212185892208073341099749459281389222733268399160845143565964379463993983728359513630046364330968232238923750282930061386968370340972861752025557661253756252584619507513563836440828363093087133128106667688990574789561844851848582675635319571187597452101731471857297752439004816665288839438206056505876117559333261443338355802071461655871533382814901131931932503904161676901369641111615124143293271975154627326694748516214335848263825048277721850822966911112079091719946199795158645463681109955477186995203716831719318645712560706085279796758107333000882029867320169089465446935040714541118362536216096939734284301438291147985634672292842173445500077657147722736248787605662964901706837928603206657597772153088829505330055281891809767964752774266261688135334684756792351534563382652830894450276940950724695214313072727042606927718362327522701133094220906664321673033858608469202588329221064880609456932036738479837472922923273842776933188235971008521683060211666105471312581871166310996161918129849537067197324252188981887016089507175053806602111097120079657837004583765083893076977661223124651876775393887072915930960056117155504242697236555652407480654760086229729635979374170387977900437516769800302098456822563486277470849985896953880939643866775329051891801087920165252065793809863974253235255603195896499511872695040565038135902210654584211775821242146124688568014843929656409676075289008545740555027237417874595529694112950113415556468275887965618985710114057452611309222815150251017366197619490576932137513467192397200313181243007163658232734732126540874191993232294626818984518560654151649005475562734119750057199475108460500541304973201303887232050208554779424209286919841204056670596175844282791329220161548011610986687628306750866415221280732446549461641575646846210611673923760509622203812834421141885401487828430712333418825761560580562546255868203630931466967915850869718842886845510235613080746469878575315006545977952956231731873588078244990728204877373146132328731389651844839376931496636009499588803698557625707126757024896319311571937502543699436429125868575369756526223416913434244372541813369013913797369612464705091536328480431917872479174014328850969454583209743825838234243806637647498009486701139210361552503661013419628472009417999877484258236588439747352251312754190040537425508286691617782604635470366451712285366485208710449964620677117046463639229296200033611241373209882397900263670440747983801131452622902516248692486889831985070442746796176581513491589514159829182676657306320994264674911972662094766164187973359446436411971919312372059283449098089660264393158753717356381530395764764590244431393081270315290572004881430910044203829254301857285224417790453277152427879832262072244130859833636837816980744640660810366411151938357344261761828911417003738845157123102864391694818963630730138899199717851271409082039731287401287847039653999933648060916299810159912448490986336955918609545994470676082536272144728226876752064734757432557120184479393757057789212607252098436268061381393830649605423132056568890976988590915533576560925699550610641571686507356011082473458535514968313450899916571190632552446491019650844218567498646235095835339091344532194105333600202562233571022313249982972183724177339954886095349068479948283207045289654357716272915455003350825143013331238062340671687994466519270577322406298467033581663460110901057387487143156561033647913571057481242258374551835840086546644788053164446028994784440090762385554761746441124575455009455135934403438126845307259075857067521728538182887500116412008360706022759360021027990589046220770284628199549097487748618975243159805493599852696483512807837433413756329453194640936531185744378556374012616275800921075828219129300707054026505577669845303857890927639517249781107517172337869893346683165830937073699369792885692970164122831050692367744745383690218032622766412408820492062503648238791891299865604253261239243372618459787808648474779937273606042804002888798659568331918006594494824718338900165171163622183682266374920585585996051815952547611567735761402618125111259065392636831269129116661033076063174830307725238784825633959586440635016656120787075153337883193955747478886782469712458568824796635346149915716721689175834679980459127088985411356031721629347452170742012432942242084521589027784471313900713214956195953681252269798097234303710554117763012896140101820677584340567739980043936923608605349253597735967831044844368264848650091737012734196895843537707870896680926364104326876258987224278555130299386832935149360252219999448386898311375470622566050316637127577820361256577266705981148104950420783737075698244374471193468286147502414703739949283854951486515126959623886968914271179268836495287516127102531094394129729957709751879251784626423674961776137955927743282582063771535283240923678946797932376872204838139975502777174573287022634118694542785560352510723940485837431348718336617597233085103071790299540550644102534563926238572039181530240551309007578027319150215022620117449505407849797232127956085983469454135634745737548804582309117336754311198081125005820454954885587308356029197873917289456928428171079804357845195854035650964496284069655035301559974353549280499587626024367623981824325023723701998324673452186175425521837326699008150599296689152220542699571258980728966703829675873060160207380320305917767078881455049980423249648101257162239965985177203478562690221436889216322455438783107022322536005223972516822855218958768290719056075110359582705392200214650170855096271925572256363006033629732994092800299791588675835353426247296526327585116593430827148412468580938888347634290435628245157491976104803596264504106678512786430349858297766435885070518827705091675513800875889752232413029626882481397454078031850344033729359457353922615517672983764652837252324845225369282379986336850130589348073039788237978830937337984638660764947500424016832852581381947544236147688114458188323516212270518287486506980414614366365854060357976371750420849181045671517280733135441607618445832665175854106457747724398564294511615670368681729230251673227414077294579472163286835899288330838361917682948992383318712148534935057986537865806319387737897662175624601140084040045740348182984777091074731855892503784821700535960564367028662596120373806148943494869867832740999944625701341118589460679554710185123837797191100699600040623808479720964599994049706706183665089400790836134690322952026121510904552798531740494597002916867927375560382330620911917967674532316674713822502715489615828765811405235684640895553597271979688068544938518146918112474196555778118107251707319332777320892772005939714390607087733516472790413988342554049155332324082576056919236421635417948297626693446546096576810203945145653196197807227567829281093300405578060816524765372188051662321152802234738245903971451589926844607634835299517706597923235890846464198097310612630431182914739996458534095235211144277324812007622669590188805508239484453750550338950201237365139289551534122062113341156463881101614814220457480522557305816546444024761285910437619495848372827303573491475477274380810694141683929210180661757693969873089645661054266628097664054824117246503268803779410556390646350435404722957141014257687551672214086223687244938905540373323102599110233441428930756566553243588595166557478458237502974633850914365645961422606863192215351457611203079518611422324404813285884057516831435487601984137188838185638610946102591871440112048081699036333079784828338574237539565041615975442760834691824576204859465390965016124124507488477270651800020182468433217007574573310035226118468874263696677001077348845518905346415700098092508419873928894744116661245329817303091459284995866918409207753093079545147569778550214146705600623832631362629012582895707251007687723181708326571849092654349377587503878618665529044989857798497462868749272663544371439521891374121765377377529629134670916797519028485485358783234003741542383295001502373798716150835353587379350236139492293435276959325977279948345445638692615972495575421183952302246786111274943232124500863966553966951545768911640172588092275297058810660927823313563399634405407738461858640793461002149191773783287724275722485822492831895661013446359773626458897368148958793752671288496900343720744368580400582896101644779506825182922358893770655225070894627257494149567603960822116292751895344261404741984768170265600338130416485834970340596685423663004069976734531012794602696189991366603998848973476648406081264988327750906799046334202076054473578914324805418518984379057472371680744623169460787426213997152072709719479587414624267761584177252495145572151474267810238595487999790920418793492719588889004569108356813145443109633905218790033787397900082158103474785312842166033791067937541936805806249386264727681961535211115957580077208132068240154989070570630025099424369619231501666531079613962201070741222659240072585345715474574590320423607328117816470779725142044546746778967288600032822507129433233384929111765659652048096833052637766061026325291067637049630199869746673097180193924414507210200291352167537605017103160888598065948334251023709085103229423734281131767094285336579221588112154960864118033227191496387963369700966469262481256949042216662670429079951569384167315681137958266455564479558075298525174915067518596031478789368951483413148060690130050298686158674448090928755130047873887528499056170341913405522419622762775657936496214458239431308590564677498123319489722789465399117128779473069017565977337791159412682499946183447446656474259260716544975747145339795871305407343154969991629597244341255442875265416739296888891288184520057577772749514896952089750522316201182169375036578215256097284522351398332263047089605106029999954117212920571068045207036393086723519468217481369650273223381896977399994149037985304395935672030353748082082341433237919891894657443882492174352576651980663900645239085974486601809777303378539234177939953481283361125730678557725987009842342229009749854591712721516990684497636505524183993685341383835628217302815728241305567549953258263839309484823402690669344834738949418554700264291408733465401564528515062333175164010725083396308120799502090960938816863923978295011564776808197055556095111656493840142182329228956882004011565814906747500826574556035921061423096443492629724716082943636209500869590780481313932974885528022180208122329464705845275673060287384954486836858480953120373099647651571721439816699566802061572872650510715682541221058495560377640072713815084574177362577083544757918105304006526904910005891273717378680665514679801452598272769199000149848090670949898129916848895166448553656658297611163407436968056149367952564417244494666694888738755660562827522836036084723625555837430727384590572379760624986297216991905717918369835618605293848542095779003914275792258423613164308944219781623122651225607118092427989918960030041261700219181617226945349059646362809808378611155830254322769045201826486696222182513886248745357308081319500142786010545050937128834381690832694045714381669701181536191837353649049814209065180102617718842305569762955469666372097438807907465467707022792791853878573499931204869645679201108731229856832331768318839535577205591776604685130632645694911239363372736965269787160391222000613072979866912330100028419415371099260926450021319151549336938724239071204699555069086284200377011547119651305178890713616325462831324229400248569885411976855109129253547263174501975227298264944408769236567704819100220293246598437021814014356477145731662052130536365167636393763664627481042921591941384800160277864032435019864985610565852712977471334006888179727961561464082937938212664980591713982427101866532068110168539720745894051482318153600069765066139505674439716675217426376666981406536911557332126973853155676514404258985871169624706513922695752562536671863626299586722869709966786652049774402791706784107809539624699400460906945173142329695719391242326333654445594511012906242337635864454860552211478649029441798967359924981450198426971675912037872186769468766664545467760565746983827930498519451046948952597781821016787219646107920128248735540385977237834316731633942265350503589831537289071411789331852497800419326926091678328341321357290215214664638946081027434959190904528512470022708370059233396911877773027862522521412587847781252697972827811895618559047398522567525325417947718173563607634597177020981583161324900008973719775154450816817884243867923901300527001785299803408810889030809231293455753804322546868454432500934333771451436021819914580285161565612835819146978820802579232948401492476568380219904924680380968770613682919030499576849112160266873068284441315954343316525417913716149401460590473611959865387539099946581063727915597486496715137515171902390288267411241271084008460561200814739774855908456095976334589633959513705140594853427124071144397578163802606473485115289969518084740356491650424114935959739907218884616930688240559846000024817639443363307102111288661822383782929507920870160273194483133909164754844166707360710941582063280009628775432502168747491107970058552031541414782031484657030264704349134325093166633036169045031488819047434600423516791097738622619167712525028615598306506864375627525948965651072327507002010539220877600392473456086003986257185395999381076211808871224621931850268408407444276865847093921942536764307102068956265717846285863369672923616950761454539143584752421064464401111817556094433537317340812840124226983912639967266708245467849191063344470788016945696748599850419091492080142606859575388893055149579674387266509617474776624655719284668887233041165472704808854985105779466408846260663338190705364082798786866581097161125586154596993695647229741507088735265856687215896290066393384755645064367521656881793292693419163753888943289804534753475188065201162437977593833432751790680683507694849799011592992407017393583500528768907903893822588332820465846746870298241968155903962950708848512546912508592449102008407808232799896137087862222714201404396224041867398653554140824396487942989774053021524937503338895165645781787259902108648751294392584901650696727251929057979527040277029363429564818137789749540579525369411362557887274649870255650901869147024361628526645762318293809847193125945666256331505763488238113843517497864424040879168284209201827460508395923099173923061945676715275251572341084620072946960581413513822742380134913237292706453907050964562153950545309639882970792680037703492932023332538053328016493019621475232705479608065507087975478059258430672451688066065783367438400619958862230758367403836500416421670884643020024757460524704341154745998928172746838396274253017762036818426249681023753530882372969316145999560632852980930603628593137526625477081304074134439524127156237854242762708866575484499791186533747388739879878532736164039537894973143839507079768371197402040799245300287275481044880360954297751628017721092117531238387502750692457173629389494071646850773820158261741664355457602335923893545693139211669652391468886429764106848145763215523095700170640612255915210514602397536968552216227124469319466308846966890648745148924516926408573871924709536139825652523519129245377686612876647180859957203329570172849618094659208608020589763837628108126559683344672199085411674559815698535156696502969949621811853346498849042545742341342403072957865070146408483681521904295909487965796761230607864443311021683042999625250634442200218514328902965096906779628906318854713278603151124553160028494681608652652331409570385136734378391143916462186858412352950482205080324149861392151108474144266540967590847943898450008285561998585025548789302073287469143199978587730957116933312834764474185761080026196922487287734408031481607017782968179281041279002792190574746231247366427984308262545896871720508927000282385131314290938975851209978722690331392369058333557454870533629259212128468085762600153422230854191639023673933822371247694068451170492365851356945030055679631554774065441923202693966514064423593360654490516716843686560266473991394981495887151252873334789315481885519052712691066476078951473767649613992234542461402769750786200760504870441235447197284801893112308616312568313305002901110994512934110838581226158176877208347789629867184360160471356084660630933988888526547547134033100226750631170004230769083290555545241975056230942432917239313468493467191492644467471050018001976422771704829034384014179666154881334287764479581850630149340266861577275386144952420255533070459467407987667531118808884121125500199966441343370310675750770219689484139714084222493338192247877741594636484982207785974379041360190612153598013816678058372407195611109907598329427724080069933133453490221349263712376017960498382093669493249110927829200140574710255225168670065132274504375643688556476907381066061310932414230109553379310920775146712812926914900457119958660379917643474765413644309645338703311575331960066418434847622689821090248065733885253996891701556636677279369797431071233783169190097971877511218456745903651305322210798320428707555746089554535292110773394635675701690388282470941659338402447955639890635933855820596010768285772704852023701177921257652056553224335770145308896128212563024361424420100548966787346997146290643264345691236570148072324455951475812428841210264167337942137558877253442127057459550346455936243235564875650510665678306917163882865379678767388570186723925614827821689992664730103703119804269768085778533244253925317315039639160631495342601852503258784039188621158465892275737271679343403757283006018229781994199943437659355386063031688905738790609218452557732690874115989556247748524942867004973510275074476516868915641824373913862705309933453890467725485300831089467281563716519737030825125521703738078167250206207266729957515236105997581292863588332191893717024207996426393120162319011409579003995658743957464680576648398605709024603199880777223059850091849075993912555453838801871463652912379423348932901255199793742676663765789496350469864124861234187820316189677918814963886802304148277804053994477032061757125529988839009013701735061611181507119866635294899543863519530194043888830560766243401414575544722280890417253466141290254482080545822349583307692442158023112108333499222991842445168104804326040982237725505400572730726243310464147353302176735420457639372295293044501003291847258893289756290215004016895826636068543744696335169623372723686115343917724702434563817187579685864176157577381000526943181274037141050630335419426072388563085534630103039859375829819103298770891446118591152090851227760937560959234493444702674291603188405060146063702127009596843849507792473299182446632669244241891660352440436294560655442025501763788271837683098907567071023005834804539404912861772528700243616825554715848115962784272288718178183821658415774456967192016947955117015831599772678879425530734999419667988184017651055950106468708533990750655217928145428953026964907987022658005272947200608465255701398120018090326410126591069531677897575419247021554376388272579154964392817301069495551179739933215894131518109802451575807062981435479151973493910130796706090542100785952737903822639534674276780255209151907598118300275188916999962179510590743375536208158208571003789317247462105274227230638215185676476062742782284330205554963085002149013929213512629050118463662707007030081643257497070952714860509668374690994800055479371716971446772182183294537266100236416277249475365791492175833991034120199158630208367765651181911080857515647433745476218350274558974946943801372245321201523857767555138319488773361297491722204480515840292959479663325180194491528094007483504121353646986015028669149180893360328809067842909433717516089138883188993438822809205151067461830134927612908856812116480176112047835858566818666505699538125277612478033821361666503060543998613942017102442531878214142581726816722623980693472553144761981972633690359681017320773785386157002272225060324675371305571417568781965566900152508586765656753136606531557008619591344080270401226064333245288275039163998285958111385534174227903044105415450448061903705244735169398686401197361682552363071074577537591683021235022497472051930676013674217097812178973044752302264547645055970742082509843129141614098080047970957167477997062894573846480410428789319552361448694975773134659641187757683305142242625882651753001866187709061809463970035353243770054665869592984455139414413950605579045813728581906110155101425556182683395707290578297365694221163782324976898285390950568028867063299920618896500444014769007205531010055643245245399379495780308296599342384559258442974777214524604446141021856993324350946401821590840988858142845341850939801063500248483956435310845802004185565367098790241267032793115683480109646139698944318539591316814835127835299711014127233370434359990080171419501112318382570338366905785467630508599263103203693859001794702196544839513098509699882736404085285859179170923004142556907291883183728618078985705801289658987269017996684889223059090268006547512956920942380260646102807777313172174154693651250611347345008903847485147181368456573833883434751512355275772070680208241960281690996319690870380712540514715311979416467208974756517957555305416254293556824350599904956020390287466346295069592906384737162870748109046657280203345831977390329296965401134262950697010276845972339727789080138160981460298255383657386040027117405124839315915905983062495598760104474380004634480636904970906996118304507669272310289972234383234448517818518603837679660301997609083668179221438085857498973248377538530122398095360609458110089266059126611821565101472605457349062883750043957002444622537962242686995691540019532320848953713782693904095761096199188103715857791332124864226335275422685860976717678185026799081304444008284868789614649128445900248304281875716864593133554452209038064716251737644327045850178152461250637769824200848394480573520233744859419091890240650322559444904371367395904602552287052446098598151558549762709499676382695916354956341606371728298695865378551930313565950496545958448255139270771389705470695876094425840164214269364819290021472234325165697269611870165124543883701775689855621587451400660564542746497937780460765706761273261245451427344749852364580468622940976504165148724910473537410024205051585373420970318496484077224233498198146433239366538239456418105515158261574887601442922436405918557280571318483277279555552745901858088530268110023550493687594372471467029529597903388114180852301300540046290596127637847459513016856981622537383243438764454306892532140364990992177360306174232162245274992206418754334364083142931632406940974643283269691268048335594289555954325344291651569175983420901603054648936006704247874395861479872595287568541257061588647930445934871132978060512284071060511726207976494139465446363148961261605112784710029663633240881122283925118060652069708706048762797996877337912194668694757530486576363921469482411473466887044245899948214343094491471905327719839657940644975971908067216599819750645593924351042364465589256942125128333112273950569851433189846195516834136479985360889421311854284306951018759096498270725416860826345436005691332543644133983376525784987986962475922064660533397850731697383374451355256736446820757971247785538277263987717816986012564335617859601509047519291591198594945217320686839779535301715627685547721326185801189559956502977178316703210240392296398626634470207063569032947658004104607638548664532430461913793979508013679843443763256486777103154729550334170437516665528118588161531488817688642343158989472462255323765131668341736999333399595776520049729075995197302749178204654104373011329020354295914103064613225656355276781590021129475899300672708222376138269307752526349751794921609598286646322192356759843510377841126730904388895723172272267315999703855059378840022391144557484338689790820758502300369444713463791593642320197905027450005596863197811950005238602926565714275641803583662531312168255282817763629077829245858328095869495582055966268750985471000862625895403944249302598651667909477923546991436784100561234150126296697356474047547402137503532364955499736654000159045863532604776944682692745320654806641545440416666361274545647386322366035058985715574596185015406963162728671844534138966913923905865838899364886327063970280971210998895727612007575036910494184080357089306987641478996653142015599275359335891936440089016397785639337237284872566238352295987987213795656679720584803057523318491657368401876180885477275225012224236874634962856161538419754073974690992044508323153975512288637378479460528135454815719960383717618329429372868229738641933766087972923584551393780568866533832536553017549482220208387154554081205246935223572643388680551219309580677859155341854044810391804499490163384824603825535764547460145600248299167023347447516800018295553472878217309261388781924531169948979257139625524793354220099553427140762021784376818305637786726977252717131855106566093431014468685961809705857794031511805073352009672007275380066486522398904549165993472335207966152679267243059482505757033514674999858401390041637017729934817830528892003629406716147784591037943442868573209379864511796475515872553276720150478238669116691220123607956499262936763017901480569781571333985272082099318727036597131549769567197542542937207636128079114389329928150167174173005249206110681236889732590154862355705440752622109816144661804505620054932107654150020042206807946493182890881033721905858965827216785164752152017769378040571314856532570547988459826495227540716585249262046496737061801924839527267022527915890568685478684832049001804537073264753462968761404938671158620748903029449393496723989254072684392531486825168246460401066138140271723585022150984342204817592054711424877626858463138146971299350232536543189258453176301704410587532490804828692525404303668607077200383529676846340881859280591517500919290498351362780118164776699004038875077723803116063872529666025552899286548725215313957187313161859662620152996645043335672412851051840795679953251479464434493146766670138873406207038319654282280746888445329571993434329902374744034327294007626027895820093322494176089276543955129963981973776910535404678996228733564419195743881579692496090862577142954409653686690476674364812666285711407651697159980592070822531788078100761596065750469937002342364579505701069788555113342424152440206437006580761567639200558238852657949459263725272620282380924818162852317269926494663225496375397756246272868961739607880926566404893326943968869367483629563789141856206912662044407176712252142534771650509640146451147126137399641682061791940264741233374732995452794817182249574144699665709981501014377617009819607020676552500690016849133840237803643446037533580348004909625872947427468963490170743658694026722704230493077410490823138004757310336187097349793933004069281123809406386542959349999821848346256274815373442009883420293161744372490781465112505642161467121855638970048791054072092315994568033368487952987281172809988169407155390416050827765011099869827451822778017662283191734433728274779088727414649935678090647555927881512170985235463400564431799877583474083229133705821000303429658517993863650571697763233195685604939967321974059813238898156036345801112301715911854772629151062086652760236261134141049115224730013758096693813675495545657230508553739537753085161656110262845090740298475226054496966822492837536618636791431426159268336830927131952781786381537770548297510181559072005424328207971950991512653978618070629294030292359173309433994287639104010667788730082877982578975046807324155937712619764028991441073019751242599986664060667174300792637044042052147626166979964977982793842478381350155061349220719603938272275770833620566357729806795148963090511512244089992862933286425783180448496386510972138880765203467035609380710289144777395388481774861531339739213289131003694555723138008656517276788929265433375850104692902048036262801288876729701637968547884394375438963803961439489988498792406799659512155641729244129304957556572684400476924564711473129183016358599143832660144669078004987094823190299531941684484098531900264963011916076381239036098167655768022611687618146137528465711170807448583809995687410945173036523170590439146116395742433086797770656763904074711339609408235744647413863980913889367077935609019822876010245021121199164102206943430574289039391358821244113478841512423948060512560810173749540200452858842775287461498560852845088281249907887998843948604068766064739090398906416350789452291968889381497255187109908648553275320024012437068653536188560262342609405027191992193618974351854302945107094529267393617025982434380321473533386996419242894981512947165561644294015868072520671584840674199664076529070926951795589198707405001579075374058310637185710774510945669758352347254072270951678266568134658155588215205919511435233023758429123460679392838831731422319612744480432907867913094503282244459469797025383957007722243902782835914610401537517159563175791300342271191703931426887312796524718453688558104863945053579522185311008833159589009380422958516685708767533334410973629458127210546201250728919198973873852098542382695038421839014966985459068862411054330641629561406158233594472723079148653558881648249187179706016747701871171217943061769138504244039118146111767341500922894874169907582296993600993357018705665161086020952311807154705096846910578597563153715053353984499265338492190097857122691248604751056539335293901886566704773636191171665051221234634000607156576821806511364638490692182917966223181660678369372953969827317165411712011686171789748210525594689266148142103464319135943577689331003524268943104118515870781052375106161378539702727336413314666708138977831402193453433565639232494978106233110051318732423914814576208075926633510447004197978121506713978359141553030422541676846810558506768794079071646593469854782060624874818189501782490547163412163226850653328347391648143836846754972964778536297683834816596250529808786044054005609618872571517355562043392497307909037288117227915442714905891097847886474501228867349920537391365691926856089896383183448694354692109460432995359885629859014897139140017979054937116095154718549206384338228572334498425739484940630206299212268822966737194054379996773934388210617836789583560443425108581971671775801220509045610601448231630155330319960237760590988473101794257329096161223129024931715743035605029598728546601531421207788042200999104845341541328474251569568023650043264678311629835108737569289813681694943127545416869580004527348795858772148012957192935131002074365389238675135991913654523497899611519847137689812335285354404886276237224161329247834907442463614177671563707686694909348054402488465950984609605153337899019172975485294908948204630156109115695016191023831223068928983596157544041998374835308143451311681326106841002910866741889776827714767320523118749108251546088903970113011905412636873984235423734730821455245559908773242489007999814351060620059784943887287689147311698886102877268703899455796418629733056997493045796850285358608131370510670918002484366065388072033392238632033862934348511625880890202576522340306885354622674011459492502292054856088133826236623695407323674798225332279193141573563785442447253965705268762559685361367090996092858240723961801590666460793062272132938176308534079481790940067705305169938702178107692025500672424103500483366041772927765620582410195939323270859661440593181607931955050445250473157417367540222346663193690340340336188640046300394770086617129557364320666858114342940573449687597042349658231917371732285857759332664587322566445569667485136128463810055227716087932367464857987115780604782526659869015246187291738703363804234840994369700560127748460487292616662997552711281132652246739929464492238768348208095301615084224009914023489147094688286742644251713442071214472954113830503229684489889876959022312146029433250324651237217341142513042660831534897560254624080644773449880151485856143166640365343478372810493790931803746119220993783685413934609070937920570742441853488489193212020924685932071687127326607389544613873955273100879285195301024396701495949962054971793492501317988037097650356819348834336660938414345306034883964348218831976129430454261424259992989910687780212547902334469838082351301496838992048673216468814852520890475682553092704701505478422948602833521249459792031531745952315944640750134638491484662285039695686638177620894349473160793818566910016375420069021949642966759530432775069013857813764015770501129267854068764290279945960841680253630451174196563109826026102535484928968366975667504965024333954783093840894767390983552182947840225027507694022916731977529832531779331755992315611163105969207794687341881971384774384532152584395855544744893417123237239015462248935315858548861059517465969198531587934690799299102560228956539405596046525135188341571110707037182969998418597991905515459718761233532548432107076432305167478021659183127493347113048512835510559696957927279743184248319045493595797277552398613507896417182380354573457683152306311325370195083036825404662526323460726864151223656916590829713728758935250393049262686495355008777945976692162887716397322081460961838174460544622578680965561941188893474944293655800593010245997195850373279260862105051705226855975631341117877697245705117490005820176233712128102026949999574639921663528900231485302609531426894266757285421558183585846446644686440095098571788772172319850042125217302090808093148307096181940495475726965265163451533553689833757662637544176447084562254596102731791040042853212865060765766315130658922668255811914530304992631814807187154802946269850820463957286441895953753365229436567266954328808322342767967675504087354969414121203341771016231508764354900359968775178967863688997126796090100378044472466222153450824845441806196401455701962383168271786602804941715658908283090925859505784404559630094934053730146695781985397376083461376196493501060880733219643952570607809411330802764151167552281522835843060421631125900030748534964495175629354216891856664647202664764037606892573330720398539254198812334942142481004409549513134760084830593537957877137502371611815216513363036718605098793713952078780708777887401799463540795717140423734778882854380272327550428471712130399235837338398095544188036077606206274001064827692477083235042032096525917803808361172472795459908471260748924552705600262338809036533431068163936297923571494555082085645135880401369977705007516955759398511354022247946055310084485344994189087931243576791291213956152834969511733235278649310813371973049659285071212701375477020990209621997615753383263889892487464214230265991920636972166267119831188520444124478022302294748483188338019116072465435289812715957206059793755154594965050797449701366563201684967419032182166129951590610953690180925260723585422736766807066746451208851641002668110277135312742566996703486181878674615140455711742465266036514358392139131121788612125764827538100701374013288982596483599312440850531943084806372401824142007545181554090370639530156442766832630716720175885979996373118005096823426792070559504729039645463207224018215942954883720282621783478560174001493305183149024561582363606879247960449292581044824067727287080087715685921128729114769978932830088043045223747844728043901776857061816421431752744496601988423131121276541903032806059366836570976270904744454329295565915186238987640458119451349088773797733066125561795866130923846694374811211747167005774460763320392730901608092486387134985918242629312573432941344952209512117395725376510170310827015192046899967224000117106333582843096462437994742508495161026054948015080096672306397813338755535170424876370042695659670172052571215681340714137873992837788281083055956766340626169538386187975847432230456585133296958085217790298896634892701861085364710097115344450482215835103783520485392474494325589121768087673673843959437598296008981975013576137513608080737723999153583312840753951578113717135957521001577285653684649833989617044811013582250784231432192960207856736258451772888910439237831776206850146104929077062929651908356888773226601373252928290224552827616770366880386098072473631384491040058731886018963179628258161470393918135372677497948983012188950570659821560257383295801713309548253266510161533288901313388242921685473985959679076603687750270484051275706997764935476426166726091166432218444290069724056314920507172690588917687925266758305096530384155989256297707950747308832917073546141157770846835842057556413435585407883251336205583958975527441060918999153426710575286670819657702841617951654684460695040063884882831847940882451441014218644081927362479718832469370020070523272120595638397857763279255358497542076460114821035987545934454141329099268141447394303037435662369182835896181211300142845808682959548325267644957284696165069418437775210538788008855109842897859043314589962924035491225440440205881046623754887200643703974401799015101135497488369641381391134460480783730525250423681911926083470368164163728904445781187180608517712668010984282996689430581463500883267944505089031800272872847551222746502337577039568838288844731809467307952391579561767124997691667001689666021622788054988493074026286230618796261650430614792707396089360541658212438072215594998020749268214844326340467213553312994968734891797690634233822208996366265903450186177944672119619352144149951027531494924512402115791033273736131009391284116727487047644614059093969334824798597441242873349240876881592028658949047253434001735570704524368062326974255651288542733197923618732598551766231616128562623724641301728525445381443327208604528062774777336379889882101846935834558322849254430537116317413785605292076899296222056567351283535749920821304628580191682101547078848310713377032793301856982772873458745760260188779730204892212474694498442251679324140554617307063462284676385471818153456840198011217996682193239192865645241801867521752562254481305060682897660218131788133491387526282052398715445348846665005421844142482810330808515670112180471847119457426916222829653405760780839126886847963476138620640292620995800931140042943360696406114191614052874208210166123399374672128388338379340334510940299385521473257026151769621435867271197351594453502855433864092638197203651175057797787967170272874839842826781553423757984357816177180676538300534332953843116191523772694074307614004265670051830915989758639055648797635469414723408533827386789638782049506400401000249976390581910047336186894024821971540317080830524280328375312987351229408517890071072658390088144720395732386558530413455846988102623925191293233109313664100648903428925662161258368089047801531329158418353021137333548856992034031400671304971607683262906467509645047002103222827451747265977166194166252046989647509746552658195091210439075540113038152335451175216645069481444920474031763774295896642182978367992940771141122459216484386801481492031183762953080118218588045150068449303591846391140211201516611702030375514289623816803710921485557478407738859408461167149493993190689507551849800824417828041784457038833226052027479038241348250806454755811311356267484108091735495022142682189129371239572836290186318596976686247596474115518502603077661409845928799211934261519374085394876411276594805205019216928619825888918229052890666081566803365530502606320096729093124279314777838695873591509990855185410898014758230532361148164992939634626785664651717638896502913859666134222881201821652545507087982823300728859798541438280041683880245831500666012373562729562803453365869584698178703521790379734494343092232126459047124208163375948154784322644142600340974652522826381438678416736297780459085481142284120191205893816481720364884960341706124249032150064323134321428417039889444419443834521358855083287825094880619361037341100526171696498362857996056998590492433268379333179456104197012551133852089168351524705831915559036420473764814494403444409982114112641049667865386101243614656512889040211877983953063139620711365790698575242850757963068282153131960268714578619838808903249475911417468880124058788053209539349754035609678890892133004739728479539613775696961355063334998113811690371432074167395111820591285170029491417260325763625030519395442444673503642677983574350941147632470334166256818837555854177646698840442634363559382727590823598813775204771041078784522308824075598207909683633384854555652272722642550052081609280062214900179336213352186359673626657145547581244943176712661083750078747471320896878848460914759857915575610131965309683640841711098838381280653883253221072739974507430584069710977061737262301560475157719652468402365647145779121792348720373514741883023421325000085941250711047506237896730599831933614484683043174807841280032674839840499464836572530602069681886560568158193826121704618948517747012218211562438285885888360957237349821881967929582616203578389275848379699115036363201248891897668987449098890098717397209951816908528542093368941651250968891198282998190881601524736737702290022917448070693743096709133888253284872364510446353803671722438065224247661472819395277131315366552648740170962094029332374418887475327024981578456919263235166346797391362401723820881150589573027373563499907025340172136278541680533088865525865854009232512551417297203797192638886007522470271343727024903287805796459242833987404426374724242141690603133728165173634404813609177029914355149624055055946227583086137011925811041722494303660571652389193394946527715046663652348369048208500439245419288898673234651398741923125773557582641073893249672554781983451370801849671967560140460207592497950239927005294452667437336215814906172582294013645781934971928724997123083536577265935032737607540254931477384304761847412812739575755157253774503008504258865814606319004825609071637132227134808114155516501736228239995126275722540559178871383144020809891023739709635193783867582150818627162605194567273152095993791293730591217888718243732548243589388685783481803106323984664771682953569125266051952414724871077425712545054672895209866061607675702084445177230542328949531524801350099326509056615006437778468030110286449533799398522816520924325833556493350016156529137868002731359329093525595848098338204654282801354639398618290353762863134697872258494157309327636636952087996357176212655285035940551918790767237687912925454684281545407657888760170743393170783435872263742409631328991510362576481773070692665517370179427562488242740726650635922299753909470629258703427371538545098640837188751108936869910190421905147294733575409514857392675804388000256711594816679569188377039290086125798825746208942585788112774972924330656755266503156224850653704070111250204927362335906168439780866459529808355697179972105801940926040627649473351766923933237998681091975509361504694076259099528997541395478348212795506677524315583608531167065430366003464212829568887533289775480718283336590182298630737719714475419992344026203557070187144871183437208592655145060670120008610588159856696635945397949527376773674851502588409539357723911331366268432051500591905765454107051398923091918253197558118973561384266129821807241998041406340713953195843275705798931082784521696144244792726107001052750242187048267322286897796235175971998412501805170212332950765763139317259293777120498890509971249949457898826251705456430449712191890893028711502450426116620155106412447953270406721455561044556740296790715808108406821607542452797231832430129736646217240748463693288042022739046421303030321961708094237676994949649165869759722310084625249115760702204416803684931672209683326023115042694540721903542098339843845871068967002763453630878674005125157891367987552448101826370124384953921502390593891296774407819740426155654785513409189552021802674132586901698558260189377126036768406515681825377960555955449851014500096597876802999207912487789352999900690558428276294982268200705049134606833442769921077502087614801187848030036197802976639209011530869108107397717768656378434409635029463420609904802536517629008844072721723784860469895245912972692295992488308260542316840627421530088596993566865740344985475794589468929496542749712859393090829375401851154157987707398760775081396634901015421923119257949163232714081243027136208441728712192565500529792689691396326062558108843344981952701456549222352219327481930735010720325517109597544640835888603537221561191759087275604869512181999365300650147436408914701707707539913734575589157901333313294985713728089799134344885207953793886872324739586281635138518724876403861712857497292275026123630313815182886369455161374238104513633218354389468953748150726292276681033026420942077314601509135421323303192281359569590192130641086840599793785026206904764812685706744185632966256725495326153141377911660408658293806553798190180181830881828440769205146438037438823027372239983798838248702641703466065197435234999205165248884941930322050325769666317952552327478197370796749921606695776928960678926303907864511113132516567260977622161265852368947522308595135132041316879793355006521627436401539743847282506445401167761532977702926605407133442149305624940534222152426237670754738073684236984139878401648876245123034761107526249547467013262646539617449945628054538930528844284113794941170914621580849118401989071625603749498683555195352330140730251083169243478655966264381309561194621106451761133704130870580969365914482990687424058123344281102420876486472797523106421529433626623124713778307370890339267488344402396719014459504468980499075477325323210042573821981009917712532395659797588201909719777590182879079861346212126464895843821453396709337934102277608235683289253561308446500964704219205884602802701978446253270316466273608672820255951206765860994248573047226602537825214835935956823863842630295395066653812529160758784519467213849746894114155449667174059133229036317975004883040894457528689461664241182130249385808543111504719485937609561174293811973698673750911758744350298836106600184881262879712300076307253579847841697604507759221462521353758608124647803677098645518705843935709102184296902316945011675406540796810709156381118095537495161506170009361320665383947794076072831850281808485977670262293891981955790662241149915814837715952605041145943274987373732097568409092396354293789266802279099325027596542600393605686896882063851836061991391104778278530970867456172310166652475545761147196692842705942265370241410267594627398008605690943186827767056184947670225437502222906664323722358734636745493770449956434607156680920894506087097867460330989661143546006858411417380140238619412910129859928108707456266274403890142347292657368298961241984062712920348040464051378384461535446337618285036554867166164810873890707443904836936906479108688642120956338494036711814866997059354167175416149913746992434240513519767604490847029584860895940562858065887425365683968009556192448851368770716212972936332915716462777142542154039692512363496316747778234642143250191623147115149999081743479643092378888141557108365465287689507294587740420031607385925728968707192852175385511690874082365981261490276400695230861450967000382627946940222436558748617538841505668649476854718580638086049408987849697714367747969956118656438092956524430303910973958038346101510670503878445502294889899374751644524690342317692502533041999681373477331166966205611786240059009624421265285081029640746291647825404351935308021695657364716354288972117375006480606571942741768953328825421185043834363609670550500698507638732340718815006305780365252315459953997067027015622526206052976923382507918691820758435343515968057615420228785863239653829400900458810828746680908238702963165849003683170305038918960590103844047816918364693009914237913635486521283541992045865281522874429674514259049311127278687064170055565081857173503777877945427198158667957261613543294963625632277535186489846538374058306449616314272970909942476614379131139657885757991882665829719692388318743635658318092453230738393540407678101462155911375999327527227623010378229976746992416017882055781380285653697886795717391941614947452297522916916945290377962956186010720632283538032717743173204589253058475014795571539879371796009452816522476999490678190261888924400451882196249468590309555001308994264939658058558302230104067693244186742076305723584447935583512676520865621671398407639708327269224587667900599665698494349096596576521235546922957853634756004572431035416472218993051994198323615960100279650823515303495631004800006250329759095460270607661475516873020911101355524075094468739076476516734331847422541672181281948417341600216695915144291613669096015625071482302480411192121837347587435341165051315906991356243123991318575947351028925244747729097781057242155932797610278474464087974560975049245330774481276045491468749523104729776484830204703154803634923386782922849832702343728276551062799677392598454897511162526559332420909037540750409920777910361134932418486397815470300439305808549693646691523000113960617328102466678242617416431860321307176671429720321932635476636797582964077631893274748948504468621103856573515849040435580800068595305884155367349189509250444387367384491458653578950882120728724853392192683708239702934335516719504063717185112559362445750707698506022906230073072707603209697775908358773501756389440743408319014931000540033790741180748120997726746024036413891610252798050542971768711240406507038850585770523414234738003281566479276918631655819369890789291925558876442570679308846565534720915405096133035575090163453097428265980833341893044244580705047218668169480408373411487720834756960961823577039376719042187344086909484317678640889023673638671862845045253839186411748369403940878576857598769063757439787161031711234620624110467646968571485086087220820818454261928058446925735945281981609322705109043745951451834567374015082563072417278234826720120768959897186601940282366361762151327319472447188446925839098231008598410888004258522003237704825713908737898367879481422226571302210021364673020431547561229277282972532412962496008188312388653600383760359481631245167139802172703560403996038245211726891127119461842602884963224042655901048830386030603068964134053004553449122207858931852809603940306475338594643558880151852776488019854287741122546545442277304487536253163541001153580177997968972573943513156421965789347931058525567585068187437605306307896281165163629832305727257926414920177552337142704294943417860484695653786182802903872381139027868139476393460382248120462164083488169023605004564443122385029580929823483391555176029216832493870667530313903410015560388825476850066853871147646154331010968745175291933756245754257868360863862804767592062586918986926455537707284529882675122165255950698352380595966676700799900960266400863829808137416121699991279964946370608918650939977935501674463512419268593071630485525921230518238557271488687546373106278752001558477984278862782065444992969242332084090247761598149560684958183596392545126651924198938149958513307152632414291935285089070343206210988051820220651125605813078871351182842932708549169151140377558199573125317177983608639876797728074417269285743695872426225763861810201657856616906825937558326839743493029129444834618562973699261463983092991580365137777668285950394719109705285767300638923429088010305417555032262779129699835246806821359437176858978253344787344320459417941635196261746658551106830240202696477274422225006428701243317755698744267559421586925967064800482582935061487336639167270311191536676050403950848640428764365393514816456690322009225962716626515043430776673829540081931527670739610211513407889753189886763682597250642872458273508441092902212924746816134941413482331590346912593438801520052077924183269764803333558225792587257471498994435419929008835811488274214113088817465286282785115428963420634832987374916885876773238064732763125029558552948073147219339365396004266157584680861733906244845553599000405525030797649153830939217103582715619312227450288839097577444171651555347112395815738704349658115062543190896130227996517299490116814641657894411959916622425985970091890297981509307781105136426364862669497279289710445971503741517389340308372340067677782036400709541693174825078820851801820940087677170049112337961955370641247131905056124524941653310246994173274151562269537331557524670041528832695711305757705781502744525229074606129015546926507676141498556005696419392197842040110530400821224336084430758270182691918261123214110975982896703692750839472748780669241692559345007462038938340333686084875378809157742229738810917444710098616663275524711796924904648221271959678773656995021953602211828013832833879033645466752250933082614213867826824316229025643765652844935472998571501243979152923222130699230365982838944732369660110507075571920045393550394637780573471668323914738564277977625696947813034525845799817244099829656339664832538316248010738800555907027549576496291844483680837462114302584506552112595745162842427925731061750335305166160524651209530834372007617194307453445779912751608738789743073899133515457860529851469691606758351040043123950770090584264493640063009922462324235743876449200841035191556868222787376869753173771485085229743021069875209635330529942832183790595239114632376737348040703909162893375677901902518318016719577452967756777259009163107467863585857468811902050032950261690601217724505095415974873141708766762223840153919357591883332351297983001643252966995719305495061085897743165661162327373047896997706910472043248461042153947724409144056086584510697537739740058587932124938777516991317339312126480799141916848398434517633775587702491302283935654911713320318591161789259864486029945430320280280133142920640361955281720484487484628745051979282581336468768076423370900010468257338355709287485683625001305016635776214173741071927476534198086044523162579259289973997341802907701448142807383710261982760835572607621660152395269899894201905501380922314683985946208051124574253577536858343688612878617791862034308987956658627263690155908065918933756887085905254123803091836051110786599269536819274026893953852188527351298074590145507900749561918487929957735985506916121288136030419975981730241568432839755114150211292992726949989567309527220519452462665598295848420960214603763698490161454864071570727658631071229686019459603049293131512007299301287774992642136316034578874677030748200623953703925190960136677563959642045742824572410376782665525097408607250901594694706968599139843098973710932545639543614625143670354847791848323241740574586593249288348001041296671737249935640092107654169315022356742491157229603732004273663577240888219638716200272406175769772213165896988329852529848287424159541667395850774862207117056356435006231369893168574609585951370948028191846603192306965433059625040067541258082744458396044767936708353730487839329213505117323201915843582251474253264421466896667520630339992060648885923611247643353899247950230042502694476689805451150677617874352107884443381787038791500451290053697004040962372234774531196188694998276058153898705453389718596963377755249741984107669772997609834743594278519720771680880824225602123808224637574939564762625650436256998515903449458401363939374299870570991803929159634496802279183468432121115106055649312936973451989506402762450747169153608539892881811654833207639031011930673235567875369870657836237232668468270747014423598128956937869844140042316874301933606812964437435578834218795939875069935914922167688677233178007333776166177911894896143046359919441861043020001458301445827259692262166325365481425477636024340243457713665175381187010131828274057802440960163410251789560474030773393095568191522873003284449843305032122758526768099031000114909231529891425544958125770446723109244081141823945959374958828386953933698009879780088791255702717913337946876197837365599627523030897791890800423597979832700086816273695067053642199956750832699274524473598055320822744576760916265390319890669487789481368852974996302807186506940359986272014869235551844031800298612953033405526764089815385503684566486548329752400205711697176122169746960804267028788321325997693645888917456421789506822715519513363255242170795378645596444037668295506866531515059409119996287544350512583175597371086208785521067603529517196536086592137451437752516172571131675578962689712303945211214958449359115355686163118775913187574616981617319817395899569765865092379033827498156155593933058652621498183587975729494868588758475029524616314882950805925831627810522270510639686460626365145736474633615432064001112704075321853863905065727716095599152780897195074041685045605281599990167445901603069137215509609158084618770171258411780807402269589354048834172432819647508966358387116051662856561247870742618766582184323636978242494584278876006023949379234733810590838787615704072004119030297460577542429854313060673199677308084009165059984079695316160234748747813321751382428578570350463666751596208929857426364207262290828963880013776608298913578579713631658592068814873535645350768900011323323378307439904416077479658340645649386997664583352802787781370005735890947599784389418494174367296805923357648083989788502237776836556233670194577653354670532383622310499053902460321452781807403986030545944704343632220718820439200799572835673194563091612749259005290522199037543020542083059448788149708924441929421039736649381196848826475343942239347165026347847812146356763870942139585455069584997448799601610610482386133090953075615199928411056655619382324128150174132004910937903072536015986277263915310677143502740195516406184985045562981982676247752008895012184588423287797275822547333828768376573267253338224211214032951780423303906136998425540559429666820982502310680677843874294569752432286868054709325613108869381606189867294864763858810741662580293018918536675951042179119417123625106091440453990865723060684792925460982294281769065098376916292464416274135639087564321230756986278861421970597287266732364354616557627778485569824268634604169237662758156487487919587171517958024465009720850603443212308616525204145127737453645833847629024395527543999687416816073674547559341021499459210573447263361736154920440709091781934694607998624793157045175047647720491058962807386448871864282038203280028791946020955531277647482972858807864522668591626609654738701304082743607815899711662097392758170414716109016489775075122638781135808545887354827237426886421184300894725635662368171060383447590913946273195791195820793541278438103591675235007187138837297839227937018251668059239939833322121032561240018910661238590472802151231725361095519733280214148532558436372958637525495162360265586797136630974823922340946067089095711198755814283677639576286397386512337484442066752816058213332543570912301666758068357133404578644585110224407062999195481902319244666254089831974780361954136278549141559691387695548101664655041521303866976373544641784714751175043429913441982864622435691330720209090387271411651514767890616893418367359098898978096449262172176960997493380209307415885024313246453770146102096615535836448986218086535674167910528075861242792119800545276994761814679583676616416419342484959971820427253405795778962167083401366636274164391798815045114595945286460929519343892171089189405266499394467848376231467118461477082250488058308142540295539554448474428742016432162865523110279799174490181331969984977862067502737406594285185180104221890858262576494296294893200327812611312045306866983339984225232876674790724944643563417531619321987021599534113536067888731604831414032920313358834290023425211399545300710358022251658768953274816140991665172640481103515026457061378514627785838002653700463344420741080524112266157220324535559684561420544695808495439743948526547694943496928173364909554838292593997680566198587288717063837871678659820121774464581786541831969071377051688748816083508615473293389201276363943168354508719352800803003809243821399051271985409099690570372285985355917976584659770929315599843378061748571335978600659021568691894957378432831619190871348161101155259013247177923562300234308917619340672169715166827588955266867641288187979672142748055654798248726876913708358412392671507454041865706947811489753114561075166338742140130281200943161145236125606616586217122556818661410014297604276838608565746085187319411059229168443226003362042655753760145148353984288508281962965284888900142303195421140907719465420046751033031702341169356922289477190327503393586739074368231122520288666828740628645076385124167641227598124667989079083667633849276166933996327621306543623817213427975311846088289997814718924215604470592216491642465015161530096299800548457259622646513074655194844120370248459973019698247077932675131027233306709888514235824502521710730410396053659972472527200469136736778471254753965455499226469035309376008955386299778793712580177451129579361283605524538517623697020535973434400667551510152022185008673398213898724577977035004521770870528195189964822895252222492020062741105433871267965069823014636016033906721252315316104784269343338117943238571920706078215380744709202225298654044707750953393738792906637663405006398653971914221493118138290674617006364933863950471573952042052366935767126663460033105830183845716298322191665515994077179652937173900790610686397682747920954630704276073534973153359116956974811305078396217469239927522185416573159772134259277642666449875989007089636448278586532525509222273927038767052661808700670428289658934339759391704380038127111955036865103300328234898323501575615637133916380278900442779194428744339455160536220543362619345300890044955047133189826895168951023572622639869780683740517386259075943855002072587957932649332002177544537384293823359483589365977396295781550278438397084139949855445595892610586060117583252967262281540080995706166057849936725772877879121986631908554465524689731271845333501795235365317085632313400002335766667084025130396673437000093950716326739949839347060060062868583530834381544860813049703811228754726955877005754939217798460204743342138241684604532929310790717742898658297310783404653959679494782617833744545355153635086756446945983495113348687040727075349323767291014402377662234182800940720789449753511374201968146562896618141165258600579467514159566562321513846259468285051667662898319798733948932902169603216325218373309183549690590580209917616269880174426649191541004225394471264658010938109608166387912653393513121387453196566680821832265040074032169966682123521938764089592662069285290525862815455268891203510429671964523802143775311986781203483393892997874829821551024214623114156790873331561289360337711551033286718831969993090990548130462486334322874406719514172223845235477452042767934630879680838598093870538282901795137173001820359417908073236439247695537923750488531747676620688370805158994591828243581719169284548305142798361228593151623714473880366726640363311914209834792753316464575348400883126079726926897893071714139344677999756892166232984834242210831111580751922021172530630451989229294796355530023454894131323030616770197796814911410046719325368520819225367379472742357394564798322065392249805842934868696406832031391744518361945429306772408441497242250757713541026419102278541922007220005733302372671429965276383222682264328697964075361414535214616621939919175557335126306341353864064378202327924052172822385414545980085812864124509461468430322003875967562168585886360536521861371103940680913801738934701264629379510460345751280690711975387711092239874424366692238022438741756524966290318661104730775726715638423493864241493351919766654257466227669598976606389794160672461319437471814134552060927533508427808269398989677278080277838634008348427065753924692028303592730557335777731115142957447292575037151464547105057151523900768900356665475533595203554143222667100809592807833661875148219318093871834450480727575608889284737550867911899541902328197149730842128073125952609088120726765104422230373010372820627332120826953293456876114737531096030530057886452768197634256712225757341002368498062591060248843986764972280122509441015332106605451149608170866930355381738930669416954180649185639111337126281210412215458637336502492618886443368125986311215298492233393420702227590819695228958240676239855174744777523201890498786924039690468977404715086063512657213114559958261579146181031478279649302865979931863923472369035308791161777312039308105893594685938636746952780405312119368793618451970539158549271190329113051427102002178478885327148884186311502045446016080716270549607031468381441448779294474912014883837713453420796985150237379137445167619043705198947506684556710985494442624500490546631552940996819878335943849450188769299931145195370666785569331979377040141956210596498329305447391517796312931901981021271814606031689680533166375756740711769032810234564954465852469673015096813341167166480710448503807344416266377160490495118891994767923053543498042390565679917578802624977924557394551427563513874597820369069193976874641025623134104205410393260628956993064678465391863679958104854161748738536914289755755592197909602069653792024072401116749668647199510763620073766532668383975437461502140067339279363658426818093158243705328033952826999079778074044329931132437044118870555750011420106743830017393762158492677482150487421094051002743164550637508289325681583431819874757439011753272879928879266324543761325466594341282740909313136347414850228543862549970065087540784966619989264440520430327398103553026860586517195152440372723449591612417723199649184739805756233113543342689168839263575310484441699532373179267146780530225335703477381447164650276286052233341439753301335610803792500606031817115853414843132158190601375955085978618418161237488542555289605845791712025432151634453634432378379718082726971154447090610405512640993656970882710121013601695700757707283536006583741560068061943317255231625207047059397252911208511655736788839181672870914380306199934113667905000585801885979961716813936904761653551921249496451646058128760837713095746215958855804614334644317385343278007179935107375186437769363055188431578209472126747363246064355143940880310310887152211698038163497752126971087283049048946496376447573569015340805324528976449252599660816593657089914673004022826922976253275095567398367967572234562097481041561150021272075428866725353805491597276032118081455467926717558625507331964369323209240914426219615958262608133268656680098113791293499064058215590282130404510445861334075010511996160783707799640732536232944422804130503634815973111778114458191452998328406153337448897114771784078546419521889014342460327399613407304496230788159184249575935308714785011176740374901573338322621803063198871450050907444374966454243482945551898858102424169692553745232002484491801945209706058101956940318576601272857613082846945159306686802597310919466430314193535873052699419431171396990704189655171330264166246536622729539841001707590117328330438297856147031422203325527361425595518812535836866707128423570620061534906102515469653715759962029727519518460788442190964989410691459626979590826117510178962904445710478958910355821981256282138689190821434728109311344985004433587890915366541392867775489345278096022635905574061344185636120650721899098918239677209966935535765747992200226020173425451236016181535689015531427238768906291465350073438177246458999943432229160643809286909629530236086083522747185789864225916363283149437913904687036740862187799637792338434125184381015289921940489685530700268008602900746754717445646493003601452228495027604201263617169423517573040390089957300088040970417741626229979353232956353712519536049738432819517990004384225819344136299067204713044736216508561207126334347015904358288139634531664883243096835675706171901185551971696679709548937730537813636451061808051277044898729911943729537033508723266734636586058359599973985433525416356411741804139335157760008567117383014721548703434979453407068726486972924712437910831007148578362245797382168917150666761635834027807320634587813480068527679047619081674929371480026022393981819490145637502816047997681835943044570387071284350684936962083408817866991364451510036915303294396511659631012899216179755070113238391358185720318413788031208261920665296321429415372846175998586925352188007174118640882774009622975777257496195951796023057641104707854123247548173094482269618752628923647898804965862070971614615479683174994317639378182615690257542290146855453501367761216836856733972458073944415590558379300609543328987386991765872972115598133039580298731599449040589940352515916869179659519470759606239909297967601363988639349097326435660284816419131926525548675403608471734515947781981096311976391583211146003587067569369486466350424496203056138942192246078628250295232654098164818404438694197613687659807800015791968777929971722037067939306942876160324263329915723928292334836381452623004072914681613321972695296089700731430979992268897400471391526366272339018288763701662438714728415589361599984184387110657682638116474661506811493706001608982251782836888191033713026539107720047017814871437881136782288948315225705671122061425316099378306245901364368724964436844473685009787403716661917528396386197903196731074778132455071215284565086890569264871988326076634627339094846695210351370510252645962312709800664395065915223693975333329063516356623300710487000732551647295459739497208002704941019317465928914303260816985115963273645586333439296824788750986598326490829703382717177728964803623841404786264093700792639933057205261169097752460525312023189365696347317633945896182425570257970720882634003928025974905560757274989150898676893674304979203458108904148728621199170820769688154247796549713149557566952227673909253789616685896248322267990103841534392044805388531327927958584189140870957552944888443942786210944690198540428616508140194188662696078836385651563733295115717699062657346372711679385378302667903290261370849960390872443866808431292624947957474759210590163121365454904835521522850088764018242419757895525655064323244768182466481224211087855107838712552746586271644305768299814575946771388991229932146650679049367554832037802205982911436068299556454510929404839118100331045818933592492944314225665562551855907698278528616446725430487637376987661851978635622501083274345714338890821140648898953276756974754082887872427361912356741466733873072809269644988948420406390974012081926054582951423344752319982242099997130528035356099543665884257523698089166179876168135388441348720857027896509828391821837162985562756061356332767656155868004837227837765614595037420487104997728004982629402044107882532341816260686671480348022031895981370512299987223239768113616618001557438876349348161368504504209907265109883628210815702336951053135299796746124103298737974777299601256779768538097089242637760094998978377257691915139306326205034679402687041314992986296436879630443981365971684714893375287651850864333549159872170716522837073816879906560342267475160298853712134939815236524008569175339575691278034985024431419097385186906634039057645036590073714690411263168948008643956340464887818229983169371966310307879952601605401310144322174256960372703204515012522674904188292643235880566142024540002967330027872195533373752659106290531922157371402630808773156036325670279757299933996743421480192058183094962846689063597174835962117103688917992727369085578937238519228437236455600970543335781414592587416033488206394798950055788599725859898796807063384842270456784583173891349497616527781565616099099887640535808081538183268217813338269920085389289714443408239179310894078267102997367267876446990363964293765832100876338189130567318022741850282976182215498187210275564204146766820834287666408327764575334589186934996510575160036745005856137199935618246212399898270931289129585951895211604443611413953009460723835377243080306031074514583496118684981583872800377034355461602553664524360532582951542165850001250946208449055889216327972401291209660190451638101497927284634454313164118588804602100646850229452669619843796580149306612296179099640583391056549944244864140490037056884325235152276333688122760945872658954371564859840186544652465951421084565885122485091320482876494242684889785073890928042420835910596540719978420552216030259398977439201142712674155163529514050203466236638321400516799162981790743180733198807929075177527355726576536225843452857729529892652930425409712892480853736676014953360621645445215866779232274758867410961922770263747788159953396294166433335183637238288588133262511040399310948277251129955052131102545093361772289644090430781008348286112932398049264908360765949265468227184045565365426403249030161968674750024763382394525308590453298086728737986497207014450881735970210243761527595931849657083907170000647990125328983213499046525024071239537680075638512578084053016156764755087062298389441589235778028021224570963292012631996951425532673535177411002597729018089417736805948795547619611801583688780923856583394825366597039598473300140493537575823766936765094305153763382196941994794705930287916356925134860695151959736262896642624372138018353703797155383716170680255221574039039083589206527325497325280664753109875380163733745666375229180271290645559757252697454341511156293015706650417279158790060284014219861615840020965001691882920681392322911001137248944563316657686792391684644249924909312334917716900037214251158925513330069544181973475259406502115497735864773589643174753104927752270430038309928721357268650883104814070537689457446577529242267921001317778924080302621235185634664787516224431052933219699829282119840515181618479044477606729832066320404042926162275731158514177122422460509023712401911188731242228798495316810766754352150641465522557275692846202878123202932382763120939490440174982531064535059941263354942012498670131730760720453521024311912256208652448418153559174720877894971450695068396496278682814572264944340545959054325459183151101971681097505070665828440677724399626217797603833295971163183797422055007942513461735586141850484104760074417296694528309311536666696008003624980206670817304602874223607603112502902754068088933880665606963625724051112891412047564730673885472824965534484787988766111266284197566240333660069277348675703364839908430395056354939640020840392951654789621426186657858042739920715187983889018791178892365215217915338047673088318749208162260895282555704413562200347416076110416642022831277123501606859891501532501124371074068636150915139946653682889272977564199665261232461077921077139276522598106510842974196439536590022809701335808397807531197314477979097867552230574858634158914751748832154783280258160763646155514814753960884126777076135304823341450879604610687286474452673923340555178895060512299658435969901102371061598551262520577313986894995971447266760943133544690139112721987466458721518392477990987913959938476733675867483909029173346288346121973054466963181194514392003968138973311687682096149819594758367744904164135032220279598152478869500991587297433841147418962107598708469845290245646415514941613749251546302096666112551070489610505037200255972966021284858261220422349497332666125103190022647865154524962881427642905246782629461710749144856899110359444457502291460587244842770551125302263205869720114941480328965726529170804079175080695755844166114385899531001590348902503045248028379926037073639681499389952970439856962755783911647177526513167841583427946154978701146168969705479839672984119769258114488918060774310358166471606341637757257686673772045834001044246658235710153254035672829936498464410279809226094060412449922489516331800106087900151673886129061964401856557042933206602995185026761547592214034540513595980616590520053604186079347711632730749428468581937001112436197051630366581953882605822528058557449469739470587491016951830976826799932108424849694636119036510630151249204260423669241197426603703726728001795889208800903332250019359529526522896795801096591801589188537819377138248401900070738928020075968369206469223714639640107960147750654386120690997991856402726355320839188493863026691390294322565799661240794846381672953494949400697157806649467191420101750919883918147095116361859496034977466298945742422089799584613751347339308608864977672769901252754879430664189574002573080358090723418443755989248411999680109249965910151160960463204032715108197568201140077709806261891083968782014096739476508576490875130796155744758630396701717914752987606426440725998191413199281763652240642004524025970896254500218117944066397030570477977474654013937701477044151455913719745384079607830770408644388641441670630580445339933263489091659443761803884055467221162355915780001582682493310575275629150558954830040172723569213970589388395029687771320886432144055522492047368879175837853101387094687046075059278910871589961979290067535392675360643364277627994709275896147958832411839618315923359948354585197610162708544206627064295515146576194250057594446857177474918743820108268158534875056184597597812300599006213354058642704878825999983713194894696929558893965076363308811005461770235943401900826936151214089545210758611597637118012505500558610789386351702331993486657263644048869182800013364219332506636986853467078797779392176046206493636524688060455541292957052145219982020186167555653749333478539272108066297835032440506109880142143941216270226802913114224942619355819076934814828449330068916272789448567033994734303480513956922036085521946143219192939352748216250713575139013748343935714876429124483938093413594039692523429761028834491538122776719292338367015197414354897171550360043264976808580838639581400461036013887900937821413593002133921065385019845697322017310459139464030762119237495815588435482148852580917001668453311782118680749876211562722037707772919831231199140233743556654110228290440648197950995258145919142096982538629137731731310887016592276243222071819747707265416743910591431831157838187304749054528303429605165885108243206316855812837565187379020213111699908614319587088297090280499192226862115055164594154536562341806302047718955931276403850609482146208196754502489308878731174846237506735114371383991115999340619344368548179881078432535528763202367487242184958692122817713088229816028475613342015460741900500191116299283375209559261488832578663740969578646166190282646874791427409114291188167947230891590077389646075208916230072293588509984056558139549198527935887195888308849817007051454458846207683483120873283394110737532748101455404592056637947499768257561609700199061199765581545866305041585711328227511016422980345968323081610358060169468015020411136296534215491552783844328775990385089132152737315085993967522871583497660128002648301446695278873370538262655410265794283946640920227197583951881089955080811374728988085772348433409151861439660400332981962920954327399699113129285413628916296250075877059250652144422375586362067272932344783199364049618623385374271120703652985102745986214614211202217994436418757609852507117924716327123990660320422888123280214171256471741549262405754293881301933556257442904125894469552433916099294123022537999080493176450629439044954135151452706566193237503012537665132048654815712947637638617949908903519842669293296679160317138563664859896648923167976950050511817141901728200390738687965139354835206567421431117433914994405694981799070655782118055770502069363018406181201180648831657954687342061269909202770846420180894600717076536059187399843793511154718954081099681130565814187354001834912082489415731512115225210374581460931027822201814384383351445159250675872196912202589469326065783884537872352161182907017563860454967957524760663333011238129475704610312174456563127754702720452017511026650823494667254137972001507012206504908868534894497875786607609866371437528795591122690056404516835953644073823543698340329192623154251530547629436531239764961750541555843773939926932974548944307783546154964744286028059009397223967494495379733322247729606100556252189096463065864903091188740896900695997690815558130944110058823016599555248660562064248987758002853581956418388780252350110570372189647953093235400022240187972407193265291978462240724046232400951222657892133698767554436310701575298182410774515880029268804856285634672335367920999870568057005534312562545987130340655015111218544767879892449403312755390505138676690245168765872676175496606587415216095772362554173420644001954833366065307603345090104407913422950951827828748337399295647017325395790026419769991893379946228949572842931091537483872716928540709571460845810029745121087253754013891936522143359973520209943655339061644206290560310873366311286665228303521842162506990983352199031009596757140723756821031960782606006249491163615563828021665717953635193345668085424858096523583290099105877969286316331179535016315051016112568464396999588002568913536592863107313617260213738085952007641058811132782125446491955330783590175349790253432512780704632831701286156277514238626859709374793739338002944359163479315285166319221438920220243523167801465336620811308537898281979844883025726681631731258370872738794354520734620497590327692558105042444054522551800483289558628503327735923811878953497844001938363347927621304379106805077701736049481445761502496080302833820905036998486918848576674257353851319089951339575917730948613032260667607011258324284923216799924459204351739804264034412611139817478706657497298866572050704579456089702297907607313732842580916537071083220468146479439606622408382321973863177632177170296578037030215192318651742880384592518563857063074293344846081256662610131191556285576601715254855761217638890559200104721161980288628861038151569425481298999243875800411544986998662464368956424778951543155475998992284741513712499925386827072515905326290060704057568658222718852251074048469749450991319386963369653339397892541652608504856818545580369977058853082084697738453643654316695536001823367717801050485627958489940229969186154258491112051055141672189661937562668439643964182337980078794770071848284606693171054078599937395566323399722201830418530261724270704619081303504642461836497995188494750858536986738673515485502664575150219140251120946225684185852588824682381232665386667345100764157777325395408223090961749441539069018304553725889148069011262851046099413194321383901564942807107799121321935798790498354579482232495062251426699665927407327650221019549759857226471192569841327217064289497427402676206029046410856299424448033524618457157397260207854582426465420913198101128295324607640751462132776969697863560008693586978571065908767330144091612297670717385491787346191013440796425942576693672825808453895928756018806952320454702132128821719243239447125431348031996459603978022120418552223760212605879567009816075617069360992691112165467651965299370987966464430739883301273660426603867520457478249916644613249225167506259747476867117766256899772908770084192169738904778075415798721192459597622425855833194662008206035578056084518531273035932303374139755048305572244397363973523333069939705033167334626266975954303979826352413962018500847197617458185247585109751825431983988576087876513560582165258854770105306124388577807661597515042254046161381173591066029355091166802712165379483518486962792510890943202400190856887209244741173945047111323670142900944840773114590312272369116592009603398765315249608840169930000440614903580981326876785207158643462000720408376519152606190523135644746520808609290823139911089989906167700986620054117063059826263725827965737878313225846032432776560886143342596537422012080870103249213009044793765584701856665900331700665753809159107279969995231661753744879500481499979358724347103773941748468795270098538165000494095977455013832334340555973173274685692289935050505292552275818182990872967961745379406566496934916840461339376908873801207654359078134805140285307410393439086252010580336657703762637091873040241495091698986986464520071881425156065224423628275854540367194540279440144324413629554897349591417013940464450026541797302338426782924874465968400444169731832175514326487775720495338399736502654591305429880256454360000589235312303769288893978097905285167052303305575098944842920641227063205620139571299379171239811260981254800241808043928874327304932249008205065664763690190809748846465238002806399395915216937840583405602108987097144616434397963239577550196687162243004009569372127018431070403844880265424830397655439805113161125006360126390869259686351185320202682089772920293311294131522875836586374464980775747131481847074802553532906684479852051501261781375424954234823220286288381548283945517178494445641541392301381195361850712492791101095167120340515671841262542362651760236592104703660699025287909227718660267142990719034884280401992919100634889072671495153783375158909885444521008734958120479360795403820474735189208295696090992391934299358201598968899711842955928924360400225651094500057755175860242547178065508762621301962446208300377600065283004040763245917602122799231439896986165512292998863819634458342974787170060954422053476771137072215767055751710096550413614085623410581693113103315164235947809178694538132538659844998173753266237085285018663834560404072732355978102301472956303076250572595852456147965257135897684025762381879398404615684072668286679986294973759818555970521601921202716742627758416338353792404746300113849770469577269533916769945717678039070380756191493575143299207272975573225142020501179616171601728167001871848813417681096530157520839532556844190909273026812003110370453842278165256518372549733093888294844653272295140553159223636450571450062751075464868078885103277150490906489865074844135164556405758186629418405787970019341478433183395557975833010667415676626865731998561650474051118128240687222550583623125068278860267290613454011073842773146915259135934710654634928248799323209996338857860068941492319762666691346007894420849175558860411395560589465793042308768427303128584330925332520770821247804723805279709786759867822566775238732788801590291029061318004050841157971128121139371048788519460677773253095178013029625204649074459607661440898630407768782904884504689139512789813663571938451536432332752894829392090988177516835691369377211366528438200334592699056605980542438546021694891720470948054955163615581715319566487391624030892919254729784189431309813887639897219249379723519126918177788141391719728894701209180917004238799025929681255024028961767625440344760293457039539849117806207902800637093215790922198241045078772686768742697430349610433778732984751779609667392195320136286817985115205421520117765675715046071177405855921711095008282294040396676929059457687877942292698781711563960349983170148730215611023497342974150269334388575696665859724474201488860968179132263051249322322500434169646690788574548577945240732257735158559807652312759968853773737676835002756653833437491528377711661313582092394191028301818977043752311166449800812741016986039188648775123013634904714445490915245570333220799457432761930103922874071888156297479200316652286489602909677451241791427278060380147782162694886596606922655939482500383935295970488656310649633939359565239400840103149408386860745309505053496491304495251830690824328188146833171953438370697962671738965664437735687443720701081754738061039656826561858442134474995524468083019000727636792374529698595572310356051407584412879066048973297795297312278329818611197788790093255703335164147694712986446159185729342210743295148369134503316417860149866887451584962471101009001198960867214302829382474510276768291427336923124455341080526349568187101638099310821003106557090685417997034396670928796116610672072434592160558607121051345117429291509701773312466956170221637218962294757756074873752229510831254891245599943086095036021871172093306508859943433148578886997454244099298879092843059898687580467513212075642943430582823189955452200789079314019698866626287119761307486173116553016032930237957607805936304126278099796843063180662314621660391250057198502527632795431335598519768823443145571814376266955172440811850768897904706249317614774099428304535198090480907678888807061555776697557215089391682441447736382690034673724887029700026007014428707234516739015492090178858554570239452787903026051518763674171112657142659150415353789617018383067384240829758336669504700455258405795045746064155329856165399685716126378692358560627843933018937181986813191942129735687308996764105358444895543701714418603452822009851334353791385528479213397563873478790482439910301565237095206147974740507616795501588870617172212910534272476720967721816642162160689630807772850397877462824185949399250629561855307599675910904896417189193320544192202412167388875599994122860854125188793741544624684994439138880061232968741926215022557823534378010041772741100784977953735082893258937384239483680220032235505176730571215261898629220399698443318734238921691465781143322911630609179080077030595896369554714170287182062021021712837033161286634240909602136458677877695717723687666842289156262442482409842208260079544930831036475186500517404917492854384985584259950402658642149067129091755246716653437155557128221404856710553167176018596932383187283485017670207037075059228081668202864903746451362044131532631412829940153488958775420080279205300610170917516829547217878457027460153446886053058714370352941302718293338143135022500815552725601579164596213047401122585581958569122784333223072050497799912382990824313669872589027895760795508226003960818856885290360329332105775057149185878034322432549029088004198936292175774066629848404646263131219213113325251096824711817946962343575999435223053052012774740460348494828356930020104424732385950684094768190275122142277719804452656238994394038194993679618970716567555922383033418906312559677297526707074433973107355063368819958311188240550390653999192556586937488171719236913461455080482595888231887943510322052918927428562665692660465349996245047483071812304839092108823885083137741931236872378170179563351527252224381822049655147476972019078618001508157967457196371509757817896887930187565794169318156592918192161676296371489196419375822663777986086000304336376798282957426906065529449702568441061498739121317857402075821435100275762238573899761919138711053496946139627722241160637327492848835409232032231753969908543785241743264308905280020917478430809109048986557003620787515661950914409869457168867703650058041632532121122222196343201336194200752155322696776677679515799418545752210776458665121472732229286824198315126069074923123157945529038880787605305259207904896555176093350920996607451120466080096023965827621625714338977439192251318959089212229840904764101147900247837092920418521107717049024001815955067320173270334863164782691871871988357694538799727308526905665974188396964744067557389181269945787433660026620740469598669767181332015163218047931819083055151392530131988046325196778322987163213420152065109190660499452923290085819532942558281230148547140251298798760032100501083969769188806756078759335346750155606751797843084719804795417667796963254240574417965212134688813923055696369669655858429435053187129971333220939289197416991884160467414459716155133881702073362267971346339170699707372773919109561495365150030282216989943974295951374488536999230041975173477927002624668463600097322829248890529592575658747243367769811418422589058778174495851556416966572641116544948713375308100317929589322693649230371841954624849468336361177587181688278239645881864890888953117875179605316202144213769637135226661434368035479454908950360540007426174531631598328256931256883770349839367977923920418174934291306184326208554769798223309566075355757886874839323232781777050888332346074980033509286176722235375948725799658513508515290996075465773860103947858212768477880783270993760533903334276276024624488110322414721787404647461700369512753952439273218438516210564492462824861681640420357199333177319684187531230006912386192634776812842023122663326381346410925518899751261414761753665651105170883048844427965199758398536835095198050124450016788818295881202578371564080696122936267633338052454877205241004582402794013455176791603465473477656214729590831779670931436506750404739214899382311820796614588634786035338000389272651327864063929995543306608616482772229919317120990716404924485879807514431270289848753059318991026587324099323941857174750701521575198864040143130707578061229685845835822585732027345909421234439934053866865786016164047580102325311600524440112314324249345080450493337598206652208381261819181750227846831408112846173742248582604771284073989683899626095487666535564768030940270489696204298710300594508643730494574523252709685226153642312447847122831140448474334562778298070450557997750265778027039163436090328818018859957214350905884867103224088521749579832910618684918164583807901586971742409524250644741394831587560174238655813117969817119364268799984855358047126040749689544436016098984940557088983747937357048148337883930723059811381187902635516210836525438594627425278536711569861228419150496779877222910694118936119716588875536832937950001519994109339327765826444352932702130531072041776076515726193572505441868137730889729974973579366116340029873156577238975926658375888646956521374872526495910022566877186471879602287148232573329820240362583768474709910402634773729872350825966470587147819123218593850684414281513554552924792536275986658980684954548683291686471548488381770574581726674460720919068142079131526539144471384835130884648927207153817469729504889442060229739738593563183773197039717697405903509604243712617876419286935249984725453789928415632654525408576897856980635686122874015569662980582864914888737566698813666625715420044910683729845924519703252299335145916401227299057633736203365985210662855635194037075655541943357597516591915941297509835834364690315297645936076538924326447608910621454985777570613013273063010080071307280163456359518102429123139801543865332810322355782801365549253256042258011718899989649107374646924677655266572061149982762900721712148443539526438653209734403701086948501693596492367727631540414697498529474126595251131570983753841084621210772423136693481784176538219647043775199229923118991005866920378247414005400477821091547557406591582372604209369227174704698141520511926575508752903863946968500164367512073835544531281961096556980663160242995151017236217391830763298650814707974750503151911045963168584369392494649262821147307038854740995872903788308661430881296996463080757665532885299319724104962158393669666785723737690838203323651114022523921532262043891489904441345519508207444409634813287734843508013985284413678224390667008505085669350265459907215400241993387033310218708968779700996220550407522645717742990060298647995875844939850345201911343501281230027332964373818883799579476144527901825697494583855002874606777027984540588288463773737593559793636942559435977163258281628878216232962268136203744571916718174670893434082351373447414150267650947849746005413751850885896831958561112956739646778536533893364843437623377134008207656699866320250560774016565568456402395837037414676409853499573953376666086878201266581781485397105983593567040675330661940195069535465075996448421785997238231894436137881510484017352154068207086876588516579487050408124319276096968216778212564950945449523670923791826849663707474656690064515563501840555060458673733995399514602243567127022670047921158598654170884454360228729688221984114830598854695290285960413532835688670995580422924957716691284202002175700825380746777292872963553414043049390455912543892035332778881272968362295128309845552060305973164195746282675882726143062777085564179287875522016169924468037540844948857762143282590340822403289391838311295623505120142924594789078142363260247911694143121751784205772448317475532551890427684289916885636694464710109303339825847798141006617844835845086048803341217234731543638745080723129622505751515121155854678404436902903018034444615997995412159252901246309283595773443854331637043155544863668427612249939281252598391567701751435031260678353041235067261039643777648738964830714009472072538838068390927550159743220160461191871630659823725851888802390570937475414380606151213072743002984820700698385178871852215168179523117855060230872076411428637127230777416443638520502492499508672471446379194893522517392147718792988972075625496618125887855028069014766726159041866283922167486945209338578749817994553854537143630399295952055145704890637496105907990495639516915757624446571795398491690162573043790586554407216505622158059030218007040186189374072094008272514459157844950820890260850337814474896860341238947195700085376477061136227431929283447388866588620158662854528568794524948695131863194652472250815082549301381640435793897814559958745362167466048239168151944930801597342314444133830115763139521155025752966674385171453323677003990144321109173005242668457371412693972685643145171284416097546245232787862107661192552103034449553055965858497101539963714140955391821686237356321853295109540868602422198180572792520861602349619786275883679781165119259056026007276057902423288846665819995984073418373130743574054296687940455024516582422873441620958927295824271290549359018323148824032139986345140925036302756890256865057324214326222979861815022657365538796119592936054553483287475001836810938700457916976620540522543872718354704969662142819143110608232038891502159271192805542990099225398014032630181610092046428791804163787776822386326684152955467403022852681035221901283939999808008492939356648381839068997343507392131151158309571912671508740245858258368019956823663602664711890336061067646920382723812681057466854212760681195542250336707692819982856108848589754866423239958930219321887680327218179054406477683693357843357455689761182426439866764234266252938924514653757957190062304163215994673395177505428812780152144555705645665605327801211953140020408083033894252243319357862323579607740127018940704867483145510535064505321615334314705760915064658897055250709765637577479825252289143287525611395101014038900908362720475702159535015463186108838302135604010838566756420572675613416796611989367991498375198056339140750456525563612319597819001236907721172242275348165158713420753325703728826673079374722638634637129196220227443173314546009963441246474613966421971168613728538907142492903412692692434780272510348445773631524972437454564160415174887133013684042272164906307017139478680481320732191912341616728530083907084341505540622090926546496653695935107660101452926773438398511047617929893378039549874512498349687384635427618210774972464485795603614942961481510959313358471644437566104946392161549659254569563561763514355739144964792268200797792873136618439356027396967318595192092939544490954090035200796542884159510805128698027724241286769929513578389293899358091960791094440647555033034725661948628908422342492514764725381845887520632773466406101602219782385962180244083320164658802082486422891365739424575377805425536054586442655872208165103568734841790839933360133632889943113061044201995996912883702808352228214454113056010289365909190920280899303612110213819078193562033935981084060031456617702886465683809771664282846407168214544455502724050038375019077795768248097575073506527439936982920337173756003327478066069272322554256738140353251344677988936512780818936014982780401095933563871210156356850218741023052749325895297157242562186491568522841852624910568883422456565709507123097495602344543389977756546982795268691857535099374290137190457413579404758401607833914743903068950823723601898421020050652545541983372748915981945735766452505081647530885721075549789009942309937859819872101875582602289492159299984696884950640705741551384716146061404234699021129617977932779461587793604084651835597759671540354232008055911715649299638191814146666656460990095264367843060696397811591295329281492796707904681425132768779650274282687383542749516876246098747838533185548327534528731325437474046686598499125532804781107071228285346847919708063274798661003702806507679163382919139718295558387854905424812075208964513201465716269635604121953658938828246153045422882284714574769917057463260597994682223425654561921822308047885024307811735503176381912594558321806410650823773926280519081831716117052937263741035383730593722450169677465563409342739094625961220756054336947833983785925787581923456695244090773492181801875326963567877536759074601762786507772660459062222173224372949093301295457853035676350356998705063564268211582260192892214944337012530071637226669661807993793976224839807015169868807837846473190841100135102029746900359013351105519803660394259466558946278742450207690120547286560602070129603304204691587157911583452771236097872835408775453873946516670844324808373625437411357177159529231283734681209369972927240954930145529904213212089076768106439190173036377430874100038716043638610667456069468086158734659215301157905612274667393332133943061734068241696094551069706603796616763835378094130432845083987267573269557137265508063180297572556709095882585986887721917965525126138415209508823897008336812449174364334217892059135349532827007730331938945860921238766618667577877303105268337868874649340884893087694769506863404613559138088849671534751909070499564544097827452307699502357439683132903713185355660202171261544994997983016888785636317253307865061486805728359312007483498542481343697935447570796966035429084750603948667001949291905440797837944279889792745503590504420385380876084435155871697039305337169222006173740691692134039214868419415943130063915493453464293888391218986802457186582223156899676398779348620251407255026749181837606779540205274665414638654037983535212958498468016709667749101762302561693823708783277349608214763790964121805565268651314203347356699043008239282993092310711067320060742955292620598191969462770798396102029923225719917512937377686813176131203062599461911862494671347272405871107156153727197735933464691455618710922293129449731895753932679785456831625349434829787359108040482335639916561704707625366101373113022555927463011537605448100862356653188378111839988833278969650111706198645055584589795961542903327162447808348509681668062997347517511819601663362508179610659812598374559764079301046853343221741030072935202574268405152189057965493648002744638209813874178264302260024077436648859458586890437411314716662873393670498288635177452639605558965265441738032676615978292437448141580936650806656912861448939234530517224290716938729307058072654540815750370597278372638087599288978492055203371347365868057368372175226090055836845213040471060645370543795488795480940393971370645558485223703600553773313037286163599113838734266805957408035361836442599473414894176414402958377106150334714911200794730038143021748808745091670154625190880634856714804996957556438625080524888939279964993054076703102084115258765349421037429789797990426161814179296849298222555483326564332810220028565939664541852943257768552725844663178156978576623289070569741432773151773580535538650622392491705237559598085203313739311520001963357769112520716362755608637456674738048416915797457649359777921796586628323397241034856715921572328440282313045549307501079651972200172328736129501627081170301885431645195610614964600395374386032470276516185880953879914576324067487633762716554755026488437167151255315567673868741267585719566032146977895131717011071891782632760312998044636727614414217628199408926626727337032520719174112394167346136469671002814207012364709766247899592278292053442531088538946132563742472424672390373627062088001047922737383456511399022821211074052407944760818764067666171637226589016314152062286238667300161197010101285168325264353323327582602304784967207335008605601846405687967841418516277420278061677507237936679658177999924032441848437637700819441589182560952855878642538106302224802815100018639975341902458932586668644941621492808375247691757354161512617879788495654563719110030173927529984816410858109514115084245968590666746776947651571393891439800142801687447579965098528600347163438230208762565127751923398353152586171596752642335068455040398282289756628737829812370171147853921037406701327685818909924918057252960417695378526437076012370503017330420736321316619301369110801244080829758603992295518583045241321348321767428937499354356776772237237712483626213054576917765049745446224089561358266833701613131992076589216188231781305086343891004082436941735320983085128869719838477254917122496148944216276850685596910897550688501761193731959929640343024860517407772600824758739840447250911883693530123318376915187891218744497251503945337961145479580200001695993578642397715013991286166900121867514313254883901659174600843112649820342906123889762832378841151995307118982215071809429964101372189597833169865845912380820064097226965628793730666235858453660401923715636605790092966161690641254866071583103480388673192742056024884311932306026728772148781273022952770585668948921275798558409417432196480400691387438299130019303541946038593161648222184445149114030683608245427806576280574504907525277031989191962063012828748935730841526262539148963681702399539350392246311564132042980934995627382265485858960466732886266025717656879718311293644553363584683484048328473317356482891650977189584413073716282428980923537210443397990053921517371892747707246480311170195409770898726381488869530703765919144616216428588542056271174190340017415102382898595393658979652048978713548893374374461233028337041737505096983391728996112093102360446095212680274577682469520288473289012115447166505265660165439835921792122212037312836131121061185614120715765446101106990438756521636324607169024993923997573647038787192057901027244475013749173125353292888195037681858301951793461981573547449509162013970166283071177931173319009268076479497036285640441774786720854672586282822112006662847090303957199712286470761143426461371033217838581992515834697480597870304667548627915210360046813776405706058557690296341833752440159700585565112275800473828255649311053199370332430532292858619121070057938679690106024183293320104102485403249471095572151660631504578426815503999191503186043646955498195815970633753039177173043734149758651077865196682134351667274320753728869782503102798358964725092899862094898057717747036785651530756220221099747173176832770204532294145609024548437740045732301974339127887234630963494129397114579949243567606338484590338234446669837554973587458224200753419279520559077224743481716438583217083292089099474780209449657697129219308194346243071911361485660653182344818478414122655111717881433782118759805395403193271948565817829369163269663499917127138955052556568977145778697582952148275401945965496349683395953071348982547017766127163211171758719705510488783546371056760540582926106829650424037671332322770798918381049471532300542997459139631157473689683329121504727103124105895376330365642462278214043049500831549457891966136055708754193876062098716722419123773729588999187557910332280820430137445164096497950823878668789660419142511490793995548860637118925312472538225600644866350998336745694252367302958365856038038006973404691509221296001757049100155658857597408459683072287031704767434390482551202701671115120532189311174209954138627728467868239903499527047148958606700154907476496993510180003679828546402462771740088466222679534168792342448134640392949130449419920742201137047889211611742082783740595314261306835241748379932701877474503761824942197548521298122773996488642458727502406190743430743627065686626782019770865891036684552114511470411500144080111267011165136549254804179342752760539087084467610896346881575959151439939973680617870945396021780341701829044248808684495097726066955727469305350988271024275799779868095682760520620707688811219536100920665103376632576729169914009899953819065997741458795259477459863002014030026645374168724181308000096329858437132510492262192835675158597092899492999252338342315339134703505147278061410122253919532735220541074816465983208699114768341173417143628683642514012267029933515196714377415240161622523106940038658138312617321963960410506826028452883376164930042281177434305698029151196508693313570889328007994261328154823167471586580774972279307568118362579560128864279731326653001878622377090545732243216510008797670911151898543798404050396378024464282917639180760526745656787149032528997841233633985367632895124436821375990920968301039965137673381639001296096763858863601630428818053681280351350240886516750578977948238142128433870779101679478739566532621353481757001855389223567659297361245511718330754747912408262364904958496974935843856731095064503420834245174162944878576812772601660657825439379678505719353975185119503289770315565656748084708556713218836168685471950626434281593341935736293565524993097799332776444148209277695612809411834671348398191296360250446907847132202015770408529525745311773830654865326667564110319035502111118003765295562954826795468185781098587470385699911857883693895567138658687960807867554569659755971680000453401871543388640452362827266004742611449157981983929774517618077910478105957982867396239660816937701597811611205913789477801421500240151342269127965003161792676678386828727350039999513186648361477915400481121359138285391257798263240801755754055076250144557307251008203199626817294549152801126411709309833406571433179868099679807269083547374566921220762821899949738315331922430299173820786583612450136698319589202455092235317461270292358893671474985563150973663428979811076057807687869108367788483109912335443006333879060058866282751654201644923684533636349775913461834372186818195554819347387280266201084424293166438208009420223653965167602450246234988532839702389097741189644046536443477518060677093097258135568873272318197785706074644708497253123236016308166585734459263363950924499118180897886756782242633699338675011853873045821295349103233190571914804884837009078978885113214290977040451960901405544993307271364657620550498619862272416602091479634188132856662745631345087353951961121563675979036799249694768729799435098092789117264275151863424759593991327543429021405144466718925503642477864280400351529439065561144929481950766346484907727632939894988847958741016709816016825403741432259179761107988523867108747702077219417621495727390647747140059138635240533954531144413131362657992704925612714454050671034255232094762319720785778896459488578937950402708902975504068689735593229558808266681104736680375107380853941349644506845618966680175679786132233335772160185729228335365934983419211832660224254803682649294273471751246734850069703841840926503663573387106284146741188540536589223437627703506671837065211004631049927915009744053888481781745720790298299686675834295660547441354351750804907010480002877076603835664577878815006294181374274814877069145408530753741847588391111336754559919866891146814416192590218499433816294017081985818160314700347128280114985741920734731320348914144073872014644003784269387536500790449066862930674402076479454015115074811702039606533359270414711185063165046258641158903831891332422313095681489426045806735777844912355164192557167067834729245606382934303817627395391351866323560695385194994627612050697725239872811922038622958108093348750447912814612108489141013335640860393280551384851021135043308539435601395047244921745837259801800234372290362577894119945654835719519707393574648561606536841872060238855092092698217637084009704255492470358555779148047516475220394703868644933984519858423319177724562176890943582447454455301323691819728015951762814549727083347008260244214579838480886155977737934201934955755802394817591883060183610713248518839165111385025103672014242745812234395748909208153713079935192023967048389236688263054302206318775244284407663345686473006476814498791118239281619085705000300833603659304002048641894532842432636206945318093380811733216187893953005786558175290037921708274469583056355932870791383757987773890262319160468985381780724436412642913651542794769945781419561601640954520567482845377242705332024033792789479726820935381210883975140292878058963173077224333743445869847219248383146958063915113929339520509879901727045870508396274704948712286153439598449264532214604050749661431239446516578848262015929349599928442880603565192125660680139304213932668304037851826482941441746225868745477585558479733388045653957937583747793310440201932021740338544848536178792913771286650653233619182528123761132810131692453586899769571193758877668694078196482813967504754975459682657728063672520875145260228358051113356870148840275861678021193554273312658407928532429550415691711533045441489982578118425853756687044595434908578722052905932388451490907074127343394326413740589786283790152123724759139066177883100086069544324218651886275109685096122780034875221859964637251280535526357798185023328564248614398481064457979527576865884141179520320729710063195173016858692840803062597145070871109741583593216653025457762617156977405506054440200695129886559997674640044022440220985716483273958975113731995110492996708867416391780277756488848505080928057822381444636792571899929821957400004477780314715983996726575492773951046904728177731457576214803036124786894192104987957106738186703622357166888907424443905107593608883940583289851366502708318016600032329617905994062331094329933012271614447121114210597741365146875602643789402156469295051435245964658263398447690335207889056646776148356843612775713090098119332920747283298275657777129505161481567446930914001420148867916710786689666594086291091382645969893691887171220098922294091813119041741172984311241833923554626327511381124886334087253204031307581315717846812047166250925656311414449189570760970996668607717343987608413614472156699830054568691292075020976659852345960067153373517372239731874843444476793968499919788600159093795160891768299695797820736226323422639041472937974696978413342674217747339418296264088703884393475175997275875113367525670657672790693424062047429502034026362795777028525527724701808589817374603404260518565169107530702712900430141593310933885948203595757106338426462557195150406640551826222793820072122739256543276507145674437859538244149540090349025123568078591581848510664701944659351382409816363728440659817339431036838574533423335422289560338086224439866985555846385735653020486344225998654419812527304246592563655307940561188409662481009375599594246796209829608595517556129852644126376590976774384798804658109954696902133036289220637673447469735275543230165261211096493606622572485164700909754760253527566470327467826708815019818226852411994519618763186382101054890539673838692252813308018681801759568144292204263106448144971642923196918309129467323052806974754085985728628964047891073554938167766328884063071393323161944993756127976045171372780144762652609622249871328280506492090845409685085625820024712777035246846548653798352013390437908946287044396729234387362199170519441596843656588522393659674276082763733259164998369991367167203939441801177709888424267708652157480610878801152323481853668504696378215369346606862945184744683146150499334093359496579699233958800814796532506127320557140182293304838251088294760456111756805617571801375048848423894516407435020448182215670452142710550329869966556461446789472232930424705152121342135505086178714640998396424183923679802777697649400876761226799593764670392014336849261905800678723805485301053319543989717838482233038140574908510735887612428027687551503255546900903120947155973125711757274265281231720841487316825260597191309803645883343714523702146072841725979207053284789398818421427542205727203078793497810605047574239862539845496173038928032661726198559593651682105424151815766266558099311275608228490225981855363682990976554922921557451107839481186914960301154422352861600177131874953435800042093189864645350962099570787973277433122972291028729870763824027225957876257235154256287422658656525498338857914577163943825837176269625666701215773910393213735765444847888369773234191299885628226332137881320846115903396733242591889256763387187692699073578045652166787729400975852487813824791746418029096373386822510503839108315040027269910122899962302865525022759478527491680798582962251950294921433633892372782296685661531477274163394766737221996053891505132238650083552724728937492525193391341899011294991046010501663127274389165894103193284029491294458647031500446227306562930523220084050595907872366667227903715385843827907000420311766656392380003657230046601601746555132714657191695958540156297903544752388017819421224663091302322952457763972425898521128834677338949604605427002558049387906299473142612045453798981507644614352861289021093290497622664868551141922114857721720127909652598517076818819879487045327902297854618830107162729382993598096623987484678335100199351720573148543471608537332921709020774712702827559065553582156963109121999816367715892089289783831048461724067705168319426247212617605219964489883095881662107602054900642996713150226577334754481712721906908896720401240461028883167572028034530517776963767320074804161438073537642714878584319175648590179130082847830779856313551201679763771460308002367194019315721356705399207426600281922355101944566109484012726778735405438383238879516705434499261009149126918954094025294658046988109209244070194821667883052918479972393039297005657860591105219440816725372600290480073152680823080344218670126600096230946276060285961244917773772089257973734975724072122866096471004693268231680953359053602674202710472667258471838365277963837040070514752263080585992606147097743990199755116116071118995088775522547077406715291030826982743572381334971274989336995562008529225067840730247398700319892143306402691158743057693730596441883423756922308813044103347086313442143763333020196616675339914956789781474294274258294215396110669890616135744943147306462394767502465398888651833125232656089333493526050286429797833940810124489672723009988982914686126386636465373636016889169587037955330240066966554948539566415692593487319097294086013966117870877542460986162350401206116901391291290639894288017182246916598650492743479642948333178460322126250706755311781067318497312658668514913274625869543359272239728726707286466873202936323219030308763925727494445115047507502643154899622869395425319278987963015392697866892148605072645796124056381600564476904946140391154450477780116757832836539035747973292036746450583059852126211134461931088034371092451781458228534277316822295879518860609550739348134554687687589101112384472361804636832430552290885828749295071032936480672853759394882771496323540468235319872576576133717923696880488920550642025791087831946642984269856909253785949757817686344700828802426879134905968398982749165040581785790673388974533212459672734882998938615974871848556829221012820500565481747678734240089904274176574053207549422101753874507994154147407521187054299773347033828352656895921744975365347472204553430545041028581499490706903997603166321890515271620946896522198910392889267438031410800651795825088291768586915506425565653011756479021954593195000949092465101453149253567381912563431186568592253812871196303616935496695176237068851868835897934200088674679664650003960712844000072217419013650690905296607633736986130116571132387952752546523833592465976836740708300626048484245940548505245792279595372158154755029730509843854462347313372955227256749601695599723958641423771200248072571451377823123046041545421836237337677214376338799148999514884153697497514080728491526871067677123973349506426138746848935388339233312119851393943729629559774797469575390841722921344211192400194492805300443772892792904680482822014031152482471571427007144533414067950872520447751513792731889237534144515943905801105825399282880847515512040026231485076900949425851186270788439818012693617183259440339696529184398051133907344795548121933726300286690862033915745101918473915942414246547275830050481861847453291389385268821493489265455761373431749067320765633615801031944646838180911413947130196389361259664063346621038236438337624419441835241770918273491123952697148726526008346335068744071879133640823163564716008498965514825092698149012973242153343519008881879564317302664800951635306839466740374726276215155925712975917326082432805450713079954172616862321720474492297198184084168779355919519040399742015075649513006922088518730312507213641035790717038546038739727862302205151346821277691341810518340571181108106464258938052527793551755338415997886325416159314111967226789753008010062536583144229278040237661283601575727643778693848057267444985309719655282741477044426536080541932865225729863755380146642126757490429266948260033305282907107860808509196739604726808005480740120974972418431310547873368866575422953731079900994394468733882265783826179199280379677861581353146500919790119919420460227843120822627288910379850758149200652746126027762512300656255269295016557968366978931415677524588188222931825045710877778887862530841254658431145770431951266474213740341270816090040746875086085238816249999811965287127982911846893362215486130990617092152736689706317833535509143645991738777771918830184616536675512197271963947304863403592566700435851894161436598160417104317613817405208320180127278164839609497820250258239713527693900822888440805513701473592092667253771475560692560754205152402385759762269414515557385388258090533080161142923287542047497785269107092893828105101256280398972731156301031454071403835329377269269281318516449598171479535277608445461519866582677170021015890244220577154202133948921519173994687009067706556215134705913057735491864738783121167594610878454178118479129406552189430562257342046125762596776496078062069290016162490521817778676356346476709675614904407248787924671943651643464187028347879038135169780769406868289420189547148094243360157998642885764185850054378806990637900924716954258021831964426814581051296523409198646492460873549786888240888268630191942715235227777162921341822529940669938423138390335968284572415133591096485884955705330201300372784033745726499931400517538547761924964503050241926591284081223404720863872706443430022896691510521100778144769838166219243153907355358378841304938365732083043676419039054608339488007870124495332789851051244303134386356231593954402507172139976872081088450032110223673723398436540886542717439563089527457417741471231301558948619513499715929754882589527596415962643872824280199987078641559051935293015163814269037780181703236775703635232184464262059615547741773486763282582226613040641325793029305135783375498723376870537414951671243052485224011576513130142569569787531292405652214258187972315423493597721200739193770016459564882613987872733626817695188857788865062730287391274926838619600349628532979752940022365979081688245849152072832911657172072232332668263959736265162168987836257499902491953899099010882783477105962658105344669962599473922382674264074424171547036835192577840348303547074916099890884702074764183833704712317347745284705149950621801333535168546484253373205425112537205578679721434626059197761368495268554232350071595961532030820093720311821926765381742543528132207292501659746119222476504526952307924571761273610560227977001244093362080247467826561805695502392570239518668804617118311740121115820433715686487858872641265678026552056982416654139989802723227894864134753913125888036051472083823444832320980612131106229736987279041987500529184728225880177306798280226762075450122065656900072378815099430029125468483656931741716576547437625758654619879632157124219217434729967249828082391704851984057962869404263137642432202457099105733379099527086528691927784699303274346433198944004949537809591071004284437034859919539060865983628673588903283926000963933662400232073017704544326970875225983302879969056697285327088405661916541395523754916497908630624368139316664637505959086375566149594285385190708131000780978363323081432726890968571714423436087832418914777659613725582576744897466970921692658017217256580134295639077687795729542784582801012169879624023601127308426910339783436654287605191029162673189968305432155125028429562382578624004066442788551215312092980223209464135379857484364204083965556503034247583776793318068851834328809953715558607017770308837081617328898774634028637950104555905910030385014403798575278849361476481194671324433887811602435657379923538737574297941924467133004158239128180084441007328484816497083571902488535494493131648970734956472549048734826816929670270281241979866086280144003278919549493914418019959787334810145421387852940015265182066255297158501931300369109759306556742841249197898974695775209759919212184054894398035537180689425342467310192318747991057480030847694718534252956937895658809303603901838844376652438618574743394191403110856274919968874323529976977061147003598902845732851151206306089471862765229580682966777225365550454843306611288459516853547330195242433184040429637526291508493024081212514568614016912392727295925374632870921526056741356312929899386571524265885995034136829412052291270520074832454090356021117490743389488278189691022927719967753924897640490295191079227253337917035655781650581977815886317469241785200798758789019850033013173655457247434281178882749086740063006727766234922532327728092693542804628242025682446008857980803570764122758065225412381592387569983273825135170510344932528548145302575442418895140618833327634170127525503415809671178129383733556199091106509141600703760489096158652451953480146267043469611372630091979236740166300889185697075873899958368696085659286534553782119465929835385480882827292570048997792610934662628390010436053998625757294622247826727161151670131623836130577649314603045727018461272349169965045223242521216149777016447425637473460508112341929774656053010895274182975605976521204804254193643469200707083394890608843098478674604491514826975490827110790533860107837241358847990405771317328877227852854077018936500544547875383095248882021329601343257207410616013158989351452678899117704242720778315006177177953749306608585078110828112881579682923662007364390098852083183611633975541045588593717312697894310024138715798718281637855158610010358247296516967915180911733906807419740563995962146408394900539811601876424242966575757988472904547298777883278998963592703365035247040008015352929737129793799090252647768474933550352304433115552006432724782967461803557757606765905649762905675508703658918474465328595381901857700173045704537542583380951126381788170523813402855503942771866329696246687377350053853834615912241139642516690131721375582667205555466880334706668867119001668096760754027652891764795313117534030906272548801542921961501555676435284897488984691107514675821229321176801452730344529258042254248504504768913139404031507533391861654549445899716369099189342450729924070439324901323885615937270772696390494786655893794585945788987574328131171694786767629781140770441058323271651221868156573831880159567520027171799387297592461338201890614852248527264345022486335392934694885030971853952868425524338933920193880367924901939489980710661796767102035535833703593736773094928221332111774088199449456202792102343464758966637460155733105296287933732971395097534555626375249664101694508699283617887174478557327570053882490509669851434227957697649829679409674134959267663811307982265036201338258022712216203066370780915210156826835851695367665336077990255081532624584180375467148538714745526620230203757942069152475094777761711580691607888606655270281215563020308634780019168233272016328227617763267849146388395086370775772175720496027458038610592632023303080128238083950890242648971132336811959089539990611476136075715856215921128571686080334803403295194043227951036682980992072531371970720380107716118255537053605984883243100734505443073756764883672722353236188815599983218334992266034561079396402222244928895456352064049052815777649865060925163378687766099952420158523450793663943673151730577195051484119645055741903629165703149238466706471197690903881758795769953201408477048448218448525055024366471138480916294422277391507023481984227762241847982437728541727093070939468969005566805495278838548078566085318530898273615466996742555017233305525372046046647542494601618803213197082878016994592736011527590567109979621851279449380481732040181438956506049098329371475955382006959232223663125122611717307635099716877135705973002204929620337245740495447526873998691407707913774800081346877776867680890920960624635802926636260784489612447719689924509333765384991025093090559147674056122606102507536134876643925352952506039771512691585718867226408806704374858268135278341836086359035781196040001106504835226279265108919909268125531176877339144409756480488399399976640186272721427097820250572377511446205555146664195156613321161411165709069801598170572082918640779979445217112589271497213695688283507729084646173569892703102179402526030370629292717641419672626401399634855622533356729668313220087319334638759588565258726198161088594733188326863497832819708550426392785089382330218506889381115685245403584241101163617586392257284254373174770544162611113674079822256745801193815777109524173373768269940153405990040039967030317010069181904465849405689295531285508808364080008401417907128142316861527709999776760022614022687728200408142006377921185972862184995688505288578594341601557418720692584095282287717570032998762982648267373305934780809132669857482540708500038283375706217625898267417894361455859447664240969562643876750619396345037106318652031726862123369201209994193072683683746312638284440614326518459842034287476614647553394642968686394597090153051679857848412246933524807236337473026776956179648042573078951926971787552937420360234126669467885927415939134724059242735316731240057241385918054038474426501743454374252366517640525219314972320190684025964617797109238514644468521960627833056228360739669410640862414063852955503034813132896699903969616977581453908720889789225982380264564693242967187682516980484812820713904027700726160988148613222789854542312746474549144927006439218303511197887881980039097304439720244186359242920546649760920612812410973052556088129052792956984874806375386488533946067778910790351093581224523901720766473724863136040260684993450207490454721370589317184133070038422332847681024118321850404512802294299777747372670820722603950682353339757142920502667221556268531364993473721692653633797867432815741920910587407587083596282920840630820808133859478000973173145224161361348117227146062107493926565012466176232887100272196618738006691318687679488486040468233981884626555769430559325072373651881938664759267559661753188878795051672787474185338830078676325886754291420042999744585591736373856695649454724993409066762387980484701807556638707520192941001714027418043149237266658364550370883702445685612158349613855959331218720009130879413420693988609288593410366288018791656997837899633559006582168869310745609099018414306125286275617163362863549561720164927014228857449981589482663592927564905506286234951156219608588061769129448203806573321664096713414957896470589582303292297237337191749822404657691164071685389892873834008529543520092895312609998396046010075269317483730954930957401723707493731793196448628224515934503540104178327897593291712337745426482141441138964763249276314752071556604239778916892407291576988615550330410499312588533170498891368294058339826688670392850953988347754076975065326240161869057403097786557947856242239285748962988056793770031650005828644945571099695372781828863686817139518692832233475975651065155537077761165805948966025337071730443994142127327076641598398952442608114506600328652099597962638054154864474976049298837981672222386347155590408941223599955612195568989229653769901186843661355581178440888266765371494981109836695443006057335171299511265435398626101056367333883584775193378101204710242189947806843377644566380488784004749918714067484403747774743785387738348134901978869019906631676888763441853816765343640652990025166506800719942625513524064699153560400673769802675004465105982236229957608771312379957691518326226426812478431944539345082234071093933561493035808530264132241922187326437715706372531249304103149271774114844929596971815294007955443681779239322803741513535981417091633346612062498682975245441134387966033008646253425441206064264671739245576222837030966225202888422579517766744342371099766336292041422737733263372203971672700523085056673276134401034077348940232130388067957434474267568958190971847418318090093555749411479301433327889175348069702229846085286135709867451122561127537194214987198781161949503216937369128009744093359582237928353624147331264881554066266909155506128750423286340933137381090526718157519065554348912981668119196906950331002833400981927436880066668295268158435786806230596725121704220075168821426958875572002382820568420582298175091911770202873768819854092264063003526395668649533329930260776060641768264331498674979365195389595032304706249448708128711736021859507181527976614203717090346268229833745014747043196084342404337702778253112138998356646805785204186370648310918540026733245194906491341277933298484731488703980304918179556338298505847800990762929148900132273575130444740470353415195552161390190227008835365159391622390671171049772845039630326488659795198065997929855656998913396005944201892513095269258828026958428802154361209303333717603112533031531917351310309377634823484413826756609644292639332602800457830361801715677472707160272796999469475754115369493429703558074033985689691703906419044960365230391192882662400806720900398054781822106982965258494111685244743804985935682790127661251087177866761603571915537914107827150616075839559740414382859723891218113903432336623405374555091561278533454552896039448925877522931450669390518279603659650852428072187554426893134691914632889311388637541367380006169909039182748666325021253351787898609656915289579192136581927234385076199403352996533128134550542402583672704846359817016327122701078136762739675525409271430247816461473537343770030488400350691441152307021823593951854361406796942540209942962365414303419540954661374848920991179185902244490631343700333221107029201174123092663887949396743034116735874662897710534064043493984980609719437988332150864261184084810855697180303410166220349430717195260550640720242588973038512479691548206832565685938286330651963178944028657169370869910768994374036091320835318729902303819283001552449913696855038149954182669982104486716368348087231940172261552563111359384347061478575324626472518381196251704919521121528917343506756541971263267394528290806059432742613096040819627176240525922763720876889132709300228764627327031427309593339683994188752497146222706158895291211944440582347479017149794102941051618790605384805795444702206707902655973774673898541486558982730702873891833540444677150601003084812646322923834628802279493123476105108472673180585941832876229534129486902875738433542785908176949889282722135705704503498092974287813864200389928408667178189830462257839171369178220864218317602371659059059184351694326102593514991923112466949930141984890487511459680686137194656944284957259831013507632434269684791486557283722326464368101010826385002158233497449062701372915760358333571058646767372276921614219682874787669261720663868889907590979709768215566923154376901996198071111807066852845028463229075687342240145376683482647130494143227102825782513763858103978361453213318419631691476795286142517058737726372750515597818493420987128412844978656879305170547707289019930457851266922163257360749158772799169912421907736839370323555200669636564681745277482527282242952008775195641267734172514616959842220928529968824096211368643026790004998674343821733287511372028877264446348984875707196153010509493459672683344259845175043254659508995562563789076553572902252943361063098396606666927490676545456703415324509538442815576633248909328526735390572282436300865983775216641430093642711646420682644424943458105977329332438102354011928361072935376317842531798071969003343017278298623412690033061171028995237871794015652211765135173519515588309628439918596844918866783009961957341276711755263804700853352472540963110277586266287406710874064065210248593833738227491704265923011523768793429175242201464605696492246095145028704698533967670443426800056616110781676019823313674124796567385353374233906132748065734975071804414093665627229935023507253934032194707905035045955483668902119613950723336773322548262750433993148136039183431304885184976704454787301641390416989866589578522101460144812685206671843580355369814915760575847086430257047180937091946454375361010548916022883125348163356848965535809821978321014528760723618833781030241761162227216402499096381025300248443969818575333338882545890746842913141648657885869231227659342146555385711601982756529925979410157096097967426254835838617643794789791191193783641655438603128285945915844040186981419579195448212762383819813222338794020664041253260728404208144766621535272980423550678690290506398172673955276797745544617659642965671809560203490719291905118526753521182656516357144661196314083541476685185884165350372353507848773121638224090667676535071810935118032153706179304563356619948230327417362820600306215133487961213202222783776963108801445525319616134597077400909971475744535042001802264126712209960062307671479098075976258948441621718772338255141490979807000695321628476628473652473116246285325940191084429224933271800856181688884549111710850040275406182544861740740199308832650672506985226012059595528491397682647456052833453051028878620676665335266723120718520622926036190629207904786149375654800092721085423921492135255646791149681378002008944887898121806203418485094887508576631100861072777428375587807087787783332108388728684208041766085351928412126940201204512414895298395347742325835913076195080488690706263609649296770957884316173381382925326373692179431207058630684102260849116511084699800659568132218450261154175735508934996928927137818076054902427311751015459122895207549004481811120186856567925259945592522070860007944352524034117966321960844311028931605928863069448937722717749688757366987540964591785171689777734966381103053148402104657449088925689430421984326043773108037648400067014671589493804358418304898493134311178351709224475008034093297277625023251147848455551235605082988951254269298470077885115039041553001717808100377857472960876748967723029584048643014849626870868471224099985486034452002605312813240163660944488476731794094848359621318607077656875959665873702689535809455757599094427844877748970494219106978723666003195286769577189254110709413234127002543437948427453993071622958873080452560968583819285702778961317993353899432123765194324476380064203694516596230934576538295949493462958533485765367748361563682870516823336235252374076303156418774459688211166875586779981952703304224211511128551179311489906883335104016365578920547615104136896298809376599834379035445379619372243461837325470453596025410774951850824487554012735531563835877141952669148196237042940270349583802437321484695831293129054392676789292604894510933478995100390312500391273694554578159702775436715515319926215639786659720948914375886412023141837183284088658438311104657232316732954628479698881736798730848320489671657614552677890316415243812456406632125298640160937536890901741394683617355144210658180479266064257551279635056029055277865809978888468963349206106909511623435398436145566172205390772823147482082797419281650749204693060237251727412145607342155929371139224238487067936780063939661940671321826422991229954850112039465008447397132272131276085360796385628308033990361075404715626759791944530538706793676569947306444541914184597185831671999000576958771749316949647542276659991417238473855797524554725247504949193135955406396462869329867526928007315684352612855558763946949914713458230847513210100776824872099561880930250931183764837722664442872344794059240021098961348645660098659241729675584658212329859297206373273479347247878429261882094112153497391938658665808680954456015421758080844954668836686922839423728931962065097540615974929765195716727106159222780656481721367944384090481884368085957784462918580505699918709173838797324140891848877924152439818862053734904921409914639988169447888914559342974266603226219144101897519746478487460091557912327476752054936569345292596893597318491828226491774105773175131807732486920664596800987386795010489742852309372715270818879623306188286328432768571551722518487169578205087843356317802441478376943233269820256333350018335781390106932254060465687824032561079610585151420049943065516764905959067228407730487450719602762757958551762562764264911224217614128611789892405110152661344186904455165618609242195164170571612482317627055735710434834953066366522853504581099324581076507401181705748257833246456537473163838009874200828435856037211446031539138344969284237588846201668108350229237152225966886163012291111163303334270230593130104592623250618247581030463005632458703011366205089419656966653943884982822096282789545904453647632290577386825484991008873532131109501706226093148725285839160789856403738612164980842915064482822181809798217358301045577933100874134088794829950097630518844324403680125822411196495601697961807664778416033110108563810216236446391366808320292238228061263454400503914448184033632384520101589516530737139907792502773318691768772330423511643525058560844692141888093092655573967264488613493426343183934180098544948012305055145391108192066884804962228517108864591803923904223218456173083777826525045265065665924254886092233459210184999154095146644466797527235089492877332043330929921713077979140734994445859289263797452040811038607675985843766088923548853049590147850203285454630701305494013183437254469803932609164178205937359528413344946810468384872728072046916410147098212017856640087790136620909107548803975301563567467568531574793893320510410957581128502355052386583041139838787564890645250280643079269884423320180189208677501500453891210307747852853071930913181078007564900739380795578012072412284167170277351347784783288007193072574825184275342628987153440177540021804679791878287769010263442681134720690182420448042088801320343292531591444359802354788885269050330576935336338957325143635980151152575928966523654120808323130149153343400732619782598937239016525945422810890080234090983285147184197109269637601067383940025450476933523723497476780953078100594705215763428687340068170351227920979267652600468750716503514519369527007796585700503300879291733112041557497609082184162496145940232049421331320588562308120862811649352222157127287603067390447219379736483297104893331823932018695521935766350752874818532545591871232587871680999462265265853665072858693544068774257937073458260812969545970569383520848635361003540419876467435543494979597299355800009823610588381697252047584699524135995717770956117525795074890303942199851513531826552877004972435647172586021402911051287889407792871854401111009961462390216475992750260050101823371130918976386171837859742937090244070717594081018935456721939496686400339499585290581685441929255545119275968683850334567748286675016145030166296129613447220700895148103418455692950723945167271620832031966434194097654403675891256845438443331333981763495027196198702557842953992377400749374777273506747271765174587826372593167077159233160656216036880252966226843213200157518221811845479632279673760715759616424731972593390237819082860087872903168977561350567031062109187472675993991582877350270914530829996138695986195042594579560383538048078073773142568792377261385483736751352704378052967692723023045794917785738027067231286284568098325620825952250174641029342463226875003767210110431655688486255527259145442189483376655315581458643812484730102051129078456703230407519405865050897020269759803863831265054952055664500826042294442788648355482740807267018781759186792314226672213772275738510800547507919976958704811846273283231923357270282859670827706521685788501471980451279440813920950259893976462770976782716918277152294489895714004148634179363175677778163354460868278204226433304771835892481688527622484773606905611061334244443064537486157206414375673947755987579673609052511652180442862024491506102539166173140886375437352507751431841714701197141962770221579382688786256176756255418300869501713648044617680547557184894836864159369485647418903037547369412467816468023016492943066729050775778019110175971265472454042779858723606828916866623818691999828409812106923874625795764731721311787144639937553097619754708884457651019159015956215015851171292460061554573622558842698774794614198452973698940417743599881697405352105472757897777595196874784647049111468142896100389637957525340852501716376225632652275857519129660418594131632694419134697135119098292874353550239332728251792490345345993886754042737500299650006575099813136930825897803978141716762590703554550061284536269840919085407030349166334532135409438001715970718176384309874714114224700554679273986898714679967742830951561761736035138835018209245321461405529760440444352364472653596930036204689839494521568274195248781814698709900643860819094442871379280439379985522766322756937766293470985239065213559707139465433137197941243679465563974277501419010818471679945049965142976672980555593152223779557108139386408577260259434185265983678669108729296251070184453912120781318788626832087665687140023891493223997782961352312409701888322030154648292013115940037639092161835875934513508936487463672473108455216212465990950992972624464507232862875677849751652930088011346089343368369282725328448083836626148316991736657470411936553398529269527949959555523111980943206642873522304337963919464787704449358838711231443375967141709206749974179684320808945566237312615943741894617479835535923014867831382538828045413744528224454439242663209941962408358443352752274525614625084301152843365341520358042173505144539346536792436872544066492779233461415942368024808419830825970748217366715021426316225239454534070901436747574340654528950843842821337398361925967033623645338254012936054433622818847600614149098623604126124165788368051645295546017880603060548545664258585902210260883980781133268927719358325988074490454786051101644575879025787629683858300026494849453377828266793623020091673338632905597876615641331216272335292025672332756615864964250383579260531841502740403608608443556536416379377208947858331960305099310285773613754067386525910255512293033888699372706152922787844768579709840192812261516203747308381731068405002108221324672011589086514558229623135281567624266805964026165657624140403337835026654575596343567721572437040033151321151415759584506760662182382360084539199369595957052565475398291953393312469770764887271272926724842992643666934415370585592890108857237544462022441914551582656900278663194388847514848327150489937875937843518876792616181663286335176917563042846711053174505480559129529314408411186365892846386730729346966095014865270569349437297637136142752376657812264184009037340019225976677134135627100579275537146729836065804172266839367101956439061264883359708309266594547457765315131267112626962107999030760462122007530666279571176485978623339736599796636393350099906737791032923786346908061969847714744071269324314794533498973652398146173596941044947064077216397288481644726433081447118885517547152414001014795605269647989301456603098426672834710036196866542480879312997846435649650744925076237767319367419023158554992402862336500912125645085701468558764088494822381713385580961390456992714755397759817627142694343573206418555154928696308646004343634585521822390052947619636248378047609426454890924318668563228075399896728696921790829545611036591814682353697464029233055466830448255176818378521716847995556121528462620969695201311748335339064301418726703478447804733304594723153666895784480168278634195716769349299382724504002247327700500490379671650115022604997954868529205788554422169437758186447257693262633312759469869874716300661871652617152405299877878316496360964657530793444747467456523621020060352233450008827043243167976757926658895172367429862242525841850131164671800444938719070835396459680450223934731892780021805449351787846067566029201005335860504960769651533067163783593574335494631544284574743454975041494274948832362255534124072488462124700508678392921649153325155347703688177114970259364353680196815085621803273483406350932130302863402754496131319073319256214420148697851084796234561729402064586628385918248219626997616393830618559110633971345229520746745379330311961191774206978041491283601149393425566543166489327599162605143266452413976481050581718679832745542030075552377317073079601081730288297037985503689520406804271218516447230758523121271364860136708149226261547227602037806563146221566768238976511283900363294691469247145428408165922708609376702030872203486065600457500974261042390561506939482076548949911060646367956544861804602440528060555316491422209259339576263543580340677383526960988904158685111301690848764437903098483939942225762543110854569301418661286587383143728117065076977954056950613936064736524501822831193194922794950924669546090298197693363457810877851906030752916801541755444797936789032350165232080062713931144636541316649845283780228731709060617258487528840574520603391038488453723983823239468347086812125443145911352744465395325916271878952178166180012867733761197347053496282017786976208676706060003856507730024199261448403873344831424984387350530225104570845702571205170967246002121090377109961304811567528168229473578149165085372940862381172304049987931234677768366016999111138975801402887804981371974182479883435366597178391796988768141988118529513570664119868780275083277097776334469869283720806867919188768579972301491000126244559449427526362356257138793728186339521469126421492891026901486493441052197942239353279449653359858479214906502211630643431828671677310330379352058699469363178639547914127688114444186675925143572521062963200789620268978676016280096279908383365746889680968254456173021256684832735128953860279011363488297886672807820254715999769671160165626537137206834828257600983767186620540293214821166089953977264750654044442920299660891754804132330406693188270948459125989615526402631164508886043194710531126566861251121528385330186743187107915667724132462136644920412247809245076212639056016189844485347290748900342348641478726700117111986347621186255230630077254507707523366380287467283056979356020806943959048363425668320694424811192678676433889796467104692219098433667498375833770371444563530727077021980610415742140556939341385256246978341186927935283713612963049648504355907928367804823700138714749676984917967738609418749452903510220325824860160224953653347129723942058864424669559470792652243534228227674007409013592685829044639198120849700751423401079604587105613254609409969097946523963587131773729241958062774215605819175723734904614634109821012785148095136811021311337214537907130209266080737654043470342794659993177636772122694388930324153081796944560832896126010098931339134284331986568015062786887254702786802968512346976987272912033439393564895168126184972048604251908196715425434410586647052970877597446860964413747009360701816228631877608355244847170336375867840500401974981365848539707554981039618422585614648273522883010631808300267123856616514823710911356700602664335068127460424870934806604559639544721511820205165145116932269904739454649514681006785622602209213117553518111612379361326363825307018309299984468459203232909632749229378874472426564113509183064324565390099235022326422210513324194601486455475623799966911344136309839062599149472311712363993116033668742220615401704529787460503749921759307433344106972036209754192372047798101095328985236576358442120491336077285128653157156767635265586760422967258778318354315484510362228790099942108547994278733555730620982879720890192207493050936664947748452305711325427941876683711933679566657319566825662470281951353928326421577516300047504126859786563015975835572902316798584000590590323500005662213269509969741060662843768934417153830930952756720117402956696575408587051103929911810527056305236047762832469870073903543276657816446601568210585855855238740559121682213099195038271744190984239140566782006700445661027859437336860113711017466962886997411283021087872271362262064525803303186545056960640951742570928411785323939481902880462142945480678753717850664678946766227902912562882689403122655354341503235284947492692990107182102054854874125035369693005833755120528875457093582768947011448816105877536431023613944301641866388277610978993084690658652014025884974679958904305191613119652713940008273590899210984588120565904303443753108128028656995185920824040203289320707779529132448918315815858465035053661471063803869558924033111292194217408222570162923930118309127868736444598955216106941255078181954369412365240559484234950236219580435815853092272711623791141520363784482251136420879999208891481219839763125511403419733607347557125173173887636994789258916066680791031448648538603010142894651064042658335470527218563495523711829511981851503533331495502297225513023869117873777994326570019224548278242832964185496584745417563870083184151524156022791090869879163494750251417764502758960018759086276267865197728014958410520129839400684747703857333247672789725983441923600977779718536814700425825300459216720642201211091303813995288388604339952504870680740295102164385589840075257711876974504493350499574467139777677737686873677363265222065457467014075983775701944019193178865379343508048594350966069557896230550557541046197673306455335174755421580840742610655852386304233377612167933045469767452396054231933022913402804524823278634166966029672636316984146237452010762038977421550394884262498722538649647708593462386056708801390462209052839164131751879301092155965988796113029477857328131904271935966905963296996077815061795821084070901597765634545372826163397476141900727040123470026327592802802991614089289627290296003854618672911529440075776338706846213905646977727788154517145464533208504176616881993326946521559267161225363167535180043648858928903280332725483199449530740774972070499896747657241575240934639425728275948798071313549886256751197995352417922160806763964589568382659315365742986529001010121411137435823521889269450820633382155017662503015535733718186281163010464542017762483278619215254832211088293888816753561807662625924093180158091289942355792738199418155042013625910590709586753143752797293710162920597963530086597176580746970413219611805377026217261675002081023778710333072279995755758827169505808080528590562294715434394635423367012173910681052260955479437271055569953671103732630393313949332917818473283393343641781384264119636826344318200186506573836136189942894832483048948291350555171880740558291814626528801687009481850745618056396942435144298113379076886308768828763142042046814822938103264185675189727910903947407624679752614299921361712070732629837645528832343564313764632422539034465789276669299982491731163072397258872285080793953760624684033442842406997399700937945369147247364502413975732968315828762645107277687598138009682243861598052544623878678338103729260673085232654965250316122795959436755170110112852871691013022661758487400216527276357651581955230180564198290852093291688091468127011912163855786168567345893855509367790670249333557253848100056977312203742365922780544277070074784191901200409384633858262555861906040649644420732378394429624900779563669823603115163393519872785421974799589940791285593939723427565485169475599621103774734082865635981936752751202138649517021881437873771717174517703387688508484947738850316405054887070010108260471922359457716838799218146275683399994716384365968933132985636866023643871898048575866544176962439516256742063556695886487888097430806447623749428359010379487292013180369880229263459403025676197789025049931138586717908398816033676216863388688258994169443324176448430006259183012942097208159748562240772855441979734260701914874865220286694015538442618078707098257028776855403395805061400898771355081046685681703854727915121815852842559500155284685681867242205660134034776017723404097115985222067209165307429398302194562139416413351120772989290499147632264123375389506684024852206054311940997170499204910681877879362532959344249058175018766827911172546733242804278111655836974744088593154446381384330650101344512895497696756941379038124334672348893946174421825977783821381506535251769207504914863751366601820241901249461822102931985785792234445630957927401744842498214559382230865797790888734950484148353061051593860236040166827502906461734826925080848728488681574101315690004808758468081300990822516876013306981433296686325602540450935023839721800131398503375357046974858571955591318225938275457234526954345262468098049559074268502212009039784326500735603982101597893485486944736708489067495881829288472185804325451779826534022117127337550732524957515112306498589338201672988410742725391136626181268512628790151019382282924636679163869966576696855431169688634625047995944689214812599462806732582645978317416898163521575829388165533207939174459278799706980515028818577965138687851072115394704542675164894855225283995983023020740039581582896467133969362570185813833805487316125265538390244970997483123963020555632052413217662585044957987663987388299112233813591711029812602671927795201676101480823340826035728737598702567129858693293142722826561087706148045228908027723658636441185045563011003460219086194387517074186572235028377169920092299282958082306714514185630576004757473632428511527014200592355416085469496711498495478070784498714727005099635753521127734506803474368372748726516913941487132130901345124545008747901192903331097906722768326397868091069506646544949336898826038865098338491570713213019836520543513479410974512932333295010042745981725672079318225806901622150325944131617243948044035890683281068763375676839056027058636194100694669338184986090255369709146251732996342268688560453822279130869692654438495826490705577652631713113504663285245971815884281938769378095207709705434676719209046287269201911835350772809439403529992919854329092961712702740204593957923729979923285333469592704249008737789926015640735992387911305085379072445005995651045019695496143858268497577169604903087812467191735586271140804624927875420728128545908471114363809618642072738808143274373450554238858419277323687473806489046434607347891427217328681898198870717128149673745560634627412022719239462548514767511698239542031045084081747637413737489516668802050660117237265610568103351799757629555622234852170495045253686426872742244856349381973796221802844977130701647585160632704313500204358929216115858519162954483779252804525503431689996576325656391241338651192209557319854973985827005827034434423580185354692890840614101444259084923332584230343422784625711969192392549693851826700997252160056938419608506881672700851818988213674279192534836215738190511084713937078012831575711050036302646287744543714613188136376365844650477874368176637047303050138428383613823431124640960195791019638990848569109669676617274707073733245105342939429530644964849704938313607168438859250578926988683459072280925665309632895484651203651219512163962661674771804979134281638944293949127614239176532835632895953809785808701674456741564071173512215332411551568216458827203536356919945769038670652228203885129070023791913405016199043056726913315617414076913729924239668620001440649066740780511577912371853156673466602341924996183033709778139842183040444801242889836453237675410350826919975817520237139972299828052476247805284363460590099154647262162014351966581109876407557093746038772421048557412486036462951327304411080656086594471765107672333437593777603442318263503250032937651122001321090496829018748225382534774522401109482384064488018337021892312254449681501543048323959146498458384169699105947543009558277835391575411343083128285093506926732104763192481097301832282538456407221406885623951277659986510480445758333778947291199044243713339669093095384287086580171840666913713085515690841778696292369249983005773689449311377064962141930821795428423737061099777883210224818087678387920410701499691161417246180131106813447099906451003973097557460106663058248586113798465307014429329749935184226210554385298431338757327511369191271493092272350986942274335499656386247151393932135520042151908665223823383286555454935024978427334810568541508960634027628725482144385176527538290971180260820018308101166506656629038331461946365234797619845418213597392784283714897773951006137152953946580891766187390183292611818372377036035760519345115589281665684800145250238357481568553856408409098782285414529402332605901924085152920409715015998357290922347603118660755552449184653592612718123666580961527218112723837529198957842122988035067588318067506825573749676131325528486812220164122003154278110032284381462808682127051329209649156500660794614535441233454253264612034670635394290121495226032197008861945144747034033375338118239964774913229270071218272081676901984285104312452507633763024205295958861474517366517486310418346479607786169981375685965852365097998908221916857023992882738202404909595679801579992708083811626247014783584906135573556227446226135870677982575331744359255955030206130136606306423578152929604727434895000405448190728621741974967641187835064632167011771101043272015891495461734072766622406421059267250155328285496537054250627757645826514348694886018059077997717225673410148022291481788371254216965054937162467059615891572255872512288369634992395432223524165257815761170914410192877392300147909512691895520759972641654507300918153513854920142309650690435381373658741017989901461771859012922233010028318324368323857358486396080066962017950262191667318012916848774207356840870965882191830584992580072730741498325700009691756072458784575733184091697649708194236825566595069507184503171563811349604428342726942072356763640190193430409501906089080735142515724926080849848988303900654660924126256518292514992146842461462493539508040104689558988783488970450793528546387569138858085459228668497318496437860878040145645216951093392378885238494909122137479605496613190296943546738001796654231015151355657430047481947609523020169052715311413664361957143193734833344817275774011402931154515931491954102079372045991837455329536514806175086296154593533791813461631760700256812601575079618743402016698772088647871650752210707532394586019207995624848344070018850658954098043086731687720988459034060610515213173774663718694432543065299704634105503434616927394147496589298006883923204504415966181723451361810439519959040637476403563495628017167587600495722403688172863766332035477253781172539008841072001621825382760455492425577625739249813233493634355057721073437113520941370715432743748902933666540831612798219667634501802499905797263895203161300889674103808558013897419437960510436725065347232297202494557471124152054973401752366385094049968753783955269218435483552772979758596034440790267874667637625582677092429594954303098190310906211164536843867875765719380572092277179053554212139940050400277772511634924723857885455361029993949306973738017363415341695732836848074962803886802882711680858322432788122594636088837597303218826193062521262053228987366155521004581273785055424995791411361715263150565992851584577686601739863766160912491653869731140952664719211956477403391635186538012645240170895733364486845593432442780828417311117598990605869015757735580600840650721810225474666760171660946912082991399959632461284163000012318400813744435642805131364833383172203035087031564238702821107819102779352156375457367759046212198333977000815974946666446357638968369524006993420790194733665089121163018853817090159028352067297859669729557956471994415011158320616136844068922281412204808544617435274774555257814120660323187560966452286253694972438982781334398901390000109370662191424894035767784246290383747024739716178506420325434452874052631570231696258503327315598166313512641363775043824800827950531303569440002044092563277288221159084192349696596619315725233408596054820673259192847818608949740341629781250571157147563734370989151218099380462550956614288849332537713470240195846958050162853033836452725716403098459659411051638476279742764135887456980936668161758560279091000281700784006597887311262757017559140698362443138310730590923989708144805994599406213254282742744135993146622524323402452316331906278103502315908993701665205037579156768727211167024957274232911857249699918148197989342899698243446805813938667734565289029907907338491516558359077378651211369044466922377857331136539993543788772637490271442832947384969534088413438396898496081713543923989029280510649786094731977158413072363473991220428473143485244474756766912804412421133783919386995657028143518993141183558457522684563901188050065073712789065009761870915365614807084775611632806560376066663585986739017648083778386411178073123999505132850098117503040266230905677056494711685373193262415301026139562404007963717816711655142497568191902258550654990350472197484849056224888777269328979116664484235941174073520510389360672297699199283144146938644372977854284746229126946197719576993264367181044530706251612102643810235898383665656597067434444344718176346145943847209958177882507287875042350141723260883728131746048064028738653745515759541161426169245441832517870374593896275972073553349588561423360266588530920204115223914662735316028763109776732606678216832838464171763425741620312207604838078496488147440361897482572916309118540381072435061564904173807437512824195002770328204143967828756214677754959586702532405617139612020052205422227293456387055655359898738139635933628623705760897274204985910759545286173648128971537255018234713772531216026112907157875473521519517830485769948445339749137370058948201795699650748766169519918148443066021110394747522984089160424098199221729655638831332493499374081810200452082142562658432684825035091941496614496423378385835258161365221158383557723118394830100766476466118726617910799331979739231648974402408295665954039133919601294995281168172159079985533788216383752043127565972945567936056094797054042143380286885858751861092086078850234654174910819980789779191909987789903465996684021886709899424410211764338286826923218329152813385274217979189137881955359761842679643903381247844370440144719396723248145231659961609578704099154225514894644933083200890499938545934617913565270614126142833647887998007710722758862373967245692897087222135281990618198065221701992107601663828772594989980513639239247262839251837024282563933979353522641332086698252815599250265768811562156909880354473359085785376178380082084042678796833294021464109712021476545526430674078050426507991964046413956262811650721130230852450856976117398280930948855504053650995040610920146126175006846669437460109324667596986447381025831947482819605299206118311522776358577266630335391660663992566464336480620875939603328090567477891156783161869806651801615532511966288118545325789125829416293541474489187044635080478560861988581856338533186045438225503567509663163289836357254895585798596243512496464404510226278121578075900399326882129847941939092076014296022458328764421442693968685525156325273422703543136575076004943506353261611407330581853884275643174673134961329559037966798796718222749948625305653966001880788269954640993179176046977349868049763923922506983614419754915810563253188039854245024055506912615502010023781874831064351983688814094037802791562049660951419181264271875248376826840866341636631895023474111236345441446922680020100653183699166951446295481209975328104372116181158935416432197526583049006581952600174961877415207393012533584449693296350848069432732318980959579968509036735710626578265385841059871648768534629850458672131318810245233159931703234834544562912566757347885597077224117839025578899543364344421965148937990438053187237532735953607060017772738832561743781466903433823438997659283250239731372384341894047469890697921955224846963691185037964060386657523848302769166586695307964642787709308543055597515842860137634720346584579303353046198401632860756662406808353384185049650510751995718954598815015934483605332037745270535589722742156783919468921543214920351083035779010894071049221171456982682151319627496827917101208204123327326082131458769513542527713704704875409165597013164508118348888850727731755449864398136000232660576559334414245618144021061248205541214549914810252725204053726940018351823686031501025888411274664764816022692881175837320436804928567884864681425612685171592213928097773873189416695623267879545755762273345484083461105034918220137142283799538589692915673759082010883763942289669186732188863455162491461204073073297143554906685322101546580074502726440320227664596281204015485835449455967684105241121459180022466025468821262525966737877557190975210033100863397250363625568502213640389117700142041605869459677371714963232820415974483983863208696473138791532929256024373641601397254134946413756686289543165582568482724062396933458075133850346014145492581274018778690741934420423336268614262795891905884859174237302722487675136086047454441912642043182586185801041567072875352122448556393971658151693899395595837058628490637799358187207109247066407715739233144930704673701684395425749831694297927079683768859025218344159625255416345551064454448489317948167788688013674732154368959769819096538684365656270629674475107827670223271218706970346943276325211843707488557632458504404222231220091739346853761461837656872814496652927764039115912653432336323165841052457955343318779718330579580993932153818088323358411284742215988040024828036541805563139840749112749038092827672793692579700658799011888251903083749160222997536754191634449766738255125406772988622994982719912251722858197820022931042522133661796496277920985313118646388264338167891436945092170309629446102044603552995394711612213588772716105440347539241164381005843071459064500348591051665659427441268188798891474874833109622494644864571620599457256490118161856751040098246164549031841884202454677655750934806019148264080796786556948622245871023494399663778456381684661389771571293450190011231298695826903231171735417668191183007348914696778466425740554763741354452037131442384161242845049548576096250970008078379304989144443067230555369549785237823025383005198787754764196865063708302838245767945094516297735669324486344687175137128249002299802665944092678288629880596383693869933267076188289409321241955747938964733892034392736193839335153783919840374145467687098998473337083889194577496571001421379547230421385902913465710346942409605118274946197213276576909301749649792462774672824562406559511491283185350986010422564460855878507194766340830224689318607885578902724767446951523453554073758954982378421293943430606299966315412845879548012789392721741640889609169312821490623745195044763359773650462155836614058086116341224248159229177596038032553243862181272510992951196060210879163957287077165047012942027224651609345059255207669252799557200877356355295849106229074274341971541782716910313425596989727252709642090684753773087328049730748294142344388799756495009622187747696713371143077040658305168232149478815027220137322467397801939680268013177710516086674690127418399726860988613685045250304245979039672438540915065534582924423253603627655238574877207097186412873487985181217015932464781946481784177810157750866989324658538530951105141375914516857351837623603435686803409163527374125341617573662416800022882308172348074612096277336101313282267095359285667975202093986530790581040123774444504839644063121368164099413013477379924346464170377481362527309980737305950842689246407662485259653050244299060576722443778419185811117725470665615285043001189775210358698916001835132346167460429900239110614918079874995595645208041267123686785919642111005634522696067880352950703875257056515797166708550958128902172925034669757710736697460884496295576216392132691731200236162119167412063799323215361997538867855484468380081605927145347628371185284583488875828370233732426251918343356371326279132162495022629641215595246067721556026840355934129683234359573065695471961437061235338221589217869441628665435429985559135357337172598097248646763360787046131120281395685767691900127193886903493105144856314513103334545014682082266615824714341518210407075325250406392379542850337561096888353031135487909699184423514612216887508153157768833623011191947168855859495339647203158148975346659273306507839579208388255541232611617435104193827276718042645645566922918518727948956182500101916834005182184869453584220156056714843985474856970651925790025213083152934009383110227804337822093694646057375888563986683339728841302220915153414296795942573601140399557361459287027789967101043154688719891298359291993128964885191260983699438467305723035326098064210071613780229360452138855165788792498131237811892120008542963406446177852467473530792003706942232036045805075901745642041228783334893737047542932118818061325689284257185006211509559814106391204537510359927577914963930988048657425658628099261190344509888541361727384388723749469986089794894934617995110204972949840281402125062432808152894190194874142636443413113544340361797799149078965735880758220515248459219141623929995293648376679172708274228673068803980470638530053558222143583638064814487942567596670851926955581144621849898057421168704200959358463109019825018016429423258134779560392910027160209157429598885153024308821378418959079357579212835509283515990485120394555668923948698843853424728299770142615676322082324972982975668244586938754355660470767784966092974595939084557565871409680491048424187357711236905160867886542651296757275397885191522530775261542539657433400807529917803743718690359660303708357632897490980660617884521270061634372021692597856172741908547161218067251811595007358508759204759020803660876938547272916865234324438913920066961295838056883838056413995336476575705123180348986880230443664689763235271915988568917168921898087520537063768569623918545039952635488815897574457888121124304008527552267960064152385681024279534553550666287936903111751094711220414086252523917234218251976360469633742769357319684812824135487643906200965552505398285047439771108141336909015115327186562294821059365813008867621061827182220996496880504345882981863900629273667911386189073770015319159841362492630276575722951547673500957283916134668176108127059256582908549986090870816422832397015521389601414985770532496199986953302945543213104311079523367099075890557507692656816453610129877706986888570861959809162506032461510826437774139495782547128668454515818837926132562313747091957719723428733141572819636800958193343225166192711622896911074507818066607356150806667376799258586889670202924406842879511793402394940431377188749194806705992182862320344946359978813707391342522398571886326838537267445694494066068011689600192921296544852463113919999748227877675415777063873362135950891582594698006853505873797061969809389453182206975558628938955661743801098381031938363777262433565121735858771664920759181380254670727659655154105422144200687986777112062706922747561168775582104172506021546338886667417373201726288127440916037750612319614441398941430181897909071768041933999118379981260933584182734993311779356092452088973026928572471177126352606516924128693098349559919102200714477074603763166602012045008455513641201414019989411218077314319367354173157360050871506505109779567116355387851109293590352627676149688337465760742275568052971830234589175788100521062846859283679525663907304354958078075188395157520592140877633032592879959724716394289198948224221230462514786020776497839422675604166557801510806053449196805096676108086690981134173174959466174054898788297269047074788449046524751497625989916953547237909884488851932689611029559473030849339733588654894584966135384061787315134885219913494508904404516014851496177079535148285223195723524005066577765345040490134603847379049177485965977732326033409263855678946245813561909759042729054911079378660177877585203373317319295713178115236535535945668506377952626144778634163401614295234446845458547828198335570819301557482033224446080386698006646526575564965887853588456360411163451559651212227705157154323491335119799846435199223434373569313636579820222543156993361249357857519533984492836556185937541292885225373973162833036953198264483272503799073849586568378512828740445114708031638626855986835024035920408461990342126990991383158719817574687546719735807249065857237716281776163018157411575138985201915810349695437296733175309886223521732810154683918235390799026284024508838165981383864348118804944262969207233653410521428693212605344675206923547977459504651562208590681717158498528201431604235119583004658722224450393692696069584404470384995434777163520020547255330869313475568523082408428853623052641391102758862365379988434774245231305834532566209999822433570445056333482200447896787398367476194509781832399566283713422937144629400977608119384198818693153244520533551406746196277821558891199820548096741665485357215766027215514390568273742390581041261961912198926340920234396852218353956665343032034763882148610670482786491512360632646003055607488935642194474859432115113671631531540631645842007945834706799661689637766923074054493407781619386961758074099795792321284696096711991150989589448957912756274353214250823238246327633466114550684128839334182635647601463155382616112795537350198622697863765497159353242252007452456625873256272725737556082822506725723146940483896235919889958826574376234052932675796902475753118735976161283772853818945552555756734947105073608327669981562841091323683927354170289165047228991851633505125105969224523458408464795599042720536935141586993150724746026246036765220275792107785408990505001994938706298969369555111404246637503263894593509909311835069972395860691935812095381492391208597973117709671012105203945157039724432287507893626812038816778886695348486915624225518521998880446199941433261715717699787198955270417001226826972218672041614038160008292413954680539009005523635487939131792106409999571242737145749060569594591987308165866123041424476588259913522672300855948790426144142774364054368602526038099054405748506492821142397699885713357441947899060966911473842816953509893094325902922357761806027903253178950476894517229637314455032486671750751189298339572093126564902730779699783584099172917749298581206638968487420172932752062026923907950978004414696851437517818821387089907338803096110967721729197353322375059497482734241426619717477517500049675170419670533295115049717252884062363031199628725450726790121072717313739919635877814414472550858341690456933553103428360428643153818838002910607395825079705831015637012447202202557959194492648904624037130043755958193811014934954416268382009783915474797897013946178261753907497815815376283402114668975900813748981994753754437086684860474933696617198745813232860793885926134001808352588612144582478205314277547846586646080323463085024484752546721420751035983605458078018208121377143974256621607080210253991248873252307890088459641599310917436822713423929975544075734725736631133779662913875504701693695718112284626180124035562630977309096334613650780001663219386388530270993865144238968244429671621305092397889922297281839403920559651433318138640430139879603254873016692070309892700118533860939419655725638145495430732486228454527577395135413820114352376163535000221518710764815572966157483390307108546733315702316880466739733150974692999818805710574973740600350560431673423175654186924219863864727620646473448340622724208651617364316285074926181340940553879615384645486446953902524807405284861506463229921378795479990749810393153029008533150753765585448844194144738516298143031703817625676471738825842327614364514186720696956655151716485790637619074462326594239429444205162544549613597445932524687913951090482884539877080018178986258530963100400837699238998332780143866771198413677782499277127550319269385301930582940637507644492514450586264811729801811154971099599283235369383745241245932147848310544562894715965351337484931545593054937637958951191226230605315459859002849505564512666460232231908897478334708382429633327392372394797481247783763560081086729355410183872861781668929869607530869935216086741212703127888505362947103214035517309132806010439091303328663883728837652829756028944992721787382307216980020488581083526385164853525485158437304847615041675142514893566051348227381156297866241265099887639834919908218441118764759436587583964538425452158406841587397329847519211794876988381686047898646671541160257980598988286760543246548402157207997262146960153812549507972035100756387613275504695111985737007892251001168704308983910092003166550993825493890611603782343620237804901774410166589084238987332295248747462037577297856966271911291184908212548438201630801666040324112325352529214290001773825978522027445800975488211692885291227419816469428321702776228150543777451745371144330801770113997373269874543633704894508838976867764381002422702659797939667282552533503544671465319340727116014631627598758237959184451880345138798072000816361638025804680795653394715959301156423887996586165454150747191103924373645910714354203629006738459025609809950975326471585860073183799840304980667233980597793002894098907713198497537119132204776008751101622877718817448905253393567411103493900823199172446859551659564459927385539371900305888685289810321002575123568179159343497678387778636144747556673021823238709141306595004033817485885098558257503389504088142072093302069648426084904244117812735051615417124232824483350431081169197358766502075985401181384581127967948998821721886789341980230439979022862080957115516929620909842222882780338642192948919259655571149236468618749892947303800098947069915072406790742402167441618031015569154859433347962507680774317246748530801497140702047137597447721826355736774062600028993004045007292435619077785485934555423576549741559361554784244509654101939862286415410453763511882706332805541678845976318798512753454220105026541663991582141327471448164053961645505802916086254789560683733959354155061012422867447260993431618047618067989517582168906718736702833705850849266014292244501893151994302321008714497165577980156566394330782895448915790210669956587938727874946629828046826063827348054132807934532100177520192581278677731711473327809669747352457897150997208509900764456432720818806660575446226697590242384781365433625646753722070432007699767358133624458261827883239900319743079504667622131574183469996419611920587536452289673587943158429317946176872622185583638347243495955086512349844766635478898515667839200162548544176921025653443531512438263954797157927368204408690311311167679907648556171890499321139587210333436465082452408400748585416225422473896099624867291150951672579618932451697568255981004316364586742808353747442370259340398631792416917495226371662894472156529659634614123791482763656896835503878869718209132804787698495544727529486180007958590376826535851793013719952071985552670538580534217857640440935552434363937618225635456990670872317202706073142537443665576374938494596563926791779776681006156111461727455504882196317724028835939331479768768049339220462376977407621794064265657730677796025924087892335601135282127116139200082651472822032696600019287026645248202423585499662724962800388261692496976561504071988949900785428144395711815766581895090902420750812402912682421832704349552586152632254012002035739276201880025774146432761200476454709496945345937107222367400544052604135988989039851674659222209480620951210462008763911042624896898628155102774441512174996716482889781974219238447501900072429650768843573313661330479355828768648959999826667616298047079105021032938050354140055840567754950995695630845831436101633548781175015738942308627487222391330346080512850163398116675144861129403348191337251391493886610992135972758174138367734833702810140537908062771012961026991130273855560469084270644439512322891358843681054169742343571214995676920841656753812702048237528410476775017241028438691227523494771504022285594818617617254772256158381477711042795814464755384658413976829849811888956344130152239859541381424567279064097640530875921829045829769808325784116501074755683037554973015337047201892247028834279204161947708787249395404818812740668633089239158082946427949852584644328043894761334343176818672178130692191484197311040371209038169057450808731910021128257022604673139541002567319733694710348116348909269149388332860476223123391568141317154329085792261486844401305927935055076020691165390533788040683014987248943898681739812521772041719432742266271648540301066700218104534250340840049262280951775158345876999186879525076130292742981938659248524396452718067547449198915730927616806968163552630877412197568856886881744081959333262461420440038921915396106562490221866113964942351002284861318288566930378872013634557536727519943757583969106058777698207380711828659537075749626730894007113190547919652061075791891943327688696819081332208658058531245354951602662301152551608938715980877445830480706394247844360562723093922550212058429625108150838502056541233793539582920931309595080459499618760533616792712819049610437816905709808027138636463709848938168320276336581834081362616058970807213748713958621405716735701116112046318153567969623542450034272719737870741953677594583265677954089619005392838573991669106216497780443257976459316938719777427138928051861670747044075491621165529797824044086714677017327300212986953644502668318923260761115376729892538549796297807503377752465050449540409753232928764088917303126008262887231518029638419430777177247861123044611949820305542731120223327903171896557280726499769103217272716610590776483000023366620879462719268178573816655832818050586248710156454278780591267921589794051632663434965847317107119970490556447323820336953522414231819046052279768246172014176056748279345912344942689642198110380522778781866712505004724708322299315289594384100570151730550226533042635444689971426626804938420367687000608698978264500413399134177044756000017563995125955135489560157770360436011323471779447723072747007982053132832140503661508404483138965270389463456142840846313191849108385282059211505607937774359426856182698133614202803733904963007799927416139510956503449432736139340426439135801892597482026448035413980875656854702730377651620076552375608607349729574757815221958109835783958402084725866684099387016494816949378844016537214160962236709823683454291287764379942011077591710792527476945281863946219920199855864070231058610934690936432505198179418871874713870320625676024147753094590595217165251979885249379987803977112734388003800556210226138121496465265416977514874565893074253945500836003885645659484691942618521284099149039349698557669453105546101136774750542636336472596044896152669385114436877703766284433071582724400800978771023296747101143588846736292337745599670166661410027737220395475951636471647035659376260334568120442638940297840631364274174359905157585212363971497335981484877642175567279641976424713672508039755047444540827734548408784384539371584534609790832613902334680648513104406007304578691140192573578994747252562519925113462225580961698490094690608816763703246911719881343448451303980974925143404258952966593855570837575242275655615436478285763892315933056511144284695345415613073711452686928820070112123143872447202194837379515549191729120882615006862105080687215830149855387240073918796368846932103391775407768250645149064676337619203840048405882104232868077867049086710663295151174712429943851943133522785631717492716484114366985185666500753149828659473636083487484411683310606522022625806453795275870290142951470327205289980968313506943806725717304264610583244786556209754598711098055595736503440175196996881071878622782920504621586399793577435317175289254488086563191391833592261142529809175679895917967198305263115140895305833600230309142739748774091963161408596386635402208814875542870106045568574625322094413960181384626309227313175906953211475120280502894221128849507073361715880978940943386704367789551861698577257303785424584006832619947184647980669196402866047791786423251920689352877735768452445208783949924401036088984710346053131499958487911684601800026037261569965623941624858860993698646187043361761735331048371904027354880221906347888869669922988623111526502509683989637512292765594839471659003237784486696032207193840367313784017863109881369641097563680736097242823061935810334581011641968124981620653370778371795267709885861633065276915634795965484922962962426171426849985908524563649125256814060212009756254725548829147567352961843056582951053161999400543357415635733772086009878855482583918405591018262964668255433203189073684243133123046749773936724283713074406741931283978375541316307359478284917425335041108608126350081798071290650921335791679146049920813934938493185514035779725097543429004186851632523756368150938113473674417590616522434264073784779165597409625282475178837904473250939041882976201810149465126964925769214644687063790590646771176828125203908328662378901482900951364873098418427982879019993941317525763773857019080158231217476504125429903530846070944780058893279461046457910932288412025532118425394387793618979654443648602441023084180362899548671608706179450213381476868219907081856944324900415742075224146255726942160551231024852542518488414093468353587506390821751134021651691486189192855825472222680988128944967814964413059453510846422031061728257368432963692163938352913738154773557938395942919149273205776749876884358687467689022626718311155059559402782734378252791174798071206038841166979163124655574705370790609592111662211695614220836420779879941751866402031180762274948707814668454982732965028532008703322046186852514933131356354954334592003152000952399506619221116100886835745689420044453548932266240059956405826643709336429315273262016669051031376518461273387529511545734402941575157808052893034662704359028923750653896267034561094949118399423443161175213572313156338456099622861300938821212393258094601196659651647989656675006153692265936345582686655723886126877889496632444147249588291240445031580620487394351144136349045242028327411783671611527110523883014375931475396194472869317471977847584383156989533562204675510366436310843722869794603318264228355430043578836052397839308511842961729388831340829318776938736594098065738593480984314285783942315021188647715076219129018013837044594237069439071368886846139229497666199966861198176738706096189154754445277560061307832207794517522617456362435887767445983129159348743877814854125363029170150049068129351498593340671732765207512788275047390673113229110485883014375624555923324817843796821803380595842975978784133854859545471928253178747161971840498587185007167057919002050439685014213012215267333518891994671011172356852128154953731923498641644555773699970882342149017521648443604466400410958352682368858395816437209930686427783569916135691836509262916205917119544425198521191352554349771799391597860728391774772748791705402300464902312804112970604277082937039081886668450370842610559115649784706343533966977756533732442749549958158649771056196440730420456011320579248318124411173385878943201577392946403938230911240702466044919997436911441866260030645820871447253305896431383187786214532179646544962210233404124878351264929085045563172612313667391831622746985544318171846759649347931839019993183950802881549566389059074976257287619718197949049279828807518152828699546498269165125681002030975843711973813046166603661447019599801648837161217726916900625233804886547075339733909545793587913257495115229772170782679538212994831295526171517541043280356763949020246334453320746958940695470326270235679977738181395426580477008134518287494766804481734251165566685908277768824115323349794355328811326699893236846205972428428128152018785459086726958238209880909110959676003364993551598392089725150683850804850174375407587594377860669236821229636261375928726355964293604429417420694573548593738953095856765346001431629504734829249726307681413388081475286370874969228620253112288742261944075779844226578492869400095917206643966622246880861302534392473727734079217501857781358907812078565343655068199132825600761186854755385176504498623538436093819141394029359635818747220621056433551260322738828533591369998715039217891707334437560823878094991020447549246798659734681297339585766969172033088038139431284412625045837945322738365724831361695640119065082098159063558635456638481959821106276671168011673538387615302123196857329800723408042510797499571524377029077963669776167724167202915548706348299540647539502673365741590413192448554815417252324733808017703849141519738352167896667339524269279077974787591337328939297016956808362507001916752264850707103991483539132479184072223654776597201644183194360505075277199187966362819883013777969060515283574383213866528296283910619887688278955762618962895242339782351065139399623582407170303868682216634507702757939355925841346245644340943963932483373558341547828373874491921108148003440833226943395426129914460257337002267783702304243208907086659676132716590708884524679908813023095938820537587086228584218881907239304335823243487527985158884104455979039305609677957230424629981752195659277181047609665831874778996398499754766251032047235775391208971532357573892644703958263056227411573041068345107882327741481804522486616155493255112803756561327041721392913405662840138784783275932743751506857943057668036983361746591413426304535864037314973016399011620628016420232973137209727365529764801169392078454333462812924538937965009962934726502514241471057148829555449943117995664616209365287755368065530873613925107188624051862111706109598729209537739530068484771710933003614412777911180618186725942844283592494477055274977589228243387820841391730282474152215458080625418505103211118681220390490677302387989871815452687601360081047379142139027971255014485276273860482276433536771891251401835272351040405466367770771387890160293869228862418553856461856882556303600030636456086838075204592547211233678166237328284811526839945064699777227771879186264412233373544620884565903995782755599660938984729471641449307049525932768206548282547622983502006520528508441773878052382593366027949168636845529022583446905109825055337832635079965170703831059672265792831975427979718004004564319223975257265124731289402441194085485518530600838500913059680986620247775732355835690530200040571120391671193154649648090496299964181924939663701405447853643587017513208146584894034404400104753988310523724135274173993784514431577374911958034212631004861813123664319233252567461324256398577941017530054105241086760619817620353735006969777530595297779774759903058882571276425825481917518972958578315660264616237170225094897280081594164710958806223439914333982361576613004454850543651685034435679978595812937367474108575206847250661557390332139234110277797549386646555626416317547859569209179304373398244866335371137025788733149176020166509010459743634581005682331320137418754348159909724842047369773366493139011433813785728071023067034142831107811507060007895154050641136473256463798302384383442893979441686598869075129306718711169565791653959832672261723513722713743154444793223324380010033812838818899726810501906299164750860082125488618125384736634049993606688572747223291771546793148202744718145400248021574478582207041102613336409704257449491085631217833877321332634274365311987342680237778353818306684559885500474792271629392679760034149337500363760066986844003642887137599146456100833818769728305137329135596663035232595458055212650807823506322309889685595754870288030720943323861623267894380644205351965408571140956688777678582780869212873550766041156582391549123177689043185552869820555844316677546463132263040105752204857333293196855207742675123844978371288235480271581705230537646227015025232190058245698459857940496904978429953608804659457304697097600474992822888805517402094811898054613493340844557631458784577663519424204245617547479150016655968582214867835091689281191199623578320273091597117681290125701876887370366741083528719365253832385114359194270892572715356995365610710564918551288139199722608932331010706800245694838400553509932089703947195017366890331734794660170622411693373066480431709281968193279713526121148041569994859909088845525461476410841931183959822667146075570260242984504429529523920245383050908989335673753787554650463559126174186861496087992059933392591724305709470629265740307537173092904478470390767611623505505380704758559631010735437428562566865462867507163916743527192322178383630217980989347015350044150878337463692304146929298355276245463810138472793149663091817116207203589597318100362525732916262268526198821265624723630294990541372971209201999325089686171081200254207058792235009879479435382243275562055930767820661434104725912134329751958506049572885188562796968792168594881976078388591555265701075609186917924161049866847406576661737100102977376005962019804367782452982264626744349478274432227970885642748421629812268918651396939273385745236291943277722312553125552774558120876886637578888918317346257059278060672536100621456712787086656989745090451124715538301190526484242797849422172150663728400306894518074577551238283107074531692890941925813270428958253200653163093615912102386297541803311245053979715280659792690006738193028415692103291790021157115014253517218033579495254521331671471473633554446948008663795381168004276126139550338152509614266459062846724924332909102350768991204931725735563687906040961743372911234789824078690091606254735585121736438651002601352549072804046004522561601399867640079427254203958868098823259941531535832942358136560394921903809343822402709587095441402054901796294218349736152811661958147476613791798365082965682857225936419940938857397543550856725101097632622598393453294295496364289002285541692249216861505495090506199082037535461543338553647098614449395526481023643587527835147196633095321980923306135368582170901864859543565265879105717114486772441180087954232202441281926068977664105767184861379753417186263405014911994684741498991090889293392470449774210195882800676020142380084688141004761414132082411383379657979675395765374982569814204146725083780844358955801603139573946929460215604420276848495706890514673803589496231929934868899818696990055675809077306553918066827843996207528501310313989403433959987572158970057122331428229123830610224978924349739071496457140860800942666092870207080130088353323484477393797229846892746061874095796564756861359647113242214948343821119828286191835288329796224459693598829629326233201353528110431153974444073890562572429761285945044058161619365296798805096733620749995337396087264052898452885410573638238193082198182331564851977095768433267072942202685251917726335737200786249969952932969424379920650112257877311025631628947931788761991790281449928886854425071785352102248847227971961007827087745050693733396378220852893441447911112757126573307335456249622387463409730110512312750161098240535885193713066248279355151394362617797097952843350768730752412890161746285548514528405895997956582286182382845629405991157948827675050703391078725966421678320882793552418550435637626230839828422338626298609898496205361823899176586210681312410650071082844026113942349450120022964893781819089932945354990954353203438660689858565716753636568307088013752132975470387836025867995818698805337236233105118519961472642073219265245581720645694170577018089336782123805413154446801203363343566258322441805478332496525809028875189778577609538422178233696497451076509595219205130027493206753766025529863761181409132752953751062258641729385071022956085344738067700300288991309133879384137629698626521343133153774763749113787913946402427712397584072444378330752302793742089230067247264761714312837587055140255806485314702721575803862953035619013114020303126234958999929863971425738357592547095264187322080385964911536243667139125647350519272801332119711358757605376895323651585444316323739330409975557244160214189755230418896600122248495502929710885030618129248638384911376733401752342060869928615988940193230507626853815051450173417534626662835001740743651053394026933009658155776871013167416584910789520551988584174118114402302258727432278240819315643697199865839972336087582849275944280539411244067888279045996749547460022162134593147280906035605116217237582981621450686017689236525965212072246679901519747730805006258417332490268381534555983290383477911566745451497066541939455764943967617591401045737621330649098197094272027836818209275931436009523134895251639625604807461921403433742620062597342778894679964411154078248843830610307721288583861103886530316035953004984828465341884493467898731107607073837846929527935658063947287293831843533619796348718045961428875057004616097077697151972066829816214139122471786946309094721073581734316031039416812928208182687156244656305095681223430717858582761944812338524860272966391170097924530407648490680094169027709544735565867333085133522288776801675730038270999254520276688244949410737482314188473855673836463680397497024530071002238271389368769237780109110761205856269613567499232740652233564929586314281739762186378557235169058590360021080413498060422288202575738268493874168038011421399045276677604953177232951954921708100708880961090450927152956811148806733668132980050521631201539103854184302254824797173386145565046808258960406821382990697744187180645017224071264568115847533661825258735586810861380808683787560042569384998708042225423161065991630360406113843412298746190086839935791027564350409264113613346567455635958557970509444015708828362956431986873453388089341755247742972333534591373655102491127757134308182317341741794505807274309155689588780208305952749356024647032446016306596687843669945717573580308468992169045420702377298799562205227513423989376099640702954505728828528506282680678191326732955235366174754297236873346100444829478228067997272133953178188319668437257394741498077638720330904447132954511902253184299097965671203052672612788364197796413970895920353939909408688165410403071072985773789901473990196977001581782972065383740200435554185485274184052080833142201009959089099868187020949206663291277744630824269159521814058048213934057648557226642938213435928496520756359625978262256103320318019161871704690852636690455902123550578577926923035301777059849903905064141968057203394423100344646126860365147926668066454572411445296841393817560446754672909710697940242361116438844301496165539921249131958440676434306315739810715760141575962723931848453955937520206547150409104832158091695377129352632023111260735457843339543982087804319858418219217434832402929632806472578944389166718028133823762807309532527556278570677974819315955302174645773619724028024077582796948475687274958365717534822826026510026847026233302894111287064749620602386123072401991340604430396204141226498724874810770178486643723118838121677579793738645801544465414283331388002738026261732651080599470846322986808187926929837363956077222795801579737461779838373262843967533661747298385075584125689238973445603593398045265442850642957303305244087770769577840828776345150257092513943105436838165097288887034521944324476917892480519493710546003799869110724692170082642139293888823989632845989316585271186087389723336619930602010916373253802096992494554742372712635751314786707134924438957535473811007238069265699301852101161896470454494165598661331769483436076396410907520620829474071669140756944843042479564558417030845919064660448056366314962427815050780152022268643594097113495262170145424097544366306249729386000438099784722361573690945139042975726995318208368650567483924512439293828322402286464372002126894446859542237234015583501294003625613326442404836087757243803027252530506639973238179152614248750733853297267689695581365777125683020598813833575005695498328461945075952232993213366943286387137740848402345692467321562720988292999700837569569296329460896101228893153620863685687651912140590688400893868980045769544454793275863115245549823320038452194355455759901568449675028016652452112216459877055192393007097634386488963336525141387438101662376209780391812651379024329285227593455309774185087352622789533660534386839371437579468286772366690043993138769424070784104318013526602616492839144787808740454912120527211523163562465723646920510653471974504711802525295224144088966536059144822468801442661445373047264256738450405245136922397218890730501799157207672134438853022222732925072899169647736604401440616456147764066407954935045045955292631096840643471455216220482821229466752320071892792149621160454369684371720558388530466436640602871290788647382965763630972843593840489139724691693856004102383177717306985998143530524148417549484935806382870036990271549609912961493498592480116395209297993417611516320910430989617689277156557555658176660842519079353036914608518607540710052229413045462030549510086136422108039284127102745677806393978871608745474717254918137917639954861097838974324341633926134432790463987591146160909150705456499892116462147348190519470196081176085056650980835096295259773527285751593817132360029478808824489454351890398659594411619433767174060795124130855557904392937497617106120563610932207957969127087570318451816542172120529761121642624671393451595885045068578722025409653528466721488132685682549367271844102030260065139407497245889912447754655362848936211655620367392542786975082616636906854810557964078954995686243170900616163361147122895299415634077308363104389314338649611408177393503251229400351177929915594733942346060426672806652828191293071643359046194324094789694757516627790852899042452177328619710064085501005783006282368882448014701790400877196588384718816694465148723582146327346666840081472199164264044636022977791589427520877905124318348320567430321957285208339072753572490925166650730511528332547922930652617282923151363446235001793844563792065620746698036509990902088250777959296524699424861214740482493104601244406313873434618218519531311267544955932373062475679830152723938126645349612713669105281856935072497246096185158524788729411416560409586310397397278137590491443293587360890760314486366160986085083982496407771862031548363870690017893529957638882759702320075466789441616855840505271406266805731041131384864375328456750947489486355126070459700744527887042288132106088581011357407751187666899706062388174410411146782179545395997358304808353729268007570257896865240236439979324185694698704200062183935548773635551726873172824992677167250766229238589731149158290007609998013049576677069975211692788388738629422760564274041166727446808358634397551430341204617033994655373668283852755175962332624465798260464153733514358066710391475785739988970809352643364375335774002749148896140431922390631336115035791489294421336854270285349365202187322718672719579842518462841558366863800768561003537324472390992335173977019192845035955682979565264914857490707848245925976567900384817018024671692230622727277418521808657785187951053303935833690435567362572528274232610749557455122182578855708632198402655782116250156665350689228313544475613129658320107796638423266972110896892986757934693910565761041958177541406857111821577689979516866925453669092672448467253851375319934485807443395085260032694778281231177325560737292705882522587544902571484950935197716836513115189708628180435633173315121390986099475834367953996239615073191514206019204731843462919237507388809870640073873475473029261924711801923737864862505556993652242698135882846890613550968290136827824233332844393528500946727161247344639796040958840813913674404763128858400928669674720893555052773603386171800466727296072467316847415333235115979254516452565729541762141640939250679386830976978854426364690837386276934473084481779013602578795279071134574285233300203578006145029738039826283697037870204041257948031775699293581802768266388556049386333002495655040652514952357986068430531450171046830841434205576640040800206582347272138644045140384509354846203718433428967471804255774772303462119971438511803244337465387052958691305712996971311608661128834249531550963621963224481965566477956990139953509838183047504229067894328234917559824143957653404172720737048888598453362200792893727269988130475069215152145679220446099931085038646445693517031750649139749394967818726182461313240396558552689125076403668894166085877705444807888237261286040792798448290015718750028988110430045558939057747146780451011169566794862393611105638181418689824709024175733543622957885449690530280726363013111279937468558994401084331329992279603679631604324244280483382575991192661230853258878559311537377803466552253474617353395687259680488420239957437723385047531010674936275110611013902210877445774863759960367999328086883086381549716111984284738850379410538492852530884013131743001516190031464497528423369388993288963728945194608538614258555739130449672472127536590288461191678885448649536462075920798913248972693985764904077203959180678458139102268970656594735389207880694895922882899231094616640738399339454514892674241771586723489665228573656080313240993193971562771100978715199947425493484743591536762782169977629099350110561179247365023395936281920531292126367519506347231847418701254913912416621230432278172163153609202267825379066874959890719366324510924462266777440752376045167266883931075113933344780927283556046855827244240033462191000428034388653533214910021258820350008320754199937591476301071187418978077714815794456653253183878671396258717110804031069779172163190125648765212180187688795013364193011979399153145672638120287965566636438653318724726040094275085357865696795360342308461511451368583420667446384879818650401356473324006339357503054720554414466863325755099077568647209408499356385659273755436866045926681076910537282365546187124458751652361950261096101407850324875097641342546340232513992694143333150302656751725367175371566211582026454782812051991154906460016891804661988882214800453917249001218297475367017973498231322930217581385592146378516579245244346424482002445790731908743021913949407543527011930104765686487721655100976842985177999781281078658204362532914345222337551713596807704959504713176755877195132245282891905170969184003631031327184695657620795840501310335539506584601485348996960621979633464723049361660020629401447272861362490665443303006170506311306857541283903511407899931504812965504933836338172648360894987040060043009084063138053580335727571090876014510336367252846190690824166804925212375615624786184277857833327226809274859897370568879064133622807461067729416751247922809137932775466275228657899302768365397093850087655820546973761364278701708217434129390290514346319186993908596929888920843394582803559638161225571303700828461893670734696984273984458269322609616400713264525038826308089492638081226328039733333907514105499947075773977185493480577297359398208951487494332541231727569053258670468066211924544442408316899963779854734861500989719159255156397211959678100710945008610152474572630654117741577788026358161367537238578166713409184894909714122587693455461482707797798948930063568603091250072731624700699145474506050315301412405117451151681627459228253246258152437251430784905044584553922943759477323272856673445522719479868669395816715319654261923026745891728658449230223888888274444494071272446922478050901768777666511072214421521911463673119712319653790194139664842930908392274919818550359968474071256045076119016737057376510503842699457042200668434645617208462941666026860221458014568586721526237738575580647322538411355651540860587450266703221175195234104183297870757851845611821407908956351042404786419007039429872227970584089200112307060283488338718664677324578612373423473152651792646638037980174085210141786331071196077585121114137637466552330633388643435710105820340544533862263553206870458775614451529193051256173194012629490104100823713549419436553243651991728760357086543503341188406308269755425465004916086573134237507955897179355153608493724894377868564466248320627291283813797735537218149667347276342517023531950890840890989122985307061151982130666617611557566294614748919672706833887282982692285992365721567664377959752211741630717076261101215632390687750994053923866511168157771045213384804479218080260068588303247577270205648235769710818457932144904903526680968350320356746654021938049622465287828448071436934384692586821243316481207540900507375946391324711013277830645686202983285606452432530730707996803580989351071726467301340453042917157635101506043818692894122368691440446976122950017839794585423607316867017805111324441418488457423329587240456494108852986414907382313692763601939316525628208648635893922592067448065133981597356941189951309187491204907015755354376113254342511907794185914796932064893046282343978159619992293305478587327327594648311893439318404609706196542848690875686013726925528134783437375813217861607132048081077799440991914363432037715488509897458075317590759082698445768799224177128277134880511135405634050884163023457181769579364480705280875937998184871212529541788596546257662216408159729726216915792192466365006732091896697289161016658670536661428420340829994033061611488876017016896816557727490867033121415480444842943220376379197981809528524239466430452568128628486917460414623544148425703898652268826783861468519827034707277870395011919111345577106700023597898348284466586454376074793488902223200014700498422106787625987348612557927372259715786816907590147414077121932089927622993122465649077470599882463107522172725266581698684377672823391553628597827701465189838041362867309013766663153049040697025517962005988541128674128569680533894892102655737498576306080549983872583216097463927270601725832966872792270450278848211971465911520978844914895967324924337889112443152673706919012424071638284918543482915380343540047728419966524569294684193544980765419055219291705328128083053099630244110529043911475456901208968517177232458175022156026860504643761738134229487259415265942935481476739907336723334949902833152812936113523025911126732917333540712737798903550445069223049645687309658979821252975800288924691606807948731945914126325032676940183761534111974550070670218196960083413462827170621775744461426937121128428247825724441317781110098547938724323790629878992423116628932837392000805208581025865689995448299227892289193997546404157776064034992249029446704032716843742891707168682834078343948553468023513451783122134430688695882643280821889120146230188434786257704559460427170449139713425552654257404033192247856722105682803560464320154909965770537794656943321784835024996265283509983509564399395953941315053114904810284188000882752098840267525627405253063410794850847574626724519647069805889681637083859709204193134400586512437791897202764539142261689635381881594724612886384816149369957394377917756090180723918998159820538050738955125061764558527517546162330221343438241994450491999739008786099413906571027373595889337994242338766220091650425081204119635977513562536683147895213873470464067042903941942028931376959253199154079206545560208665213910663049271789195856617597440416123475372208159597362925983748578147644613829858259649316787269708339005869217066680475718385130208402832405832287145584349962432732876200057462372328071596964794412726516714570898229397328733258277498672114999916327934888877240598473112724795911373742762453662522418854119854631925242685019164862177630614831744527685039681572288167239716354492191627354698846522719271084445222012642388827366739788767936124159031760304274212724151797698550510770060973675669589463276713285502784182270934634881090475355004169398088362116227412625360029739158284038491743734618989577319044820890171923897207382562916371795481749212275472402733522591039184178151738298030529559446715395620948231955819056124182686350370943816395440246127813777624253129400732921720923574531418951459252637203662311934059184284049732673940845140343596921338683008480431919062084702608437480065974745688931530386215422180716254689997337800247788145730626036745725413408972774317683774911717807081952915691462021382244098933920761399648332960082311743253364041658302243996028112144953539670489465151579636792899694483458888891827496053987507063578221425604526147178631833733603074505488463398675001307675027309563854052876126866044755736582946183139447416259202185912212992881424137468072360336619523724384355482360136787763090275454542516639496744592070704451774308137205061539846331521557882135667365451849244868225615134034477440979359273086992149073216119350258253217324593969971020525273402715672966325083473252338254743708971545143523132543139866570256000786083924546735329929377031834830128028420984184727695800704902779880512546454470607221099796489706716822551124929047513690762163411169268273072097296664841552138956343317662846136797671939966498404240571147956260355867818790855696614075535433383553669638262153182244995557961490457967447946819062723685804795752347611618261666035590250634536157771133035268285391613828370292783837574011326777061916507540939181895903733479783846591346559477030697917932656973891849816165710444508658684378312190495807455646417224685987594948716765681649751737145420572591680412608485460085960607932254623509117600209101423224535689974263154282422792865068729642984965805505177430427992954151378040060048921674714909090149912330774108496075377168594178063261389114276898241144817811253349812236392685482776290445416144312175249411738764706635436993515551721605128945195174777163806504499561438564824064069151665306400598140405563102835999336768783890764895332484737046154073293140242188695985924581077550646910170062853153284642825894086009645211311505970969390081424326776693752889264112579082076520922513309591861705684778411087833391395501206548805823123608622488364594301429597357978027170101108287508864725448206201539577063401499656337927897847158777606698116486804127017802064905633804488403126643457411384436961870845962426729048422888706582929985827406731147281448037991749429239453446239160982170217339914231307382095416945447336651025201007159619371545323900208228644242000038399788714788165571174625667888177862862886241405956202645880586149295903674739568594720626148246760376915819137979784880581180434496191438468643707790877055481191226055551384484009787532677855668908037959731260275163474584980139946484292440528439046874363972627193298944211168634655798270113159922735632789930097421522477904950911634445357581163700929816170351645483665032222452514272413238342866067653956664008632165626201586151804062797091514506546725616483486554846439071581706552525014574375453625600166897972491085759029920224780587950214187960844014972617637891180651694151326171932302979814166501735156416971217049935411852300609101987684599752511335220136032028097754507943683183227454380581900023875040068940818449916271488568980767061941678766807305175960418325145962507919271644714725590498699837300913202751862637624667702305098997609658213935578948283579934482702281922180060633354244931005147148655216018929971165773186003158974154966747209326541231864231396331444765211617349053191731957708189728627515868090327177328173428262707609472405344106846087340099577276971079833033425605688090689664560941562092077394185365210701980925247074663544411553900762058320508978403236199822006222622494287817897234203459918817493152277872539407755645728250805249439469876279151186905853684106049039605754506149730218396726059507722091970967111102229906842490045818926225116320055020332088182531815893328002741062770315353086472298580293144481504215864090875440716852182742132467420389914204644479968220234031881225079256193251744246100734070647038262959334269320209936865332141842096570810795968087423666841630181670235095710829641496497396012792168931916996953260058436586609213337040458115443118980568650739432412755584451057949873865617743613767976406396790198668360858004281930913155399433942568122404086342891970744308845029875353437255143555331412636128559428288314504229589850906115167480233736600483144066116064185624771545400272209250491298346469411465681213584216303452315572120311770102123255938422149856872670289879043286931402334985955063000618054910761027145208633273980770076431867807102568083845799847732678416186074123800239618659021299160590502139349273972722799631684533417143213507880687448298546190265596031377609701674050500835771208187599201359254209458474986935378220331557073575473873259883483397359792019553959758437700716416188363863073709416188725755647522193627939731376486115218025892866820576811704253724091307564953151550484763397404649652769896581290766779776414563580363776671456537789847154645300697572417289285138482009743107787522927368700827458786224892926282798287242409563896776718884648062178971228983675050071960334186907306224985981644200390077319165303839966692296164621735376707731427005099565133303218521893556258292135101333312207680543619438145931903031687998043426865948084810954152396033031230056655746855296388159637732449883646886402723656120685717669460517753710703319088265622886753174738490055630199222870869492147028891240059803914866483955785856029111712942369025393636264867984552321111024757353629667186250102532624860546399224848847613125030974377667442110313485069428263049753183589930586104744809511447441403507198450214278551220516480108296323173100375460453597373650932677981962001134286017023055372432891280817261541152295026469305274597124437691450481280151789395692617959204478438022246599113456827240525241202215996051941859242180118861687151136284291464060560832212552828570166784239188189354783616691825212977416055306499292249063087035170885895580900338701004854605954614167533189627420038594383087468928734068471159416333396533297585418187229532225539571134261909393869684102503356213815010909453872298537048738268646016032462935998893943010184488532113941097304661041733470431638246165247292158533817741569674074364271357486289032027967978020405170844627507495095660485010403437000749055834975679170196994415911935588107690093296429791403551214558719638561001773340917698704790386423811911105497950663612859762056170780976342200394532729295985510345285352737591041814701374164874639782537787237056967721576551682587883577869087763882415678082046481484270584023400432994827618462373463237641729225057801499857976616209600611198316819412839386369343046270289845244690312125093013388617734766870393793848083003407699704972734774555144667412777933296403925333538296619830923306141530082265265720790156409307695381498882002699923220528024892397636707375142205394939581265580973283263065382478495175347393909112553963620675285982055006267264940533457818842309554997521471064208715797011981854612444476494077925752951409865245203431264310919608222857865157519642456193728547276668415818533836018004802615462516656565935926162755406842264909716166923893531179600211105104017627918437950145128945561339227504440425200568431607620275454262936080772183618216626185528444700018463008072917821015827931158821139716241485645548031965484824790123963892271826004722740425350028579119350483836311014426622932200374495376526597623681857089235421857387404866521066384852123832655045683665205316808389982756433351383349103846488038865701399313519487004076507858393826035721802727703306843910101328549651402064167110232634925740150347996069271289475941214989040252197252575222857682941257368792486473256468696091779404254114811354358458552103845640956564110675950765712153728615804233402180036092889261965370865736213789210702224665385257776059485782641474282554770895229051685130937648641304790459761431763234197803386729227324555540704777103080212089398010383192834064954482824622959640389505967425749225523324745103409236411293337638138595695366625666482752624088251341856528087520089977637735671997789161447056571879213604799190698565215320591863986095135169122461971487447017707584452402808944337644204178495988484640788498956616639468769680284878959415831780260199737698897739537096289123947204569156789902877223987101658009440597739360922281525731324868443054890093042737815040742157076212628759905943277392636972347903964706764168603832016498671796121736722933178947406826913306021694618262441176324387036918107584016231952969503097063614755606514172856601137023724243779593961254016438934130741385053523383947305683444025047167367111571221204262010786305617930667029939295124959077319567886422292383746048396886817257378224980685001169673913366729688744901177849889495096256176172565380734238887508459773910826869715502915456039282108672733399527267402429712673390954724469603443775961588320261881151514121516693179463280987797435988367200489827084782221237754613711163270363883452319011602376631057250980004170647420181558614940843834285450999321815739797447756603399710578624833582252144274917519871728679684642628606522491607497910584733083962501586613025838502271108979375110656959698215035688429720543846768633451340373460517296861056360523364869820292111920154588674463059913394348087838040805427854481085004215933091644150071444361386901436396540660247647032399117673873358424610240019058195595967334163270247440108895865909326095677343333087790818039679171747855716840580922769199148535819349115614517412329004932927880912694784492552655952163872808860136655378764010461354736509906985465690080619018514189215043147290858314948492520302558914136765551256587308742491298021689069832524635116450103161913345594269491650540866232393376944137470306046403490159490743426580783323343301323814950842419004882906267051070765441924984714007810190877773112573817001841983740188510319952587045582445533992891921201854193546241588958279288758129741764181373777600235773682338359651278992043158943789060800759045367201557968484737448765918601965487742831044092115460468286976959268590289721232342659504997881287312010444638028034952309229979796714132503596002283731646781285745261574028818629356351016012973161318916166453216433324745432489217747933726488214811633000671809576020735698510025070447277707271588157483792182892021573428351338372543629526870193277922961099814670876828918190894065140458588660550204967897776694739108777203665669142283204033892493334751711033763908595162263020985791541717547958403668161687281968725291507930389029512052214491861970377761670626092582704852479882812275444565620668931715832851466184345139795771902207435875581924302771109724885579673685256517642198131375161724031587755110442048341757142512053420990892863381135519325754685232818327435409284331636898999263775285243732423691461536106386573336296554698913714523372600650835437888295394884767923395732931381568558090273555922565825974760871003280771384962381805438042421425405602364869441061835351392888364916831613861434501618562431275190389674570660195090054314490083795165646241694721553496182686044647969680067773815961019836131099644478549278477586046148057097631465709595586361170933113843544678716375184376626483282145077306623440799825814818643025672754602064361713159743516910620338279782652817754477324712516352831759470492810759994308417264195193849011001063089846685262051803563138338507856184606051844633530510970459189171206637212697942561677679518460651597799978102939439391698799024090988048734317001511887037169460356577684391410938919184686809734726068305093061081686015213976740946814347534910927771380284883282919841023911720134942119092271306301376239837912956691043105111480863582748629438499339662247601744159593008348515991099021323887916380866998779229161455712326397054317567768578658441628445940851144885101035555382008816966740454249746869158963039676132448935831176518449676715806475730581427203472258338143881810289457769014357972983048361768696883065883104788279124123725919303613316000684041506457804663285693557400207372910868123778747694918544466235608218631654638987661633170207261928044879033670858368196137479167432419820838981501245804086219523494272409499735592607324883733327406451646808740316101154094272693253663367695015210440478632173271976592431023830694844764044982179056757400808384924018018583986714468731583057010273106958774562542667314630818114023094148280885555354358012646460737803932972032699628515068344621431063333115248543564041627648063929314161181789274254197493567602390523805084688903143691554691930639586586668213070518629230103958894575271586440283948422454489773100053840377827441778561313166220122654071416612304144122860994685014317271375727596750648972057981920682711913787112171804815820669929739926742713475062227398942986793181231777740540418568760829205525975697282914359061588633049937826723088164388866773662161350711998036571906210422965235895941345420384885937826613557755497297169277465531281174256493844357356787611765350877423603956589600247213628863805928192078390580598716829829872296842777067205538728606003209860674015336209002618120503706270607277394715836137203781511055436747565172596769862909319122512292652943134065989114992020974359471966224265846463401381018211015609742995581274620905194713561535245173434885247467271851747417128308558812700607860229634575430144814646671990408345991767752642836119234926150642116015826792064943486234436841126893023679959692437650323138894471298370901450595890094471647496075549709234790350112998546165459325940762548775958806450617718511663974630784146836789080935348563633430385086939341463989663983137775410826632209796871643047218292544661559101176244277863164961043605446423374515588754875487246097740943829971231807964154996941834010597153401158320226955615159837901030617022905114838918866211216727367432289465972514996894836915234651062869518942519997219322512554745942171504957251437619443731720457879707776323104648757178397071046057248945014501704630804392125024687940160244727718874963138505359492784460737049895908724019797138421482240194321210967669098358006629469773535987553863256677956583311704331502155825817380638135395362761993806752989477859008820802732689387961381751495586536096402556825404883207421314266083677748997851752405026302060471178088709973511140226437045225296187717986996569686501169818084132348837554012502174656443982939421098059744475804826315739000221941322811833469828650863689595276777036081778054797485654527512240232634338806296882181008337448836946544222251087703368219416815821499453442144153369474507706678385872151447802918245111505025965129284870541536973458828956452133762812347359805883236383892995590016885030708569651067604499274303259573014621867357936517824692794447475060373118941495620698703694905604524069717712103654017890778144092980925974796500918508495512254268272405364968030956667738154328094588828190265167616248680262078133009154336667198246885939703180826144963496190179147395091758622537452919779676304298516092888360763792085830898908679213734317248569216959485465176043781892870202181849630925679836734198367859001832998239103774264386099640172655882610354077588585040652941422447851801643036435835835355751369355361410943937844162114286467859123561493711121032208468325356764380569871494442527902318196674456853559891907658322788399224184991630707516972871513020421454692949086865191623442185149488031362479285876718810655696554917173021004533123242096648698499367750262786993418759317909275767646708509402929845276036693312036838921998122140351760705349180550798088599018197930606465691397101819058378757015112081345944669805471434991061138510203736460924929967909280974862519955651175288949654497358295678309148133827713583575346358345606397844214408931648087407870169101028529939108828770129235097279132359491106405757576985903771951873809066864973284556608170714278447683100681633937702813883035345792770387842910011471686538449234393132397811788299376926201445172108425100581016537145186772165841084418335985664565402830467016235596160763676161407282061282110703154619070468195809200086472689005967966800655562608254952779869228841423321023326554806372902975428143747385262915209783898776840192614522031880480589668797646772110962928463935855604378215976474758561663729607401816412597763867530409803570211564090947242571851583892379483392244139192108661369519375315052446201785323347908803052339600539248415442069704263736337840176856835940256258993246695288726774304999256747110270016055495900220560581552380094501947733771757383297960017663146302607516117003295985517440835834350627010616299083966439844757497021203397547152278134205608698524633643716081082056060101543882551647710846045794708875771285999546331841425523225141510354548623625085351337830910705291088026048721833579617735426406771896657780465254355924408876123569131194024908616240966466680740450010041169479071220166032314225716005975708694934482563084758912210250299267159983878582217087808272424230003075265955055098779491209682781596186602539614776575498967283424146305395934450083941067065301228312832321841238419122767229084521372011173476367393784950725509623160653466136857925666883631079340938271690730770403345856547729500488027290437081777555056459484313461826407482636577536560996609069058076986055942640405832127563573424102994401592188858554982490329785667215516088478213726121445185882784581596690558693878388811374750128849502959987897403672018289510140850038509686163234028564898916255476972378745565751126374155083876922080954832533023992053293010324077756732566049834682071387730674034132511742924790195233545041278684729726316290678148300613469893666445600052770145059677847121215394594655938312150544676204838010220760192039063056009388730091801779182566829317441006688963706594862143214373017989108947168077730910711851734908198165659543986653648607678010325237255085004750490758268446475163564933870479690161997615808247919051443251313676623658974537428758475780074433786171644830903935165685183815024886705278436297100123921869838589333384241331865829912931519264153402999671343998088975953592187208665097188405298678531090756241612299223971859781187865238731469093651700438900877134156879527947288953282061378666829237521267801170339796317613698790401415977667949070494248538008737717805314769816960343049762524745370773539184623600373479862901015670695053590768839871748080449064904663780892067575933012119283745806299058890452169715579788491263946472835315303774222790798392060502985157916725939458051079568898365593271370295124078378909250663769958962581206598718987574433268955253749407535607676120850777099946460288827254888848667078509752628419247938904726232396302877934090412312310989109365345144196426976283884662454670278117571786452129801058591981090780675208983331946407689180904367315486074392435092267749170007114642435154310246855302254968412337533734128259976291129196304573687986489702309358113068189015418711569559098429469007826466401719838044415160938583458192579610309715923634542722981309498579771120960811172304091626176306311120510953301245622932908953910277743036635302514244876566927734554689126781686832024122290868609593193773273948955157340341928907452136904767796934674074561838707979533641756152272971039950220962376408827957797115278835085452233759284426661378953915483393852834120974490289538994144030722319500475925734924154393973655632060601990314339356500429186099087788549716422521909017942385367991807528815567311305442152973185619492248346483033882365558639654689346210062633077618900171368301921556375303025811169966623606899574544338368685767647299959817184245349531121435121736077446864916629542763006030588058449630499760649901069599759429491121708510575041341275697535392472352836765990749465846958419618731740883549585585213975468711149732964625257595625535519499337344178251421550211528481505445198024671561567979176570649391372013829762928225996638181958840180846551664046380606587174158347793740257091541759323434400786182627186683020615430290868418104219002517648509273993296358585890427790415420913820162105975169304896154563204250863625968829414531825077711747024535689967245227269928997263953454356437816631326204600714166403811320851531393369717368564153740140159804759715904099702578833258497947923151094986859025321492394040521937181246631062827405008935060612820275238005224982354418573823261393598131503380305169232019667443253847270831936409985694025365044697202054009579944930505891523349461038152210920605135043710543024668347373036095898533533202849883963633543754392782007483971833683247499373656833819483199042470061773795315804300026856960799677939368624691022936604712728228212439027655076733057685173026109822169985301619959163479456957343534216356912916732950814551188017838523402414344752895902488141645385501765094630236624035110125831128788744482392547367364579694474290814393866798374957948943953721175104618326069586109839538523719025537470603740130917934984750169431660385139148176695119553605682683046534575315674845579160249617417938493845935158754581150376456445104104856225059021811449500142344971798131403570237875163956299718865483592042043043777106118746687307969468441286774322559563865193190876054438128053589062992197094042497322861072121603784475417662968768752520099799905176815200007855939766208485715627099899653244802251229649673964729523789714404445878961023706299052493056975039987020335974374883033275055281346735172813566887700994477327662633589250775632233449557902152177294871192135596903762973700654270175912124727413000628729640239099491748205958766060441315052552475136874166464651760431985348164074794746985048683878810815641748081150052566526932406660282343947679358450934964268317365107488817351447107445217239077471392607805408232053034594953281263669409014779428074425248802683085487001938939110146278212079521110563748574811351049430483679869269749140072837125811691600426638164997309487691309639641932913665829525092378652679102551874011336998687835404222098604232586359803203151195870732160532168118767589211644931227555990979157715822914159828042028522679975407018612342662169606512271308127864323971337935096387085183252046991373660473757285310330589504365042022808015520816165360614784052854204013177956246485265762982012475917822717414422692192615610306668212110549425660835654869476903174809584586934453355710956984777508402415718652185903717518151058322349412206362677297068950114386375460957537408175278195718909699079725190679548038359138474026282286824235281159669201626344540898252130677318736352583296218144221464321473158529663481555474560923029695145956613801228892406721543553068113745622119445453451132196814200864963035539424874441835016974379882801578122360865609389281945503214873786184132380037107094138541619408392918851374229818394644649510506703397040111857508929018039805662903446753012697150681142934754256380660607154726691723087235337483961115685372621240475607129472000512318608797931704466275644450627301711117307611784525996399079671394601925571398197256389049376583817992511246159525248189543287621749261353722275065272868222643428235741045633253851101639838922706579932151271994575109403511970988260308377091735838744422718185254102437897235245392847946555067097715309396904114509506952437423758782617440605106993764251914790016133927585260167882663118545282067442196800835903420974778139283718848477483071635706164852951445141305931652911044274177191111183346061632623518322727332949669730812086265147375021782677130124929093088431094948420040898324283912376715214769792395901898406724007625671914442824322214293153356532952589955782585030747522152696083477500657978955219995979254921424666512165959118684894095891776318538300458188966417328020380544815116137354392200496139949943562409518709030204241387417424254117668272072148367444932067146933355250306135228565796581655546178687907357272039068892909968697479745322985082434162780970114736680061509655811642715268451006415861119818240885279759916394525691849126912953771576784849510383935825886398325727724168292081090565328329357677958702468516040858703959652419127643079406812811519160172576035912937805802058643330521524401750630173057567046376868587720700880662849717296921152817588368462303331796035417351205118446285256445218098018978790161364895003879192591806972922346594496844998849851586191433542022866372673398393671897340429189683280532888451468799546846871573554276992289943629578705875635107772870048828382617998586721973407851615041035342734620368605278392411516650456477592248524469741801470630890748057906978823411069099867176483442896053725394541031079491994178606256090297263867111702824095950495044274729200209252148751187755525025042114791265708482926569344485539307133676560988795272214505372873830846030700886977786134486241072825649591209127444968546052925153929325883643842935001218716098729481417770754401243068700256408678631199484964425409155355471463055451211648638033355148088417892882245829200250628948979536551441110252093943415416147722119346779533268604748661699535308670386126913051859754638457570197228027921495195851026772165115976549742429164029978478068999235007815301257216038175751167144484432596433327173860806950953038256140524786399635477301152976669661913004099818701510311848775822387834528951008252166475996043104037499560781367265546951490553330865802896025615234188264847581718619060491138832167372837926690927679464254421271853031686260319605771658290949770144589450014345000549737294632940970672830123276288181188486254128336892441803465937610522587901548465297798121799779831460990402305947000169394148585224780861840412489495328683579323840171960976444836111947242567360009145968152084494157782369556056512119308588401027703828953052350198556276885831209174758002190595792604503447761350433837764177162825831508483644434061146598806355333028215014060964721022636733132010783370322001983278939990129895492787598517616891773925642866528580557933420562977231330018130971328692462524222749467549528926603921935565263177378942898218323981040694125336525285891625459570315743345999659091289273587536262777093907445983034635585552788465970032972579154355308630696080111329011841421393276948828221677909785408408546156215501557571894720800570669396851025268848845260034139160267381148201071538732434092508965975695803388343869675677993466818702150791004837723802897754679989427651150007198461201312174104479497764684963008707799253895278097736048742833918052880582806730339803199237482284277400831733469919350654415152949731992902267721409437038524236525746546290729467601407494928608853737719821002402069162760514835808052775786781562641657626225630466787938771786413177436583374304536020479014436895254753272948855751987159444097831055853398640088160658221746062888323873755293109816226280339040364082084083173135272223286689690228232906265426867732937215591337678242130565342767040037251187978538301351483563705594574328541328719128534342659964556736349176183033742433880379453687021699185241423406514343096480460244190205772427280113430306359788704165400594244627093900547455945649174539236973895385464257349027245606716996799593845167585992729214554023300089979815507608531366403018720002806046652196189380292411308524806058394717272622749513522102975640180441750798641356920561315577414740531801761284473295817438529793020600439663462447424856923617176536417298819835947621943303374447391671999438750468811713396548285600243667356391680604346526013599201353564778276673446327536847668413511122615199919955357228174275119252083026127583197480272454344308488215627024775920474923170809395754166739143576907938682118436969463463029946351445927331388670529840943383631143186188839527893838825727705883174142395160268980558691570453906290607340186487679085618068036627683398379202388270630826060475430930227859507307125653553159883350748163761345278007405238143793859765853635043159057253199196205057856397541357599295796584111330577906722421331677967010904186116161306162094483338405860070065530266921650114736457761564712078035396792177465933094386435540719654456637331019337659239746277467357069514426855279427077531299780734992617030206209272091766998937040524462615673293410493111875888193858945094242796647032391418550994539737025262209759567048977861306568090675703090248387001805601920170070567842745268076777454949805163079484728780464933820366252170428039645598359215312881732277171963382336424299807831259606309281616768570419972836059770564435679356221630551509163987785529820461716855521054399984202758827978894410562881839718092490436360041544603561874994209271143635356328260270138081336866508817892406333834207799039560786892329570315664491985439144308877029213199552736295552165342891858387604627669316224168323758956891070155946437322820021178882818503822911015348932876430061661444115140075821422553630323451025159879193337633251094934359170988623547677845788577905714071167866183279988380033517614524522572737026205741009481594967653807191382464139911270206816931216123652270006701321874497009644845613404300516211402077599930294969088463523726995629498855955816021466974198296909278630201413937086504784011097004680471069889428679251721427000014183810835283054983377247889965365638639574806280025616518054450370976756359365348590578975130287874137589947702030918484253624284336553831296652357288012153484912365230266370701502636340128574507720937971225626151839314509246799067326422862746295358006511058872526738400754495749695199217680873548139305791303583501056671161653958662222547368976551152365251213889658110355922743895495246807326615971898010031373905745924258240790538700741067760835036099836508793876834901540015412453835945432335955716158590543311802969380186389808223243598320253338632102542241225834777101994731102217783911311899657982233976709786304204365858249471213932685374346311947484876223034159812428154095819460170956986544179653367281216805989644286050740854995687812690491286907756280331106434302498024480341806206869148802333705628212759557015144697154414728227226146165156966000462793908154948204977148587682038421067030463561957905367227878597537408859746000825625674613222083063607535382990979809659611423754877661502657418603488379973920759874936492215566337418850527496192031805747794216258399829335362952902922117489284922944828527737080187706220387443622705450876975726691525818664146352782907096839191117999703656803355524800270183406394742141979030201768450790673108604838415048968352377330768243179988672114232870590591804884441053385892128630956442708032674702065203287912766996722970639915618023574163478562611273829990188538457618873456902996480610308715925303282870198156448595900105859981080212383962114562496128503165319231785573879037290004271837426003376308103327449026804944753468531849524045552134150139211528366178354970517069157607115966369195258502506173543170963063866207125797381940249928289308810421862393914024886420700770759810063279862226500367429061322053962850543802430514088312845578644496273068154945054399897305088684790942331026862344262798593096369419284951245234964616405450001981461409520277932213265579163661447299020102231769555850923467724869194206352486423430605023056339477310970530759533210140087828499677419523191420322630678255593335550491821940230017572127557091892759526856436001314828224337531640091635621315352328248139492366857562536105976260340020509558034869749711894104880379817402000243403411626611898598982399712476728674060349773626358249490872546794553008536781063142535588100726391776847190043586944600977491476159290773994731057926963461055251268995049019665404766247177323390411731621435972928644302070216275389415132334930395065765193245167240665363055800600620015793023825442160508529946512640746699347948377144318250502685531273796392097514265189589720912332476930738987310872523388025713036309701190004965861346132624186214476506494773573872880443694533144399595305727788096994444377578007768220485678644790326050927971779430292638761479541676225596563390076739037756881186320681701105190311963177699399340420530211423494941790309093760979675519481799321674634824623170804356723429364649766871429218955384688880073285802370084354291828448979173125692318459933991422066275487165456252826682246678382961766704039767174178114753260251943316080725676737575696635873571260931899137810541063177253410134177359162424978920252172002086584674554938035209177554105209300956268679602835283170112248370260282609534168581847031060877955731921113176825254726672094994340610759051169893487355939057212683412875377958826821301424070751141598074561848113198640462715176522539655367654947107150589336932432774232719625708453001461919367786852840735814453873786772799773587364602985452285032283005695021102293080350866732923914155091343534073892823054444008552840818635688667712645294992522210436173461541130563986761159818357911344667689300985381279561914234408957895801681539888001325911245196416187711122633854683781771362032153756049197767247563334755590038744337893230026947879426214984323891566756298987836146982572541972843512425294188035996106339446200673566092381158020538258168476090655587069645126309781437008010762381733407243415212891757344281285595620399156059774101933876851903042676595405394322609331016160148330676399877662083774107338149277995174189494815160638761955930140191435987897798691041268399100595459608752389714916030151626069334521916257780025442751154343362031803734226191719116886190257890650044775038545755016984732931161840695514312033710178452240020439429869995039553853399274308031192914465891608216165514134892474351227667432871442106032787663173801556067675862777098072033016391377674852537265830894510083752247358472718170269601091057700237217165733381543608614411351119513630172506205563490530233914113064922317672092647940009187293068197866180843911837663031093330493634847763821405869593329195960398148170843700903099625220679539464729835622178189051552974977712450590267415973510063088732448041935615643919340914050450007123886526558640300553942326332407302731342865225561925215244438776110119584065101903109515106262774285592689017463808539862885718745625760657543217695290091794813887215372513572707499911891619192093544720126053627395500077280303011845809534017306680547841900935908052658140416352348166824623271142503184970145529757958567080280271568778331800651158028749897390835797367197599112188657954219489723052337442603877130809566231283971066383645137979878096858519465656644845030824973364156302141543072296215632908643555639786279101612407206634406942375993227947878527946788319649162971309003055448063839778615947373032154792469754160762913707478374130231596019755390094588636645691256990433115523094145464949031887079331958431229090946577867665954695550135119195539385118319833471780522316617033511832416762521182054561583344359510040715366870088032217894072422817743790884405206529768566223072712907019731573382599515485395594821058547178601994321456539019964169635415962567729353154965587576825400346657591282607968485501980126016099782956860440556253256459737921219428861550949836206306262789710267733390703182351658671859846165523323551298747714660720542324575123048419567220422023166538438841259421009480353948632750696659777080152814237595001705553207424045368013654471823548283805206096267980419293199956032961877153047981584256613532658427999581315541498504371683701391881239137620827277290539009384322858554067287892675558527183177173024367615130105753129681463635422858799238201402218003624002852858729518122365196564066095375947714570350919269651543770892563534375290634322352051972996259211164836120966996841338404089512061723597270144365197173502652373026027856244869673429623050833600080584991926592645246054755431615096291952108017529961941706037621053240643408579294077256915484884308789754645718138170545898787364535972992901541923909015496436825373701828608732506574320107172562438492837425317429988768615339342393596143138399448362448417352751961665310893421158608502005383038334014920976068303164822057424245279003321006490541341544525787112479258652427551246178723181237088610627491184657013963977975545436225112442257886036591453462339685945822958996673463472004438415411586665654145486413178557522810263643388557257998682886190468974023657213764939427223769261439480511309792104390595178730771573227150141173598295665749726114651327885139455572313324470122492500894289373027719322799728308866118556778822105923328044751050728895814198368761465718778548145723880414665468357269898131811077451078346089257951240383389540858499796668395663217306339595537117621440089076481949171952603338297996728489311472257732164004967527967919256124523067066586894795321528879384125424406709868225489067434540572874153417505461796312912500835557144993800632403731049282447273925917231981628843359970978074532323034337642183200242590600035110747288933153671122108352751666315709435067141820464794846289300172906175493987909772253216968226694637431647967794293738454331358725160538612446433711069909893969192261841454892723044537702140335292045938334490731966616131365063409874400525713607384117235051968372911484893876507179328618116214063890478215201956973977130418104305569265722125805662555250547261171857268240337073454768370459790038641281280887135060612568506344274290216906296742140778376401622089788275027273312107807735402100547730188397718542201915656583082522408427589853948752416193080100290087648745871191539210151680828490492682794348436918137395854228332980991607415431681296382141266880736642421134285422900936894365122941037404900560102138220609960357669855756330695508098200789258994836957449990095772785378615640176085126578082300682338347081728459460742025483494461523522891859611941657127964960591838104660628385457584823469313182315137682940861096657996776057733119782746441527736399815754412499098960849150427782873030509815218734152099190632348719561194425328994732709883322477546321681461291099744310352593364194450680749933894153720997684446766864528304184012013407881251307987430206998985260052678226553826439237132998942765120766183024716209382292128732194992469177252277607213554272271226908207869127074722464763212873980844215545861457665702614430429880523386426127084794744732066598207419499515531854503724146187551627813251980472716252912596653135056353897089813518612827069826219764461513666708530793762854747927625730615277554997453545627843828942764553121112289130835567516731561131651774317403522596430935016710890568156872519181873070187845540553154988792129082975963671723328635317047249044430297805815391191087652481800360519159126158389029129029731559055511495753328605974063272840706541879617123136593740259900694966077766957893390360132869568223037691799438020556049069650930230221497550627705339871932041707542588950882458061595128563964874472787303449183549533794122169609801562124559764822014662207423231381899199032611946144746568076859021853870082601932889867568239652269808965575285424403597660549678077125006583979817639289414214219962566078772218782091532817987537139971125535158128781290438015400823935376469796140675739326219213532129026992850018128596570103906357434140386522460097144957880946952750583382851771420296692445371282438463999340802913392410591872315148869398323439208431304800260344622860139300254513620586456196568438635335562159425995786518326035013331267323968413408894706146516347720620214979649688165049161125334231046124791655003912186593451202143783028025979894195597438006174242370972415017308598453025651194989191571029108641514519965796995378710315888716773404579946563161497857580201407305811901234304277746672746281183328472199284095862079265566710086563174650343896776745781441710815631263665530646224510628348095964762269708960506900495157867303254963910296419103637453428491354572032108046790229509879604232847654132771978516575211716640964297250400371935317022237836931546819249700700857042477139161145350264967534338090276687040426945639077125950242627209003092435320452439192027974827356381655720490217540772649598799163755509689666549446371317374215148759623337478157917845986705701002279739825848979666586315060351749704364551860347063336508872524026853045438974962306348829358893214244805573757052384903342665193404350247940419694380050269935039731213821339415911027420111658296216229468258590343533136237993290332975707401621422084707616280984653325501662703470965326485743415200736687028327603858672238670481708305517483030356272328436566278066503780618704114764826339630196452054853872436544448672527031128083941248081682476601460495702692264909320775698001232155824123322049323083129927937067799971898249886795150937266829341122160128453517077858015876407275319036423094406305005581226410608806007044750720984214928298838022848895556743884056241557528530420157161266761929689794790518466728778149083486445726489357538486718309169331476034254745684347541638692023673507833249883540873671614492614050413736091920008567239456335666582049738320791815507626127306082718178793005450707716312126049149581078737076635270389084816003125847006128241562854099853774098761706287251525193146656390892361736458193116577530117415649127490228550717566659087986510508249337615669718491650909745694070337046288749721294243911783031390709102109163358349197998804327301360312318331308095201977060820445140811036199789426028274793024031649729492139187323910342220207463931612430305902240513403465093498032101658151766449611551921827627235642898055637700977942952870739114753007418954852664430039680886133819485610733123037111490783548724310398111567908300567205844799633613607038640883971473626071621532869537975706225399109690254147019436436503364486968078420637542678105560548670857177696236359242865922454386336696677547380447744354483003560348019216031475138643626960945235579499770092033370109347199052926316409854583088143957345733195069501910102124858994797194958291150466547330726033970639002881019666388186037718651998572617435306377648387924812622817845158822930898728714467369014480209446741742064146120343963946031462877809802372332014168520898427175093049538669894827096526692459167768966899462571007094947594534572314620129868218856359490823039468482139913765976442190650950862681065424144563774362292260088042555603622414067408650341609265419262756883142490761256295821069565221167637241565334790097519358182555698422116318987304215498957589765408715681472209408293658490289433101678963138506821044863318780407981522948454302071589392344135370074861834445261268243038391813502150235584017756811390550223700101655721842711058422013125406399880607922369791375945226899582894989449395826460401776387920582530938091646151486929484496976005621054870573649917766823442108725433576314234263394960667812735144244934621914092074386781205591831351146403383466493947947129294669772115665577472679672325735609581925308889620151073504984626066431806692993107499444499250486946149871120547334129281657779778207844115009412790749399644826962999616968538520819255919541887979754142296745645997945399407246742539371232837348903710560788331412593032413217818268377669342768288813199624780841170069875470687487124074173568723106078067093693211111464571880788546208945321301016156028265450758039851492644137701315699203803253948099844172799535691891261737159350390120916671962075207393666210883668996165812222079330407299568300051465038495099134054009443075051535106556145544023372998208659437581686905499726755977074948849849145481471354577218851348975572260190497251232798878148337147616086806509111932246717323905517094858395018444363880834316003086262598745045167568394112941503467227805760382649219422041386341841879676397344946595445723827905249461621326018088231699360459978162636027887708761574301091312397516507750504351924455037083959432742283829435197988284576713415579819999619037234003123716766545117056447437423509092842066912303659446918646521844408976985117366835561893700065213598539674780486495176769828551293542121537018923458165205287339419819458283860230305374358838306351696089709525452742069129743154374218147365083284038951225460945857051602192908018226182789554559101878079972966838397767506689986249608730719440850954596877442810321137976856921610439793657114309749224365627094258292984589354904539488754240821443330549117213485904955505206138912220390582122122434248553893393522280158423755072609792568968169020750493632354179509654615383717566806090905782099015916352808859981546844716174574115374858742649907624745918750720465921901991506117087833196577755022466581901173622233420533745396371451661087498145480218929006801385961342193969637441081227447521179185076664835492264860085898202213170417645540766196358663117711694009434724940364314296166075431275997334309887366253548249675161032838025353738552872416014086700123832323709929135009126389444397135538301018731625957490210805616084960744280379791711802288430104742629351750878852319984618924189019894672346522219544456019957813207092620465345917103908016967476042260422017514467503319134529995778610411227829008133925079684424175132496077660168033066740629347273733678999996942629667393116847697116735539772560396138454065809978940049443320142853235970102959549635823588169831599302367941670625120300126869708336447986512006761107285104489411872418746333385364712354569193620527112714914633663861393447857018218578581974287563128299419372071642113401816354258884959955310679211294906929779704591997022862552216266423395416292666290354569263743544154092221058282255966455823067602300166544645121157996638729674395376724957890414698541421175476862096211311398781891796737858667333668408067975742372761167860793244131518595273709465277188277313092338137690215237357047969280967592783620501054844171745338376666158357915227018904377252512215723801326584968411369854361014356020151965318525838528061373642602181026354919879957470509117556166765160510320427955505106351069364459749643594737729768554968202451529860698562028216985451782021075804954409346967425688964005347137535548344943208599810267248000601888484804482782602795509701909385289148981787335658629354898294028526435805256897227686017681628074163308182533378152316939139267953121017124310879775048905923485048054955799926953488329335844265231167922325528490693296057745363795643614805928713797329323906363177900073137094521425905818498663233762027665832270219982267810605892126267515227117310252405669593580267747951704047218934373954299795579466478683519696790020334626134742507457698890656197741139145651049218856518735185378304412196244526904751367592790097012176677469465730502747457891200018911248675396988237314879804431848320089968017423255478074924442067291190034514577747838812454077129556120503986490453950018640301532139664630419047017279986061282202346255948318170570572169436408739206223864863900000655934589993981509010959666293597075133876177148080439021162538941916327219269300446614420206899318885311079372311191576559906105300703097838945103343797602145991270386220257870801024929040385194556161299566615889140855384895435133807504298144687063036603222022936164102907097249671200015476339195757085979849106362711809232883382273706439263028259704710592863254051194822488046263513745875168597956838927295217958673526397735714839202999842283200347549076386799862822021859146429307834183496006460800608783895782254259361860872936054390233311736495929006219045572187184607731682960705537199266016517991829935220592075562927428131066439022201165992613630052184714010316963109414792921843309085335573419526889831765483948279562657050730626793256155334112721854367587617465232839456511851410198799585484060113980683227468158281002427117188006763599484795786583542239645067057466348693831778240477359351077151947273487224815128474297103215207745128685861617217700574073218427846422275405820273848782098945582649487931093964893530144689158841168794980753247199161785873196401398598563091268052910842226925987562565252380099711248158478670762684790746305554356492931765053566654511761743749529936675267619822775207131241208872089197953235826797704912161977838835267311167689886293647841374180613510074570970565780425332394771324650078964686319365418887868921047209040523736834505963898182230868481311440798941257391835621914050325932290363729339670319924503898224137965375984411879959259257683419407745514293298941123337120192283876496128086947794646360997617168733775051728067949410878841589909454919467331573223255938524309046239743398917591915499279223404113000831922556091425118400550918774935559690706184319873987414256087781410095872650929919761671740686936815696407714112234893329228295474136491949867231044116900324426300778590811311903897469970178898722133856053292746310176930455141665113635513624246563114566313045934799743362764940167007638011771871225448044934724224095329235921102208036507787096323149312374851545031636396359483119982247509095530730638351554493160378732684830471475012601613478579131630579914027690991437834669508981116143871470683668300705935010217164275914777364780616076448743781640886421319235479250464399009506865416671283892531877744110925322346428420364177690715668329415276022874904625879773616652640319626185239635888581948586168545502075860998010376551318303449298916513020703602826756242862246993351254338249577051845737619122112416063150170419685541329578624131642821890647538971863051453542103059327424590966167739742483315031338634927036557215487709745881819018612361347489020919086479589085372684712197043148699965317237177025139948688652580440984003517571763373580690236282409161841376706677951490657053843029605607334743931878323906101917772002397641100196565089613910979602106268678899905220834466419316879964539625831520341500390432797449195836079441614305212180065233168915840240622972425294827930144111419940332371968062595840882276324780805546201238114284132070752738255809704449674500186598604852945389574513256205810035553163585079513139601945182078483648429053504658593350506419440368530414716955042101968960506711939850105174618404106984123203195581549964080024675453051873175061415013441983279877797721078583531805336014491783776075834775133784208811497858153947963326249976483085127783142397688128769571812242741507082156769500167422649373751220509976620749312874398330714834059813577356368363904857899462147415197207932823966487075051574046193644024207477264802754075300096227211340053079742589413548038766511106221972630051738479731364358012137775821528007991599681749682460476991820565506675418325419081635875554244595153648992857286260369955991397072978164533989832138514079848520269233257517913981117952101202299724303033261340415077382815397052031787763261991734903264401597800204161794422715259185236671991161566360844206066900021397321665708895611426020188114649263024881916229379216511100416367293172758266872285105146956493882570074894311603150885803719078230871045757854742892374911629145170448354458864522160423359464153010791812407178725150361234418857733131919364456081778034058037005578892057933670697312274564429793071209843246123141489598402728809116400422945622177274189068487582132165235440177924700675421346749607079383647413603103010424371931352045209370183983004736209295372359386357196797099968473820265000232873140800412316618706931511941579116677485053369564573369090731879342165445815797602040818699001085825138917381945290332750178397452280509362363331079426184615858776164936954556202294296506532890961501538897539410917561195907648458423179274276612894026969853236011566632957299247190788560287278505433032416273184325490163471265969306869614015694457818588684432691403673185733545655464214658148007175087830516792746149207582547434019674893217686832193431299195197500382171061379442129502523673040740197707464702881010931548975133915585312143832643283935609997686419282171262088942615247789225160805921882176884737020275695483278415763146329281922699958145410822792002787940789340782645036035116342439665495922398207957186852327338204388193377253830351116799674279953757153736277938197215852013546703896255045137699876723837539848665321733467036081276033904311132656126065273236508860420178928095136308207166931983555127633516111272694599097710110412676468207015992481580524837967843207736136212662369355161200593315390039735284091163473403260217679949016491854881454029355424502463273246950434763741398932084393963107967871584855906822804410775226205602703767953192697526948697364135526296352277138835419612138211492107745537413597348689423170858126213926469450780834930412915639131013092100116498332725886718206400155073282304267530670370624351193481042428416416458060242752476705322179034425192870488180577336540347917318664233249479763584527500418125182711283849062237815011499693879368199757761833892371352826492455624048764358443174411047205804572126965646258653338706840221955974695992833975077783977462540576582839140113486520654865163006204674133318725901023551829200013423858304586574840678668134651738030894359021692359805102463032233562685954028179190763112672793364493571406988130710024041630305015185585048521446902796721590109956511017851062633600293652790575922881188546526125534422724630152400310151252570393289906271246536607626281539151476424387975760549296760839699530207045841038582457672331854431201091648318751489298336728612182232849143110330306523011359093475431866631373057716880786018327517556542383253692755516382499414976375542190612868071726541499714790594156847110429120107425138313993514446453937207046170886942082265064228195127023230288775623464628781528214150440214286462029268413587879326184567761204056241381235073341874144059509351633487749753043239731743555959378527755902709482033739174353773878348797587504402618847963783133036447029757899523004249188504153813938765857764639206386214155413397188265744410501371747678064076343229685836665281593041467553735844956635711291018804564336156315660743033176631217839409455099665728580542962611609939591347049208119657977177053960725099435988524064848544113595333259165947425212430349034134148437563737664624844133863529380803250906353524870632306354361745311527060103070746509130247796561317523801232631862220368863753164467072842101727730119365126116060215544648766522228877471520076729361205321622702163428374553378216248975446419036324293541630469559409840191775927796176671973879404119867333238986920359579085026588650493463922309639653619262204130464204729866036563746196835078175257866115375538213210560854191659717743713402176740216100404984945350328481835521193603056356742832789323047130237571573769289118607523101898637216976359439800620708798074361693439959835551709638860332031612990272197957603899779260307328098187242195103899075633366321237826068496025690601568468806538627877534658911220034233044666585627409475293266928412125605430744216067998733580692533524755100748053861500277268343674092057447371356039541462556489004169599947044203255855044825036408403981101952209997821568349592223930235509231987218069199705345234646160620657537813909364757383322914745435211861731262844268882112716697654931288539063469604906209580761838081443922155631145351866261881238467312455096374772708489669261564483967337684903281760614772582665462469407782512259226602643815830860828470469616215065230243846370600910873917868610470960421769728383473079078336964392360819918442863540815897557756428379724385118008152920307864151089527733306480497091046609218725604444668789375249392291769195027685022362012742973231707926181638453058195366464336568080804736885694914539437155609748640763898434316999253904365734979256764272810751319778919184814804246083498848997509195342187461734320531067459104538472494817481459656143320835923411637895694904815625889733567840190172563231501146629042887687274303419918023799979062893582269705436511224004451873169476286962578021651995790144408040150410397417265545453304287184333181343605573786510649180159927690249871169747752336871912768265718290487835636975515825287613577538050998182851224345262539062420048733679533547743586669441765219958108759802998937067463162634113007526892223822611255297290972510103810236239903595386853347310703408440525270784920400671160255459268596815044803410156608020528288905960260931811691086522944854301493112043177815583734354308369042994388642858973777574800022478774624707737423885411478761853094293879314023023982623405032953377660169805389494526082558149131488013744013255487196154272400798577538273234899733657092336160852781799876226780199878610540421946267764325722769756879602336836029917056239622162916662221248675066612507397036541875207515115525392144113862295512195407417560793251226622609456733182516513853357959832406088707189662495777431500330269378121144335675671080621364611481896698565455339306481270495096989384480584455800704219296996095501914087768417880695121851997012341867921815945876919068134587989364252187938872397920349300560331824398603577762419095801933664929650741643278167207000696374889205514413722632331938617763400028923419082669268622788754991974541403563815227443223372401475024471823925174994598291564915571895124170141382230055529387214625655753671102121868784634275984108722614442581624090190340815496885159155668116506766934435033441059989293687503594095344873897979439003220389739363366892311173071419462644177977393685863254917834187612255214741443840192752500221955248469511685848588279539159567777793785866044785299162741632486127944294531230470497818043924143409050153632785333876256313273412554987821758979244041727994776081129883746474786856043038405113192852510591058109829906848309918999563682656843839100121206138811144532644028572275256566373942795778810171340246203258598483010890513947109522007398906601807290338291608866224770654848669763922144314433394868176799320964226290764354300545825261218708859990502271103519546272991002194488898973850081395201306255232355012513614917117489474285080322820202312766311859791916813054466269599743211220909817872641554232480174910451324705275932875308772631967201594723048992524109840679411582205139449698416482241799729296102410220081309017049517375021432506684343041884271546234377869457856022765301139147685899058269905978093603285004191815794181502058647038910420963157326730954943965894574675023742656364474470373618138413824910016525029470048327098116802846538569373160935952357403653576945699537036757251038873886818862171460779866629430199815944919405559628323640688705916530428155394310286429524553341637249220382214371323308337661648308906039250842675033182300203205369106898635215203063984840722158524817433997582702947608103557554678568685506483890109809646238683527847387187605267512014432728129281257186124601766467022765822680452468022244263272694379425835213660746132509149827758509392252871543232501379463923663344531801407679044458515379586870121528447790691537030213909867299440568032616099195709017420250508749782521348632330085172836080642171821813707703194074493214821252946828828354409136315186040707565933998408437977761548307776044318013692685585212322379090111529993901946677437117334367750476719117321250969810250457040204610699517789152682408217174340063463746859004528501452141357289790955973800321721966028672778513517633035596043777224956639446870034895649799548987167248929455015771170307336861135264991736143238348150997527291052389240809843289156507770386831118214197613810138451742235897828269991133404478980589967881274390415562476919272357868522837442919699289821946677345225108300112604108465990753462795866874006611672645765245106076060006320472313963894857509764308358094813794046540796018556992994956056443205156807573327641334202788969820988938460194798180385157946514926071527123939835631142772001372424290148372671074387167708873598973238963494342425627312085958150722245297484105561308581989421908140707650844674964584595863160917723384644008344174395534317241789653153362760550687939305622862428310702169541072847117788382876197432592829182001207382288490780638374534938854539603961957667299432915709270334846130794430854155393241332621935938218214797879692754555776606746499652544279431917964870615050348326082701660844155187715604847770281748160918119072192115945719067238474800046608290322222975034024684744467849744442688788617343410578520037008385395153054084691408202572805958095663390794792660208169317918848449386471353371904127049392818285913308891964933282875197194237618647283876388662983315278284562319261471375847178875889741328111337551955228621224922195239084261927487720884495536433714734332830031143039706514080681627158661917535413564848037935700622142967237336753471292015928642574876439391653083493892674986592427016285391589450539467690068897437629803364786858859115116770059555496697026093398000583716090487602260564670853488584406303624390170124609903769323822516564168164386574914555687457736837583789529607735344151406348336394627226369537135185667441543589704851709980997739228054081673371521351899781593051646844050555103947583244595691387190672887637634508784893343600831307380683665421019512872334845336668411712304244082309999027921080708817801798685535240567539456316784626448843720975012038413288367791610884958404152802631913329004260725571813489163614507902986765377565424905827750498082930689869829383325956177540221268509738716219128909063187125094713896012854278427811479377801096420827641594298896454203755030421682268868776447517383874924186451904411461491171425850713015312535928978485628553474517580066909013999245281985482355801455715953401015100924157017922818319820606324814167639427137864619585088872520980587453690423679831191367477477973565577932870551112503464697015543210891539361010599611165496292246073873815366272048154687827984592605714568815908395389040934966397341323971972064031479172379700012151117642893001082865628486203979380635658963258593092026345806128193847533975599476477333449905729644832009028220789062134111248489354602835202296617015112876309703218177594143750129779223735676120029113437455795400278973639320040539662950228465246579622476102379755560122092818298456912947790738158194804854898032909006876095018324619788791961406953487771133019282671292654462633919488824663575870899779513397432760252380640995129547226770436286384734803093621859383684797052508353438542265591027645409671088257267664695216019290712959928113661047541590463272773847189921809057073984591371759659903975177082856163589697218154500988981414760347109098713763403793438531889823404319710981670801004680919241218247870077903426002854426634045467351507460896468414512701170605810589439864356630623091884044548968042107668313355915452894927219284331927790278889461906640542045237317423353679225044765705470741305978409607136152149796655136563882675634425509795936974590104983849620866724937295362778770434262729510851522475914354724298716234742366734223504102266584424517631955435550595583882547535305851045541569891444284931640810360312303112368436759531558943472368071653995276961466776175748268443191350908627513419906131235220327049609108568837534875682110119552217970554892840666212292911533099414491729864680888773356534664405809586907065154650283974296149209688098445508990795927551924346716200504284079835168892941758405116297060991807737498680950296328245294410478318741714727967311648380835958348464047110236021868295299278939213925239395335373629973343620820510949538232430366984730062416005765977215830363963379552347655012993834522665134297747547513953788607440535157288114148596318113170954829484850119982404719383003006081998240190784362264808777497239569932825992021407974015665686449443375355375344707009623376088306590544756170221007274863872756933341134621553121398056390174919952782402128953029129747492231256826162007442761246430793310718638472570268275218894600305259220248440608842228701041308666698980892999260187257942287287081928800940607238903010348927307363450167349121612174190331691393548152234020959309136194098069444828902174757019832260409585635193121079845126027116689205678751020884808585456351604646357116571640584791448309234596894541407691933019261978205057952108768193640053584981316632817836813184018328433720746641571892530359266131699177404940719234505446825048031033079028305847608837641105605001071704090173860002879534145611250130115562811160919369335924499472717722208382131987492636964206403270962213537508619306503549158541522459841263364555120581879128017553219735495856072946522303559109093140612994219471028020569847635572464173363802036926718911218475875893176517992103587544785248517909065629148614800141856576753814074599279597172538683835286494910572814159526556663719446655898390458370758478894408360149388623326353172465202668012101004439246051933222404113331761992175010314456312555869661263770709149555820867509615384987843982742366487037579548008639985048968288503650063875293292658206579556172341779479111729454056109084423450169867690699931797536400934965469279356750290329327902177449293822034921764915203715192120873829262925790745421894481322055719220448880900906812889726092935187509442398388736857833255968737791103655146428242935254508803952214561173026995986704939102001646600836871732350197185824733232018875810153007665068484041916634116717780599450624696780735120144298144728508629580277672937515353744105977503803437139698716913102276949423139832971466424652805049694046009322001901353500937894171116592463593008816453488526809451720007506457789544874249788134105629832547366443567713558035725085772877591636331106099858976156939839986759389612035654150146474108483461560456906894882950071209819574010030531917188696117810486795263435139338688618813092826953656672909010727965549557419696244147420562025364773900708579004193900023590119758428018910423670351426185220568195892397981923110921067909783971294382795842896951336980127102015926939335517274320230326645778007370824921268159107019639056728631839261649436847136768287425374276329253945015463902473036728389294879405571373149895382048514806471854315944266162496811074653711883491980134844394108658266259846334731331913198121735975405840260332823789669245097871948696203294775370200022035062846403640644173887156891648154863312187213622316926709452786844133763938984212632224614503111363573097288355447754747515706628548938752334991830804867658848345081595094126165284761471865290921293082554633041459235275806690230054986464688254775446380507227331386377244647100834176184623430139063845531628390001881477990528470736918819817609949638840558999634989330401801523003255299789844560842788693668827895264885383525506004360553061019459235761617421305426683022029362275204561490074341552396842735832617143359511831841974125199809128871588484687096855808142486562692715527871301055420843412686872445958072511298708420416686841700178081985441883846983610755203512617903623205858331521178180230771528915272061725202635131661696158790730327303703078249581610239347047463402878004482161094388998999002892746328025829525033156242998764011677989921454981872184567147649259951066920447425139566151488261591571452809839213295914537653667496734869076717887077371651564290633965907531168593041499173954400193035691607278041692520633231722664422229996142210284425925912956547920377126084867060942384176105968287217340401482975021799761056001710485373125429051135121956221401852510709673899835082505334516737546845907473745775432392248289977005565471196529637435617420721851090784218823151567479609325454224639887050894140879180900537689073702657005124272932982365235001690364872608898367389486127156586155925402823201408417450160184320467024791166599415657931829315773944995970941739413265859201586745957327571935062765446545449938368995784197551504641055021110151710769514914745311904232757828491097399527743200962382679479341849272723367396684052306218172897064118137361924231471454681005805657531415290979304729203038929634566765622182369733412553185530172392454256994614208016721810019728493818221162712440740752364323883978805474008861153387839114204648533618368858669550090026344775751542708362318586387480951140098141702844198849004076348412449160703088272817617793844932905036963552914538656925472033944942013200014596527069258248694316919002571805464628426759935431902043988420561097232722276597892677625950865956951854727308361501244589835718445008099181713620069727044202604964799626401214909186850854211494750358310313172228514895540185871840805999963516430551122327066492477515086229366393199318608345987797018318197454804080904771726966382736418100059909523905295318645191423859923092853502582984609276424927358790771640501014315942080906241386403776228584342221862355393381912782197159795824868052876613020363629014242548448235055162407273508362900441157671848489603592736014762750275194590453772050701821021655018741408078911097567318114218876903451419862780026766002702516154616236706535659841128341565848552234445996088241574017276335711865308167256266976002454064971344707746140328455493620630692373356815546851659091413801549702342492233249798464162731900569203970105255882017448819780257955036340432246719573451134673537377317326655208919615049917313166065409657120860163854351820002135605837615081752796476038032658056426339901478629363353503936362318986665992627408039002512861603616888960812196086459373527570467671449315478285016593323435772423988194505591809798528765694124062330464938896432426969642533414411360083365500752259768636077053952998308661537797377405475337266014795665302378058813909565658388467919824308328123283623582143422247684521827904077885173501781677657186713709077835579796109276647476122968809078138115539401012154165607717569536235940958661997859803559070685709433114213548288313302745636599188957227552864472108423831128028770679719954328645038615942219590398848980540419141877111082467886653638170860946824457595748646398634354125639153130949583124937583820891012733825249025863136118561605505431417652358816395105042831102132520488289001764803265199695900871740840593413459861155218275514443260720663300450965491446350239327004566210360674216339406976462966154367641665148439995555478981830938129367469563978447321769483042589014857115609903406566821586585431119406694408783166087166782817460183223359366609966482513177081365273116184907024512734776521403375458407084215749448668850958161140501134596515812600224189746165431379961033262711111564242323870301354319727076885038045646787177678824528796368768322410322213519344055933597183089914482525336882466665895999388230046319690283561845566843188259069354632468054261078454129251598120375221767041596415014270768557484437026988849791108915887939697187602605326082382481468641125496529759329247609190574035824756160367848916829631184363605542779407898834141578449477935059570514721385601882184757199634537684703699712841798275292714235287123420328664108605485597176023815356368238671272169473777624542653673488044063765044708069323216713167827607704533827164387486992334009862766993665630575174605573412231934158004004015637437784318137363950327922160470296449045508296207097558032656930348967348115092361582465968381813344394517595701407137920307489531982391402521933943417381162417374578941638942875545614973491568608168477757498427231698000289960285498821701886823194112054824250064412355142618790646949295371536204432203078233371281004967848508620793289065812354162096651983929605772794041320640385328522600917038699042440183451882316468985085056989553900457079469375942924089935157897390546474918242706430753192901481457484424155573920440085252742128031420496431765077694141444058497147132253449201629751727438572161058457442307117049988125158854946515402103951402606562323788644318017229701954972747847697829592776128015831138852055291784869281862864137618956180846415113357911465954060804624452162693113187195477769835632218635270544312101682100411387947707838045886236356929712692125356548878561671042343284678203913438451471696326553866892353508173513419194944444436040752221691430333765291441728792181735198654384246443240954622864955513015070242545351470763499985645744728201202410605873278350161597797924362012709347482253263722923073005492465605217604236469080028532209604939395327560574562007630786564972296982372797448869785171132306061050517031227512592610755751982680389701521810904703651362952342193479498048332127173385390627642358447495117921128397463736900822449179371911402965364989180435663747925849756017555808161856401557820532919417039963485684180679818159240498834579335342304190567275492655287431708636037138166869950019259327845416676054541610640598078815167945649028734793762015671926201136502915608591492311240397333504601013512151485740427116295090248592575840915114922241131650874482579433401887823228796410204472855745165995733166535818067882525271714832296920498301744710783420290185874495287817396920603974939415926129110312168435859750863884361931572679623566312948339435360627577918460996037813193483936120266721689067248033420422298316240603278098613621514808668574136190805050871981498362132876236932178792784542833009776617824916422175097172122736160003123523221485880834229426685262149782086642658872475745995913794223325175322828181822371321320666668850031029111094047142336289597699582359185298972286337159141448398672184629761351293346882229465290636825305249865244415186319026662869222093978272945268308094931224465497920357223850838221323110756969102902709949123942959884748493111578772068855357200844892204599584712436579183647492198773550985065246385658243636408108300262387907804513200129667917146914102519754285785680411215565237932913408732694620426428835603007538396882891451474153210313258154433559538477277416160724153310048911723956195868857204005185289718789228713011324194616930142503463511643738449485941289767806231529374417566516800401717487388238186587777517623913783090557059853135972672233180515811837398569004355067766994275263405100503945601435043736794100896372718979345335764815087664350993517974424398007617501454083217533273898086909552340844723285749670012540177585071177591598063225104396222403129248246559825351207066435255159113200836430659575591559609548229342508701146277013998984731292279111300010231645881914566841573860539161690572240051967216050212899208481070917091933912848788238929948520110253938119206163775007170096191843057623045919439096363183685614620491975582423063831075929142902069215207292464379664113558162479717576017597814714245084110905923041520088752304726876778819863880134361475281355280019648670886821554669866583790657374925992633269214110311605207436791550657377468274713708701877100939883329242632183956500643451241422424445726997652334279201387308911315122371512183916769089468935641866555623294489963120980095167245028936281579049714329618627000416590768469234653451348444137525138786060443422594671050722655181988038270278112750020832400204064576939668975331098648926554781938307886535757426117152986391990477743192099503580231814008646283549169237146882661408860795965705205710431688693861524679497180460140241787352469971534901899756023249560648358508345101743982031412467895247656239001137559480914826382135433593943184649827920177410340993164902120221143404274222651902634268807611929850335914907868875486402240279540081943560689230952918609189483904371560130826488267544087332029798460661777269122776812782286633666242519123539217289269952639988824663291268102264810400050950643263075975902114859858574192984644445017337006556051090863242362214255744278593203252509452411347536982571259068192729362097618530711079982649321527669078654996900589468455610447698826255257714853359572333373889878380137920574716090974739652658692375608383323468538363185952010267074946492510095616613575109497150831477090722787294925337183060864306191692599859824059909201247266481475918478761246508583549759016466512102325952066969588266491992315242593618708336963179789256733485107387038237180778103918873456133143960105116341854604696177885390820900889685399655397175056206998483690580805133302211110646616556882038169726319744572824085706485673928570758291729530272747753997373818459288503039805187876703337139317113320181581995407135491484589851637001479864639067732261604190823829864510008880022020311909914520579970572263526321858529802955868541166544134862387127446965775953357165363885560309759330703949824157911946525124363929625179653472492796243966483351873927740319031547968487344040256383208469317192485140767533861459279946543634567991671170981225351207132359276996299082792130552431783616135042685618076058387484396118429934350214327838796497261109418132703297407301941911163755900572969901492622310506283903502287265486994880298835781084326794479349242789701440644352059558995111165433082109284455498654257572689165452062259044729690221894086609643258315676994065469219296450997156748207575202460701876349626240565823246476800129296340984319605132401654797921689922264816308377346133126773655826096953323333139869370186316348978542431040189878552115816486933889616137705541344805004197073898452794001330790479135469834294881902075310478513431082072195095078577272895966179181514936836541668488011399439562814063685239517499362585555535897130099875499280266337345113740475576308400363825727992686002675774759435036226370827884448582177442165295078587817959147760061811965255991087850928812803719789474776212708324161491894938583306495009152813224597005705758596326887424144264726006460923351731911122986043698585267056500697342593505394284789330669974629871110357947644373371311097693111259890228292458666949527630696563129774668924804192348946887430322572467134508499408634909192373889526313298832627727955021172457919972523024150080166056742215968847290321826508589282264698652555719280772846766918075805205960092228815507989190180672430283024105997819661848430051302102153630579185484081668755290436480791959242697562168819425910045982932731027461925731832897296305816675136237586891547635552135188655190004490302058565823884770998119523679238383869339677266016626473046435693026263979776845306505526739968827025385885864681435744902477281441028976228211442924849742011181185186787351877726922666103518554260021881036003901816639773338705033301156553658821046458351454140653675194562537925570713957621624265927585007848158359681069108388070402942912118166627632031812472773585016935313833938430231166093568058468242649328198197485414379991724668911408853434835569418342729639034921533971507358871337371731044141755474655735887717224641098264816947136648193004629424177262568428480267495585768211639789348148929448911625055746877068803497060590160647990628439989010869007458163573352115318223804906463810688365206973082664421805694553503728628706749740536493692905274181637112692673790813102623299086929700495195808289884857031386951648166070172093476545132966785849057285654656501028274243872373390758365331092150280246421934540030622009274587888778962443691356328671568618954655954209485166447482769267403688968358118941928746206106441520190319523501542627747960929018357824162807945544111361140418107961293169575799142097783869265981488327895928157833833011439407311398756321932708249794226356891996004849629305276320506399514126262825824332061307660219424978099358462830009966101637621348491827337293048098974217534708380905707685460113169063888420209260301012688688826176764474961136177152224865933002903174057727590538701510813536202965268947169834704777019220986064903005621482500825371283682908134329284671907479915272557021070907136092127522487687833776137913961214512749843348614420953738288523344834980181973215089777226299091180815244872971648042517680887224637733047313567614146876001547071756309344435134865708387788261941924419198214200262042579435127590088142147006781218125005957986995525155033032807254549353827995886825878777228137757674086591375833105002843879365794085016884005512262644360056643252467887220057280370307714733919107589345791165462751262573506094218520776969609118427236810175300818331275366130193857261932629124414137258342550074814862717141337328635900699829589159982112796254052589202354053565095298210209356075777995636818988832697944277650682192866523378325118732494980891334570775242697083255844163891969542969300633746209930191178785405112284535425953635702711479837177916244576196110525732197523584909410768568597743683000538481418683972650225429105330448393834382093383372761890088042270734739429448869745536682921653533488401104434760259569231831682681101629766709392816312722317020906200422789136396668909298147153365733490268851657209685629578480953212727852454566560544255169645957935934835952746803515678380501129569756082996473761958490913500992234037883243129373333270158778678189732238692940125037982293382906123207853714102373856501591194929692642715572595536257553836883016526958397135699415790578110679191457740781846950712003850512017726339948835374725773134779205340464614193178951573354866948155347571727229059422792812272398676546989614932911993556673807011873395360115550872445941614300435823046915344467756859682385032496109019341772597016917397678929451227427790096859502156039881443122741142092095729552997608707734029510502413597830181612077981622764325159806916335148144887295694169499791200194983128257586736749450059689667582374071864398460563742565992313124863918264894043930742636688215961505669200945176541644322633249308048714133973957532092530208798280103034163284610487315752659268147154029795657214476137946251306552321242855333202371902431920101080537996492718202245315310939392494418643421008978435946920447431953885884628125341408894693450382367829867678399513410780781494063158908574443807497528117451233731921956101669440555259831035169179765569471384669801781228495474063318499861629105914244497599763053261290514522331976700030523694977651612144850653390653746100981354062355867625219149501200222909889984347841151208205543000522320006693566240574654333919734696216998858886374630503784721780393906205493666396085171031894610094132176036259346885144982476550232425259689017469522494719369210001523902065382877403440938423800479508717869027037743371856645260073412001116067608748824973051120220881713504488209991507225080841789756094614817024651815498960251197329421900864557229593434228779229230439410015669069616541046461099542081177146714422468722987607827459252723801764253639538524267107565641902482305846995949950901145208258100141062557787592818088342044119949565752101147102526120691297409209201434042738112192340510853105440478632965674447196229604595604955770694497182993325752060701763308634600813752481077786211516244264783255036751377753145514559872379186514525370016104798677396197283672517439319617264623973036329433994267811956042228925641299020904715306795507820779438776183747488310466860050074969503259364030181825912572771058603772959285626524350785828966459399590017170769395293593421208332596427531064136334783870313227445106362087016827813866513393330814862007057391980287559986732743833523894147224581911152133388823810301975886613840208069918005763478853368562979354093031659253197037149707468690035218173329248918075018282286986853664982973361095086454184384700700967246751349428586773548968251879991264930983380848358551833824290539751952839587113144647543178254035093702582626154360108092437879085652191158683989743502060530549451795452240926436324169862254478806031557497762932967271479695317248904534946801374877930918647625525988659027085401755439693101367754704216898598800515821337126799471604402396126489433214674342422075931107252026142937651083132427558781316276354780598920917616878035088312475049949991921295350454708269706266050403136046095005223501869864281077720847546707762890267002761750655405878391136386400304487526621177830314066004544891727876935219685829684723569867877275447850550595751048727855162324636146246554495366154050266197120626182109244837587227897059625447495765406180476270439055768131920231109293500652529460128995462219966771595273412569005366267580576124114341096061175210638560617865487395941479706089337671499806552266266188395791224879695648747508053163500510810958064525753586136949282398571880329751835734114383589547931648892255319580887647362250228465842291796179349039415761588973454979005291308852690067766763953340219460909251562853344338515204118493590360021049644328570936776616842917776252980394378421594883283516637175920538659307942601476552579068962155177790946147439530534293927415651652216909523098835127263543246002854056692015197115266775626578194064245080309648205922403536911972806969991501559021440757882580737753649859679012219437117799714203800191638555450875026922536159932630640731479356789062568320602938440489394281716905089134991670760659158562666391669026407087662295424338229901413653927069820021636190241219020667592113803881908953096855660706270939205783887000609947682347811794800125536545624060230336219458064580221010989710693488724543642109158923721218975838078606470490945320619985408473728773195204079212983973634672960126567798372336249554324763430371735528226316257931014383079613437891036235598919166654000259369160529591095221209084305623728053278931518097843523733808703284288806260911989693620518299058373464564082722184290320473685834252182020568505099767829541689936932858403817471434774085643645875491440137520219330799123226750094851838764605693222292944817931001303449720635463247553276512261298850212881612263532083018493983239124285589075347987083845000326502175385948317385698072913001142862497268475098169422845330580775000217292055447930467587600925120341002365034197631024158021096115676052420501714667347958824365829872586573615707889753831101142635730167550343602165841824510651734337256117384829226916442694241916388571502148569685964963485226456979294022046562439900842963769801956181013559524269168408771358520033068847146606818710222779052998192615494064615319037759002563318451088352273475067272237027608409035277912676144295202581241386409298998472482012605351856696164907625841573731531090349528673023179747133669676671779970410394880476512469399056307916076393906144260142101582020821482881749604831274101443273427849177137084827834383231306056323369577024785516933589694107889976619837935974811960193370722622118817797171898983291157701920478611789861791872005395644261826875554795828861039436831060488456936230647463433197734570087546615884166628489437334351222242917252820306545937670928085886577416332477871079723485783268483000307767900745052172928919324027380034610278437374681553162673569501672187450779017652937087849202314551198331342614802942415035681004141063327475704849680996194635843497232702852484363313732331223946939084151665268966649010557816077840987270505549775280776165025776160974045106606110334752038063741227482280715151660599073878451879872842949596000879111975982480274023501857002310161735557252510236158966689630217868709667911708592281596370194543922197533631864731592648330052882046043779418478351267519080418099513114492414341415838380965435133553589670286022716471283427659222056247718992155560013769643621855980426985855890978667865240588303878006624398237632311645667906936998603483574225667457281708906397884087877031291305778317283542542080259082918851106892632661718808732297494388317848800263381363965789931794479642462874228918202205608371133127049395298601227552059370865724674998475622503455496269598626706112905729374901939855908450234716807666452285015006478317044285278281316223437516729128139874345008793982959244504940221304694032808054718206291069370470827692194018947701528419753236302106429761784549237108227713477951269407381841788322146531645433181950479853355684018718825720669296216435239716660884305131080405902808316258343556028514070702761675790465732316956284012847063566900526565117619754552363913731932807792874486293769975932159690893936061759746372901559542357625942466343206886688593980560494554536531584195808349195084222132573431267471704009993275085026986816262914895182574644662271626388434281937341610917234154690607880372812634548004877178314019723403371633190073450135346007334348254338399113312061627949893659627208129800551391535350699420264196910100136466305745868104998807182639765256876845906416079698487477223911657598622616763795303643683949842990678115401685970622077205154031288265524297911933658245595814918382900650415195782964240129657991604122852436927473613213732760811897584971251636727290485832197992030619823940136550981283177625750078191767300220708131682532642896833797002862980391618461172464371395063968597950750141930063531971827849501088587184839288224141223689920317841642860215250767954904368545821469105420883466974089413483615310583007213594531086541328124292003603970189332265041115846232748793259967078412581699868931857854167687129990776579474045063642023734292521702545183878514983273164000487150560554972166404424686666183835904501929837762740016443439122777168160511951003498404119630010362308612875508162754546741497061218007630967638313321469083487020276691725364899206574347140365254690183755333434813452779971611257549556668207310003429374359078788918084294633312858225742634445198352396307893335221340604712135485738450628468406639423619915309191164128939962128006974378837650019416013136425358911209906310744135983052129791219980211746234318800770108773052101645101288664034045297171946204670497962887434593855307000458018601026440038364301426981809240157088843956395922970565212138711906293998953432554702996790609329343057996969275966736238002652924204811172410250717591851095551570299644630550356505258776900562599344515553291089451296246891039450696129028707338865264038912389390200884922486702867067300241513826653747302849209136106876727232146059723243922192696387206022129229757167767367912757686726134886992333447007665565752267514235883695238217929676672365793153569809103157517886745711890320285676189359610086558426121181954432284538629601801409413996767375646395942760029804317736353685622487438059054285392021839469422777122060180646075426358161469221104722713729186467235676530302890019399806718397054086937850277879110026203688065993965317281213365241781045579009030748583310955241985558616104172861798958592062828430868865736723996869471118568238672787471146807848857737447939233645011433520160523171713316578320037311164283131455278223138531433990526392146351246248941218724805401689139033641719178724401329767697707720116843200259326619865397859530518470932332704894367283942627272466064452653526888072402241146729603963391049895984895044911342146799253776047343910756575033195441121703270412094606105332061202232339411569428744766183210187055820970575508065875488432390718699214671303189499710359931079536954889654981149878903584298394380697043629272162565853422090297788070539966922137860013278496469777374100780821562028873936698000129218465671408392748396918361579331040864459230071724890155244694663470559213980875712088890112054895765768444916670403338729978099852907608962626122427609868867787652156208534912282228240828937235706806660886908391631108672136459005588250117753020598275009404296933571388449456757330026327809945792517853151673120315602901327154751925542248241516947179346735762628144509311967169962842356737023856221248287316917145475384986900500581115430284511461675564719522944644600158657244979946819511905644538575083973676318651324560944184210372422940840508415969700324323238832580475815093015154077122461691889076892041078103620378123601574447646167395665072305366200489144039497087211699742933410678714532278455814462084999312673696673219635940859465977224596759940546105059726852484237273256428472326087771716583366215231339723797370313683340135207667684365080729012924340723473146234485726636011520323896069046333915435441881055145255292390553008248168239810429243932574095440418211128929529257384988194054423764985937051566767560258837451670746420003575866533870220216635123475830729493770761329591207525977474672353430856049336930500124904528883333922496191391656169334078363221249106394688121386986005414736635510977551798360138367161763045716095628406588953761994645830135983342366424824629789071329732127348729693107558042114462884409618548613655976997826825320314639176183534514006414037743502165814587112527924331735958368200562675947927667902317207841275365761206896201608062194623835855329860029360885928978351944971581712975945731438454304586817096270219319204674664799418188386621707789873080183665349036055505984564335752692908921681234327028895686852209510663663494056054067266548160627244301862463455198122953628855732131958157913282927358504564279165216176027255413657681535995801289608480260018828756930417160505189791730953037480557192686540657087109510685591565548971871714506474462361390520729510486518477466851460240787567558299019429496168994430445535552747715761286120665228364361929215713861991577629299239442525445913281802074784822339124760262031459768658591446803833286922003673973803850853473477890315388059040514679264387090562622229306022653100504136103416898441791189518364817335180191459108936306055667698400848496172950432779790998362547620352661351828236926458373080653735835599347324371024569065721242717060848642765231920278904958998668592020847681944194052433918236553147881926393619002433782427088446595182034306335072544468141173229535638470695035490523535337684894200748568908445603889795817590437622026636865037558433469493274573126130762651973371360933419186652034415393401566665772178229319995741176198525378871381791873168510764687158703938856659773670242233918476463836153059274619043759702971490740554979968705040995999516703912882716946365247195018891813369972550281647303520993938857981424267653016591496651244552202972022548278644779708029214538666214700930387792478663209053096701606178921692725323614325709690017347596322555635699605511392434851040062691090633569153575149350164155864559704783381350034904034987022471028333212809109569858416208140604157167371359389443152735760585556005816002476973604143131055050175864940459533440917280640323399072148428058935128919868953924281272866416725808911060143668332322668000959557043515989509637221589200073203477273854800113600430482661893557340675956148019139355342831701628057723152214442313883168581565250784597222039785307639161317158203033773488519666798414527375071686842992329570238850512188797095411026173190039643746006898130416920482820066639608888193786454451234016916729445143958919688195911130223061686754321461823021912738545277297168199725775671356373248179241911755402919190338312280368359994261384762256658975429853905618490383124112914132165117309838576209543615544935179203228280776493315426897362988224359700866156871832958527045645076799830113721082085210642615264614386549424026155014893551106750950375884471509799735308076642072310059696018084895212196802427221600105984424668817771718071544616977481380483600353191370831328535133246320727888771342497887492609716160884895297659037329052249137917871268712167840176733440481355465780548027222050565923189963233185895707486015716822012633621013789234202855090162416210047795808678505065133970071406349941552961429480181932562512919717244767594989150813877640337025820285051722777907082946086171777778815811795594645956007416394871373568346326181939830895775989403951407583933819247678542607889651699881462364360114352308272102061407870487749884003171322801251434634036095372149562364906449098888171476509641155052911195979822216348576545069303089728831994689616974239098857232054999899803893832034653320078508329006888300771792951134328933583441591150163747123695105445191897675350737038356674099364132266723461487804759419059792290703017574847375814726455820248927015837390025111455984023629356970130446939706921394661958399609709562768225528388652861919145663037085066498651075544017327182409119456071198347923392918557913445199372422271295407737320075018362261351396914672462750289044148923813406927182645996132735209551485927176570974345978868987960695033120786965735573430611869692292968370959068580156143754131775454984492539623953368773132071838382959357726579016704800302119987354414647735235494077046407182357880023282638508006528904748318231603222431017765517789887104448615672557235183846559851459455070243679900755272256572825179082729986181767756618931841497760361757753819395451088995801727982761700750815940286008689450423578373434122938798209418487361780124593206273139085957380608071583434332979378908499309073641471213999076622445456141235614446447159473304241511257787699061393880341311081058356273103351230387169985246928028154189307505402748295508315252585105200431654206529486126866989887682418860159957743335833828372779573574356442274750109703737613420485860814788728168275416419067533821908091884250543008689634234327011195646398104739820202727527184877873767905159671326147417352230133691398401569158650168368074747854066795098745872419840340266470661497115916205827839438790750673956258459528918264893718696770529396719145237054978067012892923298375245513896680981902835719322506062246163844244042761637447131951308330850730875813716022419675056895110553061190192180209331066345087192211983213537518867290161805780411205001349054929608220261824104377630998699254117051018041018353930860738263724627715033985493524390662646680931818860333415049760296239576828585710989415959232863934396203209562925823744702510444101128060433817368641576473056683819895093555047242132437265315837423942953349810408930728608252254241306082238000870694447151411042406676074991932087364453288586555530945092531581823542911538667659161293031900524694430792197058632066757963262389028764940080969301794538705893506866421622916250807144582488939317547988597945673397138845333247297132236489786602092588905685137872826635072763436399338546054714778615704691583884315809104730732433641993460093390383949948985032265793811520059807969896650799905060074609731491636426102070825948904223302692703851319362301675097561749846865805884705580005490883460980394996083287360903593899613026717389369122125867842193458767509863524643973282581500301512999535499540269679116308932043163103043316900989646056237403672215160694956916825415940088721834724095812239562922805717845931290566532646633848693743711394640384938057638301912403361258698782489744286307864955617508976172770043282658325338740822290790969792928324274045745673488017631833409672607077753368843450087283773749302974401787804391209646321134875506570588071508260952110700018205944838583616123764019694512407659948746646444844361333718576469088772576487332837932948040174636031998279572352702513126931672020043605105429541386074277551189756704719806995895267549619860877173098112561967859997533783332174224980913176854792476534925920573805107128106424877576411704185705550355191704469420287915467954835299007735744548052757774718534495874375023141233277283640725671453900530381754003793000707439322434095962342816501472774364941070176203036296504687839581527450117633078303103130538056880204717176118594475911477003426155329027602724546585414100731469400205331385211587749762394511347265274023139226851876062269185467909923517875961613947949541005304998802263378642946542858884226780903241880296732092894492929431195939530830241415317522335091854532803388671510572658386808789778974388414529741201761724351253135570358373559964105747434917191994144321865787607841173643075574075510628244953302849600743045366522358183477918940603578396338208104067047645964155049167471816646609913810493320417226540526528735080716458337506410809937557561471394308719095856010642477013045303852628777133841035760974046748569457090889992366723796974418082236861550528221854805687749252027814316906628339691331415709067950291718975797683708706345879421689041925338350528840557984430507453235716517178486145725791460216508345211281927029890907893950173322009792361360974578489438009990204394712842477637905865929431836931699680552269308415264089205848618021357285244568388636526433824016569698289934414393582579698110550693925586901226212281101655329454616312416183934759301837930825630068806422762496846512321191501121357509963827968478646602343090265651640191345370223645444968272838896704776692923257931984784880513561472127243278063159933122806870674495896505887673581625065222867193386624252771727066717131072938703492691805019912138635862285869344439587872680277665676844835640847171141157052261001595160649446041080675261198969288733961897794582290579667012972527546936867491043791621317557798108392288901342003878325744404125755325334699997260530741769063832311493789065438737886787849869996941351642638476173620879467563254264696460806556727245934274726375002348060035149950166633119800936974409913440902601925857019169828399858985930249635729731210832738796842245383909315736691253609915451806941672414442840187359097866943532157727903106457217722552399013087634748948190776048025619673091335881492590266993572979520968710914324736196531143849903272401018946995452625586330647592917733180863634664604677769541307526928680904436332777397644295363901902485190055252090054546440907489192485859006399724700368811378742278127174769745479709307569018209681088108148197689477684950361221730629435809242244154630214634172434133363460921231293120394682005371844062804623756408718869872388091125791347583109997687598787305872772298778200509184848653325176953576203082081449217466013977325443345154213162822389237895633265165842057782722360052030793140446107844726457673361277748652789339094667681334473930342479367962318481107894737666710293654271296177609410903213831634939573922791567172516271626661837232710904824618144774893657897726836983918188434811555020167158200872761467183110362538401022818245248928982697125326533224572333507934725709637822948945522322145899651839011416495764112700908668005792766109334088272811407656806810048787443899062608025919334813092267703084367164564322182328080075217309326984075002765170737530247236184372290170697977858826025871225957109565666582869508083133683269290238301018813236229061121619792767957863395280847378737227874071979874362165698349846743962595949186710372895158830675724958145992953932151277535395575090034424557967114184051003526946862807667398344866372339031082581622440903009124181003802103504785203902293247051169547665704316574449224890635627380947542853335905130798707044706995159919914648112288095564229186165375167539870922788965936810071302543772008515011159165394499105425720640505317197455218855468518735009064021437557646222514556770482819849241936639227334158044968053553934214343926281442438105389587317916390794127540599998981347685299504658338931638736163696471503690238891687360689170694068439107184498767477382120646720364783160815085408151956283631073176376719836137439355305872892236815326227564617047780097642855251739735621317339435729710850642449863333130299048965855320002214679112743039257015580752870101911954444922958593541526655944606881629110817379951236391247733160258719249346555668325442904534678090863104793319309151178529135548370962220041280647823842336680206786308028652739007211867679682007655693615208021995890767965701994970956175897538008230638817218117614845617299068881052260551478035155868699396153826628801835076810482006725166129381409194406583563633369465670141199759571827842423840672950006798342235481049263594062965366546898813028859319852993132360123881116477588466692721324894378113036558402928121253734044949828741935125955357455453489787887731250690562992625065847159368428583504619555284492052062390850890200141386056609734644793317868460954158851527544121440699635967603313177293055702841816740129579806209258084629167282052224509579017116340795916614291754549277641563018729198378861455722399474385994539391504690328643551031494187890364142251063827357616626001317296470689867687510890156914264159287282247267308059028574343618531699897039776797148164013768345434960698169789501774209310811266493662556059977966298127195539317085207378756722171743712543308658066557471209335631033351348240619128091699714891758702342275002493022911850383670432720740056877908500678953794551533039556484739048609446329698742555738143272842268164250082911345358063298979583624796137812310003766616327776561882967060323995079614731802886062647913891602667477776161402422735543515656917684108698378285934527327974196100881203599444012186366642001795172066304546987444796019858700058937823356043100813482450260050703812918276515568744692645891217780637240922457326133922937173877939462074953102172616352949844182349370018525815110506819976809484360441520102775414819371954423647187386367999341796582822291110272953886890904657055745800321438206645622507200316574448883118567388543769443979597735775369877631081439285042415258081291374806702077186831744001808097680582100293380427557840845688703401077492017006457192045500561509300257855906148522008038877974485879735058806931481697508039905733604154116314925703473857198943915367598192726662297436197804544121946842665158474711081564435478973699569395340925590535273211093461905677744665264714822783979440991806403158977942477248557937267293245472353425650514665590832826391191777841278527297513054352699969796015224464743185654581468710925307465602099027249146837188163785944069555296385717001636831145105932241946237216994748228602347365719343561937440396887430294032064932531107706755844714055327588541171621516725199841762266548298167669308300320217234356417468994347161928395721379842847238997376296152456245751937029422176386374472622670215750801899839154816623490637953631612057811656334438710561301011383396851754108275474810776300586732557992727935410937552993936017473538172313322129530430026032701767329447900381923647035654984203157223438171351360433403096831090392939943835427610467455143961578959060568119146913326086345272663736149016325960128408020289338178345237332599504468291446388610123466014619370171434661839147001357671779751693144303505701676896030589279681097754987657524522562094388061178205251617288423805250484780280602381489906462006234258108988414277428995769500830906957840965197337968582369199210033601049086564616822705993052608794603480351363215928964415911999216383255188001405811289185056007246754175767174866555730064397339818433410487446501451916325489875035273337501326439922125609231010432932357393063874382359728505714321043127265953677684764072511590530067657105401290075086073842070900837056261110652867573845587764684561424982211327277105808109516472269148142403998959300026139087431503282355425121058651217848382005377482598206303869185428943913479904178626920367131208428092423586452839244311205470178939788056116234895501922727995071467397340331574549750303233053212994430157108256473593390388873140099062971450574343333529527642354865268100068467147596547627858624320890499447218171893533276071174724414801258481138914222879859377453127073917960713770789166589972773148130796234293667686516879990553753152528465671618271543734299765014641115944014314400652573059201926874962892883542679259683478414999936800135839423710626903481175133041603243392465688496688643129067663591476502172881408637808055132675191329901052783765697174450412686254772459967580642290455543596677025475623317707030287341061254528061187453753257564442158176263686876974205354604133728226778431631776703576822523210264644001758202312744971853011709233939504442439568517065556503140490548384710903008321985619590146100995112429536899406568588686763888686586814368030488832175488651990248407755864916781348088157502304507261885734703895412004238925027788327698052575770305676245962683318020009138319894697874220361822299131153169863839445161770617106284915880649835286058071708738272153313949733082181272257319097913055954510780563478073663897854206955104422351407381288237581189595885415069236178264021385989237321510947481899664890183310090868175671464514029834030592869429510278591988140578054904471006727733156921549773342237713989413724053381179563341506944342191749949914348417931812903683639054441663750179069896358055009876243381016159010749189411216976846800950775544952431793171894768430254932714810507112010312956860936089913538940049921423363273829734418264835281530897044833727421163857781322276397076190066058094505945720699762925329553339213095954878240996166947957078905144818304777758314406692328533624445314492353650113134941437555264595301263769642110199184445614550278802879119242523333877398232062251296870161438875206020045361807124182569020987558995986795562096606486653581398495443126710998789138666768209889016946488365102209647521176000496149614049752702392892258464014573262123414236137312643667306322400853335239180576452927231458483113889243268603241475316372390229375626802206725133458777478274119938223717421293554108506542289101069296667059278355560661104413708444065428075332194589148556015351068538494550558263593593003530994475081723130592556097265886374361655741636137758051043532070171534225112147124219913747408631618841109790311730995618240745025471931202067471538134866554298723262860740218537598561156770670211894436562472096502766353744733295607832785338899719007157910147663073569962492499660170111960522576026302065593985595964772596890263053157495322745362043404767545329717486971189357369509825829279886639319753692101929565577529395698869487465434216791252738284857864024842493302031135971928396231883060322646426600953201772998529806634238571999776713773579900504048647710196694782043456317374689006195029666414237038500334049465321186385009905891526918769852816179770722284573388719139201360740044313793063240868194442241535571267960771397015839846340642782081110188130008232054675502222834300141290993999687207100240188437110816717750003058183162411039511461139969964466208559463160340758049421102472521703319369155334608148090103142427588916921564003913778772541322833272493704530204018828042326944138405844691586065511289623595280732503440845022091503744536426645869386641031994560830484369907807680436853488536515288056158548803691903812881739223512686649699438646453067859509567517390024844117110170644275842907142211251832367246212773796891840824378515893253166703691602349996250892800608733622506781301185644041501162597232654078935959197314663694768394766514885608810973849170539667758732779657749403903854238468170776843398915356586433262810497453042784825805125801218488983680418068022159912618039254642054169475892554602793257571471987756441091963369708747312355963917036384062455908650576497752518351592501285837520369259396706797372542305651151851949356371641633889601858038966360896733828416054855624575077513854326514213402613487090604602860045360755983364129592774016262095968365106655017705032884863759495597129331752667310136572197302717236957417783643945823687178188278733969249270976387156671689565894755814125106249900768016131290118675961764590893413582938119206005548630433333287268294112335584409715112662462760425576822631389381600450371546926427902198253302486460594204403175470274520894528411131151173798921372578469175254378747261644037277564214284015681148630040290391672906073756120608886314499463514374483663211602158005630131050403238389247051391943888762792238991064404999353678533226297176249988541077297457874450681931779578279692315724789123540181427874496829916146116851751513407034422665752155425404257465899076594272066547291992671375634074607534397117600829415670984196898710486055153794639741168648292698929794218300629425680400029934177634012876442464416690758058948934858957393314941639274256051260181248243995175140825510871108865012435522453251403152194364010165744168296391254002949917454583178187486937920360814615307121482917467537153519973241148240792044446914375487308610085994495798658433582899514229446971345728407011364583337756422698230802151275077121260332691740041736064621951733487048598112100045627561490315489895779280932316144382432704013747286784123140792072581685513089946847307988288485688558123338715794410987492838696367379819873676142844013726250686877831259011104965137114056116819420745578622326237312287243492184450900872928123802839757287371799327369356622431061053496402910303150739455735109776323146354933793334113302728046928186530385080947005054974787687076098027230283193567734376060885476180667957582984643031548680728301982895184153003099837516768756120167715979287160729788288851368834663971152675042084185440180785634289554502322699178787332568226769302053659518769990125888654436999198742178249813053835052409370476222418263081860477119375468156541297418198321451030070516789136627942360034726466003956686467634678974030649625669095460910327839897772671766413729565267670969695475506680020563399895894174349044457520979163050662066593237290181119137172971387186727036046387581639099091816958686532166903673128439073736371499666632980961399421343590229930218631341386581679002211218175290281304591779470925062627893064200623760223449155126684260013907849385151773349827395917331604955470074245703552178401499319266874894182926450111524662547630419585080150257860515288922627108059075627341521923185846673993447082215431863746185456876360043658561246190083929603481807232068080163901188940950232824014052890654653140236111267079862404177559791404919995660959837736513323683188646728423911751396599230437856362417514060432727091224048069708722806353925278419745387905304801508466035992609744070980019752593649918166055433813156448828253089174561755620442129570120003588046728352212861395721723465076598130549884380795385331094147416505885647099831172527476049447907932860970470990635311093834033832604953597345093114840715620242972306905294449494174500634839703176477792701366416266158459897351094489217014316805007840835582297931152593341818102869456297541064694647918782018356678444366917051263473546167969597622328707828867037311195903737347536870610205625406458547309867669201807829502577103734146603176135216807267134863342204694475202716181237265205152963637479825854488477497406996702879275356578558999840999795320054672002397060756247510177388280540605451762036217848665841981010765484607310976416079894195701670222557207832348936655780077687043165295160413698002308995123324407389169489909486944868617596038573104650570788973938531068991643587323638794114748281020995782746419982310417895113904939510616816908890667940571892710062691905634728066040700724778728173453956734313455816466845919008727159245473441660634006156155259948132751722995643633882375618775172498205698656484504012705088482358359342336055168684976740912180770378125230328246686570836927314076723291397801083640511111129410701827158388220722293272327349635221890973668334464678888917624476324709722976734606865966880761436132389629855267627484083681002372646328407125419599728489859925948596032967892913501183484611470516021989387979627640262655508379575965677360978060572482597867782173407084442040913443838655242788982549681476777655105675331864329864335177831361214361801870917176294411923367991116975930874359786455030274936695295523205101932692069895281639467169415173433741367746048952459324843126591484123138845724227622324555180085280359558485277445462623691775652210642741987187514713778302320585212967536032615568044367147227404901785805297123918243268000092973325669435920711452961330836496830878348662644497785836537567668849000388925451859644123786578992461344807868852822518172645338535209857823657544321540434756067578421794320934718484522775519905684051275628474727678682473731974754790462413251683076745248586424716642522202184516681115960557537697514506620069038906573166193755495428842696195327333998037380933497093178670316356135073951476277678000122949447976886722152075478431780582052107524889297286237674714415406993730680733252933243089675165782051682117310736300499810775727943257580297005363513692779848147195852434681829147454899118620006252081820884674121246693341192150722031628254877338161702825480662092200601542384643463252483222378930939725288267135549818652183932722746224244175731919998160967807056941886129404341893173290517641651733370846443911664780160692087749583991717429680119728647946272450904691036994324357168861439325821682846225260015567616014869465220139561268453222225958471857526242469570540681862008630797831636736883968227319520205630331391479336300972757381582028654751912046773002631996551564887336845626971084386371380157544914784268946260043768762256129698995914486164360298869513243722175970542353413586228660469129647282668244282100815931276023955427815012049745672223335106596982699077220234261484884230929275316847964062385925094231635893864505804732345507079307252495762299029371107549932133646271813085904752378653192400761908186134107789204160598709525778369154191159130794848989912942693277204101828815799388907274545146013745484417283558735361197535065234979739486393444423353231000138902280355403622973905721912847147800568977659063829409418060642958182297152882724184779630192752789569423694354702583426386522110371224195977794943184086945813305616416060038421986774500085092022120077979097529140004749576630208284324830829142236939083211668372465362715698786830169585792662210344930098162069455603386522518134571665021091031478478294031636514265467530551380258016602275147852851594352801366347702731218117143944314701976234172968054777069774407365125877069657810722048705234697755217218637169125708742535542391225302395605331900933596614071181445224404630598825799453634794609108112634326662168738240832461022658750148050793475671239500316567643059041090928050559091024513454055749123303520862754782639461518663287367622777629000750963963733878419367921018470130424479495672538199047731060428611440250683152763675869434772125264053746386491409571041482578390764114626286647681344174736784189243266367614169240389979225599705628534109367542697305691874887465177230805424161142608543488372985754990226812804450038650836278600633534634694207084673120007663066757249775835481129541679830626169567156980554744054721748426465933874316519637681557676259335053155308406031976078826923824637301768407085918681963810927978387397200972088990200100970328163630074576788037979827302225961651298771915352278612444014628655188679678849631657335395445635119497958952655725197734705257679968867642996413769173455576543975858173195405555609095133125126237107808284035344184881334508144027282109211692534572070136003586671686637900654292383341486211347757572455774318944297236551830358160173735358691600781332259654281308531170790918288418741447137730174941313576515284853949552030665116201435299830614734032155956511032067379064852132150466190635245610423675272064685341692101473026876713701693364400445611411467735435027032490785605215771837472594173008094355551756356811058271211108053824891329415244891659005992598038784995546457265371750218093769337297700396032825073338069630065764672033652761172052578839070981105399643608162100507648421522554440178690580091855358247849804575470234182662699755679736867885148312792921304877508559247658507631853993145549214366609079982999612672192142590792696786075054254784989445469680070337746971562464410775853589419628858462110622653231524566345356383567589710122407800657178952897324693156208804866209465624552888975098248425201643096482717910742592891821028727585860644896666048294030754613843359824698193365806295059473877764785254415072658548587972982749065250120747747967778408729992300652818411351750062001431780161880531033262496690506229872431999011574936398014700467981750503567249120791871435481321863171468153541462646625232646102502457296375505406698320415909844988830996743916548827753152149351539665204636425765243544629581576720033218712538590286245148098648506490989516859679463102196543870675265361027458054333275731223989735387208820679855896511332065834555054861700651211466297089384967016547565296012276583091331263310049340156160540553077132383583371451274766640976245557700688452299467924344207614539238332697440988445033858604039470437851085323131686834305236684931423839640180522916058300307237815909097918695885945815749756282867134348537756682894086480933690603805777515584133639986533438999243430135203291577118257889997807311161160201627485694229563327939440941776490230077426018804340836134449014531287157746263264434504758091940749609453065961739427732229325451635647317492684118290567044948102935845832609456442668307485117699647063289910211570106271854544552207906221969657386790708952454117037943621098868892738980930773313839460444984798751158428611715093490130800999086325237228997969956145052120754630110134516208103369505096291712835995720760164286254496200071188258958809132579270169108455392253098245518952588873062148704524570611870811977851960610309006603374228008781633820142652719673882854381266573841769373990326533945842475266878685363050293041780054398174161180479245716835866393541726405624972988103385758512168819656802238853501754055495792969155706048286094300630197395047408468625309419630122349749311780498096722376461052997973356404129374255629924019243964084910453250701238504425509417799635037615972460018197823917895435722733828786241311237695601542926183289042678431669372469686198930046251565736597252677344376411027612627872283815078632600855501025076567404766986247551350150369690347862277753644107211572347208174890507847417306107132760066676965992856595143498003750636503089941918806322952699592810699329965537936125226990297525138193617332011448374664919525581863002743272557391247623467014326838945470089623790678629184862627932952078520288217742761570708848973926861555995817484550331658552602662583385519639014579835545286145210369192259722338534705534733438663856323457538645547509221394425021683814832650251259986469959878553241842748654972197638499492261604181735699404641480698593799348044178585273768564230529715848648051991560183213404459121543108371314525278578844278102544627649601239597269455450548025578859068077291347807922059437961802290819119528417087061723833994391853832103469440392501516787044074421139529143614353245154049050540822904175918259207850692093279825301128987233865940926565155138083551253970602921155950041590770064581556603938393430390441215994572847654463284935667411088315631574498098288292087705599953628330974716178832490310819577590445009810163872966350445621684212901312265802428644740778176820393961337974862212960266770265859799238627724857405713873086619373312708456994978948639214515827577551699971088445097774482777901989502488577803439425398869400536872850945452406802136870466794015643350986448140039165877515878736946393538499877992292803741700649774593898330285468035093848669106125812877897199611191785595351542912753635268699740784732083432302980828500885709095108608517505566219616689945024579677576773410159224000923559656738204755291817443086632038231890870033534376126987968691362135532618593206831860901258724355111120653214514416751927157556914309465447246030241702693172156828372795964471181574769089739154552247684928137001670908144423298938494696135670725640139835538639487713895608236466771101053454852770545465792149872780983126934430160588118211947919558432718578829195932047875854716642343480449948429243339581690032503084030424897289579607929537662691274364013830321099880967595471999618324441856715751048840688105148558438601187083177549994035651575007647150907895929971841553872977327184741487109361473626334599350077949549186528911977275712416105351788318534435521101831385722595265559901519403900323383778234179864354385060875298286955448441637153608652026717848081190324517148180156577311769150896725297618654956026638701138927483179824738970708812828837699121067406889681059045088445756719206713413509632138268892579518471850021188889852576543988781867404865992964318135647125405046428374614882562520931240829966741661804545001665284435218894577222013699890023747348244681359392811363280616877398383125587753723870057724534917343943148244307872995939295684307069854990433939524630755966659845574379842598231669578430103437509898559751204549407844181087339703662839228048841296174492668816811188261230198692625388480282839649753258132320911716301534358242855244471194750962015671580124707418010072498228724897763428008264615631863221039169154166583242791973085752977627293571225290958304621325826580615352822677276953371440892319058024297601650948093890587294031584120219233732531101486551052463810979747931232449327457523692288697263652760749239391258852294803878982224929474386323320924229642522177320243006776716307199878414913728250336240943778648429265292604995531166105948295490985082025684762900904384142025161454547363450454600761338018905350807079206371950463392058990281681511812392706305680604624479749615732392057123412461497939800211327136086574507866170333086008647454547850126341008829641129806743269049861657055191118276797054898853343410995793542747938979077844402616618977558989318567318892618411208155255638075727412494411939547548879936027542432463509777646144774907342766083045853334767964043031946415353801817978745218543140930123500317124404668962024124754022968163327676591610320045345831948392861682677862516692095240226771191866442615887041959190849197949360810567868945288590481032911794430690755839974150741601933335003525646999149142534207116258690252204616759577908725436518012341489286480475181204411599354727736580564610016044470670227668568997397349763968238759850058510254529631478441341017020752859554338890941409310261609527953063586065841916771188754954576705151988196091640392130430526593051222338385360586109067541060624566681489303467680914441453875021093508169747479500914066855439046197664459128717833699306871769821870731264586504952950719577017525174204235622619192223229261015774302852726314761063154275693251162353383953150833748430607160892440869861433347759753369986099233984562110262501635098652727278361845081888157686030158499394055141034861143745136013696920955464336387871793204857492911001232904166779012305966111010114688728700593440984808102248163336093426898740432355246342142145403135997074995207997108892809180857896003773508267388449035036093724285116444977428148478982881543385458841596472968617343650186827013988164649616339157127509888304420133987215623232504212294438537980383927344254072604920223451417057921305819260398386330955434304129472791325543469723384556906487544665266619854358716197083996160621235106529933240286317555938760354881238948556973161580696027713986484267765470105586319042515948041530592565348195094433446289669755556307325632531838429047808527911369016594763384340719142171611613256634264806124025319572904525572679794409367765804915815197579258140799172312059976961855525754027607108579840666664903869145435062254540302274730690832052645050493799134212368387505792918663389780299922048566698951396509559496911966863181463159116533154843234161922265403378822347684689471945946034498978221962958264432640906727138779146441619058449527353152776185217853848559825676142799857381130054946017092697047321395237683784839623217776371252680344682270937130497529609277656403790818791542756142222975931017885664648689235819339733409829342153879182273077951001893172572731920441609568653039794612943737248164552308040142110577202511516827269208843620145223298420944655168935925036419110046470778694867074245033920362365720621355603270797778651206474644976075070008997111800952278464839857894304954497874174036802038215330676762477113858799044972008248927767132768337177656816410797999494474803258087231082636566614089311725105139598993701798959475132607076835502837017027531222286546032782035134915540214206072718427173145786893728953598029971621273853223690031408189331453606658203029734433904592498482942489883910208647334089449572339077332316148458807388873196790221403976778996527202427694927273345018861073648550853687797060596054561026537841792696623439510170383930992321680222916267148065457194824374788212363195291760220170835405036816076469410254121247976676404872672391477842248265084213161515496197319573150254679377775971425305176480014108483892870119062280620877360142658411435964889790982576856416986215328084014539107911887488847370618281688157785105385792636293885118112291599302472491005237621493302055919699325441615650513027320258641705114506933731894196940445100660977264282637592640618504545731414758656776330971310151726347381035133317234991657211969082218913274045400780156057371057784657747096283306271384113504521744980558679836972448259100365712618907669963263411329521672466381976973164632806174282014169521613805997939799480121995525838437524441821298838870716815214134670907583491702962540834458290224022006243898182873556118018743546114293279533717879964005530339307049510511940041813620316852521507126607000299343937628446252583291225161722214866812210025498240694418454602111278229695062225668007017198640923334662650497130888628795688765320974339895342804384523655141580159150981295387723978552475602559619234467257246605164385968834794444281105083000364716491382572561051997190414816493401335509412376166680199400732925230606558055106617711730675982294241639619919574542714390313846594763409992937724662437788345953151698689082398669080298918082412595265308979629002081653733324247783253630090890212877871655617755390210436850997008683101817811488294225394006620235579595882863884234634629031427085844162047862083322708053703854069551235324086332045249121805658168313094240239243114036445058071421957123477942534862925495706137908859909898848992414578108694423225680940478122045270685580706120723254980961326066604118781667112315848830620616128726952255593928395400590231578973676915055371517863342711307962689949170007415703417829722260546739806406314339138390252414235788425226372830383377469066369755819052703484775327025267212923626348310664451523112944652787653974032520147596053052192020625959891968872513409471363555150749521625257389790304886110012541643448434541921292404588402618004660524731942801619272023683171042677501551082927473549410459271469717322045197898750404735374086479425662035330647857452978094007635842513437379761884010725584841390239539250963589396022984253696482983633379928761638068250641272413063887218908718385434079255350364474706864552718190828896921619523773965731498595964824907633326003431311141813486703277773378184786585041742398898770601503361012813509982706162694992953458115175128795932280239142141123978121414449221760327962643305123032593579779357324924148763527227399163037692786675091026851305553939303978346007216770690452299755100231103385271278021859222518484343169303701955440648525010132602924507361427933128994534649612682942674412795581966916809698947708669762974523723755422877279039380870147405070465163825450502315428489533055388495424816602118172813857645299649341408805136607417917173164533900429219298254561776085181889456553730797285338292945425752494737146396763192938189095563321823066700100625047218922680767510551681575360960328964907831364298591478714820229322271539111004192050804314698266075763834272382296159132823546249889054807823806842881215688291990141510146354829519149626736159804321257482840913771972647263634413097294477431961335880357440308842964855484207528563256483725447191647983995050257709268031587850765100482203040218932864125670285429146888750998812469492557241048139894203894000401867281418661023314312696697623176789149672734747454356099511637805442874647228709597699697022835158394521798357474771603564264561387139779467700802496825732997280657832930820313628792317582345640659167256620082404992900772228234229060971427501456607425239106220104510174745271701889621019731788100888173501945673624943969226675548074495922696650274156852132919229722677564230085769646590041060547102272880148063211237087432908145651422543976282188831698998727844629668114300525631773790519253585392754045115981313087072397008397572755319874909641254318507226442179219288029279483846925980340015872911721020048325948207976547178513862728369993904476462586503653223403513338504532627084444984417615425784096520658408555571269371879870603236513823823326083714180501440119057863368717008543113158711647083683492590678255056071163676054689502562734502274450575561781718934113943638616930024046629219889534925365780016543931057104062962643177028030927081570870254503336563902740389168385051247046458770779826964735827890624953072871296356650656779942115111756012008633764027846213099631132555453439877401335022350195147450727607389470025852873846661056787748848081441844643623686999340407722895699930758501931350588136761748447400003940775994152687799961432559342106866318726884709892548991084989902121558425683448040382012555555771554100564205405166312366322195184965417323936589029336720201852750300065871012158228150906989312944210621502914448012082755388644168503252852334670530664450331131552009183467747202474130052136525554836653388726855447251102497415885459324333600058620512725616589665236288138564985062190236294030394487479205733326609949849665137335775874013282709004380118051108620533151213691526072020064600010951997802615661885077194866294311873804004314202653249594533680563619330916850999933443396727818010300615209033946553431442225790353150250058077550056277971953046961645074310427490808307446048079320011023946071128057912800914326558956808342606903141184880530323830095805954691181643679530013049898509962133191564922059982079658209637372560767021958545121916439688555071918874895950088008226481559979957892797734078751086844851593669003400542825858465878391696262984745733490863773781979391464742833469945153794295272074042603550186839584283610147280257068934809420627976998072234052866350139917680873274434895104803466098420370968188827278705433772669005684010446893336240831681683076264571499179245850123124362232174939222421199970926126549920427077457646448981159033447679253889946408113130640569578569317256515801797443045857473548522663342738087191550110093499245761975068470993891796488741329773904198690783291748319183824505632728796581417486087765194791136624261646043789853554384124638701082576241432642586138117612223265847054163771019206203243993294291241707874573393126917124857293788579914313746059833735198473691540330086669298710594412297299326780325709817600403636645810616394934828609934077049621050673455493398007284678142517095303307948278632225396596335727738980872630146499221697147455488436819908745267235613889677627832571212952963469032832800039021671293479467798730030968150883646797879966816117310512443884401994393782330372957258605133234047513133380110257271997171147872201406195555339781940711117462443593625744659761834837801139634110267919803535250594688096856934762567398785917043278492311625284054144267963036255255284167580571893688990919248922916325963432634845801731384942707267567613943690085493438184624329867596687785710538719566188578127689547463980968540580715837234330444934621125164838655777224868195796089902479907928992830827092568145645140846871491554577247091310280363822852214987342474260537154728969901119354977256344470728301730682747301795947728803672323004224242684821220890323383077472324218099707298488669437896540665786689136590503158373845310350448028372578579346190648021344033122957355181358765267661643787427566103469490336025148277563959049659135929168848441330549327160760046817598167947417417040533925082441553501748289382662497141740309663326654664253860284012518113420088021455555584190803683477752681950787006859263603482158848753345153666245792965218225936145705053839483323092817415192849535475967320723765818271757098683757678291061536047291477691077748254512335691245964775911375515105136736419187499829167503703526744861174981913914755589269638001600308141780415976003747359671708757254043125683156647093306682186607051104006486657270083372522115283831223955313875414470724419422535244786606817600110773932683419591028730671653158985211632507001299696933889718538202685349897163313360603525027420608851033128333550273779424465167153553029142259713984571659802805657112690039420389790925081582527982421302858524798150113508185713518238192498864743355218975234838802029641282575367244474452285383039468240766991071195321846403409443706111323067689390180055169267090477923691764330954769872865757105288727091911832316620786158659025764823384574044083560131453560349710739202672560966796773215255390880341392575803950010972526588373792213386841990953651646109724616618468719508195243659821080602193492891902529362137088687498821050853729641736191475063567441522862290330639879115230090150872551383878507147718958094330428393770236794260061411409749398020059060673737018594845109551697592079718030697257565076496479654771665909964088821286678431871776399562403814275345445889990554628681805735104127915997655733074213600739423766400148494694559494407324580442464466025382515512588842186871580774275667600982616779609415266718788129921465325202055482910782687189928372991818447433289498377073562498994443614139098178677328138572568299419645602683752408195442334755502355292078809615894746443727666828291322297793912714864842211210096280866040038342036035089346652988001791381844638752229803168506260047462281731178079475282477817864230843635731924880562185277848207765592541826363464399447574303308145779515155045228030653903701513727439022409904653999205436994156753637230031781591295261919107985269144962881710722918929287313392867490464508554867282535233110070049804466918596218648067872205658411149884180519531738084705943593380380077505808350085396404469845267643715869045923619391258106289505534310523195239702661365065777265418584686633246584183154751890792182243275341474618113975610542157648915597353363706728762497384957075934115002633396043804561186334568085623360940541235712102482531548053719354153752564317178555301752556267392512063249506520906594623201491536816069196603287401145675285921742403118108939296358802147640644930294020880242715881943096871568492361441311507905290479062046032448049047222397632256559936282814637542592229102659480979876378288132668691855068912343094055393539902732970933488125045336606077054185197164943885529924504856360137564490988436521548431810765311393478941749517994193472803692461383643397007834479671420754800751313563001976606712061021108414549397417875903258532115828598456077731101493753333268283319267578229785227916189689772578192537166696145177356134560260998502134825056422340626214709086607014293159368332830622310473069169786203009996669735622379126249763668248414082543040863304851233339974217078169805831280316853379192895729181868974393721247626317291179197317376490871904385052472228044702143466331618430709789350929348647968976531067782000809994266054832341062737861338975998058663432707366352308134006149351950860751289600073165425209331484440900748889539457664038680670266322020859870984295181170354467232379054288579773732835471576119150560888711154820335774972948083639429972501415153921253863885757492818592745325298574164059416628087135290751325504048003458900666341005814027159198504595053031900269276427337319541275399683583821041621188169433350760525544020481849179846936184683623998844673216804825206972762748746852510456545677567069001063576923807508376431763264038650864101001757028181819987671795308813139349680101838501845019281178819791656346582998499872550844118616867699545765370633937523458107955238154516255880639681605126511185042321183954953350620532850523461154790140897192793196825135510481111545494938028115262510042934435812811983562117569205305062093705968044618418816091061113626775016740667356679351183392701717181223336567184626805462929254964357103649714021363466145586514113882034966279613982513746437851876352249978302308535324657211312654142903356345226398498986779543133878473908717713665198889618103341473168654789568918684023909966641141768241560561182989310981340598572408791771861162346738157790894063205442119564085618257028574098095031753877790353477687521669295824636860162273068520184164720477532495025126665900445194627236986624473241493463178166084490932028475429561717476655087403128030326025909425654478377100579353827014212501625076218385042187069529459628173708949871747698165119770708555255058182053756656833171638467484355207038464203356828824509394955082111009855363518061091633498102806294332962343255607348678213933037387447156723099578871790422628094288218689423441558535318020609752687657407450818105462125620984277061414281680003421125659958719808960077405992130982943456131748410610351749508943771993126372587822659026452958256045051999949714219289021239155005393527409578807207123665676798259543530446541641757974064000097447842975984237056474597369154410460934194726949228620744557121309259159537006552452773491521293655113325248117161078527721112321596570676209813386815695244625553737933385348146368414666281488465114660172669386943759577181890883560739433996158534817193652103230520767590614377438677810909168131709959918883086128718001302228733899256280152250780517876043726247570991583706217281726017604347095149001411421933959210137040426956912536772230437089730725203506438178002471919609880943665319724440204713340452409907771954958441518111922447460713966366047696622016287082608619364881847780157712705300014625444608468529634721331274817684714813035590222121588207801422777990359973106054988844838184003936066409057593135840729215238056682692394451073775817830639821012670671065195224074990551615883680510057353846945142127834217618000578070916954159590260106252515430005325633721492764018695751699536794571506724077270099216333348232759644341569111297903626780340755149835713746447973649147439155442778956435360186977155803630262123668654050348729282312560715002207638009884006255354593055371005000008730844173179159580781885493586734072439271097810817403758202109339033279241469809624652505790909454976846603382898457411947006460522184348718699341236893081550221641868475569877280178749690268551903826784232984990334106052153116890566245329777586517736763824829051506296246019922081856314546806803287687973619415133746828366244305474664599451711778742864650170858444292109002337385066419241779707069221309782820499787403113540405333508051279515774269402105604706679293320658056111487351149678762277475947205894814667775771257912989582758049677773355905457135082299797458723599157436175050052128143145363943682006267024882249317018660983199847253768828160642374671143065819454174726390465153862914445917173141314905692303507997839798034727353676119091024783842205078051973383667622375520790401984730839572406662682267223108440545878825372129901620747020026583310305772647094165545633442968951592025381964980326519484550701944067500120064942818182026132998953691764408032163131751886064739028583183285472028270212680218787147656923862545847060717910843655425806011201066583942942778826947693753260854038387434056837189533706377196016618007994410092489455958955934926771605811412222281409457266908439887337840562474733199368748733752749302982587538512978986126226215634983589148507074224774910016676973078670016998809374203056817567621756659905812439033497733609876229398761244027898858783391521891103962349529507320424304888527140773401696259810332619645104490500623214344864459173475384045959084212312145299353207940887345602313143292621152465946491430233508685780304767901847012336393996981442636055594025926798359780189203787089644924283064322401835142979286837193860316156474842106291863567674308324525466984091230677459612381769172452951464625367135583085264246501342477368186988935314762612739875315794918014736339328469376614552353661623932170324371752203137858170281509052647357049320537102082737027452602579262648834644942116713625840376353565739905011928962844974121107669462902457936806364906051374869440146904830587012400009958045660048436569344273824619889179128510181620979319575257143186755861757044274737325022048080220489826790695502198361312828583998612280999267699775470760631027048330186315185962672330209617180530857611257802987025471864847069174393358983022180079437693288225960696348635072977862030638935165776056207850359593970658058104771298241136003645939067586061744303875460921651030195966383916147200421952870031488501405699840664179954279189034056917188005121037294307115857474512931259308515991883082213589505535295179082606784894999830511181050471171981875821436086657785476855856503263701232806416594000096444595469864759012374407841204648386169747103354453245006871012178418672962406467572191589229195494038174220010557937561683007026275216064806220551442635100242072159681723823880228373758078660562596514500558004999172835927682068835915227954515605719316042544681502744554828170447329227787121393718357387460416203395717040621485849850697436471968758990343443793901938031844639063771878138116999226576602152684793407965456888151315923151994192968620657086153272490287629702090442772770111804821284747498582414791728123043742504958533900536068153800438042995928908253899833722116674363692126557294002661423394382226824123230036045119062556209318467158884612782685593448759271443831890531858064542007370858366402708098999125603189086281732074598516709151380852855793974050719433429901734756935532373701413287801638506669492473798294155161601045190520527392689094597236380429623897629679996006388685649608509885383986874987957502306557869941738058688006961500403456054180520314749031201740784534115725226398565671828088692485511480754882657688271177539038832974935586540413267924462309001475201650542323704612435971845977233886032618894215733842475047700845915076096015460001923069173315851906445002002552438710264395192184987427920915942061298182074502158987607137298407283862635266377322719911228301409337827995156439999080486485753045443369701581626615930217163661548613082778574451520804105970633542852480933650731751581299298195741255741079926861506898360824338904559036372061619579278872850971326643368412204184480643985566750863118210170768259914360238749405728261890557652211464093458465829647662965432617620984707110817789723682857456590605582321862663586724621172727253883703936307707352316636311011120715109510076562956805447290944483609520115836500974027679909597962565678051380795830560825246897997545049396170294323321878385042143851649840087374297400121578768618658429449608843342271277979924293065480493902952526895060672953116940619377997387522461779410788362201058942399799052075171795179595373877205421236898067847251709090834762993614495354978442654662110345967870905112078755557108867832163050204122785986049242506289325865844955597707458687616732988724401112809746828137694144112425597875894943243687749896892932545352288618737912217398748054061725640917040542178333249679278375705698781028032208253167697302692779251657838013994310223386079307795019682238576936561308787903672891446379389753549612908484496813981024782743903345945488618629821840299946406234751682024690483846482113658478919186215629760700297491529981601363278322540212138165936531476692199839816620249924811167486831603931325475093841435377143082636808816770175880372658026475452961661371133471359695957942776520310150032111291760300643388503670570325141589819028913237622880562637881544382809275930451134812833220740784659644891399075897957666506347207630147624077673405019080800254370364013988683663984809986025448529322236250187316700978430069882738973776843157301355066537960671752259904107816051714051574639113609193796870751581566016426238486998817876430275660797240132088156578745369281340762763312747859055538023112000908669117672548955675258892334922956747981032757462941169064682701282333740792859560594439185976260105815586520842483930723013538965699970172083306019063124455884524686616011297328934812397255559338455681419728598865372941233869269641270506391707768652380025299847880802081968111229524338696311579860160172610279962337441301702159088175372609220757387554685230787814518122283029501437782634629261682122229648083882020373627115917137960467892097564607976059451939059451755210760072135666562078797104548804461739393374292294411699761859028523109019480549606164777031292434916156780015379339846953634492483720545477379115988622595420006610792809459642606525578557766929778494834848044097058433597411019638219830816727870100218442130659725211646101510990510965258285315269428304599469425498523770190218367338789023606417259779633118966782815069819063129354454134279485123590901776083261226926362471110656088487613378068290901656814035673616906974082895337141584685817463156974433354483045418437369896867726259083410495477757795205075976751197656170977062598558189212696871025016589676382467883211775704178373523718738038563621373397852485695095452561144101683692735857492728115104724348603102100694351457850412350101333475267250696390024549011263906278549665628714579294364502113538229682978455654321024240145610640154107378525125658214058737231070196341853599012307259377833202680358853344495619481828678802649540552678559521294177313899772448418321643549663900450463352016408305478298779519330713398316965194432116380830502416137509477603491159464607264160458606689982107117979965293327295670844401332370129081981647207066561683592248035783957832242249723904501498685061987784595355133601023195032195391842615263503432907807457907679289925885347405955397036690699768726761943244227223509457062650516421248713966657125197398083430359600604161387995733793964103951774280795695307963221806708751161489423114267053890433998315327410749499416683683091019910237178608934202976277469989956721622725099527483428884353779772932275731039865259960008011007728725087077791320806657794970401580657947384373309833540989831275962140887947282956547847059730831551801827784321684711800354943281429324215581736324264516934635646322607155744445300795801345736138168182592509856406710473590578028433700558633103657498642743578313398948654186579081131821229454802668071617004553927141302642503041931693491896362124696974421646679856517405044416651016843444729330182801130161474078652136283046994502831870131151262192575227812715576352393472800555084361198030481823936501215125406841214661700073248622839643998914436846571570819561941072986841697564709427847788349931337216176509880705340308185393755285411413119984499966390629181474214085997644494580621380737118420616444593395289153968250017890750295729247320821599649376055900213355115040316042467299020482430990605304520908995304971537991705134854231928160172159620270748576834216139937763223039844568818516724102938374256262388639951876982469829230564072650769217962718971350286494789387072051359918956749510739698849047921080093820813031833382251813083797230215855127966018786030778099689187757996101022429289920293827948645975956086437472462953280700061577676204233136591693343681987302584806276804823793293696339268525628594400258874227563289629469628156411103933232264756108059548571511887858233672917776407530192744369452004226529108554332824703817234454683295009527572258618981412562139743620052590666785731371370250468574233366553331771531517868799865011288342937447275406216086241531386343005046804755553106341557132400364305118813601446858289768321872605393692966913716346486787062836840872336101455469082185826608047138772580986010360238560994487118510636521430587316660164890275479590313679984023044143833067090427663611229740915390576047485043341106159565026948402037937663591444297967804106939493958661611173718619587754719562028076598921521437071634012237418995005002725472653070029057614723789826636480281182893009270901658228313135216652080089369500194092268252066456507616146282669226106242379382791531171161652139653303976294876434809979847611804723286354744362937395059244160682056427634165916664268915960779877668215110832666092055642297951602747454184227348657642746766634659584021505878643282993900423203826608546189641151872591005411819134910224279601169116351833262163745060554425769985129438610317191142676587090176390731872715865699252044241783577941127176236724729273607654833516087938384927459329764807973012073324482075438670992960221603521780753719015321262126495818878672928093278775225554609522749154686292931935704421048987286970850116051345331346440918276748335021844091562103508416956130954053373524301409515888981161567631182456331077706615299958878251584300489749545490274300256187391606414688980278801446517739260829191070592069233138240783683964388471124071007815573354626601762344412786513599814514276661548084249241689192331116693729092884167888958816631884799915768315852243186882051375021252008914074496397748934398499638327782058838704500036978080132259208146409592865404939555293592815494992352172589507117439554278143882437257191805287882413794815356048786569448456739505114666072968134488513701299742372279349421304245961162823659426536940849202121128407345207312709204195222214801673936142034075036270383377346485918769191570875734205114571391474526660013329752249790601318443558848830218706843970040403970766697026928748781539214788609263547296546922123513088069480495129565997943600331416194860424694848950149237250134282538402485594638231559106843131426405077423524752823473970360605269361752285164368212609519045358003555517563770331781638318479957608320965671614402277970583277574851781259588698920046958743998992489272734847703571457682240175009455116000022809581653340527859983627247637144890026845765213440964753697841406662506555991422453813525765715002061255108315129283158722774291553345778517229253702298241388578308204101188110255046485275004768948840564582252553455891587649173988573625005004726896067354688950050138389712436985225676070811612940601586100689180677272893529711254924959209629517801652761749312184171290032633277194621919502011888266627757599738736824901551350671237565056063592277686286992071743291922555185712706715774733249486362056740013307854085509923520760730770700454545381110040043256084140717721511075460708977626659837915456757208079227677894122342955725485169676454140412108054839159999201813308427547167888014919967128163490814412324055042505475216872997005298358204105945166804975743127343111730106207331303420581708260038535638796762904461323305453674600289933262154506960988956033703178427356607918265132253843998024454660004078791320431636573254311492032407197420423147753039171875012740516644022618523735567650629693653374833090078549489063216927004999933099097574003834328582596705708143115470379910256098298731636567777353598535414790930520005076762147139048616138705608347249431528977039329406621044290058394259974853581520853138787831251265563727805016019863524420580722107816707440517698031918222084328827989365757513695372586882587805884810224388537980336090456396483935278757351423194401400947124471977392224223891227059860831699193200481198469202780649090148759258516542143274931224108309821432148497936926738772630989827727512212598110934140454509543655229548808394461226412757073969781598022776729626101900763851706183818563717610834369666198250901327265453743246689252217256263102822366834245805810869882901229902390528149578420102055444267421500048663297677154606358409023792728438915497191464470382218174025767910056098163974261129022617968053207350129674021915824933760788750232076817316610384435189688114857482525520825971042255498556167669825969149271896307587938502775738032397090976008906052092309352116036514312604639141963875750317480495915326179357747039748590292248411298457050808361625080067584352019820986356916697316494285843125483475655961486603896133709607789656566122954000267047921628933299854939430014165615238081449165688904112169315826125963225596186891059442510161246446035161702775182288480948548950240613991500734733169703522128383706812567388128611505562265813169590052789154666103953869399709081589426880877634443496273537715837103212847633409795763806147407226667850155349340588763713197556084471544669705389300059428799977907691894043653444976287263560549331138021194178054503193905096090930930259785940392361758659475124455461368426012545891842857973531904663356833344320717204145577585697693301850962979444948785114538716327416230716634010009997679735303045989208307794894127086167827486296300553934680968580265459700909762090714028170953598527630895965097583759075874702739739567321988829302282988595351939783088621389710228274296777054209077872312040895588828712366275110256205815585212170181576658497846215691420310325694878917917059562528036130537227454026927157901598493127300740914346221062062510299997166147408968440893777038769531935674732467944205641314206111471380201217957025187510005215859039372134145918738857358154290700576537458105232263550973738610339059454122318817112737401846274398925855494148566678537084612203244969040747609005404597584806669477722975315441838044856138162018002739504508010813297942974227118448780112748040718305048709172718554712676869335973669429545152831569103079436289449520486110289721252874454324210602828571987663617532553004238120520730631321677868841106532541408470093889307802650834208992541427719738744649518879409094126244161885650606918888060940561586520201603057080890049787768361860160327106045215518597426809030508095942955702362984062093359294328024677840379824445229519471396592952708353237866312662403178809544115632091547825559864812459148088787251410809710135424617480200635819640232746774679442942906182983682030731094272318616661356445632941031735190548868255291765018908368713952150500417691766032807764193023918243262950827800741411882168499867251994236892563942931523223600080061343745731840669238611961380543729644612246669209716387924043961093018432183667880119723098753083108971221102577187141067575073222605198527356828191645309454300129482180301748601290990274656051688139935590877014152753221367633889648753082167322920679044546812838731329116591888007328311136474830148474075759351964870240335567168803302722776289185734385021789628849267375498803570680199269077394060381221671796916851571872060482962763435217310063766992595683177139529400335289104200621733944184714046397076715278818674172180654477707238473615515730045367002113272751925052888379678453983611660535312887945016701933137955515932136010517790663352798043941220794327494951086800757034791890305681660870383914183671301710807745297997297932251621552827468860480913451105670175717408974159752377155992955582216863448890424190044651841226576136339392313809346778868265978099583042913080408531720853289713798358170967405393921382370769647418703732528607358052074703697994556883330498315278657580664194659440190137376085176216889939284284827455568272067693645775866156138498370218014935311148522965788586257741629317526514801753596282726447564057305376284835910975069835954923383302382092587753799437939680791555285197240496474922758465323418915590409858664611590410444161301229463365165813643198725585041378101649103223818466248096990032734740774266996710334949818725241370679217103005797080163875976386708968921737021020698645985846635684093160887244004572606015369411552614530521584713222662606317478991408387583230405223142897903992264872259049553421027387422429302482454257054114246163493363980017455261367199838862045978034006037945128867502909034328162248912396155932209493498911796613635597486103717302955538641401196148991038430157712161992859187217320430681298939864102389346327420641627433984672310349448733563352447206211129026283976371647383350473628672490776455538237383111556198684044603269290358857390679279139849593390649237157059518140331572285034752387897406168806380933618225504881123161779353397105605774750374689347625296116531692436016086878968401467284325539564472032214326655320064866163084415864341301011034544771731836100896478622919543862643749608112760145510471409948213237202054256497304927127764613102442729490614342901249594922346146025686565928303456079907047548076355002067597983585153286280561753602994926504316054558719623460138101689685736698516833507927890477900111450189072400743514790392847810007949728285846215126142605957865725103700648535629693437086321074563190713614251082344524578632612991718919011529598727915040910536935474749476301253371199428448820983850399504461300824008615533695522292793762814806040430987410273921571151596251074396975305684270096232323919363104143700732674284300288234148969005124093541322003059538730251657609470382914330853426507879301703266184608563407769108040777898955865318101749153388973280924767603877617047622961626861746699232111442118263016966033149599287878001200432868218250843455966826066409099515655715554058710830037810208961490336694827496279495800318368788951818977089111882277200868667624125803200668948202165443853615061358802875456473981658151530852742668136164504605909067646023291567273835938706850566884557409253208425629770211834934417836575917854435504633915776286708705066735037513545211627861667102366909171679301071396199998893054762334224426614369846855343751792769523645712550565292385257125497559143192142089012522840648108745924471231293117579642435655891674617589610590593438557976842856248537610862870846352403237702050856002632898110569277971247666648812716207367462016993529069753416063505329258036373252290584261691211741072920438249330427438760831927168986368458684281461105361472805707453544199051406520869393265777283993434152347075315026954647643317220896404233055919721129570816786262937383321986875019848168483553915166682022925988756485528262620401377162136783352306503911637118923273671140420823799117981571768714368289082476700558582317810104373937571725765502905889860583814329078415980412969502394664558043941149433254881813728662764338675113675077203108063669005070235666987012247766421497178904000842294051829910799607883806945529962882764438818150928334618215920015127728588450720772462356716143301315451433152368505155817726710893843765709502347799011233589682955711312520718095751700063089515601348827432040961305156057266589606353782266238749745926603730169665646936091865600547920882382558115054367997272254589223746851440591453898538377520012895480592379695140256541708036407352024146563200138202467745582804899102434760122815371354876716621755679146814944504411530682791185050997905902288159397012002058386949842814361830143892579912680380916793255199984862456561699933643552413514692302896711115428971274738864995194151994686474742295871602814390192096001096326827868509697311421213425796887021021135779847970225045771362700543207271898785385032601254606707630354295937195223292241826632541732782308203728053032869117067527512290032587521314871080787038820956798966203657377715070274907479488835015963063959034254199882340060301007583794788390938547276465675069164855570167639200458680137358703496658517643649259953330369456999427049912267142364766986186801951929576769375201311546835409659535325582784100551899373192091718067624869516519186111824100734356814998141661844851974141407199917575213445643871638323771736410747761416617376675269407779092384521120414552421565033082764832467298798716656188308246259838549866140195463758262445553865446922929023392985151115200078302900473291024486814336862255364080596086513976356530810173010653427476319654268986723037106395373466151536946917306878855605622877799600065262607034558110605161383055955959315216777984436409237615090475910846319001151213258659188252844866991475934508833619798209524741977733535518568942744685298745656987718392874886419737211434942241193605834784394713313366491043525560366843198523388237336292282875797764593941013040313315415962379915163962327552239488724956790461499225534337409820340510812187946562180059923244214777598732434014938000749993100040378496015045847268026352874963548346172816849908445495122146775184930160272368069376487911967548550210148161424643507813906569419144841685708542273906030043399641533098490595478517737285136086188732703958502512216744215408321924864942590826681031652825286876315310327597932867594277426161850030777149108783315164285965618537814980101279244936248162870733702230380908107556880709507329948650411469359809606173192155542596228502508085622624346407248251270512930677284175999964244304887234174925562888211908368016674274166217603648466164320036538320401818048814103056103683851620546332772764180954018735762895981195171747324634176282715838151533250122642243367717964005084636546651408083345834454036010941900231790964733648732083542821173329138219748246123195502172896200019924197124019381827416529968010190170041983547371053518548876446003933528925682430391445380876299047046383401604506344473160914753484562639354102283356718515051020824288334583845479976909255066529869073776297057904457603731086757136179444264424671604778622505637835070654092303911054951710560802283313747915016764883282615624532857154476802143007230408050184981779508286396846096042457144901604480817893840736222987366012598169459096919661880024405789667621471002527916396697677408594712075895789885387060935110763851919278579239814311317138004317276807819091744490687293072067940210489042906383073206942721247163442018607367325980577084399462553986712982184429331265570696585334562057977840111079888305678288954903325510556200636226159501328328918660940630994437964674167812008272144158398356380101889319774768536559265701370552019787777145736107480267182004483044664909714832741588051879756529442025584847914373340157500120301438135958259228617608803886294263928950799374116419693847341134427544408705659021334821105560122708532369767837925508852484734982135024838559409671162663064919393301243867933324432060784495297559966262550132179060712656910705179798077194009452017500852301211581602802830600898016444137197402987678218557855306852585666502133869552623429901522920961720649285075929378690044957704134593149230237322504818946127838212492430217981425839383916076210011447559040180972715129421463606684655948522750881926308259194388133819560377047852976684684542010002246359621613026261254627600095019296176843023404708846494358351346086280475471228506667072462833183020482147578378111857738449912848209599125078991456693041120145481294885952748900935794850132318450831546154067158593840159428652841135324052980465418879856593158969949120928358198327821616225313921057403375241270882207363082959344431333219960827222661576422694245979073619539597625013744698745471844545950808163093557209103021964029784575112073635869297136029584526161687813055812000044035213085958667557252155116512831481114316971150010094427990913775055278418963950567020630890280284683158994432635334279974174303740968331667601103215175682548871447168718271333116172742754652790739896709289024929508939979585247731599503498763312059260803221161081914613532518358705913768893180442030328409291398166956789135216827633173046665782939237774143920849021159970809450590509215967823434913536875825278722025973322294058079623976674629150477068058336199560500018268642660460815359732497753998674225039965098650241725982118862686715260538274440937490476077591569313945551169444099485364276074765809998444711193668176371102478610691110208827248127609047898850462447504490371247045048000701261391946823376315695304959865694881473268829997340279009978199717961803288583606030323038403779801843470404352324631040337207552035906722252854141167302117320887312154504152052385212183942887577748060353164727035583025005982634322263709498874513082563447577123453042844322096737293982797319088780707184972515735843730853305528861081015448708083147267217124078733807071491287965590436497939316300044844461833968173441713219898991642509168907800501414639540479039302974014199449798882446847908227654799818406602949038589384275644940628696548999639055541996942699174281722564607973909542598488803734491805317489640287801050080170813970482762172663012596237845721048460610339235012686419361426569410739592838923886055789179971255732707709210695535670158846315429218920676300799760438647022656254781899771610666785841529249966093254397161721357502269335075899576369462349193814111478834500389423526983014428298992649327217563593006890671987883899100352122422753373019551932302705071113376109838815053790862578877968978133935277490375900189933213662757444832174565478233164222569906734517349893098972850211972788796276694868947061893751564998899800615444110909468745590355970114837898879977232468440968452598077926408718040704295198148325673773052547400021959380563338477576341135964566543408593439548212828759143057088260283052639153628768002720246577285538976820725263976777377028229176042298231389191173203212215712790260674937985141988517018694708966353482539750529745436274679784250998235867150347008992295269202783610192994687229326889612118914122753055968738346298112714422913840221929969881602019317414945247122238494125204673878825643473836580619321154029216653976994174140733511265666758439656321126244041075428029168274079665844947093648232425239984533276163250853484296142205134190669060759588863027563393310124899374227782567639800910920893016232319196860916806885750499423981827794602839731552820614439222627783100086800988648487508049799640863835772468240954841048018706213785824753830906445151448337868872725140844408044027454003010367315385571857053115182014093120822678100582942300590003209261519555012630225260608905737712190832625573966091530851644226005531442503009103493250231729556499830433611321256914791034482389630893572891387546960494469705243921038913018650763767290595870220080882841817497557046087820086369698214719526007538378841757164659494879540882464963272558372716549486422225362282467237334981690920032704193801673334472116012049209041520369602883186732618952069847967219002833996151976480917775929110159534820728858990747359448596540167460473759762311969643466836642400027490426439331576116443734610461465451400625115412441321448502026989962523432425810521524728673367026949183782877585174259418883394179943237598805376686646037678285815234286457086654374774522335025144203352337213647480306239483267843168840026926783170687427051249695433318177923281492291035464828228510903008516819996402252140253457500362564367149240755686066650739247390090987457796446847614019550176704349808171093233305130138228613655079580236936706825538751585066401012802051618786841293035567992593462577123204083130259065849460922453666828422148568191615858389861157639842814797331885253476027024435578878480074440553996665350768667749353435840578625306608170298073056879808249999833405240019196353062344190722266558320852967026064335308545301569604668727386844551998695240865890391273453847172451838653910484012967956945244358778025013171618723412586615418724115840381490665072781097834653613421355384270895890136881625953505283389759865968711016107570740665653271759339743957894638254601184253101204638303772061659876792331567543538325896885918822179860859527112222336445550828587616949253329311672257351430888858970624833104556904992464789191194723721283223388291818720097481955141649812344150038263526451443708688997601089385450632692886122100446927447062056058405056379102278238485948869088782300155931370415738346416368543378468625863716915404651155386870823215209523723257272050838306490132433449508178040498496321402536894826949145429947498562152036670830229237284224151249094577174773671026166438686885980224305689311652926939542841997328932272841631936071673888765084158093269407083196862258755588405630249867275872295891554135519819622071411117401026323208138260772673618484092938902364963906059244172087512213233520033495444803895613179777376353309416434938871347193270836869880912783660482064469250161593723426231037795165960313533076748327948316240800790401594846970382756233867044511588259831138613146050463639074262625026083663023114125564062486192707706518094829850515401711439601104522660213506497701630395294654636117421845774703969705883388995020157794974879073583196631799297047228358300352648378835628426521887670219073837662849995358800387602499489884047192134007435352240503672369539441955652536207445116497321478213596241618731822983465878646101828211811105050293677004886690700832025899135819353299768901840755675007332627972591725761277734683092202549429758382278043478475882881199941099735426623644407573829527705718681699856007293478211483151740871624374958519188866860533129020222355970980737348432914943775786465052434131522845327000077069235175600530288900435330171348313850174859883546642610390279246553127018167691487969550032777650378214557629054728351237735514878952575194959068292659650833223854818353365107766086596722520032620962046750915444441965836994832691267473206873483941603675513915975062071482481774406406326819119115737549502016513137928029277833927158006463962146400034543571437276476379508289892763493744037150550766646864703469999969825291697792146792072862200265663123180941225425135855690664683992586489411003686987259572032585091302124312915975156697443013169688782562182131977134606117292445628878678586692781600969060063109155044923993363580089058294658937209771849244706609544123631581004613287311967580221271600350383575976625803823042147577524473177161264368280004494982594251555579010021405562201688963587554583211743756380771064554482335353656645422226858797866776569374754207752979310102085996121475615865252548155435885310393538587967403790680166942304941497223147632606197281408124174369784339342200385581166449760878456693872703665982589955060271759642428841776127978101489578539036469498236086253867637639715473280674584764092417106023367030109703551276486226000453551378137202480605307007620247340912936396008380557108116103390616915005102237426178147736909996896411999987521822482942587994509996943757046104501849994283239139627183670899251590883365701232000837761645675729448156681667977049382974281881099149073216380814323385963878766375142830407630310997985295235096653392374513198154541362768810530954985554771147384396680147562186807963539025037133150858339156780628269497027374541954988652979313207063131898892620918526615498187585491649753215613908954722878998709663446004576294937646512345770699702200706075378172520527206512145857859302721426149000849239021113981324917878929011234216952663351966508235630731215824513612393388361094852351766031972504271013918412303752098474538305695157280936821713117789733142687974296338980118642438456173705095942284878945663285381562406799028604095797119580602884041308039593876343734455158622646736428545236402763167231637547286671784652430176024711128996380622439768428506926734589191195062605478531245669778905298770646210017762358924155337450204619175210529420315508782523896750045730358714460999302411085346005352586063733738436654343865582011677535843589825442028298438629207389424136602102409397429267952533174382256863195093927971580016288447434531281854050167745327906760439404705062052674714611275886866287820104163735191356922545451667620639093856963291011624377698975147786929312004547122034704484982359235774018293324918371525449883021191410946330045230742560450000422793142114530358802353065398154922751968328411855223160132753306298502871131601454603912093233742541496730619838865067946922852963402842642175920250831796517666021328373949823708764133515405061079392489532229026132144632928684555818743549237877911346917731333387009253639410233827707740987929110423767915630101881408552712714581468272102210972289826079004344860340285668007457939701091595156614880421766030849807556242510986418793612922706053543216909087260546530623677268700602285141505976571627985918909402365661223322369201098295632742781318633989899358753315471920638257854700395312239456903225883282862903642089883842934830696183838250556007891473858996377225626241810032584102194162881090241948774152650090864928332826838376032049866910227325277747744244869832762963461830219405411155115895770284273740751422278202226304393592342591981053884521552158740471850399847243678039325274857815097088501842715196180484731755816751420888171644157132988423451149864128074858682400199956182014605275403512055475853648904558263704600019759127535542514631673622330650101995361760528404716346176179071000598234708454181826899208727087152141469555587775260272640306398443922883468402918203528276603573208387577971124930992709682919095758818375158003749071392775816953431923917371266966637177608757561170219445944239048033175159684576251741103359294154057479794176656424484866357651002268755412562932145630962483074200291697733616331531318984711288434509418732727873429090772079863687300814886195468289935930189926978787752572891096654807765747265671106976868335897154419935130823494202717917520184548594053590846374318099257623887433093852542825015621813589061583917382631731962070598772000332800325744080562935130659592780086419123726922996510197975582315327417182194391811309737733317995421858484706098748487112708142560965391575775687927699026093699751483731950797046656881979313688481980890563878818030817074787992195083175833303316994365409218988467991237414381536395380268410080100101329590469121788856476253238668073408680835832635394567587421404262654576690875287886795167939333327128646878974170989164152854322718295262307699252915026245000999302299577939913262501332619324674155414568170856251767640176849776020423876631207834776930918385370435922895993904514992478041120016138428762119862431420809303401896064725736197475740960107399425132748934291406473145570466050524974285981689213144661679586261469498646871979752656235960537964899395084617378688516395756224457389299932279843251821174992599712498446344672863773026829363624033075414056656382566433945026161926629895444928011363487326599283367654346336645897684919053043226830299104616045209495842287905575662280772537360646633618805211078620628466436481623972674826918807402939827055819977594057920516239175349918981228154487535526160242987240541800443654307335926349749152675360970566878759211295209243910473922356980328376449244030729520858446059369753172480059507968148014284693969124076847199365215816792683828900328182238226290546537587614838575261952287992670700954466290456632624829654387009856134089217868955542922323807091883458404717520173300152340831920732311757165318196187924675693334616856317934745563265742667676130188240310743071056725927122111422521108472806789556502011310228175159217657966406227935957705743653373539013736096297355511582323075885847168380593306914514932386358126533604495901046249948144998243824274359038747561381733409137376199270308180344252623957430231494438655743488554479166872487924592116031167141837060841848617507562607489644883490097434054085519908887052152779521375507963217053133473916969499433243893801199390301035204670338399033815608571712801032676522716377346958459168819313988175731132113509009715071232248908976655176853962471927413927446576374563053717783298868178965258421390451881050454849342728512510200188015057315187331749755558011637164298097068976786384489694942713202380241594959002146862366439865691899526705729780555638108462857912646014075485348871378414899890237662282555127416296180938544103485809745411239692929545915080551678634123642401637073327720076483918327005933629395720016939439700121672023125162650168557039272069307773940758516388805025016217945862585884905231648172855322242311247911939001452353491450334322139115024214908835813938428939977791559641669699367995310504206634465694129562941133652122336044425126556775048957401877639102949260154218839699154513528231984078422598113651977586113434703637290857027620951261183031687075102556761223042813375484269043069511707511673900514295431828911392460567951654383950961406775245663488258661702393647365477024778757152895663243524976327729253745317671711587395238624238235882844845902983784735924632518177998897166094822459746611968493653927138021872341802142131356951725779044621333795946919096200440596269752727006682737553502842671062516183062210480687765375430493001721830444350922887623978126964370978453346835978750694138755805913293163207308778245523800996400092263450678595769444752344299595112445049471449618980971242542620986375812154899391216052237771912697079921412395686710115543949412969695081340990711106216731195728446282099429084837443344706644763827279356662592224257555600275507356254080417030017411993018956197218616042996981886772160146793272944714085029886528703584341914086270923008217632854614139540887820549570409449670333232849338047919656860467518027781774901372618355725449636673664197780836516181504627902087284856071889539303823519106824133255376576200064074549229112753970352245484070206301927659316945915468152234162127943971189789820762472440012916334100445586970237829911814310922550489326646515059375492246626953243478303560527312274455733077890495272167613912145824028858106325924916780310438042520580802248927991790468641231436436307678778816304571935717314234009515320525610647262080198139183645436893262181454049840828277071653801914415494545955957127736167256280485874976811644030662360009361805882659396687914755918490057027073334139203561493601811253862809085554898463428155745789126302369113142199433909643824742901616168860990430192432337628924898480313145467443865548575298603749826107048669967721377397510215304324259358843505102243076626105576135212906097775921596476628406882104682680015656428003394885200515178003220169668928034305275387380165817951026489856729820926655137452061776797320677802426030685624831835209935209707318906176197357440759353487238365081120121760543922007259980313701935625484118652560341763577521866880238817616712210475089491977648811357602125592091411153500010540904585637476473436978892313640218140742085000455612360625225040255024664374266248346586938867031115827760756413559086337450809963918989611741122528697163563496441843358688083799858646755626582230700283525825587758539112170761633792651144805493245617517312332770989564971705545297723252267675639471037228247527953725365899637746240526425505415530633685911716735251672938104011558054721394902585092792018821878830526174082580865902890011737041439498639649496793292748247430461326834187325243621153868713310913676944245624806095854220200765379439165824785440904300228135073428514454015489947770028761755792246449722597105091468557130904933115514018260669216564980802258810710273375500298043439827293706568558920108502046142546055327061862023293628834321237047681076484662470581753645680546017785215417482804172082642718078167241753420815878521309307221607715291649080577854660525502541107637447041507949099634495179058232253950835966360556761972171968402491313952780339721138791551618393889868501936173290237011977327881064602132199558015447815904645842846119399554346661314496059682354832145181227960321961628193570583537495009876483587129640266942141738953299126395569145311194508265052414875839748013696153535310306451051011239171038245071916562748264222534403167267608158169841105261692594496803946733056642255186005684655647364849906109118406471311186740964501516506704586578405979131742791532437552301400265735923454726924400598399828053530551730852221579467835114773764565517467194201909189389350241005636985748369275730953911378338876757157475251444942591829540678031242073979734344602969514641588113746941748796004580329296487756480097243963957536900352748199602307907637050818793802260957185619076254297035491471908236265334430829745699023133599464781297136908366026262473009312270397514324232698718377551508741871903057404423995608930514574711705310001264670660446078890955115706043303867198113134710271498779506228579634857804874656197466578219483492685968320468140534495871550141171230432471519715815537927715011752984847490582720403169147603430811160501787521988034514120309975039029534651803656618934534287190735340241650900975207936398131222923861804960793219605565797284376419313358190429846634348563314111343212529814715786296063989875746461913241580822812527724286767349389594121559428821898542457931183007310506599087606171564225345109307889803232715328320545588742714116340527919853270110488482066701598406392196865717550480312977552331341770247235426376817321935785915039785357287659045918750010884028123295028474046937094730673401176451823667309326890593551269419370503460363292780629781600535096187879007291977000507798192391624567482030800504097778039386647551987275990393462049404196040416946123381547221274775941579307454855118453305874589500875915648371529333794084198125287965283358944147362006539353369949832026925004868720789193548940839618044923376537605714817540350032382722538886283417111889843088724269590285615690167397816567546639514808353849983763435715408862989521385426500468492501736719849273351703492549053609644116171138958036277535122010521883258003020789875878966845361822638069913774815088876018223373264120883722295731931986042704390055347528999982834174184798765268380177166569735168346056743753861666095491848980173490446239383080599854983306409065878658078305385297422753225604625558525250253899666709019450054225161826403758270763147044504069703243216865875692826385277866560174899290170781872408477779867421642524164655204921398103802015149736203737487025173600839478748114989828842582814129981843742184605656487623904942532715580333899748379953603204058441477629521479161204268856639865924820237756136624062571011809038626591096948254530655368591286497536012200311279223475902891127291577419983710879811893449035294344489653849532561924545267115627926572864163959668372622753625234703743050387674217551137992377586095555785350285443023754240811301066130155303562225397024279354765913167074400978337245162172713919384118514810698156190453048945624310216846724795050378775090552942800391527829992285286002325624955563371138639040402786749117263750606270510521740333451468290683970230047413802125288653999999734086357674612046258362300634434234613310806836401022808588773635315392094331871314272835793601682509915291033022536884420541642354946286195791009479001423266658863904758197076139751370129602529866045237836282529436775256564407432106579239553114522240347607542633402148728031944645752470635840650201745517650166046995694216980791214150190315349792370580625366902147134775357173733772522718703310526397058515045151089405271990162491600487060212041222870869897106712722815645164598699966577174824452507971120306612094140064941423525083548640526773980982115694499830018294336582375466139578979345558456211801620091031854826788409026354606174973106940988757091172327350817917329160573070707551398735505597970457290809965582459323190223604480186324582701097854460448618294581474834948886401002483563780087494367509841287472326594626981785703910387894438115505933732090771940393625815940266935716556897739804233836646010708431173473124848842951660760091141417285448004154183717223459800940183627279596306310381390388677031524527144650406600442429835824264686989600664158391029371087878152746564099387998507475678522620771390338354868070406542130999499605021905402381669245585936275901612661874944874448999592144434355868498465705677839900825965873460917669026075615034493884063526183447981104198042169153435065461954559182087773006966009057447705091902079075589785160158155968713748601167482605705351987234914674033275621589910574770670626931664025672454187459093957533436861826873313341824498491362880296757622999451291300798202319981048944424461705402870508976262152781176077343397569080543307579837554509883079584470273747790128771172416250288221071942588362451169470435368971925815062672135136039373162068204242456934188959295749767196414097116284894822552215885480199751872409110231316073004627103654037519700764898166014990176851946245387541339329686875605292260039994359397543617280015936599894835520391918488873656100870110934365893596368001285093825935432715847411691677474508270161092820030336559806772814248210454809168861566693466663806591023571418502515266191585432688749679185792628354153460988496489369166852359543103999044459109305345348048594245624566866941461035381504392531886899450030480565536898743744769657071228406801525494047484251896876604045990022171252757853666712156417136598455555952780561008234851490660754412765988772621527007087511190696476696834878963298156440265116162428582333194110250454780628646104458407178659991972529157917363113598797286161227457022754589019032242709533035717761951860835164563494895261601256426177069335876488196344759360739865867271817432473800273062976461866506185593891003028872407884599996923225549609191132286771205061279143386918887621313747887734039694178467191862781609246997178917209417306612883586770478719614720753832253214424706710162632045551996956498632861954715003564245075427721913816429402350366427997443335082141268361057005221527226995500177631567672323266530892004708052662257661832535468290731909216205363755514563248846206998829924138367499597714201325098853105307366604153161448063707766224707651075509113857720957329670734638260395833192699892760969961660026993011078178403678411094471184284109766278656372550331943474605438873859664833311543711544772706964956150749365016363146561647863877892814567023745230678901762988694471675135596124979852184924576103738114689985833639671148553965138634411615759962920017919958045418476518880208960814490629447368968141135900652920129582797743785547750876497172721544235713138102946626224670293437813495854922414263230760646669699679506293043143969677657750490896907674778617228075358758924942772191255594300712391932285908739508415778154547299457263584822259023842361181603799051998210988383143694209876721025997101102233578674029826686540351867685627378782878172782050726007256006232547726212402396430902420162533258532947577202495818271287851314371425276275045276194546591001693998449313461253231488645447149617548394826258352148704312032931483492615283818972397998154566946004450542403214394053604602758238212507941228556641390419333401009393736238622840079640481428954804676050145724482691640292054462155809034869007009249493314584783497021028811750947170772222653698872129762991385809425209615107498570204032630796566387993699549219730971890618563980651298896579038025153108149701211735056652573210294876584656851139144680600151997080270300439839838170786328373250705886996187901061049615138145727269040881360168094171798637304613031211523480286778818994285100515667102465199281780519585807111521264165938320109083581076864026004281568411631269111473159046478035631387733267994417832179316858317428829291635747234072143451139001675554048600005225188798550654820583797447847884587538587370529037713753593608673783975475622121820395397706518030848967492287984932485766124120267914918543925346622995009702134755290474798906349992213019625353194480644041181929935293281240346315913528476575889917967033958814306594013719310808625268472280031489147974183015358144685864875387130267376269089960726479991523240826577937804769707501072565264394696219320091917624985486215774446839317088921847489616434160112057630688007466999370541559783571905551523171646240569854671891973450234952991233133582303503787055729455222968562107652466687588013044612726531519899576929718270533237970847014332222291832301384818884486453236248242612406060698705464077708198930099341765334000885517247652685528512207132446892858730886027317852079166076448967194254649723713583693426625933000395817453608664612808846310313977631634125158364593495010054294704852378540823365900059366052779920649695698694800722733153700162851889553032326550775348501576112834435714976616187921370119643431454100047199634009824982580786818358117176249562376415656959216877762022282543632455175406840636795833135929121421154547521827638069292265721499859793047224914609709599801730563536418730181821323817352914852292068114799949399310744071878430637082542754289265073271004361459671084930468678118751210816874043451905221530157925983816325076277369080268657964203632411833215299286858908728411596070130550359356784644304680012873000238787930369539845738816574147304178550791472604698931465649331774965274007459666360791778788518181835807171459058442488912647529400918703289508827322872185696823869194695301667186704277520564491020409106818038401399115539370856224401068579051742265841782018029841380494619568995043945629623733495145903141824184359227346053796756930411437824393056866482772089128940345292493792316201298092990440014470747274183025005800606762669116797219643632288832252673922752794832098267211975244974105885315547998637742462090584529337106604470285543135037300243363689594567531198844169224343768336554673892024553943888849581007385211764620517804508942554334019887142351594962045429619844948445787040161346540554450197651123112327869068390001358037287518260141480847425230595966378555770087239210404554124926583541383332781446745452093950334377101149812849370040818342937779803476361877844676947258269465255066258864212065120422685193999829906144092597180497074627408917094645889169404633718598106657091342936595660661704171149724650187241391926451997072479290121881251642084546532338092341714732224970016187389344934616465151224128065626869016706078492958472166980607024374570664335991002903557512432712298227634694860977425342102415008184256780794200903150595781666133185170381391345865934930060143952371681565012181113926888795794548427773555514278729489972819058723480216299816192443652799188267507493827393467582964192765303439157478895725646774052457688484680047066233936641610012926230309533423904569938632299816688580604069581943269125840710627201964345730501886595469499756074388766139416771798447040785117566628135839360463692014928880250159267859564356208332747003993953753716615157796618700915663240434507350310786580246807152836911056370627160907766472426763901068938342986342281325666319797942051695093150057907961932519791290586655724596850295413712698970684171016232762338684314149231802645363574212396294652274543567232729702531601667095090744592571117913727617015747039844541758003328221527972242049944481204147585110322254307617856614516268101454506830951038634408429080635296190473942173024271444673101097657815615491123077287403196420575225891342541196012398228371388762582840189680972939814548646732567820899008249799745317199605201302095893633275221643606394849391248408833906065335544226415446042639567433844004220759462078704138520123175543884678231923567122534782701490067667140193607391850356652086184457971759918696780492220728420967362085169497108292901517275043921004278360574717322505717929933575880883245000559579994815494326846217198576707767954307770308726948157874946547094499112005312916836559352071296461782145086027707747418017387496418401029707084568390283092960211314492621215982492672355858847611701775607977882731355309788270270269896052309264468524812177466428889010327016603947261453852054447390366276487649387357931369205602698465083866086501102118037856590306212426354783429527772904683875603768566173752266831598203144908161641246283076648332857183358474922685288611534998691123213359287596924548382041510740160611306234197509799196238924770990781703714361507677176207944536425176377362969771458359626398063206913698368721499354759188295770475632614068567448929075270157639573182269986530635513249792950821229185460592487705415929270138682680151901566205746525134578286323614951322793710889650218841040041553145271531236601485640859853216276396633316377775965691242610152042195283904880398806442033690721226599992844939645237552964795450275561790715639684086540879560796028048362742964324588740010688738479293225355299605007356204205471645895524265841137021004798652545326798735275354652222241575997259026459013960458686509990477640941142983275182409796727603679275933250832019337934622766789831503162953268367834295746937076791559585671638830766562027560020554935340172314986129793178704317420690389608161924697674147717123558005704555102573805780826733947719003240407485095423506361914338584571961357657897910839189634670534009859695736349085793651123914747677893210371789494318797204577958663176145911274008150080824483355194399573276318221989378327840195954729852649062433911188319048859296456250625156150420911708478092366689358021925126594063718004758025898815005567089939083174274634411378852005641910184171945487047099837507048168407986182272395263584189165017343443861448063210783361789143251901540898545292273812527374690277859493432801799370092410540382671606222623556095739846167277269258656839143152083262621164475245455755205844130655467200295897537677095342885166100943571705070595943198765166083999735000643800408259811332900820554542312485254629186383688667348311612307112460374415946584213919959050098442579747000081223113881955818879839406073241702963205014135446242069434101217674082628589655662718564200190645646023630611655170456771815205940087733088447069582040571389172429778986150723532111836224459240592168999449472964222247664892053970883309939821116317584817909247505532455189866562214279318644808818618462577896551193561500806314951103912425994781104157143914264764477289692636676896873131942622170574083196265045695914495434262141576748048953536929713435155211618802083157013759291420488148083966198314412616687669558327351469708551786174233298995009909844858584364288009077945427002971216982421007693006850225833690404874987779801115008100254381320272581065021838927683886515023466357122166871798935533234247268903416264688925292181819029933861328927655361050222146184668704412815288997079730225050607628943916165885944780683328551364762528416828662993228411827484125960278082159303264570476452784561003582012106697290756042031902415495078349525254055434831683647765964508770121442226203489645119870319076108100691758760586870999978394894469054083980618554882545281917469929984672788160432175932280790835416359675499089348614760070632008501833174229501186745350452527545303411585952593397789885501171510092529160150662557121342542348813713255259397078193511376546843705824828383125908706496989020114984952106736706469755253122160336158575141164959399905775739643642248362498033578369794185069463383860645026433895399749221888422249234344271853052536857847015585971172635235561566117653915312013353093781917430742209811294312720075333193544265881714756186253831392013584352163978190337489538370179368810783742778162966447618996843315314154672284949073525755503054259595242134236032300735956759293712919403490231979735188257930459973632997337915778464492111094356808843401520199598015292060062864579682417602651044704277409064366604473755986175234598802906234864525532198698237376314137411447442497635243563024937162863414034343178763003061950675829032248748399910711482185575622788382990001383825010754287325234676417849278407499786060197986128261509594264370452510795741548460558841877653255593550959910503519046459767623878313974483231020189163910261033373403274515526299154909510335828519249495083260396261766008569524859990740724050125127692636152298295332575644746600841017700475725734658910545313070786218583406458909731770692699602789960539910791606794826873923250784914425689343149274350710872457536769855963961662044873543247909842076144710047287228742211577207790679192536285824510158920260548788766503842893519050508084280688448972389968798795125972365624446918720002653433150062811296133794436986383919900190758362740188791262001648071341632206119842412391280191009762414361152117763288233039515174838059144363827071285068400511573173754842022543609642076747037007827077748987111479835471173287044616979733478477652084781864469647008092429321293311767921696123048480673768835022679839104117716624719285119012473071884609555712977250796983675549574832654430611840189109936294592212943940107168929153641408093013026990204885896488258384852809326940528254226985919929790762515102336618563687518231732781648977830830660753772991734132995786982904994928029210805809497615021796864793066349455506496252621362068909411493067113827740281977826307972615633449639497762692502473020363445837909957589639265375006503650264208497012841210476868277763018844967587923889009623948993907730831929091903703895002372592736741741291905217066305543196392491129002763512735798103961440104045211788717006934182656643047704583662105089546853647247427298507014848846081609363128495286711256459945987033009330751911219177394497195145616474356975737058796034991022196245462733839612723845302437338787377504734769805692478547530810602158468682175522624587711336833933163140339156086794694278677552671234221131654535131923593474579792926579250120272911261944869154824204181206160156803073733610191129250407540712744592123483626618964158578447482268481518566136798897049939471806220068933060882759077205396730190369192848281003732586300477082616771213063397537074526652370529391656171757252968747517388122132845647654951619355248204310199871624216268756091468220834749282782866026568291294732027077385881126234061804720818643037913363925689458047136666425193061902035593725052650145015430319645813106341180781437079345569691000270302395845747515929615744963574265277985677469103699370465193353575777535314274785754950596511482431837660373192753475489836982043359296019754377963813154549595303231926547761128055506983937480245574411828422440494713401349560004902446434575967973791302081776261904171241931867535137615354553003835467481340167502109125142701542049213434070023769809873143615803260882673407339925656608578216024875185196992500038049890060540792916375620686486059017656054167084882134448477023456573005332082763754555704771752010605733215700412076726805842275368247556643780124799700052278236791558652027165352120378518224187945157623849612737194053774529569200061638101766962514418443983043647140493075376541802485026687244825215719756847410191246971609535927747516912768103241237709749978270911975442059353428376993273362761458568433960312485178888814551461310067961973180136528778841878105173165893094950973777115875470050352398995864653307111347776881889753086093120364629549207850942255101518347031377512054121934053213503831909673253708622920212564413282548355294072067469060459384255857532188597685286280812382989202043792953860918241965473909553396981371804596522568198741501004262252225319313672867258629540028148697633522085701149196402245009278176376595018717593454372241337050068044918861513563229952100588325451891053441184665220794695063621978049472293924077254326401059442963373182280894501221509096174083371120038131816066056109041812277073402904366596074258945867740507364981914314688517033041469281616301031321580384706234067486023386654829189106460039334392052187731355699714168619979592756851232852761099285576400544383588392722890716313648734500900566488572572721543157183798780234174771619530284447266704111216195388159826374015760736270779287674799219441216307435655718585666813683826067319572599520376077286777464669925714756942200259506126512405159115257660437239784419089603523436829800375330038334089469538671463145317154108383104905928224320449917885142655649508165638316543263467444630969969222750337668812721665349864168383461612541200404049576683162881397201892517032210802063662169383606231186362786296275296725434097989799905220406056677529065809650891603406313846058055841595735416196641542791068146414188104684048347840221111095801366197705642222795077360105287108125087502224134682976414046553165643441989002195509668562344581533837740959867665687234318289052118043972515900812205477819164119390012398149307263360122056997188912870156929594977356468744823324657687149028434124497634239596536365041224728483578840798476681108626395801710475297691187894812873360379706189489891147888988669289877714094784549188313973772565572953963918181528418514029984129617557187389226109016468860100538747930098086946788576485358264544626935465187132615769393705587719627159491621583541882980577184108209646456681391562366178408268955964303712997511926883661583575394471504774329193872800909825528082687351098965207824015951436981727390333068094942306637027671754587151992001834465052388345373682793856525585828301070892271498649883752871633745287794380794807569146321601892395309465816661075814167405714861444996605498613133836701252319399111233164944085091700344835397712732573551706163196600202354619601149560173779329421196764415349677223092246841765575192002858692155577677168570316607348139709140613930685847243394418836048204171072543604081997942285709021470233749285331065387680995640513503733024618304118009397416913529505729572274364372214900892025917985341579231635674701663500174148150207916137631943879495708556910976835117418877826232303439367590606347139507285855710325309735569498577755634560274294808300052133271459109139437694997693435116722458574492159953610621838769685585382490462427338791679469073521219282636667257122040383933276238930247199551500442628570637877838109677236113548524440818280066574247060664822039109007699464998764635143732800376060228976721878945732317394395262355434674167970407138341896354859486008049494677129042697738016843596182833196264936584662423210969289165191375752656462759072748408721275812686941676698740081726142800919585518463954110116100860496832377000260253713524712619258736584090744895897768183918996055189074898683374970054236790206223310575127571624079557119180395151635179362606270427480035562786451830890873736135990825428698036572193196500916683830950617849621619219815046262551062831572311394718817553005580041443849031241869837953962378940324613927416246075459471057511613398630327604751004004485247873526828850104820158725782003343694101446717976403965081394758115853297940088399152083906869703826526584367899569303032342716899430106079293982744715073379562977754621810229969570315067536486064080517484776075966942233591204504296654627348959682196305008769906374239560488771846625339988625279272812514313368708552310317172933472573426062890021802042605380025103444439013742173965956073245418500917026128696052607807541660877018477835802113055185358567756172653416466231907974332321841054757066709047040408307796234928095533683460894962461551793114871647625013032164099572707656417855660310936706360598049099104362857006030542252447487632447832833679388376269853287340390566887343117564969563659334777702031104551399354361055426910133567452140077949766170179570197560208700419378853761291797562768319846632383940428117080166367862317122030329372988875827243141142414688534568191379865347348359006794406884578482605686257470775385444030304760541625535483819287725882859056076184817880542949010954522255566146797675106616573065344040513224198686992194903230396719293635040817647773149968308071256493641492660840602976530061237409464049995683639381354208859755701207696372616141216890959879938730114702799396327481965989858168301863342478820870727549252128249396190172220929628140740598856305457975890889546759504909168754595257740842955355356564799444811269626356972038266590539410186221930481201173344130097267405389846812777916720698282482792547463463114358004225600099077047665352097824307319150921497746001747471915704284545313284764780205549650945214750035234794669410849892805533045797671466985599762239990860002541590670359828307767041613855350344288846537950913369565033756135597186331999204770440188494643104922316884939609499831328309392364518449448023323483822720343587470914010986075522133481214461967723665169187503140049888455034066182462020751261554284664049774920435152757192533636779243133521639686492795296556855687156985599963368002129030555044961353803481205852541041161757697865657223410294448253177768984014028827840300250358509752215409252047529946469233239866599450664044836289196394452310048173658111775200882790604742358815151559267902780092828318485877205558236784621939431655100173662138283182962122292610069612127332218277160570320749010858004858488798792758681728720301262414972223948607798739749647217768814441746785199573066419063510645815098524043435444579079267698463185177193683090018958604017433249307697952035106192452618344217756619272033181800730730599800134198979119133129383045786439517559167712377816452803970488153131749934455207107575037084744074341541377274257206151051012933982988794157653208246382089489852839599694047183964375607678876868616465910392544531179542165694302836055223110453631730975806626197144304045700193931388088483499101688704692485833522713926021065657872225164399775224193278138863962135222156845481258486100447834810420522078716379000080230882439113460036624086444758660083835449105823010037398533794735716810648895520763717558449446313831369351958891612869659564254566168823645452799673882784370518978710366301383300904012953530517401454809187681410441885140514508172563450874337821087117286276495316923423481848453749150213319408130526358504465746866855078499288224532452522731087892958230094045911841203369317677894042559030399475897907869595458144803991662997309155262152426344925593323719078176645473226968313750260907026314357522384067369080634699729324523944813771614018172397341537144413921310750969002108071736806033900240826644821304908279861382522311983613881908865880845225868640307492400601885258267550087878662109266480288853156203828180846392738662364837899126984539909265332869750861952416603739944937346229525205341083797065810263629278382130458327891528812357066283684264164320043390522908134267318590772688907972546519495065035017900118046923493935253640280713690730170588030517854928031106584947236052202507410300888417066302673010939527523786574578285092733387260027280629072610315230933092963260493874137324834859673676026252199022678209633132177219819531577278444025947607726737419844622112296055986172327831081684938469068507175197688020874989545626023444460963427538286187780121519917117699411077484309405453065552211500588920023956118613171305569419804775689208332940028451113837014436091493323919116390983502157748335618012977880716593934393380239764384420630154174742632632737764130836679868971908138058820408096466316175505199276455992842628657512586696246850754608745775580475054538609467012572854575061474945799401474763562090561705894596232247778714322894686140715687239346496054768738301066905905199010440352363143007237731205480464450450030918390534486428363291487339285600680680892937443065548727883931514530223790119586326593340419580966696533616563450325371543634283409974710190629380751049729491553624800825804181164569337010314983395759595181132171810720381933170162765499366749112412817492803551019192364193641723184471010304401558491542600130955691785483865716844708587075442049224227659789001758176602852178354991912058141942434707718502552028730777081239056320768371957134984408492771240988662396860306313513028225498875992547850712973886069705714204466934418607922920231304068372666275488998401301923482489710322955546176558681503331436536661834017870864713462837599699195391856384051842336849129774752340905179437974955949661122979757193336353378871137702903786513342326749942137523971060573480700994294950431282067782718094316511536511350595914835078708132808123350651687112536884867189388602192994033703629670454452552472503188755244229740329861325517045941259582695136000795090768805395867632586849281283861811232270266023405167762988423550022711024950449448831243765085309696798979294541278172697700252205230087321492821370948256297337686747529105730261181014621523988183685779325249787480986220456490005586360566576356380638299482786625852542858285925626837743481452082260151746047048055880416306563577847399271577792852683219767611639097709738317380382397289078008502962437483943895164164726164171244981769606124370888184455777809362084501649389851571477854920350461109894845823425775167666518899172000580239022162279701628748808093900764759028050522131523864409746632424566354728374679404885116251918712525339562611938337621879771759882131012773643288533290292658245760083673847743213460212294096440032707248349678441851575636936157929893535993877816626751555471813259046039813348970894636019416017320158145390142610956259839656947878612304603657224673739486556351138658836919055679445012623309899484849363734399787684260723599832700545440384668550716441565280246298151726571070985549821805595268737636027148483045553527332340046551678000339532013372793470102962393708143644383075377990703746030418255750992118994366225963595643096804127779650759134364389848702472810168176997526911903364153101026982717880496381367329760295793666885238249979459741170158650219766143780879403668660697416455144794547894111344882937573420181814169436827043974986039426575873842685843660190455512786281812293729656789999924806790497135967131952512259863150643748877286107057718929057434797548156628376494735275170254845192847100216385193199545792671327461821052560570778810868869372667040588231414088741700249526336231760405976255363018531244725266948746746986900213574412961709805333632632778322841239163640477787649457563503994266714328204905986132110934010444906286960496074431877485046036971667168502891407133833582543186643357805203223224295477178727185633961184962095225786822968032498409383420524098937753298982133387868254778944217586407968035091096539787106270743892661359674081989487568507456830798932054378052250946763387777662468831973463527833288608527399024330616897502559282462616945715933712583134695934739121219266531329773906685786946513556170683869789665246435766009319060042014901643999354497806479552646295821760627275061397923798320587912502996368564887676635179353375779765772620254169762953149722239459599989271644168884238304321628514096483312596734898200468570277616657807311321489121090328686401063153376946504617507725788729426535921439136506408634395481946199327169960613891675393512770767792296177370937681752843776191177624421111171438220980946634661288043488751150223394987154375641037708073697397249812018845702238661484420665295767626727926184054927988529717372096375155193698470627939713854968351123915804749555608097065503238890318894621556785563375272887498205608522037266143862921123852991972803266387528307487765453485428733179729630151529759591007482976482575695329707558531209640050410179063346937714756658147676833187100657510733443637898183399976832333617710569570194735277199112110242406452667462338227017016263617865106110234894799245683889921632950531849153456646153473607075742123328642209430107506800178693482628353192929756074647743519938087355005919640147736652999255366299706945980855724535461671506002941062499417503185098890968822472096959618984178989752812144494952125261883017440188191072865758530533744909204230245082036115424097952641760905363360367568403022654439496980272544868623256500601075527748228933530989663892369581877249986411086407772268934500223820356955151294746791491198977465857411454699230356890242289190287117065894221336003559128793555189957999012484972631441642236940284489669904734511067104643805698180005869774939332797045652929611142415672999013959631551173954225487109085527131624148055277353410399756836227288639093112536981444524724013277678201593312280956034726702729074448875153527984066067881777259925410611860304324164752475129821132669595235888733003784063330014763819059336203909643760064768265373385121016506597289089241920030397580470374817516603517177640514950535724652180913227713571774277848665274287396532054254910053263763091546635290698602178430602876685004869310517898428394878051596420407269108196471027939739622172509273596492878584903400483077421565072797294996744235771598909348966415392358173160773651435449587981375913502986507145931222518828542226649967277857687314861445634084794432711905915468665337018450284686061336248748141851205149110391844712104926972410095739851672291563904401479634110650902885133549230400806293870385517066829972694013656417858915299307387496698599023016840843174394647321373889596946174874714700927515119148432854806181353880391452790429696334499725606413448841636233325127974453220556748747637720921055812230275960630775062082210688318388833477602816930173872312801646272555016084556054287452436748998338422596999006203924358203444839441568769837219594005198336173272677120888237479746641697402064042315961966433744446926822089653524513892526511829703754921992988572299130256263840807318295416304483978551293609041954024981416198612871520611033732079615590799103639581236502341452492121964421748848045065625255355696583210688664559604336593538106183427376316839270101887865783258364057891955874220214524158827169900331605734293046933202114525680291349698486796561070379422647186326588627770317316157107765101677072156619258011456077523758673211202774517125673842814098412308665112086193390871526184292921833268115090292076470891208689754564538928039925814432693288344309190313995781102229361350626571653530420380487404987351891641201000804180104589669579947959156559629204008097527014763297664927314900193172187189106267822709365657617073438176918690362240995810639908535354359996209541753695273981567551661445922379530051087745236044453104501270967108538796863620761242637048757472377924416982508216566032240898588570178541309616156688313368420775354078210390781867096620636077856331345786278091810274348705961541461044995942736732358866887906371272577127080130063322158494776892395525656921452597903532312425172639964624774580261343492069994537449929942174262573400288990273915580705950883872258671658531188246308295030585416190255291807949605211786263357727621345168117243161403233780902721228767508691194493832058264824150954167421650483166323292257462189184829875653816685927629207628159882763616842773475780927950094212957044990329853391146856758439481796256110964153855004508797640819564586585089599522471163710184941207553787001781036256213072098724404287570437335806977307516364165592582677532280665309535670309722043568352222217214970154677688933146985972348847572829552505892436498233360846822892997567545752921934199905112671134073902705591084159417593313732659621210871682668740118483118942056076284037303746130346290975913169495550761928762815661787840438913681045421231267308592497975602456847109848125766272006350219813389323187606371916353633508242702688863444151466211693283329848629551366301464550347324021431938681240844711457853010185798189358442825695200501065020630962747660037943813298433995915521208087221787482908932381274741682303336443502764857288071951008025690280240963260389439355999250899946556889875092823831130252123841650807840909990932684463371209607997067555501940944396055099003684228302137272915155133349662899152331387257291328258063140786824608077236029437978345115901469415586009154972845641335073965620451317169051913435427115621895181146000723871526507257387412625320466105832971647666025258584021698987019174492242678383922881862661016128951117164324509136010099941097430211528998313241828633785762049413062684706570551157275414396444953721422500151490102551044972677112167518882048455495385215673634878988845741232774285347670283571808837626851300874091125378884832884949167771505112034793773403506323535772673412966791291457441051537546240548003488785301649844820111794375432023187661279196905766150155421578389679560357311868938312455956594559776465647848658063468520281471280637549372151380002826221896894013922427182913950135150986360757510567206236350702257969510559590927672547211231882572821039710196328890261512645934788276976402665446421592914117162541057174776991618535409452577877875564847617740015253390800764626323981615855072286693196343189587239232385539400081741153203752707560675185443183378584401948401489839666978873718038674923945882635348897982701467905980312457540753845332255761145049438015526454609931548841160352538264035969959936645009356897203926725361949095315055090348579026229609102911331041433038324885489494360361048259122979934442381479091603472307654275664181144862107869330086372687987610882424113219328389741386060114788735379560662330520536237433547770301925564587045852646989209474980228977409057054501243803111380086067712758864774441979680112885405670681973084726167688095778581522615294927953925330965117939066049022636578683379838897619120260266066345178680914778584132731140494828418721360818703511343279445669941955381134797291374359323289338907110533076742333513708888255160329598767571092816047001704550215791418450831850234177503247697276212673055385709838229329524438343693625370180450295833879746839066908017318342980308781596215398520614114522039674661121372219331624015133227247388877834385968454453003462048601470836922954366039800874720553146074841038501974895333063034376383118068489886657096536202616720531552559258212837241059056278351857475115146516344077104960502467182794502443335346657919768696008999666245263969561917127382980686028017132917953404296321197830799976339340293401311754475419621802635479000541466228725984580849190775245779683957690740092330252922287126748752071123776405442835157155567947336374174931979615491032191340168224600766840814902158961965868352730962606371411774498878852296749766013793894897167262080515627650611507026820944889718667004215729199765761049473644857389146639656523415591423714153344939865468599625380631742081203179024614505854561841475928187520223486660753339254174201208652047740410183653904280228825034199901267685677148620125526002788892449001897086538974927692230032924409615256003643383980610544390644385099290983247005447638315313467486339657881882719810395871743645855916083024888891654713650592757524909606170493550168028822730088651348206304480938524221923644937243192519326492461921988126610205823001773136052084427858862590685027879805286108630999823531475306505375045020810681622779567581928862905589297309057172570815039751504653249702531917136021212182015838587673900560126623175125496392473743744403412306219833120986511016121478378081666400831861821478703485848204053325489786584603561675580326893190691469693448865547206901399140626250578663285483976669767186253838467295324882672723900371278887691673057684147800576869840332612376275154242530342138120362582999124717271858781038731404098326792983721669607791890892428610784687800902270823597740716745693333489002711218375065710426109025664898733753832477255080518047609321910575227099859893098522337964346002449356832557086712401360558491034076407537775466717275398611892254375198482820799254736650582537481650846832562945153970383686673762133031661429628019622625941542036386515110430451282830586147041508113745591497959733246026771424729632550500105027166208862707834981540424175152412557692315988586745009999363851249769300241761898056572484462331565408673541269850125332071563289539445803697221791787494959231174430180828431805392216233005279930301029611834397082888835824301013751894920455104945052336801195266297583769421510977616247085828973364768084969104994194770841379101112277577052048936006800743939893397067496432513057629033644837798573568930906042306407922125542566077669581708735632332223631159579183211530863404801646378532722327874993573295583400109399915832416137488781184601340904829135563560386111626060283120858744570645176580325847390916858160033104091376172167186893073243468843285911734297176293366924874203612524209801234156743597863160620182816728116997421558365718375019062165484269290764950430686020308381350052265484422711374384930501030496680699009859243968964548196789436560813000256773070500479529325258644340323144160415456924301602091792922200879355563145490902201984013799445995919356140376436561462363598879498660010421059070417309508540898955051425348151907745945149451080572574774804755566702966624730708603804124774517704697445972626647432817074652580408986124141844355392504749182012394222200099301814366934434535208890237687235179887413359629888887918740999479232501799053024805901971749480061842023821648902632316356648544986469907716099554472841126698935482614780612769704203279476991562054624186485564525848628558454601849305161866743948600212987235400282432440096871093845131410919657179822167302903480720787541447042090242971488609712823872668479063697809264606393756974082297472697860090539777924135741289590563309110153257420674447958711643557257625364233164270826731623911228524045650917072588649892988232507628653419165880152916232865315752063004135707808681473589459349247977555247801375001565959399060337341195749485311656433402000941510766045095930546641645948098651802362865001344123090185041495524185931758410246887350175898086810045371286675489472194043109682614929199939576322464290934733738357883343235575606586039689873715211123610099135046404787787040641712777278005306381667730079883031925591110371637483901768823552117692769504188327360253197642677333338030494833290996536273825470403386561487404779692850944423139726981966399096280192872336247560812090362355896778551181817534995846896538322526221746628259969086530181198676771171112305969099871521728917236930230666243933222740489643442245965466148373137327859382249852969860800151493302582003467600115307867245787241140812927650117075655583836163395132509342997564248872510543357156270466456543555224015061953023256849869192753226197262425140185317934384236488364457201531236357062490040669421012730119804566977754496377097644349792732874742658612940814583722186428316732714873131121575024910053557288922642388129704164074264439904266908822257938531840028424179474032099910319922097697350454780062762344252064465226671558753262883045220835673570592013359179163631435425589340638476945556016374687480197361775303859184824797034129291202651443091995014541783652268605645262945230149501489459466003848168490586790741501848053694167543733160262947323141222735031096854188843743170859507164948366673064407895596393057831764895601581761369642309367483131142620803270595815489715772042684962571871460921208137750376641433403475794855312831616430150719742929562550393360660438447778677304974053748455608688609307697541215105336098810258932669848791016233009306117600740696400576019931662849902704225719922063540903857257746162289002393429547836452974406302551353972536174575538620743040512403852418619760021716513893469217761953230041088404031015468998181514357022288676867355065652855011279155339325173577705015401055263256785125881384766941961649612837158526906139768998866406332951347205167045887594956858943701987629508205323886525720566035954027119400266469651386237129121998176928050903278977216521142467407541451733460401430822988525428115286853404451264211590883403334330869198934013905815465368021161081772479405811933425030416352553415760808533942075301463893527451391869690914927517413618228834385521057783809861726124309323465847084391350400716035674706720855962597300357682221700051876759533663780533069989502682261577779212127988493452521782179390426651709437641935001632800212572550857260515523280752967529818020519047933499595006010431634180136512415347861824348822667161172595425561470726554997552804193495435025489720670422695341610902461480419199446124061497125873727119437080924514473109016384615741084946836328107487833469452931249903006528415562109585845217348922381136133798789829712539499451666703918558729798994500536943057031039022665191076155342062954345280986311835576708974512646157360914021332507747548038542578937695564971254982698285889231067635107564184703901844236197509821752401264536134875296054763701166945844502323641887933144747043726815821460252405033898933853804526915471574323564191160515050903105734459203475070150982812165482474497758968706251818939977723301637703745894504266184783649398254231268521984821919956066305798695360755972503462589301971236498177774291644035550490109923075931689557113102383110139914659068185404451653240947129886180590403265890977978929364499589057487507839862927998889716101899375111853862016683044843427553843170304899863361493320286778942825840340779020576884778207735179117660892515415572214683059880529628509684806046851307974639509522289213919316135288860755120137728061115936612930954795153584493852992220803398614280167188619725334007841110054484459548376912284888445738933851470330486206636214412138329589883130007875850213220872379170138355772394012281819844647114906752946251749530896608532104742552052209019078895266739318663775714867726517345301755138779553240976029652745247208133927091215630384492248913753664033498659061337082596397744977219728664489271657021615528738685473565196408968042046551211291913895076278802519311594217656522837819307196792238818474393591100856024271461466189639769100850986667558741173010382871304173849256012219939268159285072165366289669856488570687379714236304351799528130820246887305192266682425077718237368587540626552251351337310192101279267472482419521957006634111691949530797656956344838653023757238886353761664657501168376236640880564296019412471245684078127132037366795004482566079403096470319625507045712252992899989805170668716235056138138940118090823122731593931221196670524106190047589642178259474552436367290399893692363718219642429824289362012380844196947653638592135830860228613273367247994585866081730453521420823361146953615445476577551332159963947533675823612189003702974579362196983516791701672864365716558418480120546618705653243480160601397629447660068441812935223072848645018068085325358315952289719356230366936699687834445413585779100105029497385261650950220371024709680020115402065512230457902020497643664046761111502957895172143549735802644240880165369213321589182869498913593254284773625471952924317716958508655053165740035253335245243405488677205201605205733310144680784000845662756125730426450710082014334679358230599852347854139135494582405258408183370641966333813218896426127686774342019435466237536814306512379134587762959781917365762182254286939656850640814597849697219681089565108650209588321264107938070715708365635620383856616019916821730213215501768703162768284063699828742991754316601451041765197253858351721351771506220654685773061222725737432818902923040614414487534930280096724586806777369966221407452200553108223218812985451162657899757382332304855649820652652364410002740286846063123885641803075500881576149311768023270075508750100936479980125455262121462251223294794976521862747128228930948328538238296862209408643388243111164163490443999937368700168752431108785161873058284883336847450413585987707156605268042743347228095214763414861862896595940535858722873130726111604784873840219860645892927685375487775376649887621602666387262693894841096363268287651872445622956947903005055708981408809037045614545924548167651352292922352922149842435943819384276472781149287170652673743651670300225073530743121043995853085259683896256890407121969200447036926944335315374610652346634074585394432867838029319559670193304562122890188243904253687698667676328325866098418718991850828453898614526000981147080183466697236894025326600795413322524101672230562682608150864065666532267373692732153455126681911936362104487708706702829951524739967246852722088392253862951022859497717382427268936546618381897681991891213736877496537573640032933645927033619416239966578768004933461290802257879043452842789243035060708498876673557615653390382908565153829513908440832767350368435854830921839670426773463747724976366839381719808674591984938664273877559162721006152845578304767581062365565533703694876491604396848021493244540891719240215587635470329071789536406746604359024871137376936535694597615541828644037830242038541333321426854593586196070512960243625730251392384980347643614515549250332482014995663965350469615706097713877736496395649307373026921389330046213736559600285582613698830632230020873524775383631128279643830134143093833957107028245589466263059351043393276136930693152943162600251413918707618037607818001285342505174257889217214799131094145223787677407167969094049978392684177425385981394092235105199790086904266783815806139993055158963555771031693528846349118063547727146931635660406747281757372344382675703072960699985750965544127589072930570262245901211882642065662878447407474993872313842737910282029595992000767398661618454916119212012550890103159133579609910620855572487224262310974503117349145254866238702537438618059197334103429357988657896954480430508887371274640072885618556054168278747019795715939229353774297794941690164593258199052361979850109484667521144090256190505540191154705300734129964927664330572747163257631829200885126216880605114285688506950221370863446783424390335066392892627018567174690323228194432243823268158367090497909637696086581282598427294151642619435816512007757262989146856984766980535813321210499612415256784573167594054270459079276201194412932473003859464112192583636493291736693319076744068033355165686208989391758821337362062238157686471201150441030360856773551039240746866938452115762107654155000962326073040311799316321258579437203477515754279967102442202088874715038378207481201221612991088512292200575824304922485159158628417467719468857603503091054106244084187739437479387271427174205460588477767779443094453464041336875511255141513098518068084110881171002292882455969843205670922661687972744084326025357330273111749771116230345351393217549275887661535402308424312224598593415732997585330649892306335728767724198878030960988056343866521928419462510936846804821768002649288229201299216798773044672999919460951132203365167616864759807785787520322498977756952294132617364844541526597962103337876239954701735397828963829378803378006597325757143567200869435324848490650606174766611554767909940964536406287024749972226862616575999008233239243513924430725090914743038789217621888772468162750537676872484374489215036461121547917463837139509472894769368228120179624082393096038380842586869865947582395546515722237019684412293866529285933572040524091951469330642564808673088645707151482983243412082605232027446513994557670152255976070175574199422206460082750676826449960162607818965345003567991369478113395997586497367830449148163972759203120991491317671372001633799738898820464873570980378071308119112173116337499861347620523107564394495642373433038185801143596631810586212882231997540620386265989762111122691882936597151510309652635119303007917876423455079561105687602636581061240572698045187206416439643491853792289210169614232329567316634456046998586876508600081779350033308281000890591850170093819211864972408993398573119306382330649697376585180727472230375454151790009488920414958994384848993064073976089153151664464812207646938396091161040606118955255924665001890372640427816203692749776297800745097824282424324855343355358477365472166316488500068944508614437297189400568993870572509443843182548609976629497650552440455220567153144404717501384654134797073481669478090646067985382443488558772531786572536062034385318127439698747364812673866543335000683378895121188710039712108646515335478029845214021776838413491608299931539773425030082203016615491923909984007912360045323589508689070367518591916183336270965576013724731988766751337475176573393566479557347693752504342726058706526798038232221279952948036447331948962192438308953410712423464253230921317077334301585582507445397050910617573970399713374569789164512818201647456240343806666361413330878667217843159784851496026192064710877598878147019189749665019280318776723576989018392848988420035156206803041809165633001605541325861460186418454551121498697047214610080124751500843907187124177560417134025707675997159148662642283987013518221374549571870081533275188104413271131690351726201913717923671102270151758502544464963683537103906159798420720495966733134383301548788948187956825157838168890773247355245322189747293620445864151575217301365339212156013557636442797701827140723753783278461601795961711851933122699088850829803514039549940743949481660239423357623663331953126900748989084003914322396125700658999532680357824225632868092311552710178237946408219768966473913682295890825349507972694819417320315861916391899113368937933177948942357387940183494652673797995399758052724891526084043750699844976299109417302320683041789545023465645954379015716239942995313983658110846617691365104984430217596403837517966110249294884386195369458385433000657803648723703005143781866944155702337585339547120604388397335523130533797030664571125116064007057846766836102380948465240337589026585406146226706370689538390625972841643280408338641762811855198201757730551376931563176738555360373972941081272457182574568128494351742606518317948330359256489743097152646996301036256846575532234336819044830058701899993722495908624291609807867330438488099279906664187794306127909724430859073720857554334116931398006675180457102783727235089165986773108613110972650708233602292199515111961804655785458187256995388920403195778813448576534811654571766971557726799931637689055768103959589116671259716747426346775440196486024570562332971980790449628325823999214967935987669111044516991665294498779561348958502596091902463848368248579288148781639122283251359733422813106918353888269537066954442318162986911879250657967232682518868518672965414409440513210078694826034373548310599917178789409289844504927436158076015901345114926386550196828633325599730591086348479817359265094208270619503190635781900640210347939300132898506350292492539062598765718411216906366620156902625132116508574287035829691853322928403897867974230332522773049844564700429883763952428873218358397330619490257046061800705977905107897928012359310088559856476412398667488557146248543292131545761255066562732903651835868969667717760327378194728876760356280989314774328111295553236073806172468745629622204270576781997081684548702029463508725907589142420693362628860234282560570608900021582208513753455017789791677000238493573923620105580137572963515841250775296980469770013719225472506784610051040535766842420551281911763279010338245926996205330230590932918023184373362532841160821043678446820453707283187002155256811576874898888542477787084050593055749299519383883189977219448482947083600909043045197240677402750151619612359408066895264953037203922240778964429290629160349774454331059273377462552033771875678915785410182202651614066950071823692569639927166710642037286787534615386433127329387685817704948142016821520831405315357692900609509845308850175698346964464305984730973449193574880639332355681704507969044200445551844874846464542257888718111927963350644551428192209294430918271232555949339842161061387190752754411639863497520860243462940528164909251621028869894463809334986826402536559332340668644052197859578749222367695007087205010442193362838742791895034892747744110752812123083499292006487031420712261382773038524063342814743513771387510217241441677132429549839705945571464177559518690062023055815489280661946285470837741505396881998449360625303223605079745455392227647994341483238166067303267491614296367938371900530277242446895486934019246697606095089416906660780063387650439165804088200090477692245909102555804698181235535246739001124695822292191378847112881359844170569472292341092220946579394737409968784003751542909130801890700669737431765714948732840986602639067249936621016592183114763406091100754390716498493586804170895343211832096889571359560996184353227421038133501806985922435247868123230685044039978745810649500623756688210578953338617487606156999515021490139626390523914506112421304214820149214488498689857481090107735366063103399469186605765065168863234319406533718676224532955335569834996701786821843559378601834836472483960396912379617131013127330990400383068530164561911919921643677907940672631879027034313997912410838306042088164023713392013781808324297110657721746712089859495304017562132751384960947743911832012216880436618507545080706764290171081722691278355359049532017839903396103945389361018667192579764042183539989664395717079901046059244975059575421844845657860869091601214394966105024573981772783299266380617137361635996585186326671346716629389917946611757549069589199998134113275263733493792578339321907793807274488855855488628199767394068063223757789898329737762433859611531403317996423558758416489098943708459347945793436906790152205541552148673494711114239797292714521158249913627613268980027717484730315762448266815715554800372973892606803570549452687879657604155081776886301008735435092243651065322301459943906615522332526385437246931697266087844801357427787828718293016762024371911216919314745291724254247642412708292726013722306620450984942221888169416737251685013665464895375252466005128362578532691959548654992586446297283088184192123162707636744255592693818810756277061089475327423539591645411654218702276498004971399537089337224403454284991290599132470317250333074757823840686775784469623977187594616623876165188915331607223142392221914440938094776554987967210241167184755319956307292922460933774780653971957675618566542128924320886721757351154222814828477478204869844776128077101202221970513774019016518045013092068090283921572257165009001415904302332417883058294238907453022080382027708622591946147170254055138374473556973667310901289916685681253245749230833680282018530192081074874263596201683244545798426826149381653306561831118751081598782831597356570376610944565871256439244213476607607664915269404399844064639769086281167888435924081833820090995680017660011586475203594791517766530776552695221122426285945291839442394629971810295195443394815206964493440410262965922894408567235920356127100184397919186922955847811744548184937588263925811953008928527799908955768144304432028533017855576016424439729019673031691165405927841188280595625991589594936538996464401593089494194472175626999529023130433104896492631434394997789887475658471283473328686366286370208789875529985216497935948024544221869787624313193193926238820726405909362744649114618774044606551129053998119921216779451428534341224242904393859430331373636377922483334623940137069446263456854089206718787947882791388489544551682071963357885516935398383220334956516409005926545542588029025327324596113335333569362953218040184985268391371779878787557171923014406941116329087889040469370357942988128105952345692355238406104123395613572581690664627603581232309998144152108210620533010901185497644849137113699270849266143792441319015644326621395110620640475759671890005374951462582145508633838142616759021122984725376737836129010765906156225911942815822608922076961452836496963832190323100775366353523860276975565867702226752586199669651136162862672390025792054734377288079718406008641753688315353652394665384284249465876570617282179450883584485087548603372547734469080138038625320344634979530230130446802178513269596109113363281326173728946932559301801236946694685029397857341108569710512405204786276730874362861748324386390951690162139783357540300579501388603355578844271939363865780631666473606315945487019397245345073385192601776218432004153603061347116871726999391520399708367766026900413780589496951981040847877373107225967496423295816882747141162887272703991639090606329160961826168433052818482954768802561446536767956797647095927791708789470249490346925942980527909174258124858727657768566033449929163686098401438322112552985370585786311434214087227408187118508030485289353998898872499542497844887666604281153068847880467937151855621858681266686778646192992799943031031357623519490082480445295385815759222212537452082123234434798563731806292173078525458773526607259599613816563918053840622829632247250878849037811836817060811937749239831321631657059263782252870072292639529745947625818596613244240162014212977826212406620202136651463949655246058713398652867360159394260911879003368050568907212043767447824340144163062142583437296873147991697027535170663816959726370233606280244204046456225814863999028625877525045042727285177124172830584037709056300092756405562077971126605091171783992320907177650445188638498281568370539065898665178037558855780682711790101919720178296018229097254816574328124418288747923094923263318104616903140154984017733099427294720240274410974498984090294289169976190957092265980548068709846937659110127321260375307911977829929713044216912998059525707374049073175377824387858275149191760521641324575774217098196358139133038612047393277785323515013206610917645254079293989655163163953568046695480499797320531419766588592182866550913190618073268578394422410091564060966419283885920707579148652927951247947128542357608974118082993847638564374497455953281726698412317938589081918250203852959059364871615434497916264021634658859051892419508480967150620039704604579926823962766681453146188564508853861164213357486704844582162357561073748828300464547916213351702618134901525452153268954797534356069633569875656448196239330844295753198977257115788409645233064967725360955166260010361264281751588081080491092445496237318362184437226061465513682556055840631549651499294745170151632332608068078530345459077882587390011870023312117112711412049643599945192199310713229524138055277287435670706459232992245505635912761397141108329270276300087751633735848141248494249249926097729658054620118421908569852180937529369222880119203047294923286990936544003715782896021881224283738167774469978186438694771506078155358535296976479017311987499922903516362776175824108299140864751851716750827713639476836303899948467658988627252864157021065781010081930258492410754826813668099691416706853980826969479619493512845109350273350905484539866181677420863910245510807146189120802838506346343100363349815363152908414538482013433796504985936593343346954479512618661288874438078380938615138300947840660876115178102724988813898419834803301491508280527345636641809929258229131724211314590906535585985380892915801261215488999372174970414248995668424432484583293694217812467960600464984636676532335486740527485681590757410338113386695020181801970307751528217244251674482173762234194616654428077789525983606369939701148260600466613512744363967007703293518019746428098040734592870615638121362485032316143263954462427929001230901777745559919528546362578592553403469738847327175174329148841224618956878079373541139592989952682886636379665471372019086653620380870724846086528481179930390764694977994398787560704358422271058807873272366364684776725433157959036502839142879808801581660620032402182217127070310980839179452197760978956699053767402021110636413456391990548077050671830183664309831303503741319716219419599139977380977167158000220073117082085034608660675006719144846542741110704907742055498841758929928034033098775041048626850823146534715116727746621852087145020875375089030087197347324384961791804118175270946953560348334453659137207391457591333279547204807666584587031173910365723666075609875755590281389892974888236649177211751696397374583424849743874014324528690438792627589527896527836999745389484861156634794672960263692545821960588039852616208676314501956470833748318468698590190914279899121550468444138735159286185710552324500848090743415413182448768786373683314152663547507305114074464386314580348715779312002697858937773025443484913494722500715774276822673218872919341439149747857564319009641499650522099589722438840996265734454014859797701410573048853712508262899459107225283872734669854111351677410375564206347269162814642706507820361464234402209403041270829651897842889685528543371130734481872651017790391840750459527035895659439921943236623698221149688855297133189087654653648489286016432040439001302117506966992993056021453499794219802422521859580694842254356366974798083139843619764074818078631564581465138296749149650064322881757856158603661096969598367697364166687163021306573681695470078544458125877784794698685965823862211142990955790938312015871953511139167222917655768960555703205588806200891336430869698233068273040938389739881975527866286202117853454876346627317996980687078803150153566994749435117556743762924560090658612542564799685809176471467398036116900737970471513725030192966609578866497117153843683474038377844617247080667232816405368369081543445592763441651027195268006034923474627385385537770511018786390510232534386219176445041487283531131677380534718671413964161558127582983521885348827872900090766318814998688914614418509778399745425352454493544246647697763909136162744861628928444486780094504451425014914622078355501785837999869094402059865142043271872159205408993912393669365084672148946573765283029476838822772626759034395867781431625088698697696198114591074675865063104282902952343688259065733135999369586565441720537226861546108844408096921047225113140239662528004416349250083673931609024044487264508908621088825004561404155199054317992727688196876234542572338148390148179707662459864642516529074380847098140718881203109145188312441134240227733970961990596682987867299879746759075271238967746068127559776223975721927371839024515740099388880635018721471858878877685292300916324484612903953722465037504219370476876822272467287871352775568950636014359888457887513045647001211738412291992989653908928228373873531199420972034892675127533635178933140253242706211287081766329933387002601897865606951927666362467909098493370038259671778697075878304268393027776255011661224161059277143511640075221659670532047266385633685399512737728189789401047343113792780535721271209331047213929672134237040197893252007906319892278771443195303058617809219994899122111296719856394943566272700669425185462241760527436514838621081217481772915321424909975091363996265080535723424404130817919506799189531026431335756824697200003226391897037765278631595362676265958223039666751532058072404729939249970998384102056267197645931644740155741605568487709203838862993111039432743970042921167384095775147453067725344411026538314682485123357927109840013695323007866608947243896151652200936530675328256328245867645827061175750902332231704962375103866890104617591739195803042904595035568430131483723516219473141951983343475392721623474916918698218901739770017146537451732921669918375102632983659078070510640199576983505496024973333784366632531519660049124838692541425254348261857247032243288354813673025869436422825262772690161673942894319638014218855612704275854277833020818080811558393587770754726662005088879561133323489131882404469710248832775772237445598871177079626695883228787470973186350524791590903828844680160891593764277219058945496902443562230209543478033148382760315659745663121439671046108228328913670405112372234219061993541367700629367599306644595064755909990158544754499550073481879015589524507870637078778717773181428346558468432598686932534886509907880579359703329198953407184864062246310273220155357925607979361337624437035611449884952996695395596609914128627334493826213836199405935204736825005708742472243788858506769687114199467636356575802719883616502950238211296702089412987367385787301639736991867635072798901591899643979345548526605550966863855252053754763672015380892804264908328984136729116216686134684012381036063023737801873864262937142668672638003835128583572991933327816252202242364319747667115063148640202374792327446087763613093080276350689677126416187600941431225192477701168786346279801264062651117712546828004253042464381721130979192935073102842856067356527850397417397523638394265936963320125982212380342300111804655940766219431640722504012052682218953657953290489244220506152352214124758030917021414297266033270227504658578545343682313344160756637366532419927621005844601619898829679517578926130366977921570045681393763929370785474858146207428252183207789498484127241192084051555179146344477586148146909357946203664231080578352685011280856198115037756956693860738233385792005165575467721912765046070969959543110454303624304534944244811450133520409034217277295295647947517706061496076659177419772014457117713079292191831469792338452746634535005655489750731598018771060496742781963247388454827058342158722355172793618475696647546594787798082771164368855149316837370542666935509507330572753319691903082497423694063256541759667017061253066385075938921409124691201333028592489850958734797222957973099124314746220517337009454592192643023027305761341157945327737309466123736961154816171190912760512312865782399560831718462397263939241880534734458489171587336822584078110372588300445175973797626844091140507435456081144681689878075713020855620259492620558475763155872492950747655518651354040063356868750547978590110327879248251050046419663942819859475086853206259165637099038170557414843992045008715944215136298722062714565663501864635096526277455254393751137216924476738423249877786794509081426001302530047420283728932005060969110555953060761060664693081073257074258981779245855254859217849322582114675773144991460039577854964165298499519843336988721397739057914584313256357875778751993582749797372350814900399596840913696274988300600214153223545307105373919786405992267169871339841280143207003717486958006929492313884871303551308527840941129878975066735217266107523923420568383071752554346591387065034901148200885199478757066297490716311468240908519024734875219675594298320397615305806097462678882147460172383257060763831030028013585191737893959159792082651356572905387166502065833583278387990424360323185032939362848014935869613622446999893774470058238524625722806953797624539525396342911716848043941511560455412893697824416561765723729495584948017399962711107273194790817951202113457910874178912659369244215060575881192246208122622034774526908787509215597131920204216092811173324973152555646390784977499556158367761007237273176407174243105883036049555619507433052214468798437535149815121162280853635660483872843183794170666248494674998848555098474317170104630756957374273176134078102513483532975053749287358510633140986425431416238357201642590634648457605767136646073517573713104823413343642921496209502633553662715502058969572687213442092325526846148407350538641936052390328306151410596563359406885959083530435043319734338206618726161916158105393148164646781488792958043706192172590014282363287653721764478897845134729697793429052294339014706361354437479167135481636436664430923334150543434666530773310172010164239203239878969523004001685620807253788298101181433463937934109396684749728395243473403090763189951846267851675495232166293365914046847945189886164371893361460807488382509461938130325220548228402114495153762398583032286107078423594489695635470143035852799553782336912057395394162204372421930997397025191616824380063157444029575139925430206437293037217675176408064915770276829888250094697554464735045904952711367778826782919158405796831117466241515473434080184033464939002374520530124049233758276879588095685891470118244425145336315009507206662059339595454944835382547571083829769782079794139015644677524643927699046954427440681754595411966168434824121442996507762034884773573078876167690627681173927468391713348560108512776615842399563775220011050129925550303454172912526442784030387366109516623349440067691573954356225997451909171839406530619958330130085262564246716041381108282134822811472903431218220465018273998232077296426000823364349902777666882792225002311230795554623272759820804766526694796050917176293655981695108781918781293691347917441698809971249482795161099640503772915116444105989331677802569448863516628880510612231470441272122819301042964283284291822365452416759301241261857604560276802373562024438834826566976258929634649915596988978939556747822594777696972129547277671672415871460903687931713224175198160464550999803529711086472783265674202571126610574277140041400792168425241006288251252369366720191282899323801120633672743175593127103119534238042360996411785784322587382765982381258187796522417575945663426001077328569681465264469259549389938881552491278021602887045616446326000626466174586101922867787440445185448635780402256464293478578943212112708567105764819427880254996610165643122812210523613603997441141524538418901177229136847918637937721045042747608694064087054144361416365321175270778772647081140871695342397059604562293093171492433465864676195200727621871101534395432679710777859528524085446149152258349310466622297408247472969727844376093045468773437366687600331630227703697511812829581216079427747955699130927886464956033053216445796783559103714291723350371489012898173204114631244217157309887451360831542206316520834150625245554258330211436620925264314620270173022136368726737114616371733667942891680873190013421989977224785859958867537560636414566279134786340348315543892345557937853264443534631466588950521772291323063880102366939346634745354433781157927987958407235036227373224060408423789888202295200988736418448503006723161372318857524086185112204257311467228081125237152665308701024394198768518059283349514110829591212315758156905047244497048260409017201853321211983030006095334062915292071374533361643092305814614275936672728498052477072395696028415352300659962248535967182683950196877560033909932204088550061595881295260001679339193815730713549056983557871400387920106104822388647705193347572015728581984671104264315831657399862203134221692348657578691372591111352812719579437197732363441282099886043862889021155223399373731671932963680034195558443742392959241096781018476774223623944397699895556201886501912641900582385227396205230726740739852396504937436521906500229429718047529273740657613743171674807505309554317672298483574398642992434807477040930935142773495399560608888225121735425560129089289107062420350466197791487562461139146613203661790895429833235269702781296040484100578061689135566930712570776485764220620663293561509099798504313532436201242661421069590516951960431396351357047864903195706358618683308040701636277135743288924883681819954532457723912202995891394066813472706619624659908524480359459701903551245879404731161921892506373558373828801631823934014079958104376839581724338202385575458459532547930134358609406994071384020231044797678489691634943444446903136075107668719070450593090963614726973254417827592681852849417921815512461762894638385259950671892931058350989494240266350962820339156136252178553627728223120411511416148127544047570673252672232540867472754061955061101956396386495771049821304141310678243541520371824317818521984932376015367824396542634551696407666893700857313075042997200005916166016824077073074818883286032204482498408371559362569789194195135008738733039329801614274984231607005233713723920146311967281925765103779383117322197754261188306152423625273326846636027893827994215906929160779683026561837075640947819427359172560654549761688715681352070999449126595739100280422057566475315155419457406153558937365043795835392799754136610837082635244843347493460960856812411601505459063424996963202085221597847363318523298485745257390388026511678029711916008815067283746370923078168082119243485888021373432467822941907049807699368022494165095386486500484876535459495141582887030636189993039573026698557783555783156341941039193441896449317647195245820540507488910135173907754393337668593630574019739472258455219852394871201793417721987450582282712454034295081305135330168876401400044459431530793929386337331200316627012590855570944347299924257454029387542825302384346645902376600561189568306581653553774049400586613272351095392654139535465778979591987805133469400143597504573595529453912400256347569234535220028380554406503976755089882025366657362774738292844570355716905581485588224759488508824577201551415201877073868878654394603117966862396482425307332704858569762719091415262706422783963477808963341658401003467220223977799322072597747721898006237516980137136634978560591113194146007226835917637091301686975252263275760172623419145321833419235907511755348044620810053412085090013594818954895724075338296507169518094599263877737824873189742899543077872840901025562191548782425441877355434056833665272615577846935651639020544491394988851191969365337931291321435528130094978872229238560773833364254303624126593282530261325510024883056978426819004607974786083113164155824798930681080416481679618645469228601702998675496512688383370227627056553171300338214556381958424767513884197932622370571792423008278217913863452195512311373492814890504766523506319770838605290126933153492087576774835757469219701050968638922600479083612513060656826369722644665651987917761002036441351216739839077155455943019780186902928904590817768605469796461553268561938326817034506746440526407398381461595328892548429966174851390909779973588464178817908279065624788955074941277403065174543329350989311565931834212764590326340320298077657737219340943946917820678145947836397487400930933981645391302742296532132582419275741957642458661061154887315908415452670284445336422366563168190406209455851275721334621016828188039322096930404816024735450646808263026764333877007033871436340753188945047824326379185701647074321043520675087684007422414990228398653612313632728325170772070694696531257232721269373056868113615095544167044426084214489597453686883197514510588969938554301715180897366601774226199239609392643032731848721485135782393022709821298465861359981146622196334865520257056190296025392251038769039900039519290622709690418057611713995365553773182640802588815826219004905701276229391319915737003461921374986833867139043368193582122391412054987387961231327350662136146033091515043821763546477242372445727505825463268034590399934254762004567519239726921716750660583703379458488139829791676531797621398454783653000016614324085485258116325704514288458031570915243803960678932976583734333803746400415245344908382509746914681112408836859269449164817119062650746089688073318771948091268176906081916518499530185208889391376904998888316445407492996363712603400099814428406819616332568464131379196672966251634052793704595480203010756660832288958323406228297327146408496607902682411423558090790409036495468834334147919254918403318568268136506626177765595193647745516200569149092159602439637701034903370666023807145930095099781503571940917519444718413879998741265650385380893725016004992903285276714926313377694765135513677155566655387292801798953761733057453215733870595136235083646563750677627690760247062217463266418223401405945870076671518388767136603442088617833489746076102613974131496861497759719572591885706659269018573864519423150506499622417832463601655732188087006035961798765894878533582698502267517251133685978699110009171857984881407098441432162607578169043666086143072272103994880780577661846540534079826863427205841719362740027965365843939505710484027045192247023427087941550495210857431868646662968908166590576412948057936400054885000317367485306069681522814521901259111649680807263692302636974866606865385318522374213301586865107726404481319855880967004362808732495333914623907415941660232326257887679585470123844415230208499825942531855919099085120924518862675497116749554448391209555952345718852885340700149686797414326029173503106591484680092665013068380792631154468970002535413921301720433347846473702626981071011094850539364839267658015892373711779003039875762337186596122152869547160541091404886757446483601403534810060297126247350822251724261086034711622360847556735329661035686815543188406715030541232080094148824627520783159881617143862892832756191500555643069985526437287867708746963048457761191817608912810317678996037941075769197657558251086646931513297100384878135117364330494922287619845936248648864139170152945371460583955609578758085927252036914188214423251998549467617144965679426036307206438645071127289583328974107061103647709894964472200627829163443765461427187869246853755410532459314138577680823683733873411968765647907239517685924773205753882343607368450416505163489502879001930228835395876478262804491861369025129380274454995221516062606506828614911595875790699714777196818969840052387019149015985501395059005478813264869722628042244603256386077563211176367416582809434134510016450192183633593789910974591204327095400513274777490563450086216909808238070709724097311938797505001879595144010618409457081005869790355770353120767752357321672696681772893256724038125285715505218611139491999158596436829608181852869024693797990880363376841302348942753731812606125548021119918090098096346461108206903550096873183488237265208685342148123261436955444530259123492961969243912737983837739747093263351253298739745663363621982196558930721948930615261658485058874314792248545392246005914789628900588053875910755196577659669471451247262650188809079636846853128305260945392728673694612538166202522589435678427971944299303282646281393465717034056056169932997910515399636132256459913584401889678650479549918273619072450203780964136219455335256009961466446769343420447907871531965393562082299470333560785015801506719718403453810263370333559316550927457948461481726385575643175783248475272986450362775269299170558931791243952214021760529618506165002487648695708232554744613916564912331599160328246573313141836749878152489329575149153499652382136576046469048671799960013169108671643520254873150847419955763892377315950160404923862955943748125150787432934570495645302704462718112149979301966315641114844939770711411812134783300098800065513710533263926332516070049734753717952792399241112238450869090617620109763355604267029517958853567023733756640046494257067012032158945397573004308096075663629429630774298020306441394133417257207847387844823535159147120834799369161671417475433807789582921545776534369023638625979817058350202299208725915694929620782652964342738720976460117440054743154287637653017590663065887137995674669755604954067203029360760975951513902451272400067706911351730894745197586893545579595116771567958369492045880436728234935280015470881488481318022391677961248081530481318920866568271911122843131534659807123947708832368279650662345896379510078405762805893554905736906225743100651343832871509313773893272090977100877720667258717030536363796956756659919242765470133825819627714204343740826297653668256462931399064443932308026430635803300732883948056546737487466806388378573171740429440579074402681441600543162280052553111621879490631281963357946683029101345606719153414537020811383837538200213638188578479092694611426981010878289621387342430737956889178593082913927072975118292135410590923072282645139505133670068160947158851479177304239179078203959712041779893743616742924337484007160444948278374746779851173421472962460855150289622963493045211429159251547577206926199576830084969260805989938100497611152932246840853480671082069243202912503189454247523918731276019319547531498012005836722772362411940780159749624282587275081485605621960370993049003823305183280652441282280183583901556707260142415417496260115017897945330327652192553290191018971295982240127913452932628370808358148321723313103111060417610360166124680501023340071379558961695555048860138132373028799292324425787507618442464751269775556763190607985152134194587406950990799209372076657063237009884584391065386466941180222095259161723954019896636985891958637718041868354402509751237143130110474672620940257659644841513295948958775154497896712683153633331341221041757760491101535493302439877486382544957228762347106225622969092556112556030803284778357788018611861604172459137252895869654607627849398429223862118947424647190610534294702170969231304656819135548018379849991030253527590539121194414589575077651172617592633258416626272990327373048744270395985692986838232773917865748269485576099434193434588307141865834791038043101630788645755490022704926481844729878774322257984732488052258338306175205736706622666944875393827908567276401470361780440176873743651371593007614564699788576050165381764988271568126503679236269649152543031612760420891897749007325626370855720533482571094375206759286263638611648240920012355726916666112729283762672943239456878331044692555728176794562903831205584951415902813046271543545913177479397310639032814023643461660703662769266651367916219421066777599118406048537578103414893002104963371828856144871504567038973907740458901868262136812686461007501063395515184516600959950283403217566345644580738822970952983760294592732810749206660992368274960689614614284493792937076238022484370436064508123077998748069484472296540111950723593283522987492518541070951300175085117638209850113527003529586499110006440590460664954041559426630744972451763533715690357373066969031506382335279068966338006682899330018798600609048872359649827713101176379461114197748592939846546985550573588239355633963326220883688117825201071117259802742603573394552999067229328624639491503128640765709096053993373971979936582031564256848935324578889697405262779345656162293342746359162661904052704512333937449905875772250738830907954758586098028651621164722026036454940643151021902473658081446633279203971775473334945654172778398574458339279983860672108478937704509990180358968862698282074593708871690632119604481389053587190245797724266575799643819585754640738047928962739573285504218562772656867658835566686902440454557664897179144263484825472370463673852363926320670898134405939281789121277869115431859018307382479272786843990721508553968455548456463580221857747952411890666018549041429179358247780477203159928240598315013882208018596501692435021273062579923516832050921250107149882229600187833347675096804496949501350475084969139026870246065498107886576008508031742441437715527440787848320204158309368370874985512379504199149061603882139708929010084955521945013711795877290988842096832421442548734802131679784849308705214866138822353207432536045297273896390971746057142475568697449316398391762114653403007748844352818500436693000494749532521916947746384298124066531775163689143297608992861547925566448177499129817441691165944996684566306260127693327307541015747213358793220280955014732547441234020415139322820637000717616390750273410285395664193060816367941413876382856974979693960636156517416768669731398827823959403231830775618891780554883845725209355245706259851734423681845342854159098604288892796481678056633377499826424096243524277775726746499493845591480624314573908993940593822116691564217847186019130929885121176219707449388283529257031276152955196267887046397617630593528699087789897551718531906922211547953117464129594281987861194686963315699328120124260309309834514511127505979916665131667615328433155051348520951355158300777189256861654109062804790587943854902193453350176422192320283103505700435649877886886242107843561498231032790161080905534845872666903447842755264351287637486025082223877548077671918578447288011851765089241582599734565850995728432987935652754132824167628764470355677331148633643908519907752001237777863696995156363513793813661917839997086621804715952668981103320160847087659857097736558765755621654105263428145085459538507888297072195792197778779592230705887393299598795453681092295655337238954033613614123496471432754125604211440212103373761886697784866734385383342933282721045867516993332800429341848109716846700557650489170536158737440208040299692612069077689697417364847932438014945790536199471383716266578572902676955416044276439530107190345527884399914623217029790132157885371022265164158781298305488186389566912745011565593954132400211193102337624276197985519869032406606110831499155801086013697500469421287012626929322666001347315915620048641020040974509745505600884148309379659925595911302335376229547632275574493242693392040728223859237916781848625020043196250028601042667318685211931797633047367229561390840491648166379981354777849274500446437368683258144442869595168979980868947054312058332548177004895465991008317099825983269296372303745533797104580496808962652326734222285594588586975880854954653878267491150767368548168992415254100807470290888432899965003552147584477409900017916751382138116411045531371075489363805087637386168315089213369905236027130127079197188360960360364685705471711244063381231641700699372954891779577384723015767004997231532270230051887160269534820448825485328774542964050922841851553697562970579243429385741108235613862020707166209186510477921485472884968069605566292862075688588331608704464463452442506982330089236555985161395021634646003642717047360673290336390443446616567519249517911136796805359225744707265693835605020898849043343609314145779209207486979552571710990729204312111892424190396523528647988849658682888774452584442789754491653773031818148635447795016888536894576986427499010678137270132332111623601266332229557126512913850133122494878478050648323699554906883410701017962678131811771780819437037843862482830754023783277459864172074930742038279046648614000590928351235301679335930525987123729418898867291550469283228553653029293241302638505568023254972517943063855582912150507233618837538390830369649091767412623060319818931487299583449585692681562125393052566231821235658070217745308415352008262436605427473631852610565708428828838793433541350268423392150090633343273232964479480465383896651450283244110266434638776733966347238047122409673077146515634533710040015741877824516074197154112890240890568341824752381627885307227448640526305054455565588345025355921017547004501842089999755777552899295616538984729904420378885165709648816394025566421470091201372825532251419040013572875055709722520031567316453922652546398127698471053057868284670583740252389275397274512364276754510495761898685703686414144523124826109639738058239353573782455254949544611055105192053945350597364423656554265057753722535787979021070502533961647987502449934416504295885551151820536339377625975356906604937293487516146520476870503858073325493485709763040190016975586368433842419811091993916067546040340093737050052677085240716910506896194219510036367851314470412078325271053218926616027282034342571715429862389672050629673210897107971428077951831288311906327481665487762482159962355284627752589290755654851658515044690330910355307438110694761226060804868675055529218267495580195541973504924751575445424668729187802184955440914347088805700114947794983288972337598583459047831075096052036971163553137298738524405013192692041927603274108899479590436689348061052230996781712086652481661010614897754946222341531407835469588811389660124756009699968433439129301644661380157753691532477541776866976622437046202422995778791477528046082870201623800838716481333272085551599880138711986134111482844987039409125751498635194472961073002801167139608466254712763653283008861282321273042593254420855667969894403869975394735553232635468915925429058663133315445518767669918836833676148648204543602621077492997772084402431079756119621348902829351510078857937555312055633743517353884913188925108064004138518606189049623388752809925841322740051597526168179801095861244017404511768869361159893020293493337896161459225444635115144274682643113917304506135517208246473096251533894211617200338599230743281447932489720519936050669135485105680722284313636457821356694737266506538448273986711348437659903809526353515199325933453604983305946190038745809569866294252210991751544778204256777713203108211693070755668849094696804999578566030419534130968981848168650313731509809006677497471141263410285112968965321707648997532013328155420482430881868981460501185364383127672624553585960934090651194788281832860914503953976381803700679209622549009454973059559372388844458842300868681823995715032617968952317574949544887433899796040013847610368029288142380622545959768734855089095106957878560317922083805442788214745380301519237878653254833177849869094939371431500263537042475542206839769048575852063317450215038725255010883869597870302679572865129670074528046276678760304833096289647186499638198180282291798985117379494452661046568846199958694630903872879958725707143669353870340120810201090828702420577088228727210317870389182318779282033881677123167157294815890684163847670894104653187366067379388230766212785995403313907560367978538575184341680339310305396173889851760631502916954663092425591749506220651916697840925530575546453293751245222212947566662366909006238994626485001697276955221430074362580526589548879860848740134356472243106985382694360755195981371000360454639591072231962217795153631258395620123944135557967039773593448266222216791831581382391955074338899495181723086445051432717942237299978140422221357932192554082323758343529651981331972619253968423343652359171881979103293930460360586233134936623766578743191652052381006606616410375712139972851285101429178609990434719834085434656886320775803571660580087141843331340156970262453347088039760509864806763068574755450222529794527777653578148140329078829603721848645528519157910983081920240138033626581163298379017821440063484632535415722462665129388954863799964717531949276762005614852172856882630413424247904631123467415877131001215651729884052082520454217717499550955408037538499402112650939992927405821368317453474854674863119339718490388612264270878577156543282281759917327493434539327586433573815995336686733394019180152908036298362344959854234493627194778009395805189039747488417234385911615307205280176312590449711687918857194332124497779439758389239938761289975907536971980843525511001324719185022694951638893086242584740237380457264351027577295880431074426629033629309323471073800160493298201763492882507198564049036663862660754683875072348587905970280768074539346560403909730966732008460593276160871743635053471836021222554363414142724572896643067232589873946199556000866469242688314345975797828359151065435761971166530889492240693387785212965726873361490217248882733680072898926061585626799934143976601351332997026845941945474259193594033507914363298216293296334581448217708578848813110649563135666838087902879509952650663685311653421152856816246927482040450724771679863578022381157870859382713100284609894447786425832426994078247990106439046226974501133389533019549545590155279997576131485667208154722081701449972042640176855512321872927167187687217827092015859764423462949459037049553559771960684594139385721508697248428660113374594709621788089588974295925755818584148096574317701950711290407567067239850985069081483369843312334354260704676539686869549926667008833873206299398821078928334142701006881153726202472302049931693129806902481393629566688361821461110956254362217736968839241918813413681380052884167124763851277225465953032759800185527544806476923498000706302675460680885411987323545641040750384431490395437876288068059520154759754378660596385874122414191610993189126419425826650139265776735335564461227258651018384173449363580557636188659642011887632831451719495687712333264110378630923503494102013057644199159512262669887479524389832065208501618271717375100722192995517840045861530984110512413665238806552300341804287173803348686502094113566205971459627550482594875172464158253820214986000970348286543934123920303582715666825896225106253643593271833119049658830375680301818915740730164513113001538630485279541642509444427570173719154531801503013988745498361445410732238629033436669841924017435983031215250219793007848663570177897894395673190280836586421017298340224522416210738224094371426433995455015233761982034906822554143296411355247237951260521212855230201283507042145085521417957088685551102822319340681349954036712008869416196862445257325737248900350834095091793373066847890016595826209393307296548635160565188392126011711902025337548699400185968890145550686509345275733186548056735173784866122941394268159113620634140884553439014115057005198263597561920149298077430158373893156972872157694343829004253103580242741560615940804002536761073797038362679657551490131162577453201979248417994253287640728091851157401342460314374809316201087070642747843226431911603286910520405235387253413645946063299847179007944070614535374612653826513242795218250443369630706674959536012801676627287984676918554802608833762428469340583918314107340921907180103974551785782084105332282419149106763908422281666406166693327061865067328204193441068925892810411046418661011696699486904566761859525783176855263406375628657176193273532042657656452249862915195485257867619121210402246338317533828910260444262601679970766766767772213457699365388293658181486830829341507885403108703187917006374901505437293377803485151800514620832476800161274466975372242264248028458848009068048374845905198174061714837076755513318902203229379078045619544826155726414416779406322862699420567455007828133356470403628926245962599895108510264741889594081377883493311682244331965324167338404402010663368532821751085929999783502892359337879279769342567147082078512786081420853313479997072377296233035009244014456611987816322908139918203818052772781734796359175032296233522189950253505102710229083816331598032970543578054225853017933595731279402373242475436160628075756414431272186867039259632556538125718402071216399682382992022082287380105527511740651249852028608486607329526979484573750508109956000715287711806577268782777198602238801341244133876994944173731136165014187781035092065318365769854862487020043474554784844379632939663739836435474311906571127225865087485445339851105157759942478800744432998181358265590289441681833981637044859418342984461854965729619619582013921152102276283959108362544998114162131647058259768569571429539508757983159875360282417503233068558642617613112635370619479020561878849115134050232010034544871845899643526047586596453253240414334071786369240100925601798351325311684510312405608046824527703458903270842994497002960009052177595375599544564472025845318605306379763513768504531814699281966380550968994638229642857315996603535503246889196821224243294666471823324489295060645216662335488433521522744760457360909922145483638120873709473765857059959497280480219558078471024231937145028456181654688452376153810864493789050652509760059767626047791537049898367662587257164387553890412781800167543623722792414274701608626916167356762934767385502201641777288853395072715019589759773986940533689334642793986415648566104759803724969107788875964656825160439600655552061591483362399447586903232247196841597419794620963140661523366883034249182625742964450670529415399254310518357645002385704612866221678595517908803577211317508841936162931063602561722926758594100255328514249849978720337406418234657358143196626988526843981161144603378384603282504968556687345979998158680073192258283549205649451302845422597236630416752075204562418534668751111626744221565945276072754103920192578241976587908510888956942712298837082596698394201260458741330065425359466604100127704359425668022235545257824106273375206569093956556038249961611425161299113120822882764097100255178329771352540918374262952409423852778472255507387379809069926286311781741689054302824055277057682311844645023248627322727782387714735997195471000953646925245143608334243349471887992557141846399489791159910489860736441116139947751918343407730503369738475507011231812344383577442611307641686502072116366052816873163835632495271610893280504976438067438314036851314331791181754347854698031063404860479036496459208384575001354133214972845046415083766311639128032966431279902617640275895377295038102448201977938490448337020655831829532503233727671276297868556408785236604268433754041908908343089609000782524776670077228801454250054378072915508219118415395354857198864529908878375887117369778576754833199094610380458237796464275502065807529124770134363804104410166256513921601161919017078595270105137954697699141926886238017311954400089147208723237428415247838268230089265246010186726122903265715106201185605615750458163390930618131401104647879600634490675426510850936886775922318786499995151972139070474145059300261258786116183860769591042190680377223559238165393901611096165696727123755832869775614551760218975089547116679358036038221845880450976945796249371073195578124475678272670105675117185094717380473984312086751376224297336943313106655442754238517087056605825694207211836142359938633184352967886526814542385729003206064988990150953612868773024778401979526753910277904410275334689353904725555366283014707476141070538244246740122089052136029301077281440960811067133533823135650286877202274404075117806232620991955677341977108403518545185852336808336130685582732934270276249126452802725311959720817436386396571867692089856643744948736720060437290538132859051939843863551068917905029091392194388654601147407580847993599484304512835853678927753884898990062874208204702871864558825113588641644488143608464024126346276995229573747885243197354410040461607104264699542798865023678508530341553927551254014796602240545068431972091789730866106575890524927886757914932909400394647031989570424963772998174207262342714342169768882121917213051971838378746864263945163569047314850767529988275666289581169102698990925841539949233956984258335001714880970168153337371459226573790706646932352563567899530210175532777058922483300529689125711501489870728730020686832029673515193423798175076666806209441473384745003685619388532335262976390763993870489068927562005517542251695257547500784022123095208357886503234926043415040087989182730984355698509927210631570013708291312607483705414673069137055782031651775942409129591811476988000462954192782162418860501138615002066502586132490842947845340670657453426994300413227315712552277194263892343116621933779284850498513903128717399513200136695125765153993065165195158227698715656135294861025557147181867021115483313626078257298468464905480087466144521790197819234700957782822939829783331043403149860180564243715617458235119659860348988376548028947869138388110507580370925508941358940913163704065453604383250490983858423079199909816895664358642893736715772453423575115756202555963840074810048949004866811064394758199169583723310947815710801086675183388632361376833287900216112803578201007606026828829865666826006346275786116107503497929804980194088807099011694152955914766666307784571108080884828350688354826857283048751012904474681630076486662489547474150587172056343041555048887251657917613113461936838585749097305482303407362670519287538940255708175040571991895592058189597684533253082501576023771976653202939257068964040545595333343101130862429504470002815091071371464944209034548398022542318361986363385823849332851110149401019432923762369505768404154329190312606529365185991197868442460357638935648971298753149287079207950206429297973714489310592405949421200045839311507963338446337235092309562597608306073130658900714655677131235481985852053927070300846141708716902297001428263467790287002075360622185911989967897359054606175750881404398216852162645895696255336108277136348169967074164028199151373363314067338929007083168812120749781100142511335412050701525649167412578854046547431862964886685640021753932889279782571583561408412556080952750569493290763554834727089511420035274796627858272726611141432299594191605088730645677719511930430063275944641437019646985253711399183484676522898273478287461521444999572926502971788958831642248359224628276469659341514696860954556779980418378641192241995261666029147620915768395617663582262560599559746053432147346759133089264410214062500977684354166918548813924238222910439501496167704893282735310740715153917585119326371845216496403739410467661978821657393324410113091777962691168521415100027691285105385285468429044476080564750772538377090187780943858966131844516402843531613268989122833186390484229615019828841189829822638851601456617938435156351462009745494543059090082027570379973915501160085847568262638405799565172680541930121058054303605601761122973168153384364421157424803719318764487745985533753399243791841235311938026317061940047588256512818082734430811137418544983184015565945841475610835641415934292312444574047270064499713541414253313984710226272883243181630159771316142998900961211415158153764938252314928525696960098413283052952193365338781448227980228504426317228393215516266400130839843386346624202044740113875329137571851175716659315834813382535580819360455342499343240232279899781435190400083638083525638577891788956500540091432423631401886688258018090614865984640881853750497770674155036308472325935859299414973686459717141948245177275363740809271380752697419166407170803813832501265319737627580318375748531658839623177822925706571993924292867983730540841206780949984694843366311063562486376113734497852526293157104355591882444740736078995142097168748482227516502436929728888885002406117257547105796031864535197960355277293558119357938133748131650467463681066869765776997170359558514740482274962848152935683420442379819076485175175710104255437950468674021684528503899786290856405343716007450685060339791676868610748499823068222380935322726998853606888873248963657131753930576410471545206813774123913500840193341168040265722806548293278692774811203327644034474117170156010641918390352753992826832994513047067047802845671500306432734548189051368308386673280528976887034176586815282149412853873653193466288445843721837290649420599075284274294194794286190981301810707237521674451166213663714916019204581681583576371859141489892183435122156517958504839022210521030193527685217596084650191253374038810783599892435000683069362847809695097393840398151394897113588325388665410037973454851271836712709427520887136400909418170979023734585528361186639641132828703435475548576063884778526155042934066866220880863644923846185855511574763091217113858640076145409343541728678852181934049514401746071302913323411676767942190594175982208372091947298108594052640809485797755417943460154002085006793518395592021234432935961030964034883386094147484330449122019409673251556163413831990595166967270307241937081545483756598168808045330091382107113015264860563921159522499480659168408546408892487129299601618406891202362579396378495942827326862209199083752298915509721556137688059440048790831004075170157792006391055464192090004827808708310654351852756487973899824696552535159320563700582338749231414642389459359619241789172018989960749268892155299610242577012303287638390805236365549740758345881218444267027279036961307357545842122457722441092328044158530840735043066609255144169518332665212167875725012835071325765512481077535203037080314561863749866261918184966768572647325841467683141309859499314720954416539304095983791637142136768527606840145384875315513639213697714980854751344138782746712621415963250610768965251999167076327104832697924564167443488428924439384811336714717846021774778643230054302513074665638990424127826042598598375870422978922623950193723643543548419993040781084555208341808510754415415389521043100870636990748449831725097975807034522536650904251518539966923952806598502671637477634288516967016998618333470803137097555044394783295671066685810016743982985016719692772999585172521730818802939636120005363886223150819434753078530439767239551308215274545141575787143488957016746599904929288489020072723679524906405299969313473120191563941126375647143048221465618381832351396299617641772120446905914628947899182406107792734126972453420914829213902787286257384487731761039120232176824385898806398296101414177617798384270648743840781725414443570297762392235001768517563941912723324806401630467558165265688229331894583038315051310587084050734234346556693496190083103168925254648731210149579450994039741515263944986992430304764009983803167600571440932131502207436132155820570211970980564407392066979465170820027435892277829888983605495080608653445822524809291717679174889257606286381445140956118015301653898085737894370403412759920588499486254048691933867329707135160852112562335538939624136306788945178007835660993852042644694277570200680407193079636095408835027650201148291049930487881300072259687633467882410226749752221363815081115321236601509105830433774549271707332722169965026220706915441231256049606856893467973510753598731540832139876280296403839686282212012379925541194620706067475650638132924241931971602988957653486882200877339152326048591041980345213459181736928941393618855462229795091174374174006915198747035878387877667520519155384988466877118695854143358407206319964340361591920087972159354652846173256464276311170846136050440825202830256758071874316972383351670697649807421870888454956567994342167458278462920717829131895810052932233511770065639904547009568918339418346785044386068058294840357026400007627426921063803918542789440513768368911233557740622028966670274598575738430614119626128549544895952699965148814946898540885773830539810235746383889629667983141828768616442116348438065000236528470713780348001863391230425722872514852940946171700916237234651394251959702633627498052494269802208001471358190495855466315651535481522913343062233557216675432023028453800331700614099135560785025022039880421421583371835993277372237923640789408709948224659039621068183424217203641501859920651322407692874725861398649611808122655465866061664961611151170369486126493712776912160897664671549486573478088249195853012160606501937704089478498366215213185642333271294247142535345533920862932321233579979779169693975533273299436452533132908333271954868460188292140240272820711614586968142016322328113364305876785235766827436946775395102879918026868363954609945815400829085641775260755309935860559445100936875350130555388857658819356373941467461284251545824993804457475521711309177763127533962573689858244949120326383676368885723169288633441693576316070982797207400665284449913725792227355082646024488617070415857156998033079916558178872563015709890448530513383749728519854861007601136645069760435710675778411729445992088291806947412894290564866689688740058820294949663486221216404348142603364081521729198285366698676758248019759653103255794065154152598373786506537903058550685045895750007539098662092474424797564299077303840286364769640926229134482287330437658514308505471120421543695544982051172685898475553140027358190018414404933292628659898925777930082217099027320982395377962554992936390413055384374082254189470029591656674668528446902038019621295693523230625838298433628857742784839773647083348184768152712703117670721453033911382420005204044873062773562033550409268996322347978357055788574737379338322104291950772458480287114077276687266205376810434291911695535013503444221305808242406069631036177741487810820862189817126999343308764647661620723344070532800857328271565944818740540986837239078999221743884280244926514788321371643853145369524239819861409693612178423350348136529282242837568197327266418787211176264044280418951176885778806273376500003082459562848809390148221010762799462301744101581745295406762781150995326615039352878914044667509215336880701812531051380548645379060110134752076262378748391488551564199490056414245528278353847307824025893440506431245631970509130840909043779318083384566291094278523315811611640720445339293012770130292491977429185594755096035004621287723602934051897071999661191013392505428020321719903956918619305755340673379865506155340252768362589534078702533160731596861556261355053979884687254323510982515767698523476608711928872174331705720152006720783272455259580738908820894077781419027123299878459313666143183578726466197518236664474459765404193531996570797502693271996339454548079691393123681844039066553381853331398015743702514441055028471043993233791674710477406450571169075367425000714883559615454763322904891533711355769778016013474047260395658560405655595798528037045777122335725197900495227315334167685291575542165759553211445293879476332020945756801318126258063787699735017392477162015152838740920288106004986065325981140555796043576458427536424564186881249102654281298620880910491470707830584346275436780858353642493505954916812728031498415253712327268304775393030312619051817865896112830576082220467985228976730973430022130842680489001340091967102912221793090280113639544178383504114051404221745445882984206056680255266994260700566845162772762131567186214797764192425628982361239633864368452609831514998717235324461118476765688772855036063171337506087507667336602476236105390153019292901610677915704489903762165340776764356257255889568734702662268966263989625376897337345713484338344737182022470669905507913806362490594021753107242074712097745951249256092510300783072933503957382888100583892389571825327002532352805360392969982049289775183625751796856676196049756891979148391481902954962580787203754460311004625842589284093243050340989100622474011491602523196975393766985612340469792668067126988889166209285185719532012273550888927429347716063206846475742961236677208412119509680687361193027326369925807635534255450636457120757359483562291280738501143334598632395400860339317789950926345605163237250483552636682408561056519838655700993942318732482721986426590169380898542812586174504866438567984890169285471838805388795387319562564041580114421622793688315895348272725414751083130759771457117509029141977610853445511503917609628164482664821587129393601480821922777399435585803492628698182902295733848102896692707326280397174172560661101494853923194903521719480000021793714538825256605234417620210826398547683186171851010719915244750952566481328585960765021176075269821010954129855868925186410574846526811041081532590231324521205979144670680208465953727297948721267826316581695805063653987528657349943769449615514255217216569959105494608407413379235119589145770760192667065278596546542447116528812623609555885417838973603269630411258090421886211668553688128246382988235439426225693265235410647860534366170592009544235272292780179325019693824837322731803222796667068275707849497765504994409819072719809316605192401129154677385473018626890580353873164302247027544381113436234548077899136598978035874924982770799984367201343813846074443723405847009477369123484717815682626829464674136200663246592807750784147605726722692021455899622813646301680634825296319765112332944678442148581270607253819489928038697645330874952979628678832692062367825190315117961940263695081489118851787717953868687580999699180760017781239139244707421287226340532168452947050405729815184249201260219096978376552793780409781322775758016321111338301374017148350484658105885408878072869267905288550564178558933565018951404477114478021031212657649306477299113803401740094417504515435575093990656048795595618919467701750231075877136602791133590937080438365562529866213444325354346894541353964700739538112293915705630164709138604285540716941690058358525409812961107615073665226942860737023611470481668982068633998453111021597670896222092964053179886525067715258489335861828704771758702514060316015372273791276616683117354387653561311682027618361072257198840156880494426265104907602966616804055707614945304092485665032410348939899575286961178331249479634015485188182161332922496327821197515984123531962708969347739782628198392874278278439554306763146970610787475926363545018684020602682744460546880862399031900333646378229468829167847949141235394670194369693350170566081047967125633449618275915180665305125212958840065859687687543379853272199862743167816118878095060286067033298211664270654339897813200917359364627980711290648700284448573539612631636202788271648157046728169545285252349506897397262092531020172359026864773649704137502098759257516839764749562602074286894941317377108192815858010042520801102141237603062636830669906952939373366203487433053006253542704175159961614018007478754636774898406871653344901408256346746287738085969591027692198677748371852782518175658090223095193220060741926612811062145465586944593660776586677561438577293008422959668552814931615563196924564832907674334920526422086974122358186081822117672445130660559327434793678592998109105940632345482584642444777104284338583541538206918153916579737339456820615196415617059127110489959744266397485944998891916717987358919523178261721809170888428679127356636365638594822867692361052785848607756255289850420848020866240899802410681242727868384042824905979461970893494737323609470433652196497202271069416071516920372227807094164899929634009259817749483148393668574005441777794809534286545760323741072558426449183928481525845799563158805563236959118150441748352263037168126905907678726219025569345064584676414053658290208002768891085874070123748405191378689507016954633799751927326854097568867237875886970294634416949238881882599317400232145834414141191787743952084525993736138821844421644182080310210365641484795568973864943501169974031278902658598445571123490208527882823355245806981318376235242017781437744768680106877554897307956454645586309923659503623648825139203848125294797096728755759076748375993239458177397237252271914353501597747613634792217945169085396554071974092314082276063916173713308993925917302771218184097923868127534302848577265689936069088851034663133205927781297786823212316984336289983472545155956847094256110112381464684564498458354349130351044408185163963657311369554449551780817086070774391641847340774489133816237399444624194784542129280300769696945824368115521767804364273993457092802955455308646622285988223020204850906477311362699744969932625610444834990268564999462195765252913427847764597617461912881490891051188756370946782750424952791803870633869309306306480056777401398061676852657918549856461149043977567179363192484362184510245231518474544214037948770421133808777598256450492184341227803574972453084568416692454980500705219695233600684485607334797491609240512097404529427726499537901316118893680776280839001376210702462713217700847491104606557356417466810017480442195599496691470491053446687745228007940445022991034085867326623430398214113294087720514829881065094471235327808361838233584049511224918970479904153860052266747426755471286506211556694357783424653302274954444286538568857555375491978607896411965615452656379840213145824352502296416035799151660916568609410265902167462006303470959872093220283422564044789335001583707597376029397141097387618101980163657966843576205434984758170841898932625441909664448213262685702224091192210960595998170889681139048230746338625909390143065664435575855322799184389602777356244999220093814488559548515886460871904978056935483038117505478340811589464398866241608249962448103471555885591284070397125153922095636376207501703683434432067275889840502371786681826583714640188850586410483293351248974467914972695096185612105682387626926013380799233830358018442364604279893631427663561836448042719608764839068819271007829277802560701728807146552419579159033334257390495864575410799299878609230780415028847356033717513792871860794867626792807491648453633115969078919839422017512125534688322128062220416256461144849422683379298467566100258166474204575311905075922843974331729361908572426714289253846145895410113674593522865033151993442302550466093074790612961976541089059525093752368035137694976307207960159890285295811071203759004211297820710404340145315559797082728280702066223772291883825558918099991953994027632521639080846498138205678505706495245475969233019126603465894874891957319255414376221302860699265865768477901669776776095438344520521708582679965967441318374043955894307234336543659631774026568956725378142309140228417978146428972947096658851872577399577337348077332741586074972489892203848805492498466205786227230597313446439881179950044350879810977078496677607311463951608057645874764633702592489289109579020521867552037395130616486119786382605725704886188301154609750679820299523357399027928007509221599864528061005810021583824472075356937134292118638959346262371145297203664527296568894526284735740887622185713331628423994189209624685742025070357446836574429454741290641083478003702745094638265937914331318709936585278236888852885354400114680217703774881910957517703166846813889527066656665110131290790093684677338848090678886046858962267913213223187002469941603304720100151182344796521085456055902373043205178161275651224159876178858934094032408984955199090445100553375783052284027561075321701218539949654623176596703272491222383500997033372742557491506998085723664701465703922925937670021271239212934222118224517084143744700329577256680525595377803004215929462489827264589815710496754708364103838446678464037052790099175021301727344327072741450059216470259039869050456244864594325250442736775283367772747382250137439826583003114222740816116577081812619191584097550300233523385967969374791005304460916643731777471686592934108148824862348012306703987060132351935600761510965499075976181872186297619118042514908603773403986116531088507848627038387015009708175524038241295301101881831963342165226938356121605326004633961226357462072311401222956841415961801143528207086947759802186613287165766502946441228974683148374586314563798875800791009050117678865661438121715469370930910994866125406053397474491990418567075330262487772170017916928804078596600895485422203401732601278953766027734894797737785054234016312673889764082927202191774588176523055362980940159423353937530163302922451203493068074219796262172487831751466112585766714643955075003814650365551184701564333007416427201126005755391049677434851650322956592982759235707477650605606641898731971451360374104125489198604846395221226142589056640199879257707869867677206148191838990747147692904123729910753078041105100174528466339027444614827472454254334502363976379121642074960782476483232665352798078141071076220953966657202989751172149287233789885684485469031630181016340633096888823714112935906876934564449336095931420611559809698416890223408082531872052581299718064482910686593011203305125081770397808806116380754093689318977854475506888567044982694559746664355825249258729840708410770447225317630696231887207781798891638052120553804791274718904788388694469070629835462307307572602585785413288148907895794872046576474037106271396969737817826953467890987501720313477164245407351699024507024503866377090027647997296051926976857325223935263654862464525255545131785944972299241272057294400793647864056063771200096594763372445410438358641059140951093825577397265509749008819831194110927667355999579228614211990674951409358506709769188390252503252192051069372792439782008922994338370998934156177585538024021169915548945116928894586304179870029211100679930521194094332598383399645369094090720550676796324278675572429370000909836320535209387721672630476386087495470884227841769888730308846069855183403274300950242820783895952935576975350342522778235221211279278325322639684389627682539454057095758481896258339714519901053069080552519016708525006312991386366582127548922687289851096173105971582307992230299338940454781108035082718875003380095959407303486916367588741428815429005131592255608937817602878261503556260782455029691846732120183224004110915711084182289889981667572387636495013546237167639957281152444960191357096673548976347916764408688237871102189255738589421323984820115564263313283462523443493067291581493745415306277372482228286681645210248812637350728713843213397608547291149870317077404816821986318486331768927769020505213337776120218399978577613968869805393745426920538166474187774017787699139839776050510624468064031115793270360878966293879787117861270876906710423146952749772300902995749657151996549681004717866571343651336967402946247068273389237812241247100531438163058396406491340709343567856161593698674243067762645732671846816882071640214924494353160300320682703176279823285983739686860191218921447798824277301708831420961296141162343052405939106263175406143936050955118558958077496671670115036232844091706157729476525112432735524737256459958293611376906922198629757068632730732423667744873737801132305267412419899406561298669816392514007430773419376540912592931887316417510188249353956711318552262143037275379397511395651756699261203723189511789079969710607137573645232495379557853780644249023303729831591394918546194372544974936372517599419191602774202498823516741370843490767956251171126398714043048827603267538267280455331231207131993534331155958370601159505858469069699041847663631882069447154259921464959326123520203474309225064815363453213780768269156575175901789234782894345770882577122338985756249107715330044193162383066124503082036157509107695372804678007554333547652290608194975087234677083111854798283704433703553830127613252347868614306574186809670474878840971742281152919437456141915863136156149928391700015102814459394438543135524374355371043668386967621044082170137498605178395833928726996182775239282884584158058853364032961757151753456259882063007327315230239416819317154899943976387575093576704939179562585556323712054473813452218592956913707180052757043276692548289865743805426767789946489647210190961020373203672361554533584650932209881641758643980125764498791631197466259806938212679382931180046698528895565546840918078072143553829347452018544972645978722755907200963174429950770790083048699763896392268261154638164251203741448688436926384463311016137277778165627907929697778418110595971640073226046597544876839682867180111991464439087148107827678197288173322870945983787625274032097197348049235274040318037350519080157827658422040679627659374588498092261673430442683364978874730961335238703858246347389860298787269915197323314081675860598841290057090214275462671127602165377539131972468538402704239899456566436129460638266614633103273834740494155006745405242948196584753216924744138932804240039281744861148355442004907141861130735342347159742061481817554437720113114969359325064978548675489096523121361954445819297577982154493614528255494737345597093642699386184778055029988117242344246846045201332442279165623952470055079515856244628633253711172136089152599734652732453886253289362314290991443837660324014083782311389903168221369548090914895379257722599529779646565430436810425167072299770745580360919565890605983879665446612276937049511354611054911786692153526697034245581691362254036102506695542495237343688013600577638855950896461621014454322056158401822514409001701253479147046915820272872622830299942213821397675606657213818092708921684688926096728508746827062630189170864864510955788750596302035671993968708946652690208170121658294646190977450634107766025317332622322673934935276182064916692302790152909227153230213211290018844790806941622887935188729019258854700481607409542913117329715608784977193807385111997645072289847181287417949200857113426560342862934617592496402667399217977672367164804767474127810344296670689774445327644642187530398609334589909275851591964668710121260196183554251924768890440807963653740539188415504919386491451197863916055844881284978762914464358835914066103283129634068794936475094897627706614155046663561336158663772975949158322807022549621726808941560125584633870566761346526311467133607191534823958821945376483791291562743551812397412129984666411131957719584487005032894792027599558300195644571709549459131460521760076517409227688559055925643179802781207769873637274766206474414244723277250124956761780460178904558173185752664023875952848295147276078005838437193489290661172238296104969495222029742113748209016650381139727968320383190239889504430732778343300900808402496254814838206762569568015883694907926654258741120842432084845993673266006884412982378352987962233810382381287658984427091845584108442168488773012442912141759068249599082384257303041207102229236704485829676273324614923471712275473204463246527680271643173701248997779187497765573089361891379134007905955491958124738172842826252520922395873571788871658841135994371085630134936771303782290435964848125437266563330627646341455732884575772666622805665814582773254983687222642856015811547306298921535455858350481928823312492730526150356495008491784124058006390327941271682469300125477954456518262023381649680868061897134191223371851548895772057362542801823859123150359031580848684523769371309814099046354655899109549627093603004282907784305933043242924975121905560089450046250706705209413109409926411257739816037200781685899178492500521668452011043324277693113186844214675792654431540754131426585917900708085754960912716275934395166337953510121617899655313175557006338920914033633420009040889877907593293187691498083460200000011323013870085360994522879053295551438638686055231230433138788392762226196634360700125834495448541590634320919217807655707045943386273844350306921859304535367158808622638043734781027216834773464710754751221145235732004613133379314824051193432190287565777568410043861593086481696369955597779863417215618219416321986549635089038879420938787596792925276929200824887026091313600784010332541136107320688825351711852180545190206405594027841763771665252179975471866793184286970629539772244202873856145981805204108969583369530089140127398572051578007786954489201671027184326620735419193718894368197488185215387996782061264371963793817316385394795671167174689951839815694806799470155669158352884906417467092542547396742412147167901380276546294096438210560700115013673395959009149146316454311613338071699204235096646645038410391139435178009852137427158462341675851997528549882963019708154565471832529500235317068466774571323185302687374204549641248803985088604249765775288527376817730563504268692940256536773045952539969842477015426702427610405312139620343736435705485861976746867770829510275694930931950922328874928977304720674588620766141534744395067563549760491264730796176575254265328340163743472265138294566202954894959631692996660489766996857472088513363838161159130306048409777126988225580008616590496045098800863079292065393284221718242049935021614512021309981822724399560836848242131715295313918864280990312139641685073660826054429109303027579896114217258222246928349950314339091537784543771957828457916512745855189909805461874379136837467198190105762734863894039279170009976540495188190090563461119965140047366908707349438921040421411938422863033513800026289585866028927265523737697060339224784865165296027300678583752485367768519803545455396554045015183726958482656543241825277969791933348093009105765701414290831443047243347852658192966675408164052925252664640739566497845881847232426018390176142972354206714606112619432584308371348910110776553987932581805248698592360904814725457501524849233790815424643068908920529059743893469817024867358979502518665050953102896809769865028167260440014929556187209610520770626200191074498412368772270800958111490673858478485410669685109737957268068825078094325363102679422319652224556770856928213421062994880111330714181109600585165634946969181372219936369811161669794383099626358910592730051135122800352699376423371646579129270082817886765809397216255780896238084720757503221483523687841034148993285229608589005115933078454017136646806776107611351048165128136323421002076069472740960060759266623649650045308561035224127750369880631705355172682943356109430729834497487637110660967007030850602174518328875379538911633572120850595676327716796467716071233242591975492274648015563576689250027461447835501767883551057805214812737290919794730452717362071870204515845840157792933889354067983526794397114642609495373314000338608906611635992095328939038424996964038661795128291389639399250223692154174476719641569584057757592730655300009757694140234817743687920900297655559159676415619793191378844568709528530827762726576198068059053099593627737630322408129757723440788292465172799455812596546372074331360723150149432126802847542514723249047157202442423691307738197101957757031152242005988412599594099936868535108908704804186060194203298719754193652102892443735578524153420710762921230824925669710744339068667964409126826704590129641541189156297566129027857137808029001272894598578852573640601885450017175456868326142003503272936814140940411291668333399221774575675987842410142573967608010685783643223578112845588050676539866242574808089809303678059258366440374818476427743828670890568608275012119710328979091371139840359436239363282741359454300170327179610932800596816761238479231954883502374022673433563859596228540662099413548280492769023914378486742336243977193027519699084530034655785719306907942571198346168608979052497401092979787556897874341359787463910769395372971613939213496551424027687900111474094949127564629061434903021725500015067040557569696940781025813435102378624840773642929932584700813393421613642108258808576221501819217830984306409049131175829624533512154486799893311805027621023918722268491430257974704450499573614618543119644587321927474067612718439189845296115269415869721873391005813204562317448531672043197604437847143763231560167462416624809061030491466189548333026084569625825228689802305137222668084589769872027246295448384659265900331047948172052116706266282919564407110262903297904009161220423560988560272176004448059665390850454518535126818742535287246445087455806904552432326046183950631218796604520315337536318339904483452394419526862700320884843594453187018442485857367786507859496125946055515823747933307491109332213047173313120154786536838156811082456729458458330030946002719330079627588388792171178317068579466629055895673031382697766992895834615962146762557184795756740431172892151616993172171940534414204368416147542953232986577765190472274068905698745556466053806649525531444729350099617421266148624009706973949961634772070668437014672041025348039168512035383816328916887387167659785216810261118157664953163776323920361769587937114230657149187762442661657103029444572558247679862764704496548363158810048813920702855792522872564949071550528564090906612107875002192450990658388338429550432412107596568506547508808133938602871405074899811356202140662271006147135193584726416183396078028744895581186200648651470239820700013041647942079067525401730741310568588225605979845657596284850016816315133104202888569803917620805521258678398127797741965623584197024071595257882950916351983129057238041634035230252326316109330569571594958897095585132036425849644103323751294393272673494483830310995103508675121855794127515004239229238347018875694285044214091936878313029023217816162141386602595990336769127740858111349143598833296190067443808103150808891077198592798612561820585343772499294868673568499212188977653808528298586204046097842553775837005273771601853851754408884580380084234847003502980013626632109621433584614337446263954418126897363251955053289767403920679826832684351608299416727200482202595207565375539554026587395639897175687742363841338642044919334111507930795716831753601899228260735516485211330159012806702017752509285442509102332145882250885183891157164880763563334520354020770276679440439039141455902422628043449799110598275100243697497078129659296175190495303365058943332637015324963667282776080562814726779483807008949513497270929850026685091265065472345403681850611626765602356898822353468605465081086864406027235947203901100271275893976124513096127632713943519991050741474639627767230444710685734281801745808344701170846647007251574630191542697554267743972695151664640894376043351948191213220194548562765532834453265801336555549157198826122180032891477754995206652671260329099993545357116583499102059760953124546714509335507435594088978731885166740260017539794911311449151491731151986905645480701503768696782546165131703317085250604937254621029418209655074233846491304833797522192960925192154014125954044415088854738722466686747998017339266684467707785597317093772133241002712951083071387303939126480479966535908889909997878952512934274847994545191248315597472396018851322321426119126692973995953629472570838672114102630648555698174500747744407598029273501266878467554958458020257905010203742868801143699836841356594414590766425624098276303257845408546569925664289545099092259033912215161153780324744148143352343288913615276269847322399515884816179317061014507003903612829860927202888619801504143876169323696399790559870830913454404466907086978304810596003649983011679774162412646918354641641637894575997450293005482897600639747348938917149368932386693286192826490914340893324878820397106571759530474723668651696303908906658476718837423599259217279694783554287617879605882828936092108211834877956336220747631647431003680057537865509013901025230060296334418029218284471555142812455630698015530969731753266758384144142635128426794162605068765426921679078885246909499290244290298433887156030186950181805336821368419722203293706212582795667717280199885915306332676257816040323509542964921940866277870156294251436474461986257191233305470772584734527698575298989498247276578736473781401490943230829902094020128354898461405837623647898688228482602913052993710471895562210745695659209885480271987609396901376793952555322728605058253610481532635812045172679123536784190821768367308221380545057304755023844824764722512178986645472543299163195586694525610508918547616612003449191879475706064687212218004864513168570763107795516577863110955985114420096679118071027009780911741078354189672532551349595300016924141843912235433866513497782823919625162661221758670967083543826283968350356660287850002555109594771544210307107614181203349849326153192436711346916352900906407498216207116824564469013917269353635272876212065277172593707701324393575486786990343036003732682792930532765388362577148571164021416433158054902936776420353189350156247654787576429111235719917830910066168826463448810223154327706467586741700730162727570589905261882320306164108045526083887115315705421010705531462986832874991567097273140669853313178988413381806556495622120319664082855885320793592331635430493086434222180602051937364058535504413241706733815875628394315601907301719745613463682252767144551139582492889872702229043554746171814010250104332702445577825092775224528331524059971515821843951815389160840217386900624682011014245437908062163115151021713077525773464344111460017996939630685400500355301712510627000841426300319132996064279961352235456614536202740531076670176342041445288639228186322115163652437127844184248665204183723270445852530323230070477251849623203591659056754253977181480021241235267709871106366103908591545303266112789793206262733754793915939889164557248051569252685914775179844209928651708243747294052186175839148373638746898495664260200949053768742521061613501100346220245028720193944036483044368891555993392127040043490374901688742504592408602853331493595160112799188420644266194440767810145118061360865911231838594463068007503666871296012867441411975098459235216388228914601406713043814203252267909000084733269167444284125641926126342802381162000130911363203951348968454748617847094012859795095675462776460165958081202825004041033911734793205494605057347710978688681168533613522808329665624041188598289109792056858247384829306883875129821943258357369730995856737097622997785630721671860254574528664206768844462063750967140307346651659963214431977011090644160379430706053094584672925984185846913993235609739763563053764752019965871075190573829128980848413482053421247690467245017231458888636807270609417134282050591876861993501940236431682411736156568385314215466935801855547296386685673749979610254623170788368708018497448465797432374074309703686073426338399276002127070301948758126608405699736348941235646385344038161413613574527519568073069458964020740617994067828020813911251281355829862447885629197846834156699135093996215039199144035536595826547751392409345885940382264167737712479881588959354321901984845301325198295319136040689439450168512108772231174961142568306805201647397394009878390656457405053911475158423300917176078651542881691278760141276224341160372092047164622510374321577401543491529321544166626428746481170209262527752444507891507810725243400800318224935775053121256110035818012943796663521741549413264600259355599963680662405042787265703200362976746123899682700068854829632387996160992665957205722930016200353485670500424548229007702835156904035707308196091581022082905566699790608479690792889837258431890631396793788943888132771227384490411924124509993631181782986812741761477510245874024574453599308370797624909615118772392678344927506555681664003478133225190735404837466722726534873500055315576174379803976171377483086752828059882301764436606309082976765081590825838727581769712170676459987451521585749506855720624541754255378112640274302412365658883411952985113286858275034435464087353974055447283172924534849631406808928120048887443674983470685597718891543687286201489661287491195858401371671462682873997780575046687466799483943854376847599930380360094976168344839261349985932935511457409567266930284111391545790816228064176334097745875436742344960886469090388619476158843276074081242000800372236328777081169048825774106156657226067789621572709746395417260212933460097003704570936350472037815289465132226781319510732326286622539895534116950140917624830767490241564765502563445853541587592144976204988529032582549305782211216454869051771618507515989911342126625099305827880492359459417999825370536116611150200043698673326067970523830897312859211917408381262288066914904200021494974560630635304036676606996080047749030471980577472270507845072553449674589300892794844248033412137108473737471488756611463664871752845565742948801399682540377533450921193420599696521770387707256374071976232536654925602795013640962756806628394617916264885936317472200560678280855536248580951736153615039423259792722629959925066303713127443081130751469329136739008498487670159147156752170294205862141191264341299141453480084558166372791431196727090367088967844577934927733721246730533035343361896234428553604708846693003899935066642934720515708378154459718019195465455120780970534994167542354488041217138912425794173226537599855923215613207226179933660444442246291936870176088494320102624568857758612987860880662356496042709258167138059168370463134308865775882655199256979692635592074695736628938947060573657445084540913528895282055919444331923510795917355533887785714151246118959540928786565079000641008849224104796821178117583926816843928350283019451822167969754331711297063343118270442599031723379819460359801133462336860687713038444608792949515220804934099658352060957711441375328997391913497525230836774524739164576047673363690497612917191319418420554429863979272296352446765757804797820691013432650810738500404499144633489963730030086831015325685744738182646812096110419847071052312945798270241032926920827521018109662555849774214524236047058688356086492360935733707872687884815348421818588387476863191701060244868836967590177790742043242709970288749811596935066523135540793959805344805897251888430315944867885583474781754763001027797205432552845611093853431361416809926789042293688021522277457856202558231338866271681135844467544584021691350219877325870269621500096593922486450102231647039015977365804975798969570364101253976482490526154455865943130141776132008039741538337549245581898306609786752176645720797162746210803789473846700170898565480443874033120886290004438789567972429365306390334025472350811190861599772300310080332362265863667724457098544708691398538668829545767592449523617710416422901711445916875219806312259733916736311428267739725411266301933504057707817311968170910550274881687113280400353515244848594282739975218266382960503626703874044980813629649502345748659519335220579672692223658402838687879610056220687815596214804958498863150690863889059321812355881921974349497619346928404565160601812627694538601661065396832870316734527334597688418333654077003594521898554032837187584353078763777982768583142005520462564153498883633014368760595172003280248605973702269668518996276263791787526670245854114610444250089403398056607685987957894892763857403256613296156226617908581547783793690097037063728531056560255620026282969151445774569324218745378324181712738223025162884014007071885835013497116371306471931814807990761029250008261418865509000751745724403097515045363895039583912184703222174414003744671925426798079399906511020244724108490544517533722971440323346921478798867792112222316690692931210190877681311435855152116428572065333763450808341866228141783936653144241178415228765970939088516795936859286869084538509280491762882865939217867425363571310423333938805516166137848166508872024610778747064470159475465425160513576711133195802461932176486085186655286468656051052693054952173268572412325115113710003179990296854963790310609042605957690503424468854777876472337523650729077463247280321961842605212720627086695802711881178273657257610021195702186194316637614278493123809984776961925142595111366965187714986811313614218445733661891032074949696615713654940549706528653068305314553794510958187068048621284256801000682591837386446125695812584989979606683486025742087182658714610242311073427390336632316614237298306881121102627307293791718929479614234126996679139300336138514230562561683448559263938943401787239165808898708570484379462758883552695343135522474826563393264252780887023657821850521480503216067764507926385159974659211870360523539131895433884155972728452801905092491098273971256292522496203321963761442288292604717199759331164907857616223609597420402420652705253211475551386128273996028836867722524225379717805364353573582160413381045383449019241308931222604322891345326892505577185069146927294468333713266368957773538592217419085167910439826360387628773065784715974200189849983206484816212167318361131251853038482372632191972602928046737706289226200444577148367207302155523050140666130120136229279330993389025146706611061030229757390254250247790824280144200972979614762217902336267127521827048345554064731241478561749973238368424866568645655892411686763806237959085830080836638446083513135640409872112029635341211969986963998302106538255589558025232596557614145820806803071450075928489772751371436356222385015097062312177063067654745418326984535501637381542303849165027969745151434987920754572984627411981178303947753556489771171790136928264498632863786207192716160657720411762037416426827667570759383640959810597769524883416719660559319350769448424512864644835121943515988619341493448460693328487888858183260609672277992420163462092731744686481373836486438895063309786166853795259681549353077782013472878218020308308322433933993375401097207080066578375748602421548686000431435101805330199426772587403632546824832369758938921038982880584560851463934472274934865211975153610214301555104477620247677228639656304661761680251083662120807657911585243928892132030780492442806617732607351196844597428352447621792899326209327999080052594496392305710219062408730810052553069690852233208620385060222843038418478100941584034001604504587401993565779712355116075285326189084654894082754859096481116278970994301484905517678463543862446198600947344785803989253976779116482373011535965883113666972668684318564915886305252686910961973590607968915253474813808880243020736598607616651210958254440917236747784627108671462874005022257273163037555793069131179574505184996389669414866218542552035696473118102861666083281802728916716630562354253359387803732103297712673602737522392106380920889349660598327430071003895516496493859380882290361884634748275602953744556794450525709040814067677393220423168725138349440085155927228901358600628191191439071479865041853055310981872238326004671164443575190756148464227943186150435880500085655284471564266453806011200346166790602624840399493449462222126300561954503342761832485684032500074912106542376631755064213350996590915070793126576236662275215029872817145549745957484069171394284490300982730144246711499159706749679110155471582586261690272763059107309613128425701143833565637753169867701389436561642340230778988026071066668842961461226216871732932950446621325060537289677802502709893812908527702611961634103334206821251947027429289482053335363179906809654327072333431910041940014324818530307484207323147469788856850492832365164819026963652444976477190109316289859448359972870160393773739149870699371917419271566746309001019635046471303393574639911155894275927569609445613731632441075499963015526049500537624247729592454840094818828151233402735791176809649351059378846784812038403889084673758164895245124784337570445472035721901740846308697938578097863298911956954805708117566755028606214732915484616808982049593053596553007984420402265373736477281399455068920976176752510155596606883406420680711536615603481626956894714070812542647372307219637479938409572272461582197869301031798250585798508917829102704854138880866259379228688874057505494795702807194173180709526407873015133202146765096165092056286484012435744075956895695713445917377904788607800433836162954605549089906463576840919822316264488354649112479211443568000207648284370019013599674293300404987791472709838414167945833817774393404240557672935284860990189881441961371925729423923181486580769645206669233474306167774934512898901345221676320518198968625152260170528165753780465024510890858706124288832204120589038980839800235493853298057778624771839474589419110977636055817809858198925122641837083244781300197248833424909284391099021384217068158440764239758120662028363749262392652258134211984225848834528336394869769671717795973627572963690765298975761841453127844365930215498062842045367280198121682546284906995910947951169241421002957467921310009929296061112040266647207293203105159597076606566067353940954499652082272473748602309116825661505393832087025443864277682661956143074734215778630394362196921017841132087419033010787052545748451583918838468104100841301453496486286970139969741348174320748992399493245123617546085577006315854036149680915721616417759015742632325579581315180362941069809777324107668266494960929117574794476136889527649722934549213915778547487362131966797969119941604560922772643180411577493430633285893054679051157469560914671812783163540588353614545039827155149001069866067797859097925121257379992458454130045326998887360306242872369785231787445429330116052726712753692609831480863735796761007404305647165344876746125336977633379809269555466540089342564994884560108110699543202110890805534496149639493991739698632733018716616822505126845803879913756270161685322538351488440560819630424106227232741384484531587877082695175439133798543377309172590303215983151089717473424586429578170309556143503225650308854010951863877879112933248890507364239031311053469463455983725766218557758260462725995337996969282451958520612822815482544880222715390297828253034751282612621006717300160419423950673151910605421823002158361070758665781909651059662171899726819013351741784423891819724738181624986270620489543525143380884359545321064523179096448133755084891379533550603173620431416354421934543821738867131711916759193932030443357207074198142045186197323783925054869235679378839961161219240309794700788536006505062322438603559557950207758344196887794523891651202934489267215873126851546618325975651844991118759587541431316681305361356529532362327468992347707385697126082415406332538631937145814607504564744971751512401348537389223983700497156533276583493317813986516875800551459836863594259911055415921502404516962096560336562275001185021952967974072468132087540473559327143272482376762077997944746853768515411212335729207631435408443814285173980770866873253169205231724901455834671494405563207910933621348844941776553404788269271403373223074193594599658053424311525939917191558533353039478739220471223327238806411169229330133724159745552686037398931872145542873746312231381040153002207966054591239404025215701989493870153299202822792018216494758147523384990646921695575010962202021613447197049750973777883875737379867998907479188807883112165551442404838909115349119228034598966072587943207586784959624624664088585314839263303379196279556127648738301428381907234219397613465479294032486196925627863525922212108156557869493155500142444309645929147819323417903929761976397872530939557284280824358768315830097037112710916559657193741269223836922760885038489288823377152569044358217454128755449556198336404523924813613730326050960235719136197500125569906155663818770242587139262903483953447655862829215832519074325602852239033178347726479888563345838128793090469445760553578460548185683269828896772863617764204233427293371990892832391412473526620720006402228324307905784889414049939906630413799298230464119214055640800386800930002576760848732990851397137920540091885190805714598587734294121836027478434835951572290374618578724080118594778396397028193547508284982062912325733256659888575711003747391709503107093568904436718196541751193544506555751764760514096287520921622240901400954352707366105275136713695214042455425028455003629458394527588406143908859073748090807319534672189260682452863963763087080645920263849806003516145487735746193361354024415041739170619593127152663757309289360429587183276647254114661615377983716626125824877547124964298149584807928186409586344214539866659424686751803209735472089784359147916725020123769755476757013111941642440153495802785476968923178287307433709704116336009243353361245570385144587683251131868635704308298347215334932130112782211006730134261191895919935524440272216600531066460919784643618499499020990814474973121508972653294789315991894025659548037066035466907635895661196663662862459064682189081115784268845597150234114244353044114385222675845709803013655939122868470079353469664792365622852079112793442101007835885201566026845818776992104252056609665669318175450176995326200408185593493951063075979571567486162421032671343537106338619197923530606064693965695647379871661312404875372620928571546981126951089688924842674694444272590249200649060588284363315128730411562070829996741842652413858167453380284538236901885527726077037906450949267599073226720830125067088000643646007525091783067066446551926059771933168492804846172809305035209614668391293938191344444661995998952211033700604570862944490470445209167198379595267416285473519348669408340006495809326378464364107486887358945037218534235649988164065030662589357870033464668442287987293974925388388204413990207850465196251109679723283756536724952427201331180130180039850641153896307438650083847223009857754639451490042963745837680962953648448640759224089957831436910165981308047901787502669211770375097447043224230927701110206307981478836484892189488466430058398662783816587518749403812007737414347782145446156993173727272196757466837386144417962102619615980736606546696686855213865962337459428818293591534527378870653323409619459206077661533981446445546544696639957741127334231523292867841080955067765118583231655910031174053627386199845955838762269758090494731076810970216969982898429579991033035115978598579283080903442956575441433442460152040056392347637615398977759496711061599272754105568588158333218784954480352981580370503744417820834732025267660068394202221218818501156509254306447876353403720235449407468983592627477615744235375873011161073907950236330058470350164286856089705849155114860120389149724010303273800007614468428022123757052709904680752937086076114747652135588903628389224484224682797274510048428640765893173412450502554038943939474646075865614093739784117115163974618226850259703175830967145987639685651597952638613800408402104032818401898599340348165939201284369892204981286979075913881214197095438310839088055159624577082154163853537660898001755207881374770046662503173782889810880047974078988719870771978893599686892806295401101123702171420552037469251597802217531218648414943532623376011670843349396696921186995780230881249247167578122235603116504567730479479172927836064796937958532440102900064613307289289342489970458053925022408744957321499449567386419314922270467499453012457440763148772428771965830702173349174303976551957525047598498118695543706013752743091331131326212370449956807581744790318298701707574635455189973545723876930675660333649246130672195034290374864538399772759432002825040621616584121290277890823625380082483199783962157722051111427521378880226241231103005149131565395137247837716870744614216532202948454294621576408471381070473255159569365556625920493904699232216122346443272304317559813027548762701277070663850791236540288929129574867430275747948077309833648239316447522493028761607310081625478274374071281960941455074620229991741733336986472516764317036715868681257779471409953738484563832355733323320025553026932171961780266565487113927423752613000160406111623374459694656530641311017451980017819213915097705211627398774491651923239462035771366726699774970239103312553016141131862947112443832140614068014527140047811177685799578767791526837853881406136445986263559791496735190162908495663652102422692382067280512951707036832707763532216559098501300717945100946584817461121390396294524877747899453969878883456572244974697535038921644480987340892993500171174354810729308901074317797905021064996759956501726843674844144904329965686943157161959346929622878236657540103117570820910701511573656082969352431267849805265067668478876459475065816166398646209272409643978999261770680396066656664279512299726206552150647816854133372977591604164275693748542847728692012114746000419637373022528800764403594244098469175511033273614785179421634026756395129153724444057713889981031065959127822716963476276919127556363520791916780898295784394039721497476795277970077491155614035319270383482927439969377053948660645177224717913354211805932975644336108622593368458400570341069966498659117868776977699660556151992828527571320476400700486872056530456356622438495410234493344690737377060405589762070647557395783479991487220526696658766516360700148648685302604931574523076351579267952488312520954140679061808103952551115536019817607177441313708267680961304515690688825741224322578487618187395842839006918818442386936499516090973609886609375376934636001119659445079441005151971669631092036122361264064918711452055224324247852954972012350882363536819611735901857645233226466116909521576989460581417187049353582739079397303819838721741651432755285849592842087178891150025075005732059289349057137690674926277902204964771132134469249681398660535473502622285713374387487240700984365846654458883152763446760339907801886241320276971453617240401610071831360744275527588756533772905961459554234824081614390147512134329632450356976391401967688964345155796045811485016278166986418980449475831234175250618133008208011395572611309062314191232628885372351081215280884783110638450282287766021520646307455398903697029539911336787440005788237860022301416996830880642453016443313549945232353034260457511978170167229958546134173427092158849575096205322518257605600879641562451506860912994405834171263145374202569818961508847680505580563004419693633397790337085261072287120509752819486133300091273556340768963419437510794234515257642996357854871851086921402383229098707478667683606383748047608057721282406612169210894369580582166783209825689310094339027510280411487214959790082152682548362970145867236471936509785150600011577649805181332252706061323807786502784109011421019329785598408010887401369413402920527565802552858924227907149905391188950243696788521052153241837704121038318504938094402561223219295429589211378438530045943457318819144459892173598974462315492781485640801855406400108636251447755816744015542849880022357021508690427810646041786693608049199307035458009654758636126330051509519734030011092717821878260744611860845609420053092578284280312211700940408023814109449792526341668337627067155373136217063382088135058529979644745619450060266614579385785099032422302447263712786680487764173041468611270872006712891977910650776517975273598053250559621583248770876781129513333859575132140835038281748476931751195978908289909082214320184616446879899855694975518140979974792586985000629502831624213630905470769695559019068492189502231329218391820969483817371853597923651591374160749814493205653946004689586222492512075312106648067789327416403555812843810420705117060452351520337597927305506649080459372057811749862435388586369504195328194163321142702863425628573568519512582423725680893362573878456291543135350509964860877009824891612652161678496346850854209833709433890424432708211822709139161182763163340535304921441379579711861540058261673685898073779135718381126054000493092427427693368145507645507497105679231083928410240434928235048387093669464231152495643789836444024435340598576171458867725945353044687370544022982687072055950609033090527803461487766621432468598673597261212326411682191847129232090244081462930259508165734619902618529376623252241933209721795807025060586250275146528825814991435817747010177694661920593295337572469158568364563193972540041320031959738198738239782139104899532074944254169733637243111833938698824501912340854987117662708260247515788775784969976172382145626801165184637311154634232289597053147312197995545827308477746512927853029619089978861575864716549910424239725561175485616467356543682462307774551052364170793551569564130878979051057370524550621850547127504859002556759745845967729854956532922962793957355098209269735079566621032418822602460945308167179162523852139996893433935689040478692489705166677946314743400005592910689917414010032185166732706231310732618885504353646148136514561947135622174270070624605703152157572225095720914159167093509447379195722431775515448414062256264817092510050416382329894004002069784006113712915815102581665264453672676688038387790291606152615667971096179605358290563061463250777289840636842021764623088213605485514921747509184776676954412304057409578746393757223656273089206788067134044355757759461115922027369898234627505229620806366347603448501218784419213013698831668399455898312766248242457151543490985211077559137659231400436008039068152999321801848215323226582236836467472379431401057184290559865406123447903072029067834699006948315426878555114068045122861402303302427361041340851759764722977596038230894116749029356357778039374096791445004893501437079869670607086893970497324043286180169608171738211179479379239288132705566131590238399633222032605209884766907064624794214396292763690730871564408848989705760151649942038856783265838779034239992467258604135716933978506793384528829988194420296289375746325241495893263113979685185731578495982214145158555512512896026928279181823431034937760585053828039707034218319599329709444587127002152383657871493816203098829169529084240586260174836792323282271340352861521977871138888809414007741508212983557024268094034231896276208085668353801509876438879232657153054799697584056053167953029229641043720959314074795010798738059706865415663303103402511717330625954187660710718845394238246959672613405331455003500804714339228576266070186693911028714513207640120362453490695407847454886514647830371094040905350248769680840178547576826956698437974313225731832989918517513465902658002110018873316167614980426072198637658095882433255414445371586029845572061264358758369914205350808591284395836336807601849658012222232243800932050829572817434974974279213407292955495824365512422476576615604806519198682566502767998282755990015052338547420306797091330616414445780655199663517880325911453534349405370407513907264218575073257789863254701885837687303469309036880703970995531143910839241881843570167726516420344527310712654765342228538445649070695444217977780191577379049960554313821891524696494849185640558078111580958693713518623811361921233699333423108497873816663309613786118888016702312272932038766858481355436022692671163244653504796742902143419709786727764446574462741168997540689727043284609869695415584038496163970729115652942837648493080171585564811862542939133699270238617512400803219394421992786458815247065919950582145354281863840546993800180895911785297116483304769494787464906458999209300836849801174242844818479437766239866726669704874676521899862771074275304429625816640073812648185839201009434857843138029667513560033348200700540839996440562280524937253963162903300494414875822815456860167865060725304749545705491711157566059262443248007568555487023054432313553073633727469108448485212080955494846585250094324180244538924929812595435695420077947582695985448247687381283863408849868790226955625320626677625835990673406295865583501517283173948798817421521081070834205443033752311255553120671631522616311811721444464883316549603664137017417907046383960000110024606532829378699764655507998603533274549002406069015657387205698228256694595090471760489098290988523705985567061971863126983732755332338045277652054406283738184515507521960322795627510726156784294326813386269986584364883575314682102965686212378357428771628400910360667552663648367714567134728175418174248612787129765821348481763367274266572390288535849950891077935539408144184419455264672746132996307196780881847334100841348725347015452806336342520339360277223460314979530660041657979727102059546411557348197823977270039314923029705595555627401523387716079410354747899798053894922899590763831652656874344478064099559530836420208124530828585072079168467236103400161216138659566641453752835202428978168514926674713530656989439043739441690685916887605797270762364787443670133725652713683266144542836488954635612112880773513700393024373223731952855573733211747920713536302215924209263880224965074584543233492791378062550906591733978281866305423822739665771993290563665186048880929013299021040415232863642038579828537046787539712581035791188218158353711582349876315277095763442231617639732595445003009643691476051684676991958670769623090956297860979325987587659624747344953239667753712048295568416475214545719307005494231186878289903551697253753931773250493960004418020012692240317490325837205870562164493573045503472946167499927069659064180896561534731811442577730797635348654313157247951495355073182954121007738257645697536178200036784650436247931597734880278799134265969764525857554166675373882662788213310010024414231262020592229474429307417984854485399573574838612516022956264811690708686927853689270256789264619344720436365838851586921722217520750508230923136067253307294745493867891742108073434920116895337338048230796211535884913305318244980618279491145013066756978696419092454758910910265019204549819119735021052240297264473426580152312243630601592885446751751920129624538722028584744859651544583985666273640350196401392194571585453524835903012988473522865728490104440689009262627834951592923128816864127532174275386853508654352423840811330832437430081930411662103522852225629169527728912859287744591925141751404102194082699864398999090806574354922767854495800276692846064890292158384693012869141037852440441887026866426591619392261871246835489174630734619478304876547802425375379287751519753335553665381699146183301227830402982765793803056448473042381284833024089391820106391345563837112543173063772950735788299415847007075798734682301036694679630197780304803014135708870195032615978224654876244365586558823359224625252965540470597885359688006090895135629113056408997782548616953922820812126197646957823219276565892504710318811632633438661255478843728645496392334056544676134100344111930077450400611029081282482639032835861622268834027529876749611658835185389892770247509527070002097868653487774212160218758863249892529553617498183518413505706174741083333502680945309119764477851099901851244357432735389999103574472707686199808533084785145048235903853984965747596966365182043467636203421550421597292491761712667913724433512698583480624954893852771427322865065177302233727090588976799048397638101683841714457445159169293469747411775881786478879169163847928947686562763366530608263591594738161971717494533816171398289918803002125215347956714692561212135574582685955552319393023976497694935477284225942548559570097190568405959875149639349960320445705057160775652985787200350303127984504124233234328315900691656640925427293063762888661013483740840683293015244117615486095765228372799975759185676215033374235348352162890916972403927185496664034452095192296702578106405275191081572595802124872764826672258808082756772818065216598904251052322005396059606292067709502339242502763426168214949356112594542961120538663170966119776947667632309893475070066339899335161035880081189888869211868864075020274409469895780906685555331564018680614621321577256796555857656742175008691819619702247477329598130425679955042024230765777625058243335274131778194089906542811557384672588972180981348968295330317017417774196137345776773918451476220198590232936109297437378785411037589470642184564321243424851981858239695153580403777429624351062888712818661261763539113487908766101564666352787177902288565482268736699233731611769908008171612698869248262070096344412581995254364357252714171800965150633969200305327609633177769412083190859259199958404774850884922700994361028772182279087254165129363478875849801862087184988792154134411105606135608709834433397420659992980610384945597305127530925069605204074417966325162765306175221002523342197389464622059314365540333940197669305418199878147086971043094398646338604984812700545046978736149711324221251583096505866070428980983883719126254022848553982972066274141665587675342291079118324747560924921110808308083048235963415359468713069740396449786065683591726191777429309987365156412578973579524478684444699738672018029519812454980553495957120772979987320687096890401502819418689265204074443917296116687642714846309037732549816742567270565051264469257871011589976720101699124476208826786006528650050780944384619148242595003022631952131436020148747894385225976665772104137069744667412990539528797408205714931709148834108553854900631889136986302666178882640241225917843588539511608990017451052237343167279929233647098194374072060945898390393059714776606560606890536192345672167263844894625221956015806140856912076383925830175751405107353080992258643523686842693854441572732541411328943164626242655873436629308879840414741545682557240275949605077883760450234689732664764993688970727506137308610135388544401985208507103034694763208460521537715365027042939789732802194809796169956988741863864206094052438869340560394683515874145515074071414478041551120298203314698715673016316161699752161311671737391456977068535217475714579895901182642033969196270455882126030027100130677244762333936409100336305318941775321522524567733019455197745775499764452291881709474999471591752471712978851112488681464258889793931550439751431113526400376598147852966471433826156188832071057965005913771810683148540389785347787139874512528249948424687945903135877185851167577441638582543554460184126702478098102207476152827829883836220161021162358260545932011489328467097342091092560642163411977937723587174588166516936647909913070790996259643562837951484765740225299901583536305591935463333502637475015218114794584627978587865177691936219102497376145251191257979235917892346530572990046960428770277095706682676775446041718413550526630976401891327857424240837499322504121333513800603721801772376580542746628587512634268215705882137430962976057942037918727084003693467531462405316575707210413649692807068479365104207230197222773413675917001705851135454992644844102373677179983737323394905243896462632322652089131039629087144820072871049742125965377606092259673479506796229831652811873129016127925019682964236624050078440310081167850735779211186045910806675038102496639742904052763602490896880660228371567687438248183719392568377041566391854954623598282136075932698558474732732036389218555988329570455104311913075054477673277025636809095166051050923313792644902992970561047241101523706794027191060106385750316287791603305771409479923894022400743395223183658059445280108314157470702868244966535782363882059900091997839316660675471462642676656744115232881832748828959103250280654524055799881666211899723925210633872547616364533588564873937631254814784626133457063466638239527949514723913025269521581557186443715567656125261008546896511636745031051976375299268090961548006796117350695460250807164918117164951622796421465573783865239194935040823893279318290772525534105587122846209451917065020871304960537312816431878098946870655913784124138607942683012173441309080735099230877496934164014689938365398750100246949090217746200596512156574848927463363246074627087180436278349883205301392964631668462170002877500703354168974907614274258664028275707620294455276139313117974599476671018852189400716197772107581877988108338077371913958036190215181762209809891513517728303303903006028850167771176550951376463699918072845041862479675786990343658404224693124497472227127958554725006486896757444095957386431566305518232309462729783164501949565215676793546929954451283899898062327295694785683686620978076938602025402815765049179651410944773803902315812776691221971676881345143055131606343841608023719630592481498169799939306287033308985774695911865472827991639541720711012051579885515099171010426444903831391830432890513625061650397935933345538153880929716702074795400659564873475501659222533247438330124043852771428303239381907198643047503370039312496415743342695441187173539150889425728961584930460384328714037400026783113082206794776028334621591986922281700571674348060896315881589359591592954124861064968023946476351709968475952639794257710601495010904422153000269387827913107120627181839958799697327909461851669885326646409130500675033316110212732807066346870800305548428151851789277565209290440213939674772793959964371430156798021468982465232742104591291454564832573427060048413709355181552846625580478573229867779066234815640565464647225290880848285986055140224044731958102150695483797496210075490470467624680521213841943383111990052753394296182758139357717162397765207307083873158628993561731095268926765007282036140959620631889792251689308459498430758589695506998187759183879286835721364312619991501532396761465685516882544153746831989840645292815172957014151091068966700631092848705846295694983009651058588870550673305287960385586651965797416841181261952287581193612267909562008021824234771242475718753352538271011381234268373343257556656863997413383611198748204572926032962693023774276716840803038212050843412248097399642370642017951808829956708677112745130528869631165553697263779391671112852364864599088276247763019882078902187060886256786822952614244116409423449579808648096611840633989913684808064066060157780875206628615806975112186578084894503140435406251302654556593525792409113741438738992912884521425618510651071343794016621986986437970303455479746210205898152851438237839396966900582624588998479792339209697715878664455934964843378348969682376073649582249252087019269874814875299895453143388114909104249341948551562810654818425733225815234344980983994713105165788690123770569419088545668483038974907072475792575113607134528037507994117243337208281900305848141412414654556264424542551243821102400718893286747370906574361099249072006853607072856843663482131877326423274740490933647656227333226027665539487971803996112663742257795742906529454797058403871951781227394904566476186174450560400713034918600997212501601127737606139035835853770676492615655120966649673161463874031720398128394741091728246904794610003070878430084318418422209266329543510762941365205662053838641843944042013924818829450078078896813314564116513705131820241603944420703112498863082280503119354811975356386418237518776891290249915050450308857330976699537701114916585534139676611676052695428026771128021241540215213345660376726946956400978798639913517576724391602444744273837161881508685056234381670130053317160499275244756162208713717644386875590449596360980369910429100466288630729993002109714898321294623643565779348733001547180277976730925378014859186673140608129167391255284417757310383381388644684580759200675549329045674871645104803266882633768428789110332381179763625551443007698446465400601653903724868401945822898212780366811741444353319417920453501888487914695684782893646953492979861976100601139490863767192037324997643995442198496787334558537505587611120737618980099645735774471078156283577665014789446740151282836867249669888477691354242344250498598151344091362533715504782702590522501856748506897908691948337808322328002512346120482784891341802276046253266763669185256665786440358868137306314186325150130132092733307674752158880588835614727288734245649802447428533187381170102977603230615161646778118204563234958140344178717233896136335684726807894529529651129360852753412669405915812550538751065592750479029566312748161795843950791497311380472511863476412593669226913982460139790084379452140870107428134042370635668980647572008536465459814174289950259117683379159259220995674898962284477479057353322691151306796661882284302228681320024342630327467373426239354487310694683413999337578322081286044917837266356095869753722295423488348023167358197288315606919847501687428066664334072361756559885807768836388372221928934774711685997313320077701234092344933535447641359431906207650968771382555209719172696350945987386635995204328402073372946823626787209957465221956600926792779317565185591905350235269698305842234880478755217734270346163391111371671746998198935185651342826322525634453992258455039301907204433298084365622489528093080763390737087176927014052984703236603942896241931265452535779466941648841862582910470550801134326295116823515744689043500676610040654882336574408852833268754918768449435629599932109470142053070741631242663984031002521978041353165641089595497083748467631255212348399944972731979911914768630687079869263195854314846209632511426770762899468549371981079057285058385485838038984374542513185749822944686434553594798016742760677375870682378133780860169992721463147558256273115568293458145935856961228752523504933355768669237587873856961348598908402957311718207452171995248295948994675221505404281465601910154224517059829349119860644379924463827885316790820022272766334754843525874955029177398044001590967179293223076085177396387910457602454272667641091082793012861301557090355569118672481865337800552136592999809684765968274728918769348755673373228299963062193980217322511401740654911380604908202068398797417493264101399340728301262161016183178983904094802677299536284629454907781616549318221532225821046554026926213008824560442235696376879195478269866667986245535586567768857091789206024516457486475094413973691209830892519259779080052402987850890281031608893196569770957099801710533926974324945968813941665361326556325834906479233761105404009939471327122025522458743773695769365277479143975829330180947929097022052276780477490228994287212245062805936926761779679712465703298626299123108017064504626087568821836579840924282438292509298655466632941378090066933953308178137298895364992622849379254714084071281550324765954865875410658938334468076090820870219546539257368681938898062937562671384567191814766942734981310130815703515366216819848035583277900137760455174836173515995156342257081148645825024357350554864290503282490414711888621100203230929496879976354471846338993296752673020373992111413555980958328453871239444548317480496319225409346519173048060056101041497702809323689578628376104149818188522659184911913807115914746452705045574771827534131951713192417840471931429829390539837921187182266784020992248121839499246810313500791747739047844595473591102600494235499671824094511588085421793876945057035612273694535157606224633791324413010527195323868748511708361346431978636712096055488866543460997821959517927103261816511513656732026028818516681613931890276464654440294202305957283867663126847339101770542718112764099195552766404790451424950556597954473869545595997429356200661242968636856398031469055224297524761718661455621127156197919869983659977856781707466927893537594504760009364003303378402306756092881541370259550018514702691622483249998460979803334730965030450315753483372086925556891323644820348809399814803532808583863328664421374270030824458399747489129353312638088866053482086518806656919367305692485274246511677935436854702883775875541235348883708929947154479866880027912391047104390262057586571352938296178586685483213516310572476335011873478416843546607802680687968927703883226336529777316563110428940787366397036299180247102046360242962575164075804602589031335925920107851573435005030490703318057179715603949793113070787605240397647533512492726382816709295499163963351658787734546711584876715103618766991404596337861478405945320689100440255837562313754577490138078816990064264992617195620850543082492685008914826403454765244682132847749044445801407251477705890365836007948162321675888434528692400218535615260114682554785362212111413893713022303139175263662382982780134420492840639667323722234286552454843251457700958782512047791196266278756235461215331387114552048690061796519576827873790373448608113508579345221545272276106102967620486311341407819658339902118804956321691540953454638289218268492476455595010836808489790848863066369492259721135660611826997024814579242018710222429764236088999220248576804137918518373744268975003705322312664548989866454301186111362744502383640480748327780773058631309386873173372650016011958990892040774997555116323470966923706157456542556300269226545914173866123287329385046192165107930695005329299640685005758737464920352170567800953099550248247827189831144585737546319153291548088372920327896108147590642214371498434565548510929861374640576706150713070563881716142586055862490180616791619882095752897835870925253634529815834255692769223297621750584853541254214783156634784479626399738563382244118061152677386877011162004459616581481496920763228679186726661624472549192468452895389951718753918869407658486005281674222610137336501509203262147727136018156304902551532376633255331982835170910844156965507413635317713493579628862814421478115606274901738837013982963424046971949938555925314347316782898192378794723907994695962149783654557894127913051695045966014847934450414531360878242089407016161528658987401344713592635250236459568055986860224306351453759509255253819327346872886828099748877851840517511940139161227572864679793441510508203919661614896251165758397928999114973657182205671126502403799893575803829959728827512195413891221142204080982455397214406153434835969560380337279706411763539523144938491656908240745915392939618884759336403262167997486253891463691121426606388156521015188369046631407377147453683751946480681489241620637966843952474229050922982165670215165079916892329428135486558782642583678649285198913083788773808065512870934459055103306692754024851422250797153792124378546279429702268736874988713754627612360111122878713489095528607327969158978438891191095361350087681663261146191251030226165463590253701811332159287192283742431554785889316524543639055917349977969070730914874110854949618326877274129535813042314960497132671199822143596572371570632106870944330973591783843391255987881156011840443942130975678796813140365594231194429300540024199416084220441344985207441687522550177791387975069065224996311561041888354140217146758469093128746088230825327808570615544497401500145961766719482269153741470768224000035614819979859346357323804588016468366630789752826609534355070198439226951257416994852686569057435230187583142144876415207160339887807192671672082378304986906298167535302785683976652739638785806755379329818991014660199404015784894450774263952595078205143127355131510010045566632367075859901424996818459515214745141470461770145515420279755358095577164849140361134471779599161602997267267511382792756465990492589566692270592331616034517255514403160855457434766712327713446277601233873419990183755560705029548080620005830732607927951419134158977637271463909992387692070291392756346144083820901184992034149047866658081606361306679433053332660415584129426487526248088307354424706854609401882129017778793940443789721072450151126850891310928661911540823934051261094122274841379280914510590783851680877655903119945859546495665579497503288983628658854925330321116067153531791430227486414109165887631962838550187658370423301311702452142775919526278319619204581938150948647761941969826205497643581052488679282049909979404494838838180909223489456093211207333782925395762982147434985741226164209699510639994080737183541287041635480706685772166113367999126604953759881105505000179124487594642689739114187033806230098697552128961540341420162240227651840059104935880444992173588762884229553956005306604289014031616295570892681627379058784679275875238555917662033605008060315041906643286895506107985904978147504692791239833747248906529123914158405497218225537748000517533891669544636519708130471230720040092653285507924622719805736047490848157696338222421812382964240562071675731462020359291076443354626921136701100609725536387368007656032277931583339507779983621013055226024589096496845723004946105954570703549947849551592339676408341380309517350008279313333668445083750000132805733915636349865830429913258335128262377474674849168753156880280138506335484282125791933049723755981208245700080563142748118867508989301166796367113897905264532079854592128264033394446816695479843072466207879872026281378050807221454286644402746966296983573062363450487979935891917772081567494459371805656313748662566708075482115135542931103830339510506148218015813116903717902829290643553076458457042780528652648048142806221167125264591801574589168457645732296915827701561597374305490172631080959811272490574140131337734361607236541058452565181712621126918931916285661214810828603776827710710700566480797746239568616009553554842463399506546939289594442336024933593034973362700272852211354322790907247653836967014963196237833963061976351336175572574439180193341662865736150377532664561573938481239492799349171532688025418462087133432497833998860861443870864497474753663884104522499887410426930021502587972019092713147992300725446145056715349200661165633075328131890840694524085325581422914716699498270116008979690500450626224526290893488953942603579225291576656758912577364486849534918411940393860004734834940671423739663910908149799012959991536492113593679300242536951398165689169982882999267484413229777440518222633286434742965286537082411405083759495813370059817319509422479481837769533735896311193121613507036036966393897402503384546940667036512047220380708358239667148422307685998840123383111556923656657879847954436861771976775980539474762900137697352576313139895128253896371991184360764923603394986396746935467492719978328981642112225278868153917636021902992571186033158859370285165844002058841077072808916313736055806203773674739689092756587132496877694008786646936746824615169357357424839765305137036974539388322269119911923567312656821069061216907169427921995255467424372427034544208340437087855020041126370931313010519891708128634459374571497072016473676168546327366460843760139376953348598972759369139570842417512936489447897667503572924239555836724664487354586931393001092923382857389441421355509046435293389402181957564285203295690414331218945831829904889719496416902638563641580473358213633578805880229583621018212696900926520713507366192828323618923231967503205168885634920985561073687048621853377261223891607058111553719523515935934675010475702224628396057740397663623953742167236906219704212188578741621035873053049016772779289754895770029040951274342564273334691007568514905855071591265741300575117144198684780322258222282854027015955735420504596471635193681713892062370403604919395300193641730424250075358229949319535691781636683478330896291166091182539161104623726223377501186030543187584241656272430320486624831982588483546714127984448486339289747020977309768734117873721089861555515172728475075501180809647735663905439644744574090215730322558799194636866178731807826604840889695752606212699497892146251931094253911356659783380156893399202938209276200489514295171082246627109358461499206063892738663153733159136863830735079990290799059221556447392112381021009587053161927948711585398956188562689310626586449984127793920120952100982948023279131905124719250415620176439867957097107754374584209791864322886664038723587216439410628059449080953652768665136657653319166228357419586721234467483696927638504653075586657915106420094936319268854257495742834869109132088762906538029643518488162564883785955349925902511194743096259709951767507893508283138760398471225694759520483848177633538137667204284866440251266658412743245192498067382166899833731911034514911587932041301352104107099664180864474915194810214648550110137710065115088665997398831958561759022130749433062442071430768026379720483606525185188931000883143774798418953920642553004563321810357364840976373476900409653604057572805676143261397158925959835577004598530759241850569717276772808893476904230557127992240080587037055834553698264050030147761798966144319474892337528020562457995013724130889366796670262523924258601612757950530078774419806145677372413905704104775575681734676016490335826423350104382782476011366110163914819338910353016378169923380383124350541277642859358437674898300100146009108685896222215078791443226986518275302162057556693523684242956337067636401029825532750773834184763953554221362492105481083116353816200147828854468307864155650921048545599782475605156551847922384074263057207255951567629749688213995365787163290025699044240768303981003197519221520752475234208398295051131440737706246808160846197514146122940540787954768004975369979134804053435332118016885718105785565695844836329814053737790408448993899900554355662437643955120932740868902905015170468664217196809376704334256754759908830494120165531292450138537259852173344257372488830901627027983592057060746922674522245710858801684160339410337159563611397161105753403325086380363815908256830244727132491970984903483663072099532812909481919578594986144672174125276258924762057647547526794734823890715955481041300560372407053190712656181684240769639006219879030323190448376509047389086669761131867073860548913073685096571232255177643791534391230218650623870201776574617492933815436230194643843674492026479308121940083252692394854593474291578426276162937595214256994010552579053896565567061428748027355232386749367022925922531551874073762289393354749140172039159242087842052352086711460916011696078331929422088982073188357901930074045585270555054186831730783781490190450821190078435419642782700876916672599976877826904825094351200931395292393163510096561712367884914490979477327247484126993346420706542189991187324798433351602798283322023758507722146896153133688239161819030747343112652098044354329066118699406604332335348949363456953595577710572184617491837417920814976305669171923178825050485227734352508794840394411180153917414377410425029511550193156861524929412924269321619333755839658254424005156676209262167534939201158096940955695494566610806197786057602463682668346631546007815131642188211352273770223941037889258740574810979241081792325829760084516319734134306402452314680152303681094339429432742168275298142649228984573384688471529538532467211214511725001472842874181522665253379822370189210144668619394644926583476768064819159034738067944122775018125711064343425368897707403384378920694561869932253756581388157946575915998324894244425947645233455406199811067864372735795050841534867333093352703638737426941849227282726507664100382075392085300537462580252822375887838544125863711952468884220621287806354662234360553473206488603742276160636008374965655822430705101960541553719966484492992428711093241027456298659818689362888983279615930883989452463348345838373974938783833124520198722688245541729889081464118803462304051689434843576095459794086404139309276596566228979045900692082468745165512430820651871848798546153494145000263418928311359366804071330310936086936519099770343342384928483420234158381389819206480571047740999778286027718391109357136579602007320508748301267732525825303293217450871369540108673923846381033237303965121575585640364458628872421255229420102601864759902336392091834621644491141688386999713174297322760315183418856030175433761638815333266423256322217937606557078629961786030218566910592321148620431301726729745838119508855537034400570283584400778477888631914488981560448252982656671268748431411489463240258430294638726576759041015868010373872727687053089743529300636376238770459929266597534425920785609709531428463334810306660047395658080149992795703895982116772714583021353686339008567902284447510895830132049387951956069571216365730493442770631117133054859242119164122388759449470807815618079929554375356108272628167271745477562633467228612458329095138249061288215305658569831030559395973631815135006674474733030518310013812532596027217560679592506489541119690332399788446292160370470088398268191504930849166886373513028998208313893406752225321668594158285194279660002462144672088401605378138685889131945129217401100720353536087323503612257870156349907366928836806031044058302277350919190772976741445711719397275624282980823613826027542385746838695263329060705206968271831800902058489413945854018083973056078789538567593647769581018002933805421764589263681283744314168449763076351062557397222596207644613782153459917133692322496613138317237321894180165983199240810842063614070294770723733888788237849991978118095051142723567811590714854753884425525281277332669100187096674015825819679163409215386205566658915743606685429461727890798509886044274301397057999721635494221398416647520527451808394822355379189434459559468888700350812016829188105711421531051740238708989691394414815844382286266043548387673509528221451531382962091244285255452955634440655158314107476416592236615659730916777398241867141617377714691408026785984007230912190158123179261904453399740519672686375002713794288548791267639751870148095968264060941676948937894520211322581097718074133194805475328799802002990740727721957788094665204336959642840344305876976076635047961388872885743094043316263126979509905500104040624236555337938118644415404450906989724066519997360584861724469424469636297288376199496850886066731981427831839502258982173413665416765626027845712441247398061770120635754760073566402383579384770694923838084424713931963893567676145574563971486964248760923235950640494828253656493661514580551384226736781124911770525843700493785392488670408974599976810850761016325926734818967166280498230688013328842784409372211378155255608223411679653536460349948474629809630233180837388382127441842307927904889550121151547272998186180824873767560820496053329879143788596908665918123983775921142375403483099136813484502382488168764694452160299345446118302579254357112637057875942591567561204808572331744427499010749982033864457859404560544115553368634111739699657491754322059317324632559851338460409462696256836593713205771839142856868412832323913105261724894837264008763192752452501947275691856525287892714590576273748306923454702289339666855614087123306658628337516252934551449731047450960070490049268958824217366896716247293850950584747033719613788432755063161326882236747835368088520114293864900403060409297065413746348281034861442852224084329793521552255600307163532417531595830277760473391482511229114127414645833442689177162260031036160416261724642599465343485202225663943833569304219305245870355244841722696385826884185685594457213024673964761105375045743874997316368223460300853262444734766595640030029063153404344489855273990137324011245757076491403113894807563290438519600614937333299297910286754811043227234188767847531484554621250230193534524342249063289190055131180355389869176109563298485737759812008854182587719802989384396385855172882347716824131361955315895582755413722221622625376391492604016038023654318804753003703811007103300231810656197059473573962795205125663174110728936888793542247124220725107669213893532267041353428089549138659519879782447289555347125274638868543298617451050814223618197263091763402659493207783664712056648306947478897779417608502646423325774989102487843602586333882934401085614046114168678641024819510099074784143015374912581203968741724253859470484069122607159249859628973063020375635009612231873716170590364213732135633914098304970053582484469092961512973716074447113191225297956190430006238824658594993691327794571405040893095117073859796657812264635985453107578994988097146395547239031936816651308732728440611222412207772922148053572979125405603574276304785838707279505266601817502027363842926369887112650192646212541086472212419608149115918333848974351755588681343801798668730612413822474981774239168345437483076254803696649673256859334161466166748322309285513669526407842125638823905957308102999585155696777419412047236969964638696755982577686168934011946384676195612053798018444601012022247205956302885580153571566415252043562410332524854943549318596969624060047721748193516265916700228815905995419737312739335763822126648543293738005465454049099014247887405027750604075984243110828469604759076405875163561714676839354911649615615315047715725619336614870496894368738362480606997641432689594467692931197573530735527030535082720189912810765820208898178346542687065400832193633506896799986500959607029846093157026645441201553695956595329508867879373125458793242673405342994606163557958813171766775256620520435603110003430831735228442256407815091348664750309506606638297377638088465900920515589809588598784927632685806811244264455414168350296963399907849362531178682342797369671281663508546080958391690635787904454546719660578368030001269666457318332341477851997631027996956903640543016821940910256195499942839743427506986487552315312365031265815119849546333523482238832252666965053111829460087605584101694373750759599156974340001668024698230627097309936138585598061136141270922070735119567765741424145595710042296284115280596676233023765216491006788366703228292009896445961001523843178743658031221585183111349253204577609853001238156937813865560093255103011515114516653183864695840749048465903037499574780933118360652910706983896627921769975987846108018270982320370428564493715449476942365894268158006958393200453436345394473655427062933285485354821158084740225933477554416304339009824596968583457411966179824162470444895063858535371069617169834011240904558493283473503234908090225701818526839160462855961503496421532110291505578201406517920119078334127947879870270162218227418796834285563118807888729508034566954114379090666374244575603161308918418502533790298188416133170197184526017180382465848507552751711983224364490462153563386536437588246794957046537828749779396404649785036809400023877373585828965523508547826704934298138442096312081220903969475449841187201076062985931811945602290445363100214554343893500087939779536922868296509858537702925003292968130209013717259584479376964017989837275628352778670937541689027449999603319578151765061890363996791671911643451674887857420201002159896558726515666090954004402734699477610962550603364819807756347058076779979680286955043363641582803381890750002312327463510504394219213056467302166731369583410457322770032841463289912782316375096531377810911230735443466119228135763020969267007997704032584840124825186818268669922121267901830005479184103166294722711839076700717697298315704371842904118462831263976214284515026841630689326379412922948553643257687767315238676609987139799903104466987639007010766777496192532217948121205982595569799169872437901982734355290689573778530504257259335208773484840950902948538658324193589698027628311275286978798142156735715610721218216578707377776823511738160845292646498889221622579177891816779459005778126141496569394452167927981654218147830770632620634499772977601388622091016286718692470268795149303858026804843201243660453459140952111255934250250745838587272293218036234221355085900086392372602745803402807222667084771268925989658192078176756401048253920351735625765217042628981361279313638184057085290076485827792850469456668160911389078258757612019390946977604156453012552985651033922776534153842686776926315366528383554697348309460802476238177091400480920304870103939827616729949163462006330354566785827516048280171071867965355163669560705220226464617696034909701207895695440380883198895368128973341572083458583351360329028920625410727590692370807019396043080634027377928882140717814765891574600624089576444045788672092872111706172739889641690536219905000023993834172551642589094916206960118641428117075480237365175843711923585504896580002197822363766910833174975006990284384957442996119961346633148193774892203726885855700426372886194127128766072598911768130372106471562077388198909607193313850833458910625689644210717079850617800884324478985722120671430415266549502642424579952228680906260094838454638458502877926845146596977693928433104701699525146610580684700378221899011776614534519767269756754245194063312640897108330749158046018392405224861528948973103881598241575432642424791475875735503266309996140459127149171255488278865813782153594379911410952399998269100199181352630819668497746908339957405905967452903431045532153567825735999721332079072840466936789868850100632993156580100676214347106485699744501410978404377134116045721410297346493671503809080596095660025433118478067666027276423725503102512421615803323205576345423825330479986793387197436047522218049564025045168412184425985056347808443668461005420882684364189115518411730133017700908581334944567183215747673720014512489054152620515814855322532844795587609797785275750766759568117288819530121531541296179442507739048782847336451906991688335706740214785533002890578017938939283058760462951177921558747645509700623249229089407974217726120658201725275892321478531945323181121921075641332911674549791759028260735957100891035757392077945052284972230661487784543802750563042781767802086435891059953897233957648242652161318573353988211314966057159902681384782048324574088470048776226727252410163134973611039145825624368651320645496350368917072829967242034417473223535566441879362628333387591280687155286248650382765134962225463254061490317855166546307652722075621084032958463931907167334957804410903416162162969492797656280028634357894587348788935712243354069529487006723454373270747854652638372567641780345646362930414497655975531187187676735546382148284721745810387313920104674982062463939523020191550795818214314314899764878101932797284700909455738780369861670025718458199599422680261015555249636760291700885631405603234825768014164115506955289173069827889182635438833170456241406039765794439709811019681281022203079904619640383898010849294522437371587836478183801184460804592146900381947999145497436127700375335500308631081506324543941869432270876573663754515969629662801540282462069293469404787471566512485508416772592239628131042744310271188343769177260761403438660294422790664460342014499651287373307678649799497046117234328797967972988996784316623964279840889338986881097074914173269760597968768677836926588708286998702816573895564582323775252086756242796986537963151576601656044032158747458484736997630566454875520522731665458385433926678174930817648252445657567375869176516113927821493851128997559111741431581102806757160394780171187394611081659919807006286231072318187995231621764022859902854176155247285309297487838348030414066272848502856156842923032115134715147107642837221781318006463289394944994481616468654294033776454497999816297433327691882398575512232875338900350685841889912551529156670096649033203134510915730169289994645106142433345999576648943713311089994047589337253182040676666292414786074701023157990374991308662220724701743899111159281097432585589639158725244487505990494611694803192811307701561929486713728106871241038113444093463790412242588534328301097971851182615098543491702309811510090180756259385125988817258699818445822719692324998353841469263647682077875596473874499807840457616969930544598831724001003354160860962091036451617263764782554227611166277166579128697588839505551489342024742592652933935289573780716552229936094302536941001657526682053912827116905707302766129628556186623675699553973883242977639862450547427113691374199716045857519785286104178172207331516242300766064996643692261342639585277151103191685210281641128630333218762024893781391597086606359141924480881273661941627158794364737459125336889628232743881357266726504475250184064623735082509901086433571760174576943268839408434587511011629329129693931281993481383421645568510187693794124765194822937486340128778817526884615748966964790062453180709724816904356332444368651305183073160031441453258403702835560393055303764243616732369555858635480154077963632932969446534836326537341100314950001199561318292072239547647410131677134541440846736235553956882812246046498660666370809830379414191411385204285100759928085443762932959640290075606012157619529415653215284227921363325772328313952492194915517303324399194187260282225375551534463880203499592394634426870823294765246534945540583345027421792033994754818747990357781104234245281824384740585580994483440972705312847867999275936450577483525118923503571904702569138650904784043875332795788260654508970197682934507250839841032332977616249219367787983339002945520762269182068332663002736627184533357567356894767165023354745010634375881567062865304214491293318059181429258528530629456496162644797884743376152368970769688837322856135324011039640211248859619452109962828530852133135637020984215115152464380749837968711967883541285483667641807741884449376947382264803084538606495872557001928749233390067464992710736400135241191808088805839642279688878223723822396332070994558663321914069688747250486026699274912097906066035646537098318907485710536062584860530451742981695817571411382881524045874500095726274597222223858243067901721031163367413837077232916525716176245801424306361086783221892235514511382428790774322521695557692142021122637770384621284449760160659446021492697700005078298919987506314030874968218144063201398206454213837573185587229504329332639668287653923318954169097858106917709000846515631572088226204746777841976215851019417725491798947839279501310242623409024667527832568558669083916178999953505700497916961460136935562721085041403637483813606611121969709388447199572931334318174219091979369981139808563238976770850631550232095858789585784258043091122358614636874834462782886361382769459600701595522064652793035907869852532956674912387590709740475014773925909117551022310237795200026401206158814459740058927137912117843280850275094283307606504949787797203110080019530779880183259057514708210967964571361386992127992028679111161477353158017399126601382281245055708433840808936120079214330401700460105199332348756532990794521277718255481604223051645754180137009595810216755033386392218525284728946311018867849939449135623929826710798617831374614314746235155744308506029820885786651753020536745875433190886349823646241144845939609758999535033854366016169199989706386558652552082143193744836910590089930179795912474581726242522161401631755863370666041933509623677457435440169452530520430909361059181225306409504969310320207245930195326240906839438198644007059934641401206822982411038382808137260650396305346830582096766162469556396280213966889277564948470619820670637739634986482457023920093477191488122268340143295360140095400938010242808961005710658777616791739518251342143558210415012279177371552175475654440753052583128976151677669923033065094088422992190528275773031243083564741204274004697324430285868429142280290127403189191073549999116752593306380553292136193996419777196132024277377482613223496158563067868667241232335399856610194515086102735157597758623228484618493833201020156974551218193913257270345332693114533373294266093717529584040114252572772479571582344269879818450465712117502623768635065702916846151542021949543057412558869713734215343755729564306404647663565207614923615195896577347474592517294184718184137009064281640739512292099942727567842255612024563806619683473569917668781634254422465121212065786163780385422274423495063468382729621518967490043003851525713470220964064601020978290066156356866003714982800545307537950676832291560505475820047521616542365645454574537064381709470276189138744790862754966392819215318144958867728598173564629491110133383950391278322308721317024351341816472620944562491489098904946888057920118557932546934062730820064393186134683463090299032632975361547218801143919773238889845327710547036243242525133431120983271879212741568896460884775370349444215036715369797032521576745043613770081232219097548752708808401989162595493778944772659449873627711509909316642275960175184424319056826673243413548007564542048404441018055142146836117705252366035756598095486966157153616299942756878202915894646474823626060749935220801261260167842908579098042935969240594887298780423610851534199024327205663329362697309006933229732672236991899276179810014173509832976031773967390199085315333704264995341715457372348900848247718857614206898410722691920695385449776273537771798858527080574851058353245248813868323604735368094805043803046916921162947076421624848248896394372601087349269108534307483835622106597478070276473669594056307667862842433652535401593984237421686233371802269955491192612740264902297369077337897939448993971254744768313663722293351052109071962986578302257656168136682805438010023203485754067020891698503848503483727134000255223573580546929374300910852457455671573543141322274079625752937183228081322715051688008963446644515486086342135020663812652773287618657938707584094875857053104591170573040993651981073065702196094863298061771733175139528777774660900115255837009242761961169597952369681888496634879490953958965231964946926475182148987102609523163022571348679471294194238043716941266112076024703292596031485172281540659100202070402514018529872835160935669163789436873351437294407245620687570505328463310848597912021799261647559731827282866995471659177576919087005234622065562373399882695718942241993665193479413822073294339908989426228278086498219637379091447197777405257259143636594947867873486233610297241612085179823805915348250578177521863230353912504112352911251599383716429683525284094251875995105289252794287842704697065849151424429028040940270553335886263030595603682903414535391174986243072017435702956341250030581623832230841492477323576836250938985998993760182917288494907274587145955195543629483619197794014322718300211278796358417605191654021840397739452611702376069011231699667710548981384330527192253440774951345791254538689452187136687790521899736580948291732255415837686647208544050843070774699798986107147409425347210635422362585352818847998314654361778064695596164193174599554826806220506782612151209649794638983167443061213324106048164780981006673837899451284079666378595642264611319366516053408810609400447529524472199995312292738116544134342371078387133863251217374668788969262817178448785265031180981496215739481174020610132717511578384966770059014300110065011494526839242322182888205113322896612849836518145260430887651287907809717352054307509649357892275670206480447884283540644813697789833147750036817462817809303141249508868683055804397210100923548438665986502831205764357082133621932128115280116983809939905182643377669679837778304397946585580968076698041440383596545250444042858859045695918860170127756152490677647195951554887970967573537683923782823623584151367835145154857331873172566555654633444281147855372539698683295378268676386317942394266719491053094060328708004739211810603965925268870509341152307534010749630590780109670860679489370982152082039618220057570964532246763118853283831194462992996510857789751981091680830144404772657472827431669976205474577790066247224555565737205696623742567796128891884949698172474789137429757458542280967822365630708942154077326125891373822402627321963870406170995299960919726467431542042988711587704841890656793954763944520434707089780984718242035462594630192793081053831325922400496608982848075582546273257136393419010491427611626668452511111465284587453107911276886934703863366847716212907694609547634732573045209864872587359286177811745337683828713102693868265844448480672849805627001340404444503344336536361640856905178829128326747018053282200607655582921510474500889346901312056558836290634211806589079636112379109028890109441822876735126359393395637476847540153784179086001356907502281514785502899089370250739488500291362958730385729341661775079262885163685333605362870180113040006636327592329526731338975644592393797232260578059158402051493117492183784738799462960038853362308378513241528513421961807582513489044897968422966323375072147335206790897265450457701821833948924511705800159666385635836536174551921591171667905468513833328480567349413287235766271228414534558256568494251555181718821926068906845692016772810206971124147042020018835014278479775278534627647976194492126066419969701009571308116411048696137182048420376572679592749722358997839963098286296580156903337850795683327751602510700843325487437762829329137561029084323949395951230442209906071158045736454410907497131943403717183065527091657252059815258984791054456524311677477217434382398088852916344020820939418887713835963567017109868794797284235575289016708612426466404742891469227774248229656810840599377583215145218876103793669326659430183125993003730092830583638677281362834866139794806374417587936066972641257964073748993188881601063951731061302764019167579461869780605954664331980944008253753423653327597263775993018672939967682934831573006171890728548362624116496469575609642965849395022425173462575206084181086480588267779863184743937463351655600117138782569786032718330043403749915315673222863110185330513392650221885196017960571684123957290267796764975792041772902353318771172659312737193804936533865873013616880155317323020678123161084029091998407372738574434319612175579843896559319918160196258548477179687484409775529087543333804978965088742170147344179698135476961375967433851391101572248164991608088523307366317218771924211484079760275444053913707120923048754826228262367265322792925728550457672306605122583269501418345289824585310176858477317317139799315094031815445583152295231694379879913692280362838370642851385317159049375888675176553722804025524504449861754875084628932747294669535576885046253613652896971782245446671207451276638096439819983466701755864908654864398840170734298690092534669728197941662715597436711833070770416461757150576331712817365159765062775633995036833370435468359622933259266436811786144625392731263135377572755451935436412653054998184824220000913188272788531359752871387274319638482327568265100946259296278472413346817242375423073805440125832560853464111219141305492277979492287813058655760511326087227544604782393854748164904082300560484756505956503613780318124533442364091479111122892090540222383051437359478389912963028176756675810614783007829222611832437269492676384322089707135679102916996792639352303776562169830384085283115323640472512195815201641135668841611667242155059926278246065701946183343221972073756495665553131377870247281127783228057309553323874902173371048963783126875444948211742407504885103629716222710709578370385170398503943335003492649311370572315141906327680645250825542181751176413321748153208028792500562249665114765736166313059451422755602322441221709066866985997740544754837075663654131264629941991892763400344346008645621887008909763961097105154363038249080121709640210506501697368334769376928495763837798443516109463738515101750394172914747270257292361762113451165731406743658415016448128540205386647120601528058311558690672971757873345547007504573251177792475770209966520734566538450353648199938462447391434286719406096653024716946734290140200927393815147136733072558339628621500638234823132589617122785384845237434581190792210698895423700972482960808935137905244618171091479904327616159268710130301373083407500984867464063069493140629167158476644373469249190815228241265949972032737693261289609332502829074721520369780047862115155806774722802097758836403938950492215189457877305505321230928871114120187150272177633947529418339136617168806631990857871972644265984190384730891167968864380581436595030527947576919967993122093461256178850315448455899421318277913993794391892651883165891813989748880150180293649077863984249731741488293952473529156593787751300401826943266412479527642914221954535362037174992263306591489992473015583310712622164646568269546182123368538728743910020551490383294748082645685290190154316558059945567658054296851448728278729710437301585328581456873639503530612816942085662598910157702631964077054804767647898054683108398731188659290806642262715351317424064298211055025176008763766575320257069011393583873230389031991978197240233715861507933803805259004299167257455978569961682864751171867135240489480868305909550598720321160367179227297372118495130654200352581521203188430234453523212917146789237285361073057900697442204181612025154178230847560790044116103138137253233849080358845331462494106034961190006726735927917479942727723368759765585842115272171280333090852744189139950434254575197635437212146480121147205340177466241902683258926237699260378697624734904476637958633131077936026568685201300894110283924126049234394762834585461811423467846961240934635544039538568480207944037058223998607643254553742474977594385970846947740238595098027674729892474146784779945440320897633867967984923672667037466600519635161499426829862599879350885208278010002468203564056744265972460442520515067459979665770507216993824389972780795464863181612566786198882761666102095842560241290453520652977593653541644267432299355340679056793001426613711186255979554697836021900619839837703549282508350145285850919530724751015522479954640163230707036126334751574788509430462055287968756983096234705465334434883189306029969050821881807456993553707332952337517544273410806738290479289372231087779943445878316092816037349447739138071466947388192374451255966470186420541761709271989687251492711818736348793733779014496320412255967782138021000679357523480387346161836191835450150253917810586807929478301686249073296827835926676966434190632795875442036058071617715154392031146012927864293254259759314935531630368001905044656944001936886118706029429177012641020986349641779273796643738257252069798464166282056387146197817226662520743865516531776696887447103077645252752799743552749302004587404816429324682312396459345619756088175225166159283402032260915266475714084592152694316734484178689785530375164012417635730938890624907189793541821864489913298980732515812169524291104299729739526543951463266717328567992498025250093667950361904377107330417768588595635373301633149978021941373155020041334365474831212902307880324345189649755880558825826562153552662149292998577351209009018690011000353838518581541728420794733109443223457861058211402146983880694453028944592273048304523641145044265581472775690107080389426084338264813847079176671349424614856478938494608713895632376517107819484207373916160125371318444620581535780018488183890451679395375377196421250593202789873613220920246243246579689011689178420681663803296676987047703099610907450131603974993913011176785080689548008162085163028549391147654635514078189919673620919130653332519347232447076854735906108284345524162549565853521599105508027041589018586702209509310214504534317645236040013615098627953338482019797766540822547493158161047271675698515656726529000866724318759577709764989548245915239479095227648328940161174945504404551001173456325490738274782581535913034530298097012497843830964646356407370909527068511182100804516364727874404013750375609617103017210645894610667701474960774869473271754732850439243291514992012283401583445042329750269423691120330278485922353537409319200625939912401319202090318271946880844351771886231857020537348333557735566775096889803999939281244774718508268512440733788295857675698346560409897983113631629530276623851210521616392017757476710814300719831017633519740643637660428135009377245521848916101998137785140882321162818701858316432633209126996240633698395329225811405840032865795157393527822879405598593450980912561039202970203348001276734067935413848357514203844461915567972490229325884958182499091285727028474729402842807355210232554614167979941318731952191722728313489464703412782526210336529943471195213821659840458438263582978562818223592474811934049379857066774658747881455974235248331520977238271480900865334733932492938159047807006324361036146143023657153968742572024644050137963243094446425311351804880750913765579697130078408411887162739240223950343159932837044256434371356834369129913439683294741974723614879792937676308511082455198334017533985355771697622200203337922719480909043689685858226332350543072915983242443238118110051262053951694241253442652219263159732341348915970758627948795585882336210902611537983262042589457550702427825612407745537381486191869016026697080613587536707448927102571085676746986212839279201809365083110927361130656576818935576542068651226483929616912115990343336631209362222369614879709519241267108616417378809866229394683398562003115169096674441866124914876965464985183312641163907547331541540619279738851821021966419294568294442724969048392373595503046115361234577810908003477884345317896362285630386231042053220156670882697435486740578586262650609716265765884104261319827073935443863974386545046307564008695286269353445366081823348998130723113462102406318242371168240467999375631617560908651846375951134159382345990297891431610185321474610669613553083488273458186358786021274048359921807051628437500599012045650252875922820151435325031509586314853889305543266606826449194341099298320097941527610941720447864743578791730925521378996547921654316289811458039663774982773532614884584581720340433928182996090520116672700375482914687720745664478016538855165822637268199619885942239438388148089542003698677292645119407692600609663584738552988926312991411292914923585749285091325829610982539171888760582055509061055773718501764651253969740791756705332855787908615053144816069716879365446770737906895433918206640140356974471114286561824698494697844019721588330476017096689821986461892101879862372918523858836579051253521291745229966748750255879386810026165108923659591035431552563972307687237434752665558146288537087316052278068625525881259342020025073763076241211706112813375193926928067098747926386202275539246556750782545775656504535475238677772027609052257687463310504446064943947527604431907330745404042091973778385689839753055996320914303708721061893720446399304359986121648035066221077919300903303404604105365016288951261928459950146199122087770423502484197153038382696496874412474307984685765228775378025566254622326559609139156355864283915358282158313879605720575012380002148498364961029105620656676127904132662365595772399182441737722616867480538786099312209741414913858700593641812683928298453197199434125725981209683915009062309121678330975360864361681518089904058188967653407446787436025561297555383800876203064130065084014883383893512875825186730346685215630571675152341291470456318306852945013377341058657069730184312981797875868986767846426608455193659368732550121206387767467038095827399206103675557733287941042625536279363946091519701067548576488988960803042981338359110320841886835058799467746757101795290778227485447819047740011114195843890464994482920076897327436426326561719169757182911069505915639202883518678168405518908465387395813615647345055006465080496203861583732428421285762395372073554594077506508568775811584900077841016255607950471231172264737288391633806172883106102017896855052822648024106979134008925789009701291992481792342616306401280349436870333392551722285256463198451150244796184354497138645386912289891475028618046622004043423584061910227879471531295135522109609435854004846833672781337944659773142603604384298312951109672137932772979397648633360902073237799661715209284374207374893526436862200127682020147930264186226065425662417122942615928995715600595170365306368366761981438767006062401435858448750568759691165781543804514262517168388226430812084255424209027452716301172737873573066951872305149953065735429889965020938614005684819168077399638647056257752461391055844048553125941687744174139556177928717539903173886556652225082809427915853245994624219771570686855319384649991093849480526992840745516520966485657398781600523813147558156473293627139979107579282370841591698115235383491624540921843631716174807377496736614733777995705749706506777124034854038078365802892826944363092237133425621773953856288903722535552676755376914371406973983716371621014120457702158269269154464221042457298409490393649435090491199563000495003584222950688939052017649964092159461625776288763312859849102238095608868986279709726990171911087974904952602680509590432857225284347244164103263244780437954023228112535838458613218849886137760432703933599710524802299409816062718871389802871543784952780967529705081014773648876875933394248971266011207381041302180136215760664299957296428967936574709330928258795971698115309169961003467412865043834446548416802107699651933535167270743349865569267991811194327168193638085866161000783973456353979551155089328503219326713425391817575490445167630680305372869865159793665390275602265127709058791548828931484416731505220780697006709504068397739065992613410301440349668838178495751754578026555807725207358217933498768128810094890819867859840511252187285053921592332826889177623547617276712837353434621582101311348370781209460991615390247973601652380693275685955386525635229553367291271810724805393587335702961011617578387787000652196402675048112234543470010964371359063707230410697958703529237052184112053667392543306435440089098833181773883936596596040947432856616268667133974983001305252649613583561743619605453129508259430054766535587189414677584950916164011180468386403544371461352111120236156014160220444941787849168158096664235861687727865724678215176940352970337817821406992669790767632603223386481480782143241132680422541072040361194467117621079741361296865031618183390890467389873141808818731426870552187770838630313050781205454401892273340549090640471126776976131494543781929410513094691349592321704080501443778650014782094283084644416238133972490889498829518549945168302237300172814592858379525039576571763787324805885841395440562152468855315692222754334382834248190998414190177930763920949574146129406232704450806006409195385500896664509459520635100930708324477653161463198638548981098834497693118910066363352556077392033324505737257369633539006720889247383255906329238645038798202026936688067489948621038292651384261102909268281906955733526508795879505641063778193434053735298109633808388984986148985327774563103686526280105896777993336874819293376206787338974020774919509128789199992603276638107407680066805091338617142876180429107968151736501302061836009983479531970710063669112434807012411586801268484373533894924269713305899159425736687604795225303471691855585917430826113237294527921846560379621619836935761105830984039283226187015395659230404429863495947768650348032131330956179938685296928953367846757966525423245591211426388200623579131529640833562904280566057840197201428741449348637316168062652904373200310077650465144217965501661954009933733119724895856082833324302908642071060084348113598580546631389159596472204717812869761600356996790403935529541291902395821687039567435515714820976464872670473981519638530176872774890999069224498978655776201931211856441239931900193860584256359950148693330685092334981889375372749367772163838255037325459936021974742650462391815536711076732716921044155320693009924470695277875088175429578100340856651110196595301334899884282185393396708366250920717105442903046112817950441540837180757654418404611668303472513886322026593596086746264399176529479678810038238466302314416309581496042670444544062427851974276690716164388656014152295675602254021800302539202851363721170833589544757858622390400435694073895943368591393805419252904794423537754201728798205273383744490332206277125748452863771292869576850842250096253041151946315514871237720861185225384773609636157981564552374796574742082946346036503745326232833062284224609794139149944138686459758660648241449095661608776439071961304358591735517767392733808405530905925485494249614332809122140413084955925292489625865581116142146924145309388144122969621637155259301786817062413814587802131345864171842664248643672428159654155716955132668617418874834374860713706863160436648240520537866384137845802356232923723608778956590887711966975379614299551986377368539680044805998458053902942357746366625528459652900430471874110464549045794967410618002705580087221619940962818497102685039858204729327773102669259034658546552636332367472741776494909819073549143498941211445035501437161251740473174348607403686496881009706219067323291984248210134536480978786927945985538115334794155522841670258776888723632708276166975196254178276330352712280447473300699379842462984399926670493720550581458353226421125737871869004691663855645214762096198880722526215947640942727348406927077079009237418648732583014888545544317605106880769194717792544872787630052898353304801764411273079969174036686170369855392267893098315138089949810095866638764973948261988297289284791107927841500490323917242393377441897744147638743373557648667823377872687166312976182122780406175316399039966630857509948335445461514929131089806903929165460597358222903432033115057033687465793712173119167797689174571294886812789348426582349746983178268296027882716213282103475585510702018449942116833729010946630184077053662575132047038158235732662985188884447734276821266015817012482590203116081935731401666430947247375712532687743884576767863651485569388674963637971743932983605595296274374817610375013473632195065560070888012581030173452470332494111880411873253797414582663813455876866030398310024448228403343811438997824205936934686128910852634031806654716652817621069850707310129110095190160174637097402588172181863832590076877133219153621227246064291443096986670927778700992349820907974891340941139897891263443915230339673545455538857438974508069218157529644987058258418721328575634298457374679913455141449724449864780553876176016927573002492819101430435252841088309298631239770806201420361101519717153789170506371385244417044798247366260014462608101383746142318378539293685828242141214410467833932882799690117669541346797820845265399574458311827540595229458286721728563244423844231863296528231055233997850371203060177185558152295408846034184780980909400442625753205164064818740528671811978126242334384270979492877931531294701078641242787888412030376290111220677822115851257274498270084421456030962917795591485676220077343585354169596982417535779343161412166200735652934360137893277203692986018331092411526399082378901928126987293601664305602567452408338996668635851622721890107311587357581789433489346714749995909670204497223738663823044211115120215806241937624845291412484669738896636763337460629312510181143758074245735632234379599732034565273797099303984560438228118669247402460340975875704769558831351921805253936194206612959619764783101364854615266786291981095076372016894228612247756693004678268690727747278375575175651980757613058479502219552479184717726700461218634854320342002095233226776718214621168846250812994346465845582209750701253806518967173708497362796706359059978630616593633012551630464509402188348452756904103839528300662687152277495571181053107932806479854859665845210385838176913877465480399661422886346735721967659104451333001541844545044751918747159624819140841701743512503965930988358569751724181435448328042225147302154079632455184236378090708085550933734690495451271915853034915053884965363577175589640608151405645785651315531134033055221450186595847313833427899654655580872209288003817181998900898565239824941690320988554537815485130422648197414113633474339016660867873182658444112032866715148469037280659913302095132345146982608239138536857323570309026443846131096776567265468225187666796267036180583060086280536542339957085858647099699883192156599276446516018714584600552538813328219311327734568275213168323393146334638562581539798318656304979312341962093100431206572056920089313374777493002472731297469243387729554377560086688922907407565502972643825819242064324547720100866821158099836571305839253440327374716903575787218565499946144991105266670334002076178914107097739524391889769571626338345561888161310262495930275628114765142729628042555060476269226828921390202367828193771383208621344248649283555183538896607759480225833978555650122787918982724929967470493696134578278088995016157061099168704562798958883340204005415822467629739757581614925579564811887979698301225471978791828912244400210481006130651079060080045844192900174142093063436481042497308022005880151059099813964909020682211915472444158831654783263516208101690472535711691434198992111647553117688642192342052514733926765908547478043485079864692795194355039697337411171452288094462649875273099580384433241082848250515733829641873822271767191793251075051595920817190105831722948634341084102126424472889224248935876629862336261515606723626926949279115622857967177248464177027934364471921225323257043876711882556527936702230196070320760071708382305106203719381952392684130791652058838789898084492875365962066123503746991560805754729022242311413323500449288022395796217315239944409817492887899402840474566358397623032106820320869686454002683731328975393327785862144417574588144781034383537276495131930203279207389989176745036184661305977770627110264827637493361943860480513760891689319618324610976082055404040622510301716807868701660415180319429632943440595831931417412579608984234306872087488771857190074773014045076933959476010609163317904060803777618544808463420550972128086119876015182335737987918104307856569233469376957978204909925121378279954746329933386886491055839155454350238334335461958109299028088103365661785157202438604785142676743078217890984814041869414458029635849741733638498376453783419151815675788929113319788875772640585257771691451229321168950575701836230124234478498138545997343649085108656083201109155500794617974949292189227369688018177702675170178171469359696211020913302480294506441238885336947053748164431251378469268785934698549222621800543817338008553314506397415035112020621549196322229565348479576066990652408223966479244140843707380875752859369961209790244073071351251511642026198236065479266616689046122614764944831439478918774882657630342948561853541609193825422327466690477136657378075730827938227728355816028448889466337461024185858288040038901992882927364079704071168020308892702491433687300825554273592343089937540703437141115172436967642331437509946269156239351793364244705752457693631082878924794733212056928651062382815753883560038265936507852829892693120497456695747034272579789669233159193468391905361261848097259960162904265809715845370345643292418469774551801294459469461080439861968331482978433376927459906626266694005458463515522261397464874015327321763148662153179753661535696091546205183592096234564538860792932350038755730532513417728235951399892358035395925188193765302367325448626774862366430300738595329066565341376938530348095629288203751883879455988384633861874662902433359916523672115320607331154239283406348146121628636352733572751021665543744179915163184572398088711983814528059442933702518048623524603132168270873796967562038279183422153745408922494537326717047414818838128770950864841777617637654039754866820853106149598422379814104623820656098722255447552791633132524209975985482966373714419671044889783412032997952859495701124858384981291554171994193331494951449916435793381979782647193289768319836685253102557706107829970531799123651867274035286776788970740676023675698153819690500457538449104871691163004255875203615018140978495357243955979894762058713738992224692039715068176962771975759942667658098044506454435160133262527035865210717568809626550805981491973812192713128937314296822490504294057535720113956852737655413471532592766666393514825398407760273852012438909460173794969028869198846666009148568957639789442945869237439756405986473883874969515636233265288682573799057886942307530988059804454358233018792054907375682566504645949557661662517797339905281911674471731263148901551712541415840471319693022983314918686269884718657080235572271428723989975105436749884612177809191692308443620811432429908923986921746808848453420119504896681021960721634291681879709681539874937242735812374038696618113676477767577214722604096070210984063265126272748321450028341168516566995020348687572627087934367662538324263503563625075784812434560255809036750299206846839804211575742148149543622603839033191092495499039761893388119886195683011023423244956194142446109235346424303396978660856219080517672412802832651476838575208784476799824060945797562855860146550791470779602383068958581712956973082049996087546592173417672065077714842773652253962518219928956753165240613929876130948533150042190846767278925176092418870410618071143126876133479420362718350594790744572567089476317040676318369630536564023851821188888290827124540415119028421345963645513126395867737299783499167323909717213771251424222479812864239587816710740322852164988249822759303931835006681919794482973308834759712711766144507308560550316651338516052720232612447606430830094887343915102859621066388146511689682104794463222740745725998373748784252693512954392964657986867601074299021963412335776374203129813711825655923888366408505828394808852635564461174387091601386153808741422584532958787973909805187408731580933506635638827580023162610645246397448858123901662775167392030295336620506121073298911599720766685549703709330733764216432601885698509965172877199395038608680443207057985922107356991555911892112449789791636575334341420262357876906279494043536414747488424246564317948934519281153443019753698760672322157075038442263430410536083500145489982917324882839873676981057274073372706446649383950330992513022224817353695315896854316465178507679810683292817113190199324644145996304333069659967961036749142566057187916461089508065651372386585383967469000691872823837795519615857787563308410342620664918279662769214636177410002871608001492152396801025371432804134713917603404111318692109517942618152838889842254364870819946422723585170763504848911734829575154063952582457090738612851675444784667934334577780553938901527721605935973301026233263842141896679240227744017163144542863739492745267846019270184711192009361090184739664971538506854616588969373994267231323870406142460463756925908076600037888997328108274043969179083993115942477549640274953670513984984027720432814677555960013975039084817260882559054877744266362671556790521572492473740245656894465113258378200777740835111902043881126180738634394950591561357686258383373689231373529267871901856597312648020340706802467759032343150349530003704450708598787055776680086012234491936734740651558961373338321247291767626015619923561464736619933724500643584577128981618411692215788866164020887983512877403216297443888898684215089314496684848105724308956375607311264612515218597918699172080139096620711153130610980857372554739620466788640575764652965485743183118270686280592228460484338167004972424405475637943839001387827795612540393738588554204568888932149097451132546079422272211745489232915846118682963491020502334183807689987688518026223595525673284544258352945839990166358416580315760323707074441877738395432138735591836799394355039096354304828657728839542585618212825087720705964078283515922059255591100860293054214533311206369809901774552366192489988544179732856107568659231098500518748391705808423673226316712581685153213186259623802002729313716583414879777030687602776885363643501905521178550114470537617714416607997504891135458019496046115171927377437281920392613328321794071314234161102204898976234396610742806425731764403241533689307598432082056277711702878222795413370012415966531224854832462181872751726336436624646753647236912405989118967299661562914434364558510109972998589562548311284916414697146138211702775826621159251323780600182094292628932527651937778984850769226703300343389165312677169504032008385254298036465364020034462147949537398129086318982595854507850813099433035512951896716566539603435962144670047038624313176543888637652132450253506208524761323722651475915540496325413949964173375234878743851176305646441647667871233482364567610323769781105665972536350712320459779991983278948091668765201048713253502116203852240512538450150564596175040036171636737754983266938414695711806853634143429784010022093608163243106822411284544377275601343455719476809708179659009232367958856209060476683048948429242330545627986780070787535067380023970668119625239610694083854523824694862105683990838659309038736415755713439858638209059244240113428505845309527617313585769745532451905218348813953116764655954879772777593794612769979616487879725885470727718703121608364395920540945952111802422604186056106461819564225440323789801800803639514668915462524623204488955939924442529320204339752906537425959770593723008293779494314627084770872067249451797275174081912377406467183546477357542172343631679700396535085672652155049287189411642457565122993783625695607797216514151667521954537316333415000686703796577472157028091993770575897271283585800820764277816279866302913975792634604967166485361786518188531200144854169468616394056128486972131878113187594363237724461263898443353246126464413397221736903686978244154088218135616612461718441201840108114637618130726935581975085417472150208197196631086290513970786146691123164944879748384586519661032495888408240098971309330015573552502483413361122925046298166310643588085064390164380929157294971815950650413270830133667521056293441932957121722139680256329203453642049880793920671018331940981276635888542899560378851486458875501582752102672849152475995206456195911752774805259481199333563642806922179270642927496688779138250994519908634982934673861453715239131970602466598115348683398649223442393973056072697313793653257903060536674505585250965701243558501778916600577201764543460445559554471016699529794645844372075571095290260225720825215905585287557333083481234432674054350325363056209676135514699681097279029079959378148645669085678586048267356793246853744653696940761848477382262655086026755879873484147629766431969761216545869093390108625125517027990732580447218362745430253194990596134642851496667962851130874186352019226436295493090058843391874913248040491195781683028788538717288314213430226186366675046237344257437371617085339357614307028430715916403004691289785806079670791990174823128613516364264387618064839232313674023663767012855478384542122768574403559029415868766886888589669422824565280254277227328820771162308104880666818526291497978270739055221594837963895479443597086194118748682792555378992342195785215072438983054599920553216947682184350087396726100250747558941721633895236025680144378651531835932702978962842599748726890231474212176693454390045904673185574373840576298290047264983194022452368113201399310407656790491841164776636185338548173232766066045657340999955931643097576769467364767012736856329455352752768250783186708698015590812508297260390779428647343987240470310262014527304820596932227610880877426842298977661463939377951439485146050090204769249397808812299044748146942962466926602174156767499441191767301351934715428922545054539251690380768769487989154898732242309879126086240924670657684499319229149042321166352098109567696665964741938610352595485287572957685766089504923537455736445484279674449472379769128076745513455607076240768684991721966663354918916453256728650042271660170138513743845073249563555231165924741662866141384341412480930750620268251930923909876469615213737666610805630291333916145746305403683273924761997196642322952984181419094353114742245358636481626251512860579798979396176879542186638440949193563944332186438569833383922488120527471437470316159756501630307345675474583607612306692279002058891411337154586016568053592396751427538958231862650362853585968069144213167652438971984296849229974945847580175933998779450123640294209081382545364328544503160154430697676803498646420225850463704410573423279278368079893334850689330963153611810430873721604102820843039920447930411609014811269165530826217053700519947914177291253898414682205857633512599140865319817461832271027174429489060029194076189540147440757933667574217416156822528436445925755393972776400788610808830115695455546647716333821328040666193072304330875735385414989952086009204447247674289753359735338786652800728175771280494872763975742702958851801737429354004692561676579860259107251241865005588308619042044671713152225285003498169444558419100820522171889086108369199700381630574202671378393211139442794437059309997866097373518180166157657710026719422671031985919546862898206025960614327932586007092146019027189985015870340566638990495466515741655650720450163640238608469499494364790254224293817796324018826237352328189126708323378399955724699813842828412360614654453071227355124526986472828065021054001884794504474302055107993228699403113797828504968482317281274753219319147768995949340829536671615332317803833898780678235912712632416275765361150281330612404515048284200764336211078609967903008448230592280902801860120067840981089805774869148633880354444490838966798485839301338974701891219273863185775061921120788458248949708895890002022710624070276629299177317780485722385560538297157198229060621624529632563285608042567113181999416722308942176690880859602645548108633252017430864558979759089994422992817878028269320582329898170415772630485464363376737412087748978814661789141642853563196511066430098394923348213630414198738853953915632467804103423675516436190066849195179436522875523082342936243299925751742373943739183959845939100376096051408806560946234164861671944941167238142265874245407849276945465313990158178810405577401339242503289122911203775492204968063308870289751004421492843211035847800537133480781598652201271588030652539210695196846627787194236874101781867435150613289850668030707025149296840925525956031818383574139407103281023047895273964767965632673578913694706069748060205941402741745461909473635693588837791063671977634199374021284468572986809874213732665109803100713097568101285705392188298078485142223212284147126277208242542988413968549585371992885282726324898752713886655254024338703854560923263943364407106049432855548045045598703235937597658547928121676944369653507278073471842531736902294720040032479105234008400227443035378930378701279040371395929452361332894987439640054195475491326817589133280135204526113654844034744851165956531660664280353382138538390996227710151104007131891924602892217079098610562251025959375680312507426401173316281971214006537097676190314235743421492211661130897102223276087459428963750489874995430331016733523349485687667828640369295928080829489499809463251177824571241770038812484071520459205369558976435786345316141230306347142591123459778879482157872060521191311378918235259967608718479650743306599188695740732420638117328217331155559387797009813583122609866096432625638272324983974096546131704985126583730984384104817546896863085152247307336569986054637005030893154102720419100898957448277461630337811956126985331388803353019909594354376320003942811821605327843052353771822936008204118093604228944215097054929816616026212350461068534470910666817803126950974813794282328318941336157972801456516586054588633337235557418740480585915439881634973791994934388662802730580433465875489205252680579185300176480639480399285833724536988105520046450882809070557933102247431823166306354475202518100881007752920796133635841648235531015751387448022108029584289976460780729916920418180706528338105895343951058618605428329682836871525489542704111373736986520922420021021218167888655251263545196743857877377330483097482285487669984123736500846202940303125925372296249744470411982963840461858451556005012457095221826893564356136656038418612941010037492625065303228312412141888055345403328034469991250911492330127521857477106139005421936770686169438941044601535716501335210809554313761158979085749773142627717819851008218212678456902262105094194830540840080028598351449419162057378250946977637568292559769541979611174359710979865811222302087316657573991716353815565473187187036336220538753378931048514696466553883972306164656168490216483343881004855230404808459016929903700117039105547134078876943890371442574679803066043390376979664989315925308191612059761933559668713046163717763832047009647432604345107269316025564522043246907867021224887381068728305356084979996220596383670199504103211650976183794795245462592853599076733628735273969584123955049272699081672291330155954733254457490939871329792639033189291591102201352958091653782429090393124758469709885548899465217683514350614936310424832828173075654296391954200321011792916005132094726725166667290449848184802466229630653722629336959285904385555743358415522589303658085829893311397290255203107309112291837081730942989086832593826413622404348215601692710287102259944337982632344538222394899452578708153690557761733844051619602389600133943285259981531325541695897333020065569354404245969736940830566212420226823569603371252351785365846386854050183631204340110701936480865185761164839684508047294464799626988969566114301447438758468582922831403995688300654470967465160772057167891371594970674558474224201608167278754008093162952731818921439100160087908204907484902616962923949277194595557784767679316015521483710983985266772746739294651221902404328346597591987327992182713043418848602161833368039185199982844041262937767669300766514821624932102851742605907251394057921218638914524236565368283625530893749134804969703782075517247470779115488059834546509655826880274052801610443500670881356158871786972252350319394607650055237578513171189428458419713642704915501138252513021447067003841789116745898897157447183496265508967174943600428599236977824784750577267986167884881619290260813568495902278108983365342411567595622070916443851539162401308490156660382726153551006226785449699141435032143042619749839282642072935436209403669818031844824990871437234121987104442462876162537982717895710933337225365187755267515601403242289302709978796498270911933334571491273006223187149718699096331272687065660870162786211044395147789894239635914224686675393379510328816459240197172901970554965518225176286845698222371679122598967788192225836765657722776607641480297254587212763814109681562324058585110463137329665747926050306514532127571846146704062071230968518197503502917565753207804448600203779359681731652415496464252949455068214427818432602876981905645798690367461758199855874210211330055371099954012188032133839932339402370255478513607784685646090992572565948872952191306486362380473542405352008370700607389418070810663372233845426535961167765501854602777895743148430546643676994073873654611672635842304703135708536195495105842805921419500657436623327596861235513198686414029228827779949194384707808336594375717714648917871935109264931429406406090442942735199759556709812391334144103074960278979244019209541248825348952315911174483168072469488042511924692756941730078626326846784008225702413646537928386699459085333070884188860955387921901814240613878829878421044735742560432040437797073135853912210051512065079823082843338401402285637000295048937194427366184175679392408182035241428671130116711424401385912386072352056174056769520203863523609553705479243959084934393130442084094928025931734753402444128446614722218229365891337746548835550246822208095965390777906459346827595647145449584320942238896233079909327715657386317736665518811902162460405459838631917834108758230134527907228605165775811985079391635142909538939081973967768744865921532821674363405313230633817323358119456480842366887504649637480312769518444209972361069982591690660707315372489272798763747804830718388924340233061859874239665946493053558223512680617259768435522089368971463051380358676977797442780687103700490149580551584897419357563806303244213493406909307826563089456591262885688473183974220777841733690144110902961605474561816227631927584320189521909766947546953606629574972902337344776493703377512877888016763172098819529300702574929580310043794535793625647765998456000905744833214385159874591597632541243558805090835804711143285869910285550940181430168667314885624223605770343974004416624509730478053035536861931437571676255986638989692773053470177907017572469008803968026803259718623754787233176556223705534507731325647246234647305313581070848130738834721687151140347602704101011451581827710498390171256318551539561739809565662857451600420815631383161235526931161668282416392397903152343634504891699676830697417363984915481363077334321120385023792343052649749923738732439770033634573609017250059441340007028996446976343109482974539820154367928195034783950058550008044880593794375488670225463167413003536187432314717988964717928286623415624280980126673536811775986592444769572122981231642041411873593824430696907342399868110874006515636996785581505872931754597870115091238822290203969142091041359379840558683163390863538519194431888391653942308557306252463198433710167853917267839865501399027860813142022575361603678893649557234078079008743539348676343600731969555725191215430164077822551075932133588300932793081678539649532775241444784623696432135898216630432253125751209419039328355833973811274801385547826048159178340164393868335441122901771571753221450414737987856720329602215574082758483289782145407535473221344137635786615769366491491983018556248803526442748941036825911868057880232643544749919454524049003554281504494815367518069198870308022429523752047362863139936361246597417694707221534856227108775368357083640989901540239561437802912845489804327822015420538422235288691130864217593370766916174636739897452098926640960347817709929984966508628122991828131882376055922429537117212083616177942405375907856881927555325434951641017871595502254516477629062697922916024015787377814459808972315401257247822868603345406730049975224954194144846673717875938377274149741014208171952926781201107303674881713236030943848218350181277209746198828928617751605207491998542044221008679469662138121312431804978062081500602519967536388078571698269933017920436625751576235507002960024101630937434005837627784478523000481328616424884795754957381557385877055556867483879929145363881812990340531305013060849804073168695227843608455078054966316292208418481651457173316465439807947051307203198713575439321188921426909758237175953343455686012611115524264964784476700890554614758790064551084963542731255476446038070152346231060654242658925321330129509442510498735523994677108820256848347166982324614085471564447553542525025111517328795514183204034723341405861588421440637824724649156330757782164192406589117431650757708189972532258112763818314284509487131328560265169015291983028023716392646688628263748025216119236054055906695467982399865273781877035979797860925639633225292888486204373364129215726404070141369824084737341622145162397083797271370299838016334461150049485362936994515460412165841582285470246104447782688794293203338916485740104761313192085550305848353757534778529009620107877683884865220372229451550552529198795808816105984737529298132773066022454351746428114680634636347428791027323502216262330399143429258094257177024664562448859721165481575096780128210086074631808710955022414088288054271867257971350639578956011480135360370728653580236436199675263579302747647585988455772119863886468229884462034955609611373726657043498983597810828127860237529293032535493220244997169656462729696073428531738076482011762391559642651845354073406085029153953589680530158290732327077251773840160664098236453162236219192021541589721068226203477858663230423782419418535644469692529258646871806783991457186054444701161355677440547261092231824564013879414876141090507262127870443064137250306739383114896884151274002482025852920347778061360333425701642686672371577478212012693344652250772576783820424090424009298047598897607743050607750441739889701625325285539706176181982870063540291301883898764991422507863231450123431060391584413430411216542471368034283390696884174921705907899745947407259929708905966514680585983595331451934113604320735599710112069188498947209169790953498273312799197042052049263979273338709879112274942144471523816807588498501817640922237312902200764473692723803168600781176027160033977078275288990463234914642349862023884014083870671408114089499136863869412203632324254104451398280434768987168336293142806751693527057540381667146648816993920194678788491411993728563533655751607111726562045723734388011199947490679010809426742857576779150003916695580347324699801337840605940140314146197833634579733928589318938921610766159309028883532250002681215684774841981196432864614438050889574225208978662720894419615029780736955447068370545627732219017833594329091837583457862527186218553944297770768692276905070924959970836808603440297175438160267066827061121324377632895697863061838803367399646560642704909039524055004652797093056575761004793148116416556527398262776288457102236494707576268734974814772552447265167733093818947124972506346023060052679637015524128217649317355078011078993979067479878717677320664483137569127397806155238653926675257951751638130154617513034179476090696739174386883420904122704093072946273067192940036499088217363978873760293956719055152815897198467598810568473994842590116436513266158725721888798731521074073548423783579576912794247960993139072011615902944156870937805416713002760731387443590938853018147742820720404269635923516388794877288419282255131945112376569901830267417236647710309008831095429921183858277756309532458483688354458713801834318378724534897309482236034202640502855947639909627412161733343921058179955868025862558322207312134738981404864631757136638913862978065951427361574112752184523432435826748491287710866188206878378188246376909203091067057340646224147074416046140717857511688931408929144452362102624552338025601667280037094459151419996123829842162039260715919845826192045246215344050667967034666495594966362984209508292209962436468630448005099866868935207128573312174636569013192805181418854853931754043551333295182639171037210877356891477516859090115275973965293019264030549956546063778052244534914595286111946304092938561097865672254546801325064905778496542907718771387733313042816660018040625718542105900827698914952669263291308726708717141654711036304586832735791659285229104787700950036876772990286878739652981389346898125848458449583764961203684552865249400359444004292378971616165177064929549469246068523310888486515280845108599275876033724203411006766093203011276302349143665255770898321617838460145457404457305345218626003880113362073008562560590682183552936860249654471871706323330638898962387171841961326040783874105379099328645374874171044552163411082205268681810465891879075208696148523135751112727681589001363978474548878372379249090426694745855431913905003427149690363284421702637952227728045600595465456251761076937135842369913749344176671021887739951390930619765582699761212576105852417575721835529256647752152265131274051804260242669521090416563955224228482749949647748032925712293724061193340391559311870622752620185075782092788534918343811181966943547061688089127696414550780202017570875985861635513127748687785063922586045545387201049359573283781891643613988953379944125500745502886266170290820553915363739813288303874253305441888819640513243137566129905916191588404928635168410993188906113604660250582275165455925217595585296885891284163973658385996462094923463862672868913918261507662088635230472639845495555106901035782242832305866760691642798800533004892033169339641403293713486648625082416506708000558879665710565902783306925154904629527869826629984271219451497960091532404618290916404804619451172404425926550402758013630535784997415492069584119469848112183435692653200067083969314221133763326953967442824943411437981139285782612214364879766273557398314149030245392355697059108275207400626596569604076411057547969931993812109911319367595122070936451536147668510073397023479260883319811364691190896505587934846627875079729365407484426698223306967034248488309336318509737410280245622483196875332316768530325679844620161284363112434084411360232380459715831569626778119473961870605632413472574501802111498552092654603907188246725220897552199081382185235718427070100052878883335977348103325884944582129747401821845282059570304132792664971625819085531197852926638458907607772891302449820012895267399413101092795156195246386995123659120807294976129951283653878446909331105874395582083519530994403276755686036367679803943273328189005232404937076150877019885642358251757395275427946495810991087165378246494649666930740196656947894207222051589370419590939481383913971029072985750756159953754967106601850031409735229723853381591648557096915195277116634613001788719120921010612157822858892634232911618739866975673261937606756123163681551436295431856777974736859654576569594381960149111070578557499830138264455893827730654966836578051487420122041777480864358296736900553426372591952281883226216776964387428992382451295875160367803971506282932363561736508814714469480384658028183967342751480491427992619243578606399768732444529560829381444122223806456017358539516849742184949691566500850542850375673341056690609806715306510458278943945750614008605534556109811479876193007438990670204001800237951049341767536574058781093295961828885409745840634157745056777560533963477703721978134848387076015662903547989042019720578630711514846384829465643050601346849807341781203683720101219840118990576981469630846333072366875878298521451353327158751191131648913386020027190625471147926012128940824226815174336562319882702811924694992087632939441705072327957021218459511856259819837853662403925281566422103915274058667881247230764668191241341923239684947496994314927536347673707162842478967859011713547526214792627517201526665648567997621921374357315658307677522133316577731938693725190402099316128575256363980056914541485633349294020182962933273765824799255845803599153243113258481449592183411855580466721433860609893405969097926052598366889659599201451731730596743030628610563454866978535376267727343914079300725733530230305167359366945662202971411917575953212371768354219931211457067647391533487353085503509077559549083830574510469085597142666803966900533823549584826205809659350184834111188222843167170725702529153101809039502674414288719357523784411250400840051836717055912898208313632792180689061847562815404072298028430652544880816407274347929590584636135654529913947481587212155827982874040285944694428031270483786852751488364385469557289867191413781169298904635740694886070890636191766841324231667716729160990489031365658626428764181795432378246572115991873788953356076928373195522800838476640993278196591454044914968550279005094633360471933025220770533750355028517688475817812746387105805056466048634062779833122694990553752762440165560515314993630231717909634255089364850022949673166393932858743034873008645201302596444214875756647435222243119650981797379015678013973813648809914153579175051341092667635118448909652061506271831078183541268772229978553427969358996212971738063351423625825950316989461018029732389380200997483684242585315431745903886733721799371904484297031701013086031034079362077034613361417361351999732188321987814436262368593683364513106786875719910968353062741996447644039186523360824950091128566972178147181699660858405238117928582254275944155382095920943723764231809609314732794010465052670630646211216034079640788118924312462122935877299074526020458770463952512075620973101710971105603763526143543127089602167569653502474183334023582668622928505237689768957443593665755665063954324209860197156262092176306939489724765217166934751685541446948379113509723230165268868268889532111391429832572334586628048051274939855799853255091982091115993025371804107296010620238688007345961562589648307818408015645846782404469973128875924960349323386602232194452311611917096287584335189385723050561545462235554227289204022334410101472981257217010627421259280035190299678615962687476686083365385317888741061455571140723348970456393932725358969819333224398000472236420470171983795379014269254860009244395355580202170170465038130498231038445404640483891250007899979603966554100421884803150136376161714874185780104338325687900630016910101675867277183021670230752892899704294382571674681328341755609771275815945469194582198528426490366703987779184732738480134049763541590518198710245787628913196915857293936297315328179755857893717115049282902304027343011956526404228673827160042923993170227871246414254170463872631770130395212796797913996753293800071216144391416119964755975300014225097375781754481672020419026363963649862608883587619754731473371840267053887338800525128673122928397279526840363820034875074592975917256096453779542426142176209118659309886903021596726332801479709577100998722746347469055781362650116303731262960456218304020359195664866986424143262317620686417623147722423708347432459521011595179336834908778336888279912233782401062176446240742666257864186569152581686120513606122655649632777720858611981935584332822768681434985750853769252866652715069669605115982163859557730276700880307896105163095616123199893335188919693263770714646306523424250280357746938590551198452354327716032171540115204863225364931228118862139309587913925422672601471299812655452123062334341574511427103885319858579761566026565499251373799424320107519243217052681207872254525052247511373068315581297364276608348334857606100597979404684324038910295862724341413764965299310527585994437904498483595634557432103833771463983445984143700288042938042172522097972618947554235491227216330442900355555070882405281790329783426461724643154097686386188390818941281486569863839290977668703214204571765730414277283685192184866700938619688191805709697461618863702120545227432762914744778594961208422230065149336897236548836719550302643833467987420452671160328242797645481261402994108539935543111193935363406525041750977639432603705458720917540037330501571781750399030321626011393100809272302028940855752311302825586041521985265270265008492366881804402230069805074768754417194574823009263147812477990088774552179699422639498035333015102048939954648783793205906300314086746060345580130383181610851372663459567559281765926721567142440616375773904135956966340566336082670419089055937689386238047398497908717684970915918007179258021059777838332369514215048958264616094838789761788305220948989372487330515518032177666576569802869047146987042066768986435214548254105324328220601557123489852631233325470213144682630810236516710255863056162988887696820670545996142677112229416993917391163981664788081657689779302264973538889391874234306552598736645328216717016471948835279982415233740670838577226838746810955167238293338537944729486815651228137008071036271169019388372778059959539883051185293481661564436660141091991479593706628621286601379159317366102952549583422346025702555595504171533301537900393581830013158668739253080830165314607327870212336216285534753944282062378913187381059023506997912427646632749568533437008891594553407368507560839702127948548638269291677927770231203304779702742962423084739314130569280248093295756036407515443570769989607028256261802511396649555538034822321829896684118971218794587442802666441226844789391862956571916950217015949927017854299269809990476517484070913257573921867882905026770617296451125395104232917230434454721961560531642354571693904435369064256271772303020389064586979972536361650188380189840796750787631568610992363294714985526703688545356866460191797354613935156023647829660086594289797095024799381046201516448618706617437694010532453270970358390384453801918801751618545738801365301145959213397794664553506099285684120187234180242534777034683164453972071463476256619590064074332314735785493507115339849185179707137237189923985717652360744613013158837879107017296358310009949713031666344124545619420185200220360365566934989422911124993096758694870647848636292313247693283840301077843288154080304017270588929871155981267781871391020855377523633826399458511727523973749424109960416411892717529307777006089428248948683686662351635270439862604697680209818719761616594558245568728069105505880873115230991141745313243194406663209847341956910234972517406614352135589982795676420582770237395655436982602342666091934951908095958370305243328861893671760073942277034945011572785782496101787151256060529187429021992038976564053903868422918652973282552455515343684037462028918841278580850303133869760293232118947094210329595134797780287031505340776093694616674441252057350733580567388454956909673939222401363632592978055854169250299631656606615305161841763266555579012586848083220402465521008121707182472165725390940873143479341734381699032208544320504122996771916201602739806556716823203220555163320280316336817826669298315377131813159179820851540530369855284930588861872236327606631161230222929318134455663098289546551709538679807930710452589300560670594054904789895308885468047508170164673609466264379519088121037073103338360962685593484169728660980995520104693911307678262312045863836681985257529462044414839642152289701604768017241333185599268842823305474650738838303213130570345988128475484589909933996580980639878999557962544906239904164644334135640458171662913403936191363459962258636944578952789461325268279763581530480302024121143545880316377846919155197479707723160295082289729800101648792243504253208500416477759203445482379498875044288121023814480098437750427223158910612298116034709475335092582691068248411003293072315301087128404313213210186983998854576264607929824785177308593456505736543539393343743290967142190505440014921602555918924653474450791426138800194854015707893885608401635030590191553405930247815787024536014216146507228088316572137483297375981441042143408376350262309855099377785726541053417932015911632900425464563559656328210282864332820732183818901273795425104899926775896895135856321472009630956158351726696214105337602798698841837880436039666100627075973562393149600613356775125063231228938802966520223439452866156334618078465923695265201139673052647003923343721693328615463747654305194698091155481653584722732514014255071005942091294570026650270597734909268880483484231772423532669514891028055556505732435468053189258938424291790602798261689512280923617438713023604674027424767725349239354027596509657150193930829791613634107004229439843069735367670043486224896687824424210879820543560132188857013424645048428593026887393784163168274176708686646113248161181436046781910170497391069498795378646626246584068265409513965851519524014018940920956374434286299937703393747698915496215272269934536476559068297572530766040320562638931850307301661730893706550973490792339191522744618841113713332485827958542611515304060030162354647788823024309681513168540986917764383846021008921255962215309394693987040830235838871040001808947176311114293260975427227381163424617166880452088470392215141802195708859437075885474156306225339666213242864760171477076917697776118683568268444511793126826986514112702846488238147658019479326512498430984340808256469876759316003174956128509572680145380827624624941728711803876665202411387441180856627125673359621321686567694428872769916466877050271545241597821188383973321108164516225937059735603354915889218301307541419747399948163406018658438729222348022470386528919904809739117292089836315307938355018093522098636534972118257983206551779464807281773932018801447181152096558780864936203088883217420022699367733848437602273948273926816904336563152618113207034830134309370486891059388029782626099004542543422468194019048129700117789680471868020907635703630440091760436566212543117753361509200970835610436376778565519856476141441236201761532224637049310973295439856799151084924167671732650851766463697911279560405466612953485230037590207097967080951819086671262439733280938553603823409733974255711781000048611766362623691014662531544495006421806515812863139776280238676680546552940951669223685605710825187371446641711241344177232788917752528360899187220119773663103361894586682550872051556421760352527968453691836309648571519846163677027937251160406565098710259573687321840503551691247107278588211252591705058573513439624469224837811777782190806507636616001227109615474953484584924842943747362561896687639486805164787989795733417419332557228879961541125712820496403383938209830962624381411927071758809019655380424558412095966065849878269526215863913771181152528302078159351265741883827935624711898513926067780793736641774289556631207099581348033625489124782437541334590095551665181670289756400125094162899657294784964362480954584038028070375744916899684325350209979986597538546549441303069803880800191560514669334642184133824248868214318964388311793256035426770361616870998290516734641663845064262947823305874693165003275450571593278141033682629429132933213417801384174928664328684522952878528658076599642929312745613355467172645126245520228616046028004369722727888054575659663042008077328089082581483294084707797911226304609533721900643406010742173429546332023997872586418126431107092578023710039746690665361834954599956545665760392716857486958991319265921189451353323752253457870035827565545604042424982719278246919667535247463248658571398756765894154177856217284924297131042189754547150328433588081569408107374204792686676020916986973298170863794767948106065960746184122605573966541742205632939579278667827330735151221126891911172426267322011359947539052207243614746638029592994937320307451239009669855268080365370850650195722436484507247131612118688000329947689542132827697352048772145601760930277426870624319285305403379141865222087692080278492885534077456282587509362175330179659046528150664548111195531358839555420187186365691974877244180058127835508108629863575585499924091933640368549924134875009190790261781676506912566811328856744765630948908447845217478682791895275142735885485466606269993765905760202504403881421351645519941255622464052341269109827236184138299456092999604686335693858400597322318095925243974678822530125818188707587620514665290914488563776974577872733340677347072039163977268623997842733988253825566503456713424944698635762659428834741189155122351271401314804591243088238575184125369868238968935562995606371990205262909525840467896569078922439642299122995809275851094762115233524973671837027983657643537211421843917536564905663110947002414835545824982408496615208524955835718893399225400381255521740535061696657170652840212869964639618612335037639072182330315882920618667685888707222102510389548182430324007307475624596419605752282149023874179221774098888151874816275210280743417061890356400440840295669898824423675599264700561639848213004034111911949218912746392531567653667529040306048857931527355933428732469617193354626380525100492874585595012938151958846330606105107174212679744359387732193975863921347208968508197129965645179414998641278285821696072770575392563421218290816842099119399805676363157641064746849573777749539484281952472189215471873316997380261898400954968509918235918961209023138285288511758060399705475528597835083565037043220959997971922719297620814702735384527724299718657581663033327616636292321216611916491722743576429040608390859639761759463268041736820409908573304307540295016521109133802383697568129773868458004042624181229617661164121678460483733685373626256517875847918540356832208478712574116885700195137667781922505379066378031396937567672909596457096878767257976735310443626263814337222198509036159774292891783924225280456842760687228555625855158648329687474303210493493372601922852345347404662758130196513811961530400450433837511688165665530566809176542297817071415540796757293893347553852241584628165809969435114644484906542457398158877609077208892209278188754191584129483017552501231305099790936073547135451398021055426601161712925321977457692333465218012348513808117395074459996307153931695837531918328367596863053744702819426142702458317965249037112501056627840995498846870837837389124155283151529401512895706868749124464599036382455617713104017511777589152070119744574194140483154156674459865450643333670118503906240070424656287677343629175793372110193520898806364833091526799651164822658183009028855464256145372051590014219311128200285741420405242875829952604381903518844979411860870421700222670003834589539004900365876971970614158219741515181307411299371714941735640104205832990804215867654074185595250176616230952516593515030054441960541722161192223780166548777204627800074829252326734084805150600979903899812066754380401840704258427112359366007648939807916550438882125778504924518427810391865018705355142657527781411823090838450822499169747674506743698174784612286128349482247341362103403790445676293135289325741927006286359717762884966521837377226528144768182142631575416803526230801032046414342908656199088927619674338560953805807111777739726030175862009032601659272033027182831723196992525773276226787930239653764573303115526312631485169650209043665105416436177903901886694571429454718398837926013524178755609788510114627946284399270937098722349288149433588097359402638123838574986392162400848998221995198052929727839706438509892585980377579764188394923272829695512111481026608346817402401955392225197679098914623654789041391962010326306924180930034453723365189282572778281662948598962590605244706024718430967980948530097661501631753226353603539580676551502118302672438736326168191434180914111656508508615834401960339776315467318955512833565063593478111120278949594846787168603518503235766596444281816091292987647603646330989373906046062433946179577231647888066463303198940039016141941342538131251510923231782044291364967942029865650236790334782229591559581206920785551498405064505963661729594409917989785769144972100431194690659057489161027761486395112122524827038448377391466133810369376215325237252247272204340993176575336972237685430300322402356987747157966219575631241096091012843276605084500646693795520087070058033543980746133914801135267274603964974685101693087435503516193505921925663382378188621325179203428657266635737503940985988193623932745628471991303533505348369425009148225795453280642828592274098851347413352372847335680538504111621227911577204393560976845655126238896610638688370729286136306525002160260761763755246714589057038194074553799385980991271173487251211055468402194435478654816144919630174623141643405485761036910675698067103924804521853654951198559027040673842209091751532901243766277514214341082848100553059385235337829124907904825718105596658662172545656623369981873616706765484318084245783530403528266688489675298361470063538530921328649061063459257246034196478768172940774015300482951835971096121710867698011890362925861358009130126954902575206435323756000254216197347558857534324121695761866039229951456029951156958889769730594437726063281973002284675714131134995367123981086530450161038830223066024097078560143943332415594879963008322194236515554575775937157321056997083186273973315679811224407920803796735868662656380025638171300103527917796276338713339089637829726029562584215101629949356673352401717083750535813121270695347677704880644357688008486169528339265717042470718233360328218082179754774586634134572289105727550353701792505712317860020027432753929280295775788835599890181200768895661017249803448791413462143158311010002727748065794984960619834279428577583804605203863209931151304438551369125340225203325608685912655843281832160852908282572012228161228031171168777974681681115238187950709261237985729025428148889795677503486027851928589826924930562405696861388162746207510618603202891099563408870893203577556967021149869162912240405979004661943114701412046568585207478051725486578624381682312619308923284096579879747975618247218713117420604332541909085659135995561898462673701928958198405166897547636925136984355794844069733299380006699328512362413345270910049038664261213918137167641379925807919607794699435605897635288181193029539436781250762350650689183452520856267730063191311229408791715890323392021030780934333562431093919193138340910288642488040973751413411310584404598575574404807266391933544196575458205638668312406930444908266978933593133154678213194886895899867569051186358990859932732820834177197686225185840430068856712660172197127393483567552817062795202038390599386495496177064719148063881666923932600897075610359663975981346959881530940335079208843504621557600973071928861301749688934418365818890545574316844128521793817609965922508516654929541024066137952800635074772211529283391134468123218148638717949998145513287681943005116600876480977174195210038404917011994460544670572361943653443030661375819406411785159693942199221324610456648305040270773184977933018902168843956403371146856804258105524746941741138273132316012562414145245339602759476878174756909623124457835718949882756477115563262509899447406810309864722543061375521271394236523284304265128401716739995477320729024915599326009900424045879474054257651246496339394372005233980576224517594881162856048009476683202028354324075784866426775611510390298249540266549950135225631442715645441857080815443595884003894213266491988740220221384034115580543543339823078063172369798392903505267971977403495075105901547068253231726485490325707638080741748556596247488977977526392223951128265702535210561786103449779921138361366886305027505709258889891388922622239896479996533312154022996791716746908404452457933583589058373862878347547408331299468584911491709381792062546850521711668728867038935578901614436075751305134510870189685294032081900813690942700619924543858760742622710833399972350124261033147162369807288547955170875181815375211180572013785230693834411099327318918043737376309713653442359456669825083177454795184180295041650140485154141905710364796352952475641884781485013875545624652026067803664830853969286217887543276889498493614698032488235936789050075875761077163776693020530448707746625395971210973875353193949525711430220801369263401131835750525946196292582652191128376985899706508401108328631481543465946038435082552442650466103788878861312701948230634553274530962741073787631174269950825333647571000293136744901872923602730736859497469522687412234290187330874899207125934105457238803728885967932252223269985073245719594772960689801311374451601304857324491582034544459880266373347598830265172922117349262238155899053445721195437558723158774771455986685011504032225365190866608596653054310510722611972633809999278418338763443316214539293490639650958284847233124526944438746380499150904940803599152478906610097776691547473661715151724123264022704024699097873510261946714551443500773026029436070371098058647565387326766147109868980226118611294446828358342795287258088614667002644943508148140500752800666874372266084624152251269109314075479367597164479549998407553025492007129976718232948959146042332024569150793707682995813393039646632093650353452532883467158097797509647914925103489642758591985417811235962508120360498891928079517336829280622948315544155481337889311229637791663335766800312499926892839399929411031737924291577502623760003464970747006239471568024663725328095346046646068092915631354359175068184340062387066319587086315361726872279094057188735686396378046056434077384055632869627496026822455190089019346200813815528081490967013653637118645623098283723486423979309325866208186948611833996943281923769553494001564623387712970677399896996513928712516063549706906020521327571156120629545939699131851061446658990232967986396700943938256590241332540313575363604787031629418140523941864744054153972735203027399467474707057333315698959230821344762279911139749238430418412821776226000889513220278339195499054330666522893672145562853814854058183510511608534039533623986482679524371834853467167487218187635863525541841392708200639213421254951544609960509089399372721772503489128528194729372730931568915533437333938477300927108023649654273495136110819745293111256251193412507634110105685052993906109208740408234456552746117990797707786659915856604002054983171102015985973217865920192341202528901567865340710795576556909971161634494921287401574856641017275322049422745447996856457821346168687613122523447311723336623803982497105786574748207309290675437726437293753337278061774269233621149460813015180848448158591093114510828489143506615503369500212600549379907506818880454128941484179817399748445718163878658828936126264797951964847109804415796711360570831562109463294295531899494557297605487853057013855502400337293399298181945808877199449366446800214341520507248745703166780326983793468510075126935036976780112673760868467257920772597474987328908019645503553684284584109130830800711780079214323481556015741424770054402755611211417027580770488883398705181157941209206117377179205922492468193953166615432791482074781047622161570549969980785571796632279848940915304937129553338457939604420345342601824769321087991090414170149777639975994760498992100656752680343846104542088214024470832534061357455929677088397967001215093969770140821225779365791291425246877056638790659624187615962818406393900471746131095518537491494770765232410273167136275533064786169509201516841925733514192286268143443541981846803079239272785008887494973343526107724292000180773411767927893755782460659896160308235940443663679771742165358332440205610535194490660052718864880568057157767503893434807384389747447313400241079254283631837681580362249406869337052092270477360216377048515320316631260371251585175637987211123802404132242138430271082174419527157174866431656944345507542304796762496902117728100641154207282952511737229839522352381439738023975996829423829891841084113139556191889606124430388712330578722300402014053679917339802841703610862304642594550308350399659328017579131685088067537438845515710313867678962060364500403122503898487006010324483986285631645711519348560278682752524913592184502230453551838900291600636474982511398770949828812680248401563897187274314847722636323477365419623712941820930161045549148707640474853418272627975465030869153302677897582546824415271298741281296647239457334450009301054182316843806154542397851875241619937537829395938090036901147772144495042907769952677512266579935808892935280918912303394866585126615996595846252822649457997454544286352353672565763072994373558343207251343062128696060594245889048084074505830257379484337484077081108802905357779895362964233283503855895378495050439659140236589889041170190025665700835080500113344354912012315207659233552407987633959512547122228062361751421946766621268436514845095800458759555709234675494728913218029659368182453869692679251371478355020543349701812685239836302535957924116161611295241415236327251804921494997746042791550828813737253621858128790759062616359355961317583970161610783178005224804678739400375657185565752316828994870952071159730607295096175764837344299525089384846891264500358157903439411880236651424493885782950765427830659965179364802134604254550059923167953758295498790911759031439870878439149742532243520451876444505276233236735077318825721860376540933552245067794918417075709665893555508830410608247690842993450797592189236308006049635276912713472092035936074197108977518236890681572234410139256203496360775396126466716004960347468092391770052477156746542212762474910202576833295501636652537827208269429079433294063320387794883798381126874669089548950169912740298651746931502885656337377062167600572749585304272521490409853657356582561248758435509975758884123580148180575088748476694338045879965981920298159826497291424673059867661566083263921311991633667291176173671887035834851563584500185926811566201723049729306225900916700758392978963819550077446036392471394578750683479692610452806346415400382286788196762266754087573615937678761179068673742408720708630827636394668498658120110835652822953111484543746372611995868265517779578793303773607171040125531127270680545180724902167937418500849549639714542642111533291595696824244401538711389124755218980901211868769179547295821176824747848512407311746985649348434011420883865890852549160165183931376687665184694114058350424107406150890119606503445059903039139231943794390622278900365281639033029020569349974758369327937312520425489187044250397612203406113480416824385151365491614300586791520266749498526828698406965411957854119648742843748045880815930332220263818952501040160620398625587358478449290835170615958848960161740938125259561383458070732934771873282156765215306148616754353663539168193220548955532526634658742556133197536410531514822765352704916481934417752195901973606838810298783663470444231460620678516769719354704633500154567296733237271547899833974103152687227816202385304828337791606351017183328043003405713358774811771081045600596866948161802523079220276180786952463726828723794790917022442303682765556849632465402041547962935872239637035408682973436329009107463970330984283793012559614156252909234183506762138221498180457471648535684233035626999036563173319458379777374530535412314277487409010150658603515972523694238890777196386061408108604774588979236131579611374214290771728670366047477379312155408663681588360550168299228823784561689220311117541851759043140207564187880755663424633795858205624951422282261171510218930988456056189582213722530464511576731264354538270109312555130478146130924161991227748199185628719482815645533379501881915262337657839958418202612394733271403351238920889399157439548540619916674886943804190618517885050699099231499489490412500525111237945208685737531930474364176832596315225545298758827982532655257821740393129042242987555135972812919679088885337075529837981608876584318735342539780320363122406221278154309290123054866563367551115424646210081814528482862533510418956086083128198107311283977898724979312635505760464106462748735337200401663554561910800823955780456701969746061137836617680313198261891112972213914090673474290744584144308997992519362479982477616633341061047282175424380033907345905021350929928881054234379243262613044769310555616532173986042864607101375446600331610654504633802889842886227122036889815867056983281310861943268549037601322105098706257796246827486651745699392487946396279585785254566898052766744922359156035254762346183820062306134094551877626640189834265248744308179260981507138311302915281776175421141525017641670222728941667187901844627286293104486413446370396647756493178121835749260518234549989353931464393284522180434867726796491769770226859522388020863822148192433284285389541230632378322260195435854648377419285363284356715730184321297919173008729458987431869895299006116865398014652357491685215423553129087612769518707010902606441003050558190655282501897034633142569442748316502270838228218713012714525191817708502012651583177595772247966186460839287340534273162116754230298660903805600156181218088834022218798396062304578214304578079756930146451192563450930866113725999005479431793834355194064902109044225612835633786893641437177955036502067903032546499019265462060353362414663116542643777892642055711606950587162862144476629528194602693433795247617847796707690329242173921463223939965388760582215316428700798897571489445407794234799571759052761400125919074157168180441539673695190369666479401677714747992263047471487685967567809325258124901141942338613665196047205161220883140576751023239645846590742405387959764297872085820139868184046588028658107668175463045444510312048512823846935288015977979811935290821438308607076306658358099313610199786579251620722662941629034311686699308673129456915198253934086493599986284687485139980570714841985515612806013483069242134267595723119101389429400271006678699398504069218470198942688326222164972672046594447187885920234132769394716745384842107300761293504270276109383929924649975184044158600157851564674188517920336841056815066235186256089734337204016159005673437284204558885917209252111629714593755238403305145531133431920318296212259382960438466150706599269890450315156444089818350762587816108084221956571700657882643531291782071133940480266856106915338538806435759569341962116036636458121078809022534507657026778360510552085983510425506284200847280437511243559691044284941329852558529427875644776452953238282347518298819767329210602808739060366234539632135534702980351981687651571320241780979797892989812508142770914933894657544385237115712639067848972073794263311686605111962956839048017438081009932644207359035423685594476604808793665471485982729856386343934882348283329574708848182278563292091777644114632521077902900268099816991157094564831131353492242817048562543604111996586216274547883066656022839394417927907439695998763923801646582053966569853775705715885200241945712569121243156333176882367853450363859915678288406355697605096088630854526381542111976609888943449836294754819556981694835730706710232617639230176091696038081206469306681571753755933714793558544735561471752817587915098924368467402542246557239013703651443047723849591176345572625723007338149687855032317842574614126258416530331418183279142417700794895472411037353860204317729461073983126921656030547809736640768001925635450812357599714489200379374129682551738609702767040988544411214247689897868703081999445161884696160293614574746295131123114427562027086300946455573506291591474800123910181371435890152977649728699283852780174534910194089559072079157753607787790047842068287132323971236911919749448124113828291325284735741794879053560034606340306464963028988650866264948718553999317922543822319581274658210053252570480594375916806883136806635400658048370872376380250392752147996267940952531593698175994512071470633943226259016322851875475130720894620778991227231725570591931068701030234352081987506705188660024846419029366072982587962414918108240790789983066172527586900660957062193357081194363819745922219906584943653304592613380392218618345231920010097899233164796303235045121087347077485809397356974541005106289627721383551742268817214321391790220943316772959353237741373551538868377022618663585151688184527220302607577524026780376910024282378938635382938617522451856262978759158323608855045070386330931840103970233546099903794934796810888845738332991439141442869677216346582365669544988125732732697786948969139265543128529469453567232997119865657055326146156525835671753769899463754054988096332919217449262836125095192520709560914933395621090790749734962523035114710070910869702551166149534128917780421273706948730416787176566630558911803560341086693973998601083743173103694656303326579431696050054536107837531315232884130418031879411566470993973989425286231738188336201685769962653323361268705441592705870490504655469757787359793502535806148965671600993274663090979187732352569460085466295748252325942970036136198494610481860679602049434697374458253179141878250790638365286116235232892036632805536474998479211851932046566831981188429723838494103125388300358869761230580048268028723926355011422936970690118449294182733850227900990249210282858122075107707040642889487353258019205159828402930644591857484663684369789344861908819207070413791618528585047974173567008889386883796025745425269558691463273044174729094044247729113049767638258303982948361920330835831914284136866874808555528121832075144463693588340926315176852277648358934134839768692844740523749322080916315880346101523583738171839477768049873523241806837673068529865907082264322103218012421197742288365627616715961912599756239861007210244193857671203234729177912586866329462912473927589508526809900177344992375697324819004609750814168933641023838260504456628465667992711006196565989894888406825799604708417443125584506386372677463457571972672056576934905679607830602021275884982234857142064908307060113858247842797620170438304089693053723865234735865945665519954646861165776732030816026963628183473315157496372536059381482493979484984063421781135469698736912000987982485911674412512854245318852590560981020719140666814425802111010741588509656011094019173239869486727603682471898414417042984032730210206101961204285456329063350187661526970153372982262207972515749430990975999876144162093652910189339870371960282785388569712896138842886950622728650568127734096314631992125903818332321933924433022805744725802557811620293973692301341557086857992256051781009398510501843486815695253781746052175377343825495843519226441761388682726085911937192262936207601625106034981750333711698869171872101177123634999186929814972728452418790799158244225884042042919252942166397860259002457743818411009348671910781930828572827933850239233189508194694579651775987466829101238209440596060507139790155071783000414242266277387466323426137038881261319860679880828803595177627607173857191561004777609730467635817749056739446927372620966681741738854272679223667673042808431274228265618656250628800261373230811849366429936230862153103746968180028034985300425088971335172961776844108568054808895150729482743925916280861276670232692756837077040742939493183329455043187725534331243231374519904479405777909834687555316996179327489630417342684621573389989699357308038809004313347674083457603209089226170896573133258020670227250829225713842994604831445916765428126634210167395774127540344964911467102345749838993269229304208573939456569973625670572784361278457344300297037805591186846167287691442859199203613449264278619866143685063037185705079438629013976450602787641884527533465683331181231132486320489295324131644879090647448874053361993176165713903085737435263271327753052714376906079072781751589088284804397675271344417905027029429960187707226198900012462472177746968873811995763972596628955103084040138291380991980971296684511389090008109639719359825788535704652182449199173673180024412043726445400920125534491850823622585563793604054757169166872164253666333449053631791983601776839113368005347204965231376600360304280486596628928460750964345299121983787857245953756522573215171014946760028024394651223137691428690427061613187459389556186786266344639081660575483749769906406820148199217733421944047324126799732224435734583304060623526946898083164064459340220370742753176553509708609559389587916443308419271201523535973818923818627489290328657495396926445986132633853322397475052586461928285045582655606945587615869710903528175847832435084148793257118645265636183420032206856504250204162557357738321268014651794327413961696608023063217628244000571428330368022191058346418802093941011516343591771599391476865815473299745685590847288998156724559052651665596705257644705343539178081568588093749835200525841049956912012771869928731742088481243928132024223423875108704191138660120134975593144412203987910631412840766397324544312731273001992044082033618961344989598254517817279356072661268571756393528058765536642202850654409393352801793188814028729826291874513172870838111010696168924970011913402777247781502168916726936931511544626338767014590871568810760727226231931624022118419249602060249818142727548653158539168860355823289576194914959207160045577808676000587337221017818077197361133510714854332383193242230845954905234607891456773032771985186616305029841015475049443406710343212151575544651741674873179340795728757598441204631223839839989936048709425726969722244431756449199893185674250796787976739606876777053934886625265912346346161447542980347362609879180663450836007376494359770945300583533016512426576069111964386124636419924430756486153846767536997497458628217413607154252310446498914114400490765202148400626605947473410423138635854104902508118365754513013544126488002557123932184823033462242148096264612952205478724654146048035275325037223458940638356316832948584588476049632114977716590846988365529782463208066537671603655978977176300969664226041756671227709749173657672056065774950889006296685953202061892576108688849663461433200342800449117757031496649338751445627477275921687616877425219474477493441227720902141312795409055973960778534077308999640369593349616523603095121296077309965136374810971433327292310863011436066599273343595316547938608535470673014355857208787128520250528790847700743806965635067684956577624603550626734952681858462396437277024366347339923968379205171153256403866864588944592429656381887150972004743671000154113480531193787813539363161948351350252821475324788156230026918471505007476399664101240608720945735313993232193414487917996851436650014803305674825196896786451174003546896921784599040834999638534061604281343776682979965529666345249012161614171929580281469613480072460504865522513679403604788822745061080789579644795104550179106590415489855138041014138038741449565452104192205479180607480070941565529081268390764554266976754523357700821759554809813265714241059953842405146635045908400429362623839581565362503878867316603152702442634653623592702345800999082181448285854158536524157519635592253291705794001464960007999129836392951024662334517371843125558268310571747691354359887891861896159961281301221052423658256523723240874862558226977370685462199432450386961166388212083487177507126399170472417026605805372792939829191943354859580358828665534064436604992234604714895456854896420524048510273818533391066239861237915003917554748031340104943332862241388539078199379167829639190483687537539778566138943581600391356792059411530813824157196776661444082103821905832962311604730023946232263701290236515503570013762802238917445851961590782373412750762101185862532580962991184196737760395328667491782141208574319782821858232281871672004089474457429526806831132415141719586759520537834489712744566843658217872992557474667614955260106598874420465449605597390655367188179242080148273708900588124955040637257714599881711565576355349461162567828041521453201566504441213304442739858185464999205733698770491535184780034353259660458235615624789369152909993238940036311565549202811176699600462800568203988847771667203268419695945226627717861769464550554543518075954691305415534015927850598844293370742605496756573176943128748708786835655469303990597045595782396646515259195371951454635264005307628580645794742217322092647077208501592514264518729978962186529447071451464805749190967999409950047517313374286470075816442811931334070483337644428933656630130008534461992889459792839421840179756847710523037886360853327649102470252805756776067823554313078300411915270313889368615142347708210061482651616048633136367958876207999668370475810843532405555286387654124672285001825738957605037961215104899322418229280629586804067091662089108303091993963981581171127908350545486578048431255501016259998774718965861330834592849018374223058493037837437607007116242514372613655585074146120325465792565988090994850849880494736597564224766849907925841076940695551942719080910540651011295794173219755514814531064859956160720698173027198512907932957135117929047650570072848448200964936748325470891990314720332570398380881945470221941148620969098238298993106553849508329396537319734350439111624397020333822205649702353900367821059945794738333645824977840417828550986670093942234694852653617583360629867530834661022646422554091140142847202192574127468786353566284174549784144041130992307626204139432125929960792282286624621074859577659582161753627063434844897462439676339991674249508165483765018163245753666107794884810736217310118155694574500984211860277037587334750488355078354692207656892747766725374294552300229263384614587850220805724717849756435244834652194122513880929461783483769329460911981141316861610312556269223039085337815145743382554299189340505428941528394221782232577380186217962876623079800638163399477282068556319266280796920673657988687035532350234961706552043949064023580918303811568795099373573432168499069489826825237302577384891799172516782491126518939243834797625786043991524551038609439618224495957289192794192723352826251125522216847366507202333936077307115189077214495517928552698696167592725004688442831684341167202485730135062772629884637677904494308000754545841553792048238928722471383459039005432878443678587286169460523603004392818707210012261694515455238938675094713161251099639447180658940561223337843299147210328005771018173011175495230383303784675986823762765835814473887739081006258207573454798247692316855795402311131469492800513591399114403111168238870050516371058768444437486004222748051697083763155557641796375340354541889866238457215570286780913344437559710497526296123134669886473489925774282421888396234932968674137008911234099770071190180041934979857936974977805668649546037775050738537060514338876830536181951156504880697463114779335296010226681072584287853815657063020436688209430907403664044696344270174302053022536805074457024671696335833100584472846933790990180001248003963452871856568684141200394518066173577206196691192769556249874903662019952641004478531734292565744013398383234344064014942371572163545558247444209097802840096984174884765410259628598205046498381372091697504150808275775662011895985896301420851699423606196597128561253074125964941311389988036740720441727511665642405443471640748070078787206836730051445294591469242573275350973692701707036928956653860318863524540910464504390263782590690774855112400300431583197953820674218336580093733739705448220005991516264195565417537334600499718256621180169412091977697443892465796840990801678085640843185485937970195279220215662075716090831711109756963101627969977336128094618202797413559716906281431686875856387644865600206930721636739555350551224568465857017758197447435421399764049284400573332596143598123277540670885808161311835138063300523916376022593300997356783236797478693157952870483408354975099603649603245320975777129668290185021855797419439580422844411777475298804200934214449764686552621127209429879502763811453922301464056947227749282269411676887992434211144932292653673511666797057764325790178298898448190991253996420832405612682637286405668032210142689196417021833985933559415698563321957036788476911307536444411047556127499010328752064846529488057508300647359073572171809253467212930029752801886131377778204154305693891526405766602995988365555864348966652253791401252708680170733916141750097953828354344667110383769050889360103344361960651124403595286429796255569649538897516229195448881905544854525383824954119987195501652609025164127207704091885598810505761966109068897986630079029169411284205482864299248610889666589494532425125992975079903747262927925490694553066190363591753619722011855770643569356573465079388129368987228714512552030644096715077609886078024515567433090888890719492123982900436645760421377736321362342044770447108358279974174949510768040770542078998457103613475124599996230458106823265424779737659169184373578191099086564208180658524889484304783337485033961558707252375741193676762937533731271153943540194048093645858564244497402792053950298026154124647518724505785747525698328806250907873093996680631565863765377797459289161717115955801589122667606408600247181906233743144556670645910055209062624291195491143634419998337651372280059620013829971914285777588791362901695454677270663666395513777862206559163149713519944659579376574046792115555352306889591113235759111963286684278711897336863713762606944003424632279386106025037809940889339408348964132722456123187633890599556242016331357011707695422168049757412878850715671778555267206672582902034195572604576417248727767477234939271771012429322924895905908630247400538567004356858015331041335999592874071338514630712614743499899886922281999701007812531792152867433255783806208531349971654343357188167578300906239789976870443396772213888703257211378514732633890967668314317448237851769250885117055549328803461889379086076549380875392813525999170946938194606283929590942239040294163315896891624304190061240478481741901771125312236304406074132375473250019484874513850914833845908466400354333748200966844038250413958560246819536539737598037292495732386572715439859503178906248896285284426521267655602054806408286243672607600336491157497804756832959281856807779772298774390259974207399958109942528113405826524744666598964386624153444352915603963185290877756807707737756560778855370985804185657531481453896795589934037892742306684895891419760538773020822687510439288528522972267180668116940316582047765493537814025547450226474425063164628353750993637337439713022821909331856355136597709699617643858117115752572040331236965773804875177766380960451432154291007151074137272953128123258160262140474249104975796338607477531901200293789696701792779476371925704332570420070652194772263133470949509543653465270007001778624274535215688313291078296420370237252523604815773725398399774193463648425540150987268966001596881501844090254566676294995342892503109923608183124763099991788499024402924107844124959356987510462371563094160595483838559918500935671723458609914672746247143608990358681636960290818730925281115034331817705698207332467110799703394465501429876899774546818176185117206541947890092883267173297045428448693130646403629504337307445986597746772376256090822302215907847030242865340272271266959757468050744473905097110476185759233970657466973568560733940136676818311859661113530966147284119013586068919852541042482006945768210344840435359508683436735676960595996139023605493442424617237332406710928529375406711042436231521238998894185470948836540277104447053126468381849716036836046704135502832284133397310937282398677833318734866984751264156544712179394260227494238021047440252921260650405201267828715949095025829729069542970636747753018135003260479701113889177286791582380040765904596414486451807399990856389053755086175472607533706009348522022026590568980692470969361972250924862073308704687074100921411031023442740164391316173522768540138353019823348721938508371801451232915681920381658813303148534151804125030062292497456836032156049333036742305301210382178733124556211305407221228140909778257884532795772713003750488734068690950524019001340428645115577327727385382004707650499027793871148578178459168771628642804704598042160649509436704113034832564944170440698891029021869260312059708082482515306058977765296068048764445555884264005063340201425276905252190270084965379584844964525061965197347506802724040704320281004732868546543831750368416590510554966426576818768110070646849584905618791856986918639919034910566973329262554596564881590704581099739470048060229975224825833635855025464722085026957339958396665956573674721503532596200195871880974167544531020483943474052638015317080032041085180217623924073764830006317187650172363203243162081974991939174895124553675459589966575577440372965425255578953606209467074945235493255961345350198917154979587174575236317339921622021373584515921853592199557426802474042912853472427120531167595163229000083932536453503526268429039756142221269443510924880650699329214654653423400705103196787993750892484186203769041512019330672571925275081902440723801924847573602508078202779196054481801043876112350389618488130036806857233217407645240108176237184282659251497513961625398817264064546519042091655733596130929931951370594284311537097023310204377011566662683047828009268994777933616349088657496516371132141235344800564436047300540365060513771331860658167446587566744535120280904611964530553329720009665612903316434172756725023033777000001869964248995056978318850949477267080062601974104196664620209740415787663764078556709836595620728580786704991976620959278767553223172399876533299505256350301808834556594275188171079453370596369113768380153870157824044756869035237981003897960541410244050899665288041354314587332537162746944242654590811424456467348966565664729970966284195883935214831871431149397023602638593396704160884171287938036658252968037115424627645116248226294522145393140654761486460870927775490948008668331327132306253329505738183216845431160360902497293483080236866896829374238768583284570861716665701723727591689449317855525417926661357070241865815628653815770455495814321890853442714299513062525491947129583196081668833303703542020408662295543732554086823625647150365568023191956572247310631769019657658858016837277595897611790624635217954503213718188705137224857439392389250202897355557363157291420559487798771099651222579773217860753116053346029799089407356163636342269418818362277908487294470318427398014998864411593551549572011112524148820361598230445486226511014081522483217826812242704538422817975020663355915239454633897890111959066929922972332506358282902172100741519507350649767551704764477930234772163900608117581401883364102223513457749121660996563622231392845574298212318605584996732786904676625867716473458541849775780582855312007677075687752101357101717387277020142351775193286140848316229335466679602639584813356985094337361423251716471509688397424645038515651605540639040220823408501732465954833392460093200520204941217113173572798534412464156276199231608048592394800729374414730736649910059013053565100465648199522974415815018261893667713922679797629060780430966867601492734115575884553205885990839239826521071044638609911710064134271101039430356514166747282159745682022026740133986099340316499890666601089959670117262918580333124144525644468925871937585009509238145636835940785107697216465732421350468746718641684637854887976024842957681950737275082643426344549856721763818293111631671129457650407163370155833169832618034606170004123835991830718005715278248818688485400397607759149266863751170739861243286841577905099788298302391119817898072746853384686715034426323326675039922166152779074367820682628497748547708680809693674790034763847087283684209287668209762957296943114480271692893706122593749158958255629052422546341235087062190464597936527509671469943765622944039911711868247919061724754884578685620878385309668398074953809531478289854753488850500058466412466771964354674005151282868328621321094321913273328857553938290969444860996606067110816239994371823634180840580873879499530082975831044853781570558545270133896307316759144431175063304658090200332474455536982405552945972525827732555037288218870631892413511774572485119528881590469495662825258007853002315147381345913863990629258172850496705376329701475598509353634451524491261683608894581446566031394050569618003776168282026251438458659344389225641011308619372499764044614629363563172342793092018953057132626212068533717760710792577443108975277022404834320501255322472651020487304605251382075994977549052286293464255039612850502212386683985956777197050763592623344986631350065507981078417208329121668218723083184196866522458271881502627890842598499503778710045954410071531672647203705505963485770135641150410722020716125787759776227998237172297000009754998284470034836085407008425589447852839355619098669325561447924820027647475184711294040682576776375938730141737780880604173509293845032338617367769767512940953349506492930735860597827232632612064648497163203044930115335431800091144206067681157153499579394080046139547255695597139687758874786423777214702223309132020077614888572319975744190095385069087443169746038719078232669164137680937288254713917208865921174120760072961173448305785353114657695339714019708162154903930982840080272774099168370976775690011310190954109206501194808819554679841901606551594263663935597304559781377464333334819277921115685638764745166148469807825457214499331330372256385481572311262904934969632747043564864843210794406736029380180330073414475231063917438545151499039338041846992213801812506446976614426533665783658167385438073026651119116046597398141653624244214390795436151999213071420240475557599033914706106663439999635044689672698237591013280720274554219279799749968220938042514752163843848086890515945618875758986538139575603105457445501067578260096344954283853396505828934331610055462283789485998650684274755796766525762005931334603016749750771024387912680978913604550386363598776136609959778774662052766021301660429231946951343992582551022652303233612565597461970301154706214449909511990797158843992607254387277003975617849802576583740781391757797415293120021173817011507776901908637915599145670507310483242161978267622104674705560698731225573528045690234973917761022292601025187343673568202603633101258317045417614827133047775880251037646739565808621318839247214553951433027189070270828717731584012784255448409288796777327705845092615043787117861775874173303958509634846372914897474097693129854856314737636586108994246510419090527071103227901596901996635554261949767713921836346829500431277805060887901517390151759920292063205075617392747765673470490498426475746741476795891725397461994980815468496848018669302303102034065259153461168152144638649489862593223681536658482758242312959012922769614797104040845350236382563417735867097205800552503264381644959439002637822309205387430923400087412059780948160643837924680815110497408756934765496567830379775147701474703436727222077653804485783067540476272209528268905864259695205568309578284189799451258516093224201313749896203290852846499493239126362577333909893509083048901376751230427373056951939849938910224607591697625213915323169901044149166777207647357787389629848912377026630892919369042990583461223229097337249757055274099420591731622077420307049436936825852364039162162177742049625838706347710377653226801734166800534861801934197944694076395312230485309110005565020406957763484456111456385595116838087386117901455886417265990343511895823119978232640856970691961311027981253562251071820586256406590601301880987160224477082012240483990053998951902652880241380889331612321071509081308824665670743065708793555010921495721294616232556419517960921079277316790361229777686247298669081037271584599189051644505827397116379623865546901704941205066471317740620739750005785482141567723258835413860506867434743870985304403154772916444538525286686357901704510001668580712077537493633336126787976713964936749874578291861663330754930825546260291216778910579989063886836029706191967608377497161758018198636169577470858674861632431441011244769394892271282189943639976993929060736914074585757423598059596392643878094270295421705624951990469632761107582098644887867095495474993732896449913329077938965105698594585682077867915043873046073143767010522273794796362075282519756439027684955719767946316679766669195077659738030067804575395181574305273250626565375595662410357797884142030638347218526194976728011610267577947051005141794592608031089791412352495727247285117539329317289408820075307047720762639800354531767164153796848735102350288859525533643743706682538142707344808784014950931452255489432917911028333848048219000855713137626544918644689831275071395336607345441402951528166228633212572450805732061373276833681286888187565716523259346236083200976512126747050537113518937500807123207577403069523762704975472383688917208881511998957150330098037371295274237603700869845682537507608710358556643002622135068998318548371274755807020107230330352559321349110739197218937556656848090411169599800207110083223392056260425838632188312263822347511874598911157600392801384757573067769519944690693246133453167929198397952269046920571652388438776948031808374732445177689091488518188491924358457246419795696963025905440787681550929723380918481590101470113795560711461467064214342258859660304844705014264066790213914499233892765743776799092845112755307052049058974483746149932208787386699139369364255546089770739090681470690060112997991395835817980583661980414956001633237820218564155163540377156760461603819676677042407349837358092262909881733598273708777825181994874229249091179218841823363138138484078550128252867543367607044919311388454802471547199418286661653492691510392346875397035142679811164018669141805387653618751154934919096882430771731673047606069974933168133270285697240321212806118627687474141548734489949631039165255007672685152879431914843667797083253406002971032213475915216533227036920844236722349027729211855610984135029590781208112535574233275506178941289851481226129706075166105810568591121809565821162837382075304790905750581967237063243027653922370122233406391309267245598846159501018341255718364665194681711464430704518317254109856734878341675187206915565041014990910763704768519409370174304196999103343972061265554049330087023203551438975264139516418323845804170604485238546519724843677960312590303088610291923543331637206327547368786033134133717054784065657150106254765961728697321647717595317301996068020935650028876714803561905318359743509934841046608742450340786838292016527298742382446239538962761666485862742545061278593572779408087572010855658634272172049580487598598050673344448306318382692281921843653141991794060661168368928604297942244952803216373709511782525264114326602850072762855300353643727586484420962051791341101848692427476743360123088054563055144445762198493139664178447558525126810654523482459843576940251157654128191835600296913210463700834462945591577872469304714355188204448663785873612727367626384950384067424225960621835365173479679331445902833522797388079447226367457788912982804704501147984829638365811661353152010418901236885094574955392100724629416405045574101414703747472563379087812832907459642825489930063682766675096663252617479877143051068360598626225709677826308496709769176717573995610052638045811639299052342707800316130111141536227648275484060843473820647381795804934761382246510658803919974723254882744391119948113806078229919846369797705934329625958699277947861883436962939667112137795594522767913300640606523708823355349731560846898828683582259856438103065421004783148455939215600241763612333546186092875036295031811565152427159223024984230438513751698192096257572477526458291323638889999013879069480997440612683465002888053081173320912409107406121421927769686009278199623449003335931793727881440618863604177029477369083474399075031634166316674647851772182863813293030591210033860652666199330412622312518487995485542460810759847325293731143793509466398589229030939380867412350584164366302437989230876803960400366599603826595959563147788275816697760898018049380024378036484939187407038467967560096796099910242976188259422757174641166068743947284856186261368345809904462024867895796951162167097882327588833043318346387288628531095950824340202856154964143982452815045427256102825476941196873947811689873527246360506750552504987812824871293823916916256580848187350739600895875270408647218965261376077309553616038553281398673563431061826797761316763318753666017976692887248664287049990582427280328866871901166424100146620910544126716575684168374731522063863480350111684083509003721019844426057813543838526256212170905905192205090360198374797210643448830649794839809969325635609082780209934053104997687660505480189596884584965520032777988737126415519630530704005806114213289971350813102041105179409519359862841240568718675887983996315862171624553488208381138108637842949037822009349743586604629728035429325251147781118708616016969541134301431880517063706219500147004735041780087003326816674745629248930959422060592721969662178505347764574915411347551539073517379335895908637406823170686323331600086873370756957980915895215011654104260340353130663865059994398103624342222573354240473741571419551974222696405598325876753078523203377404096859147088120758897105356171762882136526375184438071594604657280254123277912204472344288778016370066192507937335925071819720369225043692175544287768131594359702032817505474797090862252558191490373023967933476773593566245949181623294299348233352241463816510018209477710527558615463035919657363202013764676447689309675203998765306240422506667246840585007866953459347778838838942634942413859529901417396785468399435982263898750273845777313692034119191441950302227038420624268540213465943793942635162513833550516150057252268248261255437921215079604918592704689984507961816081153068938189700820670108475195702898538795836734178395782420340051101351908298565612072938865655871396922492635808899212619534856381741868273574163628630834531104754629082327846300827467035725801877575780878409994373696707841359301618841560994393135210989480628055190913403668948353766646873195731769997057926564858337483878476937702954779169917758641344205606497308694115628274006608028985564791927199539754080257755421269931517416751526840549839726326901075542777788757725793153793714032703958149025045857976865332181107985829850507628236259139215607002403936758805365746989199601320412125937959534425979456477656557847672116705112897348299326504537446265430916026473146517464512589899480766564281396273695716444417392517800412721624535920500157679794231415997242856666008511751424708754289023948976728068250144518889090762171623637649688947314327974594677981466401782925951262285985912918478590800324876825680225048806356916609965619939370641604460378890966628430195380629830417792737727962141888660625013455362979167901424711194153467004415408296050346512480162169537727192712770659424280604079419884144532303416136828976388488996801063792312800458659754516780719906191632717365148020697337955376985019674088649564070549092776202260670036076736517595230046274167924003668171178626895031698203543144038828143886162571775300806082165029147151213311391576441992999665642085150422678546828668748799670593559755732844519806855722672809976560367362656302846421294567986076927283321780837099263338958093264553599155564102486303479544163338857615379858499280325805536216888082076642310304425462379486294819853588686990842209373929693981053062255934153550015552836660258871602232349139272062397416786217157700032474569614959828529280795423773171394640405065938616257291750487354580499673537514577283203297302824502254602276336767429526694127543167870733569260458267768411909844555722143041281721852581309185306578067060503043470485021449572985803078753831458500633528899287875219136180146464220803812673404295782492846127643828949793669449766765969670165998202399296527111670565009362974556648482968195533912006462937216168375794885332652211210326615196913562911555781104851312671439139855507158284466001065129897723793585900252736857243614703276679497311981560911662840108862957690954730669919475282639475641604133611492102809548431770662299876892828453451039073831638097804964593469970160066872311932527904841887786544130655788763238898234714501152355394862835705253130292911855168571847086668454514730773461987681674895624900022055720545056931070014539212880676628916987512049964863107332704667948659026313293691957626375125677359231529554109657952112158183255280792788898900701456373297596768545673915092210371392036398459867386251411007319016746694876724951195590127292688252913016726624253786344551680908320875829772810635941837347443521207623496065025673821626835956444650071587244781351726154662093614315881800024504593858381890478694745385649986951492291492741499177109528585855337505070812950240926460722050600510557787403331394441780646191893120191887898021577772675301708582007470913634993990448650285812107788016090514119154326024379266805919096670688115515189866591480224507715524448217337461738214010162150156236603277915996954728799557359946026951222710949023261018614477834817582351247889353444401880552551619208083628144771085272595812813458350151930588267854264841977563607382784771419956122891418702002245967006292020089067257767630020435065687171014410719264923953479953600299318288287777595122768615432317518813851781291642948815387861624267905808044272295428191333156253957982680790542213792674467049908130550404782466533170412494102053897746347360995167349795541433238001313676268709383735256328490461562674068300942375488167178992523379382813460702687581188137304134753054871154467918207276877549285407986380839543331302247134093830539696971768977248842407585138822119918443561148090784886825482332972217648222505454735115871370495072318353323127065229927190554414632000284041952732879937778036648302326017620218150664422920866224737666860996456677970310357537664003516080750171458369410548180691873204190298438369856707591043627947851380902571582980416461967838537337615830340344099359748825882241791968260935738623686478107994712159699861722119718555390377167190133956055304779146241485349512149580013024703327834519909888042065600890578967551338167500962879501858639554626768267555043834834035694615197283331590202983702947229035928610344379011084931675791005259082062448257643203781499495111159094213758635642726777090383707430115113328513716921083234830687630539028342339045977966378530797121753568670999890749202052844226898784116370589502242602893710943903067710284837448590476200465092749743620799048274854742797441656314784315761175200653557319645292067780796422461523015983241606852462432490619175763675623046091549715278448435867830926328045672811466071847707743385647085131975111327289550525790115596387402806515622587146734706483885841038602202229932359324316955704051422696755807140825603194090690258189613633441481961415171481574492403520254806807154284969165078860848223224444223606937818263881072272125463185089659632574007326641618127088816638083840513526635108814878087403193304698558620864703354151522176728910055698078873557406868957561350740314109194580101410668488526405609596040199090132670461601152187296421879897888946764556274313156623879494074435314507010084287930705024648611240925667653672410859609690956436252926220373374033859498415343632544334274896064221059303763191764803423283265095924672555702902255907327067640879038404582043850354261026470620670293021527366670344462075002090684684376239332235303673416625217809793621663746671521200931893326553915823549115605405181421478726226072769652314399018166527072513791630703798809743104565526145055492273959964188633104276269906761766108345071217257471468188076939867844316281156370164825510751045997541562162002466310702252797573519993828833221901540108766880896417885485638018547590287464791493370977010700684695388784966810077101498699327897041817168838092945935835329594318225281384726771324292415410558928783001825187395021748716486779841570819652735869333670415998139199636604720961926906219719196713906154078549472647274186947110300783403441444264420722188009259216280311591600197278818544372763456468521257480559348792088453791582353331992267614054593693891776522747506209283616428310627461610471228709984751927089433033439241446611811866849880140606359455753005688320408134223190989082445933282444097609396944732646979128870442301440369530334982556374400442795557287874616021878034867263015016715155851996486658514476511356303892288158892689483058942905635531396021317640185270837302630271097212063087120861340982322467640798430618216879429150099398262183046978793440021258345212582829004594621048716011699992150572976348463134065807335446578138511520315194203003403722162698993744757269205186957236607972786526266589211306729958421755315373528422144961435223401555164065955664851323034364693133093953878991775648832527860558800724464632160863508728370661084628504819566769214977028036668569093666410638546907782603895192976555702839801645874924969045886000316535542481371019117181478586628427535350284299681742663642182488160762470491503494060570051035773273957925389294878015821203902143342854339130957778347226673464521942649207809453678277315345862879232450066081769763560368529506542740052411194628508101757819983592369528018404812586636900495671536958015524141722305327671960921783828674050727500015346408415855697673067025598076561034723868268776805002537775855716414174315364779411882000283445880665218265165257895858706942910102977484146538995278343951720655636040610949088510855588889453434014081634405642367158824614162632206692937003707638406296056846357543616438807571157140115519513066845929275424171647467047437559002926796811926987735172841948263454620481720371562072281309000775193755407089262935277598657889295024981060395184341217405247849549927270536800252175595487320929414122924398844477784247952714337193011532118943145062878787891730334418984198632375418504928384324170806634239990310147079019954285565874143786445856643563220938811150025359300443648898505545216043835270517391857635766113135875686347286559493405837801431444862208993389707949054895993962791592725639792436994554454211387119452138436156763320136968599111305769911019685248716208307742689911813638841548607199810484605996921170434212431494015024131124351056547865525094834904517578091040773776123665386395025292090016825468307141246673692599449702606247574989608655764942552120439246667678099794359479222787064619868797040917443509046256818966329539830522404652959762842822187060671780106570478426085864789969309408318080934489275229059643001489319803160253205527479081976439738184483351638693501933137223999928400707977562145190091849058960811277060462463402948850669659532020679739884998752611724450128141026141906097580129573547933520388810301980008889590861853145380039261844590980624531413946466748639384906429224798026363224192254827998772778064051922302567910754882516588913256733394953455104884737642037745328211716933816018503655995906997393946249043985577174928172112815231891264661888092856562025592158969919285718270759511466479072527886212270203441311106633440156548687926199352828658020572789971316765575642125887920601605046660537591828791843408723723885834866185335170797055302549089222300809395537011947108941742854043269928625912058357911106904253736740417141264143273881932336066693972161706027245217513847803495794225724924652480073044933006925318360595775790768024368371510470925818604146963453654041471718786438482476366526668979607475884650102742782215740008680297996168409188834421238498862634346267162234084626181551562487689450648073778187896791005226460755315329630025049020730023932387346899723960662548972538075677777143816256741356063404954232307230458754659095556990506209176598351666306852441794680859027778976078662101105929921069625849896237462800628815396825022069252774084030736167034126430294962715679862991166532899001174539602030185613433337190749076788372699091583573655642173019988966224651311801536287451250441794910251522798375715189242844389018126729382240619191397640317176416032920731700560732081800033783082075642207609768964717809856651370521636683279706307960463360217822459203043793568935786786686085750957398036356060897768731892212651723429567123465014248677059916406850751217687625119817871058482167955774726855290642729837214872395924571521678364791693165717473468801888237955601673974355359403932169399916906124459418493389999721341643285338560032393522324646409860091893933423819765578010012754461254991063189557574005656050680238914039928019278388166662214959613401439376728807314217118281470872451218942428222099315146260486592360540328186672675106464718268420832151082106768978894946324457120633484562250067437915825951640585626526007171016480241662087783341479694716568533941248137057580731712336410844341298247225076478652802889016682044934775446980740613967412516522676703350270077639407242094829660976227706121866237452818446764280922947016416929766979258352145073496359506806260142523909812208337343970498942062173772054207450111808326849320934267585972616739919800288905852291507952466401427726717187839028948918274814681311010297632464897070881939865833994224096247698202213186416309587971693679587508558220809557341267488879575556479116274741813460970900639714188056113128531274505727562613135334720630440415151508048691532816556437692587159803659819837930280395893373716490540183523810100746304914005761318107333764829341058548207434466033169069830423586695969026053103621362524257249123026916458848409642778305200054873257762163337053676472518375047052301356585349192544684691217755224968696138796989724492352958360335090362423398752419503692575038149693600161781548751627310071611643090648474631843885189923079397984264741309852042705615968770181982734332314305188500932490695333511758963404781319626166133980232200775086278960742382223335885399293445296176268676966325882308607980610289962257464373560623975032898074915453328282754646243121528220441161150824666878645967245206948300891316866183439457088948118099675732353494942289988973022854784088419228434416171069082460659108121703185761427066648237406770380805526344624194920277058170069528530817228230478700725971499808064981056403434358146681214121480689330044099412499500136390941358081110328000165971311168323607548783103413682625949541696601929607371485262646574503820558757259842582895245305652979672355042468962758564411660826155844206665726420704815984730266270452430667216804916864056133281275950011461845339689398635308836186642898454423646624010480360183659326750489630833530513162377753535573636379629893200078706027104885972561503485634090980262825289556072554850033785746040914768486405922001508768328692182905936245810357172847490265628590053951198567118341800274572950439478123536382684174738437052358705597604417023874917887608425332188575888682698650456770346031742814159716315093973807970752248081936941578313306182375321278364742702327626591983153592999923523386671812495813358497385681003731508082972636676192936958290630589963415453778572345946912651297311554383967699228253126479500458904578727640463226110117592221375601200471886554543629950581897024153614521397315024736268577313301773249791300563073720584721609769407973282840253746270506575883970225405402969291079927981985117574042613869080661134224815141138422471888560764435777118504590286094468604965041779152535567883459505978379342228044339301042945031491222044068399647272459258547990778694401669021947561577102171254985201757381205300467051686611419836153716757136046027896381352957522093835990361179511388005053323631396482909363259943663483023387053972707108597489906999605342493599382512337794299842492154546127457898867278708495134743499929609833324850374248587661274109275013204877119617523160429266732147734892926589056090597400029098262171249715092273513602692810867797866470343547106577057841882810190340891576429525072624865385033683246781784482684019381461518453355807908023597613529443054213036349679690985577426084695174325483144544268605512477685500040124188850000719315892158362712279952740825590948389766966755135192868783123550557218980927158024390782237189627244368600035230631269474472354971280852228808247709264151246779954548416192226817358109691185345375617773585362007739524955323887883365215642436164982868435814733642128687796463942956841634043858752417509957855143367999056959560013922503889326230895123131702449673621050025887438239678081290596231836973402053141319982757129193285150660497100914851974940565037141000949223512466067024962427642714628513549623845604374675386060222352885262713100242234666038576240785743303732242835119523752831649849303258534724945974348539607164452360797269976535754660762087967940412125456997559310615381558965914134047512819612706877789748441596319958867557905379638660619533709776504335613806922794155987300648200797123793866663736016635649781456095054003941054492529587348138483279188204440847109875296642018786064180238905299264681638979263324069997674973372854227622601204495331106019856180629875484280819929949784437490893878193150514314191059918411204208043938401726479526042386064439463732359871685943686081495326444672217797969597017111888552170244816777283905605350939028782109502425617535940587750493998084959020010098063339144836423171371007008734728832896421445852272930816887502734286019810326697678931405280785390680367006761427506330707557951278650270308883109263821878689340792794268247820804705165428411531773598903161050037385650322093587301371183134238247138275730321139591055387558327822546150035407936936426828413169752458399625714760569269384348540487437577725493170653947179280714031821798523585860315629270631710840581577121773287272203337014571723844154395760474922363543026273113813994378465782568037934368926767292315297710933570071877786733216599729613061624290884151475375638279632014771426913880941495117071822630025817398144619579984986477402849963572179226763816968138974726644470464259009573452508956870834153955075730860307588689730392776037969586310431254305472808589076032113995947928795133233176906567050192810615930608706904557314264705463452590128295336371307964204544493481847635661605218374994493253033668096386055303185907133780987542507457026468291195046996715756284616703395929021855940783395728756831077982354174473459763587639071292338306837838361266167741547645899504799618372009271520385545073179313754239832427254319361730432074013477063225686506708476762595928982806551345122490017684875971810976986967806339525095250667371590994611473805488773306541349041214867959402611326758979653754944060909601843872934217430286421698575444682554450460398742888479329711227525173285496511613918924716977859523004776503391073665938096505640703380320558533542740497387229820938363590564193857586336082338975010433562202324678069239474898356457095435064580050081773933459982709650930272731063070305412188721302677811105542957649345200288669441086050737934302508766732211170452550034697822281304778301845259979368016097485830008648288920360668380720543062041749687950303060608102519726982572591264339315641579344112216347462074074315879871191196920227896510196819518867772586948533822058109375964050496281455800508909186902809951466413469945512820222388855365488384734715039276343039267488370801055434939175318061988818755846705436884125738053291801475317738173470009190822443567365479434905139838371090116100997251456225791667147755507708065897093819533453479179352600696251124559843138895725637090237184703237600522661052966205807828315668462831459315306140689718191084309971388823830864413299940263330958317117850614595718965239555718710153624078786261724892458269629293592200418491257921166126191220298039848417968590532945828900643193890988852861912771606696281987028979607511653998207366544661699027499544716736764666223014125950101299009465998989646899551085239316679822127353663481315490984468746487489455311250845909856799849648616837595356300475105615737105919937721790600081004519439449022734774296939910405065135315518567880886179559240955792602304607567877248508858703592959261203861810057065077722990060438489492342846586993720130372367303641711636601834961319430902834644486736778786375497090685120598763035359417982868389216362693466277438906211347997306971739000699231181130370063763204648217704563454019610411850074678495123375799496995758808695452172850406417147716541733900712541627845867824743110771672262982967939850792792978837662202307903350791174259894883565783702251676073822052583051822359194701592094887381560617834039351452522781124508335782624177796035530395320208940350777856123937105338502730926422396763591848598010064852888713794955078787973928022972891149562781782592198857648440342107485030499601105063510401690034517726979736117104563510764561194363617632327410189446901466999038417317764988377857463328101982235337934623560847025054476872693398717289108357761258455180371175808124837292462904780878992997099336584042048509873789551817561837862994571137207294067457230402447221833852707980553842297004501525759616127518595944409246515982142911597163385170938610038663996435713280217220011853599391486246569512680022337859470492122337786134283211487603831512737518322882380467317598228344014714094339580674072655558281084040703887630526530984250435043281991209618873615718781911572763385141469809802135903685396408597081103180729839183011720253147779383239387225360041944755146783923846620304772911554465840173379532844794124267813712596034500022020128133069033430576056692414237816024278842421188563026620454706719722467584638235935878692335194608032613838423263063755239382653092309046876212475250309525630810527706536155986046736036753667720143559726212198591978642733841611157129709867352526291204402262005832775267581346623470497255849173785861141261445335423973892351065639177279810316124055889303681643677246508415358424298721691794183400297232409003942256685622585065752696133472319954648433062052107457090544139977048376882329194385174703032431812062723283641633524255314531346927999023108728601386119199712137585105412522483519247554256051920600434998262663813070678689269670015914644731514098183507513874907981525777738690174252299177819457626699228139862060399313638949780424490138127429408525691000101835559055340384966580060904152028568135094097539734950025007463305490017053109447205201251755269966463641036473774722765317546140020907463572733084479596420862153113106058656442526943528953310072980979323592380901356160219180888234820593966332569143618096972631239199651727276954655882965088261092625790526117953859105496791978683262592067635880444206995455699387234088127954453904317098408612056575094065203836860422063293284573344683872700491108530808964084629136928684822954623399862394832795679338533481059518689366296020715317364124822616234172789120112242931703973509203308803318107382186599322855182323727936735518079358870153414620066065102993334321534321097157305442028451990473062519026148533526045637324077117191127931706399791503075609423849813184873321767612282577392051022696867971101753515767897789553189161001082280130370672981278328617263797470769748431122332995227954963837826963291153259691371390397518182482893826816003394669012262036465406923295222412390447948799776395220375776375122358336493169895257059553874610664366693034257170279698940181919753373157112825198773947722151441235667905414838518735786366178040038959202343897193048686205111876165545744807218831290412643168029502213882545748729361909774672801184793340083701166404876919688687088818712622740912934079000543901873431226020762293265513064602070452134111572112514645286092074522578955088271448413062390273663029065735341160295524475373850341965341687098603771527863579616758756964434714290271416550727904885548804388002382432009644968879876700261494648458979523905059213276252851380603484350471785579885331747753559525956172751517991942039380710699739938717202690800448209876111203778762176600443950030054406139220807538960963191551914014018701508477724559644227059597890319298902587141020856742613923368042081375059027035989714317454091810144390041758413627255506600402388903656255918967775641621327795987855451157502820427071163154147805749756917385638888086570268625652641621756275102593121307244335936875379350541058073151932930299488843083575483787511768761230171894437098372945474766891066769446910461807817414005177791739220580742252349575939600044537618998075480883362909632764841045546808418954163237701651191586567377916441237859920693052538220041166280695434584270490394557808047072462940602871370091717936312658921102300155540808890641750600881620589714081376416997566092508491592411055258142569571999156609765691473768561731097210030225692018203095913508315748282264991692771836580313993816809613544237972788558291479957575462401022833544807596429196804117201313378264517935657646987885216329203952520320288118379675324662709313927943164816135067277162880778186868860485616170616341702582206577434216843364841226999417509376716843468217650393269396333725537920205439780986945392595322422453770997595072830912413234480832842992359435088431319608849883857777842990498159853184338130978142671864680528369634880674305435380221860951944168712595461423735876692562930508949447585587187706671339226689312929645279413339091005639654447139812141082890462702421103263870804871097533782238634842755495584818408364211134181965330197568798939959863395108615015466202985843045813004825003288060895140532936059567930639037578632090680842112183802402138756734498363299233122247104237774163268658391237789971793290461113867638722570220805721837399663415481088738027829879479635032478664768734209757523145279408663128797771561559861415441552865942000551090314623910974026125223201881377298046140842539968121007960521191969623106133364010254111400727330962777270279718250259648285490977756487752955732066782258495501560321629688698349952950429814025209860070796021498563483471447580352343186589388142834114545815716535709357884278050723746310771307833505123539237650491460951923508343553786970866781052370929782770111676941277243419263215441849848922543187966214868158140587001934085439429468846043458784761474959450577976931873777107328681372980284347417955403979878388633621215160021268795758373443942078392620332637742559559523074434600029617638760435487135980856362650751395984912777319681835253405549056610879798741877838334475377986372446628989074904999657056169577035440876286625462267395076625710109091402188817348776725335589903014999294670061144164928597553795065992014915206133679143796854314007713515146982110653197072283888763028592693746965969722687538745521900392917155407529672911538935606888587893167423425854742227927656086846095973271940548492373113517626821919240692574191792515414423906247960570672757159558914408780215535944268672113381691844521601588976911856902094354610341732868340668484232691352362071387329087200401526089701320846826683655576827897403225487361908938059603859233894338885447112710149367334195931248466810105438285469314255821844406065528194739286780501152907321342463510667640809722518924921277453818500862733545936799245951908264408571441227886965303453160212459873976826835993358346472505023826691563503875016439499921379250377881389003869765118542811971739972703316542485249335760752842423550936997789498167344547681047724190192778850376030915079321596272923164609603544312048951854484107410444721406333452355116192831558514948658943290365898932926805906844313255037061873284052383237860761094420564452934907173062662892419910690430869991885302977115160760205580728435875406225061992897889272788349798373816134420968373689870770193050016209803875191764077607847113913606356803243615537656664022273281937851695717494781207915952201064462031199198944965149213768725877946833396850481346767118220095991727155147718153811940524785639570750242733674441573962215568675189039707358742816235045650005365686748216151527724218955064177937044298405229218284005483371568237947249945244592739853375157463930658715027532252916178209636367534313597618893939738717575967507887166628010236992599889061819184411998509744378719501971552669420602674424999032058919160309823438007837545059645749753566101340705606106309887153485609115284171601566997775232955015007171940614337434162198806224546330711957877548453917471136979862781915191618394415589666394394297548347996824668750675281980841785637056828568775957824852385343349842860011116604597216933755942198045427459537115699169720164512558627069609653942013327027796790637826221220655009614266106109398606985866385780332592673869441035439339651156782555414629371015021294813848729123492487712438677136051157133033228522160006630660393989633743688037778255056658616217607058956739001361829917537726959612587513592611198592567038251025537961977672815655126419571278947849539801743185543730536228288344041030683048101738798116842837587029537094793504873542611889276008844584072076285770421998558621461389749355469893259366355775682804053001799750853628805898719161503633441158150754445399843866868391622807940187112264638237717857396627111750270166611139420626091432052432570548817501835478264670942660960698683646571686660301267007347194433695536059539711476892914768777500890810407445950405808962085385020053246319954325275795787426214287777548653761110890768916786145257402724550188458008771271474116643145328577189803215130330341704922794993918208088891356173054461480193532732887845514055046082706232372951153093795345364812147734304035798387903170013763687819104512836113809591432684407674415807854457084198248855289501155882647704111949905686389427451615698508923013265560192744558157165989300855862462617304535902460257578110533586710231790172917682579967786596844671450125389367816379798554188501958854100206071882847405823029218030913286099443730190931012406816804923200760990803821334580820035149912633330497110977498042783848714717509160969489470999150324474011115330184146864676120034476317528122523113733369124470791243947847051451308422738824266698646768088737263759540343310378266185585613750773922250255350083044670598649550936419385087910593721661640489691971202495957832812940404286181165273165037383760458479818731717043852548589839841831678696572087638949264282806368127639697842456979577171641133292828998916381955238845616123250829844478983775177278813297396705107459870140744149569255845790891524117130477486438558154808199139407030504508528803908758400786234926398140275101500595563055324281942032475578941886080925632160850130146254054881074714639434524687515762693017234005913612266967129772552374591682120874165462182596976814941474695449273605097213455414275637929547590158064386000569850707116458337323107395746706081765791040329962389554436384987685937454440234297421774968298066459686648452632792040578720366802122785267574803618295882811297291358881582407674839162537770449436948501809996586500878343746636576852224804061421674846258459910796607760864486954112616777823450717177866730718278251066428721357603515816882036502299231938847365153678366867849734415824123142060456691586393103908866051637347840718847865371570438264294073648178548671277641436655610359612083761951331767021274571253844799851997854862795552228426931934024138493035105141757107152633935887445501800380368415545465633529661087761767055917607102631616946041923557351116916560313116648781580677835977803775981096194738592623100685345951973808830037841042393265119841851183777787204410833946220102735894768103832927064925232644215696630581228085943059166881846173187129314819341502013208051681340140327521772887296903083517868382572295169186587723852562838496945153103892520614548186700412559123021781337858707768264914819211959722762058521803970531964645938373118152526782044334821476694198405264580169956965588256469034904803520847022951523892816170412977876432147974255145756307151011747089677078648717213269736905819403138187804360986209185240818634291645109185442798156887102012425027432879482132656702395272298070852872535741299653223860080668168560458912017845738677575580511415518185510226411836600900885966003735390749447554014781148962971316551656379498536263356219751192606525340004677444151117709627516922261650767016659481167563728344296730797431437424134507039747992325617339710635225079657035863770875877448492671034208982972442738825379605286073665954116487750401128575526720837908533877617385238047490137290470390773048437341397936168876871415399389114459164209996987199397554933866888227390773292487993655571019712164499709384309108031558051717335667481607876228795452803601387765360748019619995803625847421863958211308259076847893835907830012848776369232232030340576452341681806713290079811301835624507076632836277541379492596221892844442088870821398673032317860373758486506036435310584669289594169251594563348477438634565132267046187099244614640853273778358597340082454102137303284101321735356205258362350197465539330440268929067195798886569955304147349129681295364698545403439655493420918922657402389211265374771665455669030402254611278266103641131290593305874448347234915972750427626729781978603284906648113627802757287123419105241037119343296959714205733448960035729439815661405569906849460703359539835119073801270583948763515522407552731853086848916005429278606606456899367218975977962593124008275047909531642110436634162632655282865876518208476409044613059922867539267203033700477807109605032730786062324907065854171748749425664276289621697444580589649971164135676030839791034514769018209148436843581024719458952180369445623776133616481626732508846550582036295993286579266857291788495814455313422794888325069877841943419447576923086296289995357448559320002008444805162515562878664400114288384059235525535570310241786579305045018752232512853356846855213156417938538057024984092446582380439786239385274496907220764132309227927512316029532864225144904588385339388184394889008832937063645729322558210879957239476145522389529898988425361560421443845136805595569571867881527325931727458755357723291148763492581295019565237447516367174899625083675356530914347241390597044637634049393752772771849427532115393377263613413817653715128030986248607245776869805673639891976946019658283535042408521678691589827373343729392809822818799546679657011509350669456485164483828956810787780052701219203418722338972564185123457965835723830080331133397784627554054134328453810235834688545347519600790554654495916124545880304629189193161178249640226175384519669359432035576210921616188445449620779755481756319345969535122960970430479840195572547218179447602230721712799388959447270408546478979758937812709973882418918226476482647979668156476939473194738396962519831346851845429968721882290786625603704233695360747806137151493261353431972832060774335299293812699403950246800000042572384553476787710802597812331362052865457880037937073910046430722027277326473010313525126596795697397961211534974132514454333302123078281607553925202289027866519115628120548324588998639247204260717434807949032143005480157464868870728214478494938025918753247984223578550355873897346008127887049956416322252000469711598636969322168708187052287300995337633569819959305698258425355548131619409980818206207026011518572047345464341518517124368494302456765927498403217881745907085116282153283427064754923029154972943169272538531360721128560112977332839687770146021296602296412795046710480030698546724185471384095182157562296617510183010534787053774895120301328818233267719496924549240885928026805901826651300186469877254661214171881843818455402403541491955124322372665342488932822447970895728497649651457366249631482955548223294706705825387628045623948316775703760217421286116588254595083354291911239290592941204038507865319919340237270118302153102355829713306576423341436710628372674593502249401435545708908804736610385009714288061681678040127302667470576247643418374115741308761105685488184546580449340910665992666687955152172917335521007280418474282354580347268145468969849374568813427765442460907729216267100972285617262789156184291932970832659922840344390998965388176443007929675044500410877194265152897007094145520461737643331454696454038194601809120088973796119690777250995706991122033764095703517131112669655705371041449474223533040731631453712298297324666087871688970941000675656000006318233441402680908370980689211423622508877336781062068104318675517995754214292710261899636495927036663683851364783713799216926655142137762042886850645272323567927663424344921573270566674070097257000067011768852749881820649625463126293919575604196862930056715313174863600284615253366259014232021889490172993320553251709622679025561967418363101754108136363473913485860717731341870467402842555808114259231736941202643671510338616443236114753536253964314732667115506090921653919907002189027740273926424999106898723827945369450304210971095172327967374049684579289080835814114019073451665592049434446000656073245598662652251295950041154238235505853857348098164657979477807302770068778713744259319444391284085272782676546613630509903663493520077828455689197175911870870999193493137144786932341786055422717813510241403175277099264159644447665225242156724069900046803527470787223864565795783227412827127417318878121085387595046387435924869487309900578341928838812838818211249071325561857860400285774779757842481234176329710672989446450428422960124415349854600722597740850973608893251097994955026862670910263356136693560015955489333842610721763029193775862939035255399099215803969997732663029868188305859060844259923179261678321066679532824445750446651237844575109727230671469290026627032814436929911156789754759841843140986793423228870480348646441596552934704794342026308509489300342799293701279919536815636709813169444723477199710951834379410625583250254692355030356688694207941606445732608146709534850367049529140302561577897388076161497003162631757375619193484111620743515927067923565009018741243614489674614895464099031143891155888354570082017569739479222083591780941728588150538904609373234143547883128185104144322113993928337337801675794190107144485894835754659631493541411131188318425255590184590133021118801767302663778757079279512878345639348372561128269130528945999817054604788456784282969098678020985693312471042875179084497077714351588422629023363505444684026982242632163935689260224661750292763824397343792044876411968892959971708421479125876236985283964581349522143794299133841626185411427384834608229556519219808312996713920042267690182574455422504610184573194883542716547625579266440541838469175045232384484602010343121026035630372785894901114250727550217828465150850745519238549312937769089729426031587146744557354477877301290127936161707630504481189595153230432788658447700919758723655574913217272421260709199900486497307717713652674955275352674084175000435587431075975587225587207551458035169298082043140780468357865919860829484046014684449033072483958434325595001939358028181265887486413668040074917198692235305534431007256398604408074590256217568822788919439129246965963792481944133776387511140729282624457646295715143449317238696302690901083777844333882692857156401082934527769938217774597346230962248390052611056974422346396896713957383358977606513606120469201832336784636995214061203742229202942653431943165667039522516478342016233622108799982553341976977918845647984692560196145568572106759178137678034850396206113605602798857726653066602802823060652995704877234438528910490303586984224991267600264493519963368129744199394433360665519079965315156605650933389699570439019508535994535403259642589944931506200351222128813604918011998848326420918336888169271384141497891759517993042589050602908664718668772295904659981110597391132631212170275901965926910368143767819067576164444214473520134570165668782954465575295219077266665093998004735326780776290362089925613563025032873170314228517259599684987033699797418344011426700361639231918804420911396593836802775209230294595697637595016114767489983074660749305131219645469087523949317086379035472064309311448292942962650674735482888884341788835471406400728971569397005261433908837089908256808914721527939595974218677560140653058228198295067441897846156013406105086748201445371879858353007414822578957840478380364181098140770921458070860987555604505858533448948393316994655326854543216191525695516788547780391024154558225790361667353536789296209483273829728788440021063023040786721076209075022850816431493130995806642917129195655272335471079858213374318683967983797866844728187697065014600379197860944394925262065346515501603208067963650060651098721918606409319227335414163956496745329415454613259646641326081568179747965732711915664709188779910431513922467596797284641782166869716703896779681721766714981697357548196720459549255201365614251286224016132031437849215469664430330836382611191887508344902524995016024713962930551709194827427723663349373068759967194630844223134951340358632464735456952154972367168588398009281471258999592697670567691512900818946739572890864113977420584265790848960736277552068734981289603081749149668766589758435453483501852804938623428755608706221321710367094682844839886081382775720857126508117099440426181132266813670957254324651482219438734643496398980344204270746523712580922443216694223326652002779961266406866053712480484660051716900566681070546583674827040698863898242550110350891727023824488389715411232468878394968519674836436694174231467433759612576893878447940649334730734867845284487994763475823698839753992540125790684015515300624145025182536539569693806790716023286026128743383861023185930344954529224417025944343213302072322116763322575996058422444112588424847863015369276838892727041324417728068611997694709775468534359349251038785722899974957630078161599279313718336003875667894227006937035771141684083729593778503010244659796771456307898896204704355441701439696787617257180497561550759731867153960527675517184599922835732496723865819043564998111177995261011630583364146642039143658737791242828745207061551233982468586916882685924132185855943363353352074174506848850989260507795507898672165776756904699758443324514360574465170373381072559941116044591855057165296850607171903701132111249290066660441174478347399443323665290530328308494600373089975669175684309874657620374427895811389514885426759272963638390085977545562674528882374890647761887827140993276205572744320084620535523450023730781962487792170264654725879996428545041507939864816312097082587109407855285130794083676540929685658547470981508707000831822332524088035849998427522601475356890919646432725754994843177365560941523394460672546650749643986481885182523737421377421994761928602161824997788618413867695910091556788498283356959917543724938231842611806407711190159190171644046475411586425824620816892745280988713289790621886662706141222783618233444222657392843864561684287190998316126154529330468297709267459466715268381969732718829860530556449332645652891317443950564380182413764964896561205627945230200527281863256250449364024026358104040174274085067491039883032517337221328359323078710547360038681744815199708375079111787778910685352687105752482601662468793733699720452561485258899927467272635030482861003227928420814683681223599142041477984008018366124273937813392894425883506813777102101988897928232932530096155304376553193758066848250438065143236869422904234547336699633594238639196572115888672529741596879491761133296980200632647286215995643828046794068466766818290202115169761634389763507033381524761060659332069527554110642159424720310339770248144930830161001997123090112094493076078643980595864165532750089397002844228470466275325527269217810233718010901179113242497862837651023761469394542865017279060306511766057688927807927956837527823845533887118739406593784693155305662832619189395384348841162653780056634480526984072509604510806639539206794861128195644236035567058783173898051462128791863454543751311458735051945989381196164006918256418597672590994643121104283028750584495874132871467307287277570793767921280386932717118578664655615917642383179327296114100087751911559324049068632424587537206461509090830283349149165520908855295496779682629112559163200625558983536995065961777245817380182303059598502360184496105913470459677374453836045840076271151442201424485013664328595907762981267589278907501331629878462576018886954308404323599764705181161272174908094206146503166166522378689548234224716599436235301331080692536231721886592880390018849186816148955306430601865345725198884174255811104285865117414441381644603874097859328715222578478139950639321916865332068373906638401128704910542739149138823282690731519407558123554300603632174453839815502016913567691576498659828191690183317985406608123547251637914837465510341306880394615852580490694724496969733838066304828793533044087025869244008099124459898394196815776245678813136093208911226484501833924058192212964849374257727485339830255648655435147720655319904189875008303379022590986726162514897126592974470740936818050158511876951481549284428786946842077838956501481565768444357619213461778606539318359814639758369178565485528159793509144552442498198228477476053864872092548661872597407829841549673414587632239501924557231173471229013638428794428215211755776256763823369863027154006230412816556114292760674230802678020451223456818276450861203393440039986739338627804806316110473408951719685396586100273948628134809601745790940360396842274470456514304081549913914247961016793201031369532963778319824846248674009119927498138830860012602702355160235730176455093698537499587627111726026360848258342056442283956025437377627205700261957485606922793904084436684648838336119479458328167044509356309899126262285638662770232385951016543495322608073458705083060838388924226295335932121141145089969633703835517569340396710544008264018290158567978892795785202966593899875748662073279177050911879644249744459867989530330287525945268855330118658551979141879866619800330944397655801071946591553374931772337258004932523814232870191067932212678639793622992474836935334091364211981942904596602125626046467054337850057325040243815303563098026387989880030419606767425083173551499864370398136668512164847509625028827806981407062710241316107547537518157044509163580703876555785085075832258953009275145054170358505072198814708583018647757524357559802795121384796597413439226836423350892172530647216534507902311770591472142810246583190539655626192977134036339581005131784670055196329201459234091836736952443410465694547756166978154780940231751236426619866076708690537375592254987789467520020367351157184740869717961377039796908789994574252477524354261418948099680118279976482428857186623232870894954388624702025379323600469616355775189777081087482793244005133337892055991919916261980825151445540636874289008760173804370027362966194137995665101030042331572595364882465934227693244576006182475363424135311744098105136206741400437262509010282662099105534148856685743777923786499452140088687733509394027401461996468354495949671915948989260620367612861808421322773519996717218276985967590665274936793067470806955264652979518927095066684824818219522362823429729780039026261954993096911811329217666168058044855227042021069998236419433458226176538844778864281996393890997469916095865395188688410896216440801954148254519437989995764823696008552307927014634249407991424101509096201999874830550002406238855301315076854015683369692949213482500752545869075196597164913087616414836563583484850093979288214124381140995627572228655314940866364711654952055504171347907631803979140773166875992744051116319522384630198320916617429276112307228253287752460585073807812540389138300956493196364665929872418133123327131482641744442355718339197523674114798653810717890846357129669274241869243701739954220020630882495841026546446893400572167807872347122977349645248921460630655485642635972992764305623739464857404955811198030931790488457714393950288593091066550914578706264674564073933859859745456605988566313079973681008582230776857464904578921390620004469558849534391337926589658306400233445671395254754552406378725843393955286651580890453992200985084727622607179994792691550528047956054830135080347420644781600027240177415648066187911699054131036210282998020691502904535638306985448419352203839223763446416259625753100925953526475569644068654326635151724606179141760746118841174873643676463973145604385589368992677624558186533528136728529237641549248634355348217105246931580259980932429458906532781206745319017530764518851064913675529721600368064848166761503152135748956663767665806458182106786610368546320484843690429159387587216869658334163918509689334143928076488391940405960197992920627076878191981031646629088997374881529013997602985735959852645920352177416600973252104827070266743205100665157270116837019193429009154414020485714958244005205460366040489830123543555780048411856478165471096113608575673019402542442767176783269342328585517540799540237055554338896807392544340444534691690697200490292059640711690656270637650252794121018693675913137461901709962319643064374272698909095984605698709759769042850967894700139742606533307312587835988713872799436065328110577890268807893166873930160868384384242007285902432576294973213696234767337320900817159632327108724010512459557361224553558405187443263705779279708673724364419167186259823712792566843248018729683654826239686915109135227769246169049580045193423093494755002811075149163093137042596890518838566121995561165117289558426762845209144603026233051279455413454551053915577666866848157752378790201028999233024619979847227291320988180632371160965330746993426067872609372766443179361836965640592948870698791208735747879111655879421096092307788574019525242209672790587506509677020619327750571549426320215234241580711959431574155964782429324707445379350596623637037685138854303790416423602963864595697465335122167381008047789224600202740112316315573184720766663757924209393981323984617736908668851916377409549044044914478461548176341095293059776911745733277806052733466051712983695085293531764098841937516689456371940574431000193807633304644692719448482442224348169824355379530166647345648914460509040264378582476168466099603129333713211715636515707513537403662492703940612101987568281091583721152176434576960123195448109820922091410799028155542860891770302529029380057514747934205930956157370099987405173795762415110678956013104463216865766803825572737964881882492876951499465201912368936776009938837663261090167641714408708670289597571293508170673528184735794783598361731408445614818363256068142659343879000171397916095779270207356520119836249257028329195869635701963402495833077249634047320450235949646055808669420278388040977125580808376517494932426453027970844650363195864024002714022756625899492218712229021250892446445561177093335785803354312249167910106492802485038212215944876873628634477089885880746267905573647709864167142093456555609702707782895808997954394582014288606861980833941190022615549269098174357970141861902060696413107550899677364630070248935512212626579562477093230752987316825697499495528517806744380010507991123105795692617713299204733512452448263891798006567831980396869372409294544838538476746115219778852511146999352904141806005851719398381915267911963579631729725925842082636758608294272425772476422422762295499299882079684307208208833298402668054261893838312394417192548388033471362570161514137744045807464160038889839371828995954888402956358641711838690361621008996946790276870375863873720598214416999956051446439883615269780534469783422544162517733352839712274440291606652424263749567116329365650848025770574405651762686671838008173721980145002451396179379905032679296794753671837200164137349760389059495636750738629805489847560957065820641694321441767352035320534869901044822794876259963314721442448438819007645719284226810948698178227598410537895793079680089008313791873126906484438912056674347554044352490715149056798474693499954179806538990630901062169112257969429641443302708179358796704759392955046593585030213266199533387601840580145952061726095086705750405503841081068017129931881609504668457458633007814718624544231781215201359384999909726374347247368231388705888940554168091695768225146948429342745022656663694841626391297543869132093439038670030045938145510375491913523241832889078207239224283749810894179834951406644105916924368853434781532703433211238731016600210937798312770496638441018891541362058804263751706097075530102678978973649930658119510634846956212576979639420117870646628116103455080557449200286308288330604444010342608821763622739770698497920676445308031271372421001459965160555849124091594599109102879295005287529022356854303525583942535702812545631500463845361936634770348638625626735647190809528142999425102672927750930655835970087749240777614542131157737506389015629878445261903094008228435884012612519417707656525338854711830650223629589611413473203194962749908387317548412930261360859763838773900274849872988464393819519761199441027501261300827424241102701412673825692254450091395886573061746343337031597777108681092222328610073601043867850325942236683800925836322514525855880725084305834770833167506936370717372122049623023376377414638196611427421866617826318930195399242201585722787444272259286994598214024181955786611855081618310822337893092892193590791217257082876901643370405688735891291372595589514309969805195259623850716800834292645371169898019959682356357817813675161335882038294206898468338999825842622076133888058418406878726263602515507869736939714336519119049308062937075604800723070585552525093228194193888002959122757120429382829546726772757909392192074938043469333773006367286923210131016526506491688870467207486542736996986186233584936086582896165470354628291851715766456172647475712375226676346994915889856308769584375335409402800300262985654993754193486003552097904665448107316595883344656305375852976354063215010274451005885726425181896562679220291916770932888593523661216210171923265730102014148784377913828253281745253723473862971161784208532017210771210535930654948169070373890094987516481267655494442008323033900295809809389338861572722757444799302643620241379877721521823940636802948178719661651284643662574894973743162453466278932592777674144367609297547994583165694021668158870094518321243718550313550746803022718969890815649869738974022069477172356401610632680787125625970537978617961909733172237978194176138187259317381372513122347551570495352862821862258937279805961663179026364871949916364778730510300356877044019522834895335759658700324401636654369528249118598390098629285574574784362032311695957629922504252688802227741711715801912716629128206933107141445178535705612624686359258244583003587924389840014310906072188726661255945513396171553366741891899439666808442512227792184290212823406081409453402704552141851944912790465935357348384573914638719521462883934729288979853599249021213960600292641300693619915748158804152341887805371712665330080596846066360783431129869704015690679252768428018714608173692924637508208434237468284271778494322513443591395577717265523500285575513887180614990541044308012646714929851729577073560340072858765927486080862464970586057772031958677302621153213012548822118450388991330545085305864801801269607898610430032294494750734181220226688980422754724294263737763099309436275383081717454758097337214593675188658512900420410195838912090851396571866202303134788476286878533627240819881059726866344931669487230855028581489114892921024420193366984864180682868505438660856633798878316847737606470540925185961699497870455671749022150636642358957266120917118289246544107708565426858845397506276889119727804049775454170781338918037388372583276056941963939030627796495294978197579567018482626518426137767593346702209252740243917792878067125203660462064470235756410516014823246318057663209908239982126351912284373887944178781126932260238358472511253769723137445985677549611991192243334292269041920371955737761033278289465400489906317877720331282292528796618382355155310562630163102922590554746563294429389244536952480366265432754575522420790523345310197611021146720305548169761037925648640871786785560383772350166683970327920433878543938567822248432667040236145927708395795959295704581917261971553728838531316560882388784193800636204813371068772864578120929977470795890074711716412640630666551893365521944097738787193805767709084448385887755208083148666398014006775534433359645606420257424965721584932225885235373619580885826330736309697214490393507401415275410575634112800844554386595600514069186587872914803148999015082832426666822131322739885121495259412222950227594080906988075070730706228302021545031226150436474657842445307957213603400870343733638177843730161986155258938812531314191032459009800914381621965919592591910228893534226085351791152160173928059441036395244147758342201704912605825062962375777898132103901954473683173639911654194419796862814325322777017286767257255881624791930596764862310017968325051101780598007915597310358937164309065082460963356286110054425553094385223526098591442981487096048256358206273409225908852900443421213889770969685256091766755401865586310601010612156077828039127608035842773532871931620517917641200495123090031045460632606258722926448771093438933632694521740721953658039429404491812950516316643436046200354271467598846522630244876949931647811296181466682403045073381305933735103004786288494014429674261045279920635179982595737782384692148353125714853322449349253779411624948052012262764859940333133102264017294867194461283303312919787342869765053427326600657020907713326294376873738452800800658984486154104898504874611838291430758625678781118589181510942248336710486476464398640765704156155007482444495630908433847065197812599802285691064170095377711901690796709097373484359927376643965606482399184862941654923781605600184288681930998227364684945036958331432757973070787974172019439877188512632670983597940502344790502060461214104822630238062509175764798684496059785392613563158836252000052757326995163567554427694421406210212449690417485154706395106222003284252514736441975849069811863898037566413786395315846069354413181545340170144683398165484262576080995645158247341274747083911241971750373513700805888251195245292520069768895893349206750745123896770713922056943107539481263961131572293689662899057052982294042977092387857032097527522921438001552194207569171787286347522446317191565854741569609944372155963740581319201330179001507939366156431978051411215365430990834817881723675415266317278330135600472100371223473552789117962479815895582762647986996648130495879959154601246132380082476804859714166331188716872474099984286075702760187013839940590604587144708990711321537903812240932844709607238779158324360276675092186980880558387132840578830898724842434880862403367254101600100402588649986746799093328399615212069325715334508106607508930722274367333990750903264428999852421592320451425367537451565855343151321807802710917006629550517465998212973282192510832446735134423599090928675571462620189606782484122988920378362849455510724379491004861285493694637322207119925634391315047270512531420508227727384300535357383613767861295564039165549394667166817335523399005402221264883499808507695839158711202087139651249139629070466951952823081060288474102860632390668398759996602230863932840530434111433084504916050553406831190585204579702956032002194961496450282878243667304460485170884644558916731118201911080839639627492992376233121914194205405494863432666820050934351324883226314299203857884567180500037968924805676436010661336199023449793077805286152528549289149929654017622046973028106799761888649333721682918673577263551253733974368479890969536671923351438791864405980350748913974648060906321022238581202006567201056931874186961510582667293421623147154994558873723780148746007349039111610412014312089032977922172921670439190400944361708082188226386187321517737663531254728903725404035932637233628175312071170254952162520818461600030131668772424911732436655610147158283264893764889508363923217798156102613196090196999700582156679759595152243839487126677587842897813217908643319780755198932639617161310877752296525109744076332646649267780187254275876147837329981822363888332155691430939952750904511726699370592954424851541972144817014488580059503566291700332068508704654871017682044966925615796457522020662100042080766925477726952896294738290826463438837755817312386224901150814415774214905703470054593615441513555755597708355512347419787164619193150520947104473389818878325076385695834696219805584805602052973003730350946287676827131539890182444522066393851327068794377478539226182725147620596024774701232205727604556689188150642589998212752448772760582761089669670235775946183142655092487577432100704468356302205644518753385285325927475631775786297918160013740931257365467274769656952387530581856760267358575680012643999119637444927450472354685114962478042461156405363596460533292791976544869948497598815908916518583592488849524297856003014476344337843263597891834055204355469111165456757819126081947092114743767793619607347337248298042291701985073329704373686330751394027653283874741271853385754247444215483459566380377887932323245175203999413787723410806281414388155927611814630594347077962991321423327291597020317077286073555932890602193623572325697545777051561205273955692758095771174957200633754060609262089798116661075349022704944551647952976052822124536838965254881017537605904539287323007935839588141754346798788703441089329895172349389179297063151769676907531038448482451281727886284155255386866284057494960245822084332102142656250213894932010962061209626117052688269310038716970191366245989619667339872244464149916450842545292255010790639094572633185835728407110366709140245733203091059839644187198323491447029422862000825450535964022046015522544029524252742846701393188805047825252180142790339500793381541297184242978390050092418707268752601091591356517973201840873422292784713212386659533997891202286527399315402106263280056791994009605575741111848653189760628044060546777687112724038390426774019643204167131927231135208028676610644265309818900186356037855903680391685341786890769044102265722136393337011386588674822467958272319738121443020831184433936408460647045013390473305646548415598385452028257668349626490779093085769074635566791739930469332089382911304349845432355378488611612319886687076424298763304065958256219446204276424665854704508164812515156573383524020380670540886073745265969814255439715316776188653133444456575748861720953303062909877676182192087447686170627576236089429231967413477150143627664512696841931809874264348160341646186915379583594029198474948912078225965145058832511047022006435557950158002318378093992218222945690113820054092109177818552085278849255471321100728289411374086048672846815173434225787653092528557397265032255416628458008247655915029562218062200215762027098023303750853972681953081470741549647851517362861645693277614689196163037837163717986365132556906777665163902970131260342741397979959030841234340643641916384951616253706558598565587399977139349873069914410972476162156106517840274955103719575257076785953067825207503846500451595532993696455664683040920694471683711397488692794449962010409731952063505760334760967724149224324235664612081129041368647624321028959688057169658122169708290687674096787101340240023263761963865149084313062180459854916575796339303440309363855644187647081641930770554162260460779284187544591325280723491463617462651516713891401042033595713012232303943402263609197551987172621778982277506805971082722168647335746061060712838036523649489209801554238530117676252410115308200884333268676515809139071221027408054738903736034247987993197672274808313708172642185815926767893116639451863898742660571651688447981754116606764549803961621845970390714759991933461861972904582885981224618543954626144848792974995477610348929177395813021189931314059664773611277792306770793565280165559146783736242817152829267429038449676455689143964086029541523996399127803164110697240980673192152876253643670667975299575684940911542330385169054616927107872532070787539639869633230888510827304233325451455155318313819516746802226042841719451392117544444219277136905999293281515605706338848693054923809192738809699243428202317446541921040829746845905717896939151620885162399626315574868115512178362920907503077093093715503456995949262747193179145821001611344166931367839549361986785712395883959942086403018355040392080840688953654305517890220607576700228993183427791217324793725595321859892737752110597944380567199947215739804014032227637425581473069634509124102777752055436696323461492783322555807745388943600264943947239874923457695874904899734901433710005713096776755930041704568336191301076912122889500019669676902072914440667360406585300317235934511629221692800504340793923578745379252012989023741903120382977173530774252422479119978479538666789864556220632262240320836607837032346111732851849560755405132809545499677459463612628131488310158398733783853612497720608749613531318073311808906346978837596605610992266891914964733500242099139274185761103328615633778813462688871209699463622269083490457477430267088141653435347610888448714243678462993028780249078918258208631216050046474635636333882348905892236727863459541897325851153577327119289617269982140045780065109309690686930431576446310361292100534009326896496326245120253230651676797564545444189240087991293332642201207584889964733924843897339561912363013552566421983433273053188008332289234761786536158960157305507192036479014191349537041498398115697757492568660498403767739688360840542382688057260670219457864051348774704917551869245820968541151300823997023153129254028840686387723553713312731213268199247371169455437932781029038287605280957087781618214446375674789600951654584419169620275553041713356966617159231124351820963708734277385420568144306197051479037629213077741404011861410084598047608917778390919542130756866685348076152743667514420926420038814500568767712646473580539609336479015691385902579430795321624078353316147701308474344929055230939040620297884001291269094927412683361931787663946291726160403940766516461438289127907842632453933317191871902150366387354550106537588191285279705546244636111616309951359534936192342905293891111786838011011553798531434716617216940264758574073956210923231412182358338564026611584993073200503231800724647274140113458066169896837033037577468555275298359041144968990568227813811926374765591272983777052335434678676821446250635051562080581929795216008514271778292951935513510561093287639594679696317131293113018989896256403863086071758009964546420671855906381145995945419283280423553666584833496037275017013876845936342545550250582462590757305298821261952503148344879455350830825875401914011489159746973443176622240253015251603979147650961876047816542327720381590243225512834856386969346209778440016395336534088219823735981516329925080921695619161258984222505422022792735776472060135329127163549280455419947221358782605410080888456433619284326558685582247726942697367217921335524801677569599914524364563755072579807932118106088128626150112015628808943369107245098015912927753109174121758998908668386332900977614964592573061771910807411059367682698241506338623362619793276232480896141149882181846706702159059747193548587347232402027355003241994162299590148577362792702006637066388442375794480454126840455817430391641717448357187630551463558389187166685542046834356339760988087032213651139976861755842050348828378524108451670592737003384808916137097746782478185908136926770428501001500096380447544247656889152710177015240365794742402140842638799556116405377414620185741309796259798711612635411717296558631286521980228870484338169990021709219060096111699598311179334729560337157987993562236126258378719618882585025142598500770163976726403902277091705306588035738196094552800983928694705607810506627963252899285376908137822906680028037361978598397452956923151579241468875000068364035550426822949121288920688712749971463118284062080889834795145532852810088282513631180344186326305496224247672517959598887468681032541839105077399563699426267826352717798583892127866150808529857166960769474686943320623795905352487140444906151373004729063827239032142122159031643894755341320672093604019880099355306730253941256185635474400672646276079169748369247700259903887793911198803394525760805007376178249149603653304927534090018062985413157911717271070867362197546057999560358149178806844526467004503005280353840770396902728916433045688545933482351063555294127161310681890172121761710580468659382732910867803675941505235062816254016258289318897337576617496422207741810946917148251473986070166442431065056709681147384803212312269658544665222377931753082198196473427810187034898750119653780008783330549727710873447166316217064520989171608516333568759152159759607670474437053990653611234752773618197310323944591441053880848004830393951093250066997226401207837435956416508861108611413034146430949811365639295893998309887380817659018929790132552028525221789676061108920280370582497998616435093907877400769091719407829745877176915888978152097381685139367215906648504294174555193761815632009167294279023971119186438631408872124612396220211303933975222687654782718297727684206494818641281567730118078383995738826999146089922925483164980858739992878663430178444255754724181416107610866481385560934297808646673391242563669074732196496304460824886806779634051987896563575223193770443150638884473506668705326293440735219307626701166378671738447244515414820721883718858298455666844261967878733188831049917899312920817377363645710780533458271535533341833075098557593489187257136224233305286630591601504235194167935260789849687703001655847581373624802247456779415090171707602474114602017691654769997739667101813812377354206751581664490600672110849155180956962072513054010552260444836313824216630541875937728463274767868168835855903864003307695197822480557679181629551872410404431650333964832869825167924796305527116057172773675039092284368226721078877105227237729148337726400219102248547278350943442861907201150920489352531698043854232749738711077240926458000969265902060040133098738857800919005235189885806337404986997158224057901782951713493135764182923940126874111265175104358108758677853766381275482918571214837170776210276362256315376445708964903900133108030729820002865472624597082061082373524483383007928205209851281812530733504222879358623388915964174679556830165523056359342744652571406878060237952620734026805181596619685441790728709195251527366245636460831598848285117637432043477895119888207667727009399929639600509273693462451577292766921977366910000536697196232890729701765430407960859501200122010073086838329276212313755696125894474038468763343934158740686239012203635185586256518239152007146917448382254790550713068779596814790070329103077015504682254518770949757889350706707395525764881874883628955800447756348382067210821504392928587260960355704996555768877652112394306271106347789372330693334719481562868986079787341482290180942589096003912062257534706166984103871405343140877251324152663690114298164256089948639959075286355239845169476945193241072265204139092335629450954891978932714420779321887360687606846453618626935190144441261567841162084802176798926561892128664510391696473363478247955065381015345883051260582115735312584823350013689659902430275466017176073178645759865617570523421757406007108155931645644780892796461117463956214386745456827343944129581348014770559656957568854954108340516140698016353976178370796351713156895948251144361741599757916543215733362015335006499147413837055004331387949956387155420821797688354804820855957886319833674368070669201222382301902872620594865443843268876200318156679564870437949880090521092040015426331657961720880800298918406957323652288863723916830155306761612669089984517808269377842203114671840109862511944227748294912644517292680119517253544469538665700335965325152043976992510695695037728196502914522788696165019925364055709441642721949329327375818013625452414441441514104566637555803997512308476842979474283743867632649318427375109650595563769645082333487918915554452544187260267382142321323502601267368296049239983815125414799380268919997403223848368531651761773098997017803103383799605219680222874792135549391648238535137086449217874483793154159078711839904700510978054870487712941315214703406006253835366736899046917772746934775988022089980280901219675461290800505409361647642159944485689300472315410589071064724018481975246490277265061748132222868152880950407811225220304458124574653509210525417591564442445828228050865040270643136675555951144768145074479744258993464945518819160261375826933338699685477652117571875242333938936401460435971270231351753582954803858631038282182533901030382124378883127845703641025568967937756733482922150819127449850978799990348608757644773379798354052654578953731832900119655383659965720033239482243458398221223404793652626924841637396516784892059475340900088040826319385514947075727553668669146903088640678171348905478343360353089046710909113655339781781706739685097387553276782681523056223693480545082386320488600504645092600098910635590722736278233062632954148763338737809320334055345908004033813893811554348466198833762379476162503022798227128036100041257788776879617623658708646333822373274467813294326816259854805186354033604519149030378579075239607203562518215020983443897080017136413307291296631220599576327361940869179002411666268105644275594094174522775478019483067764548161896065781814265451064501401199053662481219478591288601594046801076540628422842546854872140109089474226489752156849511405372487011468494668073644675459055594949130755775238336558356084701066856535752781830039919868336233707988738905145258880188734217265925261208296236017777228938983918130951476464928391511964903711303898356667348626477498054989233149815436070647877170101139168745383899246884392101002048073922302665930093290258049180808788801957136403643487550030074369447009384363162412967951059646103842893607066665281123915755828014251489141598105770940758694610817545717837558380976878825806510081548463004923778154416414767597693673112097003001536139262972598243673905599041504128748498243913439702712632377997585745969339510716894899372343989185225072316703879887912482742668319531579649147044416991562081739736659960551456877736843357685310241880952837444981835790778052467912365797458480607926090564700350825143348185660652372840715092976792062082720342366193328427611348930027814624354428043636258638280734181599966604021992070287068207809039582687839666152701223853511377540519002328234801805036869681895610134362277212927099346422959059700940659961758266402635514407067778715487284502855865719793101157204019797525158795859439906538558533071966961074980012309813666735943135234963407893722661537433219000481298305242962412193460075671367825610062766433023979005017339464520486739911167056494194256401113991367453229543932821616993326633287425161119089322044962824520640173202115726663303251108673015520474045923912752864138461857073814702549360322769402574903887354774497939381075841550391763534616384468608024337318791999118682228923090925390702652893895577264971568969700999128168880540045049092585512456336760688210379007570071957717986248044216201567000038645786150359689809323389614344410249939326730725892589021487120477668305896484582968560955507922912887519199100950089178883394763376759254362444631745915857209477348695128741238215864563337524605770182776757385816587145383729922594410759743901352081629515829576857855799149434810351063554097427672011066883518962168847476776527502292424602366115001148494185419874823610354096029373299581681730039051989919647499793284988560091211762641055276409300815220971164503291703268273356674942226149386789191604145653126359870016212149668544711087271591304953703908393096328148314893540998963932508682075707051373200436467786325739711709391261044251968926077539701568705140183428139113649971269416610770997190213648077965092736421844326407457669394395498313002654121925399477468218747093863298955152432149076850293718680420231795411502084681577091330541496854957413188024281220709507407489093610135381978527910293202526707548197389071651850329112753514880293317709322318435876117414001624677803697458287786915730987993745143379923428731100098213657434188919283031341127545541883580890611031742675298598867760937206078177454806117227139450704168287887352646031158434648422390790236210843684861317484608834038548454792129054709846688721614820784871181044317055581040234946548189441713421395039325841976132130061539773967282658181727162860843928735689130216882889110044835313236104406919668460636593215177168078789836119812752002126881747875617884445942079859701123913677960695870917744855364994685315073688329437385880090366555852968738145723822000893882804774670447037197471947240799599749471815261198563459309271291297611107900116918800389241564174367816217153308063214771402917714702925619045549209984976733292866823383349443785910056417432280409766841429085961202510053021277176863482875861492702540335057937340556454056897746677104343113475234856517647783329416167807567238564555068804884546321929773441350717054460456611496009975589987733756104700087380897282524838379183086613345076530702670817074948750453485518001281705339516945762154400103536928035158017205878676757905365933022368224728777690671599672823392503931842990563329218752579870261015342644456792734422183158068747088082847011411265232553895292157983965895111847437353751417881375367277249694449588522117763742010653492612270439865686623671750397216165054566904164784453263482592580523815069268090340873467458673363158945298367725163281491019699643551196614245035327491804035798563039763656672440931906910170394067425280912024476144703696709511875458030213391833783537376394610650383814284788657398729261041801207466119228359043403726837743831936079039740669840374553121055244851268048238649709293396109028432735166398255861515156285434083917617356214375139127470483280009362757181296302230674451128328684643888982204817491969372750629965336780421189808798309441973746414945227806387035612105063700512529186144614975062163776888543354564186722403744125057869182259851655928490214962376010168431606658049443417439368180926099001460315225399231765741277073588568800428709633529609929850900964705582931664867260915729243096969002103924029498469995441608990342548469552904838088938906679693726117799991862189965945370992425327080330014227533378377158691294839815208377767555968753928703813098696366663411987067498251590469780007177200215349069967993340221610987612514033472143645540655525625482740506409539529993930452936921861803824280791863040174686497539748650210120447772829580480160401805614804695276962056143609934796257467877455876500817755372279972541331856235835064712487048052878404089729737137206907386019444983518104958030347115528215452463720562075499255012567432373909457475365348162137424027740360093158296123575832529119230831607347661033012479679023623977758438670701952661138205351237068416880493650439906177439636631766197586424254554572151599544917242666344986913043606259730068498969481283849449245846442034518622991509994492017471690244176999559773818300207407791375085765543873117624566688427807414538583463584281585224693132043639128020649472779898877060751104592237110768566256815616475141888262413067911854890449908004937623458625686294086103190303411541478670098008268303145885012400553756239623545475404235279408759112584558184414866418773134773746248207322583987563710352760584418984985829667854283692110848672994053205506038571121633114885998429032862776320695803934578288148432790704262318961824092143350983756940018755517102898462564548922334655003610337367812411447010903872270540889888212990948455239597059178772348477653076761476678657322090107179242537386072169400926862159378610577866071153429591701827695661154030926827100175856638352874424654988555641119336878146169625047068371194249943536931693943833275816319395039546215729435859009975504298500754098978566566363941619528366879853646206826110160881482033195033244344400801628291656724889390818531838336734169572089419937730798686441514834461513190166478573458826108765497078679332007842490849781725631594635699371205488622061132989557514966606703855144761648748895994528346675581142567053420395314980367016544655389413806238251380297048527944627544854333957743652345933546901528103380583441356917314838419441903714411463447897425542887020236968937328814329389076884516322561872902571879281502037159063267439639863677177838528691767059160689765324170170005820253960919449415042845706837774053366271998162070299099771831320085453740544958991134708352905627503953796169893229016629319122534921848612521515887095035932807600514889385471451196098597815686427014887276418380935706684608273940025724706933262182384214144080584182176638464497041915949912009451492339719845357674622245847417975833060383981017204943699533103799487149071789670978592662114406320356960320324332245809345393630377537283968890147634159120409854865171491306196245593493081828424167706278188400548162058299610836615804143922689200440012879742152621997432622061754405642424348602041138195580933698829117606515352766806299121380310318300970387524593558155911616246515731240454150922461468165769557493063614706926739190967846875783470690321237899734124489564375828475277417955368597154669506208593464835016625427986703215421283613841036220569210694941003834305982791319392140448400555963964349840106238754458348613013283492081385930004517951022355771486308850337369735780296525972797359932676590395219421775587539536209150029147190323023897093707011970021869906199766086504172418407415315084246897799110370122334670795408179405403263324868369784736540032038191851115597592380347874812740677924744023082934637925979339508761729376213437480647487826785261813177355101454551708441249436828628172974254383569998675243580717101164198618633068536748747123994938259354405774195297852863594961671984361240674218519159566847364559752450734715109810720024256396190867508254080628459004558018022861334176585674211906089884327318925349887032075049019989076793794357542382477176804995959703569625169335741861934816001979499490564544588591794060968160066807426896466349744409237256441149590591713952074843031415460577882042531469989468221614819170136143279893792036532502139576931227161957358291126532648048326787653563138447075241443365980613905777528000732027967834175914041805355422393325589259676523801826023536270222084320911872107971242905567707465551114372812565639683005847735182437573814209618782664961737365147054746239463425079084347529828906900645735618467981706227818087039458459099837471314053943708802187338991435229540849354109141298835236464502688045885070128726642163600969359040230656565313020854893502245335235658481321772731201432888560054015567204065502752370020610541653009750154523148018865168404314398165879410167182139271272566295259024067873815116539244438910744892394113945112021182685338496401249952439546719478834936706732191850559709839011661524477004786969163719905275166804560803637077184967288445543007712742733410258509232643111380147982071074531713560946999744391006713393996636499016457249592935411301745702722348194817876528045616000089385403587530194572110130364152505502460362791330938702528290357345658164516465030773601831442511129587484214648095593085287520543493066509248684051246144040495838064400428575812847839518930717316597227253739023726772549540627701689958420916863630361410059634386754382360977757035198282802484409611752170207330750969863937432562645740129775585792797450002980235836036217970116959836112308679358677040815630794986587994242999284721307334164288315368091894223665662918045259724152111248795300657322698807341515927215626219442431236272244321341796592588785068049964670391376840251934263541316862459005820905892356162090323602201172446684438354179774399451775501783037358376967197452394365430161035459655214596632477540303794960188324689642747090777579378836120247851827617117234420547444021059360444589083842494737487228299750404598802991076474260592665660337817714250010145463823344768631027765530804513619158929405461191066388335050219463474079537384231090632395309627155694578854023847315507270408694770705906107389735253968343319439216654037453301488205343006807166596273271073201146363637847832634292961399791090522617823602414234569538475451428371416800415275816626876824437428807342063595719020786881273859710333199950164228382115310007179653205394996681040652522384291189595368785178947302337825876037386973106456686334038772574178845743494890593490031702980913958880868347131505949599720597283419374680895321169161227601262296025628668685318110528994950914552461107169807132984584082723356000584899745078118694555873279815347255993737531578161500149817537681517400627900160239859600775377063559362908860485490899259558357548254550802241662949889325090667144942675533760350005608428793893717181912387227992072893615193482492935000872825023332891955806758491015529722577543387396113223701313907835542693444041529179513202277720175075349596513063955656727952358860674874868157800751485233668346903145102958368227357378606086991748436345298676368825760637141885693962523137792706469648177875508404005372156726911726043150918938950386798333839416598412807350505551055160555353211099604545864577895391429244845491057054964079732087777487064293191409602263552213112889956819603680178372069141980313828363728266363314930000904236376760579899187231364715362242926711217832351354823350809002375694793057376682570217907269408282545830637376035521970702550888893023323209271861168162822928349014432171570755321437702960000658652865721113320621753264977061387734159585869464682451923836704115633768699326032727292819545623522614286891877736680320025952260863290870376306360137344271151680662818960322284793203342635776294522684997706226149243555520116270048350226362243234355142837714837421015436932075311648491350249836869030334593978261993579510834815157421555453865558866821339714987848757202398314985862949686373301134062389345677285026916296636097014858605576948915622972007232617127328456213133090239943116996534692367132485393343837016852508619580597209486768939778387881713540715917310579748021050139536088867812959560902334602406973855468784541141651532282706581661773568648128441261939532430183678788814324625451781573969882440549512085691684410525830713852309424541411442971498294003648182496853433585990635957424955245190414908169013626265605431132830660590114474235911812486293445066697431761887022187318772843253335875416226613692811505862137132606681699981140557185983673415090116100039327073206419877863259922940056436048980598979895620818340216104679442020620925703825930903637123290648012731840257540909484664994123609419451928541413483454948615169644303200221766980548024212828319584059689551831671798151018934868335483499427623627393756705463377208522538133106646313167116808339063354612250656988203733354855560853930849053249768897632263630879864202465046186353769633884712403114243574425353512005195591634999253038879049706935658799453831330514703255522542659041196388471077580234377324501980845698597270521904425782798836381577046916500436249909587050178500718058820575986125174063509495615687729645854909828344852319493871980831241540446220360782365627243093177650604474528720208293563699311223019560111260328460673260100290514846911214729681073503947498137943005606136990807472901475272503232366087334419496265997440168691788922828550972393914330306100599254620275166056885840088056878607160879552774972992380889500969750241369784584642285879886479111196150812777472703907646640984771381900117060140190707493563637546991672280976004277588303335015220552026699419239099234643874361307486310309083600757515098603704355841785199966937736023891082089917492972037828949454697939339078052057479847992780816445396946107213977027093525630689271577172597472354536221504966839029911943217328537440833835384194090473293696310223246684088402053804773617463612497106857892400405601020560213043739665406517121171586645557359456661191911486573958094900389445008287037044596482379009246253453389266561737309331293463773898201093301279910270299856950326626711830365484497109852208193873896767799580326831488650352994499911715526935946247330245305115084556682178857878046688427228140878806427925686212334007921823899713686189789613598321960969733506591481875522829347916225444467275207961194847219420101537358316811108933721592420978061851516475184068509022796569346648360027179087988299483092800259132495684702988864506312179216952796762734525803195233490090368301870361453613154685730002679336479616113238223166493629433902418719091472619955649695349369128449307661073766773278169840887346503252295561874979270841083000326428520601872178090179199013933324356519288749306148733321498302133625430394910503283087740245102670832801328095116109646619956517521006333546519800289633963395970566386835988600930261274123399077613596396620136000093067590928424688833819978213386156405214794768875436654277705630229971683663827726438826958147676110885445195095327617675559495278886055676643791443343937732203988281503137975765295492057144866680085621078659263146930873863859561075115943218106502676682261310858617699836570486074205452321009352444049913725560694150448000776467817542823737398469690742664918531250905392879465322035082589835632398083304851233335832981015716306525385586630363324156411781343405097324430629550403535491914456291313682365737791749438189119010807935059043358284640385464520408856287774430814367357594261925221862715789838001533051014639617329780766577772387088111816586317860129082910339599524189727608402727903482742256428440388298663482250664783126568732784254860116681797857874529908091275360099337222380903782533253083100389469223136165065174944339634183678250635667402202282556731816516503506355669382247854497285882225724805358026218886761666954758211098423473307659431203253496945529120117906473097147764614847896820322592393198771639338045041469464450480012056877895635037523382062114485416919372264255590662133720071266792278030757286890699312983783167488302188611819253373928144280390761445987717633222576516968538023390100070227734506476324414858866974007865285658074606596654815650705356135832267215333911709942267854137382404046286841807148191076856876575310176050249844136729979910288169441283022039693065498796179656321091762705725044641502293563623564736985608674020438256412156328097037489327477847407169774818814974013654250504394242067824619027832632881499256618118035005525237635116774763385117527400929641801249858455016029999488529161225907234331805256684111652992729534656984825777566834835940074476847767343869657992090350897762192073009330344604626121207042323202955818525515798521971606684755774858643979151736319354654729264844440075615956481167087884892003522266799136105631325624955859049193123878324866670234800608821174167823920241033994177914490793470370155732517229783055918685255657710786525222891834836696682969568811799463441471737124425076437071348828332053109065793047921382500968625011673858476003731059879570579846323814452437653456139446533614447389946736393639714503222632515545113934321151184733335904428769687021971953153356908598012154491409217413569129363253259091836215662393655102848278124743206805640821516407300302025265696258486782354096393496678881380418508458174395191022583725232825759713497903275605040322293323268713609170555404619155236621468530215224867259492530781848220000091139681386721948612155451707317792642574211012670328411503298267117115473382163002090348459269269707932566863589630613120569154077480169436318268412205178959758720783420420781023173475099633635918509474067754546034384092362407071186174933904573705730250594427410377337753732297385643714284358017775493911844033793285986304838022372840399027146095730544215807960186810958272844764320237747222738221250321345811439480337562199603918205187564249117255240464329917999472286913737593839667234462178368803791507536322826946694007456082651196858364735350631446961851962898733065263391689478018298944645468430932468258748826428115651108451464382917046548991149757620072381244428691841013691416492567896105406838940086382926907960879448230624133271365102038325622567121476953553056266167531762771557551048505487666680309429129852125624965453964469473113145948955125285240223644010708050923684450907880727828513767901141671383464157031027970278389880127454876777215701398506909159317184334877708545072101838632476689612155207699364761304044439257253901524671291736658169578816858708008110890298135542989217628686871203814949980997363526205436447578577424305768998726508181684539457060656738061607521525483057279501428431959816665703191674774033053173356174401093473585060606660149339412343490834826095598014481939914760262088169826525698154340412777020376176621648247329997718647629957145387401071807386102150044128428226250958786765521183626972124691831395049408877433810204654766641566402931856902720409290827754045926458792441299162999479859892581441920982419445097914282116081509525616018892081134570448316883250700442154603208744780479568341581334311992161154794954196881513472225326338186090508490601312147404740830302051508804546812010970585126845201151293271551444512355866434830280797972899208054596083228287367565490608932506585225228970398289835226923489083225874553912812064209441298330009959428927027518129982750566829773171067563314496637572863340705687616226818499653681652750313236313076747393890978324388357378632152348442408964710540261468043712575045847671087586619877484931784328024314478127055065720506589419732609185490943041659817253909393441073906304166025060907591306017973345265621124985322597737074099927317147639819974629685455134510543289477841590784745582711118362013816205571714425652581075081429208910930239059922810583951671872848331373590462853934442283107369747351450346251372216736191204381567478441323175128185968394153661185264894690088843623783093930982679338038052714841265829925683373301677033243791964755973137142798667562251542249998980116835138395078905741425085150476483110531624291180582304430223849786912615193851959253358346105445324658945016823667017240160040424597335511693323273717770216779341120680009875557380843216687920614305415004799527581090086469390442185540242367602688762050916189961426037094742167352365126896669626141262830282320224374996400983182455975303184241135808955744372901071893138973013505066363648212186655681987032360120743697656913213302236750626548623364729583928787774543339009563603740620227237461009322027954018517516113132399098493939991896220176033695510563939378836176817357834553018427772592200842311450129531065478293411148922698612083422599734124454040478238763835733542210313054802168692328185171245194659977045032404578791459281443298348434299075114387179649931664242737624649015736975619890390924134388005896982958225048382025139759630052506876739498027290605968081956374391601599135499844644639331550437181865039359778853775088511329594402027590045586021879563030536792007411937269523064260101243985795559672761409613093246828048063694384969398359446979972906071069631429556209760138892037695141035005516580710597369205179613755680602408923690189088373688461771046540664034888944362269540143446592315265288518822464107792004558536288671543808411363282211077149515510618707023443172059811121533025566200788949220800730791940951142475129177130209625638912605047116231099219894103353832263209904528991486823430889515847850897798090545594552801974460150314205821534385522711786279818639823720174189725443655584781374519954585063669041930947136938830265603767078360490648297353000219132569041665000941129661160619714366093574148838637236718650232427133655375133221299445657452328828136529495497408627665857664590580477286678934811114796541031850772108298414136622983531271350448477734474613525683600116725139599869494763456622436777514248265837847290992981400789165874688048313753368457126181948085949794718311457194567147337876480373323689643499596020373129355023009952143115242337993890046225507421102845982018715769466221373832794864791588802752840676228427559624492464788924641586953470252050331389465689831335497971588854944179174285493983012488728998447395240590906838068823958856546385187466901039401050343449361689822250155828340497581511894674369931061712068811381824982403207283808080978464014663001521037275169829817017833746452902588656909111017128994213842825837102472529022820733356934101855249742284602774107161655436947226341592454738627639765840905352257626601217194423225732275851309464302712398112501444730337778945703100065723682981264275808296928205448032246681879371246363833028371432900987027571624025016107907252321080874046689293583009434872267000250231945366853641951963092771555737816756550004396358389257456276856459161340292441849919661983526147439243630935422304029279363053272196133503031551833010479674789548632359424925340592861334092477585707512308506573677674280671272188490698438607776639370195928853035704003570119729581250183793095031421853486400300542503613202714248559516681067684672431699244240791785705331486153925762916852433257918380593728628048544192239859646407960287509610646963322747154751542625802969160142522861021257537436515956099857211434424282489414881074619936898317662063551383948929547622391073258944756984399533488266782286765141233672843175995092372768413978684682858385639304013594446829164084350911693934942481912764628261701849157685364143105415717219618520189442860802887791182995352496676157292939226945645111423517723126613063558056971156752143649153031490185655040772552082807782440046713406306133008676451824637924709805269574207131889989268196028350564462949969780615116863726837881281970305876457562078086947606794150885976406012877969543958895779513892867935271465862523970515280963691487807369043641148119935108484895666188736628995624000822409995126354934485062142813103666281365156921641671882675749556804804603115918242224041429033118109528150337304398170564954529513705584346317797374372575346439766905020170866449832601925706177977907870006254924908344328858801366834405829586994795975926162844324925668077935237907120899839190084459741569441990993261781304614353818399339898225197293843932000051435963377292471517372943415438362651810679319993010042549487952720174918523432188399538648149965486750141734266921741050577838452047129450939222419708312501074350780612269874784066780883793674348899901881316264662155886854518907802493436669506428821740399994271176254122076738022754417688757458135050272847697701303558414639777238481163444986801257256402532388570858942799422344555664891275618224371419092211386740461834320443267207265842977127083272897803235952252661174312736663414652405251747396497781100486412578103697844471755952390646983389517918873782535243953642965407412434216053671700356550361291062072778684171061497164690681809665233165499223068488923710214554311974788753543812060618895189947600899532070634507469763948754065084205727145629635858771930949842264327600977747165781223208909805039389633985471160449172292119739889325095864666215186713620187567769572626073939770926509416956786388809334565807139590346604729559663663511868725295731586077118418083559839919880001541105598243443358287618089611528304633004626639701792863154872776010082295164510190739191303035333562119721332741344859793979950330548614326384524981003538639899706397447054978821321906306095347700806503640520599984370487287827094058358717526192952281301169936113280555746232698795616165192904370651419734970907711294954268078437138351506821603442077534700836656571777354611463845009195255715342377963632582819596087324653039184177075057678410789563330973284901530651273070923445382274118673743785064404936237554067328842158300876615248646311802001783381687929784905928555974658870629255263913359789610010624600623231128008358311073063649914433274379681967822998053470155915838527918690506790585232615911384888691517898589844088556740420050702790437240978286952923142000200432281774286475887610436333045233488296054280205414187964021049628388092447555110594504695230975812913795093640631506033082898606506986717126246076841929247387842638488336762709711330642158798423480785616150231125091343438942664708441175558241672732111471360686854491589680951088984959073996508321298799582935718402294441982721360446337041352576487453671097306853157605907459823440379467650023837824692949858578192074016631066947266732161104976628260462328524745082018294602287407356783313222532682858207582043885457701480730343828332824599125626238713598762271658375836125087881794392490520922043736612968459339792220550623157048792915897639072813663472947072966933233065056113106948321849379762930493142827843833729691638218046582246885731039465465802073955456360975708841185511506375722851366362473778526135950509534099360190321846883637440785022521075715965038867485712975604194683611805589057161440966330350763975011398210066688464946516763456751118136951364465328892430439069212510030833975370930704502542173692639643667425660032713576629542578231691651656308975026064716517860499280636788682298251793442840682478869376150256824744981775164237786561355855598230776575994475513599907299099678187994837891879765874037467689938014744573699351424620367226682910290206242695931583872122084822161218772729274178883224431364460464849593761544076948758365324010855817634625685995372888337151986591464838076894465601914455036012511272342210589871393721867094829695685047555982905606494972419143001502031699215150777015800511430557731606007871214726127406318299746759035724669172230777992830928581553360134334886547854324293761135062108590974973230990763864455795709974735443827376476742079822612497023695516835569738555784173914583492783987851200054358855262393027615027380082513398994684364484052340593834233853856482708388997214289688545174578089497972689040849109703929273137463438688542933137310910847736014059155393025936584731157408120662546704820939241257415989323120079335854209641493708584191058279403415125970319828833780736578880907581440976910854565239416453055409665054654530174042639659866383584595185870740911047788307466790386839088029911464795739119423961594503947053442897495593372755928495718908537022666227430327902307864358920373275829212564921983811097177984694765320496351822494134544217028083381743571907431340880952632334889750787711305347881251424196282465598930174708144532915880550020331959197386446652728516704804925514407602346100936938317122987948923266620286030903568839265586735424400892437851188444948993186810783686779791722534479111347664808059335621830255445324153448074946356617327820296644898786894712995014217735295026287023547133202353672375906067009263377689999277552351959526915300334326685597676043486733415893345703538993747442335264823597793250268019634790334428897301244768675584609702675840733578622294159495554459671464575702498279142626370795892405282708757633507725629676861260728127927588469947084632439118469022667185854306179305838552498877653113734985084144397758520500642089860469934500042128561088690454563599386184820307912477431532732499151676945470299931524996368710025647914541458295023751531833025361586706320312359948091830325719524526100577241062743795109642147687633071504140051023953327733423010313941533983044769150589889312666487409069572965550132125598837971293917313910881394967895589401334335437157570398254464180002277865780149314592254490847738439701063735697379224288561400959621615173622610124312516423381665346168681298447852667578001491910706686846675207079351197866307672116226043330356764412864503818812666548245520549521081424614767488888865104998723065751775114709883025427257034656140132305668257863307387497278743208554683951315506337094891223528694032151217224018199945580352170640329818159393190262071052198238930492634749114814719851059833040021336670451542349659038346391210528912587419670692874468026255999258751334134790696763602177437327677009190060125854250722842679942997073725515077788595556193311514274052050613542618520707696314651121144770653826314562870591868708497403365253875065565204791960450956916631189881157016933932388308607406654790592096568291663143135058761874121984497773936771479204136136633157836265507552095084032604901679026624397213205221824811346199357956315065217424101234062779055169968032709700273393617483251593673656826126066903979939721748320837972915362619454061799744067464998334992764163103955322605863181875188500004650945879989682044643083748478112953527765508946418426580957211504569200986684087919848848025951931669404442006652170264413310233723560421176798781689731397202376751307267280200358512704034080462954933337673650654734412299521669914155605429700420546983131601720899132343341416864729880004696367315309083211106631891860238077319465592341718649168266589152591588135240351297034564355335091892019444600065652571383185810243161798081127256618576858517251212460494399700281239831378952175232971978725099792644312504020139632613332288866647440458419193213792719716123321983219412003396797248591945458794875338768453338117774394225592554899588413364040761999110211718951968943939443279585325460927392279309969676828302537183027724625682795318807181975854964951199198005505396568292843658683303494973107729807777556487448631016784782879978059984659918387511005771875382451809880467300293781329278487556293964747339369039170694611817877627132882774439830149250972012713798068342839271878975014506735816604260184471105783640884949285209568380592727507932166141962074491952446495485983499243442438123816541748333129448624109313528899037644248606999831292912786155095999394160991460402812305050404783832760411552294216115915477023334061260057965841947638751060847986171852251773975312064797402348034344279301664466576786483670387489713891715514556166729973482296399089942519531498284507027625336740721906852990494470217365216755862963544572139194915132132900591873162287251509435032609174304333316413757632607420576392325326511967025987186003347816942475061096632094342671129441645269104475388376235351530340553835325333322109012178857029859547063187446784543045606666511864841558256175765416728101091836952276521604667315693018685144342555750873792421916857301346132926633936188887361112201560681334093417328375667223674251066925301705925409915019120101473122867299423945973446663972294001008387773987574175976438404018730633375394134760282606006702899194037105019675249278612132296541750440516619342953866135478528189797248352477963766230415558055918030168691694790322769594781888734177065341841969149683902139610938629859095569702512785498262856122652793809134064220803105716939855678593581709014480478084619993751399310728120144476186807227750736731958967096985003986124648328368299219127452509843309725931186486118955501557169744746706433177704061785497574454353637731494831158752789672392796773341123774293425000500224834109459440191656609626114336588484906270050639903402614541870021236166298783942989660688243585530790430022894588265265904017411357886157454251337163275945106437814622623091871184511136224385597205449078152096883720881450695819158130851717438187491284878109022190222230610864097783176174767312966839742439840503092997013814693254428290059266597761539346546992422002638539558624771726640602168732031708290482779001221997353472396444429087353469420780902016296071721819359202436926706382763550516885666280414844418713415190777737271353861500109677313105489946295958280855700579032720363689142678997172095301622069976979340872956213773043411646433853882264505925849254601080934912672596791155607190351290068175882722403308202394959839666961709995073353505519179824687283044994622087771538584118722936151900401447038978007222072041437061460733061923293493705312795144465627846841162462506562892868143735306853180093124815448963259947679836225021617838248720028409564524345625674796368379664272363535338397355957174708797082923878239683893529263237642346522415938902633816949946739219832024204111207846497480763997682312143142743888967307304390871821675199727209990447023095349006914132267424940913254531569867110703531858097583854277238515118343178486420041240743401799437493344008419238259787585664065887338686338623363551028962685275614428908128222826729993095994059662028657443573863331945193561344231833574603716477297067372339869004839465330905177374441742666077693124567368083231466867416687249997203434519259008518936392842149893210081023992273770138440495641141902424284741548247315049765486241178012734480273353981907387385559363738627118076519036043559863079869996015914793288136022709482455808033076465444911977048322146503026294851214657188770607245206497453880822107423724788010416618251100609703741279242853044698157841463725645767556944473285530241797561236912342367447743475271956419166194959846344254649143828200955832003218145751539519776241671222713059861707474673622278842887800191560348158994572585527962883494783179200396142810941355294513678679263557081541584189224144528258286267622482580557899486862070387769623402819447792004467318950916545719076160819252459485777699000685995249064037003643051147767196351047215114973735711994278722558104073434454691746167649522545470532892797956393026364097506136373431142184992126778304673306606256833099850196845037776772455139563549033247873437955118270835868552179722460221063251887366558307562186003314432926080603504754676283075116002989385652956104128040776196390662458407292225466364514226772029985571244926847089671587475601471280239622458028219907839206895768473026258591454255954180396893193837730239786181606899631004719149630952269169369808393076677473133877856643324378756951397520673796044443602534493245460038691997962643461900367053117688771809515040454115299021415390239104833005625070899020146151474343529566865000284744771587664673987324032332611576692336234215832647764250423776614788125954791121613960570616228220942452590328956199537681524406544430650234797626782192001408658740286298134916555111471572560844065027107728034616853574295812506084175639747993627684913190493195981406337950853138387161843866441562567833087831328580380940986231596327230733736874251565072168058323264742012038078304481831016359719445179505090097424179653921832409009521686306863539363665072722803682124480377240307450795620097380280080622401061171529666689306241005017435029065141790845277884001649331093230054348168987545450885435447038802066850399455553180248934484414049892877167255306038434468021986040236417801463009018944113926437965065510054379475789201743049115925282970854940827320217160092055925453750899761145621448092889591649914930451621537681848761758539911189718080758803098866617449211581299045779334648588222523478737742515664459882341873621231919607013012811841122488648443118931806964243549965790329569307037750600581114815962115983770838773834324023248422229863843578802531033622240412919084916565037274679628363408011307479301466782498029912867825928157057517159844483584459138371727321280363437148447765779127490527198073363412589850484909814921641048746652041352158803148486772041184932850244644673010302977267240324922793110539554773350051421488275064402890077441512388194808031493219154994394213071984547245311636716363011761681698142966185794871737606522610498504729154151217010875398751796313127392525530874534447698378174471433819875628987700215923312902209734624320256021372049719059190424100057656526175244765939158429079216760662243605048874680997448805071031915302974097770040974214676567611086021879015793964340403505648393301076547057375227085722995572185518289405755261183934114007697629883314057661146996270767803000376552526616432354668444563406321441253635518408247581398538845649640442562367709352044243411116119895178174373664993186606499035516754816229000263113624237960998959730667303229908277060209896365028606296774795005513822199941160303080784072826418918693144887766648150233899769984402098488772510519899204513119997000996008004191216318016420893183802366759099348960359932480474738871008441972058360326126741327178829098827419774145979662350993364423438846565092827982114295330296619639746047885864797765582734153756831411319634261301222232150670710289886082469574199633003328996005283996283080886106346134350033286117560632930229968416373898052648284692829792848642512897142179975330571480975203977001055262641412845793268804500906058243552019995896242532709971842435593519247109272206266465261502389641777338743561998990085879649115669894703130324588160243727597240812520600700067721852021237198270570976985642898782892770642047736986429458743650766449600044232401192175325749684851596382415210558965751965676241404448646215731888170725277635263487888681277774575752768934196546795685193479745154083171051688610811407701049721098108481397711593681335258474155760052530222213930843266538470252396721245917015170458194192056972493240517166494313908005558438591013116606703909850250045859077203845943998085561459526852253620060452552358528654659415383607903157153929403073073014097297905495126830722045114997196609091678575864330283496410145923974101054231688172298566510664186957418435722933798535093983330282397838252242458158723911091874887678837902629112480768918371581565886736536544940610710126205638538007251440174529039287083893580712267272141159743302087630515708447547671495706302045576329758921601435631060714797080202714313086222275672000229358931788513165795337064859145010696020326206211020104536574158559471525194729107416785172275234607781716303192405131532880403027856142208198812187763822846465018964312156050456213553833612873109009019783849922689013487589896587499646158619499480641832743143331863602721118214220304988446802212840795290007153118536899416018422639000208272003413901887630935482806123368164360370769924869567728709109437370029173624881637189583798330192920326301038219571200398639694700479834886651281968694169786847335668359298724943589963737316415145018814476418357218276603126360723379779351020411703649949859728016341325033776835873817460078787528772817822744287698433022156694914053206921108960626806930127198719453601267056847513336161811489776016615919996820272333297263066248187853283439919833270359513609390541217358797011868135458773058476834826676871903198975956759018004282641079671600611288239417200104438859824005170055082430151980309439193021543301437093709714814865395957990150161217868440976456117299265023071803924304429742461836140044355302450207552255092214956289561153532099193890140241875917866234423489879149545006252149698944839301708906835264535631194805800505222135830594134790498483627825487121678398048630492692077142244075204597126213846945665147756918136469292923663657377855251166649388157693539759985667693489898823578837076633713770157111181581069085730326770582601790519930477218507218616109779518865687114084448704975053445670364210501836528116186426364096945553694373025241756974187946788863528373650406246227744231997741003967666643300244741517420607229530113160822301112550930379186197671160035493534747490245059300486444678533107151636724298732951208608809386930297120310546890781791158824579422870325419752124628223652572006987897272912184857924622622583618270881563655336154613614830093229840183243558668180905162160808640805584029218209249267480027875190075012798726951593410078606182809319439656048493396450376915993988426424046116171571481537199719802091263930474441818277413589846191608827371173228801063583035444111914109228588099334596358539542320855873600530348042958420626163061028888438288864886916579526145640497370187767553517871674153271381573992930405583160430607748834277849918035851617279393753675517898580700195714318440764313228420129083836480833000754974727545790526139012856001250954340330039510894096337643735400005671205532363891192626083255144243065651122880913578094653720418458856159114605122827150635791944700873586922754643298583068073129958674723339314767554259050573701664980532263303269597340037434453551151688292354762398622671794582016479049286908173758730832343925085903041531228469606381600686315484958641316902590047447027825697790651163269490806412901923161748063695419568166002013066044595029880679687464825640695884047538968685445394187939826017126386830272074720444397546343227354886337108964551024147011544345421683774923804728834657956522599986288640205405105412045194168608340545625438029029513513339207501459192883155805441832789303583593601619754364461800888117002558785488333782532472094618372891783892764404633770344642632699612927754847585763355359069975933815576546195583747680028867577346836082163201902293968365401141634808009815683087221318559676324555727371580868874907260742700429365736303832738617276607545474357485293448719999464503767526945647488471595555545957357848270335158450803597332205322752947070702607247745977113889851480001062166246457103580972075122090814648906259812594843670757673697186954870393020338183741067444346622773874331340106729688094904484615464195711444313782445040155591243626014134173436063933024749229167156539368716555619896042172969674462730141253707096591901847803146604043540755417989487418823190993252744974277405992192727133670349912173206139626048873751488715585223778967673725056065713806827819229224709878045841622000193341644910610959894583870701796736934526638218217527139687915801479127332319801346884996026596791454408524009919040240773215959059432213285358749758058441645719035991841041182370914751030894591382461246374475504113912478888785760547904398329397522918884352014888313520173144882737764183346363249358846939608012405856841178352775930951467143271631953529641547186599765260600482608073935788180786970512263721641775015972028922223899459854077450620127752448897772382352034310992672376021632010377226353237077834317363604348044997287690824882937365615781568065107164421397028754336903384874253262266555139957982179977440886260075037455722599212110217156004361906219251640521347365014798864394736752048633782675679664199078869414615305602047949082544975943992124369282174892034232780486074981530242388781780279087236394117743946363179562443133106744759641477369557587157022505079190606070164506757392173528959503744739180667187765482063361447184169096754964657544189866985945840278492417011050658249104093868712913199652109048476465174781047434832379450514459139924313053026613409557606359131690062208418314150714379266474521355507339081504199543333747205964546212555852057310965032211732947056799366720564578375370048159081427222617083597475282500342331015614958877339614534118021518740863201496568782188289903186836300122315917018174880822852875286888511388067462028030352335796046903923873119768742497699568666711588165788097909094284765814983241212836011302952127138630672285122246317590532898307754153367235216802043004556238184898581583626848924103339028620158319136927429036578291971402907332531607045036272578054628849095389006889762286344133933517993430098993058207682261106893765724172994830672614946547413529214501214065250434755223942714684037485184845055680236083834181117785218001819911285699042966602462024205527356692716672087637371040517625414016188582646153939969708908693189947338675839572671395187412922312857473127097229583868276966136470514993144019254417918494054606726818166392010780109563491989561074243438605058614971653418966278999655362410736332962073493028266233689341842230675630673125538593153027617740347269538907206918917815895577420123819715873341908892093259636109601001635755882374224917097214471426530227460578542819412447658686418771133256027724596790153730932044645660171720599119711758770871868405645465367714509641968175727344701681669601111765971955047421416912462046487831264390243450143948269873549556525508264027607328886210732059175056847050766414056399561838856984049403072656229784582523306389572663156109331774488395607635713912347622313372108505121934301195700769425754365956629691143247387527237208852769662773770890387895184206356904508338190055393848665765372595025182938736881431897577418796958081911929772845614757939406356433456225662733741748876705414309295121981338354538095351171099388025754442614734017774115653684411664692569697506406521838400991801540619264970597473250149715975325357557418877218308817846046129718231704650969639432462425265835637309819922261548001828884264468155540220573831369305374964096221254214110620232858147417136550272052712044726719531987997773246623831722599869987326881029639884118835401820100551374449083244487488733639323247005200685610179880975597370251494607254570840095586100944750530807011900999637032180784919258605361011516233658488656160481927986791916377484833261288578127322256912461372902251716786552853171388936692734675751275630388880224109220762063200432631559521514678221423304895348681256992630229290752804021470391863848391283754309300557711469412944048805489402419842197875353573405087574678123078070797833699554602095631841538093657768540537976948931320095501328664548007819604332088122007148131763523088896937026531692742892619341621947342574507200012157127894418052474931717096033174488886011607998945785680936970222944301262750082362294806603491322435651827612356211501915319268074028291925708226509971788545161677051045289778743776108652099130154348225354045462692865402740304033196645451832817025739483603969777445444520478665564997032314445434815074253203036306159472623993785351518145021635835169192343134598074567866753896347888236044384137844550854990161462348133753325758933115268841762553636981320467402921525156323080170726893645900690834696186033699762587722214527357607027924565835326426595262035580956633413043880463508887315650479041450288424731395352529432530831980299759311460585901097932971199351953859123230721982484647255112577059161199311845804474894041583722920993179327637890306329885165332911704961576421068796385742060507235891029700086107935558959910165125854591829681876667865909407794698879014886141285967948692338428763033828511527876594266151722613049255375673581440084849741381951245390919986068554601739441928354785005817620808180744394947821915721206716476536547974918839494474172519650413263195218953167895800359406439785041966569419013971069224922635342840131704357847833911186375730773452364427616871142247685110117481558208076190359951268789026769121614658027282308307022716649984790067956788301579050707559018855610395456198728517472457087431843884921832945037965363228653277274216981333903807583158373708785938291691008335740797289919850257997386627611315619229697042604116294951810949256422300034751367511060594059923507299498054033186716739998942653022224471066227942522832944055500266305203733351573541149761296804487598888296425107370393456387287010624622744226884924859992144741918891876398327438234547173318403432826348431487255490062165325717422223425986167490725597545523482782104892914342190552750609226824700931194492317172524622471397815156802571131186105236799915432397355726310314003850982699750949037259148508676368451125309364597034042829582686925898611782996659549048468843562884914610855909855113846508976503391939019685471464452379616737024309271344808024100908344916967732942324762649121322174566703512425193411828240270144397887739994505370970779435173075951304147869026656450943205962376586818113921202939409983077682210601134946625823160730093618010158912140154039823241704042240063968924946897534676758631491567880908215157550748092678341953589409743045177268517620236741020833503776578525626660683525350860819060165962999705738593817406552652210277419276221547066144491990205954082098538038002432667877093660888639609961391863108653457515563059881303841904882674753742755806138655892692910879700531994787619443459688959263478650540095963141026034998742796959951203026882590037018199298605355619393122462293793606041100679858762925587586488766338957859279308770769105609185490977250205524362699727307787286129640585245928730699020363453485182854342265740896322730546899106370720856139838289379745171606072064684389570764270906070068316328017601371994836682550895218839300831091535842377762949215092248413760709742461127857245612206519742285938406647973494310142790605058607076394264403765715247591741147521488836131126250412727077931719769800351462816481934853190274260349326716539182311224022190232113616863469280309740824708729571346275596323659633280539824206952982665461805176217943714704504983453101505829668012258111845490764655145037953834429333973508351929952575194266045634853581703680091935403553242950102676334823702482185078158815640934462708884312844322577325358976741650810037312848244246182501128273831243737539757489065554116339141497938977593118747603207488524081800596805141107805876196365838057102315143024217063620443132405576571940180295486129422623820566733611304694385075684461120005897933319879741773020220340600007974709068316668819267368817049584435368005759640160847483234036134592819884160297762339897369151788206360999869434980675371523617034783852409415302832817033421605313860047193118170011704981110209046227075802543959246940540394751371814903173397698218516339445048542114851008088570336071364634299799754087992276864366008881279510230983325571606220981994552013953211957142175844562931801588822279295865626999868867498934854446833904018285767531987213005809381252278883597182279010283097942626868098956742092187712073144763851128423407249954235319826104517265289380649878576336733114419033913598311105149558294303486614753879185382435376786356949259987421767806103251899260635339419611543414803349023747332309747359872209664705478541086995399444819428092213720934355926177180514502404395272603394538369919441021966409104121592194779086543218149718130308899419120386025692984830785785449194482032024542426824032894367641697880764070786955376400735421809159265165021296098433110229499309187969880943805524209660637085772207016064477323252641981944897854011734847128587615676395680096064397722074821769038560269282450541249772248682493499563704609655178141308151834621128417644170189911677576937553018653575652062166154162360491623629605578224239189994471216474018307273095022880149126136410658723940600168355726862195846614679668958411501318915147482603348492254968410575183574645257266241260228055250028501381380737358900797753205398828725621932358590643223219089869537654510319157314447589528672278386156761320408576200484968242131609311083872100100364292420642588347978726019090337464188197827910949539201485742250906389083786737277791851200609529809598178232186333215693142747934636738294475711088449355829473127338151456566428033263728272100716844356192087806754443164330202306391186590885617553246008260826063337474475975478217856421063309113666281714566079951908393354381729089735080122867824132646063964573066137621904298965765702452047592749856387565776920969391505820958912390448565797325813208785530793998954397659766187687227897881910279599175474425873069891440926684654697301510373037878378337847963099584051401975473620250029212306956035153996067809654555720070730152764325143109943044357886006165804451216885483974334834037352135197393640165883798931255771235271321128760724412171436828591233475814697387110428876338607654242314880737216064031299027989476323034960780133355885721358186162518924851029988101822547465588242798925852737115150784115389489762115410012092804985290322705492275562119303229957722615886520064550805755096550387306449937629824648454993224010364370525626780621440451364875569059869521492738852689087403252165117180647542155044893534460726545160008092087322599514221174919858189325086516512651808181925178827500588994121337476252548900803832286735222069124559577687772405081673555170900828061187095101579463284186826326824278393899880251089126387066708630217626086317126432970629306791131289018311412958431914926708249564230659534192808270590727964550307921899145823373639226017897543867002508385697902759828867404005203258653663196127900271785144757539802250678039614291938109202082398219840252757972213639430134831944329334798534520741444198938777244438447420740695289366418449829135512783163187477585276939214309685733824225598496265362450718880503895198210698428518133099705721214733067702629894396462959340138604937853150959852915548835493730707761057983971591775505434671610128983729904104815135573160457401769206130818621501050646040812539675612484197633611071572684435753637429913292688283718549234313303692946788224901791819150868962286967369936571752711920820877839766925993150069742073515333877985473030943264624736380796201288573425376453694620912879217690659540109595155429131422490144578582393037385074153504051412473631171657467761081785130049397767273607130563208433382189192843651449976545344743992769657564007638794169797543818782402726818107657966490906556903095793818116879900104468319826569999513248897900547447534316756905477348897005700848951214659441851154968882065102378873407848583743100058586580788938664466284485185842693897825606055202213278155526399799645242126753997209111408518045900052791622964930316810715745714517976342327160435039311905005948153906474529576751198650775736508567584066536828792301546190876854562296376116470773371998165000282075780610214452694788581512132412318178972563659953454690837742406173439370107349793254575602640851339357103165627545801493152869465650754051302229338379703471990412808483983647143814167161176555119597342843874370072255528038090021702392985018880543484726116874379666628440572127956894310171048059156741273845123542721701917589991990578233943353489802546266979306601679113133948333823018598229157920829668227803463497289121207588155179964711240687949974013033585679342333822793677480683666386962195887597972440034460189235528512096633324269231181175305434398390228092205479209977227741374457820913830040694958327928947431763609272983018441862653752511505907237238069200314751042023098909000378067674159777566162908892347881581987626278635892511413989598269870928984125832751615106091518833881751730595620428400038078983844670010632260229607394804028192557186287354746843811333859934592010812993783355198422626849673729792536903681735792934506071408912977931452146168718134839392816558255816881077941868232837732490097600500228402508770638589355196400857447207633890477978182816331344968945578521098090149607529547519305616615500319606169514319857437133114386701500571342378631324095044304369762132384603535953585207618926912410570580522331819639037641126033232314875305075251759715538168169994832353539436531184593324834431560530140290108629767994545157178199787439519982448227442522770623298809153026437861095691112522012455026550368256668466893803220855841219181608812773055235324268339231141352387462926946740813969672802501071640183236979701953336551203301346867660863444455014100405130315488541201085376850600830098030869020821767848369077313491905029438943601153648780888766482279098574155387052664813990868430253193977455190913943519684403688629414240838899917257362163351781184950435280649656749680260813033386894210389449868050186787368170052365081632918935935510735635204908743674156926783725588359506794601591422390042736394799675576275467433629671704488386308386857636706517497296591636360327439112404860256625563222902457632314505347927775297862319186514823256564163443685364586857599105316089285908796950864545455497952614430352783338950903589857716135902239749055339939225886153460793673346718140965139501920937681747264212460455160259292238000743730304095987356001645672266539085365842402341753736486161804775850210369719625146612598383031999669238602359433065726048069646702167346200643948145930799654064887383501430187000419032928360032800238324389636894561596800801418851288508145266762420128469929319089868365664668880598364754756077435809609605916165276558361490503638396284710706025933378643589120315075096961171460634169363776033422750020093776366349342199915533697783994850731658868384894862661433496522382721693070482913635622604377635280950356395238860808297106802872360506841091634097096415517088045104235580616495060389024463208206159744376755705902038654256817039433687755246912762050331943183808149273997221686646691015028515511693553166310132361202845079642572613517067892654330609470744994796979482359546723591267012225830943659920355430434980256211864796217875090081966805934957795070447645509202423691740498443542376039222224647618025433948513804584685227993336960160882042978380232012714093173657585855256004603696527764098067530765320509497246165003256923443040569481992588112382319031660659258624631379313264856814784279515468805410912527872452043799116643807293632566836621332583808466451374589549968000399954799475239565127219768501986843942190205083487125578561337051217500773057554603298742785347424544998799282468697144922180034766903899862000636367832217554631717142155560913431195039712782400758207760806715122494716940504708655185190725299656694302521426558523073169986999687162849298286751908839440288849850866576840814004911315850867144599912540233545212997728169692020517959812324126755298248797707775543691804826299022121803234355194524906617651139038002478554667789439755258607663214186643448999935960677420792992838190362656417982596216074036430015806876540118165299380407541562297138789124588367314928919150040177445421655818559266495902200662575553825694814819159238778171217434272779354761030309543924173870064347586258648613368687650162218169066562958380260890460414036172120195610145582687940448155964222349473278828172398531780553859233394939905599601667588420752907694205962573554493043899165777152127597211030484653532977778709443842555853471912314250158526310807813447129647029391076744638346639543310491791442686527959641122875398657845533652783446348535671964342329158394890673071183649392551905085727519033736717888394234434387263921197952122178950524607291635910266537496559689104450806037876935956305937304767931032314874753283114708234776756398845919028509360725927123749033321954578671959421537352024794745672044847074376243941238342124053839244590015589494624148914151598174857331024447581516289517265381103733229997742203858266434729157296070268702731984509218571004148863646438253735740284480634401253089688966404206342548855709759279325547335673424841863107090757755596360636238987412439723234814122813664809277966320589699465787446926020488507905104175793359416347233704720128570713084047414731410192334562895719910904751682268161603384435594495791560370579302615134133634181657630736165127413165019397343586369244596294444073686844580182773625172088452579476899285236355313998695511534910041050791271487452837063643526708625819079724743217250344625657092578067486923935723700478937580044065563873849946494942392305247703129904074840339877734875956140261147754391729094414442124094259136381264104525050218047442000408915780386756332386550808633877477778606991637876607434123905619666744335924553477768680275018594809911205555565821441682093424910634739136386732545063907175939750985052352686363048385106154806513447956450287951738721643163132321042747870635421921522287530132439760357364299322541789622648619483209009490223155769118690249221765820228856292690482293002799567650140593450496714982059817448129639212155249008435077430099353078649001034459819261671768068272098186890974494744580762040757315238086789045861812014916879452399101059946399853506256025044799525975122428565350243971074669739752051732643544300240861263986396358102441346120181446384000094835576755571087636838623859135639287549143347865059480819992270445258665592377612734829888968838026445843805624697182695157355489595701884524185455641077368551876378609371712990225627953984434262046609010377027376154468138867172040712229881499489115708770062876223717975709184948931690421271124171195308382860312734933249448313291495113634981601274381565342466542880710625666676984468919577749819816276147045560848795350667344033433817120127060737949402835587343363250405682263201548623269473681306826664130492120677555186816496685078402521574977680456098232434220685727394070176735435707205769408416735391099945009454804579464260680216177249075308987181013202880000680086570623002589518372027090084156723786053012192601645579050836480805080605288988745180882260364764427884968329425116980555616017400749969459523697561864115745815368390585776423135237723322108711680473728725507574532434203276962869160882753077859720010672864010429441532138018851033836264974868828986535362343274003675966498813825301392743717966470678916274251376173768016170837735490907425623479251774366963260538588163506334243732904275290011855863287302259079557487838241184209570603026443909037852709827649066311649656420109759957816979202358189475839117209733069878588183650165012609359609516140833487507631681178939459316247896870969328523884498038362113971475251686605409207038314665967106462704318750001738778971420932600082639200287711689434519265605918033220078078029601536203745480902060970776596674082255964753638981387170817709920449131397499622602602746451806508356290500308579815432272333089373044286059597166989896795585893314347439873075875635175150433631985918545330173365143710021098873451756856358401805763630907850028727094910557422891449883136793263026539435428549215949479100027620493535795048308528725638592786108933181671116661211588274196488707053012846024440100706386478033203126453445986633058467241338554969915241556810471468470394003770863258681555003058991886777367465364533266757611251894071531087235635939194968651298762761392172943119075495447934379193330365264183355514486823424145553113080123052414423696491152937850264708418556095662186060890342727217595625930788170647981416380220888884591038082014049575327581215689240881089798311859613505753734293839286343398952829262197542556242061531411403001427402462030228171141569858415230404538994700430868873432707921382826965575097704673134303464759930453308543536655362526691188791716562918151530674341936566479194284871215361649755873455266685416253853218196980248674734381438048994373897731633134290683512926306186158967107827005654404010984126948591629786106778819025222591634689006372465408034455300261780222300568065285995849390949408630887404513727003635301380987165934115705341706053587845097891088478001920360547630152077707783807819542304461208544725338528903984702493218589138026739530871765110060365932527594272811390010177724152079901654400387159693878834351725728208522778592004888577178448909154441492087126660028920507738515522353559576100051582599552722564431631331002732926984625331274840848639030904718579633018165416514769275744833414398842684475548750198966444797141193904278147455429997162503216858666062920768784986033339261619030259790073837395321627879021702147618068546039326314791434201357163198576076965083597742696322575708090233336492007543300189018943565866500002611184861396651409548384967915780711661741967471049534009371163714617865386624493881195645589924477436742138379259604532552088340939033732118853196113680867515692696493464578082256964459736827415631820961276056048183811616349015350533639588808918040756672111558992208179153833858820098533490688728009239528262916696502966244771639595384818245456319629761574014745723715120829979350436747731115832734275271753388231498878914141876620899921718026074620812563397403336180990900210863753258158892722134737162766035856034536439984827534144137457368254028040015742443807054107201887218037451981395056379608324273876212179415752976065992370823338828372873471781953730735188095111841553353210704851725950592973033125284378186343545865691709276786934905393258502693996531319867243316712664665546965235514543613489807570410086856211445581444310795616816235613852387752456599351769795138417867536147393066273577595590191449200030355530191851547209210617431918652884628294698858138588775779964822370813326309974846097748832194022133032184090667566677685669537418443928171227026550270526946278605756494216653489569370223099419497891522644787882008871584578999826497953968695697526944368728101631835952338703075535396782588331649391363041138960841948935803004090650160973139549517483555447892907671345549096830434837019272799531566832347177298450931849137739474126676454961974455330652046539288049660003865184763952213903866662637325239106470175404023713747843348538730365502575730993982862628936278376025271181726006915979159666798487229806415256219058466753434985681054782554704386323851214148238840582804946175214441710008944443171174223150732469305425772481143610968689366769685533601638935293131656636402154768816978563967724018607749414431586141189952679642802128670629167114709263920159544407642429024429940183256806799621590725605717506005829290924031671587704436914510023401951477479493877569954289419365395694864580630298898498719823996107710552051983244046046702627521638369528138031453894925653340216427974832708142429873835084936148000844110252607782460299173881579242888956021571247329384944259254205468489288982472863371643498527842268021817127122061237274308216700781662568359819844923876615905938845778167261404123291363991639812865050630418390810829070810075369070632941210788625946487527589506235619335946713448101859759953255735710382376701487343491791689015054215065171487917661476173338695641581855583907888849206840473826371564659087942631660204502804229374500143165389741016695609866900421186250472692576022330584022396393433857712592560460989465430859959173400163710811570973606681273859854477461174626471725989709158854823294362476486334436100477945581282501720725917753241706312945486614876866942815213417472804574899632663072552424787537667293819640265392710983952617187318142057704560476949873026810470329782474127727850801386857818504083273292757668137988293037543250364210293683633356849997004649833575465678803879344602515168961033024940935464497685823302513723055230084728874059188120599927027034352860864978931128142184552803075953356255780614411612245515248107170239107622081337098644376690950186399338771218041658703735134738665035028690965300000664562404810354160454624568936646446034165815588433670648951880370910502476242219090333691899211866452868591370304525163116081873873180214254847970421971464717976246814257591360329917986500938774278261640711422061139352390282931751415969210889275763415541348829105706160067543223954938672818775061898484783457471777706149809911745040129435429308972699484338738634548558580481519108288975617549282540366681887448049362985619950674420589332646720851492334806485745816171821964783251195258152489003567309051144311329625499445448296429527173873435349860350862657836102394473961324265285444566951367474104418363574727735259846380544487649140266810434907144546711614322003827955622869137831414502650097435887087916162408480964336304857018613911039190043134619686913998549570219127748816891756970508471485729292102419936890977705682776954210101857041664487536260516636119684894310079019543273835750345972689870576944184725358672435075730051134718728874737202065042656043647199201086407481732054020194244058152003493408565132525941217022784073000958292347524209432828078646649773902493616907252746996954602740937166772549222861702355692406581872690438418452904069334547427903669725706851882648300748478261852267123019011225314063633956344378894819218971550195477842084375248346530094660390445523240339676692584208315639711607910531257957895970781916606039672970073721545250261596887747999544142791218800588708118310918628324769220128092775139622274351732948677846158508040543981520212124176147055052839321540357730913418278398552496641390171375124151019129287955880644922369570047262278954147820157817640559544316421171654565070669110526031464920393168808031493660418316189992555613083821800155407433422875645410497924843718348198998992896069494555204602897351387545266264429074349994352369399309780353106941530945655150993313909192581262345877046519010169920283573998609066768625833123775793006052961405315521754953522194732290649714599075775610761742476259838614258738309572479343306257540212028583704479745853116710181882274991586218978295861269721158405552783609379537969656814664509473502710089467360110140131232479856984207410903471335578681019039700486045976744980875768766630984712472262374072101709392585785530227697688153248559084002955477871303533711692167544464456660307238499291669820597660054944233101943974297528326728842195080315550897129210409028634650795612686324415851588302483759754248617631446824141153991983801744389713393557280553792261607809970906571742287215033213212399417357837916483904890203802138966007526875389659095792423797151982929177226972554595118972130770932801439514488921237351725663094589717704678069617777309144436698092597808408374578550502996268764326268340054705922307445516802468753222200342592508317575598267190092315918874051198189337503016715033285910270889732058329192616570742955423687167945095254175915277764681417343045933530780153939402061679858166678739434603812666385197801613492281252176771607924013881298281414232410984748302899305585300488263589161135325170794509712428083751456571509946434154981949828758839085173447627858101593932629273380323655377624841544217835766877401933716963393074980289217475857474035710404562007731042404281245762878446544768128850542661895489736673768544987474942519426950552710913347155923512352078742370049974520981524975108924489311247313618784554327123155281586420084163726716366932645955732857119860179023237871366134852871138576988840009940164190159998160605979080238282235471291578815791380989550667847059014525769080489514946645447056452855087747266877982650680190631836278688839698521634348204811330213317003169587884367518749539129565877353561542797643441327948587015015492806038692996466812964398588511351098170588030891463550347925374379693854489320805380457263272147728534617914601808519388799582544067121176492943770212682553947351725575753848687055445785459502577003252952519233955414417396819840030555924075240198852305649866011864457674485029676790730409342704100965361957222241937365038559839479573368692795163856213922341626692734941538109772361744573037946392889983622125853374898160882229614884125401399182186626125955706201135264735082676062696367712986119587113281629404372862046378255874403294043564973168117091962100152238183798368877503769371838764843124355878001681926892575429988276209887633110345206738142071745357547270297958505265863746287813596841852871848184797657440585059405205965760356057543370461277881699454014280137556040175516891789837908658561304264958170863773710575644343859126078580202741618615485531539056226586006514019751585861093713139604294198993511295514364755221233082430775980624885955045820802323666636402912246723236573363149739136966420989097888970360342496302283145755856420892598818302221210134278835091529911295775622006100999848450900488510302744737898057529116590344019291972364575129152264014926999820273752701256081333427717337956554943854193547715708745437668059709251638972526321150780014123906327115032621277733916702323662114252098847963977726252848516497471544519810982639741718678683699188646860122160418312484993359106866653510329147079498379936648458655177996628844237970432724891423859592186272900964146083488833171825956009640371092544935230408061468675253666522395416029402287389559295973483066110147900824339329838255629736141416408701877188536999344160318689887020328839942137200791827076631771298708834323779477880028797620989748282406659231074324901119490649680542995537062948273356150389235059598531545551968201786835611652051527312023357313249367597665229097497038451202474073310002821846534224071347510239284335003261732332750864856092019353791617254150944046771104756013705009012051222314098229565741070424949666988768246440692652443407737892277461501270027634917073492950501635567242398232129503876599632258925725913886318076277424580382494722093757837472969471622666431648329689964087850498276921921593969927764143516001057245732714257386643353379643878713288885647196358601097403568928488909719180540986185745024208506539611133685291629824540227791161387508511249813279129160210699925117808198996304479238402081276610978606399703224122588379754444044265470236627023682205783580374281913219734568091716401828941393965282231119463542556466523649307001638182818415385189143616788761543698843469681086616599466320544555926519311507865787935886376365250804990575311525697483800599807688805258147712421228735942757330251463354145375598423280009803764059592430843724511705283994408027386747748943060792659247051254532877048804617222111935060808864088715012640665968687069123586931521284360528154205695342303134794204628850710341216927488662268826475979470148545048577666578637305961758487030404202991127940498085391239083850102332777328960302554059487969376267132267898587505361275357372063423655512684890192289354203131246973692544691766002573109252640479081264023487213559782633503730924086896508228359528652954616101202138799479959699756157604621092604347713576450534009589227676048770079163701794903771229317906815072891852385805545354914322298002021328010679157442936101275239020669137110220673224965326559839980616621485506208658246711985089487960948103697125697253621946743543081084497052143675473029352615266480374211493505301965463839510802682466386006303610100112412666117709157544014164229272685862723243695731900440137203263503020500285284469147260078145417889260147756133342317264088163690663877823595244047877518490223933089725605250796762695075763945786488481008070006030706286787645738552772424693822367733775410662476788612400425990431847617426838278958165754827191378329947041143577134583793035997067083523663857353953443801524452439756261385494996854449268364034276839525827311557334331871635272332172873053723163371545962659056213067857412905718003642167129502325190716660360571633994493023735853650253872104943145876823672015425230656734110176641559876186951252535239161113276301077485477813129419583476138009672406128944457638256093784820775128080364910511545600920170687730331513227815883445796375420464910841649307274269949072356516946445348233336584715791324100955256741039105936237420719597377900189666476338726386951705837893995944391641464220065649673493711453693013389490046662246621808124349945988499420535641322856769776419218668982325982937915614587005439220329487148803738205928720792924818416508240396515775757114200399125684636133127082241687393546256338227376484012689660781607903248689534884107132566240703888145773001556662637334021994297025474881254873898584093459800482861307590646925235264334781741372561452271397912092740152374635595056978366180250654798583700308164930044205137246052788970236293080849519703170126876044656847972737052179414794174263772887757793763141047396873346819198734097219268599800585113144795658375336895044157180344364535221934138283092482482750855860284166235245730342094991921676509454605435665718384471911651147016313536794752559576519985042154262257454370608059838184735685364321337050603047044903306928412136448933263578522398014235592475225870797928329216999412067703622669483201702206644889941446334874435965577532311006388635984221179608401581709796093020395858042719744151590329363772938809755273771683317711863425034308732252436563827108753385300827313088768306540935913516359514255402869334054719501756817370728281191939860798818959446531111943094962048408205987017879542604774549656721134452457907647576450356739123278686012768336930679292748460469080027243983973290107452038065751495143537794767028258835698579893070575313663811561599107735690064523386141387788644901061861531570018249362340986491567603089019786101541575660087252374114887601461475025443128240450701073998800195367258732760211004167634079917939756471753925211004189128094773421300060508476654029047718829068934074294045325055617345649629563476717172152567228597460866495108988929953370896922221128239871220398124480353345202588287357818613185198755252194314703374935619677217659416598797839286565561540972913366369855813321656683492512273628809786185640925216950641774736107387540540852176969793950407201538735287571537993032566988418482914601359721166106819453862593730896005222521623140820529948509808071785802105793661328286087621991212025214620708732245542256223895341576036718461079234553129211113104310455399122539492921059342657284864175700208160839373302671623039492694418102579379213533207214012331920068394594154120107263675749604759518363680691601859013918159726656068856670691780861977919950576268193183057976714369422168870012900910375800920694518798500798401664110992446061819667125226403224336117249339976042227776783797462043547690031959876374737191666456205956391089967246203954953154062902599484024461668294042855971793775593187469001012501113802159564309652895564199246742034781728080529027664583764190103069614533257997335064678847872775048577102928031644334015908721647076456364979512204226188109891070018939388091167226881560099850675957182723332300923589336556108529121525400810911049952642646334328974175301007930767742418300375258483835848921530937406408730434154876635046952524767967331800049509349666052772985661133106624719992285204638708974894757989562323166605188131050293999491831717741756560684201753246263553402803701276298380607829936106757623134262013301651848273438051286291580463009734897833073948527073432454925748733651354605537070242209027572177396280344432276396546530813020913939974760696499172426268757895093568789312133597721137707060118511375204158413362122347863385822349692330261408527577957981963053097912153796199951645045973656546165544800299293076231658500387616696416778736184341290798060553588839305114678515346840350033327894409761152215958642079482357029447263808877188357562862555925251293977955257901790324471211936020517039751024407484188487076081815373426873357991919734133925766854884522095876125009531107263391715198741824044250884740605549360627665918654659615530537259256916807758887035469577020335134152259571721137333714892863361039915348765815707291945004961873498583141317041284182614650294874112865589389468103844530655600923975309760549941391837636683450474050991725278359002256004218892998044650262631770764137993409910290283875022654634254430247545405095007872514819944956927800779400761113157012276682299220740691335175847362879623419791726224907206138840802678488549961023453385482259576342145232403008342615869914176528671881125200789915084150807630880757925227132110430082277027678523207267632017730013010159325938002713852601912088155646314442256680517657217973244818593152492643068678864246480151760582477197246719346187166185264909812835916412110338880179841736507647602442935992368578347763864517071068391030854437858123378227162636854464334954046531526737658589745404077575320031152220795651571421014079968601828532483412930586195774294960797889514920648950047090303138949935672799138017411242930342157451718793150555626633699600716910547317269154594309279403203627761916884298163281991571014820845094279832820743534529045074293013495816963578448473665115343246193500965671776571523635853322096094341334663550402621869937954012003963356524540613438795839239424534452161455003211213576415056904384591114616993445037490983733088495899359266418904164536167633680269431006435100769743325547158382625662975521816243069967020610349021150588063197255212291831613003372370337253677203654760537858402522954413726815338077670805378641197197767568975836781163926789340503941383393724014461396403875837965361319659955621631102799758379638875140304339670099136746609495817237004907184267263024405182500205369657845170918285666197710253754631066345824176219350483909071542311881002531464814783883382215346288212222767666768244329043529644934129183471043448910478980721413393388587917992072128801040082869265163254637760471753883516828193405037452517943266835605442858619120810732503860270488436926362639199057914573511821832543390870712472100846355959811452427086008478959900945581513551171378666877419957365243227447599925419173596812273073403719656311252927295829352718518915311921683738178592700674531560515494750408200985236235404968483195676464797002408935634258304742755522541999771298797765189775828250740617322846258285400806464737741952427261645251882272501291889842810752690647919029205075726124315480411227331969559420853329915209390212739178229205198465238837710496692534867643064016636281603759505021639960862718270513797931914133849985468430528849982622626063237440341791627707032174945458552390516301997196025852976337515031374275275502311176327264612653536037038931282217422571629346061413010891384428815877278864489138270084875546123684210002621559141546210874690210833471957301603525116699269083630712379633749001504791668272152767877329779652327360744492825539451356533703332589157842626359597546925537499213596293414326903559995049206745456891787687117357259480645629124477959743571523498187406277847859979829084546791346546763325412836318260018576095099792713659632114555602124611585491770913475635691308685374976729637734735819438917918400926692336353632027822256682660052416857365233752151149254663295546468092787926607486712770761361894767510345312763771378538008899971422976356549831108414091631452970676607976489064460136730181574567063104886597397655900906811430097917957511269728086911772240048249532061139905229755608936442461958546331872557997831474842009203622474254612223349812708715590478411206112323147050169750378158808435001746097803193918603332687842968338291004795750886342394940472189708738981495669774140185478247173720691378762693438180107560325771147360833867260315286408887133659459750169334130936277206287378777228106818317050975105126481020987665416622939145879102055009158651860472105394328361198937762063014729722206648287396911698641500150354938772091000754307908623947094798562713256694643878423573737254358355278943264911649796311511604974718331739792598974312367835850752833869087955564404459618891138849666836841005966558860167521506372823037714832515876759848444177573154930114634861585102736032848484467859258038635408519122280796682250960182414569416204368286700483371823275050551666403685647394064219892708875022094464171526929303955505445885048388182269447032612513010552371968046623940066111109661501830600299512573260425369711532564094033874849734154334482185114471590490708812235519823378166308771824377581341020035430004558721611685286837304112920776340173118777459760392398781437774827034880523253720220406526881725599002381819100597506552804140349432023140068444510994450191273676640151421178169455804695756904406787856482003577965068261305163032790366533312635207508609063851852783810051830408455613110757316763285983890597422137343798244805084968923093138899279570098036717017436566018000030950734209758001404861217519615161120447970788897307556043542386073859769908424213875789970817980269983242361151485406217559512303594286909333690339179008564224001095061568827270754755202328164428911332311223252109212786022528652145975913335302614638012291131516412637412746610498425162856310057875180286435872989383375307502787350842336150331668463434409106472320557378617603087585719491444853583365471340303673522809252379802242158662750017194528982721701141738622822707736336878632228929410107888126487674645934122993487955980054216146576593111137960290340164181066879686773385189969329491669151305352881802865573553333178829919833540875992261134302983749003457196937873390779218012960178074598049186806571389058507227362284969612468224022359735265094113068849541158866973997820104288944643016950801331658186804856732659737189098827436164165514397044903113449951803371176000361775386492591678501210138381528415188579681645568703157187120868612563076331669070557230514599845385536541013802859261933963689911853473442753210805425970605114233602099696701486192816374585029938456178542385392655740965287076799310643761508966511499690554177100765884928759138115385344512575992743232639540751816784562664365805370939779452070632051993615697557229196294461979039175335839922030580926087625409108976691298276275806763148122859982202932171162955026105631594682371692529333698708991765892237462959484007159056702324767231348815234587143160581171913875785210656397848187812705003541263102006755181481611176025972396622331099629375723406918334767647888155923422696444253914742608410910021347319467135308665522822943990466213961691465321897427816541757966594557925584265803166455245659184513785927265521676206678349440957812000394953527783508531869102705222073716116969788979991579751458807401748400295397331448782088483233976190314409317159181915370548072561749483422378267797606922099912484193548477572885669426046472968544825020373432898912662055041075215302980615299049188662825103681853579582433511234667406777903182420680512261160258607868982126871811725901538888173209260946272863202764473122386822583810936487049784102801986478463869266069718560107092092118600556156462104771892808707939233278223979363244339339345040960624988037734201212493765920721378755233032395906196042021195818899014884620374061842591645271555068109038146204780802977743624358865695133783503521746474547430002982441223565115536566046281964868160480529387069015002244865983623348667927429894516753136317095404929030584688148662203326699211394794031522618966980555612828336377399384451953231161641694567133778378473863065520006136019084077778793614731623237804593295843669023264077528329546476680481952292380741418492381058610864436570045596627274552118333515720701789395099286924253075271776173393253306709658377543204917910514300413098713356140889658645137948072671804653129084586790333266298975197341409283446248521745003309172012056103722107658252219884348335175257146106874481213871052724567867584148716889313329580097996338426421578155860557068607111627696430882400371437196321117401396771103875154805321834440794092623649206939836404208974959689645138435985378280212735246987845977418642142963863759846588563435989889299853729731173540020483405865963263880953894813001642389773146632522148802533507105954305954813300844220608504656465566352891861642729180138396630391096112038032945800474162102579158670892076479158016225056895186183749157058769094978341980326865526165399683434722048184213529122398108861963647420628889750623251861844875153951052723541509556793044574879068803574245767971842474481668139022287636110953333448059676906597174716603188331657082389627611217647558037741132121335264932611425444799743457113973665349610464680411760067378747307838793006643067219480363472903012068095524839744176131361172491648052574564134334589543335886617311066046034047440678672795270071430020644040476043254471895498164751830749964674204303976691753394885992989766933179896177211653096543755072544543180109933562324805887316981971870014468270888750055945561955540139940507884438502802583635343716327479314496421589295451951173451805749380942390739901117932149202773544315427025915789061687578668383305351171325306528855504749931069925616505786375581080870344171706769723996504095516151333599061275042085886231060273433982238911612207882494074080532429708970285461952964198666639593739999716891370206512582683644814694643142798047676300919791266539389188680500617870672785651354169343198130292001946360787671692578374785998379789671367185212232635386659025519888453376786239308393716218930415428000073099837068276690999047441134523049125167926620404787708327252273208748346379429307874244248368622664764770954953064550761288346084552450266791242632115749786254811184849350666728413243960250650837028575210456408367245823026603827651616178617604401569229853489371530863921374835153318615556318714642081953647086043666908640240240604444637423578223188650334819460067765817451063980961085776857799625755177188774072246764974894637139312316204438241588835975091050346430896908058726038109919191433442112107068933987023898444068679306818674338459464419634870577033014537350623021415257367993709347387573165307549792225191756158199038645998681724872204453769775426521635236915510899636301522372474680890084559288481952487402718296000127152885127877822437441362877595947244123374978145209704025365887685323514836409474822313364427739820650427982184654129194934137386221713227193665131454024922142269959915197455522690529214348338079933851365696559386589902851976903192266055964958709411254991717694375437831962958722188776074794159287066480272430624687635492784398417607059827836224444020923155437621576655954660798375750354341348544072870588553418465240187249259505602149263379018527407818600203812010098899209742389249125849093561785338517123035547973090791490305104052744909975684331445583775531415591876785343981166344186507384340102524653788658356657594650306287617641063325797994169820127140940709567480942260895963476506472020943541461401774175539053444561375447759258635019969324361736236540167537091215052681815447493439731228896486453092781575760246385195337517325920243918028971199817814457695429556533356094341934760352051755450958495714175360453874613632801018826005071632697072692074648226233895638592840154319689276224809836361867292341057748569547414106035696505032134500198782419184567137978355149595367675300180513088462652212873088130176162402396392932172806111868629283311533173799963730951830995106738436958582522824351419505633174221054391438918115450607420232092955419029633551188692088884051160036238340548950193212723850650030102381176780228669403886875341272275824453965552827030472180206266388169501761092670382753358353218441203901036822844187273233575673040019964080288995344211220166509109666556493779665861203100010017616128711072075143657098212586922924841867548022051826581039585600931552055558557671949565288993871518402663865492966477260953149464739673412737938638327308331501268995593335906232924129036829401707129036477233499970723986541774793798810226050517682334632106388331309649707964251193846871954252160005489017155530766243111553105734548446100206719400256827984689489129443123511621950425170373543308018753052269319482850017947052739104938106608185464150347347914657426935322262773531528579308910782584035864523493939468161401684573450408054933685798347301255374904304764325931309793070724383131436555601418890280630921410726277820871028991792033185031831633937362087595605414393671040444202708131524413410370745181205802864119257707285008333743498156947927947794595478893134455530612329268911807686261576016861918926283094060863420355031803192438478992858540456037227334895713473219490303111864600897635199609879951477599782064009113707237743753562985501010251623798618486057062265634930539464023677364934204847733637995360107249930671860214039750119823842733627400404311616200239912017291049614284260110404662003582483502922284784880994809146998867065254846623346869853024364678892749955473096550553120581029405451539363420543604162712584589504444727153340588603510513927995927970851672509061840441128346351782160929700283060907233502744124269137678648426478286119898311148147456878058534153212285815756810150296316228877440768892212049124997334562319656827406659348769532772052321368749765006453048310060175226389926814954338649636152173036543246768400062308561570929094734955063584919350198042876956288038225477901175612918430617571102519695652174603675375736301680529696668105959475755603416555921388460066546611991081270717887813013480669947269615220738854070546151492690385170294637434131595895249110941357516455326398293193799512560399570794228937895475155129756566903989825656480140729848267443375618663982237479525024752393683149947576640913087264724568045270178863924971939543577308251359568017956991163393066066084839311230517837913940099515257557294525413271902496215021498526819618454449270792302639053373563893719353172602186231871663741152304876740017720924604981701524261827729360708936561400115558393028147024324752383224273768958601912898452329611040519622723240514643010978990313123000852470266485248602286064411812848612214956904461024353350255386859942079255210459085300554240898543888968760272989658860339376653348093583754619753149162693628723648053158256341271479900372927316338388196038607359730676644465325857699203070777737224204443871665589554340196617317438307421561632136145066697086234147049903706450963806885398921461947254112256300393034891119955490570323327276715112254530995844015970097556952019726793495742525112023678842273499256469013121925854908033683755212631776964342854749273549984782543322123501904162887674164819817824130233952657109645968190931556953012056436077756870839619583399525691086219620172332877533741134474821822770558431181262301364595690110072712852867982715824764229163995877534577700941516653907429947433760589059869250342874191592609612853222825803703146245349749616817585406916634728919261546928068480393045079633591923685997413592354943367526535631929419063192500031265548299786332519896024342994176307059400152089449187961903373589737250226624547539339847402135050343371227348937464709965556267565684248560367279028955679574372706449444522595663643692730320429423351508411940990462623302167409876370901939794783492923602266505404537168138844223555347633161133670727828681958307041709721513462981537145453583674413001018341785777656947894020472569441796308110119844280284203724105709383518774713062180672127722677238128629693623729771224967581398568004734629513697591537475575866855692540027355823516177150426387686865537426025421541822541323733726740749627629863690205420596588645152618141962441568500857474281925168825895211365601324118721195909357975353730038219959428046860931794909717048429042255059813709745610265746510782408981582877174355083069216327286164936087520292397111786263983584607309095675852952234043037887300215642051892229812838600785081962752315143833393874781110420095846818646849592604372288421713256860154030157391191017829547873026964924584619110073763889373870323835882144303011899236951803129557353396509498199859130679186108382591290370312685485283335626290078730818625880350209801813199538365784060624509904947981421903497349092218138057238745673678559433594982058383105279553725936719341880215973586305172500538418586822164132668666901184796601638531038621045073737661355828708655703020292691374762447639405986860048392183360288454189789162125365904264580796037646807448451011631971690751695000104180627474727691840270486564302373138285759859720517309611211150978099406519163575464520029317664453801657986399579494804281037245494402285068192958479842259704712519265562521451692039763849093907189777702156897416749909083328154042787088203813230141699322185834572203382984149082732562182022429900322865615390465042488246716999316168763970551235179875606846827853604325438961665636443716049752028330087898594452398881594487091610642265865543423731136627684099104829669305004980850121762170663628579940745070327562973595279329740958906328092305339949081253898887744418873937091752534603023513747448303974050959242773972248522614466104160581398415740731622031863492047797988587426203725377224201010478322399113872540205186532268672453192273580042666585290531540127777246199342688292793321040161356561076987917400135247321289091405958102541950415510130655976450140870570209500524454298507955122748619104740956587824062785166503199866350347791831217532812909325182815200927982682879295862977154386711384085299562123515883577896661422037166760423321760247538225786336648663465732783134388028350510030701498643285883008973827927021658814368726283490403602044501382275273847665322071655722080296817963871759625541483227033573790933445382953019896821525240381246416871962616511080339350182757707931454797326465632700670142976190754480636664747309840525079378850819505598945522351060800096776697728741950449749946411759309843243366426058974351535126831602200102090184533680700844330150442043971257758107791656660789497718324905699009519071845927474605544605633667946033405392481059935009938659489017338694260033772271055930275338803453027024107095951554074738083767513549796153793888426160097403698858859452233333907638021571640591882042633304981568270567714255800253245447226086993629089731918535869838334475759798449801763038287355595733992799050159802283766085668894968793915977944463458838873604389577888929072867863091590413487167830255545849799270912998735914696010339044338474393884564478001846529738768343568396954243586472007629557316013388477162952221984208495501323705744403484122882408231138122663800445966837704198294505202420439235058927119185933731394531996195478088404012622109274800448159944541741891197090767220193777517285029701911893019998073081666873031277231669882539815494396879381540710194887853486660805323432003389958376638605124794161930649932709276925608037332175962347194195329812203406524074155364869091682137221210916428314799055977504470282845681984859072943862403557879352153243516967065490518499584207906137342304049637469096692232085264919953254754546692243694200539231702269564741283594840563995255594502046396546333350704680760640903787131833657685755502732969133747793395777382099597278992718437577332879485187432176500523920212193268988272264814489303405133337963472949788910494939184714044145808870414323166272162223514764555619144651004021334610393085788176210223156123142359455506880149817161152496277032135677708822850765991129287865034853530132257937283040959628506578823400025117597851346035067148540116384469231580542934174266751619324373201352358665292885950066903023697283243636247848211069507961917259435665319369363623611394144135778240872909688396594549017825315263831653513280016630623998333377337097731145670366184818738868506528112545904758349769923099089348459365047137528884654416478297139101986471256127522241736442937889974514660621235288402222319626946663090248806420038770039279661839952229210188699921692858580537923428700968039882477548969324763774227269286287295221900882788375193884507126089318516009562657096297964495511019323584060327031049979174650356863776719322168599702768026629881553866843735487943578536631086257850209985796567544828386484870912682612908050443952311055384511110918083455370093767249389387238913548751224655472146101511733766899891491023077983216992464540335110853142755784421517636360803143520576999115855383262224161888768064567244585429666008122815602074793382633598984799668378736396866050447896986766829881695116429748528383241299814380469433685917616759994440582439779705335267027285752740897785371498141554949361551117071816242534908308230771198589894365056570960887609309927549795234576109396366542257924330309961895793045658433502950333197612341644466993954603417265944441708215236518216585955229851695217204308669754361119187429726860788581837544306583611192007061982862830219128115282321935134824660793573927020895534116590712055427847474827169752309621884660098099057612874705573351353268908273080439734672724144395595037487111525472267942128780656503996684275627190969121436926003580126107643086965250665180951954104243660082723473466745716983663488407255140538450276952168924081404723394909251916163707548369228638233001039410348320075117379426919057712127128172539490020638099270514834749787570798504539693015745020987602967849930006080787051562504922009534847082267088902882444722300352479167127028876945054531316969259946401264950450081977587464680058945252019709826425232375910816586835506218468490106072913835360082813963096318352045842682253062275699821554874232719128167853414956926486130577580243046774831984274529259206978882653424230006616269643601493057401965857101227812537774965899462281395060680571213065653255480816873033678634272573583959408261210125619698723667226015453561090554733117422131992652507227083935472408084376574589361209778084746782169654511644018503249362927979562513849716310046581532131834829067075184178774142863226871711809371152806076109849743175533550300953011559903476603480696524270190841758493806681528149103474006258025744328697646060036979749981300093131428223866655171300394238162994594865146019033938388215112646516346004311887200176125145352480922028714377083231217791096240308993939163868084474925007393153013525124407010471293206273580546183212477994830859669558941407977630539005671416610814804102435898493490158638816670779763778079683694899739993464488860236216615719445238824804671832142587955240585491933474008295207688785674428801350442716652132371708872413753715454156870470092433442867442930708999716212947624154995260764745798833972374189098683958958822828903474549934140142210590103634891674888691117450664898705482136874732931876279724220917778048528912240416980186829856710773316019517902413433386499193403014681200645017570721896475075388820734891980768038575729080567090034491674772938770699636674277694996592503606064370546725978751735820656434151545389769862605472014356943158685141544364760644468273932780622993466539540266875641877495511922098685528837675745768226099456017690610273442971747574606141250893642662524089420505451909151663033761582090297614296581063440618867259054168921439513620595721432115133111588195025578194139232061561097500977530864080433713121134483713009538929753194537298136261767900467538974249874202669852704909637689327653965798346986568410276305537860716699986315613309577471970501499623674508392394545896248652958676304264007274015346893488611417328586464527060350666635612360206980077384840314312940217774837095774126179864327598315535337918494239048242411881412892678936436955591624240124958787842390879402107893616879986713955322202002941850425146181721278282896100043014787659803022228376930339895692371529356757880347790762264439734278642253443444564187480214457421235362272280061368623240207611133816799639382824920718328407459027137839943990371770113918490087149911951252080555930672572005899280847282683319213414265530099005502912842120867264530551615429430107604279202377199483936016462325445035636415456397690046462714963974518012648463163797657972939418068980495612882142440110653379739312841952418750987715402915839907206985675074796047105176585647927359996344207359753129475627943504263367683261726906530816920053646138618432503490764411796319892325221597908261574967516101026951416374349673552385489952706695313611120373014545125170159681398475123608953123756710932205395507922246551241884934494193140200738213150919067267446103778854876959779389789375572772610404846040387977050128860683355201261814616117016990915449840082230284501953397781949953877759684334356847988002508458382983637785721141706606269937669313195879579104256173627360992330113627491541351874767723531360742015033380477015425791929765020855088698251628672642635619997163599018431047525983577453626979153363769675233394713062528044752105343113972742695442684120454586251312139211139309872750622432335811531307255790688858545273327921123442277111082240551081169703494379463008415768487458161781229496808059872430708219832106545753448335508157295241188503551850545353107371445217200790113331136961503665868533621840552973362699859396931642075722392799065935724294641345536462902069147541657682143534188527193044318865200786830027311287580583376552863087359168888916422270001413119884078793769870193802347606019427971571980489157700219954020371422643256290632816992482839409311567199222437778131839565845192877238066180538673476343504592717385846580663057963132990351696983241728714585775705232816510395025626392612963640355021988997699929275557036837861846751722986699886131366282245630164163337035003957234882970616645246860097731207414094839007397814826106864139988913917891629728976688660723571439192917185065434403551070262002928450192156078009836412712747708315583695260583579399546018698727054925453573913759863786786063430581282209428289630061898346265266316409866625540262737312285955349793108863019307082932050782225238107001851375788914301833064656139971893377410054631489534183381378038951498195252198457537242097502728490852739279084782390070353940663813762458773202515187976396122556586332214010210244522126408101465120176839650217866801720027459901612139912365171472200863557672425546375362770217271171197715013331277193238293955285728542824137658827009453353774668152460158416602115049653296707187740708203821602202414839103275864959797630470342130362478263290907744443124316062139438075955156942066730387399433418678397599159209245781003719716522216471175894035672413746541743348727616297635899735692356650838061516282084387055931442102576997577962084363642730126134226878830777007506099364167623312842564297058981532567817261171004472928916435229002617130001779301770915125672724592551864783667824049614452637185262023790014118071710310834468577251711843954361871856375122752480489075213979683749884647880638847165945126613677803634862255166622446154239362881588925275408632225555926147204630178847489133704827361594468687047128590066284768140760027869412345050291079308425477573622994683055281254466232878717079488496722138966630950400482748810788835397915746429469453761399632560173357092750555301896660439775086509416068352556916588276781228282350232989116185153730715798979954785580698764411963147991534394382846067825551689244678819764038639837551246688432594745315596432702180734809002000524781016626055028537869421063285413667701060676653361105892063330086141280535709273470047835945524301853874460497337862395485559592628822090763340086552134028409436779778712104592101528400218924382690963788521434440858542750767172907721242539344547812613299480964573160112843249922240805192035861199193228978241082504787971577973328656702759494563183533483414201264167820087781929440282692604226548268104496711542274673985230703061011848010120008740160466749511821804828340268375754384870330219371670709610126696208669816529960992246152300037507115035601754980698486721645414693960158290453574713847025061466727688836413707701895362338324020439944069255053452509719337487660340827166089716569101547008635989975842911183886772903675597012640394437408628054372920819071408087022705551201302148158652679198867687129067167877763287697679862647723235580189997842682495964429874020866568890740084559544246085927950640256988446235222282529854319985597338458532567585162895684541236380017267952718148604432714441505169430108347292335551670056083565605950628451028392027861301702722436802563432194168076189053016448217702386340260748544123956501712633117286300586560996226825578340943770908592711286525287065832903994162090351122595709966724246233628568462165033122431533748961304217053048482094234304899687320281094142822343381782136153282568531588960209336699907252538271651276505159065304077812340141135515425674995750101319335560825487635169792772191311748406307665473149336392703511195599159236091058899544760800683368859592741768975099291408426444307788159739584508630612979003887575918894613905848617672803580818026145810198012395116268171666541379522804700762744241394124401250000686096060366382266704148923043905868830307198807654965223713788309242856270616179305683758304016570603654465610924113901955686987262091535470701560692056648042801449945768412359325087786848744138268229572493869159115580727252389138304218660604671543403764039725161153722286199123248802011367314773764198202436618614583284327197510472448992075665018735051493494357348075957467442278352945794246605860255739658907463506586936147990704851684755817276860121349205956244654168309314858508353801633780942976764861866667328744291933713338981389578106389420272508539783158613292249811782214253422512910313604029850422459444371776788986858243941349974458861003480641227646191883343541166571662351754136804671163593524224709211187707454121149447962447886815113052806350885923595291806930093157283040855881131984316557016412993353545043356026071007843880943051649283269698145285779550292905160034041794466846493253965031672408094354285503577075140259881530011646242853164282215200647570135804594102347132554897262436287672876699506628033620096333993873351346198849785366681236930667558769349981833479787913135610655307530475079603756324395009951473852749262091374210562161153455146084852324439781612475525966366088033599462783571023913210408837661097858904105522570349090316824828857384020633602190961450978649635874407955656045073390554366943766811555521913514365016887311570548041053313633984224463881388846932558098197843873832787269356152694980797570451199813101724387681366789139930209088556192131311832440583690555911897739468297049679504327610804499844356527292166260715621062623073487160566109127717250501716630187160507383327541862822875189662575442660263502697557004120913710350838419674826945250912912393906250494218700004951950551327012496585752197290608323254907884128853967807104343379333247283831864056514152631222610723918839559097975779301103094907572678839871088198807658850019841079661579046395249583707472238975873127599809518724044791179685351833732629350260575617086606095700067515561869964218006132504392513686560269742550069077470229624789212097202853958816685161725465237222626704550627792302301779238754199049308009111909358443670474192178835353991972740898603072255595107119486352446695920559526328788990235167000478116578506615945313887076914038483318274274984311031667664450742591124962015631517480864089780047166410341213028094180028717952366815946377774728980217048775865601554352827995482583338926158136631930385836495870920383120521377635962920569283666369694523476209105795373290525622240529713703340645537323043201199860878497811811861579786226073642679704309683596364820682540144037285790216648840135867328159363538973613148307397545564414238283281389776977122456834167806154723233311189972377309667490745825631571647276955617144504063421307912075702856526873577392453794078653425549045510523332162332081047168733719890961253302555037309526411905734851809039301739041448188018933993283597671611484116381439736389657155033055555247426249465083160303464963158015500546427879718272768272769098201588741718213360510330343433229358705195588244158465360888508048993845217079224782005148199444207139165961888052389029123132744049186486858192115031420761799089612890021068571262248624551276001586484402441589920781692677109692503305303287051661609664913897927553246160993170503666833955583177271829971610972967109545751702311392433333111528186187279083058189566517133334751889319191571700943671113009701976013210415441199522483251629931676723477704360427865268180201974284370309612079238739659895690214847450311992850036439252987993532689158939701884241178367067878969773794420339549900389613864266874642352466858796332135609146798342652929695322627573777401251769431872882129900416887812425566450614884977807421636808060480115752842200398673488067079439453850053154526517623114709085204861729714487326346520843188075263149279571017961063610961631486554929737212104756207726844581369532980714284977083634055482934690420678880626571415519125304857335310412792299116469382562594858661203740535562940461621223136061782050486668008118919758679204320138398470781756754182938196694613951741651383925056314918097399885132605489070807319126183870624463167841818833002458912598850966089344795706857004828335337781584446207833051075915091763851209882379262329722771448958095304944873565665511862195593761197754110655219243816132119803416879578651043882733310643909779394941083677109738277496527351262042429036783686314063627850659105626084683482026469665830098926469716710278637634707385337815861792819842719548432048846353171222324831578591848932736710915668553059549410688092194448810900412735958948482012397597166351416300792180415572782145509425164281772096056176147555846818784339582677384222479530453864576246061416153211631618372368996550165025978489831666255345498466987340097578933771987214358035047417566449174235355463735804637960104926087666532602576271138511102231553930327310465898127320502377200033954689266003638581078606010505314923768741985334925792941908721898738656674012825487529959390921065572666335384134780125551145266953958460361215859495857575181258812820630118565790230848552581834203014268502498640748157252735593444826588307134507641919320351123134865722336490043340020585092288848084469275877344331283297401267106245887557389825214574314972607290308506781042102496461539175313503866903761873860772739320046773400668262277314529241997731274262831677606134050226134215912026524328868797036858917260894021128874144734473116790668168924941662810162926414304210797202216840127716261659561112073964176714757938121196790539898506786082163197773129116568701662987655904656836009392853112923626286471717641333256880640017070632846369041907345677864991935893934666213962537176373983775139547557097661892931184114440825238085398080734843867662205535357690681451199086938217850837931893102906646723852133922805050038204238579675601547151234153377499641999333259001413101553445507858008726437205994477882192732583586246217647056608437382743870934281727806076529719048837112875793143867006711291185307727540472047836183921532384502199436455465615489240552146788962694146931280611837058637099624171676697211041736005393418723432489640400296989343064017411449320934607197696073380966165782304437074502364171907102985620734218759829251327480537116556836774977793977599810116221185584096321879209807376825088672141467623678820188930044542328589901251637899604800603692435177469146106684739789386116328176706653956583614833536301872376022842085094319858229542248921343696964090123996208322231038465085008307812347149100882160391646936395426921524598713969682147302299803041342063460819128774487641041840108536004743009311580475883628819455455390981126782805616062245179244207301347692801841860591800106277333995822863240441230972372631622240607138635695341823476039646310768334200659405019525241151875842712106534035407500885433322328110708785570229937875669308051331671328719656385815485564602865812887932225532374328413541540839387371933398860630095791599854428816469932906322096874750103219957558149316468633488370389699620758319832495777341553291746244530797344258296187111495275072886975682097925943601862936770873122358824929769045921611381615001324796029542434312046406384507971072088573994107971825546766900097886621389374623816387279535760207456467592983275273760789318086599125772010206231621317922452161175864803395410489260511723573158893024277593827945407492240697045210221664232087108187891071144606961255757762492499804470058972273519419268284627503057817418420873239921994847625451407682074202175522522901925790590988246620913756834144014179919597538084427553317564317058880796189491459041406566685773752169225879282217689840883048015377644333384245085711736044702968314774988948612127835374334018214384916220390349108349359467607754662155414196475061934178149643384932157568984193544520907923543991618434791489835481811185554298168684941988474969197883034157674102594582052342551747640044429726530615295217995820941739746020523088002331821513752124536137557123382296370203662975592929439299905950320161875584588348985359087735210325699792975111260758412041684453239152766680047536028432497956068630709676967944203791591637654060852946739584765650408580063263611757691294176923975518671302080724476152824736313239359680241681112121702329061511864109148127902016341368632944324597277953447747543356359939221259766309865228875177610017089390887949720804941545746852433364064714933042281109352136975509426663026411854608205716261601726156088965125816648239916195373878714700794106607623348771017326939270558611268961702439838927696560695117646374663188021213973181949780997043627977037646289632822300175350754750990887846664422981008193067633587910771716613352718782437008051047666596707983232653736104610339088471250134180376810876965891643954260884298808481461010421172936304715291250538065921555486877880082769867049798177652941605520171014408639797801177859751968073286277674754144582862347089962826932549454927357706784978436007502263489472751766781240261151804812974176580889729821526382958919365374322291983355804537734230293687310863273738223096786814176428453402594607355960261305319475724062313760148561869658544588970144699898498582039998256494897682520818440232101835692554748185998971486897330031523897084232151382800180845910134171666743737769421521248391240209770816446808425986031233104609012400510823929247192843018887159612296496290839888947285891493017790016845356109369836145732244369271004090390488295254584107432408139059427516813461533977334315279170591774672086811466567529884640943897288173502055666850692279619740960467341105499262612713103830415416646204797924500639071949108507346638384783970986513047872835925658369822481841221581795347844356146595298813517920999601436888285588909911142671776980974787455188598021436906335349478819487010373643718636879792414654822521141404456457016858629034573263123394421461872409129033907534768025873088555822517999707702638554706508313740217863584996591048634344704166406390390364792068524381598895058552553698996260078800958988767008941281420979469017749569399544684645543058762781961022768662522299915646642163752126760127261826021199601996445052201832773409417841407609841217874040826732997747312365700780914108552168178588329845292140698179655972564290832151460700403153307272903564852560315078546098452902875481193855643204116635709486618224061166561045841300441766582051712031098641923733352387415502771604007593724327953651134475227800928240390973441073149742181062967745761890569225536369419573235564251810299422054860040924366782839385164734649818791125193053243308176266768376025189369644263484665736107105791096981585357168459051309250764608081814850382332943882027483282575530097784791622505716339948809479894873940092447329126313117129519028401218760161486824440796108846802383952670035781495787757211385991574462092602935117138669819696342410722724084558431413271875571430860222141078464823784720473260281845638741751528298115246608756535000059705636803921958070908871984180688641599643764027533198254451494953140513667731432483641493966966469869015159583633022564547383983630274269740830359220533453944441189716259174781341700312330697719352896937936273989793341170050106727199329886720932776577484173664397350122880322524228409093470299694032345560262062833204477904685801231920350977990512698314208329830475259800216835081960562591264496807268994793381272694653764682717696248916943795533229119978132065111112155180208876882962577646844967326412335836392979285556417477690278254395209834590625999730426685169239769135649038647723942129230350139630949776493019594937621633170723807763730492238580595118307228683594746881567587706337741496900554403971362178460636607605213016493067332175631894283851385692815930815713680194099591187882974792270344521326714201685099387863694435245346435159616096061516524265885306886052384490409577615991029470454599775259762236598976110680044250389687256203340574735223507444650358271359037638996256642474522618708280569164969010739953391056137702115090452052495127521468896638144353742438351136575960407066491785311688980312666784115631194251503840734581807356685906425845812590759709685259906907468397251968045482820577150987376877743614115675018977079213146224616807015873798241253431800451628103657528012748904913121903900007075712992716734905751671373724233352787628428846426678156566542065531727630905864658546060331322189377084264425362426296383380366601657400237436528588872942079885134081197548399115983136927579102821248786533389789076364464245381663896390309213771987293671536130955118534782454410564860335399480123216137839318457990156589421858704098955990718611654878864134235566249224836413339076825724467026402630383942057797571651530512913049684667890602796184843397180083436662886532320918788060977188209610442268416300589903609630750193030986962570115570544805291873547078818811687080724573926000526484066596830319045455300656730578665028858210553468228269332640452772971505083361440478340885610453580369086283617440591387432422991552788145859065357737603717772273396614361797159405824370314483728463620903988989935824992285901373288051621873383667939968781344557135567166249095991850594273587778374910948922721101819031176147201688172960885947451998710515350346523367580171051894909952822466687456089905516029162401196405833407423495864749569524878624105915113228534872774356636052410504868414722768686298322283447029931503237681654227687844401220188024551352074683792442421263057979335216311866291270345200210099164446547431748645136641629412975094391236650192366060724066568678883941174419973940177022940130084612939062070163607027002692507792653640551177976641156680140785809979364920015563881845505681515126134827320943720875411083671910281600945048114458793330294158224986294969738336572098732345458237094142014260232679909900004455969592113986814974056547363543525304723867787132593558990485912231166288726496206695645060611824567327205851968227605745719633669835070179410120731410080774263097762395925850607736589423413445489027751200136018411599748913620555520126477812190922937820762953968428900052500217978632157706133426901106849934436709439434937212709656417970906262512191861266592447069599514349453490115930491769668113405427256258712052312344033361515159215337842375239932337141627053867641673634856446600774740316228187496766714431025001701097969320526942144053260655485230695369195710893265637804819703983511782305180021374835303751011124395838346044970664484475847253434493503711760396988797241509095079941465435112092934982128230681197662906803598697341857514835800750155218751237588444344233696518212323019986371672079906375465061732094783372624142315703679465418307176804143060619688462253371849992586848017280986373726320163940963148554776703231975403626700175104472583018378213814915342676529665958391091464768099227993730093940597716713711273551123307676787907938885973667385912067976086464762764162294950677340189338129170079054511932739185813019209113920121373916646018995173256771236449055495280887502448036107939246993443483937377499544393920235551770601427394175847664973433328595601926159458531343172524670644124614718438543701115999327643397548683085000057769377057283057921190008220844033502067471197250001532909868743071398672434346286273067393913621127470783130823913641121437882024714938221265900403386779065240968935746487945249294918962170480049642581469787068064974546637889477858375991454761403491320281921972160983622133396786885960181359356320867699096951187042155567920740503304846720566591442901746379001600587164582517915628787173187229303481257437220983705236767512901390729928302460209563740942148815632619573439433373890973995540349879495081714750844310524879592331004952097157605087947074618888804156902401431151638046516504618449376307264046487768929658396490135951786520879525841615938643630722951696479185375667587589600892002741362393571078204186365944540409025663118391759410136442185546881795091780364707143066797806177111793269263646875421999267721193482970440003038633945985381353004911009516989703532546938413159675002411854108221904698328902721008886308803456633318940840457530294763333611868600780559368495452387652200821822180879815913811059499469288128928153712139855774715439643181003469699545313975934562342866240289119659791139569330457705279025949929275080116564780316164050580934446175922667413525683917936417384786011842911546280088773979326752637988524618408035183791783763783955367038301778390836766869642176032897904224187338121671627374883925838288275682168891232647597081294167717455558925012740168794092132428932661161292027541232402805627428555125761310435848897107991237569743373854098627352038253000703385750067533371170311461975404725589430555750014628644904611471721511738228155331454837173017818263729541390136891058331295293200902351810320218566914510923797863752740262784714135064774236182763754903257603642270217158320976193820582036588071129142800497964291740960599434214884691023945180257204431057335759725939420314844238978234196938713472039689513208978268495796991924993301339894733109412180215009139617794731442149495044887925901206946993438419419097199596626579010400173941905728619690390276516850179175629295207905747309586613499748185574556050885593941509063623997156773923902546787042350240321275609530028859581586103928449294204903459879346049084171127941981635250942032390266900323076140252494677915555246109795662468165598624638711448467206619295887817199877557199161732680009608944774660466835791065777219755068241204059027800146997390943341429579819454658075184796085525181566511214845352994681585512994208085056850614075331889829504141601356164072169915200379614569702190949973615791654336730963733659157741878579689002688332597365013213259014511613087046342073172701712028919098542150635144975159931455876106781669355984158366508272563291802056294036102751828573516691556783661853249681809502587956088647029269187851656334145436232753812063423777885392134343845474852790015213534601385206358315761035526450147816124625205935121630986169203706190140508961906630062223292786775947585473821812472403377682887621994005633588264324385741605395531758966791885084662082039855784469769659009593055786165970725185216568696155643775703052335240943237411921399156389765870934428667603101934258140501779581342583801490865216565593277932738883006707700681816845760579266074454239950605911949633798541099070261808088043906557842582395129473711417575873096321036160722364755080918051465761655635385281776276833641559073083305887403986035266939712872005716244391755456021727252098574664677005970025766720017741133772560186699766061006281835831135231892655893201314311711531007044884503900292175225387650053428150268240267809493201815153894602425869472753234213552340903104248924232171074238762748677319880353805421091500126321080264497241890146900765460848573638614954162364001550680750116701890406476786262761480868289791505778137739563777798679799196214531488875517264820801874358635974380243925784726240773648866194046783428375471101156405654604731524389838640494175063514307743869044133561788444223927553373185215367990308495870312645950213475027701619802539237174973421830556883431935627357571658331284398201597613244163645739530905668021134006855088137613121617379193775193731219367616546623114715758614784177846883051062387647157412920022616276417647472852994679590984961961764027788992648454379814840092420742448054955655685549431281550729018872432430877260112867760636587956112607415588069907821549308213147937559021233895144434100486023118267412676876888829633063054107073569048397591873906087095997888016224596388446603436116464922605548440622071236514822713288465534871665828568078470660644435753673349750133458598568251058407849390889077015938263811752549421389567230445366446468580619722871966321764497392108837717660261044055863470875129333390945429035250315322382428793802050030467561577223603637998838961098602165033280682118053212570964721965763328416308411374332870947818171247727343278368000121759990895502605659497341001766109331229460067675201110763823980980769398301162408402589172708200337280610310313134771225030975434943831236218760855569478612397816006722202984247565105304034627842828529548482490202921976002601037144394226167273690386668350466138643834406990553823781985497164724176135223923039527277412114035290493023763340262467355179814132123018952671515449445728792990730089719549250271164526849510437454290137139354013820481693814151055940239377145460670440761238543897174813807221824281152790291267180931815790881624352132563670967016313419056545009789189536463508330867216918438655760532456304030939908113013619456068894417066634800738769086015982426830732457100606997064444490275771337523627888200267990496791420431808915889545631930329463535843839489987864297811612422189792747378085381812060108254426834948291624454928371332029459749003351273580202535830302665684092021308163766483092236312425385343716892138466141487163977394712761094563318621456198563880860212417416949349439014844643637036239906942421699288271945787473507245781079480615463504091106280911188099803179115527165465273009749016138525579655131635649623800817883374208805899769146333653052074195184672412494005652346173804532473107767574982455664220641588370609789277433467699985707656409526969778068052157319963446035133768777960300852665399184295868573458397761053945109770149078963325107147464868396139944729957566798012654884821306584079925050196474852489057764862042529297224386783781256367281557865292527185558148984828708962616804243428949773371678098863196790251198472176888744588356617443587705832868404284125564893094560985585954294046343846511165683945742297229519226095704680850755407308474799101245429809011087972126098716521011483942001834677834898317917887502552485383940570449478365598754668492102037303146630207198147247404290508191221516250195355983665900068280863676908211852374376684800725407206277818897344328228609693803896244793882812515682972232690840741498829717902913335390116375136731347718112621508743909689012443928747899281629026665159885574427238036292963213852117019958261764548990121757523379924295466988661870803906883810612856465891246936638476648580327241739844004439661822140277592835655576609296508674109173486394326380393382245744688253236603252607212283591533882512593474684676578588649391370151676597469374106015531228720983456833492314306441415815505299483182174504301035277286393873942656905359937779285037279202524407132500623670074077617627994952537450992002822299609607815785651673262602376537826067812749135370250089304242159990066367249272204248809094085423624398463231556585629168915418722553876255491791465714091039453068171659984464334948688576475241939453604279246469542143136975695362269578145786184577659432744277892613262181638867893128284565960435721321041817866813444788084143143092524212981445760883170418147305035087052865488838827414464145027464347048293818662063544741247291600546524527316204036212810870426311602158194354003087390062328619220056976209572465785910938075022536950423608176255985696882867229099044132131364082022435328816102154435048935272862884525012318125863558996747667407903789680410334411290559354892955793413260261533655793754580331464677276571476564309527108667847407473500542322905630643546471765493817244599235328719321205511347261355108344810042876737676755844235430338458711118221059876101953973872750439864046970600824118865573565126649986981203664570003466591147673982347426818494163376655297252548526529104965793221218375662344633441343219389275156188658367084582301301156224870146796055236226907916739261080760880476707390358857155674930296647319811312697683821369329209304376480631678766253515044815256782337560654123690904511018153268471050234296510208924776380484251004249378880097082367558620491777312190131477813234965011035754160325056481957108153549850799887659891446337378918721622079413538922623930122666172632656887562318332121733751618996855445150551434114925433450940641005214658948164315240009224728751089711213691379411708286849837610211088713079098971748662597524418765509112860335972834736267264820705589103332350855569526235758678115482727697486292479566144523959587970854777618136759876149076858828903225396381133374573913173655664342396985910923802666108207978115555165477741258078236616266883019939793054542033445055083989291410127680773588237511886353101161253693959387019415241907072418478688386886617704204759273243023886376197833996924686133290166927693789969064469429283928831377912317520538185351066017250701151382664818994267249556405814188706046434684779664687983690143318817731156518915055723415750423454979594062449138923354364029012872002205068684488211935527056142349464062194006074998217017165028882768864853604481394433614642185917989894947777036021488573399166826091215829076794258885821212741523304784372490506401920595174066422806817607397386071440650682645655939872038645999897254377413298430663756957888323496490720125828666034941273927140247286788686690637835911237323019259666417188857602688523626674532512613050542826673040367269531563010244611588849312213257503322888993928325213017354775009554969225667146949870385849598938500761417237223830967887117974364060861268819515346242549346141198313159980128525530800698396555787940626092386316085926794871872960338601497358210404174841864926825398386376466570930335857878095789976414626255515646852401014424689475612857759493861439891934821977108984838377256428679672203700332859126809385835345489592332295655898422675673177900424454574843165892137850557741998518863463382422741403813208236258321609678750046423943710635815128274713237662022233218621683580470146633222121503261014761947939768093514492836191244547298802798991706333658719627688662794571067124722464978287582890144364234281408462424549524228080468599637990730628206106557727338138755832038987008810360695437317746950381430192683333974523497492479151370245015024078202441067111518505218354061573298736202770522934316442723344455694306748426892687618334023744690005643397089622162835190431968276158951928343028099997285613587016485215814282765942581722147300858808584389704165531043743952800623859263092859846364373323858981165034950103569956408693753139369448281283053565522051770168870923763943947620601998523479182602766116536213321385752208276603199483873988278632584976622071511309417128059797760688536903607141852743176299880937054603592534834998459642327211455427104983949022736021678021301356925492047379272418901907069979142517196116871044790525824755582226297421971280271714998427677842484791869866060077739337041094220700938924949186015453760064212022186043245816983635993036375882785527945387449484808742321021692657699461851513167069882034401827994569692989643504817687405453773764737758171358177869426966126554069362907287250766996270227220708272102209526113725722173879497877434875543887151657136428562817427397253042335277756475926935628171131925906091679945546754477271963285071185827381358059020972915229093500331527090413779503320975743384114507192695614782781573852556227857222364365356343374959193439069941442113576124390616319844018873216806095885730850403374531608852716908518165741591462150466679519884488580804545561569756583844745028980622071277778483644271609458730257142090195874944429535922123781879992066449879554284784109344786454635909581443467870372511517694412892979710095037742454562754002563260415832581518741600046079076605341903193788334116690518509543911539359237266438375397820655884616068314720356141300197240276580334857913868595373377358047990545645453592253235539395949338927036012379433559919368101239592279584995256573778876943188845743179723002154999393291846277475213448418332857090601467318935646226855414618089023556910905855058184028610233300321972096945201854483078952289684111687668116752564708630254358773786889569712135773487446860359153164843968067458193629825336610842078392967316648557781712127782504128152497638439668435154552439227954174627394255090781517564921749971380518563754684147365015631373714762975552827839247986618587748065598886111914692994300705075911379060806123187732088002168134068975164280233801867950039374688874961092770360723147073844797261729061924082190270821191448691358071467117552482087279414971742348371026734463078118580387151285759425807871649604865540448464447544995906763564686665517874282268765511399349924274609593425270364593290108794844730843839733502254762038159451597905729255217785860959947736421223474639596068936281931600100184239737047285427295352364256248953947027450110763373202554936658193248680587189728631026114875318642281419991173838864073403686488667543877098298759604253585464220600231464686610549063727612396658864107031610260412322234787338920337057807140357141343438413321961908350723338875292561602034247342649919763095745163868866759028387330618323403932176773878402103999484374480426194959344442934359942554081986273137529573842483885985295004711653179803168251515789836634018774841039643681379662707919012958488254773729064236636579544615570903425562149633066686350321415217102675330737810631745295626974586649602848574786404170018404183804273092530979638660902674829994542502626505493679419690499037593027072019450055363542679666801217335203805256805642400687652833598977625840449940099798656275454260183316875951061092782153158575641836964933099836612831572807848287322756283613612419168513332019921143715459952881131454555030672098181497174099989845773127276320798372933442106377615293941751319931472121141562056896827087595304022958719502284917302966089609506581886967884734491082305048020474271670124289531888395473202601693960133988348085963496944750001412338743745230377131319253582715767462956510548987578469423341417493429205834744390721519208451747906005708861194447034441462590426800347764268057833432309732841692555982229818122457864374813099683133294647747611118130265552613247584100395776839663432661233519010606774106926489456521288596648242544246528491329810462912992757943546025874032823929486432083718148340098749717184406349395325245561393649825663489080971599986488202650870311709688218710855741008110093625714799791370558986700385624908312496413611220551518359740808333062939274558433808053550740981119488455483114292274591610870483335157863593134479048787207069993266176401515357706397286930807441046913751189325366003838815994777512305168561606602645878275761689390957557986170417237480128714039294833411652721385328390384058389768176909785754593039209260802483168873807627448051037790500921398333437196673809739526732724251085594622611901582861467539548468686229169230645859959656303059819810366734134647799829774448593602037889145364218212839016792485461343608687031481178872298494818901321414605357439685226396382503569574965440993613459153436848429594575860845984652139887486088565406368077886289942970477117514735938103226438983708363495031669314224804203083480203948472764039747158017694816811886083152688973859017896308252127091574490285611926660650729868324692653134761928878944752550101517937212475347802875856290183188462124328035642835236743646900297530026568357571749711933017364838558426273648932539376529874272863503205036575593076637687641186727279701496983176411434310895329860065221030350907565968022088941573590185640106809010862624034411766205981433358663218432630288489396725063584136502350436557517451253462234500468495772112618211092026724920156912887048049374576805623715929231876823247561306537585323493264077405873411216089536664209966305166459039447600033121008099968439522739887265267717361498014542358226463044866499281935555132474368110931274464940703589354241046545531569894293470772649675968497275661582013340795113252269609584104564304789996777431569021043161783867648224573091468306206035912486986364842161452494303642664489893018355106186253746833719100249312804812390760242664987650825524426976279512037145502580472511823642079350210415014333456396564925586177147878464134200997146452879692160614230593954010430189222529156976145125398993853390823940178264790395828668122531917322832728174834266838317594981048601073191006136707607550350853575958628587671730877281803119645541755196622191620272050421577436902714585358271754434916351506729937357060383387747526069984166306383162656190997942254292501761710454768458991559047852579206048295820360063595136655523387269485106845713912038001975443146330491712976792311822760566601320783175456894123202745871420602563132882154903754036525449993653983768749440715233830949534434655492885519451353129474054653665123514037129020799933077241987599639039475802830267775939009051209714587581206851108884696554030869034081152988253498065955928892543596866553690839052115056447645761072181935388820738751146991640406449389433308909358904458621057683673388575156936623701813009468217251352876169046732928600152805385590503211906541761764748763878820727784073302020118377264562335685025045833173031306472258104593038315801555736775937786459373151363535355753604866434581991950032482135811360300888045089969940427293317132146465306047075813332901386028512500914935964443632495945756360222380993615126109055448187975817805458984953005334290175063410290797321255041352730233038616578268872008363649495349353204032393955818265176242753273504847356672678550174241539341134229509011487740691982280759089347472447775462910993317154369766072868581623179634723736145440438541713067347926050864026278238841726528233684796902613153091020736821053142011103997116796205814100459110880070785599769595843821058472307494840297023764437021068316209395580798052080875904609034987366135202981711618341986108801894049382684930817268564305288622720012250005586587831157540769368910449070393572673865975367361702746811062114729721271241750135305467249323088386287936144470034540560234920824121763687107149306551571234941162006609350294459037451795363274925073462900339328719343172075240262803277675079041841121414271035613967504835351063390226277055673908647036031583557402029443250640564243915744091450583380234899162177600630147323472492472111227534807702636577484146028806897876248937790249438852638291988393259423660524683273772635807222699394732070037202326746125575648689932474018272110085094715415354059362296058831909755069322086749016509797098752637028562780103023323246600069879096970574357894913578517193153867605783141377318133232086893802762343080891235165477540744335961538438872000726883338689840687486909154191076259175925131096210480043535434984198518889318254701290092025670435435972777141089918940775997723547545511368965927257045134224824436357838294574637234843307967454687614313095548500739552879813829951979599625713871485153584750079116122147426744011546020110134300396920806032461468106900013479853972726959514461511116400802332489792917437930425988199470986652883119966822163143047843196595924847342951473977490903428420201760466340117282443876601567523867864150082276261503200119380651962057895879032338663296822219459790974430230330711704465315598321872709309544460311985718095647205673051427556850715653938416825209936272945497087478448596551546593656173837813626903897057312392556638959614189438444069007103529433120424467824213314457677415889223759034004972915690220755686864515254880513809559275118471795950359641084885483421282596273322268723620410387237587735202531383658135769962940248387341019367820763005082941879673953932291868593972099905251560871805548455821981086039325791374144538963229185192024411997475951314948309727461752563075106467692478240396548504819786794906189772444409869234398063279826342219701176177727464619477037783875408117192448631865350685612867669958494270005210229970412141247954976151351659940762666948451813655915752827696443426899427834954482571928784482737116570883797108116146711343832508780429268189208624626731975638609661302655359239006428474281235815673219128629350165720934586156109056443096135225018969968265083761406988900039415792538635668481013640719359722407344613733107309522185225535497280549053728995225468916347818215610307975747967709616831433592007585085142606260265290820341298338524809382358081371125471769215987941468379711224146461886642244292925663829210335307507354908159504283368940138644526373196160845457378991431536592895669891367746392911456231275394430103162251297866575052672754004903826837536126435704715939135968334545430813486547379373412306814735642242160955065294353213859615748622361669327871110670084360202725616290629652538021864133037396116590724040564832766520231983218887832134963475419125191541723306408257587253408727002054585522918842315103212637581420945793797444688937445365504296271551119570974155249657094338555429724573421767362664944375824621444379002569520793187672515503838918525143972621265074048468339921651784277603748252230032905869606427479842465186044797174311877934936078916413246327579865981850801194114636424980892743432460395139094066021966812536614062317547741772062924601760795338289464027346705091500587774091927095688383486811537620463579052372050518920415433858070614941921555175090906444599589366767642796312790718734885275945394258083963070985079433606127815318560011393058493678196005548127583044062239410825803581116803975104064781788558724802229524820936785376866739006782216895190450597497315306406756002157178153477168367644995306761095076235417759742562504929716909535616486085438886232191599490992520048521842081811865805600692466713899852114777632368138644017580410323764013443638966815889143524152617024891409790332304699729112761822025697238742946865619337751171585279048714037671439426204921374675073240990634292254591295694520805340732860471169560260384688994690862167624908212204099329411576101887210358289282049123301455584445921830732513994072344822204903188565678297121784140241854844143613003924088190956941736202537171498290374969090567178362329789472313367790411640201472994142938714200536818502823576040937530074438221396163762506086937861312316324918901874558271206382940905665851590404454469109681410699118167644849458697017208938771200749793977204764392143027520667302346745967878043387848370722761044815559857022486882662328236687641427594008064776054168114493478146443882278286730303087987844026052488069792592311311653253103648793053116582624681192951437376070166561594318722784145494977505665171939445764548079176945510031195545289702626451256514696779755679249548352165824818062849170061855812354348710522127588259836083664024186247248064230623919357784053946730117521892897507610287791769091240235448885826606644646888468084269696995079536443574319242985624306632320035727919816708446741163079004241512452258637906274092283139294653209228380050151053774099369241956070810373000191837582424820995636997244344926249800704939292327271371402178041798551648706066911678279759970525130377781745531528278567670564064574238455734216036526859210957766240355645179571394500420703476550606539644838130058452504903732037470407988453723215857030554834539384165047293308657861739907332395848930674544954541899952363018675377372769864835318178919901762377927745800215204186751061217552887612140618460495730802587811342377813002524387100783443552130459938286617727197044506216158402993999133824593166292642845510395051601803232109003048745754246368814233746316784531774270758666176273839781335056377396877452191754299319193721613209850110973518365756323261451234904027411618265695235259101170726486298422136540747904672522393988120537922866400065906189487129710293070815680518090650291360068725451681325524657990926609834999796622811621615371862097516608151701582300997410079828937102889209343477087866395068952799637984755044983385660796222169431184927020552814708486856044188300917570747819740397174329985739122866867197489694779862364240038228792887413379240171608577727688518720249578657473941441616628048717177173669138380516277989526121649136172745986956834720743827472429062342151386918798513351322252385497040177138753438876721161615772702680864821753813857969071638860736122141195298387077146390742822425690489030840675717063812686769848881858455274268927967630339312389230137470664548910046227535928677114339690323034824775374684378453026018929234679574808725090195867159258219108660454087455782144011289145084082857148885134756679327700464458786328571674322312583332447820453524661531609448572111655699387909480218909740780374948069793529463888803809204467527564992699084578339671033546394632066763472056270515100679201384007303664019424238912601418770971529355042397510163732936270244287915021722518847458208102358975333660754390158762853548770366983681544753703144058695498539427375055247208362075260471737008903545926223710910243014783011861560083772340952035066408313632985626084896215260293227843482373892422142533253112690207709228596950730465813130377560438316376918577991065489981987457295473385369138205066092472889045917836387354811286061736733294438626123656830079273219540049688882860621535282481977947625030837641494057474225643549065527415574240398005173071017302463290849282530362299922764053086601158311505056273446576896191335305424268830250079100224856671220101033306813799631458970457364581490482825646852117507822046561033922365999071599431644621267353379195069507058736728417460203387934551190496399439885711697925938610441673060088585947039049781544952693299610369324591704134709512059760459178543619435823518658579032953986915447469728142411042554033181307781478396815415675715069272717517056072955231029908845064202371482277238464007736377787423058261864470804573452092780512897777370159673510853639625825780531772192063587821252277421425383784663966976138304652747703051513818940399473161580634809774542938290472324283251031698488621693625919446436642528078543544189040347132578011758251310047871978350310927478142234041547637494482205045148403207716319048677902933464571522506223310117661329383040362488985916292458436209019465028684156247971649860835129754155269930204371882556320443967483721942568261720384683094844067678458710529775660221813645622817572077903453635222890708306354271216333154256184719241610075410739739248566328854290390944606290913275155890640219061637599977903061651524029879777343321915081889069088096950982473422315147985288917824680382288124564537417570651994365290304572380938482774574467888272202976480287149493332404306032790012558238614915053009712201381043200046423529972078323007251794576360515508306314394962229539928740004748999937978185925676039890657823048452840668330577260423014575270104284265388689374343717208214134893038405852085512088671930525736466723659273190415259673556513285584959653063557262836412558792340726825499589861340146755205765723419422871811536502579431760047903953414517757502132216308731255732516397474966328743781860916621046555918486361540601161621323935494196995041893850228442857021561382348485674118155835597674079001424254364231342870616809137006041240574159012390303086895165393871110963268919874881213676734241494226615151976347868604009167125116530839380671983025805026581469108006377497969828678817069076659465261137193768016612392245618365610498575470983104595638540946750278502209387252456863238158047167253709842202361921749881386153635023601453210487396797409027969129499258687234366069409406199435400071725680075233625737474491484566327557033275166012841466784835699493678639379350890300602766282135071982845322011461452364001309015766584310550977655496095508427844353603203596806975062654681698070166135721095283237727674548725255478889534539284935730808881721697946836863795287125127255677439526614213204919471617127468826258154377016092615997746763703070543502919081374853112985342557440475735772768976670338649235533700488067490591626807814674809059334870306851270504474862475039943574777505073729739549728963670809392373448653623389867951165531597623639152156269334025517770237065772117105491510263127518339777702906703656691318509443479507389151490963609316127589869167382814449138258871728509397027870759796494463813843461643555747248799426909192591680067212047467688187919820137054142612867669041009228977759007843298296356085570774309953369604389747281589389542232874374723049469386430968652346520994917580501978045626791209121113468633838744018339964532441883056881606548277553398686308618230925405446768357663627971011090385854138894189074073020712688740489742399766202437299838589309776159351694781937226265862941922817647114799003113974073702417561840315231878612857937051477993214859780527916545782459964267990608439285563670622669477440124948784378559806933907644870426850726528787330822942030101175695435461414281787730803320364911083092897508227395071053011854158254270569146021337660175739480708766008822068529658290441384878593539939396929903046841476463192477910624355167944315393955515909549501451195877780101186369121430080508162247592804644720252980838292629682834063989420823851005144212023900655761276674462469649389538403299827612893599073284246106483465734131651515026044129598905992272907452294887268785656270809645138808882619035544363443572097805325574495004514161496027036531229855982495359926726137352623538321087174528260108939723909018586282509746033165739205662378363827245822296214957936251591113138220069010006225011119193566707186004665604160680539946609570588412477077738555690726033785481953039396160401278425943200625444078584233765310075551216835725616793037925105696610862999101240317445300967472967567145681189087725581649832317019153145062255779109187085276462961778019915240086287406869860529636716284526462837184581775183386900132871231644293435304954417434767860130362391884244925140606203058868169343049234507558575353643059609964653949288263362385661046536718622678153661812260596340805011684194519895346517820935045975918542684808344310735250477527930211750599158560801410490720979650444464536244257868737577088966985393749421206989975780318435230227191125081010484729034373816236115092852468668985003926489296613816607315434903003421680021551869451437613973739401891361531744524379545376588969648702665037495106485925414215604733305958301100281983807867807047271582634233702429139657955154242633083118972899396713668988015568429083550280277954411575931549776919017424300796722626723671408517408104597498151901801463659956382986050649625076937214406863455083594342399385621678639548484733105304972006990084420017346526538866819650378716093083948934335847225324724001506658424174293286379052431481936293712585707043528835972503833637341414189857603478806094241981894328723294112350272550853815272035323921005603526999017025551276145914095439001246662406518322596782926629564557616673785898850693110019623511022493991835744473145412262455052183632198011960044115896362274937203816369327947943682331259423227851201007568983571772619576939305123810006724749394265205963829102299024690802323777620723281468596406654344861484081511588629855467859430065517515550473620214549225441508399226420909949064237310190995234585846040009888099521699088936984348128437227109014863537440340120988789103361310351573025382097231613622987064189775276102559914649307367259867703311225880911607174152983414723205132101967055243745549119482729498423781343997130783595642823334062400397632775978710505424904832866727788669875477024635612556535661000903004819569249002748525812759771308225062090470032157543367247504393036952582133320265167342750220629497886998140947256574309868050849647561822118373734469011268732463521293491802816849897159514716654828652155732357212791770895397019438405543684577965165087836818690509817426168117985898330669614142551084639671186178412684016573710509029108943530955001683774945110421051422278947717229175430648800337672778866871610471381296768336937757177679053256534591923943087741054543659758455791347686743960335703672850756062016350697204611433024659441707004551000523212325113066117072615881591974178893884400863136394611745789317502586958061397994109236462365826572351356445194991954887099640129979441919204970384287046699140935509045714259957615568488228507590513736227726116113555604834486498337411940836328931160604535489453977341797714082552837154682158629965360291121895744214180848471895433100284140743090002317121936780410316768229905756821592479061390494938919939401499030346758043878588025919446980686318287026033243645325025162027955572205943260374865132660064713398088937686815468414708801533826347107282624429546833331312874783835637257527988332224431146802584776199414465215681921542852829934700486510575290416392888770573872725124369029798236814503481500695639347906049861854398178450002742065848187848959138072401022177077430036217090956096855785563711047660625470758220081875871422407320870810343910155254792519715505806118084125073222885185430201569020063653008501502167153924477030439463422253951422941044484814526552759115224670497195253624966481608675703610226158425486304970295199769832532285667592807877462365385220070096088758252589537745703862380883155957924162396718218497655862996745931783682197380151297989121837181352069374824603067772072748871786588982193400307507979898728291555955005090821245887538296568647770300107258764562705038730624741683259537132851129355890928587566145495294000994340247882257611575396671034654018257467482936912253542955507071634592591764427017350523201398566106654218433809221861154892816353079885954000258542185151933556145801049378279912799139450468043584411880354967806943656061317327942038318271654907243688171981972337049213052097422977758208045490288942189489228031230016861948020103189019348885440521523006619423403712305647136985083120642214199605532869584841743748149889777605318447550091207581706192119539745021157811000964525356597034147670327991205239808155486789290070068271920785837849861479865168377224770380841537899353315658320834471710530395743929428144930822627352803378804888830953048597705607494556825343536964622374855806328159563267820860019717749518485759280351217280287197539347697742181286665429532384390489931982758609864998797514086436497077286078124779974216645983964831048648744278959669169252544217582713716898976232384074974945750213974899914557708262149653479760391411161367779006911281679970582139343328421295569452197023042902558869809046756898089908786034561442198423816389932694438656366548239046634484479692697741449567576107225869758134324561755892724885899392569321333021074156711466281083260704206658031855441028322245646965584043770957037949814139546470269099519687879103569138115662671577345375111181206112512712166209247721691634556989896409369958832368575046591827710510366987359557090047289340179661229583452773525456728431200887563482234086841821025665043835122976411428565008034167917302074583436045273297910346107200501381018911726213791426583474896631781274585660373168306806137933138976299601676196369433589224431727868146338626524738713189803490785392798602577939176306706151862186040565397883100511312184079945660039359082864617446391952910309786264291966161100491884233060365043263864998633891145893906872773588259226791808397060427849754011789164157121856716049106751341019372845381407081208834670026386218854167495586364874833168253016917731236260239765043722199225298229871859420313775745943536879009567617120438025209478668099315160615735237449447140263397482136477972877549412584941075159861405275348794195736580109928798475122662179170852962017546529215257551598317936378107858610287263336632399466155661724190560078846118045414536713725963180354248336395469612457954953030790112569124604211334175990702033696686208547745440346454546993604376862596295291546649109604137582719974805550047515720875141274608733306193061713889775901295099088110391449733570544280152267542256536567301870130468554753049243653762328324471203607825571719673022385248705549363830785748301416589465566710018822894153714780222058213625246439169138366907152062457968953381530443909694957196018767203964420217359574273889249705622603081985142968591283556533677045511823727672470223593659250686940771556679043271120980158099213584958840342603506386374215867842179136636101412697902143750622996885036086169670124651981068121000127837916085703189846188927149501218643663379561236193475935658213550503233011594571813089405266393838891248631344043581475153904232096875686779259007775881487397900750581021132936733989160840270442597921636331235353876421766997904360478650159576917830783768879750697835770356625514422533967089731368595006956303765742895506608219054349640993169421521904628375345273494400379894523713857887674632331981438059700803104288948414786656653077767518253821961205411695515031697651743894008420656394882089125400404334745796189108274332889097726709190126434283921343024156989294471988117040416272970678919320755764162523687183791728433791249856298601730545056859736610164843531209859584347246303988662425281276306642506580371320749878741537923809658296518226972402235460291105756180785706365787836300330693951517872624482817238028899619270010586112203639060590045409259546622211844782888171726668388306429151008345986056502500403419419547726788830253355006784178050302328156164981597159737465926036638413821844784559700156632783328398114154084278215419656953105376130006767510564382873263262060677299142715081156397545424561051500964234835420968051101611879506249602097919355994618823177714286699115881680148578154525095266250456100133031108822358891669485105633665368355548852140750348463974810796839908872261160182422719988066166509094061789959532934424798455617459909037192442580473292232741333892646045422655769536869116617600823829710535799424825601184467199364163356251939466920317684341771936310074290676190050237509196648460050287109090736983564440675774409401921117254438965744341005415877588176709633743058636214008044481453002645299331893415531410629761766598856089222147457812501713102791626612873366547726302166383611517650040053369691624041826367878049608121697438077134451678301717654565344805584715045168079839423398384944543456752437786201583846076970049031586555205761054038030219392613118086976510186050167904641187366780300424729966892610268927907720440544853789600565649139173517868273187017499765716850271151587275510154892054518197482761926050584761387153556450394122935274002695167786311382928416490244667834642944685160934914512745999253795930220438344979481527371201253223991197195448951789983382038023391798254835647854267198285788856732727062095046767107825614116077389498291845708176047191871561565658859562851106687890161461573287781164027791598204600620638839208162055370507533093299684112509997531391721803037433854080976553819950737898808710570092827174964279158142139769193903798787250329609481212255508794915667418241349227157677372325757136064241736150769955313396627774327386689897544263666661879084619069172717205197880905128065424290232117865068016986314010397060113810726270065932796305313799438568749323441218808722365295109096103281127624650552096418967873256153786273837899061525483913073962891569775535002101209842490773961150830355965196714826020167794960961858516245186756981106205155526448590484482952258989789645837966257195537749742112502174066368143309039401953538935780859802660077431031546211511458667306305995188717717217166743980476087029789988343537619502235139856786955356883003589412367964155625480622613796243624259056985868285695031803631642967338363712860588251458133667586375520903749256935537795090906476485224761375041607501004579691079782827411348660703664824778052116996806709321397373142710039675017793939664017348332353884136278528043068589944119092924010480760372105795095713676269762916337344327483333806091423477065298265567062673264563666681856102140550986308745606432972516742625103322661175124983625745015378762035558375815983382692362885524357972108784689338603504900363560625660775353131459713413901929568954755834804204328222451927619727220607036684339953647747249753170615810543587254879673409384109042109272483132741664341890017377937663152406673220793606501306293137475413989524481263317770669609886385173558851183533792261054487729095182635645245445703183976423600664850333728070850692090306366829644984468289554728458832376132127276353955996885554508838144151697524614452029118425700637915512686190467277667192746640189977684705480742781988097691900928078530600850959117418294548333739576529509836241887487526056615068342581399661944821575886943759460479137348021467424055707389599692364317382334063329457534096295841942948560932837530112256759199658243996719644626784849116805304886073819288011746852378577866249735814880760354764038588428466992313444781381159317537020713514020887164759225181777566623773210372605923336258717370930850841215466376305162457632466181898949151851428531599415014731818477316281234066135068245797760553494274487815979782836201120262452841132106333807619294107328395270589412020764481254677906239260531619442175866592097684945328131994065599118935692151336044461260163436408350093969935650490361162572733794619585053285227955440810042242533896073937385469391196535908954062112505548236204694920604592731262140487423699137055819529334034199684089815868158368374710603831308327882851457110897544719885584114161501297243645850777215628616228053172676748227851473476905921930459170476225888994194935655170165792565437333340540275610979924318526841484676942194766902918332615479745679400752000037705448040476155546960216340537424491372329714698965945946279999610381663717740791903855720033563125342900075570433702022769127955141559488165720162329156431413183321789314462142048664939406063311377663649442384747338869385514412042457417185116528456115137820859444707530051208280258969281804487729614938328621586664097216735444502653854604898193770215599260428522966272492972685433589658697245306779741300124979475163230532290592383003697007851605232060616100809701154484090288428798281810293406611636174099873799066173388045152319766742381189314659012147274620253004109396502868140387831197114442685548675444596374735891953157087327176741426601432631372099081700509658588532982755234372428822775692103334298719557337944941929157306457028950320299307262720892062249698575354666903675265390685298251549081047895184071556742037344001737995562399893848830076917728100685528846961312737784879791099007320285595489136509444201949319575700711629863146539651081136090270301628041670680477084682811248189304033831290438885382808474706619874471622554326229010128953739228124328711542424373862881750227955813225684039220608079395914622004583528620192079412798980730113939853234817398419288107660112349511597565009505796762672566561842597121158136767601992965774138051733439576673363338573269907402249370044841677355835279892701653515216072943659915250148321173818649161819472158372554259928877150665255179737936858944681621323418476422817987022942599152284553919430667976852117723572994945085823042339523871678108108419240141637129654187470218820389668697086145749909383907519929849139034092898323879726413285965447457464132122925374660437038673946278919312671660994927200432998186474002114891472667407264508563826184417927013165828680551555038177953866764536349053729347754589106162755364803462511664213114112730337674133968565507337742844621228397677084942041895621707188389707733533926419732070403564783721552283115001205469314787768643843247747076050008009110008701911582061607735263155959163776913952048312964956355233880870071667111898897654395582424245336771605888952616997276115004399086137110502936943747895792947834699957307620137754863789317891206848531260525888931467956137581989153039891183901106832817532076459048581095539578244518511126583190656006319190863938707885504776016978723259192517085066498815727686794309745235641727028988157992391637409534697530871974697175019719867832244368725610624036889977534073198376701286438114715154562467253533103876642322692672976613239700022623519004047671819596457965055329365355422224529535046682285535692112621888348768692822470555589521536302885228727384897937823294014623498864014350488456987111635532687227540146660824226261971850745849972569758643416210305109361328995351077689396493528339809847103159025163034933131149374606847216589141184140148198707537609257190647123382854977942508333592098113346978948397498818421503027533158737183549461183183700403561815295245993385964372041878088088830017486299027245556560065134178586141033333941716219109588391705657987583242118111675746594534100067844814879278476942939459184051302459384384722100533032602726860233529943095967405300351062688869922240278063689627956049000147187948519817424137831456011409774030484603675670160546360245836039272995622188049912242485772539468274251937171766479430264756258941584754665394192913660353535697966964747360944400110841567794272864675138017662757603609983661845292948102393418133105689488750977334658277387102229922665991863553889307546068072161395303435546781637147202452361539216199906906486676788884104935584354114788541257241118070952581029094184863295878277392686694713624319984409472073025211817910036000116422985218587714426151333694774747091932242337537940465732697454221185436116654177123746118345920144862002328821659986022865661169745688108919408767139561545752527445413472702988994304136275198286379498819658149656308539570195009185570664643868344198367372255636533047722734890556881179201143442237517362504197779067704026338328873268242551518310037802477420744679326681077586763457823447127881598778268931269726781183615375819011318221141927512169874261090143746649831083275909093588705264858888367575087991174839794236549988878459210332604192922353645359973011211198353958224738337506163703787903329503252024103429958873304013170643562245556859591253431666986136490176401399978778227877405908802814167110138508695292422744987762372391615371695908334001499224478038415289718269259830543899399389972585937089227636873782897872814645544685938397967517114484046609743244259118903906739763520787123923317293809462272082982994617017084007720721664494092522075636860863716134982194781492349618004414191338195614238027960634304439921824564343519652832170004581830756708563282317688666911949252314821288134880415287891832376891743911707157773646127632423548809209295688533733099278582677118721060527526797762571664333840693242660750589963731547799017626029312826610597529415141507586404124123716263517131783496610615189332519542126917402498385797242074592731968930471726853406138794774837112176742306943466856341916364352171251766281598204453329591197103800988187010539221454046059135377742911328610215161940155838726672300703967950776172769871533614337927642877803152099181317930096418448440713354608586685527779178329048660704646018273448558313542381733664261952706375935450877829559633798660656838408597555645976560463692087094003664150566996928315890731768086855254039932128325928513442263803218385012923752927968505376513662965145795254480154927892636672044628771115206963553024490454627302438728811650570802667542396187618080724559698879255604275346755894439816557134319041730874431441313793969315055546822162138131486810802389092349499122073732368362784005370289453046876177000950265811732726205817004188003094178359797827286524264219169512358858055839772139813493418392253422503818159534191360349018706654911866257560837597827724237772776720407523477489914580051889301052833762506270620228781812143750834217007576964933609731406707676472538859101066017996284030460238150224308506387807613463095736296905149127341063603754493466060398811379246569100143725988094349481941792199180828418875216117024983037114444662935517754094818399590845787564825063976580940030303448005821701143647239035832095178392520110318074797069234337380507835274947714730530357173621211093165372238360365636090698261851715033126203322390692970631754313763465714027925250460194298340886354638986934277331483169488229116964837829540821376966186462271269434135025843804901267761635861342634796504958381985336871453821857404874914147413158569162858093098175081416550445604128818563161494559135929171186081427104248369274322784611025220167685364080706951591419091700290309225229127450449408074356004320268119139112248259189725162376498817239000954628212824296188362055272787464871936829809965287096962487397720041861428239635676460728673407095702858780387694445395947342580882164127261344295992476668867169250510954111903082819556801689493973015594989229786503117620724302098441980404970321372885314438763477100257712145351805022566328256527162859007632957524260460636231297330174230033480284843313169173013893703135098511716705205816950502514208470366564229205735896549283388516846981847696898106954796304815349564033250078988945640568009439469432201809500669797918273884149862033353340164692699642846847826738256246183194036515960120712475852994011340767901490253699782718604533973420661809159189440055952252684731295357535006312796378796980398765561165712554432658302301723855049483902924411780047125456772598156192561168960091079146881395955373590739786383920655407264069567161590442594036646052511402666167639877631003462677766444505962398965798500017032261285277547128734651502123276276994339109464010631416743439355644111462112586160354468612490005451266880000790574397776687775091378581943148581585169651251718851270569732978836387650641565436819144214328034737268485443484386821826088865082700167204189538477364240546541143496385599752215574047912909325858771937134245696401245665148635462523172263062868999379865907115848373096344846839214377005965304420135868784413469549614694887365607927421589471557697915656525214583850210150337467909589367835808317614612304968268624237979882084579882971340763330340444355122604873720397072530455355140677713263997635018405029984073590518932035946979827483921006992580625342399596822775097467704333104196038647015242282772138113818546710802906025701480536235287795100527542175312389641528955236210223634849231653263086733283390099255323884272710344476437318109149776893468272793906331771621869528993862180403821820248225592828960548707605987356022501319935426976360506713293351018946197872247937092228132175451969877362039096839170775923825280873420026825626254665669699566682258094908282829504231042549055321659383759562292487670571699501207726042360976230097752338433631940493719742602235859771798763244278277654088571227672908922797266706109832987436782859670814616911732237091453836347490007443419390968971157481544767398430587841570580165401117906014090756716836462261032647013036345450385211459983230149553721082382829756586719064311063614956382189911146296820743592704214760897035248430202088336058133514198407651898325279059340858469199654460255124493913436031083404353844885261576799118938026725278053876413537597861485826624795567804690150371126966438341414172908024957643128570407210838598033793361283937617560465539716434365166971804952869191516175178367993775677444188175083977293486313106895773627479567378116396111660400907763721885106329606694292110494212995090110968606997672252278099945977992201006123488019913827700682183373667892207145711326535231493634567836600406419441295009991221307578528148388971866162254160189547877621598604908680371777564493202700271324692357715932545635612182270689546552005023084034898998823811426022480057506893633170594017373520562392098377838772654446493634723967224208895319262364243210943828554937889913048374973164387294157084673179573922362812781235330093122602066822809304412875070078588826225847017233920743553740405109854874457739701790837456525713164639253740835569156370427972351789122672740789463458735992474783748781160780436359434610876880104289383126624314747658438328493759585779102433085723048527492896211460356858719722623235419175746825933448825178188798330234065194077263022178084195673954048129796076421580631531874771339312865870343034782913404698935434400849196760775387548984983109386957321412328721225849676691260270972919674071832225517317613450126694117423751032176380875097129231905776165899411187137050306063796747845015175160232474248349865107218577401523379990354445445954390564936516569853451774293380557142692399816233162702878753672635637147210328538506229544973408242129168353454470472472800608489137856352406436118097439680749696809599672664983073461575652800799266419226934068398719742076398036806202056781563560644379617907470210172580108820193376425161393541527716775218852188675590425087836731601533240170557436054862701715037110071899545995898464481334697235778332925747200892210545077010054268572167667596380884753578778508721617553876204879837044292101144628312331713175618012840380429674603869709904172385838141813278149163181672262820406307665989254773524189366479965807888277690698600657647881607132901493874817923870376824720881716472724363383594241482526943454419528387936073560378611379211858446778307007027759050088134905801695630485125136630483032711144904198989821791815795090736498791987653487288373026002609953130539712038995467599906674592434921187390168887703672948682789951251849942204953477684521030974456697823154744613239997232259873921754555362460571711346691324489093441176460098054568364547015506495214092598283934855810954047050022895681614948552497153260429878271016066674575428357073723013808949505875732254220693103197491241217907898228508385267855825435899856425884364627403918499610197879386477502467885920111016712412076988434387286738636438819309568415541401728547940089272134042546100772392371238037682855758093483314402007054450552618980569245957194189958163144670821968185801456585111845287673537877209907714735651395714951636383742363409664382607830746111358777565513725756578665838488689787200753729066691496823828130653728926446940166806171071075136789092586407125619238510525317704111657120851522507620991006034960014841294807746786054376363061807182840524011710867639430417170269248099429626330885136279782977034651408010796388101297095844528913983403285669797566198096671814785754847284994787230075589881641879038354174852245399819799343066221340249539506210950178587305437068385699699452070122171441244444034961384739570143330242211869525262781265722052241733444605221581336360693964859222389811691558669856780641269278424019688163586896329525647150088468686739732845946635942432369553666595491425908854780286956133083170297588756658928617705733520078292234862841986486052553585263652851862991220073292792511853374607727287833879070436427414666341795353988820975916060162408947697202668584782578785151242236584469110032118211985107514478273786751294003962115194942770768707538232257498734646764036862613305319336361260994445730349473346671891919825962262727661504514731787840769782375686074579128776148536751717939023842578046642674397779595822042230085779286759455176028695324532778194696736377903032424704967390808068186822284089819612283873851150183648291215476101624449179792549340938268674703556833901845850243302793832775962711853660484202733708978406957965065284163856772332505504262024374221812140826827500407871071547627791974459095880154697558663940292126320364839406703859908911702827116866270185621380198588423875077294596845641171130129857738334428919719240097262340244963292515901333827076773981779376002532030417223360782309309742696469440553796047267454507349922850086824217573264510251989385977756986547923364416578077022114968924356306432129443547523314476719379335374127475626832210064991028621914676554204870237922450190231176919867156905065430252959781807627338907736744064886706011495940317542859491836643388405343085247901330412703826319317083774119033308670416968721398313709700313849870832859699350942947593463834844514459391548557567941053172637279179200070867143214152392817165894274611049032677538305842341321373950532285422455696427809038113532011609591886270178706040695745694563652882137255634199901717317562767259138781026291512707719526215591281079767477773418666583162131538878433925551343382727600387127737048492854229617378502091459312553161059688551656788892443468546127115658359141224756308155454999795307855495115403239045741690303364505815181129294548502324469790616740018317325958631239853591462366140144598159905806087999822005436246874602673576428802076977996940846135152976558005186625422304532138781445951869566026264535673745303448284171118684297880570830034198225671830770003561963303229104114129738116144338496540281635726341971562304915414805097985821768203932631515724275404089185600471385032054164191137760155898539301698538626720220618171270839128176580368912783747707685548185449630542774328989381730581509278370505661185559268123737566212634802830314400139432992794372583818030864379438256625001578135335681396074510972408547574835148820465971388537768334898823247743159637694599625275129551094552850813781573484286559819297940798452881509785827575498793196048824576665614237974232511154045175749772229901168137746045171107913472138023902910821295711037567075424726778375200046546464338831158116799748150084239212709574589447120418705341450710814931830226143084847943176969584797534840189504189048978555578543948483425839390913363794825383734381506431798453123756205315596681637653625450435872952930048841170609021615645216889118311641622328217777143004461587315710858988355393095138581917840274938165169076337435439928182696681002123322616363974482891297645761463218947633528779889660624180956042599513152890017214517482145120516258296727262378330318686547634181967907205780391650931581459615458448722007929562035331861722726476092578304975419290652120521949354631239776280314476145024279456754763441412916864342748360951622692738981128289007201635916404414579270029814923992448840422178170349614013859684670058537288262067987376313775949776735380435607881995715070519636171788566848230680185498498427318636886884712785208658300758134717586514081934887669860959904011297973884660316637043920812996392659311957534930556231104842261770644244965419527137652497485222975989862011422813133062197243171680173054619042220016499637811803483596924889933948473357781502592909272625219372490765344330274431465567415548958996003083414092663964703664446927885319233374307803990650611517657191840107586951899229037217021056133336451073251314430420512984344587310689004938188705387806414390130250135687398319389050459175851803346075234003140959250870206533940205561401136962862321727449156264599182437485927443054782821717791009990350489126074832867156159884689077351210464707512219234951181754527709620483102351626279229977752692914237048276996946023462816261209707049953138241403315395805860348851955320987629134136715698357104486383069790725034348113294798374514961886688655597280094350861529623395767106860532407018727167846868750655420883369802475220865309416750125637071229044206798195753956406982579701839250514540591793885662273511220693567706234030917366033535433057147698915420677719391354641530944980754507432599358838732310204299361542027007467178281099089615805064696116959563355074590208551678499324503592468015491164322294366257190347478709570665324623914774613881896938979402810881137713116030889200132774491340563969481355707158949255470198210697944636986561745838849151404060177209511446304169667197715051264816743302743127576996464061299996192392782255537639946687374685648612973379696143661264871154842763188938700483155493740336146465906958945285804249191449068298520067125723792826507092042441359368139238420537632614235119488428756103601845594474922829874932759428148129228987793193902441569465533265103152792382090488441418670675305311046176954398040887077692808892555873902386512333984944760606992413580585063393031090026666959269383256936147275050183449963031471675615186126374550762891868661720625118843582238627631190145879133824367123054027921152603703584524367098205885969416599313167090336105966551555722174757445361157141442424721106733817401095238283830442731964864518389588833393762969476898382448081079347858193538772461125572408133341768661800279691638483548260414502891458544080439080312102925233438626174000140664678576072525628334749667549221406879356193075671558844835923953847944391355106140375544995362972523600857694809950361143705247655665522113098477884888869497154721404460241447098169003990746507182671178162971834082399701154940457669406613986294873887640754141004926765292318008038639855576858106956523805496817584510165809163828582778982441618612484117966513565405506650894834251333148135897986660754321263816275861107593409725238037833050032036018826208921120145062544017910839363316638473311123274163295006155898864986733736251975770678643492874105252203421838344873407613926581379503938667187506793304097784663331369229477914680370435113017021648112762548582209003311630210658397580882607173535717836782994896872947156331894640163802532513950661806442089199036165228524902289627201571521237987140124244017135099521490963180680869909358057267811724667733978558351192276191568602633003818927530740109578952834046174064731710537028783363939542439554663655113262023167373761673667395037182259572282433330242037801135289846034805748727203830974308443467515661559443480121872916156227394128913876093994327698238785342933871828460523427940094867867260485847880320037036874164949713726055332553417421999763786455423936375609233744374863570325141955010690459534287778734543831858549044798243046666703669468705829641810142944229939292484288902637662333503824741361553086018485502921595869493119416468079605691630959681393631630032407813923226654883240636785941910820677117866237703218918433410076417526878992703950284606685181203892830865012218853140158395059063662068741007763710611003945589988419469244308282689388688940611228993524666114986587522657893951728781725591152829768630636339677092584634791313100457557695130814143656638723416347114128968568187242215189483327097450360618719031978457780040447989691791127288357751285545916257237876065234082334807939231475690377969997320910407940300941423878163857008160135232016266681088902223007561384381670613517805662610629478269550326874758132434321448026404552277573554874573919126647980145275356502178272819264458504741587223024425780667538772204705021091309100475489386949551802300359169501646864962300863969383889838696363616893329228153871200620092839870284943524026036901153641990397906869107393771158016670311366499860758433949975207578931709600235296780330875077086593736556692313983746980763853941327103846154108707207681831158875719558161602774352657509765987703132893768791102056528306899367301112896528781066755134305628650705079927178968962565966102005565611087148803087104481622301789520974770993604987478283353810235664121315889791113621486805337742461663995022286372969210399136989463045346592336035130408633682722363004334876799604647680917734801196031686973508943852102724083012310188385443434904167788416297270815429153378630058009842575014746397394881173190883272816804853238617569452085915428556340094397732444937186588922278164547927273163190172957076653545091721508851325141222764491384944624927770549357642573921428822285315319940563175878969589585219307144368024591273769025441255112836394308159904922676390761732825662504631182841402887116687926458860012631039521781208225461271923647757915612152715889373983969379989643361649787405074670988699333740007196544534837766363196872358927575974688737865517360550133808283007794843137256133273802510998678521645737580114194319611200671848321825587392075972406879428347542390119021136408022073492101515359910957651862192153230895221375322385106051983817402261552720533498457734235274903472116335076010475788483537519329415406575488234773400371716033136638521268948192075841504587467067755025988084351263487000657630109550493412294145615784465614504526120332809117758920267350365763814864095443188288668641144945407056908536519809622934478457279557815311422716505058114255591788607356684794827779577859170289683009310272232811070619814615394377962914771620007373484687191661439121874962909733916703871665974290099761460594388607386850624005692000756148392787849000407976503121866343803093486950006954061304317870060895696260194524576776665848098591973779332174264516631023289505265934385861208209092480544526851419518128923212954124023754447329707589002729479054274438916955727970280927808849013435162050729927133888951663126855821775241080348332783246249232919192949762353973213501406527174007719397364817777845085607977538349903363720552003564931071064441039133487947987712954794430289331796326463279866287880565350539509732424003853842910910731180674080263565362683317282997437338646145266464070096854864614306117091205388624326815418510897707798648521775253896442900658221660733478835902287150177071445418648264165584105964393901085380349813863961952869689720698579054401472729714552236273963349465526746924275321347628708524002252764142746278769480447156164718227853408612226006816046533631563708176390149789589742436383808840901977910627699956611080931928270747690113403047170205469813406287893823372919761992881175873633104885467800852537091824856146058987450718144024213834146791066148665114452027261141307601057785809403454177642497732719636366867083459219680801582336361334523692814578277972357333499819109386125364238763685740338007583240125979044754911997699565883133188524727107601119621750524684450277532070287659034296004556716315158369041335442965958294982326895932924475670576801877950325837408015654663259333492822704554658847273974049959037598644833702192358601644836368016586713461417730004327116541131547573573975940454481528579158461175745225817889507109241275881733896063329889848842140010084509181519166389925270352338834434208845821941747612098487113750520507749410948734886456833122446967081602336729952089867531435158880112472770746426693996605981779236470381900624828019225227671651282632931410557775272420163289371091774603636889867888991288333582032422191304740006202841611489030607626551663332100674058080499543801386386679375598695388546139756320423086668693291513772948461735952185047141061734414620803947902283434120954453184948541679046544210121743796383195890015578552859230642272468776669262311153410570647304472909878495208418192911069611289471611340930896570441813314331768705488146322673599518138093303657375082901995802657417151780482815205230594494919238181506939254951587977688990276476719948250205477814512810193862630001360943737356551814809354819577994189100502980114493390215063413675900645146418272581445938213374021910848852227060498715276722728953167341478831339253971017948039935123594152236477854901742657820890227315980554092670783700612676795161645070679832984431393864798207514215420167992751676640725294573123642659420409946112665037635100271410986027599061648141763037784227863513899566495522575955721225655200999242308731582974927004792557313070443849333461645331260703557900154270743913005453493121011012636868613677398973748053591521650707690741609138301344936284424410184127610547239590200926442505539897296469573804492143450225149953789453312313534478640292625426799032248517402208764214576554297310086779195553902037762541845850556244713463555769730997377374111286187438500069018662711936764748657952554217968830896418667501216788998580004170243956706223995425039209800397123354083286530575250697348442738874971741762339292400352340137914270848279231927733669101514455667824658418238525180944056975039418190241021381794268273495110771710075603101378027582555715865346433804577936774066434477542462120829634728411957846786912071409228293118788628981479244391978330427966997565274175876456943575237046922627038824092668772351702844463744764609372466418553889742165925212163224136462135331165235092359775546322389382609046033098396667352060643145210133093635000296490845012702664026044584337051784053996280046376918008388886732707319917960446232557236900497481291818494817265342433926887905211090161324918314902563044530225958741284649265506483703928609566206409765844513484172583819580576451745379001701776788730276424159130076753705923128995302376389036235873548569776097049010148259888475826905568861704869677503900408889956586126277969839222587573775015030669466439134172372978607678899483761713931421927376475179904761151698030421690669160127451138843286637793736476205880500402230405736873728339482321766703747855249738303372589737489402145421557874126812501636811737870050646727322068364262206807297452234926242536734144425297225025135590646954828736936686091061959049332108249490508949705246193974477393738702434473314491506724454649359882192728130933507599272927412102480917239679701263804508678262445500971990314682032834574333886496997333046088929319659440131136643125701672318214254195679192065862891563352087328249364441945947581496496987978313956179294283694117004978379840095989660095047392727670223108210822687798890765455928359762005718653652288805325285292660504820605517730583287181373301166254734308507745182825678356589722196962108700792967336920127560044154548174516489670753168732440894974253765190546236961617647565579520485344238089636787926646610345989996463257666522208735582227474558864216712223739849809414182864437904625797408527272921048809956568354952944742565794860490941655743518189383877431419206378706267724666557269106675226375947180489421847975050328413364024334266570309458498228805334314901501983222908448099029579202272662492094059269872391841600476782998810226559248595483748038371759217322050525580092203080898053157881956831525856808559469732388327581685001551123524607423056335641462146400116990064805469614007889594805352043633434089847772775723421942403916858471265763801520751568006826985748950550237640906449284005830628828644723331018978150951487121627262259118829843047858816860233871928540691248875350286137560835259167411389340426040280855310978868779912402953195388838532114961266611110999886325165886097278938868673434660568886783475577956717804756890286570465368853727669676498782210029846915868868645577391367942220578841294686225374527110635588452233740095741055345808009333630045664141425073974969527656197118960367582658431194104798230905004466219705437517704688921815845068595685018520524458785586674906747433572062831119949144576943337790456805441267789409378586870882996137383614307454707621242527435672872929432382423970667921439776087796964463713539584444785877463223814520175735657388771263599819583423351298402963736132603742551954524251148966001135131519082219325501985260609324694117934832589833077213963718604803259501230452623022194593538861590902448281330231209115825299679289021378338543603323166683314419120894749540514099190339093959811310456358070136388021410608957042145998362194444032489828399381889999302933295393565319754048176132391073759622048957841822217201639701144487041947281140286325458889012796576996949029841531249992912217903905165826126727779711441925296477637857262709658887872942710220116139033806816093516969637894968032325122589434066633355057612758139955489085685231438250258937251418016814082744967825024306450478112691155746204094762501173239300608120029757620286859585448737160542237509738447350572243653555041069485592482543131894878853181913648271991069848957516097994086448041312500325720395129389141352337994801550939743910949577121715939496353668969428701704878904281347435867213755470401369082560894097001380864317281106685545454885351934147704892340474528842990583579488465215082738820375522357606969957022940606890321119178190171125278377125797198224637854561408535748434857692414148141988810272701364991951596503329644809715463588782413930723610818786427404107101786305812154477108842227772422939897802524079227324585960325349544687006172005702718754289959961408822914937159796439847723761522280778779365985025261725822622605191535751934777791377169339667258508541134734914652564918247784529607655990788398801840267808331327666955266607664934368436243184991809661540144421548018559039388891106760262564752095550139111464886759574934485562007304120459535034375217182103347744365049117897281685433087761592513599923864403926169439952538034218929263696308621616839436670589999774673626055657116814958745813399522322510910955289316317948904031679313579592890001022574312219196972630625177830722880672790260651935319746338886389075492133241491540626671624276114996056450036620351533146859778106687492165997453520172912974137437865706440494787626597488951891177183012811355998080555935592497051771912248393935490775371203792084409131019587776536503655223586755003285254627685569096679495062608647792312871984054278317478098288726540799717908698839642405978245155380297507114049759915288560697064850326370238152287985480859106446849649817628097964829148416800714531775632212190193990879631778231747658285703551948497458003994810862304963393805768778261692553295054391479036365877871663170688824640729204456054683846355365974570370454175242707183454126687058998181434965293482318365043315906901566130218749901723587065488607640609620307039844717979154941096555760370313621541197152132776828241824677384551754474121300759532054854787759644999347836393672480327948427993312883444443951936445272233158412570218793997349203316220635479743086147383405175200657792341365793051290816858175153825933211476497970710668157886615486385621165680108952569771255716355460546461055565684706783859636939931482342905728449700073091689763462297980297013241298895335934425123947812835745597774751712175121298784740500008567968758851577896796417842045689871430557622237451233260041620426548434916656831772295804618668164958221472523588761243842372174884065639535431887904905864455371482469849514299580414917322882169099891352177791048505393435948903545650590976679248761222154218611159367615852645116432621443976249495784763514251761846610380255018125883617775335800720701039937958900829100294775557911034519032946876668643187265092586214953998534822052358085925098873932981161743980159325281726460005554154066681179539892767300201967566015028489399079220428336513073005580930875531216059293769238768793954257421492038872229858141808681957199883002890485115289273421084434405925319209939029571846214759933021255073099693702058880352406324136776137459976627560184743196217457818031014733778017900407964566627353952624505186651407500839642191526863543820748694164249619544616648531156763264867428314399905479426811595023612395088949866492243582516011125641116748194693929970356809685927672329604078469907213888541478807234594384679023309460620722073989180986928602158227503003233525081303773674563054796466127448909365927803313415074173589073853738064442136962891459974694195043611873772310624616246301609880707959839148179117157285127197017469022992458623400742393794289802712895980383544927189800048419679661557051721712395657688636620859424920134364593830794407665140982403661578008236806419951317678636015846931969799824127541018488593934752273024098550048476813285482268163268664877305026023983779637099381482975148723387325080539103907613718453693478136859766068477138336132876021753321588810342673209725255671266922947390139889385639989781777140624380686457041281730951464748979216108711747257918972490689306281747695926472300059377334150851169835459992428972810957178564996674058054690702821643990703452706405908332241909109991433796404667128763887176628514841985623394079484290012707716878560771498786161355905678933903706698208255944668901328098521176834487419174228038982295174434478622036067523109765993082872723335232798767595504167106952827598174586267210660053931406803995635983791255225962580614684389107966323314706680585989529512693955890837886423204985112537854464982272594961043490983352074166253581883444519089149365754679403201525765262625014783672703594313818381474068181515468100303372150887898797095782365534724866881609862227157118130273244947494876116434162814866766861239214808303133132100914018939459095974355007975705716791471107701822408737694402514571849177533695615808764361361774515262014675561280947344258558931088952281370545807518920388547196402716683464494144209103147449451322802280487424339776079305847599273601612023215852961265614085958814291672124050883082192222247489347162578483559544092386770525478671807435883212255473086513909458625227402785962147391715358852733679535348690420431556867406336321787774089269334844861830274364514323474639507080130296621010251167467945746711152888371727497382122069586556979114794442622762899799669795755122360994467409650495228446714939584001851693573014133291914652931198984989406719624058770076745734371634983644168285714576568961943497044898009004280350378063645737953256521173698178730017449810359578829317050591474719860951701385100362207917912062229688601333755458423707449271408194400363558178701956806647680998978197028652864727566211063138283985926054136948033036057144702856156872337921155094163276858361027067889901342234580897234367542991444373743125498415816581406687638785739406305013644537787753527702130166460242677335766708867595894743792572972953819214243918798626233469557904534086143648937292828246898332511461029121392534053863634655149987469932009591695550405536988096660820739160835554546360010841121252515329315520138438131542584701554910964777868021889714481283070161157220809840742998257118843858577796463902962252111336328156240119137733866673164269417092351826694282089115750193817218889062759758585018386499954708646662100462425192454754050675907110665256658846822241346582997547658671387891530208518298804973640385119774155407913858832253242831868980404427030554273505577092330781816387720140267690937518334956650431848641213318603703384894150123113056636587053206939357854927211350612572415973214132339024246131840112301182667957017290538857508260747788131445370038918868073018192801571395633731678711325058076426465349146941439901498413294921807434773222187595259571396598415430014765877240844981356624175041516356072246768012289091368245743704573252085104146053388909892251134630480974842205480007320771604900710151720077514950545023523932645306250017197012464115335463647024716605486190285070337175608415291004301105254249708458949624253078667722094965644314705941037114910328544047265280577044053890745844384692813178408920667733846989483083413198048920301283744810611067382118965749692601075177881267039424358898773655948410896349077563634565678261369340445954853192641891593811984890000222376041482713416230674566876625956307416321378944899223916021648234366561973514475827474560562289941677017794880293966198893495920642391278803343596806840562136835102742458577698254459964351146405307725237341512359428329306800152316311757174641998940386392113744578234259320028975435363373910924805820098580638690486190906634999865693165702008923348465520414289194096887794045677225538756025519811781652325198436425867515450595961007798133035799842877825576567957628162324360204245599411162425432842104927095034151773557856980851709371882504343407760407591872999723933921939171395017955348034521130459644529914418978751397799408575077708049575829575853384973589410709470298578773043349399404688174905817520389891642317905962263643082710037759569666974686702417469656412232533355968861778806154232137342594772346165021298888296151158247770950538265410663268320851213669254395404989093744817822164060225313790840439879739702268106230651040310005933806439711839048761119744898899953371771878766896576919448943688602857910925516793006325964730845208618248916133163524904835400962734443349768974826387494276580854213238574887555005330414959213683103559620699556925514466603861076120779684517480160081751453456794974550381958034350574797016162579177036578295368370219997925726731922349742176224627654357897073393138341587286255786356256281654847022943408969451023403469811653059612324709684177211619935577515477928667682796020270200981721077016254478005944503687934488088788721207606600127356504459782082410048963286506455524413311771515353362725064868947936334425162753816624618509289383915762528149762797895378565561680702133161515975713664216763460221539370447314894733738199583927564978027687086525486255823230204377649699752071391330115208562730533750419489224596628142212175693765080496422414771441563394869871173837456167027943535781292771439587588364878801632469278834681745841581533349869786487237747208326145684731650969200332201250556830782058612909746508212101179976249944525617021667965454412151534109307509678584156818347910749903103802522364796937361644492168304390706590670257743891971903772970990510121781862940456480564405202658717337167802665609405903636803565961166209579744656532231763502959885094024321945840189748715335953296468833860102184619962879160932289643477532062430928284668084641935337976226760083673528339039524055915383496055830763070914929910944202215409548560410925159094289879672782570071200713953799004252251443355085906351417688289749489187838846316392206237370932892802146084677322143835813948565681778120094179009026602730895251847729727291502994694446246785056028198586390322605077610880921126115476550670939543629611119287856184233426872440001965548327909690574167914380594398408060165868551466425584757644259249902828390643957372269438094235937418003551243920079539237019033603951552754464118407860934986477521176413566118237678053696446963506679805915681508057116754595867454663724126960007529889697803583332105870004185651117193044474850200328383186952088946206869011188748257125675373552897028873807728580793110714560628999244616626599135386448403140168344937001822224726839825454999422482524938559906703758063472244926375458760027931332898679016351615216056093436457031447266764156618843438310471397844592162591208496544164271250158697299602000676114777344081332257024477083694717192932105644695819197059482628372880751951278620572723215212890224181591776718831477374174919299989307483688621095760691532107056204310541291969957136208471106218807715740772394702132728513412881353195671200719935479676376670226023967811071305230057317942091108080045949327331008628031069993727945362150774302520022866760404128731967335832634815126958004556858334495394030041396907380526599621098146703076970666219698982806232223846300681579408722476811030512458864491293949128104386702888672710206050798525751112347754879353768965629020011589038460210877768144916206777925563652100121594992160070066806423002565646226064133561707883632093952229058173763015058871823423600111077393265630706156177328066065516765922226588028762755135695458893411441759827412526754159966914377350181351166119418380313279707527388145992334534796876401664103286623993415949788369161155437479939214993118939730925770492309550101321995761709382789876012890892878460740216416167977959308374058840762178348253388087660946273067071969358674736983591692424018826198305735363423872536516766000374918574970954930201554031003885580249913486173645016888505002217440925384711104071696164840278323404175022275950779124978662104860145351675611837014359546877906021721300459090383796318426014910173578233362204685315703342197176832390910986902615145662858547635350751519054312707163039519454642571932842251843331054883415425534719588009144067074378486431523186716765944342330783903956488489129213353895435178258453828708652822477111300036500985375817266434758500435413351728169754142546421203097708378867541845690548284551254654655170924736626867576846758165479744791350564391934426418799140531204897536541110664818649124009126122193651027424679230078304135313430462394014966566640952169665279453129948233379232018926454690366425145274090059611586273582201024417163173463117615632956099306225238320873819999578291116311256828671970371390624911497694065543545555548915500802344573469536082139951067905984911284242512881271316995798366446258023895725826262254647554235970573159751875703166559067835080624138766063457071490407364227962826863991400527571805169509571960214266072099535396310274383523342566058124727617150192218396154989274891985668630480788475130944314524631600749030077159348932496744167663009237618767872789678863669688346695529905861857975612814253662442557034030251695149218801754784496818948160788956618649880388372219313867250586015162882325911982328980209952133677909694659559618297126041445777254743558789965959338691056043575872548601212777172965166418056358712014274179679791416352650252590371959850720147762826120730087720265457066343042248523435795293942342689694022425340475871996646008153692080792768399868719435310540279505425565644261940304620917685399807030458443767829749705022407136399043066539325038309239669891306229405824919848990790920604233498131346165617433424031759670556171410676843263404539357030331515142411120131417266492985019487025364189674449080047226290870491048774129656918761766639054997745741236042781847655453198210292515494526380687508056772175043459494501643950437367113800251739061295200545468051504529938998016353314363228551335054251353554985414468656520319705345357352956774284924380797536649304298443103828811713187247364153745660245943241381504938178119700722141137707805169436206626094061077340275306563086522140318760603165202359588158513274516106323186718290179840579734444719817767757179050980513125288146519820862196790484479819379424202605391651584543111061663622208476296744585560077634710622139092255181951527048680060252098024577211577542701341070667283665771139381646922395186835808490487484502952995189743540760567171564335488549751909840734415898952755257335946579907602972022008768668342604440268293031869870458849174869866687195284352868656676645426830352730560234964884378312136569303996986423441499297451518117760008974427809344648186027269203982498478280633982885007997751658574453644628281382908233611392019201161484934229376694071995250831507387028415192130993333979737271158358083635393223264636366399819373794221759251835973249742220552605946263703495250692549249540685189219688600713698664477259477239621881528263643941660710606899130324099953735072601279473168778411785558221377763158322485617909917785698706965725697480598431260207110009788444533032974273671417755007048801461316020153907666860017499958800627826253878586898790160772716879927443616971452219634076324664970725341386558945030554714953523949754057790643968865535908042323492662947337656627141154234062037101147511438459049500320110723535658017781724593247580966666917316878645954426210936070892873058228982619120201063246523684936220590306602714120333707026900627100594365109163422074802265551540169344394733146911774499633631058031299781033589040132718741023922905757921600695988256466243089767147812292849919034918094331748893507176431357127196831137763636368534887796812361140594374835233480509937718975559141204597535666013315493249099599546451720292901671629051236839079354428446535441655204913329415177662159774880608338269882709057380211080806231708623516393996101475643674648758394822259842911085742898153257808604175586230056350494414351244909384732276267478349203161113514707413083853372735751343289547225009324043118660882886625912382279416514375086193030346400857105990631772552021233910383986444126782904755350099079521536764977669335247508376398705435543448825898950904441448647671850957080567274441533290960229911950103870995707567819328975264033772925740756867440650376494665599345397190279765664754006044148195514743961764546997014812480543250474778644671362747260641584475318947243509873954914553064667977126032418724834960403508291334748085358281701216720789026531374230947276630874817700417891844585838652813724515883978293330535277239929589491349103267404304175994440992662444850647232587099229637438636232212636926025130025253955768253949478029160914832675650856118719846828930593344343785230705574581795417971849115573004441905207104351675243435181682832415494117556938304604679780617524512010225955689729044724295681989819680835368047878441674031827290219031893167365362110636264363670646327458664384766074315948878615365506381272277840722630599229780306578400779316352527976312702282301746167060047667261891304284304668124636980979064666918458104666706541564911857868503846850986154206086226297692803031297294518623724458981647715382332408789781215388564037645729282699178391936526224795002630632402241287274744170345384986630229660731869661838547370420288398408167801640135843119783473620423673859624215707466916780732318879886989667220556953501792011841825381607135488455771493169030746882545844621215502140701317898513584079973721281582138344228306965612675442670702848464528254413293265905654221518970103352776723532036967234550257533312518556477429022145527995867579864954123349684711235970146748314880629620312434935025409930686903155211905218186885323099407952049415559535926348769881678116816821223575002222197214465941897674249292257012272951616587846095088481558998628022619111871868721639970892233541457853461111409553323396659229339205688343065391872425565620671531667984768568015066540618779367684958530957209433003616916455694710825313799328358917133535910793792246504344894104190050098445423892694962023748522752717860529564004199729017436613606563882397684680126506576336246897977547061166057257197251172486327684579203038266279720943717984245077173025148806882007587529579937994728005002473072598558901830699692340607125760130403139162029256226362847871921463706105276525543381682041537028092050699942222963042300996197730984075418855062837987685622845159975792514613951548593262563985621265102948506488897783753439870289847741561641000329041424214409197564196999427870996459157046935297387565512064710122565443259221691787925525415263898092526410592109378267964966896246764347895569877593178708984052507466277775729826822476216438487515332973462493266380698723143655232677145988480504927237930826042353071404055847443902735586835921926791795848076167645597857655846544848369406511272861152490231453597021506062680591269319253545990724823377954474101885189969223266159523280637001908880562361875286948703967001252376972480469815738561838064072757255168662536642579105594946715781575407976751365966200415039126174949819124995626534423111953967583249968379630997236202161653836891021785438109603580097841553440644594984347251520140382640168494124127974166864798737111608505016131452048872011940110336622874106905562175769408138745138011567638228790771102515167235410805766242560653358592992052154193066949838706129413485734630414620005875261410462818558665101171401492135452281971209906265746543679226681578276315834509960028582241970878447843411138023581420206168660175112809334500754866315221383132450309373577522880750063858918193689658123229769032558268439274287245887180091383359439861450063509322307367460789694618099985176970330127725141499576160040258361629959574525965780718293953486390925522678707572940023032335534753733662438198634424890478336979631910330524575515906353120169593764965521390357255705420786101097782827869905194465283753551441762648145817966837718295187009686461082736287284020942444466750973951898912512910248460646558073050020980499162970304434216251597826371830549761822928953972513147320615174296937536856821895894613102625506932229826582059621035239080951210905320847365320265804625217665899614426109191260497461090082779343411464708831844352226375844334688435205338582505642645700014987967418222846439208721506306329433074447239831467619042415096859903921885769824933040679177130002762084638814206588816133889650200692040665132451053549763127652863810331926231890658943258390999921937749248772058606405188533510275280595162772975312265612763891717029609368265106141925519069494558317788401405928869537485906430628743667868624843126489621887199404652215226975118796526372929247825734053860620403354327376018972260572062878476585553441755429695816424856211749421952201904428796190750673357862937581997049185391299750370176204247365051879114680980565109028355953454160864257821287893410828042518728137636795668487971570532255972746569618479955834706593331054610049989230986741266942512320814367976086200278972942097059191741012454741283682801872207361933239807762108449624494595405911802587900021121696112998522645269231413701036433134787237109398808641555919355295567694360088881299214392363207960559507569400985577824633662159610165205726115878170672556944774652577700619845835498744552520242438176097532204668615369830845584707726114450327697781380198532569262889183382182499890631442243371006132585169857752816001983043882175432880404873175891915689772508760203384052137612788759584899255934812396557692136335131306423904011846482277717722588948950738939288463057491427325912774601783354145717254675873923401413851006985068660776688773051980587084572177980139403409997916206952516183541681350566944655397086397689744281299586159050376320296897678810448631135665531408080492616559493070861505784412961906269443204807298387169376285081756379026132762215613698748946004520510521172427343256077151810443304484735814119058863471051849474272589259330677898807738414082832329675113102774345823048710381935662461572170773143849802001587897335400652855352687473203186334105784551767026891845203688207369204111697525744867105897765076103150362526700728361853399709159494700975609156728576792273274112274344717074433007046975065822581559642082782563034069869450262703103740672471578440111996130259189424727447084320790629447412868086276840653051692992421552645455374954895055646707124916464917432817634407514358719010591058686832459850566779448524208691783595130179644584193149132290978892753034644826601239500973252984767064386884081887402974058465033367559631538445347046399930840656049236249874610153259547107599215551216762896983228499622187146060261398236375052662775656292324103672953774072560513128235737933787541046609133630841888592873115355582145847266619792264973767022121692256763398704959561407979014488416825586318759922022242391220596974896789900638214368112538424054196252629660518290736148152892428035944636790487974184303993032559394053339753470292071971379385705400295591266892139418884271939014324148901680688102867943729930248678804326298278026206453482606364951572464844142185646713079562496559522187274612457101304908827327615102087866534088483710744387524390059047363906272377816550884121096141564692088406049223713619944700042257996199177380376856174580411767614086073641538037023855797141267021232350445847438357555616105429066510683698714892162289751316013134780880531484071484724849405307562553892199129910225416944946194756528708882755661201394821608821136632719665615335608684624989410449047707970495108649029201839919217691245227442410061882980733902996447998688746153372525904049317861750617508019312132414984675756155124616551833053870700099787705648864915133341285523517949465646083961422798799572605830411356674536153824032534524051697095303479708652314629865252897091787493741062041064148685339027656576863838957356794816000919409650721370391631272171442783746153795830508863875953822102227775304145960674717230906059097257012134378492825724927549881865951131002580467062158937773239403574606244012615934316035141524317929048013053752598327812005949420741772868311708123834425219598131206900250215106351927072046989386329195147518778493285231101804383572100885408505737880278181032143036042466301347131461808751769721835318058812481501259846903751046763622557891219139444772404271322207609868477608492769768433878935732659071689005153867899210892259223892187900672560900133548169056214586652055671365886600260789509832309627161577517001815710783407854560450703493768608071808988674201248377523361798704762968976629252270623034877643155386654501771042938779344177494409351383096352846538242480988061854448262389919627813950203837382432301042097786710022809692983354547563406905571412321124872424237989147638169564733142309598082860414848998839190871298360216869159973769000566896388535153563119957181605471024793118151690759554245891294364358142051013956297182553154709636095933158588306791841833068494223940222415028334641116278776775742722643261601690359388741766978615144419412857763646630357958875088969105097083837428576169214130611777027361309151970290828574674138373266612992506347882711922535153047983395478245375855789392471259710757401819938578085201026423359440066819794034009802937981035120795966630064027002769209411676343932531456444654919661540757689782304930007337720141082561843744381336643948228962269582931139359339397285502191932442256920662076750408640029719431229388055736047816249726421021949131274230409764485543960321778755954904786956330956653209262836601054135856444025975926312536354029710817862162575852990400976638859347214313274124880438950113425172297203821818274315794733373412374662100855890096751412585118097255245085367683562380107979036448231247456547310465493558713528909078057425230106002045740866704004594679824101236918914123939865231037997014662633167039107408593040061410538283330475914642284272096355121400653731428167374365091240796435373587487830690774019796417767878948908800850757100930902400768535644455769400360882231602748044843938894715901953171293680396706634054719809890874650520695436360637925708273144045179114120504353909048504118020129687512488975639255349903617883495140409437787874323974558934003015174838398614305084833490283576121257081381269047773372873388753560385783109459449888065181187456541563053015189776925222299026777427147835217373426920846268755079260702241840893505472410786264056384584274039324370465792950232718163779672159906501268560187458190588047308412462131558297905173716039603564796179768909977493783857365182634837463104114318073742238013373971725629849069519621382108018668954299398666217357101433595477952115582148071246391482303011057344465659916726723484785627183391605899670690958950162039497682537265493738745909061255846417068866691393490265559273077072994240721378680418541097726815536589235310013820397386345341624656801688416896689204406348985464668313985193193564018572598134590599750396423557292687152366825393989836798437896506857244989420042978199312332404488217467406943087900113081629117925025637477903406431129841548772051126305860479107663036921167698206001542677377552806018828388031780682522870273248340669074218689574535222108182067012096029148969894774773136448781954903669742089781665916551117860221126372807285291689169599941904064279343551723506631866365309465930155540328452484381080946622640728751236509740654333751709867796367053816901419741579665390187315129826550673396071410951679003289941721289869422702213124056788621002093500606341197158331094500449989017994628684808220084632214415202804407039552583864098585184198667967215819045415513503041854278877662966509113015361173454039337983826624900179807635992560737813458445116921832941779538951575243395513449879240361150933812875519498250420544896196143720064268191823377165487342381906109747666609574094539171821996144263589618357051939549546398074521202193812570598939340927908525897278612032588044382006334363143081435091994065990788147185405569484393790988654474494164825707655576053779267846480405459506390245670368428144018244029430750907482364982904882457955681113270914526325663238193196145748322444540228344015731701346895112748359285739383299419269780563197509563518388043397725312117250541275187571175758674944062764495402465555837647604203494503730739069414830511535457339765304267670845808870027142553577101350168861076916257387514538193072843092257546584518028494412531367108898246334423125935384609903418464091077200295389143131360657107813351830462756126347250946185741765610683718588553013667536301185664766896324580216417775799969984001466978138570744014612085396082660605035012448078003053196140400323527525776904427194919752681351621041651699120392655840861649282559888397696635849289085532058884389746063911331960181828887109891210932505140635913032706425341056593535696509643184909141894200449861557274147505632103254208285460385200549366191809737188501921480060301438274700126223467905651094720733115096084883536882756009551775394833651286664742593171789217042393711312145044263936453776883471340802839004971051907815888570814950970072713883391127070311286076118039557383455538810817453291907896389707517895572147684291594732223782469521825048837922570724427207684883192314637818614386690691001251194857471144895730355193391097834751252135293844103309723253709966900960098569533401091608643274843631718118174749718874458636044006065300100119981173397555826641311299884534241123386501662817423433211705895843936065087659712358825477103348853053198068771765818169961163741003585509103761736977342617393980544395136541245194643169132925744645040184650296595176470703391949413992865218161022252421819588152882675165119343604941446579799736392512317778025587429127911452681243009540950651559652862127405260945042587608654288488019014447813316911117935940029541727072919550909520713245420047891071309442971784009478415807100577322582099200556443928955035098982130624439040817613710446590113580110938766775629260825218897711707193424283594474466613317793954488983323679543357999180083537769014101621660187920989205126989090271980779645972813548889969937941587755260686569664521555427660443095293104390735687018592943228119567446667222775952394695507351384394619533198448343683674488375279835424389110408547374672380932280878414667956246088992198510352380312129288556604897845785869341761299975980015681069604509380435688764269111833644402265099802882366539615708309352156050370647978391615027411373828507358822995344994327002512512300933486303052580897901930375704153029637857252093348723404216305878289971446055732885877940995938486172257561401123044572303266078779493520017234933720364119384465612677422034484640225467069056780443860695883635769790931517498778675105767256965054133354642782662704544238667282141609588895978815272534557548788673806921590548808336448665199999188912189786750322460399143407723745043967742697779487941817079578032358889532977651586722052351339463345939564951272313033454699532845640895012622578058630625885697132446822635612377883813411454488551161947038452681685760212353716353860221074684523262873897414915766197697168568727532208947097187192520091760326967774477349600020772043193783625427278882290260319808370580915144731234158681617534043609322163725530816740757839623091558888211710157217561426150894090570253437458806123362081850199596629106075827096764120794985367742625659115490618920354901356566552816404658307693686653133180783691964236744019297602644551682975770137742199439806914224269414994654506533627762572666159499751067878349445062882658801505043103658122678098902463811492378345301522710065702718427466932793183178799327705086423729126960837950010067953406978601112705871959291349304527048438044602363163179746606805799102817269051239138265443247624627661924243496593511550158901937269697279177470031736532084717868869731953256024394263618443063650315814811063952115239779283368350324994330378970997842050704930398704102567229031697410394075868121560364876797674304159810648643349117448401599533242753899111235065470509887660700569936340774329990058684418004590063179048106774547324034647181558170028704161798550520468909255835456691888550565853669192776084188492082238060077967886700331619041348733543215814444866368012102277600571662085568649561644447055782464759437941815860603411177370676932068208063607745037051918075061699288399588340812897266053305526990876621521321732434413668253594711932702942202280763230069413848844884463041970569162966923890075684674717624082002461538405721217055099812157247591421300738067733924606112985236117561545239202869971940865894711458604605887537487168509222216673180889248145194227027852060111465754395676605434943541972814203637658430736953319463340319522616959705869146660609173589593791668772163231832429525188141704461139700382576739864422519708150716109085727604862279582823245967736017855967253271699543228944004841513351731382747355227208626073664825610958778426603455547382155235054937206336116072305518181929615885116764618221077065842317475249304457645667403464680366802854369812280781292992212496055749370857857842471109288065726485471267361091804918201166718722927878834487290613004811538551961157077289683458204488919040396461411750837680044815874734799133309535073027926490232298260515021241832991006571270962915479372878732976920540545183260424104065788791347561752024798948944235470487913192452291093932832544761691261574027513976359489660931182580545700765712020534862977357971413076691486907537845913381050715031559389764552077427501194153167432681370867602986195300844757641290547385013562473669696060665648475591611655707957181357401979636242354511276674798934697034583117845831510265040649880024565209959461018296315819405872491236217354164592003215659120511153239566397152957133644498596861555781894588962989012737148523609115952628015568788466334273329771817736223827815141963197871994521345217590064311690321080205324101585223746264675443579148568299110047371553412420016584773075286093413217717558074462654091516056741463584702199446998960646701951479818501941455360566569595515678686605936496779618855261936413239276933614466649804254180256980888382690878348017546896843402646972731665863282835906406038829007553845913684098313750713335736550194250046159856502477850801875471237268326324677678485160395395845274387496192955465536120896110009331470622750883340058816484822024472570685651022147282283980735036525811923545379278291654692671642675207856260863659673024845091112547649944192814825352123011881371875727698106866438774225236984122131351962048306074566046763761730181023665923831375786424475534774062841682174132517109174568208483641927285928423046444194109925385802005262821741897801751815776749332308689242205432765534672684059271309093831033096220472420077828669277468472482444085858735586040862253648173197773485644914326689458791687776263223833038623211542923490930260562095326556534997568598464346849015614382688661081778938007533301391288232444260915101155178480913787635420238081223292134078987820546151044824904143175287944075114657157566364872964193313920064968106963882494499705474838388118937250525682817504188324100338757728618506339777597210568893735499163902927505157063428565715777294912067949247410774384463594225717142359023454615610084829931410226730643478615371876561406641084874232149825550180805408192274184029794395523823935126524655471642522966168908816051382996530793300959476235267713448505457898849247129658167455667657622408305809524047316034565274336746795607132204654200884661484972394340388297641656627139047450064463807383568625622691745043406456820307857657095685076260768680290535921249847524309035475192203472552058704141951557903778922214802110938880599869351558765165614163041777141621583220428310818722355724191976661295748239138137335378469220928109932149182469358580035781544763641604090357207583231705987678517594965748923891763326720606257831277937347547460174845931571594948028809486814778920081263575447807118823188831417236990898039794345645765640259400756624023673187570840558590394048341424832154506517425716103716647672781884778249496966490621595254030857573157455101292320032541633084416088770435589940866262130922696402180432689857552532974085453525421011405536576407368658481481044400195893730719964260842165659675997596920069591733042272751867734373420484886931674406572391380538472667580111066064701015738674631806300671447813314638792995484148658219115523374098576011933501362378840968848615958179036945270158181910139705845495138480163473191403006003968290384577193916451579899195678716578396542333463196761654126913348480367158282279527660664453874767997148082033388424590234076102641752016592562527563916058238401515671226170452569547752205476696097030019432016073357383279725626131909869347316662189991606792751148381233495000105683611499396881193065668647750890204453083511465698670302824338651691395232595453894150538721557351553976927856146077555593387920480286421168051557125024163327505761871552385505724802835640849678791897088991704587816188751146221641414595761670276464955264805119920624273918457264799974684216652745226041405481824446497383141547693429975096713871421927822567164550958550860265057734945752008190338267806015543471927776586242045150562682571827087386888754020782510456049051895233812261841730968328187138974592359795465088242060797100703720320066452878808843222171838516928767769356708139300138136221085086439349942251119612637057208422227460847833774617051137104075418892475113394900420490612514484635278961345850764429456951279601327354358144288012937386798346409958798887546300198189763370201898575698562226727853900938907686654607991872742464223498010725937550992701657633654922390542070686905098804807619690767919184282349254354447464188087132195795058279631936242845845139165736508046332168615655185120430046645577752731082697467739893340270498837809226100512218626551111165420264591046574731144708748405202283520168873345979250847389067079977374592554250595958227966771507776969131309763968629977441935074647539999944433774099602451597269298663411490526875688558698563728000257380386310356611836007057163450291308858279253532507086187034418722922770222669547329141629854486251235313214316554918756185582766243764264303249991136037685138599041994448024285223214487176402321691652276811286694010401802003513822384150631708138318225387004016857601193525830120382572921648159004975968258472070408338051409314935662165374808261243484502976059123456227393194680415507317184394809274037047074980536952132048574628694280743327817972640810437868495772837354070648287944485424428874273512647279825934114656054048114041669833859451931739405548564097850046903741388079108967445293244803733373657685048669865177167194811685926036320674175551278528500018595992587482643902661997686817314760692159224140183565361206625668131488427447600865808310588307321606322977179477836170452987095568636277830696926593165022002560360125440680486624793010913853397362100294179133735018376292001804718542371336506939164463374484609684172452225352103742508047296787915005898472945397486275795882192272961117721069470109746061373850598413412354411946102495995882385316544778334138809991226354361959110172681213259717179576594483688071087785961425353053496470517265817180625564621411738872736815857719669492443468687536228433166348869075864497226036449020854904943110099380676578834083723588660411020024527663817525399087845855208924310425370716490566131017065536143251541024126216462513332896474980569013836436359361214224510473420464546592245213788843317946207890621894419730481479773906259106115498297457903113531304749824488962939593368762299950990601162290527046223535809245895966355346928409878666853696467761457064246899569820740800720496522854656489054369292376681839672395297544732600299222437123115160188051144572096408016761741935729997702348911032357413074655480236405299759047719725150332901667776415649292929033829914760288534550889372646413317742343653568594639094549758444181350496181198180044485948719949798497233030384069733175649023245437621346747436479704647600883667148714174323183404686832413698065709036353260128928401597712256895699316257888555223232967821107072744038051461818036691666217108169426351756162809046330008953400328716275243483362649468445607124688881060357718299184007732475693157393281128226595347627589483216496503543192372715548486171939501388718043245387069856984596967575107985008021563625368171005343385018330162140490768318954965764901690153621807761144049517060783803229224817538093979962941159361247011585217280215056739120995927821341397998774292790518162325120096875912236091626956518097599527910012324080467044127093378452713618539690252581883549218275225993181671701182785177742865818286658167466478117471275438574265452071563616475710705619263769454321249938456268498653673385855956013226451824849113434459793780125668099041984794846412269119556512855102624075664223018007635242309541665125684145286124534234261582649499587350235865201129612730699235037817115832261478658432052858003281074354927422221852253613101635357545632822510266721892858277025677592112051819039939402299146533081678093379813521918694506440097950688475399759411219691377840566267933203951588389256005787972894567697463526037126725480719029433725193407809782840254793907318635510789060493344363072598185539111406806369402478711915048352751779191071976329870386122822569452754310228260625335727178905713124719471966957264586435835382292794402173912342987133485771908772978439954472958969110745399996479643088919477871940876176752496337404958320219861046296082522330980346635509049539978054058343087142226655732707674808919931605683734002659288367857499951657744415506792463091483891447755337509416154464170237232693522056116259397146613825464986331031501409049867156215039750463797740846008709853107428545055733382915551819864442131642781820086845135584861884661130983137719517637751270835067895565257905948183825113889175171274097178431702812063356579615358257112741487264873168490123571606413931611562290880475527391301483242216244902541739105209944454412028742100580649267358848453329313918757265850810020308363221299482064379961473874335705052069547696876143239135635611172055069319118359560687836645419715048877475530813143597813857871069073571645220152953011354802428703376483927092421045732483970190356223498255108092678038957803327058879676378522079256711715424395590404288146231803296758317406911282324558779096555148186733110156821104421709084388571877319995621858425928493091861388622195986906082973696938620153253786398562060739213283140353016784681090611408856347780493976864251599044512036255242803272669137058992850007792805127078881598461735528089632753426135980037866974034767553682966064968099030779367366496207423857159707191939834230901327250548384905790054654721196929750200128548177720251420713679951365338354728544398837585789035508459703656692866563475347788098444888260181427461104751796883618154697630271215991804560392365654462063721787830021961425752100599337801903677800523655993844153379335730265969111017208594996152456216039995203250922890193398558727955067012220583187719879589314151595892819673429884801147971001174867024359940196600266363208171590721596144554605210213441282771309389799128072927813673747770885031665830038924988123256252490352769897729954646378368141632882818933074288614110016766300965364630932120974116761787978450735056767071373129154294847330867149342145950204021414368856417136374535543208565434812632177340089584310314344727470223681838728454173103471557731495001738378327195327548409926211240538896014854036002917754979585445753851798635480993455283683029751625179111475511947758700412513166538501722013718853994816093714376485957216815506563596376276338558587887449930603964119934396558662681679564281145987342862939399090119847765665142236914221400520447376007417342542646764363365680124038345371677587553046277129980213383243887804806985467272726507945784873156404038106678699259443725455306515942815901669996756966472930669175395055762609922224557526024752363248768436413511605218923470231247166613074927040502159298096492976380262306793243493632725250635684100665505053373129430960430508929741710992226211596106177010223412020322427360683206608283512706783527915128710823373419865051880542981548339923920372222136145764158999447728309718728951275299850844024327689610796829927954550009011698335199209326415976846944431432289931118289469571964422526689897718636893544970393439318462645837343144253465413400228910607940166666139886906514462987013336206411662105689538090875919905744024336683902233911884630766574776913206235512744935987122346075155874693709047614875254379118686496945164708135775010663222485856952835349618566460831219714253120233678844847844934657483834878309484233833076189975078247903879977676714658008359720092623798602724429446734834828624962950118659931241183584723162938713595935204933551595025423004890532084375670141586693290274344694323854953872636939276194115732289128076141438611941511876050691027733192876283523535093160320927684820344102282632560731263326730237921907619412719053315681400078143396769566399642935529656752625982434045821284356590240925149287773673074891110384156245535707631239608846563330165699382819637942164706881697814785243770489876449821451309899725773663430315129811416583485352157684331541301089451602636918400899696299138266741690111097743088393758582153318603901872831350390615256712219038383326096088035923141989848734298765351649853492596737522526249801029383120504028319921222238491263541876775024726993880369589399115227635233979400149243749692869874980787353833997053209287653470880405128935975643951179549867429836602772296258350042768121430217952715676656423160233099981582608716809729213347231145139832855064990231555918071915160742582910634358887783300636179757424661653697012696705178487934278943862383936165227448869674439421005526810696730760452205977309284027941697554782089951591859160828406489527024065958450667781774630593321964289894592805413197460177913195298500479338368539669073491144504637956032935586586841428528680435807421715763711158608636089033120827489666075326780983399092811638523246391204401824979567284758886821918184206560636363801137149322408854142939078587524886413236185364254923682136727452266114155780072102263427791961711827720739542668161359273738255168935406811482424171146276018429289964890739378250573127564954442329963075239541760269459077550163172881966287852677125967558622524168475811059540984657389135746439164362475827742400235193784049968443900913877409530549326947882602199343395715705354693937651901197118955900266974528836856519964166211841616888802351140887380883290471889857658929282310258538691388418358730693927045880170219264059992119796417889157447223889076596140548324100513371551084161572794793894101037753631849558389997470833757413116583292956137848955033660226946141544269353969340616138840698141703740508543298886193010026867934011023123204477087474469025064267850662959868006385559879833207562163318978268823061439877688677277668193412231599981453637867836401912222339591601066895847704911903258821810867173472649621201616022509946852121590746231020926072584595969613589804559823825366917012682137918905789789201478554860886790306374810265670495273628321381200643758353450535454307351689467750281477680696272563901321776581912902213089339256685131667035452292747502570568900602496074202932271762824509742748735262306839472081541070558671825235778625601395764032464007874911140899377212335131415950521951406846497924944429483990013603229614125357212761684306182839846406397992330294174363019158951775701242129599242789253372550548190689287744891257252600339224132759650860376207835904701655187531898201830462936796950542065700211424246409777730906927164435981867477377753318893027269351451273737395994790575897535241576270515095044168946528939257753661770872360735868901213969582165902588571646183639920081106861968294765505846062872354944088098749906409107910555072421789204322933303167823397863078383494620971451566481738959913792537483411798929163152351758508082038019614983763820626820270632271447076053175335523599909194741028789488929900058036764377601812568049821091382613540100243300335381577115351284224426024707779038386479471993633882090712228543598554230713296576190829978189567773771160755029293305523380439364739115660286106039345571019281538036949294516740399654082753900415284858118911861377975721254054479395629803643856223885015056109370598610019970986724667522445091456965495870032948812503420497986541241462723040458322455327972719611865760054880411925124681702975467984845167463702731842319997400879857794147026578989160541284930160200934046906540479949074472599794013630222215119297141834799713273461177063290178960856350412951542444357715250763291507311986577262447831523347634224433679628583989510346003773126820247550538661179280386748272233521070995652374681885866785905295336152194109560871199578301906671782001028233462068463990265839546182015047988756382510106945732870280683399008378317704899388081910434169167001033909202653532556057130699969220843055570902758087206148555611150367531489001479184430459797400439945592103363374145345535564300358650008973122472060741868730311281491877820464460972781659489300955924829681437737658416359068026517770260347987325183199618909531042187242610029774918241534482470946361633663616004435895325474045105917371510362845029255746373630064667308738625937904003136194496434996483523451604119092038933498835118397748741365799008206183179456631743752969575458323504131043852958690244374327087088992160918522659120186337790664736939208663820023241180812153898006372969655648915927452757727222472174049053712332952118004700924656901165758536284977863248632258665849355436468677820725221237833472780425606812154589320264121419736218443842890821902620846895908912770012692977018650271680371045890913555303530998997945609697994298571042492537297721205019772856170799710767795630808098498049754248052750146085154577096426886025777814656079361511141606166768262145239309358784591305624533603746348011734872532670841867520904526575287794144761300870112260228678611882928358294639892151100653951724131888902161606563003285382851941727280554593769646331618896772242755950627985593970541702920880117955030533799799033141829086813179988668391181454124295268332586719239479218110245698820715840542978247253770212851229617347119436614812542026202217075370718660950129338737374373546495625723825944566624306350211316379414040575716072055044151737158817600381784782606381596948698827514770143001381307511418126520832377972678088771791252502088877019984661412800206873257039665964877270593881747337382571819517962212016971440419598061658986489832799966717592368015853546701682028468829350747274890121385462829284534274063955504141901359053513582907024715965487539684440321427909084814831144098907293854673562131618424263382118024010147297250932797012268980629301955265335220128915417161774921624792903442916599718498739035791991506778548351141999541211740150094648678419555991555147824441672922069606375373333498688868230596171764179106206307285866557940292250439464240517402208140719311656874593162379617198346105988432412369408694951489006345074327594970997378085230346890193188988291296362038971110792690802234877441492170407918483645291300697754367952152977741728944913816150153967102390822676910663343649187627072160835932036798822108858483757275919632177572601504428484237113762741675841040577579879153454322247159641758881460246179041179422896284558824777790236419552024187844685732295312363787619635293003489259493748063502142111480957966931236799444247375335345768743565045565565267930346720283303587047457771330713195052668850992490073899068884893488278027010528307821340446087737077732520918701953776957714182042562528815702829938709279089907667278249638324375201431031053162972223358196773424792801965873897296504928783572265385649267449279053782419847804913704446454968382822799935070293452623461008220867580049978995097170873015392155372208375555106610833322998209180857730653984490460312322826325743717564189217168862228786339057205284495728647319837025913639624281945832348996784668395326566316692588895206474313761221886370690379666150245680970981496071236021976998905595429608836785996036122216530081863568902475507810514011206449064569580596985968290552272003804795979369298455257741790398526403195881821350060906155931533294719998373513134476608601166688380905097422946513969694561741985496325029480918249734838054987947426635421447936870076442070855792384198905910407150537478900445481572735875508609774393914107079121218449069437829066022790573632865107222318388614339330838361801840970107341073888898461527054552792998800952710756782604449522082291741957566175263963287050528125668500706046790021532572175220741645394234201415461689905519333002065305333437911817138412872734149820155231476420575346154113760441689317169885066164433301336511636679404648124010658195716232763234996800432241117041012692739869741234346199809109455788372288839889093124698625370462911716282536740632164189574219731102324781081243688471337986811155880056889292071042620509042000737533534304461947189755087742711545997307134365139077994792392470469105913955978834791454282529871877064986221070079754131338403328459587974411824659341876859452081944799357477082532982477066694849031837772719180687215064321483503576744507859180518267312302259745010693028046496148789070631024981807942335545886559602040587731832934939994935158661108432290368458117908956135753964307159459084820353665949948858389690429759377435308170760256139764587435560150649949860611657308809584896295638236303850662905415713905654951522944534931044290780215343544693452033584481324298174403636605644757492227586265461587687778298110320369038265180019395138660874054785596447725213498376452050297791022660449558647296556016478816112857673729586121888418953449643931153290503425967715128171371818568732622496219563946910828578634457571987666695382820187319189604990410181662097408100869227917162225033787728764801552713019539446067528276027754948573813515197829412767895053901624271735275875148627571701295971155514962808737998891842928656772612328170667370952631784042409763114383652295753070860447956504321972347060039444494215272529256596765683728082438401638245573969398781184509687811774663938383584081988162745990604546104559482157639756793458431102728624635558158935590986209521283755225851837451729634996581340071733437632678249112752164721900688701258437239219557360734787575967987502373607566860689559327166415211507544279890712859975019485802851601581336073885412158471453185458884391325911436853327024569375840590599623053324347663225901477717894294061647824175946563473892834498942190588028846543087734323481289806583697458290276755893568620223198570231690836548154831734453616552885890208840166108904427550592710649740787637350649251444120062181642953377709162158478699744289364221560807848210355590516142159774466310968028598224662119557945397562834180603767804469164669305299653403613110912984595066439701716183195458720123198253906083233715653596855761851569676904185277358386301405303192869397624845131181017318974292850649626869838546713886702553474045259906034006739402186815086545097801566471336707664257096895034196248495026341134758374980373681174542132114963389115164785468455883075592823558133199362994661349683941242178019478563166575794066237181238567984425963952044354338992132865610433473149584330163784632907441885654627326607312757123668864717615486706903401372543361650063401200746911246815911733766890621530852503636511325565303602592013711004364318818558263671501465732718751271095729336675817208884149999411799097336518655896540160283892073016254111398544576661287256704437198621835449711408365579939873020620001526495095462597061489190286864568629674020972924075887471278264806551757005763279131811067114133311487407835115769798236104475994810961362608747437088432436414862378383521952536988195084280344572669649600519569532182073741850495986326868105198246179334617490639230059675803136859376556238361057010336810668480154094118671485816399878855116140819818876378963055518440962706097103272823159058279166068220320037878337575667714485183639156898030367982789607181856205819281129653644915205254521120881925082225524868937028985598600063734891390877265101004025345659952196683771886900467209153417732226312631052354419771723962195332509760579608340998285994991645371560879385227717199868220457374715608502483525169848647328028299317418728146221987920811681389594953767463759577354360970481077448558681941916712646305977285194845014771987601784774327783975335086355051936145825139028508089987503545437442826762940302688240293518437555216894268716224232605672112097484736327966434772477777838957659720092299173208209828892910702561395283015106064197782264010411802353666393082117796667909089370671677190984105921169512000564453000120298958637067960516255609559597749454103381367889780602632960930437476830635575667557072505195900276740123050707571955506278045373842492391308149453708221864877954689265658970849951524597131396103074886574156085215877656094958773138954445242181632444457230207306816725828249997282434401913457774486925905033706502791946187383344293642581763869858785276521514233181690021473031452935115537897426717605918860200969018350725896585049181765724538296147707866038533269208728781360334299807874767961357565471200136256409698456678537324118499769802661480342843020961100676876921249908829779197431100111193913707151134286275351008969363037983177508150313973260945440830132193093371996781537593841540939358293115541272748764684862630297327002102913525214568683570279689475199143708225461875701277238043289368683688943779889771841701529112812014854012927301618963429551455571690486722806680064496857330396118793827403650777135367339006255779611418178961295983036824477342285670548757556144472454998706726115123397808620959414342493027940318726461733082361349699395413386458690808115273229223554794881989892296415743570022596633212232035549463813910660417473610376897389179958848033595434608085765832179431739952142230327664936224362159957471534049540396481059109942206196885369253408963064551132029591990971425901313282175644397270607579884310555244227075075828153105735310103825985444212862974914581509196557655825124872884397968117298790659492777766992016326236907872171490190870671556159931435034450141102651792261294492602565674955417436086340743675680635963322711227109666758087321808815820088134025651641356798363060642428494486702893997169845945726285555929152489224211618161505690223140588142795358914650354117283449907307587438432749538783425313589801238484363369109306878578320580470460043768691528979200987965587144172927868063600756112427711927569380167909306348018152984743614505511672653237931444130564501038753483276796646058387069509155372533053653014587899019108166486356490699674642886783389860508780937400246975645240557601072832752608082465424959989301111922691594810473512626225277007547116736548836123077892710152503588107084135753653913487336375252085437871362499766280420401598229649167278057659487018045248178543230684193380174949549095142346919981803634118246840145016877408730001705886555537151968726739799024671192361193992067277149304451276049379312085752365428942478177940548861760822434952041316227089341749587133728789289650027944858563700224743362506349548971998521851640974762883140016946180000925370634867714195600523667393693418062721057964639241896239241600606491214558258403585099043890369205482937632520241025279205071044918533433555089622981014509223400733591277856281945733731277680248373000562757325734677212901749951712180269620374286846158260189646816617164052094815563597526115271250771533436263543649170228836597339507557178132118455253765438006694388932087939897220205410213315784363047066920722679459418159783749048338055427261447953615851468087163135755423924802020798945266519464557711281436403209439165882670494210998033274170076236120464580348061650486733176549248162929792344523072919172921668744832988157309778141066018129871496791082463099597700456252071372482613691572401250843295120387270093194837782958713133193678596934547596257401008033215583286268974650863506442941207850967821799880685598117398199793567211288602917726262628539989586753728087411253138601592377363192281396941400124303835929481711090964987815711799762894173634119685764004892074731349242751880742000731525397320932297964407007358502696827012418614731073980644300034212296171306791436168714479489176441851927610685921096669078683262454637653073270802236965198722130207367061947758834733502144358612961850267899808190077467759669614934678475122986614149262135199408792833435127160669335822439582527553798157450756010990484698287534098879609892446190720505647664305715308165004871829750158448892636644594674050173324157623969705607261196161092288136491562385202352964931230284669877220621831355126381473488683219966810830384115710824889574138616903766249550855381580651063064051116860090596311374373728221302509827042947570610984428119732464606837156368277710692152732943696391182935312230711126136134684261320550026813998506341289913636900859655195495031713667082035080946563827032422695992584053977850636434372074151007113283520115475610078351329790786982545923225403161976279251947207367260977791463686506782509833193554464640380694281771846854853723069915865393137010274142495132528120573043066955957055572214874057129132275412256922344593776553337084599583855971242451564718041815104866125981646399822650442902322652064632470870696641775767660815649478604920772081242023067399825466978270614737958952288359840060815517829354885105049194598887717600788694593586731403559332023723268864428638880385951948245148651189666251437889852443311533201831412499359562404592331952707251746481428821805328849136965289333291574497220133001899754397892550709571754206326756567369349355812469458646129731210271648201219518157079410204611827316708018039915717489017126190898485076337259178141536253390313565710613464860475710662337784114735458716214360988209387170774606665491213771901574928686787574255305754277903667650971167090901042679433888259258855173436375231864134467306178148198179113554002379368518592478039464179255205334365076782575067902047877073633377594766583309763976456639994139917285932536301098291502483744144817820287162506998687192250953341687471862996005070231318976337180046042485558506233773111650843934757914482155838044055352522270805671631230039998714885081257388989785810103235559313642490508037622986038894767514447546782849038163810901720673375911971800230087945602174849641151969806008347866844531604256416141498016437196969186346855689009074008620806026950964036457284510037737927525882692837955650474883079744721006315713462395761137228900464123225731223951287020351391572404152173154394725668281023664161409850760822197178308784231332855636519132676917729910078549442812380149176217858969215794395691277341658430945003397079413507901023746449042176892550693917776900501294359332351661393816287188611011478599331325135437054068539066567049893556906043961830792876454341534602137404061867486540865601071129172303381857357709115283430523246712693772233296112408201160743418459526108813588976670135666505341720885207358927055984144786146182238421462576258629739303860427296810422596415833173451628132016387458665359705304947192029289563818984990079476290100996829164510487160021716583502963620971516112090752656245491099069765706827443583524645513470462374514788089796318059325821480154683611861821260182971352365471897287738153695096041389742681767887585231300194968787506905681544901234503920288157966300430286876906774877178430586582978526583784512709928584205535539973067270682360171936709224552607837004824944192137005354413710645802207451652823046447684876592027737859661543458780135874394813173780808695943041108030134835608075366063422925180697956671151141500331429937591729791140689283297006671241296334418884111837085961471366290045364377464758844686573896971811504688901488864131535013153104934816824849096968313986574098031456081162061537830686647528922108052934331177631931296075912274772028461599636077448193886919361150700051578589995025904250491841447950776829443542847517566971833876137409856280108729547313986491050235022995064742621312055174915210676248088168863022023583268170587667222754584439068770240450516928316275893463372034164855888243144564148316980274546094844138411082621213659196849478511560311392111220324584707559642654690979678764724081054260824567826686445519127783991818661633936699285305416756582791898482646100646070773239617861572077495227998285814570794208913972656920607916865851822032143115917559537232529354333441024217769402870535264493429441663899608970126581077392712965423909988476586131661913955960302030598605070223375436341950019587255564762920258715171372567877974091009425599045462508319183263278940341664759903664749809211644922044339051439331445504962475192952715220112033705338123542443353082547034976278289390160021409281312567469507955821433102440588297503688526230050420513927031039719853141650401171891000176630177194952993509904494997779984156889321681699830096240960281436688320674075074559352303121374549614678600633080920012144314551559798103193647598234137019223979027635806282009741425202251335868383764605978364465411564765516459974633900007026999834101662747429176305570555355253496409164525995515608467832823458297036477125730148201230922965770772778833853084295193366060325000138966895266644873045020663602963763229284349556856086458079491773241268096291710969436345689663662762093695992837423502803819407554496752151103097848871762195808780960173181665952634779009138721859225332119799954679789001115735022291984022626283445963862854539126988180118565089450762080278433647607531855010305466919366713358782234841405504041769778170502324350453325344219842069687804474644464070334431886537030350751316869043609419991988986846601664878875760065450941651518938330480011773086384893305439938772623130880792935771070722968916351965383976842147201935772192771402438205996388844241004104204724321154961325336169937750268429346635144567364052742185685713001482454337381445724634190212246782316588801918648725048448563627605299419679827152161351507178366245549453278289931540973062223883347707364701091661977788230374171222182377917046045191868992633250632495020033332138538056326983404979872006347136469558787485256551089244849114337753544296239748472785792580021420627413356296690425880291522376352525407197067613657585414762075043664785773474846090043023763692833188737045147768584805729473860020241872453840459377969080418554211832256602235656412346259023222696505881963233313890572942804931753142448141393867517499730633769040880651809173790394603981571221274454809352730533315563325133225744693233954745970696715138861142923086702843504966032547353196644172953846707687830567461951292864253862682983518559322870557404299616235637948447629880719392720863258148922099980468112085580162172956264822790062298989296263582792414318200355513102666634053168711654173023883109816375791463725155555208590137794565619007161958318119964047560335936645661935107241419267371270397861005362917161395619102906118308480716552854194986292557488235705001189588310979425207400266725079392478210822537016122150791859341746104099976809048223178264030789952346853066501691844903792362745180293132393120507292210715124606749799410852794043042581216718685113617071364641021444642970291974371905254361074140167241553614236792321579373438960740129536086211812998577635941796328436114036985691536767006673960001062641193563449006694559883607228996101984683128697830719423351940159725519802689432108474678111095553193950301874551663563841406375887751553420300149094601934329405928267611731098380644483053772193815053369035805905122889617427866036238553295339008928627713096687508891525355890651362668762773383070434072305895101855797339667636478485082127817252246784960899038833705165161503492375388605667173546803218944478741153952893977430589603292878390576368175578652220666492555173780754643154604283484546802670238908375202705609087625131937703348652809545197106811096395658303618498315849439534079254997117575806061508632130769498946537035302096004290431566595093187004944692557177282827831683450012164142141355417614587925474013089821181653760857924951170328129300118247438316249567777484168611505682367558655692572901230386672915179106930002043968803435696830369494933256256085310292249587626722756600192270023969749729970426076061908588291090224927208863043270921794987925079453322655840354716349612158065916203687355734522733063483390563363829890006105959833511741658908801129993875116529079516987531172313833731385438338628337094748900572284515213866197668408228991570790263381826546272375139423605595730886162561339845565312415055929106479885102669128481307926826540446944121102406272351436640464798231602148502628426543485754824496971526760538196231505633769854194365204154656007448114446111092431202693607941996040241083989909244319952698309609369560660684778419816319489451972763681156862320556082136770999974592177189873201782144380484595497184883326389637229400172915338666162143309565512905938780774933184870899609267062116124353794519154174836070536896979025767604379966135267821018619647135965338434615208302253667146750993548902150520526389008794861513468206966691259515219367740389360827235715768506342696270577326318895323304581349597613218756975275214330522661548645778839935579861879464941846052757997352780019157130305511170496412338185745570909519068305911364810662381919913042603339074732030972722657636483791450369087457526349730191684801380517339494679391338282197316523467174555403107567845556555702656817758772143716718357412239140779226263817752794356130250344429484829555733167604560553967246666346072042218094107323267346803168306292649552103778376898781719004141762901933224885713949389866697361974081006087353706531071294351824771428079868881706777325203387005180215414009327438530724700164691893692833426945897807590294373662089800530641245030684751443126077484671388718083434627337740222566992590743948753391233122917809148620912742862063139613520727382996170081127385590100188175693590479246493744574458832215700053007414781174708061172702625879636078996194572287580950686316493195915797501623047128327358134439813297040691518095623241003413693103419947120063704026129034962899694876104345667224003898959545588487487868084655336951342593058477463759315064011362788744343567556206862903339686169093923169939706626859678988995236560773322926652424029564376501262240521890815385035027280137507486761222716791489505217081074346531004839245269931780342049909424738366311125135099753071504835173998150829368207648031232487056116934397206939647986237681648954403240671141839233743712219102057675437174259561067087089054981650633444661506935669483993753093045482690232098374739702519196988871589279888663958008521324706186716141246243219002093124875761115452057295651714758576380075911688642119910923426246489403547079787453189030397800090123211114396885105239129801617168815442203017492309293162181221685909968112307769988964736475817571151109597739346864749391685769183507934453104357784190495814587414216845470283294781919604359613600504445325913586982978415766419222457540924336188640515925425068998709592814927178802750553027721954619212716496337150016428703657969426729636150659732353677057029147111557975777232528840151555493962675688000475429309267881358723042693910235563371700121242656429871211641715155637428735889747993991077122726279622044512500914941187869764372393902578788306550777624445464742259451780089098086116811167212188948188475752663969337264481896689636600651592999145919144479017411227834706880761789187122731987667986673471546281339788685430211046297948170468609293544619006102975911980875016610342954471850264164712891521107835873955455554148780744609593262790438213996176781814075346273446526731182665409533940974192611451709388875347104311899170038656822111791192366311461927393314690373762066000775506208852800874050658545867477575278486092875835208097894173412308091513694803422223663898960941387276699238745498368431879386194651105820101579907730911718294091356388492977732959225844686903775687011392304046092998689152116755754838959949115870226264544907021400219919719013625689106179603561304241646835724857381762298164163449475226468295545438986651947739221032934971482464410395881985098944783418213393660693727134156193121509742056888097586453448748143190446206233906900724125255511827984882112357882457640140788377905978663909577958108619903648254080917724778539077259906104156218685433337117255641099511606055565357228565443530454106583270982182893278394263644649615561818312889944490051381416024787222867904064387858163574655197831671060194952572690206325432818270294012637391723417122486758666246473780271307038314504313066649224296770737262264653779974348493289888932676374685650754808962022961476995239450277246281416012613388811270738760548804410506511246986312913797670530586407872986148051236782056011949838115503609233728285801558732311536543393376201799352975477686131617958976439756755287973112886393590264922999213002200157056629182535540537284403913214320223466569932684928384438840113551359588524968515734896349361272252911605032870150507356486314664985067717405844660104435545233492691429432906143914092241816283186293408261616254691170008928045930829612870301449438967722716907201168895331926204945847209071028487820680799502245212036451405410737255753364896019628628353166408404359646415457314837515168356562026640832952277036156924898722888473764968846657341453802422666538763683299949569167777041298727615658837505711018048967856789593776598301956984553592445377210907774223608105846093975786782160992661498565825311990482513097925462516389609041711432336373306623454468289773941305678937703127666868409658262524638038510620480371432465248824637300713435050077837263210186857502996359029807847801644610721653278014449984922700072591807253849134118619041273067700311660736802136781125500900341190732774733734141206420541286889845564658427004758386016128295019171105321124970332631718147089681766408839223550059157261941632800873988568081999710616064484709433144664608705287392718606052955220036047169926551405447243289896291622254477886394121161850789350471791186540153771037227221220650009929441486676364284063531168328300723974697938401051874644148186694140269091159256864758805577283377349148165053807208900935678916243885355708127373665273044949243659643489006561332089604153153526204048309535460199161532382248373981330682237177356314176005928243641212844038425172135711208863470865575685245209044657598395492954643384187576840660123724409318640210371059188821712800484371150965843385821076714944987434090460916991495217894628291341054390859627932738827942624832356236210941378678357618668028230469868895443513550820666322855666366674403405893048613065642121176707698511631418877301354807433289063602730362607952861740898460677723151410814488955323636541305375202160380379391179216224498994517443200007643424425754607079624610032363594030005498508212093505618482394185993820015629586068650818982647305681838135315289653880499846709236591656178026170557104746874841142935654167511884201243055468969128890093994322630956646188147677019292821848299250226573559505599826889140317374699001446088222284775251974855816069869125248465198024030077734590504332068596918323913841977699309402620449889815660328343624493429621282475522549178829644639751379757025781457673718983032367794711537304298560140350498420168688738789874196608033973230850126066274199955214219074304426481942748327041863722512865363532490968627420693226738610150401799967434035892632308370606426556574292077191123114273747508925933862610757245644083365749939880020539713693862918033212843660539179250957722925093142260396859897321478619957947056474189124360784175731510153259079574702409019173439590203580278406090753618926495396372336075989975353321562260944372111953312905200177965148335494956389279364062633440346169282168256819428459681835366574990143819816070812043432736916751161567350109316339492151558735081651345890709067248634572071091517200418035039444419776269843379991259556202741043232112609565260692144988749338439077196013918097310411066642692294967877092662033807943065369455055102671848643945782485746965068815954859790148427685104306494420086880013240965419176775142798627537900879056572195385573735640594498626973847014472110420640649104536326367528326087895256710673935640430475355812991188247826725597974769564755754113593951826952920634227413190541618483945729474698891105700715641039421425022383022516561263426370528579422759153757643267464394474430536216180471754419787073549413298408993174310772770850278812963693403311728694052433408992705491003772459879011228224907988053155865533829222511483394668598100205749833970394223532993544290268839069744724838588486633331119692830859750802341203530227813604055879871542493612049611460411399043647725762888077156339276665957552751967603076759196285620854179139119075140990856721187441371827124643980479081332254646817945830996602571463195992998103372922290002307847228936856236241056000747723982275584249991372647690157145335453595858069594581432364567031207029218188033566429384965768734037775890515035029386771551515128713363777472836144572751900419743803256634723498549624250234021042880944153827163754449017903643233582221895773022927986458250504708495910847772340207800214684066504251656068203035825672635499174257467913810699273526855556229089005518543134950696473074204504801868763322520147397662789818595982212607181970938607608267488720223607790315000531308183162955961950005699477872438605705265732962317164598797290543109425622570902973671596475840811704655533222468528734661486965792220905948297065279729278674356098146683163095070547363607603104825291341363418767478831265242004961299296109096263072652392853215628924110483894656517217785457054442728581564190777932549961916939634379987983067602812871352358644157510965057701808224215805087103830651686550334299690119548523351238556198595628756819487292599594006790489044946836039119274565605227296101141581518642444517245190376548324989393498696204688130652742199314537055403244131624303359649377186017785290219907423183723984170386349935738860049719808177635592585555673076793270863653956065761560414361814163028176170554762378774860125390836847578289238514681390707674108537354801001968855065578279610325749298678260383685283398883696713639210335856941976679092658660655854194007073102691171024674698694655167871810849680643651304603079547047053550124158759854087308009085148683607133529166535647375975068690356836121718601509499028623198151026561832321633864525173855815053939280391072785819811523041223823229348938821302687175390613424998127282184693442365132126927900547273481797319884954920966452947190367900509547485749549850220842205053084562805340705935608950612354496878809575092286222299026369275087962187236442687723311761830291243411127714891163295112047878233114559311866417744395204132326161527582272095558573478982998048066092612301182630158625779213683277106792676273034977745328836316329278012172790429042951366484934162885896515705324762125648284561774364347073935558894474472590172746235243700892824636953467697049336797422264335569334654793534485056964418716553662925937999408819970598294577804506773257922192077569522420466750182618655220690971694465941186594072948001811731934387690867010021819237141883867051483795995995454910150786321078542159274486930277617294567352666346647945496195873250887989127581644339826331613106926497175768677346208243777420740736152567474065550008291898932260245805292696632613995308372418167436061071951987066876366426028309335532731167794447344250063946136655577816538757341006411567810434677237272149988042981833651036713905913486199112108747697366403935478834114546742671140430456442655468476492536213568190762952297629882796730848758284954383976529495181746983993825339341082327245565873167375536141637105249114850768531374480379172666526456640578406530033891469666517039799175978419321847248570973043958201707175518147892999703766018352966603607901134390240705389280994307079827946707665196967970429233756078352288681225610354871183087879515561786247237798715973726794520000869801344447832716316594364425731935543037000203706161384051137494997750425460880815649579740739750789392892134272918428282017604188738868965254295632449118185939952775441989796070005416008273046734294360574578483405663527209551900988807067034903415726476248427866022275507033001609982449953714560563632489508069660567099460058793261700972613807456803090598711562229384549601375534044190274101199566112922690223551051920000364950463546680542712976276748397695939676300806498164369520697814349808726610612311305215804200867886794653936323231033370397633100108391469038841781296897590409097986885454752656922574370927219084240045470272670665547022872351086259578981636625557421168617127890895411449657905229648219453310869855476834430935186316895067284643305935219858105931468725464656203023154413721321090720636912948364380683035447210772734589666381826707984483283227881436072432011383402924378639454849701795897144819957556795244049916588152542446287987030751313606323922495166039704514053466943840635414180201693986003282552836266113200769088058421984999448598331205909180152798020763011767518154788356217382936555811046232781861488058954634612642147607130021812903755794774734150512990505982383288237642533490480496021318171912133782637596558813173219307143469068623178104423295683969898158527566229394661150166058541762973929582353183793361131106813167587528004942965792869034779738002638915002302071021539882124476825005303488694759813268892146526883636441682006389358459274648895936993013525926345243340772460403961111114717083162498539388696634800399971770442533164713005403582822342734724199809634790453245686867070265393681818958435347361858637045812343067193987955100870535276405851222820900330280344977431133882691519103782020992404750945504714948304316276051158077353831645421153195637385602762096237521485950302000410527208059345774530331749534998401871918901896188670446446780449610460510224550318043572708148069507833322365949352633846181780849093076117834506937269386006500705261344051028003914366165905871116703227829129708460055743322631786889853961356550211339560284602415020250973925453622025481830033538714384994474672762998845381912743610549932205898383989758689153459471742668388058175678022036343621459952812430577727765187095706822412414901182144560951769801999308424825624345957112519506606104403209726873300449254510046638807869461225970548467268781799735727641887245897880733731998701160320699446604381491155244272017545542691593530916949950690692257197451601685993778369662846005603454994666630830167581441081667163181355033798696933360856361259104617758177410799823377879578639659076128304672835497580801465752669433718742335797909770493424493289954103298829247965367277670782712580579302753818164835580987113115644992577634794804547283365134648960172625574482946219719593927738306220330848540158440922509513281879376447901788218814237439831239063368835902554458699927393837630946419909661705464089781935473512602816442692574166756031714534382085659197188007032083195708214666499441738168439010411573141144656753143426067970715783253839562433221881377754318193196520799305357129472561988042021494585962473873357906185016139259345009583236025623702046061725199792345430027947331503217533361919001001018463214423558322951655576369507198917094577877348574457695935412061611072806631488850207792401342017013673896508053736024235094116385137472345372774441118089233415236558084405895766367450175510469550110208221920152252422364154240426627837017908543814951502581553996802203673006146995931189653330735050604546312475644313715432004210082127420278005489733572097927835618069922063493194693963668672140779366829866298141049029249240620441214942613064418023123379070865750926619388742159438300276313734523683792241030209752878661616352285770575224670696963276261342111234054523189539543592984823540096746997163383220244978746294968083208594457183661136129577698553879557192743857077711895272566198727975613104724305932893873616656081601203926296487983645334127648316548620929970973902826897930579558430057884301709105061992859836889872706552537807449015287400478840108133042317793383340032098766186526762367032199593111734826788713837372619485857212099620649156529659781109884330317999972869230594158953729705274124807886632774621241461263903401441647242496868703920845205791129515335314748001246694760310871922443864041748906797949904572572552516164237009410742857038571544706266183927377747516008162328253501559664225842608052648945090769392981801423942165167505923323588027261471038127385922780049800351324950018367639789197422466370490291818584795130199441512619219131824262709852356536713270050400807381661866010295600600198404616194111041737629702823416582580047051854581702388433516819656573938727455809231209598383996968962896311400928911309161414247748906310857432302962530886605848632960564281648545311463335245436357101003632737720854872319742216140617012990639992804581025103686095521676319421457459019858559458293381651954501570020720217124636519257044087098161176367319130655586956810985200295841173606208191473356478686867250163573754571355370489484443324536450667241123487588595191469323391798044233893887253147647209607039570137044485724823109171185987359708501456081768461850144664734839100543127695917795417777051144290231571248300901182033559068569207074656068564956699460907482116544929797863016510163580464127450890317186100489612088157351483891148380378895382063702453232320339728221993094007910133103485658416350553927715945361418338619520433070234119795574156228073534551444514410897894068819462039093698605017945598329111219668277928728762665018642609284134510491120491837646573610418552880445284143971796946912036187269311702563010116025287886484527478824290590363773582266051927893868293100528751772223870996608855249377626297290145438828127480120619440188978772300052031936373606155741231520670161748360077671442600927722676119423986942919562152017570304796844268751142716105757660962251019825170405131462557874849519480290451656427253510506027129554702820909985216370971024166212802370201985857757972776130708407972301598324938135549236039986641441252937718923781217700466684577069441180063909360520436797272387529760475890071773630662406313933472058655947558209114075461033257117095931426795316474349288346342610419510505232513036470293062314040798986745120953936035078348543397379867323917182458995731740366608855186445834867482038009092934209365357290419692571336661260929357355371149048101795690878699978358447738767808662605722338997700271924307758397177710721162748245875098108254900999051015830003740465604939938065602026642779209801163805069876673161426270757458039387422689661169608553356354142445951518225901433883621813408870689175515954778141265714420442298326485560180573821151341924509182078279325338627503835491014147934442242359943997305069027125339366337946645374758043950838074477050660112886701269295853920310413854318112784897007491081016574288637400936782314797542540328127437560863904654523244769552488703064971814773425902313918688199280414171223706871816725299861972293846093405541032223054019786887853317334827278172220335192607926414964046192435875389482912988863940492273293002537264074209157528353645825524470342414645559602236331079318270399664806672343895308658325064029905747599794237746753587389547143976544095373252336102885115588562059579991094248118264483826551905553801547981865840833054626165388252065911509789130462629865417916675842235680815701063816428206251071421462773842489104947201947338793482967766651380195656270784660690095814884533552220051605839660180851821732060668082641186236818899511459196816126545123002501101040881975837482095364311016331238551848489919571696545777857885028591713893412720719248644329190041076749341537141065721840268061107935780520166907460506052288586874458680392788286792197435023015309743416743621650645517693353199144919926268069458411960590175424854363470941321228495112909515300443659238046209004280230274924506244883626239583228645159223521768228941830251185863587842809652417750442074620249059753603223168653156379253313807775872506111585408512478544850547483541230740787756279741151850224899467557837324211264131638266192666613151880440678212637310885152072318187895944067639663238678525958115256322150984879016266811345945724902579411925556944866210556659161518244999635895627017785252582545365245494414284023497486992134259871784075632836350713953447523680402095584928144383496930255579478770915133702432334014976928807373154801515585099866109053649568570784953773108307071090954449689195178038444737887898910884551419109623142474864639861593554820107603649257691887493330544428740787976725660048622963440678134392621328364745658339920710262264439788685909507659386826028758729194973243975220801629194513472808891417450915564193871136065148378679102475355426205207736044225599068967791112768841695717097032391800760129104653779784800940447340915919638106367353189819282797740587104350534944892402193248474031909897526811854315978593790625835348350971983635328457494886718342803768846479655852621624246900673388055419596395561835908474904146612926649640933284119632877898288883990695838068003829274037649516762182614464194261585372842497860798876975691791808750441441693672790628334027795797315315188553546243943277081340484950047696239783295179709968821074138849826043523160564976931322806431683507172838348326443450458229112948864711476163626036362144857590730960685161242315906667757072023036067850594900781243572620108862160362199023808455241360079050413838711355459329029264679763061291098413667308557111324484839641480734149812328584291739998422952993549574108209266829374142654218080185546613421561508553241029097183177037355309689000425677134918997684317092703168541035883579568891307054870562161993210680606237591519979396203962804322811578040514976914697267394876320690824860457915993992392874894630912964187971022881240181433891631828976559617577929667333899452651210128885110696065357663378917536018877352556502920981117049277064135297255650059518091049232072935490267083607538182547323282015727160773818306441375904965628679456454339670578836690672200270459132745407855415077773540207992201927852376504115736202820673809139290218622723395904878053215094148876499294103275487182025483431882064399666113655239058579579510011572582186738046681479010863445239015301160289680960653054347490639730151233258555889536309904097479046225674615977638750077743791952184363651244382214947659855247179730634309617420027938763339700603697416787634820033048000714704521656733893412720202559996874809277116927755607113782041597098554607216300794417220961342790773644803506382640872081856444365582226423449144523655282683953217347337581342479179764758900466999341286779350565960448846368322670553670811374703943590144584336718480856577782889237308500174505507393856687085802630098454749252069816374062673875403626772176095022853758390238932184707894389539864098119636064220588828903779872988556820022335321002883397421348062325699015740835276676673523049710110793519817884115783308796873226023448346337759671459276087580220963934334318216043583430601819277075516976297071231032562959817974747112446796508198155638031557999360400225486030701942266193626893948169032813541377370823300443204289408048751917018827811218632999776132200239980317231931545871524301156148693431748722021484248137513551597919324158700881940283551546784076560278145840000075033734618301434320102920526050488137579429334513506687348567772779550636882250215042454026062916436575632187753440146036956190844507382140243052465977035849259063062648896033159981908921149490884550096633391672488532574075872866670001606191507634280157601965727082972761032226084081056388357500912838132028947561099559664572840035658368518326297909449682922665391465639469491066183863773381829702066038312509158563676680224297359804308936908214285039957843769865860076447079531275243947691381394296540636893373762755449952656788477042442253594972641896512379359762385082902766882383761327994926685592537423644294826617767666207593667723999077035910311801186488369672610702275731319311504615987279597642531265581751282392141248002208536109628105491929979009719589343180531799300324075729630739042153661828801796906497947498027802820756413791694191146395575226995221088290766974442695635635042159883115810118208882676034142315319865995349669066205232098668389255781847034854751797346159427459972516953974802411341446880182848480932016385569047160267510430808144715090038058596759998127631273427740868036278870329930073604629645091360544323905767528363634611865663263323895845293071709546988323720918065339614606458655453769190894384862840624926740041729911060338996044870146540097706486270591777062980683987242252757979361945329918841791324836987551046781434117838468584319386273707898544175888318553679919280606387523557945958889058606349598458124545410743066078277806372282020027625456031856351586640705718941228894707241762902564579209670921503723680305881156016680959521895481401617433766987328771232471480871956336828592235690682342105936620204497551932279277320770600307560720760402927084676057421130636310048241545875109672447645099985533469426139694453052492189741659881736924063885315617083208055183175765215956397035208273816651509442117790110895907896446434589225594564207557814367258925057435306765021592519451985321967609000774812653840907622681318729631197049970711478537076445977748304645815956707818891006535078790499658387731598810739047856354760022621962197148390908858966633735437641754668468362210045970537127110796771456035931953425516565786214333819798561518249158610353443205647048437027472759031986422485556886450613680420485897268413809952183899423693325030689389482618576908395394380757505824672203332662064881601109457035193333485683999998303455017332477970725117241251981463660918006146227801865937261216131289536110558700026154176485095052175724685087079648741692607578384891875912052874687132192730171435998005602679872126907043873237992857635207778458231031791685503666259627999848451219480133240183513255328955961525503316595415093248144099745543540053350974635576441327701972300974799515855452574622021321098193389047299560326347835728105208314679164148448844118524699618641971493563068621708939149439870695343837920479150858970423958884679911661817837390320599919010036794852758907630699290758691870969458927361949107019033574596859181109003583397741231097727385574415003880092729220263297366723989539523396523755101673937962738152379739066222781822351025957396773985710198075080398593865421387304282600150633113253562353436725079443574066610671252976104336794281505089813815331141088914152309856019394083425105251167450998802084914725062008504341886983581735825496951230183325942822927183029052154908218063328933924051998537061149514524373255568963430940622760355213258536907333931250637526075617546505564289010561690747027922652267862226891641557869331817243407682156403763409411159625062428704321359911100258389935264301945588362399843033171288624673644865708646892253471729782710228453438845046856680826934615510287022203269157993587355984209470929337984766679277904267758556450200234079501532987884622326201625835107069453158707488681266299923746183509664929434712492752158815096733702767918013634768046900637065719087267924678837715295869251780067806812224354048195483960826404058118885534810380529512527325933908457238485958088219016236308591530358791230861413210544959037950576760086708215722821215934143604867787153644886539589188104900815394307228271104833021609129847917628216311932545880419675819752699171092453231347070508977499969500836691664281337800463618557912155049730923084288257272827232814650329530081103336806880673558868890477897702342809780991841313022977200465486453100480105529990913588797073877116445587672810963987054748276712904882134915102807748317095997783089540384579856181938232912230853928644035961391686875193891960405263377565041219755684216098478177235491534397173943194579582310833146293362658567939174384253470533804734636039924055996985024425019272956768629898083835565064026499013454752000874133361189626019359157608226046970518520254261369610299161212194430924084943037691392807059811561102826951815118749014477900101445970402209190780053602686850878821386792647562043368823979179028830530765506287315036865036385300775983420464342309975544716597511937036799621676368630009496559036026549138179243124952074221523882840544242797595762353978006008422912192736892788367386375088760911113510826558919166295109024766443361853110021560182815517378148362785935140179482215570720765443052911900081751352171303135413898433071592105038220954987896192682785001959323621991449499456812138532057266016483168947901139286165102462958231188993496896537504892346625918168960596500792433525006483410585191231543352487529372815056740105735504670432347167619540132033378440522901553159126489602170048709426212340157325305919302386797153209463532036451656910865986039137710382902855804572422159635730589090655568047760541764423950305819950452327485512221373112150302553606467585850689525110219445647785856434282118765370554629364410965577156164621933066085478396980510728782218684230513878728257847160083729641511919868649545949278489914144792498825867963451670711077976156180949996348619644102575984619488394852826098640321685789044190845933075454149111247321190420104758623495687928807412498471285292034292402365901902655184606605539663815683723361265856277425630258915696366781610768142996449764274401892789472672625589256502666999940556501809451115419252263321280825968664174046817585014297444703392048156096264428890360221469087899793820550509562103877707636433341272240211134121208199291873182422179458825510546066154579877560994714973493229993082474732627959237791317368357031275650131048544741192787631265480755847502206398498075083310448361842402585715932923304768809582451926881423972780197073019070859678214865753892370467478372538619167856219710209527031584615621100691314289478766726687918326344476758555596159020954722167063146600790161139943065629075944571332850518333363977218160265507121874095579066957790844468624004513959924798866836452148763190786752729035885043010538913719178406891688734137860991087997039860606296503955689691140785644579295959487362560054263809112931053593447586029574510907559995701923734493166003247612553723914601492027026359366240398091990707694243991837925410933729058795701004640594994746272206697879867999585203330887964644189205943298371436666795196961942084208112171712905537305390363954014860024647446616194399441942155127886150266109698173084060940254088722894518313709062121615835774188343237139876110673167394358608962768190934623466648178613980931218417044397593655539155255435968562533474956430859951706974952251178821758635466553534957176599832641934788955078366192109725335229911378719053898850267953687704723882667912788994811718801198891388247349674685726250006413755185589097043851546687380768141642417205001203959535156513203654130870596219232563871240775650926972283546012932944270322308146655824254221207063016225112400014710911715173828346152430580284837403886803533257057427189900502848485837363791555394589684192414795618585486739585282035868245983640680409085956302238500783947186754088053632417972767207677205476417661833347648984166099097027948247034441343724744123634225926223723234499746832805942063405796044887627738132221178734115968916965468871999105132221528505556565881247865492728905696589135689886198309204699019848659967961811761931905667320659753517335335093651663281601168377835413558322028378913148941189351233659431278708570319442410072877191037228276246648657625190833953567059274163390318243520152118358153982809928074537085997417908063606232830090000216269374086240625598330168849074189142358332830983695595235288214291389441317769390035727212074662472965721229616375098626004168938079617057284426536306716663261512075248137994193187255909205591116741711907511984030931690024138346896478946014302299726799962090475775423183421556343315532995024147469217524070488029905898334279145704273140547426998246371671142107685377010605697677670398438922377004541718328844618055401768508627966888342306829359960709678494139743723927018850394808029636218349845125102443149798937877191146645433332733344729831926731343609282980306724633081859671454792489412673775547465176501640954616053442488856686665736785477930921176996852029504821362775706282318214576854325988686607722867423905848025269047954112754360596000126011169495414205342416921276558700979353575620090004395452113548729536254977117213300004394807184463549876809495725848879461492460738622408633111334660450786774217128300080431013990439071241906114156281351726652422686518010872841587632060038674872689800506225701210307670912894274137623673904820503455623542668308026380485235820271769189420278649795847043923560197189635485604047141120156810420762459523762854395836427917533407603514699897030167973122669177307744176932057866411022475898171776115517662292765363182654369098288365283812308493655468650238769403594516584409706960399418765812503202885365226722087729583924541016850171136816761242328475824755979808253511674726449236459105118864242033124230221835705037068205406810660177315516726023771864282672591091382892260036383000582890347572833752058590500740581966433784593556731255041421768220924140582999544149999719446390145845411183067819326789926182038677279209758190006071947435287627332211055141208180239360426203599812285054749853614599958557734033885038905276329149867861102670543315354525266886585253633964297960822477186439468484156131381561396676574754995124465394622167271364575821815168656088615166744389446415977950266295824528822727757158455849588328877817866515492718518333368813405622638737428905035035319179586193472547042852971556658878602850095242144936674036218621133624129634791770683420569930882953789574335235730621969842502730138395381910813665053255451213841808662118097681807427544057044266144273762311523416512349579033133383247870663814861052488063758899483475964477601493034206910656448220101582730010103282424922569794914685539057022176183372183537552531571373976084602022469854271478792874230335800160035295912669269223568267967661556581324609026595664211916178619499673444060430163967816881170281358353951210790040624046364391644461806280825032440577296165609109603729281616651428859611074866728741596203289813964760349795942798389153457536751265591014936263378166448817513458105938799398695063875652247817821166045575630500607109103329183399247683626008909558400231558075963926379364276188616124657693331366331396487936964771415418399830860451882794786163580271512998094358805160478331775469482857421670448920083167155470127052369839812490080759206466342419491036847912573103139501870237090969298251997760222263705465515104727794982101864952488137996425252995750166257157101190465325748670757035481211405528871146254666387472123681975496782873062103087407878092209096742939382344991331802301958469215882257248790401437898987771546542107387390554587769706276192207809708772501714037535076988288923811342166416763252705650093214275009010169693675937879002576073604135707772331033016814958603622141653795234326201416158383651716346884119949954868343592624733503932988553188161580904264233848565771567065322530818145244655768866026101152336499952018653811121512542364740332136069225908862378753659599593100996108064911453040762353696250130396675077933280218865176505275188816585503060746450455471348604207324382607792533455160197728366462021058993809734439454983390278200151285770122573185428753166836245862523350584576468072637479198325591240945606757443276477963315963806705547939796070110300815810396688624921977488307673484666543473423740166762557844408224190127559280623090950811266606537553091444634016954758970416852133875996672675968118734498343803303509315965249121390549190167472901724981856722032324025809655988608824878130294645164468013060643326862069882382424842736243909760735834306305917351923844283618299936670899250264950799823967257298229100175833414253395197856504777489622416522462460653133500423594127398593823930796461744298460338332030819761303426091275893075202762523174607457409166996097516953613012843969643239998560482026375880874712199940566560630135868732439730073885374184998391436523295745157308705877124263621237068219929225401003395687445980024807048779221192954441309004555102884031173911584503046671954787768652571035138606021513221578530997145118696655831405784735665189283309886161629655562994040001857085652481120819235277525432755084864471760727300334619585402577022261371765892437630450818249978588730055988566841128422419496838413803543014740134562365057279313351523445570173345440408444863066874302875518594165627046290359308337046752190706067202210518422938771122117219367157233387159748233995341333810446985876910062385399094778582237980285459947744333142048877641242799118500942911490552737235091550064936677871815139967504549415201116170913610119904862692648266316207647180711797075954110952952885760150695454229988930475944806996098319556638133489166951336593330797899683932159661138234653759569568731661013760241012362425590893978063952025753526038201761729421406681380800860950546929469864980423616177212824409378022446346348688792956403523966463708267457534218428302222821097030291886232674785246788479620937304520310599755934682067909008632845095774176133824850089769041113742715294233504108569334805744554634862436337833778831373221107699650790214034802275972471183273718630802035964078548102382307145443728217146636302083773860437110903594711257590028375578698040823321303283743661490673782376461715294850231348007800530042564370149859762159301144044676659653546408456446351406812070957007632316766027052676683447899721203596158512337871888196649047325940258303236680759928935559597869363923176011245170358918470625175307283614860826938722647834484781324032206233427066233299787027937519211441855062262906775005605983774639653629573552190251110457668035260045810446057591297744291679742196419536707077675495118309993434396436973615760468501041805849504272648845211058749826661824991759588645110225817209270331800670981211517787091590817669868476121440484643954316768130423763473802152176571819730810965751846801533225264481769716438981992671322920176802650220050291822181861840117262602866312497350131878146149412525795390553107318386193913744645545169592614183032089220073202654722787388110880606856888799341138033090826425736826273622535449489205236505671284757738621358291049401293559246908911792632154508111009855963266700695423337848702338060177985372713338690063673858631326736088004131357133790525544125732131789316346663198948132775665196198947270100450436456239349310817327535633967908633283941220675316216386437006717263473522434632937242671293615804364044997763698572254902743964756662127687147158525840059830676831642215778112973068871153580768798426243159125915972560683278268765518429775347303900037165712097134593689620224328178426337293895794711073341388088989927348993490031299194219323100016434286318674710215437158135976280783289177775088404825726448605090952649935586784434418564970309062805447134228091797385035293549704111909053388874116725882267253964911958527870770312493149560209413726380476094639271668643729420010981567773267361723339849203773965796261900122972740777208962485235048946649313817808837163723192481308068237360358795569714488709012563970503453130952144878968429069847017489634251336815177504396359462719065945242929063731810640698309656788426161933307320333138354226295767625070910560978755747259001645067897667002584581951162523537929547744688956201799939349555054692991173571428769496224892188647871970832809608509660983829723463261127432320327106531222284595700932878188390202080292497919816631039338087521512514615407342389910060089801471712064037319250922890767898656194921299027405736501606791738014136474129614224710652508149077328422007486871079767724903513727308146193185464693948593935154566843497320514367431749105222837840530681777156318524461396718429301395649441131514512915803288668785935749185629781257288516869199213668861583008458334148197659723583422397294988724833253455741797949154074066550953550623065095571320319039309407406707198901579966152431110518643758889583375841414161486518290107548878345979433564282495175892500801472789078203569748681824270098049858338978944862149538789071226187140183498104707519581805166075824928673776134283444783961756592633583962435366625544644570791904558696172093811336382973478235495363870188747991109330285605390061633782895774655445862436978458255002610538775263501272035186904329243097082111286195743202194584869932243339230200626942509914566960232698817891455665707850099475167338598290467283154890541112663465704946805096048150690521082933413668270330001874114793474366382806674508950166984532177148216773727239738697662501493508014541344063135937384340149022176731099297931060809268225911523253631713988524830924247151116971568179570664245169284948145082062795286710734421839274336332811398590489576814275030273380256596817884506158635977644876196235724823496456320805911669133636083271083175848173533154028234941065339524658225675112653494781516293719724850942767188377760935829538216528627723991656950276432993688289147718882881410330421028832644824808909801504647631853428138825077279922658362484903361920165018868919176798502011903616487766998147572108305228608904934046662336199622737223627126602148043818984512255022080073477168573260572637717716288282375069643019761954575812210131133954898455663259762939278385899426937984783980749847228511543718460787508212183413721340663725076173781875605053606734670353539253203204126624432068142180427600678641286026064482983861589415461940282598563807462043579922294614230326927202996883224502166491773534078417076802499292278978076894032810371127087881515273509574383381839094283301618654804088854059670623639194670956958590110752443953613827307058989429439500209458297651353229319513259487901068237383170407549791856492253871329062189730608600162581844739725227234320182458308293388634577832555572116569530471229881287893979745385905792526121610161409034874806569722000973303394405382646829161997704686473778854151928094668614383297722354313113312909102767569885562067590256441601724175763688909146937278075411869345886414693023557379707450913659511155221895045854034349782610993723879444649588424468932862242838077525100763834419454013057767298613876555103422172372895199684786200782610062019278947224923271296465667117807734037083441595311076083910653531212108333046903584787947158619928980152607665446652930599205075074253027564596048361094784155234397490170082462932800125020557346888330614184099128999303970230019637701675066498158010721476179026207637622595360577241131073593044740868070619835188546667481268421394525847780613428184423757889572270391290467752179618310848638141645281503843054215343225164001153297690251427660806943348156744771976354824365170285913053667780802340097227011049959703066507145924961635100292813834536036983175161129101954641531206955246019143430805921121597696907851010241728072632986581138821142499871164941389272565101881191204142560520587687291403887187969198709425938370893277012562935677810158908710644204751533643647189367693440834467400707271837530727374693618412007542911554653591409785849294317675007634601035215794334877215282901122880159879800491986141507240713519049306107442566524686424881310407137459457269685201330985505077977617323585018297491548991553017962339502240237887936210522449563968280091200821208108753277778607687025918055732332415311425057315715636617223325283025061046437537610429444261707122331812308262552086639355383711244048756394280084378698117336275449140711749595134129032111987647473559684760221198868532370808568610164117202122363168350588245619629535766916697700294318194000764092567804895291306937879440077283082058694337581411511189697070966436458791190252780615564030589411654589036095359553169826106485522105830527064859401605814810470216931707049288600400820204433255371308214785283585479998208524563536256936327193921380614210560247860200966865345316681802256441506631694586458848790172795558725133138067984773806911483671304265566210031302115081874099386206112548541028307953946476589237290508747775108324103258874935895812514065117592227142517257007457391343390040839521168556107870789866403966735184065865925518484676140492693654289902720371663241323251452434396058945494273774279648326649101051596332715864729731337043303554368313312225188952052006114164317641411946236689050615599531695245881807950471280745597050970574465447848425214774667767592611450834630263736006318611738424727341002926064083095396821361692168586810139322285398845847397618937573257896077055670662369817815574188594181812353593868467946907314840078392741136186504775614998804164119363284559778440988584597322455040306204793935140772198633947090476941341632509281941928143799984665307693355200544958053617788781512620341087725196864036022361564453339957252830889096544366792967192496280353256038639997594155581311129891051588579868489861868592621019429867896242669627028544050859552727574882018055983726346706223642065827384651268256567151375876830090804232158197867074262629840602148686692706096187519755163450145795398356135483695611039739630006308174479110051318354882339901421203718742282890617287631142903561183623597521347890120441041067942217781423051752531991270261361987160906523829484799156403702378477968261831704940466311472016535168630496020702880689192534636836343630441086275882197975438295196353879346832984652750343232285664791662398235642560917461164705002839108314366918061618127239535522329534866050406232234236547646863477081441694487549368968835244382732774691759969664238445882929874279063865030194927273749763764885575529801831239655807713433698030152598113393089707079228329391298528076371590783465160663020860006869908732149220322621381472355825272566834807505151197350521926920079619756080343746285672575866835804199300060835398445673337990020331658123243944245964761940322024463986543716326870646182550566975764123687369282760602667555946291636403887403616226349952836992181459199980022715548136610724588942812669700544797130317067562087095871933281992581877556440795524598812768495762823835955000018707889422755400290651789517549513791494399758434014030665492456939096954627249268272321922509296432497082561224198404646268792372319538341660252994511586518267698486777720402137674541250669400707947767061384899727222865226883236786037202923803723972724397449879158652687479339686669358711454776942713860068233592943093213390982142044672239801644723056002233430113217700492098501793172850376041739080361201756387775210252082496049361331971651289585011146841396059480894127437522809203754392987676888653141325482967904266367312456895897224778140319157054466029267657181078276636295734095401859234521048711451313321210267497808682149072191845556322234863904612818785302097955626145497157274010105289323430471908107187837119243592142531281136860439780189683011453124862304045136331375474533959265696787594843549979162561713017773062869410253548359436632493208605897724692712412704270712397965856226365942078792737607129720108272521845783991983267340593361745348455427465546069441836533911682035552531075052231460520775124706731894899952811064658837383326801405387852986062185254710734154555838478741886405405470508922783464003067591126831037221279846920044444841779131466799401102915426299983801080271631367433747538785970730534829313000709268313903326545936432448710733342842802937441602142458200638818194546518240927324749198362744828882855284956498725443342730923324931000198192271126548021277630666445101224488683039546063078865446460444445173443963387529309523190962366741647167724915349937066969324863757176434284493706400024751601881012240217606898811752307989716230387088248172484499879671248298822559988931049176531184720999284914528625894754276118527598086778871366601888673656828385622354399109888270775411972827624993526407689353356022937633699847481416168319990838211026345975910633298394746825842856446188849797640062344849588860031759849826291484180805505630176797939753125769150747967684782427838496543498969484673463937841800020838236928872573894753496480998541119962816709341317943818476616532471368029761590296974058080650960635021541949573446257935462698860058140530262156275331888565072641321150334248050235361031516111968153126688389456181219996927458992166691570124283655634646364923073840146184801226962407218701600252422494187132684326853466202303606970553466148153393951312127029526039553254104932558491603870658647191421743657369176117526278560138514846270016379116254316894090745374327509862838356589518105658390836585999536262503301082672447485844782712616420861057672361134743513881276367392105792076270895211855749202622834557842171966368582971841603210950582214033343387884967751663358976751807481678027957193865810590319345903156260928731532399819481612519756381013898577928376434617924261802967944157477337372319848630907081327464246897058620158554144340452706578478762725928178882645889348802156083673102706220098233649827182090566500957747773645507381813029211674351312566328011980526598792471423927382935608455163467974371220830118106398810089957371505286525140882626946993648954975076101696967579813873756791444661386378914687677719512902384980776786424283727990710347433610566254585768173239704124828403420091912258736489748674661549412728405262146040503730435318813514234325485810946466488354396729450532629945958024703973887003319570003275049151239627556328275094079975053968983640769859105604251370190629512794289310286072343411066056859674299482125662513313913727886558474610598164265618796072651046500764148923231815193229776514809870336373870702240448270818679707537606870377533579284526432773100802734953593204268913662925402982477446619511667909205492914430574317273588831725306918567031514508967883181482657258193881104111582552236610914058406143018698673382549168023860286448712467923254901671538136147306778546627823810751452443409919798607737294173754655286764425355606353147673984164427499431550233758086820253553926597651478642543467680839327213370983431097797423857759225434527656683565108679966290248499225138942342326675271965528792719311521387512003901279589558805775495214184673364378781503683038789202897549527815109823139250111708370669283125501940780662716494688275785119021809226759773924537375841882271035291629516346198551795944338792482859673458659756308551381379115275384560210803993089935399036508991168163851934132405047298867924260705605661407923246965418621594113592592135502282050421159727448886860998475901840895007933267001649780467138635424239606072929450312626318955718920292485354379519890831893747652566135080390948245781204819372983856080915393587221805440884006904559297688054670726771782044816103253798730602864739489216152575606845099224208893108844047100661909459807465169862220490387168817529266899680181715526593761534255846937498536191461676236984405088906212190938746530064002639120388468782410765417067477107642351110970728908972500033089205739703554651442235823819391545948370332394748975859734702870326364706240871206448548765636009889501869107197263454075748224526999847198921769278835787758022851953321913891051671257654280456790383809799352679093113935382604646488651437045900503274989289507562193902574925933917091727537485376447336283844854940091923589525051134151236551710233195846942553724969927179499178812669370619646556079273775395230571023841405684206585376601391457725348525918416756587858184070173982006119660503164673420069949082547504946499083637460413469357273822081420979734614324170132840355219453689456024645036988801842571790432621731610762054912543574985582646039307190297184574740318383283599140744179107335576431105033015946332493495652873081989220736026394032508852730377935126305740701351749241234013073025067699684096052997341643450342638171405089891608513009148650691115432585368286029170575137246340417984333454866437544865545622027910586859536027564876332960848039355673438042745372660980542857202502412670361834359742531892643333545890373832023426905698515416879264645044983672531630605974206943029702477038363158339751891058272110348478568673457234299988563636232670576910481088917391162881255329750829880662697584270992949737773825836476505812095304159582670165767262719266274707763673265725119556350697025096419177946688285297234299443861903306847652404710085571405606730897322397668678654030203157402732749025920274145464288225304892268098476021201257954870030721254175716864469898237333278902857899685915279569912668193898385488955038328500694501431560947834594097393862669663740541175821740566442588946831621841584526315443663807153698044619987615193407022641590936140761019034294976874395107166780428978063959704569242898664551386743593561337990214929795324482699378026536015075367624192347342053979753067993390229907570017646968111763054577299159053734029952022979034914976838132180276561939950132625174920904410997981515191854854492641074034160329086547956551325008474699876242143372559699166054360193993993558591924377118480907546745931409890562755434098561595520784800810060111435537143117380738454195609061837980421963892789228154057994639197961723054402173261672202639968795146911788265488046315529194383357386455512528515353768071704173087544871742664603259984901825947191968813168164389721302681328253730549709203266132030454604436788739360181117097315635197233385880976147227860987855291737746216211550264031980945040542546954052418397288112789880660636533173989974599980962838170104335664640303607268813496339914043239979860865581580530523804150831401235323938931677534118108141946073556190941226420077822878997219485852465803237877864709026518388619992323370780334609610542557343204310619714608259916265670347741889860974529818621077524480901840203465493149811834755658674219898371278984074789964813718040137442110760874555005850470653920067219083641392554628662203823279228382144423903249319285837561547505298682498974627716524198741172622077613970955628036680483079671649740481816714745085977845338844546706557903634734764920403434164314403246739114973834178263653565932774908728801741796304109401596603861254059966426285332754711311056019330743775470254646366090010352689437798691363890060561755695964774237879229029740505248102105629741669891540756405265922017924395509427601998024910831078090433431476953697983180303987585777194541373472534046045951835016439714187871491315026733431597382427141242630542331477155357990736387519365995229278625710719327195837576234075637828515202047636101764043376898158242870067852393008449824091644224482147941700933593337063803871677690503736246963102115025209145497059929359141763623957364003713020934094743793952745687090189976014113176660372647029577017979598604688457576658030163057376689670944648688210845949763157588803963225635224553629648839286125221991294287001240984352702326908347842805245394153362886997908853766276464101538767465788307188112560114417052731314891894448055618950286879672945443548810320212775413560465101560355529373234057930313824429642866760957450248887483010026785480265363020823799256203299821239659557245086856467956070689762327005719738480304928871124854661323559289771001149230098785763958100347421001940194676161949202429128735586777677653713924821884661634581670183947236996142229614468155194247617151603374963761518235522655948728829450586961498640980943419758323590827868148286103264665420617592655134453548531368920910457053454784477431873966538251500022369723343570719766469454842028557987773002562924115752145986464420709093133717826066752187794960946608778733171424225653750040182072096393301789783234221668246218154140208675971812140448094518335077925920086552970181808025750959741786027139030530492625401882142830614908833492139962021029825850433955843238481125854806736840873522468741866806773952677567369443012185018636974002501521281135034914120880047756535967492468366708767970448575832422193144366277667884266394835621206039488566327648866082761275366372252187721562942543394799012135606727176273639083208570535384809892252773101609614990550712646839842142822836781532444751490705649475863107763225663921678642318779132611724344482415138495789864080991185356814934823270731504993189637500720526520149235216658342335827040294173578812715172356064236600954573503518240152768653214329081962397553088002355360884120147538899898945700611329270667192338493781048274536676061199623232324913230803782357717411321078580549371379062917168541959747230171241027613693990592412677828415363466861020294044643443675933596188484518560851613555429446934948277379122126341229426775910091906989293832306835287571303748365740149123716972213184725538806121653036475305885112266734089631583493419949756131195954359614505026491158257587008719038121181039931567972463382669473782999145604509951843937770826497887647976239317292030392768138800690919949710655285765292841866561204600778852376916680597444129632656378506198530247816451431165288389132070744733375273509467393586757296303632939614299995436111072986120673385894665498803728807691483675811250465243497217137344555415230719314524805393423887787089067988142367914673325528782391988020807908896664919486680090487289333987728664369151673873219933299377435206477353287152711378817819788109939980119769827469621281970531546607752522510448713403750952772243137340746773737657600422280093040987442243154152384860125912147593624107634475882518281993838339875750397977655426201958061044476200321136140326693345174933031436262154435174558122315405493854784771576219570766317230960713871195811867253913586186887447110202687467482176763119299286846525008401976239945388587170907027132502063744962415889399099873540733219526724576744096097792188962390638532154943944564795436231320537058187076566815931388025896556753965515946210325710162385454249168208776166581421726056069975642089257996519513030950361098215594091278862898891383028545351966812428990607264304461150862309711165871122671003423926357945713193660176143651927275327883906628880431932048724896721827002443095670603760230420290752759391247751718757912863827009416779139357213353680913209668026920470920637571428365826650646116317197860117999711008385962640174323487465186140257143593694881708188007887507067401527900533100057289129806644084061726024773832527336464206273347666862850187649195918306125892654403286204002124559362398637269274572735452420259243338863421197189276839513911581794111018389177091466185172533624428146136140935882355665580271727717235149093657148372084230118051197666674621605662884435142755448512218645829357025648023834934092381183480838970117068700857040735015386744103129793052275320122026560994585803781425760177714623240059692765758641759461211423376857987223694722249835548234726781783009687844296483294662375055354896820671456154092068758109852201520660304140081780696975466953473273419799336704460836260818597089391528980398103692693454847466786210478873247603748385517759192417601307902046924789060201905797023339050212450572099668173123400869056380388519960184787558124071029356653044393505929334058278295996216847499602360101344405711616724659693642338703280726773115551626744281687937917049205938291624355063984049641815378761012720500120735693428015021768940150545933100145160318636453521503625039791150777953445795015116607867161443814948017594924529330691103604099354743037633464011806976383656761546412246919132404442067527906637982768481397879671323336917525128353114589010691898102445281885220601342802693376076807336061669659117447243075696046957871872343926772613471855650885937962025812179271207013774960872381975714742334890202449322961085414597092742732122665156540034836533832222921061416234972525669064310872953718096761803753786219752620744101724383662606611849091613484980496204058190350686947454649272920139163630674370547784397857646089471251638522897290259743804136727134006582407673818723873447986068519282006147378849128579310568120219130206085194936409699269817255625118814574028791704789069407365630127416994995404398696822900666138864770085647336465292641457527341923928458177527019569004083904693432769812572326017184230838231603671859132768495267993541506469761666458130835255402337146596419639216852817752204255609592744605014779746431731775381685838626916888571444830732010652994346664197877285307944606631193335465049176495856694237794859615471020963164002431513217293084031106432628794329054697200542071976811245616257591885024921137038700074361568029977210144143488763391817920218021933435927002288062299212062820078452027158304708586889393458621623662474273775788017298736851827845724154271262846936335129404094558456083947207069278270690140904467930851185949502648587786895533967060070924727200006534276568714422658157464980699831113494977824394889915972862173065724880107245075589269656121649406245578713899143726314190481746003049526091649581541988914795766435193169027764185332372853514788257378965465758078652852834927724182642944174296474081746588728308577013981059497861993230773607136569628870898601058057314688052799969570693972647991374863701064862971862255012666071626859513046050992209302166852685602591274504291619273591945214755417734817552981117772739647098432249112306323689266462631914054588884559200290383398540431069106910843948982439131609843818898575743184411762769632372968125701217167091088806405096669319450357875509548003449830454877402377004295349479085519367348885221513341420463116265173014774726427932244910300687268378239931903228202876373472817300836840634702148430773612495660507524951151478150966370029068893581262099370530518275624737533134534626465740038602196446566122777292804167707269584482433051607839493124284701238763140117819495154675790403325710297517331127735120564605466975142495584949927318376877733850913121418023061314486058293490746708237502938310335341406040169289725078710907654210061778797457026169157322763107897261059444918135861475514475820874185557044683915742183807718358503207026658940589484064567713220741842027110783185451665897292417005038459714682704722472358524098086629935228508302239346183049939569069779692206709089579862867371151130520352287754691243213245405245189959399182195877598560795013537316007341126669127173926252826066369559296361946186222219300506228628692771499579507930032373824917208422241874609868042741402550410232713956511506423213572500157316718372758059777662895494293162295068518481866745363635366525018751203226493468148858320538170969925768191842076443804261123318269979426962927754607306034682168410575451735156824398544529739852637780364589103868432411734680840878590890339712277985454042730524815411228112622629201204877795833806346684806383077404346213463336357795079868353777112767653094016610081212885523084695750112366388358359433116453143447869736093074978737363152032987405270135789256168016802088101037267735214002703827064511412874669820018323430078418294861422825453273099267013646100611357165882999259071093462543886317245098496524776185076551053519838299038552677789850675317183395277946042395335491612478485414775168568658982185383667366083155869597775660378110053063786744687166898806837062804282254311932679377115375980076630170246091139393828709959809130905898259821482798230401581312518830801204088899282725856406718703083132827999338602772991797852168786086212923346776475732071480219533756810038780149225912416322825000359004194284605583350048498375737436584361062232742260269956013618503317675897629059725456776874888363708426394839171871495442322902603275010533207644581435961581678100348384807023806371346051876391832734162381561177506417790951783787748757053458589757790651650198989315432625521219995053958180188996232819491848797061698953619245669479684843789450992607050252797689552883514285606658999067109677606476952559354838079478241126700097265317579806161265576650871937014948357182157940432408410241197061878407596192085666384757574567788657570448438635467127693524071963380204036025895853060527606494204710379624848987913405562751856033623532074836529326708745197756385296555260630939062666142949228700529492193906749345944038318135905801499384845212946878885811492324545897063660174011208501626530388894254961209000366917753850078088440242287552311341303792462831357346204577607261529140048586148551707825469531034701457851051599625733364601014184298302337255545452631574140657226693359700064529391986165036917587311033480552224544601034252970611280139597580004926965236495099131545014211948794350020689293047751537655277872041945637635775692471722692677190980824098207924181301549320717613612437545325634718453847428341812049431045321825946934473214251756200300255973926967256118918786640563941245933702183222090432358473452177055094578089978830790842405081371792446598523405746944309157001988244889508806529684519088959205397667749785089120130583937541308151519216986117313215534655862480622029375775902239891016751749100501855054657560974917279240038213306840462199766664683704677274933184689873175293258745915057680290870005510237677470973760858607904284296012686880061029930766131802018786322313119263392123880430978804013458970387211494346623333249819385976408900816976387686796577634268401805736236074282196904197270240463920164391922236059276789424332740892607711986690214997435066258021382077624570636238844817803475867825901600190490657994657120648761051505244246252248154030958092260172115803839120111713838826238676695913584604674846808202194351023914042705933798728967107925390806797806033768809303875055153595703325548720690762779115339537920165296913992929357669780792253096889607063942184831549365225908843653906763659772567973551073263886770193079722520141463833085862153652081616376499075767262945793307173696301962456360328454961640682390935008865836823696915087220810832337542453463021061385423829040989508210788483752305455695016267742749053754178623270538357934889933855138161546438777253658872442384926616599017275394455642187859458168393203014973503299485357702689595898559634782482862232149260116979716237060724966996120876341717991781052960423337079674861873073271530259019740631570257253454739899814423815835917949693206255211044849922440073836889855818653612006411848668956495536375910290561999618348216930727247825956360128727790294682854254855484527138957832261731524877046913540956447559106236492922204817335858648174770870965198355038225177225348804378383767186299590552898513459877491373601178107573368328466394677719048677784659654294601179672907181662969061214314135799806670353452195818274034232333092637651063486967123688818592126557405776419955812942220071681644596053918175079840676377066978511109972807915447375460511069861460539866805612605682513923404772554579796431696833765814333991957170862211609414115326507502198763974466805116704604476546998416364004652592373165855649321660146739752045769957946525937874002547686689735241914723211927279588956024035899436449979015627942914591338234787490813815209172091878138254466223045544009923145464910881058674850872676203926444161244787730258932917592206654817434209413199792721169057372280549122904470654266137757126217029244552763340781603438082598628258605614624816239202565145188512083964571082033649569944083404114101345602109471095908756880542768438825363671105371523749277531161251458940049695392168452502792214929713684012039322696704253279935844308122484733836153756518902381032640332883455449717670731688041137772152041244672267050867818869989231910244670756912798120679833675245565570417871468864907041747447792078875248390579047419611687565600263894101771244415834352423238639744309329603441586114800452759530692391600214012684901341400178786922005867301540752782610289806719154933674850892258374729755067815738938082996296889951358972949705323131975512380402890630894918799884460324009136643574368631221738043562207006338018544659813270933875269513146677575551514918811166027504258457531932597606402974436198777356609407861636752971240650486527316569842482540451093159685681585826261308641383711448223740004163861236510900400547938031882419493139571063220052030872989709460380597418385485937796206345253736406510418629298823507864789615637415396300181358245120081881147204978284891276097624321888977156166705780714711431738778480875598005670502867386360799376837355740437320880838264011349781070212696258057611576790485639757008829146385213511676824996270225597735781346553607263679548831753149686799028656890430234800257667606739397352322773971187961837245734797231069484586158389928253915776578152274957063410897571967062894436483647418168739405768147733677417177221381048114542784761654793686938640582504361934876041301160418454158685783463180959700233443654175437353743034892266605670680007914094658736785218427827268891032886530948178793299798802320227776682453904700371162530110808319504928978310152010288194631226650145519323722754977112138734365871809212159108036629479473716276450530901379211697506718256069638081838887926790517915079259285530704734630176598500579611527585406387562395751623684687342809416154755709145499310909523485665001018660813770788891698118247511846247396686819728300539627616280657798346394556840057670058350922295922775699782119054320776374876476610239414336887152263564911405534308545677897645230877046189394584996198236093917333839691004819841164304562508237067019608021887380808393096152946033062127133820409324492888114647028356835723847086221336861298595980280487287180989137160773539498460272529350401596295641456503978429680417048405245462892720447022217126972590670964474250036676988492777368375605843251070808551899539384829078245877730549934371964306714539298952479957088166937740034187349683171064988452822594325051688034523951548136476055191193452416841712619029811322989020259030649904054942692914367163165358732116313848001538000095710301467748461800063488635025060377006208279827695412900885905677036603945723210895211753355868178224347985245212856587460615137206152106863925772975401775479672534286040978659380871270781222851371701929355411502949192132101455216243385211636095423589661281377949631420287636252904165307651728461695307888358402679378389648047085777276108791495404878657426933288765048666982226105111866072495993033672695613940265452553154575267668975362912658219299516432590890176795217968954489873902116891695770690456011047922678769814326036363638243211285262963024187552931885621768383491469771498730114478407019756384238553446369275765618509139261679355983987883696576719099064142629182928674338922323204424324149469531038281158023548437055348601155684885148638030856558168048040493191593712612733722865642723439170098758652179029567906850203578227724150319990644276043162887595718791207919013145523825437753868336076420032786584670802963886444196735249360247065257868883319483241159251860131062152404955437518756933598104135508797073327614732500521501406870373877887133884923603819774427132525266427024770316720109763292373853348732723607624223060906042326495971641906302648556562291372438325276154850698616252737814574499812989080945513456421718477825433542561563928302056203119889951237998541289056011491984268565156045416275948183305918225482628782920117198240799102208148748876496416694803695171480791499957106797447459067798275546872781753937541577775745394804716222218684735551770151895003256615530073185478719619412143763824204610406522434243187802900308540736467512432901990987939956063788073933177881968698240198865826995041472135846764314569726570559737552911387085036251370101039055716198711234572810729658602751425153390171178395759340483472424813913568865007713213547189391527928822617897510923478541645493935668162434386104657706001474073417878268129529719216959841586785588426877133656973964837292112502094281302537551662078981463330141876135453658382476703026332145776316281854237450660948010766260778479754679048089076137294513980567889040901405541717742588501025434110783370520723507846516984711688867360180369192690831603952705257396340397819418754115074868849114645659753847424061193658145363902049491200735929867485432870011358045074589912171743408128420040143622296733581968582250099661460720300834461448485546007873881218935277783085924187289095689841468213477969317380801597313427340502057086340982484314589951945765820393059067407020242493145050660349853063931512787600816718909582119849137668763030509537455874358795180750088635246079724754183139310219521795291736362446262017618585990174436246477838885526533244235863008466341171991731755518833338277550060320747669379764879962278326695128214349711525667161077676533872152715268735521680238975797326678525476255840438724077012503522827694580435846193273347218884610815785406965743991782170606883901217301948271298408256076757962100289743890721423212919336591015849646452130263902492879153312117062781298162177684342125954066040744904389582286795126815518593352754707015933693005668603793033896709636564325762927760661209216735865314180145455120991573738369104853157364944746674530369065187856443270485571352584596533253945098458185244588284273942726625669447855920440228738535516892688288412273952522599503381738433713356263001965486986195384629557175683508248080702409491930927511786775825123866462020928499242430710003175095918471642937122264985194143614565664005410647907048887605958791780786930035388326824287863540272760836588654658850800710564394384325437633119557986984117663455840289370898005209752115370313880352199825431993167494960409608960209983016648415947122598558475782131771183828445025554148884721674334734221450157378099020209891473338870000804113241512898993596923518530667317898441318616158413698902644278792131610338255367004193028894519426115287343350825547290748421521294334600963306358883284741800338554391836948453175642981188276285001848348327048046561559705479633233407989365408571425381184301852161727607683551006241063200203741249439271343250472264313465652918928361031920688603046885018204547010822228232949605788402557938132810654926564765185342441047919444493886715823901177502233392942613597490720493166533863656204070941561778545496543533345598159782434245243699918961814321697247414819191059018065381444116697977468105248682794952568388209835990672677612926444410865887520269537372056166014801184107170385739961676772154032983608473090054490007630590869077146787954614754704535565058962447532146315011598968314485559185542620473390958247239583698530143102340445372273042042606193163054345210799314023098148524956250939199468189628115840843134604159673847660313164150645997608978265613597535794188836659394152437798553400522877885664669487528735956383464557344175663356805684567938944309936287837661672545006545004848758084441604163425406812044366795205291285649674789670572672744020013908365930388846952504806750343386506608013065688326069807689894026634513947789805619835611234302524070190275203264991100545050878158540760290555129214300765463288057431871786506416371962057595944310881928156865589570943047820972523082949038565797666228638781516063287811927781224549706636723330157100105051327477849163421917256123108319082960257847953135798840711640644093527613408608377971634261285232286857596487165533246544097773947633692260558994706336365254888389469365345313663191685216024186446159857664378171070975142644130507040142504984455562990333497792770075393631991715673344015954102461978514707001521991174297014419377710766152070829590359462351859074145039584121356294841721198489086291781403498167615692798698093544991182403467576425592955888236743295039304346495866710206654457997907500759332495160034843876179835172067100660602607011792106299867000240183421196362680299436024017582558954185674894442851502125374271561269722188725578189823142515274586021849020868712546714333106514926491599065077607247671810083897476619540486250408007915549872345304240129353397810618902302840184965997822338562750219479209810329808829769924201828550083471189975527439336147207031129591399897067007381049949066039431346993858605224526461357916532185033970787479144808218240133071764564197265890659840213260974586325403791419749384186829872486595427152741161748540333305845993107327460953517317000717127328774744326106511052698534216618271953397732445202826776664119484861404580424893343057345729038607332281763804633992670493025999623068415416405242043389192128156471087483630885939389927137862184534197518395901053077568678726739416534849467979284586876049060937313341987705714042700577943363354706571307405326912641996450679695322805151240533136389778646932360129386212096609811650844056571427084855559291403767677520337931529015783053884250255695027947484307963271935209570169183899859973972359398414680096317586874155554509944432469186916593301419265158624921499773305587133805426825843921030527103304224478507418576792366290963766412453244940620177312512734031310375099352106765834582926814043628913793053183444914824013874528720654327355783425710618833964222339643032996189420368735099492251796237774933482276635896835324570328699871936647254849476780835395519985762283477869797257852793083130934545565377329271029989035210755069863385954486703726291579130870083291287327133874523175981982783537005713819549822116828520864387601664824467723514209726374612943981403431230668501066591243999193198911081666587549565674417767343340842051466831020457630908594882911513237642526411615271821279432984216536979192807534824471704058918776687879306902126377741650860023718331384590328438485825425750138106394062705202284450677019494547834646777025207456837003626834043105119502702081605137446805089785830824901580544356893938567899579326056771910995119704251439423005535692939899926914745335626459430612344712485182778451683739688785310450300541865223642822118930578635405082537513396531187320845344217853805308224269753796551686415034463946958890067534035760687487534824926532063417916036361071745923191709416278835675962073414731283433784689909754931397927679804906620163977497756250828390881381195514640700399173579739830853003067738319465679970897002569015694907152755263289655012297932696293001336900120521834499413260148908201587602220628486343720336223987148746040886273915784384669730949139650700319145719761716120631506680518310933990463504385385368670727263782067460642793980275472282090707889394601924945767091038875517663261075902477651388187366858448254054747243955847098909058492677308922464231554036076824177615479513962371372495413203743806083083107960608839463717730627487515487164667892791273559811336807772142780271139087884103634993330379790345114678549094495252149251796081166402588623562963157645760174968664235487419750760724569008377048025687570568278846827379213132816582854083582653072608767902478097908208687466161553236170461107949384953628513545170506313081164242207368527789665094453760505272762316975057385360214796340554320445957810776846282929602694463328495612782122271208540242564767361049951606986248369790491429339179850746917093304764868526038477107990869792690214718569551580250964036148697703887986504648302900783956891653090147940533954570626201377461670791119798482079287200975109314822938561406471491483288710392429883427386789394252844231803795712118496999965492211819274964393483957244210117207822260198602263595624836927981538784703794703891100628056981626914512692184065771609006904820447727051320076072395279211541778271144536637034218055164187803783202784295781006881644902226742277121213669178324535022415134709400840225296768426409196587210205884913353864464690391129713187583096503706989489750318759801626380390456965902149317402034332455440266469042970065230446473470709421115734099057609624391777654778995122227972698258392727290313895392365218195193227874655740694956351961054892299085938840800911132148833089251040584786192644048064847600496835539286230204365307619724342683420382674836670694689473532063399238558790451384075224225441145654882662498001656363650570380689650535138179081071047038321452406976295012663967009609612535217262108839116715999191252740710364576026134290066988307224763180174310620777651087779261356261989566268552773491090914541617639904174774453828065643113919648303727235444922238959704893000002741018493913999379006782154702845163710467121679494787615819704742441933641855406108639059430767331537204220884425617669619972417948358422958771217218861018368607882775740862482612167715418904077703289718715935997065133145320971886364492629263768213035709577918083133803489315219427450906961735665869835954239137093059008089885689523849683368908755686926908726782246083704535136637761037459408728828567215283196202475688317157164232666624216962105935862978902136317159593173041754389505421648098407198830165196490995336688892770518393142134854310925440307782197172287767299517026842938723725377526117215922458276896155389658084892652627410018969340109059586502984775965689299420580075567301442590953327360298530132872889433402529836831047653272991854199238455731560112710250638352429266191657390163880418819516382815523976339975533233459298345872960962910926011047530783790836671472970789615233062063929500380895150841897721172287010939788868808917655051126984017041536434993500237819347274142944146022317005188205177511205659213853747701298676428032545734774084808566099579739328019188912860371953194309384549693252333129702838704461104761078607740168943462631987962873078923217167639136080719915574045357021744393081618999688718720654123724158216949661937226605680850927762596077989054491055165914511309716583857066433793021925619402199957516461130328497633349101758428824213786425721720734276630271404246175181574754251887345844688038836690560533962499205031857259156589810305331943085866357861151617832441078952681285753044102787591313083849218583070903848559468871967481215427587473405186433094296671971621310827457874066571971818280101400309676819919670289553793912412142942597158440064770652149309812011617745261137443607790709316036503279593773597328866354383768836663153554363938957631523915258378389682601320076628710648405217419759474322265093640932303643789062161049485074929898676318583157352153748972994427424782957804344479771046586486675165762259472284771057334497997906849861521068393941323197682734907346768547254065060137903031839931942217275147216346696471540532435308125961200576166174210988013672015917077943331699779530344607268888347325231104565725653700908260380116652874353496091522747155529983469082533445839464359102168881222820485861870248051376091859378513779347991189698853168142627188536968531049260493574806158790138055122715152731727982492304384847788190310858198039256218491706215924704035108473739347149513060322444552143679065390640693587609051967789814796634171516042014537385523796367401293075882463008241477716619998467576859045768785435946386290417175828631817187427814004741691619367537333861732577570389964002539371901285269673910333840269411218394893044805636359204024647381081181543432959776132490670787067100094468322215654150831311632150434368230708292326070956869415547336981597082285083258616182728089718211084933609219807517421299812004955099455785848891027627165678274454980409660982145252505480130370404795775292940861000039686258837855182685080957452427757669417595076719127585051549396033017697710781043669810619874924629000698675300130710538997904129363154362199143027017573680210034547471147239340030853825802743781832937475764879151209084199510533489588684216806320266829707983897481981847088684715749268055230632700721693937053115542884186445151158537986154598504586699622990630935266198248880921603673605826362190541939127291428739489419050550706416897180214553034608327144992066335541120963685269245328783762417055861040467313181687760315517999120278735134103286544728965239492219955380768763943853205271516933048515081191540386206922304466631602554263716583931318049451586014743489890330429908596030170034238406466795054296789258261519898988793657710795026199756992719436284068675238410116433400580570395098956596549361088164723172773557712367216828388235372279435383235837616485201705215700864677773576722706414163774047871592135326395370795547323631743074734610891680757262533120504218487646725228005519452061243706520808559029265338515223025558121240885178881741955252935686036122503921298316499417219626843660485109587870384393338192181306263825129389416211377302032096244631757366167406349533622523435037404199430938096445169623268854295498628739647802317403119197082547376394472922020573458696006281577575765175035048963390063098575806676957143118723239951796997699921699502296554185957517028626709484078299695283245707044052613919127496384951161986916442301273202271131433425888764943766311393485971636408727279897006453523959647877022515761196075511504035385353419016463313862221676875187124370488405340737983749788013950522881932488782491752825482063538399724335538574118030818397531482580614886337883158554680910475117951153423637451307603971193439509968606262748811750151556282065543117012170100434449648843320670141698864860929385479292862563726191919502940308722187852834292869167519556903412863562536396064721770439288268068053301306016363332430596986816237098172988409026054378944688646899051668656830785496891283751749824146258347492819658338236309741621820820390344847585710834050303720068737131728375289206098349025131972303310256828022949336741796187655090217227286165568673588310549963399557956599456008701623858495070499268788425589634714084004296184451110106538580750404870553038813935325839669859459173303031761371023731295413317499763138557284035886410987358962423963316383208676819409619352467765680475334407380922490007992145085104531233719790839774359828038431865808098351649052913157919651234943432341513377258305932911627896053438607664938296160352909755298686237386188105000006504337842516350328645999289387384494377933448520275610594030178929613029060236621875450398459463549510777132635391658174870119089892139293059935171250244446325452724867199505504555372986800766842129935067180724601159948802292273573887275213164651190751496444700875612767884432107717497486848949433010051734215484385291159278126141130895861128568146456467392568749377186620244230090530200578947745912958342836311206733523319959298245815817953950175133916891556250164292064407867215933783236751264489416559859644007070183232109369898249242477287834295603962357023401255327969471495868611997546201144041892612444168950257390438956479973411676045354280871353241621011213300500141876066007458040564948398526677861755126762845399004202906199525835095455346047089142396044101893567384972526418267304179591371941869095942998402352036736589095442364303357625240637769030432594163100309545444439331325897200341642715783010726792203513315904177217069734280526997673864919693063933514934896632557688424984556455402623386141597837182711050436317630494030778436600792470698525028174438468890563337021162468666989808087600034358941782636611666696821801418471740363825275263529443667513949346659279588620221299156684758012805467125905759120913835877479996842928219482165269924824427520816227902278715390030968657493585988245928529034684621222834371651174772804755055954674764195714208182107197253766995943696425270467924730982161394969236355270279894004902127215278472777495302135761120385179394671605848732836785975862576381520715224310744323880282859689053556629236958740373841792548535601143224503836496109274247002817473469374976024100732319488035940273019130646815260244823254429994035666408632363145132337106636260893562003963590419839469892638058159468870194466931585637741972141867329828311322057046102893185770390167441399914641119759809437531511561827069647043276375865123167258084158604437355500204399028776386421118261654094609969557951725358479764301284646765355064472195899247072721302561694495232770153715199225528143784590261645844542089968832660660202195780750576844435720705866443173506511842679119974609833394397539958457051059535169232028133661260332250865316483430404805764056857514848279936605157938267020142600134027127058423464927620599954558905501357951069147053277022042614723650277693290605212935216548677586355678201020659601653984260810183245968792204716048234850981058222924438293456328482468176595559958484504031723794290146334967437895133319560443046573417776686677864430600013817862781412946378565414002519177637223352713344253619142966483056676266399079970354624622185074564097539615942778189551772824597877338473581852972597969697074410861079651737815100878024786321371340842709741726859648434769082250434947245909068359025821444138077796695844458015304427654403067341822039565501074335893699492782150801485133676820398835278448930869020152921112043016429346416680246885592999434693230282696653890693823051613923354879637787737522423298901991132014579468799536968777801223066256630527892634196794363571106974030307685027568547308317614783088096262346301929049987502124589831738647927727278215798804277897393679418918656725231515131001898843267748148402338354919816148895935612053757460248135057314918966537197615461722125341627074136486817537163252273794324130150044961823388404102722334835450272154858983327614371086945721624138244200124836819620386531675869951065749462042932529639693171365750380322996755176970549687284567463115961207031127050709935797206423052794111973634461539592694075450541937646344433347827165935703177479625552574716449102590594026293144594353813560932504239808231407494556119156245765710072694561453532595732348477368197184174024326596646337294373834513148625620204810813684362898333292560808877699022963215667040132431235789127660702493100152292508867291532290392412892951755230446987554194890522123258368413067026098907285553042512557350856545933553529563974535327914026119184382952705515954156430456769797465955285049534333664922467150942302803139136177814816584136178578769823716022836812025914170021991930761396581733502269506944870953370000382524852865988887660907291330279758841786485930199439084965745508520171746440978668957311545120351672018848802988899234963970532115649424880578496882339033842120099175799009037236881368062615478657569857307032042527050852974618062309269815568130647458232904561341227804632288917296855378469378672960254279424030234949329768335031790670261946315601345544525236627561471499676829552586180667834749987754843816986649119193981624065359102305368533706890574393799335200836567825402174880757574795447609713648066300535826612907740717439979508207820469577160757282510855742792292168917517817840542866717033230336954441730137115520837707799853619848964082114435199335306256853928066175509385006849881045750651241201476988574825247869231014786356968703937417468214984848791670773319721749156505825494547513103677121839241444118528810343090595904612860793825980101424482689976266034772646107712174969416053985732592997566793530139971108723841220329474692727793650171739094277913818387747876276020889126924675969375870756574005247827865631268103093884617771488525360275653912926286931657132017229708704448257498236726709566705407109780699394976779322482270846351675026081439902817243956376991379687636713863198806876900425078201966102343197561283662882360117411479606570993972478555343843737206853688565261436830555820692858098041192151114205860340201257365822808201348374860050680435328103672070721963979818504772201502721716060793377929258317272991367423622177119449010407476488675442851845736574959262451969170448644936700454018291526922415196431145749314321073759624089545641447353700416928499231998210447601343551234701544831016396208554615052049182100396767577478921467145562925305278554318890098330999285551000684806903241255916462925657370091445429121874051348761381623258712416113577951522405868002836500842663407625317635614922718580003054490278534502287719770925382255430622055117487972742344510199647216831201255523334182887968231866047030441995457272153404174017244571787013552161662579342075447815781998020645150575882430569210492424367450696736952924107035401612472260106781315385603766692417468361063217253799757308169136246640217660912896869334218730904085872846321513212531362918511829777345613253307496350116195275785824806322768279023792756176013712695515121984605614888455349936851637956587199123551889962555915284916115212333191900734682116518975139473853557926467580529507015901446099515157583337009437871021590081057354893021700059599631156830951503904747436460243299989407600122479765068570406464595511846723752090932434927002008524183060575300794754027052822904405682541186428328310901237052009204905007417459390697716797112565230530291548028946153513700008862658954923554156265614471561212415534958756146086574586747376656434553825903265108884424770289020089935660732670762085753452824601316472519841526365038446785947922049868766379992027022140185926251639554267328712295470290187698011643562032570777257092513600023826846203602444208879632509448419149569388753303536826591564167856318239382359442692668622123823705644715756081269508586515029339931495290428508737248909013219178841119338169091562630917724681921486356055746014403194963715086106653853014403280547857859129841811445231100910712726711710767422238943321173058842562398926958757986155303117519849389116234451937172118167173698769864581858604762997437260862559191910522066511528017014805173704461017137858983907977772239828642776810927792432776367539553453663102824508557682300461294201112055871610602206126454729265529993657047265098698726179052636722838509050924159486516462302914130170404026346935498978389701240974301942660753668484093547613139695785465787009164621644209088704892165762487996089075736579749214935934764707101057988051413616134966330784476964583726915041013080987839856850621403421027293101833561457383903111963141272166019447789338090531951922202010301923048585054090271962390560230045955469911684966969842274950321274082780808316931046333781843346629331138165638941864265801573567140931321680950914765503912692442439222189550067717618153456673522190095113493069353630604303810079654032664090340468747563133647401589776286764909214993354175033063585289664099771639723285406049715616366938867852854434709838250933886809677901912892889135235885467495670347702650197827130345683511009760172743800124127373308748846587119054528197195223054670335820589827577871609745766962602932837583135730020752119148013942572153987419819182106024251526209320804966878414586989128340544600277153325411870424347812608086519297754219000824816559958785857632938707227682882949986673282384806048150437356073673759891725830652156375679668169586237058590870789683101976911900153637265940927206805807214199977750752716603821930806012889641488936329436365565325951884808617582335338182455715923210422257299543895198122714007492514320507679015014571502242220110510642593453497815759523315856346132892726976327983027826814920951343420322466804980480514617243663067601625957437520050305696941906536448499569413773768884369075059593827034999996988848576647855683391619812687847810767659776225794454541893072587479396041333980960310975079679092058243602244914632809393844036062877405477833549559898218129963209823896349111890358020813798842734859661081313525628523634777371855922597469125503572885203489023758251889559914081286562231510902730921116564623220681662023000177908877923773762942049493263916345343837151106373880270994472526416966690127086234234891001225710252931118674399951373960738533623935736922965947863272533837579296746953316577016310000499818669684607201567031831516339339307898119056935063352534434246009017940496964369999910716004686200884826318705175110204585181924130147915179707867614139534985903557405038762402694085417083119787193917903341645291248901590086395770288691526383019412984900695971647534252586818615680909942222205286379929536423365303498189253217827167225756157792287842100819275999590782006210742034360665764185145715824912684251477680115915557955738273623241341896120115975887310199164386798063657196880763248784469334466644675504104461443068957803742426467493029413087453843731579810151041807344845147176190784563654885984617596702102917061508404255041018675288548355513368114454510651998840230758521180308990154644970427679369807445358538578200817606487710821741052982700744087481484436139292537106501376666751370974416133052552193744066485901634624601509906825796539423875866320942110774908191249088492827606509522035864959080369530301695139370921135581934102867475335517797340514874335714566018416946456466242880886214807832800345655554726363982301143388043339467278143240006941549483297978790893021124919449489913657414945768342065317121839510539944107281630200562874456781338522973796449288111364269390593051690075810906706951022457553942447889478012600879992263652072143488409716180389658982199269374847469813790950990380415603932042040142635285185981938052773382608176226106743118659869088361431085357913166099853630379373977745766672456229760916923057752482906228045294018029446561469701488318487071319707758018188252630862966107966035006769580426051948405699736326840500421597898193350766969998316786927717902632316081186431882569724490125573172830958926490316799027483353421985022704003036027363612237243544840089132202509166101745671089814510517604822491127819895090863011836223271059853276314003677469498959721002397870214505290102764558825464035483482828071798247138678760227821841003531449290867644374364775103340681581632770660184201985895122933293147719405777066992033899287568797977545602070007002634039935289818871204540589260090823716234060194656632676225923868939785052309316441170657057892760777751320051249628999728402831513111437152024458838719003057531353830433017171505524476786666406326281645621082847544820350504029528208953106035908324081471709688965039521986736550642151633129513723179478607045401120586794706503751093143713133971623855641040705289361817509567591540446477366896914520547825263165649041094525994173281284829810255757969942269060549823403907089251546860476138955656319481560954732335032136727659031395065352176716287620022163335230105119781541804734153364844648625609317558944819771908128855947386732614623134097686600921686973341300419432638670194887717394348705280896450540813242540429232049563897417031793571923587838808989135688323206536386402243176963028305454851619707240930295208685221199811693376959896549193638853451935169450770012418225901493287279759631823979102457327923768121724498451207468046676353068913219156838712272086293001501385053451015668775466905156229323163168012625961409684257199784360324275528191471970194372847526246029952676858932757080870135671656697754201004822874241819031250447861631816180696712461314953319351276321185918265407420222239692850855056515822645520200293616243640769021949922924545976060690908035513306652943253634249521514824931595134882716673236326504637997185653427405988136769427257914922795038712486272711160912669287291141329540266850882268876626267049559008006922796969104822492785773866628354880901764600208286324953352077182910081598705920413719476541263002580461533775734847877250630750449949473680652088156375193786045075576693130894655582780107350751426178237054949904414991366133130508643510779272515208512240268804320103429804052295043657618229509804810810057551373514929420427634996818372129980586466737515994772704951323478450279697948442055550761971567545369242920329533997168696027546864829954056552366985676607291605896958203182376498128345685092108808595084295639191258913773893952438554886356384600070801967551741938610400049052983801736392978016772626672477331122030610185478745059279266202356693276922975828553361937861860148581415291818909511859786739546495245447576242920013244213229110320195438045337887693074157447320532358812142283850618036158785212638008293260096368339239250956390809517560254581192058475190842356004615414394397305438248617820498867456966620093439527096810684052746670257519969854675742187163804458989851748614267398256298476298895514008233015631938991131449642884676912890477141495337550085623963006589920512899215134198297171027032172275501132484247390691633458081804347949284699902713420254269954787426103675866268673838710165934781902510415552401434278365785181951257742113361829907420646933407471412208941989793947122137710586711431546805334119040804694666057190210508002022067918127274901522308041724486726856688593801717635952323695621554883423126826893462147247563884548128613553420805231653635171571001044359523543393641535905859480193746595010880863192960719232940566744597837708970136226588417821701914979376364512946588135853088099232446699612766577704714065788648950807742204816534176903451167097889834960644556980790966263991172721798579965594065238614176569197756018511023666722116735956467734138048257275308967101077548457771464700243169793486486960824636715476855805956201875846079096084891792102694926475902759170938928055603949687736718865944777373987600259945613974146965516685210199593950514680593217394362675194091004877954124336192148791499360402966997099601463070960225660624094660118891463850012441906354198472466594465164653136977142573021290040912967256767236353970638333469366526296405185540423119452913939664779104244211505010454795246598634582533924260940367100465648903662847589267695276324727861013056577848851141325843840330827120021068220218085873892289744410864592104419782914599893684011738739554914196765130664796996089940246140403869603414190701491093306942388442279192165900204127323711177489912552193014211865195913876361362848894361513373704027689432026738066168774959865536874808911558275794115895695833351518860244826823926898670121333921135742318271870872508178223385923228617523987212606652612283628407629969631215395340139830554282456502060533734838881872257696987048345495200680938593062877118667479020326237417003845620820461235265566482567973182629754970100408733994323777370260617260772500375312384749337734046940750927298964027627035980102638135854900236603726694965795385183894792607771922720381373357317434744857577176621999317550345863723123206983122451896730874490579533736210316274698198979413640308803648716432821945828497858247449099980163205314300598909489656462814871912201145165010198723939044386424172155243891781669561147256083376363327576156132103025612296369249230394340105958181103504155482195915264455038363567454870008851106564337993437869800215950270777856235820541261569455468467044188398621652804852532041171343112719620925999852484000682464584367236288135726803842409381412427921142730281407517229281964760877385742635742353217560605837382070214099427903677975300416133478717721554851738747419355449755351101341353669822984929231889793674291799369435410955193492767918372401653491782512103713092216252692043691550074712231243644330273780629392392205997774851931398730448011025623484306581764059038896696329419506655841615400726678161417223362783240928829951441367795981264745111500202181440963938527993347465822493408897723861101578104210743068523970487494158420607131484513195466572748889797608428541368848613373553001191124305716806538774205070557417703037191864086605507114126053067918810084563654288245975190286735699089260345533098893545000022572217507383923020088820214164693347395129094005790730729310453713207934085593216808507334130063970008440470183737990298810672294567355357653086684441921499020601041600079842282328646237934821339172266312639596951497693564813252370331149929037990369517264807432481112358970830429558476022922424499880458124669124329484765491212781749920627416895931363834815481358341295177503250972638089541115177970736615151698135249823055363467856978478904853779505726515194361537574078040958916498743302290625371964355191811833482559460852792387391000973425111067490117009595985433868215618690932966507327463957134293921986666306775770371856169012005145791545418894985515380389810614082661810837308508884397734375950573106482017835836900383868170108645663800583029734732367333975549191726926455837186833419500340364374401085532954201465913461870824835769341956608448650653739362809652714569241247462604534935462638400663174551231722615568711773860758461195131172938513142098398188071523794611135996524501993418443232190391504610897897699748609437010156040641207182666827830301985582008345825133206475707327983689919755084214091696480084543019920767458710540852436667724182228155655204224194694055260019660566265340609482146895645812230707573191769169314217269433522104315870483666478293849304538778120889495560794482279464459404808064790767194656676860563188101311006482608800244468026654337235949586889816608808781876290921080467181925632239321052767057618644073127925521054384573128812178008779344309517712230129435327742928738982309175132973701886292173592702501740063205215227231740564471376670516563995603356916750978983036632462981909180406901918157455902984330145195534648513090279452972486203517596407964227381300628273881833046580940198306055212838194579632746523965121582527284922197480971224494776851014576539792446256285190205875653712951335889917425261647436710315029391282825188741301977815765478572781204893564220701611484059071940176546532357341387528076341052590570454186524694591857327252474272639695263346844661756672806238674807892529100383079956159575977434964585254351269881632704156472763841736851688130216261345843496333939193541823013797375750537189655377293766982530867444534480073650068946737384030268631168693097339713024328181042155350784181182100009490449683704727484369225961633422306685568110271913903506236543071664072446528932265842822743323500677128833507122851565292201441971699106190028103661297164971520307478487196030089615605617483709023483464970776998102414945593616188383439284617503231427291286048914196417068309854329071211903629101908948431160556886952872931107453975680559642056441333030368653719172643733959788401085903172389272942043552380660472215431259005522803123608031118463351789042847094811188749173994697331342275229755304021135818113887557866800732353781571024197121770958211986087239802017954709644369662125056543827175718488287919812510741447429595010881756273266047530073934446196803453550718910195375475832188916343061520800736683998537081584918397315354115632000644738989487935635737522464803538929816725145081126215116954103482192542846411963712872416762258872708715170136354902469300820234922333494477851396359855221753886981452287078122509728470503144322985020846996596431757604636902562267427838631167556394006218641281311418829626054060832328953586817822044099991792691233260325366350799957573619280199113777610512945383105109381794248014376980784818736893768899113209821369183059033037001890941683819351664486370835687744056514493262331787371340210359875768134440111307754902054681437706020344241445519824608014282360579130540688405863345880262081731631577002714918886926079160995485762804845236709662162700383260276378663414070637035783231307858657134453105615143333817423673601083964016356250975487246012175062086818722021605958799292281907533226364151229750799001280352040151502226987320011824174826272707298402024531852124357261656314753237857153840402560471061574109185686131226659555861545757467206966816719041614455547426012757238337812956999401051582834955562126430286075042066635055219335383838810857899311209184553834603563073909937152740525910104781839929067297477360690312727138677400752885365569943269742427398178982433150075699150509413099603661547136284970196815100269604185087022082505048388582619742539479852948078553041167321467083137782154168227270436601775460453916037200248320775280763415980946863365285645510704088438971661802600311829756593993193690482263034099568229532304821671377619545749048793893712101207638967512348744007998131715124187195005774676059567098200618408970311188216455444332997119268368191041214464250566925183009980190298289038452497206826655349258630009568336138516283999243289667212816047305544968867419275551771775756268519216056131596644346819572932385064227100375896331217808315453143852804754618783986140196071474234644449761482207948691559417320046757373820005781171213224747537320794098783954683723288824763595970891817297401526876270509103296957683564823962432951231139493372643764556874880020159694362409812322114716734417613954213844595757522060121346799478757741241983607421779963118438542368641436870865034023001379186315195820423933230705586704108696812771372659464818735766101081265727521618289702384911636606184328171233369128581272552984270964694090999163618447392197693619410968576100453131337167078013944410040347066638348270665012604605474113189440862703318121836939205807084971560125027456413814970967307816817656611182581001902126176213265566201293170860980938426385108941962020751743184992121502057561629751607323348448369502465084811569823466397085912680471986690698045234224911337617910521404751874505766431118425007925487347002043132400900673906052904786832210826143093924916988075503425430415081056740644433437271658241239642520210668123485469546649958868089368615784173918471843925764575878952680052144741230793723775928278464625213506207239275835118430362944201294805128473328991241710033923029089615373712133892612373853352214229229834396645167221114292816693568321468443612337294744091552051752170072998722128288409474888942789409770185902176210001333895239733408586641283658347302366236747811237159656215456344391235524027252151130714239121779366695983799321294611685195734839757829806694356053057248971043196050633357717664780873665339042668408041155346944080100646131390526837972980369780885865506291069182280204738377927780341517702515884095944380758915616001116791106142481022229011432178588706656766076967151315808049724641567083514797756256820081774125303577518115957483222838105738657172489153257514386502180427565946106128952681640244887515115058879678835754152903579377808541807833750099028803857535486128975510829119503687060848748131365764454909851010346222432978306174750638091745876056895378470303121242376685800076009054459464145223845245334214454995772669574392846522586185784103864838207063668410965261306778879558266016613607719973282611916127161166206508335184523798277821709713463795449742357532364448048246603284708166151907573376474436424238247791818253568749655915295720906367395125007329932713801910241591825589352730639405944105008094592875437972036040851013001831181774088254066039880126965018926403793816380988056056371938835958699797727507076281105545926523072435776609585823640718119634752449851537877056362390485786641350369709161453692705508002330241101857203103400627171807696539549764397150933251778638458887560884081513624196517373041653654472064066198889584895512153442704773774680410697347422440231863620554750266673826230153743823951840353015009939702061488980421203089783396308642543780863950288869804702129235139776187617680891544789390390759125576115639502368716722574776860980084109737433344126013460896746350033107516995252099685069461874107221853501077538467125150634245945332995466371454714436445566765314248499823608412204731759548861589274747451797039769097481214031798283458688767640061737086058616287045633550976895588135975313177922922373600286763984734020987195238843772444653853864372093078171938426601883307657795298359255609536463930688205915083172248981713071698734151994544271251154539784173784057109887603863975891125365550627026800200595464381751054856560841258453112406912582404355629941361063568793674750308823815456663117871205508901560163337760200735278921075148522877724625626871148465672812422026705021218281915585987733790695871068557743107328301157910126391374906475512754650573591534001383781771315917174225704564745559940473520423591133048470068156204125703436970929181489752402052589250219627866008831820023709866940195540842621391796792388682528661528093522716102507765649570948364791395600785824366640598346033215661544017573633576944553003565698514325042905293422580609098833638550289309629223607701789358088441734298673459311295286415498710817432010120520331871551499203032302243127663245969988705953301843818231435029379849348064060499881872170408755756820542542716018393667021591972699488166055984526715508650939240175208941026766548490998655200937799264431272156374617826908597987643336797081856501332464670836839153892767686843432756020711579295590720686446378512895208462185575685541215113289191274393085899511415030378872438263786475848723579427738261397360657451473583065032756973633480512013032252685509557781371712813996065146927403900967096755563586129350404108234313421923503147799646172586731247518440909205407032454454507130758339730354185475739479917890982487146109571390968461460365704860378584509605806878311699233144480804020648250586634847483085686522027171546094737342398878167248488106350655141304444133931706650807106720801992894102610968930464037158611949259329969729955454479613823589620132967178401515597640047332478915940894963825324691978805975690664142408367191474842909605320164993304942445032968591793098710323423557167805636535458244765644476782949448852403882881916142014903683016856655944740406297985884692296281131938938792868497245734529132889271336400601741429422431041023916789293136123625870727183417044720229198786437869494265709883190114977861998570421391396975832905898027057073321050765252053963963961929978820557230149737715260428424093180581710284449312090178708333954902073903958509376077208370580469324902774332945850455663632036957867637659426576160986592476282414845824371546403456314961048508395566895208016802890711683011755692751759530991134337714168559420443803142675698636210269920233290794805126556815643272744855045056831455665299325514691013760761501255497352470858244952042181131526200925143097633329793979566967208066045349662032367298005641434974940673721261726032570964338768113705564664186688692855199196608602599307786595939152857126441705929189507102297902711431333773159347733903521326948066073026288145803857871187889972004380991372405647597749512286519850993077278546970021338365988222441797956968971629770873081243092453290869718141688003731163789200000259703037410435729906650526293414684967173118151822847082048645238720790756068865524807119560881239431790350065729972346518072761405025822690951899906534118430961558667139919198032468317360065440387043139796435013439144055042401624873892822540504928455098901770844321946767132845503792863733120478822794703072787372830522885093786725211183066698252602580880041724128246324205031571762991009251195559215831549613025866524683797175576727112148867596537159648138859044762522374832541318275455402027854732190220601485758940306507534282600059580957638249854227525483213027343871243860610185446706863700347117536679790690709116060484718346767832031002526541237438636978791945455169183769612941797923936718847039087585239734493610899808501262297217519012372214810819947228262038948737416284776782028229837552109966304898187487338259375831059657558988169024683093883378058866986348158275309354556686415550541188476211713883706768940626658917882454131787980102289471677865335617151350773629430368584445431278151660913703278306927289666493551345887193335765382871755883280471183474903719173351251036921934316542223787607157043650939428153504408905430189831119343763237112603968841484730704023710267440002279317876093472066720009539881475007914603837089022394447433836586818272580005604613757600515726034526482384537636929284540907816264362652772079918929919358991377035592133347363590915065154085614995786435698131744105778508356401208169915265693880483706753353574690367199784934567985403404325222391757174979091987166696747003743580300388021324191506026239609001820264907015465843627794637671080215383525828327044926767302087597257571679034499153750953919038039100126328499553086530981461846071914307083786314228833573595613597153666404449576621369049435401616383837106646302052469124644389004682900931752584879061714144546311813722287446000673560773423359343278401891969846841225623711613918936946347285425096614277161291176140752234499812753530234032466469708076052898561384989495219921793342011024334552883068169012386226298020664422927700308078034210489778576878297793520497422884054093705542907707391798834720266675435215454905840051858409155359363523153814401927730752067326145722356431971467324114304013244769390447136265880440807747605031253773805136215319269676906633334676985710980902158260538060519373024351388919877569089920890140701355561624792929675573707142225384863700868931185461634414428795855064919846870757543903388504551781938947750394977480193310797380378348306238264010787587306025866123038295085975677269376253773508018696122151265577860482505610750626582842961194903701284772182538310711820296830851380581754501197136241130138744140404863363574322905894862539792669776336069282202272084001915581677817984001664882187655809186769050967395303774234877553432633399909522321562427490288855181838814663887283149583442486419849648113197606141615837718854752565167201870677726646446370920826444110652788513220933943038904945383620225407812138316367276783479351163688978427797612319559745793047543551195122943215637175792632083954208771617610871639303550256605665767510708005076756009684812669953411119520364714298181472077862004352870893465992541983670464994183279301917608166923047783715616120042818887939623061182608136360814837994669425663144554652671152799361174074396882466201816192340671988843710840933516446339398223772425099998174884933324967167514703298676493048405730919203124459319441297793036164933992329816614001620516843629147468014475588262594953383305754151542454868760797186841300082142593228911298056637748528766570580832463860118614579359551073622178539543621147556477331537323426011722208696387688934939041509923690372864297873669131177306932191183586304337970825166486717963890201057326922520754614459132074771996686313260085156115766724392622205505393798442017308222616447806566368182645098150220937340779450247565968677662407381059913836441635755787456630310723323733934145454657750998698443100266559088427908180614985020928252960384439200543950871021895948040617024079828259646440281071060726586463174221295080359716204223161560129106708880541720078987351010361364553622264835729430016275513541860334239916044481777538386853547249975767040574436434469961457892266592045335666219162629624989363647811906824005523969989708812371746864673464176699178512585584529232315131878631239254941008950683433012000813051197779164991609707126380064856998088758499624073708928851754148794253727583474380796590330194584711976443401680403440035241653622462844833279434230575753205285216563734836852344515337569173084520943206502040935572839712777360384025874406917780442842981909747089469565110298407916223953456680022517420676832575820329343203589156177907648642369359634870256374115152062754297351057751877341077392931182724467185171408647420185882872007867380525853156390272529855642360351866367318572436892110921131215320241940800285957773728355304406643522453322846261009935793337774196131053161881953479370710735711529264195672697065545363312037152060575684653089836803583436373148507603009772755633747277545029587984902589947987285634313512382158650461475038112560622786625690013789868250300306334120745916166826231872524012557328687464425592530179425675411120978986235751894252664966898847488168458387728290139214135179125628072451454479874397112373533055585551185380669326655629124513049416139571782739993251406835820417690455069086354315042524824121641154458393244213017264066620114663919292420430672759403298884588850332086477485776547112553518691390458941675993182018640821299135819256507015101059595335458622618865644709826816211418083458090126445686022842493309808791029475990902258193419563550907653513437090754379789904048408677772458983203725324776265525744188371289017855736390349253799596750654549719500661131194128235303584849894143794225449819263765943021198467249858242905887213132176190654862076457003442320180124935668343373516614604874865740245094114707304960844134971481144294809962769683534111763786171400830473481950310819089447036497466736654060863915807608622429932142605903480029600659780507052488551234861213000788031755404247085076579055129593096566658609107900618613551967110606719673160541922222753275687352497826945357447672213617306905620610684901814634115795462127756879899249731344908968880873064687851195648787138951945294624231097756147971262958082616032369168723286854971954982971059591998314646881675323605684039712453417294569485162565407360892795438009762321786484311822512944129000948265778557347477079602521039281710278070240348389034926069553997734387466962001244518723219279963551329885583165842552725946032321291606269346594015581207646879372591140411974394011143360173124898035209930551200859282144459579360778212596713149756667200037950005343893409728455073345704582042937353089381447962715739188358868922814364966689600027633792266178511920102566398496019176948390472432692089207848177318642392503658818360468095812534157158392922370326412299505872943281906728535851942217086327400069969444474216452408343625184948478854026035374746663907646014144515679807740930364944721838730654580978949561937419716482406311418601686604126609436151289244330729135320950383478583881226087677519899372171067571614144942735103717846561079214806227425355058711659261359740121358540671559488888170948252704283451741988563529554298730430221079235062814348386435501499140356566929933061354110493881871777919029889557872827782200470616237527678876151435870177389182309211261985975105073790691774805087472684580077948983640445464410886187453269021236396176890485714455307224521633287668021899992431345860118233812614673289234288874960262304917481807993374014882667523150187835416460216427046565402647141482167377156479140272892579919153519097251524871710600415032640916695071187260041124275675466170246384884797578893288553243840983563768990188116872100185971923747512320072783175023641201140409012420387143983702298451470238480748606829342640517826698791080531363185701298729544655993438942843495072705891108683496157181400528168902392494551132267479677274404099145102081539379601455604124293751630178640236118905584279086898431089147618407198654360922317267194848628075153035836528420558665729034909734539492003301274547639321801909797260133832573368919560372626381269371393470212842717844911698622484750890790399737351215914057218149033795834128071828162237343456166610612213473793958854071227036696012261671665465235333820059355673753964731701352102500262853983817352437766909398751032258938124054158779426492578909927176459347805023036602261955794949464507843515319816762434439493336138340750182277414228772644055210285375662193197059738853380372412432314453368911179351744906005108358400522188888154214438345967978703252850803800686430096769752987026733592538288600221214758818427253833802184429409133391819292428408876996459555354028388442298545734925925444509707206843224346189298268029078144799241666723901476841948698727090597723499965356812694804208529842791769443404984784629777347024557862305796217111506841283488331141397906945055100023967395537463286981981732100183420287961974565771117020135087735374200405705081096993329326445901208530597017268874841267876516899851334123637197644215555018951859290004649005235393253934502055502838231585617617673125518757055359289885595771239444815872191402109232216510021040975023034002417420755997626174946313819858386973985023115702175460109646088719996537571940983040713397268068135221507875620898846064046159047088285063697239263488551464846821475805932619846006977816324268794737579668607482983055015992677860990388317861027259279161997649406591850803875469814071161477780933712959566039717549474612415070705319761737546131643881004805818959804551322778071574578622350980088040641869881887411965510963902036110585443185795683982222610656829898231695699188700151410486074035985184730236175862976965724536748345541090543432312563026318475561796498572858198109125856937833977719084527460651602875285108634291338113859039504049437984632798490630391130842955767349480272760393890866769013383896026956339020208756636260098669642614533632563476182026018391749783838908419291057698263244764324761888645168131564904602768769359409166505734189974727093065170515595200152950495436925276753443207767490059590598395364117292203580456096709873072822071125328654076295593227105223333057489470599167246903930069966509950113907842603671917797046404547881560321868412736653977085871044029207931620650158696753711581722428279824566471870710036343574641688514758882628907711839581503658269338598841103443693696089354430365735734515021672328140191497030750957650217600374671903259235193913857362808674874284638688250424307416590444563212836985608806833751616661900922746145981080213482907494182687760750352432553356810212732244355968704878084126146577340044043097765842848410558211133344998549398568724757631265551106990420303344133220096897605183981633911959506293688455949964493282139979054835545865689581726129994678143379067124156272719040175554402119765033699906170508552732909297194212536012161378374619551585402877228617748677767107543378252127200255562196968839031374051117338172340905238650053129069924239150903047553516202919111140603494868835454102874942409663162145124322642019977761059155434102399943285056989936473765673807180086420700868689958244925680867771975310915755764655090356697047831645585111982786885048763493651265444373588399579043721561445256900619391521760672521081366288011573900580062294358707541277714570311431143825898774769038801819693100632967813304359037284604086618535832570699595945220092931420228705276508708665588548641281774727841487461219977008633956213096698959561254496332471074632666697431998205702861944567669528322484251924358517960701426925448387221001156124780714228729681252263308464644422463778926987526257067982199976796470941661530941952744583526604942729003646276533606411973282370080764112458460725443020722121816756120868222995158835116287060350866684615030674172946846060216148732414247967865629102326446037659641084685628148159938027294171001343021504298336930819084433559077618352627514067731519982806584478963437044788376553598483070811774226075235125068756184376838553769480611894585834453494380914343989265353861616869144509989944813533981804430943696731217961518171195264150296498059696071009769480853884444425842912292759772908919675115741239424705662628967551544947241602724077535675273847045257908348607424688527895218787795151190611191678914298059501367861823642389765575953019729526060530728748665209828632788640176869909517068256379494219211727929092943133871120925084405983881415020512346011967686657270341296549190785493880067112216588231782602279907676193609655691129678892040066090395474870580483407282368337380109788200073227508061301783217477672529684061302929607535181879041967648402087071256765749662088649475547510366822507922189961962348525238925549940381772631547894959947214150971007774885472488178479738475309344559891070324515011782610389537597220167812716395183794989676938437067711970098040405173231176128530944821725591030922522177165716761329807013493846525142969190921536808320805707476177357097084101831361560289714526529151172367140110104558339245681304981929845032790650830951926909931556143276564648414485056146954165417097914539103544813894199608370795843816881510366866759173773948471150012203945596034488185631255945485748610245314317943020899085359528998914593862890417584502880582434378356597080003001584456490165364110701654660346325572704028948822849548260068851899182168339753450553149949991207729786627161568019597213419090050414512466045796669090595050410288466727955771489206062369566221198012817105794445681059733914378094093510750002560284874564784104398360689700077179012714170070190855280327430740725963744274286730017011795453087265199908514710432201487274362755025647829551226393550428911020792766800725644530044361124380101987758712683446873872227610302778492294334497232874328035047739684393066729523400685277215240020574426732424981062097642095539946884326754058998608604453396871263152026519475884571356375422362332853833245103957026659694500151538435517801867372246210314201368029122486853537386781571617338531769999339180987650121579291540363185637319102278042773120135650860326972573532490507168486851222323390421184707250795675164232026285337176874536081164238969009868453097279763305268703408670330560927279890597746694502109171883629997222536715537844600931331525816983172677423335188781407422216569714698174743004900756458659667786685546754291575514331146842454975081890524562468762155464545157326797743975456353280870777524334361637815234975492472165828023058526990462515440280397254566086021401650663866600871873774092295594546160454066368744576294674373499828361822660031788668662509030223103303209333749545627327043246691502782706037312087165444051341899756475937258200635212427553649462129489111254749402563466807785117355120706651282680757635889693401497040481846034268534456490429438048200805144449912047974074540307510249891824151449023618426908743319074822079339648603379973167769970901815263016596218554756442325531768737610359913764585493951554447522198789150926191877513141876732989221158796787470342492071196805089790165657070555090439236862249674405495162450651020697093268733804975309839728712798822714805863579507940802005453368463941991595743635145022832032509217921313747041398670610290345819907609368593804248981135101538794417597298373376960192376317882066760157403466216514207336710479112343276236550143038614039868219439911077123585636928318411963093330375193283691008824499102803501546781819073205182667507466317053512816092960499431099223944738283068400299675971154687274479023559441637307099337847361062701073418350747958497314248496208291526847695276355775240325219106586274905585138930906474963329173447646176974898586098316969667884628501768929997079996050679654237525092458540848277311833653826320681342556931321797126295221495609658723018403946682904616789253799805208084357001162160370828508534611696185066930731173690256263867179329470292347530268859894615103581179465842449389094075509168886858328468416266915336175145290318006541337087060040408417033648925458708791596646390539462541416171960829418479673514208071279820776434072293786377156465924237451394707153712454268945701792752090649796257324104872382948183665880541923550794524435354950250001799529502247218767653327850416515708251360110381292819686332188740711734246465403872783624825727578464985914647527119675775965626878742223843113448886252366872632239468143393547419905743356009740988994745681366263638522178429143221862386238910010514501901694853763956406233112013356164349059167901389584198120849417529896106564154638262900589864043392850255809721471342652186063012370265376896516887933177374663230425587712607565103821868763660225993227660624329248496606200771170277575019795009429442788916418651209362588571640461611099111977029745802641403089992262459527307966757036117483346135629118335175627928890117893651909562496612446425697328979318738477351771040174539076556265925170038819439806547818714808246535655571118773207868020541788617266993671169139151954810373415694748958339934868166343676673807883917307841211973108338150180304397907958754808850336079507197099078225551135931940512040255690025115976703623106435529258897340635824834540701245041562126215759476648412758536914374522637207196239561112733341937680861834609440475127125561742025733795483358055397175304572713633892787994702980914503752031973976064844132735605796249131395874461545721315138651738153600166707974578643536327874298776518620477507456082866657815055063338279900476465400735484493687672157182651520551526208628360092731329163609880946924466070403239477288812297132353974031055452910102478774975975128442260748326326705749835983908479655939766800971985798576169201779812387293436499555277195776498257657192386544878817341822477450865697385992495037503565909004967391560094800923713468073201753449866518888964625830523031580983726520888360061400292585928978701140484308839760208443649644531200225909625069499935463616396807787765119143048236589188056261151791180407196806411791935412994532951803426185094689354958234132019147054516668826877363918115426379128766375724039709944435114018070236122646444368540522046509801076769250305078639767469031768225732537003485138168692648715281116316371730825408677828288876509001430843268038307893178389151995290523899405505753280934460205857932058273978144798929396019199443902121602956632105788257916335022934168210929225805230706871453785837953619598551055467185020023026336422921562539277998280957323187734088957614502890055693793941831456479519309512158887754697643475422471307694375822654784200443584415556240458420441758993525928935505727666615358118211749900513622810149724921801311683677201628397054238968241312894005662445299968332389772447442651413359609547250860515521506480003617957383893999043794455639020920531210574732718043986851581598320905936008364419820410457813274431372799211556656246201694623787259257047350074204106366855921382168445782987357292913166277529377805420840070941253892673757272905278881093289328361989323677720689201833070725421082879168375620415090267158220412521163274677405034032748912722495762613441608341953236344990498337739376701336167825025187797470694219787951903562713665361569288372845594748484484201656451652090269818584924361424844259603071413500121794940807491574519388795759810477113084565212419171343019961888974988844026610977348323973406722332876299413053956719556361600884471046558386824481124759099366488905736334627148572870356764754225093155876915199275585385252848285993174570758154596410307685192119094664879999839909355739144335050700535249893508172260128984388546960875745248682389204554595092881082028354336503149039362261871223522498262194982293164536950466235535052533491746614361530726490259631344732826497698115208329317323765908503139095000519639458644938604918421744604792246564360141927835450318089170611901092931705934219049034688521237949641133055321210534965760175493654558438861663819869615472981012009208727836632097510902966450893725842222231347451492461888880434611504441442039497722124702668012635423314225388040786749974309708501466359821884337684067961620964973441423619908223148312677627443117778641304483062757614097832761879261874559557243658145581247252864169815832905239208635973779869398632131612771660675915489800040368859142573633588414351220814250137289258638098168254503056399717683972851909374215480434717549189247226401427942390144657967843954048677849582264938152456628898522052501642290124764059731536120303904160819506708778750313002327282719211485818436108425006052735444792376457735799581625429282596317632910701623571383617185708965056400811890074935895853684643048417454120307749197306984356979150440621503156920712052610244511929855440697754615803496654817779725873081901269617472744063019907667577155938104121214045650867113139522459980765031228096920300321535329178498102959104011549333806722871517330033537502439237258777710164308416683807866047808509396710435517801446938062580708782230385560223447244442326668459294307782863983466058039892579548436369848102552540977418517295208700292273936760108954011214777439611785896547203221045434810271694167758495478577778119236933163204742933266523983035396647321537531505820177612169516858584200858603391458958367021108808497330278400959060682426612692138754906822689405778075919747250321967264061897445917847333371349292431800751128300322125363673689984170685895637952923747744888577355922261853847118168239701730766762548541420427557032135672237063748130789770751585022221218169314125018524001504155614862253299746562981473750385411701328330219112967826187311203439954236023763814199705030728547802904813984824995182802098202784083494583645563775296891594345671102907573187793016851891204801901608537500337425256692754186578943784027787487954650971239022869616517686254051968655274769912776157987484822594267565030295276532478846676342092634138870645064415002896425708618157661763135367918725550273101251535183412255289674992861973629320138805610157059799165129052810925929105875181392116466547215717121373023329998391608078667425094661291898978600742296410738393655459241943088555104037577580873595156525784393106458728527495377626572332600945758067135089428037983709390679834107596810536196944324982549195862435473278169983443003717600405947229924388887102718366391254349607417141617524709474974587564461241824973501978607946088932708411530099099609010257599130724555154229950280004251134348466699228410212756102527446861969437625432220580269384887271797547631835265875416835770419498923529759121666015444644322863069380896517268178104365761108628668241427416618999920874859440607897736291014860805967110158728906468370522529283729479064612907862636008112034664075742826591780055638043069176997439967038521962443568134910768051419419923638183348823979849559222398347217618384494301145529039368133824310463655823912697625620733084859116146686892206168821491788355076890544190947723181920920608871325379685676007845045723269471130241064557470148513629959801622105548480318675814393267882427102477801388694627913401351481053856415961816827674221214877590380972144308482834195131928948216306695452688005382325501538229242635998451644288586124195349083570827182253929011861903306472929802047774315879345257317068249076999762405179244339971323602482712758507102521231279256624918321466866684530446503663805988467839779555408556490907231836253289030942043658465216714833558500673856083919266710697270048844450147084116151391913457872052540664954794395659533096836310622622896764858376055912163106156241788119639735957072330118548589113070614651566430724220643856734571268772333867516046176333976901179837074502159213364794935576034218179272475570053387111519616420942996527365612664737110404926458067267568430228179289555260556658885319613305779436249619190517025747057324053927516246861015497826892312051750888344275671183360319969806929565281085031112180918337093225293827875070852723366615450039969789848305149002418586379136274133987227979309087508263305759414501857982240370652486373724025588529556415246421490053727783014856481291352738548472337029792426345180590965765875526797848007776211269137276362683948826416036928224993866765176855489331579424848397064402270159294474087788248395231193145846069046605439469214771348223019441150825189183135875047721084497443284518872574797969019421974701904084984965190136550115795019088141408630766869904380175684340558963410627216148103392227799831549523878105533253041437194998912995143307856757947225467689057625134640704346705726375434593927080925365392446013967783040945715016169000428532629822982220600487682827943951647637684036258487788243611725553677414936138727419098579851460834309331017485915438892017458363488723020787387029054731421655860221674692600414554085080775633553221031290063526577683832071639273696921076327261528204759383319985951216526845430896714265163425946235808494119385037945201687980437239139834488249476883678069605472480401981167145747632158574557634557245311040948814394322163471157387887853378202118637458840419142459994707538124413011842159625100028942335773400256828452925022369782592274335926921864423300135100458917597912190800086235951190947912463624238381911872122100770191151800060879576777180251678459329225328510477693010742217411724649528285417070910592930924365663521740835094573520257503896083080130416283073662203147831274599242176068152206364442302693311002477104841075824237624000963694655941597586141079135324653767369593608179637737303895190358241196056327880770377310592969204166337332048418067607294648010299344347201462703510181828669277767776430023087204118082769328281285035760246515472379984826599104329714603389809617773786478806156972579037721726369433072783093043272949578844719904735269920689106639371504609744247450579867764401973797106871910148923068956590125330618347776833958889813016460869097229933195751721803120252229759894796262423003909027430603266328921659180466583171901070520673699272701302973387573122663313626656537701600320673578336561664955815519504537879276656794512402735882854617528301269367124612639559376695789322376137606476589851693094343927321656410963926581249115583529994690350610750129483438790018799560253947001226166381971393112842152888047893478416087492948011439836636291197916230601447519356538576602859224309696976839940531623014804865583687663127287350074827203947544922824391904636014549515561993565294091229916356652407857944281875803385210250245282083868048506961417478016985872137740834275484498300423961424823114039334773242968234689517131701583315872159855365424896090334633690533126725312497272650876446528721409332889741364767289329769883595160860927039708646380230884473455998346128744392070295465467798424569651552925934100298705728623987967007013688849433382784462944512892955997397156007699516831150397213483851301490158286780251930847976669004639506368024547145391810343005325324079038619576989087488612208391045413698156349138895734364267828563789385193373465964990364952804380021708139203028101118290920622375203783496974956631759890082658016025657383833182297885017879300577523062249615498321090483414466479102138676552367098869161280984158838682567674961557518603987364048933886213161273253208207156516401154103457327558632474004830260386580459190603651811617900971800352720660029179940286026074476101002802224402315711948087196573961986276085610199514921112665543956719163671812509055599551619266377654856580179457578886058782060410718156424485720709967057315532351523358559663160783998255528625182356665308132304708644809992654237124181666593293334562130135014493687717345896612920961836669970019622185218326309502144128277623029686259089895862119780394286232018166237666237231642085510709377216601580523671140131132957202517487292868098626469288409113024146476948004814147845784600529786781898155103935486261303160833073755307405389791212595552759301218322052931452613986530635450385654267738219898166729681594382194746059434199712918685810739336325240907271836360402849165268656936102148785547425102468895017010247889193410867699800451558641851263043902562493516894407271895510305152154384980862492282733231624838700132358444985516683514764557519196128660461218765571615183794151479433026663725617076798547345229494607062676133785012370113665939423236240275915105320572466938597626214399904449936330183169912213135934388557150298922356362481825459697609745487742333170000560274121438305770191705769686824429029889242913881094930463690640574741520001994093682862879036251327809638816745837163733986072452904290951450607603283416370845394123789482728977744367141109944281066673618715679739405237591336756655772896011457405088001850309429094269293883711686539180842638123909032204029497249911285120702657118081803694682165061327237110571667855469300216318827237925428364620078122727917392264842615105824419398081532284494684994698352563766451322003638728044945546991129417354493710069016264322981509158022260637626441597141072055014067782863968632024022244602007799401653899438194276911107571581841957135089922801378226299140984147113446776016694334045695804289914968258325800039724823323696914523202918330924336132855455447340264443725230229279636800432419479613119655142517222742222003338099073693346227111438995532336997339034151414106892221268326550823227597052589292675135710096671201222726078543336653063973355233450577243790517354663230666923100554764206217657722285999501847992217946866005404121771211515066443941503358021965032639230680933009477147819601748078040478937696109067874113491320271474948088990922352445735220125913153629127192434151500217428866045210307216686553246147449172629964653779998057102965779021444037194967879330072898610667198150741101054483958761584364740441433820002332274936824534838590520659641520445484474898517127373736730996195859501636765351480597642334946142350064485861527153483419874841963378748145129469693675743189745560405592379301215056064317918712411986568945462041859541120060164568163701539013540270269423688752024216536556120627383563234691965375007006069921989259833764337489980787820606492740188034439356948154720592453598962263035763597886745540884212737738413095272503210606092830068249693666234546245690271931816033736499331731917368511612813964781693705551944365009708572635006485805277276739093355373441715001494809692110090508306073351691289743617772044274598527654827893128732653042418792999038222463754448270291952187930712128747595811450022872807039454114625491980586100539314825568908353942308733089842422907842426389156148670030434832641249767251569588703111370667331322648359213830212030580838294817989672418979525775694007722130519822197536076599993951963594533191500184369399767054947634665986634031017824501222920814948343562842380276340697103652828712627479709602128937833785060500876279125054411528558646586231390004316387329518003300442789389815237532788905580371447330271578407630421323955141242244921695281458222168243494773736405202036129092894998271000360486779091671747766365217417825492021996971597191609805007983702898890217782919162285306800419793047645484390508401673574782608411360186269593128374096264657147184882564235299295013459043580300152124962479713758681727288922234986133689867163289168647573189356877679928989555753089730290683421660917857615459408060554194410989351317646250648485092283153680273840958881079716416878325898459909410906670950962914786982794712839956473907226746752483276164703816879783767222091360968505204993648908099497146141454643826164115389710168967228826866811499659098083279708947116938591391378205129736109110127859301697609593180348923603418100049998868894949951494652405225578669412397952723060722502926643174727160751756752744953018737312631897751512748040506520373451044087966567377367621111534551686864988266852450236830617065920237161386010493995824525770904627968699346205972193105167946386536437331242244593564778632582412709791822344349634542895147070490744230489917766565681789808316110660432281076445451617697245256310678368885752109099434266968743257587078952379717954809173312542575910841276745742665658054128145563652920612327903549355939510990649443053539346452959133284417762482865112555571543289389991360476145927108107890915037513506886854540237780600170397938975914189365692931730292143695360149782539729687940319954424126223304419091203495608586683754166181464885720693780217240872126960990737856947131017066922019580513663707723813048085296513468848083473213113875201830647287668969288857518409584377358600177368743120948695579733595880115875889873083664855188544590344311429125165276631451775952515342026681446670989042185135362368429761554724306530741350687445032509766014621169081491728839476320044795470210222344726638607013089169716322168912844871724280821605054968685815704617023881548424290141537569864648377571506365471229384452088848748091610380667463880212951785394849552755228033961324498951180370669983949900798421533151609556166311088515947833366340979934832430839649205840743257115213895663289360751936612974644756133570078047379367945790415879093383110081232012423562157435748642521500649070334599395614994638482484713366650138996257489517344862457983419504737024536871343786605202654952901709815505376660740295857198650189017490411153936104649099603665679748838194013270670247050635291979652544610743402190213665715250387836128755828439939281772491417294710682859791225847117824922244885350131973225274181704067494775829740581869012226486795772613014710064327490066302623780592233110451336570284386523293230229644113184016227240085914212248501643927953470310727752662123241024815260947839327350017777407411723196899220472941986378822938795414345541131164171280365254390784361807783426439340379921938647411562691185489419838250931975998496864694697960008547393687325520404230878797345027070720443751047478752713311576518138357863824238387644302582434521154509565256003447818416016669024762818562953701321173247694206679021201389570742600342830766142023687958924944591842222760107169626157030163902686850756838986742893789607522872315188661233422657703437200409847981636227461138611062372362736380013888062963971911730330235575380313391021650583067583090161045897890812990640220630597389188280825222036628899469734779868111843684151284918878728004021271938975314363615422236172037506443433162167184146662339477374723067326108226224777332959715842056399060980408983024139863778416191961537258830056694033642975089853449321313289958989622762007068508858156986534188261715863214662308494225932115461547649581892280237225853061879586529007506020873921490855266044840223024910002652080955318335287571345324167040704143174091720569479929638814933601080909426472880244531254034517353640688304105517795516429594928201002350740161526583900035321442650650864452833595750535530047880924465123373268913746075612573903102411310084918855091259042857200879330658766545679823705443868425006459017353578698052776314702695345950924966930602306561326396744314323338972690351565317604918142475727086532208482310836178767183958455833551607380334566339157568918679818835188992825677315677903414731003280005264428498102550035380535655924548264042106835842098309922645579594539914698862564899745647731829656072688451120064449628863087986145858252442507043395122084054184692820781464268842857453645798032353374645293036368741350869465609657717941912439356567037465946675049733781536728626563789241545759653882632206778306824345436369347380118799609196081199966986574229646303798621648539716647874765875299872236897997775120261889933527450449460737104353041784798574128631846101297538397166667149978959696634598032697646752585831433492786710019907041107520097308085029107132931254372856292067074711999658077378340507589993581295110308723587924455938946947673761882733701307290730493169564095292157622526015406027049182905642760665680470201299330162188435021385195851979359037796489901113100102715629470930997129652172723707700442540282391199749686766547941995815797672079091474382941015633331417121643131457615272677104914955689043360748945258618345502998096515220924166252616321177603963673315393641980013870233161055367399755499916749388508493658038087074308295093816897840097472010210957911616547725894994516334910129040424813024728156879756615353341695337453944252332747932417594065476722663719163927828854810374677262431965105594879348399210427454166698488396258332427565564663957385473211240508026489866678720826891508214378487191808991315309401841074602873837424172002259794870666642079152236424546668967009434824654972820379011891472797386293182025323983520242011612558502772595825814362120262869259198612018835453887103145961869121026515636918275929642006918540471496446401731635119617556153517168014683032863554987402490386035112768713653690235917588398607810920031561056479080081691109275248189039836297269283786511688688682471236361053644225346332436573745134912057008828128187957913687999697340989472732783571527247913625100475850363268369518043083152554398189612240176591686437380285667370887781985000367636628595636280290883570661961798565495065160561749566447666421585701342435383954521845939502953183900900872130275663667222016903262994373250238023859347419828425392834610161897330095514460685692374576821109099852614348756322333296853084072416645063554768308016482543927005710206649433076297455231699500676351906619688676589746457110615016187713176850636049083808356593895587948418716430013648908861889119151149273710625456858624802008676265658401435541483788934352303444875024223049196211818631098715293264125810685072279153401967600475835995060740999726707820717650511039046771118964048456819284664564684203215832010821028674121484016502080932191489839640243850119245218771653323570386912658042612703687344926975193143912270740943135397618851639708816810661014215929675085303654704285501571638445716729272352248396065910378634437923419265338527863001059996001311938381481295330725968594205916101927906557013848723856513674293592217450133576113879377230082343044608656579699494333068026942272902844082134896294716021181348616209395387542884407972593836295550491136912495663945323760343181898739066947367195839061856947696084160796879977651018528809687221173540106444048329154709133074395168202275475412150072285228169513483530775051600995615449120416224240509777318461240529400324827197278374557699726954223416324977136683337039786111664130232561776002803820830830597428915553437015495407674056834727017073663466471967528711774069688905217081179547145449180048625382527980107157704116068684226127987708693700708430500134322850713264739896375046169604609193079368461067748455103692186828030660104843110063786944697441357671745223746119558867401909760983653081591682682861694585502629523102743091465850040592571963173588138867022574777112285106100595055109973018060217915905831076022143640425856570332056444187745747269577487030893800107208606393480362328878371438407393553415050653694475426530068905515968918805894527106231543141661226858255477281114770529208794804189708585915001507187550089042231209425649630077961639191375461773892438602911532682303438027515452136362327763832811705297477413568574070739272526963475375224007142198129609170573496947092586922065964393595819859403760764662194300595342409823852680458605359243218743584863112618241598059672239869106400537745933227624807789174079101739884218452213262857558057973888313232133969885410225742676781420756701369677868806921873435877232362816083252824593911314243102583143566496886175155486546429390098537136584722818796785600586204320362599451669564159986390588137642693856634441310417666116140729533117494591389271356453917599868274074772457435784891519014835090457710326820906747275938421206360329983327669484973221521426418699755948880791165054025988602928518307630522360852502731509546939017512406231313178001679707587646660246978892140718945560428487817690177540296820176069656186116812006014405004163993967818260967194284872047129638507956108436622834398418267902740930758667585576861104461303778162460390788520649937920456954640808690300412579877849720486280224390501257291728192221210835809879296489510947602816233882019807253607190862869881409597543973860354598804704305472459169491263869487933794654639576000099401244528138420831166640060263612419206037243149345840985176406176892647553577769650703696214916009776292360130409473040760536040425545252380603182575389328553656786069846660299709570805381698632093563361634692988092013635700500271166641542871375362323989887209570414645174880507826957971672011399987154362279889137068816366044963115349076571984983842385309732401376572385562457999908145057880300771132890019743585773127138692783293641457789027834440984196625489464749146357512432162883974273302683588464500992163004490079106569928395316068983648556345108690487057720395918696748919536081662950408379384156249603416374974968044911063004984707968625481562509172557711917663129182383516357540566450142255151584168442038656099622362817324868327394107455472608851259827215090233342744911040167450734694948981985442722009183803535406433661975450850148859299202358959251440777649409111327482889343724957267706170386984972878976744048886307435530045669413046488150210651153470338675124996310513637490197775033602274135772767136735606010222437063770092165031468291109966121049106318831745107335409466174092452432057743608108468689183666732445034704122314476283739098866290799736764188484374534883785859602334655385034118380505727125598567071890759005814462340398731454278054793039066271180500328089048263112164965336019084570295642994383948126490418410771062957972994174055336678098390441565542766627424262974116293756086319502426815451631083659145286879789101694416083025633386566580668478208247249143359568152661078014161197295903573045205760783789120268043107432524740335417294153544495700212595211637882815401904407936152806707422969707240081731268660386704857296184463371313837554968047661436295240816408604974561464085530954106039036693849372222799938926875753861040283470388617967080549554193340663867088278450358660199776739051759100851104410665470113695755949424087830462364127951441619697878616870634149720298042781906740132685730988199197054699293956103011770017607156033164758340550944928964392909963946477734713619122923564256258346803810018267997273904342889862961751890184998683562506300325425585209555890005846891073175019599320038494312848644570079185630821898892104443891438407890709711384973259925949177160412886833330594103134566954080224352966749981751430424200682967801455008434699670144187415073871643908471371135418827878294429537580630271436050228087555519304926296670942989163811791427009772769961506536829465803574728010161922445522924593414692345779498878113806687766855130212956476040319701394972321017236790675717001902445760100509167442819798677295584929436065132307440016293881363975507646737073028309742050459161148866127348156932895399365401615209100978472515763831237191967007515003450660828196261502074368663232660845342101786489968003410017695045208442105860523172741419287923507429049592174914112957976956030110561503751530181563221133965192847819776916126619752262923829952258395808398127000791729226031472315659887785945813260882714824041464264086224438557457362741584812268963934991443329526381348367465045313443606948599240691335260262530264057754501177510986033289674558456188888686935364411325187630374951171018415658654462860433885322351346329167608655013161745178817000757342840446323925714834339733242512133656112638496219755987772403187786777968385963207914693376906783833590636822490321214334100008209889491166198731011256726707517387899672049508002530271581219989069591805482618377680139045585804471361175705114484024820588398728526641648659449735582965312895645646897246190354217218533549964221703223693046710988374900221707180847002426876834508432143749050234731250342585301111287473186772200744375635615860626096849005247054800719553031695747472614030394682098884704154602234004746836128354598873274561118048108522693879933490672849888488675664445983525761630274207496933012690317559890264716599758768288985000345206165983290885333931944105851626953680522714650937441033697689267296963287371285385471421492773686508544188645453977712809766148069780731955095223828961801129795506173398785039660656820489829407118413959280474683983135890599222292600617804327678135599812263760963751147268135484200037934501848072300710345117246694184417169118836609264862636072779752170944969616028850113371937474168256818359949476710490112499598499393691501759089822175610687947062877825716252279928214774763180400744774727797820630531427992087337024625454114795136179736420393560028024889076749119767689143218200540808003512645238461729547239247989881765365905210420172773403614547277768460764727667518226152987614913111180924441716222973425458015159517551162209178878677905918605798200421444147611543869431913435617634918696952119333677920734863203280204232993333394170888456212679258000499869321765568102016632842197131882629245249290212326187225448620289631553022145231401793027962914411220886164492119379763320974779580428107603633524668887899461272873038630577771449338494888958245917626168950035106258412143057162644628169565699538315494375321172419463316130512713540935238980234922544180372279335289940928695206924156846081583518542864451761587235658946755044649792865766631475605709753995973545510432127151546995805540378083515113805746926231478710476558514811646913499967870539126777026052976447364758072117819690222182047595426787523318062877145014545005104470401921209360491893759256691083369949844031036372216208444343063054303456856175963859465054027754847288324118526002573451684029073549556638314709249646180164764021456397862217969021586993354665708009964989557166630444180943588564844325334522405355147112378905672113228397046137389900573892572511214277910453728164966004780873752277232118030552606671454181511257939828972154373628327717778566412667360272074148128943082466401617025596691761075359518093964300691903835583213916133357663208448544981885151985864073066166361302718774426733706608169879498821874513126055009752084186226704253102540194900671662700433052996909724664255226848348702744651196306957592268698079430108768547845460849770404772821751350727157129312793297285886184653730982781246404567143259924857894372430097176464890213477999651265401361978017902094124375837493958630584953505364838320286505162519867479316733109202858195593013047978854672612789743897175521049917254518921366838945946998827481381943251830418744769325195965714308136050311306399783623615426637423089978724305755545190870737121517386243088337882814265169385835967664145012881287408244741894798081124873773220173474453734456032339170843022502625874306321453665189931872617929483554970368531821257450220886670808748373348542208271325434173505688389573444351323962604840817346195521141222630277812047295238075734747193455110640049420224062997095576723308921558761723098039872264175829101467655241559115268634257365109669013875319969063118483044207893977907051135722443436603929721392109054089544414815601237924858851055474789021835060965470576510545447167912169829007968723857384951790034032245909708412295426739868139020114270556567718030858222189576059120010724106736279139631920903606106666347875618027283704087278427504231937699791230593838638908800151341077120260444117900074328860716322094774569452962306221312432037699386186948679769500339611348325746446212291110395926105269773062094157754106653015761330565637904793832485277777990004713998574136120224869089018820833691441218109889423391480690602078495980494570454272575701991865863117782566434617118038562564770596008472966443782056267001985429425301145107210332816827120081397289548401858909101775685693959222200550706319571231098542793743469168481582687192951844004844009129914546467449086762699527948841694067439530672637341125621975171056084465382675278195757574022216447097826543204581732046079917697516590808931700495000512802864018790937307119405863716203947195530435244871345855133903260185526012283169480164446028279994008473722071544061628140408270584759421908042557571381543884733744378812587119054975354251687708381054542380120164475977165562383579313720412994316870168201072660740093381098392068277172179557312017069053408468419691973538480906920714045780234885274752376187697202316327718425852664392255574463459613618621398763833845364290932926477220507226804475091711928360469011895843954244462998459324010021597719359584604659601320682472214157126234289437296950853588468552150109092388216076913939777502482793144371300241940004488280435380813529660349752536751366705703727943407002652886560062778300454300261657835015648975189716878770470816644933877083879019637704020518391170119738449907313693809838998162356968355531997256634886791403352616793580735765541644597798006944006447305415818722403814847309271890946794200879544048780602411815984954336910205884338445732274049141440830914043836051718973026029214648121606129417328102555491360892256793958928804448711199264689932308699941891766929792945244297625816271815522995357264451601456084282560248370908355906102992180799481091261147577395853118237994701628985296392681472019061494386379418413564358811336788288253293183880161061912011076701534447837044993186237790094897049069652618155527076975399776849289396773138132874542049100467843840369548715973956541269826582908468741509698448007650333168072398761170187108097828967598474438176974272276493734942095455805536026178189666625864243157245639080203031858908710648851407580412176162508230719959107375798639864565867995827822899179567295846825020417467103948389082100701304592090219115850812200150887334891478871924001543820935304967307965295556576303609616566717662232729920724736903223198344779608977874484978383895710978275027940934453407089202638850151371456635483972105632733881889814809257649759379668181875096013155581762379432475077234545361712844299439967757198386631313361908641430009060147071541617038698638160743525836684648149714437154296271557961635456949385261640614714092963589896517272323092586858570887542157138031838363694636842211384567633454938667856102409614510381317626279473525329112315749556371723564369053268419160387857158865722594604611660290195426480140968651663690359864648768296386282164513489153751929061618410240132261944649573216500503921867516367788270359946810715748922413624782990667113747613475291748651300250161644295265305381530726141883078027830892459644412176535832860914599042593653567405125034455905222435225794611329459180443132782882686405104466788269803698752432157114143850469622818800327973795633073098815029226828691593421064489798056241465967668791422280456075835012564755576937099465721791933732350145107157440275838540752451363323601247217407559905148316084437210125258648681163000989430276653027466910197389737237005691555275987918263401837801087507836315778485916970197883897881723499346429939563724964363717946000633801416755076002435049663061200023364787381226332068510850721429137101105838892773530407751022048771939526070959236697587421486554006633096467320203302451113248991406613702299013038356809025845873476587563414570503584006770177024338043061002501676364315486220324956604297717236086189929090994280011240259356137607104253448008885717371573594609932128097133531476375910592035068180545566623746094371033460233544574196842473407980944439279998205515794702293545822776363718468088334650756842456372113099595364829558636459275141059008747967505641988063120654412501918922040013448026629358638512127754974627552956953840881889944837800541305858921267520055681361908313606690005620854405897819962678195459593430626482704659280164520555643218377060278093153678708990651659424260541125871216539802655553315462743439651613729032400758002437440904727896110991145025570350710063494338019771084899575033498390099617752233146222151343855708488961417062824641480987794236305562728669069695220638124451579176968685996948567051735078019744120675972302131595799474429069988997087178542182005406681083932464761756634048928373979598058759144293828625461021007112991891559679821217244928777556917544029884833458354240812575044118263402332675285071660701471544319731422056094631213816482122272890403297499707969057275807236285464049251384713882998439755287933662256249374344209526413090118865073355688396589458239580024587374225680511661460813268305034582845580623890168163460397217212582962888676314278311717689238793120588399146125825734050638494151129609862653757188117583985144039727852693591772051155457710107375012536928963496387118500308369818113896995449326567150748733626976793812972824823256795779338376621909455975207178091470064199461555935210594998289880019456159041470036316384443779378178326488204621735440472746411900522924435033874189612590620664217102951798409781209001355372772951072292968416088159114975027917903914374036915795514001047477543890738891269947426740566486705165931460079898323125868777975065882129471937238258441334335525176025330770029465037538338753756763517462726390370652330226132003251648716810914074107064508571106484539088301648584108125193760825652903104357121713525595332009357481911440947754071100483362881721610497040119900970765011157152996358262146700535019094653665802500147033656393595962468914590354764755614594429025293190947329958747308721530496690066325983658224436161663043070431126355939132998217900861311483011536922378728824590797185025369875527719515641431195229878770569024961678377823171767864638838703974176144719182591865661175458130577154691948581586971271552037457478524462432671439355853031791611555783189047813204742070913771347199007168203620821141132348864060974627898979504602157278081713449625454135625163792112866001138466898766540649860945629648762217112994265169310913283801006090537119724663695661018037328882933938963880023882529486774645429416360213789207910753820072769060516369127459646527398207160316862133509392823287470744140063276976385056778191600268593316463451663961874069202799542516697968110517946112717599847896558551727942988030748381170649873881501184611551530787684191041029762959397394243262157220373945925525586405479189687513926412735062642111374516342408949571266234144063720690919731430535135332898725187720008719566091523247657265866294970011282227497673452043701114641843506925883318586709209056088971400191468612613143259716547207961890156070891022963140529597086275077319873539075877928766011359413636237646255877082560162814396819708825870804496847804152113563028216944357527506402379033849682737380566715353224320244016741681875447778175454809930348842871982912866635982073303311020735173716675479813467777324474795740687925002831575467540212432159204550404411550892214558650545736253779808025299266437519963288713813336291038361949275182565299255812914408147299628271988919272836013117729068149721978081848431983770558303290058291720611323013653770131803173059476185600720083327196286733890731278489190275663363553113678790819888379211095795661238052201564745470845922594230111263468996076995854891672088754517315524632715765959015899132650572648222490583001145604842993436926026555030392555808950078879198237890213485884185805089930937875347084412180474730770603828837303055425174300144492905073440710196654188575815124971274618926736892900953028621877087770833720352937646681463400904306266049413166646315793272096067794035721308233712013695682019307677161335892389213760056950669747704636023311285017738549442558148377788969236665612450182480069091718884509517127731099053056164954344166822975057821752598637755879876799640459242185323113590821863493771597467542741032262064275765819363689839695898467827221918740220446079366814207077284366002640953721895385001378658640669074738395587343324331999397980363649025280699701808700481125634764877673293320544973562167704420821786323925833168448554327947895807779723377453644699869186055455553064718312470145811638213133395285374687107285930600116390797139298679355248489499228796528079831697957536287786308090867967031742601340791455519416748887363800644887679808969235624926404753864015530877770086591210395071834176729269731547277799425717297664518737606207537310432412147793726197516977752948454882027607032876035435372834739158119349867898480044493683882689690394888486412665690580850771504257430880342691640180605139562089940636536823037316703963215797602479778896234444590049808213485719575953048556187240679581310249953067082847475366162901955389475348690752775750932956786591869307265575360687427153272290109508601456654137847398843461414845993588855067466631887506709874003261515599170094560179966411114979526105209681229753262347515817718330376317143793670602123006222273239013284851051506499503047804203226238196221848352495989999071150771828559723625583513652457525607338945807912884485574018679001109245462086690895714971840067027841228385353790584311650759458026279768124323276895807394371682260226954269258860336283315023043608566649706197894472564531898488642836340107377087127888471896043304616006877034808412078464669830914972488530921361685843132982225865706143742166983898504455721580916916995464839350643839463706257045785707404808677605452493486876669974660870477254059782553129442648675421171583537384911994886722442489601733243197605688050894255116544565208772159008285119935233507828307542232512137314629748068325342419636612874366442344624303427492239477484139443997498461107812829455094824215874431330504482365785844848904845922934703196085729954920626666354000570488679365991635605074531830494744682820870376725538854186963174149537196653396997606636961704263704426887483724789352238853227483038325564164531641918483040601350677295655168866253557066992583372048748350216432404158525772181615358885602839771834107835515066659843567528456890155870787197982409324501102413019717515443053053154746185363022040271137219428345193032154928101374094414271475037569240943638343589735651050408364161088942450217621241752995835419403373883141720673705647700094477256447375206914783597925048030895768503913700450383598131900460666439228987117574417129102530834751918089610093087402490901710271564926759757670928455184353462991640335752554186480463166140950723269132932417024414328739470623753978896398002071624920893308153947834787418469327459875879959323162107359499724799366417341042108917109206162147895048740540179797862467455155574906696847643153196939915420951150418842479339395811930462861641867565953498708873593389771497020357443677494002194197354729243744018717748598131646785419246597384974410870745553023554234223962557312117238530274213995406003761289526311470678400954232804748149012147346412084877413137518939360265677688624915325367462787186510058662616591498005971292984420779550647985841955839997258514691552962094993445990435530522312989245429896124132201030254979365124912430685123099897885935051732678789822383769024081840131334739587321358539503197451958664268200141805206651950987586905708373960684857893817338390179271616139172186174688856563537383205520816269480237232929814869737986033295304857492275735701398359043258375118236817116729282054741537801306665885789151135698946142272089639617172017005792458162754988686285944156655012179979802203540421158219343608516045304218502571015549496628388758747997834159097672800612595757602682882527623278771166564966411437258734281972665986478992409184086647705711618457102062548638194226637339758330636885790240840075537552768530574153941007909063837559863619790356800409653618515744871408190114055735130648089219834954932744267056175949202794701616104823971281260106476145626333231593132577894142234429517819463875355949944108032283170741644502959806143033542909178618256059184163924622789514617178409240884453552701216673053803891136353709590865097437230424588879010103762940602707235597973983134175294277733961506248169750456386996658747082894986507226273259212139639453882765686235653857500766795886663004028551551391503214004913939351393090661868797910377990095729353864952288014728530013942718856346142361942793704548432690937000602888035933319094293390550053594887500792800452355871772667923792968120950984293462494770737579249445094704829707104772607966968977223770799726295916221645654602103878090022355113382501423103480564854064846636104760593011482157311380612839192379228160233456729366884704629565165375110529256549653802165255043005909647985126339649060781827344404843323121981614935925204738985465848266301907950157440874840732486900330857730942903468267417244272350572099925644886618519791557056645158450150018268336311931153231491202599076872434414628470666910840517654564241434323528996599049470901783166638561062661155920630053957257291888970198586497662591443805008684250745116401465346854451228816826499728447882850777349392443453911780572295224137003720661803572783008427000659901422006351205713359101617841266009222980316166251383523843370435718219575050992214694949653092212011533540952720870422713241151352232361605922798157757424164241291006779025568433194877033423757367994353833846907189518142829683707205656846489658912207468892821299132377082037175666652163224661195700655812336633497405920086378229232820338063200924551534336353234618232283193471399063192527710104150487089136825945485630105270176655326531213665855936295029703159489891159282199958829213081463266511331340417357979301422748121289927686122163261787133909081404569704908108567298585492671950286440450361425797993421164559643573075176589685364120574152438816729304761036298744285761586234123528710864382256854718703193227086476980115733234039082841830219082780653425476648642479084948165764148671854533795101888120416906954939893770236328233365910156482831271846148390028338602531762445586025446763680272157862916313843027012305217221808202298695722252103052126866853304602392341764310110652993353096528146192061829846995767943241769732984014229916457960987498260097706859318000248015198857293970599323796764262275124378006360915440443419624435947807084878586653843927911605701324626829878791129281591325027175792440295989341280898125247841515673003046981962371474702839236829259773713392996163237926176970563984259213987986792716749861060849606997891908151370685399117493212150472133866215363294901884173516950409200249281127909844940670334733202946167504726490445080021308083885802322097464813917957963895438084838226364267730256394663483037383931347478295748932340159588217909374045858483978297433391631190379816768741061636276199159758850680449680540572145435512159201203746534593734732614394942131050406759732569785503377540740878296036273815943579306505107077605963528888845600496162286056641055422821630924531352740868492815496577094243496559205099398693241486435833878075567186766268947051832151132064334201565460993563314432898857063714023935335946911523482214870546791568961338493273429965420045333862320702661138769805163289105271244930920249673185063149853208788925512701937509859601904322110932949983416443691329654197700711730626465753518004930405435601400912946694256472082152494975637781067748287149367129177801070824611010612442883488645568152846712018710373859764143303196037271647651167881511599336533092286058063030133580131444058453953835221622632308870892897519739137427494189391399645575087767410078775160828760830535011494985869944320104079321951242005472355839345273951578322375645622771106037828652575381062744317969698890135496150571595715715830156482753245959218892883816753055581189363153460773139030837969252707168303205554740966810240106084727800675548767757566620855958319265919406188006216119916342483407773037425251588843037654714624184525004592875819529029176427841526993340717205023533122465555295186742587279522014636667039344102268782589924221659956352161589869180773688111027902603682901052838823438869811460576301137443735951059250513844678510698736754409644177380005794502655275285213750764627126535909852925275891177520120291806969410344951309375285601468170508917615267223600168565759301459796960453465980608116330526144750859308994166615619676075421941059225100442375467008010459181026688217314605874853439968188634163493979107643363878009361617580432224887018205728877038488863157176882611792199284687415048138642059216099229439129947960256405028537210610412487491337025567939753570315995805277002373208783313385161164734631720294560690923074660468301282894074494072666098300132631317115716487346634444257080204521681116800093862622344079766483442876951785681179622320408849076012857103848917175965232316640194931636991378635531486217876053453200736840158367102411111266968585434330739703151911819491130828602363341187624929302818129653511088166511424857114554757487272312889535994001151617017190127255798403764106639006095304415302359682516956795646939065851682890561615787936710715138480655626531738021520080254457869419313355794746136184952594593434309360635888764541512706188278180032577981642988672860580140977113333724769456526947304744289511926763514205880927673661091575620341930271456530604210050191418387514656217326768294980466709521328861945759977489616146215025897317568699976716599354306193500236176736001314750231428431386446075301699466685610860613455456023616239861179921389192196175692893842460187270570788181062958019890183189552197214310039411884656682843955544144235533821441433563751997556371743090895487681413405055409183580149072998533967730648485483938790011668737538253178913245784283438967605327590456744719917895576865038549549627377133136217006243191382568877870650546783884456166875271466987537777595665854015609082690522077108778868203058330129112053523644262639420841742869317662756471273663691396607591460888548257366174941816746895847449220580341336322317613412284587345718877340462648238243241906311861128610149740894674067009007261067841078542658983057607890469489033987267244576455077446181762363978718444492135462206474617222454059499003458692525688387615528385931694008638720800213710770091383718187059612767902503026381476195799312295766443479923108978561930843802170216193983130087143398070096498868774384973946206944525909502965927471645776050129744657228786991326501822418334700851928036300969566355318059022797536881217508699770681653161435846837758948681081735522046586031261469351900637322137664531434739816954214735891201344347212940505617404276718457792940300766553923693854449678268861873297046590587743090941031923911038527740714920376317951987941082414462220086257347231200225892126744215722281094746222613599479901217367112195636904758155835738900911786869696912888085715135774270853300114556129574736023264470732218381698590111167881591835414777700848639762138896857258964709228597151815058475790597279376195356416128605617451882206793783178990526058114649785208290129391561289828146190786478230890728258761409586474966647763066843506492865762118467625477130960923307081324521586776910914968571880333414952902408009009373446567214758770967980953838921933612770421947665400079654903028550724669677724053911928542572644197059606054138653268790396432542267256849528859442809319074174915964652110958302926345875930810289830547553782779776374623002701460315967670223334621089146546870273542572724618638421034586871355386963850688138323234478873082615531299163191050305055616508386718076685790132044163170158289824543383925675361817581629698774628039593980999481470592284856141957786959733101522251627792018070578192476349402346502878743000605656172570761775897379474960936347518741623766963146675867521130519875219249275463437552016318562979571245796750027297264925365402039782625453497808083695931422108064839062163705887667181973847351375405407838324091860228669339589605356901116292367623369734224574067286257305887043593221512549408632216681974997119290551794618797560526665411965647821919166667533605781960459989068120515059899804942127785459978064465443506530187740456757053372727280275282121945269805535238734489665973703142321482975587739157915866662396833591988082416829473475482040565496110602311732564756551785312368358233518123906416542451882265062085311081583473351695674804827481410594204322272883692394783080955041402337088482404055049847022122661752680580135227452461624703772624787948742170896068405556382164892634393718397754790569883253792534295241282372867455912248469401631111557983266670967719317061252806748967975925735131772747491939025290239214629153530028092434365000098533643431582543895659269239852072270750315377474040745755108645989929563875190881778158804580567807036326401919525850012992461989387890472388535606577116863421565556453374729188001738389856322193857967506805949189211332250774038610095687405500450313840112482400228386843689383774250909045290281514875355678132527905200823683531808990847361825632604168500159015019768514050083361258127561929441280775629806831733613176643960305945023601872079167913240943377973983923109923744141007755003157258697003257032032213360813097999227512632524064898223098720616786111790705829434649131728470045587379202393978147613018505382023041359203613862650332018621260448284211632736383636723569928432084520235659697938651915494429993200320549377334108924043172695069611372256652872234273100607538365442841590490427105349826850848086605760485130421999821842391557640018286702797684754730838951698352442449991062243774417579669293345450421891494050497027087786818374382300422894003186959925513080924244135247911229857833529999121919840248114460229474048445182504529963106116655880911363660387722557947637076706097610045452041117184124247336346323888422009814723064509335717593926099962029250487866827041960471776173122308142318236998866611106277382288684021245701138168583612502485008765728086339258475454799549963153036802967337955684295611012649812094204976340581148080356761661828460343260790051928993549562775227789346880522121214157717951354296102539573206694176732907382880310998251177134957757911256084677716931013828828320378825080509165196952184714734479687238277213188498909049515564177397372310927243831608018034823041583411426722619143048449288037747758013343445482347384003234695908214186669839823915969099314822124484412729984982594891649663481634647497664215012944964241866959393969433615841014608549082401255876932185739018590259130203250543257073936560452394425184531954493944356953462451601422269915704990230218309783982178819710816852654258990698344404962658270324371365482051756708420604387297747685284196759318635065117869005414266520525271759623814123215401329400091616979189265018244973635226945864816270332171005686372324453440786289942447770249272729862041632857923438688338917746056945546976061456180990445392195009780700939038565796862702029325036240609066434257512640338657197348699428717204826333643020849547229466309818584447545203771659573961410240805439168500936808318177324166877821879250673096516796551054781155060128043640787489903934657895156864556670815503717030391831882356813798561211045240120575050473397104808521135706760088420072220560542492478618486004719178752743567530695254272362028361011850325042494922672942485284468912100265187021276880486132977955582997041565421545632668923657205583327428708921070990470523984502236698549646567381179692430424023703806143447443299105326297886261938006088654852219793116101147384717874026165476403233222977427004319254210696345572803815796166502666320953487855766103879364045300456583570978479495814641884384489858570162549750262520369557059370246487769337685756583419550684285995947426974173249004796000576819142302254682220439567410036847641613109681847990759349520629799008514861441234414646057275638600804759951545901545969013029709031443996368300057757185147058503249010451310273758719266835482341943694757856313165454663644368476595488027028528256444658004309665107458806024695287385125571087517868061327026180173199020920698719151985823626140112724410219066044719382926486384326664926711148999746339344942136507566305638495606378510100195882150989945795431383009692850070655081822233004756268054452806924868917287895906126179418956594600745265356483503563943363856972476007251629782345172886593572650767940273821661384941072075571736610949375707904697462454044922305113321777345393560603077760646102400099550611398281073507263892971497374962780102136990494806001376064889762738236891155558786745046797657507067056258296317839725480650453665276806601661955495682113520755191036477370653013202965047148706090133561583754707408873386129124137073239475665735793584949941695353970951339517266422934759978034106100822929723184299936139515757149705796045892756860660441216317276800959365134027215127058028171761438658346593458713644442376119565874076553846124665689283469301726693027237655280956541604611923497899740511385012275496897719129442967004718383769746985933001250317861521740136651844057456682617065446469032961363794346308600401154919658720891442724689347647075195210453975273941817231158823498471848392603192233943163145229931103535265972513905659960370433617301963187260624118939476831111715741435894412654087563047067757549513684615777897686118914551183015069375960486388445612031897820168322252673791706559315921311721852422224834744068187109671392887128713282181703646544556137326330839422194748008186636038132635424635265802769434691128614273608750958684165537181009074975121407835571776024662420575266746501859036616035699753859770628143101590264448818765929197762769678029384846293613745875153485033085547709382383140903572192564671756098688853223253225213679928952895634672559929563306699869696913527000009065759902822179597276524448500375943988967687765685631698855859122894719142468404760406295122566354698113458597726660697239498410738731407892178313772984005048812420804635195742504021113455508121649213334473317947086129479670149121141880180729124866114677030521912478704533201704613343975817372724170664831793682548341802591139613766524214400887030582642583733011680394911948307062461745746926086614494591658015146152600048899637694148799026285157950999084321497074211398789248507924884447037592861123926547222269732061931933649013891402023374514966415667281591492364841566496397151240537272652135566917447393923586611426084306079107734333069871980314869906810228608541975450702185180758151089911182274146588685556765330978126502658639788249020520346923726355001502709172184799580639496974445850242015832769247092462911299918930148699751151585393947637604539503338453566267692574759810936879625951712995507194751077559200669736048951822368298910340251547627268683107108793470800034692921235833490790822161794335542181150306941662895396720400928439646268837314862771723045759841713560427319207888823003986829477103468390674558890845929589546182866375324324416017482053545018041130221617510809115718934212871218613712192622703350646094187586646270976619716211971484225683745982267401451673652268463377189940120584029881251823523523995216125327254301640269536753096001244795786573027887177867769242834652653801605831172668346152883957490490143391124495748383361013088773355106883150806098016781870372626770980230506874265466559963545555909155635745923154455379949589620443252952295500799726551121188169142797182454876449968377722336464617366429479892211079217530642084188504280078526326970610734027233849631308031864694954643185589659207135245633050366845476272839537405787711077238278215992609474848729410278397626694814822488738370133330555807817903967599939867001728218835458803845077590040380250554379599812334549231434094823258569622234174812044726704030386506607137521119613001393053164738296538803259180910740115951339661676750133168605474965268116291373515855838997404310297738815269805050848271295350944430929362097063888297410629381018296956707467251733529655595826263766857598606151907899214479183656288027330096905099903941995055002272935042586687787615948088063824531554397599645027741855957898409567080170100745523336981636115368912591631079435415758541975943257936071363543755278010662151686691222820920336822579914015212253532426582426817948952803653317998302500947925461491927940610627452006290207911598182309215477718454015757398442986843109058772850215582320065102143159377730748964201982437522719292657104697852417529792988066651660117412143457844678073584534888385342882015225922904428589177542829034891125760305348633762535101516400842972263276282830130271543623721491940445497706198054909864740679693940662399779161503462718409260464639644400592923787748536470915021495914028141294960347059561412030271691333008341126700221885809876220700901438954765229337360295068761286053413542544352008742995621767378238414096057312885418069601321283665647798803210713403033368369073645792699096997470948126839645221182813985583517485879772911993104235714354423258442843264991885668203587167208979039055295349787720253872576624509034335312334505630350181473132705228228350404064021231667699590923328919905373463489245560252284375105245508945788416631290429245900150501280300460159313197418605796542075386015918157221477040140419224588799508452210535905408806892767329560982843290922701937722181636967926363510621541870214366092672670987417770560818405946446340856537444412147917551183702203425756167254031733826233588632455173901151374830677611879348247809920771961848351361304043782816105340890994225435980869087536481982252238416597528450507991038711923595945044200265128443852139475806401692347786991065871501813992625190361335371999536045878277946979156790962734768232677130313158596425177508470435178670965981307277863244298342957622299158785491850196721894020212639311302369122614876461357785591177617127715074093373964253239933531449099217436968998664846732082280580659433926867428683420122631347959918966718937753720483506237512939824995678363778742345785806407628863864557493949957932132699305810498396287395660611002734262367642311378754775301385574797385876005120477293464637369175368631700194244175845885369023696760078492196215109775532901521615365739010836204307418258212197302613863685993070802167277176743014610088358609521427436496652971172885974077891184904228196038685670915879861022217988704598261579724730561198193821814559745421737484458060414131133842735067769928968177676107701231189458662932235895658787340664250159139048697209016975266894062181100999489976115196858137829786463340462841759195775456667580643260734253446036271735448126425938113440666209117835315366869245173688289318686392444697239339042588208008788278156972328828730663361013528492271957943798999234883011935428432227868987460485029472736089346507752873848462387296433124453632475811812037113921187653902108181855747585433878020959898705445253891007169871224485266054073690957538245513545655366357133267175929435822277536793591347954104846017997760641009458092830200340677044854494171814344636393735029684683744450641836759019139942729548909859937792817849901334659652590059349076955221996766665036725603341950228111919201461832619353025244556570466211679773990562587924855033596180010193170675597837219748394934665147168499278517750704510045779158619409137162480755398870378143858836205811262599106622322947251371871745726632404996014967356201717855773796779423344420973357797777084679245155432204276603679616910717360744981337853405773190806015687609612726658296457666818013807810994038994828336327642927583709406742116672307899969028753048573254239338340924112250543119498816853601930379460621714531526176762145793294725376262716984918312376728985820742527366003440408782202409290126933009689865188570794764547201495342855881781639506770913962616008800350466617746350516160128876931486005038718167998861685771632778344164894922779166755349808773448552867430275401806494527794795457275289842187184571542365757696048623003412643854322997975258289960973825015985129263429863212470503619292762003694248237231013554961714898515547243435273367529822042529357043922136688635399324955348550221500716905469629076922890368584629064580651418533468171601392163291383248997814626393749343077578574844213177957084865088113965050329579836538976880168417375339383785982891994321289829928633758085084510246444487127661757528424389011137737267347249462274001476543089539006872433222477049420705977587502224015083472429033935726175138057946707266476882971559634742167537265996727617803874884149978522258341161445615622144961812443254072674568879107630762192720371484064300490845189946436876983204291105302545080486962704741198820243943865084888482265136361611611063537692253913611276979554082905841173299887085383256661545928654931789807385456391570284649244394541085244365310863878553437899065161684479247292548125722296461745398825140711608908492866319624343937065051327997286801528442131234430048035402139280704694950183920430411087925435851994063568959954370195416764236400452876903497329249489393925799332610448382208196887828884444061869573513793469320634747746728560075122750022317839004972043487640642312538450416387805971812164748639086099035858433333740457145400661565241438579780588436006563698863234311623827816235107983906868807186955357378837974854384689111622182565069341578587188965426020720599919187632991650420607861514817981879216480226558133006635539654992561646293624079986501942334419210191854522394365236487866409591077621421303500552844340013519235154749059836224680798628982534118242020364277436141016675875700661667107069865334112707585381030958254165003900803055758047475054754074616062778723275665002857356273179134873840247413364390218070212459467765028064107939969603400514913279590423511390636816232598709826620679397120116504243511433543819576764251760474387040983135861444151421801559247590405195713221377831591946951227029328697899763522172599545557056238786881588376715799762006697624492568255307846852119060968683893292945067569149618422686257866194932484688539746021042431418468700661725479373301101693883180703903220628383205518849082941796216974239994932006557772741445554410367495555444979980956669823960687997910150286623432821705106753861093457084286570595103728113279925230235462541543955921734946118111164320622686177694596291148833998306076324847579913550907816714450569275407234246451145905092267977569910729252247396896076623978005498260464082829219913712769437597121581638705383783047730017541306402249486477252541905951849629601897707830079022024148362097414996589689036515829374206249733078855887988056808374922342610571885725449699883939124081619055735015412415015693028156162328299912814584727343831090757247685411446553209034781476002375056769219729942485609081147710103039367874397202053065148117525217014672993192503469644146059148847061541699074114816461170899145094346138540041198777913175955434048979068326806223215190955179418448963817550226325359517492364228316273740301621165893966251345659459839380511629579455237893332590357791031949754124102405668591599450329779787469831459410776535745461005954812327002897086332833328230651371940436291243262057886726885175521059743585519564226963748653508618369469910785670661960940372901063825414052710617958040025184552282952749270067012040645774144638195783825911940052552469690805346774391656449918721819048238745317313161501616522259614129382129027506917938314597058536181757976494373414427503946661747004505006497379932880140512915617252136139055050334958789459988515513646033146675165397108366052148609094797218169936361224024702443889867250312330506530877874687059571708108093653593871553339391531147163082534712291730460112230728784626302573615246592583815626898216346676054537483650558756130914574052234471312489845074192591411256106237298459381032297802661070513455247259326025237836831726201372665487379766515952301150118408567246166681485371164345080133288283970425724265807023246821072633101592957447009619839130901499753048583550011698797894900666898188902925063697888155942971538462723157317048633547780715921154339042638853677401455147472072626620863682100419690444812139234306489842646051997202572365413142781968112045657305253705244112292461865702492081360261855148062418759951612100850552050232043083496604354969066844713270853759384444374903669178758881016685599805945697824110904556078002638328871701231743640663515155912528413348278671500200675529828843324701969151814746790920626727163287615444743910051791570062628267344861404140720228210301634494102300993091513139507782998951938012107667785103849405591502818726009435299171207222838427555531029966609606742428754080135094323563045206683794129450465037699872334774612796432201868500617882844172107802889265332899400576631129461129330082940619674898911128711669834578191409567905263326209474370113418265163736748752375690174439046209086024059416794907870065314304016674378386264743108591353216379141670542925508737782942745092999566322087019024150183779930281253950879777527634527273029005581488945744322237544870565833602106281875654048475801901914954124769644417017314830107397883898767355393709925000516459148570931167614257542287023914629714494881061411426053488822157298149559790531140093096441925732134215033644789469037408839981856232982113085390296624739026339923831599882802619976421385578482699640543064733890157188997075242754925148160188072847807563031529301429375104998717809451433215380212029352476633522513133367799375014228088269650950356186842146339648372748355284895025322684333597746643012495746601429955705419734210685098365604979076906449325524908898084571493319968690622694816535086582818944757571533731454861753981710893073613106700615075978750368796385444744783700693080853378842758160809860212272555690640820400146196518951092295023465062790000099958739715904684980960341381656682098710199912810668388046456313509189003006821659857890976849469425516950470161600782821537040836598173766640556497439999350136712268866196300607079920009499979835032303213955426166157090642250092109919747103963319929063644460196903583661137681280438088686387927684299941776817771446524008159084974660008894561848971904849674303158489999626515372879718352797939293100626165590079059849220732246242358777779159546923947354662349034566731309675023401789044302559412607188020700334776203009966462147967686053759556180723947559158236478003621789325260588686258895827224676041566964307786111543921499798629313235522499715700363692562168053470565810441657814789657844019370102474913191249310925398507256851818415823794184088006565102841624470999891266383332161511132019139045828713122710042956601453043452212360083813213572486114652345938964988348935410093956586379526138269951142539674926366475672853561622433957479876260154634352122088068602619010016457293417616431260603423000849454999287305981204903444523527490633374356130844642337277711031410413972699720238440535202603140224623772584815172529483792370975411938434370660619756103980131923158722946701305951480899729749248477134704910577002385293053081312230044469817834929810278368008360160317600396979266242534016366149936782414206629358923731685529226271123039842052464041682844397232553248609571934285910669953984673652363234468438930363444921057065189121355647996688909479416846954562467318110499702871586274861682466318813709456992613212320556225051980873227138863468397663203227784403198894404392062708566146717600746780177418701888418186784388583507924718530134817243614659612557244356164619859974758587671547523807626081879929560477682389816921241150403606833011304191986893192601371554086625891947463546426547386930937236642930160516329970699250398035420759233957700293414224966771910984691803383107373994954445773801369076096914861909087523294701406475605552678818810279412023716811753194317925207898978701064758985160067931725295378725760964325458250986560540447658789588061290090331471554847912473974964120657667861797694857093685923492977756279153642198630231084894846956823927331644932066311136648512712692184920533511694862291125404957559806149159868885568152351866857546174859258689932008188835631527438684386176987868066988206140926780707231054182116259808522783794335588503690287345708043162172411633231046751135655599414317196522456915886248991673302770940142272764024810557020329098065678362377290992525223447718269630284381519415720614227482898439272038902705068599963086618469874129730263995325340345107061615525331516501209369951503294058057006406336031278042983193026591897689742652663612086211992970574133454091364252930309139770277598276495409159445033568803698958023533658684357684417684192931327261151484642526717785118229253877035795908582711573000546691304310298102645682550229700123465372259038679057880233383212164643845426712972389318934567982072641315298782752042123134274341067249349602384399353912460257748256018918481352722312973393894483382648869127655679469125868695196619910150385494210191198424351899105288127287111325214144273004622887353113020461131977149576848478234713928354017464958057287858927083791283217854605807581558174696721666872124124870678940436089661290928163309740148804360548924114542362572331354892568072923454229069126470693444279452097078952633814103632301911085970019667491130116451854880172036775262304705949636630463732769227286620221645145153632527871762545660182029689649451035745538099030237786482597708026343910444142793180370573320067447121398303140221208533340062452008912038816580095448312112912878353836085567942112395931074241172578108095602645756802928132322425378579735301855608321415927402089762275710440379441572690029442675257714669203357367749434379716668919182397418758917282471583349823046186039276065722071951951235517485281300563785834276813435631472733407609828471114905865695632130487351655086109504289148485675526163478340217399897301156871742596713078545458139604528284614073219257401877976338218660187129421219894244171382977744518570907476274493738098067526411605432155482947951919878919076265301168654205662845034784099103517377724946354306344038642154223936331387547110886123603527938066306995976799219079887110936915178910131134072555949055284321773032023963092935757964947297984011111664823564372532314441615084356282349785826444069939210930740232292124291023401316368118136199023471792896546309169953133937369609049144408078700203420772181757786187517778078565176451514542669300879697429528334499596859179800216732200314468396270956849171604131606420416546916395671021940603283759757466953560930944429825060439353673198616544283834907083635776256455741271274465640301304991387442998081570603497695015525597462377585967081312214114547575491144540273031313443383716805346529712339928685970234143531671437741932946246628998830891047973114022390053928232129440934668203402876461044863199593484880401445232666836439991481721434178892484984436762446164007331903510662082017996169412579437699900918189044751372432285910858756586334710910564094773770152504735397359025968074613754425258659743943801342170021593772046448785421229135018486506029613648742412174906672716239137975681001260386966193836380372554290060187646275955210106062992849637411898266580313581936639193797410959435527372754610588043486517803528652645115482655056149083571984342597757729244195333335817669942796907310375724341862973957247100702694684609298261745986439186148300821975924456024805194160868503397469736315032059740283746026500281768577525113421220124218753549418477007898987525147573823054450366567388900768211298308377783021263430178698776127005033302495253525490008929634054648210397889529078869511166111013713325931007507576070415482461291715670508914004331201056024102559614892266512454261423272469024837954954445635652844237934727340891986942808659065546453799478717763965974187066855067079861879203857147993023995247669592453134997216556255069196485772917601527050969254489701447358944284030276673959791032501180533764123006970580525368455708689684148960708404269558592242274473646061471366661099229175938753153799306745619743309719793287886120069285884785396762398639671786479079053129273156442336724690215531725230145773969498275644547819326467605151338130743370119994982030513593123821824484283421151299082110239428474832734879709436549146174486742743048064124530088087072010113187295078165874767283635165535436498995863585592931206036590775268519660394632162358261515106592289307536813576528539058920235226732456955518740913695770781160359602491657247086522960394040284782790449794370363472780284060971387672147225059068864510033949106442625837969252089135343057410376480642259513112332116603713062588500973072206805414538184197685590960931284913523616045418845903151620649528422629559601125029397582838905514369651717790915760824038609912697020919693218549576332668155905447209120275901115678644497189079671364839437221305999823306257241189909598971985743782327515848413644287612126622627207736706351998030946553446168064765186888960835932709228039459822763145058230360909026180620746291334067608607285550870705533553718767021542415090736942785596547068569292219819259272548452632068982917247266889730512500532271884692613104776154044891407131861258394270602050891425720308683211784573949444970927675958640366961311324047605123142499191836631118992751608557709374662489269424503036246664053972939211751356483876472020685982452997486507205217668499832664976249846301039364391951109425669402876941405696699440184043430067631827899082729959634711843016608046499234648854667071817339797747087576197841345023221881518292035520876630491216689404109708560882283883312924397750827803070178150922228008729612520975552711158238208019006903588280702605462230319995990151375446361556431971743236349274567457315801359028621017587946354602325277223118037185150836097577931328297524464356529346790892875083296424578678659096590627903159139912946145037540206586253484828761229067116435923870884856747189377354227892319319112875654823680996036445096293659908324042757796874717737055795450694791900767194515215681504308541676213691619660955881717999890037431570984222530224994264324781271380060012776777459059690068055113571093455705593680727041352647456015610015823041117589204895829474869482896612402565447870366795026388030444484860213651474581402423864680288626687307450229701938502775576134624974980480596926442053936550166442395934531357285649327567971826994909947766109745504929479517184588311655833903077784878033931524571334652199556925728600514780282002911485770763304133870534362052309002782582436727353326542704513347379666899342011182828286668746981198440297855499355118577134414409083319634989045547599628433019010464328887624269444365770049108526365283601394409291833832247654987749859210420889618671868150060523029831724059601709571665534739311634969578161546554729806366385005438174406378458366036040458549547484679246848528771745782846784479525219953578889343841504774034292339647072424826733755454135002882100847026111841030038535938557469225189371041632944891908490280860050796788424233367787569549753640443260895204915478991483861947967606744244510934414137675591241843000625283967743456377669389062045384553370703978852391333754773687688561862818025298747174330669018713330475128892683439681835799709324026264199218203361279533811889451733804260681944213940991105241352960338929729261508077910302807741010035228630563978217154898423505827274047964858835927341254576193938862208778566380521532872406249135338917484311508043632103373285491083267122486526533603577073822092633166421059627752252919462546708756442989895556323076401580561921124239170831558254038410714651869342695549339161389159068009221765262504991238498263335319454601059746541909531462886357483624463118610450120515732991350025759960240591303144060400223631565919927248563361344831575349198235385217030182327616423410062244205416471271617751959384675356820555864208481401838992456268918340067790390594299506379247518323290488368885292990410163678373651412683321739531604494214125765930639466926931415572604472754866455032519894017501133023975321141950359418743732296340871190799612067236011190612758464434732217956845586419335114953605696418856175501770631801000098039342155251199308417168857850942356951472318025008338900718240859557233724299862689626353841937415897973719661253679253712121999916963788280614349175711288374283658176347205249107149405464091281629276952943131856671822210212287708221924578575037844196944031100496830510358678055992835762363823658581808985742222845244101198661015728783971071982336796630870497462371479403922564976874884365127140399882764181490069713706793021924917681828257482538390808536001263861881012883841783785410277371377615335728986882114416355139248353488364438019714278568903520406342799573138713804805542505880985560954010295360136299291899413664905913674731932747111023449350060613787606174552732946774685382546595722464823051414497324056883152460197875506226551036510498515388378347224300110796915932516074817894159296952710237825399790824008254072039017676992854208608470461093304655755325956651424014229725137113834660665821628495349866944611408307922182446335861130441302135795377004309827733515565097407192187931954944335403550509838409516462682729954355015751424173897029775958282761176051070787779392770447703523168036146537146097276001291983794064812393059347107550522272158388814393278592943309731222887606082131292304193497020138001070783977755829081298309320207450973245651701115423784048464286175082989186922779573779032599191769409956512174268761771139398311466663557147169430798202817914251222863020244340075109294710392339273763493380252960566724978747670513231845542421141597713810009649756320260399521856008014778249722113934316435625573913634659247976100523009453119987317765690587071820879661287577448641150066333814179347003410204879001426047263825105626220238354871606386308929980251624905379904867218290068858218701927385320761065863425268849248896890046071643434379247289883215918069878481187801686029877240467478087130173818761481179798628494275591159220147749302069438417600541698259632831978767275482440300692115421496472976603921025026876259846339350161590320858696725992609182433435732052010283218698173129879106312089998365311436104752663589439771051071991541855877473166054575353035672596426713848655105817664653514395869879742274243126595463426763740423202399547994566345509757904174856921283986625308755974714359299678662150603683945066379165345876431944972051544044414480585429125407162605351587647693967631509729855725883106191397022447286706638346131492390857673650406847873358924091268088806862782657312327413754261734853440518532389424729914780305896422794680145663072221209394716845489368972733587105896118659217946806953381716321079631420360887141533889117541534136875775104997514064882557342396654627558347798246285638519301214823798958158123282845300343596712676270474490936199142980822220162831599627365020996694934684647358138190370969099688688152519663973398377531594436038179231682655963811485965780614634283901436234955018238164048315753814822542913287656918137546948565921475515935146719049017547558179052686350728617790794048272200750290865279660233698873835775696230541901470249972461179427222947976520926313091809803933346419169739638817971884082383056259332076512002006809983576182478044874945308368706416113499014135490406810508623692014003513202751506102878976525536485171094279731252003379782420862447917288208214265036454239635032934702237151242982752593616666641242684456747639638000711130958561474507452952611949403695691134071527926054245026365565395799988666780187330199333759061703471823896831836272729530806346241191278768828389591517955505188226782650059028465863464152880431738530453541246677062180085063166299805817596230249785197034562435036077030706718404815075304634622350857795857272185719400423192977863335225524731795384884501656064395503265839866389550703604557573913841593398851979841992874627919945101260316392406453629136580051825477229150723673715558346098254876642050687155147559785545888103410134887292438745081122782099950030894254201999908870448834748216339763586904114052770613232272368213214921207697739028479815720567162671000432943932037768085902064170465656228793983357566147997586831281324373459758712391344558697777107713005082486284234868500214930043587676320517546045872759382394058167763606020252122160816188708731586555930719578083989159885398005286678953075592065453488612993649899932795980617611503381042297614354278879913076269892572160405328891776370431681845928419648986135473854943626481980746359355404007428690507957278296276841747065304984217057994816744441677827827349117914949140276374475919922407933140954117924931627105412540683572147663379638485782833023397497541299140565181776412447953810852750290449153744340081867565708900354127866755539659115941911797075745677386763355276422483359928506849849098880323250842184995801890515970755289580798970172219775763398968176762473871799952528595630716231149226746805905308225072606090201942294709566376193746332024768590966061322937335625602486574424072270757293875427597973664562962482012037285692677318201545734041209765145394609880491594095618402446474872776563004423331329365747975490318171189779864342427289923869996693487569319498297154229560050050571642845624874085491741568796049439795895947488587707134124055941743498189255750482941098475572394108277544651346405465558954610142264313846124607984229209208042983320919502217236558047995673941690251096574136765675637874187320365902241381505410011899077797384337459800838818416135603256825138108711772097758443755864650436183763253405647987386322818891961705236076729803494105740982033718308670459190118709585049535235680849018488594238338923738952340604645179743771888281059066832033020020076879369278587629764097757783549727316312823048580395261100029861181887418626301884617988728719228310027977050797471338755166445448946710867305147983588817333023880949287898805487663454701012228189181274940052611915240800930328076724169072543788668038421573472046078730078309216275041561685310879755456934852601957720386682384408835536039489479519945553991424120179365079933581331418236819629665432242116772681947950615090014599454150030386613091589648914370034551864711526137046931067110561799981781142031235371970230629351949779506800947946915747251603219288003596933689446475171439931410508791098906209867060493421845607548959180616562675502708569404690803081005467744719824121664083513052844722936375036402838550988896118882905548235040687764897764888123420263174454095888644185828789913974234105606479821277324882375881853000825035046741472022838821582095912953201155474614472979648869231936131661077969225764646093531187139835573937087889329336711599181663692004999308073608317070919249972644921551855922893570081217407900248596350039380127340613916220961533405378238297772010111582515476943668037453623214649653650249271903747558886979226089333260426634806853035192111055772035484229583616729657069099389984018230902039880691585842151002016151423612746672379036394867319346811709434687508054203554178830512604711224535237470985402323505311966632233794809369050600378937560924421670561677319306412968596181159945522595394420573785808137013078960021903109841613062541770191968820427390837076812726769679283704075024986826593712649054702548049552771767634903763201994716182955187008283653287860124021947349293423501060753265473417391081991801161950566168221588335662260147126845130956502956062031947726888845923769775488552608975405362653748918370160407861303484606162285806065030649891302750974559375618714648130360699000227714764984360006184495342764513317147060651101982576076742063836530346001167674660181689636752144083889768739173450456790913997637639760082740763951838730514070316906895272751890311012510265222044504500347865939408524522890277481312421894631219825200401344904631207210984255163771296339254324077531287198049692435636538954208367903830707034719383879828317511219519790167597400341012894929462852885939402977927688652649464400735366373585461629736871586447046722113005150308568437460958601168149029224285467881606166826340682554863464746425587968861246780159563007322852779166242774769235602158063013859978766466736620560150842949824980874716655722443220734942856963814609611642387038178999180310234972994393338400777736594114570578115148058172808152860402027306854377640706545625458821026780599598957406745166940456148363943208764664326330060955736964535973704562931553136326823145783181644383172901070979621276621270801371563632277816137791500010781646955257905050604439763162616506266000847481733794005696451784106420132638892319829192276433071318613188795019942160556001463629637071578631661784918524606149684210337872762367650924552604138123498175345956697958823130960742250880756763310114563043261071427118327438659171051281955722382393249482959951331367167326765231277570610318777638478249384411963325622202989295972432670163969199246714543889356913065881248187121742602337003160798820423507361376578602939097016945246679644311899872204815734363557833276600186329896007445606107127037782287077606182701746703865936776388286838319629156554877168347819418195957156527580194620192268797970274808179280310096020413376082667319255462246698353488446246206844793109208987118170756030437793423074981941480631318032393398229784886461410231675065515364426520425368616225523267242576398229944099422295308789587511286793259295814054807258558038769864192238384702232288883954884843439032111381832100099536753386091191623896543505055989529569618296221346794268973757476226545805098061771197538714551834684505535448382055253427648238109822396731827705889172301601263676625222227977418635505950984034511690070506491935959884039625103991279427642470129489595418477820376410423486531180875513446924256161811776654421618161475862972811682995063616893959602558285121642190276695615585986540145318657495683101166042669860844374585234910675502670389413805127515992546605034278051462146381834003183955633874780084866838997561068138203146928447036264928095923099798105849862032890503674886842522464659042198936311733789942363327563949010956592367599166804433284878464772257755852854293970412272891111012070080432607264072016728182483632256393595520005328716743373421123408130910477356692545982654238913565547762967785753845759158357953592434086371600201155473662865536470470165796515289925967098574964074176244939388980403943534671752860621650731865562854903569918109614069234265206538379298989906212925128569077636309115017918178048469818376457640297219187213238575837692692219833007679299906484733286457360254092706511010016831016527013393431335613069792880677847991242160862359970147535499885500520313000802504524196617466867009436727028193584307551907553820380741257570373572408638402933658828318200061889189372816985464059038245759157011361103527449834105553989798030963773161978049215080102601352077026185085648725809045658051685306085743377065780979276522279043234936828831783863634583693727054732781701980624686536119807777786933452338736467940668007495594977430270026267093340758737634385900002372436557375883128575926630182369780403307403730365195539733620080635253904815998560789631384795545825216633318276694930623003135507567481397284014527519359707793285352640066998854104044876808793078883203083103674183964261086273997177813961834323332950657781491272486273212879309099193279878333209249523204380784703526179059768289515055313389971387283873608983492787532418440473927068365937012387327198551259512648360374315957834979013013260587934378226641030885999387127432778957488632127434167961324210213961603475063870033045091430290210275107217452816297987213929382225700818548721708365067641251842929790135023527223995897406889849268103474559165838994611086793449727710058658684427577375135052797138480481442289808305573122316465498446425436769888720428031981020269544849195049056757244904374194421239191134350621150492817377631068417440397515442810797515385454661578620726549779915166354981774758840353068990959139047798447538178796988125023330868917309028731125187738209152402120926456325366788358033835982035727820373430308319130955733783444121341434787309967397136856358879328011549658138154126878147664734761465450478601452224206896730035278698773761926127677753859222128628982916113418522345972582805591102492809442841707540838417554208446346136359309642476139686483208256787677867653188057212367045896479875527299586979113151170159114606543320262516937906534133569001116585528217593509246752493974735455325797533365828316159910755651507055936483339495488713842732652315483801675102379729721375200643089602840237405738905378279635530754534720937488506243626116440618902712206486023639567227304079948559324573725159377500414188269989124231718588988081160351125268671448546489913268697804330821695680277212308515240151367842397706861966744929575720263311607538485761300173723004882137181118023955319299147981234556227907449303451273141897069215719292978594857918108537878340938087648863917160790746599029494644009568662942641580837605327856903803519664164329300231253304493262622567394557524307007268410754109167353051910536943634229431939415152116435542612497963689220796238135490708313146415102236787791596567751636065667133928127943563867295316701572849361863077900911776865626419267374249670717017301112955555210444829842497266000792837868188850515345776550500598031416250089148458592311252383838363824082872047580971337375219017933024105412338716948248930078306000693113745580653273856217691431785953987649186030669406962952712034686558947532211330015067028375934111564152840409249695302072367896406303815399677697111146422563852089829417539228926619788606965009086427517562837131037505085151161253716986564504497804087300531397775170379529068271184469440704391838137528428798765026555905304251489731751324917121357978394453119454839008439127113236075749830939893408081852546551663245908584079608492158876483161475510716183318441141041292238132075317485127201583873516094264615027013106357991160047835321421311525265694310507416524482745429209400748979488601343113087297741968093589708545612619717936904110620715489817374805262430912630597196020725087337938814700613298132192703594183997637981333858623504306673168229263938851348909981882402346595686573562408133604475320111172625916837278957042515860124006526751257631442492920508593903350757821379784881022222852360664937644891103576289331447744789276405331249223051789284738897583928953135209434978652164638979729115827912285807416967579415298525886435758423288606189110414897430298592785672624365488679648069794225756944341702053348865478973171850605851699305219568959800674125763220501969215894706076247054843368354045308516151588864511714473661537809325189404790316803154877593879454528017529779854659238051477849670520607262459101845077611219280056823409274723306934210414876831071870771361344526470084217006197624734437595007754388264488911399445277217761740191311738660626073012264768608165949861715101169156380611862313825504486928211608597288366213434032483735360456978365439231260715676386742586750277716505485022789835384331646866141677489595352900514718791554497467959340915171849502566597700923191084371736823705797344886358461811395827843919508915559557388670509274003648714000023685486335440487616456638109551819683264834384686098695602920395656877250689051482506337642587604381394209269865996228189720471042541401844979663323497270337110169755399479078746766043665586795543488578983045215707694849427714925720747145769114990300910143037299111295457908586349905534548538883709583868119094694308446448048011112391060819689881691302341871272545102274003907676704469308889716829654879100766162526319560206574651913299687814262306647750313830076742222451514989274091346698586441078601676952125550601221954800619966980305725335740759567052536202728817204240082325781157751128852941849280446181723159277239787373766080684433704185473582658721670629854146960967226102676102192949572375992266668854293630392865165187863159351196775883246056255320053924164618149137134723945984149985418782454159926680214360371250104379364616328427856786068679484301842195397801970874982432780023611716347420742211020590558202268890059066989412784962702225850095641140741477322992813526081307318998312968496820950968240508178766032924190557596169568149054693576757157223532298728371968279922867637309532024364856140442100789203067283502799717632672525307064959177040893657094991557830756154240850832836317162844525226691209987196601316713924910502155504914433427561673711470844932070871341237974413261147396986170021090913450056296858318528104427514950778082818017112610924574475937529997133324734749322736513385813913766052109257514300658294557431870242047672000944770913126427061374697543482497647615825201067526295113469528954880506164783012047539013319170352236901950734162645052777322444532089105395927587170197967887240699564236884278363054239517946239960314498960664436550688136968175935416307640176962488588693360443544226359631967209947658240029391970508469811342611097841495369585038559164251606449737799311505918111572124637718750151865379299079346937894948956869550262670031199841614161851549080084650376050407139247216234713125380824830131769817187912399409823737874111095741069313180244846370837337699212728308434962173286384381396779813796873854684617067292142750686473995095222013840587242810457958343043140318182586475061896066938151075800290982452724144164648101582137888082557194572522313134001999525048615202743211914178679928861166978238422421671169286562658254144136106070309951003619765847883905059368993302231916447757884694164862315171416257276969367269050455899365335096865476154478382942486269836705787949454736008359798128950453263693469874678629775600514922564699731110231791678248745941179567323094715234101147510301853990933417415126722147393502017563244505034235698950837081871767579805658356020118672218693357527802621788782071685984002351628349130262178116336417146625174143061269119165921203948630505963404881356793604052663936184920640103313609636852541388074354079956335142545786847387970111094010495899989211192230898051240086288191811791534646517178591381347942643977814032803445478526453651859444138057948333511937051469350522394627221293314831361252202719352123637531622388942789587437165906461890283815768257613676365032087003243417396593607576045028811145373733173130481631921592132966935850043009832443349680111706145653293690473119448322921366580212934506767544818380979275791507266695295210101498903600684715837502629504320256163907470054148869257406460454886838968539248995135763368501685586886478199478851337918573432007101456559426513914607936829234766946342445269358955893876329092926270448507868010573092495725845442111400696098117450901551596586466311472351228787786417008989168552852111035016750585498015269012178717047091972341079045852528111088203545430961498888153560552364847619641316008692569409681793593398594833618177545144588770893158915948421868309854476462580655701761310005943836397220676279321510676406459534047940232939550333666000953609261736011077550291010048260538294483143973521825588282858740688067295244093407718488046523440542861670843514866765657836410402642840850635884565016542810765130094140087418581882417037295442212894938299924703460129212333774904174842056477251458735651241273939145632687674229271227257752923084184195225073809002425579183356986839773920053935366154012362030674087124180933093442995581213194242472202822600752899391298710117193651677047836126685768127767178677781687914050351785665345496172484084536151510655085250965150181246510971344585935841554188274771613882011277043350200187987672503017192711611315287703597476196939773214008341238842618613897196973557803300684293168738877591738346703965984994499950857612327153057695829326213411084417703279222699179862240624296975958006540645656991363813589966475432181887719803781690042563801508820928124608215629256819124123118964483199221909666911705121912365647709369662498074022981999514550947644495383578158773944560166341931140072826408484842562057324795694567842077797007524720149655069612641007465014501509168842803558760404935671893055013297335565927607593482995218003593257240984472712822980530977194064857165516481838655012747685250722612311135201610336094102373350570344936072770357068182822732275319026774090025698997194309613291047195371377158742769238637885016483318799552834453132606476041284072640889290416630179395397078267678116130730104243943542667162463955694403119846728785099999667777504068747453624884882404416164375271760102901393058836463342896437197352261997096862555704916331084324149193617610529890786659100255130309257427648465262136363698234946187443815286839116369596765190714162926392205465889969637042457795205012794811451611594262665031368819743971731795036679838070894789002558516017694217093866780176206560993061543908065258805151266115217381794031062149180401405046566088851645841588834007537185715046095247045996945971023592870666943448397689388922839467654560612653644162507260149121944462688065580864121947024417350646642415264437767437276960294714121343108440596470362300723531665633032644543210064362178562466352598658957184599166250818633317251451751167757169665563473339558251287720609519375616135574973236355786703566344122509515355605863618434230826225880729555608443016192358231746930865469252458803341826178536292533229674263449241516761215163567487137465649770400445145913067011417228302931287679540641633322808785266172369747409181141867266233492170149117121519079585320298853427156397623969298997668208159540465891636693730425305820775438982356346433326072618378821754371745065519130225548363395770849972544804662574030848729533129270456654145127283896700546767914245621246699257274378888281046475308757986959400698116967881542400734103935810398026680153460339097491005973257189250936354614705464208830351632775568100449612432085574222314653007336869099995292697109608288875560608645327489703666496471464245774715802022438084356424008383113858960132765414353487084157468413999988641087468728540581003451837103147035697437114429880454255729368422285854895702673317468320116255401259210974347166902176077142759702594520626388072285836090932288979256973181663473153049176138327611087863396699587296573410935799011998856346496198435878133228760573979556192804474604127899580256980175188508466355675943587872080449850988355935157851469822864732646773191216631990446074898658761505089334513384217975360516591311644645341019698471835570306716684172898687435606840781508994186077788270618107687396436950800551536985361194465602935979802240926503461224755878437772812897505115888143427547625085935497920617888812174992266336857403569830709791867088434638642861062067452840662832646002709099579609742969632250086581410977372737026536709386239992576839676818503349984138227130069327287280246643084421667932750548962048855493071260345055817518901817048940765599414936584874294120138939296848180368122836781093403319929355494676517245263493032050126596593857391563559950628405082257868463132325307236077582003523478144058714268050971665873143015992339097532141062905005828693182846765521925794020692362281197414426518793778361636233085931448307886410073060413459114467187263275327412779641700694140090671440982445043325712718916931850568708946150183642112906795762024573253215906733509441316342706425444993355847917485221637590574207336153697806288867779718610352104471193643161885157407969876282134435176721481444660809133339401454594173617127621110112815667404619721766169747215983270456926851898200904711839912922706314162740099963174936411074327011462608396422169285977375656501160456823133174606157342685264698750368632801067577943218267597047296134983820139783440326650877452189469983527459445313611810701961109160556784213670689606253527150332990462682629089405322646925278356439852942260182196885692195970199965979602401938964719246095978208941874760700137371049210843855895142979770208264350242599309392995005147852177076758570185091401613348276387204294687789825398641672015149535744929235410867320135003307464525670290510873304536545914181566244432098571738413711125166977459626174390767749299536924615575960369888884643273052283007086003805970892251588180331814402472977408113729676524989286836837719487683372745279082692840387110169556327509686157541773980864773129721790679970415040617802489488136386912502699121487759343584503799626792943843092342397579757328160352706586658159938470609956517843183647267691519215545497122935136382858220839933054751911859861663662240341287557572875564003013787243966151640478443029631674413988049531871507882873593218132891786588860327144008670211534249317710608277119067771564572203082646948170220791002116740423943195670593494838543502449867191111614941656329556431006304282023246719984552477262645365809214957409463546314930225341095026789465766598201326973051228955240373227988825173425323073690725783911594919263133049277603010796131128026426716472533625212157166223799705573098709121403933277662586587084083590776487135966549918002961201318295163215481768776918982204381777791142126752989340959193810821093770659176230619988247988200293403721966326612934373497551959654872115822572787428484733651562840562007318480319374802802141142712565836157777538205559220096847498362383736796481757148264993920282624506887407017916742576215178819636641676073655748512560120950754125082605615490412157583855582987207043061202436528655777269649150990519947208993880847326001123801394645044773999549559379830790994198949365412173436762652810843374720591076982637906171627116803915406739640253372865205918673865407373853986608459540576167557988591071489827686840096137869573707738786388175762928273934572294007472012400289581831591279215656928167407460224635182958969089516999373326033245789088334972711358860075688235914609855096990700678272885734972148038979865498903345087755976952784044863282407758090243774472101215867832446650756236684552460257251618360880076285249042773029494828885896733202206759969794780529999682892658479242954395480493302113449729243958338192504146119243685742396530412121476154434149185948054010670710787014674540515153714936120740058864218820870789600600422504231197290654784424615521020879117452425069680961939278792611295176054027650821829573490265155083413331152922744187014210780495612335433304198157512815477211005453470418714110567057931707988108175667067902727506946984900273515431567315227308531633376830973351524427434916253941730047940035699624662434908131123249433701223038595160505084177678316155622760829020546174332260324991981595586597118823925955152827588270753180395317872999770662413139737934496773212299213046321795540425691758856946614435310257159454422146867339603604663975514475579953945437194575589972807819088412937744467371070084153301386504826856950763513310720965317524057914230550599477196457749996244608998785808307637421346413138837351777360891665428044658204293581439247347148809493249670345783722402812766546701555904141385320782818620599954257071333506173844141753944483708719063963834310266899445438851848034353590078433285268015307092189170439634106697612233126985165675491466741413166976657712615744644769554424675929965457989702183178147612290367935949951586287066416299072765797467635625195206364352723961630002333316043297334731549338483207910683421279520086698976390463495477818602684117260957390544917682924184428806339075868092412922652024700477849541625320352440788078480848791670413064948707098789589390524666863552665025583231590685496236457956189484658732500314163405719029020308769150313884298083915307340816246662130752993250551384695583274666446578083818603566771128876674394699388707560407503525024882988583681906246767216696056376449428509160425184473316568855583785495757864913775919047149230717963801079524332795238036160455635517865938199172609481157209269631528297308216426592076983635188850950536878937077707423159437018982284715752449217004394560716000178996093677281126468569799399595357010905043687430562803452333699606094675499708449718830146366057080030997917262902076929251374821579302727877169260358053325059748743120424319975283066445556600701844920860399389102674790887551999219081082182656880101977766391889062419238174974056256802507768261568086952777196565944756621030430255901351260017012556281472056151997626702775048009077075483263435120593311982326054698503193415960928227094296285614064746072745567045579291981423637396142303505384150183753510422989408669252235290246965459174193002976294348954922778595886168854372759803664871348730381031172587373235194091510603248126287664131880827502247126358400590234904039977885819194618754517057027618443300932433600748745233297728193967958054989415308449730511864322654703703517597619277589174724521465031203362723045904580005642426142689186518099792930718898713263999383455594764280799258718043220771261236647265762656824275245637971009019163356549080709795410634284298248681909422478301328158664134222825763282455564077947744302603808614144096807076972960509089633728756870459957430404539591598530333563518789673847967019031269631413840011371418173939272203513456671667174943529904946551740504548390855428081251839850271909710814830654846164597472441000536407045931700172687387738385789098937736160040859809294282779013187381177460895908115867852857730186494767041552348493629164098503515680705422813337675968959121622726682690456637938665199468429525337837009172224649356415400216892305556971273335509556732929346248392592465455624794692077326329855775923727726368492118140164739895058771209264764477089870123035206440067343127293162753957871967445243756874090474084814976593086887144325986115227174485620077939097514114523241376893619366221412174525830965587387325673335704484751377841398797080635567952846006563565678625796684185809428218349071800867517300155343349760147291673101307714526348327251043206809331246968650001099260267371550421282917856978093346401976406260589703390094427245386236292810465120975057849750551665381696964901681775015230762705565013583892612163296350858508627610269987882137793494010420232014451187590344485751249420467119004876594134423447669611790589116694568722570717585629654589465497755412321781316907539116541593299201438470198261135684268314904635242897360882445930284099439082424295212665827680508690219872550619557374932535130801149884672920111195788753210664162759906857219044508201802880346367601165732773857434634884802879330667366628617581429055448562839043831930914462240912870824478683933901062069198984798741665314225143588656683535078401368964098789790220044667738993133291147801507577234402919307395887228801438236699847303770177826849871193798967355891138145318156988878880936027167249171073276112805316775337758875126862683294874592739229505291725881874505369012082656690641429100499477564232296129677151082745007316711627162304522589607036265665034991926754870259084632311475765263527889690928478793193388507276656651771427583360400514929839957965274769156169921429496235812119952482531956746903795719686701773771245941609491150464638361506996506605224041221750824772106601063589044429458370860971841371235634186543264176436290183005626631328570052003682528867189835300096615697634164287563480696754441057087705684442209338328203166021738051999821528348470047818480394018008756170940775786379875488179208379101724846782623439926007782123219203701792274700872787708389702720566207769992450035166340007863750263538821478926125151137331191997110885858880208228193629286882751871619422572780595249238419728014988084319280540415700873283831954259390043000844041882762489447729617935741692701354538493537910485624062699156939024286651296069876289536576329361629488368667434949332112894764926547377559010226366724734981697450570441698749220381329533558028867128183943849066148896179984339057236590894211945702127186851556790182678304911034848614302097687694009278670757143608802023983406145520006930392817558357484515494914488466719244457902217929694738783466137724529165827499274405305456874171228018648772713123005055907236374137001080604929384532606818802634402920055114992103414774380473412932186649904545102593891056043119805925834663055436849379462978006322669828874591749146804468449904618490407897141123748270456448155921674110510337104310229117048833613862264894355024349548742130025691716592568037302503698209511261899113145941514366291680100789628157553052636690220002416858377081196322336312742398697781452874565039358354278131952705018276229235968732432951162259194372441457884696642863213112229092775968390475132434699084471007709148595213473662864848302156253312920717439999389937687709878297198732009048058583611506058799044996628803587034230236143475595756967170478845287559391076467413132626663824922812851738385537493195041341727428214344967526394132851490151580885123720924016422474115654567580150802797224885454389058156210074885022495273469728467762595277175034889979397676973678161859422431339749834503116352831300319283627370858742144419722204326786917579021446860314850879286720685763299984912240790969172059009857591449446543411009777971660591256599063700080535673917539452404281539760112290982236392029501482444518791252347374728046012683873970674406762461120857476915711259139604128874265645215224849417831840629406871460371784699480764886054852294246490986690273879055731057651908110681631561155748114591709282766946729326911888799619211994841554288459505921629836629608657772903298212646851772108239530229891986812939345232026286345837648879637687761768157625948987331090479605556900297357500890033026022137552846494529947327029758968490457399236170334677512086225409302591060646141418837357372750243260880576240269212999584161003280759779615299675024905718312906575908157687561327509538908571250326723768959307433140793081122460864674778148998555466934221015033920485697249216806127534016775190906622145150961932767851303222286397891394327931251157566294640085183741606260428120895391569816206708686542547582647376244695985991838354226382641111894582909194348292222023751626910901839798637269268639398631765105653123829215741145513863574742823389058052778672989073146651694482246710180842486565709110540524473617765712240050062368194351384032273081317265314302309180092775589069462220586514239603561818278771748722160498530161425828914772475331775650530556833554136344046157303286411733142174002776640166015161264334236599325563442626124650807437564974539561308407267030013852965672835342833426860501299166060811246705799801260280879799045165334322160345023286726078309551483519483352971515156407813635963707739497712883399681267216378689703145475609798092659611289297038886019884793992597737197190131886529214451810449332888668715267644873420343400884105186484824503871178613557413935136302607022950075926886176427691266081109259673718458520821846129946108581482169230264280265951982866643617995496559929294967690064285997731186102246622256403169182676515391684105843098416909015111284902794480235666002593079847723797235508414990066046672777853480601211178734255039166464595236449921030317478194646275456610024506224722387646208501819611338015646745857802197021325566337205816754602972633106529316397424065990994326943821510746184663743383353077143859382452252780993879937565967249881737827227918575238499128541431059064722143492268313199538647605293826087207668868804835309642037907028075509275335377065843069660169562950034006562210987708686216809452706488705406390527167417902593353310096121358698355834386947601757795940368333021248420625859827667062206602232241366504859927021407709319101886957548853865106107088495430698033015009368430661994063915512721027428070102169405076395619609446155754708096663883259656291545146805748524699743157428381013371793400710493749867923868827261646631874638493817073487877671314346028292459525197786790720933114311110345590866713410889778129421680023701826043621155583634356506933445805589348400226787124240128658814111822950760520263711561751141318028864428439110176267128417946127253912598133477661143942107873734693504829142781924032222647971564828404355734027648501482657936628937024175860583689294556347423701896005767142058444842774416660835389998124944574554170434326105287797340474513428591991963720579263756118823959768136302190349836714618925695663630929806868298175246673206163996331473510406122529990366241000229031716812209272965306081419540099660961076152692983854765502316451951991985762137662273284496362064220456516314661850224472322219164327607188031918650190871660386216219000573042136542383804880489342856190138845510707207520632084960557561336596245996388936108525905239442589524319511450378151696226003006122887149230251226002487962779603937191452135465427136110889318124869279182950595023332061125996652276937027384913445670488013809598580143659266550848598627609362792364430183428287993198161334144185070639602586946425795718936083951587533591303838199283907142295545290536881668961070487207359233033432456558425136147106908592036440549744107797044218593655001483252269139244299990258206371805058659303581030192892828561027827871938544239543901713824604802578866036599002651258401954990736195178359805924984330574405236553151392267882434209335525130540540796271791596405883892922685925107326784116568228107279716416842265004199366568468642372858050148521879805688261673897635564154590313237664433671248338586967215651477050282080323253144515689195082855971774868222888379291422447353491635817635339113635286106389393229941419277986201000508860118742457393587647003381706715732097635059069662620028199063166913689890410431238086454902795091412569380097080002606116915932955839667596053928179102161835022577056101164028722293365956253845431877280073353973422247885937750336479224991214571850227058088034078981968303496830844562162728572374139658403574263728015790661376565909701266631230958689362926894960513790775943471346513005522269398836697040825016693276401252327751929846077232977659002713401113025204626025278087400541383710653124030022264582568727459726494046166059392935466103992351964532746345468114348755037849504407067817056978872376085703642629589082181030542244098724435345200408979572210064115067740211001005857697166578374022393649751635221934767032319073040557536963890965464891502580140155289143528067051692952275111940112004210798527737084968973062468904215754245344983293316755825536953970281871253487743591050538577710520724714946916352759645840392781059257346239118164158564723714951792495969468815124462823426256232351753508494142146578886968453852221810792875478172551119092679100914392068585308761866724101706952598416509898116244226708636485006515369645414073053514139862426633785623668526805743941157149258293317026704273217246515381302033410307992137229123427471023727244211268346131954389125844926289915371206299750436791241644137698157504555195203517680909101981222983174168137052983814652147030958700248825294902636800164814301964176943674190942205035368418455150333803491189110737602267294374714030245089122741673580020280603127902706194654865844053429964883373692088048878711914881060010997979039831166816885473045721796140221199644940885983838187003267242748890742635081216189625448908183759907200162458995847441329079800122518862346561616781365535913611394080990442180948208506274683079661292012424713602466819881462312740959496903505002436915730593887609497280224520881158125204712254580659056247084588935884477552101222078695624914173159864755386285845484760173592900378321059951522204317823888840059414258082828721543915476725269130152294707453196720051757199990591221365082107490276356661746816597359479948853763969253860863405721663572247795583550093976529262578957773424851704390266149317094476983906807168307960926485004746767029815883339401077990524725102712213375750202584519676449854594560708850815518184322451574886700026957959381697109832755048894930489998237148820675381723137036902116510832465369467606890739807497041784868684761165175160734347564566738742799059450066207343536274744059316485641859909997728505118916721534845138779620116291222112054995347959908695810647596666058412153448936543268811325151748693130137221313932739023876916560499671461492398742631811482308760927714980119948071111512258067307048723404120935259073728101739651306218512153315996984800738883370756462195945032041635456015709589587167387553404124585035105160013967199737684885804388847537453094080576930411927151960337915328264562326027173732037310101628361316120883135892270681438031663358470875787763748131717307516707393212616247901670915533878452070774611554937092105827541685449933297555990992352672820464769585083404096167231686022671868435547552709259587065353229337204811826011138900333735073164785841685932940739497937887867541389660192147542605035743446101040757804269558533456621242031102849934412887371348476531448454841276107223709231226261901610333179813909648652337183406627549483649728747293195808883934854863854951664358836631828791221083197936557096732172448737934492493842678264499295643040550534432897275952886011416897144421645338179630455600353921734764598359217350115451703044377787251845924391637895626901721723337755128426286066904487960813602187177342425088781212639271564448194896114459929838538666299486892453754450980133768803063356827300901966389765385481615136560610305207927249752873802379608196143460214532340700548915169634220716063361955257234628345475707409286935701398780468141112829878482534354550626084292111209474998519766201097873265193814372930377822264176580036879576260492137444804881889765193154142440026730452844330571754121735509198145939828054717398761777335910355251274413639332117534852370761070691111021388040876021323839820057499774991336469380730632826864204397026863908334707763800852857234568857889789607826399136551622082912545750998543750940495695266320178588839063730745725388956839817497680580187381691971323820630615583785004463350659809210002468271202966829514163508799583148551964413069712547440012481971610930666903105982643257430054423923056931636785550931814916847535001193915602114615255646399405609191907062815596876908642479323623871214065658294034447639148614905678303865681601478093039464893351656849041964505606910324404713395228551790113643641017003047536705417232186909318529740908959634238980507583830590236107490984790785440738647140837108857566773282904180683825723749289347335291708367742819889787446002577609383908698879702854030448318265711727131834337155496151822156230348298731995012692280624126590603915264564584270889370850587473756887124874594497871174186399472666974562831136026437217384116691053100303676395965318356820916712024252424691107722094796921752019089182645796240613535809648177933173044908399286932088883500016566939887986689875210293991844542201521407873293240757671877251026857553165340892396626350893024732215271240319158101644297642116597488543950793572340237382195954663347510204028229299421115345482267903242652100820460019100424125879144630991108021795243910157612115010805379881696926101008740755239245344082112406917979281618415535937619793432429110046083205598953574897457709826970713650746862977372096940558024781003093303175430974470051158643644885007026467524286359254631628316942545726833953290243184272273687719161461835463636777682274883398079225680137154965452973054505342423012156267725026203351557861628256584010352719054730264702247516475173408946027902357722810513938767830517870836956765957815497071970376681491186436328537464662678648822378503631296895771750418542804832370544242972009679849784650303754255831126499764362006173035977471357779180583225636787032975123612686084932977380135439742170769681493296305355407373040262619150583924907536438487845415468947829446133846611521648221204732652002089244413133236042630291531863360944160781797257847297164891049665655963789493014173276776137041010618215778663487154752962121413253042905286537190667604938473389090050550004772529033229553737381000088618975163605633589792286424792804938132594064942740702258891076189788545862448063067581970836203032987480470084663941811039365606223698128849648013888251774472509885144273697818329314891700055098546658751733921041721934694447361010470043233033442634428800454489510024772914735556302751409020171946233783422499001592980249321086172669709389407531281564930330233049246860598182237757570645425172077162718108791358549885480224273552965773852267750782774938347652811660327612227901602079913066905224144257151646518788151692364625872844921536290958236284412639334179648376726759854121339748222131656983890055278176541403268368765529756005976716090848697191498934967803961102258499939080240801951223154986937974895653971196380174065277092548058892935075170817403549631501608035896754326293777795743815744341713290523610735073019335949389593917840377365416118377497782055700832787665176973726985780390089925757266787442692452051131347615211417920673706620067372854558100436715810867017467531730435303503311320437858839494462833412247919759262711115793901589930765350287676709428029208182274193155846178232559482512153100815001808045173352804126238470817270909171768673264749081961464447661702313010803063669827588339064556433870466668218892525157411004713563180108108047536617741295924478496423761269636100447221638740962534743851027964179585186677286690779200282202126177732530600812061670223055959913002544967860750861177184178721769879860587207925607139963426896249236677652746744463831235841334997554682045424039472894334051503831357352492510458194208812775493951568318984995758625377884860007830642032950476126500673282233201232223437513978613011114516874964611204421071743797261085272594711543837742998615196439571981819529635371099878632562480591751661470136593029107666374491914591936487871963959033380790180981943857102111013007339163767066339522509989249998348985580286299324931409742537954819254723820031468935972613103578433215701790064905696950362010727042309881257892401758538704326763553922270648650617709642155531683132384584174477132310266161340739971898155594338678816798648227211782946633508295888413065878975917149379931276082806731941501868754311240446096599422630600659182291556631926004158490028820051185515015752199385909049679909709038222597814238304076360740153628642472429704653429204482949583938413677433796099227392703556538487020097360665355748552466527318544727432251546876352891234580784109505038680555129719573184983394342172439992796691493479465356780509972267869626250654668470281914163656129155292654228502982105916922617452641361731730906570570063154543923176816668481637245406960911498495169050786173237030577018863048397881883862546270052658826409771042109806941352698598586216534152963449413689969989998542652723768265233914048801127707572962598903258446398128002587591851917609399312556188071229470712006314400827263947027689033213808394805376778000901582937576680529687022786137015569708896030465254497322336980892162537444333509857463987029406188284603588828368651215038307904954896080793392534212212345028276726307025887320811532556885481525623035653029842174629745519868590448533477564072713998581093077983693665618898750609680487737093798364132124351237064021952922094073872808126694914479471559889937184920847618506181782886124445592616815083504663816634925822295240142243059517909629290893046831144497770208130188691515420282465840098223476233230492855898376807787854024293972493739048801771414575554242123928992824817709189330800521092668480166817268984032730927999187493584950923481110284555639690814116179296117373853370562516461513535721350841492739958625474961863574228177251158947732691611544397268995894751035741492763138597835309399768256432542351204398433135192512634475326919482404408758771656762029183803647558515938204506749941297445586606607744795749765528257295574730338357629787539178612731538374724780378593438566947747386547738022065247301110553474440642781883742671252384185483252321177184423775113740016446665897626145354451440703413983208876245985348628310838615218378206139435671148321499698469245268910934083918140295107359207168687575295648677880141205034046225053595589659849154551709408236220947767208096147462459278361642861811436350342892381972719428143737486476132303814601304511555004131996272182171211602649352936303514677531608650156933829282111699011776176396793163325117264242657339555686860295833782441430564291891117318118027679409901359427734700059217883875230169629450583745362094542311958739974266723845271138676151841460804023269797366308961077692131972920963490102893321924116802637229295962228943081997204940382773393842290876490169704758968090166932067801479684003432311475025175860336406097483598176604569131421111001547895608522300449144578966011513583541016368413410987327407137454500233350258749687932336497764796736746162920516670611459050720995231641866122738398589519001229185485512073140146179786927799905049462656207986213719709799699663003432626145851504455783615225669314097552044358070935778209653793285754597162091665639804186603139259309584769027508048736270976302203482326751503161012171487774406033693201420549737140317617320496956118363460551000875015238849292009023292621991073424996316973779193113133921705681204375042683594436405745470010604583457588614881116962418021504146256759087210812388558541787205224978528655141402427542747654961300873839251644253359122768206923216264173089581772679398952780601503345761450750194717807776784135629961731600009220486350627120349038266425296731806849402574799824665382744548210256796264734563359407866217199546973631775588939826889945348094679773743719756596506172894431278923161062014006905838077325973288235856205361230383270558128737815944177574002730703291494086266653438467601389220753473533885892723560878682465943478488624235860417992428048949590626857854695575176616139351415531463312074447145734222785200268485347519414335130882697443231840271369927156810170554595270187948262448604262847876712848731564862976786019518017756759638154705558025053881364331495724776965475645451261438081199745333229895572713624683690988619307852006032925820215711372938433459301042785629374684983544263439104355794165743607964025398476624218871719135487533000012767688044886388656518133973815005854109041016564748579702016524996281156925793916426711055069303284337403626409638480047677795813331051435676379619795969294980181068628643899414926209523959103883664562861734745824311396139258361218550703560507973739705972531535446105676423979117790385609556765041030215570793396068255526557682080771912935102771522930862117067817413729450055493567565141847821559001648159044087059265491844307164836086075281386827429036208050295803181306091496310469429134680267226433769046214591789725234717879335358613262344938704938602072861672926704477412256341638689028825052951901413049722925740945560568157274117236805123209968261264497971650139070558939054551858184825600631802612362417771812064611046988304404106135899157001068035669585223875322770625778549947421361431877936739282610805731213812064055920694081468782437845800903341380061139261776381139385524960214265465898316924938939199981355000648557744724396726826779952720280206212745265788102702459141362603891313897813718423625536621759545269516426508669331662156168842534133613146448666126010072066187449965098942593556345594968507147285549687415944541029616710668892220546392831194023387877846325115876825693034770777011279371991402563312762999287975193792854362439228120544777999259388261109794494066745940703665046163240414577089220314833463057664271915168780880781336026067420105222790264759238541869388969440923279129192019666584822899980832343208141029125778923288601464433800265305005393734418449451612552279505177184501786181532041586129230788623545908074931569188778761204485371198509851207242411640824139431009029838206188712611396074219211871988044349461163427030485427621674574638779539405117341658281402126653126328862651759563945219740805473310024923643843435113791284281819440910255099197764620950824667867703727099027675722410766435072486399285773536694477416984486263384557254799767778322804463208474597879008626333430517852661691210405110072367746410971616638227145578232628819699296251122503710462726742688011387173736474894465116679181938909902726466476610542576946587879961028610276040274937767811210940043500098627756766352119989260374378003875950784797750478892723199637874891190779006641906240978301439251236611468905700687815356291211538342445228656008905700559283169521061815298531281619842127649311745216012796892104636055026674465933384606156008808357556824358609588775171410646546510457720957955771112376113688013831391289560610937904912105135863520855634885915677279801727566390767709384690241588797435577968745768599497477483506615438844747667785960017111427133258474564689675713339353398148853412562322943414572415381860583036564267121146315182018088244345051686951580168627330763600784463454168604457726392473219243887479952576381669085578919750523522351441107222212819099476999895350961090383522034969322258701051757686478328781649120383289440461704631641988855344447142934529192493671269472063182456138511815268113873737616438205976286663406207017145634368576700104365307532497765158777205995447981783276958840726265012158118810902112736269406741708890242831084643548935227410234628754141295655503178482118830078333661529029869961505431467234231645132463245289818386142778134697182734570808201749881189728688830418923972025052461070663009951623186040736760668267125524841724288956376032649823362033727554900615848530994698825859060984964193439054881590919390967250489622586915531696665964809497772850987393299942495513402564707234059536485169856812230750809471951096668887809314939255187746247744757750579534695902800749138938890182951289912043494379300660295071693177495155602113069213942550166130051225091044286996564847682422968701422242331976529099358566129233855264172822012089538575208396575075774045202955336730338348118402925823746296516133255916649987728273071116810830163609536724542752302815853290437401549303704303691090177465548507835789388321763154910796548979044326713568172562620251525254953404288164459545267973179895521773092210116731758789714704118148609107476611020373255565255070088186130888807818312774609282356798829516314380615061740879939561676219635890220507969407072592377077482992411740678562928510596305492442148356136597146722808796722719362436735711592325040445564940464198784318992183842454248207210655277313565828427034884959604687428771022051485544608455742914627620498458205969505913658573578232853434293319127739834962210917757026879085859197797543115709779575166467057749248710488186918980381348972175583099428343235480843568488885524800150152837807730282699752401258895460790799039778878526429670637938746183086169245943340367516092213745491848702817421334160348034948203135736222382624355161677241361442458049511975761056006253874535195447466139249301386877252742046180007665502503967266148839182648059815391959634099502224159013396302852025370197194816996962296533716756041411472573757288013204517572225754719282977855978397277853384383022627293168066619879503384534728066307320145615818107647205544674171987629123596187288962416950224978926634428677022381822746616648556911446800557691387056696166736373044952097036954189865755659042758169314553826413907044075739301682664195894186280711496260583026274174211782740881716881625705114461205756372486445565007523369750772293900705168643288152984721992024859184399399540579875034692100455818018603443243701724924975630563080246108210757717808511938884505678580577576473685684794089440393074467292689855580796337450107347541225616588714837932768528998474868786507311340527930187461022931128548932512044781353668052625950360569265239770030707354202029324443850787809258586458479260532791053945767109756896197390534298389755633441930041542148293007098413090450094048073720873127248813913438771712985603535033584465558831781072225239033042349935679923676122907133379673388684962707103816558475302340817716735542937667161454520752794900386655729221629755792691850627039297680302445981547445510149549561571091056703540922512707675958342091840079335103414627238101758046769034512555326005210288274621381765394140159211312594395091415401463758833718312621718142782696988964556312041615381430445797543812571276065389467773633110254470315762528304525956321323362101845556514298369072009116205991201174781258373603819527852665122487747141932055088196725392808694148494988951079587112014574063884792568532814388221422892278292344019323981723881529159875738103835349823879320789447792051408267704529716521577025588199770643694871760738816900434144390626843470875271328265822136615913601818155810824505746542247541484451829078136411704320847043981257084494387994446040659890380738648295318084808925985468581782079379243030800668589594481464152775200193645790280188710303712428118024619980370357234979902939190917078845968682217434976076687849595602938285634197888414898692188372220161904014062108091867707298893773938734531691112839984525756564753280920895862870170869629593066568077310944310786811323170597683001184458928391250329816239697481454679395975442072967761708028508627519059130681008383598148360630103076723117306163497334529155083146718127352526842325933715813769124729828141768193031752001569318356802606986019407300552506928796866711634593538632927418303534041254152274039398914374138505630512076767196524071823124800253739325026993352081673520986757704109074186664764481168352340850794653355128778810617725340418720169309178885450880028971206466244023081763835591315383791747101393565900633631276907970370048719810127931554556421748422683646698822947436509360164092732735179850595625869946518098850355332615486984767663146437063110732503780818274662003291602180352727158987017450788046837754243385800541613484285734268844010982491556970857573801923911735014970752276686564888578920371376658262899767159444270025924001017333397928108772648587303717437679052577062011868562471197457547724282505856108149478060528152589843736645768833675923864244611885020861723350764490540826288634768224254946652594752823638222235018126966176392878239757547974571468065378624183547421003826816259007140063608415051963545433429698518564672746157553058208497005563034841809343106604641467442421733438957702194343253311480830801620799406365841462383769641831049129742154001746574622527214715068883567953166044156834021074992553602075443944426119521479912865032502813991582910881846663115216154634885822236007773221805857089587103416177452875812743259265126993567323116616813369914919283348964042485001415825933065808199850760876117793333127414364112201415947424500312462712185491653157272367124556384174872432350241969203220800721316762913991744329593991577164444887764814181586618955312933684276104712605026024710954124341606621623385131504764045932858287257206883705378842913725325503402662768425912781900868903674756250472122231311131916874883194561913708296837375736693768067507808574938362439443130748226965002366058589622371378449672739242187842903501574417574628383542197462822360250061148741698575312512987485587246168394904315217436541154256558944786274057279724465081211210664498651122511454711935553785005288506677056348246459879040087513388179609665632572833011664904336004683742490031721783194998393857233717377269289977922866044896789622016948820072720792568353639314229545592663298155232328391288701067260559394440571053347629453421916237921224391726896598334199576245325988474313856784802590259782595850361378225208128220673196763670633320984665544373949061886981795353401084346433149139611463025822454649117621529477745082679243552477881249373200350890345895028632234339585194208174882454246257466879172955177118108544484024492985132429591903843601102660298608167973745770046607267767029619742584906616434225966934416965418703088613391557941869308074609626344712653665169090685150181176937503979246868759052787490240579458537552742428672698424865250807403746128658832572807702449596257263357140549199511634131937036586666497654257658970778682371274323758491614954263992387790772640959149222844650284433647339774381044876246219444060422196534326326901788494800145091219286752766011008246121336599153314437016531560355609826506254938572674897977036338268588606937419275594724089291324565435804289297106594858309154449730226771655645061491833405051802309040703634977792567635413962984197447303275048386068621259966846020929782523198525635617981034913876330648472109169616218593968160103074902718837593647182861625575152698465292303209209790186006341838805732212572804400808828672574480666666170628959600529632686133899564203258589913303380754572844580899730032165548745762440948055660712919811580635677444476635106544905802527348909091597137455016576719792091263507251368189501610619087933882839020560201195629709086308657240822006276233033512133508758611239644071983655775847539352786771510952671408633859370594061530469861533371063400819179715753271846673164627297205481091917102454749066084276341362067999782274890500459400581449571889291841809376549052556588104325189496828297331625828011014581978560886921028868957886173009949387156073275094666517150527315765156828179487819580205017876067867850942866150904929986861087626903380851462150687725907731801717664976253917990928897370189208135748873404836834162774756502706291754337502482418050714502738360718471393135431606221726310151619047882167554659685241168117621872005009633418535800780258238446008482735113744284116469532887738837250528918455308000606195361188196541149789687868026636908584527138168676993097237778230048439946935324094831880382044036176981873754454309530274971688987791189929446854263077615719506715982327113226458611269442220996657687945265785445168148029241491493525517531608514537870666401512982585326748753141543206208819298459018618742777250033483128140721244830072736047693118081839313043099533822394621079933082768647243118670967368173384096969759526276649255491827200915389408537459685647121541721185132890784859778701064483102465665351935084926601279277470252176508885593174076908245612110214482614275709863225899485006017237390409741600430904193731982367611075395976769820673191046899758796326797670673315001465042985486224883658367893014940998372396857952047452599450645071049330724556070368653489516871807039412971883737816217820700484770030506527068647355900350141248031333830045862971486609572070214164725547654147774289088209657825953369077118115113477897687053253681595556959872052773329905036596050867838212915060674617373342456080351806367205831518321902244767764937222452581177544828211705395390484724556857299198564573405549826528020492764676033489379776979820929381236585688128262580300882136234134139608546580122783823059233018811526058208398864698250387134742591664020378343073209861048343912881679916608126716047692750329915359888961590304665253465564805952709498364471137615442182033599014587622396123367461738505542572455877426715755917048996791747785046566678119119918743075747872290519116849196482061271280467293282909413795673403055255050565819171578903331554223045254445931808415878839522788930438429647388649032135700441949202687459706403773953581333151650904245313467533849244274996767850534268866375613017688322357561989356742493740708230586562169520477325928901700109098258723812938038846943839174039848880626259731677423557285649240755130681897777083323671158081871508445628794448173437767355363711892397373333412723074078477137598400570130545186104020473900413600279652864554681438704959181032858574846991266029726808236731931966198819051329961814033056648619555650753320187718026860894869249357610716438091731390345753202688598475331499007501472756417790496058872171557683164551276885400610405871006336460759428714986843880829358834078179228544466835514238283912806711342514420635459726931975761446875751698839937705711530428837303455637303939794338927896893491165908278152771116308750397929515656284355879277259054840261180563963382804057317305635026095481976859174582451078907032576227036497572871035885020565674310196779546635413071596549319272122891070571500327289357864066274477993432216428769915677395756484240817640394144464281812047296109132261651291067366291772640931973894711180241873955873158659522122565304506088987981196630609776421163620956449519406671528253180270610517226090910989135866839833997582105362759946325490262382061115931117447336746355386687718767729446996893707356791386524087912764281315975919341113731803047366811190525786261302833513909713250942709745943862086110007830799497489107965705100948761660972659973676795707007300741812472317602911070358378253091217563742692992729017309124796359653993573038521636376324853796813414754593413780699243834542628067590618704388059313120365289922369332098498635986125267913007980183749505231634209647529281537662621081570695634177525141436369082569637375282818672366292040001807512220500061216259487474057763431375828607948560261543711077533429024400379469167810186284825867962492387877625604884966568282119128614858419885293306557462109866145409730261273754157068638442064703046991025129691189054186375047759382985895047397498440000617275870507730165659806601321675543703649087935788345504963956722711348954546171535394000234223820710751424037820558567220088915452674443884926854964934906804002547236278000337833702031024907290197471026632438767477958786130543151473722207302293886117978343096525843410769319433969165230950733543266601339353698052399337644355774862964467892109091576909963981116716640252001408400606681408443715335629319998054273320089224980732098173220952636759708953256562914956624850966692589153028399551589914132821343459253736297718758005790345854254220143207486489488191836616998727016021045166649866486364539278188997920516167517365085120775471873174519692423464642434545936469958054079718537107060972046520382168998943742578264783357815596305910423846674996223650319405841233303409530827388874679761928734275896332865297722925729683234843981044006290588267408066174785012118439234409152378817822508918696345249487835021096310851891046999356369669607331583745718179224418749367487752933096418959400538227502914927217182327208155429062478743914210156543225805123040425010331776923954319974601147768385686382160591212606510630209565689407580817955320749293338497889378468819542333959795266347768125529676217911223903832914312912639560883907991721967308850765323265192839016094690596985226524687087948811260453302091800481860894575552421375259016047294109933243077895187354896429031926184892981423017927839381876034711091723099418479913344567758823496386591525261646757712832037803018926952278052980649615078112444809606288895380574025075401598448009580350653888832146317411408751529465604773710389695582951192831010262926906371960701102218322518636257252530604579409464502795582057949071700403302123851215170013693837304465424306224157018829708108253518367168161634639311108650464855290951434385761569023903857153612765638335720560535124626164473363186278075648924079666938069492484843842688254647492913022597606994046233220183566347716418967574377809403501829984020500167193928950627616153116725348992450396037539709616706398109330308865531388540695005411198478990465088221372745384903832288721948959019093651973767495927172567528670281509040433094221834137031419892798669221846297626516902728495081998502419573729615067736387870203650259135612535849139932025504299482210462766347204690064933265272906847327905703780009229988694751013232835968203179047671709620243725892728185774396832100414617233538036026002940030677068074884383790340097463379968853489892588778663889535368766112432653373202445670726254450856817635284805476548163525180498689234364051854974723076737959287905468194127665249031933068684874298931964359023938153531909315450835617260397332396918188776081982820193662246506560700356843114954784159547539270453939255480828915159536638525216979032605354209839209366311743759275168256186196057737215883565143001085631875887432490162963358576401439048375355935142736329590318087103173772164144377563669182298305423420170847962473788360453152717517301658840737967328560855782910270593933481728051087467312256260072045963534730282466495513920600962619607735486417493809778771053893516990652551818980106129592457053775507424041903406499710627349502838292960477372080251753213527356396404893811062236868961960299962757297755169551121172443691577052554031276264374868894158769380404454039891506546899827303067559337288212093465883487068046949324604124828925970443250380246304937749073122903162406371254374028228180444919194535583318342311020765880400673416911244351116329285995257091504147607194365545735473146151323465170740498076626962922141222721644681255398063102740349906758369280138656107411595693418131648643057084835485045040906398452930745144243430409615749712344490268842983701166622177068644329326196692630466960732752569317329433507121667660689075970560118598414658776246023472946033628804282768277138995112349329258512345265318324926996004693939807015683676592652286172452663132014532240752124706754627364056474081463234238610050644144248509896393676265515638628589076691065819232691312798843417423703686765576210877004061940632999382837348609880525784018767298245515239313984933888882655072015002087043595797321160843727845286066606406281864877890922710678659108005835399744921417926902348524837462998432614095526020373954609422530843196757685944046701908753047990668217316965908734236168741561051973516016656157338416012126401888912148259425844266759390106268394097594127755814789039749222586349781755302832153623437279436736601756910450071767817792140726117899284631253401570531065446000227273393837726561644265326370768931674796301586780788136590318288729316593534257972403634247863701748327947085265201585521440893311510805938559789104130633244468735642628048657748749554977494119003537462074805421600400394612959350482592163912841997741346377334993976589685591356569030655202471600051200992641372495180394834054763163523088578989090007506192305930338780849236484581390318343326559569737559907788734478588018397777034874471275103804121613528706692244646457465236793922577736200027316771787407118773857145188483827904752500416940273472079487311104585240461328110141004817496467822119366780733431945621986777186557881281586923471041803894843351036655711297325705477297597144187567422231285744326326161666091176309626049105660582358613475352267614897292534870302000266291294956428862333798021723598535771717441449031949334222292252114753303859900472311917634197670694338552602040840168359544015975086165063080997992639790254028631124126580441542864676434157605130780568748057460741597802188441181699813789662917400925278586755332634337068705938136387094068670009498717121447671468073147496029529466046762962204418538088666027186955352554223827798865606037049158980361576955905677588783676823372673252692086940091364993801480601089275584472264567380037908709352294323634989898675590052914874169723162781048931896776608603425635697728674964156392604375356174428264100524816524011650054446038092449297586324546306601409129026340678649187550745974746989696804213725444888880546373334849336383903865749899156796706309542545034802823353248160345113186593500768426438921856337354346486444197318215593561519346134499319961306381583188563514191429091347918013654554260077268056764502639732320718406601332509286515439935972653889413936648333386334978291314049436148523999336308933918212123245017352187047508395162010825833598783874115495217494355978867219383263364400811827010085316415068841568231521530025554166130895702853936204906882922180777177753506430368740947745008176246020236829159347664120735301101394753140411254407523650651450423373218963805562052258397724686564444408476932325739366043128496436364228524433194431000702161771117525757639091738516772579885810477350206671255222317832394979650695039024276567974588826617143033097459241937978059996475676693753256902827016589457541409868242216304300582042410305552101405443757834570213507749751638182685764841761093787550852892962814327927158858263239966546567999766507080417555164514226404595917677947516142650865524916376707400761664330037329107816761477442315146818449521260060276539531207459131610825130508587329411851296426799147010643122214705723566029081412359907946945788239173007708330559007771928380020874481621617952034045721133903783243188267022550549025776164842876606262881872892901997130353909126526958534795677405075987152174445730886662789462307149058437770591234120789114813844697207503030880773876806858932630262479048686680576636403359798224828833170852574700738735604346884643528212644063175567561910433276710700466181854338449608037962717789566086924505775106498974530206737300937070455491451405414735176026407668005739212852403325135972213299853065616258599341240880680975085813963948084155983984643769099230860545712021118531171761103692407484724065502661851319124375446866396869338828335601763692397823594697849952788684366216291843514004396146154641802378476342185457731108915112505897509460228304351144192768040935464239975854882441352097504934127522236325900483235004858706188862343926371218377160297326953929051865372675838974936281886834514561976269674770933040695732448529458093138920999587049426124337126643123127948745329411606033134069220211616431635951230759480989715469387430224136160044867023889622738096366547053264272873057527438466445145755549736655797889215025448564219948581436469293661863281977450409067575480440834452904662706762961817958742059420572779567318480226308356184904473224787406076710577905541485621419487386430074883053589566756191764231096392276921095289760239351769013239841654393577230110093444088865202044664157850324820375674430918951467955832784377256404854931867555359371343201300180262258193216192293069344167249741431734101710119390924449806040822253704818227219855134066607714225168089741798244184596338523540329730700538452595604150116837298644182651013751606589520702064834032538775385436840453191435809727622796987760448591491097432107044412707450480390228398222490085161736040925408768395375127728699535146963428965000738833982321109711078452388645031579765764760181957745268515115086157114298812648769082514294755665523316867962334683613724631007518248541111567954878282403591885464178905141898481858967124618048033544426401064134982052122485871078707359409934254066157959951308806072004353308438003893650635961595193315749672283839312962356260216116827382342185961361254727832038061272764390435707621909959270303454542587161467293738780626937627584353285677727131873533198310544737767973312508034704385602357561375425148602354703546670708227192929103910133620569711408850948856337926526909192931714531572969305888299984840662752276327374587324892323958553526330168089485349035799682899203872425134884337284907834570760550505996097118315548178651980382383359542368870509017700460409398740346361924569441155966644450195085399244852553466962854539523901110093576936948611251697421020769402050998802380941199175211443984576931114789951645376874552537418345718027982218789010182555889021175472961590864550503748520905628679838969250920795609352350528671181916290569485659376938392112778330209978509509540518575085423505963039011675136832564558147424891285257035363757981047684269370603457839692293396480821912914440276455284955225821736835668274780035995243516607866375840437117954936746575169770802224688349669570942746476838228839365703410158886274418996371086067646779022017278606203927995175800396498127971275577770430298819463620962226332401354511691508241730607138463866503788097040934861226443711541698588854586420812176391725245473928530989535559452516536790940897351480251323696947501236278621068048748874861474638094905146257878604322964929789630326393006674058276695994585232368003269029049824210374139132583728237895976882631110978014391227479353933868003390873463360079453375443962912668453802856784001789390934837421532599549781072544270295168663416876270580339687649999412934738737557519934265786441117116421190708984085825487096091779478367096288769186162459729559410030165521694545554962491177249842042381017748717542585766538709911040659713785343056789334880011564194984969087618353696015282181696807169289327303004661865772502291564427243247166911588634349600529717669000912193530140852620241066733068768827985690329872648733928831188870131396872615926450226957514868745901414703577305634505927931298323871739124267623555662342807946307308601043935378956105104035266846363055691588536441018787966558388898524714663064792818117494387624137982300887486337797580170915529451767058076562359665541145152500569984742189473265311669782991189473680474035375938677322364116156896517623500909227919067735797598897884313741207108333701092179764419551275739293743240442946718769397731366966590911217465576276103409843601864701016588257517272534078165637983764850812617283616627986418608879535378121454425799349761778108128200285771911811545775077025356895772417943805558213459848808291330149769359654121520051375802929808028734142384331634320307076646066102887272585657365554891999288725493827642274922746237654804851978428202890854122635188593477173238571486652451034684420962428141974172326748746093703545101308146620265421722273028191634630285065082670645938377629065152133815792738374388770304245202563232012754846284561493003227139038205528844936469156483893629736503884035611009326229338379171384849299008454400554460680098703165281009888125337527569704056475730060044102307358763239181284787887623383039713742724922805071214630657704570188090978016790696846303582850756299462107453582962678969023703847033231884671458971803421055138234919985685826538336312859220712178492272213441055754430457801960768335041466552045464121243264226404316903012655123023761722248722984135124244229596129499251138916303464767234701759989801844798787268214011460424165703988740448614071908935776538356312136419241000332773894270590074057763842059147190994064549642164315830811997496895214270880812880222314160473548051157657134720688949510167603333327223263934717374246408152655114721420366585508199688044190824881993009913194448723528975039780545255394119419997877052669521516234253848750831952582370830171192019316097927230474475337172539392528602529077773896832281490247461564276246387927667587713808573786149040884519642440876565148787486057256922824177940216364125100946860698532596734879502533321880634613492805969305157041995037643826896608626610117861885526968270120205388646940132842475259078887841920938904961361695247020874725121787611434398920974050396088816794869657051730840794342718543575490150172913035661446849844416498259606627677913258092039255931005497608600192609786255983488471637242311383332444682974151702388308582041730603482961791505030997153351851392919847473457173519290904588596211863301440556932561131912944530714010914973443655000378729605295297737593814887741137263275625676222420349036712294857915990842225242654897720614134127467209440153904930969566263751947227581635421967967907895054355466843674036970379014618121816938105077463738257414463615544402887039445402775933336434054925403677864927367953323838829731200237225001251657970298460283437679335072793227409635737700991452137461156241138863581079936016938157660285998510349787381330424859906663978083200597337643274470978998364048034255719262785433509205443087806796241327964711813952156631818798903657285839583868182015337385513844992936997013612940252586352344545736219474540449344258669530003492178386553561496058881405004049981482669977254199270613758350238148929356552824608353667886473313148123530876394399813253876605327851994465909712663123755379279882947238918846033195686623374737482631123814158443344651685386681877682664312215222445151498374090471098228522260082826620112576510348011782404402925146465139233859838575830134196005613114581056461206592574470908213333236713324579485708563059878509116211091180526770906609762750631945724647951267535605731171439933016462176527946078358764947186859006516418791491609467660273981203043361015564222123592293356124233889276249740052314638753943919196070112406009968261801415471341072049978040781665805223901286301524647855234113717828874964231340122925123477107029892732315566806041991638638621692237430560623908266750816650163906842115672656109833804741038969719684402323764868066829501174488167550123067523692044775566431224587841717663146438558603839941467751459649151368667729943456894630501642031830742806711165607175724706415710933011509846543250895271429325163211155943048716904708564550891806704375526197103189076569721256938906650038414179195180669375521022418926018758417636891689246314637174640119825744466824281082524018979488420479261894425516576843873853210046409039032375255358226041154874136677035921225736775446017000700293206667838323693690277893795283569736906153809622180622046485422232360432958924436651621820325884131838380342577308868518352348005575080473985689635816441601767933890343107380821293396786548078998967117476641035580025595271194137631122883904211139116112587493013587958113736979579027106459313300961825364366042758238720877859257727356161439344089149247703479077951380342475355688192087996755296025986711114896936184030625539367149908563243745056080032377587308502685693777556682606500089358908616552702391569760544487230138455387432800455331622825836995765591936142220521772050654174634952468708315425453251894420452565578465873210484124424513802072165474852578439198826981600110517603450727962274055147356638600258155887033385315823074117039099702610973413322938536381250363071441077205875873702236644389277147814060936422158437304346278167077692917251051557969412562438544126449377242680339045440898865499163568415520195704116846503324813613613910811044076963585472235201285179186338516449568279957008090700266881664661016187621623615506813421573726986560843818337739654881878480983670355573182664686554785494169139008694248533311183956351000459515890969577094118591870090342800681029868137255124335298268720014425128014625445051498111025070451679994032759937121757207947522271876182878989282025013362914886789302419264186939627489182106547858221429429681676745301011565930378726059298952946133493645046429505941783680740997153852418930318287222504629651297856599219549077670359780379605082903143929850799664626869611786586772368530840601963021014252867731324229733486336958053978273265609874882383331706193231244399611911890291880272408817476481925133997029739402330008365641822251941764537288848956824071027729353818678807849414667119265605345285177083039532626932782335852091475218410084230222206164498672336016272685422332504402305705931973131132177373520500888968903188979869174848091020578788987929343088412279415110508064920928346125167362772561970873785062441996450036148208489549685000538121099753056371001158081505472752463925559390507783900860437969362903350680468147292356055618535033990615973825213190199685957642035514837205531572192512968861720370597988053955471190859716959053426073679128212976402485467884926797562462672697636954243570304023204711995660591913111872558255324473435594744250947023998853174324969178762711048729052242038288733397813423820931121936268731509389362729098584245688496593797577460351015977101743097113767538615035674342708378605907360078063466382586549880357595212653374171314151877825078493511987330954925229892484520278535103510133459829386300905224677630557808580237462742055449491280533754162592683919668715947907439649347305951777044855815128413265010529657976129079060528176505019982941409361350073233406659196339715340140221743197833755785616245063821413984882081909207352393997824532014024697635327766811324121609287469629375984750825467790650110704765993491812115162606714288978383510398204187193366411368756535057250629454458525691396916868088874723677969387045112291702471896994793527799479086406942268059409336890291113056374092490292272572020938155503081885425985533489322167655442766778963733014437262015313817467532349207665067215866652564310843310015432795290705957354443133547646076784353625393790296944044919189036575794445205503749552465930917151416558975164494015871079869123802119184766348752566556666921094513990908216048726036729802169829151093204929119855603441907811468666979262037991629536532896910067281735335874902922345258372074738836643097559728618250754362126854552111945061278190169657142536141560919089398543923230223581784990187470654882715963089831410013508829281628685464364331195395687393178721722427170008971401549564882582909168092406355914331180212896947411467332038742579028795976055339871479960336253845413567863775836632994089813722555703253897520383041587121908562290633027973604429406108169722990666406882078461980542753461315335295892118638386827126170530443995221347839512873248349826070199362398288606427976660447064240414110216735692474283692630108030361280493122729252820637993832999839617470602437529886465437388744281529945808676799214959566955153319620391888764151301159740264655851070019040853186584109015925707686473371108020966964642310462820534404237749158299218202785907195387102341870422048840741468462516545852251544910414314193149343510379281262943625510764630342116923680344057290718210257981365833061688868958260182552567925641371689682974710652429101956810782195455109491751478829296055949738824356146696914219965709112828814451788340359902811090992389721258609341393061972329158351330472781809790056423168002007496062250060227257655387637139375666449959930270612772998499499984175874437967550774495189149211126964978844862054718915304575985778759345584228116509622734568480953873622464322851910278412654359424291434554251866694300409609589173961801938728202482867212198030336743168950744879627881956706902566134269752651600473064930175267622979861320534184714156057704887029030480025969709972664266547050054715722393831176008298740577355903891533480816857017689553655092430152753073086846984526323353272257477675332498317267986013601780748093378911852948963951275249619630343556729105424822599936090794311656067611222342269117734638664215983235755154856487489972333568672985368232641000810965861537869642582056425543501775628234407781477062235102451424689503934854022807982485976626123305334859662847500927054208474027490520232870823108145311793312088060425152036290786214295608919055897865883522602857879302493574958054084204576871477914457732499649575159414350967612513332516965687475608924166282850652328948115708528522822655937215213851854403593322483605717874061569983584598144423971731845938277273209826636955761568599168822902227253338762003449414336977296836651941559409273651712805171301657049716428162741528071049464602763234574802012092235523825639525283088093439759591757341826422509172373357639139368162119573267507297052762992859362346875797493757811564407984668105902253678426191459289914978271376121348183744177200974582589826713653220692089882944922916193278244486177190179216526145026043114467654378813294272099964191521518868972250648927272135284183414832953251693342296685741848195250968240028347164969384849890708982007712663678784836807158390377813254841293779819969910147555029991730968130897716973792228247230054707206823861052585241037170684528385575877401698237845623245220776437589704856311255560107261024605707557101379564952307093790973784858214282253498388820443915315294562978674127026886636853137708017477180149519355269697868881743844797476948408550331198090766624415445527060402112237232992613746058862112701294540810356960610740076415553048533724143486678088891816151696705573004541299298143376830911273304155279140352717250449594084395651741599915867695115765603611427807396371907400285245940523168933523879988203427355465004773218641588269394824969175687188387879303089018373300775032184429852710788109198403646719715961337862650350061579491833515150078753717504778773003896031295667695148999867440970386883339416636596431639805952338260527227668416684104609102744158706806762574517634767021531521309384841398972404728925336691184423720996311163016185527819350599470488370206162725992405555136705421783444515876411628864009714142775771771149474634510770336524116923533376881490183930825442098967838274923024546360711126808652165144035359749033292405591455813852579470684608730862777329960463222404123267620167787690651602098496287612049361905910985367818225716411625506298898992908241644185130182042744553325491119605950552568714075555477182230503362809164787612384145185374841985111564535428717647727463222098761172590959783058221419954309538774245314540536577572338290522858150175889537854157565965301812852285376266729595574269491524763277289265494816175629466717206951404005059638493188521494433210653281985354707267528260711020103655564148905569153224052389114811085078899442018331696353704033893093890914443895148000992336716961820539082219477243996325324379349238809306529858787237113118503595650935940281503138934372426132566650937394130741316744336836605658558343948845786672007081398993539807425278912621287423842803708225326784362832697966568329553334434119348011191890162840597029917239359257894447197184063919496951878866761572283070838192411855374281016189380862532901116644611413193402496018774175468533871639549787828032572424687235396215904770315019963027577870694873372725056132926657230322508104075939528860138447011241183033607284310538471523196414192853468907220995325992994934759158210365522918686588077216975968437433049763355886192226033192027563191290649953603179682857046232448252960712304821790314519493746974608730810185776620546628680383898332599655944428970672377934544836689305100393519968722421949966413613119000993570824017055139393021064375697789552434035731504792628034126826962176716776834674682132305708598427794559943792989820252396108814167118830297101672845467319212440156737103678094420713572354557881228340751193525696533502277303345370365562291934394373353916020133227078794223929009015686568223082795500490309162079676168940706816653173133692931800882617284103587894000358944676099225359553930790235312770879427035757121491033372598042769031099923186692676945519536620808250660075207110860545943340481133386040199788397427906018349630819828570350105480096106991253647281797267647294559088420849987027887215563103927170759813014920618158974115223506772150218074298462832497938046135772814496890558066363354493527037153847965826392578424605943304651045963810942335220460512932624820070274324493259175367157113523131624947881516590223972156896918901652038379512251051204842793502735112062112146572386781016216613496346899432676562882713141475452576284440827719196118184849231082928466264710047426242295758334855677291058858412287925148191549844556901331017353670680787165995673465447186992311402904428963005713379606767600963362968002305690053277544653741056887356424111690566953097148761938892283241536562585422943541608525042695803930722720686587263500682987328872132132357030006478199649249165726039748324072105516193943070545392202567348870428017805017640472204318239097128764396548541674862199501802734942808475345334368978763017256184048564249206265227884289146615841526654520669513473924737549155836734081272676578156639543475971553505006201308423423381996044030168932315757678573545995504635384683072764903226141297937554557868019895185275450619180275630458121079643163733619463073120956722247421771826308958721469180676284423833666491461223953138285299857220913841552417632258131079372446441516404921424853410696098782072467334518577399650599035767411589331247014194448342049582918841861366983520795224099045831484962298599286343050711809305173958544032033137656561513322762860495547848468207516419717039726401000117418882953802195164072324951000822945823767611033780523972080182135819475936309792208010530366809500856541506694085789791615950760085578580240068949000935307834674598042524753562955954431731116705741046785212484175113374848358776962718847881145827747307604311748872639214999522845317080716291335336439051199271139998246656236698654064500693571440350111851138791836435261882462192602840429831265156754938868639290337147199348881121141025170847571984386539563772773235517909177612482217884117127323924988285522554815307283139357737706033127377502099170748228946501000092487043651845026161544531933178639037879451095090989667805373444320201548281529183818666865656309870479725454290700577211954847199033469894632667603438248411098830806048212627492079420811128485447355989435905750225811257317815332608686199475460911267780961875632775389926468257384358833506711720269587324650967850041410527423181084032334186401061901246371231411145072917326003066521649216091028027632936297146687778418397890368255437484284685201756837674172589259335641518458305276266899253604152976340980173202697956540259502012528674612997062895575982918972329991446521828552464887369197378797338041323230182343124695484352944386027756133979360045100515744661990365337608233669166699106567713607103442034527996997835952732218264484423571564934520324660661836495064428728760861587094943344873226212038500522493827948637363226585592083265742594326463766596110277601257499394518293143375305384230328311166273183086640588306537655029494048895204166660393644033265702835310561937183915947404586909255546106147302327859670047318170317555109922808368193730701578594407312509671328587677471605495356743608895746101752398680511931618083609555144571938117725211766825382828640403362134923534770124311134130278432864319362610644237616336091011253681580220604955351148916743069118123507877670052984666607335228423823388337828398295136059428719727992289812985236222534537632389344029468619666745413223641220739504527483242560882065961658388446203987996419630652898669599280771999810205906392708716622558384946785632236830930259980473094249548932074237892636260114535532865954611379426029621381829375514392966675324121762238042648237592112832337199061284609499960601558106830649265276700995188165611291056705799431763963248988234455320944619934737011292001434003872000363266905104199209957326043171408921615043352536836615484415744135098359414182497668688613864379437722381787178383253027811537305184312410783428187523890569846061160664268911599778019253724305411317039469021779040838406634104087855639640492480586185166872666960131060052224603688491484750302245280394324112177868891041733514479637743363915869369473778742562394987554742682131188106533090259558506552718783572310228780202765912348562430197518604792052502549132287092872012833281631876054311074697829288842864731386062212461139345613950721653669729865997768038545291832579665298708736166069106416266855374810493659491188971135438829047868991434324911686287716076358779908725076652265710103453378803220454925379224404019276020624456360311006603339492538231615741285235070641784025652872813211894749431631217634046703606296444440227482570648288605164469673492257599256304870088648787652313404318555714599629856311291742192425392124501349314870105149734404977367137588219563519288629482741302998766849959387077827749750785509153635816484270092105282881927244793708501354273749345567737434847995528373251362150088553818978074606555015455821024175595207920236533770625676178013840658971968761646303924601684309292308929906220114036350008303814566960907458844554582236480358945347749417294441339761339928288259195158591701073350137902121657641081609613939467492641125455826541446378996373182351914923888962175669227957295337411654174931016091807623317490182429557395415934758078673282417916761297525862745655697747582577813154950041452450834838373986239105593135953508674408144242308120130588852538315928072107042020574721549919815866027757278676006227922577883073273042006236232367238849338824893011748258939145116217535359756552686618427259603254678235499980524069734695792092118311084131616919258292886526214685954214860961113291540664766039667713054803442768979645886044655474611532335675244227607556771742198054818490842479532442448083182223446802216431976746006509579567423378094108070817454196344312545647009192414900523966224215126804454317649922854620736858685027555405644542883009288754917713768480544940379013372290685282219023560480272317538685622773874629214176031341898824265225138059997461697859393820996000478482131847293410588456732969587048903453331801267452218782304246030318159910606483369917153005215179089076687638050493571117417910430828485848124974588713239309291335778659226829272712315686087120515823477884550825670619994581859088793850838726290509172810769571569691646711583852618384053989352439298015238153938335463727402346980201855146796062937743764275788792974468339070135998817777886063580273491713424034553228127520723934551438646842835599696672831719076863069333036598043664998953588015227165492555509267050992803397452815042292878906163769624304717241023000346168912408392298448062749872349247110130274441678151198569275469253962303544829715592541654676152455809992815721416388224267822682572567681994207471252024689260229873654158120388697225464445562809103439190200027564455634942143684381858187889479966759340676218536449505091499879442189791310367114360963302886833692412998020101060097114554984084462956292444279300842094357996330618279710464547623553782303109610822107794530010804124207342099206689538246643790868630661276425301227150186153992233806600496978268222231336363585855593089882286313728837087309796293995182398425054524367713197050101817278145285357356232178690003429868033988521582071346990198138426269286443617558872419523994774537508382590256040310680832749975573648114930040381423701391430527864554207262040334800422075039082760906564777147995520965554315261582775115110121782320425641452382374373265448590763711794692229195924553815164580228384213830666374494060685427418395818447705293114220150740367894104023787127629428357387893293298163666255438841238959896993283022360303814296255637297144511674092285735447913607562519669675037345559350126913517950400871711777546638242881157896607469818230930434287116707434513204355750117256594246124866550095128277467549674943983056540473349878165778031963968731523063492372043596696356912817340331123776734295777790937637649584227684334122985433884026642865006716025285850552856595128094544373462569743589630964182937106561593839649927462255263825325143353120519698172956411245392345934680783124123652824314860187527970653892199679429960190871151122765926205093880771484308232628200368931289797607245058621699858286909750803282585735045295899235226979264517021745541969029435373886900922830502592799097692669438881297252836655129888447232897911783304822051170661839649086572437341817528143281604179208039703468905199142729340766317035195009031217229833660526048835494194368879955126035816819965115301726547474029751738614152420575235396851723080442665327292336125407927207886598585178245189293342963920396227869137825515000705242011325432127564299833544757811342224911611141172980776049848256424262594528606131129842473982017479225338151767416610002564090268022737236708655865400146438801611384591404775410241887696234365635140633071256557576898843832072520175081309446000465967375854223496130736927886604810459411478947070254073467720296416119463516952772069902137833233708268919754035358023053724631191211277887690093246486104137949796448285940884673668913302165770199321815677836616867179230384101222027258346004716543543489626470354293445152546534190989934228606257220136241448662302294283090076567758446368855969553025757722487820024640722651479343215287547527933055577627220251284944343031082344454308537410532949343310995138315455563748992723960085156543062404876941430411190291341577272608410141137195434355116951159168937880351472210538151847660523694219728937626123717124079912099505732313436857260030579666779988577136257946743317054830235561358771025532850717242049132748107614518209381533758846726799705703721873916609996072902861954464532107555100747858685030208690993134001522137949505568743321313229744509437893490973718535235290413349258801488356117137167025600460009164347963473790589360313319240016518237994041555068199045464021539598554692661541773469749759598271734219336580465269914118313564990082461808339981164253734658023067283395419699796123107488307268203158331711124421665869073041208311834647311934443163827024849440474675556523766673356020171948057137619584049512181367753802859667315394239153502279879111063885100612989141385121839720571438252467397973493310755457721430786840286716578082034032854573160478394232938454797532202341819383509776170828738788190899174112707693313013321754957632389015929380724338018393279206412399949091925581841513933204058283251234189158392924865230702179154163813445814953332257621222100044971498567313699108438530350360335784142678858243020601956147848548001783205010129248792340821387603584953148440063319479430261628618558168575247211979185993073376238182109534925439993261424604643913732400462111137842787512819301585713626813228239356372041703556945479405830285563657788912240241141559869531766405167998488632285161784274963174392020861952265836500096686603765390635697394211004599590419067904408731432053728871884090101357321893070829793357225577054269924468531300561036432556731946938024552380578109879228953571261937447336823725779935447517638921073894280356509900425580407194511373405284228292527084141515031957231047300577091767927614938061215517408379364115462970335227971452872924579597379070927977122515535392123441759975458460437949140645098387371386356670204858728507586918713897038158947163127670904431106061351518437027589459675739986641906841390273292206258264922963927272763081237516403694050912762656999246926345235575298698696067907665203219821344645643020702589446078936356302988353725628597182524224328053132539869458181586753757009744325887211695757055763728783688945260765615306105178459443242272183220403763330681893493389276935678452796763611448536286231177400665954698745409572554922599665260169834243011150684848985934106281411648774743677849829862937834400594561680345352423712324203533641635120422675158500573151775648747087224162812083671748347500564664606115669097759666563592487176350515240957764173845359598226743274202679822359531137498958922517176251090796277796703813349424408788184381084863081475558157458306013474904970172544827546950279869601244726965013824853106104549977441280876932073775464086255478041406306896790181477450774566289670810008766696093152272210772200836262107772801218257147992725968851616341372239967741702731451644093671269642747784530028479414903616601865088542001709016336065619621982927271059704403068832120052659984862535881293951806686428423351208844876810775618987567273700620673887832440236227985743893604823725883460879307045281200110054183774137953801135870367032061724385207519177602350733825089624776770551217297535329779364731142523856203287867287809819099768040149683339590629834582811595953527692856012581910934540624056629057820522322820772047831983880448421017976450061937810218460689010393593709213444091693508735363869621020133530143144945167222882074022843465374221145195524968372332282481844050330462933478189635954318954610679821988690795528080448993477635978758159468895080767431651677444808092429452458055534041642479067475893453602176110551400574129658976195678332533831993173437131522430029180001261674338542413013144676057516220981678668355334919944027409552735171996847375010687726190455888278389633560652658673594466334072728958781162246418247919808233564955464797662200474869133506353150770329173052550156403796491590430662314702196851820728788358230671771704592002181384462215935240872229007162330743369473316888703400216233112818718104628537803853905656327532888620471852197649813775867689057014807954584223640630921283648727699370433471979745059595699597723012629282831682067564038312962889430165440747335751857495528004482292076820454979172812305393595585333256667498288501128472343054204145368856534220515597790040654907823563110269543606308451690415987411307965723941802492851125273319468106134157565115937678476805146583165216925929578728750824094034091825770363666323950753494494512674777561897002529458643486123393109836863230239217181746946289997254505917048438381437652720938745056484162168297343459561079999286549874320888231396981292874012514898081232285299521302423804396645232313765435284638560931980463375544227735117541655281400003733933022512310888850203177088959095311440780521055372848162487347593751214886546079085946005107876198927089498397835625411289893693467348138309251611966315931811077144851735693963583074493766188498881699771257395710013574814106812012237572708350953236483759485229234997831527047928730787310777661694120892577692802318872369414875189109552849634249107901633246134837479922716576728547888169746999066470185632258190283837345461085409561265222582217319582276750666582652844776878196585640125426065806816718046401573561737197736653177341568880081749140184507838612240663177136465043845231793504208191439453871785897928065048347752222791251820615272775674479219995299602002247468313239644898019920984899216511220855169965084273268682631726023583005687931006156521303405196803294863135797641447915817798028383416859140143276249883332702849915223952353181674304606121513933807037542476032908741821677952780670950192066079756072784260376560045720574170679778866161108551233197905814884231466865427815294505554595564790944429510040045101479824231253150140432145511565212544341958014134450149057058428111328881386799380933636701295399776999262060971653308556569596054124453189367928469126737986009943046844271191931283043966969977948152004176745802803268369054112120850609921138252206416443321837379837932994857043677942228894578521796255623183318196366139474508116525740907012942098110134579702378557469165852064686154045017193976283994504308032658843337703772306097120008044237805274126184237950219955432547189179868442468222964699907387545678390131356998849825278574110710155976692636912398856065457829108442152570087931180035114516500972737742464125437371596674844931541698305625636136315307014361133048860479361039418616347957997406351720559040165322014692010916539380154292393230409908581268671254526487225966290581929710205707294707756856473862726511458691718903922331821313647502549824645188518513573513346944885689783743609117605033665642874514063977728254568533381192734041628796717806146598926243962164903317155554787493238145316984395969558631916820160286229374774197823180462190311528355838251502857627746961804126192202813641898130097609335304036382919050198008490359573695825455048189907856980480800137078760787007950661164981426422535149758422947077021069066494943658394303817923202202966928339210887933885951823824074850264868575935880022016870035703219091306696464668896903150245320692027828640383277211068820763138862319827952255901508160542312038090426989419444309143913752569045016039478223734457147289525244579143881360572451607248733985438133396858723215643116682279528850724225218025188272353934779005959343265236880078985756665811120490850138440968731768562107233019536191081885238239405290137719077069692635703312608658414615573363525494358215640440503019876721544777523565139352349822432870133342272156563778195991276667077705428979079598036760240287740348419133317773893527196415071821742552668570853139645124665468926736479243757994151704534459284070851324969145445713902881136030282436566015807612998221937890514033790371976705919627280511803124310801000104757911422380903473087103688249092281235467987343940728110010484513892436414492862447397165801168650318138780569623105386831060854992757022564795494000719562283598920719069649502975230233504955219429145417818916990704105118332119805375370757228642661690382431399784405154142401166684143870840487239442142953853902343838159555292202046469546360066667498208916872370127748850109767610156343047263719567126124535139943497349735171025260124648191743692832806020766057235268919302185502494689618766117734498776119097722750605244064970588567380065897621831101393045686509360503476904089440997108225894180788868736954698963965137874849031259433980041317762242621071163903275874519690828059327531935774927436994160226108887694571663850302133420859708466368080525693784319605033348800281049614729898774106867832999053663617543556774642482185442694366060774660046958386377353792555419463862823023669629874474899922344147009913507602901983028067710724293952238134497810782204968681355063168274681600970293488222384898777177718123198858883374742046317788423883276467331442557496191293161443988050650104191144855388549013446398994409586587883836868671308570711506648783157815516039763529360583738958138374994828864035813679905157811427242490070213479463141085673589480731416679781416710544677474250145361136994405666151313581641412173232126604518234721865020005786724942955001146338480388720544888464352356128001870071162926329265001227336861346912136688855214368160101798708405037585685841846214213463788169836643796803071393124921424181998783732353792653150841678035361830333933200694068135897355015106245030522925386009108879820074543710820181572268240212917077823669335115123640930037420507009932650331074569741320588608259208953162852985381855561589926496819692564787479116919209075029138229146187511617395857613963872080911294385676530662043074816709640596471799792811189139753017437809574753624301148140427519296513040940409637001496321112355032033535540982654097528174808647722441354977918882002159733364493034925509713139820428228584359448038569033266300632801583341447514544488578065722426458570873577124317649382544793132246628111431411298002843527042110672460720184319642904816228914302081034659579260899429605373235835280026276535601894443617293249955926100655525582438719892736977938630558549920926495758147076503813184164540376770506629343073823940276651431715889548511206323848097866116502458216006265614009980830405584286364715422545196274315647695536792590124130377791650626092293063628516810306344914101068755954794310838461052407322711266669720953616922432111178298153240778517745201428162698524089866614862138548101657054148081201204672398030999324969514232680683234541456178021494353797653613540103837652226606221826072289448372888964448573064396474627726965328299073970082055873704926896458222739128698420790326059562914782689099535178878948523364370732217576354324571720102230962187670841143489893277268579296518610038757116374328069096799966668850101179307043797602000388369018369040542364829832194834734071438370604321231551090083609333546788233317551189640260039148588485104676760991001663322938147126475253429290165444999031627522065046306737640543520815513265056375316041165592273987817518718392373327818866209029607524662371024094373124992852414548669437103022118277353945558402780756988858870817485685433205419203501824894813956676218551734668136518089561172899345293251083520130381126348163348922330715486610078854956918705684057839822263066665798627739171135182572315257759083516174854971530491671022578269800638319657885208159560896699740438696432106901612089814092308808663177376624009181319993481992911613127104431589735693973875176045627340695309402008968215680011355893075896996409419217928864591875507456233128396584569284512872539897336201349395443651169817132713634324578251974816774178191739952769497815122369882740738824617322609013325099933657790704051397643064435617527299186764888706873019042726917248781374149355689643944579785694222024045076984295336226376486051797833082500587895644702208279206194928784010329708415022623510174450275101202949500153728094249370765794118095769814840642229000786486363588870687916538176395463309263845654799299204623332695792746273698776507680302331041488314800331912653429013365533802272782672641481970999911669270701426569913017541143970976327855903094925167681258937291317439449564061297083705377600857871359778976623080504114600546730252389517429747979225571370941527055564171963166593942396144825820234019648959062190652615043152331492518076025558549054226608275136672097430296602022927593926318412783328882630414043499446080070932828846057574016328460952035738395841205935510999602275708163916764947698909244700256254618123057682072638404017286702876163308080532527186834846137867629684429168079180017480802272442857905023146107006866861092293137766538013112688916741551021861872065354905801243313637924310072660172945477168461499598336834633928374999588254192505837879968802750502100737995985985699087090245537798954469005865454171830331231409781544723986392973546408151160424239577028187361466431923816910327815224119748590391670929724071912323689540757004832319223580988510155210530563134064577208611507985993953727578700184187691934614606808642662635620765449236263687004333801422168740804967521970612629144897930129356720157153832058819385593934416427049212297640399386017006723147321906704207493220194470020950143733102601015208338399979384299978112372585147669757720116822715335780128098174598305575835722556990774311112705329897300455240472309402451392523439916773323150773411098546353364380519881472524125911625318293648663942132449466066918018672287742510666200170401554811678675208727941383942869604899811019603116982901000278611273746283048407287351478566851095637492948668841552597449344552780168278706512851432242816889140490611425678362386693478733561306222542417378610191691925123636144408972029828185551378932729891056774853834472963503432306184166848147016669706569542043416312291246963643820472901608834604738827753399126410085441070439201707670539153268635680335867348390357507282634083756761250478307129994507745599524967099202544201354412915741779369232648605079664889276726042596072810055790963779036617140752400949958187117881426941598560762604407054919933026343342555954138266508850963850908922045160612702964885465701376028823239819346509859990993677859686025113089368752256352007658066088130302812069105329833686879498489367842329431724210129074968306645183499782436825007267768809211010080401733919015075150831265133431592141087534203837028034814810474784056542083871499518819439470494378088470545298855290151269053893457487313796789363812909057479918812582283313661992380709524091322630712493110117841836495125099868045811268879736491742716288340609309997000537419519876973564066100545458797617238009252575249137975658338902399797733335131136982844090709921985719949501772827195947058733028587374983262669235350772887419741048203104109456445278243832609181840625571155861996426353003260284623043048641069949940991323267915301354150311197534170159286867628761124460688695814591306316568969691972593871760462718078559449749628980131462274591560156850986805355596456587876325485709311981011054909392124348292860331075438645279510695415911775416680532662696211019537464893064789698376907593521737071954061887856965960622841282196305036305618002519255864788265515937524308582150305693030175508593482722655842510614577306290992804506274998766245371667447339569631133769983446258818724023996921351833010121191036629877864221630532079336189517855523372122825964678454865520840739630994402098310677863501455183948834569980552734448107269331578032964807649094931732988042276751499717525814273258082244141771815474642520283161667169041989166172860529642523096478330928719682159202065977067117497406503730641867594846623282193150671036055399647374273055165107077289327366244575339645343372092100289685909663853195416598503799700007031082014075193124034641818451007356479709313592297037049271857437286315789376276580423916417381664444637850178656136770169830148727679417828669317008339802356858942058476126856151355143199385206871995373045316499532840587075888833304629133592718263749938296202434267138584065970865770591920528259485627044006148448067595154017256111295372724034584624103249218599915363116329289936756856446838965863839521069386857552437274108509309519799036793153740742162432507174960745613573194271254481721159753559678501504462103342746373296871421055105744325173764944039557863618904348382937893776205993478177935252297721422135083463377011051065544058480387204676661750970164571110796356219298185205397311676348457015605900153518293879062085393883900060637905244977216818043410522996391618352859876317794078848402848799755544333846871819404737970390211558142773826883957805438982447463221539950646231248783990889869102804421026559838629435117572143446015942449645670618965596128485818028816113134002560067099293037675996767092251933836748382475032458869632601956799337537055846627077245088193187386267467803328497269084590114444911162213140983981483463179981931278030878353403673790087185427528224091389921470856422956766138753016809129440344990550773498810620053607153462508091561772552441654271258780398683517505743614460510457092598330317535363051837294226718403125327636430121512816115143630987603120660157108292552181524285649721283709045661361510514857876620056417572077306341284203754592832924146953554200376490295465367462816804492826841969111905478292036150936357188289799454014381855210722924651859495186189721890954954332013859408118849399104090347633188172972204397590420885649336445195672033961109032578631900992657473965731021690169828093775229354636012438844549201827822547986958343618821287771761281605791223153593831893160863516074945645979478181157598670742799849706601395864491915349151506989473848975042748070547558193868840206658339346517937733738429826368930675613387644871298876719360464973857960935591433474520146467995013736436810491140700723827091640229981812282174378516455562077108220126061949936545202808890078238916780373162009606338101875201095018115003739285448398707617450483148726744138815986234446532523259450775474705836971900972280547822798237381009719229083036316859932665189593013406051339066629408475805162484883553264762879488121371944236488164373151211547218263453106680391308495756249293668818747526688677219350664545058753492437783848797217104164037741170800849857858961640094088370809382179189679936525889460651667459719483283857133862936290523236955097809743358871825324289593973653583954811298300075005106683908413668945161835129639528040075644199021315219840078736834552559134384099525980541603123332250034952695578187596806902257685751224478545654390339028969106840137356500468734295000232668442300598911190471976045898789395197669338086536613850979260702189342651434558966372217491104601996638228554669178961627680641559425980274877617411874786607963371819891934703121789340734770098805834067694939343844085975155585372697383266720147717882249249726847927889053105445367213704044872310125113998498846161331472289054296426224660486123047496042598493491104767699920492876743805303182003146859484200107294914261133302143959070990455155483109567461929414855296515286202302945522349190103900634752349545807919480534438861749413597815771807998014156049800287259031089673598640112229875453892471429558051970101630616071342510829792849808354465805462650152426804720467819885840189419652759676881832526818239144101904666696960657702114725219452628386476258695324179682595730534033050399137602922492182510420006786737648689166500627585910006159178128740794723887575792925700843207779170633023562331377605389979384410133145794292767840042755145290942533059665731060958873221866687762825676292383987161419750891518648456470575620654438525047474624471837372073828779450475040444723453843209000036454856035038210978817958235220814906475002206253359168790822427236727627226854789320783804300736770554646386227171441909879731319637978648179975862386293226788573186448106044176828708630940126149205168640224167405712125101538476139201145862168601946956689064768525499824656289732301119866788368904916493977113131353103005277407726476725554673827868034621656506738364597225602588847255937609993897715320085972326282206896107625720174421477788687607076514280080963177950917143533699071054206334457600628468115111010974516552105118543138429784381992401285169138021461295358376484991311805859000563143927321612002340171317105211217361054664826234657444476383171462435465391478651848910080268629674721144755637039684421104309473005116497913368846250487132551550493129170502993803863654103069334801879840371985384232061820711841898064779000243691608715649674103024115468691945568501455578276218131863220181699182442505119776154883094825292580733658775374698154986092194080435293720113528391180368454538750995200440429180525963825362373566717788445126195123325521859995895098299474223897730230097282319138629335881749787256108230067972203127910584255545598567282241823327429452574192342036495776943703068160497339993095796238471535038144600066156338550066838825781524631996726437760689811181313511121510585455620549276808329145846507171165505717701432845179072700383193727719088284206549685139710891269001173806767140094015571389562966126635111003780333423524885244718981324455156814325318615672303079902314591226137522804692831047803597337705271509582782388664070532636999202145906335320622257848776270012325473725680459347272229795656572024396550709277214885384690967861849291899132004027513084375764520448303064954215636608959954838982574829454151265181857364141504126833574989448051115888857965094401093417347389215015398366642753970665320416398731417513084375363719390981902158086221619980763183275539637152951101118385617552353378076357292862598433879546324796773366114530158216640375073022055841182732973704389338798139950881780497698172926076972437451187182873212393739460712665205139015834697843943846939006147857233129138713492190005415592300207354074150014984214894983041798748206362521081770510581234150074786227157463338636587464681847692894040233615077436020102029489276216122128935761797948584814748328653818911337578951250199813830614770970699875547016752895493250050365044463397986839494353220297424570578958440610848996007791943193055434821938859731904649319432386405555895190805049065583401986715319485119636178898831956094390881253665689795055695903232086531567827851856324241598119604241909315803443079678042151900332129979463130600886807773077496475663210219745086566870467108328611163379874866858877407601394032912647502033998527017538187422998692489981904809589706831518770721184974063314334000511782708656759672526066023078422992169631732004377647637695398580742874084919103907479256814004096515092813623308871341861729583114269751468492491693770320218467742780017478085006796775843043138312351569836963658676940725281577380412490952968402831602613854248519542353978380493304120037287425809378958344897538210776720962583057283221084772778375334454793608983748571887655262734641198616835766217575338106565625711438258147638297090414398216280976873024638215556753548443691175277772018774222548249839880039433767791294952124290486620624903464937496043308587042776987754088083239473605291924767732935346271936973180545818078199529154986224291353574091359258733805826122071232960534636860382928826489371778149915399347801850800473796635834167173002535785212256607236408157155952902875713856770576583037342886231904539295526179690043490178484855274404328151754323518064925116384738903495283655283839890547834223421124207415557894915269926958052577533358123283714049624859524934567410218380205901796595679860276485858394818185166733278091800128930621489550032979911399481288483867968199885805296594798484771718760812471152195479555780207782257064349564924132482780359310632578669721252331284115455420102373777427477084819008960773779582087332138803614791092218598974513175143208638138230999378245936740311323371995110379841309907817931353595887341465272419176185097561037374413552981097152902516231460040297389218964426568782284929216963197990391094787370487318078358048533425127479482588955178602611069209322103669858536588003216204366700616832904150325376229112724072759633853390995341356634517849086187337878958298985051857633453461973927641986491743726166184860536746851495666783397233921770591906840979663996396959269013863364154506500435893464615188701055204749557406929375394286191739981722547302269709238925483137063819369600963503823774446369095209242380208862456430647552813339202513046836304060459661302344288637687966022328838183489763853389913274739677452919980996422891305658226728101818502574091571153857466581682162324787114953394614902506703461708004255069651398351534597811262947630315739799958909533508776046153250275539910395324687897863165054010480180668199133782598264300725659558458197897858246609963845498554029789405857153717926009174432607593017827239737373760352594057314568284246126080633339441731810697564284477838413825043608873659352410518263080135325018787780092240151960273948551678840451378092188353093712766535223481386989746288229232860738608260741682319736856166618985778635663010147761240829583841277720102134813147576225309082828074824767977668346441588747148410186145905013553999948839621038125459652856530212681499503402555504007005905023553312868216493997706124772123317572128481320263914092353914181870315723149203319645461865760925550482522779065001310486415570149631868112272765064159233361693089642059018416888079381731647366610766125951776899747503281105586035818672470504099457176785023788561815556567622140173899184859689272509992880931689378349728130772567429323920134660217224974781929170276171140605126533687953531491016748506089701444775598646234143752177402973163326680747359550528909257544807462435647344387321724086735196671164647960041239817747147780854708583009300605247172511189540047233944837931254665112736068805624239044522905897107477047392436173956622650543492017810712683878203830887339684139915367930610540792592335467685155241295712525160832060246299955983641836170908058269770741667367420895326278399536039211844797738234076696083628163282756732249237584613139937996453356473521935651866202384354945027308207142868394447558824486691072019607703670157323733408096016832504037571679404321937664553470440989901985341343085438563047662917428813382174111920111313915386777442064413220063030623184558566812610214932103447757605989372852388388294256401038783220689719132022857808884153958980841006036809729963607534402326639109924325335946373409035857895496102889250834461094008370443905205715942677197263881789522820159653011351490825371695318204634124846110039895564081007229125343316448609620182685285558636862545924025164124285301582416098809625472951687684091766896918543315274932921188626738228502774106425505288681554599144642031475832722718573165114577126122741402500669816307137073609743359969194072907006573688720340413787372261758662813067633115524411957168533035019471751358689322392395182059572375302848095368704590421059209504916961794429047359245877085781520187939719067985710888281243772945238185788469087861052982069494347611354302842432997748044326730473100446544183366056269787383333462187730037521595299723331976523786801894298636591881931971166610489777619395045751522855164119951703294712240643008184274337219059158846243650139414335042075420790336728756921984875224950487536101787626821070098611614006829735757695869301826388415810845648545792453795422817944602925473643178067909717467649801021051284307657380632107283192433407811144034075565198367069379855248607569171987842451890405743715942196968979175218712795237181439547593331568056050448690559709196178788718711430318186087591597717302402906985615229826410214193976637442347364363289315087235206825065539836222644745623015759167650857541720564586362078478745056677422425117612359424442054003564576208933744556141894943490508994187510797481881067718484905491069550209771806492291258225775768935286272072674278793811307871712120766738330109293888543848098216966997976532137343049555763619069125582986828947327515987635799954216624379227796866503816571575282461239901436561269101226593139339614699754222962403447219541737938887437986435034431662004483473236794024824875220785651512597486145465287814964538004333103414912401716666856623225953981748594504887545738900969722084675429576542929983742141857390291308095023944395432532247111560028032811058645823731306148780856275746167770658396724025737427700113824336962693819988421309907097084693130076473164948697661735549536384111781231947380301084532811605833308442984005098895078071895396488480334442102637646839417207597110401336488697452616497199971302001951806224774552501020758898251760708072196375834555605427236163297417535764336056211673652979978703452713213381835213007758671636413304043035320527492880878689474481729926883665168652120854446347134621473596402878141449962732113877068348311273408575691762673266264097363995541814227775310854738253645774405813203587776909084493463329754949358376181786580870588128116279608991908033742902128934494766392128000810284253869401467682413576602741320831404338566067055367168873716906758632287130203428151913726499085430588823093226626798950173370402535401523591241302971275540495754440360856650668334105309881730775515771687635656253878243922272434129315616872641175207708735159201720928504463986434898474970757168000267466891308475712932359321493794104927431853915774335351680050969377601440430032072103390728257892115984489719007732035521969020556287954016751395782905187220275742135722840067506291420011488403803241727641910612318696090700590182102256852929687636351737217941788173667476595851259238818663737219804257889005362251010872194001870841059424305599529659461765636375183457986892687095775402287412813631615901738770112787912897219941237645806149270022591220335051804998053677634097288983496747618786223470078689371389032899731491019369558030740372006040184368840689961179903228625324385485516053970779008515096407011056042538218126020398315279428031833400946716655560690472446722774641998248096741056461185571878381820356142745694014145139755199708046600218801434983920638907035424150409593774511542025134792263074109201263827717258593170315906882517192201861201665958711204098887614053696034017650426893202478667611779624372739293568822678097202747253919854509436455994608241226923502421243328344013579507613041294358460282502972738956602851377170596216532063931952345953035350052805384776659246180714837234205646757206638672331068778026131480428704093347696644366017503925540928377686817315714479191590352909864437500973963642603479571239049108541751811936617513928077085597570556440866165246621895635634402264411745824870871487744133503489719582444491452218264679287747844983478603157686981624949176425230073958128120777225569708954058294964331821784635584829547208285151255240378732175864798936092101442948229136508211505893971618939499317352567309943506234673842571116246617275452714774235034262467477002735139048168559513749867586555511808346915849974960624433761511864787691770845219104798404267892004815118036831983828029466742808247601800182309961903544474524693226810235004070375418545360450418994531248059241618796280834580575030794170674704156250016427395721328753644613088331967612529875822200083803577220666067861301614636664352239322382234070359369834766085655621769190690283037204115549525183969932950487540130984053956395901390426206626890625141748759377165194775783002983172879837337352956674077427064871589293282083625520653186233821390852540337215059546373563303815425643985432653498831226476069492022494973360733205804536398322707174985062717749472739532887982657164970848966962383575529299853196986953996156793317074271673696196551747600622990393469983948912571735254962040830408468148563669090689032805754209112486160956674688763704046513480048407831864474133258006913883455358487203502256875959734275841638469638059846712763592845029377969329523546793111505751994134243030388977460916802049944592872262930834547647163933379637009272132528207319665399201672039489842598884957019950309091488206818158815534384187594435310371436508684216915237183436491416263775093672070129425413079796978637717643578555674029261624960449084372314679276529860340650699067292616113524158409265607542220775311362031070845204608162825116573120856102156630774737309249563816920877207666337897435174825850686336838846643944995692834125442322750974547979432341057072948260069560349636066097654322950236675974516692583217529141001539422809818680672894088813099769864992479985548488801707847937563785920605264469027826723021013517091787183186132363540308588613786711187992242200849045345948904487218923553835944222897385872464301763905506643872087437241688747176202507705852648266510662021822494822692884787606930328431478539516707373622484732663797677404946792401682468802097886243655794908235874909855221500936572148524096648575592025164021827479652747833675202648428151890929154579701820221799521921674848312019501387054267146249635800041128730614063336799215572816511685669296858481170591271517235161158634266501276625327501955730223418380000724996468022759490960847666322873432094974555108763139010137384629014911262176443770698992598162490868697853637358456082042112575712651040901651462176541844232990726632245988606102364549093742543243130799514445402915465866593957106864903373050616813641579192724112374834536532665935370744705001275797284342411505829179110179315906176845673861773918582013457002366285053914970315260758504405039499692946090066630249780901904652945609574773528729778517029566828704998992501047579436245665892382342304724692214931529891278930926396753539342418077738777090143996178914446330225781230422415038593933041860335256420241416012008619263798757892312252625280361173583425217202430302006571999362588206443522616067184218304693624900602176878798359998758768840258141778874340279614295590055811852243931203957483703188637532158454978732973545359403910291641027190983723068786421865957022766947895811316240346350827297632979346986057645958334941112823314802815441186326122474339154718937590898541639371973230860178936720880488744837802730328752230410476892736727962705187786567298799643980247105489481214049835227903516650060802272526413845747015566151924951137765205997887140517512952719505523943283148268508642613907794305512068027798019715844533768227894368285329969332606674378696411113661744894040046579681719894097625396974682479348376300608031543952677737257910994329498241771330468426680079634541021513199047262403032532891430579355276270176964603140832361448806873742557688945617743458929490355401929040061135963410171226197049643255116901999891567035979701908216385279541688873810001464872633681492150286711872865897167192470577462785895319698565658020055726040804276496025105847790964316513976083850873026047278167256055716242004033441872626903950910220129346998037118509504841410327438245796365462076810967389177243974910119807659342477733229465979554868076927590301624305634882110506588115594588250947281310532053435224259915234612262800158096631193343077070821247473631400275057708869622309369692881472970454540024041350252089991188240244342759383840558684707606588198162267208682860571416029003320221431398175145079019543380886032616377461056073102652057672224245253723976631086792955403705992028160799882658533458606213186971588517702071561675772819141404249284960725461518051866861840294036218943370629192239063649847777409746554364516195824017649919546352417050940399733433086835633422391343569725602382457198675212955805963442326610934773921993085714137321733536947941213255435598981882556600539313613839860096562547644631402399918210551837896634601779189242118358809666821876612922458373843789087137144261779418935719778741227955515205475051718123748519109420232130799416264290461575908345605118254628384722389725167990110684588851164018219890886650975634232771575594601914161695304268664763297726062163376938438308336558172850972881229370016876949107062092528504275363299684694613103953366365750039787020758596084720584334051883935593723728071086359844658027527042137130224484484971730607017876536864589286494149703646045211682971227228415448361440341584744418881714862301619329869243033650451252373998959406828098886342389310615370999790741974958594397515193146194830961040361142517094662755708813386023493936981265623877374131883827047504710149514649436494154695123216466296657007669497455446262730579534780854116088664644244136033821344632276110204529737284258175461986054416846182783815387390290740103575354940963452631932898991540468512719600110050016801601617309591362063594010371330952134407012524224704303410612780322176732787505036414260008030198905733687530846278663479745974963362896965858310647617728293054757850364852761636627220255227143252118061124453237020481260408835903131280198051017959506310609364087584921897092636623290535258778979845134156922644683467615705721009968171785565351206787619334181304121955289949952078444587321436071160028218155272097241653744592656072038946209772018128021851012347304237702450560341128517790906076727042344264892246366203644335464375493547902293285536563196951540423306165463558682838483065950787551086070746245150304294678777552896794173650016473543067475307075897546383461615785552757662281260521705097908382470136346263696492422095455820211290143628413932799536493691045114297496186650791291546945409550759284964323519394903321079415498015426673603789985089473334319329594088236550942955065752934085857270239750743672725078148087502491659925138824836096600391687271538583976449579200595287753486059633468744093839145176256320777016313288391850724022246067271808851442952585382675963575043894626998146829500364071337121694886601137280519750592568283416909665484126131391915343083730839954618246640702040544294233361522167014649975029090580478870094971550573945673259190038260432649553201447958157922544770821246361555772811626206384087226297871721321069020579731400829722834622355067144260579141052044720726951588884167375241338213505347555582814955150193606722363000232570627464469800074038569605031156065248134719830401697054507381062451049171851473738197825461704738368160389730388613812637836803563475289066298468901541126727921527429905186624066373715842708021549482410728445157701519513729784573701239703381046707202422886695852940071812623290542232222580453903441630313620295883766877109594698457201375000916068940475318500871848426041170188453997762836027261429813120569980678082350591776293303370963278743436521121979542656247523102083520934937945047360241694573370820428879964556806874270540314632389838917731064884471606300836302952674529326445681997160922474050482716626582701757134451336634286174047858826456237913748955802304653402702396003914390805834169871229119388344117362685290280210417545814694600204446198648166637648803968485999184145701825849391880380644743674714740362146072415819141949096964814321437408217323316589242859571475187045494517439583572421010152642182925093276173947406442098965918266953817449130676581323661033098136733088199793820453889461855290642475963661987682525251675367003478150042287119814814181544101504287890408768942148178358441508460067022402682970400238480027332997556862301892263364113040043801480017020833722370850715967910728465318534462573679259442749648468785456579846723071592100733302428479483406916349377897326285051838345135140144428772143583639670992017221292178559844034259207643816748371483345437936166205327752190143592681834420399605716912984248632062159652090304980091447904592130744043826002953011221469950842304874748213168864623243462331923782432932684428487805051397434960531287453727320993864965216653280327958183779845954127420614630525993462389934680284802050855763510034575952101256915649670016782453678388594860547375800887646516483752838151317573983852811267619295885264569019795393363518115405252145842110388026678827202723420221692453719221177994124200359450703991750484934339151983898843100199661312992269326096763071128121065869377499003046383238701715880168536115956764257237405581014628813284645917777617546862544748863349377377769679737038235125310102952240702799899547098177565279966956231607829329982513754340832735701151990300404203595083427920998455856369723816950860791260057212721921474960379253065672474604676294302215562300365353051654711893211901885620927602632295888752579140276430999618572441923188633096434000705949683236339706495373611726701851292625438009109180404963709188391179798505953710566840751048166140846987758140208540342464930967412201876693031620945757175647570498883556605015244973323295202581176617671028601127529766910565836256647862651348811350873043732045899513514908470305799893329489760713270624661708970155559178992524177534871064434829586714231011872733650828402270018365546975722959665784545953082030181820677388100394515012628642160569717734993528445862660537820650587403443969488879393631190155529414578475108267860420289792972036155017283713858014626560140178762390854628462363782000892933199014613583877287285070125978958014008054038981818038881985004650945624320454787541377928945557925273674966047057748051827977738411733691624106938267939338501623501009568294987258086165051437595673751369523126520883498868770106639529871671294088503176172275603301644396532598742178332999251096445378209588658983309306734726470697008656849773224051171698278080128083742657161576986402286649939274887122481965381706914388152110619096084984334454228852737937037696377083445941014439408516422040386502137355474628455404448242799353630035303551473081695010288900714574891881667567858853474665525682271708970608142366537959021199536632595541871058717113594947879743094438608445253470363416788410528122329294603717613566645397812094339375624697943017486273446046888609043106745710140731891658378509789446702490294118850919977927973750932777050760702933532920556494931849549955795508822693328898948496347840520517172445220114873005652586602425810142450005524951571413675995075668541687088991999492299277004244645114795091277700228746326276202124379109296002178107532150252589536305292934178342525672533655631050066451968224485171668568884123418734734329405472392228791718907251535969068964118410275573486133171001634598379112187741892741957587490790330882383246280044037251125404591739648176256606833158292575749620401077849256297352486485955502094795599164224415752689481162910917686159648693857663863891380691755585583809204597578997259164058689238592875663032761922325467749088553542029771120170132156368974145188229709250793389889756177739837870751322972635119386767717702653969945559827947566901370899403306630878023823791696265029002902651101688136728426902107120583227076100612499497505916546879290920268917081417982794434117561344935448326192782404629455201577402461391960295756371033139717736255422959066029682520633658301629698266171069544653206906638759613574943039602862594098422674725844919790476542349738498715024410758613011522045568120113705351602895885622093162697819631762253706153643602842898746011586822852637967898656286990851225528625053512945878200670573564035772479986180705807776130036407327078046683960115084308733454289653947454583836144467221866811957224005096575196647909987425700935479195237002991761293044716308981887476325362769201577384974704112393371570946937973038794029730007236153713709250963890311791298765872361259056261686131092264524250660212628504676513980034367407635574257430957423926362679621265289048998916883425689894464604955289986530444674011571670161854989369205467340275814806101143490684754716522116246942713273508899443320740103133255516766093442700791125877285110012515607434421995050878547328791952862364205469766440655319001433176881359226248911395571377456742468654018593558678258375270794566853654186538613225072509606175733426186753113522254361272286684747358351512198745848177267833466963401193976508605854277109378552789047854028890453414509941298440474382933044717436795437789519892645199357861396117609497939370748381137350943489289708589063392414741918901601290574851378080687460471724730595511787716636811409885747406604635071628780716603496836008195356357029477270354093212498966364507054573667009719282842124532629522171659654585857937967690560972832549630302529292227648271394101833999042703074422641126241072059866793647241416166887691270528810418803350539841996964863282319938396546049973092120376283531842626136622295569179547298050820431149744046706856406382934328688488269693935120370489131544376160159531377043376256061463481939453901985403584303799842706120290344395307501172769743132334518987773053759394646713551806150379498638079962025689659703811632049035789299190345799543286293315160489019589857759216244966245262397730773033967242951008471499700699642313254259513858163244492551931815822455089225778365548593933020401993412457556967569374813793885951069151002807839141174585912993156415754127472698854029211361507771940213916331677649674604588777521562960292295126917590386054939061250894801884784204693608214769916255246499634727425060615924324105190988227340036909307512707942855473705676441221698098092650947031945783983862581690247077199310712197999169192385017666992232035966770120626580937595331133223947839964293279390261667963219758511793967215743769761257538611682254145247348296311030313971460343598985153513787750969177090518194454362158246491053224027854391139902340330773306583899065599325411140550722108146860454125576637884503678352767085083298095788681164037138833347999378948848172138430109148179585493474783451941684289724533586465155586054788050580823815472710624444061211120592925277782344840846062250823576686997064806143954132873093924097971137557974132677988571057740881717041384749318839150495758934027101610616862953572025052375657786705090617998019169717849233921059161707430217644916210593953799133740313144055539291055925622183126045049384268922755869184325944676048317012673690863121108272909291555738747679411855462479388925116872317512547460721267963008261787891242094510750123279563613477631277395455126030841565912527159195153069639623543252961743929660540730173059262779197238736812781874534403818619462231315003028838203979815927769021033211842875846464471217607453732180842360244009053706413831727683243039877460877443726550257316493237601360961602777860863657911200706432757977908263070479981822468095046081981923032007906583197449430909371433024806986616989339785284823722071703338603100298626226166181097826100396853031903159115077163274125389936794111933155897337625083344063475199957933915009124817403436302600912892778116193086899914682661958946212342862937756666440179753799733031823747176583404781599737044385232856772587325957337018562256468056298653313903541424524717150901208170395952571595741655716064219357691012181350260408250146407067228548080756950077280983832348778848703938045357428258937093499301263442061968792808800576875151689161462829456521212241557947105044710919220871169159137038551342552368586424857437765813628659353534659160166571356366415423918330274289492528108111665488823829027211209460393209385241748607426433244362441677361518361247009317972635974846246301897795877654739746754829223115154495119089994179645107449978437305934584613769490885633389461081211352136905024499323906989747818665742321845457021352353941456940557763829256543376290367646554859548780000572486375025235937320452815569384545905171172321603566098283454120820666920602559447743865223461848820601666468124938947650330939615130362381434284681846391143759008955239048508397728107467697178344392759519833481348314363824266422634624858677962758739112672113296177188323135279261338829856787855816847870562034191096757461396074322717862723092966252979281876356006534690532287749546491825725733228261599093255123605278613364597173121005718584314841387183928000042889164450043182165798837170325421484191163719900058327095588292711184152756418827642512213670748687591582570079073192527325350387305843604523084107529180881802064844436233717888915400052096683540279152318682221043148366026291505523170908350621750482245528626275255649749529650862745648000214139758195036606994873979136370143810595018730251946713775989781751250609375223560201364637113606240415930108731068534476118710432481405368251048419137944199687637479650641654627443100719442134063011558298844154778844680163073455387854178657883080632633001570224082981744757159725655488179169869727293925727998753620557787444619850374669755112562885602809118934610645712478486496376118603122991901884663307894595331771314309493546276393670277181508391746465493841959608720056991675856029429951348122942699402427083278538387600842105943864550814486553704965407909618357608413172438728820645881929999671401631311376515011692518769711661858581888247817205352916010108403615164201531113124470652177120557308469974890728175511371544837681311204082299102133056413951136524645372964597370957963636797603059823346778364840976682801277060175584699614274195378763756282184393484933384380929165834917972296866141953582594370284235790062202108967812411273395666891040769248456208670900765219110604801723510532102091157463250177139534804172375923067637635165755791027288417910588678867708567283312142984133433009197219812917527649226166487870519397397060265148152153535736449887253169163284689636238205368488499516138661334027013275612777806317494835398735559807816837211982651628568947259603623807149933369963236511473503293762739803259118387807669013420322362463817754912636075071361788293978924843608005459446637596989879995929222009057302033309960420992311259214596656459156310041671727865440966401159100108048694644053186166441248321472772082211615915902608053476973304711979300525519657540322408625181673700643014986712605437226803134499649133425379815473715006317398276878102799404307036051396085323921458194151036370683796301549696263937636741025738802925494056419924817291016710375866713457718889015501918526785181197652916458771136922205239694642038091898687969533390786787683060226976391209410169182053733261346543638216757063330298278236011419928171986853383934239279678700498308959743731058321755041809829619600453053443161485471825818033651127140542509211659173546519813081225887840910580716722973548302858664282250130035357685831045788156912155773453769838891693849722949737368232130199261710872473308672872405001809006558821580936413992161660393567625159867780439906814685196628706114157519300732189807793826534031533535521612130488522265651224096021525784307282993004611559015958282320696235644434797721190085743169686193907920815403969256310770299906336106736704450909758029203342161043647160703223201817166485077276797934061932365023724823865661182875556614417825948388581165144283824231924783899958925519684378777512600868915827222807281157273437756210216764395772120106346820987021035564312360612010259421025783628146403411042448161038944433830386095115016689046948360260840064158043680162515226798748009020102095431553019542887823397730071756116061447360089853233687812192213490547337261776519528486167651509697839558225950833900847128678068263114145277458511698562885146445760105876944568134190700359576232818224411233187536121348179946622577778225029884291193569975384162532931542025995438848810759118808835275544765342422106620080243369206311280590178704475117712016254333857913662283028582591150012645778435749431213579191361415896602075559956060503778159785420435457641098442183946980784014230584258090629873922693099390807278323074098772035985304630146870327327646071759490038615212381102815032222706134246932643879769757761902513728953816523668213890131105619705800843598602603968101470689817027078450778750806431650432852363573045307993531689878348199871660526414444337798203703419622794524678384340251465329966401742467642728544631995595200654770275648387641379514277626826333808546479669458860082114789190198814114524273461542761833245242957705249112089557856605350093505703561511175286242767705183774971619929335645784769428327710924720380998278372770942067898591017904116562460326210604830717304065186031090188684839740546827487984864780369076010811178615455144490858538051427001038514640019982455044900999946140176485523836747373696644647908911483141341244432909153326257775306736581181851004936464472246339487163283421992377786072870689461555520731510696705924131262189564853088639864810088501350742300012028882543172381814052991733471621082139009694190304116532659764125135871154314405899531599733737704134931685060767855026960886711877723820346399649708102512412223372423344314454569657327175463759576190796491972293466523497364173464103092740333230896140364081173546876171657699667560759532415618542042502996352782368526782919362249682228970110747586959268168448409925707026531247712379888761422504666219312728628582141365517184188770680893566852943092623893881477855203348893195777507819379865967746068712805828138590506938891224928792187569180300483877165278387145976361125902144230566930004682600928757124846213123513713188474857677456987412731250322602134596021167788968101252273009330945990489875586236444554569085081086071807371794395010024656847230407171178744943502264211190844606834203629148840728527028834718215306736529533916860354500311597634028232008387409646021157251182103408054699832597247509442351392372290684425142339207936115223566894893426882865609932314712244474270397409224026478262212527545243089779275136413535842431810611507603829883220589852701544398154726816995177484625325648568332598628682402475643527012877273534518765697854854615076440452184606755919102138367519763193200724002144960546055947100967713421846897324021797652305304540877043303929496794631456173880977031387513539985676984027998553020328555623388804278401674405848124268232039982626119962245082609190821972877162586886314727539175418357985033659476494970030225251262698986934936473613246761631930872701682593775907223610809018159285125196947938405980327568961708151269217927450867722144551455334940628321950148171516993362845993343273617954375031571988016656037280810182156053530362991063540743632862403827335717552286236144656663421950361170688232084332299541006546856050742726303850703947647841395584712672664770860190121829037151860292928371082775688382931854993505881300434723686953199178955766873084555355879579616994115324591847149480466661428069213809961724356832373868481538615195506433258150880432647518758606159276246842837738355828782689166862786410992370131399090916654434049492025128851307787584969896862687336615133618292079358544953835435566231599160309264536758079222666647434493640608353827552911737108120682827609432109661612686277338338913071943960022549317518547643393244272845052053700240663002121828515990809508299635561648162537091611229795586399564552560364315199466620496103428308751968735557275264589083230378093751892710615845256302348911878103883026844374914379658013096601257100530562871608505586880182781504835876874929860895046578626376102235183918142674726224911172588816421581400713551294968816466000623995134381823044909946183919374583567027207398664969636932494480323990415616352124882538519288829612141201093167285846251594075784902310507709210357639348030110356615396761391554215105649474189990835764497142609534308435078581593900658703409028169096759713426687502778458549680669083277599907006395407120839533734678309900835428998760096856454713369549556155230662384522509960903255227492416176875667721542844897548868034519335459782725605292976630800283193442657756502141336863728676696170719754154213137225397426791966105502657578032368747874206220158499816484990434476591369134191394160153685639130258153726383423939942299847894977767582153448529496820977234540378125831999417189959316984714001282657191872612680659386894665682743311335203844861332340211857836240459588584883033866005083548101708541052593983194711107371297642155975521168620067615636319655971834013404093544893346904550689155090474374260610246557629127001714984864117508814193131992884208811230618746373778249870222051195202046322125248254324945134340609314577810537064157729677917906477525897038420500980701267390311372147824385206230348159332835865657380870286517664052059805574284710441490330518535000760091958556176357644869279460507290330686814576502528123623814761135474420743274228124783843497484428561033876085464113156690947413835325308747004805785798180038802545732144729173353373147867742607950141433479191205409822861947998604883863819868376921102995337046226731867098719501470683285388161272135462253714356356373754663478191553385750428977239318318839160549993403551790842698965170381166353843043433977524420597468400039130396348718900017320924896936287808181710717476044987115099645413138280889815654912049378074382602346112832413499079816514987777123724906633747958112288271261106761437876348296640538514195970258066549667655870245476584573079559299919443029931971995890565310647554309479058316142087451569033067328113980844038661131194964619919122800924263093989563555459481543314949511128087550510147165616602526640737776320585498143211975266974442873942932346113029075860242218829476052724983157194268453007432635681594322859373696669750814008007941201031621697107547609958177781552559830981310756847186874712423262884977882757798053504856718803574637567712784311722362095984410055867729141429526848906389197671152547776649856987446398684215193162379714151984343496187866370772708327767484247598506207750375595363971582258411501948108295138462891726425045751636973905674053419672407287834302574703014167897265488091905564257561807014084339057730639437382469847655988385747887431267851158712623492842630729920410276211210181628817683884634171097967855090420207353330165514714896850077832970645099342475189850714761581031380304551841793134044414100810608888720170095516581741169476570206279498646642054651680261895462684820125276215311931728084410097000668763071115418382974731010841766479229178280686355522912708779358047708649304829680783858629403470387983563100869575637453565506841278215216719543031007387866769242223358379956313236837416093839290700565811765923360569196721921528702315019361567893731991071625432708291831562684615510830215785971652896149826793094369066825232091242337229451406878559943852521833946643833253710112357806879278772987384923804159488648394824787224363554749620984992558431687603297773382129348715251707142511078416058237146959181562515854069270955395516914575468284172604651019955508903728383673219819837603244603216239873178045709480260378385547517668221590393757968865693168103463386292430194410069195564596447724219607944504462150242134882788635760117293791666694459977214034232673704321783898871822524469247353653540108936340499686255471526070217765263792783112439442520693587923935009420521532700394778730764435561144046194909867411814986808758498159356032255862552790872372236402450738585809969237043751438836271815706718835615766090200048037305180841352927547618707854096805054730945693800958971573529309646875776970881964748247228066689637040954453277688833147018898210783701141573484954851350389265956716248040135483463276786786992754054425659415232455317355990094723818858539415533293974625751994584987110853420064823145744972521472229763698202065991815582737085933895144845868631382712924617011287490633265673846774538600923743681118730882122309432882884896753185135087821661437720349250931765864715916201074304801528179103318360126271896407574486098980385129093427212966318572590605960353364716827097651250785393049431377145631241479405624395257594666542034495631870777308682771131640918962925059648938171179163309039349905652245451701865199025199825160763510124699541012904000432308094631175517674182501345969105712534621410479569774279279087784056081038276568008188016698445757295438914060206912558024909378128654415020683285883098331483825227610382081520077319064370140946333067290830917824274247117291328655677753713147699347703088727214280962741876779270337485903771133765714382102686047680176779225169650494261367201214124588710566237408127750214203421224889642558637213970082752084575839508056982631293157023429032243150344935001469187015405604717983899329034426775646063607743438169093090760274468745061287568108368830745882180510155987070356883408934206108469347258282138560892260370671318246095484490151617430856593363562981447205394859890910733160732670912945430678137624933055540139722698927025899852154379657967415785066028762227271477164808927394129341970100662551204917556456235608466052236749227269431891938717422294193647283438944330715991640033091862406592152987579344053876954925060608246637376558246374320928584109189789696179484977617927714688257433289322158481305726813707467160233729777627736986150814994998118551314002748336794484282545060372925710614068735791132786466897135502594242183400282272677097346327748559164267438981187359379094819938321354405687878340663595970916886482967177231013363065465184835774936076505901297331072902250711421506019115909398282453017930815965991277799690528501996001452204082832399903679088058791068984898779314809069380795188344037639279564129089593854271379216928733164959617320934107655371022863190683610637300084109044121598260197291225144585242193724896595572653769519009733510907785636209103953533326424773926537414599758452177976126584579311508755536820718137642135414825874274991032925858589477799251254205844195922748553449702408091678903613690298902719298032884583730277570574266226104274709471508137115863169811229616077402580616988752754160597200444848316243328182333598095262084257743854754180956129059291194559266864228918694038849540443314414514673519776766914614686652264776117451533428842925852072353204404520112587539528117822949202596983727679867377861323138460849434875221541912690696604409295958390144190388199967625740429588108356379355173405347532658934938402763259344917157379686807302308860232506345843717932179779963903466984115875621258972277830175768380454362726316011248980847670183231159331225066514848485749562252659892445197569833369484904023920682436292901195756275826976151199424756050701683490843490469530130483598529393505177470702925172319293609450770117661605267444572091685381137463673257331029373997967224588926049338741835395009557698690104504241651878027821562317997990318674708420444970500375340689222571124527598800790086409607073243096956512358767123608488268378353530286017346862360168571242695527458201998928866364929023880278840006277337262696827261181385135626662630029894940403494903079432565457925624062166631312628985371349691108457898062917478251393337739993449813042992458327019638703275951492618110700166281082518370397437926702577527970925272222404294305234952688838408491312703805545709155408343964676556361546431153059910629162260331819781127138906563673503075444053922311169444323074679023456639498943827898237523584878485963125851751928455491300505350153181564927068529681847601597392186111233180751854246261492781963670934726488669079463392799867862786714244156870702079788629137947497902470193651586221355281431362872373098801126383380502582034670932838689757190994773688225824770815018280502639688475733638381013091282216944996590295288635561640635117704947211075524408159881203421906121493980555067783250775879408714198956214231103524795207810884616488241162246676757085580645991001805102635632091327259789669683999586796253396225408954515005454896819312083022730102095172520566232701508613467559332958151762949691719257038831123718516615402828454144977577912079308356679090396024642140597960845320214241590554738836286679147105941723313265035473559824575897357189836159224772771345909339347322081531401041004633157643162579836782862448913569478473154112794202669586054675497902847453223859200126646026331448948281792004494495810433858305210078862744406675209318554665941166306155833301155886703978580644903681607535422398321478378184120885217326634934660860851296815893466662059039533412167875357705971770969359168574044026294422335168168457228609862220044767296033223268896263242139080146743991424187169596808999995709610566862186808662181942305746569075734987465466711890394288097159568621632237238844231313317406707912855850833791548028166936000291356885293355100512589405123317623044462068784000468848994471373516280628385897008116887502454660342934176809416729932056144077563596055687839024581034446425708955034487975302936256739579405221629403507238462455391922107232466424523848016224073950647074255345631877280923006837748475962162633242523396862020038662729912551173743671143919989723839219557182925745382377827396104279457935692906260817100481745644685678044181954839840119581616557586831045089273446318154787598991940324939651464066740631060032056413349377397936844526364309135261659665638303870304671986373066364419724062731813004891185516933033349036527821518945965413122171152622583598784747526414552653940655212748082013679901758545414593425762795719898927536489035581890846959793491776222416045363765036141009689645427135597279525000988497811330294613386897429867862427848299303669355894520582122911456339754892398029612573061237024551301459844837554874415167167160432813308375930657551628878479592307583973783611120090427627702029617284851647792185212305934765636679904363155440865844479753006112390320029827398781152971472551059695810702612412831797068837851993462688843439951179165196485616289912780189859385755331303540996787508264821146258848023478519388516828729287662271761235215561217462675973100743023599759691694609437725254296589402891835006252918409990303017425506961976753118549816071508178721071174436335629476794004885142635767044664998369330315070323224329032507674229428965780325263295890004964772299490175245657020146201608368104998550826608892766552182414324776867102597118240308256991477899542674826601180150823702495048226557294493775210112481570288157791697847205538875011499222204808586042728131668543514935626842290241744371805846816688917923337696504080307975085573069673300534013403948749431039574021036257601318629966012108593947608659596960494724273351853527281797594727493371665186909631416188731124299856679021408197900635447170903748966602314741103073098728919196334185146734265373826150279700678615642859816810803337436159114797774367083311158240097213286685351002834783947349160141724762892794013556054384207303915264820079007677875196420572794853913787449089763540883998158451914293904774866230124952373758036336359877444534245984617519153507515229794778423758986418424596393433395652821924631573656286251760534876968217328332921657633221555651534181956342928606920058426824522186325352676720747833704565802348399398531084520999460154504774636108377464700165934410921520305908926214627201825484215077610263555114017325968138346667211473213862317895500233513659947395660672173770641337639450582100819397291111562807321446080752321464558182373335182729119349930778019102750163466358188550239200700894880769205301909357141177651386133232011751636662913564263520933492360717186746436246072868976175522195046191735181222785847030230298755858653031337308767876985404402872622329366407000261812400172969407962576616383235267232591373263917598327453214404256870248362786004921598484046153364868099021008013575391921401841959739538983663685325747891185986732294049710006821546453986719368534702928220057139866434304827446720728796507454901274239806564959425338257192376593284684490172825693117401369592589128507560386593529133794427867619476478935631435634235065377981809240659674362431057736074623446879819172359099625493774292367812788187917400048814833629133725339011671448269325244542896039143405406503670942379071942787103468761196389375227342497847967377936178814372788420540737563594766041599425426755883521905481177309704654705751785741595648327403727862528408400809249334334832088101042339344730750224480784951519798515664892513454041751688348094158345141590106079277332043478753474727116359484929058330526121201830342566980014104237371260131957321209597909253658618495110653012827292835393373266247997558727884005639667061678177453574173240055139909514550009088838878781009836015352786380002605669966734551902297381664662113809777911312348437082666297585805780997478631568723929385874275754044870134519255493228629290080978419730328469791309421343876350004945651800096246717701662966119945053712263497822523418966756956334840545084866273158458130372297384669363814747080762529636016149965396646503010152324416412442964207225202803948878602382828893654424569379065397900343132087617143903382081087209018646714836134785072540000665169848568088851555591624641604572914237390717095484164315196712205155614930383447099584588159186907433063701825429004228176377354366128795893428252037013234976214103747837189938692320954247698169244019259364464139539275837295492627117479173613617872488093267974781860434236344115744065623228211146575805791274047413398024440596475721412642311599157072021881934719799350047148481918999981992582311988148320868127363184668903706356424035190799060052904027315896513358520354892364757257602089406390389451694824624054813441409229337029739266240955487120624444492592263402102445373283747838190848567861677471115714086546547711228521890917979415196228341445284566913325474579522608305672971497635828818680277346907662293788517146582273585249168751398555441195748277510969521788941015320588474182926335080959405136995168151051730207944545574813429269182308183905721521663340348633800499056246127870458043731089856006332132406116128323716906699819777098272034597023576832114513298116347438091541758056202903367806579301737583345858930402477455723737368181352253377554880124588682977031642764846915162372924164903413869817323854095886225101734895159443809899707445994400194227214024775327881763737213628197689623824171639262999936774485488861195586556183712219424055814736240598858161576066281729135400296237399234418176557498109504541837585820147933603332269724008290752302671471904413065641249353759940563160041055861313345919155424243714532165338891186984267124015170811646234816630883200837651369347547297805728750360306315380843102033982625462201291404023339451981909886963642616952254248434880250440381694455046759390337604369496386869276185504978798939487872341336424928242200048509285487595275969914715678358146585810427071506989388198747846274665104020973494413512383538794164241363244897347026743499956314461381566043309080300307442864392812808775794147619773371794825599908089952551851989270719105684980954584339116104812804773585527311018698397772756496330008682785443441243764495328133230841681714670463196879059825124350721716148574034531239843207027644009750478084743323156257695656842623190668919677951568185571126250991218140273252629665411788638488733864821818763338668999480909892827383913690890067822781635481265269333293964234677040347731977151874678082588360997538505947276798900960356630377178338068541729959826966876193294602648693122273129110804335977062580089186932200039653875340226674691244619733747532473910623151259760882093580319708415125924431382982034465580366025354342127753611235814647607549395463156261094952454176993147152452859563503268536872908886495336500071487360317248505069070841712749145882048688361859690851402602830776491934485662635534686781224123713012222586934131292055835418758580490434706420760885961124940332893650512885130261818101343901662654095131173391178447230622578378393612631808761575975052905452022329678094854133021830391497200459820222973512886648312453944935777647600756850280033117775513459422995880243283804748176936647747616459827588079193905059039825334063385016327094884588221935882573558397795091720046523109743775064256659621619715884367175730824782680603274978212004158947715216789147728227433447253789366979182427453575236035698261033721986207719705357609392001773236290245713486715417162176541310699054870867486771747847303367945893218513565815568896534321090093193059684182626461859621562148506766154716699811405981411077346477294821224433878835850907182939414073415127341403927248116193366139809345904139769872916605179039826623867907430944305128661203021760180030142352571197628217619204907375057368391270930844653235452991212456317398209990102665093771968658517376706234980624725309722885113772533501763331459933408463498924541655039502504985650647595551799844262321951738005145706278768456407728252775070776123313040251982669024759085988827402647969241166798592549418733190882818079411156224986493589082842004705491940800233110245877694374587893418137764704003962741937668847993165062288131072400525880093099671889711088947319328364320248899975499436158980198401212117329862682438108979555348977548765853098859014511281473871617445249746076559941543163664359185773692751911491111504477151344749706339327117613683561942729189068408180189431640748495167154733014503309882876860580995197737312102328376577931511913676717558944883482939006855256753287683014841021165689074756956262711350656575206421461827796792150298508837970778050201232554349989854003482588855938917432689492969869858118314759389711972139064230898010117554979673932143334730004416573860283893308884777693853997627697991010421072384142524966192383128231920932500581516053078017534399240549345491224183739476897091841792919009127522944986508607778206757683621991471034927089663429897161285054298265233265377853581763173913421690379724978190986768276968069699987185359928906929354849093623983064315656890640061889641249285305873520481837356847477198081297439574418608712061877652488526190092249946063046188458443284608732318360269147873751437744079687646160574780673290821498689632787741426963904959129910194866453243665913248521707782464669493498945835590038496416158912099848647094088154801485088896687514266255613121196791743922578797430351273246252671985729634482142579577116886799660689018556549115247930722722486887401674790870608355952581041786386309008272180557081977132036491697250184593646902154443362704703915221144828658761500197240278045955559673007943074277640694926166381264193305760408995217057325814975520607006475256152730439978188517475575339653357494655367367799578117502806925200218817413459218704675938904871976738158665886942668240396352562752582250765203735066523078794576243376973012600907923827102723926871736306135529224131148861491329053488566620097003150668433693943422262749216464663089153942733702227571727328345274117472235387164747642488779548473880785550407532118965903634574981566804679821447384634040925163815483065224765580671829572335313261754748818072042289224415620729343746489547610842495698206910924962510235421647554488299250904910473374386064936994936832919892869379355431044870849239808949275130731027153096542408349735092665264098824694378835558154293295596649401768125282858638143007307852334861450984501321451986641594163580843414167232483528390457572096264632579022059599461238963380415125124062250401547826566661794240284938820451195354747953854282713719430213914830344058893034285706138380229113766225626101052671664894417441663759242110729108553035997737418967222407544940635920081088024998450763076275590589349318012155681027353278950321586582969874270297050498295706318121791790666175167002450771922134058719219776222133807463814685101857321513002160550600937809579152309929954550534003476469540160307515081361117034930433540326200510765505842027318926921176775807899326107898422209473233776752495196681627450212347189305067806632477101865004672790005435560548151139293052948362203910959812458754498411967942192901809671998309471284640894729713382551410061519403325637761319588327677909180383068675609267083961740587963966652635531769592404946039631253763558066572854142328256562406454171635886048245306631290694098854758329865267645557156125615036540636477948528580941639877020569755700329689301567509559005012380091337209155479051366442910334418740590076288681349843740378817233817051354825858694269789229273219910705884739385928675965073682283770601298657550225323241633069837895843018384282925942121902352565464848242446516973781682068367059815159563280371086421674168222587663139016404389419688716722069310121061880083391017583296083504736455745814515475989826766726791537960699598285680365482817642171506966501033513298844417942145244802483007947604814503413143066991140487935049448757953208689962019798733220557277371733433937496875930324206730414446825316070007143281011556343025670200146800406735614172258015044009017327918821806712203469556358163674533006261201957709084487222146914717119518417338986279542669118427212485912776748600920641604000822823835183952182301400347602837084293078134228833005266738474196336609710353048459262570306049532425766537632331516563039184888954402225536640683995532541972950869474990169641486972845326752043464785799715230109085141102500019426214110895263990334574756432246911112614674086441129468778263963026314271476893754810631053910643729381116961347497772117412172966862956847770318032503208990267076040669940949876179149591995363586933305395064464544299919061400231144155099608371503049779939088866697150507034997390022879055982946055324939654962311958098882072020668842564616942566912396798746400528567978657304016481749634143932838247700254698164211216019581044411829068518917201163178832192998022344947138589679072547582599126831001764637112920514754535279433629018998692227653429918109672617877436775292031292501656783625340463647870838482911420765404347546743261909234378862675114521021552926805202525433987892980946231294911055407154038882915345154872690927093627033887173540452144955129318714003424976305819020641494412626751388778370162365083592444972948371148039737640257185894773288553073983181446977087094503766128312378817037606988720193367594661493103310170440503684290048405562691198771030188307487260480506379503522037520491299942823474826550832156617026487311760374252360655844810500176811119432097119806975884694770887986406943132978832948529131524487440950341964957115395870973571142593874092045036279952461960377743381815507589932747195198676715416249771613500412803449700093103474330042831897204631626626805712976236082304479646879074252353953785763587698899253117274316014046483572507347059941091083906953864555354290070340600913631634472530810860123212091661929612141776594110846308218046256979364055755386422016266752196554617395341893580614979259236646529893943788858601420634760105980164026418820408141079583679959480884768300879245097422597451005062883574945454263582924411864466917941067893425475450847062331212041700585637536070398081614932056284098150497977303807776482264939643235328302456297880379993302725788555726998759264411192813917072875924069922039133346029562430838324538975183995033688852986833247913507855992065855997269118582758043006810057980780167091961970979731923721609762042208682007352476340915105989880432922959186367019382500161092115039022356203852347854657907713566218023598586224862316453228293683749555500287845053430536742884865621414806956170765802051866836538242945732749192623467067774317691959301391385941951596641110779147240599808910292927481995408127419260416450467398293280935730105999011128579825174177521378786301203074642442060075363633165421825480510646146430576240053498544747346196406838523522361324463775642002687609909487546133653700097219998411785176657718354137774872311157266320047619766623694973510714734261152056246280358762571131354414831863793985648164490761965945024055963625272068486787113083923097877626300051597436421955431847676831613195809518498619302246054069369869604888805141056171256339017490941222562670466551079790366194864357015910374547197278751363536168453389658305017393206535952428304418149454622538597312701690613713861366248053644840391189682629320969334585010894380301433585809836098217031510780888571800889483491946293228763159510795972696181219328868047383688044801790866937514486396331680584059256616105431638423068649700340820615226894985927234425178531453916274371098005044480622229375700417373070694509880477679596707119031545657295075552788480742751213258258160963458968690608770332428807444270653542345232452958225650649895046633482396516679143738783104383797087051412906209481643696371579154272438300575137732230062528006339773313286597193523715211166895805247874768022505048912169133828269853015149670783264000538789542220836579735363555861528318968091284364710524242271973644647027857957631248110521823109454680079787239783067170073326917379462701848699524006319697139405664912482159099046863537063975053482952660074689270895671022421670493470822986224392360097240832851713559690181391677253343194862537436560045036874176881533446343176589105439263525420657494100809930989360752415365184977190888645840506132583779255316904179468729605979537276192039492230934012932786069612582742096537012248017763389446935871607468423023332318495984895344587469630424902278730622299504751988869661197698884056628406609995518846879892609760563399424977896871674325172793818793929546894375949950088868068282604776641306382272564811164705364259144488500684396649108626847653538823719883854633452296875147218136711682160931990343013633356094047477543346901360012970495316470191543200330171759918735877148835342275308902190991122664948073705971198700267765728295700075414183988430608869249811550608395514891196265396820831630869755129892230436228659842141103950834691122040209105856636945234420318105005820455774566158500337273993209351453010467065587723280904891231276028459226972042240536074892683084108123999758115411876541898312093684770168767961624043334229973766062627901029309370958168520783813134412758194201576643192527437425359067793766920692549040443465017668723542477797420068953552142729739757622764763236275140407348394362148524807149249530391726906812565307902280797360352941705471684964724209953493987637370604145095205401945003416201333435483311933145748111763444183693898434920053657808553871942551777597854051213571016973078621765731358851243664451815033104847171690024424117077922497725559267539252139963131133726449768224240369394386674911312118928949563677896275131994776636565599299610178870085952031986435139061094653997286865364770086918222140584598303685302512751426690571214790858111434417750262864328609097966403236456334979806664799539257980852863582478647723448118437732950362541369839135271337788928984618162468194947159542589935751313536329258910305471050202573497418903831049987527605513523788551969768497907801600415854507536700423454011162799912526438392569293066518717833368879851643878477011800276296899539509535338015278056356244163371230732826471729429504140926340600116946608486573500870622489610210499866008827200348257005324794658718299020954992984856062352707694789344782570097591830380663905677419205727047570908288434134737531483345968597427758024323381078948897539207856396458678027526936071299468751994990424427029743059187430377206726627900355270609464389814080565370499158902700235608867039275980164374101339006809407850891904038539895350321714789854953750713982169864724560375085728778246705590992228183385628199867765157716541434952013726059635651471984049357638900070494709004172149999927886127074264915774662658113118860885911605952511462455572341276468996619901899919406715043480716018769809420513628899735542000254836505481610251260415838391014144820949892818879673566824528614865361430161238583305629898049494660296153310003020446504306089937346907291403679920012519184456992000243559508060581344958118497602405581529929881222441000403964532379008287238407381678033805038093978358516033312185360158703798953731806649235635491695267042815627528824538797941961966141318115248972754787441128109190248048304880579854151739080024747272480668534411087431853183638085668249909415617003696911433528632539673470369236269976378188842096139112598043926133998783649424395550509725828533953284712456449214573694143569802089480974494255951749693327377661221960009471580583445343772981646569347288787352733481239238387718339295022903172514490220421091958503577120572094432417225740822178238940867715142875107999126997954818334141933773481720525152304415961350206820560049114444809796563198994334710362665551371924572568580988637852864819529375854437384028572957741215845630856521963457801834159329125289129352989578373450332861217577597379364763282065172524689938462869237968495410786482739299880511182665845740132309942522495840085135276404729598341548687381956286614491836262460555037993963036026695425875354314266484040932092072394346939928778161367036694600539630434652461173514045149018233447140204970383110806463624313106168715370457783642501730985898431897349142742053004244383727176436166009679116070099254481200853115870435487892275818974398907269751808232208271488786032130429868243196050443411289448798730399995437845181079510128778776152755158174231861707087319749546659619331726078243741224357199023886631998147098996599641482437511258271028964641664113544118198071999802568625628011412136475002048395352980496367893347481797912658516247875708041796852989335842115585240087022218246046981928250709080716340712749543415523630110700617760594905232182017702328813086356603482818253103378125134836936569009349213053037606570094902234987949139031251275893240488290066248893340144194286977032978204296815195163862282782601739634744272462390573331992812845016897063660591886925341569679583750562757557079926877475618807787992597406182067199763002490895006354986285677761866374545507221008543823612151697979814773471570000289511103743608444800727619422459959216745278231220812768533417672655892626245982797357299968807329534843382040524000605577506235782740672385874694131152449698228559265321147758445320577651808866471131189298559945304535963414137036169863513839731292920146333180654805516736311023159821280818899365264015922018899309523925891930416141798546189295338288561310430309291203975969983694020106670229289622454039122631496854117894849185987570704675534891494609926368147439198561107733883447279764683507304886205783004391677574670632698900614476478064702879985407760419032928445323907352748284982613117753172758808056221159720358572275351629675146695278722960792326389102959930635728552307065798972504775112465535766253860830858976022908521941027539944879529602018154234540044472764273004199461303254944336123497960857252144327577386072922802943045480026455972134438614672338092331606193024823910754772858244628968129413117253340405222777019484941099292904680516148601110533572229383457825575658775194460527683980851454135189497436143079805475982582970379853043293359647744880682784960798988306057815700816802629930850835594903393301621595753440544434421030339014166597308645374919803301994936606545292231664948272331698060936910297977955121463627306056881224340596624004181944553666692775118071798931157709137257526639744414740693339108161868838776406917629858876754978904333530668527635557670557819344160651293194526054976950429153564406169059219235703012790929742603611408382926506476110391869414810134754040741598893253846152909752250900186632664879063488489022551823229825691623144914447369294723403393946043927604446922565408982464929489305890716211640691534070575939526587269528526583396606857493444018301336956423494080256037972154565168811740208176236465561154239178840872496634591493612591376173994400680695762609666713613762853012151706468041266475027328490322278975222043902262865173361341464256617552832587110704545615826962111040850486245866948539384998871464508248478291381012345476258103995336793957562856900795575235098425855399719642617600453499358675126793420084743242565490607489966385032781622462303873025328106248569644518550420175687414176545159696486565464901894325724046649188946502986495389691415064991097525137995309342837636998824652689457313685380367851330893824295930299756619078491130577309168677259767366840693245161809930083324763020088990588215629119014119156118005622835606042056651523932470333289643209145886303821429752691431195744639680463160956460628333878836893201386229029989893757697785277705255053927830489975997281888784318999694119407936308010102839691998680349704469143900475826440817560269486068815640777116183081872727753077456966167516483616367304734399877520909046227982841420430583687347491951873474738746384926051788014913842960255511007065724309843682219574872492468662815250975544652545588212246359551961695534457396401566047773297108299220986482233557588150147800190410903410387640629705459479423598097499272852121534303825013604888281192903438413658049056182823055117577096656225652969983166104885388365950836203651896058474138137297431513684673076581761975645023049726719842819423230286584144524062714992255748441052041402079468350869884948510571157502192899799438303658681350324872190464827237697535552175073671388843774636473759849898164702459731123911521278997530429135805025835963762501344956588611514754673650386888142757720013906109102050295343765380112603516882624555934163157296010211490798647611860078910289384227648941866738144173328449677379562169572409693430757494720494844742272911205264747196799790860814822208090725824445728141921030311014475133695566552102420697608249651237775550271703283674205568443365381643101136842393497845595442851450488855048275130151896828620261686311959656933297492826004953188572816269228270849903865636123129656287022943119024734454926891213080682594103925386263932156854342741031308833181156652373048476827206973153482581914920136243266124369435649255856432837341816339615002782207361134368489246078999166581229974053119666838199048387678986766901992366514854693189246944401962129962395628226237039218097381846496345601513986769934661634144462610326174638801067138939024829378125781115806995580310468277460573075301017064748319066008868966021966738242255660277621463137510780202353749367164744010463788012050380522843013096572767313118843337522086787374678258012494319515972973914471352117258463540320001956850574210739322451017987338943743899440721279309068007729728585930605522847581392487511654582474223445043395258984253927194600136588571644588549854414266812813219010076449879450828694759136527028232131693478468320633746650360230697372797691244866768395659194147339245368223416105484572534756701466158478263120793484784184125610821461947880340489404497898734174635964540420847518667064605325785360173224815285327039582525838674476867463946794915663252347993025960677482763267942383419286246292317274493291088416369217580447768670544649395533571354413280869229386745570072605673138715771972596636171397593417303429426874400434092299955338351878075089567535873579607548490237118203279531205306948603784138841657798994906283782397228083409600920738934084908214950691593182304208402941599525406209428871163052280508689972649773503365893059154436686846544700147979167663703107661850039411718334902110894243075161164480864888769311595411052560662843105191846981494747145385677249274477716604153236856740785843420617728934067097373303450010014911556024106638883138737558982871278153550661626217152990750955196595243117401107221001064193965104984173996132484332179481053138130879559871020676532818867706263168176554460948064547271045900238867560125193452912091287454998600316689158707460424385033620474642230526462643208486180909806506758693074904343155540201827905827626033976863356929266694213218584112649146541238057499029400374659243555444104510187163244265038452008561770405694727035030485027543711827383393745755084708308442526635713325071842750907472426520092795996178178906655744319855325434303815823184188629558449722069976215821265016978405637518696884402357245945028696379165569097061547956283334469672528715159032047980416006707691812809329473257059632288351647953777420662414405077382000689584009369411963673160492788766554369150843978998843334966387900767256403019059424579515784319222703713165791293410204580853184028126739824206650253720980199929886727921811867606397013739515998426650795744641600193782608494392057792207311982067473012124543287160615801910857888948008234849896531991986273934022456097292009776405391484055381203944570129140916071934924017784481923334623116919397325588676458073858447903434053853386543184706908208938339159267357187117929769724996097959954703084521140375016822804892437466565933080052763645646888485722980266054285421087307044659323648371257555458138053483133060659944022382695653637668015775690283749598900258002437138629618160827755518447468741359583990181440976541616226598849536541501522929911193397990359258742387182549552576909224888397678521896644476912759047204293186256231449345920070010064529631874610311305650691771879344715426624130170845117602453423875658116906104631242949458986212521245852313886699905316358454836015398210521659861407549834578509953716924427617374849770698320837011104033143564293066156899960068072004852600757946852419467587531381048798006182489423825165745369024006252106971395643652853388037329856795419764228657020274543860578006293755934525235540679698153283823790589867356447126504092432769174750421110301181088471480784776741446021921425132148753378317235781410496444448617312788800140844591749086395819950064953464633432415740147497012750100216119098848280994332779374814168472993378517296298445391208744724806449679710248210980318183085573222068322879764711782984536626988067746945202023003168496586404299901863100096010530906165824479435338456292937686508626840853648393242787798451796284190692732404709865427785024104512589403570695074411528859338433390926545997232062946541665300317439638644710206073778057917805940626816929940003842350102797458403173121922578298357258997614678954994645144731949411738897879248656199047959620318444000853539812474219306474893740411616110207565129059902697639069925428986570776904627594064286640176261568193484935466200593751223023782117929263695509166869267569730589203031556400397131994708118737506801681241244437435214503605777481363124770528256590838759419053515501119458143020814419227601578443360064489587819009094676994178700808194356663404986197887034013972431901779888744408761136070310714465109028008578367745239532611593650299454060740254127768523800590194849659444469040627924241898219465683960454463740286845766276514470038157753348908524588668153075947182521575700437126696066707391507486270842097194314196756074425662767488150284041614535765917196644900433679675778548016909867628851469303825352882286872135526198359467740436231002490816827716766153248403857376922136619667121425164799704969300227389635796238650664487443525881194587006692616425125997803076331984859725924679668289551939431315261702395513822023109820209002442590089862619690424284899185364449139801001194636203106833483202837042513976367558702240918453682581251292303168579389051997073442734111021887839987791841709252770032997517293595229342329946534288856783644522781425577886827604729363775415442253637242989843034662096560217550253890732787936883134791985864286333251020889215642148935855054571503356359659285174943846568953114675116347872113689628691037886365388157652502906297804495065336537713734253552429871894581973389745247536992085547355028997670357585777966317185334052412770943219489219598492174577396969123364041332313259838683392849562780769043784942084875378888874324617118494681126651121269976358048382210201613821193830452747557596354931526871069089266770988463710666170178590277121439580801961555878512837225343550300063747295748307992118917606839611133791002615175451384510193081171229460017973526403106400518865395585231373348985325212114070573194224735518729975268537450883934383924998319403203480132953504793203638129346004697526752232172208910093758256398651677469205872886152135912438279460145497538286977295654222232647226448536340231125163071658102705887057107062395251286063800379313262984267720101169130663047921885623234907155449415325468735258347814767181390276931143103596936755292157535984699903011819415188278430308009553080800398403989130250169392363120224154679980263132727865395517201089811460813830502617995850473759900467568787467608370591781238882959373534042184181989361522577777420521380172028582704737510423183831799523118043114367252326283484077750577024529227658227005544108047748489410142735936917388627689665753039654347429965606203083333091298484363726566613934813808325571626013263853603403038725986543566526624904815624334236299834038713874551816826386589775704319684971879465199726971457311487149344973665241482137823489101655148802474416993509407798517837438808157090191445946225453040234405727357946741438799888977995645109893277009872227718375486416377045191731847118631145206668256524332345923246750776130729417463093968880206122396447287730870409833465859912557139934793441654805583354183480156561160534816408628339819717080657654169860834693992603273275870906570485497466206810696189230109421771598740332812035580449570365966673103959766214913561656488129898606405140981222293178310872164924185227191098100855097015871174397564055189275435958584165391269567354747527227972834178616422485595414771158809124158957015778110782862792804137231000720651425070480948562531223302068202735426598020691303807270882898227246879101508487594139495846773403739380651516056908141325526688325185731463604646692725819712980826905636520905373535315552322375441218454111273355389593130371731243376176911197518914871847153713875814569230469665158720404842684908715513590085820894688306146967904771160017340918638848610796740812780929238789528252719566197037727598749210884409184161051650440720557952488431801458764613700655352772999832999448531991752630096473895172076280455525314972490636429483252212688186129627580676878388176378973542525008248550420042499215247424079493367729353097925970974908377061053119032063569119475275607149489485189374166873680577990491181687051988417102953555595482496464001516119908891914832358699241530587233951445247284871724069963339444420431236755141909648230142345103023654409769412926569146662279212242733957288454999229019986361893874499923822992874952913541167349884134640546826077096728984702939448038366992654581004131422632083425415751063685454034012396013599110906923055646564747978159840629521271151643397797426382947457161310955335840765919631167147679367369114054957165804075869103821236651823157468122728793424550975144241181195163310358265745545938965380076696649871920909270873999581284805650663823403745650402823176821413348367386861752664558615612975467966480875182166653320374192147655506162912618535171660708357468797095239024722087173375853937567280201369598727050116554302285281233576255628885312401103850573663951606851018908372040567722444388180955195595676891157702691161268895782808380464328917836092809458680325835106040779334371965052041561916880816660041541177791529856915792639610519957370585431106717183933949105141311777736664792677553142763110194575715643656279073801287627574206473114294117229508720211188458677430312598282475123586388214171286098778417036460626603862323264139319447683229736575711322337513775311226944605814267079446342019510709767693129610170645982982651206983044204671839071644199850457209741688232756151375213792691728661339746753989817691576287377362207475326368729866018542779004433134211316106700021519803248531796068322348948451868286789668242408961839028970052075071121548557364289554978199328616110560117447516920535127503720287384769907363196582889911626367098647176867150635520391722942588006532587619925589148115180102839112667897238614779350442263574920520819444224843513497279273375751210734099425236924320011128214505476962456421443863645673946106446488237104978766675382993077798122398734249027174691358531667088201134841829714543898546367661597874127195656699356859501168736426999832238373468054736399975333425825110279142029836231825373375341479469470410404464878248648719894015159234742318641102923077647130628236405417196478376548004929053536651468327168160387356602467695179985445112254160564847501544128366563583557451103084183031304029130666854623281236302226219130045394295614700829363406299719457258979465606974057583192647790016777024188819206190301369199793443675507212621470088198328260720521425336418791517718733828395030046837221467407581722344370309876652732205969853302770804511990887507275393419539207557875780502917737667761908124150647377518219240363600814816453777446966855321072324911452776133727426640888257237264374836610634049009938214320137454272662892718573220398669346338596196454861055854433361343972265394217831689232701373216588348143139074464438692822755881573939755695803198675742020989540053624605614403865424058876865169820327808304857969296740659201025649009316952333710838555031006638647853261463414764279579471613363217988560313349889608933324045992866246009776727949509747325621771721233618078209519760661032357341358533491243490224684174298842508012870279455204642852910845150511175925047689095766509139580278302578163476731006415298649411806255178111926674992966938768840871661785388973665918067697870661721898533679942442851354926309192829715339885539584453425233413492835424311445330241500421508991235850821212041225346150307395191058533088043068440477634884700168075410199135208716220237734994175298383554489004303668164066099445922565957381898853092421204728948220653690641456526065349169142935695071533460740847673722797780286578752769787341176710423306167082080401469681137665505099280996073525870281449629351972966464742621608128270594456583484769435482648758525880113271849807105827182712313772833084188637161667838761795678878881969332516631280620631401874085998374196645295968610782005454624294064054008364427922410459453595448247648374714666864151469597258114108127364170477785701020048093038643887932629149855101012915524967218925652059174860806361782425711333536226883534191643466154900462055300711086498631734731966870224152338811298796478367388105649138226866942741825154712213720076152286842347391459732290989609802221072106436677853118659776353134776324414508331023810534444730011931234786520396820356808129683370665148714538853426894433044817494640567665730183628132551546936852605138123689746602096524479430831707447285101069634676572477821171991890205693829508066753058215234805703586847233408337836720743135569774207722609555403369483254606895591887251966455317949798138613337532872397411655391879567576647323353024065555868625406921732212184038184695699840460499509940274801429737979706726494260432503967489590774403365089076826199810678819209791209447348183934094683117347034279637541819448222514120966147947145559175110518691488524970649463677536088783641722350848704424733057779812715423281784606458422143572428692302179463113521802368553188775714087708461403415452916741381097258178566582684006676670872617329787336243883140647307908122936143833279349375377974910595478154061385927312922129766947294901594784676056404049409747168310996153826271575595489582082666138704278696630246079832940408855163327888211100102743150812704437982459844846016167816896324591889219359048002858045048898540936177130248289642187805428471494126345458251074868985504203319524017907255959895437388742251337520943531595066295606416473557047834020936481187133927710576523800240427974844103226345572667381264465328526318164097607760300899162979972779414206743343089325165414479853366411074301402313312436463740529444136593529737977095516480989155085153594981772810360834115327013744699455028752324134209889166820705265443955735528917856140450824672684852568624218815489597955893084460179300709694225192846610499666905216271662991411270351343019522864248330377983978281430046402437978948289180179571224023189302501951397641451808438032144534143258893187760183886937221603723875705227396708135350580751157052534056145353259197387463863207841140398359948951411395462568435757219930877812141336260908989093374484133463120332765064689664198027529780248432874900176140351432906328082673897410423834659684634489786185957186704613506000232680469246918204084693047806017978665860409213842033955205401978125594146183466882774838292218239968257039192187392227034077932051636642175990814448947922672181747431165309913163610966558699261358980638827148646611478604811527579909383758031865153787479426586034095145674538870560489272452319961132644790383180763877998837567753947443930901223129587437218000794358214390206284092177959838180059437890598607086563755954362567104175131456173860291472231306865073831031050785555420510041184504281478027714772295193896796426163622983390288784911673436578566499333250956123699307567404741512888436259697001991468303245760880969299345413660604579617775195690929308686903209978398776758677349480150115618420119123545162517817132004505692617505101806752703695920925781727998332826482653652431568313113329360581113472303362777754504763263725271928942341416962257708192189626621711015161274727693603979550363491068599042563238049096031166609308543194205613184454262162508513155896600303663840919339742253534722543598525017400481084887797752805981424432070822212781313151267814040239167071196527692678238704268225689527832352156900980146863417828428820131605847099383150982457160162399426838085846037990364462506389052824031741137123434353646913985570752604154659515738202833300155948668298764603297394501205864136142556049357243849549498375332887952770479905180415362207261472406168808159312008459896662063181037856418341746099086842844258188884956377153356533978056507133948102835713743333721508366071752804842435851690005095761117294753149187592583201745561551647185785687496546148145703356323543994662078580702724446712954010557563776409539774499840728857414107549658915342446678634425473578111514188632976052187402393795631821001937294433949563356511588528467936217554941423388222402762748670162643138313127689534343723166701548345916324652758143020908103535428403622834279107230702667468196772068981024575179238685662125473203599084738466223836171435945375065649816118574741831538788510245566618153669788455381703179702370133452597864973770130753812277758119802961779163221812870804400211795017196863867619824740901442767979292957912131324368602901252628006389661299511107816121332421154212975572632419003753706460659203476624477929537524928323210928835436459074854436719512976405677916305308707629348857652082368224231210481181247412157311399396738976702403948195944229278336655046378649974197178205076466934185885000724503715216764412433848334589587212320433438132643231493697221445104402721069946772766220332498130415240948303128741965906641724666237586651622840753244976462660775428329714540302736280228190570351380756788727777993330448319347527183664231729913276774377409331424385611768755845060358047514424530497972324033870735444175990276339576869485439441044410260525027995247620361009546251771759341731438534934666808798921580679185495282968595075763543017285650426851191963240446639731880406443289949819368957882192160032431960059733961657545921804060474820878912752136373736086417448977804645504363022964116305790899029736187373167133935948591290965197860309047403890840048745511399069118370634803476694761589435964821198335535370047986735403396306739565854219991662590001029999617324197976799124567419981896971726545790677843365802833395174120334892168319922757213115664316942986360050013231411375458439676528650140062565974732663548253067438054417564508124384045418590009571278552353892320303421439352740687128158349349749595515281040714876019239666229575235649031965552349504431462941398993035551173503147948709599952159497415929608647699982303928017685191697227294432666144512619612537420060538599792112025181981351098849428973023647804974041459519390882271667809231649688700969915285548058342309148438844448919681243970311831780706160542099357303844938705916600136121457253665523984808459480486626570640089610465242730271584857200297426341874007775535075652845021033362607637168845788552065164683956151143096544760532557198958122029793069033600684332625357457039170556885552919212249344370523396048996516067722054074899744397927578937537133324230525306826975687591839095548574505684116258642162510168220504603931557176766328247724463043453905594048849967073587070930970934190608143113104939602481010327659628370233407014252339900479787160350370259066420798807334910868900127713723802954259747624690996092044232562430646009450315512905995765572656845494485719625110667942954744785306830223011017339233787266264212092968092965890958482233827377646124390071410499715995901328997238628995373821635844881062994551265987310561242501294808372774940816225833798448032092231506902170672902806613978981471215943872322161010454589337067100575846994229482326308040322087120219979258886851671754175820919892304407054805493426778726536042677217466577375081368892222680146600514720201463382058073655865555455811325529791936389931297287209845826798344062857355917614760412686433783220079916324260592451718254491531099132558326885990590626235321152777954943328182537520679461598549558941935295749902221911097519937524280961326735189946606384274594715805709244691302973320950367003341756600318624369299268639510624285041402721870829992491794711131113793454890589981361188282878470364964248777144747582599046504853933091499099279815569360837931736512024760650517579684872121709024055946791817091861548078901246533243469786181925374203257377171740927479707162361902214659306387551435398935093973920458364704860070379540110422219087559150924534293923161786141468722308868833874153149757713977124963085781620937429026787895869930718625225953807624771197582841230057703337606677236123320902297257361901595552652427794762448002554279091698163081769164612174585201136990400378419205214521537088888191354324781155354955166350425105076688811116084507121196220118518540865543986359534444984729741008951044973191392505491787956036198874587200983425998854010948481681637562227915745176559646817930251974050036439771708796725791995194183110886827185028878520504976246929276649695538827303652038138298763487064645072588241183759120215795490966967521133189969937319212010257467990127812278754322510954309135518975119438340302893264590094457614871505569777504534295661816460672739997387493238133027932658849071691949148078964721916905763762502251613243105755424510769862114813858465073270395236025530295647024345711035867142591039591810144703365317971888248280483379273892841864858192760182000340540650943496795304727015076628349520289136899707001762176921458261620099370995052739332704716315194165952754533590407441832511410415416227615073963357415130303534996999245284000477224110954832956364820938332940007582527856759357112909252470509555877509837501287851291975825536365560143071091390323097102306104337404016508252613289375201888014396667111624695283723721351911951102681601754372464093803361032382485119757079925315119736304527190400173274691987822011882557517059013665167870590853248580168774198277671192811084532097569880675597524239251448011569756244857299768095946771472987431429180504344600063861225797740169335199771777671759602027042204853173856581413762577708150475759282323319353474387981686577251259940250774673869724650577112571546987494491482756201980088985850000478209849204213393399474215162652316061766959536458648863940241410901360361994819097024231658209528728955493557241990672784362886972252198053695637687355249444055580454680929758401833314431843304793600915560120568769261015986445133980552486862671759151098478309329273635564092643380181899756139749391264644814730295666442652206393863125247155332564348856679962240326131956639611266990785007660394323551619586121032068754240426181280754952029203694743682049809633980663689661008386403962192849059304192384613055942115850793700279621104784654288777843698555567101922637714500399467576358555101242029390233584274888472399511160857190633768787433938660445914981104210410031363435778105881406071289688851788706005615182310578863178992190404396792646378386786929556210819808807954407246343878623487826194034990458362959410811654246845792127336995733208561825432122926275684125175231644064354720315654873160973668178542942150847052737911913926427392363035945818288644184047559172639650358826174762547929720357749943916026830037228602578353286204015343204098133277122412293414826445210748157236296595040309804109981024722753539330938314584566092698060638655562962191232257414431918266805413833292115404592378005980290405760060780412040306029243733663945723618236627016772220974806911911886481607411315725620974152560253234103798874447860870323018019867228633045453053227763049795406878006950977243340231967864217018107319546380092952856974919507634450282886048900803641233234740926289242284346723477214592779730015164945767001254275844514926591306911943210417285048150626810199770706275369123692350117401656833896518129221293979297007467054502865087793479237582744618114486231640847070892572300204431416278374136096191972803359900609900016091196288866384483255548315603852756670093519106221262472937256109738105370802503440317544518608667847101069004274798695267666200302125560411081141204386168460687854137688122701862541860441206431087148450571967808654898694310386868206907902146499932661358726542012212208198618990272341759418169212747693629034018101682305678367011106957205939314789205577160856603013057236050908015829010717527315104283015557963576826549574047438839294395136917043375346633416522395595669774717533343220213882170555737521593552989870544835963803376411967366479682410059168754644958014114291635301869420171865667325585416424858099170839246937854072993687859875677282323535967892580515445587856825906153083071205591749738381141982479953107830396396052906249261001810849117431403535951100713746164627906131065643615647960484775296033684785411951197474452292650515941898735616231301283720941569217694651423880688759912536346407661071192368170541698538010581388209423645175445684537177466084845315593101295308798572140068483208367653265152594411241196941642193915779633381762164368795683252603169740701872399967598978959311786994640583718880584557632240607681248575822714599418689839482516378824752258680092449678880110885305540972033211580408284030409354664400513713561024061885998261385376632510806627319498520805382634695579796457242613448797044652846642013462522516323002411941929811480936639229022698337596938864876738314572781455767424428873317516402506446173928526363627463418327429540934589186102292263427981264688010660371301761208306596803286491836884509601861523694564246484759619597476700287944967383566025205649520616906121350581220490395170055260391699885887029380478333665039611100353169445388321861160276944422614978247817761066837133250487434384868598416115371073227798461276123788571960052517404107948606738024712578733348778443942641958362421507961002851130649689507683880688082665142135612040319254866363049477476608212721479841825618403559423345385778114082759634437724312206484629390407558581506967926569301252284800287919684693018884425732087454989477390570020985876291570188175671159392638022297097945695456515318637615527013490626564743026847165831607711216847814596792783108687666820790118358318060912803917086259037979932899896074251843474011190267357897332044453368996180908604531100568323184777263457330353938621006605813898922743264621220390131717442293206824924597611189239253995137063076806827502444482275548443425923805931303653053948364057904464962440006467987466648724037257869498992562757450418699760543804910437434957312771643853404262798882579426604933698672540873950961759347737333855551192328744223001086377717827755312003186895185162301814918124710105357662874056348456383600770470522237243423821307649291173916958500489974640375794688944317873031421145725982152979733244355447064146839089077997447572157128954399380075849550643567181616331864355250365443268152654550128977269615729802824411221009066476688051232766377437691695086852798093722873690152432503794995198684321311761457911864551502983111722478611982851080724479778226208085332127350495765402676456059441581502482079632583248338839357191364785313734983741423372022407642732816809543712171977468135196800289710641518229775173186917394689250245974316519366924082108442455862249464785477278005534657280259673290304657821591609547881387027694201256643924030467396414687001660891018985241297051573671391048308454901078503926710561014330254355568032322140037089566971503907016091614704321737267717447987711657388172464948247883588032802929105261639218264841971665129499941153973432076715070450738657978274728452072319582630185798441280040317547531465072520842683889953146384160009955553933375406133046933863334461097245428368837856239666982632079034721107889220077382006547310970684506395102328350229054843889344949542541511360942393861293316399510843683263739987170421640230656837708936952150256779770413577603800132850653135894439421095138428389946993997273079673656165530270899693773961331177091871084666396847705992852527139510912179656587544493602151634532741848742043766255305942873241376271255317956272743670473905335788417876307468276901029767966788284366111693435799080493200872528211461489216321352049887010008863781478826233625301700880047232332371460170969355475060140988296630274725132190918453146808276624004715223172886814592007298053837260208304196449380118653821252573981976281016820532548008859080673402389533790776019112850765550908494270614441608631625936199211714489181637927962925977863402642350406667337255682372660918301430689343234574844662837311067889588018961223804416456754201261510972340973692102847495527482150887687138940102152647888227924038406659087284146989887644593963376501855956601106458377303248752756274918682889574401805233782671967202773714811864000137755857702796403725574834174716457352204701056032231607742264455830220703630427483278376652155833390655904046027336260460538580440985671638086685236701327675844289497611541830336173734965757618528755006301473613800443159527518463910848361957466020319536564532498952560132277888382152006214729147266253721224471135067247442857634623027908717715747778506348456570059062927079318101608056184455171896771283300741206574920788617236812220570264679482798343473178003240904346967129324583512542873839142668876732707054220762838722956035908553932909317755978622383078044750828516231666070388440058361894331001911672098345316935197377497423105580097062564905040090951902269447885770249447996910429043856353534721017600353578396171842423989432468778365001042441854490325397988465054831458491357651845501121555336712755533418889850197464961110519484969524926327020687479405022011303412825968259588344610264210880851498005844976368449930371478949810417458790705121564103055797950974147547681658014989795077144539028974469709043734648095629121217179657848116117224280869901450530692869558199803395568106394709873758960648368556354479857326821143872931074147242837996415585294540525223079123707852613143569827128433429712077520365589559590795853611526846005710142754794639689856780766376614771717794689806115699932143383160389566086580043941822625852071419591170387493981198460927520532684023468209816616039421455200155463230509957123106210462892753905833944659593954649606200351458728720039331959620343387618673483763492252444866253754906278676550161421119384016527007929285136485292225044308971421175968741280631749822505098301530846795017387222093595989156575938705765065595981866315674724462060111990523792175453082453392850700366493675903025773272919140865427197178042447072870193908166566232653169497176601102459989524720721449762456790704654746578202253143649889937083263472170065126554615481054792107807977744057101531976784920131454390455125811363414953796918328929231956265274832169697207350351953373804112954485830248064657181409369390862382650810378314174712445104543436806830197983193750974957041860313339960673106361552757113778664504365264705636454462510454938301664879101556898064312017608859561890545373230991618372923539808029125714560773394213257249620294589566342488575142063023296838903813941643445855678140860278512757692617270482602059402423593395629534652624309326876853828300930964426254269537582999944244612885638675918787328733749943024537533728962253372206616787853862678782842558383784992525156789117896067218818366080419859019059941889333098403174526259372589235771819081752147694304314750204485272635728100614076675141404287820613732715400549551847732716642632352763273977265398309637150655747438818351926684979333455319198666779551546598403150436481583973665991424856079222797791653129682067956024760050680661925931488323773091200671081864541854747297490789163680130690734465802310074657735354135711678626426690648415515624093246483409208068710627062772516875918513945921176176196933037599855236113523839881635184732122461932842692063611074487567706110014002008932343993829453660272771005787904490499794591477766350137134225053679083381581195327983300832614733519472518097961605090773977658643543785756385615586604222643245400017658318523716775583684204441270336552587928888905623809943405062587207034311443626918465149905227037263608376408062390935445788191551954387976173350506447971050776354534347538913080076053537010515136612701354770700645527639043041738920217542832755475157971186602194015986733718506966739480569085134416665557513516021526089000038168723949006468549304589261852933339198889927485932049972774280148764821841873105369875552183347124543010444116808955955385123247174799941872033122583236030295534693465584665833966544426278045229043231756744032624173074430091269194599158755580360801118813839974139469193324554810438246959650912909278597032034843255137636784218945009540148110763570172020369691675243346646304219220029122815166979248458009101258971239365515973529578198539097692865028471654871883402524917593749600766607676070621163169044435058287195449106036884982116271634193484993343730879431845273512794363806676836380169203090085278048443911351467991580658603307151708710148559403466272838111345347692444267970570363541325118166357302995577190166605346089337804635027608219930480080740330987251041950088490569091903610896807402473610398114813752663428865406223555046324657704411388217999755506679069354010014535582078952820248871338048735985159350891453146280648846175084162402611185595023280446776939408358895430024306302612068642726745710597304762380765360722882343553615008465663732655207996109764470408453211810396339629008781689467011767072753459961573480523745787166937035179023175596169525622084294780347630799921531373794438893213445679487543609107492388198369263699663573891666725142006914883722272476194614117724319264454025749161282364727818613875126767515333391677687278820181778790057059912457212048520149893099023116679295420581127517084860575589131649198704507266999596065959725011465605522690579358668747992703040068550027851260993787651224862955194540970337843712801932944147668357909949079475711753320731633021070414935556140074495583648108996483452023644209378439733064346191060471553429624137483752763426484377962787886993449528450547301886774722591463866354806685089702990557545179511389084320637510505765686355048174945098568056639488027884016582467832926248440710786787311212159225230939999316075560216425901277899661256520222368314493330994778480584055314295091545134669737443809895354701002525891339873046944958983292858410709154117446483023633497299127694131573341694835549903848195759168286170487671596836962507842135126059183158261637206094361448445515770568004198090171207830592158973161636291521362993441525968861935304002721483531174055272859533158212810080975357465919187482029676536981364030921188797584884412295980666469444192893362024808638054632161192051090279431052792061357755172802832762708434538355603713832362381349022375377728325786255642049248539044048526273676154882122100559151870194183328736657171760630853853629822511734321059191484293217747898138026167446462306732802211232131364903077365854930613402566943382172011984291392975202836553916760335642537778955746339718147252250246596235694181872290901078713364047977377956402040009103251539135507826256713343712309149494678617213534825495759410299274457107170533306972059590235353922931757290416605945167648718195350317248224752545769429545912503423638374963189165022640089196308174842764291880516415059365491636618582562513604044688299832428099811068399089764762331910572003881520236456843739713591203655793313270519299053492774081287410465888503097721843248554587531404733326212965065415318658329851287737598061744932960059847593431042883983559319146357977528044056693027498955643036333202381330703567886667327304417581485405810461613657857474721536328827222575108752842050318204319661178318622062475991707012905915834703176245736910445248356600198668591398430539854218571520814191206875219242346496414655805638531931621772628872633816742847455871641873419600602568408063722116127596759918200309250513893059475868090539296984756369719199693178367668471231053289841552341096664519802322950226266810012144156225524846355388946861398467757259733970780800185969625023404386009715094627504458418156957465576927597588188815597288958283849036225936802754741939820331438816441763556907758472889083056779495879330835662746084597269404328210170849580409402030006909894931870070310673375406804429164869430825888057940900657412091306124874805177541107699247008060855090532390317369001063750445381509034116726673116224761796526552574258963745681273784170661077071898726569812577735864898162278408828875372614260720857361412971233205785817514270540336023930265099502463191786808814981166702355395924186395096417204452156685048811011645132406869707469733309214061940133094066088247360144491144051256143140105536172806208350396017320595527040895337933290299728851921217724304332058495684280175635192350353524105794024413276291480396617031729268822874918757957769437872512732095658907817970137775400437047536584186353734502310653698089866679624044684982089573691251380159235372171840957663007844163545066671622545547908186852110227663036569723415849659707347466413552981002727204330864518925709917276357044891274027904644801910301065629654968438162020266748504701044387735074530023949153820385645188203986834389844844477678802501442852083368180644100906909160829048545725038410542582429248677671138439066152428448082847569920998704206537638620110507770776185791817427973541049447679376582988432417022073349430741145150219339660250644142809797640505890659637041428096709089213042112150841860787844922518293027986105204480661598694642169852309845807897926754922984354895788489161086034138832189363978515843446633604680539309140322790642477233083160927100890299984647861156377489575089334178324455826529430562132047674890383340133666756150716916703236114889357507997027377008241729655326617793044769307309914673093714684506759703876253847877123520776674008059289163109563915504223824964558214851682025709185367320607575497241925081040769978909396701883560403142520084900737810069972806155423916055302410883333549487807816022919860728656548924652988593713657536981620183999147122060886078130118682417465052215561026501542887348736411459706883725662248871628342813449515685402243386751405151507867551415946522915667077423385115095245015499130307528133963591866105313601314131092699314344832080269955485888475774360567820477793712803247421857009057972205786396461207055995116409472724744346862389047330709855259431999564223162047094856657384839687515001879387417437416473644898730230458391880950266306017516070460444998557907302180481866283503309187948930331420552302975016452311314139472490478116550597827830507377639162739155895017243790826915138014300547594854464638752368968444183229596593877196399114988595687509972290348518980859667458409521154366601050806152812019020345781395819611436976236841745526646026168212780514008537363813658541800226106661291991391022518980982769984432187169332363067457572797797721860547455019418069535209146370901373472677849910968524063311046296769454952535514127742525976548983867492894956592786366244507951134164703496713082451398928412641018059274718414396612002201990838050600985318653747469874745518345952002243715522141486779909781165496121260053023184251358345757170708354031975673877356917417806122483741955949285124809837906150821821334091856404927516598288464340475448341925469535474177196118478597551080840891311434825814623737375927747815038007156388079553973933950472859405051819946862283710089902157723878077489089399373845598851004999423018338519002707085486063413077432041445578827286899042021121861052706744064391319319460207249886997872539723565139120585851245672928622190046839042007258308974256718649206557139693989998934633875183847091526400153560542602439895136254357602784998972560940286911723197591221531994977525941817305572542584292863833592236891510797038919000038694927406539195416301018305342132947738572186614109641039494810354375803309912326254125755630161574541503652821910769610045523728631736061830124985373990704313841228241192745133002847697237005758002097192571301992773477993082192110131107950414600244259772198336939757189639985608444327056827307609818436681246331664928592933840653654880774901289657455745444566907809973449709715769874617707526829764352308839443086167585506393724770377664087249634341912958247188829889044324915330547410367441596756272247322364001382326077709782486529097890996468139132739593066371865550887266017653238406110239279731946303700089324324747011242531202853456857989116825610575364132679323518793837882090270508849534741272564204983061990423158685979119477170155879392331149628864711866905995381144509324444873408844795009088420124564872043478560518688534343252315758596217911387887994269430861382177887544964061964010756235378435528500751617626977522585141549841039392180443389968313611420216891061941690831403394993838018344287166954962404139523655630261286052672694121560165093341765560274987890829707457820219403239159460483062227102509352902397326044870001825860454726830346590143480633777311703481976640090697079470874265613333961555198759546103268127794236330160661858682565148848816184791912505386716349446613791470363430297043605025759708453339254525770811159234738229918319401963358405041278860645920432842334977299626657821213238938135078054712313151705945761259172536794586180147176112228087063767436025894677902752886223446397359082785783163602511995340101278822886867293453918169211743027686803014637042579472662644176617751578701370254823624965634284297796018517198246083293263849961328746506752281282361565680316938565241860822799807746071260609671639255115516412571278719145566237206596122756587145958794091214328736103336111172790691300554061714947452369422054407630936183696269461475465705361114332759061276053633969577901391106713750534438852725378962145452386214377392242033214404028401150783679351022579372722860808637943605747814697295252920331998364743453778983755724517755054920984138047430005162874307060833636987463592888353156570859637906878334060136232322804636822771091507206971394522771553669184175143209951228008191676423573693881181774095680870466645181596975171585965900134407317847552979020508986921003926031463189155036360907178007227909174068329365627863055994743939225907317116244809604719581253724156270174165814167193827287846107935019986024023458102075001031403658036831467326835940014549147541703900965602960392067021677789388022300577566528649764921290051384607278738576505849825341213107133372231838404453429713631394879636798051958655587153558437357183461052044475790127723168855337344525162018295199370257351113261977073800477079112416167063028806301237733676612040907960734056733958920013999914949602256767491318593238746391965177259800882060691620369217772281929358953323611953428650967724594376788763242306796017083587736025032772967991455284645722069802208735675685707513798743993468822202541037332178867102104193408661293110936355219215940890964974977083577926649755266300496819215328066460534456399173286866479024435519237409089113061678455665873955662808695959699603668442174086405196840203163121469441453943092436430549190891614568718541467656168021294319354750726088864239129730436536386559936277657204064515061685283953801416183798660765349665970861432649587302880156233337255563338825580949028781350084590274254556997635206006669108866140297248668965075835453176811140970441813601823402250396837668685281589797596180594031162771439146520692280974026519773077570880320124226637903886798548371058279955637093331858495601444253586402825363121751347260757479365196138572342693145689643394747909229838359011664163001360879240595652043102793809095472734530617538966861776471739052327200551158460739078072230971192448011764484439012592304614346150466151292000213057978269158379709926539588070442198361711481910487373514191792606839700197515829348518840174423483431393279644432207457559936002916286270752253588132075528606761340057063510338647882976188678665726774994295870901522277675966301885552600997760283849220692306522276677710038142123316313053174239065819077746009708900205021178724712577906195714901201889031064885060250190726371295141470786949881326445538026256443844555482936451151380142449247723956352844380337152150730998763125648891335244603910809351143635284719337037294336447685743851099031226822883498261098947981415310570892846864978612680787400119058307388049671828703804788394747794787221004296614069987421120080927728790591394718839179064884651402709011121497157351272643939509673339588389093549177503710058319124018399614209508344418235553555779491797076602968501435307024805445133750059668625589591297510722904350320722963216828807983191396080516576638875430904000638870854370371236407665684962251144296673957693636332703083360898045705892036064623923781831289850737463809896797817722825047295820144173822676149310405132546440976943418346149168468879897013854189559074377151188254679409547533875934955291734838783585599941476326111265491171951942458191707789014432433455668206168707880193710964950167088018870267202512313457632516604455581071511584536675665793840753611561844263077425082968711351939824144649487976560366768733821480919668730487019751573809283273162094971282556689453872571005674796329932982553622483137022004682153972583929849732645106971274958926353555262389693007287834959470905840718036403606060085607613733142474528464553300534195155560256129890862045498951243862584236149192259536251726054425457258098355121603399656392660937672271099157376699068059580626186732593094832367221944986563682052326539131245904680800547993767673330014643313592168085359863714677894392111962020493262101333047498460580541183815486243658195967777149478782041742297768674652203022257873197768004044343731238985070783432173258081480041567713607321747474364498858507253366727380452551343112019596880556753601784233023780088689115482960118855540726530727615469385869383036442538822568584087147412770435368303445077045053932185974805893958672554937653912448284955486355942988717982794042110758494534618305968232388183207800099308567041212516530117500117666882154407787345126269705020861063703426402780339227556508096068628008638400033823083194239947180891781749683637779730613718991193584639263088594311416073540713290380503083304597231637494410666216447439431433512054024625648620430620452157499931154180819357960978192220965428909777321604498320551899034691850649125903402857711084694796513787336682807562208640466073284574767971301202189871346541561471070434432392432681850224824186991467323417672625415835231789087950130472726903617232337695269656851529790735286967011341308200766186362470429468925017091273981605908930941718156219890943526957030331089656200491273514710008387863471072665653613505076514837209543424335062142190827275622787812767100276043507487250556666282838173999385617931205795240108869984197499006463070148716036564420053972850281621696607985010827324460161196520524021543723117835542892595069303776245123436347711261054816918815484846465150171898896953070216840751612200007812298426938651742118658780562345271769756849871461783079359018433684694959980033001335352030584424578441488639684254306532716584268720704543599653285079083342687270517750299876977485517670977769119649372336462596195059391168912509304356587768898461587849825704881874607608973661431556666036376751753838737754305941165366833843191880124235098209943111969685717203723519871495594747978654469684990175912742120907084948795174421347031577733404258432267594379708159047500210833097040041618021159098115087254295031009415025824574281722336582970494390124229896122644587315696334912704448075239074127238752745225914373619887013914098072051056229817171657041469090682877026800617062586398753751812894000460005303639006711022889817852073277577583441844410702367653938413156329556459094225566911500591583139568224334088601634609635106661536733593542863505194265367908683465346526798965017314601594279994260332806702541057457891335028354607397814084141200880078387071341441771347007482586015891998207807481448826845187063899901811179727429175460117935144460181772080122807623124137382566411221170300122611246882384887310594183282773016067794845076308827767418249109737304087781597787468547051363377383562056987348579320780088250631138151384622483694482978915042656584012498901168728351817900349808218021896707075506970764516888632481105712058523279672632133866605714166855559317020465006750061093325901223386444199823077357295352649205711257969475502292401681311426725013813017652504341816269032344896627468915104048935115939893993009832370131974291843112782911300015526381638461195314115765810623893750400536781031229675373978924962064857080190513563495996974919200260535184916903874092016192680398347753745692843301854003791367001301219271881923752173322408617286681640988705542888241323075766500058205156196039333220640352712651394071816874599107259834163025398090438150402751597467590085573615675362626816394866972642358101457428615309939602800379346842738748999104557513029881016247535661027408718189496086690742588644038799564308024923143424619376115304570092976461015544250336747841320891055690370521436710949395758771358555345535299274636404443976074028427764937527525164762167402408744690269593344535805251795646232907567970203928873482268771001481712636171267134795096123137498088276062788421550938108545944514914315150206628942132641388027952572993669459684658085917355052810989853389155728403470313097217027814942943239801204101919546663384982819721101667778013809724938207389534938550369378698448571157377003298451367419597782128596286269480874802096965603135329945367349584821045110325226057526134159805276650938863885690137372647768860536303487856213651624065624107688657763506633856715305820908936284494680085365105255684600545761151604694510550200910565664631638547133452124242827778641217203912562255879569605403301357618955983571865450869346169123646216691806597849913484171948603006250369233237854998442376214103584857647945026926388451157424369523751771762231501697478826130882354497896855346818283001523264338237168102789989030034684742956943696616630186978120606651671929697479241016472074172588245388246055770060952524326503905014699750318918843558988696410951346451602632385104558929928056913997984987689246795378974542323729114820536419661437277767400931226993886516184904914237247262401706387566755979474611526620385862939070415436003498144121223464120428186966756669935114153675752011387914542810453340662097910830395120528894363667733983866617395414322831469776234629524580127439755200007134469976527297545744682135347607970852886051144398872221954682721573527703736525119890519896168203207590740886885562819431312419327563153662017620684928749918261997313346060076945089250592012252110634526637037133979040159341904711070643388701982638021888534744911182066772069548346305218171933453706092019016835338129143337678462734611682876692152844792836154091200455720474126150155514128872085034364560205226762311649682427443928479426089353580940669840117521033569447267117133690357895644952068746218140269070820287729449641879781702194000311575224402468534208004032410731251693722342121760803288877107663786617836284867756786667980720433775866193978809690455608234408271943510809056634130125938712814783198933114032679261582203340415459287974523024833349627613593493498781152727482732786439278977498305952287303534921441501190487661665594259291798861382202135413677759538678212062759145775722922707439411077389476161734958374005425063407377649177540809630453688334858332008761053615062225699028882825838244985353671660001901353410329804031065264537483850612473029507600600605668447937623863017579817082953242046538901895249406797653271863661307701656847539183378667879661268117441747221628815050491916113302865588956744003183488488827063395813534530917331012270999952594645188455818410406232986768708325929435956484346544333946949177301675292098995151992497812036614066184634161371292162585137463942103772555465061281846368886956731974921612693073842669527645503984625203954585022194551713743666070008573337391392731167079148930500689279244362169089340447951658581694075863161513867393940510912537500661119439831345921065676196777762124052570008195849510782390141328862001651195591558358070067055563949328202207126354263878375959050442606428445698167848744763863309430960049904777832919990918503240352176264664449298343593794614259884647660191991409115898075830875789950655809227690183141250693438132631081737723335227355004742681619149878037648318198870990440656127507972127714585041474440692449300796091916409887054837226487730963394935307509251325848269499806979893774759924837783770144267841400065896550062482720419009035237881248164901653914989046484829911825457869433076427989347484293926133921292618672073786214909849573024602897946414915680577547994288847890873808069913805208090749497060739122066635054489368060476785792805281480148954987951888289656402024150636876931356152532989045257759362761388979954989992084483137421124424794630188081875018531770217446169468513335923590560691149488404752805696070969859799512274521240254595826673549431880513763186622771670872923486809731999414537521468703332400577496447870464996537405114871671113240924324511407374589654899749141372277055076284260113660437510602364393506055845358646881882453468152927138815096368513092138829630968337571912711425080740035152900600049136037962110471016363867645838841857411517402705205999729652631241377401106674908070922120742625073619830688914528248318444849504664179899017416374502731710109639777297655208887275037871762226649777499617056108764361254535612405210966385782262775644001200299381509932257973804482970109428997015205877860814818518117036055426265202563921368763530664526354727501283792824415308877735072056395278907336530580487105118573943643011389807293352872965395683751051551530424744528172536152042282816968998702283342563161133245723664154762200259591793083364563389062067507219160572039112192245501869750526710758124498260161699391031127880943255325183845419450706173394486881273957872097953672182420937846155193433462924008455627720107462385795889505541039158847109631868933405421188087058230263509221866347296767134534617774460730639002529715771231001199919691134137457603909965649334129006220596175673752645668141552945416823776321595779950060980973014910439037913581502950072073974827593866706653491960768799883107667447883391401741810949027018083358151511798950576332444264537620773708288756994679794208135534099298085395013833002678299568656381298011562751810894283205463022588859518798312275187188640173050075532803632608463699377082338637061162564569325456919531936740106543157731770065622105991921107213973034125113584610621161135291215335568440150538213471684523488876406230210195288683246217023684192171081232399603097576471819506544485638574622103407229486553240997071348982017757569409799154022820631049380231882051983760061737951271726712378501210362826171766864863397161531247584804422276720877901740073906322762316024911345472888988490608846988000336995776184652403937489413858599359924479519070818761888046360031883571994549157373228585351496580056597783337297579470152914968858527708157592037614660561879364749847860445099012414596036900018540262486492848299859846304610751336839989442894379075208473315142109618331548343052865422503078778991283592065570649463746134501026142311544794584233051092402655701112609217026486517825844871787300193019603099595983102128482649150792813139234434717911628397615129934301421144217300063050771553525757561711608317771570639903839772187537590170092336827593388351915011614177278422417208179972506690098844499156095073848067129792030224627365090440989506090386852192993965777562931992918788222205575074999854331528162948344086722970466552675928767787631461747804759310784679825630370021235427195710508067349837174808051927764798427781862011452321951350973282454811455440828692307478665694789030907060473075351044813654270463515133885497742115149611241997792856414662093130070752250336401086884274187110510316986471420874500040118077877279658015409674720802273982330434367439580034544398680616653000978395500060903496600583217644597825584948020758255841862627299348591003907030908748090644568738235206184451021154514106652377062906777097111996257530473264112037499916635698072349824193276637425077885500305520087797963998591123380832614007305022497960737221493753675677157642957513108075216836859201279691959434094247373703546218910861428854263076106589774982353205224593945744879781774725707021660425214434432646306010231241277894261536075463371913009951635252202076585654861863889197914806135201762089711999553609920234704623320223809725855597076161932683389705395299336209057944091160202543435175217576294820456172250076623473112720118455661154508239658089761093015258046511167539910539053936236788974850319451459006045469391878283481000895215381121572064619042210614858902284155431637211304852883455229145355730081849637964447942515790785893259919183999153992491585418921524103065378153806377253491767408829488675692421774121441079973152536658267727795548135362362852839862072908565747680598304272354210534531409372902473828142187719941788583910171796029621824727613887207081344151377304359966934565436333848374781657706978980385095973088628465422210198809687525640390496544612058457502364970875374077243712793202025274637563418287171109973013789132230625402714593701433148270367497817549056278739933879556062085116463170870595376879555653252028799037045902684945765116674301044158200355288477407758785559518007568406915425213100892335641354806222953847793682595219296102536733663707491458425502026200502674317679084463941890728594584997451071449335305524530842127534046971061287268064755303419898385340080023247500645076840842015359219067452903080242041699621840137299060652578841186869740767331073072095820763878391396174785172799290366699536971178469628430372534624368886209661435130726658616864568796154026158087382485500556589970448892287911361768150632148823036445709577950264010509769801948588595088492264510320756029304079527562854638933887019308673345923836141407263051594523294624339491396625618788077225944012463201088103445129479495073777782494039769419206607019623362656234151173886816014568979890588305219798123667083905275271663561837946819329820920442651720464687700750291409152181348216308399820172336591766653167263336173827995307892903136944073892303090904939241427432475401367701748429181122203556516737342398366612399017937943056487887385283908960823963093114412417865570651125800457362550476349118938576267261894742124066278802429930731084379491239836383901511038660156695444096994606156237546776166231521995022542293120573572566827671391691581439576709392119884908778675481746878896096850574966123974361872883978246478716147192370599396958338055893459287995758780798622660827370797870793333352962880903771713552413150628979714030809455322492692942836241863090334687792464697688760169721430381146639411553801341721890486995290110497355852747835620887124789543502538441971532009424514303588145377165526517582356221938943892213779015479908751771997916886242642763329573209384093049727536057647499530535181787568295070981274173584070998576843592269116194494642549193298982731535719624114657377222279390003747312374324270193450089792016348764762343597597772343390865503964556852963006815715306615091520296719362038032251458470650798007909260454935591571384153464394711312683094628630947065155843397932919120090370825493687784656661174381020528282575618789507065418846268497947804453553633118570573836063438576449716082626773629859180453796611323942318106746104398582302063090749580948631520219992633939101521594331489335787793180822409125738365519236193447257856715308354908505622884834535437900678446195774205652733140512666897945810247903015477145474731787364304557510888381612731606371342670660292598308920580320215007460145132670283904810158325566009584349580977747612313826949269698526209467927464601220869954284449947593608711313876927297190841752742949988579548519657308887741740809625486170833713865517192549112027745289839281489831495785918459182214194863932785918418669037345714020878408729806484699036751997823561560926064221497245563476868955402566110769032386122884971720193852472113670121264366091999690094147564728512136791280077824933618046269786090768818421011652554044820385372628965262071992074443165367891393536872484884469405623013415781783537787111226908092613776208761033655618945607469206525629843412295572814298573005669781967091835055810451783496731534405311207990880306444350740099776803016822581997502178323316253634482256698146614954943831601666042693987074081218838249022902875571950942050620366862000106644365192386450254127194840220027505110441727619790636289647491634158281482635697507897167231587609279630473708536645794254647065986982908578010205039729115430727209461982803122975129850374325674454506465440712038000840402878958481690824624333693007435599393089327622266266234931603303504597655513782998017225574616239685942123029718005300495028664853859066476963598265185255357818990894662459934689575231871925972167269702051578427041909091438237010493556146908202579781724797551143567853331010022395382635217519892596822577397821540162034723709844203930977975302171344956487539499780796906583689241215661500893997087597364464346511231666759317877799312552255211793245903545090546038145243685164863817654194106182249777701068971739728567984725018134274944063566358606533844302483357077580958055464568212061890134347079490585376596893256558190689741030860840295823592313446367099446630139448263738866506035613953328902208534042298091250331973897255978639228341730945502397753596337786819554190244948779609883942401280090009392559270778178711915542986920026636552921438432286309460286619433219342250236737009554551673103572073530304432507009998230215615033257536958473126448095975569787831846158607758927059582367069500308133897514371290652691998651218384945598054108409414793359496660781025105837202676223758199405857040768654432206058918328570433894992860096354609609516687752157425280991915550792941249790635272691750350436606755781824668160376138104098490676293355777125107272803882468062159515245034429093184603122600558102907237717865007028851586212874453969877237292162184053281106145490828287066452535644836972644528855251791518694860336948507218138816901014501369640402346477702238332585022654900743818851284402509960910803273534222022575028786203262759005223289708180841702676248101679140538274986309039830732120015307373906413476365817223817927415557466476866954852836702659052414735228530436816939229830871635472615099707458452662433844751143421919823435046072884894514403096034333802370163327110952147598997558438551106616987852531963731873981721375791796658960136766382175137313181551798714886813095180556028832702037597779075059520830894610560912634088813888100453484513100763320431366814551151359618802649159114349649074755778537769330831093237387976769363815605008894032460775574958931652293743735345666256532406441246130026515626867861563818006437887326345507567891651714632661131863894917601823621641149648074327887554861365606901705846442678841698018981416272590044973375909240423485834657098187139132372240666739661458940476672185087382490124480000894871024383550943701476303698195616808860807042894777977210209929405233950215278345681377987295724999395583082616910530458675870734696398001252450654534976883348983534900352520696552228191490962507985830467833420768569740151613089781711107498858472650657006922657456016078266114587528923859568255871966228670939080594897447936949294668232899930763413482740875799567994239121018561167937634759899453179520994751134541657807616087264392968713886295849112720628519072434411326602684633450429537425155907661970251857697007884654517548973884251351622694920477128424395599912133148475433484557817777886798757284599278417407381468776570125831585133560412884877857150849529816940409487044179638026946032165608407111051790844915046426544930356310760533386317929723484778425463996234324494106143148287501536591046088579728071336109845319384129486454511009414189025356713601530571892682296556451397751900740209727637846657808880318244085525634038956450199424380184686438304531078778422647706911679729403609867098897600389841456436033774895911792745126682281722386131851514667596191372419547456979078392654995943339252261237543942232689764754288934356220329272348902497254531323986920243351052402729621565932153880345113329568743411136548862811939759713590021926364176489312469012331447726599468344612830631055143482764305334006460581831069599428678720083405804167246175980323403105174428829057051345205691403291593537318644206830801255263418766312365129709524453782655104834093348405094842131380158928222620694632346166197419215691277368902414149578648244444826592134426530142181298561162029819712415950339651140355027409977663830724740673990799267970426182723540348161603001560776805718110382189078768337010506343538304314750544358772907075986031162403054407600583553113152743726448594299121109488112370957844439123664952718931788228987180076504421677285141120316236637419763341870182696643246453174025553451586861859967733961761716711203202081316020336271483270439137589057061917687199866990996398551806941648447871778081218148692528784920261713955896999515481398196160371884117501068922783686767306663025205302173358306415476587973095787972371327124641056849433588246397345916720369474828664237470525118793607399265192767931506951719907146645149217235013699657170668155548710909407881422580764893187320911836652881215854660288171596872559930027746392032751020488967209987091756394526972132166508711907170495165671275118085700829217947635090125658291933941523283015883134738507374794939197731673223947065623488210641010083062557515958633847809413521198963310470698789816747756316589281336436736432343175218254929162619416557567124570845109277594336390720109772210821851701693193113578890562234088009243721888842214960188104151082787186194847641368035862358494288054893506629936274438880653766144858610501824982598335657809898634371768852117752475810926465211201133324016896232436223951529476222853417228262573782101116277849780749054628695131412889631957174494491969240009424969248417647011082015637999656788427197886170737407906032264388173950321894653480636702822093957336895468575501855130219109282277723178464504693129799708525039379987791464273542977896171921700565915340808305730448962383891348332168204085367878404030735982014126234440167601918937993235619823787054817069727353549258626699787744516234317061218409454148166855336281651876248801421091763567230432934882295858344005044269244980679697688471209405820771371229383522755285970300132021044287367104305994317545828740948190845321753231411711013026789861320637041231607516474288649875648964494051279461039954326695555479328446823649739701109749720294884570702633797653988161579465831294165271399216635470152003907245693914708432246955706151477929759091256707443098690602523549798132692798395849880416898137975978547055633356582752098145562149954554830651203059969773989573475739726912789206454997474449376258814824657034323362238697372040390341927937383513481012545193813992010398866789852487693691651753178351381905131301801124563214501041445329348133468428515121675498431724027773447619942812235731625320549641516145859724057833514134962010513311680113794507917208906694373709898131050705149295601047587288546842624682162303071234071470140406714582754048530349645228747775705223849151784006178531677704228131541006469369731174652490751773081122613477723786536730207916501935493985921355200076225522185532897812902397555309185238207249871615676889815737325627060101304058077301328381595591369965787613315260779289806205762114380880819660495386864439317896634219815852669462373762072423372553893210928856529470542728226036199131032264570758322895642763221356955220114058912301201597925091642018541752999239383565432110844011589841705351178563118768318108698033460307611493389774527535582777255780723368540356837719210330991516734173216859506704436201950271844246036217179733008214320191533400380172974983217129610322116188252462968750130004621348260877871874797617840951889606389682224421649521887000767674019170748536074331577083143820388638683680244950748262284765632900781077268622963723773622106823312263090148335916138434945384283805545544284942672362638569190850200867678915535901101513158336950258204444196435999711998235876543472807971554331948933117373770742120477083963282933624865786595152160810436421613322926010047872594920630661810975404722653998253475678337526742549335144138140665415832622107340547815621383100368112808175291645889285382585390462901819044606482559803878070880077231520921037834448477620625682645769303363800147988724178257590294618898270546336453410642003482613275797322288104154329516735200408181432029900867835914570345186471299728018230356674142037262714785224659789472249164085948714480863387129037894132775010801532221694884993113650770043858624336056006400197215244440816325847503607445650147363269655454626660104610617906226400775610682490550599046626727943849569111813947967473896181631204883636735079821653442298774182806622211687530364315182306139122089180680475626133676136301136690029207549456777331095031746855585887638811409536435398082073687960770230490328084345212630105277425076593421089378591341997112825400522900981285178460786978529850427604908431703298167125460006534572086750453816959205504061545744488635124956158596378122951176164633688459586308260225555568636074831338583894874181701929296825936426867542269717826187258213982980272977780319555161721966384718018200592872691185779885009608971074281796063847293710908021223092962309868609155169145758484164336193899244883392146518943880145032547632794772355613835392964355816344045293584313275743450181548256754878490412927395525448280570602298526059476799032610028124730096253675959996804260988050240994176159256098922945052813550762319643001282434341412808778730401620772868318389845885524103557461787363551320943305655339072748050070305067201180488638881865625221729718046088817238900733056677246549829050174937311977174512599610487782697904214477889841681442484424502827533511883573721654046877101060400595018871693543667137621912172010412989895676084399124167898988590280313184524593484016928600416356988227434778989211862079637696505982397179590230352459676629789967263190631097870230449181442164844078359099920410358676625557427532561962164304435250010173567601371161474085370577206881886704731356888429667990110935140061870727900852792451220623551435674317100921849288700435361624595908146563926929677472865068203341726125256702827793385571795530457451029794179717813006315686107934560878902939712420441044583133674450832387120923087241325263543232732809674963236901508859978330582324640823540833294545835369653322909128808521830226391567556800629768139097186553510421995982882750714141229644590557265381018858497519951237171133725964932498875409249499045230981206592370685044511751545504002123672168419170948463155294996976286371109029296207961749767909938800429154978433595449743183769163673529286582099557734341568961420143782990661214693779778688447369880540657540352045340352975558746746597087597630329743220468788128082125714802536568306641039490563402232775902555968108264379369620924330385285445674732395398554267174303599155825521020989952998296447051840920740147165039100739564487048412535714168200713749365387353325682984588992532243709751815473382035537702707647821352082694635657460367902260335732148557707696184112578200422159327837012432328542793574742938515517571332629877668975970343998673782726735032618542486249726143597644420825459882560984405586389344186690373438660186378807943617993148877142694530990245941080112690125446121775599518269367095995908559874152298398404378047202545035284608992967265323303748347743164920157964093598111167090709974143635649709878213257288878251709756912186129157679654029442332441447451943071965112166081389126996579069406402645820865817037507772323083798302484892889876418239255842638276378551395878696201246882881467267111023327706468811349313484827819936988668042718622793884492617624027688285774636659765761203238290340140915735122429460140924068215541749966467393161783229400575347106476464611251861079658014505344027751507381911496501326925823844152866200573538641726381739450730846487960990084072850459630388113776153692912348559721577459825916349214608102196539996683644609603123740383513660376037687830842040079499658167043091195404522901624544477528473636414825458311609872068641525059057142553929573565627896650462056046983096571173746549315145821445673240026285622550575658863820761688745482169248655512572178172424114892108313763797380135215606554151201779588908506876684824308916370518100598835098525427879314480879625565131074266239917523507728144324355877310478382450675021796947312015341869911340681800060285065286068687991807362922134932753813724241076069408643025487717338360600640233218769851971296773991800880974250640401383739930481241154266047093755420300611154060981103428498832634450499975304401869959753908979315563150155664168686974449430223691070476422972700476665286339162222687997254147051014512684506705827763052813921817812865206607745040821244787524812293939281673387941364422860296548135139071746241814785752350387590297369928344534100498643130064597773042301521510968305873084886882176789173526104273790541674470631400027719585938723958983072635511317751227500411455762121137739031617530602120849473638734229846664537667637247573807954728374895302968240588041161566136928113704554028870315901580705254935581782152947727124452139177167744435139064238400985698545952540597282163591592611274384741724280462393745825353519143411001059768769850101236419848803340876666209909439475991698634408246805939258807452954506146041419552567663136762303062223995592050484149853221322842361152600996477633152256984593603558458345635265566100206889224729568162734239892853408420178554679118961306753308578220926531439423740113537596520505166023038171289776528638054420064906469341352635273785780101213061283914459716275932565868626534160897246191100865657190581126635310092619908535214410366497643903331472832410683482611673249339753212753288461415229483208911141960545376932376503717049706874367288466031175971749185523446153744621500651029168329693063253633609568252103184626814818798014564519118546808479287204661351317505285531044889434521250939946221883174380571962744985746009435887390227741966650561370030077584863679196243418286082228081432486060730797538519487478004397849021456909812339628504837898280811788669446188793520392705690949623877066590735992480005360792153370926074271648817390462300243459750052530450151506913808739461060987520626327149895494335241813074452153137340876964050326814216536363413428598981500372774379169519665140481300194263055397793932364456055755952221900662391098729676943322650443761989571405639059022409649279510632509289566781249873953455451933670032395079845916747084608402930986694252666563201654181826679941688739164179433004891635245215442628671716711919049966162574563919548086626447871187421852361235004550541204340069415035360950908308855360750460421288695123443924115185434286504807577943548602613837566705834041409428716882103658832246960434446488909907866121487086145398762064327358946674379387072783464658310117262505106940249016713762751852222484681861841715831880688895546983521615891574518781422579831452761088046821598559410334184273916490019478269677562637837072475520919859189092980033409707857966950045499454153374626055395595531464633244652256494663382564648416678977904063060341318578618218075204263106704824362724592754886960756453261645809623249779319448212095605442915620391064587704576259160839473686465699025579494120339417885703762765126231822791747769923815140446518634880816900348085931891919916811694587821062362747727097344486178159664585504451143588067634685122361930497338980714759750464663839493225433637349534154556187825437948227136006950826711640497702380061966546742796644050602810330874180503749768756499446314026166380772320849252378911580104127998495389514886048611621334440176041497913996363614839369372375706325928066589957591821821890560755929367008104909268963768911738710288125883955521057358162914647874597855729265827609686013513770790619856158176494747560585612168843941087096197403198285898344384456455186064511459946655823835247328150355948750544266324118924104220555135157974369025037663941101686820244068442400840481549437412462840517088407009222573412537867140034528429640095082312289846361579725570325847342188225175999119932480932761512063085654218793475262983594265186667236966786391835067742660064190211461582440864837511792125127987414241887581909752306160731925801788607485217076968877919156739859188082451939496751681854414429384115840776697680579230671519485773519106312856618725416721777694227441980949491127540726494928136518407078804314515407651049938978423414692322666784950205435451859817400870696563558651862689707374418470673582984080762246328990289636496322132908358298567920460069870136351679104248378930134887431327588182668968304256102330279059314425897409708937112435281908745563350612134148129516213306271663100298726303189109047065667095346556109227045039947811937338363134547021915365365016331091218999969556879586212903651722500003154841197892640695883678835093048426901732143976971203429239868048997564215354766415120503028831235158744503665956058518888540350039145610276660558540003876982577355485843714135742034221793882006528950393362309815910740211057976668085926959556795717296860209661507089333506668319977729625289117492869019176319964494235537206444549369146990351900675419760597773445867338003975079643086447897208864880386417315560358832301545097281772740893902048677973196075130591475856034145073457067140102936027672462599358425857940946394206207484336747819402306029262026432583598887229099275755406370897525932174557725555058824049925434605588815542597925826949009359134432460525136674827726007555188754986062866555071771922440839618975856026134039239934522271372807585856741323915451392247410486927043655859578244458158396687771270564410564529116264854532397801165805560220230325350641980709060053976228054113406403853798384475258974269151123800688095069823363616684970773022413804515278243608929851072535504612447077963957570415910179207316920236503557114367944012462192999780556922030072334965887558632055880403750142905648195125773798819038542184519358142562387019710544231463265019744512276341953633631808528239908143197299761126952245377619885577451452188588234073703742226659945099946565266125687345157283146878681799783580587246766695637648565570913665073885689312463321680527113643533923858941419342299701001728655745640681216214480653172705817361711511284036070024629261317173010111565712729916608152730813935936059403895534405011463149781113407810288635009115459994793508846535390777942645864011122617519813126619759234414050497984147300454999136198536001795141876686780558391654317729009041619693219280439280737992180838813949551237619303359410798816214127025377927595396163436454906036539933723286939777374048835856041440953838663609513526533466946380227954711043468728447366667292262357671466181467046300007313003844364456191177505867812208865972703982538337314500905437709892964534314704340597541090682386744713749157717124519130507543655213268616744075809628278059827354780193631746686416319284259190080406331483847408834703229121298705618522943395612319084626891791946770629835962572690952414594795296937131513878707594952014794371724440876541223032331908560360818668098736572563483232777374771975969063757283308133625324997488798813912191731525169681002638277097536388415450115043771904875356396215313282665140714380977184896389122616246799868330210139226205359148665048288973820163052475359057724789510234725144933662386826980170295549743785280792129800585173171276842118786745016791350047774794260994492846186798876962126880602869232585225639397745657167357255039900678194525432850741694963317056906838303131716397111148683851533309400471964304470890857358513253902954958236347676808913005550711519461775745314585373634133106207618777917999672906383720939162486822064435005387278225628453793950911815554804456921304751146306281771604251546033682543208086416752554688201981978154045428983514294995622133817138227028579347823576088201837146386961488500878184967641108078544330265461349105193405062597717624555083420539404753483063566823049581622896634064178162724325969005720937762298535944664481667757030465312849859034688906872234933348406991523557428912420387796376445936703709410105108174863937112199908585514359711051107019398207494624119091758002153657004552224997717580765147417598833489930987157104441524013568803667916065223611746456380974069511690015528159530405698276036784212709103149839058601498892448163791057975792010864721573535983722882607533312588472318403705865311175620905883908296322129939926311958469452973567057887481049888991182623289292656432667858359896071995923494051354634835584282645685793961969384669115530019293113672139798707218612207200219037410236345899666216526543303142065447255138441567770560547438460725302577448706876756880717200642703700254652709782100529220055322522100745037011590042948312073687929800207422627078434321847785867630423322589055007310542985266292110292990491135326998354532243874123801653310060766679277456885548950661320603933903139068641970736657869381357187943041500869999595638132559363789112102059617333716640241013830761394631303625956082156330356450254308295107067281627830306989584945353240068557484673847968356603414044957691578989189823534692171254007801566158326593805896339840411491501134887348269912805046889985301610239175312391292823409149755701180193104951030317974686485711594370454769053758313895146164309375976413238265279860198874383104168870805929981402431334988344841528561312983478157373990110607116891226517205623904967098689418391954201176463702186149014073061841055961399900698898124696888272119479813018674967688043985743475915669733701270808021204839268718069702346066279892397982176944623031445414348529818968775173268975273890388353213984718579031582091309311964921082422588425727082259847961527147443805578757659210067798904141965006748939699101688381505122168579811655774983552204982914294981554699629080565845732157261191472467929453542239342215910746667350963573666027175287313990844406109038442794999255472500948978117173720747153133665159687850437561549245371980321131764902552733932209737008792778711440616746270849049666313504856088010807044184062244582375001817974508024789019845227905261076578705952409803219218737780862414755204389419689493355726367428168784633317403269247619793452353105441305315163991918104424455843939479129849371710489652682758202015830744939109896219505184991605134122648000958237443565216149616899489042587488825341761477311146908631833221147402701743663181278394888570646807501168009416243307636410644858332075381779027136065833776135743047376303330066535539234009349695161681759935336476769026378242343107014203950356728429746071686281139476081817691005196365354935365592107339689269598677280117316819177517596597890150551150607421276442682568338084239408228708182729299454912357244571413271875561271328692136641161542786311845330294583463846618057315312568667602254430274573886604220607580123129904003444175286797337686047177670186802513824461703957253166998307609161451287406465410998325327514342500418742055065055898953076888223368347841016406704400451620434079253828676084289123709515722203260695219558909831062708692546670491872370202362923990381695167475497658165171629740113496773143834208011168767572426190801037249506528813610959215968929340407523659813655184035752747416807319342516618131677718866123551395242934280788657039900911134910306754930606540617708129897091624802260891268145385667115635104042787105570733823325755875804129177697833174671168407371756138860839494987051215211434039506625776294712199667166759957699057144057855688540641448552668902815236030789839339666401469143646286491022377863280831395992515914431459954119548202725223000217945872516102160851075578362991445836670387339117952610597592563070675887602612327604121293741552624327887536286294643089793683751795279737405316853775986394136864775879735206391041481296624092473308484035894639074833283621739132644363374859720438927222841249008575274499976741533985233498109679765631219797705223181773589177088787891651752001034369985602211966618868443313760659980807769336899973004317078553945175600652704302695283628581260578537441753022951590995786392654817217461638983002344929354193917703463102311380142709998691105322703254853547757224395151930558133773915878327623226660758293341433428884701303789311195697553354328609978075206829134870157046278421914914896187632221592118879892262502869284698776065053339283137028975578749781440718057892970839249949215259106527879499065756141832253071217054028383307567305881312406846434681778550849424654622002058423364075232224338136918214957058648441883847064539730410596137458739354913555998894803806854728428842671478226048950834900937286881671732765190068218878524960436853778799106550833884100661798600612341076261080833335942844619876244439536533377628052136948439102271681583771863300440305806247217511887469682832846298707955585380982182207746718608740703703012077078204515302250169341578534197547380873440222243460247595160297501519815948743518728990765759162467979547436174808010065692906772115572318002644959023647075948509619252352801041009522778758719981265755171956028742268961193788640562801188313134648068146868958120433698006918396948216919696742166389458178887028935371775201469104448491683959050259104716694431946827229395316188758510487290704525114836559454027409233363425304587045713633363314225891271102291079277016253082415571083036310530448594601028331196355311403131656639829207630057482044353877770722729072737005841956069546363701263954245014647117182697645261453238907424289315136173092745673725889837107014956676502880678428850552049468275829748124042451206993791893812799827365093741283429347135348776507185401728826329148192177839915325737737928959451067327537526677030036441315684616327988334794031306120400781681001679287501334353126408639543120799454124590869069868455436432945339653677701563443143439151590168525171265097887503950017683968486583553933085674165839068811652286485519089930814116438986610545889429682245779249742627108419005751393703778750377471229944823857468656689705269354066330678603594254135968889121302779283130459396300653256866251486160438059377841125536958131418858952200100854167536728612323155096643005412958996781382449310584533756959819672672340131845045665656005347936758822062812949858653998840297001594306350837062144110329647041489605545415572935031295361077042079805525344990217773453737563998657021397285103616861732836470835124821549520189848153623725243612954322937694046380348418018568038090012147360025093186867508396837046150983565095952454210757518883117891381099006601904356329995808357710359099177372009839931226736840866518024837738505739345733138152559732571707485366610088687502980978638078380553194120601998908949531874802872267067290684839978115889523923411971298403606679343695647894029304478815671246750690716865594877618343678205751651529327594604187322422781010575061596782236802684880314485842818658833042397590646413467611517488600513022991867310113486352751894985564890270256262342304286245970121682007690528177974892156953228948993297365073055648153521170547935035049324690736993914205037286700731714384281652083698140520704215674035834299067280562759375627439491275258883663168138544377513181654256081648864577898314255976240800584254194898819628637492543185294311748785909705187553181214694196836227070868541817429676302083892091155287841331359848216411888970819541921907337323819166590376690886000294411522347940317266402954650399018582122334819997294526835581892141875877506331497085878947989686655522107410226147875818198467821652106878982789954473912563161963837087374309859841601696402289570443600690568802143312968836294073482621249005725548027246745786677938199498964342971796002248030464632588951691022842844604203198130239075087879432540046785201716255061386616543811400428371796292852675072489657508705468148336336672085020949891006574532572316487383170387994842687914367233455634160985456141375723804765756386733896346470400472377025736947201090662367208892897519309634091043351343252332462030068596435228423628308551670749550481125448973979049806889146951900358967282347462920524739756393219762863769413045669107838725529872281778874045844491053442195799503087866033586194716444527195854861077065670185544067850411214551486163973497170377976932555952821622717078306859599061628273425619337752984565972480852278933159486094171435405823828456614399339679167788753199311215672042185887414707920878403373210034709411865716928434272829539004887573212174059271603524187225364843955554004221972600570820922731579284896642389978420819495705743764789977568975368716494025540171429625892015386953376106783698360647187143975389364518778228395724807435503645800558216602877543530790923521994598123073184540883260259895766206334004981532744717368639907386386570743481015383588016863552380120370437336126721936159935638659231125272765997984465854968613112446125105689426120294810239492003290853664400418844990657770599704095760454447759321679034953078265049496764037858971214977692389116549642225295069299381547725298485147144739481310010026953673642821953461912728572039054157572957146747215195247697598397522301379698115313696377668675934546182479552346482191240981998305499059328163283478595247463886231787921454095047415383591030541970599023259351385871336860355699751692892276321541187707873801849018686648183567609596149755732667079226701978562800417719783009743277848633088371356107631519711846773338679519790773292410821171911936565539542293052624842548970364550693765394373934302603168805364527275849595102509249061430066721149009962887259137059436056006007767572064552946800521740035630184203050607020034185211440629071669238826858153520208687536327360806498934016250971516875310424659436608349093964321716077569799953279500043727829885905279079571544955705080146453939142261029363869579847938286926605011812174516218943468767673698461787687777851936237847453834708273992236735369102402973996262142351473222391106602358092413547155323258401467500856776060660169999097304132271945386973084635364815617221177157126926332169080748461453347792738342595201546686916944539795691366280375861325855809509806422597412887194954901387773663969731264206244704741930321865365300116790046736247568972128466533843781269728698764118883583935814027889984778024378059695238257453550002451556440856424529193562008156305515339541014450466109319815471966608280236377007321577707185013335818154166840202284736281028076787478177603896179822587551605886487384187986949821706766557823333597526622692106374178422093237311816705657313248348648457641785472576256292586955730232881313770896695662702894524384655123895016816041680635528437762746398650552404337707203160253254966027786348559771806138027266140952339977636194824192724787808933052847652532511975927784320569040560987078559116092270674113067571387195048800059614761753756304587408083226390956933615533912883931021519007361602879209440928459463551001727171915363470111312479545815540917957206756304714330512084174741789717527686665323165439563238564162229021391586538705066069316539063736806761468016552541998838806152930327080795993919035173176287337776592383070127431589897735809853303150754384577030725808138139948729333271761720371440209468968018804062386560183123817956401619300041653538511154975851657766403949575654680681759423377375892085108016983634546376508696530210233088188424464084867155945853718788828789126459169286595598740215936688059588697644232723738685875676297754691900448856531809130359057593600879415946068956433761891445404822042901615205669094488485318033722521687075649882635441312584169832686773028975031240220390411360815551361337994622880876979091648275140922557096473473175048765375506455961029902459087095023075977891829277481852233449127342375324399442316151153187316219436821020758817593625565030217564283897019413514473695690835985967683687580885408541149046104823923748328492793113839634934395358974414686637194673755584088993187557741449895252916670487391933429656539270398049424925847930086435729040751085442813578204473017480379228566532834708992955426228501347384960510762431319079864169144708886873399601897464106330369168337369809891594140529956202229493950310657355899572290829368726194215023747506074662254353877930692729519526359117733487088033828028591848573181057510127760631296706533742882859812305987519530841223712043593456343796497043107701011149912958188958438387751828945312190026596702289429243084547046156224049119691443073903499762031434068405088060165610165353880481139204515338449504986480291310022119091125736931729557416951984680578594103011650770079570603312053937068470484917632361338146146167869094842764048418243366419713081197376371686678541311949952018066048429380000506374475208386334804588975306399230073021703473855642249010665607800387943709117860628102964625522299757377712521757907454755641581086357788583037289552349597817367129450680327374299328067396238562888327208222409824742503787255224864015166581710128006214378239929705278364630180895137955899366503954617960347771589280932486947253057943384267266277846876356977418484018588448798944097697749848342235052911405853156346352611658096090058300448784221260551454658155713613676033064012293888285656268583059967100533212909726420146486325281315352646625131712657829429349121520878948546569636795367218494567089424326128905263682478901859882210019923748734819182781876583742927129250916313451564329239454989015832730815957049022805510337500482486789031229699389819812274530132141687078363960043362672242261178497941093401428124490109764510377847883430770114874026169878023672888519768734790229524093851753600775164161312121913489001336035416794841942368700360675740542281793831594425990047963337709991623436780491554675095529543638361069744189743901687643044708760908417621767782981051754606647074591856869115264759312716842523921142895213055319695955388251896709412997783344700652715543766396929529358116734563611111199746683708213665747401987688164151683575568420901513276296045264178302323243200614089346644989428433111877622423127560711116982133909912754725173486912375222967244666137668028965033726579629172608892674930026100126037796414168189503503311690040428734805358959587225995849613390144300619449406041528822538892063336516456745355672407132704603436551024029403877823561110186826830526715123359637560838253705620532292135279390664809691256220362249740247739949767842515923729553445307525366892845770157018482931342843356150729534917294958148790883324002901142503742304964720378200467687513756640438109642493610642873388799338183230488805698098691231570193342886792369068037660530638778817776231453950754464112918523275914306195644920621298713203672366846423230509742040259904305458363292160804008642297548618691293967827378048381020897482293107132961633465758335910861929433417807823221139850972668245314499298863121321491192878276201357551709737962955119364900313980915766208515368707167352830083321134007321850566539793968773562904428898825848791654815223568731139946947445628803649724715343571926000746912464229798764278925633717961943056782798402250593807066739404451047178120914931085065877813667430527850539612407118262529077107564282553541707817780326464694489671657739425130752449714990523334792032957453413706948690377947549477674381758253934888616659446427231461054738071368055475213184406113221740248167010640290291978751534527583776271180629354919527052010117680342845628976076619845202541809273732857251686043155868097581985858910936643587319022786403408052693341759625358169836861379156473625896967862311625779055420103107796479546717347517320049283363279497539277921030728006447946153477544912266061690551659047901092201508755999819302238604408568021056734488371286634948538015644993769906211548189305621851237925342321716028616611796351738311856980400677175124404261714773669676436831347706128268301634485068824338228252768986919179666028482505317991146159919178255459128681462663285214551928306552871199378333580964590027879992681830717743515312387705678250846617403127674683574859598408290890706816041477185740231768826212014814640151832848111540025333517782995465715789817392210514212651967509110955315945560761294755768887316629650692854491260185976857366295019183179020570168113873542087819141743226931719768490278435451315504359032638940102174615316460895842876914945993974683008555771106145994640343608990925003813309316663139583131581327754941818256540021105363998578984804157546443647310399965054785770845762807327770127650240984834028656445918359908151435634965281165095442367971848533125440326236792699393182255848900342295825712584411956587354812897966344172872442640392698098725856390254374998063166712075031349307206672702028487178043964036177490891062441727840061533128692898646529149800751864834840540772548913017072822777009549396506069395679684939964389905905855365238720451802391188169769991362381898135166203396070743268139888290160862713748114363876093438292771973499759605704159996356754336413817034022798526796423823683543792332901958706972507306643095516453120519714813599623379657234757229988599280209739734488270302792997265760190434033580895676023566720639321422279182073915171454342376165314104868566380501038162007777419256946943720419537465378271133569780516099499706395000968116250963531205521561130732049283329509625103905303377747788770724571462065799833087419382069780657984665736234548932267902470133997760272406663187314621169418480679074177436926804318877461612300941426186874896204917013310593077120083442232047556077264396010699055635135002841245532935184949384557584604191980527491945949739164785542192611583947676822471372193303831116158858672271096400139306293775754655303010978359044033461220377254741718183843554972922954595203088757705360111268546243364275698220645516405586677282046443957067947404859233331817008454285754770656961749969712082610215600251236708201220487281862351114623380995263417513654755451333258168920006595199082206312503954352859600958529025869831886882613296907117017546639046514791911128269719591799648859994832490467699055732121535089799895574494457758887341136735272537398589711513108742560665962555470974307833641784726110979843936088591542847319185462879326731541654355053534035183972850031864839969053155910188638454462539113323368562897330942248145607190559343429181903167797583697362288310053131960794689153738537878522838877064918291679908584965435237354209315955047377786314165539122316327788696204506803062291153990018190739060995610992873544740500189932671487294007372976735866222851480101449906884278255993193934215319653179788727382061926113611140094810866516844003342054589968741210141389510363249523005275393901252238792767539611543650270081392435881186922000323909405346881698316991405699033270050159523700631587665107483446633231810192952685828959178035262244159334777382520702401071872075578183066850460947765536613480549469305837118993083192071265802746778561067937685134996920316312419754626283546493459593357721638005325614019233106975688441474703886189045859644617967813824517128908568572595030083685206911015401913874591699572991387755496850900014119842420638363890638597528820944647364326917558983951691783720542732770388888526017909024657162279883635772004985399810632548702685851514088317993058772647040859043060423337507615198391658716847519022480898482742081408648184667715190069792706569057805409613828742191842457944345510796412600436029204482107709312171592966408098236657649664428768020722221787394993207521968832916146872348572624667153460923901804172294869188428538114666516633473580668569688585536187135999084319743469916820721224449049807338333433974720247893180209423781880155087460166396874237496081634466948811001799552291855457410013805602581378434876743174830882500978749356676559761706450234296473227372013504488015714099602152851421304923131499278353889854272960459651131961167423734297088456836209521540194637519222809971712614384406977609235497210846616202786412143368983092293061611831889218522417338512762039640408509615210873829411695627720118890435715354335922555036663332918159661187412535100607048674013342671974590631491690920372622025585602229039793382315179153991154415358916658493050520942375328848726275975021820778000219169379565218935575330010527211821898951208390117370104014852299375848444779859359530184147333343161803445205572369740212856534747289126690962337101247982325651293780051256579687200424254726706263690491834780734313489384602330759712524468445448264304655802751414604579532321010880794535758752084811167305981485543255668092174427220744821677834298033152986945968165783737661660813905361096173373491961530580433466843999963068218274126325201437398247519992855214286316513666341878383128994654409854070671654761160649157450176737543814305568501585705175962190880310376096632600023589348471863051286899718210829140419793543866214235663676804406959652078401016573592440329682296473252145741951280095604298268400776857879146375021198676147311449932688074645139101682706282065046207776078115486753280842360632620669420258327049409585210147651102962507201558917189850299071476980841916850327090342828879065174085899724952527524137967671172087350313764118802219073080514346434656564395304903780113924481982332332202098245771665135748239233358367852984353637289783678989424704092485962598550139554156249030350311900773898829786642970093240636226238036633236296457683231228105531979627024685954887561456203075207943905444158398881188396331712094251742829867266265811097900623299080803996288636229963590557663798251173234893767733517137319017801898693238222824147351501667566175371342739860772591133819657204660625608097308069304810817760113212943924438324837137334520570979318949153753509292516402194018173671205372482371791874424410659818459425113802067504944654894982236218565877997908528137991694188228976813880836136988428530765593594749968971902176837163816300653060763194028340797423398160394199623001739205186514276336920310470679086141494068985331862677370518333504556720348922586080407732846775480663169402961829548938156994432579090024607535000968677023086592458728847502839931106572818198964872507619147927562827029299758967754430201189972622666851423566670265980117636741474178114475577669377741301560910548948523842095939747187859257513257264977182602460012430364746615972216327206147527373828228594252632132344104574752895125672793019614107774251721849141663907593679327111915456944588668752397989209247087772183180021341955985046975143245928930098533047121061012541404508157519717535120971420390897814068841564540059824095768904344333573328923669219920925963528892497140811070413591206247655678127038826511376968029819394116377014206262926915924338951401901774750617438664026634964175724821449719632725137537231520307580885209881167868446293799209176860702718019596354651638647262658490527627303605092700943308754109162500818309265572635243661565830484814259742386547585097686278290277234036076518865237377332743814815813581640500422950786567841053083765422141246975815019074448234946735207192875064263718805811319428508429070396057088098374579751607941776616877145588958054459449127273272733336671156818211443503670622921167910441292468943718255706614499480687146029298783085977657335282849082645900321090566475328108870092896938150094755985251807773935781087248575258309379174733282274630898686718117412414962080708781523464995349296174058308150359511733194545706557705456702481732279730838258878282783927431755721977477693447563758922442808694066953345378500178538435211351767195106015754639718250371625752997276631853355009681999545269902749934067906373194844182067998347881862583641839269108334751648217676397264532458082801622371695800804681002917794010196398081975419659731470355328610709705855407530903587393638623909854761344631367373722256948250656522111757222828834908691453703735166878092679161639685978502924811018096961256735759395897184049197627145105451381021487510033844292426980489458651987009777089129073765283460961383922750547271982856062621985534143849873438428029056210359095750075502667866764606358312882901180869723511092631693591258298528469654518738101230538423460581000443843413174960913353840019517431823644255797621534321038866678479392369161339811405376311826905720948016014686237007033502349366733407966034379609826486161460510424722989615495918887214505902550388156679283656811010612056186653613332752181289791035150395192946144501977659445390432473963468310584928171653802603475397951156142771019507653835732667610708784040389106505728875958081481174278834871243067176404005119685769473606772322639880966216403605126573372992672656079625163817556707195040404325621208613901162421428121787247719603854576366494745608347858741413614125127392732619878958686813641054038451912575175382957076149057986104124282355312327432419353077826718724637357359273374923889339676533868582519469445162248345265583370823593354439386357173458213112483742121475293734189764830780206635340465324678892776274524867602512806761652055591781903573026181812665526421603671508333538844349255539246450494722952982886686044818605763256722864182457853924877450931276034108184701842256546081538404858487093037366513213723621636553712889347521727658852172805695944602689235715378177764093897802791629172842196607762431990558560252359521114404279352720370192803723816520007633242681619384924508234135549940477592604371013418713087199514899067369208605768471418129881001729130203483979316906226930391022909305924072443676366177624697503337692880646676330438755029235251291321774241247617871302027147462923552048842877601564864371837882269752118943792505934396368716335204251782783036761701210952316046501088899631517585806468482583791047681691550285481376940817272365294821919258429800478625724451649350982792687426876089144717517104585919299815467459978942276856630601497546069278350749936421260254886513006081752441463892998572724106413354776568964349194155319031621961580873585787515339722343011628011269560084449168011745504617871538189850220261800367249193782619702804968312465850030317347581585515823529518732387553304278039958325987661209303272319359402716291811485460792381471420212931128861454999479394635117506301263605307839372797350902352517860908421260270602439587822993128279585998183131464047057772981585756112820971012554971368841066062883644930857221161185431789411092150633806906815525586579046828714174912565835628980335542042277771313905791852608712815878257337389529162111678726943759487233203130717143157910196425524693438243451017699423271644444047344424126074634235002341684834550426441442752131387074233203223847069402155432331508318055941003959908682462537768866370986492981130577534480476322736173739333347234612709711561936395178238147146714196857127518487648352317756971912161620590457407066210291844940469141881001881673123225218603469617301181289400248955332729975258285728351821225777457696347019989670578539616496573263272758875999729315455289789086622862733614511974978867338269514249215968645215309294135940051104445104858062197023018885005517591530529693229319741191386972518399930253311847827004476681897150421861137182859703804182686729917704390608553250977102030447277178862366440565515159888419141675243149276054448354906538693655848578017355417313322292713694286083782417535410545759659231746374000669188198260959729422459076325252280632503002125642624254347856923448336455387571958226565982650778937092065486566520104671467250391478014486553648450484012723330278106863835620437201246287296660795585038448043238602761183130539779471368440773454571730493932460165590642879139902444968338560296683208059166260213246880442985677132710524976353605088774099560718212817861886195796781833109772435051181861586996850261747879545946067793584946802255345338783366425166448786795007415059026934178591280141833895171279259294182485942333896441400096374489713934198589961957833237267833457364134958298150025058841505805371725257867064722544277337788312699007503100037859213140666134295124935461349260088575406409735989103471429063421684895927845654486812216588588909900196074344651589366638968875083059394472034849961887478735253022290097188045458789781544019395325259735624814243961344149173060001890611677450631380568584958692268233113005989753963574804116660380743220681775106155710896638102496708128562732867690789045670487314714749573482082535729214275277029194152528927957368663192028351678997924881737219780050689329984001178977337786554377296074040139630894026674598039152605285755443819642141896420286384875954919741329099966126304098644081786694878431670518269232259002959648322859864035092675704258096582654589771424818937461848070666249062299522299922794510527078142927998415852613825257492218522102384966856032334134297211869846439686705808067298036727251455522984540907530835372019239608338366385186410046891331442859002204668598153506619201023528629089510782773970463413509668746002465367603945991703272697001878419257668209954986788148296743268598342775880132381326533702911437967951034459150293751850440475589124764162903337366806902964664515328826175886148142283814157646636024116796408439162103031574012686082060230739586407997387412079076889401092732451234144185200698253245396485925062325769872770334604011543974148892323400211402590041388494932401085754564373308738581000109757846822906409179634652882008530963929152975020972229130608785717564161893035286260330457635363584070276047413973127021426389251090347643803209748424633779688104854983710388829809502890908913981920812967136354754402736030499518515247766058970796844968803725909673182453200249785986908120484302893206305409814051500566136552825264348597953947173249001948479566868190220015996880976859194865175463830845750692022258624974029102959641062090640465345438095144448519658438491209028428199912014917839493129708854619042979320963853017628232205959687700920380032515748730033989541730861664540513219690539040386764098423239617562050295340596805419837660898394859868862567579381789337604623198232238244575739002303276165055676337039484231890620553739550146875685079384728576676263577950225980855662077050419367900543703073901784089657968739717845394070207006849875577463174806691576826634547095734801002441393616136984267625700155269042189295145142653405690683680954369568638736651839145038867950241271180204487078780030710604679473268704187477471460559509509861896966913038043296491906336618352831934993852945893055516208682204675993349118877362693050354196461098537364870470792910975353373361816550037358837451655829517184930558587827603763187178189025787864062105513778947262200245593476990851976591925251920391709756991591521130209795396065096803824589519208925788059222729629183710522606234139606041477723873652132809479310755631634851872255330194227078496671317267733187770484325431135828887016125412697621559722277848185100548830987699014102160566590778966507792515971817635847544809841397346907354788289660546405366062719314820061911988830169795661349821450165165892679299345860382571871232316481360360942437177401222495824181542047839283274266178986074844961710660124802199627925240623030275251357139395804443704109872400044857142461106051809221445966351992677287971435523801170156303756607088541127143562148807897943781735801055962116809425372090061693020181750130898839564160542806385945047061079261005503668534606290652177042006598874976013464417693537402066117891063861900647842632557356132583945162579698933890407039928289560091327821451393222964440474594170445465170855129884830374926897545488835666131642180855288384680122689083206680169692053101149767821510590141002417938747310328490013186300686697478521753083933892061659423692854650426731088672808423808768795935630362696079612930703268970650041589127946496401849416972156020116865103285119831358489497881757590114137703128873922076330335899631207369301615699199010412485418592486615143138718704171962406199033740840816198324523374614130788538041594701188953752989648460157955422811580747450647519200467320370778470313506405436611210909545442975984162728816509981751137578121772006616688283737412131297414910735084157515790481646987359622838482730937764430513088731945489674121937908932832716979062152020491585211602205336364380794101705809456606038724815538509083206377783094694378610997763966480466089553353488762753249985691757551379739675250717575163701724413024814063077263772035830568288032332051025196840748930514854026102017662484857617572120209934648390687660242574388406667001564773536792997929930658389035279785849344043303384757291758152250344481859182411737147904115204155523615143357502653950252259056080316767513672838188151619507003855916644098322370649042217056727631169059294151270466765555923189316048644085242646935068430188092098228944717182155307053133668285059636262930777710461075907787306706303898099722712560328928794794150986001088954604681412188098605186776983469559296372846800941432839361813733003741291443865218246788083213248923574536603038092407775640957678101838605508895206683408451603002691764478015750040159094918602834584574927464031420603001022060546138848298851446303333900462137197050300294336797736369223681135387518128966226757525319974666884303910237664083442977189403336015213535359786251629592479058726808221124262036324502003162728056248041742226147083376915216754974804137471418367139138344285847607110167195504259901544519849736501214152654049628822719996961335127323112580409856174805885254752350225456842885119017290866516410256000564451178552315446886387047041553008935637717440613220046050988863693370392624495861682637637013616520596650174387309049630428825228604079941032072015795105372540104468492926188035324324161860667167810859110652987054370513635300699478478205288009158182622658982177000766123632517703335552428070486884606407022775550976729403394441168649674318065167471664940578107791800104618856332625875874926311064500822053240924352677509190568719567377829123815926594600756265526060143788865332540543205228841363108909985700762119631890181726976860141742057734146736121881130849780577740485262969643659554786438592333206469965615490825286643658751289703279433106049193298545740641608538342547618900721503511058828469537421401486110590367636665883366304040560549027959134096117743873493244893396947731643440963281976821542842804525729269628472318693666100350085181334277053874577527934308699485068441685258491654791001273432733159150051302011881416260227895693953568929323952958966617947731671955043457790676092431635499350922239581341592313960255616641912890973677344307225139481386924462011771023053503927230539391282726197428025558223292868197938603952499685101894372437350965764410414773707470138059918937867973811229185192897475699135698110170502078763863371145252269885581133049361995147283612762492593262457112880853051174805076687103776491254002905735436373356069914117510004041124534246446398593643935821375496868497013781076847108893712848740050807723175293844306855969713572537630800602962650533275690410240731316256929421771707979001208633748978142123295586538830770428330633970870420574375746500728134933449727932456020812470366157918730362947023802985359866746150648157594681956525917608540162109451464653002630053155298252333839709239920651722353680384299157854852716447149739835629088489903851882766127075541818255323913684835078978296822268646275904765767218141434099416386682379295260042431517997783959591347460682275036117185387561568314255900754444648115207328877306095890360340077798228711406870330369975259558784975188413769599981346932005889679512120021846722565925332304517046377205606899098528933853359664087027917511870502401576731542921167325136122122028416756482473391095951335679293689589923781837146362501497728602019032617991551455391178945696857989515112743174010811553477103589729031309232095078682023425300174919053902422440355841424200127806993344987686119006579143750259722493769541574543658077158583011639871902097938662550670156320949534799731240765614384451838160548346002941125995648438924466333454295379713530038120254005283860743202968711132794228351985792384016374579282473624698054186477849776425839614661072411439835904316278752907197064573685865438136205951778101925121663496737895665584855278651788528958146881294688009885961952362873467334411854529294289916977590338163064346649737468391311212743476154990173849327327818625354714454058854900379090742759822166302521717822062365406672076236607784945443070931984198211475370126319407044385068753403412457826960991121471458328458336767399999366983125325778739623045345667680055132238523866725233145500271269211356017264929542854841625418441464000889166768877582488106723118947667133534509013261910462367834744975182818066111392215817950681563254934095752425034673944714567384996006395827160484207121368885531034010183943514157646512914864501490758972105598343199744432796228389844228341650247020523970442706341831244532125866960633403741031725169479054920735694525245193063012529031979901306242417051934261470462367707992612285870585730330937877762145616028372047749199124391001660446149362167150095318463012155433846981742793057206236692998268614308575469478896163296485387553814218874844528825147989962814080870615626194352958134538614989766605227459434039781183909760036512944158601815357470838539629440305710866867504859700878181410945607231621312514497834714667880496094171330260244071085215176009567496294894036621127478869328802687526939625671858968121399061707725727365608960611300503164747727408812559826599825423624517292552732054562966381326065568843453127025419475682373503547716471045272899629590398845062899912793472844513140143864152810918850545324637168271901668742824350308172249419462428990605436871084770055992263894896178926017787887141753235551044208898829342336611553189624570466657224822079422267872471930047447412279206828705570425326341600107843215777333861330642959265245521062273304434516025554262687673526353838763162570422730809713236763516116119165838441963468165012174730218381126465246800692014678095212113872058721934467102380000397414384564847140725906671414242962904019076499933833922005251715193580186544086395480392943753381562193680112153567030056173653868862524660534139241988453581784676453873532865484528579277811787296278515260207320669427613570583587557876465281387939633553516627751536101315271887733925763307582229215394028032202102198759373127996628928454159548214649418988960496526752167180952661202035943833715157910435139361453947627045907916345476861605530697594675543359291831985498202843021497192526940521596412563591073800358753850488277166411561706877932746322682144347600241165392267717818488884393377293840903567855317766116037890659849516739107475495829859191892287350423579568046535463713248298541828627433751279485892371724052887896278510064470287537600443671678334388982384714351819534921796712311924064777734423940685150443223541005601706750097253343691298222323674305874323876825045840085831670577529105499635042939021688151974057884560808176286712977009092804432158894263638046403832699256790478956195980957780028085952336381281202709770196988203940498462689738343736355414327383160952908279172214119735278062856621159202256826443074347386450156791351568493559363099486684243197271315820110144728355942541703190193914223854036569617154623382364741805143058169378428174160277308463828421215974179991148524632237586021412249583538722063981028212086521583498520195474809227973672261799350652665882460926930844467678396159291164489709462928174971049120607341734043936253532074693194235176125324590541486300321334146704870016901189225039580648917969997383246276351588139686315639590807397266411195682058903488126870811282229744327647377803807123273534619092160392721293267585101083649358551496276957968593899087296201090671979572551377023715414719665208559031419731790388459375723761229611919100327366271293534301037235356706170418487924001706710563170869644857787354663694009501002364257612900172859767123371071606099043329331480770681286899503369967480297796052335337723806925655825525683168496492090523348488163627962785991534486458646756095804519915785101251054283233233380146332086697623233163273531627229764799725481418204179230927850029816075948263680998345418812683162440748788596715137234329160651386684024854512744302708951323058379671645404332209950814326572427375872971192558120851544571074850245636877589402452035076330108360787158030205023433098850567714836495814915259189640081643038827568115106769200589734167910628856424111757542264420116685402013293236791983846491786881264815586793108153320797394248626982971429394441258190544872847521428335378351858395734438010880002714755466513171708320247327320583543741857574356434016193408207923418985754714128414715277426359206650341930147685972935829648977243901582808069789547314114936132218511946214182482171898755671978394651879506661841131471745032742044328432434061362236437768284973916785154216366700916129570293276887361369243625518204221151587361406896663301891515350813606124622001810317896808656807191532099401155274191885002871286678752030130681445833779777376787677116966647406883042703399594410180438945426272138804353395471722169016522405775937949784338297737821406730075175116102569398588807279446280582040034141036970286545042936121337406015980712638619644050852750299839916747402719755560767088173939171426526383089298759481890745522780571492670125607552416532156311848654294021435610475397837804821431608714690934538983685696193105964069499398864869166955308951426354473748095614401356228079487451702732897689023779201667401404146919889837627127218076070197221130697994260963049867858923076273985198388006260649155950515039519063303867092558603999834561979180887979280185444532212092701574195897162955786728374970313013048566925332876839466567432124932588709989237188705529539429982628124173722401846159962330199524627491158973960945678410074524460143415665281780030927636221492982640948288666573286948830696836864946684486942122355794939480703036310707362841025447005370452230539267807032878822229870420577018467463005213268542182634090944720094233007201858833240777176222957415486267925094912203063140387392044599832852605335202432160111438922465679144079110747013160674363652190760844239629920029649868891554286038460953664798686139994593257896861406865707637868999032546286660418172984038660349903895455284549957177339171595406763381475088766355376935588107444667339924815646867416038954881313802276106058289133017822949874114578005832265385904342806783486818630455133097911514120856454109531842370702168366332134974605983415200918634060139512025727805967297386804091480359116626658670208822693987138146307255187506639101791035445792961888544049062642133760706883220005751207492176883010529373690911210001106312023758031681436251320496460215350053935797611711301138512637175458327548149861699119407941092456380024112630164964986699247828217231282925010356953722403645892534062252360226084497280530452384654687501327475946733536280883570230200170204277214842837482973189057902129286890379840327112168204991683387928150911247133120290115140793429625232196697700357706495000976029376870451344829559869901854231054287724228157594020282507116311472774595379904768413250021547740555422019920768142372065674094093962729546628204177955236993289425023021854503726459280174337825399485202827765836361788605672514918620864562078196735020277761587761921811921065396061267218548761721258787249079631382254139754228397517044170477407502306425335084304151930067786050922281992978731293579694197297098778236952197667575134204476190573878820871701195618099380559484132509091457448395590571324185182047153618605315128024649815925699378030312570875077706301316507522901983105978203244626486258622258724914919707466901166760771412846447876089216975546581211449081140916780071336273109500178875360493277684133805510970604166367191130182625572947573813171150616981724700711982387486726975946977798709072272298937332601868296836714424906647604220224013850609333225672405938526615165755350869434731632222768808379959541331713591882078860177989960274759003988123110157150981085866675109416221434424380736571515336127412857731218838862397359141558396523570614076753362928993642639408014975424119382808630677942848028928414225738645877956610558906432706269082080096258085140796822085165589394064937953770572168897621921443838243446839268604794481850077969982071977437317346290902329819273269151505839182126325996348135484539635283907456236720321929513108296523712957459987550173778811191204743343128289334458265498992606479411627930161399973422536770564731413330065576398596275963852377706329565833628242620265279095839710125138593701410220509524102272702327150995411518253287660728257727391120528945277244648435494726065762687788672162254571349856620001308861092251676137115758672234780989470462255308427244418131936532806641036028024071387417113799740890141159264065483234764706111488140400864938499062193608934084677696455950518438955820075126885821173383760546595264924151588248995005939324714416256682430753916087396384332733424389147950682025853678234067841234786251589591628869596994884475955536231204572323987729828652649785582123852669676587693820870899724434047598144833519421148275494731723350009008439350776996763904502324299272492145051123689440678183132346778885513322914091653763562369864668523321865536738488664660781654046058858307319310656869650392031513688806662584420188339360578539540003848460299576705727332897958955494574351426160708392365509701066748523046349601938821451945463909407496181984813199918196243963904978325550556262674024191125863612483556129319524461918835766147633110691375156244988373335292211666286000890564393297852117383719641155317923601039090790732550988566132658503705613942215151133657737639350254821068104325693473534399954995163251691101127790691511087931497276637897593486265199908030837402141696792340607255400542071245754122297330796648687954920148536321354689431234416601196412382013946455022508275147856210459755297222848784433596203148611114548183265792844539653859336346459041490455411820266260203242736911443044480854290548345108903783593064324976432666579445467993165836981212399348751884596327518327789953414052926796691965500552910066660403121455699164407977237641738263741824003230131571016307823963270352694937188171869961781514792772709556718376363122620032233027940653284104804180273931318183831493717597997557560365904727493438837178631750067098712567924110764870784227126942333239051852809027955327090727845718006045727371517567711580897286646060848286320567679714229599694716658178647674709063484890723342018888311882548030513987397880757978762036011590441170257388114413822331339023129624797926394449462567718602442675732590183687081179149629849863883290381476016913289359653542372967685929349198555492686786532386842141272128050456265658334120497050519638174460977684391723571744260397193063783843718665609459812040535118724414922160948966513368608288585744643853727507774281409231520546443377669649101084862326887302091885363511260695970130407202682888182460804857055519013602830213685293120885660957186112703594523602822251617514313293204931516380075086780832119570330821856595131099433169014328878685537570084391853535429231774924642053408866125412147759890235930742978754463721794498135015908758228952175187672393451138387906829630060528873622135701685951427337873303610174749576242752918045352681565431415022572677879116653370824016638862138446112517574661022764638858993979415786211610517476765903075836491593372749710232304935628235464006694361912339475395992805858703176428708781823740375114504832434220117893683825031273659451066021834074930326900364438963165372406140040434214854642149809923690324541184043848360595066474416296279186999382676160640480132922221365005008235651899880894600294183982819465900671841825616496725325785327174308932990092989075412358450859825266039434773668503250948675687616395294520667458989684772385633187147331180813595284822345954154869612079359058138236452685482567364834697279183636977483180554707804116767197695897192509038177333649124901470523513665063962289572269696200425137349862527658140792980162841344433634706595329690673865585275165328341504135026017763455256776919938388247205687843893960270862988403621060835889514873203181670435190230023600395078727022954272152720720340599622855517904425976340504043943386241022695922017646557658538676719069777441504910125415002528984648749055189668160658557859757515025376917185148781328626514085958450650904389946865315793825157140215090371919650415666162281460043410011698596246150001532430243337447937015866572555924407305988765268911775327305134377435467625002976335065490706284200652435445661801224865482909151255055321670613919528250236188765976329411119147881668898037506482530572645991103483606607465307402785334354834608941149297118905155621812656805766696316396849202046016586818271371851541374995878338501372261102736706394039008703176687185530078548783349766420186519030920500076271074512571957022255891519782112666723988483804297724849628278672527844361055034315037017053528796461476188610546877941396899470540704359263655481278760891638479617329927197678800951921535082748485359183992632761881620177750533522902454775089962579675858462991133677837213798263019243081121183755121391853873415602460869775120229297729907873035263138450254406760205593339852454608466749313064839599080719501107110094925984430382238629650927641870813632879690236406527130511734867375628991948438633136142633129091667725301761591210034369493387974155076320209340432705567915983088101124770875024151530526900903293165227653512746037665065898644675899857727975320537888271711105344579297039595839410316007099554594904205032651512859891041774873322993877184979070626703342274257239191798268614339725229520449243445326606502221220735915943079505186930488876045291592847024864885637082947520951504787262449882235240278436305852797480446835635804110224484045601140315652060458970640158968921331430401071383009650894675145875568075170015268291094361769787412587638947868646977781352988546426420173639270275583641185897674270947132544843064477508976941497222929606259865993306827280803260232424582083669200964098583245824847658333653951719390418116415119530187462573984972625307653086063758562016868935039761991425612991490597330698175638093020455839388089521135198094768601127788194224797097601099775225088676446079487157766602255784700146130450058185869371768654355340079785358198107081007040125867214629598283448805050064560838941789353492473975569934459479484841297948006210105103553916142843797952158191144536116067170720913847751574675984837165373008313778745196825696426767129267025183106248118546571595482912676266718501316838667956615682282881436973696178321184400141307899679799567434581851002047696398962875519975018296525055235780320277406757722128479156472075121994892548370831169612999127483507616716233440467174208410163852605912440705079903238123714427328470468765898582325296562873351130916001245515319447579450750988270334068831503622538783719089282113070174396071784180462406957258236561385028983730670215107738630733452601402064456723095061485184098936792731379485800322356816035138547545150004746452008370502139456080859792585333997294910956365448018303977477732136513479402767840672258201078394821532952120823787918352615951046460926947394962586871555158493761394013955431712781780690092698983002533779983626196585315140395806901851749157332736184006501007707130265804502551888269004168578731652391010553176275417698878443499884014031070954687372634734935146313564124292271544532265234615367461543987607948521511987552669434888064516691294703640636040389869571077308650918471329297040809835534282949359116513678945629040520851316432271090659025831325174176263604595362723969002046219610778119866873952945427594789490545286952892397243240747899690133825116501620271763687378440012231132964835563454147300002200151475803447820798898282247352895329820587221180912337187901378044302353251659302412372979379451704478205771954804255519035225119166945239434208757756159577732095783245077299586662662778068050939556834829863795105405520661835041970469906624074110095872963852839797854553685141323106535337488235277785619206269633065664600060217946234881460645965030010715317288506898745750792518375627748302862787535031260814593015770553043475124294796846540285383148264244743625846829449488937380198696075593821213502074300698269026417723438853021454073662427506701346884909837397928613338705062137709982304395295431157971706407535351638255546125078172614808238857026757020475317555343023237381664057960626044985265358519631111887110794636339093968970902761658992648455362843578183714738274687224373473373476600392060520787221906706996166610347722606008802680575716821278357433468855210589259461875311144595554577282465844509749728192840924950502822709464560462888936966599118334912440555036587171979370902950034851266458915922732788096722697682562646027637796403663632650143816089911330151701341612777192683462001581838077676866289014229218599753383923988313152093118742250797911287482642686939651161342747518465673169235591248760061085845358218390803566261954694595364994371683240814413811160483097768597380399177147430817517284482290372492691949470023372936906328009779597469348760271584775314168088454545540481289387702749451228621440492410909091951207645174780512943844667182684205302107934657525671876956340064012955451155286051841354369103406160112772445893762457543202333983625455301601940735915574174748840223158378105574821508531460175095713805426524622885450065153577569147147846479559267913399251727018824862103791153089774422256086495746385423506493190202817212477680948239535653839383445819569168800757551049312481128701279200679177557372782925537567664248527761465229654452245117588356260248595214787502450966680929385996959364127967946726738535988071404597536099953393792008991182897614141796102751989055171512910345974943342214060118786465725417323473367528165513088964462820830351756677297064557511802145809786519470676964518741847875457879696868418944128171275687185852256690558459096979855091528575606831127399824600342864365311585857358752986321691796667438122452034226610351260551252921694762789158258982081602711457033523573134254106917322140486499031988780022647723568033225797534047096285956730138204228392697688841429682703945353800545839177902353518398904635009830140014321951174583937371070804050510431449237576619064539979127948864696863931328812914347066397766431661991119557402597508550071071446543168467424726066921668336238079949825265798751722471077779386639990967522051983590046794991822457247189245984034106561810154749195209830892055395467356034378972725637025071449861002975460462458691226952157947847466734496115593195584190633742578174832731073731156119350806267625377551127060881675119850664810723749081363289745330061849565996523495153488134318408073463474493380013701322737352754498244917659811382625630728251992095223137249218495006263702766794294717439302603291118122624719157566230447831839340605927594970899930479175344666287169719266326434110245974461510800952142748040417677059204881377872865849316031829786648193636675564996797917515128974590588092218011544640141600631391322732778760148566985442447295654404163315034136839228866150957227044390553314464264996938540914402141543995358756070527635156331820835316840118044501509858718349347303695417667451528012268955069420057356514661886507225266210722457316809261761265536377828288880778108085558535629143507877047870892292488481639127542887982284938543328913205849629809670932649649247319973564913178822597398799886827338497493146820063199555928536344103626241043855247112232937857097944135386185862269932802755153298316636776810214507563147901187300604661435763326527885961515119243614354529145932154843356782087447649028485985797016257976834532161949669391840059726086167827424417980413883848037225986620126293731615633561722763164454183585936092182139292769591014890188701859733218406724091910909034203706744422349332916194938387095069230518891841560904295503916930904594423556897738810936686707183912203345950539539824871001665106882794939504885418491064779199636457693265582424536750070745164573489766790804156245718887310891321500671916040367307762034973360767775247962789879823509642647424884983004531930735465287224826284749977368843807276835407256119724485048856255132207124037395038877288014170482673220765210580332248330425981089585728470296313817844152832239944930140563157427555804929808294862391568109292143010613738354571171703463781109373138206342450707693402586401176021182743407293986236062677900067374354997323370782843855764464381024589437941355301448477905533935770123463728633026688107787138628537616122335139446394687400197814748037056774291571929728627719174756977366890581609114792826645629264525376621521631484527806603603401326399794985835832899020489987354358932078984346216279373888585129132264013245461171765394663916561235357357286190581672610746693484938427778425621290789651988936182644690253295212357979485294484516880928136941897933464237278607631502927406735320485898409330394280367323106024360268374234393658923506595220371808467934512460553834871449256887600291859956872445193182698245005058775056464601276200689719685437509506975497576967984655614849879460677147276064924824751433804610786865731887740813359070761872237034985238304006049314653279189681263485211596312881169532431152348114514583912955654797199725885128847850645454075031195114254220239527042834150441663050019263014687735036867612827254311758826389114505175837900368993371073592157896460735445164461352622103995334643277178463489976711237817304728336319049031255285842323685310744835020246604385612492611039527591015306780615876342140680740194340804336045817225957582417035016783551420860711378818561180721855428427782974377988484039772492357466352387004681065233402216329472116063314350872802690998107516412184477260324306972770205690755685670115804261694286771511155860941580661565667611595609060844441117418934984998040292836955121577292032930763837506222017368331871662342615756029710000901619275937406663018622915703817998501205885624267195912871664319625671674811576062652160309846787698713967724647266647529669345207608730552131341515864470176136496107696346635554389963890041523191500366914518473591093183927595527789563436581908872359466020497822462779594083725668286571310750151952082563629180920782405651247807932821388105719123149312107920791767400114679405655671927164969677808746492011434990846759214196929759090602154824327195661470458927226394482299815618510867542136449557986932870532556722546206254528331247222514025177576346022547089870167468119229029307512468703687645066298606298970171613055577186976560358928808144616544476774428974182507761705295477135696901758076732768794109995962078080579835924425723212532844576868623994182987633920194337067931457451441917082109902040844212319757250047532969545239941174609359830136639098462262083249000344440022666249257212141717563578459409124491351179517803488354430560272835222328999488926710670194243130331830483874973287947394385371047142743326102083098168287983956090341966741004699292729830485407378366454204716029087073619559110131545764768147329548340974307807146434513706745435580524711949808193921694371456734168058787028513961994467450926633561310169908092107777583814669031482148459988452602273809356555975165772679974083589431829671933786035233023530418411713787700211528320236214399623704543052864760435839948700235594319282118043700644397473983956466734373297938245621609612606381170270741009447110566983873262549023391304023036040268587330197561121899106672954635759067547868298734699155576614052717299751231192539670014261025683256643600814010871257238778025976091482112642081837008563357348810329300054817707228227785506392287664111906089641198014603166671739411117233536830909720043534153222755860667191383694337944127730094074181603989289480626933078570282614728690008786376572677612249929393383841725052435469789625904650819812630105869242174135631054366828522532518922360458983116271540454483697632200848738304386216163645065932447642034373996850309947236426214729432145629770834392357715366355740169667412089511215060796726644946744531741135900141546196495451411471933048092778301546774001687787972061347932608251956713184003031620802889280034579000233152972373337293141927330699649864863104945553222911444697545148846895741535957571561933400858981659746827281443588788303482521175135875915172553811047546852038643569670541310045930545159640954243421012769430439021711821279389203431862590222819990978545909580732710125338227460118868123671197794652421426107093255180734967665935289345382911539145561323241098300667159008314926014504188990153335589656456777341157023995334168651611351722135585644652215595550311045449248242632597454096137710695813373223171719990883129908394635524678006435371226552021381999663414400431980595691030040668259909491890822592363415368897851589979629571880956047120692470866311114393130765825722484256955896657223128873383152619250883075015301492011243853635943425145644870823920901183669020984423289825370491856860254509740453330783401272676592958787189285571425196196347540805974383475779541182443254583740672914986635638768771302105803469292581868980337982239531811094134926218831140264304140027720438733856116495532256648066344296578810330552906390149425302042406002139315714763559789328183988439590315108683585241028223379152802042196642771539153050658261299174690873186261876742443342469425894239139280043721292496066859372540593706259819921135342187054337660755893279178152095214280870594948813308184241625987007006710900872028482334024230650777132627436859477831092882659488293979736816381059279714195013383405060612175813539643775782140509720568543218210027790990922259402863914333361956523535904910374294655650480899325818375878530685657463990784874155095391134962590276026683956700070558663696679515460762849280116342261482361190574444890225191095329462657065654481198377562102952890388790253662569149822056071298394068471024366475726043868661854495224909449317681590106957827256826545689872116585583713712850090557477571700738655295484637363275774531023598143732243609368544057195577576587675644437617805078354590919212749056176411874075205790782201504940615576971046249444785161040982230433133373426049274161414922156357103269952776979443260937417728572416770291829294832158519429636191567825626459114905783909877815280221497283469048155935167634983846888954683775292416686445352839463061542764391963261955980422083569505209662051214416494301605263745222374725558552986357499106046382517432765597892920685955889886061864401195060644409027308356609569901683562149791850686618307714660370433809785237636514161728574362310216450287858093269927715458534941198026096763888553347338407680623343389283516080355467570314005318963653530372924778804016820357945379849373900393070955818885960554289480457915590227485019838566235478412024008568384346014698702665806098897471161202880858620146731776402683703019002741809036693021238133616891266451017858611533607407529533074122399304176584730667627639313931040054233129256245018155835869882037403896326361944882898105368002358925405051220725271937329573128662006656316010462572547484236607645045525887611635124136832344874019112823558027501213119319038403439694634344520669815100873752270191180683506736793162054718438610922796805314337725524067244164546453468135224337853785609535731182622989099612208802940223285611679282958299279399788598943164537581999129180597614143166800176563972412637553287560825360831405943863835692785866122453675090622478439775863609403917407346275158263694426239190845797093796806728996573461653261103691844591914168011305384512685031695251179814129581930590029124271729250134662548429666148001200358341170804788549483015578855047243314822032713876882390544064796002985751160763415651236496320219968861802479683715823516467068914830569572023399756984269400967809530856058251629807225309513683417384850812079824084852117021674004199881087490163022030550001244365207606756307967304045728000828951607014992884619450122485333097354668801632115955034732032849298851518233620203828455429828123640877638302501698913085774783067665316790294810470318225101843447030534887073288208763895412940172958570406725601674741437105812036520990073389033462985077319377225385077789458205461487516102226816601444894440958719213978550182135968836687398549914058532679905711562770152972120839672649153145850471853650235576764272339917976084926422270107311414304893026000899657036021525070490017495731015204391604670876188776578133463657682535193771800711192746226307817276251787519924875577455694469142128171088380766025687825154086901045149173736342542476983699275334359659189729241595628060390159931132725720485669939668618110632721383948320255650261545133966871632781287951154370074538928383664871062024797024031899282053988752274651889102975091352650366571023609735883081740942594152176320321622574758731675837659051313451953684121746515173225412290830523303866765740035104583757880420552264528489579170019337324622752176573813563346126334753930854261015478062441029916230235843435249567559074168647548728223593336556855333793767516621029187240702322067305479386013479349013537527559228833988954801273324856479957082225164627233831914202697580895701054358227312294147729986885645656604784144489567254901059336959251594824158115162659797677065975054810752309413364797991940224156251148271428604904194480166881837598238324826435281757145311828300206663687640516735852147420351822956185180856134213022830077859213931775965615927816350291014886944173890618268496884872878190673289339571162273196495965012931266918722008142959487525332922899084857184043427960492901283323078514599811887014775799782521798126347847454488496345338871791160433190944711280631491889972453658075518232851018173087800003007685762445532397763230346583673861859786917494716876457155057003494149911697272512753668027112113775253123023172946411802986273571313476280929524849009251477067363550545743751292232740839151811942345186844512912613163856680040971684290273972174758890861345626923430579971244499112989454944391388962661878614288112308687109778441337876061251350247574194362177592839382859773135717952285318084845564830193642303930208115408829071291953722426306986247143533424701960021191538533584487706354220018229804313535711937254390279173970006187566839530055195167937401735505278025830336020673920017677704139824567514308322567077947844275871611237691832884071807797181014816500408012744150594086680451427322584304375095392498586698064024085506796994241760265266335817239176547020357048344184929449834233818700447719798882334767563810427423992750584564733821987736203302665483293893057802999746369096056428437490429802203924038092944573043390821996541562066481284217672518408491756446507108793859793844970336223658574214420132780469068301484206673238348138863712778812884747955395156361717569784841551158260192325229617337790119794687177832218794499053658061400797692871578050982887777483985827336002340088954103246226662425148483795964550363818549470600776597057949871396475758619207307679841393312125442217552672247041366532896348878405768426229687394642628452507668648835951105190878168826390865605807067033557959311347631566292224008288557250127473575364461298686511330530761063591835929752251009033328809321411260533481124534967923524435547272067361476953459453249889967862791353834635198000453063020543159356222134163325222679297881930243955064377700352480056282951151087193819176943088767758967926351187920827881315755409056168044300558162325959741922701963093209115339454727241840592410489786216363433856690085287650135954436383879773944755447628651121621336302462530679383611936322242423693619611023991322486055832745650449055741851287410173082557048174093055239930300004520332975384177948977992276122325855081087999529120979110177194494508841286682323349135155347454496864142866390417455367530968587151889997277041492621929819683647842313150595954356413303999459192757990530985320240279476201669174260343558764371519400385101393935812742591791963670655661990241202937808805196637054047573476098008034959685356609872218051047951569811648801072754238628288140940109033954770302672401517244789664724553531301003629799912803038613015924068427116074162228645092420864753590028260249173443915943798341827031729171745768314252938936464424969089360583708761299052600370790314853298348618965797019489546407176849420749433284049822693672243371423868603766635785532526401995846568298457798430614181518262736123055076526377040877541654303081329840998862314223307634476387480222912001102900250077520081461137347710193247125573275391643676414853645389413011236332007511015146242339090537899084763008550306275971084580833368323976332204568358269323503155346107800829416959909042892371633790785151138608418574393449932847468381138117445278502818289459627767224253660422903838107774917077928857457146556645369268650511633090050375822422941219806775921357559495267703091872160379817015322126510569243927651654241772531132463843399535929425172707455236895115798679350663350271752960748882037479314579846078468661489247052387089448015638915240201064839355551979974802307071230997492597914936970936007565464007256435603619666290480834479737235547556646595274193279641929867608226971913172076732944131367335375408694234104890868594230004586289399921097569165588097028680443330510369957364007043362603050662603487762941650863972068112162171161685335995900663073569320482373683309244946382064261124172636255504924111592552761824850989229615787560964533065770777876892380074853518847524233744659021710552097318066598656422628247110498768665987248109092646042566730084535254416887214138588628097981096463124792799544541350812361588715536571733787161060603072379050953769645769521710174739653033048053079560835024428812374467788468715744094387575060070820536211195292465067047537244023125031751754671423029336682849205991897726268051945233420318904985152482377900330721813082293062415143305265953594654809553045356049377747274190837431982044956938971980253194521557443317672364196103888396466856703038955653621282034458300281101972593579742687335630482662278830177238649083650509834334149576409263491629588638752052340255513215477489416385528640557909961747205507998721933888230171859304147181200513594570755921227494577412311924457588242215746431227755138587056094426792635558627802361322638679987931044861678090821502038325579290823879955143501379387136967816704758416504373422507681163624544836330007406689612303395565207526965629565667272582043787417849169472304096436508050586370750356730301985860599789218060879974607453536639660712334303824859976745375519531867736050500878030214905296990129435785847324996978888488402045695268323853365450491548192897025906216198806612151301463559368676987182672153395683437914891042099717151304254458566262782792064082521199779913659115951566016982426131032795596425942631324243906194048812317245311158538073124829339437685906116331195080992933012134058785402892162958051911309102109898782552565686029625657931543322548455218862974124751261288290992082282038054465338622425654840012135095124217401300271707303406591385970027281596547635749118325402206710712779130153246891417830130969657743473373196850700081682632361092193971662030671470907254123351712930219118700112317736909317728249990972984188003450945050791814799747342402152050772182137248803245019661608110648986843695437953725151360245697730144142790806625865676258070378330942653620042547965277981919648810145454874572369929254655817866589259281709750082025185102017407669808899613199262691933905988994115717342378343378838245651458904565526564513875373125355978854811547136129992064982453717412762283883486652969412786428613544789718312590163066923441052949691129247051602731114849989563666627362150527947255109980021523677292134267889103429437585069768662997364091005826838401941610255915175874588506723513918126107276458194265745204329569479090086599885707289413572117721870080508570367234845104800111902228211253904653444012701697860748153071746872452951161189042414802806684060208874795352131483915426184228001335301747121501876696020386904943707248612574490239040765043318502906079770652606634103839556411553746264705904134745049216580409567400621542647122295564153209416201446107361152157307263927228461469649169145265467582291739438069850780196123288593679036561779282780175915330647919637402179834377784079982168021952530413872146875384104599167304311415598330198829010694349287853500850501023746471340018246679481348258391337658132338594639291441808289668764793278205703200122054419679266984167828743553990573901569032887667563539530295613272971078193185491361539328089804629801817429673096292664753596239425028299122639174071183589570330579720655607929093633388651599956039729989542335440497713942378521953188598636295288906326074077217051459127820770488620908211190941827803014715208937782960540017610431815830672897645718952287550634757777538838736578116781782343114211623137585665646697766036363805692307489895693785920018397750235231977864504903683989385863516610459826100527031948816990491702638011779422444668887078928662104520301573289297786364559992624991587363298230545822929327774738547965257031752368789294910012620963002254178443741951535798254471675310811575580676818294232644211324558666879730422861960923651472695416460704231731203731240830802767180752915068869733264767794625677134027932663466752275655474543312136966854735798569856582301718313263348556681978628710370300181803778100989724339566097349631739786718306986370866160905895045791018177076621849962163900906575132165435206300397201701699717748400849270238990374225684164853714802584219202426729340164880356268293066544953581152187737333033536472353153807286982442220229786244398239981226174580635876475754966074449111094188563906188288620936787518850795749839638139465112296825599328184954587113312281665632588954064513914111712505325576730204359189079101885835259513561441669697100048523250051134648476875198890759552480721799005821239081656430693358555233496647999327720731995006383728171186784872204490220064392085490712542346237465262936789504414616801589647147202402712934897148539004304345059039370900462209274865128885959763439080164433749878189615959650789971486926074456098894317380492768687422928159731059322854597864953590586051908523990053614965714238674959008033806743830885646099963581153155282688101072274134933200532522771836357094236287776126154196026175167466457763179169389931661078061344453197421720864846037502855620705709994911170524758245243347866580545725313385711651661967739967320220547183785770016399768459183819757776265717209007895428113135070013028192781250465753779166093056381312231199372725600548583536023467299992809299330113446254074449240672467531632335848248033036896930926014631441389122032252049341992963463127417943647184412487875965890634645135704686744020097694913340267978094139074850578908271380553167267289134244901174501612203840531081897519226257614947693820113944885252965021449238654766099699551496658199626125674250798671661994120237395047358318307910183839818567071557490970166763709967168481705608875887909628236957726521661775916826829177370728017542198160621026607094865862589817358958846625322831689796865638965433787967326849157345522704659192156246679475643888988382022858688656142056355383049259537531152451821413362455140088347778339834760685902559818340170603803927839332779204344658364268545038922743094452847574931609232516883691691456445700856138771815985681878281793640697972166222656758412884064173712468311348500481197831571613003482971471123862499214770661449003351616196552329467095315269836729537821000791549891733144462481309075309832349939002588022645826833418445923047389916284139903564337582901432246353012037259369183459909442011893533081629990774454643003953739377512603253536393456220413111356959834842661882314031923911327742791736281629713923669980047728768523977952632828902817090430777316142530379440959317821131317185060642299800299688180947509127671541635658730065241595036919097795847820378944221742443884509741646488435361184629848661996200251510291926808161092399206049209604635170677022289636999657336030023827128096587807902501965747512892387765862395091144684525319682309205480482848241628488872379131447389505297916614672905992266465936288626368534804238060438984076530044573633172226727337540861876453851986149073570610619005560216039041165895038189812896233491389550784007568913342070298806776007931415634707577880934627809778718358723828907509625755367189568481916884263389426185745052583488407315321389592955440089336996864148974428861929153207344943892965065385532182568924518103511359068376344199851827906493949575086018878853453660407435363220667380055236326040012231267484111221249371234809682533659993877248711420066645144962983742468595060389129135308533772622231075094495538160102737776394779067274208899412698625935359015145956096839087799940768559758954504079353438810422046017524092259744105888556540235896061122705765925337281561195074842197521575101238365068610320378979261501707307349810650505202770475229513499559804244719159614028883647326606730822320842076951489569875874388751046420673053507592341849427906415185647555149086080396571678010332082731575030552772459119168579691601685034472224917355590607969592681067665976569716538093184379700784170790471624101888611887097164842439903459377401985512614725559473570177990377124698540736122778441674271616889080027773063788279928815506292968260642367291700221801687308460101195128741685297922545395225909634181613308747993497942552661700706972834975309718200211746164262662049653345105764018749766075318539772543760682300443338861750409354738885257918482536350210719888000142418533035927599525561513777836855793254648389854629804647504539516876969540255077130409835840630298059890546962683698504399468213339269856320457735173948134678207794052302405060012902551635992486019968843350878137418311179683055600681637877885231121385331712306091912107362189198429669859099380437089158690280662716799320292410013621712083954959754455291556820546555057257016957252974602704084749218804122816132413642568890674726549834305802337612380286375794220697610958039160180299445377422914392041363957274694025535215347457603746162073621934391324767135705810989976960899513359341554323420813989873334292458970227339736540226549119759073640979681976621808935395522183823315100645330773882718711469620698897898674923653412701778420379193554880565032083059632450987651385905191225463010776347427180100122882093377351128898959568922378054175953208061411691806628874755460476028173126223531421624903999079660420615507334589251538402850209110938837718751903127494320166333204290925374741089927858528436378497849855139098488866104311905573530325830354932441768380163956265344845237244546206090740613921106102901361602471063214979994039240267923890822833295896682063447969940162128441547580225781700267291608120534930733932309661234892954614149359932511725776026142258461614047119332945795523442644345945178696353308269763943404863782486407263963487131149906022847299289409729591167501583039219363550721295884057319546555594659467162999387950947225455307868981331695968554795929706802264978536357352602849395322360683879990794515779875509077619515545933202156422429728369546616173247229149261555895000281381636573996367988946115648553908477755300047997610966964752780171438015005229802122194032826353292096081074333164644163445948773021484524424372272157991189121447900729995100516053270276710312176420267281952762449015004077181127101384492493569246644316742430690429393895096100783747888754359896449392678626478020631740542883765826386319818912211556837582565815292130566835232254983581509198814059941533516282626647298745059671510480186775279710908302959271461425815396455745452759615244155623400119958040215462337643671788218507592920369760073258761142914754006149367040471604665790466337979634761141540376764989133165833812954031189502846542769789922109223744693883041010073774479599279093570122447912604591568349936144578291209253992553552848727632579066875093547639640991190561762165431655130137859760232898726380843625237758792173631220805082981640077241574482098506200891627238173890190520777465988914928697609865291815079913143835195421393009772828669179625366488543590352429602906634799782463876847475772721987304519919066783462740887301518589118927964654230834995062154228510752874588277145743609663386579878665215668965250812627957518184566551324071107790580835388333921073067506969619398794253402437276248284603279650055209981566646427573932234699960306985527358849404390432253663282180854895994617409632886749840873105858660549611510305268998645163701709031090792585822943237225743842819490255912602648239983178544020641191214107117762555363264152159765201090875881102588634116657358766361039892312327763001637982476835744924938571742445552751557922357564772389447582663042722607172012364660271802662268640470108815865740188071021939822914793753610883982745907598563675577487814948086498318068161557638877427509888108395248779980831985172047605941403094225175037940452970158023235388352459554744172958829118155963335796692893551705687588011007008533651424703952629621891028075988346872592889207687163297460048433225651651957431520360370243061099265279325310293393185201415376685418362315856087958588521836992014262426361107185431305224476656962315926327335954724890507437867690810353324884088921109265807147938472220533111640105226006142315530311399905158666687498988752508841334611055072841644475586457854466741909205980400174116494051930747090119745591445446683341438515757999651790817374823610910248948122957567853415524562319539362195563581722038260162159386974001168378023070233390649970275692366888622411966677512177232136483379411116490239252612881020081728481399908008534993979498730850875944172238034280042647906741220646729090253485234072381476856456052527504250941876170657099748221210993005618692698506823696186656028737549260939460737555486293139596364582427128705488061330679106066008695839293730292091824078788013314774144755128544206656615361375663582352345146364552788544304076057193289162799603012550351584806691054156898328652325190515364652408647212099534644616112834755819326279817179194882165001592026663174511194137807816849857047407380982585848528243569257783693705676982185405943947630422977037389185868106435828106747717755217900374342642872532107535447970697937587262059021222747590240932109734490736341454969378120924669178335347774796856201461543891166957348472429475922338608348793603058017383152917711185489334508232652475978020947997836109687044988886053573107071186045882119359164134915007645674140412577522661238197313646351181259692049350576794568924222233960804540109765045228319168862035353471136805628628079601733266352220139148398736364969121469858730418598074421794678850262436695614073524073549066829872294965076066374420630929006474796557447387834314049464218974531582877826825001421696783499250500502372377953994509329943178197610673781463375727721728961840401544878155968545437941190479631019828080470432821896771906513361126005347302716309245142391549363639756568430310824551983520737641587730210813824802766029632474803725413916740406929249584923325465644597724889151569647335642975244397726127815224100160678945185077632728246617125803715383353257387010285237297346247979108604300452897919815215071147706100537475493588257425734794759543898061984549925690626944303494342888765523044322061630858110103710740675513082879871833732301075732335146512046618527892816066236038827375223066880498012186189005745978928225280752375071653682143857273732096650289073400261325209391242593916970533123890922481600660484519698092830987087511164295135504399390929534234349646890875871413707233827945527383356105513555720130784369348965026892161404243690374303568120669153810535030264704418919636800246770326104120694794828056134321324506407766418257882650150930652757031052564199474487386462878102614221940384114240646516165458524142977709096649148466591337307790780666419496412253639209624222915356654772513116230077248058764487070574608860535327476386213458047207039458402160426988290995436160544532135812743781541927828830600497118327854770213910400335288480550799370860770905696862335825272400892774412416000396764939379393466204083835404648465511281307327176023802071218323567714563938300355116024752554664326460825167096341218400942747482509098615909526640503993989498819954513788098298808236910933037742924324796996783684103321447764694968371099316735263699628082074966024701069782205169819835590141827021513177467974164943361914397888545993301808176100844842228402534677937408914100662559656782550966012330736675790943872147069087949695218518870022773990265539867693578146300426912654297519407175535250016034260410296594140178756672465465270300188218573629826579409036161034183523586138324574982740585703105878217195027992308117831225595867883259970471600597177696428353999698802770248036843812102916764303231447289155143790475513515401598943773720181803290850042008183679702673815960011298576143323973222253603940808430267926670074285629746881157511528072904087138835550883467027955081425978967348451530810240288713675278231922613491424548027177692768877159185815519610647646618411551612828186082376716117904467312587384982925767516442516366603766621582040293636719460976444399253968474622810200444113930415162303902114543289140631959559736359185282105695080514445427454028097443431780693353367481876199397171645944446899339290470382083647075034877809166388560890562379144851527110133266358577786828954002330736968052071323852155637567402137504681824985321693517039566200449158908723542127020005385789705510594750794599266403502347027378848255450183166054365217462916035436495617358272488167939883134200284138996055855048711487751863003386046986006134919203367243903872972778098619084987227306991188825008123356545331658090647299752174777356371477543691074691845606198261559203761469371615388289396943831767722884514897337068525092313195334853502649134339119019230420657555885044728004866213852958038853920226496585784996665147164617178464902617863212723443021821593658790707268306208436174624735572581356367399985065689310187334847656180938493637079235133840045719435107892536380064664549527245309182537521426693856653026640827579842886343653260049348622084096172235272905127565037522354493219598068546018811573891780391183815207468789525814263520304498889745196715420602232065381111448772224633421133827699440580499955503948613283101796124268935052809778956849834148996781502420424460075890929192306598265871406557371311750694163015929462022180713774803065287710466958962115410925722504087781931778236179577856034340346396231639887734863606839160999458593831610970254156153261113020210348774468877168382667417776367633193324866863267673047447908040677102436793102555142966219148285948977932988534742506650960236507936900863515837809059916616343255270265060280334060343218559077050031460618187247301264431542964079709164374076682302549201987506666906273564820870458467841577485140893212373519047256681727723708176736606000116753719818455140690281119716771638123539762978036006873607988151582895369064984188373016238935404555306585861299511806121168994924701856085629924938413298270321943324155757573598956605528187761779499778069435327801933963576321668069550835288427916196621645424365558379685779781682853235645656812015690335485229540450388297667364084975328104153126877426063623782473799879252112959269707170251408391110414258482353119856712980809626193283691835402977025373623732608500706421687918382038041571609005145736429551433456682655541314455009010412114670199910300025611080860283168386528016813987916368033272531800443586864238884521111298758356186526062129355099917297724232551755151429263330326894982181099144576047603482414659884791073039920163758201067070955170072310235945223936564331642017748577537588832822505240373597926076684850317290231409854965961696071991112177884092735016256482343472396140918237704849178597030767483330699941989429862997398700614171154262741791902552825743093920545090683600269579071802542243321387860690846181362136469136132729259160903553305587046264605881202881457335036177633524025929362733384651668521516898137887893645149683544620719097257454163439814229174682364087283521071510525591686933777644747440074293762345348347885054792763285674940633283437617860623620015624547483491890257314604955194489377380526238842927791420027584407815711199535123384430379497554755360696311737326189275193605166096186079378941671473926188609714878174008277643675973335555813147106113614210106960109759417159227249562177455837493010235678603412306886042877572749393182993931407436178607209308434820403697080995886201882578407951985710787402369737560008787055735691343983357062465369615256153958089172700746066030232469057585842364017605552047780972573355821076665243718919872056449535423015783147108567949665543835686089639646754016058937585380600645326157112755603919069610707344290286594890358682498195487631216524042409386221811244053334458124918904702307127478505056797932210229146418805071366398552388998694973160008971371486522581999762963835741879219495647630900090330868136932964477983973573559708783676181791266789976654061174769745391321797149292879797095779377726684260587803366987061247146148112087671204442872218638708780712692488788805449472493468898749499954901546824113948131941424533562486202844741538544942763073781854417062142262013311186207492504785177525175936767979557434342202865658809152757452318091893353696267710049829966852167383954131081720702165228141668568254364962398331616865404780312492456823428991713999673097246672782296660625776298348494658000618131816202005085150160359734398088270556752042345003703192443625100453950792677484700734347285801921437854104588622760184096886661107719918687735617871731742776028385763988588970801408891073726408081704973774071378394103195087414495612387488480504764223984731110394718759697314572485792985750115608102901003887134288006982128566014934276028834258555964544344494575332806556955733246011384576923239237885244418555003930315892970893213567342174737171021007746602144071271500656893671487840770849982175893511141708062730082362128773317233819025775710784186120722640413027588155223607639573481315605401682220199032037266294523434699884558490205983923705177358294603161371681911374943656799163855339694439827922113588011337778526766902270170115020885795839577280751483898229900671900487398515255500598084892224569732783919759298053633348493274592274846700012258821111185696725985213174368309767153840959780758689150990304285481439387627369299491587895629722015931869433363713001061780478088978658248602610501050683913113699312592804403481715163169193487100804937599173845924625941047892881659923104000437632704006133786269667414985408059940951498678857517107114873311949709980766209176150603886993941310221433613014806691678841938372373060118438544042299636687195976148163225662808232831912000767859607993048618311498095740553189456858876654328254194278173369978589674202587799758319117389275399380366621810969182461056282792891713957191313816401365222039929577543344479099410273348344179668086589615271158760595961630902933992132207790932365462184796417551695737583561338657793581368024234838925291107587795740861217604029957649238395715930448975022498861764385713664526177648081771306970711030874777947967157661367719483002791467382041983394909272669135062487021446335775581709394249638956146219505708009287603558451037281714871872792565688488264039402953259076837311112218320559567748537291187689696745860838910973456408160109105491313509463864569718518041091344256272858974769607589363867377016106120956755575359476037772103441769038967433660382424227118236576969985002877782783481783110552175049008957374582438663083286937517204494316061491043259720590997719003502913935878013765576681331847654580086137818935838880091391836054662492689662848232690450475172165832831092787167426474957546866908949354528816547933660288818796395654305976822265484289584908951189158396844303713012169695974502528739319660302462822931867001368516231304175949091042339092205699075729175216497907583356205386653203353405607625747335566588021344620349495003980274098619324220180312330781543408487156697232917999634988487917197006824223712629168575043667081449859750358533216166012670979927030659686866675781194461813399689506328779653392367146999128981339377641449068560946863730848330147475963379628648782418384286880345835487755150571572182392327027440489782500562295381869458468349379753472971911989350469171614537581462716607804609244189835564918329672821979649717307447113233661398718059125373198742380982467525184069450855492187392822176510829040589409766699003152164934318739287268264057342853885951812007075984029328552716922434863525766890285618594029889039847933648083703205789765761109227513567932453287997673766556268198792083031469504508870338745156348858763072098625724548906580197713681984989164905780234175487780537978692908577507278474906254754878903634033346650576833229936727543336981560460934559753698326760497726456665686449167826123275784593436695960472573725412530576099696713328991361209808046313297867368107549205715728901062275171792201897472428397536223251165189179028112599883150293180184976753038894316233592994243424883667276976323165513875413081113594753463163060094630143172989186630586903271073794409999838579839546047042933222656873386445366971635324927025240225193347488475428343274158613953474938652760641310164023618854315489140540497993796096176875981859853558922781533404800681297101591302547612326533372153979725466396638983893468639612578700463823443290989963767657350792747952475325176558880383957451135582744959941230543646187709087635508932314189801081831485430467996068224774993212191292899658623314379919178922089762890771803260067283428441163768273016033370846898726150310592059586207492251256542187517644520671524575103599236622766820739201044241525902657085710749613767923292987017116600267443541662739884702882827328998774199999688649322988586164861730853293220536122041946827471394093567155338970827893172791915060373205216919365746960191807591967760799775065027295701069682405477713132492162866187750169812098841380868456474294948279470140457201856277379612539743387356550443434051184629870371241439737588787297816325257651768444398038967689049599098383314664416219425272699303441580812520111323847977572267432120508523440899655387796070799500525834327457037375490445287786502558188884042071161968989949309108720035954925363987128445012829294401898030383618001547770405272690358083582720765724858370779777532424435558129693529196821097181243207686609064804663042706503215838067126418906271436941959905220151578984401232491688901278184831453472333819130840669418998876222199767353075986596785244882720282287580623853710256198385756427516929215075478562739304746170374362438413536601297823804846564842566168680835517556120461524042927214391347523998571332617547315491969740497908271566550571251430417355318278985157652142191096088093627585088190982616900253137749925574254334539349049993862819337052558080147116233877105504905690427898445660781465314479071044657598847086520468028976933988234550049708066925649559125746204794366923362933791225520287591612571854470737593228078753001211457128381173666034118472172247536385210043353479447310508861139037319702651231105176307242220839045805518082321758556400642800559966439273374452938499377268443348130305501731212435704939620683306099083185044163403963598983353202127658943027091388783948670447180071953866367682971458824054520410071057734749416673152908215906532067801919212875571992413940428389189527083338394030173014876346658234896827592584934427403529840675987330540562882687008534287275963965141756771636090564796744272942270750931334815367159463670231467200908022665472041550119144750121577710610676935518677429622067922363048228085818270374476109087684482099868208700583494376003957211699572588459298065842048764947455816848447224432336986506867467507911460869587574071376929689194566361759609210064404435230053938761385552965196754106728714994978566230257944997290907262698882746898730551346185659550228201047238650078857386161185348509632436758321180843479054250964442908583593881292702493646973117517461664385750935991934813229026906457678951846880463649247439790956865055283772265720045943079979405598457983296758353590612650268948144990477407809427806423680156920592586562798760000956433907036123174096437070984582416232578281716860592308948841362578081525255915379363250498011686415410969216934359122220744542205195415821492962065560800320496542455766494625768526717606076569855530836626827661489341186207632796973759406423051477683355995594686496716203800428572597343376897588880952352695180712127184616640726548068033734797817087647357954813337680963364496890293874388861367730157294383569247277824140077116797857955554296790439322670422253897076335742420622526275686389014678739873389175903278107449419446866754642540096379392220484931551078352359779095849330232791788524908476605746258158846323315070767268962507568416641470446296624539629035438332244485243956063871592521752562958908740220402894178358916586919212877133520171351569035239032955730969516166770639827633717829364392224670254990743280748331666421802512683680604079867747706530684198663493961113247624760287844439627195284863639228656021263996538385970655542937165936440441105887561850061680835440119840235240913993286440032872664310362021304568105968573708268860355098616903005027865745386515132731644087615550777332477753411871414459185464691822895645895670428464064919302988714531498394400648548072192652288282534362008379820955175526906002260367315293393830445713423234400940147595820646756938062682866831555144746608589973376252203518757845985817699288109271997257865741807914671420902724545666028473715319416447405009551455227927443396528304123069849450243359206751515890847240292341261551807016778992480414460692577848581286924010948393628711564281245519844740577875498101469184418932519666350395138298932189701294996560979982596138993332898104577196211858872315713710786761243985606292532954848634301596109643405006649356319083209226330661936347588310744424540264072632754827269607456281012023364272512920840272856335723495198018973544983625550798642801669173773211638691249127383490642576209504837739572144745179348540122748903426518050080494714009195515762676180276120784757183168477015827344583196587628958488042505210986454463496276506552160278865171052731635268147176476112030913669031687482872631631293613427329923563730777668736890978955030816614711466334334428479906008686253630706197959726805726738140360898617074704988266748072654536200619145831201431714045775188211748234259164291092205426994971886721555606819557676839717262494193443449044474255976543869884818529633512812837969751602549092635739236732942748292660401441203762772360465433559328777461413175728790100521718079706180997915800007515742885819610508718907781598362311976910740804757644365984564081529790175010981891229887694296868137375552885710667184852917143898649202870718731297954326032149523246344195763830279485977373710543346469576270844236915010026220467479394446242742505899300741280157735530416552396924878271568858606784977041374988366292283491307462447718643997416785543290070619072896094839321792201028721627400187371315229867586696743422021106956956195991851876549253878796685879041451506454918506119324128007442189717395585657244413560123846814199400067210102775012898400055276379008252634428808782697620055404262995584960256813302865841233581648134744113833752608814791738037293334670208222278691430765973712475209960489133416139350610385779596632301896462669291520749709336138715604312537247906347935588509303537136512566350236697615784600340322432711395271786829392894549010362724804750084387427396524237569031620940140058826368386639531645452161995753057885845811249714051400097014055207001619074168967557807902937036823002879235005055357646590473163051850270182008017406234210089978275875838444899346376744656342868897486772671753064266733222425274824391193184001181282871074633600376732419322023175557509748298753439429852640243208807753150396505480218404147246673124444454736281602708858600684224268022123576736115282572971053286376405157273072355574563529674274362004616023142171619611306120208832741005905525224224969054145958293318172447442545985362589877997119161148439062681047139181283115922503755919268242824508007520842790593463429720056111187060534048421797198796253441442609036767163690070428744852792931120371578239628816998537661219808499732942735741003572798318770551489687788432554724437631113231163212560800250679864952411545413883357644007809354925764820245157233048593619248556973463541009124601381276139192735109250930318909208775736178885588935651616840677349219815402254545034938182851132067300292080881701461625793434190504352580255350744746419863423485491811555291867309646046071328410724509051612752022886886208233410534751556647072274398898698385378593063655450522580481299813293436946354346691780226660268645838097146548386366412150223555986708995975087969417046487509071033857682442706428812705173105714148748056325990971060461518205853486087046263135051947989562573159947948597576392698579928214521644870158994870763063193785522555381651169851651703092869584918697481119266730929034021035430755325554065487666943879565489224831934877762808109245802449269600754321487145649332824110522707998835523056104382629590391805262326712662267640991061542947377857177473261891696384185174988476409533930099051236610803268380535194618103739331907561769419466881785745698411994045085489172221360412448592859187663285557174737402071996073867608814950302066176551823676734166393984016071634648187820039740247766264641865736278975312460806868216796823411453418989927363091240932868760600073327384689305682966617052474760350648974319649236631140495655629859607998824922630281645383889615684846944225684182762381895454087098483491709818793320735329657887154772815452835633560697753000385597797442474933440353278811334093056014457055996974820202148696775220960028349655022200913434988701323964269833853749325369779063213272199468971055787341641296623268837396120689150599401980811483016107650336763822813807726025359112885476054408447682963320723970061117889137681827961650470474563144482709909692723394495683316234529091949389973522649798770016217276527456735127494189990468191245952841564227286629787076191221382597057419634395161650712553463744482641805135489909545477365221963592791104489180422617605315697441889408438607931622462032448028029555483551922049514513468594738317867282417430201625359717216736381253608973226686514121774414449189826499041198052426569114451986670768079906202125434738909232118414461609534921144643350389461633417815075517684200851935996411843512174395686497875541191964127725644966629595901435452611740962595480991205809033896288548804820798255517733796442380293684268909444448435771063110978682821190783265389117856688494444723689574239809645488433195031409670757549889248590834522213021421954397530982969983617186405432892174103528273378037394777694987044659715010437030325437799074138725545849108104578806824785728930804483216573574113089685703814745982910428203824700531114075805393784875256015533774342316306975889085094760871409927469143979291727988734709420033555751341397240142803080463103694590898839780617003640940814451833715404425681684047355456856043726821560546475087953088337125338661112445292328697438346043107326930380627462060503583484189544821552302799276348615684385916967372815139766597984418177837132082032153956548193018378757335152730848150380151644924534063959380840656586307390701925977563536917272776603679453334829955465760961520287996283890537197406793776560338426853853642369455526980571383765117197845109196816699474902144158722074460489253520760338908259024537162095797011589342554116054897330537052228716056575505642381695948277830269331459614152675759160309315030031334681458290486689325189521614754897630532408006466458394787884076043017506280980206120696159798898206420762456122354050994662098847567363242962639196222952168172788666480219410928091341780657755753437125896620342078624969875278792739314387788972131026742764415436031042513442714947195452431978816660796723187422904950829168657919082149311016813541775405865518582733076183037322797998206442656081309129770848134610021750599982101587514303856698911145106269798060765351950480547440886278441728780428195916383897437060564518773871939435702680617987874229365994343610049303207130142145731481666981105261959977398471809900821528064146568058222595363717797390734444139611484407988114278738440911766608018003392369037778754720458283500487958984427759326842117166493924128739078567683741573975094762050930584206177284850293729675928315713020743055554762084556534366073691847606532859451886323097211422043442122593157328548144282493381581213852226030788710621388557138198101347534963697824868434627384081591940956939641855220610391745510212874842047720019556375550991000919896869817911841068142229651245921400792773255843233181441013863348160824286714008268022953712516582924688299087034661463939850178959853513057480078838196354017564915164360986964519852508086555869273667242843516512701067340264512116500312656628813129672613690246832975701472274447614908711488431997775416618243198320423560319959162325437689152535428495565526040157601825852742048827732762532076446385992448883532734066081642967700724349677820280485700979505200718290139665702892021523812570480992081514428944838742559562433895399047848577594488977606419787815777309733991230084212501736444450514650615279753447850779349564623026256392824971490827637069041179960654701517073543969701031155268229344470035138716939480565688528267572324171373578397115677648547453422988065032072343941258549844401574491726611017467763866143819515697571337708979970237062257079771205080127298171145280730820753322947243556010967401155193705611697788332163507028882587003627334139277453177386423557446610477370997486400249638305724576930709322841066466534238972200149039209052765990113064367480187679191574780927203599244576694081450788733810688583314091978597417701940850268809763705144477623065110339524311230965106551169036636254277999376316407098073660276506563159107238687367182898102946996388240502876419958078597627528828714783632395872442703298011668059213165831310338200562684320749048900828380148891042293565585327655714125793524162308587742357584746739120002495031464979082871568882889043254173288374760367166278310242829697543854318882020775467249092357588091465154223719683696343539573486645822197914789209188508491701829868483109825876168893331862323033749612960164878696691606517466792902529112559009500314217360827593567615812281514416967728540524955995425771515181481390993517081665879198385606818020707198270922990234916996801819326431552208083596447329209259492599757764470440180146969444019238082716645636437378463594556487095561462747520491688444270730078262319963688726184537063893065454759349658261145472294258885975980093782037275256142088159035657338423908316476684780593557665754689768633576061537524882202831295780481961994055458791285833675717953237998375740862794238068370703180426434115782862517016641564015773150778092437151983679065374347381605666105051065239701679401749643265873952439931021537805510643194775438751535367502233892315410433772622998416653429552498602602562490487319869538117280268307340182118911172020687385867180930359261148607578405552336896183829974623884511762042531498166765976062275158019206249886232643249549851468124431565546790443217040486166804404279664006014873519456052565952976728350027670395404103383383236433934120186533947660104579526957712471810023232429818167052352911051162452020231921167397353711249552175902605059424924880358585176612100811702249029135395320747350291343546640477033150157200483687614140706592238920309343181181901339300995010465815467480410364397392973537334086441285981307444151077822346073358413692326234598169399731235291927194607486636792167723494847294952427949332257077482824648075514160560087197397597356203087727094318819353385999929286430276273846366517773511873917125273195014059046286894366957727809322413555699194950059701114042893453926550736271408422165826043650545366992571621540195835765127208272190680658413404126563557381361247803581255989196078671312072997961991270763829838073677018381512858238215273806362576222025472715680629052484262076467171372181319932261167670727880753344572300887370889417757215224796994656211256742776818738777913676322200591711226785263698230887008706040919939918402274470613698607589645534157145116600732745360332369756377505244351847631268527258052699484547033018189810563914882510166233401816321843021890703683023326446468949109668277399032218449026190538745926711379804136700293823244224596143291079271904864307743347917461763060471982490648120985567431108842512834854930588867724324911615903356325326047919666109939452026689382066059795840228306323078342457460395771791450913783033377079868160696115736363796236843646197087381589846972058406820203827969273581682123016966634794423061684937300881163563157152123698629421427369801537600891947724440002540401061284654321718900765977990315666521985734043476492631838501449033502961062215679143419518613402591729839085797204598201957125989263150482230644749538773513220188284446787985251873299031502138947472151734196663797769206599489437642411930297627707287092425839971265923182917156431720853960190465056200574002673459909443781577666425461731542521907815312399386974189708035910623727521002647163801883218309875621995449327659916567151649931911395857361332211172636570529710117563145920042895804394393923923071827745525612508933809873912028725606721546240542826587212949622673539417885646110282184913548432060592061786426803055528483024621576720674782485308408603836049341751145529799513999399430169530549893797871993225079087318171285376368269129439926841652610961199065565052668695348121589695313913740692696863913499221576569646579208174876451501166759543165221304545958546670660516956038232980892146990977141133776484861846974789816260367843218314555065020663430740606413332082948089245304263112158124610161503677423759125185022640477253382853852640330198715286242555220340261555743013672764647970813555597690702963806450652907838043190554399454390349215376206019190783651979302091796087871491209372664751177273646352767991023882342798956043979855130956212175176419647458382936159399210827877512116987094335602385205631775023032645673222114800160842957202957033780429763895888351263663241698706185669808402876213738179089124717833947031024193557546731822305420102658958488649325537582932645367442631319040630255742800211678938520407275342937367608319225053002461826559876994965229141191472779779969815849884045002261773585588780063568216253612165119075767523635817862232423023386461968292087776968149378275272543177413433024943389078086344692098411013060967783222902303367864962253371718846927679644721361113157965550842576569854854749484891083072248463244921381874529615515933346285631588339020365574231081287138872626546637200682253727456561415237689025920252184428694645747597222215171465092427754072797827959335626127904968064308981945264977284381383620028459053417735586382432108109020299710389701905021093486986620385419239255024393050316258263658726799352969046873881798516894658496481228250731899839359771155643747695684778748038690885809282976289407254349824177730389041487211216873085993146487334366240265865034694342247147444712232980214266680916805947218698678071865321107211847286446688181884331145488143423160975819008783341690449633699018464625455834548269550375624603343942128601669888896370012098099902109087302997147268751323954753142850032704033858390344378119661811110058529092986967251967069955964427493260344606888734021648328765293997107888635137294627787114732414397982892435732167795718511345264600168611620735959820005098776063193087992839494924155553747205395266123870924039256042350554640430893748832279606629301302860881201817534407429011839327657037921183045259876971515358981038123850067214496752223618637886611507762506784206845458139355377615344573411217239161252985155108729858690822992730714425640350375894738417629974637914555450058861311679433102244459011216138015486474797138345776388620704350149962415893429419632734935292421508663812592417679929298146187926883834441023558657785276799863029074337434229537235549011176187698458687869518856051845277512372402044336872654765064155308463252810556488825222839174464368640966879290228246297769071431154273440738284944116872727058153018410445169791581662504951733471733288448817679626480654149020919115492100585927226132397096442340595974338846516822129918871668596942650882952750490268475841287723347130102292592814197451818964332080513268008752702240695017834227630190923844527424381607281898590601236196652763586291807158937265531311982677532630885441376681909968779824527521806581705205712593933216615630500817454604317586310102184523051115576627659639998562412261265600748530931155354413437917922221578098485889925400513381599644680571390231292634895554693709494587276729613273371504299854757942707503146517037323996400041507731885070469502079120486124216885206967116646832043625921147292181431245183480246959774999374084034319471181651573859493734427230125806266911327496395902739993416937077836200061000837979020403720978459997331463823067959425044260826894700469557072774082651910521032961912743392228153017091734038494485037632696633642056397775238027235835082012134562142836758389256934532740501087327132425866629036248627719583316145289489010349136951146406010991030665633321754700345564323490383951980450553253939391602836420064161103698209377998044171603606511896721296504788118235276533142810642805356958271119373392022382348407916649592907640537909337228094401818028129969023660100675778783247255117064618534865501342686520653674463311096152976398090424688972879882995995006968317088619376122706424897985128371087769782515924436803629286122841880213635215200508651486104224282492267361486111320037664968852350444900609050046436959442907788967484188014186558414067640915759175298468772723087396819017786993905462335246445017641333820490220153607198024055072480263668289509675170539194411990514171126202025636155408832842788705075872239446530114547376627898881697487989258127102955031116155368184174892272531740180820594128656259114745414377744202578610571250652708444694319030710140577546218067805890168854230908307917108898037665304816459896671196788802343436707759745400748324065034426348145932628832915912451408943971907858747289478632958027128549121238054085741944347404421322826891140001065009946063906867481484426075822671306739876804339976761305389821992252248734876844697221232877985429754052576788489914329112175703241149704471249706763376472135190954523458912064014461633347937669914734124883958855268672757081697890559698405789589658327720107094429944915796374847229240427297086648726337403454433412035763063330899991492633873435002613194450252439124822462016606086739979942662048239170312278350884751949545728905283371267104817094519561016759366522875606412720078320179693554712659995253300222045702856285902305757940146839249543844294665267950205371405864470274187447072408741738806886204752172480500043458781732088050223937405164481663743892583648732008702615789750278123341530555886673118033613832335866627433584783051675649266180534751645757509120772156031018385750626348911292503212917099494655538800976725270451519155952996090592229077743370899681146854370060200003628994537729977283966665026049308268104096003676634521666000788975894184877815860557012832547406203681881983933153079628936841784269383227165205009111127387168425196958625946683574382139036730562637787477040620482306408931274937373553965932489055397861237782300861235772740155183214364165138468489306511078354279039203739207101460170476710075924978257291349759868061719539027167330439019006476243885894534793247957171110196707388588932295701716708400157193278829824592478506096313235653264207385737445930904530036496618417620467710556580721790439985070491380759912421531208762171044276945112282523687501153089034552838413821998500690124046093177918037032055794071423398446437296057032133054245652452416137289222277948902749874877921814462177192975886413833680208632863301392831556208834864524900722978587037196777279524857949420993679141721289682335919728401701175354830283956770050741790591819440434586496593743611911313958818582506606636568049627197571967985830112575856370305417548261842766072168349075608125685485495159951486101782152114536100690248289851725115886070105703057684146814209155705129643284936515335412197147365330320128979255200822667654410101859654244328806357784807624317047507982688196854255252227144738114762384973777196844494788003623855770968730652572109071741898535693277219039734163734992565115166916364814599582465495092894217585120738222054877686845273584857321935801418333352453988582467528770354992503670586962384540651608220029868675942577416656135264088307630917247570861106631003476611088341736884053115521197410785214235458828097595500765864479762107023414987677487409242876802219542912670879598429194689152738163591218340574383264874210416688500227875444467398723627725503886803687113938351207463514250088751798116232912486631515563016878334136070272875968115585018363473423118961607029957919793489908108560145452381365579268137245426193231504042917698613075134462743420391217785386654884771253194718008705136554682812271050522733286698376422356763655184960477054447094236610105893661395209393154828164092844716404468321438265709018819663435000182062378871140216882493701686416962425124290389976891957632407059946568814587412738835865438191677376562381470730046226858931593274811304890484680659645284848413316749421994841116602192497092739419511790130499336140913382045053403999463015641172724667911614977334250978205529861043317153790621187002500925459105971017095672155300842182376619922637793101076179579106483231479778448441966703944589816314970116182455385219833574903197483037629843245770758156251673186762283333946178328159010352618195032458757855557873709498930971607672288578438735398316353832611260008381317443024231793350423618857481533924252668997312071407241664783434221936720914360021216285150591502852370866275482900381847015562455306554165733377022297470080957834411197980459346372914123083238402873066802168418034526009870650682754186672468331183157322889133582129242834693290285157636946270899862153054634519926292074502271053050946674022537746889861378361477212624916810853897729559779430860266678469574468790376068039454687613170550628021474457430704789988961180395214605448686569880416120882740397072103048797248805910186824455717664062079976542353664335294337170770671771620144249746695947875315816775592345181318896161394472654023569993391838302673437981141361153115567417792874620013261397501389428460617067307468293747391476287777877700122919258835622625168610625777315811393611000457299084937529115928744221263496943741295684218949896133063474253581326460491051150584310822243288840193457555025400961811420426123233360482617849750082456119961523400014175220349344485105273188033057761743076086246569514378602271562447481101469034089992661800473629005280434371254383098166312388024638270098089160774852342629668245610217144276162305633766271544695144747748966575942786628640249940731190159175277198686018771366348580541350145838366784552383894873344280665184901303439609532225464551752322750036787821512933739236746820726834362452550683832164698689944907691379245300793931439006857466046751570685605161880760413693050154363054834359289906814100463167217159135532962912375438971190268525007476592221976692734544495286411651534433194371954391968751061234342167922167217623543333042184072670549730219225151244227079916030218542032859996803046730808738284908864575598912823990007682946627788177231356736455258548348435578514821013115579295316251168908980674298474998818301286377458194271370790693277094472515614627945149032709532430908203392316863389340770563313730093271993293983155465764192601248768673618159252033199774596442958725064823363526189043892493484535948299739848254741500328268397736592366455867496671013903001069645583310643997920404081455540171745609663053727426196678702203078932210094647373723244310948515353414174191336842569115888089395681337723083278418287904622126543688722720714641706890910774884909933628624974050277701687301746481287643200064185789159082050228818764474808932308380758085634488497847675244138269019941073608050469189875486342435035652567540637617561268023495149588306144274099249408691720445579713719951797914593268839514572858227073575976338315438578352289796292066476067984359605442503700242886634317408790315468182356821070487326856818245882903925971470541903818474144537107027810722275022564620849420080141118914141240907714206962783128773548344648845761385508148766480562535602602576492382392647911582103823860289549425706483918967524404575925988623470346747051799571969793965181559252564098527683554192919177032592924456741431788106352693645731365049382802789472521175532987567958855275091809840494497443040574327441504808614389506109697671283948897488637891846633166699823646401112340017376744928928781253312306029321346345439188296469523243290252165210919981322673195609089859112641187386589796480627525242531779398856262112881675327913099183433916657996015731558938106950792389651701067490562960504119066158538330790655813882284104646327765763760766710900553031715670024873241962320975079779660304126409028365819075572165554944473319814972701491809906996088447601259400409175708912423298920759871317066755414399364055698598605571243943580209774923064015050683103683214314747508942403946214910446653400087883389417143208974684661417424242902441235932068795626568693745325848436112516373381397018996362457116650677712707539120696229139013682236602056031682443823026951085045244147850681215708017795954729969096682383823050494400487222602829462360541970359963448129173349595959710761763179777909589790233096597275188840653361617901679473655752619950974787096676367692984545495545900211525964972159978910794181447086632334412542654714590335832921306722976036171169590104347173403442181948638315085732220350899635115469230123572698825797944598629391700899438050401148316119970535429880974330450206556109584707441067720252194192108583821061900363556583234457040945393633783716444821179435182310196640001717881891830808656842772032540754093546997389473723159977476835009350514321331978263153834186479413305206908868953965203900730127190785100534899662371087892601330045274222797565096033589568479091492438587354203738826360285202418454735189283067193337248749345006959160592077225848411075451866879325891622857461974614762921205532674650102867813193445575900193406931273730542305502925894389396686807175322638497803642549927945367191526747363188070942477214270768904455453551640191258864191239214475901340126303366717113259989902680209518585987038525990420887910211327222028526623961476941126325288931740578673148829551433001119176300850637476632901705446208152860043200811814272774769230078603298770648827805335642677329534087617877673147070475341472514061459138017421500158637457102153388198023031653587232988151657114389474947467302774838698446948074235865667247354733340860425937084438831781842964968380462947419291994580892752460947639818670672328133696016010313985993048220871970687900261206020926866607145713453281014036732773907058170414745390674600717022587253199605367242761986289209177537902996167137217579393658647860061409516556658982657480674231483214144448738423718398376867182807924014557638234959992999161817054876882876760578542724084828044020024311123890480384507284980038064947518993268999364915748410603404299461162430852996260104141303139108215875778216772519959615604823492048641833164666398420683767392533984845511043604599332216222260858459340434451497906932485269754376366715823376396609646844832869994428305481084194009107605657284082106378921969261490603911047027578525122320507011950359947417719741061181722837340988907600134014394499988215831983731973925261175885471271628899650259617520009274314497894285903846078083114956314534153881889530766076713664988476901339812171870386174369486061006964572198300097440398168403141257766640790970599100909498756654787467760395056528192139069415337016300433630049547141222326460310738099038639847021591551211192258698529045206095319444646611338343835536763900404176315302515637709915939732324026281069412201921894415813925886249913310134048817831703108334014461976591761378853695101724035314839664977607286901286486957832095558635705973282655101821308940019202650258651952975474653684682103546958208951696271602999601215484436432887265793178214536051091240570823902653329284599956435264960586447788990830311637557363969051098665742026063929048920143458936153129595535026174120887182935697255933424208747232751605924836898553940283290562819931678843553079142910092193973773308429165332954749110903985196603264496411064229559148023875624388016695721932807373001950013927309870734071150182008259116911046208731317368095679442002746564412480168121773418174216768156269208941716160797984150456519519587014257274583534041768917306415668637833952711059972346494693853436277526917097775838350592828095257945411879048403727360784728144647015510139611018508285234141936545648252623607221058637133647357681915967131179118169114973917048089337358824748548474056853802077246987062676050769453718324319164571066757560465380553477491188577135786605314599438898487808454583589381299160781469673061827121940952363443035084269487987125405151776126354797931128601689763720722091262476111850401542442380288230154943787128869479218086525145487450949410858685268132995847328655534720571687836413859037307203014067682182054176418733629086817376933268260037084185423902762015652788631426163758117168979959695899344799441611990858776573358247575206402030019660503744512555329403438138495333823720750762556355356065361554640403021596369738266920048789355615494557848352945611135485049969739122047085554559323649998188497383523131239568736015280940509615454491279738289527964140372221157117556195607921146672650611897691531230621701075978092898827011506191197316955282335860537932198672241380088660363003229536746245795002471968250427766870946315888940428952935280939901050429679690792828879332636266825998378593496200265598754114540881870719737387513596515876832529961144877246810900023312787436331430189392564013348969500969686803245110231475547865038477973057597843309534332075732348198013173372780133321902524214513901295917986939538969141027873640743721207913322760483660277429480223613786596032394036216603981758275231227708554793518764315490607814833090441582405441898090441459787201208508695139092592343666705279424082286138900745806837074317712065449847829470360276801563265215189950398453326560726266098167171882235706769210188644347300398247578639810733707442101723302031549885497605048622640665177519512579879186847649604823842136771584078122449065887519801254100494299334041653821282051316814179274166930461097331936632862770786381962985335632889726960675922156543222044955108910147474145088993373138249792707618123882250953182322649164698528329369609668190804575549432074415052869707347823740405243051545046986462172281422580576695821175259102821737045134566036603444568867723356846457943715360984203003058088419494906555784596402071927687321891587385876024438471878908158826398326000641395144648048129104181514971178873646925143607047538816700973452167337693206367594629723727635032335881052057847371291840488918343371963433538737211972641129750065051125948323735754762816065385021409757322107488439352629623446429594445651154765676262886865922711162894090862530673047847553369231803784110645294543729163033125959083615389384859464518126897272625880454789830960476995739405222809166674201278391668990006211197850605735645226311475002090586421221979882311003366573800930811841806046222486843909828034618188184438584969743886430407219324844451459583307517700542046200601907554659546468703069578747732304540487411805346724095282693344075931313973816970705942223715083662387039417980639684049219862713915319758907324392731779823576117806224381455992480889748577093845405438855453717019562525242128527927552867924517680169924086203594620201533722583693241854304815919354864822279595508865090234757773199014439120694125493660969650575525260852649778095972444537108184812809370172155549799332296981646595847759657020113445629044931425174045224182101716777198422091948001657834385999540537281019769367773118293680749726813072819261890346972414786947265965403882169390567056930966926448219617484449038077264031145156545964592324825961817809721494949507644452418129181524427248568176357313810355929446161023532268316332868140834232407398395271683193172801725570760362380389070407544679278990798615559053184826894155798054861776144662580250962223403737156356273413724969958541545521883144213069324072514728300646182284071194136535189426350915351195806353319246713452316088385666693400704794237271816758949026331585160243442632141972983279062418678582124765384399667192381962851118891862529695415759668938035012759940463987312174749738232629739587672793243755599556230860300364859686350816908347983303079621031314007198230442878810497833361964028672142332344931032029296377444520109748847769575469803637443987329027125247752325490021071754049521759754399316372892219371071013022238900489120159860341793839702976859674656166631433695213573348640208873046560092502367811016043664027956420490785778485870892575234025697305518202352849547037832103257736940746767690193933912908362888689850783504438490321562616174318214926088737942451566852998052465715643938004010643836687299559201298012240840475325911937042769713554149718760418349420774519669950753616513666434863333910892408389992796615621055353839785999384780122153625689418660486171058879185653293812574933805105811389877799630884633105104655966866427562437555113664676743576320046168716687038411554443931121414756246695115338713463625457756629787434626584468858095401560970140116220930790876501100081124177164094586941035723533694195854796550814643205141123404650715340429997742977742524245456494803868012955330508906419975308897744706795031711288717117367513295702477512493244926951538847784422922441663047498014321178680599125974415311142084813044079438508583102317331126148506508012954270954168018784417487003975912726907683515810929062450546450127857958181383305657639780106628191748572484195402045120162192700935993262938972079975318621004246919420750704667776491608128307053353121959866858326947125106577356557905850809789898652124001914532739696450755691427984012854296573706499705202750192921832051738013283974839799242530410203764353537354207190421498294206498082566153707530305553340926189608195936434832506929630504751379054263270165623874729629738482677409533266752974040769561622455309400006133938621477235066270928506263819066608384628536385222160831777968276532139616408969497055490982304185022372557495294638041846355716275270378663829557936697901918276877812112721935840809644668567037660527988521464280402557448758582200297833849731716586442526719873508852342979037729871296088516210946280458526450304973423085125931107790163338245722692225612560373695201908692246067733407870755827818577835202752529848995974660410578994282142899890784268520455297140918085474816830414498025999081424943233507357366156209623141615141460796570905423004862867046046405252378891353844921248662322335442191412071397173201229034751817637232452642423246849549299648145937758206001690116143173291807312705939792973173976216026753778847175360909933011366736551937593358492406724458669135451651093746812360601522748874599442745023212945873611633440249808247664200380822783665691776827576285584264874303984068287690032099369756233696586379379678462827940391894938552769428180905937769761019107159071477154135825849547093884044253143184954648683845403022598491381677031320027466312217295250218453932713364210004163131924106662429576189786169207339370796711835221234545728826543622430443132458648854230909744913546413888502011638775407381506566648541848102502965360405022529565519376263369427493771143011338816182651432396285422191736613328368223343115065915722089895161750488538060182180036598352042070470098785154513993194900563315924612767119472883002885285861322624407508760489594051177606183403175494338678171337449778994165087776579236732285497224215206321236937364139546745053118692215296087601972464731070245696829717653772992487682481064940492954855112308128507013203949352292157216606439212951268606063294778703771135129146866362008764941177384847092173108204759310721719588613495284303316878729674926573079399909102742956682391913719557032307900952904222326873015438563746929422185670334472325295778445354167914532835559344748015615844647903496017430932529325560888755424843474954155968916734748560986843323367472209017406244169344638956802984851201495194216162597887441742300428314285553007961437676805339707451435762061761113541257269570678047174690570780524193550097542646323712616878460268337183199559686607554343669499482117925465157417671592296379394405626188995598016639992638165440905232811567753081604252448098972920624589699351464622843663232764721879137632604425754257888024714854301636950192284928131470813400870472379381549123311212453308008495226341808620646141113817210501136273348768289641247352997556432263073723280086380780840131682124686092287742650569482383823896743796947088263032907434417504778581112347436852240370615591073153243893365407550965708592765720421849227709564449728458960500737236548473913348544758928940723128750572518968454981808077522217156596330616467777444427404044409743650258305598865836578276744134272748596613355951511732307647165430174852036393411490462390092646503218177860158955844010603339402205401278196497336645059662462311464677829722721063582804017491983254748384423011139103444493046168230305351338561911996188438046678743330759608780133484063427534607720328762064677260381558120238809236999289980175557135522054973762988397499178029941367606241268450730209461561949747936756546864938009724926329122153972902419580604568488728689725553682877695100520765970927654920643423347519981019043570390013341616717330375563528720791920103506543164458783690671384655253585263505928390441370823024286111248713830771809074255353897306994482426804925437580896920368458477423088169641799424924787961704871761030725835602403528272275553187511167722884106173747144598161389315144933940318941295533098612321577042209133009474075215280840580902546293349199234643936369507890348449439123823620712217063622482857765304441910022594984981496198237373121262038966474076504378607600525578579792708670227724938468100325359776368338764708408761899422412830741240418748909595757027345750275487860700742583639893599535911682538293158129301964185431272985850684989379461518984061165900074671737192040931383399724302738291000258182592408028698133484269943505765631978471723747906234418542132054325013360905514752930311307706331467984730464919851544624995902080875215579335124633004885977255413900239327526581277653152696321461207384048924622016694938031203866921598659151715887524898055846497259492998643907037679891676688138346480726665348908995101890588506317669726591217359732549291669049711351523974050520720906463886834595658153825904385726128438042974685879752064813465239397158352688141301342271692424124399816934569515017856310109242988003994956049475577977825416201641791982892962925820858120193227235637703038933909724196277823081454713792531971185330831584751008181052941649819290134885085975455924578469769706392129989744784508135090844229830867415356258248800965038139294449469320728951106599469430379555892929670242351920394799586798327648316097182258718570277856976742757579838477578551274549304620680554135823592328905547322336082850519755744907728929734418193163963350707179862780174757801446686014915432806320967850770053054656516445900201755314903860074892487312805381393233125441518258302247090835472112526666333908253877023351116747545473501463989702548933265364918377543969689628639125766680398173794031709004844700498615209290862429524602967097711700261622710287240018572711729441354167812636638516012687435362444759436827908594734739977447989900080981629065172875965299047889013955045822229520460039983691677350237106267284584393237624335492450985779341679202010381581111619967951060377729392094208065409741719574845621454799437891173741429729904515604924483798779764953791037897444576429946019030843631656205462034272138836442191117483039623807424845595354246794981584706349925972239579227818364871850191512065498652635341060243324437622611667609365106324665824229692073236255342496259893287042409502307890651364071520792667662976075791306462418585752447686095876696989059291862279302989643034640739662056468304085338323644906244117570212296991930934329163111695305306829505655474849382990125245045800385980490998032325479455581149809876252697830525472399634524828914404696408389471276399040571516192141821530906909526903610907250598015472551346672099711315667465684702799200128935085359051904224263551220787561035615825667925902083173904059345284209085586864057872732125605757264012814292517889312001810339749916700921559921457406298395652383943397417791717524384041014883024998606871095333744430919399655712366589453448317280924139793025184788722194914661066625312372063288012816085265356535642700936037757002476366801624834164480762435688356958529813811466014672075990237797487466432892435856654628288301122398228915122980085465597237529743308322422656007580117787621082752719182467735551152651187744455824859502723259724945341653530602439748881913812248424268443388141318984108724317857292042038162740560580478253547762716990190194282007523926784587297870700085562408094473117125187893918947079113613893186890572299827261940297528899645999259987529741022463823172039170838730819695874653912227465196854083764581568588999114627258490874978122679051520341552672894274040769334069115243359581534732208901426961184254897885208100445448179150629455919161353157095134940439599715177761044048538866328845090819306143651020958240196546420834609359237144335991056015522468691922764016475404333482921813185669502682024541685634910315117583158045214591029294024051848342780867899461840391068996757129429571030260116571595631694812124763735530583608849689027519015391339354438276526540646651848562431313404658151816626854700238219097183529164043420984935607386036561225365978047815573525481889608547084740550165811290377249076597221365535532644053804290686214974127689226978623100078191458418620797757874332210147272512116836175259086999107879923833587668570532650423046311819603550161758547956375105054249596609339296363554379153178133278459558500058177228359000482698284182396360208717422690128078391584716604901793427660865793766965492334840564004368263854153105348566448805588857581548185634624831813704772535460787525841450099420925178733225172070660647313713335153663907346817214087818931827937038881890632167908927023517086766993185922314858461808307927659820594607708103104727519754830698135600122992562977871211328940487189460463803299449716122031659789888153852219987934295743805926217517043938728929059270646733890414059474920653276152538185376672969147758072361641560203977751938080336538413927840826098767429334179545443577256768160603316067592940644859774707032811460864852401269306250667564773490676124638980070769408986849545785787433499853432768860687838917413712691153911094355197305020980285482446271492820023163808410093413903750404539571873252501266879072438654365276081191214795828744041141752802244790660560483019695038021193577690885044984827618756958285716940343090736090262494758593887574593235028345295800676043366274120869280414454952800439186358297907820725122158200871018444044094273842136996567453641963466522743994124410937360392309698228995182494648982129346478461422836282619636828082828135009020276010988419185939791384208313867557802731045270438188567111965343291402610537683838413958345488802354799875875536026985720962376073460214012141789283773758389485552417186131756609611472618867183585383513029658934087129211960370389885814041665521524979206077437771784650412127514296597362680984878918411659006906635471511705333237970863739481214459860864582907182499385801144475016155641809172979089834597960534855512900274304127116719437809718276473492195640636709027185462326913004265957977621948089748029633057114446606888184187563866375026684561286624187526105431162885210950060859426061324902392775044492045579460221114533193728646422782375134883943809737896962572392648242903001807239001724540741309352886424380036869332540017412809485152547779797583136368731997934307622539325816420833274417104701312767096574154564426261606591937967913208208496924193007025867358472767405386061444641088927485774356152925933927657735236237682699635985134707224252358540862776917674947830198100031649436596329528330919363423015967440660857242367073346218571718845147328208142989346585315441341085159236628247683866760375673614689995109058191688486325788427010547009573443934500545640784265230709451706225200755762383037505434388667910139838057251558301649497231137469068197805454831039551642478869760908657186454673900335302587803795105755684718904447291615251637022923354281423309840766497865316059121261365981852150301237844452523706452254376319767678349855296238842941135561086056066521074391888449709355748078893487689952105800080844659031168662486043266873044782844440994754464414134758592637195648356007636323598032586921411649942697062662849380800054502116445972657483649714684588511242830153016796885811843812778779023199284471781460686367005815855541820718903165027339311906003083416291114685236189904657823496661546745439623721845771885373296654809313138501152009987842430666709169947172498926392550712102228198412463353540045961905831460460892426985380534936951059816317758863238592311831447660154148553256922979555959259942474275031996556583176118146565592957490399498403479569090065449976199509553987909585075350105201137619768491180507178879405714172331955936938652684688312915066003243692231008668592985637324861121921359156142290638424591411818350377233943577255665235497352234804062030493138484249435272022089440831938956283460790546832979355618991118357333040468945366401856122027567827948904210670466479230148144866734559100386932655474323976394322493067228250713905526341764226364009179057108749995232188508861763251179093457809593065372142347978022591894221742101226501155981702451899390069958836698381616865768850041819637640746988739776829153894260173536879115067421959927111125043492516637492763751109144073235762342934708085309617116392585727534740020721947021858917983856803170264333742395626527001196933308067167447803350017736574275361867982991715269632083732428861135348738610515269446786667227749602483764846168792336996039976596616698288630949773297812033668984147833014791844426719945601984149905735338059551233103168346954143928870250279567869581947495209669124125054119553066426993917897808709045198837130995629842160672410291154196335917374719730327857893523565934528399039522092629294358554717563527175128216338939833486104751602324659865766207687226327918422347782715609263674358536132665288899755282247598478567650026679472737978820809107910084980508412559255253415033047054548366340616651063236911603778560796451656986155530914981661218682894661162241719159186532127764548742205462687304158799242774156531211716935876476509205479130713002358933755581681868084443637654928013953404031035455721629566173543043267521949348501154944556186114775087103203038823367426598261276496943390764306172739976661808343175092390883623570088758266348510100619909692409842662973683606300471874465732765076827539587202720503925806124210479269102647637287429442913570138330379852183821858785292553795590956156396667393225441345833785855086658610350526881549559381274326156983736655998337305804830393867619301197594828321247666353842226144311145089296559838103101311964012348490179729270797897248707632114570575290360826070697410861418660376044494602808947092564000850754182261379816626426604829082286874696911268115745871507192694970355650168725445313297287247065551971366431387951289498176646757350655241624176117447705640231841507999394243255263627085876451477467101412498085178683116724159081376790548001974071607461632728372763027718201200119302027896241143827503836639280767285878348875750571630068234887845133043904004442328322450666962905171118124147591283401625228716017246572863909388792977619291341902474321444048858772632754290008226827307899110635045733892344558169760277848505855756435439942055017052070592402434096571437685642764113902695181300707308847740052501691011892733019330597984003987521974547356863700817136010771186820559000245330704058958368612823295976535885554216174112283587859855597659959890884899858054087162557960035441000359660366048286627491230594045471515794340653129397269836878998346497637439255846864693158521146950154957274771296664982551413955537171404307881229871243071591476745918788991849720503887212211286597661677129274011340671288349532331262051186039737721690758074263328175182445565551397986135385428812425169905419582412101855748487238736272010447176597603276904285468937162223728983067734477112849716054875595174431140633914142475591971786653570159121218194882853263871846759152922563180124279549296753517931475474326332458027639354501539173936193882799253519940897299671361173328560949660081268429543701813883551705230816482252635422133302816946919097836235782698098515783705713313062615990669228307082640768871669923316840957475163739043655082057487120657685905811751460139167093915060529263436683829071181667881885636521385348465352438672243072519005885197031529258040454143603210357106723903170992869429044666804710101867871184176353261197900439517561379472604726305296303777880070404413310379551720036849209489671120872729608009380728933468002773511103174574051445976879849107322522138489207716674475002410479982589622248477162731727933262937671008046869264291081397314032285121593719540423462697113795218361809928801434504456153264014474019882040331715328077534526321212611572826313082049889770843863954555225899682162401041163873788100242111298922170338044764797407681544119973305022360639618586657436033374231218543267323634382495404418198721504790235250303246361270687755688177424824144200420334945540131145282050987117384750483196009512026871098148117011016506703714359220692465869327928226838974719789025857803362455791064724229762651430793727440442654001677387700095382500278696485928873539278409473519583315693424857211731201229624551804302678243148863533697987960209512447983423213668328154610304564954764059392754287704664893543822326864273010493013046651023269096238028320205050034507044906939864513087781557555722083136585248571628575034766171713969656555524897213415501838746719997836358323807947348006542326746512435335815922739033768286059855557810184739218727357876044202214144641401720076764813414946654768586889742204384634039161833998835601861935621417491137282115195036345144628366849808207751343690997688716670333674912825940042203509543542298514431733727338675584624136263644506581531956777270692946148761085337665444225464583179845187496740469928323362111519337128084397364527598101722596303400332901495578821234250129851446073335400795924540358386842787208753982931383762625693452385182394137448915732762632949316390026920046951099231949071131380669447860130076204761073357073686069657957201286056226711079588709339951197879393996724865457711197579969939094561761677390280878569882528532543977208166847211555320880786918861352342783295115495555285701198102844184161213837609025802635373732602228523851421175634941547846385725922377542444780855134784370327773484509374169470965469051018142550661246507171944670092839241278173197010534758400332528321832644357454610042809940488325623075459003687408815285786791539166450845021718918889382192738047694207539918664212323613694729539958934586139047814335726329939361810035870069697450611262580039255364346938122953227914095999845039156528293359538826157061304956218843436583473221695120194655622112877158982396334150308093236903605944185155302734118713679834613423123032842840289133184676368945862293528766195398060213191804996129887699943466895100727958285414936356845981231182190581344743697005199816266428301776704499491917450097206654379597449754126301174164419722541583535828921490073909059502168094422201391521341642536850822468520785349639784216878702955370000638214930084166526429506421866551162654053848101012160093485905520125998305240971182755710148948371855075425735307238260645427912457946269712060056589149117058121869052900593415055845707407282416616992017433490237185858206487541065356875520574347349871058721448621987471096621254400784310541343555032428714708144916401836170958813202180969609751648490729042288349582477823710717922973109331281108118632216561358075416796683010800454814844785342881487158534562567290216153638591248524451492145746291692959560932016629303917839388351847595899669945397580501198512207428269775985714414479497177542884734481645917123202283457834073557126637990859760137398976694290146527595340291165427693468048687287533206186964609345259279270083278817648846296991110954593009486569461004482615141979892521722941091990715854043214911688591433777214014755331684669770590232524406381032206988774521821137911629546168002715312310327042421320803458576084354278235194974338773773990404058703979993213213533293456209754921329596614814367905149403391276503804178924808261776048893202097291611392441087257841960821144796424128708426143454523701585291215961118568170215201206620545521824776047935782410701748806339875755316251469556382188448708431126372312951485635004976110484896925429992867029037200091434790919720066049042184664423102888184070367872022749947217385806745767839927147605183099196530159409802977782813280126653848153005868945733484909102709276910507439141395858561829619663779165804622510645613258269349444606038292277701829832768818888631293140753910488213846795673877884814704909361176718794437397741949012983294695784875999438485305365830912330931127261704138986916961763598988697947177498760978274499289689734676595834362886841813203967545838186310890631442294859155216460185330699120426664604449592390952908864965622791955705078102086459973870651041528087521619238072756515644003563467865839213630055069865551855976684225351649497535480981121872938911305372284783474376784268675984271381199373096668030268469154415057079721756038407673884182224924228040664484170772887016578143746190287166217839423513614934549450127579434421236768497034813112529653856057825162566745242471501767144008658522293330837048253942584059723421872048576587932664242852801205318694463942224143658086734753421408865689693641381029139497544271546991209402270128595592657353848297172065707641760678205608017292580885983579501243536294484834373408769781283732281332548923544794088781909277944389223709259885401536943340368025995575911363238643517713029337176095428511013394868711084465368946125581251232083536221017567078086212538699437891867095692939163871991212963379106757942005865554311951258339901226666868368870950811464230518044462823569591412983775123414525446887988651318746022405046702817656148754856362423645682750085818669902972806498324412359039926251710823373594160414941459361562063761484934135607536512827204331368519691277406508386040048490566050868247104639067640376861909179121668590128828369985530675641052292249807440290741011788196290792078974192006698868454925914161307041020513087165514084568681592984032660851536670044113500495777628559215546058612794529012013223790743961497721616272654563349063708527836391084698748107457638071395925297818895159736222247480970222305204767915132534954873813497977105244256144881790863922609984852519723442267410754131561244456087847126731287802167994430720966918407608521245814717903726219677375476506778813258682300191127399367295460400906719499127778960755739700617436253370802061053845109860775698637527409776171495120204715119819946327371927538787696628412079821074703580437282975963779130248869466173765894120910317711577299404748234032796854588291431876400608071378774677098558855997004698048259704744340196086695246838741001581816104174828903591722746703675662532743533897563615963610844098742551561839715918454179124790291589815445473879704325714702756782351039294066427590589734376536157827436600783602989079348449583830760500031258331278989697181587865263768925165829357463045218960448350361102673765479314148927257368607351166699477226702666122091615441035475054820847374678547203652382310739125606999332382690709900062382937795330705585333738612220935763125451344252061616622140313257689415080077569564184958937822319356807554754398222855517418720052219313429246730652586559929101867846793883760206440314377614109679895465164025690322244863786543148610058349025556379981912147763045363989282484608868065869469944522911152915457956986541926883031020923710623511208868483293612357849593832996028879480919248097123631077839451060763810143683237934590211139977655349397854618327314678039048188020772774409305665542431652578624355121667244610383534274662656441107125231011438087384311913277048313368861806872050540231952358421145007244643921884977026918457759198361618379309950291273207868001964244075163889356757159448432366426805186354177315676439866921348178104840350302435822280864353807773389042123033288145138815840506530124039513850080759114006837126513893621041475086583121125663583934567436965561406712094704974155285546127096813469343800872136344120261748215020966088788814257388908598272282633964501018590797683150231563786347861918537087585194662965366131829650030772228826943372509633120546937323535781739216020269347468271413397787157773335508053871412841435955786891127562936601669252579481781996555821650960187008164687177262066700021882341494991957501793486298033267052551187900907582465126205956357225507132372879405284288614449429576857282193703954125830503857084869612670959725393606721666538976645630720764713572421452812904478965899156748863877722349283491285019146702358597273373318365949712705760585998956683831395081300270275747702327942072670290442070033633917491991744476455669706241928626394391649408185382457557192742173817848714697161755727609198044107465982121030727638825386374324021618410841407008777088827809035612845044525075010551866646495117268484537662693338818557177625210644552410507439260543863430967436760044241809421020499798167094652271066304093565268078524985605329238048809192493234118301597957226450373291468761945110466557314827294765030533369512364618483122019400463401202625101462411115727255699730733714747998413934006437742555066193733250848264109779139551755134802577706634717708974236761250369786875841265412038637906650786844821256700403547971460957385219545266642405237379442040482064565878863629953467993163128060274427105928710044373581412472005974567311674703934010571096409008602941443291450995207140131289074613726799572233962509952097118865605161642243912922068640701388785586995886149903378924169458646425236948698993618870007837385747023777809150662094185510561808775263029290500738394006979284609399572463099229877281583137633930710128024411203041693342742481223666896935169827395172395879791494995757478073555295749502691848227806647544049386309673147161383493804093068576055506545191820833116536257358944287753323835145104769983790725428240194931845273979349470756798140941282987131807067541446657605661768395577459409595689201027982286333877028894503550124620846898760717222323286361592886900041992562677458265093380741281009988134270627194269486240158034467324732255258497392657632551402247655290474465340395782446764068129085647378183149089732625096434035322063342011355660346546146433244945766415835126950848142997809355268240265605470955195875403955774742412757810046591257261360502475386346636400170859925014228059021011821183540974436960821322518013515709401028251300757599676506074650741324106084420127617008597350206435472139824231090655791032431491726784783786091830748299981899617979053425615203022921155321660544685572825221106321498220583142163798393955000112238027660389886559783844508702672320833642028814311887380450230596708221887564930802855617009595996605052224896152851945702537234673477534643206138228327353993362096387850312544555568689374147573983260074322285374612194955634204878577256532174299879508255626710514076056161151634220817906841251323475632007930013081580747121212495126206121620282027458415933344179925008839222619093190279790417317278980591050737382920585521031063798794850615736343156767107153316367723226171229017234831273844136513245260248402734158265583531397895035752010413292141755511438827164700395945422953733041844944804361829280842144580861465054923215740395235612765486844968171016874999000661986516651042984896799129820083723017846526932140416147691673866250812421307828329872678206688017650307928459414518116152272712259381089100605215561707350874633147485824558455778504340658768558035848001869143513230516719432701616059366915759172536099893370455321374776031356501373100911434453044558538538739563067217027563232149583548940893784771282639614805538312380073628485631575637795965353508295216002318122294560803008287318280184539247865520456813940453988150248536291072874322178895078563847370507979082407624718880893073029950234222922066262991642201277774506625979987740086701655918532885623040361647134131145118394201585913745064529344270863932481012639693337140111028899646701377224268771131495280185215994975971839314958946650175696312262345081947690585174254305554769614149945214533912121626036811559843938029472987480078424104026879187815285991978734980894624608074917392300080522482820940779276380580983046474164039591913343381439787706124778357595126750593367494046575847009668636001697844640453099996874151118197437515952582805177821568819273741785915360169826415478595524628792427500892128724063928084821305711378346889101141268539703466974949221450474824128200242050767579621627681442311632432239933319661055338671596817095269481776412781788616473165008507504355538018146897406365740703539334234865193759794481142818963909215355985644313286911285920666018050736782446388034348762482130972757369382081518382854709319773414705008357232629244592884231808258639419490465607653072292358002891401798646188159855556139901977495363501604813861914624263032708357391339631602258917294389815670195449213960359263969576967190792447450244171227803584061051988094873835673194533688218155252329020987310346294228490267231305141215925522610762411391314885101793975112367657306823226198690596032676207236416369807320755302922785195616832209109091309611182064245220780403693061581680916430055173654093077770234294434184127787316432908257219650947768884643209641506028873937331174727509313382109180615088502777761848539566362243223488779298723743142486771722727636863886333157382815632459336770106314151349636909426862109485583265753174795431894015483979716771715294237639194272390255927845787391923659422333313910424594859393037193280815939249297372894301321069456204490797074158038151484051962973602367372383472506707473742952916381774088365164633704584610075001330919211178710613392878751702528698666407798635681270072747572698998874537313943010147178832060279808738676921429346658432148132060625272065121557903621391496812576996939160844349005892760637580827854730900323833161644605844932298792027951334836260548228427804723777594403038564162764112264101987774683710269150335712727158645255276044446241497902223761242989299209803259792394973385343594557268093752776719853193964065117956611710772631010721475819047385855406294291076932558952589230319261884581152603775716921615279955588825021369335909270438267874755441167185437005530717042218065024483888470861148516876618517194597062599735773129237655524504389269347314711985965902875908406168558464402166843264404873208240894183093628790554058709981431467934094887744694703837079833622038557421085910547390367603693298596850511439108578089127092325989918221947603131332445254056773461427297184643785173811483084286438203973481960760070342359076555850484032765842147487082407354386345682573888771280159497548549120069626435414705430044024205326159973762980059869761664635424869070740705800918019204285639539793304861801912482126708713105473389780462691313069900352367617980432301344120809113390983864068671628612868290717322833883286849659989932707935188844472709436137982663761237358722392839861083948026478704837861619780701610650906571769422764034512563222700354596517867614808891037746812465046882812938305921470706353267371074902332939144222788002899578672207793767210461615609700848903441038348613442162132228733570225317679119544608069096520590584779470308510895777735176179408450317973196916644131206127715780192644634969870226367242068945854467953423578064123307842183172560626633962134593523514913376194941930849453208353367870442471834197071530827396473920301647887993957222882131429208467991823577988138282235955105961776576232063439433603569990010847470739054530413492586220649960544958415643987781578318002764592106776560422804357596731555184849001328495986259202565350889684320410263392963234767414699988533555275413163542240063297390794193065566583395603859267142262704496721801591455148921855143255020300451820205489954542151939634395799192611351300321200767664365406367347566194514218756591517783981531657644648005918498110019295316129539695923029970450126376240938763729918308164731976878730002539653898763484605917794178838533662433511878087873454797404856618151228190462358339965646179882162362242919400694948693147123035454898835305569469384914659967917936858310125361926709720151360686602278878938805082029726939709656253860171846352240584253962849448320995900991165601419053723269953012116256131429448252671259942676253157858337287840174061596385492614937637692293375391291434875824402088592288931917883138257651151024652902291808909074165637748033528385549445584101516773391413732931276282007034152660332244893939507207147193362074672801100101177267169797964846782487712212326004637237469578226487981446879319317936615137271777250155733639574795334982684654200471111294525709186683781116718179937504198761861381324187030703120791365980255675435008513982065849844771294584427190999042673272229354749343547718293040705952198931378519117355220095507010867603258514373375388404658794148873187972671654300729311950606327042443494289814282308615591062175241141710376346986754018082971778370723825306129018376286246076609801794823876049381598255458064454440408600643377396294433026817297013004584712207249332719510338295171626299675740596987319920642941712696496500199324047407787421121566428408253746376387995788382872019388829950346799409923989436369650939686902387166302643591900517262600323368025588693657681251672386841833268309665315707527256383034337838668575621306539101415010634685820559507899541258931928339243793678760043375791999440522089474332619903508322329180378419439610103085241808052346713610284465675243473800128884002545458542278810880863151305620888569122874068407197345390201837753119377243155097905331301426466137315400058195166152040461433401584335908098937447069009367277092177487450536889966204943082158142850322852077293773005460537108180224262861832511790264042339037008197588948235753755639098428763354730974094918932578522291636763136929984523023049700785537449450020301697855800872108276743122820153982129249617720185678881441058822862956827013842951782557274733203205670739584647724249426085474584843587221406754956583174175251724198816888030686458217535284724500907994042438441129870644989554230696752132706479945279668672475686522539712147202729989293556810835658368491570121287243261573958214492805626601656829605003931637201575661270317712191559694007487323635017878765171823945267064351862861392802780576974120657881728002459963948123538559568390788152733779139815927781134699989801635673278741643838780546118216635293236419469296993307816238388510048205861220895797176086823771872617093582602751962556566352857174838615431175760715037290538132473978435960843415671066234064465497376195053594933516043856144407084627048655565601790429064187043360410838980846825743166269100339222816091356751508874871257731917473884108994808206653522351387806175505649894948025258413579145480188278380959405695691034627939373077608999991459093148140856804544612979358421404564234011948246949946301475536142738782239497855470599618196988775563436870845886846990813150908082172134019368008924745905211812831254685354912854669926777417939582980009400672796077275923499251608467964504622192109142316910968318280074278794829195578148192672348594369979318499224242574013768937330289750823591132783205121523590986439555825545805649093383607314653092198384854295844493909403245614764395152613239833145089125378960864849197519103068830209160425665612030357393153994574968039623909111650587638627393763600316089569628654467040184014196125167307794866135396118856368563136306191523227463818733440819760430993908486036509170409698208960563527440346770788198765059891338404532234753859857827338116171575535354076569524085607897533662786181311279598189802223062672136938640076640612392840430691864858434977135280797837370172205495434227065411241944128412586911622640087994947292634885637410302889804324150840485926806701700300575838968458104824456038773825017487968624379028742713694128992945982925396615869052249428458269079848011712397041417675110618238099426795168538808480613570920667706082033887396537376666818534337392660599476777665424525699212887360678898341016449663716130648751788074259895583519882370025313737966354952930819662243733035173428460094859203005586762450290795141887621166200821962594684180782791613440636078782296241181489765830489977910270437235795946487445478575166886463017472697765533907837682298428973322341174733908715018944794393831908688726697462220010228506139941398576748076368323977738591184092653302246404816443216643936147283498468353284284614274274118747093486371873338624906390593743355001168889821884523314402269349200537020619393387579826949640617276883228566506721672755912649457942815883449517677995989626177100722378680549082616991252510940677575671075533956786458777789218195818338093807491572789761769587766294323533167814245935666188281460746914767184146559302199946635403295940854499019312023047401243842664192340138964636187704622853145904783969312320873232067240902938341778811804835005558396877499386212161680483867363580465633951454312198590398552666032659195414647408792364493666211995526642288227121803449352812432487273662391747632864655331416658228413095301762880254070920764634397790583173497833215430640157915070227913302834352133178007195614920025887233144541369706795855322727353740480551368592534444617346382179033387674034195967120020225488625570330654172765664445672530655051951870890483363062559760754324616535541210532243975031741315068010192531226743523841929899586402455860050193255090160105591095710144858318455199509457225916867556085477711527577501294722780477470185396134579241117242948158792628549240448389657327014577595801475304711455665085645111093655158063141052727253075666601878172807317920904910636958434673436276718836294862277525917031058948073180746408272514589056916143974427098825052770192573801052282640295887232434299224565027538830730214136313886637482706926811685388843811868878812680067052224163232216868238387731705984714674626147429522015535102801752681389986329904663399519251986555507647802144698081168106439497621315592732757443368507350574441787298391626766439751011409282093301235529790165593083009151630586640602328750064315694921596760525354586511751973155408073299814355928680702034725557529382018300049214460891700998819689191840592258289550434839026430813565266511271006065222045882184580544303969106755398494380150977950714946871220651739240970651259508747408822772832649750473264912525408870638408719013877667271657797952979396601135805448799301310713387355998093029346285784810733317275398099963514547399270231341118123011900323324020638930041913101288805552636349851944172474931047192740752393397899691825601594759022985301729665334949490058127058724116794910662317128430918330804837944091645035375366553889530963732440932802461392661923388639811793324887198946111075046300452438412358332705426123534241681427452862115775125788519539285860265544599203994852733267983586022565507090191379873888715783643961704707397795233234617986318868145469486077992755305647297906677242350942905679229616980170261999044574546242223573106997424567034662122134616616072402537586180453384383574066226595744851525307749798171671326385735243082249881452003873267657402634953635346560242016974838817902629957115878099268101718967098203321259440886743501819909339595603497574392832183569525057957103174836985059794214014344216414249441528955883180165875939110579579989242399544432623621961840753696239261007166184416927328588271233682012159811989453197882164149128059789135778389939077356760539120336943829845533709400336751845345623845469535423422150519639904948609174821553680026136971005025652155610041941383258927688333051300759410534073554871736633701495740776830449998107718394772356498341215075136532789052155787145790519610870469166541619566579190022384413431812630016554932209499666176947836163187636299089254105762753536434658208883883164270206340790315249463408987683474000839817489208831661855953318363909791653872180374886826728775822450750548017366610517562104520831932819677507155544221598855851813881616876633974145150727935848229618398187235304548335885229846414629530329659473774033295841195976223063645621690808501979367991205434870047844252754248170374193729824428215112551545789312220265838543925795769385730678984891594641001219505671463469339514079895946906386958833179228823992774227889495294166476153760390300999122148551936622703182208934610644236469419285688271131490512098111374396747009144215189509713271173728907239976223176222019282105576992533483825406829745208354556316883528791883100277893258278176378871972950678850055471775057428526556735461820239222495942779392066828873122717608354219415703549335528213529470614596914162310659830622621953647091426417375138988179841895329236088867877292300290766069115301184513561594681674275618607512839654460375157499193430075133650730316014515000635995342529883624497085631536420483933747927355705042711457392939463246499374880634127812598367282939039479833526924919150411882135517125135385664134249321619527837064109670284404651784156016113314650343628446855732754163450964712514681867518407646539160413390491071745454505417345424118539546186617832088815345703853848823744676700715836291677405725711382801485554329808207941107947959682137844325628439284896977786775367206850129221242503701757137457533790493651761157290705246408047594110849585034244875849621481995910658738765069143021901244055725391046317130567924667084633522729262231831394739718078666101327739144322701940082703112403792187192322533493947127750046575585893152704259352080462776612617253071278495582737900416427814658226226126685762015533017063996836981128358862545201467105413896407571055423403604671825375903649368469986679526313944775386014692302060708662702983858580013808659382824432469360472363109668926235793483750260597852668535281885299300382850256554523737496465356650331812176683395980777814584619757189631918057494542825697417989380142386177628321807197774630032531501030222722095001433457452089220582519965563546395117861477525562653307748188409842416101836055475847485421038706589910114022102448012614579025381186218070044353646959101235277281956332196272895845049742042794024186277483560170578316587961694954997807521811554310497766336027687964134536823539570915041870198317630972319610862745697367764021999358670837916240325435262225622085341804791760765750440573843233417199160955654764815090358450932409912186372800946269481036568019202410262906166265390631752464155960232629939171893475063530321985646816620048740608831494854122548012536033116417944088290566786701723342792016257813758972040310544647783707924049106059058068261962507559201798553385782186734413131865215842277209204080428366206693540697070731653702029973083078053481552862929847233560154930562117289890821997322049282219251498817641658349590367239124770248804173759452769230168108877217282289523995106561253309341369110795256994217987668204727539694753321702536208691287369665890741872545812781157496710067362680635132441482501596120969595213935576398359612689721914251589428792571883100521696594629102761576370175848220822467289767916621509231900041531438533858745074156208106722652455261940889774645087318856077952249882573313797221273712705718844760115624289318404911027718167153882164119747272005537605263779847464954651684462154846715165848502183085049041987739387712693383210720128116867015263667824086595173500229294130790966814278584811357402720968383171853753279442073063874410605279048580303488475151935206123817036769305378693419605902141641179620198363363129827534002992255408915761379353308501978392044511272766149092759314624925543719294760762963344724861619311944304160424689685751161751249993497381709528103008564584562384479673824283351641852093112078986156908308911016221639943205058972828209834532105720180275704305523353712898616000829529136990440525060986022970986833217922717718183335178172529876819990415259675626367629129369810819025874988466987917550899014295142772071934462703419224637935087512670064423376879726286132980055231022074748518936436148575850506359729832427022623499605499305396347836036099414240489161627673033726670236578435701581165048553941899465174183060944003793307562242772141919756721365641637288121303217764308794759474941040644916785469440442084860937114837154317291164353608469294939967213990202666340202225517673823836976977132915638308619367559178402926145290237761741751760010327267303682362274273368986736633597613401435755975726761340339172820765826859783726242471115774403829524241726653166767069627627554229760341561941322833327337175254171886037214832451149239178178185835559967402032044299617325452686329180725319244164985059515724143935027955744601762470068980555400256854683724814065687052333979224128033510967441161595454648391041172639505872898633269844852677750469882630181348205935769490377580297096458287017213788201533910324513279908727548198574860890069726645438656242870170448639967808367244295702744783720372793272955419575266506064460285416089554809184362449620613576975048504640282644001112925680623164762897053945982582543992861604579731673938739887190783798551861660450635400689964158609691719193077240806292263639438789866690928793112598626704091371801053628600935193480229265574115860294517930108794853879032769190881121306486069148820039190425164632402549229739190914847723043069854815346751101584488854947623813465782658778448611664656764829720107220293661558793262730842485217105535370046475687534878274011431934510410536625663643039747748347628691862201434271286019072289843926489561175894965706557280138622803882960149235985138824410201032233186429178580419169742838860226022706780771942466951573430847701347854473496100487573845440875855130845546545536109233224234707998562748940012634302107677606262000994256852326750410352765504174273671995894882692275639137966034840309494013063576475422340121811700455303107540070900944555057754608147766871222509178121096461824983729583672725246757817151897245428477276219568862847151983605778219207774151258081448539159094933655791910451314843658757456593015709739933593059545459074874333618763369565123877636050829809937423649492889080478590020333288472213579193297811252262952411723622279175285688068667239544140385807979712866994139819339291972398395993119169339297479327904876321489828069602521735611273774356024513586418370542341605426858989537269375487206646518263410527342268259770663178521288597710204588664240716510713030043040168216845018072889254105589570253622143291336243613860900793071960517773784240841815097700724329062892297247882135315095600646341676534186901319766770366239904437152341296035912364916935478247720734798132792782350931216526194640066518132545910719387511271254343773756348621408730903146165844831433632282413221296284783469564727986654938063051740082802355018198609496921107215741467359867715544799987891323165833146636738173770834354177857245663367402876135665084756651018051678186251064827024713610136830602658348101964912240901764369552903019474358204019655553684642741966716600277725328934340702824397992543698765834420622103286653964432542899028715884793585827152979978408653549166675013668766938344680437154615054159681198828415054457700395071652743251301206095105372955939327619065519121054749619231586157039654936346201113874944923779632360384818047861412464558129544398696757301412913743938354761121895168676979077133469157035485805023507059414462870196945894886027535121062051320621956030439242010192541172964961532103353746153734135861684407311294529127617678575359597386863897189553462253522353897609738331299245755955931309088213062765669812513729600782398692608608379805286924581610350954282470246831147527835964522577381108834052547570130612920665521934972568890373517110001991146896084236448954524641840071033627657560641436739076793460117904932133090597415061015145180446484177710585687383517019866231290498707401480039827407899842590200996377655632298955458739150975574101141063308203483349093077305292065358883708336563208295462578117130835848963363887129599165339572872601072562350112100887286053834203898601454923605995072511625545499494100864136577986262751293424307230833025476755644422328180583914092303869041542857459863945123561014744026094005839498501496914159427643849251262989542351939864953224839830930742653132314150335094116480747843586351165366254982704778652887966259509757761447601121503932857388551057320221512570248943437842057337424038966712753353812791760699992438430965728594512203814813116201551211830095526502411653299440370298571603252389340023723599450836234326024097373438912411644570679680927240338784347519550937520750193290613205082012556600195166137580516030123385968152146612364808710177188633679982813201171473517313018471326414276622841600793216362701053070906310348198344403419848039386312679749834554491765529828582191339585868491781496694081647795613529431054607479549454868910067255989430113432280789273434445815189528174817578207672895821614173355216210932935794373814313467840750781878183454109728024370159245507228764088712554647653465455331022138790800925663702667457156339485068687352913875571455100815552340584170323413512260453734267686910383975125255907210748589669795664459000889808146517898251086767830491730258216185967010356403030307101852495834573397708266376675750477291903420765100159413518915525946525805310595376772569123888247641872131774202812760899433805666030245565539510934068454564242186749952867894779269785668418036637741481754387330132444879554492567629731951112770503493459184037497912226616059734022146676114160730953522214232401481230728425831247642663756951003234901912642320231977729946829765125077217058200186908513482679744996060147499586473812367842882381952712676001898519740675855744359857763673062886057301918499632490687600353092866408935730274833596086057682962011689428440576165971280696998731890149573699842202375583864732871521917488045574625501335587890431102600861869983277445584003281727205378403292064449065534937324739560312080136498665759353740261377307612445046935390078977511568959022289048102561068296139410264694825465923433188049962120386622260291771056791644774102839287421647535682411623545672505605537675519110083622437636965971248961406417820388599884090702135604438798182650281279058150794838296967599654406656770965987991033526387077246211198612052540427026414897672633640069925881825579602243359825465476612806131167066710002741080868646744728434093185840225754048786337490698549739945183386427038709768148173870316177514119797322724338937075818341430566103430421447574337269911561034490244320470175812571544495823421752278917255448545264496102352320296105288474829577347204381243610065639325376738845729594212575129806780519050393669799879241723154661645330743908559346465483890636344031279160934203207343297210664307474359555777770800084913456508751199443284158355882301601037014012799117682104489929933948434073308008877477056573320148468621920936622247607206669829781562593213889254912693945069470406138676566632035229708978925506542110706805294061402473055675074575926404560039988701355627870109064321623320812932697443169670070682849178161516073761026339227245259805037750527800465159840176370290842552194583958136657293784961437379188971259358852650671874124045700482156378150477072342369366185399641156370274892047056999681169092519649475170426416702687136498925751761187764138909032365626859025689740368999036680516358490457807930836896644651707726718785209868480160662201701054758160070727305657851057685188116563254889513479967756238427092667636788855114457362346031603862370699082917302450476036818910330551054186011278076593006619117725165288103710050162885407350892927538170500757390465893581642389695628074414364858364164184512452896687250396359121881690640379748843322899766275483017820605573464415701027957279337349994409015554579103982806667602504802017704331283481377631746144744399523840186731287114999740136873478207041101230194503442603671066385722652452319383013519724659298747281856748268065663003020867186782320516901195512261503383108810190209427740600717541491297651344653622207634608686778086133130058832206868659879186410352616781016028828169261335613172846347285309939052913139891430505477295916329565427356299379659845887243110494301490054268477969739993905863765711682365106674820140924579025669101776491958598783639549853804383152073907202414828380945741618846226164763941577944625355739076570078723009359111091012868700170313406833790037927730340200677378978235744149548308339881482841050229746638747856571878079620878311171047451089958946787228872328730888406655820719278752365630763675841190708509444164953619109404456592613013653268737448912199027254839870403204084540504881072400398236481170648345039093249554119282229733043959916439534961369204507420734569039702904105564152825814495472173880026557571852751705639365894633030548027391642083229427288283687887992144525063764861959069747965280117045408811877498964752279367373545667140142571471090472432762855325201521332590194002050242703330244269525344326856361625446945213507965261776264765978046261806756037686374764530390738387298575634362313290305729217379491977520462232955881949753498005010975251271686594100828459941140944396516015733671268930336255867647968896624472755709041786702951052199107917391565163926494510118073962960190400851644867585185715119387015638639518972391946533850755148910650211004371042979875712133300437854416868279358180648304198120150198560907241788692767552569055852936484620528700166925775216741101551285330850635992017361639084646058705383135093134203384330352442218264874829575784146039075119777001009493832576033361665248934396215502971152873374901897218965045064905484957078947719587220923321925395039965294234017879316325528066049598897718134733862512318683203348649046925405965463500324472707993266293162960515255952066941713862059095210383211044012796483689202047975544471784360139566124316336661724932191690443722043422939622925960763893535191218372737376136137075633936494737373214001942996689401872454669624654384412353238358555634945650738119902118184333220499345419510430848262930389318896984448206724837205375403377802774217842326406046274492494938800033735601162394036767980143750796171582355652958302582266553022823733294021299705067776780373699252102503527411199706403949447947179302336342796755627144319803500740111838443831979552022948205534292154771398606486098349726384752919981039567034656516556291015856374213015168660577732348012508617324693872890150147250272113921836512057168139673066749420277351978302386320576252984234665739951264216450357962970144912803508238044565822117649185211518651516055197555872980953755910432130530050179001456684393084284768278921691304415502934193739910507250924509341781088210165058166955169867234697558731525879040906764778856140262810255226330184812540280003504058956688547500495238596560985610224397232416893646531958765916193596632788652962181832344776613584319530625026116411392962968928925541714990965061651430108824885987564896316526670182777263595116366756720265360044624750163111053542386830421305013029326937883379125852876579688822419053724458424070706688177146172892018427989223308810222983431262935286115789180835064630267054835234782257964608850630629047167089648333106194631981574558457755194790217849023086405625835980972330472254820217751738302118791849033887856571348316225511993992492892672671134034372533111681865871954925134467021251410438876026391335545549335723920438773512457592273330902798338072186854848832983644094414795708515332161623038227616944896897172090402014832329712221060904284269864228610233279652010562133737324232126741808980044641610323574370006506646004465831022891661469577544931129125952897509314672262518435491641468000765969823166651419774482465737747339103484768950972060161908409120289179768169250753006576178902409761876590157576875485566676293132203825438406540414236436519563670464433045058921784592366854870057698023408410722373350252296315881421506089444129735296474306378583503499253701558223369331931764352669707373269160215279242472505988226076443274718788027613945170651276253217986203436044400185840986319665063921657850753936214041966598136580678153813894461319689280577330837778485316854148161206380116330753908912101968613592441409370186969651425309834346481664081265310789807138057820347397562875246515510881269272073193758184978971845894095761529622507288980227801687721580048927980398516556727189192063755233349203185943534313267815684992438522107837855423550582590261627978429566839062807446242585277873801910385055369687723573713583236770781032319513893584369274997084403185158158713329525196255360054271619374593880336986200929917316357190686264175659136636128132644149063901998382375222267141542365670806908790853880248986981466906204314708608816075835185066858749841567591411505608352858420104739126986812500393991087026441823214391621760315431247953375804532310940384754618376383388152686614478675839669554430459143743034904094077446103451078969361900813942054822713327299758860426665730132451864090099868390871876325491910615802525884721165125741171360225367823210492960796844897998403582166406603127910571900987920749088593356703102860811029778081314192890737181733507800685647627055520839837500463738837967324776236060752712903997659865618484528577262953640088016610365477091772015915397512250956704817604518401163566353992745294632765915371098466855729818914391870075453709552330886644783700994171027892427238597931518536481319258751572371840625446638744123474730017931184455462698751714221726900912678519799866818407528192353502124109247103256848606241504941131992914055520235263005113826301458568840955770792302053929807623679674209039012636384565761113516552217465809451443452598782729692249535639168845109466703400481021703195849596662105842954582679055803505465383704693488688342312724391477571228617851103755006141482185762178512853986260796969087843378245509038867857984527162264717266152020920892340338863521776123207088723043675286490221287513853538295998059458651986019315366686703502641509004360559873630035378094974519008504889621350360967421690607716423925138765057235631047011301606182046805561443787871020405144648371907184526572249607163360829077036813602747122889571460954740884605774920493696481088686816190199302950910800580085444632266971742234957976756176468799455261259991769447853717807165092693000958913623143684775446235198676417756567314753714077336214067598340804610215167522503115374913296093908932635514819372732925278624855978390169432634376382880785760291189974992769552847149066712046420030448080272050352227143040107312061401239951177388124275650811229928247290526893377444030379391727576111655821384979075834801109592639933011921014273509842043442722948647013771280788078479268952086110459793097221949838552597125365758336051910065735301506327352902410036124546641630086248326656758465153900640806451583241259358855000162748543607620529320174139514096847082319760375810121375344175456874394321774593730268305711528162492566943371972699887207867365426030205087941083161886572383449707938089416587032955648638248710835554841132615991520573792357140714838187266665538161213105011282237946645543936105130478128014809954531726131826543741793219003108915553869855184888208780898131753302520449993117483685335042754727280496996835460282564346545830989438503994093741418721358070271579547212532577002409034011851805140365353867630778296697265737244708017658649072193786246711131359660222875731172768327706008764098576383649148338811811395435154942218630733252809211704295140421433194747181111201597338288751168648626750167437099396514551786912117809733154243053273664559072525433722536110251736159122448397163967569565367861368878236874452183748435750060976762563926709454845035381733766353505982046459016372131451332039412402180792434487292901934370777095952346014068158008246262926583055640677347924794469587794007917629960858867136827177517575541687748440527655693906556331122981174487909033052550493249436018588584500194400432005715271145516020040216221915442669285918215041521777571164210264086624836813334525148427897189118441230406947647457487498092398931037863264337981037451637811100878141167179075100824696585855929794345766733131519577128208144624698748678986077167564221870451335344556089073103683144960235194814023989434016428697520044136368682061333456582898687685443596564614142888243050055993410990062388027320254519968277536748434165267248687470974375663489929887173103723352486997394934783714844616393273226311218920810847225077848380615791864908337182615805998145755612141952880006153482698770386053388298467835281384205811319652999661861777824549491881289588103305008910710572820492913580310989371503005230980034535665956399480838284957366120601936599764441864906310688280010318310638052924643664306780207046585170816727410271897838901570124611561041265858049530558552963794438377378650685963434756830364896846491914032359482906149357173304854752653819091225849125057254114732042059649130444549286557130740272989827690772153655041283787270167955925666659679283490588969456094036954147053904650484905602989979654317021119222862655233049918389127098086901899831823811805682582115870535423747527564248860318795794930567015686776257317638488365475462056423859584543322106272058610433255651852595801631229193947228457957421690269031446214941975054854450155304448229931105242041507503774270368763935894842217972909287394168621142409959459996669069256456997322068390210753723841724581529862112355890208317410609363602035291533022203272007159411120155799549008025130116406272034269389567549137575952942676867715572476726760585802140422269763465720263055375066687270440192212918948237581277783978720521197513689847361983738233497629325236820821787631677569604250063417586096796466904348303250297163720135505146075413368083389445518272854936791773556652841424941001343043264112364436091333932157980822699871104600522514443383996403939263680581466447647936313974138732484127453583939365739688240321762408038139183711600534803416369962259919981290050247266664298482805985256532089593408203208079062115838555862136873248271377048331331451784813377304279176011263311448565404805166682101733984952411086073127217291689478374746769224253066497538067943268880749227866956102930000055582306517068566216309275098058336068646354119391716232445727001131019120934154456802776269184682224746577770293981749134089464988564444512252668731611732497681233717415288790741659517357020069399934436460642350758356931127217309732878828035728827021111794188081772584663264294980094007656291308960383069956001303186893809833088869236594961577446840246767594031707050248137334809898580824163370550866659699228936485371865728703804440653870426399167104221186052115298042611581324710563479691536289047285645529561530077801308367279923238379576521747875794536877188155536514782288352478546125279374057438522897078248790293308302462036863658704546151917372351891018209944157882562787057403372128455052344206119326643185889648329378477490489643042057092521634705832633583277890576580061362966392156301939370375941350737300515248446856089267693052687502118133749600291003340837742706041576121437416992527017613252416895881477098577095769082873725673885460006529525996134668229735632287907623809026548285099916353908069246032710311366229507094072146399502434855952420758734754376791345980761297395405346548282668942246641592771216362609157000939702832489263700065104260689403181951063023325932468940646398210503160782329892008168480145124692119377350006707001768437092355196844253379341622837439146555795980807973346083172569478177309434559035331384422199589796223399102533967929157780007120742915060460289320582515186073324398651736413920417843941239624791227413796308558144233066476573759478789584291394602608747997495491248731442432525698862970130913893332294146082475423344578743236806541373802208287905867195017091675544999579757336550898461715961232236000539792930261002167288251812157988571697522598738111884928517768266310388155776796873613809852840895120112310285614260849883788268979929592417006648338809339424704586148513317621424066394466190836036896828160976138737019392905613378868170983713003564476276419554226709719971824413189478186171209472732389313902513092883503150264543862430505326218503167556619956664884869572037136685021454948632924713347706768552975761479172961408297688601596980261256702070902544860833270208329037654337555614087613702382053636225199884619314698637203878406114845406010716588289389542277095300857068523917584968466226258693575643953593766581496543399761437107504446970022050772771398119177178735332114221070853144433768750045093026653736663053297542371949918693390184129832498068633132974236364547980887115548587525451825062859400818218459495568433532734122368094835524488503144531386826840831380999129755529619138914713717723897844253482709781593049713613394601229465501174669502375190874542706344262850950029087125454918004218311178590350747269613139350070861128671878105382256983045789592485947171161677296597040847424016398524410774367386846108660465471995979421722711595749137925817770626789295312921350942653592594078640600831253794206283630032894340692042974553115792439113379825531001448464628325194615592579820354069147805553422334037442814813067313375643072770134371162864145712726585778538229486779232203492830943381432195201211423462591002889649374056413704170145115968688943066511822268354971991389095445916608542022912262167106758264270991408025271889466900492047121854464219056106262018261408057172765267805314384930304398006281065943586648155165863405367188975832445947447006971611165674999065165660829332782773550174388901601429734800548440286143512517429470958525128594690795239377247407007129414509984215501523297181722528783273172087066138144434337289716237588462917297852634844819018717645171014771065054029475104664448827712388863879898854148287720438495695592048438295042046896959024573517704928585945537930496595696663572260242995095820579357061862581418428052095274995342262571830178747334729396276918197274868556027488212433159007719038517543407892729142004608953385514448738615114901575804040683181309124089741629282644716965354233573029937710521492000658757704991313181361891773965134318535246080697310370608188803907798664111103608778639202628762835799817322630811319814291216912469362413818167207948068023539550466341118077104065068616768253895923197326657064067723336601684895648634281660261902062105565191822566321648892634275510206667703219855331813859670470478509379952540974532825823317107426596458422228495877679533849128524060631731323166663892725864802883472354888171171792819253068190214573670317979485651230810920086234227372380994495587322050044763792792884262078783956211470950393854273977288068375184837429063048093047820067693677998838809960868860992340159640552237079902362014370508059019875151228816318006253557485424419485172321086847100656025108791035821021696042160125872543676751622480603782575327875297239364892084766034631748502792758907447666270915543327099324818024774629069647449616722998218768220910204458138131228202195458666869961075988821875274079685607719237569161244348810136561929902435855129467594989232637459612380269195462329557174142726574795932639148912527648899684819800665640093686070269962667212965920429993042349568811384451130583327329276312436069337643430074288496557211841029482454957488732639928736500948185435263363113786864545776116462536784742872624177891538575932501441910587382111304220737281949152312256443006091794061158181112185360682319714840259856136991299850911243407424780034616756738235507209536878274997525991105247033447825120418991309411386972490885303451566613185801721777760688295670346867569190180607989976820592449283226592775936942902669679110481094763066417493604428654132083499578644331371806282306923199291452456777264425266735359539996180758922913855693754998307129546717179531319364159676133933705307089224184153817704206616118502331487774627619158112778831707941053805502615610442198037535326979782844877330667104900806197556302951118962994326771523703683316641392686476612695436360391904607090845095845724195305259360830895709166231765367666816004244279634810716439403452571053930136712583021240005374235287895942649477544559926793418039536109928516453672008406488272971361257362656926065876565898112476964823342808919120274609953636075064731147177173679005436885357966388091796132023741932446135433117415953968082067544120482678462661842474833162693665895967275748374997489571657419391532067290570900181127795995081465711158212037174355389247376469575846616607129545185428875105427092858139968643708133993148473110751089692479409449169622283990451688475877816465536413850944151502144168815478996498360789186576221635439996164125989500657741745585644885490338434276156907897526018582389273880048123808892336331596467519856730925536165822769163098137692898619767181759252045665051771304138498291406098493152119342148863925019825266533303936736653003840269660366114787281760898883218379680705979729182753267851652644323067668405173101734149623001771274895207612997533706067409868439592194701962881388691323629706789914785968754256011889940086227595036011462754226028006163857296734449376573406550640182077913680622195740494588711858786239720623219346714770124364154431695765183524665749269835967578219094148619157675366455246042252823523882740507730929213766117579555712279049670223275598458185601193105888999490795907627651403796272632203898887764791093632774429312197848119339895364750365772483386915914058183659754414476052250500186744243232497200824095590425960696043014513310265642339985046848270468496251244118918878883774472243683346485887668422948478274784065292272086385501477668831732865874013772260475059185246172707458242743023373793872634507169365621312980148749037478081082073095653194471886130087042669916248379610996475620331477330828207301528450218616866054983659837074091953444393856600106210298568670861592812991633305235002031617642836538822271488789768698727569241346186816864980180510127616467219794239025460150511152324714285402730625491798195647139934114493265713878999396874351620887911832353526091045095552135647670807008069876523137909154960749715601723478094810951403181667867671016479145928763579171075204819084981202458956701135020975384873978235679518989421952797069578009961990651126915826167697308759689736022899584075433314743310123763068311042135653228911384913992139783319752749302684502392462676612372039426976575299082753176602553110773128165065359112939605249241823218125491578369390551914898271664341593835163947240689431280930216743877834739844888076753305710890414845382448090500000877509823455136622269985747602487505485204896099234929207323098862085158826383019607920705173024515642725568021575608575064058843231131524227253618972425062159986740368535062100299448511089666614168823891843247556364941639270895407301253794413899960978247482538051708205100843389971629492307346091083024229963988589865958597124778933246740458428184835582748987386633993788330998529976784309414835660503226033803017599597192257796791232359656261346090365853837884593924350180650902508926643107287282370234521837341612347686258548138228949434101499665209835882636304186880576316777199339313469797084511272267475455493272126312081556053077146176125431421386910621406166588822083438791507363976910839242107382175750628895714537268003047128848303494968701176253721680074500492120449711055006254061141964788358946011393999698982890781070243545264797687315035952851107037854554086487219012517710591251077485130867055710270224987355621701331950265657203682645947711288378307926244585452415923670081631179763205949449861310294045074236027813924401857330349105698721815443337749784422219814090943192283419846590090568652005274144884955109581629773470307412825043108957457137859128105416938274981313248378101248072115681449974016773097829532708783471428013071236848132209351834722915286740808638203270435571639695509196088823407582833412279353244573586355710250001625188746086906628635189131829420263293444329505113394793486107456119596601324458407422610479425697346418529012344480669210994043136079777116442921217908458544995511877376973094344304128958242673147842464803146157031252720605524506318969821920302886083356353309216544238478683551412422428361300779295300840327965969493233723149016000819270593741928460130867026151967967777525357834254147096933909946003974314024007668343901077127580530426970689426780830226484199696213679187918372020319131438945421676485327668632510011862635331311598918385655421072689051188534077154620734437612230150914706970066566130036382397401230126200170201687499155214909698970601106476521704452299803060003987952124420868382061209786888046171453016403872769270950078932347502212547189428358289263200409456631807080099455696416614787040002895907177319318821801156269331787732668960528664567197457662722417151243074258140749185186073287222167516249564445745205288190477013965890329002079150110758442305449009491462837776355739898034425518623708644541415750679600164795482596353310003202869151227512786978126965022272396269723603095147105612459706015182849250999900420748018580121837517991302329851353954479161674150982693971033097502403733174811489982297187090429780934514946627766055251395320795135189588964064289910698563068076738239723555803322065234624531317161093612719614572012558736727107482153856518515262885773196219715870037629627491904368880079583287710591887446238615062459010534732108874781908979467922805024797768742080606139985034931305623238732640184086316699984903203584220062945151845046643697942758969317067377923924184272723197139223034130040833830059763104467402983471431942098142426719101000077933231810265708680188682867767913408919611136495510285666823977023811844186216211147153585900515796552084891724188569754406455114499526527187341459231533357821707221909757806038811844932123041065446841652687100872694572340626785901926186993742706038959151617518453296405715551296131458590522080251681108499868338228718459698733858588790080772812855866424175345943367419051628975250494312561017742730974321755609943338353661058319335384339095269630096978500398414900347543956357903976572071283549311413775288519739199701665712685575645270074622710995973029421727121608974212828675142984802080836095792131122394265475473715756357796213862510865716481149626501327519986859539871649685237440161620608176152487024143145983611371566874166153787574312113223278904891903469074919100898008380047771653226189918948414699932499332619441876439714894668018862621097198131588588531631266243946482125480273002540273344233742081829316742783137604527004927886848296417138457523141834740745296866288709290276415816122483811515989672027715172302780815395188420216151798269175308046876392167462936344007345445707143716371609410941770591814981279347317021892140511715871762282643923659796055989383367191847801083045642903911222706414983192623706954367240545657430367050862670902284911751580225317445000934953163613468965034140929913495432687288612020660788971202953027888722438268681015508402950360255925283063650623060419458239850262411563805101815382547234324415433598501455867186770277116866697935936636467694208340827295126346012628515356579272505158714768850245553403333927291400556595311087794058096292662361185479833914360953593718480277541831574992881820482695655903546359731396657323418873202087013652089418684090396515664685983780754390548260964829160909287536366450539840664333358973819157688426171951535239058850671419110517921150668229142209056562089943213460935801743604994617240285123051980836916723481867829936706106866849220467857558759774320206738684362754213078419734053096106030018858546463577016117862568437652307958144956259187415515532182756207353856342968293579984416092158759741389991482892381591278215853407783836729772699497966587521633147753649485113821208371229465810998933118371608129002243990026355299968996284953555794919868921511739574371608506896136610162848213993720712976344031603167434399679665424952140801146803930323066614772331628050914059040890057252903468041714269107548820335163300202837014343557269359148194208513206108616368528131843102157956109407538699928251586381755504297369731121879846020847357217065289306219530255656607807537141750875279088173335713018341361274245516352431324510794622465645313875143937106335652786762956078740286074662435301689356064423966468738346017583011353014894725872318876929193034476184690151928502911881705153606353871382389525891734457666882840217460336006463862573406458159597431518464651787465784350882949565680117963393184137085385611879148435933201531853419851208528863969108947416281410960267500044443415689329652929030845828534358518487135564922433824929666829972379597545298101680934561506025501440394720132215877631462689566786399391590897380538942804576662353520547938811356825594614835182266715361988841214725173472423708518070984552580628016771951404216071502255635825774790062350120676944781404323553255315436254067354400341582265397714766638405879456661994056286169997490504822944257559784679135874970253985939839881427138304422787088163077524684707907042466722301242284718027027610883914413665485219304598281975921196983833031290355781702606251458838557997918623140995143978693262608653672965831498175886882034415842912025499305842034144746830426840580011691755499311225794063320476203858515190305143645202818375890592594164368754395766618569641387261859283682312791411273949351643129942460929226539649531162583971759111920607569126823271693419563618961120599570353813967002634011495052073419942971287252258484250462006071324305217401149525340890323712198571132916229981020275783360937933238279804815077891867688776915141288501673248287966602869094336829973262134637989388625968494006553626011873337618967024881482748743175884739719208652554506005899297494338180155114649190117187757902293248243502498147124163849391297071162636716728060278723119210720949493993526395780312787861580196201377920150102710997527909307273924764672771896647164187453662404205306127847358455115984613945617574900937834091535226488934194459093926277110891009121290136147403276848973905815554688541154440999208195784109268577520421138587132379933011664222804210141674110991027883160831768724466449030270114171714347254204900805687162447693559300296141310217698501438712352554478042770085837877741465712290187016300316258349136985714228920374982546074320185592346262501545080812583993149523856526210772294606382931743533845739583526607404785641223455303648776738085063348357501837277812302420926649858575152089655588211234893166581599564045663649827956482164169046354299430090524928821015506720769336141575844484758774465083012297449131488176352867998490573318646107781323003639161113532957413251829720374582197740498191429907190055586865894336447456713302137280597729970713538554793346870450245310638927156109431070005547270022079841340896460814536252613252197564360759378098681256106604366404361509639924874568326838720272036137749831781214524610008083706389659797105354358056451561381125877539855550098453092926178911556013363287385551980012478291823176521074332819244661719835350893294269336990199486939764655466733596368212733048237921425645174654420475749939694995881996176739822065095756477533605969081360003150563023842771945858452298986297454680032825310744438812618588514606703312280441399479600492375412234926468132039430382777255634007808919957567680638610627090646222838298070512743203942260700787893325360575916226685624983419255064344946264509588131629043848353366875916429288822128927901507417179044353760406403288551869424259197185423081312424919691339111329799586794073931555019422197827582548423672309741858262630303155759492946631143117355253078242874347731164911953202291340022439330296985678001314042496851787599908033653252622598237987400221617119064166011131276673744670838638348001567835559982313535036651278602170964303105425626839570629675716178932280168684976613497035420647871586880865853536745125828647380638678817031392783195809961107233698446440640636112464512300902986677049536861321442090841459646280003245935826651583746525721653634773500548341118430659293715086454212751716134177045013524153642884053252840076212496659077766605601143757783048052489146777762795208052544148849552278323863513853051651170674898122691487537119483844310164106929335699818760050056515929800175071950689419978400045334514075277903966378154716463655636371611879304692201345843951248809310225481690314767272925089001609459144085632098886020744316664471054423254405490533043950918187927373794965996611754898979165341476448892713956453870836963524141985752122236915626225570986653407710590614398861001624751182005496324037523227683446199707376164399234984775327062117858075767122692489952590102920069933913486726326552972767587613272584418634417474331115518693014149826915322966473715941066498378944989259749163337901845051179543144092244102277677921244194663213397912979551598821302681110969195017321258714848858443825064389787153264119449567858645719118474511441588776160166470145264601142015300148888998912799496121250202387572284799297202195421064063622683082899049484403489209279481416985103234578796076504271020256000813006904602708467114759482416516068431372591646657191406189122153665673404420351226512967001021237905907188635463827001191576346431627022202457583449393759203536739501917837455435676555774627786107533878337403002493480422574171695130097897838129354423317823063347359852194257724022218428239677013064303342707904509269393654900797773073190880001112802958875420990099459544999457443940745789176273288027100742442057712791116449762740310021994772298299491178484095237568649099338766401429984766395535395760483639295899146995254038311862092579837879244304291823627535511433210479605455982238840173166185791555420067206044359181096755076732069276565150346806969893006574990850724598410690755292667854689618004695609220139517657989117080776308858480356023279730579814232826882978261635460042228147273326098477019484489623738435459109937978369704947195315250451802376061523276432108922426124656613228035089714006915034346894778101570113413003204737764961758099081203516293035175529491419188759364248652118463945848676167007758347798430761756784410902814935598403028829676264701516534888138387161631106065508908462521720662651188911265701630033588009769545981704537533643136843527958353995672730386811967444280895035225643440648915820744757687741812445248434643121124817190720435278817448449985756870632030240394619539614643533800838383769524033058661072996831749796807153093249285141177285785378077870879222087234791518167410368466064547854778467320386497636852065547521785656224781058743563847572445167260967396209716635758024504556658229881837153689439746290345856024346213355006024274594217952584294503646239465920876776140208858697409827522946485871238261695917823685445968478449660585608084120579760690863981946066964748534356608895795055817819665723188727058417144306155076102888138040875131024341643812385918366425234203231381713957160968010677444391577462421465660618301899233547110989881764898800064110587957199997922367410508750740566389675024481277503979479429256016211579347884273145535370456259806912041539977951991116639875191109322914191297118896554255961200077295821980767820272784432953702574663544800813439750109478358996286855859828193968669347144221483292350557017771609957930996852174902461031348483728588376535560591350857645812279777213352599323766714067744551994774585947273043586823431010871529279983990659940417844037981913551957135690428047708936291758067178262037598473645504096952524636015789042768144590298987286720073920374063769776232933814348123632433896730474968240973910736054574298703378622354394735082971684389820809249299858765127708879480174071429783952187235530497506114404827431533075856483951398742889787302558785770182766819183924433727535760586486649800582912356544159984201110259946052828949472125388570491551994990936867632380257762982496372286509963304233726818629984854719546359783063821953665845658169375914125651065100387739509759200255492357355804942433844416420682131681327988079794568804841813777781615423813592840289012734812018247677636112492412717722774581356631542131627190557956338858434161683077321703239035409536969292969260646863373131001171802218495469689347723782523634553128851651767757434415423436646295413570919088024850415522166513395535285327133086393531347045891446048671602208598598728231697101589838791368189604097794087976140361340576734040235372152699216227614110276865060886836331187855609902376331782800292228263395140512113145262266434062431206400914971763604214329352392312002071298739599402566680580801081355910207305751727996538423946158056591501284371715388382368356717273943278749194171008274027241567613974364016818137577249830486963206120401244401311088846713655081443642022833584984200155282765490220085191222407709075735447591086640472468455801836425649739668835380629990729208232203720192465973693096560225724541626974882612420278630773790993346859443403293567953085397718098487794957859522413671107602960932289068824029762201208802213467557299696129565171350050407937716207185906517661565206246210380970307141817312040009997517926958117704477906123321791120506377534122828940307514128113804734171180587941512727589973653193986118878767847186901808299094338614026817363380579068234781669821648913569968471471025852869448043967559498448661927159636850009046959963425367325890063141394098346833595292388084565440818111592494187094486786185733880745440449724125306920596637233653991604867634011598904495744835053264590140631832676129873978678778493046482664460462413819887491141853201403951118219965642647441102257907715798012011163963680043699061913645925173282334777878035350410973857050790649187328575441626396641780156466246506750589921636666827817877379520711944540442506848664076063227585305943423708604644755596950480433700603176453871929464905712942585109543032747500904906567175078810058274052343745745784722975452854378809231942015452214574438320091796863556309918499970564133405072762920521848395972113679661974075241194792511389483436188130227213902015917047177352614583181084258165285619803985939083364623556664785150197556078949704620181602657614369355568836829284997955466797158379264237841783963946704242101436124276201254654459542541605732803672253984033990858898788163362564733205747015536883950120790102173396754717609922683771078618300239092774648623825112639755334912397106217083766108368162808432178372922954641210364732166274623333975278399839837317031340786991063208300180760550458767655858303886425891796996590146974468869242294500791718393486668439203987540528635220904589340627981755379810628898845410906978077500539530238153925647933801901068507715846929091569677429018909378055694816675264257002321330929235841340725612904877993047562401231556484769857396287910850014037269047642628615384015424987879435287980932696139834376000586790076837021122786433015131990253881994874002276034436405688979911482900268363037994035467402700027348076431328089108514493789875282577586596290651498951917889031081471197024001764409754998344871812151559090469221806935341158746912287082720472716378821998313824357707121963331118187176517496367571943222950683976675934754740572450202983493444062488017347119405650042056676951144706053153502287045873835984067890064201173249337294538690526363955111168251491454975941427648885120117659115192936476486424314152987150655513690127096907422539690247822544325988114783091434250920064564646535041115598366748773724872427383967667926202960862550625050290437987967479047255624170670651255947052812356906998471150578182173609551082751226064621769037074058448001451386829425663714347536741609545573595253406501310974408487670851693491291147047832761975365129791185394154100438327819489574816351303014512635648899588658867212957517501103220957193079801425097954780071876680900541711166665268170485978341855482853593574151254505332207391772996513236480402648290664767865153154440245969975101774457377777058124719310497984519861608500839099043823183198655219022361045501633612655033165018633483394120207297601067220561683215293263680037785060227079097114289936561337304214539842374187434295854166915540929451449313046309147353252634044186280207735419926587343916405895541576695017261173201106340211024479901837635264764643137212756479719089846628626422423363382464991153505360106019405871927682959073595304747181645789563267269320145110184586775461223409883841919165176048412169456651355792440408052335540692180516317977137785081086830669994076075466068151855283702145800047548811209500271293850101787963671486272843037257104922654701550152847291449537156081106622212485203367994714924116562534071175707626550888572392593664439626131789921196608048759396067875597230556563000681703701987399241720427083987390589871213250167448134960522893553944031873307761243067031329326316582781636340133773396419141510019857316977406559817627944189962690518673752748238003369869177801742100939134444567100939808014749288368495954272130219480012838940592255607387435858093977745789215213134255197435907659849906690335596286634735165812215890766693399804295547612234511975735028344563052578774658359795605955978218701510328194328696839776971692648778719152663376262085456205473721052494014631695461870186520866578500840086295314116036448241569464442252724257402145136837817999761679764613814436261915700485993043650647216876932121585172619805524144618475730398048303743634940543560749792693051806315256949593465868955242147450491024172907778650854828682955883473305631122388301463507050501986518738477391368160530518951542045345579235844123846938540868154320155788270555992362926781203855552140579280176326418920338786517418397550578065676422817607107546739624393486569894382293159600403358591898805688161632986763672473831590189352521537453549872147338602075031874428088567161873150095637003883829923652328333684602191660506245877976648146840923114225903848549474921209425631001589507670801974316012143501567073043828173394809385424249825580717752420571218956087724526695261096619766593361599372311573511006721612839271139207401197864053155416467470250298017488128300723980558781531635990851440008634108964631774373225250656540897100640082186022702788188861836518650161106416644325275656532258247034717996548193052497475447971387078246874270123268078271039829720233439227202172323316775903557385754722510588257018977766590908792345186518166402584841912775060290345207129691758582762094971874677289290646298607002803333483195718479715138893425353231470109584036655959738503321436213354458694071502611713129418686306667615622728042245040619067268807595501293631380567533701595411103621799463951136633776936934824532066281881044799178074503737592291482155073910585361935894091210113304243123693934912633579270375639636092006667760824199857119792523016422398685841726011145778810717674278508917224127302784653945921273401254394466952824140860108185711292220067496722705754089421868810738586853091700235603338794407281037145498717492749598411785335942246151128645265364012096729685176845851523561027590284430946699736564331558736042120152640193632276091569643530951929710560098954036573515116652635271657930031476990484820519342018631090066997272702933495397964655137239969446820836901321559838288635439848693693147652367732332641764904493937456203533557421576563616928751332893575480340182643521549275991972004996597381366909539247604278197250962931620957342410805014308600979664933012053098236656808689091744989147896430806615393103016228301684046546850667085161833270388686084533183127347577256887569344307104141176318100483908055352482081801952299630870094792918555369097264373751720446753708958262175829829808725058093049741247767780891420717443572944688241356290217275003787112656130535784479794145327203033322303612721404310026840990500671292112773200627751678999358323506721496229042307963940635080261584814459413755000998319100805517476550616791469551238370947450659220599962511116218813291948334124396097065671486121495577612044311636231152551439955686777311639885326596948342351008011895140257649512336635278780252215126643269441037951966208197110408492431281312044213373277097557067151271652394720739516875617291987278839584034862484740382905911982921650336215005062003321189984082641687598872981597345016934567022563825027754734078669804513753875531327299474517111889837411706123559648984269058974231074297752278595935710244449529238425081864981018905550958185065741985553321004915291242749410414784886168000838213585870035797236910766048999118295346998833196717883593129726033471268841188824822864785323821552293417595494634560498004095270056152540241295776310987421582485133761821285885445901321690486880572539348742560471645668292220673715997013072094024315366526802336581451560089105483188149248413923516038163441683402412862065336221314413041857000497002905288934860886679104417226816107810903409330505299709110444237534865374927696010500392369189382907303217432080678324669131561715997610085626231752109289916342868401974876096648276825078213871901543521062775428011555479242517004088861447465223809090239286328909409486670409438386262963216161577980363775080461909029513986262871174167586511477036644391395841322875423959051427902944807362523509381232581173308353241265258051357968217488433876880351217405227801515149415330455722627415050143061753360070876230335083973194655648467028009095984217268893291391909167347170669025545205505907255319398689177134157731945430045616324732732545886894237047104827673200154466161799921096482117886285734275441642451475101379613945793431939456398796954193962296917251085391224473016439792841789970489172382971323428291333636693981168982497274942829080105281757151239293849662794758319260105048255387138980908132665582407074604407992833992171853863456400982500217597077001926236836929298316571232961660702063924941534728450059163878652811809550063701276770270463650108841503171077175321271166742442017733291355566592394850871563800101307606394440981280068936206444604836537284105553742116531897920584665899087584219447374697761525003901344451209559794297454878536281130066993110657152726578226481998200667801504354073636997105437478660928573567827419121264815065582535881798222834043262417694370012353865289548575631416610299465852485869874208134775386652064064675866713381865019504232343410091534478484691444518251793050925622035712317632692835368230623782488105837120010044211656224109972574709977668462349179410760687375893089312178207670868499902531263407963564191703417601126241637158289009437147783402650506341465831440308882886850260621776255709684334193165950182558369702185991380253862142850823405083765447372764747973345802442644800703803264016900450979219318690526210349171991270579855635837137075959945071076743377451717702494102251245146320532111093892408690368741761781876393512675086261109681537110392166888315437827615634612738809322522341305271839907713555739552716770646770279488176042465846600485132596696459643554455099458853999141962647618737704950526011012216957278777054715168390647521090265714109797163250132150994874065481091607431837195956027095303000164319501005096907281475398162371877554271463961404926793856661314038349547879913351608018015288427407627544446623438689027587882066074683476583191602927007113778352837268407092289511267580826787277502517106444178145392953425432216110964275498911719117186444245519522397056981323448862392003445448403822499096279502917462471358003829961327310629251605300483043940983812838261855017537526836779335304623546655260870315940525322485854465575266900146245222355239152115816288329528730519274758431930303027656121238328141845303981690736400966109882588807605760271688875196292543096731323333197138082540042989020432876139526731682865214710075234834065281914232373936540932771299285183199788205001553206226773288374903832433181031039843653029384660157054650401651949858653971081673361810744062932624750996338857187682260614153689360569083284784093585144290077353328583162980469732005320198186397844275852090710975788029538548689825915589097516915638805919936449023090153473970358966515842687201173576420152939772396489398799968126019284395852600425676544417228951428153815652298450446486769724856935455864133945733887087018419014737908325407287879319904183475772261549808324899021987019471312292250046953843523531758765083677433372309418183286798129584582479630829634591935068204839427944870850105892027212568326451469421575555769431290557900043601727788710669552595602146996742069275896114306493758337983945163687030829787048925695735896917016374587358536574446453615402969063859526557154245185314768046442988599507256137659787189100362204666514173871065705261777928848602262963603131575801912751449278140168197118306353796235375211702934272295534959351801651097832199905878535943443664343933764345182715096150191265757290315489626406641515947861425679037736288497289665012148363190370844925409693172098912627301308655951918688689095424586663587224647136128165267259104412686953927889745001193752687428999299466804467904449416036984229490923176840082588322210665551106621355207023369422850721016933248925106595446527996299733291723297014515235269645941118229380713673371505863649244983223157359388635494503622974197721663308970612507144007451724290322294698874461901809231590939339703182469490735886220600672225137082666665551478906510520782300374227684605256705633385211906205107163154773733738077372852212758748182423426867933036155815438402877323187681427185335777826721880044673369229921725168791241625823871457078074701286933617618408741274232125723759983809776109192426532011673474003802482533920261776167096838461356052858125272362577228240694117132425473164322424825667565274649931051765700777506290421552377626157396522380672515237147679200529231122516767377634087817981661308008589049145360604962627606000541626703909710509074539639016357129304261673991070190389789161299250140152095845722067113205861456065149352178804592911134155355503248253371948694411339214679821325959811102877371975793121433596614541063549890799973528537981680601826481080031491031458386827997409688158538326362928825198727865144260125660381630404633239970044838880703173724527152297238936019785995170974976640492426901322522521201825857661213349065594178323171543070795075409124894255064791502721655189279528392645411891890091226938949074697315377840517067738639351110896112479862990928837337394070304245984702775067980201344606211335849020526801955209142956209796372398113746418698842830824492249575350117544802339107999034201423606838293216177725263503856015871531819112638700918107581884968520657129010593457300392046118699472226734409326718050573133328429653673556632937774905962862223608542223227910370544180928666186056093492205035383704778140742844466970846946923185846175324737840087185465925858071907064062700195593729429333270698471507596289485862149175096821131673793777082352107160673428629356659079164407335438802826671127728107714282670816324989669948872556277788721008359266146746159877222052072485435510167986546093889064738257834427432315205812558683061690680268554931782908654124501055479828507072088676149312403304883148243271246086284210615192553018742812591606755054200355605514076917861518965473740405675011464923021656169398572230820883853166742119415124949889829869032616647310241630439820793924022178546807505510977648620838512980367119687144201227289207762936534641080394456986719694187133226382156766832388940289739930303519770514773010538768415124479518030278834775632704869285854376433395716441153020833974172969635868703795581076096262255864258080502828194195325959382389186787530541460234197317417775430522224820464990664037138644858047686090204992706301093460485458658229521725512818213579570597752754208370843191574964568266391057816712854199692474360460322143604916629136557768943021431328249684860142383260874005036471375837592340531355024935760310683040580577202909242395953058284426787886073259072983031184027803783737903030885673070505886988965653988219057110238686551142893616700886984758429583739576945495918327742486532677501549703996249706871903876052737019423157159389176255388640953481109760441973861250651974428028337011657764993448581808224554645874418492430200296464535774326394091834846687238816173237483951945404196295821505663847548088297266533215622135477508217477547305525950525478978220503234198790650052100516075347671610706631450268748474828401621230536946707157291267321489121690654120119166122492258393990086295178440874677637139493044151253381921844659333605837965633783418824340135288311119561802227025062456093197154593255023333591767363570381638401991550453387913429363488306152580869283847656215525535184079985019214245904907623837788641719474874065554505014199292940836341298720414346886239765869254541182062938878371630294077951177677107317224271123304862613154933663802737780595654224398868224333029893733706629775061885409311463334644475301454220648627606460093413917334800105895690641630060529151414667110594390195496539602994480996750414890177740511785139833478069666591908898867291861545157898797188255125600194855480926695031268105399320189312513030197454349315984791544155428293501179497020604176330455020352630833847607409794986693856551581866276205133129418437788517275924442313461498438550384321650855000873420253865648921250053676151511547540074966048887323291557714567317620599296540620968779452685577448870856271694681656245312057038324769954884960889338410451463195005924494282578938088064133210781780092882135029590812148278075991690564752993448202454795840461603908105590322152891857196387582528986675519074214425747145816725236745686872583370887263668972872199366396671964296313302192172877758074107166557466143968401279006114396675718633544404862082812151048967602810293016444671922782938045729945253444908422268782298813552435978078167932692854787593739299639858243732474517102797597711536366758038796082362969908335845613017658609648445499622047146277993973944432477991232343267755755911464087718102849304237290796945134168587057899252772459978111365003395359295703866553889640945005231916061011782257920928752073385694139139025157484801814120545046162448749829569289523925676131725476376281130974667685359452788887982123922555059334197680732658574837811528737304881710788789277833328443342332605099816629872801686782449344698954524049595162045629587224931577311516989156025801599845913036503821369977561812605957723151457929606573102051581662207976595309521238263326366069399650435990512645319730425062861715573047982998894749063661833038663168332640782116978040754486511032156958375906843659794193811158254804347719392266574807620506603967872849660488125300621743496251147344290809771975159357735345725416139820328615899224484890255377962238003473809666099632248786431231799944230764074645190175600298647109452877721000003476690478063641561575372188403868749417189884436986084169665484274181225731617582074353063517095444922784659991256913336899241163540574190698436138634391069277772448291309842222180089531256538232026518767373376888946465734961808090755939337466710410802385898271119578577316818233188435381810626295174283091504992963749745076906871432889516637004150244006970602354875000025507709083076541871880965709351827872104338609089103365316932083899625759022315572140825819360688491556929330234366704785343879054187123237446734605421904971625827775756854332685285841980963058167101410370130713430376355040073600024403898922778682189552908316077448872735230820710068569357213675967899754281173494508194016698822485622295102349655231027494470504361293744948685811379070323171932401001784680845726436217977059570756106347390479400549782885482122103218200163589327174714439602892134210973383355548983886174455907500026823882091304263289705511096567200007317977143094516770552932242578632016654289983669812671210547007157561253770524350949285642702370680499147836068858332785339185364420757674728146135711865541755782195980549969799597068244127810102055480727741106691128456312594181580413883179805740832249936570871456157266511356912174688026636142012990896736865044499380030363732235252277741689131985033272061760019758931262057926894417111080341517752674623144669081087209764773178311336585897130705399223488325750035982636184655546826578402642467045958433958731685304032178672536889635769813946299707060113576598275860400343723447106062246885647568320602790730081588116896048525736090639807672529618769580066179857271960808799877082526269530780520633520425495604902987079307139639454947412129561002859711010488327977626360778871448688144189469907626535530082399812247094673875206457933102372989420195819659678556620405413977980016759990175182445734996174853595260874105042734403855601372278530093623985056888988518462699027517475290902512075664082361643308560402390560395052115301379871846002445460963181671815535438133106093828589994474086876854158104517038727218943409487657705676466350505883123738955333188250682916796402487245998368764440004536747921899734977683504878259081522040390105779237609020458702819989050546826147102937270172179686687393944743532228624284171944160311164361035194996536223355308076667073823365393255556933099922848805564426376297193832824590830613779095876393002396610012242850105513383670226441874128139356249698527528591402050817162194632447045089924726621359517205545299913371339502113912367705376523840746762696930691138547952546934895646826423054155433007417418627575312652442809421453444027012921548183260818526995645958350118289600976982611120157318713744368072037988146028284403856403503225774068134491320691861916560409449766625685207770118123669816813694673876631101381480518623294907147262787503894319936573034586767031051808049021266144747371325875686961334839870991969316598047271921212675634287341996136111130529534545009541816952863141786079071063492672702948497342526002544569578974762359184195548672428125574373699109053645802668404031992605670174671596366310780014813707394385751292017548302247362910241403117025810201425068545573980714468877028831786864800180999990468903549157976644965594802138487557496931623112213355542448693481099494553869953069933886742821211862158994790910458677123312862055357907856457005105186462160116614532892135571738574722422135459251232711219212049459915965991275563247309999284908888548238416418476043689476240125816748582968608105967798569623359830806383025667939054133500512460069633621908256786748288822118605700007620499146363146291223721730744095919566277506480930546694688932236125753431522808998682959613491243684229822357224680030584230483558634075019672955642927105014625887268427195657519496551687325693433219166885456810667673568845812962586322598034865848602600774131409073166674225606067873736765393877586726858443597589437751651280482159840760967212252592390086272820342499093542934054029388053762633219197002403813634777538120974615723608026954256778684700210736109114695643296698193014123965919540764847678988190077896149159236079913738511309429405830292480902274367269342076431812680919966334717096421819518818085014661341433056838295657477981120682916833500342219669817500802174476518358455195845316600413006237230688583092348735395384260939632700007236536768734797176938654703911767020378617524866584795826245829866056149945047955552517275619129657189090927639410371990116310308168529700155566577685171047831651414731437750103416791868416203662552267586958899876407266658707958578173907681885657823054981357500308335117833647501808636483480886768339836819528062696785607477694229868750946940620798193092788882352406892719047333317129798661074452196767834763856771397742855783896944037154968946160908304611869619995439867525758305408688958544671271491882623496216771888971126821742160559538144702158298660235605321090988750798941309170087884805396848665636808086437854784260687618040351085582057812097940654934340788879659621500477188696211499816577633390693291468993196544030906751965353244546436723999985321702141701388409960246609867894547996444510730878362252727504363649570174068408453898618976288100055695726825506693222941527621730122929074301900554661872339893122751633284179222325716139292986242412554307360094076440936519971068481704537582413294380688675155932696351682392267928718104642984992398040660378812758996105335695705125690649031425825630502569622931857222146198717430532762357837195902001551963178756532658858650784409912793521840487094470015753197796107048671683206695940963292816081360168944089714631529552889274142324014423820793747447834148925976518297776004903920399281374715012181966211658238679218876153872259535489261633600833045623052376760552557019530392655561932654483397629431083499811782979456114713634435382595643171564995336894551086780563588267478475816518943131497136522510667346912783936069631134358553994819628385991569297964665473575283154766950820075008912700218340966368612366067742210717854538908414223421828226406765868947517585035509061091423072826184273715876098452782694568137428406981136907525118628439302040247335474251197153188129696581068670876011918313625752569618971819665200660673420690547978587222938946023850630635403167051585885176578885512114182508997042929080030044514669154363101635370238283988342789500210867403003538252327126071456755715424387291428063340314655625816427552573930373550405488427115159172216312950575161112345444955229393797720502712092566109583963106445427263524812128962675446551458105587195782655509210315437370273430487799105184653469722562306917707282284361031154544177178248946856978001062304362379184060548744486555378388169110499032629185183464564531784229486050804132801404829712684954760768947793894724541454974546694564810167064071690931087358732107488125055954155675594971633515395764369972425243700357401834299662376525104030984124712796096272468146031455248406361706816340659657442800720140428906923763501072122909808499051893059279603459563164834150538845229528291624706377477865841878209801184046987689758550071048952482842328992836237275286482288266862886372873814993110608914586385086917942172094948846792585924055031976903456831295630233094305412200334921989707801840778730443937115532721042602474249596938585620789747379881169224312990836033700299753257246994150802576492054428982040181846969840502768596579708294779894685777558492762630938783345598023771693384872728856068233574049257325620437135258355113860746998713802180855932735908367289321479046345514161061929146015228383336361610715312501067124760524620310710172088983605970413714913962042437043542986977149994936909817403046555915064765673071668269408309899075707021066605826994751644453815102131265102834187629987432994946153550218065141599797040089078815306050849914742922150109133977666068308652435949669414893944490951011328066565782424867286737856853012140785784241185000956169948286579304810949098308418069057361250295755214596921733398290091385274485418752110450358384094181072158171107667272399073086765066791534939954493690583469246110587404443626411929976985353494608161978947582709983452666984927163240054347034655718653935252596874582995936304734857593719529388968026286944075122055378334089441938481036605207263840467212775617231470500986210384329078289092116646900075578829484839679306981582234791442331979593020622868997115769851323213014044257529499875815895297964667100736614499712271780164831155204514675344180524383187842852561698957306282090142717689834613711772169427187355496145964350536803076914663034735094320488554818940775287596976133294911095808875963618080200037506466559173790035544016060566439961223309992342982017391167981563310141842403005744553139072151589036400129901078684669705135873997764905736849499835460992082760102461188251876341550683991664566869771078369736908167019602299166081307095958898495089652932839336256492803051847642555689897299798897258887584459801078060852001938057829880060299889256844715065677965454105235063333705779292811817436865448132284030901932522940580479641060326930357795164465447481329576497526990681173589237114038474176915388700905971427786458991383185222802435439622938283307010221265175694575773629054802741899374683219609352403720907454001296103962102986213498579794510927913718292830732676300929965116866115913897862992399033879088826483029703295309924176740169271653096982908679872353704135786774453287274330978468672841914391864979405639627081790457196972922872418384728044264021317800405501275835437953807238694863070870215497791369446432543348529496160369191573191203185498235824460268509837684208982147231494139750198244739425740908106752967583980270143038039126972062761438794622470221160268055898936453752643188840164382064915054952785354232104307095403320696302398836326448492930144620610953341843520373731663069771153013504443722517258253359999314506930005648451838346405985969880853086997989429533793971492016239967384939525855275773968589778580371451593680575157995002941562671104219916739543680292251318723008421883250292073634999810302828809676369946634944214631341398989229739201776403771756823998559707249620723319222638037422755761838509336459151791518323856743331887504120924085877192412003249381967170663961079363386794328963404369303398112958777882025246940070640908575474729625735099467850029953136761408782558774903163879907429984317937157075713190403427762844499308185417876208754050390338247176802555292365536426861613119779312790597034245589049295202655093185444403951804640394695783511403975577117338562990904208356239753801632745655871598556121654093319354495060339081297138459717266106401993004691882711685617279578936752016431579405127181699202816831686473389785617841724896247926025346197461245867703935687851061141340468556774184842758282715555127653731962335278410026878039132580904486643416684482031297663853032883162334728013517577044664906610423837995808621663610373860558292811371816297742918261999094279162221673917604469121285875200664160308446135818977344673255038198864994893053220711749432563921369213945757223261881599427286047834694788370111414070088354677947268365666998007241924074436241054119592302446174402031711241538292113004443846169612235944506593141647150663537144628527663929877344480099432421801380652085951661192208640908428713914404998181788104662512143182715235268987708735522653034608240222132405562986437379386797483635623478026972656147355099913287113311839718874824851058268508797435707626203274428944106949175866898599216615768579974083359810091583197972426215282673513780665827123795811145275709182245180693053751448055895687321619898586430270471091320356094401243035261959572879831876044306703126779494107409210453696830873303254812545383093027034454564025909479589704794150544704263678270556658296174869757671419085838178469056270597816631155124781280354206113798664148565467125590526029165540125940337040930577167422431253008919393038201046949880616111393825530793232561331149968379825339631250038481533215588488446475739697745663375276367960519568311356161942480115360670217549460810593114506680898211834480531233174069639417109062957582930166750463069900335695366991246806491389395835496588225577575444020920279254677293365775602284454227954294175141747317966959482794291283583327659875283597671039487403228472225069823548966791690372762220489946755238996970550859371849066849425619568692302434224104520539221465966874945889146237182318599707482434266073992227229152608622588859443361286471062134270535984738395174881631838885757724678298210613804683420701884613492157979174275100698573199056619948213404388301463029306338375332495143619688464469845551938284958476512709095147526335674473008992237840142919058310589555752009340442847903906771105613601783333411457183280373548508745826336247041499000945649220107868358896614118521982475912319190452807949584651777858941844172226226624990853076998738416136065396297653337397840302568809816829553338628350375318809826586981467216033731533802682513894714102476137213488964766218837896603795228663401224298850477086447101872783661106653699062205660262587456661588606539192156358945983073299152579539254647225077015120670100604125142819818862351325940662718343946158712330718521741376754949366606509717007544551551758695503906872337437736769234205744866097866109410696967353795456229784975112101115966700309036997221600289401045146527375035473270797172603105100625981101521218433813662529275150040633072253573891925791634915634674547280051699157850879289826036639026987795845973170932387226564094750467285715576444335512398627916883420448775229685110820271277769151578167071981894662331827390480185947127800380469202693803650081421409615754080653117120815123358945347169864100508970427424695165419228884614447432389822854889729427406459042776267225549583168046526432236099268457824704403422253230147736569401040374875732067325296510244691381035256474563258220960057274864859338358032397642089766761392860252064149548289393421854538605946918618684194292062253160681389606522757707026756390330467041196048431872360967940891961156649097658237405577551726371747160579918993009254194730840880776273438213218683191645721913434208799104954841060968025133846852890897388734222603674946750684921970175260499675691074224001157839818587720204379924857028816288332790889593461152871224492941312008340141542930964021723200417917632360604275137515972066921323171289650976288869555954016767791961780013807302172154324305907199301885088390206948632786953766206169947794003486135282973019837040607000815592018265672248284508868639853506606680751004040194298744919289883779309229748943821291258330135110153650265622500830537468341356465217357385055366877237277088362645782946893172851395419841413534290109430348245654828724544078523405217353309481459656404849908674647631984529772235969286393736655147256166557680888994732822777712836755079010928953508161235401253503014632775846862348908083767625618352662131161255998055882640297228479568062780530989351302189004860781351361125210716589329208269003136505423140265167239915228094113817203360672962897040201311100350648965716090052787714867531504304259648928660481726198297560188342463557870964859964987622762039905548753625389609021528025668406271007920217951132159846879055614274249106792008121658547453119456304834526862225347380028585545080702976995175397619916436529955366996000982413139676009280511274017302959066249983511442352086081670894872990517946868252209795619608307971290761292076470908623286351354036239461535443879594367916462143327439630789341334346762461656611991818075435358148126541366182330434833311822164569292510629425610681298459388414933174836250993414082660461301948665256586809176773337044205678745464338082775539931672349714594649308375400340903831206596214924853288617374643100181185136110887719438367946631824817259411564720819216010762560674325436030532666665778732180648058620171487085216049102048609592438890631795623603037984814494056051861638023869892396199460649064087744690573208643411821866476641548983437002642592437161702899367997608677424852974180938571656689716734155995369825975892722217036097039238280666202847652135412538689979881999866806339690376257558918445784509764429908900894987912389589294277546423485760098028169371534268663990997495489138212071279389549008203846890135755150500120555367730274162065596523885092276915459165982989940303796403225196304673590571090563018555101944054239708088324852461282913878067562659272669355103279314241233309853111498027504410534908140764098506635644732618497484384581156548924538200236535583355253372774126307519809063847717379603429825131567504669683274008309028292957874849331400572626443274313725698333170008831392357228101100919861901704023336838287956827417414543543991701369137840394777147476336084531673322601719820955692454158461378374890768393386004247306059017493648031993384526122431508795268886512512721024488356817579947560398613839340006574386043351137917086768871217807630945830344430670061230143904075275191647833190915283914429106214214235426356818364493756488430549048912570421466023533803697240975422277647859419480149540299984612337461763023161057322722860456436827955213089595342785921382539790319535413309699378846473455369183504604821864991509559741312193789962879253779608265747318907262495369882910795607976352426791175151508394310619583047061220156686744892411365339161012142250370026543597066050963435948840093351986576892019292879739646188888365880600323842967479400317026162214254791631198732422348459369842718154330315983650347177278042281781691761163774766016092246691158430457949490018734782421606430468128125524552243093647782854349950049803203762867818396094249511740769027467275657488115497259459348870004997405701664044737415952300558067892688644843643377579522804456391745636719725517291797019960583278192095575282372986320745681228634274633910253575367449166424711718908638043253989216370213813335369615949659089117083112798009519583795949536656783195783749161218197579191093293515892504205390473848487900690403577802031783769411722807226386832948222197930043560359523085627724105327973682689339595949401214015203027189511750591291587418222775534342260273335260093616867746722704072709620983354825183952209560741715640391720853343595690031105659033715991458156662190791322679225282594324012217963174419921177415242879954675340562307248776811345776996689802747507283961793278446049166616413327939938862056660536199553510292665136433349338836336153535446707596383503137281684281888600933451820824482244914705016514670449885227423342218977853211556048887479016460766450735338058080493369839424355941302503683683375126835635702777697533638206120943673109073544145668393060923297261477036596646917742983161035295839603499965481233495714790556904760136185199140981275743884066127328045843054015655453667072584709855074408394755869992135124637452282312841551737101038467991723225805804587323475959931588255587487069505124441307071632797688820551270910850912813799169386687915465961920568538088748308827197964088015524938118846613055831950614572376015571086502726964882258041078227982534288549571585076435667922864284828065465172289984618201481016186973995322016035706589681591294782302728308760133519651405495968401326558147945448766972654556591764070997796561587438980978651275157084651437868186780809953856450242531661779616978862159203880957433517329633292066957378571504916151802702204055872680364986666509282346603042840256479016209184438853418847495161938911047593199450641453004153411932460779652472910016875533047798282930024762949698193062007504183463726592161940407841652604987778179947915807930141075553202540208102223967228164364457483219555757608049831879364372346037794194338877292970837541154071143408289481889735228309569580501087832332863557181158531607682822152529973440724875284347103073179462885002052041248537754142492963614279896530435224462786938043282207622430301711275510494035966886141713630626810145226588086532202929732725829570799329604584289551256484405203253819384490515303097760839360070006586627318492775460758576114320300853989033052466748686874113314728715751955082156802938807359697482433392765688953737339182269272610494458175631326753368223405217371859597350712693110055098030422572838343882122928482804839131284973975194939641908654736332940901245831578222168913906924558686190867063791484588140567673892777938254238527475329391051378450101187941041318109708057360738538080510687987626224729106355946760402387952531245911327427486617971668311918593948316920906473519202038353616367623961361032349309026145100001752673885807817563123979014555853484799336817884982635668007672325670819872577213165572844695991032592653637719751909889048327816203113671390298466033184206130574604122951077254512990773691285023943855140657782753839894797477821741756507764308198014398953986305420384363259654646109217399878432284646964356557742533393470061858244211193438625095481093662278480807096599845061797260878784852332507926803640660406806908112691660358375086112720713916917164482037061980870355207555621034427139059876147131849168453903818120378668537451059840536794091681031195100499931700070242466782825453493810153566431989787544483901141848343103669612651478504339378036443630370729490181425206460033563531001016038168616504512712995124954952387561414713334013524308788565412130755098700840247582361897381122552720023053795502264489879575544867732875558740079426528758318670543969225936605375690606341176885577871742683666230578292682921670410262931183575876316302281421595369542243719580960329769582949038193079449960461508465792850601612493555256821289981179607109533588059525609351583823348436336058829165956010819077789176809059673909037149537279681399913068772254350202966271450527136279078729878750657498441621740293735928911337981083901230151193797408221865908122868358384282884868190191666697744067860728015545016715868531700847282859840233616564480589562407119034871134747244658898534972485534224051211705543398956713414984735210683274079955462730710090759990194530953981033737221580008684955054203591048760866615585429900532976201234406396737025899071322743590323074270515912692227638643369372315852578073247761876451395225993888880690143746565983601838261352245152803570236729806222088431038436037674489587023302828875121206872666902566667780696792981590633857096392963623772634525645856545397423123251023598342534435599031593153566693746241774764341093301364064508667675183662197763855215585632396185266196620102976209503191801782397143385713688891508762257837427136175958629362066550079172472616736011513554923882018735339725629908851946700193484280633682964892687778063053575420721356776381107558209680287121647846604503496128678083308621734062501590166217155043997078153009327624940639301125122442900034806000951572526790428877910135530349348726734953262111959505223145691061186748821643825767226360946079422729084179512867439144562317270505487700358747732444706913621160816305140192885872754058079194009013805789619065466540197298578753454973846980042945152951749679722095321388278543904639677063965879831422311838015153251450216558278293774892992266200666641839759453791324736788893074974787457770085738846801597913423041176457755576029410910774709075494053025069540000128883997946521161199424890393091727771955633758809826904365667926943900315445647676931040592581691361070198606128709495933740442441133483180075784878378354824545023294183816512706319075688874969986103939272851644284055239362401417852673746836833736515874815926838084371696002694723688957914356953640865985468990515619001554020191108514699869130990126506188366196931540486805093556775349623530723146355888449335461719344825280750970049750959172209736599831347380603332145394060347568412317502789054131896611549331858749631132952064398192593172510294953217292364922436654727967440145438132236882737356685707711625112141315442236254706390778624880309151617649618500604569573155979893523865888274573245781427643036738866416253093049826805066540865455405101746834841889516797008443392679893731919980889071238878474446578612496651259806144367361230503016140061706142286335905899497935954813316983670489417851932030571387539855052114558481759557415629713931116984421744831895477204252694770686082843093780386259274984620081560207480044533345034660490185086408862132785770701334615068034194374358708624703098732709081837641734279149253261304202570639906341919988071087893761090770395754542430671919102276167973616545674682366088802221152139386096343567441107130193439737900310285192346891170775540032166275938054796371982294768573097170593101087209498218159535802872576965645186713988290181022971608532377498089717820060286902404163514404856520526207711181529601404912251498119483025743788770438903197143657377260724431746210595191289650228237323718271636190753967661256551273406028409811474987324244038648771030347810316343541482860327844283569200689362532941317576340152520533574173934567316712830924486901120533061559234568113335109795069187778847518733022787490952362694433151162099999030902358379111306609317887250339233816087820875185475414999646535268607172807139650418535312236438115573790510275621170016014112463601065076744522691803401956159355563780407925215003625177729035319360866554437458552215280788851335336713094604147419921664807750030130908143045307572620930059654955500392589263401527527434975360586078877353747421779708497617421754820355290074823232182408689069346463667462546550839337503754779862474490192757361323813173487996522220507184628225164011157257083636451947866784547160299932794678093745670479389102551297136142345540334885022583473870093266240140113075581448946538546875636024354482273710251834875719309541152139862288171330379429563303568618126347541464312779558210533036187567998084673825898289550050406733449914284555364988254603158354813944057393197778498528605534920337587995414899964576568671458767578050437843218282686788049611967577981730060716804958957690595954097771872474181512460192457647549819794686658167634583911400793664139252642336740078061092341970754810035874290328282730287494210929005089430365955680476940669109784361911324466331014268240620740988870964263214770308473113286540195269599558908630172131998937243951826362621579203376863143388603945122052112209453841971023513865905326427304272996309127273298440902182203060746034407390341726306427487457434657296712261097485259579125686450474367283553891801338352513604579461649582563311063014287683339049429893634119549732475128813806579199801905471883735308847160721968390633861184523199330319818427538554723226895678276632414339576065186713881567807813191700973610360197214191971125171165582484744642834327560458037766328737541770127024517587359429871988985202488219628686001167000951081285541225247761641989476276651727096696452317165914836277533714054240174538150311888105833121728164890682550731160936207161644841356353665480664667150204613469874533704732393205699838433457837087876216776398395540837701374765041146819696212500768584141721590688286163897772778186320083969751352924718030298396982351308904180714405982230687763817977446109390833243244579219595721810234040102792248486398303655317261530340747202264949840714649806807770861863885309311097361965884642042665849608017322680557244242382471478020508442839724218515391536126815929551491592247660135381070909308617616816126987007298599645920619770391171340120427775567864802934791606074515853606949075889796353565007731319285291564515233904898425188526914284023119590842370072165138470246553043206708667632120717990331517464619270362933140418968603650388120491920891502912473244804301117627908159058877813228713688748820596533228518168798431436648267270599978040982870673228769256355136135251766993696375721081174990065904881316837808395828022381433532666147857035067791606476447402296777554087715524356163238202030463583694889252709495505616477621855425392142348518909395112597109967858151999090566968247396537511907345186040599429162611377541293242952042770384718949271684685459959179053403219237102934230199406525825699502481649423304322279309176512484341100844591262200481415783579669419193582875839431306758549674823721584416564799612997404556981859724045695061055698729588457897835735131555071997258083350534912880067283980637076863059037869389810942310219393707249178108598032204201200663909969104603680189432916213175905166058882599181666753557043814149101433349475497205240105589544617449222490255908834329786775880233808536324226933742626515341250664480934119970721112740080753569844803649687237481005997362146838502796631732893896602024724286473887773125438739370125391068769688008785762691195353879936441823737781884677853007001469118133825564544102715048110637977016528917952164372950869091526811716158420216911234998693243519456249707711294739319283662200331101111602660030536439210840290871506027006201586248039242435232914239327311344084170626294957216124295367255236032297984388314874000562748203291713467073026092484788126441237717186038840907482627097086101273471642681893570697505494296935177493073841442170727687249958579964562559898906327159208527003150918320719873351798900961899468489344706794572649859644229772442802956605681431611106691869191635084852532561371664348724523742835422186751887421231438533490789187665511323015679858265823729791164147345648549117095928640755209259466114962498395183079229215535400264578264687118839125907058302451231389237841899673580265152401442132337171112535455419670191481785747857686174903156385932319035096127521064893350001056518879750908910705372407412020155425719516604877020779494113086119518633540099742926373041384357399372855550686189168936962796974013113246314515976462471738457594603594438121452304325963109532444641309698054045116903853559078347944966095568938022706765722553200204174947626005044674059218358247425638919988235894810991685376999611556314427644330051018171007193054249695971125009378733055785281890581336084037294721228259317220511076718825237477695139380321481197663714630760303050848080378812601179437472284145702112913272637776885367777200685037750936190601336715191639424657550711634484892249790400717340161784146227508070954038820936674139063436166458168542569781674995467835289563644196025188710106234471834893263798429230937890644972339671384992893226947251105259025279010221614179795259753904443337268505886409540566766351343242973058977483873787514110638043579634161310594430874516183655395997641999906086635323489789966863263402005214153708473828968627453056799326617767426648095319580882755605384738310587140293023179893268016402871766553326219601612423861101412492529193098694373077019432317225497927479442075289760763116900089183933087932411951942625284176810107159034131916558366447617226953323802912675043109606584550945700371261979441600358709261434207397711048601968802008141600369609143279214147521513141243746096482057591363825153466505910446289013545748014797837740160392340206470076925262695408917019437474616656421057199508184252445006309674348709900640962162722877111248628594130797506108326626804841083360218185641530139528029506605936900395408497569559825065376088736401002778706376897799091027749068860280565720477852518525779873260096987716565476685414876474907917262529323454339447307174019661061678643890488785578775976780858648166928440804487836707776106532289539642774204129907248622356788862068514043533138673861832650288995144436536734258147903430232402371356140150313089017909286035768539060305038133220166279295229071740762065616368159675170180150019974390028903659572351831287587874026144638193652839848469345775122628560853031295899450210718027964703933815075621317618674891282630422696346789580450172789638948525673589642606616207648678505617755495541088254096518071263198039199100793410329855646735173061884074095339383625800733254613770992347237329057015465920187219633540139365882710005155591964611776522608827747776517351626142179218599315155705643045956071622118919848875580800121394455610801191052808395538751369075630850072622282561312121933646748703090214457154384938219107433372277126906151982162381810012309598531179124396695739273427974697106861417753569091684972558314238358916840552663997807319666665698652871115771684219724369305672464428794290829113561115584066765078738120806250043523712225810228564089583146778017636591980230543033709158431284074132940984685376543603057429609155730651539994365288965927686087121422989982413156105775480397524187733838459571690333806511400687990081702865689741738281644873399882688643362878885617495888099139696490868922984490106115215519609933675239588264076209074535556895602312310257153647364086918968532013384488210481440995035926953085950969626187107525261664694452854965683931023918897815862919302183049228350830146010323574120501636954107612376587907321922141756104554295411606561682476945076804942573851844080733867474885952817124509287747352791447581367050203380721524066206331020753507070828679381524839503619200202937100827074320334595799290642192252102531083646412301516327717158214829472131608574520984156970193524697861302264059381255423172743318985994458942687632470312362814147858919616196052629261491097514146492691971856936255471952086499768722597247704698331183542536458849831066300366957478901355030436539225682373118527367172573984140154223792750396280406562974669606963010791826874742697039449844664726490403370126275567319371378961294056845320817011772096626389723511045884300727430038423558256646331066573639561784402129118243682363516715408308379248996440262448547335810210663667665905095023673340853530756773538940257100661646802875113000705153060962616071184969599675050998251340918422590099021279530581471593990856973250628299037705307984061990129983091291401376482098943544831207909095160694117532040191351195856975165798692947376762469607444286592798449882436173054871902489902370125608769966422064945828783374609380182965442336873329215154230328812632587601191296203018051612444730405241888584666374280379142672418754877653842079695082132734816962296065866249706167817045657163844857256926660089665036444219474206555955611262560271742135730473073335264245360339968851259294077799263051520618025172790472988887010640606920350936687736224889309789485553118618538790635469382040951766299255673496265016080603349138555708559626359121062793429195227613029922600620943357809810269300411598273894358403091095189417462230570319723613567818429176684096776930958718986979538268009123894650993056013815698193479984575318949310347935283321400227720723254762983328412098442931131979600368786005957697746742592475492514013677227077709351913224164001159112556025603072108626653330666158877473979051232436921305745361867399867753823729763662559843558035189956996532367323030366901629901034598619029871922443922253878257190000292557463463469905233825448909597638858053297924904578346076776970783925343392053493343977209715500752640363747346416029316043973882890050307216527906412482344891497505532914791017218286979824484420043235132185639956300728318113023119537282073446217082820798873446415598201498217085234478289112748895970420985940883076336717256454726508889572681313494725994427390427987987437518904713433253647993333144156928648053885044563190029777934869402642591477594869504698738521658899040144351132577984353440048041502037188210374020985404074456790809174633608045344607432803726422805269482451022533550926193114181853437342848953784719845861348820901837025905099838497662292961718150185549472227291887030190146367141011447651849762548837339136714845456977331553973625525862977498267663686396296454689238961565282101206379876591380352006617947361633167799039250068436907600265078708597798358877490076102513732192495063880161672996495349136926614928881326781609960222210855664282349882864780533587430154689084941291994488890305689037630559816648273939057306278877088532833066991804052431201367362786492390381625657097097096237970307800446505767577884494685929176251014764150775462122449081672804749999904622938439421820201046644396269594439884053829948236795457579036722937518807808877744534120375592823618969630880807865205810623882208250641053669930537829544685087135488184420607257549036263724653748990017953078547442362194252217299746462514684249734070693260155116317408792917181190942142284794633318052657294748364489890737471586550882007057370866874453545920149904184738887419277431280851759259053611211912123897202822091804294871712599633883483290055629198219388826269582761846452167524994272100945588665598253258505026431767729400170019043241116847890912132895390949139969931676179579047758656911171921619822194416446897608023269399033844388372545730585644881878590614988643980697640162439609150150461091579729997495267532303643591829024761476282577999637431664786328313332909523619718215181274922589877079122933114203840583515386957269531220621366498755450832683360005822341495380202820166161812071699798976335405123383827496426195511655697042255166483031503373679966834291272075538326639092917129527681520574506051362570110393814848773286787036709123991946290237615515005062104286778230958773972385440203999170974910802886720926344622761777977443709605193501811893242263504441030636844844610891191032767155548561450674208469238113828834249064110460557814841893638337907090642285204914292674990155107356772226376806546466729937077520851720602005167875784329102805981586527900128230404116338432726658863070935535331903284585341291912891693362338583078986122154009324157838157753980542841964198945863584372871030178029056366826143002136974611264737931768141652099044893859412934023724117206983059087757421458520338698205467453740352861813916046635628379280644194780916285315602573327169079210540215470234807684130761947922080574821804933357413387852562124265487170638554856857855480421956546423516407910433786327200266882132365610013132179709185157536724898793489694147669395988041993536543315265270726431193987740641676058849055301992351217475305051802352589987192628985966477951579777275334171261131971039221764517136411493950026882433976147514529277990013288207136512314654891245104945439009813805396510235988549940845033044269033844354834289754300195332342404823343175516976641800257180587928690705048230354206807885206852035723787942091661177281227701399753404672662548623154859105860816575263167212872583296489873567562547353534110580735598816661917474951320452673933088726087614531238026054368645175049940087116784712634977454228564207618619060454169826069598316853121015244894907857704678149034888210007807235623289761182326306857298766892615393453760141021768986133865603718980834594480703309524101723224671013546464927080703958471362214172954711012138760914346277732488696218063751474484752826421056161737556291727871867282932317771700784229283053560370499999168674846380115812214001541477928632149175325356299922114646253180017794527337621570880480961834076651220166696028807052214335927463156532398085844975210093650203210757567115403353791327969525177841006036670162886849859635932895837307286963357989191079544043323039492562156865255501636893669494999175231489241584620383654338225053190899784674553792740206344601997653851107632178708998367916796265874296750815630454407904174174301324240761369805509931697841802066256274914591366038256632863609449534684477441264390714809792956172425786902126110068625988257516379292220697894840296110588064793615265788090474950939935066555943437421286208198891239114706537354456857235061688147065461478837469046160022510043474440354935916368533624834536890326686230885501281563154956135732962185518419573677034248318351917925959702914548191119072597097878972598885555111484475398698134897785595348272021652820977304319974789663944135027202982601177619217541627316512263668110661850311890529383919767246590790182630153838124202519513929894751197619588313920259411781606926891857886428567484870830639882878938338185450348017251136636691279737624185287023228922203605117605076799721114839945002038614475404266232502420001858463669334791843186295981904489842720258373330281247771679032133876198409723969664373900420844998802812537877686782464294771385125402151675725630743915542660828058277751866678642786031003852696384799254423097727833363569348166923828114346329247414304757994166577050948337420818508242881741989757423656374260499966510629938149219919851420143470897279859668190125217879819159810115399426016499768118623618823489160286330761456736296757115351361342678323649407821006922817790492173131800819713854501771705629127545078785741937060780423522140125654897877011036566850207228609632828177786884209217900281055444873973205684972251388451891561338239183263595623119915381233281370655827595069003950002488776600177544223509989506666022444577767044223185230477785754909295414340578349595442994933985782392557135634461849272768553154161872176304503310161929818854106583699621291770382582449867031505356877241788919021392986045288398233798504131659839021247926721049783447285566958164180354627876010990836262891906066630215383457138544638697125642339884119318704409975679363172152555396282369552857517536061553192309629364123788011332670950899880062314419003688588001279308826556991463115024570742082527593925332355272526140923931192689653547444629071552737753592324147096929170556750782874764612170475744751338088077137626354401659091986375131087240509078662128945351385580715865565538130378735604451814460625789079572208539205839473047217263446198663943675568770331894051893192349435230541473506831593490611175837006539780486441612997262078260455709870209767092313736502082408234087695485810974699854961786983376528363934267838327545681761553520973789588049388562320553554369227615740291474996508354696615049452406225422287235322679713543169656544021449159513299281011803571165789895389096867837410200793480148690900595911822730104502705563496567532084768451070119298393373803493321831868706585567457194797408462374192442326088664068813954762017240885688141786191265868354426817537064149618210636763558169020323725777094694003119646895267308677441488465736342418797357086109770061602896999853775721760471235532247656943113675157311454515838956839744773918874833682593591298875713709957691882020541367214300574825339033801197134316379706941089973776160829446953245550601389711541678772097442497526453706694372538548082060023983220954797799333662603429317340740055380389552119213354699106039619955526641332942521795914417282549647247226361259173551452401498364165931413084597353488148226133466457604693225008988922383258644661007105822002636917864205900506482208257095870273569029810678215563878931111614002040933735451469201728100156861017068725903759849912010492617948805710715695278314949527146035459725956294471186055339749248720270948838275689152539254795897448583532847488834824387119184205953660224511328661614350079348917513228713881185998441044569423149629661946527776324496874342159867863786978820240206665420411873234647755143415930159443099710955551391139862898542326401427572831506922652970581116319518459709528933435637652261592142614984481098857715439443704547149119480746433636783441979665615815604564801846739633240714633654455772644641117633633288572777205824805518984346887568920130449090357224953296090364146566072553706607357805699874036725876775741915221025436648549916588189630475151533095648928435819540374125182116966922468466231801590856730908409320340476781842273533158310973844796437242644402430190135286363440643545132327848924506341024849997618940063673451142684712584298677787628177205666170686647781972556960557317145208529830155762065310727700325013978421159752325037513774692916809624092196809881349482821928756757635387793805867985967924597801951254821902724890754325280906222561624622188980151877788004768752962612835479940942445186869568997806531333313504311928551361770515236956128097727840979977696335029111895358207328312079912921314915445542371621833648121437139109509421877194534168053515863901920242553681312969416072515439151363908478982260100941272923084418717216564057667156719106961444933875915009896106816367781268874469922558825686596022499489837710380107383335837439960268967827970617810634770899440028962600867659379372528121157571918394574914109467748122835592528889549295117539570848387465987075788303417109941462345191221856129557640612809139464410370569163650565727207130032659904388558040834986350401064844120270943891125719921372575755090275041979436650323845343336722820806276454107616413803287538303750871234063983200064022697489908965499896127200977610725255987096163855081026448439323943893158783851784942606419436842723057917209887107145199872264408791524354538746135958915507818795819896058069438082667438171692694122850304512252532893713495786992292071336300029780627379345233552444638000432193550330216832559282931019787430490988411797497989192784862786778789805107641891009882697542604658808750298942275525469294546928202099652505998919772940756507240154902944525806153033121820010875493947703254640865749040978096750112701799715697002434863680998729918791355059943619719835404458991890313759831183956549980307802186847139688088999934502612252277333063550896525812993500774419451355217089505436161505428294517780149971211043622851046833370863427889914932069954257147425787152593680856395885699354777601964802471928151377729351551674143098437777046624821931773164783936632700887042171621423604627638969624314207850765205510170233242732100786579251130358090643998068138979697200243121517198395024449991838240173582121047176317054936827146376239169875086141183341634763899242458523413713253887622850721256711301634084422651651111276584908988578012922284905956696858387856352236640508395722405454708734753441162738273807469055999290864392689615278877883977466550667967781815504008559905292625421677208474149346112043271641356445571185992726680577303371171460610124263115073019936624280391954044519371721273382501279257805718284657913494442338531154091991247928688980293200556648835889708685278483371777456684841678719715898391561932835622505470519317451165714039642195457287048389707230413055074098088007707900895948032723826901569356744849583636565522454663791060148762816072614449100606409045950089375565816098062927875452919955917684467786980900459576020956098424340291452939722546026910131197809393634051725750008709240374324652303756663776508859649572469480125352986849844631784014926964033835727646033941138824335803881826109543054354714611322343265239482102201227348855023756284423199242147079418178888223722479094598844983734249201235112246512467503931733902027377068932772435117436799448374062886597869169478226423029815613746938932866832375935574657876939093342950611604879282888782984306389019351943936942193192240147795275987128601827547696464802095738986389179994959798652458746009906318128671769546587373804037515949430393799060909108113617239861988089162845735036300397613730120309239488038909803657766183441895532135287203602958624688508791524059687773803676545651905063752632574261964459821964934368280506061722018530508421878469564637031694972208593200021350114666864166145422266228228190318341961056872439514885788402272125654396846276157446373476709657438683088983513776948486178597482628947283111818224662998414544660770539599874085292037576899863956161500761624346209784014934421291138659553882509554566136948946751485833417160653212522467656877481036166513682714671310255674684664452178116524993004163478479361175543258591666843088266859389445463776374609186869267380107568286983024090000899780512994317220110889526231005110349123982928191035390678514392759093142276260281055697267529281971939282630332790941231513096071561582806060500483544781701538368703762845237995222887062717852269755184798428032679449396687560807697280892004761789572443298085356902447651230112846106139889265117436168540810090614379901042355961239404425307091357559219625209852950381503058833367380217103055433476218328990390510938654519670416747734310838112760972161713950852186129441995144930913422533178212662881448628459453353856783615139236595366413859813884583925771537252038410275002864748522568114997475802465008032712494623861544582828929924097168513149752636839292236988250916950545053421627472741360754339534379789082735820160362104696461540421791107586064162236318337141007998885522190225975736644394166680277133127047364319452658041592226591777177016535400707133407844130074026355424515049824243824673149326149492576746932282855116702544536532872398674131408524254041326283192990491025933679935973789724823387278830175535426574298643311291801970652414321471682183612411544177470446667648808723776844484560139094295764916152529560328924240300736291864845643152310072735637436704798284420051636844666703965370971102719687585387796966820403136563228652853308472137536116635526269286850199491303263180010013372964770900689661444401188063254536522737008922491441544023636167117582929783539458136694353983644958863110542782420007373147181920331440742335546952798520618990250382499907459394538740308534885477190610610070224697668788110588354350490579895268166590241837411653529174339314432840369196163754188723347230937920101849648733554335120705641343035176054379584862461437480731976264012832258804907156582252138699614352661212569219628011047585610299471284385873542844325061860902705068744820036014617322213233634827583266649325404035527567661662337924390125509476123741971139191622517020702993791000368435454353410965974618584029022763954947220576665957741197668711544977904242097891550790767166997421036980573870066359346642600994804965666258705364742678917245458166093765143346450572326462895637995051923239021373613798530471457122063794809255097114336633841011213568394776279061279924395829217556608060985123603504331188453643438681622123615469666546287140046160508097916503397799099052668433154319000706188322824807599929315665591624768039995865796978862694420267485587930423282014223196553957574453125153492663736804320571004315544438122354983292356173120580521375960083467755464736314776144924377971843134595043675404648895710277116888264673502806698842906562399329825562600955339346931889338689586328355694630298235767730585740855590614191202420282200225469454138932843875653853678418477871879915840899531849649624748148195896161678333886885855041370068918602816812993103435787395331030482223158218753273527981739782690214780728886390086260306086841242295557531871788176159046309761336584566595353009078465054898454838414273457751158449504192250174423585008575777359427268866814652378678270617801575536784152256393180958287454191674783932594700825131672147366966351068336862528967324272693379090646376295678603851102228024882438555928933731147721971737275091796890758529646762453175357053252450206574720734044083232587678479750840474659542096994975663712267514177665677057449751851626734672023297641809035358256548827150997532235768156359694959576443357543567866371377535771770301246551922352340719027035139187299166762367023424112702225295978598325289481725965959045628916211578889709808319582542848471401104295812674680696966345222170432391749846901897302229148517415521197702198678731719639941489812668565101170953253158498399692332890038485796219543907612866272281837001099813692435735569116293639681923524472662562713555149392738552693620139395015791753185712172094517207718856311012812223981139910408253114673150213852530332274370500572749437699293128181313593994509105138815439426952125338672090985449517665943461633577914954778297496412452636718667567174532756517525683965428574199885153811571911462545760134319496733805926178401666823536946458355292948093491237493044931675417773138383854115738292729170647960934903880407597099524415069802079116527757193620011565037670107293370333866355397948434656454445448430406484160170782676286683655402859935585638420973649957151946260513803712613314793710282630099167082054855702334956993525993396663786142678459792542529793717288245054864695722951271112824533667286182628460778483215483296860063675163002323516343270607278701877275999303688735799959243561913274573695647246096250743152320624604538586417089561922696766774533711512105657825123829993497528211925254018381812417059189006309068126822376610415380204337039614648915623247138473068342709308477317417560274022094094770544803374909472569753402436746716195790491183709816820217288870862538795115699952158216070451698187236241663616474773522350208001154936400547801455604195448818406495318102069094189630502111585196008314504864765975984985371609306654867533046687509010042791834572118465078601220894933387271964033228154868075842878014239320641266906221531301740651548152509979492884105194923410468982385137012475127043587166700168261480247891610294603698986003858203953134536148449701732232940687324416462117944201977335659400559912060223455914718795941203765337206920942793275714837397969066550801317584546899088561682165778195751770998110069430453337720342923135130529227443942842711646068255767574922433985436994092905304984637644591208987376528231596826554510225186195670190384881071792067802709281329094389293988667409228491193642358429627990645886737630222050385535935331899442740777733741481179622049483501896340505561482694130960224649612347720653586959115248793456521363346584109694222905117158501928513209592606593021621345598279724582114552543742924088400043674163694392614646759377835274606401225972367225619210871709295669372815271053832831799676847015747976653949243311988353878666769084482171894241856075792393385933635219079862993843644693456199279847283468911613470915456487168502202073437192343901786874154109582997046033142006297104629571312393943777073690034546329183376201326610344824795141774353243280990794877754957186815963656021877497048088805464423075543054290054645771916675260743733387916083103472346366236223828742370416005553624542621722296699661096054622824180779622857168577946788600281088722872795600935396164009361806031385306352850082175144911372720996786048596437431275290137427176746995482457992783778427292157531850783139223423437905753503767889716578532615614501843577933418090729533594086062401977527146488641732480508356282681855330705747427693401536492606714873343949773712399890755768817285089342743396964277113875849436493943371415863024362112600863908402120931835466468240515365869595370532268393161097917848710750965305283917322698818067285903797462424435312707969684659872832920069723858462047958705073799699630624371393326566906224261638040290544122300316364595107695017103147964554649222446335170357673111622698272829164276733946898899763569265348725606141645932022739898364570672888299954970785947928573615667092221575147282785873239769175837707211954917549358763526994703858429304764930228694848520107855994275292501084482029031095798380711277651255166356364291179718845458824999906812212675723804804232282345212032294462622474271276534224484505304927523354329718967238315914007165952055799230556780820309395429538492728347090308447311433956725179072801438279267845544079267950815047087170464130382048622314044981066548261625269561016966990341022321903519621832384256063469497419359640485614735306957767866948525123879732709988000322245007047500225835339949518085270329568314167193866756926733431240920704033812419415342705092662766689832204368265654626392401503061255817469225657278443071282752343083498316349125441725693756840766492214425082442239036352804553777030341470866313434832942497594775537568850797507512781629992903602924637823993878623779363177125068075474539092835571162296492498905444781159871145466331389648826965375050033898201440617056886334628177743220798634005757505176404093437938508713638288565854629445390184706918771773068839482599778327641433219867711187604734454884433745891803891487631038618278665150095408971956341625344398044217586899404523639573369580875227204918939880201441176685335096669825468470901949784885345264108929557773193202187276677694048893427071645547538876058192296593827686114271469979503384550253672271253954319107795215857615341538296133372595335077532967058111463726263828125986803685017493677458972131937172492064069759165313380077389492187314771804534103395207575675923789357203765858902672586273515398185998135708997177781752143246812802721370899032819165556348613801298832229739341227626154870479143930080442612610699834670804059295354419830038881400967447214815662098344938465367960184672681218678386078104986595881551587407461125895678329663297380465342730534789889348594344282980680060064638538407305548093542121737773947837023915863046218918594336018733587894057214051247111983110743422542132909279311211933532189064326095979109005988544200275063197429135001897895566225657689316797148442423957656616784635740152997667597690909158438600115810188049478207880707200410689920580238522245439112890470868232163132363249105134611917866164957207635241762487731786626325138162064571397192723232105042817872510999217870554226384292196454555253550045328569401051849341944422496806455615742020778221497534222492662960338623715031679782247786005182834009638735237958752423647629221582560386748484717004975694564498667470811574646362029037337592398900082758986644277684169589355330506597041813938345040235938596295160337326790136066653844883927252089271909068655813415105869399444587631245768322022959387604413125998044419926344796571795546607712225658401061238888450259175617467207288798921342134684609304160422594347599567986832969486000329442958549721182066756331670593487556591433554499006287223160116209733744305521245081245263726517163064663868461156492302438311781828091973308262958939932682059603342875652143210544422212919682074453753423430593830018436855650279263712834785733444631746665491791219371575441427427386327580314559731151868113826079460701084062609557471948020324466525706621922890850772677401940337415280179704375625866730939965459639212791749022778350500670587726153610371029700793492274651371423725900247643692837823607303678494486565626552379648701561971160925155408106017893586930370936760710708863921668097185704033022695020796306752187035639616733132693763544310320044305471163592733348936746396138848379036980094810126090399367578653660655547697284970979987547119009350536494484483281509353760692717814239105644451087513405741220403568458611726014551013987569135821936586380314209868021461638497144845432946829735424271115129516455292884716020762653134979007000612350748591208365032124920246745967788654424644381765480873482084149993810407200881750168792775354265940449057216703070373443003213512457953818075831188616443214200840928893278410588306376752414181806219890945940311241879811059072070908129465008756931173783328904463929455997088798573262164809610227765458830909039183297208327447529079420992992708948669011044288605969294812710640929465869554949777667573238195180182747441528780859900492256454452623148722703503901824451749216708696248147527311446008685209836319641252873014943997938990221786860289039825816665115568611081706934992446067841743760130455638296302654303239432524743348189721304712470076683816646109930686290504009275902046433856008556391582048809468750091996803137510204415908988108212968161071213674299358868037906765872051906873062806312060281130948842049860859806909163685035664457858374962685010689314203407919917511417660503223317574681611028998639630066864304473441334860319641007010072145103929844520479531475336697584624128651668240053718439604213562934322442777327295299322473428850589365604900739094316719467317938431884311703615515730494430038506554690145797966874240684957846107264120697736639297313643967706094920237955589070351900564544111349399994819104828534143629219514001185065357696224987825639127230836713648041725018859008152555757419533185738077485492817490708173727342915314543399461009970131566721941901648200265792823302709154298108202963087476547531301764475140264823873927950963055913414420158576736217533865810003561774047495042752290119755983451534708781569205399659901602474372484858406337880161699133757758505939427724365177411958938491517009820471215161532067416601501316545826944264942432512425444341378061735310162032726002590656305593673165405708364574500862332454289173989424713579543310070348037265081816925767746509867584004438345690930007253170956038240260377297895347005495384712929285162882084871594842061028674158926732242767536687961324373242077624852428950639948364497836342639003069914528549091031018173610435572322858342797858643999627288142539325436354449284636061012541508476202762839847173634821816859650871378993486690356413787789049498723460191366994436618589416333548663509902230465611731717067379232731400135120032723704569958659365279001643975854269401357879245187553124775817080169455597597441360662762467099549805269877131902498213103593027630337205472831639627175797229027760110750952612551728565655102362338507903118954040821671644700176095325164134132755780596200540091785879703356342590509242193284679015888390658134964764325669421090054508012228071446998122574176370516381207488925734325383554266170680402299197957223745906340857232746147562103685447164455597313542014753377092759812018210500444627756499333528707464968726791075853822775610891328909336244617485702326522627708548442586554047780339098037680234762890170548529439904159674060369676036441985860330879546041904313441751324084288830016868466683689091992699976313872988525877739404486307909744747199995443572455501365706707043323071671955907450059075422404106046185943196678387845649969405417123959040881737461292403432375646295766495247003779275405654839755278365001587431997749771544220569110909370769419930682834525175108533116262180755942728052417795709925850473312148824650577136408000591079751911480466119437550240786656715007655631729039931213894284604803902020496722692414700341384060420308702125729163278773637419714378361032166202051408406972192740104509471238505378881414253689639399635800944912025508403772326926028539703663088730057257756972653858265065478387876836852050777737271654243230124187373006830794713058731634575849284016775440134043170552603804817385443356930884888135887797653483012320715016850177873357634205522940253493359751311657616605277485757513049368284402110773659213303263693160717697973243287533191644484779299889674108286827097489976162182589466473425130372494449615479819602506896672860375197237985754462020729859652979020840178382635413440048196158519433116472348106540920602972943277499337850782399271452081064710203562888925701725407624231736997588150692676317975823172803611297880464231985010004454234516649762260901421881855057334116000020567797056245682113092217425127837497358897605673946697276104282685908340526392493052466270583878738954844891260573869200783035786209440882895539716491119738686764588007424423043362989659878517050713979018504132353946606403235994958897339594125594239296415937730282997335771224653928336306983325506896202371961656437310607097495003872667348036138710278325710607493082041861242304723220430452634415854332726627326137234916391977671208370945145307499717525106420063030514784390554819519746772438830589716866027013806584215156024933743075742529358169313348598268382098286409645296990006442854144186113639038947147936732267606132376555727835241614255509422491655807217627553626141167327974723748579405374646265152659720537181875009545641998593963085836362569366413954689497981481427010898259571045706108721989814643464206207553079748507006537223047645635803467733731925400832153217421015565196955604394262074541728718705071513750080525225846355881629724808134591731600563525107374597241554486655837036132468055755793623398392989509776871323351188983322488660915600125164810268987588923526847859126519659699370632279457475420447278184268311105498011778373604570073428623706602204280180097989356927630824441528082516453579447641440156616612269758164046501701520543677126265325549748804604095157195236809357358357432824714766759265529430287857453793351862811203960975263447559016039461183980514936377797773106225817041356993190318601600548542306019880293045711662132156002827163609267072785057546477367884434354207411683550434817760711742387550458491602239357627976392002078243397387820014920185716616456691848685780572720588372678854635554366854465883975765840747213695573633858176388565353968391513797607912512597599345065896913921620354627605644746442969908279738678530021384200602997262941204814642586105626389178275033132714554837907033565089587729233058150665267651455403879314393385888726007775508923172082897913938423021914409042423861346509088319505988071778782964473809505795852457936988344786065010637312087714694027392976375610037888262357376649103696780960630318184300831445738122261563540025646717103839166745736413526968121708061637025155184962958077514039188391941718186730726649989259000450896718302786780950054368110160309946939072079507303877991022173701287462884924632086814188754192111000893123377196743495251143108568430518112294374648077561581677776099556325296625367841631994204831716898939455826095936923197358427068983706461535335266556445365874067794524063721357043674808141411139816764098819755820593245651675184290178606281336119248366089027615790260354852442202551839356312128234019263829705402856141816664855927573004401518676851588584793085312657632137062988573606280995870948525833415105429809890889645690429530687010628486829109617615374099262190469937749575130710309192331364219745206744185015819690369470484358630160021104174450531259260980173476706521326945784673508615708735127309857183956455192949743291160179034571037356012599338480141103081662702213367501528543398892403463690463644138018606113184114455773851407149734868571366753933197709869657197850010369852477628484353393882927838520811969483966229042426717749516100216121754884030676813728001540832629191856615210442398165699156896242632285269145182151700743735153326731408507604825767514421430056620767857712015240136615933531356263827316814421242021124896656361158803678523590342420455350457900688341934929297357973359003854011120679540742822193419212536076317075425762192965744657869510684668582483970777182739499435921061568962709210254345197391491152353411600074038803320173944240874681149821713816205409085940660134216961996366598891039362706007887160569899993991893696675198461596962924761755251864966105645022928424567586812988733068351182889098537447401617137192031063461471500224362662295834171538935967578512388489702064930412039476323721632941224103233675209469142490453453712230316044959020020385171051169364150077399416784229701253316271789363262306828825432073546598513054014197267331583374748055797414612931492036929638458666979619334161214781674745820624940737723661452373075537844864240839408770238972752258466764767767682126288016870645435193197091573637038091777562013195511350875905915837761116855556250044852388107470194187642944538920163835953820340425678912923352615990122628511521726343571661506329434460550018505202461954992986428659806842256351962222315026360515959824854432065673373368275754817289063150704054338321329545457208403305592155056817708963435661763524871009921179710465438354417543692960699113804354397848401815878527595413062590037847548429230535339186271801661810883743178826044684572265240864568719237340168311283766799924193940698176296399847500618859873704636623630983818457018257695549083870665023746378380665013580675995343669078398517297908125981840185738118305947200136027477950914779981164343154053367685798585692997299657900528200701894974959263971770922765634192625676116378037567193182245228684784691699619685015306375566983969697097908374426224793236520261425859566554260186776406940602508005438653900827522166812920645869858564868988689226140248633768968983350871887137726303232346207966645181775523183487090404780093580850983036966670309678552131652179226044582029974809234571213910155477990594272413635684252072144857072435424975972146387972591981418961847754192212161952087875025762177445723774039717086811355858080343751357257448311517789310701090927274679612020553428841966372727968486766420512734505892937736192414791913233893274524271428136637712731677368819720125899720671691923043729105322526619561627053684356354350143084338182551646561274414314745887390752419537554651877224477163575535119479971074066997595799371429036384700877914449742705567660026076824926640067817099138572517993607025483695181985907468282981311512067993426030124298588801128897956388432859812884911227303080635065874105041530479818378682058534888485284535243852179848329221574155647992993288766642160695898737717064104375839089378189731276176191641705042154420803731545971246919906044480606946113470382255472841998910987442110634549296399853365968900080101478069408257456562914164257241339018218735941417997552624050408593171450892401486353668767418221065737716278270591735842666018865712137612661802750311899313063522618128137312567862150498409250773456104565057803039160140796546852738423474342553049800718320433349212463047425261254165436818544259023617040851696562379868612954038605996562111691190528186159050931906750650000300444955427696838129114036599267698917492904646863648880021914096502495819387125466256978791452322808836344029595135921839014719558247766970584585001402927833140134480478728897400254558411551563847303395109669094765416121105777718274473438113695126499709619189211543066219284491077355433112184216183872607363305175617821634571820526009773811595346556930984355477830173432647394641529960906815667086089049533223350589609334688713002682997333174166567205701669365388899870278743708491167338579425813416325311147676596667723395595609581066851171670465641569830181356486781202666440961778600857009601803408676187815417105733884541878610050726641605469162968312295966547506184661335056806418766561479926955518599804379580482036581501899847475596142573032259141434640526066361262611696904647096198238245107187541681282449300053118206931486926714612504449689252158976261317440821116812686236391799169476074535723102518063790602064898197556061543089174433517638936365209092958739420626545855619366822432964422900585315663855824343492218119559707953571085893975204193726373791046006989160726199465557350849315987739551648429850836668800276914770072335671988738833671237403477392449015721823747812559825317839401575064983051051458476550226164815204334474294111708409555040986679245873043890153735893552993973316640297463482249668439716707695665257213877291811532300264086632947086767624314155215498605810519979273589687400657066743838996908077263512446609592616004277041404371140106077304751735697395857784725336632314750785127453906720333508752842249521489228545509774969406564050683840440471347789132616901390230966349662527979242732505826078468750345449664497264693267426993530504061109583203804938404254147193176786680807446675050485738946846556159916797099067963273752616690961891269067313697659516994597763301479668659467946943099205375206309795319207464907154730234196259191572366476103529690457033378829110479731807084966550952673202295069436587439594373699131135237320307329708050784670579166094462103044207412012235797593567149885521183009463332242589915960504223317989535034389970898626439104091179160317977591289621215386007976989271628710700225683179047303641577005669922071288624696581920314009796811376646560062943060175858728429316224934258051335633425251984482819591731434194758511931280118723448769125828148439686809978547794853868498680301616539937096150772293102316616289812049613038127479012715854798450909784782058193186732579619977284763668679706621595918631039907835850841328078316438532750641378188871933341027452062132682294464571689370076552248551142915952439078996180769512416507399340461047004763923975747548712475721498037346231594255256547495418949576495234262737026714006163796899875169826156843920292195454925630538656125335379295598563856162190991332476298660757673943832403626137676887320340318697392617974539476773077415976155565395061154632816612210537313006746785552192697844341480344269208354682717714719848811273387061680342929538733099108866730148078691041584295276377764604041145079202167804580876821577203423192425225434254298655550583594637150608941499933991236781049745636459210600247643163881493566029794389128053407860598174729970139693286023897310479845369191051384569174576515714646759714569817353301575630712753300357728541168491644395621970784118816559896400492208142805909767985106276839281326332615615298088694502415328707676629387199223716002357340711858110394522309546099545932421446792416645733665017463593422513135378547302488446284468712996445596611254961752900071672292239651775612001839634467331853308713520637288527826838391545492147733258774466559634581857725516963111505945026424552318384149302784618168759740124799144498074683160934731848217232031336400564699853604847995504064326051138182967610036905959963369911025168046165063202600418264507352527862171893655991430682691471400871732423441525194092216520152671237515176615165117889771622335701417749786125671143930157350759807876811366955710651399396537947294773537497400320183916779964031524502741654390882882895062497114948328040045246918362044284203546534609669842085304199160707831762570734789069114251152087791192363412972915368656720207090044805919635963452125173195279111115523290032538151645154322950325521508280306873310262771498087301981085315837895368088943935280848090015173812093258123137204954735904571181451754166131028461718032775919805564027612497329668706339987783900211415121614287431337187232387366927732939825066294196648828093522625793893476132661662108695338765366180788539892262854999288831416490325922394699124649175239032169865500751516362849832758068027112297120876163604117705382233787044520980481373662237609804489035061236090887069585327783426328347933869526715350266566409823715899250199415160077431697665532645258559903868155375534316559768065907004694729160365062952962707692526465850282812689212147606730595198603866007218257133858469930789455850749914986049474634198942985208049730197955904988429177388561341506991851239188045676229621594739273991765538239894524084382961502419713608540761247661331957481027009407463555287640885668918986417841590250662622712629465318094510813985738796386941279268827214652122508379906269059664321967857509567294530743478014609066198461412475590190682043787517605049676619043766344218388502238506250888443754473705946443959093634497014583629169351217626731315379152334836312798356332241945973052504307190001885008677967443845184447271982495040202716769679786627530680250436255317761858726466525109864376908069849213594566719920052005518219502472931171915004095145333819880591303626026251896816451049252854979033649344516298179396686443120162231964127107723817635149197117411991936856379699164216168443373373032323471957248636088637934833815743287812531911352162028258280223771164499178783260624321329715407713017547300931251177206770960518603197868239020144360474563448678546363352736129505393178219760836207403462013897863507312495186244467868672587304430841125145058995673941530184086502218426060145440028822657692751832218585640164040447027893944754989889105536244984260914823676938313849765404115791341255412568130771662402057723711310477830771168517630202735358874327895296202088234392217653379623121522413093182442050689268244277254818030464792728475260258957221825739448238749194648524469773446666408197059063363950616349554334180109148559927891046523891122131660120593737833071271250558274949377960740343217221776599870332992678288878933564883290261492373318855393858062699519616394269194833902059811268039830030872347061881794496235525052699812729599600534140965795635252674530336514181084523817600762430795247850512010968548938643251780520240520930660024349022401855201413538986356991104650129675219928724543758078062549037964921254053268674455845719747964850327010506667883561172082221994754672260202125176012389038965303862090120819386680345908748387615799969098247632506113432354192383783417472405229564336644491129491599093896834597405988112045306241431194576582901501883994376792883361896714523194414830364869608795801471691116506636130133303483980434662041721928673025943147603931873947584299837915141296941217272911330513030348797698385984602148394596800292979785914407741905936686524074876728168173023707347521596911388700736570734490539030806021725841434895832554939028139980821612656976146710103728182145202045590362523258193345096174447799183233651634112939573107618373498518942890350869293332884027357759066874345295830340718124871697293014681581435456425309620174217252977357617249638097117042598349186747451299472336172798667491005832180647809083387756170583955709370608200205277530660057255864846968496950638806585488687094137065682694746042905410167565853087725757439816380420951276447910033029833633907527792479216754059873951812982559913366706125242796156213137615026784711230920946864093608236516178090627650389587343580250832927089581223246408487060911850659700348907361782613032439110785388381039033582995440309379342393922136639753036565447654554232472688124455679361189596254291056275040995618372571299451575588744806052884558800694918808921127169639016834850510787809735062880389829197265728617077512207287874775493550165789491138529439223201347668551535605780416832953269699904885777526768060546337502829793181233749729473601036324105145110749877134420144109724224824754854004588171315132259884061202562270843645533151633805018700017448669704119593902190273752002229314079068295814289643859099443920168718990252842268916210958842472800584306365364543649704243124037515810312244013980981685548793675907162826214133129606531021090055694898302206674942298481321086628392360879509501321043367519969661563998350275533208173407380880487682724318482708879173143740303630109049994508515693747768509684887089307304533951442682293727266342361647362505939845187620696964202628269499769704745544745082459202567439024825855596968343085727731269966882108127355515476793038234220235004816867496577315478225936718332748354325966538034575021727577598646662532507417338806371300909635792791860618741091094084140948851081722270486380687952348303169526370282025448139125926863962940059927694635577342243267808754222968507207541001664626799366528104673809148412081790308336432120848118226092286135057945494159071264409278634052348724040916916507737223868683286559079481203324754771767309992452977711820671835551407127597465431226022626229256135898444201801389691348945165359756559310042623716246771920299796764949118698647909821500182638646587284308084149301095734457723170639981939334485046203061333109814206236963622799284039595497265985140020790878608302664663843208503209939912697272168400319382648360140753315600346427291437987649837963179072051056707094905778787066408474981591340512252649191756889745678728974083141216713935498103275075658770757876724595531008224433573189527413575399222900355788788359981525863330458294476610089396498117514621459105370895133554764132604863251750798989052625202085311924838104493327876807070983027426692234924030479052923575443883624792866807363930975561120984225922778054258805032430830580012862046183542146719274119928857735914650767481100265058628187939246956226902868216928582814354046277989831249192168924075569538638887214551233465259231759319884723741817428808317285734927914997657881866910897483193012928525152970207123799053251332368258232499509553888725295496147459596010537996565681056792148445605616726184486707957634318714949707634812210329926706239953804756157372536230941642303699472735141752657090975809217092614218703061609386444708560637681600246894465477761791046028979648486378276319194786558747324423085209410255010089146053603940031755378057134771516846971747529344833226558164798767155259853527365337353600656278721282699124544324382990172160438073079906031251435432482230891847860919987942885299038273610614436345340290847848666442866008268850796858233834312284061435110629682462029476388401496447727612789169253532052277820976160724786373437885635715065724851838054936293004876502259193022156231528424004258868239035161884948098644210623846678442146931661037713886941073305864084421450387290058711229066970269351707954785631353740112356669490186390186095418290030295890216819841140894160089837230834223300431301209193090649283412323913595985606249572655755007378911183402183466418245184180274038106403208700173259661857984321472731816781226028097205388001569128035599311136515353231972042735898710728558712041977631605612050026413127806285496930086302251577658373880171071073688758376244653788132837246505848979583586826989569848480268100530155595910723837206588508830408999932712593542760717086998536306825344532542745222521522747399280647748028569663464945104717627522940276166032763983587251360068737068178435005976973470410603038139281620656179165320414760825818239710123670481626578749879873518616347422857660149837950061894250342304939163175659577945807402053367531537733973708487904906499875317555675588171648146102295571175264585727608045523289117940097393573392958494886256670801960588644523899528097673493443211862468269301698604367767063842809254369944630660531695566376072429865169487570850997399692488603781787410779876505638174302567576129326847405742351498351399474673552965823781417554983479545636324199951014545206500179147241251992876114473307529557494599282907391631154001651367238003027267005450720489479418695033229012918837963637238947901749965146961940655122492143590438896863469740941101167080437137633842312767752513269031446266996798131072054818298903200112013914047342032875135904289240548625935670812839349864008160497742695669376684302512964268137965595519749291666432255950479229413812628599267687522665277863327312991266517226775738658316940113526478768385645060390138633207156199825384906539415022016012776270217281758809989506354261528772471918526088009587672370141368692485681566568065862033205158270937206624043727101283101101223369346717670074103300504277394209490358224509690875393258019119139994951815311536321676362820845435340809712878835056662552112794183724905797217331848952258201084672741342383277682466052645550442146218230986861860469664369440375095576526563568266852434174305369904021081921596070591188301013028284246863879041654973015434413456248411721717944713211279480139957672639314064665497262252531333139302964519000955319666241218835066704837516818983436772907781044495127156530812492255416463739419522689884763651054466686840077160650188196181995680907962048219022744508534926068558526249276979832969468339075203623462652833591111685665185073166871559278193920305441444756002754423862043661807678729858744409723425626935500051348755981521502999490554396846069463085202980307985693642045347315742182838443160028818290960790841609007765030065730411937343196356271709021136025050775301276061512914278628119442036586941266385879043568447893967466505137526236179398980035456718120195302541990793271443830063565442433515566762818012156119512044871720537383056522492710558852911080746948592232382422557150217547360918538763895372043318965175862172448595409375307403707732707571773469267536355581991967134808652486864523218294759581079581533107302140452950274933635667059948569247834659396071249658641375780428583764201753423952368668956833639886644388939302047597318217444877976206091084160135931224195979952584431616535790800863279369400256264319577003073592876361298116955272102635440841447289772489411780442627131970287209473040334401628859504251273790066771867201039541205592105969521216432623241544870661703595559618527713364984734827513923930248163377657464525207476829103819309774983871613425122083132565810556123155871688096843148969945988611355437569639813842676579675071664697874025275220255913346187162185489148930247857152810251078116722464612254538019925025754217972731024305413913191367305378220306823027250754167406682396808782616170694630559865863521846984507390052670508275740169745908147551126608206669885560919977335781836141709820669419845251634213491422558983444929901134707072128041073382230142181582510167930918111621284462072519014182532584469783437268439039754957418989265812093180769227951631781201255516095578883366531636213417226184928372707030751318813439232178473705132846976230121550993242891535886245579859908987347571865130358533752115677030010279790919015232404528594040697826948044457601734512726890120538031160776560697186816183030125432827646340338373427117298086905950376483092811843523376808039269956445472434362769916379661486752257626039275890386590056457199238285471074369677872339186389222183565892467103717690835823295298244881485126145480107062814516839800745239616599042954798486332931713242451887559606117559394417247718404912844874167323075550566181481417185316407275900216012465492483447573791775694645870238709951245057489597743705148686858772959752595321041579903845464832618476863013766881014335261937385899670665907642403018161227511683723350610711335510343330731107334592613369950834346996323318360221108228890248961374866108581903819790912827846317457960099156517011507862619997368066891522836203121544869940917761408916687855063858658808958580765817947785052087054154526603276149379956079584495174716934507222882412698606408123997878457113157832184106598684513913834380394986187644713985496710406736485408993474372587385201719161383883008017370595978051920798034774132983768909449432824656102718762853569273445724846093299479727159903190888808190753033916159859750245713776621289213107826123546051348017094680673259084617813653034588935573056228994701502191983466628971018981913470274293327249640127729101610849267680248234830942545632417491446815695303497688276335434913728294676823107313268216344883714221835731257175536882757313771377904511453882139897881880092610304593836998828808421652074997861735342990687252465277638244162017858799860370048091452800579323747238212791099037633422918026430555534680919817513239797015652493387894633172769259168905420688419448903063163488145085980001644979856592541552380524268814431959472977299492364494829443411792192117498978045983745540787851850501157346328622650340922555835348776853168043207512360910835706981010494808372927698649315876469301657798097314398500103333675367711797669117933005557172514615757539612397997681631796810539582951146595556842439466752793922440312201418643120360617646328492472656026068778662343975867841527949432434552441738852725154777992335318545138937737371809988066138338574039976313472578001392887124645426226280121588519369030666079647761610933391988324867692557916043006675809429106615335973854459609256943548470751027949779121605631920129040332181238912888424452817269757095591531341509111356728791960187029622413997242869161712900618758149700220988178968381208548277367953623050800077743356306490074252015390106137907830472335276347549984988289796812779279992281070948025323542232384380655393556471244403071808496743803439023668691583771541363058262398663725782400620615703843397972537710522433621843254837244369970395321002901879158104518762314232507082684615523894044871561897811230686811354453863140149500161063006117580728688498130525949839032944930163258715377361018058977616138084906161298621393220480517058170438609373695687731954850025439367905568780998815057576252057225125514084865089223770323603522684906902763929104495869887053771499881267673505512769894329103859460764606044277870658526197185029132216130499039966770350480629971741830616657287288764678465449971180444043662314339194856509968918774917563900858608390445854559747143547887034209564202061034262143744091554002536176822389509444136979578403279306374317838816328847212214660415752873377144020222322319653940001395742121070854373787307312557394181227849392525146657816901445140170117841530190839545673196167109235493614747325856115935721544965550835360937291253223319515328713649479066569530645758841250984331854114471061979314844644075841676897981881099225328424569674667821079535247570328981925656956784497345012855527757688054154873578002073957675331384394778541589311613572529718666541230459524000268434263549619015880835317343377446017648258028622045646989292161231193945847965398970407297588932172454729629551039941892118774649586052348885802035417764596117174980766401327667436555415522591895329805695873510462969952662113900638642944047111680300406546600717325902166895706276933323261842385663462831139151379415151170955370972243949234029017391018892421398842976186753068985274194610720943517239826462837312854896540887357844155122256754350612839068888333418189692227543381584640643329816804704733745614870148520832191175154649215196503113649261180679998310083805774961265495143823340348617788510290298383281838449920660053598162123656608336488977686081576965396136505712133821834769299793807940050267103227615018843438189749400787235197233814628228515189487784385856462735967550576269433215173692322919441666446292746377821712096264275999115907190070478916717885499156480754783005509459366316833878661063931983049341447879599870764373863735469011099616374675099118707827244268419822016375746650942282573894236339387567733704844309618520236915225562653977941799240057101247667417269513650519100985835939233194822348753675557275503996035181041798949717651614772500911741118502974962556075732216857779468610751629382677457003063799017839422936306170375485470288455338896535831535680860582919704633017451712866487686715478392623668370398285657116385029821782368966913764277448984322375137383289826374974092376072016043742165321002197174824810862083366140866999189233284327641386608778902565119247516738534238552070202640095763649764896304513752493419650386102304039173986817222159224501860649660937765792296092973708012720565144950143080366207593472868891617646787980945403763660499878541098382040229489958994773907548554164359959355763961776807567804642235754530320426435660780350033482470542268484092310261859324380436288375372705951604944436378923118307482516841515206703291524685498796139300618327228117710347928080331025476079975556212258488478987902361694538281864113433037453518140568938852420763350836132607655180227785553831415509983352652145706890358880223362482708953426640334501724766190719542891088732874960330905251586417525635385689024325157361137575850341922328530807397453942319921612885496246379151812679529159297894265470703739362781750926097445612279423053633440325810703434356817496584907586592850922548910897375143895961049397763000869694895666012693185585509913766728353678557659831160264569754721555489767522512712977288632615123258770421324305408602467237785221892197623068254131675648574282697018226009119762425143358625755778139449329906175245945045370148062526105650372940056701984282657471016053279822510346749464542042239880014605853304059398205603079595101335449113641670862953693624864256534794077760667904749830009045335974136966732016769376795024389551026537340050645827979047654807561429944055053794641347832595508926218049347252255049011903665491862892735091741988721651825761001857144214810618824042407350562436409129062906645171687228754727472761200863079027889373991017933291340055273191760496464715477796089143163244857153119577968317207253769337788087958446533096125713356029431487997897493894969511553865985452115119372364502313213766897090568425797492847523558097996627537251127031330888314972727677915737892652194626406323835221622322536147925074271008400917452932895217227400458127530048882614092525564671387574529579494782712994076933181423217019835073114199132534451827926836529424137012074713283515191876821550885809894610922725547515440836347001306974203056953982445345365532272595772341905589473899558367467188915632719840178443474945897849221192736597501184282692098576710153686419902862480211250303534148833733429573409837823637486349467961101028415171603820371049711168883168260020268629405879465697170796739329375788321207201036295378432744453977702100432285522324838136326579400668659356577881614103223242850129105569596046411518229942458703294916164701299663606256797669357687046547178242996103381185042466315180787667451454311616134962766273622397021169021383854948575016434576296447114857509342285312460280229997981481442636759151925883951144066311030461610902585341825618229207194154119375138149212529912631918652584841041215653051079772622156943410992095928996816043272051879359876569676133478993361143806181857333733777382641542406425069216566613937909693604345273183150949294540054790589850555662300328520893789432576179310200081273774071123051457478165675972599577333421966948886066506588571198294729204464692950649160337699904121216220982772313624924859674841506978098890805175643701295335708738887760885975960147041626049338158892098773586213501418988206140836324256807998586343731019344678994678946477950651314699800997995955465690460355363023911148863627402963576640042254240113372413502765219663443981168204399946413779895810479926482521385797271780284003650112309643852143597368914417329864146505157667971905041335075392933435773779999024724765010479563687924531227519210331993285706071546828430955489265670617839962810742682600063758418809045126365676969571346631049985345762744869669415296775243286605614462577989956322997772364565847126768842486019383480469870999024010191051605147520521865803472763731838102941067027046119085949339328454112095032224956866057997402480644591965129008753753258752507273317817862108187343059783823727632876336231138059408930167434076256732036429126238890859237971838090541806037523649839598363277329725707555829731790702810175293932725526265687894320805877466410903150041669828207148066834813638238041535674341606441127927391449382606112491737207791537510045506628578710436302661464868307832150408142097904891966955617700024459327444131255280075750054213568732126199509319023977392608580377611954909882000221932074496559237312452275926431911195095217574692194262082929659305669899565796189665386282053489691788253118641302159128898678312534640444453530528679390033925267638215298874157088041325172985655496220360511996110461052637004050959385595272714684871217139135896031608819581152169967773121940225323471633659405830786227846339748209789851362829174142916300314783733956760108273245134072866721887784614462122253142154978951676766838482917985773009832771606377484577390091681910041413786810566202040648913454294325100707006675567671798133364121462370595407110007146202809694063838011052692590415961472412964990474205662148953799764004900087797735247108946211510656823603795324890125206454395523950037408955170363732190750301404508055808420721867964713944591453569198909450311600712486321718603967300981737762808307560044013729574933096795205006218971113814417044550143527249758341843814932722161073151408936129803314150029179249670148180767772789644573060345776884121593438110112408258193776646988929955339525243169379938150980634465966053866495477447688703679530314486241756504000764250313108497615006504711710948266126160301553646797220139477322283774162790350202177626593222186043755767647597719078194244824124045153026247865481580896878397833423925217055461032200582213462561647457099202448992630098121949926450944125813589063861187744421589896370723820311561195910409708109203004270053836193652146856670645941280522290170416816409459165488746793540806047737719754004568948507717640559448273825688882318195371223245965730029796973090499241671727366172697980924252174218721093817713163878282815638485512880364593632832860875694861183954308585168514232376202520021888725745479290942203652629383782249879285328675151851570316618330570889392520362525200216022542094209736428892678007358147798264888839667619553037407916595779268151466555986966145383234246233460639254675889358716270760105616997969049302897462938062317216890293800533547117347820719390341834451363601192787539644338079572235547537930429418434924373307917238279406212986183746260546472119452933876044543165927797522129594144536683834134361372651029556119336992767552655361391221407192275098929635762756590200182382554756350276402061977361849578693157751204842789906110805049416218842762209050129708592488192807766274128237187265967971359910746505585854282186762122129635318020901032618824529880367757595289772144251517954254107329025058199500210946840859595780606510104694855024190896164973785095353723410768145816119455581399541190063611132729026622912491654964556045234551558176824061403072204447398900738039374316488410285726687719610879273672010377571869725625464460808449540235709966584329620847567839807461449896798426062014722669208975857135140687568641780256321817566620785730694285723839992543449113761247090471751921003246917968586463215722767555515991681068035985139430197043758323422522075936001514939412226294020050705304782846665722517748900974054935563495655091141829093533219377888141553881168846174559490364661911044856190610012170914330164618149034085777211120056159513092867946372073134614930877414114192158192318757502133844453235182844137981231636088958039444231773942907354694618784899984103595801924342046622658688366456365052399925227543194481127864707133728716917539975846603021842567087833713828604251219366799166347938737311028351550854758108353085823570185066641534526179214734432354131539549787030922706916832645526769511367693030323621309181466208048021555703885649874137279556161220746526243842222758768805776627485833217438354277920843171983804360510046572337723284354802359943269840358618349512110271914991495422584047189904759923496221393876163238373007898336332585034843494520912725771144662181914939356119585093951826773048961117843042076634458664095599490133699618574897238565070033599060799459935131811731388944385498696441380674468046960739070366257781254753269436763868757060383375741984522987767918747428865894281723151795805827710663175236394201901960305384498503504696583400220439309873277813336308805606097268529358461190151146265427937495468590798617235239295062328469327673817310755806102073557802090611389503910938207035951345824295456931362995779446665972846404291049652023103544187375869148779902857486039064439315834945010780558189682583676602157279600775225979126264038453411758974851901168282275495235172479978372277893186520046872362400254290544554317943748123068796134223140969961173141092847549029246673572050935373256581090564793203441073953898364368385725777657614493335925949910483635276690945176403451927617964236804092831742426134320045225453602370021977392321937265734691078351726691119368864603662053713767515917694885396819342199625729780358739320539567905939302951183260523024195858351805030247814235623257806913027622633944840356399372073744669543769943453766655416768928461669707683985046665377404840019362940128601023168157976305964433826526624699511375518499112272220389958771864268198080802290451942432795311571239777554470313384917811314039906587465701552814417350883078184835470944439827056931693187133032237448848061174416211295100526771833310247056147845973306376418227513591500241695791278379338241804992600803762728177880274873130181076436412509982327551391609001998377069653330789933133655352388228971169167080823530473237602857472988206655362419731431089109800148008798472431278365194562259086837175000382748537913019438531244245872672546855970620539674244406506719908317018168756623218899833689170814675081153647898982586503337313190743464501756945041978678186835027460121080150982974195808380064007455828206692727587539185821318754566927822302645402574375097696801200456293121188535827827193476145359919454595571475101720209527209801465969612561180470588496663971325611269827148858313802217686732630414745437538505334309192432591455472966666322549709767908833633305609728239528278944238989875999209584653106168481642957376528801055720747595342833451356328876373201690713530770504487800780198363964924876842989153074388904570601857088940430050275666548473621360308876932841205232343894773502192645011063036533917643190799411819966144217721406851648699791636602995195437501641996949212455955667144293347814877165836167106718353644933119716892491696094217164063901125705213390764827939634361752315949196446885134433957984922828345932119397222562303379800686103310383282403779594106504526303460553192256983905686294308457140257141148619852080280983139899475394638728806505456515367022860004747448699405113367966305167903097265345807981049003636583136123902024082385351537016771400997277849150752037925527110441105519796284805626062892246982110153470949763286097198673305679367632459208546021432543715595959364586847882288141806376992737251923204679316590123467448679268970258883612280731910884644476330654268855595003579116132868446162143487377482141836718400509925147753882992465417476672270721958551567379507458878795115423784927280918113931778477744112680947247710326217776594909775186177782502289675356217848945024948722147248063408231605970593406408733395792990163079749884247223759935335658672579219839093403972637510902788406368495921850718419766621005127329143712456153246165284896955535730200904736934312106369389289492365777885394816687031831484708711695807768163467444714716602744785161847512995979772902282904060213098535445533771997099594700794190621035420301039662736496322961485806952916374241962411476284775883253102567102333289920678143311636919156238104326701873330424126659702095370289622179094619717275976447751008207907785638392591812252214093239282100006881480282862730126319144959924370986599912565554767438834827207697664679522283428212774017617805203884354001492840901827081350478947349142713027973456318329471748021876889484494141648842954983422302158024098831254661503449861620573916562835534299443850057640610648189023494652229898441862528496067942333706782810988984252789287243984368985346554371828409226360980023196774420560193638788844988043786001384764585887322042288793363439683682156368058521892298582667418763543500861558833880930725120052904756777185221728920446134374263158103293990874504552738407592938995296590063912360057011939265305539198843833572025943516940371577974421672556295581424770314479753033550594597050831244955379282774583170833110005898873166418718648884572483896045091982816532768880217489501443040024307259493063241155958391798936787723378510050965444621440949960382258217744275131322471325794129772117686120894960451012244264161000732097896405356230564630174261334886252336347864805897519354026370188225025700293718937005274183856566003836004399942676950117398615450915128021329222791605215129738814259202006275163664678865021268941207791175531095564177162073101121787409605456954497526150748221656889103506872804313204323888712499651501466196599869418671498206753193480925368712687622050435944467239288200781332262726128676465645684649105870255907504844996669673061095441004867912365472081405333524928910269219800823713156419887934179925536691257313956121093142651537529884541123547607610144585517186825117849807751451332278496719256423717008327673222648682623667654976180864825347551088790674460695933328028987468918240663721477978885268157819697964137627876693995461174836949831759262819821282517163929076090477435415874893702930267773602199843510264455027772827475448601774841869926838025099145076024578390879429622454332894663192340586739171578360607609379610593917490294305223237876692157308460175317636301139465773754596565189589778520581652290811830841684203755078793299620640764571578335948494063095848120870776277445917550882507206629389631335060462219608640235534169933366659830937674168273736224256919833318386759683380799774275178601648670634381739426825366496681928342713613529751851368324814265974117554898833064786956751032784012114626270805055855651666570287743818246452903298436445521625506072099161556364594690178853181244070330758750129028819329495711279372642010324334604971447345301092857386941850735790272737132091306568720447580802476800936728591575724493390697853865729426287255880265058599349125862420186884213860031564353810630895930939793633684782144025759800256766175164988715257985389016270922937819829864222212170487785753000294937194931719767561850020027713332344538216322483398589985226666010143838517489081306320605287899605842843885552269925708384637682341324743239917939404851548905183735971768783268303505790093080903412786417275635983008830755411042064300913257114158824814682779596187598393987023884132335586871830107257621425120014487675090389598623840802085789900989662065678040294671954346386784512537790767728107842615660450800069473144937942240236591029835841469735185661238895056324505378288478012549518644360397537301677025424936819824669521125906258651793086134530973444630277847915481062384139005335061630431649080853595867393468655300896457315957375811679419888316781268147263677769370942160963702698822702166296647115550057693549275055246794106841218219625666107593239071688907747617833442015840906360257741348647904458996988767485846351125740612167765493260669444507124255132176258073790410286366401288104971392431758620636266675784164954467867953643642774313142698244937859812981658983047048302875370186070502156053254600255663954391623096836401911265964067232832183751901620398530038074745239152830815873068091317403749735256577876181406821546783931671398371084186704842885300307466982064754459215273663219284121618540607724505310461579680837104476582449399400051952873630429075217207301860299308258287933798524661567011969667431463710644452934591860908330204968768843806079742103475607254108542076894972916040690491843833013465727248376043290829839177005822904044710846660569930880812838344697023612134712795227603869100793929625006864408000958380154889583966885131126832054785802971540336092830294864322619609245101550372162381220760206941966336823170163148921782534215958805692719745059335549229624394433545391292103549111469284236745531219848576272622245343657851046428391208262307040034403386380007915207643124167577710393862330855365125799544852159090716401297190375788724416193092819331869778917611715342689112486253391143649694767686839674690238463489237500695813993938501895484412140174307776809422027069707360098421305740663830697800765489687994679747725853833734199733943499991328527569511025891381390758661132574474248746381866313247016198199781320362817214574854628528409334029087114025444073150978115948303248900735830263364089406688232944435874497413925512459659195735487758344694592070904964725569908519165853801478619769854940367975229121586452339998411324627766473034528285852637045251155732013305392171225056785714637599272184152442639153760967472467433533834183814858384153968077518689895177357109157038465637779701965491661576940871310854050350989467397563380400035169961978326849575666731739706750683739576391827057024325810343628018541247559435584853386267552189476477127364606178635663902436951437349399968858212126168705216554857202904168128033946862120093410904886929545138762385922036762467976975669608311852908796519403194317783900094129454170499565965449837660567722548711504093866812119696853390504602075892061436706270361339387793011799889987828024074880864733950373425471062819668839505059589691008336788184652460451305865344763520687960023727230235835975984952735269472596965825855454873873497433167204004707217187780321578304904226528538288686886971447047993118703598549424637372577683695484793423155926322150170413638357183096303098963304058945370553512165204705446577811539171917978349551507505882370079900886065976716868886737943123100378918982153472538283975780656427144188485665033571109778721351362636807386278137162058425557249779768545504727488240859996550487478271249945586934830423338998245382691416799866453637830040879828668649058637036213863362163996297281702567454603234633811857347461997951651945224648890097407380577640608434849843811122407985837063922565532487404409787839759109244212541490536811576841310073707951002630448221263980493375592746261715521551888816887466078256957630165162706534286739815282590842619511324160206520870317587875539295218801851012561299975749011602983926927864154157318189154051671108177800489360424849456060773864222700732062968145504656784693357784019316030740828359718027206813823746033043337607439128758278864469866056260178010481181974893390244934644842740839791594655492790702250092477738087002340033541327486756137550749683940643197969519864186284053301165961121248712093953866680221108373010483703506085107419983112570395429003514152008584877706400738841645512836446464207691032526162515855766293481801567754791390138025633037582080376450476821925014778796771683457539526718945977681486711763850534850109771266520677664327144322500339007919864753263800456645609480204366240981471082431876000096270928852822225481214546537261717761814585878173695924515725867036573750858758117636173323998090413131432616953848963685350043819794778129442453801301892181096789726029553450059023301470103408750567156666882478145843406591627860689949665577358796140157597614248561944086196168278318407174279085946551744717763289767785445298216738184909073260884939224451496837342211398659677427373405667751865987761688191269200428971796320674235441459254530134625203185427044575511618972454986583827234680576393633196668218067317338022346025454544741889913839851542735173233896685639156094104344598925907114549998055185168219213669512041338160601643561395987271563105512877336161593831311351236183520956093237752928837761922937955653539409865162046753892292537535492541197412022546673297177426085465552978407213772607994921556117116214680609332016268230155052518822577133330288387387732126859246957318019934628356124782616482029603299121432778947207667358978228250454901390302191738888027476543099820381747673602135444736294805348490354853839639298371171701315703834033585267166706953993426389611344360307484119550179435200290211427697009271225822235251179136777273154638666052529004848685588250294350775399117646472694762579924861078886995348244368760284674754070385637176078738434772635862654547446003537419146847599273094419140819473613971736036429452172924695260116348387679077298440081823448557207025536748685136679690011483884706407512231146020359285622549274224862173473722338691118342434314452442252337523815584928930482034288870497082456009073645593929642445147124940367876525718410113321015809450660954800506175380713872684316982580186849624360062788264930874166730264267663553308598191277676890808315069357067264371407454276831640309602081653685858943731655988202958709066605648343273746136010191814340266442778062314365628250564141497983797664675378242310781342187373546412922566950016315756887894287104259740503562419967249660452144253988580975820754530183963629625895008400989130319972700793167841995995169710793340164750332692874419275328794568685715331291852770468322503062318868263880947356797213215456290363620511525716061720487442602749594268428349914571532341827391844112295438960045533688203828269781889956426508487953160277664938138670231355496127518161051141757032153962340195996567824085542375283296906335248863616347065951061956106676610463537809167543639289260894259882509461023435618749933281917069101743224383969631924286413316607569220210284761109193639474774695627630781900315548958078221372742652977466355984816661178784771500177306835736050163583417419336183971962795383838535435283895605131122386773911699027929448461632814142171501845694664538305512006814749873789422847553148763763732452130133335355516137142118499990912781760263134048621449141091666851062827397862103197990140709734974674418869791033455032069501289796026506847256401522727075279326168509398848146503028728215737206061062978878074563119900256307856292206199581246390676356214670289132459403647413580707268157999364514028113674880113222014864367970061189266555627699259189312229845804076483573993863160446126483228379360457718843149423872340677234174268945253656146860000175049467080967848401687770050134053911928153371790839485629764832318560032884337666989129314713636759291816931725714012303865034876112637825797981802447535020417288570407666610444922281037872658886860484097688130954841077399575194679243189373548578372305448224206183663165359768678658338178351462050170433283130487552289948100108246547171090802433158776974409823974914829599734479809653031981229165894968021252527406238001935687430560412861709391704024818315906132018116956526647167870437916396628886579435460676557793707041764928091605439201202599261617115842418537318462814538108307793960561242262326234297407558440375296762869515886296553496948424694960354448855708560642575283610733582200436638362379476056423982639683467339405780165236690958587321121345842978905480740930556839840754524131335745407575036380969769142557953174640045237914794588520114504283910009964582655432496394930066508481732630664094443304108470676600700591013578832042243026092528645153857963251505551079917158313826527562801196429174273122255284990688392694468323462914027898059850967265751008485776341627832049460453061312572557855056336155680067578791635285613092055095176762591721763031778827469530971777821670857656879458603499417577205945551316405920503505246301911452558614204780062147654266558398334947158507538319094526544289702137081456985208966083091313809541312682618899718276248476417560581336789561014114846918116918890091661005459878444362479640708679354808482680534178456890986470974436336277740148046975969742522386900572723681487368385906363748619392865380358715663689126571839605527908370782602132160737100321695126771320292974050929617559445328779007530115050617353601294532296534284366395025280170328882163801430460515354464856113547515640438058099176484897452148258793772321763453155863188473613178982753383889464802050034688449946832063979091236382321825901474569979200303127749517964067563920276566907074794200820541453373347462723824413777002107404913001442013679309435715032210872078021380671525831671040491639289256232333455735634264313224360189891682267658320652082903563626170082992013101084875181511712190608550424852218915009886807545114369084209436869714192483739892496329729361060480683204245642262945774070787889703941068538903651276493985734718819887629247266960807322196636263493141891950635311042122360885668285405657400850216711688151557461447036188930212481872372795726004360129736953222967134220748488770572612762173368748377029018558783342621329194773441881797613069875140553214168416490366638868480864404205569962163508984986849395770003515262525486425169577197166343453655658440143956705222759432348224778538807385197905906888945869569751023141826596173343379345810055456326475680238949201449834477242191056301059024570405105433021018213328076221703634427870607199071511007600489376311222140573439047971279734806511985710394511499559860569966671091822524388423015058408297395838173655227053508579887814449294646309749620173174645808733720454845273152023069678579025113068544394839583377397760674850512664484575493012803748549256473970664868206877988411787867259565319825231144468769971633400990667489769020184293761443971731420457913320115631066027649199742735094156897937185987352883460711250078688009743575820314956191810102523160101253374231815728919662559920440397579442492422639753966173329676123098101889835660184633565942308000092620309619353866599810123067269236995040756954908992973463224244960138418353280124205611118969884921166523415199876981633228610869408612267755964742079898280313159731618716226746005901843161791238863433919173129226622466365241194377694116585565517145722925984344571551407539504480097618807371821954047177918691483300649592323887868925566729834421462511651741559967397557374331400478059436920764478427827117655223002234916221256536958676774205579791386834721529121986935335668550360614714740817406809605168534251105847751121792674275936473326534349811047307338117712037342110438197422250248300985775031715544170235679969846206914303566658776441168246716551077916431509804181398267366339362092537263885612453983510778098589706247996416100428886890646375549357483074551060427007251467365784554376926868062279625424254990363437497447238594354868048881643247773685372289524014355029879114916716187015955298991972294080102161968674790113963904989722952322020123565980058703492752901536181745275143991444755353852186568440930161508409589369677315083391277765067172747818296558861192733636732450276947204379568954043824790810863800721813691989501361922943851179699144443979837435363467731547758224295376138292993395288705634001357235027427059582580846052116949650251734345726911201392500796777788024123115155306557203774977652704893322974425556542498738387704065925574351367427743315507188114393250162737726433382616447001982868314485391315780264379818348491266554305696248966067399032609276313833372066921521716859577998762827755566813150685827455410207372878124116778413692085628043538755758375382365084447438358182378181907330716620849049816271424059144607974451703643803660355638964331007196496904841176243357479682257937273597620967002323372692087843998089656061156976561650316955854557628778192000345934279675198690130829731195849427677758093462493526577751498003834888402165782331467703221902371223353073335724825873741594131325663023024030007913536684465850218147941227369124992928475010081734828033587749006566830574952656700236704241846990784547016506922087285714532186947444041365461807400612949363982359016945260002691634413644643885664173130612730288401590666933274130004842354312000400304242195406741587050135114377304048153582923696209655805703268913568693020153152170612209159617237599448163857501546598888266468820774038669936402160177220990447152307477757502896368773883139021772508586023583403862040231271084288622447569565258586038006050966981554484116972911706928876564662003934259208474603052992259295166032612863765013305535530424849372421687829751111393281695377111980358229364863589830689748649488574978232822477828978209114689698656797384932369361656887181692758718953109805133474214772791787934319512670977984427134338406766993991909596596798438228633248870110959094676951526549977616851611142279908930383819923887990794903498788634772159780807825306463914433240233199919172226052729241227611146995079183448301002019947332774142302224217833015318330535073714488043711022322791762660085121411557426158681638108046486487830126322911641753993206231191720991113868817003129075802465818811603531352837357986003877701209089134656942266275154171616653952923206599586443053938437803060204158640611903272413445378387878427606382690881263464696535616526128304020741900493044962641019710482900712021344111810455106486131303546420496832481260709948523404406113103930733690292834322226385378351097524202611198456983248158442529352935912685911613495957212472691663070919616367958295280807427829161855750704975298427896273238869159442945078946590393395525644082324456480044329026905430669135903935195090700816256584891300061767938859653561940989822278156137625554859178668680731179836778448757916199377161070780380588281663046386428374139388124996400779466694917810998756604218281079994225792722449201037518909850712603098478357475433656519981847298807654373381187046555250190867421458436896575936965664982202355326422065644904979075149580272277167752249179915974128117400852056456116951408633154965827839790536146114212998551758446217379453490211247111511756729719488859360155442031005327499302604912599500084203891323060610493765327060246152377371593461342098137469821340808804429238157870211630822984573274811141338778067157091084709860521342692977559401961136918282708625899536536381230386338181634891398837164388612166556720352437910959650726766824622068058128725024659164099572709091030034689060176949511381667412094697738680390119786697235140567115232185381825570225635512102996231830321401228558964575693164322900206388931470579931737535302491440803439970828018261131566863049089291163824975359673727431454069232603049740766358420761038142921137868339898393841701869676775664265080237117332288111221572696270911266051352929802461677708619907661538245717315118760871392563318222016495407354506745628314531921628013335444272827915811938623144808520767762396311501052195557419722940928725724214370371267030447832577926625604206330382994030099853396567728333795421007182639899080115513956411400309861262982458944063196786537853492372998589208264621583489725477997448766646738764092977213713440109953016967860298825721864665499523248226503833337841573638536151622672573820634955422711249729567908236039816759789201463008814520511770148418447777301100051294286240336174349636987522326372180816038571840375090911741589712774009571212784952603808429659291764661941674522704213410035850806464158749165443004661411370091144016499250363415855754429527168455274010357066439600857076420660747551042054320926930510041087036090730491939568301067538063688175442460156145707509665659278019617038820805702578459572274917634598132984508107461453457302520577747733769369485479952173618819975933570526282236266338797585613796620364349917508268322797266486989671232262130135693875043032591309547393636120500978661265698482638928704523273748478142928313391359948096269670327154420856610078920937461426697747728627387317995179951534453069938092147346712313631304153825020607928020702738207116125776880528859039698509140433806587378588308620744224378272828293666163474037974655235798277675308967658320461016891610504385703436685949058923340691374688579216739126651799812870045419911327222220838790026637067733319113298317555030868226949642842661531360603360767033795818010927638653726254268875998999895822052557397333223873669852724981192079838416337939584341062487916578038873323117345575724733385146146451233974032131369135212061495990476507068905771867652011955849639363411367965656913293287355624449035876121261375756338845551503179267338731438325432966844825815179918392112066005212428344266304378475617728692691829777649120227837706880774927517144754127220262288318271891577137523010254038510748865933824363595407233887241744202557228745828213999982843666289034768689640809471361828833612062488130721132715123766276183345204347350525822834627818880434485488597196856678965891967091865437250069059538011397809522081825474331201718273195231995064861572016130848582577139136813665482002548112667300172230958840989503023522399500589948593112276107341146119860931250257695089460958829268976086610378000800555785049642843213300046525333888047490805807563375294123000859766005606569241302558915006363476796502202634295104322976730451881096724636621862342303882042379121195322099602413156909246243396935398515857024571570332938859482078434731721737423674110285255483319097197087238362278118742510867058573936552955711088208805406391815360410300630793384769800554554353797937328873854584507971890252007240676804988911685223478552134272202610715593730369682893075071813536840595954113767996620662406224825704824713638098780815383676875195654608745680784118873513142207306571848622020729741188950063409531422426895785116641927072803400158014555976284674170594485335903514224664668137973958983704237138559114714327077415859830227181589410455922193708414476620661940566445004329304147347751527123598459253099151526409440816253009549086613938848810035683472370921278292792906332333023821683797816546118850718466998327781730372462549703997443742424521571283831495885163917209748189798625019940997723787498510554282658713162831695448629987690781902834607381524633580402241728662645652645519392734737895295934631753690403404737811722502052051379139303168639161729851257274293440636595721574772164287780161489504057083946163474894677334264550450909036710095764131766592520892310724356500027515346378711962396938181481389248434749550229556920858557969085035090207564029664219026042111718172636298388505059817830089700706902052691468221439465797199337737326386361354357841361125742519966614642056754916245344815257414120778751486230969345585539582638002832071881203610909645040121755018419950523315098009722490068736218163734423085935217960858117273854268443123147016803800421746686606458799153207228512930026844504822641485864056790282310262127955312900143384150281607650482812325276036055595748918086755733159112054392537652380406743642258442670149594655126208811534643278764576271875014901935240105862365335358723549449065436554755549404910438290469496105061787505652100155905829522822092011146787066817811582023947462833635645491830739110936175702120040344336973793722942949343507047122964334172428674607984248442839332171037205447123382057893832465770072432739030153524943127313727352336247754342768279407751751538123792336518094386632680958207587785909912175980229809608634093169837701938567891099730615747802149880061912098095368373967985578446647256437760291106763303497764443234349383103754212399739639573946263072823538608870258810464461385658579651042402204476404901792771595784813077217589586863088578952208212282220906338078255625973373942766377324442651282973326464116202046361517658220481078299234089861207509531721029060878893516684092113767914320676094062456354736144161562635557709361978088509452952735436140414753305649367089770747832418363352461499853939960146078057343540785198274547793503383062058490711814342293110453062166519222904347597205985932780253528792902333037097008942032932348876991906873353799816424484735886144711361298761720969766004551978032881004630869464619180929124244548531191995822790615038252295070201272648259653930156246659591554916311885993461710454559864049768948714364281734663673989055516121207572012550700129793896023739971131328443800818421559031312426581507824530314267026309770518730819524522536982618109282061656024790119740174772764992805022494765534694538217218528818204744556998673498113902945998554254672072097884532113879182532766737403996961040285376413110203681389417728510844265450978071103198610154249756038556304049945937963629771090352264929028815781843221580520473490407201717430782744630661782311397779963637344436641565940380762936169433252631823024396520841963880924969840689095464656589529505670570373779647730659120848307345657678579151664058479434525769085868558145705370824690297131972651408891778557581968902063419097488646767296898110785462865125704609339014556990643307447244840403350651506433395541336619649495457733941871257434163560123836517720349996660167783532748575486905474836902903383758232562616091118414831494509954300074335745302095598032623894805280344582756901750278681379346270794615538598795978564165288444751445310371381830497068510165086380279088543660905823351345623780534151088818679363568644402803089575136209879455608627396429498456263409865234789677903331681235244297382545233986172134331045513100263240712556451111103632900467242556879520280405881442799573137812546853135287734822787204140952845542660118881837500676228072181700743676959297630254578503545667207453504945565666257796737885764049707254202448928282982807334190194099240575858505942365958559858660280735139115604723041218169770574991854119256035913516130825662182074829284059124110328317510348674110716350874790400487778272512524394720453093282684824074614464565507283870411119060493908272737284975265737379252714935673708393831671616944779307390576285585570760426477390093710444927882213086720711170191444351489217844989771420522640144850114750225139965040869625447756648453843069122654835907178210124953972512258620942658398324346743195573535185361370301240585229207823875343413439264944336946226914276825102283642598640662338815983349240628754598151050314421170710364709220978128377581524408224702392835405033130538623954202297820305188559564353409230346053265551342940729288871904578554071089604020589530551801172491664544611808461729637070502228170711363866577734491442300842026620538446869368241006709465591707394735133323904605075010187166319509745946730716177078249342597651904018735076603682968426982163718927799517234870988837214182303502113622451176522757252887482977552302504577854130266070345326834597888356156957433189239665470009548685100758905156708299853704976138021212565013520117301773286368156119137288016538654300459547870919430985343048150710760953801335424179737190995795628815032640397492632738475383030939052861334196287592092369809860218247207339000998044802466167157385478359402358837241270572609182110167124800266655236791404579608597482662939524022349760823954502006845102896015243934821531403579535509036746162692432203744423085632973919542829252960871985718296566973036198448825460160430171188229414008450299288185086109762421813431195771183282887723063772105971367317258403323842349270931845025712962655633039971565444331319436842318296015499305350763409932799992912121842942212706690721086636501917368026439856621551226640176052935055147588798277902383198797585807829283273174384767352097006523251511975243132402655613596502014309933977864340312400129682908527753412630991378567269937627691478262623319359127606383279647262803538296098441029476744525911628667314456702558652406929782782125345407286479248063968780058370515022646788243583834343905223893044305337578236968674307007610003338013767887752684068794929622196929472735874273388443061813155436659246595535576223551310874207450822889281743692550461088297981173632855561438661616110132727838302899470848329856356915823054880609315350068546129813277047757442437073108579136385541569354809708694795369527528442788014058361027955207048059320017127342620786924114194702169851766968994587874992528742104570913029936178034200638076133719560208406991830432053973546028785434157627230188165701792858827599409056041134962895769511240548219849901610617134024774989280903638070246165014991050670652892972149992101958294787077952064213343024858122044992195695547482782200224841639399019141631054662438742799287626796178330975895398467517995960156336382174461233619806670975626034193590954565338063615513349674183222884704589186554611637562662425313973975712840548550446698870763012845473178025059609169692494629410581908871433080095620534187307497712283338273011264802540600079716358487066026409156306898981858050893169133504987613819538919991837044258183811440899608862673513647569427434869360735053198227032595996796196199172050665866181536328045142862600024832703900816575772263822893231243367344103517306558963867270235618592498737299195033988585934559508915384195961534182886661928972464678879438602133507187707217827382447605386285053595361617339361419693733252053617019312513787060244145824413608520950814021069806072785531784549536782532212842509535416286609312811968199628828495568570813992140041011722552297151843300690998361882259596063425812009794558554016451588369329925899827580729195635994158799827531512321362360666065182231443157226572511435209433477217287382696010257560705974612220787088099830279811988251466432887350878676223999476704687967468411844005849912991623457317181533984616483782995503797109279514963027988726161628685692511707249878576679012579460728589444957731189656626935848251949983398431040495101120295589055962037799604683554852508771988001876291417570686572485319915036568358364203358872178839046159549672502878369442997211995688986556159728105671284482083571787491825948103155762114400327430499756784263728224550823486118959674387429239353801349031906051348890166398405286381790801569796304295730441057773664986151612627339241347135947883053462295450996937891135851204100333179942272244350339326493965885892648012648705332277728281871434446124133989827196409512758209478293933527971695761227446868075363366011481530317923194441256044244939008629669108969418201584129080293868223525421993734584284185355665477881071209571442479335631614759437055435305532042708429134806904740134853894997761994876338774648911212966596394476782772142773984348493218670482730147068594230245543641796539864139335642223859100920439473204268922395550668988650531853538765777727734546324649935428958786264669586416528377771277856108997135850374769647406774553428401755004055414985386040997374059770580457233099339928357165926921454154813950929990180294727678121899470258234215080954263764501933497875462326456680350031244686052436413910242619891491129826513293258290168133060092807331560757145363465531231583307693009902185048255195841872119356770426324921543498473791906771585434036880912402281653808125887126627542879971466333608391397418104165825174052840829226811891284105873222934773798920176168867132341119628650490441994795637685681599014788132815503743264937791351337400172104478593631952195512471971309474369540066764019332784175352292433942664638719314505337448436249039695618071827346514098049657359625190372959711513850753863504361411423382204587413385537982686657371995831888291095434471004450592329461736290823793108438511744891361876014571863040029511914526779136291173594928561701471851296452560430894776116313824556395711962985941128389825772660355769327903735608694725148693230061889463176948941125892935145020390176185445537845698609491340545238712338056611955575225333352920269107116549702196940628076990410910041717141840933361427007950106027593153828453299657993684814769392250431901700138022534270472994805838270003504898719670563030943330013630233004673290867448007549093187430044575374434492332913234309034978058878892492007061495179913228644681960314524662137758100831905677536575584860484868088955982548518307360185080788157047781191574727430667495442017386613895752022157336979796021559154276730794457041674179567518741466163495726949697738965375598422274691277498939900599178269268813399725151326611510495901176607400900163034824288105213453291201587129136371303190010731940188830705435627436454603697999990395930288965316765784071031511004945641347240213118899843263958859240729002225551202464428371115104979081182474464366832194873704473315529255018255972457185377758791476424898622761906653921494702735597748225960370480916121214346073931302341775325226156815875849723393323711151090641111065843899934223921752753116548381377169150909291655937068088045441240827226954188328122821865108544725528866566364257333197725647028659074509340830016894625684995918686613120179017518496910914722183482569035476077088492885928956513677130785059991421884559391233038050708750949304921478220224096534931232658951827059095738981800304954725577711954088493729084711010686548655517199676145900164969331654780136485984992687002368275839434438931957732877300556268280993274169098752767423151489435487624256565932470244238898144244025953501575082662771798172639845237679577716088429654784928734316095836629680010056303014730376793125122597542549875319031491529901476824015204470208090825248554858717327527540342999392507219719415829339418534580648031058681887068318701669223867476290674367559642429485343133537053607051832621177810867135239316039429864028608809029474639761519160779716192571859832151472013606104587461706550551653044454563773291258796393268896214626330518863159413095570984346044086766427802949751126744124003171107395354343299998619173318301543552817428987837527444600828539253226767339517258073209569045069446696132331163732163506055072313283353933750396249216999924544991055176742810220177302563545501049510950856654431735125866541150583125577483587156924132867161552142783145406212865409543498183828601499147129915267967712299158526920404772534734220934485117418251381420357877553604243583151663908244077136673589417311009899123129975198251925390229250275972008350496772348704337360431614773269228074021440606243802274390142030962719203612939316954467139938322322213046031508987798328252439458028043933564735570349845778858897163118246250913075199105152880881413825453065835646333407063023248321289210029403761382308509725974723407387498950607596554899106301282898838291602907401559665356698222233119721490072201248891429984750317412619224890826143128450791446185166246559336137392368925395659644904703497709230420889571160013845171894765253248461396345291565922189281296696311486494467580850966778428803640688911815378445284954538919678492935972389002906090604189195815459281695586134275428112525861274094927311782509924849050933393461184969652213591340165938811244823599726052342068285775314020265095296979788549061858920813598601813566043630306373456488183045836535270420395966464839114267414119828433213699252633580125932506803151403611386361942087271239988660933688931122574145532590840621963342148689571844381545246456750020068260848621517832402655265117356318769095177272029652551474505214527060753507308431442807055319035015393157217289828753701879463014465945418321655298778498131712827335616058401980496994610542462074992860997757821511902072074564235221253048017509795872036371128561786641120711390882324172251425620513169392220831811790868035398880355101215007330785471187415369377249784024672245228768931202308155176335608077940293705479704723485999280078751231729093298481370305761126703524862976970359877768077930216829897986151662483301368113075402310896713452555520156669474402799255570051109503884616485424668870137260975672343679550131073303261788577907764367657010214422723828117735050872156314979966687852157178118128353205359055214639920944110142213605537258776963712278977609317193022669296119186033444531318924444215162871655704227722853196277479245961731132803292897867162141524297989239481349342786127053626835002894254731995271517224485176890221165160035273798288118261884467820453407971717230201922644556589121804987412280113170763390149504629518987270044140546469821451222101818880638531861498128253557268053381419650833916919630223601876026003665447935557918525302442508414815685552111792611713949865261811602861255107341926934822662197033779037599260889938808563848487703343582545482881449514963662989718333731450273698938859297043933050378717657418716278604603316678172495011004575658873328059843553482773263430195266861990289160610616910569589535196216006088872933772522925402652825833576982364583841684273343269152578803845859679620978528167742129980528242303084177278851761869510650440042766998243084611538468408149477906943486175936031496219996353632359414450769972915236810458487783142331783225671920735850911325265272022570514657500442632155013433520208886806744630419463342441963634008947081582541707539239687163390575083564781764290756078160434461828176726694104237409520375193363934919432476488825422248041192029769735094381855298366265862581736517659054664490480716000633190975470161345476839087282220255598384305675648378732425979686919302026506327253683543749958727654594466670109731278411436455920389605262356599649468202501232538625830163059407385497987964074850232645762515194359001971372802590125054027634207251445278907154509787879271869425146115346126060400767399165502356591836712658221179363577182885658535557338972329372612351221524068751278383381934815995116289890263506426458482036431366759265568259720151374224752173570102808232375915076566908485127701223705616944206609150200390413435392694396319832643056641270306778237818207468150889205516851791272109951640726878637135859232625297497243091184116156732562052742220392086830418189815055678317242714869227130839488888055510491552774354097288740872493880480886078299574924249392788209942073576827124764487183938538337810632889218891113466339468633185585435408207434645634991054033555763755926100243369777097087192802860216912034422446075013611584223250229416636270485829070038763554966627097590528502578341239807139580758522441531052391547503372795626009550155195282356186157723961421103295577156035162066695144001380613896264881793496187324659309978014170444405390757861955966957186137264756341485404379077151347593529844235736232790448744452401018277818409432575021215886197220432950263313564490882289001577043332490179661232414898892141933463099862413555722335438172916756347954098205100822272453184337671141079654364916589167249501721401978578119732661355679444949094838237155263503257282217017679845333066010600982969726525829771664120744892847768019467665626633204042139742556095297232177197852201663119144858479668501026567330054419720347829890267999112568577172005353091108585709849364354143109822964276456594254091690761618586008971180722087274199579527082229549256049813348978202001556476506716499272465318608418921899910425296663681571711570908971961702311985886856573116244401950067317059505371225805489902866146615029963315461872155145136661009990798329633822995974168777864382336855284741054069985077206570546680050045282699656033533903296786534776736340878097859024828415429577818862124765334009573985249010411861139595609132050844634879129640110400039736160076672702370676510469452818770080707911131060734915978831801747745305262097076494530266097828947434763775716511661284273577437043881029465954072500724823716291759800544788186213327760453123120213026587110657534790028826628826317999781035390965957853830528617517819120040585175882244550699111533914256917457700779377560737190671000582599924535688786460876499832664584893241332339016110959481511555312397494038695868355098352895545525175121813949709162845642773135207673142062709283820839657752236392202432931345371757536346428114721355066555286630028886260655095631383014823459991390598098085712940391655525857415918860694859554409031617277233925060532613195775999010525214628752385604752375420522310668452031565116309040532232526719012693640031616073076930703728267706682325416795305667853643631978585434459726724222386573827471270795763032698023493757254181968852009384403003287825885935858565585307440654420800271323313601672591913461763283670820869608937249051581085807224713055486131640865860414597978090508642409003464450929693906110625449790782699187163997290295423108837300937057270116278363524824531472858985395201984005588851745207316908077324936373250309296892474876209841622355604231080132510634865852362171537240804346210867058776409959215443549006857503370280528584198800717194963211511389729575157440681550037600705605940652878155781420069804308033383437859607250082721471460700817483664195266695176450217824322185459608064555410523153048419520329977387964520695548709124064042584961777952940054106320547663980568151300539284194015119054515382925173255919974270908904395145951468044305053149532858246678853746542273903831625078535733190007250159163400529426828637443441976052103434909888469993217213701400285608190219827803506322851676649176390925908816550341814190340765598342761714375692433132695525112186543677415022398669017128987068502815033082324657127828958899105858484527504646222867983970632649866261137270807210909848741556402682084010466199849746241739211164486223649318480733703079348377619922396237984442719805563250252623923844162573180274460168025834516110296858862873262222740785096328039930081000177225893960234047293949683332020770397040105732881284917528064019108999332378568045242726807524343460481786547327490291865700903081771985369137347803538665741624090536676478579504406777235791415471831809908844521430673626451742125309261422521652950005216881922693850532405154056949784885615881538029955797917712275646274792518571144060916460136079739522936196761059043048973472844361696140139319772115074469046978050308762790683238970276558152838105831871379621926582357161612694887755788339969147725895509893272300882186485966635353665698834708479232058554064388682140302329493216718702724450659143162804613415214039341773154248701912751789595861543141663210743259677902889788453377099395687086131947969553259246537504787023155334940324834464406204427678294820421070402464591254018765803721275607297848776601635431627951244785285798864278372409149174476724916081945754454079934130862091192017188981897553826243021944658706976341481684713934128555552102550947040151530374726174778074023059186070546269764779771736441427351316165784784009358054132091976507143862289445379799772432929130504896152000616615364374342856337470155131252896699509646696437284481224154258300184203596544155600776533787673579197577551638970443977403740625980850851965935745649984525758828798468709393930421622451888357679170339635697224615425539852801081012140549900787766780480211326391052593166922451592182275173385816559430022680778930627794582138780742783038603179766213734281475034744020994612583488624702420554410237831772782938413092796473059471609183927703260702331597349830644534508647760947143974778209533380384795671573153017902654286043236705804855178074679678726081931765849767631385743996455705651931531614954398200423020117052935305041509041987647193514630531645162377077799851605441546700070071196513405297336941561305094494305501859730619166829015923728526329611935825110300321738088900131310809023321035007734330775277707607875401728264146446435581643765261924250969716865532577893692020840691068220128682426466788323365841835019518919490375582238804625053730006116862273432712186835506247642722906094257577811420573704360122905230082817892197825055856022776338756103331735054980245776519398234305495717454217759188680924936478640693569792339618630397056174835493926946512618705243529650116784756579865388256690092998594211279401379452358041919478222251802326793432043636530709503259423148342887523518932523788154043795814739131933878716436105011492409590999457126010545209919878095853719809578959779527987231114764450587661666087355764186669376301636326432757099030994763544859531043185359521229792701569068891938670002065859330336720230027230066240072162319064787089789482420326363662635730496693827670638099395723716631763620651998874292001874361375023960147068007524037214644434542713607020116192217074865771378179477543235462676162263638039909308427959366106284965310821312264074816298223871347725783867271961125155379680892504965507702036421773635057331353742829838227816514554125011134526502870268683430022720938426748543128258723970589105045244746553411089918743489143119424691830971366056247444853323623817726161219185759178480103198940154130180411022156602063640778009454467230270408369096561838401810270144855036893245876317375512487480327478074567607433079898590273221664385618755679767839783999379835712960299035052694082555196571030318462601357287550847848829979691638843860119390051094394030228951605572485651412570683170358630652145932842284270728896978804558820719394049652973422500769349696249475589002163915113445624874738161237205372576629307513352179968073786958610132603529506256872904765272743849911482959129101462922361276271747491739923063895032398512371458296783247645361634402614700363763391628968504483800912700824295063721529205489511369609104608439426273687620602418735403070670610424395863206557141770628498871789771214778102951086445685146635735962079788498461977910280838104521976818746249503095488241280669801322946962231537649785477730576684350469623645170472762424671002247735647985479622979478399593344739948253853865149003488665101255242036314142253385961763239450901650511665234662858032978916428751624837393112921940417512199193606438506496903786169754418566412003203552401453848949200546812192401109268579049489773297770099415031848460459730612012252587160624890144575721326163793226340062009346532668188096134536022381324741440922054706939073291690622272362237097806099263407688470082840644687312658044848380417674868423904084214747635954868525472986551777236538051701415520698504925332924228039058684892038775061907627519392667545318461127791364497879063323195003421995543213998372438870460786620221335215726735176778625061675000761806485655560911622178336131555309164109266965961298304364555118519526937040261288127481732788840960656845306911199388012159955560131714360576368680525897716065990559365762246008521949732646105381355734981964019266490393085689850337170839698009102422784196354035215109595668872983498195542593632462788814485528785780621162406884147242779491022902344393977893763807415450194185544459029674167018162863009917967312614008871409719193041211913679066327303653297128384514287739015909203483824306614761940787053580283122421401751071186441677887036081766314042424529768913198592711058282555539009264599742559947298149563227675843163363373279971583885857287595332252762519191629639114151197300744083189360361801885479048725605099219148867182283892404413719214625700915614102528207032801515973648823582531875788079601074269728619917066567785620482876378311252673847200309018962221272406504537243269333375694336563122693169852894478275214791415348254239251819526673351129056396058995871899119986502380894480324967694122579004049711416025166203295998352466603171202361580137344616582186272861612889550516544846173399398511186890655016710440607371957706562496427766012511809321441733277233140295350127956859970663229956734989101908560769887137470576023298081828713158604203692350775317171039679889308151432910640318670994360549941277125187709470654235229994686386782072982437601790065431899239298173513770445027036350386367014724769740230555143388313186223913039845275875957885975357553953277414077203752312266057509732832470107755577499953834627563727631887594019225943271029809469426866782973602318418652710641528912957807534494905221216055100815980482444546098092855711749976717472897450451184642207210668923623082266533766574778232850265297653772718454438548337956192916056810705367483910772760924397490780948503139198952075088253849067915129580337694697033186481510893319096822870767787440603080865920821252856320143422532326766801401790752117036359970095342864767864104542096501480040220928375709103708501659293808196892184624864564104102243301628168537633072928199798692414114071283246529064216458478046626611982122581691072405153467867251643459140146052363375652878445094117475991368748993014995525656055867368183936240054088827960433920220356763419175286132265866226099693006288139467254771462891507844127066840685525326870257757961228833245130709942759449838794824230087488343101365364909724125538899575551311543199549529271649797754429166156596482371632673649896752890635247994828672535306110783924107235214966998488610300928024896437668375775388329751846587608596730433068700177314220513380482057406633503155352812688959517403390301537457227112850743979237661708097153453534224004591228846048579450430988807341230446472830330820123100472506598355778983259001643296796029554933675895847306382599784397219564446804694389298385837026826779258891792230353323141633360317213926956818010413735649619366344289946737017089752548287599727054481699787197591852012705607190494538480453593700437154890323355509940682359123262877888319151370998367716346031974644272260101723423164635071657923111346151623058806884136622900526474454324302495441425405550031623632447576057274772499118160961760182619374287717822236348652838331600948600222480129696381299327334044226645804744085652715740302006772004229123815221374406667283139965029134126081512477922810581210456608607327198391800064983011005512264466223997575532228031550772897926819785382046380778776221924116127421709044894789642902484228344266709400297686088920001296206497029381935997945960294456406400813531760563681531681195606579006134420440543014009737061574571577763501639591828347487835908745406043725625306534706857588847830230931494766199930753445829213707018245799169772916894441337858196613924168760432305397522425514879181406069826813370152752236340547001636967235624212359131819401617657259185504473765129223550442113343832984377109856637161298960309999707528497864104965408810217775107005907498807874559038177586453557393611912739763252314814900490713316835805240560117663596688962691872223990749853936386421030802805038349740419034569499223838216870851178547679901072204435922521577272378392754579246252325516403300694460771456831924093532386461762735047814699508264501902530848555220769109932815822379610786424801611316973249283878263240128644911150836993489852870586233948026896546751489846853751382920101857995308227763448961478804585936188128561097050337075118710345877269046865687159515263120390143618738628326230504756017864199932515750528409951006311769232041551692921575296439200139415834189441636583238627243516358750120518543758507246904364038307966822107789975365355050730106627624425823251503879829082360816004793548134098514993577314341461259014006573890362438536468325811825005557687171730378163176993517624575249447612278917728838495736711665255141961820802559461996690641373872369378848184811395614225940324644382637913990106491717253900951902440434651690533138154018429644698002595277420764891665832299172016082171139026816533861358351946327576299919553470687942400713611123516235902553390426406849808139341280037652391817410324833495812573126957389979210679832264760932112582220979213472222531108538892157049518194198558473702740943740951134255740747488640102012755199468406761001892826442870778196219217449938121503820768768431256176802885598993944580911944613317534498042531335218155956789834892662463264917284908279528982989819525398412348646709030790930070196944836011842509994043787706675377558749099235456846050878850068994843195666469280862907869927227811168532268839537886959547049809971285830028512711710780326207952430058347707657728867519283614014251165794659888582954940452698041942812708058650873664730162480811691728952757614173329668148117617323595769701959369270438411475168630793209575213998981283246835100347878474205074966177751830351236862454437290210486669179729367814804043711410765333728092355677842891181871967860984393529584728783111749400893715615967998914174301776987058058005227521829867413133427034121887100506620756670359416958385691219596169997881455913154243202440145531534616530673013832558368527704475149849255500690105062263834214236331031984548313407161364671154831407549280468858898093229270072238152248933713165033233225427471541134370481363428169790760772305984670495651171690132164213745643532755453103723945055288377716408317282975907229369082932287496653830120339400016309845560874251203774813313835475619537028061050534197804319030471813547613259707696126236311326125414740107316955210617808879863340572003451480741969760476484336867150430877908754986228462008085712221825193657965060280326934553545263278522097338191328680568847381953712900709508126720134395371379636874225877683090642801253121049461312671491200403600125749566667553613135730239882838618116539081557580446631897012335477606844049665755941159606291710996357683143341565989596525250971295741716696848754746157061825662970460370236805566667662060069820788112381691415144029446697808707984610195154196755750244768197120664050938769256883398783604787371847959986372772683901867677900235827067378761447568751575875626365479612632032488019413429368285420336477980869420896709394447480160452901042199654758701115916042985706551375593952717269899138336947309391797657762391365326415008732679761862992629929143461976715221881718170533897859532155036229828407155448729804789014726342004916708890589503020204443578345111802447027968203301549975595659915284986682282612187517713762319415275911834382668352672122125381544122216537187410198792479786607554125042661956711256330892969528129204449231049658690057459754452496916837481712342132846432516399892706320541810142580026902614371478324113283293482812373897034934473007418349506405301170854548938185691595485064613016685679512295725871141450185480259785087582828081198207160773270617877061549749526700207918672848546370329195550233045601553277473846977940749868336539324394251497437555560288102629685151135794880586107518818808657471135521182762206680030975591922227729812657237105859327190502665519253918986135774424778223975303675870450295357244447678402114201641962582963668689647589652885164981249420898646374505574657271269100783569980261672552846825502320030253377419299037815370578616715335462504000564993553146652766603342937521837367550415117273929247910733544972114531491538827830919512306338566049273574981077979569924707464507937079308084894940101339548424104699674348726007974046339963792894102180844381164022980727314612325756885119043641408162131509191751557746599053585209429178284229107123864144988416283453862805119292336947819145989018641848455463666103812466144557554756277164234524261403734121864125695841393407141619913217300886581979013679235947971795388673820043835350954961766847790014387721284368273641454785980853339494897406100470882222275810178316617605408447173631381704225796937090125598781244907211186062931017864787125718998757506972590573342024218777046223143550918175581415134007542795850076027135475373373017417533397773077385886609822909734147563990964885833428322926222823224358629812137597301730634941621154417047166793515158211304522992376808562699680684241245150135387255393844609538487089989331873649262492579770047996986766409668875547135505106259378234294289558851659104355441342579296701473483422312296709936077270289212680665393343685154852122335539467072409657673323859718612068619224042899570879757616737773794195541927562574284429909897357181612899317213894661246541598119719057273154605430813332351317970043158713857605122447938990024519677700187964920231271716406105671687955634103018166887430541607085075439970798460433970270534547319166370282033596777046640127825537370289878502169522757849953296129004380546337924665219829891989546173622016081278054885881963674739542992492442455795759576926007171761405947827026727922614747514923149787003016784040913425834654832586104835480569552010782950181184574049149645908971282487555570364891322954309881561189900184459102549359372525071679063877363460374897589450045214327350482451790791237112253094581383123814441338643146752132275049205055407378020559331626997866696933867137651138687707973074172041682975515283035908845167919258156689442416484907464526709748844354690256786344206268248899430618845233886804745507205809778363630797458104709307297381128343000363320247850342149218027041095889948312720659913248665916303930440550610412685208292370534961217403559192316172905717742652638106843253530921244678756619367440165716788482263243726929497409104837333415090453042543822487388178133250651805713383326213952428438666699190636521172195355231977580505677753135959958725339691938250220107976601988564949337535599924251400656480357998087792483320467562259056903114122353741502389152833009712422424491268741319460911786954546392061051081165842463135332542480622100498925391787885482973377137533279112468067199151216719173933633651560679954138142707576527662639557087388771096757012045184140849866195111319845144714792156177986280275360710816668179951388928262671211235769929391811367355825243152579933457955493542587006534496249490243756604949107217582687573021595474656989491104730564794135993405174666028444780260444177392350375657225107729445567228250105641180798204196366349570329005637418065424178780664915792414033356070656133812750971440606674735424024739308274650142914136725855823751346190511556929757397584404003444930549782938074838114352573232769385128776160472454564106004620699361194985743595114382728313516925187282540681321619564820285960424270853082263770209709774145484401545682133748505759887025347801327179230188630952813975227331710577326605271446217727585502496863696726019419104853011403930810628433843889703573997152662541048184827842006233413944869698888769420280740689191043336019631034507420617523639710194499290794234607881959554314310897907844103509061224952711050669978301692463766708830959188531163729638865747067238950333104040940199493343616838776887093715248499875526454455914551203628494631433425884203370922693147478000615251247677398443388390195929429001178300733937099852904986814371658852373102005831608657793850024021422021071196564200496559249338848362484534097530958252289506568596031464932941559798491720578307962465533858050456455093728834010593024728271643171008189242781687483326390563599140081151597332221461852354889288929350944777872062587749339495202287145370597133033847061167806259070477823152223809008994573885426470094355505729621518232217440369035268308724265647083357456698266028494044971702548976315462228109510967278428863690011288579678286805362421445919572241313937996070517174408695591502732947139202827659618197348259791082241698874315135665757717648261452856191042074421019270715812052535230267047659297076248184628881970522832316607730349680310698257737970939367130175587958507963742969997226260326482874019795340348510440739212752871886119785156049852469259530720543096104181039741393767481185419045883977903458186086379505142122967722713945402482666541622639799146572023643685099819977724777006280407837377591337078860614695920658589666688127520344853150347567586704773417339470337647784596031824508878471740475269250842570826465973159348263664332706344567814538235088304244851177666400264488242254615248504580097086418346492628571111013587587838170507289402843015360453700109032496315427598902731937801687023028111968432514311973512440332662210623738412681667900204139686343755740788312070105951555640869791690257930132517469705508405883026909638772837738555946235999945787868053557813669649514959151950857049402685886534234270414535882500352338308364970999053946798891169200658664724974670479055824274915899982068869340357405868399084156091215515670862414730427693005976518995612459713565022324787091138928870601709037147649881107315776785729966698113716437172953111304171393278791073301659973125720462770188632741143285129854947288242490625362492757832662540858218852443393433305826756984473364680036915864179669160946767091102671220283771473689370219723641097933951725916944680195537868540280866204185315150060513120873983589932532015157943528494065183122257575417296940611093255539880176833764714809573005614500493302196458200167892718903127980844775706163233201245849419752118059291733396702449571893141263987641045395260945141931450662989326034928543744332140807393599073972640303394399695891188595989051698666428101341674524277966174901316750993821182443409040112732375781335034009458258862867026477776592706536443522661249565813043172024466353990587346031016282598289369793759746610345271849763174990667063044845064613848822257173200356563914185769850230245646222042946844194572103491788493418735942272855711720934460121722666298863241879976586414997148648197026542050580422740369200881167228617703835753116075601803078489728344925512555190007049294545200387230855950910408653862121127503497163130735129850493131732485284351624670872683712600788736147754284840301273040126138600176657426588853149287372309284107607155693516318084651033270661880395486485247517432792067209850403786552303456293616296937140277513808313001902233741254198636770968638153486859243529335179238627795427734992931471721855283144847581272643243504479925697214203598731280645401300746709397428668286542592891397320723362780203414438012225600159111804922547900582019406467669768996256728462900388512852659449434228798480378084301325704041598241004074253113422137580032424888766913074385928920789197519250509475376302597634861960531479145210840041061321364712089171616685166201173079290503186460689331354971958230861874537730771855463258053831219336151602941505823488630617220843963157119342877064066489190019731629877736802941563506742423395021316985165210432315030540483189039488974297424156912255779675925380843001598000645051055915712355530408191940216317346077964831541150415619649295833180324086341489224778819241995416743219668340329414687259750395558158592061349027529386898977379416662265877324548360679968512485952236165635956733921778389614178369677075779168202571609425032381624469709785519168542132059375807974530045976407130041026584113319651638183923440707429844446904213760314481638111741241261299923458349339709682846707473404544305892880024734642695322440532745899475709236390877007989648697899081876956703184824461229040922648727733019221854100495560490485789750395215614005856271252532535475194419999887553056524809285480327816504823100525611373009392636875055094139859320907461485602573670823123552597111855921329652010574558281927226286808453645416621885834973718338261966386469642289335699156412826793995124483379482634356855839599172465591932030640417949184929251536705325431930139648656124628238310756568360746959640178484039254933955965502958456566833014962641031320757160610089465599218091503497649715556956882482015442615524667002758377495440607290363918196733343520927994836711664562340868725914211649060279997601390647876352173903670305025294247259351658495785210817591222804794296317866922581200864680596258082950147609374540581398057690359469949542640080632291131516096038704040859143638391058757732041941715024284743300636783244957140114699501605012922286444348603764082383381224167034142050305641202461985017858897445138279833705427280267061895545978728312296344218978674530426359130527764214577730867031152281380919270850491319439549013851945538020839854999992106622478269524385678055812081905313209678022606544145577120144974570562454298400157769941599242058243762816650994197486984508037611225093938375342492862558195621846500880450817912527235336660178164826625141330688135250737455890591849921930531800207795305554261532846737060595793191588558871701755257420921939179489743907954762210521024317389150741788040922780226711472383949370624671680498941385770694122244298720402814465829853652072430871776394937163166336752389579994296085630417906800068572816478209043294605271755516006089527690184210767066281619399103431985855279626859799616897431199208289987631522667726921647244853139920632362160121058498684655583843535921015100988523600947695427067812610682311389120495756712232046652350350695381272022544911931918962372442625210219214962452829861544362128289594495374412567630678589165994721165582621148558443076904125480983488811083175035167037877731759105001722131710159282015296742254643126518662266200046864142899357770798022647520532725843303375198196109812309916557153996785916470811235006474496924944719718543176418229626609847634843507401196810787099131173309916317157218771655426237514862562539749597090840349439245499527326599865670046874852486735188459281519814871453508517633823442687976836983886340199806547280874493917902270774283295354190828828121675689604654677403145557050255887434111472352578581579903893715298522373066512560817813305586871001114151645207767708492935778231319703566306299319067324980484992530800790127050945458899982176338460596849910459872441490070936653643603337187133276226458162740739827679742371662916463362056406717492091382250441952186076263841907487530396813907481647316292388611223773308082788608172711851270647061293966994353046584944464179717940398143455316241675925112607311017189904097750978202587857178892190668750208959636889214477617246861293630453641453340501658456317894886697210651463930839414519014319917016788184055306047781727469603014772028158238423056671598810876849287432973876266349475514528965729658869206401006499814126643346070535687215936374893428500358504844926763064919631141010251250269404715818375446888396059033404425014195779591294024861931947287664866637749878163720730715851706924927946211935854552796540949788122833452266063366198156223923280899174994176882789382651207432176034513018985875171464147363157755986535850097958189329060425615009969168709156162485808135058014669258321599019359405460025510578112280725353135979067865643910701573965988861003792070719914111896253025730024847906393184678066784059121409166217068366202250827822646323439930049263607762718930860136524153196827639906396414152386584298548277403778961576995193812501953763278834822720667759239089107663059021664006318125892236434651138163646370528887917221350522839797444496433822603086312547000162474047170384264664764539745937030446770689076288147226279965274096252429243448346943082992987320448433426485744881640640699942051587939221678673745329939320593194260238113713294651105910203889021738188546869553226712725110206669727349677537301871102101775183791999158574812157201741434899398748265414900697885286027220776342679974105773506143701738486562588709032332611644907176423433037410321559572204501867869137550350124705657619811230453690316318931888033639766207213580470824521978233952246841039784804343541287634694545171332945035085577092497376122795638627159195787369585104338480697633732970797489306650049345573391489817015285404196786103881534037863883972669804539197954694730741471183571108786245823074367043967700822382008653683165482425322762473001092522730349227007051403847397408410128873756263242416614093144723185391837044146589709646245416538922921103144833111023383972169655403751405410513418886909952642426756683367796840110946383374901000471134277178170544727901882032369508265819748058384460370442403203461306204727459555170575465522564650782861892224668885609766008228870727938175199555231533538019064739629409984340286692549435466877731985726206500953525733306738137372294635263288185040245627218551626655527020427426796423330453813119721730698816734046453145963458791152796775514254777659459791913486161594267491507404380618413567892353587692802574668107118270565956719880183843379485553417842091067073718226895619145931838304394011461618157168619812019540797256280451339466604087305704035411062276958636906987489508543694665068295749892650540643327734063508385245838038193938792754092772280347286662729243757159195556049124224137864916084628806586213965504483578778808965161608384381266635550906161020412638974057969393921513211913114698550813816734273441644383787790837641842494464772985258073378822806608401615975090206167052934996430671396822607446422447759326113578073267416592699662716795762105186993875652298089019172046508992511043784450221048818752788460079934059650740794020141997992617808389568400920406444405832367749605796406174167553415416683982281131958855014309560746715878281329912936709044749035433478458033036035041129250994449738308603971697386986948260771408057249498430297662178428834480674526832141880696332562809287436417628332671133517831253790656354356525046867330984774121420049948614504034616781769414303314237924958170478430562232226138055760987369615639884857855047327551291123514027493522290948638512439325946094461257542855001237829888178513323845133760513657546882443381079863863423111753980297369613894662828894067586392824372073037568092160606441067372909117121947496107088147351443533929935945833458105114155112852017554640240519181342099365007558924883755458952450813195335171561193643574402997171228942620016946765174707994510938955725553036752855788705060352684937416173911737550298230279863950020080747573907970501662066495230282785240427531033070081348180569401242877807327291787456705494004808249918138063320871116957860796789689898035379698915185806172054797368593001711790156737646926605131301468971017545744899379987237552989024961260262243421117034773970182218961383897826995355854838705268624095202381191102028758095380540377832282143679232790600510691585588480836910605283804193300626593271427406542981690008827234378311679480543161545589995241833437833997986809904344931667278946505355542846632519355088963841852647645874820649143217153576458605181041472315047661417840294144261684040948883834472733252369979182499545950357540723435542534081602979814201012113193917681182557467733859320883825836461439834568176425317264098904152788399652978581419736782136450299469652519087407080331416545600469490793543621056503019866041946354443117055634563189505025371351320913857091344455194617849644964613439302230980421417185264481974386125980537166501748525509281562233477667764725482170559639245417998420443586851321507313424646323702542749357653986430676137758086098662108074097944453341216448897269530179510427011409543221717199626260317428259323402046244867390766109378426436779944330418188950811160627035147265285100582030448612047047445363086636963665987754415836260628065128080009765099880905020641733744701116669880262189327236946793374698265080372165343145616389910292219875653546871271828189768168857490130945835835506921469653843715944794768281018254170715826282664807428164593980819494359000214329520057075574636427871951226191086232104354995679858421210775847520323986035563805972319137000431682350638976180666965778184810333020263937916018396852441469319809128841091665884149214193039405509325437087510590819646462792079469138660500453329729924036940837299279053461269940862860399354896152713026697745413563638953790042582371077890734916804086542837449996106161685977922934724488794287693756174012050760814807463760496044790037257928563618744026498398831247960071458721499076997210088649560037530229617406669241129243995019090129526886587348066368926598198863781783177300395677224051623737149252135873532047996975606140361182532950278157534917689087778218475602699167117720956447232605428711160122337058889917495185533560605467280729266360524942944672636115608825930736648907466968666401492884613959518362233983861396647516842506308737734685599488250582652593693333191988220037923479784685792279023146407770938040287190327361014650807936681847156048997804633709636858043632449206752195755809382461909587961925238578160648325413894400800053796965179629130075605806759009800201671429447472679264733650038118342201436785359397428082596233102906648337509979898452695093730981410277709050316932769831853781842553620823857822454048109458370498011734692429543521809612067296290245855935050139273381922952905464187429514800973191668266758898710237801487612605050474659143289400536548893053555552091611972763681933520032597966630761364410478272811244303800048084451537727438437619045969315999481729121069125238733140841877148956492949976946212209715945462220369402292630454695066721177266945464259715994167539938793887918292084522242877666203093641935138530735000537319202967833452632861276202093262576105068038295925498802539028263742099709499683896722118761526725778654348278709723989276860208386212911830651721466335865566116912612722839846114525039827151253986524195944193315602830606406963868587185065642916029023088036311151638614512998928441861071454336846806752023401836421856154818214535910085823420089882159588174707476592484891240401414176271848517870640642959178287443730346596539552676656782102520026431684465220674529607651068191883326447806139143763024631284214771598648560695115017968062913448555413064961527368478294471642073737454028677112039466702917805438864996626681521125103625696990672869863126164599330771735789758732129546712760947296001355272736909215021262129111622974957422286092593064131216098415423961061249162846892658010027001753014943284566720077773688363655398636850336033826809972037936965948296036921944217742874470432395663431901287261622184819628387756840828313681546776404646713774537048998263803915732375140110827176436203781965773211180219356631887137471831577550580674019635497907792271141070070373279407737982934748996257016238053683036977097297799350144740267929989484461046922054780458571621766275947899693867895797951384955172973600804989829422601876062587620739321706371406436751419985042249825388762364474706247637562719002607159554765188978438030209913118135117715169192134922443262489937116202929961155996425377912565852975454501578349785813810378954569567986840795386027127169479884687619106437813781080220135512059140782587378206411237465271817962826630055303671422124016018243534771704035802080657676651307955350556530015537410226088081832804848361745328707641218035433839464509396978951892167748567837219304492782419111132452730972087502318388301710499307646033063132258398666548256099669833531648499298827470338640689709277418736925802418013869084021665851078675296027318925043081101272712330161913820205338353493310436684432625174303332782467616917927534465825661926042345805680499061337211288420491477435119301390554249825900255768680984382114186560846636058600835666700439027478523026535936946276463397096465906178603941230652455939929686771239749527486102275446028975177820253277131932920395473301873816194104856936130382652832944016707348173322268022612827873601303787126306820113248805583505374248498636609593390678701056761171257998642621967184890611835666790421336340159034826407622807197281105147859590274159374891748207345659153399912008567310806261268550860864913402470644442905538438811567411933670519069979471571515479967417900080384200471086567222208241992481387173475455501182280235489605423820547858258900854172148440693475774402556194044686939393454665705189211941732003221316389638953683023737176148771589431875388801042028539305942136685823073730794880525053080618608657613600188267238127459688877647445861059632762962717241213690261520590508816772167397783869529134608854491215727987326819790525322372614360579394416315078560156523484823605597018756823344056465831482340727337488642652125328923606159815483190872335636731264256316029783449285968075609519606242336482931195679695965963339115618354513618389639384980366159693286321537928133548417754782946076654592727008356848865735982381005593346754028812759510307607709218026428186307599153819165760279525982825079172317228179554055913802213898455482376765582375006320940881644943170233833539840488424291289907321670204821912451296175103873490191120270060278716911468119302250938287075822095113993774091207303679736026420586092358733788651283477783211694035724228163169419636812326703695887763063966043421427345756360186592042027077863598344097243676220678686357588148706737288789826624664532529993335927047644446220953608790430107922387814782868031651875629738643517010865704255153813748571716186397940187439194373854734832733390533078670941795008902327158320527214878743202514953031364262474233827388981933881539971932231078197250603041643235195296007947442820527998411919890988611205522178785337245421322507796827729244387182252899945655006564909889065270274598406509397343248779831446699294560406552569124217455545002184956586601029906443612823703515960807317296920968741404546761364223310704918204760829287181800402096172652115451615465952994378381627068596128614341408407357706752843052249333697167380007959660736412164907712255721545069077475707474982513275283455769026661122941900801097624298300934893227603149473922762733387075211588369613217511471666910660197189468166084158296395323289737475465208989173995486863572556594758095105396536924470895194144376609270514377961276462582316753211386178981709736821363196764858203814770772340756125850392527829276158266536213824214786123242175083460599028019138713875394832255325904532547168847077987434285490448158528571949571313038293967826455965177235284593794836686199020196052692513559500659845104976932579070713773074936920643471505620691912279749580739472969974429951740982147139186438251651003363280650018381186501666848089673701938973374225206689774652016539993777874497847702136809412898652563594414267705982247649102151635725849806878660003091935172552487077263311331177803464625004523976862265684755401668597104316088595139388365038997904470945294501468596234520166335937698338074807288339402447089272764222945206856906633709091548997378826659252485277683213672975401938883450182060803890115625036451512555567178779690107096817580614696764027872026128793944658431026118380612467084203953577608895427796068531271149814182168284925801363684728240832066105646590108469995734029816508798840953974447311313625307347193561075483346514235932440761088891353703581197125192241348424491418906591131968358986734154360559678121403141279787696654223235891522471172842909763663335659297159146915820856681381815265884826081116837466159430273356901562817924571348843310891313673349871920242051587522597573106464888936715172342468737577453426623609351101466024852595960537841302976585235099219110722426647817988390050818534549759574277496098078140655322485673401416147453625221692790797505901765631576846663851186605031605913368278415206903084161581518064603362977732605043914695051901365361260447141138830441694366618998075116275277930789048300974037855346295911105956260476559212544952127630128485135255040710825941933323758271324621987780661446981099925910632675702833217549982531658182090576359036066245429524458217580639646485271482394147916793080240519257395091379899048230185942963308522728997493131147689969178146246485585875570333324804879832645867737795098994291575155849895737601691490443728762940591360762256792513437879496762525843119714503332763611926301738322583623982783043129430723538110800907220140315857880031997040692733768946094191830351168487143234030301050420031536923258479292270518712388586784023642214956863898169160036858491923034583056465787827348008863030505663943279559372201031977790503853514617382545049665306501641009146158716538712213480143828327422812153660784584101008702569917301657717960382851632561842597942085568160178570739849091889587056708072718249578979833131138597907992157593515846276090536540221261368584514707554547703713350711179579059436803576252741227291935140868941656790259829348169562196677160165966239592099892100971525587825736052231828473877453326817962697975020832880428737400336683409067302726507262491882458907166341783076227435164719286639200481643569176322713222131692672752851858528949590891480342958568172835284746706836490715433457402691481221086683420781394380440229654295414651780382455232474743945944870936864091194421307532501462454593654547401222363673342005749245325741701062769112289942257162154622445342648190351571156939750525282109085331431496843602170001329114177280333629651320167964399858176636237916158861123026924466663444622951271652676561273724203049565534651000289724057906191120851364548389899227270726509973261872934136434767806259180291951201158865399305985161002769383502476869405154971065710125540165400579986061221142687048895648984962285817233886234850274292285554194073718861980177582038549991468946786597385181544590328486947938401372004999419699303439307339103899947924387643752103764586793616611704315719968507897897638959441466753227844654807483712367653261001263519793106064579586608079548645758870403310709301377044917694543543670899547458164257513357827854069145185051059030190395812889600320270446475426119248236407671251748789061698401582302479517493751241852384450727261854286919500096828853481184948747792933603005350601801061061042054066473557913795098209212890076146346007987364679691236231526740928759066275986788464008719706327014923311735848229100697116573132829001796028388690076609889372288108686079191067912412401241714756681135820329768897258668653732672745265697801213666806456677394277502638607427412897424086999358988496644693322509137267360104727816638479834960180318720965110935175322799931828459942274449137316518620071295038670799109950033825476817812218068275343960853071312899357511633229844332851421426010226210072900946880784560519088432752830837714872387327776354877723941076670452288043550182711924913491795436636848795785857700355017433459998909798989213206617728209170084296172775137740725890993292164880572488277391544783873444132657086570531592712356394276232184959226091002856315776755332230294371223237537666628173753212141849972938463104340188914119373779470275679898442827662365165078123790469751072308514625678917963808489627274301722168507675196263155084868183947660176364922650714899205535906627924786954413019229907880191645767700508804376586470853564459458797139366716483732520838374673667074319050413429962064961624655333525385632592571175369847320384691220639594218710447309321260375828979868943854317365515668210488465614289007547697608240630443313753564953531870761107190196783593378299885264886670352710515042388768274653738183642817200043993226687441426220426924208920550218865124134779261216058762236495067670446362151604136863508720438900107776808538659790517835779107596439561826073611484986255389991827383948219028912245216209853335719902481819187524621245981459600150318167041052101363785259186875208113363342424270495324297685760373770904640405011280105119503611081791256025291340318645669984422069276338833075813931920101701047543362652149721665514875747134331486060336266280187357188052272451113576072194655674417345491831315707715406163145916876261446224449999745548261849301884280115994286784564361225678449021123856233270226531754032354401573602388548802459190497069018340896607571153884691633563009441549269897208288313779247570211104336318850212223438205475549073861077183845219210982508817674939797996674897775713619379391623618680794025333948798859282323673580664506455247643910250790082022353990279514358268113680037922912300012188188673475129409894641847074572406850084100357256815635823426303320559097232811438295201049929491357009478706210780167758876115850279688734734584665780111040327936648206942329492241543312060301274563403291116545330967783917546321084547272600579659961345326756745721602293685320958324835249419547575504134803446350666577438380272274762025947321009449719437296476066613213493556166982202806533444154222008624113436148124235185511118135165238188036961985331477874984546435609134300040411309107857030679683266192341297183317548097439617210229207679439664610336857873468133918504782689617572589231990690475100590885930506253665943114839810127332372031440836120270353683178799548945970630535452352525891434964060067085808642601417800801722928035085540868776915150524079323570463792680256953262200800879137540297314644369976081005285734442080801612748349914323028224865084236860893168944592565573032016997204256735515592294297479063533432047913805089731757102203115763271916230164098530022317644798620746180963103064710804943325617956419569370783228541161963523012554779453047849265423946709073041053647839626672191184351188890356104799212532935982352988300181825653185607234583619107812878909219262435146755282687369207000469226243369011458900652168662916409333915489205078168961549208513794995270391009224100118526878337363136648251385913073313776782586818882925034418273678799099274439796459970999868986372055004566840644692948902780417105519950084336627221568536403759431866856979078513446354527889240764898690701889452639494913351772574706522154839587155542024674042230521151954799060133585969027858430121200873372333039742764822487978264677497856579143517373788696828360379922555053838652341172871611072426360213626711049811898857294481427926152274460452756156098015284948582343764302805268261955272322128317651867591762722738086845593859310196533579031060942794050254789942518009624412663933261588008489890936931498551491606941552887350513070976801430258599804217533009164676832249527794451338935324648343952343531973739259334240527498523989649222726031840660676563099556622836458911473892480435992721877648496849326716039119687777274813975721526226624871848814200308576503537881298216177818123441969781441174591750931913399338117059214986270939950794244047821817272333973639530504813754714545990312641045405921219960535468597738074118849077729693518613167568041200761772058206553278475009249570275031075433577351961160445442055101515106996282481742409480448616221524416595091699650517027724262012439467177554055325712437025262293538446554730943359793689958793332086810028306463537036970054973144844306233706919367999438484032818708492798342537057160876535830078231890766380327368949016215619460967482419767097822693469985108146773913900736216918545123235095727943660150203005425199683784841353609453566147739605066817758830418825711693969952273059771931148680803385743579585651018266295748343339511753781185287074570718979158711510944387257599379350513886631720381274378140727099733607016870857830056599754619687460687619568379091696378053505499935906967590713356963067170803762175969644808350941541496184162734599764477447510592610492533080575051147202965685008914357635378510482351293874652788611137395225176790393914674683471538803915316228249343338381333166795498987554361476829350096230302822787767255661736315973347731582674448117629993685943050263068998785451548363944491763233420999933818973979743597314291922353456370109849435998168424871933592426655063362604218014708292713094523877262504842510926991559362216000046014992595040854216141842824645930199480641167532512446707207030767546758221048106075896934792503792341499501724860819069749551107310139361086714463057845211537137290194691598748754389929738054004268889148747615873554807659095101506223535245104306977811192864400766235274049090847351071680853822083637703623750033042832673891312138861940996886412614141744590023020027709674830280405509951838372425246950161365782642631680669216795236199962441740782847623955540101618012166240611461945751611684557967042552363758064981496697373321998613386247103400954669143045205581077627693138797392142847457844267405646755573003732644126925107385423547801471181021137415328482975697920551367059228922210748890795506062613379163973416928545540107988073775594393800428632221253231832267081163755437024994516331238398615979366988764691260293715711283378636442699934479121805635435699380311122855798123933306872250544840488556891499067440658288497093296786804500734144760138177087887797304257117689108638849195669733124099193226957797191629394091256033813583396338494759559664300524647344292404750649781003743716061954611107344169883079984740033926960802411305281409514238503787746143409877167736022962233413548472480819002692619670502982194967811445535210884897170343064010226518466797255388616245379469845883444309830651838135696525677138847500855902927917878304093409638038134128095704265370796522446580762739795049637473086626612026577909320242439048739667825012344453007510492503128340648966721353863432574975646163156864796094231550743321724906574149516410599180818858614732751044406827171524810535702841737423771967395209856847025411032469779136820791453613133551021201045952237903705473557304598311472535961912791794704556422127915626270723057315177127663007223370828503569370430796695954965325179336870699942064264507934925283338268889469162460440374699830322246765850844625556725518927814273414310186670558954125482729655904790246619565728152614203890545704853021845297258840437891587302049532117588388853622177862273003644047830936112490516234269023258782129987529528174637155927272886781260162664784053048067223691879638696201216676479034893142985618991006556455206614452068506018339647439206897094427516002814613299907698067564294862905797142215872092694486171175008579828602496058727879679520832887426906465656910281091075852748264141686279705777269382275427201492498822525011192451069208346517394183030977323731177109226756420804755432578618211950998934386424351827962326410519201759846730950797112920541213242979645362213765808676883054461068506677379750870295988244206634802292363892198158961027954545013527414553755282333049015354255500107508045122967896666254299027887268210980607821634062587921657450721791226124993982464209199290721742478217503169401675822635444456653373334865271119149170147430665127813810906416543271192351904654464999605655022868196269149619000508888790699560220604558773216193444402236796603452066798762509125276350105416023748681001412754167559594434055010802702431619678754874773158094638041744440926162792723113315768681045503239463799754946107554098562890325510257113184818191378466379076076341328824886234517414794681497884340713104500563077879646063226496136482657149387636409900559016041690691136544914900373060133700758770935801421468891275425164516220734905473944741950806154874221859502641172277339315713132971450897833159335127230111118383876220350675185849671839890156709534335057102087084685549226743378969735954628782897170579929955761561210980310883674178676429168787425282332961865806746327850928982959578919484423693636824142349772654090919403995417934209331426602028145457967138343572185245282014928027475644074139320592447659284831422142609400992120377808711964767304753185318225847713503356927575421615455414153040785372702043325781977501497709539757466863421738855872940769407580183591428480486524810595519036819046550776246357654810328933957279849680595750281173749699462446950036362987946786446949675679636544316565968780545864469859481383611742953996944804342506353650881735241963308729803549368913038557997539305878704612516925108646558316730697894558895403187283540255630126109446734977113907293071918650344991127302226015330693882848612875498656841269994232325356727695985892054026162290819220995460325227550245421447707667347390017555767174187825654629135890115993262443330862287134921516663810584678384518990520922057112240389727563278398881377827702188116846508620813610671459439616304404852441017297975342223813259285878980124549220038728593549014363131859486620013721494933707705966120208339569415779794287306962872291341980949898671889837563880445119268777753090049102668665409820837519937927007099801191665807806790968715847032032624604295547010095409461623178845991405210845158134596604975221298032384863909852848734113474980568555269517605563638567581465268617798329864455852040331300755001566297326642473956221335329785524393835387405605477786261940012607534271926059092232508118354676080281602835197828165926769127737442527888803884619873254790529057390088907072831342743000404681061350879188312912919489480199335561276341734290097688815007339506676110645059557992077229464763462557695607207982240164751187621771811896475943288936797679283070242786901472618859492188534278995275533766804246283735762075080617228622130284934426916226312909174533048551000112009397593321799771530358752437842444271960825350970854209972743649288170769490249530240224730689446272285921385496579295416583296264278777909507358159947131759905010017157188912130858084831474321719506938250774938081322003203279645269019563114914111746267707474974706344551315141425245299123586211968259035033381247332172510190266857707871045690880656644958217475637455430247787537938859561792834098966671614850094507690780934393720792179178266483541062923229071022243983500515728463976378946978594158587164280122419305746421260081379348899364614130428112604232727543412683247947166846606947324490960924605169826433691021500561726531844982325630712344011306882665190084035071698303160505321126586467028808875173102568866526122258460521308109068351278144454285698444356920114651585648503465936695094692555163349205062078838372042202471594300534703342083003383669986697431535266903806222238910965050408267166395614461861585899713995769068049182443853000228460230164483656829573220834243554887372580337992742186006989055568914177446242667714569425895486296430471787123366931389598737282149546525014692486622269409710042490943067154841483624409825394488435824105945160628628821011402804713905337258714480193705966117242428021562232723928645614759949240979616457736177290327888947196941975558708181796625412389252211954073436427396312482638161195921036781410052640388176312542180846834641779569077758668861932662374544915982926789588624221930366077447180133890812076906542663717832692537056274831414440833552617900411549763812821557420953131968050369292354502370883746598675053451758260766056225820827984520489119275039171492999307763899743969719667412894057338791271341197224742925110353883158138515184409475944402265312557632159566849951229657022872370582026536464315663775392008658489306680915444087135497787361959991634701153115537675097401111586511089715747550489121614115953004806079155640523267106711131215537452504305576921370891625370505538348355858157908740929332251788552700958145892229419108169687378828103112034010362671183279785238588526842176837614343627274590881971346098761191958722733536602911130206028518192620916961751998770779645048860382955695167227453235050466235135073864913210315500694611614334570924351536524694563628804624632386118713230102969792606418401939976803131112371554227465894355187052630966265788092957187878894906035758025045069670783313216078724551811904996908760590658174525692622133231771093812642388016199995298999847483167436304088473068889776916983153352373403845802053267969928490614237620446001966418013413238030592790678044139486377980559563752674274093296953886922550316960072617628029814393197436206118601978580568479075441449925364481676880405162203730668457299302033461355392890946527334716166972005343409465555060837068687107277276185530173290054667002825545896285456882789026859394404219702245812680030464616393947224899589022668824612066367814011593050976780513179159048590480490064210086874564325992034537411871044440693855531388898716073463071651111500853132699480249049942610499597588983703382803409608896115477204924409880720303012426194400206863803458680969976065298714915859463812622984489649152041885195489357404216932657328106667503620690218881399678568111344130317006134693194058660497159197673485454417112996796554917718999938202991063114699071029370341771641994607789010252622205338301105487869492313937580045529900390911835582727600389189286815248384536258928289940138645012010102700408307232563567779761770778258847550043372065681188873996577089712706605011927633503265648561011406809278737381554789187290379620512504969469297872171927563804246658408693205353592388361218316982775205303777433372234766229054536387460477624475755514916913657467006292688434966312329442636469543250503232544533639266403696325712688083366862535240774367463002909222272482012572133908721759929861269540847478751232832699766624232030237963032892571760809018033125314293538514376903259699667547764075006086638606103525832016389115066194362725233159559553188842948371165455020137697171816270952477858040109762883576194188179252028643123115387219330261512148673210701813014481959745348770308206628271175159850883057893682242626915158369903582583442770669441574348053466542190666648196833465733973044284587618730195299456271060838165224509981027085531098942574998935243494641556017264620807668427262649804488278775236792921709244355782584193644950576589944712876028971567793869102238722800284058301945299361679251455847720498686467679826335028705997350454675216150886905546106862218651122158715088709106405349904459680534499975961146389028113536642791384410667752190961507523376280055712228221063503128762964600457702684077462111047007817339566553451418863431348246242570026497036439531492563281936898266291818223735540488974530096215152532254611239738246805259503631964460682607161865205401891906170693785214873164254175920863970511706797132997612835286925162132253062984977672801171112619822769581841243607438287141405402538624596917328234705786053963862878306614567502176327537158381018325438145182335487283224110633651375556825884461819470623722927732297565076685279690351152822421950190843785167688195160191886906551882955162482384671661793807053717258500339809471749268929835773130892615076254504494617134836427383230983782689545422520965920489479064887409922215379805568853091830399014170475077999152246551138937544855752332394565533937499327509485107370414302172269469464851656975374180753340197406397493166494796626475726784568989727192540529689200569768918196403903901970884770247960770293864363167907646765981733441263971942687393334481684935648714213305974928101864616888716638858627664203453514852909624290832847561012549915649404118437259261671481398326512340240343135904889454150944021164094474355215260725578034328433288291006155314977083842872210428168843409414720884953541350054400658680537006236855138569746235026163714482869593978121361291201559160779770229152925442922272105267007871093970627957698100320253133168042623044877822890853646585686395151330379936493056533334348417860676121456634673838445244356893183035132031975963612976476914731898503761314717268052924120731572683415143700128139454539818517464047710725406980588015664837518759894546922544914766171188035819470910791152649856873673461935076575535420274878138763741265578457152138791694027100280523021668857353236451112197012922759666791444736731642511934173396680899123306765398811448361633420708354983467544645294969694298722812376597301233231067686523543271990696505914689775276954412012007825672309593618180422561579372553939991499717536412163310707141834686644090139230566250455778249701162271733374621909910676173250700281761802645499524233292886445791011292390530684789685436806870902328813217734777701315321812346830911051652377744731493009026198515029077917948609978334276065805789677484886474257154015797255650576052581606278460663164810292738211348978004792695785389717537626925475830729072106766649517585777581142451317174453755396076677728124349700223981219400708801424437093899802621427932176998558783995717690326676582484763041685095955245113479379132899442109036937653480543568925163545230268359657381520842483794812581603607604771100025941241273934486051590390197391083384145411483841576728320896747705124191413993559511974653625861639839753962721564825165642108917581284515660971297514241578409868749358967477962404928340728306287298947276302371501300306167507613511996817995862604951373377233579870351211872570033272258287612946529381298418159134438057690736171269512730759390243223954958316717505731651044929666157469652326853938983569736911896887155144894129956192012083550820011798674601811819041965510616233174946987520342027069015519788247824918974357375624842374699442419607674632326866384649831504102154210449398445434255975475659286133540947191126257737916971920052905740623326731971104184624733540136397768792237609919974268850605259532958044141914398933635184769301922697625081637496498551511684806373980955853072351217469761638224366514262932255132588428854494026465653276201074061236305810610590692992880645193492429753742501431047091714554988324626761973995395527588524043603539455303151739857170320900688756406585521099025928526053008600621507135582492186381733177821160179268362063522493950238896049920139191798507574386011138669154390762263682167455874565457775937039406739190806993110221257110076498639797269288772472282499476231790783297679910939743756772739196529874358635797462211057206061310962239844592067707967668129357711382609433728058675966057455257237340243619300003939650843193637280105925723282301808906007338799431346259489763110833338121265015986379564878579362945539642933028327882825203146867035189972326864973009964263915306119582114302161063321687319800693669997240139291948166700508046002871056622444415222861954637660087020403598944887716194191444315608554047199536523484080801628524960005663852387373711866723285360454659675868334628204010184783751575745001127127221935158262186323973620652968976322721484650141557495311340881228156695323190673245461207929716142858360335868343577772919094303164233886989978056510991251936417995712072797444362548644156917432097318128614863313874590740071472591996831712989746586696141323500945990060311946229607380082036690952538638249510691281507244881040532383084350583156579771762686984878303714236179707061786610406589587487044564320148963972105232561700056644503378240333104035624911940873144269884514708100660272932485662702818699062510043596280469968030641417701238246042923477422103372108101402237496056820562730755671201366663011611606444436460615315501091367776264906477358151188859066626896149968409717245099731049307892263463580296655475167540615251244876497878685613107735765331075038610862720466328219816932852976665487941731257520961557337092498516782616001232196377039205266705068709275005984759237315337633602162134531423887828834041248147989901300577149763251126598046136548342973651406552529073725622323142724773324591797879503940240090654730170034576079011129509548581682465767737385069460861600730010393194438347900415483521380010326021383337955364743563831954962599733398952496402311800181276321115192436416147013530654866840887065597234788434807551166147561500790755027996711245471375831840663801609444042129379043410274249369565951056640913549368869397726771573505579435989502704995599930246056094225628531711276574818529529975871834772443574270992560679947165419286707535634645253357942247733474342498299977947257717067416497466186352928412303967586574194423295433248283583257041679895562486856427745512850969250587323322258968039953955965092202740814387203991179116828786299641414914278268195730881457275758495236871125468756869090287731089727497517256325522643558582026944850064915196970985174073928207345106210771269282246754012430083375836318961689994438398978407070200579343386979343899552234842048052722451678241857093916326379437956357964026368018176060639496453616767230614790606719786302527841375725398582350858762275487001447830448097967743210498557398670205858766838286752168353728030635132852411333250434086825865836934666286582658964741277959629836343017627071670854670008151487593205522818829649647952801568428081071517758244263549229454116530323747041144064006609361843815711105747429420471597011141720351214204394373185029266537403779216549801123836400500310101898022125221420052169225460544130656774683640217520950034511780937912941591914254406271917838472427881194319877185798158157718515538396414531447838684603346882110406615826368054004799893063882270048388388776162151031980066746713652950506799414027895879235011671549559584002734085744421049459379443327770971117381825345229448888175690877681060180003909720485212180503180981753068636543854049911862308308471463544356323748120302560673031067069386709656071841378085031603213440483522727745070791605530739565230706149778529902105330717247805551439928762207512831275410469736834352076791394607647356811812762806276110419686901724110858627405069316274499256707547563169912744366305072888049771785588250574217832889083332813305302873665428032519212711623840543792960416396154934034119082719363562643514403237028378510574915395116207555895922697335664119573026828438468673728446481103654877396868743414588357400911811829108963561573292147289906772935948839530497522173399599131151406586088728191012741462460526922315888158314922175669268920928704897684352665250057919567845349765590254091091661675699760701546820847847398433102845255200602673839571955998436779905106637571591043628470947413954606734394324006565392165514855427583233234042609969559727769165632597264920316799072161500445512545204789922103458458734049437681863222587190413694300757318050836713829043197811056219227459312331731253068464400423551970669035067987589488903976726071516922685799865078325718266850028494271235365908174168217486984102363468612716028476782426486382480019550078967205942036843536879258873606787736168407920501326652916157346525971119635462469776338973924972478659307956856367172324050542037009928197861321884218909793423008220812887381968105844785509635044931970342339090279853188147057953628098447090691342565790896491631836612212898545177145305495570201835710315103495779934325069301370298789629936308889030121483802842318457239191753879749265148172309990108826903881143968614607518106462187931329973999659070097355728914273747617773864032586063142222811142257458156889045989839197588142163468425261349475411043705328183199884460481819546618923471466041683357751055932753840892565100295495210485365358219575642483229820365794272960275151429578857225097520835229021218734986683617284582162327848531230705960191938934769619968905166211961857972676517782917780119807282025200111665316805747237697545943823690390522127020576706574682426259968933836694114763600005114324790888374110996573887487435054945547719431319912624515634302134957056786304230448492549201971624378360032798731422502529674258014924927399220535520322689024581875160920476835211944828757311727431016566283973761725552781077198113128424961382762580653501953458776034273103231518149157221686985373498338751966959210872857562785584818109615652622652569593644315049919860251312910694983503388080082843833443521198494875279335751146092062522593632016018145287608484401071137227053557616818669935422453775065050917712254069757298641239721767358584216520256941939547292175676980581620768200960181877624576429147788539866925353823982704060788056474906943821831613444042643144046242365100750054253396759869747008036106910628312953443958126608087278998695670806554396124931754441332682184752535946537883861058491896266873821409577494563365182851093987193784281615141700983091280662240315148289827500818855599562866090706565830160880796673238752567474489249946204454502729342349547227434892404416130567743920570776137973359252566277497520966610341950138302044865905402364265756925164480277516043416172016015057403637699642593118348685992623515504799596456495340274764442154737665845631978346537727161499691329742006275729995258356644084984351800841493098124955069978814125740770847970067308614239206687826769343475549930505638644814113293145741337536646013254664048193759539961318120116167394416114506005290616608619845453856689314980566768506704340974794074116352234843013257391722736067821524982905233643255069701448438902865469007469764294024081014664759904164863108924998964824283449353816037419979400740002973995658659178376461108696575703262663294032478541656544047994188138827075235489398607128330918919393017824199039599072706192727958618532249082729127888526234094205851345323055293670753982337514967624559296003625781121898263784474881833388243317849218715098409221199465846742453886369011306652282997756136810368161387590862055077370543122319235016471260729137304053533342917519403020666921798494161221131636863061775636380513237132745363507456023129832466940499871342092776106321611836164427057587210439749214620626544227134498898628390083044118549831984457137811011866687302253931653600914727638762654998097311960610852916045203485219543601775083231443719329973606659781571230013049398319914943450513286577859020515895294273002390731569554410185574087644796803178668725795626977039058404838518413413364543282234762612096790699441167853287493767975162893542347970856560979271395730572398621108398228721481897186336294143406889359228600083629396426719087692396730431231381778672361809315710572579038063505185782805623941349585944270949302197151289826339799297074736049089323666361077124906494726875678473728379796213350726343763393116275633728058435723299595822053049808232657250548352460274920435610636971227442192852691960104419581311536255551824890329895268654655188685221827568979116736747276274962065523605528387842175911780798183923631101683109879497719557038026077787069020200261171287252718804627459831290329213122592765440866531146530469692231645104645881501438438627108360952411871430853015075126850955408793017644424033101419447933392627115047777546768281619655844708107870183463095514246417741031168379559015583452979031910586281039911910602802284490088838688764356377944743186810092933540446308511453112846778908990698951906393725049644763255976621869517502443347782330909246835865836721146417322503084386114178962710805904407969043295746983578684761162420995681244758566220041284271683984405418004803872369722523179057627928631178631947931725657182346295095868256906741375821055937169238986075208744746404708540261611682765156317456545474578649818871989011013559957108070359585877045100792496187022698761090507517140045333460654025936769590897572789215696021369639371241405226426661215566530690491015586963388352975099499992231697732534036256105970424569487306276699780520121192678372237421021695282736826205826215492791495683344310772669748012717135748373254487521749498918936119485205519144459648805123927598654411725977559670460280670658731927988874188935015221727430177944951329971295601805391851713038450968122646696303006905148991214022320078909711887585775286953948213990755779094381915395900668808029320108917860686410020629108827016255198618326286704549087291285203032789461239163907675053542680850857050574560797677566847257105847547934504989924830275034523655182267714211841877169614730197538638572767702268703829172047375855044078260647966672668472170466507423017848782106751123706481349032281505635672846754737872106569972647790942968777839328880001207777768854070053860487275240011436664730899352478475151953169310320383881680916503137429739162446580400864256763142412282525355884111190257649210573295207682027609296032398845467524441873960980272904208484316669284121958282745572026105169250742187312778848143456839634865109121735347735771824769639526323206496397699819510267923336630395876386411827013971242267423031196216220762254343738721669648014485350068781135796253365322207354768383890493449461568561094768593205733130683569976944654268006673659001155197466793055512245111772033220311155927649626015257606200836203881346371144970672141265476337425579804176763780012968185445047424917825481819184503370441213345754544850452015208088477191832780991719484683056760132482573768679390515315585199265587527434147721845304228158199210645241463226334072422308320441475570904165405972357255146697159247204585350795975542989250627212605274688920101841977589933827380454256668291487813429470636926427240496752999499548643035238708043553136844257226828728681251007592116218143187945420558540642792410714340387997200590759086673561798152952858264112995276341024061277145847462486042407975339146270801766272986601032325476396702694780911175856528537568874602608282947392859274336485738029954889870311354324971829457654356651028872899650428327851814764777648788011852099966131609518566684447348365349603871994663746987783350804225215108544098831229327910750184186976227350168735191950648607278497073871326547112418620984523962297566281381355245331820911763916372534169900800891921412219651961571993064255345676655035273822015528093560075126913342027890133102192514686118412346780891422612635571525243316611044692056403320254438407604385145736077498002006276569533644724287562904750710151979065887174173647059203337762541355681134056501233308188585239470580675328006960491293347095947485672520994166805928300584753158731496123957110509542333190478478335494037346813807870408665989073783162127885618289364985093072305868625851513339571844732893573395810877536253341515179352453248683055895776733883190211784753331066953038416018932852250656027008842124570247067600913600543450906060476470422953072869549286937215957760256376307788235610456616372409434084943559376268413204723037857796196656437926726549903564820095780819277107277053739512379118164530692278994428783356030772418531650453949094353096903821399978046567528112036716800577308253022154988734542105876389710926864768957634070677808510043313190253486907033199458334067851620972256315392119528859253962703259080035667208172592759641678427392105387302773409342263229239574451405490896676383466316560146094161973976209701592022624703360435806527781276975203201217657264128013382481501437073897488329988974864645617073819997659493675923368016925079937844055428572952414305826234669321690149966680568952294943513493812645941770001237502193256556139949279680780729715958032190273370840045598600560811686442589092308346850563381738741335572757254850337536203165520000757153377874370949739164566228113979211802132423548457574496343254056362206317124790042075836123801535506232503401760739135137625774928222790996133411078775920274141384854823592535538025832682482666412085546419415808307873164106917840759586282673197166533217915321265834859850270657082455823151297638768372186645520288466627160539091599154801414198150036949783860110523641139482347801512358458828425552399849647054555802241108237567827428048974983280927546983565064116925841386443659645995880585097386962084910093827292955230031765458161413561842866681717935213502859722970007289311042078148979098561722746928333764362796812380364224543872709694573312437291119207750459300437180644175114521098920399980330093529636482542808226448857138930169414846913953886443338257509927789463170074358802108653484784478674053509643724109477395055321260662698673139447380685479107977727136078265534941008991346041422117027315818613913183276018668875147709195991948457370655676483695746778183743300546024492308471077282211754870326163955767678031735400674889162862855269482678240648410663320996347865028904415630921811388870411281468854721193674128291110131759338998271776898664472890209664068053763177512152550646526771311239671959681116841012146179236886108710639938392470339299347015365494964007468205150913682766340482772947975076228757329791998435407917551467949776309835293303755665155316452216777205222745007745575948063693354905281995004767535808502596730132495420551513402103597751976145606793817778297419337946572157935246024008637060469893599173509536751717335219895883545318488773655032871549029040103806147005329524274099408730546561933014430586223295590373361841218322461855363997628764921310143585032067715988871068703116951384022640720132021337560333034461416032250539885276488180216520560401987623340908717838304593226912138829128000829380609985143948988334185961708273333755630238573234190853964984475456640706211078081010161902478700469776432780424984808391705539298409404389806863092981899511223771349855042858915174346407216010030750053185166420620748518755856037385658838141213516545673741867229369117617324704729739078094270594421300005562553081640856071484249888919935997836793270044516466832726755529276500155989879800358322783220079601911508286547170597865431728259774801476448000997749360970328907379735160739282852064459223372148915338975662012475859578934842436232677242260580159538218602178158296353514942091041444205163445177197028865675026189930222834448828499415625104240303542295981637296018012674497907113829423405067948778937111123765864899605265055075419771980403898922431441013416361585151212541994288672116508186318081015141344525221910248803058284613195125163885604391267870518333232288014784190683522281658870132514816663079334778218359723178822697071467223921876749251196308251844064685113647148507736247621703253536186429290192588486402567637106457696335373677971282578345449478117580597673619718485599086143860114007608126574074703330009416452425715658593524650196794229122026850296968499885297224044069138052184989757807272710026915215353718358393058977185990570724763157814251379523000696369203137983201959703739003219412060855625973631715407141039775938990544500841612927426635698523161592058535467577077678650996916435108042406760867410056972103021760004785191324726120586714052642865003717942936015408398829807216543143222787424551425982796487750671550600854323653244756990932898635884792673017430043491142846801369760272886451511303262164375458810413090949356455984164536588339823314149322922681549835527272193897190673752447822434142692217176138794813917115488866536731439161666327868755978143214322495309424241782524212817764408213312660062894625648892537779909221434679825463900321951135677538771845658519531857361618003842344699292121500752211314273079263705140052745676868882013118795129740591476969046480030685520848490277650205655925612760389879378463739754684536384219963189171175069474385330036933732460525632236001468602781867813615296379108259509119929974776924332472773976760021493835763910577866912878262609795986316956117408708042114245788783792714833078271877962413109748016066559338122000760718556820915754067596599985868614775300006548689047605151745280420559181717493656989141170222181500268955103243765203451094419349650306849146131427550868224100834450511472598372311174146345906094651719640720298747652412373045577802811848738539421212159789112531122989761575073869064644930852656793373036456378225817510299541377821382976148577657748426918501637836294109444320753525987090523177700707683271507900086137130956568818956957558778279152716033581433063520638343079963312816761206237836634986082866399724318142616052150606955618012965663163300842874145949853909867093821207710326543814393231590659340943440144227505247951054857650208165918241573425159801533154064337724715376957655248026484510841154759198966000722841051495698731317984077457376859365473947257965483658932589156695737057737146417293078451919181739162771658611090847005530106557813608832727632004778358304288151947027162562354167979705289199858676752375873176590836219848984144176085789066419249778490260227528438031693821984660014330422674559901273473275314803182264101220246420935425836634435082118660090897951617588790563288897191180542362563336403805816027227352833264856771336906470420035916693975297841489256949031813572108869377226640041886753027067258019563296584652553513417293163586572981872957690738749484026208656093899824490463813985821046641844752464051453736551163943389218877520879430343427171767719561057325109116386641077875605027126571542077090603327936027086368097624277907610220928552790799893577706012298116224368764835382746536231430815120072650820929625849712166781736448674785020698085692793779759504997304216651369539283558661709647844353163243560264779236594386598733166278788050674563856650467984135741562761214038325269046212917735668651203732251054696686249610334772398567510444084319479827021703585429601366472702337400820589308227594330563651215618927645505532032504863895152768670165498691039091965169972360384501903039754501332666944425910757787996881788810217643181145116242421902780866564453837731320382736977299517940834222115143284883775556504264377761732447242865533157280497687785969854649923004369331188567607952183559509668803019700721402380664917575862672931108304529806882471123953907872981877201404790572553109235532722116714162333513634317903610762567616941528429198175846794601145620873192512673176329401637794444496773857651223324069936782100223032780281710957671012965057377455246615139249511864871650561440485945454907497810668500538386794375177393147558363077208828171345028026321248180767382980151285823221961946885696569104547614339831346457336741000987606811779571118443683005591239727586675414043774652204740746377768362797066089936528738404803509558077053778935843398648357800894757474499701751549095605155588794568830293959925493218244398727168543348445751636359207984030237821369391256296294553222108877873487436493172458356712357237291332087102633626111686625425376348109610831061835963752184683122075423699289159733365005328955428900805050679095990465680283942860566322322334518680925503327274053320741811812375343942174530632965854059137649914885072711987015696335863471992130278475417048659426282335990881546292290525560644639024345117761675105293263070947622497928119518395395965983658558495007225927937685213580058995728733806299368740913019504416877307158364334504907058375828657551579204942299000353535335649867601751370726149343945117936562717030880878574708031623092801747689610057632690393486432046279619965611361039675817950170198318147754380413366141622337523914382512000432932299682423666116444780894678877476294433179105101453202996078323566166168190092674867517419501006031978621674433183650956278667373258397659782537624782125244790262247298874549805360795862625981119397738969855492822417866319551640931441641385366694103964635446595821125393676303732512937331569944547723337197608092385359189067938915754928968660758538456374357030220309751041406397092333434883601368668820497585975131380092617906983906165502626928091376263763950824025534782575300897397746138453309800983603810307617485500598065974887001293764182082996169865310697734452799568244326604889354524196041175362735866230395220009577733799895009979464412678425160805703386362277107502759953588794547308996214556430040295789276623566702635123777652385097508410618897471482360929524132967283856666294141284261299639118965827509371005839461668740868834862874683295875708950044192689854668166021044737174058317917074575550090164849284450031839266120801172737076871359224199041666081675055234754685236548506567054018803910863403891216733239388869732090491717415384644965887325665871572633823285745634619188232957131962566587216165929511661984832948908092880035349546012183081755464663806096928293085441767003684701984595639943699736603853519820576854657111861895522816467955081364889514019740765440029562327723846314295012311995097443677263089460292548579790224246136808878254576396982990318350315169552022226847855171193309505200702660784366661395063096768471497446955839285845055103866307350378423741834061207934238333016598670770148601717694331090896153610586408248153241046700353542652253002207597048008144225623885359165040920837296779778798477919631997236244891911512488516738802380641377879408895315629256313902105071372649779588655714420758089873168740160222120872637091429327323365189151321147995665561090737027400911005527160030199294127468125094405234083156202422921536626334530664900055735638289147228128474516456692912948984665358810674125378877181435984225104941754265223463427703887193748947933633026525380715974213843929701413678552762928420505427518348601940388844022138717185019594989513065733499363649639533690339878380889522816701997330948130076215486432369451605081762349057956048722362757662886712619908858327068703848387774510370756600997616708553478269979962510483328484165544522318859646839837728434704589253980323097362609266330472683504311920037880309965896055210878532218593758868685115963400491993291873499737437330119862347637108196208041480429860993746675654944503262976011475643108369499089788786553366354134570723119171145155076559358281618076046624137542796724126786627347798219804144275447829942267630141664553278447831537104331822684688592724942979684767547093270296817768955360424254813355226736153835135756159514555740665550097085901874390424776032034206126604281359548389277085987410650328849005022006268597163164653762166130959975345823489734139356055921003926825090597464765647506222614882885019748270048484448084366839011385888797220543893412523031570788322458376149876367063428545477987781681964005414391176744491377857031977988415750898817407140478951777246795347874659803445666657209275560025467163499674455731891652571117348733232523914165142186828970024893834686301781862843681646339905004564564918169657532095479503600088843525563674600173355026992618017856839283552974528798906766787501474073465457396828061860108028195259313437399028658804379366800258735120805750714540275884827736901826974032481370479468708760442298131144046837382652009840907244453897837282341178268400340415131141461570353088743246094579610776062418709375434033992538892289653280169745468579925583619075434679226512474725252782145458896287508764814226268697538030599506806115873129795523100703306233926030991007802929749824404112301447912574969759010858097256669669617328794595837066014778551960859722265396784718221905969901145338327343686372640755063386380631934586541355775581624381341523902510365271630624834802092215696418001259273584089749439296929788698482887850096608700608339078349870635705313038745368527464287257396995984685419187834572132305755167191100045270576923629093619846900230681914421495880662553121812805951389313633638911388275277075667036003295989795625487515595648930852689218892199795987493662400709596745776778083064890431139471373263731699415377441992505387969300075564821993574971351659331301394970254295125043543810763568391976423289663424217127841698219424700463289019608498339737626711284770936737778772579256120393349911697283194876258855019031655316753181768068652371808380057604664500947349615102684002085356035574821879564875956136855703267173314984591099191539519709688990228117345208112364319477586413938640560749413723304673149013893770896108818067005451129754809406416440394466809370773019905746897408761969941135376401763120859007747944619880919966962603779713149307426380681127136849116620175004787216816586295408798096126647582854880055241615622391214319988885011254540978315804071504229080719583840682966326884006227691502726065744425549131534081731854079479870961333669348090213065553113223699709602272536139592157123706122283670771878240375710396923717337672971666196309231461917073862430138781617622420842326501248706710370751064458809074201695685100702061712249765738596017791930422207771673644990504197015853967707796289316893534116532661572233947983890057751844577354165845999320407144240822914527264268036392283310621089958648991433549698780304616683365849496079917744220458251833845055600425986678080845114331511656244398157829315284591652839468497699863537397500357509972771992114988382357861913108651246476151248670102211225688470061817470168509088889639100221432169602277428386686270864926305283281646125235066814513666933954363234981723965770486905317669906074717833468935857120747434698526134338687106487927883818126716381143060396708175183485319661473938591198119165562916851847050060743117243093412811906288403307608001552210711111752681383241500969800513270981065514963501732619745463440772469719918301159130954281080699075265730717780938824745610185336919706132921057685741969426772708419314794239541209779536078833459738905512395764873701620657833289465386353729081922153374544039249153788765033759206197206601993029049094723843336603373543332834730053381175062116249568746475099091344487662105815449833755313880795828110981413893817513866246704381400214376335529269645465160725818380740555663406067242256753343946122890839426208660357840817285090789928119433118081426764410795602208907614752534597836907821119623357636535449949635516370878768081875248314763130994291841499918825598321849894721366484261213769813183394070464071430246495092681669474664959176927597786135189516993529477856813804530247786054056646154638077344936452338984616357336369052076183513145056366804072343507349040270156058734284416340811125688267376381965247939026232518740935148269016777290861450247729623161444777093944485868727837937133042883440713678045908968603975353992000069017685347227175822620739079343325482605601071054329644514369080984577203443287574486501065764857303246213059858695726934918596529851523924103665110036098112960099338280732954741109201519532115177990861012613461230436415307105378663944826422786576738978060548500190342705972380491058599946582711792929277085720994197338276326775004489757769615696876266998034425062873961602067481434867041487365726593905205132512540073455153453508305573601460460979372010407147433185153959066803582459154073696852402442124402481584727199693852410689912497670458209474502795401735934993403214234579761039863341896747647474246306860158281943755785803965846879224197354529009273562750150715264719684288477300484257864569806485574563289791744414327357727404800678808274464657479870657069684977257335142854180812275216819759886494084281167893156158370197284111867682302947723495693327286261010615309478731868555467507469937860985147713467527415235695333516248995859810079895924906845503193661902180776304421664553767699360228583396705431193826946632789413217197354320955957932619423571489860062593058489955764207265729111431191530622239365856539089503523825723027406968873052064748481262942360864977808881294809907801126476029083140467132956515580932396327245297046975799172663301831526451153765230465201632403370668446605617474166512919412039069445157536257142373573154793404840994923425721815380526277575351613884177780847138100994335938161871617525287574680290709284627199201710259845417888346655290528731949868487655694867307701366562035887848822206814480759427920515413201095115998248569127632523551854120687326474741083780267242912734427387268510939070490693406682437948004902643003377060490646210321311348669138396163661617679310006450244809185599176494918863051540490791888080434633446084944407590530749191240308071645200318326082255997004395086990042748767713861472248383918924179279424650830078422481188014523445333764002413856917991268141671590194636818128180548751448383767356320113514020624653229015069373573162023199453505915944944319161829180964868833086105049629772503474301363837390167123136653308706769124053360058609130332355374008530414346282394896798295750485779445674577975404820397774007745123294076963323958520680322661846232915275033458342580434652287328175015526073606806848323330959298764212926444671006513943107797159861440754234458084282727238267968002172018113347853473439864317423830970501243267920774182854661937320032235493524147199334129763867852511789982540994306539918465863244318568489954764369845690229786075718975605050308397364055184406897456388096228582555853696351244439931666987108734255413906829260354014715290390833361640951896745351647140959880447082541889522397723713587048551855040612890731510994784172254329471346602909188355158111428900296246278070534477473515886786627179511634367169543584122349098864313499954053065290979708536620937586710592855911332844486438308478353506711157416323939554093584055448266963128417019491554305045045888311604873281350577711407565793433906941987048996630687626434341218648143830116316344866609318413335714465842789599772503183409316049148821080590957278031825261206010428192256956245048055768349141285445658072266868932162230637980254420481440971316620034559590078474944373926975517278537392520981588795148292692415025553888017338256855941639598695736574125627652747529004060847863439321219366836153736403564597451386224995133312730176827340539546559027368403160130696828208009744040996596830077054657378166415084335983651632155436768959628085306529751732490125869857720311983270448862498562127371115603967708008919762430303264288871963943072679371455495326666426702023128003537443026499265697392074534793401111141611394428878137330361707494065373802238370581751850873824820867520907799054924354860338168763276169342271110649774401011747198080802979942423632266182632817013746770557737563571532356002096092046108225391673121357575274556036158676007136546168585597809330126765683437321096198741430943260476449905671873300827181774067357249760383577702119993888711107876222606057240453479746073192735218723106430102002301709371087679765225158431207788846605195028368315196376803375597887036201712563118202229618647524791107282758733780241432248642286481575842158994102998540640145110661240525716948660992432268408768777776858968873152229633903938424335264463750737627915344385300185022769624160719951691475022899959100754019080223088811373598282790128838845047045158061414208876347288878721619623442443850003411463698109552943990779800496100530315360429797291599891757377218379669561386965736334390649309072162264624487416513003165960975891471746838023347739506542074763505861732402997953959223504759865287246040082766622252501844175665193018780979476006230430638475861749185688484056239114350202157205048998068985047563687773075134058842327088830877039833788911448666244830821960497651668959525930363306085278214306384357914432264015154893460332030097487031862390699362899478133007333866556586794667755863332841236534354042748625754237848582214632345970695246733954192733493247200176293238891730517873561514167261158530985847147437866284540966417963203476537906287074884603922765652785464925501652770141237257681922778698218610431743398059223512704681824557961668428720281026835965842354204072856154038458232555074235605338650499164498078454762071296392188089108074853070628706128299184324148804753487704012189762758518968203406041648316703066275947266840935593752073303073623361181051622859574968927760787955041633933357116945038791441073498545373256393508650012517086634260384049486418208436513697340906027268178296583612514662302394354491458724581542352053873690183947008572924716968811841942180957929445221441501525803994700320754678121160118197162446316898637108290359165920763913757266184876119559627017547346727929761840335233542582333989222331540646389742067484759993961603203980991538156718273524092112934965945213099486773713253469352472806945604501489159595452767858450305023042992391534980317766668474883802847823365096851560831102021044086694252873427514493498646838182250093716417580949106927809523234637971024967974995040114478568915935797909717964181669539112460470518821334092554726868205676335419930295976991452244132072638408744508143389433822360600508017850988970479980892975424495672791691492846569480350826218476569247383677677139137063592772123781406263537743628639374981815881782034764414168635700122931209486276391091294800560418511813337579883802754732872601919841586915433065675815002718553693481949606237991684435901231610300403733071336201352949856050021809930994592572338964254491891957489221713834345864416432567454516521918833867916915177269964934698074436730810549872092937969228849221980122791857207794290662301173627271724662556758171323450713223471364531199090983703652916921092120138558820017226329562850987945218760952423756099845013557777736435864432034175289860534531681606602588096450332549600082191429263214345083054477611516375151768641274417611408378544480340585181142928108250198649838346253973620483344856446895601807782783572681020733188476323474443310844024598773350657922442038679232331089209573273335083853904656424219407231120653049250011767241677593253378948868963685187342961413945998436693205711931171333509679317467810783488092321254530694242132609625137329383035709809175905186907039026811191040795274071481752757552014968872406341075767638135020721085414891443840891771604094828144741820019253123290257956323018861311253166055727539398261455127844348339855454248156630419345518740470603724793294422363087835038599129161731389947690079308816732194696567614949903431742533263412542725993564524604821565692275382317809172679451048108907052084685231921188534490926433248394083443668294819899656997294330986590045861699356872857300526416481306126309061415497609716215410473114464236979059625707045405554798922244558593901286965617894917353829323739060061877816135182943089402896345727929864962052962600122675334354737030213064496196369425551779642798635216053285315425762524178125343662730847256401221361285157513508323863233623056316957048327564775602973389278959382756207790827871852400940287619659588634625763325512783002677865544377971794616369822508904576977178378911030326121351565526994329156369192023486299985688652790176817181772727480279541915643203851847541833964877010895696794052615180099544037986814448366985472975836528845093011658067307181679920727978004341678668193636787179158708057317026293502531268214301257356516540719034666992339423023997840213690788224637335376888112985330051391367170252671448112109828158644333491595068513076145145413184283092515064688069164595891822660591337224501608247808447760264472336328961159305377590956293861714642114229749946328547756182871526980136848699871659641325270994110505682046016030991745357766684660777593112150575200524830770437816236136557464989417503758415551713551030599329221044523519945501410426510375889971002840350268387845196535396149772237303028564835408912168292317013146944442169409801733022106041777695271636501276726872161369221987609578521746667942140910200246479008617308500786318969588077922581290258336898612969508277734647781360576005658271127577235448997014380227479442523517994144236493529593988596858454290110223575899459420723684948646943870361934910075108313263032228133013604084966747731840146056021216987884098743621681016593110446233769982192276690392113669660440812345930386838830157394219637361774700615921906481771616618920035883053840016831486442433575525370990490958135818651419006038138541076513668127594674628115018065632224739697750020874451851331864205643542181922428736225314504189817385516896317572375850962915533183035873869933729922460515926019124412975369901920722037491423800513634124822899684071464558734607318602056967889003640919765793057619702184336995524402840165767950629419318130998246002506282044541003684492457724322323102249286037462351450047137118531684558575223570123386349812589500359099487317476130194106386507072718746652406877102840728166187752924149354415581663657124208154014008343589792585545205763919200105727858151233480469374865283438370757010802189219524781082551943914142526672983404533027170623719703423647675879066112757601094494877116135320872252138343158659952935512022804676432537418581535369177613385164704181547159901929434564877500390224506137127432460498996057229511107699839073266035188120049412236749780608950644984994841491539455695987164763718574254227522930645309447995705225157877317149147077603022755676019658660809421720405388449345900972552698942270032575282936337463329951526554178449657708074109655062104815493481823500839577054022750140383625491344184591266960722637864917415723947621026339126466262307208011635738280540732548077414901916032355553526155906507042527186405949135994283369388074400046490583996945067452711514635378508666378557970544087826671517800622423740131171909606538919420565209994589331417840480201734284929420780445666839758740150314971167346693788755765781819208676410436817989787521011816480976606256680448199387654952295797246418720412553224125076769837623519126276816118266821421001616694079517528529215363544846217005155334299199975386596697614646262180089856003320513384093189975235818854098685452864730467676745399017017046489592430192888749622338680649393902224378136207196263391665251259082962541763664250976918469292427662660991945034714162465145465759437555940988959548287033485851865047811048021243120871013524935055389100090008037290199784864150636817324729677525850907682826330824885949117975807816274760463569821289232338710294481248615107628514594595600905918948972687534181978736806938332660803562095988572135764752955342612490253216746876159082027490451619439108971839269537171229932733538301468184917435287500273142868314547556747879698104069487950989718095317011334481330244714977439204479197085997494387025448605705076469510285523109229139711225332017717165814811082682904106913145635230181758163308558134423932962525473196199005508499339195926590589277868124823215024796570895202589503967475275012884046597411053023942858382039508979223872544938062561203034760529458933036762812736810384164876675222348972965743596829374100803071308092574215819202579501777795897155314549040032189510031402850334631185292150386904884067858777019223509269390897169969662497693524060382034674331003139600096972668267548370314524476300494024639600196174991162783025915225988181530350595926701522779161281915720635164061691775953393004018281231572498950173093018224682912987257902302365898485417436190811573964355115421081898597330152395382345217519751856316009479787318261050413149370812284232965594273672676749567806144695854761535236777808831993952727674148168042221835729645319892122311246235071858593562819445604671291185562265478293404578945922211279041773880891416698593099242716353577398967163610013864373452732089132418734789794952099523833872904666106390178688641544098921967024809250379673776444871139991153597515107518633543866481033948185358996220870118024456628445562398002037798862808137313077324904144249422863581875930834161218052630910099702582006555259730976319877600175851965172877545802640182936066340365191033227598274028380281117740370634608930871214141897072087643334282779314117800150673129733717684042953703191842556483371738305898282523584507553352944079753614125969273341381265571344406667829889069657463874798197069284962172239162065451428272451759519203005669823514178179735258516452801077296019426233536055028052616434364781646414694455823552238063842973804998105351508307557138174671634259430390077834145804163819838364426611344634324385166678642596987653240643352193688848674814945840329279093979133214790278640857981355243240033293089172574466328810907918591017324411475449036140523931310799413282068446791771728821671042931954253737386213134087754316190868564283746186540722141515353193982762514650426968811175490951903078242710483389734683707176468434926317253625337111091256808884785793070675219007097857810174941055450500910432656936798070763631486313160327828730948273830428449128729971410656772660590482350543776532812555872359056758621082710119674016629839258394406401344971956946518219498713898305914751059042908385947946151572207909215801604381847550221939437769595213723765351377058823199904177054677348600022923026984201928458685781631817359337487823491167690337926983957978206522942384136270522293238776346280126984527242288422203483539294099071456807587524673399323575213170395638350560705794760678452147603972274298069291161599551947761661233428245068983889836786668576319020915618015699655790660637432662791340777299509372517938831228421616649171493116481192209752065240512775119240675698757454080664928114552556858409482599966159019418476595304123874120014371870796108172826713728520164220513291219294126967016484812663596593559966781753199735829626668996641252046266641129746782041709296741641425328080697903839017914576179183737858805764919582012743616500138460258244417388981259394009194534451721689713703183486271147055722685669505453399987573343852004525019420699671303564352251108757470928103958624368461136744160940231443680289263843606056540059127179478297712494551024345031513204667241736386787553081928895835619590768252814512871678606621249481839579643832267759158233423535060582107156979108393404649805975623846630659292749065915093230759291356232618361671774662324078719986284762026410526733357817544682273469435990959221316370231234225600462155789923655145355029666047980379158040799138049874641691903129797805183702847825983338754656650765887811240553456454223351430257426789147101889428998315984223658936709148190722576656254084108176286848839845934684588483345028380144263088978889204736025701076884294454395778261675566867143919370896073623633967953126936161132223166303406125104464841998716634449957442214534488212021577112894317952501232333125326397268860674807659904996356889352459173344498401302196107250716127648787467133924784597868410769459292270418202075179484872837987345311253237457171001351415821487431290522327333366293303118908300316397767550815122087606684967371761919707797244080101130184317968705542148975441895174908413044491495254758308380253640221944520559186318072010064671630532378984487960929407779624849051714976770575694187793986238764762014767578935338700201288607486076013489407517255493123735933364864989913688524245785323279067802704509937778903058094122610373866474970551564441357816007335622340299817604378095034600673983852246590658653998114163024521887927602284574311619358451841844905191541594221180631459204979583596746009220930418000433328289974263263791256784577762039979406035007038742308169583966525820919127288116580850392695397794388024857634137649864368557654199302671869180905340267922830841702797475992818865707961431941178422735672276338150969170162985393990347084052715245746027473544473451957914736482528615355136893631408379755387780836484714344946430080113546182973830885127469769495475062549279441828841480902704722607609265161132606262379089062394437246292435881750273510988470913669422254582223065511198145530105289792409907737598921397062682029478536395540733764891948236411074769890101028431526737153138186872676617215695452980263906981895336757640513780913535758139335641929396338178211304754642486617094443357102595379441629342474612343687220854309533432546006851622261495770298634627270546571156760533763201332591272921130443221067981416131207199083609159936511328612907161000700307902461283040475146473747999000485797170349888490986088084915307447933982099779235502372865536606369525258775618142691421225826737207361194675614472498013706857853320052524478409322359510232042797982024202207040896549885450138603964964107305846359293112050310935858437418060785882523481207907848978336761270185407031895117364902394810785671327032516190496410650454580098734339608924649609234919715054878608772026531875038106327673071853767971955855962210527712652334864241718366920634817916343285874379548592356625348526561657256407019253561171432694152471907155646691513215511650336131655560738922351620798318375332357015761246324872643266233780368205036689295411031263537916780896170412937139499435630819166290078142291334615816827435798294188507670371231578683805194848941128371181986208681796868032018056779183972399382667928825911683356265159975222510509937404375335432861490632788238306237470567332538987378532044233184192946269082325528499038655519310710344641977271099817626243354742257210532463849291152918214116853766285818095068787202067389977035403474413661355069315212502189322916750587157375519337463622088417021873333585922168994072332148391359394551140212724559801433808032163624695299808783411790252875950057435469527175585704456132673079787718577795862463460181561683486831006004357714751369911464274213113599375480622649572317350765722329113037473096430223305246620558557371168453769678804399357167336508227302215230306858216127947995685614089074200679121359303523128191389842070193263218880967870776434803473037629831610602265833093916559348905256453593013994341854717465527294200637173862979361647040502584737072387728470864130968250944777743164318289480451434160694655432675943444793901934580328923979208160375519585728761734088635124376425702428705304523778116359734685337684938864727484035941522531229672529172262601161587142293508187533619094220073265029922082445724261085166473274677266743731916946493354413055755400450875754431038595150091274288486333657078861605114209050031657145935717154745144346852755990892861641140447034153726942120611840507070059094066994150672145178663387975027775237116518093865467478112119866716180374643070353312668738353925312951881879233887383215368146023174402121347309902263215271887017923027889836466601283082378429372061992984691095166093013448768398197061789052680290160345053423428194046748626605547738141596727376910473360966466890593252442439816065679819353750340504437211872379205464290517176054430791613563790887048668044997746057958395981400842458023267380010202786802573616762297762298830087151828238527641399904518370968493856145717317945698594575317162487424741996008520428560377442045410621914378213669813596301894003029041856407431540163185503277649901900114712609105983643658859757880184339829982198515654365725760971260403154052499449570352225927645951228849096177483527270607580511767502704122874496436362238767026696449810061999719637811767889353821956097507602775998819735200560840387140189512743634576570955149491740888099069532306085446398332021935897799344817109629585649627137368452088365643526454235765021053456471743879906250154737507121149189424546108778222067117733176578589616799018492069795491064392315873779077652202235035320733692984028986004991057110572073996234328411823061346583756372351570340770617323261434846644223473436327408961659223893432277225857475958956514885028202509043349192318118455085991635791344059535809506737689305806465124998111156335297758560802879051303667548088624720619104910209964401647313121649594532504252730153722826488669263923270028263730100725950778089162861594219566569828816804206038122882296796348872921756217912755581450885166301844876065748071480425048477771161118482897236856401805417715954139821472400144481548077040809814729209964474323544942076945784678189569525346060515753118860489126525750857973720838952363251136990472851478494611174808798073420639225560117043947091535188167040367544052374830298823396566396907888586353617200793458075742770868820252059946790871375378068627986540856221241964097923415560531873357297059817061567706816275054362445522581345760519317253656489960019590672374372773571577401478630334943178091169414350123641498900474101360294020850599033081301909133617727554647662638840532181026933174761440524118289467531688128999697813195379835260498305488532537988473326960139195333295812006787830049650656524446426319702895538934340401612889409011230788111967690800293295119671830476560566813154795568735428397278915206819931909546451593182511591575177505535438842418639106705940348876463744498339701835245688849619256224891819913101014857056145349697163853231830026211118977058187791937788714164575701229854341882069324134383802754791739198989931311539853916115641677821856349024374323599621504821445052639005211695182477325319816912858850751989199521407179198438207504212161464640073947148377898273174754086051481498783097526918006229971063655023459142140392348006880676060211440713692959859779214522622837882471671857206054915270891197207915419929075632365495494130994451605770888601660946345110072349529492195236138423447577972752468066634253406978442151995996888766375016752661464147035635055245979336409225481585033059678258840974014949433735256675757303572238536015170578079400650234379819128333540804684239369315517362528040364617164074262178947577813684436859417629716142352927416303243981976368664852427053862622488692661002468886474531520731028791567132101836963381556798873288660929733239471699659991973125675650495579580830589932985162411098534766923715254742901238183038792855691493320276268761695487589125551825539075972523674809295266647567077233731598257992158292946778832659735322366625684511550164650853180455306269093599057415522844054059875634590385754577107162074375300974942702723878389506108311787313160641935204873468547755919426352981824641372032984185285086513601589012791478823945844218047747378704953800173206953190082566056652452548086940744117283571209748689516746446029916773608444475213416989395518944761275509572394152517959629926403428617541797625614230295865264704909525569006228821936159900701272389527776345969721356100872795804088477220216906069359765875280164885506859981304196474886160692229693574760333367883582633871015925368106145582852725105355209720513651019241323734003325940147381894015730174017490130943432904366422384288397124197774908239794745360937806660414443316221600624903681313875152283768431391649426402954247092979659016831110693974339618608596642150965007135505307130767991618040612450920465595670267301701897725584519221144328421677114581945062612136809580332819320182740546687684403965139061662081958094249021419416400243584078746981974877089082192916134406666047167016600643211796195726044138733830067539903449899347214210778373734569039197708689693649394592373894141876375460019690726858524142099264635195040141832416993852532326475237103608973809793279180482284514158648638858035680371889778780468260262795259572372108387251378009882995103464364465189954583330923923442680427609728898086655357951125030373387735574959515658449533227620271941155765503509161413788966361814423937141043231411472031917124819678576471593397246814793072652792579155014457000089563973926948996833492707732523682380555664745990461029015463191348369108536970201372227814047493300837813163661658301987383915606872705966538173091075524032354485986551408333753839637442188384745875768357106456493105556813749262534305430392911814389388484413391230604251617483665890658360942699528894578069043269409638703699382926033359107906706525527053446808657573238596399845283982932850054098021151066138694683066122842951535091363778355157013285359396074366682811186577680221955578924435936821319161241430289648020836862642523138739351945024308560441518006017169173542076884522969447326491553041281194748925027240086654083177066158800693803346735295023250272937496319058233226285019868443586860706003822117895786842029488468372210266087017025808754674619795473808575380122757933926821000089978227007215029575206928217209285519028963316324605188982113911258549334187408924199588827071316374831953595480487234322743381312398203800431253160338368780081373478479250913727121420819398999704903043055098475785288033283362388554142587254607168857765360018974376754466279941333509107080373571178247245786877745294842888988990623337301264438131128989415167647499594488020938847068815393090132634665347147816316864725908791350546127137092199084723910173871520244393928057509172899204401836396437546733921831548821761857757303775767638409327272216562873357415193148374678783167731277913674196932302798938332129867286496029017207039120508089734462299052208991330478601632845827294272197079058106334703472147341415185560917872725352896417897555647557564488304483699926419226738421682170853722489678991189011297600093572767319265227986155669659935418395094040158063810401126897398753623891309344980749054286880673917832397124754652616655244444362989329479911937359712892096352571187014133764896623523836189286768262863568761890620082273183865323923910359562882268937137539207717859551736974236784142546981924804823555349944613453435684946599208289279851391881727434461474939973004618346649925952364012266840635860109711616361219677413965371754547552220406710222948213379195624734955718105767693192129489050930953443632691662258156479290750733721054334678764780320132286599056727766336254551165747766387232059016078695948721171236870124899139995417741833824275044634897719274798635280238023436603259657177632296094340410517390663503460296564230053451351103908099991437366956612876585644543762011237203168092636727923165651023452906622703932384869851431394207061152226153933451676926792832536136294508035481291126195116217432883855115212470036972207478062572176968653729175732668846064714267494896423914064608456611334272557166866197979996930943527906294913243369520475217304409555661268017212232708623795452790347000407488330096641083299691532899982607046514056625649140442076154688310914049088072131780081026216386198753772155607581894926060824749817984780060361876332367710554074068634528096736963391067806018117161654548247841158246582174433879732183183688910349744215551778842512978898304717304136120111096800709560793813414556935942581391433408356642313193372984922638145254918408463617899782014708654883598387165131193714986162462794704026535882098874607537158260429606129932719867389107206369103926320568945430428987672339275665753540054181307517192192063615351692615680806415208944355500221414537365249897573375442505328486029516974732010540645271870529283450104689925964212704911670403626497353740731606510523236062053672316342832249374472344168302250310217336732187545097370824390878958976208486364063273070456903757580812274445577539490049496334757366787434688908732462356538198665132610236537286068880429733389996707225692062494872357533928008615403509402876591914225800570799307098466996527664538737377545447051237680862996799896388890896366833473556036775139872856085219593227235781257032988013196271775097536640182110156143073525500501217288953644379699348683005113109750101708576782375510101954783655063708898278709149540833071674714109984642381462936292737179772381230579125851922467174341195701805125487258490335985110797794614774157616830174264008182944742625173770387344454806947015597816740607875195972480834831435441761312280976984202578435164962442922681970645590017399846234407948631673920184686239758689945995643652208150143951271167780801195581353538358373783111525330691070765202812875289302886088723377290636276810171032728793690007828039907348371378195478136535935517118552473621787474341839475029409288520811196827182730774019930877145614496929493434158457616068227112061907301324338233377334167663408596946705520157037248588874808077211829607637041723937522608869573391170681279454460314104147040044340687059745640784562835051086065424849670430552317015836456385764394422599737035742274097174730056365516411943509548796497952416193015570053671510896477137869215591728905591414656788921015034863134176825201423839635166382709076431975414306210390825255684354290952554223981714657885619848526581257559350188679256548936768782701019148863829772114621191017131020678571627324990284272535190248995686959183963367906232618375320827254377379746012954236632429115995959806122175796325766146332538316143223070223687543442927578430508572095285871636253260234205330699910568217939252843591730398686658015253567594624640197060268953012630933496489481644675174935776644210093843203518653952770260000533119084304812665123176660962141976473703224937039204069463978144595485304418611205177703443344135827676117374565262697389782034090419478302868233732918216394605745422619202152254541471383311832495547520801579412103396446923101357065574912532822367559980987054340857914761333850234100328590143025364093231393184769386044342110110654617132308778237723435753200319799792386302537390941433655949779605409505097981593955387740319896506458014944111038581932608910079494533183911385229103380802705943462360766204451613466743671478076760786306369271734421121755659102203424383000505040756291814263186516204966295012837106749068270109310683858257232075431368217969309331551062572435134906682251281845089205032135471307245231321799355721845194237560138326755192378988581827830667338370003126953948813734869665963184737190840465854909735478217592126177239172179175366798569309770106973483050788734864666431847662126220575223426660351446445874491776356475606297410446887466219491411149022450215529356462416318103217831756297474016451935734497085554359466769353852026063388597438071694866524776496436611127465606519585592613912265005782359830388059334689395232475739842795730986891966641470314789886958150359654347191285904580462537220488221532324950224931764068256233228158145841805018994637669904878211787478963144502089841405969784806089496726547914995584357060250431779548731762059962441351852596718914559992270127347881231863189573203063170383219424587035067664972184145011171940298846096168586320629968926519578254174617347933120706321248907766624083105725732843187991649742262668314493815107282907391966716359718122668132051296441660221820854364509233373207557465895599265327988963751025011949851417488770598827154485978569360668285668235236375836125640451103714918285303699718085705395548705253453679508678058070635296857594730822552818677426503369770208715959467330163572607011018604064911046355912673123940686529251917045185733942199019745639352574896117919525441449117022783335896918487233135931837910028883080439712986450068048687336697808979686607139462468395311795539354597502109165326845114040366632313639666181560922122545589131317295683081096122059285200425432878328428866634272842315692898960265613084634370929166585534483485207680089383289083500660666057903290723036774007718977526810846969633028888194326658349070089866973657383510321277245982132244822082973767651234109726691501804114177540421511039181324381051988679142972606614590048594958763317057080536083087835562516794771296099773090672541304782274404656895128676023183868598809797092190834293212787744973014066203499976898706867848443325800604418802335125605903895234518062490645541021955366205719052308405085828911894222122811838757741346440414815620446402733600669115171013216313258280547601915414464684868734982887548583542573815591873115085928531331566481304427685078252809360099103018080220012795812629633336782786929952560236367556973476017669892486872572931255827284415105981254075406500926296629014419198353295779478105084028889540604981397377537116291969463190174612866732705547511584289049983659827097394479716424217335387415595863720718663144773255843576485418532694137350578172619124829450692462129666520537555797713407348767119979167028720823324612035407108005508512440674666610081407004215480001229336442121982987574063222614579389439455945866497377467603082745756427875465868938006955444648541050899251507196657045721410832434899649929892510298979170186899723236233142206427403774514760554753294602778950707006919466742788142973264189438952912081251998703187521660565474855704652685793666501296252548066728685490027759232435998461052312951972166481770599494570490041257657979046726600198537806666304867650144751007908479862748771632714099155632059942849257428604944911218423972962509989855897152951714958378808464717519649921440045011785452597484563655912108596532639011632499087896265631920995375362764594088072449969068789957215987704619941696951599553963692898096320876861156886324622054826741701659472789049789504709993635410331464220531290686709400697131250682921815517291473527416262783357149897077693259287632580971355797813719191829723901835673203593235998766847439184948762030542689337728647068940658005025488110972757959043083930344316984812985710396827455854239053112041745326782796760684418816063255036145120847348303690187485794245232263403977441815315116182163379373369116164462225716696990879687096632280408993407610590515624434141392301796854115107867607076316776215165290224239538161504781991663906427970141303576811618204788580861886834463082936473673070598064408263775523082593430476333807597951651615527195480803063696740180504512953597048932027819546452476920691078613378823542026048288732812485492887009770027265923476643976007249840495779634214090205165563130408671456909512525067987954814715717772038404680737951224018200631939240825110283394331500922858124942067762478380412909829583759313392258095277531612123798825643040904065875976304315374166151255518619920987012790791241193499827823942392382609403966559393275405107926829107724943182435550566716462303324357704175950449071229803963969229832510911949869707623038702606858029102579048718223477265719442106467220037529502636773620891152629516740299779671971105036741576665745123573288683369054195216557458798577899607548848752306443965871571943824988509401320411325513481301404189473559188598944058712688541420812433551223579322381029359070428400915952663423752202730956065854066797741240161762725478194993055161039244518468364515142460410260953436371433906593641871938550632961580416288941474549307882439004096916868956356712678235763462024788232435665364904536689055094423606081007902163994832175661219796606115670253140815289640624772629585102662796084396287003552602732002326455262180100621762565747277497246192475128956625809378229125168378602734897721661336284440490973062882252266449560843446834219935410842185057719469276496906341464288734532773612435454410178103572560090818679224743628670673006497120565730765133001017611702140433071899405672090072511974812853815602148266829029100074209329888049219397495044584160364158319448957604261896317603078030956786261555584572429650476972730005416930637128728231858033203055739112940378723821057707480153814388968997256412961205829259391126357218932485673829905551747280293533744364307765574082939571344828570720386620570874555537337036464866502801424632527599020867014608195959250599812729066853973558121410563360004870666742531972786499097518445515728210073895878081534633096751271523092599421408916086497640752651503169154383115987400441230291379213308963273884885830439763903930004054033723200748213438410030356957090874229818998410229397354744752974379309414261490730068030269882165019444222293811243600185425709350087159859251040218778321583787612003901299786954791419432618807554205649414750083806666589259623978170662175269930957165708739425522295165268288418264990567734310557111159639290213911471476602529695468533682805962397401679445758393177481979833628588756632532070613467021166229967024352508043123888127765712350204914302009106098949596404692083620156142647008248096355725760383538258675839292302633194258306510853185191946024717620679014223344315965154495840742619014133737231647751562980206425896649189130159997745795690893705491045964025090703345590136357816459905017236941609987563314826878771545896899857863076481270561944829922760967571504888922470243596628618383137658676272373829348238021377554959544645974182743143323431768422420085729926341720110821538608525293071923389466060123450018083183293596499572097847807274167661909673167629963878456755048542606344599551736971873688899464658665424817029229325776419834668825256179803342440993327997755872769569208684660330960834947121249308560213246099653188727012096980776161470929161013033387156791478334782609805513448941578086974376081674832915200871708219852092117149223213984066346896429553000763954835254088665858487897992813085227933588254396443307537278423900851958005809056326908126634804427453007389852254175243570685543649748857753749846262523853656412443350379265682260357950379126330390897272115121690474297509307917819560390862699386071089067733435363420303974251010493198265398648780247809344130245186050744474112150486114253773462474337610083443537111685785978408129377094600332602227239279797680086097127974649779919377507820888586400235524742986862960829774426892838722154871997129009882139241297904767060567540870097445473498842754153580038205692770310890253050502995571995695693509800247065015975874709048428923914379159543491799675078590181063156709630973070495448109949064454628767197592909164917809392483521285022019831357945231615038811693281882613058428325056294169792044642779670926177213575212707480028575281598069395093333853135982256246055072196869063037527578661223977087388271402911087253100019085164683832995545131111105917558061090885679835825483545776024883643392298767385373230550335612055729321249029293639626927902657648862087281345570351663462170823692999922671328458135309878582819393526655020944371821681653786799279596576496838428226477471213554494786802802374082004965316161700505232812112930822412801099936819123023124398892225190160458223978471540425703289564748175961863802358471282752136872538639537635900254397859550911754198254766760436905413446570555933995028906368363271024543514178990861131859748493527598935470674952037811943096374746788479341389544120976349944705197133690599988079277227935866681128933835119637881876356997700625746855039877889436777028595461265562063851371681365541707448915853055729127975861777009655927155827413793167577888614689208708571081539322093901397601751617634322834075704816847299485901090727506411265598969361647136790145986105850005428657074762953371838360225083656037819557339881720509792368998930538148575050293009518617614453310064366569957166409969473604142286804912438057918970495782704707533853612696728726429155624551043590501149877973324670957180136547464186435081245708111349800192797455622549268796136463551348297705494787332769786220906099445337612654040768717474974980851504511190759719476977409826633468508790819308615403986761485873420493508279812051057591096469564041318924764938565252874620837753090480649869325246426847243756819412311696874767685709621869162162366740846017232121400933509422452335272686507996554443967700403669041002246865122770956077883815986670948362715573970033034166629908880696130907643848042033817439666451474202679316183400351494196445161589167797566405424091089926302593181590693819287479840073998296520004218252796628499875990939777344644972042124077334349646309760251960089558348031065321248637259743791637990163514494878082781155715622955282257621814970675663226570219150687901885301810931293009703458775563851481960409364111283741645455081687191969186725055472407915960501875491164753335270894533961492535776254806155452813393070396521014824950662176614842793672238148569964127277841279894993633065891844654931851288532789694277759386638673566296745316084848559525519304036956084604910032264093234550048364831361104220802041965739210325425579035455168789678289588614479259876831103741588789109915290685102667309790491922707167425162610439352639056510517868495848413171103243511544550876864292980827525103431610856530701414305334132796508891621653049067663762750310775136845430352674040414646793117948679557024600974753516491128205133114468499653437101272139156747272859322362495619969480973716928126663797519861164630487033621252638379111501378261790410085468572427418706358194545907031605484117362607453330173159944529836416039852310315211945885084013799363705393073047697731560296988111716322249054736228552570951196782061444660038374813406406343199465797524076171170025328815936491796598753530010174932951014294856733028924673921130281069829809274823222712661027618287398753297003710832444937032696251403242032453984922264433228340478208253915071991148356205289954138347835700087945938595821080687756865135720448692231955147362110064051548858896158717479223817976035955489317619230005582809942966943842397777626582746658316178600770389247264130488254877982940005201655557586951384406083824562452615860367257618026182697549601485290138737109347913264764292920841278083350511525836335969835695039342396273738903402103140202326258582293393253710027831040294551026269537487966619846940179240584935926689371454799938648799135757685482341353893489824860364968492549824726447220622655277259609293576073719842508609277132203751960553918592660208543788789471126838773133307779094024814824876347249983678688501087014422675452950702016539890645054222075505000171588944550681064638076411322258015842748881363080341592937727859792225109737965314488959815757783463813733289209960111513869830464617650464093953019516310740707001525288702065924921404716185801842648837984769225356000688851450493380610026272195883370450052218000798002322350826842020578362439458457655144304946029235796645786159775854866989546601130907989644907617564286136049122199790814353548192903397933468864053354437108800027845067776047501460648185037716652247054729857243095075259193934583447798176745130492233513245545043464315863972883875968791530082310257863157878855526235794095344337397466014456031996155238296653465322893772545167805351979216684539493957545622315266233045777682668438349689512890695137234948458564291311435094490368856596821157809116267801353847870522511641450161601653509144684262446797318356877631217836743571054684236910285301574499201066340023566965182405683879032370755188420595518029324725427587616591385866590521835322778446703455180167985849094053065756915560057361074336559884513664218372965047255516648842882625389233890351696715370634649799916974641194059123838364002362601654383683381647255007330329987437560452389763603263484652882893881962626803397271988443826607881710533937835862940053809531370169842126428116313426692482553436427210642377189441194582157671927401174866250377348808982142632765811153759435521986469739014501742920932245521249271348888843913655629965265876554231445753897923087082980975331380743480950385258675639963859370263661520816326508044729061480326775305666491353855807879866714649198987570107706320788549692960547887448181311356899084913579179173259739410948259923962617817161617546967940332303217947263713958934845278697406335895074379428746655349326682518636329733039738372257576744780553717034443754028249677155715144566266524042981801506108546899065538037116355269406560125311401675171004480409126054672689754634086480793846184291470341280091314303744900947062036900000235711056747812084248670844324303865308251192299611418783330373484593432827789921103885519919510606960586585569246877078813437245576470559479858336749032894321644702831757975052579857742608241881767721725695941532501673988542783471053476382795907244984925713886575515340432267865508246140938436180106915621848407442569119786516706931879287217882877861128794952013720693583285594600443954245538650006685095156448696007922184757395298461093543964762508636491057246953506597214672809602226330410459895292258384717264939275645522710851121421103444521335272969060047272292100290125395057813637208294282919935477587867243104211142672548277801313321676741626955637142579854502559354767190466921993504109211286135296142342231026247594350807909852972978712596657625503344531666010370484588247401457916928537538466111968562726393159707573647571350610336876304417938367227390005874357729377903623184341175330229410374956305187517818388883498362119774364875365855213428501646310977132117004440771254379341605495608976638417272839904885813770838928530127967192917038663679481924601382029090364288155115816949842402695939359022159852335226139285980205539434101621848405135782656606336869003956917428977172009551699337277808373999239248973646012471436546934597572022663250894093241356255921200828633605558384873731818749569183784206054524657525896299078068692562417646551320395606794863191738383457751255026859415291237503890717981552332552829436016745385293966886331699218352974932954803902163183066508696343612344137901754443141665448794897001304485166871169264290217372570402338688186716562231592831573537114092734901994857916500247080453664356868673287841746356026969301294102364871622959227547174177314380674989707014484582584652394171484216125737889307266693814748068891962110564840988189493013392327525754115681020179532497962893845991745326465809306326188682602368917392125759291618898172701314057802534935952384542229940546668776345235181209213402811597365782713146593457692165705396173646893156286812836023277168428399569632448432146034973865510213561794360055810933275669053613745850186800194334099162598098879993775436597494854275148084189008579636945521571666950231734488736014354836764135671454663541437545897190536747100580351522109526836619644078823831060764966584211586873410838888959631276666614254637022964650857351212606253282802078807290621374656742478254088227568545403753668465614583648522158644335415730734399073571334284503397554488689137368041662036761798149517032074831232076345930922798369394263284535337874008444272677925089763947695884287186952411901785388883186719066762196586004096448368950024159074525452098730984757722653741466799979751348362522242202846140875757484958325283601258248377792850307816258122810797746120214595194942815456934342755581383424567685324362382549294388597726926442968954293091833927762255130663060694125903684693258231525985497793218370180233357019169533798803867646333208113848948465053748512746778009156500237133357640466451039181628091345306856760598121616432604154035903593072448960766378589258057048315511771343605601638342695833046593858069271323894554507034165362901439477457981565056158117337392831493056859207691611969377812570751365795987946519094370965666845018533448880969201922707106619216729380299563595389037533366681958705509438115666599629298147981887175982324445637013469731855581238645693119583467001889328683111708544824690000172148324476523709488709878845440490658933150482531975230572632930809570250928444338948926962643091207329763117585746821141843932833068207221876071841589913635552281372434370837506055812267875759625427554704911946076744134343239452585705464783181342748140660888115118760642268606863714543085792275422764899483736477250865081603871559910249920904887711103823045755848729735567169592483285847183970756959023071683539812635078560490385242465317575819128000388105406906043334333591467907269188106163717594422483321065595293250187562524426334746030480021610336325698478710614526875739056140837694576272772138918361908884498337323960814032173915496837501078282622387249786596118505060032954586762389276575303326780218309422840700726117361575195695113481605191518907267705922568755886082237147771425142772370448830407191817204127930407641195362839221793367655550257692868517681777592407338848813482868630421046786657275227855017125041750821559792985775671408685863525894894794849593231196535706582831244588826751308410615949069736033914501967409088956300014029547991124812694454835262350710827484578101050121961297590676140336809272864963964846758920160142046890628498905446397673510381933704484691029638597351285139124483874022070167894972968808529792144942262225694412288666214852475972001881218650551151119145332430830586649604895495555045454861002316123909741523230004414790226538229215078857388449199774134583983054811342243650419486858993559866244661418066399043843338886836433789567999828980067027644325087760604542161688815813790189723909352175238600305567351123371634346794177106632691526760477697919149944296708537858017424850873744234157628388571750058194304039074474443521773429055854262085317230774453604502609204171963583543566531533220100223996079945260810152842185484623512404223222839331646444534421736870671882045383520157340484505291095127669560144278691487549125932267595453961964701676058934626076586645792300225190146807309865814168356566541385485799245539302383953039963649162131025169315259322500233595764936904823732273885585734898660518855870460065390149169057574317321321601938087962974808597279215783298994570644365217589869147145939585907761700495204697698163411484139214133539184724041636062933374903886633991184511760431223245863375971529007705882401579046487525016336372144941336398059844969118465145307808345514011441828256799340241394820850654793721156709817128369967984837599412675340242747310423803218604401865455227382816656439584131346532992521299422512779924666250585547152699945801859035744311369135323791511056293254140285781055758618261647543811955252111007093202454566739836846632566703905175685815808882482071813777265274314624944520694952167576536118928136714923377400033728328756690838213734910656789212190685918085165401802476739882712087542282777835975954060680073997187248814762687352720448644507580255057872554903532075976592301957199672321128304787381672797027905271781948082042962961965588276537681580772030300949271684681719501557190678904462421936382590199508011471560261144039892974670825856574845614382163628245486510588999342786206658308457132496471773814220154622162285636643062318308394517641106082940169756134959768773784703780887687319919036660572182034012460662984282807421685694533551483830786328652835814229894563212596932974115427797595604936189048652561434629476815598399959776751456772252023036663299561728484235713401529635354879775156446134818516703100038365551438802367966619969583495257677528469153221438824364371929544765508904264739079001109082968977202787444896766156227229078095333520089124643918217228438002024359574235648434501793581889495579458557706085215126685262906458319283814180109947212439458982377024494318671159431824844029813220803495160236602255233610607147917331185278749818660476893053101874463014610538440858864314011992401128639002526140941425582778931814757002447617432754026094173605474087144796946285318503384295631740470810296429968305920674714194889910620201299256498361288667683031359584104506718553254754213675356377840538935347436427473716409759971783665833962860310958482123126625783782287491492762533251809938010996216465172925213074017260612042714958170102480234074847392335355183490438462426501075167319703248610330551018173658928293263880422064939234381422177642168923090546594069398439881087100779145451647310963844426263149347957891158758662188672935830690391327562541272986361323557946155048806484101228597920602570294237485947744600624542722624918593285031998429769488830196692990199831824842858449614263404970792819781244157155324725251343392616528807403095431187885399039479557478936063570851837087137633434404434811099690778077152124538884315256381820444443927331293759515604250149288052301345262157055935528296759926114669080437299767171391323957378203197054939918534950483847213264351213865593973222862812187622419977400594803862644007848817851139958393396888928277287114111551960880999194278702392079049018986566680650694242041271848695994701550527114801054278854495498223022857133652800449452492040034363077414442780106559658946889264756972497874535745220347036358696160487671979449661317846865125018578735545861021480791750301613743070762828457947178374121916236723636430312746533949641774129515542778340005238338626499569132192040982476335812100960516845060943922050918278025829223071621349750171318668476057390900516885138631225003473443109826432198124296841295496772306489650521750936746821556143200658640607079214300392102187344455672003660272793813283426753677067720347273816912492187038258289016727872161661601202470571249216387600827363903278359320168811891508867761964125703022359147328634905221966952257812530637637375064457639931044023573847350111408216439908645173799526696661191430751301315995532866663422048607266549544054694434913131487881308154719955052247820759151605272182645712852313627697927684617143187992124432621629512080191687738227671377872064272859911917899221131217420142416900062823215130803563224869804761224128378792444316616367772524499534630916151542099000110655930279776993495330501586264383314175330068724150501775854914028978044066914095430309819833922327065774198639047523967526164145136306005598960208395398381659225822149699618880553115874409879697721361376250334354439781637759573425749812545548501048592887481019959218965211083657604184561551983604348429561642680250633101146257380411523721742939131703878790615327167510290076510733292078149919316054096443505508847332976219834910470689613404739624962637743239915761483675022701188920711231039277240723406127354094198365583160237523307195625756356166245589917066638565375098739440726124908280289242455311818015785781566935728913191188182384684619245479778409583977918813117350838791768100289262603169507656307596424966231733103179526416254745498869313930074085683839660807622993685642910154036146258085610445051633201228603418485103359868262533491263676918082938407592884941441655874837644086559867888226958679388613356352039374146071937354409640537796963453446078181478230566443791669675140220376853587534144426354500546795097653652840658744291682544255751671763468762852764155889526703827567673591560879538032460658219330364373460002244189645963258560472757492668069082527264987308151211811593078588369920679652661286041057511764600234449321236283780180764472697030678630363839486427336002950850014133086750984061285013715292340344607471863723795316820771845084416240906545013117393759493786270266928438538159864198384190943618987867526718471033961780807804037177729572857914501199166606465716378717654879204969396732053150387339921608362267769319970930429929254103874218038930506495166458821134514530721546628244433242345945733610556304833378299462618013944889031430007744779524296238633256098981672537421432438322360293908290135473040724031228075392827991999807634999684179015697755386138705798174621201272090426998164802531535763127115344530438605049654617906349506744132767139056237804584057650324552409415129023972848147136050688839664739927013390610654983778366813314191489688133666718602743525365072228956509092445865011836512521935116471508332582682158511156715571831672405568024455004943489122058607243340487605360915159599800094613442142638659722759351386250750597401256486813634959160187160468783439105400137849409292235370015643005804082483129291642611969923698651485322538467335591555143092895301393014896590602746729227805833244839531598227637309056637516470343717753709470071246384898760050126623892910440062603128819147326248189636630292489688612723107487740323352038688979904011600670794997132112235988305152302928885613580055016129152311625706059763942958761809435769907052156340734908091253572471759157575348047126685849790678238847372577524023599782598617581685376869386286244996805764832237989827827900052321980114625159149150039187726192748301845165860530011891753120703472469146347356461673982326637518823336129162815560473327752343885998687662503503858890732902652272413044775732933453096728620817210136258796015535379863850895999612285361345415729947973887871053866695218289312530127387547106773842940023435524906004915365772947122449807533769716200300260384111535899518863467289930834026619013742194431146497494522666381394972369718712940853781840177115088766070695295803822789737416514939773304073220816896814643155674716967049288610075778097218039711939628101611634507545420774244679619514613320385055411291382605746437001301757623762480386403512030682974359047057402083406758510843845792222519663941818654152050573482143002819275065435854439376878833556964832216392012172909350893458243102381060783000113780691410819794242327219828338548807346712438100058154656806835740350279959686298994817261154236586675238048072709392968733461017561824317455413400160505918327284418519800442994304588467309129423158922234008116185228098241079483621429359619298207678973916501343126657980462414384341480076107204514655073956811332831475377055869251606264591565541992413117496690342203278755842109780083020266099196868608883157915076530844974227458771652406820779766971530837117553453962641017137493541420258125401615648982169573281030296797909746136465398355711099505488898166622939640726670306897861841661257510214637018409360583390467461475887784641359163246067485870324370940146844487701283488695925289715729952516970933713346075833840694207556067823897289801100894162164528197643183399511632069173446707487105157292857339841000496404831671668687649467756938761673908664551000296593727929855027826795533311639436130810800829648316965139153583971476292874614077790414229275704559683509524640303747180113557219647021221543052405817993737652460968584561150303394090388825965510607946315034961027043726850206658765291939293996229505924652579257290003618046228260129202209450734581688926709795448580768138448525109967751775107130014067016260358426619975808886710292232704464471077051656283897929844226496562635971925958838512088441807700191443819135804811191476017755757675658014484038298099622280463167231536043964867521193010840053564476296911424187463496228668262169098551855881266620142648090728386449787568835037952071553670631316235623460580712336918950577728545497522404234315621533810576962965533833077629991104394759879129798599401124709657379621705865707010725208331755374893847108792894461868424268811268306501927975703715151304661012362464278315468529647560495067769100570756307123589375087767488036492725113459497907544451275001694143056185067590779462033823389796220662010518187932522459474058449733711977668854565481592521359209544936989651916421559970975579622335149170677084105703333384541393700904440064482178260884174286606650276854331077485273706447317597183699027316884440604360128883752430412347083565953573112321892722361565325264072260041816617978715990949783350493072108722088672773730210528100629124817762033194012489805999059356336586584970646407121782574671697028282998352506785929288184339523426508744660405431135352758562763680076484295735992170298496748902419602029718437715490787585070428401861992701634428285502304108715837334546714994847107497634879099153587259277662239608885518242796123135628846024046254933402683262390776727519811657731965873255195630968177776814147323570199386191325025164832642257532354807789738283403247511687699783371089387299809466048297539134930868999695531412714308607288142695932364475905126028689724205518227637703219196805643602604384241925492478630715140424043110462832536847001852380641614076365497377094515148753752853244394592129414084073342465495929349258203913823548741376376877462777408620445711126607764931360268465843119508569776370429545828656029681149815768583978264241175421729961748408884173693342634612714830714964988505204997731201236510562013558639801978290119228532846432226424696275686257813471782614105900706985335424733067643562235481149681072469455668371435740299521164238133889468695347941743400149250682108881681842862045370103801284588508487473485813911290587960202102264682785359717046616393441591083460427076319808781197712365835608130645361567428764638577615852045059270786960002157530893684362444841645779742077265415463989746201372728273837338685388749291009450708235713199774942403258736781852798633287107490745300619741213295135623909465504651765228445016538303558560231676999209069221055578329170222772049370594098087594538035272268294158594032598364084824850540837667821737121053832201943024259732155596512072762145399812778755766198964543025443667681672422221766177379573350844720638142829321995448946253947983755905358012124321997454551277471165738341077933919134443427198273238500729854557598509171810204932766818219686862370800606330342400939062956769246010330206476546493150164379541869887471786837141106299232106102668297225588716092556858659144116825826222250494162607702461921510119271545121265840198384832428888801856286849101059618650120601880951924788022773665725353872309539181385061035243843624726159420798788436741948537594153278817520507604863055670783059635259984353323168364099397901299623296720366156002069067389482319553630501164689471641993855163749732458816110099738469368245545456710604993703452982849137132721261945326357705867742807197685168367152465113217102042790299209866758325424546580163199650472103061044920386316065881947459467361851983350003423550961368096598022328066160531200861666870052491106460835359700166204595946795231258895105396334303959599660953185655461838791868599152127350562804398377114147293210165017527713430031939564653145402917315594948621996708084684656773071439777562878558278691368155007023322548579164086527540819125205121821580723224777038821784014902638210462164574072195935221543895080160594936776557167784380241442528815538044148945706346750427903678513118681281652816730304901961628692129861205190434830786508091894608038352304940282134956841448210847200865626941877661750229569992251055179345281455010079735549829151350024994447985251683121321401737714276256528559429728830881649608006391488382688199317259687330091964909206123485306181496399365681942874795176546171086889738675758558101513987961535749825955902645027444499152212238095280018086513436393991657390314447225551784903652583367148798994006123121186666420292927110427756176091045469454961558257125331185588637674534644013312220610583586446545739179286835356225137514232351686943892600219357101996875756873899130850606421989710827529285146758050246078487112925031903723526166092583411648589243518904652640263789190466081158308137067893390803993863810486093349243304604134244040994019739385484370062488380840589423865992615439109681514669278198992516882614396818931662430954979660644571941290802123353804405630921203925679605952996132638805222809300032546858585609829901474077742358991134147335594798870754122579166745879915810481000583812426089361905134961303107099743055683815890279598287323814046385660597299534870985391988882754614859233673051909694677498250098860345137010766120019165139603306502634248811742397776003756256960265652151140024652394887709942700065744425345148759990610847486121545852185781294764003171723576186247800084482394522102031512644657917742304673629231200376230356492743293337950491179996416728034487977509989870363301423631292060138637437907889756824525140734593147336760084460481152444737752658893944171736858148953715114675695434765223036714277140620570438469493486323360213515959725832103499404943061759579197393246851627236674050372664644998888055765565873285220879643741761317120891856280643622767704406148888964045482675107567797236332539106686140232695231241219944290487879064936250705131046516196583509636836262755470269431020947898223701658792093134136439031772572367254838066475371351878600189781251025429652161597732374959268090350185685776674837495494333540051618343041380258405814156797265440914404424045848248642916880348331030700649525229857887208428988634452904527999445039940442409794851899165068617298731416370212628764103070554711543002489739179423129120373854320301558687497746859214548981796126851120798105004287509114604864931035208732470184702248823988242178961856860610374018110611787844943440092240775920761480011075941222404214418486615710376269289778698990942016348985353281915200834345745337291601358171047026302917912107532048387697771079198699673821974466884584466938368926613996197165872378384445265122675878322886509114636750875814592628560652113625820315323314265871818121238032976373533395221150448304583197348798719153301778317802654693608162842086764068026154873599477368995089429993961591540787230748431001419510495945942075423048339967965242158556506749474388133185930519436300060353774064943853460810012700418544056366997515656724798365120332682163949419765312679205348007652267734183077810683556295719263816461383447121372893449829556337047042541091728740106271596612918190354134441315159318634030688385165093297438843102538382648143627162514240181914817504445954336015563561450634067541642518550932863201137060525814947337857816079419768350937392974679584142674590110984955371722764897633903674048968950446102566342974357918634490380794922525696651250398631062921336696884229733696031327970792185583099938472216114659097523785494257136276593178151894545811945381539572340130887277828516720916826275131880567081709917050693969121983343592183256159395001296348623428400308335719146159362118209581372182991389873100035282513642847584729401875537860148342511523006278389942916428332505848288810114556891659864255037943579524284339787995605201894008155770326973311150685305547814745389218150387061625430944277881177503112983427310460335418784997934462149195704043410540700044993201907754012396288414081488163432119100456174598399702460790171134516824818038592759732020098590454062223673417372184322613144601270824090898886276796359184587362379184413316803955044430893087315456781224891239977690157676445276367677858338360869027447703994680318074405864683439289653115319336825684975571209566461041117601555168915404469537409672756716318562617796803045696711644220072105649767505399197706500661791852899490285524530145424900508884538466718094794424522812400217711203276307895382601699111960269072151690935181184784905204746068258406493032040347822493816325065931995547076427446895957503133452232524433709652642825047761034095199401686341660084746763827065963489820823725623474492624589353571167050858476465962195746394699708866789027084194976477204110609548730489920863756467011543066936165653380030638050273699647535507047777753187834367060036716341524006228411554995958370623077474297525765225410194687174444148013218707028446991441960980542346825085314137040300156907130833370338564678943768787284176997313858210162618015847969290877715011055831916247800695814522419387379649913559637875284143469858449216699980514271232718439272169307218527716425904492326729235490873081000480342343209019153927972424133570628665903214980227022778945645094413294376101352290520568538034179519582440471325930786257193131853369121001118035058166392523063273527463395472261424745391473968205328159890697451649949409059505715984864485728038321710827856401870926485147243647667193969240718457086209232809534792637856119957902559495809048846300604972029695117638368845734398778819787622325728858757045006765817156771834629200162029990085939199387985261554946217857218758062708014633541598187908300472902266304561261107457949638566560014612184001995380379766913375451987288808159642834948027436263323507055307310852289405733578765260354444681883318943636322134172088457385718522675464938462429370399786132141092380111869529423443559645627824691986789855080920284405365381394838840093039812193013899071994293599052982012075278961033100095839716958957520192950481001067760453739031631972371350072021020002166041400174829952693345773940605001842091618436596597714206122525324993905968707229668406915070403617987894638992740937918142481081482595522667623817885400470432664799085162060263537809679478574499034722865972461965164366556083831881053654551408213473639377832277500538607864527594013190647226990332134531881093929752688190583598934638271059895169042490526283752994989043206877546398377987698419079391475713569059940647912618644585562742081665598860922454319356092868165480265980410330289481403157395402825738447322162910095872419026849124118841302990220883893353485417626379252292480575940403097181523040118137337135203468515219689562910043037540413830868087830777115212456452284374968847072980784440652327777998120616697318673951561016585250224376526828732072995860384675438206793700777211543977015729242706737119885338671323159196451546064934735662470292562654177713044902348902667106522616527182011068601212688903208627868646611983088953062122455690771484591178202315145878280523293777862649015162274926098594588155607020063352172657768219590234624384983522891979196179817447296247020065568711955335519516329310114068070447575681060128567467381196536920126883673352487405428881753376387770480123011566458481450827992758758608211288351607003359045401707380677866874642159612019108792227223277358571128315120800101738218940931817613572403066933817860391598864639279899972312564826427761909241517764050956843935464406683916798921890841430998513294334936180193155953011002646096445490927205006408507112925224718013468908926154007347688732368868607084339412794356134475640833628420751543401789027967583047988176447836006803873660527733988555709690854063808214510638677622600972843518552999721751456823596425102236220935798793695159862724090005806323199338607779129131491622037100813188057855075899838602542649347900347707108569784088061794543827060894058336766260730045781213943185334388456610224668959059650119350076078753829472405627831237782757162787216852149232305378353008984951617196414190387144669266445338274116887806434663833602056047652515910852867031882644903245521212236798273295872308184818994488225279267290805240013462208643305720193623936035978649526296754913966652398165462763480818571562131140142097488390499691089666436047464731413714309280823143796315462127355056365188515847222183072005997850652471598955811157936207409079345797752346362961226266711644329647003130348291189292214147136574860334460892559816256278393019195905696831810845115886281308900652577287797010863164100754181765787730114358233470383702049292938873505359424773474018034859470847585484987196002711901279836262989714834765689742457843860028519662615612307550348274195028432798555113887826346673033802638744869107826659825076077638422465575176832877451747473853042499729210050418018251887547730438163102649646703560826686198094318246515127650048542843869644168193266771281117054413391046072680993556152392206534465047884140173567880258636816815378356242076514043715763684531347153566112320821162488954547828195878190666156260316269510672237970948567948998084949024926431027339166977973690957919400402495997103704833329088189417624263110627932478076665704473256015292645544064273320071848649858139043088687232768982557706394896697033842306234863703107063991153941286449555000612168465269964748029576688643359367126162931489016367466397797880164973361361653483621124137119243632682686576308377562370005034680597581106145477131180154824538011835852427317060805439791503038376381938364283110519392107393220791121058328117825250900599461729588737107365327108093311788882185312134632438174841652754884487460923205043312197881649951462094749113041613371726291826348839641562422237441435965381923277024827429788140714255756944820190992853621681809762381950488528198385441007202822896486172240142912840266456501900361967818152321630926200817426902202035029558713448809892450384860505359185006626911939995176879075861556556717930217392981480938144840791577447603324304731558287832988500075804777523451142610116573274769407989119627192876563908262679733501471894696611091994354758504153116201575727172796420292784910014944322140968810715240580236802713777904389196710456894066612429344296255559380863502841295051761738947912482314462432081068385239567367898954499968188055475134675894624862933106650603089862011801591069612754738391134662321006489893219831335157564554388533405093021787804074941039976583992288708156451659033489828966151012125596407132835725407266881886658533438740926297784226953121713803696610964359175797921749634970724746352560655834996458052406249967165069550575671941536875902380384601495800398172913893853911385737419100753563917242932061449379025590373824845520236150448670466129817907332921720178042167460237471193439488243802176018435753708158430222370832911355751711544362718904815042645664866141887554086374433462219895658470012190612086038808654323504149667228076828617280823879450041974426791640771334435399664657539277263019784484939685292502600330130939924498886960144305555212297150244135228432924216151453041020698950844314615564407149340680024255410369800193972150007038459339694279424709616925414293700565788015311313228538289633428383875813354138781887532921457787129230357257989837009016393670728865741280514520060894343656114547254186307471194457537003695607222276541548172442260496357749443692657509210216302196147328241002955655569400660838666817356382551121344451323395253863869982141847556453521006516091446729293677077249156229219950899170866932986016966194053276208561306111209877292216131597149767571154385917426728962336048292928410062177381901700002348390103766506234988612045007414464942983998521883361126586849382581082322466922547161548965494417228200677428477253310342709151650629621498073312411226035604837798446470211979835747210135130625212063713499333752693688468878632645324821362178956360763393552218699505351991877007442189225963834590630640650002091456292731659958746180720584545590082512696538528048209333847953682190871135585199763727999165474373936216502356538791511473707489348946921178564742910341863000074111192800810965059797730829245245032028774471063232027067670589783160057679108201649707328358200850358620093388895171447828228253778762823252195200146401184072170152461717026924761230950642090240015920472369728710267153235007999595086996202336178163269059869721640236032267094957846252539574361601124766465588855456436525999792760854902038700437691768684339027899107510078421175232744484686456500552020025844345718158682853220343355052682344620030969032960788508072758378994235018297930256284396442644029287687649848823116200989644641156856855052042172874070477525312467211189058625435568533643751603748478040734528173489316245997626799575362085152261572170664347585484534829142400253586261403472793054734466475148258285312493003531473950553974841478390478728250551313783309381705428595469497202187201554342118279517627959642253832398672258012072848704454197423495518335357648412753529802259191357333216644000729144848781025085623474776638024776449902901372414387974628424142593824468671495335387923342046707005301118995715455576635284079502923827909994575259288480519725074143587062020677603303065911392912243197356113917763904734263793138967676370685986871038294890622013146394793564121550567194330430579005683177259859366762294061348356108403058084179886014940072063452038088492200457794671405570996082972798071213667374956808688303380039041535381378338820428531614980473510568236051722408153419301212021648798873060078884180552859937061537749548329579978869694648562604173968360618114250104948420145357315233128328302738894787487287196706055764322881148791920090535776892916661908966876303069593298662804292860395253798440460828063830613903204650874397553009460599979184894530636274116795195759237489695791628736340465308200283657919197307168771213823994204966806219256656336107695356835826273878915677830768236272287915887291428620966450526436884343346400940182224879818707686797386338261445916207885448763675771377499818190491887614511416057522363724999061306165034200188519927773086907811432983532374527014228727954806033656263054465682583834055304865651941983510750958636602282243530904581224512981021654954439861156416903448165339407471079204544820894414291937378662506221279903084989264526517527754886456494557942570290436998772999210007316532686230259923839830323068929890324252739637260602911549346913903101235413551786141161838246820002695477684033679463591273933192918162484106583222321141609298367699083679875023645399399900342427442350395008209522411130963522204060441380104565923953768812754918905997234161945208157631987988095913756290434712514044724933685403756646346261681988834249673356710450385645603151667313879620778335909146448886079716104181187456928686024394920750774014873883550519469002308818963229353321817358337509554317049751466595821182755229432309607946877935127098613717662250164132003893011058411921081722674371221716145001871488818984726641705996134868496458903349492781463643395755047263691779745032645017038237016194383863138392991948033342892245077957303901765850396149056005554956956330331239811236296984377650760189579782077070594634026921919509791057245240300762200135906080557436646864887895827196248516156259358005960230329758773741891547080096833439157093719552124264961531237964969738131238923893041625264371758947911850295755502427367104201918572001492913480591935573009724791357608636327468366467805290393341021302209951002439736290849788652043814165728823460850563429731662498103467724288881611698545817241569995562542499688528443240358024349541487688236008913349924794590004730573826685159242958703465106086318017235161473824310896687265955707223474736210355169844621073186248330268722769106322995092254189825331261003646024714561831480721648466124730263157310091431574651231516868845494236295251676697550383103664156879020486591914486152404030092891299904957197759134754725143203018660664879595601710846438546465551666764806686337265747069576973701109680021711375479201269547680071936134329638421893499962193953437225930174181391599911357567682692855359893265274200412526520166396148882595851030151078770081527427145741491725671754254072945080892539280067967162201552347369765029699192161498061102569164587257507021100397401590316523675428024947451490370683978181844854094568677415911605223007007360173156325730233669579589310328995535898925260078923325194170597108785606187302130641831792879220330691929094252122531916778932899666114623738467704989119276288345634209646228018170360118600806476087737433426863950910484699479264553601738456194109353415222965479314320396358086905720277265608483513354693342869073173071023367630386259648929292587027289087602422358510489553470758973523489084895492791015540894073690534630166050345748945387685987235088523928901910109546063715274724121244806765943083157694845247875964803227008344595406404422928776859022329718537190809502626374016816832484107976565088915042974481376454970705033025910807237455399958815018844230440703394553414245913000546351095861695621326856861644349737041042007640942825765414181225381648313038795058911427588178035293827371781967769889423998672161894437894406079535408867312455278239333446054166927314474888227329037085758721985591898158400325552031855060270941350017857088305939578014008215409420256742101236991877372448092142904149522396347961974344282013792117988642509332816213309404663813921909897230540190577903231541408193394334710271376608962370808099712313287509651290935469605770804995124500824762989260579353006788997463590461897161922252170394092141896037211017418689870761662558652147072772483692264222074833980787949463265660067734320608844994069132646272496650250970682973065317863340601562402138167107908094242989259991662322237797133087355840624276343450572428085720889724816025717670070993778503930462221412359972917915235487086272003630245214472212190918202875126153642957785303932147824982258182271802956018728745557094514235643464416380710677182346454346203677748038455043482496366772278144705126100275393166670253249381263184604648996628758478693949093427584028135557617784194884632406327970957120641245922745442387341406511498373377569318731364094564292892980133550350749066182528014613150535867393936472828182608183990129859976216427368986887120805753579031799321801872728160413553427128047655278174643345836393695474056116020643170998226750268073423485340735483118689377768337291333975135047551626390815764551625364213136905455992634957426256407450285635971618403335308661056147954674807686531560752760645033671253057189682109024475241576251295884889526120861729400740380389445338051381154962272107948128632447934161984893358490060554861354634410655806322727081471578934961020426372124310844175739031660067713363312543514198161424681566187189784304207287563573780101935528104596272186230956329372072556568954778125106465997408137134583493154754203739413352379203268840818024900437507626281361642390055059618794427522851593926471405000054684248002735390491045366348819571636654511321573697705740638873790301253865651280614380491588540758112908560428234316723060919783756876446196402458187266799362410751832425103297777997708958145635446877603443907969633317447009486234405297913663955428151835281576149332017412209207933899716229177941323141406172400245091407152455149070595865077425223291215180874216745096642103915287369866840350934722907067872834551582816551803346587231613838808102481666414192301404778750248720802828429120737670053184191605782226208205894340780346315686782412717937011391497516205455558441753004047488577265226546626110472293985088826800421750744948036204738020463053630750545136893348449763856038020641363038539189256002014443932865358066996543727262450623802145734896946831635350030251004239786116561882548615639833968463282949367088464782956834019945479531830535875831094742359106641012131522867735632905145055120420578890620413519201297971427938467520119853384983953812035200691488482779217472293287249905441661298334537269796769124971888880018184873370299053684361163924676386207643835091612958100661077352122060683925982294422379071521201871214417799733809423834167092877265699305640817796237202839255838740066791508413070357226392830931057657481403675870244201533781234031897434042420292126226429316676351539838731407035587368463668636289209586496830834715490401765845656708665069983093477745667226871042152682573135914333065412862907009715129738465264269938032777156408611791249682692503378520557817351794693183057563886654323941582076437351852494704036957408513116707547596014312951426784022667706336323529222011938191268528982188123529533255863279784798042885815878140964420325010755095930982237506568021792747512449305057930535183307237059359021419835032927234187655817077148532607387364789021168125643633043020012247508366271477303547625778982832459115021898279567614932474655208484954690169336231874918273511163296776653446389444984296216051761197484753931910109040461670896199130933128991584589358235211489149261945218192341618557032245134053793042367301271778811875693468793826631789781723568179293657976645076265718491092393396291436952463625381810319127368190420085520842665008280996296644540714365801812154410075523159472360823543767418217333628912514828695018299826472895108744848557520882729637890051544877331061147289920735675817110050994524545546218193559500720970522239089839025303907027370635075253252728158292547812663287027752129621390241326808698482637260782982749091709182268708882485588426813640292638169468774996776623830759810167292030746550508021131948351517233067026087662526905600732509610149329426410797162708121866730904261901249176248017770543716017795161618281520361151456274615220379802866882727655151903690294271127586460502285965726778265860865753918471556539516933002447165630196764063708393964096619463036165437800176186197102881053032688267106084460589656023026222961144849417104445040784905543569873882219125005386506778906536802286663885846282984778198761235117274673081142301095736387045800219375678629408773499511052667645494758510484898532639459253913689629083695799996427726317707440071879245679291651633886392736156263821641196539434833596675418044173902818210747283168423571416804294447607645036684367699539941004463584315019815456985860515032660493325657647664699455181474733246457420269767308030425559283191733937363307463799580434700790271622443194041557591231863678481754471089203303538064730343004769375311838505299930528749227730864658531618285137986426878112765987846180997507119432176547117673848721955293301824040997305985099215657511898212442685389695759230543407164556135219893363316613203424679799943574030280534725658472999152258782917809181493764128966400664422989867645855203292801134754226154796778361694312814667023194921863242953201406023739857208761046013848630309085383558689353176620840740556288261571691441867329506140108598981803098018987299661108742977423236491554532432903083644233154035565005688434002502664135613028337144443482479200934022293046289205913273691091502570360481999824102877849339206176789688210136877555913044436004089184439861998518064382029784322069318686956525919923143600612058256836418389943543151907229678364287929480338955428064368414134313795824246684303409905495034195939951776025237174717462295659023428656112653655901496146819172777051168597340057793378389917935380864547235470190228581314528253602816413573048005011085996912728544101981080168948805572628972176402805864916992341041788008089618996501138849203441198012747623736190509039187218332456033746308179841170781810882536931874378285126295803404242677703801334516965348560919584314924648763401174584515069575737334949027736068323081048696203363587851674253405101049223069354935220120622083653482008636952985388235048762368750903018453217526513591996614102609465197032603282905291596274645015826604618204153090110959897254942193662013617473607833150315771912600094057911617957497890634847134848169963608971627954027489865618781412294968101951382389566843244053809645123893947393069472557866703451345095668365397589953265620798221593794832224682234206118688235383234673124701076436188355777440112599380235408125538213311065127128443437307032013395015629900391564684953415916841103924619031710999646650615575940370309279177908477925733981143492918619243856386356599743985903684611977074421640246955241221203844918700948518034700153000247872958187988558355463643826479284498967768378495275796988214454495146417893114183526602532730934376817421643337116059074535381070357143476874246757967613372472603227104003106911194457920366246838016809643350186889668412116162281751285197958260659546813270955056684548147876355044535938315618081308057853337738130165568138690142642085926373731107645480568236827714652407663263967434435335006124773805905330678537469756484411783287807354690214531398387762721243565665150273395142305131053845566465668713183888036700868146717073304161423040935691633133045140758864438333233804588415695827606046016944148460415032034853336546289942790801815766837397437365551960465939094608813547022725161045275921456502423523551669036087489453706897385234556555429185506730384524440546858128229567916518536120546134421898048508962893919393240454409012256490238907709720258411522873309644909524151125312732460748091784237000171896253139567113546685766401447837345128393170535983377590737062046151229888844665512414838008174095626846664420198601027731448334493408501315168652588299486539185536255492434884183355422580297929368651784826841613680203321774950325847177955561076751144966700483885266504441291957853501556435645438555797996772034558202989220334710471778212414764598164850082739462258769208544040523633912913738777930223505946719167838645302975915571083676685825833089042404455283396798350800056498052059565944761182414037761910581571636220737784863306103128923771810132642956526353949809940655158186554626721205743660966845135903332421576102034222384132125152349046867589088831648623337690791457186830869053946582473596690888089839606290362079647560820630917675450091687139143355625470869836661728469631205385449471243585787436715994383115491082387260671230976816588820640074497436635182325490013373959906286002921662130584524655750842702876520399351774393496583724724067098171385246603155546463410946571699156705736473681782620934264043673917465677020752761739320186083255779246722509202394137949727704671716381423689497532990455136923861578424905479717523652202726851743265426749870874240053211380261634087343638176308668968236772863094503550828576697130492012135157227708714273096382791083038892833982388881739177758038455081406696847383239208753344489023871899593581984511336207856872877613173716759913549645306142093204759605490769889045666838520497168007659958688222245690360484212106180094215176138864966822905480357802781073142280270264201884176211816509528278966781777268647159106067809315848303437429441768536845506394621299640232020436541104896128603975435805337665528411433842295554209659607780739480241370610102870395556298280073905466170277424308315493721078645448588209384985761449548181433718750109178961059212011108478462474631322959182349912786056698496780768736956960812128063530004385977587800655542360151467284844381849300950475419248252042332380879162775668054751806077900771203341686941209747775447594209855942927149629303718040826094906014762097390664643118556933466218923203549074703354731568212820016505867754457381608732156095377151700845723714795371861459056105044170323951098258085447782347996835954673269116843263500737583891322128284000377647727724169257572975908278416582967089926526437055354334056217116201849695478753452692217088897005313649820878946967319236679336184330031172413333752347155688691315984898656210649480514409293474180897252023418383206859417274299568312381677292328435365718768258054062838311925151382424324813058516306040854402123649984495826999586491053381264544531141531300589843874263864260198618604371923305524914772954403821906955554141666379026976597116625817421646410234455448476272030025786410842721802961632900052051460833529997417676963373241563672524980785342977524177179160480781254573092875368176471960191051752069547773430930912692712503777440335170043774884914177958409747618556516573016791445075085432146595629738427632305552576662968299180759933396882155010136517707463486352557441771050057636265668423436952663493950816984042028362003731549995065903958617141478961979166089264647106375093291143028407603456991323147802810827354372415295681766353064263398203862046764305529981656549504870351261901907458347428125590511750706147323505291713243110048975912279211514680657009012998607126875882266817160242551599627931111063006823949669533071139407881182134609289134122926954581248671390323187611352512815430087993489615704245705326259979972251683089256369406851735117063462407862029449185393384266215120600084298911800405026968741466233008004878690858051704398269027672544213834546441512366437275196172389751024390420771267689831027056653781807017731587479564297056993783084148524210544564333614913720185359125839420122298666389728312825874907480895622061094894254757299604768517389002317055403877653444594375563910861718812417076902024710619931789553644502199983562706276051679108695383790886057308776193813067416961284073320544238976119689174211507282931737838363977455417589415157969640581309673542284217666535432633216058227229235634111054354819430706982126116691446573112558127414173154738301432417591555762989210337609419788817268060177042881346202137697294084950748918932173083447415275465162739470619321656857638484780805790037160712780996284248360990847069953237099005277748825604202570323095457903621842704095201776096106045225406439942017914972680435856800160007476983636147762647105819684002768466716790952744316258053392312930525549481522543882188607895239462878782488968883015132317027297869446665434584627246939321159655737047275999992143144872685695572836664100326765516974548931698134912134617330054980940617301710492373780035772019393083317778133465255993014551059107215807791712215499174440355167962112839279658772662776204804997670441541077222511317448554904554398165488183018972817171542229115930475011556779749387434526261101727539706982466941417701821588208259503711817393697989882862801751500277699875001557099236507683988324074909761099638181555375153385368433873199713443379170045763234334086359762468035543321578908543300179205350165721763032427536585037345191284524471193962814459118069102621288869875417909337190196381817292297314463804852586240593988820949391268774337131536220012122524966903866832712676204198071131318745354370505045066269413071393354395322853554608081244965038692479648709402099652829133273692933786549373951950199924700658935477349248494727950545283584181793231232954266984381446408593966981695534318844062371378675633038036667685143299347633692622833420353612862938537582341282323119967774817894349140234192564801182261091631958707874648882214524105889868818719140874354816242564146567444701058594304313671838034423342006322227678257815345719078973828849574577575721836591360260147478581048999989875741826449629769157178861223479412198818114807297889557003497127288771510945379668277848880503930743852817592284441387033293447487730996490653130332242904956734900822840844118450473501180673318944372891197339688658742945821763383496138376664138141661926673429328232110432083129419289082719590026775289600406162661254434079721195896452856188906220471160598483349776325557821200846296626488043867508876569719326938000115652515323936983370373318726965712391650533621712565534770390368696480418435030622397976913017537489309011843080050980931282661172931389758449865234602790579496933627095904257924923728602408889058092668324199752169333020756844025448368414465154954727054261170995877540584351972711455923792803127435242987150181718984988965348947178828613424170436610903539808939095450683001260905670740812699501253133441541966576004731197002152333283715057925777086316555844913675006415315973790080275632057251329740298628728385964570133785321274745112116126083833566723577271566460454910613376852355402984444800739026578230742856221330529577308621422947663047743325650898822149375480267105239590515309821071704799636930031009010616613884543858599450766511284130548456849948862697292483906073507665490248658819090012873468423658014839980107732130471001641867509236339819687665642345443072127570797372593612884754311969752338249262106703754581139172101428578922503109580443404623388441730420032828637494638706996613341269303950681273510638048590915786019282186637387563035642181345773332791671598053606980872258795092536441724857308364479996369093640585259826787899006282980842120156876930508546017935092652180192716194868510726670453186509453728533820562642616642716352163926659694658726609908045241334211356304392233095804048203760521745170896343035367252774781156113113881627901659679464209563157455034258008688238761897059783482954948963138551889464276552763254010762241105665843439343563651771161059026501960493004906554899439971171447500229762912706270274424012522875885356175329039220078020996989628295876022251677175119414861416343348183519823623887053024166829185212043105727252487642417314664286791860916465105559263025111528570760802948174252514311452285850086526505567447164197359602153814556909086228392480007049671294429581223238527560653547600119546181149472888701021570148819947839713566230895631504524964608015863705958348877014513435202328078228427971757766683443973676671261211151708381957259510283821394441793633331296852771731567939268675050686025320144370890917460225772485233859631010720919540391845243292276743117653113380123471770889900027284782971904052478681801412392287131718360784306863377691198633572059423406072309493837932029141702356900418816320526915126774634923871403979584382564240674139437557819934721867974074897002234554976426897330787910531313614542363137303933085996885484278940628834394230159069207058841947175255159023228962535811563180298022439844643534515711181250575448049589317884934739836533511903867748398695019369558326747374583921063285481275395062790179276084229618044984230734511384412024070576046265307636700908724354392463646878078147912027760976177099894525095487008133403799633019734335426619595156607454743168802342815065994653292317773608507715817874659064035088690753322537307589371521830532525618004503802786639016031093076400404078137318847894439067335362101588624584194116783235059435252080361708760329033164750667474701272986406054543235763067002345498442820089521568460332948881586214081105586814926152600714718424695300832093292962444285328213236584429282050727283353944617638672113767834456679128373438541915450001161635375379519210247971916299197480141091172400880608205367658392744427380983575538253554885908277330367331148533221772374988315923948248208042311647854166384299187980889855564767674461323315669641892811566303117510962815658081804667509790558106745414494141113465895795325820524426860088767017938848585054413141335773357249852495549618969444074008562648473208776969532523662926644865918179899930888944092314355262921826056413105370325398297257318650726996941760119252530074144579769336848312839216730512152748688107823469614784950626098688062503260577233898632208892962363710385747926631598685913270446032911453146327217206574772194413811599838045472634544495448769555168112972671690424562781224426690375918602870923687538790754403960445653576982947227563206424389554470046898308164075915264788440150076461957330887451077166129186293511586757860374376347391002256564022664246215789374760351607791062826523117853470942787547400323003056551482223882730064629557513910232692203366233078760178048083986437495251199968266500032998811389469992312956253982346944058114389479964741160374731934138636804361184747282086588558673102291178266423479565534893831779918418771125243107105494682699634326965402584247337697062149567246436895093940859332339261162720737507222736900572666729872914439280096034591095814621402558667127877612639556412604614672838103164692467608958374948145476779812939747807554935293970180797844370272722907430504114644632773695246944756561826819194023222718309144896929326901235912812112191522846094423328468609535232034708817858152932364139572831557121639341087526163040786011317965997905239174010960507031132811583144340184708220958788502185737862710334041815929851822503019534974280000072372192261380890980350152694188161063542842385872466024089121405850577487868318724775667701926295425815503745440155105337300247862979315671715266852384974545399744471171100451962627207937283608019383410643153463073194594123515499456896878967079656789510513942336820846782479362963947790545023376885854085533304726289724659537813656554152807489456569614867505561221940935184639504381719694187534229013795307746062315234454088322205450817844779326157955303944233122331742756785437920198992558632380111053746750080942017455443388094873725403179463941007271605892300941820119345876466137499905536652836773912432309319257758412021605073667918891125941986292325544325242884643877992433751240513421346001804218654946031964185861460091055970482318283727610574868599032082957746483405287819558437897461298947519773426716054629013004305301800134009890850183352995770667362005926161358909329014530330626779546576272683013511723855236088928822188953896927536565829834607568676981102906056594986249800234226658736829657465135824727180100572754811475494679240275572189173795643887599328020575119564730311990969260509092546026382341813122246581138403384834754858233919233304152533893061678048530125853788540233933957769005371812436590290341855902029617660596820506955684189906701628386726124588188600112429744436410840135485883062685549059138087315400512112591586626329129488373704531876700280065701478396870196846104636811575198105382678779954489033237174030856276050911716555254701460735182105907499104753359378218077830409235284590639544856977478717251458762274449415382767323427126853146635760336475250885306113223794867454156697372640743112244693870564727379879947863158512795199006612673772819475906361933309965352053267934454369642924560366518637765384100396848891696630002467666198205565963992157509517663746071451058019708667308461816745711335873327276306212104530488973892847968974397475104385330584808584796475421754079742328689668347642219996299290025536364429845421668814018315579039703471160195482879590172531032340569287235934239809240778761311442030395724355050960474005625041334120462990085586244633439709696417017084231443922478771006605249200743149661584677825413667396632334748640831646697898115091005572504573831094073683341915433942529366646536050696041262869030734713930782338122722358549493406592380717657988670543398056607058224954696618527646646298590509173818213957983060371735347071786419095449616033222844791034356585464974394212143304039674295439900644392901342568332971375941369860198386042811338347888323843574964256428844143446185832503657119839484547259717180589647922681266462791924058471923454241619551197243880890300136157205435974435584634828829620299991211840063705581284959001813872318387765009362086167320130752183240806029853073495747177789707752789274362296912074434394214606476082421041172117393590875144025946525388490460718757119467815878264094207264375227167059046762421748575981518134213694945355041334715932377050064177103506700174390665722813124364564927321134473287816034839972871222556267691295299172883837467298181969610051506934918438018315101185495270823502981205428793070731777061793681006143117079157912664737635378642991732898057561646891563650258209033295082206343666751315972274059389238591814671949091099569312294588252136283256230903404776729221176058664106076836680776572898943048220325682122454193588590295378220113156770853811949832497085110743534601983418127109487327215131101505037853749952443000371612159576400301835277152642854529360314282078866772998180146013276383449579343265587372067967583557883407867260631825804264813075204353852566377135356794163037191586500445276267667853118673656231269939677057226265643261052867867824729988586142823787846900404119420630663088797131920905919382506588142005782678345492513939465718783755167776154511192485744690729701943334217250317963459208867313265593240392993295803750337009931240272367636716973741114262734164341963579814239109341112593857779845209300576007150480635496627556121145607777207377896062870414167670788793173575398799487088430343513193959215755012018564362452790383205812817352828718911793866661576776981947388721876767587406292759300991408506549947473112475130638163811554988485283816632365149455090442154394917522889417771998416541450217211562064226218992916869023704133424106838367642681134541925360872951095568183288770261869104660168322078562128991278170675925306152006680026892225681931089839387231226605980844678004235103975199235099517667771026553717014887977116653357604244335368761370261833423132058544009769475054601529654988330546325248797032175413786658418231994590044037647885045971819196506904992813006528874098251754566919254359981275760936976039115114628757354111615330541666660441909469101399738793393987678207101641007417040345489780812414001266184886735450571473567699072832308174658822044337352897656287462615289896932643520618842738738978724526505116012579222439547359427653118761220801587509025854268615603040604737153519713871872195592062040146666163033244025828908005290175244850811720440730415649900059763407856525931522207497704240829782769653325815821683161110593532153518661177981430039375168026149153590904617437276532885582725861417079820255124756789077430919222521070723660778089742392733087693981769454839115049047071004326304343416079153558714272602959894416949803185080351222277616578789817192270035973222824559170149071879917897317613206827749703546345481081040696481762837176611172390408221565186820071223226721917039798052921542529732272257166927627791013143229158280682888952923452102888281265974922083991059411143626449561803348936493941539455657886471037766069725858699320987587096745979849939475094227414323912710566221228910186588518093358924035191767170578463227594826985931775452420762506009672764344705518865328693908581890411072154240948145846103695076357753624160062206591544318130834016995372744016369483271927661681721450347941086417951596465937576245316580617214282699590429300971610494153251097707579941182394305788504681215267174808606845037098386874121950288480333688062867948362434962017314327822800582112081761552155788660370087725906216455987679899691947668843231603764084649328115494990798725724014109770774593089258338038761719156865423558409655676835737160654973415721800835806910893044043962125601654527793999347311087214462307880984824123815911891592736548559914515253589256487492427480328921470759137171699950128298941502352100889715667440335996398337389691382674389413457398459571311395631101806392389667729714397697124343860504487663621482512551553797121756342813981020480520290053710174277216938247562141007962200156749912646163931223575819481309911963208762126014700235974855655708355942506629088915888255558748213115518950971031500784523852242661167754277818500035695625229429176816275387847710871643043735822439640547404576784348343138099784289540256741993168402575498906516992126295417814885821081573892098882307970359655520843698677970535016974966504357143598145617958738673158935308733119417600374526325208321253672463958644364379524829676391885735228489818295055966911345195157673059660704873273183176350464283188193374621201372607003402909836800934002137953713878242729519248419058267146821276534089821132672141166827758506806719387711697924090135897868662143520334989364220961262049486845712577982064970541723736399434800690000224595867880225726826840018681095800411955022076386368132019027271649522780855353586242054933599065138691980497127775395061391537996087379214848262083240451908809580570970791465717560554143651512090770903945725939219837390017321120681666061289749256267501616885038730355825194516266109725282788855952047654293917481121096110554207307419823861953812774834678564059178058499356636097426792483330467916818211354726933104304833943992258497848311793129445958215014821623720518261001876254777156349984360938911605351498444862643918117960469620897898330874255901183027555565602608922430815431795884948798498006587042212906260002124735809961477388053167391843457234932829527528242069958003799861255257939815423663384939029373268270734468106608308541818926069009076886006259163107492876936105566163311648662407728737158470945541744479158187970784017186879958919409158528223551878569225015495417593524207852879907494098592798581763073468936912942291783378440545016209820244729454079825710562006653882640907028918923193600507019038209421870729685939088121495252612552814322655991063737817891824904569504461740625743730131021929533359300018780717634971535213735783970518073667906530548614360250591879759338211784363331802297907263505774177954534607862501256492678892083655910104249046891827817327746301110022902415463335533048205550262803353663034099223481547163920489954392154084143697751422411587584784075853909095475729928680574864477696021491883764080425095664638217848568546738816990986550225341827923712014313756100606873934269988302137260752024838780316539260588320032928023435846053441997947356475403548880753007147206645214485435766383658358749074447121047598825830630352271933676043951000620826850111195850116865988521125497866719334321582277981680638289779198370033072304016389451393562070015514869825450883356212691239297245452956853566897718112048812383136065099997201057353606153030778474411011079914778114787345575176087192226447725126705060918042302788545952036620407435985023846965501952894533005474515540602315945946878592175967364092441034853877814661317016465107070794612718915097660299035673064771758227410113101910560786683921504601622181244232548532223486621107635121195313042973029879338634246520583544650008742520988558005720859567192019474269092205998272393546604211223734384105004346142702922416772415292666326914549593930335998632441431507938378654059834482347523635048299644660822654517582741308964138342238631566944971968439937624682168756490616208729071200761263042803614916041762961881285154010308368966441518704013250056190880975435939241706545780090764995285620138399351607026742791905485753610100879385488214168162262987598929333935309705014062862736069273902183190514357984934781536484824858215156558869136457415492266904947636345061889192328499828274604878073925168009283279965663970268105284668731259072586124116602690240743372474320424522273110823790868461647159304785797426272488032914003581962227182502080989692622124806711802605284411998529104120988253794444348523678345334684168363403231968539102899427057000973224723593683681985575496892369982474374072396664549648717560989185464996671876833143470737017165259345203778268715528849502040681749466375086618358971161917471590889273267126398166780860309594955676344302284115717621942823606323251331964973378187088389435062978771495517294781061529115722698621944902557089678620697577022730301547347728372091291005954817421952204924892327075637596817592832382802562265296830636255914823390802363706589408801245348043424321264887344884798749233732056153820596848899818440698090927901001582926742285024001416491556462975432949132839971416630155142723760988168239316678592226299385927908990461726084016113104245277176333988353972199457451131275059616354563159431775066674128510058047246399171200285159416412825572452929030888291464002729915597642818999926396417269495541287816639488642258756762064336941798574737224975795254957474717972673507786287008319520289765401945289434225012779549443760852071762392467940960285892869751345787540192127280456056749819256072068555962810793559223803093970983242300452106940493084534460077965099969930925767254895572183107112764733060320615946746739180053987020918742398731055480210117276636934153320083250942295683943497138857910976443184134344593478610270395171122838190532605445845788777993176023010150358172218278423408013675072277911990992532212208493829005190581681289410550053867543387184115312104146195049621152550772246326505027551103976279090962638306616408208277042803041796221860606928658980537720534339531579019205587947434578034115294753716640856742931759148071796642847749557452391251429358861977980608980218060512844716768846326895512067594481615587407619049726369517422785727023123254236494351280069018855072879783907963948207016847394658660700187422625474303055051928851004233548088721480959887339289595720356457865965191356101140883471364170487911593841762593912745750293517334473475538565174420095250112996032214861289245290882418852184389253729686464050864966097785721862450092992252195679810563762492531876017167378387316487430354141093049078476484666889398375338548050009335755881489748343134101355281198139794777129884431112294188809373069681373075079184737367609381898759456331383351663334601934146995723774896607271210411859986067832369008142104651705485951670862251010424794595949213720031584441962955229293506034940837157579723959923364451965349168056027647303497390388044620932450942645132366444479412736035232908420264345715812228718694764748040940390774666340987167724368013827860887888979962022298235689232449142485624400284047360172007858870740206829863456318843656067939835490133867294708625050235156607912178144421387015110099173949656255741467576883910248288970113236425532292051026294909879488878463146001895516679827309834530376697317472610226435193530163695653037860634493662323336223261432817774969051896060064552257376930851256117534987188645331985863922152108323742168219873954392495318602190853642918728236311497643902934491961810747806428817760652973318315841848633447726629452625536186007476143300105299376911456485987451720832589117679340971205502944362811055265315578504451115726724040649685380074264551853685332479688208764328832394400654285483602611018465748669230890367167360103965018366864125640930070606398162735677779921805555877944533774201595673520579548413501321284622581107378175519869725442727567344527126927660015336614822140774762186100111778484083595356792914304848064086507724878692781621063750688557577071150177947425653435416907996816282060031357345769398893316243169106644235255006037827464677537836307317912830556671724976678483857936785558571523624853109120188511435420050440439216624313331870083928935112492119323210699236960233825043429609181016691615835987596232768789015263676786609487641149437577081311862810506554299024481989764105137276685110509906314652572484073787545369487316244511965509962257069493594871739620025839149061263229619383594282348708559827638206006242802701383359873152181577208798424990424850935420190109841943645097211773723790017133279959204148707654487527296025776225313271457440391524931871874531148242718049885608137666640170967414904936120789944367514018684656354228438507375049787904000044674233846895796742287532976426089205857271510717657611159629315146869629058087040785198188337209477416233502034759094572494733857626933107148370159250853918194194775402427551223856944639265222171660523571979137594556627916709521929834224786644887752554316319603591569569173953217231913790583293669309200516553494342228759544711360155410468371178581750373117379385626051585372457297466987594573556147549236549793569465413974462280880664937999564699841500720673648120299752048229661746365241922236537296545112448696435368120347931828661388750695209697877517334918136117693211934082952593062116997542869014775689344271354971426492515167210605252480134686068965635336672632421986448044015799407472232816338715033183499669438695514137517542627482427150610679683675524115368510018556205727955509040408223334189298176358595480354228787393799696240395693771643088541382131428306618313358732760376871331459054347175136158018292115302527851189903511600366908767542880183828893806309221686853725353075217459689794107624549217258314673169508500362558959935065503847778925912069027189231179813037405998310477515282391101231717362693723329377262727439302959414478189127579324568975020795171198051849381206469023060326911087107714617900838668727475819332272383206015344665683934705322628304515286986447023428749109162131934980642238968936787020458021696662959912591575725073081455570935523399510969033931253143527408317096780311364195085979329472916822119700151340425897138893240024830847888753612146371547646963383342247913358610597009037884656658871550711559509916106629788732821793889434967568758532630713645652415551834133845476834780770862033657041282519329466037325336994712752315862345861015203181813603214321657059801653056285144822405050266530861985981744706084813259298386363151084191458755313743997196484795621029153373716099874672401127582072183566068971105573909530401940719595733049632819419200935558474260853356023556577244512634377423727685596422816257790724632496854043283897493904634260266603481857778114089180834249820111894994040232177144606852117647911485945167561456407676697944401023660787307439996088567931693094080184493745830902131931061164873040667701600686764424917824304224162430260101884816348776869151659788456557336622447282023899240737264935916100647755843343905582595245092793666000658486698949739717864881798128303494528848035267260498489555309465051488966759946889480055374234234304723151783728362210444638020955498027091825826097475003756589936345216473845543249730488673613986194817410841042313026693218056537062008031403210915717863858819177856866485839075708209932458958437414044518773926876950364818978889999401083744820091188427413243902348894218453783845571922830670380745684576486097493540971661089761010160977739253825518293514158230004639141454409488684779296635322611083057599639946745534124334266616018462961438277173302556419125826987981535929491203138366029551457491598326822771226277680886523894263029141943531632570815597483228891531093659360263261299553880836922569852043928556017690272060462071548350276577445182679126365002182625632510211588372519007171919657362172605077264277115660224709092968153162675707586949490030101638587798435562961160608941614231519332401027175708043953728641935288968603800794716315924643353011865637782541281783911956605931507058236862559303927116815221397689493801678030528529233328857789087219233621791000212112788246187600289605532143473585476652012822915514122416697942253442098365031620469775925128598827568428075329003373882071675252064531123855429895839317373685995177889797924033947430171034503577844299314949890549789642791905727543104453752432676499637654746045510314998941470627892790085760393694696175606460200226442590924618724907520677003121380894886768207511560077520843851385326338988115837095525154901155545065509096695515904989306577001145687537227238177421932429501832177006964018471397114132959814503331670410064857550593757311639136496272931048020468120486267340940771948398182033087591429622706961443959962573494816003156476578060442212650957137759139344580033460911841090788710487989468184273347693332290548509583499341306883570264533925621892876382060880857833457259612035291531225692952849662046208847219752195266608566334270505313767645823808650425733777649962789035502332220827707310711118112533275847830312020346852715062034813258678054801893827189157168467128907410939628590838728017441734951257009954654857703447162824122226265684161296948069191200256663313450339311683289243581741496744863530515774090561897633835164197497081620385729844466496842590684648952106011661637624384437209020098399079008234374008310042482173570859852886670273135604455883559349841409239776357482214853123652521020936954144932145363801209673862621610834143543603921526829326545037132014703371297205947378901526366360546588420792151636139203632258180670781176704183320175321722897979874672767204710176095253318398478244092322673641256049166036463861724700769640699711263687968117431993868661050146226917788731803832181241909651513738206703722339275870354759621131948684715211291613895347561749599668568906094154104234346218814374183030150818884168382929152316395468870911779558396353599696384246159381285172552276675579656536884474006237675910668407094014718076356638954662022941270874583392421563782266311388942366589773505636538787693815579408702894340030642612677220265568787657018221423385266645411616878451511495841323725306558560047943699894291403144888541495836730856609699065227803088437805617638732925567747407112125779599157758740524572766458314290659346194596941375186212189473388886457453319177601146806142568625289923078545045867821523274684812164630600981725903729610305359617110964149552442850704920290503666425530361167258109160029311142869979669540363596867953323790833224261762489717959746742454180222580083768726536986554908596534323397674158955832947253831395516491033810256455304415578155283912524729490822777580425486706033715171335812249859640267472940128024292595134315483399316507791288978121794774380412932602042478473958446943026991948737787376492639075084896524036043100154186820232807024775005006207961610180408523914673161908840819436308405010398831110476563938314143927947686625303255243571045956066969656531859491790585142629842770562793503007092203256629277428716959474484565067537051512624838347246516842390633177705552748388084844166520561252838440993473762589901539977946310198883370923308837797768919015632361988328011524552815975266193329464093143793846462219557940805240974954372177280715004825954052338274179268000957916091745003212680128488791258948942503542874407722636470279360135620706988533782286019253726772939402495511055642814647110789289729010035853662316133826868501117832859272278310259166512574344981568024477201272630307554708518203036983612312603877341853166943038416723298479570298666138587394436703547751141808960874635460534925479221453862119515224556669220701687625231022084869525790493447632212056303988091449193471319482697161202886163287089819824621625837160360245354892683111750515766766908434359575603086685583660370179799673374886178836420808269258259395194366189047006439591797548491622511189544180551498454383583220906501126048401891916560030556601978178315347872263891296843010932971176567178960385472205189288649556922555151932679327037733886463613437174816492281875397852636318561923774929731241859095676627483548505568067650031417365353277314655365620521034445525059720391000486856308386695714997939638514157068083592239550833144386452726996120809567178117793442871161022796036602815632662590332249354701936539523811687978387328145845965946218786784394715016789562843370498260936739579834721785421301640926612327296473468366870984063536048572781388386734201557067338802414733666283583176920269591494463310180389126290857571707109511357983092758797872795180577770899926773051652452817742290249165242066675808556933923155589836949558948132980461531844581604775915457730701657587861519665682226723754310701122278207495234340267549398991117767608467425781690173836071822479350896080966767783793363155644576324983109779879799891269933325855636842639260679626927288253602938109750026669232611091717158801871824718387785388188653734620086616047905305691329077723268138598965939199980304995210931938776903713762219492263094732902202656814603991315494448673839310152647221363554110476471886248827706644209599620131723583962699810459152555141484998038890861152704533945218119037586735018734060722972442647850024889233203296357840526963552265726166346382485450278072263530906370243949111777734488745632409681250635624645566537613463405959680535823704996218183407732541882745929681579562193467490171693583588084357729417913267780465311370253046135012090430907486042606827379099800419722758450066299430755220593216982220547589215559818466866860787399562066273938305348088460214786461877796344209174823697885448763944227527589865609374035138955237477644403928317185231669430871016182044619609651580154478317846846750021783807473580662717997430900448432469896503882096764517035565020119854237404114215657917253232463406319579398582735828479646120560109391094182277771082570686475147677329238754049360238207526359196501191312054029696798041036738106330471060743201504906893599398428123489522817264893840956231654904614672341738716788772383961744849626049551462833951926817237069004536770071300356416593345379788171666293353183864367579349359227602104392178511420178594398508392898472791854765966377231995702287060229637864315105234038646754961815829677112130579386815963937487815359359704901572684662199777350178436679901038064561094204185769824019212126885140421950921818999341325309689430932914413229291632749138919405555972047919417769342408114279327487289972703035149148491462646247040204224123566364271172499437955924270944529775828877870025250436347369254699520196280479705504224313777340314184777069958001751107910332488902465365239327835142643375317433886182642138467426891297673301606427663673425407949416896108902347504620867399261823810203737934302161970353991609481314195742449621123444725605653031740147055067629392249131842853096604251296669206441459288817313339007823571094708665707834126458432096970206006793726797365064016814543895886510632374172414018184639775608027739989690854964617625241336220154502132292027877270009325597741942450702207064824490853327735627744004542413465992179173314263037732905759924865085521312837914226946339471688297423521997809449371429844205053147728044207166365043840757418147233741400760151371220719115504539992911831191121660954006849393799471365377200325551507785869978931478634803684658439096691276465426863314472413462838067368613038339912513223286729757790933369665146794219707274250518773090838829245689013009872380472355453532968080370253240406688516355622798486472460178520405597016960013732744222192267456790317891372341175893084751987801994263807486102045128455408173312892786487729672344822016382975513507773348040406652398330888915814832842296816480122960654281890186276512267546682738129654274629111677139542074008716339454874628197603147822202567226879239588067131735498578097978899837843329569092857427904090507043843186678300103157289709470156950321393357142755148629035923296090371754791378429367640951839892649157703789638060853998231550241529935613189555918915751323820422869387235208132550709565254492091617355437060058344472344964683535417630380499398367119039529633871515894044661039420232589689799469097560662144852432090502668836262527449516018262770522049088832885001330632858301859156843738704372728628876694822319023225405026352526362347326231912080702860088903549171391831253117404892209525112441502723781803691059305429882718364073936549150838399795445089030335124209270806088221060986181548498253066257138459869857625730195559903276937602262673657681995695962531397118973410513472705107365285089462072862638339113892507269491855828778148256705651059101451551936207763343667534669450950942096950731790107840260887361195459200608703263321227644999892421107751840191030353484710602068178916478543169981839931482652081522451437366205830482717657126805746702135687248326255299480539419603251816509405280093551381538905078126508987106364088098068513896102690674151906703915531182683522816722783668061506168256654386604850577548230367770637256977430648967295511999720184126832953032222796027560713271810815061646595380161900608218535266391095173609040457301975576382837716078269292837377676212344881327490052683088985002084962521140056514042241326659530665960392696014002397533501287175177397612089167998517865308043206804554621255287264084835086755941207874804024819535772276226045681154062089583288738034473585100668457280350877244395079799128814216877773871682600111945650810836106332738984705545711695939823569243693775377312723549276794968796203147311393524845679960413769274505500153204008451997737989270572045641488939181913549569520726984518541088782639162935238017681623295106066662694202784514106938485756741211610228031080084684551136068806147514169438763466325999221581389188403270658504630629690649914380049687703513460679743699135775505308699378086995930969508574458237195862996762752372132671642342275440032272529224286672748077703053938950615715152505940035193573734803090966171661013625717177086444389504772828785594680475179207513138971026244407670369565415331620342097830530147742649583766143068413204005997587189469655212596424700576011467699032152520369060168986211199741371441984736640906355025333357291387595740495577321691283820416383351296398168496164720914242676713675359437792664349338802692076886799326781578683481654508500330071689800604751670923375890397547380562754313776660305016998183515962257337068378359134778655592943982839919446790951712845515314133599487482843025456662435655066211552824351140598906947028190336452681926306887878678163302723079526115192051803006404534236088232646490237698221417355214898121118743168682869335435553083301440903788858686670200911454682244440441917238962445192816089908815134526303211486304312363681765987784686724077737785658699415669272486321049579037303244306278520583469636382530181315388657370957389718009772170449708165396593140150085731953532813221039169851748527571834781732135458715036465460624912359739283424766858261062376172258090067323578370669250670354159969645817903249073471873918929793554614910286546685993011919774934732120533400228126509028319811405780579966913928633969556621002473628470030966080614167810774451943898924203243287362778382934510389416932856232597609967495196926113499510446411743951882812963446840325712173200378051159281577423298209735382955385167612839412586347983678413211551655663064080478230464646271749690709552791168272099724904366017690472404978397579340462985052016976171356396446550490298080237184280745297561168390798803115323676051504588640635187398931904628804033790624066910814183746640865488470305111302135433187334235045453719065163456110436874682843329950064852962501203683293419019521922825052686016662278592139039669520680661227435896201045079574327498244285017984766732564786596072289026904287164381144378889589263439331661309416229229123688461195603391531777892771778316387887553669490566840601784085693322899390436177985356557356176343382284261920314955526378273075312826404108741559722410314190435497511491868392424014283343498710586496478277960558660831298962378394079736219285685169981546991688148889888412680985051847338593540149546876390118738068829290324678775043558706085564933226285380784269462858054404665194496269382803358337748874179192635419871931977038855773769656739878341343516418132202647770077726737883969043255134140397220714462099998519908103303255912896065520016583455108500321005583981549240475394551257000147813159630132852940230989036656252893943098655024803229487178419632498061175407164085230541367164075455315137596583347311682301157682004445943032971322058531449262458983776789694210712070091907815355757297504535018160174199638180167973155217518164004436436575326183395654937261182973685211560720477377342576813387767327295478026850396524884763691804096373838955756214565387655874123995228273455527719935785570249751957006057030407636618714469919952508621869921629622806141558642620052230602276421816886986355022011867752472307606409627596712191915271790331596638088141964932719961921087434674755500817226507494189240957563269026787451604992953196130590382092224734059287069083938955965490687817357943006177996513297332661546243519270507413411340733038668687388270636220072252480987387416053672208561861101613867075463623156970194624116169281742893268637726496599165141080857386028812806354774533142720552458806175448436852231682821724869792745181433461189915253853570644357873905599197205879392925965836361037163656853460058244649580794767217322070686551613881366980184733870966667975964978834484499017129878995487348413173120107988567362869717228037192543489881812608277764080130669591478000708197603441757417343045230268021912570140526142209927308386351562924591772351055385891589916449255267795938458724069984421029665914759817611467340313776135568622824680297757026207726110711662614532088889642254050485439239507065431699644930570014536538852719265286118686967993451465042964401203325742528969835611782188199750327220685843034939885959996546228440250978038955372174377815855250253811134195669759920311094969589395459298331489258265211440325828961000626513049758650011834317440727153763599162127266614114593454537631157037113621452415795378539421376021478226348724955907397978335100629761211084999117127236301894390348503952280859917527928068976383402677032230667536960861394105798327493351597232699716312617546329230310826157914474089900900059680225609077350859176791391415356105130265480683215691016554559842917286764180169910415082885501288300343500737563597786267178595652127110949514380621220919329870101010395240000472199051290616538065641543149932003684034239603804595226036711337758427782249686419219340632863800363765111744176053810331001345348448095011351797269478561055600500625694301568484577438563365868605673407103398524129333974599732705358661176206129465050564413589287205882239492145256253293606517819140186542552113019147755690986936682001233017778019886656880006164968637962731174535958097815918262266601448744472811850350896106762810337390631427284957987161326345782835397126470539039015405237523038398576524146490737666723294722158740770064684528352983691017742654038092056273286227078474028765612108760495767498191026369700720806838731412621922991060222684710802587570422892976829951335973554608269728270895409936792459585193405690115349952629308012488697606797023967001470711923154562999609071227866478545804281228729043626035326172783798523616417286262927888165612181721321795428426287251831751017371761334277417132807392475033145374572250228991011813133714295273241933120661476103061077417057152632394643789400512061093372369901395439587416004356436340129687804441495236958931739084999781840087345556992562609993704294602195141125395498384894891306072221537075549683131820293141667423106984201605732794416275236963160814679595618979092947535893201700785070018662251805664461283587315752115365273388711143043932783381240076483418530235531075569476137603858506128623806171430821367159226753344834295439511350309701303816300423109081602346315265934593618148265318568699119419473106909904311450979877153051009642138086312695919127059446293495633029727462664755747473480405734708791888496494755750009583123126511701638114408475966795308103046186207047548806801165877391987231691044393972638729487671688892026097948891115106245473917597420008779121123820568343521029321962992744400222015394762399139223011026288721680835609265976734585170392246735250862384741642268605615101012711392879670948352839740670340053653623213778945992014502636221847194597335072366667785155157037618438174243074153069931462331594603808082275298939025464525521555015095155670101883601320818252387470207473331120212673242189243400589731332324672054673057151334008210695383800491390520689666580904724076109553860859150525005932533099699760279041788255809594046122989772806154764355180655897251414391590707954247257015360684066935557663869532015380052916478058005885180453842078081647695748018146747442431840642412600791454925471463249639353740339311003633736678214863492479955927188929727248944066105178942965258612074725260074614196668805764545399025930425942779004591491053623079190884084535760434637869210569566464797305719912183778420341732981814572360484929512738340875066763481860662663502552778454550015535238078806121995829857005709648795279533379855564191766554857863931818782117067652659235506614459874133000904265869872507684785651038121398000037256812151492217413774060916367726006511300475284404687463897092156536302744319565792959475444748586031010807207157988120763220129578561861958058911839219084678163634396948371127339852938155147105215268885688478492400314477298472419888229068910354193207802430996163777081865853964000686223108124034826015682978364461741080943795047409705182109661467001308469583528497023009951034735961703529365402122501116970109621554936655368205300424781535392635946293261194237411648422108287009957401770918751612992481897685697734431784845803383938439258367322911026927718098361041021764085082185239705776083239949393752995806421994578872388846246042495456913519485827235585251127102833963390246340118923835408025966018690528195202993148741163684387641844349964920682444379815023084493447017554823850087783507185498355695518968437098140070279854600399467751224464292793861250744588360363529280205150553111618777379386229780845710182142275307397695688907498015351551869933364495964856603214348280292602924897366396762284725856874082700454403857279207472397682879965525472734472257110289840405293123592209521750404326501001889670888855267638902274174084317080532456626133318935347925305201979385681188225573534225528706463671738872633440680328704346943662289899679480039569006956877685701607548437389296931896715114189608245895916694208491885754450493944859897834551102023401950236638980962721027075120197926129067136956955575889384208355946285308954803982984379853558700996458633941666159064088929464052508028221395171738034899777517808869977085512494492296115226925626211387481883067832819549303534543558267614477825379616240797503006156883412405236080964890789783458394667408185577929167467494406214497533642802075104532083146370751583635423256604593084069384416031955709895313264880118313734854085929615339527971583452584250196962599618869887707251763439269639163657999433155197488012206926675607626442233245751135804931431340347944859798836263472943104913780963483613964207879731254310403016635708321537516411766742864473513096826033534462572045083082196896160493364467629273797477805856513546560732299248087427142894066907496433403401094895083237182615861589431553231570067790212058812111389391724525695401195863381855039201690648534016231693647617779299773586501342534676450656782448661865234185413995248267613826318487426259547165788639627441466719694139703960478740298562566775230802187127599002022702379673094076185312170208448504254027955314762819018946098277251899480155959353710445111338227546064513979684411732002792241237704053809283252647275858657626677836918209824253663826870842817251834949591704100327845313892456786940562333902397129621312801469089244628497538572715849129609531038346738377940272210840244863275145454135206877241042563109258895665384770972099646982050550889217267722309399840666815109000110630245349809931286092781087351728997359982032399124603095831229982361626936394692746968649465752712167412911181191055925068288027697068883388125254302001348180477875346917997722102974954662597560704244440661318821911391523769557343310393860031024424761948795537221570631999796823712427422822266099060922963361993282060774230232016055804775100447269825224638727679884201216925536007357147420604847390310272776641341332900332109716458715670887186050829383324723372058326659687630646068252989978210109479034940717273926903044142571461024663941106571545902350719511459593355010451903630613594051048222505835933518171476714121426373529319351899132264323132972916217219490602551294136776661628406309074901040722498318788893270391177773841309777475146974406102790499889751496953694447823583977564439095170939242582932675278080539361765137644285480537352065030309718741580853091714761700598615859530612500632603115452941070773947912784488900017865365102633638146550688015620007171823780874295637180795650867035866152193948334578032288744105506278916424615889677939470320759109425059308035191051235268494794975214042843732587384144651420464631301738239849077534989990497764203124586507912663459532688152004310793129433315911631949775538414140295895258818296046190464659060592140387567378983593340611408504108636305951764069782349404162920969055992659490236635231943912153505244202951215360354468965057978297682736278146727429199016507161640599396543012656313403204060026956632928073036345936314095456860848851061026147881202596370465543383358050301705945341145790271719886977615972082458192889267182317634817050955510683827299436489324520613008266301989371725900419983266743901889626658211750895706831366732023289988185554929744405417640060876869420427591755971258991687390022279216188956978597157260163795159124709754671698837077338180767429879459030908362771155094483103067120042950192315452279359564861136438512735297121571625963120707417104388376213748254041824523429851575380736883770644314698055452559184971141986432313799762652258158001167448214085985844425023134249434261972051759720513198494850518106996880675682488056459315426078165918891488174415654844466681468404874826977776489124093668570822146441130546816444431054714374889822213395898081954582700803749423843343931676433192722524166505142576151933527266685305603133906256809240350157080670641171228190605625136004686281232685643296181997113597658774320542566871418290286546316545743672958686780687475514835534436138530611879971257559955811635585388447101003695506242702280315604292201955393727855350727268220111159328311036512344456517865164280518173400962768676865817566415753664173611397379335482455498065673172157909848968949010465437193644397771659285004108757219379513889502421210226248900676865264480676054761251031411589440408413027970634818127992857419949870576723511736515500350335375795029934199948878678798641646426876497228056884086635298485012473347727548817284692097689053706203178024250677296618049635611018413464622708751765874165873152664573879559923451363000032060760412493692420263326478324178287398618264788354780098398784365023460865333831452607190638836958578759745225354341261096823075027935342263502139650185609662990873681129817484135108880393779258531025286509123220096742111048169057133862618190125338002707180758815835671022974372658705300175973793915317974351001955970288940728328549843866154836247554401167396943370544224745035424232236728655744025175387690835686404939456887764218412402901673087803955372916110727750424449461056923075488257702496400133228258004433304219512000021090578292471591899733143318846141445127976167630551619160895724714772938557570582099231586959441420676610130598071118404279901320517632191576233253331885302397398120005308170073255363859016821047186595705817278205957837808832202414227100460657530215116713063472206897223676527695502958027246144992062971468352352324382971917041948464043101595476617209455940654354452894127924622324622611502239676748265947763222888348099092900851418726892131011527928998888854959477154054948059042848600204387339762899170677941434939314059786462922502140639509743432413951364249601149453499902156321066481489493560532365614676313897677784669762940929938792978197702192184664582462980378890849785571735530107792825987526452172130169573608457895016578327542220752571127053759880255802894932036455300271031854994070991129506192814021375294735284960571429765339109354533363552824486901411508590804286125086223717347643900273055691463603368327238971332987464704968648277957859473723858009381265433093861598197843584763625344331579195746212755538671811228841902567389105491934824902839822844210313617321334477209835987380875534850247685660631585576334154749564572551580424583012032760851764085652510294828499303437566248811491214392243518503038257847459163874737106084455713451935265630694152782625036848980635981581913015307174625858130408318799644602462729684943395197788482497148412241253340018055617885058199148783957264783140038931548209112700247403196813694797941004573703490673950657449803350885518832260769105633244548455870141184498251791106452648923496174787584095918880115433653358353014346343719204031776913509134259395047931623504879256778773150984666576897440891174769729055600893307100174115465251030619827930323132628340184676276013125642450535904525502101319997602663492796901336228657701460372503486868766006850958290223084996817971936140748500655763626801440460182830828640046680850936326698740570661031996375952704873805696189017754456777008015042747360308046467880447481310194365195315257637709316834941623572699427117977588974378734050294979509797982579526124318797612032229650019294975864807392560738227729741142067076441490886689103478223633072162091231161548405813552714178900170750842787996823394260641005842060776212947839210866837501617236352865510193395356336069366568189070631933816297133605730490650663062865176319371963460164831379608699328967947568703913694486402709375199000360140750639237269004505674187588176918255709075753311336300115341768950636027206431378970380256549297874872482788172884348996876324161216351463922396409909534917754531708396721747062464062632867447577796215749920404043949999561062222270735032372557261711275941949435606702462323265990344651096188750932532152245820775704161486106222143474102822487899319870264987480689675495714175474037147312913741076783929913832668765857258577390530336527626957404756381639454076540921707192991749712842348470690949463852146431046736153545729788393698196237714578620446412646388323903303263054424252408437882395396878632998594055637400249794395952489642401408108451196589548358832403047113906937231401244273871093164861930117906725817827077306161758506962725676469075953892447852782669473845970952225839115513772487369135676955742470312859716377970352225920633782585867779461553204649604500220645434823175487044890891181360402104506908659604200081211756008528005413916281751018809169806915550362870932061780999282051153356250217275955406014421635820849862498272193845446789435304057695362681617782391218888655051332994251699352451667425482789668125758687824318471396478317209451003652816406552613358320059945458753875316087002626516409535380486429181443851541905928398195067035439799089397882338255864424686086982871667186718267700467195388410856257906338046529752352495769910976477949013057310106915269275171238696171411398655982759263633362744747531134754525206637685230642333018853301098900216180362613728273138837193704352295865265059437161693614699388522202689631627284671450950180032603722859511775309475623890024858431745647614259265651859173187663963257547306693851106826078692870145828092395240144493682090821852182069003554445756716578205039476487950806832536214813916009303256184362657661914325270997280162650180968690785338508340016389631320075509710415872960712548152365277008724449217986817381303716016485955046220450578693491084258204843667601329018770195637930006167461694820135230294371510188673972823588157466474446209854945185401362490194397727867679390889384921898624866800681381800371837344363600270931257439957102445682571254877265292453283699162644863647151769854419051372091941253059392204665901025852709163338914315778064296868202653820912822236305214970673773621361018527701389239642455278874033184945648873129918667343808337619292083067721005195715888134015929239509888562342239176548726557765080084654788977948410684133254350015074178469860395254221393425777008854844275132912228448246877121335763483762068594155109156547819795715463908773076462073979072200770703829413151739409715794493429227617420499477083780909971784622805727621030817800349491694628677338610496470504511181550334931781122791795186086377024179808592785421611533604855105936164766316018482620119407589621824710553976775637663163287887387074981520661286605178965453612741003394424680298419260415055167458384817563521406878910186758885801106853074119400705264686754835234929599620249643924470946480762807933114698171229977571489286567153612882118752008692434686777636119721208032580180552537944614445068212459458499236964141596603831432570765330678005533246538392296961793658428511976860971473680451430991620828151298402783803466008592221121185672099462188632269746494396931210305476042222426638044464010508580303085218626180740261710273457934490120059447920569912006889756197726367032423404785018707952307759145688314705119780257760326564582517330529213805176151386576948919150626916275850090068599704775318977657814476878400566435928703864014283732328675839256256131103799826410072728029296967626079955581058433977303436543379232439768786729023297054684260126392303309714749801738017177408848414247830290717395570225534164977994163860573139067834686585177515984061736808437467410551243245288005272029977923556491562732840995622771881905513150003062233966955816582431435163244049452522033649623204968598309276734161443746011597848014314491748532625659196212646892292671076666847345024115629969008271039506315325196969584009945862099573087225416216323499889307194340803602859192378666410176067928455066002936643009604439916862535297816215403668313238627052613510337204945183161025716380232727801314241163381987132237282523246680871008833139499877221601556066268562136918675374637814567889039175920128194792309636186842436727202076571518896560507308191285381189189576565329367370599956751261332910894223359353869262686820217571211231277114630644130921189875557541295398639757039918674119706843831427487394138383106313565675309649875171998408057320055542721109024545076024861870080192364162698231177802696676544096641767856659682947061928090450964489468525247270357284797696263828498419721350823761632538248781384948615648211840593931767818270374772189662838455467562653877457694094834979797158099564404584041131672871438223523887892532538694479417996613516417002246471778332711096744969806651266665838996964949311806165187267652132177596694231798430309799571140811301836175016147353117169774163226730820777015086338007203352708660777664708317360381297198359937933557521438352282545374566583960211360139607193521920738321772760673360882420603760892471185273245866000701657361590243457619675935044974667552061718770401759935441044258461232898771688908345901789116801693723371924822684847659621342776854239531450575612512539822509291300480541881202085602874988957455934138346277278837540965997245327994344407065714774998119667445621902897559768911099824232446506237371667920644829022064428671493599025323193328303559686269672924881743877694216926137567045267393598331482249315432212155574314254726460103933048009590126975149995429730987138037647148947726021596897947971700134205243695747809118315953298285661253911422298441950895333722732549754901299198019586475861109041241815821226912469915716768388612734813151982332566312274326490139456295061038215314884205557076858969547170224834131498060324010090111878789561214896166196940221760719966947416695401300845719501932059265702792056211766799606029725639110243609402049399163504248367591357056124523158454171922960131917316879306863368635490235214039303089151990115535639454939748769528092078418016632319941618448132187695158856373238319582133857217744838690016693952490787049671712806576540782864098907908083860769679991481635308210868010075965770347218040982121682591293146539462786096350787538821154467286094082842036875924133603376503823556105593961018716604693902789596828545254871924206917306388363898019533007243347286378580416121720436110848877828820886117329201031276246389169525666929796700152901361151386160807530863735637227529784885160068031827292116464835552816240444107824753245055882185093959335474702087890573970874277664237396154659313321894654908763474407522700785724885271673709611428680333784130555686500690154731168223008681830321191329746398864742887265924311011696373802336125048312586296444641839251637762101371357785627560264790691781718762859546441438083812420846465233518351582571715557088964020642182768726315801469823712507331656981468440314763322541639201291045912653245100423655204885878114108522276458904389446571451401548079130129978019167644678874652179037529020742138295877047696014942205657882089720382829509530039672007763148070613461980079780400258147631282961056977830540077450377431339115198591446449491658876705086999872316438492710794773181505872647728401138454456392568116147273098842877196830712306630331858727210548819567686954930740305660310430455141834389399471950893993128042348200380061398777738754871958262233349649161007740337073111354769637868477202434010197268791070218614571957696198817879902105028408820196148894081204356792821539062861904094501273919631594699762807898128274576380239330750884176576313580135634565571919608109002717937749046909777626427222073385825172970374612098434403096181110339945456703347478370578956657516445173290215228402488819882295857352623455327670759433256698317354588949294759295596295511897205148569362468492620438547839728283214065140498329991931490239177733427554295226484394120848744264751318273057893384853527457966181995313664514090096340794480570456118043639497173635311093413875871896286315432560072971143795822543657366045490054085412387905807413032691733761913397298761615090168569897946548739316260323506749929571191935143348271207147208502607063470814556213761585229745441458059499980245677766179596796270359743629282248730844413367579601528848000073694010996584806063032432919149716137637962341617097849124088474339010448029338222832888587827554510657478761351856887293397508085376844784410293901307122487476399834211603722388554209576277262393160274905809181451439804582681932198431965865810298480586983991544654310227447492502072685674289039229676633700611995359031573501077493866591895416092436373265173552565611678899797652887505387212457958823257297568883477301207799570174079927512604064975993929468244953520167689956182202803540252973431795976034668818497132834814310749497644443317234562533883370413694918643182553499995579563093724597125462188327179605078196028815842528213757629263448583798024105115066067793132183534451845133621503715819073972734853341883489582744378845251612428860018406672752446061242054289766307464012316395936649835498219346818478642502602443739170602623821677196700004462702021435244786898644533015167480706303994804280865522103499274866387188346327219914435916270979425035826727719143465725707852413965759505292279933826775471406401927813764059286585102764325585572185807698982546670731150459260002917848542091536190861791830330072623446074296773362738818103480386081578138591609525527095663092399664265234661910028652526916754364929826776636216841467157508247400444326181270472600223075470513372741655078225455681165791053820787492254498412341084842177581902297084482116873274194989257045687420572590483359929715520967487476551852590806071456172642608676932513024566221910801805778171225388582686373973537451150759851113540158516187284775958029819068592637789467754245306824115172693118168956376042630652207205020353898425459447568543983813722444296656040871108202115049562053489120822876868140112607013622519798046049919262968404313194189462222501069314578909504062890311996842515591749278941560848119670738209563285633773207722079078539175467306191797915000414722441562645905512110328758190469052633230634416349570774741604008926980628973253107528813845931565237617032349578597152683059158236747431203527587970539119697395656556393628891942099298861052995285628221374887133319149748038538671254137148900913408491052071088556334587771605563673607633040202052222920404480017044838773709114925919464542228324155324480901878670548663861238166032102627858951164676065180777938864799834482102423781062509443749731105471369505985072996067875069659573021654412513101573935162791209827101803360721057351461062795069908658361708008314554523644930866765048359018048140466170617666956467316923903361078235981175647290635223470337146720881317338827243409271443155093886118393179048423813600244095026271795824374670968881512875737401615209737376845063913179817943898337290055618594553713077794668712525044595165347245234698034831047221764214466871992207453338820005689321064254629848732419978831271355771541413763098200216148590218804882359430142692085345972402325441179861979553006818441620766607349522564273956187487967653257271949474146490154654711467321833432787728483680948993022934102795597653172178533694790722634444989756438963842506450369355635126473056655688091357151546063505169312526164701244636555110254833346025397805061890164959035136327361166624799754528354158441675754879252133956176505187502118931705423351605211298764605036360654389473748654094982349854943707512153922219205991725734955036414739428430073720973359546295629608991604969867986123426180635852459685539217976231339132423365537528417033321968945288820087391017021674020566160836645327031695842547185425773063268451767315128987283847786448603083281064940994973163562652373395371593689450536241828181027883857341262830907154153855393786170304868852059457899896921437188278162594323517343376949035565054900146775562910428895800683211544722310930865758169097065830669556178556226429839189298792013074643237545968780289431250309478508772942812270394948181214343190071385786228697140024108685713501427327576598037390715976917122028409801940977864976528996489090486286460857880952212799482679729763162109268461513365299247436969424627814541963508348344642325895884071799671510398171927540079648464891937656866720534403747144345266985642448170513237746796448845668632565812653720963114057103652848881336721981430918446612303428720377901162495075177588936740517077503140696173253237746136964036664677634405897962336668832668413403993245495980452217846187553170752630515786243426335703107806381770987371398031038576520778931875512006506418131615458439928970233440406340891774717157278467764727541747059020866380722778363302242561451313207690000796589822702514516880947445884324366849846980511637063661805107750539511171092638677997975720626641583990206152430790472797264253055353615092442566108463179657288050304586905450042676443707126020397073421042616531839190521214988053050368112662863429647959443502510286710595061923595823205494985523202874225244890447729222834110096526134787027005163534478013516084948694542146548795698060272038946045944818327907418235140550661440464268687680909663406629401310863895302863328762662118997994907808650123440285691470800977008329803953844185708490203157737118196753883022592281190666631673418708854917839125751022587728299082493688425604951506336054162465308270423379887677131887110660053847861705288936442788349673630951678458439487561481954831632919569071277503851082769619283523185421514922580372767850942225756218756568513336115578977743551771313038831911779935431462661580412157708301529636957242626428379528772447536874915358050001096693354821862393512251313297936716860951745191946451326563875348378864443631066684344620524599480901181324945146582930643477555016378672409157421196909166779127081171975885288155971961611834898631048310517380347947327307045092814958448052569490201129096167311736262971366244309283638768736364433820195242975757053912260381234601874032182947514876949188494402432734597008630442712181481692457964593104816018307739575708895083206999242800726437735969372349657125962165445030397018329783613019938953459755295163138079685326730886797172921885947157608962509533109670180375080734315145251625730946648968366422442570549297965192170559365052072387895444137900021651132253263091622222710369665621549259443989947590755369003566889081960412177607764635650212759979784929867752933895257590813831755552732981270581177884707878179238799314060390647371844750653649353756964909701531458054628502975833788949831863195347281635708490524651687626413657706112012950887737991145360608985012765981075762970136775421745529538547681325865904795813173413020080661946381121582765838486973043160343969247927289300876150840904721163176204846785189537550085272850910766893074784461327200845378328343955654398992790218099307994311828869453074205994923463815324748423035553825170714245272289607189254885683813055946081508946907153600490813719749624764308010972673233319765403277813656121570766405095559667300609321744119545924504519878196443344250724567800017662609607140133720984809082329564620206811780449958963931888054965910753033187315012804667901006999994435977277573764895761531887334599999811995382832752365158320352793313735123279664805289758552141342010911954750528224737162910975823427052977193700496072474971850517754184485414963414189041224585180744747753417401672227041529819530622280465633924765081210281130804289687121705932764958036757328859333556886687414118166478468206560195549221638264855722031860957891355727780486545337327419333049300834061640186685711410476721717384334941595222746170258758983575956491517475565161073783901427155692040724819220888647529404770895889498021023654993536805014711752988565376643899424990251055738796192615991570118793212484267764710874982896337812248820760769339302619041994263294003773413388750934643435974833815357309796500773466093798648120325787609826021188945138913386195219697235320986186089612438223080197723688267266545944593186874270763276167769777591639074548914676470037960473798315631439634024139140482877638203654728711566545420036438038176199521382794677128385595039263736426523347185085343013825013192008886017459434053645487004548842627754712652515096031888947826678459415554160678349704502370006654572825943011209218442759254484066430673413662933692574681056067635396122962644537804420249570342054574066154466711687188046128780257033395388004703648958809855057373905791457468676558895001425855798427239303505877668931572711281300189791510606814650914077906400881718088011637841410505707766927588543662808073527825814548988996854707640315783618131973655280842420316895974979537038991837651234491845725754983194736111249596733881038946477018495295030266914323974534880394967189465741075812844912176560862166775889879653069388697639402763503269288879804456656451742628675797148955425890871718842371268640112181253584525940906460403124391841071541831401285859704965843842380700093907386217800595796240445182862856870947171720018109176732838469149619936985625128854707902413242407917645366470990048740115925396466494427241037563875347854560798862897460385281322228532422229363976265842486226188746653808751888191989302827576990076746764041674977142722629421307232240063694846553869747381868825138633947257456980402832385825912391581895538123578662693933259704865756449753576188185685850556665749936503845087581491827345237603625556029267576718191819663129290158571475121670023384205417443450947142511097910263363828789928961589958751618303905327084614888622255753707410531978423897300922496271535987128921716319997550204079388955825299426105875743060113410952389041196973666268972025753605205980584597843174936977066089759930590826695885623963025084421267779939807149315684363850696629381483134165883161941554627116790590523019188807522330663037913818282631883793026330154234277868909681366732052410314135615145602503770585103508947780810587877796803795971787866401059082615786961882418784011541777453030155306731633313955542746216302700472748837250070003206263126610685083964476147601730598094605961965598202817732876309894053611629110068151048156275489707428113976552657810360002000369815217863231989806993628424948773901063920379067565896553775240900815588499201793228742854960801037908988951720726711316696334731809570081087793319301236783089919094789027386492912399571714354201341635665823631364895472796010527031135330163700749452275130615037834728486366127042979090280047287062152079443254335257796740247334978505998531150426097811435061355265332229038093641845842765105495162045279060011273045420098098360458436981352545191458584941879900884243588203226675928730836365894148789217886178382152991248156342584357148922669614309804960027414231775160436407324843503574114805394028657200911569980169220670049363315291599372399414757444252924187883174988792504547013828645039632550523917831113694235889431585442989373629436474491447075869059787785360745655612664189816198345996194975143629366474426333920885376080185383602673403200609271982710332047678376718846303135474238160209785474784940162398035276862227636115497535527466611053997798984596323354012084501265758419391620200555932092583940630816290488536717320569867252981247750078106852013668275917620020311520501470325741173200973803664124460847751529695409721648419889098871041677171124412667509481173391435658169692566493866571829827637879828349174568804290328724022655299085153743728212640663686887654789890103061507055682984398346460463724939428531561231304901679478017189673039657352006378813836770129104683477142329731986049007505271859104305130878430051108494172242517497661077462404771239142376406026924003007579021726750098040183791622256621746033168331421454801315039138599279328433296806204582690775479939535786049300539342630474339778820115334657238508958978951300218553758297139512533191600959498998187279253900272426946597605066775136414830833330572480731385892818301959543040547184384958808038212773447926364370425231371668962385562727303830670982022770124685664522440984010310325351705798404834602446472409342904731976185082662844277801325859267690632749091113818572169456234451266989152401585112922892343404352696526007429852791759783178432303212939404798930796552407432593979059250818583184801495904397453357715335264379485154207391425856353299213246118598607313513870343264324894267244694038747160216134722912267943548067924438013180749116318444403734178465744198625388367046949426069520599701233975017533209225205872953271863883053098664760172291432408134099967717188965534752905850831404583504382066784493447341186232381396987942383712310561519136177246542016238508891904016038422192359276690929857441684903387551338537325387877232644962689057246336138583830178994641487318821360215445743667441837935461884714892474787528390816647621292383414614651160334984431785139815527879977851783414550553098011985889561354733546062498035027626573045914745996292559463488772333656992676733295062039560026550125953439569578828805030839821607572205340494387978668568494968522196979609483269636076546116004380347025111915529136737637049492870840488208949136330179460429869821046806562498058891487454120024853508201708060126130635721873825763700745831165399061797260275104555337185308923121636389087339914883942990848306596132829840400357444999566550308271315148639944046853093361526199866314718320108380472316866801856146703668858878797265914602747284250480985387493143755241096525293079656834496941776235327848173713579423820637372474316401706983663398073968388097670941379563582285833254212039623110368603830733947971230770727312544590093931868312722380634110688293906366557217077963582248682456949498847781532273328195852333452138764776331691371273865125864200201246169492352546055606314972181794453456477225754274158615664599021045695965384327809635319513562257093333346982032214425866667905032460951513668506119520088189417920135676548766192448550751544815155430760178171418986886165383108594313851756220261226821923618099143522393575060235331936550661988378171589265452944991302924974235336396421900910793984272148726247047925693747632315835929112557461647598303287023270340195190023734018334697793510450001446748149849975422986726011244330642468688866407982000989259929929970142178384359355761494146875203366206496717340647413893349354374825024936999192297105960178419188834220171897683510973977528250376382296138633856830372344871570838323565755324370016758576364542913399010386094314305930771344970876490437579458677799094844306835451660998587473053620176469859054965362255345306747959863006368911547154014360410155029541946447358363507760522933582881780413371856616921165241846142889973798488919985240939280126618471044464694111399545030277224842707940024550000430491616559380575674895532977897143972572805938182506456093063278628286235029351025555606939587394352026554748062117310358317039897576864142577324196920027550300331182671855852186236735093377851314043309876825706711442689050268104871285700685836554660142289524155346960729664076284010479494263351152999870070023085799142322279110641548853617907166597539691920926595234813109742752036822966558822252897143909172396601366695179328963405965312478569227081911401436923245624338183946689986278428915645683639159197955701703188099822886176128200227296736210123106998770361308111512063909928409653895895999532329995680289698175954412288196376818754865111786111627828782262698808273371412267847518282200598273313904720017300127452176036499821005945510423407866631582503116369292938847901529892553886354325908050426326079780563960914651269498094351790882422679664288751607430875133709565614676604759841362228797967879070595507699126069796261656432754335805050159235545977021582817183918617590555696894032164992899596291635681295070578505283033064139149885772583759373074640496581618133999787478298095862054152307488266123180204694609267928283113747560474131696441860308422277978726517518097752940625379474664200790844216569609964743795822366237135061388725205528823700717644443446663574796214920274570302910114305080733653777431756337433976489508721088021455248317669331680399680771455894714217198552677833924458933724721051577142097702859137596872824523318223765585583844444144749502914387518016828737421834083595689484518817180037801611890856673353477343978319886552012883253563901906062508383062976960180010654245070136553606218929310788377213277530642884845699546986507443789406200805334314109084940425849441349960016081943508323426309580287826988940197774508226903792643716500377353306368176363495287897927741875048389643917007573667207143290026195364822342682484326706299914881798557487973525289391792773752792285053637126413792222577997293983514887833261263170999509503873864101835672197774988363439750638496061144940309518533834982579768630677202173158488392345946052453547948864311042022619079232173626517759851763131700390725568702718706097920534428238689229396269761545928784945148075719337653966649053394924548429433274784997601932584992562376174633860182473646707465062266429238933149808484950765438030932426703311179890728729851201195482005298825865823672081075197568706546362341112947638541841364907215245241698727618651835505478006291918204573418385523705672096361335182970224930806595393272398394371046001825467766629287642875985412622306182297552043776208083873701658829514310279705103166060179775824257152414609320255559194962663566705059351997988171943826026053232672485573536189156650535418970765142143790527463958816310497549561571228677000291490912795293779229386316338934040779796836561734544550496527202060117808008793108571913313556528429881104808513807562040559246691333357983253754414151476708879801545552650513280451990479352463648549652982350736372693068949091277882090279469433622210587022519658546857585527138765534976939088013688977325720228742932571347103982253097315924995793500767030477795185446394261235248213943444556228360728938303284520105002047752776208313001009945825611572576232900130328711649467560712066807505254137381169686573211017516649342764342704768523845071846130336678527189546241171148296234160724995647525593032517174884135536915312163740067062130199149991098264733752221236296757714888842792444853386466069701974455146945511383919781963026644393919336038100454656912161453199401642084454569683233578433261181516637579560849009351301451670054953661687830115891427163973601215360321428234210013893802897757686784688813331591713582855608123456016390575305235656114514235335737444158193718855480953800282789421781825187932111061353836864023060316208363148642317468587868230609190361068094194690253250324892937132219161100733747698185565683075539332261387883689291692506287998112450358807076822617424334057934526010807041865335357238738749152223743870969088008253817499552928416829413866125285356329657888308359843149396310003495802472577642105130839019597697153043744560580139858761359749726075566513291485580490994796737662104211904102083756664930342290438062156013830542299317094431718095265889278784421981681145680104242043921371175412951709782861256851791403890889138485633618244692909740490447822411479855065627877893429578099451576611138892992867036107054138920389263536509546536956664582914861153380485558390566878973315935440684290951456593931529704447877897895781234681267553215227265243777580945663047324079615208415693028691026297415326717719573131364297573858868753281206323352334539301677784688268490837124097978969147907415730817122531052519826188816164452690432801035769996409923786350703915137253238548540666633474399772715447710058487025019556342300678212922448347317526422766575963912801008152537881160376611439775531494058707803441780834882495725415369488110596064314050690858129049644296213463423942575371954104456921408635778871555177403790319087294413289741546496231599532705840529887362493458774710271245418791006818342158934868189397311209174001995283880188958908899350145912241235215319146658404132595068871421697468624372387956872968200532638399459464231137340069073391098204643624955515899392388382262732263884932191764786216302499045964268981914266180846540731894350332027073009202007452519146526147767525913853266622741339556003720143465121615952366034944424097101163476236521796981062222448669980418902539315105619377585679315467340819944981598716711127144214808374294188093900931072297963718048333511233811515111212327555264752857170887434653349788444923087465821977959202698923390852768032561596716102177891756993076302470788046934419826832566967717836370150690220886160985572357290154155138911932336837550905209790577079155943979661948241606150013797540522757885449292003645478285461150171994155253881651732176814649212331590627789804533141832516253445582184431104456400407903051743870165900948410277366496416657182210369391628904946818213681532645321642188220300967547775545405885429402469428429862775449874631526159468205211912632297310431103807918467188414478488313035395788610125737531219873478588636214644388512915299749300047133834907875523800352531128564604432098092369509442046801727464325347046227230952290018963954550338897623636144802677455496702384589306581459825037284568002343667799526970045932198115988527226952111889180280657268014459128101418994091914132889959886687885396338955430655347701651343341240889186250252675303299175166898961029175661566459785899572436928998189109210685234362704499208211984274505445486099361898552590935672768878002178317303797569009316275056991478728660818516765205448738972786837398521654540872017486982657427264665715822817224604720503301576591354335837504688212142657071223918292872964907654181948100000927476480182548713272590572690428495216562509100728794873837495268841273512334186993983921816107857465150037438553383772219849526452282784050722226035240818323480249368642415131650141447698894040967114044382523041249565669731527807517793971279502070261107162717392952613443055979968086756556165202050909772155516486709659061754119051088970090366087687130598578414349131469570918649991359366145560377047403662371708454710392275084654746416293491137959638897089507952952552613509273808603167201283322762391857992946178164518759971519014838114801844474246463099008366254178768802932012079551352580984087710032032347097550579213303478304212701379563946312105887645085557648489713025938703378462576782379230013125058171816324480804668930335659779924964781242565219722555750384566872786095334113804109239171288430534027848043636594839125989589970598877857513543927957475775821457825500666178454527521551439692991446378589083351507124772604056599989112861285006196848142840828015747006096634456675219911966630776115459887297065377214334638547464033899139021986737917111384825797748274020344232107083780014002821006762883241897791743447405963921774049067195155803455567767499447143720675533024328841273042915933130893311780179835550451331646218820076526895937025317227794647331926903752823025492440064976187707207426298843130918055790066355709306347696799418628324664590060561025923570353142179202402604010066334531606184954649030274876609528411488010480111205645217398964695163079850166157150527512908689191488300587617265485830262338389470663241834903658291740857100522021792983299058912641584954601101284355002352644540498742885895548353361834164337852341005922162397114729250790394755548788517584588699844566181408716047369080707832739545673520848159798322946264079971069096396419387890714431112967057454103408254015391310337558118002118182722668024900454816399075052309855774570855057780437071910924369967577757302677182005302449602244417923291250175168322479065520052034841541037273259544880132162619737136917659312694828708453362908120212935932587535713469873404283174583156185928378483249109864565168412646322999433997168154453968671243069317522726267073671304057564823208583414525566243989130629260329632603273829029418840658623189477404102631799636553967160538610996482486200117650712357027442198853235319534959463863294140015471049311536935525839340094891247445307342715180923230588109213494118424329831259423677875439102773628562619609435958313419064528714829883123811393216849403661495605825661242560066261675241578967131020685083470079564248196182271921234517106264538085525511756522980894353269425093514799792025081421414979517922894779096067898949197328875614872307952966819052359173629135368504009955700176010001025368261197211439520483550987432700280218218930468905911746000022527127524949935274546159817753002014056198410300148119073129104524713803077871235088357368155654927242246608562322798583669389053339779234458853390249694470478675608625953718413960645062468354662336137812330029682052876169430091822922571896785563347868337981353965026363362767900092132967103821680467838072829209176234269076611477057801174897725094155632758398346780200158441837006690208712721037303598273244687222581110313578628610079270295876916109508407240929137378916883610264086955511164272897931308649212566293184464108350401361327586935446762606779707262835773892652213252123939910402458527166785661226538829202852937425493426116547422421095436606929871583555110510655177476873653264632800146485202431044152110695692161557250489368469093587525632640909604106952124279475964676719432991136302224479672062526261700251194715300529760250067957434998012791684390499036490857476431982970427721859017682823909927573685126155639045117542452475043740742986258449808969336173631916116564129009199506469925141477132046424949092853021361390191821277371417234396406712144639893354062542535838140228477731259940540178771029000382807020243980910569052857738891001438986500278224711494510837924096997779252505359589852437063634495749479996900282470181410749308773603426865713976051298810848249655676603185856041286510709501170234250650964355557190316912451167784115654125824068731407245486257083940273869900860074708789663795699963869306243335533607042185259040778334104225700237196237609376805469184352690643723573495596524568725510868088977970751663012275546250117660969441187958893775274111852546990436255554568221017462310263932427979148263636472134618745087282996429397062738109358914109508959127650176265564985619819315077707161092473691584713114150123271304740793944518320238408168842667683644881505451985886850721213990365612091394244132912313867642625696750645618690386548787925024648867401263812283786996780091277076040557539603148049288159571374036842015268739847883564817017431891079756694349138707341591931875079191887482011356630296732209751501990901575666632563556252403835744684068606642932595689393415240985726919340791791885173174311708529680959135490957955430357190561685241151401471859739856309267465682545151962697572295909149651420167198851821264949201210836973052466402009270525039012340730980533646402578689817704296980659160349157938201295972351812282494730258987537476846669507325572931350420515758625934921376626086816487826504976609753308551942297569123102403535274594728471059155836061872814439727805911045689838801648056533352766179277827935699577834224938593798897997387799924521870115900592835581029436926447440332827497017595391218929863057901295637296877974609627620464770680000130502723285838739940574181898784184908745774202515206946241736541727423593663081584315918974656755705251234702921186442979876486596160920904819783568824522240753618772013182098380332156791017282374863221888180896119279773127817079628207448050933602211713796309542261509769733546092124132547253139233415245684041358915533031376972281692553980730531652003843989441798847577841194126937306798790253760586728370857539670249715620026146216140170468525314884201268024517330208491679382857386091722626121619016005088517069781708889898922828052350994268881652337914865625239507293665877676520357843785937538311773983807315207177518008482351707144403344138057970396017493161365175124781079120090131875217950858373006790580945899480747594144150242037095518761612743408195168507599010386084874303332152306959587413873693344322579061582948586106678256313493322309649036547163361495205477592996991293584068245362020674530645411425608809097829462684996110241853549841730899082419640116054601169023723197102119526481571431262167668856137830149972813712876509924343914957288446279634131455466483014938096066506010482735443798888200886334867128482289741902354884302620374393965001690660742880250543838471856473678233807015399494654996356365619026993650037737780678786547678202888311420168657169077080249492511453241128796923443482736923351295805511298548689456791270755112265556619052007610851211429514826923962876209584266363225268853973285949438528543400105882082306678136485169822211412157099355387847723257634520550933384206152918882540008017285137268287064168589779905326638098071960413169593692137859456875411662947505669409733869109164178978495947249607115101113258749206251627418007330157866334839732725338705402334429140576732458362292590810142089875725950752784482821934797535608308894373175533020875470959365075636919263736835266898173459168088733083218175753400378782176875154982197136124819091115964256267026705098875749071886826122647750769304034908611073215476668680949520540746809477648209578316301222245599154031379430313775226562790655455800255215706698897603614934504930330429278057446235202305739000973134091538831210884682806166073221908017734186796680216379157890134803494286382761624825224667976914112461089561279927759830147897652177605393784602610439379044268647663820437175491185963272248927982430715117199098432689664977259305401828575253463301165260556227004303503172588280448689566863378836101444966026906478911598480729982865211781208746387982429346362059733651752004276145203172525147682058557882363470568726226813076497566570832079134484049981702337506042241372968796749385229155810950420476904213482115897714430960132181039044718263441333953279804170145331820437722287597833718152245645334692818998660803690858924891255917223040476551160728692092027247602647339141270029481296159911888927841273985852515689321746832145385931382859848531785475889944798404168487105055680794783997297093540704914031113148603105439119132348682620202143106797951937218900279746780953645715139235713996354326659694243708645196218175690220299349438828613967936988349731209921415414406630544453110529023779299025291622053301950143833300298310084890487374258483665922236307826222191716550424799997914358803127753360830144209330040295441609244416198368964016032275125276007683422057221491507639276621248348908052038746442883178126689231347926752104541167547389486827485658159693266038980548046440676372415180654769017151724440508979322675568973631598328811639824826524186789973677266942416641709420150450815785621328177159801463691133477700071774888879326826928888600534345674658428405174035939634701519226918381565252927271575350261933104319725374120797313356037405593965169557883592714049625826594334164628980501752841241443811296753096236558841074158768499525544557756644914066626276112568768974787392775777621775841280121230070636546696137548057016050229728792921917474798686301033707654260104162707400876036885671447602304360007469792587770403799834383246681142694810495080867212338125619570036079043158385335848767673818300739687367689749452866231812587469932193802333116194570698484919637859511238467793754622116580486471759104981628730827112389271351388174247800005648889386723471300422416808574696078914691508569945885207031877185738667257369231587837175350222743034476936810130789225228956312433009840269241363782803066467218808617310406279846337628638878648637717095977010192284031016842116305158627368830784997752609924530240351061735998499000567339458122272440191885414347397242141177718769961596902645193334300331634366179965399597531475286586097391220776708894638006271359284236629357675145840919024886904336415228417374730768586772441763132408179381699785978812920655098692183147369597075200021860859895380154719673602070767787962595782008066476862497767573420692602635765361361588054151223611128929494665523976143483185154868398482571122676005852563432507305517582923517759552407193282936631897679657137115977764878195870378008329382600582724741011676249189895992070908221590675273131529411204609043510917183771458374623140854218070922534672007129358201045922430781101736787710289462354574517660734391368711265058142883660556931391836124844444796006254961262856023714300029941452299140750908141885218035355431397405056910844929950690548672488473418880963711709909866797911890785542336342712497785500537179556466125598233905922602548502088832632594059498766840366856031432750228019537162714923720461601495278505774050679186627773692665247565428761973472909702712827860752169925643316466977467064815433986023321847724994601013919100536767701773293030485467305754773337290029562822906987155674098009493255222583020031096877672457658934754741080189474526388299306686711880058462672334628442509086366536641597231178130315517389832295772496585826478973011212350024622406793913718166873397125820630737387569816649926707558863497648710322349791262332336449422215876634089287917761474774420102033775758388171641074742753573974095021794017547954268878512002351397098714010562567105649473035620489138248131475584348831160311338235366031960288713343683270536905448356507480506324306045846302930030753793176504541172456980927223577511005615890138134125787184566668189237133115643851210869593386101782875759337350705869990694387953433281708844650749546901342640145210753041961708668200281454727205417179204872551049931205545270870887923295461567528718861560929286152177512379322583661261253493964348333069726549398813478292975143134400272408274356881857074034702593830227180710665459951578009307000918057034690280594225774196189638763417978841532342329445255952226297826604285459111222038490200273742213279299689704527226728989207373857586197466609398328148220489832423361376418420787297961797796698078851277103686562684628274168200408565498440653028623103901242270212490968982899558093439316126804422370543386422825984080884814837405527585807313122180735511269788174236105750204324451767349137050562082812175332441792092017064539675855801260874825233178444675425588840823281853873717282946700126064351916838509311284474370075045736512768374292872166949626149174741963591715637674862629796681808913653218819660659336521822954026658387167006418739455499539442833169295373103573162344369198608136737942941746130331490237275387132848827901475383574673418760286272411190309286284187610094531101643908558845107182165463389005729556840623323950445270325945576139706035498537297462149659496235142885031031398530748149296167309914067719524844077529403700639970101345383106241853571871157406334645131617923184245780146277831328978618900130139360197808887962389508333366922517720040452359608865957067290648083945122467647567325424158169528939191915127004749084507130836083600324485382123400469667910138531441992591159530924298434934999170479441763009019987286073623579913963828483511188812353572851780945363498804379363702740389676531354726954992411543804010536413133286910358020583664980112504327226611247318567141970746253621970328588139715014853701114374591803622444838521066193462851607937973761580965204791429388749600759268239295539857776253439183899818066532339909166846777710936731095204436031074486584710458939544235064667182680030113344952992571916086421131480294055001095013700952543621820231252660059722337044856862435173306475643967258285908954964174775674304515904652375053843117117481418460286839846712965756926924693607852712377591101749780859049189579397423363170649926172298077061532250486947140554644903494668196347590222161045493686264999140469510656145413581207702388528288915455682322489205036888062719530410541486412705340958894138226552483583664497686375764266566912620174280298937896671641640169244265104372320770646675291071214943638281250697827430672427041736570616005544920203287598472392065996386199662203702768536355220354884025068172465416364644585921753958330268881784719940983876014229219403097934783203058596918108107075213393877628049338942125357133964948956622859599910109767748219339764010653800592543881549088464214520259684532510948807304726562939983665014518436577452294367196511324487292189020609430714197201229407946681718065396362835563821846653302545398009346705668770470219090219760864574941848442462819178135099671661981266830577880647115376099772218174968367178307985441134524242825748802015121093069161169002805534477737022879482007588272145539145158846654681994040081677223917018406756031844085695700236747576915956419308250317476373610275603658449827481269946439135050333734946813125247607911154934120946404302389144137780910323528804406765434473398665107504428341932803285304833180260268353866025314220851077276751389480410946794934012959658009717524209762771874051981567183731798584457546517302318880668342153779261910144271526526794448418901866146571042463582936111337938342447040639042561974592834613274700907771455972825210621073416729537200865175613900012671492337680278659073950269712063285904032404339658050319241820589973022201388384469504251046597928440226620192547866628587840716649235345718672306587638286707320800252375912383926374336588888381266492892536495034978395426479760525946964221715845182150519142936672257910495608694358558662547554596474733100613506198704535223379943877325064845897243499253704630130835796822991246462056530660216809929701429755038227869474511559157045025229906702578287445810033556884067889412424821876674913373276379565468733440508191988608877020362936939100982714317457605522920379545855737404027272136548159291089223816737845749428230522096390415870057609918657925955113713892634189630425281548789510561808658743837514039628226937187880098632982440185631995971299833851561582316720609137188381737735708095788342735490611567254828266912263889256254308896443852262381125716278346941070609888126576091676045227939622658225687312088758341116119849551118062846182459660842908629948089763746824135248801693137402711473550401145914532567126165125925910817935876248846987117852079689179980152880520890265341713965702909255009946318709463783540277012920778060964144231058292762301347174123083887806886176987716556900913856541550346212223676085258235735821163084261993341648315046973623682217196939226433523411634263638355222904098582124438827493562709079393446529834349217456503739602531549548025028299972444332618566538677001862802641185680253440441829564244258136530424313403318476352371964523875140042023181690754644835976540847423245017769236581777418858857164842719998651028943002027429429196835999629200663105429417749663351843585276886311502404884598799884365102722863002323131939545281817696230917351696423695621365672651734710190190660617969162043288741353750875423611664254493874016855012127056529642737697447127177758619460879229011671783520636990546553261505392616906778120684557479890256237955874704339755737399976261984416484525315234107279571188826069882470322881265635026233344837006403710664543121413032927794454308167513597868946333718623996390774725575788585131058406907055343704434409938669268849180890436074642774416586853968552865795557887100568886923813611182686836781904154184432702928873906795962434962087397606052081167045223405356853717463151323122933874286550556628769502665933462441478762368819524177158685600527498303448297655002386473468391852637938742635316326989610227266149807825512155520760982880316990067559034977917570536956258960991631295922942223983762938120094283698131595821918574626288904361113327995897110045389389403897080695679044054169355422959589111923153421566111138930961715836439321798279827608111324309412342294051940716152376963409693055382046421973637564611914698456661417492613888478088660997592276839089491635388753698621689385940659049084491662962245038589372291122330636113476094691782606679645100324744535690273383646736867125806412073972620772106789763214841335279536986471222667796475721743946175615753006121890511028176185875662043521610219717935840807815926972233798637747618009360157946504880659507336852139455303761982925221866576981284527121507947676117858856249859239248876052966333639902410460481000052443199106574875424853555621595018548897310286717664070552798493422808515123302818153844653848124485973174834881922577457331098116672136315976210607632744797170874972378876292573165035458880760674731144524756458521649107670217398015653548865067573921372961805003343203007018685943477906688570360960656575172895597836802181630692244552925112903658685838383421046276819046658704996010902064381289063269594397309202334725682140895454849902644913920846406632547025103140570630941009537806095917508620322712736760088132907114327023295839598910227817531955391784591392311470002759385984710348281591611858862022847829645362027837196280686486586926321924263825400963106324547179626491650529703582729034772707062583128389325631411241872106309962138846413964445246993121767430331313907745003752710490463475833171188051004769433504445754348519884548858569695612359430083923596719822332920382571432396323689119011746099566790911480351947281284829789470642494556665034526779207174098236428679141875669401191652746695541350445729413624451800109524628940105431208419530640102492609835986576977726235125205296547338800407367967647316161309859912102090422827218950915313998000773455029429617176322722914176601820170768275120286985930013973229554564446144737513769668212804371083684907701112794919970576915645155913723465020075503104605757858347631223625978131774966995050808185063962906546542045215419321807587319492856349283901034030018394375976780895635716549131445857381089668643910651649134975998265441763258315435876167960068055943030721987924523613441027472250992926580747398095431211215326052205063792927559678626423196493043459653946942645047572291658600151783302044901789772182525481980731330737844293551610141493961608173716431681753872071401048289202007641569195458526686757973608464907451953393415303307619069655955380812877582955575532075339797114141477087090473880531983944531981562729782610858851915405964458305489468109917433759204839106703365910034633932986096806383893438136018183690798570243463036388204218320892928684430259682924501991684515520203885445260896718181029774447173417537579788530488118673244710924008510246643559573336192666359035386319129595381266980718303398481779738791103557745998066580573752107894006546714027235097112596360532093384425773143388176108698069640626278505758543247321388935963856503486612069768994528925011398351214082132471128980251865887561246486209315494983645518346583664891819928681653873292196339805948366597999242443321766841721778275969713182723049812930604585208885444890450796121887316632234808740552999456915634710395197960987272555672025973595082518029387629310135610756611429978708555143491063159794698680503451841064119016373893825662583507863755248950062753432877288835503866898116498819735853474854064057718913476607963200388144758925015966146060238973022267056892693035682049223116323402021001913875103939793061871908742019057120478410303286047546437998218995741300858582117059846842918791985346789345379158685338796283620612757704568712213388922835104266608954895161029728356036977032750733538858087655595503633797323717267566992164270910122367971558334588079992265672218404971629902676524717439670937835661183783836141545833364928864726441455477846889401519299063166588940737141719948462876906209459391866245721472772863703451086264689141270911109549406329945037099651843320039837381577357400911713278087630418501990592474024348392178994977543841675010814026845895137554988892246417121378487222977396758689702197232298071860063011412749735314810875831112883877198971493669004480131917055974612101991508816258639992419259508664287265885893497677973595479180663886979908112656541821646542905026845494534130714465095176636797651190296475460485582824993407606594593749913279861742735186625754240844911304769144985104773245475462303397075323875242105142809297295932071169592955384370982730491443351842445437361684566083087071676319314276925268701594711744634175003068274096726560838109288956641462946327905192369069725277328368258130931119225476819748057404586334953224536802628499343345020332510785404700611694719614108903325646957086162632508966930775265019883775387681834594296381862746628157567418024586185471478533354506007815621738094231394727076753137165183178163930412490447800899507969528468854705351703700151160543664897849424054535635265001338740890211758201487613843342308556570879210765945914179795875110636794623483965251447257657370468146042266539034353374335669892944962492614759463366897266087326361092303626833980422089327324089020853549908783377612428269686410495790165058842877589351024852018953750174632808918089397675460917932418709476914958444171576176463635934194732986829424594876972716609700840940375464474567335695934678938179523890432645749681572401964455635075391866843178585032724765532724018974268110519188787814578987548870295994867734375793105709039199348912990221471260973858027713612958034777000367678504032649758762090212372723011742960333995849785334591201962939275995879019025440015437343069262337817401140625734706063124592841788986683273442769395538661424748869580611036025608989884600462727846808048963937891509005760265194963386875873691980570873369724597034305542686337728986570106611515266068940041244969351598770638328538944370107557676181189541562491502084022300353383915981675277119070369287013275780297393428192711098399809365436817686303707374999835083023653192965554367930842196816702846696700358411111860615501669613400308417967479746508397840093258926819192560405419204471785052289452885569010000839727358321067883761644237405942519721482718898420708296655498879994425365287598439196563303953229807459981023274412514030959341001683388994844283847288626912491577650957360697948692972313006325520503573546910059323078209129557830537363879326547677370676980711475457759909351691800321508687601286431887397645336215779481506245177732027653996351662345630502540629048122951857700048752216841298014598003744752655896410033894491489906349440762711335579968449967747549740360602125475866685620540618282041417978418678993666668773407949017037735218947169008982939798397649604632906596372350071364260352723353496184066417463831664943787869551838064559134138064566321715356917352674800550578201847273261115648239481100486480918767844255753930745373975448292707014657868031636079062453077281784278175139244707219211292666342404909201017396801323502332251758357559955774843499441401066075905576725111342533567828864812487366022374662407643343212837361018119881257658923323069826324343807410401533190062771560822419996656998361401154561330913293798774564825370815760766267372082538145444929397842797202256711239942517165474924943215382234362494510565065252972524278243542555790436861950761504982682709646725896574896312405631931786036358055129298873761739545814392783100146525567487339985836335620827563243753053292104341813774531141920665203059061400897869309213217935874944658999525652122999933434900379991497801923628620794066857639147191176475146451004304340600577791115360618235326522144197679269974833554336153388908414586316983594851182817669793452725220530138847558993937523810435334391209872827716318013062195376884662753582522435406489787238174791146684225266411323698084555948484418235014565681814759229285051050072101099558915272944650641049234832546762011661949999597648948081148005599914332905378252325479831624338498429142434142266630624844891435295692539217868898925810965776626015945428544435957355308986841389559779063547760507701209305970121549274497215758791245825744561979290140934758114882348189037507675442636489807543277695090464194875037932886155398580116154512542938608475956328471024871360192257826373299032368348238633523087892631217213545707839331330098023243558553530767250990671948107260960852017599656874937999948084730959275171470413872972106309393998821647820251888397168482761651173981162524883827461828935875201745281174502519202067517947506352552769322663598281863922748773803476265346679043861333846649527869344566747271369938637607768962594935923858821984805388961734950986154321161208904515985760288902935659141554312091953241449871234980236869359642127038127518996396880649517388525023004532558768507320974843790897560507771554138869306426072727868914026275460082119751993297080600101773562425669868948752813916760051726589020883423980829621520522557025189403797170537801508247645621053203253733654808217104847775725398772934041821771627240918998818099614142525303545168579554124837275887034496752794644467379509612379628219376468617221376140446047643206601088248804749116300951623793723001089346410218204138933161737563589887525697468349195582364679555534299728027004657026212023169780653289601910164475299653487571448135645673787337986961426831757620987188244605831002558620926294525976759142647388478728883746570883794638778534386118085443429660271334920056275065322902159171305333542737736278364913681235351053777257641581844881370629592797651955325701414074448718560380302466997186740788774430957805651939746247871513609718974481645138817246789478697947893275374578269815360958275682342204266107243726823223261782026837984162877280576679035084778687175164656725485848121105388537767913526082355214354417366112982572880078674352324554767748008079019965100374516829503217110063807393523277355571887516642607921064505550648022630216776452400899021706036164047126827749925810130103656360181040995408296992487555529463834388732818075740591833017593007306313783751118678022315885436450757499381850008101375878951291224099044960245696041783558743712760176760893390797852603215428326118915413498786327684041677335690653945249052677814590989206395148491374451735256210898074258732381450661145256540138626190321539976877749239493228804629601514829444090180973709657454357663807662274289090194803179887200045604492159697742248159092676086036554320449388603003898208669357397649126811492377329402786160581334228428570616507672031494959704767211671578562488450316845121750971347576169675897048573355022432431673748755752248294821548073291776551300224417011110239908716975580761224691392215657895199380115194310528047593580879346813644867761867160857121768641610106521272251428881906240363682823798001904188789894748054674568837645266846539060664368353778775303682334152218950330085335840978282446396877598509279214659243140735110413435435788397481555770917049585602219281955675591256715560474941067732463951652317154546357428533289728721389825839240978889514611330866173777090752667048333492755412460104902228383514218094320529474969211249804455588132299047810877314555045345399074132135000487518207675520400368709486321387638840337229037254804941576693262688596482751981561171668339735146398360950270615765006290908817493371044858718132523898550687870000796601062547576450794261332528311339294089364049186605927594731908804065805449614505702750968504225427865551653006405251961110929171210906960957059050364021950780906193377822087686889073651800721527825389457682558447356122451876845084101940267267536322178608522720372061622681605721024273909949553027422197320727436153427267670761186964429466580642547864948918928883942924052624240677954790868374388116942863506990256954990381595079003700457201347944526628122912812328294262639577749389749904334271180907164553463323044366732005086744818260766825043816022521128473108655776857162272135734185838195937778170362113085018702781232491267523439413767481733555781841962234177262048391316373615058944327298323116999989369689262600530746033435971043197396896009633598289358863010410708245712560797044818227658076849221697442465183447873705187063018889053876683860117131506441298610315535358590246588193841197359989473300214555299050055574370823536643314920320511210197805212760698659930160732147551143221749325854391133257456840182561042926303070355994320062400247724621843958963528025436314561028083217998892645202781890548832502789096743735722500256292103067977171666814591096375842176289408710698006174202507617864231223240210386945823586188152116377686064247629790506627416904880852502104306878663319120853193499041746733561615945218320451174605548956022103804447081482576660915603467074235405933718180217568211099225806695192464994759360507997549912591172122182300990804373316552566300778357572421264113503185848312423156181796251570305259814128938251245574835540732109062558329451610645432011443341144422864373644806439985444640520105822612571925009045525467838304467961770132576618951965283141482684606417463303288828881346694525728047422247908289535337329491714129628244019855608026449666388912525118331389111416601927539318380429631659716364363438463668955189994324943963408627028874955538073262386633259547472982326053347914677298171258901033287762103540513027397918714748072487392202865355729430647572903360485555567454953874718271104764693663108831778956678139482577163524193421060180680977732357224185808491621745876156675132950234274939122071542313820641906025934087494245002918259044285574088474670554312654070460198522978945701684022280670153870230669686786818769355527933386228209847423610229674018953191077682246229434253745738249760719476689756492358816455152332936338193029251208015353283852833624479842587370211905082715783602080669408705567316252728732038037148646843984502568846299194158001255153081377671313314310047835910586992067371990845055728077356627921099338366462751941706606313255075772780127973063307598598449540676964400071463827895403086635124435624300528940433969978335491974479691008468980668746117643528373525753474694398486898914199310287400686131531654359029332925002641058389600634405481366281506424188145249058551490009041237423113357549749634802097279146450308151094314352975269669560601350650895523575369301155655255619724530841944850758589389712352948386475138647899502144128671493490567928207465936366413364468455990413467832186858292474325457121017510168730975109532116257467339171355007552577302928651740450143893051070697714561994399270509530318177385939366683534926697502588034324035570230839624481069685605209772783455255412091321121943555073608124134073943282183807749910325034336157438724014707636338682998796515533999689313884472829831917053984969807146512150658448008308744098300483487541067109210302136349502093053540001993099271334486528230246268739618383253831062692267402687680514768485803124360622111529087021173369682257148831570858980650149513048143243828374718301097357719095275966890430634461132415549506008898320568369751864109312661093268122192187989635751257887173260475296106934958325898564016077000232028558687512222171823336890740121586096426605326776634562120344702375490368703113321995919443646296846651474454000615016897082718010320307248627201140403868268795759020102410009034618915860708170926976428485537295882787798863868177197834823892857920720490489578077868295844428669085524494658504376458447091973142382147666435514122170400852423100349546629530209849473467349133580938938551041831961055109722332745185048216190445849787011345402631998016979934055039460254714097093036111376948413745909012820451559653144281138574630964658250246763992649393591148115760501543848778960930529059998416544539868431936528354211856252288572323062618189859272985031397042932218431707338324020726764186541179127350320896171997980953744900355988932566852322936101075169338531541491900618553615107243926158050972215606805323628417013504386861791223019422620824545236999221887297791168626677608961031884184516505516387316066779601618673884525905209697700663350320534156600646917706621041811100632295993444126338345912878687424152384914981724128947541694786073832146566503577875988513083692013591421581457907386678810594093272862123920901713818178865863378513013967676117369807878405379902390568927309991734521678376511594651210986217015032027249428847088078042201827498791232640382826764020769934274307988881460163482623410242873612517149469241182917929408322944190653041586798953579614760477521721288870368140972618488404244120480305824107879949490501598370735809362918149780224154831542001499564380497206751049433315693091312180250385057659795321486524890844767772349399256463347291664624581246453777750780555937976275871905672188770991089171801928412830399381648887432794824722071705814857199306937309721103209331032729575173130328915042552832938669330166762752479708619946552244908001760850241898034485674517882278254343236986844941364677407790530799452683440488120285587421907321657108579138163019122987821096193802627394446484114015917171349910958650703048752730743452061122202331879780936318692130964145137874421467030000091117150344355605027603331709231092373508489764658337760585124430413265642263366788114620065948563085644255675130667597286131195299199878440583645585484652926034495477103501214455615166197481838271374018186390373702338119164605574012238981304104849664851385183580052481601047958095409736854565881593820479251453647075009462257532563468094465919551981388965917957097522132375853632456920859646921892827090369156301266002364866040473295416678385200777791267713027693567290058978415701312147867999562629331786774642586038064555807911754910110051230813988299879207443487801516407864906135232779038055924952847032587434833514429994179766617995457571673118404806657383639227115833537373455853367192224082585948383478003113823488237607176741654331414146061328253427558575518263225567219305078034860387498845780382595627608504325104642760766092518147505491206165075462489771600191793188816235874025318450770491723020459162018432628532177810435051746446052982681831844070609398123856110772396249098336697102919321895944683737452493223262836280185983543720465887803130997929111686764278315214249100321827578397860766029818788541370911518029917122421921876519141049421660608785745365600843907646098004595704814725866699824320500560481281311485099167245526162354273416622695734955603617719232655803569934231813535946670976966250563645739732524102588227659604877580567318461748465465949523014070147978948702780661253669988939420186457083735595205345591552281252690111893383547399538172238518276494274273398773794767408495721553803278882283162848188337212494381556660369650962121832756453850343518647825320004838874482918228799040504647519089802659298584353855604267918824373219977901006463962803022637672773882493439936124867093767358407060305214862283164398034541303602341892735974686437359553561758446911747546940045328798898697529341655433123727903800185896717840081215700559967696403360637239517957890921329918378906937424606983417234909405610542675537994106345132048858772842682960918265558634514308498992229657478830652150446719559434827960402871052219984907531470937045694002661532195462999864524318474157646214203477299459523816124012689045934942532654416292526668774229590614093699527458691627780950871876632958273334904117330138643047831194464014254260213482418446380498352031245101512445889406761174147626174184227380758772433467421567047431119101591920205136333830564407278904096416045044936424610936200954999569119559616188649760234089661189185683580355338812674129800628928467473348117060401555502255843560916892377565666493462221730226259514009908832690598261853918254266972550344243717411124340300499845645254000236036765755373989326320853836937627812621949518239399722805837334659401609437031434444124898335301414656416664635252469450822591671557645176515539953597043827559067665537569610132441159249647034075249831131823137285272195223001990028730586216947498427407675810405650583285433869050707354665393002847085550951643834303127997390397143288024404893998184226560954033334484501687887907613077887139950419175362321897030275868948785122809142159514474894412159152362186285499914723771330133455291144088122195015968097566407212366576608156157047398260298867944595068557275834852048682600105811767868268545325775327037603117799581723744044724028446606747755527807059024777448610309675707878702555851912006508623219019467002938024817167434409775243590322760815247265455292965005579044984822378881068786625736247513269136454999287817929130070077017787160333583063752639815190279744762911886564502208194818898610880078535507227899832048402186394762102719853953283420835837344326676092193503645896203183381311487461300878335710457864751671408667131527007042721296725229789908182245092615541304122233987887449211080958182394877845594370161019867490374238134963182832926522060196581295253750587180235319410255391797427339564405078317049545213424725887934297890224957557256723087199289880523575552444536422322135870665852976040944680158360341113718378932165872528645201082740052059343810578948343141256512095364205415341160169169454447004201819548080537231548916136844467966181630770827714321448414006073868098540592177865079924183403356147612240461174176617518368638183586635241339315739221380593320506813340233121587491815668002225369371734883893941885924115442133523132669312555815956345614029878342732539245384658254385780727108555542697203866759348518893234404865619157858991440662495675363599567607860440490126413013753118055246544834513282827886399839420547401295603984343874793629343718521542609999466375372034825975347376494138105418279296307446614067692234435653326443179189752865649339685038942343542273246822904941097509932574706440792851808084270997855343307017740807707586371686116806412262354641667001182369174988508711748721713715571293150916019697368866245479834991247862004716888354326745405770532584830851218478828659658921384607685745553396251613495930095086115564891270755329676009264230906026230794386067215498714817149275749734250790182222340790316292869639635278821339618643396699578444405582751380011590531022466807270735544458419130476939709858028197923282054727557886215077702988906365671188935909128290237775136432859265394087432174652576777835929881531687013459379265501868186607365328546065919099467802645841433742103925897255477082619661817950362784336251159982134579626911196837880738375422743356069056179612640092435511428999626507270430982101750401341328554764780406444839417020006775537333971204447310496519222203340623951807117839319323667754376968437577799469524043247017796306469947491803922781394675332914969391252371312915820161576624500893189458185865445142812819454251360085468180219350109439569412807772815644116177103160623124095631025410871919046581912138118439198533348244067049133056300913210912284612962331641568611141033245715568818300800965516481304268220896679495105238734678626217819782045901855454947430374276462818216324994156153714210179062605146072225686693468082216404229568226170720148014936194655275851393968392956758605756219973491735020810189024874547919381507335955289940061445616872832013618292840005398021228576764624153410652955081440244409560510533533505469437825060061569571530923271467081408035264538693509059586371428668854986856347635205354009072091413818784487659457860329805718489120444714709821716477511407518575366764710463603445077241771903018023811646997255181482576934642348881335546317396085990426163445176878107371748656448333246904811239376175210861466873804826794589630140810400006241052382532912248935620377858309974912251017622733603172780203683927964974830704009854578359635172816850462923632237876935484296744643322896896477208887921791784687834708554641158760397828131500903384518267901489404901422268791597658548252420076815955336636767280588233633349211064925707129161283710232830424683858485503580347698496458055715540876736090276858297810971877620389777330248352888842326316258670952205413630654916281340222042813884937887293531912038363186390243421176084836094212320971796858783794445631775420151736109431515854045786788618985764345438295620313889957608461610369946114738839572179084037089362959343232283434199924975549971726030763648346939362332705089254810854920574132650767832970953137982897404023038320262859265862285651285338059110631179364877569378049830000393867006623400488074767727718299675022500120804206996004343142775070782303788368237505468751713828182073069851357633023404661152309038602239759558592705627816314847078244155893339421174700069226855601636072982169661612946039982969367573193068348951187822815089614391253193210500812145017073059207561866149481551522303602573711318143106069708392331457008299029818706906548459821811691451338845536020961282219449160397862418605144506148355559794278113502312801730391480937492724737297431990980849487424824630684860365382763832045811746929375530237479644634572326717214229990163099311514107884691460786003667076308286080223505198421786818450856804327650947705934383243466839128195506510540014006708191033538109667962469913599015958034852428114161516785517899360919225963478042061810844662146782476611344960451444043576979733765112089353794157609452597415054767099411100052460770127006603918817148321100153765942000628008461481624171580484696161674590985200078219334660982412138060718934649168608126616444364148082123709156069381812275477181741101846776094430881158004831162254813969429609693127225694341425846604009024162075839701578019102719250712138412991168450300199619855656966269524478954975965210663202980009266193529586822632636633382523602483757424453443319053205344940240190334949508659214531466599782169179141633649069274075318081004803623905453964416478595231574460539163242994488836712860528981174756829215956315928400516465103764663160962357635165001446102956176696026895028669323247190583025483551447035691390921532195119551553145155098860721466020537947251862825544975998309616354139623846742038162941095138745920978637825640824590845583551188818654800018335834518413702056823755492121258655134425853786265680486588749270343190710811912861867320764827928410815149638189715960974869976104332550838230767279302694529292755240945693965962988765498567607428192811391278681276479540389706892798881638779494546973094371267088989156812705607531544577969907720212036928470368581438671453204157119209914298446585288972992832931532421762333658860744618804577481863862959649564552763771656037685731063674466752480208945500314445458307024126915915306660225246506149002069107310436266199736318623706495779350972100008703008202639812967358126226583551331443653496278565380307326825537457005863231176379370175642714430308181627886996730634043386809289681073217795436850746872769913857453913908519287500496006028295906311923447877342920136708626759227543485476381794408122761299487900477245239599604460537645829613178270361014802488542780003851826972155230737017968346666340257104088604851343996303923199742358984947864807910740570113885809906894122324107134985842474760494802994077523141441139719541641569944923814814064081501196709482106761845593304107600527445159999081857549452545706588879573671667592895995973743403669456786788603202012144077398543175806557632292252209445081429466362091793542871025067566896022424889031563928999970286550243432355373245560085209615283689964189574870881443072366192872594668355114237048175903860001580341640439701316398762576882617890658118947574289771144401862534787331472166085624501068532591188852655123571274271513563550990384124685312189478897219902237406458374996048500439670305474147045450230153285791532835004288544781998317670039833956959052640560659642873477638048665603333527123349532705926144780169194293429356289280379752219632191206551814225044817157393575528383126412693477710498545226199931389322617036340122792507748203243175239504149409047062559634486638535454854434275854287933432654138948016340510734673222824112839335457450871269565467717216286970664152019313628809824808697590208600392887878687827277023496811166855279849352814908339167253723059468453436754223067535861757143018560621954489719265384745061745609349591690192783746456171950703921383794178684794347309769634170261734818441638333203514763120449753683907276571583702441973695846276780390888455268848207072266107124251824501364913894535606578738457271124731315791728572842162754173914582482304005712284354576113181175697904420736280618430810881151841621150136113149982737521883902557570198771372261741636265617831926281075381873122990878462782728650657429753113350490909905043395680461015257967795367215612108282514072519032701218563751170310676114535751400335455484812870751178585436940933264728693359206771903272842903681640871494061228398648183237648815236083565431541618692634041995402965115238445778140546654282124869889974771845399480677572301481018190360956595121720429274446064276068547894627844732160043537971042688532666932201452598612462304994171994802963597238582334996619722734043920608955201793379638639196032681083452603410214864916307170581390741705909638653801417253226070302702171593381777456303715318146963499126694623730225921464478170090514386253366624715452320841831211054098898915400720609663814300093534827528556197809524939970820214775687705730006503021058638288965682960218110510551002860182085559784944050790356006892307103786262804495068721077084866435610948899340154744528555896772034685254818303260596365413817341897209698981704490706118404897311868806733212057316513549023835532337098631672240222714883850576344603990769658892672296984664126645578779865549063364972973594346114722173392074809612490703091075484397842493657567933797607718003500665326872402424526196380893497308819976655562986468816092882318233465616162307795761861481769862568057824508008882809560627174657169322510439466012594655861937914968285605240417135255842926924190356436700605374350101303588295062465243952991446516518224769797175931985772757993906845499031081152592155351398327086122516553107527829627503544704178770943447047776075803310527627680080321523078565621566120972561121413509324819148195804218980597766888944254802819840611071401995643268275358123894354046761628080320676173331536380720236338440934303122705141802526965122100010046959113156153275033832021024083659250180414874142751337494881224876416535065266370265829115376251509183541012738573203324284728066165652954668440511319449020438758172398563254220077889716408447580870712231128081249246791930424342944138765057111384372289707992065710169297408883725378675531535533228412944352140933525835553260240179975529736204810390962556090557214730713684046896261438456221246595173365355446076546331249700848408558525888937892318861866259449418485290701533761534398353209650413150223836545420464734285612553702755218977057268700118383233151691057077139723674317542566447241940080320421888180956370516904062084399670605010255648636788411543727391992070836642324350558849167667506553302200587417242685125333126894811483364051999999797476724556908339884839532529739397226935678968453340770987860741544884547954769649158920613185407093135309361020251702817166293168931683289702116486393832301733611624802120655051672153396776019812339128734153858289200298359628654337830724022417607818281145703188711705669759254071166228147174520543487216155180326657303659602203179132875153436467904842549523326593315257602039256038954700163219998999765239255203465869448028582986135890832610100356945874380262389479007963116279176773744872153273244857464610485986742668589412656293975549551899769252843088977416617856119101680901180735538545338377447778833975414449365099302209727551024789406486930925907236938866305480642197324878504150616202598249814926527987323510348621850867412399244340533392908656571724463249572161456709373398391488975410491077788849675214382754767464193198893469764698552059804320868609503141848200204964374899528358334628462697404077451031737577879452736395612381883198135432130464234006126207486918492963268697102623337363183255852677073438905376612648737897676880167713099844067832554278454055096026610459912380311262384640147141220440860595616521621204105424917074344485162604735454830508967320303532459923655132026679802598258787930715023682449609450306067703262166003719681966391799320268914902198609470387498247269130069203232014537531800162678681830030968690966289186325731323742387156795517306849659353458171435222273894820461185941371360131161533633428566917327621859096078089777157368256689196340667556971422034170814874899682229002832360549936927039741988751636530931295221024391336319923559871277548306033696029925870363464869430769428291129007698759275500565119759860184078542376219564868548685899982679623063063626418477723414713894014591547003706536466895742314916369238908612981262958448405438029522735413283067351839142147786024467587632720856330797100811906653147707296408702636586125638200563947788368541971579746329673229817021695054928733837710935826582824192674905928596419691068665432501850894878380551684265241309898821176024051521926382118513893962509610987708212336128903175757529755873457564971506404208231254192347112093181680526617282256310630396821494728119562064994674906836827413666245602506878242781811573372854726793636549420053536178289274999887719284408924116924729838193963387828686262683648567726812702630836822541950974740551455663152487521308715645046824070875354891140723626757379830293200974554038059339075051467297388634572819962989829963549845554277586394545443317585968919371721326051870287050679234310138065090164340086731173285636104383609279479204981779766046161844603429723385153051909713842445201735071487553356394238657823085628410914562709308447111519208542366141425061406900662636955874440213974941280673153417994116537152101334779763202172903398478154790397167676664148462489236764645670362146571762344213937895641246747328371395635231801051827185540898221891232136604623014906538631314926361819812206133379866786448939236866480685122972760971333731920430644303101656285049256381525134275625899733812715967356788503640972216330107903289794316270383878627701478157456820128509526390031634321153462897293307452336711029140690777830164566569960668971384982797183661982432366301968333294953282180735670904032469446063090624568940826017826502973668536554463626115253132800827831493734882544382489394450839916978415374373829685680651066963539775961004245395755661311995420179109790220411600182590844276469744503204877661382100111892147484297054547642122939310350697598756678579620937461401578401850790016994149147024536456291317153027534973678074225999104765567568696490961124222483775619527936864203731302449828569192568855977894101653813641352756880941211712665837482291531566330409109605071730394235472642005308799707617155232981220421948846308722329051565596569321007360435372165377955094480472594737193646513555187805579726938515179565720221437010994668521852968322902640802180824734306059470170570342927666305864441633679866960130763117418830092890296529721449326622870016780479051356179911514351298624649102717096938803894850003367136754401090096293002311199489967215976256900152240992882081815375910607221707445574846123825788559809846194324220785503175340795014468367166204481732014155186871750775984066264740207447552900065469706609353107953014497019172153623928483405643021010593003942075836956461902676820642906214846025371717281165677799552525133007602907092379924265401371735196173444148948716511553838417273727701309509370642874897852825843380052813677724926099816220834213966359616372198217177445719932376387868455570794016646829180866326919338270156870128931294221015929990163802798507604382324894563920815958602725941948187015736702687238681494809137577647530129117871182293962185378031284136479284174008286663380241408037680699929432417328548639621790811273174917044786916956987786620645244974617012452203853320441520871044123408960765536951848083069070324045154018120845513713598486569112217792640641932361489672610073041510548096462327975300588285197378787830724830050044740615761632535775308594237920581507001198602781391630673130068243982171923789373537549171096474286554013080336315351717938238510673395164794538740729357433438471171267581979045299164693193530227412850433324550254403139530207316006166235374010975975444103131872315665664930933988178640987495814931689609985361646019788715490730590784924272788770990260413400531089737257531896210840777662245594888818666235225884724098959476364264267971593837227415112557333980082887664710707299878650116995054000582587157551689855371224081696189748038486857897519927731285167235836924009932466827009514697256834659421904616399873102134015019520529048752471718638554649037780416206949823973950728427052453269658444001133358861991475264053870540143374022367140424062409489795807501965535234336133561636955192621386624932143563680140135866016482886430215011792418290370161667698275249965413534930992613391712767293146864330607228834131429185337700103841436873825700887077972367239209420567385257047501310632977748869507359557316660446450426110792151913609371084668282356745781247620249613425839070559047913174515992150248141348622606835001371724873223427293716420930067176987065030358628551787442757531587687046433547235536770492631692287206359778464850710965670393759225353471961278000012341005756108990251227485755344355564492281873228060707865509449074307560360945776755209100355874775573033373867477662805016728176275653329636960785188545664991962932601850397064436846520759373657918121953262019377673014280553776900811552429031160704736408605832775473090204188330370850976347389021105180111259301325381643385186495391563106303981742446598977757093713470020535758007606568954238833081682189262084099381305149888664098880758511369495243712283261682584651909597149239816949247756484466361917156808378095140754122595095797510784675741901411646829895056640824215652499449126588398232765485357613047898800848366855249552003741277193131479473713702346646153004065612174501759076408298256991825167523367628582771870598262473727094481886888145502677545156942723138320977474533764199983475921878236481399589570209003337979478891576206851500377850289731933986842820973154518454946557835492425612579010607974938989232699647484038691966676813711089525749967655873335320016067120492031753850783195759712639988832483012253295569963935093332044971063705981348988814032391861860825552839422257941582240308741297589395081475794727927121682207337461939590111061107920774810322490390431026505414412224066815222071570326044019794029757648873687209989168194597183960226936887491541258140843261414124357123351905690953788614645831357112473838543989958994835091679508717100368592532238874475689149947117039843034947521748885100387583920655140729312267704968704478182470524049302285119821001108566894058380891429108436589794437411296463354152337170523520815361369861943002005050308043262912199881261104993839903407389106227775992258596801724349742718917108281552256471319347027653052112269595664616681205250778191792167980170995744773595042985323953073987337747557920353974085435324840592500108302574642299264573775949447209745825022843785747549442462187222482944012651301551994029508485630860628079689955184309801002198578257877859862084963333250885443828891958293428925399476707584656853224267794840600899446730854635503914984267611367485020539411066255692115954289023634213554648966403406446435325232004573399064154038495570201127015555975912578769604247868049542676641883488206739701744577582361769840848640593523672611249124474561272381535247851666949460355150874344534759641260549135981982649503503081741727939402889546189756166888903724458146130879497351356688431424449000595182613593690606955360146255452957733469155777846086384797423646114850701037312726678412412055338416434227449971733955828613562435099650420622102392165961856063958724126656377133925107294588245248935930447954337646941156591530727771818267856795780060722519950676989252685811221528892506661619419765500496349427106394690625174796410675947535571223757065146011024822112794662749205258473788125112373573528701704884347368975776618723436028637120565019304965301889637818333463809701238231170775241744630799493421557488255025944884117069225706675972931397502506113277178033787391725713956549470418598109747012884745601030746683772486625070694207476780317938166327640880151467157145150865680969663240425483869674078642420337004509963781761174413694562423507890545252355301571579549380902253762983421823575564247418345271285738910848960188318168854539008400432742953239864420576483889205806814335285701354324712597616878645905819976528886989030639393996154367176707772219535237730158299730215930697867708293678376996695012842876662180154903378800670078278060478358871946082860283995427223983953568635000318894190565248336093798180024967301647372605649916200930096981970073350859904004977812226355082355449454006589534032414054699616458999076225806073358336107647131299114221358472792596913910490601435874251860020792641885318973286763112069390779059401161459269877730282779060461739576461206715486107937799708250686324860651025693245323935341044783673442468832322563364531145946055920026010743914124851802091781055501223301651108982910479256193010339728654910479775195811546948393749880900145797896541708707009184120065328301063293137553578517222962711476357942164626554620125997929617302112981515767191842669362504176137210714095942383341382810218076217782264499480718583841983193547452063219364449667773278210428095077793106070777847278675834411561656327552197152331860839576737425327431321415243010952602210952965649040898142583735712843184909435745953711028884223714429003017905290145650132411172858131016113961543722042823900907151574438890675605512585942665335118443564498966460641101839453631800343075391727981324922743756433244783029269719981817389001908890700805017749433104798675888156257434263056808350296728507689603313025974069415110772001826087423655142750189526500842151217888422741235897084049147176042001313971093792570616380342419872566574471374165750791410524504812454276632738300666120393657286125592296687904968949081350685430242175984134726395793066191942621974654084655683169918666889814343259195337974773049901762697848315195141123136919035224432867135096186829075120235760255499028911552261877299476182184929456251889878599556270414968532232532863279023532402519263008080199770344229045784783258539012896071460901820983930917457736409462282389914726201767711528722089326729893098820525468507074758043987052398399087443699388842210077170397491495677084382398663508097918347401291219149033630695981646716828750187233487962504054181935541763503305765228847380729430712986535587518563044672378460747434106429588959250676975918994510069125024103844993694515469853702306273237897395409627091219512086966960874058458183375620020272021726051888456362590756585842440873200928423882085732849220015647530347995687912488925191982184588374225679697881804017957690266286351495233670364614004694822327144777243766082924151829999641784794867032987885114456568130812679560268000597228297330660868885393171905261928320765364108058260699900739867191772923214921491689786789236158412327252638562748917409119588101390884372533361217069155227572471605114195377382827617079686068085325028629242485560931859810432000305512828477822506064025328342010548774925211858599091575331305052476752932109559472989527635110773964689351139055515192028522915684480402601802305551146331907686441846128044256799868334123318786378057793874124190948261539005026715937826967058619948766429451859780637456158815607942607933063928787745359317456334475221904313732378961828998134240238300441810624375640557972961368631332236444554092293069405698364078053663713725480893114525493722315894446916918822402904149620746832994630376819764628801297361291616911893642530277006287291771008241479427903020666940751319353814235280604231015290752969304898673940609299177642919024248753988141511384372749095067281678742227344137838541633869166630399657911991548294959707561544355297632634208225932848064363742517945925918980618164406917104372004711823347180543712101338622798728836539203722548058467840879347048060109662053826033990689209325737098689590032297962387155701392564017822713637384683860197336832779840073487276895311701094651113810223439142527615659378653803982658205841683590073900184826885039942957941441937199990567737491394505639729069052237217839576667555887225320550624916550989160229487183373574792679349300352611601956565984326322498121746653603066952886428920550104468387633812147849223304868828935279300689099212639675285569301949385652642720225659457826228087553698403406683211490612753221447218105846038740070785465078047601871631400216402327759130618622104943082097128439005889496389602064147829359376750290398466327735743144388057504166492356865769558164128586537774061469088531733669504376863978377329730785609948469506851492133182587236233695465576809500953399793590272564982357019106708839240631880809762728396938405583710915911437518069289832256353579499806203904437154166007646132945645050334741710949180595195531338255140155392463359182471190381159483546482295263438934288425065136859932876733242627266653174645304786162701470534957291608992556171138476454998710688732029712727538274891528815594817855569508322955573681527359021407130545162112481963588268078387586247830860127828195280538847179637201541647243944901183617552213658348670734985618923839437543090393268182348432839328028600175956028498025057270516301038200747551978355444362463376934824422310563693521081877270433427123542260999312692908552012768511825530931121096048224440116869328058811249273639028316281807111190333038965433232145272355520044513135342997705472947660805085180036510537275093364748416808114068232054288424793940960393235281569193784823605376823081277297855872164268497646029982118191752334267326058586834958056257130449080735089415239810096285369221883754001776722082650581698755450755594768915083853859083148074192849383616990545520803891518971726387773775794670115506308459948467671752430582115702349979852234865618510942352425489590876312214878350235481801453610985604260465683073674954612684776756508262877431904052740525651793706963231564613879327699570560548156915792310667071456065242267188938682745351127783475304621393317559904404023989354562409725203394765085459076202190734687234530207955074787863274398300454781443940069139028573381958383528282130875994329238371894784602793653288737017323157697954437404726537824513385692984447007485455243168594729899612490369506311444072681801714232569654615947529454963786195915233919183632931614598691863494472964210499441967070776958299653419242676661922550099332065541635371673118964522973688742527989346863026759026651579919640034192572096042979047212197879686531699725023691952523369019942040982801956061928394362520645343838345301981118784301513677740183838248972787252045795838935494248410145917857961780562200036952188631674537053214488563149876556181475357755161518507447924490372031193464332603298081744638323878966714728627333654900911556489645583022283222757083752980377052124582187623955923156113008693104002946767381721583845466323936054438814686785377123408655207655988017653945372818038262596438483734925545510033404994305344886285452730411834617508735678485520707983159489891761972632631939253253851580191335484653211637332714448088061975271728150977607862251544736065637005023704330046819164619563400347621911064669105736462145751754059649306626139507641748513635285566922094137455825253061662714667711651142040653128833916600882032750032352658654478468211953574184375618033021715026844448156194986549882101126889291481609673959568041299789639732552307636417196247923615081184616981153181836445292795846298139728169301180238912472701395813876082971495565913160186688023206189422411178652266063343911680727273458487116044700304436951443425894868952274573550193694435667014511922461762101275442237380673193421867117388158328354878655591084221869465466494590246281536065279490281069710913893089890738429385496492328306401372129932833118627963196944647563860855190118284522755437224398931448799600195929389239954868695877831915261870755388404689075544151715035553861527777304324827539517797216368869970660242221567731669903877707523058122494933160812816045112132720969606238763449129823625297974741628209530062369443941530415969299240449438835174211496587194465448947973802056527930190012393772879769623404034993739565692312639761295920720891922863716812562631087145949343233104455893068243894608717051682857837606806124365386366349635225338964067039952363774072811865784112868635647155492287414977815781397742688388338844078263418878537300199688869146464563262121410496818346514386075881383743687469882615382905927147950902521992161573352732570989105279262500338712134928859101500076681718460839548517486179901824130625116036994655032535709048886176154323245099746939107230955701863691863349745374676807229750658615034660687585085579895296181972260993165216632649173246673483119192830455023351185570410481335741225349272851017360951734913139896621877061918271212413356022537507898237289266097783794498722044778995427123014436747964126856869151738176044958427877798072382194980840620844018650851282160815884212869521393870845667477987048131701932767668435417989104211863046100589263085887472062343078956706867622981867165076148256543184827923334244026072741995407433834808314325585632847176743573011432692421080932172757631668055504512126232648377046247009294382076828855127710926503647988880420301746988314374574997315033373223218422621982744533182099008787398056894527655348262874603622526405927159833387820323263037654433316678353672035256043853476992753370150554004889740163411146598024364193064645745045065433616607364674707101301340136932234446455975717333937559253881919582064018869949563116051640763971679757884939913842869696253947427581843814282044498662713362128394626289981288896800945938954594733394219000078810052505053317985317364769307385113118435676656742462301665175910643588453096361090692727081044480779669075274253345310022486324610452169817259992774087091610741705813563763280784864405080661409739259288996270454629821359887251690407693421611355234438791785683290632975779832987425234011456405462549162739205699558858635237334416551391798115442307126951546835479824090899031044152009692077670454413094288619916337860626192008841992729637170000436693934500879051313980699475353050370969528898291346941926811959597835912542950494153671842859223974370870769711081180649334531483420883337771410085726190102337011947743516587156891198466425851600881043746937288890232710353371624737573177638111514356619284736832303361846807280435690804682065350632951062601452024072010402675146952873367557444230648825646878801015689909586692175408965231022239045256046628283548212853174505671401872549308704779502872552054155317495404339011573020718484291639444655649933921100521141592990808357307045710921489064111417101091931087644284848030519823914723343347196774915713094366788522890548966651259968054696941685530034100508670488495630894163021808239544152039914308935719756017069371656673258360363451153806264480960950367718510917289105961389792078604205099175477471199204581323372230531490718302040345718694044143585840527091937813674204310732450489077395642743002754968105439227142293597593302169696933192234571578763553542900687154600985476202310360522853439151958119014948019310589833580745102662763677367097947428441621840644178253217418578342806255163853651792632838859317544362930823358967170160365839359077330746953205336162893251405636289468609660566572160974557195649122101043153827750360847121734426794049394551295987936846569004252509800590417026364111126733640445104855912751170497466343845258482850465316145033278217966465213220058081391087077960673302311398538835505229794539306102672608820828922921532881356643963439227653397399002474966030593138207592075978434847332452746858527422133782080175965299885548911508119796184403902216278299228786040211573197760851509914796968199236770856398490610769576097713844018296802825223458864959806988939310460619288877506871363025857860396107675441060667184234675622468702931795744696888117313110072116615447105630766786384751337940810422461001510890200984849912370639500780154104594397892164044329364887482811093164716794016921474715247718937999168157812998953245307300486886635386148516887230464002540977439491025247799436870072316093570190946971997971275424283480595645891235964432765006541469947656863274359990943309909920908544547985013203097243870321247169082485284906175535648621129019365144686939631887724540087681305654104160323735456811674880552261029126264665267604971335907329779782106925415608870091034982457712752994795544349000896769288581783541899180831369791373041910671082264751022684478318597056837130818791781267775224880577221759571964521713413755892125785241274366866628231910903951458274970552785981919712997605868694268318003434712214224093326545316336422867905672179307720041729181098490512062987044297732742272399595967182490462471591113794592415037281096678102533183990464105273837856602162683443986610609448027920928401256695844987821842238243164170966959285604324072148047536186149896321825908800020189888676854817936448888661880242699607280968706784131970386555623594231012215300308327314321265716553021805052184180250538946783976787373472327866794205110473269383501608708581590549296514351350715674069303723348108015947479594696102572750068086553532155222202557783585219920034647443076727179600700563799807432410632773301290801604588566081117344618902195445211884219752051253517334146520338712516128807442968543822523833094091647185783268750932293545527931535739871128423735152955307736499386809841157866550153947789172240310253334882205932009019308693780036500246368120834647166337418735628480484706659429550094832022432396153553798378165776151175341258636598331385157894080008731724576441177783171631952266525087392415594982030671612311960657575009143621345186620504633390868850898783902190910320925803839940029518379737571485117311292085668437021154713280628671166347715824921496852765099893938374400034056754226143668401724641579563636041711112165325529723159878109514613029080241233651118908887304091167560323933286443953013620370489030206431409087707626296120917137542069852057412768670727170696047344508971292239772591586665555723663961577220111748963485394574763917304646028619786582056791695787972101053389069041512728742900994328805978930551005808294071071968751174937491234858666634817198439051773774221969765423342535174731395108944991817917780984329350866197045322474855404615375941170550236966374469139137765591356298958500591964590749945933741511864394944143161201269281976017592689593378231328752814089257543916728447736510868673714822758377963101296213121441650023153171542830752795663367642130535535898142696668468945480980800126478426041007915482012055884220567718540025885066607886816223522173869234601271605899703100281811620136477794103403797400263764514748782132481101654461510979044209826557170509742001951574454155717136823632349007255193662499532191603415748460626949797468581075353794775775063351929244609367435947229997842243320840525598847644159597978311333446133387757564348350264880456489510100547955238970264423518642310296795225137982642173273260165081003702506523521160119618304678191168367705813984829801726524646196696161405565306922272392158541432797881843456234580383593064415329775598110313128877822080181650999445228300849436463289429341515257811037356609389273965147167522746647344417971249481312726653958265788776638484902999380687957166160363436946048427511333080333984121406351854668948208534859995018762434090416794341304758088343878616966006983039913005418308910669565829866794440017387796151696628511657565201916429602158187227385907570339690731093022336696072987968966071330175247625329535989882169740034608130917071188142039425610034772035686892600123247678675724149948415430437260543319125813996513341961345803248869873046153908785007901301573140331320504884505546964918628499850746031878059765197026810779537832407851541701240855309121178045020548675733602565411340774507792403657189660776779724537795270878731513471941658374116160885429376090242165734631412725491179786916425676713432421576729815344592545947036309716611586309730689872759211755207782794718264485916629945899770559026911086909921597086755353204383637523617403449299958837502369962081024452765192539675483452995630326834992098917865906963300711349319508654293254322083774392227298917285272943398014560494505281568391414983372552046944100216730586211111656912196009234003847026675002744377135342860556029702676529685871133550751937411424372437109578763659249459994355808617780898605381047770810668167470420682470236534297884754732539059846151302614888610899964875160057447130107734231396612416813721787178221760406832686057064774998091605144236847585702180826668515754196023830064286993094505275428864702842459458459837490546145264877362760650497479530456480760416026068047671882337003132501523875878822857322397464106506577055498122318323732229816237797307801710658101043979130481209945719868305064356012413673125756830413718922538522033543723290422919163288881564207274744112959728256222124324440380481527772261520912148680276310994289725807849600164051190482777913283108670417625886794820467265130642663897200057134304306759496837404978071432270350061093838133019354422697854089868725569254042797890505387307397188554456888356165362837255579474969479404563286620113083776090797906987242760978666089852478193195266429473256528940090931544093918515126186524929041678816353682044758973056353112280974512364803142772348933227297562074277956893812589452901592705854363499015995745648711546936008027004470852049744549072893391596798837667002326314967413120953744752306964776958152323402889213520113351864768069634887024392666035440763938178915506174575247412865535295225773447769673051999573292911380151529535966826306307737970051682269935323494563004543380200694354860431197358688613750908343098737348195578141057442108942641403769445682904920105533104775700251865746610807065445312823268792497575653374701942719819898686547768595095469985086708649542118669024156386443561580661695055552396780597090655592124378692583654673761131706309880142537963061385770870952602829862101022463467051180627930267525050183152568026963814948069564475882982455964102958625252181028271986681778218213297674100312741446092384461143981637255385972731793205004161767631924873874218609624161437207824660510074084095207377333075779614776384785686359422067256402199528241377158991577691747607954705086184095121614778344535077888236531163611570525057641042524539215614671004657085749372562329191035029751970051732570981342959364581302993227266224364479482077985206584142014827617140861111097464626136888845110858708806109037940195753424000418564712507913554111777622437169859413226491781158133370708628019484937817529511266365945512272052429692217942304258113571245731655848723752275022053666325671122111032040448955571234009954141290004120299966212293015330797508834483712899507188119094294180185536951961619286448077125806114897809639012107559131780283778751141210846494589981272623636766408211966797558369387932781100262019479094378493080467024498094692303957517470643405708383904020408908397931138047300540026572885033158884761966156568819850929159456193728682395158252664643588474828718161478918079401305124242654540879399841198997292483998757002296216983953354645575724472835396735932725414152561011552349733142696799400699611683312614391625090867704523506255821869824415898917852451861233778945163964601510256960665482791576125698871862795779053876566989725069551023443141457921537736212088271507521720567635944055212802456867508250728591773550120249765254975940289444099062887596221875846065971325370905313632403077231471664105678486057787980743232444183284448710303027617742245695076482412465643432027657534122629707084321494493329613790753160850023479126323567949266025722773768927654905178679471606400524362683168828871392904729155453412666452004117344380189668628337598092157504444488185953912651701519392506188499681737340293417898825340378514991836068343247552435210095695965985673883219843079842418995825120831155587533272920722699254294278807950151418203698916204472506324883156804644482711457210744434402143971893984586096545439328235387350409158011885640998184085150653143485571734106058105033451022181638885154928476055963756935902516027216251581473836518872691344578425436710199542260721031898342410131700853561478319364003734520764828363059814738755685534010185808114146931080650613789101942263350592196601182058492118377014396899310993570613325825636120555652889761616993416702599133887848194253601197530184634672212816385183640334944733031797639915958818771995194421551894544012272467017606968402714125108699876013455212725074333753703779109633096617175088374577781973439064100118989416909632015918955636664061437135704768488227712206517514928975617101793712731056616199132886847267677058765057146490064458920620416459053686007401710934968129091672021774419262051587832210258058326923312371190690694772486153197604596548782288312883578878540453412294355065145504781226677124766963418085595461696054726434430900744499788986046952074838152514627018515940657289708336691309651392056131083357183317881996637409776164131883924288877731455205214369822246987127166304533614270222152833438980584954256252599774213685883568886185823579292527162977647834409718837726074376559004618781349222599783536780516134240632561300635241696304268901995345982784218495320902944214556987188545327024774333724558007965227935838295872178525475302980964299875591536532975020005617458487809557625107473473137225208845117225073382765698542101166777207394703071287877743021933381622138465178422022646824703867051663506996484459192665045746935842242222783385717369536456860049203548328895795973873273056611490374567899884847525289300351254812151728445539339828097302025024776819158980236536553477832746783375969308251024627515235721315881639455122971356519576492563360341348094203784341561875243032021795149958882483369058851991227524300272105063031889088405321760711091821493809983138218978048906222038539510428449224042313376164817068053734627049711444641541948064964227467036078233294427628644546059873323780792554203635703805666588217148176630281992039756603220437668981922901978496343275413966115961594966867368611284574925519705471268443167974143505241625014324504297791599164291646155193857372279437709815653735322960966501022182077564378492257983207761108736462151593916751766327112226007410844252715099257473672689196918285044522519800915902406751781550829262406581821335394418355488239362330825000899792786561432429583288968941697532640630136709951983053456580286603125397336852169962378200403285771896697282782317053401996023455903155027319190671766970356725294619999786962411811388241351651188353064108866603999872405353990665970251119986714188738763117837020247209014994564536484566300150279239288260386695149841270947708134081645761599395914095188850788923529119065806429326687593114538250245014491272567486743624513057438151028686919835440789848348469000965717811438748137827165640375080922985577484685812971421599226111297084931960543395602246345653577080250736815562426477530016695303642625852626506315207376317753068951265568800303991233393975072679880706599974308937790651673452660015638587772036973915678372047263802678298091404220810309187125677031877839384073913500613882889956909614648210643136584535642843888981977409936715106987430397990030977590336404964175353881868444077196162671402016801809631054172525213416291148402692426350165518340199413047724534129030976383603277305132079803516024297502924953612187950623595611852126080745072860472556638409194446859622697475520995241196322079300180679353434053224070380923909117311237819058520529239917821668863402895405164980718366012281005622014388846007340420139249982834165946245595648800893200657048171514212831192972660307594724362103163840824003537464848250965559065135097080698421290192305059635672451063723633673083605108574332174029361196962314604849320146161652138728813586473872681904038321262365764527457522693523604545435107002634164300532515806875247537282443727542709238708187239720905992367660479609628441092895507237397020902035055435447407833085310823739773503492283060518629876737753602374666926359046804432296156369301495363363826595592083890587684674330603755140569862749782201446733016665196359893641605801435416538465202883089145902472533943735621990939656926806346895374071570301728201377246020270657996319561473950045700408459173113223863579821574874038781557881795130103470414295697162104511254395137142743598426899591543271026524029234280622136357831364760292196192411505816911022928630759709283432319241791716782310860474547982442720572641842867358162532412395119484567092409977088503156116197491744376007923323866166544686582423831954934408175884516251765294972818975978143332322334751529044868825354682228828429238585716391033856441778780831392059843205767728767220945792096888293516157375796170422589814859753409873246019599414828264079218833902132253489979165309484837658933739922888135706316621973488182473709826572882777770553901478100432105233169285776059949629524715076994945750746340116047107103962690306562405513717770892067363095375124040675587581899968984704851074659123282270996164603196741437123834737559365603048403765369362908544896735031686508475367153916446249948735574776839008175873106509448100730918320518899368811917935412977888373205184301582505632093091114867017695281586843795054914255599385246993518752405945023700608604743686006735132525592892843401145720577878083730832608943691578894448020163548313487457477532229157940750819160313934736116045251875084441455853739934352003830489294374918788533001186790175371676705386906048571783209641574491965499899459489660186345245472489929370187911316813171264866948748472556034751082770575464895428418994483817460202316632044505589147941620788582952281657658896257338298856160883137011139848116895536824986681288628633289647906726042664784118682486900323320555376051529791447632355233942981296975006820997530221923102168046480854624787036272330981788237789149273803342105838042312829309615660447888349335761694411114838768819670996589956595421191045675727478587523143214192422130316076699376804859184060588667322049551832804084147867098513531808050712075052994754250905967488051936128871327946899609455206248625527328570675239104255391458935192626376873354490755747692449863362345964121163856740103085929923162018320087795480453342067878943431874239642086513913061968958957031662817794988026561077467243353710216518283692215351499263429834503155017107754139552516920590784838994307474129127709452556390068525417128518339324050495726881146689220483073773133098419976174955406629795196224669338332769148901409652540090608605382630073459227304526661328532637561947608264800186697907040206701417676634270165823803921739663283789466841526199331746564096068490571579015873008333720042841887955047486616997829047892529420030437609088544531851648018913224164094406724878822390448327607152910989145451677339817484376892439050116843554894241554881063019106275392442031409956817192288869188429690720289526154821531049296454473703898226428617437555344580217370444200879537897308131683795421554772499487192467898077402787211199448102894188313359319162163772794746840744589950469858145613713516613628579268345179890252078463670745381368775255073460972888935226046139863346894110639848581661052778148093740026634434435463052092601871713585431446178054741712976971238936245427236716952628784373002288598010224166238711670656937319778296992332101677803533251904507827581562332591774123441010719068970007443238338826357273757286031422646695209057727959798966618757098910425953632592975765406441570760190119395396192902267375291457379993006961324208724914147910122873923060606675958039706673103475860518093384940333035590852077240434685488709579767901798446972210006475733542265142617771367024737915349019315876928264122282374996927941360820596848863639120403640069591253051005877257857667681086984569503469913728055527134469975860481636988754764413586168825675216444778506834632134081157311362382483192682789220653543191724321255303913148170454774251356233603850060950615320314295831135724179229722807692280751532904941757837276086931281571815786574076179683749877036273833831708977529306039862009477871216585949523282461828227977597805072445557169177586537196825161747925383694795323312167825821218195496003738749932872437951343514440668523061767570377891683387760178701352375736696156031486662447778825656493531881615281093535246716082172098823311065696395595052817444162762969545610445224582610897685700050033882960430357355246279410140640580773419477719255251752707665038938352726818574449521963221053301771157955671120962760345629824568376282876274028438430640505733405578100574717852754116905732019389404511470560192994959750567986266401414909863693002181076820843530042195952293232961815297335918290620776029072157505347183040214468492384184538245946109384264339951386982724700890026540002623702013165971984299124277700928714947552374538546116932326692599886476073922441602450630756812787803823492940872917991754781479333768110816380336117715158693808813002125956380658646550655248037260829735855679255529655357206822332105510071888793089461238287546957822738180290741948102827591131069242458769449643063492312761138005562801624070144049994216601039991805601834338419424942249205758165272808913687789100720200230208669925000415508835080284545158859952433829278348834332443800526284412687923292091164132883742409744346192848335650167686154631634198521741821612362769770403056617233367640722701663277431921619162099012776104064335143775546125175154928596730611469516442659890827500542562339406968461609226196394986184047075567356095750362162368297802169426982032803492418527296472190429333883509021640290158358447277038880737342163700666063696829208402926097566104435269289943020165805476264681613654397062197083185518528488200673945682836451398144732024643351396757673746632696019137072748201753141183264659310840768884244065851186718338914815515123592553031771625173187796036923407621938910675009601786337554035295863979038159770502928087376761172912830350174851464193851990992214087502652648222687969073728621251258936170356878701164099511780464953197925812445085684394178205520888521743591523774094461825851254799543872797564661694804478616442140832402296840458488168692420651928486077405609666845958682783897552565420630316783568203701110538236233508120880903964031519749885967190300219770755163693614659792718137432953972353572075897763985439708116380014695744111205011451511133566156872075647684647081786721771843607274988074954623308181101868063130188246217635519609324716703161133414677680277288381714567661737402631516376017379082724602480329805380221135682225375240522379411981475118635676303145833533672439188573327680025174381833142412554308555681388133277143421914663606846922919878259109867915237793676271016645048840572620701013003890730083862371417712005135327737274884515758044451824290582123152688851505534086727533500013409318030898553810907225854855291191386674184694527910744294419155190236314697673829299464279925002018793619324818376441485451672869745537782572094618566636356571843012358859953321720472204182454577095966250776373294311000794097830192919266900213898722478804682831159351250648859389207395413849819822377856475423584938329260649471308023108025842730682878957301931582378735203828250263985091748949930944971225773446775916451510771726741466809996151370484993845879585133097601649716336515569483781561341692569144230074863025535936935977680774923146833882707313442938091336984815614540356918243018632782666658384957963669847537858832502392630830376367947037122875040534615962190623531767499169058514350212899513224287011236368119918548792543066995521926752352368765551668223791685524287783059739116647246919471955970316851639538258720744799890556081402368823577236740117207253114327712915921214812380488288063329888629474543906330197287125903396621450081968674791418463994870560755981421932123205154413142454432325417358993932461411953291931293897419924360641303103330682864498414684716496679629443056063194274659720475149964729885306500254431714518537473142009201245241377547669119517336254501172768967177472371784399050869388071274377520958255536430259073525833715417098544598145179968703789174494071296326544132762716490705642407292915035083641966673147515403755390064776908353005201234763698694588924774533126845547290325550090207078182535329089774074732175253438481840265828143131273502024440778220267486641456635303708974282207195838183040839234270480428591501438071187430309657138805804851823042349419016987373033673890805383627531598907158980769768530934148143876265294048110545422223775165735132707993800603530921125815759999596660014218508598329153554973564179396619228985048055407525395399908622483755921071572436261144738430501471118595388032583377378632972538476167531110969092230115531608871227321419299328995995210111588453950872545700702322329646622744195865400126787631945156038906819029811562301777797768019530457585232842217493830609765939073016178550652653432357370031407230519481089614472626148648237345580495656012702301832732450831535749122247541598313547672517788977927227771400877427443602083160847612170028815241040078590419512449004096676373812370271128067933759772956676122634950055557905106362522682035998704735603896304150551107819696332737289359870658443914620692902694797357284868994427290552590136812156788311547918253923269696070042535866478760576512100770790299980207268367397603084467630027260721550853197832713066300178233406092330059381371097642067797324366287694421581277102461961648321145486291166402709430595884130974289659498979025945859303098138823137172842731661110776257794209151556967173626112412945843258458472366608218754361533840178652908394244290689255191888647968500262356052916833339283531892422534795176172150302087615336847129229616129496041820077478624304730679243546840832754720544606854752538338601323406367056583264632758546534493201064944977438749776439350541080914032262851563204300209958451850823433091577087486121652278235501049597468825081552582345140166088109127966923031132289221692774324025886040855003966082528608796489930037301769714574906386964283816165929182984231062478518133709591842088944876018412859963078359230991732038669635545792524763600047898204583576503741525489492914886389801124719755016624218356766189018011223025501842824228493344872430314462967504170937763242070293621899967415601423616519564046474186748885971271589118371057369197104789941500344687183772568748729394202580640652558714767463826982002077431369967000292739246081690017467857213718200984602027458678800065665787230804861879371301623420224678223114215719999305835801500877638935037216338880125302952181068758037369997701708632893736085145211149644252508161143121121610757220149294959281158874388593166556776746325830559703644804934490777981902705090636651936071452959713701087055477999337410154398381575069122255283280339316859903149727469121944401973852718380848034157945589638054447050209168621290871594626343343674829178855510168592229965926904766080326500160408346887070855972622452190737039773714329338324591165382561975867157486464159379769430886228698437931021489707365606643513004347386450435291171783301644988005846930004080787821876920782187025006994283179732285934104069394234253278294160366936650944561068916063003201525898010772475885625748649338267021475016315028816946733100400647370409984181611188483635802001187969449765253928202351914143070571948742420271569572030903056033340450539690063886828773787055447709764231694203404420716387492242162037594641647093741597224636913126453343084140449230760123692216648504950113759057667783863318364728824917948515012701680218714544365690446138461738423160020148503212632878804375490237463402230200163335858191130116681963199122225196236051288246826878140714811779398965631310187374019232495693746710000944984242536878366178120462190569208941297759919061979467802483754955457904392326309007051325496943986357211418400454746615922049795647703266646572014602202689337100560473164560133372597105817152784598947420269966479111845294581695208893161833174645873375693228781222322958802258039398383632601472549217843790887497852564882268103453141435349928424644004374190954203787598207182877959081982845208530072692358592780475688835534313689613558792487310668546497323610864346154804224234558522344514380472631892648415823267487929114594630440586916810630350628094058315043188450931343240931743676481281425056824470748952707631013669011811843575521233753844415643193817133720112867798579013022418967774097919924213187375690331865439690271828034107002864054052394324578907978511522033898798818624973099435184141406369958238573194247097235398198252993035659740142052138961451610591716238108840727540991394473120396197182331844366403069486398619807045201910741500452859407091394548500526634968041424599490334310125434138444493476270681885411963357206070790407204026536930785511382204347430739911902850946587220816756870353332554971430286305798197660448570561822719173429395273811796472492743646767286546029624714929853060706402062992672870923295567939728980284455919333851945054478215249571025335845170321545861511470873216743884131024062852785445472862286630480384606347763639163836824386956954580162081815351971981154998766958170015087709095735749721983673609808878232511024224655384236305618037489155423273766313475526863907318989977778938442823175837066369692807945425384289608908022191719668214786535349844961085019244136737353101801294724392039643020846459362675534245880835173102803383065313833466931049104599815693542962615230812004471755831358340224937243280368204602112460467537986513183184411473538438869763414840075293676880698888602299410145630848166411273217794216860348309146489251931004420327665304507286502967651794333021015970144262951862200286920101957707120366884963575701101370959837686653089961744134950508622579311575866127958797344238858002501491049610089751120083730336416325189483686117486816799195317933190182686867739955832427374770280307293925315282897931623399794005864931817767807585131223658051876949189594550005615759272037131300687205477522295457886922425368226889778506692632846556990175140037613266574127428879934523973478389291996552532691882674469598966445568879269263072975073996009311999952037771313252404364438029045922284080924143987176854955753238206741044351948189913311696745668217842575251735717193272120029984810407425362763796635688142791347891670704582039397156990900620544644550731561478103543882876298218295238471925319753001146702427692305192631717285896158021566803217248351901315165453455899366268248861109140024707568117195894149383069466363780540228849063094259129598838213027845000711901869950879554978740994926371859204700994101849901178503812306691563318832478349917813762826477828588448028119922671232784481003834736266625210866450632389028465219512665845886495587851796483157003472599786177017807305636630857602512442127718330365368408556416883502887325142311583611332097570790915970025518211847100796892722555895712022100306882183839959094524716564912678991322429093813714835820708586825691352864622126363138264406798375275655300014919137414157889188033272930957533420683093329963197383800625782000437225947625530977400511110958558320598107860051234142073371081919069145682836554970785430650082964016585018035627044902773894455337758809235480160972505216434414340388134329413874009078424998168159384201114710709613189731496164065859974285650395394237243906228998719412204870639213508973658490449294835390191243086022125175936719055570024531466651011483903883718529460685954624448198841184780887049223219610706698470907414167148097411605920591509240100803767250857576763571642738368161257309787673112032713051304645387947355015974762051081556540854623075472395878501847817363366173113672260724819385197471049973316365122992290335787648961727729340963183847598207350700093454312066947242924513456635253691708069011072581867266597860057886776171901339628043859659778520090792691923602047592782316191633026469344842978689302988081289331528306033051264344410540255537683550723071338304540130193421121091897942910593354848913880790303956836400142255055945096502489703135449500318276006387849072908674619215533789075575509676633877572448294114628712457578515795690681705086013737784556605614998634519281176154798114373025987232004509100783236806570005540103485000905347998052586583987038924041649511741368793588815152164924764161139617736366626458593816739344349229000669750164365180894320043093241306398401843375824254891610431707540640427974171731462605439400078789519720716457775968384316026356174753415803663844354627649212346196020701960741224321603307993624525198688532040945999055582309477633836832090274305317686879974836941858145490720454581882525449902748596002545986971912200516134634936503422024775708594907289176883986094370481532374142427739698047839082221315436516526938008370040197047450865790692201248665830764545751268240949940913256222778780186279722322818896558723797347356876324845669219934380625742034484991369839213177265479241431599910887809496423276965338784496424239488348754024917006508202956815444484740496562295806459754239453735231494986423553126591598405973718286247127684556351124661388083006538369947408262391129997767356684967691775698085772962735408127750804769262443157123784497303941935423119750403205032447953566845911387428949203411083957953091147968217464394143484672554457526645784855742427862829269990320387103804334554269319186991735674017753343866483959631913973768291779168090634766432131675166599013068523233188697795004571715287610278064305548575870366785068392914934862197644669212989980114402847898440494202762887667986125627227247344625332050991272809852512293625647531247935387622042831741753308696004559754029844033560945045072920300560403995480086979568061990403265788051223744776799762981951634999748416521712177023147818301901688527532058475454471266376902977400752706215760121123755079771478375495448736251126317940570583660290421055039196678981196815611786166055612446061945319793413490356766588674835104084236928175883053735817065721712021162470273301749752725051181259242569562685668105592761389325170401893048791714669207414057667725350419292313532601369171731187442206616382739006676709628511720212822464497041105630172496366924663623662593062856215884685106521147236279884447849140390580285697769893374805713074240632890871831395940146696930913698812456750702269352256240485030165099204629713741597954130888868808858927120453307383124816670186853649205136194188706439114670364461796854489479056583913185388802952725118692033598284875988419080828192860459646757174900759990553718903289270249062043482370319141649531483257996093657016772159812003203055955521109745451576975816134819515907622525246740889417962310915107428392449993483991351540900662340496777403764033926892433624854357636860839689251469534103759489390532325209285767347492214056015440161158594788659416717633879400483100848480735758218080643281688205161482110078271732524324744936714985676334065487771356231134572885975668266624472978715232224525393065071990001084970019609900130494727733610371468741875082475521720626445623899555716960230193842169185731088747256074499280025571452792008913958916381118680158788749957084999360578902388326217134167284431366094158135499267452753152492894830332006905980759052304893361662117082584314656812143739172036858932768329359067398261280545022336111464975851698447567815134378615899723238251887823441274397555669342464073818007347275806098102667993275226200694988261194719349839379452538513078740735942038531147346602782960425287006745007068731034778482961885233028694753083747478586444967653005785109460105169387391122328756103797862238548259306811697935613261572824351090850648461627909578741411127779529204944204006765804077197026986498563460465140088185470702997393386269948573710600779118952262793691327312655040478633015608652541069477209905841026490524310819053547407624056547611609807519526743812965026616456351218823461779285032128192026621324831550961569169016239427362003660106336095860618308290582434579397778197581950607359810360273893210747734457907769785540401331363789237394157479732544107054680404437806897365404467335680869775685905908008750865976966105408503468279004590845904474714239203635611697103564965960300698009848613323598767465239581423499440117548990433496660927783789711012363368814870834388768444127570612365606269470263534204717454005376602439985003797672156570550141251297580583904997574235890610546219553825772930272393220134481167169309743358130764905589466661899019922094244861545217795993072046092473961852094175502595829328167283757573339399870675799398810731947162372438732610222340523940366970583253189437020334252463347414370796232518750167450665168488058336808483364888146407144614801753282193331294460364778183371039264974900959167695314912423147679547411365529018898592924202114271394056012649042572631599878775845418366482507624711448915169138808683993387269506615916665517785390527475608821436359132415225582152995267328560961948805776036276278688358703712021891511062965464400235048576979183832075365143772723928221601356801213930091293917800354629829716494354921456554164719241903145154771364978071992869332542386855884362828610364160249593380392891076181465437167989180849725025520442660963728055207609222473329763153408721111134742466376818672976493889763411928880014645747942157348928329805569641390734322176206748121341150461196596448575041896699877591996468248892692769971437872670743486745811346701669607939779115770442296801735796118234315158055676674598143610758812145554575075245943653307953704025450386066580530720785183355064944370973931237772855567806824499554706149366301681931446040636810777799118227836709710816933688221668220851853099417485460903180131769745757742955894651194376190426435284173247218336075615409583911786518129783430309457449291987681730393331852927418531248464917113843620699134117302492172251857918689744181704752883791024053132849079991992628907899471076008150897647910699084532915852887134815557529792085874112501291505256977186171270359034843006297189016708608416342465527466593023844920612904615901343554692342386490190648282518040205962995339267438276259997110979056568349723177097271986826519349380302926840475273475733453483675075235671074442895186126212038444483518666970129304029338873684107946776285300341538739136073865873311093269611627174843534288946640895996114434356343996140782204594948666896360506481238324139518637270553368736347443301004072203142955505468142967385373042088778663808793363664932324934661849740325795089235549906682505815939012187625603556009768108068286959582515418139740717486808893640246803149546169654994468440445488320212878445714220703914267329886242744088233475273076852090229277249699287270188886245363997194527744117807662944426560618646882301552042423478642432658479126064720730417639218396870835138733063120229557280288096855611083638669661774441177417989983459187264625945005517342820506438060618945264140190459242388485589320196133867128401250195997009993431498980047289147980152757215096780257273749291262276610596148583832043816065882162434233392254581448977142427108751915148854144884736276060791632424493598394056726360820260441208811231401783592245991770213151984165455981921264489551530968466121230385348929411501376788765140251608006914533690979547430937222852853534338696672785154741402192076334580171740044582700471271332079567446491583817572278262963534745203609380873649793460993063233265008393900411768650712002310979504307466270692978947397143362411037608185487818211975521641608423601591315795318493083245868643798556833385272628339307721114253258518986752675795515196515663871153092581978641917529616418896526766445447489717077735220677013494310908170831557590041734390777303194711637762143924746580802165985348130622507926294872541584782440301659410071765274629980296898495521180896389786793449907847014538309652166031929403464446578019266592030630992343219954073975520618746067866713290686862238209996509322123362861426999968109736774715761135578048866435496903834358011805806823630688753942993816001275864237452864415365485961111103081618796792724553385198629279542131513569016889333605875415337763397938175551716759541231086208287743029903196405391104060258716651826110319656445620954183398197516418934003061871644665845731039780370565759777202255263227988532191551262639166097029165373534211105229681372868190691295050760374629471946922451680284242637726853418227133967716312412130146450669361244246094701428747336869665404514917603312236741780044885308956003802425915546567514810112632083658414593386459532651242415090117155387589796391146418261208085793900363156493049840621734184091960722965227159579551907375291917943289628918516684536465971043883696042582973059461691861416846310723530708015310383797703449541777699807750598107937089228508189930513323941533764486282402849224176841837026118611929688345987217859471629100742115761896928959370892090336406939877482482331757463570328999495598606658740255838281207755303611283111738524265714831687020516761498742248907762995482074372664899459699724545653158939693162407699285860848851768902859399961264450510345950299461163566302150997655442274680431821113003351269792662874983996328634390783603918355986557147164000194007644504978124101580911009975431764895600988563025605515062697515733669545748264894817659610314083983907952865044192290790616439612046186470910138990266981404606075524263927948410791692807886731265256257743303881535427434400306000447118925150813531412542765218552848905858653513538596587193772449045650038275412089302409151350072036892602297237389820541262865793484917333776793216724195704766758245484608852688304852946865452682099923950789776628917127015050221269717873209143283079281077992859296864444193850294334679451489698469103362690875794230001352662718573813848412424878279626255895374402918570813765659265668542671839421118024188512896844407414847375926156005282682908759890095045937556013886870620544630475104430839687261250417546957117082145657288098912706352788995544060785634907652307499308423539226395871044118119766826807215137359778792469068197135673426634615129495980032526546343503864415196589191708327857283928579901537930825548690434381430292908232949215921304391533048885576046831441430486616088022369562353159633625921455936739159637189787387354774835557551175160799965893721121920063827214293505689396026699918577729240528112638216217630842137873822877558376697960986972916102026795788106563689354365685406998373564145132208577583323111166880068743202184415748925348193262803727037755432732124618658725934322395347948650043902710472224898174483582145996395078685579368153640483133536256626110351163349537408073986233703113960283249233060900922605551518420875886203653337337935989224675195679068623352798095590505746566139932766330006483055026753535047970087961642157938583792896427190887552860482235635008874998629357108430296392018825927536759837914246696319809162643436237462819773194791409892856528895504217041326179662646843683948115401279335631220318329103637968585359239705444187581582121487090748069996062781435106489223178731893353274629725281357271488577368500751997021157432329178673153374527368685469746789666439315489623782445317386687678236294493775708168343265121055066209484598539273206135259485551697450778101666438367402634478573194433544720596719261929271304337673721197629814091630512728199727691177358997693251407080863815989292258624974863016223976087285440937067058010532035524578812942017131562975747663838211672504408256209739302763582648655259596231438055192400767946487943503835126538901325589705946211182013828398377099689028740844045637669313788465756943271170651476897670982895378773786432789849572851220443450634849563860472794567023375246248005058240932210937649420390447139185785423989281740478382150882428145390636887905193712640940630082871009445934632660947718787371953502158686081977705076685609690122325741736328166729419353206561263008094945593722992293252860761586066035277545677083445443456193709234807749470843091874940480156654715136154105433344001645253451312411746251953740792836951929772337366247688590121102839874611459106827729769195476507474765231514438390787200201544109278317025489655991854853864993567962953288149584329646693072420853112773319743187447046046241872842207722984569666883575578382246613226226553776230138036245357859099375855349979977932695300860732753292740650055027062111526548777222596118769158099492988904156419873451502152297448453746916450095805568799660897404990455520094579433571556469891233696355737360449011554804534097070609489142197410301776729975045850712021015329912770436335213884415406724251218489097874228849975266472509021766452960339909066161213652694813411044857383283847047724109937931395310866141009581653580672849403908880479139022028010250347684705365950818264791217156424763285622924056885816324143948724332178711552847228695843007752277067150435274446831539051410323891089587590231586049653267863536867385116851369968097984469001773806515957793529765441535014003649232232400775101020538621682816310753056134396216745228223570856462677303651901198625979201677495786010294667892804889566692466075005843021225066449984714938829442716186174194682211053236202003496414627131690291736744293712379918257908706152805959001569900665752391479333026513730395226778351883609284110615849794108549851160197285696126602926761040389185780555571301130289693884850186903355130328822588877081832318588095000040137526866017178532883502445819271927604000557574389602088751179403721002777669074361995653014309780786943250516979874961887248663902218612766186941263075285730629437272200348752300935707607068302600023571954387138509195310897086107795745555129502255030502385860306661988950649060421469285850598592458481535506693580097003077708368240210137035225449459645495602736288091441484932650098537396148697677534806349477267926999230408631126054670824193389795521194249320032703901238314245909775823365189426931865189483588831097525568045384301364769743013475782337942318619297014243104626846554008200389646039528724246559425158970555060046517109981435713501126296880682179121708354498142006820896214953703526428626391177884232784986432416865651147362657501441097901136677784690704820312373011953793834384692448625725630735941859933878712008938929575656728935730762361243118330892932200497882944401089440762543942015182117268693166271214424752758943861330392020361927547296074573576509346216149543137092058582758433329635355196395506693110894123669631598772182046755413592295788050698756771184909217920816003576986800913640543202713210729259781761099377902984040513011750154810952847819534001766141909302883708721499871917031047596187007205022966732541622109750690346999677695665602566835660570168377175224220510315610558774205730325157105779621598060929445019572600737836979954387476750655724704830774964875480046371690641702261747339480860229130948039148088553569784076029738054422342782324814147616560490715073338914967881575972346970827676209087843651408584503037416823776167316340094695865537128451760993119022184880994149095313454409668760330199160012096918652958685813249666949650932558149925410610131892786163131139763343617504608000710281134211295780687436369555137105493236129591865917978268828475849891100698332908470375443282057794147904716344089281716042690251183607934722702318622199733900217555890601777448172401996260320250023415692208625011739957865726073820881075203706629287725328902537415733149850106734535148929414628641147783693295178282447688923868701954665878590494987179906688748284742879520527762629681042354779558759218940081467792511902976754708048219227841715025082127836117908709141387627387923198385248295962891055960741758610420617030640852975447919076565112212623066566041514435193925673895407972365552565597736621385927511849415461625200626190304818429268872978997190953456585925033796110006363467315318129663539773052932710057199109440844055129557728710231236469503241435069366405294012309932671503387977588762010899750426224892564115987512752218784891937386639452647550809377018884093329224764235724893051023297737806871084764007225589991733688123068754294774973975677844040802597289951242812199558042283861317552965114076026870528431536785741594494337334823963171818733484206872247294883382208252722071787985397572116753780750975631134532828154879129750464311378045934982235004718459292947687586947859252456761115235648296035882905007535057399066513669740049539104629091926005783644556882085881173639894406206886066889999143422062033588817116825184388145209375827056640950790755671511120072624377787264896676730131888744264948044138409239817496646679992289970967094335382576650200320435609038209707074179660895065220019365543124970804924829931014803679836331213718735650793369230129848926233197929490607879587596425451284662734724570410881497927547467446443291613401572832099916157797922117306951608171090336498561901999855779391398283528699888086492809554634064896464879930751744306170350802532929710798691915866519949411508158125604156041824524570095041506167436631919126087004249660292415339644042312602514779086968635482182224872971508857511568690121297953120792873641817576031294202260663458016201206062101942779772280568227407401164319096735275013825764835914654358682262140324129564499764846273843005199603684735304322721196902319351193715998616349195331529073601325089574906237435796289704946798210151643228799918421743062979868457056318075064113808924432041953211061800352332256269230349380412333476506339333078362588295158732068533603892478954129519856065586030559663936939085320022810383260262135564335660256155217682382669682023247332073995663071213611453915848037197539005365777896544943426955914218182212931687129687665391638553143399170547424721924819802909897260059340387844669964875853548994267331038933459305814412508039198062630747154609034516416360518661895114403220399796274026415566005617489231025139239716488684049561930877648433145507452038996789273880556726493868039825218120589130099709692467261090650194412732556788809287866721687036842111078526959961254458260850892996750552991173891327247893693239896540016287332317613721873097004031989050690901568791562277237629746980619810990758273409371461487938082874102604050566599748091855018024925321830584965852168685116067905084469854119728006342822700586700639712338779542699172195544386991626891967366845301751375119475216663521799263675082088343975847087592106788586691260200272782036085772638965533465295933784024270017256984326241355587602777355693692414737492965934976818137210958882788354310151790414028314399749344370801774116209700702133982835055485580638383681788691358055718476778650743459217611345337963870840563716567683501303434866663934199192402228732174095106760695454851629490397808544038117720672976914323792209649880214668862811770902029570123850675754332462266015858544898241331851041464348715743406519602184099210144960915188571904545499007451615237883239749827759268208857927435039451650854425098040503011002832980534070217801776916941569377399122682904761096545282688930505210797435971568566470126989432016608163667153168796195755134272459570633187272500930847021244409448542698145845401791032300506268809770336832557502106276808714698571148805101116565087325129039975861582363617893121173327328391836538182715597875302062129640757553046556828153571405490414469873179396634705704529065592380167883107573387329201059856351156536462836562709667729714238728777724160738326764346113041923634811046846859798683557905037489765425955628041791504663455581405876770716172969498147168508586765038181269780323129490107205989251390907635417415241237697243779552502221441642964387116195059200471929603080078677184223824898839665979467019183827606353565778505804839624162140934889391404604826549648933972005312903735060838021691276361428908004120251227453135034414251821550647857340330116508437957698377060961313694177201079228022467143573620699741428818489230380796638357166940207953026508031073638743537858391477507617031314418450010466512275704342134274336257848890075773118101777421084815951453118403933051399915134960081109444266765484910230423994619062393421133456995662906829749349738086791754558597836072531796434405615293124175657782073577840267462671563865387790246993717192426399076831481425696717778986775602553539666158105774691741875881029157339245176274350964099840951605751701145731220332641017126833492848845390080483583510900427197311635108600242821423297938421565019130956977682666903205831259211658516860376054613018093711235308451875171630022700614386164583024012460101279886079697302261917363820766103578109593622462944710361462192685157182171222141373451801182411983340272935272575460695335931767631547622896106464877581380724156587067791111497850089451939891291814605950437079290034990346340195933829710088342092342070835799613082602451101987119822187471689991991976714581039973865652700802993872865348021615344697962912811477273486733305737504869274049565702250260834905066025825973111114143577438935427860699355283750674576342128424255441930653850244949202201839429757413762003948933283503198105903949521420396793660131114754335276638067154915351518217407698703986353115312537117858259844229042435017743200668308456632579562310562134369772473198381404430971075581598337616597354545136063121306278552455310322130006898431176391985801720267678607973132391337490370255983478771995472181234432459525973760382859043499850494607484244984491118582485872082864848918613341898931696075651749953122382952057467071066399981826743926670254347311829626004993422745430983975617491594358646737598545390145433499454565668177827115434329342920082492862938258925319519978297247615852774457296953405623199824355110112590488304989850957484331850146621138132517261861746139149889919517610195824843435326207975784300065677167199412312128465648415540162811584175722016706256754603317070215336506679872713728551430803262683550513813234005645905178091302515169744602929640287416312824201418507876724749644048736528991344929457352601000294465307750944121346488974390291698804881030630403890452583044436171504787424958255426045832720804732980687400166482282883878180655116481440547938815685725539508911768802824710013957734037037474026592123255047347249859710201967524221385106647902002938943212761904779772371118851720697748016367272685200236381971970564178494541432879412329319412001808211489999210818477737809380080716492015484334629953552350540292405065937010438379977557519425351038622679995905648420635775774566109538539454411542546970439412547613135829320505314449367299410046858980863816639189751152464148155274116045066266291691406894741901689508068739672929643206474922241803960902989226092938582229066406048330884562426638906635736228528972777427788652783242301578931764435723549151467841854756394003601716454983012345480206256897357044303883476014209660395020867505756209796090502888203970985160399751280524454596358696710596199901102534839033079612362095257235373640532907489623924662499664242973849408411609301128349512861529787930554852378384729335126269243507906096711156553141461679761968803543730817718709876535455984337023713061817896041665160469805905495453338803409211755399917493578069789549912251096714435337150531229768238216098122352174253397174178000707129578032410587396278008707918431360607674044012044333797307501905200722911773014552478412386758187335965457267018957021400107107298800690704644490011695194184177456266351190595874655916618507833941831151196938028012768083126864941974966455343868611822321768764760240467925823814333976771640394885609695140319939028457554997134195956839107475220447480008611738910956408970839485408028605860441319729466638789238951735444314013444456021457331309842254008847552054578951337861687642622157782326822140049892400084759881234207826089281924392850288630332919839598945285707427925929767424996006245828851808424593281428308433639994658664533744551198876765767504868869800108018940190480064858593697201161679768995719354426789986346737500533590609113818201767036653646831448472954484468096474593033576200533723446671263002378558555198141541912113988671634723350646830083683317572421190864265421677564225116157328755002035497883416893486260959409807264410715853267785374488737076347384556621399271936439151652980603808569287970033433144726543178736051515611161130738610801775953182623125941020960151271178804450471894418671434377771942417229111426798181428755012022235650053954349954545892692245457724682868877827872391020581011645577002837951219509149879611864285616717324148835490540233940046032487654428933068035413839044216164896172099688447108746054648230973437421524833474702217400956016649838368028075238999773811842126424239009989831323742967174672070441484671925982588509203356828045509753017625668941923570691857772999397078850260479884040949516771212186696038792412126649832580942505667900434117497366712435411784796897272738706178747040913345663937348322025058644323905939346786956310503611777846943135607802217553341829604662051432096331505778546362002045141211160472545039491520364746782103698521295166041056738660326299688001819555744589474834196810582275671498895540021151514538248555578500615055178320156587145965652378944275122889996380411250166059044925512780272224998200811557668578348659793238842215830049217182079721863752589287059035530792462062698302242997462760864532530122560136526416716350941796692914354516408486620020446550969127668311948948001806155196981437199549640461254300585562374641230117483956847127924632792800153530298216446363192340884203092001235914375414170417305009197330309785232318037595369543170792865821376044784168948268964945534851491067914029986779480332667687624639655603514045472041888139306421278998708929204040057515667085881078789155349123228460668112830590557260999491893469494515251268710845055270336948622764310083795902950707383471005127940976043771368971419597199638057858949259082994077215700115428071346252027792731608927123732590886149958095677522887059612966651291562087991826629898303982281060045641923961648010696141972402342717118370048066961183088811090392894505203220439500905640715791786230232458739894898270596753584852323763431173310935967710183081867258117724076330366347505933019662111606703218781702000362367722201588640141591498985517789821590215110493316743991178818178623428951086315110540592829801239670797061555000872924019913005253021307722083843079592641252164277155974192370039333080551317415097299474145580453036226584917879033164475036479565047387196047305036290761096380180534908468982501674602665169213515691744047393748262806498390052913705865293532688376757533289905984341857704730564727693861467170676914751095319708930751833201201609272057335743747870615503342075896276836573746939925539473598746350122514175285789504585268356385600085846435519540537198203663386462220629895138862591527258610354112773821395556903555711801619082078728051215628971640917971773648772647578893618697655375760253960596396003977456751512888657026286047378793694483985991309270204340102713761302957291411226318769352004049860609180307313630625871167786262236171825077766912418281186327746786732810782256976811814244109835595302798913675462486589227655314716441735194341152864599242613942292345727983770504427779842193910179614303409482303936073666598000804234061278256782614306095000774233513410955434351011841774327207801667773463300766194296136717652337203793795046431865515184238910145420630100127115138008810274235439791089057364132894915594641204759119437380561518972654916419506247061357654149928865750142760935795334923121169927836447980622662800475553078768204878196618396812389362735266601379273650593216286290163495086769820702774052303410324091399689993160297994122958657025523532630733427310958151060295147610556797755757272930516235270937729009861740878799478021857949978489507855336157538033910070823219128154698308833410241160572324004062291653077036913551936662075703547369355936807023435466184530677084559128385746153800696745827829579320871965476309732956435373845405694781667116477727518293196107800330057774869699172962291193146969359525713614061196740836648526233001539670066934876289108880787689319073429299477688853019440706443692311316621153430788991968323327207839163288967526366314361058739370057236627986225978040023762612264154268563731148667800717585950939288914380860448552170955330138376577095804252308372519160155341571655614459061601786407668328561908980856761150054799733210807497490891617176037666823082762596340228383107463831780075505811301164952521526170268611211354242412597525230140075057955129523107742454772167704804463655877418839067594162359614872566123060397529674070343019557513610022579582584413126905669267985459788220994002398671933165802213293101450554557805771757027446909332077915054200930075089377869901110918375662161525943735364279470000997828166343623734582561429670908821066982710336733263544601964064169557749314041249787135746769557015250896735530906295997830931641693847818971504357757947505459093332064758208346017174566074546774576890620883108671781126306908926435713892468742944013478970757565904007866267099359989220800060057402126424147393626421104992959648189307122487518078675552993622150292570084693946381060110056446611517989503224168791107164855934154313777162211447682720656371715631692899771406431672258527106856068148152620632890794119400481034553614926920221504951171584382838262849742194176375141965598046407988784483402485969995559903808044659913872088668077051520382528843644295036861592435790284298297995879691055391259469982438026748548052704829032794581295931738592073672089152400091253228927953818117242617490857462028177299641162489812850586311424854767634174014787614990232988767604209959364460712811521248374100542262567673185525847855252564610610930402926694195385889777386354529426655051231559392768335603135464035464526173790452744280912272635412337371571899307131942259508603273458382698949444287131422232424767377961896183118819363622787895888386213056878813922838155272444955093453219556652480447815066782705363335637616909304572492879659499495175368354146488160194792660956845301182418876160294343012228721779811124804028449049685894585657431564222260282793229577490172435110440472616791888767525320658038063446798822453078393543146758093089326218876168856947748353775662829968278544026254571329313743967157618952255712368027777485305321606447681387521963359465901495389759924854289841864824153637560132130034944266474110413404202881190773792757599646390959989680106110360454691774802897012304488548081924944930411590659316442381352715215194097359397402115278669208410556008037365063493703294125901730538748832806792725655948055917673441358441178727794442509097133550715236388652547577863518807315237183268732702490553423889700939193449408849890830487372525155103237051657160761511571628296796689368370053119306210084602724846530420443503771221002394326963799045662506695223563371212910086730833990285366931638978410646879053131577375948378777457807491537592834756192684628683917065978221131226416853400302292029765780355655131618603553447589028119834319823002398681820586883588772267867356347391437606468316245273712414695612590606437990824202603148907756435479768157791595699552738133693057114509268118941849114735580966220046820952177911275573729580546132670668610024521752500713654568476289241094477164717922611372421386074835031118345043419692071486919418956979373311137149680440884976147902701020269091205853397655354112142558193149833257236594543693300290791767854337166140516669135244392383281972351007981466438564421157421750572349781795408016278445201451898328585218340937701012729564877822786831633377091860372502177959971988919755284470300843919510831146494714844986316230549999677804413488260586150180026428477886774500161875775532852945932675516485836920363754146986052781859608828029245372106537604559759370126764120235150091018545141978002073991657381020466260498851139692953591087179936443906173247758687565878352296865068760450404600679938218607786941740288396334038128047820708252560800522477085716110294497821121175003370170327212784539356414324461199826831386830239695027901428036437540100378595052930238924823825122872353506832344828086506845593775449642046019494902127783172127126005680469470530496656256843108351124959185189302814296459342213517766978953304382447083154815647748784569018079815314339556296351982437687109208413317802635731351799179990632899327669731946952252884467973600977368634032676423049445506062245583386584348797829051238724822396768837971835339645166133884202873494553260192835871684511615749969274271531416176579947077353896137787903453258546068640900749797638655454951089066112063481133495338873302026600795553948500743306506282225265586710347247440703937925626882874154189883351750060872798087530731090466209628964477073729788685871216682155310961291346656136108952282815684085400032469022930487947202201952497496707183223405031048652825080643741512755230715124015935590373269297758002161946034408976598662475815572711415115974198392880646454017591256733489446779766253855479171218769425832003130446957687885157319765283149716474752997566548403371473485330378011067374685278554334670871125443452106476796399069793544104684386139799164051802087273556049940129533970575928310414973790728192512488696538257062612350058598791079057000743223331192134055834899627125896948268872556564504898114372485651967480579779909740320876342701886176001247836415045974939670873242065355312473815182415821774416571383062781755932016521095057097883570152288931843455166111954956213178579513246090686332244933328335080972647378102042462504277899967920237449624530811187159818334988916290076265350395338422949673892567428482054909320427137448653860449606834806023688953761204733669097255900535388507773072208840590583816270688051745028471546269854812231740858525544960556190434494747308974648585714882658982490892772864234939611775836720858516001655005371075556455091714540790651888213373498405083066761999422131669927295647621491258846440342701203773941261604137039046627263566878486770318445161537010550955997974490075475270701715832781456432121576541140971254221375839716061245283660523332942816379600973200549348134287507419763225580585888947313194511865420113393375895444812291492593920407423869113617007742156525565551997057659798327002374014162844099578761486682583566975277135517114498333501795259768427058255674496433389592932988478491051162108674059212796632275796013826555344069473839663188169254645912100302110639581526219235713376193143527146328298342469260580545364804608852924842175935815184897599113981861261695854368804796834180152111331774078301100952531045056459152794126013757489987920638464404806142306927420969699130216810446363166499922971446053318287072602546815965640919248451478229805329317496938555874036956803957480109936236166241687371767250517199114304596461705278518992619245072323415575458818028304070718568541318774786481592605804124075107223001679921711779868504046284810967323686101631010471138578242475198296769325410451713113416233655929255795051154474205056189132144517838049170729908421602400034998575211174712847815374135179818449884429513469188462625896061752367040402388307201801566449822848224433503753307803028024815249892497670578882048102279505043653125815487119457868790380039574841765748806545456355596863269042507175559189299872323396731926549262124295359235402440308513131112560658663497041373715277294512561025761650788927693818174235512772146080294208245405491841015061282175184401382856668461025218947364112136658035235813627909845579414324024004558320882977984705316713351082123838867163953224717385458297990944442420502495658025301723797844899273983850937099697875665699794573177905518638667547511833151592422867040847218855456512665643340618808986708517184454409130347344125045947408512713008959093867885097268007786892395420256226328742326237025510593868806210446220717475998079846670866327009845831076350347940021436608525528619408276999921998564405337245876457078727273542541039151256206967894406916328404145796312122181663798732566709116943112800602967260786694397125497621094541140457002315487495220319386799322511921218240264767764282042918496794895332870345363551634390029648229129665333572052082115171332724850028060883523856822029322002386874000400648059018526049905556102448819269165707034618427418280529024411342050083093061561658862733244592973478811849117859663979163930620923658051821011677325819220615589899844896092282187504391999912550250348103053728852126952286509082080090997775198521683770865615905891684284175507134187844526260998960069270686915457450932705562036014762550263453790877715942032900651303258726305460538705025847545646874225218043456412575055360365078274434962437671667554005075173048381721778424691483595330933584266530582000782022137034582888126539466866606040379333078430841826020125963071314563399936137948795798089507867042471874818142351510817077026134843479450096305938420183600935115016060646922324193503964552808674664820737093950116025622289080808951433357164829000691026290343568136557682965722276179667159249370629425738740323342228149573421292019946672209655455922828529166746228577045050519612339133837825802569610325457142248911002121232970701810163289511233384740606275073064766561618100634353227513852365828481282888640461923031660720298816057583936796630934825172416074850505783173378657342392971104017471623756541231322187210551755881780893546908635107552019004411778536971675864414665787559770367336653873110516467474635049888147969764928931761545254121171790262997364499625153306357143749851018666235436405688122722655684339553257828932555430545876002804804060851626286968843971764616884368862463965891928510015292600042893192708586507141909634755450342189329990988361215173033737725998777897295076868864328221334493332176099423609393290515960245154468201506390749154468195987211225952812258682577143054669416411242128520023041319081309929784481422312440863211388909707852611737276774641403608348553973877219824142839521686192603232185196753786614050621242041083699869058239244040457527596011934463157875975452312331258990348785590567312059239767158663723233279151445904790965236219549056868139040850102303843557188401635437680902347488468872776871308919389383488361516022317879575821585924887353974930523366858219513021178619902471156661226166810987246072304102589611415764497029485365990883080297389707443981932555749163281337642493271514000261632258840801490838036763751274600697544699885508251109865527310469587466465156870508772355523105110551706365068377325994613247801849572428837260336683863650667969950547052749182743354396191674800202967670119315730893146945159829102989525828810248683348827286645536957908014317836674569365110715317482480879994812128720580439669597267646553384389640366538095973045946001990666810045621776748881340844755077204744249499680275943959119245579249671624693861517613525853530329824517223195649554565346511529491721995349067736728591931117485879097742903863778054866081588040639166431033891783286684325367584837501440887621592381700590132794959819186945269337141357864912583135324632301987338179107802440466783811089697185128183628061990642821008861650948217679152972450107235106147125635019888415769083035321689411860670916024833508158262614595323605362229237066918353931607440878698609636977988427120481794783259840952228551605011059593095480508752133470334257801871612386335127300537436627386274709966182149075572558430397039092457678151010186973573978749688452816258832318501822824088440786612713020068637113790027738412792111481199994980066764129280698138377701218468588049909897659676542968781601375244163074300873869630034155239880205826240560475709551835987206551610700675119708640523502775078773664556841023065750356214465454211827878001782269946753608239187969626202308157898081764968394670743118164923682536058985869963285437941765822285555530416663110339003712397720509715039295932412505355415337655550389425365270219280013220682930898401251357996186059999546690371855525550604898054480666109863675475678886256770800815894320564741619269108214408510542440841620536009935411358840068921697887587088339933673028353442536504952463809573065921743430079429231981127731735462685484499723969024793903607481840110612074274620687604663837292848784307463767764346684702510734019991327469673279305917503843006609702543883691256024662272411063466613280485476101083511227571125487063863989340002206828255852390576861153218584519733475330945704770486252259559724190711119543338237075396348440065397451902968910647649481681394441484593092499501615497744947868230514198900055485209055028053460010541424135523653468405773626382099565094080696342676293800885426711006241743477417798128306683541268224086782119722263962024398534031176811032015721418425087550277631664091489695120584092071604933198982468923020325005839513192355666924946702580292525118444991744897191031087402701154230114816398299842476044234808854527695084973619713948090093867849099322987429163525182384774180976544478505587516644261132066260404492364679989925124151355011484963667871797185254670224173408328600134748426484371658158280280513709752549992198979849577884470835600782755846119439617055417288418101826441435386746874692449920613611907144376706208615742847308614566257264515761332484412379275824612513446098035659470766340637836637084127885385005770492845704394750211449661250087753736120309401546677113112051768677610809320563534969850825555166274280096821651953446876963116869275285763813511856330520769236102007855168380484044361797174461191177268283476911305426077968700122384824988287815786335549164188507366879983960069875846388579560809301720567127715905751641304129196024692582468531746628517396171575823666488678539316145445997910089999949190391457561830913816092111434331503044417093419258245385563587736348817275549273291701435124541887540432610237629585910372665872251886595584107920344249597650554299305624341863272143674718861653563011821653393108473558435309354215663637734575621609241986976998729086842050107200876238502123932254324197624864004023604108287920238275937701992611231782664036008001568259270145457864757215942259227176406638305912713441881619757027231612029735719418969149194824668325426826370668122812733474161606138178057693327831826794092697334681758847751249769568410931213981915809345999028923887401949529251916269084157034344133413662585745348675520835460219357622193186841563135666748376249475116613690577279880613500210083040336675498739061714634372742895346004877406028377992780537392509370338814100053081397311660103399621175040102221269898405799145231429604094097023085290144185507085179525802427861644280631263016741689971774670190620619696282665273293523882524567709873340904182302313740174272656348937954171518230635997074456629122796218333410106148193714621612049507213906067395959045139789738413641894592001848375993801360521529327044582993114886079037294531911172167567671733668353763341561019811401194564615404810722532704809396135574064829234778232634462658583300094669418926185207202194224939979747894959952884748544880853052712636283730864914939579903869827266723055822911376466920767175633205711473428859684302995769896331167533236987851288619756418850767056886335826658352035038043839639463468957550888005450324750238466566931348186033836146126499645366237737629726310489060005505281942320174109744053523213977529347543345624409363400447236069422923482198871950216667564114232686868303195241940169756135294059756673213976644275758953876756329362638642419525440288264133218940073484116332437965488367948232736486204721723400879184283872635893068967998443830057714130769587538749171347842939904378826397833853992651112053749892619123794920179623051269079392313132926924264792263764661538314066078479602787868587536089648849725701386778401280875491704356452841476314376745636158508048062720479874580381423719781321456348441405847198186646431582823997606656311935769240037915113738966363617093011607344487634921474381119871483081638598695695640427619674063366371980076930950425783631928974425799822254108262017474983603967151425664918154546631682638333697875997383881353022488905376119015291859196683860121761438575849326671397425308220042200997763344688001120458780819344177831652787620497774262890366655553737160205440090406372738156803839812028505919999987141239655602744505962920098943563826936891494586452932691544244734804438079493147502493228101431059635831820779256693081103286458879752914833191766074107357585071437648342051578437969948668795387296638716965077897187631640065071280225705430197732628858070319121087955945550746302108387992450108996258095296937483306473217179621853606139562413951271855385912988366691079909533992495659459510313936008061873535442820531667292261699861856670130382748549217016984750450371743896695097204197821367049498998499682381460560524689682014461459027705213625475438174601841546130567139021218478690511690787828477589849614482287775038583351733644550446023697931490577494819857916162820507122726628421342250273942550446783887610496583287209123282821572230605526391174850751652724311020277975642959180819124166889371785947484595057841541509535489699311192492076332816791604423331122724778753312237316399056463562406607113994568459711941521084534791641980824186945917310345948426589944552056864256991459278337664504496967290134594677360939373055265610010654242857220810637200450052739539153574756674400619320098515177904275421057696636646849756353056042097168120145298101965701491628320955236387320870959491891305035215424824004832099192298100245412161647269398225076982676487714329189615448395008591818610432304591260403815241322385718636812043300542981540327380003851765921571175329582068280784968870386238015410036243254072322444172470050110297830900791055207991066596077451371802635138494481997178132235110091945631349565292365208842919310341433279478038083934827751029324242959023987347063206218454946226687737311939560806112980714427371894589581435435948177075270100327662306844767737481105858203087233593915287394090997525012379061498004503038084354611990624617429900515889616552942244180000746918355538594532159123749577319941071533428646052646996173764260974537946625287367676036399496408762887183527510597992731547217434010085206014568120301869127676827251790237433657286937780745747307281723000065054238653863553500739208436166602671238829827017245164177313577326230290516582691306255010260918040372089253600912491427981608291761040020648227493660579198501624244541205429380199629635976558074833700037982055341716305072203743445131643473334859847102836711282504338676522302053808193615010510646407778700950439792631660653991494555818825740095007928439511756097247220175456641980414564329781815770620118719299034958891513165697175247587669273073258130765030088403457940680062544952079926170820717714428495119068583276556795152299464685509249195222440544584746848863545777120472200284058989315784023263282448758427134603825336086951066479438440174209099072478062162316930899305362373815621979394053401242814084426587917448468194205877654027893261178398004820029055572989610118802262294426486695845845372455894719301230135999637441940719818801044794758411050191061087545043776052008532678191826547013687353150354052482653710985858324908689643913215780224346276829601232319617211755804305981930871865287677718334416531532177424389291659791997142840126221548625058442715371693872014175737101015053765661650053132023228234896770824967504943923327559490888086771081068817548097480403465103043132332680833174413035373934139419850797407638110726170703661619315298116000762245713883376574523636957476592848952052376874403444663067230257186022844767627884149117378798858152131253116822839460666344802681636813803281174367525012755863028454521829230769042629731101060002619389028741628590692270173384148379329896453228304273620601973577307450491765954998357139292502881546868181027344712527316276208002696343569600589700548356792648479777673338362658226525009285851728679914019432037075165661291284736962523271785427024033407795477189297158473176122115997888099758127332430989024821824965406050035636056093519754774808646550599363245198886505666000911280142954694248914485474019804843076178401897517203190578908504038370295803255465887261095886469730964984941344346898082004308344027406662951422560789130229056789297654705162722675094647389547004038666674797029843676282377688083820238701394331526349922537264143761821839491325691251504234600375755383130903379697823143267777258392850905280650763727656947620010854126655301532005721887170089807068892174199972151105880720635822034582039791106539664360980304453733334724135481438300855465651850583278053871670993159513700594192973073717023920224401729405665023012162754740331737557566720785265162725631802490661361417416406932670737796817868233459605062979045094654566493496172764785531000909917928452337220098102174813853114501600752090043402742538486896562688485544606212108259251213230897613527002333901584295757410409747973131832461989304297710025590314451430717945884516388228918371919931116980217933813632930719702647263667991571456385623365478739787521307057932017236710420067044137653927734283744525144988139885136611337664977961874891097001025213408540008445977371343992494798082143507301928094151581592505593388053014038701379235572705525707928026732102440789914101064162921731161031120215907524160598549061564557274081294329135801981340203040922166349747684559072724389796125167791601035555013448995907177464102758624585651461198361384377720636952259532142380312082938876320427025771211155426910506944049059993960365633241727041964828880266492728817271547907238935122536477254028170007061372533290125786193702593058150912903737712252452451404042955610133680789147768813557279648254304239945153177602672866580022183739687739462865185261600646687697687872232743565496464022718107857556185030149689708397441482616289542534618636778373549881666485759915017141483098814065850445453299712183184783487823928094357396622383169582155643129856464459740103240441798682253976503238139979881169423738838773922901593932727149348401206575063624382405908890653695905074174906666308477650390868834115422874307773847483363297423858807081923407145300430783222918802705569447305311270236627477828011846237735366033423249681430142833519228789163740870680966451135926384187827040406485060334607068207606829016665549655427137577791159687945411714690729881302646659639268189110929658208043353752608795323766071714836766827996413570091971354923006545646621738376241760980629248259251031948139826511811486970514900592439399905423576234286557056392281048333061780848898378884667838234850505498847513404709658764231603135002669856348958620921533424740097060279175884865956981375636872254712699799930576344600537439688846070747744414988071792647074458391569537532773105513544155244358398257251055326830190324092481071137506313502312631261082181393703523391066935029255965993982234257479378347471058952167556059170713323958493166605887934241707762986877186193688665292261281268830367695582533239306150885375007919952463208520122400683241527260029887325872144359857438373208059751531054870795419229834099572476160668942378056958503377197475211161640389611298171113518654058466588675420604165497996905175639083281432302406252761875982976577882756892982505511883743999103707353702325941736037043059177540879182106435740216869310544226696466079951607693926719372754378771904767829757690310942247546987165592014028453326774249061438690298745318801654664735894389262757800933488560160218430472133872070731635612811705205597438661750417847239632067784247614496639073457491173270691097213572433645021974763154739552204521105760207535330934119453599139903939025886203770606422018708982152017080735080691011542858144903924310753002007566925850815288758522889141947614178493652070682676609844948873265845371812833527778604508756129089712339170774817687932810579732469109828046836513565075374225362619679767485286751477504211427629045436121310005895840944616214949696342255617360244958351566633693650671464337437960163377642658568807417122259989303745224113054358002215276820609256726971687774072155930471152223965267765868369063480427862469845401654298137864056516673324202503789369268847939862696738249128537098871634243358874015390456018183884649678249087207423953301691896284271407313641083709322311491866058788340091860650790878969933518346238620619013076862234105435439799390485380376100936882041822126133293767209172653090854405213588805431455478956886634216462165342021698365153765051754745411775559119189230144639134431925173245958574521665322820009262718917638746249986948556358797307827607276345164415481510052154951790016752218932080669454276369169956486648781317669608210740315789553178664201378836492009242046386901031610136819222515094889898578244898666505751270842397454554621925780201607504668164134298266034320540980384093757086840049983392241077807015418207929635241923339344157302148178368623741339111051132963915999507191432694309504129934047786032147774785968983689307090306511559769787175730051687811689864719261665177705187751493643159183179373190274263537715981536024879628536424725024680244432416805464105623045565078827817213901595113183296318131102715131770280348795944101053902464522288783525356864925836632925078897264818078369089737568889511207496302722787940534041120367136505718068292248910789313556405702032346675685312055761546200513708241035145247699054805233034233639181044934889694675678254499688017670332242275692551306806782225030500177394834595161230499040730928505630874358672970500638697896748222518599370250063102351408480489742257648219789891579530637937148064862569557310561699010891466012149492481315751452311163011970306243998112756799587180794478500024656309524619353871168957583393421694883062506212731927864058646788675784411765957128930643537614195725315347682161217760505358851024789018994674663753147751649072209547941751292403317135687295525698930026023969337288131530084630833709583489183446600995750125864135451764174908955239870210910600531760037186546049754797468756021258747650264764746393967564267818585743445751852898411134675118473363114843231544183707233586341276459528096744843594926978237536979504582524610172883863101776736316595848398259700976386253792087838096271643275461293466289378628464246007612440679585898062559725848688154883504941718316901999659007393292001912335156090893072674050924856958607418928687917247991560165928564649898648692092077345657884160458385868267777892543771373726647098327975111233180066385273923781964240555069757491192985242132467318445759560900293155244801122348703612163280556025370394176891463137978164084604963266681994323022327091855361727728031014080430590072462426751764527217373764588272109030611672005840511749196441496793486693574579555294975093944362699807509008111755239710574596625432496619912726509347485901168294648109894906669504095314510543199960385634818036854739372353119542294848557317651260381190711919636504535332712112602566349555371364510051927370901398483576205992763775478229164258098315716156870564097329004794804558328316638873024289834808318187583451255256177707493078680462288678207624085378860530730632214726866249874757147871056402678796553356734681238393909680943705316801733782991237046234105982631677578920635137119055059837523846699410252107030477659063106482496276750124307716076379874363685004203710238562924403590955693911503707828988890763256077935932292075030815479160597659880121069991406953598006312171869792739662681726714364690083273334241154963283082963545556904608768079008932897998749954774513898688995483333454317072622647507736957129021187885322722657065249926729933590215378611604370615851933248384153154322581390256036493144390079409203774456568748443692103469989518999237444220504432055595904184326995826725890933766329801039591654844914407439160677147164986770407973519948422470838111974076252799315183404558091063324691333940867620534210527791687427310575268035379946969002739291053842969326970562845659643913659376394294942825930560832451120946841644189090817471833604442741117318174652128429051632428531233944656851240653337572716679522149523449961653497371456776356754594816507199497297876274227082414704289147897513369173378217788545238396322438121729352373634826031083127920614729705430267704162535039515238476826460718893382191307168503288649248385037268281142727253202047831953322635974989941311415117393867150615293937468358550327262366529695196413633238801762962041872167079304086517440272228445451721515033075702087595075744484765871776330302670302875797641501343597053204688816452017965197278665596435039622097176640226243509522878490345179496260053659519147417426532809250587182177213211364893231970232810257628014923151452427242372396520200015862378836101714705730510750154420660407845516627045664579495907361952424428507906757291366734167018210062048347376170620678711581097076177831718038901181269466820019957139801121569949266415171007206445460047619543578737494121117717691533290668623144477131462440185832663250359940740927466681709177071079663693755605342641829085159999235120201325927999698743524926947595924813751836743555737304863722871250370791148247609684288692838497896906820311129135025428928413006801559103167844341508954047282394758991774689358025839568973101247464791191784636339572322081573035158309392484335266588068013638287717672081025678534503887660399148768151786400500938081367876520175233870455461991784161955662448962808789793001918844518163773741812194007157699353179335522780913636094275684198086343890587631081930386083732929257815229139663372456425835548495181153570267363538727723396023407768248852927842560454286393179562991162858247075709751149022094733978380167202806674872546047621256474652654495997998115490549509824432227745616621257244533320169010520314913173581599974702592959048485347446846731819571199482409253146182144593793959237634073042015548762888774218295422749028129733810506973123665504940565903784240207699846305965100795493671791252198908600928791872434567204218974785643684762668035134318864873992067713665898038257771592799435992795918513777994419769197346639825220107837170130585800842140763059787520051936765547623010361285200036941737554132899570556533362156506504726096826037037813167391651889128463994274500992075289053881839442816878214427216918553698061501946651241827286821508225689178522806000628146239176700551776925344386968919103997483038825326780566246672845458635057197785818937149853202325236284813804743304214844443134543955023298769465376052778755848041592661360247311726973759982220492722467885658124991624664705768608393580355046164464218178800319037509135883267952663759330314632771961985382670158054509786679019598567922646263553878586666851890207697908254160578447910314498305496721401416156260899093749322955009203004129669805355666537099708685976911880170206956515770200804635317906824435030638152946280672409901007176366547148364344317049205670717003318586523030756862510498679640805206756890783037955950275776083262598924272752426389302472491413945189466790914620478423318324733703784349940886466437468663524678482457526382178536821242285074430076457881735794684065396197188218038143263228057989236152961281693931240573064975399946998132608377656167872811246160409113983873820168660749791369254117671069283142458357254995365234886619170942320987287310417411040032788989708265644941686131613879457991399441443428420876887332638971027327893138137596108053004288730862026509035204098049450182522452274079859434592738512914531152183389967247811411843737389437488707517767133245889216731571020979844158114106952401157253252365550550307017113356913763234419192223636291426324524569979681329545891211184095007083915181008217230876087282834142623996097074594486438786585355704906130537836860549115886476829443678814020431783544498274834098020639197902395755757131237260598149187631241798959504967763933732455491938655190351155085852661895170163543879868421493248108898965370749609293669617215600394133665471048861584755810480648975532426590203086881491976339578981776062974878576282136557810649799483702183233535809743344439488043741737364457976005228318280750089258072051982598059125820287575545799075462463882842970924277109931134392862594388845841326006199429146827263609476274285748981479045672228760423584178698013955626090432760468294212692186722765017639731763471559837615466165158369999799548464310784846962988420198044024463129669622253679779066261283138146903502855257120989796522116614648409975023606250915406056941334970166062379865281111756909655135073845241090251514525399405451474285732307446317885509987772325219948738793043789007671165623239506544020256670995752891141048011891899722290174992503424260009000204025168012215231283028761625024717743379362892554973457989947654227216611393489122748077198673551064769063479686419004176620003732717685614507007693038873762878336265266750707838563806755377336421849301603083014481660252579608380001433286555461082130802821570658807436787843280275020502944294730112883738424005685620138879724851622581497343934605159452621148742570068098213244888473783362722992153660906337863083528239371243169272656344703372819330375805699999969815634756716892397920540046029078022100426886814110832936341743758143399269879321348830218485411007210683002624655493139247575724800406842801686401667161482022682079659837007540979708591758142063405787498164773204057923345467956919490527102172599753936950218918230477648548516345733475529277823909934790767540700965423409406167453711447820748974800894774000236799176249986125985878925358947978611347179621573090437226625388898146912625736957473179957650382729251822965109916335583936913158805099387295183331332536963432727828677840745209510992010894077948698069394356976916928636344937977120522282840560183470919652779954103808610388366615955198604580020549794376613797088085500789289239112104896912127343099459501283833294211820572758023240939658075008447198517662980609826585037230392828348280159409535173498669725328342944471735267953107828235622601792917073857881324584522251996103970513147318413990456257445529866207592273867294854305197333668653137222479400244641538307326593923515289781320305286859632728994818456127987063473610506380404271965553241421658652827005948023453093624576531743063876493551564730184028556443897822350686808870223432216780979021155414593007330687496414194803678644224218896611620015465071280956368423495418901517863392148782915639873105530138536428049295725140262930796110748377522767256101822358380199945115417163241470268992533609701599995780540222025680695933748109796598728222951905315057051790479776097629554247583796069153506096771092775733820616897708956911153695047352216877532867717341164968461069679117613315637493395260171251848804154024262974360539239101063503637484693103028031366730213541462039821083143235988262844316913533064482422901999233865299991155059477105640383683310310754819934536807098033057676928404854175419909554313715429793341646407915484029127902535048162388358483838888776987809690810341562040972702801852027648456190754798640999790807432884693750489748794170288902104242680439875971217364830310468506396201893114426899847485366041605023938131485055769748866680287401472895692128354328845217945158370856486533375180168494427047271548470060999950112979269882218321033585524398486146830427469208900420535281874960216366995951499027848653613367567552726465868558703396496536714978118316376408094507255743102057596121473440570008935998252154166232660454465887858753191511706067866512865247975689055572706811144973342764221244031728308665115917820819775069133556133525103556495931254498487504303122565457259946378410234379755635106393273069309205154348583116657798330341995625437416760653023996164798062864160425449075432737081592977820205983422638071624221134468421407538413102960163662107648120741812708394558161467471012006900937229332747205922692755352836705643254312268660080792188404558877540535674946388565590273009208969468145457205103520118286681368967833971041189114911641938122114978584470976836853870258327180677329681638627775853002548434947499902328634808464756459582003285802854492695679668529542543158679150221213170060421971205683037510267996819541857212254086750126397288534789869367066446062471310353066910081815750588059841038891157111085082724640394446085841062852466856844853594556600554024480068055560364520339980239365476297866535360167659349874702368578860754877844538333857658504772948013868184986216097025933355465690086164250381530056920679009711276137463320552351235290681988419925535616582553984689340216081062230259434183348843041067184268631228070443762948755606522295305404546723538816331178604523112821235758760250061863434086012260343337848023135333528021679721412773126995952651814515006233628392414858091499662327663152003957330007232390647751765008058539636497328334639436855083237101231587668834977433601280334606860765495865780889205844004100311646719525594002422885812858530204805901722005210842665829540157451647163928736983345233559990388171653262399886398410708978994526682983808804871590585634704946425606402656990632911510894791835989677668538014978133337161322361674969312557967154074163270410652665447265080869748855350491435974571060465238505555883728572507121479545735663294492748915228551114724701045155618866125056170000907732703074415250239843543181143494492398188241619709546071330323743264019469282887993899658676033389302975077765510180229287985089677678706832894003349161851041812879754687543596896892722683055355156053918567956458222514111943962798855383804443320188165402971660091419934740756134970380589675310685648915781430522698579703809020251155158966324178125677947036820655687435490986298653581357147454035283035440610520385758055944708492822481301587740150151685066300041605235180591871364967019030972648787504970920431788006941853880194888993234313487141349154895421642990056502880789603829800149344484476656987063187272954555625139419245246471306049256086598092261308067350094489137247216932031077165441600956077950645327187194577681178471756309835926756664326945719095595706168298208023071320330475803369562955801041368229044780168637789521146623112717564942874856436713506364413452368237306291968219535658560666114028319996666192661558183155013498322928009700785797993458591413009537847316106364010228162449642083661602346593171972820083529425430185655632572109547675434607146853625491543791211502270298998071748304969118311478189751034113116245430144900777261420075960258276805156043326456777790896656853952596135939666233159815594807441643152580865432393429797542212302591131194866616045056111576679263371675089344028950147738147605357702541844450600128957147034750181746031608608799435096049074317712727838448886880013073442668952810385673863843919387672354018973149029920049404136049476713282966069501975531017245352104106031134941487802374237048555120713807598560652796047444204755694812203559462121460802445004638298031088848398926600057464027546188699002192099151656295754685701562539937695823685928617426238974914603210481370529270280208858360386643978325279161209667692837982242385194458303942547889511245223995956551674566042366466297041690225339313508510622703352542001091158208943628581542744183800437139925258612851014178263560798506194912404142432438472165439610039938042701596607980354398564814590362215024297356611114867792228936963505999198782843512024158379606210583714382629614589377343939338833914583822597813222506909223248540641174400389486716624781094263622300120711909551451864950396471735067870521243619515810562184605432001139390354728651680236483777529997233343759601133755787015861914335446475864283805529397912445884022664738834889363264795789762867613241945735924396246575680787367531700632125960979003640936715654716495787169954181977264960556092564647483509411133389275257036145975573768979446492577062056664678376321062845964715186897196232464863364329022493643656430586418801610652820382165791044012006828897903799001417534386109172273856363822614623454386683566168598989628891078753013906568616828219840364139184912145166759925839768896003865691958971106121436529448115243206379821854566230906653323009219953692311601366764606489426242476148226835388932590269317552938936654009092307163646188183525993207192349612384084863139967738755025479675022479940962649560155499363218809989392888594151820931870460103632043793160156638136559251083667842835337221899171601899042026094622801629009654508923518732380575232001526081404560218625234056404207835975222378891103248176088823210441108885037989542940997126807263116436853115291369724435488001471429703008226057186704325382986521219132106550208091949829761976157137174174400562477624211557436113219061921528898667696810758890901591930152442226516555088615228139161273357349306008971581482055517694844724906886028010030506233898818280538870802557439920990735655344317620310291462402890955124928522429294872850666259135205326329645640996462274911191760238902650817736087322087146864046102224131272452677355780613918804192057435898081236553299930528806532665934663205729276969518319813278035766595697354882525264494825255155987090740862461514439945552187091107873900501135314688796707816640096233586334879055223028693929255097207870030282236243530637528987023787423157457066215107760830199258117857143568533817722546203004952609263303923856426032227275335499792071029662862251256495524836313281563847946159933128671971562841196659825719803974736705857979802484714882408622087947854933440674608422405078060040480825888689059341359736683796584013218397788917773611708436528040693328798707451526409246492768665967413250188405537506443338652343025883289646744210468357132106042127000059901255402748433822013949112635614115515727959037827274296705429744955398404910978180011525123660577341993318500002919402708453038984719501596877301386070438573225695955641873050591131917757402194402405747254137805205985725993160970071020216268854517968224908530227982677340029266129531980115227998356689482278814592112136357844710268163883074848806630990728684544293125990461985085493722232901919613192861142932045011539940108223538316480289717262659438532708310326772008369777686407573361047720365506317963687470416156520826789328294798709037841027800446274962956788966584329923606685131569603170391231048284542767215086559010954492658481168525705656858259202945731903694695328568234636460879138706349636541401308091560572846401057178479113778744296853650745895773335845494012594238289615289652611986451876665392671635295714844775106572979191619602247587843470445865489550646705152323077735516287078633430027291936791349764486889094686953263655180705709746194627218153302074851591842250715723411449977533400829607494278162393161493519559443426398305273301954052410316428032852105034333610014058877102791672796894731743022685316705149607990458293471801350451428516025882914644753669404835747232346052160569843543971947905399927853034341444469997245573347128617369801063523299039160362765244552448163086056473841960965857293174416534813645243547717285796452903969236970008475496049322815186639600152546729602085587511830876308707823350677938519786594454068639494092433833905919376610917442426162958984634407610150195949122132795597278489744726939570125519779609696141183808104802631656495462154148186203164520309381852582417647862103033158143519297640260326864271598106620118142340360259496007756400622302492891879702704468965776585238186065987844853739300235149520980398465309499638250043407334766597025672904182657204133008774923689242639206949056842709690129331513717771734408413785975453764793430958179483931579591417835724541635376139210908241727655814493051558463764972052490772826631609135598453368332820536013041529002896213389067086796707152992771684721007301484428031430888115350042558994236816278520880399128318158752272569427817650051212051728893605116780701280501317004518806077427172346290981365028725554099546924129382501624954440950186982730979388499834115857476190348150542371345871473529119175518873294404526165438746659599408121599713055460042763456020318291725166636596909976549934173433978906146126911855708982921803027666380462953724299790841734900504608887401357151766220019001430536588128153954341646264279238402902123634186070169213264602873419686479668515700014809699817408644061428479661080612224352937327480954244655894616880297052270556979090539243341523402087597194493665475239252938539826530904605886380166270988510877285310413394288990832144843565564122408811641419426735164748462722101711814860057853062141855185769560747234652846079044915753410804325003000087585718571054076113258173551770346771877584209411161278750351333215573402365505453924347237332283223812037909771326682939819381110853208648695738359291142073952750495956732380805579132672031739659177100106849546384520116209038012572489077997615306205611243047792881431678140655749557029295089320484839772032540891491411357785507035721627060965936497699938186538415677128166760385405036743433179482026012404925448022671859372917199648970460677951513180098149549794084209707138348172563986761276265848420853149761873345032987734244451552190088246516495795154909620443542054316548432253751735378521912586773609275711283695257830952169905629870381226865424239031588191220978164584211986717907294289362077096028531466569238959215659768753784626145833077798629036693375710184247532366184730203814268632037509786390514719730254660847172285065324192012076749159324133505071851263110019629632561764668363985383560402785120320073164984674879304277716088199444278362763056031616908882860215355660556818925327282079407083752889863846594705661827942095788101154075326645037722855228763247307051198291534382302010390532578879496389791998154864070709990698984594201143001718197656635186177586108098677824336665983470495841711477349381388232703657395910399973172370741967055238708510284490545146634941410010948868985426234298469035593153716245810623644561926045659668531442859691196666305302277035641183649189506277660193868794802551468459583502150224099017258574052511376591361503977084819148618212112845772634081336704865564010939009531426101388309236131059863116820978533201764177313255894102667505369437331946944390459337154000714083581247016390506276924558513373844871040011316039939707531061592172085019777041663973585294524348843564079024056911387112520143782060874793623495232423669505624825743458397633641392234571658064009347755454354827418952132631444456426523065014624121990188896265453657217203603269018690129958877484699117464759775275799182176503356910715235995480999989244645254997604823944463383134397178987899622406222798604341752974557391586685757319262292618227788932397348455753902919454984989760216870865752681105825528093264599480637526780331236646091925336793272571984448481148312539737878615684715932842023076121573166808726837955268187472853198313053401019981358550300185721420648716732452890334438255964008838939120851448657644335787390583770812364208278903696095279397592944197678325737061385683725436791339191697245895120417575643751073986960818989304420647566827349530330233646116542818915714141268558502424865793651273606438471238091276382336506392315622733294782893432139276481825398455694166291858425093089092045335213422425558289155996734502627967056192785662388563615478965925007933853392481093551169012799790439819086065096685885890555465168507521999450937070481735494658595905008266096351625527704214443801284097911906708960164828944030051877733088840918109556526112664844207043733186354718540829785041454642445905908575113024916407863708720162679341076644516389281310323426812982463911683859074414261213580418203366866026032744725896816219761711188605729595369625004895212007160800430829512750536184829434446460746033089817699313285910073809762706509286837903089660935688984210471798906008010904422034630264547514122177889910352817091696660822106370924189318283155116385048320333695362340838752983380235161874181369307588852479062221199330771655904536984562310406340542006039284703020343559292053617217865552433346763244854963835504073106807432608520271987016925664966018571455508546402357675776427082843107104260906660728097579195129544337346876158695375272570160359784009041558853288617758227070563714252812842897342599644298105487428914376929695784020263343306166743001927097113190724992256170487964541203144725215206734420101399802329852615551222301835364638201402133879514112141648386750096813892925862099744544626812524610815139695034142989695652588688318558465668394805578561954177344042552429931076819319710733368975439337641805734180009647733695747408204809602417514621022144091787426901932232779092399711617257560519959489191148165088413234615573143236976725766631522413538518549523511165414932705508613380373598825329100299675300402842993807415094094749582507251091186780442692194016170176557642139779686420218923423259488529598794477006017742184264878120034878463395228614727853526666452406521085489917411633774446063419403897965419858126852381217613071214955686862382773984703965052576200824683328843576436120606252201082301622797423700774044762100606181226135161513542040580983093326091712113984146051134838685898484087914729021351309820681813159460270556104810711997544399091836497454265911088801534903235304328869629509428920015044730440984001609204226909498461492854120184343355601060182813706895396195775377696371382789490562355690899954967576973270956555921275766881244841189603889468837765432938791135335409738881277478158993413804283389541679225407003929601713303573389518294779698488865992623838392775329333861102755504219429478886841989209010645471229708376818508171887854496814961614284618627892460519765768271753719826833360112840948917097220956370942374376777003549100447913156360857341579234639411271789118821841121810368314879456629131575294397591402740638242339606733952005399126774381450339477110568521600926619298060199574641869368651004191318049602027450789767207967305619965517194615806719083967888474550730394575997379760141444286405493316735493760002765766690144778211115032696178625666275815743472234353714220724301240103222037156070586145207551275561237811591079757704674035582051407868203784549535748074619749128212874573361337814366194552576112627361008277570560847313347090622189461776922372914560208426682012514073874955594608115264616636913013248927105429676909828464683231286960342530520779958748815903732841280391653205515912449177533740287310142383498173946753687138985168524805320389427784048418124938657676525849667418985560121975573827500328365416701230204763156903169998251684841369039112649997418275178537788941120919817886631591584455679879446212815061440515945005413170769021773342900230558560962068275051576438881999069660595906643076920732260433593403563451172778443884614946207474356575497646859835610723736144479230929407656644529687150730515692510565828030452439813831489494860075557553207900557578835665050864652537349302661990135526126900301640077449144480064018854216495756437087372928635864999950408253197682944507518514204676134269145122509447377314982518755038229717089111970883725041964514206735942892069885234249757276626975596399231144655331413646556754673128576292326732941605185607801405827460120276960829811472460192633903988339216131483958959343374526010822769828306811852729369253923971858520027710385387909889347825719158101374516859119897515581106649388348177741377137455369116012346021183055438847733520414788971812688544906738495747904397741558631140737158365419845151758815381899701595729877191666703683167800423045628261246729039207533708069473273244092787797534588860814573367531039823609798565609188568222075064994567907613700916291645255205609649144376707868542497085092082056998845123720506663292497357318069138570805370269483160030615483966337376370829534256743035143198034231239906063708577454902958095283724301640195148797817703073734599843400114769841784768932894270110586766172016208871706147256791090340532142665862164548736607626714466122451344879905502511636467488167286769686290437634273042182954692719189471891808490779762786440964064664618882549465286520808067001925588044825432241098970016297956300594288460905760595573770018347680695765966946844550512013151116415781137360339382305621469037628046259876552829073176262014408277826836076573030165929363969823187687081684710719965879568309552897995722415465244164228299072519071015455641262950904009301129578757535724299533374379197865677226074516158583833685066278840149855140333557260473027599442381293364726461740902287705669192712627697401646630026971541160936357639264409075685112344664947510812619247872830297608085199288191938747335952191968124552617225835778010520909474318746029891124158420104039800733202098775543802718921865740018861935473020623860022726120314756630896482763410798775713049552670882537153433919254775619460746639850128758638750624365902454403992789623694242433971420135389357993076490454830720957183397160230223308479907355215649558961062615645796590043889517382092814528543784332764251003179864200974591989398638627622516993541448658141853931072443281338883870098926699701058570717284986016500950789062092034829685194373832378413422142635436590601746648968742667745747737031392905626150822739692740284886484514995179542121484508879389281274539408017966772552139864477908285113327558422509791183443727344881478169463128628582039948786617784328950233548532480829031167525328243419550697198345011734385730998612933183937669434808738202886820107214414422765102887274458630349212850280860613878220895794059215480336943837648817982991478670306332916753452079912245570187504631659080487977070262220127335047711044505622898047083496086084100143667654915434877769194081795415271908143990069205036014699997807256591078243684736710536032872485757499889538242158859369200439455753940333726209913783490720287235239703683794074273184529588611371509501993972404804859820700829380148847410867309119077951490997176243422849966900552598986269573134350759657741873856226631200667580560692890943672750953970710655950539316975431247919734734353950878906896923862202438579061142250511051525744055402615478752507420126110317227497322982133978616265404333209323536642244704440603626267906966859168959250643771364544911422172062657731825203665804403906667473693126037536434186998229067507461307859254491870085912687353121302200053447490352500576104530994350962279318545563064000036125756909598839736607885258810089859029136300840238571594976761697091282822569800253383553434324881760153357074600971721748643761475486582233545874175053750270642643124867255830515846133247650893883161832832034745419373206187256302452553323064493234354652300047370715452839045583044660852407701368729430046202514250482226501308303251405337403541378028052396888752713098161685485501587185704774259245230482689147734121915176477497327138050946890782390887798912721198876365472964907286543309909583971228757466438814724966812011909323815898885750635292559546960812517071986706660604036148469237255874103362624339848589604280251726774418114625835204555567262405135879769329181314374283259878086121242919076479322475822540411346413567535651762687324590847996218534704523508154778505509933336248281343206742413097950635130859700146209226234421805889749962674321075793210852204057603148483458477991517682247581520335221981525745252927406693035573900539136016461343066754371368128277121907188962494677696280737437796316387004943392534946262242889015322417972644160663283038425338564905248904675702385275923890104010445337500622529520515707864323233923631821106742657634142634083536615934023958224538365977967962044049873948166943221360647556866702607714825641188328144762134139554925764636936742672726675059329144509566110911591114826378916942523635968077034915022231949328681869708458621251112710604856704852147184495089567309459066989516271322334127871619436279969842045622408611789617798745345606645405590053455595788273849166339666960762076322039132528258918649639626598261420875176189440789519131336498622547243340765747406067931017048061456840997354419033012435148358857865158322775356664005006348536562295471719112185961863929264534391889942247835306374629509521833309580240655631801272809611377286417305947983354270252099262977609742656874579903805143688899662973849882117101996235279786157753115360194550691310512859153710713990252103481764490669096336580771804701332862849593634782830487646938862949676109735985824546148085023035688405884497703086423457909043061979707171566251368416232186939602682413437234836249309823856857793071220975222296085893822412925687255682239374895743229828257835647380070505122090449761110855166719931139345897078044067393759518701702716817577399755661098987498237040292873387624968410342220252077125124020386003219997457415002555145134794315812585616997787481714326557978083976790082153094847127766000027598130021414579751866513701110681295229884092049467942556465771090867113144249351650150346928085607908835418325954881925118966853581154722171878498745967188832817299768514636678460290372062190620488987794639548970434030214165700361411935960004687231056165897143929934275028979144537473990720883163104057346087716168948053042522069953092210228003711230942531089941948403376289831623433867406711415539721589904974269781759380463103589879748435817641151562188973416743022117855326343924503135723242356488348418551385838098782579698252844450907847099815920502912089974201151743936897444120743098412839490366415508702955772615433100166465271405426238539250777547828016562557444902112356807306311559181944920858746424708530058694962336823310228895917125051845532796506390832621402396530115846422277228779165579646351036420856944983416506515625879329969585851996820708725330704631558952723631573254774369248034461622278664676994285620465978650657047730635985230062000920757391586138581273769612387633615382213589094830248383678288193738620822744573574448142796164046064359802824932344446464420630258733397411670543552363178272324509821288762204653346018869670603545776554585988851917210487628406330147917410813306824363664379100667163429815322823331387027932328838422811949026175482952166349547200457718537305018273512480774570841420204020449955956854449002939915225153979300872554722571881633559414738142890301189534330326626566816443893679391432901999783654220522318685734335937759801232196687905909457946901710385044768866684694912360137262732873953851921368417693191662811268231320831330890591739572952474162751105520377387480388531139253690202315012096300703087456553996721093586875347930680548695092794411816528993290954561256662220996946178178903977982779563978088833714255982623541893700932782515663878187815234848107067019365387764544304049419310464861383847516602938438500221263364283229966352475698906036249858071519612962453488180775806348297617597633541406825001023678663650804581529353426042138599511964140954867784262212410631951604006605015313676554907504138088313890384172318736729813302791779028394281494541824289415159892370877242410077503337993319896992363011081208789752165129518012769110886518041185207200957926562703938745434324499500746076290629983209600008348714487186549465265824013403358883427128709201934361994392415948984459491657279347715599185670985148020498751072768769100320281606112361728653113856239941553325526836682396945963596248987615105822908748847077320302819795009343604062784484764738879239370266322111268226346414065770711138327387518257649081230573527549421326836077253108167123190654000313482016257301401719322625783826113018014524272136385026184405968527272702146652682468105396900914346290745730988825756464953855937967121582095501315104986000491846392335606808044610162314568765122770502191336864506192130312469379514764374976505674507662343944060982068503658733042618316756364816017816499765144902287782373884772857393942891720024474458171234531061554308759992093749904092945027462362577960897013495608866441898548296036320379005719431250322372582962961559696159545922183266220288799688673995759738752823749726018204696154465717225830939616823458745373178699814417721412744891053780359235609518796434050455791747743616090245291488708171329292378079828453658807355597196736024450436495105583428984900945422502998879046312892718799725844115419676623985637406893013675631435491471875600753309032429158398015321665119896425154373038761465565278685212048799786228645078524902415714740000579306319792509801848575990517139292770832081848147188163567602958355356679628966334446973125695941938650528580382780911217026594530136475514114653733972136658688095059251302629212709551560872472675513266248470505494066910030907175456469764871467621718131426460165692403285304823075185067112670390922260019859076281963122281442742215991126760907250317188881127004522206486746703147240090291203787092895999870286203774778173539222867829155645865844342532813836625847455234170070898695220602334208502960806951793833392905882987120624577519431380492354734820574366235000068598464439900403860287824647675699420086376515216749984514698556193671643449743155218123757780107008961939716959275707910093355057722452002362000734620907347704483226376343759569107281977044546897470985565134917540368954073712042014149395180562052763563787160799592826578905088092587579315720963000402154324739834131823834049283519105189101447914148496665205433206235310536334228710807056221560349698459559509799571473612936835376088503489792745887190000504278633210126967049219450342554591741402177339216476601826287827751072562511262115125388981419383294527151714932415171586358447763978425239612734542496214192550410183534160862478259139647471730043250834583910541428975657024325502902238942776585522469845099437374266125786401238251742537119031467888875606037284501782329501642532999104597251165076200163822224530827975611493934935169725597970626568839983326891320268989512491902324888080139234000827184034337623802408029155711611210598449348902947186319367765010922055874252720815677855297169022403070880996657409967015839440436163871424281985801738159461439457532577726547650876897940827970301611858379442808766724712648129291752977459379760040718882091080358955962420381757176952069440231409349977918086706947032333672944469686769061217134727877162309151192815222124028532630463691362010954132629737035750056351966244345437498474785920654176620021458858002303320425607603433067844849108312182403693111836086249967436837448446282986249064646861392144409222502051232518683890104560050709456456308270796096637142984699456432292482700418014630005524105838938133106814920178455767840368864117282474037711637559928308225930904823761811509227858707442767217060386819373842442941103511056753468559390526622070785051356836941358382696288808454845486750299359032041850182439442049645206837987297259901650211480232592664172325685592801614138969810117218564950404752216511426722734807793793206526571967602341306716251695152841714997865963374799812858192553670255732171336428284793979475497638097695989903061331295168566285066081451525976682719427777784488133479429753962541478054326545860285490968603636333285736234011711852628412687711786903213049008202337515819941490298248781927038687348111487479304056668709147650473196540241907245973666979159332052068377211412215811116325466505007955658526921080608099102329467356126712745870066603379094110158745372286468050500765205060365845813984089541299423326451367665196918361340332216840553024470212225283121370478534801262711994174820207675468839772884845818953616575720256384796356794036158508759701005700111372839658040103035671337515436014595201233928299832062241884066823481661465601540882966944587468559131994369070705629345977314068408921263562425816922900653437457256970309572122659033469844109653570294912442089472789302860794215468572145039790583919559825299247505638411100300188289413492674060061954509008877374453357418590885521480893566957850766020898546578672957535747829406850989916274887472698720516876901415223984997919919098119632292688494586170500389955082495595970700023239219058674975950840832995668307886769899826923507561761521851433338337536665966730928142350161115015456447788881149783922775650411054497864170153545797195695263727173722603302635919586590710398621534368003219943813563283801716009941066776260411600478432247039239940799237654408641686405122728649192262763786264754405217073724157337231443822760574543662103174905275903087795254369970099347193755755881350312502138346010450307920739445131493883127978279872202459017183448352903333824173398771203133154534737206276960062931094888126676008655083591266255577500975972645087219288741781897841883919823579201692270070825071328863512925424841385294229407237961164771017972053914800281474408585608863399143737592474439473813537936696695909885645278204100825290916875828369840427670642688025599292033270762464439184221263380884166944557565357895035431394108297707159538350184594464416205459568894062561126613235603724316834059871517753318227112407837848393220552944341925758648143307043714964089084501260437200712660144288409043948968088645980295481187037166927962433484580430963727702490624248393196301079150177535141823567360047296637084465452851823346380905498053692298640737764185897715895524660242176446546319285352210061685984743279044856775991065409339033713251498997489809446712311202633979064147258461950811538557285215352278036657318094401871954410967527256571073201318481745620124861747726879611439608415609896956988956276050003405308490397451993141325517961277189911527110412272939769464552172628409016087015503746891439187855641956840121438484307231819220299363130312913670814318003192784122010047597322878158955296040944053823070051754920989329009325618485090953998883869002565598543100693256307915902196709661304528980295142162736554640101614617001200840609299289124661723014123027411862959690032743060912037493984194864467952146986197708990999588784218203199110815334983196729285845471197101072715534219934501342001006926508405229177022483081121576215493263364674706979255016446174828943375209058735199159319507908624730351692502564736225425156192044905300961538330633420419902821350135780633980630385590600019580439765667377413696682928153215435317311571596210635980580965691985996321042538534955451154069512705600206610830422725462074341536188609733559281115842119888018241590191520094561684377489924239275936672408810695781693359127729672428018891204777784999978591959364700840234785847068257121451668829049595971291355621160694225082278958324782642760607340115244757019757035648395325688999765940825390648977839384043204078997487079345240572140129759911043173371273346671401951828307464397665685381392810987616417204310759351286952119161772965920929252223544434425590287683817300494676691587066931323219845171456644522618147971471276085839897914588699849127864311035296674849455000259957633734582755878153362997003566451369591135251286729204706450406341784373805182711165804196302555163668268908467281497010937914877944259188317179373052128748925629812506301559872236243673452242536002304357069579417327637498013159698454315495224405220779017233765714733188220159714044940571861406100950478586613051837141460784356385134240117005908055775569952351468774450242511195050034438529621581574405682363594478742490242423656882856938635640387771688523134396498154400434127688117289436973252211365030620852635981827957053647014624536514753427650306610872318682676935747497506375133186887253909278683342835588959962384567705955348171572958448916894448146996249233242988878548447497918329719312254339231669307717094847482824260438179456069331357781988499782417708991671590748445451803180643685918731758509023250860580188677021186734660942094999575355560325939251968298181256409720377216421560143851266646184701580591725035485414203856733823371406314593999595387417139813657278078389148809443264076077250586112492422566555850473800132127690344885194220520473359167980468946902445938803245337955574734829694645002579957825091666335569520020618894496492155349004460331924410707812060889995713662016753620122913967031542647618257796569562754089876946422176254105717787239986809993988454291226767399255804679969162913852093728032780542078144795199161036057325275872297395502146911163694171517424253780917212607553075293687522393583814193084853386280754595457708828236754937806098600591388145776993606402266149964408333617471323762839652821251149009953380762353225993377736486970376202491270843282015894140300130375536101881865859152169064486387455678912115903055617670725609261827367913143640326071870172588349923973394124977312358150764520286546629014360785675570592829745400333016948924898419958126214151617728617104216876312539659860242720647766416004775195612514004771453289584924213799031682523523158826657078378380339746675776899290106159453349609598222981693345721587386983978190303020015767703365797141182257365935224580970012507989602398335154235167466891261370905608766497784497608036823179502499895779316835256539249138893122789924542661873453493394032964475973899534740224397722008756864473739767672066761160694794728590250312972922232826644204598393274222572543761410813888649700522719829353811060457351600459840463097113575512349335069211581714501750667435464177144360910035476797997106804470164909555058012845497192500120884831373884466216041250577397900797993548008790275355910427117357354821897120423154070727094305625754077861822842229469211349673456258086548089385942290524999138773219384158282257249184139870614303219391029102747020311092019291870780623416414587937030458256045411661307396252252790962611225795307319080486284478684462547725522675852525262329792067598704612138406653411649182143275270691828692729907184468009590301850162654010512067555979226974697545844013507703822464628598584457186530744516371562436808916440962474816518402158665395478830542629915487124288596085915357433415431924022612608497854448015993693153356182607509024373635894098154923919594988004264701625667116702130409013204127102034515351925336535481855315095836722072308970851828850061487595585173928380265619561291826477066639298943382597602802266683299186211931151012671231739361766444018828893975570141254069303457662886755505176209718470090683552626826618787415970935444107288352061953962138092766513889223731874106682525752414746159540819987058249084439469675212898663554546917188294291093843066664748783312623616239028804262171229028520178424831074583103279634282810295454708566779907452545021035251578989897539835223905707970256339753491171976856238546572316376654924709790939183858271534810301244876069781315787443508483249735143421419178458111194968493697783974027260713410400186733257782954999255842209922133118556640772842470106104895308330747183490956374282894648470781626319217990566418885214961777578278892643705998936566209111478082982074908412413341035714857397256415168760473887043364934894347827431287349573292577482184254703746148985570328947844810610654836526875750816550654121893587092023661051210511464129950529050809190139325453759650489417061976081897776996416265778558027338511062512805247879932445518785555618771382577953358769946546716929086145174988115756851619065907517511733529292123296533172023420426436249851110272893204310717406682102190443078357283429419239872188807050404967123555811920230674879414083145736308434905022821838444878413638828897901141476083059223798001380970034546894627692795291608686127677338861934008441512669644335078834556771214573553331234688224719558695274779311849616734955329235423214630639635760674248600520796831784679673380602025735621888812443182284278811051228063262179099053513461913535521614801403261673121145304662839748264995249694550940780425773920395222774164868848124824792596505366828844347936589765915929735217295307663727608661900731129361614841527790121301086555488087922269258339284717317906416787160458372439861673540507195258669348860472503941535417083750935693817912636511089204894943228688431230927728111342449494573698451856144330236983043427366817599028730837371461034960976054775871665576659463738519060558201531143821730080053833596102715726826649725806371960601816882780464230653750012451724433501063516066736668340771981696687138386059393040153395165415862479153932072954530851379559445592551232579828298720120370724526842585978318300328516467397095942074351804635735365529861220758697198134479080804861674486558574404444800817215577103738034110254355949618610659843746338150381827366656807470191721348516169766199514221020919242730206375670687875501115920525090875306040723822120649027148410820187405184521505465746460258182900490175526496134431587649707437147364211726371906996517655701585078610290618251854028817022984744299372300613799425731844123095201640799108058125322890360752658523671688400574925413822700546925918295686228257786608188417885359445444163486439079493973141661811451312006532023099829798878110228098739150175258866996902828438325884494124519398893354841472072920415842033366857624220507071381775465160249249270426127983360246349502321992562691172754703410103916711937396470802254119325655695593792814656264562991322350660343842074278754859943852167781408185602767785103271499706713553357110215813350481358543743960620018615263221191964180573036459179466223630507198926807003437376559668472415390640828918958153974849495597269831024187794801684970374693309191447040879951500872787781997576885009591409447441865318636300448175396422225620186072901451300412990901056300332291460071600551429607862087823030934156025296632777744799642840064125942906524752833849967705639281296786067909710512430461698538245593260706616892998738781775892852762802070785841403054492616159057557187575490349041452921729557707047560091985677343051920999595772382378361499267200393229823221084382311020236610133806276791804607300295920217348663917323138715931709900852321611828792873468959338776704225860802391485793652879356040884511163147974951091793666858743666375406088138671558074772141858151221816893003443369232528524097993106526341996907091142560927865081863065822570929433926350628389648044714676468637624408799162652971110131311157610017028643044190829739742860459900147097916005357686885281489054357854907148809431831528557755981217476875176754854536190885667284167064463437960843789659281045077101179646212158124216070921446979864611016638577339889815707432594880355257216810341434257791190979998449666288045038343662052427815771820227411888715655364678119453906099094214128661150934002279231181699292526779288269114343568894744390786465294322597570973957196029609605568705038315105574221665617998653321325349949497919923933092082494670908339162716462062135178361034381334280992448829367133641991357463465159467204653461119701754675131218104258650565557961234878196650314898622654378052902901487337530036091045022313134231307355155941866516945037624298495442249329605151538812646541165399332197116862191432330700036892563016983412508417889030730364329588917927190698104945754356659506253253954213830808190674917213520138146548813627881748259439367646207564904696313908755456066083199486290776117188459879483479813426341559189235294248452677210897294050817425853890927831404701868391100631539378700373928626212043066416532115024486332067259864892397436270124422109329953043363996048184053099971044531400334599703422686863237279298560018332550469378370151660994350905664011279819027291385587095644238330262657910047469452992492857839227883861460153209199319223572135958940872434694904812505175161749024488115772562879803334876120008079616329074601758681333986961849054266536409827480528051936663352164074709323031990021521792859366760264398008417969893612421724145750555842010100635269211043789693791366056235854158432983578457328925019804127787362416497684242083244341112324530833849734846387294083213199747120650018746364246896191804911328132480161830103051603605919309738938040099580066322517314551910291018774960452422075401693406219270464442912079594625375987937644559272375733836095777389599859382469563028697626359430293992763052425424843429571524508913449262139022718027673876787277524325326059169172427512127691078179033438638476782197175452864079520508181070458101369223110946331327462652922041213294436728339996149840690432601686536979625419034727786289691040672912833485285839620979477121543655428468144613267182136847346711003325877496310177705099203652899475357893094372255969301759256700035672940712738350118360723333480799740631403208558384286267219044657413313963661551853722863571638597957041349521420469298180211880734011642532457008550623146626956027605759780437609956402309259668681825966323670982040282065044660963494253933386215581398998689721063478524037941805855730331227145347669959075701702881391541900085565666201292696289524136844502198365159546185864247119415324852496866720765048181543889390244119723847967758936558545551335661549398505259885411202286176525661784896738194853972288623910169602044228013696864059402297564035281285698586162816878718709208562823423089338350656795056911785153401455279292255713923990521334318689149615494943093375891102100468093920746645957344844606796450606600629818555952141416909278451508163368234715612047786196103174349751586576746374314497939905365180507752322803463371196182822004252522885240129067474235196232718698811550824563015842773904065904264077384595580489123420046223186684366679491423484854587809456065795552489014882961730885982731430604062620122498527865159178467706775507671178347376448667365868248238017969263267564805581778057417945171486527048003036219503729033769819321039505997540818651532794417647978249633452837588460189125658099877562114138046253823589733933957063411991214015831564287247333423140443975239273274905317695928277344367558778661917205072705393669685251804372482778989868088222982319802225230689037948412514572857956988170908540495764680133791156342032200215506795513508612603066024259972939752256059232087010591974397805411534729745459001974404763718785953902759167581875229796548358001147737727464879194162847064674422618492029500077556854841983877627059570265048646315816678464956554380821069534052113341971821928989768791785515907231684071955906100991739864690369969658726476760994688023062532426065310983256946048858457696067739353757608008124240386146084005179043219931374393366144128636148084383548948965992329771470355033064755737353961217293967816093277519490572807869528406227967914650956406982952808631881228266917356271534515427558659934278762491296954402163969839631713352169177071698904199269906806456979911469770107364608265817704977272455429658341614785828096953127710257219039019716694781001816913737460595881081968915637322394791307236243931989200888311639845486899233569101353488329788165896173362846909592050552782386742876090300632573569654254869050647709288579552769486297215050902567503008640308181077414384760971156307718543821773593870235929247870109875159965725301310892766426711559005084211731110928036898955311643713839820753158488145343593283231443392662718275021610650379791019115079474944769711008063847170262899271170872501657075275861157724079785725252261383029093723338684283518362209277878388351839640315702592351814730152253549656231888188708628893641016597537731801404464760403136917955685216021493176163791757395493467817875205173541870196075757734489065215174678249381177835221680448249843141077005306467701525931838360290204739726267020061266183041517776204825046669480352090050119320468999606441203159636203318823379334557192697322296097686115742566711728855247886127988583579343756463490012403575059363536802331193458522337512045911077527184241702207047668585268167823801945724619886844870555873582621438902394851753391541465576523305348640505100578683153002829485184139312308079544323298278338765837892149738915027208118949823299529101781925343385311995577442274485265993174289771648991665175835433127790082579035959073427501760008988003369973697653360712552734013773837247471730380160700328354678522503535108410952722840191024776608502953913241493172839824548115517861565358381284287336171187618067975480715016271956214463574836184406390786461540254370373071667764603051192510917000193435287883433395577569198652545414549959808605475596464913756841369887119677956328113505329665342646017458765955897320875557129291329128299152072392823330352340272150992354810486200219025814954936698521234017994216571756320381994516042976100648421360809171433951845609347922871131299935484960913622323727125575218664303534830462455587489417097894593238521284482269266052900685975283617861206395193117108242280027718790927954463225936011020224434667474131228306534027956208513152916130170116560449897797264720830553770046194247495203969183201252426580177500436357754847233111483031883003659185139136682153267791720634423433931677438680300650225244980766891276119317102754411951424821355830520169414281957131209804513849818303514646081269500588135579822145202946790716879928638177455930448426575381575760329702271991010042880529099692340296912095582882270239308131306107203361422264258312330315048702869592906644718695016126086585123054880370816454468252042833450979773231177915128709744598744125784455184685865026901398999180007809022533496421145820078124517927846951333179309876288095589815461198444409666088516242829836532681236678960672125927455059387626207880416351938798979615045243590125686212946614622920971508206078575226151028805515017956150762644882047513396443282821384439780540886479569741225602800617597495422120019276747069064058717959961967787951014025449570139734644400659621858931403800379738811433714493691402470077443938957922644186596902093817388933165983233626674547657160571778072737619379834373665882658674189475905458913065547428092175352134928764824796352162166453674910032432177750326579749417410818399277133581089240357900702709651385630558105270218271223874325192432520317546287880293844682735963297208212052630983617693391115142480956952232283620223313753885244620158418065576407443236818294775691258749745931388353873554675613339036327750462684088052070172072456372042042855029383530748928861895455377414285422946065918635715668171880225843493252908759357904527680306511266946479089613597960379715546500039979669974733612994701200657438606559192755446407528581564997143561919849944346035739299089151843701937205701391484132177614624136002625568608875840160622209099642046704198541138202997658646446059558826491737844318020516097186147989167992909493648268758880941375243091596304216332803048779748105421659295646569311019332241782031955054468477699501534567113039039480188506669237805591760824191891548739943650393458564061152035134317771336532579150781802000042940198791886437520257949080181045758215931374390114625243940811385271255336046844896054257657112587562952067230000343303581073572715291801141042367215750779504202743866821523777048992265706552563166857195371512944257701078611708211777794290036811099183435280237709292295281155693426479936429970712949246926910360340461303132788139966284028295274022838747173038348165013676315813835249461075572438072598540244633178315138847654191633538963737936570427386064027601127561557192184069123742412301185312572855589876818804662093979672754675681279546105140686346673739468023581802212657899943146047563188696294663333580215711724652778832697135702472926801359678614585502463239168605503160146947323855339093557233433961621150555393906831903239543693651224122757755709938871359896975762997857881664152584999445768004370417035939472999378931183887945193833380449894309458097399354723808227663077128451016960215942890984645355694367502530850518183129751110268657168936357389348866039098969674388968026189399966442073004795053408478246062848329096609346275588611496294718845812551518382500234964629481618417350427487427188116953769079871595713421666211478990415788581190311418514561486150530764662304670974896153297583449271110558802153859749088007553140302868223746877198298908061537740321073299762311881649137634971441111615254859608953186148253214283432382820938525347220673610511143915664357735488256830234593198180438167182307307993561969634903204989626115058071739888988922770990710680529162389685503023836521684328978567553138849344999406536861777377614266846557827585854387953568220468007256390948165472418448474769314451346411276787180947768455674047228444483027251599890221121154290848051235916449387756529146745657431267196657346837798335267951016487600427331870653044959568748741768645266642692708791725685838554334909134405277227996617427837102856954799713208270106500709217946138571482524981898253668302725883358727443397540904050400587818249025656356993926232268965619355024745383975258717142574968965688129590542125739105070271883077758746709211512016372022854825421313635969262221773060547355870962526918560991952776548964212812065633588792255783284969210466705217060879151649847283710936019705996578008226240564430417422245910753855638958586763858363528435040469568074731720553342707899151953907403160508936286153246209562773716050014970450199041127671155159346565586398462210955326266948620651379761899940840053307845705870323769308981704401603086822967005239368773510892083876856201306485713891822062615093022095842855192756260211297127834562138877377965345457527658654971926699428285020484315418063897622568048943389879633677501074129273783362952006313648655080548664758931325097229862061573993068505528900892080303958146225659626233554393497930562895594620749394923984238246397280259044623397245837583630155321542721353693684822543936597717114256881080710426586581802913424679589614601997382584263580688009956271313643358823107406223323570296851651387665441022738629457878142332315573116655416980809651924220600734750351134510257673188595533853338036138431133786985068233565821687223996044400736121628304106391280390806144059993220528665426625103764166809149862667571177792874218194545760664492158039389214055983506661512752349780823157070598828877510789298765910173729856738089940378089014900982441271791207265045956565547275667361856342328739693780968798058196403016153209947654614659836075919600643611364894382901481781892541749823561378501475122029488644169080111344359653859933412868219622815770390602940914706621373673108161120880239278001920069759893959086894586015798366129678332560301776015038321439960745109102067887979572456106041246909210349775301274296557529142149969616813229648643480768492151234824118834536898826210238469333998020540474899932113599649540457829350114200203235998430049807116818816488182073090374258358359330202323876639321190739070258522296962014749951303809883442843169494569772585149201863248179347091207703488594360026514923534550239909552500376936688982347001102963084156504507980460413239011775300374585286283117456983591754693174411935233850046397847428602767687556255936717962890351668844135295715377882742296309225968042657590632496107245401427833583337306826508311115239009550308458835946658027916407670033203148610208797775353186282476589457073013849476734897283345417460284453982347291752497516065873792150602229769392456215475879493795060267441807936974465104981201087297733981565496500006351589164270964358497318988484359722772755774934651934580837553778599753952966971964574064916732867851600575505105492955923420121358573116803811425722881275355906081024733122121298867907534365278059103478637856894197373530417626378860372861757944655909975428100773053873850236006494427880369061216025997681136753640046896543886919887226713229556611133436135539619963767905950712643370686656222878843154547730879254537030313227606158467264563599579981716813777398860910198518857916777033064412150161598569461007512693334047137919578959937413554800591931885684869656074936083144893427756543728849762028629037152826299743960073479718133656492979228191890686397265689513010319275131800591256257890119320055683011744843508514234436890625196570283322766380658604125068539470318302500631288809225299310432686550067778202054886962357873964221444056627553938777818812067372364446973982500263786785552930842061600530582420788717371915598671128499405436377567608771731642438133841833346135339503885547306158121779799786319983104559162506180336454026158021409823727450858892492695457691834882778711838070837082575656680973144852357982130953160612512730557232075640445296276002617059886680405763908617150587347616733299224789636736527698124909925301987738933587871875435178414513655107136410205049799101519737904637035125178840172859747789589929462644656635373347943645536316061852519092797526697778172042753143814414251330940133861961577673547008681116234126254092882433318153763671367968624231017526086099615896892240624037768455960010600931666647802964863102482591957642055807582051828412286003488861453428009972546078217100107256178301771872924152392568030378402373707792333418715702013333588629149296034974425796615434478405589397029941959361086086016423733138983206520058605315371404247821362991193877358704419891392701649087443415790042176612316750889766508668265284312141542286484888307488605716046930198778038396394168910409292635069300590326911323115909805227311510368964765517414547593510160312492828468050485565973562771228365182092185461294545131565366716191287627215201317064538992932589851854701144636263098796185778928696066288055789086361988846408650045955461378008038683862415955166001031802951340235944202296884890507714561067455095133774813517643835772208698240906704872874996390572474826184346190718919324024540674720858934974405801189649799951010842376444060364123884077647264275735413703323808471472247897568693018139431641644112644065751548346231146760044328120584357558817873717366136802192542084188227439527815066913601613944665616639199178187963616685781414351907458995566765959550175159799677505757581003469167971555858162610485098520158411080006730805690767140041496299666851304562554667543727497273388468909790249279724435372023322308516185962683369307502516115909408463828245566263043006929120887668646830968032050637733998252512073830377720022061984197641156318755629116438722451075479239167869861968809517611792312765521641909581301104789531109593970846831403944357699048600872488928691022990156099625463135566373105116653996190262523222583166032328522612906548253312744150949183034136237030405883883004510380188349697744968029099022871683603220262821112181850796135857024003735860154656617055391360177121789460174233228078738538043338726037794474250812463198076825853388222626771477882652152604524486608618803274525446664415697294771320659443777400095065734279148277401245528295443385740242889371777870872837815821380722910715788833997212020748680647404665689523233305293412278489519238079399418930766870534160007546473980103752094708184363590399892601923987711203589698516559115716339184988870482521594389592011225736568870291332772662445646483411247057598097093917522173388807219327964183734688150617247258366704336662946373910108910501096602146049012018117122343910168661321683884071463735468837221484921777521621683575378823714337654211521157408690970811336978658376165128483268768565258310753574812393895098834802489253919351059684937099435881886044278886114357275417194044969782740501819227806236797803651786726237264129677141424174551409818736352975633582837281019270782219297122009969940586328795211683051221758211702218987499012860656969701859419598243042400916831999596811653001858084482056549281094969070340090038991987604897568903841665843943682325431493592662734541699873746153192613065624297896869723764151110881536250835637955111740914482204166258321784735467746672642579667640107320338158351660563134709542453555569541649488553870151121299454203618204289170731204012547776098092502217497026919583156405392649339482138090421204513117786494043916135764081677671607719508312939648514352971076087875150231404296485645201622606634342533620960868069873567500416476038293516010289629630793110002381624480211139836145591170078521771009975490632171931157393148574586306012795123743469422607758999847057290129862556531429141273421144729195881094781591481753877081553548415662168199764075399136449303670006144958091605985357305284409200085024076162300409701325426276749289333350184101881886543071559701087506276645901937813219224963899651091461844734415352841845460254529044205891229987258358811932643751489021610265780472998112452366934655186723454461931484421321909989596108759713669023202287252141496676795690166134516795877809452978520838562362941072867272821282196280016569910697454727159908913495465626569196741194538812507616282439991330149929549654463665530410283808586831309014865253537910648775996670916378684335622579417866517413243054566905832209789786780904948365150008694467209319273709006081587058810955570318383283850961261496090464473545542130631327187919154371052397428360271784230538493765738406137230765112604446552750484447212667187701304750721294594220916929926729182765717915668521185364509548789155015338742853882581818684767710830842082836066195500850737530204096647130880844696339378733319868106508132017259639879820058017497929156376967213249288616515347283433926406171881206673682348006501535232968148241511104058706703612985683978955950295555970645458203980778150004646349204750004783779507854084787761356100787539723267712185373680891868497717611839069688888077963554747521229212805412531130090586144898239593023348617321610777390495482495042424581395432666363892277211654076034633257598010120645087479020098137224529626564248850070856779641748672962155189598143506814040088231392173538725153250500757188790135788786470289421347242349518745025487304749839912954555094114354400161160770391249643036398188202355689579950353972163834885601352802787582996881001347687854004911026081454866409603002737841529764574810305152303054480727574318832605549360940598655776567790756237318096808182200564895862230988108444310805805167424544053493435033862474022657108121867945100055495904262709295295664293707218078828916541996511580315631368994050923751895031453586534942178500601999450359300170023243111556788931720006539715041461823696853662046313318816152503533250894714125516657941681447296415233627777832396821982438274495384434055944860766304080805553102124511748124245958235875727141481196381581276301493710003697590683719581522984589965989090663735795758140831876091919936049143516707817094704662449628972839357988056902107297835875221364856280563539244229240738526465040121102357491111181603524836037856549903152434196827934435368921732425699385818389573072840990253870516049871741928768476065311387929473539100753516953753982202824496662538633907662549521720357389659957813625491554641576975025436014788780384275528072933221457064822373282912117001426686038852363103296176896434066661145276017150999010469356371808816763199982785837988267872708799333381995288490511089148262041062598120902579916883123937372932466336383605534360714792516577308768355751250071817331005665595549429064999724492206913962278536061431713671136389397291527085637257805845998968719707865789345794361297876201286236786695373845326748258377081778731687335095503178888573113785183988711549990637189328788038557425705965504226799500887331580168333661267268093550951499477523169943582627429881290161980569826414560661843502077518511603112519948655665301702163088584934581286132546519326946591662195943926356156342308574012017066884196709977808977227730660299715309409390825284468803893878805326012041306511713150763645721641179431112460272568166143188046517262162048041895049253031390681705349143880684394664101475305996789821030850327528969893903976736279746112057405363493565578002078588268000928912861541746974121161801987349157573945575615965824263115118680968487252996591894794094131345223363836604112628138926408042010907792535882406940801872108945493459520452290088122343288029552841672625560899341401567298995839153957299650252177490351814231126524954069435480686994080781531496629115227409399353492093633406982341197606768133104385337357111183754586895423361177077994822540310806933291269728891875931539883212183481415908694424909446623732627063305300035492989163126872210040677101731216642949093061657298354906322301695651464628437447481840344572783987466126622908717655908014421364566930471399021242545483603177985424264230893515150439560079108880953824613672400127114225609582070859435194638548248645365246646297938339730014312792890459960081257420438886209641659891935128729859532196201347075765802536057692617116971727814953109839895610462014572323789755384357165585718855099616037146192267955069028865326765944378728823665380558854453733317424145795540904479211528793928376498830443730422457416437953535327401478302634482469125280557371580752216684580596435439949529410332815756834877543659551780314137649982641688532226402027686312753575508460542774004756510994635935894167218235100066439503612244599391358287821379863190040941209429409744096221261527231215997935695150763158188889507272820299143763828296183451415419994255482550664436473680031403629306078184111014251825712397238607176731079483337283786563843167889313582414252596128809684143867632890200480333172052857773941523021222008626161848628611408511625751777529217733193010480442098952339652192478319583462487425691531938727867923216722440291409480540151577114682119935389947563154408820045462531565822826609696023014774611703455322596189483176026326138303409190897354240659504780134422124840904000568770618408287400283309294475095180368196864423346812267612205638670091462894951409360826488199506370006874023506591474493721959011609913096541563932027093622992574273831194636966406880181727053409844109325406416683062443876644273792144109105770651799387526212153428038167278263033183917292832342724783952231559685020427699174245946188933748752690771489184620196399579788284975282186760495045883001511033354633144546018222950806391334320880027508225084832047062433702409432912056470224494939572722138478224783174700289583822833127987251605886253607070000377595010769762690598131695261775550885514100337476905160496469157484838131055336962882251868542178978122401916112694881408449223496275669339366583694591755957517020039770421998718815063318037303371772167777623761647433261649753643577351683491501484078153180220467171013781832829854674986966821756415100104642691688576041906666904522973658704679651212667546689424364370290427664530186428694332319355379370316044930929416274781711926656170563897340900438745399248469592317343593284034426906002842176258078906018823842057170318249039475067629182845166751318379077120628647687369291638802854755750323136886476269412664011096524128190360809487249480813610579674610865304844824159647912013506015969402624695662083914018332701411106718103355766123796603564323391418018507639642605258155248314598636899032693388218833394998729671705521401547598354177190877314286997612526668614304726082409741510363576153913392216122206754883963831587720026716751128165829367445534148719387116348002586548852015260446094116122059634923370127568763357706425394804384920478516664031509523947590129970109767201378131820155565175904370056017946132720483038977226570962087569012420535006775338970087920671814050712307170758430511894021767894237859385464698744207034295895792727846700880438004258689524475202564596899188641572034450671824614423925342713216910805385803037520524063141529769050795127707185482688296666997515063128360463867631129535343669762526713472370842612464857413485241895146159272407180799158487102896607851460486539211412108133908971838828564620964481542233363733110835057266431619643640239130099175684819176963709485147305478892312380306104035558399826816648078037135603566903896977542878704532432682906195164595186773027095828327706633185449635547417080315179760336024395346212893959671406929552977384003366308687748206179939390769856073338329901496867608133656546322522281271779467015031353125880880335684834344108279859364407366169983887587528855832515622861103926299126714560285205202780157528787229972819825069049162358386399146971817925722082515573224780753536500728228145326890630018771742603224815481289683310035518277708725669024147979140886265310314068782001439428859162930020670343592541487188333724794527546469839020621326617837093220970540747486661541946589971649334757235904216500843763894197822618366765840609672254997031401106574997720996322691448645590142002841791956391030561480581576796294239921874056528938425991725894296483498727794556191441043490067044219108254852664270934016753200128836720213420619204250989751693026732107105594438874255813593657994194730996066565982803425145566293925029287061054640301716812971808916928153732116341086637439077273401717288382529624350936252841276872911411276374245689832757946834065314349052517585462589035553968641522451589941965111273981953892745939698394588920906605996167137773672698493701110875476206718811170067349770791721435982004348939378402386891375027274716467588869312210132839715348955811922218125650130737044593938798673080207150832656914917499149418971597835069223727866681469604244875944282774999025303895669878600284173410452415672644286596322177411595606814129963226297511978662996490889213901653924879490385136413381799918979523392669323697333932100985541953537133681655544359866513636261837932687175146852758702407857838593754463211281209103387955176263754207484373960552603526180074324272695034629611841089604816565082105302209061735241873187895105419628395357001106367720679023926815735030828800805234678334103503232111933251737895566859348192047285958546100360301448642082810554026635657955564026543426683072958744274411776129647687772772356904982743966035184079306302178577454979381116772963190416976230139428962241646141302612732801845415391227472910913598415711009381786558097582589602568471073490068020452376961053222658782900288756993500902981062573387310324425795923431041856951688364999233598231637849645548151781661481305499085394835169169838142806906720107838727995786142841429402885264113727569667061869043186914417026140782708633724631641199003101632462151372399437608931120389096010308320457407993486806615995169901079123698299910608814057536122473997625265694969194380841721177304726777883321913845177835061117070385958379128243655948571764635992591183571390827632302591663363080239612610656863213067363896936981914196210786053936652330128297343809103290649629214785873166956890333342794599782160871883827968608599472956245704732296551839474439667351235090254352414616473479785153814654334546801373941635877111141719387790977938211942690311475469652228780481951567024524189065411998896284254251145149642458464803535968702783933877839747384856090041390758999654901815661239829444961342324359479889745425467544632468377412870251332149214815634788530624196412547300539736963627484610461877020136470874834504967703661160422583005167585387065518476348908287384976924251695842192441356161508845644066730479664007930159846875482786756786202790059397913351881353965143379668865893235077299009338121108561649894278909639284145498473526913702773377646114947358162009957800922961063490436828201367614466725302613445142535471600113441024822871730896952294950870674433913840411843268329960290490317198670404668281547659728550533822092920042105377596580868543561470411340933899377231632520542651416449253770174627408524145412462055148972501633461472136885850711786374252406643181452500683056731335138333927906813562582702490783788599983795825675000620542376195114199011353700425241613130948115288392273026525450145076876311784248032042509539799937917500833689226164175493987836449646211614835387983180551952202328332806547822796750542589952562405907555551619232013679290725109043510798104397410702465026429002354471195836568568827034539546888919489906702321721589555337653500384168731983072908650425294764886378723209193259183469146194833834643915691812835764605463966195521081939117430915448709661531581172617274532596042690678531262655277581556222116893101652761810270871678954844132337083261765518057732385328732149092514187406246891089048582477053954888888024368569950764338567469638985838418510421081898891213538338632853108087055184616145092484983197149429879466940739322542354108648472666763476714141538895511160387152054673837067811123713606343870739300286563065707940329509376576159127415944623039227538838916811865327361817289947165015406925103385692856067267057049244739759582821031729630436337380890018023478496352848803886604623983437332202141968062616469143992529018904898061625849752021231063477761713705829164013375512076563470322504574107036638341191778512062584875178892672560303929214732003804699473175101906397018343411018817982719339207338877839840243998893252799193548527750936364170824347615123384338646203152430653215774128542568454914272007673386682787259672000098394900249721025359309199630561532273767251545077194563910033466202802308168610002099742532622036429125236485712667806650135682155234177625440009912768973971956506451890082831118262920966735210424875395025191042717902370505094337770292917418569146913989128919205252640701954153904105661723449635658751217257234919743919598553894040271498327113903045234770465486213647173675990742505474009539246934975538824421456510472501074851125422764052120366677162739828566517061732740403309414360496853715205614741412583960301679869497878481143514916882661922702662609803474644620202918503386586553250675130278433834259461992989302902646326843912217097512473809958561476499026169559830855858926705061485610412090249204241743987813008294611119743453723035145213096181534280508912791899766042803177784920877020230568891399865501689261857034517031062904124170306541495478563286192618357979737836142783990651574714485420424000702245694732447437389753278373747853272541135847362756480697786798541910961651066481744454553113399040586574657742058020579714103089063621737920716595561434451752669078206066633969673333210276680449146455221911655028824906922505380329283305320795449362284523472365603173084308693777507280434496900650500586098187603889414818796274168486190779695729872196845241063332510349922136028739583840476599581598310005721852237049705958755637352973963805424886855460226052388115761520340830293494160646959683632042516946791667206601520694591475021389732248965712781827892833805888080800327238406083858335586828569993391890560336810310311740113526058299467727709160171218006056451607343785494511958689969017559913512084918267303491811957803644367347125440966106166277084169999883477418006418886328478522593328833498658235295777736066519683143064416460145678104910083460543686490009636869873588146755069096708572221134227536498961058442201718578808009256297444043701539244336924370247435107629312479940003273962776347787861973925884978031507613248817220177917575554252753983276826854731832823113953312718852505359959876111710030424291484307744943025719007269781295706544289507043246302847941009180126083459775078118320958379593557332985009442393662813558138448174114072519063854771100132859101773003413908848548919712593970567984450700159956942690911874829158125764081881711378534358319886280249959228773770579407805778336464898214782852874504497932465215412978259429349223929870669870036869646830658164505612188116006089335439039519820596759916105406830546415602765380776480221435005444313202670310148174565848621507769154962622270409124040220544261496406236158336508109242491235485587317200507331030605059180965994666849684978608156054356990529773084394381253068354812129887246929965753901005855943471758527236079224540960478028144521320950810917621917927669071357614255824437663892126779441182850722810653614519388767039123651458827374859402344948083704075985870795888943072125389737665219372548281160939161600663901926446633505938261361666646217807708158800742787149849205635575806566357975156023632734408296177127689250706583401939744133785116120397661881074130329546546727668669269246195391490056840521392115427050474952780795726285266087482009203631370566210830250743449946201061340736238664608923357666885199415225848933206216738029109904313551922705974435938381251494535866501777268275698787599395768481692864299910840361907281233966081863587033474455520994682373307928357628436055652376977170661008234339586883171557617908764478710809596698466475765386027332772176303200101631609917323328157798108828793034965827773805578017822781222368543941537584439811830047906886499062179600746684250517373754813665368871408295389198971858202301730826834058891661495821267483320923767422696499734847430510181237856519136217126361254679518967058523986895786171285364323239000246497413425774675811986757280973741960762317087296745402625360797409420784624949880882726745844436545615969794400801832257039495090166079806570974450812167666326644478184770707247919706762902795741813329957073709692793327350951479126488018916090245856091466971849645206767286419183427096962615060675424851943921289372974863122195258686624575971655460550965759315013140230186380992415714327140520697442761427824310732829776355693376410405312355702226583420242000886124742368012284755712015248853362618135924372588799626582261342265217948809602604544197908385110703361813333480394317114736308619215235960385639072227364020616991431628876367611741440532890434638117661037295139124928671711393070830528079564472452508566504870366828962842893614128167790625722940534279716283268432619576232543678350022128937186106047731633190111982752539291544702694704483084735007093798429387664013400437011151158592661890690813754528805769067278268189169633198174987169832745550861429357601119801690508411674623170443633932414356187668329723359379328291092085756783628780827555626856061482992233450481784805774793899639345680042489441773351981921289732420255554950947886956811733212755053713959241747961442048506548326639598573897599609025110249889202716783142347789470884677658402369346699988359146373686023548031164715093418092434148313853785562359835716701164680778480941346537192133369014849136437683316068740124919983520022039926501256915136922407631923800533443976672030638558831108364554204622300997630652468461580905499116906347476334093511653237566608082491755655358891146664779955392230318307694984690590384928405254023917971635857235212683355026588638661544630198850736661219637891878262864015799378462300164365804851838461611661014786295677855078275246391209811971139862815544044263445356961614431943246279913872269594279953035969647329662798603017482170146064696370373759305867616374027234745853101996718854198508296744150743581477342451265584703388643589671202289245487915616556537176319134464501888812145090772891567772872648090628476317725294355249512326739253553045664161635760083056923723689291584974588590637296631511911501764651013714115764590956830041363203607859362800921614695093068808883837038860973260286496554718031754368823215831316840611683372507234885170636949187691046032659475416310227013580833348152722939576408834658955799864325680468939292011272862511519357860886415040653343772932725934046821295321025381291742628481035161780532260604835120018702609352159643322841935834568435696108214874533610837810034950673966534987425485478613577036979995141167541935663445065395765128516182324575643811036543609285981040545681989766901927460140659354054164434496046437613990420966166414580815706890168107304982440211643842043844792292544149744303316735897336232430599243474240034385428738894922178165757385856839755839525547743070105349034704963123894298620787735944708018450563704779913640402933577772976704875911899743666404353972001596211800399753186896779198956747626165062235824997177070143204357209966112936586629969519094150413409596548953079373606186212923523447365693383139017117139762221127202077403328831619814631527795792762283420205024865093711590756403772035787450603961385665231399271029506318358560935898436721208389387366924067659079757355420217416173952053879830378209892629436082614164652234146722883290981402149657015564606752240848172848747922442760775178374894346028493859427450635891212978194015175877775312091682320774583733246005442261705990032495651726473831186594771043514949740064726617840037014388819970629144089813650669882356759125130746789499398653377936648206421583650841202247359715402379652197823087577684520504356227228315730864233841994451943676839339395944963896747740584177515091340764814376319700120851095637802388615879405924167890316080698823833975894888080405987718741286704651090786595150293038039099279603880150236683418008352400276777685219962588827363916331673970992694899621714177138867579112795307709061780637149641800622442445110383693496858327256663929332132100150589307266147470548572826142259492107078716150807808799474943370727341380707040513047373341024427337286625857843052555224485149100295869636065210979698298106163207168407554503556872084972183500074678793554020826641218475700371454019589118475740500943794283639276348667932005620400406683183941794995639846917401101768047992452661818118852096871212004233524281763201655577609135313413537606653349029929934005901359552648458470198892999950504943296541964611185452345838789787843923858833447229558636150043849141575414349373020028832506541917151633978470371488205973827765566560902780011026511357184214256179004901887190239419854456521330487105056697768363549397145924173503420999564419254813962950797963953697668917019987722090359435691108294137112379080679394737298511722501143194574912280499280153287597265298404092521059394350901248365405374230914766734879110819069877327806598468587235054422729297455867308869800721943162604083542417054196425862885991410612883903561408802360518213901468329664903979711537740573921773742538591857779253761844743780565338895072011432311235127394130307767607422170853507696922667316039808206549091563022499173562933232936565719431730696931532804978620452774957443237542343542467154649880550079404888071242436310799476415604596256229473624540630552908890104379439299810974319247025536641799277997252368397032042147868868449259147602502791346480085865642856567315936762259194150926711890732798747165196076487153002140455261728625135034052213443448568555623172896900852353979877811508729490576627791062508917599252347943388769797332317484548390362990022035678422904579606195199595302330262677655300577182144489789091145084781203428538114408598942918701642129496017993957252016077938334987175099347533528460547169684928492202451502631588760222157148532289675955790584388504106239845862807077373852526384645500002404352805386249648156340324428693326091614543305729593470323521297584461533588651940712412093230112511041514420708163684357177939532209602013770973793509630446682986332976780269666947571256201162827366264044660172556698232368236834151689141820654336766194639426492552611188708984670701068897563856094929547649294705703168889393977952478473557054957199942183598113598473792389976094399648618207466505472784508681288206751764365033735027878745202307897551294131891224954072187272536111181047700526916653508515083500482154200860960111767644935478175997671258161562528318190864776853666096722227348459839962110533696788994812916263018371071327881453641764959753239216646607679964857543943253448821464396891519408541053971032884902035748688166715630138501784753696481182318765046471839380335060881839810232709505424864575574159814280237902731067370676076193032822429340676936617333532963645846442901172061410637305137378853067420338007312057366467122072329697667640809054987298315996284785324430815857311458675566057726858746691831701114772706679163413918836110658768864650101550101531806234655725453946849688673749144892490487866404638418835064637954024557443325260217231542343546249007588448486382211885178195440087729037205931789870831573170103482338105215427945139894641258647347008612066612661284144375101312389705676876882744957330332439475250308586779438814874782784989020440813448190285572553276650305983953400960714040209945815574252673992560171593701734645912194692177416621760627351758405754463031191401803473624744733323049599021995259214466243474278527824036563586739170498325129612075358012545272742915260772860868622641220866577639184711627396627534327667362879084490179401506291063967996255398071798805702008963868648461021876754213255471562741203072848522047555299313432872778172353252894283184320435920175241956762348622200894371035045916590775498775342851940244024691999295483347238826826808839056104107745155681888666592095364731061582441241381384268137839218877117206853844839545495740476491131575531396343608094650078497592178548776268753976842625304482724958305767741336490211531112303353817185756227751095666468871921880634192686247760488866644572806314093603403042101134672597391779145795530024127558341272291691531436331408134358739014967260066468932854643256068684012843656328424661270932272082029702148115001342974591344438683508262057853751664683195363054830441206893613254760527336535341529642330065788508117701274139376461129502874178710376657710125370132948736483690994515105872767269866492390253610044254531898471465709171261632222009211836543670519979734499795064465572733497428255634380566221768781552608823705054677501047766764789334233850017929877102082793458335706625919792829199076902593020662513778542192811947305009614950846156296683483880776807748603544135595539757158388378268233010358743211268298533740371691510896756730985913158619951782674943529409563978770033996068014347485632208501446669421843347483352653439617031395133328531225715972727157828300659385940953595213886715341050007530023774262802351464962493084554104605675590997934354211906747185617711314976280390636095094434601531339885672075459179103849886868459243208030351018923137523525585442679234854912098135992372139599518981686417796775284789635517067841363305757538001979209919287768166550551206639981087929512104956323124196162396432575477998432617354377537419649732897638612061061878673340044221031637068355617816017626038531993572319623599868783088047983420847477167242086020995584166901272856338824184692595258018684012457193479506483205419639303583459758781720706589519238209625671770779168308395636808660802423619991718820463610828038392492799036252764502281083329426751900586514717131170412338360356091391595999697039887277871469040006875109265721969166621192792752620792101733223875976943694644883426982511518433234795502210246588835390392719780612353091860998147269230972513277076192803999691636806226376513026328785151881434530779664417534116876770468466903434084346644195233176944363908351852378979845369656520702987928005042620929790908870738944119155732674639443965634466397207083449219810924549841956969252376874307639047416688312279439149309483450326366855779889201056480910236569857096502986040316911838090757185012898030946841656901386285323919170669710753803001887514705876441766757535011589282946657735481748879200821006691319724821564660735105456702242003072448822632241724560925396252726052861958517051175160993555090025726457202339198060326327325617493576353019488694622972501409287260025579290630500555478307250662837843704860219934561331188957259999341067852367592914465286070532873906209633351646811341816236799373605970852887070432516425135033720435956446862885990938164135656720764194610475471100393748210625296846696577438531891990063244204587094266133792117819584283796786488494533431481907155465971826321229632509757728395385404405475510796510160366831247813787404575701788985624762564231707616526639154782554297377770711778909303029557280711802355551844102899421766779357919450369818486628616314994888967732880260926598229539520384939468157726792888148109306530816397793206767195036147939435499247537322411104970265355847674757766032130338476193413156440533342983278776346744856469923705381405060310836755242894763902191899642666858631171997872913339272369248053232835653090388901149758470307773817850366364863574625131695390773367151553818146311491493343894541916383775395794544969683821270153581300257331615312129559557559572839748680369561286720686093407229316682708055908713407763677521447184245060111814235816820362053374251433560064992195391458949594198482070682921572748847456885364461499725097981074048925220264575959487862597319461491297047532558076689610866661572019306690260595130622381850423850859661143391791220456376895932506946128545776652828985981892360790572609505520814974026490994768064724072580866373149734626984819766990201862887278476110505003041256548175349274248075015060767711213856697243879065369085316852283156801650157596515459062007339261277777891821532217130336481086796618640556950793167788236465669965006361328249825464742599388547441812033959844740265158204109888783633728181822343042101599452106057538386500306378859582454069615401344261847977440209080165057766070331076148171964831462083843405098007540394854875502453350746361181996070787030011900150998535977203575037246614273794708497942594550893279927606181127317127125750177788421786038953170178347524589603958530829329908628465014079628651126169635198978317501125905439008118308873203653470494630855864617607989544043055178320234459007897853531915916007669145005174223219487164983783317813630729853399460312390513189290696920397670626912417602766029991938538464045901032949050407033963845487708664441643936166437724228270163566396846859185172752559681025795933387314647197896928102087011215176541923329584139814378232374532332177886745217388053446809308597662012825148239695400228299858755515699947767905826902205657503056099084295021496457181435554705332692578581135313285970218242901176931510933229012364757634041974895828323713029436161265365580884760314208188152436984698585459390987761629301377033333553819600495629176022358324797930519346326339193856830856446813939952368398680366240311360777867690316386105186325285382856750697056948204033359886275595945576411732254473711455766144844126227838060365817522359952826649671347268655515427907811112355083756848775483025027475310018787504086588991161111634237697869325031286196746096540040650678763318278861536694882822337987603047318079179141640146130292498489368867655783943564696835612411073540393690385124313483225121512551641621960381052330264713288023117880332981304904853291653370730392397656068217642885273992912558095714506272013766583287256550560780900222063923477092920789370953225951116496090354503379756306579235300002856955194212914393127930784731443153262762806472905506214123104387395827230272999534030486933110519998119157000511155193210526477784495560724274106076413811370240637922946836888347106076413433150356596424858263375190052343750487170789933975697004034915721508025569350199651531063774509780085280355462392936323520491300270847626279569914163525952122606321640404318432090381332123179034994900364845138181097700188982500310398167869909135553244900944605865593415469409345951269831859441094322852812607733070271136513296940793032945807915105379397662851949280366945917889809843252072934109093498749778883734499995454887657920385020435159614478372515982369489221814637935814915613854769374589606835548090373480555830582989418855547914733535348760457666060422590048823392006360707677119788127141804020376350524507840103318060089683792759376189151991382883691765434406945585056893551723426722864140328880963539992664029253004081477485119855238768284360335557220446807272353561504555008917733246623236728019151126603178345819427303606922146186491744560513772444622249597884276747401176222678391362928765348816168222714439610409442989819795601063115416346471688072911305635925022762859774620204710967457383156660516828309168729839842690614215969739848110161232478221862189602641072933887699043538948946740358276018440516142361877486740081681169114452433928769226448629542047987135878587569662338276835066128428377677233163909194192633217285931639702738028636132715762429322900547221733735232600374062753164328215902920482853459046132697557937943144923571252865580519683205662706843521525593691710779623301590943700975318291017830553224254788648724956592819872993738240224191984147752654598924616268020412960395617492022508021720051423443977513740271795412983998877160804441464677244329961284855726185687959141012786525276031115014152535131081599490644511324993569028643836504006667425344792443573042476923140706237014366186936103104944790748066659286475405132407523881478207714835957999171278902438001742124505914577255285318761708404301042128930094324098315099002656819835127120290912153936235395621035103619670032304378827371078875578143421722705867622585674014803281151688842987965137979566228366655182171843056381952288135555158557759401070982956782653871796283019335296115382453967122231145892936665363306082018974615186912489296667760173139753030249667598880582826967967589941133586145864210310233268859304361618364563892813966462494907787543874807407593404648669384730076600111462171585720552555962087713905597729451644353338122287289492056265927252592743113590943972488967292803356045099909589323127087509134836139902617568965408104640750280589798617716181052331396717726258970316220089794194062525712601829292136834853901846200944798383697012707711661031556278785716700641679755948266628122346498857652069604466434812805601861999375722995935702575618703193651088876047083927365269494291102863837891723708666095052440195783222170748965212804011026910459989152517056017671090951266808627774850191175323289123568420336190294193481270191673670296820086712978196567441855822435891340375661422999108504568326204230821036725226809399503456966639360511339570368426350847205198374002607498840104033574548800824045925107335247088329641898155361317236050055754816064811323572355735678723433189393818918847491637238025626769661368809471514199929224034917197936133222428663905658199451317633081729025613282221977985551058154694101398159341670142552837492959177257167447973058385246126363432272434255101807382490237800071694140854732381479582479281274720915609498917348964231247779886843384869373208256094732743944190015885511100679604903393205876266538740707418047100714707267327190921995098452264715391684187967315427806603817319796270197294798921819476284230617415322639134989009498108691336210765648426207953251269934586425832007139346077022218692518858534178144502471287575637572891440629315324688249927036664650276580563181920537891996181393561889431433404195517912016647629467488093956232941366708298693444194550994194772584058212351422355960897028931803440900666617622900314348173292760484147670957025975155821807972808464313238924256405415475551429889016864362961910237263058752079423911525483073599403497021321505521688503577436053956567804271973940672954008056316913533874493913707657875069707527917602916795641128639837999231138866388001794098659453620573989341402397865603957800326688057626110234749366336760267925084528847253361573866300718312013728008392188612587808925403921395686825723360280417694401742169758390827252779355553446306757517795279274856572993436441510072800226411734110527153164283917764699830646354909369103597712942191404310181723420865274912272518494381168691916441411381217338068468727422878351007946467454854607313253070166379284306462927960841629618394146945244614902559628489264853115070571146009575013991610800754364062994092246790131457453272541164048168464125256858494529406056512969342604597007026265069760390276317506559561754988039618747315679104796618887004288716203998990341888674221368589137718137334322588057915162469214209144694783727100899632288421286070288057199736416626930195003116667622694984898918385604954537241722738734520467756667362825122982994499937400026080759374998755819069456416918072153412281203674967558866482198599866957617545587484652804588421926708478154719612066827589400293792289048403082137035357635411197104630163431704174540298409896114769948865827240394361485942728258766362112431529954416209250520120425315622739398375847960007089132180776705070508283191541630520573306678353544398447176022017283171976596673060732391931887512545860718622680086186767526834912670398700583662740618862966481576547709971832976044070585762874101674000686555630489797760305050616268982509781716518541704657499528405946998377296729820062435328156549384460734247681607730864919134324024183363637667925756036376237238777159085860275409509477338406131865481191920013165537306689651112250785309793757148190440105531094813429061800624957753224689040675692571756479313238382354209505084101561891394051113554638716036857749840319886239665221339156273755441460202211082552881310847958224279665300344381666822800345505337002238222471902626905650681769897219263544273945251369831401492779760471287303667103209628796640287566310340657332463093411640709190513040745519697947841380625024939770156246360504469879925118243097587967969173826057254288121635195314534561223316108105822660942452134079093238524502592638615766853710156698132310568685546048083478238370825694545619825796322953275084001698083334398297469719143165919776683497673881990173099256103401874992589150658547848538033377587632033169063754756832123939565734400193138792833547368933150127100937680454517726662873513120104033686867172719964091528041202132068951861528928569294825190428151772691804151569123790954410114981710474944340039380867308915268708378691854795818162967177483850584227223770483416327140074800992453429031626854698660706328983373996800281121466270351391961960994826502308647696808773159420857869766438149837074507312403329254203109822244254435536508214254286462975776413525522863390358938707869792999904977139321864858897804141824763315650201753670069799241035192238795716739986323145772560566257561972551745075160204447734699646125045520175299185234235989816025594522450640442285282227151398897652758948349224022194243863751465104522248069153158815390207488430069202336166168591401424449133598728735885258932988138892034472902924774462436378679309970176996491469274210069182184547617301141414268942626811659121793162511225310077325273421535411668416391097647517526711922863924677182387801028164209559876579384349087212265511545757104245182952591343901010075555407310073399892207060269990274432700138956584039525893589061868583863418109332269147963576275851771972241991250208008984723819425260254818950635083464634144502839671709285313726037654572854908767408258326499102238167249685457449344446744438968742770674452744752922792529511436825218701438977064991824604842951907251551875447710439935989820665855862173786933948664474752171152888650897544644495726018354558708198132944062418070661395478856723996906850400253861982839326807287401167822462266263827339425939294832792265300866366415354696506892290184734908920439689440592610327021131032566224328174348027837062657420614182469705396023804733042575911317469412034962394557768233125220825707229670312794729637493580300729665115238083213395185359183193941785326144827801921428521717060549960582878288429383491921438177124151696912458811435857524208534288089819287071748472046674942725393370381827024536957398412770539849894269699974193136463466292358695187885742299848035013408848410951882747142228675786585687152258259203133044350463634960221524930037515542738956618755184096642214550787566427974781226961325063233371261505879037632240260077517715231942109983130511310873942668545732697338936675585252629000668934216290620452797318241117202628528090687328424441551111739785720323243889131236159602020404846175223117353165995361958741553649282077275137652505794683671750005880176043139263913013212015364312029342401668298567237121017370311531715957198157848012283822356592848582945483154090368758668704459978071333429422651091356054981530107502101771037609644793811151783435855529556800094814292325704595307666186134382862768019450100279756037402618055893923088011674927064246968529319552317886805158162756001468307254019472224470333363388963517703291226973268456519585554156456096816635531848695140992808206949351389634324221419379287936425888885066109855669007980411221195948431630359416301520070089489399815905197656710813142311492659488664631668559046551082485851991577151783785797308308467379610156451150020114554482321605432350639649299705417544657087569803358757438494582399308111358022936350616032643316369504007216248618774226474896765989892812888768963052571660854420119241470724476894867183570733861439441042921999353821964338212845927893584410881623934987299905508207745536147831360575906775348771505908934692223402788784630973040745375531484384599432700698440794844314401650761177493518354339267941406256440315840435654822022763633629570002109832177077532733858252457460217295656214638605927695795311058583582002155485371850599848982948724415284136096626090656945707569343303261554883759748378463577334857668377619868751702112549949000148342407587263342955132305143310050424587558779165293518128045225075210000737463801287978065822060628689129562655860133467122180595144871994651354269278230837365721035896385274202618600474570236825862768932222357285166155678606863670237986332555022825970044043253996096961068092515569841801805977560389987629908869968072033920610680426747255822423845789128736338556225161579096353199192555381286608849776392081822435368130807315381925104050657634474445621785225626201354829798623289663783228637403549612073201805812070376542172087919547410290805677973900764193014836309858355461548927793872373343453027173657599725122244196504505204152793213969504061428041769222969433479746734682428744252829108153784894668927757879154753053096920011708183664156457853634673571499670605329239808392123396548839926958110697901245728851765668321022005877659140910252653676673179312136765248417032280458171332518766218038419968425164998537950304254479050475358075674287809627942204009798464599248923487000433726856752718161570126994522372189393030566331326119006688155642677018045762702026835021564150165920655533258392633003906038524099106237252797935926717713879444228037285556867288973347273839981469879577142162154846096016175577092034405871027368454501933562585376667414684428746635260428349323020017086518219645291397759765675962205741590043251707904328048605758868650330024635044694762275737408804188481467076099008367348816196209779199147733036159166953009590259797482585504733502248185900319024196286547375663823258530307949357590822140084770569076753202488458822142543599364581448879524551614469787624065909374996405193053190270597270485524713005782550700472195388931094085938636683185845589089219291033645666383589167613053882882836283854506389908786135033958899385708069416772361501530758634778726083187581643622774845081248277081354523399496198908491632324002274330179615782277613737248610788534008613856480123138578749170913525896021937141905318469962594961233216770433114689314953597809796402904198292051649730488556421975897531103829556715104614335164768887071589121962771273406382472282449373874868333265709185708779868344364805991964913781516357346131147706364643916023436247616707029055375003487642655658155880671180607312882664120464811129838360879205506047982635718448062798844792728608421801588749470771760290444964735225222141221146335085423055640233647771542540486235600793959611652770384845854724366365706090259179695055129580926463490291393457909736423841906036466707416561850516771150181932170846256437495488644341644499816320717875344643364465418368264304881221092443668838095217496107454557706224457266950101785217916287017584387409759364702044709463245818344343460254661108355135046183662826406921756882126476698561789658257761661810202769133137738431174928185367453406231111144355015920150856777194003822175277478957570491084373539371850417074068279581305240175065120714954874791350279928928751685612007501760334613685213026487916658310955605307795196160932301757273980442787968103206476601151652891881670956579961469549556653461021262061531768565366734427873380391877139024415046495380326495518933456385771235201304497591349693515857377705067397271367089467005475404574103557360724290186242065352272317504839103378384524498076277931948922124450650756366935637060650415692775775386638965153815989982324298483529547235065879928039199690997218020645542283189958660043523939962650594560076106005638931756092084572776276557631917485885498392966863796230420599440371361480073701027184952153773030450669716214346820529956929331455565108910300986972057800271068044058775330096404593398196887229967890525666104660384199272336090854693454577892918545285425365243181842927962117048352761765756466629543584244299967144392410367233259078134264847228131438069845743177104975953634764951395452357669375259474462864097598414420817516015797059875110638593732692368375484136330042425472131777895554673144637406447692989562713923757019553744656170934825546751128407001240733520395142660503976706047479585240001586374033621568535537433877770745937567438308728218602751965729540861333736940723695014515564043696766948730077730856762650136895986570264201224138428201659894667172152733559927722464360709463686816410564575321819957169553769043474911327170087170225798643761252133564430830056679765272243658509399954544811011657922342806497148495260947543827807155370007446257908380308039969178861312037045429296736955087969820991745446886867928559818440561223934024603300832799445119445942156012065641377870320230493145004264575486450650715445724461753054636787911381319726717126116825813993503759389545291871488844796474947837114490619866377163364508833146774680589185156212459366498462805376620716658626546965668888689070037838059959605079742138779075890816380034981087657286738823602856878524432704413302465626122921797269787224433950370572658643304121934539126494073476822882360028214360401136451681192772479975341014383012321948303136801666544799148187115520151104909688048667272545903135513631075453506065991950538605657181096137417305527203741813399428266301027504187863067901981156212090760278508802852032753627405952573763047818279708579942938986767077204202636632353069937657796262528188422099269832064824528380997892695947334951742117784121203959354967493143734054788484034005609381341579624032153365937443043069540558157619999771265255603707322195085835079031202235651873550806320958702446249716502866902428422017984143470475141138619981748260208019451304016846985141493803845054833911356181623417880319606429275881452996756579844991549234760400619396334391223183266306541965074283496464566114047421780540052723890074536084337507339627737897795935263488672891499395041070866840947335156561770485249955407215050677044568379906031896008418905260124577339193764825659032669163642652426104151938173678487214368124988716492321919211664202509752483304268614611478839991592940170520607810842525701115714477449589544507722169676859624005027617121355243040635330555682565655815134240526471282398736137173328350963955510951690890041989678274081511004889968789224231881933675463784133877010453113751324505374162630767096110990320561751354652719831370630836626366334342254069239422722221016843540032959240910369894639131142995411144641788979693276093005163733742374655324881812531578284184418873218227345239920609522089711840423101176141721265825727224814959886888822902374057033821588054199768135821706180883409914897338411941044679367388831414583228174745385712082510680131428986670940129413216828568191272364581096162549774833547734100304473707581759058481197530875141383553285706324671004591726937604907286788690586613728428317902480990587135906082994173681214865412445592293105022534147346564986801500011128084654486926875034069869200755551729416344387566441817604622582372564254105610443919363538932506940263575390528801895452483024932404702336859562406021334806795029214972825932038192626116426608954905319845646178258999608359743370210745151241841487871996149097494284163691686707322273986737263704317075322690844185382386807252584086289790212831360659310961338129830667022406620630882211666724188982842424888466390815561903795909769549509043574972052707198678699771794609086269936937207779547693462648704020397879059022583599982400122835348573559180798942075179499466516025384715048751922236566057991074649846842751075357268074902276211574439390367357013734363733991553598413931426548530120901836617399597659545586922230701468562676778848002516756203359748929856753864077634073414131712610991704858629666465636210174355660119649478565338033335462603395294461796240549413403142926084883087049740946861986137445829728284410488406011055102161154510083432962533037197757659220715602502018622178055046441713510091379962013056069475820757105204943924430978603416593916144314899626930962108358022518969205930488551708321186413941698594800824676748465068628636309262223264063930920291008142118735897556657017882232943071083330282825059147148698893857225512294349173905356003389957183928234527613128631995389020353794659638017476972328249002477597793556943716112261703718621193847601405167689723399863300705020866115027532574318443889320964287275472980009998388307967827220921524303420070221755424827845475959440424423867342712235275314353282697599687458428790658978589717124654722762776786085264912511118683722996028085260336104087696548542714415791947659838177466016296326259479178011230775164964144646472613313407810686288479022781275527911184062022205632210727994701163058297358765051474102176053392457819401875334950959354499118000021498255759645905316988142867092014963929003457598173813798680531070435400560054041612755634337215209315411818338753685791318026469941067153968588366751423843392056819406085659981821321928939415029048432575881400764237519444239037194111445732397882279449503608380384628651755949042983430135645036023443741674914442453051499419988959766150331079668685125407245338839202178283589992536083940096040367151788343015857300097327330349394817064053125622528581528153245949868203308869297969092336715184972814907142763661200317555253068940257160774126063555804709962117459189350296544961556155016211671450993980729543006106280476861236697997253101307014936652201276839417039809649435230623384594211924422444586794392937937211291781561073442991578489544897991440507583726053125543077681187598900805460237248380224602886456298572280394997146073597219575834801144393591577478565665483336503706099346320477778986164374088095779422347413757208595502166617899067706140022390235594493648057880540897377394065880931811421800727242617763468276677041378951513158679960485809797551881806724356714923064197653626760033631521717765118285997076302008687269962807210787489749018418550587446483778096401281781576135850104954995096055104391694830834906018625256184196842897716578333015759316540304440364909925986415050048144356542897802493688245104187817895899193422100258549485449364996787713814536434285492358403495116568429741628330827371720286307463527375374760870496199726439697963499134618548541377139947143731012661162976432377142931413568000588594464896275780287206235817328936854505279166666902749659865813722517932420474204224356182707602486727154097526687576856513658436984567800081593507946763260918949284411409517978233078686023872215392024753982044375610351685510561164058542798323467720454605726348980602004559817869691331376032534142048575057563397530174529712665116115921990434170500653746892058444856130450565689938962708558407023500180227130639347266226155242759875615481025084168201687965616212922451404085870742122041544273891423694519707385479973570956997158806949956295527369840947767922351310955328992998245965934445204127809069004049106558763160702694384219980149939775293671894970158368226629303634175799604981766329963082235042194242533622087235105980696058843963861247114501026514115649086593447804937321621416163680929742669163524233809717179527284158913044140518054558461984406301687532482419975186518588427151232518744973537362298932263112365675308873443969435321133032790208529123563315581060183138830842472641602112188535947499654235483704966065174938010820407733442862912794039699004415231286791286533325302087629155416542738824443422793447893535592804051308718426844353941152922106627624182718763733654042267438076556877657002446432172102344333546058304344300282990471310247275991713938741633323846719244671015740238880626211855363982656475154264243724259230906257480348684741519375393874373564222735036497299363091354664418383425625639772738806564383443623835373078307476453128304385053194542030835679192259838684432801383979331609497994155643794983289308162737259325643839597580128829162720334687993455654505142551990461190878334560213431450429504200956919552402674757009132668450845707540920988724749466376229370583828060341935306256591268417608235555061552641151306603827209215546673685770359855441514784969967748740376473260625333905075308530708113549556676339362828412218362281991158182344492295130856154073517890818752910171958577941045520711445528640685469037269982155758476662582822277007987700099012271955447479515657523849250618947054724602158986111735085108913366282213202672994129391373954151696317183317134648175412292560655631100881678898851979180409096369478276257322197425545865855609912472271629216252877499402110759966831241147931173670118110107206465330841081880799670058909516482679479874098820623183465270997908373495178107064750633527752248204926876247035507255800900389767322403278370655580092649104913723540097856052210000555703464411745698369767052184402803456220119801225023632523231946483034483240651983297341357786482093857758972620088389220445516990641901465008066491979932468295208687802484808056037364089528984797034116726212608771434484328312568965425019730282983932846801781734506834438076053727073100629974496051196822195286717416908796313232735561147641026815436747329472017168175272419652633430946995309439726874362088390577631090344338668585639077761829822255554982811111017304284199711422792016210853679690170851808352197875764384232111843429406736537730328055855109077436606126712338801954607902220854440370459964184128080301114869120642834585796024557287469500618760679678973855241387833399898328043216439892738633292867402805153917942151149107705058543714083296191750840152340722541319103755205922842710249218653244123433229225991013205074014882297707256161715246445773283455388382641270093491431336294272854415741529175494546981058002236509433773921201915260660488062306895895444274608657750037036974562150489323999333293275999251661019510428457297460455322400713270049826709838411328136640565658147790340990271396775561608487197750868904940262428488709091085216261535658108404267835495454889234181231500315160315461646413080699604071701225915862164904961774882183265860564196591382904458697120663240431884439010635871770504701851496815363899588001776636014264017341505632445003957109270638664163953783162793809751592912808729288406615366719140596904459520308883585327446092139922341820803926046470285078440054270834134776579285628804022962982679071371357471064050219711420340282547757481839773211845976581936727330292644299296480988591628774133527042676791227336363367639203495637027390657124926753435924771324547284085460501836911380252622153767727293881396584967623901610650580407217061125722934139784718215311499342797380632962753784416166509214828010407920134561881356021869731758091710032659648547278842674537470527193059154394412362133567788655668755305218280461833178576613291337227522611414449718177301953824770512731100887568768348357478945827803789854736970021646657753241620922675432415718750967955082647196562451342313791593565432122669262811279467818243029415303100203229397736796348831919662178459557954946511112855404471108799703922020584628961425547186937074067059508218787292676245173693389835499151594493333984965221053131056837483620837697634576634034413419183343162245626072066956790707985605009289091114524555770254044281110597038300072251363740483389186349346632221367477726200275589723558108076161157289992702136256215983937371682606971489974379753423954666797092192388172292786248479731040221232213577324263981685612813426532367463574402944529565283553942269276815878680963736707784817238574910214468852156849334718341447187024571061236690411367617406976353606614976807403363021496101416728730014290281214242509766332230603650214414239320470014183547041906511418701166590745521141369901260125020177551684763845435849612784027912277469259588561565708434408393364728006590354908417464817660920037131500712045074058655286124556345323131357301883994896296090321972850776936405047936495062156481119768389567579938203106957646662993136993072315384780369767156166170361886709177792149223644548997370530887862708608247928461240087074939714660384499276117970523825712915307527756944508110725162584735668989543253026248999626276277448290714560175228429816676471513291512825362973566406789865371589236427298555136922481589030269064824529073170670157263235329880117621946971398067045306944065617674421704171545426766059291163190621659728894252834095838121769800180255821773016448870941200619602488320014051534580532499787387909382585780428697178076005934649274272907639506387481925530298714503041244262493234060363312270307653439216218100639735387042449548341720242081831461479820345314430317369465077589272812184972594647917059931806204086412246189738026345175086844181264007488735133636435052243313374256813158281257205796655348379277004351272060641334029123994207677112663611519559346704786659901755678456104198418474359531712644999818115664743026325970674773252328618525263612194648577425148976839832305343994017064775006671860652977309421016694972601027040441597911981773862730160843410771947425347546141933558350398199702420923375251246451912754336428705880731644899710343040690868765795672933297228343861604563446821905228585817066506539589355900464407659555437878485567233242347119023741251646121076027858752329029421652382145483677385908671485062868285828908853016176622240649299120680455535624377517550379165806316216118903017267734759595048415368255111593434969534265581198165963239372904479656185474927332570449550857444103521455350031845654306892702819279315300253784069281675630318594365044729459653838041614863243202205127520259262950710759973648999973733545802818637690654289909257619748899933046522015992394038931267369904413072983557485931719904912604996828700796658169727989400629331104368233724221469829699918267667080463521557344141717409970836569290047224031594499691679305730400230748972602025381158066067847947932611404823725932147947788352634607833699482183231811338389744820396689779013144284414625788166949652564455365990910801481373026908418459542979714502688097952435801092549680396979521631973183493829313266786235872417273475519487831790726382745985505608688375613471721590320442169358858233368436477873443956345053523047967727423457513593190258776356265474489286610699447024806487529916463168830170721587520259681774623650198900825650316113815112309423468986717525079541730916971556997879353635744242280334033810165140763020398094348260708010008789993494971041555922158915961080250806970044537008499898913661161182347914140297996076723798615799667367733184851888783503528246450778358572378049442105615329468794362340329419372638169893884766756672562702969566348749060013731286405057040008229664022499573250059891236486002922202502498991602584449636953221403682801037412910322908932014145632716825280394115485131138139821533903440889803418394799037996666616956373621266569352547508723985460418300306988236740990308251840303782820124735780559770003614735867723944086766762811327468477378283399399569427756807855918359341123691915339593509112027120381764170663523868323687783359895184556432596689568260413621997223429191240643481241311264549132893634377944864286728015282542134020683711313511679411347115658041442050894379118702723671086407514865150848773023956065232890001232999872309480635035931623702811562882033022795193869800977055042327609417997008866716634194677217867350992426853213526881390820536771857212606432658945007595678584971580107265216668392495025765548079092215820187634095849576085510989046593003705043058346005391384748141549756042847236497034715442217202041269377065109266637076181990781492011577258315568992657810394558132831979520171454836160304000470904587452604890398211915426559001435450054378208867866946092085391433585253865126661492838572059641324873803144662364840268609474039850076273543129404028901016935334178045632944163152526661380246045082377545357489956943026967549762761007495574876556992577490572869370416332311734081582962956632419806389597227235987539831719571524022812808169795938626838466036056708468692109460750566278374370411110899830908388084107577648082985487856368074513162735410621560759479019668260912306752238652170407520537217265436879220429033936929315731734398393962596268607729171954117926146951547345660720622995511800115991033908696143945418269447319236228170194756705505416352954876036807807840089990328830398072244493208174902578502083039228728309352995570980172570698946410964909900092789990977640698031128512668706001218477423834802165670491211605443105094908478769448137551204062872892064960983052084935660219531576701758267675246665140791919189877047213800115176082024235787721602293981385047034905343821899913361586662472250308601816103680492851950218146694529885537609080108875899129352540703403242297098584636714455605883031136576967310529243508012852706602615391590527825207733581922026510112764268583047328600163326404137554573480418358364184856621070153752810000299460272067101385104236931086449839549249318236738095745767593916573309381618528224705838723795941489776121286186450116330030183836035721184282616652941223666745948598812687971463637802820471648762501563112458017977098005376070898163034049571906636025380855982485697222819985861722134144567096126040650157260566376458412744089507436228304725257826682864015791133746353694634698134353067864629212198806224197185842801006896821721940735515151162540576565300807678353049235076937338552062376898615492199312400556349538477932887451368671579168868802631810403131972684784446295230315485396969003671099861239161593335108714055217661631160484274751948242704454992556997255603173674229931414455419460217300733600984126859751395343797376017989664855983335289778429127280837658132967820312293430317298825528622667508568569658660491364110257772783801231780803495435131200057135484762564668788857636357992696801578504629821501798965150289396825020884641870800279775906267378223541961653771143075254979622168988439198196368492087098384915093091146188309583505864376066669012336813280613932506324843730976853125527962144163408716047178242491019621948598414544544643217988759652332978587176851503432413266846900267975690066224392748416638207835217055839958466464731530853500393409807947768997298998813730888150093531118148233473570838906158942223031381710119324337106193097519246409166671110361473020955507133717427484958068055415383194479752941013684110763772402443361579526780513161530613554241864319129264937666921366868976248905447093150371228522014696285900439020884794333031260308827125017327144195958566520195990544943308457645302179792657257165027087992634791655345096211384531612181272790952125213529322343424674486848971216431935370942667670933209035952368254425929853156806755306281701275536051741237561415318631595499794909694436159132308252678738077058646765563486010824028028735198399660270609939037470216063965084804935904229628545371725629508984751649663427453650513326622361178731714294943843890337349301313467186113665892127731847786585038340177951060739765860955176291892576304560469604293386162363053855702897823480943126669467129116107816962916328800484844182838485627910296647215521992909036933118807368830325253177847450567349340449319983727965424910818184308065616010039899114331690799748258438482242655233683562887457650992458832342006115756355809669708342120285484250671221771252878978637648445142886824425803964841286009331442727907547476176004010587158631206911615601822693358491493905696125515203412137063720813284028816804275200227262070544197554978111734344029219997498167397729819868014574685527626208843099805005581865185989719104205687588138575118182798451203017709312878853903288237270912210122292551306187559732100548380965179501244545642563182792095804626217325347100367682284799352889080770842028594802275665195953748402856777896906424044761988509446411371728478037680775649584244591075407820914129731337317478083148733306952138243007901267839278392113724682640776264818556832575415338964185513366738005003142377045806766602582075473889599021977761033704856530406746131545209174608611372561293028910119890255019906576233346124309689872122536740853758935192418702776621378696016771637270754975688408202225116179615954253376548346939470237059840615560694793242486135106163521506861772788771836949023809329432773223952993376103118015421931387873474317643128981410204497276149879198168871422805881496498906725135686548543281972576887520516166251456594094062962317344981352554646380660362315364023926020246402925665305793026332540153720996270648190781776786895513491455855848568160475918857729149082301724744917834986961871114997230857438375281387470042777324730493639357066674419200129899621927201671100133957114479437971189585167646461814357665767606888542066980225294877943358935794097759396924066043363319240349282048333057436158757176960037921213506374947215016978079173728579307247340097620960973703070074014953912336480927047968020927078336173448707139846695198350079976820295434496313388755658373844704249809395285447065399377347908847912938775171501460207900124818308517641559765928687521220004392268139298994988239758682097791818039581230072234364193237291316885156347295897051028865484747170495428371657017542209308507848319181084905182860564766545346086334726519754690023168095954484152917802975121227153235532820536156706377651767932258709307386161326187739179638243243456171856561265892775581115628733574753931423392591828008433192277756727543410285471756169623515692604512989169860352478987676296748613863925164744661296706310025404044196483412289471534053706846145770354713239802011772631669342599369054441915614350676044459412787827705304442215183714956821404514022650402351913780701627864773131386263267279709206169026178874812893853643033217166134732930017787790967584771971434985921617311489686291527411558885254438727097132830530740772019039745921313991996931477022870859289644378086909585270243034592536454785878543487750796476641908953875337875152576095284366211721251712025017070975008038233213292777052870697857970547628312831246951625107186806159312899830317572249558004338935924269264255420937312989149797354464618931124109375024758848657597004896352701148910599289088833632323894677636412142345053803442645716723194401717470283810415240150084813855681909704050545602277508566816628585038182079797109809936377167137113614531218546850115277906703858856494947970245820603824692521172378111445688716969160341822951660527887276799541879652273808206583363760120556047300205069734158139207177127845201517375875715793727930009990069975648462497834204017823966876739316331900437916015076571650731226597294084125276308277160074169805390361440515973540901283268249904303912967568299443617047671539991443164751982030165177134967150677908119474602991344476680061812909084462330867030668811610109102060651089161542836645471675519655453086559461429146534694361179542671173004925701451410264366123005496612927581381157408224571264047703201259406923323200073427341617500552017241600770790724444124286215461791639917155787086508708652477055790790116327257608926097850598629068245457009421383742761061027401493993869097744484742912530761199308142776761621125254455532464446930264758287009259791760233387810635089994248275722086032641311049711537018321335721500182335415835670183658763608405617792580418477703906108309614749495945878461477531295699317241666927998771508745848257186422651473417837904600797771077961704993738533800935257639858168649082714268014841966254943080289603453348939481016212471463599288025557800730850884352899324841765521525005883085589973556267152459630597815230250261267556566056519607281536432810449239715046481552410420318875164653379263314468123021492036493077519302928818058577170976661058570624442709364549752163336259938928421825889383754519696318626636815044090850784858100064972680374759226849594574487951380861807704245888141631388496608404303821986432804680918448593352763150194647052021493392619617735828320210133570956334726969383460988919210510619254389969935138867454656105575598756429359695074034145014280864911179034674677193450537753971501501690722034398864561863991625628014212384876597455800237814580752533269177648972767515660078801582805212224922520774254549562580926819795545379541748420613156220831514274772632379097638962436025340106264463025217343767865432985080849300300261263219434506886360992627485265952852374741411643471975338607903913181887756823797170346388523891549920144991492810655493978881580473397222034377387403677290727909396916325787465153918841687016426784550439316313223038848274924537875468183487748061950017091137060082222002875918856462835828438631024512630306792550330894999074884470850282624442702834172004360893538630636561635394220247050813464373466135332926330468349712946822689313818736403871258020770343632937654775113038494649200886656909865809651749676378241087496803029236596921793078193345579353824424543547320099598123379687822114155197547694448658044077950853344889534005082233866073666253395444867907726920424020207554621736218376453473174843817995440208993818518518295560219769824781039401386563574992836182577189666672653470195685959914358873961343208033471422423101171803292863187111997748605577227843600811249332278919263026790921551036720423574771219820016331899525256515780304202130580193127879847626976659394177225862477700379200462161209907661849854213532770042612114748966585223808347944899474219435437622038142605836065283929420720291709783019445762708144257531410486320411037736330490239568211209792080297545382784821463490448059381449134519519467114346549885701950846751485727655818601217315575324249929950079984877818211504693080655067640071534543322389215483647994770796383747678038098832185253129816980672137008881229356643282729817819212187191581180303904696880824315171595607870914394090464449104704544411530549953489945026432275632072709094919353331747191784911573258380685658123007072900880060579074301630688266004414495072262557816187187117047938994878107594158244235038516791347061503320068359532497877481371000843152953285583939600726346562879638633074485630041021313293934005179327709987101592849350363938451451299280317815632734190249064526509986001282708164237704823627529571651455463408937994626034467779050837668617771243322484906272371032194010666463749350542699344396498430503420090217628963553234462239424940623977389630753304619710663069494394108294832043646270165780358903245405949177280627653451761426276599641377344118537741212333498981730395376640633059640736554697442144269133105244936149069803966847202135818951585076344832749521815627308007958986148014940295824673070050950497314032073026700851846888893878549275517318639291518581963612502786276305103264397024582803748844295257834831120941520006283271817498366072371342738873971648981641457498572362037967552867171064173739272564350962624888083797497896538522562702832530465855282117227675738140986780391564272178161886529769142082164669140210465594573694465937188519521342170288496962355957219224045224736247659328273580213361221722662051465237401954354125720465772981246380703394805027089579559785281282640728152036471687320583091287288192163819508355368230540922008313253127442668853966815127164391705347153072095913880068770722858660575450484804273111997582102822966429883881180786685127783707212300058124304467863189503319463318894934187340985391614346161259577784514343461537082995430829254917832384172296398055892274636949097281190066574543323189811378805137627661144332117935767414339606712320503027725535915634142562093783175139505702519990414474612225014462181724919383735014699001903397633957127062719013057702789224654428312453798585422286776641269030641110288335326474137488889806113662015028335674286738644964854907668081282401910826030394608256017054985406651840304445986850809582588213674452585807912299002007851247242908852014471649575054184739618537619846755474612432126210770237968113790759384542256113981848302167473047320878727504243244819259470697617044716328888327216976967475787083916535083050359743144989104847591771986897790327438447922734726102785721010910054589635870607485817282371743717862047643056283390118699785350153909203893843873094746742045585958041716682368987453921279982024548141558204644384338998541909967377106754388290412193608983826835635240178571058712103846858539088244185421832561273919500835429375456656226522775521375634871465182666062867638116853001050937964806316916616902984914173381966482842379940465753893257833285474303037609533452836928774151966335791446680559593261778054213157183413184148298822579036926925304946035209638017977136999370280691539171024400539317413446589131453731409419853133070352387391391662704346046563993419426510191364814513806431271387758887774474390712112706066380538952099477388259873225399038007923289466664978878612496648297602219746650639559812868234155352798194491358233147708749518853148998315282504939231742318704097830054669545987166043625061596202789998147240108774294728477842894111754194543963516090002826882236634453905183907390079905253589155036436483520415360748710855230484906337730828251373070194222001145028704748868595001703032104032337023036206985283510935159641214895034448477871509482461457090330055819534150695245421481782976504168986846257735534390826228947780177432862968198495811117966159893872679615249866844923439785534677891770750613127572414359607199857528204153014705167496883825384262754815126012366561875217506564144900691335709833767346009483384928521537639275316270709179024785554079998226184751034641388139834062102091265655035907706874012467778309299139009315578938130214319378547364018407738281958435610141402260052221168223908561362306202606185834059957649846343311221494794291652991227656987999454086573937521813165326497969444161052844827747190491591169691191849258422913498967769227568498085220589414196453871479803405092937319151644171011754375879247306440081707305543710718272529291401691162659349836743739969894954070943265289877733010549812223880200228888856173084206230962595671340904332045774721968843933594744742645251444591075848596621298076210375747196687377672773554182255119605850890244406378429302415020129628003371764586105006117783707908705480049540750449064961805848877004059806810120907836067955605573167208514627974078313896214387432912509623930271709482486365298101982485419468612626318637858709660878424611638911450332544207857679590476868416743097725714636545583650098914519915449127904143076728363454908046192325559298641327369889747946776835359929353894735830804758309256507584307976387727568452354111456846221916487582562439277923217349050913922716908751979239060356433504728873760868395813301855975737399088618248795036551619986390953080205646477293217213519830159487998098530696121982949357154996923570871387226553592505139619051747882273665405186789457262961543221162560898930829558368179146452952982271963960631924241350162381315992810038642550192648766011218182298476544963602977465641842693423248759444146853241724980082665729584945965214971166010016164403707164022791182822126021446978101818527975944304585923982635975596242898066368100367966727537331430881107235974428014756834595960825585818739172515234632470953382748688340225763779483392868838674734680196495789611254503543769984968186197027509694414314731233406105713167741304179673903308730219209450896939745113750168755266983911439868151247052769905366835820031580315906530136390174514501944286879703672815406015965888130957741231945844139216403529363118505936614079918520252305309107589560152480784636063979667837270621024044290331152808279026490436671568290932221104305556366851806968301045257068870005399135337682402797587257894001357882394517614495688468428271539158507729463698217413761774096003321249731149644767310288328644753205163101007087926087010254986697122838302054180377467281269080623399124009530304787972661012213342074889231887581512528946159056907221862637485946579292836028867525989853977406754302106607176960050920003677876373159847839863395837667171195178180893861296275159711345307263885061752277874605045916449943158119025591803658263182039731859087146065514312313843515010848734184695028596679303352515880888457900746598647410065568203088904123812572336814188291635196899316532166592639778359636986853931758909072660226660888366621617164759884104561907312516515204978463474770987387645309552676620642890913140496388726398473659905723945774877716936500898323764477408861420055455630123200133425606498281815591172651282714391763158604306642771203239635189063294052666623139933788173470840193062559398778182355709147637489598150938954757908660665213795639794087643835741245849024186303069647359532787369128444646097749292341367565003622818608146152549215684445930912732331537652339219807727165266174931974589282141092062933532592799445693421209644832791867725084698643280247706976090511235394127141972809486100510815458874010296237636209992250763549517396207556751335293815688098672048475936094607141840702335214323023253919339069417229101834214619056410762723014283657754528196869807783755015495371213152731914063341490487048854453382624701795249663335120560316391516893010778633034792772637069986638590947982911248239553887345131598285325282915180980891564353666172217630828671959229605735061041128965978532949637212428370755967776857684617547529986324533109731952654740410260029882630535243260304947290842350634116993059632010028217810843873274158844573611877469027263109322194202477144880953044538315758453335415727773621323760958521635680701020014709753941090660504683999485571910876508756501034356799691915396716557159157070669271567484954455436774908298973009851438423466088643198208765950903190181171237727836744710742799352369632933450687409961701020496681473815895049061527281567888571901676847293953693252704868612779100980599630655314144774737134570735311242714357094099931211574229611162014379752432146218327234146015187032688115660591718272284345802707478274537598247997272778537839423937612469827144186870700460978370846496748803810486990512654262094746862985938541717368996863316479286414124378656191448006206975230908089011426079235878907099294639508075839298162101360207095492915678927800836920074451443433865848345233646116252113951207035558891755271008089073695726294452848046775630311767443424302281649173389224618611749236461618761091367210520291078137356078950565381828071063126499757895305464164209152277497696384202640275277359487579925426434580451942261095322719977061035168109483697183072534728335527008987343483419253897672525155400242466425698457307806395871974284077846552917020195098885744181663621959207459264602915505572333169423256960844899933242821002009131268947449506468631185561549504759159568361136603455107053102370111531639570941469419746233207366102004375816508399529587490203323465922569235593922851537912153310734674590533601873902682552599073729196093263729198012399572593112422496144805707983420807641252179313640448498095217893893490758750681439369538740408323718499912924607528472897809941587470481361860855615890609539860649069550923285323689074602076287818104728531117270810520164367207617160350447923993127002931662345443687345696210671829954158142715800780317857136043068713901478417316741263673981302214044884933192487764080059399921965694785470057162650067661575948345821932014889779123338169241349420505787445705807317509139567759224678615238813324165377922752953907813677784723713819420567263019900896764744518243918719254937466740666107203828463162775029141727738943243355936759397236565747166350814316818967048831802418179561563970026478132455213640173367823850326002066474209952615462427652316767050438018725589573655931480213442961263923242076233794737147856699264258312921198769459536008104670682972651614940598277840663295061187573142413838502068234757790311429594604904249292764542804617954901790526820440260635938893533293004334141896061686091529464530448089997386881285390678173390756578909920276112384401620053412734329640159533171650649214831890308554912022334535642716209346496539600733621838563021514329599027643174671261536765383058235492256981316182797517529914673718615787295506112346004353371540636813574612691189587300047370598562461128042168170557819757845388992557784567445466634272855980593130645712579291592931966561162262034459428087615140514748310345472714074442521957264269243907722148938531246701826143435687792622156215493540031023208003793605613184616244520848821415795679113137958714752387630070033638540424445419863219011529964146184881010530423772747094711704904979464547937937442335445780632833728245655408312836753742240487653193640187034515560185829490401961926489908127133047418131762390183290343909426974155049552456736534931649129160470114542719788921772450299332907628578084452408058184946266442463973602684483839664667970970875830981562883393275641342366774092472839063140781290344222895272398120529670265481472945586745898308551146580464385617365801778077051771957325297698595686968227926550478143130426431774884242952640517440711376704530650915651108624074772317345561430371200337174622988270228668113977468222916825297229852501284579201337697033851749497443023288769434698613980930817812181576166044476885938732486109286831045064380890700238125370593893371480254976114035795626391729963302013762815826179247166952948785110682307732355659898979589602422158180657797335617491518102935534529864657766233516256398834318047185976172742218858546100119448452361856863981691132530703831333133953196121896249470454984580803967405348338136634649564432418866898333666411377554925561620654313048190218970001482572827058978522878345048553776945886085080053795802746187257341472692803934318829959207029358589901294934427329566869606204914921462767258736498251734035179030179180046094062576355372415836734592430683557907220207409140150725856696016481202144486272614713456758759391255039416834710717298664730513933769365194712634190337066340088682290202500738669624083640703627276269351888375425729499702637757723719560903633629843656984407121792189435982214851505952954588919423713620787466339258317301796860115762149158915164782070724836717231497200473723592913122826226693449512397091431575850947221001406261492454776656927461840762590040294571511869051598606350676156791349269865793438480536172154798252702693843976983910142533872440534290891502595063051000052034104144247317965580852411926697494270543232388191174325056455311587598080390564960524588663396767231063652766078256959497924458370474995728074899936642987653117994654140744857745386128835593429409890635986495071261116973838300731993677473530407793640988819350194597338980512381752630718423609549050513130169908067163852941222133157752419775675845521197973562779812441939031443434607935133406983090479694042992632119246878950705887621631276572471100364697185784317775009839542186653403312526870370383876213313111821706038524551715696039356394904657973508305678112597658660393703766230566256602410986775587818714918377066153054020996354050984106808154546035772717030795130726537940848139562953065002486331378831481686915484656383834716969905714345132296834573423579781171617445200280197404164290902283948187647340835797563961898369319175945745296424101964447617725585069290372801463451836191810781127119777446075973906721375532205744913884196921304136824945474258940124784631221890060720837949277321601600158149589057034020132003875755343779986811288592871323780604443414498271141306377665459546697113363087328063973144676882837623671019970397029436220424841600814097843103997727870512411925066932929268152247921628527729827697645479640353265829078685436526540497859017744650251365300332358973803136694318569184278096115275731322745834978733453249715816758939158248192473430668891959647367046384984456208080831916508309058800831028763536138818189277317652912952573518295808578018155114789904650471737241630424241300002559403997219785177530415923828064595254403016351834957261900285438938530313545627547673687916199207475786080047659076314300962892664232275510007406171647237805726792900965882765965825288820520959687830823518146774196172702182332909893559907807109473848974144450716013157772435980573716789383056070579839960206072829969097963132836241367195067633216308559748380496618797133018586387076496197376354458506658229691435085608172279083208400332749591887942081514938999019387244966739826211186613430383453500728586798902854859462292522009609753895710263640483296203690086206142049277845509740434097407452606394490688107434578458556352861786245434535646464839759182443388372301854622528827400774294200569236319473916289879541216572133305694716619768003494324655006748960978487961085990927230650679734386196014735556530628346174290317816074501150985819892106997101763438503773960160538766863134423646354526299579098635186228859819812504139928265049653217562439625633585700909307522887162618356133283111613539121581499531884961855169214174836281459657120308633768353099463577774519832948135825486731205157237946653156824109787951003980201264476113599273738675797285779844251792355221222038849117287570267175349233640902408059702462817350586172056226240877411847517086482264530698264162718457229588242099891114113383327306352926205752860484408358247716254242801494588836837728125279951158699497154576489802410528600591515929467156634600764361053058181385595573973585261425445225269227295368267362451823789218075966400066601897903984942328946378508705823974110434308866431345456149849012797347758720239909244033488236808646508023554351607984666574771453609849028561244106638963089223989143315798205642421398640675035943435166322328705343194236347086538877795033438404508315706144624650671638407992749860670894957994938228109555081185258466472762013025793121761872797508371950863206717161374232010129875895365094776745186288815610155042778681197816146459472068456732700330827444731555737076165200770707725135731468796636850652018749433368241717729141708241697824547526581398812851395381671572002242190543110778711796541653786018657631445477026859906349324751039569556649573110095798595273389620092618299170534649976514697658638353149282087024017256730983723921345448039932781412502933271630084556725298926498412392033158079865803995793672388662496985669942295536328008695501728003287587997417797233678622931441434823546842919514848269383742287929495127405235055271611721946999494909029351286717564398860120256918966308801604013709290866024023164760437778393137594822688628945571175944585905627155007280454804632906142048969835068089459408478225224112992166560174265157691599601019149494002422324389779209272735433148143455670964716769874664020230789765350497695238439339662050573881693667596961072413203486166489731637915341083140343303605180262765959071726437086746626589437529494417162345579133141148670493080838390027375183778950531766433042551258357667487274170173573008706553534059915683180025344683296027801197304049068613930182311742060095954649453840085973460548719273590543199087835582764611273321028927387959352393370092017752187246731208317678340234623484190371340195866062204887447051449534416031795929059830152729272001753045881716311037007108548123172009283987832287534744647755471118529339024805598895536581473762252832536361991336741926395263781884539429698999880099591211599674437944518279060804609272563382215472129527699621504550301520039932034901774091597307932979960023839439938023969184001343318991174044077969237497790594441902532866490656828463122759964179982695046586491214246132796826779349587310173255520592732152465673841319609561157485416875119375618342251434457329953558973048399969870603304807645401286602986004372894128657161196636640047367484988941917558400338858067875419519829582582129079346352903755912267361443256101496542587911072189665903020726524514986241192607570096268303622052380247741564150772190767191366119786149398422259258482903306323446549058095695639061080194322725104352254817435698021836298855223724038726727142053924195927129147532911354258890302671079755383155487674112977115958626926021610581714060566225129010764850836887466819079167428398635328563693973693230481377815535243977562411086912295938056085885809024640385068265708288573014279238370537450809087713334143529436880161739732784163574615244116955752510953094701935585279836252878679298161204481094222951756001174432291934889105340003645074627974133607798869268623037792004071710807486925457788933189189310769611757943789232078083092809195494446875973848484580443037366674404051229256287590477353627585487083064254345688995087134244796931420517432024689028175923227869782468855519203188603738076243934329878265206456182905375365044703176412427297143621841142172089655578881435677083538473942916202268306388485870605207241389703576096632452670981544093776027223142226819912970140092425607767494605142151554993466167504322860532529248331382201535328305773168757915805764009645825071911108460260432019961047478921152035828196879602739192449319012712225454245728473646859956864897458706166911043209749170879381301505456837586694441694232068245448555619388024207384348827674672546513297177608476012958008575340153370155892854440837145665951833366548785913839747162017636047910575912614624802887419616136231024005021889799468542881739531566297452237585567113942359896474423525881067227873627756264587165530228237994009919268068261736430488389895276332371553165081522312726977517372386538094453961561756699679231085048246442915904384196426906758988437130446108911414516702172505139029105435595418574329256911267412390680545732568874251238042412471148262440442224462224096607314123259938449959110931144134698221174631837816692607252420211129640687292594687344043869131607459892607111714563961089434969704108658190790528990001659873980450489883766928725388279648930326994007176429798426439717840778287558766627592858638551248432445511959733740425702918135456416233285164233808345667810413887642086025527815716681398598803403620502023565156711171015211086042151104841218393702540371058020058494918959431279326790977164040097791563457081645224086395078468684919483011729963893142582985925279615558880349535152855280300332284422358720060866638142847791859023390096270089014521832836037646171014210070648352817327199173161462234907003062899206409842155473326963120996775639411959556453488517446120854909718381333895334523967953268217104698664251341601727985842544498066518103697164791678814209381567798879523849613726643965508254360476327394232712057343709713654004327492008052785849997951522474246293624487953788387653744794395507751666552294114824816020934648575938886542182770371116737169063346363481272044564245978996508568673961087583003761447740592088951055977874672192694822327857101510959703708896279368706188610848986461678686087384330013567276678858560925294971119012187907735272193067578841601981180336053590062671993955025578565464504423402599755544916143445923114052570614110955781726464390949173759407681489579191556182125012553467119836975152972122041860032328895637904758552736485224218786541756765979337096021102760603677219136698378632305056425886038960323496056829204689758907989626087895259780796699464045751677467003023964135142433316360913074938829640128652120183179101743192661670164088575618497594472936604793155597166695481634853188314521864765417012584783390997176701447855533430014279249877673746566726179164635456821790203890938374611819548473436951595633143820789943623547470888644306001513430716511067318007283937431721677800671329691897716142230804450785619840262796832225564922109247991798538327102055168628162801535538943194400324710573445359503161105455020143158177379241699738286508198695146231836660069079340427666647033976130278811215499818525740198911334389969723730840742533074834980655386866615859702843455924512571738917080904512820547088504462778467095461915829283299451696013348111858793427466157790114976824318113216269977006733254832677690649984852975354683806048551211479007643510424280441296606028287272296866406539715797289216968520605228725645679129906095873026949350048762921994957114983614444823095573706282763674070158550454158072646398703973259214820334745011256430183964651934088697694124470078309553125701435866330836203448908176663104455629862361244083911708376907390403320984643386881268885004238495393050996628272237262557746058313616979553553216524645315127394423691769509688457245174944078128163530043057494858289212789832724800427200624971234400752671900322401758445905363591009666576663766467996641472001016296972496168627918320764969439535698114138635687872253801089573046075029819731554972007858594707898781212263407703122111301989977549751372226224052225195094368439555105358602731880125373166757541988154978078241000307299731310334957854551046356039355283928968312873922850402353798070964873843923438454347101996084453005509562276957421508338673369587895833562834828319334170453144172366210704996807292693597355583749043244693613392439217712272415175188378461875121388807811282479151941702098803386452571218752729010168768711651611749244706496118176221291329456034779444035848682497361815803998962837820679984881800525732423986705553823835969475822481397725921910986302628301834545539185267244907861680525607987204565927678948176969655946919346837272941682394892372284608356190182320367688079945090001411812844690975455049631474550319160865779808346644532146008970061148023726020380625755457673487567794868391871293157217872121901393561250146320700629957979221791147941641828531671612887271859452919059091275286832868573148748187479725120417812445807801496565222401527799819492669356427080484882924699714045541179602650107748215594019243185360718076368078542528483661266245215948910457587560651199489517406039285377963395359190226710320279196349830123562753238066996142046961750094922111289662490378049944010573275222940731393414583201497763042265563243463155502030419901088950189836775645780450271589342456491922053852429630061786336371454551271271514202163166364133329486579272216212539796785959920323597887677951186099165296017736825743730431339425153309701308030549081382881592211290852137913656112260891306865009406296266938731750189355455583157003129839268450515099041540693332099438093956125749186690818510049702006624664916696684227803911965532345569076096654583879048168967398900157618987844334063274551695602630631581744108315902689259178391818234496441622650896795304269471772137512666761038408110106754113464033819234711422100724111591176572838324561413369263215445289097639347197152063502934835802397359987720674545204350998077834377721221311346095100527506797790050863328103390971436899065599890138934027440672719967333995862578196602319035781748580328146793899579129512616426939866437670135689850891474972804145148726040867741032537637995027539291261430880903786470661524094924126453829338256154401697343909455133749366254620870485759669729699349120450968235602904492601794123506778636815770190192253792267832668538648682606600800838228537520814741193650824354113895589615987713442159199645482666893027028541383713777423970268014903882656462436548224021513617312645509898429341889606720759322027099190349612500686832219344601592828986614039504758338127848339425430859141753329743018848084681406374989908144513161706032698157941160862332194334241569405606494881329661925968985541894597239314595704482552502761862931661025261669657093455781947931555755430913928284522431411501796834459215831036737879387131276607995410118634641746201760528606347639479748455019243685681551661581752771748739180084563806597162775910987070218688334366310849397633545580927639861545147266935144301616209699764348312739809048587754731142906396862329004009999582906500178142507376720031776380031815707603468884423290175488757974953486096501348733219268357194037517523311294134238229259586875683540793577570247993619146428233300630172515484639917991336755449356583628901041383877356819990950364967514637441890126078789891249225935938052286699022959895435467421099159755381558864422820192779614169748793725741231921638792353818666123922818288949132391052882897814549123086770625808143532384089551720845656516441922660162078176571417440082583012264236510237577339826517058355915590284444225627108002264523194339383787527431733785186448809962136241054688173634928435038883026720164706093465487496152699177074613017413485395471663553966977380739339997654222946834262872753255363122482191471047009095094972932422474122943569333645960182487642611553109933558514881145231250863452615199254679976915753064003231648232883046797830894931785813975139369305403142930388284523308061979456682264823942947782889073813766262389400551921839629844444895944772042759461956065583983668207752698109376540533023748512448922942951592877214126040658511000756678011882172941933452339556146672153002921310047184507734878775580205829653764134035898596949198003601694869035217755683505823498889902382781395048442255276916014340087463194880247096088922338322193153045938184941663588262070369899359887502935686066523529869072881358952482002640529666405676817954554823210388272501836395636703076181315459363384327062416111311364715324405024892151651507617788394379527128970553599398895315281250921387259927659611119416086393022170157609716129560265754909965515889963292645759735614413373572060810016992903656519849190042670632004472434051647330195231249638660952906680046924695063757658457963631756431461845834593835806520595579395801621625434726127834407817741082494616317312876826646546765513168374430599265398642623223012247550628457653963197363451436128505544609384298332850993980406420456751891414497924731565117467217685279403822405354361313343619867608311910526499932597926666734918174404335986846965029125612460182546500971370815385550170161002575621832054384554752777715613938596781326231441172879638258624234897846818545670936902984042347968935583592413860865974293249672493918586369242005635926798399478913023844561677671012985870729281076892586114879725280367149665922307886785832222302891970469077503882415645021713437097385962200564214235454473151405873416697290138352801236842037953755291226531278447429857118295184655730803522906820765380980707702341629172817323185591403779120554704744222718653097244104516465872815092550387699547519512785269027007052116242997034776718963576465851637206830759419148056710577404296841612313024896108120842689455717526676291232196114518295341652104648012516754235661640675705572765444177190753473417556205961549973125241924510892594266515470436325824169560858501305858790782350866310798005465694517081808701701402103008780643796814954714363720633641504374265274771500588143491141683647525918142513374697005755044857444587521654693406204479960502582123953621180906780993246756948172757095343697488077075985901456526783854824672596133910736783068809716932074487098730962407472212920701307379246665679058046483277175370629701772057544787735429321510667316714645650427072014324756264964042358224688832805859741505091184182253262680756502981660157750238869904240032051490631775970134112473211901795037262157364611108499867286515691948249352056745364194183125329473772484645084026180005573449337658018724319227766989947921616326519408881857571726077569010400162439451999325385903633804393545244271602029705732293953695486427014666141091998675267202942751563733304193037505474598199218020389686406424224606082176058637072605424980576936666051637674367500571074907561158505607091192903586868103403828358845004259204676599655528027952430954112169346582587318458570044586660471314734558630503453823115527280624729072764440478774364834940419876472956162045726118858703054216750230985287896762340234373791102848293634418358917302113705804217147151207167716991089627278632713570893549393982881988546895718477945142128154662608608600742022542405959936999819055009235074959582283644746401148569638326654489990476988325995734832535849074025856886687026927489761115421029344028592785306828474147618522390491272009690888103492729587877557764476122515291543941947548835616947130525066483611011946903462459158125229487806659709182848092439147216234402029299112836473435242388406557878197656721452743763345109562693319886828852193570555685229886846618898374459523129540943404902642419776448888842248698210152147871610135285114994933138163064849009948376602417866798810359387756467596095966192118689541214287221673478808840228091773793601441772291004484108606348392374799169305140835754825184787416432943670400129007473973439036693697245075858356772166347284546300205637571535078077834584960499160329673230096830856216454290654269904717969760713516567334772509798540309939851316556495246406193788492608305516782280042953346966511205650966108184518278239786926014724931842988038721877732617627587984563382086947931618161812740347157930186462178133209812861608274613798861134286622500148624872072749583052084557208210510024690528871633926795519457564088779600811002830762901330386388443099103341519248293934593076681912485503212344160255010023011861583185096258822111599004783666446350274705361172391319274106516907429774045372363539792035643190389601750440038155757317743752018952133941858131931099068445532892738907354579659026954857058399140495090114814007767559118847759229424070397482405259996442835866563369506322561250990339933691480157615063158748232579545932123458515457518735648874198498153176688536246680902683415652218777557993013050313950265041131082764101273508456712068461241606036196083126637766508487970773170467753782723517240004808171147263822182623257676483113261210742803693262113099039881218247506789229824254434052371652560031601311322806972844227286133963972868549905562071000412582054456177665370123431602963383842993585868407866729285609608028486318290929432480761257595870356298359983259896581805541147296860766382927291701381395536361794489657596760487899851520245750111246543008394217460961471840873027308903700335584312262989146334646459286023412015235617785969153762110462575720278980421131573844153712912704892530766549508997278625107945599851027996573594520942485405196993489499455950051607091449708820264041961716505545917989737346186477450853194096165112984399679887090683337921686604272858117509925451096443279841975318086958353071268065113286515370361621382019295695360158526559029075666669626766650691885068653585133646242099085876139950298417713319212209863353343360806957376265455075058205571317970064801551148005777574726665111416158959620994438591683619427283079039378721051683202745452402797994324689136072511975775083513705589204945889731315135899684156733345467325516338819270965531043533558870319172254079784784870227766534016090081592597466191983065013961378828969880454645756287445858135979378433862300624667600058148547817546520550073223140539335365913620461884496721863225130758816728644668434594614884798202378950389404382718395203064910490861888997754399627710251427984733963381586713776531246056331263702060221736026437042647139147443495914450411814936779343890890717766002163933494793048495118783095904191296041875312368041237707016580702571284706735634796349885505630518109279082900877352812258594240666150669858230087276527045744557320279409354622269850142948439985016929998701139688761851885580728906748806981135369399913362751550621259820537808740647954530867801748884372183659684215290233064266746705756484554525032259731548920774021685623393170853798459408387457215493548002926743754767547575857487299947264896926126505433938541849074915256992746619363162770352902310661675936560699636670262072377503475123852816817487916099436738642072928177706444760004088806420043369934582804784781824271889444671228806415919755404807811325226874044633328409771329249378810700242387218159285963359581749186053736016281175938976188229432446991498171505768617581752982244780871533409221115983145959327226804464492043745524349110024226673754056448259345382426031517855944383804838245482537084823002254499853922821223062500453785964446131217533670631216140096495441329996369713645992376876237834080173527575763469309245460748089897723664437868930984902909444401271794146281195107434090637533550788096790017953517104556729561892551492178861906270110967285482409783954267910195828115159211821000528085097605060886742137219330196482891031530940397323222755973960999951983953029861306770980985355078784339188944796099918756181573550648699045044137430903624951967260478983445334139092678412766212948965101168208470766748838460628584367073707356436130246689489739077584083243066547735952116400584103097334420046871597568306249896763672783183691592976029258439796409111072922270829241602558685764739169079846310686934088748963025539760544616730159017522018713917644922859804390051988259648785125344339032039203782320855668417001335401029812810435329509771427054857660241714538798185767138189547044109979170633139029571492057157739534990985042673193181970041756123727706148266588416715109436672940716199231625594764375744424657012362526179784525021402029499138557805535088860510140234637395383327222483649720022430092186067569695273356158118922657909418301773749509552040252518824587527377905933056622802175145263636742957554782596003886036975842217337571303869683726105034692384196926164710998655530262151782167739076288205034136667264083543144721844593724128110482066392957509149935797803644108641132463943974198146245668955862494010224156933825735574434014994778864669155328171789686935089933036057524429197506747246127672208183956592608708065666450530195600333707257910965963841510739600723025172825617147772819328878774264318110531969740054645132758767428207937247468769528836563226817512022664828618063669471489950628895816579731489851184641923160045091146971428551467441881583909241530757391595363047529219475381837395096302428578238346531386279849744932549826805404978099376442144508824962897639185649749002889298985017745160668066659082165932861236169436779084583984227302110066141077205255317527112287653775572966426661067714617415208414580460504265531541092401176033819530713535145550546209366210169235058231832219466684600852049841966736630894423896264268353010717632772587750363750545273275848516639587169113320864589367891339558157507665020549759098724587579563712511411592643337593339488630776263478460311030181085503094892141096614100236950208588232119971772015973242491098596080155916800662750329740542727618022898226098818411231538046399822754228406160921038514921771263005794738571991042725784803005535246392513537063261903530638274163728443223226452074172585619769658880361528180825091970985234445247019868952366939858590180299976107790221234060718490445259795794638604967241732937490399944157680624798921369759137816298111132876230437673493701007522907935274822995185903806300370512919666682727629645004631419720459801326963804959221918957994659327346131112982640840237587344671723191099255217821140872977392637200319217091016883868475587828855629746238870461637350063269523580933769377757569658126931357545466063477971445033616890215227926551950179287066330327080691582602920720215763687242772132608592085680802930882756946789704044744243251002812646458052471519491781198099640634056523428650476813252234231491385404915445809878237853195920932314086666261968210486416832421239589137746087086721184467964233068383967000340496824700755561361412470191605482220382270491557922150195372372496390321170207471665599727020702247034896224120696031375001509447436214440342336207567312788908690101065445869882102135346104076340772029157100269997724060409192907342862745968341675851027500790437199721746399499556736824883109457745607977791432294483944376494773219848861563347179337363717000398515367078193793070565046246016114471216925177885645249639721585561482660698651220832479946013788002291354418675609443341295428715504042351560869992124856843874687939061774371427259392957928179423351472531616689186580943877033115435737893320018791330775869004535505921229731413008922002061975641315689748530094936724055940655782227093592077807677456773789382935994845090677791669389243774093171502774535756286211741137023705227269399686303325707296589628497886796887451199123839851142945893787692934458152246679883283613297202257369501287084342018900389251607686728001428722158474727847186547607657422723929539117192385235208290180734490360320875741691012111913141539766470417966073165455049582664792115671752072633962750001763078016484645691271588385321669835006251471885878348902142230343833884619737714518067935589503800004277618602462603010153261681051288917818532038509246506462773055410269077915026463799985456656924023119329839275278908899306508806075029358092347890530027715059043488576356888318140164389944472393612239374135060147209819360528082594497548938461314496218893491771772067893928012918176257985121663306981744025821971607420315137671155149926615689820022033324956949634913444909393243298077005225864857898292117744009399098308853876258932750005111591000190145335507767237270146705706572361520133823738789345154275872287292334527644706265249082977219403919386408821722365426354166201656773038904442958865654300387844623562452988959957035262296432864206980219667621736290343746421028705688422226149382846060237206597629437609929297240595496053112429185178925960978081650077193677734154711944926947015428854488583094434296838652713265333504405664480817730097537669041587509343983830714433956340314859955011398227423289856085970672465596824474995880813596594237066598696277346173505218649333117123729247051248641272532016059311259210851951693340903285402668927586536814970312792080277205554202172775709203768893402520104247040130189922244050886240651680021670352579457422990795077170409799318986164346636797455379050616420251654572330749072690781234078826322018171335411181888025885109163641764293444374098703256628244836015825220073817252301410268472417834378292812217613615330490554601295703338738585280845488958456737407586693815917543506526047004107544697341382602963815815489925324155061702921850913811548890248565963465545371421263389434883399932045597079772455616367716124680182483648594174912396649746619417891473358728370183512439260589237717351539501800864344281541663125160089336130025501383354677757675540760446209593141456882821569082685546113493299030428693979009533149125649428056937961206938741910146895885402670573546675321021164528928603472541977287316706204958484464465944481037270160480170450882105842533022551658373114116461219506628449877939999776404940989233969472764782322479357483521449670483014481678811493673254704343062219854351485040354682866032785771577508080184140604321467716605582055143486369852536927617328515856820083675767152761583521620619004399325894611637432443732845306051298060057245940125835351929753474201474100983681168065273875707097523084437350142652403823103822745226874659225749977197062301507031254558406210679490933986756227098845273175891945498075778019879946308951760794128209294513166368039541874241934963152865397506896423227454528251823210156542867144738434440708287648605077951132589146501005603006485507897001530833459256379991379713092095274117234753211101379169658219896902043039591536828829106932488257880153009838947811912837771055246711541759273302872333887210639236760389826139456007534414546162247426969836091970306054970943311382602851844081310976772428007055131703008299957193237269938216633037630857740414491772684712823973869268392696786010682994992534936987970066283788291557788351860237005466318689866132829839624294726348478954081644581552071054703379190346303827945267829271851086911501853233891598800231509309680561686632537732863822306214813684601493291852833333761679993252128165596166189913511696613348812541432568021785500351127213618364731775764383003687010919159328499829984953145663952547352911368678830629283618968345086634189197567261118327556662469114669853332754133923359826807681349895088005936096538925345287150080610405187115683922718905108933789698622674060720584651903552359026125851504636615003731863961147700970067541017709676832565136469376460190032968139141758355544848778288420163205344167252612027622218118811052795520869202186262833272408773680293458222744423661038319115545329646369243952942629462620992836250150686798633149507901161298483481350646820406163322903132752417957206822386274839940019335958347607817710179256355992542788482354926263428691097915997854873807146068460353835233259618922037548506647343121464835372432485630669676329587621027643061882910347444691358436482610056124683943358482359354992677372815056687948585038303753563547091495222253855434480119404636079774125598444107338670637339607230490852249816636658401318574303197579127230845436576106684074479719291034879744979065352767767138143975203493767303420917332257872255144152422402966363349831901467983320449982428360268268666793856031927679192963950578118403675421649611523525920870629479685918303848808734690389408082237420375776895658382139230664518682501433368119758065213488247127070322589926195266756871792863635549788992104928959597406737303293384409843394768047620931035469578280344274200251005275321283652176720552344143190669290967776648367217200950641451983812798640665425674850680173302047600636617599315612431798253371658035082475889421601128324605340691596943206137758923245265545615122870131894212406713163881659869219062035842519216177883879840516659563248384804273223116500626896403703054574011141718725161049478216274598349879898357567612610917561865429215636105593641069528310645790811160985151871065795544384103000068914755358876264715847928752896518066464232988376402506111559486226185271852312050548577459397783533267032406788511804896068217337120105901356300213549454004935598041458775195920850338603906049651971041982481175797237788335505668949232906697203399329632608008438192928884783479870146497136655424460282936112318404723444217832660438023698435992018895945271919054082066548818030639383017407222620072432783484844830502491491131779105216047826746941201939092705295798592537823649735686132791761937266169973304060655095695284969411654284446818393932645598854939013963325064552830506596556516733958869953766574295344004880820872038694647143389223213939764129885658717236679995821279705786392722449440850719360090205893589324673967189550275805787690225436501752572537653910151433214719221897961400719531301752944821073928403934618973892859177005412322709030276754127362594507231798261029030513012644627403130647588239279918921699914886390810508760230805537765109502863635664505551818061568840655098936257065750725558577845816912113671839822943966279168835801213668161472880767867558756304189782099791434771710011778247773486258858480497098950653772845891793542812574579398003149710604102243761809971151091976179524286325719128544568080147571964843765130533767061365858799690373606335254191109263219757784070379118848708875652862773154978380778926820699282128479385312904427562701267369450308376203161750027368925469933055063020126659516609979222714879035163307183495057766972705244228696633992864760593273594636912920393825174800804029580747024602986409135037478829040607986669280528033285867113060482387231849760402132238074112653695076774499213966066028314241529267570567133358624370464402227922863432548092259296887059363611823550149465876472269604936629972699825184611241332653835585799731259587920754292437497047205452014908780299657171934605508755984367543647031499110908430440252093583739176488995449635156697070631084718186309653957790728756326734779945027696420028974023511432269430074492630743586923790781340420485837816224349748330280275145073853966236803274528873401730206528631327879824680172960444156743333109120207392343457015800219799891438237600888237345756252818267890806743961323079961097666179082599837459780011119135482730617230097513775264763846832441895050358118318810607092348868765092153556829735050389208092940000951717512807656756875644224393329029486996740908606783984380227599276421232426688603257436302876935175331270786084164775969549835537226320305133682767481892290433946173896652328455082415222444585389375045786136856602145385827515000662565078913463438337092567762883084506153922296549302139440065256891057843470587337515304095331075660918691595656637976221579478696778906959069235963404313235933729548978296435674344735288928059968421197737324448855304357270618992045897039981634757120205504303706348071665673699773417079238302107295443007083184040181967132293315287161531829263178839634672051213159706482357112776328483422050626108494162009906386784564577026538839686828761692985814428523051719205941974798063058949753551250603094472582523022234992256333512240102665627200148862996737030062174813083221432230044197751820038549299934699717101102624172804726904331280760998897298414153258686318234492606247493738646422084006868237403776839062571788322567431126145965718816645672533901473642372388625977260532347231752830965993254261479504792601670464823483880737786747881032264950686461165124558452469529587673474123049207646321747297779870039274309792674044219728056104412224379056992264869004186854800192917781720553702393223586841245904318816244653668280346165464832860023230328228728434577966684202745115717335640296422945538021017719618379833759655938913850965592133337891101264180018379720366313839223912837514321474275757043560538393772669400777533724850292872070794251915172231883780849864532624960892473912759751760805530241781115169601281691607132665378616830061624020736770334505975992364756001319970646896859462827430857696061126807103916138028519172591961874025072114411776748826009053750373435126611889052829842061592428137665158720221496494324821868035720887442316778575664779496311077854239958391743811246552823029085885976411190592633690036185528850816482201800284293935105899271828662940901777733905420426233291533260020580069592756013919319453222510246937991029124798608836124391277392481648330704062252819266063137602298175182717625290468730331365264525639186622444398527926159741233729292675559060360257295035600847846745155391901416413619251250204474796229625886337660510180322104919489984040946060159468855195468499839556006893882849901996144217318028452006562346420067358691532163204512133659733879766056262759995179850344784066232478680903515515896827913771033908446274452559616102911057758750771233443357000063354469628447922897905361041345500144126568657572560373156282416881638887422725202623106423591184553918935588373554154370838466443348477300377645420433709674117524683592492294439497844983402738324710091292870384115792432983452574660551482149508176538415763077293260039174765469634636676826831594036695038037178316635952091492405324925926105507380281614293431115546357637035245645879148449661862256437249588412576954267530287484761553298196246510869721635033327617940793314183284915666600153648229054466200289566535205495046362117011554770557343540416941163933188247355165692319366027823848496826646322673140497177830073923579292519674312598820127527722663002204839771934560021093594804663677432127625118539711484913987346226743907944819682327047999716610022946685071754517211196663840121741314392976072810149880731630779454204250545433678141028552898614191233405511981758465399785336061924757495826012304236203364903980157054607563184333778594279224795183662782629376042396434797434743835385499059513023074070205295126568601653406014524271396668687237782843647026779617671431205226252836800083238372129183883834177230984288808456698840741227397743210785596419911663764348438278197967935888875893255809407863686826267399332860244473084385995781105176239041971161444865717528331526299062291699908904187529259373916997855703370745425245766658919222201995112735374820362453151239949702943780470334605618565032134603258489539221257728221785713696906798830852142748651313971552975428083981543147550795029159174151877259264416584489230494773266902435559838211089951994559113765830702857443460333900515345873277811452731670109263025468285973228146459623825644800262084186134299651708135755296060611547947470521535421462640472947318147872042301024675505350712264917228618870259795173144248274688982476179393331083393174723391104359086655035597669693587693444788463665051853246934348129088096134331463485556663846371377751596913519771438602773088930962606447186341923799435579413490231077137488220529595672259711996592343793728651945543559300469024778282808239957253548534026282400210217109405682958276741403208279640910056045286464332698438406126589071001942297245367142450832429456390962670265656256744699233232080210203738887000856812336852874011423389001659248622762026342544536876059011124897478305304127706133494228263707839642889424758445733239521287254822053700373659456621529528525659841089019458185587560074278853167823962066389899938385858782634194273328326208091803948472893681261434030567364220672818210017499224808730597640394723956434213912395618716397890489021334839800560089889798489473249645337233989067475079503354966017906341771770906476493686088082124800641591769914828404144338371296356370036397841533534404822745067456739557140678077499276081233075725929725812409303384128009589123744541483438980714932470359635843093175649947140455440877267115979629172910317330770445420742045396826243589673112117430436384420334974643176252305849511876133731546517831090206761262332380864268259316903858236705556777290494605018260240193824349946448447889701943771482510848649044139464719012872619555576071465351213066494428607151060779283281494985583088999135425576057861357444980216468267058261159427067471029878426022185503610140683163494431232076500585195024516004809588912163909216998258365173898085895231741423997153737642617305676088573069528192804027093716273222250836146530899918529674259998287528131364384462639352207852386416047528688910136555351958044643120812502640576582984079166079421619479165411382699088770274112195366261134676841185867838796744432783656906894877825290228771928603045466433562667916360608706099310110552291560745855410925532147720967211941480002091497734103088585808413124364023541138732416663447806194366651505177948831404674003378494219307355312079472377551068243900169042575878243550049843106693295274165496688452161530939079081105796432671738410053572167049895086760897463340047373651929974866527258522078526832705228932859051863721286425073681035981148279784195556771725890385900212349760417542803204850224347068977114243710310613190782915978854239025641400370154316374638527750910841354145536375669841128822259483381790341731443616156926544338759727607453858051723983032794056240472608533243851039901812540998717745788539381353882837197445812325652368897465195612716896301761159644683477472604328521332377903479014694789106806391069452142098768296509581487286087798712446423885739308036065893336146090694318424961436292059390881115000535272136189054257051819927856492078293055621016797451338324167271072664560297094428858201654424827819955257800781366884147444084910307079600304968624598473195398701891610582740580553950914250095244484926248513627178571176537469872097917312434494712710160556714001230475472616603591387529135373761162965884807601978980326037796889011548650456816973790840970281902175659233171146314677780881744112610608608843754218943137768073705095262023624167038858742473869171107286197503906839802477861678692561439956770798588084307536151183974844642471268339770709919624998886190918298896167028844452095613478221245319073913894718255592539873022686988649113079537290185069117685954420956389947552085704890810903063463074075931986651717318488257996215795075347150123772414889298141497373065992830945507405071828726282644359171384064305613005678033669716052111858921449420268691340036466298323983367986965728933483580523315730549442129510924015134780658639065563586655087971398843764904706882537299936978228744254231998698684362180660864461029014795331184529909939148219304281555222014878343519063923006034336840138945788622905265220219817457441969495001735208724838439344948502950899534193264129836997626568489714601718317342506874049006993901919778396073004395969239158558605133851458328062103086533987674886935327064923452577412735903931362191884530644417143097029210121747664411048500738920858430438317477046825164472560177924508703517505359918531810012140779556051924255418533583683582556160142960051772601736954771407502270505824358783978524235394070132746729165713493624142077800721446526821687000494112205771158700185720598362643700986813500509119482232237226664028826782420075522237165051400846474972614789697989978459112180518841478954466291649619667908389437140560002858876814340693278478267320269512380749067923786626449235799433831726653496365855850222008409514347394058264652727418043540791189932856883457858291462641758838689462836893069464963899911692298749628453955032584534261295406868797517668873893023487651068928748978268803284515013757746559470111370549248511225193220083177372875310304461572860285791650631635770640178655882123953697905846535710694247830050995604978069166725836954486711282127916556847824312997835177247275621760812012953255366982990512660965311824205714707251292247208377967577391626761826216604001118723782819836992410287799632197648832359507859330596820905854797333194342897826156548491731253620094377885750936205417421996132154179412644786682315787220927170802143867426790841146944017332003116949764099852747773941275199486416525129132921811119724008039220300242917292947319226101896367845124402068445529950847439266274440892012897893532328460693502326601301511697877396500252241380542385778688486549010829086115760461910172551329649197150744636474530015614629620628730618094730291266762862045224172752351011854163780428242996437920484038710784119699332311503926703073398109634666357579387601057231163456847887515559239400668717011391921309165411517021711022837147199074916315346145505256564747722929841478800702107614990551439884805418675313646449573653045437150788680010674555231876628034683707279932850560951824882325097257717511582100842483238543301732172765584418153087092709648596528694837558402534267264173992305167218597933736860086329413195627343867602798826387642086242990568590182604693775383725704376431752235147681909647839082015118195917138017451034606668108175199683001812781976825383381077444069971272847584476099093983836789911499545844991357901352832486652918064944506409032699789027481837313803187257396119864945369068129722006530499020966816720930556503257644917226882797777984060461160096889445286813050941347215616965465372020340382350289451757150641705300969417536599087472529574206445862951035320430954465690942669673250229174142170065056087170238951081253674289981562931474690826435570340812422790758617933104219521208732785423793679258723928663612145370529990267032558263852880898709174327127615738000900664945027561002083971884337614219396005805972715946621007403424715742077275407616816460760664963875880702150038354222620080827792191303871746036941508621013910948751650383344507419445055856020528097853562311719850610792580894020201597219396169809348394037934160375907174573053716858105774851239865436566028546568753236301593987723377049319178637103706589382415957973293718511247814600605266276646759382847738362708244668329953274223866984901522896617757911202677189933209623628489119591536128836600396451175625152115350408941256340791546595066075308646599735508248607711705379661317788054987606627529540580614522503017370343349529245873772382278917942278706312986100594005268102214115456174948681812737114290100672276904355585676551379105130516985169186216131790203564872678741732062501339183867758612535075978213513811320966987368351065563371405340002039237502232288725943657920628379814805840069092443416020123463000113085913246799241647391669459589634901340650487527673997836288520370313976578780476550983888923886234388659850930094214798335157873726441605977888164455834494464476691507938725669724344199320300143828045233172994031636131319097121930867302477503007255011749574510659279848097281130265399567572729137506269401614514149721429206227789469340533410510437703364356617128274140034172657246917172748851474106493027084608837397056361806120777833861864824458642890832041916560743541653290826673486493091556658833554844827048128418396321229409788062009637105892260323748119486127859392112811777759870941243549240255040506755186198835024126777034597536311970149742104168402190570192503237989258086123899322792705829462239068582000948765690716170389661881267185715458010981625769998661053907978137308727061997372589493801094459218783180007042956326055261317513615144551560434038184444755682530115695054393150203000756381650795667815001013372688422608738374029890971165900969821727452120924782929355345109946891797919331752091638172620850269869554997679522964716585828625834979035856664021030363604441311329423554078692092027436116453191181330037301697106490773179388362106931339494005602713199651219446587355681176381829101429384358101184643668878056344517081663480509742727775248703115502733665262395112205459080709415274117962985512907454912213914507356976659287826945459082795222402915103102525045094600848869437694860236086394762109209531030615877929145330627244559320826226552931086399811378137087854988262507264163424116462037939248476972350119086922960252459252963603661288799412562506490125284052168146910929694127578477096738062242150172981878758307535331037949887778924738698672969155221048380476727309658836319954679431561953986751951996781056404302840886543839855595251216475956481553383185528505392404350781038008396627335479810342780057691448684866499553821302141696642652846733513118913376494432145378450743643888241833637769776159398807232790488330727143561756031115339842574060733558505966827470004704455875651084307487344216475017997256143089970246920931733523847673189191741440656874189880966074696273318194983929343871047008750208751597555655625011274676422315210916387010991937977993930887384990563069185946879480141889560438194049499240058829175917227649901640640473545864492470626305527428920501945960786337230070529196877225313015069446946305723833612056503506312258411408228220696709304157654581411018922670707233975959953187108855170808960532481330091332522923070274384232798547478740884357942446989924570518971188079053861714872546151794652386335591465092103374995536239535307789958347310793089868296738413653880968435714157622146097490561560196130769657613851404219110301784374629230880016215026114454356230322491128437439880439541924466256611022547542849352377141805664176743839115603732954605311915388654072708743553383380576407460300510762764137105649383097797334385189780116534983891600070260398838264999335685333817156527182550584052018280092949752032058684613339919900847516664223449256418597940435552948479558846456982823048227180365925211504212345177111217731267300256783508877128629919719924910448441361210397628819316995284402920442625609556546896630225562692810216319413512318383416090282669595403554444661173317669566147099889109968279381394971288359952243896407772342739145752398544043284133298734240837200231927331188622399753293384056998745044977179695286688913719260898036124401751918700999463137354599955869055007067239006532887962469881469575394470078659722559575284518674803604283459040241107399900199027504630196159815418381213002780853650168892781196503442538688310743095406044906753439944735761683196572766911713208263516279098861598084558570775323425207579720609352391399993584893144856947871042876047432323353081255873434803316126329744614743375499829395505908920218314185566910281572559001788291906606628493168439988743053838334161799214130023264632848484436995691059363077428281554697494648723407840092769721033699444536791431125365008057452929394399024939291466262936174214634921789677583668546692173059857638414636725136091592446019536038864323744041334298586626194774967151858491491093818003935535214519801586870169375050621123658878547188642453917055146728431660440289232914842430746717276147018791976522513680949048359845706343287265525686083815231637322877976762753532414844051195606718934245055074774901483171896582347308809044687301546407178468141498069453024161625769039016835545447879473915437740204096968190334570106039226234445410618588240630206791802314673276137946275684073693312999742565309643863255150339065968152719901609208860670276125726987206073174682416453466101877968465131556938961434835500513085987158698878863915582846136899965300178725741218683468902579654111896508561418984338439053870286606454692195871078318839588084539719893297340560874710613332545676017850954422670727551803755923227727846183904871212200792527964921812137089915599124391434472434356198866226282900340516131521924301140404818006488238455848038264629577364168456233730014231824741539861218945906996316006142416959537505376482426483315037405545965992093873695090961632357547293490182776888299472127445473945685665731398011345820823344616357965853899229339003425788343959482708470452867676060121564887135724672337460095678455495834701349124327835952646435285521070712582961246035941137690172145536337930361938221622581433402309133958547605645957629861934934030178504623910054236523954845714987046665520146192681213254394852276023835444420592481332839075667039589449213816974378783541256812537319847754631035660646476996800004103063613875789726209438308534326535837470093986249663431244969261943914341811203013967631480956702682271094546812565514375005769164622777298991751094144849280597812528698688614121958153102844197422381943994464588333184093315270160386073590072384578921481752663714532023080700467509096163508595198163142555189537330316331943173616414669258879118677287267519537594125473000057038621745836624268944497182823168495465685639849381759934257468067755992190105226620603101556516435909898033409474452920779160853458122400524420230028799075568779527277093745400671361979831928291068916972913800918948032879861510856573433003009380780382702814614025469975818878972923620065119941962199654774228227451858482230143383637471941125944388198744245743857376831069141301362326092984977165466445780599700471579381449762984940301135979266924306450577774936150493782147548361937696378948623758114000148173195445550533182320691401800793113470633190163995860860612839951730446364053662276463657952581378875511592502489974743072886698326658059164700618365206042333111484937901982549509242534343170445041945851422926285759087596546740558253540481598135885289941525515427351098906635446371687494552418947399562735159743250710136212454115853731929990456403399773183428354939518755550065521243637340431467489336733976700512140970988515351529852140460510236559337031872253459309785140528559719310676436270259836840894151212748481641123823527460752371691226694190140529476172258596793352909145840602436311537777921426133488511887412462022047156975817261242339773568850427128081448146137893579698814347911434822215901191215700175225966202928905814696271742933777344704333528069784160594393344686827476087838778784544579692142073246479047153388407415385378091635974936920614097975107945437703837771767722576331263665070694853515380525948686656335522997324311089398972838105707797202909004821169847439398664602562339297038166178748354045871145645018005050188978403632811682374225545007396636250167452342711543442630360243252603435157487342274761259159197414759923364374225320360374025048209884522021268883704591910328667174806868317159915085283898175798412146192873608554010540726901582334158690547833369204701139191620582996381616841319106928251849128888720041334950205459203549773039118554754580032271915086702299562272546873922233359996012581231056473011612059002636731955573763655025764352916112591749013908685839611243694951563924725811785042107719790826194484677352293786634983950074429542918566725272189525487651412555489222378411347865036950739262955233139683477257116094211789357200608306610531115025443810413149529123763691298115621251744124443229824455742919528608605081603382650266854839847179575237329908977352921544557477647817473391574383188207801276026660356576905273970852476049877984230132932767278581663911448715843362065246727764903359787653347680778660005976466680647966139986265141193481744554247570889548107426204670334492640080517957141894156572252671915393446733310512974045745629635787197120272998749913080413032375788783982898572729236106862524127727275839167046272180743729159686884648469415813807836981838306713491030898458827459816246107598888515685100885678229577783572501389294229368049603365689046222505190068435782919736319588913958864899391375633017241984059479735441320757575879984191435852731029048140511350689725071414280710503569265295810872221794604473221682593009117691680610910544246372956108029582967346085537653007672707575756659338651072549648749130741950687800020751000318143317078319842497657138301131168224222094997846507767886612545713655080402798924111318909199278545867269974419627422490182788687589428517760157771577528271653407910139388144298109160589508982293649422496228257064023855661450387442695503639003529068879005983056360252151979646832066830578807286622032819613342496282278388432078659567602508198988753975021301499101589108583194027388264194077584687513818990179925961805166221538595419142749311286002335064440208775130342221033192668243054966447281630488684450953017312767005967614493351629047323684205914258107907441562285928275873525002713053431092600100234997278146904996563044825748685690589778733466768366656877115778503578004514672806977407479946794269948127548814811900861598734430986105391492976181400908400117665027257781756141053807128520787633119957425863316441351504391670223096853977952025012419129014515598931633679266833839893070474500429636711849351494113119963511828975634330496324175484235722121491849531006118410505531242931425384957526570073356862016617924940462021676216487405479927316705521034796929490002710734246078433041315820894705994315490962676137889538166895707871802851134300481005269049376216694760195198792296708170906755303175279882647783362821025424633849892420520267192583425593036014861920734547052734609994479354241034402618187860846505219188649472302295887494566652329760801011884101134045174343840899537346988448430970300948546335074385049314613210261048071032567357436768648815682301781705497421424396674933229801590082229254406137184803864282704019461825595841696312609476542415082718760996107600167158065916610031483134083178075713803726308254405077423251635948759557620623041197896240820569431849733208931979556437464847714461711537126572213567940240792276293903679911946963348085777827777252612439850116507969672446079093297664623630927718074494537700344311086553345001853032089671287707336941998343663199509541602141806103636625035390161652295707356751021044471251917627262880704183515387515996168699356451891118584139846238993032110726907420965430027450558617285482906100838799903886656974856279736218647851445475887603841718889513771155034245721619710630611340620836534358585098695742058473879706951048802683361369264844789630968176217200115803706828047206733202008898096221907001812486192598770522105547802572298710425012238621649847521782846724169740169357794901477428959321292211521719422045263985086847709747066822409862961243697989875181816364227246270060642228593643241316287002893687028601951834804734250346829502789109911941305224209139108925576113255545892195629915492460135139561157463078223192518828142396941205186100951785710328208971445615690070831152311532418666643684720127911160068615843838962574472607014820758765267500313105959182605184541200353637717018316065906158631448385456108366560280339935162918861042407028309331718946513703402681305377456346478650738193102368847026874405761104266184396430531537404012939222782903095548604469816877475029677474525966304370792906373224678793845908624803318339873265717139579580391154347462841802640810452031204135470581626759544064216672301431821334308609138223001328286613413570995830925366536582392534992550555257850482595838525683809534190799667112666662705457166031463230405344172742181870932362134970625439919136432804654537613021848861923603655708336544615954793700456387655686392578642306642897867883212323909695042226924798641014237395282001917212995671553852563586619304161627725558145713629922006645088772984283121351762247882806340832280126275437748023227986368520128345330367624360654031716938528477042380410292737222927682512608714245772177049447434946487320856887227067534118068886265635072128466277403261814620847787908412122191905185295291585735217169565939804021290709787099029063455915853258265850728771971250148878598819425860743050710028975936655251981940832796630549051812729310414931598893214628391552233552089988333036484535622155909900270880318786710803286414915931384661464774818161170422882937467576453949599744804974957420926157006125636430976232417003190733169435604758680064980890658208720877601693520825155947275973987584119320976351243337225951562944433621991605247254048192282685200045515782962209490800167291407784554028566894100908345293877146173914601681044174581929879982320519550182881550624705132326201963337450644452026370648037934076892401947083756127754430623171367138098153696093435984271338072054372055901122756026081196181547461722296589397093677665862335667159776572436499362302512585174946829193859436343078675595975773813924374205191189474644335718074666001076916774193883348645118314055947441210753038941982976261702261022504325232456452460782589119588047438048475419026346299933873707199941237987015654206292133326202194999704540258761231577433421073829185577371822120926552447680535122836772372598359903131783040986022065693103591033681928843627158016406021591329190845353435328303050630523428453175537269667963828959615022719046900416862365728006827924229409940096473396203710271135023353760503195121800913404585673658643117659883223203061692375052709410955416192804767058324744914361414807499879213362713810649170430624403174607187437509158971156187813198812083149562563411369014855323848277405432987910674004003504193719522242158297500530793206794637489015789789006222842809675645936886413861088231265912004045460635601872905647356168735437593127340794962672297470059629050753099353647569801239673149904597076411806637461490389688590420646038026614484969457649324531758823131989665949851648313347008034786887847672264640809119564394118142787696326773791768950618156439750939905478708879469044692995509772408008233303874543885199946850341134150377827368004841616124071762074665197849272276333180845936188289175557163910571660826556182176468894018163299070186146418733532360623327053276182119882692344414981302624127557448891034372080070092348230870053088474082888175400824532587792067301362025217958459756532400027274419845476798352725896460031230400452747574145108618990830415521862635621627188581685380790603748006678733165550304004481438716879977779638988070463013337244878861919954119145307962420263198406938405686935939835412715123432967681590718576552376623307596828957225118004375435126713061108929604954873315231328899540079529200362151797104168784029554457728070653175444577352531342272139510718934674535235870079221426033937085030655613508921984797046935763748951651024838691938867096553139072637676757215149363508943074841104773557874012672676520060748984959081379550871472114973285191002430024841273133424528935074227658343747970509310952345670575025071584971460218817818348919591797223980814899239602548969571721602307257443822893679065128470789455675883968522993651766762961820897853917926571472589326071243061142398883439889097749273129805488738409086369570297622656026245706777195974583315240787335934260438654164796579146866802218109267778250991996735501425731603316973412876055271430876777455678969678876992513920505682912786453786999411508504761660325593112620711144922911827501912463314006795719604254717389417910739877366996174950924285083920826576240776433143803532911989350050434392954068414741237958583730789244549401475066356122541477672800040395440658473302442599579804678261198469731546005009384548835284228842760216836432977943661745643203849901280403568684637701409686873000540855767721401912067494304620188687523319931537365332725750028717723265666969014004894081421914944886058801958560073824984072882859922081148273341441025645650433405219557232540656889414805940639539590556661337974380979037154644102512350328087612291710552644721919819356955476107707444340189214093200159512096814726329761071811968854140964405522757935218174533345856097180322732520562464993041403567304214325249373041625339688844211462564608268134354218577201449107355759059609188716590420098706794262918077300735794726662456411064213784461200980436628896282317458286538005860695071252112445381171960336851616593462984860700289329350594668206379336248977500336056273963765302187935864294568626814617892810335672075290782593076317724902176963860508131036620363674679849545820833535589434295718689392872659957726139747517818144560561953889665383326812539778396544592500093414493473902735405595201776813911166559461898589094645631492656779485338697055847566811307971895483715515475060921907087677285597375342186925347250209366549526080017952060844237987934101518459945544344517677396191512714448457428563025319546217882514666148886722470962226501848873852415002845510688048342867547042745694225737034740957780890774285447938467108737829305034827576623172057239809793401489063353846048617870684846465064849992121338396406971067120594006455997413182170806327361749283455746392953948843038637748607588796687876427139495480206027159241345644568124100406671741342687394129579845378629773852492320910950079239146772936228057204534848957947283270351681271398687324137840954646323892512861313277913881389241921285571055912168548565282630700793076706522556086516747956959346081255815463192147854937891265327874465696340742422694322756603018419562294706348388135416055417204421250400408095364146192919774960200359876118559426470450003289375563414422503170722792913076407003401225907318705743012162566743676688282696005229620062699412880808011085164010144206577446614970070620023354149941936054986073165802683071455698148783481615432244086625399031566140853359071610080835376077337933118322426185971864896947798261700229955649223653632669494136243562718503906419178664829255196960066703010536762271001462922045095841198092649406485721353596135973814047880789996223217371823748074484719446329933913013332826452384336361145284400334608811111898440816266080841946853722573460550579867030474443897216512627708716085338511483175454290079292789158285122212484446750726627803742886625413410680915667501150294110086215860377670808266101284873344205856312220869458426153284604973266299949667806866289669782252703140468931627082202235125336678631126827701538969759278672619765915562082087441233619796855218793215991489123265054872662276193565898160881663372209909772572768771247941545224383422330341649029647490101000405654855647046847247409307558835218966113135920722580468387450548502955596280128666440295808143570117557477925639590414406986962518082547500437301439574405688850083054020256733172769620644506463155153914896002415420618093911993704690542768255369003684054867722476315134895208954509590527913554930684280321067815409594404456340382300437720900725593069297334204152552995497393296469368843874184035862325897743602155353874490675775394367051698493690680760667796501494100608169001392382115320647446828854665466704921484429759089900498236568259734461381010497671128962098987699935354940318536991103415075214430027336428589721298390868515385169704194946869827152806503110241084863622863655814965356170542011449594073296793005164187208187546842301879971804601472117375318768963524957755138730551635014533732384981473115817873912278321299952404784519058636014968709117788945415185393754301483178916872277349605985298296061988024729520718466175674452567465614933313869453605656749607934425423389668215793456304203521863574255270276711526098948962114923918581899619766396488408870937077687519131754962961727521904799993737116490116079229527926604586835309361115009650042088630911173108913397627316742804185671612818833373959388581280189057716074018573563413404383004095887680848300936351383193520432752330785586153640516500401324458477179812354208156714272939129261198665058131390889496436345143168144513267117911771739370332489467141617444671595879529307536652862473595540079568778624443610504605116514842196447325998695384134439072492690389687850880120387733124091019829643285342060394958608985133181743008278638935205663647843966861110308944368505122943198456530784796649040978192263150581601909880383544953367985155825369284508138250128670548941596300467289533463321925274111378092297852614757934295303167565245987571332616444436854342568403373098087714470903130597215301075437562912566225962958547412811717645345156936433988598437870687325682618213737274650917728158736390764515413663062705297802226814193489038485717997633224704326348118504561934040440676475146505135645740039150597473153572105613020506768168605686626014265915206682282651840514973790650666425651112013038110243772997360001284334196696585982183414866477254129463623724378145398504801936739637570655053200751024215600995354027872273777087086960950524823541226020690129667055825108081133875282835094753797391970791783565116336572404788520891390834253103319002018431181007953519996455345772842371637062455086144381533610260181540148095443442400388495224962645589809246180126262270705377863783688094751016991020081521103665816386055601389515248810881273027785274185551296464567317532415529988098831421460718102033854590421042871203371934835528654596097231287245829492634295612170154916673512577933138656626924059755197934032881543794647000361075890695499678991231602975356076042409122545486277273012173028947051414821956067710443788009591360872673788683879114998564398403924898689881580391513151110039816263657505525170258285426561151999552412434438950713194269408047865512552303868927537219596440899761224816612518392853985973794901140372572227896791456943182796329732172143665053980697998938831810243549720159879407603039684509548767164550446773962347318892508207109402769070463304406886431311635092672177136352627283601691004957327260480130486545379803184793321748630937308138410256130516768398818752148294708930099115603419779687970399519955627670143592554065513384372136257977113672271599372366602818014346071580868919578783745894584159097818961645245645078839328888699102819164451513383023005797846976252890930323445359622495923524586089111041795612627064406445304855001582904753260664814563537905240611203372207022367756090184824537663430933082370742373356779180004121087383051423072781149105370181432293756577070048528808129033136784627177574820900679351742896498226001781643520620059967419464704837025044714125056824752222959426357098193218635275501591315146431622037696361659476631466748474188130657735055205095688147155443041530003505869271398806667652572703401097623206210080147396919806270555869909964388425366688853612147943824784709244131784904202775286970760165456645970490255995229307903695042920510612398951781538368438699012750952553647222459978007508681978053830748600966164025331958587432515451488196384913676063472550635364375115846643433012879772356592096898441128643431073307218373250765903878937781856211350802723521632097344611308539116803671567220895097017355698837986793982422776680101616889791511549532468693690736209423998970059481995626406555637878034437778335068480193292159777889945017143827470023213940127218426383596275460246207529501723833308070692675016070505291395493041837542009793834225685668421234548444196409079298178145715355872134342493542585868615170501849641872424227905952057051889523175125840968007901835420996747660088494096692442954625503359070953537764135075739160171661602335461407302536871305288626417417310536616411105410802870299584325469232822246860399607808807417170689929850007520276025502898142996810094364821789834514478795442026726010299828559376551592769351912160931608434412094789091463355147253377756796983413824190343546007296316187359640775727767252261789536414722850500113271504324785905127814077346195156175176618949082123287506735890988464409569909716835666951994490449578290168193842012837846100061112881530171235249305478565362241337100194420567750091141322257577565723912122617256534271650539825099506347490008458599157866702363271636421670598017356299196833177084697929193593576112071659761186808705492106825932616815235593032964687851484295839376623982982644658706600856799066128753709278278940258194012336907100864624530717922794649083543507542349593668763890744123461822512645361056243743716315718258515066289017709522306336913038759890820739506255713521183772874530872645366577412841622931984691411420661738372612931595721394522913836234986141896309354015639213764240109448924921064430362764226611206093632906969512293418505551034914789675065138152365428362700556206003466288103500582114505863457751615173255764673923071746034864381068958635071774992145847332237734146977440547699232562271882924684994860325930545193718571624226320430271070314683663366522746155174198058293537829683838589598448515276988660782285923487557653221965766556690791010093129893179716888621705477781089346236478509938706686937465042227756404534327861142213735770368624891419271597749790949299860631216779437026212461389340843777509210003679639248199544240496113208500759727358041564919288858369488334041836057087798801323309969045802091871525804234560540749717243182498797694669245533358177315125132343099014742546822280746408461560656596460932752358195598297028730726922766909038733585062391966218560038170669380010793552876649630536923121641072425817805785927625157081842897337478060082751092862700389394568373707832038136672340823545304944141277615630620966818371115189920839062508097526222297410631320772826603797092765789977655190153204262839656465252557491915482384109505445042596059739736072669648776282295244258299724195179352649450865796584008762204519577245974552183945694296316507522225828852313032104978313822624867073138936516587943866329549980038855419221826043260326134661130615323707273768856162010116208670376758464751533274226860652327221187354069009881187698055048659009091459597979571399607189653205191592395865427056771350489523520185209493656952355682639659935068761822932966138640922850753419984888538072091859077655022614539373048357787175011350743148426934829704409585890796728207015895595897612770915870403925209796891844971204450145361103486240666677752229244278699727575945590670076895907923737311176006997679274173321179386442796515354323835112171939865781974383160029641019631849174216354372901567475253271515682243134794110672340363648557902830131943457384416316470795673299757388860517971870976542057197028238561158499054866398450548043718247569479030197508735729097517948919923503102633113494874989893353603207309085703191927718004257861167923672156402007487327061880489720173052737079361458846105245118800476388403365320051679176162768672074997355178900379360022439066895866223105945851183845698316277782547248890829889321959794370711824743104065073249011659493739267280661568557939231524463030738702198186535833608526509741642684847199312799556276420097380475958955297520724352972714944477099564919896734193088615695966373820307553658752983380528383202019519451534134897468570671909896297357683020421330862745362990941002995738600506898919171941596611767312914344714276289547386211959937946165785390697605302873749026124526739126638752188536375207677144547008423532764519579239630776066177255216953826521263676407980333580829094075987280624257695540771119372940104316523773025306385830734239581004129509737991850708096380369315961906636545874865717898879020715757828274558719019528316840239006791618697979699069329091071436756199813390534401547447921391051109792550659295822093566262424589876425361651210707548860847684053960632347063757371046591823724376115953637763069887977622783100336389649408738104605624018818466208830913446225557780187741590007958522891477373473656695127099349643657137204074973376870957443231470234136771902339308840665162111449167368468905660669361977260950468841817908482191359049839102932550404436547023155269499443777555670631963887728802950791033994923637926738315867404262706895932929805556905055265921008792091519347855705242346821180733548092075544773099044193511892802452270128324339241568869825862234531954171141997776935949037699810500009040071424359798231281536674051328270070742805478943931353338738552031395524320845167829367829443005518377027998547454641991631743911455079747023971378187146611351649696284976170838008538077438536872561981878448935066800547979891485677848388827470255437140808621374122600285862125335730322257715098671308863387270910055707095213676474368405385397379958575097129886319687754625294295858893732102619957878088474248516736897672986680561569906626312405477179434430430643081775162559933103746380059358791938408706519009343260859650978656699644800514307496663531114557189526130683010877568472379671939834439965946819635538534526614616894843284849548648741593980956603381908480406273488478027249222341694512437618809637292043796250398770120919777362481858171012019712111377990776937318433023175314115011295565345563254364382529563615465678574467519101748681224088340596700772275740404539171686902432779630266925784735874090089757932735876342421932568692858717604531554575172640378228585136351966177365317576766910401542209009653684064297717082646767858130026687531292109846971985484003221412656945520022438313690502550028647819993611519992779456971947926445965902240622681660790778485442832421688151572368107021891309522569672829146724497182202998761238807511136786667168548202884645579505859938890164264290777776136491176555705353687341062673883599562554163030670155988829237463076857370493159393082569976730169605511264450226610847986086202065343640005364685539306270132253565958964321529997939178209634670924136709218154932821684998598062206280642470372301934581461693177268557871941419896630171501692454204743183514026303405063005109706055435835363885050816362002637483064902507146970451344572177363925350581119993876344905321135456574419824204961176096460674833451439223236306776372803935115909702761737762347696622992114065777628298281863525511019683588799090221723176575179791693679526195218264540347369234388784060213685899378484204355220862852306053543103669497453225410709575638233122271929985573005251675893479104047845850511455147299454782331824778003045539906759516252174341778094623353164111686371770087008544133071250399800975296964016021715833246566439333665691849862517741413341244079336283096787334000924194102284517842751630103185283836541670418350084388666092816382650305186319815186511082603180731037671074493369377315262443168111719252105031600771568004767544807583887045039792735706620455888810993576378459143029861083461772972657762556103645015129098769809101964578348671946397662601638692445879201064186146438097335821691022354557526855862877943835735364366562075220949568813427944691897739505836148716640294846230865046898524115233768400315198480822393609716108974600747325241167107906209168855497755497522000044462789088147600728565217761580166606738187635867559525715307535739927068104031230942859964527266646473897531846428157668140758722591414082752048734176163734893911990267096112463340150858309462675075262283721693753442418147249418679592232247766282077113766787066274566616704279486450845867592344242717729304685706739199064735542074168847095873688232824469199006693080481733099505859017206298150036466166228912626773295786779285147421486469978037904148759781656483028161646530528977231361569296683280587512460132275251221951222703573790759690462778253368299140070227795129042252950279913860043690226909842181754667194972037886660186470848364795616180952351609408344256478111276416100952053865886418307489094763870894765884792289316571410174357170852756170479418435669172634333828506903184079408749036186860794757646627739902561774257223149147250163375724790607091425515779807286545254666251599379656506101799755399578816118614948493862269402740953163460145087108531377309239494707278521891791086920940553095990330646766028546135049568810507531243562117412856183688755254759332203297046482241288378763394365846846191917470201784084357650516760307704209039772899765914591179545944572709869597507815122203274165703752407925482217701015166037298678613416783378118833499526914156298326067294588619114718945114650342601163079282497287183604433083904844500402028542208085365987310203313188694620399471293826303184883288598970214219943505668602319468373255966940455674583797990499235269610517480793273950651379394448429381527479075863829386022387846463750415103817105576939311312387668857042176541718953196846554148355650682904700204880170122901654959706292449843828314770617179316980174351830960659550946843696610147892933843097268625279404229133309155019174107135849046099591580310050336448363396438264130521345128706380707812921328357479859998417621089905995867521766730750234616873378800660438561222349169451289068030666313314670422600918809183062267380636835550379801694178885018556053997789978471766116756050702071734520207292462066716387725405733993756876184070457270805462350750669832274808487157625524807952075139881769870985290992149757210838558161475532096235373260384170770143282296632045583039815787549632580494076320785881898033984423547367745640989244040330484473824044330438688065026931539892814695932370311905214680707540917591088119255268428091832116399837191432719420996129585305951138938657919397668774370535523709801090244466156071693762702377789749976631157343370229910862924074877871264765648870068607130065608752136926606352405213887348556973929000789507028768039291396575071096373943167798994938980860223035261143989477530163084858962360963353332527843030636510627833415677632934538510974765613884204567315284469035689383635423911248531147758670862768283413268708019018395443421209754485734114081276318989450459801839735815549862437537538256762908735683647110493302174845992744762988073263421378602061226602843642681041206833702354635203699627630935224817238066225596637665990757273098581152207859044057893403709413808474491618934356207707563569529631862258732350803911003921128745452415919967880120209217890612266775087717243601928301235705130908970900864909552778179632777802488482709622002408803673609248297631915915007262163524379742448348942470724160292957876330850076713477175577426986743218893482226708305567218112370377593503088221741127434205986195999549488402479411874650076798797946907495728778912517232567204948981579386330814150341398376960299421594870053403511468567051268418680696134123059073948649531769806618200343819652321094374961774062196334188524526982988582467772915607263292721432985360144017468603315454395571699634417197997827409593444462300853249488440235851214856789320335847025878584588671287665333399360420958111226884740964235870699608211672573437709582841344165626211221274525173787956500317787322642975079561925091393866349421498680181355390482943934819742905139436504301035615711047552226496696820666653376836794474294125226001161253045467629870778953689473561661331246387223248499092433581621881276861273797176535932000799277882896605659354855002103742677965998873730455610861219928477906916363942006353281769615999521058831380423250120979357172916492551165898372237071059585988968140139211093230776721344938312859012308070947928811734641554364054570264227591806357508981596838818396300301158713140911091515429925217015249839947420631346633303935059749982462107748278535141337343752546546343000211395804547400612907629277337083834458136405712662286923171093920631716740773220187510745719929067430392135082613933170510927314053788109454080023467482819483998527338036479621229859647565100800324399697262271038951714303968575199725627024322823189718433805064016306839416787528717373763576924563242522947393248044585176192543207835928681579187557888143311776660116632920192810010281262941032232941516626711792969117170496413255828099380688763048446944624184376098100158827959651075328065421894653007564072782175613811318408554122625039574547706309021970555205618701066320545156137027366609136603051864024267752595477231596028767911147521674569085287410832439373607501149240044144069398034220776813895524173927410376596411135565347475473558567234741952585282522478045842682848835189230315806779620153400347163526500520733661695821348797187385019933352795217554855578372122156136221346290330321811513202916989866901212921951472987312744496001447658114528254623916992904474830695825576378809631030880096384531599292506474590329583353886779857537149950627274512668361108069310559276861873456694022632361953278254712908106233851087757200720434740527743057969761874942767553925340419721665300462372663192840248612453156415152371845993188802477835279283897427062333062127057001910974268832152956676372929495445645127238656498344411429848838843788282662486227883647900251655998411848452150095934545671693011227870951695594660899457930935232431033376846966625499718150960241562297206632802380884265449380113036322659766161180947780714643680525697208829900900720014578282385295621923252451998411624586485349399922443098318230065700045696670086867632069206860976010891821646405510716299910675355779081439913967263670681283160143547984860780548574093074822140835643916824207899928023219454297602693777841641189022808283769645942282502855372341804603904532621158876470619194187816441857898356346820833007371190288520390160661379611077891814749530284635057617100969508063977226401004671478205923533104689034930678485810511120292103748270269988801530037360743945072760648176229974703822401972654942513454167580914932390304331811641644792279428045160703114553835345948465232080066806416166043954589484784276987143223800150022103124976790776483122765672251046872665474000893671485856445802172381684807882943351479279762208320211607793559384424101452445574328992396736039740600629756602566169512563215837924978646853166913299837523819169299555600539169461374793360436901970798643849565504073993393538462514698823290019505664795215749513872798658269649416446588915432740348320403003690516562402933979178580159972679879997693745635892685819472334765609544780490073075779483390110931764300323112430443654196877580020314537838215318620136407039719298969250599489743478924235810016782629012147692680351470867031892291215112463458509108631952427545527119686519756362918071492460801897405263981205789312584043719965643843849014714930475584918475144663559220581911059079007966186269339306058007338157238983730660116372293290220083495500503802535736847310527375423271058993055543883606503951638806771349190541506412861676374123175544420434001054492654874216341772384393762586175482090028700749259413483206269120801638233363109795734420746480956848706766414417557508704049834166041644130802954151068412553736148950869759191353614392540599126973537665733392609747455940366950489847937831021287657472069664319922829528078946004850996463264739805732153908561066135533717365725168908678685797408482992337323947620104738007554092350938672670442996710094499781796581538393539632510324494203094672897482486418720734520988979402428957500773330992978702691625697873884181614000425924290368208118832316099718016004854179253919278945563773063514799738807333765786071190890857124506507479536870232074704292330273181565862633598086917200100488941643716213477143415315130633312010809190860524586194761045776891377108008266485393213601257156187001136139841731651215784244965170781779800231441041360255865053405010416990738952585880970149228593777926954775075212067667952385854553118146927701949137424655865660926648781700537126819110261159581128916968407246073260992767619462318364527487888891505127514582377724888949472862961502026141122585497815695187133102947822854429759796312029976690221419689132253922015935955610252683116806295386861332974188069878717647050723103633655426463268693152635351033194655573952353148442246432923706540091144882341942299872309864905779705010169532651469348165046827003120372364775560720272122663788705521432490672159563285955125080559517617204802335162982702689035102814557558487116304732090552655181470356814697071161411119759352409055946593996847378668126847193812127420441292031922728302358040273434743578207781243852805185189661297713172930188747936305387466946949749668478907635094585397979404209212861317715428140820481064200182995154803715532791327660853663094372795782984740078669927358167179533180347264532560029658155230642137439024682359246343749652554587257523972947394723724968667526457989294655839735562610600130610725654559418729990406744100599574404552228471310030930760133368583566662609493420649185309477557265935301258455308387232856613292143233735653885239261672214922258822144330492743023216635691318617516032860420182421603383904127319389430005555839617456344570442814693150053762079543103905717872094461001732877568922566329797075557084526119357907825083209485961313198823284696827439823070667646390419649020672680933756780701518398774187547717190624200733759839397530157776389045104695366422440581396220460009387910030458833552788916230398962328159480337496386716129000358766454407213341654224680765227293431841812905611576991038785859723930907283057663741407849196989722094091414680948540252038147947184445386448770383472028520418465238257713337633654815566182270706738518385432897172812953184736582784881640320742423626548325294303745026849192914372014271482211731643677535689412315854961244463264497140964102719856790214689958973284360017526650643065410427766376794956966397492359078792808666397622064257814621358093929707977116008679463274984843853493250003876760064518182526222837031200616176617824109317159448251145992574645428308601720397519222054871356771931902656890303948243407819368536054498545175125941865594891800718835317776952577755703125870584604946481661765739803243653326076625110169431951805493503570733643387777499317677673851616485828229629023082662628549638244782163026132052934479253274982299151110590249342740162884337028018004257466999040339563917196756761300851683663478704275904630283431092359971890789199924334099020949921950054484602801985592544504488696093748991929807650420094911770467752528466619066902196906783464723374137124987072263300810282286665584949333757674385346615404667033100716010259629508616256784549818636138009990727182766174225356080326820753799874715779688721485103947512209753761965111762904766333193065449883251919033516960349297261925302018044058917544403748031918087240012848774202675170502188394841253443186404184272746394492161563057795665204965044646175360800698730872106845981814783039854417878285310665817152430832695732943047377654429919181409326860026651177619460711920239204463959524206311219712882644662780573297233767088366421281752456023909285371769042172426737678153758562518669679428620927947011501579178500112190522271865664795373629357321627140308633245851774862027784550092065531587375277160393679371135274581431220119112504100808578913545057812770295686777940480056510214446074613706011015774250778316753876594054945633272421284668276277783469729429813073544425332495277216120685274600693234330306654968574016104958768682747413862219222714102811470031468894330113243147322313723339578190798947375099586004847423299565618951896176166378504289704921928794258863869982194994349918488464895062982480758114261595074826895326347470684215465999660614851453425245791304841317628614794742571634056043825797861494714220189482777261486185808922533610077032743019924653353464877907873942741367318797786230390097510162385930446663362928406759455333691137551661787260862083443571731374349363075848813850107435641643656587240308458077469376117263944058601376615503379246115190001759956646400860010781771614373798104057488905816159400543344852580943412148203434685021718486060716696980257222050000724085425836391358901363475670175759230195948217082638704606944070891709019941032522239773231489533038422603557583241873827325332777660889877183296693014906608965965624247982682761634314360673851118579542812073475016878567190684953363257942798429661096897976287904393670018314564262576202365120738345939799258672040012499079297117977006501987365023231378947913608866636390708821265511879488613267576147599018104602521953891917019883217865566153718620522940650028050146605351462267064726289569303377413687436777674054103716494841188301081363422461824159643538331627813333629987123774566884894261981818604642771341255768759898972970582164854555496793152794933106639591219323497003811517109727070365423142266759188847085332738456999741983003738081869503099616101445370508206893031829906919390523075742595408543155336397908145004555318551416131961678248440241491806639625105715597705618068666310743057257945358899016220046101793613582656519711090861781935382928575343189334185486766924574839019035745620414364365956733368905987892826583224475849082283832697705922532848239548417252122330483124551912765052475527942854510278346755459125740732610896303808397356217599057605714960426660905842649095410904057034861601247435777910625306512204283039631977337158979192730503253541325460924258958217703563596354713753791830790352390547938299962801350436207252163918280092011128000872325673456988880389032563586261820561823937186676083808790432503398699169622312752695650098465555990949510120741226481659613347064575118782412911389262084858595559328530234407767855407187920575519914201169092307157752613793524997658102266664394714159208202958946074095253401588470494125319254196919726127283209079931120602235415903371022965234704081586207010381238569683139907753039819775291704631282536117233826494571517995140583664496369125073652273995155002340722242474415118854549512076712279651021688841401936022525926574684892754712008878208550370716508813524871174706827898055912496858581012234211293982848079695229173260366900574061453546086771574916035179396343835524560216427105731567726809389226341063251568760731490948970258796996897773292618290019053313656542701199003103475549554958279646521876527840163341868230622542566409037569337385621824696235161479425774128174423717821515422444317068257279838120558163462925177305477282268948841773130291582998948282978435978286717232415615002087783365078690014852283815860917616019940306899406910675982701483240017538578339235945809210728752522956455774280633073087181888217955787728779740223365615589631430868781410381880556940599297172312179946163109281942204279877401963555343507050293874791702797746847108305578237371365895281009799737728539626524938423065187622248631724909314800239798177075747599798494865433353605279293655739002718201902290891249573086858353889174205235648145308552779754382565924756826411788949025417461884383574667830114349317583580686812006038991993031091828735731919392050894089827952726687124561478553673665945974674175670377949543732740713755142946755781554286179724236204908176001253604704758650581666218251920004445232151814875736560000573226960545868447961493004959211448654121720152589537129255343160161577817993985604910446435756106255835861236097883604562468817665557436115954148876496695144894039839831760893589107232917753275060525424530326295920071726405031071125471850603129120097761485327309876785897569240166909992518097081489578315037542713988603099694235112964888274450124380714441411718558713504745803983036031823433275232527152841124024699109761983839584159463707225900008479131094124112423956406102167897448358496120502133675939593648345579249189893457170576946789077444499922639992644285927934724690933339951533540537809142416337266116410364362371387027907878572017354772802437704231129345313224695754946671882140022544090784670316128735335932530152585594099539727082449021625452487214627082525126970033663722080329201855184202597410140475119750549814861627535038062049467878813168332354649545030907396304735292571238991942439040343445825133824407027112553432025605539650917192300907784646623594781610620657624444506721462049304651581039120295075678042559907548450379111907388699766771596319762961442183886738232885730915883172380527727468684094010239730958790105470264336366215575699638403617150146908383812710621257248334542459521057961803434719982988304564110995470500193026778710936288818385820663335494747344326658555668699838144260133273001161806092398510695202188370809941100858882571415151764892530748539366818235293555615170738017648387370320342589022113272479489775585777495485545331278404826299231602388079013581716862310462787912308497446848155038510476534072680305659268840665957760039828568377649809635822610003278489499587360599166727570268995281547634431952019287231956759240911984056574428235460274413603952160551440640212237111465923356768718849567177966461393146416374800788731785879672127161878374290884198971049321558556443347821481216271891638595423765468876560065212357544925392001202637254618733959391082827672300852880591886012485816682449713325064760566009424489506386617272828133561801210294384892132820607452134767695823302936573748013306743858018837101043465245210366611557887762515860155627714115770004856257354764115446454511137825679890045269657020412932601145766656680755796393965991143827850933636942354777861754649408390172244093735884385928215271345878009937266498469497498569798711924602350600205472858926246038113435991395062648453320518340973245894737508341712590998148426843010200107670972461523793557955179356164580850966286908064840939592491479262859229448626692649596706991983497733127644273540095632465333552527983490967976279099138198821093599903720101725319895180391711264777732141632011455946807269957233566169682566649608067731517577584977771569343902766431087446488972600605970812692414646421041891699245525027965587330760679394375132306389854082934021999076584276897616050683260060118684984049857164251554015646753406613641115549611939136776032746580746309002523302615419547842402239857346349930266248866220729946246767548508128233153967948145791964896010168982845033664181610200059304883094744836011306665837691431179755878335427063321838966864555325968925785422441866674988427547239819451402050473681599152712477566437427069573098324339024821564265886590726888530064119090998350281388514849463288407908908214594174143054430461830291549229901876540014373472845212729373832526376047586148333254139325409798182784773030093257767773749909782229937142731873864647015607496573048713310992561144395236316551685177652298891179122699322389349456085859229870783280489904455035446906012048584223922067957025538315882025960437596198178852458095811958321918769489616787816236063857680644657673446336875556448267849299012132835637755309479210298726616594302257368946020542103452936559012859024509375229591881243879726323857115601236866223597196775245715870010867065570392338089714332268700700770902436202724175762036791748292556666903356199846322197534593884261304295796932957300060257473610393297876514776377151332382313899666792929739002684925717191264888937421039274326520407193525862372685284390113587616430956446910749372325544816931749094018942774785206827425357800652424166490772493167133165651775626627647601737367955430004733222205799445855242476844875301102556604143404984140285840055593936784879331594653639157795103627839481530790687484172105500185321830608832496037398910343262860292714283530693530497348597465203412175908557028575878258839384808370633392401163119652396169954008530425850388592909750957577585163306380447989487470220458717273167245660399526824085381809984126601809606178048686720554652745721325358972621527498356074487407961532327180960670414587406951517284277773865542675240698608375467248993979633960856375706090292702946990099736650065523229062850459214846041345114327362417814803029218195891506947787106051406220918432913675922677737516775851275193712788339868030303781693497319974092741941059268885345359610206753606986531286487100733428062499199030542963556792436538503365488412229279880753939936425261035690207607529975983093328680660257245743815528165835447751261855554431750630803344947434874180734493125424589706020334797197736114757993249089552345121835098927623753243096858764682634617326733837507459560850661936693206735188549378063888307593566556163715905374281147014975109946605279272735039256304522613418847778352807879457988810781954593908902378093625084896773076961171642801640586444474767106129668667382002258458120489469053761239861247640202942931860466892183244992394379806334223721633912162643743352148482963293767705211267154330858766283868875091813753088266664569620719338976133507101583918799664659259185069087323853425971660049832351194096366788962165676201827582174244140653268502168083473431645923887699725743159150220068728050580969067581563052414339609604747351171798876133645047013313532411922562259997676344341937064556655155057267092086556633869816399565945366345669042163950128807247798215894821427136051755294202044208557327801809003085681015068367746861954210544023403811638808997807627874509857121828343602891038315342878811022134842517635030612433587856011263633028931712793321294448361837791885951040763387317426467927717879987205465276167778190183467367187901748526570018886584086897598297968358510721336383490629230728926268064039410725467174445100380881759040351479705922305407200268244601861560346431999275227165941129066373998716059775339148731494552267608562336657868413407773231135903034453227953110709508778356391095390617928626930622769153466440577075746509732032556759424349127324373141178634191846097942044349770658843056916691334970323454835594889815247369424350431873246905700129677631216423893935507785010362937649604920757815577035837438936480349066503198598952875910994182768188766007689262007645263709208497339156258855918371463344032070893343976205045982651675645436072876516876941075776736952823100624789036467528218764406891322432559240312391390894844937970736089433213993265531993985761111384035565611383886368822604074249962769475786210159822621742392070096953055458086322788307167016905977397232606398232830319872130049504064752975907033293806775714256639381828759736070231254040980083280507577392610193032856180677616440900003805806140035357629443434531666082495378038346183769960232692424398761984005291288399363127697007535324679991561256585696619976847623845149637343283835259663704019688408285952819938755914220910012844696705773579293016661354283909754598465521747867477999342903355503737379928794630390377773676133076832407855288107863586430212314658894032764858371584158533486410536814329609351717987185888301802743310388666760565879615802509319872192212674297916673142442490505525587272876534535084526398445102898307828886490929208974283959507839590341262305273071196056143425945526063451222778638282980818031516848773652141484028057687725045841942743066241185107899832346848605715734698847919360757942241684558635406461578219792748189134958267049932759516962893763115240676226656049918405094700749002346566365150851411527088054137511315660960700088204650323028692056137241185468655770898716702424101071268454111482768241953371235471880014303980575495104684475033424250831137175688163488745080008922482773882016848948211757690241284033042829883562082085611126916286200973659953855308806553039144184859876407553085943189956655622704583815401674233826786713113802278048244787993832234011897718554189556343908570202984928885991736221729140159856953434669242767412822186949899986105444264208640887319028973099882632716024594913652618473313041722239214481621087850491711072295893438267144852464461754911489455413833987913096231266312264274498997706029848997138795884352582906392239112488336896482903631633474550525536060744992237263676769148103363610846415692350722796351065409584270452732638753673464595873275008345308145991658973166083950238063581581072404501258576272227291722510066000346182233225074657482668219206198946691881765036089474402783404377012685141959036324405949780494759137358319812588455007835863663094911258713293134386619175874778402616690783785989367879866170703296817708056156535434322877246894326333798394615923467401375977591030969491861644797107940500193343890372452029427056298294797989349294649609124666179151571702374926651848173428235102006089453249235123415644555082788490619853416031161725226797155298447573393938309435507577795531595354712837461600635442401208398616677934333487489237279311982308044545067205736866962068656566612564656592372946930363076774555910855748799232940306294985101227987857587230466843101556513263135147139449922027354770816527257209652122921311413261680794743862684999379385019270867150470883176561527296411587356705955505086084570816186251951962553383770995169855628012802458592331183003449086923694176888000630101850181273948331727476051537505589852506432906570714283504598444156588635932670048832378001698644930219880463678353560679169444925179976405752287836232673181743092072989747821194445035347757372930457942663201645873302475797320445393499683231222818401709934717485996709091724401867388642850703118364973296829511734987390284192163412733623836735819025541880599095260585148961721413878527003036150240059674582732039665278083566055647398106787219720411296070611549785060995434112936214363953915389444375940285041411960394206457248847136436293092946231668732679364144229403424629160890397630838108386279700620472983230386842295845342233458812877246618910442066370184584843376459921266650098725713862966234525920790068956335833253832939996206850047920507573564814457167358169124955058010235559295835934576462602785578347162130816789493475646661083884178500559313330453540783149598437983262105430535306825720050853659334570445363532023977739272006176775994202980902342058544576409408473799914784068351977682098448439556493757105126185670795771435605902881196680102106082632002234573244992030014612925854219391122355749807839100149609308649123927252667371857017175321948318809400982306191664171611424365668346484229652123944950160106382629212017700335352595541966232394171155722048829110066007621479139701104521267634925634069091748899768221010344099873817771449916644908912845664999128620483477551699837736489965012520380517073840251282144409100209147784120934856522338940104240756537227245628806541420077778736770215204423425557649820024627509520415429904934110106197914578311373376114611357570873810446237756886673352218924205383090635129635719264641769420895935803003778371853489396851275534096659951837950993207002811068052946248333357639683649356845762572594813927781092926571920428825051397066637548759064326534181231702136623011217412924624031508593844620691606788092031951989733448844000368630450791931708935872282514061395990790440451174810472816207413109711852312003426570368352886173254226576244478648311917571909779702333189191318944576252991928164159990821744284336123074824059068467813565755199247617226979827294314935734197927147172229495684877115423130321928386250340221575367221574331039875445024990933700782832409859694934016866315551753628869607899836223422885489257630134673380329113520964246653026657493811394521397664602275099750009289283537530091639597553317346107588049631967258249111195694412146501838409459695089591885328845893857666870794779287284799111986684274429251254297586280290053119172163045552649991940303404109962309031403110509947109801516660401548155420991674872122661050028048086589084251014455885484247582045589097520010123850316255511853610323503694001336190521557112852434085190481906983620991687979910861601530484012106330924621684558574756651011499009280342780312079912031411666078877452319297211530931923091415070465466196522297876169740098815458747450343692516979169666794836555606002386171415253032097050581751620594943341943146806853007374143950872116612638466064228701712660136916518661362671853422187254561188365341233513984800875445968390617209537273722284999724604353110012942404897917683027328554289642435075224515766018912152627788081193669957570831197437663601468196963329951977794647199043779436547323866804220614941203951029464473006687251910089660997582830473418264488485680504472969282765353205235358298985265972704648865220874724219647625735787461302492960491501872296643820081074728172809284506838866352919373667784881928453300542367430374849859039278856615453540025065732989503159450245115365045689367825758076688185590346649655765206342360873230328989219315091993481955059582489275229717693212097470228001493429778019564930822297177375761074664297595830309411773506024451451298404691608069301156002634097437680602711376810750420930218286253628876631612356277543916650892274435389583827710304569606223994346734919571138835106199424771295420550507445187893068216031899087520942810776002891585568494475323716120117725864380802010239721027552524209555964573549692892817810535464918852200261926165373097063099461293403645699707194322779110967438398051007085327058679547847350352630682947888531158186855453366998794685868727130462245305715794433558016165412058651630027381144875455921370832408438429393108914067201579906442319891122056512041041401999819978330188466944895981281722394815914503395637592247146722018229989281207156329809131540707653800510798157683787728933981185658471563096899661362618366167537075481676087106607595856109721362278749512567579874507414807635187534847433859661965996773604958044772384565267393696777936526067076778070026129278502224954659035237176948486410939383304073533083109349782401894710704212880899319239768013604142319225724189011928265511747148467296040273385756643142189229280602314188826647675856521504886943208589810493073592953966229535319835815068322590011839824019677091429217062615963701820380173144342653750799354774093809576998525621971998989637277757742804085223652665426969759385963792740548013371608791126844711527004813953624012867389341304883795783310510718882345670289951429087222858037962937195951428286412045795263408671876552435001512098097798041557177349226994194597981194220420145662410437419166221699337891213533574434136832626013900717708244567563216672729115072576811940500125010425058143214773398186058733963514510733331227412602034197876053778386781799935452448811783511016533805297248605458677244697981257357254014552895459765010569277050005363648200187953104144850978145522389110511699554121829444658563414999909521033915743615931222739082334440134999423875348508185741733025598726635184818374402212632151092608645176958117967302811831351671055894462129552349947605621259617306328177894522936633303018460776457826725702270018176540520426613111757707673104174680542432360842827117665319332872497677140549146190020577314200329551540058578119691074434317561641051863199571809264918277941990014486664908546950644040606885524065778994632797775527145611294975112456912748715304068257956031923114827715763192447464145390500917636412677325778092381914221008842685750842505220394557814227668885996884011507496778359400416801965031770466143038337392384102510114933970946742015269943832556758948801809403207436648632354405689385725796105430572876681504196837118119480578439277789484604698436337977098689574842158277433143096598243929996459927368657050227083580023192799027626165744219278231261355137914623606964553113394891040353651327417588404279670556026620063187282795610735179606329746663550483285263466406026816833993432839290030344792381257381562251545739497240735953797388947556457358336572333450490516246728971619980765967626332893785251261106004554666284727900746009988021769343661020794260332256572299830528837542363229128185563816339053961328212026372533774257934577266625990378624718154550938400516438024943706330391914671528616112668301615259056268002995015363758007972209826168004191103961551754058004291423174061137181384368496294550389810914334489200091725944891399834931702796547554711036474878521468197153352319297688191056600778366088317837601994664683101221283623180321229404830601643636642694188656045980560470983089627155052112651482562462651426582856584942204305206290465940289584476771266979546670155783209215770996276601034609601996956373074015660276259567348469066412636949477221877762095008920978221786949147955693976562763670129024388684498496402199087405507766749686521734622490925301171087556229057297438207769133630505248927494797982932904723853957326752958746095866372674429851096122818489150598652829083514994627012522607511735084595891978210149077663813291347713650624566915994229917070911017590350553522139236250386020331209245896518848674567385829148533781276900749695617062483951848584855743541158372194521879339308245817083867954305767297407619976677078557395180835060360651579583953154422474151395886137321452985316120362899891350538781159592372363938084282443395674261452101528845331997205575677378379557655176222005527181827741058996795343664234002891552905464291008582424073520789282791621923100810931955834936204301769867138467326244734717559173441308694401914210921951133558079890468710910292421578384938103092384424422712908348318832106796764230239204646817501376871529079696188465577260353846506330141037132615680434528251670685260277851737632754296104158202992340579985259798019161080124694221459461108772102685017964212911585786570153888162447709299728421061417310357386089154196302472307766859350507922668696256296654169070398064581223571682849857785498900206142837722452774050112650927195473269424841908099936057192590017406337903448923544845944201196581859667216540024943628509976272320131890909754699751210015759923114000852844827791257290836831280229449593906108452897044642753961082057338300214193923329587624528286762339104607827639937714965247464207907854830545584168412655246705820139360622795236716052614673486204754752480791321154962719297957325005779439285005164758334014347325774331556188435449950026431630406175281885358435009274414963691314165345449955430413879975006607328999331383214898699963948191226364481768156894465272226923242100292765327495568794529178839958941780696308723764190968587993104992072530094804194700277096569268119036920132591517929603250646787753841725836925555861324917667680661155764481392542545881585592243952560702886573036283290578234409130474367913559113111240627465101713823273637424698594002017974893455328800293043608824123107083288423442729043718246973631559050550349402022924016683513592168571757003102839498472028690668285864733453240641374685643504081639194804302341398898686247674870618372611680182809551198797818026303465634019444907819026235394849641999933267552224656327400445002788181699052406332580423952463440069577936872332589439771422140172822306353037612915211371905896107850646750151566859192931832924329701076634756804110057146858617858840015548465414887879084485330087160206198235831969286171294637344565851005538536408096960717485623348342528148129751845779518904457326545763812095257614490200834215447051027568132780840940813969501874741708322359401918648044390977673465434214094536056919107042340428556239974036779594347877427941562552635569918553776468082531584367764579963318110723864655169289294666992107536588427317094404143231256848276949330636115453202625939269865615931068442458477165767425475088056845277878058379467630638779194996935980600857304388388545035424115122940978765064724392123844215312320773625943268751054849818758183671982765670048320431237554001126400429628137651321645147343971957411696920002639768558615581707387360581945538598004602624923427395311950208083778943037136439950818845461117325185567544874237810701354510346778496503678663790664596181595281761687439571105714338302761094208410692732139448482460467514376617999096482684447612809195617297734984137403465180338621486227365688659328309608888620666172376847461651217901748470866490878112680325457286749070614597456556664722303680608868444378294689223991053810867014101959560610592304257397651731256264952940027614094452464499875574557277627946765908091142644899214202377784494435758988004166378683667899841758731458309239596023823065939617924841602665417206165299492566803842485566491490410027981824269253583404516210123728110476671610362550956754483759476411653229812813191080247269978732581013810412503156471527634891661119316044601969798034517327783823106415502518416230516600873007080783732000696514656038705070377259987871103319311395029785441845491504847408544228131663782114324444371573997012780886631238389550637217387093141956035319778830258893332696239851824778828444539543195320114168720555182036949567272278351261614217854859383513761188283725765022310381887813791881802067808728012233406519418188296051211820560257548492447094460906275972304473943134090446552953993334789070225516029445110915097470448037711446056406819310213574316421185444575825150318896128861678401029731720521463962980308185973282076171021340645403688947418164015559057608149071311423499571022717808724605618560520816752882921127294256834022062919149457079556267035313452454564624116228815173288836121205765861224805980534082515182533972565552806480901876314788133099030851010991947747820823800956296637626643889465672880778103017864547518620151933471675530968234296727861236701538316796382807787830742366914195380098860048964274524430287122244206809906114123894150205342156712469869455696995926112107291571236911899562465306995163801499336801193005496862716623803929196330847480829900113970853608582525419842938625833893221233878131187786026754940898642389331107366344402639701383784597110703609945596997886667430342172006670980696228308037884514776335601001554973714717760609888195395139237304600966929274167994418015439033789265744674724742728507549084750706550457224331173031440072676330660153954653279295708799448599465976651076555246678157078517955251308534637353701356449238832871250434366787443931708031117135027185369852843346733843252100831251272928877763036567854627427805629032627962084018905826024119945409333329842712588116630759508800831192990620795441641950896053248588771532222057432626423126595489133219406262304881673052865950139365931201694262881358559858078169487764222224140438790848254591396457668933380350293783611985678412090227488354682935238665668361762011047973942967176446747145646506021842649613018040675324228975898397946174513569410607803858321079260964217280949037424602852001383475276173665327107690446132017105013072262283327802376235171164638346962439802024552120055853562873734562203470144158001551935339844059119353292725103022530005170667774615851485600639902385896936754232675424324490152740872609877217489512844278450619590372350823927251437528142458390489999351395511124506822445995687866242632121177640091404130731595909320493905247842076739209358387279140683827883259544915243755326958291348334288222362435089590925467165570077447328061239982254306805392391146814764990431340726725660926387983296052929889968408887179374405998268306460424017123140326427562895840000884447102170470036427883845026118846489973925411346696822909616687680521379947561119112391372440517814415671339182666698531025753529060164183290986936756501716469354710289801116290980757975083909278361799035097458460649877330844731238097866317575363347228493865567887928278940869193988483636619268079755047760811321648411315084680862794222859692224548455211904452918980801766168300011816861295402008562304065373326723650602208694436982935322107181301140338689923114362048655478668920411022714749909085530875086140026109635727405092280502444593539784470309974501558898785370582289380927021820852112368134853610458962279244580699125483053188450052443885593053585794076613469836593174916379369795020479792565584109354976808986178011969689963602620798843783644728619657791006725317637652635550986249948492675327760047806255054670092961370688875633619159084721154238012920910921997153701856706031160993688098379717918812124426574622891155788227902954609041235038943587480580590607253431437625382208436962515636998487381705554599478059031489542945651296420501603897072421173899379954800376062142570492215988335314239354729689215152687107674726692321341146334479308117044879701186912908560754817008584087540226998420774231521314805460572944535010771932121954110615406390863411954563933807336092163160828421905440702378230405598015497946752878560729652136614068628195327807319136778502597875551012047713415078982931511528278861708562135951158894788607777334693423681837203299147274131477185963786657569640626390318876461726764859041305577204705968353780886658529493522615957303522043921396189111964059321636474272729763017588328641167263506423840005467461471511650326714169223491836897149189597987711155380043749652166148763035792961958550709001765586643150920017650813483269828964480063391566479074649751147270115239941548116251484605025122522389563611773820592264173351350923101899984267144638013315179768738056742474663086969991854111420712914980876149415033250981714407188205971541605557225671137832258947182857663068184584124229451914424571003476881139612211360354902611016111318659047469020415748602313765640641461563062039411700299172973694372232218334905485763250625175553056425121196926312545243564768522388776769325368385841764451033415425028977132303151893481204826265383595458778046344921960736775965303110791396996728747944219991351694371460833092043904363681584572796146530273086906977285815216008596641926746462410612105406802994885127223486954828583593910086775389879233651294047490782239042096753752791115835762918956871691453789354054279908786181587476040339903278587449678404827309282842749204883392092122190790651602291591241762665368843773008109248517729007138815530950004851820040241006373958390807254294864260323535126033025642459619227416560403701574969409939612376024936132259805408158561110045592710741856848390624526907579392358376752409300542016867066135517638097715443092963418638419097264838048994509142154928901496765209846966488109196834049994983769260258248076520050410258107823380849203387577734361311360961316626871350334899034025224474844520991192854688845176013946762772703398871650522961389232998066552402107619671264697083828552813184231093681669561793088736977719346528047685000583346809680255675264509841900877102460971637646302931209648246133480119860723139387277318955204549605578171452470210407040183853277927377827428236713420380128722451176483448637957079744018757403345976191336652523343358575714437811791948632085082686176374866565434290036570127232899788210725721963226250370907981099874825539831003247865507345487459571374920399359309364677237130127147196143153548980609305294540587524630527343907115109841542859546293303225640276356182494630358727918255839958407938949364052230022005972387620629854531342939042025120636204720196832263307593853183097584968720454493645099411736710933968939263954567578870527781246037860233854350672327026337706026951609324619935597522927860169919361991618733868768137870359414879033741035046121594100425922339767468054393175450279001822578516017597414648354734252719914647359236595780817064672244776458543760049733278815793189386929077263319011971546041939543155352919292013806824790525627592844851387002556048089331338753206395252746323547729278212369708513945692157431007679745543458684747302765247814831459325635647637805527745840294200716937408722477562742202403194071332607051122226563449054212100287872751155024257935265377091506300369300838986955344995125240989330361817942902350908215560402441038981928791353847738252733464934109830636052993962283091429530200973353054511670379457329734942689087187340632121044460121231109863438373783084241145946854164869442013447817277367817636352983313015349540314291169062045063475474717897116346325060676784342877631002930329499890101585788700822682775100809080770083617066072189662770827572037396081063388013527603248372214548131997508732131677349516696916108426987822876797256839018104167970613483296671059600100067084205709063282238912067934733129973608439027565628085852605243656960135145406669890305789269510020589061250306468707695087981043742013616351351121069587792566791387452073777933103092055960771057395644711958641391812649300111349133288390483116321755843300425915054851968207218678204479125300167761551349650817065974867208842653538788653445115221075800193068196277807258048911744358774631967235148371774368558436293055990233926301608039197089828929168303413204925585695998756518664508489801265262337348998982853368853393346842637303710179225909959065577067942609416299259555348764304154628164847588134715191197303873405888489832539782324931344737639277212084555017873637937914146235026176478277753886336174091564060167405070787022782277752537705782049509491517504657786612069618773200296469935948735602039356639245024852423937615302411554863774863443772158645648545514197743507168888018980937977262530120976588274563743706897240088383799822001671728994280285761082588435927647599377230306922337809511536249194879795448072179571458612456464828963388196083832354312386900101523769793111766277960215505496148910617076243942318525937287029608268242662766131911980084009607314033494097057508533498701291242412083932420754514051827192255913098171103734346564646676639555007535129469234558603577407204218888332780757425058575527922683051396653747119733859620956459040453838381874889337270962242572793871744818552867485539431367464448629390319261030196447747876839094906811380401146978574589790064896150437727500747489708178747691787530953669983125401593152590633921757244577137088489560847587000764188638708492140234623471903813638397118417914056263302217707731542238581761008023179258440181288931807200012860403180728713610757650609652439464155415336293217336079565152558401507714883124338469142009486225299541482239474750404884488505445332358248853675702335808322677358511757369289744106190653538560828549785652278669547982449546876136394181840458594073689437531739912585399642671928901921633292596341334236734791849777120138460880844737621574868434676189116747756033048239966185461905741159722339026920462001922853229817611082949218254030140053670788504024053348711977211354172769789228149430701122466941299451755373818655141906665183133209889067779285613552304841628422606017866477217989680074239047407482279350891555973259998958882153531948486458292354983443438981068142795856688720107076762898810733780421129003245000381409993670624507814300808759034115088454809718538838979952231985208457813683598177109453606127633472506664568038902125821028387473527803302257655482137139824500433610006464672079812833514944227040316947096616377742454864815282595839460077296901511375753746527775680020724617546321293212193222968775070827382782128864199449740792893516477804086200374142400038258504494080609982831991251010368121117786286509003981245749154854041467915661312220801667405743401896675523493985875600007386560097090419848642752503544710383949740989729188795643198386443954492192957594476028482260916988301709811842769089968253632390547717137041285240114029550708535241820648931557757636760972960344201762579886511327455905141239651650654582805478651481270963457809484824235423625089614690567423469487866640507060337970690046172620426879267502572183454896120838854147143787566050803624588161333786574152886824575087124941097119793122695639003867328756178468382445275186112182003405983102547453178616177884611285871864505820032576765991135795181183590614169484139921920838914805859598995286295755270257807243673544959430290366509326095791341816118435614147774638000046857349327333178043706740029654640638295947831563957878200760849776070401573285240828386649750907432504773720989761821380790144802190629411373809239622438385163737435200998121311449027131071690059937837439495983073542436123604711267378871491805536168671909616318005042031636213014280218275139748020997689100338957363172362994904201102038581927835676332049619830222827601799863763655529491729587597218558906351181857088575706248000604067757948098466797924422349482305860054986237885044204357979272075764541805280131446699660110673149951210796456364256462260003789780765719516379463929627342390692119990615975405635962551181364014616430377200540973978873243841233404242346048877445351681220485430757990118038363652637663643601778103328663601960448588030969190239048130362307053384303436853979133612532833623508676762800980259337698311322765667068489414440419778954053329242790146326065850833546938909511985385958931423311428881990876787463809529016743455089269044734090046688769411802350948514827080651638237195801596328490851416028331383777028395186802833516710153547336814140079860377094527279345111500205021749411383984018327255785114083881712562210733551921850005139965869893655765031821478180970063636018358115261473368071288567054579478910830982990600045385572747935382768614305507180342312466969232770153588558733899813703908384108531254618621234278012124769322565183729807202837862148374039931044053422995908402356917026672525023510351642033606803232555039429469372117602986329426266694798073301174777069590085360513288667979332897418302204128706600354767952350870930663801174334894342947876508437436380381422185124034484767499882267414579730239817030397530899295921524265416824867987704287894216446575948278812408854814461306602289367350740738771778419835071933313552309664844836081271270584463217665344351804806607352880952923932002177974866116907899106316733948720360031791106573740744378644337301314592892761448016374099348864096391868238445448982892439572699408043592699597264474979762476003062190791112021063820916532536916153784164465201214565220452861859083118831111367480226443261945678469145815310686490277302832067748656177699217368993302151612359919897289124611879948627747662419646584091753929415828324080823279223934817458355103527329000057073038890123154263343343565298736343750338449558544237698112441356073552032972654097138916765351847950438798001803795599257159745842765324143233567873752212874866759251906758974435158084126627046361787034570457801871758729071161029039984593143099719553054247359824391576371773885411335542758107209158301936778756697450268211394397930391591143069854891998886807679993411617170139528583632728504241429622429378518135602065829314572389920927792033458129134805177891631171125014631529471983410646320609502639535617174665010070010234250849969600210073928903629485414040233414903341293957515968685933064097217796874745876591057372446876027199126854487839064810455972972970109959937133359544378840364967780457030754977546875015682701000207857518832831858393629234950808883404220072013058566924755182063978150250713447027353964568250905459962907091670714595248406936427623630358227600208538624224497994256525419786163022987918582757857070202394611540527073096007774721953060662411291958800333644861513913299316114796234087581713451815293257542990662944144363592776355440143216661764932360586092966167487204526231365213194919964649557237892643248489456668994072242840718951368201976443998472618379869510306002161858541046125951423173102222857682159648530922669361731929877565952725846531650677788125383303161448003326748502730980006815975242799589677213305977717976888844739063518909592144748108162274492904975340385200623722669214215813198743097189188421357503132751321804137605235476306264536112210501934659455595329713303515868255045792432797305460333728074297908068407456379821530714153795846127494857732050443920095485625727103621939680252784811770542924166301888043425638745909711294536385884440150945587414732779896120197119017280084367390307854361061263342191180286127161247878237212962230412019049567681758795098536561864302330186825264851220428555586846663877605463083470835185414075437287641356699023094078599211802119590149982569649739170207311236877955800780767982069149169840088601709781267739674965620642196550365027657247346768419462799761429767271968782019783633289165441074283952782067077452950252460046509330653326296725687354073381319886944477744153645555865568763471791589484519803875188498094129639643969681044568958330333469269466810525323031674119226906608034744708953805215822248608897766423564426928849128458795021578517787917471994197837755457437624745306124511367160202834910221478227495198952333049075668058268600152889555459736885965945270565282004108493558400295002457531385145745523802257286554585935936646607736056907452030682070559533214726626262794770999937073143432899806105611187303672422341948716458122921267849245662692109378399908281339600064352995062401327746989405083364541162506466333480272141602707798680207189827629976543076430298798668549576386677562035519735018881412843980473594122567419135700592997115947000953535785980604467477484309819317080995022376490845884421772549721783981679511637040394892683403725582189625823380628690559341560526572769997384603947444704210933161041232365976845326955979835585143651979571855870179975733990892022406751554635069191329299500870674425132630641356331493468586934020914135624162683117145718260095745456335237070682714975721186215285266464856016967989491622956282830910281125662722666036337212585492034522616700606451661604038846901861101665026259767490345803764460622821772080379005074131911778254008060675779744296367205017579104807838334054535969035171723937685902577284574583456570854907330071507795128608652022082894679599552829031588289032432848562129927916560967369018269585131267889942489460966590961935903518057541722671500695088193834745244352227518451501145688067989246861524859405765316376333108076721488404295565480472449569332047488077838177181647648507402058351200495598876492294273517051602794971891285515486899630955822117314499979416462177216491198493642500203414143370830676320697791075837913219737850136947868242076480256738646804936951672880858883815562809401574695138778855521812891968108082488036139284877732521209635366096189590091712802416755880434553898044126520909894951454420918648824985681595937857750309733198394863137325011240956086186826649231233590951007104894388718574080535329590226729082163820413913930128498532894698325888740474806573788360129498019072964158324852282660366932558775191543445433066456943829919194708666092935228585158668006844461951278597175222358131009902429977221832212755659635166665300732069470589428413078467356003419408176772507645899690316757812237386430403042454368481291863287552958317224646996106519827813396777722689662939801549779272973045891074403414260344525667137680807719730563210347156450742761433326899823594198533947884852314563866240242795135145141031203133241869223591954252061935868098049074881439860740394215751655669420003322827654001497034847705540324884336012371257570396562528687330708128068115559802430708537094507733784045940121488682941192489161550990298143744437164645901292661451923520127303258300097860685962374431454408653743623158241966082388120211751171681208524658035875239067557894910323038388718594703029820907145089276902343035955490108473017916011580538714185120358665927828899908621928581878232326367574809671085030199691009337117382382495428898700227169766611759570521563905508431473717192245548212606237972268435643535274276224089761318104078548825060883452048838068455899611417889127934450161933988724047861529489253305692071228586451786273206134363521513567622017362015923523620926931373789048702052708203326109340913243017573725597033221239481932204854515655147441775276143209068777618444551074954715616719854865909597478727335013084386528520046829043640892134401841209884892874026082127820264334309761462553228538644575708003653988883990629340117904891862167881273835703122144677276173424078936421851080410744389231844134081073084955263319076111682756436209657566719933978062611640066450396408670910020674127341827260905940593466343904514040210648106602089467033055019702711312189206198448362411674081618982904106500362255883524182255197540968767573705017005522331777248123076345810412008708634836875745145256271851604959662438990037577373328107788384287794270025241321933401825596154113641691168277290452537616347394642766241110576599927113024327756411311607686505749044241847077685152577309679194434895961446269616737270611835692356842369986795130026506799690134769915564441108771415349611532379177197836399636509340397549811430482315889926429498403158642180450684540100036666999813641703740206081018259461879279165933081429813846651120272326963347905918385651533240758135979997360749377656726160356061435703407819319618717028804900345098977209622654624863974606756853091341480383826498946200268609641882820088772480017307876813318825887274083839599809233128972222021471714037035481328786038963911700977810398992878722828655090510470727957503188236319126432291866953123372022524580083496113456331921299619851436534339374697223253465167796520677288224725378120945358494831926015411599277126583376006632179404561294227761418067518013640708776993072541504863017579485122232607770358751670636840826245089563769606224313179916714143221296407417768947724850175560458889473337389083883885575656392695086320049983723883870317003365102667588923790468877292511496518749073869512016326719718326214049609882439495309866961264068612475130200975358060570972478946846384657688487610156723057952040104030309729262520800425941235773747764059519128100959252356898543438630607652471612557471149010540871400774916134203488296975678094080540336943980467946624872803802131180312755876680872211382680157566913470417700572361469586647815496878333699284052086389968053888754326533805941464286653450507367921404013890472855298627604368567419745815786673694899218114096076783219600923445027160634079049602006827290983956623919642427974480233376155772440597908159133208170561322829970476602675024121106261907973589339463735843675205228840174572710494738818537271835076048987308060830220725255500185064961403091336603845526280144476785239228369540575629040142918889256268129511349700016433820036635358340291959885221361407412101302712295428995546060574421238393813486671979912500132658816585322329716917891713335681355334015134151413882071120197291543770691145165242093150431551970246904869688044065435626655929231773710155486001352344063376048096050244244288948108196283614679667979160519170438568401707509553587556465769569331375076223695907159260937077635978243236566576509523683802352757763553059871908178384382456412090663307958622971903202315932297343846527652674937243788516830836195074211780238671179989337390595764919257969303804041784345066017421967252297233138392125386136914925065049403266609410210884776981433964374234194650965668224979944097062761605397876112692747534409736280883501516629984849463211122508027995241225026893673714488545943379343694382741666292958394481230312996664339698334908813930985300130093662189518879237773563229576773986423759376715945737011100827003040914301579164544691784787745141765596433594684911835272890222651756444147574731435305608072233326285263716742316348685832072430234165659515826876992873018339976270914108240027702843826502171353147070541190841384428179432591373368760516685789447014419265571938604504933446001778189887447373457330524147070361750862188805930092794435056014128622508965623103132739771837403056468184147779544707991499807567547951425578901573680319802483062190922519208441536646696591987641984092169578557275215214884875713176886230385910907382820631462237674263458920291287721329132647649991607605471960475770643057102903326989743589352271510598073942251032730945177118268265521507355530737553737073827437801102775757245097943925042477595591095914435331048669533121182358587414056257444709484731192253720638230576922532726853541943457529789750739437406903011134443951143285838702683319480735248629492001351270759353808291594772490595323337308789132686107676317293687266258742242820323202155717542711256826666287430940893655434150021884501519104999216436341090390784616213684253449829630736677957275758044272070129286132017551095558046600559485780948811105196941896547877060887069999397798857924487488433019362401452585097091817586921219126743574823825214320467706358161725328346646230715226570382205787318954878101502427635680701529546855479373060232465158794279221970191957215777289787431337547180560131373312478169720985238507091905062656348013450813033283173370977964440050276609158964094247143674104866278716487850806948629102827974137762056933775709740819618198956776495396710276671700926514449913676151956316110489476765866700707367785473709243169084689325702756591177224391780630716115248535593421511287830646469014994733047714799553032658910884045260325836268659321957566775548269963406327402927399822097406473857309444344849625969763135612797385954560551504227327109598631401741021732382192159117263978540615541973639059122186039724358282580149609027138675240413522067247769208536880529630868876623496131413236113983412391996086468735444839376650521256036724864882747770438344197295812678196782536559548454260579425480517831247589597257912939711263453199084654404976859355314304991499855795231296506286519055945863178915286145937581858333724401034659443659956521003177859085493165742000350048479640595221493449177681989785292546834233602251103928717584666520280323699064179909992661956895748817589688939312523271377425624878586391339065979106846821115281769593850365853933034558423550229721767690696485008176684915982681613358177592258673058631731653570411975800788447038325005795782315319632548900662268855993175895207953481072035033976202270559577992621113370692518834352562990209761311438270746288317500925664100669276545575940037343155826749188142054031572987283397478291286801416686297374015376995442955715193712364421763792028058431628366732393558506818587411160152442138313243895915615926019855477564366782262510884751956881483495744384760141178997785230544941715530187766445055928656990760860426311772514976825236853808965506914150419364731916975150451376743873050242524672944768534819207579357828979327638365095775901775478305532458053937887208380526126103011771161581518225090168285105112989281375376143812405283767861622518506274911170498021897433066902845088105544975786862568746760322807539195110438744102109299631857445485647748403882812458470092267341944282055209827347844151074549255114414957337480660359735124791196153490448853458738562750201702702719557481131823014447476708496104316691673790479382832547715461711800789759823574684305303331214837571492320882741232447299437627072934036030670509651672579829074663795724341209458062034300196849526777887093504484394830115018801967309903985023983227021161681249955639149541497512264932362340851314598740225396128067522993991555479423591773392793068809162816323576564954545242896841863734893220884303909861845086107960075830821468441096178692388286468705276614211472003678118057516141451612949443923604670260858350983982652078627555052264225680874850728372168479184186513915316369345270932874946904067108685468647812070873432136875665542615756684925841173674352423264795502227209137900914247996496281620659475969663448052879449981691250748105496487268929355953847967163664692040662172390518170512233911223997520969884681206719796030641293428066264308546230982070743391821108941290527511281670175457306950256515062665075475887680467684541971154448202250069328945085175068611934590626836769096502738110035203300389775787071570587976465356124943418756364339970031647405113329403637650468215698890554926072202276609815693133632547188431770853572139642361447390277337565088595952838234598810296262170027357027042648347741203185188498005967723487854322238179488176260977570400614468910067020461439016703882856460920075789779515762953845731677690486166890595650908878796778320888327791233407954524645621199034750274090338277388608445413912631576132487874785770801358260352932567827351016502910345248912693497554586668966736879677839566771335240700581724767916109885416948868936608120076563036581820745773382141258846864497800980272433073872586392644402785493295047855431540791247361181464300804214034644079263444437664717720926418402117123265048884313157824179298662064427006169689037816698241865243480538009334983500643914003924194554482240112318750225206853311368356496659428883382427958260394670295166767020388770474982526439759439690820203921193272489503758106337524054920713993061740600446254905291384271483251147638285989818073316300782820673068033548507992307602867331180511218161398980484489057149384550789575282374208049964840478780597606295956537600983096009427578121148770312146498345838554647222994897873393077036517461681362564700000874021656627458303493642531080524599414180144369111857419250060631279728991443614888405251024363882631371094264381029502868366336763754056100844199146312953112550221464681163496537953759631944583468022048794493334941191969895274451154474101754430528991080397598122717398230078042004798472079124374085921674012313731561159848373200262393726461590739037545085961044842541400486489387472611656635575947037375129845670212916770431467823400177331372159921442905905233968207072375347050558698331278240548234774742216804429277794384431798804444009408741287495459857299306855010957081748113369493702923308462301390800801370206394440819571884541333725363775114566852670226163814953710061176432743068153057422239288717362718168913304419467921882103682692722813068090418405226805959422134700663906644507912984921604356112372850777979666107001411492763281513490195079424247889499094933461414039219962918013357882420090891758336970952669590904638935048573948621648487437131212755759116346724718120449508456817182506044822179024829636459624354794864321379237849759396995744780757336813496086329504003592768090070723638944231475743865788464510049722654864873597679581276512224700355085625190361759588643590867760200451476657746104455435699992542831718184416950549191421049965000937114490555778554047038765677646121761764510774681417015790689664640006425096560901081864561105667058099759023102488357474664619695604394082529037746909703617230196587148631934965979215868622030958251580008981679566810752419740502659019074437249077607033592711370444382795691660558984977834731020354772967972982706642339752745704077952882952383138595481362798548203722025021077989153417381425432937481347521495537634746148332900616393104878228863754031674031413076287283763689210333571595751299827765410832904630902729230743496126751976665409459987526658391533171624286016236055621243564359772171951583567728310125395203927585011677956113951661394479465262413589460876210961220297677730723728246798957997678404608315782455822918976839326855233043889919197541358913663076665587587096397223039649080611251949567796742562432643117733402753283332307188465989447644427216355645773646523754470796030489626165683472742251893774639707928519520472565780314368677159119396966476578306706572512858356119837251509211680758505186860666658032883367773000484869079082801172676042050722757145380956784722722571894509215534018103827083335387710395624295278598166776467462313349160781767281557152055690181915046207790316024142863203534586819927067828343006428175136069253700447135342115832874264632855699844939850270332181028607759118814754552583028825030453211692857589323258061072020013396499040216037419346340298937468609054168302079508115180310405891442677973687354079831209214995628930613279519772314630644433256654456845351942681639871902754025563864423205376382813128999368982270070265612078562223580730045548714312934703170287387859097758556733377793675049586034304270851869592879881859127008783756539085250647663440413604956742543306698640366321884145831575253440559784114789800355762355583578793114189725674361805600073859104324866655741551050438757235381858493865241498888994667853279116656403620882668725474460981689296441067301031637296823294485271399690124162936958636099228123559070042236913983481844642943367965744069851390885795029544311033771036248151688693518667155997437502214519399981022960162351368322915959324015832579039185431354682592028298505224923586555228423543586849551182531535789012009585920912336121275491483934972411744776382860385019094556232179908495889295865175532381157599843262772781351548892763098326652197519608705433218301496671333846076136411563801292014200762968735027667160644055339812932167943670007382388131778371239899826791796938942635989213937975063174724821413735303295809163807136381955904708084573068635257001714843377745056458606584906869162418043328144860807591161664929791413295062539011954173044704644589953267902324521712709237756150892465487699123128180878007512726969343062107492840540258307119107915087123864281228129915576234825864317209207632254265948742016593951170931944682091792284022487774988053909483167475334353639867500875287831009589665869753616014764938323297772161573390472363955778233517180888187649809458821986597721675140395598103071431347515038274639192940059451858056289818907890472937495749453568413429860134106961513491499823402201617175439873285845352849797231191014878303618122313440643107667428226530083817362551979634391064620081844331529006954078207392441919923489413477800807324521614452682564254349973104262139571157883629325660963827638576898190298609708823527425686662130375155244958058334555753972349138264278910652447232764303792871911376923409187245931466011418769468365110803087049899725066221389685905672803826621559608684173289360342700619846438165620358053224800698055071127938283011124613376073090309473922112264244722334667463977080673048771600266298258828457754163932150052154751314835012657572306191412018794918993126559691040436098360672688028617771799244087403659051740411248043780678932426853536697270991551008214323035791966660002614573048057981329283031465552604580913554491105557619556815260717375147127906479370835220704370673443795374491669726798993526194172300397190528704171117836192518049492469621515379581234063148180371590133491532216808066439010180703196433125553889110985476605242998535174205761606568126230847135468642438882686880141244253970727706944070388392875509408906929462983234991320877472954223198958817360467186453707426062946837842359476022373906206322990403367888071217269189102746563317786531139691139909219038806285933560704450705496777321897716386026476165792326550848984085956766300220092071406294044233961593586930928502221475153834384079422353258563954578140088827192007018508470570128474487468595851420402824052845850633660575545829972084771965956215293876513324460938782846141465828693750652351037236973790934961679158426358290643038098356805137080190889435772124198153190527648942218815701851272221739439433142141748131064956752765493541398331611242817225749146106448531269344848087743860482385468191596152958883597373778125225083894899810888795987470093632773441071257352412113140041454084135284791266506984431837866168819878959801461615661398537763390770254849549669211465943844672147165043383285356904049112515510316351770921682872917917106504894677638556703590543045847587079822314185366825137576827220159441114989692841870435105207077326432063965730074707903183165017622203323496996391396158608122415916748607772234050061171586903016853403915654588330383807867460227131050716587421813406275477985807628946068903052334959274587396726108193615189254457756791991164737623320685476048280112026406644831822584056628448314143222170365531613055803976666303535892563875717809794435553769320087582256838880329318742097482445033262929930040069030037990974856272220918775679933655054000066826618945106366773311853447539183666564732592424063684448951792166101630546745428936189170325375776968580231883199124310113209660593054956082775609555713852617054091717216931130545729261621030713091854615298815346618502514259104471903108269952587953390107092314513958406861713663533279499206175215040429432044010959607387515826005527293099662688506186602264105553398785022614532985112859992285424673768677858703577536753018084173198249174896269972491707061702959706277644710871161030801812197930363317255959214484913514620559941853982430745494682618326724034726315425745479347419946566977152664666457259284168881824732573594138991261532397697979431594600921294735379964887766853889193958697895091095786489119263812723351463869729846799855857443101842974555793877587222856672137179270046435189064671424652389638989665206062071358487804929011917344501579791503011060196598818306390512856149315366945514712256650037008716326785150368243244656250116744502296764291167225761691805608921769264223414380176365306421589481225203076503147855032558137015937730978358505175489433571988460812182695558450187288934571561774698482610635135416786503122311483461638055960479126495632209246876226117220680493523018754241209063647476867344564583470270794444232192876032056830764097507203654259629714906914081833341278151393340385347695641643677284691626440257480238603419861490515672865651389852240991993970785797056819086410060149593550281779533823360853514989177070266504466865934499409678614501574712148643170006385159500162445121242089417574167051541759476971810986026951476270970424724900628963711903124394333871199478573323141496703799155267095050173655065406227550715337476791963938339112558632486931899545996359258792238479299403858403097939280447072279262654287451666162431465583314520166904647110457922535470074393131787575957270188895947191188944582950295122405319536916459172173236331829571534156452340275365981292691261067200020841055181308531255539443561946013229324923795253184324133465993775717548823479727700051426595002650007367184326208544067913456737727742373400203694389545204397077858348199573575055534114866776155019351535080777208783616943824383317722916896026668414319942028860029654939106913187814673612869409767490913820880491618446100943085278863931681034598026345283344343684478310365193127393823207780973506207371672837540735641292172163574582892780251956322582775311902820515056620418207247867084202612601376548001989327820068561634734311981928470734184321579337507301760097437137219123789294177250314680502513919684340957752363626802083161585381652617833932008186547731768373348200338237812275146159754267019189537484721814163415711733074363367844422440353896913867550355904437208381849586006659540679661860303469656438547287483117475386676170780708636487156635521705689956212370187397518048548570107220747655191161210502536017717685990592836772296018660679117628566063480621296873768298232560146433424659249836250653756709401446417269613568737206420785485428681814670507220356751455249649514370739559408085435646405531734260881426915566896911286770930351656970056994940043858515053127669623438657677733133632840039855189794372837673996277505209168172201328903411436333948248411423496886979866178233529773669484839653981943837024143315392363092789560927616890180533907726582437068455161768469488808824817911541297038079850510905683215528617206278702401301446406857702594382049974456964421617060126570832001982188550070804606176801720124816507560844598108011682746444061893141605602751935861215108878522783717535767060208452427106765122667149438684606362345141649238855058018647633508563887458603783541830128552603965113085708416921401466748494438566628420766896959156869751788497893321761047723320876638193931274397474169411511486536660037781356871980414014202255621800387732711047457523588224598143339777730067200517593389653699931374899298045314716131662479786007112504644696008388881801923200619531277809734762726526509954090036408278093429382573324186125659824199259644527237176731840470590938550565658800136046701055272187467249469474992317341154886259545385977933169554603566249173374844968221548194108263730021263642609144864308958952082247402146319623409465880616068313852585976059649515344370181415805773186146777758869263782554137332643930247988773918218215778494125420643546972862840312368916842063776361270290007608776925699321029964625713024231454647253919014270102386070959671932271013467759264790580323252661846739773099333939907538873585785299322289801677166353969306134857156161793381334810502804043655580747480000024987776308318181522838838246840910035100867672185807516281031001893034151616116788774364202864517961834137661145126265256174739768888705824946599062338742928589300722765825278131221971144469669897173691867476165238037079297103598640919561605427286453366100407453290252466556594090896993814607050049318782190717847322030290269236226410923183100427994995586387876629717693799689292297080400387966222646030260662641344070773934850174990592946960447430771335138378499164519144016272385972091854997175216513793443337829170019660069124473286718003735597522159141340955350033417994614664677824233524926871081732364155489380603937398184062289676730461394324618553437553085239449625372460023387652518775646921786886024923246497568275206024086897528888591649612557843607582198655297419282411988099946624469385636830889846495234532123504645943351434211567588679128410228119172342804157255414579640263718656079326738227464956752122829453122864318426777799531860203461667113106458445053633486408680335625429556468083717067041575293451600086438813703184707831470996304003433428145412754694247779853838993674928584180055357259096081465973877486850837835820084663971526121441284713121872314642951892281654728798405778102824704540553036677103481393718256357266261870642429192232369166715512086010522806513959732537735720122718657706858398735623989704130291396722358998194987264117562375613802139294967323756244657352340047974424953902011938900704803131300371844749157318228930556465820131483038946117005388959671590865522039560717503606254783633185915678252689802266951873288460096037606759146389224337123474451819924866577603991324796363132058699101147984824572046575042262220591593028445175953452174295003209835835483663572248092858495504744680881893136419119214605845822937091679669823843019120471853725338527787562249323083311093007949863968372839940475765997008415642805611921136108455559391815955679482732217521075671791801650347134020101666179881697136465564977975396695194304827679032226306747258173411614060768062218988637811626555357332569494559496273962967754131203129688820745219578277878292294595067713745823235776273565828123129908474424629360677221952001715313393380466151859456029357382048361306540209536518502138516529372025193852400500662362029029031862607979141015768060531994717055556677168180946708438554559817780336908623220249514468164698508726903803432279879584613276413240710720666252443477510810946267332305490087594320169295897315259702397817452490974757214483441939488941032441099463442951691148469176213101612324842046987066100506582645281809915335588297475696296359891075062335153384582242580388120822642397358259678117027512110013969261203600600512981588786601933942818486033002813305484630829034666646712723849210726225886113664987876169153303999481460498229695692447088784256872990356298899109952896650797003284833772843541357510243877876328275283718959612388513891211288165837958042436239072855028823225709616962142758610470145564692582546104851736099033893335539449100772493422426707323511702700858691954236833324587660414990914943049754220923125290799877994846351130109162520280280446737812825065795950417944678847282564638304306722061724958877064907608582187675768703179590233595431116209714551395621686264949713590287836625098720870963190600494738294215564843781932687464174861746786835130592856856148656558600397574357323954791730149468196451941858004971590716336129115459924063756856093856219174680828549100257798934858215250241152158529915380275513939335357841100612129208319705752431066802586227720223890278754321043771073581846544276228189689414691818655203978397519768979584019604511949217404749986005697609097828109336485939926934858196376359834280495908822568489977391881569015516664254539119704444740875905038981998124331570534947757240108528598173229143441248421560710681604731554424192842963086389182913314622907632066659138153522720873719782857516248137082765773557301428938345351320683005312919548492567456335701650792564439045891611565861025557240932659660956270167497226019425093192966049882628742953544116339016616791971543442134996938352182262530680780066627768540153230539315895624254603147881950997537550471142384755128670534238105303698565965644950393566683894696034269532080436527938653240921802649014355893191093467937417040931537036169062560498599413984205220785643815209121947290986332296201557219331261183437786855456632644590625684323326546245758716704177085296580938627830662597125381151373624745843127700547713623200009092737432440947454280512473797009137082640146850612586389572085302487919746620428973940644908941171304465095796405564039360840903054533587598075649179228299145772684357347390828986980870676207234012738448099468743631294790235038889382526161672449320771872314171693508197183277318378669590450602260653607175910554120427146171892081116711841740429658741026490319322506721157990588885199593720264856810798573869417885179533705303907049384514431509195117105756715746395602105358534739998589815038681682149727376905996764110094261651613491937487845715171893643632873612404718359610286151216860138850728569873867187391388370538170428454074369345313543672143468257948619538213336503347438109224643693431802503337538990197888589744374790015218037803460445059716961809480132142238615009743841357714128857261707383365711270073391143695121793648859118622692907239109665455970608525532878337225901435908593313059261926259117902809519677204711206273016004150245840245186254753606718649000253135942119278206347497323505544227429504504349278837707672478534463088163033028188670321531830301316734086476526925327046626354301383888493664550151147320762408657247556391725529546899879662720094026004866170766074104252579543020943365750016764871808908426105932299703994380578192414828646089416320207712232669615842402234855341750920002638308202101939504705953463863004712277242354788780472533615439541132127179237813918485086959224384448128311817692872056399112043771528286497146025133879401076554486658162108410872724757056340938571289176543422933021108330631376463604414805378198712691828650825385012512667493482734042466968479000590668976113703224116863853279924739951573641682614768650836462120926549133482050762743683701881542566966940265507261509661032361199514395318664519587288071804048351691336243018926730555782525809156135998960913516912149934882547528315020443054303702184057625064618699885759617262583808143618721835571551897669100665721340667211151634763634711011587275675339001228610026558086378505840297901506305867654284908136811404410918380604817201186286654175476728778774120274271792819831168275831259841691139425550296367210899836017541181985077735493682228257242274477335306550280387490442400119316288361764385165146328561487427842991563123774521104100014675562389568276729065167508939254901804509393492352701171321595386327152723793480065875778834899569375175061832525797388478723420521602368629001747434716910262426263595535817654992401606753988043658218397891930531173879663556527069235928685536118928162469418457286670029917985675537485443398425810209422619675754851278741787802022616998174389820849288169894065337691928062414434694220827318720813944645912285405217866083707872360816857209505281302160117236997806000203486188089240237908908037703506231788297873168200627725041125747070435256889566560153947637056228009414802962873026364204908331418175015040342851984457996344643190619651690753702357894594941942992104178299063365831305027845003620727513977366135579166190339228234888015322744437615575784785141203372685034183168669201265795939005449897142737525401346631598028834862803672843256421899005245549408064080708155349096257635012041699208453422288046768767501330606686748580154302125898134139735677768277322356309467168393415239640215418954295807926761421710397535574810336679450892811898709076257979451319503235615452234061566019909576094018777816952781353910095409884637402607176001550402696324192289082788009364062866886905545293481160163212939541406712022476100651869259349464479373246154121759204819723347065766698357615604836617640559872055326022324106388427287303871604651332115652822067381878613583418580633304851154414323670041804940031245868496363504277542565943652355379700425075986962935949672878287861516204064567197864933843353134064169589839469306327511742199727948291579864454646306706919111872304095073691752606126531204089076426806717083535010299031098478183571861958582324330174479617702913073431580744549710763432397338808096724572041239812547918992261078051941879754752586246927481501244213450928162147502224217497771024132003501546523630314583384037653068160949553237631355899815621753639299333895058781080505816369715272093801468202775858220291653917023681858683185188062223829407571783732823851270295658872874419430067725127963579271738590479144908090237743803622238189689728026339753934515142704066649497477617549986584147762336541239915257863747226318371590345616057751554973912697103726757666888427803607573695226119617989419180091902956111939158798999705070878172581753639313210916779274694893065163041394583598521413475007450078714223781650452544824628150968537820882188368776807220011855365539252954880458792266249886228788668387927504975508951420416993698162864528982029367102952890095900326456543725578040184055236853268850304165563516889969967409210171336717377689755552857005089870262598991922499183816997391624638974530110925766068625467128002856634519194767963401730358404998554039022469358860855011119476823104451843854883131647237962878992674346583432271203701076447770639936252370590063323979240231145060056066124605115529022292783385355552397305437552976230089068648791963549428674547403839796410806977806265915535736476552612246221228080275709110762499750863924796542252946705424679464012217985703471131343064317179469002127913730486430204353166742872567462272826637882248030271590390749912877424185699961172812775126878815491700274115994053200632809030281289246823868862416657242241779332751283090546503662688987932605657111174872511882741358759182333357071571346584984550475982284256581699005232171765985006975083533150032366751222546549681187297786575148828771908202212018005781190554009977133673613184483567475161789247577716132239164516397441377950184681554223886216847518400309865922689916944133996734376773450979616797185265643743226778811263064626592792849153594363803692074613459688957099017154505134869200238381391014983612297256017686781892215287689914817113357846611361700316729952288259021394196527478965184975796423342642809567523973848629256326914604428158070504158835136126921385574799957871760349495291602641175589866729614159663424052040857494787905669547329354604692350318116542781073679880809524064087705663176823856380329684732984867770899607274205517279654992218213492974341125431833388468864988815277692649262234509589868086580216361576403474117410646997945761040126686191411696196230218732845950149350657962979844276424619982804598293669459552044765991506484557244188810984590305440430361867311581054029454937999572652472809380066185154076148938061562267548488497781907437472002408519044443723046312517349304340464980741392103666297940324316431174459197895840629413164397662538197765361839133308786779234483116939280611515053198153200500620311160045984751013690696514192006624193725766178095442012768538255871056778725248173734386672957826311464362980319842985558662003713647088453004705662337026383564565671133583316680415886737039363707248042279262925377450638394122176385892914346806573161400530218882367358389223270700751533689069987705066295019697966543865495715195051217020993317808571834487374555013537679777026823452246857704548293236877005317517116194379106325397145679376771560240118743053213102061735948288615029016879215127077679361901384683632466516265257842444742665734445374928948585981553230502330349288287926653275384648267836883611555710727265443671081517288314874717987959045498679922176547033278617979791479099749347514873443788283066630473369894596247471144618964523379626632460489348307146321169116044409827347415855193502647159979907454260852998237287594034678413960117456219472169772514306305397753600974067477518796996200798362621294295517298406869190950223323980102162274681766946761450021056682017214109621597389710680141867453406736619093840241993437553544954461877121540969093024573101025022386332369347571500270333213853777687029999391722055096680449400718869067910926707231291605415760918620095435618688447594898104417910967331355042902174248892581795730874872809788340414125934559177175922833263849748718709664195894790931831455469760741275851986026939690649438064974017689413531363211933075216773486714504523049004785306775676199305048260588377578896418198272176728288781484518157552807763935377863296475937295069336109366467932123159231256156399593102971470531323740495165659713528838420286595667887202884849235486840707231989729599990457898260350356841389530536416264176907467418530271002482042779287359369657712458537964511124645413138442980113100180075984547168751347649046733267047096569979789184078341093266495512052206064489971225503648109409146317757479916890403447932388349026196042766754388311420681087710316817011468875570643956395096187246872533200472790904953818480047619565236793297511265181445740173064733710057033728373624526902524978109841223732374445972630941796384515811577280134776169052932769736210802759068106201053158132233744705349251765062323698644403954279355553634760423560759744324509165646314659490834515220041479365029240205442382979647837826297091252231756974856138323475740386293679721736261372587852065188651142642632188256837580352950058835018238775543054150835400916230661611218652698628526133790960124829266514607909449021218549711084824173688410844600823576126038772791381207048139823330615100748646351219483477261715725470891800204067046535977875758943870931072423038713876050562292121107967386079179724432369163003351809705519958110297899451810024815908256415111794882718576120052262945148245991423738950914417021204070539014551584541808261527849242936900518703504648791216047800186750865695679132228976541307735545229089531854878172661303946785007212649492680801030020924762565853979884689907011232521609568795341925013335553503799899855340428074109575889043041177209576712061645643854424992160167081097618998821382051067312777184126487242831814354654442853717044129801036048465341529886619547940351907461834750507691789444457249031891353199353107262524337068092003803360427518809173298114054558162230919429899147450645367383398936339003226299681726079824096077521968507214212068581105942903755714569746239014845947714189250498183063520501711365807694582110148710312524928203547093758429879203268749281419156250418687991714830347196426409011948743766360740273826140974059676234894887254249866891194546396364211371459534829400982029906950461073432713442541339374313416148418570100280053978312163970528375291382196245132535442951964410131282839628509978707156879533995164126989287105864372863089925687379506532531228282299142958793344399581286216879257093440720147984361573708785259619251367993632497711790718858988024490172333566643793019404191368384141109272749792167171446963011772167472550668415544983830535054278850448635857191800814106491850394449641648880879480929297067066134908341766525406413618412707024318949766951883044644285066824905746582188002275706211155863227427411247223805508253279835551135558069088771151919469943513741185153971803118687471097016074012923509463780704995948553229259598846791153908238911722994544639671192072301941233140016655077999213424507286452278773059542111739155491711731094533050390752698704504190835158391768104982935509791451678257328623075392626609175998052398651844201818459363757139145741785149080147495042633667728362545189327105928863229520674887374998922990347164537829033709153075923426391681512136263738499351253623859047701622458356059065288854210038775360798374676897746075194839130130456102373159265718307807092415194980301959504645982948636894636714545357594935827714041046437597334002930435255263419438954708066015403636318213825948409753374267377057254736710246913572550903980694154428794958811564416338692534024801247850628942770375877694428713826636864554600854197416382143250471985913177352528249274825308061724058139731417800458364291543417365987035184087853420786627065918507448302203452387442121625032010069314007307965404733707277536740534085187217123108202804164510940664360320562189018011607216955205200487856454892090433806257475448293119796660246160937636595171652285626880679650729688115970336576809133823874324629742424811510308755718896892073843363297504743642005387341508412513149001274521048498123433218132175689073257904553979644010610466520195941444986817532960908686194288535267497573083614393711460716251414650905270567941959461326296162496444337495937786472999264776847349011677493460477045240809205865204689815725798755920654340034654604267321395146438498897788437037205221464388406956466512552053399473276216838836076883220269172100995302055884255806188370414348097901646303275997971401995287678800072354957109238853732613396703907137027924475125125714325887687164086831801395640649950852574938539333094644817286783706400783077861655896466964208896861668477191927179687656588311201017977174178380039705776900775304829081724576465843117287680780879810412131760207216526676082050119187885304635053085576788206266436213475675469493411159146135443864781762005737149787716066095238684772574996827004283432195035775827589474269890890421499458802167740363120938717386600578841180692641369686445538499483703087842844907590369858456822863022672207124757162280196769903149686849293367087325811190044967751747435079993134525959269506148707770607579028367359622039731268146642934768801654326370961442365933408340574672995673550140802259052253654428449619013196738544843660601838458794609022174335809351471329268275515051330830465817654748489782466291716567939387930629650125742170760248611733663936144416155304002896325617589393580228669343608030784955016142416247869966266441590844131360798366565065282118796256514567302037596041137586564137638354011463463409820536935391444150159875726437581557114679643818634296710547235827666487766008470550025338614904826642338671345608348500565253104128576978880852178238051276224340398918262217135608770112750913497006286024491278787067641617123139497382399164132517429383540517407354622191684748290874612077396703991802470881858854294334218344490729231885217749684615374272531687013844495530360189763589564556568578419799137817503074551363733055745497396466540303282715745534292385351686350311210842812262990594857401558633995541732498396236311485713114314998335873594170822691175439387496416572528226794584115491712147395195332244626964178269368497189079156447190822593515114253995979466430795741948242288065578268306213993308256058601251980342289751817968885545982653172357162600506708410308663739563774689936037778240463050071932078105399854068214228147710781493349017651698623059181361359097211300566223726384973135278249596798805713790228933462795951396430340886098148078723301957785136877508567024379724836103967475173411247190683976329574302045192872841533671212200969897069644147198221168993399561270806894713911697294922430131289710732529767158771718565679100782717492719542608455494896998202552166859303106801175890519082340441883185524791378145704108429133986258005424590097881946101302947174165512350192634789007672738362763136821725087472967752217875607312155983756280750644463176110954569200266173085591046828794014568355142975982780160939792875100879110563951237110868655781550571404387505747085755796182550740019742421037622997840089869521006281162107039103064028495577932949143310127175527918432944753472204263728896588068067072301946015721845659776000101514222932589368462815794063205443473087787683164430633577548862308203243145034822861246622149528322003095911144994331841237651611340597942887082249881238012656954988067294039285315909393987420541972042776724036182114223789884023546159677752713902822542789972320423710895812047721183105356009443310308139893926631909456111189469144267837740951214573127644231367477740110074589742882213979800740594510598304268967144297387830385761481402841144844613707282265053826732835028384861847664762709632057792885684126862328131618702180671497561901585143971728805125046038702643054923423324764155816898599033793830154038732370100592393088604227280687623187900572910986384106157891247559845928022009748341610647832444700677443830540009832258970484184831756851553108297244734556263246894436284406173162564387444249944226545108532159617619757036296671893789508256394260016680127036681384383763786012396759884161523888351345538752185282089131915154102850237589079435333359351219607772974126333734907118862386838666051639517443126002727974301215898086176108543518146114864170440851805665955622617209331547419603501958276135347761428590203523058058260643605306902998191855433231487064450588194520132535614413884249737906408963279909455949270429654739827080102285416637365705848489556367261086600252199524989367471059680264076934031187282044840383986998298022507286505931228526941032197025090177304728200768488768763092177606289193393238779054341017225430997532813564647504737500559601200975744566432246552433655695444516685579546634034879544163546112030839996915536121238241817561174819362890126789711407235335316808527328786172692991964958128785143738949826463789760004215590345859864682602892407275364928830532124331174623542327064755375233681738683917111751019169008602112688946806846148365023671591284513247664256295147471891327434826969875045339778877306204457192520871489320440163216650201970722315071582438294955126221212228083963324727081589336989424566456644856156076945303631645256961120002064163823297713704127192285530392013533495262082414513335697814882794727480189467485531448225934925109812266102287497937082865233102048428564246405038955731298333714305175678940042910793712290468775595417697764864293477978369040194454856591093393131334614321945754409840572503906062000734212099443631656993086314585238723355471930832809570588473246988998460654662202553158717412746109613901999403937162442087764971021784569522388935665869319988768173267040650433991194343138464038730774190241122407120554356386483351880852636221950191253127139123746939834853889837536207990325327873898778169697646636102030350636673508767047129648460285912858460422168943897591816473378314615428099805971631258386558344816834793420364992051651100523090500921733061373660840122911876634590641219413686414837261624120072851781196573199607895662314000593953395155671864739501382825104205621400846892967955833774514663718625163393428442744889675991686122957511732378421758533445252819922470544544266312686320688390150183713036020041227090766222015630948384634201606196685007774253052406966040272687912219553889664591302385402971333054709365501630198330481018970346664600471673005315471094080498478374281458919197201886269544373928010545623466012492711940873607723834661750438857081331352117199878717663394809396617588896833445174880462221062372454753130880549492865479331879799390198280882605801912907565169507090688194019642220955747527054365961179507921899989227419037724381151585063771452851374152366990515476621203262999775899704599026198131728912391152935014169673842420872224555967398973812294819100901606564599694137226738005753796537835200696908398743613343357592236463546538972198001817949774343242704983743818094782366308098363776697471974468445366049646376763867023451303850041319745300608789297920236747012974703664971276334160399490201676467239565573011107964273140013794755123494179475636930310806436286789992467797959749808568452093346132958920132473350803073180136382259574141524422990759725851644134232662590699360938928175836057583194462137455965751709111939755360953850656615088545801534264891818336528001993250488940713781863499154294789387537842213891155846859493545443673530815898760009271823546669331835845556839715983159401587831154169063014721152794228577920492479623499742459444746969388112590993958320257666969770933372729537589057848011626543693477993117867461269476345513900723287335526188501285050213323448798501877391040591878126525277843151342787599518863703023118402764617099397667155714824605579600838486408825957461018568632953611752500505588471894798211462867468275461698736796670034224932403661125855627983149311314296609949852955656900928483204436552098863816783179601441502808152000979922723768082079833471299747335262869897004605690783404924107007615775549495937066101003320221610633849650742969368025378558624596704671003230179984489204898749695315073208293316983320295702331654418855363408325786877318682680905248625136584904789210430559421707812039035685177233396023596871073295312176683654992587963295758040786717537698396618906515772546898175077276380747067187288253469175557285815265349236050915813899455045765017701696129056498832303204460894932886043723676142200333290730509796276948997207956473303487048138433456168572930557634686248730311166181182646713283802143074187235952502775226174033418883815130865458894360062681332037956098650051546746312321637904950481219353308431912195729942006102190104878045089762648270910959390296318597917726452230679213133467377914518473977023274318975356402465589540117186248468266093158098780360938309578254567161442132998225988470724606614803967340180161030351047392154288560628699811994038669191225412469143947177214974159513976928661206759057019826370158098068076665223003950305822720375873139839489524274272500079502808578047840693652709025172951223234895682750220321402981521102744437982655496932991190652198252610940222799039962111121519710166506168414698274751352422015687804451768342449883978646735663749802887007353967628338151465822445749499296347929446660001378019763881617092825301424288346502112869409772753033427624785553082755827357616891894661955315092153454649693429111187369889719820977055754334236890669570767982164023285655171118594707415607444369171992564864691329520472617631829116600997654301707766308575802186044198390751146594498274814400537449727652741664902011646627424239272538709601268228246682633631897045755989571335253292991995653763307742452067612148070129561611603683275390130044208299403584923675341247296404624005791293532831161536937600131900189021319167599985984069211095776166032701439865394612974785672933526092625148945491316945421881840504042340047925427270289872280662860884491323990796082918240495332292006868578162219526436948826431189357064106512081244366610764951355912609465179484408221562257334216711973291691322238025755276553934039942478844889634972589456603260274304588556553031506879899799899557764173912626361238687945852291082218914718608036084064224926861847410203150103340929498847527707415169379778749894182349661293214119894643448464613657972730985253973715104790547425591247821633785657621655304946245507421878374263034211386989633928907393354725021859554171170848632234536970646785458890621300383107676807500996782607451228338135356479363910484938565791105503413102783924179475716092042772982070335855290735412917244203206125057196176295530345363988083292399056558732723591461801283706216980956992892380083824646059184762486718917192988150382182829072571047657316484881490660454288790021338372412681831057672746494395441758881548250346757157957103855758170981594641696951115210256311723166523714575900074068711683192264438939316586156769657540106856767843096688003485266691102398988899108135554890175893738577997936709874783689161813274717271334891514819768832916767288963795553407462640800328062689504519820465693960024541788842161976005561531700741470432902634271164990832902194946808278787662981837892173168174402933924283017639577848815530285968406366945749600234274459105699035807541333425147439854713017231362164469222601783250231368153306608408288219834775154098081711292183828139833647942743976256437188195753065662443177259138410192162804779575854480625710409143067439676172000562349473108302934490337106947814713293544330278644846781171594361936159059288275844077811889766586292069260650335484794769545600140847308775221716190519743296477821435144249138762657709865016077629196472946264862719854596064028809682955911737969369625395942105294883654067700439801543139061955442572532896330373927623179894314477278727823634564610656567132256639814177003323343100645241012869385760354260564519327803739234980396263381011914801229276121054455241850583832779830568162479085786094647593514336570350589261667160468678240583299486052297827613259319854840237841641940041386457721678180013264950341528765719061589415507586570833269693696849835941363112518624212936975756428987511657281204939546739372469187322060334541678027461781063756132144433730423653311276617624378972240085325633143252647686113361692554986156529846762025161654457474431090517901638839669515438894020313488480860228661833727817514791386135615947161056243368510906687324279532858591645142512535088321060988460867096468842000687614165615631329610908232402866997105891562137191955442492290326356775051284239910597098270251980437079662262689351071368745954411680591710596165900535103387204339345148336090442775710894795369615377428446046836117454215407213223916310239347183876216614243207518584320816719590657110414608991780428080484296787040215191060164418085366409932326231590120796359635229100868991095783195192192114822974487705377111302248507299421149272604230765557510265687793705706498191309775437429267941765778565138652588995274116494302632312737036461357891423386528364850903233601878232268277614989967479717377886141292822060954519912833819655069332485588546967733583371043334495610751478333799262900046193578630203480081804912349360039204601749368446649420409535616566874493471676171094458774461848618162955475211641725643635229542250767242287995825306540237876190172148829205210241688991323314975473476963817519014368429773235271573377524290138543049259324322910804346509724090837494947729158727937685631488717303763108221515934907205752628882666573654042808240536474782890034082461408273339949170320805381558527753385169742877815029929427042767190907607424162776809173329119460544707380156520360067724256635523052629301592519275439164171740835070401209282925025402657357662440811860992536691765370691255363667581379714938661062916551528037118615154386383322462791979905501833075054953900637005824454801222901979065542934747944980193770067973808307168380316546851155904501777706794632437243574825046493270337417208682074585757422911580797401508262830796735898243513668146534650620705906012551100209071986429621057449297041607735281020906427514885982921463630373236259088055141045779634724558205996968522657074896565020668436891874972268424264904863622993831980782380131615649639657826735216851634146014566889851681505250833358176570276369469209267110214248120839283252181767519877951890516876402136344488944873967379660999232473404222443298130738011207758342962118901335799566681599192554781989194636480476777491535996053665589840069726078424380431581628111442840100772639441707994785766335239893403489773649051371245169017062026840304515431888495871726422557424006762923834769386535394904339811786873927687725627940570278774186117707947204881272943852205495943624761954307791392173161421234871077757689032317889211481728159943656755013566963496818942124105703105670369781446648672083200457013134809567832619116164453990800106293217710248475533368706851600628761820250956652944583518764192991909475887923288446522373659835892480147465732547799376773517243307110153954074983404035496019176277872118443830425067440350826242644412895592385057153725204224366406448740814396916960771677918205965434234145831934519585341184808429877757574768880630604458659597199412367221491630821468416498515458380874740695998053518029639112277335536806780239130794935623651072935905273189615209865584308008423821104453615678580121491368163154026441376790451487389961147478129559379211153861792488300514605661974171990232408592424220106184987487240798103467887171044190448291337492455896097118379070991232528091275377400116115980734881174151670959531031462512430843812631523271856275482113695159038144524912132525110368686065672036867426249548729282209630164605110348727675921974831800043002372401229996514347641849682831159286948079252783818757374684642374644439379636440008428967011211035994268666301766805244876219453819928804597430151807905590992847988504939379025896276939890545548753567128812696613537480517278990294982629730497174132269884355533997619103595633172928767374450313301039125334296015555600521765765981990846118903227049280886671629794483975201470094312419196480953251315418877960019181489640449990009703135535835816518767324513866466980614025729516920486230438708650582817641767237300130840056669811796013858141862354907422071041775326629178304284447021067750995191108028558168216021091972582442609020470178228296579954922170968585942539888380711673348884791273868580702939545541332279137325645319279490571581163043062993123747577440257698737846312218392026738755915538245176813915526141291058869800107700338083675362244081223062293413713410667837654055245750169070878089508331501649649582780697727297643607215986868981254121127841585188136447536865199785116684348806682538241110845348347251740357390654138115319494499056316125627443407392785786821849545852569462929677832915710854606395542106604908397164093270940862322202669889493543404630714014616183249810304094176881347620117283331008798371218441212023736822602114688806936760649568297222446093724220264765468761581228648823824526446527069012811568407167407805923421861595109280047872215586010806472462305969049939681619773109164706153821730147209432519051096057938477500975206546552544054156741872456091483603845814788729985361561811483130210713880249859569227702559561725927129640511639363983403200321115826924801826333633297222475253363759851877668603654210267496975046988256400641954964814854810625927783381276102620950175272351194402922000967612286396148600852229586890518875771752729283207118717637654190612338404159993242757967250312081461071068685749092161003432593448055362731142318803194714246438747675868150995497520883965978511820644739911769531419886939580527665142235919806229194735048134074678839098509523495885859159741803562257503883103107238322895848224820738648194977564825986772723193848237824004253430449782332072732468434787231685864728088032668142562371929832714735610257518916652264980589548956760672948488426857083996735748833292602771036314048719802512104098973633639246911950834801799248582357494460037603236030438363268074568882213335235311326657418828315302282970658653620330401508705174757557304855825450798906746395068264997784219381372770673134295494754747030047116683407728317836499647363148878389915746202730755548030233495426508562616253030549219151867559804049993020562099870200877560749272124328137395051912521809568192502884053825159724467809385481630896082875151269374650742739061612383618753894788787021853141883680683275133689633446888725607015150807914094324720950434108652033502968845024646024562213900250764462791591987599954644008148460367684268849738856393316744685505286789627373543276369746611347096279771224181557105584488188543231104682608414833510071762750411034060486974306693600974190897646598136886910822825805833415518434969402923397536851683898434203643416400204543695388699910208759015969706924321130221042554475079859825416571889243660115818389297510335799682205238897886236884768273712389375425846496709209167089915343572089283232654563112243173739711453181869607797985039606508540717583909490517493197756875430995720040919594116197808773093731797779448094833156430982677466092545998163418680067418053196275962802403719196877849241147182715771799620677926042533847439104822707261386672858392304103317866303235659464620187103110240574286409190346788543948039063461395317933752678722629745104218892652109241703165315715282219075934815808757583634520426739204347825568124768268973145774946591477358422752621190947631107033143116393309812490631145839091096665006433362326874297349146229626052688756564841781425937145445924800760218088743742488895820086115412214945268654400425007268743983429603636794038943306214983742630766903961439587396953398912291159087958765397752258305785693996353325762770631480590468845646722849293173625569665635660377174343607094733874900689085815340751408719803101213830780482151477746614437363712510624360156398402977663045712093778195530082786665577927876604903159378044422446251071245142480002359960951023559848158612976704716210261559651423344389114394260340661619799887129867946471044512242882650113402319099467255596189549566341229045551954090831502297820949930984188216096637755808441457011216428019402912005548358091762949567458325118840459604644321631084168941579676473553085075041968366667130201815633253565687814821604708900558852709341467122516393796261162770966263850692497241222798296539706782786921492163950216242470572328407143473666360790481350018281900446874185516691866705369150757100884324005312869382158915875538606067645906143805888432450807033465312883910778606397541278019195927787477530750405443179413759426500436331309284935231752379520281118576078226282149608883850109842714886902113676140912874882417784862874525013726200280275782225640015026461436864395046690618747421554965834983410131572155411928710982639110427039097392224255665655632788511925266675291993221051500124753928225186240762160691612100139727708947715630170177163680668268452835060689793584149992152348866156921788639276697415851268715278275845959351970668398394604351742434927627847580763257975236786622836740387779831342684627178216383619271379383593626128770816967391088788501797040609877171409999709579640093000893293206126693239022422805934263328112606134843398655559124848171986385746423601795894632402943811027249814878214142840274748710635408412089771183278752004296722402117266432166238253485286541895618169208511147660272455935560532547808492592759946045059781883727314402289210767095521783384968573895344004472389883584238349514585377686765343958659332129773606913103341634901148345491376146388606114806374199941609899803173954503930819796342721348958930198639943703008523838826204402507434855527671038200985999769419437846641948774085132176328665900567498227075806618362055046839769531150073163437265461034226052057562337356607760113604473183567134107552704761481393559117866479714165809661476380969488874747518081199259391346950923098250425458973131526993729007596340929328768244700051603076267262832881522850161657659351488301002284929525784345122926296966785084388459597096364040042477150143632059144428248959030919328767367461286186811827031894003509304791401489913090275606295984936680505300718747220940757546044241244628425037213113321017880609770706418065435637678984744952287502104447838170850214855880852534120402383475369273150362941706955360725512885485823187646796079231563512119898674173215911651198931254730102354483587978838654581179321184915895329362733252999449771824382342130905672709663153100033817749259065089810167970495825011854230698300096563764172131243598496780719612337102088439124268677412397246678279117638853582343549901427774647379332501433386351257796209447272426366181055605292830585783340781976878616335827310109094648687264608892133816654996797849080985024437456336804286810841165563488653892655231326130679210883600560116169088445720981389486547052515551336353495619794329039585157886432243496532890682014216006378620134718338389529024798140752334685721701097216516454530911456828957571492520904739739106192369108989657670358463008320207670340458690717720903823564555635146095585003296483501536340409408247182733877976766881354047050388104094127682662816711365629246168003444861544223845910805373737592971656891957998395853639287441965241839805674119870520011513970200480166636920286831868966672052529808591041586949866033442035513365394906376920133798345561756274093164613822497824084434551693009251911172282802261595201009267260522698283007081372765020091161289069134786055981556955698100746396540042553939309134440402187399673182780602822164896341271191627444468036895254706807877685615060589558517459074785709413815999531674671318295749808417567736470942016273241464030194535661677195999368756831954397876480807396289102230349218124567592693326493455761884291586351557910634018609561407966175521018285979454222779104715472063151583487791029410321133560345056420521071006733159812143648518699860326908145557871499564072500927363885615430192644353873381906388172762653026698647564419471312652015033090791929803928720812911958373859823636585228840488398666647169127302265614340199395723253103487958907878186630741297420524013101014386634611947256240617564986746990486999977000370052952388090436042021816180574655532133907966163777831496938334761218170462847986855641462838876624267290136527266625883444670206427204496560274839596365071732131702920833902211643520097199208669545179787629155102070489983785435956608875643274730652510961174403880240502565038001008748545754241793227181928673295807991724225549761129259781407798645787124768222122207873582086528864658233319534008633566151325593968648683567040994343338419033851861337065208961587357474848603813830129779621477098617909008876193017048067745641662798835539951935206848845747386968225467037674620079300672640210459222059985898989362331729604925631910142933936550181686773462893898575669815068485332658235709073836959413726740213467514682338464744575453455837487529959162262237726377019263221210617911383624436369429548115138158295339740441376516649124800429153775123981232972935794524769249499068958248220158099066859614757131902099863061938539669573993377771174602529971427185835679679865600624218296664137032104085622616179476552687485934479140902293278984526771186437364661930539020281164049119846698732823013517446986073033770418275257523539680415790057334600903819488979702269491926668008663415714955174725609653329862998498195064760506298317635690747498709823027894796312939802063599693804770837863125055585618797063759136536563811695438087330797165663540309778977225807750687071116248794184965460002421955541939152269060014118313644277941989825117432614483451778297216173571738410853984702750233880287791380722677990873096993182981276635571800784965372893488804420790259860446821822115367874106999662906585835096136876840971168555590221286987056923198279430043121887194243854668956187867819276983492360705010082879918948853351238419346902761500343394900646187746702380551443352494019313110708344938727521919277890702045426794192120621035197182909235916931203076559861788130366207924070622971302565832226320463080976200449273191619618724396134700686136952540449697374742087280234110237941859222032287140922128080794706624521975254093373671083813729584470360912605513377807520027825162517719857076546299801042931683868057380193427819093673384477507984243051871341907658145751538001051169407234794917124363364296451229619188599036826637217681511633892597483323727888578228139652254694732948755175451385272387447277970847051483120995822939417481596047604491013959375095329993016011709099305636443973057910025157352126517769348140457789129455837094778246064062259534676302177178449932375354730222748637779717334350704452492296636546965364457815540800513024206546563914136628179807038299948618562205741959678638490426002446266453864127441857153655204301935783076124855144501329895906243260727651361941450450125772446121387757492441216648171455489914282933257167280960187847285394645845397699720999511172539636613741016590231925373879777403187683996078928658522908894988034227322794189393799782220598128096447562547644563632799971378301713385435938241309874162064874750945185998811135228377310753585933668650782743631748335829720892941786678893094133473215229757821952963067761549327274767464932800073316187602886228006866572271491638506975044654224205246125934060845117196131774165662636118204503124328242543113685771322825925564580773975687731526688723146860127590806828018648901373435198116171394566779472009877364995640093306449324082497066911114463597527423746359101887958957374753786271415924402444659256843212121326328808361339461764878823454532450305653270298138666215414277523410081001142591611354756325937868044582811401815802658161685037844180629382614046748089836416445724463965729529384631483473329179154232748301053431902692041396950124776063489570292296898339444718157688958126894732854242575177539086803301402052389894004100959440108390119256278060170938530575866931060064521272466571181615312668639285045161797388401974273071965053278310748930661356398663611476438012229722822096203749591048539663295211709560603124575156139248499677821563560257870895631580436040540018147799279164445030680181771299856869277090178562202286405574106884381054593883751787695216916070485694613940955715273921231087162408453162068754045931334050255254946102444574159492812405888932005630399820387378187105100249856656742683919476479908912679769233176251840148304154952228803245551510057717477285731181063106387458406020283802577663698152573040463645715862840461610913199384664050759816178779945144740163642110204225935744917462341288026521010865315821678367820664985173836749489569871841854951314595199127357780889482799269672242512679855325550032233601850600007656791316476928265577710407611451524255813066622498651131820097569090920321573656488557291791929863383213958492514151472074794959163852289442327902167685203050876656813402695165987533045191811189040560348151594522424805758659458999899406066787187903699625054451209952638699750285059112032717245162001533491127009911853200008138981100571298994922021813160436572615905714316996920298061060830145564081674707642843859073872148129865322529873374620164469758599258622602921005773122372144366165366389565356071360525060153142897927239121590321098588826522815464794644616454168120389971553061616347510462095041291039926299452852268902120091033094948444384321419395237797643692047668038102210872508239592983807024067040419649281752428898588958073791852527560063568842284050546884815284187836697937000850768140388974711935924485759356002650063056263624391182124778297132261125663818159571863707070262541446623537436758133131515264737645196013504400222389984899699569286071477588084357274804567752960945235399390367202613591425452367148816654507249894894142472475510149200273601955183636164966986339598195866802030729362986109740334384028110476338380630789309665687353357896908020775318685796294459951356838588542593460014837912562352717325918541128293614495176465002387632801348234498161098377622327886152607487720975684744573636851521569073064570464697923152903340437859375284662065648659271398627678412834724089172610329982273616323407976232988313375657011341167115438497842377404324275123031402656932593677985132840144806812816289095090909484212178346668902274571808752059859494827342641556994082496903576847860724685629973279802560866726832499192125687371831079389465628797466990284669652612252204935602396882514437857164738022752630347870799407275478982351668798907769878572021601610132505781716459294263903329610733775442454068668939699668857524535327099808697209433370975548942620279638812026340707912706117258765306833935081803269406310088310679690072874565159447299596079071443008516177964499238622576366619588986366641511249360458772354288257573355671172946844116375288515527459237282573791864184517506812747713224892801059147916737085323596585479326236330382245152620244017322415904298887224039556234955167287696550168902683828227742296975370677984199016886358094247210517762244407334812866202671215645279973561524333440489806628496019117789734538671993781846295675171576713328371665866413301426975608997261507081392191301849344018621898676523377766747446263470613628082701983639265446669898727705433110146275852544706271832063758731041523403824576329096712307713052084550014462891195537341610125421543646864777183048186728941422060758832123901711200023192427441732088312910159379943628117128150483473616726187499573822685966782508753523746602074367627191304571568986034646267770914100075898255557315275339389041592800442071819538712656987730961515889378450885529334024188910388752796584497543881984121886301204834401671183093795169650010123882036553334426125487486410529031206887931808997983659341385348954375822921308949095131320782911745189135453380009970303451155137604780463621372102478503092596815132989210960849689395252575839367075788920449973025436061063750850677487166763540365965917854482698616073424741534268357764471876632448260834366218218888943730955430534200086122881847790632496057829559097496243761205084607252785969503463882469527805524013414081534757863340889819318526244260528618568146388206750203014829718202890870876895726608817564591752702350188997034127288287872578385612358020558551761352494961150873032644623874533754769363658049106783837492353084907504873423030574121928952593957031566491212783013445607464694584712022427289244634465743512538087575951175254114522585444564974010089757985942663589236309085023674069345392113229093557183865403461621781372689843937620240761272804370962862134108594765944541044054143750401714912558494045384530063580680433009527436469384735906715677077014311607284472039674995214719805396128318481570324015060569980646105870019753296922790249321510649833015282918638614128973273800660504704380799090510275282478353895946873673146100132819587334630746510601741755720221195231891120621697513383039853979375103933351008494192362140912351146287854261552549429915956519331239527632468813454265100514408297644744762763167969808739516061761813621632923573220419127140308996067381077150708786880107977605134932579312296716638413543536546709168638170504442814407529575665269716384781367485137062620364950807802606325428104213355934959180677215304586756002914402958845840337153812287819137189019502244300701290706824731136120029960804876869383768106459558314375137028593649049572129230175743459428284020318752558388931779612040559443870747950600870461143895674250523977781160513072698656723084686835090294529457326779428305857973371721657034011063401579917052791001605556013743562231375397943608336604030683923835580041045345631395650016225452813305349595225105914515778875116907217452440005117251366105614022423591185288761960811676740143435852785163923315907352823027284890510629159381593782625055009508098193414921278927743993275754041606832824816664962131828332421427197578995227592703649383083721419243571583460858653919575178192384962358254860663236657649835761470065391452501529447660167965496070776854244896733650299345720658999276555679125679954608406098973224122506879699011246975923554787583308436562855258436249516756822716558424468768310218394224336450950359097717891639861878376164880296242780292044538184055207275593522784177192742628770780253857594297141597410668030765973834763090780544861435429273816667928923270173993386102003138256040647163268788137815967194972114492090199472038157568599931695108111024505802431617470356306761178875997928029508606230365697554969335544861592065911420966335335681046553685688889580011075528061638239429800392152343972106975086368108064315606618925549908657860105961467687607341470274992537624867703624402306551796030742692220231754941032595544381684908012197433666580957594462187793098677478394171809778853595153694225844174755859558601395365950937534971399244721951505448224514736833874075361451729869973068305312122210362262184826433564143263790980598290192980965394036957532400617900826826207701786464581899824917643962929708289255676238775949679694354132550737717295266666348863853035261690751890622004517770546599223238780232291531933746329832235092520586492434356015951347875143424670353239186370846732446236067601474329170580824195420269728633460085381433947278886274254584536973949459274563478671043533907957903661908031532423945647027494077235307461452609208678648833486834157143377543543130709263040257107224885831432425771809452847007930050497298312313920869392365565228374646974554007975689250847687779680230842352271941499155086057957382401201198836160404261930793182159274320996463145392354463447254180268719827166647411462465086193970226396297231750306277631562718425085307848940289949681224708540811334440444558486101155069885077626330601506689545552087032024851153390042489269258375910269600304190287731622040947799054555977656360698455631618324361539357752232869282492769448471024410794492503293461998305953353051684213165543575306298892585683867611516750908000891470917240912171417444399982634956364643286041384014429667205671367228242850553966989914307767170304363810096943170938018206371456771519219903122629239434732830756981214694129741203401069006882762284137055744658167714276651942216063285512250118482826564508796441870664740116354818098881513946692112360070643046661123501384147628709390577284488759434135689959397548571919419322472620627025186212762332621441864689450567954046647429296118697591008572931305881674672417027488290101635665465528734979286172089560225405557019763096991989443680303399953443299697300420228891637265289436713396628924342050889229789355251594085535406250736730990504027471154921907365321150995880238282196583818858372635118874855786142348223281541953368993089635452498243534030745051618874503794614875353253012375616254818768871046645877967392794966977635496901837505126158450186770316894228883183874821640766182058799987494330750924360102471090676177967376202100513221371267126182708511340467927223210570165430681722169488684315115420792164164050745799139480889917307511757559015837803602891625058763504941818845433038390176342417863183454106517543953763777778775733363921239782466535296906834851987378215345005523725934923239693684294103821242164879952961974749731316489181336262075922095964292822194186212942763324571287830804006128792380340234479240998119629988338536466376139351253208947195499189916756747187912012024417509323666701848121437717513714363195406471471733921179693859039436841792169567273433475387360720425353431381619109088643303600286234810065611319413057277456115747133722527128098974234886828389708823422809172438392676508302078741100037957297593045364267715041125493123372796210424257395286841004392414862416046954413228828204399338129819171179939668461311755004224809151108555486226247368144288385555312781316781851691703899072926181606692686883543958261272795379042448541809278641320466737583202427733916891401969375716955828738503300094021485465393594207680828718307819621185847889719736407395920009343385378005930202506789477159964695515991861260524715684665498869126064738647451369184352190905236150176593642992290235376670202932717424998037816065162585900742691655726318894599303397228860750841032672245880846779135414875346662130095053862865992457740915919039720204942233562709119082416654884726596312629685285989971451530107842913968731866729832296251374176337515608812339156909046767001923897307346538819899522183374568341159037262995893370929434773276386614341333808533668644251861214390895536669324119693005781862539162671782683688772817967544474532794413081092685971642219982265512135036580152343937601305754512154649135885719140439464086369430959905867925570167383698247451272094011786092693994887300702498712356046820223057472688702482682615827838512507206348788227949052257247194102608647438459198818265085791269502688701622306881819075033438872369665991437107624592763019716637861191194879391038509867296158934760821586955506065274574889003163332219151479825658524186980045882071908490103788382219794704959867081401396508702520332489579624271405411993894843476439787610824167484297559205581030121956937198754535572343419208403686173666882086817895111366852034062011724639744338852722535535401988454947044619042361913932621519160562823056446320268470974455659607642802829837147944748219826601858294542225138619774351948129452981779316103018979188977918810478595758982592740662510830083149364295040061972161631162315304579212568928762289440704663467414351598665791023217336612990032948987600995549000818081462776206634787379829099703959046121662763984370359193849088213183244465106571857179329967610239652960439198129180575110810129758819946316684316539622487276071059535206718007899865834004564356903770327115436564103160783372458946002733232354592263316743121117118413217909966257919893721316390398910856344209321760107831106148762489162673410400669788800299748850691224834694443857950353892564217975226566081623064639247776476858546956803181898903647695416805490196387644717894423383067759333430097516348817589173056879261723575843188198843458209727876951112177954918750655635230909168398816097486054423054914802606956691807897480020454949370787521727132516365294625800438089793478388074233962327348063362867754205117671372456361642576063065499602063597540547688912225557056394146610332189788920102574485857673392028977884606996801742663613738554220597197589910765745014184883149678918394799201475461697879057030019946653705048650539196581971735608599119816330261206810155813055008149357942719745195116576812706415564080973801284129188187568159215345591782134033427066875453072897490373973102349912887639520422888933097631518723405479756475985285104186037390483030735721151652127477561210382361130324912889540929131308629813689559018380902563220569893721658567987650921966004512124526256478720514693319950707187094436330095307004863096296644073524946928447190425419185282490892502711755216079802151274543518523005850622682592055975916779543153743097831259764699106364887399432625880072960905582223883751996522872000245112349071753944643486592314217071708706461501734089486168436062817898464035428033217510646826258233597915216145650569900270032633093396863236986449432762424451379605862463059429614466194325559515497660418949864251634544055058071842976627668937609109152284197211578084912734599114017893989112496831899349283942039693553527581687374424061528529691005860432624709409781421657598618490683740681855216482065953209238534319437446416276095983878636860751365755498992860693520976881345812844334040837013860048876641341825693490868001934841711615936299369099409387868490720717452154824702498375188531033185881476576281148349498062308414693805116957085972673987680506617474779327077450608415695751547926061655969493280891690131348499377013849929651255536176723148894886169264562960908632733811231664853783308216193717631501560090279585256515844352948112743472879646319858178665660122513136337469356948179318586003844166532524435273954971811300598582609820438572946448868261350437000199627606291598779755131146347332645543254092974360542859434289199286575368288894406710582925777477378459568092523933399237867976415215338220638232304922936128186262079454828074306737521131376986743603574156638567687318048178912943584538416752879240164812643884428922003910501575107965363814191940206930945845787157009410420139684221793278654009076305426540523941602534875089720606310617908286896777264655259863057013625287440035144181099902973853569526588578003065871370200973138823453411383530652733733685353936609859474113073570281565214540339638520040198097972775180185675325713147069568657483549194967632708529849958586504303011317158722164324631164122823496579278981856750187995837969042540763601487958026460878061199706164287702100118629997616250877971169627755793953423499575086739754468873799192244636482987463836485746369480618476981532915528936844533881527257795956173236451257655773156897988628486827275825700195724787496126026922236366900310047538055247292490653481860792067581601010975443676319839889509281963130942178882795490660429122468311037435773838942988935386569233755731595950118547628243261549771590139643901537645074893977002491766375289339389600356000144219798460036630683577828612874377296412770726372520429335382646039055777389026129736778277107266556458228061386478672490061489969845647145250454608936492703577502565656704106842662435761836625014290723962042682929595347630852331324127509048601169584150337349261827403189450308455537759418067958306137997519387373507658783557916516490759376773766477349302216273796893901117380564184590425101994114141021804279623934184656453945050859806320620135282878078589443932839185730874028909351143909320304719793643311742790264710361678582686516352792272992585408584025498045010230097502039859047377726708950239871085801526756936530927845706791868433788370907397472226087595126493001217413630695580666587224039269408089088421316768704542177632063479964637655506803503126018767513846638399254955144881831348480549749493865050875827017332194208216273386631158582094652856039336848775213300405253930802919148736239481075807586477329053716453730402527677905533123728821921942144297607867222451311434444938496780454152206960585485195303751332892106544316234737123326158166865543880875444858005105003433653536482240323103915365783603113445012337004638147377813102546646839675826727650852619601009504121230682756911724614588237984675392228769119336864572453191608219725468762391042809079414676432099520229447048039518930308592638926662108892800918793051679204553863945174814449918319272175611720693029708483187394630776743796372644673212965634772680518815154663084439776109522470844923785896904716433559567272433790115986393809762756870688740593773277811480759811074033054874358503059227225118671569413569092858316278590645877370486505056731681607869309689268530914711454344786257776789841766301518871014347429195557590000782045426131914181793422748363236520040157583191234535206748408905245043105985421976130231905788001865874163269063187125929493002319642284564563458224741091169534359589107553069820296203240102023477779715231685790185573576718918865704211866995580674162232762425394801413060265152356119844667485766139260816955132812823744497967213158110679777267606648619998924553959519516483393739883189101126193483208194284352373856247211537750049922773264491400917974180979984718966478967545056174318002742662350209008595844277867642428699854104769505723824378236168591096225239144779542414480884023527662078817340041530667696876757102601303452525491095423841202618974345425348286702836273553298769582675390523661277519619800891766742577041776459773184645612843633570828807009155162606784478845655389506479172803603466016408665840081060981878899305340433566231384255066882225768243929442577380603172003600885049516355310077860799499618441440856282313560877809054371297841623214161186288015252461700983568150915168116678042527097474408423718289248705761703339608836013277888401390954963686043165419326297919825708494305898682371976786359442934675458500344761598158248503103845986019683645408966016644484265522127896802037120498090567358747333921752060804983846284337782760065679700488058692089501696149968307140743367045111334081962866764555094260620644661039263792473795663610557031799467588942167914767819487061975113161950453922759787139259951085770297651155027247506771852641048824660313704685094174589191428374369907578639545877581561267152517147739539106053557893354592442357613633149856649562161238530762858845273049847824129457840063838658204983463498968835622112025338257866121277680356469995586483531477284797681815443579359592561650265703113143754350796837371492592348438455002542335062573874368616051121185027634045842078783398351798893646966223239531876005485247159967744307277505341324132288861031637816661748316706191494625989115717786817784640774685758952253242207686734140348805320944790776619018279855162576756169520494905471480089585319297295324479903635628956993315638106189632979594813491691105858352523262971448174686462168106660938446394194273179448779597215456357345876748477633854872335832524274367773056800321166397972221708437198096895238447869230744802965803198704513544683725007526133549321569820856813229527674447837871815275555345184875895030956216336780068286774402664881888864612453872952616545444625578673922521399801919988265396860553071858676239017201680737904249407061304822560226351563979665673820494612738052365623956408408563332569122152532080636776475192056961359042248426165143295592135331933464447693369024280571612055327065392114786811452473506758677115926807180531932946790223233636616459336509016609486977562319153040292631256308968601835448085300974101789930556409373180533934997679656710536329564839288123990728733109972225997171384559244924442341694568017725316187282575576289966648181862538542077398923101304791621289302711210800482663299957268546586495674541959028285860918793868732903507468714089125168789775403490076751100611103043993886418161261708713454057325479781132542193949809683915391114064359314619711768438129167283645203918498619150181251507165169606614020559552098946237125258006330865588920841281653081380822860338640302863687014122979737666562937084269847011493191099026604260627563055572105562298373979914599102245096680684469171797535527425179401178516821565470898108581001212172120543849527519681432989893964152178234370197473526719415251571920859543557908807306181218246605825851090240826619762540470115114365398366654598157002168845721088415132015461265819001841604490066135662565775433278697925713380021966013442335791189295086427087875009823257183544703496719553573804017285112798847368808300378736096269848286744905024709872592464905524972093600771354280695568548187592726975726647211240986298191702942458395608892762153573031237837078267066071387864256685330741051027972021741197874636381387718948411162967684755753554103380855273752090493480246260401419086322909240385756224508493012741656595577965066236030712852638881430346770208908193148941393640622332776253416629085618447789940116468764395448575966665442316381796111732769635560459248236187260716008884022300469349253231796946708610901843826233984996975128541817818197342545463144963833527525046224400340408025072475619120195150379147766480783391095907276311197621925812408302273730763658101067738482618850756351410098111833227978749968795708279733341526957959529055659544638512267263210171974962567263602257771413820766537293126357630856009575978105385913080576481514694993097623130642734703171178668745547137847979041378528330650170335272392148092305887341282212436807368737961811269148029379380321550815092174185745840434920460314258739973022346926147647192719959042544439530559746618243426905498651646422966584852353133469091354270629405052431990711149969097466724885426844671625901029751757339073949677947100412400466878862957589374833523348800897341821445162986330034228049649879340295010152479496265700963694280097059385871969635283877213477399381253238660720167821422111857750167124696133033552025779803786543445642299118107453263236989338124757882666608770483439671629224067294237171900288219849801427247944142269356582017783548198654554928982777464854090297386500689200837164143962704729574175936317581929003394049006904480257623871496585425995946058049858428474538294300193846509541807924794820488922721979189213641891748670400049308566501131276345187131725532002683443124052791605830287815725704728349818435955355753378339412638481001354554735744025594177489919544442802922231030186073425657780518356373439268215253644118883904534572521937473873224293224608368289799506206604952737463275370039559579026263715685506309373764896247441755304943247592079614761758286590500589766473093623410050441105254836704605896317801738201160760390183802828821204411487479976036132071613316685970497473118334738199421451523514941257135946767817529872744143282614383007119283001941675948213475067210511465259462622597291060507279125765440820521901925142882504635924589790360748132593012782127988842433721575519891004553686155407633015616070770426293367794000273195857821648451326268785786958040390791321478833080500500421918215285454654128445677531176080279752227119490369277620119544487466294717297204229948246021594174972826116936189800256353800337768200672916267190988978269539656801114701797395661501598010677246540766840201273297471997076784919952882965443352456981321374939759333870189865201833444003315275026143941027903548503045392364860601320643676578238966146774977814625282974295559828979378768966470591587619569190099892773697573224854336422715212371626691976408204742469031597157699085725473122391822505632626781073132205898780883677280410876693471378161386447848153311859529509036788983250872037786448617363037400363769089599258133667881991322009990295052065183324266657259221169600627373817665492780694581064121155181899281354218664938579723168868018058786955904089327211386401185480469343370084786374064654541933995040983375969321605544123135312135869847404287257526960387060487749462432992500160553181048111147211696626708458870523573218731272626635697999473423592299507531986167620733948218519008628461403046874222539461607444778574176792427845119109466688798893761568135621676332024962929575472648621295630174356696793340082669109813010575399500420728138670097646350648605889289870650539070864378627722247864340937919005474827707880442985851118298605204328437720487506410002232312539796207207632233575715823146839970083385158048944803891263842795173292022254504273937450765387185347800431927778050308605290060611692236884195846037825848823171499505385304748479599039566605065034944487074476835920401665686024061837458326775289471297141799348378257216467058290070430189356380401015668128260468822083468461358036571518878970802605022225282958452898636955735927550004343319004494515063389234830102951874553642476195498650863517285338138256315931393311301710791264756876204007464506307504318971639074470980149136818575120385928733217731223307303507205954192666575194051319462321835865306133983814869122181880823379415484432631046586723874347192334832861136642467247050646184483231099356482058151411178203496670311496911015633458483685618990050934097939208580888065027102565665560993861435728610073907184911049144508299709119971812186428415660310570349723471169477587386270850706477977709714705607697007476816755275196642451885085088239545776454188052493940838723167687574473268441583575536425244458189589672849287863321306647169783843576683270201353966013124097673199628724395262362719792239353960548934463304338692590881242850123471854155027885538397078877836022062588991795473745371208889388902337378561173041502433598047065868522218273746081337022378457234479656598462279609077202968560025884322606664704926757663187107362068060846561996870793686306984640447354255003831399990317585632821724964203967355947132726467877153838052784021270597592521106675567144696736810006040248303977223942357243862647772957608331417724990855765379023186066367115616196448833759054029871455445502068876763294607475815439941661358097544395443555944183880863366974641431193769326432226013462030397173709798899497194211512883477319913514839418104370039087738358600939169151470201842758415893780172930871647236116448776060643775070455494467456556325817767028267120190476242955440756057966933134417427812530222696105888473916458316255753493210221034540882244476471266325482280004323876184892918245583391857507879720520138369495086526820985565972530438643297138388465567791272271783960302499049443786291435514016428717678207822233880195511217884118135890964108066496872155400161273939967590905499078389221170393773456866086982159680818726440342297212217077031860285708588720533936058777533801175431982992383172843152641594228598833381728030631640280141567707959754967477999198327050451426488280553045152095520830615223598667702866014604014532421611421564807634166737210135594492168071620518613308636348773745828786566006285716510364099271555567821582054881203935865237507057608179437423655313655032867265931593584503220585720454195854432966828450256648102638946570670304080583150163420645310135637208665610828618472345992451487285356724873114897458665676672608933545696047687427881227721334602446605230293170907934714918211025882710075167695895011796141816126824522607104004147019048276645127124666027670335828610130294043088152640771492373441267391222766558175940254414137647692386259690373147618556705551910712511389833604697006402579938428182133598028025796682036783097449977783595414430277553548294955890563542777414137193246768039359624232643761835795293512280497989089386514222600497162166229654655678737539967475043957656700346619034389582705348659092521750295361042049089402176392974255944562558962555726776167039407518616739507640446712898966135964537448386704905573743970874572439082808895335633576571750520590156401746232485321749894941311472642692483364316670184760712109632077201605143595822370156835127188340433153576680224549280125752610754794061908436904278665359091351688654730912590340339462289556320433783475453356916180696312223692012518535900224499959359608285951920189819325828629047067126008948349794029923899138226855277331236536118925275147474261916341827363250317750050998700915060826402954921165557727223193794082385743786946886873964927519345950264159314052214352781443715835691027837754589386063823544996175069351885416481718977200378796091931093387630624907857950950676495443363394430639853246397488068272392504148571763154377037240586124242719165988927797555700948579175749956389206420367128920483988522696234838954776979044819248363027289337701510864271374115791182281733981301898632730798889646458677831812363189223147465735194980360767196862191606531637326325554175308036437164348430473645376500223612396326880673920281685890467413920665510070103062866355503345990653143687559181111703162174827841155080034691058920701665353261449613309720824275891824028056003759958499743579292907192656131243662167644862615150322826569439313112173128332943004793050717750376543193612463103068199940351146331676344007621479892962556298271100764491973678680043699889901598997319673946529343948813336523544467855477172269682333836244376234662392635579751846262725773162960324240413079775637893747638769755759856808056631105629959082580880725991646672316309350474720767195011266915493540717394618264080068323598498546261120722203643107985134803042448715229841858806311528452941188025802362268096197076790231727126373685284688666550259260618172092999955677953974842950431267159664785164992637920622318074626982984259870494710622964626472594007725067296404591992063595559789185065250231624063761364478703756706150804962987613604941602857924763009781999811085931815482275861976635189964319734491383060118376238616550438514349214325578328892901939117440538383875669310994796546964919699550398604182546230756814002562127548048141315193909487497702452872876223317545721866809015847341333968026072179281490458033945968712273301669204505733940995638723906746283001808254577391782149568732461074408511139753202634704440863974796236353962626215303376147101680639238018924703110888545857078267347609326122143838504867209905294329357010322396010123349258639051983308927770506384236221487390979320525081821787352453693760829554827594657537034598770677186149956516892443785399272128437209729586820465323410552182622689918312496496930033752830864047820841766525070256415823176059049136481829662883033356671670393413497657887583627789334599346262370622916573860271724835757447499720637956177903788411937659880273674331666723850819619413121365524276864209583750423770205947011946184184363137340758456472234913347659817558599529996298550691392187242706237684485241078677660092810755205894963267499544311643266077318820499792686046951359085650549940260883742149514655934590220660255216894978727534919954079757085665969305917970566213114218768080812478280330187761045390739762942707540551294786942081677586359580622476507376650886918144300460913603480920323528582853605101817752546872519537194358841228146112972661496587544477435747204485470073214859478645238754198001783542839905726877833797284935861415289977191759475639509461492604118160228204186077746401485151898717588909738796680439130451063880169788135127845050524510261932210562775854479040172803575376395179955531800526092961139436335726698419930409772144282252083988055326403455879968040684451865928235303325988209976704636669556165527687321689042170037680269942800667543891127286194281882713971867747698451093427058243772388791083706938355650638103747601533609671670687855492529340952596802758089988990355792871833808959044424340238917530838541077236742106839401266339286506951130561531060745013426103515084300422368250988578056347474290514195235773187175925544250861724149130366887762032600877673029686488294906775897808916836603671119226044269451781775122845402423733688387963393489187748497873000670363298579798863789596148330284077914370828003002068246324631558124402475502789380779351427134528364902728300087865016831126441784379417247962891060946166487956135075009366491112092022137028100460026294570505386205340229880142860950823529166241234148606194137529231016395499474429634562664463839475784175502017591436811397492567639181945415522672135558682633496765244587132797273831491585915236348128599700620338952948429008181337707462634217135154633437773297703540194494836737188516271644700775107998707761508651394717053425813727233589207358648006184998148440771743817331050745176421627891011146347357290932154921188742023651961056874010283442178146132258716420746849593171133808667217190878051507658708845188343433034478415501365522591936972519208936724158126063384374918064438842625852506795536619175498668708958611205446696783261130593488636921864847770383336235527098397345082959152693766063609274789356098588695288109645960210693135603184788541961964796566624747299406988223539253951449451000936938574537234978163625367442472797844565024552802307181003633148659261476991359158011423780793709482081239596931990318995652833631365840118222047220030513454596690132407621665081469616071580611534757461300412645308966410454408880326643635160959511114305958619624274593384802929117625233734645680433561723097367521663838483402830752401069528875260461544489038404840723365320496960280703255795257993872097662783013709501399112319053670870601796380853123649927757587448117777741603762433373270794214255368557060959521421028511786183586096594105675797291763314453730124798964725265650570759575331786807840946026309567088111075177647789476029208689210409487183924231997243900225991246697965715450037184119219042784673313533429721891057593504589798877296615091360985363787045460613976627050729146419194503323054952389589593469159418884067742427071911353600510746194609728031420447596331032207077514631104514526535159073851692373590552022665877066596254256335566744160338551323686689706148353248358548119084506138410260313256034548702020911515986877531576920596533170997795003740320122616579249020461929979208204054752511581921702008642374002907477952224068993414692648499329191458831097350150182044209203802392832555512749307824336665813454345068847600737329834457696348668848687424790462185909317651900092125481724518302310289606736448841615254477903412968199659176520629942738610967375267327264025101825652171632032032194325836546950229253798778153137137182157137173362351730440475233682223050160236480785782518358300914334868012761735324827812242403620188725461296720391473702950100070165047686442559195523522116676004397201160332510199767574255608523884724238031482160077500586087117638925301904161405079311319075245053796551074969983163359856422359587312574738227978416841938055947654144912765640149181634111474452589754824005630502570103583974144692434261240544570662629724807922754628850262478148402971478067739170611846976586654187400615957181944643526397341321725322083497335043549319262771178331975238788112935846167261718560647310907085872817294706488213255698812399371696525356162010523268085365597370410253502705021581386231398918833003660140188778029979911643346478167265797738091933462533689330911666306105810561752123026815795682010379037576026437127979007242624639301430933752261803525268490491703715608575812194374161753733314629990651218735561645156461369914775185324100091637855480274920283615025019376391121627894052895588802209497985477187755673040105075257110351331421495265017507530393734788002575219455484882314824494230137062513556699906829770935377949678280902372492623853088943026673815360417026949753222263660954210999255361169176693434551782762803498021626558254709708093210487365719921418749458723218398025836747636053024590808167452214399096118723869883780850493711036346745261530539444178226894536425658196773395700396990387681635326804085158939745591045311456545937357702285438279660048177751735010549501851754762290218906658762147715132224406426814149859947617307487307229653075598806662814397852231633024067364590545929265927439692396120318436393015544672419030598768580574071213631837942901575974533190663840199548947414163956155251363547307412543069054285108206251169963779833024961566876756338229695416885397832857939424393539702355401625191516297143860766873909848782754513135175191373600665937355651050965340560293488263759026660453058316787209751827350987861430511008733059839001804734400566260655224696299815514984390823159719326487172694995518780156190681422716968729283740423175693873246889668046544499046315760448081320793425739987942212812720507199678507042920285360266269571820176877421875126877725924311676526015742143902826155326758844836741831851191226874451414595885951171353251664927131484634673106990851682803088772358550563440873013298402312006656205098811955090635480772226795228347509873710147661850356295023346704257187238017438336045360798908078592003946919439339279423592832936444589223983488006441727077295707658788238640329521605089041293633026258610397797845220814924125487115476754192056108742954861793174301185925611641208091656222543327208869310224700030901782064927181288601845070773159138980044206062237135499398043806411524145783875638511863073396515704219201351023912024495945433257640440112500852260791620198919785220060993177849508997213107956128335866111844299377343315902802907731706868779745057558210751212184637938194488441522045121746482323382477002064484706231187258485425172596626244084398014281716314464283719902106105261722248729612102848102098885222280509849548008909748029219440070843281645568192756728822221403599864807862135229121418704715039785045263324453923815049247180358161117603178489500786877252728469148069555930944339601398283307975722232126109965038564641653770789414829432522010847541514835257886798927085068459243734257107688365076191586818489265305274947412287436207235590803014371237444403361643316650658106706823914832445350049827596071761157870454267629914201296902152242632947012155732617734185480689188156923158045376296157517814734521577759712231284691175752501534708914220965170367419648934280309947743341789517144877314291144284734857789351518512187006274568249302956005552668599757045105373301246459806345245069143830009191246103662872697805020649299914052281402084604362482421310023460171190694717037132315233697280791744155103099973638672560286202914338070694199743994494682791381725298224221356079764956781814730809742794884036224066013874177596281917241703117479854447237479314440439072704133219945128724138385248753307119945970810888879168754363138443602670472783563257834330543213347873875037413042033195154793712115808546373952152918231627567182606333087705890101143933604605995968395725146358423409851875347766317880142100765694433667344315152893914617514524438709369788589875795673757653006628922225022633517353780246442723947582528851818378531321521483889175681914079063862103191058754168707683275094358723818195589050462809144143282387213886263487805479891655289806298132227380583802831268381264339427949151428104806438431464129138982356802348224168951199818180403182202898702760885735398063528992058363367763264004515495943745333561222435339477874836152051928453668358114897101797075074275609661427647585146937501153353573121194773347031358809348157302414469678410472772543940333219393635560133643971151177742955041647544690219319345772585663098574517639463092744353626627031981886819778348195655815504238444250268321381782314902431755380806874942754786270455592577074065151889391071624576890415396096294999401117569576191773201160404394228845604136513671313449105627381474187408037025101443294100681322748426176291799917214929584102083696195306053141639586904851618323126855261669087917011051228223561881334721503209006417629659973758617801473798156945976886958535643866479316949787251285664935958165271436703507066982442647597816642200030377036544628378113466667159106179850778511667216434438010759952589845995237242639226996242286573776413607367376104218670686529399792843149884314214670101113064269130652065066812198071797126434959145348443873534199449396556578418256772325603514725485477005066365483094227303855777112906506537982557728145632216669021243117578030000233070596080757861006149675039152745347556742109319636940435209852715579871801288195762796739374056795067125965989515122318513931035292371276108939093235957146086012519464219181005406414404582712930583481603332483554321659784882576952721576116256256409272498613698449710133533137260049845903037822566813550593940105778597165325725623290654489660627763315820488923896119464766653956559758736922389170467277715525252783326187232389693116906348170444581023436497447839351710238662725037318618036153456655919355029140738930042595341070079157565826518219321415065732235007610883991952344819005948499370719522171945666115404397919700859131339190327186189268295817955543416339687904023378764475278176787654469442418735929542195473470542536953331389361372315389325752028929586490639597248700446269229079852214376480803439018030225020447684044848354758572463013380113643611202672293973000288550611706667683557834448716175694072031389808959119513038662788049322099194524772817066804153380203148849054921480527625535667505842379050784581699082113146386751565087992722611815194628415677598569039444922292747919594447738742679781002165773161482923385827184765802730994459556572308840591339295122760335396996731680868541250975687599549497073281335207918277551474135378297994661729774795368490207888821712806160504822162756689551909827352280690665021225039521924839474693059917280229664194660425533996189358293782674044378861551031993595441877461129563193746363207067462767266024535965940161983468449568494569481495151333972036308893855859198258085891263167662942093358205548299505406286624722041647081311136996411874793275592663677749240600191937793381298179708150005821968924755706206711672339485191516020630750361494602931846721322845343419695836920282398228941330266537631058665263576036503090448420025256070345847053893239697054538974098615103206458529996530425390657317699310682440522651356400165080521976276337257791857818217415115781407930979569959857000501822932957252102447771499411623490581060837341154286631955640712341655846756609571471423923174120314181778108679090919678890811822829940419354854460955408854796243416770509434844530070721309866675143528764310600996884559557038390447740998314087125942471618839336470459944392875228138920030741100375014562517494213335645766510276475736028077762817321754278073939676860502519223282211744526103301186028912671731439690200076458985216022136366093041752567703083404703744413746188892974911281492928628832166819697141138499053835687360621516837176621639854723017641458968960332796515783576140442337901379255400467370731067823559310464771420609088828290264568687559692936524124416700263575030932256209255718599725302622445015096735157164477666298000861835194185909306035298071627484805617696073551403981475206010436455044635829168502994555072974648741304558845378499229409473209404728893921643864596095517788185214173331486286050482934386414808612342280186540027744653727374120538860787428423841396593727440015762580709682803925178792537799446662736239832042006739118859798577119834467148726965643952963621921316028501277351044994145247169242181601001842817138128620124156783512410709451479879017894994546224474721384185925450806602266884667883686484817862250814242836162267849131780434993332046551403368649287053562248949019368311454911384063539525071710061700322578848348567539164461236299474740539680399031503844282628936739305217988645473503961203890683047005351527799650682372078115483147355993833525011132672337800931057219880080613303608772167024141566916646143847051358347268171056528171939874895815361613803328925130074693581377568194372788968906618382490661628204619533043723125248617369604247485782393807608823303724273819807891413786790829614469517485738952903093402386059125371207949885905076880399360470086801090326310306408766208683640467422245954520695284267019460902184542627166278167051044085944236174423986112702530085054673752986998398436384280261686898898528078146346990292460870568362543088160853939406929276240702312926882847498870303415971792108311234365527024936575622200923498177010778984647754543572132347052439341166745582718275268383160448798165465396564499986907361446496207202028692001399314149262290496543502032532218660252141454857506213881596235099042650977286707506529040078932206863936068881057061737156640281817731293683654563548231650724724730928227520938820564601829838877344230517371344585414234372737698915182190967886045314786101238010642986231598896735433365675999701067601303210544163919743113505600334535955252365036400339456255153103073813957751707653677419749681894454565604667033584639308088500138995379506641016671038130638120826827985822827658270293092073169515725260980987047319009321560792996174604015728606404101374978956701897723253708593281240026660257253511028084125884830120317600282617730922453753560510953985293717084252804762494718737356852042231151973078785253477385832910834110294521029450241129691863394246617836293680844821301248118107894969445864538740859307847286721635724182906192856072286942400981029886649501783638500937140502442127915905558621138230670426856093582600520104807323305112154572826698733758593521871929808733114906720208565916510533887344613156293572430662040361301730839768804540566635593926858689182573200911889322844618166847383960736725539139620289016469921818976229582078923292032501299230011987481699923073612899815948120141976721103069989085117775062826603918939740019143522637019251540222300565087421970445861357586493679332163358386640519122661258196662805746022999515750170683432585736043744369603460790661435186310743418453159375105070540258202222477745185818203826837239743565922593719698352769620623292062441925879555997561389533551581449583307658913121653949030956087803226136091227625074315133313333758704500427515877415816952387723025455596564764853362579806458621734113528933372594182774728352218919052743893782324199293320909480388934420001090643262260276808680717094713922791123167599251608077988830990355666518386855228512032304609420865790307134083812559676598434660496945524818075965199463061550923036978239999087125037573077917302496212963159041494125590058352896145383296547742421533844928696656988325650350954305435057478356209253888066801374525163167539495820420035206403619095623239335784518695522479127817021003696784869838165919782442630546293868878752182526445275888418315487205869191175845460662657596088743234019407798461559607577293650955593484266137071763724399912772438726180224299227686604211494511902062913701269955622043434411644066678639116950875540259489484526997674969308010636717136378599927274771443928768763536676805158200018337182346564168703614468365897654458831685829103639809138044347854465786847986851051526499210291024903892786380368194314107839626522681395101544705672650442460044071128338730688777371171837299913759959534571011464219456082989614553458856925163031554537757609504155495475625612165208387288944417482523101461082913115507933492759361013012118794729784489808825065629494896692220241746483618592929146451260974356519906474089845052526867058654907388654562710829765357793008420441386009376510116941940358214119630228028306350258597107521758896906264068075626891346018505516180286338239617809016229167999252655465954160781145514914412649847951193996019038778284522149121779276911698411464574494649673682226373027174509930398106537019629996091416343870500575022003924105924947546266991223713917707957893111649436654928571032053790107454814161046994000737536744011533908097276480521822047122703447257518051492443813258596887039679509755661655504419032201757119019490467862162880107105582366998319235258144536882261391878008888455778077201247066773907340677467018220470654779923692747112568925722856441343400889748314102843026091893577571255623564280179258927714850536428516629678931489334558530728570447063589844187376297376621265292644404777500818326199237008267650867073666127075404230725152482367481208725943477122165200418698079340712288831122100169428832234261215439690707062706412041382817564941954536998754463681629384760117706777635755280206357571529762182187192076746633344016428219996027537003069254654369250617626100103725641234459110302989126085682620008565257622736123091968018865967359710592352280904995245628279240031832107190919372240418417323550938499412908198438624400498519280117867606433058116158682697187091693610510150363471844202396187579460227836473238497809642249227666344064214789085918740714593392851800365321441540282776489630864918214445379754593001958251025112516581651140523793192889359976114966502435347504387509324459810260294050567488899459364033994496995868541561801520505119524372263960077650049866204855782310652942387295834933710586208656902474045771031096821911106017838887313308490505212481926584959707733622571623929514287854129221525119484997776584979529939281160285921079649004972228615529552402777986348415472245303873054766813209370499239651534814190636526142690204871722036199803932984215134063503659585332119665791925780266672723517522559250632210709361542497532774738763400315506150966182457783055515042590314730066505120929576926111272296854122636724180393504445606210433498168542255707139915457512744337849962681314946753046901162363046503761671576994788183728558028138392576196609342643213856733533038908864891711487820927162755576574295530618081062545050972460236439169561919061876066539783608119504913126404558170151737075539497978461442833973631775957342813831360802111107295002058437043223051148768794371799095982665113794753169062868390787770886351939914387612891918498357165135344780630890986759078248536261342775713595334761547694078179503796194103180744117933625502922687588880043590446044851538426597088135398288365134397859680137423595766026812599905765574344584648846712510009325117639984560845922097161796609074417837224187670856555919585636652160703856912229461370442417437631012227272860369930074329448969660064340295375569459260556289755743267488511820451862577244642364232021134695184008963510868889722409365758622365855688954366944505590827274252966030924844145627724066804950496948480036249085884810934536446719210270213247543034948076536003748318351154832595114228374354368689567957300421300118102408105840115939543658405737415046688355826391437601989935809403052538692730832483292705757791725358808721183307187023942169396807858420836281266385952370242801967600000190561738380359110931227946239938868622873129000150515225929830624978052939495639528864222037743573242843438751109837239682780825499479377001446846345969044831751778816531753334659950281808474001637449041581527210851952342777233555450265849634581953442567201416321192199092999704856787974645138213726784846988201274357589793219245430330986714392574529894285346284148684232903330127645631373906854592255492708603976059191439848468165011848442642665569903254708779667525133475952821983494372737002171051112425150408893305782176717108688880882718035523124900818853412005345156325468771216186690910158292416428325998483713434321286839743064057527783301121392298707218241564869723880595438667643604949954942961501648069701449328847036011967698261180921000294896883434588598857465090550431643717776942916215206351100481906817260929879188400596792032306919182792463540926783519927476439898639562000880713874254193375736239042958627628752386002470074569006664936483493302537427677135927306673760110110802719496906826978640960587964346213640756834114675885537352473949635053872658016869746073410749178603859560790040028707105309825626455075790350136393958460431136879366950898403192708150428226134375974874064539588152286714883194576245460159517275864841813955315814405980190203911495210890403440387030938413244401716074359801919875525267180615593960503259346814594725704639274779327185414079444308685034150615549617338713008856699955008809450983595611280058396351496766098657629596893816350199756240054250788226382050766831208335237795305508361295342316111707677836795335007711511346033640230619968188786717700069588515734273171035554014690529664697748314239390144919327728350068164989998525783283163905951638606928386438865086523313534079241401151851916728183504036982429466471651090221801588859118781075547155757501272357237535463959442951923609108885360385386481130189724765244526538930630866532224717937119196648180272325566453596361533824578828890006484222663419847298850371691888575844870799434243089577741453514468900117597068286817457104279091346993252392293738143510903206237445634761384168698330571414526024252041445201520015447562563439414361063245712093698052368304598371200969242155810623011496549083600857337009461301273040893716695890230282780192141495357965504399323120794795237168968174351184240395857888635834043029165233557223264729808146251597126741226652670323088643922648719381298889193806701197035355423995764988033293814598121647365711815943008056135019734945032540109139589634906042416237119233656733217559807503645346080912054232267314968036701108814518974377903379951954111577019650426095706495305042060530678871816947806885181693787701776921396342747161476971830268683258231930249144003779469975669653706736801011871384112653252021386799852225518215737277139416536501626795167283772373310816158449746204304515711670135632544727736591351458082166326586022416403928465302457354949669165487887446272284151620856460946594174965003149103100502323806606349411481538998743366769062138980080319573168895524449985391000773490800709452542594437080420439162781345110665127487099310420334339977046860177070115398986434950904661254027942064598011749802652160390853945548593493124273701137472255706397520999775600709379628078899104269263730067431163525244502858344567830668606576474188608240374392245061467906242264348048656863466280331122813070918575791030110087264492608637367173932273721120303051542075437474405719625740768590708348307436399894002129983971699723898464734442023720736286993611135622362646693358840478323557973484612210672413628196384247814876207321865126402596721710053919751818034802078709817016851326568056468441656652518156376777087792075346367528309934860950684234638276585706774169272428511874922456273696321783816000811086455369725437615378265606473018095724966515430143783076152858893812889903806466985113780338433938913683186885657606931981485938068414618423199680412018025364817607611604647463760493496041129356284871687901860514066268899561044859332297994795647385328707802664670657833209318019649730659353742633932555189650869144011759811074014979782873164564955359680441622500087599471830007538799875359906770201636326830209049678713550635645594146050587795489140233529248201044581222361033530437433048590398849467258872068352410419776938316807915705123058532252404151795360299412592586205122947689055554854294446100207943511498141615171534332999326897905181939125989465483760050484733909910656494867524223767252284349535799113792377087195631300462295911746607514397306531358039013406307974809685395452098975815121481434286777132828282361088787556343576594395980774030525589268502670239390816405245685990972107376982714062802257692565525426793051764429128057773840892445592261255520074138496105499430100081506472826226409043947457903805293581468527571651714604310298841005576006697005330999506153979550286878441619802590002427691647958368082203246198083829204155274581119400071668605228311865384447251429734939349122302560827771526357494013537703534042347678864202200183232073495861850251532058597722469674619552318653034657526725382000813552214943119524290581666714211507787108136309509133836099486586421443823912257613359465036385495998640958430990572910699230955423697657244049854632723727311628145336334197750491787512071063458948407248876766838015835759564792743365600804821225486246450443985156551730459658691728886542927017784074667529775461303682344982607803385951200097402208189774190681763985080358804990318241836436596576519749119471519985482694706657701307493752755973861768998080987300742610488913682218105478197049111250203924021184630796504294386285984649568481296447565704743946961378072570226041493547386334189513344571530328039302353690796036719420184680766446254132426698834776476562755471478284360094046468047032055249419154398028374295948800866393564046377336474443317804360120121000200578875145713630975696785076316950723215635528088932790027104408364398668533573886086105043781108093773719694517201507761203446180901116767384287103242205547529139015214618484555326220956029783770821584985541840436718753024449987362913483442335758341288329550198453630162471364485719073072144605176014798521776957710280869334621883286481701604069599741757624180097128523251463588648087330034825966100306212321692916907991088424600940384559539956139427044552847079154702017968003029007442207948997432143743065777060684363931642813151722229436169931947404124713556979812016653148926321893301013679026092987321812845727874253139182764387241003642962541388772111691191067573143136985989367031787195351287125481278771355004676969600883298647585465388256334724070225124861564745046435200421674442759630464532715340624783911370394929495705350096290290124368499415185128007802432709232559298557563639600835813681612326333364652555036221922364982261365533127002388074087186211838764062282550711611911713184452527950458555692090678342334423109091324369023454100663506130110346014351707353023482407889043250178974676651542026233234850364454254084445558943143449621329421203123116125759327349969890264280353716137830791430261373110826186435510514633661911720865803901354741528897522875028421185319206278335571299674413566467224160666661784558163183913272916672826631339765031945515263215337057632123658132639307467194083236396219365175767306381873058784305557743935567176629988308651222671974046162447196199426446096747105269975821120748343689358987105051688346173270729334643560228848965661342888659646717587699583361858295309776975335828010265100087533966397993060564839838299558346299153568483791380089468251181532880049492393283333428564235196586399100478029829489321900996048984964618503926056843148063399334222192413080191288105960648457846345331734475048547153011017552326433161330222776275709408921427946590785100832533657907134407343390900543906677693175516357143282288101344091453845762706078092633253396348326284750647160371057358149821161967386307450300895635654803479833799993761512185028646678846228357257833296282024154827274521827257952066340743098158354802091114476645459667765830372262569187454525403410303306249866118078158957932564295981896954821641285365343068737444321657623361026598307303389928786530555107286632799437820907550308214106681514119703457269988019202089841774536782687918228845180340239589364891314671341133709664653410967936963283163767624377679894306909904437828001001943764193092800055004297624031756240460319946187072368305302606433587193484885458006150261936693222035700649763267535808989782048614734596760782536912673897795513941833197547538684215300136005689643904382975211843574387543903286159273744111433009812975714776577623566857175057660679948474304944757979854382247757270318760183674251165331188451338287902673423671446979939411019533229256353337276021508708249822977338714375184192876059854545397287632343483067636040468717021633773285820681326933425984996604827115740404725460192069249671301754577467531429007896989091925479458036457611692860228775563571546973327971226087640855215930429052409559925620218386719179825070950752301873412967545770395480101320876411114565372453295963115083275885719569837300678505453371712728522548584876093992094004168870492055080619478127346446912900436134178290673863491797314201836700114226066099973625142889009124534654324436654920212075704427667744649406182432300521325940880655388394227714600356480275776142139986799832278096406606456830810725668260971223832983750199735528170005964515514741578914822540307972967229761660400270201034141524440210575948085203876056403851457702971152521891729139206682243210732545911510138943979863654596533074883253431870353211419804903418251905035938581014256513907641448157181339842729792133013871547027739286707107044466393562354574915267199713715569718052398876818533516167918102878864943822025663903545738871833696572883618307031447503875280742617534576617445035813987811710191676537145967338524560008665799601252912109653279682129019674582018368526853064418907664202528881923367959040510263603648157627720080770715033702318449751481616942978357488253827886816512907275537204393956835964843463159459339945786311603024373598945895757720169005189535494936613890141912623063738832506968947101829609805656763095754802485286051654455184091246692983858115741705456176002488350995682658011512426336543424116090036214844616261008487901844721770110669850696881040686545417361855730057768962624000694101801107575825729158980173506824977193876308487147302236915655547771230543056130692207472323160769387031326599813679188315142316101447195485529033643315061463990677474025631142619200393711951386843681293207295478452124363779178730081995910637810461786900014396158808841710014568068008308709781088926801919560889675415255259741030267603581510825252038222390694876715599545920996326206713839260234156336599860808271192847569238431519525428875133916947487323637764623362210979658400234691156671586666188897157815445871721227073542148964840082490659096625338850631382426254417742901145740507268837922109072595013480013174687323046492781735513110046485086151442526266051145420397336648248419022646913951220110069807088912121572213065906725926802608384088265507141765618786916929793541905004487456562990584104294402715750220535949905359620531301057420676360464096590299695347294046716206363797659547577635731726867534819784709226992671695004557489417968054045149676716515748569195247843723083863641905059032856197853957435819762814344466512428157386124074603838073206463227769037776622546690885173910844553581792684916339051872701819407656931088251569489483214766825928913370825856933165144261868774958787555783759579869795446358455669870116523124881340997073503313347792695619589304527308621302287804403864943923810081674923245092009968622004899102253038479056330713362889744179827193896573752145471659406730717455620301730629564843149252435443116050060705742607218301868326236155781700138265388448274050321201706120748013542487146810134223746197869842980762636250202218258804692572876528285507735462766406246592344848489732786392137962986361075582679603948151190402779678625810747481536885832469431338152638308806650789233287049269703265832389791311949242264479686380919766848133272955460779008772917232600522639643531847480278772187894028111542209951380342465079338098383901261387543386927950342960199270068676477884806508696427466062362573159665532790000402288874393173238376790324359008376142192009799835805006045635585181106426315651252534313375443400033880168424466454842789038067663710870193553810429344035639408131497028603542009271561203472120408807858074609792344580089219424263344952925277811487297764575138423539736864134285917258334487594929368582953987909083925801532933999942363143197982672769239687070072421888159974064959999019740454972942378906825341109194212192867059802286326182391999824457321670322887411988456960722968201117549562943992343304151490880912206289005686412489094907504720505679143559296159214561398618047282645905331073808135054120460654003603960411426067031133262414096946351025804714395080751823767419255156267951840360877302133479193717586932681472657369684142045721755073812935167973717737058189655883317077060456900702265265020990473916647981689637373234226646837275716828013300632285631012895300161492483102028150786178641433650386901198330558127333478171629311543634302469964620290159524361664906895696207587697337755040562347685988603786270825316073061871946979335003093663058693449780733974067330913824956433886327751205646078872168500297645491732556546652760456343837111298267797300203687886211261559564834592307566361650558599270087723513767728048660817097017557141514639705836577858351438553660524104855713737455022784697808237934865884555226797250404499920086212436649511129514098304492020907060920074061912963396460968034339039401271080184760379259276223354573600464447464638567731283408556483272021968032186213826875481018622074638361768742576684152170790639044003513444556847376133772860739905838643390149580091041352616522005875780687994632488196536732023351401252476409228197298264987514616822504325024942205375535099198955594937483272853137675554601107483658761706893625561004529093346066216061540837336587588139786935435096260176798802359109309538404448961496866030940082812816086055588059232144264881756224526584778328525879864326122719664410842677672756499510332486300121808432761295314717851354483786059382384944186378532801877659642034446953663054545895191914007798751704187928727532145845293869307500974641984638970811604328920305302813958585178532705350416846344715671396053185253411104584765349763047659524901941232226154135078133907413883785416633414902378710092057534921245356333890943827517842551981166585319968368874999933192710749493941289118034191200860013839601872586916242549576258369319228198241301748187696193103005465586693197723335524662957689017379408072384618706740566670236313170552900505342720721266615194576643547225448002459135381580314909196945911455484220706094024068784402693412020232871560896042859635165990298845096080432500522179162554220962014216826356208227062951052010412627653667375514204833782221736713375672428207715546380587137613203522373511369496991297474760407489475086381860830975980952566957144774595403576286965501218793155152887448090826673736213016532460636609932081611750653357564946277498642548111354851608162576937935104244035443069644101538787551345257523187779729528817740645217158781087955066660892508393703104976277433783938975880674372787774795410262050462315677419202465065954572846557539968968455539359436300756775135339286812543110946152238219860261773606017549983563426437696068662386132349600176090722480929557992749077249569387796912360349256909369561263058529572724266344588954063054017049105856016789562309258695059299677070350020968489482527323831142314119559656645663004226225775813825736428438211027984720310134534864202040916264367845096486762078276741507267750308400556645346875381270738146549253262066908541193212231755284286837617068185329630877800739350471591634111325186671667568722547723217390673626371574714555768937206059179623140286302794665783389860166254767454752866145439455408273419382380359894125717361302969099251210727967591546792942325684912271678760431436814560221998295505006861085643974190085649536033775952314624480907433861751243444582036627843638194835734253940242242260617949107205492349498614626220293025835469488909888092258951308141385622422940872244137492708789931352555483830527275081994364030733112769744835447323790683204974901319246096242426410460833068867512682191928533239744922177623706011665579981458742731258778418535970425740048936131243916411889380044954121700258710548147566445516072660752788381608559502038457226991369525785798635383361296164255009478600046865062390322737520609839021565982984480672898193196927560122089592663113145842677665889446960604591033966139434606388670283975747036816193633751265246316861035227365619645346862453187882914082053292640603196449458438775770311306015387953070208196411176047535915278723509040897361829704678106555840031686406211716368913844897292572925905017850722185973530745590608584270818309600551938208618250378864112640319767342581266955296041917763286267213865418807298834916077576099126605419575854330473852231802576214472875965726926406931236994563205455880521602102272355086588050112860912119897257824007204979379494759748905809168600858034324698126098425036166664362139561689152963734436236294295755901987572931467689139401793635172366684261508995600321042525436337711335416332774074398074702353701538436336156722300151712010098287734698855922198010870470355445236448762812596056663191734823857310800257132860868062151051299014344564116087902914398249111690343136025596154391629465337978552246596675637772153328266114878716458897982248860115772660964987359377887934857483764519381740649777521995204875734391604299998024501080282186509099250535349941386974970043010089475486130757015764673328793525238255515136203150308048964091525382981416351375741894139576767420731006764665018597523210727696331452114026046474683262529507751837495902058199737328084379007211339395918511338014616343504170604050791143318077003452599881659399592225411707277204944781806631921890494887505848116072421997446103690863842705264841813192654319009244976112703634385309531056605438298246433563143226075124223501068591576934438385425495096690471294542928916620732289519762841460985694335816082447420666267945849629554317868020477039477082979919751443042657840126659191854364663016856627067606882377453464394850167988229260302093537734286947289528368234875972097489265039137261920829940579397338582397017230926906972323782384959422730389653606046961303604057102637661037603144441899132837707539397852548115384159426599840643281659393689450463726693996467134136545173539289576167869128674808595686879185275762424255830448551905934565337070054320763067409431785090081211339337331767511043042715112510928286493061955323291000010675639401473804671045716732559151149412384408957645644452594710457433543092289647006942153168855052135480706322500210426199159649240067067505567534358368750573310716501569764224539492539709614709614231278326549710284798687199801013330029159382590010560525495237350983246613528203483759628953505652229661521000363662840102865809542949193962316811633741516576009577662440967278214524908064247800646706335873362627678922172754503954520719848258843089931344953000450080101422533894472974101124995573507270891740560471106670637110914369490941505128348467323380551392451810449413230149822898111602525281333688279484598060286750306621380586518884365014499989162441342112606726991434632307300928445208108523560289245884172045725445205615662443785624119412703874560412313416488686703028221189484478360581039179653037456517848441951452100699360950636916101787732077611777444832548884360396326056359470032797377497186228462395002568740548877083521389840572457267786505780539837934933611994160796073095093726550216366788696998992504983065857525938054226449561400970112319093488941961036696107245596968106864821412780026409877455081161764509224518934441734593007482006911301908904713113122992166858485215524747384616533441160715097902832141742087785739962680635479329852989293158863459967096398966023171978726026553767215032437800049746034197871563183232454445386431947509319491855869295814813046997704056236911318385041325349687610965897822091202604500511610037726253449624916545343471110783214772538978409848914345145012323439536609227016041043434370048024569726454349363650144075361361700237691768416185694564189054944261529647250427792445415591784380403895601636921369192149413491877754164904587314399971478743937214695298312152551967539128831791196460359067294123932197861099547032162136677993403691047701400898661657472000481135865144924090023868205369083032352612255415930575950786085157525136024190568715363351967055368555209786921938040031370328211718128159275033821176667590270193495446834237016656317443321556637143428314086556329827515466530200520476341121473834100327012575249735170257034422427716980067362461933760023461215318159062145020035990532161724117940181488706925384185117859471441900727444892784956617550196011796586835562030749269970358596782237542721312339936040261478805272175801511290458869850825174311073357144505531120617383308094069485539756799334034176902734597604247713921048564269559439364367368288407385267318385660863598386146851408336343232417016978877432736036925314188883185660995216471899681155443547247449662914900279198026183785565831458954646699108151807743567546088902727278358618568406828735173937606653232012061522522057592769664292781833010373678351385011532086593987547478207108606260702953035362043391021327204803602906265775080250215541740300956519205594731696248480093383752064271509788708721492201426161014576137825888133120396804266020237945206653041659586773597468106027024246605722227598627304607010613042019830340298545889927216381448953210100298206428008139837046655432343475015133964414992417949406266181710870653467159377481915766749301567990441985612270687898570636850953503890040382718892522971238413016342677270053265467319119796820860874069954707536627857874663358223349301339964651852061182800635651593529059392428696842140808391661669184954604806667071245395983943635745020739423977647795644652184068473606527000020919141102378400306366366426058138892454623357347643195176001969263670887022245161144794999006389176174952945306876793965045902119282402131392842075457955486512681155961281199417587631554007031190909288142269185899050615190970076721549336737859130468686160331198862357919347894352048759602476355077110801109654051537462232559186939587834019135854486650439542738580127958222803288214368986966428544914854642302754309110596276137163715417089751902050493290072088977155614128241775387445908422073248767389064975789891706295749901071474856582613461420690248686660561701220976048193879047526065059867261672942240125574522843059410404922870205974679090733279970784981939194426429058665526799889642502719189000199132522888348801854075234503922488097176881927233354251370341614170292373997675051308567523820053762346173603759425258815229816288400994908901322662509006681802727665978591427369558128468995414720166128087852182037908003109941865350627406355614662386036232639158181064091622509450075309202129951996168463227896779179548082506082418946898197717350575258033884910190263061535219403106391570226167891074459026439469725566607094756409942280394798090310884696788567201237870058909823658456194249889239024513915997417628644118739486824828469179747547285387425796024146790058136576465671991268355317855046752874846239260334788524800543880002361072563080196637794999701823579027590840275753350901045724009581434394404307652578965215474880096288572149273968387699538440194368441746160381071005583721933622082924304405230505557486205732399452927463759379936916224262319879021516038474895784640813545408798149008488538233001481972363019873984259368243357569021493976297237764872730900330963880151148800116936822774013344213233739878725877463200384771036065581684566764250175152231049439794485647853121335394467273011694559299931353382477811994137280116041395495735435835777970327214362027997979131388235417699508562033700625243445108940196308655087752508077051035926451111200811440856859279435723451853345195039876086338577831658634452701101862684188198531826748564806415847951675842741890153159379208751608833678030218247378226587815880773472124991478623666965368014552288682561226580758352983201883929678557300320234383601782870940695044683506217642302275954479701154085264317697946089902388539574121449326969408760574634023344123586499912477094338714779963601893699646733751139519969067385020408421842781580228136588965870980981171082342054133181424199798250138684976574903528593246516852299611866933542389484065629904683574483515091430150538741500596245956280921655555354651847835824448175796065332764360298745431678584030732079631571145160924506016731465798928475557667439638411180263391794277309334826896600677576081573563658055881300637451243369202218220233716460013866002656278648112346071419541157446489054551527261676724021434798495782818566734022109675705936567099812609391908835496216814759567889705251118767936711955421455222772002807996499307195831143715769443912164085967042669249417910885131391102199786287481835461179381416365262245365363378217722209822246930770966817252327459506056139453761551007382934775160767569945070620818188571251992613553352817585182885783845287617284888428372553284531563271970204761672163625727172140965747621284253155054321332718232181315869300487299679841453782389094475279191748339167410298189813638100711227318763893659467789783315610407515141628207445840682546897176169996130759622459539905315112247247658346347631627106528569202390944947515237775977493467440161828866219718799875842852266140259356492251886305755912291150179733079734211533988688112438452074580292446952516050902618905459129181957025335684369593037916555695359876180157919866229648750125226190592902298457413853792046219531345688492556583082033982493325165184748518267695735369709374993669247968784870649090130343099213844357143478120295885985585349298860023717381232657855263028135823742711733083466329618839716920361338798605013228786817133844597359315979203916833208203979193212897677221294012564482781815558887179436078213208250165363068483454656515530049972610358488918628965457776116037632873011471449198089548012233717166308794934536756269528976496919140173481583180650793156833328389190363364551757557184645439059369112169547572281184127754972156867848418823113944901764862484840945778398152751342466777550935716077585830064641338560335280123366232704960218724878348253144721818965207300468805249289107418909981749531113369423897672298833606792437569805647805047626727222479619308855537772152154321620507207590659240352852162275233999520162815111749134519176165822418662419807155015185777374806843662151645582378331712141202997667640331408774135929893931992261414830059831332195004608140272730169756887774535485647790992860188642998407760419049323188329884983941804856216873555217641623194823856735606294308462554327438892688027739900873551052062734793039912038206610740442560345743364543452463343099514091662710212773778012908747665463666189482725187288657878419385377754155066829616874578051022646931361521287495528516064003738225211624052888537954665811765133840968110993693364741339736963495974171978600577507086096654242610942519670169748124151986148193672664444455555181800975301753002148406214527984547568389530136666362475708980880175485346360749558248055455145282443852876228776323004799972416488765403437032696742585834655692148233796944414080503666880137076932622796825432339060769320291250802297332599454218112977515688994621327370326384082688805011676458797831054075281699458345925588307822314929073178670972700893449025480165459343400472626845536919331512139482638720420453175298362905190047406939511779712592391275995199347564267330354279695389104519161544361832184412446311143980343596302897109946822411118688408386964026995782264895815709463294963384803844630158131997670867902617772307267151432307536963987061703301413514514516897852671595235598093354395875891248866405912206465679427640855541302125883101978545127987343074681916901297275178085674215417539247954759057092543220050191745375273445350030779244722140117344747407016978867407917877979008650822527276869956750706654188816268943483832855730595914162573812891725711589466139268392136716007311858213425971965025572235091980679385146582988209639605584496321372462369861288449375356415871012899514090915883870958804071999926765311252790207642239902065464812798310889924394596249987941858186768308181251051636883622648158694181528618313097484896480823428106367103150762626950072722027254528283181568845140789745147383790566572982034158964699729286400506388898463232015978941453673202172491561104660001678729507318461656302024946666537820006441350049319712673591675859105028260771251590564423422537962543423763177545816201126404864675787307813240646164514250174264775787170720145958561579725365910153789480563894269962784957924618730815574931875323950933621706904264240760008158273879382103650902857504707610585651745825603620246418966925821953238201062340281090172498424007075851789259703518710369167731190226948226196469517068709630328833619063598650407908696073071161019410920522071818852488088991435436488559385640384364615773418632645296537864165176819430606027997266843210240256121272194891633965021321052026126241855655317382553372902330964751583188233120396008931804927763276532230429212448717189172076162243921110403904454465715389722569541294310853564511056937711099647523191551943530939302824883494007869045552674075822165243866120950619011261079080902367660926925423085047431897990036663868126067672064104118006902543135720194898112628224390111646221721842801913349976679558184500184428856348972975988109123067154162213750530077051240274365973076106161917765807051946628742859808857398313161534623147558635217764360407208394169182790712975934342818244140427775907941988139195975113057118395369389236048778071032481146513264791285117174197067200626396413673325602303319083407364039035102735016895843112952692231299657709093278050539336901757844262976131796740952278544939034358254245549500310779007563230141991960758749832669155012922129979759426553013808940765050277498580777302149075354435094899867070052807436399382181249129414381110373514096797692679317000104013270505026867567685341505208452170054720392030684791284658759511318086826951843997378340508179829104629862852159495252646835291763649402369712472330408708198747648164929428817289608785861121167633974650820479211746014411777080278483804067902084397774491107801725500674405932358536881389562389761002208295089094516691277962621874257040270080186660994688456966340598832829974360669043507369075435148116738273195480331629959964234259718936742393421959882887360680356401831233876812299709781572156303313136222315894662782848556458926041011117210928108742906032253981014002111098179332390213048694327827213821527901711634221068421396224954285716797677453492304563363780423031191185799106896893626785028556236903604866171012241469921270591303732356828599955181328919347872069800636321583949633791302994664023584244754468527299379034914943142084315168247379089049234858312513646526681683817971436778195791162648323325106775113932054034470395859371234218203320848804153467383951282938738465378088480737413245790734567792922472365246164555972085797281765601063038392387581895073575394615897825430881010193911398238104167805777390828457407337248038478698199134012834109444439371493183456341380839487679843293387428100497448310196883570624480728872704776109287590504956337238066966432412657479537212548134792312751884090526606033506288422076544053255373119027669445567687332321502150719047176028612719529930820074954294234128832201321477739605906989567704278394375851026869908632849630815918038172192506297211869423313450754565024762455943062238644129072266207001311264557475737898967788378440987797989409931268925477030937985262034540299481647211183073061086564405181307858211787074184302053260279850360267932440872842452362409313067638090478821967296799526115115591244071833012687168976738129098362820454486623305833970112132120898161062014775077523233540226940496044488616402261205567053539474725984532550990767869975931083052618500904188459903137085471407314409813626465455862027053116399399213593324856893009772598338775334920172546653916718812419431543038278361999989592577698444476378539515335853448454291326461929419172409834571285776876539184779239539168900350437745287950161947833742598570099783609236218315368165876024511964500270704194001233854494219890507662965879982250100191484922263508757032562185874621766156687586790283431240522723025695952868770845925854509335499044464072203577600708653787633708738110043472266676489792412381489507603132925880693262810266578531177122917309777644141403513970407049471619947304093457339574017169210435614827989814112749735951876886958869936939363407817995815854674453954265714400925979805017901931684809281815417880256355190124357576238288783039207217208547522283031784800696983225965406084894293419928699579770343347386185278971532312766059898843652100616888308070479989288771189786818009026914937712200926865387073454406714723980568923326541489505105535332903176534296622659940359229729573905076529526172978932086644677062563132437206335631720771951309084889790055674640269114348124495527767007181424604063485726190489849870840159018539908370587317737474408982058477272365753242563021164948972115897797004368495996671809829616498423112388465680429633390008561167939765235997276220614922034716610464184211529277069849977426204824907181857804297886724022765316047795823800502023570557997850087564839255790461642009080059148233616653561130353822672119113227604921355019329843108503665527232137560545977552097935094659185948051021025938481585218399973007309357415488585317832368694532967813318413213263917210417730589915303905954409057839284661131391119752781134540909784913479269220469356873092847565563409635294767294149940606946079856282319778815876713148650464508809384190010775492290331917550971756214758827101461115260628806569587730748971347832121653577931375228573892811343098217657017313555546393697526459891540007541905002965170015115250037840125754810374871407618296658280935184984763933548299397184623738583415860480842350596812495091838542611381994233972951930956592701536797472045105191295611333248192860377782308202920859102130783176684894329349502444367666243261950550551562269663544805238927485301235037388077202936929608022183748038526010431117337516574945137971561988640105686221974216992087137392850535955703838802385640089594885975097752463725998311415581368054885346577157988746899803440659015155730939740544514702702043897613262327746817240553286675052766397178563089103094791927409824711894894191986838611715890538285010479894847316848436789858176633918974051761837604246237342010089393843567948447632125113111223037785189522408604396263385223984363490020425007559856098890347398695340391375039896671800373791865401452385134057902085845482378374649025397224647594647884416455082588654200037626998471772390931140078345769655829667215372485909816958245011497236519559791999608946705311392154566644188022189601348997779085294317582425330051801620687821724111233293781905845522487817150721052384973462240805568280271009466384632536020524324136362047024396918265024823788221074950813528452212611114329562909010364581548586397688929008393972853377325561368777742394567470510885926992050382898280698206409279629102570122192378742419440338332944107447884575594584123799566041165107513628038809804114593377735344076278675994105035577899827982213096729502535674383214644180119327693765065305883660465771135988971284076230195970005580934695778549864436793121974002895326176721226671513904703961733041987565903415065253299764236606955731832991464614469974225754000897701979770227585891339273412473171518951607611784053711355273838860990971295567223466610637430640462141198351809527390060774023386105563378746100838772002593395828314839579482759507753696086803229583143204881721486758443377874408141209020775323664106254948592790619165336335467405833214729748669208656243695604480634679234954102106224359752724005099096442982376691796487051051222872627647344192603826866904251122902957230575818662917025416612648437226540119851856564289318341222374229935002196106988298429189057580397048735642211673928726245908713451991472254615978716792223281163624352529267619927826734810558020449687039929818231831177250987955167596476304623169222809008448059356169046226509645258716936782976742484714303042559340435370732612197975754286969429063703290036936941643809187305360400799856991655406369188001009643973239610108869364938639196710531757803649408279446601295500574975518444228240286698050293536740327223410608592388238870016358335231725612890185447718870276466347513606637900618971156955771633823588827839530993684773003522357747029338883323624556584749038245780747023062760553369880457560466479536333058440761421227360578529984067356522909429400495851999908138623975315463718612008116727624296314328816699989203572552576888772262038177854903427913920861477594630024668107513263549431484476876580970398748374135900748511718492177285182712051616957102200567428204819290101022731454151920884062112777017512996075799418717203162939933130555235752824271107582155346795265436038019805601913525904263132870987255419549972911089697587601415381904086742124432830267240177925204607301100135915382932113764505474284883471322736705024208113345051694457596021257198287086724331410545509530118379486140149651252287428268090517419161241853765509083167789568643102537229766387375461823775822502689404907969913559350264215252685763630127256702082025574105023012293088633720393197425804972053448178050691200285881419581633112940080861865139637197184749968933382674964210743257772816735057859192832279918692527971076053237754009599532001767043258234869900182776021916182939467581944807744778561066448670499012406468120096526975686420072641824379499968128926502077816393479551522648529205511492717716934670899029156191426556540992183987914344767288615667474029799186567263709721329130988583640483823252900378711315354309387153820523535315143128413381138682090219803468691439390852258875682587382305645278795145282554257429835830344065176273472626210919151281629969570018599370272173546186290425912549674645185221421090778557867238619808463506633000568692791236090155764136741002013861843242149552845866789343059964196167235882812548515922664821275076119533091825568552975169554773509559504794077806248845911384956337692206551047331748136347240822151501497174179802894317967300058896664605608544249415331623892317060078340769056973095944572777022802027150947803259025404063500994340367837235903981090349753414204666184644061219318979513830990675441058937196929924391445714876651769759240625584946568759443220040409348147823436148996360822503296845367900496210750478476860890501292461624128973420113322649170424636059127205581959844823315642247267280168186211193040484371955450517002894446651114448163019820093100075376176150520991908370112869842526264315873213390883425981338389729290483997449520534337510595487019204506705869802438668510186784607088333713737835037169709410830650669101052894927240590849381474394228146044239363710639473619482176309476784063556746535447225655403789865883322819497161648095751857172349786819436053503378002022496590712209720913859973680405499326696176098818537172030107659083895948901604479678650712875924461889746711187760145481366743860170075872288548907170601700419080087870507552965354683113919517135229886757349320714938626992255648915477606157775383137287129917622172861554685350403829583839242255352647263248203597756943892960681718710483412500448036801034053799480347964178593627671340451428376250496225860090677275775013346907951040336568494948231145748038637123445241730127493011538845449666367833994264630756340241199499675353944156700703912792562798067009360690374160076518718449200167662946618055597576182721340875501301120723421551641764430257494374415053188304144234307344646423127037199676101119648147614221447819738799464514510893549602831212648134974406331217812029178727964815090482673015965475139323001338371796185767082756802677192913018538644580941687803125119729453159733133534221010058593662141829245349097653761601973324320909510056329644285930029820283669531339534135017947734349132329984132768469129734767491544028703399811444214254241413704427837603170544792258215523146089735668707592110492643080503249247893700749615727113299300785848556241784921746173068294836713372238985503188544847944314950957943050417918090974862324878698676969293806903480604936700081593676592728973716575371582188694382511961446381893301713908417613094689198620889956624147120667816479185269749441763052339300258159367229609305286879035761761522264794028180611534282396062053750939780609029228490093323595291193142272335836656638634254282146688159277081215656012728297263247923579487419895387015190244673738561969433883228440346382246155127789471155106469769239048743610326841726508959539643659220526550436682129851707345022468909224089054320727571817407496390530616669625560782140362177495932878541395810126851651505815765909981863849156419070818701676915711518081952743230731419417148546051170356694097939728714509381557977182871642719044230638441991275498931355598944373168390904534364034171403895486111099191748383265856227475810619709717349397406270499047948761333197779622488586740090255066153252786126010870626689495801904268976541243310355025998542786046858714318965669214704079505200374155596818636959411322741417645664421311891587931998417683863020474564561738574666079391299894125836123338053217497151605294034145116027586710964945326096607129645882867159568176795348583566963994839271305404476546776400023745032469598112108366343747707354280024269438298651568003311654741433122510695813487827516378589821583986281100949069671411852565744424075084686474232969351061557754179446510204157139550012961019300584390880718263770988348989225751853588138222130282926211198640374358915356009159147511807520230646898455556138174823328520861527405096876770189344851374067193043292988614000838988752581043716280203085080420185015962576950325293670213655497812092634288173265120516363806185732422225419243433030302526641621445926696358272887960581194086963641028382629843760516942320693100476431094390623250848419062381975011268700176828722212465248190931980423945104025127166100595026593655021459023998801183972875385837553656060249110859361684233583366603608460414811735757383205985351583104720229593494080941737972829185853402969731341820267140954046318188740738943377760040567888069196356969513122914150805241110723032309217956602893435879478495496876101582776985089791925100740906503095304045058239719886822721230673744443052702652780499084012786399598918491895371404698911289589413784769735859386407346204031889878435998517278883353023757493232964592708169614202030194380937790338009130284392026653121272678610841569444338771385565294592589364906090087319537140872597127617421989035358414215137033169336219444337062065892111842904131968711271298094390227330368068172822506816258069131935440181889486105080983803173946030673570850291133522861734597365325887872927030763603165740846295750156401514710240865132756003200940536971617076148320523492804414398819437628996247511645425057937676640283488138314954456895188846654345196274862153888180244639309568538525375644518061639223095361533517324230652671103853830056782803298733106150610054508673704345788997654282441948776042699918863993274599060311345863890672478177554530185398107391755829670666082586608962736309020603303621669927238421330969897968699592066279697625057998809016711842273022447698695539066857275818852601365735637810163553915760374281472005687226106640007704815735955604773402724953189527912901057318225636245383328442634830721606326356094202435615367526404037101182680879992607923100141274519314173257468337102227485315409719603504819269315573567741442739331330489804893364814259352005200263219126373625735779830483223690856785957769249843826199652428178482102311097212790226161482219769502677949504635784286887176272422544197134235655082013542739525771407367202239728075807243347352900094213718144924731193770541001621753262458539963960454853433731999692373959098676636264648716465486762055796185961784872735150440180851125733953781879525701248847634828546826836262045079620005161315180192359184939334131151925836801414240838401117388083853401898861726562784357967372315974469644405602669186045245539599035420060039212797327582654944755733945109198670592657441300067227319509905722365305010664284146846432239220846110726092397786724127020977098639021583114669788164678781663721341794324255907004960210007260915566390535532990512495182470504844433549550916924644007582452551077635104588239884219956896832034328477242317193304142915675061469715894750300150805428268621077664358460577958834212483938224939016920898432829493081515455124581367410443436424746065939222462201512383896051256042504130157675277464428484183245948995989921283632040358456193948206098646172710040645251288970966928451882658289393488551904745202397937229566886011567788348479074161747451138137433175293800528506419813584516461649051920629023883164258115997774446306775662348354563464516447938098874367418267102226093605228577742032246752498048217866270826639997867484586588240138845867017582894671991821143805039869124147137214176870668398963195338981363582659232632278671100863156869586346676616589068895608980480050989879964683855390009005037398345866890057621342395915628030655336144008384039472585514790978376797683094876290521596587085686459076872350896569518853109469189705810069866443411993991622994020584797081090924504582744366899764576346341760804163849813378530261342571139812426508956704725529562680539189020832631416107010660646557728333586440453149846638162335585718154269233855580172411144226741255296128785378617072772337383271485331232171178873602656707236238749483099324434977520461785519048646775068582862437455846078080156787170479623070070191720216066475334952592936287900291683381155651255352069192383952890453537128186472004723628500355631531128223061100607736517857888033021321095861678916473496203196499797304292899048405392745383221310158554330883380529872724140991703278336018100895927232500911740375399754673047397116730020872221636123119959713397615312022465615348139720851357063561710055597707325812311304204316354211166829236880326671655386983118025899774097296179446547426647668901654215096503249785980069267972048583615054811540947337161117649659603936405385229862106060858086717958643350271374812305161134852614270413567591200142029168586957122915297096802373861317118263610428518852075235708449044374624473117622171435637662464829946546968962004122422183208593762604937438486586186284122559871388658646556716723478380339221481210282665773791872676222551920794277603656884798272880023357649923570245856830000412135923409373845464541472725569733966518869560231572795851986268354896433442704581312445999076501071533040374070598474157677963695556501954454897633300710257332905244969020874243569180658040921903379927016444047561092888237412428230248598899740947526079067505900307429053016715386706275654349393705231993769215634601489483857349323744034776169258159410159178260411754627993172750959323695753527792737288498890837452509943642129451057345305909287374808867046688627424509353125957152324979675202728330455273130269400932419477168115357712377713558551177806236187547001206354665738516312139178003803818768194398789766289018161999638408440868993659017328489177623925575504969317758224573645921888331182045128655164834505893849650234687002268787326512484082667109088731032073385271735741801338708694548891637972668536898873996346194349241319123486481416102975023372838089768847647207472338807194135499603666047323893777402277155611378652345903420222963398379760350976456385539294025674388339440599349571956463930809588057205176433348765424181547439866344935897515022808488648187510223010560210659606563731657798235724169810144575968077673571401437435499372877580840939547036500127341885905628070680181140337642993784610492797812555579260260260233958865640758393744579819674801248678623033342400746093460840211251122056953579492666873183658524619243024402793707370729933094051285420637745173888720621734314713151910758129855393952016091098631151465934386551408634083693308485610852233442671755106409097943940228723558952002831505614022532290494062411940421956541081399346257181428971814807176368781008497420921175936735519134909732585631959848287582288188440838558977818908818867897785492327204488021234201158605196538695338586986860860299384118263928844527037361835198070111584808523583947335756802045390522894082893377055907469624564649577779736915879923259488813518695388000354753123900743144287835144177542863519846783726589640026545294679664625745283291325980456449802833031172362699419882031688025158107883047059440917816502673404736093288772965265916406729309091114117773726488574353617495186212186107411637404003234257016948883398022142379715090012351652816758530320349399527459457380576358514061918261378446475544918311484265643013676419780769159638816231812775325911384276884546451447667806361822691301814967033440704811833711809752201477935947742468945369922596186325269595899576962773291720585507642705372632431407060556503201705334400841146227691782410408542222590157264558634478448382938216763187927335704977591429484448109880042657587218956372891179482842872694003196914798218889217897636504265559899175289643643688739034077431805239362557868641913673457260303450929474705778054632561076400044079202235593802146524584209674047048979245482381730551462281302006562690332538082023157468452211658749612844015229838457495901738093461050432034446910293833686636880870337127589326897849122919303109619587188711065081266207747871991021386852551845536766173900582372772716422438273228027506616131414499127658590649188693131494741718837870159595976418918370791701890541360323505430557439653657505375504546801791049598471328523874211257673885691938838810889604206494415960151492570244988999316757257480431938679471157183208597254607847746324331518034114805172523868246911638291338236408877900565327983924535081778207272406079024702020928220815520027814317928494988477632351308566875137120891437230684218134140244291976381592211915827569432832236199140577747670794572391864008142580665633617903189033967255169013472330017685635710711826815007666141604161979658439046880375392546701811264802272086413267731476941777622614610188767822670303607540152354195500465908182872826992237371399705496126004511524853484648306408045818725019962846094453712676048541016907129268199427905386138258792145689924483657154365085724429098260145114462556293965720032401704593357329609859021692292200116553647627978997046730567909093363600077338894056197633904538206180181643612596652249184057810603813662686133609100430293495017052812601009557042235426839337474161939279180604487472792648973238040703506326621726429436994236466517205254728947888241783140062132200876096753316721513412221910841674046612451162384531990237892690743132513126420235891332858616660192681207261324976050825807643786058817053834069137095389962256985052220850127395888407726967556714066603994385339841526988490737898210163052580734582500894815129048949991226115159654538328657475179657673558438218876866067594742954025438743097270369797164892287135605252790572842363488245629302226087980244004321650226666323893220516462006187382678060172070859402387680955659473958529864619552107864119594370134797035596615248653661351433505867238163243082036125438602806769120174151549009929354266741818140433325852473076979718560562065502153654572296318328901774360314228143855810049807911415508012509567681994207977942517960245292799121991682217194065300287879041832477057248968576254848256113069606018927222681813641157518379282659742814882030079490054223411802291817368604993918788154962065741155421322358036977594157844748068004412198553795087812400616128111935679545650750786415631872781908559126556844484097964960763997670063960446990041051457902117898943012681382434047094997993496552653169647016839911106050661787108839984606210944124392963622072973984763273067492452013958946553905734521378806625175869662420916587385775424354134639036189962733203666243362743477600194294722209770605293465111158598293384686703179608449256214003037799751401719967793384240200999206478903980389503052498739361653174427259075411206742923064657474229820558340417256911994557270871488651620349395635970533692884348457824190080646974221364228293439442794132158283751802747468373616518657457183435875311471111158280579623978016434952582392497886948865022224112808509652612668958924976658622600636712860762736172380578731088203547507896987536584045648338706487405955749860427626844502617122457204992915573469047914425956513473764399339300529068209205453874959114309889484862208892806644154087982688647361411374136871351926730640453106852873988811648413265600067079512046304283924507380050105705774297927523637472021690547802180999193498462080797902311828869688350037023947876181626987432987107264645300020255799019945043634570012252941731512173848167232434185967573704884875296466162542310166846538239590433103758952929014870691870094414692777270183879529259230133177644380234078448239183220102789594858428776370658767731649410982993957561057509862870026175271632570589911020832614186258726774518026947760754985648200179869908895936267625958687565993797894149375297648233247398341478136845001908506838146616004761189713931352280668020576614373324552144354013589188932050467095109140747736990137226049924294532437978738085196297100249141079188867343949884784904471844239263526083267669528331650302697804842481136960576521394002406429188068921574746849345684883272348788069352757002197616324377970032870415210043969210641271571282605632542177751560466026004015045372330410635802055424721533391306214165695800336766820776901154528057105210462339402403427606069480008290542793668049736092852950701974262073919189311535383787087903071220509137883283743098203841727346996809298014347339948629644317984102193038164860963920162494188731423449138762505284321959872629123589232255085531513592221143909060510291923963131199670335271676277140476957970057739703711194113589384564501031626579372216889375779498070082588115058879916479390806278417169072580465784331543118044137372495496845528690418920880108232114815292838483111032371936845740189806248913078534634785002469335636522809005547518682694052087913868004351140288874829568649213053079436700550028158984694717253761399510910590633161192972924715189861946420809298351341973867773463166607407348504973980706732193943475201054784409243897689656906496572831417217373752955037485368686390718417394884993388500215173436625808363521704886690731799136350290632722774271744813985448982770008687293537288137225675059568368317820196203710902664473115546064013251950368322180272492125173096794656972392276013068567048360427603432527635047148233979704631835379005710313486273695359038422734465993436074032321115947785371422183980556191405854349588769113518617829863427582809596238131565625436361750328208236539586423558654699150933644698298244028740092426185585389558011425447474614738938473253068697014958680957534332549929830307640740278966079657288344235073461799879981818274702933821466285896049854608946518564540361184235355553582689224367197909734529835699611641286332856236882561383515640701065043018701828484682218583768159457290779246193800163079311616955942723111208292631590613424398776671649719289473570588469328255795637822989649573121925740881408737587847525337987916095351153389952773328015092276296006661219582023221715385112934582755413306843259651080222671384853386576523113420739955217275312854819212829251431065325650459480554690203041065356431316795721989303640439811343753079771661660437739421251806409629727280275160246522667180319454865783937130008634662820362568992707628228404561905807398408395907499659815864827017511421631745816687337877410207682460732679133361330275668672820767810193478247633975376795300354317060480060269197128304025312589368768055307064149284684110121984887137652891938466610520200550370734778708006598464555382707597600831782404597868872644025747088008770781702321170744435973388919168218021817575937903205077050096554270696655702133364300755401558457612571704053621025402182384018349071505784384027785381290027280712448458266862348368942731718097806728637622964586395203684743329880739055566595438015373221552660684043269222082925178258136974902174056586993960160080416966647791567421837637279974053190700880248953835168015727443571532636364031742676700468404427688112917190195956363283669329368413343300930116999035184083222148295216165600883061535720576969209507527311747240314193270723955954745299451242194535438901379958877579130625204854807007501628560554892339158163805951024316063875030951041657603172471764437561824619269595099967369502313532888894037928511348852265931396725572234301850162164444527656346124399943467324901563050664708487043744604272094560648577987890901965199314110330058953708444914601349118465353910925066255250865913041054553558269153198116358866208341636726742718491788779197356532467281776308352939425926920271817870709158679429335896285284807430783813556247235686216668816059297268577424205564689061228167817477689308760328968262824208167403412817360986566521460199573547892328885600937067076322953860802841632479575584997960644415288670313574442209859730596127553897653197772405224575333832979039366789240727724909571388401677599344070724707234212941609423982845848053366553531900412992600200101270530180176671376630878793265396639771856678686422850144214889903745198926159182396010547889766909577969077390999927106153689426252918034690275966643030235912312280890087809759481142946918995073461847680508871187692656429648233766348631732869071082121551127409714671557603948349829030779635549199360730763132781527741673456213736565837519905401229567157539263967272926249831515187636188170767801063003734137865697312588006537363543841949709067258628434735623080707997124339862500637291652399873056410733713055832635609240360195096297222928138333207227654855629052377977558804542641166823760638724137704277113068004470491378677182616341224040033840497681360162588394976406786700072505226926377261402461546713779429685278211146859770455621065148713758045770850225907469015619701420190644393690804480661620316603786111136349239871269124329857369317632560806842989172868417158024700859302559644381022254139442945869833971991691913964861631353551767036077608383428481902363570587252623113794270836365360561432343598348046791909954490961819681814777943243023185794056125587210892253075428690558704280855083590094428500843484032231093418248798872485815136675067449858533907075698190799661538744715797320151006664887544126209083711572646275988485055468132247858124115129367653696035590783287860490655329996970022811433568561426954787292354006860235651219783017699110047470583924157763180020727346210592367314163709633975876173352963172306976603954041853351663619691713078128891225125146663335199420066433739256093447899583769601160597124438923588170073186093891536334724113387777840695034065836328253374825717279232130965520080370920528966191712232626355006900586756835601571142707130173181352774468283109650982923221065114895733376390357640408106527555147710020598231765352636219309048331802184910586481715297717823713805790131406465954435509666274495100998421521630107468268210562219234852229884997145402451373774097224445750079940042402336963323232142627736153885394980666283489294493957963601169467572906398704059504848941819490218351487365089735365915005091333684592871524119740247886042505571003243948824143197380857723221231792957892785944016396651390274225695732408429689732229443983653644593322032476846805140856676142289937089394332435431605641823152268941380574251778856366175847282507061337680456661640616534840192561871305987346199390189311759681828693099201252660650398526819839280994449866055057826054031864326639006816404720791052391571964558345678344061449092195265223675370304044068647478435198285731945214298718096835294870901733303858157611330955550553636347048975860868258636595394760335701560253067778009399236332516935189031276313319973487906682174794748131982716448211039224371844356178151168760202726382938494652310041057656978034448042249445489226847607990610050590050479647133975624873768233635695294299566560675409546504181622459746924233725955902185281358308603119298746699692420212405731605987589989963496227491339140229773139709018499340759835119148968336617820930509282774927873248062713589232678229538720286828235188798345100208068846227861970317554506810724400064138667812694627664641271182950343717881972484557797841211939850301851891138151578630520895832106807489899690172793674584255793757883396257146586372981208944188309589394129374494167729616109748648084908047960133865563834085138966932257090679191079599689936144975738505840552494621363774811203463432970257920203526855937295723094831221435514668571215876276076788831664374007628468851505869369867941784877800087989239616579954312929293678743998594102524113552631884849812069737669070994884146250012149797383991531994766787444109741394130675786873781714283851925661283596128534922329282657977778611510949062331765763229394406078094423303510207843755927598404560572900917666918243911277670759988820478957315914998091817961922367377651339336478649105549041888367446517932507706841339270260820085541511356085733081230378767731151466535378550823150263021876769785777642491237623275875510769736480362495497224501697735485770854842787865040531857409737656513275685695416220371731910586132844401471322370349664626246282420745544708288352345939724056457692347482421370211701358533780042504273822812458365188475926594662192372007504369393989969042651237287930652200596252612973934689506942033125144470720203849153444583973046329030222888048928331222823022909342693888184193803553681564855423726516748317149354851692733777784523445944930940909766307795279333432712138728541503705503849937184530715419335044288889731105215783041928005415282201922791151301652081592478378635717665287197734921248754083983626170466004260892126938917194301500003763125675084399092683318517547470131733322763666201787703258977612974622316399802602815428375321192947670911403899256573741098138520371392280551172691434347951504408036826462621090561432179257529926907298839156668579864106867262605190935924187173603827117146221189811247459870858103619391401360872211129743735269236326386580480784592978704746721654116744822240098263751276117649212330744827955197699915782839171407701075553289260476512933345221476445312561999490863145702053526764782146229601602653049072520018332320373404327823121859911218856605151580402726213830139477963168210221522646841209559825222253932293221651522702445666838234009778531118281367609007664098946223195141414721058958463848404107243162249024411727208533847893277537557036888665416807768160667545236097328265296469135237572479292667860579710479556390413957276127074440152704980118338920616820344336000362730113304443620663999336164224341775443297459369592716033821024526913623272798234937742910737773615835312892746461056451840730161940208837636906981658175274841697994359499670279057400866904993167615769578473861613709938619679742097132830523711078345573953254464151470544238585037003590215794902600169707748370619864108927937976873213639936635751692767906776577817877358427153784133817025096651533982865722984335010684556929926095996923967447636477839670760315116140139317966910424652439149789544150264697894512607394738414390476453621895884929431124601417782411953967786333298320181490380789229749756293881883522145864539642940562087109345109401468906859855019608542997268601106001566150352915266297404841191344475977854125293724119827330382239035208317150612482936280056208078728324481846641206021007605983490910942994073978186292640646130538435597510280042249315224075403393850082524463052187892661462193890111263031683116178227238473784297882460629079484662244663893841130751080024849723167912935750476487577494965458121287482650483656051912349866701671501860775730259775445489990539042750970532528628118563464869105658252847054865481871642611686887449038214654965686766148643069386170398324517041961005604100866360710804898326212672762994735786409728017066285619630946957787397366143807554847515296971348347365257163820667340852395998852898848062134291294790861957367081210443217850931217378995857033086243069048917813966097135217351561411174149732169282664284742784267640034747500216555013676136865601002244902836313862353853560686055721434649322314825223484292106353520051252569164312564700001319384075227833998953317640159620152589220220239564143148023918663446336926728563178886593133966346085439538359549478430630150109439714126090956583056015850109567218342740697320240224815549803635214914040228074801247747642429699247642703589314829015683863249307272755127478357927655842586710464596254867759281186944141201003886650802055645351274995686164216297703581807364384753917493567030043623113096010352279768661105135176854524427474413581876316873422432399594965536563995408489149272423366343798565918331059410971093312099519258136598288796158104083777808312409951396732977502907148419663569098752160213496864354960424614045620430488409753467147357076295000448741994745978507420090607927120179415521293947936894710236323760551611101249520222171694189020369157478811217865005207272783272078782050719131073138200221109447203150506652539802725079462473749089637803293141075539388772123837019375753131909278332104458601174858667035027191598023553413058713836353508359804102978711798864151174852295988131355296736955171435518460026415731860445621903241085495452739470709983448428499575576684079218838793777565861369381990040401104976240828516135971573301372160117969795368019835389216498769078072205329718478644585037718159823470123829679231158733681860519443176284616896288358819709228044407613010820794435253516292608695481898981659872270286306294451737955051574180823124738051326883398248305300550841659842026210372404196652849624181573088171583684452019909751726825794677002816542569358402447087697170900395759647493268252629872962015484372429027916803237251352062984187563289895385440991810089258739103786789019921419289370107451888697143412234852770685013195099697621407325843330903908851095030929939367756111115529487868052211229797818661283630916770001058719237393408771858082716545238493884437068869754475618789744144259288876054026252236202234739458577366535028683098190401725103897284736671785247909852523532637631178817586199876334282222633107756508697724444345795990763324754932508199710135070080957739225299687603805476355050894543517603430232165641905857134624106498985125522484714415973909617653272082678844303227247191623387945386149980684174831307054806759878772029267859380579355890356539175439476693790274190422422500869018901869313675384799101513710436414838011089754569075457326374880712581094659544655223684996032545517138189368090237950715850708721706118293980799878091478656224067248865233986478412010623123545814948283358269872167382662751476334994762801955575992604185988548967481567133329016121036965064018700334731690866468537012936908824481722888720394133304460945825136626234500578160228178786047416629239182033561938255075746864563873920729230037051230649704008766137006139477850800987542705611354808307644521205138845266666977548396276899933706903680663519226407760830470655318102264852007701857728857796756357756568245044230493668588208297044730714744321260620653045590252703499773193755468561525553462706004488081880727304992983968289806303329379611398466671429625321800930189737883398958693992363909107066585717578563184628407459880019337979752904916434140341922582449159212437782002237206042282513147670849951758891867759194299403721528321004930714512970078727019635081836079051049598147142324524648602541930925975946105337502940804359096508910925598348360839178115022673494760643029401571353829813022626418857573449103121767651025236550331061480699440605639757121413719942377547498623348474563562735787184305844205397226677335165943067273433383686894595707923457443667674812482491276312318836239663411947655358928891605503075163606165350880536450114345092521498586403464475287718806926055275168929714083601904516092249337565821582356982837756904619471252459684363289624215245893004704885285745502027891418599931600841911006704486444131812530303412575295068778046995395241139149084604447276393060012505741370099008404840242218690836945470837674157842180572307749103367270026412437938799258735456289368982987444495353258286405099087904212046715990574180167400495387047790347443454304144064983806010291664893548083218017897026696086952795425124535070008202556932459135722842299915032914246907135760429607946143876027548575753119865446901975012588074688479464073721021277817249598143310707513838785558657415850998667197205516273506635420654092610351652799274480157521894479356420074917977598149246756849473148570702647845276166872107879542569706575909250081867108118317351784499964162901724106809087361599495665017258188473061069569573212664938961132434688237914375603992082393529431406165670928493561862731717930540124283215799129433523964044743705278896268656174810563118275383034064806256377168565323508955040719489767353477570466630602161107604824080329280889388993503795179350582956043585838774032779683214970159607495120635578221319137731103729816137110081357076899856309711327003158192750732668573269872035115901556206487279973495497114121120201152559813543905789226026933243508247321117593612819579134703180265016084321561174846263444858110291464864622482404610826159238043268297859182501352679070988777967784250219586295605879432641777770718965309884313786508188160020154002075575045808860463227902446431017040479447235673887779823920477434216072113396061261569212693832137175079276538953470776896609526858779691178741300492302313369129335025345605296095408426470283001774793374940087876200572138588454485647231391944617003082352838624017184321746948916801968394506698643475127003888275085516126005854527534461621330195218848019599751089688897447217794679067132037358633991046414840044986782646813116544458337845476723091301748553796604848421930804000124908626627403074655238113055018424119079431671762038489071841126302310692701262367448615748844291965085046869696003563907173147071134666674659585193951339179969957923822673226301970062651875058041825616337408635298451533635603210342794036267181100902396185516345642713759682282957860148420988250997218537003919512677900782370153503350517695935135517123419745900606083568851204914830082633412648863287000933158377713586646613754191110278434289098149433931649616965651229185234701270183684734508984763212470251880488593561698482280661258710809206762287722473919335636023965883143174264572109579082815680064330921374268460638715393492146475523250939781734979882829615990894479406819290972230418201569677132443760526350002228080938348712792604480635562510114908324727804478531648971471513255432720467045643282077779821560818201626879090159722550966783843527780874370198462748628503975743946003131917782855520260817164955993720114226119898682298516689349505480143067347767850051962859083968975918078665004695607480164530566515047667880204706207950440507804756631778235349636937073236041402851688959863886940427154277731256645543484535049738399424908297723957657374966498830792078921485817287980381225725513779652689832109101398084015464496227187161949865771620623122381262155712785346251554190954612413673603882633567553048763816554597508736878080747625017235953307487763814513880568161614719688410291238654664119823608534537958760042497287223024414456686514384499642240996176655679393630348204135102617411017401546097687126867214261480497525625180549866263263512136554856302968180430311303611663111817089153917444448286417011296307425800427658601324376060107345960024249058528875929541590040023174861346866292706697466247290569073892297585843072301954390935853683888058834625093866130814864668249143046415597389311799810896024616853045216046081853685891775740980952315269177882166479323868201689432381753388875665766014376946917628562619268338369467375043213838176490237139481619235848749647787390455779781749674393225369396812070822233745631210200172385187094591190744322443397512296331705477243422063335085202181365339835180457112493412176040565416864031915157087788557655794864128257061387203719012829926130461975209044542581059044018513983506519548291934683367920060120333954685047491029080685322123621830591990997708006775896920468535142321865898051036415903766836110235892339633314823261499501108561443884069712020173083650935168603289001926858656462782954437809915185045914724235844620416330073350893503172534463439837261314650055706263543726773684826668585541338214815828838720853625140425733475898841038041486886008073366281944005291754622159335414564695062751584664348456860427477612493704766702579015619291261772761657582671923160566956336177045519788921743164333712672414818410206930021009264894876424743329001128203837041289621647851026995155804340913498666190560492296451187087942331803210259947992404284981740091023540045425933322898837812274625201841984303397416604842156253964224878878483779190483758651506608360001484264277005455395485784136761370997251144316353623936869907468183426607106853851921466315571076372381750840459597206432461585652982991278494388770373785167607575002131536464498415701646500275451739725693739503667070852853851828487665345791684509381236124533045570078101230310727004288950086019608136388417518646278137211589764994325022379712091146849489071847638266371370453116364010963807772844018058231766381941470746925798790025328133434558311478483001011792043888175353165045697399454641675927189389515282505384996520479692955252069639007054413105652835066267276014664708526804854363592107819944655700575139941134075658581168336071689884550249327089688464840317955571436917347255939207520603328074970953199565015351493626256260401208733054941779579453111944095310477300579895430677340699164729917359397784807072224637100848197131968512769096607033721098769046719133747587054354702693241512307983422715201717624666696287701200820116519767047620197369688209708401898203602711277773686995373523646028863831563656824734920090944762516723569851657298127091811554177453521348560654513969605268937320368630734493031641853749956540702927261335360254235823161940792392606666541121558939570383178333962441765949937154595308966342613277418308817055280487032185833913798558983927968121440180052750552788981507079960699481232623954869405780849935173177728378986787322646524067599097996915490422226834908066647569762675359805279975854021737893069387732269952909727146814830703463895899800297445970247023559961857440811115848349705627448736850831168068053580460815850625805298246475675760093255065582822173701253173677947928577853928884957498218504412191543689289031721170388808159820697883967601459655886613578755858234489661948186585897441937801981348052014300790207893820707854792593411507342275246424631658713418317727001874642938683143630451411410083762970302429817544268246441865695555681058199200331311934967365532507161164860589130315593562234648866850247066031192090884332279052579282542136020366261007849815167263596159528892186663745015751194088767052041256568864947143669870126182596515432709458814718515029928405147757332761199210479874613978673593430720437444361851941920499876036942806433579057064276682835890125089161038910206906565250363912634068113839840035412721227465883754047461637624493376637680079567202652354950774549561993222878178004723117187568369640166141074682602712631440960793907824779391337857519205050236997687063090213928111936604205718163294835726628846836062325560919918713436906479157313575720629862901538108209775936049564777560217824344292023141419109578636738250933684180404803236275102693318031306430084690232288312390441402308795342651259318912625295902562251468196051516650616836524369526264096656967684119248556432000624186454499331480682259101735970933502734895746540085298633099217949205148973068538859717579244947909157524014298327610727848240957101094095212935161832804366450246199535858631991521198391181835887525340265952283066784109722272221866398026712073476532197853911353882693750510204579783327842777630613130013810758177863397602883985369616373190207715495188588380503821217946418809558005701954119758709330223448145296589121760622981991146414606669955023564294507936881415054937009036739524908057572751062679817636731819636296642096600051008802581486478851496524372676917904410567863478774825458832519881860976591890863714528956885448927038910963497840524431276830232378537999449725682655955464535546577963369608276765950770768106452458441145365096763001533631784073932874148290023116792309788290627578103084662056630659530771367889152905636314802802256173510626278588197901246097850170685773584427427416704753900631591981404006467459830878256110974154361676266154964057959073210169611289756586724105937325974801971310191350154248939474383795933340308459158077759304158303067557183430150123602450411298638142476801165901976345473049582132080776026101479060788922262210862923075248082043373518448068859902248431169405296537952532568747182699144969566083174333444495114849435073141818346010435091443391869034437983325621510688671752509958702039980987994576894626463269618275650747058626262152237188730497715480764105212535649846171058011160338247231584833547601385249140893272757155278709095756519243308246205761433905222791753186322642006704698041604176569393229073540296778011644915496761152425284093001023620801144964701762994073539524722342894594471835014401671638757533660727379402214980200448335377505769939637530603788195980900477563079663110436434334102194126444495240222828046914831343030707001257529708704698053187897572059100880526595619236233444116057258505779968334092120576666085173636537150867547949181129533756823356167993347898860880748291575175302475403120475878217552331846571852085334775558958692595567157709025163604145941361342837157622366524876167207992656020234928557192147621258552730713068932131285722947913946894366738250094026340482795861009107896021040502094222792661735604578143972621964435615503354721580714887389921517127023381730170686569722844741021022138288697001828675183295885034006699618987503681441849248737099741807226526530710049179916380774496560015821337697220814498082553018900509198247593960377707521769366547155204080237787704650436295659774329578958137645461269271652585348561979820759279712751120041835919995821154919420962172326415443913407007278395902621542151511319729702091825492816156402083315081355606682700818308722833929598757962005563853009686015138248790547509080550747366427631043752161777284779114836626946787645164586466790518383026794651681955951316351944038009294665079887923749364955021786188858314313111163264726329465698865596414437668097625740669039005990046990741711600886618109945622522847517992913379007236373640508146110223738852984113470438744714915754205432900169396931320504085222009231890584626124762206043441411780492306773653553632314341198144653925837218465055761282227284326501441083342303576309685882812402751895622855659111453875512997896140385575998608107841112345273651465796874832064154072401362089943769242534748129001654004694462236381551510740484664784229502656875373224993045092812824650380571043936039379863504098288129456967600640515603476502719186779351760069790379428613914697204033993942821958683952485118869293548479186169636696933000420014499683281178670513729853698052400102657601885851358544898247981741385797803782098085730866955559034822593728419345382264352367923805439883769250197309770431231891029872896075989546060997569305218914234529878508459900497574967994306378868182889950800245376283453734864794462700467227279634375122348113146440401424362609517349621340685414403258061824471084278063513404990196529342781161999699865471689812685632068141114566675352257957092303421248866951989328379422575697930196631245804292556447525849974521761470976345428312967883307060478121522932829602701528338274165513084654671216015462523957531539216598834981305910663923428257378472901687943824809615869073082159306990868152756063191805096639538372479484956274642792222772365090337429998267971698632496779340239505917555035638087576582896019342527828146507759480703738726526287180126787920567849445418706153500385768093136362970148313181095480632574093535036751037845438893361232656461925889875089291453789564257786349451186206915418548797298834940686767113010330819388301957211002753355211951996256828105564747992377849391694324902650643883566158296773473908401460025373712289502284575391613080968546234899576934976703131982816557033579452524626299278081426860114535054872667579248330000972853777017189296914516008462765412960068855810524865908180963672175935354705113443694143992353103470876087324596994310016626721020716522315911681305056524149783017270222187378466413246852041576085124859460923057887793685937628202249935018299770300635806203361533745335050193961315317086357845922120144105744568145117386205170481787499486490118822054485251970099788090252637692508769548658684526235819621463190064994323744894562528871395360110090204155493697559493363434786196664166985207860238580962901497598993276992015762213589909145167340799843479291454789336858460744772019530731286294515795046638911469134864723330008404621411232788648255935998250306831260777756493876928357751460268108742154597243905494301023032412514332313345686002412273304501685834633512277782830553483839871980493657542441450623873420111085176417396106956975779554656450107862103730816444934482375507356294283892868310046896245616243879696508187461698929039572425085005533395134916228756315378958772246965462014176748999226133052003676084275788916843589855939236610187109874951123613197539080826726531323442952793978434151226407013535736241917887812271794337389494401364639934084781569265052381899053287577031812617980534644336547756230324568881245468412648269413068715281777249682801859157603226239192835101206025528366410733769923023120120234909416703926405697554759637549453660557481310588338171696501753638689309412653329142006758273509317950054922278636386684437531387501522191197955025628098306535061867093489511729139691510955132029303787948204276761071462545204695921889369475373397929333585974835797365225502113005121727962317167932005600099458412794871453448159080653901715521528688567832454502135095818248148527231761787574040186080697418501056219062309169172873332841959729289333225796913684945332799166368138969392915604808586450191717529655227232667986356339627739268568738030948033487214781961097179083369030387654207244736710961117419499011508099220713106223612660682839725522237453367693925069438762092524482044501758132989832660298449007070946998373520002692387506051915747681334448982389944509643328877694753711700512143246887358082587916655848687716606949304481701581546467007773107608410272090967862902027109998997318284801707933173189282955383796767041187166318563182240067004504009461921706467517176370070095498261661365417487487626507291032884035847572410551793741234080434111254497840469754136436530900367697997610602963872011085395986055673862535277296022813746552965480394100861514447941479941332669541269609429522373141243428429978738203729708645823456071939610104480188981705262262713123606111011766331434161811818051177716211292265156624271609058292497249779449564777204211093852918439927222370779255187391212073856748290142999208601415191439923664312726504632614381619682267003663781490206572952259595601078304682775960483669910965911080370794142883261643371013907738679983065031834354343035264652499231763097581764250909359614299449550798052987487866918004884296006302652597940795542696352981808629421708950519724961811541833249877836896964548384614977174212291737845547705711714114576077748568669091695458648552499374181790083197473596044809656002642236909844824939062039975432429044984094804388155280310198773635966234816242121307788757524821692792415692986852932406772811837693202699035788003285840730649195426883555283552409934564407222243310151167318334239216875723390803819163932897381147785806446458842387660005849467600154070058101603855406461443764496643734863853192336377044119320474693720489082816684013077989976593523457961541717324661446108600062229947641262910867547767794974635282747711241257561328357954868131320382740840318787549502068065839672319475878448910787323837302517304332879565227943954393314806943298124557321969872245962410155074069045660129739331049793871946276100341287384660030177073324936108038062323215480844815235749047173974523543951879718538787238808241705046709201996018362538931512785828159790995113538972898095048844569786216526551497162594316960317043443067853203496813851062828694531222791328926569400119804979568017549470125687139780788420431328474048619038523613560167372576006847366857677740473389559826501125827584432836477613484686352823465941942281825363371385681055985225308423060934485523291437367689963502630614536351818174456611171279128696045334575643900273829576869688050322808674003352727408945075090464863583872230065526786514498380551101987196910232812186194362835518521284482010950742193141636364763759771193902505682329363357889000335365084358935136339675018245893516801217177862675092962559997384054630664010829321107967363274073224678117610255961197895791568821423090780883724945602416442620152456468520514363602084934211437272476380342019919450596133907356976614886387596622406344425022582876770417909796868893894369753918139345575855521676270991415554615194102954194897121506444754559530521768324642044428009462067100571677036700619663825674009651448260255568114583290523271686077465358995348628125535878350698505875816869435154166322194086989942233325348200455916341973231296444463344269331930030270948325667731598911007943564368867959121205768916106371987204946657056042553929383625696457269332858586173510172524813473195552432834267673645140844933119094075712002572379045929652121883060174964989793954673883895482371065902627502700745220924283213979726799917287484378158647048744100591343083455657837259722826056551402385669957076690409947274005125830319348410839590654266098396223638059608015392365192938282088805895078350517793512159608459662819970695997596238833591008529358639000887576438168476941406604621332069871568326969186939931705852057736779136688712042531317278041299347524576657314125241427036495251032586439559751379224302176239944018013801216920855714146360837622392069486764516965334152222420333440557008898590489146842188249486550832012206016126660378070955837861448550626445231180814327101422007969531610690287749164027387242882311190981682107523026803681187621636118634598020823497018474452504571955981102721540652750176259292147510978091753793430345840207827172968510681430388049101742814623203298124175070380440435193076263556959463782307890004085038811685338271675069112945565771965561517284625696342203366758717423688992673844106052640557596696136593102079866174255497758910404072465167103585436003374829728155372025662208164738314657592287364012819951829159279574640364101787140958617238224420281025715608424890539334626021056803273813410319697905587211921296529943271448234392288368657830860875198374507030801124343497920334345079502696420803619461963486132722621244594846143548209219656026884844967554213734318510379617758417218305349910553583392903645984546944340840650206449856292020172882954123876219487879385278539637168410640680627000276026878416834104687206478177548392595080617467943918733152518635579547530547982316212783978102929213826418334193088433714945310377279313184996230801683946962858031394787485541230228135791795952148191062449241576743764318363454152989632250251481556875419489230731625491606821599469380727063326106327465181071029187966795010310882399117101979636958645386357481459304540427094390844006866079104656605552745249488644071474056406663702188237218729454342297431311532677807400353574211384092714282535985682976461732227533313331136287178631256249801165777487094661639307036387030455040230665860203554037848336671271241194296373424448612055689353837547316564233296465382134655600484000641165978082608316591122294972722590154129227787245732207197937235382916107623497385215530786475481592002616970027694820862843360388505687139289445151361494688481781978750893252183877929367703043558133545006552425952365422042981856178399543554609734528259058805322314263687434180495914634626852820581194757363777119173992064829310515081688015055233392701179630702619754949559928147508457206592682980627724943195425454098849739488026736635812823005982383107026456846243616854559789383504072549749584373064155844434172995103923004610224393992600383886678268281258630781604399589413553508940014613171377809877710054194976646166851583748226821837469645586139665235301049235173000767352698731771323238072052414826666347147419391923970367859781980042753411580130685712786060800488248682800774449635270488707588254082374682866125289808028391184318074517644670070392499657015760353838136521032030973118084247075392139075265238848795156231691646413524711663277638746631744123081841574356309777301677931640909375381631602502715649516458145262502867316534641304561987393686825691086669011848005457062840680302900228760204426793360978420771487799073830100511821221229993693234590712605380734678101769197960329336832497664978916479903797180913407194694699103713825615668442548103861672855241093166150548823037237644232297928467699099721193482718417393320438724112100535760922909041262699732674351098227666968206130060394345340044660390912983973296430837694220504422875840108128427850806427109555491533069013450945897738718959828566119655687991082617412505067477445183807899254507339856060346793686298940517345937744477874066243015612960016569225498248692585639564527689028839069613263165892749961847632432267330220792057649365828224719992712387749457863281934692384222567052502054209401549673580319533574678478592762368202276633068360928927128549732600219848339096432024800139148012395191584202714876292743611880484147873610721544099612259512398329687994903996578167238283639184617199669992613539247377376761560684719277051019825655186100866462185795523912758201740946801129530779380778860860899326183992517367883959721099286042994364650492387244492089495838080072170348695683980238923628215037141284061610338503165581473504747558438620225189696734206888675085354286359189533395597431745279741727386192854814536297560312651141292826044889197298997983000920286238636121990236798256726579656485225187078507182989627067830258289349161018755686908120086382544931383567835555183768417382437488537305861675952114250208576021335643609345334827183645846791373281953595006050307532466734306200931635283645661621901846668620661804687177345139679568312578156325359373321764714598540691380597479106418325347421977308384981757618039587861377599332363504705514279798158629219856870721372449839363194949845690709208970236841979072700474762028285164176905738396975137502523764371446182219012437598937231074228979673355487920647187401977638502161473463268854753043117775285632492918523491973699477318367099871627049731088765932582592513506299898303735449401979328927369043885256039350359358041145257054938926271721531667600826504022497378602057624029304077165217323539825170571942160521690165373038750140206389258744206240455974758565875037735674025093893460036526130917169520953060861475838930681006946003037651884819623435962720776467384886461773501793314216740311594600430874006026728258186475534419083508216518749668262001522546731298038100210179290928021860395215745568523296424854477179966472925539883702465297666098726696403518604974361491342518435540680453466654487334502618435523705393022254051402703705678059126046880766364070535997621572497074027234376675748971419431069131741946184669930428945462025337542439448769966069935767848958081102101730299607398542023329628054243450026480941735327447538947525593540730860161317772815207553940885172682194471768441935515302599576899971696386034636527629019495380185273540429531011440781822924792181473297760817483434276432483960831442754539110332680727437257050948895449523103230900074473624584700408425583583803528877322363965464753772254688617990340525281087924975626833859715029991389619476730918847469848771275770792687868740619934301776775938103766749460165115903642240504013280128769008286219702845810872591987900949393614909560103329665880716019325261469402309286281054801475117708884717918338049668598577893152926786112390207364403473750046511537823204555229073578623192350529220921601983361122045537913158646022401662862483609016680784060466872821413016437718642600727841948051108786126268963540228603982638548821381951951158740016928889808020332475739979532150167084572554047936027738459399068964522325193915561078191062683178093467698577072425114778389187868006561536693686516779208189208139541206019323022750558172279360432781521342836163364506219889410920278116668867346695947166851110765950845157414412721368762485186152191325812920717599314314980517568839761856727164254865643159077541280728188081383963591559011302771312584289954749658728490435043846925884533342426275098503204057034462855379222998730837127955648500021413909750032906399373019452769222593381421416196873997071397132878460386540633462266995132241790431426857415143769738127057596602744573584956118771319623356955553073044401252752103687153153476755827758280870062670320430449397098461358030125090471832724970603133576889336509838073897043720428804804691470425939346419242614836527412261288415942718927180597596259837996175368033877753441778483607007750766410358784690685820370615181629310510143402529289255385192318106693719195146042870337704230365046851199877539860327282812397672703469900358863824823592569049627887824276808779229682405667392994734460468307374016942617645346551021674266343415239381762277599502607453573924310446664149197621943359516712481700476779466061955605188092802601628140862160723680895988850783971536467573316631710783598945918696693817674761986753210444591352554077020808910892483836432177814481723207282259472494273863208146890780686310931088833928444582490727049777867611359093497551267233122905798256128104680113882466843231378145293832874023287708112592771761687185118915315072544493697498318373011643497342336930253271315644795495035329930521331008420452914671058055064270612693346765440273962030652358779820508476245628237078433150265234255487650638468661305720792077082012732309766262274336549576696456160820371672748661646837188117694274784982491827815066541622969832014766405631524458921798413863758698285903959687795036766044004977681628367044080612197679346174133513979595718268807583986989295906828731429315622704624498829177030138137362208297428502701020168073936115657379816523169917633457774930494691185343066771479450212705833402231409574415531959103773445549173196362290396616874672124677457677729444011417960426371216405402851519249365632452197918021133758128322257307575444583543681800958422480940249603640300876608162026874512839775230487640610814243591255603362083111489511742946986783789412753053159483556399281802314254478813766248652671423688795949452157080603353034224407622674190620080766705350734693843856733827998339915570405855691576805937111782016122401565546520240533651218788023570907023960410510194188410618300847003516554267036176446352503937584474425045853605607508267010994261600333440426454686763476203770706513590917528605369964883514108513040789285812231744207095897538630575239119383530862583948402720602173504722703055224253238901911885019009095512392181941532070733592238626949697840717345186929750153913572073104892306655536848815440456428585279829063969302426929354460338969542904145502905109757901644783663696184867645245497514185032027360018155953161742838191348537204843670207255519323659850299727300386072779823139824749238087415840463080141068928138734376699068290972203384204610958045332116489075989682410810538647490342118212593252863338496311151639605254373786085981128696938866853952440861842506340779965083040738273565679627452403550706030831445610983743802424041082479709073622942013629849753223841125451831376213902229400350555237131961237352923656707901158637589637366203028031634858157734966683053820933279826147167328474194637742821440895781617578730684406010703956212039903830006334471530181667857366608178526111718414979545191563105071486877291219889428907260903000728148447030274235705078413084996104862630471174310364085463475324519038104714698089481181739505387671909654313369763062935578630726955934967725146511401535734829478552989090517298905954500199155278660003181898412286391359151960144164079492697463813792532862915005869412030773700708136612802805269218624365217861722676633399800747725014074362745826257966788111012485568935083165568584300843800115437154816262900195626639489173584322884978234838770254643173818553830796902222002255508323145432329308689075987698098601593064035771248683020088709184635674333898352911272217607624333320069788998440215349300099691434826923173874603893087399912630258566825147282918205591812798222514233448678500937234196635791203612343171346867365232760572819486844381042201842918189872252101364384799121641680065044114881652193575381075171079329013903648308617008505380939001950707138982265019224772756277332951121647203876817275392504824990968435448908475929222130456182293548609624105382625669181613326999600544962135866232491123799025608774924104418938644229921908669380381996997268853914070839873272214902618512213284564695323417713521386023611396454322392524025819088897938316771000820283124748547960523902770293033068490974842272522571532863771233809112806679370717211694745443283323503585686296626353295107847264616567486494678633504583461478624259184248861404935500937893052831206472136599177956369063657290851107285639048020221742770370502429335057360213740688134684958279014710775447281620247668499109936314146506504892213897559444490536494238444001160017450696218708099148898342499805812553946539980155231652130930016938069138667734881096686736295377831162069136553045300528683195540285209857514528251677852365200716433144874515957735669988627362772560215063263447365701371699524731233116872117677444424601315434435858599363185303890124783798739501058565007996277564107360166802471367836067592652991609885728786045418817357723927180111612985850972146641864493570057710819894559498042639047219263118891503624477828720565519268408988746162123296785751251327785505188294738253467159314453576978544733003307007868781167364429369479300279179058106402157803975975064367009111238232103757949618227908065195360400783129215277632822172281420861229783974322977642176628422167809330685595922090306214028825985747195779877866355562805081084539379286798805413201395122053493964454408479860278029184272410492191104316207354194807925891867638491646027281146730023895066225143243840918067501292672911982895483403154629664291610353283331553992670470177107605239092825702966106843236246632363559130517369218762829457131884415203115144948852279963192348660575560202497930290262420971314049482763848596134642062196694322584694840512255375012966627942877316780354766663037640246009018826203288406697458116341046378061171149735815647637640734193187815571362157454348387135218774183757367693091008427956998944496826792079374767531718022073527365148797989958349784506262975763596145986356856166592691675740684549666242879752609085848657372004178302287011672414301564545479863217759278126371884899810353407330613065064942083918721633122678326544291889770574029905782966046948911721213259462087625149021985652422544299397883171995521672751123616666090720256735726973993036782773015266341437453023249990538891439897081779154535461010855925844009199827026423722525418106954569397950923738007995704442493788571671477465653459402433564811668043776362412155967524466950331000545339160398720572325285124566081977415135719952244816506025591863582984112132197060419772244405726585802358180991148449014315501593072913942802623629096904013075822385798450138217453727974873784661630352490669545589197327892101839966506461284892405187803031955573886816972412559494289683171931211004389723553835172414183229118583316730467135831653021850732126703468035627792666213029710729067888231006674677412524948069395707003864117249305145456622283218866117916814132584525855723765227690709963087100950094496341630380143347560970677990031190884129054185731405671226232242715032182375342697553654316885351252036323740087173007438378032642123551773128050739976415543203743192105740823203057928797652995379878969025002957396673843458032278055944938247303665569164838489849004689243469654052892019716824361715106401848438468834551855303977892204544857422946745566824758039253513449325601113738796800462891602095101859454000456696164726529419873144695228749828605510634973643746627859026675628699497816426209970426969881155221172438038424747612635363720107374116675669674235265044974463127818366425543169848022880996563713363575726706824177982537347212157726870715295852504975320219994313101601825997531135824418971437763303742834703405724864101243429206340576570450389983422587723670656005385759526543006778975616504383398094950586477702185582246400359187955030436462651133320526303639197622158607884274264636160918448627135321411621544545314411968176376288981278458618078322950548385131570729391638665963184462032439956658672733595564929099677718810654326099812908783654877048072000142759095211856831425417342166723066533035361690710927272555582021082910878127847748946690862082455601705928692795532808736891368883798653599019379527633813099623513235171335128367911523951826916189315686179490505263054968723469748590477791276930328845662942189458384921523334572485752688346026775553639861909922661467946727182762272445188865881664798981207216849106746516786440168434016845985435383656699719090894673395556657197642037662603299454426259351198530732235400466700883579394655815310264438704566014293755247447210504870448277469786308503029739329094535221972048815191907241545910717786971087237694750372454950184969927806603787101968326958500119523532353525498656260173496811349431610329273129960104340390909908663442681266913196578079400424353559473872600486506903372584184144569135558310684338922522107236312568025758551252421277137498605918898970752541478718091309792711703335184357756320441693422956779438471333388699399385807984853502380484460735134798071259187610828300812295478531365972058672088228383344313789111350513530106576918669333036313279265398849231432164177232602231721813557849056071223227468473839475964636585596388892512595224656799971364846894193402336119845101893347673034457969600985848470653788360722560751479148753782181231170993737063007042865806472511176190674164784996684383641845678473709455570090479098986055257039484967312059047121585625332090300084048642192505454363390268126581388168108826913870762853506992173136245877987284732299552610675155816983634341085614536892348836703300356652292590235953340869807972778986530810733796948586574173240408844784387213002130659989450413791011345819983621819939760334371103743331685203088094917818021593091043472985793732918615311239530416383120285826782496316534606161774728527105370965202926554983019781974415407813150394719368069865098636702700544742629665785436304467067617148658543074439288345529187975675360460753807849579930982581866750317415484308411474561101848738028378591012018724590260116330142976508176607011183342234472055866359829234902179368793700261366747234607513996659370670511109662255490162159984425827247111485783190647292852627036368521373694195418111323241502168410630905592577054877488750446997064506902479373970749797321317574320118457810240556675803945558899177511407758138001987350301681058068139132768644746549868695342824180530586760359511167104161983514934895786108494295015895610275090232288719730954811559211993773094267696222642379360868460333552238580911614401993299062279959690862372923031702466666552389390917094482512986021379821114979874844311113029996957025933127437042538122685992307888516573861187127142812008216696745586104529683414480325898565167231289785616877380259518348298432841591306197684219278667079135855877335015309820807200799357573809055541149350324687985445168994645201336142951182627798405414293459944538980762325650248325459874378304513387835860864000172808507220086583200765682629300877788476405071167452883316519997071675581699628058947909356464545999076028895270654773929141967424438518363355427984799208636627969517567350022154450815257488422126276929204828244809821450015148006061038046021454563947689570381344471223548091793629839005898465803047428594690999472858814397252143290479710623202333838107930048204881823446407730958326398923601719880801607169300007775092023061378985565817510037240577529114575248633447587750573325873582360360816556100427710421914206273061370918627905635931520536006540076130166166322203960346524214726339203166831078761797334234330025440775979190941043789299170910258565826169949643328983869645468869412280361365220619733946850484900596658824392875661462936466627578613008762856809890941729717907448248417191984011058022833813403953477781665668282434421566005876638721988166482547483644993851755332944498687402629303787226804968437070522816386776213923348665080693976778183912958130791881281134816235288849863059710868138826841979354477032669618081311021529791613469007661675045919428912892061659847679864576011261284543378123676623823713901460046214393480896026047743206528249322722016964687691853278154836202762472311269659433193499332097876892634665657711527855893756864487702615879847403088627188195982521979699733233882346176958686688014201047759808737719034928214888658832425769469807571351889267520828461507588430658058873299211318573786189154666892223419196130406230643090438728071282304667945946639081418815520348153415404016393809282682882935513116736871480275995961174162395097225210393858529076135776465885706871738855635320330092442469936995928742304739623083594278808819581953498387024060720864438092526903700339442826337129203429125735779123278649513313093340592286104967649106260652509661634512602430203340100618572554847391907612070955470644304515455810226651906469893884765119693254288685885475547281990196042688069821764577817665919504752042419351312101050518848464852459449148955933655677929274913111877684971280375118992927461915282180377675987202789499828300077833788788072158598957844389688191957713884480506901926040039405275016466281795864654971886626929030395464875346203767276376451471961012737086439033415255251956422867457325887316088788939548153302399378083600419872584706323352267705922594611482117055669934935133143970412154676041328836555583903442433428769685106126206706393611044081148605249741013442582723797824614828100904104201688214576302780970862146441686804634024773174875854028881766883640948133721528645454022035969726299375029080154992963997352329797390038200507296995393925201565414581830067918214993183107734402929973003467611596741914326640752474395761530703522019775754123067124095770942171146491334328336257750457166685328094800612421276321973954733844897851087179801227219774576467648746391321808895121643479204030705752125916057046920052679621515840534953567737410303063883821363439216990494286435117962318270937260844408765319829531789645834300298331194680958741791502206677937546021025966306534641347753556131941487530363632517896915385303967707559053159606507157689163068379791402157173548143125929752854788231663365235123806471817827605050524812335755768926700236503781017715818165389879616219356748623202896647284626512542750004171358983526407023197258897305669400546951047026307192801485788160812158024288678677026445982367245331786248787793364871444056892701217039581351099584155026269832795353187561828934891373217580876699931533779910031322669219393658833117007935563627427189581390399132665712721443728245854799103252496872149548731114817559186802209351073886614731403755040629573969730499089765981317658459639073779013181931142504392669892594710138815343540193908878571027068619286970215919333510483385943203750438489155121054192063625191224930436550801269376396421372921817383952847001026685870023203437526127449864889154144512455502004467753360703796217043545414126285839465607666936685109065690331818411357634182746165766987464414555806659676543020596685081002278535453960856740566859456132934271187135825036477556922331029606820589124209155080921435397809018631905507908493599144910377529718774613134049354984420843094197056180462087057444061159392544546145708534222349791283385993452586113116118300056060991128046708414918622192550970053849631903936669133627172285194567340855208240246150677219664879260719645840606454676461915091265125329228077829061039303810139892831270548905352589788607919205308658898919577272708759939526558839878325391208795760421731779748921496411401962135374083559228547614086838655935589078734042700918995428452439045218219331608634334153025656976436448957588965705312463596105501554431398234410782690755195290241858619860362950728302211380896367814694080160078339311191243393968218970044692678071560726436574634356176277797876187041258204614541522862646608433608782576185811759843750105384683917426582022202147159109127984788495261898137733091482298729808588495145526152689855611360478444733402955520561470858244342825577376076659927784388061733624063638377190829072049470129047234339768636990694391752401119170963440536917348485361223365258688579136373123687086799771301086537488882589654658072079689941259162650184510714736857150332095933906545576836066840400241640485978077452039323599105864024709816671954957173931519122356540653908887742035549302017833422264595428860985995749877815985676821725500843347028858619993507129678791008764867336110566506882654435072458411491451615074866257733673356422979768539085170520839054321861210147389970833854429893496114738740087672487610190661535762068350545034383812846994690593955430388155634296274184600265077115963053388358751576232891252855127313741280908740474419106837767819978840536981608888315465971785424575592095869637080607662781164857674421354695068893896603138145853239238511976010192503078425362508365207678768811673003620626864627030932537608409628131210345182900139930817658833198936521108179995282659536373734451998904062100603614685510388808767055312253451573952251628613575553918688610618572941498614489801445815828070396742648921348213711398438203932846039778912581822918030720642980737427976093619956893532974097086516129728865364454953695553052036976266967483288173250658446514582613129879584300593292684921566934253140525437305258779471217079197649993305149598319239648048607180120163978602907136464290046403111400014983393388165970169402005626515397568664527163760541326628038514823104045190825325769853518380784577185395298186682186604035107309020651267853954798493715599849632806781878285168730453146118037410929490038794605239284678897895430384260451628281607556371897638875941379310639295342140231953150867491469108407730529895088753241421942385412954779060800268366697598831688796407264305522421810524619110836008653574691492741740263440158918747946945262986203882745722179134592165441404872551928923091909014767415741918183571200582401470276107674871205089637493435529179172700781396679478162805104915368324385337527979452666433170406909213428550268357711905188957395332336364985422328245364658894490245746988326154458444856598851961155879511135509913602188171319324253576301555618758174807818385308710593195731854379592639842362987043422853017363340015191327261108654829838660737376273190290443340244831892820591543115266663016158729978654173851185390780173003751291767275269270208536620317762179368261263924492725169138220178197549388211629663205848568861594650959774747126841778809698273925044598396222811244978215995717858748742700199455950333644230538371143770838053746403692126690337554528250469865876493833265152692049697467327460286384616111863038796940464836413721106704201365988303843542794672558229109189650546980551985955644744534980409432177428187090333872521433446674863033630108335625172271913737507027753098333722605637892816216385155073536465649358378372190483389536946199103833830442545927714551149734633045542440479733439908864303967635398829860766647493341677262323774154748023552255354597118351700288087190446062895150574006881531062142874923511425894766899775155038087025329263311587585754841122522098305518955633941466830139440803571682215744933834873982425545488958640364515676400503131071634845079120612782312572199734527896560038426807512671308791137340395861876086293564742553795245884279180573037526905881755321320729237580660746514734736586249336801820151803572119992064163439664227508541316608894798889672784146062208427212825268622321828953001901115965577563768529620939297779919318293867210555105569176232999982606633623382766511824791751446429231443041646800494287528230036061655925477219946795965222264677734044950735946837987600060329577033607241636293982565799641395309548505486021476972033375496032449051667923281815371007931406656714470853225575504325912202615597442209001998010972174076790523337173098324371649722425952213949444402314614048183298293811736092139202717598152079409245314734725835209104092677594202636646064073446590940445340376204286790433838652066674405166882224965084066688869282874925860388631142155423499978479837857687611165427753245267687996025209766483847190612707887064677819032063590162663397863878079771166591831415511210803981875894436890904120080978201669108207958982494581181747282383331757785111102766354288333979945150041296283049142537183087178739792605244499592388069931873074947518048082060554313111127132695803349317329579118455119950289449293091746932978616129356675123239539956513602710063645561180935045007964658799846988828689347944651353424939229431930377700517589575954530177285393839137526723014218854704222127279518736699601848069431219600790707822228577818018217285974568893755190315907606727500273187202395790570466295006037414754974961561252561472748792038906758224724070213210106184830901491472705977576075531173270790215028002065118075455744106865468037585155259453662218909732621243878870065008432412347473260183870437772600029081597516764883118878040371143147094045002814148826837313552779994571490348736132396713617428764200979310731835618307345176622999144085309667406357669145226638850031915848662932462806881591624198310821328108796952544619398133301039426118070172416016557264684862539201826339236184148062316065056087080666977272238089280697308306300161657369828859262048257129748685517017861470836434397107434802750589772924788328373991706302601251089099153474880977942917053565754923774982179302287316454193880973218763994112408592513712103261783540006925050817780485737922504884945250572825341706545796940931520296189372594270064014686090873149752008294011341737424432256399430186334071848268241754467523964661122448125231087816807781751121110356698722562794316459753314246422966737073663071471041625302911777104665740758204530484285152636685015665186353222847222107192772952205702391974389449162081524679966708189001764039707315127104910841746724797459874948031225644424362960775081430401335704504300996722014116585509596301651431003926536668965724173089985287070139298258394660234840318989862745552654507020462908537164207582130224944008463935988965925249311854991051773945147493649410845923841487160104298234059237146063437273976598083494560180184634786437513339187338418798285089891392400169051727109167019963382607964596971322649029345753309228461548878806088141373286742018841663663610133392339128762486178293933446359801964870776959453445106237353086947843233744029818069836375898911224793237641606831571748639771394839413038308201467158212724494295352036713389160968964460840549544078854766686470379528914559616012860231928471135700850476933502739159676740223214631671123014154075432711103303559374133294356417424057712844846782205461346016087177280141583946797830970956201258727776229977840972238037216479295047900092656712224275810754743470074231102500355664004241857490101158364033079598791141490419684052765595427352292278013838345675078944691293486339028976026320966348463772202357981872531010959170665616712905343828837939089850656325452399849014332199796215143477271414321261150681660301446472810770372153401685796234116230077327090708373601943634295396437974899470951694038502607087084092345090545303949740254644527560395723411148852108478392931393118864452625413166111614674862559689385462480090994724777413515086590651926241599305965325531245324684893622079656609410619702257273529319105303797516908637350505757897958608732015553110148874374606656057083008973442969811864291279698821209525543031078139839702810989471880844687540121223996098565438314289742828602575278510842374168923179239918001465143974397614593812554760495960635629011888858846201741787723524814753636592248001682126692897367010242202125863084887060386921375714425839010156945681861318126972730604490690785337229427186186384828087310548054484557423487481541285940263789520391759677450461788346169621905002494560178125502725646615967862570857583222758252108546977749498048871461226817789940069835933544658994678003854522087842607197466692234957807409019025313480915448209874645418778828457797153255309773301249380301946610774123675072751728190225662970007461382808684604067796493935920702612596002234080514216605758764434263174241283304646662976039066771689496169307616149030116332796510706545217218583742202665457443954738050026067875864159701261869611579374214407950182637557700404640083347860251443149754760394375733643380049651113432361902303822401639772420121569549368182509736876412487065237692194961055673114112198689306472851513072373686086482032859584784196296507187465947056405946928815257037795624405145073088062618568339310314117490964590647322285161875421522118064286162485631976673498389743824889071282282179627015029107290822712984784224541902348970045692114894410875393733154839331211159582945156847104486576596263257897586085061455617686530329044369566441250811955520052858478720228974147702944278799363606793048621487985562918377967919682623382750462088490628222193183177277825030382866573328529486672401911773698803039161377133751262556408412465837442668846884371968938672064949662467441222152582732682524040300131091491327665973081593956734045503799911485978280162977480179718539309058592431812986326735018326924993950784266862791453116359104222553560535302862185101278672000627799110935057722558672569142106781128200023833710287335611048794681543966726937660254829500067357327323062958023306607643756905806339003306380475984970943453696123340455440434227538650589494955910794474489959656425766258818100714782944333842009314625830615057233327210536420799338800109630391423903387598999374595115785611541319353959235619882555893203259209449121688595372460973302777924396612303784710918451134594816550388115169049717807105710331573977285189359025877059167394768331611547420045604538250866572334947576031641923198703415992403492645886359683239024113366358021119035906631379775631977547182801950010802930056083443097935211619423676441650441585061873169903451853071811206896852799466592619412027628005309839499867373078560368426913456688607788486019550289217332188216220536411299806730136409079607668521857935872038784480859916973341680608681945061047516695918313653082256661777451450510370881689267012477141840170257840711991795292352408529311825638981011000677732950980208744300012045819882334877142315417729371361677188135194955588233305354337425334310013798452349496454882090881755784204581994064783865592109105143950763235276118850912524244955616996123103486997387736690123554055543630288723011417563332569580690236467864393479439534083143492451610987680591256095021952853098354232026630991197160935061299482929598039364304185338869381060146549804599642440008175177381552778964846541757834289417690923562784387101638693075519097670470167494148771341080503182964897205623230835617453589588916932590593161458852423136496744358907666576537379741800648252343818069701822124276398542340005906329318715606114390706478217316670191451828019551054680524544304908155839945917476131661453513586760300477781882913811033647262320396481349426692753116121314889726692702128204758044037593270120459102070050799746670613092416997412380363569104878127167326416632509313229121737685137213439720273401293014974599907837688174366724831030092703647192154066808182278847940642893365388220820531230214341248138351370749978534084272935724158580861824953901338926785978678804381463145102457788127922681761985644608254360616134275925745965456041816429632167763839068926318960982380612927439707604793901951425580403370551804854082851584855377314934991396001386506433715196075040604194814074534364580664852524909068580686083054369796067388889522735215689829841028659820823570067623081869554563001854382662894212095135231778785860434063604971017496140963634531074424772665384551196489875642527315695880705981571812354777271386346669075470963566470230496655989783607948023441583527359266470300869756242127454263545292247265834891020539648032896721147316922715958281695333135924079817539912262429170015371617978849152717353159999786548768521141602668345420852814239419932886023335619585391908766168800926197659816966995112588731002182717963436025378383952074242341782190227101511853493387680691449780304059543920927274130171767924481949224114892701220397586536574651848473064167798180521807532273278516657236048541167933045679794870887585925886949526280509205413491226311841237560410255613880645473207490861076720829707555892850383677122897263334053212011737473968531159474512618174418279745228255875942268412573037713891903596583417088452737326738888734483325866066024439601178203792167843987228429537048954825457670496906403408687164314161472280295756446941629933679511445831032685941932620566515006460227728464372796504127275395886087095254988258981486662445348473544264510450762606356944393398922946589192809599256310799378849515551063572041854599865752803563113846619808197434004606784644412930278400134512964903022647930840094527100979126199437388670710417869598695870834082884424981756435738977495451395073296005588411320039038132069949259319542150958915035992389401127462766081657633316557359152261999610279073913226099771045908609678733166318641039261456394909075117682192294412571599008802031097883279628075906980253825226953441364906079287224673207870703720670178000474804659452009159257247910897760006756498963717234398737628260848948565477342450738505560585390701208844969138511186668045547822970317675032604369900208960512546401956820682073657013975344449407008740650963054225232935015700765353627479120691723638452306847922099971398592721194051937426088351864181981442081743729454707541918089282858237788805431051821651253141768674382025870691761320291404625185259990086764273069597678931403118000153793330270180434605392113865271985702473519667339473520789596062743369957791343339171789591243047157105071203607266631041172335908510533415550458084147731541964203514099018125070743673766144099652191776966496390680742535956256359371386322139199768947257782430398570312126603874390437436593413262777414737825794143171450731893682183595246710992195150357154223330209706763832074254960868781167931776215293900898302622260566137593278647975098307766150243723553986055611317983536086367055033396568024654281213272634273983997427160371995164183431834702121837584449928798042802232452377968450555706606515311320990316994159085248768172934139572002750087111003266679334138803715484632785178172410848582021128629481651842732807852227589740212127082316968159237273774576386542115028609418914827495375019128392478646797062097504433558600234636781620060809529008540061235862740919038403403024515257134895786819937441769444770582484245218774665426398581930559890546646515518843404288653795611882992234448476350629937091334898057207336842423536322087496000146108308358629992319471984847949487721352222148976239429742649529241931040617505517417997467557949780153683333116939334173614247196418655638353177877701766468348688713737239525562870229166935990764739958694858056047733739683699379796894189715509406815900946749564754705100045227899125493692116433450756626749974636140924518426358459280932675158962788103159623725280194695695090368628941157533824017526043975685930619308698730255717681988011582023523452646959764995220904298126962900513146736804721198139782546424952593069824772408563012437044997250248937177221269576930093424985033626015138007306491126390934592334799028890626880061972718571148024913375220192906365822969785894029723282784386183763053122312229463753548936045657102433163786052934403259150928256812682957616272723894622068302543431487365758292695943680670172927657456782961818427246767806970939241820853181115204782377738316018449967917759595603890697186572587841198265369811328548326498528433873455584960457796428850618897359839329137300883086998204157627469083542936164472067693488582544210634694221748589776988502455710382933305430648105505403135160277393780466712799453630099689279292234873474895511380103448640254762612006566274015223865845443715725802717212839982508130906688949368493320436616014937117585125830929479303589666526816176528462939933442202081962872945910549911321699460566013764904536953446580607369195585352756422138984578725792877957687047481755001492994573796542168817067705582532123944117274100544082576608786273071737667456983362718574074262853068016345257889840600874072154491418759378418675861110409876706601912711286623328146529946887915241161178737473808182388316975278479062680691469286892493560799611733535687394721257345786871783415071946720209279018784363103523942156294124011907339445969112775369814170685434186061131296998711384153473454472913337364155854125149095318542719625934303941967460748667172024608135842667781832906763864266702178499715532576550491150797542302231310168282523993540679003138929017085625177965142288783048624912429778690303619011539794528893651491967404529848637187471714184479797117637248582397558874833990767314311246793842247428817072532291035172920931577889127082623524053093071214713210560857219868914732663277380733964523005533427048601795729640614764663970403450514084049523674596370011230063064517548907872321590457208133337390164584072604483280690351591868861383836277734882056548211335317860138250805158812540553673031088844336250187698723297626188616916069930709199673094301040228282599108175999700995304925625198946669018992264793503608816279813784935534694802493532194164320397424437370023928159633486479674696692002594334269657475386066212557551640835320601783119561302717323508791918870498158691944180813823925020003132915469279993146159768107195590941351654962081210651601881693611913957714055376545100816239248560034376155432415644776313692991832167782805572387404607608177447704817527885397221697651967073993217282476804215435394187243039135741388822775756621541391147778591126377644515378337311627413023733281425901538425900651587501591274651545489078597669926140834589977241435632877124961240873177413127762527446056624580807761207139419572481663691150302696087618937016254912711863103440612066119182261915267971870656680239459670805725442107263311246720034188211720941426349788983325976115873383489877116312727323420990150134408231517202974751260062205887477033713681007816861938307220252498773068854707156950875000539961240127961139336816735874866897311936083173752344772654011559605794971122704862961697465257460047268910104098989304247622223721917160201071193232770758649416126899927018184582810482013700405589744062200437310949772469497439223884001328015573162397678277858149510761463159677168163447157542189755339294018921436776043192037580731177797098464051955601088274999919947840723287987254913479816960624470564359577802832846942365039565369443488258826609549881361913373429431020402345778311005626154915881124053205558464039692429972928439426024555652706175099964823898244478917246423597877873857054854517991055482376070697359827518669451775981158503871564932271862403092105170080413702928450950819443137855730591036825579743862507311985252046546512086874234786052181277109059338169743159637823444270055768089153520481919848716761274634305340018657395603404382288852865350275268126134637315812250123820655682560674839480787092012925467585947520880585444087884343513706018337974320944519274721249616076254756078502043257665309999193735058197060632129943981413459862384812209892265389278843032103379362237692046863290790143287838788124521790775236740516447268831393839766749385374689383820277448251512036497796771346369469504710450655214405051723783695589297416457162895111233300795511449741751853700265934855664750472742989392755267003732716394915758409332293961735034910403755330333122458251855543219117215326273333113888727701516613978931317489500358934572904936826809124231609973458109431392710338480276418995875784828163148043925919464434709486429971714485883362634767287877317351629515102844698134199088910434235693713949608915851393477644606510509920320185997396705328617743829477698213397462077724699623669898656682385561518494762895859415724451357880167448734231644279309238257235543956183547378482759377636030844155160122896795955606164468836978726244867326648028784761049430827570884349113426269709047494365989264917810967645839514652328214991553073673534163407691717759972969005702292620599500750546682415698119009379665239856269466055613550806414254718358658726253060518148061426615698517965263460357603456570091556111317195380205029747415032016096397596518812722636761183724785067359781744513499304357965440388464796049382021448622809216140858455842324548317551764400313255390218251085331500491772753956605610021329164453380448259503229144472074963678838011884816936435201203061579415160141002280808243619015952420008792986587084100134441428103348574403186351747277883428219437267981107986211181886164954945089025256386665945691627297876210219452672358265098875053657511200175026518982920913899948826201880993718132770128268729634136751756066225143960913433317365216855985087572579656516154379836483500785187275319702114176609085899851538950307164308438844301292902978632478367607091479803322964079005856657559299641251546484620188320995675327682972186896670275719375484014760736430701111413702394526068514230263374969159330575000560824259011834047258041636785783058414032458013988968445188074413919348853211274698752939210201368249418158296922824216765296535644458432969535675391937388186620390402077352343676755598731489703362394444190538266103196413766176790804327277171350465697942755040540492774493423150908724005721371288620851437003965602608375341018376731301246429622152734215323314897958600568388409911042033026184557580884896228543317542252424125954268608733627470284464642287757471027935174196853150721035339209152023841363177592169328549579315723776748699779497226668486647848440653922456385947713171011671363809348881604799439194613759162492750502556412494171547037200533419508303547598608387530358144203072434062239754591084598416220124135045006622255024161715363279500740046802818210268773320653019303995506329511068394320572097652387188078374959147139343077592961795353057802775821110697281658679262451823716505601800743944508748725919286015040509268635589250807702030716175510354226843070808698032323893113059201516460109662049039836837718245642003728376372827506340323959720942571964183667327390088209308891750433418198125965710145517450650992308526132815364160186694568098728999305023412556458240524820302331342660783993573571485757906207128860118021566266596979558364606258156931913648763256967172781847162313987642992443036477023373974768493044166329447847816387724234488390120207841183924885310178345793375252945999320691566927481830931026068471319944966362412435766932714845034452240332848968587455760851336746008058491866596528160503597576576473672109408138611666736403407462010549058517910476564644685697135553709450004213444465105554406681891660803620382940443572521101436331860410137601362884564482392349376206566251511393870449653384293438567246341463925772024774198598511848310131469745313406438360947466814954547029562433022201841641800564005319660445554658955707864140708332999492779339371160092641063200593811931949120380381124000222181604780791405327887445373787768441001540033812427513393978873205054883875467121718150347770833635209390335501958227082782148549834736527286993587192200442878158962103093000203642054976020807827384070778070189458466513550219881328334061426078854361691969131700428381243223093696578415991445911033927719180757294065659938209047171623850796578401449531829484261256326495993321810852779834381651870206421747351037388691300454448155720708631739585679444098308315698551368561853027781946445824108956489487960064917286983675388920174125012115162381238068438769252083782386470423242658831533475457571644165248321772083138689150043011235507047926785932415922836835232359408161970136599022556692852828620145889500282679296951393358779534719761563374992141084440603905021851330303151259262312139650950153760947496146195350935996179940610637301045210602200694096945372406345226882186247998818915126458507613863657694351183699361037002248621147531127928748860485347744294020931077379538422081721918431760500623856293868742916719919537824688838135378955703888880795681422688571705190115106554521559665849676536486634376746455852595864497561295463490989298541224614372694560402988974398329700794704254834815816569162049034010967341443596382556445720783168286911074346598448499159015307637533612311002116693410133851204582905770341905390360836554662403590087045970160556947074491901291152868898247271499886541734007470495355642330091283378065341338742378040484898426820388236913116011734476320336726241104882422507377064718737208737701115220952750223228829101807580129907966575362180307687893124757178669423500924029454057873550499968718034201502617334463280419149168425612577565389974699825234664960800881254080413248848155586859998346295151743706768818064183215251534135710276226528454179671177736850518521835023111011540903508451420971122241310855532135958827350092977597075620304356223762389771529381358645088332060073743114916547833579675290795197718866100137847185404918786360782721239868377481342500057991928479409807215278211043559870697046093641433351260038502652897578432535026929790075749858960429129426353379200550115616030186599337963221969092157900971097153400863702817412342557582870860197191532454726403845970066844494463379762509222681457609098505293339111540898672552402464796888586900173759337260632136024479662155084574788105223853396344007132254507085172926042378534299627059913226040016597491900698034755813313585325592338120851041531234622129290816505174062120317168807285440519585747559411307978713955760167028733091600390969995172271212508682258058718359666999288912352489220829092702305646807342576527418673840833913736618214304610087204106000345526370959842082436686694277548737539900852215585646794925507635060780135250539722286535992613346688787742433341126884558648292324458192290830708654854930684967115289482283953090088837367935830161679666255151244108054583411577332406429141812876136605983015190722937635461915467810889264989449858042251490606407108556638197538668910842399705582162774330689327739743243817770700813360627357776251907831044911309912711340183203401640202604985567763847247286944218475139314596529097806312354067020877007009559574185894458662989634663146939263527693235528602487571069995022955854707391071634905426093296678058492214984495131482779607573526066276206296535227412286342541417750211451424793796018618085747058029275268347082769899102509355902111347001755993637566270844235372617979377940715739145737237832995374199988806865307056923647399484257706220170484006573349746010828986627038300221836031224466623190705603757390250878623880562315024376541819566143181361928144313936018664924407530519828928489083471466701309848996413321135760089351090242292853846272379016617817345791094826655267487855238897484996252515690735359990619299882022194694850079531216067378073397440903572855056994421035765251258375704450221053628758754030904088879102406983148549503086232643473224048688416714909883934942255069736151584163648224547155286831813941760428920287242412472595776415077463137054889690853346770778473394767878607529117793851368550593781196889676219201829962241929096962923346823523038146223215944923069334082478003510729587696166279459703183864896085094837933955788585563030355575469495203796508153069014664423824403679422827410880721860800801044839895543752561047915750118784661788896322331666189291650401733153813679432110533087617959598249990477201591909165435948564660540240864808949702540017489962054326747153277283749809747467221484079102790509691942678866554352318427937856760574319920885683164617550964569671732784343824979187188842194238081352133365559579887705001586963608753478978291771535940061268660883657082275333006198285090920790273782865883746196338712443440221713815322516529080123920822281999699681953814255768616568427122671315180110620563980036924649142363724932220357682301845626551134416040268681771149035942200113199107109018107058850708216509095210138946803079088438314663908610513276212984611956538672975337227828298778942455255891339369258254559955031407379213156731250081017792237582966480566278556211645431342897573386525899826423825344428596988700543986673893405732825255895044208840365197553237437028811080779758302173551801625619244821258824958049424422299993758906958791331584542852668590941202936590556731523085488987263219496646953897978464984110748257302350596330776687574423254499103801638383258730131345621464888586322283306345842914487014169394510849938720065522133806033572133862077919679856136692193275572667138925800176635908046135655541398158603797882255032467823176789341218433578641032743267138269618178443336761611927919379726195198437712585340794935748979777438780131823584973855019806482782412992865579684210828935893811631628052495601423104287274006844997790746022454427286732444134883838935532487981182084582324229991167660567397665900775793455009309530923754996336950369458816224349200134591934440500382905732005315059448472123876972509164310747670376152582501459131389578944247330601646517876582311205788575265047374799676489507769523065521896635323699716220383403882146435839484356539299692772035275880912421276883120764125712334424644789048854923364274764284519088460939635273149418908074714945680189552855001660953617357412448811624845707263446167702950745435166634626908947824863055181322316881725242841280762963309225686979996221981876844464085136472059874705355645599816037178866864298151141348260236442543411399855989815634388683778634138860914494926822423202959939041953577242966391586367660580835873322002608904914159748165132979151926104874597750804923178801973420058139424570064472199159637559671517462946362550797829337430894961016746587242334972705709693202450745425348640280178414734164210305835796511256621410231082553220474592079192551273563297902813080293846084434021923121289251303606301667370672299122071698927463453810903595550685486303232854529742362124062340502945167484588360179767206878641320550499679122191254866721342594576041883678870540990153410901498610615766779028162887435543128032662482218250171161777210812451407744630333514389261412804785482293486207023733694415683693036290565096828676391655646390179035639569508198775403886572763272013727661033965707801144344788436209207886847259174987027377239987921573554574426365071645647664310717145086645774268983853939987400978190245569234131791536283943431146406806204405685497892938501092974039525829164545447363671218950825734685212009408613548034131913406898481196129735704128657498066603815096523063808935432759677614292314089248207119661550217857224276555895936609792679231004113029278446801964903170806307757436004342527517113639845358767774118997904413031007377250048960141974036806042011136012719562303805605062140204205891141693879396817703953838703297318548571127628942790207019589984022258188207765153608669935177871475526116268260454924040301535227810749885063912080305505659891974931149927400197415004010324571929358638259981464263000048341055992953204392539912617825742601661464293408714651896724287385567465635618348498906122995534016120308233792399215220106681055787271276879070584880259730061826086623352946109691034679143645591515191531859127119338571298250940605588902355305859875491331444725647565084011781713565195695041842329063477919632393687916886293247651321550015225372127425285774806606784657638944879988741619718410115044930832829937069728716660364929500491644507353397810456093871278140354859477285997516870623424276026232450160878915803521738177536287515639783876153447241559157743263762438537904967164521836568876214266232239653498869000311186681223364360536499808500950269459819367423596471972083481796297561620349545295946265330264069899740656178904811477403555286395663976122543539878921304045978574846001380895603878564154480194009425650063708596463392192689664702846218522381159555233956694601138774778087224742574481430519782466417964116939324185470084003078139282608200445096075312405730961589711449468220704761708828359239524416245791785818879022347220117322946463655908806310172468997982178075854519220201265023351886874892470129524236215693895893639310938094122006595371659967429753093276428660282100906173235284976033079188115797255437186890175919653575894178151446049120222869164803746658252717972091431765464140121540787851578976947675320294207012384596390402508362716752341643061333316501931008353585990374140307149837680335094229624410604232748234065803115389207104451847528222723736919914877067792341631646752880903704494851786376308311870597803573994221668823118319563543005549861059159186475611829294317978185248305900449360004171370768884708013401024733690751789813848706406853867751057372864109982124231233911119393211938549627810644878832997744616637123749653960489040926731230150293568602148467792001946075098606318758487092827404614721923049813994458984584840101361096572186551333737445955540492084764171060072898947268949089051521242824679702781886375736297269817185762090610459666873973206555722934136949834545932255189732821465859503836934234317726151284680321186108296414494954358907614039117103755370211634496304270982151155482955115696494327447505651435841763398615776987926866150788443957282649483661588311724186032097154786610180527507240619089956357574056969734974830062338324372805367059346631119843312931069852945795476250379597709353743331553601908516414508849411659527594260223092519302169862685537008649184527562857653229949054410259983336864706168006115413292760280717711223622048422874995185816747385625323321509374534364767317367857997805786711293313654989800023910521721381805791708453635291139185650301918334378082314380121048701658711205126559399894243315029580314555876712908372508420744231593509889146842838609229192732729871732028453910097615258477731790426062296072282237243659637086289347748292243253411119546014188022719587000146857876958710311568653803260990270213495288386198876029918319308694748673244286638782831959893852538877751564439652485786261135181585655519785611836666391179632333770365295635405887233561425234688707012506807659011610409394613991678656224962264009892300604842750380184518740038703180036886597996909388789993716607666959796256429961621998266562194879629468622650016797199589552509076383378339401978233358590153780743325530229714245194852771476828127022384224644637781173865185187632144017674264945707250876573833214322104547744006133229355225131950116804464829531422065333279765173938469054548601789584937813125072907923827151244837288058746231223210521984954018858112569997464816347711359359062861826050956988556152997418192245260527139548575329304872287450065327545207315984907527671388138026801490762113247727831021891679039598296108753683983107232009889776414034389042617954081062962576448081440314759427971745195978028096352222655425479369513552302045050161896186415842184235699227969742104132974237280152891572626755406681886497612499287237834693798475568621558516512134765428298330649793453437008076048878903082762284881339146864483398352163045584120932053240011759271980214862501594570107581222433343563947001851593026463226064232540259763121974078260916418486245807106650437343277301851017970750566397267853307345373907544036703815360347066394326150051450840534775773980510083805072522626734841550732070227657037833149930897238715110186098700030454629524064515893909807610852305531414664366066260144175381957352662616966198592779962777195304368192088638134515041240334734514202377114349809231264700998098654820191376561763167866188910964953661912216062086533007672625588219383398138543988181606001169923357969720617177658801765554413378746770004613633437145550766947170566938708124848570414803524160522951165249300115356373312683389311173351390647979465519899471100783109228611869014238032881336187339190717900743830359479898961452207926506634794850742947438887738193326934875400435846091685064534557133005474584439957348497345929832176639216242419148341031438322798883688283913495172952840933374801234446774876082185977894071981467647530394265648003248812175621732401436268842518759146277118744876346622895075175324268526820964848415474258583474377589529963815552968147480842248016812806886468381950449590389517747381000795708925961626763803171444242155217556195222843484193242619962415384250724047796268861727830342608992517293531208565574066821979549676618054296703726459889259673022495678276976066935910445832740445397916487074781255336482476489650597010416903693171014430267025338856257280363001182765272791031947885851760962233419398201562918333801574505108262837355791229935781822152184246885310020194210908554250131930548408186166008229334264460985676638911126548855146844625008644846053945421913017689841694493393710049934793702865131710775705527463780899855315647633347342076915344411474633803176113177860109504522137157749475714718915988990108684162354635655006154402777315251309556706627327997744106590390047242303267908261509183961692823356633905440855259913663508129359402619824721231260223090347520974595096381083924140526276778827984995681964039956848997421863774715360625737230040352340136754093945856593684172207527656867201022127449057298142678073469142300017497689009242301163598951304593429451918833184829966136009390796863574487357031454458329657965544430291301457831463805384871302476596714151205990012178592305785166334535608791954850562361522282022680845862447800310543870120388547858603533297980931803337217479608001215048368398017637400953176928731649758996820795981966779473384800492496489562426768296208596033053757126869491404804913426416050373189681121194874736654495320416485672258024133505900074264196816276451168519124713008931591590055894096156729749331427195813550428949746726244564070608945608324680647949799835492979187787475085458399404096131895706577037148860200852937104363295283011699910739402042153924347757555857325643360101743400828906013848877196591313904352937508887385076083966848845654127976292588430886308951258595181031900918268736451458372015877915603232204872385657116005774612758123134174248544131321459889137009576878324376509892982389111346353136669120956806444349916446969580436730802583217057391116883706537897129375319544090362018167461063241425408735675444618309309445660120345920716153866834027840704041041444240550402081487547651943071204022912150593426127458325649065004454411228240822418499173882836203157973502479853119788909614469510586099356774806789398683470854591436201131051820840724361300330644502169866318837874157813088202687305989865272838363012726731899068824834040573744299280368305504132471608363692611972142696458007857682175949133991348391898396276281665026497949484818274565503932432156663122092725654822560284722763583238062197563637066830745016866064759064008026792884569218460557458057166572414452188105552027761185454839948486117304617590358011048889867679108622062426481869034074362144572354222652510269060258841550735878864117632364583219580949492223195416915639501903778574037883265711887056732605265209170773020713953265485255295950645773950571939474910221875662862448961397067673970272667156912638444104540183209975638175564382462834529494531250604094258207865250082451248277255017561286150496852479843464576322735970657076372044867705461155502314880872600985746711424068603870039036796940146131100408334305316897093054589460919374490603038313927817883068994316320974596305964348129893954448239841661664116745473630400550372020015449667518569384115644283763260194053041133735023671825727325392260399105034815564896083685972523797468312377408209649508881329723983254505572279092671766622667799806618826804930011884923843006673172668125405464397269623043708531401173822158790839870918703347887329189559978046738481077929683254078073845602245427959346965826533556152931666252254657218823703196184301685968739850102657230719497966198404992459265596029983353195049134571167294855926707294425450892416965566660458161131290294083939708873929975704042369967110855397448112937106799557731871286997125574160636229555785902040321884437754814015864533051328388265962669128206218860821546642824892521256933035455837612548199508786141247358641834735011436984847008537993492453275692678605832793977791501747380787493209397154616143774325633147923373249338628667604941251577903793917809282614372204166109401149041362528255439857903248281849746145859986266323008711799529239883231725724663710337542379774134724521833570443966472489781634116961448045492481573962817505294464231496900008738330442797788507095849612291401397068985406601923034394992017164409845028087559722200372888770683640669378239630533604041319033764096910601530171709909241375481888776818054936022054282548995265602648001187853251100936969173212170277119956104341753423687231142695989115357224115232796062492317609258440727807870469861667358310901823716770866523211191197071485299746636105982211464421840809575189387332583609847636004965799534491324545725068071194818665399896728532906915227451569096288305219520196726351315838324257270886331231027680643447171100562661994586837525895572365372274062114237299527838669421616138490031129979821170465872494023120015114052881007606814765288555032109695464929409366206694947711976246633615494739323575874771792533387717285182604188358265110203578122720848302335221550301895889810459013266963599917651346530367138196824704769468823780139592612887852827336609702346237655005702440253219174712536208139394877143607387624217251214101618104947473842676805867398980189248799426640541529862076340840318143770793197632477231732752278512011811172571101741203918479259741741731849803180081773831016759642324201592061987131816227617058085978190580936019060410447330059024513701077070564260608171234318624660466462442224733429119565120163424191563087830060642378861173196403743707874310926944767304688334551084848255541909357926171832747883043288060542216722922120051452571967383072296086315946520508814733799563654305703607486210632983889821266208415397842299336522235716979310729555354142883923085018299906551191924323803306620068346686106569827727870109003962065938892334758805855008324265352274383215435436615643911638595605339239429156219234256722519618063874293181925239414201018126091953674629248591658209312230067526822482233094139975728466419290996357019826563255611994504989031225991080330815505788507769285978364076570816074219760613048816463818387147205084332944416325929437595399155587408793592359402510089645684325555869834275040546125356356227940402420280548530487228452446230794975627676417015316765466768547802216503544771479488732276302354567715903525042389530051720684761487576835505921426558668887592418266088713899458527152729524510069322959424612376548244706194662382577921061119437840450926445817685892424505310908695798070610893146606993274768982970323174510306662655298493546855756998662472811495629900089674132265437214170066558785146109354384025118819914972099720320832328183582364846404364586406073210221912669070732162081114983631346374622624685004079348769245442804557697683718972929865978232822599761671099636923716878577200939760741501291768301233547160314481784838702585824868688337659038480068413055080670248155750761423485507291631080302091575239945841715808393756944965266144093008555726375320156579986696441988901625233134518588409213631429034698070381610976323921836140037830058036631797812279461587270432676002426470383373894046180186547986899248989417799601336079464776689365717980318382366358310744974380878107334304551277344143331179829919372793143465806588982685156993129754130740210964634029212630087071212574785273298893400979174984146347071322905855195195447865307874526902418958332082492051048192913936406141390451323877697936988329089476544091956210671115115409475657363163146957516574985132394392590132723867623964825768935597776859932642056746792266982430953007630061582922119047575405043144392609309797546958198074973958233787085066065343837135415264000340882635989793691930891036069050847307451296771420425143911372999214137837988530416141147726876068953756951108683782499492452790777407669142041640333165440980663193006727587965049918293387951746150502651398041303694294925763673481784194351495634237542301199106506796347886889073658603927296181280519541364902226318180029684282941779362853347008701959279825968129838288262456218547779426012923711481518813537586665291267612821421456137140242418694844611940083167428502438736658118134544872532600337410146458759501330941689427426650156138841487015424920403892336367636354464995089231202144008268642221220394253491941634103644732031392303775309939153171720578808106263434878749040643156548296036598944230678145717022658324323017718312341228713986777007947273053197300557983353751986939221885123376412295313937883824183822213270620650509621763265218809173013804147140751925337139018776549003522595860491694592806025623502805498273304741037540242068403037172412382034444510933875617189898575754005632950795430667717048920362960469372347653382107406677302443653808907140162143944078259406013344825635114014773393474692017585159772337835161851063870809193894893776532129647879478051288971982212712045064943934427388314934643491653139295527152857405092704252956703586578707731394033720530557478965921015184683490889241947065822530349145883610061870880566583355797408509423481740449163733493043727918103491374372537624992407478269021608408235034934921373780623951635050622726316224221965304080058381508959959803714408639140413319841667645493456100227427680421705406970870861688407243461502547968543295841181661974409076725712727136373150116261803134730215827272318747449655634150240197741722020840411686107965862377488710891381784843250396700504222743377287283563785190152768394980061611275555129977186364865446751567579786234207192643964469791454824306179456823570598738275291770046716801632794674037901463245446522449837096066460953701351508801487525046334498474232472205822310038618047171330081991933648498528548257021586887568546354562571926680256827353430401895900803111637062428008145199743728075623642038675823074209509270893180667221159760368437391871679175185972517601037000176012242102461843551527165132425958943890180973121503137351884694432843019493392458900065746069691747895504597475128116792593165779744679075568626121095237770220230185126313128621537567039026070734599784828144424890113703022343812040207516698746682424610893654958968360375734699072755044973859640933105002114169215578176651646116338496994899780813911099051190963390160743461390589388906428921699117365064016654515535411766237588033506809777506947267391620924927208461738608479985616367900354408123014931719826319875427302453433322924386811503452143924402886249682873448718167991286006897132208635820539085739251445806206721756049534967444757349902419595695155185013029727242433698801798820411390359266913140613665648149864882370990963470827736456322475036816727043148951154504732163207785350882278866925330605800512005855926444214991050139740824433944769536052079512502730842414208714225546832521516426201578331457708872907717980988463039266816188290850927796039252762160631730844830457111894063283315461831993202639064293295590236501608100970621788571498286261340810157463141374568755843334165256152069545319727262224124331089584450391241551895942282663534172950481160374435610694910067430700313733897266777379055824056392074829584181510264416421611656211951495448561149492893997600331817170224094691573627046610673566470528934890274921571102716001131191612222900724652735735851859311669471904699165906811638386727196830762630363852527649865793413332092946141053216975965466032192406514594810373563219281234470726955854006882886268929970296649195971888380870946877951814782337881907522320803294611142741681665872996906720171962122851190304323252620337348327381038339980874229313485952314838483309330300216602383491052131872348979422669346150789021647041003294517931081031340848699639054335938710527318210008792396330188646350396111808603383002768866390566569598423503062094759557172071304541924436397349974055774469529696919194219324920396818060519536065805625443377050584691753847098464237457421315650199357009271775201082216696130432127373811284921044880878672547306391668058769185821822449314781621553275168075881809915050832543427644455715744583334393638342632648067866535551176095248362666127797983784188950744546136360067053835884108003919366110946564553229450878170678559662995449518906576234602626922239158218677823243131344475123330335463613093500832096439161264963699849123569850712814712268989726765749711608996051542148293886642096725225029721153908049005938676237942195151837651402521610464271513043846546534618194328588009539086506075410225451378609216688512480552578377208083959576728614783589232375186065903114136665438112779402332337656006869587151102481863785815705138049222754140657637067617419758992190767516626151427043326852589672177468673114274879274495700595314043679734020182773538449818790006419836117310208257046041613008287132002097586443781795255453923393764913036527558874256278536376715931499481172720685972663263018091832809976799408845119827373584273831617852349621335020195251793280842924175406614394942390116114515674662237496029950406726620352448069965524885662294726425488277462761043061940095267984824311347734672311184933597674791877069895362772884472910979093447313270450393610222912914134410588125792071467566158673658289581705738296648686244360384313715557845081714078443543834559226699554224248094385140326384507496804032840613926659953452786179949004801766437997425201013123312013705644408706323081624317213421612906308859900118330914310952445018822079695737143443925824838197777669106391704594756536457947763734014448100130075791725936540956852606529469018388826077335304016605672868475973985726539311296677652337463984132468743847774712554267318972432407858916628474764696892183649767171205423454458936652894164773409306724322295584677267329120671157797204717295434957420949202423469460987704873413019038188396391005091819132336723707288698038117394529020709534369276291511686299892366441217349016229521190664900142117780330138218006420349354858191522884597720029132738710045441833803014965874716128399874887140054217628919448890495731449440213354909478878844295228582935312541202075897921243856734172749274444175952393432240685403932370935491667449738426845194558064592785027509738163634061321297517331448330503698367251648991642211229436209755258356354946072346602853112157809271654028912484067873255186181023990863453575618516386597706247145626265162067638612128646512722967381956460663859063977745856241475257940532370076405340181923990495300220250737357905100750399099019117418308864672256086300821266116914932094936836606247273881108991788342610339768767356202469188231144897903860396880613602123747174912966421147738576052293832273057031385013194838272372192102512161396049707707472612297269785096001832517436126426946657317964464372640435034060267616719467810729086402548012703519669543776696756811622012441959864350419538246142469272426500611076385230809024610618812680995519904539362276854114459003207256041661124473485859592723101517719707659659752366760638291845910982622793187922840050400168286124926627114672916638365392544423646626970065343852077520018444395106606717563670328452832880637940127942713243240465129652557642789059890345965923674809051463870877577596591970217466507979352975421120871348394634272816093040098885292027729422901491771919449275264517212005433714991805726079077904670955922362859801010512391775728678327088163492216652663841807027418188074685031940236856323372144683715099337626226545185094494206938231442195152102516846089546127171029261051995647118525232794735921499508850830083901810528052693676785959515644531257141554422889964765795582113138502429351589730904565864924519346658890844156831534254088401622040298903775870420871950647915901974098699578860050758175277570239120357235543030243514974383676533611188658359968912386678609682356058014793793477473698715001690889623239930140232082075331354206965192509324493515030668979193233621425116146327545793478678210725738066206961508921749937921348624671428580253548528602227337921203655732014977918814157147695805834378198415178831677834405186963495010012084562734260713287712985011862120147651983939506221167122606294874156355731834366132152396261419791877206490395961768847659427910253789665960187004380058991453960077105919770724596616843006941907310798124019127894005309277812415149741004050158780308767625244813343620738603306235510568392832671364931539354718976250438348510555387814540504549603520551909943977737932842521295327450583506261240752890863625975954717814257550866949371059387136626575343686153680396019558914782953260196054797660453708046750276179547779392140802762854336677868350589511619996097553991798029670630351424994455623114626527401870277729200706578472465224470640849844301693033101739642568998891232267515658028720352116996569871659886039268707888230726112165937737234806631250224201811219663074752288417533662653603856669394049572762967443939358164957202354144469963578494713892116744401138227018255340188185908661931884906583586622421603028836995625592620683242973349492854665833840677172077017378897112491917914874536641786782167799904199518859071515902116031639519130158146590008913634725411330155348980801182599640900627093100967476658630654872481322534791917128633558354153044543630799172583898144403503864117493350958114837098143832888522139135981670061005334804070975368761974220442791568241939601627625280402977122815900762525855239567493042226099075108570466401884056909434990144212997029027045434856065967432917205782447015515194069850463827774175322670221921421162662408506411326860781102465835524017200991874466692621987314425977932475521671369857722600880525300999341449552792422465870447292569091936413185446675709858785653111094639774235036673263953040516171352213975914139263561755311276910616146208019577054802058298038118231121830837864416076675126128490214016981465107143844193321700351645202858270967198563240783776432669954463807657592473093513557558242508333466396453631394822916981006697952260043196136205704780154522777393302924351079561432686014108587515675266553056236731485874218666474527974087649033970646937684237379401272096383645364143586986136489848392022739438250282814650154165299684686493501509945877128719827591088963700624667501619620532718426552453764839267424334388302010227178328688136195131949674097649353890534147086384048477895143192737562435892860563558680992593141946959882004023497567839156583712674819987975583294444497312381160969782222935037879435042871976853907278585728166321981947885319696900071143362239926855610338371715149186504296879185990319694888877945622981296683384431458836855502846032279125688687398741524948130157016435046571958960958940030804212342589006972725123219610018038668467923128994996602780482580741008491014205003873752352478505062298183763224076289299051606516589871959128710350592048040538261750037324787034670843970874607441359853648119067150358088997560224599370319044523112529028411279519922989898344007165738217975753675663461098158017639541485101212698205631969234054633215283571779806492388596108535785624786314762742367362641710649136156784457420026209080802124088155345998394145690260728339048479710161919221124042018091692306983173504336328943659942078484064281550716634152382226230111213227905403158403047530836344798055998051801330141356938299482773659835795947137640903087707414866772240806143870878336109636488499040502567531502977415958837722588319328771406329680426486776002142845965016477932729848602466606437377488424124552905831361063625220844277623416163479834070758214269165233444051805816051963771068875262916519906879207793429235748402191013858945707264800619086848404566139302363326557187072217461478048442241787897760647254711577680908362644443370743392886902158097063913687247233411158862218192722236410618183114207167453801847666663557347307343055341263891909790650653554888104540887857136514470949657608816882202429337832474660502966614498375053984685598352328001588453034325221755086469604257355126545696883463655638094362023335729141574781260513314236980336267853463236884819377009433327690416118444280083359190257401902033325415600143910410008472973387005465215508762732088913304123419794930128740144226208995771637526829406010418471047548954888923712281364260444463500897350299809825364362770181925336155883682659624214146592043245051036432841415637856659588585697883180633534970761621034771859454504597883526404651028952685932434728773673178884378313647086957533718626526521605059971768512870980581234819063604897827730036598399718666144310937448562549395168840957897575555065100025209507296181153174457680655368547373826258843329495570002310220759781532020896231347606138151528403573093753069303764937916540691226738654446030975784960903120994065970064361247910238113298507927113688281934239593666898417696960116512834459434856104220498151848027900040165237201487212401741247187349851707040342664460114114724210724214930863436137160633522105624289307537207103812665398618790794595241329080786532530259583904243115537813961387684850751200414493250429592543676804481979930052528213986477414877151398047666363652909925861998145565176897253091216798778660459332401086113603750829894326158328847585397990671419840259586359530242614698776364472506726922890059531391431082677904187490108167260736468601248500573687886942096875471745328054276574650418105913696472618130287722846099754991484595589249065144797479944284237721592114656435981444179668179823897852056423448675198222138643089383728563223954001821392659262881773974320901538730653467947930882285960719444402719424328077422198684521343961625943775231394377666039568499958049964616093835392211783752712882557731032331356515735737797682529293080941257419096752773932974462393047178637057668458635805642441759802894110510062544187854244521764012849149876766960869856412687447570337280776066116265823480942824254804503426903371604697408957439466852047566399069689745712779055356977488399708338832134102612347499716535712339337786461130434551454716158024930198800421249913842638631244315041721949100380540212449197821828201578029823636477398680784930413767847747361199588560262063507783035556445864802722592940994288552019001056691655665131729329213422387802330492932739163150293425619377312678779486031710040340247896962894426863741830009145016205975138112415586012686728840385000957479386740423018901313309954925563795000247245366438514031538208646329026900376985784779423705349046785426373520465993077360891509004703540124908634602569843863621102983183449255940273219780239767708904596897368273457266163642421875084060039722065275869006779826281813694721896756069708226606863780267390223945475242620536995268364763110190077434924941471388504138189880606415348531316703722080620929603111861071946009436646946736947464408684756665954740168350425893578076213259730335173150618186760510915609321070352490744688982355038609423858465692510813715284345790506157428555650601693156350589885381267957050100285905170519054168072482307835513351559890992448405469333109876836208884262166313589580098527166842539642893044320273123666368203554726553523252868458405361891849611258959761907898690640129559553181377231708730597021924899256662104158603032335338322554173087113591681069128367436228895831182018120684489912082091169181402582453308156329906635042439389137211274347533993170246970744414301861848916899321628357996950155030855564020367850086368481673833577836131857082462357952612940960970211945106413705647655269858956834068502438623741239999586641774992517160443103744763319353231601335241579265486717203349413265460383828443337237683151857533943482864803081507846815771892015314915956850862918007062014477798769876618149723163856137568896377598796288346431647698613646380197831421479482706449312414859726490246474366246451283711093146813842081557449160110790121995579092054604206984328652436402371378577844324080301274220050495325336073331677647471557853376152591617428377514459641980744796828006344091382322004401640217811408980693649372232263615788579804964641995925161433844094737380147987549337947374702756570079497339250590604069847984296118436812585492666762418221093188942300888296732368442697794121932311209669774428481413295925927987987479123846416661257562053917614110844232546626576952705184144094742565525078731307827293675881632161403538275455219296248055309150561459796529734559004475564717371364903540004495692836430016836966194488890846911798868887859868509800754184493885654693706490461306879952173335612503439765093857025673679573235205055443502391953189200144802818064176437605519863271940809691411050687586862819477573503281389545895874965642829991364914361839935075344157970111652400377308045564265410947145493392232499876027546659472960716872579483731690158523990096518706409852611529032225215736602376024521784829049814866152913947765405818729191104526525285969350965969995589366108473183538712606126435564439650647601971494476911390613728081089062895698627675726429965987999149200385396574679112104272966374289034723825544615634363667464257467366547149113936702304013752604172732759573777908579781930310445885845716560016450904974919626984660881813234451238196856866526763027677958475471082797922497738999576933662249723991365608341862279083022326026718826919186774755183599652829234838342459088333227153519075785580478263312423003025253182260633484946968701192116512769745311844463115564620968020772084186565562620367298678407904848587355397623226201432836701968693651212708264717377573965457148528683655684459135300137023120613070706549741642736300684815664489061715667149016322223290901376381733223062155826010967610975199820206535578213525522114127220199745680604543043436715251922334640225572799533084597491014577457529407791137968621578252763333048567484044098190391351413612892977321940522204535619155160789050438476495352435912247768844200058894467250488424836107494677416467364232131334543602881191963940559406908821371656433556043115719271697944227450652357530319321757863203859090774427265216516505141629967462466412105071447033870338193535356466440618637197157213474705615393827767037157362564504314175506319378562324909903056673646534941612045981625027425015432329664678141419521127237031486550664314179752301324954093039336907094081619449081210585400024011219927541699336713512170229970004713206727709675837570864175556442672198790469481494616400667939873334231217831406175508418038680159050165395267917507762712732482129962173782940681306483039427402885653076676566871736463678484119094701163777365386162408436611983598190275187961976702645010344942488985103226174975931482027516574535254693700018084137512339276689489952403537245809378192484197707011713820795492656453869389865701350229935274477906752930284729259608830727080844486407055532691902886813005344615301992509195067142784459597171994486883735805963900562862391325059863698707763087582111261943979352904034352871240200254959845626440127212353674688956970262093284129772449903699543787053459536460523743838917847665692288526526926101103321239958975788911693588364515273902946061654399415493554618048898630116853707340954585495804385891305225262803931868083210841025515489104751938900573308704009728311471033352777479538173843783872035917899486506011841743360810553299206715502689440623232399798487749191828482380876649991861075213177222668904559367826132676107137888180113741427117419644611560591078161006621520284767539046813076190061180426294063305672851166114117010611216049920356710076768364953398838127567461526404213034429282483233280481462899029826173384040553235775458003577627057441415132668808916238300267133914357666560087267580783353412347895379346764648394810617507211469818721373311129339534195979057961635824108897092825865686041469410719034840892758252349348794973711823294423918473741935180157311842771966614910105796913852772857137554145504675743560237945109516510191160531007627743218466258425266778008255196142210648959008497967567917751766871802597041406502825655731976304486171916838940635688832741755763155308022293844523104066881010727461670680765872697152655890089857565045720713341313275745814142243858647061265801504893948272891390384684242841626124571182958950328059354883792474909556751552782619229283983058372100586572055541909346592123510364164748899537744390227424483318089844243174194808437908453977229309359332064426126993865425365478960517466454730226692474232628554531316545951611657997932329562917182574128523618459911115668902962962433579419975749992161397478144539005099103013851307087045974026205124482276639219166937018806371619673870921702428149642703579847569914561278264097096460884041637292937840209773807991539891119641848049825644171035662140022345713070862754787051192901344185509386573503907826814215150145289742160995557513728387554777848219035409712999188796471705511406285752678637873856660557701239731356293186087283055948487101110157933549217912034756095866439436489103087768901779711569672795629990132514898434165729660074502650024729415046734422664806839329930288567204321645081787176374871671253580253148749529148065471488460632830181302093314853303131525194451887905458662021775738355373877474269998697718824748448620937235974374465247176387161275212023037796762115350010293900757052800085036420617042957138319947708058737257293738550749917964724163883464879186255182290207252113253806021658036068944629037503287376018972539558264698534598850583042754327822626893345764376420541785988901700140379037721381956918497686024730450284270509310406074298715314679057405894644500639333769149003997720576685925050054966925419243507516474693756364484790174839996632710325042244606398099178199226089896256502462656373673035848316753092130849680277583735223984839953264713025399065390380426672197996778116319077861344997028946620790565283271026375084947902599460905234006050171435696793468408121461515477431500355243903626785982782955160254787159627840750070959433205806591919599038902740207010385760097100134732948385607639140792751567343234110731428092054658482517716210457875049631539668361866723779596679239798198426584998402992459159201472475929438921192298962491018491966384964716851985093088639840654260797369449532552793824998019799841708177901878277142916159859371671591409125564313038538096592082838324612904925044578003663654720836088409609035959741345611044172687453689486770632087092429957834859677825223054388855176641955319903231195373556539535105481615114641370380561988521161675004162065234099056706585298847936725156560612863327789555613572739366928683457961119992608828596947520883636533030606375775471959357580275793180977499069049946212374034347405279262373105050236060097130661734364055905617519323039244650388435027532302274407651617541393219462814226122503735618790584031023341925209998243854123600684494056369977955949886193398817218335563433906020602694800328786678027191288234513516667036204212586583915929765932186035979121922940850015553491806280013213799590168233703016384753170915107210119188602518720171814664859022152774222389987056185913406740506274726228089449773811602708377736633968545905318021351411134169262530737181394200279430454762967195220828386692965986146100711639052321290754510464096028983411825522235471036546625809084747889683258944876663342129391195751401781626128289048921856460977975744814029894458073193055720463873630350726395743185628497890888149047834856640528959000595024902342343528980839015840121833675055098260224289413306360805537625134781104528201154140956133429170702903790336283395657543302534640352666243558895925942412067900011118442815043737306717829580089602120039431601472588803260785562450830873555713531983714393617764883002888403828581551357852193492123985424275860693998471178111714398481191492839377409886267364535304665409040961990883293742382752557762542821032755167773657843692334118983714589421068263714780930621436375444619089607912221942942641066260090470722337807656337341110928521123592928925525617534317158366872162656990622418451575732789736740193662414764384198564882601188371701476145756255323894474784810294790503892949933763234243012533924370923711526493054642520417604636788823782806260332249379953828516076732793236220433904693076217802420865001002351875118221440053171203388011717787885955950396387218560114540605245858970685674567516507302312754270160381949994676007932673179459723264375688934592488136035326764749697405219381459790700050403440650185246258893346699055294427243146948514581644906893990904473206649550447801540714189928349979380480517664649546643245522735333703968647100024057400664126773918480735122524720252541482995397845878301272081228297558575740089296770000894634076349663063428429328282309445156303070633841810900855957316067946780822316866083576932223002413951379168278373150287567246790507899499716824533897853174661297018541123372484480127433908831406857529726355352865018176307621175432494296475188024225512159486094799955772071848507290288344643694485627104685923423941255043122351261931862446142278390123605243590529977831258515250773539209915583791123509327848296647770931600762980642746185959864766270876937934410963274102175627933586239628237531240787763679009696281590442319044129559826133864499879738067995860925387209390514027777722793225560236280868512698457567276764989556451513824558714365959046766161398531512935130834331106867076149971873864906719983483734495623840647982830122017088983325544075188780933378010394347381571245274804934100222885263798837006242284703608184264107116968124487779584607983049791957606757503731731397501309089447215905811830456945275362078019508213700851721899928815479667665327897186686960015486317460966890995279860179891972649231277697617310864791149807038892769090624921196378444151130253818347156239169066400416647824848452260480900324107700733770829931419140786110442963524802621911652396114334461654682915215617628962807202363958435106097460313428792160246072377612078216853864360979293157755680470925145553933500426034918012050596937579883828683472125395258822081514631848228087228399837631557260159508735285303173180624696682955052726266094227881606310011546893976300213956541755639964375658157272350327043926027627118117358920907535586365659715441240120570545621908620856999626088744465473241819021680342863231647641503135126025046837789194598069380983935530109038628192458128951713582039507688499094349880412728906547387624165375530720132414018562534328280629813510548470162128937477644900914902789760607172244991762804573169970389149737552025313362567386064725277962708010791552615738927307688498201606526801688674692271267843689250578536145758103552236172079340273489007064082024027149036031307668910170142148030151735583960785981402582408404317361894939650100423501852783329147290766642656584357918645416186846910683293909387822907057018580149405087427449887345085212274524747698942295435571841222835155508536223634244308807833367242121044338777847205225443717323656880519063773716614834694803218806078026141393230170268375431942830565285619136475213460548153151869882528610745487504431427657507566043156246906902877684982042095269612368913360648026794584923723165465746422073666768018178490087545250272116250145184273269053965108992850216814009067779605603724801308360463086241305413952382001790184101795525872555265781596791301520573309999004423409110147951256114818629106611701162332126831186025950674539405478082728798836516034670401985035294632713996367372465441764587044609395015088695199657227575380593565592242727409488588334074602979590493618379303590227729773575162862938510824827850815070107491605411768037960065767950976904898873195557128187244927326406169904635652293630772337517784567525301651507626936581683335165017022974220403066381085957952927993711128705217262944910032208346104118251190244738720577989894540851702038435644157838154124803828697624000125872946275549616461296915618002069239421139076001312657815474714841902377792672498332447315552959899005350589969506261565991568148851740151728304231641165734854459848314870517998171419467387276480607801711377634570185230012545363448408868891303228767896954952180728183702783302358091943482888429727808855973794923181611388825461130174175419787242394352577794021845568139472302441164579041482829839283578851834754308903567301177384364228735894194919944449674731458141778380428481530196490463558649818850212801643126959206354749136111877144835199559342281226514368490965841381616607792899941426040408964372191147109509838380992519997944538242504031318549244843821308060565912207900273499349982554480789108615510014512576065728210498346538391552980323907619832891694847319400916102402002156439550265940595845587416682538883059589940780885119572793796803275943367535077127376486925706089563562726070200197786388345472954583073149393074692273975982721720071631994875381039271163669314559670737144666040548581132646441519654393702132017705942304446344161067395871478752103477456761908524168815285500015933927604832555834036052037182220545972982999104772220422474950026755995788518522419791515678243464536131143714505036930311971561453753137542833418486582735702606210089165789928528841016965713490021198946419172578751490209340043658532212223382873833112452685162166987627397906125680118965092857379385679751048974633805145778562325675064143936813099205438808822715623592418723309252748849401813029897665646116659153492269968850369008271335026317618887769952357540860520664707640416862641367374471505487240180140016405706637847275597331731254614276936858744643230125804475753571527935642693307507921121706398900605864837015223620142804361625120764816361754349417158375141529478967114382505558573369476655215287687977373821084807186437618789011230939143597594014989260029498239409843678947706563737281612857901113825420116863126331114907727453471723133306213844802013934769281571758801064966273148722956249992354136643561646766826559510408189763522967205134248701005127503773034445301154505487845521364448096526795916153496325647412875470203783456083852666479403115716274552864853379309272323940151411422333144674976824500293577756091118175322892707182598553051484116880142903726993817982269503271107584776121017500978900452195623422211094798324880468305783140770790191063702939381991054160940739109772643813121577407829933680671468561155768602798864770084661481434727711976208967765490354075746084590730108795482777824355220894839514399182526989289702648712402676600100733226936367598338311506564540561781502167029986511147622234730838678765954658192617613485716677966851695177211822796323360870686016621107112021233623903826509218397161002127651672062614711193794340530949114362386969320988189562055329955293504526683128047174751109637387030938859480893196891072773241028684359581403990550519887148713940453366691610491484418271702688159627241133039409183901297685061489235798562538396867702695713913251722632959930083531456346066283926818978740915796890645990211094621752375065104819482610571289612968717830596342174543542052713473997275014760919612290450589937529173392294178975669816300713718599974136584751778318750615651572484940394372362783860584905072876421133372372171410064723771545176028852381206777223817064446600621132185490346879350982621128100566737325565019878254684468333609147793238072201406074596639061386713668378605712471621232304495456205310525711000353507335509997038475512123479738096590745838744274631566541925569200954829720912607497036037503123343190200771154873968915699381631753006583823220221125287370430806257406726306253693002095974015046636380857644900833517055065483575420356352230465782439106259439785852537468178485630850810157109801050868312807624613082279204353599246839896386273716859695732930453371214141052114084108463414214822246851382146577566311567640309002107976858577807863241450536079560245964340222380953158042289256734666606130994062737449765920829033250616932641049201608730435414509665706137998741773325709545808692659298716414972471722231124263011488018196544391231659725910794072665311665705433094029756241311154914246840379412266885824161801967296360439953225310356799884299761157742145243032004785254547065317185398249813473665829562801243561096243559298249769225556654576604671546012789448058918323489196809984883025118827499471286917902428408250675926249326213258868513235907336615163069354275399355633433675979965572560043511776858933008677592256171000931529468679997514527612607699961846855454969454036220982624793995207783133515235311894022244643436144955829652386271602983984351438022033627724066170690022560097068840931350861184114581165938903871474073582650321518027255558910224495203676757254090792140972784371585349957873221379450212194429170013454397626090904447601724060975626709264233266755717154452491151522920998669829173757340432465400194497104133761652242565698447157159044529884072739661391186060378770624420785760571755732344266408911831934287306946003899534673326186078502964511597788023591565176717505115348165095231445329815746065901361761969978993879567003253212412222826306740611822062535074749236386075863991431016205130241534081170305938346293067654778348851800005881116897549550668444607671168944296100865271413435602227481182560369318926972506033439052245495468430420634729668905025699565247063420440438277314707923966929470193463106950021074684324362484820347075106624583227771838245306018144542770044528174440068373962779634130707039822532766315636848978648931776524045944010497436554091178197801119559753061201441424199255522453796767991197338151997858956005557513647849757464592753945110231628231437063458353130280490297201074794847258434689634283707110522025504480251476946397985098590307695498392424552839974626958281233502367952355367273169111783909356384600831130025942119942621402768872600354125978470231932181928495106918425250669097162833878386398664934954902543314437333265488699675238405503904396372870569521927720389513354509696569817627314826798772244489532031633720037368088767239466337320074335210194464228934409059628776893126283074918937233368365512414908472306271578661410103284779609504134816280933062601703278874945466702960689141332726246027283573616889767863075093520014586905863950531223439051663093778190367022891265177792826451052113254342831301407724580996239256087973823138516012466582120868182235302993410487788835192304897427010161917166474772121623354734215946628390025757713503592853762078220016732792121941903895732012872984752780913653054266835586914166270111749550140896319706091825710498126591176847470912940498706610912104822450587570218824374379006507953645310942910061654437358586921533018300877807801654697354813906123148662498838983209885812835923161636182901145376145810846709238519525084147141138772071196445180362820792838034020713132308003605592707987009675603291259973718444297785940653271107915264575344511248203009393837170333810797926242078155581541561299082993904326298774177333692273910696597109459537332890249402218753316755261147382702295098026678608995106600897668877669992903820032087014516718143676327463297299293725305340069376810051519081522729601764533310835604782982453914679932002343590067775531916754823829483210927693981908277061502113169103447983466054748339965059336564734316266340984923367785313790256082317813540535591132388917765245255239403067844815803444892447717686864081362761823189840490166249281397858383707884826031366007017218944452620644701002456312809682562105589020770532908424610782990092448334479171295107246632324344567918589909782093105772418053661548154574272217790084734674410381189342876454878038352318283411916590749792938127826151344663185375478656566886572293623365014900837389058966998746146784381483699639390632853908154464214847114450443149662528568303254951190714667283371982938286698527128310125732448346996357768758369987778891714977400448010813447655988939746635832054422179806328358512762961232399991526320286713593874151953323109002811342789131083723048747195571454294596178589492209585605211416136826214561601356433576591834992485638633617871663986791940705163845006443999895649229211845242975844274125223499133077276806303340135363373953072234914627794041588293753132012757794698617285876950718896525375712684935470224237551287191362623192659475236814965880104206417491071812629540687568599579354296741939646491014465985659367131255390242868327362376296724796044535530919751838543926452131360059648603269681815088201990439167374136329207332133399467985953466752327676961198087603400056031983365379738544980284043728332632871129061635328495267970388562444650490485473454725719641337013151888651575500043470520395740743829527005443978779194832055138354696942036009950999963584042870362424116532682972359380287979674821593663286865794081366762925165352069845639327103296862833963119803691000293276970715988722185377954893306236253032571835751816530378727690278680778754011804396645048188897002492579839696178497169969245370226307333298244342650713276347826418144425768024135605196833392790103258857454118086856360491289394882850563381047067877921582294491505974240266746763941315055017137028565531922635364838697683698632740176210725775623683043639349456314427647829668667244947330249407182498615938958723848071758951826547791227077154666333193559700325564562731195976159345976189134104501374602685356664312619273297142886007169028398915132674537488462230213882170371536452533998461148033567540785557716676663987726985573387884686461598954826799477834918464761046398218446891080277204095980286619878075106626419843238263905273683361638428873192370813229858788654597146234370035527064084202654639780416205619394057694394212108059179450636158242697126749104591616403015417369948376729715848187809372078350085409021115694284231778064559222273192714334785915220040606080147288926647429073635957461337016676240420419584140518604636841715918034529836711425340662407173289221346905430919578404415607429950846499880325986608881942786430965844052940913472637541538933163587388791411351411605846724310552040536397699873440634028037229644596928935845965828162656108213449724772224983304429946911633178518510139905150036005609987987155750344795205127670058058525186088326629958990772175677978394728953387973366008893685832681694850525357898036572994950698964837227507175297559183422955213183090284095133759672841270781574382099094059714510013199540274201351209039650252032289693247788523115317807262051812023882482553797763899017957121287203813852271420221242336695789322057468922613732592542852442704363502035596820099743709214366474806625083143384260276199135985125877212098890364088915637133489445213011935969626828003793334756763638671408500815796738464691654696792616451447297558132810580185325335236048616677572517240090734755392387989787903141970630143635849652997238315832397887991000361288470104077129855621340169406713328044553902482264771875415917087259252681893897303147197401410043620628058660300325292332025322745751140494479603643478051921573118200551749667990658612245171298998996051755528711044466369232587036287430916641484205403907782298261716070628619248416310325874142122023449403700821318367041569840505979011731368958183110296716452376220175236825127282628323124519633120659663990408974491306081611880712778770206453043102757747419546256734448510716932384831317020870416543086063315763191079532970083045019777749957147354160075759009985524598265358778022707225125783877661252822637119956017755805474767841336227812689690328467924107230404934650307045382636164363977262442341282463398979410723770121879297674721055690856526378489916692306308529677209940222057131030044485936930853315410758037431219716046005388449519119484755755978480204320694026348501107728773590453627073532491952887473945673492048084431313995195493609127739115121933264431856930671652787458360261562783412106575695357830302657699172677148831333411001007692291751540750840655676984212291801489148323006293261823857553580579203593571706098614626932514541286190149620030264799892318393211853920019603213314555835771249474336909571496374416911109215590952073378475160294503317329551718345944376870495557582882491613143872200948815303477579213816943520608119453811462406321786197268787254484089951488259486346064852376397250435616193042924290520418560513146680090394156616495707348556946681045491984905250350311452456784446559679594138795437270223092284923316705224414066756111534917942902538950781561443101608220989800287541013122708150116493413733518433662302044976826045419548445781913427789512439229134886172280690645117473356862936628755152187630441714866918783093875206062136980799460678687221727901610337592930717701754039941806151890271074720899860794480810812558081258381257737220889446978949122994212742957088197373134383030437594958038284286707489791972502380838718922885977139017986643094446349241820274440563703413378253095332692459740936623411499129823627488886268403047935874898607600533903429987971333927416895960370015230896757912045327857427809731147716834163984280411609459899572227557507313763852989015885596882239802915029900570736385304583043224474590395894779778720960389319478955997525584792039367883870169499319383361235422905115198658827142323374096173462491967871034092305979377199859510518708344697688581923332933697175343307583419744058733433374274552595791152171698684915171887715420152720327174835784828435166189079662009814308943698880577850732415111674956690768016654523662099678602897946370660685094431779024019298716911087338880450030818812099689267684918280429571623307323893603150072041159079062079859477870496334089100463481300675882633630719594484720312159976488733534835674505343492039217536612679375381584184222261097219655444305056954990653627365729308971918630667851199588575768041347297181629066946898099389542500089670413545954734503093527460025382388194913568965837954210159642652250569431281898817595681673937909509667468670423796437644738012951362169060314475594409489278202912250311393015026995879837594150839695882140943340219936081367192496357333534831366994609957096024367987492124893447845240038474588965468362622674675963297351257168602831357460628533179925888905537396186862777497697588279093512735524909557699255382841962806223442776816825959559378256833548617267940428994555205106172598714676146839818279765683566101136217478095845584120372633338687391756145348691268406157497102741668004336590208478321615119824954238101108537840784578811996015159461759675388433822797512903323860616634742873473025483237976726247434142190398568173071866760973783936609120464738657751182244511880534358027725983110086743822973281730894595807213306529099637439715536886448437536762690925230692493185571951816621977684273676780605165911463600700875885770732681518172070637623291147051576818654593720617563677332887312691774597461666511155929051462521298602722629200286917424653209494779808747922405209944031595773002750195969612591405437089097678688772701214431004361100449246937674835662874336145233397021625328219210104831949607699115227138499832981337150728127460044929108494241664434301761616350337443792240102932148698180747741789162940951520552918276903685097362897612692081204714986075755002892379234460905892210964455794404094585431186874343736678784986306946736841405369782681344577377746030744813062043759575527860033688047548896389404186748543071682266629532215187390663910087078461878926271074937101201303234461603760238244389473097955134044860105461189050198191126034348292759234746102493182199160749541864221257851922622298959008422490472922344725072518099320613821660716358324965921069434745189106850924087628732921870128729950813501229402646410241293078387460913513373607488208438873999163890651995350474502927918219794795529729491148089549603385369347362534140509294288726984915377647805631567618114873019630263550386192978053474615622693393937259894618023820468747735167730328740554907905432669523705885630242976075652235841702865177294580466552130162007395317416921695002920349455111515196012783943159894594073670193667476823789242872784353271938880005233614088262165187869295040196681898190489203457320180839644360905892795170979402097149428045266940055844335130364978787710434662571068223537712626415944595780535036918394339052058144100999876282043254816145058862192971291344981410523370987273315405625023728385543392448190294025139676188293416462764267330734569790430912123922301415887980184082931337756425112098484954391682684592021320795340725700190292572631691643795819721680939088730413490969933882653547379922009495085660127427843331978055689224179210767046945299092665810899729201846941450437928035132830417630246393525911438855766519839357553543148912096746305383193801161635941308012442270488540204525459418075936714354125664078405934331123948236127294396478258214185597515966135478040059191964831619935322257891098232210456795135765259161535201047504711329033176737168193939879042731896554077668975584798608091379641594944252244871698163672047161309955487068998059380339990096949643502129353890280397793307625363123747973100032568642155581528303817726105510625898229127260866154911406410914238377461370343435378999354380602960105224039098109316825017312230806605561493038488358583084016544585008891912585638931380662203831519845337171308607285246647409778306062975653788189807813829356564649116638203024318556989442213936146676837306234751748611377874953137679642026669052534179708258477107452181347532177549989401931087184557347284714924493374622277979975468370886217876309868063581613633826948485694856172128306113780051032844770728377367639657017413690193876817007043103855329538239695739601879553612456517303778562446254237554373802821383965203178567058979106038711961122040187710037575057667856351414081869294947507255950323453100273610859649928153923247356678825789915307497707891249008250147094327384291458347282440205815978540170173286502421755996132403563863328088316309511194735894977850753972429386654167519446539900628269932422078701439491539164577078693068582492021118355225241734730466724536639970249841200198137786028209982548490547817367177450611258845079427138256694015971859331011871418997785727265652243382994739647622355950358734561810433414770317898043097358091259989518619692696158287777293115127222961939035162684883103005825708416683543995188388689807781462682589727339670096092028072759687145041540677888040380954798702040998110497639988301831093245445429314463886959840300295491513118790514781978423634981312137672338775592872360069866918899797212578270146983432686783967214192665813483357992550940429553418603618562459212887200818783305173125834882291253286067030175249992208483276401988709172460387723259210731974481979069513101489647004734478624674227948427022784976294283971914992313972835355892767899359361849217138882935915116309949767450463099897009101481870321179804485671819576420044171846400178952542218489564428457370088379991812769168436948347798244192838666703285555921665750878699965264599005580822882819195884906440079464075444522503486925879374929320770010008296193038326036430365637927914704799839107965086664126946180458825631529124486747626139465613887603906794097121409683115273781950756989156294996246585359335025024074971617440895998851886020327557130228454957247043872720904961768123139964835891067798638218405503410728713218650973949478307088377849392492971763309990801289236444228654284855959065846940069614319165011096521454398000981363879156179036009824872552010300967002415504366124698208857281063510280540333430606121577025135258738213015920793019695332271610576936462250435333430533624137926203177233329327436777202604917610635962428871463271313319798167894596337388193602423404002986610139342842954346023341325964835788091224817126024080661690256097908598970138050037707187797871748919532599453178807236322521387306633497004414573212476769548091590462887034163307290146144484441006012795892395959959294416091229752068839828330946957232758040273965595411761283843246834249443282175377629571187951769977581513675558744422770300298502204699879729753088922927705101946696597624996715403100211361392332163206182326876481405087781137934038144461737851355087952594949048761770074553501006883472160465597362391478362966612196029556825519552584814671870401256113929753994077683693679026460867259418003563978176077321093507361596330891701756554041802016328803981260392284238020887396396296006546188291631230916738203385953532163026051111794370236697215870835724733845458313872741888749121934147573100759463216723094306877951516389387168367078485569047457719945903534821399919079738164686073991626951905738096225435020539715632332005569183883524106741693691030403063691733253152014924354049153885190715855529857000181522141068283357390097517980420740131413506284147942059967021755991231005772299654252142768239243761089382876475136481091002698953615799991404957132934946029945480119188464633964972687838927050438972571120705890929353482695757890891580177294595579408446681257245573166592008678242482137228904143457221335161798091835852523856476583444607971616840788283393432451964482277056222764480047317351497996882190404006373102225222120707855747110366179803037683776392350538857490884090559697929653003061643986706025070726239251469786436013825725883137251241091093400653856050212370478981994925179460358326705085294640228624658339417179109895998366916723553278989795804031626171379211916968823244442277895171268891656013131558865353800416997835625228575592702876929015664231303637368964454957263629320737281511883044599500378357440976311657757525902083207318159273909499918004385681964031719340263510533869460347994260098710781164482969780927461326545077210510120346423614221784081471805875580673238459483360697740802247586362466648199641101920816376609287900621843846153170067532240313224754861347294259289807294913537771680870891139790129610675115984455875806301862801271583817879840769843116194255037727717724378882507036359817622780384655539947221615026996757295179855918057482953397693570077010486839730200483195497515343515147612376002248539235120343504565412451363363548955362891007505256105999906218555918358608249153667629653479055355116641078664990227546943837721058735828134992181875789386170107147684958183898506970819443468082497362508759192776322622796511678693983546557031869364839692083268722384726015748199897440875853394045800724210938919875217036446986710750327976018926032034201096086028885787733693255718958637486677990445821507447163096070334438231277330531211599114850752781283882749446690874269836349915601055921793465372381642015537031114883072008356536239000775188863918447179147771026409317502784855342523698284872502941687125264330647265653215976533884132190035868523209581209458068348032428452521569311485175601623444600012746675323299978771185864283714847156637408565129972034092878914965525988759802332690752311387859938212575786081480042831228388493129587956184168742294971921654291630937719823845680670493332095229626835392532318165719097758522839315290138661388966440022760509951801101358012539154287233978814513785742220589268667303059644957929250216431669338297185476038870147227975469072637426422327251432204715652758175146397542654188964988062899570784485933725521481662886322440972013018692802288916711282559786482998248339164082657387421797442798001067874677752216025843764712869961793039154167569984157274209720238176392479223387273265436981744809370154908930607713211935190029679106611956242826868901259074623591261785844482615771166560939974418185111466289291531504600118420833588605228441057004484881204321773137811968076676634292675399294338643079234839802202000314740060194868347486377453989212300317634160959190872828259168159570435602536682520808036114176154515503820937858755045792095274120647088758690417030512196187460726808639271424217020379184712000018889716447690493452407601273184092161252515739627486662840390996032367566575170385687772040088396043081528313550009565493721439463310228831136257963099478611107004868289874356579123786775489336482429275506946926456558493445746266976559835692815190583322642862286211098944675289124139624838988124288942470453256620650908641497954955506106322994442615011644081336743880625022614434762853216887628243114379696029296087344936016511828179329168607643061962170326072753210049523399517940013392671119380000410216178468982918152166706997669115441855771404312265280853065492071861151893357416111969715657354902239165226348924182722792313214453072370158557372498326571816105784950187003679690326652826297193233528798442946989861497108072646294611816246196557946348809801941870580059362574848561632983748758503126295049652527306516490494123703253565244774538880448695836415807305307353064632357819883105830595674883508091740209183069753788267776148180532631587359346833719511434074904878784659986166360579417880070532868718745535450113727606307779077095937870457566388100600051904455485947192609270887266854866580132147397619332680119093665605653121923679147578958754850159299358122385858678634808295879449641075969172807944794548148937043162434304285967870018910616875129038315645929372143623578077415984836160805169765161746710641645713823565476498872727266963430551028071220761111321530319958851926214992920128299822795302619760908291112551985863255934526813105502257312632446206179903398833592289585160206631338294436803890671450476050644443730488608751430785400556689312449038597610930622379019609987012167513378314343114635231108555606476701620789751947455920773915596962091715675918065024804394930097954858478529495769075465400996003568446462373578617210216866206381892023658543727303719522695983085048227111395044962829228028116216056917489345835803878567236224259851272352148534039538701710202376865434041192729857477094814434095963795540127301864026349704334551842727183176545741117565981512717818161090096922287095208426497978672991279437876239114847954416977914657369782117706819377166512129078531030567809709019600474209710749277387633940452183369497019627469786151951333980953082204865797708581937620984444843082845371611472003239039197559057571647585856248240106364414860811255254888965621906100838970442748136443873127819503716650557810876592793417906306398521901648154930731534950569799833205285003870369933729178474251220009413372150271671817967048940709087812658654084476447242674546039942369822221994884415941332214155124372273573557135495160779560430197751969250665995025715206481404119149829126008536526700227312643943650569675252509224792116771056845531489745612582944379425240112856227344871914940546992522848073876669992661192317488251858486563655350353202076502995811745744334002031188152942487752198634833134435668863519724293920782998957684713364148738708484138660943005187936901072953337282972309143905138959926567954481295831828216564546291738166571728109341288596502844532255997701027415778433683295783475797446318925254267459995465603672356843995023844560239048782561739293610160112976441687779947844082313401525592971594322337874458384182602974778114671581609631958501062826028821669098467597375318895799716561921299263904951625819464111549436871003721918509050461918691382515098038149757481245395825139048586624099296942704583786645050660334305172114561002675462268337944934463769252937394424361269356410837607980983821018448025711915362023406285812555049626443945786096657035557674112833331337729920418751764760529365326336532776216899285160159225830807190498731848255062566027453356047499832010143941497731250098129434800149229907832869523781506061733571471770129136975601956179329494841362127050588368308043827058624559838828413600937428649763648651805814614246159597723269141696223395556818597775368620250690096802337190428815181302001928897618689911621824153615625260895198250690732786908370811096686487937269819587831125949251493022781122666772229337662307608223256486957307272644119452799577669040500191686339899133226586168599722995329027046118483083800471858519121322639534427518082333264898796322449483251907137736702035745936363188157950886975553636641076992005735579387699621517268792774585738966082326981063925695314025482309922445916288482921929025580771033098526012981563277294828921170203211983410680599788515763053292851671101122399992182126934627120939255614901175668352466332009125186972691788223838059010340330682217946927175219326123995561868875691384494223364520877426265724564081148625500915724988568846842626732124997771625131605462129135760194657810332453312404165521803070639055888099715572182560449386193977521841773259932562452715346298698801626953875993604944486241940876069020053752657278607252449321152714150420857411745807320055986799239961240325046319450387886381062852326626270763352710914076623571214604172867250837357633119627374718916791465082179322303872501565386035184856142283458337198936132871445191760257792591653604945364478488419438727915082643575834659971574371920306791498025625186887031087734015760815478231438834984141124170587962685926105788806827289455444836710446944010873741553493964722857739922038407849219274440178811692239266630489035361024684441198937709301412645825942095796971493409624664251039486809237565397545633318957117579034655825700829529060247938066167011719570136047828536852174642560676210287885170279553746283832336265623848524170496543931830918052362059920765365256198394354439444694154283988191429989836376698606888711906627510432811475663284009657687278632333350975035184229101217820765149316145940947678662159868711718699741976750326272649914746265168584465317202377867884757857511086776657158133480002369059857948399236693623905876735320957518752607381727047870899800065572227171095354339961964782699450397654573248058090937969920698902615407409109733573347009568701733040839902199169006438000398667335229763055358947827143932472666884637408163970176316000607511540466231597332067270730818076238710539728018419367351223376884780512071568716154502216437707053207432043480379302886223455352796224792370803580328137582683194725521564862497429442732916003063832616278965528101511303885844452735666603598141027510508264975265063944584583893996191537602518845747930242296114457427731381293789615618549676296476567842647469357626783104668558952708433870790221921181709129690399135121048869700064168449203640470337209251350867958701414004969551637116995959390569175242729310658441383178221101812927407058712787723003221740948374694965002942137226989874745655195065708750268976921919044564570341548677616468022328922334199888242747794346693083497700596333658685607076573034874317278631590932958212563673372410531765810424764582570043000489334504758827052607734789880839198083411532158786079216057942988587309151132910189088894646596323045072195213375911212731766350027670020981714646181748964718461738238288920839404694175038084694184400293703671474748908511317451068032391637715813825451754410993140950001258918943965339736817080983772302709280082040039138992571876745198263656638031295008593995590877067737440359764297480310045460367498519283389006717391675023963625727861915553414427248097132656435677461677398171819770652933369020501411408302581476681355641962938952462743683269058242928213126330774311884891092819148581434616823979801129997719955251130262198658047073037788546976923314662141476626246951549896920063598969740822884055033594027993580258620835782077869256625316555341904049307076628531176099111554105808503546481329288124157360945160972262221292028700007706232795382579567557163297314745050636745177032772090480819534837570962794168089418024796619210849808000993752744694324440234099824012980563437883588395946035014874479931781496459514275705869497379539866783370362135697828359053324372387113938636223226899122576773876053614397301128344334741529945607302882568286005371910121064112086931240416924098228288410362900627145239161797162044634599183419540934340827610715157905172988951922556158323475029028533764747608851157402816844804625939860347641992076587105820903378529661438877327179394131390392249002487592888126503796740881984867220684717968020429286664487617006402270090743829388482250850021451428428924645203572199520057019817224642959873018372368476131875614260905370373467834612432218624647071315681805473467845900353819996533348418280123390347164919386641211702629355664644402183475215815611556887923219178990586164621179496179113618665855308801329843092624879728517033585688863360640776365476368963932557811581131809764696968826301362907547612733483938631139000864053679797673203829668575509382934452809414475654437348447862655177815376991201023723656768273505986560428133121400149462999477589374230792667945868509058758289642289903449680604818645128216244555453327372595762269975145044739228011187283845208886277743735126628744176205706436403327997049684295892201589865114867864060185766157043092240400567915799529495693371955863023772796494527931475578856409741017321392435445660732612010319926640270267616073937550477939360085240200394769303714123824312997183618043369663944049323496339060262394186228045385936908699598615512067533004616928715297146126308743850477772359214444044571654353473087230442217047024749744885924052596522131690871338553158669942617792934387736813778708833350441739112014352646306955305293266094430080370654774910260412638791208918642848288781323998646370153821454263397173023715877818081777472494671140751123297462375487450829661389322252437150098439356377616425078163815584571765313081894753437114764141761185891625973468818174842992334297724510735626261385086187899794432809435932222442328516923237259680260531642040016137665698330880719054886939966201896403166867656259834444240401343110161818413800056492620999610093298673272075708121416132086981059059550343859854719669626094291021593555732239935664853449122922534647614650029384910407818232162686557585516388311269172152480241863012509212129934083982161007492558544460696692221256327025685343536376592105039240222695220520318027595883401856603053136997724765144267454330270217865023989682957253886616790173262261275562382140915121649097634774886643204031505563688652346824446442984404544439679106725425233715898184757601241537777504671111926542682425323840321919783174270003163609842083295347698039700061737683031998308119935396043925883113489753022081379226960430349156594532109158135494756499375954188176256451779077064415734460883232492878731029595031034859431379552314886423493105718440829088745672139278896858737333596027092090836203276574504698663205359701756246990282775406730308596586674861671509785059528057475105240265402820396292856140404164052216499961936466395177712792682834974143311066198443864446452556076581964300799453729237426896440171840934785029662648637333579533820635449210356351440753951474811003962425691245622790862497565088410216292875246004036444809846839413888702553248599621583566055866173478772284502146434092398384480330329496311199373766234371375312904064063720488887920635013652698006365074580901548869554260694039403099424033106383738889352125366074029434265219169825643969327318855597013259851568571839327317834625585925014855902396167990495332375340406716060871115115347809408763229086214868057865582024739337141792652437046751110197356347694030505657820164151790966521447313106190597506555650681779856413467298434899252618062671758442348714535920006891329783229871355257324752806933684145167597274736362788332198120426152536363413189119624022450079287372307447680509180878386121441224666787025605936604860532958635399879119432129636710843425176626351049387981201595718345033158697836222847246836457526560144184097852917161796821226030026644635981332062789984518997056727094846463143710800165069306246533677375199210281847547925850277081705400597484192376212127533111449798117634469231430734327693768794900548218701143013014423088160811865713141725589735677564543477335966873117231183024142818872044110127121154471399653009046394796361086438392255233734535607568848446839239779690085589961893948848386775663656940806474316520894270671731425877343340919086679298036954081065630095266674844966637376861874810499637011034832112681286033108858732094774054529264890156409996910155133241968405428692361850740932494157859227774255702129154342351228823732247276794811330040541992783219727411412842147058553194417792047862062115415696512374076793068150834718408344629759500346444394296909413334044903197849010776302331163712582696415342044865804886235451804016491015599057732073524093662303207669938692575024295864358623359525766554734129917083729030442852853648930238304140736114560014146411265156541773248239664964725816848849494675706841328244974404727479407059230269191578760564087574716150355921025038831300081771707129111107273273324455484475389670595194850187087081823832515411822882201997979780004451236827745355594648446853985493199168049674450543901674975908731789808012296361136911709245610893328297793910728454094248925194071376715887274678641393262169633064536647555765645066851583810924751499684469770382588645400106265570687032231819433087492899101429327658471428140596560482463837934935629750230884355188936781399966203694281259616237523713239112960781286922339636163976441794409938234878381256038532051030853170022345858865602620378766091623785048572779369131428107444389360233952436773436621158410809119633575005878302895731671626732703157068152631128954030687828146864068084436524487865992038725342990919086281029556671258988518476865052695330229904045240015438333549623438227939274623042653206301321863054914997953921022724498633347931822150220088130464942906975067239543730230074681903486202755371528541151042384667034846152690444500298962831207402813847163296764071142663798004468987742109810411170654555112973582990471795701161490960715910808526481868522412721270451373931708290753340251942105062940373726909287062326123646804796114341005656485929953450209104510329756490907817144672162804926859903658418996390856512184403135766388041248945666006085968826009938976202343701369428191159013100572284096876459240242049640367010070459911907723961647366992310026566991884723079300102303133288255165758097159559177780515045077484669997754898041170878185372967031980482129920846473185214895444907494924150814741164816411308345366501189716031306592216278796323811855817711999207094263885183752157922527536342949599458302785105854312966239126673237019649299856668505673180134178881823410813041497060444482933010326424304527035161113274347299828364127486036891363909167890583424495162629268895331098411919482251114580038920192507929441510849211232674673815347955874474237412242247728361748619562570234928607837187832661167080060668175793372014576327699725522541060455846313177928141250530078826083347400205111027157515637925323197507642657757857464692686632573895005363655626346340744834768952606292486670732605785696628791949993592603169787743105798374491788903608769808834972996962711316336351524938508525755467081189363879622652474064083171247079145018148978149692112909205948858863849741133221231971106513606501999973760231731554932799028071801523203027488684689827927876091884812110966448122737549666241260865941226215887673679438887984316472029613655747163888583400545718313486265713442177704044567239306606441867327260960023924072687787007913056875876261203550397680201832409702381848423965545318731898688074443682288100200402083270763699374066024979839472349093501538520612501749271054795919979291155699816091265237794342272344237896835293385887961153582273622194259168078966193922564807954018754147816095377947593827118640818450899040275012798439002943710620972602584146656948668435008861248604310476563858745454163918015549851957234904686530204058603928080169235356347084688821027493846080001280121721199663965621420346593259777983665851291420014157989975342357173426379600733165562031828060123049535886154790316688878266550190921566026059887600968898174824777337035864276047329567620922611588998625962711480229927763607595064965317452427813207604094948264287528011404187090130245375820571726514975768206752013537835071404450059024135525153570437759665991234173335609140308873853860860032436213600875580682483965913941090151952627621131769149360251213842255131389564063538600502357272486515497281215900632112992312595013359481965721879562196728954370940506683587246636373757201966988871536568498478260360126409540231940694546156116000023053249327521527279315746695079226890009867087679570817467720183693349270957887035898224506703636914349879576670806896738852661853199091389890616733857083268451634299150597931924142235746514602561945349579940915779894817513821293961778235787382281353278843906004503806852921765101634548346227762901787296709460961517894270469946152342203891943276282397853410702621591788470567573722581901996252851119989359851364810945157914652734368334355426145410710603656951938750516341982643640726924209140131840381808178505530890059378496103253230279572328557148083587457091915431883138785315424218842668844859420467542457322646379601574387787414561432251270158122112896565420864844501151432033135986468436494532584676106971424813642214768758564308153044299398154671208495756330000696762838271479087444693965813264486548540415718845017846034770947014646992229446493461703188934004877545784908229881039928617894688100761600863139882734235940613039753316877832276776687346497396287349184127434603147546766647855378537030610385974401952179590791091447401860123302044245319061734043658613588758540046223293553338190612295244566231743568949581996884033541866994421524242760756773562841042916104270234549739119485572533609094531783623838539713328651934447808438245292393412830401987046974327106568040812783559076339286593069328108030734632753286138360852785097462426918998494043951122225164001473505916247386323970528881928738280818955172910238965652072421894086717880962462659634498990899091839057841678257262746099121925474912856044887486633271334584504347753231622764085889075180925940157723806582700953693604460724143198061519594851969609348942821521033156625228751147584142042034602112579806091214795197602287410264403748710135035078511566288421837166087546630609900329788195623906064782697868427974978926114774878793993790835207612755901224159593619233664817089709466835126707407861126043816256815293368158123030125313353396355290295360868554960592313410053179957083260148821266287962829937469609359272196727675955822523027568657113360717735511252205522069077429418681121329291841294014680171823599952308031774741672075411429888836140062571965238361360697809600861088398733112711937431834525746590738647057975907793342369433959488330873175431245274059529134117630497977810334962145273738021770139426218160867945498960360448121416705034142318531418477692635241304601163536102689267187656218288817668299492753119856968046225833844927110965579419252064575785485297984645211113858215643604751774186597769713661631120431651007869269055603382295278149127238378198426641315730521050529479493582694113449905152471125641392971255049622614465540125005472000087493374140247808087552419222475827914530037285238748712316023479184409101809917624612459329355665393264192290113285257907173352685681243701350718927329249862177119683644144999593606393575399724813820437111598605833192914480116029610606666583393286373181693361870572815492416757551180160833920644369438203112927607899364201087909003393575262122759318676504179942365410748919336704403133142815538559408540317102650773110297147276521916532829585571089193862019983636364035681284128242459218155566794744961479679679080986173581247188949421238647454338164193196819622811325068226665349672131257302560234576496537078962667967744180003457575812533210126870464550752151261528819756001149366090683020684458152443639288686916749810850588896001211020843616951914220652477896757741161049754998940830828444486815988638732278715934375332517874708070660293317429857082828886423925280834350312341887647384194684884031156688191299179737516024000385884235468557307480889855821419730597044515062408798954752570484518327891317670937748148566673170434699491596410835887469228489861750481443383063978337109461816981972930033612202526502561876047219074973008015874858475973799508298739099860203054631762631963963318654976317784720581731532719687212776580506583305346539864774702370334878103468105558483478944648783092579211737613695049220690972688791457357556324604213669351058954659598131029589967239581011445295169977703673170458033355660731859036662601948817425012049426223181223506186681462063413982635347828871495938458540098529954770634257045723150472653926229902516763138246526759316919079448839424351131793121325094290313006136717534035970341415125746023402214694979697482655198599790727278624819732158523590865437848191573679460421730503932590868627604546890996100835564735986644491488405519310725380362481231969055807987042493337427988554663929432412119445013972691221192121832034521782061516101606361754831860481709154173631589774472340748289985773380840355304631391410423784696674281655628168053673220616646049675998978477024309419545599780410935682533420697544847549322182383166760243149273892167024446062661899945429633582401402360365066835599443156714014018914553402187450439723658812511637382745290678408604129734703177710980322104729159309660876011189870428959833829747233550806552786365875246339780560530761004141276593017664616103742325028490744476395439695420788278594281394256177096430854725176758117875640088746679478813545623818074045697119192848673430469338950378558102080816514846217761478069557016075116081564285889316875299318608580671026801401797202959448657433688854189871919670198288154865974749913125491181095602573048948586395958388082540778700496180678962024569017205931336243361528828735047595909405195742023483162318896363926929796826130261985675548774308543590069131574238591071044696309197514586212228001297683087576472925192113371290161244342398809305077626766696251567329192730623146380430859089742198667653631356419522127808036015655971085499693400254048178650593941043964635676461822991514822502043742086336597187807127158767439652552447647822850509513828497427516753724174887942694894858804303091425961413975486088005661210679077716507273577907531766522972566797615840486109486163000004345429332031243195206097134898582839671654044300326487772802019375393745451921061260658671548593770739706651091694481186473386887672279236745331274151830404574713175808937524833040628733150962274464024467831942763702756984035299015358458096768228543459167375673346752978561708574676067517000473427417444849859584550877593388080598094900263486837256706685321106739850798085525683072599403958076544604133002116468164285070861057225442877617472103117493835869275167033386281397067568084842357538751166931902244873932870032638490196101218439161587616815692371209028420485731744313777449579606842107421128360244019257275531414288019172518413983989077946729473820912914879746702874141806908971639331123769532497404112328895945217996499396987226950329201802784738998957008438130381096126909856541528160605541442052921945407322932122270954066569784184090863855371263150882463972487843161107365985108796960654021218053600640770603333166002511715653296459003926414569015977319766122658388603826034826299039042631022964145117833081241518809693795051660268834556047765439338970300805351460423786850486438843613533538590267930250654375221072277511187593879534715491086513785421819536704501816002088361429309195243362998237626531225265332571655243067942477349308148611481216603938905305578543991491092691330362997186132890417430639038750442896088184415043557768811010453083834755776429065255454384382316553445386294101628718838184960297104668701808217074334209248463835892710673457751602967244008972613065300646572471300954050628971584802688378246664869485909560622585834887598514820694980256551172180036511164672941549980777882739945669385171566742932588778612582021654089081397249923387374141922584772611337663102068885650044094733846824420696496720343535968095057500932816682645276431999582420071291750094575633331312492012076384458777706770654847564700764422122645923844664793410081403451969718157776740035372990526248589976168469797698734627572273667600726730921782639876770487046675345312726932192853777724488923634330601022752234810186778365693862480257156450630439126214431292237078277469906333577426961359809039870426485044552224713696902917145975414090371080500491158969631355072495487321132820887116947615237193331190219950107146482915391421262437318748661860899843866345598569164021713734399256579858294680814394594333002156095793987696832043436662343247951172696141051523185378505859465836384339761262339203661370324938072945255568568749048382649224023347507061228653513342729072442669184965426610450583400379321482442999873890570016305274002425159113243437430901081956811222833620249148584994125203880409477985558340329306135895471874943977875769094876582598799532123451023867059109142305883266321543259140926528959761950370181316695929843862521042606317877601824413952598895894016163152352477846878953925686627623493935494668224624482194787098738790966762148659788652914314451799440237268352854842503541913278171140333103401133273042290143238972250318289037882822427327625156723060383956454418750560697850043904691796750147200737087464187033116153973775920055169350542494728954992016220815413860162773756988327142297511873383125703755193745416397579215696563658375488072484960833885447512263879770857952885298706977137231456267669993711913697499306065710718994268677305163562815767509246367003196926334074699367235002651878813335854209018491686558265067321134512358153376145754717126029413087038160565131296693458699420197948849688392121805694260236682831149020847462117997093316339292621156265039867954588946281544961449629881710363997445589450551758049067772397095982530936437252294620336677775180477361463863586433675256085745624131120844707756087596467792633651550888482811956570344699563987362258087367221502779952791092760741940898079773146967141789612359139347362624128353386934190547746544281004250868379047498836304709238083687030194459841332167024411600284152142970450422939361472219991502567294146362621347216990660924335631959873146094726909999756431553441022538008543479512410762817710073547973537599692142228740405735993387060777268662135646183720439414366829426415578156071267320235460623512996003762095795917313628606708777636755893733900489262266087641505568642035994840513676534083709306213509929459941301067465749986994114817227095039948824541729475564741029844096753286375672139205830571818482394667449066135277797548884678170402359941575328641030885965716534153986593441955427007884383532908586907082884135156975718217723388188819516761773484851524086595356294458566404917976515149716498190357403423901152780630700244908931328138367047136524409809133298071740526248655311214824847687540974415635454136299365638556102601053024312389595903619582814291887412432954329349491686008242003609829665305117873285152568587670950825949344699180072262079998887802892797004940728012856393907027114673605373592278287550896445090097723379364739613755009819425974620052051515097489877446481232533483887601415231376659641962909229525353434589421574437442440632447040362352893742379729767111984390080139589599403761631215574565775345853151604393534682819334260132835188941503435458482708890646076490284684152752575004362997122656578075654015146972127968926697061721956259192315305781979805579756320542929826021494557482560641634991551477918413730241970058338267952717789012934659998943306606233648545741553538018920757274326420304041228938721055571408902324794395717198148028895440262126981912925654925971681821838570070408467356776060893381362226155516925286852852467775792621928733557538265984678006704491899409767707376789139977818837733759023322005844624059629983068255490198242453650724279753690166910739243841868890071421389341879110295036165622327205134223786862746476011096038165395399710886201159712909849583062985717600755340511090237010391627799375399730567913552144861636864099774651828060388237543181284348771990075956211717323607442235348642787636680952616821352304094768127603696408520486128425180150529003112784886451380536029743674287275969551702548811504110244427339381298064180201016949563369505257903394482326520670240774070378438448330136953900169964492236137362172132824861332479208831582682985776980987140219623340082023896937370691359034595010811533208256444251937982262420689504597827683078941186300234351003652946596993875042037673758623441133587353150702583781571989803999951257372902972374831423512942565712055825954652731984968079085996982852815502727112163450612766134192019460892447220906268828899544524201744403302058252328252238524277234570442590674558388997942572041830346270728996968897589717691056085013331703924204301873439209158197610091721371419568970258170241533856328951075597377276458419149199788759070763198167583271046426841603510673122847584018328052508573749570024472861074603045459549988420761192628743264754262342167112202388370678024862442977747505317404488820896018656449973885995220584594953153347797331115755274938591480314217062749203902410050578508757246315218258715346927123395058980550202786649082445186274987761881667419431634602278149226382511084789253727888871550677956538981879356132464792566206997143692744394816598345375803677462595815454410395089513529358942140871165807479443839603711093309524890366736114650634362697903473543026767397711782647183135453373782026134873496388410384854849798755638274758212732323624247566783148300313449887637581595753390683944938639393351493311299954727000691721784832978104687361132943456744127467424527290070257872512298897342864109111415618681226697437310049227502949345029961713419438886510390349245711691021892342047282612955135204798571071016208460939021819153834705932683114784241933039828627135545383887981851185814796781302830100814963531226991423575399123696989980529571723745339353159772242824584175957484511693679298872912502254274220795283951916955735779220467569071968005833818070419004993643208327743797397899485758929687171988693661683987013853560215818968440570041526791576706843132126667540263661749249667577676411554530576896111172126072985974047064120851493563172437530082234146882947823999894644303535553986669069607310215778807032087854976351185704267804080531084821190635902739888149777777029187261489235306479969628889591000964075124177452062796642315453604273435784053728500586260743778821754731190368855086921610155482157597375398604722265339678395857538107207566706594096778846396809758765234651100362809943302561544679804659035503941771040562039853489931173458788033979342698815494713818347003029859053836887535679913416493516692380551021299156493375772940077556731940911863862155317956768690943333937775148663933063164078876701159390456983431175570103535151061818470276878557986858111104534412580306491965352456259249402018405814903819481956633518018710301430118821588161911477736291883383055767601494193058405187576511966336479996844010321526596724058147616897037839005786273371233226651698518179642729539839697088231261735366793756545318244589016020605363063478788691042086736961800257819892435574729962525874292896526843376722195686261877597567954513070644919668301461032547422442434888504650977433855271125621522918569188414866992857425119631196633490084129776726391007767345631842496854822601049634706978222363284831427414385363940984071801255715459448327603269724216231899511251444095172446093966334312932931217261532261054284027708533317761716108313744454721715464933233244131013788183314613913296454361774698565214420759753635272977254979300995867148277258769325804055680694760507854195206755385064310412770234178190100604058075301335567047602899791397140303190856713908221100153668806769033862338644435954712465895557626964269464353854223435593870293086557931065962456706012501197255750109632574252290075628504601605583716992536056933611793176152517344090938348370345077394503830041724260115655797414988834367280458649965288671424503755750382738712846830622802279564245059518282046747640093282346001661198429019100660153153152068923845939515851670340572096865801940816308609388601561286573744395370418263955097996809270600815532626644494135590488921050442069754580178896889490840749836513825340807181454730143747036651475868574880069434164954894963603920362722523841333921820120105096935358398648619712195304315077817454820021872615924710114195786988075652878733164110273249368241242670256270546095367385954570364047500623437421226784862500295965983127147638535458874341768819524298600425951762248740341012171560361889105691665052024153339824257243621654775515305426104509257183638855956521265975626292574681087556518104420807483544740163456306045795549826987938543757375608546172379104109185223046020835422964901839158990456908517221840602035388787379483002665709318887164492078366192430512424082163249444734443552060416460050988052886673460199708619923381367265742744255510092683864985178246027199916608711869938537581537975143685198507199001451292248896630309113920560762582608020103541998677634131165860341772454394174031196372656438062389114311824006470239820028739537796588367067314440216176087441980748364326082134023815952174398865089754629213716423428098068300493654219206962319732912629553356024679688450668232183099554446972189817914959123058135054833343652322445606644565353184619730741807176959745431435913281974248880641807801592332225568976013375952605931186171867269294511189371488459953431268695788497132928535211354383881800910614454672622925750101776753299581776738080970030136674386511964919840738667132734517022972983732072338884204827378422857816689559033534534071512707284486187158490025552519680394836639027373123128819933863954568388059054286126382676724660498472691784318179031729519174673630421019975960264655046343624532174258934932159760741164084717883517378012492095980373051425981813985964187412568438192653847785475269013372230866724407194304786844147547945901410715096905326603446856852933072834003449223691864423177085876273817494076515261224971950283851210146674675108541843324778896671171651089248039818376050444236839398318307509195442594386790230697909958830229839550110635652854390425022205844508332974221799454723114330801375555575862076915081319266816883497368255697331729157394148946406476214681718186056870205945093834046431758487419415320375153005489170639519651248779774339305741150787535609318433125194289039517376950422494297920466836285164425254442854310545682871236801425527229160718609435960373557740419840380774736496054846362023317944699108252716955913810693374632334697129721409227582025641062132683845424911908749051062601870196581159716689891856530526172603701603067540300143218276891540605123307284336291843520827993869210861319322713334063125973461032173130346696894569137801578548472067954869463172607835393242163415749983853290124582407531021470439452638963881749140447572356742451597018489495048329454296248288945827716892081411190092586986391639385974828767578054188539568609599301574364961035577541556246362929539969717147111343451792741667390635175508232448204576951990923006410496727181783107689863350741397913604418424022542916125386704632962817803957308978906755311657989496732617504021907521142087048025897502285607329271000071311540320437383963731304510667357651840850637431647618363130469475592719237061881372989308852398826079175919433118180158669331544973356587769662347596968287503784239444567353353139294008201009290883570930080388682860215961767316723113720918268383403036450576016752680919633440664184300488535580676285623172071741981855441688344789685275888052662943773827078848984429293946843705947553800136695518928827312536877073042529085603336540812092495606803716328436847294859672374182490935159761730669278460568401900909624995330610194346292032611551997634498990701478919581232505122175525767938441353942384259017556706713979182874837391496708853447554457460815827206172226160110756698780053287511721959262531745732741280135862951512168722001045953283696330893060210108008640369393654617517822376839311919925589408288729076251023787398935013741725471491102034722685925793129353234676688405541358662332689151906312754102722408366488618317082805276570605391889472733848014319649332137426926180760785931997564775060575047798505806767699812500960653004378867604106204254337253284906365592760860981945587513821340972113731074381487744187070253555239072270269560492588872593526119305452805356062470716201518027107248342778885474686266858195247727100641731216705015031929252604693152999334549734922608934127265124791446274853239610684360061645532084074910882204929804592589056619593994099027444848395845617195604699057188486081428261745863343798514463159770469388167308255221958641182424064721248124661450554079371062245686804150010191274252090662503278781966193545709625910392649470128116225500524578789077564623726041668355524363761848287939502080601474418892075530177263182723737382463999656752609601897706042477451620356920025880644488637576126397238329576044750536971964630168865200253558911625772068480727464938809880099882822257481411030150262463066689714234944992847199604799204661166433857235959512804564430694039857752062338558543348470365621058456461883241833619495041521941938559809414289611693097682685619362040600113089007805469773319684450531666300254203457743974338530706185043414786051148029120066036417584443652138952121368053086182226355252977677827182501923184723668091544654599726700997277365436013038051287440763173196375069461067019494214428962950443700409959372651031709039250850855539869808644771033675234376885722080458891281066576881757059628070590826874667588134686256458679484430369728263667881634321676082301396327595842771519929481291998669790594734672279788935939368436083081879911994343384767278007522192068867082781472020754083930722250213583292688680246933489584998362603518963020369547303057061919899642594396517260911882949570091803520481507094136739418682577206112880220753651998908927837745452912398457287138408523083651650450780249355050863925923846339293632852526386307102086026997473007471777268821570488854076136015232059000467002824242622490884228355498112544256191534318283486899660815667312077234869815657039733839783964038879990716805110860082089476507779875939599425855046221450705036077897465912641212321160053006060025920454225581378517065677520845790312172745506048909924336149878968504691644057500375226052475660264592105270674360991899269173093627218758265055813377301533128968543298553840895281127566076396894439709541157071173674140206324585828092800089398377296177998707320797270846392172774368260002148651801994304203569629738854161814542093691944387875406004605418762343342113163168517680809891093993878240692947476102032104261332650351131284814683746629346888200558809294557155816817798779707846755267507151095781108423751518420453331082522011766601746962249720759400954034759870206626861798220729856051283258943870333685426757233838815402364988501711372801850940398212749987771522674055358132311763372782472112938798857600112053713239691603289325965906426353397248820591518244696897213717004508788330741362867234416565160887010397443641211927413587988463210779413451238872673274629817946987566886189440128222440708284888747793875464274424646264705592057858032006983819717860616783336141589481420797038502533848999181483641743231896376081142073755045237993096634072138212708307137288500401332199849428792385185857821408628471728557572696990578620343127947783317852590742115452678575049041353277055821072714903198886726979116081511104730616337271982046997296983704223634627519998916539159015753774198680339730396198963014652748460667329503396945237856501127073676832103928800256600157476400012257728437854597016787290252484368602569706732190121350992295166848270007547059092390720618827100585533267901840417291147058395739331926597272225253624192334204841499305564603291774611704750756024210096091481610017297826270340243874100234549884318074943851290989742465218617671255271074015862204838198340204131662480240716868965791586173880734906108327918907949036963359105818340835560026072864247809049536467418439194963592220230189931594615476911979480370795044774303594180602410687670001793918382802450706876245051372984145014362910740289070464687590125330861086249141883375667642809460257611096470629458816761494387139447045541397503942626842285138122671973504856624573599068626864207177905812623068089527576894001290496388987546356967353266236467717309052755329409336205796818932857237546310826191502000228391121592903360078766726523260159082738650356059867229289795426278537778553017264134076961405420821649785638662594990553451702159212859096301027278388226926064177603164101322780067029531472317883935009377677111813542094071941598598565978405079228004552746614986879017294513352851004977277273451592446803028938111384367980423505160225915964507232397800529775491562823516948692807389870220221988605266094224037730945681761532440972421381030437092979370482291050793214042668327071973298024774508310872705334443952005686017201674421335427845227150119947714626079927066538301648995611582097566028520811814753579227050303143289084309492230806821913499343904317668956177988294749030879724009916825740801354967140522845539118766289554432483360038107696119079455568103370111760649386019253596166791914784903410836230387731169860614430330412117921836555290126179393013617584514135832807438851244929655453482635264605014656172292594272985819286058201968012131830263157848813723351012494764045755149210741940320303271990837074450112260304473396528057743732475907099722708611341984405863805727118701734614969213198273896760431770859477687450333901946444741718786091341013949312065866398645857411148793837422111135851383535536414292320638779908788632614403153717175945915201563419634319706140429320266525557967193149260289030540306135476602497118967890868009608633650541494468052530349614871573491269251764177314359166731617436175425376063075444087228204227740257557649926406645983404745651613471821313009249063054887738309218168487098872647433323208914680103309582540957053653507524256591344456045732592391339706077982058510975585917281575382933904312242507455022381971582436205202870349945398974562539798110387271685305348987950092101506814647088983573021425739704634733649922178971964519581708282801711868310724578775161344859029276831839382232270492295862842792460486884664205683156095408048237775374540538062489671697138256648842132767469062493043798614882464322015822946174180901354984091602397116931316072792926451698705574096165608221988173660434276739851640709458373071420958088071804835070650115547880839297705538983587422210009162927069938650531411758181060030669658075182790297245171678308132424112943501535377293426957380787184818057887555707830008928783829939636415821065944396614495683724516221242953448590818382713166590373520173947990382852614626878826163837667076408861514207981173615016790779840767059445694235648198951256429190106272469601951891697084408012500908376150018123372747244743938955435784311934623956243574716024599197551595447159437800277626968387588854499912853994653190941766201933631710793220154083430992607203724793877270657313153528796993290978846188598891704653563228533946871934215163145865746973502207183892363914643922781999192835076873948636868627137511476126717799672378866557831254932853360561601455095335262176634538941256407206686988710932878278718906536244316328990247521930286771288088369824026130369295465428934859088588376152398150625085202249201667472086155001036819440013758993166593767283552379691067049911171960460730589395529777105751512142645385976658796236641952567018681976127085800882448064296651315126419783610467936059427836512624655544215452060057613319867567423447663354868842475283216898503522990437734188979156600896506203758283196990359939814364297183017632180260875952530699107377220768463899504316585143887734254470411646226267003249046415391382283707909900647695325174424066853056996672348816624517202140759562237539386398791791291766672606651019600671305360090776170207544659206696324600565269811504735117305812730968907846017078563168302703019213469834374930074238120876871806471553686104408320544492588405252447558784722935972913810142841446329581533041198276089022431429106279246003711693011070919331096517295794362812541880469607096874471734534239806276282772562808365586917365147270013903043290730814058907791039887598775811489006272147989345219090647718956106375210722780385970603105929983175260440603612177633340771349135606696412400984260201309573053125667703940261915549032056460752909514994952742455049094570522921622279097102874686579759207349831440655797826153760379837295611909738308451934463786253138765454224018646418789797703249218153871974582791309086181180820369627472500218270296177224613185107610081984552306041022201019465008551867619905350384756423503340650096748045843742251953053120020997621828820524005438658768665368971685656259709244238338391100124128477197592377310302101148159665940207286932979293256294946683158548677042425571238806077843128414405211998805781634097267858177448733811404108142425554466447056131540885394022324642357522837706818825311464600771839062156146370555970131851597763415584075004639825380141532361492598005142588772066134682474166846137853779736026346609936345681160611789868691463602253118624634746728391666248506327187972369446552596270006244045435709970297137772962333092995910905325326111044827077227973643688179785935366817866226880302590299578518980523812822187004758866967788608204770531484254211240495081112997841478259295629142879808445061090971336469432240262690310327061707104756802991326987418982699269995806010093290916175026002732901792050409054861139975080942084965561583712058868297919399609128162229867090497842354225320722165792660687636591713479425540756037613549591294289079651276187595443650117949684917697854727382596832754138621743726539267572521939433731133291641496753958285907819600363500573748186444234241388165954943160815034825113120448989974923728069622307750146969791561455368503890604350590855075151486038362616923733289889361457709994675276575825616104439852010099028322985834967091370915451796460283430668481439344830265187919160914955724072180983465794127918562415543452166564948479240284250838223010495247132023714118034926888742309468369843575338160590852665494342605330915457236176052731497513905962702959326384659004433314837761118210463873725150414080576246368783972521068390938436208328851792429528469406370304013132298030443159093217209450939935897500140103993183856758813286536461169983846292627657892292244028333708953152337847340140468505897495097026040650282966934649320064179007857333675884654995580208371278032806774970640123776797817540567285323731784338925680997716612786182203694083396390954739929240761058490205727378153034019566896443570082113318435639780048479150919602144420640348607221803380500544977208232109972652427719199827487114763366370841363257485273192229333969881357452396359486197625307632940171255617589485294075928701867248522514233221559498531598895098852991001538390403351014573983793549637567793434070989204021988709084441960121723354362741057353345182391468228109274574713545379040784770910478698287751584096023822762825181683999478381740577565212061459301987009699066903019577406083043268126401617969437556924650764251404152082088441375353687769357269426386888549516151229555743792952968187043514190949467490207740182901238937015367271687348416432058295450188064820160336118932494861926068133193954184511918255629539338722984219127313913655803687520048243511706415004443541614884004401920358098604818315879549606843620633086643467462346041400192960489078125051535468106567766782807264714039584548516574553872101687657935803817681399400526722973951553217827511993501749652300073398906512056291274874225616736233256708932822685009857788918097134750162715735869669772518961145492799058971791947506558876426197098839747853816477434575108486766580018007509970913711173470167669066188105861529563174534797213079046928535261513922348785092101816452616868229173457212760710931330992257306967954372132357307268778909271128341722748363129481429677066105071661305494296835362979079127660487517880623722823846766502009440911009177361937430503034341857527857914912388157890077547233783349327017720468514351231763629751009337969261658981810675249783128979228209592825563874065911296935226268597565407991087222723604049037350406204359199230895189738348605106596785286067477177119142761130901725939446242143079372952417986262622646773901267681316355087344924577661945441196370580035389360086116963751535231162304423663660135116953475789633743650836633202041172678955826979257130696846976671118059924368297339052113683765030115396006524944509901421869689939435712322253009298432767338452254831918001213292880075187087877354756338784971159451173545713137634633841784455519813145670870225188588274375259965784128988032536571888081923324881187194590760399921080620145369785945448829870127073670805355750461738882959833538726080227436901651175698910174472266106179265439383122994230187714464065714669736173676854075935715204620506570567671796395701603513865047770487493962616361687971569540224342928137937756845297017737041224638009234328364914319729651847432357713979212704674065710630053296287284704822346250967619229586304638456269980726281175056102581928682387756864016858269199268855639926278917938825690885929708250449901909722025970937930433638651807175795854345468318949760463172762409816623939672995062805543265603068149777691868198665931345309139653740748144298816566601206927492135306730494065003121064891102016874431683239064181692224675615712985400561524246961638206339814451084024753727541754899607026229194701823330060702432108232950226670166968415088326205098246845576196314604294370065870933114885155720807902471936640162643151322365932744708755089095539921619486975176553488133145753143550587699703045612894468459543137091698203009835711111931303887254771961911739165619364758294475331367255215077197082631147797788912865281010684090261433595769069694400056251655112283485313495365553062689199736516040864498875635377395154622809689909116817439316421445569449991140933578725569724637365946820667631291313500399707451846398446172397446879068411552750475607126160355645448381624518454119130471843664819862598210057428272851582182997064567276674050196218818613473334096201571288744753137910939957340155927474781161994578795975280513348110833582961658310369813082782116313061296618902138122207103215232046609063561277678805847131169738576188610084320032683504105873981824099735877731427534652399312838511409782012070107066397895487660628716830267294166977138140163642193622399527590693871315153315546214099808184100870972458777246963177045514548497204230225594416611748377711600622175233262385565649875131546899465013164661588708723702106566092561465744330099161753516079000092719861154557906201024631523993565663119979188371312204688958712253388329994350341440337945339518404797784822616420096741045890967841970604032866849359492797496846009348050420346774924823169668410520417090485336379247094917451457288935907894118902746146776361390513774906649047134882964982012296897053708367291613340261103787323616604831631357217870544393837487829389127638000598776301319757007372755395476646324200377570839606562734085980369789952884958375426321128279031134491942204746637800934852116620076371181926119255034047346654595748110215393464186367906031843693194035130703785915007914365786925366698659070615012409146437450619832023174412161510418473412243398864784723627853464419093558918478458101884531531646443498502735629032064061158651991981864074541464274919808487829058187472578372916949163417801211269553711080022426207179822759769551672334245236366962076214642843552215423672748121899608270284449340192213548048778792910924098606508313478769404208957406802545765751893765436381080059951914606218021113319398050961727602611700132005723737448422552007992739606318862918440732760555509297763197918579753604565240413599444171563653916336074138475503972082516069010287872391511856006473531020576654849487888959971827262278238767515505456975739757897315200678038279650752320573771883178146530839824490346797744123702497603982583738311228335825407701352059627147010598880323808697662087375917281694048920397960875694616664749477135910526868403361482253738838661141397677917927480548549061878121475143446171757921269316860695370933135257237410128409442649837345333600838967999371957026352075099685980150118609478802691452231651339858875619989193705779462875611338416643070497813488547418631364991454121124010937199788829175343021712308075662759580415810230373815504626333691234289764663833513655842077885878113011369046937594979068269957303442939933933884596353324237258522762739733381697174163611395341353350272225071149534541235213112539655960258618374516211653176543012421062655024332138678740258146779162115172227518530834911857977326345172366474954380909570172281491514139527064285193109339355871659982396270048119666634176959829816637271087274708845556429711679662957657049057646654103893088310588355716211671597787508513390500859179287879501931101409882853712848389598229776184664719752225084928781685427103861273216986879679285445581892967740085808850568217758336277066468312949649318923964561437371341682125903664645144516890619373971960562693552261772186363193989801009158412719873952167604387004037474220577043377445033017042538464325523864112558204540070930576056841270463510087012752921066693207876691984487572435787319351818655058219813373591130842146180041020288749186916131569430872211422587382509483771047109007052476579159534624424997367569409331003965952121259222677855348151317371605457909205021721623168530336785839539989984442386823619955626583607712742765066932340902241138789434701389155797663510407369876784713413834332407070270639982259845496715314427407842951084125887529245361012519552687170116253403235023091458241577425097539137611113476124334964110746154130819523625473658207881353105911816678131416886760371584179435974991041239059763418405338198792856832760278610278850298574066634351242868462150782813631598330263132854095943199632624118981264738900060107610327708587733442709284512747606021662465903749279178616941071721723569319851433980942371803206091942172208243333858452011779072457676058783505501330220730620249832293844145998255571584028829458910769371133695766795517162015741097286309102469731435407638442787997252532294212973196485223090067053428644537044760285159163499791135834758978974991948905531704660824759117238906771499554763626204874423195755894122857278862531859577272721593997504371405026179176474263565941843645615983301003297614520169279473282395515303378945416280175202440054797127092022974526709925831855234851740611982898748434133391496839643898655387575120482905487645164078311440680632845642028130453626084465000679085241671951534562619728171369498432644753136395755656717768318979717615434610308356559527552824079465103659171496813014414092130431085827096636936623950975262577404731349782673274703519601172441498176764047906620379134966233702036756510804098448336663916429989863388300062986233279383683418919109040868595662743691588795703225460381706120960963422398441804887813653727634812004710499933018767953796667538424098036826191158907540809153139726482392806856929273366683356679877360853011430004544250468945039423355230707174681662861168640204376921101134182764398833105223493888281281991591089941287486749601968463549190056221017362048800740070324171141743297856896997839983496448270388324393797397928418322207314478741222021420317954445158429102265216037873614659030954931589113578551856660839550811861436895779345276191142930245042224302212562126189461407369019659173302768126937814612034128369147903563019459117789139476693680690271008733078782216451913840556887485789920519937910806956647360360469198188446926827912134729775656230689346438022879808585524438170706713980692299816167421240838769936250853970275699586963623412031663302638687484685348035062194104775295320833691680476135050280259473905992444909103223864985586547281949805650899323549937033457234768094229731005385268537244128265474272125384006230856739157275255316660019939643798210252556923675718256900626254697737917507293255459942868662192105289206244339763920813707451312815082398528535516188646374184902753745343953708138592537693849239343460627014578855626908750819934652078179113695587869194917587787386836792609101647074817840519401730607514610569060138311520241081410891093073746496770130444463895502642123111411244534458213013674603989220875924421763729921187757235471030581559511579739867600743800008304436345820175991376769323320956046367545227983830821089114434930378157153332465562987901682180175258825797197087154535309973908438259315369989499729372831017470585108341986294415222870356261473156194839782634028625111240010654574417544698452871795654036420392785885865654007850841696312378300822061672494983560123616464496916578877745713199839989696370970541506385376154076521666490270927896999439539030913885231665173022140356939689356359755809313047494655682888248585631810010059726115576948169069642749215169741659953008333069588576348344843519713120627861869519846239851425739601626404997280788447240809944485707477769259433309608608450100600526530296917502692164201513390644694789082894791308606620510087748973798315630326700336412317358230085426259934336768434894265024483230760520700389725092903336811059776820419585681696451444495486322162649264880787547101474386173649801745106055039951681666620070908089641411626380823473871546760608601385485463501322260071533259642049055322199909325433075092378917510472576365621632570920497436427821191619584876271779690912988380573031314480343671014662087735214671471545832607540776382081904269727201534547557923385079531314027879887558402005530154316012166235780525475816562237049670223653402423515266786958316948198739211454277360240469872255258453893053736658953084382837167317555652203392828852752715044015350539588049880901913864956726302313036773436352136885361611519206090344451199265484629120046389207774734451880712071978397531650599840605566132819638578336211293291974494200788498781653039228439388087361556995344132226208426959747070318501819752107157740553706044068022535388178558314307913527544054181637760343338154932230349622509268555674098834757485724488898716861321340032041612765204701661291882702180408933790227410191567257225026538739301865068844892212794195272125888328645797552929277368304500880334335745060349221153473416010874998380604101724596076481168404973363518467119529288027817091583756256308218879516020707190158949197685972948497690616979950731362362787160787340614540713612258042887187192916281704712750693856931214558425884713571708763767497557479324355401081898479502004777704387031601324511923636712249562493776999751822021331871968581072353561862018588706796179712707500684719105719031023080349400695425127034029491565067365997467277329416330672812195434478163048572172440380336572197881131915378700379938228647679216936403882789624204854080805389554292842361561540567950244200169125438707791001005701290899139643579013301605664368219478819107444318219964966432123406772618682884843862859652843237024933654700780692447352297139570553662684817344874448733982408867476358539106466072062043380407545054916244528958766960766969981182288914158910939633879522135799450951891894476868359039175619125196266699782127049706056723435262721831083211593773315877696531622075900486866668709202902138453904863514022441152005518833017767211005310011637494555639766953178459564258289754938155255238650178351667091287726642924357348585323355173769125180218721510588618308398608156524514928401942242958943311193764119173557336210524541162853147776907465425452803354577264153325576448125589867365925654721029597056846465309856010831246735761984927219219267339115992128001806597218862792464484323702510737425768854143325871725293633143552684087082890951545686791073124450707007670679595289989115426738365541817199830039454720197279623952535040073975746792633699602186335897023958812376290283335248830261676094525250489472490796652365666457693152044781317055958486300064591110942252318656004330803706861799483706829563412583671221961872481139456403829673053896890433829248148167857350737770302059436670302925431034501929350471763448532319518821409589005271798456150727998985952881000037167773619663210010833945954669985367684222768172742882245336385134914683727964696257000691982557050576301408627179503240759472046620718362709930113420729861981666579499760885191883098113476585889914244070597131639616925016983132707604434928401913568160886258522147663694792980263316980851365994923945429329676714052360080890400624551324368160570080285515368648775635918067780016487590332732553573349084167013774381606917793708010998666973345483248476180873163203430493143461157317328102021345761387447080068908442460479378490596747208815858098036319601092802599068605139654916106091270501480237530719401660061524622829470893439919209896074140505524418620533036280738141367645256927547376945159517541550468417891490736786419445653203992999179005321606748958898793239248227434453030836131168502595753382383913133201469620862657148644779120659173366131541642538374948245802079590504028097566562759806197330511182409301747296711958218516918918452812596014852236283144259140412439002096995110604196499105200451802923978186834744239184968588300859133355857138251086344860079963730508540390827622579803898037541313463433476128988422949997950411195749048964878017958463643721664890119447120734586190201811467226600802915376465875529963711472170288753203310840742085524268720050325264162267049552036788728486850358090423121682880543263725270214084319499201931643896613458996408903568565467446324121827062225031006535409197824140041991324402396823039398199690307478874381821661879653184139316500886136363490002618470743010129362822774574811109403730138337802120584163005297254079221077490244916271128754705925198388245169882707195667909636070612107798331441124302360662830804236753409696632526712315987110988448377623225133995616984807846961397998456682646919446872857765470894457504102596035774702500197228955600881121716482783880167657879306721491530405332924200913578190180457392419698101203162365746737555080842555958621014065038939994277732852961606982221361427539374559674077451804984628436316319714610334164381418903471968835434573351697176707179779798016680871743586397905594419643144678529944825349079088210994676823664263379243023344369894432285665048475024519289148189471902507079730464205827754884631630846709171662623838433817251987670545188540324423236790209265991402791597901344018901752469925209153814469354224918542978631634120738702377200863356334465177183949844983921049457573537945764001562675746738702937659411101558622074201960910107556680190541789031797136172069635206928452760269616821646742544864074036378026358342300409792415778495682096830876246773516612812502971503444110037301017034336801913913779890111351196504840055078847544465321511777675650208496074004771608302460533651372084168212547861771952901199916578646853881378059512868734169707876926189842510107531828633693205755773655766248681405517184604247720483730301100517285825206488857352173000007748173758491859897122854419295465048010445498532248163331098450602202243780603602182710332383722020972989590056888758467695960465867614130976794758889060143845627079954403787628854257837381880347266637676390317763907575804685892933660298678515523569631459439221761187953979843351756370451941879683524323024018053495204329882169489439929231618096158460909048740885734556390980041737109881451279766894414858005491073558215907835616184508509961615378649006315479341736064817034588382780644498149576297940096570748285505236032443858443344670376295957747356745802970435018256665342348257752446499381320961670683699432317282862361632714043816148478571974576221204857650445968691840232744293741057258466176173104640186056325469598947397055359768158724169841394395532402524354589901270154174924043550524304510153918873728221490029739745212331564601592488505874454535608290252453667014098149698729246755423320662185495905325004153906880162729128564067607148155433283032808801944994427181356953850845683317374113876470823669484679804922839058629724749498769276258466467549738752206734790638344330059577973936896220974654864843285527154011936567980406047316877526629075486051553818885143224518501004367344334820680130995013625335716505267617211064671284198864035586925259654887560085581734040204175340446120252002851494172125899540743071181659083459124080057246455651467625139892213415809497517148730015053134452790196626521154953602140687664041061262478667653243590511191722413688250011054102312415569266930816051060627877542929339785305292765553328433659842014345147937371120586697658997037353936207353703690615627885186134897215987813417817063393228667106400172587628854395484938845451844747324801948273241257234163723115403739397183694862465984831615310192121399126159295428053874556047419889091822632569801263659562067287613142044068461033222154477813392279878405898365316042103491096333335022093327059722160138496317847533199524144753101562020838607249311602488339895357997297433391718338513343099613384410883327450031267614749831037059553866778318216437122389384787660713500300385549634423246199728111983552047663367263997589705454287774673300913582672886693942639334667662957099235552093442577221550182072434447205745333319253827445718463845575765280977432418063427287846219678485847476394168604645530330246549366247857137816759575174868107768987613461597429985856480117617965363878166147980895538416938742965302805649890699380366230196051369194482412781681240179101828635128245041570204175994445165750742970116245750569517473218874536571846860196884341827050099318029922482388938266862922350643628684661686921480627678715893365030025313205059815255114242194384851825337569498519317169565487594258597198633331547496767951756805445103984167692304589904138084528474076986677068975787682938217757469886242489850944928366388886714187876719391680006410043879703496875871817790933683656678666701950280343225960575683114262249528428055993377076376049139408538818573904022918298250307499851847907906841278673691955569270264780106843192616533491865945028150283763002259626168575446700868959652613140657751006087207514024694038775429238494161093399159260480274686418322367739037059627300448992992958657638902680422344476315377116700029020708354808665122253621111233631207656972831145355829770442465041719920044657979601493263480822923879915763753533083843340809597986867280858235946405161564450547367458663597868423593421571918584517478541662477532520008689025003885088419178088107128824723542108819317012778763747415772531569203629357347506737931001584360131098728888632102093150919275088914092053282405432920805200290686404427980507847808762250508409119127538615535858063437001349288396232840299773498907534854901291354881770701086904425571605731929971740606162595634044366952795708958824071723231830612401150912921522955202118543032619553500657908460393187136684225485850403578751354351763674736124820456541752541085461949236060205019094817991482276383691916189301236852925487791812700299472401389240173275777620850481994423616818598600308436161612609020521287702177159400466349423112528376636835813585707602976345293308228708433567065041129938153770172169937250861112485594936154223148695502424544242560964176471647647040286173459556593589576087678900921650703091342574247261494668013805994885445160528794290119676266874527138807915883747065906546064452487115569734848336294280352170675600394199606623123557840974593886318757178244723650128332815608130064163928157261400412076155880133127005885459565322755946815702168247153084296008079965206729886764702799891509871846483179157234197098143336243032196845096867431557882630893907826773088190717617840222137131457805784828810757783523334378415444734365484946181770965061822443916573262836495832375934019907154803367095092190403004156583041027750976342772475143432272334936880689877402050239482109780187299213672945047171749953059940445239697372952174462817756469278846194641957600258753055810796517722638854760336231243000609365266648935778356552548094343806785183481086442009393056431252183220819775335857978788661074350166757133117205877735842438045660756968626948722870282151814168749149532698790417239742392001602723346524570025378930923422615742881648192362279133676949887073315114007870801375212243073409785915506684275441572774192534819618545295742161581203727539281135815396590887382869263153295386730582028621354938008254408475113627123870751192942336179420022323090995582510681554839266211501310595868365959067035874547132624032107744768279489886817795012657687928527765552686984997314376058305019254485836844913879865176548291235337078515086895617745550405354813904813325857378372732190462896359056628460518369814436593636396132350666087811937213474324790829991064716306117510952171443907969451796278523524151417775428167189599870509236706683415906291887731984800033842808494572372407725234739397031961913406440299709987402536429810634093138900151858629737797001639588396818055803114388568633691099038421606886501050625163333209273920493389430860198286667432069845893750337991127845118191373245335843946432931851208391616423007937191869573838309124185266941463989667787934153095689936643765362694983655583556582034040144252897376498932958919411368709669076076008394862229893768876693674351534281300522981525016211580343801110382850411890643294297341250914825463652885229291905033420293229093820973218422783742077622459341704287965321431152226062562472304331558793653166014056770660648190176188049013159092870394504311851418577842359937917653411949026404954361911166065921839403327761967586328461458576076017664818545372560355075691809743246819434716560459197517261380473437177486235920127159184958565151475183836062646447818588305494288806698857544335999613460857546967189296621865076334818356340222169551648659546756068341317705349925887696025932667905634236055199910505657934011263516098204022803058861280513683404753102609578656596666432177514190965501456960812416829144964289297137167053229268985401753261919734491359499120671010604385405218726517002221285563564290172444458355646041782982497608708956897156711005144509289000729500046064048395513736186116591451301630083881613704394512953039677407094937982738047323534964197694082311599088496934367651544374567442302392904122058514959473059093204637131808573380728732434402970154125476995323639011686555817547890028566961336824748156866525554589984086678767906357247355839591453435646166521392778650976157160463730836989046213008196397295026801938067204386221860169295214238441117271696941906963515166139284495431796987362456205000479498094904847136403032787096022191252337870072424411655027664744116905355210665163323836130681919559615072084341202143808811321726989781958595650572322286434110187154157801713794900824245479790776067898631953444648131547051251412371721057111438590490474311917673975045953142104958699308640858379697341339110538393677877160216883621980029975246546238691102018317258394747249582564998777167957371613387762721313608285789325954375650509939570017223080126771262997988973429185927235626657386760402626258709710426117348393509175182576205997969853406925495271462874357937438797867816027940615140530992243049480522090369854499989302488955379769125745045796891099559911884327775366336094877510961858814560988592901357662473740699061253944628060077940846070041883404464385938823970011670813062370598429734898716146613868523442797756165421681877484646570903354674483453370807591595971299159056550897627746711744926619928730946686522884803542327543707165585431590795078484834097607738844093534368841814738837253489824385300027998413690538319060868967276510552788484195082201522269618896851735822006423825301143726270130999235280036318807232443359380957723599394427432295102266110880926577984238843104672097669959988434886934818044043704503614608689805891596875429314286496298773410021929293787043846959314000659900131403637223429947122221119877870536107239454389718778425134057462018839016285103701024826656583227599039615865574887951478982305354716719531024984140266009122870638307085091080037484261766825021450627182804423243028594903499467040016649283976861181291561068774367139642731093954327973600536941402628651450559316265096760641995227529682405954668176004382555987851784749464954227494542814328599443771713365353357442040314294236614467849303906363979488607329109718708480791781236892495603000672273387237203856140486960755068871286556118074434879705147359529305551730216603703632622889636950829872325832838742700667401443927433664981135027506376123201445748540844541790008579567999104041403304263201852714312916864649623539942735272381492819423060883918596697099283265405286002447905930236674009393053198057928791753309061892993640214691904335334884552011367485114141678363472324727861456080625010641515380945107199450094199233110257608457906183375114869690556962789649574519549345514126719960072220961426545941188216965888536681625659679514370172004785305800384639351852726826668659050350379413026952136937214129874710826839653724746198212070844655153297594426890869107191044695080938527276369966598412555293152028258221466454000204894656238328212856827846666059114605032687394372222710318647557377797045321246936200235962895898156709111128329722859458440271447187685415967304636818054318523607675778237370181757206249240291213363197187265681837189310565646552385729955637375800418447706546050781306137253924485156742827202817287083729538615975532026937573188806702651309546882612180673590098709456126524806784935590625738590195101055271576892028713669515579902172112011711455073119222923911028773018819268536747781930679045650166765813240252183280177551967001847734581203475612617571503154735513509826821228883225232180603455279182246630964699845295072425442238664862930827754133899043948906563189493252941612548693364172108197615941829391381453910440491907227764423619788127999595412751114011915950665829921618342894497651378565497108816458074145890832932174216370545588389218097830163893211685885529851044307130405021240146986456372633539392142464729340246562894059613290084592392230442315592454969726770998957692369316803076974217402928261413973146425358154372924949883126089829617134682251451402768542161764573542180293368549151510516768897503803282929390689836580564456347540925944496230666215047765926108141984627180127394798294169386121957021746928301372791251034233737480175079777601248241694504697905182438751844181766643971959291862509601337866290800996568044636508115572544345179916195144627798823314717455522135932594619391787330829719604256552657855363295238681902454876962632690734624057526422413874572779746793335588892452243348579972728655669376616370081158840426181204477627862011094530269068781583347802222616788303450784976828859758026919179216375449310076551610427979496641863206436472347151380275961028531935934471406798441744416526882858783787738319830297891481391441924425334696348238869124935207277234639424101598413677215718841385601815838235471701621543693355654065985267776262851452556661565308827946179297745074903207701082041986616930361363949644543062388483273217614156282629505374953335103274474771313194940879002229559743659860006508126577211501629172061229143581433249804241631433574786822682555990155118240164490843775926598436405494671617954543975136967797289279188303248468171340764439182148050354234428944107978360561565014774971909458193885682911938130347958488176247870446626147525091775899477547244853975249643910597818679356767137566475917903128601301766828887697431235290302790676518112076091242048775975481561348986096503947288099193197669220764801484392880346669297335800267931419682566140042092720560514827233436530258834081775525304174235816104308874875085493800854678309065011377419979371154557164783852541807402600804547575400274367239959944521317705716997579177076623372955302891056402740218080506294194560271173171158923419762928822469921162118929256665742966065936591418701956104707668654556472204698332142965293485490153675678653865236535407011733090652414177418418544292806022580901378967930141197917283883138940809567857288475166597617369363870277373376445632600375484322531627194112933692630861216366641101502667392229146823473741710073115916462225555066016372890167869155259260211435899422766676800011777185341836072160463908018838369774092705090864563825650210909736764665300046802518692114735526393019478260095897228312040556344395661828693824963768937680062179437096545497391404771818941640510960950969716533332378853070094113000523169305027985148405898625465768674892551802669664687426828821014874971663611542146793622607063887346103486038572317700792524772030752085762865553964824123153853138366137139771006031106467491443212947966423388797157051056726965849988884784210795044458244154932828875176425514388640235774054016284775401350842284372219040450453442591812297292251087920213547922944159337107111125069783283576156654872257976386296588853404029435167655541735786960916920940599359002590765336278317920259316798492595064532969188506476808866351576468507998662405682810247288567379839801175748457800639669854119833891219736547883219390483423247953005416607702884499546278166489645877171930207309431874391210147920373977286922732838003425222734224198743499762973289841431854842041641071610143399892920517795282306822120743643248257855285717718212129878506019909220318371674193691635981011519498844947543203027560227707364737925917419678919785246248761520548343935729474967540664660619092686466071448840082642386817676766855038482273301181785356973257254579761900080122483419037206569899682633562906521878114491303941518337589277758134726280135069278853076530650419731197108210734723667868499111848595603304695625711581553259489970122878091811836168245021687948702095507443642394946305837523464093833426394870294339310398706779538697707082476723305179299162829950351832575442228963080357611180982558137142362139671377736480785314355252791984360126413495848738879214287812920860230414612097869023865712434609229353330325895330109572613029499435587901515960354443148250094339910234022147205594034553803305603697868475231608486906108846464698792472038783950206528597005096258290741261719508164224926824901936754094757506374440724211294063665011949754591371676181421136005616786748794269319813503552259442531431424465599735883255855283051124481805749969617238577612789442870011328810114240250080674085778685202219517314052889138741032871933485357005727186150493192039167818248275700332925463774436320718557241743990020426190694944752852717443843314469581706934311872957612160469866469990419111891663836238784012273236695219364535352824599296053586184488000648335228759226788772615085347657944539925105497933886639562284112428909814292275686909520670077863224815186035873773774807582402387567922220545627444378729749794435915171865988551348370862182407224510112899704060847651825821627547679683144778614011007234135193896333159768393784890635192988962904730826744684698436953473315591932965690149891626079362466135222835482360645973450630702057534195129904935831666442425756422209276804621586556869270136540146354390638072038189411133585552318732322704040303578069985183469093947848346579014460474070274945558905484454463100217148576812137838791220702450731290163242957299482648133082211223922267711070394098468099846471345605382078249537913716592601425018273210048486843645362630062820096259503027406437183693995938922843202259411192200656857097195270979472931908423435556337008035196314242243799661421530800352418094780152557854828326709906559783330099095160961099767719423227835883093195732970748000098323140308385387642704190014139647349918722083019778003186920416957282857845753030908261494321542068323259908981193098681419568269004970453213180351364267039135731516593944829562509513229700382615668903198000070723636426231134803396117484387644312567311743849215019779686428981556795536219102374694175331740465967122503822819447403051823020701389016836014186410343299258286352458899848354651596713355089749569800265213077518538336498253258354893945056577354230703681364165302728826052520438249577139861558866001177789920193228768215487387160397343623605959792781217952402003158707890015201101448848523588541471526872145319833783859930692630318047033896840189536517694814621305778653357222724918952104656747220575822017041206200157173287453011426493245931796347025749153812612790123678535660038313299761800573893223731631959568020993200571646218152644049957777665879253069605500591007703243626586202761913868088435776864897141781312170277362705053717400708893343141151265593234929531054275313397490543890259311855532376602838480168674402674704013535531363706413520068365426305779142872257862511174109664217483250282380637056814209892701767563619905298065359327370402929792581672360449354833704503117578099568132978461865518443433831062361958235669249144289165416371018863629002853422134385211827974368832766226836471283111093657654542210541630755849502623542481378417024976378505333638222005639467421557115047956948749797493920089280974343501805699178392060192308238766545111623165345276775035392608578491231833864392684267442033758086419180164231091264016269711119489449387371218840112410910117787804499018430680673588968945637034510884877413989710694649196152295203072374900488502090872282569102055632501593148695851648358328796657482955421080238957817847095690133346425733820489161810565502394475687756629407374615082275345940609863783079055651073216504306348050656064033230931671816564609034944471003541713401479060610066831356866726023792531188960749359170574785629170162778767944449318960285402343123426252606596081511106485758308770054230316025649046146742017751175879120352256328562596391148602583486828165022061478829629997693151949715937786709179229356070368195563407424723557775080950390353302345802007261378701088749601744319542216531387398293600804890923325330667594885814135787586007398971568593855344236375055015560554326591081410281520759132730324231419290887725608054715768213280416105174835330901679438141518864296836737527958657014180683714594345811588717794831371852568418288442152907844227808439338635205634664542413649095321767141223651183728663317219750132331311519306164541358669673144794967885003621865035078027980914280982843873673134466742781324524366043623011797440089092141444991644545274544976681767685625457776543284572846780135004420324767819427526958811797480386983508461528241067271588389122636474440922956729982849196251746419862230334675916564056665233299346458874330503317459654779828147666762287464668199774002084471565181356189386811522172976427881573175073239463629103250044462830879694433707035307906875787981192076045111194249162957160123583224263621277203895829713929027356213456239802496119936033429480275673120228679373751958056009609390393172712031070878658678438180847493313844389510835883914003558210382027815653279557196383791821880961901726938041007810969323236831656102403952187140044906526268441241455591624284034300626611568872419578428265784186692240553729685039066267372009048759258759195256898828115823121479314864061318678144548780715810141479979136545289627900156302150745088097708321592852295491511439912885336486100767399674944431024410416650865635717870136334498690328988600311749364412703210228582196908377573553067537623033801208469266372257610217086020336888930336816605969479109252161477408113820940168897121191306071858131408301445144719891447995759695218249316528185898798112347387476776140004521068766287243516717472291495033963454132496211389345803853419685198317015425262768771861985810602972476697620191494326101090773165241150176206166277466338270410208879594017929769471195606674977073494071890928125035823446817008702900316675409543406947754807312556142026435780818190143104078202072579135988771932835845009769345696991579930762248658162678850512336007753875178731462467384379776545172014803214210426079501058701241469788175297925902924240524686950108978181534604966857446678835288487234841578374495084288370941767983452296794755881971310053912105092650913505070598606325667450984605185939336286516769280019097006846566639842436276687567486809851267140113161828711145261803588588717149973072978808914979726846732059890545515653948866517734545542205754395401890720814597284944444823398221333353441103244977396226542281893563885724541753103888123926611956737353073883328523483586846099769159496846942933590024759388188449809866236232359055181467862840069055252837635744426010180828151228870329263998011119204977889315635764115207135743075610078457774466665242602640376998994726918924012318386337649595253749778158841592214366104525840614691179921733484107645617415428771787548215451209278193898769467598655102975116585461070002532650589019070219041955117772111452988076494883465278748767012575968605219762153469739859305089816087437465636161519426882477370643500009278938314868053827964906500982892412456595643829261647627686564440285647108475057997894833133188984245864489336675788521500111287654163388881600366026919631234838600214176351865749588022527560773957353769899568287820838047507315850626805993304587562811081927447593459252437774745323951076260311412536620853744565523834657149942637695697097960186115130861845941871054400496715574846614376464666248859219138730490800740929949453237755418441630191735850515822775328099471477290148379829342459242514930223355435621975434814314020722901815996924355297392143340055408136649926022114302693864740704417032052585212149971769825526436722321224645699671957219620784208136411562418632017112845300885505139894009944594887902589570996755341763118431650809233191081397896042042576682456819672475897676775107325359984479392402623374242223138163737093444868081190014980362049926115103885480334762753379447470933462764541177542291357854165341908993620519776897070243635461680632450620766121551930746753546711343990089499321335259897280716623845796063740177285127784803250057513562391281856273448356485236839295514366349550424898658874177220134466330991012751525769771585015317187866511068760744747700548007065071903294079686265924855639520347122252946617901819172347270250933372646290450900193449430801906566320331289460189320988870887428347609805744967590724286952365920835162843706008447606005788102814566471370934728730893890445739479698609466336464060857565598411476233087782659909387324965469344560611584889560713133760333225526655414779304126334847220845031029468134762922552206902403655788714455988012066415625547815089891961586266581259850247062381248619779884316989112126725641570607616218922290894871263412403855190144756648836912881411981791027320739339947852485263672560915358219204580449468192026146870380477111504401773056776883123344943933386271616738813175500078776815572925255087562269240615231431872132226595402573391716126023690909979873790736849637199751875384698279150091141795766334536112682997346037768400374806923778859215128188103751860005398783181775245805442755308516893747801623063670111412732858965182023533714206121652908411075365660538301622352100994448651674630200687062910447674294302364021445012777485878978610185699052291550317951804215961717738406392823652005812219694445293760847497005556308982545070544797247092389006734771971865787328006140846649757137511282049464745326094405252398466631634684842241342051043087071515248887643428532355705242971486654083091514907655428863391394283319085315943344207041377172582865664739794585022433554593704116671997511561662716242324704178686040776340628859300299871483254372336416026366925136837762638916055267591407005663587297055290071042179578717568188887438163413294393552410972745168984042796247030628240299451264026195318464407204068861345956456773115133719850021105920431492820166982589043451863169452857939639164113104181012526756884666120235738299553245220110512316188573458836356327546037270951627187796057853630843529321569521697947679573710271131120995699761018455557305325652655976530847071662596229375679429464721648546383084591378428135980150788108577101146612335953231809939292933369826354798572072875711639070199368125562292729179383804584682594328460928965508118066722840471811307673700707680901699469323937078171253801595847503796872821948604176773069877745151716203666240846877530817136723241793645160131856499031387219035179859213411384536124452680053116599110483008757274885326573034465658557668785568289952468422584793613707413066490155589537483018949129340978244045014233768990811752040555481623577805419713592149949124962784858524731144118172039280674002925880374353216703822731303289541387368558207666331590182245150202638353249972031728060866150307186584755010219440039243239127285226578076006535287173859086470326290426448697519314586815301520674960759202870202872975417772312541210176443796378810337309101832395143988462288141046136193757772708461262219640662904817241549793264050397913309348252486269756273878126873428954008445687035669957101101656354895442723273125175928129712916039185545054836762990919664713793870587103582281288362538674546694873850633064751902232526629086369776975002252317648880642487197279090000265009510189213368306729495370505476032867522903937056038500081999648854492286346972453424267154525957310103781064968393329965718327345733487611428624454839236094631920793400891525284850326462128768058763497466681852686205263857641141607916701783059435236998778441502213511887144665554981609898370889543244119032380932579666500891192211344821470279446831515359410372157975750238514775380536526699189026927127004139788999186678950211482759572179345691242443285328479999931169146205112865224833724581232109879577275540323292602419143333327620897066861360989394391634853143119785740857443637885333057012774409735603945219416820267159515453378407676953327746633824135987956678322501152195127189909361734425284158768682490465418324724295387425641765247540589418217248146142669489917370117964812699363274381290224813981876970269435335963015237355018057837379654285238101163150739272274147296707821551608996469947225749274442485676039926210955962917255724498435886273722926275831407288589139379266917726867462248897870618497513560818660261563828830689800307533022692642940961256549286840341250356153586887201038156919613810323628231494018358108894520117260395141508421403137812704318749858528653717595841631098804393119799765953119010857812571372885558228006952062054924747546589116946317453325513124936079372289134352578825237840319975705049782240057930018169668446702734876328673929145571448284750744051060636088946893881785380869066295838932830215944107719961946274198877923716336437198798658847089536125312064263627369173883715542391822658971756074621004710447272869126081413039344312368118480821177907517335315738046383980119248782965870739522776671929223659928002380182813518607139595105413948349517578686737773261705458419261482757088231856276093659484112796484448228464620146186017892024519940415650032636483063226664782708329782451298639240014935390746947221076980045294804434192648146337794849605937967112462122216576909080839754034322949677729297324279937178361601804694524626262648563855771132333140828766023863193053506539285118274569066446877965596686707411120935678925725895668533140623427123607309943535101093590229174190962676288471343430452590549413017903330816845627484962374241215109287950872157662420756665385200873775598268600358177569371632481798559110193783388189922071754430150541848093611355132522678161410757633924162502523029995063074079063362735989262240715207116245928399844656944639563560625777716363837356024750166139414786059297298193422744429425913970415029943155259677457313701594062690779971289640087007219242453219510752969012051889127791973190910361382803291173660844186138194234186418391822188635744064281639279405772322396661087200874510780945695952977012638620649504334268347605775712586617478926805758136293388812803712858653230861973994198232824822692785337555505328624041905012109349973720314967169604572756268996510901309575225063549792813722180863638847632655104010484050652775091604783028683265731626653701450340709916331458955590380905396270035261288614093389691891012618297266691174093410316015936770183431600321942323872945102737120192485820564289180084721759986066644323271746611733537895139220470693675185253582838499533801203118780754887277626452203261967307862322932385448603082026538884733763130400762351017138601912949828947669970776567669302022034682739689883084108995399647900133309477304272383703664920507126987099618821821935059396435976338125573684987282354270939997627765810963881447818515472114352142298770856543467705869521883002488386542311828016875266619387281501136638907321594610918792778913156004822664848985970686217381175907159667408382765530437323194901483598209309044172895830978786492405227059409829381217219720215496464331520257265095354141325397008024155031939046972881902811373783375626763681542139705428228125891041021513743615673238821901472338270964679300663657823782064028159587303538938860962738744563445096597619895677192527279094938134377081228440870347289274660917273850026766395085467378078854245676873580775416266701469694449954606788870282137871472958640447064739779207414740725839498049203912359511350864886184881748592080479949275371290807880565650553347719181238971867421622672846452113649267130227840370069149240861940074790926920463498321194885960585113250730987187911548909815530654917935792566807788911151447469761198408967256783071130092192224933935727740060472410768981757863669899686489540981623487169335974977412091470331762448048624334277888007446121987037677640958843564799285261534370851356265812701935474907368082030759310272303362183053491184467076684125653550190029763330810118886811702893731112772342752629076186840395013219964118192411134897721929263617096235916654683125530799617183013615891041682738314693210842334954998848914266086632264232125465194106401779596800800156194946553829031302451390572325898486601332762678588022014658985367900881172877146190602455904850182340702290064097293140066818147445019885631448871226208384443689643904536532131586657667361974514144797333677854953984186752760860265010795104446844053983506347483541788888546934422931637012434356811422297430078208435183245781804880019309860716062669345593577526910798330496677902807279940286521087882643405024350924794743864835830835807662876596121542471390407548776356419527035471263198425054713293585972008693279537954892041610138243900976469254460795330697294973604847510570923276063147508568894663626268757036632944681779889887781930300898360990744499640248768528057319260939914039731109624838461717083504122857250830181366840583169002454934917780152597614102031406969794557946833602716842630667975571992165188636233552538817014069301204271729221271026718264336930084355403424328148056079525554738819114019419991698486270157107203513367881255417856922565969455584240702813947802012053894464629122446959260245053768577974336109815556300518162842471758668647108150756757664220412863056875631257470050320652095975924280875171804318366881326914783311133842800395895391007007922561110213827904892049323658567266416309233962675885314140352514764374145012557156062748041541198117822868267133528179238933858460847555524965017947898165170110551905188365968341736550346114445142997091797704170461270267944647484893722760147239444559091167240249129484574627351808650307090857407140978850966605958517702002438489471643900160873186076390999843466245732876838089660089046104441268193813628326357165530484550441807728084006696867395317470256452368521830086069417681384360839186895878929163799583647715866546742832267174397073747528750448463246579612571045659910299899033162083302580426798107608278947967900359096013658823691315810820180066728448531523075878983139080358176623244464538771784265276474201855976890175287330764624333554670522784653723862007471993382592515642313604928116310069368200945452825085695105547313031742015783608208710645353640663476523648264824272580857503111932453750803985420150304739979824876005728479431498093000972081133868180402050278669121180352237581367452190230849021525161075108898533756243511147379541661446572456126015872338071098737723339115646234903409111736261147633459994298694606685169343173212415622758756179849317059957084541180292062500834462998149236334100516041646183828228240745402389032719102766369824855668160495660457630802751598811203039262859460644187266868882339182755978278308453943107955479612490640182615045302706654842220987157502294162626521285508576969433747374551844514074566639850998645758385996985825012627215547313193224954277516254715883488350249881993454065064366202622781225987842728560369702309826352597916387278207172831948979503864417362199057636247208636017498797800394460727042795210519830505203931029814058466649879164563885787972278638478157348230325135730607148472831366434155963251225607446769462445806806941944909239832555261595972620391235402540665080991456702689883602435028142983180901072171187845295352145921158368104564827830993571108066019939204612092869272896837751769201233167081395794466627986676976909400270221361382280783389122850705288484478126115342030228535543571203589690583419061159756224568467287831629245497599211057691967426280528775058960947638872348149584081801711422289357528598068461063685504895164814017544413811292381585887252865555886328293942447537833467878153102659336225397811114526393231453527997133853839471757029534286420976346298600593769426750998017979850744465584424661297363596177142055040216748616701609216931156774034002545162002485527642583620806882277684450324128637412313009559896847655436740843372191254414308971514468808651688838100122722819807263915086691950933092764841664722711471612511979657523077990075527901772613159533397206051585454090040584695077357589160219367415597066769798829505736108697319721951191971523800716572158930380038914959612904009293042795881934226163888379525138669628499143986538678109149738934499070207537881830050122692616314136441922645570494421967707358614715748492573649534333072972321173107268718094703105908737748451429766929746254149191582257544815528553097648175085302213989955939934337444344811870275699820969903503764821743752365533068996409156011842164950795053902694166262515200350177965307994271713750906671655842355308210248908020104789711342238974042829164977692001546216072621706031913651560851201784710558204108728815146098408239030345535070508200855400268002917440817100281263101858539780743373333931407314672056801584769672809774232673640488496675226177367284183687113778395907798235367201342118228418904663692787100352130173573863347656351644103548400845614082226298190233446125866442356299235020270128966037805795563281423926909475738842153869313543524126017583986231162644412794704874768900766272310788718957283555432019285537417609543089603691528987135402717671823313876147755735327197747039532274762939303437114442763827357115784805843673173017983481315374423985367755135722105427137021369594951098502774627988970983655372704963310145639135698182065023390459729580751351162043389912765960034117371655260097588974110709404956098869827592655903867155345890074167597745368991123880512361804811200189952482659620774284100729259728281451248122923774814327937474585120876876613819312878443482387196550206339399517649818812558144678351202403298216880975244859893111593606474502352545595618026092768080001793279532565586305255465073506980548326082923721473215162125834801469852069744797697704980667679194426840540461155259888164130375378919935873503502199344568084619396117088498596180661313630860190123686484728584645589085600912628985941461777211319227726925946634693468296998417228152437355762971132367652979652745548353222138236586851577607197640443878672742797744646697047854709380887872052192218429185628405251039798074494526247628044321897501001009962924933078221931876934662269351678753973715039484636621944910617656257322039926508130903862476748499548966136715266831564262861954715252178636374639277589681596381632543357317779178999791729523719948123809195689148613892852778047276931532757666457590195821102750959794982446674322656914337402178590637624316248771871837103452451167526708497492815016867173439478956757248748181631354582157983257605785377566341021480729556182836437968012202062798431747817671666486270944351968357041272781871992965716774917033797057649828053119370136095135078261821420246596609337658754119401617395808555361808322516973262772618766581686187107668418115126557662128646393730855967895459763604409538049212507184964159477724342477020296483704740824695601361203882478576449951094137673172284562441858363140935629234778558790502879717479498965873949285872009528951652164734923641757906353264739081420396810606483247804511869490443832454008281721531777871600502972346857193142397627164152194321927056591610131147738517067908919502113535330436463888328891790125039090197817709346693990526775081248115244401497118368852922242742082007116237033982475774983425640881594043868923592769027790434611340353122542475223269043523655334756773922211680338963034258361946660399096258420872440675113966476861366483347479266845575154281356513090413309769865213520732070742284541290153551960796532690712776066267024129663436621585508057453074060650630240592944544464919426380600939775319231995598294553427578317044882349181529837647389488143227828400815207797851300312692617805603465854492440654699086740605809461402492974712038047737461857866327676479835254900050782410532251962699820335452590580048342064038116699799771122140946030214495609220894253709577721106458848581263209666302852777512000827867755143515574611225632266855953316299474085855950148219998940823598829951318546327952520728812340554239004708340587585319932994236480201882044228746790426234911559097671892555667338915878605547857527440634216420584970838838742492280550478763724038475341928036439438737787794924233374118113157021953553080080806024849320421742593559146780421610084751389804672116017205284484252190935143742221869258502685612321688423115798017684826860761309230074809578361497665826135085103246725853005946502835478456787173567842342850150140401713258939493696383112565253391954609843838791020034798451834440814823870166321423367986699480851046284663942814997951878765913121075294813321645216070513357206353771140950003482016605225013590805071646379113706916422059944261889977174083650664556100559085292336388370586063958742386779460769874308168821666726902764753417105243163994924617736858933988286311088418915200795627360285001949990273265905771873084531896575375509913441767971992292905629354215560777475328662728495315917650750529261755767295848736471763602860057072595674045883154471030187707812769719733646133985468154456340484011630586055383862698113411139230049503165543808841336193587784803573680285352242395841044072778248944883825981992840166284620902018808765934865677414678922629621573657639516683812079427855334458130834381170388149114134346574253124214332806143212693662545392640335487498651261603425721616595038660544337710330216032667904362393352400656095699555344724829132884451325425597699244463877431049747262136225240628626773797418470032648573846431223652960283013266364091544019276034069074057755712043310669411838651419082906433759929765976083494850885006224073481835414465135760010245230306161053991817406032566344386487127598269769511678147481486438455825964199947064701463690640561961224255514037017959757216881772019394523498348379368068316846866024269335103536445226544401285270466278359859325277647745570085907973991701340247121194313438520111604636667907116799909144645046721826586888897364117668734817059742168882906441934652010508276943356112205076476850644383251925102490305212511635966712997976653858797822402763933136746833689170653596421641482741670382878185198756322744937883931163737717720348771294941603085330550809987311812408237700419509427453246020338406892565153695947280590691348599447825208297653458872564437718754218512919202598857713755858722602191435246750092275418395098886154350083531344989151775953521232890802949192661284702754635659161330581351414142147418002536496178070002908981436168338935713041924576777061106372565441152412593717259509309928210547141633380760444081651230971888018512355608570731718473126182941177404572114516196070246756908851939481516436012129103564385818513049731293529694641452482035755969886546828547148651573542256606360945320825469798089783657248349575409123343215910699910245576255608342008838162917866455797125173402032050933233916752401624678285852875439609817959962832267071079866928349852481294019566409453737612160676641912466572601583506815055914886036677043794002106191141305341390617116863139220170471646338180198074629416691506341907621563485253837848255715717878395646434533675297132464656806254634229305261554288770571738445250723098037735339129156656447819175081585920729014741439731116769776186971449384487025180560866672011629671520759884122155208680574176529254838659818652391408640652202792035214234938169539704427115168279659253892983686391314292438488235498755984403802475832039062005313582383957157700002780860578136261413292114292993765090879757121197998011537008965224392148401879838149339529122916154837822984290306643693899021014324515256470553642732209812101573494874648091807985016039965468322486715163732394803838343915074710475388240195400904311712917102720816632524571168271367813098519843522070798706101146877012817977290894180698682778400842750105419591336202138445920556594689649249785678147247922390805433242531440221774889777156548085386534981327233707004202498635827221650600325648084104555882860949213107598177368390181338489798133692963462242592606934908315958387518906441152597466743471535903848906177567744803380208570534335353049764902946845203615045208447892836628581075657883874901098837730376650203078737404211283012277971139547403285170164089255815302885554511988084424363881666081000427567038941200157406909891309631279505533006543307000431741637103514951157088030821704571891334413121755381499816987927659431275463402200884368547110537722346714962519390819894811665440933432925670114913384682574322276592495751455864340119977421587870924793674844021356594434891668312698267479485255971147787637094443870290718897834751525047642841484304926739613734459010533091331441654876209520265351115109183946182790393283163760147214291102791204474511503933490842496553829214122836812486280593468347650205040298939348841875061335535535695438821443079590370188001608834774090122945533520662424106288569686787535706557058296609946702706752909733073808978560498857659585892645209983373662436691659754372913385575233461372477585617138199867887091943525767612124781564365525290307049329793511105885880597472584034098591271452676219539412965134213946739816681851620618665971291814249096431648222981686677302568774608675753521191460356244482463073974881436580414547079786034800887957513597939203593404647105537360071264507770650186153635637312400341011073304119827495270303484719014999360076229987201800748915020727651521914369151079496080616096348334654848083449367718211357307097794945133857694167976907299730427147932715571895819165052008848677653617547433905663492854551787895407592061642438653718996360707672901358445658326162829345383922049566762767201540061695412107341198002226224325667449040353209956133292717634383270968898104756772218225570414254692346158799997220614127655553266889308289021570116965109092360934887426396070331509765488960829725492885982727835309094309717319286120373624990567527523607614830094403356919189488786706478832095869878164759532075030203997235292209867381680566644236302584421795557708365588373533863501469237739803411803423897163328297864041536153223287621183467709075116017058965906967592183019357855496143106429727544428161866357000440145098246491025880702177738142000161687340098928616941511810026562852227097157224199429508428669455289895924863052406378369314404654159377921018189435212235715645031639078811337614135114947336872004211484407669985489892527720584707060595636352280571214832899068339464483371793027886093394982506995059065705359488313775797690917687519834707186040491258929393871219775449990672188578394728835557684156420835223677393910197416317762180484551376849026211161942390469349593575006099210181202200836870094435504824792064181847281969962750803618161355422617791729449032150370427970884679642763997410568338881562053178695185575455143922256903258368328520595565722242723016987091702073785967355168432267880802792536294379409901583067929129753742462490194840946439041334560274507678812277685792230199811884198091806084429926430487728067893420991314639468987466688354967161174334871448018725894898770219135903502092305252591800232108405107370546327802814475512110725645644104177995602711889497057176316138645956651928346206981171045804586646244958122271793978618531507298840609041413334199245446595314352370894200626123183116500786098371530883721761455797181537093724021369849882429533753812233767030080329908084465905054585490539915831374209363054782335652313160543027737734800016166067095411477130280602640105356640192501253731866809774441548596490444285700004342555386079078970189265396602880023842721238489728166208192482948016452254094291852268701305008406469493874680820741408909616633000462471503777493749246296012310681205962807403415545693845975066762928993965595552755197586766202404132869696012004136530244136351254722534525227273217679206355551949392076216096668827109813588303988652801497079918002992623783313742606186375966157232389536388792670747723736784523705315138648629832933080515083459123453572642153446532662600791238892963158732468607924517345942809579264016424043304143766842406681224190216364958525857282620441378301609965340947447361174053758013840988698294529125489419671819210036821948691339688399255813706379339221484363011706022191350253161964427133820107193357746454533786845119712561555974983214211983205468149445847361353690735926809206326675038790933608769134068091957730233179741372496109755863670404702752330249028029518860549996327239280121252001396633899811331392201288658702538366480095732329945154505941488377326517849603685080991231706102718781282035765358603552592868319048498359172180413392201596629578632902446907230164202034320042253795666569971332590181098731936188139006435866545143160213677740498028636432953112075150420167501382458567277612192249221661269494323075756823335668792454993215997345008805429981265293148046820377478237632192605167680243173831287570459374500750772616230626378968923019009008582908289977258903601516212792945295731340546684963899418427090499731813466055465356070388555798069838699114995545360851119205326250038662954235913505518483661180925258582452468316088143737066781679167824458580465651125205359752630559094692858056754321818385412729298233053882288563555544523901202388811565808250288570361821415583973306230593943908141414812890038510715873549940135088077796673274715980084186625848846140797743788802831564112138966613772061332965500280103244324234315140551020786274210636434599440894009994998970003059971429888541338700040788988850230283477844975774016164467035601006905663374548945241459609799164782419393857675965591164634173468117870957392102645289028403065864825160038037775679336013817218220201978658733241325322137019315493637232954249081994535613375657958243075641109534849571633207466747274318056036740655956530708859690314569844953807440799612294447384200122895573260631908260559136368788283518045260569404069127826922335243533419954390285939717636201505904101721711760843910095137517551482500886811833794445129026097767220855006380465222049749753567794336196669971149115079909306788532497058615520470631446524559830859014454063353354371812035186558084661408634204050436909647221890561592967347792330960101528998266198585860245649535028311160317147291536510367462106569220102082188598343401826761938109836054040782517259451050941477245565090760503982123818582803525866480934989728243275798174094996521502445656357473626662176978909030640247767498854171271734396128666373434417386205637110264866736617625185095409712230493483445835982588177157034231212285805685442170143303036075736668938176086462292993465428410732230913054411295953009604273175966813727000582088621306987598541011719954171009436231405980661774527699203182351688341100472023102967329862274522608591902733089346613093604617011200757572211973600437229350439625011843238865057936750226578510197977517450743723221512073932383769100910434747541018460319692047247077862312842808215018684537460737460989424723037394248119322003871101051894211028842959044027910625029780274095888025012857232934993832580370440049655563528391621275327934741515156411785916105422398662286801259677838017962311156061115465847419287812987821376365172918504405047193539316930014443679931932732621831860295151052638322846436787906832636588333036239425660965010043208229901946346190437225893167226436250160283393214819636395875429663917865935370074694654804264870759268451795955577426599012946780486873554141961000676693878898428413935531094988489814037098785775587480088803445140906987819968972714408742428243900635717230237044015464297695687215616260981406055207544633564463671149405361281070896417090748755767155791862636471711314906963185409081514336179562319267542536996200966386431214149520291864252622649499238011508421828975313003700833520317774720028591617757386824953284867681308022579571815361924251678851680575399037142100123757879743947132627327513852245230148587360502230116647512882519151843974725484836383579555734793998008029363574970383254988729980617698732959877084083224047469082562401072528536428535606196732221612715592431602149419056597304642092965303986381974306038890578594793387134734149183603660613340935804543560045550605161844823147932121004687709568631100997423367118829415683283012721928446724988491730289497087603164960957261389994147132747898304551748300812630647242339032898420514949260797296362689832164192625728323107013021937269393522981431282909358111275964301792985019420101119877491005893943608490617152369009663533481834610868590163900521845415599247325670227075212884717902322597708401748413804239749399930672300910220240817603694128139502707214705833800047614473176925814831087714619226740837005961083819734031981971091466408527907603907309683519848383267636955733746698346720470461440033015295473535255834077608329179501079141133894847539590101646285915856905142380571600039073999818023133696736411038086265268715527491537197683543459750261607530463593397627573742002536872925211435005928879355870763241264237273009426887751385106903084415598441098781088036560063055063075179508937494496925602592857230846524897487300678260756314025626580579732174666965011664073905476291033896890831510070878675881455650091510234715829220808984808159340222428208267063483381252118283618437652570427637656361056097686122061532886076902368847344404189454789279236399263407636633722730285031734632482637593403674860283130458174217334860051158509287048964424650783166041266528549329628132168730458892127847010917612540271051339641969496143971504338427724289142231192000635178569975777037154410778128039048223837929573692968517615447720852985208934710967051896424794646482369003039973352301015591299412244758786098054747035828065199036437906665518684812269226346002425889348513317434523235445166551237715879183906557631412166327201872460645644454436619743839246911575221976249817849454381495889373207323601060450944874630871961664549836260401867626931587524173702877218776558367119981690031818869562954228184006667674329652366370014603252642548074633365701667063845905631233047322262402144067451219091537908528452301723008742695238267110998612029449705072996649381901738438855932305358622765008146612011934802017201415572144550648953889463613083006451595720697596232554848049662243339516926989337931322021875660410149415587506751383889970497073114304595766252939742305024480831539531714150270933911386986045882534029488352956402637841977961604208763394083842343537545178754969248912729788004235645228791641644387706629047452434571838128113593635761598152861422043430319089619542239458766966572373363248238604086083488100238934965682961312658918906470747092277345753935406275420122594548976910497227869070669941402146811577199559665373303618279363363970640923093746356831176538502460848778153259366945960686892076268373844399533529394914192954336103137139210147458534460040011830139215945667530173055285017802339248644195380608431257699505622922487928621399723025479003259429335620665061038280816328063827380628015831433451972763233731319045038290897790495965008821072829159755134442283877933710691924983111913793684081661547056371050236353733667315712898848133646014621351188204591039803281866326279438148532372375441293526124267740387564284069340870128575729728356829659671808650549074659781896565192319935805951784972401877825607375474026528160895545325563639607021269547415642946630783432790702180875614173969410100425433489314921911572790328638789955648421343893308163484818192013043669506392263056810912061170566432273922598743517925741667141248357427403322489478253905312922318011279613171052724898927972180443350965383279110872102983486220187812658325963856172164951246282903675201720462971997886793839133632264623431629413922485646620521874212656910402394060509509761138244700214212270295223122429890769925177536140261112561513519207642329061399733520123896813998683823651262551820240558395713240252129617468898057692882160393271042687618616635077278287072657879760180775430542125175753010495679612261385842621833775030669590429135514120199044726146432185960043660651290701757140044610755374563789465593494612375505201561160191738974999133394561854584393101588139404220598799087016163010899516622077481913264299868131915802342831647177854334490701432875942037759276467208884079677296860317396381009888387344759694632826868073267876622434227963658425545134355949700636929368520919728138535160455263419962192700554142725576084192271992857432162883391615668817986155876303328740057555786565820746468335942013615284312811250523788761046931370935291528774496679252249689742402660813935544129595085197461677128755753174504074805325867878820145914823152784282608505327896754202617947403773261705337943843483821070413488650493716740499748123360037431587323549707076611264235514956579455849394744525239042457451587685301884301637685041722418967213970701521623288006707089708896079919060401160623635755622521563781313048064032362111916758192490239405973087160970041733438219933202063370478250990369007914179845174612738029994116085030365042780257211339956889681793176646740526105342842710262067651074556179403623018812291611576966974146035127316370073359588424366197773798766618129180877928922288696957340329864047747341389279216186109487384604497427264298422780277824119467320503901660573884645502659392515990472696895360406105804642324663506017557683034006588179311324987692182214509378300741395801802477237462550542943240330410182059994039798637783069650135050373232453607246534554538756519563268377611699764132797739037837379227804956129645326696607345497944690552318637921518163667370901027391628872290599170130140235316735396788411375968960830201664628081553395096455825347625759739863706196343400018797758575613693978601457357348813385014213200511482139285728489362454597738981957062252164799574349177925864653921816934624769531724472091922687180379822310256863214983092492407750044017705508788761697227894683438933121856477794842904644728544004506689363716022094816897194745074209884420845409881353096843873260472451849455246638297256463196936768573364560921714651836014763916198724291128629869995809340641675615518245608846705327892681672703709292481908902403666253719681886572048909436525409514664533624941945399942274167814189058917966183984397760072274236937087435274896722632491497081204291678344748034628793062944242257979656263344693618447992819517435820680759909487375584186253056522119644948154792129629753124739916916799802342007168337540357805139233056521806276875010348792861254414680695572986592868751670549271459011377257471704659747756811841042925473769511684313676496447704546617058397982164058230755665220242823253878594588276619524721707676509923967880815561685126370221075934396319225424894615293137963685976312490260156281971170732203343299590760365474353933469048394402500747723181983538803413553545177822783025750305715196973361308044595866410124108874527375482117882956701422985739068041054869671957010469623985323824819830264451161589351845203100852177569046398301329852552394166188805417228132040617925557692681090492746630208695741994480444267307123757422769984634231971905867744223744134688597445295570680350025830816492084867054239709943519974387442851547044648695511271386693335007400913688900338884217408498164129950675248072940216604866318529609497241845693942574530243326483144499967174981969629437880321078945632208127229781391215609975789513165914351267574133417121866999459053627180236913669606780713543218800225920134570463213984905892803145008578993434882712514111952730068193344180922647401862594572302735271121703624723989196879505806235288785511650040481175472021769632011900060119580113395558336221625588207733467425771491326882096725463243313502390680217339441377488589333182510877416813307486259174082167418860482570523478905626682812357361785174133141913243015067842212086393427163553441751137689442711110749304457847461320827177951554012452204363753380529873168722149547448354098711748458685987521760717128824368809845037267658662310524219522847804866556174627704494858994535153645292779374993177023883428552092953194625256503815115122387825059142771830908165583567278238629322954911373289668912963238215856654019355027902516960858626062033477756763023131878275323123896002506547229216773403034377477955721723943743699255366524970066272578280716449806770566851587459921943161803088446920176054156795745512964330033306735819888247008374260721778281617389246860689605471279428135160775081833402646105615291669139999645397685829379853523450555401639761710122074160861164035182585663199447469208750082393856152863167791801630569499667192730008894315258394710208597834067433368660732750341663100280889729934309868215555650983331797995135614540839938507999434343035750989250312798699148325131715847828803432041997254278040562987778753876356393236729049173882263178636562797847183065583869155983789652174730204201439054643132026515170471961901845663266354066559739228556645336098542249627261016946612919065270236365160566221680721264916344526661120834872331245517883469317518101665112593741122026604759319094509436014248193442678974658248290189268217140810863160804986584588562741557279918162280658792686705900175818287413648866812111728304118762562148283942723484337722089733154533442531928814606437628538999063753392432220598866316248266389699826755469998722238873465373401766443744330896920850658680372536581178849991885069636864034390816417243745901914590099838227538169771689310860343815387770411543036593186772604566482721676094885879940745264842649362057001448398343995359221050519313207544122301801304186279072174205546088758304550182687041871396895135414042124453876804401440486808884774385192434125118834365889541120927094589721166689848351074094344562856755009001516513805666080226200293800976457275882156996332137439734748638612775956019873201125740516288290198674595232970068024215951686933060179847483954578246290379675518548847725240549910950388286814527985956015664800688994889415270056921777976518938430341732727375414897739399701056501512006085832620440107451103538073091657430640918924512751041980489261360083575927731476347217293350423098896005655018244846060068202319914714768786751186066537696124581326118650644166024028665933857985137702995517577604528414617976129696489505402015675876355437998763298285088207260907357264044070754653045712768665693611491232395241459605445545291771015985861230040287092566537879725999301672759723348827091933155269873488513253440215910355088238473894848127014918161235304290393810742157731237280194339546996244772344788698285646234867249288170723621115834590257743410531840875562976297547262144900814181371856047879416113550962668861924364690953252550121624095875723553487693787814681072377724794538612241224031682531122899674080675682999054985957123742673010367424139033443693587715799822967404308021076349530599455738281617713244361226990245943010916475681852357651037105252192203211579750858055373968960907395915790029136550716495124138134090063930328226121953763392237262973465974736766371964458228640857494162245895850749799873186540771536628956351681931761641283243621600606107905089063051744236602158917245542202237862064513534882701115040371865394492164951636681510707041310488897744736532682558018989511976121739736986838063711623236889471356576724201246547310940438343950647137880397070838559500585041261285351798767143715159532293847613736027189116092938607453610612346647627775492779420383014124292340618304494615218314135505385957653327629688890596256434863996148233951238539248804601472866821123322209460793292757696677813301108441483074083929252122943303872350564921468885943005071136308261827553351694847498931040838802008017604495574899664918183761346150354663622183501485194870678925606294577669682371339105509669769339663713065288772407166757156221115782674753068919902098251179900510216017561045053022409417912010406045963404458576687931639389479072337393895588849619501278215750198894648007932167851095628263054232728983981737622502427410954681724242905698225274705545007390619886494407773309652372337399229822777934661352563338273460585812537637556895976180998921274509539529649884175776250409322792965636288799554823755957492443024964348797470219274513041155534145195825117945165196702418952977303423641976125024851161421636973155307997430956863026807236577136383536862429541451882262779420652910454434291351411634462908468559938582813270048940541521128655138266229440902350020887545456296384146628599615891007482895689432908787753855206804759749296429699258748346527559580496827548387229567443142802745074639184032510797089651191668562357232385793258003340793355966231279757761352530684122143763617578183152602164223193551448023251467920310148308620836391406977695549865127642866290802814014561641461896257170082191425028954910704207724656181712682070099126376203289282621487262399342764040517848784385910200697639421635664320814373649309984830129326212920889571871729529864670597265621921440382303659847895530474740850647613349466191445107226941025038390812229970638320558662744128435555613123080086301325031270342162800571172239963311022519907296136645472606397344256953216686645329395503763626260490027516942926305987824281613105146754115617139997065866642343361728296227439153234781908561151047800973772543422642339011695688939928894667281126579978362247043392333294161307375591957106619070995901189145777963560331375321276216458829491337048950275716139973423665844368906886225638226982038471179989076214668624529572690955261837725908460729084609704805064873432769922197593748194245272054516615987203849601306202255047704918781770817743691613537694798921916452988690202526611729687137732928032355168073971545380848500176659027116001894422306799298814123425324379064282560781332789975419167875925012358289922793311250816900284677173766966052210133431237479163291999680517994328383499811800328006097912207199712457981072927876086721156796348809924202170397766292534634965472677572303761400405806736429485708796220225940929746698127109994839935896203995478217785753297277568206929763804759484363211702023883923518069813941880146757971526200569843125658543149565999599359176724770736865611376144301427569079056815023856881867963968043283048171695890348775952362301312225750617452376152408390482700490968270733085051775437282591506225681613319261369598781470097828122769124458236913998536317582165424685208697390718062295928230295103878063888779760480760075950420380073124385470702306813361857115543878124990349871633296403318650121078171239119136230273478117146109087333113163548933511019552958012189589419263850391711105529147227907038417428050424291313959425599898327463092530931289698005465856014109202122741510323764995978363381738785789607450968809967108879877180282718931359473164124689809989919446080216414726324299157139083842897335691509230840592751540427655241308416494693346488796235381985810031197128781847444261477892861074706930810400397035110035297532377242756961500998466856323019645425887192922222676711935397023475523126430964674444371061178932562425367179417200605610110059022875778278838448061081011074394407743770893432239375298269760716902803596904336021378008962768592291517511531763020692860569260260908654629527289158018466475923558388263971039052618002702432911532480019439254136182079616044310435808755080630026701006685006143894570452122563885443734250144000000771377917824142381752017329511493533417903447378958859275469343885619083803921332740776197391804739609306883529740457457570498124469654569036836814065559139051940097274736242309548939164420681120661550268645557780306444501172513702701520345920435374805483984731252226892966690636698702371060260731865256729674196299717380568191788547031912852657695331370276444543109030698182133179464529510787421480142989804663900446634529812951228487987044264802659443186585697768157532035932388787138963525686614515048619467119290810932827732861393373926599473327433333276828733477707400623632363792125788431305233730616282148027955396638715700913974812994547920271678964115702106896749726664833208900983844222986811256564303215967760900338537432274489927341287151361262548931335633795452387736874322170562020190892889845332970489334583130088560441703405046848867863533526452297761333468052835691958151579666412179507933946396911402292739016971052832634222047445214301769963311612348281763453644907208070948209221209368101729298355811817923520518133834171060342114925785116212628804751820889657825895077117266646088095925481938925273845490161536289768894819890613730401403590078664674313399029024405733729961080775345363175547245352496663427431397881183493550431189756952381461093662044354878008683250969035433922903725675898730049012402013993393670218741870984686176140609505098755566729501597685347324327819201728116182709950646347369392386475260843207436389425881600418648484198371458176233117067217345447265392977660769609120184196469384075667155569774457771579607006617726046875044832840489320006454651276594631638906542283797422952867753211049576311190352984668136095209205896145123794700952486088788938723830267137848850627221947397546081177494689024900920370429357542824657257940316269366288590070530625391087998753714333598924817447452075700444060001548635786147736740692795583467323986107137984406783284477989400468001132906111413960545539074972214940495396659587195619346865854733342153968217659934758778422828046227454191610483720163744256128621635796206159211746374700499232707791240764840526304615687995793446317487218351341772169877770403951395083479172783505722952783988683320482847023820718993771511655193534381206969054192464673208134181403785202397444271091963898440740717589295711617941328131354884665977693870323912433114491303528010552327691063799355619887899467260571920374782701486831760947460797512723464431941218361465899059576841454278378922134290716948237852366308700580825720716623658152327908169414343268132618644018438731419432245442177862372996404045739746839152638891530789467619802475106892155964307757046171589019249074170578498130188009124188877478985125807728320093673721582437159246952898252096162034170137373675885832759004372168693159774686070115121964213304238615309451237901643211512826608120272727764965702519922321303799466433545526608397429976346579446974587764280681359040531009117990426419053280169267603842200095343071743411764054345210093594948269911692592988159073110185584870703680836739869697621226238161291402725126525837778203935814311008791688067099358480873328428176116994383166944961732280636181041247507278552313536589579929095949226357756913508941119832907255840038709948951520081616199888161326712005390130224246449129509157537719969902622825154619522621428298531009068722365358127041856533766695781947449121104116707770846122397796807711479247568127711869180809924267745345662689313264655791656112334582690345064939755512365347854444163135732976760290447065275752089714016920824001432746355343691316517085466257474737107218621825394906503557397119697214163492804424719234834522540838491440849497488645766930698401270220034969442020427529323836538171226599212074898362256678882540266608862844763983535718156923285068332043782624608969270372914660621909107064877155483471822791373833420652292268479662682737783134045938773764394016011939048788693414071697851403272535173474655762537346977028178159150238059929554933786437561292648781510880514092850832162679051228709699940788336383627845675363389194930285409326069059017898757825912743384814948800387002855322750697015728286885269112462424572972071635220347258683786061152074223732290176861588120127668831301043258176361426668383290228568647918029109091914959252154275704359900883695984047764843457276626835965339551667634979035383044868181869258629388978766203520417881287769290836697885551658219340524212227949482248527585990380138493547516054329095797734933760416201248969691787996155339098050532308930408452871468259204007053106453013749125280247660657658972553312805843260949207764622644369292601877360175343754170207649643197730878931477614518646498896010540474275237960681006368854529634838736963191283634437600339239470373037110398861019617957642306738872113104942434204238135835970359163005256582424918638822054723601118141255897151272974974012287706237717712511120618380537028938739568705629633819495397341831736387439129638846762936361902214666448205077977706114965039842644911977005350670424944536407270893120288637191392482062681014065325878246605793108913247888278197939051672490855301956029657681006210389443205889502537801561630327235780874223169965741731366014851539616816811503263188777739945854146392546273373965411697038038509725499116210786683701533191103439142969332400777582246725751207645176490113119591758437124337831183747262523929906634279550152697987728899382343066175910975752956457005218092870324840349278690598539563321407561669711279718822602845622438247522023628798591987357333297902800990339418818536575378918203852678716471817872949876449009148387490624343424524055463186508076702893806286391982449759401856784016553812194323318074471031222476136828610032536642742777709186952499805712733213429118678947011674221553926144663876390458496651924108466992967512875981490771211288257687140451571819756945477006499825728629363047451992923452485479892273567968885844392643673292387911296745296489722850504474539268629052811147356837870370271070760255146739777869752631115974879305770513567933793941506192404813143675846204644383566131810657981714617889766997845530366226021306157234950616953142176929496152406909321958477258133062045490926164348170070435196787457967047052193551937927078255105959345877511821892067606863979579231051611227938427815472441690794794768572438103345142345981843886870353246968640694957498428457210970400276035217517358158925382271812823035003797731103540200581520571369557068619511168086606608791636664303506194274832604548843660802375012416076532994216630333834386187213893622334231692331376726295807120155269024672828379222441013815498942145995547154302633815617419079204628802512149805774827797334058663781761414230299319245561912703938027944840385820085329619164569149202070616249532696141348336692955726125768715160972430837852583588892402317645861839725969197428435485995161215786189568189013990123688570632948006756953899975013983427755218640802561411566601049863186495209285401939394977164848261820186529994130799302365410376672653379571420971316691271240906921707497743228639464720394649760370642306550385413095269550602570033202869661835231809485129717512400323812534168666208795329462121155421066155945368450756344256672372543235515990942266579582373518738527856455020137488222305625176624983918977777742592759850367329337831781028473104116458156467420387538763237507194294180520835650076587348547149743926937990940700780533289680667946387423559077327201946811468393234560456920648415991540393680581218598534108318861881521928529847365800043903118993255973388963471832061196390067248646549738295640924728987230203928499466143023869475325546831300776070335303242838676733853070976340912286536707482878342658147330987821778634448205069153413120566289412870900340278709162035912170842657576000761787116673387770484350088892758313563003356461911124308398134907983190214088878583908204847528976113038984502658509113635168024811183649110439807831852954284640502393909405601773587890843187769718538667738446470663616593392197690217322536973994661825094637339421446517232208810689422671158255253498145852282750300876669901167225340213144854090527539663267397119021372240672628550050420498319657239093592139299558557131573625083385110432504793279103617100467024725662110005937397093523016705765141617780626673627381611654532074014856909830397535649328287998389416963440168110852132407160900535903460217828772028608778355302274469801441147350134664890125302736626586389749491089576798413160171213044966928477145997558321229894379496977801584870722004062590365632014380478330068587719709087135379725924554451019213354344350133945957492291129998729157158186409379038033907913250971845090419395050325347446498962762442278260353315011035951620281244553422371137693208860642145806816040533746152808276286808034329842570291355691866366203060447494950205236164734862855865042359665085181731572686058991037711971470143004040939703500706873782271909563197429361288959507560890216646700204575967707011702094627610326100956296590414924942143670502977023590395307361250817289624482986364328002527700430076040220759341426987378996300955941531906606517465953381392372148817570819200301682931882123104601143538562104346625805846615452638415325254744925093246394014947465237077367227847073304565870308595121341608571782774016428889009591037850802745006533812347732718000860114896293662047803669032734372318692945269702718059441611891491646046320268655000185302414859289151546792672484644600726332972670596614974086100011835585304320656262369726055996913700152195867055158345672365264332969611912165105372878098222274035348666167570161236319999594648029984527943598792711942536523099991010252211505176564112547084832001007563501915360345100027573381438929420821025793496516112507709083909919631391884624247783985951143690150196376998872814421944440198321183867334378257765794902337675919543869089229814672910562160896183699039223353623425387766019436262499803625691173513195012473169016461067367509967957483798039936863539430054983768008203838299114812392458941667798379522370240511595473493823023114207221045006353155256878488357550704438814584321481603895187593711835428015399620588502038520595853828464228179796140515270472074870423743000911067838736223875471351999459492405694200886810196898151177437111237561525868516463828236245110581528652833250149320333742064205146361043086900050145049083678430385695509276443517014082235020595610508018561171491033233215461296154743762541912195000431443547067490270727553276964791542238211812412217827577458940068610541474044042332665004298110792687878732203248050059347239624769344072882575468227241159243323767664023209084074999051418442912263555520109492933701854330559439822006694890014073763704155530127690148663664603371388446396526133424215892183240700076146535777041508038899420138047876998955952209838955716716161053116504939994023221336463574982895055045269384965331645079297490014573590949736867069823970185790493152510542579278083981540972903578391887091760029285049729828007365727734535262468281391364070103850080861723531412739435495987837512658708979791245434428819620189746558489989779013421621888921266113840066722420962576715807840948740299022789185721076709191660836267424158392026885969447723391007712122352202450660721625370749055541893663681875957585667586202369637345233739291531497183144772223591234673431369548853624493338478946147529367907262843957877188654851628924547014519700686722794637228279572842618801790218185179163977899223682358748625751412614846111131922830868740623047025244237257673504638153458245127469312366847025264809207593421581775986314303918701012872167051830133422801427870299687600548233788181834625623080081121600485155158250040806853433337502207375371983389480534844771461384648862462133550294507752698782641610061802488234329362689810937620853521271666838821513402885406639045148133551312319625549996238666204206502575328520465701311378386119552754259577509623540723803621394758763147816277815229204631156532590328217764732436022303830320370934477402277220380823937569485996406464914994858751180257100827737938345420713430692520510806011580064339508096875277919996783825279424750952148365589369098601929917575749553426679128732295522212027346144631857652016300159611163518014551294427457567351429467390405511209040645104514365486242012171668246996257447077772148850528185115524961510965590808556190925098406725511442435426665580519182780213585038924469480102987071190072000618656821842180386504450153768968788244798416474942400160509997417366895902278928131757958411574932377915529891032960038156315913027258214998861221306068665161986065166485976124575331969325722520523226168215250042097364811702114713970973078389420569167858664044333513403745032082411937671609389109924523098914553672571082185430403992468542575392918194268575150988675903622042236739174135231256782469848984591504101789811484901396480079806863404601450278499708095503584069986501782607856794958416395029768278291407135458568679101110054762321564875938028237098653720791364097773888524571232356881531984577766629053146866896483659954131856330281650738426438968682233267288994964642333132239885111282522826597144762885648588587534886854528270630772350384758215497692776538910751113749098824919972920645228593574810129775275303731885265785535535105645166926968600020920838999138717541141790614517895066423623272654214024441309363097131906307433613727337409464355817715036790129605838211549493043903492308619166878143565986896545370440781333166024031026900180192487042999715522778278738516090732628157097136348795823808560148469385691190159316520438852536601635276211455095287006375264538308519697186845514605060339296865523253355372106098000866425794760401361682977261076589878255010650692988633270032672052518299110950632855402250889282913304048887640133780817867289610886362526325245892520989558983704990859211072152240046757482148646725892120310770482616721886308913421730436286075705315228363006445252486109770640157700396051299841556654542393045861709942453238130370639272256347100787691228572158022633799132364724051284846200662606483337756313608449560068512977230810760089937043593479021736792438461593831241423581354429972787295173852254329843569200526010635198769469446845797630862592094185776833666842147607414302485254838418460167648576390140968437684872901796795474265479038119259901312894374866436109293196999517928088779347262050312565671590508015872191246261250748235701355998853167907439288668197250723970952504552299975937482840151781339506250286570395032267317060148755630062994886051343881896452082118299371411640344224506577277156417641367166179959158413054431537093253891229764725998716262938612687586030899139175886193895309230873901840476481495511113398264507173335669452223295685977255189344855926134201539734572772449455451334046058814306308644278374546021976057060761554048750110210771437391313034651992722537300547942049003092552562948420303403218940214308923226987478245597524113216789764963542294994957501115182203716959132919987319294995577659290954152417908917771646832643070306393729411707055530554058111015255090311684814252588239689698888463216207733419094172695822421468572427748247553165206684922807229905150494188908807157599828807841796166889091628076989512320565817511787919721961878152754181250622997216595407899540169736466485697701228704709189747782173898654845718642499501527515351668211762991564638800459393885125960557421990370527484065920624719387333891531256438725580992960435380525902212165083353051370466563356938433207849701899914086903826621907142014748332047685599770110183738452689431004799497583491512909839083399763542134020646951612246766559813954525772263179831006243374766154607555631945488734463154314986139846568735863769352908760489818290445117080206581603178669315352480968529803664370387547821939417015973876928924883829898323221755505012797296644296062867741931110778036439900566004810877996100880564022112224988336206731685311214426734479473949757850903822648053710745408834277370005661427152504571258445119279095013169901837677110833106014606537053394362084975946167464070644005417155396657343780388491101682891300102171322412313424550268898930768110037035331943198604358183027349469506883011454366507201234458167906020555210268556808831038028908502219981999444929520943119458590933234913689403144609329836703170961905759054453323401078224663796634169396793171665374092303018799403735680964930330152704183196687081396695179237675120846620298861381826763738490864629268852978822698594617663309663110184177520167428142938081358723201565593528227815353031515897658656101677057789561675747887923463893859010954854495983368319967549947948216229889902892982013445130667025591226745088762060818064867366641459587446319928212423642233494634969002661029409261108258080703896815797876960399999371626961373189085052805239146243763107034797493525594991469512128618348955305964336611788897633165287646471036032643088464497787863276534166382532549605022789270413811240306802251556560340943415109484570783995626764138823598743450586966186797806689298835323659268654765248673407447502914901056472634912106216666723033118283810328768115356991831544691479598778633444790042999582251555073205258041333322134191613130587438624247474996975368906861794705119665485371896343324249907172306290984013074627733922206111221026260831952123907737541663357168435652671964564123953467438676952382202927925135547551150274972475740922899146863899271327290081151090127025809733737033473699378155067935986783410471445979670570333517280118975389833490972805481419817773260318417553959424364175629730032745163106982584200819135406548741262594115940999866784794440853763792528787717311900016040611646837997275815914431372467592428929862521058856536777670913255554320107616408693109020113999887072367446220527119320726556392543353347554582644550747290704769737482154969023198166280416931937204639107359384548221162212922187261611861446424869644614784362138828478125519728682900090982373014826607790116100773009512911084282431112115780066905264207642362611404782708349557709034513863757972054701484787085229782063434972144299251601209134404579376191200650548308407990049827483556569129912382887740103634631006184191370579986717810084171171922292741626650325189609216062241095813028537397435137213637827837726306171076647985504421902181753994324843649885683764485609896190732282866527588331214176410296232759517583876014404537076249869696913095580411817784290589013547713592914732334923780655001522384646597174060130792574077582480098440966475156522897792612467926733324428322504108882872032592394895115124508443072933557806285031885521898636529508855177974228565742874884591399368817853591121064886762485174198630726386670435095356865988507040734774574001254649936992349289108038538979506178654193205979885369633088143132816161248667608252642552445945729948604104337377845500444757944250108479982750717074580101303533438223244271711924498795133135902001561929076736510768718186244754104145226987819536044422336671752509600035656082148342265536290977837308785473330590403951329266920144839882144238606106113064245651335609954854091583267197936373263184426055670192692458540808510169476630873411889502141551834941859034173729806991298524525635265232375956413996644363006827333793783260426565076212472571892363049728805530543590731438806783789377630629474819103688371910234929982119664295329635876682307702301486034092731850733166068168457055330086555285559245856185894612142454135276636169691470650744795873833207222651864526685660522241984903618848977031466828167604471770697201971915622523909291741165170457263257688850724287118966679115838254220393276164013760004769427748971649801135021236983640361573398319805572298410734683868358455806267926836021402447407044933236600110680855168166462283580149295798437795515462851447126719581251726420865543011249537887268403548763247371440046637244178899746295289577911963824700865024428916225298682938499000014838189830311406055486765414577133259346622926314712711998928858772925784889545950673795554702038736821031722832600443623137574694817607942524330481242741735973700289771076653819914784536689311446069526630822905422934853647924130216920878606167802820067798375543921530573697120578725745884416813844841451491780345492763843831025658446548427340239576100299002185445755651150141301854243236148689192334116909759772788127607118576549845398833992432441133816772390997515981869153205718098567832448660766477185375230263519310939475348177440918372716061003625717746027578755790176947356275471467226853831342183665996184146863265733530194956375274576356814233053532802744181009299399594425818772420089393406255063968617920002909942158865922095559001134914618807907128813485761267773972463576943915590341045849230227510372762461799549790410282334442049507394224371965579379255666256414812607689953479272186961524550658029182044532220883043463232209728943257096867495464271609549052634025551220194113727452754763215801022249229691558554265900683345361922426940088157115677837949393532724288093711199149759050823557742386573795051696953491584388628105805767035721842323126777371297198332043564347253135940974060849577459036456265540848462734876170400051752000248196368294191066159234593958003904629419447807812099621143959293513877968141821140274281558466878388265690445842596158699043994025324184656445559842461510465004314729199293038433916917600994409592807506113323658406970078334933862614127299681232848698296499260505706478432794643246058110595955072383684218979086020925417207303515781153306623855523878005381711201340170829146040569109933951576946617214540240987056846508751855721133752716839800679569619384424380216766958810068788292138454722794415213619980524696717694213698690171747651894892903040902983344926887782858525175606203519349317434302606991070276803526279224747244583504959206089274361575563873342711013151898020143621585507644201976035962334830249281184994323300476533494406247312907356361263350440292807165597179234165802353541960942398310829020766812554460338371125514743538068846769193760168475895296049926117107160452815196794019163514475549664627622420856340334813078144467816447651957391156160581198348212291116351695200615823743374506971830313875033185614015622350288570407574648924510924147148356230970817079244393324413812187536006140185035605350227969356130186909697955025911423059621162917092079385670913115459478946505388286036686538688131337700698041212798194582134935946886923836348853257367345879929831462481696845413454942246798513699733376248244645178832851419897990989399341369160184165519009929276804676576029181436103324446879829153712890045541254482469016118280383550777590800592601238477697670194708015491235111793420880817587366193185187928908461431520417902073581426865288828810664858934733699715104764060863375100730377508077847877259922927411238017175740895551409187212691900390968780147750258326037199477573245928214044660343415744871877946524403293431083216229024666172396397130972436576332852682224875245243317352756214670046787375957641382234668917674863662704236556389583798030563707713893233590377697287517104361254459832585265934339980548541107471036495685016179303600907361311047277811687336070076435315402990048109664460003998558746659624141432514544020234580200560741750427064975172289529296685457370373474886816903718917962044861226037758753807021550362537160775043084912777522145589300795130263193436819045212321419061427550148648576300304477087558569902391979611503888138001288157058620234132786897627645949893549638740805730985224855115881159179196466930128509668359246572300695606283844758010013136980938934168682167179356490061610965937593287089431128381462562247095668044990238367295671758989503589695169980509623155534114510194730445696445652859943259967449451546687553529741022022709982536168890509491035571031933674220030545477982475355879336575483524753160139386896493226637944652181699816370325905190760573538861822883759659867777076521328219030223231544980524001777842098622303366579062626895268748437806388130859054293520336511502577551165212810350128070784306009488222014139480082059180807109476658518274940152324774172243001700040077221434262838189241254039487633767562483710323001380326241741974135065476366522388607700139395590565254086874799923524536190152080267281055655334647508671269382532878827962689275994819922748264180603458919579448465894849279434140417901649368836016177386269068699538282150546787238005330700889040479718882187862650788206254207422983367023552869340699574602251969853815924437351384994720483663737442334731098240242272933012518361095948842499418132875149613780388917686848676314865161251461301327847636530814168621255053980675625339651440247482962929522935160537777189170274700570245154506631817356487457641978670143870600788372139865215494637163017585113999604678126213230372902738007129159804892868816969278746824383971837946613513424323887385561914660330880718977315855545763773389615067795374258047501892446972303919043535268491706598834410878144303183374029714936450950143108058246615121678874272523477407538207909240109781903452456625889116633470482643873364386701487742706597119371541131725894096683601987557170368476892507440689000586349912421676322529349090345308452800279601622781309949007947462755844256702255865050987369199286511992110520772867161493667731648894437654976151456400465942833722196907437316920254235585400444761413477079015853163138977299510113502574646598278090720311174515735255620960169040403108588224288137227619947800843644998226953812661442703888707489822173823008214912750217229921887901797459903950295892371767825668121002463072713741397212895513217335785888609095769785130446801828163743602557194177712122128393575262169153191977913662685698380662700703097943527291664833469453783205066845294604660119867612726942052493133063013232095027868703823053291635149703142801152935312204912966460831662863431977994424709709869703449595679843343877420744094901258198825016464466164981293549354059375313639740130801011251394608553892176496038563939759128930077214009245683433021013281909859774096224315333476019942055356450497501501992113543491960360295303492666710699494032737302532933478685392507200239398891749026124394924890187518642214414379426172263485198823917683556236876049059960224422113566351941352042687619144893043880238375348781708071300618429757597799962418641318311956529594361951651020433741356349785754270861982213632392693940490362414525266775752099273590515684791729560322222891883989223772555660992563749792488967399022209726495042854621245101722325364887199337558632272359825684998898602219078629486382519697792748587332389176412725490460238568587555185115537491394314247101877889245874297194465443481241344699721999798580984421366834614184153093798873328584295693372401045302430470764662478364525593839423426638026067823525109743797591218541060320876742615189427642707289556773041260248789116542248042913028165678360447126960955117076042620498562054776559013634618217102144390032640959034731093117490715218360117063256013616538050245356538958257267844567693616506830367665174645673894124893875383530495390361965965269552950325031089818218189055867283353297622690323768493354040021963705519456361998180222339193045965967311216958912932579221710314382923563202955732009195426049543049213530327415567889076145875079655658812960283500876107112359261290753610047386725835479056354490277340244489962311587799621591400241927340132095450833192144172231773617601913665676152089759993020299786406275210861328363924229527838301399199531249708904119036508733091408737555286129201462530381120546835671078419237137951866145018220178494839634853576914018553963587915116184562618319290046291541063366412138193214218436187787213995683320846923815735726695728754613863197299556223812781897278385598142638808326869261944283885995792760603853110259406641317245727310782640150455973682043147160788898226283835311083948365672626343223486269551884432190114571449528469058258700663921789566401777620198092877735093929781994729997121397420286852732986345466179204464482419515807640349605252156806085844267124232636494266583629500715689002018007994306248642943905797507209992881083034951778789117067838002750273152879106893199731538364617726705820502681215457198743029700315006843316828304170661323813958688031893182828936868258482319705004580995129515055725227852660189795216864777111450358356615944994356513382102868103253478481575217551009991716297287373227075767215368501776896074245139774942657326857534806552956449562148970205805428360542695770235871805302391637895289059884714627021459111334554883838304717339493632640596505401587772971386502578546525361021231003678461771412250126005676839350815553075087618500971265013231830607752843976050523078443419224079668611471544600964454988304989326886754190974202379868318997838567604825503830313269876293647073439071579001304180079737181986932460896413811317772820701109037927164537551466532608750929727506299396761432319021601982264124378051768361218932501607826690760160286246548564981504315920733828809249286752547393024938505025588770656771274864184804613651939737729194932201336906020284214601351354365629772155822059277901034165125129642640523869290379252428459757870515046166042929644385107688938253326170598760838351508542363437589063910915992637211014567764154480313569952782063021408053074224484009405260217198669389521501992817922996959541216153985090334164736091384911167681662507531045435808200228895400034409888136993443794659774388023647931261948247769040297131762932558151184773708864413134369673173531858609750509887784219692897911694158539439989821937883561726226645260265395283745261152198317185213241102944178071038659597836422933804210171326150423241129708110664880808946932100083024576227238384584641948462256056433052050343691748649752234518667170107479450497958754159816733538142771363790401986643817419486083162704528970484496427275433133814221480779430204914116814065060619541823464774752767549895267954261203391387580295277300090242819491630356744936415775345636751711841455402548484931422968645171895102952436346571087969643885553071133460154775095398813372385108402787329743472125985268511412768743390113885576194376367175929952127026537243809427653683391208629253020344733601545583949208603302461715189844661582960782943815401100127027716651391390954650135993030490445954252447864630566521102740355158656290846863042128385908251930879110129280962493683543075104673094704606007491479935855737418599031773477132017099495157565674074340646192017782412075062934274642625230153213529062732103308104580342296525810383225425232970656687071199599168234097780689139398001084559930441590914845601572921370473693710979414767386039607307445826528526936318433007928432885956083718238972765711154911808839949211148185875555915547383812120624079658663575936599149869141577894792511889071574186232287659301370959251123777477178209157210339560953988180194918920134353800012298569268910727983725074293500837365049289828324827682039842970662806186093893247021041929154815376171664785247022302452793687781124386599658452041614562826658907408959375991560583383074979531350048352831052542855955359869264367417811021594638028147851495457419804831892004922910429850250818844943576575220470066768035596872329584673971556223628893055589807162904889145309181840064004378012846698540147614024188783645266268211843963229693457995074103256339121140287866331348281385268367244416963594472549038469316958759318291510766932504517478877943676822280067852520948785822232372564561395988353783162748098253670977429750620448935041490307638618375723331270843541914263621582054697700671493234014679150424935771638138342925698257840680485614882797494619726638886695788763572018296595214107224635717594684089037377899838267307641185405026377746955732160657854370950501487197167068069028569643770689485573393154196033983591732530162830791268436206489066883808499606025910113976220016687851114968263048678748068230784361834020859096539647632856131512534681666194212190615075152780706571750361640472732862043917815813723582917970943758154070030912946451794921706770862148597078381044255922180852934033879781828309613419455462184070484826516516270312663091458608093463990750187584539622345447584125039687302547932819840216241489228669767390498715007447031822602843599970630271083088564554609114065478864653748188486390929438374113549090014730842582045944778877430996910626906899523150817683595752916331638387746578261154156416711203848965698486704489554840282308745655706299379108776868320294176795525066926250270256454381899437706094655517453454958130811157437769686450433895740417169411063879331466179644136023023723769737989511314853425954991776458188686245084161744223897171699529643940749637303439733314153970550761466925778266360888410123234117858695359695562023058655384291500412128736974471283472623614343083155080395213438517757239276979073569442792336732734730878147235449171167017981594351642073568819938710587026018958641890857121575572150520755416216302657790241821783830692856443199924310640729882261253702337348689827624480075881079604913131553424359113393908156775542248240693216048754630346035069457134162765165210681951417070197465370163461960692771328028738772945175583425526885221265254660793062507396765782798852669247794328677136846467866353405827494883596550476574605489940887302909325887224741457794875294049505737429304075485350176259932724935340937517991127047445226900488115103678830037837194495360639582479350888692984155701817879353255258932989339787673556359687282051477337859182670593555718447731873210440068856700172143169183559407727966375943266887314582918465054145347849040835848559138645896852421901463348868159325072737845144997947680707996134562103327049393495831128256110919797402877201109944295391045887470772348565600782728902875865188473866358496552498868983783827884550766743742782176341741387895986384435864310680308533852554742536405847722287977546797796847742153959221094846117162026431225602278478316012019862529666166471124123945439780858694226234796204548269290348374171408653276067858263767724219064641710433475099607673474723562762331750351665289679078379526081919539299757123485737240484330749697794645367750079087767104577141113136156617981511190656378811693045271614340972995590082513280186922954469046454366958335988464111987802503430701654049547913857062788949327828058251287972543966943609204467305270369284957083576007239306176358008912234557463539286477271589416416733259586907006115161242768212368601430446523518335682285909882158459781182824071096229978648598530766051734159116173363883857571061931481094562319178878351384963725471592495149036225061220045794111508594962479431361909794967609958390871190777217041522770849780486902920454482921990775428182268386830000355239635497480090921554487446587658798550127017354689305143028574754367399599154265012603958099724129618021654026213243583304603482176318457598723449510207537663882438120261505598616327444930738996541873305221178059761354010331034257922653997012679167645703329137095691479125506724945531452467898511981046449828764388742497577886651450361824142868592998307512637082326112841366967321509233839852144791127990377086502509761407159990099299446941240027332798776404253731442677722481536336859141837585832012580600780801258023711515680085719923340577150745024544829502925775444889068610794347041920754343738676335931504597799246697897091635088634948809984320175985396800894268535078006265133174121589427921319103298455666286867383802933691842434086799841902745111017728875460971985787726656932555762278739094483274896149352797351380031831007531195089264379298984071874809231574173334039744757047689000752877239648503689007184916585272936865373498500994028010264116889604222092487647594387360985126261367654552163881408097910997831050196908619739655828241406661109698683638336936451692473777001132950823229365317317492016788709414575961175727444891340659619763968770970039752979436742137907512788008159823831907550298240750831078296272853067274708478151442085223241800852480152082689174337217552367619650199174773473046636327072386423686275538956412329893294677542239945591185417947945841279848772586494159694823457197888024052370721857107209489944531784355497901765035221466611458062825642267479149844703898823996089847813536510064670228699281932063139427851399785393834085265414100868920982416827812910897695457207930250970087217271326934638738071671527640699950037512591445019792639044654758644363275406747004675368595944113508044975902674920912258753981316681451781560378279973030988151727100657942280523489673216777802233476836146698038064543424365111555396360371778795377875769372314177837109305728120629677929558356356619463616129808937332214687259495548542648282162138634990111616027913171569490239337168604500313032127992935021726656881115586045640163184129415473479939173491012774461565470175865026603088241701970562085839922704287923193080799963561862446035539501357429857440596478669709756429564267661901461922168951457913308619718373420369154511227903788799019741308763466385482903790854156863641101030025715812349675133503853287663991823389213166808037141372252175239243114255359467544116835634255987633674652140818812212122080299331039391468953090554682358309021958009146605198807334948509752712131557254538099244806000680653771214277881958315648992938177443674191497107049627863318647477219744651394357217548358754758938047414961774708135949841792987621199824667464574650618802015450250084207747931924428636548070692063175295542500627808106280692774097073237314216738595855197257806837965834032750848153880886660788062907857112830270729699239867141965739781842264878055306460057623293344382883435357496453262988154888158641714715405364522959375695824966639628822659231436470039348886671944274504836127884926567471533360644447440931895212664880681206699647446529512051738646303122359129724247362329691317323866279551753926237789641364402543636126078172368231126481363631763746998541152129090201393326306095408029833776052127601607798241612409400493659783190318936891027823366884533654003565494170312578672470898080649007321243512351375044848023444497617720915783019012041635151499169340338807707855796891515150292115512504539672586987560159968174754276332128007980482464252898117074501633096444193211886902104999292454994591627811414956574226628306539603404243991330812017947535875216068877403376271480977080673092601861400895509961976289716335021051530112179250739514008156079135844851466783737800101441868375692231242990870425192932987537654740514662507161958335419224155146582689143048894971768486006841737871695923622149104727814801248390642055534761537553281577401852254179015026018346487640382659620517630131508723054599059871606221139561427143703944191314478631479496565108819166075225431057046849804921264266483195905007602531481078189431092600351835772684158742655812575070373688542752002054048547600893197298609738232051972161739191872454872235201881149717932101607569405174943735145144885782761700797843846819709744574311224896094258678320820726832621041510808105037154079393219679264846037882511845552359619533452110761186768066568802359515893479454408016999121944624050692814744976364226332231840001526043499180176686096378485627891057116026023578410955631618824468567554390890034432725118698886275521687231178297997052005493963537840503515146572193022037756407511589703357181888012378012144289321287886425668447604833110853225720564422984590907726589340912048806524387873488297437032436529216500739134770552999276054337379959974064772658807905307300172229652380084457610001836636019997163012659156690524007718989637309881358385299880141644760580207272075881650826309486267380348984791785329600902320570773011328759719546509050422488143686139154615320224420387612125637202780400871656027352942529580790348579149021358022121152660330331468066162678029057127366315569784826215036947492475208634981425569854237173096784903920056488524437584558441113871520388614895259726232456878579213092090168235838311464430283630253983401527748054432919482370407014925099729057203506009174859268317504882369039121477499754707938271703592733316535899429519835150503832665843297241024576706322016643855340624905456348836546024302565669379420012541367265655125256274676336608602915200564794330572062748285195652673822253039372305317484025231721172027116167832713100262479261544951019890466755684943886665595985922423721286687754041163790406012428580611574543537473958446313225096418722678588239236287687342885709154179911881847617527070657956237548330811181565389720765773014419080184326323357216892306675639183193814623315934383909133418809078819483027775074642601022216548001091813259119656507097178777201023404009039867010541626116200767929157153366976166299472776713573186496434107103166825263999757411448623570340610843879817167150684955709313366954331238634663149496353263699155002958066980279219023636368129083070761434627052419224795529836137481968752973396707519532689485747561844828263312503416491529736429136703704026296986209469344899480843655492904928853827243314400057685531105702367627848478108554742885860380793204973484829251437676639694441019357892402449262716986747706855379389052173541316807165672256473709435425106300297045057976728626892915605479368860673914622072627925254193482344424903202755161277636331645351457102416757495489778086916912451939607393691339448196885257405891258598730417835725969070815618732667341617286223476119872978254172596394405183752495319653255957690192346911050342708516258654047588522908133853489691949425213719509694494382374605021267239425979078650955965469392246016808824419488967337972519297937995295374679107518052504975010685586497439506191152831179584651914944561596516760953041177466421613995597791734335067779708790610756890571604940319050001343257058023355845814970967596494669105159783111045887346802399818622732542047079491286596741754362723304085075284037618957139910513145996637854027278563477794946485401573192207578161321264387964004219717798006615127759566836500527777040922959012613535510836620933332893309015439603306287126710894177526692111852262277555923354493087196012039671510838505958651004463811327485871934576600351949920977072077870840222839243940655498758839335007236701280498843927288345974609828193837121174003855456320914731685202231640501907925400290599007403492490181839258434880860216249370097977842533989759289023362118432296571703818735232176051195804071351856417660010052215776506715996498778699909159094095458558307440239074926556086427665214685270890108378153220174524861892079042584810833444760635726521860407743855584872184725675133796251881677887869331391606094310259894509682824350294043656892523573892291296947185260800910614513545092468700798492510564316059534003004860497888970152274880969045382704073722045085858302417092873644716857560059245852999241261176885289681264660925100197879254477149048127171126866938883254876170693467432828081647984490307453224648174531054219875674608319539798223960387433958222686408553697033341013765688518145628006210480111033270954644854154628014307552140027523360467909149031671535456687349929028446182190756979782397738533024133798740731649435640068628071935388907990886476259541385006716168949423014078431864127671759869094067981750236663242290797762317050502237260930346173581671185339784880056119247778131999877705883081034963998075148111394307915336593486468755814102779104669952809772502494522059181895113919550063528038899864204846356103489809276538051757353849198132942315637398565925306796147176909345382269573647150404403950467593315244057817636823498641137298547457234853756508893155320258722411802947733635585423770882971186127810122738200538548751665243648551361983267333860241128291596447629298332161097366392204073062288405688504415310115551879164010914344037331363341225815904217707276994825217786650400068823331763453018139099225210024730901341774714569429387467594668341149325605118145309329605968300684645214771961026537611553203370813121925733577838460069932363529342134819234015300888145169939136259672791025329619667288489276673122409809029586020416825686376517135118657724243500605471647019920259601731801196259207006767786014672491182104490846331113398883870983932352651164646090405343028331172670626805718156813578555142023853052734550242202635976381626104021609916052122018290587421031778634476121775441591625518723722118482642354758485613197546101366751460878448126390099005898319618731145552300741645140494375538327195511516942434786369067946483906656915547146494952236342021891611038494117261724719076582484531752685669292412478864837232380850934938205069956848096052583647465847746360504707081664113972384314251312191793281361975885071782203037262761020415393978395913072186568162783251147943547225417754834752358736333130053718616052823455734898092041743136260028836644081886296189854985543176686035691813351392353233689135530988900813873305964448868866525492860259891475434199511486997279736330861506316245069184426741968408788971644023261744490635257784178829112293975736695884377303222447151498532294576502564909333874171047915750796298672809786420741107253690084755695344325409754768377173883661101893250046446493221437172822329966630375618679206534453681956363557261789143599894321770612785065984875784043204438095879811336938465545081066753343421081063552073908413682284286430603148933406818887113376325756097647959071624745126066139363027554007329219097168862770243747455745424154923922401724847430462378899316675879774741207965867678200955483365293897762352537829288388023606823329610277211984340716064756528585515539556836803670212875691414623454917830876146563626928463062882916702298619565946876001451337043758427106921771516544833195781099714122615771240750436209725145297020362932147399367425776524318713412635584346676222732416635736980501637616972828223981264910342526734588872355313748880574637041573218260834323056244883068455819913046784842344451129502711109589540271257810293273051822959483867539192199247368807062104715696422073609324242933626278783074780479552070777598847953222304702189886172795978283515977175564372149781690690363009574359685162428585296425606316879339826150894513796485785434879982071647312010507727691831782074807479172038651967895927708658486077484839753859765036740669427932868195332031317593608187131945776408424145236008585920110457346490615344681511377990246779565523536781532415518291459081067122504878978302598612674577715989897850277576811493433810748661798159798988156352055134789693145038572672074245546614069140847914636081627921386082136635194698300049872090498809226211208765068233533048647353253949483000012046485106852287795206021644497808843932200083471685261935658203311204065531486873106173772525715227933103423637166788290017667451696459359196062906056742054408924649773354370932480638927565370944911996490728216126244929724597999885297888521243575601886342680319691736496851480803793463480980792402759080576890062683311734964363920694579518285508000679542305811913912346336651299645563471497118981042203048484284071354014801071278502440614366071878696349023226310395131504931840585232899428411998606439734683219446693679478998582170696870724708250305342005208661519246004576908483573515831250769705440245336383132154752565531731987219791396830662703264258476690545403228043481324186219919248214896264519125247277263619478800780669856626821170960166574425419781997385171381773671724513696181089329115508616439403425178974230179957497540486787450711245670803344051379690493253706597532684591941728337091377455529171160832967461034739855586746515639667623036686097192018780882273491002242354990290734617305030603987409589013280852671367344958737246049005327407313175718395268535333138300434860721897530376373260373973654880774570786053934299237741385863048655971964690749269004042692092011607692666398534765324679331093967634475472813450165942658774600438244411394385908004369821639742250960158618434331852290260282791535147957797732829552260406388937170291105710206918537241721108032670060297222443386660022058446594157866974019332731391855642513912168407211630684217153414025516416965299458679538484951593727385335373414886966373360833636467274796331554389711531891889329375865153372645534377965266964029051765379046713232791475370508763465467229853632162592690038508850593916164997051894433369127442828617707434044461409081812976185952681162105030081512367380559434880137103905264724144129573971456954372093631154856071070304576899451184443591658446976530573444825102330383681058771793152440459661868615212096600650321704676464589607126387241383484354671766953938303438600442931383765990881984492165307677816745782916159202254041369867277312648074591285063364626498479694020548341830248389786482453913347812420092933619273955074453953250438841569231665650169713217325480907275184728959761402232216618967805679506989255860500693231195356616174826164718288483195335157692026925065803754651140947672985768260114152473688931279514745399339855244264778921405702670347208833600538788826240364168619580810579047973566165830228866874285466204916486876660854367112486611551971972598314850716198705432413417206968069242137714101181386984789640171684817229503528879593419397004654906636496193703779287139505434952832561382404982123356438154550831588614160964667131354942137336796235109765283185833497616087050882557564384332028845988010981369067208055843797513450216100241020866172161402758080853379071377230585286505764627672116815021833517895525947136200211263083291513398843988581787170992941282919142021248719455164416375185681914336434578649627532773396465942112688126950074571028028107382419795661718274930551608814112053574499807427567317543169953986841673939633215464007005763420307675810280669016981297952703552303295637098753788466718991338947688381694553416281875342767270546999496218348670863829796573802567980834652124111574803313345391065106147614448769620742823059579296347315854318225118557312198914969123116340213868983118654620134307497993679889610120138804651646617096648551374674497278413467159642319359775040665826064514911797304913224589902595555729985914313810838608809487801192347686258463860691615078486947794982469363735225267566583594195624900096829467603264148900095277984991732001440964769092673091424534614029673342995573127946758332684418531031583565617074191791534113602711287162033827040547981410915184235755508299045768091282371159430309038931985900539432410173341187537071245756775848743788626251888307396190978205481642838455943936649150903702269563262092976162026738596648361177159857844836156432495227959153292958919351300831629001070068694014353769462231219674718978623690071287758761385804320351707459949609249401475920486484005905342770937554177877162128062086119151121779577843430159981114015221199522557391742680315677297170261863186583323019423150272785426195202352027039994371072286764334855183583343439280898276279693418046797185009623127753081251893255155147464966839688914795123777182221366705808517498848523955937397552877783726132108428854979558312211710181934110379017462061429397041132206991346638143524921644202350296783207577227636806564362160004647296750732503622518043217738680244957089462690802063364307671654975289438749769640862057450839363867898262186279103257244585517213141824988888736015059475647111058024038717195024037601552104930327568770793220737260444733162452901326475893651351479958627614258938218012810627607343527373542871562536653206158863994695654125212539560440883552685023236266731522986719684121039733545809758128910973964046638073911456324323961064125754623395399569455258368632360179601095291730763438464383196819617781539987659867059652526870644040230231325004473224657148245460703879457111407556765105642263235579354095128518692542671223744900240638987070660623513700675325874083096132205740762220049067606026288130737547623616028071222667374932620681878832717965614135118626868898040282947291009581624857679126572473377290937471881077965269021867056392798166824157819089558051146866731148023712090178747152584559048481680692201751023762248132824971651485822788396610252701716968382855078688186578336872444257450980098198419081502888940290643091637105892878369797965873742278137258592952150419258320025094049267192681133301026766278321960043865085193835950336988669842314524878455476416178026702800544245018025412833149181150329485811754563565598101005553819597540784987100815615456816145090977405638793215108667322110964320868703278198245452526349928949326998458947564273454281743025873773529234986061774365839784746337442959982971124998224906113878715209385731092986098554526559653677662218198838917188041117666164139468423582045899869343565702755020379485393444029060991974419619467870893893964335605382490808866595116081790249149002617155991603543390072339924531326709932663067010999473670599082165296580576711326741151972850149837018419891817411178539971957729006091050236653219584790121290232595798377811425974762421925115088959475484051122800918489198878707743813920228596644275710714559515353235574101242769264747856731656269213600155613744609020378520799617138318176502687171493070542445368217233643703788802268710805388817899716473990048518710216767119110456360138738054960816318857685967367417363807998006630663352570281674329761298447916279063249601300576482534493377489250982486990183387363244232237597443240389256425534565816252314064569383586403312914266243874384502507864210062228102849464586164323035386575251819657002272847849789977826136790306570289376201141509743294578262574384862139060978581748134624260433169544288650291116288603447054566264848442402213861781484566311190836972724320364446361215604769939296172511636990824177366198794727639860413605300879637871549589323701544760444265611997444983978675343784492974531177490761441106253615973079823741772923651077075510635511091847659456861774138913504775982381840860900549758501801919607944830438503514735226892625227323565250728427258469891207478947992094440140092993890691658467820051167537347371903438469121850352826246073532076647463914691126937772343594993824708190570259704889740586232204769929486432572499485628986632574796576712543479249693141650960175053866175834215196926625865575998141728979460504543566316078536186013061470829316844378741796130049018189096817310872932094219564199372585450849716441687361848477039317189807721164738929612233274758002824783403335378737903124107035951002071077124925813002243016665091478756787705693348794235239099510973890680728946881690822923081844220204894250798601474120754587093454387017255403544589803620124009824785597831354342163786574647245385260734122803477864936040315663880712142596435675771844230932386636232764560278133486143584933459622024593956967498818962417569466247855813836359881008860288030760542528343864938437786760426627886147654917641862014772701471322904426930402698554511561467156263343002737695056479960059533986345251707676499547318688146342144711617797843390843591231072218772535682050576432575324186279399189609618865399426975832652664673011776856075749763693037295792444512803706202068087541686741082474321383701841168718447700706153426839546951353434596088963548038802915407566819635085847646975359216041608974763128177639263892094948657936765173404433455873235135951066587621400929933092910894498053845753390809167510153408999848101159674480571032913730646650835078967118221416213315884721306084437340694979719571642207680094958502288646134694633503655497002042365839654519702939303114741821196725620896882578240249623048879820209508617804429084959651687505344304994477319415052590720385502193299949150452868558794544093332512139131519136675943498409615295603217340144043334854620048105201585965350535545379604065870514507456802866192753566862464573983581274604756925313792499908366701413395439093788932795446959712522780566577561549649082554165741792648095603028060204057490601422199293541811198325771481786432679439772963103470955812337320645611467210357544855593730790777437908796476800987014610595009420636342312860418843938535700460132372844759899093371414742905735014585182733431909317495609011778537374807693373809911169398749974492548411518865464793368003147244851678922213724289460898076157115615972010663384464289379392480237090165569286212673316845199443448461076556958818594075818500722179373138962707146422686390291892137346879273986420529797368234149193467648842560766809918017054743478987188086913024384723438950847850301505952427677595323051781597564958811494521867472510286429991885314945471308219017058342496933947493358820380220413883662622395025345547198063413463142330973794649243893465549604638080246957601063374730414312759151234704935019125392593801094053304161714716539696109392441822285668387527993469657015348393187403372116092824329111639402415796074935970146624111661772220683568750984857534446879095988437992953307884144096622721638240012975634590431870087409535669268579034094804346494579855885396595201844710391251474319292885732807630488690741182724218982733183799892256389664018099227842698581487059439685266318944335222159658209203358924774842510325602702481852960697154721574232971976241746598275358110913127765833145453762672798002260783954189291179122870076010563334736721288696915160783500218623759793242635988003768598027337960996753915278341215151882846572797004988086872762142777119045071069637380542792262014550435546525648305001763444216889430393460495908268131880674529338140705952089868856131798678084814825121765207925348217832690926293886525864370364480544239509108085205016440107942381019243312141693530611500334847203186348357566087156478410352232079975747921988698870949472291827200089914374800547581905115578697916480118777648257496996438782970974643094257700904865708483683683972208313667604959975654295762893538450239904619133120568894703376781503566844871366631701917274687618018820912251029949898524131714171915127713140476843242684387122490278391264105425511621769100333693426081210200924287383829061242077367357734080706765647224658647399020500893664628082405429543090530018611751913213679869425993037295601217102963924156800028423192021694156593004909392211123985526619897373689891476690170841029948211388379777046622156611335645679727566535010901910881437691909293973284841882300008677779585605936663632307253582841478443792108540494755676341656325342246726818819308137735872741544569911319414009923200383474403166521309126594583295122330064316196568324260813907411704003017899636692168521154091446279511707506394823858004657588032395504269215356152727780475981254298177700334844228217392734627297251721956395624742975591130589557196197308769028534592348245744346887385143939092287968038850969826212799551616432582756984251611410012368577482346437809561527096458773200528379213251771833629648036492507781686003131659716202195257850163838627633036116668356669606772627867367778119974775781016277244147625719777785737366749289239983784580903295286746764722432706032243166858560209963984520040285596106427941050072134609408320828521891966262722297072069850746904626719185484521654882517903347652509424115976845194621031417219700764598829854803272994122558916992128433347229562908959721945661210234086875174596754736918057901933085164625691722248089092165398868068710668972307356874103667167317220689183355166528808131642727726173552156292163538887518977731032425826415419807824386893304892504669776278427466198178200429899912770217448736800758026418206599770342574146067110713176076104037183211575427134009646466560839697900287704446053105031992368525523276852531693438676004549182987433436748008025053984910156060041746916914852245896664915983568083498756912410902985230268354692080680209727156527442319852482204747449623122130672460793502371265386932889973000080033833687709644360915593041143130179936240700419314399844801450735434383896716588528406230989491772986828467307875880120608282881803399381715641078500463693383166190293631136454022500346395667039288088740103701803668664617395414732276343172616232904916809605005360730625254484335012147606045380433249352215832640857044499239452711974170669764569873632079831247362684578242662551029282633090409508290491792060932877118683845934267262836375171283985448383849638726722190867484106857863066234064304971524995493287282498663187294804964697586269633576148047125407389070171210912718001805023995351491384239475544324008273351339875892142399738831589988381635527511189911005834570901257402299718674560828997856601445553607105047390805496648297091053660246593293131417314411783114334109630084728371354628240846085688990185948860809204863614533078917349640248071213170311030458437791112185938519110178476985087563735239886600105395330160957956645535472388326597712201574948571440904126703262782140114716700483996366177869321593887320393795470693389939939467329054766806014460646667841795636276472161312541305571871993584877332778733350018594121729313387331504100252112864418902339704327380249031494147838604149134407658055693672217232511541903210830897204858695087183167573358586144761377449442912518992146279326125147351488734815252214293497668739110225616833602984074501151495758997764537766659676491050933193032900884426424073962913512116680469189773591023726369735152792645059331528136080254447174820100419185803187146721852909300003683274625780073540872756714206944462209553895224444321835666231501241091011356685189010237056849403423409742810413618997250709887484656337374651326984847070714065462336779996699696443032336381324367442771284565735479095928846375102350424596754755309718999997579756125495541689955206363051505667376959237418129143270885565073714699965841121564050100209622696244254998984770243780675264498100928292500267264154456273941511056958054580841806681169214087074240654057196228403733314450845428855162635111643211784392023578835153657271622395738458990903899468710315000830027758348021637864565848679457737479310969280233151414293172625786125286967929587655383070901696358064629996749259094040372350197020943054570332467557978737740183009122574286746810975945363790034503388940774808083059853480380425129325978870239796180000341621807892684796939647464530806193432043075984268562146507797556929531273948996579416781751920982730769202842744232145766629574467866744453136769937118219381820530670901072126299819674823005991236173976968127473053660990991598229679945499840121822684722434368828179704425822612323073067093850964863892755016296548916963277712289617210156494928633561045301044230070213579225251765100924651091768432650642707253301212371465117727887914275741828063135744284377768946336355952319910810266396970883083781731760592687997304767266759981096619420243409722210276516181266178112364627136924947335180276615464851253395073783304533840405770745373035010870915498971532814619467673863837600909632589110954278008986545482958171163569993521473035274704784124834136904918422306243870747988880141303109209172560911763753278912845624594930264386475508988092536681460285273477828956418110907453004247950036668392706840397922622948881351861786506478081383416290242436821290528308121329215740547489782698037561925931387968199676041416599090572917973500673483377688956030118875894814852365996509763558788054751538236577555840732081701406769943466763253579562416179264852582980811084511249180708176439970776361765381855703591389530122148856763152691713804358420180378906937190455687155899487430511710487227948146366971343533088928110261497540809872622863561861260751754861055888707921405152487336170210503162975690293464428604440727665252841142252479896828439290688192930620972952850043184578870560762833109788438710906715295539803503818838485382172373749431724163358471001163504400487738601978545928816797391781930689180767685924935012991593407792188865859509693356626767209806989635185529311294579820182826901501859417213173598614636300391607958911693686517936901877701248285396246956648632709898310784864861567355078956438792952781601878202730812799562014309024305345489158827929257294030902719135457714613188961093814680044422098651295729543386173570565126443150258142898568026526454260515477453254857002973342704905963372763759559715157503019201084770363091855796073758547093639224227580350095461703640378983781204801850895183659074294179362797323082438687365551812385896093480528522573992735556465184911129638011473749689243855212711256177963971395734585385784518354905744225341796128406641122692617967954516229819548368858010753165612177444629747169231666294251108593805940900037275815083667060439091643038821105074222146713269642631121707013240576222388538438076276935015723988160924654196279751259905169924453930764340889691822515348544634674412026708629317795007581061502197737000452919881419589580869259759021061956528988850656122524474823675163817789495215012184325919365343169880770085740883091047322608855454523720488703539603219770877604568113438272424987892169383502085744625136416849457017611706824712110045799677205059115933426446327172660114138566868184332330622790801975457054511923664363844432238287622023356722851333167832973553933545088573745921580454437844968910204984446602687738400855596725713384073016451410102146888529489200224901866541286597349385579269628203315950272456891232546285147121074609388566330223699348123441532641984406745187982881452671272189596297414959226594297717507737454771390207427685391788594367886285797156352074753407150099374361720306021733925944336023400306566474749097014088572357891419434240742628871496044696499955303371803725533608207119002108801985833381650841242713580867109084774388338357044054108487254598067878308678945451835802156334651697943863327709084725323847618585418644019111534776142095114039369501977355217623957377522662953520990902398567969427913631240254134028633186050178552013617188791142282335358687647518817387180762944985927980587447475324306607012557506493833529743608836368557511906167520648681376503745925498287292702024215021556784117796609169705219769310318181491196628389430085168994763342997050716760437336478046387712495491488350765387390087538255553502061797926117009084093406653091369287878620023038120441634402382320125620047080088803300087841631285900424262283329028729590804433674825948406172441419840000991122714330248980881143073296584143752455879015177993002349456173154275077453865823429117787388500443047631838343642900669973410618333350463008323768273835126898859062006181780828049239991221455047742337322327942682985496660519250061507894283539182143168943189596513284202162642707945267958950041106490184153275678072461423930307911844060327188075456039048653888112904212862981011383828339153884299586104065014815869645022089309059881051697199372550911610491718705894138919317960153445892950194177829397023041560510098189464408203248238842341552423171966022629419003748771737642150749420082754904180061308548474089611400000280455866216269878797552409809055422625314060960068173736603955791562644989396482719389974872602671631942372399331827757157179256461590277020923786234156335196531992216451152522099067457083700434664422293835225896739112990287705084484764758000371265582317944570335715993830356967123989747373116355002652240239034144111246926324091051217785090502765295886700871992869862509935419004154245408533099472036265190639236489825659034894551444069063207083819889385540669475310481780887063710655796515033792382656267552202656914698528071650772204659290992691110184599357062579431181951317571095327313078869246489749131861779920542930871069551688870034411432504617104417828114505116521332424440934387950718414724652421519813947001137079089418840591953266625360340387592298379077427995605676187987875922069385974564945901644739238933971639033964222114414593044884645248496359856442787981887170249616595595486336331864751682872240895251247796242329489538378712314084205944959860323027522328205575232175802182099647749465027935499502338098917644513271268370176082985860700079863941624992892975807273840752689094617104208652571698206462630112746975778089575090017695996692073263606704248039787017572808905827273825151563309996798636374534138030844441273198351573184024675103046615130201639504637137427391691789227909640038988315112363142702300960494424513339757176810355254380186092571470054028505388641048534770437508591365438261773284834392004852687211634658328711689484403675484089560278800174823147698722970230348033164040969029720050575578545257593898893802621013435893286256068460202793400424229391286066956819673704049884790910756106108805248137431324247198231395599493043863740379698921372241399285327688549053044669662378297307909617475257763628600335034286242661868680566991988339768381347623317802683473818629917791684076651176816540127425855576570701210378651279771845187642511742719905643862289116932290500440295615787529949507411761371930001117627986039018865420572301712536182692051182423310768856310127516272124521009522939017614189372534252406867681906356421660854021656109422960915985688718132210913827323893870919710733529149933403533882772621056232107475280022002103829363276568480316160927924620720448717731430699482952551296225900146089260018387228752838889487875170321090330606137663953612869499188298484428341589447449873981926539565500284192362903918000196202210209359171306804018474527691328065274219133141743767009716385983138690405889236667950250248031580132677243557995874638690714665741330411473925557708201732289936261511016749454791531607404891503083565609624708843952611296060839767329230467503897537452557442320928300690874373231065719031278789219635354439054312142798869046883591616425860246924977427138830568326251083258906109100450739884790493851981704108622317087577979935241542612458351071959194140229961615915036457835688958369711810282254115071656208350898839830045136359927445304028244892184608800164187066124032580052920859638034305944845598221552818733759496656292628492885934854447618775822547052388843396490506322626303797132674893675536721219660232613524164334172763550157497785130297581370930974863349544588330348237095694661592301608288770628856987915427626713220352578779562665175828820888155681759786189399197873526359530954607680530274975456222913812130975059703225851079894101421870047442609093483220646480756022765877004574361227559472981886275960135856376887528387580514949271399607925579187805766624671734889091346942649199513843916378397308873901100007431962395877142372550688046174149413798561850476890058200389095668838955329453836333816490725281540564184714479145604743826484982061159805329075709525994468862264041713086283911362642438791375271626042069244012799727661645786181890756995954546086737397409273141978717900127870040003871664096499872729995409677671284868712662993385283156120031530160317345488974714234253921010261554392943975350853734818025513339688309817955090409568958898162920386002977911826674993778906258327193405844641612809644211043049098314018655336873037506649475672975524070707110041868174677963218854487196533253279469039299335020644452391466265985383991459163289132215551624148122961485294170855269798967887078520582318670465878726049438294679231284392223875901568591668212287239852007632882310691295261046579181858638125145696145735360508157349460662299584411788992656473627119513269534794763460038276329879049341600758924236861726142199859003013473324111572723652881087899413231030931003309325584177136677343397405997177086760101383035471917114693317961467566086922182544141491916091688327591905570232683756095375558677532841319894039940619123768188015965779164623261862287111718841888121979002709837248251418327761018620250883644102299222995786778592245089645303743649869572678269587075552485144012379308376493634315774177361583512739245032121510617053147238523525369848363971273396849695874997685903558224333194999761043447551397941008519033431387860495092131358950465286327101735397409464567261084893663470759322145028235229108568430763118649380385182346545372635764272842900061602754453683962915256057061898189914941247590971089108686023546055662259122084575562132309277652664762344744054238840912490698878660210846274355226137042144042370656042163802358451018785746773375629571367300241879964474154691040741613315260750241962302498404771101424812069407031028794937602495758043777942079420973994106793574914318421041358615057257216648207656778355309899471249585531210597507097007373671820669673579937950103366524244980229155328020243344515654210648093060332484377138601950238947404070113741509115277076210180003544132695601482239871592867115381274012499625183740076309285588917476948306735650977658410362886869321084496484647299455991112425141561635025499758496983581091118569183340490563915820139263452633298958388579910752245851697904111329865253144490061005386980885915977792677094610663889171084907622853940141346000940059762958686790176088896645549798279608911973891936175806764673871486493945980399465823856524071486943165389357418266587201095086961570108145490727271486667381602190173457038121602812686667973427560801464357765797053250394810899423069984520466046875932394147020780084939923187991955967838462303833460588812779256003428281739725701600766709437517402465355244767054147380889783782620106788457716121540410569952601103844728687907602693129504416370591414845935722422297863259212650453761875800869061074675851445457542556141813824448320135567610424390233010171479959159733444108343555684064848102384816591725491960454776548326735585241230664421621717870909961825653447968362547243673626560335703516965205492321531278285653350829485293065823752988309094195100326298472809191555676731832977975812164575764203644173164054713652729978582400277982007798888062446732061314005490862842000276082447942058023551208959475514380351908542856857314256032694966038492369078418836802136198781949485299844020429682201617576132579883481586706008627323961304268265698835994647116396742833132436681881121749874512623568154408882191970292291804276959005525771330623096018496563207932596832468722605292026476874383074559914323744835096042697161157765950515484075288083491743217070045046412004567314059404050421840805063573996662759806084760162752132194715036807466714192931595504549707772008949023904651657052844627621343542593367991863319734609500769282531096248047743713462417892813034732646534139561362711104396020692848475878949839353279829169367269455631423940725118968686734470943547777143289818738679007225894659414934908763263077625169004150850723478608056978447475083524768530853287235763492553705539241461947600363247165709759381065141270791377817176764327798615056219428629918425497318707099971155616350728534964757333140709069218309128421667150237738409954267428846393785472926931907716089683879496416576599606893638931968437360941343962592676660323119398772669507831054195439217243473118967830312177976748799963925261316421470901187771199011807142802012358697822487607452979666186279425012824992863851538194446462316764349017465908273233597845877622977854301714082313863402259547974517907762111990531653284712735327977763977433746593381339566004586014862098900063091971039893658318726721272971713773420007605842243720912765952701937335784169810038268015343156136588703484877158506883216807009917799910799716798339357238031643606431645697466952397748161923834364462813801060352585582382162559438037611829252423023730412228440170367050421182958676286390913980056965199194838598859871060428141662180342927440698482501671363728855407993056330296186806071048515220159716858240015685123830119779181796995375021272555160397420333227748856825510802628698643359233713356644030399343323206410342654676310583729930792987506391686400277998344984315110100358251882264140554466720951918959916980503768373471209445504324595681771845458505545639845025331800693526885815805231077931831969320473734085385605568057905062971702444634684831463353908225054912653037012640415928111909574246984656708979738662341708594568715370932588642826768286608323991376666817579350222349744954775891336774656230947773313000558115788371442740652971659931750713658286829218378260998637204918757269941401706937730578186964551837240114201183172855980781718462082644526953695457927992048120302678378838496271868162051607180578636392161358040178394028742306732263844661376928585842908803863836170438740922949934481915702107621807553618852700749129919814811207537814005600223467307425944782030830485985730681333795534240040865727723583901982268277832442956308753497800502314372782860787344945274541913795253711981472730163658040954644978137873828202232600863036360158376592659711649177117634816662609839609976767913054695776081185363441810816377176541989979189698906452483369171820066859755184515805609590921975117597218284272023536611502831881981285501372431015167353862033337514146662727484402828108634759377065515931504136629983147052917998423284350601371088188641659352379239559883076906059098578949207647684437143632433699208641874037378830473976675021545105756904305882314970931704630431149571766282267441442585654055612074648782116112687778152739519707273395674382725151293681781039613449445505696164570938393532095788390604541254649305766063503697994798954693074985722513845638572905983189073945959582748941135137549531593626277693115227794767243439206965074030765143682338027639645178571880189350950554958614088155582340642294858839973075201153207770705307649670846464238825725519029230913235965660207716082527142817145443691329702324792892394359034830875750442126814366000255459965206436306038813668837841083924702309261118163264277678156658928915852537494466760142480366548884021924171057443480819886192568491415996724951232819500544635392807654944776222224080513967311435150403933402416079963833590094799030974308768082281862517335649827163698563195856135208044256011592089816603074968089635877315141101733966458551293708763733267859260006210777391634201569502427418493000928979673980483981625257512884967661333322279041966196964567962882475940738910277401900505386242240569675430236682925180292999805683618841490617225283857511869185826873226505109799407489938199998767297666653513116046456683942677394702736225960286474118990749637121644393880798350806002633827840148469964576361378143427905275148472783025523214243162800573148860346994416210955484242498332081021617725147608875983276017903473975863872388171457314015724401044757284459500790262368501181311608402135271900247258460164605726223220783906016575110902213317055668372085394152182984457896066564543274305892779410658593048058991053903943915847292221277784417893603387138435232513757979654814902978866617902670945986894498555045992932731121001117377714517887375349532098829833617070922845118673473435252885919382762251991988015571218130390437368066536258098038991542401063341603230048564359451802505459848737114549621104722462445647761754915431669263706320088059204118872540969267025782361787179200394728748213802080206981610398424817449091894764214568364694141860271635223415288034339726574778605280312924407016696115639828555316464660249176070741478400192063731177352925549814579080798231502647975248859424529047588634575879010281963568331137485671687764403489874954921001740479880595774617229036239780397126422762597870374323839778900601912831823102642551519494367183035923082218029240698618295393693185350342716280693885026211320690901266265535486767896119772293491667200887995580670184896298236632385437443427477836026147121500578294117053447550704216224290952310835685721826280357034733244915878159044443277758863955002171433604350163667626342119787969147106469289285209897686586950531462563222709979797907209181203241989667226575895598206580815193892221016718807395727115456437820318693665005101669175754753043885804933352468959498691313653382417051180238504584295360047402081089103493017051352579189467523118497071845537525791776678050098612385012593804384223559865375771301695464102592725783825672557475016031822887098536098746505305332351951533507685512291513675718485075501930294483465909077907486957144786170777528727003454897676366489643503727458164205975364063425977511532272805203234571051242360726552541964565689987522543297692411470508688278437316462084160707534010359058458068682553049451759892022287976432996658243210353887787834277449716740650151898107981102975062515887203799517697403348459160080470475526985713294083307748017634382620196804918131627520527715350283168430669955885798565707167518853317555632275740490839765044790962974341620143994085807764884321663479063404922083671372205333231969614118271515712219470853306118968087073826008096272228630604736569727985361105577182791951440346849941899180711898588111474471124748761973113849395725228120977143120299272368990600638267069745241378061149487878964043445936879140606303524284163303108900677861585634204927078351255052592897141136041089424131841800699073058600180897498135262324500696034910984836738530463003383774606536017479086371321511321222399407964469756932635018488763443926179552854927370065904164109557353912940312264958439735911315140115248906500182710090031369443434667259615189975619899495978419379067474729744564724242963613159892952850596512707284257014493464861426613185775491560558921499927589355017033776463488398956706609313823532368724925547233786574294945911073531018498449221700784018534622796882758880478818655073117899370644426162847803401199647611081783017526097701636806398872531696297971716364722169690099283364262422006997824169432606798446467570489809032873906693829139562451161365357116348679377864074483012341510982542936390597125885600314236083111806242508030950129429978221363554350825531944874264796303921339630779092571479868498910501923220674395656803916133226440457919585995812702990085151170378166481990794996093355694998698647377507150816546836082371210098996695896980792016767706478761731091121106269276310284766629921036331219420163747939695239679185566748026039262523302857361892175252962971774139548724533047160554972488049697925650308962409589509276157771456743976064861794004880500977245952861550798758654761047249985787973212740600043034717131209187842987172274054368767974677317900519603951325837957033853211502780696372733705899581283903515184775995575242295666486273614119431144432359562654370221373541140067538884531331694049810316003979731806161305498084340724938613769194665544804708856738467845277547979071219941102001091525750355768211769893255347720058933876849806865066314687352858233616251062043917634246331689031466877725668447236853481711148381615148719601656162772548097213662911517605365458548129038736395536104571293750921325517399805976139989956357984910906229363179985903287858036820441185884426921981156489801226136973104433318550553666921976852830219372767746544335239566797419303146096847655853941434997330349092993795293013352192290048166729463229308084473535118381045017715791839536236298212342488795271277708059972791655931175252697043434680315122197360857699132818060182600448334842250456852558725614922095473355405323122145896660522188145432857150698845239012333157455783895999554900611558597152560609888035087407536655467563095766452564315441490401893342294484561624849856889832890487022152195926190815455329683484797193866107696320966450491794213625432474685266886473122717673513722846015697629874280827001981203216495896732473669492512402129583346045171925300384029146187403489388698767424661966428623029774313854893097252529606734722179760173601875270987666128633769208464302941486157155174288736862274272656673039268635979349664134337813296132308598274667187407330205428374468092543014762306421772206646164837538138317215805456023683968802025521447463334811431508996139977177139228498000228304261696760937431144082785581121311432806371270522713333457374535777329417707894782536173403805335210054209873829923220680167209791813568582970536528603232327100316705105527919452003858869125137712423619778103761243617639837675999613925431598194693685347926911637410539952098884978245358376883845468314590820776847949830898012724755522364466873216784727917138444858688977050398054370162601684547431649910813203343091329519833880772121607416689560475535876210281983380749335059923310253669419971292517369952119131300140917797146845717848368613501135773099075315202075581507911852632511782271345466024393579925006050858349676950162222102970789859047588619057728358538400849199014592697568428580895593617732493617806147638990305117622782548831185732972341011202327532716884768108467886703394416380858724245502765162733016276996568415485342875658011393077474364628479796506860000203510121952474716576381848442623888554773244310211701731531349992228553783212993411171946117414201666574457075787926801220257576894248604830687061846894059814813153309380159521354131994110491447585863163608924590177536456633721163654192147217764576079429660886953183504369867170424345724937411878490167340396539213956041138926149932111469700803260179738808780074553110156368955253873273034147685819669289905071646836429006284346541876916314498175288544178542490259190174566684511694516065568713159784378057918151466940128352292108550930718463061213112361557753866743759843298637807015945492169250206328378167495722888758850888749031359461838636415355896853094085235783766764819998928152489341499841147999010498257357223388010306577363741774826840630512105795307230074075669279002910933120864864472449009548102866624518245281607438924556884052118646463973929970657136556817095581642880825048850491659399580721509871613508282566324998224916300093798367793063126469165184206105502657717132441940310221577068656282376249900768656396276190084233080649094299152534836140301452904195123584051882444917815366032928052411167622609409019945450104411725947831857865464395498229970898564703215169439524602458510290831648370983195075018476000895820795624051811699826878750821187572400434032159913470452947908138327791651220541809138720707817695520189167073527313536130061757112788442497269784466559615323972757762672564725406269241308849692026004781419607381459413269202331541576717170412889696854298494272722699169663319081506540247256834280369098423465834897167744887222391388751226090093372440112381781176101026755627739666240261088615911795810071169980965457025543113429016930874850664679222496238891524885956206350629353218906506608673541446718719662338258032413323377255972364829018553501818861640796493981873489435351231670366871783110494590676679858591058990069690861434319104528718976628325868969689228561710114469702027262248635512082613637604981154898558234691950814415506415575500159804142887205520647690207918438368001123799561308757323683839789059792735061718196307588263120066313283026850823163719437819987292804825574114452461582267651509473108690287320810793956613407016784120700015028197147669442155673050691515996112801492732430092374858307867349032900563412402394233437854090282906810558798786691347218580572225936527852715794242375413239915780203870074182355999299801958288844998128726253336368203653240490068895195920536829485791572255762289102030345452475972750761260117756599181020545567914551986503564484628246886162117464165277016428555252613345870883543614379359274302908536272514476242578071909218958196833738228737263359568977427819623628049579374328287378753864649706482678604460589158598497847874362348473776335707546998738107577636767054360356702138734834947679648861982234039050812872639769101650558399124457948739298189743495277998635307120333516895931449595887531333864885355680547851934556408031003169943780643906775837785740742877719423719710954464072342501676747500176942645539933724350523583066602975703849909621650993923266838618405618992899481418940105800608870541641571380203360117473436917306705448231421092347675319495364436759819310289266200514273159607822991902921078056200051136335212137708998128557722736661445047691698701421449544797868372514731048422512990270730604379280959499878931233008084596558808423961675422562131790461603066180732153751131932545456484221826898262582673180260096347124748629333599406974422023265282273140337778273929169501915507599206499826774688323318902352086299229267473181488782659464214706110661392568149084699372531378964120115023774935314155183933121078253002214299900199343903211161791318257278569705920907485128766592857171188671722350592748014727833445110529745008483767683827629743417057586737526510656132836839997019672470137955407164191332381624672367640084231558900514791990065159238004290946874975608476604077805036485265529803018255566257663901973573540428050820368746148827918935924521739437795188522826650857608479904163764531005884501805610625183997905187701110105328636584392248161008625468308289980927833136157696816958799413361907489901492694207520819479049899149481040071024231689566676635386158850276646295708009879045124425377572220558596954722362216570890000916490801171639540368806227758379394149326394525243758507701563782477837749199905142861033360317572562808631316054616973922412042044040493826224390425037805150382589441521973555934303805521246572517288449842485609669247406945310278150380759066589876535662742570996984661911537507436156401829118931547457427213243445584459464774008748521757522991813555592592290554819176040506904740917970404821678175816801190755754093078188685779530238282341653860177073512592639031687947462826998935377727943151008352500748361844489432698634791003488157768248202841803520593462700845424441536111635699848168467380319399251584334538501942515346063207926692815116533651768646498360030360197270444189224404080448763895093597157690985898277581654174227962921402866875398206114711769736563529020839870809484793599544495336701653253409271047031673806567740148649365953900064149879570530831232513811444944652282144073316723807890259209705885837590111051267338953281315663591958212574360028480334638762663779123569113177447583728415707665940846379171929272996069882901987513749952320912988131403516409693238619804252003509041875822017496902248615590753472368803171811729815720208394267148963499646984211752870214758459906314397355000446251038879540379572307587918040571562038421591446916812402532949148590097686075621572544366664329413908754834727311576678030076613199964049909854770774794617635619300884180993051031543104277336809142924865520038404774315862985843655868255664486443069786914351110027907844693365190757391455833917930096345242716387193022111913586343150599408086724709942756277075793584455781845262176177821717714783272292818245108317524072913896092099089072934174046140467246768648978756899379314446684433271172465861857635851117082299138747006659781396649944858961168317574600161450579310889241821621457627800286943278229463488276351580545860811347078608377259885733233046838535199585289992256715664842953777694236918205105981915161216829276026073630548098258665875359257187029820035930289458687147267154638361588085442528913795855191893880723510483007800848710938340995364821369489013671813249092458174656782036459084793283567566261206372554418167523260041277961945439825184430158438844317305188403441441389545708152607557363500034689807144155458446050575748776286803505900535746117747697158964750103414609534443231596303491568704419842616874521953450160689176542885552754718565899957697199024384430609901306287977758618562631979452946398797068150793565137443533514215667344844981097377789417736190184391116137309349029939227763902081059455485432217202722519100602264148075444472101345907389442020943576249396803107794061952181502528352519268841051972256717355220919698622728848265924629350558651006555352408525289846059102335084213669062169362464631556813978281745971495734090018815145369593777129597385802618127691310048976385688205270946058844875539201185167136196445701393762298277096038941404527896815079237177848498866042491694337310652028125373253926910223013570325463313097710851916938759588170541914603881138542741535504959823795140234626873749952494355959988419658153461809786809228792190634985969184685746029681451250111606660400019865260659039772255143628003911706712107785414029947190254643691374536703344684584154212909728256501027535819484272649985718026071627174130355218438702004855769740974970355945493776833450130624240185345403747820762553511337429229775025834738119938238696364078753197387869474815074852204420274449705248233862368089981094324326286371614456744481783658866797900373011849149952206186529405375535848305402376829545587931002469617069434353069613347508188103725771776473681310243909554611164550892383279290705352239639758797688092968498707125607935630512211990719589052464892724619428936623734036366521923206249784785677424096612261169692169242690730446458536140815842577135896570428425822583801901139422456368128098099522086944032504231280871004860643178946680958397845446774908212171511396195474271873081775819312766324705123848103142960541017439222094128374495345304287721227787075295497763549736209596563556336259758610228740082287958593301386345430385310223726462942891859518726870510849112097607949071046084379244339459866448006663342036078970616500832518778247212379236759228006652091242297196204729844743655249225924257651282146325961435745734744878028621700872669232090051005270080879760510184962905970112028748745694176364497419633560068618828180465823169541814515000174043192082052161235717067378872495071897899623765420758421770884472795167808932682418681055387614377008691243349082213391482320052576923259788114784887164931888599796359250435750211824386964783150893451387278109501784328448425078611821780176284180395556956524138026934730003002495418962285434392943874473948190776259884858473986485483509708843957974738768044463699681586376210042779881847889537427773644702369441341740365071651323538655408074573225882096421337779945172062657321327892547227278010801951518730749624709840958137074668114203168325004180338865814112275564180118461707363622694189666083140089094886845192132562382147214500442281150576948279865969147848475700055388680279691933488690226599433995751824799398035300214791496685553572485683076582681610275318650712378051197848059858985800719634279522333907005286173885380879277675210307557894625819120780231950273798958778516184011709923587735024093004525380673427630946838323056359389298981975404659179497117105086378615738830977022371467502474681005511205558608493642415301015614715601040296800633261426296890150646973439272243312477387325887399806469438576850558401988762959025845740922644697821449170105229529325584328581490220594176343556533275986640401476373873074121200697299625103055210234184966113733358367045882168519398963732150334965932762990637450749994312612547936875763472424139749365126395568178170563538217901347780526029282069881821183988234988485137471083476965628924783226004413073774884210083459550123739450136378465865276097545402297542844285218508698986717166838792879104627669512454474784805322961514466375444854039010023843253589595409804061331733893347568962105120498526054788358661543434407509503198518177833156709008926004305790144767262765591948260257087684487928537768377070291689253846670202386405264134753747836735594922235645944514254949103831229896816281536026834979355128740089840956813042798613985254657608198237449427408940925056372725738800035179590251762724333343836664439874909948607912972498946333487097317347624988482315117601161005717497467764032737555656322143722745526531876592412988718080312610871930624702566289529190234604201966117300576513682605609160390790055110467556061522055960037754621291804215820901654159577317575547648192194580786751446738125491650908696341610242284070700566879556780697001201504810684662935007837440900688962091894887707408068100375462821251447175238213240043975605597401391054905468821968356023814530786343737353907073669783134774726006187449807881767439717061980420057142496094263683072726989735394299408791837989842139837674751898095070866855103288382693239239353791194231892466949711182435618942027864918395495294738105840443713623356542574144707420163907692000981697200465092034546798398545504549126696155964801735375443321259795959851190055130409434497226122290932301850875411906264911010635260027189836963809305785844162385339797040048809895178362939643641037417745730222634781153934141479958133306453256737781641907643183714976344546820629600029169112188007266452171892158973185338574720322028182310201149753852357081159006958660072715755365440446374249787683077049892063272638271662957535347810699672936379838469005096803762498679613159356865646829813921308094672229243547705743788017040017632823906152386085471278774922366548484599916351631152093000538050436685603745704516203790490803042845562218201431667175303350213400025122076788209288120025598755529843106848359561113492098997809167990049681865978133890709087851584023446002712839532706144795510190404077471544441963921215082577735893430917293768498881083135074248229313470702045528388181313417227708873861994756244408811907368372564219283386471583572565009795860766848757932765476046625229938142948206280370607459727958848334072622674224268623735469813010658150583451390215781959735491018356858751296691732373634065037254138918868205426191775555525378415153752800074222223621609391054039076244880175782279548454607539503595141900967398821423343584948285812052125869283717327823830327051755980808286529916560463345794060126276963727864123629212387427090748034976942837892478960233567218553992297619294057847054619364772325329900264092512724305413695502259615577397955605874752348506430880155902010997300112911411130807973377284589169444321977799983186159361951695077803637272459546569555017182031762012177491114121353020741727840996031472264730531432222741617343226825270453410401732513943000245341840043011784787270190349228204315179354700673556907099116041338051770420681731191870976430277132897969818247797888512481920125630916263386391150318569550504520533693981770267705103974921871171319894770690519692874066464885731645888612522036145737069631567717596647066716054478614619119917671940709997232046526730980241716541917991408463138136057447543275031575595069337295003962388280403087210833683735562829905489010021176616227265168734339022470568316829666531827292145373017710719992803841647524334271956057493697879113301236725049453404042652045554758191922925313975537473137714003196451738404208126748454429318234100583259434412035756425552381600352459305783385059122054701958296997169381661776851968893619983976805462016851959474440296452883689491924137921125579772687682324979779801018680388329405546110571521928228435612097289296810891389181263597897547286721928802418443610546444449485913468596860930264415127161244972702841209496788420653887947192576207741201897051256679045941607949273385781102392001793866777284787792257372209474795251514795269033691161939706860146922369655889886918733390477422639579117953421327059818516095413495922631239391858884852720022091733648426830087563236766244327296181840343616528185648445211561791897101002385709521832345796875003291905495351288623183039936017122541760312766752749451033542411147912515124375349969428688897244335982223544617073728981401341928647444948615079924011996747686323843369441438360771378594344304168878010952243387492107471641590929399972461504577042741239631987558612134604868395862663827057791374572467856781601827884914698669994699853369157401305285209749007424917443819485669827859537866547053068854830436163898799759182987988963284969855120938802110522723775975754610036465798732316836744836497966324135402749869268962903653204675602448814153765434520138129419056929285764213991545849456594322489700443782975424819915388714284307234092946775394734400939940924649001180023733971501173917958783858838561348778078043642316672672386331446726845240738639397450282447407861405134233349321446051301492871964457803175059687914704745902075333459835110817149447829698297676929358256592967522988358181404538604388541896941196688856793243812028523914093647226591918240667278742399080792994586665762925082981197480681627236352364334828336520199143179010501123837253552688198881055812468959844577543933429073379835090428541251424247674242299234191659810826155321502921719266394773708503311295644232931846633561748600347899629751395665886792813975927032222766326250014119649925738907823436571825390000517701041500931388047533208114377980170419334949594914724364424338089508558274474781871561858623215515170774825503639652671625551502902097181837257299373650052426290404467663271282579153152866866666299350932714129580918787475827533777104879767362446369144877401561851633157158278056785245589441303314852794742275137505334299649340041866455880941844981833947650673674577058420774341799481615035142246066723545002719602285666407887556637438458000180470075739466303083448295234459749423821058296023213147017886511835009184618662664363722898047651355398235882972795734081062645157492644506592347134505684296722318575285173754448162200603198153475141728820775296233733356608701167676791996707386314622894588186942188681763875112349932650046247390645178067068134674336488728612528963700067244204785176285073630199693435814209634461464367929087457118977633585907855425393490402562698631985370542247828150432097546357371396211819676818279915321927533799611597829411595226773781782107816379209203038531966313490418474454103757696336277915223979293427182386130026237952700279886094861897392498860629933562020260338477452629638876358928884966581453093551443156155221270869011637492244501761930312412320246629557871505505679497260212475796168559931109260856658754302146294880023268056325304626786608270438363259875830865046227970837774567338827243487514525203622452307368875006525111232567349475732072353875669578531196857375416352603798072332695863050418486013185511794004102991705566546317771131929334596197653367513247583577099031264530116937123587618870723131767829437303683253708872086901461163006620911828078821813302781789909511035499970447698780107355337882240892913062351776600321654038696515683435653811738756851616902750996412912342365653241826986817442703947984792904549299456127669687374225097771959270007377468733678974825897107132979533945122149683285622561390792797376203188465003545755132938928772615874951056701202391748303471421834961514295006812327276476816616738608865136218473017938046086607655668127110543483461975261441571444497711395126077577223437649718471868114850926183737622191851351627697047203322218493986138692694678811271884021648709574135764173690839090578305781278590440223346687886701879184126044473107292318821242688952744199053926073028317991632329711310302501213755410864541561436188691008204682649429197354198842943544939822594837995774499001305362777440044007092642898371401847621483874634104231944311741534306038882212367847168489550654051290220363205319100606516374125917670285452247372858152799579874848463753869868060417406370729759853371339149678103917335043011217947882254390708837583200641162302689694611310695763454818918135111227450679269056632995487791595026621455624400458551280582104481343721123517717315116498108022913753616577675921706869025504460793313059105960312416592542799851223630521145113807462233822733931383125796682786290678586878792674026129701384196003548315345256260497599328434100287654448470780890700296970124961967616322093048063711060035690742918557490064611161950977107231269379299762680139577396792576887656634499288004990220143090727989822659360359588311931669319949346788706979152241439005932611708013762283817400928174487856663361337174114736160362113945893432409497304678268017492850355497462686647520131248744358677677289178427385055448551826695398584061279898910046918901626657566380290793565373323527837891475514029022452191580011561969603330373534989579439943592378739135857549690661274052890945012120468548213978632343018285122262210757884698793980545390028793115881024115698872359090400206264848877004915512986838117206913506936298087187041362612331102666849369625663689877568587309982630591042101251311470995520558063442839983486741436954377408798363400325215587184404093770702568907821720704235196622091568430646728563560913124018519873726651485595361251003210829136360962699572913553690786025001083546574697503383334377735114212373881337556358799855029397664161484256801975206851372257553266887655344444922845397526631338466727617256509162885094564435150917195954927461158892525263393642783652853793286703062809450564414311512489755951522591498876906386290703252510945983488077502568649117505533396848898087348174990524115124969354571382879328764364218483755138987265428235261046456952007126623400543663841404567736001026620666545122062278737727802202253726160266025097504219822351906419592424706971216542152736824402073017387596629985461779314344204864551990190515961211460611952000441082994574411732390877101129692905635382785836059809792898922560126054265304544787022203655197961962830538809951014603452091971014572330192975156730228664813399396732380810281612685501614810682829672498475521995943131030053361038265920176348232996968114293728190802066759311148329267045813070034583424555361500560203512358013775591096607853738402669584103369639795808291662705302127759988186721947133923267478387746635639100218076451520625407241501620443278328908681190197107292079975298311622398538419786442369174352216919201659091908418107916432265989221575231624584712546718282000858201759883324226487789939250676231906959842151173362510101099836062258912849719833119424191771137051033079796110066150623551969221931266790550007738693923560118950300850273714885464844084392593872161347456167507752759069031456414644957859240091356326671129420891762410482366083772413458632181870226614173989561344017829437354040151226842598243927419139930727300342087807080694058847004333129274340770151711312122023883374056060446795584517068695509833957473531125926408604235617961498378536082169588116832647404681806497213485626162953216819281419492744913224632498909666183542928497788017723591687887812763952714423710199200782324725119159026774260614019318582384695905875005888275914980720687749187936761075792196096874079291497501859332376131405252316952979545131922905436400245448577497276225502575244412568183060286412026780462451208800496773562527439512898439284293996580332590637921719012548065567165895665413723396733850490949704288918154795775932774769980017921862156443420480687490904031741929157244006890404461607406856728200138033193735073094284490896810161570228004644541765101141730033477481222952493295417105969104474687285798760924277846922570550095071025630740264812700418117203191774561511622131406019445990934923973094577824317605167292819923578926879633378425080713353051446938442973302876923337818436802833043287277427649674578475147443830225096001568216138768503990347973749895641556543922312517201428547313154399700981990063865720075791518657251610992300815399779615567077633179431331322551088757523484121294417896090262686465108134802375706731865840905433188080833224422207832590945949106933932060828775182905992783575990057347406364369680163553817621418521652060219855124066568473039994272054394281418768630655249222849219625431635172722671955863704251379207127211032988801539164868970756763461238782661043006020134643398742285318862893680816989394586879319926835836322575240621372739356915466094103726692796448794659465237872846872642170317468886875576918450692015278942917195814679197502107921449782552080465009577784505840590550847434503097118471276597213983020441625130366759542424750464088919206602840787612673031789255136340096658736500997624466406903490460858696966077665289271638910280346178935285844568855937324589599480755654360754592753821572682779698278136201523369534648283535885555095694156892352095233165630898668863951431354232650766409253319112816927357109099125995615959069594579256298776240112980344255919529646937874918339235007872404835488931623221207483619171826076663830704361179169994583660180803396298739877421330613335559195686200760023917597405318735924516285657682071293768180528723714431512522415772398168636006329383972946467548070779641272362521467758329004479614165014357826463578018659644679543179527639651971696457177313684378501754496705686119255159154080128803657924761527777998489265179551179867503327154204495154968842015980680281286396412861282579338088182211659257432729423230942705975642939013973266109314382775288713783670592963412967694535304407987381509639645726960242629402698765543149872957724623070473704313053569856317613800038570907946228242427235853051262364788042715709932978210421040129873312696862378647350442053512297267728517890479738955193709018591906124791323710503775289430034994122814124476381193218699824290117146875687472558014116882721081990892753980846867067802858322322917973242811677037725457277730999164805309650009009246523184366980460309431165979459788702553893589901499315078774408043867411055301082060137449824145815716047836237961308774315551154444231868788577012027592029025827330540014189740392853656321951095669575034362216761886466854641346307646295427511977616728102079263584572416712665006622827696380822908088448382679891336507036492798022980679304338195535644985188794571273767693145986356954172301294902388143176660769936905677492405940039228492824317396581512508696842921161884866657713959067786240370134250491873250093536900177626960802105039029377745129797352568567072127336136106918679066135943570392519058262745943883512154439018759779283449460410364302701472392297415041967829080652579965034965100473585689512493962910674088234171557138390426054632674915591776521409610342789120364458055741114497612636397877877262939636454965422488529445492585435339227892897875407281753898540123488924586120342144089376266007641349000594598686509738595669185423676800311956287182030002847802662293814025962857322245538588622185654258059830864853754340283883338438494525711559411307107312643009648716214539321181024647788084276741739485605101588189348905056636811941737570484107919373242442086587043792487394960217030955027588809280739468763788141035450606555139688357958002390054537189819580914540576685987016634031688959567805392615793913535611124007818473796154119925375794223623966334643114145635624418232761020896263663192486341918670082547292387594767134934376911623211028984851252672093888313728156266365761141992690076255311463406955602821772110995450596689922550817014475979492378499670154676223116940983165328803293999828588972805723061923102579502954392532209623451610879146322114260804947339563200099407913200225222198031062940486045259152382130196515666151927920270655780074289650536930307749402519738742973146704526227325574148697837941999088887209975248004816645545290051646167762283275010412828579239217927901874224629705567761676585670636322762468108374165899632238158618307237546118807528781790058344646136783621425818086971530139012001659444798815757322639178972593075145852961431460136357646722013937605709301037777169774284862366939222814623046211378082023084374025046527488493244918645436851365529336052058504370647300937938132608291445120116558846325531648362570297996072219407780557836793505130554612656590742890532979711516159621361391199295648196664914573832149838255952416546574988950480267448197973464254789967743542208426761199880470080880493685906115830090904416819212692974710927892469597689493502229945194165411486463490883410732278613100687020426055090594523781309771906190987980139831053688847614928030937570313330091062698362589418263225275394593345484901816357523741737118323564034698291356576502223134059896498046289356482544083256665213248560077634137150856788580403476786808431362011432869587129391153436280735650859229167344396821614036197141657752062194611307815114089762132967953727200862933049289927302445246113101907697005589403568431277756259471966838425901135401418101563604720305548773060017868353022023524966727466132887707256467173180410280830770320258249346170896906414358580684789418245665104658000168025744609951913127779001627015506874388539008767258991979638275310132811660771261746111550827066752660976748283988187809888337627511930589431409872386983676398995487169747915670825847759055698058898499296002739333392996718084031261501613369231713281263304251996914257490329368688270498974322890719954066978635219047124368615498312604226139008306714756236788034386741932771589476747694269594703944624612206767795255848638187961649201458383403356960155753440475698810406386337984205791250270427181911466891396514508146446425644419337478697622052575687674764069079695201676134213676624860881306567812474060962752029833924325516239060517809543072664172844782251049394292246893081635628840438800538121166789249043921211319640726995981396156778573099308560237858688369844497203016763815615648572466263502739051889170389843221785923854124062890614304721947424273062732394980592997823071022891497409560103869483238646943712968807979555039769208583339053335854805941023296718471514624014094069964022884933069875596762100584645773223075872400361757998589368434302914027815306289121220269742942997640904346401242085706774723181588822351984329017350336090599582531568118168988629711152604064147080853976782082332329799164632945580242531246483550621936298114779782976330359658557739733197609602326165325767770749371382392482764942436544121512503811098282671288777430884179608103332357051506733817870310522915825699770073464357118707484855808991738451192248194331175949325344769121659559341924076734750191728277804375966768297558839762323579792495594951020870668486156507300645397525258352986393113022575445247342651295501028004458218723072039044748926890059643178445653206127967778746480292963251245113455288727386690118073087810735503082477900948480902542928866216952276741981329436896526080140644938957757689841172355763205263583847853629984510042609914482505776680555545343709480513610047661843727991033150728667228036452202302931765591035654434111173395828539250604943272280134950545060805558776744175709724237698844493511436015982825995282468954360644028568377637508618817260037568221609056617975036468029500292828028698919282349187233038069179709256528690288507159007672667197172176572220200909423572600272284380707363084266352586467184718272785654153226851097438319872343359200019778030524639103137986013598736095014362907932714188766082797894545728985813387088704502437238484394812820335295243542925403931253080120006146081900270523691754774644721619601381533949794711616823912774751332626405782407328056992241821958566810113960832947668724847287483968349107894233775409298882156500594158743469868572789012741693333629213291435506040976087251637622302505155790340384449847614281966378129395812124408289818118796956905875157113475596876127842644769213439634236216880356973291263988189219463834993714837038442705931297566837994940612377692027854207982550493910770876576736200693248432266515772236935658342376353227734769054978101720656023945430771409084221714686399587704338607992850757326475811778017201267178221779472624808125308919119062078425706368541327801162117579370302878868284952909883180519928436573114516194020777897139997534671657246738548585369514640024194707751726095010459115520416774708069983121481657434518698378662216483120633379994185294589983665695867018044076979831700261439533599542794940141520560576110227777253809233839289246194794355009821317236626248638319066432492133205121804885588153591552751593053898341227815860467954176563699647226018053640914797658956889181946867000103937951573725292636364196912707339534964859283024054710124778349876300480409072524585557446189313284439519555179471785216661313900129487316092406472604775482052513856225502791148043790203172951230184730234233968074924166760453667704404173543269921243068607341321328082855474456591739855749588174288005013910071427087330900607824196731882242878632856843743592335231392288041364518522663459995856637979495696875856768123902812334942259045426716568486156429826415959488499808595363103790602104702041287324334285344499508495669548481563789587963856555434566742999506652184883427390596796842829045434159768030809051605394276275638983238893749327967471358140753357964907125395137469119874792656458496606759604111050096058842115924196667798667220179226357004950518753105876731374200831305282279676600519370630712372512083988784562877187702642939981333066128691509416920254381577237097793485420116271671709487055502727265096844095537101330783836813612289877685472186989564930497521203513363055810657186587244155715995499362344661677990642623977409470654648873710091321628470835258610464621300806809909162834704817027245453711584105011084586392278474818180845389159699817915253539045063588884614518904495754457700122799721306157913832801738583351598535381300345930756484061728415696274058011729222597832307063050059510006826000228166804137154815423956501422662311210420813350844826634021780793842771885881731791184217980762452440184142722809307324174194695260763745218447798251113922048487987973086586870571022253032501268838513126646799092235707100869111384282101145645451811755167197099504409147221060287853410728470453220851497786842401366428627248916329169925789975691562515445178718712318425288048514649160856115542228003095096077484383014261725144480700645808514593369891764257215820820097793575918815095195897504679773120556116073439799175066704403924546823383751932980709482587240695447636719301496074646228131582054029053415952402533560189764523483194230004610057540652327989791064861976116219209878488023985584110577068836920100968474270330331526639511006439112249834040924655258899461696487630253852383701468331014060474908514348946456497981862916287031693010445322766323663281936197115078221587421031794548069397400755204551155467492542171003426278554962686265903964308026455104239172312770799468742585338762029014379118830299520099142441334253802090428661215671326463591401916841467650801322098056371259501524097674258887669932806464008530022389218896469564386356594050973023048624185213315740583360362561152073415049053361254092019425694842818792149034299054347136424551503878224855166113682425605539155184655816559547000879078970065175184350378376540366316418440557123835333310006015191507646834835587640878094118572120040887230066988786777107487972888805817337904515136256752877414324139432863413192958215644964213163613363226556677782194877385389532296674623017823362588681568349171809208996922009945477048733967867505978585702891396772311408985271285514253196720378161163161540775439420529281116077759177334642436255294399177486635618805269184752100761631665811131249764868734847883328635805882420915883144246735455837405052629308971285117739771592315324890998370509740803853679511639089887899493330171770829700277593308644376923805663276647710322822481081501430311652198094964506729127112312925640481859164124884245647858967474352827616500674488465949985027947957077000811824386109919844332297945420476293157280498423515345126899025635449287209744180720610095258479997564641656248707145995595835606632492923435766600506093891311650408230530385885758861830573582155328245675081718248141073801640079966526325405029445105332201957332456032470873121852964263357705553024491100523881590655411637258350394947158770792165141174262041226818964430315787108976211000866270489017489142259447765485026519756212878636073261002405067413419197753621441387015050097513280989969124579572111525900768928143124899006064663964798618620161662434526995369497644993879101329837589312539730765497393335423530370884623768783134894373422182027808661037500575518373398150098122726792259806340508962270272043925181891069229289969528709734694572668210877335266150207191385266580498148367483940195152929743645577483153970472579030422006834308051167076069733718815477183219148905711779191407709939850639738807008578347840230305622315250463413349997575503637384873617827577260143633507372159496836240170114243923027104335379985383257464616608139447629048434074337236625316718068413957073602070465571075130662021581368887689590150383948418103229833208446457362310784694509613890003705800822540335889646971067230865722144654271711329157369753703140910796444985495759212853013423265744806822146146826756852692945213869416429505888004039490939766821592325965608549107199788849056695271819024268010963444707651030820381877762972954295716237509865874692410005513983377524550713253540295744557584959586189227841121850202246937810464235213675539157386293596425542351019907246591839666236039887010459132323998835482343821831384036603503750797227570251382620176734358441373528061021556593784199911618524606304178887261920397257754458492073072281415135950016232303759406748455554854628204294129921593971595971115273781701926855610099757748076420110243681577969064278705601445515940938164088515606314538051356545031434468527645314658279230023706688087937907640425292153051776064541152878335928777092079543891447519892970227961078681306193110290300635083129412446647119436661931097848189350893601730901142308566535618313882385056190748985150874725265996924959105683760726524322472356531693961015885346335449956343958825749017517067152922575165338085712470337450307036241012860092145089313452346770004517483184601127164882559236379669879158795993797292341252705298317279540680515501028561740618964485648785213031450257568357210296014768525356517859800444518385427961554715076620139013488091803092501155185001709075589350778392225235204318869518984520817713243642189872739669735116375109645167562207339855745656595797206915577982681094924933751231838187036443914495513888232254990450562509485700924359017102162173393446380789003629974496059062498870967151974423857439607410933737119712989696463752695061775249612159225054505854855651344787046923384641902763451534539100528109013560660000851511539941502070708447533963291889029828432421566910911675888630981622718950400961460939622170307091078880184899145799262631741264098921764949812535313364331935480087262249152739646967296670493478999160932589954342390925720974315200861980579346723988051964195875446867597621581510360153943677419941166154290113459710520630246070328035222386602876991101019762486688591272753113788615140323439157430713809759257965246031105941907576475476374081542100728577970125756736927192614647490283783411794426430941524152137877296340028129278831674417831487877723002418412347822727651494978958097387685729889044191607569533388622016803752140294870863945478874897717696178798220192739847383349868273252956086181903889062341208654642266119107795721430107122879524348872167529504808767637974302780720265854030523372437723721246205509551412270541116453112859404488363261452459545572489429996003122493313804411583600227051684139474969454939160543127574956119300908201212926086487584083699551854774675155486818057529923597147345697402069872403675977890897278630956786163262152022461320934093447460027425962562412503051530585951990210299459965120005694251897927473803487997505649583476279415774699579654827836287749421889726585212883284859852851725172909901508874317875680276976166506524376469441928486814889075385574422443471828760106607456657418431956737593910210553117776349334044883845826801901213231451049892722525848499041249183665442236129588376976284371098499792858942408712159229547539280454220838274819406295636254795998176439905999792838155808564183891177281615706416313743233383718412292981358534087170135780310412515121844964814675844581310998765587517032100540804386052170447447653461359119296829561950196128703620252135018865640706227390654763953373097261699675279355295588734857719521527552887665967112177955055407520719290653000542442088727862453812928226922093855065564251996871265387600645608922887870830534016330033302464248064835186839545981946255194918444292201705874907931669633436781898158691796772177487518358532015512101092322576959244086758110571325666485551928789491777242383927622932959190124867084412998294038661579630717825683679693261053216942899202027265849623425840544026255970707643763034337506149167733588566890635311517701679718967518790648013720087279120481367264218668624056609002226574516477746070196972732117045910716770745974404033050505774575680083320375590693205766570599366990950857454538469223694667891528116530561904718855212294890924540590485351752133100674964311801937536549365132285150747866915770829275307669262400979101481553848537548954059927289615721680457482415606826813198049153695147458437718183448477633549044961215815929681404499951987420491698632801328168278267826029565924287446978355399825507166211598071000895185315959692627388420462795210799525114861516118257693080480723617733257094225089136672135412147054177560076305190317479135432092405948183012062014207286507920854793282835552030640367370442510721963870764275112527206222184783659019557877119586932074557520739533825891702730283708486987057628437261885199707661763786519447944993312331390984465331340305214173718205846302187898374741461453160622527017511571759896879302010188270490409864663486991018081112197262525454452611688094537914375714929455434430808293992480047458415515582223353167582176493114199950302778662859851891083346153641226350503131495034907055429416068801663733196551351697411487011646265171777629539098427850923720212260184501332751577018710563183157250731265910244015177427070044345131462972221411720657415048320078760825107965560187344540563164346498275439546109824866164024919089308845716109666226954607660901577697010288909532368015839980947901131978973312647405279984492616443595269932368401946327729726462841749703803015052506739875314409899454721595003488553375178738584138262303405405751496676823293011813016145137817025355685674587249869237192745986690495420700282053096059077701388699639897593591797581615125339555913641935653258581654356655503383689510624036868079078203615055971236685740843868339519883367509317725668228455066208845867163925607264160008293814254628425858687585686628515080534135048033209055531593111793882096093298796325077959535903401236079418744702358226978041026912980613238069550805564540522221238816868556201651054405291045414034327213190898503198647964464448904709095195646879504190307147143256176512394899531947511230245058684180862188985569353234702956103400007919938797240247023135311967043653354998386425929233869327468084832078636045061907041315962949201442554938729010228979792737084796736141783380238155763225119949733672019742625942393265821036269501291662139900430318433032221419949078062598675003666067061326710861604584364774846800019079927915331014669759681732219934059182216039491948997925268906090314466446452549704413312586591503478369807435997031940023721746149274690542715147989620520426521465295832583753723153801665716984339178173080207728770527995883144425446048292993459831335184900555032375038872288594314095191243154079292238443604403793137029795166908137313341466621997983420672566379935436101719247732341183063248937292980233686984484806091510960504999773547046918612025980636030154464847938816772732214032638436062467845628579396894669700292729941332627599235324104969274862745205347200343697793190462568821477384091642139504964761520749006105975554722829113051446340619417790433675712978276856277157696655344570910755600799476309700765398082368251968038585596473773290099115570489602807288228448224761990804231932733450279605457552538118137728461691823362042420696079300414604362026584872103938565711186111603271137678168725942343778394108366037987015740907409111601781492216550606216199084037687801898459526547886177741735811363338302888079567375981152645579048987439839503056594742381897172920942344477641586053229201596833455380550508274019480236377725630851583738626167391864226696377118065098047987476834710264793779122822205676763873886973168269722769423327773258526638440624445117888324245663796832361282023940644919428640698681333326718355400176070313056081320963946258650414107765927025598481188940390101485705784305397479955167275140006803397314064098011209067794279370138485396316674574082104115308260801360976331787581343912147413486056927371762159698153798793742908419546907348651225556160038116364126054761155864662221319471460835712541523351555388513738435817087947897673079360395878765218435893340523894431343015721336593906398508187498465861735342246436464572471935907831372352162915220895513770708423262896828157995891792766716847045180093382701080071877886047552983396268253874342616015547487185386503544845304720841946817138412875596311803956541701686986132771906697145578020305579654369198483796454787928412567728380810152914664897336098929864754350013446119819098674244939700112276211251045331474806751269660324615269929802101412813575951640783906437875356122058068491463319852916177194259897479536615222400182175008323855715876308217206225806523520128280658587016940059307381601253560153623567073024434764482196212553440679387726423920903462820695572947454934795652859648661526616240823294170653011705172757606227658249683481900965510517668324188875814033878332347178838927579351110664120213140247578602098708823928471642698105551799367471729983690872003195663709494213245096628727461950738838651641562684346884758590712410075228334937095013138278158781894436512240066779282804680485017570760374284035153630106408397859530880954580782038934186812353918081600684614080099529026941650921584812776054374238263130066153513498854371752714353908888095176175839704169509102673794157982349131899568864692151742778257283773983355310418140151794411392592323792569832505223943263187780644039987052884660244914038091542016649054845401207571713691452860660118041884253897857115475054194178333710620453445305819669179646783175243590035995934157083919220699050909300333326456384829478105317518901135349442283919922173215673054252908723321891259219204261536111873609675937710153703156037110754094624856136511265980083548793990534866323629396405631516996659098102944750472692890667027264066585577776194064054672448455529022970778882217551982576918922183350498281106693277740867967896642081880645608805194049959600391062964768028684249820587997032043727511755788331853938896816299672982346645309971391768755405242696678542620956681372320650184500878759129711057107447257444451734298932046238537592521842117815178895315964846869654104005183775928015144142488188535072334772644888102307468406720258330074701646315155375015418718739092798723690105014297303504725472909155684430208658749053631814844823637361911179330696454001528511064591091723604584890984545732025704171240246633489559476181373945310788855687284579431934134662647849979890927543383195694925393905753748477709861357607433896267773021885521185173663832703870322664271893289205429622857170941637891070342653170878576151468741320065159901997537513269222485909641780971037818504916298494799047467988330139531698472170840614046037779391255110769525833252560784325283319892593567203591603205960967634633290911801783511788965379574598611856195497424863806164797331612419443751260948598927221081010700104855317558980722215365870976358359327141519837355786161763116683846876263911559864051828782494985740014242525601293954914981211867715240210847063977587051791789957083871257855216236630112820803813789825037428725168274949963458568671873922884439564775574397189070669637215914515351746667020513702310800643694495736175116976445427990811244422608042022254017427101800112394860980472076051629786211184598363211868714371995753901290143168297861478231710971861403997073854170896154041897292385339324420652321239170069894496833498047029500577068911217862092430027687477170779235720081551088434843114403294136165108851492973871089775175714859434193724896432028273809731738740697736368317946552478826369926214695382460194478902967320372513776909507247556059465548505672609024317452202788686373938585828572720525287429931517964583734384228577437963901233584530354847057005333129700839722224195904856045789356338159466213657189345842244917994975311672126351556078901517249898627211264452886789806135743355853759163619799318574568535034652673721911301810642926169553414537618683216531906843717374215791364212968818166154384701745223949650949947268022024033661474242451343516110315847941784659821488576429122615673163506974589342849219503675985291617420411328813544447369425664302457391595396220187771831063387492461833448300981125356035761208829315556049852307413985479324576392634620690185326462597481408453886711459652719854939546770129942199980211972601342104873213837076616849011004626509293797423183053258119143266006649951157808866384228591334922405720619857015792057988329265364567159455075816320189480636099709407169703332132439581044725245197063421824189670826490333016762951307097016630229987257048994884546825558546773792203174887453897017862507990482535928575215548345674520111040565460507331017848774743342855986354933612831779507721656893121250414782767514445992505353958095756733320271033368305382712612970143245184546644969750423351450259631824378279364419743705625038468776670608738784566466383085283075301589065474925237008906175872927088965199205409000756020213900047235688507072010726173989953689900754718991212825873185405600278682404468427580791641547669253616423132004540124861209312841934787474847666367298104508720942275592280041011058636113425174325657929769620660964761577695775280198308651552139686853302197163884297163925762994582183425181353804727257607268299959008707625777318605408407444336107773203882748074434010972736067067469949736003712308720508232965508565991418274377971752465722660071505079066162272457351381386389234538586350175077757648523361168695503519026386587569487725450237630993081778154966016699759227253600588746150914307106212939133857897432444581911049551392151214649505906632718079209154277904464890204888925269363604013199153482102672436752909283337213692068359560504194622686091510957555851501226625189787658355293443113269438223756756577711174155133424174392246768537446910277028908312518393335895110892496462029345829430960878177668957453853931996092519531088964629764023384321595895887438591223966719443478570659536241414608088550550467035733830817976910118028000468686247748295986890207066926333001647278767291021791166028656408104868465111797942489132119137200189088670171838565941377837300626397977226036527250440515199478517145620791184047707820570796494232362902295746617181651998548786863641559715680370472953493928929824524975866152914551353911626185922254895922576712955381398349731363098472716230665789956726669716599123673101067067253203031299072082163582197888832705549080671822463475932820779749253463650765264912225498855091110656437668068915250462908304532136857188689510688275022241154896568302160867351710061628686505570731138332722845331091640167543630481334212254903939409990373611223892465285861954470343686387546110537050697638775274285176393123676606275296701080781259488605482901883253030128692180286126103108227015993722681837230474172648778477245722336882839973066746509904582880152575603470203550284294680006505387851327749307219916509731476880930923510280806552667605170612296601365866064268977026683897113794725737084065034334924088356017924316493743346469444330097476379457476453639054044728145409292288509190932830050999056105152277779945226354132242719484444876802887009618941515094309890276275302642526895110682913401445233125513834989598845475300881005674628339173617170668238937611935627260668310025834134512085006817107641052710885843386935057443085291538541680957979074206030837365242488513035856678486733743015666673262998046246758866797652620875873773548740408415948821680634978332413194250025251001813850152706708206418613658254351022816951827261424597521434710429544361548751045330023140533403491395053030367331160396537467767079490603239726774750073510685073360821136683230969713333645747060411687503704397618606935162123652981416887487119672296139521042836498306888426587526986171960283656844751770528272026368156650389567430082905045218847778613662224797833779717677241895271555948740240701360530056462829121280170113870844230206197327545662859030760923564342090531949781822611670581034532946296363464473734412264707452106999066423453548418417624191032432832079395806563403350633415171799355632567536716736425944965013402105561181724353394138866445257441113510742511430539999508862182816142754712069102079822593402901461315965867378576872329252384906157151732824568333129315062053200229822382624249781206209366710359493817999888234318316409816277926099073401161448952832551224383667590854650422410804481150174665065586938044329115438635952351967438135174284018424918144851812800828779731900305495933883528164495515307410701689492257531353411835469807880877500829853820520302426066143612105533969506964124530705554785323713445592914293350705301033832108598119725334030183624722861222658154829464425522062385963668248772544234422222485146140527175765076502791925256294630895756847259841610368416324927919899030151865792077782641786198015715944396351516532015427575211631787085126652536100973539300278043875634754269458938814092161977406318317786304011721341401106378935323552513227453539241150778021879110900883240067163811130197316300899372919624305959973156147035683966877718420660513705590971768788954729904395060772286674255987548100144830243985294543930229661763125867968540114250973894595690134160130586113603766779656304507559589050601597689166837509602388909643203573715448315948322281299479268477148089952918476099759091656348814593210732551334329289536091523045206286839879934025369398144479055138603109458578608807369237573556391590837433224114632160917740373763657044643884507461236738783033276229400876653973091681830793848912693484848060871940543234042690324305921802216566471921585831603708682920562938454082736079064852189196134704377607369581874637197126184321284362068845457921373995553379513390173214700858454477987545948558446901937291923591955683032550849136387974146910035422566135155284564579269045131298019959398279702581006126732329484515491514406513422276356922975248748834163760007763884502670573652620317224482680287525336251968796450387745274467879144885812893569067858863807102657768418834197320734520010769053163404086700836039521255721557659352016842614112593622317396460298882734970606326504620886405072583035266549349625544291494152280897401690905137620624981783754701565143377099956831791052723791988153398998451168339157372155957189654605882225994503408800250809968813586709632824742633325816627032658586684827027333110326221199001978546523974014866227898950094313427100664981015047224093479131418144444159705576856307807048442510263455662329259608887774909774672057568632513865820392388868875663543331164722876039946204202588344890245635698137915565451169259231141475666490411961473578114172440354963113309614403400870739144378730386222095559970867381973948439381205251754344442070203866579132510771534371320860002247397608365322573519442020463452092120713616807823884500566435724568290454262426260185225964260480370836243498795493141782428564269659719805873489114790282541686663609971097483852226697045131403941514257221936688695055150258274482948173688674404785511430208241931857277899794061096493865957969335704695220014849567689837910618328107083179274482797098532509257559958135623310418057497334225256368227725775706709924036094222985213627608502895419226488057246697740610363550626195620916866843747051533723268701890471545826682450079404303650700140794900289191523122450711272682878647790376071472783838089387749619787791000382133461583526022113816996755426630169374633213057547260979348564308463581772083378738780773640601914261405241383306585083694617345269007702178244426561095647537660253349540045967540187487179446286488276471193384859281812701999217608068380391262524642108077177789064584799759639499667586822253434182849802521213080460029385377659944653473367990168306933185878870814308358061199991343926007642550466694628116419284290144792569426935194965483462097881888555584072101403763730007607362132669601882485442312444447936165390120129054115398405370573799223429641221376032390598365586815895216992932065821984745606593054994314308673653458243250990129719265563960586979457371813611939293181138606748966115937096770021745397003458177166811613032273113666302630572357077761741913372254526007842447936757333887636387660773597174826029587690253229355337745891746362190644731231444520526532153016633862410077512508182641314729425120836895324769795408038951905437852871626407908266161338337001554751971140188782901614442970204930788794091956271572873789425437336352285249512305706174458481197600905896018282781327546669842715572915353658173856090833585221756535734156433609492183525623844848530843272744483074588511085483560369087950328634376536034497504993263786757426835885141813629293234617609463309115302648800056204902181404589788448320319879783113117500044277721259630180344310673936190046664277789737085710134885754285700302789555822760293317311980293736426986427477547152007296235005579281840554880096674762492106265809325860230000214134347492519401331393499412226071891351937069929237610061086368791004038301430383739490305587680735524184640870770452071828376057108408503281779768069856638672138611722068828895080754549093849693614457722204791798437834712929412517721881110550584727789002841051585039795684084697796106136788337578588676288956167657835968152135216167712552075736502754254554207750718452837795545520007629273484410718611867842620849933491569353069910824595411145316210322564023095165992591506054154746743827055746570155961301195888389724052714131850497527489305777764391413793107004247581939111358703313850402976420053793058888759737340057841152595801325351427277147295246936274173331273159922678064843725471842707429917729215423931351253248536671661086000683953625631663990959868942745361514564624302091174124196294052324203757194261841626965821266764580343020971041228430767476166157134470598333489966788616197331679680083717930076875310388539405951319145354219801052454780601702400849695326540081533044466841525186754229844969494888043038137613388338004000063779721662235463285446649570363970930868781509884668097483373109722423676059216019023500329703164200885115757159195229758900834834311867523651247278292854575501863784323168438179532641863251513188310891515948401216017383888476607815339943085500827553429163456182247726821305602754193482274358721603973002693023195337421258955934956991518021810537654845678839283426747906058577396976238929227883861999211739739272210920229318791346595793387154625966463614911384432090426762617699454881155166964503596300330330660745790044256910162009106459253905679908238967553651846017690908467236885697378893537110405668865206152936451565147231413877445283306067643561369537042049210415845394345948745341981916199944016344558083858309053906491759659436402322410469219406312349010185268002524432044202934444595147132623486213530786013256515211938898141240807542272170826510051354155885824362488766946267524929735679885049377527662721901599717094111241445746354229874225440515722073870235743023705775744638742391246511876290971260921015397318509641506843312914208863478879351433272258689123640623244220126376884815594109255382338127349447827704021217999854826503978372652281745080629251182213681402664184740708877776602365213925382116316838444487386398635660636368545840206774076429879316549594571467422215231529918445080114904935374605911548810106702142036018119347139818995130125065243875420052948340635758313921512053726587469276927887430283456844843104616201334830769582172371970426658131354735739506273571603099716285187541407942846895024849257345231617930403175018072404027427404837630863133918125866004792958759292028383323144721154059962202641841217664066517420741846430220248011121614892419145269694279021022793483022959135927227090557862135162078809724302662684213736832482522050420602411721668606188963382622567510235144294027717455733925996505790748807971347108023840296081829102672050673580081660639736849257023108681785764176528122971779112233207560473814528780082677540288401815450859268360477146693517313640656412657785738640009774683435250202813323748883238785248577224163280876637299171264645231516349336450670384452481249830704049410362918882860668260436115756365168995664614296503818480179976494953993418425885322567738409098238382976633887881403987962323213388061987281362246925441500692339511952091726250636290986889116582948278527868560433993154152851406780850050654251736616869661129055332656833440361928059853662292775627803732712345670172152229934826328428499416605836266089819820286842311623718534155882877995740442213212749234959097690746611449116926474794743280366175693617612555533017197113531699090169068980429294666798511443831813797027791911556344004340034522893274488427540015505153986658394200411344364577962891644166467386507142602969947391215819140044408924627241655940017589579210253175785485022192025989540613262284717909524069638598044680911131907645800189733794635450658717493836159531848776255561305999247746905965958983488274639277882937028531448660409386528806258383955969062133950823078662819796523082250246716781778348969178836600398770306991903966218549592913652031665400957664039476402599284886963160054390209388501544385824243759524213875065557490928696886014266248515211946065824346633901158368991974574390919980907130880835265606148620142533995091065730272687129882801521656468633447961268752869334199952982294149235717630460385392170552380156033574238227240113580674554340921107826803619355169998271118381140425798303073189912856406447797208289644584091725370479333487280853414760145454098071442790604965707604385715762034585102197314675942697429014609081435247119428206093958525351502669876344070572378755558104105666460962388434715688923928007891646368362082440411885038132569391487455873921894059407508039903553930653862325012863953088170009181585798563939234796530644667751967092287867061435789562169424536773193470768258724461728479037489192948780738866338313983939081154239789507135236769465151041664385764427899519234452549006331856216436935311859534701902553450455073337894149021449833918769650693190008488877186484435921877342076205567414608899739114784531563026407787765843534793862922842121374580049214081831175378397113472130031280454954021163152243640049333695397903231926447506284329025836279433987362916706570172783574218912094157817349503339984721471385874236113665149209885172167258583639032861173805976961448500846413842723263078350892488157379421973224493550796115788562348305872610156879414591941302901156519545282677056190970708132828664589209165614033253843320216794942169361093294835379492133863026024684922215909951804129355820431100224855036539695803210610169002556224974720483385359861688209293982016839648169655039737330559300642728466129543731024119296534080614159621524349342207547825126425181988690447667239001859352535115059894541338225297231955976410364046689787618010997588642550750708484622776098945145662268966165504049025147468581293897040356587165665587335148770049632959673716610422716841140556814024731942612951670917628229378915913028201320625149381750930824237486517708564932745675052857188140438301865065748867540644075825771871389390230862598030238604369601151522100629044017551326208068444268133420675893451576321967860325898297569353823914823769535589024024961319510546329429940537376418733496342523918122021467761551277864286578984935051721118361500821627214156728992292150211804263951259481192747463306919381543444165271149150637980143163513838454659094258585314529323447525949067058291180202744840019080661754384044456713925526327741256929947128277171863047838486404856653957125969453205283343709428767217959956844356545549480450012875914006113822988034151606159349764693179874523660070975961825552132158384797116908398498409653786809447213577588773218807751818945442276965017690122798272720953437651660952728346811549133135546931700255336817904412017999107795926220438150642827162438566766126481416162047183077036098521503551166807750085634145000642371511612621255625637146333921107760740205251072057017312482343352007856918405174910265475366332991538929396189906414592620149535219709613837829188805398199300068929786704026443646012380291085121855248171577531063304478539400423798885010479978714926843663392462202250213878851624642294221967785148487641324297973452565961015079063684456641173553616704904136096561703851662978803516981828903656979753630913588542284178144793680497294794333799102405051435301948083369174666234453091163560497380171167749390397453842952244528304594367193237457271026708460721682573541205689446494285689165688266910264448120894255854572663055445807385057241016245175088745463983852875205165461604539935785558611202703434924080483271058281701786629483684619211047015711757253128960597579429817942721721456279705860661803833243373656188911153398091712977872758186354245509502011204480529495012218694157467280027512949816976888097134653240144204747444223314769448041801446931809155864121762918008829180286662412190439186733660251564655703090990368331988335564379155112877516350289141469849989651665184972635734328398419903363336620265277970588743704242355552304731118495446338493189871942155021500141173845287538246574073592330475216285769285599254617072367797566073638273643456165411566712818299320164190859998201453310744438390857046814974656350372962352570895237662669424948443811550246864458217796980052888032159504096338709919069894954371125819408762244590034048133004899988155037723334327579482849522820450617103906369420567413448963952819898859067655107375959243178885148505371832646398968423695173787322216553400167745763423623045425645462716352605653047998388143536755556506542546104438439212519474700239515405997518614431605977129744095419598402327650089697114072169436296526119130848954920485399527745200153868707148422854820460783202998318121318663076633741847383194567293144571270322191766933734731689823838794707263332433809724720095854103230524073501904464913846811591546097695266139818846879225488657410643767016228166995570005214439544731818013575973782858692405445530889072648657424620161928551143660861690094483404691245322208645395952950999291080490169175557086498949321146947174725710338769456065879512959661424957097836993285307711223148002260245243931264268060602311373446075327308059433825039189166163655501132503216107955706382486458782662368022486766506744731353569943553703034606103888549886998185573768020439665699433719179465842420909162658292594888046296275929415224668875221542802651149111740380044358835746283413253859020787973189354688893309518782554607510214350179684005245705867578039660522732350437719797471831457290718589712191102792322282177114266766963558243236683963171594855374900227037404365953537519101585037197740699281721794697274258702798413528248706412909161705117315917141306788196074364539871009807444151516677941288790591131239956462015976064091210516172474461211055611546520544191050861747559761736602683114792534553235739461686317445957199132320916310525089040417963079788926195320170910946401911040322457943382109033180929534509586778910922193356671924610362160279561596654187303854997295692701213907852646903128640605477969948680559849317479303860845901292225402325349879262608173427442398746227611836833880077733246360976253692349491116340571962308054882184483733385655818443115338820797256020074003869217723497905824927075459579164507057977582504268265001119527454652239520788761632980420568273926517088884486794157135872039465154973461313220429798201730349965129192189587320681487856688469287736267915011174600282394710618210495212273531403767368858926981649776928610030951303466807226751503937412137256447186215315070834708654573822974112624402130365288446885126282720947100576315260122662760841612096446968552938617881584702541457398983179075812111151526133488787096891377193929810537604877398669228906694458934603801652520237093295065473826782242015747229998652845155624540792106550974737537626772024433856508618978666358151970152676303885865216045740557855264768003925913378360212688138090455595432799386975962724166438358723766182549845036678977026634517698365062647399031066679078897488834869964733463905219484303300790455255581577997447237268679325015385797959538873800883996204658384212424578389379244347677642739166951727385422398643267973009476596068888433745211534288874728522972960454235076790646999524214568624999230325047755746337406384901232046598615506530492978055879575083137391802556829576673532229254755891664194514075530579744417727532515265900794030454772885007671537227485837457403077488853818979952764482341141584691075142314864139754011923425236669917544478902220113075502248922691169907078477611557836577801355447362904421304745263436362499061380636976594027779236293528406956515040536013563262964764234124134215693605284903757372532606430473736487523493307048693700856102550467244589039108050498809197020294167287477898962634611298902022157956744181915119760979628033180643491768467705568192458002881792909776420470218986904821751861560417003809575577895601357367663538538799577277726687531380635570124744428681722149965102665810305230198696443749054809803414271677543245688649155126943796161934916964184576696074937805814330647491854858985430380692139064617916474176668015284040148832150814963479908069609864698465674143056841604597082988947127138040972132809239159863821595158979092632970855892183075747675982856863821086233866336267443410760395414561203005010814799305601775512094733102012605320953845575856455794365121579833396834047933920006104786975141521223828261552302590900504250140229328070879233346987212777801152030690335706487505697891314319576695641614087477973867325849526780167448342673025066951681792083796772276178519500100458460575920688221331014040383068007092146261600209721764845745110865453949785183327026444792532453319551064305277049783834032253444612319747309791952123333330022869921268272095387282623582171801851622061609515541500329373296557288006989042468874883381314661747118459091692819891817999200508016451955641170611534845869391940336403049288548828172325617414849067414527252562305334795114028688172799462104420289144475062314621496731182492868850395799546644283646868964409000663719281408400051912439138766745761743609047748009858603719345816132675786615528468832107014540732721344650111018244408533044493769083182388877631975593561281611643470406119957834794128218295518101560262533678404533491291303991390941579714336255053358416511459596670493431983950084020641690844117144337755153846548736567428704140386139788611384045681119674806909925954989714918018109886814881973641547181954903699428305697866091944641519640118100293448490606781972849096113114757347726329300088751829968750092297181950629825299758532606743591353912410556660243485986206346271274459096521340201660323897905612373066235543759649862491874822506895464423799878529594836744641000117579006357367199255582602222863614825302359344334734404410568238179283134939516283207329981059397696441475774854840093653483922163483919017469258567400436515366702599051436392761289527204400443875739005716597745799854249829425899245812585831464126662181146419273960774503804156172423942239718062596955703249448312548756202277937668403276167381633146318866836977120688245042553816242311938654238904994217984548764403561579468411505699157143964488437941571196085668120001474944713218781341476907917602965575230226916507939351542254821646197760639152779590872400775776821709184700913361085478031090448190884974707312885933896779712173860480698763349578414389925227361748730098290220421769028401575371112144508179036988026134121445691920725364820285324432825461830430635375939824190203019344569958408112530889820662579772727772828357136157336439404458982942159927853489341317924835347744211461980110723190532786116994754564632570494389207050047382303897242240757998675821670531268774555044337345563239209512296678860151591651863468456852370321925541162401089628738816333269490577485362035007570430863567838368526611295669770570833739515352583466683860923071634014159944176384823357934889194318432876785570840540224146419987875050048935185931308847299015888799349925887982182197171892850257531129077798483852368717195699352959442463721313222883422866408166041129916551287734607087223976309233327399977139855475846318251331985030071800216275844173013991110097973940249774335178795571569426916694730049017097430899590391628739556992836744549884347204435907463722796877162756965772941543747665489649467573914990120436764143146145672405349067815697311512828504323486212940423141540296651733270476434325033430293133934687041777399634717751770141295025929128582866220208741364438519474454693986541353585745598692151707325047643607682007127850408910367865620360384520309754333316979854942219179731435582280724231881790180377903242003466757668421514596689424241484757060576491672230644132570263947493112709408791490176088631157612256443627926966783808175140358325265714894805889802336524215002534849407433072840326728089990815141388625752379346518672581424913963662918474660114944636304822491386556563676752871683795262877673362346720962309880190278020188262887219696727047814107623824851945738767834758187703262632992191405889513636236395888584145338208427336453382061372651605526667504244057093862089505299449208326843401297938355287593360825880318193568106509183953271200173296302112779855777168722791494867376839067642446806631523188319333550156637206697101281526158561120688581316081541832044864251296320482939128062783994646002561379661642052784045696724689155488233178107648266886675054883174405611521613721588620937732600129042304888071253425240857597513720640171207562196336362218776088340812501577597851593208102178280443222279517434853096655108648839746929656866606051454321341061095377605603471631877322594858619801761159354268795593222452370614769614671799774469184802078097008619647220614017222199565628303949436814405448987399243150580717904879812514737066813240475559988801250211897096286448775351110113582683642046187975731959965503927364005026748748492255133585290104836837077032344056089067508951533125065413909648907544295944909313575536065762038647579854080608583610981547548138525848668433770246427136353797514320200808865874387301752821523500922280831097195958352625321490119720176295940716856996962159346828707521007116012517940113681178411442504738388872324725637530288380718643802670652471898716268609588372256622355833548465372495192833893797868823579912974067949710842014668415005935065665376832261874532132031762940821796462070728770832494906840765097377905664959489439341712707300379738411342942874634637591920969362980483399093061305001337119356595199356815853674942938825027585271438017452459266967418727601148559258164161977685983478678422658918460565982402244807664110373576585782756511343951347100596004883072539747710157687294777704796882470306413258086579422464891777790219969788101105165538399365615768712332308864435587139799340336916310890061444171921432439600682038926429255429590414023181050841817001251601847864420645491141931812249903356368756096376100557834086189488321067323268128508940972720990122913174601075628148992601343058205963693847832058291286733062163584333414658881437907118575592865593957292735959347173221278445354100802957350885719745277145980496659966757331914346732217864938415225837055953019959001182316548750998531112345553951385193885791791514262032797629066351986026654775203447394683855523900123103069290415725385594288302558724419257176410266220082595915088716511474710416411806369329598182729476218144146162241248075167442107107331246341872564049755767555815472042762498094826345035679384626865281205484364601460055488004434897728101587625329852800323704364085916873530474978911104797481737986803971797504189450166721979434317603924075750256308962698318557411816645227916727080150568486131338734894254550732270196207234487085215853608017405759967606298106621283976788018172040345803147862208139457742179285381188002193030736144850515713537806594123573425006669840109519778493790055189262697146395240922539217308418612715865367517536231706431584552900726730367853664935657850471257054320279996993979115091140061746714250609974955800275929367724423036503670119542870803520391240563030675830324116646958241525171255913974816562872515479860844515741563104169106322559718027547520306837594398516977404575053316594240563660250968799418004620458521995036821587961933592751162572317631207443503216962010843283410117599237497013518415375150087014801693094709609076481356143091807508081488271925948788930399217108990740376995614604533860593860725009555931303377196919437162759753008115630143803659178075943484543699983067265327324592039954692092045385637699170893944122213316635184683450634720359739384094903728901463076948159458501830507555349347884118513522079942600053725985307896329005784713537597550302389587694690295109719300755423173329380752918025860421348543595408133590698308557047426641814764721449978734617607771717373656621530252467550829779468352494202200408572181431989481194445680548990028050452728924926920939916563943631468664090898803375070129028297478646489863329039260967525085744856990200770037677715024001867748005606963638208555786769222078942030349439752368971832104715861631242497668637864993622455366434896501791740053194110300249204859112982201704926195567222728150310210705086306738427930312109123317177283136205542027268217431906274967764888647648568779946703100083237126836367869220232580530031034971964441371999086664177912003061533988345403245139037761164679018913544077048279935572109040635223371516793997243270609419116464307109453401121658023737335337681132707153954600653540232758187234164103914583039974060680040385009271939692676473957173704541337409092866849886239309377359372402376513517738167543727243104349366379651191165175530810450044891805149296006541590042306634505071349143906110443694070277304239228535193687486618523651150701956970150212337699217875167105941592859465549956872035839856300884545179923324914230743220097139210963303716184267099775459149642829645038506622674710985579094263582724909987638974210369083583350280225783308811539159256747456897302825674870541790681907718473999087961711645590246301994212669600173971733640990030042537662946620230346382431997799771820549656684535197504190189046110196161028790125426122131164659704834987914847727350272256521860432524704943378981216181219376846333422794996026363695079439765712110407417995492550866408382658625662916226875407565933116548060625360575072070829132137868600450269802538556691503435639668124456403509317808820263896738253419217033840771163187181932235667683604257536335741503694838389332761045181549875104078786637110671721132014656383672495881249310458829096802076239856427628998832104238695427041651337832984033580889696353705979974811417742205861637988080610022673398462526158933492960838608356859904170307281371173906583586148159684580785674842313987605437388662455800582723610760614540080844619736363966036760599277031009086664443376333169163980685248525292075440333900218762309621584097187620106049653634716646503841204704516437443619656338450974742465382982148397259763783190128084623645258670268735130789319716197248872172697130555505194875260547464997852481299697564163421165604084594876190509435585099410390875637198628443386398904993871993481762124344942389583974123534639367955855919179790217716818054729381144780875944928336510393236423609409166487531804812779174736053143250407326866936383491338514149935801173228384228726509881186356436718100222254798718136356612848153134334953720173222828175862515771409625269797796263809192127883965007842042820194322710898616664860288379036883220609929469458580290072839515291135166574369892322942843185089266425155002981871201337009173811917739536396697553990770444653541440517348330977858741143304654882172652293253392610530811604999695724868187409133421560715765113211492330596784218356917113933886799874991941881620346912924636278806713545288120146803786751168389537407515116335303743440242185008766372270900599157008060158222736819531799608249815575664820472293648626856883753076057980715663076685911161704148966496856569321901400862209446869815081857725096705731090380031587961017315568853184477648608139201777206917305875267176888536076624931608025982673246428655022608157819984351654927644223426044736329572787616966796456567921056783736228067268938735779608894791207799943332799895231963252246460136249547997444375011598067254875473498221338515759640683201915167611670404475712586901903529449908675210149790861195528153029657834272094219815358285925458148828455263410992700856910718191149812318852549667029613773804313691990416824318859980738939394413138895743569170131614782814750296230012279384344417201664698483109674044667100615346348032544430099948745590585655172240115055961640600284853766698422458847309181343268511261110059511773643281595218800652624981909219575502412457613719797352730689744272959847246507166093745930386564767768212418798822212181817278638007828903371179413180490229496990346164100835031201760989033102153175954357109263596428243235467330225990826590897826029284606932048735279237374946068127365937255719793820338011690150114345679152906062530320180663283301819286094424580996312235450408040953945613963435374103491332184530389288300845566160428611491542178342422776279713902679269696371956808327462586439998319072162791846520526724972587629706851340427137269923127130470672848928903663523748136603800817365193913037095319092277534737943488436114278901665462483478701439270990235013407186159313090432787987380282831649879772054702822071036376680355795748630373687632788011483653008940395984567522121155284764873323132019815627794359118909158336713550019341293787481355714983236791166224213122444505192183629576765049487522673806891245619830862922685015997412988100629905152922435776398583574823953690790817691690289439856446200377876897590509817890587531227052000640622684119385887174696120521073896148186049270076112837947228794943435072232436350946054883004784178040522528592734522082722223197115044205609370171874608632703302452563148741572873386143354785418371775897124597250839170071387890622709024790833970122944353835291059432656445922420736461073737895562602000552364880329180541550355809072097788438200539327945411722900894477520217346430511582212021053409424783821781224974656940020107119028225155834122842294241572928196509638506094043884721907203958482929928794737620625021584329401875834791667314331777031339417659345957704248493150378372535937668733485714255279271642401330153924884045375197818443121543523276595159424027617127340382747131755136628865595664601561334712785412469598895298515691272103844825724298525224325966822728137306075035043740636886827258326016923991334028083210615472492757058931785035312644689260689494540544573799702780309629323838526286963359178663504495997252734777190021368299455575379741422807838723927292957480963859341137323023735960347633211478111961823956233362890035028879391484912044493365513167142923779710757493636959055376855556528127575696851492285074590855972958299422166120905104957918556123437392696462514394163416490726928019451917695274667888090348804079926060479929432662092072428246507860282067279821376400118582315266094046780637286528252530291947485604649721292339702411615456530070875059641638452678891153905866381519212496177235797901389757710863454535355662732865771569009229936724602135037501292017180337442178507826225272525663374535363923801645900698251651915481528261834705896507826704146202712718522494735545466566660747949244651695019482785888882531113447302073240953851847380656482105079286018994697364512803670749602707563808031377085896523711467139908953177269393253231855789703185136030323475522054622219899362062141612878142715347766501387807534870549079411073961730267685813257169282760096243880438206203494574237114370236764460994470669109331595240183453461539908276435773652890199174301407907264207406898790823739671473867867751992574994065800180662017193970406345237828557528562387771141090199448255861971299652446439137345478515905422720351433037053622949203383262920562128192194290718811776386249109217024600009200442871700031835149597491162335153124221781512269100027453576906044267480423756143061918200095468822465867562860496240524826069741643148412999025204742979708963077967880785591633575998522946772528731050844114591599545482220797517312787991031921984853467937971581393099613879393054152878168452614155894229517767966045767253315788351433187080257544384680689192735144860866160986241060155441287436138907756088255754646862491969367387882981830264073348407578905253976365704154228689534163860521560728256390230052684965147289933671724383793311726719426607637622331900583118297737013034347199557388050616652690152115171479289583351836977109615015001057051249819565267394586495379938001733128301117524235089231480789272828006682809626489600942048722866899579470791244704812639431814839573047043533860840938943826988908288686957638160930621703740868711765933021783836488414729132513104529138614983830735137389055739296373980343260187227591070291286960384537563432276218240488355754674173043710328975131574620628217309523808097503397987849465496932323737907452223597181430538511220821473237008150259329511632619747836660990625210624408918548246292329581566634539508828329998527683334761084407998999185443648362364446533111282809134381082075533989743369103543297786417778287486801004458697734903141824443817978508409282159654144137174614779718334094529229029210741975792898671972561292298075275499586589653114112320657419559456849011731263930211415093276473662582950201874286646363760246284410253130007090400777924195583229391075131834311524134662823885578061722453492447404649465729719686204280758852299571885210986615592563463828751995061112680512549252359978115712515639853940213488413539043111789476516921344847330914274084160591495963177792997899263502315763837536695132980756781198944215141470253181411169156297814345860843194432403577328939977902492561955728763796003056446172186452745578883367994158583056684641838626680283562139902682641566056000693326587182760273251564441078513829732229736395588239787855619794055313575935904764424117035195227973688280112739384854949836248340266267626795261690315048018959700064193898319396695294632937493914579416576383712346123189372042079784657609416185327462831206445651496560421005264244656696470189601843780954942492611787978270246253262571639763350137018595071992100547450167652840596048552167791233478118615470249028912674855590367071166931883697838158906969662110716391448812587412454503869698104710703739931965008107550238022828197368960432300789875353738657600349617916884343793004273809815252107493299144235835768771522740209111736437480545891736937448067415133067570716956810230493414123218951220930547500655183502746675235191771873578869594983099241034380937120772750700664497152013624807437774392670431047404969182291698890814039073795840524620762004066174275103002412964072672544752322736194638740507400799890960330727045969729907184247178003122039491984139902063011364051838682155419795699988703297998490806340572039517403339262616161254533988278521885195750187036650359478883728772612729909531179823505006132614039161749273765137067741041694741460736544270640489717262911706573805702178637244329049954210378008268950001712543014866254635825124301929255965655448815481630543722671414673534012005338529729158515242216670617547217505060706889732089440317481552806386882564475695627854229797842974668823276089262754110669683302945752554795625847421000969164472952107125931094266248075553569370618681466242518596201004481332134655876460909457366965319872869232622612497880813491757460825858639639902235372350333362111998297033404212617471756847233248618856812681523562563490861016415493940994045398359748622303724602452093398425619082736488020655247379921515535454304990708511506975164543181773333541626781405121292373224311350352198143077502052747962210225010358401064813848834343356755441404110638544753450071338412942994031289905022780998011088206836613335214476167406763869250358147886901039481260663089370353315605088552043365751244614572345544705803572582536185221829931968361967900418544789957553012063389723960861030819660740940564853837535744116348764502285413091731753923320508639881183918654103970712760870081995471667606664226227302953560684201113555936094761901393154520759408161085711658059484047182870105113108816926089220531451047598117164002905469892178055917836595778679567297744720072222054270913172419792483353900456031414993076538500492555620258668890310573354672165808695240673786593791429080179317641644871568900549272422443219081925838335081959238120936145375985647566422298183595394321309774443344716604025043111081838881878091997225807754507059637403166537877294021715578956581085958649686265698523153330941808084609416325684116627269997929437180589048510827717756491552714091071022040442550829904974264381999087269375199199559916377862070158892883483263150622239813103184580188647787028520419783671615693924637236822147547408279742572033314350935759546967926911199863869730121228434678889121221759423982716063516527112671450504729100154943067239972299692166198744111981874723699294119779448974526262672745074669549849180079001559087830896122183826160817093600232135093908526449571684166253291604309657602603993484861003533137860425170360165434052581664666298148181731802275654841815114985060379412472820664984306149503223426504054216374654251553654693955420799471235966841736596889083096690030050694652027361273703294797763945654832653805808939134233974657236580543601311764550167024346641397829788898646188006641029379007592993446996246031239136913619132447018686086471055374321554141134147537238899273716753724009680088481945429605287726654532650273819170803200695047087262190515485844408331658142199808054963652802082926370812531653682246517960635091681202394033977107517215689664097787810257543407712219650673584495807127506262499523068480661529913108320962778427627498046938897040220199930740868635097617641602149275493654378436755893226024704076398500755307207306241692976595624289469258718091726498549609157625440403704838354597581680130865951562595849052115506238859020175167541431617908046354898397081419798222705610427532816783186737400552281758696150619119539542775192768864471391616286805738159231256789690550314339098620971823671266687489173464919860123460558353225819564198970939853629184454152421688267702276153941796085931756956054034935712145398913191277328456352194161385296183671038297709311202289793550368801842911388545795168458539346910930473568632113421437762788488494381355501923866573500609405990790557458429931109502615129368111201307198111775510877096021624753708420782072666259725753654287654925072135517448510877881114879569641403010997444137054103564406165199771242718584743249635579378130100337164739436480429554478511632205660507921408330652951479545846058499134904359502314172924266468777638787777866249673966353664610035953613233768463068427157194982732305722457964968513377672979227270700049591339065695842263515735257142657544982920648466904736211586461447603583142871981268224494011431235383442239861170635965198466336690530707693997626705499884737708364787974204946049173975964153628192997406714178832070015363615877300332753605063624003633813230887726938536800224614251274289219163359960653799293306672638384889466592042468010953821211529847735533784189337380028513742491708641150765663026031475350960318158880246631208690414028058659962360490342189605515407433496886918250370240223063386150680788955704552372161108813932650719204659130323141905597364944887888127017277912273243474994853755793190776603347378653919641194890503818213213748305110958662327050959837414157511601407425790777469843982621660791920774492874495666516093389969469477875056974675987083820135081588155268105675844732319378895246959624923220001800017516423382787006004907605497982559150760553111063867970406022233564545930381662525970074586623171064740020382930383845714166776002574457976433145263690154428571033801540485675617930992806635391896257007563036453855187827264972638316885914093596508597414631018605711825844290363230594270683755102836488475067670785672297944302371250004347254044757496717264209790358460073252203408321109816406940827158197693055916821133559943690424205850842678870488226445598153446595500409435939846790967894864769533687097720284569745361799056977184961027879515778798158788304930658945336673526041125559819651405179793097662231179595866564100331430950084063238695442607768177729768546262067806696485592606526071204969938688433560329054897728992965045258278014995073799228747744233094030622150686989165472903920780763620137547927939432449925776717262401508033336122656893381434893378908268027198015657154040507986497258217260302278901857468038633548679896631600545300667202026185372877125224260635576999449121008030040784103648899833739455512930690762330244886073301511528647798902725200233531774199435763884529442792584956809835774613723782805303373351128161184445225517368969579668525476188215993844509603933656297829037356757936970211043223609593388369759194467045623574302208913635764185204904638553370547232519489210002529744357032878967958198297203576826864339258437980363161240633119789545772822351023444077892271662260592211147359385236370255672989414469616762194516266716943891085797012103842311544165004865998445691024274293103220179748248625298693452007040147744054877229970448871206720441825933601802813628137091883978499917774181521566668491656297061604594609992746419779845190618468065335488242579076557205798338900343318266055829873283340379804096946203834538846067278135961156797387222075602766279178977399599665229383621102102092808183985303582991115868067872245058473699378923424855554284902055574460029461695689578919653017776131956854098397093869662921136852104096026950127583906830898620466709086527316304918262745556779026978347530182809774866095875835483345037676871848390852033795495370206487155402635232738248594266139929467477609212634192379139289667869687959689629182915877294673866835384312382297092668761647808112094648318460636061732150841880375066237398025228044677675554542242229773563326954600251274985477375928624216074373252469941875146807700064093020176497694921452041464000522665023139131847904248172251790684621386295092650196302765707957329038361659959501533773677451528042641993051216513715572392485816957357904146478351682165986152256217039867695602238812102414833843507828502759259778122056267466114417743835548489186652495198322247296919150717080173014269264785169650292493291243420636096925315693873007042050888160723132892670109432621488424005316433760241231225696483946714971222720899609778523254119713082814601546247036804629843173833544771209490346854897765024128310163912385998206324135637091337221406600053055625727363380717998615291281749080119779243917873426928839457837363413796116178856824460645692919646538234530383580274185374568777518505029718833378321849897823267257615488223658829905489110963262784052630793523171675402372697817029548923634305568884541886770314552783090424594938254954859437748903622377321799509220913082436045053433446835255430669434178265542748120184861702482828065415337415674799245413037847170157511461046761538194390400289299213290379114610930229840093819773411928089890212191299639706715031443887035305532832445538565636015708281798958528365252841329788712360099963125313816030785621760090473844352810772190432751804964807983138661233311003892221237701336385417481561706339249402878891387761547396001580362496680085875886948546869023750887789967302953265695360056058685408955029518708481797061138253469913199446744145986409386844163876250540150626679860548229472014430953826264872832185816776341630825220310407783587459867434676346459038801183450765959090423128563589104816246771108475131611781281078338710347919730941818051665241847828459414401570572544677945926947340628942282782171904283694903167699619790896097178067743273295815679408240469110870602119190302112224836030647176099763811097552604551433195861347824844243813995745598575962764689078358530204792251585394982986822089605742236607890728827079166835749232610944787500742322591140282080472165354255687055199715453672981307450858618769226438749095292365475184959266188025103713082831775413508792738966765451126551894531892626405340055675454755581842091806336118609742509809847023963401640771432783377826541081491444658121620297404434187263592422139258978890464234109212837434776825038927283156666081510658131794006791037619046268650579543542481184325800898664553852213003959692888500217347187131972448480978568417037110499702887389928597611460032625931372006345930518417132925681848145053154480552692108894555579424561725656762786256225541253465923594621022497655293927747270191205885375115621884979456975876542890362189419046339371386684694162552454127719320728504616822435540312275357865365988353992756900747469212929636778375901528062278676756440890993593474650925814675925806346247764629358346739534461933699422135796549364186171734824161262028350717428255284900963974885693998755853403540964879688709049967561920336919290192585202995448538385365872004210285141434447392707271305853953589630497328574351723868235191043862258847524472128813021906490895741679442261587663686781816396279881895868873054705502586019998210263398339028783662021384927348478012614333939550644147887243335283298108127285842247619120530223540726777341828912842601691373024278945328397010724064446289431034544010931565518190121301057166532486713831995549433720512238454965942687570340820331595489419123882699301470744573501892263079561382000675694340657031360660885472621987760343815426529627761766230331556477204155527638373665281955758893189427889603004173792813384129443045327955853836693816736336413207481201694656755047212481374555166915417441460727712487832166809839936337865517851392208332420430163718428192021109285561727100815531039703182032515987653504672184807524551966100292065493403003158448045799453061864524193874721363165483939340338857592429758613551868216070067420189161731730065314152136457578090019660999210250932070310670004187112222570634162138004266006285074925834783714749764050108860658837989354145022916810537222729752188795627456695990612803681780258803571095537922411807110313593130774087038928862630023593448555721505637225465207593531261655961185566088400584219012199119511879553808102550731743741016488059285191132284034089445230891278812467285328776542658726779033356830969675008596157895207274002531345683913237984628022829912156977503425713346168303728472001227184283743391599220663109498411662781076210449942411843685825695393089396969485560672749141565885059033430018263571522906590445888021436774666248369236677147289098156178584270992711475762365363901931197088891306845128247516575180192687744026198402335012274887861492075693045546544882422700994931174260332720270466349768557877027828791768737849750912149162481581107899782888122515742652028657441319576036865532307010083543955514425576977222454508186554759495160663815906828038470052018252876819739083422672807875806474768020900674426986073745443847250829899629533853585725140384363218296272791314371788978765388130201381373229493137133793577490142489232041326824085468165873828200563162467470180722125028716997655126455994832511791418158111785958310961050954042034356383396778364661269467618815939637146250266100664644813436677689386532758212546776222527811591139585215357130749917345910254405860961934790063084043603098955389833718789537455624007010999240917720320923241679365864047378646162130617380492056151182328458455202994387946418795905052767970222610825023608009945951128424368152944296033215266386579164466210302163863845250134419880878583415723246284518046968087088935109849242817442107742792619824765931855105913982632019375786436413690027897940140014869003651467778269838521549858993023364987801439730719112233417832404846303642788007089011861298300829759485116804067035235922367263786409299526832575938155801769377666312895900541209512600105042565450619670444317353053869049691803585595600130692425377513208458298929167510104693043467421367657473306214667522052137657675288192748538549624732094291380412014374552498000900613486285451890051388639757409164656628269033306038271457604567927592808665712049490498146292591175815773879180333313247862514383645635850124241960614482498466203846253238445746668529202467381032259649715004870092610062255817722733000719214356522139681639322847715437503120424703558338033879620770840669763595531219041683523093964030707173122762025950731125128034775237145843029115736649620344081435004027050823005206956161891774415350422572950017362235758199078044859080129506186331773930838347304061910402987614856633365599166930395348888066596143271768574656342361360985494865695052758829844966790686030409690946196752108888595751799246133663634880439043504580003994598884267427460876189893263316103683466900190175549450285348180036022957097684375911519340464898110348254601880760368242324233273064872079775453843343728064506343856018922621650830152033716391294964916035746204621287431732728807464421247083514294931507519466153840801026983068551470470916998119628358027407035909269113208221437858391844853478156642025509142747189753328082002123516145376150247927874343658468225400056812285848578394791124713812803380922174634845362854923722541718170857094362407619215437350785018952828157944457573750512515423899551690475328450355406703909957429157906104216975256957480648720021837087348733700161903896894394313942546301261052434280694158854582003933866693671586809437238974584195740971823216064579979928515389027075065225212577338161264350092422670763685945063997434509824341192920989410827291488202872224637534801526881806013030805648158161731315010787150135612533926274888389257144549515539567565179386724946311495046159300958608762787471523460595087209616732249024224944500997423624841985230694867060557564197050982413423601443489310711069301738774756851595620515508321510187962503331924595302680087839241801479672126492067098902101522234200794430931715274540687181944072477234327683631845741380440941690233554368977838023796711223460878812358452350425418760219799605938867699270806294734526622797365435760352986106163388820788692970546598771925255611566024746139399356108211699557383791714211458837528060386656964334162138915959365758750095068011027320354878335722876652887151321838022168099527195598674674800146755561181072990832463192252608014171424366927047582407984442150715340364998764493853626841456769262742527618867730784885571143792276792433099549776445371182737256805096182681802736631090521472846552125117108989112371911252062570915524568693665573233430745557113833683905082989240845701732923494042142111056413652205025054005801936728228028743048440768046159171101005130477418917767367359589336599797352805728132476144292901614430667651232994677371603482923282765705425205875479686108305122015834882167308847000365372312813507937720042688241489737364617609298333600719951886131040678155765786302432230271323454130441382841968483377077336429981067900587188830468066658749336071651086818451486404075314608717189950894384298220721554204390443282099968915990583929705869181632692408549371363909362630550633485116688300102207942834097686874734445754741590230285977251282498595841705920432745727132432786014841682842410006846728223934455583605886883862551577129124174324451717288056137246428300851994351307028042447169840127255804110230568834540019731088584594244127706529443605244834253328004612506245336404961729279071770467521731286217250287964971851311052926074968107203197772923951080113205527438648978538768438851195551318217248370560115325858497843953647900571917946787944711618513726027423739080458537905683187390284517495056782950298999347505099639994557692693353323118245498978118655439933085068630306618287045380607471283775364059828667031328103737830378001484501309207831492029716479416679264387073704591371643649173542500422952736784365815720340302127366041001878586835198569048629916428337661191036457337795750320494212885821693725957321966504167988412999267812268464407732853987099523449982847231649193029705167181159939897347086385036641490100410066682585707984602810011797156939997841910549815678029826338201585246054168858547939960237953304876091292065257112711681850559849953848773486767962698332306387032183774072806865892314199617941074809688488716332266638779697598168709378967111945745201238137806693566883015970766748845155777542357338749469796817556785760284696473838510151131166908319834158098381724694232578036029060098162252225184920093689518625495550024797410061039917804019640905184016691988932727469015865466378526491902857686264638395370046859459983629845573077519037957259934776149028497325506683737277083397608592793259370753490507642258274529024330666545948736888235872249859412230081360515027013754837583163387809508143829122494859970439628279605852140248200689634300430332961967226792343068965719752901470636940521432487789280360781697968752180488894006260801441519267329956529995009861995792918476680777405656614617008437766882518101910170511694213640819774984662634190186478926533518703933081307971898770178326457508069745402355674448525767414468256781475786159942385263509673569147826261755208806638557051638319555020742863532244611864821023525058693715402256715119514089452709392397745437713371288182587650077681179573210219374302198339942859749625101579494539408557054061542328473956603454579000780035259169618148042502035484565361552229192207425502450227757239494757181316015471291858714944301709642258212123810174398555480182371368255312241463580557767726245168468333822321383883837622713092214445197168712545499305119452411999370076580050430887325027012334444245528868961265916491995512787165972952454767873747431992025987304875038374887771389771843227514112384566233177614754217995887726324049467523006786945614190892732649756665537950423628289270778316189383974818970966326216295304107650626310614160912588912901027113209150065058302481504029209657695636398513156023819251857351926180332106728834050353542561962215794680530915782465723943290262073309200340235305345764810744955419187784470371679295266112287464685718993213533131264311258521540495199245761482886275900266948589305480030118549418726737248734440108868112406769549920658614628570954445142915986924108221175893275252619057275900201133775688311897571867769059779266315104707759538062976255449381425187103790114172369511543055015863240282031693677702319560652407587281574805758130197461762920705961772460637823631793431762091073280118919180623841684892431167182113145414180084110649016089327383149067230657419114112297428386000808179276109183323536301570331161517903659790886880063739254093499606733489785044138329226871579451902546346375813470498925242232967333336659154151212903249622063865189854940566565915271139800642620466608751774922982442934230037963141870152870700506522639337075268026174766131321673615023465320658417134024982334143928923908443548573469399375847156688490136445104417191233836505231069591886393736982562324896277096623770700246883853126635713747961001969057015394033230009652910425716948502566498567809772283394209003117250876773477067759809197976673201443765806858462330729072256141212453869756229746992180154929442326267343623986496131440402144165284826560079596621084538811828097520455298396824617475836912083701208842038019217464945272578921741038410318846059964033419050228456508271359148299226908865247134026404606341998283466782221413595197703521961487457356024211543307904096892987868346385651199106999527756579237841168142660470129076125163602297991595207048846799938039828009217766898552896090197950373141831690132550218530748049898636312461207419263096906733244152704203169617055203331704072204923947239192982089641628997593211984784806786451182937697344648884073613107762724208285343415216041996548529978271300252981728577264375534425173095285160339910366697747782133283985821951781316266346276938944404896621204051354092265409535356587976915437619819339526265743083865588000110401372118896432201991555570871040761142797535382765989867820600186236006592336959870235477767769001245933895596578853679875120747871719193875435557923469195747294635130293081028972155526976909517052110274573665382125209228613994839500041942406164834814305966641670817757829369088895037997076805667203884906534400221820218304729105685914912604164847651625606198133641982095754997782972239013536961927593554708528823081362357835022605858271366459936449768502720361509221980618635691645098596264005917016838312061198659941548655698186670733635850209345774286180988609266250992009367852571590508746094606460277910459613165899518193095305990474951087329879758644473342691066966732829418826080747323079034580734593294697422796442946020789986917854405850381910866285585828240626969291625502157724736258627292227776288085736632939810810846990352616152659277121584566766659595967333364327644750885030964768755894505037423853276962580549812474871294124115068599244037006197660523990631416836531299449733793759761215013954099716995377700309922833961070448011655736913855763773032168172478626608149804734310078923959831091886870264819944604625061449130519755840142350550140912641007291138819476762797082028519088497993470834992041124001084887930199458257134609618070231164681207137610652055180486537111900100816245005921309811083269434609243666327609064978726899780375284824535819732791835858339593847165414419025539717639847974028534431630745547340436372421327195973672387607954193471815258202078910235239717833776559516140401334945990127915511396250438923525979908988923622390567422175062957257122494214454425542010160611090248295898591816210679046614569207186957228252053184039657453622466356556462907838521357992430387694602113871258072034397358204940764437370736734696625651608919265863190943959778836420980472903568101336161081232691586927290232540187764464477508896372999840387567486741432024095881368530537485403133689708637042376613701135737288665154680764363474801475803195800807253009727050406959121882471609763989981017243958379781775422738440065521929750903795051518025763937575065050997187320784581437465365380736685996597576786050916938443814178894431338044650774995498832794481914496934344818046376410669911261398689163036204002439843444614539247909763264453049556858775562344727007533480730406145463486664530796538014656769604475309354406695216487129507783485380232586014452391443577373949732912816785802556956715177236026512270202140170603351882966980605525015382624036577264027582918132693877940822840579100079471082497704243738199588284766161428388075150000826739993698114474821776920845274997101975573484797723074550608679526445826344844069132717424175234304763849256868257814793286368515026580665558728449418119396336068679676640635521873493304613502039660568997321764988302452885146632871397775775905666774923634737253367163306670394719917363360997745757176784427724136463483043628688600359933757627225658305123063282060484845065232042516113605648073633364258832537073860185419887409494185908465408297409457669279883451094786010680217881459350060169743709250138175086129661986777528546570401248859337767798305286313181976486066027060431055434051751851193767191005349618171577229175063196184500469420745226483538991154780287940623426486806630564903341687445795672675543156585944691239872334515048716860313617855263603648826796553158176144914582014377238049969909649344316661709274836111656983520680698472878220955454685455105722391905010286379183598160895513266818729996187117909824396497079430402596900019497145687949283450585004426314709484568373534444340008473819432839249380979974813018896314889088234719096098617509562461216700460144528426238133106721709033340816481975613563652402768391037980512724667308416501249666525218571644731206296788990481254092532048284481602880645497130429740281184396511222029103484290515131907620327608042127972241646618733955473835891186855730456482602800113345180545718136243959010732193960920939245717085585420184639020282966600249992452886295795124047510443192151603589279392030207919787956520952577907133814722384304866390953346553128957343885577230004128343346171948359641045318189043749871757425131386734714314496944660757909900154672573605327486999567981346885650437081646914722622191343617703724344012105824514587836266397422065115532256597291791490400181151622943637905462679382681705052511050096166797474873545015369253521442037738174834643143357169426054014919951864262683679751752189446372007508833837997627505428021616887090915143639486675927480955478358379257367796343808746920242559530631371226590853037316365268119387055447572197458671254186307919600526965706739375139683716922529780840950659014160176965454203071776005440595911246049027863495379758641992546662878272059866234911262052715801533517334712683782113681687223073359102113206838328888434992209459071733552889963807355054656031521809548463038297413902905699888021541647108592701955104893091197797930375937501932792152993404520187671975473859280975368485829489620858257701790689854563898421259054121060376280934161762540294573151271131224237631222009585040308716884868857567071883985229731559206106912720103640800320523211399993303961654715899959956315470366519465102830771756026296861141484316829352483971284421051197453569662379114870533667859876571657832681135276742900349763543081241471163839806719496961984601854967046283401038504926373904345441126143297783616825863706148412879413582745779011714937335098898805572448354819580578217669711403970982246490775487382366795023993744095722121915389751248427512394933061507297372347898365076685317470178862143901750179104837838267768591728266673705751894463823239572544982603716122705684583883420047096327335449022816406618680055867423573889757435465014280049229316352080474897756239672256925935924949146385365291235120996839611793965736206769957187534887228082876226037169973602555011901792955582534210199358187056602991173590060163668349569186784677457076896227459037897094212895767988703816623835756049092706245423433349824955817220166296323186186028104083047986507048165954854479410290070970768912402796164191433269118602900054486715030303778840542145006936076041726365705589140709393585515911302067266818449577039059243762722511347045465762433564072269502233731298050071238165634014407381889366418198869316853128916277925893140839767350971153721105098975533969764726506510052840295416505953889320928836355440514540991978641549330892212496599269421186198120979817159695905247295465113433451847777653707881720721128189931305273164552171529608939569001178523846710981250490831876584061778066077058183482462561540074307578814548756475604927751563631839610013265085808138248354654754730287822646043388583878539163711152141925273722452522215660833220108782012586361033692742738464353163928610427714701160126460147432584409323072356377601274054285781752300825970487188032536338516974286504254804589661903780761533306825300967079302923346959609697453131828295292147335786952790861648757540264781466380948311240121008670172352854825193646625309009104969173289256885310819790443509724786597799658233159786678807768146684086764303159254067171267880355654201113567463885580800563993278435401045942527614072376814806877288233208359185299389077893294196668748069625801349080099573468031213489719995670301667764663506982845748309491046359397977266651827885019764459071507921809772082678557541149614326051932989413694288979842067886801873104938943961381530955114685785156577023458181992835008629555063192794656284650015421142148809934671096893569375450526344940199962467350025336472235966634493426879693115038956857173004634003643757191960127683516254671251925508006633944229972826562076167038630336081431344716252919942269845170327638643007832353324658808950487887840749321009851788361127679695560746595999863805530488998639499229200858865919612936282316032071306146034251724864755585922869102570996940183364329477707930174500291712392369219191306664028590379507814584143256472585792159562786313523654101526179004481257805022576197652404257054890161182211987570164698334099912115908500773536988947755720903083415114231085721472107009749690597120192829162526330058227047073777232408000538137160350499010227050721527186432909970035178341322972646883663634122528508541480540394845863783915477253694832762464478034235506714231793310953109675063691937608944595001325415089812831202533873708919609002424813019227558648008833605676068543611045344741985527616490357245596308643492452569970578600369076179277965997065529813312765539626690332784177029169330149841622953873419453965201553412583049881585815705993388169854307721036104333909306873027336529173097021101815819099502056562344969214761310969572690922003849056392330419085012793398032766789562844996390315792844682144436665121655308217703587574355308270414931867148510988451132059294416455599934745748195025074496621492292890480818339484220538465500751159710960258518249924588444169765021124335627503318226835960526843278885430078621282883743636325874494985024046349491997399041794211708162780092904606858978354940293528973400468925502704643471498507012927671695629367275609601336021718898682675136630345304210387414280312297584704286574047931911776783519551098301575623911148009751193460569668369818461749876227785657784513359526445318573310245294987029396015815466977021467730312348083025681464252953817798606442498017336406686235311161063370749427373889718673860417397641499339555400490764404649904497431680203946306758973554530960379474062330119536538083788204373752187745659463391258369277540840358225540546237107179782351586389754140442603506511323410595437213065193199079369440677457248347451472342872307096612151713409806677144563464531719386721812016305725507565167070108772319187063903248500087021698577559771496302941325129986190861561184730073017140629983980789304972714618644632129881170180087576321567628875275030843738381085730973516715610830911952288395536564682592828645391543708989161164579415020452973261802384536167559904622846444686438054800825626570889651148831272548460658913798393889489746993450681209863685607189564939331284664821951365388684217325962605324855568596330098103238906704561697000958073627770253668568130499698957765195607857337550217871956374428876529037236515132040677067160778803995353006615896619670998364600727644920962723239471384105543496647904174008371374310202155948011017712561783018361102189399812581359071746987298215192236349343115423762343208658938548108000252581663442953942870071549545619083524189335311953233039861137328537695533923501109866274707037651009913720673444684192553675971180358454530405463325453343513012745534384416998690151732063256311828329375027264014250725649148733521945471637293373184002104031691744401212083191554564987796828107409543420441779486600328328535659423567482734453925409314834670707138386597671888053478705818110017165416944324436231302212011977061906569459829290490691196936623228112174359022015826588759204286477211145264228843962326237770455168497790816771076168693639359660237392548701847399647412543494931681154035575324891970056777302670713018221610059551219684938876698507388676352203277087136768360997705501011026861880090085179774089147405035007346481095274515040932476033159200143473865771042844841629516643951450714077665144604352837702512493756406015672088408611458226357664364616899305768618700195618195072071510035734026415708571196063511751715598651254225464026029901177063811795488002564244749929555998887362883040370242628933774480763483846253281407775041524610646213723788891019979542646886984805075495187485168058379317861373711536088210767407716577173011253505967476868908307375158778709992831941523648661046987555460794189058803870932260113395638818598372991241700807807069641052270172961245142203719675500940873011848987439192054581645280763129606576420319849225204126057330434816825361509699417885168884637727399925395021849105180192337056182687225684898313651383086427141806105084296320886974692145617300671854170972626343532394924284425794135224722422956266679078756381598099202048871372682312527317629537365057121572598421301678576500005558930607373502905752179883313394583089721535984591572113151868205544061278638768048530903294913554277650277176926752187314089572912670634375909036515503548430672594628226593481855272265372692920599704734422365289253881953552239548035178325264143856733680010659593023695581354045084806056351446720105615499576944994953437683744981133421082016363225702939845104840818143141448462557606608258407871020770727664333475141149054454167083185768497210266578208101221721035347826583407832966141957162368012153170230087489665500726760768630668238475941329503909040561875736145321303379822077969584503161381550109353996510519628375724062818365548155513488732295990166748522744334435155956152964166635049439215231056314223532985817474482371636934849743805257035107229969944582805379966737706511716236191509606701018804613309015749222470597987884854724988885603537577681356525161347688747036306797291682753554191329297426912744406261814677417710297521431253023431994705544080653531872365619004793222037619122480867467433979637885078870214196706888802237084168712190692365862824849476825220205342968545693456971844069479425492854260556234605534652379336275983161379783887002224614363618560348859280034615444093408679320049639151360885369812524322763709389154925825768807940399641189021705290152381159634848766785360082904230504363545332462342690603294253216927240186469655900778348275851999464753859943750551231319154406998904487732184462248369727700511920330482412469575544104660720695816173644658407414697301189456562145406392342036626835897218240434959252343540829235864098463333718446495081151062948253972329221535685027304568310290540711451347045481666847241623808273432566502246415366870334917597953309054705229904876856974882919385315996130888326615154732380119113173813401777157901554910907371581539971545411145223425128142645547711649994919770066192628496220827286545659902456482722524147430166960696252065322502923245922116230705468075380253337587077051985032404384397354570491539623416388996755787668662002806997695939418648206729025384330510942384863646632523783660667593552567436018811923611689568630037341350457026257885904373545986919682899995196901627977371467338618200106005600094580640020900389695340242200658237557499988525886208372073257989050399350875517269305028339795517278643381619781346472127129491617557522949729465846563329458760209669072045806726846716769090798019902703267599758634011135930285608391632866850957514244869287340969231290802700229182187176921080202665215258326858653880193245245116444857180486297121575444083935117901240785028225281457677305438920231365995558622279373002044254387866940016666270743452469962004161290623114005047188142999825339104032931590743457714452642804975118475272506026958856167099109555114434209042011457884099493577695311372550673279881038134845229420872957904957545459712394138417029328228729221937854448781121765735061831472553424592323938792051095461869961840785213997780187299513249804120814444732840326206719221853328865613370746521222469754237223136273886575061605285678532483249070316408031482884865461243100945250647904139469242068934161832965193341118818695819404867247813031374644753703306841516353600447627759887110303786604633496425118807038479945565412884512233137140476400117802759124235751271501367509510496798520069916730738163054171036084920584439294245606009734002684906739779887200575303682833633918216264280283962462415952076690026820513492800459712205732995118903659423786779465201004498357752305175229886688266773081371333180031897451556996030671102429158667951944349809925470121847925692380743776780425353894949613436504442224442982600269179092070467923705685241474368571549890836144388516722436543607210039326538025336714722364336353563197314000371908189976603959764037596484830807603992399831932639835537997661495295053963383309301849613313983675351096951300286775916761793872092085465586088462659100770165005883405528045544691140125479494705391686544547898204327327226131486966483583990921234316748212231174802914578188142194659036771580304968862343834548405232386500535636123751581043027435035106918603123480828714799143289119328159014553891295462233576579590140879742545378066154172185263204119177204124517542767885720356454791880400189867791886726128719422790211123718343868659252941609029840882416022067052391127251846133769418651973943440881044292961388417145734341770374463089318844332412387049697498335109091830262578609033508889196668518446341670789764404705210617432529718219010804662121087853983418333909857860372120916380960242960557230697586799403550346949881012318767015788109932504180590979632123490515561369636963434725536927884217365068813663512071266840113955231756485971601298984129195703288483091053165562669209710461525394067711056057012552696575541522783470658417637293358953262606674025408937903122759272915654901131580776089215806694370046907725438438280429520117359510254041438015820776484049069702547500587834970049541689292007121756906444510252898743066853821868088883175335201919479539817418295199621191347927568614510898523115855107378233617507156964812991051972863846076873334745647369581819568526222968503319464798731187526473351199251843482749156321298127666017540332842883050535447652567014473674273527838932346455800023118739329225885782591645151738864424095051447242665399714358568848447704581520219421819833046269721209571593329670884378136790040789255126723372877475817254351016913730219069570858481217988876558249295287566444789902595583952965461418213884300477926667349885454341404358652900611885781454073148000874474018693148125837200505480731238696304184855393878053921251204063025922372199379017124924986606572945212678375226407100711711256169740116288811641154522167714886763264479564590605506352673136952224892650838890934671147629133241209589034818234286373322440479368000068268747032774869508531837862086408822846324768765598798000393846354027648338688011455773734889553051815230393580785995322349837061309260239977560051402964493301006739387151840906347645948095922505961867470456634148729294703137126045827953640774928969952878974945868388157273997184621217237918861842276412377016819420337230558990794604796111187467784610516192867140578909073243421170127770884955791066804647087387842890532571965712657339088115799407659895888854104072022141068809331663477607920896829218866538701173444183886803972814377857425641396304750056689821842607661651042852066088497398753811113742334355165924024811694441698374803133389753382930708885265284187104804222581876759015806859517024063131832273779110515555495944814105206563527370130726476018321338796228705567094039162456418207872527693603833136287424433043168975595351380074456662235233668541048139814776709529832277759423653957740954218269363126192262541155470976973684186620370397066489684229180462778928573759678267879041880156933113589356550592090908315640091976106151919404026380321290828938141388188478252224186382171711624575420705793390722551523852487053826528295547153139021811438466133377680446651211330842147519115507385534103345919746659806278090916475813664199600135495833297844203102577950976729433249355422090793822733214110430782711820850432874020348791347117116954396189834423867597799632374410684550337203138815915727617765762954088906074567016231097973969497551834370668620216330712023317157860645180068768922551924435782348427888782475905107167833200620553336517961197962544694162968617109603401004000285376730962245666260006055467388815476688974679949796732433474223168771564211678716082434765925609258273326748441561227900420945152870936266035841345355073339191576522542569467109783781809993680143408393345321738553236312843972010940187963371882206818752560193936648532507010374900195225020640060476959276964189824219834388744921597657259674071703974086955018935662923673444858206383768635375894168557128920754857744075482278381826258216989906687382707014266301624326447075311624865311444249719932214818143029819299519013740836624356886956756005325080082405275332217665685375057953494968567595184279123588081697191868657461360165317991367248860325154234055445501315265065239087217770307539111143174509260150483234841842626599567872347250363791203998153784150778420986512068151197222420199258200556014234008157896092298675388141702786318624777276529080790768934542944079352332591051322247556606368310034457436117272089090076792345364475386946159514055794732520845998039769948989296701891806910720187614464279032429509556925974630043397742512555956870573506469964650231872803990488169832059278371388667503966826264162216943728047621117446859975687957960966996042278975302696321068771995026352524256437812780858658145655920998417239737021632146583983149480078366752442519745547055281869130438271156431850156753930529457152959485858348266923836061479082001516704294071314224665567473661849616211186716188210355961807426150264227031368204588267163626636377983554653756377828742721181238790688907041022475699596744418263150282935372891642214038656751005111034706098422403453805330057436767400485404638746799783334357231066632878117368683925040328975373129811629511020326557633902354742453276651464192370708224032621408041831485632968121779163269880004290053975535182583476667719733713766700707265184165983174178318675072449446248804023709657719950250748837832399010214155794528257423666373478198166023683569049113492854797192904710239689624494865909428926649631989930958056401031760613022018447688472753622242538472337591658218498482900414625251777634010838155959733751349902233564405515938800543226994218206136044751306123375956903391270868810042343583533191177692736328759821319750687844896615135039519222627711798531803356206091666320778044772111081176856091574282918414614742097097225433122041507626953316902340774814736540646669169602426709325420237857826169035863327267521015703122475730982456127396580107509497562626969501710399464763278709876195694488670066460492320774606068196984680390509046109219775633021822444713605640714490484121212428487115619733079522525290112622791866329874835646117341360606181968105128402112756639721762884902330896001847340410148695750907948839378287340629072249535636969725068641571534750354427236369558921841701492463786136697457023452489201856304082641845964292393705275998682589242124650296202393800163903812762985268378162130511521738821368170788559527615158439943311866151156035091233379142978595311487725021839180633692018495002969579313251757051940545739069446123064664659239372645176082839394410932454614407066552493424729650513880520360595524775037575485358638563344014307071904696917386294884264397589697799981337385386142345384146936657881062737607294615128470488032688655615514219039129544308037279560727805776377425407102933183930044022697703566710700066675931921527644020467963816272731322392893933258092304866652563451531176846188408822428917924571782853604797814807949527833266651307378594244694665321784550882077405818337386205002911035189987441694208783290999242777020625338479333661586758507505048026735577491107547694556197463571131471634015742063532705012959647504948730803832715237401744120360688325672584887966607552074240347971511876135409249400597151909252331439712193490500105494281526855300685811244344993384998282824305525300180264437312757693863783422128413590224167522233684906552278459135562347645805115219178062468012144765304481951651129742362336601371065418653361855086119211980197673978962982549546914991784896073965872475722242439568360323388664449478765292394860910573777645846584545622237935143337642702578870947192842873613764967405664713226175556692996457035028791844351428971092003539681772724038503769544561357809673347344466258403191516806194850781885015482982293101710071350129303370378493053124172692899337763890055789726607006523383860717781340281186554986635531309393491777878073100775514390716998426393377427377495359955605402829025722926006765238398783481008262161079297161340477894671029173741004471567232944785761290326234345291613673122637168588201336036777323555216550623090381622305139911739540773082951339418643501527625917224832858671817566865389238355200349159590264540568607196379498515867659303760957220387864680360091489028896273848053912691095244905291265458225081247962876953316858757378498727568914699497543733597941917055307492819268651320518222545360755838682040127275640511601520105831900405783049079681465306954183529460052565747522330279260359743441245887448753569092127339368547478223976177282519108791704819383039365233670159029019216086678751105136370632114223816332483384294235859883280166024631436069578314347566373230385678600434600432289821490549734094114833041046796652248106861769281215322318618836253870333003765181082922917525935821206777228434477871043186018074161532415555901362485993404322093151309191861797287091092442304898514237844675976029562506696816447274173609399227429517275737185785065630159023114588280876284518245512383419553023367293395253689476321130951578287513827490156275425862928455412400785353356257702638502331767671381993021038302612333026844068409614422415937788598937297838620841361732712371173531849105010477030486671898811635891354948213576335764542851386641072371623507976939890037460345893381574916354029345264475628894938025929181736203667589263651935279540633525876611702719294661111276760440885966504315465385307044737470721902202161629579455119549432073592289138547214307959014715274001995314142595552573460658965479674369166310367866050026461746044107278024136524545650840778217958255038871869133505212889512589760983304221719864891751434396451507393643468471758857833176268772538146041250848956648362867817461679373089256594911904848610115003732871151466146452827249399845195689686754215396092648348173772973761074264294263289392515979305481242065635705368768164857262662701856212234817180173298355863226027278163752846422340004284391566545405488004987621728380198711148233354793047600053360568518123146394373155203657818295914097265729767016596894937277373441295375091096732053670487817698234474512019308973205890443593919901410939294784812605833829278159899139823827280203103300913776969350351730842247286915844826542894081736043463682760016455399884295063711013202341389437479828946768055541643497928120974291874609059920588471838755304718200010962101769536112052289008888887515414143526272867257931478028407441868315709783599351014581078338189123252784905215646715792791128138262812152106572076527333608988524770311596492370489947375156482113912731795609762545672412621911664729804653946044123334319255312725840773884820022501164619480174724623298023043360523854934741253759060418929715692364594709090879789831340811293595406284118160366816634915027646740146330312679100664598540862314812399542714772189482266485450972189972340802840068861483797910921081419581260016928258768707037131969293207605805766275869626807284614309776858157434456366398299804234790118519615571487008719671837336625834505289422482843905068328282636277575795093981694461322561171602987090689947561348716285010710573388391567101404940709925072187232610450587527543898027077315307630630897070335361077812056639886571961963364815348448253445589149159818345244293605055095952549072840366860460324947684795123074727927301194549725104796888794856800885394438886286857977323281122954730249047508020414709955853147592368211316380046727301175486054982343657682977179257532646034047633559325965506678164886062773175580308342536669690511983209970264153435395092836739904887956888610607035170661981775893608766111798757938470983009842199526077766142116436226887918870244484116156312993436427547248770170165021191166083928197150031046350148864366362998348496207477728857337758707796875136273513671269711125525379693508087945427582444307066638833442573185105052437109387680208796400262826783591925676059541959115759159483054130554623614849506256862603331354998336812123650472103784954073367849345187385029955370328527209919902604303981764344919936746547791658596140290525858207245385602261879496630848351489170379485457509669397520624220893561269232196957967566749081294389506492533659039342090263188927724006275291998420715482246708914016532380097207691987543731090452158163079582622490989576233177307421513270908555972578815782918431762836233980601763060602620846795134861563919658604842442277200133425801989141236004900955364677352855870058448208707181388636866363339303996092877104042880036319755049478518210801309905015204847574690483306429237719396286151023630947116046730610089707059163661762601402494097582976606759591173433206892391239453078892089076664257239151375426104130563471206649819392324990643006459617417155685335230063098548301707551263337351250035925378094861401928177974784727490701674944429727170598279829027888964662535341293717355484314173910015500243711795393468963136498554311738446730328356407916931868219892008729191709241505346508690599355530664099983934958242033167214519666496510137425159775338880273637973917571931761810422655403818157221250461923729885204481930088786209832530275078608123323272023242412760076864369970654848247996842136933401397308333263042784392515095090923805344664942219754185585104186559829041430327163894341900797966475223729528405916226919762925157944981562271113682306861314831638842882837313435293495347087541387361887055494898456096023562643795144011107240495028281864907361872739356663960139031675579030620936347232437249530157445452273227919222706187521376264012909455410965299103829336550635103788449059937974602969748011365620936099873044997420979155066674963792747055466722243731246698974410536560927594041560401264865196278003892749034366965982779881917577835987898892977968412241861621906825825221440068709163120152025742520783100375682859353983894392229509414728036315893392097921583208018444591995589966188049036417217657808467002990216175590853892913739394097614743063813432574377605739623575760484292575410214672608680175551172792341859331530997265291435703230144686424350942863352498542960311145844970722957336919686064318507529530458376873986592103446414263914351954902728991166514615800740821796035709253354331967830050802543766724536771225438401039792100526754709204383592444423674459962563184023321375168996765770632801691465421457207352537207152480149420638555237433312912534820709866652137629960937745331425492464771842115064077349014533615998253150483767824621267007671016267091038368180269353749246271334178642335232759169716094147797020261773691580057113219664464881523305012358286548394285636184963827650210782658421138340119738252864608528876302952809823265429632939361939361611802368039153596482088315693590688412341126594298206584633499710495942736040080100538790282770860848465929256148830787509126667820921794416859670647877891522072160643235396366747892209651324343172796308604653698916847447342098406474671617382696723752388816751660286157514711777806172663636478446714375885471592081578897820044031747844147172782944854044728103772358651991828195940188047110840135711452590626809876245663490910251225945254651959797206418183336555686857676240685163438839794259614351717627202756004449196706907725415066008837085594184472790398885187557642474207223419634257340049364455207997625882759451558710414393071643303454733259845081127711461178322004651826453128412640290282268585811480363895273659291385512254369587753438467435785410134561375185017229357581576740251673520668117045251695029578543787476788272201237596552899842277063468403668731749931319473713113308729776093065872046377107131874851699028746891648137852592483553090695146759510877705297836505591628633319984792505303973003127697279232979774236841193469989370328804541654485674111739315709460105510205666175766953720773978475658623828019321343858843987323262396575237985353768709287866509040545647623103080064700845408183696499563515450412639090913816301653373053562124964077291877101895246754038648656475251581229003718523204689731032361479155756312561475964321671127162972877188169486048952645033785888597404396977565404047271265345105614238663032334952819024700855841795771008899819512397700021697430523074253717648651483870396908863084466966474711729955648098849310367729240195980198030626454572620186785955857887722523884549438125320026846797490852375415593616309973110674153550312340247510338764610038662229963020966744656203762956064626187388249883162913634138933195786473003640469792658078540203642978764056898713277339350955039435385108767904804962799497340997834109146422218680123217754679624108080341322653773091386929755714349188636942018751728400320921029732880873184297609830593808898356603225306335457120088086650104067547338887351101144584361612064445987339975542922869687528536625795616301969454140170893939049435966970490387819993569983976083790482870737597607819879858237071589390040690388223671340985820389109638994636184233833204934306014099854484139354351548720250704368410477493635249462003153194298118308410607971396920257200929014005208974202792443836255525578679413196095874205107821591893867398298410224409454154151805049901856044092055121162913744515022264169577107735445834633517792656343114365939360602724674411312972447361691859546078981247942859410160155173833683815544427657302721341873987643805932373675659481639243889175586374622819638819002234434919075360899853731642275370338224798901667164783426317705363532305449074421243873089562773013633374031017839783030333435403150488137140345157739618237096598617521437567522494381093217787058840473145748973102051756434031761058418177543581949322484971366607940994474096855956363934618664201473772610146384190658691732447316376796330458610442941747607450423333758269242265479273740244905191089528307581622537384057564243724524722819269919206339956155212130204670112920198767898215331398800625268498307199608435850919527275380380221204862201631105063111600299301649262236912657877996762070969801791359218768478979367436508497683874733802064363582922327157898268126185718384703604387470568246934344695361253698287190751318049236178134145075418574532792909178654795820614326426998312921666530376935433588359059504095664494114720147457877216369684605954511759349748785467356345838088567517372645681367880378216795568243914405496298187104093093780912963546342462147837806445886980175008157424647574285666124186714315749887357428401787118445505189175621912151823642127625904039691682455378923232068633189822175690837260558599715369381012871206879383692553637276327449114597581115690438602779779929729193566717652266206346667028099381743912517970891273547296172336434701141943764081522337875665881265472354311384080209288706087900241529292898283806583174073463886622841505282106575522457955978230955670076151378097644846063996589734828068928536479819628761957854510925077566725339082979074579904207208717651051777517002102913474491111899934864184557334052352210684383159939682430874584887735335029735444623046363032194869635994988517371233108502659452966043443948553255019586615509683694768316729340358832404939621228441395684225664408508465574747200406518787398693237526257427125471739695490565920613441349296833627478106320401300404538674745688606528466816087819715382008471924825443462397332233277189285744449714264330844275262841897495468995763830257867910239548555029704377610017937010562566458625777725097149337511964676057194437480905079268394604031878001788677780837386890519221292821896447214100127817123159223180254656404393742685851447260817397882775086278100401185076124100575241270233697638238842866355734783315069120506440823074571365770639770103502629364142514617900896736856152221366927463850155765550535007729263068222512118939684292646239878310444033113686719011786560633526366946073093752539565431734004904046997174183118538806869389279730966184500514194635628612766031512984415085726523852295263919910786590415026788484802400817654167184897381992238958557350543685429727754812757130529126914639545140417720640017934048649043349800909718617154011367735274340767853260819135143300782160293042473411725145866316473453423835955922210078642264270887213328367553517697313153311357829912177435802181078937721413475597653993015683896347259948385522057961295096571212738032459996828025823992665798141386151266336081079371858383416026925982782446086492502856434546561265421458921208975016505708935566530090462072282891496350172463640536651345678009445241400123458354814690832350217687765076976183042907740044497205970362712163675462057525954164177082537491931436586404460290112834539518920180944432264163884783285756912485598327897933083279747250950692601106898750239671485922018471972682745773332297840995173354230430338755495240825533935609997095223187009557501365024039733595080084637690298022994708333274719955972179691143131329651843493659606573747040827954036969339402235589290766475925980437838112864237905867565978647696477351306902292511097467883552618844001228441683205083819688725495286648345540961845656774162134704063043529726212682178663608766931537235831323532058383761521659672210142337796416103916418899801983058023895466699532627517097314647579737764310380840236545482002400648029085072946700782873656878040908960339845493671465398531181591707693027734906363015537454252619105478626918930946096685575627186209057430145404823216371666121174941683554914063705616992510578832638336338943736277190207804574025458758585645797871352276990149881518496609703423720286297162859699407077160716661860238422228788283650637627233730923894082813343818641287840553799716128724228180565978660161856451734524771057534209050145367362734081737166487692434532561706028351431319798485103164761907892099199224459318883994394180671761975965389292927637131575790390201100095862731390528714841649934293670983200725407013477873369047732828508717690552988692734565654133484192134884402236537918318266840041396152535054859589406630883693992927039710090575504847519169165116724280322049172716460429052110165731090954886188453823712412886829149615235978240106562190820931988850577021115178504140984497112729774656288323706308441928402855665001608628033168906220560804683098981260890761772455199376151783614774996382835758912636779119468543275667906274346942142857866173037451117506906247131271959363873727408982246910548736652352008009116335110006420846059976522520532450155902493046686381966378646393925856165131325811006025129458645761205651900075364247741671965326761411674315818677372582732877382233017406225155220223722317099747744214605878233645901574753238362665719211055180610623312682064321565203384578823729709881747903318776951658327228862058713569174006481017739435132922585345797468225552706467228337635006162483125918740539362404205600419679264449331770533600705205212375284836218839919297508755027818330774623192454601138034976780141360673214688911723060363204420808620131038594632152950568806851747972335781649321669157877570361688081285420869637538513018461208584084130878046122707167363263767110533573370697923859296687006153400989136108170335490176269131899764379182273040185575928137264952209205606294236876675327094080167847575709116137136823000277183073262159664976176385031996370211823344527172280791474031408167482658312394173547060316998858180860876810264606494801874045743529655822334970640514028693932946834625998156251045793384714884630717972278885645859665246486617593657908173908651804158552308430639260281127137207008478966830798392573049703414777588260158815350849073090394012421831382635089231691790227660245639514429402024213373784617441356343400955784003366764343238532895253535811194297865018008391143894259119303678780655612448485635156358023447315847119331666196117777978996193170815075494972471042107336448035795188924379194752484819446115765783678106240962573137532630948398994484256322015134936288405127678358837893344962974790796176784845288020439601032321093377841462162686953506903784088553081081186869906419115375295835794582771080660668556350606969697370520414483267232069680258477833173988377099620301020579187736125729377243526190415061622357727579151067586475642427206055044110823859344118919514195060658368901971986282865261177356137403544705776693552876469782888221529613901288677213961220377337025278876501882163841726127612399074861525208858988133901291456052880628784041738666101528588616605272443092303258016266020936843048785950462051086414421596411378641491683673969587137782684277080802331775660198355338142022974072860000762226020746197779133713177892430720624582458539098173083391582812384288758141002063232614301053804783981871292657462490314504079291703477686927642433419520810357739683369553838009693319621288202189489245883332494981451045751677070899422134514326151040044032763003754457300146199413855101967054239407504463834103502734018530439823477718571804549962331912743334063016347424076205893911312011650099090322173819850473064291084810466956454579942677226523888866782660339438882590741650688316646795507511380100567869606412693852059704931801335786378962226029710255035362363022800403904320743753791127020266456960707309152463153001503748780551639771456180230024527394442218172118638099403701129732392523589653363726100020092368184117251066987174649797721009472582161202776590826558324529188791626282045416819316063550084328470227255927980159365744950782970563341788171159572341341939013036315728236282293221055938866382305060215831066105076605799721202717959825328992686171564150997199996387907501549556170452718049927789255688047445746942744631962012238045002818959293412805034299396261298168600043776243461060785149168205172219002990025397952509161228436839724155027763480901548253030460699848908011193340253814368906869638682273107371612816747975720004614488353079114494307179927731278833674374056805359542319038278903583883632302850700524285785286269773273335068449904110253482249392504689657758088370639796649859190597090549644056949685538865573786334416251143439666092596426728502502490000581807777061776296149276421768055045350142848268870229085827155892442522896668854123809702084875447602802075506475020272348052769901777589163427239958838713420432114009666747215447822000174544186280714193421487857664622764918073821985915827664512052399433737798761567691174227607988955206251259282971256274493001632673073859182955021766237462484426737131807830399829123428353809469871306177684874368306313086913905641581492260972024880077015013810992089620394432418959181315751336993507787418145971916345822299867630127764122811408011924362895238122405688604904593480045640391934893301675989997904099001010687128331635410525927541957134233031862287472259093616970311912260045925481087536806038952714447806308053425617789428448567184988548348297509472319361060124220568774900034474868596367909456767109468267075979047619519523564184364476161800789956048392019570745401847070796511235959299815279683451421661459616684682252586629126384906166028281416910516734972925234726450886934879774583868193759773546771016579176073175146239519664515295831266902134013155803222792974044832768989165688416111045590444351622346799602135918631127865736157799452383214864647901420872512290580556272323391939232568683901340215050928870069387001222341019965919906571006902756651935938781019546498818674769005106252279150949030623947418448576274185627726847873596700497134625819667251018929028111531007631200327274129092280469721684801825110934382462929887382385147050851579385956730147835236144907454792255763513021996605873016432236755445059892302759818817494059597985893077977912737179179112576223254538360415819639677627877568792615356423392137030724132777505456959228061331375259266943909667886813897766420852352328961268246370868081326629965509063944721485832698209723263526495132395047459339515921260420860629458506034637146130351442126927807627157851301784018811419147548623134782149891019457312590746201006845072619998836351878174128848826802979694748911223166541123349103572280749088036820006130098675451956254900613320281105853176013102091737325493535029262746564964958465960692391700939243122253763495477627970975323961303839237767710522882609934607959922057856451392877449532661949711448050894532745464616676657090021792125341292805421586519265307830719526517935150067638234938818122555860696840502215977268298554862997154267402755927818159562104996038718256584273581589765310618544736195569648030987782451204515655892397227647546209174065459314091052367219719498292915080569770823289378614329855643319523985414284822857876555962748664552547719499803486853046150416234143882100172823381941804022798325588060660612716944087522277953706582927042840697949757732951799053041344089917693508761924038806709583671566648703825949118691699370631687285807351002382491400525016409737598326080119875843217817601893470892674401103015234441743878639054886594046589165816954914236108964027683551406610183725633178311068030600635199847306797418378030417729182348638726481515617342868585760198526603447908487826564569810376543125258481993253792888381978871130828414336378367128691763577797122810498804266113102960818630756078302586010228528184814515982973085159152939624464474987871235993658572518741551344736973569453770294019385255535302840573291878551203423317597612492067643253008195524808008037796032388883437401436144702932971153311492069086078497515152420340664506167320538171821030709094108602584428133602687051523066811840455752945170230238392333080529672858500824826339547506644551889519869684165122549690880066815980317654464034974952284174306134105563088497861741888599478004672052310886144791885376225565704001634369233063851249246026749246873365940885779939082768505439227498853285984697363284578824487214328853167888820414531278653762238029198760706196137003730859196377896293484318306096891169658049110255546547613951105353534504366879580372123755328517105561187452816553039711365280607024758572791023273449168897585525275493746784317806942977829775643382974187800445349122528550477935664497840893755685111513757018344268121429183413720723521191607730270750351447201557812499420406407632463881390617331555199446043173453242234407515111279887903989300462838616116705835755135338320225313909840586077317863736484292977178558398806951942233923972869027420538862850192924401709235394572642903376778907805792188792527785272297703127718896604188876656568749153197143510470857451940085148290191259486918618355392973387215720450747961272735185719325935381906085524824322297081405552085544135923666431428470377242045073276572846789781087913818607164313395108274310056940180030756222422385927250464082156080190552915474915967203261817854130665011381338590421701711003529678703237444777728633542118782922312927034247277327037815331798779804816391128375211206083436059977233525630319983205456082799378375850549080207323085355327678094235119054147663897674330630162055936612750601405688270572893383219926792411811653701740996959416210183338264700917167104190349017161731585332124153420594962085081184559204394150879049858509658134659496852375798634958106821020564778906360126596099184497298999261690779854903094152633761123505532525939805764437952521828366169169349478545072785557012577081531672530562389287168861171718989495730825251043029913703970270036175933049510891196211901638751783896594430128819563228596298400300968096726498062553338540194007870691798034219475855253064730207184728744762526620300175010502897436534799878351756095140890439568414855170705777204255079889174253444397894913395042667628561475669372902518921666306540090301148680443880526640149270542974829267206591025096702988281072898216841581613895587074339619797754812258814327720484443055891218768481407694936016813248018237868809230290984418617435509441258761172758139903962792450408895261069821936091430099467424226625809024532113925794456045177804575037784153222111040708339422819361233983672748575771081921073839150721014204235009766602185097472789864269481370555018188584751498694839847895674070739960830562748553567976296689176398455361380878646219381089830525457262463225524206141074310584498874525645931645041667294085950896619135410292089822941652473936869699146923257082389195779700260628254730405539581796686834839185574062513073036826122918905440122408406872052645928458460616355223046528869179333403518498412703492435149393929156962489133966793593226301993780544966570807011371288521183322023199118849210139879006264567042162316329183511403049561143884747541233616973052260062579136206026904006918481655878950235312793698902039278031311791762042766396656091982726384894942055520485614136796674220779894744882295006255763726283604085833061335028500009376042664557472224058552741784120899698025808171415491029373899112470807788061357996330319842835833721405877137958013247172825763507474270804489132613947802098211693780029845768287342326584602114997030348828680344271712655368492726328456196710924171583246982182086485481790073996821227465393895958203811673581377353684737365510231926101311374459716545063875929024141468750222829360881376137968974747800091393305897750022992817272991072807007931936320482181831779952938814095001194561039070260765376122903060142318090487990122491423209445716137347607403557004738081795550883367782508796938215854920436405114123190998450826044965323789122819704891098312023371805089332676161131538373702432910623962948246015370790283185373701493264258279118970051735603717268777460214393361411075480561882598286320493782969328841605768585811703676257141577603434389169196373452890699762257638776352519769318140265144087285793973934557273493471615495103349324146688009262129717222727201805937053523215651979119775467248895543926651614890020320605552003846800001268183901347776738330411315584365748162503232067815621975262016240381960170600352111964479340265306017837565760998349921480516949879844360644401613281500561704854406946542433097096374092290605576007610331738076186156867429555978349355490708885833421226787559197979839612658192126914007096363114620441452467832224262206643100369762452660806994744786671866455606950509347913910568392079425474449935926299773984812912627060819416505011146956703279429080304188603321599938794598438126579197979469034625628447124589622806581687275488022901531710543570457900214424320101891766089928026452149668158962743308526667325847330725741829783176865081320770810079843409711005205729842752456777631379706174480917722684107877307820914480056869329568136957456817454253852667350240364934448975621522789117620044593808279429197934329043699513166356983655150221177052061570016014350190138260362204825428084507197407623624661825208310823163719836223397152204847795235201303540170510860298056378561144534245962229743557141486012125215970989076776230577486395437331605859569540955171591601340222367007326312711612591764370431837553535707400898549349103367919316602917151487249480216442507477250035204316590435311403783521529554655481157095322828687236736840982737780502033356286852784495103273253651899326482182214717240908219580322204825328944351477454281751080895842696344977475979581219916919533208842982153018364517993355887883114818877468772959211653269848008008750894215890569037695887202328276631636394347468489693599758706638410460362865134494315195267470863271985831502183982535472169156252466857575370229222959621768698877281624890873908310797984800260683140844546904893932854885081444836439586972427831259485750255365253898828769697662727423717709978724127979333604739445715062638705843542389138671337776520029007942549600508090822339991582191541900293293650148281846565070146199943137812835048588631557089790307331992389377111360311450773057894738671486913947725045620093537720042596690133300172345198798986782104627618835990081840645998084609976832721799034623432203363967103080880044359312201498074329227087370782480762922197467157946875972039846973158562447439085582049055661671916394361032028142953528200021633544463613041545135610005997711330817584512537945195357896193217532616664632593572573631055668618824951458667001745485724248316039364528623210920143578522139148980521196990967220061193412951261639752665261222206414823567152788233299549192568290538743370397331006611081698432601089907758116652352113123187516882726097505417473679368121407468833103868485573144928282634799665806060381211950162812912540833775363555856402477672667837395782127588798437235581476508979061214748783977975986001065198551928444304264330904003861543612581718990590810404399422154401854691915875631640619663997337825204728900065751988497535551855668829074671102509393853011719378912829721193898102189043009564536188709854396080880260219505816167894455079101347113220272286303047495439754592212174025622042369125194008683196969395800655877572093878546954061267584732863796005744169635366766567710812817369935011659141212015946802024918698828904349714305949636002306947155645340550503246599980239199580625825832027428097264202256714760887412729661768017156581267169926066158908470103501040281816129420390207361450490041138524920557344710783730940705173996055242483969058592030443240598325944360935672670537116661103635880321402701995008506254510769925057495571656669435291169694390416026671153391384170481778053958291004197563968882305604844752790238904819262140481159253603614742259588379227415917914986207090522677311251683572466713270959599870100123602735787368399902500292969548937881635574431939124811272750056444578149564928301835278793784421496846583951373599336647800947267203561651144628121917083004289013322420645185384483718835506057468499948028538503357505260138381402400915491164943765419520222180272673216259224538391737936350292747167915660206174562789467115736653649103172465469444784033558582732409539725323553576487480789455102899470740996991938301767660820280614978957041529085123252050041261069446314518359073457073443973896020659315880815859761118478581376656181504405476907097668240662685875356568234610488967634813406047711342082949270524490970017386984456043466021073343107740042827119101354937277506314303620171682089644611115088041538415435958739703853969296224217839912663556516204271015258084491686931438830527339228378258953421622671629145836706890275362643954348470702518799010391795928369777871226645370618015365556362939951033755267445223942546141133912275242123322936670413301826421499548538384516082456648332305828003868446726465512465321603791460817275635447903341973406692008415303138465693438376975667725084149767677046177381111528884658895537666295887599116199622699410291074141338991336680902125688715833344228173601750162771324546697769885546259990480441734412892791919319507628227550743691036304896044914203891962626072200001876383776759907340755361116350757913173701051404790893831205463951778151706075986119003114101113699434712130532336221316516985709426724778541030576095618362978435413345796702835757956045067516076782163080932044981006368315161624253399221470896399508012738641082750379618427116672534721866311955458981215642628294420521330061874526724126425952253624900174155234015530839961977451074550126443695186508239155027329978190409199841326758014111885559797792736262343261930030526051765843807710010573218691218821433669463687930587358756646140683389763444743752192198769591204605705834628700319483240524464396613507865225630005720917787075454690259964257804992151149988400942877402747759403799187281642869715701826259087021250267669895769555121196724177869580812356098633297515980944409746922340179502230678906552533907676777788496183471008218889248669187517797304729619447691029593488802022273227125511697669860568759419949108476325655878257097967662588196518092061191651355300535667748378195163457001020115384702940941990707553982827884376917731887012257317593197927923070733600184033815545634512224494109004432150565570403573641413608967462103683821988121920378402772942677209822589310216579948592114192743189162884619953062776782776631951062903601718995896760277916022482323126511634512099508976788998018888439382540501381523762329682268451705698111046105010184916761893539370237064114250259286325380787420392783599686012015887180515278107612456842876841589284140044932697696846031875003679853139343957136853882360729583066535857949908564115496913850232380017561112031110368989182847715044011167503540848880215571021986516031441659397902793245701365186579459260527109852514270336977207738699603059357598324177140758461231515953120043320127807170296158615963210959423170403285254471645060667877623449686190194827222860378055484677117207257691072824977843548765836049032848877216821858230050342070819390344859082515045081228838468199214882648553461052743694135208328784116790054364722534760953910594152115293599355680315905350064974626552915111441589303591203445551861196066461798705599920279138409320613122194883599767535160172066323405168745017211906579632717859431673944521489935639836033254457493279135808259959528502361111998089176687536188875274426690810380900028010843541588111237667057651513826777703246748864367036526569676918977072006199185826846278960194695849273041180285575198934878710584749490266094520764667882736440479466049439728903833243280702669499773574493878228914423925943110968701151449127564034662489174585887704141978773714687716807737043849583871906306650518477213515698022318137420170436856060649425380260979166413118709609170042475464317144220168069439817298972861379922855197831696079733857122730955948595107225231677511609004670449957380929760001938484608631900904892580126496177760512045991118446827769934008788559185597415266439544032245550993340658989285805587058616586326493074204691636512910461902594923798401960554416033047996987638035494442491439875158019509353948933014579568681792390513901094296128462268289702929306971365015706283418536629754588853639590992279563157293234609998625234739257885382757476668658839763836411963752077179573991386133773685344275370822320370930767369267549249637314456175326616753073899332655272551789823754253886898095091942155686495039100184243874656420772505122996094062696268938752565660868000398488730584782683742329657675723324368171656259167469037734679576215132469229543924591765222755231497037550269412486159724430384111472922764190569365082955600096046892841799201743606610977601014644019156180692996954959201654409105620578562357300914057809450854895339499743398059006270959935399756934323155481860418040958894021210183221235355936709353717513228532161789597745307592619341531909871304202262975522212766762701666867606125945402522951940274472185003601833216080183573819629567845366786762715603855205794035227842691458181469931876110056423538596756594954764761817468780955426130946089633422471972187412676258351971734579564188042877775452569246985506610865872193211484332786346579237329556907817102994187495076927865242156629217105520799343242725596569395254665412946857126881002681766194551782643786369724174902910730815395459882674808987004185159395379546889992725536405849871675606304642136771629783990180017335989701637513205113373323813482647692817007862052571371578896584908156275773174699403794501251959112975318407352550931268240907275861635510131118488530405615924441996488853634292812715519585557531203327546900549637996464460629312725813488387812661122890075566198909830537160488810577697254543450093822149152746925935547220537316508734848200575091905489967603406782917641003178384719690611625764572826433247546662139182488795346153419790778680082464991584315314341151109059857784178042677652394060374800694624385567291701761229819490301560169196370130258856721478883306073358878847095255736959692271159452765425532290375081481611827540176045862710418828859832707162584868263252125936357481614206370133006441381438486991725500778616289096765623059358358192242756210545464459466425399306964282879489817083012324823274564946260215723082101394757587563688513081116761346365047243813748687697863596878333888178603900121345331161416938748241388848452337594667565082896662078545839850293546784681522536998332068869076212588653824408593075269438125330870457307585110905197372321142583732126870912292791688542773147583568355636543451066922148979193179900065428036586928959659420745289036006767009294170503758519946906006414352189851431662729402816319012904627717591284894010969146646693045210335830285371174791988651862710378408457782384023269351852797075451263532438748962956210633411009312897946651284447347970244688567615733529937223167897589809627068220005896985953593234398952263572928698767269976647444439248086690517424293957141824318035334112727075188622825231188007791521889563869732067037932653078148364933906881555072197917943501892692955953804270956312078495578037589759004337818054805151391751332077660867222789281412135928205720567889061939427324494456512552097375456121606031950725567462485020177410778952586917582899114297652226428436493674246872113290028192702717088904703280277380086954157688929017315875221931671355449034113688101401819635404855614767902431852125503470233320198208333556482758239259710808354416222737378353852360950937837963061110981333099920847156184664086564502966878848587255246623661138043482875784655643864458378379184038730663791584574675733302211133179062962978237100152583516814455547077517590423275963769201810974016158464300757768243032909694463283917060005341516317975450620323767858998843694499838946455033800610979348964049281162478683671450978566202723919017318818506346758028569938840353250833903729665630601340342724689760678794090150933795833808160280292776358427830032817230146175145681359144707691834229067485899484189384478961245557594358285601440557323217445969835477036020782466598473503177798931522938492670888284371191848184815628044543263372253285323827341606946417329825992793065768972065246896827515825677725818243029752306057111958301583019231347828825238712719592805776320163350067766781268586147716587154291028725636329492565795758065800041056411183515643803747223045780569810635632612614431206979710255849508000549498007580423130888711815382685773864700449325635093947931782723721218026138271029298140597797983546674517429963960484408251214526661812777608229672978162435930540405275724115128455876900121152529778416760583617386230014222177821531242490399394373409424420273174128248507372938239775977744844298334649945415983067525339260151483785092265769902752508490469134028066045638463663612090505244488601554130903506963614158361187546856475314147301148115745172986010929762730628314598881359158412216222407613223762292091257651343374210043078201958645312455338539166486480876370043927827746679344488202324694079102889789040806868195428055687626542796371193965207149114392423630335581912520246271698407793863957580435042799099888598009491589176931172360395578210360937266919638566620244513355093247505002516865538265070868433298358388829210715776854190472795254418789833893802308578090739157614231644585122008024556935701080624020156100682507170954684376907865614886119101683792299892713882850060473500559111193026080690555484671468096743154161178028489024404639040786736250503220009376406845840919115861974598455361052493744735182075881602761108418782146483452053909361699456788766427048292041796474613459252776139803022426906707751431453754127669039380399175860503853539600584707064132405380287201010031801348818625600549718381456219856368065431922473450968231815714921771300068662736960291536383345893453785544529562480844061283256698824152412098868746562882261232718810604372449305294365745526351772885751090507025895214926341139678731358842275551400580583291020039123597722773014313700641681784652120564856008714427432343039090592813527406879534502013965181724446930279615943487455890037161758149058094859125853342426676301741549949847053131464834716447950378756669570587628601629485943950332329451770106139822565467518688856351966702888561012114453670510414545205157508498130303644042426656103420465087780386123497000775420872779353868565501325836843794662393049955465747991962774718386723308170536941914153095389009027561527243587558050584604578078237461777941771377708690758216666003625843955215070967233249158368616651837447002601107822749085766347346520014242856279939261987261683711201117102688212268157138170767924782905616707696620106815125575654886407459766426792933260667561003968420196024160984529250594860862760075153619793939039108924250465282594721287274788044167696139362192431979148736106829295719520643176552554241372159580978043170241114535548049885609435628914882408440070533207768567430121370982948006339436842405604368635186226919913169226376840424938351219015618385123746927963616234098137556312944174027490682882977578026025260458493005839546570678982721548106419628389072409332255347807184718746496829336066502003510264575751923624103936704549303441912679809603451356495563933746287672921318370248625101408169230288536283043855335615321385550777990719566158644082205164627050801768639524405005927757512513422442496858513918058554133781419340809400216667200696196078461979398175445333629662933467062607751201472947921718827246918025820454001126512431411953806553073755818472362690480834979699070304301041791395479396588472456218285578401491859505278371163011982314385633290626592244160335399603614370264015534862280240197343939032057461579944508167136080909388072386224614339688193674814474173006946842741265661008765715349471631053828700999214004603833830638015041407613311161706069624201881227341334673957939147456107050685419713903617918021514810799930498186250875580517633756909903464610249223086460023584683249271153739394915391654173219854583088721842660470651930542765581032640467567486201643870469496937009539837560582503245223036255382781839072039962588357086361993520255872577001346731419842104668595554832306549601018193358467392649798067887104964436134783286220012783147827808831808206992044879969724627628510622743676578420646497405428322604597960382848035566557700617161147985796283849792512958579033732584222933476932687600602012921241663331933857491301871294431359846466639737492850481387144287394767049876047367790537298688429868944856589378073134794431889432503609675685807976324586974426544312168391798445152000414467034150367066358639097161796108963350417573019657670710873834643451977222192777847055966181713114569699613453331654343701616662904527962503735434040408038065645393924311320842969323531031398995897096946202721497393394287476189874220375333722833003653922418684547131809103920265477153400673658988525575527053544541754324205091217338157744551253705836026253741274147170408065838142779518465787190469548501238238839398078513945206879068713834090306703859973939003038801577421357638742313490031841145063132296000115571601017305966415361687462428416900553636173675487748284233983560398198128768854676170444193577069920375300173987291733266580497195698919097841460387206595611136013168029322138454442617725346897233442213960034650095138110345294723891628414058217432949688887703466794731649622208694104091503804293389863994216022012567847850445091640248115634108966365345469809686242509652163066865663303644065351199784973821987039147798657457973361298161932149201333712641072214242830855964236397464321478227246020080769606990327582406771926400233815163735415701459670584267162110239033626711322303182041019794706617631644534943711974974318722823009367502536447166318074657446255018888201446728623821849940436665437383372049086771628130825672380393783629633287924087111033206853485451326574985210694108150954197028547460137814102528302198394120002203996899072795754268829037092608152332038240865510517235915962003200160596695246760936333219165279720860599290900158337646940186864280023536017107994427790953560008139433723732574162737519140608383878561456944764369827434300130084871272127505219513234797308143383445476833321559211314787370848344240253656628877052714623485599656608948646848902050729186574526204607524023264848397502727957830244467102693167407018863054553312668926222687501107765506822789250168458663556847872521911511750760206885376028282888500635934435210135276725034639113039929058902145780894652957456260155174512837067916806848075446188435133531753436517663148160721195087720330442568502940250889897219410417241742659312042725138680352187881979996880861804974962489314004050722970568721146958021702985542838408698860697003087298473197072254749585571408144275656801852091689055070173842803420082557119143534184821586518322417590092590080851902102028822999577322383169634129450159865902143360426422864991814733044217178916711433293017085506703845262180300634625485499230365079499230026701201518381839124406976877383700318606761517498670556603391300476561700045704594171163688498986197455572987014868420025270088831645707427371914744442487687683706853910531000244266303564038413914742426551939780551688988047048721012100609565059635119613949745236283167460588299929279242776725420804415575333460614543548206834576510330823718255378318988214719380777098423669800802859499131957692397614211352330987928295366580227567879209239490772484406590771960130973891370398650215443119403796004827637631681029792711603373131894455957279317822153094317940273803916057869817491397673565418359937346477386865548969176400712488284964464135461954789457076692140246627664782444536807907774223679344465011581178702386206145557355083834892890086650367212662722258658103402926429488523563790728247635903966071776046496770834989278811923072559775741793360541450461980008210273758057685553127237714445341662288693779800402043901830011018559160477601534747254347193987417398963029818889017654023882454911212065322648402037915548883521332299217322396475046377708030077833670746065357027608641216144857137922188476173250004387552658032828492338841677943197574915387944290333438333796687147463160824861762544686931658623941250619282877108227141285549176936998039743824705410403304411577203069851999921522536860353057146027693009215855777952562663912404817516374226335816611145310766419351259879836485447399707428283758187936136363995412462994102081814342665870453016678496771165148101893125375171831837306122847141593044234004882333352075587774507651759352630865850757973417861993609318543340688478333629458458451960346530462951241217784436720110532921244893794898542590677758896346322433430358126329129187315712602730717487468607545485527611871237608930123263934231218793151865122410539196551741524554319120406617689370683281643262149436490314007618567848908142665971638743146817564191557895831108342269461687037073835777648073853724480279816754182192252119038845519843444730462999104590461038284888886612094830053917330222574185883419635050661314576246643250175264739271817504635373468679738169893029446988835671030283981078514792710194493623050941419669363491682911442958028819168342341394629149312060743574623972839628985105158545626477981869635578605961705879385452351681762522575677084196665486119162593871204922226471771473668734114318251607576658046483983709282109151131126276404010556671289533197915376365067251177919488381586753787268968445632164171807076780658601743412913728448730695911175174239156724051635910238952761407037266292252644053848364604803992857860041037581241484767014131975862994453742663473835576709720423635819228165616690972310523007510964317633030605110688242809241574307170898330538025853608205368618362896033681044992912492040378050274873645680341357911474484901115008663679317077831259374701035058953116894410802335528788271355503458609962966567173035248095485094390849130796869979318427909795559870401137801480370776474571660860217643115935213907846486852082808034114671524203892008794944592824404950745826292327188911641670808950688441870081497028858967946278262399544683267595706589847876750559075582245599898939281846488069284778948382934718799316437425525880607132540234589000460666785029711030178129199347384778389758889488886128803147555255449392724783913567966667878855902326303181734446526206020545579323747857072638542337284917794977595139537754074594125463718270780731119318991618417884792590936554890256569491653188216691498225580412257378856380391827498791059830641234310136788918874962392561545165492789596520762726209104559197165908792828410683798383831924105851607637628615298675866639453092013083720738751286924115714709025362277857270595731286612026703811589644447397794707775997511564916860911248402172495424455301518413429299392223840009413438547393114206643810898209290412901755047436077656985866313535204137586779225677299455707280117542695397024869466355686326905557604103792368639659151975777344456782521761379894293510589655417890430286442491373299786558109333768823030318165472981991089617170759351894364202200556355789170640140107705622307348085461857060641226985187028888252381603739835112896946820689151777241231343899671590146737587186660357810415940791192179130135854947802815203552694083559080426070210213079064177804473035649300558189526551665790496998523455099433283888651112357452991945754188516722116514589942874652333143274965176204231406192631883607648284634044389693762263006988394469237672794929368034503055041261416398835403090644556017695785433079882464904452940857090166180846559921348432037839262002469091591845786599298073116433579595319649843076018101779773926844975429973831316259128042574638721547665997924846625710679516080988520739786316302462280488411198278919137754647515957892332020238442665864709505351884814921408519341397676135584939966683413980625292634170308729477917742804889436565341272460187059725825998957712362726748292268044045602526349982725624719973896747927486295341995399618321573149650955224709163287566197000267366359207065906700423823179165922261709192932052405057770208708476634844363301715478185145666070777485704380241323548680324551403045741925014553228191638885498089953485439548945758146491040103693855731614661869583410988133520510654034485603628069974854544663501256657574035494577963263971635565215470396752238083488906757975218704523075277854262171690444649267690351380033090836811305500548903003499351031349896484283881385824727187655404702420778878268446293087530944354525449942398343890244893632537817907433593459708739784938767703927404069985146673125040886471212038291588520982712489840763953713247716151741781716381273990858615097740331566148382515688553702924600177241985250675539216432556373804149016863389181341327909260099552377138761062846945700208474589075406596290290175274350035707003007893516364423904294855123922553334406388145605769280317545816326885280015064976903127202556477678520003474139189208431660417323515609792763606700967981359151646904688032416505023027279742247261915541840689305475268046798294927058604617212252747109741847653021702418671291525335694664744896889783039388714818330871047939953599514949272026427295120915388808866854868878321857462701970307948233107524066028487024053740804983613093114320106517425703897420051868077160806938318909363791788239881939463528976250537755331881589681578000324480463622632574225343307670476937007484662157186067102630232589340149736966981946149275183037892091116047291773399464946967830039733204887366592445614282484048725815933513443600661849712395116967791670770927749304153181467707077491887495619121549351447736504100917998966269808181182508973786400397110259665312061850892600036476271595145790599379184102856293131655693289306334309283521308351399887869123080669355945123495356592680139576154503183049666035945927391289450090767175304247041419708844221676840322350182220358073597943981566829604449814550443499354603236291938555135379657774961479157878416239669073785914757427621547612269506524322802808260830348791134104113088371710334212133537444633982549549813988718024330487074348686204330587344374631713462794149855309835013219701070921381447005125705147062297604053974699099985642621073058973308495820463518604896613621398544124825779155171721101720159990414795974685114739331838429457309307481405235601030885977611121173541371607032363304738446015549849423039408165053076014242772065318407335630842144219071111369010744371370750379840734238343811392468463062131713090473354075934630169173929160195198705080648616835499519578969825718525684896622287170503968231438502282861925290220710444494331298228931581825246634575762432286245384255064617941695959378464092293378448591361316848036221585634432124930473639009902481585116493523123991688884412961937801083490818877498533418101457495170497670699658031315637570483418910222914182885830614372024081660011636216653235905049834560748747067510577700940069105686852533131515252023739065281609199545953057869896139017662079201400042283794103584322726086425832210410319507467085901954217348436597889932016477701337168752757909502199093362129426380860667101392021736930695065059683719576054606539067430775300466360090398032263650266087050021023155828209122310929095051852977692105211936902106243939760608275427963568736558995089503674472183622537284710872168715342397876518277158519787179491427162240086604293038834775650187560552847598121376233047039022390070743838475268805127667930268664051989104287271751115951503565325309848893644242967916147538402197699489531682016544180252892840526805963309953920297621952444514759390964104188569827424725520047629461784495147381368072730465420218594368071363582266150284658709869490457582485470546643524713215410801050119806307702202699333144321234347431434518879950391738443968313318009719378790638016966353843533037941397665376644755255529917806836822891793300915384542633617343840452059210250420751507568330368834337505345146690319885346811666258762245924996010082867877541166044540703925810177569022977858866836658384427295933028977083686545703779567910338862230944023852380860801576098629536202328946451594090382845498639570079857394955749828111194576788027390818380691339277685719938496432512239842441904064931918399848393034512506657071681707951464362147991655491592662329290588720163927788444735652915783406288646474105797410318774612485598761160994542077755126040223501167127038286099503016943277295534925498769220919564421492330454706627295379073889670540200763178068780841457223433775458705429555230999772438596348446282142660302499655675221555784422726114879667037907831579355423431879306793663951986990605363526323837155793731122508381950217741238817837364438735568813073355235925622952966571696517182700798371992092069911025756410848588061403221121628356932545978960106507969612150821684839836215467954947513533428937063574204881050375041417073611182322386749359541028354099764081089951571355633490364897262634187905172877763477001939058257817241096893401606055401661970790685840690888347303010576765251479198827310139938420383444977798470658500366202681302570547861856777200503621859186035482201989722135935451510076906396017113326218879182590463208436956982158800306552183274147159174807049085492184826928617021099642574531809210014701871122984331810438213215636222558119228104811673108515525654805347650871857963655877575673207863632988391938597192170032883861756782934638683264332160811564681252978576786847919928906809681542749373281292755844309353664529235870090029424452694055521912669100352852221901685453229943299997695063807489879714171974800372979760346798786542792576271179321671428822954385501079079536643670207272305429800791083241979867911402846120327975528713110722316362749128973681833364509246581973308153070455958813683406312751074076657761530601618548592756545233075724509002758393104546480605895046713414109460504409911311320683364264973950058169181323953955915731200675652293841188725806647161558340071198619692322434502583975981850464476060350257290894649533992950050262022758611069061708497704471707855825890690759878311875706971741633193925846236153756385337779912629994736170796141365168738289715548861777466743323741919974263506138068206640384054224311984238530538117308896248299799698775832282994881562925692926478063917029835577141866219456941232803098957358588932228240813697511080686995385513702264578985981449185766955054916065398655253265145773752403228555190810592124976379925104822635459399733280272694530803041771294175931745315511169220725661299873915957434489833932465333324357223850146910237152140608339894334799123389017347670278497352523485265061281964130680242667764504814802301602655088171360226218561988844824406340172474511513223546152194447863935032567745934843018879590505565765530710921367124128333572145493543669706458536516895826781483809032195193229742649747449404058637353945231803361109616934638824284747839767586435557718296751497027826113578868324151010094849062983438684751136541451847217915421088880257707721312060479211225535595972184226116181252670762872544128614335137820150159894873664085804680148942643586222548557905586041449019785509300451902601675746262521681023035449487461248394109959294316089924368043659785769321231639753372784017648416796233008272970202575225757378155028708245552706283549118993641617881624695376518850144041103650416718306359640837802899575918483218003775423984692874140152959830792085358964685104037401957486350139962409808862859222540959225987784371668443943491940886258083454399092748695708437384423746029143609642451788558452411577540136555325375329060767134328209376287197636822132664755408570706983193421962392811467044039208507591668676774216096578349335137337677291534545080886371957492111250191001391253322947507620332896271719908751227963997878109747000829741342058703880688263418982900618624870630395269096952290924300678909191100242719839784570304886670923607406713862399858126806527020057162868077739466745092603844440884064447629145309420683428757777521534483177437032952420818033531380900863413714848804766490277716265401449848775691894194745553291304800726927448867797080204755948310526577306573950874765522904729698877984012979384354132192447641517494935651103295632875689157919823057549451682263887735219805140148574796837087285067330898000938321776111856451368287838306984357478838390524862000875094345592004530870767833279313849667621067499605945138940422733525063492224129870788782645592482024249209440724295999404339192990279944944909183486196218515908274256578674544205108506795895671806311466047104974597557483683747337448280215227670075439876500423479120892275352777107557590462728001489359117966223735425987423928298461283147239594756184521761854296557057566249388692142180220477986869208962576101743130628415459104885041633394993702811008617783893214805179160658200536810719202091582431080489714010791098177363049502717088084725118242578642988475217644871121889276131633549586031381304816607313222261130454288675814813554269955057515926645900398575748744897959523392142237427395888854021337105257881246948417319336196621545747310815542047444048484447877179113788132860612831065032599072081160674466574424890817239423916330160507877943625891500110783776572176048320370463258354655709583465462832905750977110751921467080811668484899817330043237121810222784380792187579321352146900229685597670533140725816475745165661044156501618130452562017077649054218545516480298038585665168202290886612790584698514455974107170649562631552008909464769707382021556283892601385087406198621158165507139530975886715620477321999077889531136194391237625692628604159966286840055428223926356543832660011013816968617656245493724169622813801049791811227210389983254130276778702547048706140543959363240242776313660620006525504063697617540491326590470999552690662861008490550339143760643092330538510664635503783074353249713257952839733917790023721205165333233088027842906221881545234506519859775263133344098204887310968571648345731178795749749558608719984421310640462185391265296348316047155185806996895246418254507156281039301339133205029961779354107032162571445062311629938088470577279658120104136159535185513451473945837769623899344901667401575239530792154286319522085975198578762987541313602362006817374361851396216659499067727704847344643999718347670000613061010456708473064205172415079772421961847886326976277433620019837323225915404313874205375284667119967289098201773453047389509419552485780900368610963803617790339628701349948994621289896631185200156946428075912128620640630118106942959721118617373878996475181349033173516948778395650056528164327063448249825270801585572595505298782453491202278435754940055299575419367507959350120120781351472311816114599042493496932738919891266041337198706241344305183722131222364290465294472663151557943505106962415769252267098875047596802911195609743778382843703313573647363811954108520065951394312773359344802393426045542096761829304294686749166846624460126138359645837298787516710893845072515233968448418841732569624315122969418180269640205332818449226034508241748708345746206449848166380995407263044205241866525633468489094828333643680754763136847412498193303432791742211727628568910449233739552794642571587270714359799181408382298423175074982722823235943692736297923183380040043503039354055760202227766687945210126987799938132266608716412010676126056629316787257505591155491370880484990495392828968594171078378893647098273206912063768865894412097896208878658416156754989745441007785596889814516529400419787621191999115036945482392761158241309659224302306978023641676800731036231358662317077912395173048212981389373617033356976255033031900807459591029247675746155704008083937815062096757350137124448920915486971615492039800855484308820311595419510436473773615502035667169331872211792912677452876712039657116984420726941523987475629038031704396939432650785099569618175366469569495135131310454746350148528345572924557129500841653484092994706218515192691081686312489829330754273589685577062392397314410045465873343778860246620599738511979723079382868116148457934308507551910783447719288798266820214981560006121812266993006800782664831586764382593547034306112322926931419667928861113737005147532949674112170995163104742905343319087554236424250170090681103831793565327030410965073193524849572362673166582685567106550384279597497858101339918127385870926377056547749441118190480501123771131707719281927743244871642187421698245118962789305945599761478843347101531062301678739850270757106519558939313506760112798003714501234680019704921983240717851714546856005085160543004964710132999706943413724343475341998612674918315872758559082768157594157529094158280792237783311632139148578225543832123850414773207281790832164737115423691401588857614303520222171415252153333228464921306808359394891651743557787341420197929564097445844041121359375896180904926476670298654461959275587675260763366908995733762267003655340361046057133709827672503684041720832676829011106379733583245606058370585236088757181033641657626828373227831257989054013941903349719603969372636936710355375534862805596625302363777349726593459231692038584217403689592717846734055879628474789976213854916220790573769394465533215607914387336092028486012613672415661721896045282378450008366889492251661468252197274197273238077576183593170702818269111510117499733822770555379274922358826236546830804679441756087244623410518969919634290968072859833392387628639558176866304511653855233067673510396505012637004400027162094044664597165933442982506654420921527505436067474979217323949351033142610981702747815615102475400872469900582580767091151398444649195364474398788744314001865364997550871012629236243133460121663567936104319554621698471347601249086311867313826243344252691475200528949555175435208031482987436621253929206211047133281309944390444369777755032086347170342466701247397386581098015858029928101047250296001181671708850914989115298023968965035057274218702590280959494309195955713283106890772708934301285260313721477131902946522743454898069360581130720939782020458081155250007147709153404852695817225784076621558827028575760499387967586865188852963144600302775081849493329995166612256328537552074483471531018119222863861601541161899659303768423353636324112111354203264052836370513698238227257201213853100803388119577412254583044709923884701183761479039194931812107726283835722413587763508901661695743184247529395059442920820967240136427501133232966632283986686548214870478767752307025012482956305835774263533047304740056263710349895650161533084666105439413418304422301517729955539981390864693268221195252145453050050268338947153835250712099928651985241051400802276249417716880727745787787715544055805108212929507668905936166790274357690392711305753654299100602381676544327382731734822478288275334990250435972501428425871299583222477252733694333007650075943691137598701248475036043476206550711216611927835237351718362437112732300677086442612263557345277965738876318691933260085796338771697211897742872186436816071651023105329269290000670086222275467107952170527660006057498867987657487214035914197223787492493225288736446450586459627659940646465790207794217192102196465302457903059395309517088831076318225521968698051512572131465013774101869910472821493428730558356010329884204836319484843035334567197564011298262554280733606623289460439369524391707090983423543419307515506182233149624867352128598888531783042884739709142967079775604403588409319839907418172249766966211425509823143615365703884642658180742337244204141479343927887556218773696282235406472832093038959679670921983020971325844212737770879482185153731584261784873848686506596065951066926359364861421866737154074781136732874438754429728956930669978203761630273528776631873887125925972537074209885692717958880442223298220756409021783689951944810363417083014276906354586369411136255706399319175880182104412433482199540765098532433151619316756072879539456557871836206850524562115187636710300357847562633092259022921492339277550718685278348806297364209678599640678484057891930914067729859138766518786363967697220600585544370979459882425503681449147599194132809181624378810694377959944521131658839300086452817441884417140005816432693917462525026004028406959251317909908482951780731232585882775224928400806641929546112860960618683266027064942187691685967680800328783767421094878835691957941341076257265832406912811972382954593025999135574802145184853753002654866931434323609435206754320126923357071392529690583070592105607427435385701315197356769962576333781632681140886334471053140040515987886144911709395345779167473486743190090103797550483826016830407935215438293439262088339716200505722253591193753705380994041412255151844777950404100146759306065630625019989208525308200984394447394706372972824289065723609350978618956906590863225032103111166356088417001417760315539619882521627340228809332099648672243809088539786564872296533611184576751935391984727255607614677820969584255372635107335069506664648628105069782697394323662483900600283724420599501515207802798157116963972208189123534923850336058541835346431088453781128014555789745238249613556138852302203482450537926377558443150866323441018670088222660359575200927757464521302066228582756466153649426088555060304499982980135737691423299858093924317862915677407313647746137118889702818702357224000752494169462458920236799294790314201393581691980197870940667895730107172431924883925204651282390732628399276622378011597959774515918759325674777869384482858741761112327656651469939074965325386163006377144439284395636070819603908600966154325999045197238274277603937126865595295400448857988273578551354666358099777683516128282625534329988553677813456510944029666655634323519982705430408618191079658113640099992852561233197284513605091585261164767589966566192647474867425497638090724536416755132817693735433845342293277066628358210749712033682049853886347236972820137257982470199427489514438818782250599691799205760682062380729274443420097386464090602748913598640790786079193309890004964875609865070892241787958892756606252352955805815046373369082329283035384439878783002027720867942353373852450503704192260208220998159419150029164712957053815047684747319027141129866244935731723977368001374036738215786720775629414923927245510363694281496320357628176247802869215158305749228785988076742266998451927560266107351120234712638755420198592716918342621130027646244926203536115292721424794888847770748306686290542132821514271570893987984499875448490308904024219868421386054950000287685638446790266860174704518907173225354917372711915496102133178728466015255492080480078486915154665396266229622373837493079770987411462005252943661987937266443476141481401980173106348155337375557473827062536395331594622046018237257510472016872624785678394591324872983611696848831319812457635820885674993301709687553116283961621648025353376756955371722635496199629174908142263848429381145283236786417665252842228493260257665113425967512450537685322847071962546231334933788288181938079941172215376423773855896715563332472109584928781419069528259824810904831847357450202863799293132866006263850486715586894317139221768778445706509211114801222211107132661688154567229458143290403929844613955220283745551900715174552800932044835772730081026952938762995044488122628719968387168932860616569986223234350033960536829224457009556557760868506247851267565446339978461394233035516534110374365192126831811406785638108610513834919822999131090338043827655653668623222134003778924202276048737983449859125296558558949306710439705828661306098986863399369373785034299082827889960758706267551986513433340403185750212567291997967673387396009813996550966607168510739779986533989745270773300657965095606524253272761693935319875934520001779401227206126529363287640709913828870966148437312703262985531717850318428202168500239867989555539883621518681039127378731382433081225439574770829152962592002344767809210639794402639165119953435230379568368869401209540637983653852582171551229456919893901092142715702793093645024013941167868667264347462200612684086024625443701438778087672717876659565749007833780502910643591305144703767258695006749120879599774511712025723722018367407072201307708990613718884476434325815555845751600728323695692066685080258698635436002267692227960356933091400633231571321450266741826885587705396457048899236480903162520357509730211717964677022994077842021074761654028687973341109548343622053938046089378620168210753797688945594100835486853084577230905473242106180737253956132911954010196611899653305898164392796960002138359779601072326282004710759202528797372080972014268659279248277233429174337415727734089813049817550375900957387676149618316028726649147955707546718340873081505880370505420848279955155368395457598057691165444051052770046622824862326073015552526857268521886006308651005623340746536390552927442785974454220639942782768842886445899350408670494590699484536140219133109587142049650890808792762901124202831999540457365333328813474572851055487987129006716685959755348072154920450512112193787690463259288590997906536058520765632667959745057116060919428113701412195216268724462892442824476761679226128487377076776505790362909761596663240312520042437454901053686956978235122779653764544383022521757175924832870707863652499427409938760490871717139698819460785250971244020895758751480700399165383758462386418179594404808730706540144115623978983023903791845351869197082720744910795939864670710817813925714910815217319831270785658046112784898087325396197103135350211033382436837516996472395631790355419142654037295430288552475039980252939101453757599793518587899923666797439954829228670820209816554911695105483132143279294407452339609858431970558650348403006745449714230802858836619607000949120168976432840622829424635277181792457254277215848454266499623606960139015707433090277147916085874767844272256239842643069262497547946980222570000615615382886795216642884360070494965032636843864823352783096946979473337712826186321522351543177818435688716058972025008201283994098704729052047439284707412744275545923544419833344561619434038538267005297020589827463159391574506426833452166247524487464592715203238622554931879644508048300899161675666734190794681039098802165745145687024467523026501581665717242794988398374111140750761899869473743951184415011232131036124702151778844748269875562524064895722294424055200649111046498721618726197564558323590649120810987022166560294015335430451724516104611487081729652553620671988387878858080532640590396278001479125250963371476405976359867599261500667656726206578481917498309569688694265102934160823560484104643049372100871030167438733715372965751185541818344482388859707076301381939326221231398570848189743879283715770628324932330763674307755691113110101580993868986010165090451383236025214042629165327681199323534870133326585841982847914752702997865669047127913333737422140727299304863739293318616147497004993489813583481281414050734104819697727092534400321612185666519428428234595233395351465361384081642988128585739529058714005155907473611981846781248937667438353392816373628030612850362074739581319403024729203002569261073351340086636982899354847823134935674262620943322730759241364655664532355763775154765834197342170584617595133210981357981939370234065123448455671798404750021664660212348554063608614038828917744186293367419121147698305236056175724157691944084753364988248948064076408663493632160616321293255018757005330094571564864850978971698619310499906534057930883179178182126757802060724258056704486130446655852388238504464509862374945618651057554264712777784620312373249357888652268241265556827475302499728026332332941821828446886973125190628251772758973209630742814522979920863813157161574855204211412660530152422178722840527658329369511273928117767824086851724263569499430333599949246313452726612384374714205612243726512782355955661960679610719437138256732844434918470883301387531511125034259166229051508463834051612706853903142122849413397753487606740404065083267529791962945197373052334592485739643689333099488507236360100847654159385054924740616538193292568321465054672892146385362996907437877898167991887682800481976988210805961934803322440956280427182262442824241662262814804530491690821682995611566339527102667401246742617830841944236002258939106198728709952572375612486623517349647462058906443577928522463180430266305049188300527956417434667188746489797798657219887284571245467157768006394047823602958294344470737404599733525780310129346213044976823733487077079657879722863841183813092439513938271667261332684502716978302946578627026162649800748818644095643492559483819287526727864225751009184002024811402259745856861049173085615637934579749142583272868228712706810938371406237843838810331650141088767208404713709550425821543262739080639247189793336359888182457894380039562612568031220847007774754684471494454917520279292766504959868457128582299583962146506046022909158294385194877540309177811562235242885911784313029105948457493883146709053113564817708117625694610117188971225915014184301711108683827113095895203631928404456044874514035484220046821206008228300037535242926838800683620125541276209713126526246023421817126061021276698141315584988905182088945739870884712029046458687906168541884821089372614092021127727221771962481307866547615484348629255119803146775464105598045227315538556241356825700368868579202936826208349530932194944098095742213331405154712982161653698849146126958316864419181926814419043419961944292327215777443295489930813525107567647618770431349099890534600847276223979809268305341052749582918721377396496520272847994796846788844365145601799018815922754102637111311059027936769400030855266065459499911669748594470832965898797334117462227155539252291756993532487411594142928667229375334734634624795252691965583862433255533457606734907487131555830574912882722345274418707294201070144154591065913492186786198997573787943722695206276346650951521647973160406890083968674286514131922280311372973658244475449572068611999482034681060415022483467504624841276895744747256022954154870175452392210373095832528845578220859035613168891397092582920862199963679574252664245231029040709945308410000350858696489175780765782187215173844873884635793893407425475509686833618918221650846407545088708312278253080229338501260112502704333745273399777851449407936401141378587757384488865506577502055957825143777594964180751805694926853652632137510877538022093381068594676895378089063144889643466301020589136681094391087703358475237064775298925099782783017860095305234881802445709723508480161309985244209961396072861855283472572061774710852882697603091807851487591718167179131779865627659552791233084592750593447368489420717746277424401626856504652126668701561949890936061089134679585146685636539636767720629056495478647599731425199195192815309095754635868747366144511337233388861090045661373081230136646629284696305038055590007372389769200165992071584902251006953408592061732870481092703606661044508508418329457892299802439988206160190373802868073249799006642567995734426554900336719185543406067121092746150739901400935000371614454054986137358416785869318915991313925422061347199082042165322477416361507614337382299366059902426948214825744713450005857457231733574418770319069805069861001174050007892188034671729909997843147548496258858157928282273305952484977407481924987493454039416041588931361650423569180795981526133760080137533448374596716657010490629751846193647080526994448509380766792332197901934682294029822116454452162347438722061362725642430927908201435715039049676848862458639814751144822731580522717962021230795393224705538054577495094350721813674033459584127314546781432263745267761591980937161077983793835840293812324172204204714080994775846509240490544831079483421877347402475689794063775370051286262390561292817346994808176708795271236098276579310844169235567585029327661742019720690519978455181941866304231825183387419585894308601695833541988220364028400818105040373258918606393473039771704329362847962885938825869526291883942476327482173466335878278762609426288034661787472440037326502776563634687683258487182263282198977841602425893266839913803178306944397564190380516207156844170458064344766182757524299250906550580586745934208520245533380271206637778452502980244919923789468365245354682332153513994216513268468376028206504260919884550582254690387567858569161918517955754452535040332188233328818163915950377994708491045063699237072434812025891374853278877318147012097693900046429252204680185692445070819288846703083761591443540423183980666893679629270281226768394460544185442637630002993889445004053348603577335885596240034685569633407412759618974939090953337234350270953066455287854186524270388370077616482462083018802059698825260771137112740373403529500483403662237532977667733430563147832550591656854285390505988977619967571945075401824169271559465356278379311508388458058702068594257864531332892039472468775186681957715066042268103687745541673891697071965846324094478913508275932691407550060631874265319099135875161769886059355804420707740332234557795467368347831721831380831595863550708677189957936087864091699013931505070290534974713521876068844264338641062862274936126360810779862681704591777269900760058163380649241222424340356999704944478692365440013562764193594246682822832934011809012408568701051509648557958821742016553313608888188130716717829770958510761451415306697959899929505417998843197403453771770608269089786701161151189076699240172117424981815053878735303471656705007959097388395398241047861442419663361090329850634105809359067344500192094837314953282398030331467379223092736063766213885409325790705367532780386052324602582602024142856385677710411454707349950743301099252333617981477417191807752543540797082368892504824583384397123780904227914375482737655753146224982226006479234923932390756969886908594645154932540024085607596471034226014896330672389745410636660345667271237463516317044598522984732121368964056885642686077496576450625304508103079944480043597810354832333704045471964602018277464591059279511971031501751993295299844004803499093187672184819264485883406883484852687689592186470076637068899831759307516141950275443348392741940926398842553713561779346369540529978924164120180045519402730039563606522520054218935018509614510093021571945254223258047326740209873891715140730431540365874129677044070895586680404913933997851656440383206081519239821197803112981992188123331327786233474686583779275711647776394375162436620856538224036108955092489772592536083179556866943144151092136244446462199503877931905783744637194929073844346146634762087965511390017117393192320800488855750983783595473314088854565833581454447566158344510694424826482934763666128481662137889351939921138848853844613462151116542932149184918002202527095688204598616045416961788980327633781431970316761137539425827695029431410837998314894978951989702208601679684502719867542663075829143515211477834166609253154025785385023420108117712959737000291014793284602899988537036284232000974585615691506600728588807266202393080692247509743043195701143374075669334249239275455293469482605545224343740850307359381592134423239425481387387573764656177288732816079690000188640775955348516172259829392589475227412580262588953390897422348489045292010252820876012848658505404247083440779761576660399525553406191624135608600203985362044432582171792515840780099209152533884208109709840591269013652796745804880925707416268508890513591112050480025957130593104328345214398401816290252797153324020968041493923072679907501124476398698327273523068035139668520946243973722931369001734956830604487022223993336646668066755585632376801133201527312678328586480975366926847036979359288920500497066605048643566358317116769130278777091659820010371888533941720117295387700272867027378895158220500583762529156530882750267174297025248344050462646338355122597107433299981626668194711183142864345796333127689922939081416134510658057706520068754811414073130072062985261105932165993567559386808173060915403515736922741140179106511688879943621016978079164622039277849209841491063268387341589130670279725595289205259472846872590286223867517599331750461385321214095587100029289866330273047341451865912208653922170286134178306937532014442040672961499850825570809245384513295053079706910958469611086645514670477685869093762189838460264324794673586778451295967699115636523166509996659783723827358633809580648571040196115477259371946376965520169870253294886832294432466004432445462202730047249741643393931213672725076426202098350507223277148141130674851501133338177673445688370660758325889473801510685490416492891630688241286143418091243714814716410624498127371010560261869851132059906818494316821795362788815269540594524816620392366757061185129737170734401194431617845473272219948772045763754029405925912468479131927261191780800423370698876755729285863882813462163250716371390858337119969338266576027679998277660279145401171183223653373358792063383382959134348477474783541745923167014400743045821342280389075976272317999573981290429972023090431138932805485516556110379628053340256760677060026052275042099227661281325791926369404835097669942211713216383205674071323104964946154494619487400128062705534500746962835561029931872785705840381342563061957342119690846011575249826096016756364410136862020991109415605008217916934020811027214131126472812760375701071296073313476443930885217073065337693057703015245402490391979233458032440340781175648035221472811858825080559355484646230408429391251128365770567660040352546399721370889674915875475038829171652143927608358715109794570639900871547698073705947258875098579648965110901734584992173120872948580076059002605662472649637319600831959114814712369122041183492381759578119835223456292973382723639935377319385805816760949136543038950211910823032493834066083386638849432125063099097589288661402777593759529673803595214766855082646175934190224357107199038421982882459740297345025608038127834208314970481532859449099318248668971024251755869362956675674222549572014677817491337184895273942743579418553497403126386981811631887164197404316902060145635236465330518822365826677752826510009325570922013607229795178069960794684269390822460376970178824912954807756378069518341954603588936496892007104056543801482042777402088314794376891700254233319823085625252026111655368687015970753773693607955656319768190825657241610958096119905426653251311900468758610038289385641818723830341121091434292428239226416800165565689008487817975847290378608266285619903677483377997095515246403435348290818300687602502451311176890617166742414691770575490202496423783293469740365581605968353390076731306040867811778478151248144749990565247828450618230219237790299341702170549378672433647186741243599782869090970588435053160094715096811472668079578439768486771749584891065619771725999001784943266753966779437997568562899867215193051541612827726612961732624555153510007944459664259503939341141574699549869521410071615489696899919614803169025012683756219619585822685381446872909324714548302769983706488564175153665259912931603005608675859259809048516814161908829559123478938229657848634042170142892496952910475656449386906045770170809809536555077412718235197242141718379552826754973627787127277529073357082890424417916067207070666381658284415578603279873820960298214272847318723006516353309083726362527965474826612958856683201292868402009192043319974605719988553474537294250525826024152785377680331077927194247259722227741977600442947558683748044118353982426861560935957507482556781921509309500541801232868984813222407789910652580892137947358849752769053026719937051895360457147767098189843353347920327103378401981609453661675923085629295721292989365889091389292699975336548039794411546662405216120323473248868547537540031025466488646246464118787532191356483511811500330239371314535718261681024571539192203370094611480056128546912534268135989491917758064744191609540627854407364717964462327718134117818740964960750801746118400027595748109538856775145466384487249717750357236588282224604558276136658215557028164932888817097973886967629418774009258758716653327391035680558930161082177395888666160496733970128311317023376262959060678109962443217127747688283918597402101112292087028526726647646691988768428613259427973704343632409743123802930881635131648544953819266439291175116407747532492114675506196346665914565805113406373427303880687195321333126044049715738944137328888438175205288229020541528892523544836401538996890371525452214241075282125262745123964138379117387669627138092960767373959549712601158353358041872237496539813289449896431570380161803035726784333904172153244964319019185837729981463737328780661583357809716059302848849025231603939472305356353044917722174022196133162525136356109235738161912273604900232376072367848166034397074575881171247618071482097693704097809394943002714520489395526317035118739800107291778997249047891125963200135519909308316710732934153096881329751790013856951758380263750508460172726665749027849419158022882399112837422826638884580886586595335706412732561981281243187196840787091678769566917155831247292825722276331803383711866323187731412534102311649055604067449010990703143529238135972390967996311542371877560194075407167852359896791650193229794052439046365870806461931999249641184245360854135867456240355124457643462645064729255845599105964221681512262809456597854949023057800081079045874260477800599762388891748956157371819371350856538610980708045580718704945358763577798597756376698838539912361117280504497857209021167992270844033595050259920905552858345813571908272525521136341054571360469027127475138802264013715230515313450195759258880246943556689197953229072638580391062061835431766726255455016359920156392762135081211023717803821429570874933995855583874206382824899635878671787398417814622084328761509770868751355703781547056108677526839078431249483656285303258451250647285681636471855856522243905197875497893014699872433023680448681452349221963798379495792647385605364785685381255353736407506803648355646494066851818725099549692895945193413985153245007106197965146620119325086734378656451112022511045468767246958651738382908921866559462158662451716232291716940578366277180128982743763974549084085964672147132034493752585485715615885766761989036374956369389319665663109128383999959002255320165801045557637730747154523349685971344055445420609194186731145153617466303660929987055064292762851542338689301497757208170862288008597399665130299331640112600121545154746133336535329775653393641977314221305626688421173736846873897351418841617754788077168474139626691001997849057428392207785921615000522006512642745990307226064213000156153128107565694903950370888283890666492491648638245080920617747144622344329049145893555414276450909699817170063065503792964667815151778896475546780605172312144717366643571555343007015804836432130124631465870063264454141401038599441671340093435010162631004863674332119397967930078336879005624390194342209737618344237926858859971566010025296180695112596185291296765634192073367807569942242672259707059362766587243837381442154165746034258240355858584935884367005760871844511830433643497214795382196560661573213587863262721848534046945435261109954201547310004845764485748377613333633961420114347362774926288158151133047200403703754624677292188995754770691458768651993989208987717392318212331148671231820373383004263942814656121823636129125014630691838995625275579469490373936951967183968403735200336810390429969004741558309782598220954189224466388027887202275563451092090025568274553851025952104164172875341163933412014889074057262782500554488413498435899742746725768621527248715849851869194073803866648567227465482638876925524736724385087159772886007465432140228368309640441524362100990289121003206263687676816499733968781421625226476870970784871884393852876380328880108074912703106434224867985114052211027192627946412320979935733897219619711934322877310759916811670048466888441371618160866900911028508046626722888277453295511776655723008570142432388025465025817749587270437020510019274787987506989438779816642768228370827650372932777100380731882541602797139071685433158193463745644629221883665334359366832087697767537956585179298781326914890836418508105116583340041068048841150238269431720859270759837208728449514380313235861544021137561482630099371501793012013228935211915214814848819313536559074593727364945662541720086189978271271716966147109921609286070909329279831742823792141348356442235418235851698369980931782664680665507956372733931448906806559182165836161914042594920120254222660646040278081321797864752878242240379388821862569456013269272552003724576143136804428717532907466198618175476129076474168525595929273917572660151727024457891024056759569438752310033756082467674471393152634130701147620341564959247869153903719227571989425646503560113037779473345946256631148182822048075284293861986623749440486821947807450433539826559706522073259710836060542555468437656474208011971108179112984760496459777683635139077756064780268852665837661153170066144870491320134025318174505118272424473183080489427960003352217669181743896779477666736610515654411693910027942774589185490008201460025179516832798915747645507366139296351397487776026828034897994306062165724623829239554180735329403060639475483337120267710498897194018928202240726049603733540422162147097606598488094197091875298050320905774262811679712899447504548312030282962511850519909136816019903999726609316560460155519044887730282547714577105026392007373683122023317456238203249633345004575704257481072319080541631720710686262606296580666838088444163370536145368557594654645769646352788806549903606085014326535853513366513774301846609117009387134915671844172074501774557242087515012292704038183409837529542280929085984999138088271257528260055328615887061590264813936136586931504978950407090314428771003634720206170642192402044045252140152997379867625729538365429606897054324737846794814208229804651579826904652396926055772384290262152163749910192984599879035145950776473585856621144360165525913249281250451230903553142600424948646002754214328506371762014901726519496593703336173962945239031299224030555195818308845655896052302683459387856513839463333909350518764997380835357588710532074577913266995438583735083649975772164327271347515977039150620572816125089087328856439849649581065179041428761855334354486566013221443855663320714383486477951397362421444316648859825667597284380633061851369223788063115183408496535409099128056267728353774685808274916130575952548854070624772227810642170298342782482292661614801825634884960925698112334550764180739359006507474853359669136437192761674709050785989445676423220428083164265864293128024728923693366743365483611879887685928372866884905038945357588327824593041122316889046159467641668477709179760797042532915950499462366163925240237403046131482428195358335818530912771268882644893430086344647241810799654769771392840920150370153380371917647624247856721055721281307963893219423369743378002409371769960182536863535369422206199722495332442664261707983996187711410264186012832523159496598234565626920920758227971260550824501421125136588826224468538707671383735874939412219092937621183001738029020655021770766676591505639129706144678068435567272034852106673923460703958713732464372622764088716452469706015319106471762683274113935687687056240541968475508228042024143564138690986297048372993746960061986856754624706307033353562091202266643175085981097426299674925218234236633371150658134329157873270274878674190149552286897371178400795640192574280415105853709237840629512710571348597551747660948301084066122146612657092104665913736420219397226977903440601685306234218600841766541566637577904488976435903356197435063691273270935191314821039953813557769550768137282284593417750601259236463124193166419735165780777795620844191346044430839515353645742438133937675969253908706566942713268207231521283011340355514365633543354639864785135034820869222869706782141218117708729294855501167559255108338837392380216818598125653506872838188732769466780861361680879881393233650016606926948827960430030957250091778002907446553806493618521158330992704380364537844342102829589356162780674326514209122667004323349677107488697762583911310763309964299292817119251086832334766259010527115921782081940763270743084099045509556615924224349747927672772979128550438584108824915276076590311330175375853958798870958540460662107504591132639238689103105715054577370536076895374224520897990503575671359678709774482212919901827003981274753621195024247232251579407891833809517685645791116925624144125780418562622701283722415095995124695429370935767776401630983302839124864218445715926364437659864088157483116044791760897057237847565916462131731084490005608960694537819384160343457656539025173042857102255348044645776845228056217478642627932040944532942478402236424095341671103034518081536440336049473351835489837909244446584141404378175192034117671263479277489338775453098247707023568455795355893371763133555729015847734329296976890720158364183579355456003893677804704319760749400005924887319077804444620060365761905083371947611223577118142168862250401531097661969320592011440621218678473321725912671765874445620321950560259288735131193326600160854515750307374892133953175453060332210485275000248195993772479697225448013555724591979210851445930068338154460871998973487430808627556130913246468906765659618048077233319315701029731234081296453689003174990565082834826037824625271247492670055207632666196032295815781937137082306291133779365726394550781574854873618735245820727517135448495118500188123972162854661735604686967658790003583651823204013039593420699514603530779079687036105446250502048231868601328389356748944341631791841118166086124233858885752261499869001903000042699165544325016231470838390198278541749368240613029033110471280571234529779274032684051130650542936684613847225625818824371443058144157224015121171041193893728534415960607918968270226372971827701665031975501154346290690854523473494355801916983549498808183267973204169235858008944788339683200728177628184903097107734124188161582782313522698742057837720513936630584668363332380924438772449293828331780435885417300979828085277895231956309735947078131936605699453610506796391609651339362213340101240688891004992524816201517136764378525200672291682333246209014431406659052857344531366386073452670924627892703946225358100149147019739556637414474239382061961092322784864670354065503543845111201608349693495071904623151194362076526760977163045386339224345370349413109925223497471974727140400524593645536554841882779170129852431036281417719036972668626265550433929024819950051819488092533521247253975212652368604847861184741664730584942143767183365457205520465764679405595134442486274369425095164569784003865435518380435126841601577874713988495982776473268165298757026225354728252313723398624038055641859595238758809044689517516672818196786553439554821208082754009949235994547450788779904271870509523849949649542918153728630147259856158841474914261892011499621516091241346154491257647698961508581803932160497477931707095603876740921358950484738184595393260914122789827121034823883358170923251270706816899915284229215296161588723763222399626475339016570598916392547898830314279427171870695986417936512825146497548963909119673911614400059320098685587274272583208053948795784871451991551324629557834271719439374506682558706875770212538741041074747271232794096481307145030114405686933158071653861142372131091029582048939597139444089931767196875127722019389261766230238207802365664697762796534396012111872354437480031124508831254619406341676007848797003552293074130254462228382239992836868892552092872164572478145950601701456820564951424310342920926361667728430985949777594368105632626792812309600185300075773834314560270442147888823477473960759456425409806850402990514007776706139740336545694985033157764382094223379481382703201166582276629121994399639181695090365850933551539686296681495756804941257807412682994600164490936603103447475071512089044021618263817025190956291181635191604825929226206270158193781261564983743654665882290570307502392552062996040644755448877716749067461760786449142474266561943921094676516906395168824126377427419669652947288237862674034931935763712876957855060807590974784915109488824652941409808580991301383723723306642002404648642631770417937603501570564180387994742954146022428999174337530615636046687595884932977132987496239850515450153035908832377069318256406567523006327777362673812533734730632276624337367805957983749074748292870222339570140397100184652823313841237058246415052826213735543615511599518726341010762466833696220602375178971674085759511658679382435996304326140630574941374684211827491005496199100306955151617100119222425170298425750237949274242731634685700834281597091123408816702159811380635054607440229716625012368494908878110839693913245263523305893206011475424796805939202762060866692101438257677837513303927375234022669899773825978025775708588784900741770078189193524905535018817929650925838569236067687554138438577995661703042404407605120541977073578955371887415939228266017146637744255340866382569876258588349973912870377452817261385320187761382438207545519479231179732708760967799706935523702668297503965096751388876321489038992574227993492791153223678378828257144605042408764005731203891497093567696084530799948942967278020132112999785224325727841989953104880281068141519345040510555122598266983053285471231128413399128389328405451718505913406133936595241391482491841907135087867696986748066012376127790556682779439110448386263547339011395620908546157730570393664450698725610521395940178350070659929252209093550172217739714226660354642193579607138547980628035078452330056558678941224573458649746715242689431754462104735209474528953070092102137567762560233335540106148969298984003066159243685799481745868544357126741756777035457108984946688938716903065537560051800383288876050155737134827993158074295035467378079537315897239264124701656771971345091017697362677486011458664280826555196586064314181892749696471932084813230310714252735795942841539150642356873463330501912078364705426665712140938582174835404683410711190656704679571381350405611125059645182576724177759131166112321405554295281887258123879221574796651723235826761543507541419639240677255632927320264595341213275444470684230046832745638555629889361395781986670327025358363121781601303905728573966537017954023241857928560750794088348132974659210601878921922726609116766922338551245627839678042365340240278189033255505658857465164503701451612660059109091799512051221233316215798021629267663523651938973975542383111591198862936332970278755912085597152830354811282134393058745831077155573366809161140225399682512564699357124862574822425092261299776861802892949079976917753951621972843527843108534974044050798582978607602098465271816497358620789240967082394896601768327656553524845645080385417091386458319149251265305408498294752272756206941558167746996202480421106962619425198588177271434156278115275194848843866041361549100213635948472940890256647141019713143758102921707018209013989489651346803799480111258921994119652180416726760354859454309609745967524614357734599321706031382088968087911089182916073294008621425956566331208304434865660426566438559325738510254931665769300359978172247616560623564161087771711648208893621370677438240257289642125544375084209845315900213863544119852719809829530311718582949572022743101560672696263012315322670722655663776388249777088151876235001577518086472766703482598923655349525904289562190373625670157976514760196525460854232606191902963713528364466156162083850713880727518317037349868506725975669211937036735046746512905170350382215227243815655956828042146966310990856813110613390414618319813266346671033183805325873259826179425050339821380044529978231253981124969291889595322538809535472467246853969951411796889698063774225662711018558584235403993199813736829843458509814280613805284614084327352843639293164409129540699871682308517197733797933258756694615984768376519157629762280891920258299275026868180105633954278468903694907788493288395834450367262501685963859863707370676373645035189105018219180091041270725043299235764967914340175531988123937394891233238278724556554723024836343848510559162073778581504548608322471259734683220713720126241484634830779576156185745103982400844620350504443342881526945580838276478789025268837878786637559869523121806391196662987082339007073342954314661298901091942475274921125994943796425119595907078009018941565465261465913808168865077894623900446334722349858308048389339124030359865111292773332313703083666907489312297452579863543012239678047028822440635236819190484047715547868330191236305631392871321985459465467216170660079094366451550190027673031075722397556383908331068713169470486794525562088467210213291250211547270591015594766809496897856265842059766433415593129904930923087474633947549312349335970427656814839772621361898274716293501684577607902890412182768911975388724303754183943942107824681980991003624928940284467189290747933234914915024481999008144846112683552232487935648184398782586382868740822558173965450890000262640405802210464044513834987573290763733095016967376720600321603550569542775869887156995221926533481676111174105443663545280646523794942056548013701672975432873531516282535379320127605042662982917277250495626987630038015351835436474675847822812561618200075004978442952551539901286082067759675024384860597003725279531397789927066222485316862745562068712907978048320611279121776744213235604933939030921663956980803451029522926666676241402743087436122060875040721123415315208691393191938002733065141921786202855841841785501669455149137505026810495674455036354700056176856789822579951326564706247503146868041162424993395215292234585160881722426486252484760264073815402666794778903524659530990356623073945290462537869636593713670511638425454275165811130453660578529304041850082626152436790332244583297560949922781376157569190460366657020560846747710912079436985252620155507854147544386727917087361623144034985977883718691788437720605683117985833996595350478231641538369342825746212289076572673413658256898159856024328950019616581275264156606807132760273830157321502186269765369997332212846405568071043210774962025759658950007476947611743481990429554784748235740668859312903096216990903010828348742177956353101381787778885558826371103640492745783029313102496649672231641152788554627408700002148504211812749975203252599506234448035102516380442033655603774035561292119396069554534931741463585123009579385103359692388079411850973856989380626287609147324997562301158138943535242378418508462165498953642487233719544365424102637691888990452935974570748213641898732758251101618141262608695547453752938432602840705406634944348225684655874472431109691959147139901726802484915758400605305650812967020264044942700516716265236097532226404405762096226057143812660556770711342791212348249299125765952659307536684868689107529301643129157272331882533469396935893139499802648400502525745655923038764205360220961635905185065200113810578089180739519921553490042458441222322813757280338951587955013511237861011606109366944790901039193179589360233349009096788599917066526057259511774415757443072087400958738093437242728460934477478656428795388829204748134116741459691305185002163112546915770223227011032102832915721236236824931432737035080084865824139803036734321279700207963450246727846534216245089418156779571967087529888051130032433001620515762419326291307364691703906391370715930041982273457518026232904371795934046091814680807033001002440721914175619082578263451815701397641206140969037713866175640616662403878588979963114143707926815603224892021641115324898345048490913656346946950636299378613624089911669374782498796618907877765412285344531592669711684771760915250283342736759810779357334188336182632404370188148171103749258217828431155961479072809774068952294627021619772010192593894601814548558626755339920598442233903373706011900376374517275656589022284714635687828534110573841579522620603338069389933060528657162918794213683875131801787533425335551013130897133104019808306911044290976161687036758675911565891635264359597197780994429582304445918686493392025248045733255879932282513974724611646009458588652856965901306693450644502292134153693957086425938661949223052649859640147617748380481275204745270174543484780488991258584971035218431252491590136237254347288387840745087427658178410942807451835152111098066235219700025134159350106640557107748870252295197351346612289318187988135022361939283616321959311980083216059663404905595890546836213410107657223144457393173556807272908629100917937442208479889377851288210256096383407825297394016704500906920410190572334265202315084269001293895932435534975810810148840396697860635940025357685918394963895706758985089835327193234384934204873144202139568489642492794383273675892992661981429557300052494548349541046765535588506299208140317548046826180985269758328689961174977904896889234186888324110560732317369827931021453540990458357839200506594291432394555729832596972813593082882673231194562518712876318360562252550129937174724974601479820077061854411032739282138089915555415813106953093776717313413883653845104362999796608026006725243329574330086540751206514727132573007766483077866043231825003104080936669037774668634619539286656014966326866530764787412984280891997969786569586498625485634674865409246780834729228619509603411456436976075195296228605462476626964898982784137408173991729079033695283105150427583611298126672588569506395529298817856914191295116273953923288698924701471419013873312119013182532524819960138608287562873455891221187307593778021819908751322519525915691764921589453926310513228641674867675783133363477013522428294121775762534368040112654261806959492145261382515380490593279284740492198590255209708331454112601563936768296786948630128387442424951483280175860964590558503862232028740975918191699080829643490997537998454422825141487628896894413832517286862518924759030689984995702963564061763364337098194343352925287224655869343501695540548602253657054394790671512248919123525346021111045076454429847898418373110619832453608327854974625843956669680309183288741019864559704830440091065998181481259491278090019141334341228709524015305429520634217022356591455130305631420003228348947848983623091263532682182178392396335369114416367986849056462862745290304423081073995098437532208917128203073084353084112700691635650474807152401099029513142989569106036945793729403650439753089133427732792226471775577498969325611364231076062430194636415294398352501376285404544538634407083675013313147945572788077409921392267157130249105903131621476242611684311814410818030166662151613498618866644941147054957830297718083395163285064548414402371754185788510139311137891632726390327867323309463630758615011455412796040826303256185123046327623150613615036136607128343456873393677903775389092385948672410994719799900720968452381063301208489028464448176178379164206816017621587973877539875827906888019112269110250674189758913768455239082229302922388973530049842667101034045000824410361087506774601750056658749366735864100481197804773152956962583577556476240721921409391678277942268150427495321307241668086886428894743578251872709803890004429898513378590328127563113883469532779958005262121634017357405088548871313354710895874222437729448041233558934022559338281890778562356342640155875588260981563654161603935474167252118145264757372083014535416804385888819684404287053340506615311436183987055684435422556019047209090203891155067255455024869354619937647365106945171045014013747058382166984307790824211428242478333186288551533474665506976095049495442146666597079174231773371673085586663657676208708205686689475107346465999795956660073357372972321075015860625116491528291873270211931899053410424568720462313242815367895862288683620764692596464203887691640375314832420090157657753439878778831588220236669907803577233772908986352979382367464754163217527433189385783361138570208072265635512940642016554766836610401180863594082300979234367022067732849663753080855821803263772993659690430215784979936026328785906484218196159991451191257297037631083327318145427343014141522432368989990403854686250878451105430384334388930581118848727441471467819811661592658409902825966482720666160475884988877574928236267108582801076558112293183568989182950225859135952629569874809613111167542070920498030708758325785603298795238609240084851113213769795429718391311513627954770103942703636774082621261031061763833109653866506980058529871857598376854550444554599525195138558116577248816104928025332286193252324311261999120397575961470656228664964122993343242512657186757106668904048314627727664873834290682499646469589955897035242726436410552275548325571355685726949739323247162067979138139876128907803034280376233113475384078286295703390772454019495180232640033501793520986848008798380364289225074205052926679317806874144322463897977276651355081070908546955438190454220584031521260199466152916213497929133090471104232814333557198834392626098911858183653575475012936104619204777792446892102804583500737056121296282884371269991526818176826642875867621580738887409145754607921545745802228069483389166889127967468621060259373586130628022460578817961100028670670542368722791455818846840349430405434505929377386695567410905021855178655583781285288926253421853036280383567896756167742621279498411394340979194483643620783757721129542483580397930049457573038507588717774001229336626124751155134428123355148065224678211800431475806404742182155119555734986065060247357667914137335640767755296803184656773051513341879995513924954467547356269170264639651655378706173546064913779024269092872437063016859733251565086588144909668487150317412632491935352755112630423043613805695856343813095234034106897160113509950577700296728054185328958771049566575521765997837004214911093914957686159696723544858666583829351040076181496758393992675008714670842558212298171968724918915004605801924197600574213218148696605849379620056703725732094459397742241324619257643893251804550577744082015399375131347109562891346423511258696786278380164777116582147731323763666261199905436217107070068074861964173090184563090955369794935104090912697492939858655214332715849146486954581115951995201176308562813029159435678380115515216147542530160053873150495947483117182022121473214021014776891292924947747110070538679272329054321103782794250728244980929325643947465415692329293512829707325896214052844427032285546869193519066116665658588819950151705065652263775458579631431927919433819567806915088848015135462972109356016518395274778464432867979785495014911586902076852756506495082167059409651574797263416329814423566867046967989792050853315893437147850700795090054251678339755612089162967829491636295337511151609328772303076215455509775847919385681054439046198317024508266698882513299558614959590594856579373856156896420937876849573457865766851608886841064708388191901326245196464599963123104023704510040341521303929908396621945161071398837166654400321807311471506005905724093290765044891137981229685275912733679629207627663745045496829381318720907381494177786265728641901367026190686293254687873930526730037343120544545953504463252539695255195671595447041328448709930991713151349468621336240722051099661140935936232743481302246993380678149555388388830425314451949683415007460010846695979834469595339715123622217905355978087216663983501959101442934421316810033156506743901750966695512479093844474241329830107074774405273128524665700786238821199670522994896428151984068695699106191071901786681564962786293909375435169131953716848923670723196730662411888076551876696200186153148282272339159018575124995718747622575745508895410745828525363777067770924518617375483574909623463331800912975683078711472296068497912031246468677789696864965662099838058583916890927847749368931234151499514463734914798121079111402732789808334052006759320557604982452537350154663655470051635851200253524984670068711422469551476121311422463121429920301961693762974304578137608247596806408942556524822990337988968034649900047643483945744443920678564467418079735492340115174052911380650264270033649593808013106519118282161601885087094304425805996247205570367745741180388594348079408786223454949829674257316398131242727364913794427355074808733020269427072869147310244600474192196427730919385192481591531852518515942970883192454909280942864935416657110583326658941553121215915387796705648290048331552560209149873003778299824704512784889257367803413803490513094904800645335463849358338932393509034519625605348265987829991967909391229128326495321324830588840983429919073997966355465230946675856450540354130072257137703766918045894089623856878166373463587599705805924286059390624498425329130852893210107094855998523658130194186115421387094433050881989474363036017288958543482627831327592417550195602700777750279514346310350080087468201276285641222976820863385434751402653786986080763020441418281277674437762237080839403359553681079298192232667564066307414342366534943650033015443775002476888913362293428826447953023687836009602270453626723366142838552119515221135558234032202525497562840361685598592531101393029447186075723537732288341344313896335604636429321671985217900162858381612555672981197497547514711235683202332922918010821801306582740326364182073317645451160767715622132928820558569985361624870808554938658408591681755093044780743667023654682147834475670302702833413077313506117626582285007159147115931271088941561990537880787434077320847019025378244047192700452615564340913752388552191438526092418534955600400032902544213521484286829908857626323930072504435285571206450659471412871892790480366870709644190098835804987663639883654740691305883141562533135175705884210375445513347092254948447060772638601134205035545131151488654898387128742047979219862468408682088241186210378522527926548016435806430551211412197745917342637138086273714704091855081685815230299321781912976723371361469631332380212003171780084726591387815822988468179689868369536866949722213367527718149818961988968493693399005083210263078373523000068416859190923473725258327795860646285320212403200463238230182180405427557419796787829762464717991325448627687768796490312807870722522101976343293436003257739520669876882452656484820343448224022091535998228644664301395595209663090099359571434256405140418677989660066907157874402132013818873714869844682811602224970708338805766741688766430845217496520344071292260280493272745956347450415845978791336684205251074499414538208923454676971207754401484440531236710082444158840907971951494589354314681886471693133203798948769308062803477199952342118769838674064933863428355351281732607522442036371972939167162423624807150088693261352338957611238821687381711163635130895565931265365650393807576753030447577009624350901271991939455803899902396671735238009778523733081123109275149490554779557570115064965889957447374062330101764897298017188910989453301044656674430126244490308425055787172166694588781644344840933931280183666333800842866930100243245026611986185809084126344320644932926671966251624801794411433591714273289045936753269572335401305697960054348076171545627126406309820878111946482442966542037604061645641277737630344944864552025132724924327896614513110045093310246835470056855593006427989539912085747183963771466402373608013867796166684410190350790965519719494356093385009232541187357422210014310233634708706228828441698130772030036754726044613310167908664277317166550469975595583278429392365684775793313969240978225453475576317292652386066884928279178717948420666173259670263230109283697753449566986781643707641478432637781920721675172790878384139185550606027862665939139202231382540110391373362865082571147613954757921016398307143400753140235791119965710955163215327797769165812290020654960701073482081867016193178936888683425516871904921296277299738971183335135599565245892034604853886721938557742722664078189674896035603767853028270231349689711693689160932819470715003426363660142607363346738125278920989037967935401532955864736053678776598579685315350020463796666689046349024867983374974071477780532424426865631451454277160188065629859509454097462237415649160859737984063971451898911254642060883877991711979447369579417344401743797679745707951645971871209438820589035996188788424946728404264684332450416729748002848067791369207861699889040137442638694364546634849403171944750288906437205533116463695581210086484726169421821735917836060487076338314904579489738964680814899533999436363579594083606912637441291800616110149471149967394976121033670059556187756051512603869190320963088577167765865308853985695310745949478057797871808345487345949433066817316936994270888584411387101920935917180262810258645164205221328902486702262540183618142191200996455118480362048883049812179797480309387039401340937482785079564598371464978137121400352008106333768761367659551783752134599046041777140660333801694179731187182289257700182938414949249589390733560946969581370219009123174533389464073289008998094552401690051096168551083011302743717442561179075444007033585638284760362377030461848120083993220327411353222598976087666555180594871073550361818650692626078442498086851665478318362409336144061395678425210126305063867708192789295005233870877893493056613226631812668428251528902708610144564579799123375010132124919083208950337028466774384338081071618294510600201327915714807666808187451677188946407041070372179219420885756255209281736721592615355931099303822537776410808846158863593606006836047826744542724876738241028520070403763891904240940355184926049810043392048967280647755667192517232420762856272359707619635636199028423609508740862198035668954741970741619774176584763036835926739075603337994086787814150624606131198620207729079068037591542929999266229734597782505182017024810107251906405036009641930849261472267500366524088653619996139972112702462015558449420515497719565174139557884963485843483233423877550611498545631437663965210899248645042206548474755578042898525533475473739610070492824090242022138726835077975414820773330894259785753614639224273624797764525943086505641509010863461667144363944155523118804027776362510794144184956943239004433204444812289663537338429660716022222596886176097668993976971215470324866799325165360241266649195680677090553898942422239682794004119877257550749553302444265548088737985663275336788728512432780841350489037070143446338286760854976520278546530654680658068005724812474005449270859859877909820402208906004233110966985096868981385173322808159409835185749460625493679422109845017730505642247952366493275509548953402999414869882782831136933459036001454767466658028742923488896835646307296561078524914808849417539024871926691655467762045171360490944944305720662407537677911548654870411694585595787555329132625793406720262922059600467437383146441197870547030029035232683890386455706587230305884821193849234352337206016131690675346818529782380802433506834736047749623614514328294324165882575886641708827932207731284811657049151236431663838305028744405984926386257198791512882395715067671165050382517166308323784915426129038468153176114947960111494065645743956084504667006026824331530949838085776731215638055278827607282846018015364812688055422448204953943683064471697183157906910289862907543310638204565070362775937205655929167961731440600982749913080860690385641257841036930296826134384436508483016970306844958180449058827704354173489957528454219723440893568140657231109215588614797943695345532000595458649689193974932945067293821826164909617065555431252081538886802365499449779640621951050011800161237683173481661459659041407771788688118867314699052491622752568023701286644710712552665425535768628497322332312950238634228209619953854897280931627911900173710523450571772440398848185119946074920720027037671606366745956735457831488169735594182817055035030961193351561987275904982357789221170002775651184964330518913645200448703502071539529640000656074409469822947015796068448227565203707330296722286300822604694743192710777604702547031801890353859778376715469114450318329494575554507524051690814884834434221280727634393442992495525072301574450623980721264591991467220440322309025814293426102276217653882718636602998257656293580687139348343591703201954352266335551655284860754984810007023226649449663494327365758545438901586110243475706972141980952194885696971359843203759409752193576707060182820202905461731883099186892808610864837527683389472997915572491406285973965370086673580546323225989963972483414054463302007413536970546746208547708017323296762389956799043226122142454944374062192951088002770685984190868054120717684570950655719627145325892748400991575706066583112365156828275976552660302067712121961885237860474353044181661180371154569183891936175090933692597892899205792809233336134637171466441498342871445409597963740495260924784867858629806995806139041923794793342394903791774019774190052489204621554700440294774417059166248972771196541088033290460128153441605319302897890008686119198733433437678967597614044192312262724421136016670661407767567440686617517134694607874927480222332895174227782161621335812746598172545404795292688457594011974982927277381506040776973680327203392758896082348171883916056813595779709590290491065443330138881469278743679325114721982063758451702733429460113764837771490686675738463492289437515086079886893644289918076746649314416849361977661776151457288742544092613409151446897494464989925072288300896122270712115241530606854949180795059077611528246597614526135885115794758165246574565142754747891914720403847750583736479112172964934686090546294175173090371874844282207349686062115236054179392317224254536058585698298768533759906635771200331400174137295993673562464764307346376758148292586687787179075881884822258510139584398746164824606176173268346503935897768533736632424714188624577009295325488973764356488612540362876870382458454777814926275765341904962821706396631463147923300948035083862251330155387529665994281739229736157755238732225409178738747939183290598041747094888368046849690534069454862108751410585243819737244041312137275933702084546964645244981713590899322144910942531962669788087370888536092883564008700483036443066427735434394750367915334815908946910842023327289516500918940899108828544563632109177743334372043975629945488911258475687072750814998995379732603923630745906352568965909718738846025580398467397647658511582023851617008391140193644436222769987485362360026563635914014002561907977011679434172562549631310839544833579746462781114575318071891893247209114471886089200736413458072102870553575438965593822042575281182437383246289885550014745196181074252545790600322599433721483181788668990731504291825609199788366929959799325804941547525767357756388336939283486163012707688615243360907953543875967953758034297559572445290946946440153398243501471489943209308113311478990024933567194232200959912001170743169020518363200221637511018478730100848371314716572829628080417952062070852955438764568197508321560583852237335142017612305472361493568556639612767286808539029932722174924944978494875141345043042354605602177464213832546845855291435202211432424340581770294022279725153870591182564912550473826298652446833416382790958434799072031038445982756394192482965839335883478239708098340848506726630793561208068690165532352689321976860908394210089170033867457444747181063373784142455393958658593047246046479917216830751296493901685192561986169981455766208548700738464799109411323273729279823923915310569926365456696055620136313219975788098270252106876432228965261768050002193478952073887693407514770685182632211839177499248708408170606629456368922313605416723176986712584358493015968403352986544598689856536107685542457897312835546767607816121859468805799616185005292559860329245076745720208013836697194699080444845832952704472336724458700783746970959696093068691571919219267491543124514431628147269625559031321780852566927627914074002948811809022312996513352592245263929272029639669397099651730863812094913743286442076482794895964565138789056279926849668324716770131251407788132124622766236438585973859168493681163708199558620069628630327649477678815694202850598336702492400215149169752584162293176647094316385029140653107932666114401312478007567494580031609047627311115379690028473727450171817527013227598561056086434832772856037530867288960557117754195019522505077719122370187550880917662590792448639864131259105689684740008430660615875302049924755981926866803434169366362164977905189767324316875280096213443150676106808641028209375057818229959335586574151406488803421469276016729600672814092157380479460299459097439364833960127476886773699185624866001640720629090593789021606818486215755013074487508930623171857163020410770526669996705348878992818255935209232101522845217925327231393649670338018757889096243142856312660445341803714333238157927849470787674834284762731029571658185199172327226463590242010528374171164400191209691742328164051985804817528110008019495720622354119623424830481354609177888559870536379341374782755675788482369248773759490634139230331022498636749171600936628450094701955452649061374829503392579696764375047803015060659648325155379965072307852186903542521462058931288666305568811650207239108825116037035287830643987757195613471886299421249329491213494803341406635155088547639155167424072785545194600411178863303680446451094313715938666418091271625547877154684969020295923277710419596372464306252363986173239094395178675205035567287007354498072563846929659146221634169275727332024428231292816929383430941630290858684525155334384575738153577530854319485968730650764584517442919236226700846281304618003647988382561866796772647857504716788816085440548131405606025431346445968844824615082281388653664089727534095134004967312030403021549850017872182601765716196500170628292474800478584754894222240389261168520098656617460339207820658869036961800128538653364675322726563615687254044313343141466344294329517648051112750565491147939420229353125027206565992361820785007697684922244344216950059681805149364778051106718578216254948907414551524960252740623591429749682601886872818610731306058416703176289934882758136890395333790504276501559328704145451614736396476295665972984517396497637746507069577461132069039121029934831306556237876208992645929142753849637797488308442328575040442401842037480957338097140521552001849304782645578061257893818041822178028108760903877868600704839817087273545611521119451655821083819155226940887109413866350346430182912930088499698749077045458310941977586005993600135534197331100397719703932930090049008645947469579228820533894107204080284906789411607061801166940418861400075933377425090076921660907025872906953391910717738626017604569376137446117316333134919740584271359204563017884324056073886366199930143796189662701478829608788622916577244441152491361648601462535166136408740697727991318357731654571914110587101925065426931696343434340109952481608720070818055261323456159125719378656092803180107152982692313729362667793263695447670882313396535621602148152709044145783587453444414532589012373369886426266216144196255282938159492977928024921143100295108713247553768183798259057563245888098422053169593890072691065808860824711485133485298180232525578840131163778987513243983505010158889566515729456708958415069216131564716796709223344783615986540139146108598617704861534489314536157662596460035122137567093832413168835541514905291558915488321887534670762740053920429295334581826070935514233175668138546913174812880018138306810390408904033787869920408793759346132969076556978682779072909768053977150164897493473287231084733874935982599409680221467216226815143162508191575564305530207970453466892069728848450084921897863363153028689847449713137634890073704409378743073182670264019939633764435178688436353349546095524038422208361608298225224619976006207062641940890013739746541791285981543075388906746320279157128925265129935288600112648936113279140898000197557510787097006316887607828994822044189690338862833667692260818116555641628601832385867245803778106672492260193799677022137988578579624580931257675322074764671268110020594966358255216010634723833538913769020285322188810553655027320474259083738142045277391217082312656095320831840133364121555315553147935251036823957752218558007330640033635682426699996568593226885769935948908757116997452878934974139866703819495947651490513914262764324694650152603497224640151438097246467601813138532817387680630283840165107231374306857741265275917867471096944403380953332880436130981128438113497922309817786226002765592750043296392032497240256066085697976929493089932094784603825060133707800362222946103490680761506798679460202737208105271156151804940341937792005644008896761210957129315599962225811976140099910411719981053654769022774060823046876753657827299431824049253302980264313890472283565962729695984010603443149911114508765076615328043840721613238087982856801702670329529553534015261094139952918655122437622620893752905479570146889007525010078503578692559941459381042021436105039073459614399772252745552859089833498002255276397651249887371575513626609586607194621648404403815827135946936992920972223419623703747740911407487862235504395758574520680695187535934831894670700543746454762634353990601095910147932460235390313516364025033330148306136093190850132200520358113936272085767711351206314048098205047458375675227901179443603047614377938360563967459256644987670710652134023056396898415590408006592516300532087066080532766844434329710098376086709059345051706614355444054229783191220403462608365641123056455829107887817573367006990430824937654665728129490862488844151915755860846816744326936319276634701064430216898933536572135253152841138553681399209060693886030132475165052427572988038646849203404328331964383804377950236079052780464292082924195918310976321449489095884964819525384217930252055127075847950571819825085432145626935957754593823483557584247937370769597746229598662320616270375966283448301937070604089495802720747124987274567561368522002568317176699883444136744983341255361656003006226762865767950807907373947950508536024121328579335317983441561670108007233279606222608788219083238894394107446920269665827601716562632831044022674480682871668454798934573412897788039239783039399970338135562627549079745158016512899644707222973173591953112772360732485777640207912861442235591876876190984649387096029337656790499827589714980257829842896667075078461256518668425525593458804878997184686609892188345067455093968331893626419053180236152780251912893959215281893026639230912448844039019783496193767413039603155685010659145118244344733453197828701384647062533463170590992628058581551882342282606127468174011028103400542348174718646639325302115578827089433603755219694925206473737203161666528170112071498057012947921914803740956879208923800096761866456894959591477839322997829338113731949104902000605401258559768916739778265897996428402517929320324552869623193902770586483903485315045209392745503804831287726454676874806630599453739592854810110156637617767701928562676831197941000192410949788277145015186085271795393778136365207510782757015740040637711957806327591193056671782413634388958574043794767854910537688686265332175950389011414487125784174012772712824663890453672979750978113929549815715677539066166322780114437031400724048877507292771352317100817273227724580688018534400397772931960653479447309679056032096502083699463489058387863050288685078039685782492216011589790376689183049167182557635889514844826083900159869801607784126056123016404978124061506145821100591996921504619655948868301427692543084354295312699503405992616964049343707079711313433439755808952741778034626679743576685890477396372995495224900623990926767388256564378351734214553813125820020579722110380616721783429654276271908262331199601478278205284660194700180615754161703535315130267647127086976214832352081788423760713738138242622329736472206137254327150980751404829971062373159036967061521535624511441745927096686791057770337941101484803526099494529484288466523349547338365598387445574297441980267193087626576897864395767712894308376357165056310814682816874689775936884103052105706348474510609751414129902307275040876229117642950495716248986807807082362671443828090277977208094367574221512664002724506723133258204744636078344136230807381957335345628711230501988799489345509705001355528632653741817672768937672165765049515497309520799361517859958413305932465396485348363157711471767214811804315889932015677733252111192360763966637426646772715131886637402502940213964560125216315075026760221492754374452808416072151304103433433712525513577977204561394117103249514983012500887507241715746897754270400506126230643582258226542014258784345729040602529019312094221669442150137661256115232230248950106182846198551151499503893954196736896170257760649521023510477215988746092185111858397392546001531535717428037763210852102371987044702882091672162627569245771907282500887413658182656325221406442402758923476315417324529908382582302471961983603194250461485584344635710832596442937726111316792171201096560076622138273347175191456678205505187985718580286060367049024199610762465220469953423678993830420753254718809241340714278932330772463994567057270442741561702612994260336395130767330877339626386625752872294114439375818206543891141034746567275714416693806732672050063415437200035465558046948030936453648043853214161135013500324650018889685748363667116843583942355485974357622905440045930672749272468095416844145590028778569385899980169296612547433869068309383138504522960168270133198878823783219578647305678091698918851259351553881462033703017389996376360119768366007339161393263177140631648030272739883404191072779122998565585813517221067168903667935663754645344137953154720211781915308260011049612053345741112078423819399242294009198401996528945555688529258846670969487677098911955275783513328001058835520272577350592810130865629335120398403658592245486861163590419082444814853397692674540087864439062617586103634681740889079767596467361176596420132342793718027882365426747816723000890703681940269949386982966817267199620435351971086975689571008589170553240544094744460066476588342123220948445183293039612155441614234261811609893586020534129167443547893365878929620983120003020132385354247698300795245171326147393567416165445896011599846419228080270754506864403252000852939364308389922048685996654389889562076050659774907272753855042478446197421545622148030268124559645477925406942913480674202344232977305655074759829134894809279034300484216315032226378917933949029484960752815120634232803861053033318660353951538239272531558375384479657793438729537431893341871491701657262632142904043324772611356894189200983548800149440561053353534669937645504654147257498630529171924460119972257773133278725463620635245371101128433387415916918591086622278167549174879509672354130309257762618908635349957481324094025917703169085095709289053829364870320565259541952321867039207371738142165082728057022022021460130394985688580960941671150715548601433830995427356101005198992957486648672971179398576234258884204838697815642388156346251497727824087634569754129141308210695702463125397370619915896606583947533541959623412589263589086069607102887992341244813268796335717833681452995197380050986527161907149429633156230950711395373755877301511778357328032261430211367296727459717483823570483998280246265137002866291708936698288745089088345966350673222726922896504144349924504774195234805619048903081678953736855234960399814954598430768899963323369365277073196006495984306529695142311946373639330778197867587549568882586266341704837664419906225783855581423282600792687226319868137517690438198049503303403057189750638234441017397180263545042603318522668717746967867452074169643516366556968766065150634423038775790110869579719474506098226498290159091765969605328972045693423038325202405549491895832450249357924750910313226593903045751144213780162676985121667584920285371730211098752089071934474558480658950982288980666545623711709570481495423841302620120339669417921607599060144073259857881956869378570800890461894710027982205461492398432577639109260514906526531150419524931328836626147694090545325121603545311767572909079224666625007060549214732054583931796832698296709645169552729411220055830102238373392983306234588561182857143502777991573655229611124311509578756431322955629950946534513136133653903645405759883272020082609395600144430082326893636641614391300195934460758965803457258960582380294038527899965849836944025536351517486813769951980691052804627449008204710079068101395150918848649346837759678561969159222702822441881379445800860137209738303609228381402739190622574483560661405075615923034146135151036540774570603705753952464999461376369237662217797538109586756607888862947030469126687075905015460521803952619261251813105836315872966780723170830954647189172439429399866004489005249939068402045730773768921182258431171214028645115605553026945645186754219064753483395561897808823644983018770280573995329008527840922513475004573509838080377318166648410920755485091096319867025202805708182886559279602349279889720830521859375973295035958707563756200745090740419804334228367999641624143672599897035450536854974657447254392399580842191715191564421064432752992564060505298060764971147190456128860898361651445621802287863268083324460855502904407083848661616165446400106583134276980139606239873330418743667369951763357947214213207049342233934030942822533032685207978499407954789466906513146349075056195853526131747777696231219245562460817218482596883991029042786922884344780520670202537564511447931351595468039018549097704205071834801184372833492755371387945434732592540594835267197625984119660839063938906813476716295640466670865325018307175355789101774294860321322001571232402707891262052530523691553391695270704440950172215376931453328370912009402519460363955266247856287242563029213905812300446994072121957697920872194072947639362424050327530497005801758510715565891343655588306912695811634404121567119361593226078716549630957052373155340114198747075358641345070937309881240650505280740162649452465510799387235457069837360523297361109782083222090481876517531673849361241129050934411691267868892984381403240403021203387339622429500868051998668586712233361893091368537962234811427429483882242016188722179237691182458920869279240167654724665139891705502697538180582326197770974303091238836312521348871086109877177841863854899719939446178864453095972732793448692307068122932464832460757796958475404960635271889151267651762142256115937120154782172169031003181222543870788373772729680928384699330762098213607234383689937122488450419602427164934719880529039530072512328027824873648922564793910838040421898913522121551381646126813699083731401620497387317896998399320168257189749244031110542901511064010150355246980080519537216760366730252447230838399258359585817931587124931133930826752060162835688926400750128258997946691290452782659511390777705836408534827149485005881616827524820061025882830163347154668962197620491699842713009361627948103498423007480372157095964468328784782838293039340262088827047175050571177666586269060909241148807768023620974124857437966487796404103820591559351093084477886491022988145145952880716124894508003608894282878106288838213958072125337869759156233435447249298498385839423978658371061067235001900264602980485638294772678183393332838101396334322838271173652957014046767704778542469434985502058920974848870600769728384696075402712377486074513148777363883679967009520540506016647747410328428706901798950232441012859272442036662059683693655483516179410322650930928394369020532015818216995539700117482902004570087284245571959470028028515026607175740462703310984819237115906275109863955111240080086833283707043209224009649976949874892466739509443673550792359469689572207296850388235034198765816549677186312468648356917047147515848555817389069970986874785844982018363085565285753491332229892206408283677735174071003810859632962594486755372018231436325688227141385304040203113297894568243986694549633234915427092891612937429741763258760540303335945645998872488766090928361950694904184473193348464289539538529125272497791985973783815681857151991730843016503700634898909970037000178267915268535569590405257242550656241316530663647880502384549833314928697565175238710192888074885036063572140331309112807290736942292973845391687907400139650602430991678125806497559637210457620220757425648853359655022706532917932111350294709523809092170959554648466573812205529117947294872285765129013912552316336145789137572020862537866145902559182256531395083904451868349635834732068511482767036563087668293330539569328718690472891735366532829535344425788534750585926252816269497552640307931662899214746874180003201343607556331919317227810682260750926604405932546201301725982245751598603937263316607156488434094646626454727877787865060757100931667569238535230873250218512788392870762675681162245126825916824452054856614492941451251605603636433885356580570584320292353753624863979289388756039163539883983734896200428101675678447160412055822924036990609240551018601308237447422059529970392668973558011476566591228851536384544581543697955330356991221533872480061834427320736315733901620647474234875323631214521972706055694704418919326938415659952337786955123084814711658332792664704521852037668775869684155836381726206397297330412636543037077046281434900405101664284190749852072755933932912842524296642833592623101258149474605240570366435401552126652215664386179835644083010644990489547145197462155581623757344796509292746679481675594578636257472509999617556190558844157218517605617356821613635686352003257320326436692834852113837422420226994874428367112688182271963301007662005407040828238518571414683243251908702017055754596321785854624129352158118999981305942757617386360691468674961915128950660202194832419361623064678935972221693878433878624678598876914175503277905172209834369255612309053411113615337631465945656000473754481675591566942367988493352087261115496641643135165365274071331954787929805719156738026321379582750241945588763015683927038805367638055966101737750628335631952960261299617183996332404111941310884991864710313390971571770478053346099426316834435893209900388242001761563195188512734960698317857236394311399690344593605048929913798496226940964038557306742523929601900034744471060358850599999870206704332824263633550453986396082473631744193309394500117434054697600468008098182335739692267992305486678752128518437449818151488805589919925150258486146023692699429451380594316124345380349774073939105827419394184885775660526845368897712898295901860540151658962088761074271115860794968944968361288216207310794612921844236093730546983167979973774012139424633806193171888680251851216629132301103048770679346284377959447716668332571978774668979273977868635125705057285859583293251949767458593011948585512829136271823965726256911725686380218792943735784347619303310836054282036545853426999190013666922488396260603011306093638327454882244547077850253847017982691377279908782220828885001765598101078432041651799656411602683737856146868256078489477641574655320200977788942826573746074599082588534677137789778959604716459205324859573861598620214352624757910424808408425922079560270753926071841079530304667989223457875512123818331153043436973938753294057661426159249565561309208174882402108203290694120842915586902351936756943910343564560048295803080631688542302507133651011122747060245680261847440508621256818917184414050461305266029444674086410635354722899850199707588614784802755593496254226232176701497706150783065218710148138331907548994939746606332094959891432708256877976887502179294730260200222557153094648025916519245870356872091394408992060914469437803202676277815009244219945397042109890372784770524911560621412030344773701618086456712694422515346089008801950770333175770816466548181944971962396902411594613386944312412779063656815805769992125649829212394610608996435731384283327162701150170679325805407814625259333970210695044746073147268451870314224675294948884708249373086849061772738364985111989569299065144630834426483027113601930346289470623165823125618759182899260954665373789022437818446610436828308994232869266591637407271446410954498018963899297057008515008141342164101852615980887682131649218899845304287939080140713145352620017813635019471866969100524276516427502076168512772484758634066942070417026562582669417959338392579705415574887594787649294510359920752996159471348902332368139832696703951384262684608146294950125203308961619369101043619703076694522138480372259406215912982128026712754181206862535985076786642147616420500146605245781179759445059261510737502560843417558942985337953218955912098121590050115490088244800712157279650089666846476772130596153016902332106442071223960585337114318375645502416027280539986516317165043399142774217304017332961111730175450589537091706548420770222984802924075429592396169642200948608338899672075914515840259400416966668080128789036297758945114988052900539039104254298973863362378138184172149226787163487656047828631666477142413514102019024568674860721722404798509873927050420156743692450100216868268960231663407692696924011440693577928207358932712506745906758886548128461845519660797749005341914332857745757391263046321076226614426384494538418808243676774433203229593778020886075677450544695952343471172948231230224621802122059384471034356023594620304962106482292949529165154069822656572342157596978715412832138387472738083014221386166156494495318561887843601820484309536813805757346216701594797074729037116803725092297287759716113381743301086420322293111647874694123805940870662057954263690658424052444221730266822552204533279259379851022935823169151185658589315088173550559803490454655706212451632199978694036403467190334571930853047546513295084091591780932741708543441711229883209659001852606943264997031773105653649193381082276650265085301082655074686974041059407718858933893912932862997017661680911684056387879572019351802277055321328000713124558916097430965608895493296301151034849984364535302982416979447410212708249191575996575585913288240039339193554831969999505964635670071174112825671583022226983538401363297691883532864391086454106727839484787018985483173669247362791668988455072465932646340400714628851975075073059892250775516727734751848654884987549833922055898910846979478726792912597369193429870544094400241423009605389771046424849806508518429630012223271098492910399971999604071831524230798575563626692600259022134112672788405861682015079511927545356347195754318195861043475074474541749590628210886687985764428870424514222760238777320208951959102284326184019137758386304973289424803663120641661351472774736894165042548316445640576101223671426329100508094225601988879062687353769521967059744932072123152795216114368506191541345806716922427523591883564167091019910774102537554863925636872320711905781548358552919320591142212184127651906415504942812539668973161437305645361328941131901729957641948578367852767408350428159991747526482175658777892685741168988632179301990750095589225376582367401912837618442773553905030156509149752363648127232706443015727125239249577517077378523120158466097913198775127562087564721978731709529905377747528815242974721602072691304047336979264899047850668888292501290402473405317272744786637515306496476785795273663812122939730986947104380965966692379430044527111463826747100683154681313216699220820102241067841190270914888552398445205502562374339985649942859718044019012818330612795780951592608531800177418612987782507248427917057964915908793800182208267492216598202111090551516197553858005169024525550422223811393305297538270398317060128365971028135763951414457922473095541302882389205720506730977084016743644950987399500418009158608674945394918422701859515981207603214767366086462544945230769588952540598753006931493499924142622057340301749371495349005039123562783577908556254737953220094566213385862928105964310218747560025669048030073145179545376601034189848314223677593240550353784773848345640195679811497855886397760317781431236223525381100319825430844493085223473997403532601963370709050022966133509521258009723667536050591044642774678128822340118720632013323183344118953053659653237779912771692435365993192578381106782595413087709890222770601766028294896103674678238633534124887881231257319034695314633175392642785484080537316776008354248456333377177150218749011879628383479688367354886734565504749474446653928765228291818052723211948975434212478495559158079714779202800427654274967838286700100815849876491484415412806636128985568696365369518643172727950033783552539028673411286539365947812704124190110006142830091980097463001820845441387397227284859479567997182677486621492689596056303928026164810445380801250619256996688449530481944827164332031170686231927123349115601347351134438238807861968830696349711130498814292715033489776356734147101269528392303268918386545655939841697009221455032758222579039898299225441907119015933113757094981473242302758321008497873045454587981339246333786159550167864805323386338084339738804426975544424314912195902244418819761565444303585502724395689561246385941972474623813712501513657732026408301568589913490326066339113262212610256884769080675700708611467525825322066166684930819669506514209493641134809834736761543451516233028038390192975096662916827914437009997447594686613183721610440361057613508092915514758302661054089463003998137322378738220644826475559353552940459254055754156258403007984667119745713844796845615016656820760190771744981322192068833570766151273827984553081466879467891119613590205908502307073487372687760592022587239663034853090707742317872196000869746166849248450896673615801444969958267623847689360396167640512801415198623931671971184464222322650255459795243272546008071441070339725930962685112756807905025732296570454143682660899143822969794645502492713346303604264274740027122445318949525859454606803681603479345116186357344149396107048486210112582333226750363841576003356013541203628569124999608944284402952523113982479710115637278760834436121990078326432278101525759039999355934919782997866764795193695371786089534831294138066665709846264027059814085398186660739990229107301675223263500276092565545883639192671940851748974392430532577700345457493029552234801593865873018138937398986815993932649168072098718101340443249453020297395719874097822022788219327057877412283273272013737780703304444977070086309911025668229734215748716838838380117902443863572009053310024206677460870783604746052839848763313197334248747016771835950704829954152361510109310815480247424067804802515963399810566536683682869185910151602157686037022385740882701402284247572844044820928536113379718759597503170757396799255034580135922111676189393801270550907204971461398321952356525613816295926097787012613641151403105001701354181934015783808523084188319133624990743895514146047326918524226664128249933153259300267284701323852329946042453609979885774363098325275941880024506708027717875386807795175965898339359250046413797349594927196124458709446637832273068947213770619601222542614310716806763730604756564428792336902735880364328637187385083957565940898534720618189814833233336492745292362689094502336675186503739513579751644550188733405762436332603646791987771358858505919952336291818047861778423173321535758575415534287895606562544542766669538335878527202927209818923269464234825667855899210770907886644283138814229634752404753554778162112904078659489148436081191762163009813774319090231872413180442650713612350303436722000341073386340392452200901703812365299495477699243987365516070822180071512713218017693205013195520012086650086460475261990815282473411970660566670195846016736111843450464664862442154699957804812327744306172340037251111489392592134063238247279251889366036068779760415671059124333507035890306245006180088891496373730288788984953797202283514429448596225266593789644753515230050085415343368817517853104540623356497434082360035805145199061450074130363531630279577246655844719768263633749881452500594369042614517540728085437592917283456283261491079638067598143447955829602170554578114692844714427162673960592312488809157388530744310991236601133292624734994403969864108673877939422826076999273511785992243083131522217963424193378950216637995108244852278267430562587300185783908495682797147488293656184196916503740086683864352046124481598527379210605179189802452484855524846840595551176116985694770750220156624473093885548877630520688559056543184781224166027937083572784090159124850777572085774024354937585057564020577989517530783824650417591111940456702950172335390086437501110123123523720184570402452409597527606584179958224051851304474344547569879977329428857255534078723754061606308204659330290731157299022443190881676521370899506804373092963790625198167060804757043496471393728132918114037759058788430752120871707932499864532448278946381580400172184047230157129184672157538528922663126297586190376551711160215996660535817512630717341834773372135880734572845954315763095319344787324278718714805184250949278402198632560001402295831599775213525580263537798696053242806127839894227588718283072211032815528460559103688487259129590907920190310196948127438413794892436556868750286564018966591037641680991758334301391513516445915662853239934368510033616580704621479312272963451833194611692764777487198339588756456366805611360178346132578200611194044772287899062861875187035560599318520966297867623186824924085315906701278199762978529042612448240531328007981984633253411526061979625807786982800484771598777256055965508697970696585040613683455022807225991149104026792591955902883814056099094040272382770391087334503338146347183459992785687720831939611129651099448389920034829808077781165200897823068224972720028944863069084881696943973662605118003221709690209008704366508851283602353370031533361958895921078158407485285291197586454982192382404065468021180154838159737234498033351033132743071267560708362597614883280348536622069955751997290019118052645048987188670910218763774623382626883661970348178867233885846246342018850384565928404724836208372897066502742876749023959758713644089154282186691502497293808582915396948999127912264045294297849305798203565520980340374777350704135295336525423855112627491132380467394050502676427524949441454821653477461937869788921935387517249518810239549602892357589214630243845745036037877686064509140988971414059118637519747077618741150217318757043402052774316126838161751848669769577172240510921425405365682413315400882913149231565354195962382482094018727202113349934122486437017743640467968742933146791749984721430072742508008251998099415520271894368841589993041943255948922843287098754813843082635811450320020035058309535847992680319073615263723514191067277880819632572257439648665613750419384594296536159588785127859866474209693629938832098825629952484182414200920375681970829055964764588637414369883154197841337646360108428457815584186341037186024180174217354851299138307262288302176051658848954744542071425436549945539435955782075744824894551401817248277962181749402511520289062149047101111006662784994488899351857949321685566514088948267771181872825441920710987204963599389603280334495669715396509174596594261275790905976604978738571932211863815805032235141565665763931877287638971454302038748329375775071015338063088064164548620212344392611306844701161650756979427884903010233542603611812427369951380903489533391394981692778828194056620521726433305159679546423185315066109562176121079809035878957976998561055720409548327505928312163851390723707214084532352846416315724427464356579460230843790174373966456465801762929383762552115842643637502645920120470131781385692555534566677427966677330873176955941977270685730474619448092824384707471417901725075515985817446027105255504561358804724996449909567500670278997836493565545121575694946592478312549277947579031255619437693998963745390998442362789143845752851863784480974311838178682334187133072088143107900296472455661848558459956010756314750127150779717365883334976046799225267859977788080637517406456206578275032960544409961605017072608600480681783196393066046231872950479139066935821189588591828904563416728316569376811812278252791942969793305273678077298102192404586030074006332333234296231038523675951584680354243672887289296596253160474165733637796853536301437681409258253871847353610813301370314734733054021975323902690883312443063948547455375830504059566878556638958555653347114753675799690837167082725055957387320098386050693160306280984165431366623604661379156791874608153429207994495430610272581765484567138589670922942650524507213995418844627204461044535703309117578624996519633008819424323989609351821196982556402274339272587622058483203535896016125498764050077125206642379463776027594684433044145986275685201092970867281123534407648519706976343226667169627468679439711940341569986274137743058096153646524973060001715268507311279899082008402588561837687172937973151032452724670775641512179032413700528810207234095676958817508868990968547214104826533944911065054734456427486933336473336676429295982703687297033126488788021934090423267482414685284146180451332250926228458763798614563107191569576699963724085503499752868714793897355867042634487731538000151934492024437841666261712637868498860262922939563184429676433919385034676558201742183774401152822770150391278490155136800466819659866965373708369739697724659771718241052791399968914823048410911084590025387101636413172518661762689795076606584210077226948321475571270688218449241705199563045527412541808757435041424515964625434528107456987456784009357965430754347026415043482093361226018912349612182331543270806158964427310231170365146944109737827533684403414258919009498272616852262451998561516575796754824193893561239929862877920570873091383109606378425417721721302386139367880635961335109875560376690908441589018115275290586416628459790961760732286966481651826389953488230883804002535550728265718466397684206395521842303112854559069129910645558497278009043028958961535328814902976732460146209188764613710566038954240422482636627037250723324972775134010874223754695391772555040551041433274224475910748094762094850059867778957890227748415274476674301833475531227421445024888829132430602630600834632095184131563037735888314474637635724822166694867039222158636216894538104568587479698001730372125830946395071648667347579977904837067913122024143810548720017646754981951657005201807475315640294256848120598530161115724073639445299915787911273201633538481658232976295303967677782733609695913666445902195382528540969172325039739733939329567839074673719768612143098469061171083325739957486784396724284084543995582301026826881128674875750277116984718897649678922872856348221845655365740901921229439258728635542406551686326975169542224925560486299047535177824205694655107679514220625698690399320187704232304676206013307782109539327252633504909464569169964294764585896406252844256618201737617557976179657848924671862646604963228809574565004185966552819022494783014038556790566427203813703912628918990136109498063536629010181305722594820111959435744062382843163561448969546063655295503451622119946306648137787002330123629722487190970561114352669330811812101820719384066142911664463956574844559526436607231114421723518466016588779218990327158029747998598060701565523207648338430128947022113227015491184359614996543856060449454901046586964444192893434237824896664131976582785189173883692400189309051852046520682878548539269992189141017899650266585443414700648121261323322430521800562990386691394813945117799879611207487560437342431229302923768105539601085703260927233250117051240313790343402477814973140977235494226999120787888427352500043436026462552892175839522044718758502805746553266588250552344274759123787467446496172685910046921417037791306929336185331763536447871205513383121145198787776005562603299130949640755892595767102514461353943086978948708651835155261655521302365106910751888469200830082746235686778910510867849861332193271494898279861789664226974398432043212953900276887618957887120687493284607777239615594490637307954181310763332618536385125174413729192853593180339533635462183047401489051284042324049609542182838054465622752607417804437338784000469379108289564166240862019361420602814589322304083230335309733695582955034058842539239695447359974800283506953756681104684353664268163398252464273229047859728375989500002379694382080758033112803064781583098382367678622341424124857754304266234739630015253921215155414647446139017123509824923739558622296854622254589579227990707299284901938540548241802093489913871579326273625570315060395004288798628740320469713500800006192574539134946844086614112400082576728641388947626996664819280460174482017895210017935377504188944919184513778983308447614011538487043646973327526709888964291216124285760136147647015207936281010639584805394613619893780770846743470045960961506228950808252239992789665310553504428865891838644698714967637122097198180129212837520616883369991475158969125797596736418307471822125435677157344194907805785091855183601966534424634301773629578636903120514514220580094604736416773706310540935824023104140591502167662439126851887164176164119596995482494772563780507494862066714583170071155310796538362807890454336456553371685077693714334044768378914597165198396812928442128286926894728294110934692527182072847604283362765965254827860569202403496535481658882908912732100223566390408856389318831098977171763157643715377213702740544607546691018177392467766567385484177519638900256607315554596598439002194324745882162564260223492756463911332301640872677986428461618142802644688417324874528437401216582012113805087362264136672647546468083780148226449874177846844855238460224357328604741043603043748297315267276148336790033426944856483334316081792383388642422227061067454735769665050055093954916894162052301537959847224973043651568315367941624987632086017689571604009079455814579836390984988601636912883914285820439024870425043206374146606857573623802398750091307397014321295196774801316661136400313009851416216773591739697257167467201599092476477850402556240924402383366646860368162220302187792390866744410439721566693781201125240144716521271261721578286477801495117767887287185300570965053393368269372095159736054586749994174781237265847990443481696496910557171044484326711951400622693299230040478764242475259714627835836658364339759476951945116163020805267814379657959886871607134976149929758853232741146781402852415664022905225791609301461461658757733613538098533655318847367738247631755222243594247374498701960846999863271344677522529526762690288632892879832702694651664086224133355071656248387592711162712234336136986727971974968942298800285763146180177450246797247224369121477086733638599905866826171978540388324438478562612788559217179315063951260500310126965683612549118318887456440565677673885273758504902020680673457428724324072813177033040485915704629879774312816217938515335186397384903104448365006897028076169704918330698018093748234430985804697533714961666341290759218204397509317116688859012563065611762678353271061303132630705631263613512364734987965004615758042354344700077658595534293246705120358992087911137747981241989137930549285622650722394052479075882736105750734558903348504320987191402575687262074084481697409007172536078253439239303882660209505115659789417171467650895391282026069136468188006974753267365892524335094048891896741962628772172379289260729757805152029570586644402797917371494077652314272742799943410373434143227430951234740294670141693406095690543558916009505810980773921935548501655874367853006266528653906679397365643665100394704363435419502114077636105263144834001250579952627702285596106011615990913025618565897745617789223145558353107587637894653067811887816225495384114832648859220808561892610401036574733593845921854136181296354218233396114749000464092897675823708743637114360500758731803096682024098349138942562150184832676787322146174983930564147847414426169477508902510348749694100929568633622027721593292445764210304626211336113477643058977862288016700269523680800827313410312993358928993023278545620492477073674402271885293916776817040097283785150732280729533373043000643535714604412035916783355260774717221719179426053011265956264698453500318697440094461228838402420807671383081303564282570609438051305194807575218791814469217902606172848583758455378312437615893563374610180850740271865697450205158746949306030391202061119254482803994729783462145887654189436353923606283857787024029684875770284409637297895424645594440286879439111588726583502721749338042449142868259458402364535137707282746911282616406512640772833321137298576311266503472026259891071406739088256627648782117904989799664869752073962421682517264978098809122194299458508508278054200927395420562882930609947625865218169685627097174524403588838919643297181532764903751307340901836299316781877969065219185379026677971928264373978364951518770026728511468054833908857474679611063577054760000833818155546610493085457529306610154773813814213420768023723789097160321711710143864445117217015925866961390242635674445956841735327781317810449544763793089909840413100955960748403776921424400087870715594843967605325386913125286544507160502405391981480602170059806354611073712796733910917791696950790017512710618857456729475425902259903618874208790376668812441426556264127035984366309456960999355621505998151815806889727246011932987412087729059919977239428677504847666814033847098675370855519875042567391449134976057011028184533369766746451490476910542928869632611191586777565839789666288417259558409288064337686670351886057163379762000093484017374819599527819228937906452166912130534100034851473605165395811019577549622963080525275330014245495166587069607545103210662387766732682617040588086189847188719810177334962736606816052623159257870748242994532176942901179011809175084464472928517077918827743266752685841389935761468551862200825637828407687590814417898576780880798191887200947851301039210031484159534108754104409371663782458111191524733173428024451997127769877484483168596996337207571831517505835529521435300431650089519188260919643867178235264873348038749916432626579015001286371539936548946976708650503291753954410968572712999891500355200369696077569688364174978736803421369189043985732562971131460006210556070034818254724032282904533285945052303329304244827134796324974356794381168695909241292552851279195525766336207071166154292627965221204010822416329551824578948137601626295404006083898146390175067022083851140251416444537457434766298205824275524851314713573432543525460954381560503785006039082307537443139287154772537242591266993620741877081258192651129961525579129812287250077579343055141126120067216503490477478380018184020533449423203434359815910035240719113084234156176900503353383875812608858861035713484695158858831423639587285834340191721506529772976232279548901518366082981707797725490117795761841932959071414833018223532024076624239438636353183964570674931617299441148824278543321701715796138716090497955716587110298881400476384266233303615871306561720921931438436958783374444686611690021986435240359862727820405497361945957936065567561230338951655179110378271385923286142099125418767616781697092377912084367453496672476853233978013023731551245661072147312477202383116078222265364828289687723742171841870445574503604618189315234439237832453463032909575604418091026649098704984675495534838116496463285383071190763104613609274708465906071183094155790069834975024562226423411833400846479123549839625518147460930335891115269564819689599510806362406920624359970809209035127508907228610551831672970371333614712041161192619789426644527682382503642102137348677867630088688708495456607383601644854837064090265789160254361677068511660298099794373920312378628214890228167577814477340290354682220135819459913623224433295609825351961538070694168523146388727259292639336132926290861856180537537586636699309365812056487673306571745458648580794642936886934653788963668744573559188916424666226438355265387148411556046325427300767271074678249856587233664417572891612879673152299366024642549973099168975484274462592427848070363002119650146174142157436216309202906001686041144376742169194033693931801395632581029927689689940538183848371471652265356093984882907123966424054837022685655539099277634834946799067293892449158124436878863964762477684747671988095163343711534113504119186186398679191318632180426018387506418216749619349637691680695237913933301769592604609630895901660916456002943617849313044601085524909797332769044472449236673245509863474913194993860768692020482148560831627723938888390975876013557805375376586016956993865877428298203335364977711901085717212490891798269732356986215482671274630323951567041802737701403833425849909470358907283612124137335547357877635862720482366186730661877516856992090425121958991728962175402447454120184596944742672610496550793550135005134553573834030077169409062904843554276611994948745848339202719845603303808888296360238424455067815270998931336223785724256778189193077884032090152072334657010702276718272060154730016189267565862399817948275130360821301839752298163223831839773115313187508283515214249838442399048436741990139531491082146422746279539259118549411949462778933113817776263948756937020824161391646270399261137768007733453731014686564773789567882978467766078415752622406807677229918446419808933016264001803736983266338037786581288621276375908547351742073580499951247696999627645466651741847439856145303236286068580983228962909841731870778912790110573563224829098677968015736545635833480260051530718507756032245385036585724099490888963046220957202089862793031371066341327216926927149144211217098932117645808199629800895413598513599537783083586502375934284702300859646046613761763514602926453316069853028448614591857261677028504306634988418918256187950536064792867264665164152896762557744874421667295917640211494557958740237406224349101783888853244183802937401746870191955658640550355854847813496473067223381765300317743856781716287321084425211409332903628891021990218689184533026822090797182001416030302908753242682686306451807466150104021517567687517873479082241365871432710720532436755186532034522940101823416750325566288265545516945081270085907971594857499458090480835057074746984403637554833421273503519437542240399412656016609239310018354216556487171039059791463554285010427253902666558261654515469898511923991304173966093783466535061318543865192321756653233867385772439843256640541838331153199388433695571406784106314638362210077270108035194662255411545265535195615531737692111698127185932239410367770359099019812349066272557445749205396994932848997868213222614754623152538272534639368227067987823250459884114184981036499652207467809504737752702514704667723061746510068564529326084884553655651790943663473207868079911995500312705037886832398331723581505897531234555393132665502353379997128332294633547115177402452265756753013021477120049320930531204803795225155825470899221570703339896045560227775763920349606591240984449338146408922951140812112554769317338572824015941149311999352545976398535465351691222200259716988194676476932710979916954949318365644195174298305432485058828831210681912950740280684910995150441971135477300746397222508599971087407870056710060606329541353834765219583156269652141636616451170627526422338467373148582953862905836533154741050698578016727701856227790576924759925122485891478771329245544131465083764958336761298874835215871332369470081168692361682786346122688970232948734183828519986094566679419156158510535923663081150688850279849819801676478672129818573549289682030537332336831472509009847716982108820817579709094548533329588148890965272282355206474326945893588212536558522942077836855849357325349633754761162290577440357485936235507083823817180790259497807221360051306860930918149127828553137958966005538747379385132560606280228806453985949887631109192970816306974351264242038176115214816238529095150115993291327358366995088299784464944981262725789530322161787847747008920346426294234803764369652919953988949230022390662827420384697802485250267877422730996693439623840227331638773583770960536115687103951094997486934849428871995675644038416250445777635787201204312933845989473179389613930013657105615910874393258344490857349231145402071541793807405327482487707448139759908506272486533820444682753424290946548397199432977917790023541742614792088535005086308601975597919755341336868220268597367025290384666006697865849812924362005327301371233994355966792886638538380746943181115194611345440876669758809685128019708262704214487056935080431944556859508028621699722754873742321093080632419615350371920720520578003633115219865691181118589706585064179047661968214448269175124189217013203179497364804805372105379391705830285566097112510742138255696617423046060528607795534758522895393978469667811471000895018974336839898939349593509557475941679663215214225650571214990136304720883489794473519952733230918419363629052229344224436587390206160307222040989485682258821043994621387638461430966708636115587499295971671783127206946181800223450231166126326262264272978699539828574117682729341992924687215455766333464348460652069387622879245265965532906503845466545565310587418563359879791881696682588233630883215850753564861680343834505554899974133409893925314181668300760426155553354930361272944170787105283253265369730066146604914151553028441227890229124962404857242545582765335922978009545338339642150944758951577959503755756769562231338077479920600335418029246551793889322713359059026037975560982532936662691389804870069134561516050382577495140381589586638637431789215554069985574779301076513849854918511643033724695733800670656501234553334686741151024364854785111117748427968823733785588247317212280476504239577575460886525260231013568447018556501037504918373293872660387448298197376011457897668908175245665573288417892908438823900857042115937994092255084904212747131435306729147614765845737984373016774714176967535298404087930107322170007344765309281010184971701787330179383227436941740567954088174856115793804159139129881499919378295861739159003512967939959904399211081818405361621562959980184298387439755788276254705007495960312522304211780366284753732355879919727412682701533568949509666576264676949710153884243042798968000220596080215201221310113214497014821421664312253152887841848986932417276704770918017275280551563895913631704457031678623510748099368570738109385057528175709494002479512882412967310426934789840700578599934938781599234294921062429622888201790019423655863091265712163005345775138652384722589757812041934237382276004301638855402076839188399007359895687343284157676787356816447431627827616202835074667909020564928345603992232488723202238112872376478396151568514364956040185242977633413101678262744545344652866625480781034929420534426176509384213572501595295687078914383988077997648622220691136909970102226484694402373963128057841584147219568616921072796503878657445553759182263423304470806618169478867582497762739351752166061852659964896319374186779834159402227975851540866456503318478109498719021805044317869157425622766010639429029656027327018526663445480539713800936886136589354136747159556918908811075113154971822211857104857235236731076690011069439876782167056743251601806335770743511512880976332303136128438021382633954054467791404348021934651656287219508002635349429097599501304087646465489580419055644523781237147023289230442321482718821062730646858296371883705353395933470298194899565334490017036857638420494639291693746193766631611358901419888715083000157035195201313955859787836404841036692781669214083469291048025407124781949567528626772874134391674579822576611284539735385343308119651049715387283197020825922227758674090722657155047699292835803262848115561426963290542791109641680556374371171424039616917679338697310504849075560051703545312379009653682756359115111057956184598247540254794613274378110901868561597955784956585776812342793037695960557627084229348296276504780713882521178502385787394587476033810003827234599926564447722124812344000623567393456482934024818525423676700833950045593228810249933064557866526787127976432428853887692413989071641038341299229558838705308107729091612218596409610021886826120015242005207240788857325939151955290570097211370054283576075042760304322356345727543933824775916165305838716357079415155537527825827836922606302183928822119859451263844278713190261603489789993011609419387479892685428044850286984156957374787895431837398511001730780242417022940371449290959970391747605940971373493294848850132327738633767935529706794861905443920634569940644420099752935245247870427430932887359990976057630527547517831930761015924832699220539891989773074672773786643830574827627757061584234361004966539500553542399734123400404234539743026838199589492515650702121645077906691241062371175492227586676305776230167626718165419205694500543646044641623474194523244421619310900960676499387405651762449652897017960952961896113750999980269300826876998885022578587145549825078779558704605239696017835946468355891790448335707830982905867790741832357430288164698435756121885549818212865462984049609158106836444275314725521349101067966676334740363211703522757390208583291348159753796697590389792046930087058792722917821131279518056850342776056910005198387288314110642436252796517132596630281408687927952707569642630535446955384873509567859042773197364232523015572253256833755914461336391952744199530255410128827285196355156596924266548512739005276721183359788524935341990895200108102343750680819500781265073595901718703578011595428274528821317187960042704214679251100347436734269142463290958577365671168651673993009233001816763083421834136274700598716624294927755911586601691988580829638414320210468943871612281130775083263050376136679846253780899155430132821973144510638976882286659383083403520209016570217757672044468726073035341966264649850700408540385157092598580572306590606792874243598473558184688069244860610348125443086957785807969996630043365205466823032207405713101086706333455958048188499119762992961418131357326203556609413562286241531510580525539637879308641633139289206178775734934244901253261200662882551632306571297317338858407124549024045834346974727299619758650258763223682772839026311102103314026873792943428617460314352450404443729466022196971996805563813940014555062342101339506400040858369741207954538523054966894432360291025490946630716552673032598904538782686810539108443397409314566517090029102489923944885961722447445551175830497835772954647881271910861219135659293768079833970446441132847921503028679738952613357859334676877406826703377699142619344964007937542291298656008090600197848200320074037263691875253215972791703812018662248511375005660257747348462178959738958241548827166525034075373138477460020410650058363278735677600176696379295072421258014139511350873945083186907616095395139837568708287692852900855139618076252699817229540989386916380763016085435803415869681884237101960473257344865714129730807418658956793115695647093964281724237538864648010557863270955424118095878624996738954501976259732390972204869479060319698436083915299785052747693813916204134245526074539311662102838241524191957248908871578149215325479872576285128238443798341119241166354583200635234692616557064762432154986472034389403048240448818382299748177888792754163809168890948837187043780915545978755775756042597514319452297399437047312177594114226579589331844455744017629737004589089933478911304888440205385078480715486282629460111025204203849752236279907174113344703928882492106909076703002517847044236873862716682942378844924519358774231309016357410589001156258652851983321979247801571640769286549649408808558812655765253702273601126692418237034964684967630873302405669475196638237046677605634609774497373946237737810616559466466478012220657890802767303117843621794863694414048016240851415159232426079907063526887792565257651351619693131078341852932443647612449077533910889374404328406848938014693046557935995941345475571092503499471302169420472143857322787097315526941663378527851079399061947367195777273179468533353398641527652128531543893139870954827630683744327600322637742344811572188988023726093345067933410852640093247163666347868470676859861109983982003876689399598243690661037655281342230732687101898292735888566106924081162654745234930699547234316711751219873676269385532761854658518846015409092811053732565027581399384908480827433941862891278120202461851549663809788659628831618890826132578342543301530204936432965587838808251971328928787566954773755868475886473328719691574821739816962285482634496855901631330496957551795797090832572802386458214288231828988515105720144641918904742612589214036766142304407515841145136149147749509021220474377075428890479424530642669258360272795135017266459634368811310220300047152012451061553016300987163562673806352649556178098654748850451420949467624281128465895025400545788356117101929956232627681710562193672099637542444543003401691618743735672776924500425930984380598927420926486088923307129354841998261463809836452152785305849436268745275950146603097617503269327366895421739539186183965315271897098258187574754341913005069252408063230585730372207202049655798774549242885566539369564910934924736429231451660165947652134592568104249939490666089567210646425144050591818582070692362203974948396932793923947342199748726592875387317041463448194653809427159758843115687183040037005928535838259606365999015302525124835482187329396465209258501274512747115065591473488122331243186283381284334601417299144483608793503186015876861374250061408364890439331774159348083180049384187087836750780866611033993441147952647769126157409900719627128355732417291458258280996814333212224707451747145480653884106631796559191598941568195457265599239081355282255554955975561909414968394746412131057074102005204414495253923602139076213890023953067169056728761714571625201887693488808236040551972631007802355412647764149776733245202248010770240479734230397805504976286196450520996355034543936378236443087160800275801169420972130429815208830437177491901419812359949117245771224359916914120303413522195234516371210162289705547636281729318639755546598925506585232673807783130463391941090533673288872745871674784643577847328622795541925448524303599312568118777007364148595039866406541916166773697123617481563659687750033541395373382102163953320640122967533900412576567510149559765770196499203628296464838849189807889304443345725432406299255745818950961726419444652166990640797369490643133159559303769751967435517917951281114457681812056741859262635165259007260546534600510327386229977073759499775320255535111085386016279902809852995406687403744057973271422138146023431911460645200318877924220209340514254543675152327966514500535178835497478367051572116530507777642858821777940052663870428723273390271850408832582465593822455875730280173143968710925360411589778351108630692468356375924792993130402492605720111357617289250164515558282019086889794608426719862612276319954595903851767728496971763413940291077512713005269676197043265735408966380612963766512706695144090749476519948459410694079675914939170664505039713835107366552142768609120000886233172221398802383045404503307805949669678065674182897457973971267592648248736193374143986775181151389090569050772274958349235695570479300246771922571782082902147200847250588853926279963063783629553542354093245746061838854326349266742797139904278580931784783155579370563073628815208585440164415431975745500660238591275615021333148351450234008480642771126057538337790732896050034376240032697389676884248350112668996672581634856613472941126190583349821131066251208213027696613743307934374457703039285984739076324851807068148697067602923265725980572688869366821690903876701904753601035684136095550194920619167336664264980602194694151784409503768214108023010230108374204878565791491550701071926457439975199736435995193438607227676953918113233101856765005290369188083968205927573579073372851842426077654032565249534892934818740459728572647214877504349828282118363250115444673920454234368732856215298632485120269901614481801062019173265710984966698589595390429857157274331257205957189479362684735471664771433126828228721313011911280733226137453109133682707205449342973160686526998227122247874418630587806516585689322617062992734434891860120854693831922627136204350101031790036265537659121400772865941750556561999195254107948209491657258806078873481801409646392828719204177637557592895350731044051444435685318024724305119371374160131190375616063761418583985129992307976448501634223087255486600000257461052717703783814906809971117224368721447138544274881071803206348700599979739504219339389697488509241980511439889759753184883795010058465821892298257005903157777513030503937975919226188456070879970727887788024566645771390545135687970206994508282140229951099707787439391270563633708033802765630893839187010410825067842682755485114883231470977260188798736902138754686134389818807168727343080542140887965093283678897557134497974050702913828315882702664071256949013974678283392911863117574231879814821191149488208484973505672207016969997277244604714769669391621146569836348678811609063952111074570444594308575248358820814017430315584602701450593451360529286603509246240119800392945541257505718644539052863592404576611114635957757230064901560608131393198195586647824299326955406230225241733075883715030016280821055348932742827321673697724049098456141800833126393010417530435051513401087560816460852110144288335335157845689669923278268538258616293590647221464275495652828026856715004584289779923546451993170988003182954447851021892413541458288680559469957352811229765757674603328146112032115596950561199011791550433167399111232570437652791812371401454566675676762570536654147713456758552381403527388179173348060484581228055253784687776160993878674149441650833877430287079316772924674836401106546888810734255540422761559266431664369650284541913800675178534444803572859209746727153444794344919244554872219696868883735605727369318190270134376709231465937292011696538618108209789867719093392815718701334831255919812097479310761263307321363553556629923062851922476442874992218841119115177166723334246338508031340625260933246659220020993085218147826954870165040893076610991816173359035025519528451468199559303511339144482806089479769145487496377374872997301469197497269467632226084675258165388763041710994685661329522986438123736754380671503278135303161240186893183573698140047821466049396413446801464406975447856891841065088357459454336276779103819460896622622222897025906053264823710410814676744038914633616193499121634039646398390472958586726586188287808291077613261510408513007961774712838435303614791086386908650999952263750783572097287169114797640972596030902696657635721742332464067402443351533134516694340685311732824826376248466303809478112648316180978942488571913304753258284876095322935929863962628645750247423544713393814312569095965235921309330275318006890055071079480148191744331168482874882687347490144853920031076768707129752170378845032643320616896679864793091039037999759866387741702002620052374810701839789708538118209720432499798001004395343727715327743701492496474756488829458580391656855800881319502578947422139684028422509741831570706587769654640449156891293196587186955812628133988979034001438584923377268242867644160052446957606883940637476846539861517266474927945405873028556619642853559728690963945448834097546740838602216464375401640512965775536853521250444125317919191016747575417943855239656071106292248342319775749432656378245705062946820202087575337151379346204496251516630391259358037157388745012879999170399730651110702789971920258255019342103860325723858119714566571958236534694296403666930604774260247036762277608853765072911654037952896698888294475396876616812171428032210594837887081900755174229496703213586897241486544456928233742405587984448190077069125066343078827604203447105831465085762650010207589257318187376675929062855696938364697128503864369905704250851356488518807757591725438269796964707694264625712241292177388965906785725671853005791760682241778824586916997767489314997665157320492358853318423823469397507706522843685844840224994248730751665515498359552806059113939092471917375411459108911690553366300503378429487916746754371885556561186079180783897143733673918695389405614308830637640104604672116525963831655773994393540807914274803802015219657590039380582808905462049224819646292933286045324447067575117932104226837792626118754674558685920700624793110197656416208197639110995303717102628315435485133049260783941266398770464692609794689856300268806022392794836304857642580240587061886358824716645610244735741866953342608123904744035879938674386523890140745540198771908371825093225170361751429429181785171285802926022962986521090934344254014093512925441336831220765883269002055775801415506424003869585614877774562573673383586162410889718467961054496406665149485265762810699438401446350334532113018765979110633796161845896789336701384402269922713993895809447665982927228588811022903103041443902266064826728458698707889139628585126061684010498995193631281594036491018665431098649014535971763572464829974762893354684923612154270712791552117254389673149618532417733555349076196261203599704279762486742048256074135099520309499348874572016725758646525519071857786070303568322465881628590479690134170211687559169207853939112218210031146736051753767393767376275348685392052884862777839267453416356779202423956031216139350683641694631880235380068960899972006184748569459946312830078837390164920856134083171968330615324557625780414433646735274043671774533949458812815428190507757680941343378920792439638883668639275558812425018908772422837168839343349082235540868705494881860451510761993506459456742259150342211542966911417461139706473327380535661010567534995142809886534482430800360997541504463386832611972867753605225647917222574905206179297858356347623462259105868764035033289148028477046158523745672367272349510455409944853586037021837648124505453847220386741060425110782195443662096208841587676539072278259326175045986917124475453558894861167908882540468313824190686634017448812745440083027495189023409706262323095600240883971629788217740671549933031029808742342074667771368644823934752054520922377100830551863948393132441251275910765148089188460271664096503025230925007939089210581554260679286901002527175483813006476041700970551275273081145517314447292771325687565384344319607628414760101894109939605701217247853431915109210985696499952181007760275261690823987365558434260140559054263229459810005060775631063810838320925520522831667686521691653741003094664921241362929011825939936240198234389683388005523791043562492550273897009932245601912676679691107362712930177917671823840770093757156501100179816970789531434592116263518911578144292599541228115858330688081253679144760313534643244471119013732890142195965092728140864109528405014708685839048696883003567458301186644042339243428725469537305322267856714498000317670223150183074492194895649690255541254574009335547622455648062105361449293712962152156605037644798656841990422523152463723346229314490936086202248062499299865158639200195000499576333832890225681026470590283166374854624095842205185315067678935531801023989672980372341462883997521232939400936518318573044883494073101215351458714244011795978310136043721606750695957521954143701758582762717986437466796090921058983479993853702168249408372658813015607142030323721910578109026357105466738185215675817333862482998446523489487741273028002269839222392010404373823266343383170008752264637826900830557039605582828525924166139882329015981013527661889008780550077821988355626367200330565434705216236010345154907298049921956514974877387022076158456064391514938122372161868151902182266861538777450491105057235781026283170183058062258338248189708499155718502872209437582873739256642570281066173617240789609135951056358065682310485291018264293948547957337633561962105795407327872577069719802285441394509074144206022144226538147039202095283386545230807827282279333910028116163767607599688453024349735056758997784574943959649951829455239787845653503375000509655338502348879871973468531760389108779994013193683800491118513418186928674958331744781068475920490751588455828545378856421259571438549354411308925490296027940950209119511865023519897776591530114396172198304792369389326234875377218530051773677299050902695819943915531660759370165441160574819021088457562254678562831820444203893980467389861553593414025603108199149121961830964532620361353961231038972487346921336547444120536849761773384025323192239270735598670229065208125260258055421546647225943062664775721589131927072027907049387372264027837662832684052066053026091299578757305064466993454166291250442506247358156474338555594233352521391460068646502484679741991520200104378823303580020511965975021042065725877378852226751644158459643510635773259259418399873885981293578292983160505270498144943865221868591322092505095221321901857369636108049497581175176094338758828084202020028761118727146321116002722067936846802353653005386329481623539348983285769661810565314777092640083348115185629427038596688676631276405103870122228827149784646509392399694405185562838595624941595864532107645629949948818015127491495009624221106912841884720394083837238081753582698644215657020549580572022538896701611195703465563867037813666828113477123995992396079169336457078349641341053341058662160860163513630708528184661710797523522632614603048519456224699595438855666227629019918394534117812980283612822540662270786288047723245071938404758781393512494223626454150213740653448698708441388424485503267448952575474674784177611810606359676963115469465565654082666517543835625550137471873408679613999827210322828498394558875978478225510952169298005761749074553992888107067340692117716496327630028949783016860436785113527121021986910760807499361157056339376875937557578259761454454508706768937555425308837283714673089255390384085373032387767756644281338530063176728257058691627670046259658162267757938218336660830916208110912902235955239369026286969725054333586088697481413283156559579112633597897557314099909740479971615034687246278571815853337696475151877227355650947589152073510418732394313788405497511740051818358711745421821514206741777196532114242185034693811599822714991919762625861369702030125486986169442289046978202172339169409449708506445145629142489603923640003973167149596566098162007248641728408858006896894543560540904031632614619282066496783177852610936708973204221096870145134989193300333724585280369448463009528392524341914271709904955207953496989712512453178634461539866195054831821424096249117726910181439123015504627606661187983983762395947690120774653579468203028631127750721507448198702621898821278688559721167150809867020496933650984194742957914714432369145354988609720762892529898414366793151906296760254535227159504665849525241993700369583718570183731455346673907651928292223601900836423150725389434919757648490571391059659621050172254301367193311392510231005012556181841476269903386380895530712227646545886879870060445522384434301610883021972512384671901872671753207440719503800354000214508924402499774752040688169931963739093789126425543817309077292631774890857755335318325140450219369052709869127134979383818806444442988339806810053888860169583118179631304215259468260232655879403158420532032977488419571639839009198224121110140869869048633843310790016023103575794126463401873147895811750910315540488805587003360404289209860431526089653327571958572420361287954579717972164670497196900663008206868381364905538126887049279391526891922522274996269886499552079978045199803970949211891717578359354991539486228178826479427109714617229491448916271431146309162546294224868862770835941335619454336161669058534362489582876152187327396155511214614819235870590167429920341905235086015918707430619167011800913376077854900557403169789811312091116004381506279273950392941083681764457793142352588167733277574855272096532761929689572080519423925557330980229107438734198834473135065721988707488142957273661979812679666039261641261280816400461610577508366098555127568084565125527695373155350555121359813529140546814031736002179932445968958506105622156032172989055243174954301730393387779353108818030236058966953474916644539797015874989264779986744382145573951137585139652885348203121657008268600653105840429869611621616153564595181979659792302236784346029510917413529142244577567090472230421358394096377820123823746804928349259443075111982130004594217486249160676602871853724311075615628532613635867267023772720973096615087441610034278244189825058675527037682800298750762708383761429179623092335541169663966915419032139866618114069952094946037816572975850740215958427866916686885425557918163632172231308986408670164849551356115276180137637292112709719739958636365211816239747828512200765000195249603271845217367448690643186607900863462994399810609516538079709722886405863795309276212384747892465316931257935676131950830813181057866095009389713935975040592547369162257909163652591162586398652687052239406129064305062151975873176966708007379573353628280308545574288109521409341676628675351331697506609409780961658652249627573873225868519806281486419598869032742971652596408056650401221407297788542014618262997878014872816847037223459323008476276367876062346469952968167300201740762569424328224626947801152412060503189355836520068485943662909212252467396399917114540651635487876147419212170468370141221265591047681909773425667573787514310845040911073297039230122180681051402465124997675701102927339994186482514335097030816223817736239050988479316821341944993233542844891645578455777000836333956135035606524399774596962523689215738989257921318517547797111285707491949941461193633070640580070302143317568301632202487018467659229330605431743131829944398731970268518700153591348959925011803602676288602500345814092848955892851064923392455653675192478233469198121421768801833783396329434496281091300876757752721783856789801776471005567325528984082029491227626661745096680411532632857042808465375207221836056658644163220959704182450428610053480685425747636325956463827633377337593582384950366241700026989090812816358310895960700799006294396292895688742863150215996033050083736485529524696476610992716032615278900650410588793221531935832949222728533579102354284862196154465791941624323046646019968278971127105849830259467777930148710014330426411049859332532622535005849211244652196124438305974653723065370205022348390237291422414913196452110324340650823577197932040945414112579920230970550851140470346598462972430586955135245976658955375609086555011854409063200935284914188724168621592858442877646652553283504643249776544070806252685812988032394497623564513795977567150441707634658759034415887775420583945806614270660808770843700404748861086370899030666875188012232408343036479623257481138396083350970211600866681075637370486517880154022695948387922968064134288020149051839392395529284343821584320635826747006038138983539756798152795581668505034347823461465475718957162125615653926245618573336882123797269337957156804682183770248956289347641219175235310211941462527656014850362533120787078520991349864777337318123264375854470224284976859991113816876250593397114497212532877421871841240924785010188778542048844899982166591211967013121185682886723975301320899897096821142205779234365066738634539473863118735529327056589938661980390766327247949593585740117378956260618906488244325985581115582556887078944196194178682662588173865023449862889812429626660916685341171664655212339744426665174016670697485038469305062364916226230459332094660709235996118190346397978809300164658082375726865646626583295546779121993488307475984821564171996642176679425049311495714230870381083679303408339747331288299985624433966153862111095726794176473660045198253446723784580080405662387619234518633574920650191189078708446375164466828552393504741539999711677657082945920309996957848144940461764949753592174431495644775876007218734428807513116752948449901577549437859839740541722213685042923197827732531710145089435443991985417470340261331829854243639890743599968546459943710321063755848478127085585006260386170452509992163073637088800957962976233351971514992888684859551196138478407812927376035144976674477931233488903806699807179721824596346113034023763868330779222334746980025021513788352921945823207124814333379280526500079570642011665514120719960262512448566434520549221950001761603968854044377948026727595665172421517446337315247259311491415312691266721004061736211422308813483475204903401440068593979008617017830149936932349942617667154650801891040074525927054887268588233598917783858100645014985060312923118767553937457374835364379745537529579703424773032320940094916166460612610503688230318181012242780698624963850455017669417771996267535280854441000468052649645311472901887998056585628108329420714047078935202591689504823768727860375329104480058183808781568234827823510041119193247936777633137329893804178173324028035283695255679244571748883679509864727915599494510303621124538176269635046040094890903032339530542855194096178170481091128603400776325699740079958338299265837432299614862044789900228372646793294189726047325229593222419432003799002616387086274493008643825014497323481683678520264800252646549410204472869227099869770203302869872465683539835891049761420908149498082551555639136230056502433479004651611371681138610323728776299844866638133214114762914953606314854116331113003461938367047042985118097108529773892043259580798288727538429713882012843016082959974922868797823816319740079143154498364766237587241252048423300801313042214770352741096741842561948078139476074636737362940822858260886243058020169783667033535229428372539844118692675718334454312699580511526508401921260227252173806890298881932108289034011404660085645494376939481653112402795497245829712198122334419514916817199800320540932818553893475849469803614846307604881467487813977047359237017233874359213784932980946112680171695532633235428354816548090344148483392840844915506045829114209463987099464826499353296457899617368791899386758109102190737062718838101880432798958666125024094953510442820234281586963159847322025182575736273201089027526265979873064041762258475536420975334877377265156477274720640838427046580655997715687891767537533166903537532753520248701762839046012293342699945358113644394587126116082723261422276529163629039799262466179144316783700324240932880842761754711394498548358235982679987058612966347274286811416240396770822615587366751682512062679709365057052972170742671356054315272524278861452797680222195709391991184693067502285771330158160040062164929549464517126536332926729807879278766735037927551446081522259404715208659974925032075643487044900302050101340287450136680394866270753552104359448096160189088114754965836544339560792158259374002748176863861593323921812493339747357055046049920713622103528551678259558631189944381574616257821274827025857847289078437033801392697073610034577667831939814387961248724389712912893674859038750118929773771616098788034847141515361480212529917891241920651733067437848309469404431838098588872837773076377778028334227086465620037435275079615232863201424474208173930367286852323490685140663752764732488320202533803224903521304839624628903861896860675645444739593921295298614756234886974314559858922763454591816355773449619725676348152902535729297049611933224282490952616966872621757229728376395653458659253237179721498842614107032123214380885951276532175617886159300063878513657078034075789863975792887733148015722272050053440915123145983488627649720819169707823843789565498799480876750735831049219402263832136479206864115223891445581206896331968074647905790469183026758956112539568669581165504291830438705232829761670423036738750775715931750804362369050132591354751102340434118665625811121764527551477429152765991836793953330578443550376205169738054695123331342474569854476031850536192151183716490957011843810750516734706127554061117421695290787592345442788755582198601973797298888482713425505261673527806586039457720479650304667737395457503342668678712651236414075481004156541816599467986210397199801325603684785671491020533868380305443974083957263371794026570875823074054836244665554834397813709346976795236448933046533751143688527369169827902135891306634288382522473031018322935505549961465459761578631367347626372117585032761837663269428522125797418495710271096736787729693819163845156670369272159986916553422510249228963836159255599071705358453931354248281535477239247769403866643644680634754299507657687512243842000491131849000633940403757159748502554489875995264074347769933245980176881623326229203583637115102608125679988838082120574147392965337090924395480960190472691871114125386723835054492222788040830891920923955817264973832280974893737019412002401093626804123595614974816525290731469869794580998116828865365952519500949633031509636010842394164712732715119052849468818889087966703441226849244266231482184330438723654885019151054751775526311766443245443031687014802782264110646850408408399563833560404588045652302661863434371513846691586559669812620120111253972719122192567669366848781421457101190384080945638647555154364659799718379084798121627495446352084523743013856234960681368542739482459873796099585809435942110355365325452193819101748014504367063465608236555073090721191083402685584518726823987151874687519522243773232015287782307710180453613842266803606562111546455107314033610643504390155461091307629178945635758304814859232316089030060502125171502845786209954905211327041066643750784038449392313676146660400368518721103138190465469068565846655126022209040906392178358244900413472044088695386496261028658723913223740530280111692043678024133904644183775973105077531420653178750629611979299808852487849982962832933876163028948381308549826327874704057260925073223947741952079575373290709441549184663763103990389811614518905796553377843587728159966318886897574651071788075599403056887875578960424074515085917988091236163629184140274884585060535934419288695715113651260580879794237977092304265698650907898585739101273316060504158154773336880497168634440784013756615777632243935714476857162318122871213839190106831673648103652991493531430111177333946182968842894013940501721175523230656327950674515594926646921621952939676824665771430428754515533900374558320555106763319804568077662490327401770368862826633493876084520283261271655732990660555423201947319934278213647814534924713176678636015649050169652877626742120928629367505681239505919081804014696358904602133805818933613675257163968766085518326344574579982152049721969940668269674992275625238515129531244843665769057037534569208412133413248543552012627755966494072512462554772550125228443707817420179972150898366488944694408470796878154646519627890221387167484910131619068083613452629177453535839306063128405879119858203158955161568706500605374384738901238349555030478177003052198295988967654897337861591693305415128682314259816424486874466391031934437999741207442617976671090210100016826503348383375225686230836804283862159592660219764837070411229393387959096343754071109714091746457283430994850563160424595666471229740203261249574120886647695567428449720511429829738656346106521620037735874869906314669759294562202077592381239920250366911318530993368490624148664967402215669388783475470378890395350154816048543090174505362479059563661536163329092305107536325921561897098858191824218616866644191530973873958582757839425612423932170582506735688411963840492062599709150007763708100757080369616999479806417167308741793019128928577415906925883243415749307535125763627823174286022098210489628614308911594856147537647939080871359750806559654636913475709203095361298224837209965158926264100738099625182023962260527714591778666905434074025899890057200188830770330342631300747439299455828562065265549563788195066741184183590724848895625295018318518944154466870237173832964442099456591241135421900463020974103601694517326132497096138807265789491978470647351206815799906580878915338957057287406404044756178469933463063555215731326682221209508140624897883560583376899395039412185429849955781542003027007540418087977565173754377439578518980074029494570936610583417225624244237917244126924346539434971482508257580497266027413813372343413516928580697331221630991691885934745866391273019253089387257153659968262897993629906174378594201616108661211531179176352262498213383777159910451701981905124571859871329220389864098815023158474250012014030858361555607162878097948209798290173634390445865833028254371506628406334773784278476359386721107863303255909914838576984879936016404716298301004545327255975966555702906124713478356008717447371850007354150141353983262569439835814147389408733810794570080959388205195289299786679039261357864395591072266096661153670243334882107942932802537682416741381700114924080199619606844811835351800052490839748152756525315706140038407585438331600490179057564742876097582464030538807032344263272145869437058152968309705223123543629138775015293126339687803500766837038686167311248430529678362937462297547149453599379348895605878232615558262824152104552974432956787546761688507544319844792632467897452776726916975872712467886490120099808006567752586019826132396891915565223241634596986067727358130950687280302093580582748548231635028780720095318436887119814564325815119685001761961900733376418405533770395094745358267891093947249876045736706306156778190360186313131865721799257886115194139639354844573222571600856959051036830267636611308263161767691946387350135088623640198799314434605178402346726478496582989138231190081427097636515154616937857698096323267371239173236155623246048234176527468852222707288264215251784958046152870044769321581768253702781513718060422798562953832148511254844440907292583215958280321321277294521632743587413366105298551451664111030187346223994699224067488845950955530168673344677263067910382992619414908444580120502948503086561321412581173294278303613703260084487942512410857859938094555306593889695396598001723197988495405835836216600216213744624205446636506088126740878983632252773619216568434594964585141430473964979783577212068527206149208966631477732161718497753045029152042461402013222776204586060516269213580660018080334155639752971882011844956560685334196980172482391989404052019454973557705711639207863536929799449163878994863343702060506324615569898342800897675933740233797168039944485624140128299616143099726970210767523842115512516652665079363607572455857270446709547266822620169308698348742722268628380805469498594276859111382868996821694217340767774732503004610231912158456829743226292026018719889705646571652789055002197904045947258601626381623859114280678079743026294536935258420414002537517944079016787929653065212939222612721294871711076796804728784891323741955680033802066142642859665031827329056446036493544494484729537661027924066351065044747637575913243016121803473006178136517873932323079336963683216180648964438357719980210964805858799567517069795437497042349881783437563191004332381192391483066322561081662069754444129076071752643866755823648514111760306703680623953551820827027077906041490744118676694005524580115463047440613852766593885089534133142512532118086680573002432494179693545556975756406187205920607847517958082439649849408327320622546741622645279442957529756655503468388730839637967469472428199916885612180284227357904848219746955618754286446465086852412558874983675485622259113679666070449535358414130526097818378750244925285507759749871461300700313280827807469668689526572647214817065269120135057632945073102087521152392098781117390748370095656456957941664875865372174864466112794503785546718339725960351611667372875671090399361685162908647624289480170081242153556685724546260386186383044242438113598123987716678648945461776110972779087629386848248041959093799381226955940323278749902507626552499305266875934191384070594543786589913000035900915709056821458152728258996315516522990124348496507216282808561387372364841741640984683695340473304727366355832576286311417489397381449420460024155175388497068460513196201150302282751937611364011837377585444804987422458487016450663529361585977752828975951896164619784331919790452838835970219141295720556777809478135383877727616258015016520111354483617167284788029255829683380592644857967665647481474188404423631946870838627943668302728087712289389610398577406121847915346806156673403552415801821979746731668294920354457366057652928524788816224824164522065610419821252447476786439299389405574992648989338649556381931823775535428413068334690419911804072467094652636225303766872449590300275311059207370913020175996095636339602809444132752082705484509811413657098361974697436030167160759146338682744437356890630022956839278006658651678751271020344831459977013717167469277304918906364538859999493637507908617865305467181311272699066679797835014508029830679757949575844912928638136754124832932903518492891369632360451204574748538257299120302875984796626415487871430395941320865245225712557032057571141546535265128200165818995623210242475564385484993591069641771690643541893672072088024099606523571921270748076557248522554868146366319612051398520291144487120475628830933127470130327610565705771416208393765826997117048380863976950383540349308065738575340349613606164559863440674759483092539378882599331693876552420622554882432171985229900600589080179707337726798150391454271489926186115377668790309327524799341599584470756306372139390341916626128519111385874834865401160813102045884090791132552115428964575382940188646610560785951648002892139104385924197891660691415990880955406161922736157197439486023337584486172572734654964698502951088323842381982796946346951894136379061398473397443643300039611683568678000254319078554999343691040295967577605009370740657444223475155289618771060609744678339699756612407113091373504839162156709960607249429682215600465175135696378697415493264536123244097520284389185293993135577704118403124146745855130577510744581098423123640024458104707121909037610095519385793530863828774550161332824517141089953953604521842653118539800946594646257709881159463007980544848027188716160832436531890607492717340043297537554098220787571676527819810798346436152819845902051948510684915689403813271314925603659574727146750728609955096467116787115601763266706417795008003206554830265410406255874433151136989060486497043625827360155984137115857275629269313840854111403608593610122220347676447237623867623775096738652134574971083909058466476036640727008875456325756105526229443718431434870631006463139783568226128436924565713245548012992326918581838541023251266049355088147806838448261035722609511200377337987014835934104943876892928789263364832892025235709917033560692988876585715008415305926857670149888114193913240460974138746797372349175744306260272401952749655046414415550221689304172461384486559890000716191788896981240073265918502522148994476392165404657045005932843629998974248151415954013196614919532639330812689964367063567246587323458602134818434771875438200403853867455094908039284320060924479843627859277758890942203064968271073655805784320441936465955269212315353839854670590016704314971760135160262263255217766616498093325418383862392575494004805265272112771593665286349950297785485363611540756360708309626912892894865972792639698379246155954685476858675572300515387515009664584075270316742442222023052740525788837590393536129867674850933253538112666007296933822246069729370763848867291845623814402776649216667806811012160136082668180151357745709761403256060579755798756282827490407079639163462363643224846871050378848941841546377022991066544068254551967254315379570493063715360396670535043295700127072369080998386429064239674725745203277684958543063590380301058086313609310694298438859043637430117527059421513357330813557795712722330819293483913748959160651915167900109979878411388224887345091728179816665087837461939226386625799481062671633889935397150152937946557297255632658093772691730209590967863240051041519111915422307979770224649783243303812757529326902648937947597969075675574555976261628835203756012566396439414800369338212656831698123658062558544597595850606800642546847424982279858305280967460790650102442256350008106005982299959039374609386530096388593018900572190026195734256640635604296853183170320790336538646946137184070480089430733006953340923462297687411872607686263400422034750862300544897511283037795195312142187542982926113899157879882608059135712337810320303561158577846620005050648728835728656227417119931606905841596492614394564601992098120460185834041757577257960230253162462224091459046280735914956905725095209672333860830274978219279027151434228288735224481156035451531696458391414633069087827578503295593814154629652407012971093362284301373892342202301592607221367838521465354268832066424042558757029057475620418453610046209789612344781906024599927490662412699785052857381456784194597766625866783908599810479182693389388512674991698283146116853851486187506259019021884388970973924271673298587285700405325145342303402354937722015210072984792701949664665731325361750991164940983313591366707587037020311786292019384735970496865433206772204552997772408801475918049184393834475594589579971067703548546373106838622642625727867574231814418047124660444031398688718798504102914264041687357152375965750795392450624042829792398973388154508816658055025401232933893122945403832527998069895204988566430871538365261525563586515118782650525176916478167420226303740058615540741882376407739450145481275519826779159228272820065412549582132770670237474430375260538737613360768867197703432197737538107983954190460428665104347651066881155814867016596126950146089238271103847351882207356869328889515738522279264763895618360786255877990816674102148466823085778546615549844529841178815850492346668548304977424856497732102067941557459304335859916434496566345006660404279697818215801029076626388949040120560450378054882864265802448166268006865555861911086323258355882502688251809470835111880845843442861872266698850982575052312262969115948633110599873108280067835338318576568460790782465994199221228877141004197119662337798874768995842199533176856039172228918276704780895709529117288239582915923605450597477312868236061409516905408429562746105911230882053436616079117267420837456944269191266863211702204266116488186878596147641596893570211696245960401231190680133560140224591749310440804287636764302168579330842654864874676705558527938013143281711542048061989759656146408901632127833717761654880442566489993345577587621566199238092802709408378497111603212946070506893007958162389909054969008431000406843800772524932143734893764574743483962742387951098697466634997158111050804378006028433913734808856631974300767440777480914644205958286458742416357636224992307131734714708372890812997597731369314788809036291361291022155386615901461574983676704537279138865311169333677171187413228452126725960633548903608827268483168288144333801601087234537733176803374822769871706429136579494417962691048850455969982290310776752931857248782891769183803646663049117603392929555527607024266757417859587518366454319300302092373040428817679625970679276999059188969443691942633785036388626337767934515354037779412791114582563607639767461519979291355038775666779918961454221052951830335942812599044682023748191462334413687875455306613443841614946856553478712158071195983788484064622981276927914958860137528592597492298157486152429281069063353957514765706326785801515797393687878314131085231178157078164185921337159529262342655319390120904784394633263886738938723084211119609355899473131494105140249699153776528302438818894538482928950858392735349994702804295135405395878883020877908379588440714776225313302970573142920296853339275311108491738134578455596596846043587358249155217906746707946152201674901594985322066895274216362900914683655167416330352635765420978450571996358673241820747960031639096260607221447891884189421345663273925217214207254825243533473005931106906936148241623921831465309004121818224375597042763911850261497166200601336861198593930323213403077324920922756750639289225805896759297655174052096500158033980737489029623344635810105665265156045066438260140576098729236055722064309875783607553759207938150067251300084229181466416212183790153071399256609144860913203040007370416698612908125504054113642248664507786773865086482682322312756913205697051614022196161550796160736043971995784313894296678225026062814040200447863337759463325978569270820904841191114253038426762204672606183237587383364680980656247442618344900670789883418223583458529910011671031351108358045613543362652949779147556093659709920451183345262166045496100949284560832611961571013184850428779265722436145563479041971152185336944788634619354026359698496464298422957944389632669716833682762085847811390860547742982215975586632466720232573020697149428825955538717312014419596530829956541490152469392834686319864846282884753472385144100740790336407021128781059603259818669921932974666284642925285648257695795163088804681473316559732339053544422979200693812403943151636137133510565216676938040594748592862562200795603669539575877312781713015541148759635957816854924481763153681946528549241852701526092156257640900240397008508865731341398964724575663339612278541155987535010412238998630711406039085974036114487302008670212271852035080045416395210695414115224661598376779509054385838529636600695654124870060085837072373465630017008453076277629517210163545566549792087270669264230499717604521132410322376379557996560487900085235279826277398901469963368990668935782053027789589086841205908107633910988780101030505458685598863174748595504019343070191517286443990799286984553962744881990628757042133294477199073254103456615118739505128980380950642600802351730818692608099611260342443451361382898259864135142041513830709571732215033534025207632335015807608828995541966929825223528043837617226254161687108331270812320567706967618988175567541448686018288942240294343991397291688910911848151338261926068083561779790612926578415205186449911620244807269027901036194236655566891952938871716196344359853491455689829928798782736867162300430498178173240705245737252545580353153226868229442219020256739025694600696464090598426357802609780582556407879430312974675542030495807819325250702459478021470152102133851249022696523176888476307003213631090475431715126448845268249279353587099432565246564031620868392423958123505050189545076936844734203351588010646284707897063642870412597871097240884719608642294548337182134048298868239023725591081500398409398995384491811798631735416650264226803468272854668620843660501091647853789457706041100193465532774075167670676948487469111647412069141870194786574006420486363719838733828158343244841033675252337353321043378695763730557934756912069931079217345004996375262260975933428680322117367772144740303331520717522082216622412985807250235883422267428298717648990499520094113422578794048300334871188925297550476203990219287299279946044718987346421503653194282961052668431453159928680055200854692029596017022249036663485288891963602956965251428918910085997408467340580277918494989358720634982441879261201329287149518347645307565059378387153567503559767160434522154847298337357393380625682802745228458883353827088945242053302073797931776735882341441073934209014186241460277050858029766431770816717401706865177897158493997064811495109402478091304653884843417534129627870535954069629783887964047607741412095541723003332613393965570321317636911207434814025421744530244161371215570006923387406577593332784445294520198125045508710226684678750129710750846263885510522012151054687611428829676668238487378291075340317123822921889277137421647641117570038609361942290560872599036571866583358517958172611825220415540894142721439970539435792606407363359384887475003081418015777802703036616436298846514844244579489244110830036112561517799141127072594823935858517242722791091097613260993573403382528953213726606380297424628682081937762026424188700970632179434408782346349075160915403918110758435034700282994452824916594512141776990741196272893541594304702730256623200352823668343750876050372122479383689559093890347763815498947655503048815657115131900989005884108682620067840208067308604794114354258626951544194513402115039966339285421143974107151862767695514109161762702449570725765786917868074429353248128288151984995651333641415984403323394216803260401403160280587302589867089721344112785928000307072426896655300215155573925584076322750222876832002074457074859557483984730603429031364048874759027652313289096668514710325347145096140305491344400210940049500100555025435886718037925406782830394342612240606427264511422438811908389398842707754304785675456026966185528450775859823180699199554526280063679423237698464603889297796732217171838570800515777286371962565438946861932953128177950550356083115218142256532446307022313966657485236587077848722751045516314909257630296098169920533765056337692323996323784492478270761359641720821542214339117503913714442295854663429041364379632294268914559248798775403495552062887767733785760674919096294826180281441859576014341930103653155516992156618693203346803022975656380854401572911509468261163477434373478792176125908936641706285346397165343827941716072559646817404776049933374846767637181580835402285742728686430202885152129767370652379865246978823103871019212306679521626064514206112313013424298024644517553818140915288866446448830529818118702919394601292855400292690557835682597192243846582184804899216551213854051958143814439116463703033017063177835390502127401954682497203776549003582118974976156281795398944391037964774352924398817996183342286266405700740561822429971258544131358967495242693778036917505479801837719259768729679993690836211940749769685667303973671730615782754514314014140996395634499962762861045295421585677160143135801873826339442722699114965053733249568062401692897964477292252598616893715077697093852563997083111588698886255877398850223077715467650414889345466559458517958803722971761156144537314737289641914984001506079729603453632624206538184287068223835118893032203083729878755489742263815440689270300734120877712725968106513447377095718694403546079695467901949315555078268232103797611754889113446781793994192870374969682189601510858880836507164602495793651640786188029429278233125372726720912339026621351367614568572945186345959975890670995840770976540108827955383399909500366594759421611871431060052862547851651460246367678598796640526402931767648652144836089613119007775386311184816756130397697432711661213492030731681251498850766418609555539619817236245853896987769852945578805420807078250510093088043469473488435679564791654961782181612222396556764299103407628235870296197615170285685622664210889038732176464593654672728869806758773690778322103403070552547689152860921083089532246292003364042616660898405058448042902449116832393328718204730310747641057292001191017172362683059277619742464500618690733332696320731760558759660785084264889444262574009760141786952663002277657710216913158861985474727298871371231691748606516689353554674286599533347206740607978621352850504834948860127834235268900951351643442247116989692918764621105396844106892173582357280714195503301182240808396196374627771380204239437067121531765282309132516840580228382975391335208404203837515841802205530175559869663632615001287291229845418125916407265752713720622103197536469069630434693259758497776271855476263326419641216213588050757021284265792291232474881204276351244403313474461789151613903851931854656403107713457440988086368250541508154165512517540168260278070776288981233382821752200796203394916235276928156711644429353026112432846651296285536939662246283358065356693830409229504716703237453901090269906501904794070497602068854645157902968263514208930179529694449820759101718924819419161450899762495484143761624392242030719476134965017737555026505522622868708803408453302674342253563058437592064554659732033962227332464320717710292099482692278197500610371359532617809673331687682979143130622377019522290863600414963713302920036834482102903379768829198655223648594689472025344555475574479772539824681355145390999512068684223988899770761462461694677746914471241498773635806108609573071362486960150698386417054878408411914869871334123982718776542482372506224458627185995964977272160734491142215392181924586005494046502873306162059170404967365050861680113682495977290223108123136951229614799742973638720638195273443713625853369597932206357814441336132060567885689437332784230350307446369190962213243432149745315939650461557204975939136590565240059285000134718134477924040427287882545517880620631083576686822171745644306745791209250666506691964163719711532314255132701722031989866796374865382796064652382727501141910831082561550251155451461995922712753617247557186835522889743277083102926444307130843547351348633360060860592577403286530179003552895918949176730494460105578223136880430438547732393231389538283276922533215074824222461189084564410214739883166805773296556231366714382455168210845856759221027410673234829470437012882927168765129178748735631353987730955606682431451358496000635059829204531776863097227221919703306071029977754351393726752407630124896366764859928352101563696859398304033337195324601172602943447046949133302753829841529735647115825045700518526127595939489715366291703957703859972544181529768073870408028957846304168008320520785084522174637071546867153410770152945915550933558785635244325250556247011736705405693798748814819171175888233054941272705491207048806815254309056236177103336851172640031805430519571892497334164841039119826571842704891127991159160415232712509260384636340739263668289022425515417340587814271042413197644897662771634438613345674015906403067898192086042605806284526354224163063820455380883198064224557421067465327354034227311998465294064150164313448285042317037720381465587624327429103950130566778315351341916369832909775135114955514458203388406630439864641760599829108041174115308575790907711895131800913300979841698174175054127742017167408480758786449246002479006391765574636918687335759897473749350487568659286246789291416374028953147451782758791071601482140777391509192467989437234698635669243425005136718453525972535270695635002337371147272662161009590790393294546335678400503710438409493358675386944857437713849597410333632832694892227052991300219895161469157260599892729684931072043288941343850472967060352424631225611930071965372008066945369074852358180545829145378824367559734726607562116456306996825881384058627840762273395675739012820877865854306165865872970189689308680128306992884186320418492466016817862369798061710276082548329525527201733643588595551891649922462936000778129377067600676186260200197871900481290130278736223965718874982129704912046750153295651760385901216163906971720838650165763527201754300497601310877127106850580957107031651471316699108648577137733813507234147310949545996351896474455171379355358746691845840331420732259713498552800084344576531919500677614009771151575944260680280251812907567454254128376966656196147561060244228511665166149978217137146058315115475696293973062176720599744490023389273975425283807438885195129953207546464774218901631427482762152123969513941106658508479656587337229180364444356113451912174247245796020361048215884874599309644620751035359844375117996018564675539261951771899689645635839430895277737090852725238505832335921328539708108705772889606430887308916276542533879296071504308437630669990417004779984504566746048428355350699017535161567296295968774797507565110898250815686601121732045223449712563530748106894855302305871102061554568860715727189682209616154749560881253698482694213601991976533222257895603247361983206788138558082308536277277328907792091385764003835279934471616117003600384684475729499544163802327039252074389151774063677360994721483387501848116973926212261402400134092928092247696101936138211528843414095798734862825851768773164379806174703454510389613897774414706413895791382829260274489987261007251959000470156777541959501610867253781001921206463590817808710416918134706356455189326239552151806420937124352458484644814848085078043824130511407071654941596781310563534756509694285771352235904807127181225568981079558784444486373026649214509908538348928210675895658322273654696302645185867965660659440347680419592713705967117732580973319610017437568793501503570995050924876558256823185213018733779790043346668232325535952248648316508808404421513176170394183570054093622777926920073644439673991366831605523029685166448193153427942842049320772210245485012789001259461796410624164485976664890137393922664356346675669709469356212334118990056477837176566872408308146046432905501080747099395339652807799865004052729720348540316860853944802213420311839794334839907950655065929091998391896505465032957044202036831694761267564439390818668644110759608343135791167620422613947195128366155524077044721134296125444623491597994078388282704714551507285942128243387787102747425091073221361442362701758648269499034417633788458548594970610519203799079162680354467367562942753650130652167272553277129403883788808163917036451325578561989666215975026276777228794175741290968191963059168127037562279991542311953489106118946005302679369025223796820807238559821972164541310383735791785402756787665132247891498447680341350308775609719442150860005089385068485208371363757256478467039685627174056740302779849935934669815860136172081368484356578026787382286108800492213540033349450640211690663253868590275069370955072255050591897683110683139619996956318902948238789458837379875455504236272884518933643719035409821295528847789517896550145072853363253755343312508393976762836164415457671339066139888314954512373396069867582044643478331362678216886061819928505456221595720306697716824206663765242520431380149636966740374016035359755076162933684439048644843590273377320943659450652037876646889407898522242483724625192735797494344391744868253983253431945755712496537580505219468250417510068440868738381604661822887699436964886508279984506148227253870807053916112916221725977691488461758896645970312407862231647826617376785723605290523620313734211897733403994007589276655416769818609714567747846954031533926380056500695556142917695516665389104493496950626033834424276838294637731614828115974436160818132161296807383202466374052435796434450347760762314476087042615554144844441741744468134881769057624875560139999684269773027914853622556293563724155664290480856392679628643300201274278272563424900728028887855819132180577050573481593446567256345074644604225768221508486479943479548351601083932445808810180973022107760200821633139917093351483564371790437835250538767133356671756767912769947839202840787851276435997064016909717293876649942630476311288105975183553334350311142727080825316838011865646604589928821843230995055184552212330785385893436561034254536948073076392428325995697985180558042939964315212210075249677291561638280115461358545629414157637403702268065356304208066012315773387831771309352294582957673799440133642419262576563501823823689402619557653261797908218706490693286980500396594585783825064587255023060243481769567885250021028588570272346490899353907789641014828650405970922733329697604385308576652585821932294753807384170707831328968915434304560464456297853563370333723667050285777946934113183791023485168357677591457030569185389583363442437313344356089153138341880115281872651460580305447504948353558615553819765590858160056213444075702610510992867051886225085038340560146306199685069551953842126102012316047104107421247862332008075763170224584218686968384383773190263281649888127342659521402068430473619842609849248756788785443084651689498241117761678575787997329868334496410099367375094665151802612441055260390572853073744775106171406564349592280329146183268471345270709972887909677617139217216114139952012970027024631186076897853636944722285826478436066791194260763791331539343922963520824814672376242103368952548805611589936593195161843981409873887227332157554112651642168058208944437466443991859070606097928986213597649868252327556833013799857033642457727221571483928537737489691372607163128152602242078878672468891369357991280833671589512791739684231291090166562333699864745488037831379101733161606068439823163802865633163382879751509446624863239719529584342367404857588654862545858850283252627285804823070573063235680435897524939914276139755020739539482405219556480386283979470112530869340566922627151031802027963618597972115875392737063511686594945804947668582590296748915205882912025893527806986422316628868830039536688048856498408870178869113932737850756566309599378068584839593253853739958864855394690450336304846562909135009470483268504650961687933541076322538499723581874925605742614272391996684488179168781181118801882857665126282570078081402652282017121264176040417002214342926071039514323158945899378137326787361372637297994876190891710442075709088538630473131746405919197943296937793976929702332137945297623229773962179440889211868626265969429769991072514602872871139677607528845719111314244851586323251684845579042353156340968609644057283553309103658626617872608621127040975121053184771374346228081837388866448891842091623395461527508576788106607578698998999189512426525100030572443144836218766073670478348670900833065895137507340641458679772976174404846719255040260563587667809534485361774729378297957300446577681015401340681431206901744429701975777030371076906108376847202679195759229945875411100770769298819022640092678320558921177354856438844304600891211742618709423164658185345480328193662487059071967595901638789681596817814520374607489680030614403223882785905641252705542269574770342008658421710845009360966951822905190165460795953624037608765369159517287898140888966485274862939913778997165675625129722395418700602385988106315004619243483120789101171415465219412529696214268311276739826550567754367625396575609743981213780057820393019781032531126367426004023560430087192655632874023718999342605264411838034016117471268362349196905410781231874127027966274381566080270527824058519789918626251896791730879192298033080362298465422817859282979583932515971631068045633103116029294269920164697568044937138191666615894938005727011201318718108675034165529352586429308932355255476901934928839107977456972043646423094322840614886327735705525595870846749807664152683606359632301134031209681904918825838793038360613646140101115723421509094213364473192947588524081490909750800291050625891878583867387140508111078177414411960704824533745547922953007858120265994341705761002141062932417198752082725645297229220079558168348327982814462407832824507668966217379254597415801021168560777664469954971277594855870466494506717182820425164166311167932770270321516434509254642322303682353734234468807140432655522619351920703624112450429676235280071483375810342309043728267095254452524912958599668703411472836834285411158812979262893306584532145080465644823787740238810192448085548770648386905785904344642870204351337477525600994188008714731014080937560260555076659697824214185660870330857067788911695224170974834790868098518131127238340403210706136216228127258876162981691665311557514936242999281321807612145651297154695632655649610456925018601640219594506234186979775334967712790309875872443686854835407129676528769661819240282964835391835151249348395585799042356562914460634521236806467618942249497371143313671651325348570737727546088156369325002906810718520683665212671436327018353239180708180990481855059080297907173099854905905929862919581137999047250874521812221504105915484329674683499641716386677743780471011841712515997933335070185589150413529726004641185059335648063605585243424315401730025218618465588314961742301026910467061281195614898729571914711379020112237052111198376382665111677222576443947441498211766870253111731215587806503650830180615436605812750869709421280190158671723354980369742335577096167125957556541987132766732439271575601599043494335258013467860012164548895090970347166162512443453835379146952246181779535791584635110903097738816434669429229713851290093774500688988596484332500314224294172564175450141215923398075903201029145155987079203099226938723462028597717027282716684552748465000863298973468064720893859397559647571195711803970784603885666708786432426814103801146543451613591259458011584040491665703902213690366548643211111496154334243476279411744631824737911670690002764661152280342923235600332541927362313989965573786888215187126307619480279772790218214055791359726773694999988418507940716280885825777781380109083895083859083361549662084256792910520240026124193067665753334391438108290176440048969870202239825334254696935462327685491254517900145806868139165544068853825763295041975587904990279253381230722910362365137815091875952717256194827437278501072576806135524044667771459705911712840974795510273688175233939942554266639874272338279104737985898993108572952664691612754599714182432662946157310095329117175120173193990224684444535134416102383063357160833623413000467067261281155076141048474553905902504673976423313564953199276970011948701081525132409190937022561145047850288117223650801756607434332814885458956264941467254475749109694617174837703020052969917101350555166012151393530264142585438807899217393722539813992786146077705426439594858121616181173788571852367241372290463766019261716562100333165583850047828184694351141644205083707677142541235266487720416451512187685207735127211773981517798405903652346527888828635057556274101486692116302568746326930138965394708630146356048753262022925200488639149994684608756372226781763670831710387622135970674923822152225786267552736421518002842439860663958948678449752010412918460046109586031245343203206136975661003532191543359138943100998880512610961060057203440298838461358660061064738438378154148925083507656812390642311867416090233769493359315188227476863364892365686613781861845696087476487852187120627902176329659246243366334286059829449920579757716826357399001730772425861417115458961170653485208923707659722790186602105190862090945106476453013927436354770563022224981985673806998595182976968230354594306968593641316241323156903686197884148468124804312077306383381919837927140319587262165514012538376316744768739301631084869293301922927495551208480407328378383674734524479224125676970821654275367770199636154141742232510153602095668317151423858460075877094212673586644059283732633643735446987161552139851112890274944631583738956000601002772336234810549921448713990495240221921138718923932907402902173923954686464536164008290510702111860252874989799771699069176607534509747510603576564462725750859349711136689981403126700908402726241093599018842613800921964765778461014012879701011571264333433255946074176976378034055028839366817011231312122149630588186876499934714834302362910633138168906600973932040636377857154062067456763163896117135706431956346658517995488151013367984050995794094672836316684609327954302508241878910183100127239371862768028743505863879775495413231105137619087009394319179567104684476166194003743670865587638036093308243653307895639020091744083302732943663173213783434362022249313399424181838029061185323819028370379510154694025848513334916953854980678318885645340393835837716496820594805822416457857717778211874480775451904711432621499176835484869897958959646266908269414828182177506178589710115310478655440811416548409528808733942226434472084183695786993237149354048495763799624207445767427097046668729415032170559245105122869638015957611340836544071509433885385309452701746529646528038657864793783252159448482305343629317266381962712278347636466420083668234919950253324823520798680183279141525586692459793692752638731698208257622260723175193037945830186858930107907032623406526882260645581272218323975411270119046236172128763266669265521750960652582274798968334672160305231477255444723076060601430035866876973618766533788834012999574809768280516530493496444557411896178062280594347566085810827168714214424856929607478125006937880324432608900126060037914106994899513116691744534336638934703030644409003713006180216231900819075254401795682659233964987409593198437776066998716057448710627808365302271266785267031481785684738830391286042366089018769597433434465004812658038076981010178459823300120221546235011086293640613327774204002917784928076663422491356185804951361491905214560696013627256628756556047641593708927776514699001513110163629021752198674111731282600902149484179852756393001904544609252736563343021677719453061904104954270018529425014785861053516182293131341638376170651596026046586423759712316742453620208625279394503670426899445942665071142863740755726856774449511032300123902535442789015166855291027247468991921995701144774206522223422978383098641621176725898369796946897967448254115666411295998700014649983745080109031995134385016600459224228524689772060101859123278518296244879450549762369002717877111387156404730236698648232692269381464327637361340537247102476441781708027177766848053257355494741233934594258284739893663125488742835802172769510943363529039237759772302165328907562941179171050849707041244288336751676627944277840014777681048012169337479155618115305728789841660433053084830917884956621611707864468617381342785857461480874715325782724721150134119375501578896876082289103910354156547638530075892343868759791869965732271371877503074455294978830843230351374911952974047743842103109124164878623539993816023916500866465153033990975076529949697404300604519244722063088273402122431750971765501284744589714720484456498865620844921393285857479224893079621974858000281366834285732082836512595228123100282087129744270438544252141362744243943584108096918049575672038890439406120372859310816342005049966695029713527465251678202930568575713170314297616213222860070264422605525447788155370935881262936034149668818759199619733046294324755828844430960679357327363447665707358811764754529459347435822121045863409329563291404907212701932803727217887172612254278347809289653106645750591023567969233595527552391826405720987797515967715624551148743002058715462264047596303792836705943302497211645117081614643033184359904258079767328699202143775274087310496654597311264573986232748790031567252065375956172996019518469386448661985768776410092099300453149450192176112349503129387371446481364683992873554293840738704368664056045159158793234893848606166786068345537778052582516182678993418800986758692317291052442518212165106499860837254763669089726156984583075392846966572626726291792433562205951438652814731283464784569455142273858772363922643792180619948225332158647191540810701628139367694612497872426560923463900331012188203399958888950161094357531363126349078672272485755118644681294839000091890183420397143360814941065932006267249202777602952174656927099676748241022492915623819838610612375133904084697937387581467984145294404820428442850034705463156648625025121703518091380270997956198406939826845874918757002577914375558561202906277726425425159530805296488760689078069905885214993526633592152619145055936659273669841559360979346383307169284584540533133887204896156197626537255978449094512689498409831364567350153102372233643302878005855515602201510228129459128829257142029253050232736304346199121773425121189725924444037459519381781719239237114485975764827980413210961459030776244311247547285628813551061353979721778488595723188918822458510857843560974353817049139976418239263726153069835973925394428531767301636385795921790501462874215306274199368549111606815019219814445035313269901731908539140019256323802297531282082769756887561382613287141600541394274683266709385636761367197805953330874868282495240566511411435262339439219610756466530556064224987351596427659558206141730165503847052271866722941796882994697382154202316337922982909844039199127901622212197439906619112505622235771212456890879993225257809416148373488669283052174779151102404907570717568253986944312241043759932610769791633650945178890949070774812127073513334836978866723613896169764004145267868576504741794850164048768303444376755519274073967465543859266439068190785054137650634998460618720605194169425671629118555520319099323023705550534945497717581970103463584076724653604670786268671055423153512723303265636803616746528376764836653578012928375152917674695494172574128231860179679505194355297167712619965972049040305671422257596151647131564789584241879146693341498281909451905351910957831116788593785955376886042164102216872303952756901381990088252898409728141331042953422587542207700122070463621501787445880022392524850567175398878888401708631573189323759733941950610008701396151401140493358985601380828030541066041847274186923369187508191086377754008037187136207027273919797826748525075269138468171739549652054749610078854873609167491618265593888954336644827354983501114997879025370352600654413247091340214574401268778728595744140946079622224568775100271697183621930016657305775011789301448523709103854565347322514073378525166046068226266861177542937747417865787009740424917903916065867445021452306341337318051599099475604361561639325977083603067680656264521047887879631867412657379918565310047003350390041180429606091481522483595725024064637615462023607450052179790694335867314205398234227701806940299937197604939271814378599416439733852651050790547663247397120116470908830161914722435484682677483613136088260183825959109838622578647426097366944152963717635736854695664348928044223080058279871839145916998022336085567265342780138505012678540078196318778225372999239620605783396581924131459349595188246485498038082268498298252230027112431491406264529300033247013127751334410972536666238111397133829967864038253048468827357626567956866061900285067041451877386963944356167600559776449024993889054909892232511137565141845010329096423882297984423772072104601871995963325779714687437920103400206955996632711076072843110388953908000269073908853914482983343097733885262192226666241177793800705250844267673129484591903289003967926433021220491076365255639989346222916342161875368645647274332779190900247487557481140600671896684595097647119253149039331475763940704485427099574071863498552596091709280439898176582094156570062592603795567813790587921272505850809028699985886781118427419748422234694144028341047036886759205151240873013591683768314591397629156848365004137323103255138192540128476350155917857536058121960841028124623183797601277128006874149414202927049261369586947105049400097875711124828730405597044835450802365068291008616647864518691095433939391271838622067660148830938168516365925338490018491878304934926204366474409222691769425050308309236935002889053166823488617568518392650821528732198655979840727226915726049242383489829985266101956701305916561628294834039955540420705066671306947537345681473607007472002837274263510695996000216624987334770722987761995764301398809142995300653210494145033773118731338089251038879278312674709996872914102721072119119748155377788479730753011515028856470672416910081686146439842378632028219406250283334591131227221040528650206977478169898939639264379913425505919295968498087250750911954057853474425870459092307719141690066445690351115129593278339730992861525716617752794107328347581836928376553541194732729326773565575716657568104364618176678107597982722822502176932462056549291099588501812146214004448000408974823321977094721825804906767999197891196998124224629267128806008674490104741184680303012474192379390783310614502753206007205506247454386224334133791310091602808271369625896287151110949382104491236984053695564715729015322661426866417887457753220280707537347290566252415591332665636724852370769602644862408889580262890935792302946636081392256408281685926647593076365681830313880837342845939936309076522216724503393767185618888384415314972711048432805049890965965606330224773207922612702953989332054654769197904555052847068230785486277209088004283572677115493723558830042080827603924069274525017457242048801975766242840006087491339458414649768126868290103118196287292003159711617259922603312314651881920640991620493622775120090771250184011549477793678221698820848301161447487738513967207536395468216957970295866793165047097263929240176061833467018145090565877250037206828415659506022053465220079542546802908128447940102960254393850714421482006779053419897433067326395537139106917336214388465983493657921315541457092782111549874367365363022056144522882385414275481017825278681186218041887534350897464375178539372209861117406482450907070321853318492775461408356831488321323613290593976371309907056984687161028426682649275975493418940992541843020082887890759408294229484137346319921002816111160562026717877736932290416722767023612405303760075321241767617352850539627783624337020485172538045599445472363819823603978467837703143796375534951334970846206551392301977241337173746391609290110785732738061230064356650361315984316787403428390576207419583951527046885736653110960542661502177234559150852563958927293280942300685576103559245421450420565148463530604830317276591547977780832165448121900816289132175690667153439739052850040337266552949937373394179461857704247592078729295591406576582756950541353072327509029232602797342875463253061933567096015709560761642110531461714671791237527220026761580971426447615830115238587024453593414255643127502677334248368498713421693012466936302342885194278504045340059828102039267890401006809261024725394114108763563273581202688856357249530219205181408891598071360455583174834865405409154866484777932224023472363831035779017972988446301329103412679984692017396172111275866795703694575455215600650334190782010553170340259165478206089657621680346108586162789256595589612175321712840427780339930567843246684183266472860563543564914725239607041871566919094032561995267852150105089556003336163288087585446565084675404295669713351971470013575631960249711260822982827411504676669740166282394452226488618693986390128921325782975548158669048726915892983931392774200111342228857181808293622653973313839368483660700431031045701206088720614927126367720953000377514605085048622600619082414466041779442726229972722660308797082553731143997689479869189770700268615524148625345526317632157129795439459618155243187617551780328606411375269211134944529567453681372624019536665815947001836468396518677581993974292170069386757664519175266148482084014594217989910861098533103328530404651770594338810340596884762922817125799406774583870779925403588585831082677756454678083633739241418857550552400555924765111121407321644161831098453806809654015126949177708413754328047692119797061393691865064507314239422434933864157210178617967041161480932939385852992323679789710504319481521298807487388822704510063747594960875972487792477886057770348654950803876904555143593933115501470988247062950858696912339371090820375738958503832346913769017018779580189393292350254569162287108945110485414330954696981114119491710904929193732171590341775514924139054678802549928896757231531111296504141183010304443379818756104759989484440946600455568445503566749434437976337205903545842627355311325535791050081811578365354205376270064059354612807942269297539955964524351066644044145447760817655536344221431773959999584512146696408694171915695916213681579974948356128899575846208238950362571558130503875134935622852494863758954821092832533501573695742757797527663369493101557680745581049938393809812354414728787336667889209332105036138579380566666065540684682900457926208435779143855722743712665826922839809199394910146249844910096505201891276561650885347858891372693387924275060464752190136169946454017917823212897395751892210075520620560370512476758190998915327461685977961789671154812746473435011975199664597498121432403412112844746558656137429200492286502071289720559649865362984505998462254595428793709858276456702708910692840008673503232098623437998198354413362042796525569501118806497808870602910194157186325044277971032159275789455681573323727735224188496888740712292375885248563083193433614200965498398752585685234170049470007565375607631547954339080168498755531613326944373046363954790425079445223512990296167254522930897354134089496599649046907945293048714824504285568614385331744742063729632712538456227084859004396039703379253248278687691056197969384061400871220812153578976074334315926874125398329946716769691220767688156571184134857133947222416149865264222838619108115954474134393949109260368592621260604211058709314343844097516755051015712506068994770035025276004931273458684222918784391064026989001498824914513593723474775394971647007212357835551325954784685003319865027909795338110125829376184810108711168757444249193215801167978488210405112558532635505703642245228490144995340120583896214602493161436115958700256792565282650995914156133648868671531393422079412591893606463084481245740070517539620835720307945761625703865550511982096482247981326717132597691584740132138235191006608341582588468970172362333431197458762616109606172587482885946349159171087870605920620630834603984920014954687118674419221897930732424281701428815657053387686290147124834682196291799546270907058399745906055662506583722710281891370221838919875543234199056845939365828153924029790384465264018927180356565751971865321638097537460253440251111940703675227527325046295466865716607216326772454292521368476744737297230997461573953946956916700499904710447955784554565466992528365906256361635091952561988451134006082611443169637122303066906427555975280858922037214657881912346378904715015556299559255819324103884525308967181481707754255548062327206232949059078807550198206648753908929322673897529631887603231343758911859869704451211869372963209265928810321005841835147525810277617305312970084627362737962276320172775994055204546813655591404433027653914620569837217505932663572098408626972000341963855100683880590179252392616554256477113540951992591404681051897448694046439420248580579438377015677140463248517100545672730403152016443049078842212352148295557553243531812344060237803995077428739616888259138619865306069813435962325076306846954851755664030578505649880288147819227018795954108431622122552479730047973183621147622766213150854770806706023650409307487012331895879832285423324240049031446759484447822890156677707230778791134727222428425637248128061964483156976997942401697826591787115792333191042783460885573229882941803930785494698015200998671097594004414194675756504832438815552439323629844096612130602852136304841757868931895097018314170864328736375191406488791656384549364263572503771881378386125501825424600480887487908918075663195034126046197432727162308112913227273189186838825764731735616180651882591945391174612239699589198099813422236376601223267721246798776809954480847408195502172122091897417709316331921629491204730995075182485516356771832112361515798559575880660792434227172547088691076980620667795620803160024996949732298100940102638090682115578243763528068963665736310846855839916141057219777684234428785038404157689587309209922603973572587197489886420041261629168247169450804085789253524435963915160773513993390667247068441633161345199229766419779129010571887146005235422275237235457806813525211035340909110204934934528255685512688409071522202828929003638056563431398570880646989763186978710288676973621993088881949721220957946559613034545360534657590612910995825888406553339926955961098971306217704781083953075673822088932529819470044736471781274033002887470680044163260621160299567303447538702774243305696036720510863872760600623968539868341028944201076230417857215648948207403535162415688349271009082354251354493431779698885765335370322056837753566897986607184417850040287063215919133171255469215944987197219672146361883662559040592282802853117432183692125773450319583569453238315048266375405389544788216937144664207851948072864142721054976286140941993633882971671800055111597067711249395690884887763053620491571456879442584036893567580127998739977218423432031039094065089502013642078268271526562719148113687035218252454728264912706875993832141936513354442011807608985607457363493401420677829996828384123220466768177196833674966650717936611991200823564960984808408286161538528580718728519952935782210014501930894081873166191109537876940729751482944912149645578631389347351735032212152652981891096399704705993448263878686460404901359180310046334151252968319080616254268978002120495956905830650570682058178614739687604741938997957640083222338994359834498349353035214151193213778147978810605236547504096559944941416368602693096036875166612013626235012205867424455790609893583632504889539345380114283643555752451021116707544054496017900177101070779418810270713401504144215757575467979491371855251279193280821306543062384706379308831183849580008306269185297350189335036092866592189394893846947851883836071399096214326471008557792757596952313212738110322809907110056757300137891901417751983489887966834215152126826561825057014622640508027012776102270078032368487960500204963440684648809641871881128483122360976214165627104626779461553872689654784950177520927479850680510423096961386982288493541504243293846771521210064018158144688748728051828920988810754282553551573167127958424193081697037003198576835264545629874552385526886870332047364958095218481228129135009587750877444420426976996873723706697282510022640758393608380331985698420581180785221928735564589284235951393648061452108718940348964601738957504254031515723527715149160846976124690122385857307273336309054822803180611052979969925282157818842069322355281670313543358108203947748780852498776347126926377961916623056595569583609455771002572208618780250630104175803736050705528585375735488648996580343746294836719664533845322031913120747436063446310085337415229887021799226568465103201984219548985069331813597310665427427909248328958917749720089800999147291229067576444956846062806019405910510583839196822583198290464899153673989921891970836543832981202867144410009599325858001483086333597841377179387778800421870535281925768913702571361687640126017313357646384904073964013604226456025769468541882906916289368879917703370581857135055171837012161865747330552111272222106054824943837180139649564055383764144106664915680324141132434090565083442359256885693619357393708415910099894839015263860674383058135390108014698942643561302709673970956954518919044872403785411859129949589103721882249560736916152420165605187061910929398301457278683095887690624377756464711258548134922823964311948102833832372329897510689051370816504396339804439169754183061714629651274210570920846608118028910872939715099714684299976900641561162456864998093939867853294571332446048243137316698218656158381964606543487843512604451887015032796971676213956093878492601291540139166741147958762201578869896027570573646060703038805900593776156475071175593632171155167587320958506090326435320258164031325516180228939292710168314298835354567079738500407569141148088072647122450679980774565931328349904023639474403304931853287603675463919879644356008907775688425656238569242253967557199211029777469334636045925833202795179291508436855455358759784780349242341254599299634612645027199426312541762046771441787275042060552743112497400495081872345054675936948394544377434664043448057693812875210408356391027906110846094673018537678705757933146343591327907773773319450159095600209695032355128543680436027480108105102731990629601507985440502291766283248575088874293389344130402151701184120082933108590966850195926833563285698756655257798312623603439685187523186039345386018683808785984130236525464644578224311413549535037224220472412388861712522955269857680514721495923367478845739011098893582131549416251011950711253350837996763761808563552273850130522610965972767180359953326149651021690532533492294851433053120941861785562277990410205534568404387045283622790662294314507779125752180063609056704121370429957335774550549532308114490602772084775317935318163377931872934195331452665709919032226164043723402852655063395025384012691948481439057922488771372238910098584206534167767823384937865256682855774651245209334380871797962149610116336014321971894486426631673932640311848716236292307403648263913962712616193335016593221593133711042598426992065155387272742317244539073524321719722573121156495988529296320959132529192742863221012282981453339161588096683856132746004239102427446125193356138539697512473351228834292715095910318239163660250043450197830706037908931057015635030758827952045456008640276158716771226660701902429010176256190791453956990094526731884159989684714708317626356633978296935864023885887653600305723038028880352676536897025359591334764687542983418445567980534069205895496715840115923022478858895133809993170252821042456094604196205427624040722648443924496309182123836658517133160087866373434276465227946854778788307279927598364489843353343171204528369789394162174152584476286435887942218543488433561441260725642009869565477418542081512409002010574992518251312777064076872125529431829689796815414458358919563166951065199348447872304137154545125733314172690204749447141283365123458558755870429557172361911554000744685643193758588562268578243851848222566545539836562107310524720493019207631725279923885267112302240219736160110748960901454687300574206404032043477032407777750868988153530918070205388423029249992534415577590178590751926649485390884407922993614754588194005504690101249450128142445178606615895672585936775853611875894349554044282789923077471423292676129008912242295315370967957298812071426017302803484053897049781264061874596566651991198555924468945050871372803794431307727057928428772919881608116988489576463380114316146186655449212020602391644892453623547215280786123359374920969338785735237821527201485157428167714823032527213992099320833091589421818055044563201123152445632291796642062841852898933178746279934189933418260723979929403404829938590393369808284953859309240729552082047241752911173537169675101861969654453801258923068252074994083444089314124728032570875101873008939003372474125954329257564935316056806268666775331724474097694327941644643349997056162757504187846224410309178164830967949772211452654489680550899394215392330567866828475482944228230126813245494705614944970492229741456625895658432760524472043474191274212901393441234442816802225315573549386428858824299132955741593148237554729154369395517513151755942150855993674326303394153639977972593251767133963961851136847780552099622824968280923689873247452512636013397246510087179818638117737581575158800537684372850326093561759489661318677730593525840224787213531398070103177565142016707226074844169857565331665402719414769942379748769238643563315626778000973598947612116828291281659675902823472011328811132884656874860957773331812477252787377009115730553919336308572175242929725356482109426648000957175011703406207263563654659889986443515855296984369674972999016344886702263416908609347506283094188219215446759496872120211939267920340211397257340857490897380786290277871483493578609008173564678484657949190441410388954689135288968340747833435431249804830146067516065952261899155294003566891007004352834101698698905198482597895986052457003568851756765184252419211165008018710713127761282119051727535815514087072555519951891764402175342066428117911525965173647201394551131533118620882137387206140679103576682032777694696474676303848459732261770326660847694780926358485794482805056650802577527239644406925888199396783086253145557488904136173883401931500887271770455980677527364837159829754240850876133355172680794257872045257403426766247504832442917760000011625266607054857382820446962884878592926833333268000036019991047173508141129696435294069426956478413572319320919232457403885673790228262250019714613819057846986713181218791579283834669710834639029639573129007017181536938224714393813414593301149854694121979834833843644901681703365522801427875917877549838265491100782570158200709517013856982497513612523519537182313911595179003277498420802669716695554188167778780992568229851145480138188079569168586261528728244949305940785978440791445556260854005749790526084718657374508417751179657324175176696199279338273212876401815809972901293821789250455640271884269707702444682434812917923388582478764199424853336123327561668994717005216624744199255753531460270469842544505178532027578379947530693930792989067557313285063257369484870376439828181656834747020855802909108614680688089576733923740946727194783558399627321077870760979719172398793015932623980072197526136742506084198872346180468293356991883150054558762487042191944986156646661180685486396706179955882778611693539793209320138299049002593604852066077855349496285304880005553633203106353827204998013189815035143696626690492994944817894113798620926012635596251841840775403455789412124571094436958647993907223176558330346381159109574785576127475131000258314454134795860283157163626903231168700097296247906309304422240233835944691621950914710221320062101642282470979710019266035557866324118914710010433135608079293114463787745062308721388585897212948432000316851918036815244345830305217763609160798085189297778459164814580089208606484000177476013565926486767294919942586642413820491946337354122137478795012582569780960219902350295544200185388561728184618385520580387442110250588949391189462091588398269795073249694510853951999234281934635246909519138908874338543306710656259468978793565396344248438396632054357245699310957730108861391743564798630602373756687003231908995172595920095212990448739198631799540345774948507238640971793424982446874579718631290932243601835648958163523551444102065328811834266593330770000660075153960689758766344799279900790097947767089252424554820683392075686707084378049548024566857981238493406000368286561440060470300897982472511060359771695537544841745370066900737808564278516044556189599769540589766804778581278483343099278194791802172184383218491026646737686607719611915026654973223783421098535268166860327931492041490718256446969977048866999258896895778380852437070318978106467694075256531152737815620499236841385398800194347751482748457776264709591761582032844139374577081460958309693431442838461602805827391393517251095818052401390924175454344817438626514300392927959742207816353481770007732240207097834224052541351621226792819718117172560149367865675413851834987459615444356367476973120596275993766606631237182295112192033862411552735089923009799506975632750139049845925126893752499225840118979203805585221535249526015662045614259069945036894240260475225534245051448950604945353049240603137280658168589655161978025146569774149068769423653196640231453125697263265739750290671353816751192001853347001426177695528819632498447327880717996656051272699656615458993024926919282568288922373847575531771881981215020224508047105441846338343101973108156521087655651260193735680042387173119871834274557100120118159438856377451623520087503368863933486937958381059285251210708739300739648829291342721162955739557836216308048174562486279890146704475598108670532290713611902268870362125737008363067778653054598986786041359288964815519864146464869378710212074840919572875392569551506286137216154701749505151797480462331155815839401470746487350840342622464258619341060348557981406725730394830621337618638609635328163431939402996693573827497432442452535058171435200124663010010356611190764913512951652942414618861820208619241482859349405508013574468549873925856878067158690898568899731450678567337730096744980910745452005262139526694221929493470517797633013126354117907214204900287085235238327026255065965044014794436219690771195804957488793030044677035303625653762598859648322499206668330596220313649398759433915439393853156770163951459779164853137773874341267308547802397810965771459396201287214496382884000285684254885864742031442788322528715180169354897695227485221656288164285552954468361664413070019910746563555955879044285831725833377844354694079166905276392053569625674670267028853975003534452517416064670390589917837177749919541088350275006459635138604167085450615836363452589203269921189130170324848639418948723047923876129351526553926954577549594901529050041065254875954335358890428399074028133390232263018934902201713690373357752123330663806311130920103907506004379957028998048074593814845307797648090675423439432449070018720112597495207392472480399364132663636825512331276777950655449916095746216634493695911788061369333234480981891390199714397460754830090910434346192687980178517846790509320420406429072552320534105660216989112396901170729954809316551316379121709216789650118127399735300599133777833257391255932981208165593692775591160710084650993212857752764432365255168732302479201702431341929893616510784340832962162861799550556611979291465505670590073990223441314147553052886104858566629460130205110489811786665221335626011175877023204647649889372711317340770883629344073995869159287025225703588537385525551067269820883260637406933254206870909706735213570751579580566150498518389496293082048577529211908304372801049134202136954573157947794126532674837429435798074888490906409567551684054135853083628108846109607386916995574724542962663928980387721731983727970508285420769905743372081361345610258965157946622356475769105931626195902670201311855687613920469964243406713738613194368498908127611853305490202960972340139133146304006403946311819302250817925730108033430036022712654300324083588822961917104707470530428247175195965414633045562223201248526586767524968786208538351446347423392117320962012938887270050693364709439965030806971900814041999720717707388598619614725866255381547389855497153738987972576206252429016728642755840972080372216073223280359708604501278506902281481567673285199553639403616114070490111891593500282972134677725997748511170767929707867070318829849576506578359354703313277964733730108196010662928970277505476361853976681255262324189575579763933048495171305408906708355009283972828739373612409492416795108655341342762902172316393280680321935827062771309769911858972439305501742793025890015621246485040523464231062155584934275907204263055599677360600132980267458923359664953307058688958496655277163448617410189388104680417461091015893199911863255104279730283310032365147425501985950170688914890310450978128888764343607165484809379355810648087853884401311902798190390923734538590691199216388809690410639493823006948847787063826353701753625969734483165026095149207931254379582372634025333322814536230512026242031816917079824442768263110649627035327096465730820455669331446673130988966048021913847263791733875264479466729723139632073516571119164311997053428143029924684064866639289998919903250714321484102561575584159539981784170883998746249836289394257655627754666956299086541984305417133144488002866609201337246858409494276615575477985075520923899668993107225064244591342987271669502394772064384293620200763957437843133896045687836112438428335953457654141562911980893378582941246539519001144364806751615530385430091813536291601833915276815691408484381495195333705511089185474096361284904746828117517629992932376391116219725315701965816915163697483517556800514575850424248403544566472650262064179363677124022964336821124256216415964856708607770796750851606136513270749941946711652215423861833170515296802720314146103780483375444666092395274794001086741440828194019756233730338668329744350460841553421667536979616573721585218829957257581923142465733977345202206508342422582900523109248350473509874675353451778963830880557667369615476859136564124257453286161815935141349782446209087972890081791360709654491887816310184576625510162061460315667177161151596486976353513185124137949163769077138820779472256441327596452396440305986161751320096246400455851308997202519661460530149238089656359452607507826638308742369562597750399202600860849168464122817612066001090681235249007215301969249397834958531754525350077364341567970309660292632066337500615378726113389768805900577029418937113051365571144819648878611787686562068492885767457018386631258534075806410635290053155129940472323146294494488211003768762663286818978548586489018110847180591742218878761265302361019556222141128871144275657640672451736270935788499770647501784315276072488681484114389350600509968314035656551149411036240764577254818949752457495290253425780062077248546018185043339512776142630259679762181500950137204524705667354573964909387725130485265299125123604580319077868603775988008009024751396199712768198472327976362018831257115821340625784445981059444849524165413373853469631358601097766828084255164638616573245202658240047246100850167945379070206596000869629227410942052026559442666431949204837046898441651527717148207991553149370207370076474955152455129108794896269702701169432352586790258561238740169463419742084001013079179745754623246639529965579716661367451782846401000006775128427041642287023419369937917264165660351799805846069942265590915482176401285997706862018744799456862012937363514241798706834588518786699252833150684736466938578694349243408387891790840601392296648145459619655201723346057238883458040285543491279172209145184746796001645568342782557484421504151535939852721754297407074768663068474877094288749657217630251815347508480065279663423952678553159901204863682860630052901934082022552092129851082018811276250656436813917985457704042528150323605609390138048828111862460530329115003188287597750238003342457142627273917773417272521634523307824807818643298437253288910786581459374488011205989358011750875526936003006638508839254346810903662484978716979337208538222043865386356013238704703571662600904396075177964159976651525362705869478989768228108804372420370844765502194211282337638978252395536798773448811176371413352282137597549860511421653457700080851961718831298870309624176701893073865493221032938994820168056968506946802951192716588389654970366559677673504924551750134930401768428787922439589863621142340035883482809669556186092126679841224834529892721232209235683692810123214231177549744810260861709705776638151230262325960379794562018268807559433608252914521038435919014696580442180202138249825822925160630808170526138278515546197115744904771786544529020775932941269559414384708211625037256314266037456433084978191613127677437225319937190927747515378842196381740987535525753787435766125195618082885437052494699011190982023963103433804250713827454228453715096882512617214752617485687133187268209857583833090709699057633900149084204750540801433976652633023549761596829964599246459665586453792637820027204716821466638719814360384731324641708816221088989239667522048881839120802076649874643304310079669378700572108613599317808344560678435028120025782145013050475880611780063733157276344417583857528715436165592246292386404071427412331134226674410294413759421691072724329630102702551779219714318595939067227631187005756442439316625934003819929830797045961838202402114735351257927764407470937530464372462574841214431694444659014447977868676314454487843887233635648100800819395933339211124672349131553055714430482579684663854342077368816871770000118035933792027724376077638454837437770959134790738021375243499249013388314255860926087511057489837347498175823390214805417238318716283221384633749643653576534798193629357637372176480690741675522369888317189377275745568469828463709479525975371446589688899943153686537070149913794144284207534791257895479603034030560111898445168283003272068074843754124991766290930883174864620165123245401009371377370161477254744398433142481277234197885519762504302330531070623062699426063706553164867250016180147844669058303032891353129899312183067952322450349680535800283809342911806135627028077484736498084434856836166583726734000052754300160170362545148944565999460813837069475622259375223328599592763045998844676252638188678604582324404471963022227369374326545540842447956069199285782422172918442578131152633447534695304890818653787346230231691629900735111296003193961941857325399343291317201421810977170730861659236464587638637762823802125087180218179890069941239158297579676416465574142710358425792836709000709058968096096958997952698886247777375334879577513649622679496349465870086901368256760626533136392454080748153722457626080248807560137187123040433013478162194148381801728667322195660857724384004909074563101594921265921459458875348438222270639566465376658801986865527288006125260224074139099059371256859005345402164308077967572776144946251739587014983295714394563417667477025832565423734123087372550248110082317374885767224541165248710141916876609311254377673872719751656752607172635945286605107021273626579052466778675347918447692568351360142955369626969938167382163914860721265756364325475791001449411882058000194828581662272553563509739342190121269889516020927429845762948897569613810712250898400086221535959615992238097894771330098513656814116290777888479383578065945477968831952295550079060925690520337255800817881471839565536642046883874744908379699989682099136033645867855744648578749400216808688363305360695571782976313401134506923370683476641078380069927769338717568263453955776934033310140252840273330687285491236656588325791431456206430461405430611148504374709019587165705118536527168452193094012034498571868087499686916224981556001543423481621695192609655970616192232989363476552754432921305908395994807477610760686753317518077728619845475595936436705047692350663265256122755204485344631244553534570917533743292670567914084852036204131659368702930316628109160492578174523066624282447496712521296637988907495724843053075210396703508383755058084896443109006399916117445436575926967881993655170673973678062246607418755656652365189712012400603557235849674802226135401613285469330336379168828796971104910453442820101413348273871331226901246758771068175031230643275047748954054383818981752395132638877021744861273423393836377163745534363839266260557784495307590451080706369322709859552911780072609977699917868274349945946888166318032924550043263848351381019577427620723914145532850188695109535283356556619832576719666356854175998389833601458067107339119537122626530946927489360301725068873946807716859006887859478133936255927892317913882546574187357633715224799944446836881254148825648183102611176479906977669235232828566706264417368507938786581115422683962682982394407487277892289788140054485688654637123448245656181748420869599552331082037873741742529808840228438125709737851127323140030625445376825873087145519812988382588769467858113915394853602437942919430071620812746124946973815259007643419214880526921132184622064078316979220207703288844056587287710184273115187371692315643619096417678252507479060009780666349520274450322730396215398668533519115203986341671057404779372062720122757378578438075265764217758319663789020984827887436167376964312525832523985505970938196393233645746297224965256785100243687266054803926729626392494990848418959696079079581460237565085047351220600711235782692281249966807820042713053677956858358715232825870049335888158841500266346710100124569806760857221822252576532798611760475814206746497703820453875982779634977725938790741730941313527283426797382009064573610941257677567102251487884749544678914408909759612007133436249260288898042880265321401197077876064137525012762689261673767232515893401935693576857144871808222708968877551488808650307341759535156324180484301236454146253706121371732617797983940162174434987712865593933659906658414084067240159196872800785295122246690604659237319665331505735441417168712031062172308420549998200763710805420366194246349292122898266435023086921192639944058690166258834815603370756952409945359724886888875932196482529335303647070361702197491660054403055638651762763611256039064583064871660712568593037612408352220208344394447457053823161520460718801744593641192876070181986208256791366773173669532864299947905155192161529948856592823108131833376516819384131626369832747494062740910512425260115089224226447972203776673003509883313032963238675728890394605380033005291257279572194670832316644012290927543001931027207797727467008477991774484644314801078809758111372787025003555231916502861474649519319776365822231727271824874000724502368696736392350949177577700299469981836283682482183587532069707363226543645990786513596254562295154156110157314083203349028893576852862882083717404754907461169213523487224903892695951478837880895895310578403223903905102532373245739808804005792166565415063391649300719682571921898512838717386354279398404372172616956895731440633952212174437130003909327508300471956163440544562971754599801729136183587206581279293121824098808439818036085623438155344347039254438316772060258572236344128173276714708491422658128478362138417840106275154960146200449916076613186677293288175979289065722624045545284855227839621561918267586860840929235079645653838477007878990804473484845869326109992021922881442586015323090810727720429867315572846559893337295785395152864384493126018435670906486813931798397294198063892177117369368699652051941719325447381444179214280575782553325412650181107764743551477372984773021867112139561990779262418419083523412632121125365996684908034028757925771020382489947500636409156129157282297369369498517355652345528571975401468529549019673612679130882749727299232533248418645264881085201647096280910726833829853046240538664232793378590546941496926291275413128724881296959605370891315352866327415973691888920524273612410201507878122893803584737578556367471586440256796196887957498602272055488361342893832987771479696901203039609977995581145490626469160952216394311367221610759097440343593327169087386220981060942243642412790685747038930058086202113803717700171762351730666585185164407320885681621295898973527390669882274226270414405735411254754616683603371548652475575945340284044741587166451720918655183776263183591232507049739560821684775821899814485698874855004697472626512043429846745746888623672186498415867371258881285574759931302135689851490430651410817448908250632830336858500529876479622166458049987651892931161578605696468512783838301581096519312256993530956463619162640473624687086396564181614060329680647068998147412340630031410812764663346063664877350461167769271391670838764304886197949100464405769867727423220461115139096865886539265877177839955970526534240150634028016165872174415042447553512203038532166739883105115874568892791753763553683257237748315923183519363107796113665553825624133241590284917384731824564045875356120295773093244986123623178721148139394812024649835607319190997457612813445780326139630244721388413581912229377840252722988989833926152822604311594391275019302448915168236608891179617142265059579324696663156377211212618245790241062159956695556949481507956296429163655890489599170604780529962794695194494469637059657394906295526399674364499589878883469545341578728586316531023751082214272019062756413549067986577114084804050676817001116921369745893637750246602181728027578278409246803172743740086429719927602708883471437096986399350474239328608309944177183638387509601986699411097751187190374305152092637303444057763147438027524711307419383801353365744472911723099834119047501610927746381336457307241920654312196480001754291585874463221056425443039629465904495349730507315666069468731312616919263568183864827510000263293680479540835178856024055037790345534278297017155213039169556107667158523445632259024683365449489578447869507160732645481943895486177450259331326241586554322749748459981983914130737299416783098257936739192878864355758937017432329981552509618665842036373777666620826322853105382479821400681839802962241189847822488026869849226106113570558706689006028046888384717114614981286620581186488233180220528131166992175292888136507712897303167393245090369577942497353299424736309625009670550483088796808400540666146103104145205763251778113219525026915039978093975447404480141808428790827276056426235973081169817002623094571889145953343793943148054883658579295521256200135685115821912635848783954122318107017273326002826750745440040082799348907734356462966856584251501647757765090489891417237504907077676658511726120514944402859002565729043766417112052025624441611923264033020304229891039430222231764864282446160337472844008200627110204370344445597434860715137466754747786125280249324970960117956552933562272563261849401454445185741919032414445860944026765393715509236872536444212478870837182032866900211313851546357507516168985652950465888268555074851179760115103648378231594827069481300617674187856007784067670070896588817810555901817363039192424516278876247055683292580308721977149232220785915007432993967662160570055814889119065761217114031298178148204907266145266028762528346049381184368008635829917758460819648284298742135755725606386418969830745076101520259642890303287432772199931184520704938645175855562641977800072347314029733852705375854427681078212856763994458118627318755625566278744006038983202896623558565530954302801584325603485221054695971769738133404663848022005662512097786263502549675133678795683239683211045678948495908572666537861337561648432864566720324810218439472152410875352489790891339942185967412063269595240200120260773177606043910326970738343468975824920258326589014970072762734788010438890231851674388236187235662787739354822467337649125565078830497287921254695025962423019542780922456205782168512659653712245519152520038352864343286109327951897197187684063133595815431673361580572987383829508733382886559069467417943291036029472500289291641420258195696038157466625315190918910361451117738347428150166871885442322706383223369043849634999608547288756868318777183563447063320058448554939765891332800936468294035874533390485001571564918901361360935342229898946687246233023100408651360306205115897240544836091266584512021689413455022829326112363277715422367000509728606472646698227552352203551828837967169293207749856768304474612589912599665688208475947920809852264269581732322003137605188389784713256485553846581925304741085505633787044002664504316272207757005314203593350947173575731716663957457004276121188192238800108067267765531305028252350954416179521817928061041873995970396144628799359448868980059213221957755918155106766920722499083473533615780655991838376710680778773510671700212604091136379305332656051375394457984737729460801662782501759019218573474957907036955838057610216832295393008771417394996065591380713410223893772614017529573323155380524245290889969903999943695242549797855996518463288817255103747992314928205220301511827549209567168050549570148814397482742553027951903807209721090870271465321888016507146226631972965450303066064275733272598178720111275310370427456409521255846062323296391185924147160192438115431696237620362431460582336980034704286387966923278746599219769628788462265000483912565768617318280815660828250405806677403457699179167777319306597599680382078892506237264915913292612718383267809675731020413820793566550018705405769424478515495265005205680709872934791362040291453865030387194691383369784277142129982152227154582124732437067506511885193467255474190543324138770345119355540088578673787720612344079630544289374983293362320816435145212238719622673290005847134873860845455334435500915119949771331779393029526460062752586883104128536345230769018530946392393636938506830940669601544139952084805227186673014728530928503624723415389969583028883919632748547148166426368844710722822669287055821510753365220879707830677401434255674706705296466519915243848434216379933320922200707391177362829006717921213642606705939865862938846731032188995454074736161253502973889246355687643758896434054572136435190796771561690701058602370804034032737265636714610906408817355157438931753111449784749730348480650533752730520228734053442299947663686589271118526827395042121102946372507415064473631468342528449317390771895111079704945094638153976488505121951358449667497863948719749132034072810373388419823423744047390496775524867764015596202036764105247735691277295232762579642604700046421161413452750647046931607099989072858373791254914171202525260454438299829157368631837656057870480313775157850285074588929208854818531449682800808940969458682256635487869035586817302812865882528664137204124904906976847287383555990421590434105275325929164833478033517784044993085962343052230538059315797934712709999453457511175872929137802725255077138523783872011030555006336725179182701314102246773794802814268358114156896377476455253617158574441192517338470232924722209906727836786955256261114070103021265412021953042053782526416260412429733730921983058514479166376656194774502528724707568887380589892771902340060300940345582489067016756200578995474551366015244620103631102200346452138689979304998504990029525242232448209281297502953828817028635070799500889988277208753480669907456177296622580876222365542792898760268868311760146326838968137803696492704378569100850588202862874533249405515279897395756906463688738842205044102563730700750356109555748786930193579186710764663224737416223420382458482937096552041796746138908201869318287551592160959480796279564314680308449247108543061205584805965019401858802233204283446684128369218794379828205981639198571729853599920729944985658657560688779888740045137928128807068067290163717722407657037196145049086483766015298313051765818225259710632607180282610730687212286206064508118324751169867536734280350414829406634590418950218208043268270558687607030405105498330251885741020721533213221853136946453196430176736278663952586151870496774965221054361835562615676718172412572094441696157393116141820960028127232305692797909200303650314032416905927384452522338789961870757658693574807140593925159284984309478869316465987611152931182785750213831017567416076558581736902520238506119926877466892090070509154405193502773072138819459500098425215720627750768686798068171861919269126046688954301678666434559187157854000617398723846097864969332799704389435372978770003426128830172810556940015349021576398996809991949286020075353179436667494223897486839444714387524268731560451256909418572396550959296739355694110754404537678647963680842599099547728377910594702625015346871453009320969280784318938877130345561043134173224379584798136277245612892269538713501151272536633615622067661848380807654780822833874429330466427573489641633448021151685156372306313170210692115156926582202291513857036716549026622263558606237105367603392472001527148785556542245695430700283645560717770131322386450557857738056472298136028856443951889114812296750838926200359543726145575750631540203328547246129746597848230302852754612473625355685252581406287993052585247106355719343338605122751109716648526375594043041642444606106707510609072009580161600491252427986231432922906004728627629816020850822378110464167697792898614325185379406939596368333159845917398001815685869003129651665474680631495505487851578522326594763352106904599965566925686007846694353875535467447712890284972880256549818742852699015165042930759375430490040380957394652371259162270033202553752454918863112170685898037486861441638766315280394501253974937665374267731855125451811323567567721414607124611005861440605790496027747821070363705117410086501333745640521317208437893742161604289835328109965191630048818162793709138087878626828825272152531160987822475759073368672014167907916562849024055828933018381775871317496982630987229172903861465413380366769111480005723429726565522118722629664813092111447003487656846181969665706298208331174130835643913297543073492179121929568920373478939728158482813706814484565708177660550969601164538978119525378081428786652041663130729742812627254112323017150318119598626360750523052417516597990869608340864706028170694367670582139832884014436453384639080404429858537121200026280808708055136362107641781301719264288090234550274773986837796848757504376497974190783800654800817360985115847210380327443511282404977083438774944128580464391436066192650348086572724157440685753395886500404801997665234850501832071143909084255814474398751675992003524581561205907129906278221230513662221437483998398967592812966940262879057101447950917650489443376582492275114087339644299521547447012970876616484250130507291747240288908765679779779454274670473180429386684278676094316375567898180870916720096158961113590361442668408709025281060251198578395707092754059302139373508068503379705799642486737697022079191956508486208401891876208940736248778497194840739238610471872080194538324813715343299824297259964155091141172489299416419899336667697526292816584268862473057539386351863294061284095648807803100190433125253788513846805045268429770050314472154619097898723933002233361563874577248488517475641037785287990751091040648698284776134181252114863917064432348825734321017528877979220406380834643071681213089291171786468418978050749557480140561490570863222672670561670333224740366774941205775154756966220178146176826495932211625071018347116662367904144565271643962839382296846365841183816922716449145093213565773621491697750216296600988294702894672616135780082407412290407245141572509921293572498564417824648192462728141081242515557937368060407334534375505031041343849276135204800650002550145979320381262529096656028452985749940409632357464261120430788906658608331075081694305685819840435454342466823531992291020184633299514071568440473419924680714139615966262381088127620071379708065916114211379009050974548303661997403748773182460464995066585856068171786435602011732032051471406978006121642540853301794524500390363331033300546635542708943367874221841503522378598961681205792626216286604011695383355202985872726763684101299651258465614944562694385044551744802235579522176061432627229447032198243548284188163898191075133155581873331153918694651290698163307005903702407629914745179284669605842283397231681727803515407016006696644993278725961008171460010805665544753014660761135065739938118115418711156219619801547645426521677594096647949149706696868206270270851539501316417128689048723568305205888815276382704288642062573437732105461674348986921334445417664310886830239157684831811580402967090896826837465172305474370056362858115463092746925464516510273984133513657010910281476949194994499950435189784571517993725342687301201944626368258673926038408199705731159610615258187312311528550667859104534436460192955458138688399946311781894998813227482384381392671835099681326787934568971562911722186801412587900487020288497577228577193266976946154943836233886633581813958648897860585485959156151597677463025946946386914823092990366971550224135750568783726866146291398675037087623239614350660924163085778879773984559700408396674824717277898497824150428350889939066678165068034573432879841426283971167373092777809660530693545935672405527160313391569919019969238670758659656337925316245170204023519846929745934871548460773951268717891195128291657524474935594302703291045916690836372627883170932553825652737143859261343462338691008967518494599997471652093314990703053335862084063381920530317469515981358195313276926862869899515467217189627280964955022301283777539046697470072980845703974918156423638908317447528432515366378924537297849491120550568281196557761658749243240062163591883107483070960870291186885833254398911159040391542994389024769896316012018552052008338149924339688910269365032410735377312284428388845628770912345851241254155019712002653547914705372584503254924421499717441306073263374143212959927665076849783382347866609922461497866222851961627401724834259958776387371715934512007041875207008206950146847930724633077061136755314331889958107984491320000799071800322312496650195950272037840786059516227849507428937767721650530701466117803564921877111432317163816533891213284074999075265306689901009929568360208040613304282929777122133794117435118795906491851962372692117529086336671454033163787375023654167933192843485659919552102748150748840438924577510094481001144751111597655885525242720706585083674762185772271114696655624008017222810649525211350034766273323703092408831365368701649939509963798512172452568626616615571551346108013079160083456391849993000898690508916919617228369623290199970227191938645366588933619364064750742991019896772669752467079173903838179196215092700091656299831209147726840321754066554614931228499825688000408155713148984008121469592574396153019071613125958075480766277062852678844831734124333079139721415595748310304979961644300028045524212124307686193289438310883764884234652303053920833545236663181633348626578645123428499724130137115859496894388608346510882536252402648113808533947430814729860174662814844690773654634212474902995061845688361947412882270268833510930925927681250698293833359592856558144125926962256579597318133476338342324254034076916020012813108269789605260458636226956009826408695853923911032917051798769093356961224876956727758467997771145987126907277042254669889659061320048475193802209102192809853882697582704576222884799716414742283845113402238342517596636782408210309675351699261993170481480510803990250033837813251401841781944545104152914993417883420158685154260580401627038712305165091873657918794551838329340557325267429151240506262981077010687745183715029101223801478329808756468408958779170870065834006892667980637548437775648804199642385218250752507640307758798910411082088972235317218205348599579678597478018269667127902258051255675364061882768399425251078788946296657054575307895364963092097396430293375127698492219728392866306831383574697241969374983786199171319841082902868575471073039588285015595198554449840727162302848665733042319531404109268152166801094517345183510174571909556646037430584671199012452313089933887300757515789984941638266776750449795855454999979843791743252588576206079350838098038680340595093724193968439953492288597357826568882074213322623888675151537207895870706040534350323050355132751654155330884833078913086559909170492542596595578130203731228177699972055189890562102676717764337936611202051658511818505774529030989426700111838672911080898744651590208353129039505985746524997481787400654067427831376210040696208418915547482439689967470437695792665194865551610403547308183945663259188057469611679350738424691036040695280985897733336873242810779247663427840297607496765475178446272102603129050996166924916395347676006822702140124755439748789226944493224307461908007588475039112554957811009641460182901399253112248643158834019484128744077554076364501179255387901254530143857794212885104327952318012754301365568080630768219417229414208999719714592223328780067795119649132151154769711857746097000293360391909410195087597873914849964575835555286910944375942163622706520195997955978937051495487105899773318304861753571201058138811583107629599423870144282267353961411541728797606095790139465434802973447216380980582210230941897252026750836803733869568675492366302759159206087584004001011801041035709349269352991886887064300040080713174494189117816430598604267311134151625482550207647109269872901199918333616404141198373510089493407391457651226493918082446619228019293761933938876611347495834398191612358327661930168328389527932113878775288459299108908496305841244467353795568018819858755360360601057256483628071525486702619266603222299342791782958556102934260026015843531507526425455480354456591684867634376301773260062850349386279843251920226399611533140919465147186351951120873264821835163068147880106256038345163458184083025351014308301091774276316316768210515198331363268185540325069033377168570434375383448606621749184925973224562768208931267855062387961238657224581166880342338747035422314733925601462258019342969278810944811086399325263848194982579956639039260140694793346153782273500064879965348915952062275186444307171966287243284827645317183549597729993554190100616110525633885593741758375242932506609986962902777586243717299062326707445805848344993563881506487989085356231063420864163746820285220814304144231605542772632158735212134646805980537591218493286650182659440530899652895029601764151891553322734335104630860172260684228376215653992097103619834974071668935228406237538670398844865137145333455210135420159854074058101034016940810196132076856771768740965416317584073109455255937162958926204391933420931445698216882703777562533375495788168880398738366292086206381709606580850925366291329275820001192543614791102762477182233906586889653064289229317007941350040609044248173282302255473330098342379964798183462273858920235316490338532196891421547327045241327711663206803761855559692014467081827664319745700002633535104287048120541291635603053676657691278495858805341823823412055904671260736107483137317750205026890066092103457558349876827018207134995546092839089535446147015101725031743742450700872453026106694781324496991093918555006222893802087038251191280292765967731328158295918581335223315569091792556987866997816759171750710128172558944007367348387488785814483567967552652504277983886360685836740708272304227814794474099624864611054724749002156695141630430795186034105477611740933815142020436790728094052755709310562353148591209461642712566241226043790512800132734800060080942086909144531207839725562409226280558051703378092266582687897540684663764420837905114783899635260396482017884567799264873356066448684542177104006204042141283413017432938022163647525468529908931983737751696134402187937829585442519537110367949027348444824924291567375514721660186368191553148434780020668400349465526134019647365024133421683526039099555661679138934951480529338870609436144523078306084079922533991974962722387480918806863045982411247155469580745477181262777006300963929190291729827572932661266513540327405053977905929438929865274819858861566560720098240955737086931616391512492136802753239541515615027664161567234198236791498542247177341159644167481907081654779681339163680946073309063264720483536441651574969924753362956827225204927923252705663898719997884637786271448991394183257808609810867038197717733951829418990959812285081423418796956747787360489480069817188856219683142801548512750075249682472258989300366089084445379204868431349597873378874637316537499127532640830868534276790549391130032083749125232628105638465946241517098117874409218313435823800964519656655672243266228249349393958912109869169806143491281572847388566481870465433430493774891254515313210604912578007227495414575400118346034482705267821156630582318433213173596460151646158583653475546793023789017119339619045970933214364842087239423038505821127338213969161415512410620649335583519279843246853340471144398726306191955669930205015345740994628538385703075074448030360066430212210258096269789155587888829297357486178842690085902492584543241970260609642575221585167652972751193494864244965901950007051977381529405952786068751718110423981543737482376279130176521963756742206106231735945506113990206291670252662019595041563533142793708721354886114359790672082500287968624804942997195344654644238480717699206488677168185674504377226553562308348453275221406485594015712569361012138479643288795904690310438740009457043851951851271319678826701598134157148754643578358628013668269663226381453961804886780920934535890664559179825881259422321752326409066289429684952113121640275468721074879319768570695935412355491489000843093668371020856676333844951306190200983802850064391530368376058681558299074545262852050934191673181788789513992735643228302827774652957382509079882503866900773946301383147668993138578996034209070101937677315112352060085270492486125310048148343007524312582909582079166254283667690672632738740958301166103309015259248478810824353407306479377907893147063418170406417711158857092469084541751181085408798225491838553671803931468265666542271979980195842372754185874822357549617929848916496077188409987255228502595228381051743649330654178842727296343107085115394241636672230569800274977959855340973519832513170827503937531072532233493425604012314481039926630769838180165570555060079492011152852842462643388946796117436169606073461097167052426457447829076293420926270135345609986664564331575406518202212128652774582950336433055056074013560591120743983515403600334422033308072295680229080733874159681360108982527337994722764622081090369649012457755743419602355053463716503628137741960862445615685631279722530956816172866115355701465058862740803151929053504529063953814994147188621541864843446191335059300845584452124620803847783542562280922176921217923805889769501535960312374879852992068271635116075395261580172430745944567923249187404928300754583923579461337087902082342240014066351083175788264821262503524721542073076020724447561921653677953314142520044372925572480491789249325990542605613233778791226214391708924576908600828157637107279511922617600343050236610518979971090511828309551920458906584826858279500969221908336810896543847402368451399092686650855551549410388841500597603847727605656440384278361097065365508996153671641740182276485356277929748312411427794628263883943790534131921666650109568403889299045726278086497580281489088545923123086025561664947784088131367788974811606569122394892980211381069254848949946555846115284069014092351435003826164519656994166681580506327520169628840402548731027122132152313081838577234513308292592390344341227526981566096536433711894332232886198156047642265365952673036650903950806011881833819861862776846415974635031203476123949279152956115382447999734861151967364884523584721963903294346685759035226867038851760986873308113515336639831845426132281426822729165668287437324550156260616048650324806642792610236583111230175694524572533553369200971103662484398091045844361380044406268039428333378667776132856641176199989230968527392948241120062597782004122951306521979832173227482768937980316955565891617210794246965035913413725073873028592378673162652370349277727737298659540128862419278240873569986457579018743814527243297964290009798262462886316340343759685170604170520573455889633250630859089706588809325532710565011170945966043616623203883038491373587493540350225272758528286274354630951097602870023365244543306005281005645503451596857719353233828796335985323790772893631493356939658397231388033882445081594352466962908263143695795611714426738745166990662983534629857250597270505104420428542124720886162814106698519096387784932655471695300498965805336804002381577567515732585277500067545498608102853895468808137902457824196595000467626893433808303214140133405827933427230335349487295362690154232482503872784201169870852907515080577023943690493669790463283054982365204002797075564008430635414200577101557100181753042767158272788142711909846617803221195634376864624633940991291440459978145351851749575744610588147825118572797039966752371275049900335081187974845729083384264392201942627692159456862282548952446635676236829280549548572809551025636686582885681140771785574179796580417174612092819595274390409639146842314639686790019689067980407369798938247712552122490793143928279145517020934897283019316300307960744125466012965265176181713765836859125759037215415988659978571733415769537598002144778891742064292118646944437732201839379776473804860476996240724747043442683466262939502828763472471437896246300587271947250376410126117908517531252072145854811725707434612219630858194383075520575875804872587026688892015475508622584574995219535558669152589771878695548552206054086361763502475470784464830853858076873596240327558136632234886760361993368853695426116433483982348109918482180783257475394900789012107397332676511945981944497153668969860520226643239654779703051797696922620969633620539189603079879685347517016039012186933955555423856713629066252653313041797064691103097931150269880420409773837274021145543721971099543810922952723171603029696051120643924796326098643802654807720399777055500903274555867844236018475796448273303512420561805073447217959081475622126739555687934769300761979261462499948479561900103374120303982974849923806770510759836863121023815150344991666138791755734388618293844857472377977199905338017622140375124715161499093724449793611211978658985982829601396305742826577398815482518439522897370179106023976455751851040336083500085743839280345210574711177232679615513638700490264379354160773094159507533417758048835508072572302865435405861381201075657969404772879335754541507366480043821755025758253069527121204020051496476259786531580435943485823537951030168196705907129078321057820409636229563201639983993035445915163300288226052346407110650219744137595473713005687787930337372804231956241734728557393439348963379594104354168353885461334657029003551611103329953949849821597280310148444954172665861943105000222150271529881026323983445843559494838956260235316218891254995813769753097636649429682254758172488550873018812158661176454958957216990019652562289457598523889934277227062992298250512591263276923662824615766183240601936569532272109026506705872118666682610318939570759614721215468266803894419698506188134352546219436549330475948686636666100257422285670233483950078308751363396817880614887933072170852235356708224370467746561514935932178682455721308074552071597882400096917767239729610443682091493090997292733555977986111588980811460126758607828366337045463495414818604550386293467435559770888656387930387357775190126323406041250424797309625678529379005472512064958702403455477361332765110642619287868437046336184717376711950302551035222035379447739008879295102675999092476019565067192618279495575589966116765949706748757964786683004992579955685089084848889694079622634601862088354847106663576434955361455133375801669449013407891912674721614550360065667593187527738845064309598178562841387114975619905389293316736144035703260981391492615551088500403315640084817234872739373600478432663655992922156526098780969365368102627612433722640629863576797508902005750062696115165615939198625261371446220899566758705413780721002126984462599701022192724702561889029193879728402634040452699920082098262082083047573013720227318308977862941670315519833229919589127405360340463149685612500862262710015093129362428144056066116736499369530532742270507439518972456918979579189986489675906519126806581029018424570161581974221930024015550163955991520983999155458474445987863888548894093267981569642780938351347085020666613806961920687679172039411743254640626571897992477421487273689079602581389613375136678358966815152277507706155064484861224661972704427281264579638155922897743914323796482273908651217308881855696386760289656468518308502502069193650843660083361507493945863942160814628796520859656913462347782141058461526004567364341800628482511868705805315662512178542244883003827475744720958499338469286972978971089642438977902714203313087966485697743374677483625342334511680052411103475205867447251000643312186656585094572364439522143296562233666704816026418752608921662889717967916827619741183782425248039479341852141109006179682530465234995453042228960672873845252078683790083534690275009343392931166677128973643096867441907867176169476686926829396887712468410982156260380260456192912789216346217758860770497712361438701224626176848585899738776855359552976473147805296715093053871980827693803449966696879566488255998650648625005042667595829854447817173481757361293449344189782804798721472916022328791914848205962710186661674800815666586994399608689546361399450224426877441095675793959826501824250059372841845131114650037841361589326889090879229500909192097481557729713745665573815713843969802472882782262270938632630193549991484932646569676039433200351533699350831142408854375329812736190052176587470554094670159097283771584664769993498992345642966224301482420468161379215987231829462722264325403179438205444519827029023093782299998678296287946955020956765562280525336052298035643783687388356619452778967302485043064715743379131567083643734413859178667072547328578867427655236187670598022118033031342659541886826349423684354672705834433457206164914324194606790284057833448887623247713882929584247200292007411489828397607874414502672935938871032133300947774190610613935337797562371078231100232900459518398990415687570336613835644466412048469684828344744721596471867572888271224893877133419909262594822724048198058274064811990575411002077065528650041778819928454432785103549339246369947682387782197692862051768366976406347727075565995492184360595076692614388636745908197021986384940363338165003724725725779565907841786244494316890676613412967703165095364962534915198996353997367565885609613940724334074016562015992212042650959570552727648672651134198932378621520492244067173304496786167454537931953609675358923431771412927078784587750654334019876141090863266315237380547360334356555887430676908397605729948906504587016798478913633200321738015042018114893313481261593366365171552477096676594618858478372601243055452377317363152627530758957106659371893256768908665788286062856979301839676996610565792228746415677962028546671983470841565532856792380650587897580074764145179154354346379087775095174037789702903223035952580731331621096557195985901842160427629801600775616757079217317312109538178575714756663101576435323096941024904583415530438755353944783793949228978602519710930553280304576930782616175933956797390580683153675677703989243729164750084613963135129860208255461560660989350835447498193724799001560627045434574495368622756659220358804605583785837544462068625255643692315495414720318325784861927063538686661484792936061786567080691929681285229313372889387826829652061045298185077259913800470430791056503043854027996205969765565166944798907140706780410426660559900869837877139742961400005488600604849484665604998864838675858761982017768609832629035079046190615847694420456854614812598922729929176679193067032651586903111176560573187453856567330211324529833369371233423901690656444390755545783909282418311834376151511808790825680693221747944065199472092490830025414806060931169687001148858460888882554323892371366852416612047918598517656003439157015648235461778028210053284549957278455261394594284791435335217287954799371672819171241564110421299529741604531418766478348879357900385232105736820325427782056336890050897370285096018126239854525675257262307004212408808327109313294139431231212323255368788364539026845629773669467426348517825396695300371123177021109995328681554311658321917245761180345326046602382177325827555657216779659132878884785726218470196538063300101928028618614303814917622378727264073010165305068913755578452426085953258173552996195605244581826688530695436616753309385299034951868501391143522120717589889800448331557647443892954639334181826713919985293981301134370716803298186999627723628892927484802838703283843489994870322589744973362756282853176425362026739464778432076748666160990322317913295453926131511577067414503420464196478900612167735834293391137253872353808565159104878512454437065495490844900374057162195218660860099163338146435296412267068282025515726600833214543655483350103440650236440979568461950087530186491442898686942544618650663331294611017349052463002069083443702093388714972159198223201138469318311760627279767548089523573623042378820005771769969643521809925854302714487979334825267069073687913993862051322733375249589709083511040303078897704973449204544707103637111161591673829491046387650805864807064662974755806858924813852824403654318112087877659503550569369860052486052309971109606164793437678822699409773592907538607309420684992607736044962376205821407152647766857012107805851545228183582377128874591693484480571324031713854509408324344959028663453059688215431553983004879678162159782436819785220403513166281488958419329486911650756690316959623067808246318787248376351641165246174311440418108161003022821140543154252252317104170661015163442670609752603716815499775297925438511580039794193173609656318605316058214783689308255474124513659909108521549603643911712105973428012746136475045316002416144636176567679021775281669113350158773296783528731634254716051339593056751252313655878792566921844789182220674828343163520122794947311458671973152122055563471621087408850492200628730042693436718762503962295654421594337382578623895861620908871780330024247660720046340570743624132540118730975634258517997457083095197314123769775503402344571485254566349429239341276420857193574242301529317785672092806834859895727863703912833226558006168701383623697685038996434528459955795308841401735692741525143699547072501756773930735891042331437857032145113446846228397460738112394597250027553149471642085054481513521391109109843088210437378639690653104660946528489471141145004271720216316028170792646109287518182130698776963549908095316477025863404153625631502141767963669254220938163649993716232389910267455884810500182688831963257361513717438377254145901435370767847634851263784239796711156537193916938886172760643193546640051110553224204225018074279790393931479609387508180544671604155475853550017621826856532719342042690735352006388820967277047332901670534276726330271220473610507117264259664407077192605589343332397245515258417717917631134574035126595312315640546001865626271218760885490870747853265950703434614785190786999590729012360719732811294396823442274645474415908211868303447801318799658469902847961577226012773316999138312028031641037620917793141444066918016069518182059022423129614972017371502626806207750719650421399183964915974896989135979349942675095891655735905484569269905893487614256805863337985096639641072061793015338029492298266832258455938841647577701525727933958041647875915146350026433248567326573784039716596701823737311665195871111640958215134111787696243587160893935334336713692386839283997174003798226876431553749892379665571534859569192969834406443365012668036257904575066953649596891338401842741101544005499460499565041929402540851830142211304457012373659037530482397892251481731807410924303185188668760924738564961698686796361515526609494232110162142582917132753496969542453028054561278915882283539331611187745242249042162614432834258143978369490334012942592251573208684636343304615581139067025977518702453273853227476925179711196856642590691695454492137156257668332097757540611664719176322626509377365620705646072097877943785166059287025516620732083712983186947433295210086964974992642655964733543862324259299910709474364615086986749935524420544035890746926070010466675937904037132136655098959895409356495633518233723065074725121384485307840879322263484524692540995453859740162451358981162377341399933083320547133507667287117750368200555629345067608573036660878180113022219915185804741549684089846749576273846433017007194104868694206492437985262877120090177580051862593420110097703385239391802180094669154338115201151666491856229085796356026684019418567181162686848704937273838133629304072267393507203989301020264112943506301344055775814588474497914771862860493445250677047607188770269343391992714923742274248128822935674697168028606897829562166959989955342021701858880919128742537417119927205107674634152197813571494599746658610103154484198376755345524002044084165330183367462225057374770063792531026005301610938989157094568191663908022329710823501949201721572449226958075695154189978736058867139351194132070352533017144572889157732171085373285706124401605574604644464520317313674399184904180511805376628414254471061164120748659214957422920547871976232617366205255463409808074321659442662230360353985760567965151251726829414470211051676685727939998295655190351707502919646486464156241197055664048920580454549172417001405471404912712205089687389925411679570923375496576654345501838620480225290807142640034635098855859458183581298975235414240626378781702342911938720028182920809277058032278959871956657867595520083553258385710045002805923343485976211085428575277782670646183571935043121528941263646820044957894947263434298799735026066402393438086888116147802463236865185976194995050082556701227663057481688530751048135534570780594431126483876041242094284159163061354919166454488644308521701819594558274161877356068670654598363248114250828592518862562444794725663439909525936211449969702369577475323863099018072406394244414487995549534012934789007059808424672971457890811023120492198259519236199134351868885141946844743967775462781659770201455736534499541054297085595821573666277874148704467126606680417703477391754899495384317062836472241694362924176591240262799593354367987307547986018788781787701729190262450517346292213008717410006698740089201164338219297647230744714546492666076185211822624908211073748507637483086263054751061294701759395979572294907748345435324416519041062162639092197235421230482696706744654855234591318254616724912115712347066946005443052865492984947121398792596914781603392807664722623968447230872497079729453335679640016178539023981781519266243800839163245109766287432898050185260863830537504203807156062557466818398629352305124855794536956968017284379472666207130513360061388393645570394798011034278351307701791646323683831546390219962305384449108434247294544114773200947300154632548947797073861852007580137993183237052068741776810526609290793688424326144044954894701427286569643627587735589217748886475858875060947555911210406495584117459367240028443126136917438192079842605297906806383101358791559888782001982863044042666354790784043268742371329507620528021646193641844938729282875110233236811312640587021006546539825927400214303729088557290753847269413178801757728553729683408131380924336799681437292328126698185730217000189271472994380817292663862887690207684301322463693785315407631145377639265843161909628483232400879716486031484941430748788732964325112117269870480700816425472292827597614704977751667828327179138594996357909941303831730834974070729578250597423387570029435899283410465236318856825300241613193727881602862885998911148438447632850983216640613643596909611574015243807920922066816527814244346679619599379107062200155020724273448283943535077596450313083737158585862500379203429227235238416617451465358581787511901767005107942617188520059821542439182409885172175913827027879046545711666494977395873234044442075303146935894565148094979843197198512268349948515889624676217737481693819508427072116436170000317581869444740322008807892229614465913157355185557889871204718173626627071205726034860123164185919096391872910112469777088752755976434473428991967240556010759956698978826600031978250815064171937070052636827012490416771487348342117949511331970229780798362955519277825726980558962080080874597742208874113724900829388480393459693993006541003868920736488588243129094852601136273342638697718834545822985966871462264265651803466782431175249917905144866914814717895066497531799464994661742902324665298615306294256610175763049175219605501722287853503000325975857072564681827269948813495515842004086375217981751583933238514117815294888707163077839442377734053437896329385401826358155743145695185543406869228074620423553979292632362133336837393961018958193454974496699439175649017335753601844556228224150911232495524228052577025957146686791165597562371854383179501318454411604798368869882341597813484703619204056408053417881873197097690437872445392847609164434575794638808699711171582824249152887716472794953106197913380019408120908012153320449148283411758569294588112648280771032313531448004325118126909424361259531723349640781500806983126906607276409150455516277286077082373986348426894721417721528331202272136594625594827961900745348625660207774794883735445520743026862258691020020459267910859281668447311318068261814343122211342008666124177510506039060529100619054063727331152648698096774499703480583952429417640332598765044322158043951066236254034456535697646938830123989761394441710192578236593222549965651639468390977185878014426261740078283507037888707992898232245975003833586460301639189843730217339618099093935135353766155108946519066220720623136034464043766451630316868240756364767994162530330654702907313651163257393125718404265793059022936912078013505968308334024479114253335234596583541888388244070025961177997377623762903071449982736730712400839924978494708831118495754789762049565237901553472411645575715891219126322441181812950293636409646287995711021375439272622036987291423803008626484017848189694599462793233934390929903379523931887859739462204561784472922977647886818478894368820850195772874799070428603231174506546335186573025066578159558508441821600645220597366535126910362443092700881704560412936875252992513303175439579399415926400654348427353287462092988833077477362745805479030990139531432705495953664467102203596820334736005284856230022050620273742723414720824296740270042834671589765920642033541581840444444741847394849360095722923431770458060283269668437536211820794514278067106037575979506909998730695775012329122990717162616584651301313204563796820034511620503186544560933227823628045685708229805098187941485654344111993204442344541833479237238342097379971099799461701886062170948033235847477839753990123485034243270116834951094423412917242697267596823700809067982543812141798458360743749043866799249307955392259662547627347403135133253286425330903304246203893146192730641514532710513397661198666051635448990340281371233771230949038889577392822293529056755766513923214835658671903986589925210322467626624029491224755552727032120337138783984487214652533396199447411388189107441878445910929043852229046534416231302069335016718759415448560806130551537768483257930905837389310221063746916209630311255336868014005774248616817198202007134980784897772737527231859939390987330242383567137544676125326257964822206153925149035133260786436588463751808677171633504723850836901412735116458444186853526620079344887466335371027975092528475923089900878714543695934747813215388552791580318725929769127299473947043175596518053712445042692547770332732364549362672469058525960286247009053959351976254127572148440296023809514984487712475043093716123139665615051683651489952068038305410900231295865032932581182024283906047709820507763507923140169604775087595648241630280298085625476691837514119704828269471424879692927460499826512295490476894206640030320882219687702600121678481780043923117329875180792890076256980024787543833682586175946995258176484342720671591509077204009718272342681872234028781101012309880178298762692931043154667499866596295044292829659476319869041004086339406689715195321351397651226189090776076994165943519696292354735050473745614281934743741730513025281790635152750671062373813693818619602371415746858327547583411342881725102604198770725423172837453041660558815888755368900263559743310613947774245751410459539861377877609176961855258866329840414686830974809345728587051475656735902722386336925896194028119762322795057657178468936400162742953547957504272226057817652622010557732019086652873964501248989649476632860817844004011628307164868691770183316168107016385152760495723068384138486304832951679335282387674239698122767949399616611179631141008363154097704741858218854197598774903129684563146315062012570749420191025565579362476850096161328954013036338818168283045252737521938475422031757701891557976647936789610376914312574587364487132428674197250168433142149318692435388022996406563813992188247362574862527716871311793206854667498194737566105341218885685413892246559531364855693100678560289248543865008795970012953931042543140114663962236890995037452824149393824902713516870233733868931715351488247971153768411056082867572910618270843684443347439160391751332155243678404870105260780081059908774069651642463618229063199771474586635200881045385163343214953397622738765322957963864006664981166443448936296761094150133745601137031835502612917646894249243046333388199665588463774447664878501725817101023764512915581495105191418518920851855338243617000539376849685582727884819975185678039520673190375344633049738484153180439939413488433265733275675897667780583499543829884473949006397813003520118205704622037086077522431851151931831081436680311440127366483387859604055025050433064210379803878741144903272480727929483886362587060378981303560111131194597676408061184844968066200144715266747239630034789877553300780153180021210734613572436588598734692870899837443332125866133277366859077590506937649452613298097219783948805852829532320260628882827043667826122452819242659775257630811379102977218606004849441627114068148449067032349527309135106399216773264640679352892527915956523230652703963570200501166562397663283247151251432817091163378709445104694372295615255581813379998182624855813326589169088580770934809306279670603407476555625423759979637240182080802412750199795950178459926773023485321384041220635891419896681926327507981812715107405272161187508337625136168619948121677453935887181001208598026508335415874075211801801238847469502560334926072396788679645298998959950805607627761522007580803014102515852010396551692268127117468479797773327070132743817472573081824643476783374829283739574847830594410083427747450496027727925270320182703390554846782429194716413891290194962485299986275076656214194127842174195687511714262294214416462277103080699769895346595147502894757052224077536392220952610206370500792859035834989834266703408043648747249923062550629860287761618123784079338241294040395590747201020692665144337478816110995639790793566042949030356361045645522861069696627833362027791973539443200705607540731585682169585363794776451042989796539653252098882502930798483473905338477992103122316666669661603950826114991277582129738981002443339432916543721694718482775917921347694122011067456434300732206671138894783913396992950734554705806208116181908366422918470844365672939142142971487783791304419316522986472620372578744635094280961984427515904057373020940603223429046801335985569479408556775489035021675388734362124358296002239234406267642399022696811490860465937129966428177717108591404599192726062389516109430935214310912333254065151782418648070437008752085263831781188103820748160118100450534908171520632094684938254148105112588675619721287662970423178700673301610345638900253346896048907242078764126800202772414643602505193907744932357163689576628621345173926682895251314043566357057603710674115343622594039707887617520281678334572360987623056105931879625725802743612966725063938397462385878941222260649733005430997990700043633812207526559091977648119226419314452618204284157024427005960300381063343731363831946503117446669154748831810570484547570022599629435497766790166859180200830575333206954509331351828432671847345422438976461020083598132141543171839746003824658915208829032531900965382202423179339214162419753580040641510566964414278048125957451473081009970636859628901849036285707988943793689069365638767496210636792705760700294554126605536954360573800608740208161031797861889775645559380918731162981291686364222712900802208638318158965837311771470681590923103455005586113985679028356810868250535912952092604611929086323575571304616379678959230136778264270700802261677393210389523265469754846002667948303953367237916533721581678238773027979688351498215860049738170143314752962891810763365646951250640069741484051883253164453158688767043365437539525683732298604086047769681314410217755220055542629276752353208148859577331253004807508533809703408849066554770955302774131396379881095590433954013169083628860256116857974230772417753127480230588377660220933489434693008974590226670676917613080370282544703769280648498996490558685332445559392399830406907544867053810349247827056412011795678515271873615552852462646936761012576223668690632798732430803463829048420646292800799237298539414668580710652582405424189971215550896646056675811096658140909188919608679026580016149820058788805858742033300546247454582883440493810061445168435067958365509025802950096430635991685651077345622976465281548918252679673594136410965394183069888903096819082532065433907217618242723228170252763919707552002468183523832450634349682139831485159641481428385375506037971697277581310017519312564242417096243335440395530286834402568324294097467300257251754867230908823940138360507632625738024717621868097063114136080100842813444965288974656191780789762116556249193880064467842522057068509039101165973242674172145713535433317811986760734632626727589664424939649622378639261731828673061792011625403802320407481951591312387426864219793531297988935125530167105217015066914910370107991526203991344374900468384060006602886930272029395687567719906175496062403307913956660876863133363799518205206336444162212436077869687247924368289274764835940914829223822614659223215197136149460359993720376094049017937928347420556386243305365201489235746535304661325429966827349732907589862600423259155461997953531955843032444268420064869227871918713297028789653717131608438340650492627282083076183327495270529434346545166215657454710343238393586973564064162507936942796889229686119770502877075659791918803994624504018194768023525401315702549116274706436073258817021958154936362101963802360813250136638347537354363814992397119005308270242264393802348752204592924446450807928414262431931240996498892025879648043611952410962811436372597746445491977231321621565021042713144182054495090541957303383005757485484444831036592901569838597129431351750773892370962653936577083087135105429888487164382957608559024715204641752565807834051107217332052829059109056514295773404150907625206998597440201621162229155460241791450027367254185691042538566217342251841227048281950335419898139923140402667698120967744471042007840274366661314600476690579786899014851625059228461201074955769763551218506928421061501431782112371284297193344468888995143631717367301916835515995797195220772713909476517797072797584016340245440958191843506229954952758834889726960786799296780426013889414512989498386287411437756393338282499678095798391127383018143183412781436862506229343413401369719383102591099340242819874317030898864097813482440396170477746423292257499434205102114242031696591803991570773175687422173837259424237079575500514080082191428912166654925373099923636253797798181539367858849981689026581295295136503660874862142706044623813380015592099183044766287981381901161139017134709602070768907543449994967816423674898775161893701480069388113621492270489251861781040270285624168150498412183320109706482111453957809312169102433576369038246739670348444603876559895787073206882631382593218093010898935085207808376305358205704474498007457182136558053901080404933428604758795633362416022972413187455905874497162501617098848158704046367217127959403349290994883072143481964192623239904568582333989584911075738910218549016162034417267070509562255552064312803512217723632375648652926262502862253118012253221266528422081023796369122757300789108688940132500202859691533525346907354540049294307512288112825474241442912437389322459189614483170077459927079417337603819876020273119005894934223002039182077555666430063763077294777621183101586380114039170038373955350242609055005588443865592367725272398559428578799997531908331207551210868187618487002992253181327227697062490298105617463001027130271512507928218808630007078080054981275667304348003052522929778283649552426883286447269623434858532416252064515059755742963757847872269177544148484980270915111771286062316913788660048833501312393179859469955002091243995910017506246533530468404750746234478189330038887777891413774714440836456969719562887051256906744080712606033298318507380695314428059297715836476199725612809660332183362262201949568638669863276612231109089235176097144298638740483729470482826459494022943280975091553440497800572008186107332513756283783717776872646121203566593400219332057595476696679607181769126825606864138916902049565200978707246389966035416705280705685132837509289400776824165166188289781814320525910812790116949269331173360200024338506403357850772874868383394163878461711497133759523086365194656692377561811761737049398322145158102692880408737568777744605034242883467032517930257295134730284727429381144555370505842725934166781873002244202500872934782163893912018527506132740600022466276680885253115634316621625528594937587405584810322765250605411197072485485979362615909395124777318622346899841521921522055153630713710598031384541365034391120968102770131133949750425483892504187205857278429333113166271561343918995797611721466589232597258830498855794812998124493355100819941512633228740600841790586407467468068056618636642157147197350512220992460998465979915131002271186795956479089095810581842235782938223858451226904154830946195965294232444628629496084330951805996636330561063074863428093227671812422404378330403360828982085952756731896004015881681319173718056151974710390727217306382022714971552196079677466800631040476512764066967452791949744472719081130494254924085851470216015203461506806228535458274988149879322328971094511433025669661914123020175328671018725427627456619426955031617802716710667070859444986732874168512124227984065387349005674977718216795924204615239505405342784319294552214172483475616619351035807566985139270162712775337551522175677544361733568115946190340620819739290794589591908056093421429693620952006949407666024879226208462155406048944463615213991236390524293891674916817627262778975700399827108890599720267794149346933485810096252973277189535524291936737320927201548196093148243454635322410057065959908178948609835651798292900238107055004121692825811291934835425653671549029098049043107056790660861571296887449971158743140375911506987459969380616248621151616741211991581324333916290356133633474862027941992841319682538582173546769856793522222878049786156586779710467026919002319731308166635724889272088345304782334402705978000707492279884884738323914303532275532451598740365547824054096392131596746790238262803050168457681662118220899630089229462007297126514953429990870942507696857100250484679096291589430387725414878068302954544595622678888255274724249442624722090386607629351008256751788435878274211466632390708252306355401707908938074234561589239298956565580539695331305020986154281095937417881072055893783876124668367378386099137819188319980451583288624718397329590031261841005054753874003975904401977713168985075424069710514791743462091721723577314662217716645111396764256209955884744900587411774114335937780176794065592688919567497445858674422025502554867461552668865004029024396420445874834548131919496893441481874272326354000874095620358689516862898611908448457852974433410177376552246976869472227275914625880135599403319380981276543108794855833698182872701966220474200183869602711071889395645021026670953307893576310563188837354148509786313061071294333143447780435306738896965181737570424333268932003242701053436611364509528008774422884927566744549369099157847129809411435851263548213957658657233349025175882793374037006587714660110293889276605528941579691538191693000292597709230135397912649021353649910173944430051539276908681476481155177773063331925138225879961656297169810488454796950371527546978923559065165515851751503559909799215043770170591001656965872127600889852281227324176813137005488070037894007786221399498232881626443450664536278698184460142528279385479407374428411455565014356346939078090939159088380684783000476998362627149536376865169633735995637516974610598238388651777546822474228310488319617842574320421878324755215724722333400649347221662079882546032065631407160857238142434428429712276217156860288123755088262154973522150419840669998497886305485380456738536544397549116818515127673101924723870201861474106176240746432188355985764844184683977610142975372685383691753487402938065027745602802815083411712330207109921448344957895055585901665477257572840189643462816000475786042240513675305938802113467601134193036598241683819047945248963921172411924873825117045426595017524206157319259257056799552294684347796436121031362886106640011376037619253012473183955449628364398345058811968193839606453038293804817518326129726194264817365090443572121313096420678927153695923560015304029166869304011470276313054179571479073774175970372150109902674440851915295378031544054471557546461093940774138389116297138147201411233023362529450854885439561909954534626832747628212084747935458768614587441201149132326830414808225551186831454365154473649176147084216510262764208137593740448497299282031171206056843288638486470684734856663608027836940636471069321110966593097764490921496663842987460450535482830316053744764566457672111387329538137040255244202609880161100337235961720719299362103646341350054240641502692103134927684328634686085497276260623502368118923526408934616727094471345066566367227651649714406816149550672189206381228541164921476455146132805410259505184090086317198583316715954400579926637822347648963518506272408591446539964929208204918873594337742839207266030140968316669957015811279692482471046734646168738995663491021335481002005320540295448050353641423964846239820504888370116134416185563535774361678958955075507855507596907050912770431480087079558528559118269183396138995191825221008779731999322743400455074097009584102749031043414870852442527226901136105825002697880956878311397544365821253984951028206739023475646174065139540225867868231732529986637706574033534723157457211182341036102566128341829284058799966308820950836466667297980177612679386573313277401266465751839663526160445195644892437471864089292386426928893103670125497930636851257885004258515926407285324250773686649610110543448026067577809865407294842252227655858370370662389611405714452656280665071489119029272602789221272208013553250444540834487422365800492490337030224751439991577570244732868870809277225568554514671928133543130099016785743193751453216557156105848732866678637754767898690110981292620123571273596303399386728363284308753479931676168214075073869592795762912623722083817879307429274794378826607672091569437341951301573558805243985097407018518463932500284360950899972398761114376895511103776333812119054090227834222722917318171793514980736322675639108610758342273121340141757493604686954012158012814372135930702481498553196680199534031779470877453515580421563600313926890255859526085174972883961902727728792995728999817818606046121583779167797752305741181479644309099748474742480189695490171633333062068815108809939027562904004293128078493684170482923368189995805608688198094946826788137371979513822511804389355461339060849629608251850870493881932355931421436907675516537856083625825563012631636414594774227541958282469146575797965738546505380715798770536266905139642794873350501061925476043330207746401490476220074298060051701162596604897065669507773866278673829930565492119149000903443568139890801648968538010036111370740013254840509609268930470844204930772284329131526840722080193713764395904444000600655301949076462090023196157969840740987856116637113862223856567802349529729469395483213019713766883637927430306366556344983182128599311619610559733524384409597626045016499988412584340886487139836453033506264889591408484839362515514755267223748662144731660785832974498034831370515369564608944826748741291707510750808303753798870776545246448330216802781153508140140093732814949382656278430952375196278290951271116480775824068023877832297316270302648623246519904444672948756642953977012445529800578931722727341311552663173322545570174543101250485557156396121602093565638059052319361218228972002058321312078078928140006944443939026224838012994089986500170557389882468041247456504666099003357499502602700851286863399857439425985995611887914445187654498472452004940610677455487632759828863945541801455555165933598417910455555194053363549269035774414292216426297579507160647073393212638972833378966858555799379553843986573566173884992585461538419400976191023511632281883010746491452619687884540528090907577353511732924236654108084110978954696720011175152302611197688536727451111747825930690644152567853591516520033333556699899873173799552264315918824188363687613011284644460905731378603659040402814244528658505615205631286632991780336211969706201368821170538618477752604073342803556706887735143755666503626302799373818238502511275854465980310869749097541171765158034902076588270471582484676026509800057229314763061310911304853709593747372558568515792074993530429208575465209081828027602327822949878529495282861383800090147259742931768933609575917585514340650987786881875853782698542170331949588785707635157349832551180421494999372471008490440190008954591362064465525944644984325910414144848015259641284409459750813072539708387028156648635597223158361496405450661257907086220268700360911357935180373539419454578719071531427799367247096054470459582718897022431755895831525907691727835347462197541348431284113666249475491072731033692948786061347089391997452403029063849117418169170881892266298894165729667652202375345822914561660899467291310473096425534624565753577481866847363430664441728022130916901131104365053063771420197371583352425922012809467416263523791103925966087175005123990014464172921920075943745405747233888020259435878514270377817559576419361359091825257551043333797064773319002437964371733160888261636141787702298393377714735960146065582091858037346805893551149514360124252066812115331612766716924947100468429810208659602170243933811265155957535916178171546931553817633721909694088047746762243847876873211499308696960233379030040580816647161622348204811517766847788683207324174748757279634670559110508516065307800977822154016817307295072132130456143545637002848466837434112862221350416225022083957434157678598548593164414373754696835658700523975015302875368761455087116744701445521788525954672605347753929418629847908524102033859619573660329171001844774947132428286355548326017265476195087580382734207188253056749525629179296816059386359545026503641279142067005300489079929730075422869782871630266249227301690813694399812220507328739002954273097046327661045005941315418147144746715993842041634208152195405214739025686670126211327757745958772311532523471675521205674305453940761169006759250583922389419797397664165991162950904674204579332800680839447151515335676820687208992344073492034172222318801568536611735815977800662986123494320115427405558740648288273836697647878557118845298326059233885123503408078371822609966356069831510371931460854990567452682063073983028266827945678569113177584192345749161701441602342500037148697716878815025207821311434095499575861355252384130338398550782725016428992952928586109539797186925069114031301804783109797470840016650191613799379235916149870719493696199798573492756528156380248959191532552146368122047956100103076888300148859319861302303868343362246692188842511344383117915355107540418262959586016385343681012563686699058914242261604721068188748974324752119719954178678436031594910546903228740038262484524063040112668853974641788978197405176572269858290333030168101114888328617571096692226726258287284577874023661703134878920891180269531365729857909241641356251785263169283589534737632455931374056556810836213822856873028465602567119272964789506272071259153223691714602850825406239899433680292795191294731014923376594091177480196502006587146767833205381411272389853435961028420227922114129632930276382871605821952535982169491767761699421237323230176219330497286956185576931543157140070682021406509504887379553539769174445598515903777404055982983069743105921775323213003242587979132996479135175484311716432493776270601089243654152493134005395148402841105388316399040963859598274334815780345111492923076603056055453872119523803857543690158059490224746322355484069038903257194637281373626843048783357779662993085325691557248871964481684230912475161870575299826022875823359790184322032158368716154203385383792882681877891426458093735120516225714178231183561488216658437173376427330033779795497012527225706461120750175064935601588479764386756885586413923519835526828521944632621655249908500653206247177326979917034366286056458481935111044743064088906592425185048234044209159344156195226508869413326556400966036770450776629265229828618865802865535882248429345153960053111402852723525089738267739951154500718951592416781031894844332455555295771875001798680929218847433756845606764199057120833975893546942662332859785504040517065573846062206896436350509773990422931429082892295923688735428956661279763821597116029592113671856343784169909406728566404866053975029328837268276309353965408196259619208295511588077539168062613861375307101512841998959266081827969369944707842883646884869228405941205089516911660711903875031108216615932982083022980017530198935460309362130011624090816902483188490218018355007002118824950991426746825650848544557290916353241507735903806289531930670356516411783678260741755619933154713240155141483823124872501790343169998252284247373349958691114956272176845633015008603224671773854214835784757101861621086329551867713449138565345425759832262883210395823328490918373351364460193702535320350154124588799969302282470261452976054364407431653104300256152783750627991871566749592610007289456485436003722788006684343873618381824455853190831803183776978499593383580470120031482685661600197018807127632980866536535384845420023693171244057309338349534865965861206783152150255694694104211017629204688007867022640240464197414501600365576383136223738922166101160196711056684516050786943658425995869183170286234866411342674167450835843807446280015680139013909630984586551640229617195928238935738600825799670660774011332798615056034217048484571318472559053625655714345487427223346724601336965467258783537482719601301736999179256450246139705688509545474321802260174547935373127285948476173432942545424651975282015884039802988642648949372926709747582175170778964714287798530382039738200759650442582286886138903622070886280771134142691876156326390595341906605318830797649712867193672470782656440524934754899959342245867935997096320436220314863984806673668336580367585935683528744228124709092668757584944572900371187323907990801887311657379260858246646313825469066753140733562256220285985926130146711923797817467506282227163656528018175003056320791268202977672165512769005171092105118990518589067751887444325065078774621418860914570275338273799379230072083718217471251881207461342727674471100913072358058133936952453861198954303957137591032398553718020757392299167941375310410610193994781524621132218568491106562380938997252953625796225028634758650987978907538739311992043399296166135266130143876470026031204141536483963339874524438472799463649270590392242474294956643801525322227314752782643655415290426688569616483375349991468607451710968522865053115165502171707802503747595059540586830527600905267162026846289819324489210399632243011786473169109759934626284270007579181172181159173890950455722158285530870808390070702298269476824824876805009858256661462506638328305255895483941502758029856482383012343416532940311091553115207853771904758016059839030604395161045973777727474999134383533752248084753660723199571155138092710232265902548662745640942774582823195321556060541883566285058071896215801409935570282337031894105638780590042220672465175321781793483097063057405586424271263746347278735708074447972239722351296470704506870536959271451733638560760336485756270097441036771057305007023621751822685488427934729745816382583844330308241452232168260687703204126241041829112461512416924144376167428363062135850232336116587962205880001759804059595492208914288981158789567409033007158737355332474107527758436193731106636717162511808567402433746917767233501228749895432578625551522891993719007137394647993527229519819455605353756008094432404113995317346410743971007525647385444892494456019190986231477597417436952930938048985484953428491650409287414479015808272554067050531343852051255516885298362863699912863093668390727272387694014313422643192449043901449681715658314938775152044461131898369897693944774295850601813327329638698080729393414845404494027468936984839076891775486197181893825996697343164277547360137278447343808459953877782803834977277866636767954503296007330148737970608979866019921005907690459988270208648465476680240231448178975816380614959539855328802313035197443668667885823678235710107546268655128999417502704296869652111045648561443508174773545570658644076526353123319077183353829827206050122354442463757071343093888593650416892085941902768509461296410711315280338231962213295164767181696251651573658009641531856382247107498733539123603147059905148572836814006000245023648198733442967736631156459937702163424908128515661775561693027968884077083700335467135245953688784437731259889144590608102807976911307209518820656474659744863684646773880611277010054913223595916238516346954647432271231929872655143264787494379615752858912590569955448552343477542206046995022730921961063604390190104719139351703208059632878639424762540959284564104325598348258519566690047359139977559274344291640414677414264824181858731704802228926706361761168825470361149561286307847685615853171732720798909940767404844125276482594004121369158889351446389936393350553871956931478554235424233119680314965032696508656391272224825520310748737497097825897544615000575322673113971968517390408630043827563438290945578003073413682736721770718296118037683290203192826465206417849607831607915452132787165717498662236051630573657110885619659584377369538553463138701468027170842547016074466764625482591526332390113450795420604307482981242313093556093616096890329265463575643660897692327863943823273616556661006976961217968300318466567297744611033305224541990834821314520327034830772993352106041580491032175865601263691296620080696114299469315960432378282377056840283086391421879372005311693491708209009315051278916771167837317385230022064118607460500969676727006233326218115539931586670123923947778392800506946277681356524214508700017236963210811452608834356369527290070693913744722920362718940524047334975128512615308404393149634841977570947342597310650016243644911898099735257480065886721422530113543469861521720470278695081719615077227401911289405500167431123028751623516505494233169585638402350371399063541687046118593504196734651730431866737539641934659757758428980982219345763567007571392471339105256702467301759903513081367616605712060605975088459448132021967678442873881970008031607460617951872420817435760879723713890336272955136970978560040024240253818284695047683588144333950905398710558924358567608359110668901149987334517083735144944324434787038983201658449099376913572287597491610151194374579299200987009640240353334188516017777385840603578228734206582948508132441971894886470351842264501725599572513761830405791236516632739892292285084119739242112933399460579714359420005074529188463805429290812094420250172656350130314916193160099560939746114991145564473525505888311435803911272658464394463333305370201081469862508482669391846871311136872688703186985098585654264031476716054787035739999504421235978631649335348331416542106134079222393954708862996958850922928148138022704817056595553363153502188041009867574393205434812133907404708793790861088086640663353613628344139850128784939874386438292624380624711241347543303533700360131451778492817743789144719973851585507883155800144818747871237755438177667422132172817449465436579963152210831773451487001951614716940601706815908446939291099105237849708251368679087604599755915957974809952467335652283253859000785489298053023328270457082126909382786525291415417670165048862799906368824370958609060546658498034820444652752633505281844279266231658931215954137655512051061001562602732375937785019165592230138097312209951472089071325031718591472778018939146752051863848999230887025193551690488803947587309891237064866817534628525206217550719942916522354752532829283644565727477155610326932079856930849004809510496735983351993867611200023262621784051677223763402483993188935115935475933070814194886865346156832527371066316621107471383634363408138347431569910807857864764708161204467593577487795245915481561876293671975231179401154885606363812201113811197603871414566818616563306012435228689859908751484555342137083201032192670314499187952149264746581882921776572522093808029445981554777751769197731863996759956612306830325698232719903996742976731741277152483495934066339164175685615656098929702277959985265624998628025316619532606856996108201585939479986870264692880757278549283437800463396431779951970240225048559213691544224067322124751166945965197201705744977029136641237754285218439247293037901319773410200609684943332885086610870904400490769822508583769662061393174390495621745441572520800681831348718222480154001236669150499477510211175857857816296152602416361029899754460484756372626651009985178142312511938784615968787058856137083514843501671281589291454946201196039050363967161150006712490074447229111270465468294328570908695738227747943932915166223531518254183425045685796128272848921053115592003028406079634991201647285025502716573350123856077374687278689997625770023758786203214787316941828422424514942159993307187276417698539136105007592646879405704145320388047971813956390622822029505902339574053434979158941657753043525996653283717390291718470697892039197801071591914081657726342607784617424245338281527268071314304198062795889826791409294588144650338558039762329033774104509403844579795813430715422416048205632663092557295385900274793964792097793843794940526831354580579640402711507015383245967169181479260121755363254641299188883963600276230821900868996841068207514945791473835205995207396381810516864976051200743988606134110011247013908951372488932553254745786979166909025220325621607084663326950858001198085387214657989317973017354971017692727443935922695746862479900120256336400526041928615432026711236448067395495003780225468643604635771997922862614174764619820072157898251251552679455761362228549833205727110340126058692988577903236935901651489994356021391020073091489714780124265479413634091513855972132148110916412283328446076263949351005761277320298652193488817171935820814325474511882168400210560051682523791107251760467181139000098308613723581933249428749737749919125163951518728560336298108799885376888660385621527949631949659386596736363039670290760338642237092228399825104617991977123759821732841133064880520666340153485142494953473049069999365120537653484899181808327146051876614777794574018423530301878345333578181767668370864361964385354299726426630891889834374403739703743194020066193294408029906972759718007157669362107447486299768930042828666358885058225204664467942428441364540598274779104658364609223620599521055105027982761441801126236221835310884195584020563325948561109940837501192485090043004713142550154332475707667512707208576492089095529564715999843798758533458486797018280212489320274444697206721321792856551212614836997370456431827296983183223797556100334023515719198152890820455113856766854697978835198704124874596698645877658704343048378211305138073153026549046847354279390552792786146232997505732554258257995878375621533332249820836668385170141270742518221285976722497948778999360248392447466409530475071481732361900200254880994064300190299507289604291839468974062409788787036153034649868531752042421840390338577913037000371432766522421790944359906195075311660628566993208144485818565777350718975584269887454266730972586260992962664447111964985873814277058951653978025221093479867849832933578462818702256127131754676820203885471840659849924763494494812719899500004052656069240324608901445854807241979469536065880012657330084377904223751525739879658686660848049830666025839234700645697920384241346086626857808416198742609815567626680832380727669911014513187572379003509062079502069110985269024767475641823243828013052578820405511828193559782893793650684472948019779272140205075920947097182900223270436235829079056492986640062112795691953232032693858055351055081710663674896529317440942505102215044905995512696761550199545490827282448016529922319930609496194523849084863926792417393261553736844683099197992373825299614500838042925540584315000512455664130486543613689138523390647756793743809053029275566728540111244377741499890910664834272604468315148517890820048605379681957309713020391771308663648884692828505994983785039501226014385232934157325595728091481448968097432884514344874378289725748029655816974307251033573875062729911339743356342106918631878175479313634665835623518876480294391049936596107778565729376413084086098409665307006922194353701332148147969656554979049204015154993365286794812243327665061214060174922364592578949407718669097138194545468528798613068062730081366847781171348252510756201275551097217701247136552144060721957223743264754731003851124160276292950854800235484498036952326274962110687603176392930355887146707178255485831469850226683876914266140523305171123784347525221963836425674181566787618477347832578493400576840029215538195547710945746071753326731394165764355721489276944804868749756240224255253196609503450289030311698620169890250911715567485699105676296283501838011077505687201199343376844549535021926546199552945649216534867754009876681683897903979301812279544096715408919691071440729346550053255248124894662862467290916302589097395583091530400801297563262178865322574760005682394393735407456911543058591267807144802396037775306967171760060050484213411420347900789501157194704047022624840634048626772970320406639894977072138924526323095572363128804461110686838296349749956013346492499804583769639428898032188077232311918009226213063960939736022592302910436204243768390413898293994532981295597738931768124247304579702702131264116541482718210504201614600348256601589295989598812644103141349229349898251028968113700897727875083121010708067308338909336349120435783578363654569116132652313071215509318640319327638938303041765583949266716221281893806312479718548394403446132880875113736375923985351664720848114101652276910372366701284473118842866467480936344388540618463336953542088162846888033825486157537596019927400192113545047552507967586863239524417977484012003662879547427360117216569185087760591713533394296921916874251778013725226684132783259567344995630477913451976418006986891192384514431665437952193353528548682498272618466948350580610051647524294051262948688962010407415657703958197963347042520197145652796732327220157903574780590849114777806889636731385862487159991135818092973469155513252518112839185868054844255223858107896064938339478625346594985503222646475606028491619379793683069446314450296884462557559432768242588256153389784822065720411603286430115660079608105590616084288862195496307302987088732783117187509757144767952316383192658040277944999302330762575237975620598792211634645389653877542051086848427914719139135148188213946366283450600016270450380911848440804781281619570749431229670065210228628633634573175503096707996454108280870296116415610735069757751886283287915498936070208399168812952446284746536010276157621995916931643208887187394515862077082929219063993884798143109819797355514475365306824262449789050527231135110099520994066984526349918594866452526615944885960454529390752514839725793934068778779757294502973952256016776072282009385384141552688773319954680796991865930308451377071608230400798332439248422246391161442966977226672277665488039557079456864248579273450365809158973378492187360702889968911037651173610750118984039215700075586571568931597005644728878002165307961618405458037683707022740422101802517436484853927299150067365230091402607497216112417905362893683223536590273117038992683443715435788934002921326985990709186176461721914422601150942697287862882424801936681315041880802755379857570212909671965496447928578337993577763359751071593797788560000962855764864236896448387914510450596097563859869979805992381647585264695091624331039787486499556710905228107479908071464675272010632962416113103223757773197785211287713212159411698114565971426930988041734158077997517742762317843387169594616620429291344039224211481286199723328811081591271430646490579007598201594394077766093716425910658124962582971346731821908677941531026829248260212156760449441434082462841695255861843594282885816323965097854531618784721947119189427043801336753334344300296872080284352786836985005968751371404924219401873193973831216749101658957031348069618593405956514441687587534783511466062044534649287815166558685564794147308075721061253941663952817255527396284945450641329855866237432223829978622146378925958415127552912769907362365924344658704666957766455529245605942739079927970248219115235587032884486133539534342311307573140173289031971259012764435720094485224561808814219227624559774136870920523565786903472348493767372287620706819903669687319060722669192234968267114494949695243186836931317774414317217650976849385737472678255581338143415194818467253480258657888664212597605258197148641028137490685373179726272307871751050979625641947070587262719084798335149216596354295320611912341931059742468564199222842765146114475981268809972283845255378913186873266637998494279896610826409333118191620291237932743984276066304100811591208644836944200939306341664314066484920254108416565681767119944857879122939728673909050125733691645281964491110688522155827550445278237282352250480729042021685817868678388566227980452501937894273321110477255887396705135046050990701011568705445122642669110076004016014160814035613951964951572989253566114102252779057428484557756521418836020403316158030406462491066571282993720725125380578678957851705584472454279085791190532880909595758311842662462548664680513490116273765081313647779205683948351624558562112461133706086696636585732559096886285904775376975986407561645447559662512955200960481988064963644333647585569944835648758937467255181806866040597425665430732788961065822657304663028372504681693232124806385122957856910479763528356868401113862961144978659057031468648790076749057205890313246952229730406859380962210042009456717629208733422488101634551343760914943269961873991305863108421445364653403455616247419030132619171939151171433204469236926993508050941886478896716871153225252555257668400905492603999280679130229660019155864361411183104410563809859004276236626700635405154192205854688400674544633500814857265091266689375658012547541910784616206884363444147323046788380641840504669969116930923828526090872483205133955169969809308140148749352561982200603195655540064746750058313573879168719986783129258139074698733754866674079384481311251215829972285944066315942607419268941215901562499464200849577033432032015387982671800295577864714147782105938459624330051183146619419123209954453284939774326862199277350666399598474413330552616513996878679603844815223860266259631042705557855950295675974068243380878460899352732496435197792846247848309484667512843435223746347884308500354233563726731383898148694793999885263749723337540134076219346620229337432413226652770281176472087448612846962789829989527948811093608580128903301219030895035154670251611755017894645920533154990131735247165604488419307041156065268481608800655419540962988913887409195271454660237143452447462493382965176632142118186800358938551753490027023032323075307565827186334277594198651063699047171117230141020038114108303316686103847209481152869777202498985230471001365649108795532940516128815653601880312901273162269143530348958894509496620745259800257339097949199984685987537697559125673921405205482852115113711339702165231278628710207331603838508415543951906831712733148779337757254650928591197347642892387283965194175970090114634865547140966478605371689577250947006474658085783422438653708415802500394800826712894168316627060306126744788818683030094900211983097963969060184194395185881846086225038367670753335676990550502523664525948880821397120585530104446716229459955193963840772227635997555284480922327538620674783875962283664649383497983654408105712837287678882422323254317551420098946306838196555572263106305839515258726551277637025554559638471920514799709509344902560398297223682600649262921391107905123550957723651242592412568504447511137466216620070770236090234597548272027052672519182980576699379006109901548580821299546686252773716008449673236265857195212764908264594084303944748566541191927047703250829065505275333163374707840728208802563178788040984578644745057977637688628187683929060959132093922864140260037320940612816658053139934770568441087552568176072890412450642666093509013749839801320576132709112350310473748647290547894293410683248771152248915079379955087914619258850529091005078977648479069088645507493731697828228342286967170346174219145893544494707344484063870325540625304144574456926745068002746089926502434771360776327391578141368239021284819072485869956412131797150903170807620328204007384714700555010287678901213228370784009773528419868815381029978855837314918130208989363883674296272937290545826813189604849187573063415710866636297681519184873956810273502851092336269735117100057000276370422600429217573875226527751316987410208980198690893883576369656259145130431729339595679519652484193424330651233858930307890209027898156978259761413486683778675791594989623926023879117450215109111785199947345425580039928572792823114893603474993318510355867894784548518626230063819385914146360114858772315522291228367794683379169863599384589545404724948731595887630081530327575000151365635806117557212664192056992395025818323919422409350974436993758289606638175478113853174860619077204636548596350151060114942834389953772058494110189977595867720558718529945917641161503948968907871797633400528603686061630753087717115066161220221919890465122190251673624986990009787530641477952387880650445189108105916234918940373759255631210200890228339091928410749251660225552661240680051701410181585561118367300905367560673495742363251021822901496422554732003471252895195286428136443218173356695230274408360053952871403573356417098770938672577478818176685273501001709098668521876135481229769127961448117339798824309556499223365301221735585289854215593002278440819769064203752171178301984546175251344824926325365032317365370363839715919941814011918030024559566624642882148500704946860382937566913934732174010272510888075980422863778154025900661132578084239563297378019365324463138909007178153177608867294649739213331569057626451365841546131418052430005592768372669731993572339698562507724918813794812542244631223153329587856798402094337347326517513523803273328241112243785743976119805428330881987360311866633013973824065152530876112695337187298885231642608970610959917275485793795914299593979135183250084192285617348826477805614136872449751582134022024469142947840055016786720758784692979197430116355873337880947148545129121903405495465411071164396065386482527752288825019807912074260235400045561814456757118118371824269244750527663439188094582691057171380029355480083056570829037162101527794553249127095097308614138580353792104039358898475042190129982656517171567203854071429852905055833100266379340240665498513476800502930726827632726658608853293979003942581183055176414098752475153445811096368086233047869905093265339377143724819573110346858226983437447832128713737454294867373471060470413767199392590199083155446943810079170019609391824579520453226921198457696384736767321536229426255074100919561663048802151582732884894174631149906255756052954960528039605136996925153579053950317890309306188544065160158819011193946060397943273454967963791927639669036373249248185076395712336056053654381294000821512263245947952294847223330493243832919909788626861643991480927103455591892309607250260655675023188140526718451755526141597493457337099577827397972197502655986014662737662445431372644656374389079998686187220210635278443530406517492564435777020206754211700088486690993440231686417281349223476311597142731359769520581542599038411177178319710998864016414778228337960865159980017738407121310637678784202711095042068515391062129670497509381454784902232356695907676202943417121306027803010315733722766018738659757266316142843180079542878549912353121354015743134410223204420170436568705639693659719462115458817465193471432887730411216047552202073462406575803468418464581926413876296575436455392682124295112569440523639159121309110800552419125667497020094434886249039923635017965400090322705252060372757068055471042607520697336734261020169475247996605593302431774934047943263334763426053315973585160792974319360432651185768779533106160784037223878912156907506397849707564042507672945053793021784883353869788042069791397588173407637822970401112742192274330309700443955945907395678234304395977582766198735787033815901543775476223165710269687273551770359493927981598900828014323842161444483490212343054223679100500670191811702817555735518207836099967562703382637978976942442944911099491724840923084540496158052652554311281682706999841793642410167888182986587705861741073816338277818496306971467400287826204319221365477984783778452828981442973601740450294124932004679445776157292768473741102358913852953959138363108838532970949947075004632336663368292175308320052746606043210696520233612995184281142549504546160051898892180334787930096084182284184450512690696646749048154598275913972371509520440910341522743326676462046163727566017309744631955171402017588933130760908600548979436750408557823009259779642855895926892346266819824655196169100505582008555489917717538106585063534772739699781854510986873441199634264183362579136471413838340561998790274271225715556694379990255630103696416797883446924281611663708695838706330689342443326634194125504224128482825683428970017105416508995315663226758094695740420748422631678583337475338460314206637942150195890739835234194443257015838847256183002047848048731208810639573998687212957701782329052898093152833975680903471351330641528711149380354912714634402474911400335622975027597361049999613083311490195453246636911838831548231910708806024628786996482310402083600349810119553227121982807478698302827137632743999726985252164378682082060720961981776041401368983421426346123150324598722466740478685531794776203629825379150768862581857678789909533028644400418946390529148342066506321349705376962144421170213376529816447605086133190375385766401007866200853825771601180892411680017672049125039962061350296040135150386207652108699528044522363982817889849540071776747686520276250679808650315975918440351193514319801965650474563960377939551596052238822857723432811283708079714128226271738105040530227276340095827225579192039306357637332485727727308000261250326232641609466424440237514410385307098630057215276278890096346295215544289396162322203988392189451111482530804965350384591295035506717750181975350534991350691688939953661150992020705211428955293604870266582314906992576472662531229800524700202768102586927204378004772853206760594018514578366642961347147113750459649395832801621000453477900092711184465142851132704185449586167664885681602381785140819400019490448456918038963467849193051135139633445394244569317226336912641358676011333374375710118975779134188739678327423405721839334696623583830825753393097280288099354518873405352168018128833462536355345119239204952682809302405710377920871596382204009317019779090352185509029192179203364454326578018155921677146043524029911006166218233743351063306021750014528576698035355725211058372600035538400767841474209237339904036191980368734021200075893497395597091853748359194186766976895529883962799789330698336081089694380903185343198231969581966345730106515693578257844859137173091911935539791320345973598964602196254714072369065147775738183917023563387024180719780822253278715507138463411743092139087703821629024417095268862197164133474867166155786475648906225421418059261559437952724813968909051799488882036630909137978604795156723445653211449529907986350831985069790606674144839898054818523998117478053450480641953323354462039770009108619507904079713243162998501023028302904677573063167400699926915964014773377145576795858506423084368894087446611545741445836656884919712765894560405492539195345365756293140528667096803714817660112794432056196555529113596372696927639857264634284687386773223897305546710975965555581637162885385110004304564325676918056951168715168741344888558436470049698330401715503204835496873594603409786053804826013723217770854860439174654146796936399477859846229086464199418038775358207480045556519636359279866775428148552061219882968843972453784100857578523361453114849982303834674725989946229850998518313229954475485141107422703233557799437771588023090939182320959127324237954539278896268551132833495249841186922031165834773853401622350911617326686936661034401476464412272606941972373251531863579473049274526111892601588825138748503648324576596799822079254505275290144969956854958260007742641220482588035280628332966570897380170439525540098202114034370870358779036945772784542068698330293656456675568275555566104117936670981027464362822016447661409308826051691885272639809225862344392427830979220177814605664920574916345536024772789496544341137347571260385171574426575195195268557635325400633350544477318477640461082145356949275999358973369198982663348282395866923926570055608614178795510441481637842816705277265161306431357627058968799685406460019915214306989967165116487142973970877363317526989226469361447701648317265936084070055173019749062483710028156063022030035803034475102467926120591789746472621814043692988188196177635946918825294639756400876411358438161346268925188930784736335479459230592404302821222594676485011390636403007492706831209273339712785756217689954826442991415670397683311553314079537300586104220744566483823484544769289562062414702859727769041197507706933683393994604099650465342408231531157621548259343058959957202075621106335533842547533575624160557444488312940002696779300674279077501980027505015723937290955579706213408395209050520292794833549576590821813155167060750957951116764778049719701100416368453631253963057071885638587992389178577487743220764734786366692876188093633588553605339601695829505268110345519624816932343087572523855911229566111512398866509614255495282042454039314980994244105713828107585586673144182608002052309180751862748730920296840880303039302312715479298801973586488662929717683765208462702848062029203685665130738407621723684402235666413818499452582520990899786977956209621286562773481809984015357134454108092437603924647174243712093821173259200909093360328853270453386146922343739676906604579884175843529405841827952409201743287565344293318792701536546334877277504566259922119595334811546048451709829259437201371640799578774265477573851511581624448671781578761223200394187019262465025847785269643538043911724759564601477386375913213487653798818444258878060949332418107588113295893123521661721436133362474620998041828691812754831785063734340225842639171880386725352071313938396618130365233735824918052500390575965184446065703886516324541646481205174149379499476159883475137544445182412451450706323248093591187611846489388724193065172323514061217895377775489233974343660208855586544314450442030722792381653783090466437116506860875584100544645143261081173380179687742129280831763500385650114354222452324846799921820860603452804643526372810015032539512020998819674147080956906184277246908510855628861511907392423932599277640647951166653916627724948869123796531222705863056269231848708239541397932619667541927951256715191126310910734562029273625362681622350662602098271060290843369021065743126765144627373221167053921186881352699731648107985011650951024877744082243428326956381910148078150953180486936152375083977990373799902439034530117182441141234163375482708022743708268368146836292479448675663956525304165310932293643678367046498147963986163033446465508656520841655702459923650879991113064710874050869372627798700786652061752499327091664005190110241777915283994744310476012013296108336480537788780528864629378018383087994043320339109991911627450194266407939929269201191008115791123266708136311372419637475553903845017570202121830622433776012665243439896283669956862875475713044206849316468643054480540557861361401787001847042189302037602850123169943117376751006272281041363274217656281487142247627598493533386105125050961299123794207685328408354422164392059791772048881213495463701396315651836415674796591472915917086913710866973162027154353782250005971833071042356921389443284407051086709094551436026032949147266729477284149793299401115931886482479735080350181703622812972101716559885378420728261050064692247902464323360542676589027494221846634302646579768413447613803953342454573036036756001845562991662209463436525293716932544733867079137444373166806195917451828245503037165989695175143403455261036984665832626374983586403877524302310999029849389053846696474386016242463057590244404373700441277630753546623360321395272125218653178518269479349783485014130906518750714012311438759011004947909983920671328814575680562666149520673438557947794299209354199539759264422589961560596463968464103836070293808998935196937948919900508399896573225221189140779831174327001006445158045492324743100091405786170364468960132164742000253462347810776628804062633444378648400413419730905205518165149583145782715220971800579733703779184735432548102377592245744265740859962651044028778041255610946993783360024043794300742079008962169275540795735538602598074413101091595288332258500491290187702048495167383619964489906783147956266465480553221525316857960681319769102101865557097791400645306925370071189293548874713874686804732045222699172158746868854704860555526444631722006180508815372629266043516937685908069803625407042871620775206972789268639664422537276112802890871336034202880108699266077323578094535233461594149908896447990845896209053690145239795697810390219447303889508068166567705319617131282239448157264265684835769839472061734356330011275028559997762513873056204950472178268933746569252350802115459579570108052664749667247775529180924771270375087154489669347374695524510205988741444385099815861670988979238467611429623193391788161877952670284447817633449734412086364093843860751689859431337467624441118987036808754866393262424156305844695240703939947333236919043582794220548012982072573639445066005761616547335774928243508911630672132760907448986100841116414297693464131942411477903505763645355247382959493233777244874418833958839702131147500366392214545450093764317521866344749268330285470491863333031498063061237750816120018373168034668672186985984508542048985646457921214751251252752445350399307450923495857306337887400347381667113913108883823795208190229513969894023014712899202460733562858637271054985413330355863606232300310814800642116239788621900481432455179598132149968773667149826833558090877591064697997800446454569482976917715542073873000475346787691814108810484894196746511495735271985000216829122511927451621506214112136311409072181850237704651395007875218931842978517461623262510891466460097560364272028555132317724142044590345608294623136045608045746550924454805311721339906487399620574357183780449139416976094742300451766798252924863967804429374280433784890688793087392841975167900812632769421071451193718459057518213880973175902293550425516125807098758167865125144012997260810128425415988421750120615631959823370180396806845794238576818906993163589576491789448173432048762328948157287214091319828570064324893185596675679662209646112593571921608266406106372819757737108569362326844335287808401253130301804202477580333787468933937738657355877832663808164936445759388392955512235561214871365094101470283397106392411240821280837143720650500358023870997404125178351269767542681974708995113045819589750603687355277299241626151260091239966807450956368122396279281511244662168226988578407507677442496068430154347382923283568572292079425118283856980673465882544587662286902010133749312914499340175088550690635247285400468262618870989045593309639479007570072075098461223856391573716931592458410612214450357025363348183309148861813901434637502599601204646958636651327074177671947817522918440151196928045663762029054322717578953868226149954927157893135858008108987507078162349308464113883581209894264024692241624984631773168700523387962385849726457632334008896777604711960570213623923869679514639863448691618748624394806218423000936744641385153214373787746823236069759246873930256122461729482661125969059661795758715875696406437625264672320380841501991426117981454123445647088888681278667091796625743108948978751428517216691513658266984647179389973671118120520969157277736353907057633723026668148295412094896664229121645467177191241151804818927083159437699401403385198657086984642239419343015795265131040298366862094994817809348769137952641010216523068759017167062827632724760509941255019730578111910303014141269428794628962942420057119241833333775567224451973860680725958304640409900802292372522483257991164012002954622822095250445079848350301762190474044010007396177988492296038416620555489283790218825767045335238872039014196263557054212726510821228127869742587988999737227532573190422601032173316628404798110514782774247531489826660815837855922931513931453287133283148538593440464853513013024117436452058815114472031361469484897343892938303793521774923898248792502830950143039536810443693215683486126277031108195852899782816012442945063323280883733438867766247918000085531645354791004016013593210742905752386175917484331489016205375967365485133074797408385249201060291684888863474806137539455830695821238139849772303250589410613165123108856663729589036613661704581853763403366370042679189100567229976989105701829534866580267918297022289427065929265020060490698977447746373402687252775127220559492879050192026190652513430201036704449509033997815133073955478243252277479214986877850985064401755867488339714886707692267098091734482973117455838356531077873286049661412592739988714952980966565190447757310373669546319890708292362040854542096269101181800649922123926375150374052073954135654793134093553907002928159969516818278971388396073167822840179430061906658101631772290504282410997776986689964549083403089203125377962953759966878598813170888883530042683193970602209882185301080891648933555578542580768226157438774075166629943177014631688314325652673508982922475390519190973558936993643376235573522534166125069952664519564441457301557186870521246912360242842004037725526985861212244579850207835462217512937344634298509611646100999247961060840587269246905041880904905283385027974629799062496966887072893944530068617616649837117022509662794446988103900772231640644622145221079327989755227171056221991710987070209552643593509886134911535195830846808037826086726248973965983959182721220275215520681334462362278146527176877276163270901139954254983609062506525658599110449473892519102712954592013373131618856842810649032480863470642485084873998298303539670533983121040920462608371352277653892214914982448304718373669308477773495332432208148498243535176984695869451687088120343007487727340307841431132480032689065523678280199002860037534397894570867548160135189279234082673123290808758540206343074069735617233572736132847128223319084096690345020286939710284257206050264707979222596393117137716147721264863529948611407936425246813856615617238587042765385105206764692053031394528778551408370771856942538176731444182373583329003947990189497120486827192264518784583609105208484180213293305451931431755073944537917933811731755943137054930389798043349334577410304792387747894364445631738742018566963736510518692093055660161110926195996753874262375308073694795822167885850250114265960481541057112878233245751967207510868686917038816040573794369348300009765743346274910214897463584083604692001834308550783346820251875261087928517400244189714778004196548069039410406482970485573994545786321069695844973102476818089692950155328751892542881745585617987879360908638114548706619353680879466950793493264865613772744937373434981109674015948929484008072638687426358149431500219655625867705016021290581366325035156496969029923719196239989016135438899784143201489662821801617764952709638018426729424921765815643894557203167428284092773827125676186106476891855667495003570070340635820940931669172284608102594667552438743378237650790951932928897216737093860396522797728493873201080647219762471709333323089187716704346037827909092384805593962124916503975619467583337080650282747018745651998676486190624059998055431319921052163499284107234456485032764686546992190726630666743694542440513385850130035359930009462065312366943587225189806421450028059593459971052778565494307783326941644296800630569021803767502792051052883925716665540215975394535794935149535561207674948830371748799259939297906514806867042806751012030733009760689969694585193232651510334369033031380207727044938207466460866703808542863906912951198292285386998681940667190239741719921232442838733470556186758630388734310921516647733721085865889232028727379468820330756039487258027246181331743345375711813146232862582633806125660274107036032051501819977981067369420383979716732765374740641944902971778629524546950633586047114768674912830013568139004017103601115590178511226155758012806138775298891055272635775440513585443887698646897025243857723517733733280006420687970098204532477130432050749969801722574344445812496581319840232529714049387271097588276568468773492285286359421008415261137128162089172432314993381190728453193483359823373201079953429910133412529577283387345590744971410870516082698247684670185776419218129436258930777227443405174780289554617512026207413445941668048850109767459359951393687800058609089714482347766290134765663216382223580219609694162081640347013055464953717805530548873781114961716542857920241837995411382598562941428209296935737842394907785516930459613202295543681973071560052311559961535237387517675944706416056461105199218113259680865838056590601368849669432161166064665177158440699300600357577573150050523362867845951217131932338962749141528030452979348018763489635743309874334502706415874527360983777085745564428881327541169581965691552824710383227618479605279059997645935542455181177727485328689317269348356282201229889704431544428604204362093080780880052879547984016227079677952076848044581965309734902900676660696976980793119683473709081478576554436462662529487338422703428477266655966240747402805688050739485114504211206122393438090581272248908127369385839726693670853853531880552413380363086667683530148995420676771330301894271262815638882909585353199266955302077620619634838833753627853773187971529214724910929036204030146392508660327896013011831261145810102947288206696506775715785708779631154560645833045494727826931258936491618631602771802567958543231213815037092831378120966687274653145531869324062058948628531338973239544643369402718657722317790418064953739910429183962249339352032262067348328746777652824144011750325369020764994820614001833649801884463073950653498467170605375360128542031482299112244692142313036368467317513368198679443320659024776174006663797905417849274192861293005477723807054042585452575139922021697984557754245283262220843360163507092141384337496124938904947086931686458849194077651746945203286894637718361677901995167671679699654226339192185439601840721962961516102456462908693765499326077867538247344256921067535546677063985694274279727060577880993600404535478988259271424351899444697024245782017717453553616447583809333649952989640442511948660682566413965519576871386446036836677188759154776154504916678587371862719521203437481379568819660200253532462534588033564696220174482652863624198203968497954145407597501118463331807114192036921809072962570802748125464254916266690231140156462378741024794896926749372056303896511289274877170329539719466124105670068752892297411326991377281245827252181602476972620118820132799284603873363620611542104755938184648192295226973177751988713638507425196434727486020179063713926183496244726341348879223259760264444482638254369211142864167641733137319869161105536225490337071979260847179789162834710096661802146079295603357201309631946230764180713675584248183098012682213023418671183670830827293696021357094092389482962838875154438849379730024639253912307023093208362786129438557872183344861268728674119623631887319497923342770527829824704350338765207637213156567655536696892187989135532168595261921302238418671510943275790795805642267157359979181529576310826412293261974706428571622902692644239235847691602873535821601166619500744515745114750860018695270929484154974325993102963021591330081219757802382194691065418890431047045691053976393169524281198754753812941126880690060569628805073393177490757216011497563561756239672637524861973936956770241763170589431984038736305953376770850762531290427104769962479303891891725844980182317781995600729815348924634061457965642625341039158460888768890808692250123410186372858124591824146233113880494525420493792357331371750643876288695488069811163459373502429623069869992212765418311511232876917452239515940007284876086850813785275023586390030817668401235678906391952456080206828114026855427210910874462941758559169621110335312135887699130036254484538424179645862912023353563735604753045771482072382665359439695224399406214278740677076774793634170089655712054990957788023033514088615904535288389052959690263405095442073299230255638335921657400899708958106453544462177737549851462279001195322336807892444164567399506776092359640728303569058172874339955994635212502615378141759417130344214726438804790817694955223889902890713625729125953066674034756664787147587889368490526702212624789363966798412533842908526149899631823863094270747925143884860510843682329565409576064889105790836762260959637309738715683957808418722743480967416302536897409249052111549621247791852447635920013389549741713697995648886176182082845919336988602585524130752810901888811934180622116080572745024984545337352475458243041614512771883807858442348348513033329992709336206199995895153609436147737701240469994073142417719725570827486535237486989419306134585895259714590269333018863085486456873572533731305701183851163012933928416383373267565270728209825794570632802545421889896260870993342226498948491843425315955300371240485030289439389423218542484548319774708142353726464032349608834971070583544207700225252622396767317443749841598398619489688369911322323515878614519065148997934766128704797272008976604760022195742814077345145718839455053687818862090964579315311524648123832438522875024708493007669405166233978556820658071027185532722872080363169818339116945554057029688833828057860564000091300985830726292147920517580907254393192794770397408728004205698630408373084602123122842566650714405505179664256119169053483320360699390504565336267949055507784909760697994442244866829457325158773139248161022938793725529345396976511233877075871104577723326454065523141382673193965521221878507111525793830117152527906352138778809311706887305226736015294369004735391461566119629813182995198416090026143207626082582057907565400763238878037979850710780590628678456246861795428784152361882925458387334868083074861726481070399068708681490322685226637988787078746974841958495213086141093738125676119431972740156220689564237354491411527753561147814442211949989996940947585870368374083463711607298143813934458766131383163235455597527289263909944818738402959259473376955264053909413817691240342323017535215945388337058411875714464439098145623784679059707601855806011975682388977151050972852901950703372761755619891688324033524055035716290946117145723723955367956540686470358057391269323906277760308559489072177515786355508003942397669479224517569048562389894035285854921728071236092054571939670118115144311967019990388013702699385984244769026778911610612542935560956605620469318892041724239944032472922445624625395285433741784887381035378896104570808264041468167316145333278723269941456567694653576373688126498311974709158893860513646034516614121003092905991542186804848466834323738731393803476260234349896733423178642653497769465389389870354123028344167687582188216972275387685265127500683688075216167349447012843339597837136488423011217973027253433965732355767557500726301270675077904469571507387371436938227299074233844990146941269688666501259214351913497329457485295675434550491083375033931646596114409412653879017028354891113284400952347260072976442445816116481804405505662873611611328461125602920228356981568465193792867133728595991374228767072300289894444872331716963862767366989023498359567507057184292664948143129060504223586531146046476726518792296047286831714699705026643912350719201544901075325163073130592441989998959154635268668224975926698221241372601310389802359713409607639035637125630921573389563877900937467993020076901226568601624428394703098330087178197507111609184481091310205990044809630994900241686522351982375229825024986419140195240818331035606418862311179791417302721572611653072569225334712869390476916882639732936307178440348269774425212555907916826178779396594111088950522991594430228400855631872039640866446416152201200456539878478666954737462378808760070876956637623227419576788889375524590855267465188779378474661459568047830179071778286805063825789076393571048931353863198107857232984004445205263887270567818713017706238705695683026233238244463870268258745850392712774361189410286050515341913594343656504037189764355481984099996537801736522287276279751118935984861445597370627792875895724306024815056775082241835611188191214588368381061464873317870088760310790655473218676692167618048293969465245853673412901757337198313143677038250447374975892459506551426071019677099823795340573773831794052714337374229332878202747905727358538497067619445360655675316492748346889945185012419331223403210544736748860246073089811595296114849593948039043167036646883679737112970114964100677853742605039074093197457622351647077803611561731778375807165226696624345381648594696570374494203130886307585490967127598591041041507319438692056436833738608797536495910767929994593857040551308204353850542108903544056732528213181973098584198336416966418902754114645854922270053612714976505337548375327681975677834060519619706905506637938291876109008238016689334925220103217555662852080745627546878653459217678913475021472444726565337023338155724623736253783993779013888079119336606845351482145591933301297928971629528502929098328658433349882471657009745208697310397200427721991193574012173069626105990402362174503972478881689306678446579523533604921747011418196457701821488067592661055326579655442244250547201302741101082164012678895805228007340805921582055848424425769056842727885610685590924817650582068420531077488275060395286202111510841343725261124639354724727267305966615609054703767710612525143133374540024852541196886391634396645408521955341596546955953929648735729200061308648476934038447560141104024834757112502121986022104815787501833886871284652745275051181348724875778175275316298874295325442845707924536506474396424839597853470190783949568402223114812941334598433255050906793697071412190481735268517763675122462146351803049568508183257965581804947129318207049738166943665904679704076366984788226798986200675237051401712462788183484431721071566152180250400573556777125932415868232723496969307494311179013996957053292426027085897630884123544570426716862793707266930206719429081878752606086598822282201077988140428717642495252056126542202037615243133489747219841432055360231310594024275668955647102352639323040130757501824353906626556224228043711367650286594956204793199811490681961304246385588466043361068826082596166612041051832963253258166428011727603435843997521992360648231656672257359140154577692580849113051259961777542615058671665733916777268673395958544821024652669293052808581485146840866385465944545595793223428083341485654187822480419606263332526637050439013856051320617632166186984548808885411582828414040634953345927894462670050425218449352679141629950215355436582927324781771602181833622933781988036839722745215968859803010283562262338821466246080389738890741276284353679785278186179190044631122181958140545901489035840694839719895762177623794647454662338428066165386620151072150060467579905842265005268668253647721953716030697853541291134681248082248179961343004702852720214202340653882455167183888029367367715938912243298321017008173160293344815169270836489039037672452480431952766557117157860690167843877353499867098454671495310763848010135818572265938770789223721183410528723438821219131748802438373544277050374323222917868146079523131098669158513151175693447241941728013091432262760141639676763250945391754050328506713393013177989779799775989162585104206028932615527373131904083353931394285654541713363244276421206545426879943289991396467349543649081461924010147402889442715661416081674617449789282365128628841362588014397974214217203123001323630672423291983550082947519967188282006635180187701828237711654410876791374346212263379959564739390089339804514381487272177912077857725752850279483179081382549832665570732369302067581281367405545264005353024294656334092060129218955245787025747779656656396076358427741023814256292459141636109034020851192488885542488568046740665854700126976194864158857372005538948972409517018537188994110113403976074237421442404781131710971980608278533442568527709218197851111342143821499491360525587309532970375273136341257424230169170517155498510401219473653451147116651321563117679810112212473583192321173329408536632520352642875093279655518764189686449651569076723110031767317084164009232661382272018332888932296808910965369465795734215635793736384219363965100256955044139089046405807100399747059405712089444286529173049687551943109997024355999768989744551839555065509377673365063624044104326119890651942980297862646965547171306482511213888841479795463586492867891591879898279616814374691983760423745742807824103701060327227101546874867403910746167333581426777406476224944701987828817666942982102131409458132850399594524476841747432985998153416324633832178296409934968055548708774260378198101144251329940372185785056148661873427802153378700413749948020394505698388276687392703193878967071826159028179879893345743581594818690187653518587631826765293283980564160380811517093391145232879367591913071937460445091656997756753296813398150786657725631752477720677905463930130829321219203039824686916771736512821079872404826533495438520286656920298042792755619869085174276023560506584943479927047614174502582337884326882304227361883285059720209023023997577925397010113889282500208883159931977303254054247792590983638597371185517202133962129278577211533095341009939278207466527825224361870937634474594130809699959905404652746177028551543516680821042379473484717470570096790008560525626200746833911558020635493625791108936606372730706115390056224067740124959495848543653686233608313058181735282233033466444107608727029431944023210054045851231378208047596136704108114372267645798749483936519139487217685194244373939874820334695526405082059742329776196965052085524132793565184546856743140319611362447299024717860364647990991974509482226547946738621837638850194227529262500546400096299029606748081349200447817642815746426813238883473658394188004704777440292135778739642172084615985025870348737417562589141024344886527189483027470783525258994689288746589361197515054019646333273332619534330939049569197279931463204023369345771145687595980200223858097803829221152404831176348465341041453866841830348795738855949102054988746235255204471372313084863436819455036114311952154727136862575512613734528255347308955487861365958706045407922480764741639072092305024895001823218520315151148689159390724707439374236055758203474758628870371626585205491967656311072224695968107130606461510362903773742672969393017194680576438847526924490229877572355197230087658746476704749029405685495387942258566739056350660285081242653027646533669254373222436840909420867479888772964442527696952097350118481330581195505280617698380389997746425724832225319394666828924192416765180251206258161675253972350616288850450027308264278335894090307505860634271043253945764914015623486492845398539928708832526107409882055853698759896015410747486030358070416749477384578730083592003740272426401285145746995796113286556995982958972820835441370103172717098377140033290231514491945843739297825196607074400082438827294772306770804619771956634603278504137927831087099009059304705403660305452022757357044669455024780892241008621179291506178165699892741497060312870990923996395793448173949511836934046115359176835925436344885205999016687546788816757054635114837396670081858268510426159267437753408583555061862939021128510313044357014388675775901817539959691137755232351908531635055983844852079945453391235187209575161549234965199324363229525171370929510417426105509148877294432076567056110503910272461283215735856930451747678999728568296606233783762790123142267907161200004655926327481111285724692972541279276243681190622580220276886587018881829845780766562996652624593811229334912987978707947800729807633745249520181655583829963311398295740438480220082161607647785466662493949136165939244802617604146365142410057026029682248642986054128938191617130878397746158605946144307730246056120791337680502809031315055066218979090960287115002132997823656263876671561548968858727741611835070328376787811619470322568527122562332223617887512528339248204929635430359668864612852035202103250443232777709550639852055875751107507921300871103337060170944388600873305251043920036418255179968369265722805955298531826882974316770666720934890344675790169323500379913625003694358469267260282751454345188539699887204750911356151432166624215615395178301955023004405721861009481724090355160868349524548591724608695296577638196732940092510110460206907288444854716659553648429889000228295693912901745581347015292832670751382528708110990682374306191495160093474870061689457563082697803008823145065932156382782661017961775986652706396171012136170316842371906767834024318929355471919290816437326864746664491040827234281882894048126347409494970606337123962394697768196419071861585980929717175081419878822835338588905953209993669136136526127701974991389128225652613274075087430446614547918688459730602012313399250976996175968257421664558482613291933980894846536275898807775677534728152102269366197365868851217507820407342139779954368180693202337101510356871013694441630962230127201143347262219502545899730444844157330143458749181762562250337343967373724978788276424977839070686751036743029275398614633769380229271517812086161108764095589119136785887745894373783150847010575688427234804468046896641204713863830867052261283328791543757030864217767204708352994354143112710169809726361402275658068767528039214113850765575317545830561132591226990398566050489266917894288834994103192920603385539449115036903142219311590570393441307990987465519694440454281792504905338523807334950141413972570599595947296301192436005300556540650936099319244895240381595303029361104235154155796443257276858382823013033340267676511809839606430336959546416761928838866823152870500496771570624730053758616376359171422850752460520574628639888653594220906941645931710715617764756495820747778132013667072756232751205831612030653135315685126124392750183698491272903184105636597929800600818211916472665635113333491976067260917970460427005911351429467699973503555139497412857341483010866039498563510874960991983570209763466531384977165707498620123519724571792857960801170748822149872892206280227218999967951157808093325467997475527392056677854603183572960605599224541752252894852451709727708606546106687144808585831755807733068962001675430872171709579298248800010137422210641279660731865208573128668965543306001320456324785381604298132771401207534913858376192263471135245518568458761780123191160956558505177320440364875479244103992438219089452971059530556549773420800983381774847343191899361921813514402048362882498469519251747541795109505437671253185710186695274491997499298037369077353216386083885767734348580447374465615542168822614802773788818285368948366724796104844351586771659415544246080480077653031710621397457724926819997593489436608755576587795590661074151173206538220327755116958775289133311814483144334474314280976355896137515960886655640301820065925833314488285390418070771758059018661030361397872845025774028991290927927689145033078507383934057382112158161463284367342417057946380324978348603574150429346761035654301017083830037661263722800699480255352342289367690180323535186542104280408377824939864532219857770420891251427894949114868941840660360501078994007219181438381935036341574087529907189336244180993890416541421982863038269420310812545611094908452710729292039582517953464314726948150601419783472271020787496509047555543084047137405551229786304564434855108025770433701984219407951681262969214275882211214913685974430540683909236656414635033551258764195103012498773602131898420293755756779043047007952785709554100221331036994802008067389554676204167637264275715752571738456965118766788917606941101192099744245628904709677972683552716340926194683015835515608062854188626534776675326057600950318154407662291395527569252433769298215890882611718217432591989074309581389463405128866523047390785613073975393895071482186130774164973894426194467225632262762990844908986311155497185405044288105817201593732532358503069053155682507298504269475805135570792737559337478084580756500564655445942794831290113261036712571381823324052899907982409780833579525054627782708202089461438802819869434664045232883867792789730791466399295604662151234936259997937684702260343268177061012175943970051891438712894139723063066882831289321759038666276472461437334136570839260490116081180031162927671525491999831809846469490616216492263231252225478676566966866209506690334134157566390206937279432007025881205495137399356727826842681231881369312723368879119837535941026804021079763650404051505893473420007463569318524406031785709898748921855885486918531612729747376191480492332239305080737143294160114461291470008732587657831806450912015694896237375650398358680647536030480096384638762258151582280257142361998655875465261755380504637078178155813294568829370871440994482010411200588575400306158040997942540794001200391686550707618416014395368370312966927763229209100769186509416124702849426963361227881991017516594900528382831925911897538587918182427193128664058329188319669538680436481011388316341716210159999415142827433141268653465302771485178235591227648465528753644869566323560943718370817229433995510032512914587234499752906081030752719106550509890582431546752704727905169653149557521702559702879515911669749590320905966583434219616193244548727569767728752000378025930564472794590910702072741393141491677975821243109716925598908382589152887303749140393059366488067859315616550273885266820790630088902664857569232381204403469849035997693884481376799849628273351560836747643542088060334208777549124479458451340649733518782518454883091751913384277848770929841557631672452619380512675397380025708550680977608044102614406116447089807235202180487261148228140899689382926937041397573545365964575407398989085280017131940585024211119537326652989730104821112167520639648223660947668411787334391682744640931925007455606217734155438482096267209659954578730250763615987258877145477458330774986203434456250881421815635124596425359828509135263345440219322026068461525821716961441229751708351736335914410918205735084814950140689381798929104739673680709023867297070874902692061641927755705374409780465281458050416175536751142409246750649787972535248328382249112437049791220007287717210665482163628988923472754191118752556135661624323031371352065969598714105667182701752860880925988353574076750804045765018555648651179058284591551888821020402388400765024695749789189571842530159218061804457937926760368324541634083387464743068253071192045113688215121414361748071806877295674014837088046297750508887798234902662639594456749076375505570199181735985775737630536275789535331979167917428608705559006966858969216186367806108070616949254719058416595440231410901825613035102327071780884602395926343244042479924406690849966634624481102486367137486225593456513078524753118717464685823687690745911850664739459274370286657490115907856867867866278721094333138456341756690377032657859218622413501000219547988546319224701622475648375748778557340915383208405701470356056805201259237007605658339983786375837919037827735743578106293028840982150965176460341261984569749997712906174273264178821083368520317808870560110498999053011178025087703457059151386111609057669315079828389765322870756437005708268275898163923922174037142299119567757798746378655818379994606243186884576694541229485786568812339994153818682534864918451857993177369053665643914866245290523429170629809201108266035664063148214038596018221038919068370536405013879289265816588741711548822003069659209800743752678377622399802379960406686469679983960662833908412345750512883087713986391603845765208028698424568532741907121610415831547237972752678443763560102816109965592679756989026542428111396306427079814592946495789148510235165525735223883260370351723136116656256234958378745370740546566778220245718669558000421572975458939780040132494518561749174997512193296475898900992486903788449604648708108481918291233334243560008587502944186246533709671020443986563713724200763677638316094846774885897096401750328880809456026568067590236299248043523177716170435406907169941713898960114415394228178483895448343195870202658369962518290007393244612298518166696407391886739342134852069858726779723666598756006428291435228501755645095585617112596817435028835171263481094044311757255254605462560451935316393100759160047680763531611797334803580121625614482003533701184818486057139486262615207089964929597636930619908904622253739927887448434868767273074418141697584770138036506679311316052632286852895216326319167259586458464299287388494804760242537667680184993677521017607939758939331075821843523394466817831651272018278017087165926865782422021380487198914955422013911389180887114182378394371764269253080573401954322589650069527009508349233535461273428057499816942437404765670623919664450529549362673926024877801921106462270442782185603901986922192935618169621447212741532595924807627854188234855976667519905471464938744223853806582620562469334657152198694708872977371582884792095199783754417641612514022064689722516023809922462262080164627382519652290366046722974002666229276228182129834741597255759370760294760961241599658822736007866559182925136125609842409239170105728720732989638002757457501136102945501177368715752086533659230522761846388040202396930896619719662541449926399682598474614760501918470039060918742494995591400978007916632596577858752931062307546215262965134327822038858646976768515196144002610421287708799068695742322752566038996890615413584920038760618432446289146770147854671128391315612844027134690285134128912632889292572076121723162757808547963101727712694063116606044118210324196337735719415580020114235555067835439256731264654349566621174978413473854860031934938007875120742445124575960078388181114854150724475244808403895846942854569563645360354170590882021358075094855303746194060998345038596936319662551916976030601400591734993184360809869860799076829227506773109134815075423242810105885092603821441273418722973467007081753679624548976268470235037234812397881969473259448631502177639702439107724890402610830283701490518166651542696901337757731426732800229733204558944852555383792276221817764729175746385579913843955370717835367432438845661242170208908229747705114841696638904543615833122118585292977964716915741115539858632013653398578946695255953108872702448392114499425802399942127861296866602550163095192034329025743039526517514494822106629412661507949282439509875959686083669740308891864000655683870401234678333955379935652261725823683709296791309115077545333537107082087055790736401925006970895365079462830671769937816142149277971647430878866742085905303571002123147735468745567964462372415730087944059028786373072834640652423200981405777823288491787315715123671246229315617642515458158085993646315521967620693801916496070205220855596145146539491500388297603621135142865843510933072131247933244260508216773194672531326809873258690591288052001644086875630854969646251812570679779277074107285862830527369036032561664729470365821020808713424015697761496254070686165253586471025950968918750164434133657682065012243766152677541419664715686330252439184682283188450023055235411045064500640924733818663106719719965208460569903425570359934110669931299005073504019444809699885828192124131017503781586486824627704640660127018248309054817633660703884252114163595701948847716612544938379571946502120267704877445776616721586972762799854756108438143723645052989932853688338444691135209012802490626364416223207686233985963928968815305491670849307444396552323042680444976912257405884981318875733646094750628844674633014990271125570242260187961415448594613565951273229252555564610930922066466798605654270756179722843659922137448392296365164014486005142522097746588268320789541338737876570997602172383589360180438832900998473116976148789325211293913591962548856393636414319538913190911000059435615475828591748959558994742323728905774397412639925536481874923959879448887957829663665968877977867528661568343788564399247500484947040303596378841964342800280193758362376914500753203238941722043319028548070448893278331679931181797783518981032558608030569813798838530483524097318141966415292273483062470375146247483659302574510329979295432180634484366169751618602605451286896000397523073913227112603948412131189088249522718237024053939547283794093905756718920920026962384297405108204278703095114528406619201409340593159483882167320271490899056785919656573819853275164352799445314190611773351505130253456140400169292918966792378430965529353471786204612172123430575017166214195485232572922993134965613297513995269844860247403133838512856523375337635884197973781434186949394028167624376545119734801574343957433440720697168752918321578730337617206557022823708790557861788252659813711503616123659413982563711015651365692340149554088093373922276923893020408119461801825099319482436120224953266318520530428825209852102614106126039517150832584510242700298184281495325475184999521002281830290335730658732089773234996423432105459805960293915221570199086026182408030586999402004377197223219796321866194904548375474083730350039250035820034126082081891914197249350923440422637595263695018713181155303240285323339084714985927984836058124400759286754919145858130046116266547182384774320231311001247023413438369442531054315301665932321248709299461038267377343740903912336974050013997245982685231818161748747964913900564025689483519054384373366181387585391671427937785933157181428201541112067720109751008008105543231317906319953448714437067802825980841344625803375611034610550128200867610718970492888880158286225442440607925050907401916870043933611081636707164652183024568971005028252304723740644754091129265031024399502162422529599836304122819330957369433559701117810120572602736820482129304912605661380181925829073382876905607062761103683813989003664901645887588335867525642989868599228551056879954551905243018959125574351547978598494582281341302862094483522974347085875651366763355165871508365692453841377167174084931393282401407545217509600539422148436942334815387656890820614908877397695861366860964824775402003491724507120368301860780677616880902660540688275069357282068018342922503810192469076973415112694132185283751056442503014208757301904354637526311072056085005132646443474272350814262316293014291066410534643468126101961009278888676559455145881244759441350370900055278684221912095871905193848672353135649116371021919764315871853788438356976437070195649442529428302438903580509462872678082799772679191087398126153965017077986752269387041716985289498265668000566640392362458465397359959953401108667508888639625735174888667722529807607333828005169887826885592309428421602237756475710764627203727585928515630472876151284418430284377230442459848194149425701564988826391873109989218698768731959305302429505678659334980330328171676076189936053363041214726483972336626969012082193436755339710415548436435736093452205319510572471841760881328495605477485452072827252016901054571894441269603285886242088039802849389949788879749521109042207706425459309225191165041041307848068951997760919954797957775993788000224582971359343030650661061613486665514991937384404505816451512356780537151939958879317542581457583976304116110087818471991128286168413036920643150774360050037355668960137043522018722078528218665323332623906268697143122504160374606747989978032181321979356628274523782615198105166565101944258240943223336751475357532516484537905328144499174131466328844266532678701507284320180607289097107377140033923892432907628775622373400526820657288725865196488342006740106874661268377433428726338913808979032614327149739062277652480930523958368876610512723500021969588850623945715012865391870721902971994256841962680117915786334594981650355782995241571700407009365092215216081444945817032624141889686313483096511315722116453153598702162644529617228252859555543456379780421306342254121496921949856135413994504601822240429014507193692073405441068693033872120018262737359056724313673608801779475146288426555470282284660823384694397388984162586687430694977961059552963125629063877798666713365788364977129886847320038845552469992412612763822948680081934692237537540125049639787241193123137244032838339406344400790988407213400508500567310152686025159294957929579329488561332993927670389717439015984885295897911986475481342209485899588850094610092256523110098269397216086966911454239078394070676159820106848931345839127174248433244024870913615217405334654935915288084645905812545669969915352969093267844482676108681439164968008802320231176854119891057375757140517862192967882913645819431848133137856448202299157905875331772064762317142179248445036034771794894582414242347053592853335437095977712690649137568344271408619250533249264089916147859401824559015759377361628139546620875781295299354664471703367560433892785390200855280049695972422745454991386456513958770004743884394341752089011362926294621072815495299412581523731697493918186929944997108293001858774286206011189963029962288565053560947907177800952353826167741017482578504549348865947040614931842419291327790777926369221946073433577383013654650769264342862865078348089049665268649646427248079311098380441676140424263128575313166735286486304539834853274432885278641833460867897705858400797862051046845175473699857516312627494060813083260921285338432076528420564641354603172085952767526576447242171158349012168506360144724327140463405203173524463427272269009772981008898536205882535840561402256703489373946415141724727427005288045767015837126430650930384645003433691918049722212944490864581736487324887719492074267916907923783584483919127830107762224321525012563646115955701408453767734649621980811384701869920052903553646595409025238454562624516903497737214701947271133653424692835921328714436218472098859028526628960310735530898467772873787592182332741824415148759386440158276149940579489425903638794929068546355039336983170877256377786060613125807751040746138568408172231674965260304704894310244535375791134280323567553809571932545492497105270271444986810127785500617253801485741219598957305470127468949763655780664053097318858705219530448638210016888565940616046161906718506635750065717377268331111051037241683848934735865124536382057985317902757893967596132042047622368982003460207844045787890614016490863044503528632199123363974310355931568811706348255721524882676915976524039908810927195560693596391391632081632549143952695492761614328505617069588160928993639026237839496503783034731286368874213176930189774489553439132242256559546750689791778310345525852099388444195626211877897794443504108952025639778764493693159132606726151687761944840816660661860001014967980969474552391191818214901719948629405251942388703433212280674451436298444871225802257352926953435946521608933115445443780969828092926905220623579632209989004559265759004431113789259964092745419883799844881850942458821241340747099996797182670669568565005124537013964742742396468647301892938146216289592160012470922829690404124842539627989631125859815914138718957610926186692944029564664149978119297008381417675966130389185730054763141979322122464140464572791669243969145812318494418249724074699198196151574108110666145375289286779666514567916937261480920589165313787230825964921562398995462848951642248312012785688774274198455735133340336593552901468862033745573080537727486781542748761312254598946246044968350422065095433805206506657876964120109551673019478134680863672654398333392827205983917461473049725556809076371033642444606952198831903838876055162850277875762386641350091694414611146018378346435689814279816227872141989466074865944811147398381793467382586552739505197401831908228750984851481799733447212335038484936074596591850298725145679155699947760339237744673546910896694398430353891825488206516365268450857679248952299811503406487064639259304909451014542246924594565352487473116018684640537416842538241074046282166930921321764455711698628603293936961940075550399203812890584310364669354334161052865873436475102105089796315981319255343689075280885679586238232421858082737312520267604740261546726019462083473290866407103408372478894362467232059215137079804773170764230101588627415650404937356787212361564766314172366690360184458272900059330696071733282054759954284116801773305751536487298873958165409691559385840557989200092134365142809588910806999056126514006486698693530425080571893619474336506504645010416025677945533397804853269877789326445625610526856272804693983306551567340437328815627954665542122264264931642655314616103048975020029994787517208202492053467181527807879700542725378127774513393930708414137174597485784248710539265355337879032155870067815109649660379361828560487705932830512638316027833697107562047862033613623786880158211827382067068251577898913726006302891381964434304412614549191224783593407766487143603022915931018600235296365432663989979401552490392792987080275422704654952032774718236396785378771668777547003339582995584381836056863008922516547127675806795175049425062041252006144383879077673577402315460104482558071105486846085413329300294213323535001347060467887189271431199276208905813900464895181887326374112505901205465452012702024113394591627524968023165193235048569788395212086068469712952559257735841552581469649664062948355694691474912861608281902520574139638185380063739040959787987338336863206559827409997855855926247576994102993761592744875702183600153518714764759784511567911611487278309523378085404207505608777307239588894449391677954012439018309486931769012426629387328530760469251929774982425366539902536446530871152218511411018632362417588016329350636827008897004851734582043543812544884511860043754086616856785597492934955271069468303083125517291130502205965920535160785805221022785689600018925342872989128081450321892951882481270759666750873866981906946076602699088281701749753576809149750639391972541587673143024518833215013781829250616220777235674996610162452905831287013522612418317514399487727554776177620267830565730890009475748505291883212029847442389907301679644509298421413218235945883293488891478314693513554147185556606449631728673354473973672767855172800684052960594596880699061549114338545218655017230734060618231311181673055096190509102828135072798538077870106175481787970958035251701303862170991398055255818676212525723353542480490122545740513606033244925443330427315314263382807805568449117261328582807477621266373168957688621079296189076985407132254510447579131119071553487979453398601557734333836438650045952141624673244897093334492043748147002898591892470109708028637244494208091719803077855910408258903395043874513096437912231167332820723044603459507056370896016141818626634558478003345272395809141631043740393363118131187410524751220228140621460659228320280061306489718989313045820171450641447519168381060388965992341850561422890490201341684569826638613025630975903100993421752294138052922245334248846605947833415582397671219544262921262794085251734991241974435507081437583855632511260839465129526225484053319070217014256794203405382455513195630065436589260895313235997304796204700143408908094969812532895991167666342227695048883236030488310094244495103671915793726478407528122496801138512658318299351299494103946457184194511622777207782650862441522475405276116481846277763303744560599368540505773824963075113116366749944989062679302395582225911330697729297203957739904260647878854634618744926668988850699500864788822353125928454398116844879237417598587101216974093535431843635812869526188615570304092229689342673936638317254384259105249578709091231816318098059883587571666961343578495048308160732220367923280527576904739821933709745918243751870563119867385322562615473996679232014027892431491752109003520470777833937706873529559673455672449058476937075735737126224776296452783074247462051879189414213530523816711203136924853127086353617078757138316592080242068397715496890811867786978359522009338778252130142517746541206858333304381718063585759071953404652639649724863295762693905137567756348468176703384318158828682659600520578492087213392656214903152585214668970957326097277512545369516995380005734723122092386232316164813739665309262740815848178969877939926598084296504718294250500234140629254517979523155642095265331525272323995403146421823270651574228855586796937704567267552308459853236741145504132270702182115375106743599505228719627277688538598834618197187508765853069289767006960645571806928908423207774513595953226617518109649833398673432155477633212562515930098723104532898400170073300960067311079169897794808116248537649999025495100568901746384060945459289176496211402149899783225531870062402084821936840536915521098410517641941478680191041461600099424147408190269548615018484932688655567502323270414612233939962442678526173521845890488916876233121640786566599120040589230743621962561292421699218217105212583065860528345820390593466573688849590487205902385629935640716144100406591481230821666910241031462023786793146689457813699446507076475947145350245521316084105184048147696071940630955229410585476104876666293816802174066122689075675999222175952015726143278650729712222053434629915944676796296186565618662103630141425690921653697459396834109786175126076923352451978555483699810852868771848751324417591102218687405822704211280510071869610836693336811507789763215252576814699692969243510319631658931364572488450675963231662525788912767403161840530405976233521154405639297562868948369046157866454335443606146270692238320216330362868216710766465602576533716254758895131321108149439740750798173761997195672387574259807306358593602126417646817046176949960655057848552422247421933665663433017915984305921422923823376197273785859450186394239189961217526276711014244184680301377607702515949679832944821797573176334299538664093662470210136368304953795308826532795397830361689390382750871504692714887127451352716327174437687561599012298698244102517006175119488521141448994657617845218626599594087055891804946599468087019144790183035796219006552620243381741127334211344534216017574039422153499985689056026896626639821347153592494931753591481979791731040223175589049362451172618922226283160992605492720191386019310033444037809056555549045817606969492673043281032553131821267972715867391916979232901531937371539138098273094918308768451255193733544964595915404779178486711311114983253756189293605106111939075345982813614820042560671119861666513095703203635376507759117669184320998575947920247360805763247073412040155829549079627570569339064076214107329923043552388091302212377354597191925846330592373050822123044213212508204844293948439599324167992745183019095202979347131223725676045926661451729565068289000777618974998010394177946961189044481052642820328641873359140380926054337625222287835334032963456535852456162205846761295843404727123400551648526586687153769294219056543249402013104095823508409015593300406846173295968159527727553045445693002958112921383284134734781808801319436462527506030351140413975735380994260092707847573025519514606990006705619627123460547023552691927498096477402114350279842815102787860626808227020257986177220384594397431143077872615499521530283093280712914923873363514335414755671494456954962459562870538794676889678753818791401243249404845370208180135707631294369154143647161370201772583343182280907580100475696947814825028124443720016180900094755278097155829032367393925046316002618884214791929194322778456735967502144607198834587277993620866005758524904143456174183205987016106411789297872425428500370678219791712602706608468743640398094972699125697969319201238231229891689126969835255817455938112030621025743715825101703107242137055095264772589943615419756212542827146464253559824312109909635181045002881346886315376584345799978463046075600735598813417825423090002681087357031998726231611969815839532488801890656672881626360250570531588841395529826743118350487803625784963329162141670986645034900985419241427512890822735607138251268880127498342927795991887633542990871356016105764449154649912057078126511805433769273012349031432990651213046324994897194715572068166135790724344841090548410030429073741281683845619322905129168600477584964500038785345845360821516472337654757319407158332856373394080688433523246492095942043962928729957376175051504033644559859431007029353807990952122209109150579529282797864977441496030737520752294701054808983334058198345745917842968540225318389030630525192625122387738741081321523660065153745704145269008145842436489499606897910073211611583388445215393654997828742890209036881297372395460198518735825184175820374259925091044661161397512264956787392066065257223226905452967823315636477412522857495932911870288542901642168851735805376154244170290850691686973299978261682410968356528502676319911250631350403931851159830526605195848214122060066099650282314448257264974420280301151837841695966727674711124426210186025038447004099605434365306863909193643908894466205445759982337639277567033488754588081508278337372457853384789976700136721562935902639584634600748174144869013103392712680980364728685647292709268779518995092736059620355946856630332731508855926059926033746357494800554765222602452155236725574832832505425215188425691449690608109173648947360282430528457110714998283638901921727674212449118579324895007129062423657809314101229205571905137435980960733427576459430497339809623408041139598383266105553400405703169775242195040807992863689232825016035105496638166801903446312043284169889799623566623365143951724504730310173667797371650741098109169681170796364294991368287612442714900972322910759309719738242727232339578997770966004318941960263509170410637215490066936046409570715370712070083850803662067875681753442266876741929745494840261817974753805329540022345774885289615167178663017132266391878187381866754315970121373853614562944659618205076544073693797134064831685906524706108029473514645030131562057495422487361170273239208795793346123141566925008112571239009612351714555057057768431389413396363023403244730691399164398407902947506553503203242206436928990104509174991350109412131409218764356362451447071060824283211947676947863972608072243653468501605551600492333828450647779638734625458631687402858400713075374117271163191167280868348651106528020997327892048447672682833969991702367708889636356589092093361964450956019877463545271716922609498220768542731185691605814725573794115694648823489264081006720069000983613525377933591022367553016207998938070483367955544396392042491270770447603779514142269010310303531573992299040774521640934724017572169962772473108037583229599070695668006640902088008741871157638065869609803631811175619025068497038831071791106724124607220047968482353822027776926296463582543249488416685614498087688060510399064472007374476828146207979788358115393669218510081885695434370824212260056024045741736760516470277387306359191650961023833128502602775280471122542780075286188025050860687120122130432417699390463153578985096326897224525393049319311328575372765039752487828163191851449952787864927891239274426842271194910156146816741284378553029155523489104235966768001155650676928871805525491085480821886047252589633320564046676875801294237934914253439933937402500890146040961179270678360162657922721198307109082788400257710246031268245565719673146214238157246430175992290413423392985789980940528261106886832581070777837263649765685224800127927550452719441595365647912122274163955206420485244073126881138799161327619794531246209438558192326489193884740330734411602104685727866006011384738770391398212075373244468684768448129383336833659091091008632394286641970202750211080502206214703263845958025812982201085381650880104581404958020364942028429771165373137175776184049701253673595396979742406353707698165029505792387762336730678468588588821520434229572466735342503914317475891093775394019602330608324223866571044250889453148797424963186385619419034662515757775099717083403747545760864072980442479567789113674116520836700175882040583026150848773877147631062379675291394436685798279414021141179787085833242232982203908980754435877563324536151842741707626875424831614470697509017758856097756431470221955120282159836281085952248106618309401009747260153518215971960003239918887974879302817003151107271338136918206198922002848981004805471410312150942927386106341419000937335148445418675205179463228681377904107986125952578481756867740845622435356872371028723542264829165702814923784210767794278508639886704224218408006424994012826366757068759505550591217748256020910801482014382538937885214365821998509387547048696308985623337773249565029039695586448696450426036661916974564474388957901381480833069749597075296632437549347670389989903751030237199892105332768091332004388786215924523144447802524211859707070122910818739542882519737002375534074498757993726655531878619760242485153779821413731744999586279938955739985105162064215950981968080247524129646789907062888198623547908145678727125731184979229110599942878718860070830920572816795621456714894341601396589608029312494976899603277492090083539143728895617256476471169305379623820230258040130089736437417414669475735909707436537158716991959156539085485250750925575445721475111351196819935007262688273084234203911261222100935334042770413245301524464952214100032160750808824856256647060736035014489891988196773532647768901635607697750985719340390612930067847635192012079851983255876835383949481702531871574004350322453737152177658805397824520755915837897779605779672655153232464083323234780782280633360255029002501811212372762041204317596957930978361556686146632422268380640036951722504413017108409317131657159000395972202979686370119188663445025111728618892305683222586168910116215217643565426978956853204237885266724187572547125135721362433159926174096681161308107917889257360518076185920879387479976661568688638089055068743852658381831682530757848703355164934164125635489130237149002110494422097703774896869581811716636389226871517198592090049788750375832634300282598427332537393421311803043895169086611093084392448300026441112424675081761362678635323234063216496502767877959949094268475622937251106077832512122911141039336004149602511030441327063238235338940228910900926250293130689536510682431746998921591607293661276533591671586200398633559496129497872308890060184001999806263421969395384442081990138572243318209462715546851806360588856100794456882007689495495972317639308015973745013769372983545360526606141861714587779196826948906986792956404104254995772747059861353768690940358208891575895377278607977304906090001416622567438293069353143398739345102558961175831415819251653617106300775622229243640212844490050310969997981503113915750081858366158902964783182093631494247460102085131891388386868558186329705896001066343384053075849438965358968744993853056679167053838771555636066786804266344756674120851684723375706823737282669912119108389151660345899268477770299718732409069950951545278006816190401718348738474348881478321621537273932677740282195566973481548658379464401325707850077638341263241958291940018771339016210906585014406808264541188642204395708718919338019632018021955337112337939527741488446650543583810663952914265536527019905864042957610947620324744697356685207259004095588068950580653520307310429768900980182225860341762918343974295268085088025978068665664525233283976875455074952089080129167507925129834246462833115071134574066991509034451251799392338981859084076476421936326875111753351953747526398723834518671246619491053960588414775156192615548230104205673537934601451079088472157357157245168441134013637472817103265676627076985428531741996273409738547946846891789989093922280973245050639485555795310135566020420609215689115600000855005355774526626977204836891091365153285725937370487983208317354246861909842477241136130648422394046318866219425973777563166627646884662186979863077459870824110652193930863480496330015839943274694968396183315599717692933043393872691214909381459593886122290958402337997546548640650413697091995938139959171149363142702358184094265170659469952011352902666360726453095581219405677165754690869292439068561724946226542571803945177255467651889223798940447795205827825086281773036133198082853257588140990790771013817641018403607009579860070021937737847320169515127693450670324366196657046130252160877766419688960001765920756745165986961048058741988503920013527875763299550743521112703074776448363603239889330873014925006605399595424577056030380986705661022896599086796397907068858659705500372554019456346421803917915972533297945018327243001055549577156101127593193512339442467741671233297693744181678610545608386416711210962533012495478080123431152308425675473645878795735411096138591746694918147599158711433460408505669729923055805402083085558968153001215695770194542702174782546790051971458099025518896480241999848989142417889327474611230791687262391775871065165054140018023491758105480166016952631804987206162423498589960328729129512419967057010116372572673632688587335706903442416766757663871600395393016835388541934225570996209692240294837110639587528228661169637418074055674680266753922591010759993964196045572583159681716138668832114923476795989551680754100158636678505995308565597880559811067378104221531855259640878839695166621068996553425470312070681170251763973379483928474756498970814694076084398226191148436330388976749364518859648734090407094945808333959915860196202263147472218154901538895990108546080641070554957986132757551707390307676978389036260754107669684271106880746665943224347553796473563685975364733406702602896648766455915594587640110650428546548779959854969250341972739961376709722534194243982877386652260449886044294677671361675154678700429098762949924549395114581793614361117062480838990641016789891447593663586109032999759702664152000261409978659975542851298535434880980231437720505390023073578819289735379314504828854020949032093783138452802736420636189255202264939820878411131355475724777513215792797141185388147299491985673094025768738203050898244416240513271952368589275408825458871111641720712482202536463324001130030046602299136021247533668787605681978591660426633520210019660823066832284935249948877107611279337517683486764749748466750584215980642041459510388394690547531521315366890927265011941817742689508695564936651149842239302706483371826373242296637517454285567497606425979174335648754923735263337832609258117757148295923591960760818955115393483946448686146802757670739710850406275853628521701037145749843032039906112832511601546793457178486456121572975408806672379856059918585895635634902017670634601363321450994938675056967540511153582523336528293399191140035243782895959553783321845652743307550910658620660260855763106340827361506539340298181880020111896366222646054646562250646138417599100372276048601870224881870957996906128614118843809383645051973963344873255876120245419489209607785303290568310804293650317696754010842022008131754338305305389054299671736694216190455981142414983291394634577126057677339417030664884886408776878454091747011990216313906558713003262513892410951561527161003104588388388659512849960210636842108150896052759803297305071344374782887956284036442473646828551090981243208624251008804219018987852892763577222504122304788613961889185093858083756280249745200831902615339810851465265956101359040967344297985451749867206186816628233812661660160447083778689627707645152591907526085269496692209391770599849942859054502991544380409847126331231241964089570016932063801792318907809172259707010308186816523380590862939263055786988048290179900347805057787589063935262582035187862439030489643594134033864115375246955297738120644767508625918543233939740026811548779949401568520570691992682044978148620639262280223761006439422307050967705251158923310961477925092408671825282631147724133177460424569184794128212060979297777977977870832340269492122330983817392686344104582200509951621932899859089830823847910203044023449061800769247041513236161888251393554529043981861076877930260190433955991104841199281476157136610532267581714589506395893982454484630243968116743042020091325214650852416101663915530516031073551399121514239658076144316679889308839970593098474546522037424772151905211852385484857297314407955715171261532299255018667836119777661428456357124534494105504217769630552736804347873694553253792186912250845158766991631238068843312211646080220118153501969371515193965781868711367219132805514474470728402069938554753634789788065944812604005160388435375357545372906478818009943160598335191635355830157215231180425948758166448672842869719166358680154664987383304938229590427542464823761755332189854457032456809081688721776634866978737316392494359555318750241497471911099697799700135249647257459205940675787306743240735252772288346446302457233756881774446984666903583311933596310557096162517867701924610684434172626651229923900254106618328634251252391452919201790203977639114013032348303748658237382232197364879791026316388072026426049343700131308789597845827534606565870650954327572432420058638557970504554830918730256548601243709698221653785301772509007143499405049348108906026094885807569802494218046310369828801352374588104766770231119871771507576700900132382683634381327471464567443915453239383422529986758725846100143446712593876597669305053379138202007608885980931480783991245489490663641871458159892869368736243270425176349774225194236109291513294891451822912256617578748161439747842070296751685285764660544551519139356093745274443120940604015931302031668939594791924405651448843633441452649958470462207815412126946799504018384214185189827789328175281134898618494390486780748877084474586805124009259528091862665207144150505385848419023179301228519804142317129989970326019219028601203533444936836239587252282006953721570037194296239277219512228446299372167836238497471794707966892881390298811210002131358419372621849211793040056383944297906767923041133939632904920573511322249734049041846013254357461390621803916131617554424827889040975726986369346517250624275848544312779799632506842894386106053033495543525204995165092105700918708222638196476109230262423167399726016274107435942144940409571856915483385083410602424960021573493324991022413771099393496064095762730814305079962446677254803090949835002462222278252328014287592059009436015378969121656788315693291358378926292287632571734350751052776580170637980595760677674486664826747376197244924317743356096597011620013312207504443175215489586404808113406534348450944342741131850507202483936844913837538918848588020566806706776025943460300288783677318930079866221522189015796649522594239683201172746278783331237084443201712671290248571214942740810345819835247206922281985820260521726837355506155364126689102284561327388248351052679874531099192787661559674839359418853133465527175686687890738089394862762590745914292390885859561200249696677090846290071041297572579442197229620050835363983455614806400307875102421602578185210130254123453576787297025430510294612955985518342296851365321760638326107744861876144237481635726371043231627819875738481429931003161643058223928675429289131339860415764579160186080671405826987164453413174812874104830302022137412199790402888942747737519064069463225244835518025548461191666971348660514248110182423486947858328143380686126285614428095905185810440330338173783380545279569966588480952622670862208342433932623484760833879608208389295211764937358242962115840877007523757153541832700949734311605245299580443241570595108596374738203494133799683472823548594730022823185754063041604753303700395232940468041249436175602360172707611896157691026667174192605576821271324302365040377287725293207435720701540449811417701855829453397852451177419209056737788132833423656608674376200033391659148803713989433486281528305759572318938434968037818205136586538800904866319937318619840659862851312451287204610563976146751916350716338606474245984137995766975073953144739955306591532041539732034751522338562834799381899548714977925202781435977826796255736475496948507603649373954167862717528379972487007531436373160398319378148831024145845954883034693783571791410266718444850817930050062869162281822485307973075950155052891752317296850718433622265142266895311701892736183928862570965979684302735761138653431040131267952608215860417133460197486733029689459728185280976408471577757970073837735467104766085560108181053101754666370068403409929410145355704493453224600725771560312616373240411142850306352811135514853892037288071456488231735167145930235698520991490455114194173444695974039022290268608586601785954637675732619712157698240834536644450631753905937759233986584127307705307722685563201703662860014423944267876912780955547683317513983667794764188469155101010562863513926949720260398478613107680959083452735282024775623328169830967083224356066133780890264517206505178196406324835168660647885312551029148749429328473209179684320850042412110076985198770989208438683309922662755954476671397102488663776864722430856819213913158262828023075867997894848739568906323291777637480712209739359642964231166653812962769522867840555235027073517957813574744444221937188762739295831365381909933195051442329802036479766264420592500272599854207615522704713505418342852497354549527017569554845490005384577657435484484570945064387823454802166190068743660961549169656780713496405366667914401215356803909955437891866126600596135202505726712225351377640534459719235441453803894242837579313511614057457077855575106389996940378343437672442396905833558480842012489484010043820586221827801936375453405188460388734433206145232134132631595575860687094395933924640452068513559381578701237710161664650459054004742726685354608257741781924592110183055500200371874422503869981742187159661115027018340258174656643322777143162105114545412198035414820742055529303603725340063220122825066841156264256787638000250955929772192844607820568564201230401998133846561571325358223949991596042857924193367114759733357654623708013152363852441908813940915809837746592388549723151369094240593443912323075471540937233162290331327339681813019246320943951838619334671288406159101328866671513458054597496980424124872426897112260347271210629279179887012690123515360406755137795503095275600278938527746119796285575584874861236022433814830363012406956605027989900377838554144104535057012289446663030219542219856574582467595984518996712275389094970237118370683011177800075390834002690724458327860766903623726274306160761756682737901229899696568167823049674066069153885176568433012130707669256261429511518594332503906939803012873821341746556286887904207586282490173034938055510873559851368946163257299420212491029761098571596312827970269716314424189332872754616699820714869386093444402653002236623541250829360181861987386366535451777633681898453299178123519727312840569817232355782774362640603743492803010698350383021399841271249373713989124828048183172928650810471122000855006954597299300715249334092118388943806732560699885498123106989804324599345181181688954831915352779310992378315738422986061429296752766114287806786738353784177245444652738515144034081144847333912236284934379915834864237739976335079712045029593724931654413402138195558942500177154670153214201654857036512178999150648176027030464857745285978563800113402763062982026766997566507190901439982504950743044932928871758603958964027352684622719867258114485326419269486211744250325223489144984953840871261904442200921028000132453445222567350797858301171453220655943399413659744246066147461593211553602830316897202979032033551724395883815997238591189979879417040317695233713451620888374100723441336469966281518970838948261470736449868809480948975063106445064087528658847955622382389928041033635297715449868958440903981137213429471461275705337343479327440506471260059185520025800124691950838223171754118651242305845467844357634985079707695452103925290004556431409777830530618434893000480301119903130789305470194514744622810853989774365535104569443616361755070572884355337160639800364218913609541705700169597121311297088384065365718993442396708709416449774205890214596387802187184608210680824135621951076521968004183991073662614036038217397624289708905789525409135519110027288718990704718160945559334362725173288535438129440507582627886787736266600544552108969766103187969866795509614945607602931376037231230780755775108431438253354932825125829591212587974693261970819452108910913736147074600660784278117186928648566548075856317155067086798741208798491318505095213578730951975769779805964716621818305221113058993779896664940221073186364051062870523771809368165177989372863064304688187012482570893913546974017824612073300223055279437978972675566255063169968503506192319615058480105071078562234320142849269235902556473216098679193318809195115714973023453241534202929937941790963669493408189991109447468414774734886565696618863989702770308375018005356669080077133321310207760634594480087100308174956137038105508091515662374499432533825814262037280680485185104277078228654246719958006345003656047264266281154844850952290783006827610310122134877092710078031187485106780033864969845224087652026129995522268951589669541625824201294330258219694237997247432721173506819264155321029776725795863341651773932163724561056115054977567915457950642371744615160680039493099338413928807867982552546177427122142544644388644121622927274136158553434207558989150193636102767333722518215025846263552438032233092667487343770710402205356231625395920056469076304656087685500386064384664554902461794714730620735209323170549377156315617717372670185591465852337460603498633336662883432631380929414437025563515087705594565427329757983073838769344364694900112645803666436627927139687688077184056767807494433725312042522014290467107482103013157039427553144585669126226309353013073338673512973600942044191571003717759503897975963817906322494669034766210710368746753753068544112084553737946431151420988310243315863573284239473785597245248161622150964118898273986192806755817295389611914745756591379185025435247881768804797804152365633504670881059430137716800953697108853854052806158159394901624497746760245464208246311605258328066977886107873816884797525096537814147614183311437130208630131088375366863790057963813988277336597327740449603568804986314784168819803757009294068080247139188813495900392692093332003682206051789282324258752226054285576831464929112788106703952361132605626763955196042087245335383948487848085725977728684413550424245687591320446369987439851197679073580416765923713859133104569696383243560391553703662505223905367632183413858706700116023130074282358902264882343874278493043319166991224843150689303055957190197664531966142229735601002839074642737421144061329100913793225578826225584025801095606913847665661070788544476733949435090049787850983814841806599572116055840026432479249873755710834269217351829322827377383438587097479811699887986963582684368186117760364105676424131751982956936495069983816155932750595995974973387723048824831981738664074351931015643798362481178636811099265961207052682946798148178672034179130269762437955028670551230472969774034757758621720271000155018270349977198082825608503212531069791612361217768945593441349024938454642110733600995678762990614128042895107221611431071317372818413206847231579662920759893793228476425281666899745772136423959907796215556757115088286489641364473528200435697961507938057035459113108236162234807238630911231877781872845738517709106226137048920788138159084041317054021635971346913180324324328007324813584356544075468693911478418675187963995217503779493268739924417586221267592983363585508332993345901551498278373298011086838678202642174221059347441999354365254764115625418016410901564218370964563412220838687240734979132141020173941773143772174563007960087525657427919661905088313209803875906462087778085156476572340773676273845496019769461082900258256093431341744389359307954041952866553967020925296131055887794590657201364576849770193214323593975935491006594779889158101217282978541202555790552727471691156819960944479291205140066538122531100369335762904407539571453844919117715142852986116940353727315091324461204363546274936858218086289623726197221357583130661777569523455944408319371895863937742143717242688244589385463410124424804776030262088286301168211427545563967498824002249644758489984628051384136810539745963006561626718274191176548893085384208729088330266431606733715510650386083471205393202424087863515565429609617712916999295291746041082793156706528463808074251902465414483259605737476489753983805397972163392643712032680425043779172160793424246930081661782395049358820156189218286516722469499568845685825734343479302895874321926976967811016971754024152437753058452899986700731053456404444874548987818139756984854181168514511005645542754763957949266869350650543048370789878301026227968990283616205773335059998767235281019232373852998861146704722527107385776855752687348045405453177937891962859051088701117468474723605230179782175391197360233326857929211956226278198992241745311707095036832365655150836950774127421108757010812744831436308787171654600753762692631973954471013885724038150337447461491109781821837585558286686614423806546548065474660367277192800094546787365146518263544346318751133950308977145375250635490472849034927760123746030528724786102633717860006910668983518247068096305519133636651820374454714695949612972559925666928529158509975313549853981170221819930850461919920445399316502956318384418977263078043687093289537992570812391551438935460891349314806579719827369348314985890239920144707285588779042023725608750529838316929618499906114034237135831295920284897638020938109111693867763438265326158809816251427157900184650150239447744647855805727029471308822348185291577450172733647015475772808134254328446330501691141933922486277059032014473623175380060176443940886239050153526275969305007285028477297011825167973746975153100431817823196470327751432706745003849885997263520514326863422595698458452479855576720620612259812568080343766416522160109139139245969797456574457943308026896628712537934980962244146077411651512594510345153564100404975162884898556312183360057289926087877617256142289355138205528614776887430588118997565990940124529126575448817637674473102033204977353663552829486113937569639896126339907935908306112380178654334812672057884704752737738674706907857192135579733493242231254284549199162189861977361076666029297825402336043606173016495759384917801335381572886412235327062476015483849356757756401209877173004151471196916045658155142523774287480926353664390747223234029930389922056361657046902657770347531777315351062950483717667264331055711920221791041401050554118878319952755620778095653188351994775779220861706039491391168293155503185121522383602986823092496429508629498312391630111719595820666368715354736976904263836966687525236376084938200369472863285960429137594764658106269400364335607237684818917484461885411938755726468133130176084761119231319673821181321595842295410104247137577573826260897229777791574590112215084911204551429794411825220059830032672198037327952986717423232636161519345065481356909176069270203085825474238242793936664831995192677740055771717214034986031064526542982030828811455166894392368950692058047705746846044298612167428665448978302792311428765945791370843820393044234172574136676469517393968031099452184475821529535668979236648659530664439809680643610761518053044608767141974704709186367377611445542616732667382521110716230278031940044491776645155719876841139254716036181696636341947912566630853817070025599554368715003831375780182914017755299533782454980759059399734227702884530771537346706125338928122997044894831681668125786749164707200128056564084290872244980377606424694149475201252287444363383095720634845655294197464302236579141021634477547787125499177216989709034094735329599174973201137265656394640377352807212200788474788327696292074865525352367889819879342577385699867521308311005325473747588011863752045748520625532517717506598953850987331389759135527833520129073391973038630163825597453921248178336441023048744508772264463049615639680285548092840898623007946816290238529195592709446740086966223006785773338974687329852147405494993935786391992559079392455039914155734265247757548078477732705310193944276465985890108406567293785708530224543217926466281288012964794706628775873307970944829478529567056879239149648456353317113995924102715720377646236958881969571710144690553310251387801631081544773609401618411240568064805981389597488726481301240861441201964122220297641685287470375958840630523414493306892424520056497160150711563600156033044749100086676286774981527242806017151379386528731134417393136618386521448130192369970488362738326226686521920942549330761856997788972101300550145953322344772054766624981792668629276168352169403996632365676929195614840155342161677224268466135028609175923843508588105871336581467762108667398521805429115696837300946553965937900918804223780927740933391642766900769811345766443644688491898793497574044595817336951822046074034437585381365057023075179275192082605743900462519046204761060698554269341706701407576897762358771864866024281005073473497724453643511195327467484058540937771146390576175017347948173276212574988419747523997309007657248823555345295480063686655943360126985741071362682629041937515980565330876464298673529005316058001824963541504661693710127738302189686975400842161287878692567271999911708231802770636072673691676549495621886719190623072364538926981499310180651480864705638499484728540414299822041760289881956712796032621707121761788317981808510120656744219351640718320878938973750778292707241773229793617368591775052040924318733715052407134686787917564389976169261411063779287396220641632877247841461928137198613071604974745271628976541516016318059246103841740473514208490602514072693997680511039843294136282818906888895872657843750348094685569379232866502131419789547168992470068499260891199927206932998251938288814151522747803906581635124456301935611251654309476707591426016244795487429656787619785174729778500231475063351832401106626683934332660579885753983744865941721032256308374228052918454881398729800638809165853834243234780616308159848307178883638421310483483894794556846870200707036050846091888223671559521040385580863845741435863463090371715196084928649533681690820436401280933261680823683670076386863919711074494225968236539743635867778026074110976955926191293929919656784066726465307405265591694104129257203948340172562191752058141403796046560540564558787389904911303191247498789014670898048236579407407587615241493360013572821882563902837408749266000741060684676139055266133414063341745292539518921076792873772266217370096296021586058485304756596574242488913737333035436306716957344810338268313154521292592412889558044071407427293713785123913917483507202436249423133339679927649552145901551892772020224137604494150398181179097510769736171939763833441247308356401824657934288311782240671800294452024405805998542066635379493650230227079293855077604747931512406251559101613455449585724825658635704192186349446431093262397793357595619987426198366604609905108813308216007676293488243180059001967231233467497568864408380555570134867845059368409864564727113400397127847902225624273876916618027680085259513357827126356759122189868396414815997463128074266305548194454681428923054966189433493551068174737877976795253109773135583846766381733915362665344914371178224534373927418416946474683942309194388678166961633588695709146525499532109777722132853272735538252470629317250366540235432965387625479234643875339432009097242174270955100753057644526230562986026977248099480785036829023132008912850726394207404404990518968156972298159172742737283941146553377958655023364789532379876026543279796698081043679915282059700379849564310755578854393376827994484166569781894828449717159553909642679133800575192523812701929080578729386783790732219693603133878171026477932449766352630882994309915488428902647333034036808411611645600119595905407887085655801375538483211387683053565764377317333742786616699767735742799319783806021373301723527580192716446477659054678555335122225950819865152027505497570497342673409904755565763288063441632417415150739919864804003128471284166467215441551191703545383546481704990927784216923429357069807827743165171948728735613400286958179286055748221004774716347820581017507450030317960855242470439998444253569263016238097642816726818054807353729433458940189355887443772651898401088036373376545826460942330731473527748549513507171994623115548264076791802290508708519426760320621587760289942948560761902837276950328406108131702063345127345667044134836931916439415554733303722716755574877687171691464436532788410099381921927999200775658336472412871262202128784191258962800978204590157456401216484931653847361393156491873387021542006888025486493936012844164915229426637081067638681444398633723144516899708219990863525878357163526070981234012828052851886017828628166384767333900456758730969365300840074096740918027953136227523337556863601028622291534369336748385597482165613824488946987488854604317084785985954772463760074701184233686589340879691285171054803119996793584916613745051521535498511704275167541026298618661654595672356287832498589040696605160474349356543991274429178194457114034851345297744096294521022444880779244929323815770508993859275810022215424991426832250635368126684440271179906238421530751544325203594375360220278771128142135278341824477044560945888745077856842002329016331045562429221770482993358218009536761822917426526992541618863143013911054007799088564029593816955550957538306623964288605922485426262325062268100713220140883550536019252104191245842919336696801636570335739685470995319167305916051397833622435542474886812721151347810254147744063934447067949724315772573876941042435477949098638349682850358333509557165814568062677727486852841151756738026228657022724536349842986567768124540877192135364184720399296137609098210992066931478750956153279976304831661144475933928176911224594030302919987883535342134880563375756348853354537926112002200549546596761025842199569357224754457997571552355167957165076244926105321412001621881119518581197917683727906614976149956451472658487798253247863434999636739632274023752481565329530288816998595899714066236980165269052079737448105100230288836282524187478484259673655928971372190356523204412333731131820813069864750014780901018253212494299247281302570557543465351043986994581005071322552531527224559040742828422938892778688889700145632474917781653394269673323247372451699766010695174832593661348215885324523655981685215362595866663706608033208757055527541036579373214058957853490068651499016436234142952717905640553984952630235642079674164343748871566176381769216567522977465689801686182011557016235226703192252606632922582532973912643550089933757779275156368490570309729382142233474747995393102104012445256726938394607943388971673413887248321364424752652947486969187990146674196311696808689806267319907358116979551929406495073437428727303819519567314531731260818053277312208345950309062269299476041764274408545151226518471915881539188313014789463649304650550911263158393549148150247791946638151748986224178250674791303517615930597386041967524095854297506647716192209042568317053203718198415312574498269374991204195283987360873550904693828502433550200457014912244249384586474412518097425040879027102963728064471837288292959083006148062011306737679966190653693200103934110272596655409296551456887776311095164943982268531711297100263129205271340971584425911435268288919405962723334980766438086314736198132451445755171323840194077921131426240533891379165252688065546473482082810986310244948300265204833017179215727063601874217023581502194922845444669396672060359977160309860152617398689462160404126963542401878651988569580086530065183032830196212826851036267659452761135289003510565635799527826349289313650605532544204420323460810230583538707943725627436764877541485076182928184396163588903062152403731745192698640718864928278933597362306120275979614625762348946450013382757239377229319274936124807677986617547965457205420890183218681972718507547421231136224563414257562281026352692239113155105033101803537736869097846077814549587377062122802608541135595765795784590317916436515069296264988577121894908225231335549058616685305707491018479988834852700570416162909280648670631322473852615942186741131784152137055971824988299212333335005380988511501531803574614948220622818302770956979887385341440668085025805599505249405519718717511906782746951206594138336644724140489457760285490871607306671399065331137932468943099772040049195978551038384328812534871427789102710500734092745423663567925432244841837530047604006370018715127262602840335339362798598832933790939545938728255190287288457729466497268308787782733543472053292107841415651395766557968042203905028369112087294101401369556522081547162884196634040075253651208183152172982690545482623902008136388713548404163947420032548530887271463877048654625699117447432710330602347814242041088134272344438053471750726127241015844576826699911703925508282600125166472861803125256574598031336780624119925943787663786676794816283070895346367840271628354441379826808412531740480848055326226649187804759760673664623955996445666394700579213852227750359535472332740088872268935939366638652771040481907556431716418061347868845960767959782442375002815049896515179045950814638918222671087701146403205462097557332972680464918617498939834035340397102164054818688506748743371172349179174847149530914891162061494277137831515045700139247181773116832850407550378414832030458611364518802728245041567785526250912828949162453277218872021451370032061301311116263054901356707222249543702875783062849452711663865903132961272176409102163373923214558943175812473473504955766430098576998485908669348777218830402042845914436307089692925780184539057027928783282249792121407702684930571730448706628366733387704933157629460979250371526960468145373535293681076964176620328802232452664058057660382355103053228331013035524438154198758465732773344141282885561592953824070934126890384671957066440496513161775018176288138214698575287292760560169540011972285022987688928380320910935027029094603692570639671631042354670399230021655439595920290681867964471791693524287604853582071517378409587939230236253237067118256200962242568189061133773536838685154935082680009086569673451695616384437914338919926825705221093316677542422772628953520666854343437564426924027580492141511574932815211684812679659913502861934419960052229896719997017034602404315449851431747384795917647787031983001747444212902911503089186540238057979360017842431078466829295169973817864913205231516376727508899210329685465382289717348248109583480746831255965404806474867977929878801480467961765876828678677152428478104696746603191290504272973701055708300539814076033736414996404569709366146372056679973633895720384824337894195129450002997596718280377316276349115770450086377886705263872611253754165251139094055451339411079705300435116759859834282573225189008322047791745397062114058843711799508929004838706551130307006433405098606998552051943594566124763215019294155622824872104962998237945726039068292231457095661257233357993297110767973747906267668295606188392741452287178372551005308517750354049014899005076914009254547828702968220954357059115611214120233539884703200351496388356782754545025403032865736954192276175664254546538203167371786855318278139215749947938780873670390063151040842073742393777711723759678946826682519160075335842335455286139153104453226436678708047675479884984013230149324071008553804909807139912450478811568492085970528572285294106998318494125049290257703350616522355137928978664564323850473213240560596543035392572667326181340961458704948568945863891919432602337881152186266648904997769271634580991749303554449640473349562616160245928238925683036690803106827152594815311054041589067670784577165320817269097559061765112624432871338183757943345496658725647428963111737321457363390265739185599205838865255036557027578605768734716399013415074480656399511997966828860182051065257371014880349768407040025299193746656569878510015200022900312246328589086469131404558115954655790456564605768231917533050997386066306691343880661761758514207526152340107463222927699542760909300277319193712548208826186379579220870731665599970047442765628643771281911969646339818963286603330394888113131539471620903592232578395093432974920810785144269124830677349705412077904671172124350009677805136803126544100012596810423132222959734567321354535063117559674774573536603137320300935898021645351328608635009058107489873697515570392679555030573996545060240157299605458309837724447201890410360266558129215924607800582713843292670000957998578336640391464569206232196356613874581661625440348465917655205415638665983455893011104096428130546098723061671837595291242236022909875645233413677604719536989170112570036162385063148640066849352313444956730264978762672629273062232590556533781586931344323678258715235862984808470395418631704851110780208555656140566224404868166312145045795577281821928892029496592408588032473196902877331448250776825582525102940022467720501906301289162379440647227885497270192547669282587863451406383220551876355266504970147097025101511637240801640203781442716895191999767854453048561177067103763012342141295819734879094960926041173969510939229565359626398811860921094438609393645553470769126373674642063938012133004627391023965914496172554272117937900562562550198382765849388380723573518081025379268403115914133837822664057738758789024540656663586200184334217513876037831206284765902294751195131613267034794089182354244556555626929943686964892758434540115970557536321325542900924195107937275651007756034731632164926558136001084802128910163205834280061199088156644892789278312442546959801531718934720172826295674222290546203193516726337046794558108774523543967029668667499074038667634207480329083566485743826147581327871613867352134502741032606757945180166852308924992903267010600625146509663125725034925381441033360440299153332129004440779169929204850367846767364669008128222339239042824218234934656592242480938057379484015508984917334588639934844436980504815413534781841689415476138812295044656588554973083729470315815764776972586067213424635775989015548995920885115099529933405358157620045611446726189033404112356610980319598393900052782220809157754427081247157499055406698612840155826306684603251762638719924886698789435927165014072395456695515597511404318130474137721671222462689451991683534873600637539154861087203827173490214617100935839993989906637079381608816406623849627344687778033822632230324200642423580267129447321300032553161967711467934237070714589398182166771558551349313838387348958563643799224731333169565324645536676913954268755981344546153577989250513061597468709944079507429305557154541588858485768774721391571035730060862146429274288852709761966463378255730741649321885535898799258272324728347567060061097516206508922353078804169114880752671935076275650750935305796369230969679831716952972171241056303730079149630647883132874077088721307454391027898085129779411001056190177806565434639676221801535417417867078169807275626306725048271850870045504933888781085499680851467042974007352375077278948303933544117491586580208306992829953533011805947985117387249305420410843369869266742075746748963470797137329073840781737453193200449553333387064675850437874671230173015847482468302055391847598697463871995282809367086855932883806441690454983661850405941399980438505163547139326590327757969428324164545769392450996878273902516283388017253587661215854213867147855747489192159171795388044320541825601685005214815728310485797692486377352452546508925307779424562435602476644634985666174417447685512877282892191292623099655762185555667558897502605941543952697655974108935893422522574457708600285107473084861198875398421270603077467553872574460547041446366911822488877439252801288761705577223420580868921831053763567769962375870573921391818690778091613430318622113891957515052871106855532472805510008245558092644083614918329372767933470063920830261073754376980939031361512443235660691717020750649297256441519533390984299954926889432423360532209849133695130319959794703538157940799947945003536914325039427079509442751056732190165848630626300141074993542074439420078754470389436900199175537507509325907904636647730140761001852435593025150690053605446781753079351727737234746133255304507857350609292918270879158151901972966315825938959863852951645326546620434613505676376657011549837909305580416175933458342946708030173720526326728542898472652277150139300866579107053660540836083788231193947963169389075007756733841514330668453933699657139883103993204960067681662198092261310269641628773796448317885255049479373730917606834580000676615746056483873430456093151448274434866327164484392550478448879523606647037383647163652251599878701822472201389699921336055790423118576341073030876172807109370305303502376825233973702315601211141647699804207863733425490519014315020849215426093824905629155787452800473673401199010915279001060142472448010086163160169359206142740146737239483621965364571158778412653399549135633329270244620462302932600676110150118717272953983646233177475714093809038150721590967393976457581532447247090138892286558908985288580112681701841833803233247703270597667480450368128096761613075824159644530079552932940608142981322563374724578997694083826130990037071421422481970872853830784857534476450208571748136766804939482924294485604150995502952953802723458546989772457345681234154295584290626706624542361365350938896415778318319219873740147444493232005990214236410737054019734519147882823098007248265190059882882443632188145999403221245056837242854462808290817991695062771110551723279246392907553245920169916956514229336469185776711093667807950318520987833667174712580806205374067452336027722417449083778283744952163344764660381129423647108986744639507281553195847619959018972188337794665773315606095825241549307290895701279964747183586289140613998627977957236302919894109945666538841378354179403203699771086414293588479148252190481277158907180508813847479555539288455863523823782239229235167119275462960721627904418804876127380501504210849091630930080226487445738778926347184335177619606866225786436341878743931875316761901613355956458412191887353021318221976292743354478209740381723186868911230903606842394900839549070928342856481169244751482993440866323454832830427670213198858959787711479054122873674908982566899727167184384382291167335914819081573076937381045260721761076086177045140344308012438632723772159624705525508002725341238840836877062746399768809537937758912889840833567790281850880872101367087856358557176276003985416329378262957586335598736058438458494305756001003376909742974753282997208234195901264099692848154057719955809119304094409951250040224491581434668980008097301767570357086303962204322842826152836431252538566571045743679617561524287837532181017768438831250488848612785959927495124595824555246108871986138684159113109910846087114241971029168619438301524678303418976156789528078735067440275270641606781188937716363911532076128950333115186540695029712194056736662364259223284175951507962927414758839193313522434770168943417907537514562474755683361649264860402392006864797736459147725495697281476183407235880879051569276965124112806291077863802451863488353370718432530011295541590986332272111645573208692353519397895271576577793708997041888774521430016063541083646421124646713895919426181464953440148036970767437064392739033963909465212822471415962390164710300064419603889341196040489762054495358120141418135363540928220664308530023921148346310161008521762447258567075172904115858949537979873772893886498512145451556191896351655914145412852146503537442658101013254928787168699934771976896530435302818608063210340844270157540525107925134179152073914300888416940457631469517552478765184344185269589873803423460610777383493484002811532038576048124963615986905145646799296570330006397092942272676205022617646876837518608120638282151491505114675043597514497538500545559201641850754557365479259574276100351166354925736454915791245213888899763920533102271277582759445872501025323071053475058356954992268149295296034368021525556165846873981897248454600579295673582560145758306962240668299555780365651937073336554448579923146799151752501149908834493551171813547972391316786377461078014013036664075191026556597639806287713963204879495718758097147234546543545781993512138296367915114117805182219025402395132717313660972549432774043804433200132467747371758454896885110561560287986749898608277579139849672437276980506898187309763336330319919195787012481218819766179735714581803733334879364287765231908348656770910457807009057117216682119725086060794811066046913319765669772908550410343574340528135106409514181970385363102410587802026268286280403082719582821887768432298991287318775317906903484016707261088649986839872329643871253836677291892018286476868915749861387427771545198020221424578102984750420955896597401091451513997636800612007771981612594081086354071375556494236639948031577070739336837866625612935224711261863102552733692114302595601393296527946918318079284901680895978967675240677782978824000352560234143315492196373807551906895492565471029601471612565780941654992779087137709706874862179722758377995915001721414322897991243808437525603438326811193251480952469249139143081845542952185089528703735230504476838089658137549878717349725973026965390959968323446206692937445973623451948995044721539166401013720478410625963859665990452643676746060637965254383067969319415537662537067081660303661905105212136652673837010377548366071251158159233871201267812070333449543690196176526892908715142991749298441930359910869662566352859034360138431087099751495993309219493266675371733426995006810089632820756810335182116638687906645703966670888219561311118438255980709847451461573462018044083547806954853664296849985918778712082703099978855179455031788868079330553478911320067572699609169674675536242848237526909145069609153822795523128933863560588646459296149870463745024976163360893072878783950111016578102309896806299426935271725978909499919416741689219506677317090184056874276724271614971922803422669025224549533455091733259338972933863973982229925746729200910792773314112813392109527220075209734015306735138890563812455495904479001848356627847448714523928641695837333666393032570276769622822879925466119872986135791248889670769769395377919311674627474044712575289252748271466458669488230530536337136196889370753488280101259527944777725983835514030978826218467426141811972526296674234239790389226699752918902617390269092531379392818276676206430981871340892929157551614379496783633155195569720501308568992134563352342123752798766148137030702803335190410118608296364287833338430098249248288986906048966200728639979107786556463463460162596867185908455754538632702165183741868856114284952067643798621767305876021809351750086663962083569294848404290925191908693843247571252210936347749043888739654541927919560157515382854165184189828238091878748541672717156047159871575726225397358229724033273148985854486494181706740382577366287837651539763768001910960226893263580085506482586018635946417248285752537572107183295394887995464577011692469591475728497010246015826201421608996208162766601591636506387258363586173719394715606422056434830321358745430743662344379531766066318487953105966635189253139214785633635724407771141424649551296260026473096529712025637548096966441533518541141867505216765990623681217295219751419438428972129561005166946549795901190550040378716633264868058431200085521830204267539471801212381572843218903250359299581679538850718112611997695049449956963447086100138557284438232556130093950518459809276891987925789126519533873523353459208698939953525983955862234024009846030927243688247254879996862980047510326827832792810095549972950825653670314711158444953247229520014829989548113075226165374099604781714341124405335117899684098463791527850852183087950972909772498550304811551936850311991419046446075175327310004533747142693780606078622728937738840084917236986516229429747731602064754103946621212215503650780020778737029472474349011016402606300092306660832489406320978839141026123833688217381017885369466417546477066486562512179523433185627533008813892854796264171781463109914355126308010574018228441938085578613225998419062064738428602665244428439082177117035827054873421611986694198876928145697400936332631304441032270091524504722429070298031175633301895547287477347063960147065245605684008298614955525312708802846339431964742513223604670245341652330806474864556723106110790462954014213404586576541591620149725092579431452924436770282563675160148011226640441081762012144244539406734812862689142263500546901125502107416916362151118170052114734113644268042795665202451495361153129027172320559147786870639272744979634249319660805648600387038348817376167874560973355900511136089409739016087683096311914088322929267913191524399701584014284682283157478003829035901598766815587636297702693898428285449496387719904322211177529175790008018732980202330186617664175708028035857315052378855605514570959280829510140606400679868711159142341797561772627461808082101662565370468399979451860562479783371260174380114855620592149290978957706625763767953448379950806389038179664060036013121198973025393158499649276457487404764234878920065473186832985712617383784833698786631822117704192333480430839210193388185848657357487723828849084260409903546894424235941514357995699528561131902346051891702348377854680706424367819104360998026084430610846541002105829418470830322925676092438065652749600037660537191240946808121739776776428220587501578807696359737443870603678400801513321694502923690812971547530711574876914884599626551408862148976225976079167167442477528020803276368599486723407169838523414141892097961738960135392820575210259501377008997439660731869599219623844577265430977854159806107078345456813549191701074534276265574032723235870181996720819604261012691616391722707882243976902104695254989257850226343563269502653172243119361846063348436569462010329832297992699822856374629788476794926169755549811527063967230050184071612436151234427891411007416569286049247894095816468803557499834485507926685583456462218888461812053380026744821158106086388930971044971189166476493713805669705686835373373453141736900011830813513698988683881611197822513526057350367636304467975558221910876703463779578723449484923772459016139448535349062969636204533314419518640937314977014334178048327692459891277059516730691136961536851821239502329889822016039086771627739982076243256236416384286826449843194305268480491897400224202564274300631879913834410635548838181105714618502846217141145609163038889521830397655292114627578110273785136770120934523926328918577186718333439570694973406168601900560806354538975960008983087066144512519133069619508269711424210989751133696508886186280037485789517211227658291910027179756903070023160882805837640013375268470600869331575606728559387530093633188848306667525347897586507541336184630224061615756453952592409610299294010656034559053507288439878636873216205522205412820676123862915114910415978477411705886354692229244285616092634536593338001849787241636363210270687597375652596889598324273478044346788745901273830039935396979196685338113630482718077217899400173648353800070309309215972569493411004367477008968771730237213115743423149867484370377823730210411339880916983691030356766503812745953032320950496968996646446773103105582372450407241612873253767593106432576175641451701751570896035149466746686820055477452891320419136091727875948082551248839836569852991512385611283148435611205043297328882470834875486388095447575523004151587257075170506994384214909076953349723288403383075114444627485636504402661032721832720520337122517813375262006859599107706940884799116101041916155546731548319383571085209447690826430281231527412389514556698696203884593510599668363489950077384264389639466247727457940507175905323094469990709789349845602013242506201368765803706775793345081815092256667195964867504759288841303757292420638626113985370146383108286475449631962057470567153755401415738463509723980631236252568049439828368894873578507561043483181901776725170263318533381127288157582535681444037343509681935762996243064337015425973369865082111240514023138493868797425323576985640452182246693971833661802648327924722955064274888332571540255328324922424150100452213456858140992902583055963428312052886599900606114865174283456268889429787828892912721513560459875090922730192716483192230220073081625005587060870106825078442893825289533620803162475636072992562531781502388015263247932335591193314261253003830929661909917857245863788958355335137806402337079672991189770101547663404530459300019495493978194860099088353088486392828009817611269736067703311201780717249955165272807156027544023331473062634518554257735365178081412887435347928343711901727464198168739835576624289748598884048017841930419450218118060250723389076465288466241004208054108652478180570017021690196418905106503236850931646235333186174017306054364661518699703948142961217603425008111153725682724115293426552934615356636365539175598285276846824740818403342386277040843151278929061595938052832774925806367378070819992241572888826445079876144048034125476614618695396662581247205248296139428562192001999522323589476860201758757933154146475932567599056518073081175137126230207643663020430516601890574208586774922716863305948643317853499340495866319649107247348654461660329276121031077808836937288092864278553566226192336845277159336278380350713340880487523059905746027209782080577381688249488480351343265150445033694411911163305906166977917779540821209339615176889369951854754573471677409622821012710752312500511240963162198697360117063701921772115469831966229398478172076083612787535619743908720492277462455099862954343605637423979554998156268559463002045525355772798504535245550043249455572204904714909102709462139691368168335518843991778768345636107754874448112635580915441274872087197749109752198192882320654772889536366967874009399789536089428491553036243165976255074073660125689298534978948845695425069454732413576121717852893193507688898617936769196265789866889989666426632873490113848361753964966666880494425434934390303187304137518338334446738224703402249720465223757030154392855379824162416773182700343253088398207851041144958114696457014752513457638665103607774949328180482370798572247761377802836625115502086774835149428544800835794886899503226115106857669492203349928685434180410157145988529319392986985530681641619442971031122260282440449143739362181022036853771296578708547222382508197214478071010829217415251491555337830888152982758994554494428659536055347276993351952077900434226064894580168516412824079281282847249138439074606771028961817635539893091652712651367318775054163914730383852898699684222532485255188385828832438502631890316686080832928489756969670946214518614726555000972448798150469501786051984427704521366270714717771541512553955768770374089521861329172567820546084891899983961456199311354187682990185077869980239845172608887761384370641891646523998266446578266493330003568505765477537336916038098454204700975997749165929244589311519922679156955676696703829110109062796436698620126180082588615830980340206116180823230222310940466814050752110542909294278166544498873231926680040073799718697302547482445483591961533790896187104150146626079095593589020321823953736640561848503262470869699536380133460172597206108064182070770819022440439085579013571921397274433527679676281451613489328047261154080770589394746268660614410805402265167535317945882426724616586479426949048485377595948038229596972536643699623188270849045754963459380669144866776293763148076735047990001227831452423824911625327114435842508937233928412010365178315532907909446843064195944494082131013552350428657840572102767279305616487152536387614286649589377951325118128838487309774384458310767304258956360145540369472617875957538413052233515591655047978866853606388153038756329157422149001766184992133897493970881693426059278509411563400814145660624608179777009458895527811070747233360735080925771517529577040333206969318588378707510590780178690346631878507347562281591833805504851098115082407098247141827640855790025255176070837344317936216757235983506995143172123652342719238776000232351193524121715029414675346037052045623371974618501946801352391543321337040262092037158943845467874371721459793081187052292363371122089422726986048479350928918889863225155871941297129299138309719256228411915177667609784275846491493121362034152494250952903217235392932323125650825779741973962485664181158239868128856114820059906324657798359371238749452373456958985215753864110103551665349013232706122244772125723467417996272277269964780066467420874519276820700161141284578817978530036904477720261022925026361353366641345947855525203944997587151255379595058581080638877893557257008644272611916537810815853499479204018297160981761186328119726132165328658549617062921679376006210248088335615159034466822956185560929719206221018945959763075685084189090784394851361160206874245154340944337172305014722562038967605652598050250817040917245192940747265243628154328309369011970514318901816945993423202297740658891450430612875270755918995150996192388196271884379416535724487884399236340509258876188423068934827698953895192104459263960514679698131190067142450097031843487512745145659801543776646705101715669754352144774867876947425524088074554310245632955482266747536556315135275272208986046108119425730064506540154589454948481668357221444075090756409486014772362230956057272806076566494148836950355211044703469356139779011855681305767353856067648172255918362890755260449124963560453130703670093618475908911838224871209112711046134646477270662148609851614129217528176673833608689097572733373581651348307044944352455900166559294396524891103485883091840693250797246876586778243515550192222377813480010351952369664986874789908772454229964634477475481002801355241674546402352229413826958406386285233868193457282321744559988715300181780804176710237627295747954049669319417681405358683117512229552947698445007030996151724317694543471033305361523305903624785817092349703925776479292731041855741118245675954754720463034020958411049125374517386684403309052948970433865245585716792847630577658646612697521877565681322610989240881580985075858090296263254458133545810909443797039861384677312660720778943442826323082651219347493482215285524698429652127591484627358179659625921834971336307603267046529217515470028995938156321771990350746389284271225934008746015901818961635281683145368856455268160825833486713955540270190820451759619985720124645678984991701984355940277519776148071190595530153742158170612805074428420211000324558222906051293070913468463433543391595032685272941895443338111670282206248406262158787374831464151933937161174370853956611909716004994940581073549903086403082782909017109338760831402629580573346674459500124941247068932870238779927045886614597084464845745088283507297964877255901471693133892133756139139450961314993170979313460077921883651160937436619642418168771849839463050112227110037001279779720611177971799268516287032134712640935267556697131178812423348845400928491589429141498414033565777297113425974775644451521353214827386129326010781919729842311089791262119046266953769356071377278614793353706189624446423626835488284056323306862627831000993583457215458077100832279059555815261040146586149334730748741111525281093697388725260072479304637233989341741696995661795144765937700369091599413624621093824558986436696896853200834623952766713351903402934908111425518425182907220691799340234965386245112159005914968502589985214369525752695315092749547558740839975362573309354325233770316093097512350921101976426210683080352341564822217323531100444676557545069067288221173488501357572241970999376147932851025618223573544237929256322762252203235333742080228724115846640997656890163832160057794149928985619631063354689804439863869773490816820267375768614519796527800651248314876449826924713227023266990582910159462653374892149623962364132862740687880145441791497928616942557761704920638967689607643338729805320089986599815351376607135024410453718457244518524143516434326799600147694307108947619109267790114608056849365932816804871506364063083543071999613093188774975008103808706601529491298117127401152881460208520266580256886950196737635272765098414350250727723589421322222059444092602528333507156090159085133574562355804900797711721241027669356146158163706694539239698264731430218332454035952178103206535715970686180585465167246241539323390132154033931648762502238292265963613562180305493157989498233794881263236757410533586204093140330423046091853449945713450951949421710722403678240180413834723903998519906309046294836807247829910043236774208886701461445770628583207360371973588175210530773607309386076842519784949449565231025761616434224501305689402684735645464149004315847765539291002391768922135743775339818765283028994017631324260712784729203636121246603169839989025063512642157219979066197673182033764678124668810459733306250482801597594639398719217151793470769501068635828346334006892533358943628945329105723921955792650681722421390795697563282658495058845567993474035088389258615610550094526380223972422436883638085232602510295162163866876886028228113669630542203992202892261416690143553970815991661166203828373094073976713643451360036486305762983827901919473211493432089250593072637911030974547655375220503171712479865343145444961883494274528203254262268269956308179913367832175500710725080944215480935136906577903823777308438976539907638617718366095197945951821992122909445545193894531916636299456462975352036933795554365786439589721265929395127419664798149212071498481754128151844109302058969660075850722693367644544885069774328049055381129897586530231397195539716384120617031849327463621217251213192915338434717152834777889289298874485092058439892363279221825854786973488492513786888063655439442065105249877931116316388181196591113977253919123222189028969893649259708006020961217275212383210155277771053141172034908610805676941926953331317642436332202118129983611835107901688970272778503772060173047187794972119937862285752220050193324998767035964864694287610588517267100908545706304519867018353170967448693154841730604427416719962667779728370021569943119632990438818300360209963800927520976707436221196519552890862505518336500090941297377159858134939704815734778595732400718084314487062789884633588050293302337730040813449353792841477421783618531520749809008529888593247520039487125118372230984771670776767925834185836118303395524348116120021203247348736088329896056303399427489017264121672481652791192316412769201047756591548119992190613354065628035660086429965852409353668137520583699445286640750102902749737082529696221008089657517237309579963699085703884477409605234350578454078514946907599331960583712801309280679357604979765332173656475697044323864221819804766506461370908897048604128433292258433842011639913004510595625367275285242888897279711141872300290683791930176027985313401614816641733294301086624332499345784465481399271172612227581419046306415293325099861318750815905025781071912600032957236194500516252336240488399228140455068981746414270283812893944346192457821840240904438946953326413703866229751474306351061207284799358415837642114575966816707715893349678229367996292196702402227207945337098958254580604865837547909007889505944642256305994032231209629062311913981009627661593307766405827109487686358904033429704431426008525714528357506482518823359487059567514184736835636389763553105286694014817116201231378658317255821208369421219863136284854323683691942380850019798143635683626532930570030032458676482657090872855564301242050576661242389112930123931540396719457797351784699380527600223379069199453069091092341818832587459630661780720592145537026526999377634799921546140725190808580915077131722995948888104181947287212740551620201744528605338726496153572677346766908741351225442528449889972491953686708357977648809547149238852407409904899641407543861912731751616877137724042766181652214256329851181279334643322981997473239566516230026106710367264983668023937367644164927457647639624386481360350341309930187892467154425038559198176372292602545443560123196427305697367101046240151692764023014956772008078337896551304782498696357986685667019778073555135108450731968263032133735393692725841830951201234733364435620032564162967866034773942351958318278220763404444162718817305896781220797761050128748070411799821392709069741088407782423895711826684560633516317888393406326206628688259116877514622125843806089241559753579036801657308712622913558938497184835653199502722762414284993508709018319998989192049749462114465251898490186098305190770265326075825727710270167093650215292362614159529498801773647418756365625924132844465172706128553632652607671301029212055612175630231987728298939212968942953191910138260383280239415863323882558595426456762476966138007729033827155835683363648611880662404628549563487526889397823135279545438165529646811100075949141052041987168497830974674226719642119519131316746845379343216103712684368338755735578681001820891663675730529975133158031113446838416989052328988984401198437766594341264207344353834579901660462664986923358924503110526879178290900802155097093227642622818100946288125787372259038786478205243527754155331397648685347640727477220460765525884119832514038219775612449624269184897453610733953581744710860551574710769311828186521587635472542581438781804117847307620767221734764274833808041423743529885793002704567949547788251309921796329842331338648187313308065004399439286322386456360583284279672053076575821220481300119512000561643490688769538379741386837468776393377361944209355131129140729822187306267226611549576235408726626272822351171968294534436889061088410814198715393247555037982297176103865425868612635203215263276064760619894719818234756961333358820527742221322141585476351580407119925345138441502165791237627638974472865812228236662459703411077518943008930565483846817128246239086153288660736756265386174878870859579880591546502292491715628684516787219106367112055254220572607495202360717241175746046689588161669883948304558632797609986399935785260900262432707120315461465981749554603882651477448201991904368232504098156314352874825281026289211310098605017385180276777296589592618532288804472627866359652051012108480397451226162731879839625555952391285971998122039320300127522396745010157813779327988896217171955096039625720586744491694171107147918186457067176440055784024899027199672040938312939616071749394204574887757221368584862760539545687670812378883444328185970596782142787319693088029879721493490644001521861406110355001114576683412312763984957271637912399667146629247073722045877117683458473883682334296657136638557528548815449784783500316681806959517079349853139373456197389436524929683875757123761397634010219317129303825108802593758149695008808949181804551480171387793950672775722520222519393810095057432269899266278867479970370735164378641586589818248236266765977581782555810952294098535629404352892568859242140747008114796272037962415308761636800593790868573109538748943354229279423499099442698119109783106125318451031257568036991889074864769134841970647685308985261392943294613384151847428763106303948648776637320669804649960268801835505484517112660389542489118883694597883780645765135668730958663091542036664772283314927537643897034857134531253311369840694479661853834084639826428046972939680075356465336362957189909437582158873971121950945990997235014760512692225468247323980591889612263416777188644830905528631669993475671662047189290037401628523170865588039463047646980698609759745837556422256104487409614267141259821876664624327592170643300004922766411899601689865160268387801734017505058303543538164218175800576739289849044312504867454243637605229457579158621973333602442282590732863753504783619283413676781046098107414582945833080098092895791674221133797414410541402757122284492484761533963447956749894629099649695267334866105076428212407331104877576677845268449927372240492989998287648471001461742755640715100428711443828563546264998353624236986504867059433754818088917610470247240496722637021193675901698737496799693151869900172409027766614940441470102529046190834686067217775889529258206232643376301864551775921669170945824317585804010214611781714140995929711983005617953115634028673728445853156352652596983676022484127964412708149138196313293714643665198246399233372364537985955112583835856705867111645582790331116236851076282756922562818564518396464333869552755898031033377053092822042601384236561938436304168030919133515187743185788139077376960895152133467542220956406648919049847146317452054371011739706137257735958320953038769203393170460029515161820990926133948226813533894145751081159766671672717727315731808321308441731398054397633331642103842093460272423868567903548169940118627730824137793484280987606238789963903009063341485536822580116716666510534422516095045317875146966871523743797335644666563057715110232181502484439920628362102753675748877456200946106063704348647426882595084215087040260787007471325642502955504947698302193922997435948994224642783307254747586775114515418472995302126201941885437036262555520277764035248646412628354024880386817664684707078737788737085157059038352429790335228792724277354502110269218347597169231561594041161930033650384718669803724103205591968564380728757154713206734364173680297878229474923759235630661255165877709507391984440209790614018702959389217977498870535247309758240590891214231859187068773251558298447831384135074352531911113059322934059985609218523824304142070931057831115489888070319624767290212067434546760907393914960278907389201797765108864176570905865135138106086723491938699415315268993483199788491238354248710497029684785288829670260052954768553174778418743572776827785339769915178285991909639198711665763988240108354025356608158194340172772064471674242697506730098514902867843372755238145561994288645767627761186376028202009004963494659673064806073693122984361088783041154642114805523479201725599064142824134211628101864142884815462417208559753123961088048566111772698994351895359130972527567381791304847236683079156004197435510375434951731456901438816837239425441289751914075078213908024201431162467458544753683239511947790722355637620587074564109716895011659918009692418698260605197830843098631480744769356027325377562563460915970544004273824669382382303884756462373594634445449289312776315823760456184803415712102560764196503035822007345382174103200108325121253288229972059700450519887261905269460452279438976567595841106461123682216819982639123248408067295347996928528472851066522394812778258481331562520148526041979700451257904850564290288559759106060230962471215774350867256709428891540374083438194682919998447124100494375806485028271356860001356522332666359368824246082663327645778775137859791109654918719467194963031113769830549371747831798141826356013170179751087469793586395649233732026498285792388862246009953645069418601656407707245325245310562231595939443933434246092224756647573863012252281178443789225777772668860951935395105200252581519466232672360904317369887820227241973035041614881866969298248844776614450458615230256502261064576656242910408844417832269466106606594589493011784366603776933256223421213096432512966314027006678088338381355711348238898479707635444016696435847891964989965563748674052533536746874819291975684821619457564297045287587974411345514975015234315289933947705825808334469319929202549022987772231304466975192954383361509013974760453107528684182000981107903144628443065793297233633547230178031779024608699278916597483944805515258418765037316903104587479407728886912133217952378624221796709645563841258424450246243904974103450053394862566122955673642319480868832188705588049133256877201075412402502162366178725827309806013305849050131481103420388527984646653548616459760011955873355854331093030687845398542935692979911688072682138925088525100925020700183121993723411302301054456896325249220743068562906238074022884547757073346742695828034629664223551980821225356985136720965311814405036307542432492797248473616541327704629231682608219539682674703086464755431381046336241047762805973585172914881785680135327844184187048641559622538715332044814747417098408071557989323872589073145863033151805045555410067317677797505978511394433932502989169219322409157082964471362798778420773018189617588450823732849909827732728658156606020093563564707156021860536454777225294415669870197800967818491444105057979918944617794976208330494957688984038418136795865549273933388313645493533280156510316607726551109008092563292769865628499373009114210744249815128048860458969744685722985867742320665307606244253898322767058751454398076176997647983730403930388478323290572224724575001140379992526465471094694393081031671805418238840224482203000813143074347270194439666016493176883566300593845477146672996420955516666259778094137752146954626207762684175237049499345454011731217917137512316243916736800222981648482163297625333910828796649401465363646002709486661206399237492081149017729155656658695674632688059807281651295151502609048666913691662735083451944678534984126221250305387010324346545874954564721823530560820548647553946833702581771160520404599589350827164587163637980506415395046883950739923075189092619397405824080010605993082035082848148592767879019866971631912531551272636103229439992870588019317771451334307798258964949418556903428055089908431592013277193900762675269370857877029771628194485752198963643681477342751093131743173962383334900657321404037731468874902317746894263079212177003886083705853870933697022148138613013220668906622969541869398623528441115298639071217171676356941175307168267985446802470320119493213973491500502639821160915933169467537215421421355473704608828858063881136606956854368916751555240826734723037494465630293906580376928408749157733379691330991212726831879245596697603042893020758461244448593363466100654904226931891569573893501762800724614032611312339479293136689737293955495587405172411747955529229631592795200907952317580345176528059500137613248231711280608116598577133200858643569864964163302425955361958830000405674691869345392811348170448361642283846899264142444634517488317056262730850764592207062456201503643316393711877568673470874303213992359956679122954193719383221500986187556528051325132894741586894105470245167065605417481855311501440547124783204792765891868681402918394297670467176939638199624276520583988575326631091336867843505481337347683108783323384371470202949311901622540737176920099736724725047410302674197847003857052892615556234065990059692464946849863167249675892411509008835187257132873938115515597799216180712574734646918702753717440867903725602620576768480157769745631360377024901342643923862029465371680250586142040897869525944370903963869517877818320252995039555746895020540501603485278922357830389729325585057430411770190706113715061231220893007548337083646622672644174577385737157931417765475204938910001144654358883761250354622067783736885315612448148505003995612664985998844332980214628496761150828681864261493088457409725197717823494453819895428572433494589611938844223158695097401523391531914590963145749067954783916557062248256494787884930009377451534932988698699384217455884174710959286317075425802190507711436166031018285177023392309730456697439425292362626171555403316703165581502106330914923430712420772459925296169260397797807822110398509272375696853136158888719692656963304424225510240732129290858211455748473029998672942204664594822811197324191391724786446211788423610572266291542762477381399493847525027224167405670269156219980222970000977216022312848352772191516340359650082048118140772593132920993352563378515920740320370291546270084976159216105444910068919901707512420138374991697026529536833868025898235537982063827641793949303788102066213322164145520507954630150850186733874344047578379417841380334734983855594487229851276134584774516332225449433393866730255474735541774276696446021283297303205378477231242645915896510573345947259545066349420966362769573181089381951018888738774270626833308912581763202435831463747876333261426203320166875095509082722778680083567559578171345092930458352920892539210996433120460079542065059522194406540908925566244853175560032014728734966806036498786059612700051924697649065898373669923084642299712708391973737836893341848298338183004645597479422847170464393977675723031974512197663411177100566806240795974783088196766780702520876321311850089843524316675063557108217951539386407813696861229852318968123859874288102707250880632781480435147661761430796962239410993317184638849660700755423594221524840443015553618146673227172357136597659078836513569981715899721129739632003320108998129323423344216532578694513017685158014706205258877626350567261338024342147692001912878108715663528515753704616775232760340464635267027303235919612644617565962247020172323846449218289150098574954134069082932445277578685974823149597984464660848803651579050776400851748043801291573629622233761781204400418575450261675399015388665997863069247861946202767800461218719751266437714528080791822335473053859890786307063014713076638239788812518085448456924651942776342390862574523734076772482014757222937687467789248645729329102102976417241630341627544102908474438173968204696813446288424186174625770120220609730873656687970540132336798411573063476237594759743288286455269748265938830881258611831540159794165301672701514313233990209977453730442352116358339320605649709508101852126163464332384306975023256090574325006263399457807042580039965490223558209697140824112105311116949964195819866061556082835219274454621648549699677329845734020187840922802644935961055296435592065150043356568857294991814565699729808293597703217065321078616962800652668407515938211057063016488221787430006680512289805184146524871795356893451303728458602063437199469022392501525962574411678223852800552663617062197778421560882162075306722299232330858720851660472712358716381220632641268020136031632607187807540479467694908335361571336759817981581832025674677593593857154738188046835011199356125354025549055193499626324396501481762531473054841684686305450965917796239134555060880728867433332129764635049404220243818893391382947167253042875807823321841952165329632080698106793797686910453483495263244990366561844232594592686545928207412378999235237686210057177086003261015899336604107256114743019844518850556982256554962061800454346839586365820945606733317401697631972593658721656637686255580561724334936233449649352772639488107887199627166392668795471497784535364989327387011745993916423464810098131439523850569473405537085737820870829943647544533935910788343014528330615176703458917588279739985619383429656365831222867007387137713397713598489236485270493842761302135427001935963669603898393381843440826219309567582292340734511757947965830162340400771300275064983884858611278023929107748108429809416167082926594367684463400633346148324598980487662159908433981897556316959502722443079070950252360986093820997202788354044639754863374120033231470181780527870903101913627065922079384802411878567780188172608526559162383846488470926997903446234683663651804354044784596468278028796420073020078688791979001693644971731134333691990858115792893941414340683613688443885102863366896321434758579182656107874560053826380630950085791697062499520553741351361189918716224305956690311235489300377877372632579357200377898851369741052957517186473476768144100164414230664205120828070895917375849451511304040066556269566245090246703754138496054445773024052765203680135433579077401460910216046531477453559505673129020945949129808854846263977067597157799821466589957773213567480388808865578668339954227385501000223143031041491184232498193404623018910786273836318811633513681697778332233344490671872367188183831743538551846451383137658502252847922661491414949055305459039708030575692280241313958124289639501015812882726365603140081219162042362494572788625815745082294363132816505515339633817685936614514654730712385908313267749623398580223229468014581039509854219536062543114144227549508023014443188852480048819760893907645124013375968305788208106682718197440725178597300041235559928237346689572618762927629548409249536005952347817132209791311714930268871178247043034925189660451068063090785267010773438411606898795668781213205378782001126753375532014084115476177718140551357047827109060020630713290123985200106125653119172817864892517521152405731750145610607773185452038739089316073725184266180146196755796741852629137165781352816628204631924115617433522658370814824020318487895517084219547467603071986605136762365587467461403622347885342467800743883660358909256595010237691719562694778582729853605704358365018021238768198420974170550922929483711165013927023580643358953241560492371304665769194368294869573324406496106800338436318321867873327911088533755370821384590470053494841362372671922372598779061477031208399605727820384820439538312517124322942868594640226582323983769474322874303122540860149747309490750921255524742312744009566002070840648935412996617360885530196868855535365025843793597849218532329354837428803776157315941102220884693452422915357530006667586308893381906450342378565094673043846817109637322838416408439282657228599004405775482672652071279665912830372977174028020528818479271390067049175414495103692920136638683396472575040705498478579326865165443062322106863936938153136712348404905111903140236985046965106614473153379999084889233247965867444964562633650748265368602069337345602348632133233888428211568103215922162062278828205677508087618072136973196718310110572183649705706543630973156668650744425648902795181245059060136092982777964169806611850798676248419680563652693839293706118090439814340486040384004853268711109667932069287978218593288143310010440292475290708187414578900902676633320116250061430227537828887858140044825693248601526611825354026714306317602369067763416675326249797384761164201890480656216440324210145905939338432827964242002900645075733507364148875017244523524744779352951240820016528254010380328703749430024465372374578225619450191850441961833651889104386861972015135839411004177429833286639257538892206524867371966359405501028278895447945652216698084080305452370932626890192478293175530369828950432520053758503391102862243304722925730211905139975039873116134461502638953824422310682023438036615745528721357186875739113474699656726091053025897161995612497995919194087368791105279536425370957366015987757108402363885745830032622574218946113220324509796537650324987610630513353116980060185300608675711921391317191293030710671052762012937176646995291727613216246377825948724621756239917987453541303380129373901486016309968322801213273144103850728093980900849689360796355181100668509867984558160207754102189838771037938229142185045390988683934210792763830012964047069624997578267680590785200097737462194052288588805375359869982244810615572161462739313237826798418501786452562084472247307544793759339728656106667360111604659054060620993995713308626690849804845659012622552492226799371400014246621670711136673206546811172031553756600240358134145194120089328955223389092430014911253241661005620513673818698815096691829363878573033991268081941305932509420896370886848882769209879648557104561245846068932450765915525648239503525557718364602996646601004990907645150609600947961759083427271113085629471521510388555428160611810864648329210442993966239069989490178932651802523119582321809513950371031820289851088640319131682906492118463937858093133244561497549408062704672798371601186116940937877178309399394861870957215058677784430887500665177807432680581758192199074562595282709183619450761183229392987292484535366860888306467586288510032100538749947772286246451015131613958998094642569302359828784493049019151793031594315373103875755396942566205824953300866009640014828932782030462616397031731333818164497110413077846942391980166888903379207120002268977221168717812967242985738247650689499985018589311531230127750891224202270269306193192029302881727802469295148397892674085104732366335048412417261522944952203673417468888054338388189077416009204863512220543377488962029552305909200061102461478553246400798507382666892747660935738460058513242980381955205572486229077584973675962484809357477885667891927884106154771759204189126562685079630364961097637082846892127907207152871976982748317551283463418317179193015685592398280709055989085726815264739430494474661943286526475718411328454660327279013789879396751335258986582970764009088605467372650090830325569886236473790989033551535877524236566172898909162752052253238577623399262481291846449237631010150031341049148484817714543835962004372523547259406786805022847353260458560964018010261214800857119507738930836069375523603385453745889721600244245041598635222350802135622982440782440148805297739717538430385130128725938501317248249602322505193147628932786731630998190556625817457633873287352680279031028610432261303193366660258193525829210484056020038844353039831976778868847721317990583646094445451375300003121310744581373220845119483823771943652857843577300555684038076979219298115687351179838849545847865606031577361884199601627755601499786470144657088994789883660433627600136297089703645611533699890170463675515194545334055024315857213313094237638392072660983467076089323152480042192036073700598768870736158405298998433803625405189812605955719397472733835873845694138710638866378955322440800675348344228201600545809456945564655842578848609348369501143338186414172760790018761532302449880395615674422890092437835648297964739012798270103787172309773162880829423580046199538545097696698483519225990786670988161177296847752898692666303832612043620647804831185183578963514382103390468561018173979984941946154743748947453314460788154024848365615478846948178298421333687937723994843553999564926594026518367252342291589056046685139370644372824986324352372016909026361354050862374950347589309688613650919333009205718222554153730308036916793971292704904687178078440505480670607873773524712795641563127118872184636561219949203195559953161852637814426175325576117681629608503327614354210900010920879989282513628703273672021698507325694122366493088765912505975542416849096748449615542957482344123335788567805761789404479072674515222790478962265534900169750318196864696782839193511341335917687680478061598397896116514398220331027122976785017567059977645028967879748427368166613503368180331625973295691909061515405293004956509813551691921444821652952526942454389138676804875793941879744032308145924793803716117258699716578526167636318301455034721095390447452833534504802671605989050656144060343450731227308583954906853811718534474697452650842916901549637239086771182115365516921585204292446197290364354256684352915952691340300704676000709357601265543346051999377889185967254485041135976399614088001042869338065628929636048886990575549780143942594577409107439502417328543814907180329200389887272837647680950874968145316100635642285132989494261780519048891741812793630808528669082106952417624336195728324896828783011927046885604079391187391712405558702762139181033262837692897413689441570957044733472992280524923596705367760766034464861957712306042935783689508280251531833935910335669855480361097546329945509374833300167961400767005235443744803760117668001660529741614241066887490728278357580833211035650852952272329858421482047589301930608919737455596636822624606074640111510974831710432858705892164666260505232517429967565211769369424681109857136038112344995797098542847176860326287758089132510661862989619051930643534295087876848983963881765487948623093736843464488090859906990672682823896449615508171387615842327221832596013713522792565583200312706746150313933499704416772700779359098182222340732019276345749005551711274201477791454481110217297462909385621767968349592526040415575205559705918490021186015300348727891087452772832990289536186568219021366080456040893335044233819585262097110605561968675981868244055480712685709123548410989035294402216641333194475890377733558258708358936927602084991592412883970183042783355833245435290422363397570623670474307905993830400740042248726506432326574138211929121018703324737593114103759309916822632697157064557517387106452537836958125196449772021504716304516300979907565693252808163567653238004226577160352191470253645840769152327027156115601546274540753526913792217121617222265893751960131527211689410045296688046530583320490872164979255360256557031531192959518765022363182654577071390982864433389133229922173833964286839565092580383557276352445021618014804339610839183472707988470215642443377359304264513091158117039946620770386137407686718705096554884946856273314304140365871246139033548029592324003183854623550805827584266432894749706776523439963212640607895134874091789138639892740196377326233813223779213316392350922033152016853164344591641071910233336652391739855907371009571954678517383293476113233246382808434988508965700703527234342828971041285701721987028146134721639661035181088619771029532576576759689102886568834846046598032136173080094054301983627123695888062295431832847278554927657263620655193097483064904364841862613955958374242513726713174136389688862298466488297959226785432455644674517431675197496494207030151664593181258375625750091780693954548831181711681766638943516224459147007070836153457606397489675382585783124416476590383855320442913477273681285501732421901561219888213877143164806131976043922769892509318111761809740117183436270120684929035878688550955728862786209175416235573236027202767366348947339786650282947703462557932763037844700619300181897558561625962814973072370465075673732341604687712749134688260308766354236789697001130158343333349915907636752934379443314716527042488963198317100464235713441344130180743800116905353018552585637660344716160636624444568277091987831727668129355612804132464397587684035562975765627299006030425619393856636239758572370963089390461885548370750820815885447095300006676376557091739383596129315825914134212504302214436460037208659248108731542427771693755172799658542949368794241191401587400650470466601298474217976916281964392742006124256147203610121858593642380589551289831583523383346892014550760006410270196322116120595329204519629437800330928963175066853318257217614948552005413518346452383893877498697163741501910380998836163649218216427137119979116249499484514021578184226425416979971346155987763437202959203448993660525208962447927913785910870420306537067029549561833231069357436711698011843881722624141053686946317998935597698448014552511704488493476551590469144971634945220036766552192702297709271157133735243005580523716717050251667117339436118812022791018869013141194694250148364759275947398434788373727354216905211910632741301036719322147189165136444881208611958002740590906286532569065378875583688670702107034006997421462437356686769900687911644207841740950085286109249831602157147461227930806178872793344811811269814080297934211929513917110455354984526035943513418637225070717506748759635652244950900285192993701905678506231292852824403988444812412128680085088081211342299765134599621213410815448216307757534641823431105686832050240652656345829939773917403193869125264257002303093393197711396523239572313086460311595582947373475968813156474237141742133643815890009429519661385143672994937983707981307720046882207673852915537448468720216782872515819897239945943315231850078554289511623409690060550712676412472173709833026575651308728311704706964573550771181231501294666963331796037669541169849032431091008451231082731440552073168723111214618726064973324923845851964358135464806695269745194597674986047411059818391038400807659527905972573729709871122528625576215069872752018348593738729228542735747982161164756846251944120495531908952134328849407170344112493707409854037817333801227985685921770363302702114578741630898512089900896457141415089418249454195400999871354332164397225480835219620906842208664582244891535566946350746947665951962694793425084694887769551175281984802827345291600541200488396080984003640955563375271431001370268132671849778400762070461965363293335343213377150260554827839722557533472193086494085750533381988969541716409944451015953230912734687588052343171627519745137900068712421188382086594902041240233510244566924256316675763230627081545252935984928522110830088599267744567161818893251526094816352805292970108010843654007793855531241257945683986235001147508117061622737754333733831044820368255217866731290068573238371484901348108510673553290893585243090838042862023349817616158080433329615678554125584443326046536484582367333491728173146917822292312339218870840815256525840187776286207876715709586217185286886837023390116270319878793320767219297430466645191099558205464674345396356200913692085070695555274085285570410087913510777526676094521738965707930563396996678381105883429873943673475101136153182237479547076327056453984213349936636437981497871411804367091214447496793359094071498596166615287421327500599732178377144915603990890836604891578797863634060223368554604014027836111473129473063849090389455803237621629905307523358154870945943994300914106596489180617912386396473428744759505124950490325829522822909607320615607305979896859890188727053704564145871402616933798867644440216864923661204951608176228943236436100742113536635848809478589060837131463322386440925035460685108090002238028533929765024440219460274463650041989204544230402952307929607722946587499975891043251658536681235222218033952887766902101929795153051477834106213056275260323376051554155591572918563380761581422093423818619500724423704020436533866590137508329724272179277248190959096961658528676830925840893134405823692109542124617356372112088152570754414782848593598261713417570870401148224739163811078324946587567492619402895093254311296830932542330992944927156851576279308138847096541636824236503638064965030648155978448799516035288772680106972718246823441539819588094051391291012175387251213336213344949808213903999893055700223386461015965691036779467464388223285715369674204741451870178550866965614831595700353620522928157061489582668780141298574233975289464273008865893028298065479401423970134436510446735851942730881006131493520944985569371407732749848798720869586706277406410812180008803515619923598312019370741715309250048300180384697871597827159975464332838846110084106855688185480430155681985139430751638740728138013745741112644186288306217442756705702751117357168381675543210637796743388560655808408929226159791877046002182968260202677485122283977438590422582775479721186694437912686538650315048096283280369993255545355287619324497218338856023535708869406709872869812319749275534556959313042261295619666431285095267413744563625107601653650754470835341537254115654775231310220410146474763524193263166717422066276476781673320715114700001108294074255501290112132633551645456715615235935147893261279102394845393483495715003354263623385989146830452242339604810367790281404809533811174512817719463216146298136638412825877899238379105958356909865023093443111010628254346681219127670136640486543756531048597799012945305601278834269342683766461914175031513880830541036863313631938319541545564649824169624265010854726954527606300250734211809188202293454899773652764980771144401697399100659184103850188383281399647710808356449388614407736480748445190022890468236606964106884831182984865459264793243093594278900694880164592399789507186963798021194801669460222409295961521465543911523090695598751360901645316748977431873246139711962884252522447104671754152779681633608700678785853206923210468087184282446836376752938365068062828060924660340666572583734118004920660431137200899552488961893423037487853587421801977810130228328404269929168970459284827534123066935766891261148306348364440928517903493642234208103964122069592489648151312090571817935022762164315129395964256252083490593913860491422102614201301996491680242653528586708844269160469929612698537501132063306558763215713333411940592754904898475587814026275198444886604752166969822059010794944459837853550742516124538378702365937766270611679219880816077371812589928327277199239478130027221003633367790958806734314275479258676621965966212735981418447944679802285175152353584166351485227071773770805713900422823848246111535239080622605143520721019456107265874094778187827416300753273338649856015988592013379085062713111826512925686998797787511297865709938302325025626527588552605053076735278927380311592050326678928170948623006428193576081411430302767731890667259052988400624077497293515084628758224779217014662337147254032972568879919288375151396655152712138210204205158024801332390499491791414538592996669925022073234874344954977989105244935372097795819298029972641659816757442854735231791889633870492744745633190731199766890796763517593233271047457383071769798213788886262275444978862158653901906567221416121276526248628802857289648929504292460999470716559309797222713384950129907831876206622386183782841123719286791383836668931715389947100926355545540782798539875597201546346000562289848239840404497562158407786504792860025261297452756938124981235566319975948040629023906608264141756950471135443960304980065755035922921032533130867449142571067077858444100620872420754300570920700537726816556482786736393357303456206166779187531109669478032287116090880332594215583344980458810483525615407571045094048960585163454030790121793299145323122542064184216100057098155633358803440931924018319615446704195002797854917638965453222561098898985788116606920632543126707794927632918590806196546491734373867205846917793266424823184783112367094177814858736587139227963320303059081852749145189164091701984122462211713714398297056895256288820597558201017096819110354412115272885816415270093510377335357324736646465110956469869658373781913601676539165952651673277306780853867527399105218854582838397029880366657627042372788218028108773081684176758067406839039420139034807570346876917022552909280299680313531328841960052761121941154990989784578535799531173182940597739671849649924666048871222114915798486234608857319057483944132966754404006454667992752770390959498878330503605651992828271216244887700224753830072686998120224640298150703899599432998764576516943247433018447769789504870690035421697198876805530951352209708296772247693714729960431918584492004798259045724111485504740350057918246582240218356863307695107504704815752073317279923438619108996134415420939814596565613021223430694001954658614409395934755120668657412677978706154341143662887881957048157270644438982847664435867379735389477744770528822671094103360848641181845880256982935506504500393460172914631642622015390854542807737404397453536424288297687895628533837539508074033974049488632512241857370912247935450362773653262939086967345829420343543397474753296781946686358951546704507043933649647265306946633809209092598712612795879791641125089743789223588019083527676009818046513174385886230480038301769244325700124845648456536340185231093101782374726183941537638669741062093412409623939937940564643727863020691482109633676868338199610355574918140327600608610817267275025173134491402777765049473178836566174315404180545086447802015515991015540956269158567720310595075989923408053279450061836399348850586550524247893501964914805427245008753874791654154261656619785688605342012592961993721197217971522104534155616277716459618214785307413691433176235517222371256105702189752140595833550096275922948202648632801760027604921029581561617232831991325237192835174780013367807193228685443438150541998068818993309404510388634182550543441118899785662410686050129012271818133638618839545238662879436528883769786028382849243947702817762845082449327599115110139981335962614246582356759220947020464176967643645134144911410911181034821735393948960813197357935185406960335714443256370427240322974659872820825278786693888304394106689881977571548928898616060346310414570007601532249346308621944429233984627960766142070745386482554800710426104908349273535644336817384612723278912885604272456079116997126382531477293700251083586311868658776721039371311722769003007754782674368558485427729474907627733026362329533083683244692435318739529750156414737142339533757303648934913935574602897556815634784985795016942247239233837670534905276217128917250100770011203104158039233052650736428022794935133067977783844878000373348954600000727682686651972203801078136838278482921645966855478412585254855808485202617272840080026128078465859490651877533977604583882880816028375656680973128541304243180808431228669462575641644046353373698330801498642017166314869617460574289508554772885850731292045630338834719145773247081855360548191260962961088699856344865190271232539387383227742754453049924816455344573170301336679201999987964356545198335039177380719140966720361719140932844813134792215373698978583734615861565286568705451489995641988148370488211621779963206244692418113229706973375053652727269739173406071167427871936811511742413122464655850718380689781513143265716455756578310722385574029326352691832168248046879622437038484981314452637305536814694943773302402000867249199609884386205719810374116679713236175133431863091422745872546285217701470072038504509671727702420418518564215577433518522635127249202360799760333195772346197038572298869893435907149518390341944151493363876807366296337952197027444806548562209040881810744027986823206208442106439706684702073722203138167527324621047726859099095887929332658043186910951595506617490219786665633010223463455818738190196635089982639652224335000621646406068496911325509821263961094254108517304380135682521684619421626538132406548157613231645149953690225702064839766884524382595177018919975859436021450305396113177109036029703915189444074100136108840000583454223102967969192249983301480399126105157658409450329651300257896245915967932226638366876366847545773493760024011918665676669771779198699701736967677645645397222568165889749443511680723463514344923462995536734901004504636932649096413554174337176482881202020507693280763366334294088305438811073867812320757847397826200573288475926101626055714900479643322372792282390592940328198334137968349602568001486044390664477665350285936228299258788440941963778965603849642783863892698740315227024065035413043560472982252755564300659221651877678759516649389061699700200471553102364461148929683330116895702024511258049310328806376323884747256857947633573962461663471762629887466084275007686659340774718859881728181971909201131227815081871349462390858420650666677087115853704854181789754708428156182434484060713965697094915482703069239362002299313220459704014499879059054961962777239832242439486509431883539054352653692561079929363057321836702372995181468986202593364157570108214217187276812149097190978105159568701383853998346549156475674694289435236671033994984888555015631755908875607714182381699649513969273902011672622103849264909476664540801497717370493808455586725059933845965032237019860392381126944462747836410180493746576417627042563005652391527208751565951983738000356500871446056823310378558357226362960049514262671507638193214968736099628857743607540625159744681866809748150428969996573348118748701375980216305768367000288974267847343559460604185845345504735516274629697385520360501350202009383985905759409303702067374375932266208112292040636194045300908229999659580079309031999261268564979476009369623995798526240915544291732765523720042698053567202874632460366882323007105445194865315698322982631856430390217749599578659554846849360100777040179850546539481075656165514801430679947153190992763936694954582611698735506441725537332259204537801787070663514034615827074275644469449705532023746434572708645608168175187982638588274553560881485119090613206934799343482879011696715168022808453177294932745589231115950863680361538570389829192628117994389414602241767437514853874573685962970958925422021339742310688031644021486443119742516032132440344989905703493627248932123928462535381834763490063791862818779810715876377617514396873298417095009896303491834653834037281046054926064663010768671069240819042480762759201908770900337468954323316705976002897454511846581197531877955823112538642990696327561210843821372013143677318237939341293260092208155190051362242627784712846716930965657127190608086838425878608361602049976318325012074573845420351827111996845475852527604078067699874588891332108760800763311303536272009404370884010967232940009446485838221686595642908468776503119020997507802888751679981444016879328106549473960981914491334983108334187583180080159626127895526975287057374962488528839567744647561166980487820279784249661645810450311236472634593294324925459613604626461059227331593976949370314758522394642489232453470834897639983762572682634479792836579732463853623599969075008947785003968174174564932138000332303081240768421234611078077366667100359082020661596702925595162667998497062412539299418418144709949488491540391519743615704850857259713482286839657195409722016201504892549021516486262176398775339534563589392499877658587974590877092106334865055402109020384407301150223436552850476050381418117318442596777453958107809834921931586138158861008226344144255999220403796054932552729575057579064885122637178507009394971407291223515941998787923966763086603508843635216505501991290396949384203676618696004899930119898586398126480970770457008890666306432758445784911047709008835677544373981872741096125439848995874133712514170657721297370354176539190420694507897467218411547183368060998312573310453270607376954279309567355257461683202997841586232878529453247086314933548985441655024833973955717116609493923569709605228875882992642999110492150486021706233506981361626912268898258899100927613072852737620151000256221363116572072415998520544240151715346135822490819291157859374061786402931334454425548286211808202862768315965427102277400174769548050170342692746499669687761800797401731196715380448526408437511309819116282920966088326228946750097998786694743941228706497274122398156496275020997349301375193362087841922385732519778142244347971571643870106096537617692772341171666406001279495460321510037005883281020958458858149211533657084115719711866121000468188299406209821738482359133489280723944326568949416223169834507489020929932306615913285498522096809271034578090067531960730577318219096056376267301348916930292537813994925344488397070428697029215878627681668809822162567474318548546166648763869098370856120823659110052763409894950385640123096101488656884308878058445862211122797763822787730022529534375877910888881161149477258198723108801575250399392658266975098965656661062093846331512461364955659938107054491582305536496210916624411431725361212644713069612633217544229216995672498011866391305253750020803260772902111912275551223102313171996246520889593409394603989803063967915161495143107922463031074848824885290655094715797981109947645906367056830813117793833614609684774486260033813589895753163135229893785629335770493125700413766912060589543135654213173206331971803771687191710777977285606388931821427646123430735577456784145498955447476632778597887270480627891802559814742283436691303768058668780545744193261269806407862788481633279811361410665061477726862721160583631250571249005745069653011435345797891222894076017035331618077428648529810410299941526204329142573022221927111816676738721203002023535096141881898156710898297861640010239249630147850520792211526903756684953244247064437005303247333286175269609017832282863160930552354396156560198598904117205290361608119874225150817360789428808164967972343570843204196768621718278318663940659292760257874254150299979357136026543385315060708202739379199329979447142935418043990059245156945788250571085739146440409940942002297061936639599807529667185334689679727373082072401914383280167282956349543896979625604612878475906053423244028837856287356635924270344699370204419600634127230286534600182309267429537217425023761658556477846765089327375006116703029562055176815183581075779922480348614955074916072060049421565960525190220280756273667140125976794663160433563864751989685262952355931754546306859108135617250140737195161047312621287406788826848030232992258204053259043105662792200019020275143491195907824419966320769035655345411156823473181252678377558355471535728600730358225827497459484750392351610216504730717130144829031602069887341244019818096309357315498172909099360200493503712576387994839134195168325266212424468131655726112097548560067395222770949853860363736440405160183026105027343949716919823026099970502537008080533432493383974973547063806080698264091262698398004489661616454678217524571623746902765373766139641070829244240615451251792640449495168472708937266418896817825516307662054326180621570987229285415030301255842118844295917842304106303239555318746727097209946711165240792733364240545383327106156341658235610798655771971257479461964908488460472710695529921915993910655970570155356808835810024529135905996213941285143561050620369926919585299812135282915654830532532257166365000338643887503657768513942736981937185644990582573347530841987803669907323825402539830003253700720069768280326014722938481338852568867676820447477550480585161276338820974960744938734517758237966722030064713278978702980532889620623550400282415217364629095457273317103020262885431812086158755914143156119404051261775280602487573168133291384289113768506006449214510593773717068868683259867200974035739856677437556772735859108125381093732846080179329278761036847199320899226249825460972995417776334662949027344405911216755180541437793551161889720123575081939389187766826227469579936445792788599186385957675116335454038677896490949358411152150973463068920043080484218174205350483737397233296454575443314246767769901650814327039374402292883422025815139290076427127397391168307394850548085014575526801812252991144835331951658016503855398384226048971559634101315863510699528097622407869561733318736458760674633719773067214698809371108116889349586213874179107661444567443034651277466766405243682827937079509837735595044402594502078435347685734013594366305074579617970036121748207237716337232819968385647697546546296218368557273877714006058055246186646208642585679274519931948652731526586342645374514411376021093097328815643154753076609995064213148636122794026035510197399725006789631715006020752620766737015826072741611322434371543301892174024603538744127505477558365781256330611803735108361059141529750161062083423528987363534835125305656402135632393889376537191688973053510797243551047720321866541899933899308737167522910904885080680933359142004577844974079093397107260048196664698001774995604911458166926009093597222862978076863269263250208095499304596240456282585359414845219391255065405666713063382019213339285484913922000064100880578337797471669266697067905357707190092385831635568530643421451211979101106036416375464295368812178634983364666872621154223718192113030920360775666103837295220010904772930292915563611099484653495540304048670917424150514381753515080686515463075864545997782211401877161450120769861380568387510891717488077633331295424912163436643652465818071789671551282534962283354924256783205322836644911366101140861773785458567091716658899782880206766443058810813356696627065218091075192485999619045510094441913414420458839649624440111170682791971305054794720725435496309733753879618195419412334615640412305696021424767897327075164333874271096915230651056374861114728988931154465365612654260183031728042083624656735910762404385789792972817717875245863249901113094412031576263122512870651883063155253368213506887488309491330546925030875749272060551616206014457008542148413947464583539629061735191360985217249575952740113368565236286815922062821198477640256110052705056716039054121894744505601602307647194277769242061570200670612968433347842161865543294004901598034125788152412763834438990805657644955093374024273091831991228962824444525505550329942875544372892676652162312684031546148014254477127547511119723743838590158620589762571313398655571258681681254847759223813353584761313613234527405859748683030750664972868878110892201324697512748250385843874816451061010743949764405241498648855107157826801364437001210559628334632205517414236431189527592499972413467785819879501794843468578696247281631522600990783509483846195825373395157155062970114532609526852256003822905899231324019442213916037237211048218349031360236590460406101255004720006309815256296320235059014744376158843938473996136491572895411632031066292559078303464605612867290075603856084341990798441522020008659682687353071062793682383378670998394923559110378616936396979584111571031403556224163137194417353681808419883194384197280309348289074463897143249638767264308866074237942775739170110192031692837821830441171689935723259967332115203833853168183158373863176866608368563868261131834260800721751698335824643474329451454186772543814219313276558887106851287757284001399063143642246393097285918353331321776599462028463968672607906155609680964930243768708724956835125418978399914469798297204055534671643601905101680695680560212707663911500627116784657151483260336005581800262249787529694370967283535701612287593348090365222601296349998043893603354251637585198131444636959633708781444050538809998489242021731255316452211066908027795149027329134661183193185303769681626344619134540444400734172988637663047443288045480913526675555582083240722604055712486609124199075698565315060969405215089738943813860290430153792192734580638584713279442477600889399332085295777703207265243453161331841469252460474501137550707439297767627793824085452301449808858962484800485308756724244177808825145779117244539311882643735522191887137376010250547826387265611139200255518489670100920348448642359427289976234181992000682406705018825701035690990679481043945890249582283630063235703821794584750806007800640347974405075338458422420179835056898655329727387302612839849747365175197267028988807399545009150563548914167322489343411354468670955258751087976149508035104612938710183215117548804221700068446876667017923666612397566770320315981250791145282653683633847506733742276339358039067941364101033687571027195328037977758026478343617356304062404213084592075501711918484271624356939768768695576585215439139687061430971227101923359404456071287835417215021573780459032631802029517662304284369780714217296724809285690500375145719175518813281032811227002022780084542314634640692547197786229801581535586685568783770795212770589235297163331845110872608263598531397175733801004872504755508238099662916448891075142746416454988003122864048501980052611164541217669210436518226795020642830510296470274245331734648426710314601121698592397227383977404236454657769229919070813507940569044226616652011127836967984783160966784701341635013284832652807669997610186480953659741179453174604285710770298537427852741962440718080352290620569051428779069037924826058852778825229916963360798600050109086014735253848023924965716541765933913696551799587783913365706326416802111408372904024335545078412530910600839495723072665687119252456947497686209337675043958034240762673706059332381931828151362577472755263519128131186584823703068735322054392374077186227582390934649186145826897246425031570031615243214124929574833004932737408719194010145174420812969107888491622754962102325098034568947337926136490197209973415963913218337794228550267046753709996185043530847043163477305865764129692603151487837830428322985825359658091281743290302940763994763067974423027999856831046692049813800739300517653473855165400066341364293634973267299428836848762444562251817529215625466271430947108401360685016351991932812425069877303344736687901848767498984790419916320578664493965648938933315899466542188845028744387917608547911487354149400859646033073763203742658551901850838859896671581022583719087602658706592122498922234518820901485476900105665774360181639894179317889496473928572880897160946448270456875685635021817083924182470494470491673019636555176440632649862118230478800839193876980808415815348199525365584341893185567345476361958502694131861684490188614741066343266357782916820031524318829541598382100129582730450256153362816024542731507068930115436598838729056591198307277159444826949619313601087218540028322001426183089529246562516381319712597879996620303024996527492778356706889929158435565826420772309706222505285650804015274169439822004772085179437234551727245223868623911056639051978527370228334255062009473896940377253756560773684820195946636861360704103454042048344593391263800806346193144640539277907302573569126947605635008891816886653662167186506116572571920176098795112715009845052096290392702333482126784981895764499388333194187163279660409559100903370629331027768319710285179114577719167155839540239456174755496731666637184772482990156705757181144935232942799879150833996242105580219211816667681553053388004902763220796110849640943485182484830973484838093012056678632847887032249905073330476565911290283423501628924263180904537334810779949184928378692532920766102583783996863375540523448438683349407072845546448251065568292265201539795391782090347920066851073098727908643468923072090398095196331796179823114588768048130268052331740618203010189598442366286527594737829421753918492042171952534808032352919531540303708374921836834939377638525088503470045771063902492493168879222141814868668169483256335431051505702502909378900834865045631464050910986830684906538775778313146470159380066345762075159009844886533727069638565538305152247188402218926469136716902892064390904660905568818426257710327517680830565310173123000942648897439499210531517078781094151805315734715674588556477129590828050618038812404396754967038466275969268376908589024146537291356328524448090322528932872622593163332906912192344305089214953159768932696483737877016493201882688511171309750915275899019066749874371134096924468318976466952557804836099694591034090012989856392710538116382646378555154677768322254009173276823657870549738698595301679307974015008445728976797028600577605165040392549747035373510036899947592609144139661758229577696803876932853968818146898410643662369703900326343709927896819734051431024760028499264519076814750215142198325891692884714823020311960404426817329042074998893206068869761294629220190186967575914133322321577186782663838958593015675271125312498214672878686711028292250293179824650486902373356510222800653782261375576195065402467998605722812189278042329285894036413589011693581043272664944474591545087573371347593672953355482969296161027348288611199484644893106321293433886791678662173892377335845396867218764655834763445547345514112673705930174629157278797292584328204669967390782077769800503198927781668293991057981718525547850927608061149537080450660486897962200606012333516602008817409543501248192616307192979594921104799329421912213732689234193140815973353748116544119430946435072358140670821735133827148006255702180145770523975284729280439677092154741066052541024354408707146174428905326769747150813345786627816830405474073864688686324115430727017948923779659085069870095383109575734325356296239344677468586305270117877852999137229731818544447505637481939726409183354599581952971316178336000948662623240376393259131811511410588362838804494795972026905258054851047666290967283363368800221832871298136879736527459611327554107622785955874833156768688249057536880497434064454956498114188755133011079769954819659003852939612756484559839028267186508395816322664188350822598306642918125976078388295721078614189902422088199641313850923218721727851108830249890201959600972238136727674249675086899801406985221736446689035630714997715364898696833032456417575272472187561289207074643889481766647523501540332213814490054086872268924809127861920617392610414179059232540385187401542945535856588632516457971962415865052118834022114420424885314981010594746016370535554147478764180044295837691688987094982573361682035796606387535864385873939603490288243268853610871823255178110397754576103351416511747702046034051012591089165201237784212154099752658338971819014760608543303706104772393086713540541885445156092461501557908691566846792995763504231917919908502760455092722545982307225953665662489523738023869241760623804159184125129575455026747962162209821913121646404479793762496270404438394159798380505010459442147233394261282243313363041229777393295912228551951598705803441367401436819362509109385085628944749004876194625214873717981606407549811862216906915008750170078713847953934223894697669296601184158922361632850495946452710404063620023636677692068440136778992274206607867750256545367657185922281464090463450101937498703053042956050860060180363026156278921528612836061206236324418741840627744648640612191445856036958204973809155219405411520161868951146977191780719474918595645268775229810680110565406316528948510816907543620264261153813350032844240506265967686596658044621940067316724546030835072569045969165740615107981014076761981942295677769879560742430952481673591583968475429113743921886868104549452188619613856839460295872580269605828984801436405934028573679504058348985845498738814842695119521945205338104709086065758765791490763287720138992997105622658395340732050234252931143523470386012180652831525581526874671944801159256055287045168306464348955841107577689312922101268689882677599460582535534991395951555166414476974665586864876998205120784874454248071748057699709386992582470410363752298561151407922726112079287358406469519773160761364665295593314685786643467798126307580897841500991453107608728405913574797624991604021141288753760025222282988107733461558828116355861733608159471053042525974900025534313072704751372094023332233912284393388392357485872288150919152016566727076542035131989678876602518377905459707703036861812485998873801193247263730032111908428046383363935505403528514862877781941902585611008177552144204888600550608314121960686060680703670148683688659007025279790673608154858279357325279380111553122540585479165674226295426272783478938056205480023411789340367499590747138380094365893701277342509684378185879886609169529880998705918535125895378883343187820584520408915236233027074543999071871640940953609662204916962632097577735348821813726639925217095588778647455413095876764836018123157999190390619566652595417234280108250202653908540687142555779778643279332009605270639142728835241531659325277430055312049199175358005138483941593026420392776074784035173645825801049140368259925350878525690931059905505743319180947406275331721713627961741144194662333365187770620658912477290198149543432948758676715230385250458455856910995637645134408162372061889492340763942718593971379395741839521947935707364937932253345503812691639416089244776307707040812845146458969403405580951307993742572171391393404324711066769825429618028776611991414844283496394916612537746055106779177637009070733125215101970530329704677181596670435719158210365707345514158450447006883723251085992293031120423353139136521482011582018943226812015961679998673641353349739455178085530521499134540446627949279986235887478559869940375218027206544730810867612067699958244524484641679226398533023223915065454693558159302883000819537259938409053097563831097619334362776014924481331764865729510740138718516360197079265655444347941579163876737511422573777792393586718301899815192043616022895956807546039842946282450964731133595254794733631413778120486024370488337292043130285836390309436585586537006696133742385199865410182227839824475504949497194882397889978338448558362219165729091453131833447382647967107328433827852442956259300952177232478678484928538338633379069551139229710241042184421711537152773508166045317501092253538766442614485527828082954774556658529096361976641610381397959461253220109967792111750321782592291683695292973673504319703177452570696804866599569527982433617595673738372204057945541140056591956934365585781053421805809888850558915009774464155760557422812536786536543704761393760133595604917621772972018941933177006830213808317805514136524651242692822317991448516340615775973696950297534241691545001514920158107984494385109347076678652923614576539645482456362688687896948498559670314280649671367761184800231030099094031245289924166911286052739853366235855982156397733510894967176203593784282921350435699820755883757035479125130494370063969430905015550621253822742608969626783387379905796884886766519632631357554578646580824478464653466339966810052491852314153895178877463872283260541005877529409953550543251564992926458532353930711970646063791536528021800550847857124745219461210380837457199246235171906404770585401800087188602273845225201606261429730055902745702961406441690557594858258594040849008232255984256843461963916801968636420473283906630979524758568063858451873766989384592242626907514096230592209858747012104613842283265043913646588114953518286244207712729102966780452303968637515165971123672718876300210194917051486264104391751015887265322917788521034032346939314239997054750265207534734815325826615154626249113675990723022251085807276490748048894894691132175227868835219526572382596378192252532555128781563002506607387569938432827612553778317719670564298718597159389777765043830208484152216034857051727685284950599947023392109660363901072164454560881575981988337378456875369874991495827141555165592763275322846480351498235249532418885601153810080058998976434364545465527345046793789237496081526394139660469187757690936810898296127889190979867703022994319413129578914219788331663123989075427298866997175534945402739113928394054824067716064996164708460914400420652003186751048074196249451921584780102982980398229708219050607712841144389932088048043302203805170313780637830984892088592793258832279330267202637138244470940192424474410498530676466031411322348423070288211327526962073607356405449900718160657971819264825517255303098554325063798060318978811290730235519801157434997021541079374954303702429800933490089853224162833479145469669194724295140899428533700713966085708537504255251825349138395597766482008879557548501786427212566748349755668545937089286110600932207340942627016400881887653622066745534315676316985591750655874649772616213235999265607213725023204830102658935136491603012063467286329137029108973820984708094701617883857587259241632025553112769390295734216640420490111234674246645902064817214298227902490200620645254913628165553874693145847540796627392704296327870398543403095198144359878583596342839520305736486697493728604672719641403845597234623104030584752592844818514629174984412129713164625752485444049166707446358679342527336729526674324399800222125006355077250872013162377598077351514216024951033644509246736035707409309788458842597265419874860931477959466275459662828534032626481162608170019189451239973270021278383283292021144397366356951539507393163550258957425336626198303492820562747900222369669069054739258294988257748540573859223301748678001163460331469527432181158623155329539349771461945066865660932797522315365006694912346139941180706122376020275797464329417908303380079665427650475447024063273096988896140972884357563756424454069641253877502434586335600679135868784638515641778942311345820637190616897065043852276933166454330951348430794026366708645507659112329492026225539850871300874218380346670356933173218793442906163597526856894512847988229555411611324284291664714948963653883506623209267119058573671760514148276696936487440163143307387389517164702713036409788969288802845002439662380511333091020134854828034224038529953069254384895087221488876975048129349942419790113614116275938765731251676352992236537551821689888492428723763961833504127248266798545650971284896088427297220322490341996130963189583309937760490986206520568045909112287584774046773060252328040550263999699829287986901950916209418962192929302222599100464554467214920198777876590647182575475601512481467947915879975398416690677856153705486992997850230799793046781371097754760264378979530202261227725051854379709982892677800592508336158956158905760585413600356417522995822137674405288815199460204341938185005661433075343184178942058842163300496188535684029669420010643835710381082475999241529050945728878138817935871564120277321666475968479952820548716330417249692385334585640948394292167086170425448730283067891994528319313570476850468612841368977789036652597710397500742924692315234097488654215269822302541947615316192492374923775245920817901955849640919679384002710108649655417622632917508254091508102825132677479525961651606816093281522626767677182229276959019335991548811992472724197471392837898705075770832594602121257294883133465240264225727581145625472321153906183373480179814369343144125722609505531670640632028210594525291613720716282508061833538349324261071497863474864188059776808894815713647185425293061642799483879267371234373411659856360813704301852025069010874524894101412391351819970966954861978918346646500056150817486865758000441960835438528793110744321245063558924525493386488756123923418409172168209156525724441951211909839272279920189207561931921957795476767372622755746980047769847764934710308847176057226992848030124307937161406836334601978874304664684346951161654663771005961210953012601151997182441435439196794304706820710111056604474681944233026863472304970617479906239014508996676877668500814823036535678630563751215274905112972160431212356513808964184321538794473605259088221502425990354214849897174910527911065226341614311474139089405966031900401693679031634678946926983008170319383935077026608599164298751703303440193057331291820435600840418886069106632418142625870354277566355980596001589448046992351077468426224874761804246478430404259953783615562481290304441619631355124893273593790003399651714858945831833794384983111066895981762129313609690238039864143547048584621521482679137365283021358221937204212771739620697122685152069503888588136301888238091013047432469197687410703098345008547369824992024015310423292220181363308692390783170390202120215993261324104307707780700543074789911513942791386842250191128478228803571177898609610299546042046804442550459679103933346232823321632003644449996748692226098129894908502574977925993670126908771196320903996983422971521363383067178116411636186121749215356318616630659448940126177921077149923706769072127797131644050208068460079362783247236765027344983834470327661126654273683652732601100352422473410254139912242773431930239499114802385837698067782228971478107633412273175684751957405784847995509642486053155253088774714367843870338279476417034055252536843319502236468956610086361538264665810919513070347860374648481438950833346741394145144813739434496439840662964347744369097113992686567749916699402481828183657341630597833933914235456213878014784126836404310000717930463014254386561552107946313213857149312748071326077148746898842218118924320367527106951925113508483264060219491510424393254948851597022595842744877159665359351460073726184247631354083453910432118783990887879968927397921917553085338120886439491797318297534508988033724939127277266369643455160917395626212432567879778878182126240388982228373167029908872916148443223900519510752403432618523603576578024958586717841330525135639580385030087988957654982123953170329940184361878488082703275089501498274879002037514857479525999282877140751144245651523061971829157242710483423129472792215837223225107480018656067494250665053185853742167024161552541631161063642110762243494750953418083981925506362248148736486350656280552551869308163552738227561678945103294018967033433771729163188895534892339085738778335196072923686770924462606089567239612872942325541302633515922680849796064431970088981487538589024994656944774401010285196581241415768547090677457699421876427915163415153844236175628331931811525547289702457351132816454842206698401934756048369126123535118712864458150800226950838032819573265183832507805066989136146481779615198214798638368145755991744117315056656373499462574987986967484408465292712104472130823112819595466528626404642654350228259169618172212368935496531046095328933761431784160277918721604606092175854629094276432193969841710277860036717709898401744691018761650470910671651692461018788259543454643793257145504548527453678066651255531129878193698018242215678694724510545299049618207413053748413947472806724478953298219236261825693939892067797055655597334983058849791584559899884845253341161459852078643275517646307551470587632915144730398956648195140730705879542292161689996176011639002783418434427515251104051618003658817773399527692005460126236097117249241662171431778119561673575695044295530148178771231848639299744565107576352800549999541868109662735970336287303842549388228361773629475146637340854311541813059835528295844604984635947322296647411518644411744124771207320194514712800396186708451123464188088025714512384409477314893542807168950372438333037128408939219231138321126939032362530226456340376839873758677680512569869804602583968999965632516241603439376895714600696758533610185412867478457326669133174844363980946738381976648041498217606379606562418048162856588985321608548077251678865669489551546369361021314330793929678858228667452819995548278444145788277952318127657231830052933000162098926486257289984053796253688215232549516306637486457542322816804292682223484400544098595779428202199396879992223439160232342301584237458925686715145432462406174633780733141109793308512632222508812605392347197639095329795939349592289039404762844436918073293521117600137292948596793914766351906156721321948760202701485880900575043437823266525266152283633503991619055149769842471791448041846649176559991257628334634378468649938146532964688567483353583803197753204393104713067975191182851042091063919684183186065126080291016410941395226622649103991648192511930103431965402980077525751995605534962768427299736754633419314836869339574296496076710902873681434429664672155120085405543812178066365762111010537052487362728528042032530004245138026396000014074829110480495532941812469384745669345982910327094537724460051688154942626755001933045576306857694527525398336989086275693660610388268041791611297334229948333755479267190562796619490208948913735607246500056447413172643134847855722290700931725892418449120486232971969361359630584052513180749295709199361370943280758764656541188362665909941862377687002529871484036775944486208782560742003498888709995530629776035128382233299273838983992592352242605257225388852165075833014555164279413939097305912876713085042409367817361400931380993075788608268406040275166644448058219379831210244585003950992698516473450180419880981512550862938791400976944194773333889445445508852620921461812326169150559518803865302693026406692767002110022368375093555749797263452433641993513936575877893716893307431069918737225525755562403706759468962649206619552720638890148841712401820766863247661426166122145088004401098144991274407042275101339375936652223170992938539309144984287968505805118769727579997160486158922551105500306921651166329074911154309339841803765964307126769053427445197635931748911538301313973836042754854203236024473654055527382672943805090318478192439107119171740981337228817173558716946443365071209552163434016504456361879301431188545829818310215064211631696743658243419215598634882066211421188689338984038994867288634523946947950832295041857237204750790906904175591560051697344309907795695987596341966884496131835387638348343614173671842413127045699263718620505920890065876897399247905744105917016345031047220673239987601171874102742429024843580377363441169285386411740596752861118400791440887259306473643955371676963221737106686611562715517511710309045790216517542471001935347585058820696598302489874043130549167675080963866797508589550294312348506597138144677111819463101190420500465467927326782451883994538024862715742527809034812362944816289969511514853660324173681842502905560538650837180933573510434475194484872982395187731342033805151468879502870688592662670401718804254696311373654016092511459887318177417588394207223803179426099100570389560294194439832336692523971455480357925323906056449787844778362448592874063929759351638655012762299816367870759365796358376288258620090927762685802912754014102759079859147903163198298503462660409779431084884943528655296217840463036185490853576056510975755307983274880624167804714306705630087313019392347475980713411526809588100606910676660413124433432285027330280780457773254934674945762505336081939666531377005477361533325295069279620175511237036714273214068055077518137945033939786920201512952859957495313005043144255636452465299526233591457481729477311793272000902075070868733490999051686778254131312828666837399997666793571178957518020672106729668773341214101973347960772404955034710314207455125978069125960838750925670014349562702941255324526791048622093689078910748432973083157180433545968594896970375426808789101447388859522081632010389063458678075378838914096511896135579972474806104543765839209628293806921614808196249922307431355487821623465323116370851616841122190076400532909008593127954556533840030316889182541762108141473157762569079566814676544190674020114772451198299635743696768108240852162161801464896993118237188209669591932787771316504865170074188899351762683102159105944330226102153573492538607471799859486641798249074047192465824872255383982739179375992832481456000199047519997904407294966924791959496652663307016140853335651661746613002726896514466539788171732945988169401814279764586017433982240831930269563373742037755765389165906956625473349209087726904675714595569315714331356609907209896501372298539425398454988324718149882304874479958625216586643636369633976772077050015231726500046307442019033508501031065889494556503635308051154384682059527407845969066186871922881400649210335742280638650245655348332885837399111176177912823833589863774886724341706966418786865767327182565794896807757611372729768467862472947552379609713783436638881826280478911687161558897095785138183050444628164003050420586240825105193853981923253591631653626505802440654985301108503554550410213630135466599632349219900176899346452108850116458116136797081598585568239606126142338324177166405157969074026752527722490652971060477323274494024264446374782658209638449146840138500404462184449087566656474158631899533857331028539987679291579015354648371219284007020729945235768517509618098797253072099252714799609924499157154691993171958699730699177496771767556352354200461649804198576112255726306224092554911925849805117252843636341673286916267245096475314593087506439177907694674394560496011910244536279639245274452156181656928114875117733944256016822841248451531387995919905397563787485964984775571472667799657462353466174035394103385808078674798235501053475065614489590611839417021896993305554593038700902050816359134702517535355585692765880262145277790576891205496940134140832676120366744463554973557230448886287625109960662903148467002123444577394074751605200273665625730381453304610536268381937260054537367897120982578878137868164858733115167753985638299533798135719070482931411488948823718149964208714297979816667972387697795272143704789858916688177937958690924463849738238446949697426726914690709225633531379861113581904850566181681782561476076088549085480193077575918176641467862276515917167417095741709896052612286299503975011618003193927685487085248126229673598955805281266414356284944844477010993422965522474818352929965999229116284251887758737632313339896954411596663751016673438133711073212201225974372468292890812703511256847738522783492686312291295329771160125791524710759797614092670499674381684953505239156101878059451826926519198847198286050470646888494056032439280040522325519982694841204381808266122520781821196615547244279645917080482447505960464132333316117368456560178505393350706591227955591685078767050339526062498906664377019302028180645655386340059975022597411007198232438231381712522437556354454180691475930389134711117174263737677903498833910906663027416889321778059286912294068016864118811807825782468990419709656246288961714991991470234495568187281575391883145954659514363674600087163259416227207418201203279046541083033813057224212226339411412949844258189490230057375013308429686068563727214223280028961552902638990523882118587226953774391123089511614777904422941819291012141398813295504387885888648765912290617763031425071628915790372997455784323478993113157203151910080034723113123646995249221479661343791754170649969905124914527920242922994205332597827540164265865962367194911050702515991139675012038913969366849987939464719848941319451130474977312292901019842403568128482536929680797187425964232327114428675588523019828853452907006808136350384610543229655634619047004107210539002719137387805389242697874387078239936706533921114208810051303109198195188785457375323358779631824079206425571483565128483315948984474499961852343778138471273390713575904458785799887435134849415831764794885320406037853784101235898342563526728341785933480342351033994875594905808148590191816291021452557756507553380039740343334092688796786214919694878727472627080026837922172507123843962957931277410624275148066784110171668048440188383605331473955940874955764932329207576164731518096910481818621307017357651037793076102646753857514207013017020659892390136863230680053350792164899249616089253931490358412926034538979064002746576343171256091889015575620147705253496815280392352285528811747488470906603998517634695417884241143303514694355025836283422456973186983565668041234377821233365044988362145265634700401775376110361930826078034667255211878281224691596156619920177020739645529187134662095078723640350262672519692670888817434605215781369503426608559617966409552324018790927130386998966517176851408671407190248494919119421507706522626862238216366470486877620487626361687240364662739780236275349866396432331808836089909472018180321586224286402442368104109144344245468262365915940657460877308224828036142862013694433570478136495501034454020232870015308287998461495293820745492494387623026823765675638249283597468473803100355368731032437854528275470258884230760217020308020703806614880142430623706381435747995272024080630330683260214205520971719191383772486262470762938887230677611919524550539937776650708090533855635042253529981641266555282828322242189408875663621061984118402199793466370542856720415449483487730267053458726049629220061146227249344366575005077600772317257239984056934147774136179033744658785801422221010260734405696613950280844794521060147996628449550544235656264639775052636715422416322404235943098600554952851143897012227050438477238923747479699813188686118564406826713661782557668965019703236179768801851533820264268072271977556986014006813375240591808212523669174068975280716858013365210144048319608406066584712955137828426120130423190926797685616318305664460608192689979831980127721014279470773601136222420592554358594146995806721480885338335477717309384204996968850885599348979419589200310652070757690633506540874689064313277527550186913628322356076785586094135877649665477212671543594717636132283398062136531777530038684380920685402717944246379952677727964205828910616416980793728024402112649439391388590112263674831864380915941586662363644031780888510031528333544489225039978945037648970385466359183536738876558269627419502276903651467513305214693861003399996812873189974910382912228591471823959590342001120685523936049574391808058345912363871155805000304613834602562085691138984127690611172009724774292857214153291267600855234591054890483994708445766169736876299348356544091122169310606978157001253522036707282934773934533500850520553839167686688064359678093727518292789803544497575411592255029376731743142817664992728640973606424549937463382953139880801558640044807753609294852461447049379024535334177069202138272704968254888157225288260931950912142328260437987337840191445137346190936839696523256406733242003110816185537308217851743739639992398588693256758522022360758126817936616044601369466884463639079882584399879243912689125066866842599070674001394680340060276375552559964128743110661931986757590732911995388241398245047308773002582637040294471766042694948567421206975092153173784965497624342107186032547823841982049619195878323126148854678274590701458027000330724054564643659487218640767392815432729009890182633416615691065617175021935303583509110551928050857660443991359544835931598053106330564568251523021970588517920657675150787040404710489303248107035628552642351709369949563638642850008405666579612891414695096416046401894874822891688537877310543061840585998049735574707332274185259396981386157755973973144276899445612784674468647961938000598425563561253602640418310230155358896139490725481166408306048919114810403879298066529825033943415265665581118268767959308339385312319721677786455467922797616111415701993071004537942833673774275235403110883107607402486164984311700041746710850620258714328963683499672292684635391297199545695110101581471870097598703637128666971424242682460155505568837498813268221552777373943130743889935829579763176434615362501293011595918243674005593833336807761900727665959812917978759485410066920320431670912213197377678306669554280081789034858885521118118348379490087722536737189256323764302042101389866881730733492186897595408443514829087143221868027809917263384350845999003958350136478868685879892854366516865997079543801998162466210285866606000094809999870451733924541138364041531177231702186916490614670189261975822097029354492785130131348377232517604560991611366657922649665371743440475176570364847200431738054332459398016661662863347112289332079641631575812973248988714223238780906570994760909124493294658358627128635346130148038391361714790496456524772946358395216803209451187840238597958304773847626955244877114902103327416171461293735467998017936976945921714006023505700792573666915090078024241156023245764159701381168192472645637527890389924374763620598773404666814264197977771076599308863962407778053350149567251974695371330517471460701568111390650104044402454813296484251094933568142308925689589485483180216513366330797177702311525283569968795050344724999592650354512402719806421667609112577609714283039051582835688763824053225467690305332913083809914888023068365601031659447767445127649661879931354171553888334438498834306677301856592579295651666620804612147614889564712069679002381737001722527347018194313472591769821211411727230228384397694797736590680904450855175250721932271566513581145252199405936401940664362840998644989490957159164512002032165161681967887572487016487238564172849232229580907787342916488825132080590927958376030312517166908886958369521652178237841714592017597595667251111546013746728239558161855137816744644613312964281186374611946705525326233998667847738188877422161325107165641194855801262352760451496648238108748407387643250735400544391284257299798012592160170515211896674584071681931049684322348884146723805558885620289586216257323875949175635013252385788099182793421546605008457340915832883257857116504878619106551940360468109780621986728422303181505504139847101217981169146681622727157135993274888133905545699566381935044111566306979691913629713367360700952367954723645069687897036223092473557570702084480579677216855443600422832069026009252979792439995147355459083767219684165546969424938635092062310254775069840929431257550978991527252925010084069806111106645705997838713762189255469851725839666827184301644739931768684484722114246514149539454414503739984342310711574761842766182815149004830547567966116671418324796083191516576147663190870160191571187057036033673478028887743274893239951022997534562645285985298139072064613143339159608021116863736272433752104815562057711814221074410051405033554233754277178535140285342914450378221810338196342321991258801631454727767839044971100913421457742876885187393002527853600774354935838806208072248063103615607088639583130628825460865609873260148086605435088304429887597484641257138326591841685696370025458494004282841443511549599606485152222984835777500097631608894319319773162200506327572828514299715351807401141501314920963216515683377403131628235825620212285982654062517325588263115446288647668203537230103895393647718516376474822359193911378049988092695962206670457194420733358442846664115774539963820055761133260723731090145055638124674880613593099783182225821055846645895522660051527457788760935643615918012457935626428792334480850226003610503049615859464690908548622853752449581372753751071865527808829107254129438751818875052551749043150594963875573904749049317639622966822042346980914340864936092101383601624463982322655124099871805594807518975450688645791169949682105161313721903334424255742375350862729943376825912153934261787165826080572085559747809160097944037010017510328028819362920604160086765731205040234525384839370817452985040781319806161955664384383524099511013078916022774538526171635544371483584652864374456620877158487075949733375350426828464081811867278386662061680963773843168399211537323007243095008449298159945247317777154100935121072179870117744069850405331352555350706790940819935484507125185971650585319971591616843434072478502792200395070196408222004936452070144573050903906694056961323323803221663765695606227678812781718093204450463664510701076764095860169756702352937936815996859336453086462860054625701444063891581579911021844578801023193611908382421244283126420794826418394163049644732345773940790863866795729214306539368050537405609432850068332812947072438564221912077817005778596107820811531856646581429386600185815835998780747604604932755310978185075763612439605963835200436254953997727535268611965826579169815667479149048095668806766480531779130780396949382667184404480143423119138333744525013814891572725512411102938935551480249788040456086775819035594792590383715507722767283330092095031744731225100106429135502137691606175387995528418673566145486660708762127471801226261433074222790230092359122393487413517189291045561147383134830803448736839244845777091636997880383144424455689735977041883699276147337902243297698603598312727540686014068079530858664319770175721407887846158562973106049032881266039154552882873822199002468578710076990956388321687061767307383138762029586176602080121627312702834478461896676402622287603959312855304443242573053641270894202567656571125604210474770920280465629636182026463901717811012675244231130385569143916620507815850512227557084871206017347678842953913905845249659439511742721664590638172103902867447137018725155757771192296405357967950906501662182553587114500677963580991640113508363253257850847449400788539242549103601139222488963145479537248565038418767918004134175401750858458186768649610760358135320811112261339717129640999740177690452990109662945190968970434636832668017877836926573012763241140558717435123113526780937874946209952514055104341519632057209038034888780076859312193652042723203646967276108506563999132540346039138143219391733645872852292165802698308200584982514813034993111629512635804725400740374423039876364664775845209297567182259316103881588778038514851815598895821185607685669726056047895758648624095916795355513747398645176381285241848281223026689766752097196781112081668449424860307013683477857343187426061504980236675554326388945907547852391160378235629107698031088804780341952490708015545803777455192191334058102177556406674768010357277608502593631818638293836158168418468351071979151421538052398231771321767391953714735561637788621837824388860484965481135684000966023093682885546239192168304859568100770143820118246342289609657070274481999417735906914356340623686302005516785382437004186711041055153075675544491441677229402397264123725353564549432768447324733515612469335701077006294970040576604248140512315046000533817133464008822962930832208428091295041547952638103024758659234386278923491564578477050694407653285642876298587242050119352738306752194234708007256272395319309117627254255631039552005945987157811564416150224769651698593391298332418091722386207220047029124077597325673178218737062633473917576038730121094437992639332050878005243209998482871114879179439268373413448356011967743754847758641670514435122456166346875165397759360158690289618585402546138280841517052913780883354600847903011034721884007739148424291722658047113952191669739580636048179778928128893882459150676888507059581356009115848467572618346195976656395788985981219136588964684702688056529655107673327755048577880250504064320231956028572266256020461258737365200868658022491135012380685346694938332375623119671217257176827923440806283331651650035997482681296838976707463686430919475579316915146421219075360131517839336249318499629017749015745676219810536908964006705731277223240036445182973499908034561190166253581788958773172072689638301395104536399137361605300805662463192939175822824931128564081964215215400056968338823392208477378893323861483579092273676683612049885167274690854346612288937694329782026159424664979274996262926111811868245482903217580383040054377259698692812194939361316346546671984574673224905764784664880212503125311753981393143192269601214272215247059212065352190304222933907258715716077429940615603660758087178639719882849551927138152485519365601391547934049745153984298584630958390107975470342993651514793151639592513113158240724057081403529584781937450920834233322929320156912308142078967708922302521005602014580983635670008822781170986214773288839299735207395292260890705034840090106152848078331890892841130948681861023320716452156669551496211578430868349510184289191019093249757734058725587170913242076144417451263086661773674668626173016699636298813230529027975835843902441725000897642520212270331563732969431611359824706997359624875443402390517081086899663470878176364926258287627360773997841340318021008164561136151800288252299511041403605828505631912588282179118868079056445324516906951351956608688223599045424263941268995511812593489486951266344178646000594648283907162762032026424646787934468084330333464582262452575686561674068975502297357898360510220412184245631517495347351812716601049661032081741941848609386739403984018893094654451636777605385787302696688089025528500107181880259589021193513431525240498030120716779473344272324275170994160405327024460152022110431029908360245174259389486206792572976105711663099444602328137043759037539097810660741477241142759640967705121043245638545245206333417667670552561246514323695796612529206729504617738913654538647690644838372415965468968221567001298214992096572471410660188090731080444207934264632632123801066824598522835677807949446176430551617654175077246136688103064983093880294083461161894287224878755617758067058989551121031065015076942237535182066484797526730515587205319722900466215048425094618804266784145476497774620700134670661222721246684224280271028304790098726995881602133913844843441539729554882212023420055787431882820328187289964838420781942156808620011078219718936551300358023798565913189995881148482660369972548373691397978804478353056962138265657522152321532055827148476084998501668868262524749013847823109276228101628127884495794341911066688083243151819977480730203655606408708991316623033753745645795292651155198176939386442892648868398631964023929009510788997160874653479901511787635905931545131837012191993685243216023511076941984703290379171135199759951331013913914981728558933784913436629512641391563416341637574678187389151811075991074805965181341459095826642540484944289940199822137970642999586182276235820545941175115201494511678582036273374565163457601919868618513317394587925388020986217370562078229913868127206941895483172496664492867379180271478479030427973390085584540168645808764661032961322104724878051457717332219077994873343027688537771996424466432517244394872538901156934546979896867850005641362838413285386183492072592462974599221896173847134701676813322253448496212085083096514427013613832787351224217468576070836638184095228169744315451573580302087160010221265940316899573330716305851535883908458240189068523598184723511542000549998219704665214502143040064371820646005933490517832728140581050967613044801281887386850171788772968385335433749166242614367566431774733754263946924360146389512454587103095249175895680031054995218148922617560243961557350863135073895743680991361660660150095159297027116654650439781999030785573261898937065933983712037846563406857889238813373045880892891887336165528546650631875034469731174846866644461296457434910644624906971434153092419072021586625971572071993235413857754215773475104008507161249934938139757924584132382056832276346796890324098071544643372424312849055660430488221252465649418272908628512382046669319529057849321778608651125322809433719968311305843565795253909864793112986511999961788191219693828009731471472398759094113073357914142183405587809406548020044043974091229480690767356600748562175041881543533070708350934751816727738632203438776345836954943069353781747334376534209701889891511299260773639434928767423673265858309456119019225129670685856632374076042148514486434810812502952429387700970981256250761651981355105437051061362532354691374943351207997715876593016888120686181292772454080871889710839600926087626161843615445917473234060391820254792177483086518861052561914470519472732032116679199701134884203154234924431068850143757741293115721820469983916507749327583942046862245757944944469003052399426423227815356628450906770380926033788137698125263861710336166094520243278850586720291892376308981868079662505065811188702668557189586246968652242754859377705696139465365375008391675188846482910440845638479249296518273181702932834715434269425509073006116871780925332444225844996695894475210861295306649338774336205747630669663166297408976861959885598385224176315637478188793522498316164743189003748438989317995613229532837932224286838578424093904603856814353667426624984597818033834186660641304220269846764304095616458242917582668319819812297340434798425264067138182032533390106509501332089318715924214926389301326207059303084141637807019405323144781483886061348633139696837917170779224989060065169554609928079831054462476358839436138046756347592611748869635906116202968869665465262737476024491239327870249557041855166697850253811882515242410634082978654783424504677702201760906690914989059244386029867421686874277362392320951868174549222097292199287979578768415919341693990979427951301418146591311808436433000234221685447429540923026965701738453319990594509390603799114028132015435653358643411208143420611654156468976570822914792167976603331975974663523458485376036907341226170862967912261681481457887016517382771308231268904399967784076321722679986332006983954886158101501279538963006078067507945672986516433708509455173705949048639985562228133898652171857310048761063958651253352050682840324292540710068731285007293100236427827592711290479690856046899008668165734960418140720583774125592417162745812979116822930044370778926847443008837775510507203894736421241376615844753503570811489889456737709142277245703989833642386826621871994640054670550365437358466858889786405533597254871156143176627115529882972182748260305952495940890796829419866786395423716835826129381703433534877371095297848488147026504231962758659237181264268821197804488418749290556162347820704553938282766187939897842821845817818340702576079446286539361751021506823855602221650232594754669109166060078446534517660900939519700435888564754854697444089852235718175080282428782070584001704501580807504111252415258840270338214401829462983882860603803387350133978360473481000699988587921741608771120593953057981008107988927237594327518415979265191286129665589156787751952541394611804357548741891139332161331829646762204995356446227451265467269246683594127440708804439076000105940923522005276695641700967914973232592139102517768557153120696588566988819956818646751581330281856582992726998507548976896393450239425103326425903120890416584095880553331593700149775110037158964561263449604675095617735206032418794549105771790420327708191267829985351664274743193087285555218913808841721391520976041606976478425436720715656138622429985963542609228060994560010400443494152246152059460312252517000430891766410040687559613709818358812311106926781214483340406660655671266336201443685545479001915866113929524695636494524069102408734160611556711026531775343549720030133735533626164854396518231536184826367705419392454757082767187636495654570103176300884912443311688780776789430264968868596391073912265287804665645373639876192717419526588543418406218735629907451559905077672711425906557744214703370089626571257078934588723328885590257909695903274700797460050935377925012281985160329322796949212057224735967978459917024475482731769679553100434543451248004257583518305139342616954725661102196866996374000992860229728056150435652168960692369366287440664701190530656834533850827078273027865029917350753779879125695275981617156780935525538016753520778870768049075160098823548024854841497204431236337824010443111692112203445420857326953030755547725188709695966681703057143926180348109514710185747237972284958930168198635964446088617986697505108807075803890415530335757929531023897617506562962562185625427547777817426612053935775430255381177227721396202897968296418634311886016060371323081997899299262622197076892762224587425353182347539693752730534622274816870701876038713160630642205089823392312402798331084401396714945783484104101756795917170286464856314767130951120875193694706692145737485114580355646945834549011685357685609768264632503442273282283861603024807113502810152329056711639830166144301425305669951536245753106954056811608327373345231373806256225044084725338559994877010340372272361523029394763563097438979965998450311056554210575031714077324214115761562160006949738970358774236813463947725844077308992352721436027676580315197487068023047287761182555328103487399590564558889343317805717508597926283741507766524188480768468431787407775490772786652889876028034892665409338357265508856956548144424313749066167613944082706817344696829863302299290822469765948010034987445530624041490623934174072553168634180056383783804351234681887530187153038198207936457173358406581323323667712465689174328262054896194437286401747488983754779832913440836887084672127135304741295004175465992106404547283629152637151546274448705056526210724234852822575327063235432693895531017670831987964983085135887463647211954223377317523063948651003930619800434895786662864598912799978156592894870012262781374639217032024905896840778468641900123210322418925581968619097529084762291837102243592778665488220767343386394540052227305463876897368158032180696175601335827868308084039966288891483093308058806046274404696123711118989722137533042035508063347587450284907307337490204762918612162802738957445145444295193410525975016774947887076509094817432676721685127123385742474917558313694120141917291849519018951823646116245881689957926662227702165491210736423959321828142224948743127822769137099843383240409292553801730319465110218462705760235756451394693438776035279761464191098144467332728612542913510035569505910151300092326857405232634066467264718211936883800096798770361185840311746432485874391148321595555197146722022516886376835898616164998492690965894085696130907742617956806078164437045877282470535734473646766892752372641718651389799608864144236541366563783732740094630899048774161976124478276153082007326246294670564892423446383709508291736167951195693404533176599476150620488086914267722207070875852926123938425840749192804867945714982526203521240683321137205477925886389497265650923433225825224020012544104568925669410664637407028051809419237586312084246054517510551730637810713653236021191794715538174321901465328955087511790500663292086855925194117365916394588615435105649603916465776432114791388933342044983235917927281204382452242399237976176830802930989697510184135378839671658311476159395584261558726449044096581643850299795218029148495375487720295982776271905975458432573883039227951469755684074387841455345920865877257770355110286262174844538337317370351675437646267496389116449587168720022204068996260729704091567461445635925135596229175674201971010956137422826305159666958886597725816974344267717179125335649393353543772541530167316767368106312246185639916452079645172560368182263519290806156110955000985531144880401814225225190638849719609911345972570184093623342177909465594757368101530784459001723407226474574042808901556744147003049486447369132700653446455693719786252399799347476877847335523514028472582985949225041345318770653880944974132769611910730311436903897477222408690569732837158585907278638769834058882367949407139540700918548214939341372123217663688462785037334137265148971246627467606912661633926543403575154805821333480489768050101626850639112310671969901279592934449806122950047195087254384304966270396884363862084240660326337281914225507395316228435577859906398131594411277784673503568137488882169247861573192526497211705690329681128102709526550867479733231193494924994000360251773444373895561550871731572238034971954082967137338764339702622419374872223051687793772074115341665066498675011210439253865719042397523314423877091068562042930695053714590091041062617366318218376552772019419958263117012060889451501251896163431793105408172952755273380738506802839116031561200122030718836573622879221681928996333767308027180366049850401482034452083505616509270537868464130205395284825231957857721280919809257318613563541521886365298093829797422756790421630213974843331641426733829662509965803120447544110416643967605857779038891168064610734893115528068697446519372829454996579533384659475399786265976685739095950786268860206324192513069761196998135395393272518348629355319210120568670837512084487452208677180746991862751682366522776912892224058010273200221089206901370327528954699430630708855096952777360607339417563340441650012258560254683263123010360946233321484859111299506831086124910979957304371018942518055495314468957088366268820498766627808060537473394353051056120984008591220605090954608278436710813113561517401501484506013161804714216556234542859632950214513234669939749746746344484744527002694523056975910675748777175014369475918494641627170112360587223359988305790975274339070930135221683655727341067956796697783141619749063514810566184104051531933399707029277481964257809675378927570284586552210188522706382842844538033058250958704891701667106770170741128263441690494905156924632487598629302794985262436998953859768049203880577006786261586415018073493938358207570657261725968201210373386577499435644856511526451837764540068030745161595995832470073280459594184254011605857672197613521458034798574023816351566147094370435102289001256417789912993412086852692873920304025003606936992952524601236809526132685348155474838807643955696873696859487303599316063131486981884329999984403410557293466870209727255061866502453221958588894542856252854337494255278558499738304305885460405570984307117414071638070435943001745000366088782265423671095430365038878519796109325701533461375415539645415628644560326634388403572726800036639629658863544333170936616266563354981196666347690891014231794693470450547239721773631550865780324979565771310343400642161917396925744455361484774851098200073607692416486639621971109153387720678446519423696503319405447814669120233594377827300413132581369065560504932485706657063969284151568759545121430530033881892263659136864754963377560226638832507604334305816196750921211473125827927801458660504111501306660574680192381833300997082709750747779856627289879265738470266809966328094749556107439900234955394205342469677207423922908953098611048761073705366266499605391314631221629320314718397020117662396974219116675616871142984834343419541086585581572189876485442486321839612659493088276084238242260831618876375397670610639145857185865125707538903125285990389285164114837957903506649495702873679580331896756467867702106218251991787855643665109919996590121858773834144952807838426676255521857195988742739770824936506743661594557380660823195588646977911004625019807829733673270622905385498755626356988473493610504273524756245571698846902606284181183274880254366296305963129244479628967496632559382612456603815038960048536686533669092561371023709302557276902714506121615652039495842307335962925358705065450432335056717942090086875641171523969773500149817212314675277568821354596633904033770277386360966350445683980416643716807108473349915055871593632394174969707285749597359570878718112875375785965768610893490611486434175379977243253025665106511083523249844681595665549562691787634858224276667277395683012478685183503394713987227713495250389715449609516709973917851985960412142196231778045003143135929908005903490661150155431439742539205753980495459237096029694866731189980285718581769349360694653080424101052743008628407496580888500290017330759692752875895327577228162669125762626213703018048005265008756402037826852938053302416426371485640491946175985193663538369160565371550225158599410015190461042145164932984831828939497300846985637795172876076123319561517300342047828280288541240995542327405640592000250839958809835166666963494944178474199795597942905466018826693242490618767379301209186193172624617658234254104282949524128372089318981455400260682752742936182671630863702566291891557516674920916016443120042115565627068862712663909972036294362602999484154746145887900604846590821316086741648363799589514383482834378399742598591950061321510945137262757482312545470644720224211350539760182088889416156960746527355179515302593245324367169061756245031845891380545669492878608513438408767648885965824527685364707416864501292430601850278143797295482412358052626577547877315586835160526983345772841762362500759117824067005085255118526686968204193798606332940581745274556160783765709450211685549149302225545634235359386219386303106566864032238483055942839368915954644907732966562916058830330215333818361284991471577215841833850386099858350128886473904638585844630218551283301069989510594117506223014485100473742382900854144847025502100480780785674170784001260013515358259924065657173001665601187539422023259198867581164400606476756150923880564826892271982442044685292872786794181605395106365979964805622248841917051168325554786465241616510226067348788890293324351532603082443821642021936473374034973896668021524582131268835797094565488338531980974787644733070177193190456683731239552379207171380605522583728185067814372710318225515830951049905730409422560896414690523087167860973501846811004166565126030412455213645782956158905434451435730826825647143327357241628271511622801051377423205249500978985100833117469295763496005035551685023208263197286742518490473782567483298084461405842608709001895487737357903965907361982426977152567734406785026022318085843861378926989365404304787199447506013985860009599402679880961788127230501214257888670556258935990925462502789416025950499009151905179799275860668959390237475375373099814222096947870345800637220456226029334343520653909225794280519301587702352399008083037568436618893431750285417577250106844566287929357221653540067222371628272313430723740330367317077034198813896987190924478186169471733872378687130279144711892874297385381433817461414621702440465457587020086177320436059234197230147977826677461755750349744275818243091836162650858596390078843706884288998383844910162798474950197202341582725182368216028321631468882174431366012686375693138442101637813787055748933877040008577674149954053922410387840583897466043458478359192695816283015657960372040315281999150002714289979724107119313014088244196726544098888317997249052528958739180502398883713026266412856178534204734318812979952689180281662256406954299482703639611282798936042688009145023462405541310120266667221174477748889988605919301281381096633421770128657904372633504915132462259738416753342265401231575768361626964982938962103260031338548440185258355436629727141527962430897999052257709330762645789813926650166049568214709177584841737174904930575338197873395073071922067529580806160136954428121761980725541629195866595508217079301438914067384476277210881405703963059731534975396660312571569503601647251676287918512765679332355159982291099403185789470759710423586246476334101083829803345934164147026803601281360249514446999347729700953433203000163933281588806671653805182985276519100056568113053745096551884935974474318135953325881590414739213512546313295699205544432823877362016303628557478858489217673038107080530240868409831721341254083701997347762765227822928294693927017093018480287315232394192386929325222638895133880199891492509176574562299535267328565862612240283625105344079098642242480953306249785822028682415165725026065879835269313433819866777611340224751107146166171897353823481387431971048770210219140053353226028334480685990204831515706370183635283156335229872815543533542896587701771439998607775424051629475663031009277137475857199745060291086903918039005170905742991752521616305846901917844985939556047424600155087393670475808260475929554343937264016531378535277623628723194846165177335627016623302456476544901828021734522452910429842925001601020683828817145995828198771234636010795080523827585459971430884032814560405913433716177562130641016116188512825185147463723088250787927500491176938003948943663781130503643218992696107458688266682460511282473825079946919188724702886586611625974134684171818178155467842045715858555433020332049054168587213831175841897793087010921543530086101675149416696405389306938312477979817786438957029723113263884206536817286828731836067850248656393934422117721027076640765926936535236150675131012921067851556294147936290864626404614179804410928937900547545548963015449284992082729447986711810439543233072878734548801084322616493254444016505656320255449368735824010910063088166386907524880895348246803928161773307507582680334433392934422111907576630539689611549731138723471406890849904436844539667847173921655865372436670330069958267400978378701826550993030447775498122697641350802224792961648303627446012986561295331750954499951732875092861962805985870034723423011108903777775954064349642924731202529408741042813200965373024527918895050396128428449823824679728515784937259090248692382663977807148309713197898360064231387132042748465049455024024919006372595050285439642208015862046035320537971544073898600669059092124045573781643347058874833651666573116931921115138556480021845166545231072416460179207786727688075159215233092920071645185956307440681805022042319498358522254178704853348919370997253697279011338755503339118059149924801878906031559513050471021263109596145101467181367081298479012032367626605010361596906669301504819944303504232065092653434111186950320265760772814032662091757021814531870325198894763158524218229056895559446355652342901203185010494343567136925045410876001788194518910338252012232383199010113406154649902373057912128108981347614630004893608660061214018636781095501274215039984497548782777061240697487156932527861553950552479497181644024907375035972392715683501113062876740806098011744465339774216781329686252542850789325925071342176211740684778829902429762959332849702832673731180268172246550399960695291124349059806699178239206194806534534842405763044432521413430443800972281682000202863298415663051690223467817980142953717195953555789251334652958550549462270557361175856129036685998823615859928002113763835385614207064200301345817046879385121340512489970268828902583752423953337821716545124544343472016825768151406077164810618118293415060649999089333930559208994284744026485359731049690288091964183685103673722003380985582879364042760085112887135099531349106538779363465129495061514053780512189072630053174434466360390016566519633084231309984117452075192642092609571715646174778156633548712018016071825008373244154163845877177870709785697645058530438066616532586288349548299791238458330101938714749911544166958840828868586541650561719937124170079913439499349560078387836851542311088347457782872238664625701980328488107867706551662010365563516128085034800408357089489089515349512678745331124498909181688653149006560133841252190423046099135742438786604279856989290903905284219291864999798646442581786669675613964394938821483650616500813275187640224520230261907707202966854734454922023415095227150721244732851528031877470700153622774234013121069942797825348532192206194134404176198894618513914658463875961358059502967591318933698453394692928222967964525708590667867484928795130863618974278293893743697421740550519972794130815387571860756020312279950276405809120674992171068769231411931374384959862629871554671539201852666384294748862187570530725548887846408565766323069148486574493428602588501358445364007712523684766575112159435981769266851337800702581386939993310748855369450785432058695082864862342607562271370242895378861593344316593627658581070993417889005058277314920903577370971709776953381499366005065727310840706496562659524929505872277244034905597739701794315472793144221293147721544289817569895734586670865678423495614147005300555207622050549609930919950050061646001952708364867269045748154828302368326524044175868231952561497013708820321071945180251803775760354744615385360427711432465113544193687420343664264628990748765118899144467540067909219468971149886115798889723682152098938016751903805911657271515777616625567362576264954011412653479251504928217191762910202759584267855008245261162392844045767925120131086399176734767620565404509598354394866978711763200125934493935522575438964436011054333397424610971902994288507141626648684844851808132273756806770805484016840088981650460794692754236319398122908812115098862230106400568828867535198978439458198991182796799963912032531261984439548483056227760423479689247557398510720707413994163379098270184476088854192400736950901183785940850908029027749069313048656204283542898286465974302538025134909774055941949230753087844699762054042270320520350380088590001783825794713781448856571588970610687717679236094652947946074940026122681500771871733011650847795915925557558072179271526007591155596082160436531669851606062540495269936939686293416290892007439474599789994236536256372080370634067694509494379252795803471031010645695759779753626123734425133057607721243763239609731886033007831128134334529263462402045131869391391521579926810267316447039396268003822176739612036881178522331651473059490099437007059061958874218274241659932454400105877343535491421781104906691408480576639844370488832172102855555071295253211785221415622419725064442665944160677045987561792908203883703456432640615188432618808469735344102157134240920645865587418561029239566247690666326773918096114109851732680273856767405390672984344652778521133003784555128231388538919363420536667961330632823299195107944034074064616852437431280395891687175773416413287326123505780073299210591300816175131627640620268824958294250773114296086859643207574485593570851651241856371713122790188959315295372491595296963204686599790908085625128631222721061094240976427245908931951709621126862430701659560556533243230982084422777135169582357233988344569700818497596586126981729795010204571547487904083958028910755999911655961906457018541638179100359608397272259779223885521681736194119695988669789389205234287745238513987277382641918824387257527739949575220226196990638045255735233438503653519551220678320593331884282204823158642655630942451744920122816520946793102716572070868946250188699691592462341505361844624538851124392015424390690220034738394955976483017316905269727576829599342342819346961701889086279140873496637410604708595919605674928444756994282526742676049884418612030835472767948920063114750863126613317562988006101277598364502843029566250478952908441316491715521243492769882736810917654273242895445778667024231369762004149600295988717799218890613088307299965748823677877907989630688068058636172212493659168766362802466555236665149345262958558227470051167001665617079515769224298098154978634769273494578078525680939282890365319470663670043511549382954223680195269469109640212410040841089911962938063458019111830728634530960715221774073865173714288788125909836204112094543347459340547422249628586582430338864784878452407311080051111838779575600639094889666646593162774409161581353032559556529697332527949980535353528142223300488416882547094064072901459821049669959583942972088799341248976205905590838558756538805177638399118617926593434544882759617313447340825324270277451415673397456920977528228838387374294790553502519905346813555868467638320989459019702969967728161802120124215569116236891419019691333840158746036617764504502157290810156515368987144407765278518542488933245573534501727940424225564643668453574909778785950842527230553561707301264512970412525144642444198663137564704845804503877902930562866554939036576684413972114622188360895553865193202523452902839335151867086613421217497739946080705301332217552487484273419938112467732650173498002966199221351523573963955583284284577337620356222243676183245504875420071766960995633226880722114730882811117666712040415661463591681890183935571050456482181698648186368188646506012377779073218830622794133914526684015044158662329068957398618655819757482554390194590729596060202987025428036833321471956300265741938008919651325119582795465366029006997636310059550279256192893472766187373517465249703480041398680581798483804558345140303987076660185865327199258805097623337906174792965477370373447887133245423720985480587090577557482078295667143752494900694826093893328898926503036059808848335117175595739302495462703872311496470243807894376623327296432136959973321698417340296916821217375907469345938571862757362105561366250890102396222540659369569881253382364395556159860113375505849786828403957165216746865728708687657847030613349600659706078113211361318862271332800164466668999391249824099852422368423413033516236989176045496200794057761555349536080442379784953654795999623639808566350202710614574906510879204107283089684208292777829660273396658774786297115464119407465116191275733531476191693805407632807842025543937069798623559395616726541749863975758164849494873777777711018935819690227165011279491713896767439372875023148493936026363724282909321657405928071491359247230858221852072146494110532388226291671696180657765187363643357081672770174004653470252168504776936766983599143561817683250130043048375447000177579734825764250437175070974209633637375013131867811201761130560632824671631490382233712872069607448131919405321347212261912267001242099071011133465011674089579066588959892560756009822094630931734145341303113191542256513436761822034923916919815728974454665278885282392704196644433306384557146501068677473974779266145425880538941697032508727152547886857867152798128273391745691777284884204560297422928515636329229409866182186741306481798545239232406165742723080477054303617684145537592394857324792969253640312954216397588685753859578256152339645145167462005666806051646820119428234357809078541333616541688035821625352103778028072626745165784962708513670365957890817289072263047776940177046741703689566440947292572106467165738447898569084341937041731825101955668440228679311638447014867613398232068753852078969014867205680295162940604463524785023036937369705133518004110103943640160938383463767995234960516545970507724714206318005506152376587587214559777288820342540136301425973996209295925489159725407683008663192301736155026254198387894498298456436356300765488320774114491496948570471693250780832764086304723943417351602341416537472338473594760999114336834716957167445323365131658024830307754298166851628313513608604525493527182851779946112567664440572956845357076507532310918684300375677887635210290900004286398255515292092651746129502614768345459244621327070360556161197495821419157226378352841090800778510257768931109514821210892666151353381842616760514525532067016368824847066873746688137286080337293947630937127340273572914808365579000762296226381032894269273003187391641663016151503757910267869629252408905079326247322299709087803834262343205940496800726437078145413936569775138027744652270850950274004663350483350896602401244097761549654500565579986348489406660463358739954066657205912848139090095267044718405019655966269620088643828736307029756916638321356956537390652274333775059017137860946467531676008666396429805922720108934581610506774702966045062328833761188110717173189998062977230845029565358788973868811172732009550266597505372319300664735728587982514583390921118464791410903298574250593938646822923336824276317457804495880565059238223631787817144716977692668531759782204359770505351888860721421149365542620097262314812416300790161401126605149782352527301380488207872864946891299828717267418205047593536670222525939949890692210005755326532065599260362037757650549817941792435753423939133959158579623088467384682977704415153520908423447362685463877937061095116715317859571127733531014408828089825163125490295089377238846766411584166590012265146643028364561492551250491320165683126275334376813962913469151878918625156634813215499714360418513253038766965120633130315107123409008635265902173367275416644331978301271154149426205335923273063526986008624311700603236436381464595612283281029156197750745952320554940261415744600570266408127808586608605831490758562180573206160103747157365101012300845883440610117946773642022639571617829176239162917096089070641658184290130922960601013243258592070825390345365458392649428140479739681549556853447897284275177341699105778869295262463954948720757813818385192029973317452017966354055821249594572998021562881183129340491040319712367692252829894955247653694299702134166499865540905615647277431802894542539624052356338973239513144380236516104970436643451499589795082886174014417349764670428431977718725855354460530378204029907533241231784199879689901020342907217527230566746445479368387244745673698842684506557323441152019309067897929734883856681268191962733859078766408319734355282103558120069218093502840294218000961767352194351564109011670233668046584253709018520472657738765287726642962989388242803743639422126245570733908046466216354428252525303348790122438571906088784918103981092558455377521563608454642426386083527528821187048664165811155527750765899300477196851335900637787856964678543824723979986440999148520862093024569449952351282058723376781555241407834315945553337394717774722575960714552202710033108384140542207861735113702535758437478183360508343405167564692522920883273478049901270275485017074788745728158952530041943952574316631474958112599206970074775994956976061075826337811062720159857752615510862203491289523630026367054508677133475454216851461714756036405083546583242622981892570270487848440331048349445037779834087569959850475154365669500961179002557372524148590234938046166792949947410899988179440054224209339567443608933545083113089526062656369538014260540885918776924014030630329471488211201520974857628617459526730121687887130796118329282476743974960668754886153003296067441865864187408359338740525492138575126810257070054226096019380340817961009080733460053780080989927682231175387415456441351396839927716868538147315294647727729997813370404945164784626363133378335116011280638968513230352366637787380490790267511173002812370550079217353593919064630132169890051430294714211127883023976621513945162954124997708466073929492928998158760336436278590282947639044479530948391661799302927522935589513233185691745871587669158669776996230119418681160204272458665661403591270966571642511516959154923487405940762615934778133008844130375424793100572909073689379708246492718012796200834331916102229918215136823533852819727759682132484748296618868457675528237152991391612209967159201613213395626963373705135899205173807221282661421908699803078025650148539959742273513271641842817432884624777000255364144748244222259124981573294182793535076839689973311608793364468820455462330992272432332755821779577241947111632594347679591459248447923789172382907301923484003965845099704302608139935610665794307305878123124319429368742975036277646660452679541493917274339549767033617097495986050506813034204386141185135345543153036493988840902490902556466177518950747547343119871990806581038648388710707557609313385272797478531566864284437847022963992723541087220769122526190995179087159911484494939178848344231502281617285913303381295583522932150201757513477069191440222377393816538574685629206604784268845008488063962587469573848895604322054338655835976300715299945060342590322441740569024324992949027367168510878584474638374581528941191093218622492891587207669605761028453129800964788205424299804011601768852712025218574448457653301216892055279499043772785993980263823480310042987553701868074184081952685770127229145394792289706326153927822828796842085378134453223679659674577559087668261189082970476383373872851433360578133282119291872339691467225793072275306220319930238711965319653483229737938075689805450550975203368672935821521569343988568251873301979229565390556406533508066043665640739037157273745308400579895712705918386060165247540843068073695869248230891154852572085591487542184559067962846098133449833480752077892394422142380855136506197542493344323653614797448081228792189900305156398112762291516028918672297129547447234616710902928565663115661813551326151994297794307330886674004053552046453960614351804617887920907273622710396643789807991409150480688816959248935783083335407460805883577404798782454076545124020943978701138003654193093331179731270481563070002421397932170695653536547488910917416172748463483513798122602618028561028566018336251538010721162064151386443311723577335355978752798883071354478816452854523085237421630731106669041536273040145928246873080997448769782618422837022484353421678535318328774296337965747023193952005405010479640514377844709604716121519838074232257264742134979999598562727870170266832621323367975022381881255889884687971359194851505589430409417497911587260630966763562053134058686195471173621030646726021668929411169101892345650314820709408812522842586725740527652133103668970409243135211092505749505285524126679298940811709971960968250423299883769278554366995220556866211293297373039671065505702835762632234973441012306164844832863004740967661341773247434370339676323797993474892176519706083473549669305929623235498841937288507886685243113098907924142941408501963971920393649455290188208781773103637790211215654558297842059367562812712535860092123654989414224386119786160716377723366900982465060292234263586741525902309442994464772897153980270665121131116514017780377818480689153381045699333848805882221362101983782009529667519813465217664087644224530370584199073276083567475297835792241979465670064158747468480788257585856842237851951065313675665887188818942104641093652159814031605945540684160560936936048834464561329952854935603444369506183149977511330515739093450780838903350683477777429757643436446341030719988537100553648703545958937356710019612651501839402689052347716182168944794553419467559978263417208520110327444367072102014765344373679434366919211463358755131691172238556498185913287514554492281001327125226827507603724948083085066724283059591112843700150238243689241050402060925031229463437944228048607765640503989944124878008493229380917304751019486319484597145567299234263399802295711792777202570209098598466181631135122201459950110264134174844636729283861407982480615647392514435013405391654236766639414474306303141064654805740745688521896028250217732383049979903793005849985333208883441918309731847421465173978178294694089177931119915212468718955734618034365514174869011354591194249359983401614538634669896879177963356912612433903666351569530258711807145339311120404089897858239558468279669064169270747446113542628805148283180945000292106252584493300461124967275422624756934506493863056162292720484466442302624375540829943608548167992900267524629976730835598040579220588681926374038797178849888312821249300321541758163276474720267943615806947187954563105277468338414028270682372661465936409627286619862502869497812326202395255275743163104750491560244121084244143202153132942142040461486009854769682988640361060859006783525927374292622965061342497384292880114200180406974076937312760971769940750638831855671179364434811332533988543104377169400924604735721648075206909718590396955854402490752331389531678392140307258472503581358177735358841290114934257176023824026874229611892273562332846844474572655807089427418302146632454172291562529412773630181583485809507347712892694378415224682974227053803575771714894807403050355872222668065662529899145989088184539005784252867847824935875927251663856284256282788241718055461647013012526053844360977051379694410491069431522722711210510669311458787368720675988866225413710037132447561299645151203132965356021137810003678795036235084796309308612125937916311895490622822483385366443805805805850189870967044558776033227698430388251673264312222517795203178411779390881386635409896341001194196931864210211137092851164997204136053788673687932904352470426061217761380602522294771428870830104971996206688383801710879219964213855480769602240941179078220275543825028872328224131002559052204952947409839062561135773311178846156684487790846018565071419058774875817398379639851665984025533263710055934641446096585257179397999125974874538860299396603756690095481854290126591772854841421518376892961338769153801119619461098572130257997351094561234090333424668245214012795638994025247847393653157187814258740971331233960375813072014123554597753278968137233835203650914324677052340487412373332563450201901005330412452384671015788350325155466656416068865069197763947092644245791236142906452854518673958593765620302989979542536056794059304723347431634926857147045808551551711795663927113001104626952544128920933417804179594882699495449669860477716901923616416389632589150314829504424423834337082377911915139705721318610275372913019163525163468706207175006805305730102682345820114646201062548242851894766237862847823606150889734115697981424513774416102685739415538846268746662781678932417356825495300114484685461616876568882836293218607944118801436652650814721773947952845529143408145727653101710517757576456972432515997886024582386738228664469680340715436446037678769193791208567349672906597224488008438628801536089694592070082899173396268325391270159341731416479015655867739553464267344203088114360103228045324424211997827203933180914056266121280995359408263553159186435155438069131798947490493383495530458179637692702468726731605615286211195010181486945277381125549273624329557760431012261612761530695598442215760593814301703044884218875588314249840092556122590502268948196736708966256056847030359670441695270218388948647404351277596711973478258387818427440428433968542349882192248462417236763761059322934339668871750602192977692943387453212472936500470340389568461458561457534997420769231781651566700394820269895099061953095652669428466610236375520947626439259234666404214240560054323052687095605989262862659049173329436953138887933094286835319604949651409853009084006612903911811160283627625717128571273031257227523862909268740651297305686107650634587397179481452964848343444433977835677412758170424032645942304567087091602307713534584461713606536009397798968705950939997957529404765055198235364517216833638733405963720801661232444820700689451081660245912956206852180686433115366307690716933489688821369560949989910447763931866577637672303115845788509890086042128783578200434460991763642602105882505344932141208911201418842392031629735171060751773061127768106652765109605426882921455417237067309287312956151036932421483436607464210142118179268920685449845237249946176717200518022468125756960083363794780877064457416536700741241882718735002060223908629693021148684756642337774676491809282013781934813154811692698967653523645531296769405969826430750160231353759909069065853159512847009918702336555963212818912678083630752200300387658614734309706208273042977276920344304696174087864477470122512684248278889092439306899929072735398637190811564840776767664737425539759334170897784381828592275034840546776079739018054874331545945773548309704032109445923916990694517632737489913055923615853978623876108517724257439455162157991725842058061075582159219195422082742092645892944026490808749330114247313703869847638964690293616137367138270848582503653145478767423918357842673061827169705292113623883813683155294852163804567643928006589493013291786303754639388805453774327476889945588085455925945521046351720947356010982123476689859677405065137821001658136155918114114557406911058793162450079828339958005542082972865634557806187105276921755136660284759696228525239162293455354843192016886093108118184378466475899388181615952365527852522864378778109026930766191049140492168175894753068782600360633616414887847415951786601777892412707867138792362657586686861088049464177653773416902782868582338019715807163074518019826660581944850581880187329566435090329102925125522728412884091449513021221671632378374141170554567550452783436514228596399523419908505082719789130715073674072310179568427535228418979319259820777212691065938430856468933690159665376781990835423364877191364972408804933155737876733852988849580591536463458819079748239325775499165912507945028134751985605021485527103175631296271030778808168793411386558545842048085231368771694311689420674618696389945061159899182228258821526097856622434559525946386428420526721626188724597056187781286391805405784115751541094030586074177195540004132266931364661716192026819528946088132516828774895136068759947409936950154266233637141696458441466453398777009727533529918012333173666445825592655575527773253352288126702774628600403289627959129901398421397494008289221789033167408153948761329818773138648459605455197037387697258394171132095081787746906457445048528279402271493271813917539168368188499892274337770842133189691180160676256940805345235928420783623390621643575407887263727646305289292842948327185276431774322744078296177088874226474067500303867118532325714434796497458922210692443379196773701603306263400099098801729303199697350480826141423612130764389940931760700049102195334714063330700189512529603831025731435067816261758641735767967171177292238657767041074594609606329456101323137628559876256549153389178105718303837274794308079369567293669436221802408777703989971665575389484936634187047871066665098681337204543804313121826090273484476352023754137132736649987577322335911737814106444818752556757884041438689031739391534091626902389112387063309584197819376388126378643379770537484696023357744954612315589702558750797222147401610236699321343812374853049634091628646581931979984498838144886049100807855517637741811941036404085593001996294861164982994234598933184806596704222130829783711603126243877428774369169007162325034297575881009634279623529512201984334326539351519131473495779833453402573543653668195541188850962313853147474558674404657265742015502771574061678748146468405365575982194091584671696225698722337423127985882731040927202480439869535588553286841184850647462249227639310695915001830957234294173982368162973818693486557664349952441604622409309731399650289821585398145158854431044706721928887205689170608637466234125945722907425204810162032012232819084184044920983878693220550821494369858357006072977802466673063151546751418719337902445485305975944406660156653105015560232701159177104552010123309460419828216759890614222080684263550105928647128419069063467418049554174812541084228790407738789086259120337970914250099531088064915248740264428066210837571250369030147990853789799351033511867957011382508162817665993202319347582487422766364178507630821494329010315243575688348635426005225324638107652987456772648405215477348284981519762434385149566332830287742802551081940699044815024233355810890194404271324368135672681046069381132394339495255152360524634366594152557930737254300655052817298693101070601247801304167775560620144133472194636050328899345573747936699484793630603448704753708245856383815275552179411955697184073291266206243188667784709071135373003380159539084331352735500568762073985359766736308365304013239654638487506609998659775150706269497044765857752842709018156056955135874066764384973315549346191223994855811585144263758450565963598791829788076800663086896880474379674380122178471654921900954290567627087680052448905619258590899134056033354448377968539322424711207984288482254426167897740547712630497602074234515530460544735575162646863130724119343546963704979319238415522162431813323324038231264658991430166285922165166055413242159742083829437812480567359664111915497942015309434441230352768584685055399087124668299094987267879764759665479227891257511152057770484945114427818731759507448433760635462533846032283505648928005605500213325198086462169585468193385162494984699988647121520919240617378285049236607623166111626836591713751781998243937465440756980314176823614821986207432598606370855845261032441007344387763137135591555622657697746083244890397556242367350697143764665319707964966904758834402864021379962489636953612429582275868122504579501966567282942948709186074500874020652766745063463616900988097634765354877883334641218214455764340945781797576353389886039357501348491465063756600342612499732303789452322200077324300493166938555486434522159335016441811303860507651223726180800447269351340239147061857382748904648912418193863064317881048561696758522429123140484971262641302042792555860940946076573374166999844152126996803239487521505838796740578777163604682332823010714310278580500462393065433693367670973924150359621343809737712726758123787036087548156172605806852240775879460388009003493997431231340640292102672087938942319966449075103764039877167751298069987147977722902554360425626375424722842104698231556161892407265141558202713500880510443761515109849128361617970772700811523254070759349262816859405239160405147968504270806169381311072992329513459506364568107493482981891115599717986783420217849901573158518161237036776346797172359355082435804576907555985389880944008307540362563663468296374324139446165999369726090045254211387465155250759395903258158524007671903307435560821892531320452190690942612307696226574987566729684617468327975806047861357332810227594861760753461114419567871587748955607052392283490930650774919190121003379546518020943847983338949949011983849250064545660279377300208361055350578830129811423445493812364577731032620497712639574623741076834214466390711014590915665822563629248969033963400702957943276546501305480507798812284930933085621224529200593556482460417686974472709179058770914437398366499542651437247944350361878458632056651117401376914347090698449297589964248598616257237193572298622168038401076770780869211039141161118068387652534209344612034344035296432357591794523839645687784017392699118513637839827412433618346174464617498971533535429171900104596450753540393155413487487485042571823994592030449628716129990820766484107494948450606222704641606445347130110168106210058755073649654166491849370407834943352292387806325887941579915197775496220312753206367390633093776399654692842250620327022816881809762388924499718451236529347368838429258091181966904793341799317493192604029484665708571890995364749335678720966517944938899348005240560102230358254492449181656193361567201099742836575368014695713950663245004924251937508976909849589019152773825739882813664503204387388205828604460067251575836644639012946303056291848646359912258151229445648816334497509133960921507851962965018109257763011968405482860705830824442873030534853205983811245817165819960028449473187819407588894211137792003710194519235768970534525746569100297222281646816366796713904976908909202854384246196941882233193466632812214072948112645437007441763861836975743719122307009023193588300972381951301053865733374559974168254331526378383224245976624980365649482094388534282840385793495537109262618620346043517802755204480711662382573064170250320826888125070328604918737475603769135096515895454287810518555344334443312866372531206443999203258456602101207131314291571278714739669383782388795802090568155054432251277846030738001977886469723071950706220035715295212184123952522943482554468099307994235643052317730347848412547723947266773206473526114853474362579298257278143944903685394737552135977691308512400444177447318316200285799658996069862763606985126469693896031131681592720275106804981934222453601147976187607886189424651702092373171498285438883555288300919944242059690240210535436945913648344517799729745975227989565760223639062488724963488435619370859542956354707483339440484027466547350421216061307379304185426637699676550156391752262780118377843078242936640912233236488361137137898428040408990888897247205480379062850893874872315055963349455736867576053687972746097799441417654075142652006069452298229477816183502186003187494418295567805067947406823369704964230416330164796901707577965220668904149344313401653186957703703025291689833810926152322387891169468439402343900474410692851222159954799236639835967554135271576362585549952392736323507496099288124139187498424593272102016618061622230840248645785113962385852228337001714706683330341085894504617527892914606108712669667288796057862458366205899357447483660922720434832663356888717105573338929857442584982077848492443826127202692466464691599843228049753675772104988852272859494207124057338329176022749093786894859870208642509653018027040174472319860521597483231326352585000919748927414362145715949170895133128383915353914645334476806112165024961515972961865180218635131797294516323489541226508499768096362161302070150856304195711158405217149978544435406150630093824345781210177900857940899517174228359473763852482238924362735042217711836249955188285717338505126283992411499695330274275698953833596811644755720533059878003828731054520355232015912234059477949496865070610987004208091397224892447388175004411741921656330948734280427667220092189653560142814321965495013044847170850702630944885547345316827110553889123619006873208954226723589963726927566577283427394590812240114490920646680456594614215650741260877047863669440334861406105379806586475066922602430329452949074413243746649885717768631521722651771762598257396069763835489953850646647943084420751153851074920496664259219135162476695645968262953091379319629257402187057976669870940731455015868291205286662121667683555347338423601267043036326486001419131391175526155262403207866794029522660913500680675373103004321305550425670354515141878958876428011553561311520008108810415382763515008508384047719020405186950577046741309946297221597269508341070835732588530658846401905327824467245425635240040357146930115709044859075908736745383502681455521970690780423853310059416615068801787474297882000531163281150224947053654002708323307167366169398267618178630613239474421937342454024505870037460756788957726000215985505691807729868747980231010720862739694088547938892780462758895029640639857564005835669082657257017887214540454445739805901802588813264485461584646115201394150681254640341928089196347424102814499003894871374228173833855738499768475416927956210423002691092790654250999830596762430963575577260904300148326250713489486328334418704675499333718908040389195678295684265523219116339504170359501893884712320137054798886742624115803935577518884637038092205380100170434172288874893391551810610539180504075158597050126283274775273415766992237486009994476584238572123695095360816809495691216251425667744972953431880195157416533020240512065582692838343860384801573017144635927418290628651210039482642789567544364485617260011074527045293873307058430804862256422152874754566176235144922031837428789255796550378385251199987839650046482441298969238332039580175536837130302878696143369575684546720773857371787064364824495072471146450316366291091353777581552120226119162662712969155611023645015777246322616287932742149949488205123710223563088017636041367165712538860620496167888715613727973452753993131389147021428973039310864652694464737665831184311718582641123511951571868407684455265084988050133377727729255893905541457588577895697759330193477127278551521928046402016606864532173547704992833141780314951330297969060247256159619350408784386565946008529022418141404977371757360191074992557645317922300761820427244995632337734457296435613185963032183246364376766378771897616668293165433634828537319082745200897952759423927853124097576030345459536363958490941472579158897046802461746166713926983542883518424424041365840139580092425256659731497794398689478316509155896664104476168442296380116270047362582637523480849392575277564051505365876865839665231771786917690270518322279178411183777578419217729777105679477715466963883336490317483581013606380041344798072785701688893078798598593616045519264884262921316304925872731920902293086038707295743018183208558596592926252342138761965589532711827876087535306007320974864344619589710191016590981360197925885326121723404537454138786098704042001812400858513090249298521617557273640954870032879720626692846053955852902607933866891340836436060345264367477365251920355112115279144734214455583870213661048339671495363135479670383333881536353590427481119411958865386518370076915501973752525138502055065610921474239649045485784271756493325158928187990440794477320181431406660755600891044327106265440883551410395459345582470983077043021524213607215225668114963417873809911438695116311144295357728008579599773734846494341792890071201705127641539297895010319293018802759611616971690469878058526982485729493915349465268732116660629601764373579941734338274680517965233019723498883493189912203916422774712769813871506061046515558381864407380675187014773619510127501902586700524808605364464192337061202348002450868190257509104718986317292920359045966186119186532136062160076565696646107980666535128179847422690945618159932689569854193907734389980271565968666840146834379325419957082266031239895307410135807882002546401092285066648980992876071586259320142387105489411688035121920833820153868011731107529878080430528337659853346205572172918263199142810711142794581498205212372462106025440976199950707489844898114902367537131298495250373450695284015482227409070729722452613264762479062676229884795781056322643953661135396528459592273981820283434880333366502860300853196101804754673851342757733850121569667374645458101058775375385859042300361389201853310793069573665007468577052085008201506837700880664686880712837798241394968945982820004885718394846503328593391183225582050831965292514455273911846506906414427271872744892017366962505836516777482329915983977609248039661660306671143584052453209924849270581304601072430543042936053439714396339622191107368201285112419991449133183239285021833008246183537147636739263832218826575590009680492684848966656614991817842918894753869017061292034076575511794964496753209105038603052047577796572221687684322440370445924100571223833984822741703937176499636787298996889974531428561374055007283541718657261189233587327999137891589862120553127611657889637959931348468658852127235217189885032015771100273830137040824862321143076378529091245710036325535244549294621924490966112099217700771006830601241231950764277846310472742627862942989064304376294219861651824631256664383311894376863953128400460273307632246777390301434741816411249084853057085300047069245940211377003396688855389735734839742921127059680314454142036851665473571157649466311748861775821751077384824612250893717742361919748213337708554958040582320416545598994460295111311173884531305485555570519679634646329172455450597781275452428786178067320304341408483599859504791463111856113359678522016950616890073103941562352589651112593774916322917942634149228147406891226372872313995195872256131525045459295141756152280953281012269391180150183054095759350872897131481316250335513172794561905219138660110352157086625238933765432428263333118547744156128870014855482370976558831761959062827157628666008388532576945505687249144796968043044737700588486144080501650919237970220742441896303573702344619825495112216953097412355996874227967745740468269392008583167997614773770738712346161473075442269948384452397124312112947372335441143585027777437174224472922596449299422868739575229410270214034775781359823615619135972488312695795252204208587883451398699622256603090249842207306822642083781882096208957196263896346011497863669176677505205754517656231203960382986396429995793688548186226760648492037950298084258644824420633664596721812176122052786165309076158842399974383248377012266495158647945378825814382301306163613743214707473530937909790318140950312648207967225973396634830332298261922199663205868351275116555565182404052114954793539580514432782350203566296166761557657499489057240089800821105348530318993609485795451875339266428384009058741088518170520634100701365094635653711015310958925031402779054182563050495078641199576030459249716605925683778273641551510958391296303902597245351493225439917775834742827917692990008473531438231237958495069701268561027080088064247024096131414891049702844172381808094183617669308255183951402278863301457752089992818453089522555749930328606703641605879491709037704351264502755159484345411985385151852350917340723946862356805881511425299113400909961890629675698409281923232663068538019916871295800414242789033458841425903458867659544133872131373231696230948469289226455587777591260779677980302934521142381380699865737755408103953668594901634719311615080896750393928640596293965415985388426521203825625207835246899377985741861452471322066619429843534685190711887063901574042770219075690686256595226037184603975273207420950653103635280963130180122980716768187619750222640300190830612625434844066494552696840874687782258680508348609585615770294532328657485720729974200328364036565458860685511038340540095829437004839569946276990730432840259900048699175277700749833252783567055540222301506080201296011424559299489935821621110746693718713094932268378636107943233331381390512483280178992173631010731623116929058657637187182795301295435668219739262974907778656636878479279364801857625736791379356715941542217174323874483523547013438498506723653149817055657002536490378070169048493892606964220964316380058170131371246220196345847179874949473972120086874597916680568704491891236130540573570501078390442207261780614832300467852685987197097943765777934314375274787449182409665637026239721238853780556934172984498343923371402678219828724707139297921213792056593261027760186461323546368342750592093941369016908617377386735122979257351074516899082235737680601430254145061105512030729739902689961845630849485584172932027206507537546168682257579832410399221736581263869452092810729930448189857275409649778565323373490282266562545820766334093961419831176604553410329491270587913592456875651348919773430915408173473594630338810412233453914587078526097400224621785070105514613988189993374988265390809989752590143637891715230494859759589649664328613121231033960596106795698638416487766669145418926112268309302757656086431909577759988507097791004314488184919293532589673426843886129801534565558097741548281471792761048917967706817238844955532068858744994434491922823175852403987837470571299830656480911072273337152639974576644567971673400943195609355598650624840029427671706620575078980495225459896994959419730137134525135148849255050671295071189537110135230280895024501117859075355569253025787089527491665592400984955035920109335514103145160705403936925617665598014650725594557028830412140680384200109237946431640103467111505059620611923956696664978133084473482154929607063722939709592388066172667118627224785006724379045143116477981925394715443783685065902352929019159178583232757182165457047577567116097350507128050119589614652933749062105329584300468901119195242173979206875669603496901976651151963939516851450542008947936104279247842934569026847583212810405933622098114347205681946530401274186744470989349684175891915889829938115643831596648803152536348992454498020918930506021346669288755405140169190436175785080517534106839727922985866182598236793730748364008959325775252226828740766224873104909036583974904165121931851216681550902399627759652830988545941645658407811882181421242243963921354345445737729825539568895552663221324766260731002919452766690674355576127638508900789950662661797266219487460791465271179852639172888686704753146016336595667619093491734802725162493167111976978269965717625517805995460893459506013448942823189667770909278273227159695675285554555657943742998105360912158820206070060486268099255423436290747824688397873686819995738647030859097641552347015688280778064710220584953427410942255165484719065754871791704174853123290323126918062459485059021285940098598594252603145315368160898551039239768354430612110668646291329105375000112473466546551401984901901267044761938983434900955305728228373795791020971061753941798593258090000821007424819187340347568918415978219578482770484023284188227605260414213908083944016902088181464762890409913309232366193230981182159166280825742294488516747143523089140188135445052580057520108249952989087078194826669006950406657012463518817512559594361459808051564963535390737084929312339308072362237080754509940565627749912784020235025688725874759565864382558910341060126335204877452868182639796099828279754350840335440394167869024499098777973897799213726628540386857791215367546083429348069889800981977969120959563799578939181992503241769476994635215374851422052965665521760290704945827923740197205329484562196056789420531630534774879010691983855746604388276099608047147353783127009054987336690731134849019474947576322325274530520691155797652918866813744288975588400751840911193192375843606323676813766983340607287633437618452754542694909748596658489017684229216266044985442126941691158092895141884771955146147704117681421849712555620706182933343291758274427133214978006930626709425392886113429652820198351346410948360980197272886450296994920231017671288147311464108890013038102062398954039245793857103373849204615063509050743635617453743966034432799096645198624355951725804292345238117480566390642789027783192238824444278876066005519750628551293662980620627046311090289430649842282300321053173680697458397723841603460653961368718198226363334845759098719631169559645883569547373363893613455680947032474056791557870481680185690353197119699093860415339896424091734492602567640022806231442964972284342865662122613127682615454752713848509114944391318186635462140616083158573130457154504806785000726720931608567383425768314545382894893169775439505609682593866664143908232401401272849546260705137263675381422226389035597572022396208784065220112403661312048566427076157068645448616747239463291327971094938719727154461099324086331132167867565018655655331180271939087194029700359748490928633177377236122660886966163913621125426301366436265382261672340620479042148435848262094705941579452918473396767339659170578035241316872417589735049122470473417914965256542092457743512228950642723193489755766736882316288148322110642081673088245876181515227489270461977016051952217726323118231916951126362176210084905330304673396173648313173462935946868680947737221869877078004573622939722833300106142471019306201965280024217766677741404024359625386117046388272862577235778679462651060574652487481507813586485591297150792546338547459686538103866489658420081541990978890099678045406373779881506631123244394699275228217197994299307976067087687785877063287843648530369586096543267020270399593212223298995708265304994781506989658967477828635363542308069569214531003860463157771411669444772548571204086067676486190208994755815724115805769814324522544200454661864823592314612399051226584138074910477362301264440603662398216545026570321778714614188250548797608111380768770268468357130130422276893340982917603945470178328104172817849978687889947737168717950985781495148578100311170356898061243605429375183244972206428944890768769627825125836896707886834512012068026817052378786600801772157391981375332611526575369149626040576022400809862427373358205441922620119738505528783121790030952938583848480221423267592917479932897072061077996269591770994582449294625804204977852197257091600116854883113268206335200933039306952374383747997651827737175272412454077011778403888513623816875659266328690476205413274241001663305356792885321171152328964560970899979578306510187167322809333326765612597441740320083999849839501213152662962751059613796475982573233819100538917562243894838698162879891012966870400442616239610493527868175110547617340397748304819740079432774527988973609473480991424111052127415789827034198905928696526023664475579140872332569799749902200629940742969023496153793168654227181888425475783273899264053339915619865358436454577499156368455245817968081322940423791259486112380943907316089676880757555576448512273174994318459419976743829807577925191223114133738153888975413158202298338233376427880975272183335182432012302645413694760813959560428131520262122281233052922960671177943303695360609805027697822267251944551195272739630120918207346701801531736860979193168986861551331930308368297118025072486060037420577929729968380803690849666784892488125228639233123116934809442533919841619357430803610441752757097426019695635094801846591078962766524036515831345432772550551360288277082213686448308966109770338823423113961600181009499515610476510064658861231030928647785952648989501920926551628721365887812277532555107138466939395586512266231165387187059747790537359430358849384594907173731247681538692065808222404126590745153980250386704755836917530468480090100682077986309983238518543777254387483282535587023048836274263560580837921794652302835216088708600579051354605961003339807121649239109860037757078780424052877277353897134056540130742031237778907340249443027134003723772191049538773894575945570009837390096300486685952026535298705640305264317571739110936255038802870470517814740903837818537000631898674286058087868670367191128528567318806088255485273564785040886972847769824578042502218613541102484254036404375136789399707684840961898194173231589602804109358494958386772524454418188827171732769974038146325541471139832836322486434618272196377984989142045261920221491388741499047693490482242320265360078729698633881329380085142863563031369235131534901258139609787904171147495263523809824595806959609950523730361515167043283703451649242701669225272382965827296317126862662848873062035594983877414134814598108855734057370435981130229986196408479992941234678843029682266339286699450925250010395691850407148520244793209561387048184337188649605786164881341562217204517342362023263919407819115122318512747115646362100095435667895462937042340178165175193819893381533377306929137384257250043711617805413941254206347556270828364687516398859479809941546606407486866317249263600268250983837643120982229878401665849783678418467918137178374741809635384407273050384982543310443465371433482301711277725413235561834021443709092448497362446654841195977756871107415399940927585336798513553287673505351746290008492198733130686109660872566297172642653522614620770600928779791205226719634659815082888670352541531255733115381050781530247062845153942497233768027571988271539298573880628997590967865954636153020653483300641564835325913986237589241116216645817405232120976168861035666854878881520875976091237570202248101298041186750254633218135691026962509308692946892927105956383571343678063426834706156842909941050932832477799122194807338372711146564250934190593922672428101317543034386144900219540844289142037940120473408098278710563190296280517260317647780362566957572940968489188795629548909490444147652216861756035031033684102842329712520748985208792710813606207498936266866955202673229895028817778002482234034564053676702748186765745218246707892315333758596808910080689164259958927867269626295220953981677728864677124741584782198318343520583938793002215963561835303795995962751367682345135753728265990273513409282513031698504328737802084565107268724140144910673099364662595823306721679695096439300456422939271268998533223404698418578661406398701383317427075981027265397149123513625137837470750460179091208614731479139914622151477762102893496014446887608983077853544540444954117213947690892693254094019961359767478677685960470924618975749568815617844757524489411456108298265124685029338636156245540804735503670353729499833484412051962697002243546729344765859447978032872447923289811596036602348539038669660484556709106146474406135314149779227157235597640586463661059444472839344212513789554980983540107034220693694738689912791828490308802278522736800830514503881972279335593465380212680576930693651862309774114709528162544063374060547540469667361701200761309056009076557254202157389884523776934791240167491576351348074095889438494817059283634522510130098777661395023242306451290328257462397969830283261636109866455406948184943978191165629470241870817902282237315932823199214566407593222816372932634414324078074391875978230061739030262586259158417180509513266046879703225455652686398726035669978895793625325964574562333629266059826715889534446808003336742691898133755122544344511574220028553268912339374114340262183692619649104642160902417615868919911557451340976803631818117363764227889700598058062843801784622341857198522488447351369303267800691036714912796343028397449441116251802990390301682359254695936397020011206482081903194574861080797368133485022928772552317918661665001492311023923692335504818017833177352400710123711553228444611433937323241041377503692425977691514550379622176878312836504764596099562105422859388992356874580962192227883328539809911075180263590707763177045590225084158941799970580055689683854549786870934898691882730348774742634023320766613546234089953820327939691830344659464252688571578296089044108273645669017128264515792653189568925834111195253601652280169088619514180752957349580781455387009775855389526174954657546649152133755283965006671507541965165495419174366724417820636762050679101566309753966463400655505383109246836568200060261570792904571687204057483330571365841842144779687170135506356992678745445213736318199115763325806307390631039530306636039420519389775935402085184931567022389771201864812803781537050557383909115164978533251265848920164630302624716653201458013632322704011149286923470205598787692954157200812974925471464215848177280457587639778863432260825058829938065756768321649042389730472316209796820613774753319225724291111763319514143818554413786003764408315848706941762765165938815120104529657542568393359206347799737082984210780907736304466279507090892018692471559006844418385392310031905121643645100365820732145375493244825466375971728338036608810298374124388530388862082133562351037368885572186725899198883323196842744695222889603898016218138144347161316431862904226304154113778025541996080052258532968500729485607291008393085659994052417880313066111362405609523297154915198875095891663940374787664275379175053315057801114461223333176267348121466687834431551990083002807584472783006634924759574801004630210418030931119746193208345553737254687862405811234145337333965965565039749490392050061359678862290838695740853842555562902799306993054302259671329570354515912207561152226723242997315559971693556265792466570891961874599290790369882733203652003179951275976853262695490162557199889953565791949216686095088896495877415710627363525426908475032158289285192065254947128239391439046324963467320626402046284768129268059928685798861602546456305211534387240971140883429766280899266711845540570742418180193091202629279590978821183479102514331280279333520429779202225232126316212337149578596170338812015554572270757498689143714511325044167147690995816067278714156219944703345296503919747290277887107907061178696044936152544343028517726674233627874977321613112791878181199369866369342818633817957488072070118290724604049838042224955327086504474673590728032737672461489467883830120305280989982337118049391985256900644122619457245741239223472013768217971656196500151743106663034125097634217981342381462652388355638116338662978093579431012340298830758076199495379506693163157583072811366072664585135873473945252718698910255540624375933265866089650111571202348899941703544342344198710532853243798355907444133318381669637135489190020324889809270961393258484204288686609556429673384523467362376646221961846988025439350542822885721506912500606555438736810601273684721214194334888948431624351149422553419678598543710908076643233915770246335626021423905799396622793926487248829146927811814369271287294457783310706893937061696324082229742467561586439978617876409734472404761206257726559428463193548301366387359653225712449631065349148530209582277483481828606118428157501820012264939714367325601582406006289518984186972280184803193215397196843626149163911494929266558358765142024133039808453214965105319756012277892986780467227756216641097977632953968972137951696808432795616871707668702297078088152667142129858918780726493537497437576131707630806814325922625980596340081484607084841110569507976210014223127061973087781650231324870066532224827815096539233616945599091335747745291994481048464475258558981933199702098575394593520725477496983046960077472209733469025032487693219608785849578427215386176712636186212771785368512322946343487888235172987737210979646110982446339462170032169122150644770820053446187801354278912816049103061691753563163833893734431821117386017525814819112064963829334319317521720621060321828605985759434144856475755854191469172257569124455899142663142394751390824832364154797511001053669574506143590641263774236159664237458583544128235139291340073583479981537355007836246374865628038433296343243431113661982813552601646862172012246728685598947512719774497245318627721204862992738368858414756557673030468481139453071446246438943449372462753121437405408902936292231475739373369838077623810359249744090886187309794516872579107100909881304716772099232886579807556453396214304883186935705404187040989416657327660409443226163369141879856784308712584953329734625860057380226946417522782510281612388411038963751177965063678912127120363981442119014678381506727610041245316080454132292893210366771538648523631663960204352166084307413805604798908981746464892202008736674310778927728806542079092071494515809540989159352992567325779279401217085294983308898574075848606515708723531631507501132329514263087017796775048342958322860140666322973398203937473583297242577187905286464084008317537708746656945838580126040162369918209348057418300498065329216035592055216163687996217198483996311207701109900992141833162242273665022988098242268396612858851342710499257425356254610170659711572157186472222961144866967421854690690411517396023073471013536171506668841918804903899496272268855713960956268817652366092282493998422095011007154788878408696852319316187593204866745766628541598507812346208356881242367114523772603335282631673711742380360095786481082906774887436245372930425057115675760509746460678951426306126125367596970938084777682972475442778872640246359407921239837270531806553862000538438238247562065502106642224748673537167369967399556920138340755766610989928001958508560186831728684159032871070014961398449020925127475235840158660054212381690019319977589237518227104740781771678772078496652689548405766739795852317902219396485114157254605135498735281130948453754029910619120274682254819612542509754015375300039186379674131904787655434969297211664927790330029483867973054686225557167403734908458481743722778553253407926408638422635951304206975656382609613432789569980022336619939155049770236427030475848485130158197068398131825557692815994892823356151882445411997773469433089142760323772866755175335459313910044950122140721775089118499596525687722848926227467384862010286303140152414146444893386570949658538253374523282467049519414006866278087756344885718216624432642553658196338814507219142781285623303613906174289742876433167082220448159357024608754520471108616931243005792058707171728109756356438155984361128915650921900800439735529073238054047082014076472148845547096715108762262281897837620546154523088753559358552719330270780772702091409956353838757525693819530887110315102300326317530238796485835158269067467169777994581379592636270711814531317026990325222700701847374940060510922020191431664084856643519035955706494857871562933472307314518112525420785969483471174424671598902665894178964214105778054635473079576557321569837530134973231593724909622908726696965848023789491304014792893869154125864360118597913743543761506627726858761810588640412172996711671558093394770585382496791318939770941782378117406828903483617101785683634701127610750777015855564112860965012942489610157450452604307488346471912922163723614655228106892664781031271886389248795381700296329582121936672686936606525674162690571060176228278900505135682204226112134657756262377960819695252421158604971001496890029574768169947948512173352298380826305233559966664169114662256831260982508430630916128341999132960236753322702732357340860513779943954734668340643530765063671967029792748263335695698881292062548547542162292535699939372494446368657512818313452189220981606650572190270999493960809405459808203738930564274018401258012143265162182058532385650945652477501941969381965826380584600274179275690288013444054239978658327678627278980967844988422261935388251663405988800034544869853652313729741491177441852413031986766681278357456511018021491490420717437687548250123660546303984744698938031314610078881486394832229515997670706190723300482235849389586030318943842619298104573264568622334532417566459058441690083496987487703084020338657005224058900928001057863742043648364816658002554106286331713131340961797682748120651766802565356715242815982571170845671080449791748198536895094512700110361708351344241968400529115284122973806733510221168762991187087100370902746416348360928220010860542875504497503918546126086877579624084407626804589106737703407241674134999311570861302034801164111989815619853112529783969039038707361404466016563739474506887139095412050260245188232805616673660057257183110108524588407715703215704684775355155030144877722406170244492572125391942907140816265315980092705453446409405713139665088100518361569849423288887736585535790829031570080235967074801196082201289883311271461287267678753471725079544003338477585671200394921231159264898652932868110113045988050911824923655528373819050609557233689093423588407248479045202506323519288645784141631130448256883894826932950362905668433274017880917633994841404017790997103415061135744600049747898772760766759326221850419353761929330845169563366783267050313785826421577662928393143808867249330019143407759236448371428396873455897098693527180226444081080376723663650315602022583688644277696151500488970637413990110896017020433443784133784814540135724887872279209143127414371107092564967445415183673155717339827036528450671632211013581624986759137071168457537909926091640323175499643462392186456241541208839085924449212652549553895445534623809590341571183532959194553474274227483554292012865420838005450517095852925454615403200208135091205710166966551874517801846089485844338428855622888653368529302910481223412141256803698999735348507640090765654018437192756468455608787388395739938735276048521999309116465276470669380193556644659653587452643799429831034879086799388543088067123755853447922297214295218443922990380705323451240961196893116308740709343525002448712058550472099383028939311777898800915177748967006272011189988192248696107169277449668487742573511407661523347483817812010478887411748187871286362650040372798677279395763936409458603373352027754739155935845781818112357213234749856968457955612555908258255725084109336925482453532118518720674715333852402994034346694716997763296873858151539190502428558140337500365809017324488839326569725186368513854990611890620026303259665326311882014130882169642131544924912858801485786543153819306011068484998908319153395929577036042817214383041985953436231957741319801848305956736614994908011456573616556483501244032095617116286757802244130771135023354153115536966147870212741315974055396377756373622229016414079622012128334457866604588366715082221346500182866636656435723353870620691828368370282981439584149521225819130916000824287473806817701387988459006058975132040324642596086974500173385670443235018284088817881701922544439668992585392855309082383550679036154798700089893847320302165594688803416702936818759353601768640152619784562494744833652226471975461265516679479474271496333121062664061710580492451396536217604504681091437258498221323332966315534788203316342677848994163170436756762414507607702582778310746993202979652255060779445934108662654800993470302498732609529386076223612170355298654604628229450008033965249759018262127014623164788037027416193316176828168380696201105521871224646159405870612923699922867312998379318179925763605235216950582619886085140955269941716458439074919217153805497155438192900035112095542693944568520999614964564340034726099713147538452143631280572922668223389982708617783197163987752164466078236703758549627931031783156969841182958202863581075325184624525408446008101571070418583251840071487433107763601844927090508851287797163739158611962136380764191256327506768057563219467115525989315430568463324684714063421714305988918341139489240316866835252064890613733325890334203167503794467464734287898741270176414889856880343486696202204257583707641748566419847661477058371613920863159270134604704356184830615697842162377768033793088494783592218454186127414113758806975183933843478516871053762582041865693926383280769151497088339261143369010798184476051224089460746739128962182743756182786923740000365132663181150116709179621406269938965507724146826562426706805831193554295150027172344955767716851855094262566043060627294347006653778154200431145626551876507164837183897160219793790188903834475334351991862854936029438366310076705472232435798533882900116720494404637715522206373705379857667851226762039244583874166492936318636136507521678105903787297804795176573101230192681657703510652396332124914081886821732052925486684056657772115863035483308051048798511796996856402464780203586139840726537676293944242424282203773000208150745642374816084863080104325077474635552983909973374685785922933782424054390569325348667805863976278531343008228734759453764764937089706919015569021351837266752776028007314030184125588042796422737848549250233706664759136069288428647167280645783337072701721673105864820126486727474972772376452450730437432579509763326606000271440447064061498248027802069554644678042773854155111235614053991690132873745273017994977851435188849976542078710235700164748234503817858427358486692009732711919407741157648239810245644183016418965693413076084264708629666247617119783931460200089598817922648003492323288470091911609223399343607752963284423068334541922140100657115089748327629329168774767925218767659111822611921460996695333154179762826980257223769484568285098531533255591136412935345073348852916919907521406108497275654832099242112461358511756265907344633684738646479742264539545152586210097403816390866522208826234396963367671720647108251465769562592226815724659571181995007770200000692769834700652174201199875193690963366917562620346637778564934634825033817707841031154410060024563095886615274135698035092667673278156750652647564887243606749931295577921916482847166440825921645125269055535489910278199297700536329003361307129054252897187498829159480647967752377869768589779876590980982307093123770299772201581716743702283844226203292405137566413681835757649661792387541478909919147297028129593023964765256694859539003482298326700667285440403593372199915641875475116615983521364829139780104127406874109402693883955145621714797134998721830968169440195028099322608535770923761106659626805824004975066430559492439144417443176115759901054743984610715743337667852230249633762005047206186239032339825370677788375059750173109112256528527089710928693936278353089210510750159863537348917190219564885034303131102394202912871530942198155250365059082947019639095670021043639200943492410617351022013999468813683615337531112406696929474172871149232661886227322044326366139792663481485848682470180612939625388188338738141036252537176666268621075827015969090990876430374032728563445379589730507203038214465626388443542725174299481951552051071836294536392840153985912815613238779162365920786969439122809563702551941506417747628589492234688649016500179805753786611558694834508534992967767467391357373099549787997276096882102281679250038408732131169350418190182148797647824399407758705007737310137824610928459205543099123334857298562065882784720634154900435385367131484920862133743158533208057503776997097995721928206667934732443708181077932919170197479549981425154426066074108075859720298905552490608696243404529039366206403316704866489117565702374672279482773415737089949825068603673415934686045649987181095627923106664380786192761861402892900251789033252399337897651348100428590484209865774055260676508113601472333351774923735113993387902856772159667189741052190741344876589104588506389188397409217132933415481640721164486563940827577634843407229082929309974073718851458942429590183384821301318652186224976169050038888279928352789676453397151792172427414736681821999323372293577114654378766203460232898513540127046854257918709258143332151800578565324892792199333948984994419330948689138485619453829756266067362184426832610444066001386845476891139944754107282325169845730957772626832043129922900897018320923579972454811650466493176515985249207591853827260565676690831175259640217499151322467926764100511717937752906888586111169768541795381469710127438411733431318912308610959208332420610633403986141014569925072129433523179199490809908259248799790428895881507468478983199137158586397678706950069773401737194742942995688683593611199243080832727800834274543744093634582095687848551041458698013722268839645806386939163882153199639374833104465155800181277159109331890619976169861564043935095951529492202188877566216492975232001895387913006841429561261430596084764895431810898661806485863513939345368134022062124310742991732162661713315572339692407356463701846185034728274758143141995631588566140992187490442812769473905398465226639111005566039075997628341899194283470419225380809739086913940605884316887536642757875737025871457839707886931142026333363652609308557099279614727272526969912932050577970916283015916238650537107155209239581404310200443482869912626333163038827580621800274261900274530508238853937861280681184154783455914265492364575164030436188392258337926256777608153692928523798306568222370319017706116858211325277829591064361942593038556493460790130356993758703793618392884973432123531239979106394211733409354841675154806140222350068812681261238636296435982527577605668015639630268180321679251169162694411886841260242328076891094422628229372680692757229312006931166578819868297738469565917493841776077699162500799172248010996956097967950788789219162037477744479500577366323830284730519072745370586019091904238727394956508572121222507289217948885062286336270167413174379301120467682202772257482948080141210789931084599831320053086607934069851790966482039134746266147738599569668125493931006881753017147641669404994010137133302374643364277214509672800940617794507925620794169777592499331217016974475641200475273765825295426552170912369977116890178080991504315091960041567693494833962811588349293485371618365097740924311146967896849321638448144477175001150222416388451384820615084520360084391605100418175357726089439542627533566629824865121977266366033051280188518410115223411812121062672136023217657789613788162079835160661318046608701930778279581036614737857463763488882470913614397089442346185336087016444291885916331406819942326772508705517512424791020181508187717850901186947039199608060266169848557782333273474994972372701801650324234978587716520595432909010373643097618726996493909367827875803453298266018678801358225071353168539605073461204559587605138926609826706927232193182253575618863780467549255035681636678838793959174369418285815579912658028090896165263861888554479063709102625295275878012127348193704179654151865892496693544948297797151977088888839884372178871504040527338481319350647080419432911588492862439683982463329563577422777128874554940318959038747492848981588121795985144086966546067934693167942477943623422872907458477128546328459503580877808178262760068414338813977126389348429666446005293417067853474319875180962583679138577381095746114153415765449930762828348435581745605051955039993717542197470207138224285082699804000216939887249531335141149318429409027333290948751441829346742277389140414822513177539869061999884416027368356882191083313394358836546289799816976279279641120328071084886935952465299835475849579945230199311527126738627879641601325185246868373683517653396310810077353908396979751691480102002932342736258052995394760361375307251497138041372928466744269536819943509790245407818809117625313541418783250817928821814802538521717746647276209311347192130189587453969734643051040186990819570921517391384696406075078034277383544656321547480315164383424586533819976164056930196467889202978863893039268639956899079252076690896045625297276504944430043933168562803807091989402448042178704155728483885013921452841664077963632720664298092925750131180120169822624933904496544920249181892473289890729268817311659740499722501352477030366525338047995865465348139082689506128039081759848082859034720893472286014631703457442363853021895948530194239336322412645222013115208109898662982981485463984761799336146677550013891821759515901514098648762182017393639185888695096596390342970002184074008901769599428253104572326413434186692336858788398813193862091460640926521103546744409214320137033295001863807040290712633067181672027144485265930532942887806186674057350438115230993826978705624833701931035786713260577653255613835296759052824351271784235221901532315057766630319010569623607937065253059866033679027324379864844547974311997592535365170236945226540120437220919351762749057405330398970377831145521657518876347531597902253268850411853176459019011962676576976164860664516962427866061193067420390510479875939618248260022247871246435427205974416395724001673456329616385196131972300066564930434758134171148758766311084259170543236462033106362203232431762616871597739732861048040193727578340725326200066868151845833570920436987906455855926845798788554837531445391168028972614857755930090533774195846076518145163459211344664524726784278719962068228561168254994414068160444055963617998272967304519961659409920611935699797301427383140129178880833750959133011914225462043462060281943131788390800732464444434756449124876256111885092081573891021480517465185672162229945088058370726008922235496119047080030174342751832872097789463247425446489807278923134540295226817701410319231229036519556449500907820432703164962036030867604592668648502054641453655605214402380211733847685924290126812798291616048865678090364458747086536960002046819822335261488216874433640314604902782612775045088424494563382356227072490599111631487461733174339858078847099815701771457385067442557989907633452752427039860967370675517734990261242746026486559257515411880549457032249689290244410180949215455690412784910589368899844444673441582443613800002971388695516472289067444285801383027640505236363345301537653922017046979571525147888781115066983405182308964254365914388294561779833289625573425365860241177009182313636492805218579119361816385121798252832229228148018611694658312098293493612997578268852663918766963195734698409020261262024628410410359838278481094540527351820610990690972939835112916299671023714274153536802695960831098142592344104817980621780314579857568385472554766844552529226368093858029775189411015454725069470815961849597439244565227969819970275017641944966442333530443819787689398044242402121043322550128608746603742842895254443817893761622875974630042828102603327160392937323271318181725839963099033148305571514260504906653186750377824586365075390425566976873120410779277391656490855685298258160057646877205286604224174222941143129819553647233696907270637993334155897041463304425522993725703721425341255936509884667335896530147228078126335509762739542170030145644019062787993280867594571990010421710557979861777217984199207735061727582091456049714552525193031010409526622923856823569513962028450006948211036951251323108655779771929693060891772266965322822474318612195746556664769228737616344183455168977292556407851836947472138113987612069967753419610745423210472829328415615844891925870005689872829754428723590216768024585221026907913320987919944424959906127326376701743016106575400590241340133373870836419242024158624977863498940923571883228904316172623904372149458673499819451575115261233921193549983154826649782127256204165113012424111605568883133228704168012021823596178515037929831506009245018895105260104045111280974518436630333650551746959558927136371080335694011328572426411250928666469986151359506545085829258083524916269922284819516385080199880708046365538594635846308970945722656562990441559664424343877981745824433232094551243753570378042615128764448472426593316325118477731778660219408409411826309896492750613656099425911911632299370163684871561223408890497647816621244785285350409377673276003707296824136725381197396737740707887472859559731744270988268344220871035025384730183451102497467754144505852037691344921783430194717166330308286380485222206872838406519780235215744869037776732348289657571702937457177417980856220808387741484026016680086899074486370650469398755892280430903891375340506684898305939804251296064578132781690784128459588135553465694438116689790274734698224634923747080536731178032628081812588313572728742985591041343285385140594968877088517117477869201352556973233324044697556229629210747469168622721350326625447934822472914677727363441055092050190246297219232917573443832581309267219229798192677028145836749832669715253665157603803331012399198374819683759222011366642182698665632386834856436138185279715805876775042770516780077099555463120539582256054326429284954997559506459045490354492787401427550337867482130257373686173614927698621741418865422213558368918581377963159021394133191449209614357834409335225172172760637499663098339877588394152248781082335539800426901080794561376558311437086823281164173469567415662186322621476020149822540330145488527722572875136066704235428758522654980126338952355641810374509735644938441482082389297757894804179731842533178682884102421851849703462293098292331012824888796377479322907143491840578895082942648441740412614353817646806424137311479269338548496580165771733364886812472075903623722809893063796820896811203296619418747228075910292263640482149613384169779539527841369076218389596862777715685660468710877324340664318664809502721196287409121490346039800213562919671801260206229441724606376567007103646313388695919201338311005762940866310437019420030374046302908365839801002072497646762620389043392244306977821825303200924905736849644711014029041751196370417783449664717351185100914796978806020878891125030492665573545791637349376850882201503160006642227499410103009548111296391534289182421470517251033540547495134546764556356541820644025556336840330504282619709039855159809121245677064024377024508200479135218132676881441003757402755142011093490127829630601932578433058071094493547993452917267404884693290401216572736312487226882774748477807689410189612644481039742250808680740733757450585247519860977490188365417614972287568064432795206943527994483154131248003151623373309142734021948314547821904599441179810299332349815940959874975188223369851558165806026133745620557669334838371364867948045405508490727665392559264251433754006677698016914884852808648450675364678834295948288540018853182120635910901602599490043748814843134187043375744792497132314405645287733137338106451576158314917985774392885403691765051309894508270478994702940581489565265443692354310657399405665359230871812892252387799234860053365592526518669755988307531584525775099448605737956815386131659699280624331151730524968131915482786202199575750014013004259365542134129434337595198091937773728701983722772354999299708622321763602341629567510309478212446403914518079806091144357356018670797794972424646060212206563256837409200202558877723068409462198334422639014248570185275438832163818053856797143566205765900270592679503947376551837814703313238577084183583060579062773546003586357582723527245422719907051489765388568693131885269922741953147609410552851234560206370599468730648024811316020795300642099342223060316548217093853440703953919887463784827121547463680504762382680041509512420873202399837059664039069450949538569613301622753519604808494354960101705745880379874994513955546417054074500253498044708107919075780337107595196914385655247271513295531804022361637181287954183004417110223849059608927646376546794946380300082097303724963154100413396210553555881229450350980178977000761358624222597457369958873720416385164888731102105811914066576648708322381480042403060110961156483578272642441033245002542518891396894953201589716584569945390511477160901439069280812478414118124669907768890368402806735546794366514916220297311406513647476842900156653174653846203304793977758257892460935396859021537486940123289712252467091099408648240310754055608943088322214313755398711151201043282457559292335563700612559082232462702573997284675932414986466572120864946966139490888155662530571637911580922718593994989605134637568577900309100528063356661698672382974125505292801352005844674305170104774970545671595640871977878455543564127468222769831739972085968360266072859037503249993094217462340389128346226431203800838630784295302826832846773829853426499091216419185401979629223741123944335003592619395736679452758757527665934977844188114078883311531887805544872991611249377098689785838390212569114600093639431364046066832689703733927602904503503459254346328572239923169453906281183078165130604055207022377360680118816544956780959561568875853009868539338320117144381648560488689219770159007436394678546628513244781266796212399021058434607611959821759060988471590069004938961800090426681041910642142071152985387042559917230906353155786752006895286652030984366885554285906884648894844385489609387452178445136200551137197918518645198606677959087938575024193600787598448696647074752308552469936821127795667479005220108505557924947920790913681262037810194040095219870489406089679388569322208095132050516220943331086999687326302228292733111327213926750829857177163130914576022299477479711924365724745534399136113056606647904264732252724555073009762849153178407548154757492887177447508763526481323668964579566060387380991272380747447103512724633585756738815770368738942167719447275458339585592623432392222639513765157160991999759628423209927919003257822156919100706342177342899566392943962594235739000818961130483297046769761999577348794855848845951555748324450340640507742621702024530750479211247080831667559323619162210895952075712780793890421605992264159683503967036803132479698419913994779055349740408408231183508807982263341955271705118874664697089817007869017729721549424578711147303424195557453519015110045659925926791266468325785507753800143435931945667359200086784977962993938351489501269242855291264637785803660910825577754692752076391743198192596300694581917287585380052895039175073749925446807368277335723842605753033765562766702878380852981586177272664125694333949536253840778196930427516524905058977695226025548612533665206408647343937176791027711227156422481996183925194854022245870639428719754585583696329500842473716708243239984472183889578903931998559098190918700842323850861377691679749873490869153212993089852594937042757120398316644365384101946520318123759466005584113109749682839137237181016710316694770879365111049610160488953923989244127148982610690698095222522805316950263749870326566480053351832458692948598377378013080737349609526996695063592119951141593807838495354386793873049614095096001049846002063263244000191791361878698635900804471688440860866301272421603877941878401722144601048579109497597402766090987444764410460509087774705962621493587855851228960264102529693122037319349810054884895268107126678062659881762853358172325249578230909845403157858234512642965419364918399461949345215108505169886294146088864689624280450706414093254146659420825444087050933221290680514856348791261414397295072329967904441329820653348316497780424490160490061442627980808046125781743797922971046196037515175921888483379757318672611104827272973888685383098753650148401198127156847352293904886797536111188715528670380337720642118906570591692105952145839118853952410600143891140005085059511681912873806788808102055834291095606133872268295716809136356938370555033700805885639839953176121177974602050295790935326815899673705114025343124026003603636092270916778412920701944377659122560742283111143309063472341501822958014541555792665083905448437301048415941595208446854282350313563373725066628389840205944412922281434076756787548705867091168752996595878111392278684103249889126140671877119353812983465886927495188718263026589963992523929649006629919834725175676581716355418036597003333287667715805319845020707435171302553573920990842584472572662494438070100523936614327150268250389371446264269170657692450592538483979868767734751941272305539113617322663306759939335865173198436046272216862155078465979112796424233302180039722000909942225717703164672952075119392267865808469997682150732617839574813671358386642628808579900737982337884733729754222738291317969878396838550194619107176348974892699077093329206652413290224654379757650226667764788883561887292542962063971833512134506610073176583110990348904064637422031663611604868533394209671442192750354930612339626936004413784865080397318128891585811805391369684343455152204692590608749189925270632096519014470985589461253752819456052231296418469770811086830664163097102193459339997570426488237735347521480138298718929487738050862635411833005184455234736197932956513138672614431882052850753891786561222658894062093036312751682764832545158382469328758174900292217973660507906870784433235154082915160211762274749479254077279485058337723795387987665564039608969665386481262158768584263795609880210801995921333560962314277825297713219374388325347950982600135069034062964759392764435103468219334697916793355314557868713230936728076915989061638244428870493643493206249577872735153459630809602498998431288071378718034300836201595121715441629589601337316979406233008535796223395248348592379986387613327720168722926413375894583475134782329938874706000706430436551076538242020714379134756748107012839377238006617518707908829193946761461004745513856171513827474073403450923382602648163253648885281918174632552830446187718569111864914432302456506686472607113780625246889516464713553912787082815409081941383133222678577425987513104039887308122901301706137780610308976414898994688059742945924565674826522090846421409062848628241386870287984327068325169985040920971391320707959581774741433493923857731928194498464482126897199064424747777413044019131460153742883543099392034027929055471765371566563276712346679219605185542186647893589310469771518158070464877205663782359222953885806728278486499394422769279094664376560391566408264293757719968114657395148931195692785492834914723789873927898801744493268620288856364082656508771587819563545859976821722109764875364433095281570487352603951367421046319356460047768975632243294983668620744679447836784505709100596346834520738541658537669718509572828638781301714376304050436331445586210938635861298623171009202670561942885240423404992622070823678832011037633391279069792378153877491583061284306172671297161408980845191538707695385310489051267169229926426581198402142348670779074412181587063378965361218112445771052228442194692839354123113959678078909812463506738759129823401810584434909460074080531697658660747807446937453358708727953569847449052330175880576848709333614495481815394426112472892363866774604751516504943301937009715202704023310465920277480438670132527489993241509591030160429140873171232240469196368244735914556740334221184980238208412956386374574128063851897112785759645727759260841095301340260923306499948882156843259824196904808806701367904576516197992885652596271642352974527295462062557714319086894272424705692813789604870531198157623391506582390985338501676292649643111699729307139798091539337442633270763101922931175864402013983330281871907493470374190591719466898364092518538280771451784298473797183992853270464960634222632043183593305339949645068391385149996431998914882473510209571904172334645168992511042325505914347631288075857655188645640196113697014235865198501613758724850817042943118495361203115057961204335103006652942167375561547508982771015721136708524082506224092863153247742910874136085174401021826470998352950750529341872637455177103591575719253157778374436188439580893613567916128043634654367450559272601874044475302198360248814557836042028643234400697182573060613923090176244710041781478481944010883138613539270939200700246372430782083774790696460842460879569453951300041731826905939064216676339371804629029085688819990972045006914885798436071318444081927003032534716912582639729920372711314147698540050779508092194136244792847548815710755913425617432682981294570557652006194935967938859566361920715871236297680837376116376283409414352098780721757841654526343236050873039490112919240087456572031996201405322945508192628599442227356557522827096280356713001040325092752160535770853970573588946639776153744473915956605604200420449519529512171658816390817404963792749458621445664748368493609294036075250894859696506024752789485003778889308735854414977372111069094372070955677284497133822719526073511483420740702767107683928092964843469482718547710211528536692669731713655226314470639816514174588951169970749013197617412280054407999971992754007130315922789678861451582522357130573057156669814558629495711521221489852859872322472017303172136957710685967955418326406509000173991223245780745596639134317551652523417736451185678249116350406664411001465520375432630280893287213307030083905855333978052004786794923188252983880933458823819764336778433696195676176605617097131011964914685931861925035782459969917533165583265349934289381452282867247711220431650895997407663426312929698352722518927753416546999494103455287904144638058096369488153206465079550821082423042724773906011878742204903105198917400753418895560447732794248003722569111655555733305072742186375372106509121359835223446105935267029633019394209521109028089336357810648804202705506474961941892151405447203845746542526408666765942743450550651776186430711662231575832882218347619885383608297137618107303514596523984092531330667297030179034465364446705827620945840530146665545704206546757751554926525659018445886132873738067493483462650282158662305077155663246857069947930791423656550932925276995601604497564135816360347517030954029273878229260974822961778180964906236778951538945726566228695289931495303135743989338772878925500127890311860793140661176999038488961484411555024087559222218415630900030565820734699262731266270856300775460621365713101883759430084256231916277862638597984144983572414146460608917049172291260917602131274394922665554937938843515810315841688715637518264626722985682255715507929482474896330113651325080751006487619803491819888581865841909764025953984352959253955465788524740419092608989582332551227253622120695465454056896565198972009875544515670305582398731038321562248677617204124621562910542129214941395712879704003296160673454865166113427675283231142736175836748992852526284749707251568977044682385888988842400456858826208407546598181226188733202769470353975927334229953851194880804342642075045994395748194945333385122975402403728456170978315330816062855383385449301953785667906546320478695348775696503073218653687306950260414397393633688141994439656528476037336401395980213710497745033458592708189888546187749159075844063645341917232092418965983161256346205925768346771101049433670298315800742793068654832145619162271986908030240281424755470021712929430873545730453669905515999689224540006777731396308425571393003545798329673335732150679091612784487996378811450367276146507328669153171778848258352026243921512778384021052685072468260954418237077674407742018229871686579745414735822964415439240849122199497740117143832120137261939051231909979606820675570263673500832941208206020428906633065053912212682499026563406449440350902057292373307821189677293481920312641388415800679231683273151567533022737391771734234386119750642028152826311227865906879903881946210439440102249935108722509773525143673216646259289522578954921273539413651710352499426341019028267475991433030386816452021955504622190239403855525680343785115992230784315187761812828541016147570182192340087916656528311050796383790072863399899924176884014303467836946988907356496140346685408615834945038681960448234487328019505777471765790879014186445558389438352902820296419807741879013211406386548275407395296333668087011246113574591450736499400011382013405003220564666418639773238818118433823610879728468458779644178140478252931870296035781533190355962352518220045223782469034810539721914053882608493161457964171962382957177155285302784296190375021112379257640391856458895671892544756645384999866633158547178543153246826659871019490352086131843809735611220248756649111460568730701394690898350428400224771349635285682778199125087819452384933028350281906363588634692963211093298088436284408375865693616423036376933419921263655947508970851157386577701331989424339731075526485573813089555913330483571219445237759795243270246353020321281079557548357548351159216586905214031798689916547595188753959428283640961705108275252003200694099293638238209968626860944901628768896648190740253598645962786547159992172229058363840319368020987024605311318912576630909992225137763413153632280624025887659982189650581099167668294149439013146337613230638266364283139464969520703154705417880268934657000223853938265342447414093629235913146502624522428559309236866571581978928172113579484547360398677883119603993496947507420745866494376608230303670113425368453999605343357549330872020016351746743826265176708597146037680938394288158885442994792148064893271948972120696607080113959699514147631010790248976312890946545059094826300261276175201422241814647821729217825319469954947425123530265381860073898154385075369085697438660148254811034607775823300922741999518933987149085760455602624103291210906691877117785035171534137551347573647033911242877224420504449757329529851807519260643630049373809225791200827922336662194834274730618448152962416705039651904718293659836252646870316717597571485049256174387678065673150777492900755406248991010583993394975137153972145950952910725649667454135018644186070970708737835428750576195190082303227215355869599495148669247659797723819363291937659590077579935279778112107009919794801480451853474418935082502358782312506600059821953230373743001804370528736778796564747002564635966515053262675162523157994412878100219443898009668169209012630153978076701021635880901204229023755032470869558622404399912856815303274079658145250049398922744486014456596186259487644268024369443835917091766041740922084207639495671129719934765124761759887259507846296981572443112891318282541550155078988696445362088639547794492128670134510726554577531887345042144782191206942028386358969112113929322580937603926456139387302130308287045170368705017428406441241431435749781273164228792407124977068398864433225058108845855182638348551719484376181319208546843016150956353722376350245601562612133200790625629353528887064135133613835799710154448618940041023386908335277948169118747515759799844300122661448680416341094267728862908506530758164914654677700250163438583105476765666369381605812815849159161805865053062748457854578243805634469451500172535301949983978501696322766498863919491146948343786840391488536229685775836239276544354658196238811352057660110213364124135250115398509917061194554072371509009201701099298363320970475001055098223305500596277320397036627508355908335265637265532389633859043795308579108941026484045726685143294879482915905841710801434549571997041012138725946599757809842527656363924765201524583969934834726261123815109358839898890643193657173661445703160953431758430789557000875516505509169436124561061441338483301142795932052009124191909894885703977364464555346791448192816835949761719410579459949052346214686988073046118950159147181422347476323125362189499291562602655789003890932227561790676571196746097888948660794941437469830315348370263147655847606473532571438301369336202214529284422836716503696970905667918610908522354022261572349023052397864006367757791400195063982032618264511441085854581945283231212358324387396888708565150600962332363874666717119497502822678533996462444115795928505434926689567714118607439627965755255025690423503436539332903287773147307881294300107074731402247008812195277158189499630257801421421155350908743532995802474264432212797295975966799950974558031614771172612917277329389744804976755127718224703601592703021992566206148555759989401710507912143065889877511742879598376878417446050421085829386952168028431627992887060692152230473289285098682902477845148809792350797776241105293363261239959096334516370097068193468400974783889612748540098395755944664129993862306908542007506140902839966728480392664062649507064776598014882218452300161355480765053905499840984146651889495481297376198363191981366784604669007611427362335463269053234080869075015530154544893430000131851830845766307170524738478774044960339944962708259828671387423979985267696948658950680250590088173537383058086019903417006189456595727876185748894631921733467115410217578362828343013396748691847230236743049776849803675501566544914819324366820189876957575613192869161122980089798997608462547680889780769552938492443981504201932621618994704317426301741152152614735412247033144891019302463538036785465067103985668809996994362945603707134537058558397007327450499520290581927509179432159803972578426533647590878425338029957318844643428860058483072676578212940202344782543376685094579156562482770837742453990518586586243284999768026383592498116084755339761873587951776915828838001394582151722950598880117926640597960264679070826952413275440552049563549479042155415554508640172246502920413042976352608957201170711836004125622783157475852964342315080841205107904626498716825865399236517184964404265282479594241747317681090931313578325431179366909873558541209550098493154167357728372647973322871265260201593873324211600125656270616850543222893891615381305822964342614199132897817507196763641221323770458968398042914161344222253148803784480979306936035993176341885771064209565101921847572200826047833940994499009826079774316590519195189778278074892838295208779232300489806837142399856922113169649820185085031709906138573567292576567833876532983753496975786208937068155389907213181399884752465544610634490777139446164990001534329109330375748603390536046186416941562303130466826309007935991994973374611823517356801764422962981709005921788320719437214505514354680520572330056303769186894525266792257671044591120176900044703351925446096248952212169285836612687798888734541914027538497440196142860357413717060403405411195448881284861149218682961066401325861692413006343333201385440272576309123674784838341709413327734630521271090781209002826690436079406438273711881578186113993648847492589344831317769133716192139873326882982257030821195660532507867629083440567571379899444863167047133058984236895040136106800985752764055381909631893965802731031239891652041312454215734542667363802437682121426384558088902472223186647828923148800650583764398539412339882755460243041522078349133741247826432596164262116161146331090253149262978718698690813236242252758072194595181196952299621113937885541787179304097181560063189525763344295482228406847617395356885526275639341217580534764505010630167320078080621583488277690134287717647560613445463818567003916172279716367149756110106653162782969970090488816557600500675241829106784394539953142877766754801250661428306107680718509892215601842632161165080163562248935301387438782678002240371135626930494180828797878551992527024235021991614001802245193357768866801767252285167740765322597263868862133572439273264770443367139866179240913095472984124601951293902665191054900107125518679881841343074724527552736300310015883958028409913509645203603898380725019057861339209222926554127189236577091751424363164915314057428875750522126191035141166273044779804316180796249999336916325768553519444483439275241455830609635887384048330631183498179041458885135682565888679856119853457445126479836672616378302767294436729301735914378016189928473152154045185846350438648460684100131925530366658606616450244066177873137707783594674770241997179950570227944159675901896986471436225638947777254994577772022573855225711122467341885262385992454384644952003384399853136380155535365136286291488800146618632523698379442480486710535761248783772866486552477438523360829890604331972284822596301004720297704065892944311309823450731657917076926903152211118187106653234636613408202771614376185857210933795100414725046091764200699349421105508228456994070281646737319079841853823392454342500750544244064943260666386234065867298608495300831824882094249516067569478645660278142258224397435589419757682459037301519848973090244913059586152504040795843290328626932493517381576151227051797091746894525167808372779179449363952574178987140895785702846216257025453588696986550692512724847369101623400367438116345335364053241533803591278642331350664951221760789927432297252004333169968337245388416629998109952736158258606066236168463301753621734700946904714652028508845929546002046553462891705426960350495032659803580513081038574143061512487802193319446164915377779388782778574459929827887613009683494304107546473525114583982492034583587610739156145208556767001401396530259983757683671883836141607906681285378832989315136205982717090853954636715307663594977009307803133097128325807845023886637406927337518073613271604340325095145307871281365627743052973591008396779419973023521493905866967978790046475832166348723306939926130445080788555565343433107862281485829309843712880533767823909896097395414298892367457801291944773969383540208623687544060238472844223811136751608559478233709265729227672098432261945669546927199980554764368757801370565510416996789313908336070337535091865162040645780073361005728897580930224367378590161518745245817033175475808868007142452139021725189180132565676370190744805201230797347297006789608556522764418797245374955457264549811114414400779011550252126283007630847369103912928046448055874442652749818855692209976342483083539831064924299138591180544337738733375586786091444621006551489800430417567741194151214219921092003155358740971933040261027372465680944312370182056374152587135606069009250881636399724322671555558422840299866898064481457176029221323085897795828835685457562721818370826071921249136007967087854189623571740652164617489411689153042711758730003792662088416643349551752949312313329728180182303910288433018514101006109821702543471719045356082006246846004326444691714526937256072821698863573999757824855911523422103972596799115944683895481938019862164498842719198353637880220915679179307827709106534849607913070588983902732093814329222169410464210879089680597574225274975237689445118698357601031214410948112707357482514949396034542666168964309096910048183470037968521323787195570212310018810240584420218697039950020561240546174300195730396252956544112719570683579697804798130140869465541315167715634442973554196287871464359200739120880273616526067172872226939593064937863328815230018695274068752541307396617872810537579174377125090461912689763593302962776605536186231296433303468155388056889398597023229905956474954621158911858649961023013553927922759916266231832601821289939529067943549399114115882396519972676908451402788890450551617576276707744837922226228711440946851152703469964920832709592621238472947598627360726316538630410765585637986821369493765072913233035864047454442138382122534344061637945615033363108093766071813946163005498860264724986698693146910105396521151115817812172828468792699689808002754785250794257926898777231388323840893434817084484007601829012188894489775973399115827160608956300994151477661335140195682719289695601838727412412113397292758805667035882493708182014118175651938856795517482852660091356742951664475112528766147045815099107088619842428009031149446224760356110694033818645718439493604412670775091388046988168784091967345418695739343163460090243132038854854301886561495880984810270641211701423671998066656903720386149524457630240196736702340776731935836866831736240287733716824818952856760956041068341555931857965944450757143399532204432379925852259708422169799603229143023985100183283875397469244170431277752337167614381467382010971606143300281934877574942785671906772201286085994430116817417221335186525761475986253785611843819523891588920200525997844025907272766765298389543131939137419105940675092529993770676929224554779926505347164936883972613424137537676005505992926906854756348126891982933448929369754857824522778898262425386593817602069733685840439098413239087037596281098802263544282114609079177139848104882254215763514480389946455074542627929510244767445912221700910900835101876016848633594495611808106597325514311553645299174805129913112335330164036242560953595630400128175582104626145805323505334762360192860251615422704374470006689224396256332504450810273969850631213836110783661809971737657585193305868510653856966389117325338774886449546765809874233200501025013720541839983072118299409580249753621579315210162920290109320654382996805088574999016662828635501920612043299247967262623986626263329420498009561016041900017667096428400229294741160885982880317103494588660282987585825422725739772907156401589873032968092287334998069134656101223375846606716851250296733525480457270183149055840457066066208374636555595778509139553942881270691001573410328718113568555825963874411466611609633963197299170434734223591484988594242401092012947260611892499030037030823814143184292055838258354507584360177705277892904267660848908121720832631701182257197363636933534842801014605369171496269259242490891180766941867450283383734372087728334266195573450178584922044470702224194725095918963245409262700251960122088562868530601318336041567542182929535086883903213061923189369130586057493340835956466619572912912179106581910084128176955195408208274589004679569343432085704826397848386813995779252319645377466881509136319618187424263781810984145951563443165590226507154832049647667665940426708139271699931822603330301163640642673771379142500576244529666100494014059459452425954864470974078895402773205984333904379514859627263040869965325817302490887402516939189649864645300422984844448436244070781249315608135047381573071029204064988283585356554676642669903056841745971306815781953495701500629355212702297828527238753485032976992876866565932607704933393573062544170983425510476964351868426472849202876738945176518971574897576337550025944882802377120568762750161039850260510924446862273176672360053578144408328635886975283428029022006616210405202851997209077756869964521039594113718016766468878641651977990171297051050089453416642342122958375221692247837754483695840141709746932167339152808252139965701745251189231426441996056073103758928777708075460246151952026733870975620442652265452989573404344962799484012071585378263464469784350918355420567936583451203802463064195346876774976754096874689587082864249335435003637986516630038610306705529185055964400764644103839679889736160858386450613117741084553400897868892091954139699774201735879428148927280708719798804704455728508803717665917600359393380498565810349083007441302727156151912916879185533769095647365223592947680609873807502564125413696008881093431609480896571030398973477258937682116828319569197874031399061500403938326679575728845768062416842050390640699903937609652275988781547922132740333538845254263049044585051508307657444578577442683353751858970294957430737882135111837723262861625964618473178500316693312091456592882170994540546315622388277586430944812365216857687957609577310880160168823613812894690908537073523993566723375014799477912782986973187092229138146991462389465203039217597960669037873998610262155456739532290941868159540271152625013219485591796055279141088992765134782788363340160218503970443400048971918191966235687701260282628115068391875297883110826331354422276856139827893758790890650431019109463206778902791747299024957502498948780440031461518831079849820067746934317252637550328593195684481733859037953856847123382813218775457095748674389664301484905240289069005910171150645523958503327631749910039143490302879686991439102515471537832463010850032400313900772357481210963042895845489723888524834058034719334983544026684480822469158566224714600805701375896005539034868067019885269710348471516253080085962103480660580061687656133593794586722672145860912163489663742901416313928126109784069538530242849133351580427958962705796187277062461895917674277635855328796403167837302804628554591843042521610368391586666771526444076332469672648301461662760650441826270047706850115730830226521257018806116680232175224579038352316276965073670899104705578670246600001857567236204704070905573886355772592119714832944411248149520830473899119794109666935702519892005204076252930414305683941555223650729303055126365317658771326961135484502628870373388610711676598879318917723720384227401580676754053040956188364152880696487821823164351756927119196328966408415281166115809316888903239967957267889811891384160281894470643941962957029143588257861052358960724694994694861360585481915991852210861350655747086723200372591684064166179492947577061066132042246462982422477205733974511461206220491911527122511338154013338150456868778962656030121308074038363537382046913505466135204476948253896324448147373730275280199635270664637408305025141034663215751638853473718839253044271606837420924026432172889411772641148581699989164813721565081105122250769344566431649221651496832026384097547616226953628139481060212097843008862562672516460411995276080507529183458926875713776465169549310377173970925172827618819282646610537593658390557803877931354225956246372441623222434804845657604081918220366328039703760567438376918846725726444734853868448274325711023086688920857923986618801948639749384744726487072448741341040039446831861916555787486573221189839543392999354941712017245469555532774282788308308346965632049687212429634644907497933259800089579629755699770413596955116336606237770076633657062311500307294672593557531110022936443615730182118359580744786886728133722516981766567337370575954465196627740919388433064629024464454990388232402749847027307127773343700452309079315605487863672797079353237561035269498803882495786561305113703480495213569178882803851054877663388084082843883748804271123720959799606541048823741334885969321598422899575135674098017966152859588563799440237552236281345094750177326123844362350760305090089769085140870976874096116019385986560223088706158538254872196505397386656888256370117668462663414235246832727567245262196715547038198471087494737533954221858275081515781417036014452827918363180089502059496542727589354210398987864936978187111393410983290601603934541331029694070286934640043208186824100835789349363244250857879197081212319158841041566211244432835040977506198719495388046884624560590164342739519084296271824724645062139516720938353666490798152732444084150588891260496324225010315342507338290327760345763298714698995276099772394728769557178159224880815031953528690086024811131047337582194780772119912427614824746882027705736490512404063254549798636939618337845981179486246590633357819843703319091025345129207847071096338057832892759843828044020539497058386026298367097409287253403215926354871233616000661989596514412101882945485177372469853642424988425250563718979430872835335559777521183828181709761850706882628802245634555164236919371002036084104416341570964970234013406453571141017781535583716674721980926078942745667434799200948533193815634751480787012039840383651353632385474713436788971973990043977494295498111506658823685514028806367988330722824634788166960647190745094094978734802843506586101981241437335368399582845844178886803431016089441465776215777246048784954815805410467628301987969399716261738515843041480506284720478809378831008292484454669573556219561840859158608961753573538184915047886654763214408035838257803970089081644184945982353561959637722644347695973303512398796810034474805976013765054521544098790495579664381831492149871499678168525023639833149886721826732992859905392496719162933031449923423997900797233625714877561201594839443705613695487236206297133164825829294566438526474101867618952643642547093765610206061910682500618801148430873248207268232838584144247454410245344760915562986069015289883185540248220310442672635576987101764924123392737782047281477815238659795975584879157598167107281200466882997385063481255597322619646146602524242834404250302190874411690192512819709953208681904186470908314627993658620873864642314367653874014987690345390158147023454348595232280425623855015433274429095775068466488259735651400106680956650670649243875057749734009030351140218654331107797604139748036417702791234195838360081397641727202051209289876952541707668472218615802863678418115259708750154540654996663181743981021446785607767986739727862657652086772051829612741642126383745793679609878970812504224914059743884307400990600503290941140931817351083244700680531580857751671030442777865001825837181204916212111437490759083152813487340554832823015680353392498765735370347379984366386926336006799993022937805205095784257608470028954510891517666695410137721299111969734284502076023069187586629334212045786848052683198037898560298617900427893538463235523939093142294047529140808898159929514271197730588581661452437807529798013843639524290000964977076663032741383145240260617929283436369499332790080569519389674064610389651043786461425242331643242215785400501699003946589169950376375758306256303165992632725832581586852771056383504589711826176730182155112506925649776009179087985944673208602795831067965468066481825989379090028671567094074747775041415348364922925452908894836030258133596270224036333255273282685014463252669465081079862558593018893920808977781073522586446527914374427854037492252212230072370617094085147148142751609747763858137942213975717880857661848238172375730990416971984971348088877095940313962113165308383816760513949484246445016301573861126587470622543664630096149625106070216973207524990052925032656354860173045939552964994730928552190695256305336794011261847427200761635654936065759452257318370121590782757200614678121213152856922493666927662143522184515549912805282204107810288269521084151976397498121238127112613122946215831130200060517182518258148034611143003561539400813353251802064072497947898339459543236191873487583369502272525911932557867632734800929888020980156491168216049413906586355932828298459682326691334475448642220417080423487513397309357898975524875222447694933257575544338455096626775109494402078388425550738947452541607243150011005136147187175774257982980373370277734447911393039077781088980371020980645062940225647472005179409205398630556248026388440831429788068865788329832039059631341956943651510657169192122457174034404787918740427772805349327371163781970734573124475584114258404504941771557147412996352749749694054306044779668234273999494750671943207360742227518209179972552727922567851588752030937163043557198122158750431423645502959898685731097678148043036320456216052307344830527653396080476417189308558194527727517708216910372328703606894302626077486152224621999356819928873276350200879776002182080848828921537071986311282701691238996040430089672931367598049602472965874070029119214850602085738064603494457877087657594726907714959210442309226348587210230233631201282918723984405319210933678513470642235720376923290725518919563875603988217128907725462713528158970568313054272315466388177810280783936303784673684618727039121849613974528963444374788177768003576572755161398388858656162070128562131659668498466926852320027074588705807124312289549815320565489770380605490234303113267042967304133205796922427429176296668195733004492387903979472820668206502065060818841158969681078642973681633468761198401424522602097747126346286138474401810908995956320281932375905101204997092764222798819405753629317556918976934731034565111312254851636853679160243549790763930741330485622138593935544582281521207752288983705682654842349883917753196304609882967083691381272878482079365445646891475506011561608256530769425388782663120687628637651329570737534884493648365175650696302075822340237140064317116449284411916078091265970997678909018962438654266464510260139526424807804174191561389749379906819863144998060670300482273338070795672606430664582805497378387538355921111808500013205169747546758107746351081391886828737207611891456552583075358228443795203742338194428923255111421195849982402800507983540581846097912808525980020602238880752379973830128720672439331854455001861427021854832042505622389538702270109308604440540125692766055232992440180440636185370001878423634378842105486984791829965628548751587564246566283359664308975622414163748116659328149174284879386662120735485604006713450365003095585066651441476178127805308870575389222020752620590406921022058007630499249284836718107626690244084414883901006969511354716175610743173790149538544214285099789940509740213008706634720931961039504708531630422860350437406728254860806318893818314040100073043781872101745473036139909556639165333411059737422385141061779840782121476652112011265913159497470835598083924055977816095018712397500044304379880936269747440569296749968169873787263494391448793674493116879868880392862659616712764700746753770038173150746783026378611253892140766246728529959791629160785020246060430971916642117596091487518062089802115813668895722833176841018441236425377027393209786347134402779167889300155869621355024650202724388369562101815200351820877422534335341717256833557867030478493729784793909834283062563611701378722772385172442942590555043894067003538488892236944209392615457485532395462484385659836516571713989567022605832922381046918330451070650628132208633942915177248838530450648256002216447451924401399698294686402093059905037329132346936776768910649869709039356323988053312969866790235650561066561315038894363486986464572675277901055923071609257324194155356516638170906909793716996302505181263237898296417082977890879605871646769673597513109463259897533818676553958960121186059268835301082259355974986176463824055301219261185820373620999861429460581071858018966652759358199472743786272190880725151329928075359627243609575457242191099820207958533796568854536674610453711429050807026361454765742760525345159663750726284726792812809824071952145476011597306796585422817907678186192528293770427694572798788673822649720353102818656550283525390373259916367097373260819911676428831211845389346639012862793793469773237118987681985863990965016896321860942660188133867785763976291998494463974450860707918511960365863954410625274156899936000445484473268448222160399180199912818654387026884105582169414144780544874242481354027676395409749434694938533804809750623230565070358259663015177001676416018166878093236474239857831871556265792630549669028457177428431422383112886157807047592564320957877089277418644821478093875384009305828284015491721908342481205275732958858184425358314480508020785759240966242407377013346379870337357873683296700460225147317872542763134516407487317131665481637540131199181465157717450304951190394040955687255946551977839237636140972535065985732601726796310898362200371671828479203063203739754095956869100977036004910463504824971948291118430601808705692181840730836213406383865567706046757633265147883955161850527555484077401225148570440180342379409389114995280554467889279164099889024290005058828967485520269871409407231503918988300448416948818790342526049215395904603800274489952730364916114014451468000513550762916115920809719641032991930199438123710844255229348369290462092443944872151752427127477513198851446045471902742573686381405396260597278317218539528242960710696410691228317389363799841077786202662322014705723837151210125077493488212542825830077247322202327295752035770582628819741804784269668025579853767183498192830103477421014920540957985575131902240198758770038409002388431793322997200428105711648614162119193927131260679258134439113400883298905565326990261591712209937046562188755906101627780689062832340023110138104826802131928987536686889535180108863321032866868454728128958001450521476327771605659557060710479013177855506336630485929908056066177963012650004258542020392483922080556777079043100436463675106078797451111081279802422036909196664408778651111424341024675078952332700756990744820427896764894418368492676395282982460184171662746927564184911229092345188582855931419171603532352211361203528271580277895101405999643624792075305479949561933139792557091230537906953796561216233306708856611773239261080433645598381435570944810793260822237922202877847792425473976147077330227840529951426340186033317390722220585974519318075618464168925171761189814020377101854969622274792508836656970490288851494857470990793384856950030963116525230788831709083248755694320441800388632403131312638278148299279553612109545863551520236366746654539414540398088203595284113800859807089610792461362451948878897015268701594400816761565426713008892019010754488056701166343028898221842322536964097834435424694176983014528414343106870550142057565344213227569164677525310543692032128056387427771149651420777491822671077868293832116849931430243048377141238848104939959609611038992486769677446472293333841946662631958213067791106164167151304671560354496962511898449125528806021230596826184461106411877737364366068999180486733601750412044203026970491700813308043924018586070438141863048404318921672651454202323008836679638429722104023157841740607850810398903022133991728787995247486593263647619321408348038753823470186153027692553993147927598365032035850075040625008672553263892992940245801009974143795200016146342310815864694674301941373551217013063708561675970604777035672775295802341210529786832462726450537568186672711504109584223971836584509790806116983166008906454243062015769959633682389025853709771254421345845289542924037483607662564767645645216591976163778013601974223123773155481818456242512800398077091090199410779121873529828915446495084277710232876414177577745631899900137547840878255260285383556957574782394747308239584815968447709435105982050410403629463936423620706889068278816864483482079980656952210800000171331997026862462897106856865635287733500529415980400343189908308379814624806967673174967170096259741729889674551439976056327368938939070979331857346064962416852267482589262038851737630868784501833745570561376793248923055932438273988716942137015083570837034259751815665734904495817035828491007296309640921438649266779791948175222057614546519957454948420058766672752172912784259167855976185066152794982096420959688012432665064601938277293677834739378323154236888742211941125427584840995509510467314370863759248142148147139513452030417847461668367335660879051237412774350673844901362068670352144449964265322720590387834195584709548637803164819254240849108893889704423602484380084302306063548169342528483358462359406430873173199939721963642299667639567775467399278481888564525864786140888158190218957565844310807064790950100125124048554212285474013411847610516378689283181134314123396791528413977400256260183358456407887955008297863826826075665681520692358878110986278706944252880725013267653226757183362317908750181037087647491276316099861516194993161071713515542898434584683659422725886797095688450231114780190467224334893967244262032202798488276454125594878630169763956871429911658572976172887095115316810156567552946598558988416612315329405099279098550106608338508393308519405175735990075556658268802047949467590618765387918748923786101095096369600166554855097030077254904674866940041313780809844628493448056072802341734746036818449732184577175055414182971316384680596168243427145188859868868476208422187088078189482210362835788437391354314186775913513748896049491565471220327971640537154972227867446929505365991761234124905586232389401262111269071761692536492572172176180474097483292012256285338250330406529594098786804915822546721524680098117529506953606439261805733140379889735313981335703917678705048932727953207017422757712194193069746266496669507668251289341451911791388382413052832235104605024002506948167481545671664577375306710734875468290718390651341865574588053714488244080120340152718812083975656654777520275275256868765221044410854466439980985324807631583903598664711446099953283519761808061133639713810560985953649715770098761342848595682219427854011511367990437733124009094912692550211745268337891012392016134907778456806483847907054152655386062846460750873288408945775240518390833577650680655227190246343974672122104888521155347800083114823516754168813508920728555592519469014785169015548952050144094987253020894168974470572492809650427497974189892431181961090877511433943043234567598289296675754225044707110800911617117150012305622940274245323258109500363589401863638738600536481669573430502978349713550956713483625855569821223812902045936018464668523460558352728817270131942948443659918353592696709260493703078250022513376225684810019132197759726146593799484706029990813392568074173012256693059314014575645484476527721586652016400620746385776290833360111157287523916399163030582442386568302738907616966443575870583036787972686527478346326272709320731129441786259873181457356584397858374960822366246061800071748600511333160708690646234122029907173436383841698144888599687232748766532119719953602828967183000821791911156509561231245606622012011275042528787637174034342410915088952715273915469955620578452395916737115690771552946074255719790126031967342915420519997390900778572669986928120518919559432168310187794276510416060340242419861618658387084762317903908083762936529157515389063694900241760854339711888531902741931983321647093409148931699032543546709639441292898805108831357939328818010338206576189746901670032985628035288473855581390348651150036637576746937194504111226484217347853099960757053697981625406913189965505347601623768710147189572714031271560604333369243678745101059052509689947599152568695452262122623865157773934378871112766623694173860058666447622639293646207609519831939506772855017708056339987589000143297303465726041577188872422788370865879432288061713722415186707804571350670098029168358799123028717847713616300954108766025441408169985246075923331110288239916493867320553961931002594592459727055174723866449710499338405811013234936049991662540633510625325843831238635780013215110930543900475707350784503177055616466365703932576581614478659918813592822717222961054080558916596961838559503486079274910178684158612466816473054207468819721762209879864555345687444668880328227802263999042405027392018471161096657290898167323019482708877217890236235335027506774129917081435222729310567203232715386149124191925786292213672556816672766309544520723090521508626841465899549554321994834956051586395870148547938792058751190545972987463170357448689934738063158977270086399394722166797612953732074050736975918584102824080046921946048607588822739868992705754853741105525837752653365253798608649360669811641050855943482654426800842873144656430092795437257386087147426806831683149680517879501244072459117959309988352563778384533093024176429589624506055398046849276502927449727331186525331542583856330189126729736305763861593865457511648411772068011318460984419289086536090937482966937732026026362888847612925905905226258789692905794729512459448341243866362477447375515394140766489015168328133780442866012594946239314067660349228458478888139494432638875101654198901007416118007865289919287959528301089014835370143209190576133969554609426812764116128076988646698342914208048403912726964545335469252886258464596764532893417389696314130372633023633569502706350416745300354642744545776668336750502929404786650165185401915467880340043277298936013828559651040935056902838916287468852042053556612033568134006846625413295330771505824564245546412628433212665096968367168242424006918029913685365214867957726934840444694079766050626176702266452658926383632440039362171685772897049556256593182372298058919801475247954440519784947254514431293285877158547392413982161595557133198248133589369993491854171548547485639888574098887862576120270680687924893264810609392384308116035705289682955964156894063181180736750779211001295847038691690433239398658996421507471458192694733972003423944550403403073312910299989148816078496298546145154038428093997418386136469132122388769945529530610113795216901609102353280012916765309775639469666016886383365979629845004685866522766893296644634334001151494342382833788550089862591853614187794569852631844680805060858188644667248649848311141756374745362851644485023183831193144727894720077977559442433766478127055703373286239796313248074121868036972422629342705007831765233571836904157204963732585858252045940628594789445029004535713853718270950454976565654216364667613531890242928256563642927820792287613152751786752424775243350896338077351843402885038154231222775076091228129932702173174097376144567468823383070157281426817550709098054794020364446694958723647291727030279425583178386051656355477943729471909242817028321880675916482835225569207851324915435204654952363687787365123556728879538527124849848615383229544327730747614076390498658561022140954493660948698664340798616430050687071138978964689126197322236493918919793818356557441149843146282614300684914720493047856683141995886871271955123320125235715062078328834240276458273862291059102627931210618886751888772947142481467952537734241885376611401545087214605976949747764179447371537400720606039264632295852976538590870586556745579607977037417006157657100757621180279524179203019652593857735428796981152679076009671063160400689919837098394848660422344147546285513065347337822594173846629857883500393887502497842768722339512577925438595955386218581645465506007145410639651471464365235546648607626267488356856147545132606039144660758286618414985798520529015900589057356532254704828420759471086829027371419815798403675394595232310952965355934801196208274244615513677135551923517408130034907000729160909661484135642375080671939453123525496686731511269655728413132541497704704201419330701334341250962647047189712571168665837794250186132287957167478815925453700386941035897303397634115180218413961547212091343871904797728735573921238562450787362395773939585552028537407241574239281167050454246451002222009187603440785863757198280182659946028788883331256908131247954362090111746932188981400834334205920304990817139531669170095578908242855947188188867170449638201990915837044395050570787818311593537539847341882178194820355798093180819659167256944488553098140115133779641306132123371033135952520072800178682318245844469664582430645444945860827900546006587864631886320808927786239068157513912874797681465263721863161175198100973362011988554003856641240829513270463858308589703252806204734794317440804369153874030080483217118558078357029069243885585231078723054158657682206548532359746320508899925519787437595979396254753757600011907405435121560623038039688839130364099006628938863950929273498302692445034692538150950313127505139333964522966276959148704709483176780300800942512014708147524229895458411400717969284124469320822311201360299868898024974445442539214679765744612037578261964825285744516595197524540246899906330278044924217906014759673329021231101900048331505072206328000887671973919654331316909691007669205509211955338602778352346438336398345188478702774462521628936216220460131058342043096232941366307096302697522043465369526372047807319895809275439957865068912990570960138508170379376542666245657884918982325254608268857512356757667112022772184450472568044142811632926831763324659512774431813806391092503694175029389486926140253031409760167956605274293093093766046554075112228338954933310155627787428155057838113658806072036964533473188779342656573657913592985609849939028132529096840307706880297185761986429505388683536209535450051619498733421298769454215183722301107638129566839937952845599226967210919896455360550887662486196904032498381932098048386546155195624082907561771251992717252527557557925919595992594731218552509632362996819582617602450500692995008074247917389277729154492525181231037951023089644433313746400223502981032935317537284976164049579918555600087457790885052356106550080249997029091782381297922604626254350334669624892576676381788459736284470636601141523470563653048544722098217752933153049512764628767425550815889976823564134802710422022844402779674445751197753555021793822096736395728738453168946885575672414145902344134366387516330414309499841573971038581088620326536117576811806261798473092880010795051482098963255340584174806472346998749307225839773590056184058876983147308574841471851401334396852846136251598132994141245954760523650125480786191210238813232959511283482860169443159174244638417503983515465165838912858667998566497430008596471692797071229590311283653396447819609756735986161819251850275552546826820862622476944272193810981867483460112263577535994231736881570067061510363308625209251211968088922117164771481089027962870092272069044750359268383889796125173307182597113215254754230305441884085446231839634988816055072761034135553454725793000735408931609499093363994195670464512933252019405668277833701998144606536779682542414627064770760604539441168457723679134420540343320720109142515592815125169364045012304422828473492305490647607628027073223939472040693881057764607554252655996862515176879129558640041342635644368174481693517537755784035109610692015649999818990569561439625133685621491141483608387540313987341780392362907684951749377011044278277737822008023083839444171859408657613428408248251159409213835283247750922001833427340318214328333113066629716041560476588847300886040946136700646631415691163249924930381655411333286940951679285650973888166098071824159183538353311746842952481252432057768104072721149143936647463486034124300265002584234909699781710724453880137585159449060244399428626729459515535026693247576989825429434229716276664898925935142919250718857064337724717091101826511029855070773744648866007526978160872581350892260688691236200402166421817215050401564152264121140088283538500182842908027334093408979741071898944334654403915528348000866764895854167008054192725471715098737286470152088957323821104836918227874175388975133018599038444707274418495473283647258168234297055807803661971060559977229144745761069646812819513379203856746924609780846758279439337239075489765557778276472187870916866384420030372222946484894953942616814929087250601112955156977315676192908645352080897627084010784920670166962837211962701196582230292179274678495439071658157916894580153567911693129062951039436876112383011825883466821810797936461636668708714295488069562431976117985413476650855695371784595050099972873953077283294815026456703588424431107212994244031605794139526826682963765584545675677989340242312560021069589916994651203399073277693212635280652908533004860667194386811665602717588580669427465697511643679933125104224184868224945806682019300258873101260022806318384156882790570667897098430219512409375140664240354589758701440863694526317180198107779952654174763691297572538622124399518228400860213248754598617805441149999603195119283368585645564090073697281576519677468648592348512738673053382302021383944080735205796262941114173117119956065635352259428872993550083839432128666790795654309243991346909162583459373289242236385281606211148115587681838739567094958710820185832527799476300031516099866702003354776777389048646408606180008054583688488677613128690762601441017302301607412214081569661711238563687631594481652157509427837274285854154200259591565713495594858145567438910909508288293971773577104005442125794426052030514206330472088643331678830686901279275416127614032101549388408328623462613347033609403375912973056797657059380873480046295961702893911310182243572490527639061779923180360686118891712045740131917078475502354938260369660780312604812044598609632734298196900541864235614507854090841526606854121966478126122072032960696269962587643601685336880435491287668964375952086542640882150138963555277324753033691338903391000550803679348214449085356647057129307009318987641343607300563098031801423699989136134555078290177079371265238003687938060381017174192070275538879594427292770021357215369806434419887394053869897294842728977595921701585016121532548174379208692375324134710039416447552351151511076042042294732840066839638660131900057097992710018712814051439614713874651495530005650880088915345843791603330601794491908457580267932201039844501196780085105643095407323034836471349458931615474338413148955123049474016721536517771337210828839111779949197433351032810526728267815886553361724317663915873688803647010380024620640308459203396428297577659307991971951620657772971364360780787205013157920102528181910673944278718646513119763925740032820227357751050793001984980023414829420044652145161123208898266052165654745631695286199465615072831483113272860909431098855573921947983849734485171456973043081394438275899432895579743924081356421835070397350859182956988581803805857099310125228467371050742373319151890673477504215251266698739183126163096344987259294371842453603697661295753301883697501966291234902266361208974838255205183508786089108609750669304917889602202340651277710434889433218892912540341332762064408932869434828102100247153050495338124768599484020964700540209592626744555681635179004343411617143648208772368813869047483779894806873480844242736640992804642464630191338347721049953666606581729498702261211707106681519996992976577578450761193321309288298199763689656210559845512569551699437112385564882626580598012938259217966065617177462283286138521921078466525423075092112369912657542817869689833362475868532409327367328203857155826248639975287781702984761443579099253676332242672627680173871863101360123880739971125059194449716330038652209053727909511425326740880757148202135913777524418594249042804661811043807353059586920940318644785667178372211177850036908339856825625977788146910915665917338486357169961593486782607974808143763317995903676832761170482231439926525338173120806084273561387527103578075197959449694712098709333138684083496264138568007860317824753021521416184365889818737144493941098699729426419839974124011658983004682976055490108783958565107227004041802576764351536028502829742344968832409286790225130210401944608710963066060866735380969692027983377641073824485464344514641827425706399175652359567171914727983093724286994067896812566456470892106456278496287151156546564364424326058036512080220450604942060657176196017849069496466817865826899603462868004551784475607220099856384624575445819957671720985102137483922863417095945437008475446406020214849084995853508942630622685775753456907119048730834798965095851488943554733250767779652733471872336627205746201225575795985222727788734294325996663250759428523258436955154101854698595334979128007895025802365601886337735272261464156689288700453401816579128456231049577577521082307375381348824578968516204177318821111593279728922252809424825298370861765938599693319187844531585509809427258476853577029840193795185653024367971275249716994666166975625946460184917426451384597131577510008923804139716205728070481934587750952542982640747509711660458089702943204230033159714310659194939702014388650011602629522334946921558166224819191382302815975390283706996321442992392500434461673237214625350773062108090769105244063389555873297781989729890536748871952437484344095863675710105600541918206053012998245827888692197239991230513269957628594356758291999481529005772861233911065861999396388482337952836574969398382647895301668958726315781654832851417458554485777010648861581563998516913098175627336041650362364137963928749305302394265177699312807890417865907815584403673803254395881069512431021550263378489967829097638545925053816969196030792036361605383562156998967757192716891816425665102826538261206107782667070419878162333087512848543933034153963426614484180807892553716710353171689397567876836722168989413032699778357211025074928197197390763870733687056997387462393445401742225296107061113226820639022753603707704550914384150009129114503804396654989466567237107600016785371337612589223381796634634202611278495595476589152368673341634630847227092010736761358662384050362024679415345778532248203405956353969943271306947277599220991942841749955264348101905497199926627401494932494970394480729240584339238274254513762156941217875851461257745462564398145332037093264339776315797188943836672877615731134818312316795661924148341000742867293814607884659719864519341464287453528212208370061152540847748682146876547979445735636044583870997453880540178564928300546542649105369897276918023994456684412684597407140503159410409407479707583292742119046026227525078564015769437131677262499289773869520029732082585589912133485805304764025280918991150043202402254624746509485317626127238309078263058049008756854426449505314058811120861046838041056335471967897327494875933676402229973493122600092236238734161240063237986635410347300128614639605457751035053469474152861571398077659590704969466408810196444466932548929619979279876713372653294341144015112773693046644747501753632433267487121950398614187446993675232912505715803203422696939865613295722984135381858675266057489283765682046324712586695264296132061913464082224852187850459431455696212571006472109563506448855339140282414622155043213429768728249887308795938910222062177226609326822661405730428747444187027724495621593894869683192279167921954981639225810145369500976884602505588735237867138053464792350327228087907326786197776555056816952943853324891821251485924399095317830293828709408865728544285339839070310162521793899697902730103560219987382133978315171636252502654719506682743587071764236044447010336431835358356475773530173372853392233946815022401177963759625320035747723129745567596090199486152181135136186053237280721038667265910903352316025485021677082766159269771726396133654762157457050458074363900393737453912039480474348606778601303468863465283305395781167230583750698494721008886457827115877265230055633345345116124718604056616571377910657656588723690399679926519690148330586327610676645962074443508852759951786148076522583003367059511090373513909218280367647744768090570948285074169908988067315907007332970543426284090864332030443136826848747580096740366327315273771023035237652121078839802710004891401218538609795036245259956342000800209361852853640735964726637931869454146706466926222851115931149434362215822884588870766565852236780014662447848809111428908040690807472029462329532443295933259009217131751159990893116894068402846670449711331650307331686918839268301833458601798696526756067388593249095079656213377175912623292090094845280074767255132847213025003554929792351342139156469080709866027059160926850827437371635201694587687106294779720810491116409383621915858906555005048221483872054135718744762071540309113359426619299893473259403869298614770335943836754547574831578511479468653959444024177777347658469372207065778214338296580899476322744412744349099885480945275986886607802825179539711628158513413548070140801639186378220244678999884607661737648573481214392747404000552884951424970328479389366408815199612696964604658359611056218635629052213858594705147249592992040431362251844080831487662115047330579456082377229342520580454195738294940747841898819964174245130388898445270419859498251731656034334588946590530824611233038128143114992039891074649851051038891420766190500651748887885594257296642452783396544508402293385655309688714198617374693048275215812010026840262560886888078897928780983035176188696713512448214936622425745769325272924269263363765982139904061045610123022357079335175161058893966159130570390610166709900433194236066014528567445978365289898584654577344053851743274085414557810544589115145441105952573870895408374137238186830326699609390761424668496635240511761739250280937333247979606639115065876504256554503175115307742812560666728365637921342213701715982390881176529797056889693576025464309226111180712840537042265046060245751743331001416639110474725697546613854631990668153355938861724732156610689712904600946136072483903988375319740749342695701181121175362736373258589785543954336693566844362325494935053169259444055140751721925017740525897971951281237958179077512592894834412115330447717876979762114176990529031395137419702776172192302505318036624212732529538177029400425972793408803805944014480236624482297959211504975298628433095832120749760549354941284364331151994637831261280004599957384394030082286530424634013308724189145902304328554399086859233851219108487077581945044127579068202717342412394700593906730512948002130461116810917555018450334629049752441237145697533238264337567518379372639550244901989140917548585319123195957472385471814892079570564559912035132259019040338437893568361650486419266559516448896512119010836698669125718039507040860524383766382419902654085853122245453733733762831816403656486134587001218431473926763352106286627212483337738254895655733909267554800319109615004407852732075559338438534548703175108649585253452174597890872406548624297158415853098000002898394295524597593516845533828243841737230245483502359941098642090131767092791998569152276544365309055028639265911735488965808756482194393313724790855029737425920328958229583298557241780782210962290502690362798548612893635953286255458626641733988196292631982173115880312339597923849834911328459084896407286040867141220817860663209300340540568564247725046927428538270438016816020107126835138848927855123860721336183633357456693864338660539127371656971974963482920647087337948267360850854270392506324239018684375747625898817154591067615341183442662152739300744496219620188905449238888824168159927868980060197894199446787428785136027917856533091269037869448767961157692342974133974824010971876878548700282763686120458188643326027716925834353003975181099857216865606348029796907381959243742518728382910084476490758239896181340015597350983741642364222837232847131519025609855161258255629652416692623337328296538820066285251231566317021317177117258052136644480374957480538708894732074570826245229246661552268441986725320571558572943084469424537276856848652679631562716245017328108539615398864947975396503191491615641626726497731593590541576977518973055078542012692598087989412031287111340035433401179392806344976165681737917795303340687152124637785067194751678146305200122588350070218869418122010210084301901137232091737707180031765891655571656616513055899034300664130570230073317693867380148814604492223408592534119281546263388725206310175207974325637258111643634441361542943903664308643645025443401769855265405206669732971524340617235908032192057349095916138669067514515313968000145560804635420705483610276004934240198999255831304772174846515256315111334369976691860321596967184113586112293359336258257030029218688981840338599888654965080277172417887062171166288018640863409181404825405053565677254417449443493267878715945527519013414893876784156779245403497796764521475074625424140229544400926160634223578639996088906281550562814461667938865198980159603016340827633330461673216689461721822147287610299752086756064808667482662026313688525095431322476873980350399596014993494892500191168150455594003402074495122447202382949791441118274645688392130829131841121631786657486355093262193535660580265701831439981474428255798933157587514941523578028277445427157326739870134288201689921606051637072171530045610648234024477605932996281174492204469701576464979541833933643193091948511175485476080877614596169526294035872367873940367131989608788265694584429319157382029668689563197559700567635484966712583574854104665673053098546854617493768232417464518807639144694189484428778530024657580045591401484839561345374629327642617520036320089061996323939922847370360456955626183998202585741760398899884272368842114030953017005778444822041587713474222513218720662314111553349867491390989410349245192871648045511928171160352267014971222042436947322852361160043118986307434586907108741873325556724459535422043898176909402750051733637365665163639631903407289287845867065544174659833857136768407784571806610198143634409939122383297231444640179247954528681999188773915749153848260278692982469278214414413259191557530481258479807196743411347227621612356498348751348420335752952195767978207649357827797053486110585572076787053712710899060466997378714132724362451707499502999000391127168078706072288134503019893520258363127925761704866621733498739485744113723472202378991873728431898340285086410291745820748124246755384215362344356727657900476352154536233373092139070896732363773623047521085050349371299809428116112602952484635732755535709539753229552117785290779077692347536971194814678389440141569508885258154682994307831343177080438821550523363430229600798191491802556245012735212448145387059061487765506182472329333187831827640433567148572668621574021718164098190222113823149460703942215084283242865643975011128027563626021136671154448339113008430056460282935992992488465164212302067680878782999924433283105331604086088388642813840227782026736479015463960269904792045564763498737633558631837017405153663004858820686717082878578559155524593410213805877944013214147093197346175142325019830119061235705262355727388937604741882330654499989162407907307074136006575846345823294751586822469975534848499957601862792032845049574841363732865139786449961140850994522853426146569420321946563840441009683117571346593797307001861571700320425051847229308569251767755745157432457258098687103067159646211120768951460497913618759230772617290500405230446525662476556345486963006571738233355969042639078811444014039492569385073958291128746579652327604864009113972201399055833118301620428177836378327563343172727994410079263536704227566227565119947740392584511447441743520410159463748708228980036288932307802627721058268362555459743991191676958953538618762071580681411533965997837046439495846799433505504922811829630337813982175106125336576443653816966084839738310715300530414095277032605378453140502880620756778323892611238580282709049620889853282744205884180519993287888309209295506867452861760329025531808753141340434799552479663048594514663730343245839428785779932255654168803663964382179696166587191792090069064355466451590177060186300585982216795345250596651745050475421946728024044013305001889454456759427520701764796017151447703827967863163986705756153320354505096869447291621583739962348832037623289567272275844339571207498345416581499051730884862431004745186375102482154629350722522395078500103346938800428158903402295300257379351672880631531029275110181637480340789406587098371474480168163431811975593666582891160763673579651869262029141546866096771254092183957399906978111257018569120231519255989926069846648611765045588774343394090884518823311411018578760376034589621630097672153362978845834900527435954048772509771084115573468463112290493888303654264691639522835816883137867438811816464665397869821682478271857290629976115710207472549954854661345320637950161243510308663446927392725038511214414785150022725793534021460268606851225627872851011321413817159816612203068737813607884574368533118517463434707184303754968975584467264013467401605033828730845613849383277142318205494254137280749248597563746403454595757748276775398907212391988408352185480779679501055871656509528964442139961650683035736142602335891697217248461984338533420989838413221074112487600070882278149646202429551583682672121818727590802963332933133394772198075944707021705994233528528620273639239130293576751952897522940452734233435294627752519363144243239115094875650788151889493982938164789691777984867959381736375903314323883197454808820720942629018480487149754184626793925879560140861561488541873507757082216339491979711177726560758199780181620731201486698840482854166630001665496478695121322603534309144266598271974333656602564563389123066774860311016718102093282709604049067892557832131159178080217735459594390605496454391798139714142229343848278012790094597718224995013964523573251339216840857587779104027453808102272308313324914762998812963983665586256951876975405495054679894541566060922536611584335433898825201732281539162679685567753775689394524131983966434268585994152043542716355190073795184127749166585876643133135904831601613768307678909073594249479958928961475289264314480356051925754650908950636044808720096468367151954238612364057031847095670274261055485255998680917338271134754088827527276114564004618773922639103881463109078235680794295417964456030987174189826593768407096174006820531437149936564885990272447769418743527012939381661040316022344012958359310911111986414120726739125146149737721028344404617598985652886678644094320281839576946093858651388355400976792403929592507862734787622496053300535097459692097703691304605822013636319157083799974876730148549493163235159036153375636518502209468929138574767397719048931794511649633871184399533719887686077550213280343203288664712451915912948083588030888043178357118737841612184581149125085019991228184237262478925373063254779881291284365892797867142989345975140607252835157504566640815790770752596270683178745780219242166966962005455903078788038115573563693620177383439953280065116711773554420333800811825562214050360013976441291715766258402931161881229903895187154705233611667785225115523751800791739897431050765695669997717296176335204639177807131537075863464028666075480005668707591353908403918380177317658775442116820194277487141903327267419989870944228569041253679254421812756945175669001176666913273514266972179357772909958194068660963374063184802391109826137741648159246908622776282502255751103973096564333934054082955011142844915134991794870981898657588957015355115951817886559508669790067677475844428940047682782313177378443318531896697781316338730589026979855434896851368074320170479384847341687740570211844126512284448262402061843286570643872836178528178966676173483126061019306204726774551759026754118442847819493877856208971422901743691246080600075651334013891834881403571291392907776692440935622804264110791116856933751606747529631941142652118785251487403999988680771589055490849713136253929526554977228357378614460216616508473868804992403027663200148026645567358573265597158251727933295116741955380232687845895685620062538146594479987731868168231204483273906750535035453945681298963667826662111288403040869001978138323246383052120821533627422800079277415805603751553235580136301618960743969010523531840648963294038042634940717171027451206627618490543972334327475831677476008913929184636717271559994610581702524771784030313442227141823579778910346127893921646797017782605805786477688902074193534751477241816787758034403896291009853858912711569480065196508770079205302141847149652163179841442658959108550444137675901995336259981513254821150690907705365046547650087389830589027198981286374512400769572749296392359611830861571977700366309943476520682387370018385167127460019517136516038349566520838368935620098463921089731400053190485199611125148130668974278351713256830034563994756801114160656133064368087851155629855426460863216950877752770633380711709240466715745271062253881465526207279127522449648685155276492266829600308948565870098347690018734783986938085191461864824235156334029162133132270542143749828875899669494648026578693895453485478724768343693452456900565027377704760409937143836136651550556843798331097593180654758821050525610412856904705257019212385390778828385527013303469884260056561478266699008051086372683685085806752802923640765145813957736784326577909115330153063962094516297863043766465767128279632852405483777046317566473848383856735658318580178962196292603868744697399857977449163494250056411501091971830986370593746846423643695955914605291669945998390672026847548512261247770105945792213257682299899795230988796044674111534038507804306344871543468407062076800069523096485695150292445957531210749139368427343042114443308095219159876789741138105874508315786818780590292790312770682316418339309080666034491843191654084024691630107236655690564668353668389188093001879142879938182522582559534284114732693786468372399708396617358407244562956908628628389400387481107788476562180729342587789627693996602022148455949234050270812196127326463415179190108256353433762608423725596709776775387108946137851758116238414496850077628026836150338189115684524821037133769289838534317723849333860314267015512800284848106848020044223619389402800620630232354841018398441769724092382344532038585870810213851887033258438889102502866846286302434370377034799404069168388849817352246828179317461481161443473447537911661028047476421867256116587841809211344283845964102237046294794433465749845246292199584174418893330241220030228007305570507322975916161504326366855921294275922949954628791701792484084518357224478009680111248082149316319393585230725876310432191801607924671962860256748812216636678281471178698196510796197639071687225249438778282189752397905679853890436513778938941923175840604056191542125773407175594148212547171054722780353646383235914099895884534231090348770613191291662738759474214088168140310631660137816988431086054547225082616368000406747330398629404376271481712967323397611702199126923992851940413548670067431131686485370757545335430328278650373491690633743179937285643871037315874805081065220942958499418589421527385919234286526600561905513228340977945909721655908063551956777443623436028638874004943967196769388407333833486346967707520317605935312493109796998289884980146797367671722253221732816613817301965049124528849587745904114143739479143333337632084721000701122282625407977511763955314896331448830184997806028055111895262297286945699559556671784268982084283183167280043397329056655121683202674071140478899926947397693820067646194674508073431920282771360321823886201415611988779292892275549490127843336052742252916245630076157056526257972029199790965510840894923321305069477661219808552433801628450376767750662886916975718818719686149591856851739622667387154716008582763467601025889527317486365864439726500425797919217725178816997602736638045784793476676488125118376077100554376248433726916808391715109699223483410966547166207376634336357977271570610056176928420956774499721916034108240178113716299049374024500624187512059819168083868013095507152107936942391274965640355171151896773142913195900280517313561233242506830787872646611915448126779297108042520637004345344651086602299768621927423118116837829845747399074197476524004590536574483298151956379923167133049919878920185322990530700916700270218787618416669314956418867416149053233074383483898468194301990723961856506827316366305478449130863690900472803815844227868516212526163940831689118125814511716834620916218005904203356457215527776049279325580899215751784731715072917087257153731539344308293536092686749625258136632893394128797317761395992938381001331156213582124355371481578916462194025804509864677207981436989599849818999566352571909583888904150364000525665614346830592004505937702573926584641310008272981245241119638427921645688024722584469570959128940986845855746496699330570418806255197512839407260678473092461412430561316321284086249544340929502194846297270857304140988063920912089199724658215203797991789984828969694026928087951307517395874747998413783834880647183306005167705960389092568147966216371464018220128115442823359385074210541239556846230794101798235645998899564833359856738832279426120218337884679497547929017273015563090564451504709272807817339653609273026660527059168270563207449871834253510991524901550478935081303124528709528175709289253897712108669042991344924438522333792573080225743814117514775348635307852439468448787232814943354062543530214003338446199031890666063022460168270591940074594418843649158210202318194739293407940966768158239999308644844199885085726508399745985477101764481002613076843284337256934408357299956218109913351420681913541655280221709473653890673776348779413975331181112927458305030993904465834038759896773272432475514544488686128338668827224278683665250901291084989779655178345953913294999492786488870138098202002172564524853099222267994816787093387565131661686709330412312813766616180627903601269834285513886638355441221147436071853452345838991252338692476501503391135051446236112999805975354724753631940966469594816876332786967525631873684459119869272145204330693423830216361516113771640574237776713665149959828824867099716980118201703385164855352656690358163335019876111691113785270959345034843967815517322447387483134724634533961309309880861237639657206334932507085267820556506881107012733789054366606975513927496875228482951205836116516552130668844403361177597912736747094733199066075779417702792526316922983399154438248735802982299694176036922558709108428028541829731767864303585422614605328006539502742363197184248511672081962121691491845771644842034894118122704745155324157641017018572009451484212750840297920030358771000572539825659261118991728975037020248517461757972702827809650520363279144329350433485178784031080724448304185329357707669373525665325050656122758146364086196492272810663429810207550654497746226240896652587768110400484611713174632955100309998698727057358897939378942230959268018228181226784613351575535616298945947916028516068904957305287861957695742581400916455779993894625838320138719381891600454156899922151646556728040356034585272801874182638175173206011972766312122398399374839411004490277405773984791419934192575311889658707802201856100442551093864689163098715568322806746517492124171429728909949159808047926143267340330976074267000973578304889340752019749190644806796351372070927104878911712336747186366719049972446920256062106847881816391205011145813482478002039181709429845004372576252834498140365256860566748645323888840066549515885216375907547263259956263676328090136929958313676304837079529351849993192983109032769928613071963531537595172693571624778088313449834089625315210994053944262338792250057019690644962506896434847282945012884076719464901881741846742677910151749901777281002684160993925535230483387394181742164094333257201313458667087818106053839963019324254115094305516104369822420404268796504876083826923276736554339204500170065089879190762472036947885639285309357245280708639298324830015093946906765084474950770794397649783139882806406275597260616101898002544044603872109164657441458583502925295402399951801832408030135607279032393947456896009625475109341200986745571542452424862711070053850480120929324422641017171163418159870959884702006191483498245231264013489554259305069093199600019442896831677459713630678634126648629311036587008143218002131915111401050756937853817900425300480889968277881701979410830255552994082739320444737947921302382920843003605343930382405448145237324032474943516697396549540519115825783581926109356439950145528239970685336959599890635766904251422187596152169899673791388784739741820458563996067275275857720492945849127290802304544501390612748361766065629561886373314542121284129352418351142784719270214502571774451712375385965536947285113560213182471075546141599516734611867862545436354001659148654554727093451223681648505246741158877592919779238086211891253566873841227202182559042956649834666749206836869823648312260599395802374181664755608890169920610230918002361151268317442375585266525059894417370885439822877565253966007331093458755773023883073239211552031695733525210997029368243603574043459545206897383678801065895483351588651155235817526691376896409634657044904892412664269243467470352486064620295550322187621122782163064185658247078899469165507058535050703131621850193373671861774573103267215279024307342118481523727465032398446355965403430936888948732338812076552215282276881421748538071504835455749941252232579259044181516669593204357977733586617577208345413462787476419532095580522592029433624704986244974495567259874694648318011765694761030354239480451028268315519122247181880914926524517555146979189467117469370050045806710098280902501337890727944164034867181287508006161176286307200527863078245645562062181008648563391772211959746545446890964819216658575370831624177053591578907035620973057218265164234127005158538879690925329205158234354651778865078285231889651012852890291321169213726858204392031089395795473841575962341454262716772329682414756679352566355860271844328115810937660003138797651448224645685810289233331159351034233197962995778691258637986102614543509645484112670224298258302030455046904877464904986556125638363978341796869357792408598428719345793585038231732443485228716597500071495502663008294211569004025819829656998422616874974959320997323525708582145406861969075659348520881089126047194222371587550428429795686727770783813486457768084620330597393802324882982873355427346932040111411372517752471213437379703520859068387782499477991270799947585524456555038909577511464479846150439782795623141127875994735122440047590316608907459618817050355372551082561308526187122324541339997338562586371772242593469575294150326100006155092071951926420224677781101147426470904387293856247813015094284478428984769308316134445890664514958064488410952917441701964594166892392701925374587809289904110574736069902090862342157417499331437091684683935856468180460649651025674677054246607340881507631332158327842600045949564766445471383362949659022394502849420428116307973871515432019091937309337855450760134249478323797594109862249408330026512131807942123952561508749751330003462640733979839379817631706864986938560968127807640764609875729584803103181132521422852302133302011535833946364206983323631246907416466076110439813101064446042589680219903724893369150443560573279143141711466428816282635733621555643325366018856557670762543613047950300104770091570501367829242008511812814530239977319470442145799192837295725760214531052125677065869186027013591572472357502381093022040404216241697451599914687653184010736615762495985536822950840543604191014950172032381481927679325978377880124636687321204909714840216915110593178764960656564388575438839052648844229329381492987016981970537661226277493888047205752096750903899336974896459237587757792803607940485917920683194714456185516523843864482474558346415241024291982557284661467301913783835263245369750184354919239063811772869069040872074338194544144021148189649573217652717246237335048440078342638724584019465651568634591951664752490210439564990622199748013777052644888450266853630634174904645470875725041937407015646654040700543286339584064503660406983327470038431992674675342217611073656580002055549291483882505095535412251472714582320038299065016454670168560618477989952917863654252884710869228258405433095900428514331692309875773907923419257299756707068225444607224654313089267122424131292311529969243448281329359744103705688176274049933108635129356128742595805071986557306985311742116071672591430561009398967917665458963308931324913176468774269892870386923418288264181783939245320796016627741791621223387903373990122778275573228707303872354117404431907754100061405968369365905941563805951046444416664822299787254602347015014657457226039236323364625791231898886578659834851421393982493500193557146060434744545629918017247568348193952530652044440660008727124333217752777639646940943248189810837209758522243917009655748174990995007376021736603014654085224659709663208464032736356090450576927810429156344188265513638554201210968492401884444394477546059086535661685349170625477435645248294151059701230551695121608190226497629161172309580025776932244499774111780322187590714008802667733502030925580952777227395476795102050316823240014064434496316034477117436793959587516093426949710620270067729778630189859324327379058224781810275540874280064818611388393771885490135686795388690807580066064546331870999463577894398460795272147078349838825308522231955843803845884191334691927908561109004558917465879661019389694543147425304243949241733115334437677396498183490752751455026935929892359244680980179078608225822851743614785177137582013509566608254565173592296108298599372327246071838918094083353204678127139418883680122232897235802806655879441103755814049849613941604248908417680866498182460613649754298963471283380781351846327372462453741741320470763052500110257858728087936734320816919753827363117500806871541021177567006095091561979287764066840793158019710116648059516165079056989409779319580851092056658539763250309769439482965292376360352872585162048900166676121448192936892482510353771691869152329533641396951078159408033686154007495086262488724610638065451520935995124237626662990591822232483375095864213685593271729553122485946768924218797062005721398834576193432747263215681815911541713411699529740722565950091919787405365834218019334115585678202466281863310343854129765156405095832000627069425919336595282255850932283061989293465118663830162654049199754751038835324646979249715776310114113853573323569538794134839999837157769604220908381374978138189064422612746020601092353254954835685102864147973785951556747249489337917808267792178685440279348991690310252836732391183276488814387872366265873380213085905170840266878379749654236028499923164211058462485986172392287055607625543047273630082657473393536874761172048424798969963680996804789023317845932189020451946728168479853621744882421648952473745757074092373731668487325526131282382278606773726260951347715432961916200669913646694589616326411064380542117326433101301401724116364565824173432713146005701307327258406113681072316312367256570743593354253587053194693177809137623606951003549577417801413461464065228365067644343541224693138492843375118714973128633347301552972898887707650982927935775260155718448257198064862002191639306421289346367603331820805172344954370039049631922525667125111547229552649939777277419556399897800078123933551345953991316627408642952989788463579547197664744462966983184612565599112668947964808142192504142013335292267662268610071025411784738749700277221686861575340503611565410786636101646415689897016923120049460267019378090983605120559606790812376494126627311715846660205545007225948331423215742999798612796705584246662169619470317694470962098974608710050460611703665143399381489908484898189429157731612698837997192996297659995491498291641946367875428258642427821481594191525001549813023475633635108881808914394708826314806053945402688096525306462644022791819919117142254094693112474320006575160823945520560149125718066895829456946153419141939782593137636270601335765815851790941273915423019773852388234686422705658071091768025108563190568408541355041588100442802505158233130917225765936685617749208318147808205091666966593897042075558604210726518036158559839904893461042930684426753212062485525520768352169683025179138737811551561427262513274352404195241045546879517415099958477598926795028058939883352459962049100006307794165577909590882478672838853922533687976898222170830261802280489886129708843261468723414014000249095249440985281668249291731596769172551441779582575803738341769067955921678589371549383816678947044592881685980359944778056312193688854950961858510675627061171582000680458827070378375472592152147457184440374662222678416553632100502201895113903584926199782255020012732325854034978643187709741054668843942064552259481504216868499207993569684294842299071332095454548042462700749314152005462884705492608603586918736795250623892306540258071943380373785996503252104578840390513299538117378109673882095129132229937708052269928458679218189389097389321427220462399153578310615177483301642136051064780930889991114180294377088215229031093437903675464908675691614051485042106147880835161070722201403388100362713994066106425661652236932342733186625352724055776587468708823721454038066426073547500861614070595726546671953523543844280110090535033177306689242440497342997402296938959970544909812877209956019922418066592398819730473586316937495257319046692091535987836567592282875043510081728857953173443561565864720863622899037164276586206376697328856775035680500020520373606300048826615496945786864506159522708558389197137247004984220043128905579326480510374424008683332257023296841039022177360605882973215890161794543410243540543332778094209018275375008689241954247395865275525050849079767456014302931908530881760711367483973655147867732325032212090293370059936559977005686936816046462489760281536711374158585463780301010649782030784767356314832812557765002160470455442743181950361398975250989914411725917894704650771841821862897192121644961081508301265306561426822350198950391278278277107325277469024550508108563405681290316970240857874432534037931544067068137785557257749177166692671277919736019327958281077659377326897220041049919191565642403640951737608565889490182602822037363861263054789355925828475238030261809902065645888042656324966634397948149174811487606333773391399966929268471573680522929695150091621747538949992825580717445835252602983287898718712908142818614943772689239067575990401436318705178208321366786714275820410174923303449216975643191716248688151240116304407348062871607921225435087608817895402231216562368264930424804133640566017740375784006284226972131310024817302411981311330577396064195840653786499122622240821847429223679311947843277002996296575814568432772479138755012634199734184679135434948299120837663114824469986507320247998519147707071125655320295579149334905200241289999106639890699800338358604972309645752307631617321668907548884547200665661994522556680446243541122975591092295568046331581641153186730830564096335008105483392667172110222847828251557113401313006312212650082039532218298958578761012721900078189199249065086678157997239759904182602486789831407001176393200945878295857332988970590655787163623383547787110306927507271346741444889727191949450080238134612800006908408198190779506630951673525762467617764775987166178716883758958198965597515649216305066617010692019115795091242872027704255807117443486375408696768584817198430685857835577434806433313517169259253671987299463641251489219205142141046555275767602373132077020891631297904376705308577160055436800932654125850142727193886104745909595559885840015726248479872487118509054063449510297607211567801813843268956587080613866966939446493826477921331664672732186424934743353524669467978534730080090998708141169610641595108493133609393282085958778600436369361574302613802986338425283801711450105671851939187935972209622262647318383154336630088074971472118530641031284872041283013389914325529209226229587337472398550874680123169620903289091987484381401938282268631772264145739985078729888846627225879958841932675188083405809764720428089091278327205681881065829252662934065027867565498336593706044040671353836273863463941446602308572859899916640061060752874025003074125452846512749410845701840946006662263958343134250104123036972146793379867380004473149255887038139294283286174213900973799514928816892653139870151957675080202138834487748556431757471578753853127561898236708589828293428342785655182892918067326017033854573281827391239621162814518710583382731802834917152846027679042638057041380925516828032490719932503799945027706834849255258919256595091260663180687650388371639877891413727677637497284546840210665657587413586213342014536128890332741460716442504704368998852296246450626312375257052185134891197508066260855030581111617438800319632187751715974174542696104034245263987813272486553112067206662069504840968835499362140064277592949937833319877316948314247387125043553725286422895906783582290699862017868838770254057777417712291691361790954422442326879810454983114333782819443955777863768558073196744366050592911789205256587445851974864101639923934605697587023791051172700201699772992167100596572265350781853914505441944983109359658690411580188291740925968288036736645494323154365441714330348079423725147936498967768023517394219901796545518416963211568988815503958257561128438744216822131346243186271614150020483484926395558723272569635723688118128147950032076715379146914867313697905538967358556976876187799729877911930902316645923256541842364240854761672774721105208373448774402587798459018033569665726585627586883469205664358819511517396428314691211961566168049434986476904737411032518709811414074037536519506118288407371513208295768404243552624756378298530665972354353648085256659194870839341816050729811359732918583511238758682052958063927003086854993476907032761677598671284862676237426555696044382700581812952369724301927081374914545270156145011764480461233807329287218929837866605244999800349919233898705453190439671927820459506464033664470799428750257404031447325530631331995401840338739734164337637361131081702523279308554003864013571206592656765005068668317485556397100737013892886016139525617923214171250462257177015176697244531043446958847807055629312268974540226611004404976791981038165018847345344903789518806279436541374855580652544306052483649443210256282811876842570925352913502040070519956480401019898062608420046308520813829881532058576567499749417253475518697457430225334590800741485644286092480870307878886215680336643248007899547120249512516130137349963589035076403833460826518009360267266440804248469971985666295154785076781245133268517096469231625870134002539705464008285537337439485365993971152415060845839420994616130816081029655539008051438323310455887191054782470046837043308399389781114555886957033328428760433812504553611949540381650316266932399452497661540831996349951209521022803302414521166192188728907068951182363132546398681892609574634748971153529858456679212698706637885823683923621119503189389912546384910767128804180894293770426925779084162755975830422020016461477283076618309049273138197306940133646358829698659554006431300645487029641838194257618302445756981739077072602577409138751319767093013443818682405555246992209124028678809619718961458476797435631849116822679461636883564868476253081189125997174683830614991342257513158551788450380017776287617775951367859389699604912429946331586540186716994186194900105209110119000503724872048195544964297930656935510552462240094324474054108342918577812947785046977462117052226148883278443172032264686649145337377539039257681252532524575545225844134557796952408184268795005575068229051656851021182304606226385899982423645357492807733390763121147652628511519725957011892767735919465609415113790309402882173821389602260598094294933196108266799816396918231041727412716501789164593568168812869574075259121994137347833748577835603442300144605972340475375771138618601565021020345861963555570325873134609439927784246541080733875943502439575835436995631993060440366733281370326325668123811097502971028753308785869683612316820094088912664527628397112833582611646213461386756206043202145163092232258136334982113912950342964728576862688947414631849067374654105179418978872963324468661041556536073247090224912507731800252572265490866480733746473253003689623703490984493917721549541272567291532349294295495149897810712320452668980817579965493679610501220504352079941286462489689812590850740360438205777015725746817063042564331340888971197614243403768629682168295011648570966405382176447521749395415933301917554247729665476937580719479480743347288448266420618693174311459439646008314143610949949758919929785934011218867710564484059389079143936064802263027603904450894113868508080887180322004088628654870611769365902455528435520385164985207439443351811823083811156305290300680928124337713629423921181303520397119620561343593679971225943529618242985493842079100604557198251343370365508594443957514559248562812678509066257955312202813776706081152581816357794328452067039956864416835032068288605855946513022686814238611596075822474697099341790975548488888253770190068141379333536646597649689682038407443165508553788704619730057846385917710660745614741134807730032915733892969142866854702943901719962565141115613426165430560666078021620660002262315743505357653952392767819715815782609282938986954461971188461858067286514265527956278544019953214156602202588315952426061601949850691520331580318420316970317354575697721766975897386718179256895136830041991977706302586183329045156245577139180622202859391303548456154907177429816765178186314393163400567252589546081142821877307722605016175750344200310040933220066294534127620734570783091265872120873743380617084120078203462329210305320292629009790994335496412555364752529458215233685451207735660386081482956135598150858974391264652643686639946505949350385209026928808673269491729016979059326737318932835392446073432867421800805458886178044755208378870755446195668633407912048416032035083701580862044367790352006375230205126050358139280445955710106996720671461796439243124136262687084255056693012308913291000576446742474806851483038459350949490593286863683812147401764795553099032812216355602311188161568426621534041706978978977234819678948752694258164333601962394706655957897779454847163308158894384535046231841064454286399195087117407111293728463984518648978354158496760113700711789358136444240443021653061487056611194131471101168224367034594902605019905320364476691908561473626733643778865335724508169990333320761595705025344073928224472337498128059201237199232605328051128002399218581891527682323011027570790006290919733348906250640569812766467686495268446804537259015764745998863885838016975744295191170996237008119163856366463708416197147461815591144031279157272118177047612452846090381871422129211714295150779678288353278363887456742924324741102703855556351996599528366587244688555858473881407158485948948287950297973261817261119990368316514122121875626303338762298285427895750488312962558146211264093670023202228219382742148399592850959423209086702341865960468077794080124900017224164020117009123036882342942051214797281199525832127886556050004402101060074444362843179471234528925570686815640119869789590031267412446597185768222938205347045439908590750956609894569010651536881847745698502226928883483383046828335351786478107189906341293898910889870765037029743983961805569536475105200682235118688936612814716222573634460835729168076603879731584421291230487482401208049279749626484228759488740036404144256909036923040414417615392623732368341474876343745566944841878450587048549842289801645124787771137854033228182949947286349869018186137686611823855305538450030202685785027111349969584759057834381658026706205664452907788283650553164654842430340395268216707008549112641352162047104516544912154209042395504314379601509086665733598958859509501825122423648477972748689462419218171494446990569777016869414619094038169773924023457052118968545390654304107632947002957518693052247214079181820220903901913182306222588428964491763007130496188333390517601256068361139235571713213924445373423942433279405070841519316591576313626310104549725525951506910361284794360162412081426933285885278923473301190220114674219566528543105958029080480501316745222310854906146372048419103973824879408096100124897914303856833741269676965659510046659612793366339363374850539019100306289656036040765242794730106762660777980634069596620132775075345632725184618589498226791164220975843329995501585898960134011770530664633513338755127466699074500254175434862350293782789897411902719491416610120937865762857508462425595109419961661695102686480781598861258892419313281778849650347492679383194877488931729238304168380842480466542055552414049900737199009916053028059131292890603912189122160943551653458151377243734952002405646478295125426426167040668846329477234524980042582424466927665879203641196177636979926054162267557770846533358361751806682795199557458615899337706061905614343559412699642275120403693482274435500244576623628885939451359838390588742929588329861328752035596657754581131599732519875783532834675583678750929843397192846225113698586528108481055981581433836598105858422908021713884315491713000003754644192830704482863785815587232793842498028845006920610341677314021569878582128033981742296372831323979034624705108519801735494176638227095178802987927551319833640372697462834225667858332151592653975171174810670045150731612717534643777726765086220895237964399116594587557605745004542318314749296193425773746463452131635482822488569852424786243753134431069987169240158993910526443378789555860246622176199688124785450880075518177181472145014966266213638175835598608386894740889241325383677210871558760076129398437901816244361064133574221214076518851566675327817968613124828762055699839680580552689717968302913530653494157684531068481466737362548254519994890885572165149386955549711905414791523094126368065924612781635515116823130659113875583741375162565334108254078892560611421229024490596004244973159245669168366072961512549417966528434319017352853420715758488369391076419664532262413454236523786714902732818379557620744910937820217919458799600082607290399827684544688423187969313610065760836915676237488948028266320100683358946531420158012262357860740552529841009589211540556161537032123674821755600228928307663576984835879356002664549154629855077946135775265961599538741557306281819594572344246181463517644190207953437290644273592360401116562439727443627788158642435628596135581577782214618082764561802287295772882609264701840820529485195558797886200161361753843017072315105011225359474371320915590176369225855974244417073511871059106971400570257063999238734263588485485081105868279148041850366863250542920002816163676110371124915762982137403087175687385227013941302632130085256491533255562269427655608051694556740348211976708366701092910520141783824549915989406622749909077378322148741107846457783956547401261940045338815371020014219645033126935829571655747618751153302649407940805812820586083173953651262867876176958781127533752727148025514126589158003942913667894870758496536860633785086187039483202307818901163285768103664686158478725595799656983520000621262016702199454358611337395931837483570980048885894076959812542099821795777080057832123200217157786567101755476941879413302666994863432510831785708598424924541697387787866232993128846425151077170747110915245886932243825860958713703866869887519557310818874124039323418988027890960808617378695209067629197778506998019577673602767158238418581413157119769460948115025257405132141344682974080495367061115997120349801300375960219797995599332149420908429775037939763293814680704721567922938921608645566062912659683961198699369054561197384216222267053285784678933615832125466088037057035173625907195606653325341109369487015414387463014063262667579501729961229010481571372352957567340596499095486400580459032878639818912429848799348400670757683391621551155093943255249242291547273261430521490059367532516327999260366514892926646061013965247931916652209177818146553652472855716818170834367206519234741459772315711636204940925419590399445619348196555590228167317323502351207572624434712775415851350472116390355632507470147141634928762028815321281664664275513200235767645085379543213932985713692938959368682791829226448089170861098652975856118944467523841149472082670213895761850704052828674038700954509696486432518903126148715117619913969108978305165244717301986387449713614322891271993323255475284620333306707890213530608929483796798830106029860840871131499683689274821529028812503993127413293123990635016489504078127804146659393912850966807426479868987702404254471017775010431781725612444457519059227937970758084098899212398644820180067984855473197512429312950849013331125068091994803431519131256695309617117799350530740495791766456361805715228307132536375319849636086778863195163269107612805502722406981118436167524422357145962382674515239543371800945304141449919003419916736569530399440548554318122296340430580390181469835540569510966264611059421073534161020792769774682311201314073082012790886914161542783995391859331541235593480970799228751960033759528765133799281473910040265975686302141908567928934364737199762469400620791825850079569923963171321832699473565266698603722725230433758589364910720030750763915923211327160291898703404971334840221583045670081319631491906194638732029677083693489711864271406272821801411927501005050452215761273985838228191536897692139754674902980224468529604686373096595884260882809517157176710469134118140782255111576157390062188139294274021051195267771808853586075821032163313996537210296280600916797295633037910674395293315353765892984532534598787674726644090189226134894990905824600416564731327762992906337258597837543406169183232777728600222549511905135104777729920334086297666658828652898188421001829555839814635378397476462368266592017617784474508259658505008070775212196479010688803142643392087818861189842707963759675299100532763427907672941845711547070287656617166423873529716334044326324997944445436583539990057910169517059824495845472478974702589871612723320304980295179245302325821243894089307448068091731107188129725625287048908483699561207113683659525990121924263121425722561062415552928928136257571884400930369599859761066331910570264428302984840683116297477572957358496936376340833029344638948444345373767627243285915277583327273004780051764576774142402255876342962469824309967932074522364075385589901383828639460498341581975562160272663506025554050252171103789919317533176470107192925496488834018695198342469209671788975796817875835331995609915085030481227702312364179122604579225488009505757662187218797873003580623684266078644994074895777064003305828534883566592430349207829964824362313202375206478662360948984172109186152771106055016533399672771535126634926873930776111216936423416966595211882149098071713085912575421433160032489710582434890677801351695990105632177184856406692536387099143091275526169733971929410746644683854760746229195878255385750575008005902898161841451712191469227170749848695921611738974510762617010627729401046028275532220592138807628578862692333614127904113973170176295169005515344615630313406140574558908738180357334139100624495176104756066625092971334694191432575625442041851584453219677718743280834980155389794689582886512084150887409548014680645594661549222083376012319803063024565190700278953473460343103104795078251462239859510555846542443814363086167656045296928669990877739223712619798364370107484720326442258486314167904687977931389766498559273495306043897787331532592273415955619366896322271397092143897997137058793885990488174473107049828634365879629910919540899933914145605591323490563681096887648392963640742357508456203759635318792672690713448250752640401459701793436902264787364825509475999010004943361871796402984148049434712173281645065832176435886629784142300692178627817933613963665163424304670700958682140491152207349481878622435678651604297802273322210171175443915462514733989261314597545157012154342163578822214950579387469113671818082688129526170080390983464318113564669251422554536914089914833874449123732253003421158432219167714047432412664856452929606315467429564447391481918819668264218238406628843141131779433077676941790249021261930935486422404627579569349492735769275565515345910229190244113511966109205853715420855383147552299534865734803015547054829885065131801723421010750014429287918701287869420005314847721583251941901055639409957477721534778507492888523571214842716648985116079551422289400095398591525706986262403744774680835861623767705849786948853580737335984149598841907267117863159577713648768005313725224772021234964555280743613903742540703691217152667981621806223419306816534700559628540208420047374564217717010497313073549735889965742484084576482423090699157690235371741786798571203143320217531344312779088884635752073551481760069268131562012762314724098079962632195865046181999804203400818286426053560729742400812689689086759312572066460692223357589719850949828039355589261380192281329594407511968554766203268526680431254668059380425747408296774324528875757822491202458782311468510829056357160894398331361231959944403704618449428414032236857387777860670419112897877181528863318825641101442198179353287529801085433219452055549781760653084996411106751806595178714450928843917279457709331580718953086293408358704303874149921010919879448799978221186849771643399726303919323211647070898070221685495166237783311892151440554464616307701172252838118557933407903399019551108068926640968099381985199149447926130296165400079575336856176877317694770565648825124058409417772382133107421235355432546252799254388520199305154626313627634231063422403851552359687993803169718096075885209603415541082312100129572408770101204165772729720682642069443289025523186533772448482460880337061758573935774544209442205488683917826093472598011246461893410656618217205955916468089008300917713466932068104272094506096455987558182410926590702105066086317313328416044477385581180354539103361698320584667805142338522316831665136672288867122275469721132130610876079335247181998286616319198204912907606603055006932018509749175689236166970006496128929192524224903022799811898357205607497311972790371115607468784695256947753663877403253164811076498808469251578096368062186086912329900841001323801400030855770823025148044376319939582229094761168535706443972251420557385473064217670587139626798711032955439753697035593023648221657359670437225804938679785991815816783075885123120398605244170757629598773157709643121719561049782172862735332924288126340363059521622829402788518732428501113594303788847808947256051530552532629445812249085525308639896340193073214050219911168972742632957771210455866719275853968351741068453690843963490436213223936941585514385644509495700840933891410342767350357846988601182474657223071459099168575696444376077091322936283904262076716802703367047676380015330065301373548433441882631559187847325579900274521871237349089863148530290098548823628326217516350256260495291592931648374808575956168586735809588695449597043833863554931409447214233898439849807189244966769372937858777126732023977080649265439782969301267627398791396761015433945542005364546354267893591350021336005012101593294724931428163203368710792610798872872836334457159848101780673065435933716627662460538051507281799176620073264624536030015858158206154700707579505716874254699571122894947410612617865253798876309650791893232477553649925218224459371005884468375198366646374161525524102969969272491817325017163852854795067455719217299707840883133135425215481076607632666721648164400590305484726790733948686789550605255564157127608381784069811557495401797568258954472833608574835455394073916257766356236559855126488607369475058800758396327558246220535249751603223009091709147297151986373447344858215244276994820856295153973552395230300547699578971504641611018685474046213551114725042990960167323083682728914155135074789254789871505908611975292029840001280290053332577386819724997630026699671542396940016811182773809558916058847005210916550591099436233550594876194392569205794553849401366392257343920489273544718608742815508298867936636806436037852306725640361121344266159928578999030934458677316409109891939377373015863000084458919662454782546361634001938978939791960067798240215792646014312998412643855792107488246711492050964617110041234198750224292471299741538918936180388151882629893721292841352008663989702836282323693803507421249236834574202713490135405991757079434188413786628476135928010072916909187029232532046830097824365291318099153791183260726964976739651962337148666904556706006144015958492691929956831382679244384161091719114939481593351709096301776134331120583550737163565393632161763131178563424493084127953305491701958971793968619925560886859522235361576181921533613655538907789280239996418098122083251631927422318579328630754866335381923239909297494607118716380518779688082898980175885702942678412103571173400713482932615650287735617250733902545125547687734862049696356172379163556496029823914154033327210976803865678188045945266000262761344503034330210647604486008597672462128128818630580336468505974329497611803120032428166684623273124155341963846807858049716635690121194070918526286932591855791223472179679963022028858257117651421188093149092348652297389143951798693272041416262394781320124372752231318683339172967295807587419028259718885193699434825203486083706792786923514534673993060448663286532723949356740458494793899722909767859204511075432657812428574826333430360391321563432276887961576431566269608577439462967429217587329115262564354362582718095538986788823069413034741477091257523993270690949585407355468902393832926825445926901980372124515868819614717127610377402997892294848727804164583859151730503125163185347066083474357743392378817359536688823512320698679749913526685935610043950516913461169760552614979326960125555008080651558632737498241149999343857458142724666967752045795151829123665870277584791118371355383175277787662887337226997213933363839643972417535603632617616294704770653335573811679131167511234941657672788014079796233938285385857296125957663925028785767569646237492441154756700024879076207324082689930612578199773326738006163995996716147544376603114909578748298680117884831849791091310889499416897135215678966177438278811675683346205061330612960090906559092476229803830984955839387398962528663127819619250941331207965964224181252623081795716767800747390791941170358221382524108989371808985278064687940178872564530729164625326512395092481346467020798506336341294751416752426832756579446941577730228380159563859078753385070075589976398263622875190114176504499866853249848542029310173958558020008658227917909336681057753485645284373971818850877964687077398660425992948981847322565332364867894790760424645097065004168237710192302016282246405244625260089979666302329407817079605785246289927870914754228045587118677742187627644781653771629941302968784439030729165046600382170806935373412423467449985974918224546654355575599535041123274203478206508732678512852021159110942708774083386077489231649775751643554930074624472572974063755527110379904337188203460284943690541549649870219916078529511856647234335211599474806444868218313617558396965663102642777461170818371894508111986360040868759583735750389647818142895280302965562965218879550014404477096603922719261977317244566427491374378750297696382174528859605169425017376875825730286955813936875016643470052312352068404727971315324359115327385527899783257314084385869174226418546779065778842415944677900365425298750902297149416949573372815194977194235641778818765496808333174373447567764650658200827661600944408022926672159893075774822873054196684648828342136547485306800778200857476084184311580447274239446411954801846411781300523062511664726309767651407931351605011730905007205685795241742603207859757684674675178247120314386107694151224854616192320922188822192810939608186595152129430516829040124078887204896771206847960076077633901087619708061124594911332001656677559384209234323455868412406396155864160719242408494012149839299497381370356983176356129138567038251799729056783410243032788900751692770165620462166594189502680407835817509146280265374888446280275792296930252022841327910557411245015450126449593578397796359383769106030773888818824320402296147959791754165180509859259787073507969474102193340979552194021519533379676672784903282523501608661932073862542124751295435985557659285712036659015998407425368388401630011585456763248392185263430726643320737909757160208504931326445860274410257035193604519076709635038031146600090257502590632338571202093933846284588908459169922119623773728960307974875438121598105072239276529670479758402705153758862106654317124762559626305693822561094014970509291317000004132003356455785047086845134052989341929524054176876407329170556051212452184260100235666979965355784540781511218178380681778428063185200239353579849831068515616622000216759908604182987425069241463036300991556124247039240901538675123148706076259048610744620810501936602809500837157374397460810831868954080006999129379548805887749029345728429472538024184959927651232527829475262774333139035004366122689841115396323692310888683703609509423986649258515596612353261128842792799122944453538360228910627396906937377143808172571946403371233215681901738280494805707473833726495625355947219501215781099036874889149660346045826155095482663024278771794904667646681562284578107956697199819606668389791131644144060257087280091662924828041191935301874193072086405178899741517708367103472204845617973761492570435489750209062013626961507694576615816619291287015202286958063105748701311417411031632849270204763679663206548467763997882586113691127695548351084280439659943032602571168951972821489698713133358883738909870937769846189909612300911934106921232667499394993706525051585734746780602517557616688427541613750385346820867842754955673481626134890475701843515719686948494262823297598947103981862126978839109719785131806001338815774224850206173311132113099852908966364614159244498636760154719164069831572747072079863673270433798506679059661871634935779428165269798224150439484651593685796954144676674721426884986028047006284687446586330566650403096167914619678829161510226732792365863804499996488691437629919008796928120879745433681355455251556983139336166477478498881785255174891737468950691804699371813495770386282654224638999942725687919545480723698946343102686361751069202909140450159559550316720876439635641423432052438902200596763103788801612321566955840277964832000940231582420195306686387870479699667027641489168966399042644246898103134323217848126643342574374057935404755524877757030972541232199135472184389650564286497365856612957862669132471910851351482518020824770458258781617207726390523944335834105775412490758397655119394312578930404710237014347582840071692550026264732403922521198204572572431748320573422476181690156695415368447341345382735978350394432534920093751789450857341404184610377202308973803350580527708193812769688170853261882773087571921290898087430823517243990325380413632589262048944365963328364653384571597002792456118139300594297276244299043069147883965502522484436333590683578183459280558578199642581975432934028368075601547033451931402823405831296579877158950304683100087930022457249472706781613856870891753396024348815696305064706069725277948179592241060181041224984738670450970021522107473677823250103088732997773068928015235901068601225874630784505707639597603336691266881402945544841655152609199013527818246822717717882754349636125083221405561907609712366846515780848602423904185749976114054242630752490140798271524129828660609371775197608006974027825624933734515546817807561231477054905254695056423957162229067615318823914730741617183386317658383691484303438339455510790300292432417739449193031257051134960369870075073802196504286259820881621645345303997905172595419503793400358470353066833338470136080864453655037084682230196934556750794423628973399412481534761488222418237018410795932225876490380202349453241250075718859123087657268532795541601710218150029332169087655485351694447041245279629967347223935871787956259510920711741916064628247207051043665455733894375022078862375843992057953261013246487298764765980171188726319174248931692966219395597707470256807179452989499041147387871038507194086761476699835220413283153827100978057686503122150234748179325660509188790247734469506981342354238703049772359926559985127601805768419078414289624425501732187520623262257901631120725916520571568010888822023544057543916083707447723727339257288408075807201098971860990423602100588924325405333138116665117312399069251733078889209196178457586177708192943200969415707439305171771013718705843364650673328020833718594359709059867625447349995262926950881603288566786965820435212299690251674093817341368417958019380165042722145103629917279215514239082600614324108724077540466330724162111358560996141492996003549760435637269783811151054208450397307072495167659563620853271502024320695013430179434405314901793033352919724206552911826142262216330912514490372266987886231365930027209193210759655350321298950790329641919528790201793002101705107968605046577117635897468606938086840864770050613345794300345363133363989064063793649434479483837090297500464754738298082854680320410260650222534074236997013338152000595159125831311473676435479849655960421722905424210146940738089604448114353440577800282367054771182215067794944387976845414706322827533599784793692214949913013139243996643369161805448653098966049953329996179506013697813044925435898681066321403273605520397324192216665555251756903225718611425459577826712603266036856742669464220338855556127876868721508134941156918533653830873864038948943636090633039203197443860608283545099261725617032131813584124393026145921402272603682469457217744211641934525013097330361522603999542568095838952287952481897508257575963085193711423028603227154987346534793270515622516487270713049278586680693207917096669239085619699303243613824690673415411504342940573430917934876900856139042950136802877915613036968136837748265641968214283338248878144713191952710609088950032471275592188324171935968414923380872370430470088780469560350174974751725397579179480999115834386434124752769342066064147256402420835737329864658554437670775674080727985789545172753314781065692218757919090294720930157064014702821670926862951345328638999654640065259856781088335902166467090224445083226650111811731182440455782175801774171682815431983159530073328310512198721582371096651476376502271589429760578502040576640885481933229076621953874568403671173550927614238585729297670499708056547214967334015695578294378175227291769711785032813751061915189411221141988911700074796592381797641020165329174037973108049979830924494991598378512452690960568411540703679087911790507638768833597621061774682454817482105179651201461855407677238500176928519716283635509229832354202940336069391955199953555174256808958595958638004127493153010547636642448818538573275032069888784982124260706543961202024628696647449489305869666525687458996047023045806458149841743667383572547185961352039142026075900782858468202713405802091907466220106702894246619052971113177342193298826691179757956924507037018399520566818028336455616217190207942748419280984503282014496024879597594175111982217677118249213750466771547903150785308247847315538806630451742551417049583623883802878088210075153800391282448631436879985113703793371562134473630910812354872198272954871649069182651810570950148908577527977708403665001906915112206001278890428212915046323721980039063238005380986389138529836629993912266624377683295061964296790164045708236261634952735628441951784391107756303823634130133671189149060616736731516567245032330359958259895343984855513809701438124301971333325060496303567634533904630094122963099189644028823942234749096034603694903165815450095051942410465923931350536846040793444440652720927545046644646881691556692437321661513804591830802452856882939244981581244747619755790561664387429128257964302590463355139278023103113740741937298411255518522569282577104600437995047890348837874165981134804898673371947660435624525383702594051596160589487096564592457395615503445108553999797828740801306037120996616318897060563328585098113153080774806535734576839394192806597529843549087047429681125896140204608264689508308550360619278159991587286589765831558781150711889586445332802820466335821543168524804672134557017985327593198705356161093387126135273666035411856360826968383203331197073611788400716225821773419938836597680181257437078733671720834057046563291650943336585818447946346553707396027438409349931887984778144951898250988367515391647988759269351780186323820817959406991236289958094202684876837274220381592592465244342763221064821555292911605612945402321034408501144914960636769375756849581634017601044495830182591666783445337906819202128194271099716995756304139545665382738487483989929152615895501558512133004522142480092214056048927230125603965272451102503045249593637103072466250860380838642947007691249798780563281481939185335856787682038165763299966401805887895544317690594006365126032546753771897134543794674527218121336361302443675739769863318820676507644823101169560596195834676421699247260200785094988691247371685317081128227603784876874318250781336255086103873336126314176859150628073917650384417884541735952245721433920616653336436292674739811742274079524589400713163634741793997076759125788760948285679724216177091059897589019298177600946591394213932177942271978782388164900697339150911453072731365582902074365919359170132637579406250193685262956688223868047775275987428741284084710938324575950236712339815762705718957320127582069458512169780718456484289273427709314197883834094692521447037250031989467442379510315500938329531222167029337680583734355455203415642139633253410142165702910969098398917595161518540802711898724458085582382371151997215649857087436014056572465776720125278099779115870115483984423623838801628090907631518630890058916840819645692961435608888817867451914512366781107937502435423083454611916184100914545590709104715117912840834686275303212161744328329770564108626608033427538609924694650601221684054696540475342578992927455658883592382810452131822405268008063641134054586958940220183485433804335497963395612201606291094791429420270856012327335620079420316934459256004459499084299467379541424213568548537135428763670838917440028391927744174546666009419848983259938814308328706021003162204828203679101283022804180811733282796060817240554528294237217222036534216236350066928414477583616533036583769599412837520823424575271498876967468418932200870013674562178405750345494093622517104328219256802121347790692590883260488127455400533924925820977786129307849378638116889901284045487864039160371524498909197684915969028964864312447610152144879115910672600029266740689928817543862107586204259712694951297433295116237760361696116210937886825403285832240275241920142973426879168756880223910063088953474470970870175654123980364417130308197807900540489341634998856816738728651948714659890585756119581960608222666328701669338681577764922340341906197189392132252946050970760382785243492869280653345506760506535906087654810238314935872273672139031772993505302985480364430783734530395076657992632534379050911296405510124886764554179995864310353391124640936572679455886230624301642037064025587434047881557899305138366341572993783132909595847020689968631369029531347322702093509217566943369812273002046705513032843523652840434833537917376603018658448601513991224691197949137308307584047765833533879525347882331710037369929849415547703157174651164380100753541177059130278387990145388693274761755255057532804773227563757339052006039845593504124279623414739221399897234982807833475381657868703501189814082811772878247670239203033423268463812575214547246435468613532299103615447866254551478953791074763273869024351978131136920125546446963252065219822373467055330266800116034716709767454268107106746172433983425231329541891830544177960781379713261907042474252020701754403491421851910512021151252373183684504390301736128674500470591502109160808833575558269590783875379639625289756667646571969937504931848986835118546455360394759958700109036873924909888092167755495236185855993173354704752997081875872020455259441777850003108738338871819440580630233262981845797048147993646660204642335947786620940958019196820415403656425414039902899094704592956057393265328814495405427641165293303360616826948455619076202458844542683059857928342967672889511414432129605751548676651965180797413170784612619504865702696570063653318282329640807993678635846514911321245762573579084774582769371493029809342340861583657942003698654973931960221435191396302722802513683201561979492619628083559340323185580261320411389821051653217253260683201146646148215547137160806213711718087437893106056357521031286859110980092928425484903678437861470225456466929048503504031516499763605367218857106243059849743077445448018247235942491049397160629523546906446747592694521635642811661224396370860828157770478991013277607434692581016011500062609612020628085210923915896591604596326809806165547676765361998824240781422938106235715353863712210290095823043965787514539408593941496371071176835212369069578254280704296895222173755201104626355464027458801496184397735969291083920568686359884109385215540732509409649127194587917702230541872911510074613591467350504809555634796902047207093221767127418832157675988531764243757434542427337229149294215748413655794035057941421681271266874761349811744963092565829879216493640162633166257633759099386239298952653947428096680063545792045760365643121233677715754555825706179837232894818652282167161755671008935503062878096749506254461196170825879337626254563852932497944871245748594295369757412260095230661747894894386974503093116311029318080991222244078658490016916351064760424342270820314465470947979694187336364832702071181280915785035715752161283467591069548894018825750439080780847734074101050857465025237006226955400828994984242793698090871319564152289630641733364802724063631068228767538453333795506748649822813401273460503511872504626185907501518498537479458129599511505096396211830410159302455406561475049289031548878941166848343391251085085166786662591103696429096805480153558508361090870186846736948707866378604249868969755895646570724690635980714342916059119524529541543896116670334281259693470320665060866597502549214658105672123845408653482208613198480345737096419358363090855073393462040279458550881248882580046454105177652858568447889990416720403880198017583156938660332910348118249920765666813598199604496693894735054405721055983494675675669138797756200280610448097280611223551693621769903882218922821224575546247118225234716774322429067654489095522749915316539043015031935645498193820085482118020444646031910774409458716573619651921030630816955651503463631365938075590911257235274065264755400490097903408216929601983208193797723529857672828513259931369323229622362272023700592569985585863645863285896434888078287442124937451765713232941333938338128656230557691279597504484691204425522467206818385630113043353261253385368854710375077246231029156476594503465140844327527859583001445910972717533983239668210462290804353569829747377884748806180841892940183248033583135544348513601821425310247720038654128968404743876478827707298054678946352788117351111895152152641148164675748612028104479836146845024948598100454946765738969598172236432120377758376130416918708370311915148022854083254686724803807078107134503624826765749636950082415373080254784209463633682526813726696225882660775848034638017019197825851044457892753445148365385269738627444074066653586161149019539328262965086035465462510078553953036051372161465509412759203665701583976306487154374645006616902715947013036583263632220821431726143000798770991440205163165449857274447304769012783021111500323117292491683353923067142681704801120401460541840910882447468463520998809846785394509365372904978293929054102750800553438116274038550784290724624323947715272394602261073902595782480623614268749364696307719847668546905760913539124524390669944209528750043000462774083420436508597569478503348182386517380042528475363946593764502276641194261480791725883910184553318430249903363376234900665218056320172319685552324765951565551354562471412592803566275524082905582311356064513148960443723604720612691189021503112215408295889809019772726623780946164261195744904682030588916101648961395122071339284673634997823132647774677217636010323951127179371714464083060498262035891610422974965285833825765683402796647592744573429794978794293364328747426134218069744079554546983985814830884613368523589294630826242390135342132280504244252341111699997478280321560459277406405959114785979771633809686003038298868549846735062085846901962498301346015179308996900786266044005596614648556566910531630881706593527128627311892636715159335406968771768403110074330839784925756016202215453385338803623504154428934643308686577891350311659006316649471526346802646770237656175522760055845663116071266242745657264251929184727700702983264736768386701825650862462075000698387029191823179651071752297489060230685949896059250664874197511353002919083374036556018423385186869060504151785623427910351636594746555049812029491579569413465604636079998939437561558254527173645228201168090358772523767775001602845706802318414221794805220213958753343929336745804171023463134365755822729424933630029463407818552707293935567005629830893554221088818548053151530613082116328260075377388589959496658715542412739045928444118813688044962632906436633207703992540646420426994736083004598436594773995076688844957585697213870888411089444936966187328918260844623163376626038150754241648690277219340645898449260243971455060475779736684126979299756584068822148441709723044357585228113716175797856555283484834649412312685657297035874900113419728886399323228094514067227559124650746322559635477802309773672281631926801898105247994876213933991217196261932015926101118789953227216533713551711807544100414006331698059134345697757490833015931118952352594912394235490329044209271119922106506181518717098520627104526099595562648354643523830514808356435488864102656762544745021261758586886048143511826589429004500090345375703721792019598341990970413209263045811533893250599221477652613131408518164011679526043990806286989239719560262535041364261313929637246626809275433968704760511137610763729582578397560585070130469959091025969957773003073850488402367567393638749403546735329823386501856323590127331957298431269673002769300932394885487494597754397602319265754120915739717168705039473336707901456384141549232203565530434874645533754289131445116886608851357204025468988915135307911846183274454989511495314642292758852473153554864358967784797579258119575510206255015214914957745877712664699541747587988903185876439685748443487841804301269107917087607142445482671542056528699023098820300100462161175159685398063013117353385202173835365195783010252804040756183461103585730567226915338939301324276402819333861288323849982201109443260233875382654915836026341917514018507351657165759609093997714415694128867429325010188171710622195891461497757749862508529662904100756749554789628013671325546086385597265958097238414886507645879747253178314262857526907686637321248981628344675682737175341166597057502481542519345363851551943997077493240570372198856544103115948129483923416354165973521471397400437000150924329953922076310577000009194714875946561212344234555130288387400888644404561142660928655104665855622839131796998823043097826575827648805012065661304665136557144590131470568450546853148044110262618149987064931230481218954314834915867651697537153329118312137526809776998007464004564384364339781562649682647712068604685015823896348932161170822662659879397667616749720065015684669067583228211865367553414906099104876902212103706749251276012051821099159803660924827715846143637998939756782614279184549186095991500213717103354559096470906219824322989429362281063859670936431706422690926154014227372386019846232185490663679973090471205425626035008391042548845456027851744441095285001986369157117229651849223108079556254014232402763700680361602908423544135136963738779095179893000390922450435228691339632445554684901930193170364703932175203625879144243603554528428251847021360276074835792838069869495042631322578071747849080002035484081020801008608064842017785349855622131111666122268251645477251590032910129613606868843280432901117064570418567111883816228943470014357558494290228536675963130170218527482601082591065509336218308496723291160820242041376426596030715899134630898091345388421262343086809347471235882832501804833833579615166639811035060062242039898059516259335159682713362287951254496507970833109432088080200187559665227005145959761068963106510394679596109776494636626116409478875684774920795051681228324935295416048114032583352408925347064704106366838887320871015305319667558807130262814369761474980685732232048205131281445492337843908509425461996063070607765791620551703163107809072470007147045694588544263217032910614142188021918126909222439711843635916278577969441511922028462981747541486825177730244756293500684524178705044722088558325571732379487287077830664863816066711474811585853882878231099430541509629813809934879007118214444348614953784780504296993178082133846142922686961628974387314569108117908151048803940873231032363211416786971268084056339414799517176588448881405017355490892077916073738549398680760506745940311520471847253451884362747789165942120383575784618650132930529999989558864865142201364069948611591108415028431079678557191678568175572561825095914799470979881236857460164044319725458796847765168766776481749602314300707103883147169728350563405902442478054627961502385849699636508000422472804580315822041631277688237205979126219161363568222319305858962383179054343619668971819638306007552885231152921972726071394612636137955786669554245942408774523897415139049303038696086993364528238813267268238579991888090992053497728508726789710867789102753099049091904923931590584786067900738780763911653023108326178642992089634659491622692899281900759987059033226744075453718749408499519887509121774648506729450223218627921492528565257293338826398440189573905072011506886358804249184879787434188524583294087173288377352403998556443508596276282761432477004071720650747805002672398032018028217163001218186722861237028316825045882747812072387615728801006391859792767955523818793250381537892595493858990082680859538319723007717152709822868033233407667299314285849939047160066677385420052990645387775782133994519916046738466254084242066297652378389051297131207013599816572868757038641367662701652170027784745247577950778720373471456606069278576558603784168278421791797862486228607928153187976152216681211938492583138504746653765139501015273586941243735914636425026890476523416020701183724929216335041876802627055804557674734064682488856852603521644806756324465779937672536270023162997716841015522157363233721001654799863825059922736192727318030805925190339168448767827200233783597927222416314394594117290829288170808097286837200026393796326739976530934708413280870552830103714842880415021691017181643735004253100641258027106648685517908692971901676330576332867155121847570248303803618817447610977827524233228551889207245010418167803590142672978316989175440997264258609715330539211296217383525411906743240980393037775331437035543709396452145019620537677573827207488274626977694604454652860944568302329858351164254286776966283595727980384338903073191208436116887631631734184937015309092401526350754292473159315860615283656219472736455538835914955189304624167661394472053056231935376984742314813772037710825513381812694285252233428312301701348385451490861561524350462309372976931719413816770822300573878381749050597614018926478557196715197220794081313102329559611328296529053977253380119264603002852339290112534492225709075196664596605298435302916026612938946757906405447127623458705622482988684301825658347122864814072149632793364828038719699390857981395920268133947764699076997639542227174769348554494839291897103505163533762062296323747632610065985217474309906442859506471950630295477327573383131509912523606197112113190701053084438621175211820290961690875648856136890316160522851539652855722845308420487866260879663799506121060865731206076835403318546336750312485425735311352892263474372950763487033448545678601897627998016911646996712937576882896196194997919144791917688971168298887012933199352797875477915592689884127679098465709881742562690752184808355892116949225148554029892966419146859433720356141081966983177225571168435835765478371352881680838189495616609858536330878894258723458370672119264335065938592618513834388341127268235363827901474313729385453593787470156391749090807944320884310515225603558411107658322527516765898221752140090920338084877822519019371408013499962003162355742977634308940361478798089177596429373063874729856322994780004050198933825287061080610676785375317836894203049250220014018846000467347419637593678228189803781431463677982679359222534405123402064415905359233060370122720774068847245978694009080904398555727406005114331705403921791554229515944086052135568964296793099332731277541340214065956486664429174265023278084947273365407666947491992974768847821834471169395614696365577560837646372119190678011976690994894780592555882925589889776317311147372164764651529968556346530720089353582655066445593149486584537202554774440204504520344565117081928673775919590907950224096280707490918695584319746176418154917259116440819991433546263691834383066533188397090723180413483693871170760220490558453023664758804479656946039658933901854576221572659739267089110206256430487857164659442810772817529877925322579467317036851829154174733608022677533235248013630807676719546613291987107721278912636220987575375614416318747945461485185577558082217377419377049251103602529839713062215414356046124705852387675677895533524426764387232142190815715401059671913450514871872548454939406697279259224469689431620328588222648636369332508112649271018508297642323148741395089709862002235011700814436370830524108813630779199419450146079944905690851675995855408480610206683705347185200316715540801433030821406143151287078495036232669382095650334922042564642111584881530366380224291330320019959634057060339809557873027630260115665832906748048570323856330836582016397050320716210635956983130693981680131991810700971487943699868437000896940623080633099090512338641433832496002334979024253436796113726375358503280173414643755807047157415315682904432909319429267531151505737002629802517947293116453532999680431534027453041348912774542967737052843846390876314476452481257594376234454942843009601525006171775650789923161581443276992211975175710403497030309448497198628074996054682817918089021661199391422941167269039878857721203074798701825889552223159506771592955475129349358199961474126190359773000941113071492153521746104091387381246075112677318119149451626901996279940988993451004744989114834778452963338905445056594050079029118423657153695207640159831796054196137271645123046938608557625860872235964468728961343834720621466004237281498464278519469357258010727410548492349418869656648072068243955815273160383987115519571682463399240342749606385849377688954448306281853549172586871959885689193534334819969320551227289178509867818715393308706145705826189030591438707587134841110919271110188267695559944927870768108226964756075289605615395748063007734839277949444244083425843999985597916906428457707850434962939827935756687937817421867266708386215888773980588990019825260049356261324725964237562295398156268753940938137795655441915860602693877312111139130921710105181050080424558424067372698936525064958606409715957095250835163272131184949455317632134102557459688589673832210480897051116074776634377268336685653846135159634151611244640826138179238576550423927512545681038977819040192644015332633328292901693601325820708288679275361736030743264977292267101169731508949909598243783257919558359261886448105186809194239959720352522595242587125576631820064890472444970480445612770044191202148680175665875641523833792839769338384728234244030590097781277895133102917702564810158848175147179608664732125277515047841280138943091070796983859202941261048831863918851304659235103521519773813079781594244192753788857420520392481388733852744570848948859345123379247327223515314029676282293273831441925430135437106378736957646108179784896772006209679767052909463293086611733055971633910977997350657538033379902239989206256236734255446701238827722690133854835845336728415228619229718651738303659090991854108036049531020251281873936239457295278237743939953444392694886008390170557914272683352584602234724625658796586813785558880581697016822512793368871665980567518720254077641545068147261919254883328509721080298792596650214400470852765597048283775166129174362268719168417062778107879451169712350307235275824395482057650313508545306393147507348360215134214006675227670272600138962059762045984208652017699775890490557295766330095414523107364852869022443513476354106210779962508514498910544352080961335607768145643630482926079522598482316595569285544632209354849052467436673840764279351658332062276776139453039760428125397034896629192934552418708080326824963122301124782078104336154333274836687756678609612346623490426781148317660838091355090588526328175297436096030585493885646631517864859433345882649020076796638334075896657927425768107034251338340601282281383121013466005552163949269369161303789217232824926066016304731692875456041947305198379926662743953025966783539476759349541732974926267251204994852675160133792191515084073670826330983079865525666432902330905475987091838599553653246134437667626590761763205613049482515675169877573431898793411680607313953073129082403131449406632253864491850088695738705037570312299141006339161463195024800514227975411944027157584648945055647525085856607624961236215730134220480874635328108787636103739923529609750063342422030659975703151740285945524429204109468061503583180742742133143593384630473244514513946780238147102814583035115913317509438094059007992985793835097469430547405794458517562190493118911702762393555788617463984147203709316155658947447995210985878941355636514904815078301316553787010567776806437478502791146009448562647806142448877320694878456556304067413256616890118472313385863773718376736741684218378827194746951767879782170225593563561664919503027695120460164057701504463317263504375661518949070207342700713618060288801865714198592175780741176412857684692471330228942567281139731542231900316830589622613522211609516253328889039547313792177269415873775569272269086898952661775795262552435256869882390445288481339672858965156654715316204865981646021015595770116617321169000782601728981195527681430823667834342506835016984585183515642989497599194668927322660303895572276897579848964767779481318333479572548956649635646116041207293482573468030166558491763915419413398143496653562888331720582398399898984977985926035489764450749103492514810744773670279400234382137187132523847687026793155234693122582726229908670472102169316904914847327317472162402700263993091441982405323971515057874664710208727970527261095684486722743260204418482222211506780080649022330831795539810493191319590883494554305583500756841976969031036349732745693487063826275330966846489677586323371946474469244513980072006898298581060819498051822335656068062068515747663864751511165763969749999296951550892835120936886935347907210792648177757628073583072791733241553564619455299161166419927691175445973875391179320867793843604551054905378394764255873178399637770010346021994731834072722638126802707398906098711134866378176277690468254515408123358647510199032455804436140841008817705915055171863401946147847730637820589443331073432109231815731556753687478440326674294722586964265127775265104677134449542457247938560245977540672354698524487484034650526420326348723204607390534358390994885503270864133345921225693383259841303684045446178588499671271779276073589350198245942705202272046814023244338286624622096547632032954794302650835925553510942697397099764359738403425778444826741743769460710965300521525900770153574729513728990443217954059687049369942192529134572422713144294072559384477006762298394765429531334318026401666530893513310717134782272376875050089250106091852695380375485977701911783804612438364624560093909667260787341898188716795226271984752214219572816456665657700462050070051975578496573954656945879299370962860729283270242165644229487917263179979715924368725900652860940047843055447123901400127938839463574574360902843255942974813070472781912630017564658762200757058211949347378416806829055555583795738532723356436940829505184224383247390582247301116078768960409072398418313263591630317150702167904135752062434712109094012872073718220005138293296677724131364692867761506745978250174094028154311352255029435479120687703438231945881526667696455736898044965409262118433546972841984960939118181809041108084076200331821361244841068603731083375244980867821479888308332734862852442939757974786002135679237762765007576074931406963389004427916475612624203672294680464857852921254292637483796092290073573136679624825554266448871243454306733866772987165172415004763196984112812198352414091195229156692679107882921814981896040440291914761913574165891278353736872301592131688391455628637784689124640639907631014866197364148058906028076746349778116936571058648807109763863320254470951473316698965791346945271884470741566487209387754975508863935425285445885065757774256421744156740546645115861776801640573599670546950832023104118001464252811249132985511152892758913345496884885751720531876482765758533174505683259858858729184582335777734802761187819462920538586297475704262378126217716104165935204843057957808571188818550491277186215141714861839447700503808696798646112527389423340003902921359421418539875655067650117452045728483575870354966316545433893233476026816837092295033780919792601308809021936394845947143433485779002956782975290823265244094660041525263041341470896829636151762527069590132268753411053856832460531209721291669266476723550040602560053722209310253372459823047110130854977082997191191922329706538357274044369584068382454400841430779801730335610776856768341668367467856942857723884525267556295158062438943199704308559434573655359441640134119675922284678885699581901547059274741989783174608923984244997584813201874278796188921682187878234290402970547699722066517106120828426378826617517638506397217422815790837561216838632392057688494046948572723054614920218282343298535431604009650434975981714684464133433267882830522178211950884063809188784044682433273747840194450909225608176575721973772394901780472730409797120059885708368403443565174718480723255079334803856557841521929480429570049994901532217415956616424794928312084076378475911468817639338180419862085463561551007661868949924698414729668800007970114291730627848677694097722718880369162224585616036635152685155528243544734050760496267786724626051326084699359021397166806074335824194593276500595650385985730950610576442074947371948391663413571749272008057426904462948051763562195121675642286789027552804278700921670483609729556004955547790443979016226316072745210608500789535599280982419277502291728911568179557316451185743742509873239955293232983974375734145163418534193726390639018991312586448130756990275004901214385188178555964440311289014821748765905187922815180378769041590011131550156061351913636863612607836093596823638476084450496226879171949658530693095767576687974909294282181575786801383835498987097464197993729588687480774197084347603874847242541204276385967977869664995178952396414229652747774621099747648930311458468811449390423809147039081534072941233737905101489151218618319936636259643834734069612465766278736623420386218399949511787804988325990518967261409323825217821641977246906302315193374076536291394129974092690227184014931137434913052894076693733011577391924127025018090101527667046528301582255150223479059028950816617393622616071960736352726753816387147992359914950305507308382554654192627457049511558892455438364502991535456795118686151961296915653707789022990767593810184262304220580999030842642713336148199402596610795754633625718093327343208537887739952512439285151251278228511737156697289649888163784309248175133312272373821044421282472404485470990781423588856543484248019800400359033532263450030095042795235674813332725674567433056838631143844429966047379135997036631086622417086895942241244819247342396769918977313137531503231206904777044514666337721232136568497893106380959725467513099474651725213534344818069760861107284811601733210796306652051733092717907186894982162971771780896319763795366700735801051260386521090836317756195995272633937716189406250969081355549274202084239112915162903336363515146404650981174652755723782953218596860844039286554008694006163576301360210347926963122390112998781312039687776597522348978632530597658893880907595212727846093185700841931498832471669429898613823176472099805739878382631787136875557806468602592489885607901025020070484372699100711286618030983436618723019146526475691703577659574883511075229273136752513858632528344669944806553683894353700655993652266194880184327220215190980095600718016197710052544906147427958143504776039589836860186938250160045373482791377301165940772253855497442050927872446900389514283603374446737451798629923067314917961103004632187074094079523303962872790295363898984135970622610874439374484002063164527900325876870740854795356425977957864973433709440454081933450563187016526017089445612152329234266706618957252288755243888787741040172686020502411105189169078747442367625032351758884466003685992560613892680756487406299402260728659374491622946885155468764421015806926235444709865426833334805210378093147114324956631648270520866713356674504983566579471891635035884686690681135008582476087352871602842295366366089420283385908621122063086862216287423998166903405346845927510802257040163378918213949975723083218512338951894097415266848264317816351266781820796464137887776647752790160365020569090357407865169225599311831602243421296700004455141197696397666521866510765163469108697410317181406670111371990400655586010684979692684853092253594141442341394580369547163899443290726505208534285490422210866345309008427345327836422392386974621420587952329113379866189208280566657374007924485271558978376567941152148622911966474148156589605586716961316499646215009701176257341827777835652964416709225846056299068742831731753820931453835225937515020700220127966856328230933804809458984401491438734854214159508782420719754802145879371617206294171083143889137004526295107084798119035980604417709915616340812712936625138322218633782224104829745703993020418778212968360774697492843627286837276731269080773038604685834218154619958998517150514109661813075018605495601909624478122755756731609425582317088241653388896325208627160760618296033175528396157058899553472827529125928422473435236118396339208015355684972822539364157575649238843633235604621647211147852957926658653531734486947143886579604877715637734454017255317127166678136713272392594282177987701988964812780313915250193877511724265522490091715811719191179313849437343005023195833068721582826615608837552496288061847691222359205735001095216217686800939309635193707463300546442803808382408832695150241799851688460607533718381789919373383474466301869258316692303830261449568880324853730597843020415939502601610095871492515303781776346880658842965660209301810444845934282538702811545837164690484679794064563919603427127918950409774999075553182544426134391993187597750864835593583281828299623625455079265881852718331464024928236641100307602771018947791348220026379148431201751976367037805325194910779509506803599862697304868610406055569603271141697113600689882412403487749511917861773127315219210800809863213347726263188173213365248161819329308201856862361335079614002513799762430176936493105011847721526479292144517501858177519030688961280314534565137374368317226073113521500390875192888819577578174418369830134576218639184115816593792184277814368213103610050447925740818702345806665882429135378308647182039184542363746623024381781713118519529713554964966720631842072631741579314037544401938044432607081825062360946830866892903813494089124993078440525922315530251643333690660926244802882851749576312819602026666597469155564113911338100247829885830081556683090438499043900186070404187510438083624013937116788730493817528659687454511916281813457653836332200313505786891435343310494233775186186081151982610342701321726549311650506588361392674327196571361366808227607797472106768314384142441310544067829774804511022074035102635672301990022364833009748573689979810567132346858114372257177802233487173549024908441360300827447425718505272397078122028742579390139009601156805494405844343882220313879933119615651998859249926151207158784950814941089067029711272782872933639343138730667585352570317171146833565721866225603847499305757068973933815723928198375076662766135082885810284578185460490193139472886515510591519247872621227203128658431008089806396287680883020486475389123819621750912528313410264254890425078028210295517239400485637685073595098385442837884751424999566683781922496884063371664033662308301860273714907426346518529263437964376459319190510105624535605089513354083359733667161204691781960849536204863492854530819076487798868360516017232609958322696924222308490001353902590184029927746694321284498320839113733676169465238341840408225726824191791586123256741451838735605953740239747643889135773312241585800170946242355671241207665026713631309622328684091277510240806600639499906852271622727502056964519224149809331584141653022216339111954396353984572274321137561840728211060490056752482884218309761190821358957980149011082302727499294701743433970218059855631744901734083456349007836439540377617370672817016971087130369976368319508310636602622889445661352733317425726696770387309389574398774572745902735788791702905291554265130150302597805556627235915134657665949394894068657855324160162191372877196086066411908980707751419778021884056640247013687931637796949833241298000468376289746888264644587492111617553641881864283704472272660954994058956770550931212955458285549210307943811655217116950797227125796329986391214022431988495459810201738432176124275125441151472991227600138954287096713656491429469952143369300150261602933569225587184293816098379682498340379859422279173147676520672424590934495291353792172612159381361782330477230980670884206701744134945519782957997760787493070105912207712850811373600902190005568599630187760011746856936397791833231215454996296716846438621516399428209957059011910653050065425745079383385862410921390401576344281312123702640839942628167337005861633669151139993656649811225545546006939482201338387289118029788414502875840663557672774478448434533092130824771303466568876534005235512278314312675929501630181231728122964383811964118186139984370275645891107367478165996516437142076024773550606159876753148813196991602749084356331329936705744465654865595299488837613320513983461187494802180928712032184908251430439573203174685775161785457954575470990434524017991986127883296423309321590114909910887058043397869320736430274368967796215869407415123148454381412364541198002889701161321195643346776606519656856435561000197355291312753823092165169190111879185907149568541475813434663376400462786201269508626056495491864467066291142895747407904516594068604030135175618982484571068069012509391847716282704688659993960425567843913185211101770269610943126106938377562347191365891249602502221365281254446757719855902779662450320789629139547235451630333477551357130218629967424882691233824702028646512669412335671610592965291878458358130574223316985743396738319671033898776163590028257233579207626789288676790069889792378248051166377757160261331942056394672969201987272842131741022302637437704692310018052154975616734538993137122301054371736716685815785674988682452546589745189801098547930113644313815610541192318759272514999045089023068885938260167732815710481019258491268998211072819714631903094522957686498333787124074380937198241730881962421356453488920980339196816621375464106538781330714653308576885149972720904982059861645368385341415815184844271756353423730170997225979636441766374697916043958002108700554275456551431597523037573787900258303996079013940155514233502387620433635705111305545377050645008719888751962279454335953763728825746061267979977703598463657379480004943820120472546159840077469255223976598902839870884202762402213668559439383393271845256845612296736127219884390891735430167725819923672406786019069215549714748743855992322079986992353522540454233483160979486211104368091481816304937840101910233931408487442755640910116970835038405763683105472828360276427074206235490094047691404917619463356526384479513198834116643631495483478595241320994648761762114810654479299340614341981480569470194437805780117474926322827795342343731437805095647824353938088201182982450627449744564070146738133533836649191424940098720420304927056665871989491199670621734756604440663437783061298741162660660037460233646699043000363057715989374545648699194143085413076644302279602657538208048914801940493868077167860135969572601924279952031896232639524416015444354367812755362921821554084714259898010369249637853309702277964263943754343832589782307196217295418558636636357082882572292434461958875491302774405384812249244065417034002746646140676607055804921363154839516813880810793035722690867515742551910192890328075515745099460847504897449499822909308815700193521667226518184487080924539397686599800591318402159616243324525211098840221739946084437399951379235186917623459319352867152334536247704209877792426437794311946166373458532862265253507932890035154012040751420057552906804396603183700226619999950341141445976521987691230313332355438402764720456997904092938148695995409397678838445678087788560711527588241339278435836188116579144641232269258364881964876996026449269296652734505065658438407660390745479781867277986037115003908746065237659836498770791267946635863827447285445602977642059168602391878713153893131627809152915077943054974158826555773907893060049560462297703888596054537598430772512811546580490108164999392394157408277826624122060671050786862723157532787896306449511321257204614391987589764038838292539059180872508901781754685775054303592679708694572176975416205262927401934612241087962897369154418171826697629265205142110239127106505271137273152593933037828244002242436728476485244823061220778803430072939430124703095521292206102532145561789572472843818345234420047231699118379966197346255473066867220756033544865615016329584925227526386428463839175929330108427978758366584254615807167720207558889446953890857306392718365299713464884237399197229256557967313674223774422164185743720082018775500939293214884097922115582005051676405184431569797566412781141080775563926462343494564540984522716540327066352045562632203117358957481703669104644899699132792144230076656622746370840230508772410912149842578493780996335053523379317978297594132038327851253663382034335178028955845772317662865775805777038533949430963148927905577924404726186578594503007242125621601879951803269752376406364699996697567316055123240246823418874165049965357648486927376880798194186130780724770465704317269482312289687215145969289478185520580094740655010061458948348970043418847457114551740426669452844208429632222182638408719877785685280098683545871114926761861641501398287627446952208208360936144237062634078369003057274319638995947163629372043395188197686738155253878794031465056562467808101066059306136570590131297011183793942177323124482078035028625300696324700863477044521423267492710838632696386450206119703726509813607891380843370724355648497785685251836706152803172691653997986363222704779349929510808794007918784356782829942522846682635649853556766714360600726569239004521181893190822206310035155484645707211083001545368887017964563629299401937484837425133353628256347930342942463282659174271657545384624027635407441237283518273618778172248057634656792914446277175337430287158903388731689798515097931776322655443046901791398260727308015486515187956793730103626566637251075384809296592459782957320830904508787030106540923475871647167773638447010735507215812279229634499682565279998291105272403790574055176419822606144622406182335032052992142266451011762542486280571743742265212633352297540487076657632792523211806635181287681552309633091918458257519504887301214514731208088803176942565139767511410111590867700650491940701687144966330135784351149156909814281552527508805969243043094959646624137533223819562547999224196863657569593372540537442808177897528562482014814089284594411551127620664505399209247396572495096206302314750106796484676008472663778589265249499800833149089484739882371648089457368481965037001731410481064173256068802247470075626787992204582840180980749592643349094732953273651440206879874900951815033825638779309147107009055488995433512088924303678619272677604857063854061836154548774438982134634860264914822739181982908828756104776736105325262161093553890207751081837455623040432780053857984844653643145201859191828162360896345940244533355071700236171203246049018220142348809347666099802903574292664644340954400482583095190399071169679292944682166277370535699124685121272833616377337322701989740627868913325687650417904042938812606130681778545869284424361483920099530352893751459384336371634967460288983885147636486401824131549857669685305186666452801604587890450488727431625174225078119825846754904014155347435471370034509726697854263349810235730455432436971561263929179778058957510284050380939727450752353829404168810452608037834156075266743478779597804970527179374804847336987215584235896796201413661298109854009983579316027803311801335162390983624100393241734093427263655082010047025302277420989204400412959673637310405689905379871630036220302776180567264065164848821795741421694286666670916033248627180086205280532562732978238100205192458365999836465429670317740378524998826783781072601901536006598034809315704563158257172536292401778544245944370007039296191318087766848758900922382967369764300959832978732573164724129432436694459282155326739829334566872803241128622563982264392532911222627933189060781627771133049302773652044500456120429748395017016928672761542740142412533498319131875039857757540676902749161255906359534017650317493943019638708376613561671401858119106939258080347622657682366002373103787148196376617835521623262695242658993472404725853034616666236183954467180698203758208622899224511533263788491755480283648458717415811103962581788508055723991831643316743849609602637441473513248904494481553341756229278356526051429217219026559864908540255747959446202391478381195877279918992204357495696780299012971504736586459995834638204516924787714239144768100405831664347166105624499086693484588367243592009547705157101850601501135790085111914218179660207901586922079531452113745460197818553314356507313999682820623771242366914092991405971391591177490531572610673265931425315570309664641740102471926497794757914340967451533550557488065842922509367876180806064468523318161653890812939624383963993689729724643349670377554574033071205365855152508754170538782245732587306991495966594137277297126412912622534654715922612977539221771895426669222603791342846508436632271834128165364000611125750868388130005781553725110413615786402375821527501089587290218973199599649043146585099246038785907642488383872867875270373274774841189819457069962809235850310827719323393024512637673546692873874546111254210414552635154937236281653646476636450158812952675130388059570853822693151933711996808465596421981336833373064159534634655675644255445775730388256993311554022350975316085782360311449265316662228417231308174377501328884878823942995685551548618246543756958089104874619470024025334272253159856309003055672108251752882768819240184352422401074308384907450233901131985276354521505963546592153085373218296181138184311233175158923567579568504254782563389230308310727386776530214225772317544864455087266697931755454804968925297185845936038740943723502159050019154494446153258073575505647215913330915745547930644526190166407361838048359150811856787028476291099989097921215542400473533772238659285698860478600191355004561905061304440363006486393132845131162268761699369936792215263340526402962914348271779835733899386887513558625611198162539920302001442565270790917172736036983582891368004164683073055812917927063011148348275931971567774434266743446066037181692051185686715430151392776280184989472272093566723119203876555881772156546201753754422791910024342166969618982340146214350476112840257196825949615375758014802917171465977642131643463056579607857702817318717035500956038167773236212052850498164734455163289068616860839008593275750398119605514767757606327538207421828284442772543365157655803438744164104080333574280225954320119043963704050740486695975855019527036629077341076572624091824382931123737705221921487631474909026900489250390297274510823073360207122774590079094433956271615077763182731493064464730181708544450881569070302415756436209330270238662233606344047008570413868928904636948426015133173587426313291518533572733223167950490663282385438713408139443741330551272208448205464315907716195237584365774392101274906510779521403195434250167299775242911646347018293118241748540296594713041969137528000859664090548434558102581017252721573396092797361542699250039155283427973237517426211274378819927021874011782209274370615937916727189183002236018273868676091016954225750353559424742729727725755544042364806572768733927274142891155421844991833268830049652678996278790905873737300936011398544888236546356161189335443534396109615562637161414504461514117358359306656797696806559606347146846442717070065655236220068005159909822541209449193598905199209275047491341580592964555309620069523441663291365020950195969171538123358801164171684175198394343859173238088213152337098153705411967967564321072581298236913261383509317042840469021832462931639411619274121204508787452828927081931928323652578487207492953372940628616169028408315491320698469626457039130800907634684219209667916212936070362375280468021706044104360122269234370747823233672277065618101798901662643248134746502701246670336321386386529803955287817833461718235195877961479763001647515150062461516618409322224325531236480723746807659361460295508195627698308895228913175151921061031352922987359060668232204725472847114334447039293631392747638211081197865216362635995858933969106294929208553306481267251820961042829369653604835106284972849063602282442372815127895385813955888109497998157984581758692459844579419487548894477581842749245337372511883351795991330970387567037981662013151941966925987314327789441172368530254660080383787987041310259568771501546031135197240595056999553602271535248895340395805938379396126193527056829679046586343311713299167405892035709533514107833324853769038958681440071985135232921667605627920898495654098984067739595533686381766075279251194023856315375914578466891508842380493397463005764234631643006537584674600956998083036087175971249549131287643704377391422181084861981093959304118719523535165188272068621098947437658701718831690731362751871447241921740150048754439276424907783517049093610231766359511217674589034873865272917521103144193179911770889864547813714161481043517684639882682397303666598556797895869708896984139421205269446965639975298430791330836691578996624218178058756399369379022161622098828301623301470153379410776806901016484200192180388917857057893781265745488038564007654769660329297522555438433767661665549088769354874922516725119957818872449069236092424323933636340187651271002310858937672265886588997862845863731885026622206632895149236665939892829918529573258108170557212170866080824324812375118620011783327079207196080925013278577401889475189115366045725280346946877707225727642828998611094750433418658667282249221111984665222936796248296272014036055889082626521522659939733149821963832154309341119611042512146341065062589125800478719070839871986993267244013595211394090569847548494111809972335521954815189293189713438070304349158156670325515215559075785485412900538871585959271693427766529752127665217033010640683943536160181962743223924235710033993271426191501325517429263069995332384012832104144289559584498348579483598444618723472630474469914435281318190422865618600076348885557159884936217630788843108636086889304137387722374391583513665698544137687540825130464738487907399522823234961072505819422938254282907693731365800878378938590681950797233389285675296350068985345304187163479439653906009146194000574465364028197676005696769601572965188820714245899817616392334197198076195585661693864932481176192260315871207452659301006925177174570090452605106141517367329190201283847370464903069701148756776069421275189303637969382607316792225223546404882421784906918695696511106581853253833540250584974315312829226829208213751727259152072313546789943441590921462792328953070537288230713415958235249418349574245859364234713482741618012596424812427004238722491374597674840281042178917121670974463618101473504956843113410867166799882931184643757862374732706202203370184573384361053184545976982713567847648954676604873491753449284023063377382759067620641085968070194639534194155935063997434831208080556855627057725615727130991935477700801549262539279180477675469957872720714923297549013366140089854468267894635017018131074032948887992707414627469193774413897643658037242871287369058195382200328086950146144588157867972946931383165437559954773632155848555907363007243577079154478758878312033654699262757149539309433566845645620666400375495355879247692855028303016559237476780890752376844080180200651145911955921380739773074228105593590971846727509916257757907617760818778815607476137677651431146542625554509176660197673869196841646938442029042435313533034308173066024553180453474333808155560789053799673021001757972019131270992633547047609229443350004800088736271725905923005213553835635933221144058963769352628714690226575030495821245786950661853614784195887398405815808450056968079367440405324246289780483406615537283519964152738586803027881473778217573985157184999193744247069717723809252318040309168706230591918178158364039932344663420355313473120936122429290460221886296654922950337606251413503104974789984520243470585184270129423159382725142164365992196918799135476511394369740650608497869637091655123195689315508471624567555072530400313176211459936174479161456727631293597700506463535896556268622449049500330823774724791087791281872437346600001438337231721623605374603205717951373226300090435115540851485796771035806352883260245897214159024191022776641195801788646801773763165619084369775110585851551435898651235303925869928338794565384752184994423258768187337809364814928985347599337558383082031917627957187501333945631987230712753221408171890659463958203873221677311304540823307963548018082096754325676626948462991124254848603002231371374346694474809164740110430959950417755901911811562726323121670238310476616538010328401726950365694702494998156201544729437582598034767186058960527536717838728245662679883286223264791477337578164672007426448770202059780781821199666804961489609000525251956593905654919911706635296125981995769714651099214389118799032607777938479484934976737057513954340187146462076112844127109197614398002217187404931233290567469806721051390990495213790908792615673453846274959082104491951737582687454791290461496997803860840622197847561402273010809435297535298871450210732164105572860205439511108613685194015508281931576327959636853743931511914074341272121428822634945006630990228827191200443507175567523183667776342710189246722771472598924292824028215296427434830244436261811704635165549597973583587517079086046814869693918914062127783107116689246673760767775198953378713209252724045726861171048950724442652867098698345951537900878673828375279901980919929871223660049142050094380014237001061633998590723897318467718861489671964375801552574279008694017256171380482726051993944492017725936347383721209157006304056615219014692916812360647229159351719222042460851408099711617045692448415592501515632865828210381802885139663691327467600464106762374905725342612078176428150739635059609207814990464201254946535213254537038538652172899717287583980471522285014034069750091557574184071275094132085765790798980013867724808069515919763585119798627900482285534672757887817354608297104536599093959805000381283975465152961188383271161814634790712982547055599043963751707209168475706953899956382053197274833517284125704402300757585406811304788553596673560072083040064106139453746959242096783527063733013616035419454830706411222610079480069609853614103592283422915345295722352203836460690877655333638442890238974272492091841526115098182101034055636771869567878073902278611046084025908886001072456100742668649413022945849440438259257951692550511536433487509783499014911396670455807641509974659563995487273693358978142983892641034629541732152823184033104829316788065107824359314311618948681928348106107197571633801937061315186298919524584979407394289857465260507669478336003975464038665037751070126780385448014083005754169732291832564351306320646632447610420643463012961679418541788625745857254958529550022495261555183157227646791148851399210571771624292347219671876082871152726859019980028726397506118221834493035188800386422882413489324925825870507212837933223044035464022007939891647114422653186875304005391302929101712627079251951203590552785172409386373373906092276036110882844526329685614848813877669786043944900509317764085303517804563835946674819491307997720438288108734131584632438536595749253751827852767688029366454762772687792079323921390848278692330167137193462265548951457374801536663164540220345724339406995769679980263637009821374733664643102263500293159898078750355403840425102749682998700747600311853149521700873008696757168504931032778181758507919920098010195774641873046996499138916337074363040453287917073904111148680391539576878220722324181199025337136428229855782637869076195357207640699057160854050820092606922754497618814358942593018693212784565799134805512846466294377591206831644025879421935689272359933834758976819744719967563396303444498332886363912083218398574959424711435149392582427678706682034131481626096270076650181988156204550398478099620063389069579052525043570935801185594014731963268196931450232393729425367605720517682152995150292206304462707041032140698274459426940069326473256266826363726409740612489012976300083276532441815202569619052509849199491205853305249002695750052197060986271302329298038685617772317594920302557683499846228147913802492386369843270448332246085212617414687161154084390509256457945913979432952523333655257285505107100394751978149260917147962222043778545909182629143611215619516022277953616165443999513161644963461807893642485811653961067876824157915123380361418112819237481518454730814302132023954796843598410103976699128247312050155825721014888146979981308704158292392966488057740234088828105667684511938192306284245047003249088479442820634865511448857285384683575241043040138024932834034456588072262454283474837859999772609597338948476444187280220017413125682308194275909150711571784306205697978953669626731514814314508696325413176651936281854245309403885436921657535467669022807850587455873354722811473108351169998422412176384681268127111259415726267659281329668680929342726524557282296764921318632959325544117255730819132992305928821841725607932176600087399692802137153603207550467751929853620299668571960696591848945283670358990766061064548192934742033650525617261014127532718480421578115350694180282187967483976881722333950938160366681296942606413218574766451184219785898815101486841096744242046629053867881595166112179476210567337875186163181050006544131477609377736516594254279278880920706001642958156295077058880260263518378167723011059068816100821990737751372027930156799470142851467110747289651871895452564626954155266224506284460303442565692166160788599653053798445482547621417698633607038837840463462010358307168570489747007048486499536540312597320173782860033450086950742640110461302441820883094754035038500059020476336325750749043464735209214736832237465484142920816103489165006859766651781372178041414800006807905053929717048679695212214133628578208275429213477610456680105905949546295168594008422476471607417263988800874596083973051274231165450423810070658550461628690212916777859436225210664552843743444980223040835733230625094088851358232596846322028915099577286618299209529886263298363313704811145640773273754280330531324854198579734581849902754101248352954433475085686249789742441052044318647998205851380530771201517228687461443000982938132596488204693661526925045343255285315566370043599052825031901149228246911216789060121874736965657026113574664638391599865572745424239529483289781289662499097350201978598551778105629899721569544903032319787578507539309953537791501150239260513260404771175243565248062087050366755130321844419307596514529637468040629348903122941685935570308886365650961535510738930245180459378311659754861343889566929525211391667685316329259497438498137139298135240225786986285005127695555514038365276934150021537515140733121327085542731831586821608682476379735894262039385888247507939238828549732560617871259893158366269095172676815179587476567589364601886502110511814846314748213108070169623503266991063352098700763296498632157559432506648943915733962903174425023402517568894944600845005855587791444947017067881981492882585327736392961326045820206414937271754392629866877800587974280965428774440025606109996251336792698732090441712193568691029431384898682764556953556170858369143683843160727381047537928061543539870733429061190265555352912305724160281782761437205995941689279979709648333083812587638896228610141956856715023433557591467346103183259804686173695838258826115733184218136721942150955022594662625931026976208688650578190164531397705974104559677938855543350653168872481495581084371304409297818874909023790794302762896365663748284182278428571390025764163745303093181209695284356824205681416891321521046378762367642210072019959311681662750654081875964678104846542395895025317274192737102336990648285297600015548528555792027750027495343018918909154474346123371125559781683921235677342467405375020567071614263309246908940390442310484156152376522305903169845636346056524760486211844590837127173769989080497909500661334011686444963488338845955831597047951926818956451265036699891114123618558295288083850642021841872801067699685547261334411700954436192648821540256471463499563040407849538394881330659922049134274740961512371201203756012504987799014279923228141496123008105759132527322564557915214527553245614661237029832692788465163768558806139210595876215538358942215411221808474285036688870028972627880410085891151598572908002703167966276996735508077927844377530639764449366500258513836674127721717427149802142060182796223337991301019803160536354122477632768317118339560668521298438169717877698748370186306558048795827118817484032292797884341078152138936124761010856351918365818648422954293862483286770133024174853201325284735409120939261662471488983108782884153963256511075021531701884685804979340491905115821921985840683441939174012776825466837164127844222236005152607802351008319488803395919136101517456796532438162279784145982140102344244462967379944556294528156088063016534773283522282185595871385540221328817952072820712436115373950093292756245404634656493349791439769361913288474000354868203725973717673143816089406377741044600638394092377535932744924016984189778720340527756543554861305868141366113406645658585169300259021083132860926399812565303473614628450459394641060629544422547099327655027569658496496531461228520913012780250529073672520078087553866844347646664181223968420162883496122738558574924651291057659793182343563898057778810218628339941763661945212482945869702616372447530375048167340713118034319109128636648643357503968790695214638979515986935155296225944623939474219639661127940598161129912640583025561113362056755696935592294600613698646492041158248463688125607143180519100773540138469820668940483123936587109078314023491569780042058580369632646308308611332272697136343071623879712387475463115332646241630448509971075651038152413421652187439524248977629007547439726838703656292315074354084815571683675626086784868980459030021483287058733728625876824420724935947772066485302483602084365749646334372102478591039643969903563764172600807772912295906954924664910840789827528810445483582992127849001839883772557773340035352624171318320804369536624459218000785520123882443595798666596619227519267152984302897342690798731242872808437641125131601366135650440727429040132190169652354055464628989317896897400740245747029584494341261197934117692046534003781092400271385016739067994636857739996342151922190187773391377608049721600146601522811200308598697987161761994973017148685866480818434761652105629291531727069678077236360355596465628726533906780531484339127311989983087908504555732746934749452766499556263134806730069072524626845600643974806006363466184757565585931875119004214729046260483120467961822641547562503714720429060794862728607681673905133370225335242392514621422283685419252986211312601416042947496645165195968509631889237115612529390422654182584413782770971004224193973506712288800077944029436598812471707895893048369649975244902902159895803613877271955532492772315218698313563622349031538267165758716007566040799118757953518961216888143834975393149364015912452397670816584572639398796855610529370481104123720093447842039565607860438200382972420938682435770408068358511408377478463303221601456467307637728587305269915489281480416285260438121515380238980415255120634977996955062235798713185212597976478462351501558709792257312920535925705453562294263840223916359651718614355076088329123687327081866833910394478590678634245087191146668090875875467560514319244660147388290202252638747443748034085095952057572375301842175827868138570119050652973790405438099591543325353781614099074745346247259208053824044951093297612874497975501601057280546163391817299424741410400553922597265874868020668609671605056220783136140566508688424158344896129593275238603465060780413202910090945719840437808558664588453684186081247986251922330523071079018894899326171956385583897483768878902945518178683397962127392299615767257284371908108776794691712509771465597319467648056778677538467516515246865570479924375933598448285110683076905887007075659285008645626966462747971657886580185404761339351248669440886982103690920581352483402997422829280236838215423166142127071191258898857373873478900361157320021008689226309119464750987197185481621903516219903241930669074023175787286122782308729247684605327419021657271602511279576622268594535577579177408509477868994205958273548462043806025485599314775863849473892640297112477717034042702750535637820126733957764838531791622793577701072998649195996147902787982538198688676179375721895272801163780632300923817672456358991015451154381011148974514284628221467654324167876909234260155589639083370424578868608886175293192926580889138992633284227213690586480247111140565728097428531926741091753066588253733394208218900128940663414369918631135808374429033845606281449094612952039152080893345029986143022388872201434520889900149580606889455006435420038271430169558950451178454715105853039429292231351621719998650382880165853595165920374121371702440014508269224259091810457093736008364144270449384803145291995639956279594498635252735930441246255200140149472156055459989629890474332233309903940295332925423029497472867739555776676008713837659399490327067606989982548055653118210073705074074339349060864795952803151479178521348028156804795949028770657008133869903870634052902341828726730903953767669515593575023626466889098506690149132273964719834269391742221585966942573881610727337065019865180579545937826560795702386319062075831381318117077815459086261367342144938395554976844030730615519560551781939597955873431563359446167947322734748207523898885796374442392688571424765108451607214935945111125154194436971911357495111791876586477338306369763779097498956968279811460764445986254074840983253229882629765461640029638883551579110219102313771654330596631708451544447096474701387054627360662560566686033034032781191784104223840264409569406189978410116514708734583850445631356786533878557345413808482944530012989092435894322336519815094154691755538713927403185523763042848682842039481459772409345211772729872609232816640888913688317232039252231543097722883951185426897511049648408663436575447049381763366361846359149729376809617081102950217366156009324530187348743363549891574636386850654535290960754896904963897838505348362712616189189064064007729411962301876543842833663945093270458012417701261958650341656858194192556754017843540447079283852070166304419323039356240240214870583567431447762167263491119792414763866080089123020944253778133788301390505807630724985229149085931185016006944851909338882145009899828155540337691294864638721515628231268896943097085564183253035599471437599873628276463433244030711025773723578852021078786735045540179843622022102384775211363806086452712838529222776048463271763900628850945338807232371143029703438985578984710478840429071094923112783905455340407003099502450821777222368673916051301468870477704524310962623961952889352661811557925002944416149964907710797407688386350295781399924086786287295664589740209734603056780462461625725814687719286365314579279773103247592314877542130792133207245960486450329540204248818437022301851749477402498345796036992725367077460653666666525109654917798523157954518324971709945594891300633125772012073105391571269348374760928353609931404614280770204560094827903302222164067307993398988281871696766685862821448213580375905521379633631700611073559219430783157074274949140667298960646037420552766962066555588595981182521144534195251822373730594534745308464844572552722865166296248560131642733750582356640949448462914469974124156772643487359675251287472634499558646469111033152350811637251346990593888978471671910940320605919550493183584843761034692028247500811092614943654716962106614856381665614292665870120683140904112373347894897258221197722996843578561025190085419394951460711300773486387114424753947866724008597905531891517446564540292836074006252206374379102833302650506810756246176507925154077956215202071431712497027906499039878320075788252030120916313946603804810932919209936688650626844592758999243368727697151656133242364916732580551517147683075801613701129305210310989427335192822652522906511667282188216727770360837189462755718075276706565690901314601150485916998174428267934742938697111649039507076578664348855324176840550366194423395301358338389088537261891965634672128572877072723893777853296577158957668427965525713398662597527349034260681180234840491776483384237418159922182882386391023687357947630428507807496902901694018741203441889267565582985157833890773973919439901315015211002280302773043103225658338187002613728627084201025261669225817415287211033905716112922060259650345216546353705892586549820632870179159780938723336779635157804841591452816429800738084332035600186658668099187320115139620365221013725601139137186918221287866737572661099387384697196338287858030675619332913744397242079616992965879005674299105324012264175590274080626294624919035978071599482195488727781022907836897344968791130332981573392945985675925597454870033212686834120464741693393655989963689555469004499985493851295211841734710845621743164268993682786027413091748649481922088844087489091896030875035503493934031379280830851348392102200309851779258340255954778467192272066539163496346821522148108885650944947550155753452268977913811990710810502417536672199980209780264096387466756175638506538068394056599945227072065582229966584229639102533440196781964130960366061519377092618824629280173545076006647991712987001511333741847904475604033348521628659378991330010321138189873985500881212241620220217030998778842658037191928545625661434576239046963976111446134707277711606898638947460398812928167028414562806502695289868650714513636836501076898576734746459901657922228987326375508318579592683366741203498755533340595374228528797845020149606890766643494883323634020377940400252530257529254683588357296245250114914205255033303714377806785790428808347055493227535590111593438225812038342475924940207736256710298957045349881762342714515276989770596361418395791473758221470622356418406267180565556863978105726047649236528985878400694234343783232504744512666302690663944169083669732698665401625388321861306146292080199388369563203688921694933844238884547735486163306701434801340122749150950028240117506939449931965374685772630533645910037953848502185178699293166545542123418219889638386560031313794316084652943554126870179322765507435608989166721150711301664016181775642861314317399298705927589868573279276135471337591370827618807286333653682324646608128207610732418752937781909659163869755948868817215970008676173603801374149059452085580206636220637073648843391225869645660383849243750583412396503917279905774119844859166428433922706772217078167331860246465210664406265659398141931216805035091768818645662086129956834644975991294508859116033640124784569392452265466986053807633595304779258623412567485586225923206366963552625673331414741610512185132204207034787784077944450785379844483709681672133430822366365070299970866256770020303421629639462810708573601964472686339435588541400900871358332225708294866930567546315857489391168866251221956371348129920378125698506715444805843632344916049768507236252548215220606563172318968349190797735807232969203943869460664320718836174700116695261833478905074257767433369015094949670374637418287186173298229801462073387102732799503089262217981809137433966858062922282456256496911715203738619662342319171184301070383677031580121838546759276019566685716515136727450349259999496627883969155989281145018818943812428469129771799398036976109335386836665509459992518741316945192503436591946906284209245896995498726062223568838968328838257761555982645329519474395792488458213712613791155733908544471100738319528925728920434211802064005579600545764435965355450129889044839886059997368781165328876593041248171662954543482639569706702333513879951429756913111047616685780306149056033158611551781929401220928775915007362242163166293285132088346653610882485938781276017922419321503490707391363742948890215165128437649999780691974756487665800466922647502595182728733999965492992469186075240455430192289703993087688700680537324921456757084868928349454493440453705515951675164185139217132755233192565882238842382722798111589897371503177233281347259912822379949528967908763429225493342595320351769187165123592931270648541966612596978069092930391658202196629826581171647714347053217395889068717574636544033918836609680523712446343033546672659410710841628889287797924338723600245796882727297557294850419392261882550363325158576502072819806557317776907978929894013018543534076537978377475351526292630091614444946797038358446278417578128705971829556232563360409476487165913190834124827618233094544539104358355189609816050260832607821288759732305657000952667952107328291860905980759874177430527289097132542291692961640255404352281229481800453969375263530666338140366125940357796443763822473388908425293944407673850572855258375723585515093387747632236987542264492637938267999936359423239020015188264973254151793471053480680893469365989814577193954655341734428958149398230340386678975480972785036595137672983626839607572517756466710342102242985669933974757395291699657063070753684187754457317167809159460125960317128848576465696693091107706338668666531894697274255308677825798570363264538082389561674854165571002021434403653118515314752498491440710669696994968272937748326691776057736928129739994118661252810950155607257683055590361225417115757216909407823397471776817125201731652891972780049104659879260160956861971713399373127899433357921124811857570958675218443305948960455284834052097251505654763230631351554290512576511532570778330543396956883399643753679083885979472717660290133017151047576608978639715408180104137685625989020466272252609639490463150024543004378471234138445842439975441061720924768265211273880736602466360296095109891476207716584706405472074768421684226345393460197324612344097115575379824130754390287689283224542688785988484357810220528616534279670178966536402245381201245457351776776871163767679612740767441023905992169271359381856678320164916168427352173054495459500300465240259701255335344712907231068710898402693019873242409292502414146455737113407111741601174976184958789032900146992275605214015303398699171797267049956663647338440937484971053944855747523812455622362609858626379320262022973559103235037383389806233634979694341943089907686959967800398767341602984625103168921993528296281169650293919939844862760346782731292372185669809599579400335383303710207292040444058097010817144650639847258646315825291103481304288767715324130743774791984076319532350800657118722085489403050891107133882865055630215380234209817387579553368833227791087531611002828196797186887862392578943654081617237085323321200334471773690224548459317156024725606341573616329726361275332764438349698212051636144624829407681425605055936814815045443926218927485368283592129834876838531923331131530868733398858224086029839026855148008583190210001398624091037201772790912733424481834708573337093824614534664224209330473443734067941855107950753191094346230422493052649579492599754396377838747320849752106486273377447705670375571963367050093633395982460733697990006627348022820276895294922448048507149934256643627492127336442580628365257917464922422639990665069611945295805161960851392710224194353651567760169239666286141644586989080733800743177925350762614356811473817715157170398489621683995493468028456674772319838707816357082003938596804997001296822916400484201493436801014487108920364374987774836182708184016461962164053518413733450819542540274589793326655914866207966054994076781524364348996176979915259806384623933309593273891896935119437500062698684798615048451865265494493176864462604291087313814027948072513945089464853612331044023303528040498710688585050390072351180809064299302870556062296172621636883921557992996804916472889738885473584211239237265480017468874667192642497998180382502396048805145940079252921322420368795273381864141923803238855014608058039506878499089361942476911579395174826300904973728520236784421291570759303039799502679288449184915571816167850246338071181722722573845884820147047368854375728039063740799829141109265761637315634258588508731377984658044675321550809371278627382774176289969078189922740263210337938415588870676803981496989814405993323278980184021533755767414177598758056151910445424899836160882998810853067470210314271209673284942936734949475241181318349631628569330027646287508540857517754406702316167362559915604561047391762985967832492264408253337605673268979876276580848720720988627480908039636498371091274189415001271602073762109552697132503615383952121085603387066908156493828204365970355605382297507394063619726654134224141030371622450008911563189290219893898466357800572679181423408990199370063737372365471710311480947699141586652582313339393559403740435764888021390365052382239294778422146782808154559329906487887645638789861534533498167847805278493931540072538479028405691623683632344129412000861332804452505240275259783388346384039607685995871142011744128123722283828259246531658298168083715648300670587893383663686428271416208444325204610280054596166709060380315839507505152825514281252317085249801626895298699021476726579192920925379176135843005441883739088196421230054571895324892296592461208627781470629285454044309248477922491555850647046998875114276743564366789430761638123313505831149047069000948945059213898200796619654271629080610643333808330397870431662611561899760633242929513676963582769848937728583087716378090535435840094857044019076976629115680001526212250100952817337600122235718621555840963134036718827970787133086813732072429619240975723924344996976943990731901583375460330521779155040446105424924657520132088328441199822052192825906503114263688424515397740416821140588960686336136968964331600218956138771879795436089612278038770214626344290285229718220828164951822797977685757599446942409327709384270886094256391427712178584880127078611047822901949093407421717275355285977399194687605532207393729534717516355946268132928139082716939617101714252591318399983125363129718615800050166295749937191628869312523494019039526029997209701629830621764369894556247941385379396573747940340073351104740308285315868416094013065825999912853135425850836099230041575582549192219415399230810939520836546628225661904441143078880298436884050643676466104947391137020345242575262475941688539948976562517303604155217847060365536775686906970830721841938550850881196733760579067928006082627592950836275114782475048023342586042523522113237519810523495870191694415396884316650711568115809065474042372800260824469244686926209482387814409858448550874040230198544206519406360759943227751208061488952930577231940555493907679962950586719418900944660837636233455019004778610708962903323650843453052225286998890636626234214395098649872051627243771317092574264695267827456160882208236865697911228129309165210456565309437685060840988991891492398443798663544655119170268872935498085957292295115189921996849952176356694888112718244014466716825157207438814438203028606378993732378662083599648904395659727228270245674075228478126183073145273988571506105601756508015562159158521212280609513668284383563483283718417013821954866096828915306471407288464857594449430169695981137268531077096007111732265162769012069799510272735034639037992756798788627358205178881139533691116808606705712333803882827636553710960531689638595787585501335894260943780336086686227048863378285577823835436421971888459145755782979457064295817911630523243438073787834019394050617104601898176199968334192607113611921419094899557707742506859381087518141411135128388209357635324812861265755919637512700226949214530667423312245904038167684191102325275173383439646894627948811362651149642680226664965272419575667415694546407218568021997011052254448837675170243890742217174338441606396759304914255629281442016833706893794399042783272190984736110261216707369223550500724125234085071857955242521952086629929788677326661409209649131097912311383588399732259654627122224926359764656872310307708404030983921081676336864954071755296389283586824527207482383292860853296691832506305490682832569945014721834178796315800372725216166043756410921284185584565452808187520666377413540497467876138989099003589323683228701678463950580320355549936849221400296558425588690889162417005845324089205013653749308463250605275460560605550732379196353950395669795960196057053958548765180763987634293551720105078222382667886489905102193184902292460110019657062221350535436066459289359254570895729970729067179136683424888920509395496435529523862298998235140015085990611552370142746903910765146027668067998808871110343732018828095618255533030620499964820740261189068454955290296568240559107118689307426477400771684565438601077774669402105875949503980823767150301869773759508798532694193012588785290459433208736568221539467700198798688489831995185604265384817700957938140234793760280560840598803706746172391280788301279114524972179193235248765171609031661076151729239127665384066105119612968039297897837565968593879284569566540155862997088776937477349829820639709729181556876021583021563191633746650133246029141311987607168793957838315063902678005896749260989364072986866100005785367890889126101852447176302802227266548886645362013280937621372355639428692720767716338736836479180595410017676795907795137421423789482672601822443298192702664272971391287144542600531658205495247687760330656225540816765620592265606930985775610727932427861875975963749998024276200548061392205317717766073962656283018070410835526477120668638884548081159993458690719440403053018454167602855685146058590308083753862481968244830258674978535265509284354098387344140484298779051530950334553425742318403833450400537382826240078137097430530879774983894177685190237978131050434501215918324440246341239016261611957077738300460899699009083138770539215093222401082179705715404049720966683810179386723624456447569668554972076746199126521557804571568989604301885511102325216732271773338203368254893348081902577206934180221585627844023970489946607682237676085904674577521484126453404236835594090779369475274629340412437889726871980293162409882654416928377282987313536946723987581367145606470613413404428785950478392980374354219662816881500312467912647897024094469061672046686853984315224119089124823302048581300372383517069441217988261423759654522083397028240559996308794791722642837477429850082040852971102485092890997491802303109023261746002470107658869121182163532521198549338958990730336454073822485212584020328840136351425142101844719755354706604257939559443601501013444814884241038706499069722190754814073721747550702225630957919683817474581387347536769383117366460969123970123839195695454251454772844756447620140780617885584133099699375530140869652350095459527541105238869869754799004092815051601400334487448728191650213364959930784102671379295052431004364859079118212985716707418791071562456270825487391311597268378422073280106312272200273213021972663443152949553414459223708869715729290869172398551140521135205358193892670631715782031687025308265730977545854374456914802496341410149215337375731290288055270740831129228607271476512663856551802049257417527306340776549721816319090437381228075896794328169701015366641049525180007414779461371629794243502696164492798300115750165021844618674162494098162089911331217193564551224276264278504428827747849869774991117732880106349764991693625415753681687625050415646729530430225612219018812842167955363984442188958475876849950497008234033496847692096309208941685058019226614813642585614218997577954977884323782635125062471264763679242002364172564884932816587686580853586182867133221985144421483670797574802082873875968993368344464557015962064312130061858269396661279127793697799455476313261928281360723362153200143061543750634306315538095951792853956926477336839706230062748445492018306242955819612602050757111510193723142483754176839449807862745617790588807597878334013754791725148803596877347502232162314947087668162562903796446566859194862531871615767674124848831265314470068001107393224470139420679103159777463686298718342022489833505762032425753843731669620582994219880606996612454604409954371679646952380228909508431254576567319640867191413257112013209271058051161042557228892630555438516354836762076514624276753307810814053896760281418183822515026353613317450685432447627482823583279861933503944283033554217502485884268192617615096879151852012635124030288693952363371418349410663743672233340882840792568998498146676002743467505161289989957331879926970780553526660552827629359451045755800329217663154721680079342118418471942290451834716750766574949035371181392744213874662460818155840795667942308178111378109954727044236226219191045496068741554948532276196082049446747760511361822823644162847196970274370319296581779645491671092544011521571163937986597800921063220493023551269598268280149283698505155549848036171184173525446743954113817184319137869116117716326833997328221694716971167212607691513140032250640482417583864684955014648139506848559859902600731347985054260928136549809710788987324062279721754356107320774136291230228960669342996256694497152104529926176936291972207968422492642452832020211167662122926274098965230109284201596142646757174086549399659625482373685319164437153771837141513091864863097127939389003681108012629808731855943384913439587711556128712742349012917691979959024736247095837950752608104960929813375674749620435975833741505064511618381827108905716899763564014917252617687584884268630136316297779737607864097537662387657127148684750462854834146362579662314755923958301562493294168263875019599364431916404708095927140363639752867946375268207260942570832348335640064224963203724729665113730021617636023447783130164669621598293193246602348821739549971176508935722858166477155828142879383124326864159011960989225732193593786313694111513563796592054272324637606610756130536949220080637506114901873939312587989815944729559909842932869995225708571435659954685719460681067826994122443433137862078051053969477481290694794915207933470333411172054960341852168650354909875821159600665268467270113541835220605612626969970981873021541013961844434989960424133379622744983479838185406535591490414102692319150190883055545190851197822527782480533093863989792889266587965968162608442285805920634595103582391171486652199143909238932794555018066863879303162717689546827381876184952683328528195887717886701509437467900076868711301505306883478135018287020516481835280280225403026257654405677069520858708199932977221497070868670104787053839737562459379965507402869898809459765553095265487797628912029732663465639788054336732384783523137246281011666179743302651272668049468016149921005959456183600793281839751948466954717756526195370144235615809530008387870121369361887213650529432931303347937761431126046659515353372068320973503611529094893534515760248598483177629824959168315418117621577830500694889448566370812828298484216933793295734180722686552689735542419148710052858757088680249485948394398308696688039760151821167648742657586890222754877248383627361090947700548975486167784792391636690466157869262838966425463592351481441572110694863445281644102840204490552956084331120267642942923618292371056261759571393041963599697244875453495387488160790776277241359331548039879438348647499740181477598313965979346871427007956476391197455218295095023113421890170450390617309346243862438195572141857764134196497438165261192859178811413619887961678468776524201100596521381306566030492515555495422195479169349357368191343860803775241784574526758161403328775927528738771363822839270433972702282226166694589568172696760716284559252551315676041082468160502449974935630549368468721783065242010825968829337268466749018770293992814983351052455116151240138917321446524601943873488828734242910914410406866608810779638184668790896782067468243671133924187305489064002396850912203419460626033081347106273678208409136593305461750217722889272002258499706368441937521105958724285917246776997063376739757314712794925058468722277854103949596736617687866817890228931305724670503774362749665897929837978501150038213405599028999142969097014961620904198579616083776174463606507546693064654151697951957258922746669808560625602881427531399103651301087971912365195231292906646986345194860621737160793688007759320207172216311667544082554369036008234235357783143234119702928534669306382921818146904894118256184012067590807583131831595535264199519820518595710660100144365515969931890449585989910834442044074089775125972624617535812193644486183408625431879538198428521601491255488200399333496961261369784157058184646904022503844372377042390751565624955824607444211796775436413296986079225296191981833837968382737512223308452250005254017682045305469220182048394554470248963124748212521910654470777487194946293944613492046076671496124563867764440934552188821837306571295131118538607293890472748959162113419093386741464333750787710031133338709798207527261453017432064660489423412719740401953686623541122925751021368636256506324012061649018903076167446190057559000774950001302450744321598680113717520642250827045951104309509301151234861173472686721946997088117203965511432214175700554718386509098097380887760372515788681340236741218928736546521327297920849407459264160769750825646759077400999450718000271919637953532330042842570356653366640344757214723066577105025717448930754117689186901674209056764075836733905657723024594164771045368476675056086358875944713291369974772965953369480463394845998148742849565364479753249059319737183872741951762484189391581175304731047651533070588020968565279882661302068979943095482614947913896771924460160865499642788766612759693066940117611366180982557990144779464202178585487644198201042061418720903770025381072547682370828481893896543814680194389178903596845329800757773096362021709800063630007162736492555699882835194275166086363073541247191140294916796235356999503218567235024548771130321520388189919636992839888647914377962897658596601179826756224545267343258211603918322257468616193000861114219315266384520114768920700473130095529755890720672846456579098349733229349563860271648428656607105364889329440759056207231629416266789882005288337489767123449002224506529526874406573147579767070824137712324579277499728415613292472139531198243798426279525072075788684107084970914895075054264641014579643911205401852038139836064948544104089126982846226686523993780819821049071957601363287020156444444921525047305305598147575080738525837104802620949764951943943968620569250354491517117718573118942807839229230177281200243776264318618240134863988200614010428597857110245352437113568427080876360114712523502981955192602952915948987997264418097445330177114330155514917783086375333812481679893626837844382154641557114134407508959180240258065756661664046560205552102737732913158646854892863467318175733214731877373730044989483788775991030871828438634069089709158974195359297945722065468203206209760982800481576548673912900003779628294412657960431818521339575243932532104650193296576542455091403318088185801627370616424396992514396808854872577984229692840714564450136214156469663126028521345874660662274934742224507867248357925783767653956521076696490531650775701593584912855196109043497682893530372196333154941634291869279278025951395206334168663472260561124209196013239068895281502540210467275053511088775248835789141022574462254642215561788840922494846884371359363923270271680933454752510540518988444791699395573212670137006596681283213068152772410298466262198304383858416503961467658897894406402473395572573690179624440793565953920665057289102216431311934308583426183099475226656544612925011269605171004273168688453763890258683533819645737092990223126648928326210208685517475345406300148850510261519445587325269204764945300595489116795932329483126757025125153515828051049266589677954833446742369396190935268120217658718212739032283759409898866568254464704602763544226283752641084895861633233097522966125755583194336689099129108824286009846881209015855494864288293144563348624895044523299562444912545709791284210717562529299618123366675027699974101796467513729554349371455939496717173763791903790218529141545185318376023294079058321971229956372016967900587908539641694150387062523767061765913508575978902759898846169781695004614105977602738763745847662389534423933685993211292076998698526959919061426066536344012846427049055616119627487929798650897384743806769758398263218430153994661287193996837363933754349056713480637663294232984859017292230447342035592832490653638702746044745934489881588900374096202923641274816094922675779977581933443086630415574329945464281552371332721043652850596670279566812405353821184240140096360752942002113437273698587104414383966534764100778271616525810018888262308438730398202328135074365481141055302574816054671415840204470612431278123318223147242224335313338303894906743804945229503629232355836060475031646296207685523027787635701830177123078733242219945646434621540211693880406967305643879013740620417476871495970939048484602384994169943159908315210434543075544761747480944675434765981521015948420455120780596201486697996891443228413998723312880179163370506817856933460534852555151938565136541260078842042757663746362856833961184589372357201565917317919365593595746233940768119474913686121954509931652577707515211273479087926697738873244554530751590805752380665207729760327566608756186160971836593406277925436236592139929134349116225918083290013508193486083583125675590157391904989364311088590860474763315952832044865366520958106249914398719924986922369438032793709241757820812371597321454732675364009424294658044088867896451036478205765820750981997678260483914232560597613863798528551328525435202674435428127490648850299628505867823789117975085248806505465076874718583313937658130228988930813065084945808024009949257993893420670243216032278736271067301022837130619293244815947217628345180689726489506306279185394095878046507108412411965468944934910025469043751899947772363523499435827268033418096229012569727893110366529320128606583477320759154072847044297628534283094056477379633368573443350311822010584548698619915061461528197468626761203470241087024667228861097556394575860671317463093827912873183622661585559000648985962071583126203756274248770475271730285530034117871811858143026331715427164477344954874397109697531638079340453102098620594313578737974232408736418795115675475885055252090980275739673475836552781707117550222107927143783679015352786568988218330794404881050382105004213697181968554953188246939916002987659294932477924381232693785157075386599929061647086384697819655663449280023923316102009354029925077281600867224017473939739051846634000798765918002595519572509681887651523349076073063044880533191631349502963731060871312503319312675059216129875769003420282700682493696464827933474235287644164719238607106371755351400786803809006241270996982728734814635361059115335153168329089818724433901225417965670768782570427418707433096630392748230376450370534082305298080468502507688793857581710237791044681367773846146453510243790556067916485747668998693502452704223197748202571201619160139359110050466960515780682234700723958955546271285632344433223066935393753994984735950691756508743485929416636909876581327741082782359095182161306914906977416677138374509213796348661610484621359265430900190717954014117197440196698208047405318416956896119030536355287456807722880552958587899141183987778367649005803271273132353191523267316372784309009036627264888834182320125800970208877724129551297046132339173711642152876027526766700471897103714649183464749616266498019780577574095265394396500456391723833642075400005574637464817173563714071775915147011728968571649402977092259756813327555655843300839613976823071142946360334057748065717779875454125345101298174609242979129915166669418067908575284834008592149575784520618553518029535199666480166211518190535797430439893892947703363478134658118532893124915348741690351222726710629934021014890584707503219090701737767537914542994726531521296357576914609387464162790300141955439044724665350996736670823626960119294092846049581453190907999207603897685218447057911452585672467043898108600215059984808013936221731311826773744705820157450398838167977935558397731971457119389768806460068476479797446254903560393027117918410370473155060532562224095878830159862233158133754717561040460757239065320021289283386844102525713205290932627906548683906309285508235020525321050494486784171563443180183086865012736173411736239399680323267756530872158615134026902677970197867123181092941158911651176449341030860845637351499612294507738840012733965396623798838776331305079982480154977717467590985939732936199040589081123742734442003433387993447366653393953581834488803101206753979744434000397942250552957205288218841022636026531678601651759440765585607248397332458348377260576084535291726493236096685816053615871064960745184705763097515205748770579623243810091806128830435721038797301523250005217850997526582604566604797926869010427382251846477528468275918201434769421627051478242539036175519574372401930972737559614596054330578793273122642906270138750032819481053158364700740551117231171097947711790276388911470858225288747922268556242144588211475690003081088092908752711182625199881815726192882777923238438940662832824342099750099539964350516363592842082208459502900609880183025497057745865699552576283448099807609303678382750945498705901970898462873775690213297042258988474687348815100747610074669101119780789673771037641540306058671278747531683061637501626567239846216267082348727671153098778045164618743559356698021289861300996336879263429931016459863911758558947861175205032209666363703093263572786076329111045909558726669982890228170959219329025611290109886902612875182032038560329571426979491910219655881539361405963909192002477469895250838212173172605735703834707827096948990869714655426540491408237493805802722819923410322637741110547462255177908689238606210556501237040038664716146653988329595701450564973765624610405736602751747285506894780519468619384038930776704595113149312377517913029079837470433923091498165518355465906942078410802397033420853450198216009949153225744927868914452876823272053096847860018493091579599990760907486631387584091997319594010838186797007612325432888070792002824540081809927475490607597931314422183698008357730482507191511453120821238843923059896666641438368418251325746713274942207637387305016230805533844849593359098231201225346777579610529277591031449788509033031284028625381973280875353371059404917049406703936892853634631608631869686237989467547411727525371152566992524768237159877957278325372790202188342025664620674085415289316192313455578146420972792357844208992455425547116565544458454998373519917434467031340743479052982734217204433639182195947939236718104618001561837239611578497776713956702034528348851523314736572913927738467875555941436859896185582445067122109965174607451662744966735632294114629191649018567499222116069174850583846761637060752603974618280623740131390531621044546270719987339595339007709106720787586458052435937279812473234871521570876341020311533561616863925690032280622877687045612656895511990159755252552327218059378900633256465455243779624421972977935881344931141241944469977065480325555579755960478152628334866714247167627260176872468102094463698891928169642492975159969873388390435291601177667437014512562858342074066329218617835584292207052361154632475462187164909906169531718606770217625524053655697725611032935883911991657642052911470340372213734550879185476198116230118953290334536617793839631207993390949572488862060743085401986167235084409337017641214193234643210075502105189022986399970697546909581907751589570976815609393313483706962979160578405330084520983297294533446092864423465030383518823875876518178795128315903609604639048914306785089094916295463423100502349045560038223650420946495278025560305846360608258038142173275422391212251375313926868054605595565342245733216521626768928031207105745248810502795090111685326354838123432101662276160743715579866010271206164993944100491650471915967573910559393357193923184681114118274878647843789558617312357858922240409991246056573613517246409698704244213809852548450445869670868224068443513407273190356339244810205001075821500799334840748626322073165932504706388205701581562408882062075170446709066533790492034162377654382880089301868055730695521286257608459278036094683904723317284387211506452267072147012365412251892200856313058604355120365200178187383624687049906787534842411664600696694648061752861473918615332417262918577430059600003740281921951404976700023358128346858806952354495023262853439149220094084922307751789194744762443888496783546755079146370310957919799036765006623193904278801004456993075956688075718130502934925774014783356849875227461232063176007965870598816381617666026720788281668515227310398557311060337677377046241358218246158603010903802589042405637280153625266040944091362078827271657494411532293765826281256460670236549476256002822142125783424386114857893706357101816385162535197851238482861939630093472168306221650847025496976263177665664430882434810891373232446767953334221605385412554949816922624277186653546923558619935923333522169194563299629972030797954930748252016702300381070018256623238623035708301176234794489028457594636455946590006043987759625216305223445076747757250954296230132508435372503425677791704658607334482234892027711379636732319017749472107090015349059884771194962392505641207800097119306427243873405345249947377038252498165948238274283885734172887530253427353997653307008620748402631280650774687435240999313904070671541599771299581455498607209854899873280863237112773724512330169192465460818106256818298622544643306950674489747785127876642607800041488681645386828110448759323243582659037798669211417181179697440533352131150904176341119029350083869702358775206123327341280048681613801390398601245604576864571653704804356359811545506447437499775237777728389647147114343914904272546791135977151826208192555153876334916568945483179383719421804966799480905538330781502487456031348980141469986038131965827815124724724013223189895376214267804010882121818509890961101115805989817434987860605959719540645037935769085338102616292172185031560995733928340971594193488424337471620002690342620153946033469015962623243899603033337880622721778566394574225520894155075510331048956942240123719917243133489540752101431071206370857312727525606323643526844852354792073404444651936825714667001020104895733186893012973604767500335926970440066816739101930196773292170826733481883906167960614216160398218476614613076483950831304254480251313700527940868232599530927444920469886383129740700569026074168532198971071647280433592114707496784813439749681244901779163094113745201085375120860141201497415236999443629586952244626008346125809359139375832620131506538858483554507881928391626923601598091674659515742558728763917710967309153155621016650712091453413676794116276384593355630032781017953907850565496987845915012892602410383393143643926413490169236122983273030123676486263920782011917614566676627825339504839347101989252246729597419595478868145769433376431789158290363592908292869388156705461516036590192165355930788989125381717746967011978491908611926014890104915188931029848702889945594763989389239524003243345291875227018507109114828083360303765169378283216435851077058075643857206810416265914685306925268172966054787783007587394134744880039905580370676307717062142049850590396894345639060545419279708137126323783340652127420946666312743541001397990660563684413499853331595300653032746777880323508535769711283597349150791048118732252843802920703594645147313581800676659460659187839761921739056359632241853653938745130129137620989151383599360211902618835254485566157892413355546404857204043437785241203141619495982820926682002778027235909870598498675654191233487818889281749976366494113499652743880097761678211123942991054291723343512905023902245511864884700967960629433174963464373682376167466006981396168767715882392622122101156759650821144520636508939117208160323338187129952210939610952507398270067218201498318390180150010809370516167700158241069814386122894329548255510944928063728364151320164496794424688761572333138790041048610322397606492416876117509953045665925347298594614467556940693415345901089970676477820128736294606021834862237155460042271452169596818905275060010850682256825796793253393951525061988673060759908441984716956620795659843705144565352222589320822273153497294055817046216063323996568458485367426787948903352464528780155118007064118365338453053450934175742577134761758780663562259292284752580115417987277228619027817476191945156050980739458757382023757039919844684196985151400028199528556776750076656931119491124159239898900305727475714790603529809761581965945003760429381262976141673441885200999513188455803637456149447910186176823059853793673529823675557091580439979742989470588590059338965970983627687507928513132758598990460221263844045298762626538946995245575228759706562755264291346123145409441741858396008561395141788410662047967483859535855509915686222140512588558083880065354252396767065174873611054864698262489311461641797243790882400492971111956577741661517316251574500007455881982411661518949709626641300583335346457723822325373248048720534175479348084170291666748294877167097335584409728299067677777308136931621248461697754569884035263987382089242377101018757470410581340182997484075475130548746855932512933605804159344588636407948634208343157648746283663241128332676025504281884065231212094628022894093727317626607472761297176554494619004356625100759934494243260603303785345585792734529366780389470211712476602471911219816872375435414169449475673562617536199273074434763567575952450714667959841124036685382201549880839919020453424089464171155172739930018390507682680514672102861145885545541399989301749421772389305652778774873839696897237152271538579364789766366256525821194571274845646112847465742191140998580665642993809641397646676735552772151907906784815790625398389831715952948382075788882280162081817356050111641880034200773796116542317091268967036297088314979705585218112161415922853975678821298535845716062020524501075100786725923193786763281181230545392737764492560462391245763247815674800797455767171647110094514233596699854242290899153157177099653112862581257049502276643594559751263652909106350703584736268352776013908400599371506372968518066161669335998707797364812409509986432786227139661555543133681253241471532296049769161791803932563253874108445990244512676940191993214486365467281372695974588475520003332101246443251572942226140930355218530587145653847384717144623362933727758611856874370965873663484208656068226122346326439986284418572086503630018517779593393888157376781243572298779870677041296731670067690697432489095022948852741756494553747513187040922096322989035764894527650506346199435271489905534338278270648902836477761725014800185496017792340376991694270427570351224366714784291395838907800322690266662247782337537154746172652592539891200537921833735554505846924807716496849657457491412101983961786691838016639446280525611522051495679046490367188025947017749104074191386276005128519278306578621400742980483691275632842796723540285040021959215758723831532601495459447251787517874173264284647735945961509364769791992328619049216003465313874223903570525515575302549963140971370638460576433930488840815047947402778304850663520306687618085501083645005463912982913602135007970730434805629354536307168260187720551085037932448871495157817724136090136422727673945418893150806734325626444094332811429268610012354798218974817489139157324265818132686792582533164502726256294456043130066389619553536345993064455694338297125879840794108403261451159155626612916422804120188376584429402668721786582330654081725350173822209186304629283544372453980594344102305221700981763035646087466493836159402706465520678791361770789714230859257673505142738216495099141994598095659569283913505440288857395725143799088523627391264282504003809872997691888908985684706314550211364895990633656298973701714285400051588913899748746870977170655170509859465846832671632167900905394941314456301043129237079936526976236391844244233757311046690038538920150253277362744777049015088853160590727667552694762888230551356329123533444014884967507165269368443902342517431307980372890485762136397947854605703138056533125421659602586429068615082169062645175031364338946845415064165899832660891865148207098146197181288112993567585471653167942751833302418774978291424337674797093901933337030774430753765201788083607758238796823124145900131815622431062655597418861076636674533460506920593347943958673799302185888736779802875587191782607366546077358473624804537834415123959607735941638855496768831907900450021191760303501294226615356100842331439168301085624753185437528280757002836029713528602272200687769621905294445607294408703410061552452610236614626324279954634386136494477063968075270580701507352696259129853050584981580562200141419476396737623016179135749638672211291195274365940779827238364852324822839143426715974773954898676672476990229042931184924974816927525710768809386601670208513055356000311467257385866906249686569674239913778934110027271854501950128237620793699100995200981023406340727673851330073388290216401680886187715253751078032968909279129695709517631086723758056017970839954916705163953125478120756607503722955949108123512669421750466568758167229082780467118867616616482126594178854818961644438452931370100721914777570729614659659792711374109463597967861500548135230093946113741655083809437153670937898865930772023014366240561763330739984923780887559512373158744284965441992613218246948033174631498639445267170807815092870221269041471215641191034648409107857141275737141534556096440845991224513641116493911619298956007011548163323164098652040941719473060645703129119782072746760938425115429200795818332774346052040034043516774094528702566835598728473595424001089155060233388458619385325324431844983024814948216111724617427773871600469671838280458036679499475330276683574769925609481645855589953595370760260274134991431167907669346203851689474827115577655828789926234643036426693288654922533742656804628450915613719754062617745560075254732971148668901664326939476349207439928015833683367401619972484673048844816156252394386677410137322244349477486511070458126917368581341254142571022434080036983905380700988303261762616524105410493003091896125979219511228964451520516776164318008399201676442247184191047482345826235737552229034498693442969299965549223706737887277094846428581843374211097243456812594262801332476692251319080495728155809113477149827923185302737768699896497752998145724224654472566839932822170728395974297832094890591421368990635686985142891112039487524177983487634322257722504538898452941080369705537652190500789622784579309975060301517052634232448618567343927840543757981824970072791675929952476365243446065257026306689296104830525347246190749740845586519146845955776399194829347852736246384151153339346790013749275063867813183317803514835283194319825739414687262454078938994328822746334287285664846050871246550295135781602247663850443921614799020147578016491521845248193620469828843467030716500190601912375787020580639960004164881752980707361270633301243054651032432496715974820298177101510320127757238848373037239398568110492900681609915082785705949505341691121887098424248115558894873575106689885165611130081397787358869714908659010684150694901031516933550400284779610852929671452980611320772938170111867450826767674804069565542894405753622726913339557295765410593481845694859577513821030646606722246317586311723995179616622374779533391860307642846320303063679512022265500720424814066040221715758329939785320633945461431478909015769616687178621543545233984833975412275637828015642959831808334823080380630124462840770714038063896054532310645413875143523702154848786787466761199422802838500096069719798719497945963502426208415519394726201866256574196158570796542427173306949198075656600243302936366278130744146815078722992455906454007241539064389733882490191066506866296343114994658462170627000101790961273001258513746084564173282864563166854627841307894708868190224762178046752134693966688130364097705505888813589653571656098985425995443372237119272133356971791787418867739097603075711402557485450241247898413834696496401447944217611101262396091659818615212300271009079206731018098522184690170643138341668793236569591792177669935865946182373442154566974736358256002016057035717385391732120030196952897001416803753116102201230729012580884343860941452207052515311947263153855136154147802956583504812833880928705004707630527830591232432868950776281798439590439962340789929297748995164050972087460509105716991994482441558999689558525376038273953662018909701116127830838152016717499013157683001837336158800493000355918663409394762717472815921367369716501742876931040959495374141983367144306007058406762108647362666852398014307729787056603502082731178761942486452017168493246416238915514171086833999016149576239680937985503489232927867840232475581918635618879407906113286512211468609362355017563339911454780833958534181299210648074834469780824889269890198239311295149004271510354588401535880462461687881198528788065626478200214517535655686988946756635959240212642391319205423732925170979656437071757043954581800711590625924025473153203550867956016917098208167052381189323077842570976891608962935261463166165810893152624852078600092363479979794086389661381369714786069294897438113891014610698483100342547453356664146237965571486540466611954282209920887581602911711338209675377159666731170539981092800620863094211295258512588810892434947651775984220307859557132540934447212736656271973905725794563996538167716286526929283719984937901234855481593877327291541055863492089076328162715393150877706904578081960497541602338903729929718916157039317349544764689472864192168278174421971705217191411667073437889575494571043632775827136147687920461133024938029081420253487398403726338099997544375038412879477726831656139318737189216377105438012100467544616483202584509321007721943816472672019824983626575998945947551128051121146177392872856188677402012538944730335078444264600413254441427841993336463947796719802305429326909114804693987166315088326752746668963063223851260497820732400373606059245762484502532561574372235029351279880400562060209691205463044620047931118005009932894287097320594204168714551304137374201878038888129293142588156065855499080150210514320931584532784496922610637269885378154800976718321494941843659982232375113551028177470698436207431558929402945734117443887867330083289608434022931038699329755193469187192123238374462059453827848572779327846195505402537152589702418613326429361074900548767387983160855245492928548780883211417737391459386773587683203210268108754289857145442400963730137380025357710502807485044567073116968571258586693049034028737244533278519174401241749094760968810892011479289054680431056462045457586619350144752993327806022728824106662621982408610079183524582428158457098398013295880749481077045594213923787502617699132978605651734481399864300813158979930603103729545410100884680296572107926921872101093710767200128819452002260964312448032039613166203240100789602225043895420526861781098456286566927340272000715719645600142673782730109631469117786313633362434372430758369039523916728124477896756104276264130697888752291575450751437495635169633043686524689974113767726058898398921550225594364174377764498011849360820127795518269989921893536854509516309288230631811052270093010063807681398269282702782686406670413829548672578274732506492511148995609591560334368407919388347864135441293126550895258241087706677637115543131872292813017318993026755358358880343242483082294390676285696615687577792418075323646041458165164614311724818941204120713256067167855165355387607488905124743021016156760715948772864980102831922959972288796636231559780346666490599510789268822840373251624653584794794381004642652772698060240004679572798642246009306653348164938492283429443677441037662005670320716267396642074531594299815069667936611186707676736653534784152984401141264711883960202095466589355917863964986038178372588743119193154256016076184079595132906411392009924560763651603055475007169040083595923499893993146601394612982588492604087653154721405885789169557087770050790279893293047403178168226011912250268448580850368182741240845906735157040675406457002698903913829862287379677860660305194376332464982190650276961650261845316902973490803500310373632307234209722328593944290197296650045414683240302943470498453755392670809389614943444414157160389348001739669649963131565084375996314952179356211191528439404913873371526334991841907720737147072606260561094819614600317167500841572300660036621444984944597007360133696933212487693233591863367751711780373519010522870743073255394482163596234048444253866191308787805602222517369070549606999516065120078575117668882945077640014578415010835885687106402669036712103950944478221465618963421392865308256720206319071810073281265828148431336360653905247158174745520242504774356630836430835095955102935158484681225948020805180629539517449203590642646579393836311656859119262480549711838342510964804209004394291620019259356161685065431272219285843471178209224890027102894926233437925797665879578378396885376671719388205826167329535188208608827622188422021808959301236143250024812820450077881742733566462348687657559330125164022840298227557132619125995975331260752653004080722394308047268631415257607375231963158724255257215669719123859806238786183356379781196064348688580976943899654066729081190544260993976884446867385206761440639186687676539903945481314794836204800315893783723659270187528202948963383952712718878534900116132727752657183371415328592228812436538173762566200780275796727827568258842609133424548971315917116353721155403599499158046867563289918838147644894453474388862574597842517288114747987495171264193377728204762617030246744856989753450562481252813151540129934193509759346634388109507780788257697793123350740571602560874355877243360295070077153317287403314120992125306759333139664148700694503686181090092991963883020191781029291627949009043381651811235357788204968977803287758434347657164402305060227347332493120925404711484070915381302022711180728079286481466371010246101701796425214204109972614323771963584875577543361098193313709740878955360126930349138808075871892665525277610003856120525927433215035657983398570843450642917829236828467137076997449236058538876108189969690058125321792030216081688106636907037823287515598479605363212620906157485769973717743120952834234453369173646263122976664123002563285371511067788875884873989184831880762945666234221897106702479866487464569842874576395943100329451031720589614255132207255915075497391445757989383000091063423073438280346938357642963739572149687185143091421085719650716880324201761667014816606843751947259080316125596470383811944845143349440055758400820271120892676002107876439115484680115403064561327721970830630524174007388373916359065282074712842926468518054436431615404910463625483603076810045546997862879942177158003463422867053508784420277988516902264744496838012223617373198772284855429374129030428471688504294008077990637279224029998717729098451662910017661430448901267685876267629225288316273212589228640364083258844940120315146019139593300363786525696743945063141461778726180810842647261981767219463660655974038352064479000877458251990403893541329002654862615747598554092003884305628984866882762663648041744383254325999615443796313148016497752407164040232033820949731674476758043828579986298640091543021064035498537401412788163557833017588849705697263179696962153640446772916110474391477117287238266945257791808445386345727126208685842178750836283984445583862595509119526349590494028988437765909390477241262344354741629875035453985149499307931624755403089887077763306894524593661921206294195004443700193349442792756314769295600179497987217060975994741724067498504668640187067119102036230114397199189219330424739966908583875085537958384280560677330366272313328544551419464744125383753329590987044787603546422258958616538423175843553678238236755615182053467086266029769201329133338126119344375359847128928704123644250782658715901234376706250421724035587164734226892724543636390855380999972031499955982921629109327935569270132978168646887726660980228944407259890869358927917332422145187266364556175374815821494694674958912495323588624262733184576948026809034920095675141242631839883478202706899851302563084965470063380868438386947918213255329410032725353922333866739714357360989834672630821247880858600740140581597876664144783994711298127645117844580459145508149910485897264336759768103755812959907053335822182859463172665147130651074083189904104483224407425243773473127008629190204734514657940333664682402482003894519077129755328612744366930249377084011135964337370941889523697375404489394373072273720915632366228977096385961139308067199169955153303880326562485483150790725542934622929569308864103505492763117989642981548447334157040064769978074742579830103979699869264342899866424146118236218518745299702438172245012992547495023503387129827080342145422775040179743085535438103810090913474117637990466799254403279851802485771354871027573419644512707578407422252511147141957402728929721453901284098182417508396666806281830813188567194605800987364020889598371364623299475259278954767945469420174337204597327610149197051844379488670282380928520904167097658121046704361980477042879058181719804543403739120800348802756569163764233340052990018731048690401245984281815733764984592894159063407456223712714688955901853138258556256975185161638794061932900779524549592972993468378887844603474832335487262683214103921877527327917060405426186930005354716917775836216716105954264389908195351232187773230823506344646999224101868996492666889263509931454946613010599581161015186945113960302169717224548248426343005405651775706021619450464447663215136464067801170280153184770839817659057734139134505927704064874614410908624576233129320343002859790829706099858251173894129058680316452892445108144521989119132422984584964717775391526493602767229810356420217621379922195506245345196742070035783294028584237630320374043858703624563634180923304053137809600162433929608542731499128513471428732767973040137687647951491535564720721010012028163339205664431643617100950607477828962313504032070815575016250812596467909528071782294461490378397720365557809347493774069511790672529889556413404041631269090684724247358507832953183050416923012485213102480580300492569688012844107757228603735426391481251265653118180931458165098251682844541648646406183047589247880800739468713717876274419355555041289354855016997772341971980977393588957977301534300361301882367797333709924343943720775904467108846385178579336185459895250385620395967060764801944799885964228928356564016728838952631104321348112792973406711462724054928133263385468167868973686504860240763591250362113418783298109340350698619031704153246137111176910954433693745760788843196166655218736968130945452101638221384387333405048341955095170486319243366314028323141443621760469826509701846487687001046467215927706736975728839423122641228466205328578020046692704883204162191081161215321293788913334660926883153552069580256648320928003320334678484557504565970667887106184333118438606865118215198933438884297254211901521508685710736045528915083144019002867304526734561296555555187192417319365461580626876731406865449846591063778522148484323784455444990719197658997105612675095500917343652981460481943871444352456204771764657322346006049663890122618666052156230861912613847043775393454746762485479460223805832375146212923171276670780841355040939768838511854294951277309408168230062280930712511333928910668348529217106176790012657493310271749352035120284318394324749200764680937550409357868779609864942822985070599006565462532883921424824258800579983647733726840088835681285363473847822362869639601140762798629822564260268088789473655484271547244984153595558443248003678333578947469856793211368525773536341127932501027485738131057735886805603490086093571821062450989294991383840502887449763923341644110993328558201900546302011036675214241889295709496991910652593087068890149542630356279930324443567324694962780079988298842763882862273305090435391423840741677564736908514310389511825602051996481953230206853472528505089314588863188499206968687081121759227777809078596767056832491656658616786260143372456639082057703154697145282102264900163789560873725300555986675095851727616624846472160530911086950796084798976349875078678322261947643702030365114180056537977717286740619205277368130427648656488903820442178657535755737737415748043208900207083966938203158419208097458731681211133833283473339246192335449832093658690727989441436895896085725330061281418108991165489647354339482798781634318330168079151295051265150270499137756236154077093890697957071313518301388411520056306455904731593081816287963966130158476131163004459928366066470431422698188442181589816652710342872824096013786617602353731000103172795170992514283089501413994398553829801422157587186766959299702169170264017099254682981843851140848164841706341658116968116951508407132491056685992702356337545484382417018447316912280770260732591088807341584046914928079920986754578582764970095480801128711071856728902925840658592432639290910687302725757273579224335309979898825756086915596613960820373408651723921251090762734961288021902037735750629076568571540980578696841426478717077312819406451883135740249273816845997896455630490517163520622149991234710437737148184203026604212420508647765398708457486221098018295089654538166383139661293999458438684809165179479133253043079469268195504676360976118171484045661784030488770760447926039887351273556254882280790062289955576978436291339151382654091203979494862663132143618571427222123079703960977441385938506480505869229444490276922164866180229817664338977654140194656957940762922151604836515060694619258224707300317291985165052318373735516525944437969450355735842969106493688278021061350705234961374560630305455131917613901630582495227147401517610487468735276565733090104032048572798891350715849012529239580212363771698369657529610914673393208285764307172195822501561102017509903280858374448947131157320599942401772099469293456859096346589450975607615574576474140973397207257793289840269424127720676584954869770637286755812482145319196610538122869888388066495647445115360640511410909697906840733382806236188712384289052904302295540623160815817047075868437535069613125302899397958216501597193845714326677937054608225387392262348068827653293844789466138924316455046169020858642399632984833604707471582277954265696652403225417335729907079522029064054240112653259270024228897505868600353865196151470366600898290502513104520819943596848369140602020998097015692888707090213896781727197489415272661475144441208914653439091622094523315208923947970047650251310372404602763698701549274722768158020322056370258798150092360131956163099957397836311114135090650754398977394153343061566843854948388408445621014541830121884496633238411701250056718080458753314924962690082870269843759862415464818809215827269546851248440332917617297422315425583544933399108481128723403647664006628914686713141068572687149299521938637134833014985150477919720575329918887917705093788105835626125315792303886286155354835160227792977838358784501119556357799817885127033252181513108392922130060893217986215899813518783705984604617643113668527346774560443828188951923104489086334853875168662469836197842244082311338622707741943760917609290281829474495513454130588590952177642215807845966291574119333828469186158933170742561498923407464090832175213797552482847082927033194763558137094911348443828503199685309819056791652182272285809517196557361584869499045901664403813526495811570770345924079639493094315198874631818743467099027461802717340931043494484371345334828833465849982065960033035967331260664988330503933565596792390986837804293962900053971014778158761578747587709194973006222422779481263056776458752475238328976063903121977120830930277274605836876557504660637578226862337592566300638465373358250229265882961793522819166683630811783438839726360673723829880220671466303985576722594066533288773798711817920939370890153601296950338604365701585158201065190080973899744820020836883539145286669500844416478982924230013811118621148651745490578093675107314262589252023898747070306782234646114042835026078505863366780236721301184122945335629414524200564432888808641731545769096487247115334977062259169467492223524676265014689327186554726827863548857253855847679428658550874033661875118548287440300395867248902835317601477254417750969514502363780225406872192947797903602777058934250227773853848797777319605155186770852401449823772953476656337677540646912382148140657105806101256287063720628205307638415814927181986592775423119898432284632826818671863401657852301049327690257034695980293280512610699777534805511808363173318410706816506295728905436273354108869490774367233386267140016482825532393853792519426565166678540533401786769136447302018764357039108372885524212746448961011122668186545599747282419100676515885916308980935434083108793796880729300634438206915290520385249069056695901615106383187308244008496379815068189538787094673734068301673300205989638422493530109854169938331506470493038911157589119122353741709424701588397780035790109493334894890601030007474161633083615170622439333087709066545798650522029610541172483785821002088941373572217362461945899135840680131207790101578175211714020538120534062151030708494278044785304450334531524913023990989509172033014313268834837041834098079123957435954235044708874408016957536309088543189866521943191094083892726269912324292190355311079638738058739001626052414732023389792769751467814147919782697323807916382862326989157094020054778697016434646867741494297411609606060646254909806962119844500833258350877355190444611210435948672890220317072618899380328384959326568076455058847805355275720789175861886831520655395016034467852037175105688936709678810974225573796424353325781871024750917335771385553566132576520134320365205496441511108501150413272792601299696287479824315135779521739016626407474682327746755677058667533899067772560182666142789115261968478457734049672674121875257991775158698205772779694976869100688526238364228470616217593517672701005937758735371023463173563282308927761890669306474839670983043507903647579166576640699151843715170477007355646404435762079485538262226593371789606357824224122747819733875137468665932394683331088265889785370773451210354858105086944309982375708519959117641311353459157833290944485964485409337740724289663979410148816079455678559198318075194311703527919936868404064680629491052513838625151625196689143109946280495740638702441012964771979784680270330514280078987117160666930168095460347959920300331502375054940098552992822354898716222183430812940601378052009826104909209070488618370076779791239284438060494629299831634693725294728962351221425283566480910298198309788768698718898200432109242685109970958521156791248213107799614867147979969467866929467277697997205687978868225922260476037498632372194081431361379777594617639927299236978010564802803388349008581819803582960088458719021802558704399617830800518060912953573916250288988461738127811970757938172262383948970143660666681159672664478226393104785326201480972554393967772294608850868595547852997777677401556490561980416661521356557231709171756195238776323113190064135327823052495359096037794194295371745097084318773609491244301634746304739985589594642903557971225044605413553704103156185223639115450680322547859154662911855603523616430069099267951210133649209627628451280865983573424490527704960311294442362742912829431588915881148206283376707370173331264158403690402177884257040597969361913065248415436805205769629231504525796706741059817759501399805202588069181734116759797517748163673561159702958719187721315674047254266406623838461323137504078019765900754120433973970678392255849070771672125094387473784408440975329650412792892233812005048159309978233412617947420305603945684921521841029107527669089033473262505166306719277444903005823927037134275855879153083881072068751066445870081409844858139897525927708102392125345870872785632061991313640548968651417902151305992952618634363178657741211213073017146454173855460122934329933215968949004630459032092231824986984296744679070125323132814569040078113719980260229717992654111857181814421666348992386495760085251939502302305020612711609865663360267874027025340351308579308114861181049083117165146975583338863261809656684910969580035946284464441188951268948261446363424561692395375393563908359395787486006987938292507315797648866224057873061097820038958027320928057919376854785517186306677363361855457194420957819059897589740083934526992705282040559181945890313551960132307317071429303052063034858594124299593398019161986257737477235119973764462422114108739220958885633263422176630498160681923039178891898420940859836809105233178994949662788498769325257423930916073262591309253966589248978440925122468906883540804161768362414820166407729313006050122947126791653328609133298247971181442075508882929808929107934844588984788070401221033271574696071968496521558129511353050173283731363805275743657704353851255336386294164988121268252910674790788145467601480460792684253829781608744711854660768952768836997815920253067472042230641913035654807164915255996709828981221607474542829406461619815376726164970125591709795185208237875265866360160919223055226036623334275806156860938119885745567938244224642119711129608947792123618203015311210857411757735843891985701268137825907503910714567727442991921138213124016020160538055562644000674936154586265753956914299852236769570755428297303238738225540886061894993800712979694804871389428663576812403547496895318795004522800954582322734952092232762490499112260695116211128576904654386764449251541562462568714993881359367747007321880182587522627464670839594549075084879926604694250503621985454212724525008957117013954553153005590332504606214221092513489258841951278695941818398495779426375348728739889702727218413109080011198882099512304229071021859582089770409098794621570542207303536170213962601948030302014379762422635196723538615737759143027206499495159740833750510238037373717694346689184803707168375371687269666707825433907776940947571230204562300555490758081264071124444468813416360861211264473249027327459921009886722915832408710670850556439675921778268351493905770492430778936875881462080597445161526403024522478842499626324243998620368532635204220078419585592171337571217125124793287175713973016368818824363531369128167051478089731262447845259581642305684194688628313439005849992697815872125064375127964371014672945305301509082096837760495121988523233064141799191468692737328155256471400911192321985931395205471394007723821852907545331851069709959554694611057209542383190617825122746060053107408426022608639676491974637198757573291162381831680660439497451112991781982974505139644870986592962256708972473494135298921818563844845726177134611180273161220737685028092496717113108805894644450377011220635461617506042495896347915507162092554827409742014860933805578938693474095521148841500021661891247144416024659662480144816328706561801470315538029842285162701896034408384141524725645139466486860338950302767441062334736198154089563536767981968050920839553777648436937114545415078694163902234110547845712248521839489232856544891911726429646936344111475508619441054170991040950120302846114438303529923648793142445977965586851761999175355396206546694007246981320474408880932795637518654899219994561770863416995255071550176417451296091743952215650394296488173089311144900787677659263432886540879961252438882606588555896773321045780883207403605405372850920303081978967519110135218249715513295469114394748792848560847964930972623990138106878373424325969690379289671732917206662106977765841591382609984687730746441776138926115081457562337038534334750523379511627346289508444271453105594481689263478655653580099009738655932311804475323672905532052147265408888484900490743043558927701609376434219892938673828588427358316662067600470936496255047961297878708821761991328983301840438718576260122258275376087238888670059282104724477559069234840660798893152159026344478251330630988119724448793745767848743672022708307696349136952132599328105814085079631870796608278744398981993747997869557941592798326899812178967120213133407755665569953485923176825722126111838148709833422882058027942602936926390014040050761014528627660708384118926417312245216411642824268942220946387788628663379977049816232938499038346804723348716529609494957433943866265317936501470263569942396200185638893074365733064559539736107830048830386096289084810050275206464799300202099661568737021570814896707161335708325445592954966509284951384989141397743850856654735128015672344683816515479709459065234237368939157106175577346062499631301323113310699549659561858856963022192107902393212104097139344676577682749231922975012360361341611330147874968849994189325711521216437369249952745906336093935950360162707707097356331014353429446373094885567443721951384718764698852370839507587584448928445591035273285071165260406687414298094432599364354630390461019192150818524641195829480994868996521879597138666973129508286748210680515193649170281171257575547716564268336239495645151569432659195447514083087379294264208475320481692523214983508334566652323385943206549745519575852058659100980777547210705569619729690523700334471202706178298150110163612073955144450560170838253512027888801462631643084164874126897635668306408029769708579912981333252667340979128784129985475547453653479794939494831860551120939816741728916013312612118255034860868006579496018629435144228252955178066887695701787611670361808124108187803402594727936714645149199152141110633286763587321459538283057709994139078862408260336592774031564209384262686029524243985616880531628969836810496737342048965951668267554820222131905676080402400361805030201407865558992274834861190907697055982215945658583782666823732434869195792552430814335215835325489736984944668170507916199467534567106757134685095155027442734478125313803747277250177436611127439320271464883649811562288802872100638915779880625382584980800168054281741528425770154037700185916862705176225706399830241067740306903504652925698962406365311910154987451674482929125970965395973529731804630339975803623557534340680942201821299925109744142346500665664951172649614056687259761078859271279168516708849107844515461529998910581779531286789683974172763412617970990811398403672747303559368643035263012830892953051290844589026746161378802827384506340538003765544331727942505489891987943043991503342375946483368440126104300774478414972891724243218301047914398446797950569323200349672297171634439768079815622253384100669707020237686805568607748892168223720648965825063942686190662246962654657776424776405436575661891216308467057581379467357228688811699712448028097007285309945864332294639649386994719105247796298531254516201918612231865900777637779442591465930966745386168146746172997958412078862943109318683446833764895822998344497836535403868488292426649548181768013935634965589210889300179553139308790785391652380115930178667852605498939418069977477570450820767052811338675420046480810307665504743695761571304863486506979693846678707146263229985173889460296132364756718705518466068281610464858547574465481569605812374354798425863832456877829007558897994095386288803411706362462637273969449902974981376567194820622035814951924169248237417910665531150764549766602005920791297450149086671715095707767353513879234412958977897019103621057599747185916006452203670977768388446153599341502522032731897013584760649614397394622029976118015045513442123478542838767065657633840440524632693635109928986146000412421990456057583416132929372783286426433443581947182935026152281184813085802449652588759872606914878390667131240253525242564455699333968780227450738398608375885204386022951451469117754749905903480202738910570405714967975868926302843019146830216835879519467167758376150686208208828877163924614898216444592291777012637817581760493711408822987600104175224200741152060826246254509246257935034260714300904933294945780874921808424400116048154409571980106582293923502676365747130568510538244179496635798440605680654272191250073716754659587234715401934585245006064446853861427537678239388597453645765096036451678360137966716460884398647907877352421195440559468163234076111220078230107148209119297912505045885576585858391315915775234608665772074285341924907696372105960951651616956905420854477375966493004348825756397793226414711049964495162904004846008268157381730627565454093932247998822115473392398749176831074667861185359108711452134057529999422635868953663470441860017400785513927292603819606026166953144064147537440765824923529152346103020808130343058288719409871776775919059040212163974447387182419213126211864976759574056873423062009430638729614749086937249264506807703477958002903830921733606741763136265075259718993673221650356155314132874029877428946728019758408602235827251401326410623015494639784397102185385222206477954227987780428816278836062178615572745038371428816695953085251151884100781116858126774873026592770600714558532277210341276763751786954837175008194237078504128130344033612725476791879850799315957262213647717199432249217804471947547490155584605734853910246112248416175403361937363190690449159065517451266873123841482501563427956762740086931963007806499645570579058251510426027995342491365440946487839194983769710390327614099303320867644100435679255943532425381285448043966408548282892667196332599948439545941000281037184874148843173939957784549670076405599778868876309508643853669613446998733474197588419418802450629689749287765259048224543262689169754446771290306107627449188733546117200894932647995274714648887992344656116811143206672892909979505850582237835683830947341551926609184999174898279825522396162330137983782558510419175240994133946195128831978431150549993684544041319959047917938425482825043820993599480284488277099650629907899449191724602639546259516503444212638082383566965380196337071110214320111244217725740418384736900109480089014094738336121729683043357521438211898226276867387495838268557404540269263265303484107316543826999686023472387190469081262261232057456351136190899810849067819252065251926182481580824843704966446439237843253546710623478023635341775921578610822292504460556460110227784375351909551539629747752903251484666979450928701572257482190277335399597227694703723235503532096139087780862881762491330764532293858160646740567427119712166487281688529249855111181098791674200600893615465474925709434899448029673608126383279277599377564266365721788478488571492570771250506566052645851768994262837673098328179226292230741389156292932416605448240973292922554739620544963127840648460948204020967612501153911104300308068382077527405621810964252649311093228965679676684026171927159548917875561322460563367851494151460062546750505912737288247043654267111086243025328036151923453831001130907717910010404716717705629367573710699179951354272733491132104517181929258395704255221162895781361537449222165890241148396962094639224901819143905348330418885465787789013272516489204621786555104594858133374895729771861356207071344153624243630344254029856621294482526655229316309303477613884417305202019552132709500675756216311522881149756308805791001586421680923963591288514357615470735749258979865038575035814764073206935679997135005041530739340311140740889127803741293875450982546773299553369391201362176432038908497456239036512186460200285647769147132441312321597247790597267106749907292394916315020706621204596153980675159205058033392207333340696632111807039615197032036998954865421933628657772477557170728189303884503607746843786343316728956018942784946533900161300171114367249549116162960275479319910184181301918978623228905425614931764292188255511102686909381955181989705854477788324362569476938250283893190699479372574710487683069621808924537382003841517626632072859724388447115535682742686369693548407636207880951058890297958408692034972066489742058796883152045813529920899323704953035731181759886407171356076651849303715056781041238914250057909041370272997258906093017132448309490397511602946369873594196610092217590181350061576349378982203586555889814484524404419497325324641105590061349851368592880061450737908357011754938885794342182681628627657493254240149577325338444987720072041403382818897337595953078080447427024580793290626811823111594463116808779611326110760232107104265970729672110210674673244653175574300067282465290640726494215493870849613137122143463694500767310339153410634624984991972257746199625406445986587562793167653351366855265568878622494684695558384336296910529498834346098172026876243948193688075507852956880376779155791913444338645133449513081549223890317111457037244647771983401071780273185063243103699850676227298109255608508980027701705607296587911970205241568444280377020542462143822719407762424268624710865279583300901179017973509364617148738346299468361893908232871472852105329034578927893873203519018812341848391531996837275317285308261973963869764302938657044817306604274466351221591368917634357267038133998536200820046838453891581163184523849508579722533668582446086120729163051181156740318794407890766164164976700545825942984582119829025000963608428106739801387274015232473561234927270372901728311871479590039782481338640412590869915056530111407201035742073551619202752128400579615489240737792631057867643171502381590559509506679678502347875200944288658073523285778467903687033179713017475043457851838860070869662207497328692621768295987295875670462669138455936692511581104412192948220204432944659551072367499985356311400248104007374795809833022269371994713939212808784242079605242785299288477383969475592429335086560181772541276825952321456406422748313910902572532761316952406552224206438169285570413225533878977936308882370418736439619462201742596505894383830393643228947582257521154817493142267320620541270791318498564699664201522368256004215979161672241911710352294628082753407700473306895684229662681578938425809931895006960633859206855399252918665670935995452879902052816337539087744064316894132412761566194158859558095859425758283226688033631478972347416397874485727774403797463564513161180392704085964254198342350563476698410531690103442361453812385205128384956303296691827349292681013716026476049911578131214010288609211055708879447318948203923564067972170487760138525401021667360560304233570417515704262704820795318068103083543255114526339896470397170885260906248047829027287988220397641118727360582360399289207683722762063128991335622082790773488400877422725061174966391118833832671660297064294716288661756897674616144172154652302175347732396555839273518082540793725483009486367906865429537335268341191285492260178790017424587848953861327656500528316688759101053233504081232950309503513963664359979929725288803295283301125620970289022276895177381848541052001267357193487024087910366821290159888231282960641414232538548194136281278444158702330547356874569662802479620477361046043612582997965735400503242344282713644868224590313925825355357327562315225968566399757964730347780634668238194233789854260536566570666292212750434074912859619067224562479736315221352121214527529092314733421010097179925748265747088179949407233702385398369104143693353824333611277431251751484923077525627482913922144149955137485684252005754085658060072093109616287735159405466595410305285892761306316292851441424676146195157466208960183047931248718836367639507918324919475723536579298911733824931354357577217635634578494905315770058405299555142862674738451935585961342904089203844101766021436457392251640515037413145093611904359774272212083080207982377164178013873300693877486347701131334472856127983395459984245156651093816324563662395379793833746705516333931153385907109914470575482939563149953503294419434318307149574550826016152815333064500331575521225441929354403148941179471119786662279108607064539217662986218045942584979138921616552992122957871884492695333202172062054343815814022054761714982263406672025767987896812935801651341107576216384229928641092846051742562544064619841070990823437684553141720001637107335883161250930860922143031189180035189611941174832408320421766678837691273728550581148842293348424745935860372164473389039271829333622844116962831798040510480950240461714802936635868098799646184839629007205958719960477664510377373557891544188674552676302289331283468369284397328574455027875092632693535685402629827830629807243811801166950457260756009914331048279753308718928479939086367135622443211306868035787956129840279221574256572423990300054687621108219925294388241818490048076864679841398504765219126002974430070476738992954061615892550617917563292429779581900448330360496739637689201021626971464336737792420602773635066810155301838294030502799284444879256304996472399051925533097268880421703146062318374776745509715605143189472341278290848588286874310678313100508994580933657366098974909607767748933666662797545698214272275330906363916212857299412628884931382370333351621693937002917810963866519368792262971454049292353132582613979997820125072777861590625705582835045837871289284438267623574526288450769550696283215000471682657289170620198239850166837960117278885217819435966928617877338546003382755716268549265547626549375998848564381767669535067286156523176608622125632558682248849717431841603080057503431147886901806190328710198246546870054572027696668399834118791993096526718356260311670499149454710232739707060841480739630909449451907421597422059785340707362071401427631412877796420959897778984749725310626476675520631631244394306967057070059928553105751930091889459146400758146816033611819350369720888709255320118287075967602781591599204522998397673202015796829778387638386825715674859039217231612885353511439681594576907562397793391415954498714331719391251504681077358436539589032274005176423268802109777320513441084961602459566282398037435237416969921915982311928372723364079855169700619184102460402434588068777015469945913669527761495102711851437785774805500739291896775341399340946142401561433685725518611666453635069456166815434755833739093809910361181821534070612972212952162968228594813585212523171245870030385991527098017192334155385491781706387800548523908710185252481138506750947935002687131639111533247372952928969682596587168194984366118421104563241097095445815333643263851367741654597235149217026141765775851507280762813765127265798699842245600588895497495523411665734271974478393507581252789443167677952126884264867428360125170312395463272149033649353399748034699919836129604519728600147765459533314490280830816941969892434506583239504059383105833785247026791415061800114906568806563035989364717724417779227504705104312269367859300149719932127210187976443767702579254561591809530654690883923803282286248341128783650263683131902068495594298711808948584988073229456776324720468653004424634371753504382561758095263212748594258202764868600429316533872016520056571405200597767395664408059462779418630712782883534425783708377905879817618838790930998233305840274388458912507114423600421821292870936962577629607228838582761017078817121434958007359316235642156433066439665518525922678018507939759378284202451339470111099269107540232248138990609410519222899895256373108239554254746033664261677696651428882466165834291002316143809145620475730122947707716460414607418546067810775420511115827133547569275822672594807788532423381553215549668576157448651914014929733802734627538440761118345356201469700231891800585403362311719127450048919106737140092028216154505078470712743402170894602797357105495252824940003881557676757159710038850778830866481190372781663794317623179295894694156108573777494054728898692615497953973967078810831187701034721557433104637673672264677719131245259881604086162001756490607706259287455238163915447162882215068553499063963653220614884139714995564890578729224310396031526841096977078734129281786289892187642106014142584208439577041607559811701683432816784937879944783735481485864031689388756051265156948401639546081240135454778964346647239837204628168883692904286605556203122288666368601520417315084271001069557704237023498443942868633785256819093601223781681649403205553508497864268699395096963610319323135088947325233629902202830806931882977684077390876047353423074442934643753532683501270441328997985008421204321880526382945709779110127476236186171978552293399713144566828664380195099221846162733010551974269949738128033683467055400370966929510023063649228131589893196601564535520168847322488473364783497870636956277837316874456282938351586220963952615023345344267774858320830812124604756935859790194121263543980539772091976063621177908043128087428641537738141560810835535562877267426364594375890124760519099507239306634702676829003399857346052042795602920713117415161165241366823407827755830959924019319161693216504832696276358010979593051167213880899042997812848955101875963690053588024362101496452953246202706144169684636418664369344835404449623903760309079024968854638784295254044313247984939207482947014489028882215986313991332400301341411549111671843608365795320248802671149155805784145638440237383668666530545532583147233816475246201801938189651586222819165001117172103027450530358347366215588724026943271515197968416744555956389012072510248992734562104332977731561250900630825493136862761757167991528149003987105743220480579523574495997711679012719509058745216240255311221335083780664023152539872748026956635920827433159922410851919889176128702682065450833978335217484056293284866759253336171818370988999529051459582926373187521792139427125968208538676810091160437549792108141229527950677901741786615939975235162686225392245362008495643710760360312555994415798481435605700622593470678949508988441668553656533657536167724163908920201885042618951940265358489079320973583178400477719500522208922947452130721969808535353515202309796882007389918640167458696703871294188442119775271362586717446957961399004814231963934870753219220931606565201816981464215192920207470485132378760985606941256376394706729593847703527376127835311934444683480139646599781202639564083079494311665936890790127666896160466393522143593402598144442179064703052349032479854742862790046495456874339227811484231790226933255151017324862894579836375735630947532060345573493335814168716153396136320011071741657349071649147040770512295258466242594556823367582512018303461155997167839142075042126321058732233553349991618625436987332861631076565319306992043292295369874713254634382622137907003065596825861084284319212701511770567235029780630267724285346737785259652403633480890398481011767927993873399134802186668697499358489539136619820832349540041337300084039171740409768301589226792381044984281474939957874866999527560792431186609539446327875681502266409293874712700944278376219502557306212643925804219297067514707191635591461037319552447802128228032647458909783099258117588012174935667963009407341211145192602674797501558986525225937369849908658941139538224201814769946169969091397098868999877210890723089343510865216501028801567905751578676273271116908413116763644470531817962188220106293285213288457568431887698027529751604499386308676413489057340707691718123059675536433616973250369386296758747517894600514601321448641942592002602746123500903241393231498421263225773060715733537659299603631273920778690417694938806960811278846390291415738751076658195212968388443841577715925512463795017211873475375096433369107519565441741707486588964698894459487106544952003768004592780397303817227071529710041639589714575699923606405387246801621214319509005593672144595273330336418393934313706712027862653433430692432587166151559515914894141765758220107640616451583272524410848184825200033812637722294808942874357299076177745146049264798574622464642142232293188752056109454053315800068632014220156630434266886609928423610056145040101694437338244311793663034454532946203804268306665298693618764267892071763351772789895766001792700503770765075000960192460834941545707201915247599427021874245290065495277476160828672243692887604913235807203726553432984013531091993029704329412160033383925136965407537001146395796396469451855836309327324839613288885523720574648123737198607972796738251969847357108092266639029415101948109093316839337866409837624104432560403979867614384673814481063073876783239107303912568589265843670406698257466430761472401741864298336239084708088708311792802201800511735168466072525588390010634780295865947082916066706642851686202282214149631746594996330954519164412807573177886282981243680954532205735968709349561095916908253348188880089173443916460997020547083930644945854317523608257814780446762178720798163922490535027386589119370755782494361474487532526268993987237799211335723858507028637369228278256952621818914266381656717466560665833365690248337752379058746944954503567670249505725471987685107573280206195200506359769763749300739167576855723185875270298198549560794508943423765764878700559829022673630158900976386568167263600056142870999453158295298797674931523638922880278112118001131563822505094863962631939893985802178342844538030493605720423003054375195195126244610096907192786065642111687942063718755667976896484739397242326294779264518163148141262215478630770762808587788817603606827957256383936281544127944792259948186387243530111715692519250304141242275651385129114961320269754291127699304786119329286457840648797761107314899297975752352119903781000595464672712632493620558982562816714144698080309237633431257376660896279891353883738616282763922158199178947718334145935321899280388309729720983621948374108150488499293879106129303031971172097843752910785209828833385123002221005037305318483671852116590133019240031063914760076891056859437727006974597588193839582879662857543729022775418938569284174526700487943314053707312799292078190268963740083108878486920209228833676981066744436645065671359360964040834553064348016088660786122368445866279372954520059688019313839590796572128215515011532839328176321214105641705846365912889660430725314606684463084303735543007300511380520981664232847107507843761839828921367771091221701799823368767872129658245051175675394257852392879427848559857236635437661137421867933279125051972908125669403946252344251985114423336539792711571688298989661507474632489619147021343934706088312078298752901588680441236467327590453300783648155371042195227673641029217484782023710851008347000112813743353425400606928124253297950792029600405503015960803728779721379799401002820630295935762622435789057230970769708914653300935359113040878101035613497224357139060667383243964850101890588596008199265573474668672448239980189494637617290639981371879275999948281413814097150686993619507468550183582294064123225213570259326688172954886405971994379247589910050371062260934648647340417121128170053381747142001923448337052406927031269284654006154596218117984644637391491352156805897098107737456933647288980593850593059070817900079846711952120608157105283543672221775624481007659832245118398656981969215418372650928198453567395123222973356885543930956751015891258541957034338417424049653925889089770994777707918581227483298836923097908656862331120517263060811958084311578567019639258399218006312990903060320015983725713512413741319024834050531469790483994170380966481134046259182741628212222686114336101846141036544987344306408166099837611571398569438608259349469648999878193400354635445968547660426147299383683785000788905575764286522238891631187325167613509656609621837031124134548801678341348943616081765681338243281721608067723159978152279094236235206948022100970384293286730556651283088650171773406739008955477685843763420862338111349769674868092643075722955546644437889842576302391016779923051714338482913311174686988433611599763156794824595204821715390673920782797963980157641688774406986531982583417777035248349933545722142872684003161712590173418617890047106096750957125443724087807284825747717792202510474712026221028745749774622216736318794611559688190435822794897809000852935881564620368791099774012591478619451203321400934908904101342013641811271240909571235319555549756759501062956178620155220418795811961570402781594094717229600638263707120401661606337246334321820567736946998537843485608981301762835461842114498323204760113380051229801313466502758857183429499531663786559537590869442141945470400557049018744444817728504982051333318347952278714884543532403413251133137301126366468010130227235270860763387814090786782890117555487971983387097244529152245065265336831719002162400057492291389089417867345280452130188232309742423929764645060803996869289409672206346666988391336525715635352050844478992836888734141824977432203805713585521993189560524393170592669664978427466475103617672051752115996918976149234765674857631459362437723431469476579675146434736767652488535962517281756183618100060725142835053046362579107586308202295479411256712318109044781373342487767711793567692750203899172453745576174683708689967325513341552580908747498327405941724494726758723510235920273153557584225969938711682944041620570487311440304905929628013570369324759090477816800353500452683935301725392043104330877653129116280809298312464948812149284653298736341575241579187109545642190041986672021798556585866098499901745906813069138156308453973731370335616001155303768254294089099047340374060273372274840101348270854236409139849808364723117269405078939882503692129652656606267270804322516863495270765483753482462812835902508765799657222448328461794142394007937678179861668575610985879872854788785267315358312269628175395203242340776843251727993739957123157520316447988517649166766684861288959623464785869666746226806021077207779554084309393531518492410845064365953884998239785033956637806876352660068850923708344280425792438110616179821990454656100026184503956712076349571394660808042970011140113984829367421365211504576458083325384679880656907633216219196020987243097507161630641313427640952253934090184726255844452781923838806693756706786747028198965973278891284613520154360989030871084845887633354670297992247592348543311037223944037683360368686680101418282244329906530395188312669080837386342624269899838042188865711605306187219305212256020807288724806658070582009885289811032839279831909682770932060531575066339719138669164394365874411609653735395556253821673698395288836922382404020450903489307647834610838929838209457756571663164177112547137383356065143706589884861104309888934891990615578886316018858994880143517853357465148297812630315501700059655992999804508641676458561506158195689528601297365024961169113967912834018910453663412689612073395091263353212136671273055245338583197957327904832997844898095149081581413520373914571897506085188997798807041253513359578729163683598996050897300166292720505809028338968917410839531584185903995166222889531427377772573124936821552509792378591370940221308822268169218149880369781269032033647501918998367661500482615487481380024178676365411094120143546172030398246740951546018461535957071792831812153935495354783422448220362545578942966469231058337929194738607833683326644358933505402869409595501150779001440326550442786230008086813693113977182071635825397911247931536267763297236336062901872986565683897808302758600334214417055564648182318833831470084443437892073185305160951885946125031226412402798762091796924222307873798339665336522245817913301158403226356688937211627654083044611082192484520738793145605775059368003438169573469494972451683892771611048862265628481196477401855561368512158973884528773764118908329959357389350494225665231510127373001840748104443946175896609794508037451511405804011763348087412220094438266763386891478030430484234683137959896444813918254563947940064733598469843996441307860406329751603989033310248366620812936285970585401587170108315813892081890497792602760860560941520374853369302450394864509820180605377206827767212323237422038304745783478792982970928434832726235684831017779163327224119988054673366006620547619552110623369098099275072221378664479915496323771619340124307814122789794446269928607600162201182001427096402982402657691807028244189212939562350524940011392881135909871504803358789764914979943646322216259143058358366962004812217497862442732827896185966896617036661522291592769387181240265463690448361813255205070439011745154517568048246617158940184004742745575508082751343129890818359035171566337595496195754701849245084517030660686238121207165879716035309762951114729980577828229883944765794840868751987729077009291081404227671918841126467167115082252793256165408322853937918879129030035923971604525432940454656022826816810845862815602665625026704065847502482155544058281383286733357626874627572400540144715980728753335693165904621953924695297220788966320360113636832605117587473629799900807940849790356412985454031453478367271701438787912563544901488412513162818934352449179703414599453814607601042162964315521711469335164201702898644988563254719366959111025286110563870707495768887932921095077524958721107504201414834763094371221261994227679438796070125443237529504611554075792507112871740561001021133923092053319241406440935522361816903118284761494490948749938104131571014883478934638823116061398941602848749202118973291205845412455356605688166155274857649916056262042315030451465939508996043448878884095422821372225663545669525212769911804073571605624079811099639856441538114178992722302689840558758696942585319504785493066092654965477340873101315532401114083974373973504087713501675722296914419527377234953409918079652411992248999289370609423695541755496356197163191033568315804465654634462669032080064711050619324479079274063361747396246595535736217667976912675874202004959948128581309979068216140081104676285852484763149215205883828900749461251957989563533570216038316244331659548802540481428106000274539113544751085746005613475088700110762376185261375436906650451180267539572380681529428403627424563243317472626838399206558859837223148456884941126794520445693615570313411011301373223721490194640639353580100616353650057520096149406094806871779895673811353452898292573099624164099754881343447303575839692357178846822966727764347449533440902888618733737768512139315246991286384581320398169888134212551587601705679257778844158138393157264581145536930901404865014984991070492845635641293612519444926505808590558571198627885792211573807176487156741938425888249010083088628353800457226205269497637698437238355071357762200555750892529730553806754945219959739439191609771131881525433683708440582679049514180545437077954948702825713146064342066400493809043506904401459660213288143141415924050349274322467798738891338334247923232078987311847842260853142263944312940667031192406487725428156022027045522519029357081346028945193346832162681150195894816038776104003658344257507005702863443799457231160750724533621720711623272159328570856636324833607556754352830318765921525536789564448766912380255805798320084821830158596493767937641041794325121028903926316082211429915403456901630574776126291390535401242920894790896925002403312629708374615671327586972584049674740249017487956919040323501900262340147993764594123442003010968387168403369109711796610974493755846313840455824240049319382541548088065310602803286392249880655393250622545935618717696630701382342553426748291468094091512695711932487227924474598165659801603743853364882602545569073864490672197721055645747706725078983272297964245285764319029515147054337593880662731549740871806205225598539848195330570007888151781956967866827792454192865323834877456756084538355197081532446095356730839736098766138499889204889758300427516058694173505002648172144986577323068366425664941949765426848937882575390655412479568200160110441055951785952280891366235819166678490696719639205086043199258856170014429793290090858617838091558414519661477360783004791148858474387902652765307690908341805346009648273983736147160174970190297971809396422162983535183777532383531257292587816049033853015032945028626136270610672505057264588412684920639159602211005851125643070421486417233223761412438172763837768755831084635809865722169888288308413792836301651578156712625499492425173795971901355680122926505079740535026813669063969281379743226436801146893803200019481215545194185617411081877847078684357128369680895204206095692446097068041692826112866607176071874712580731192679399355902928139581158196362303409975111827895807308232368720475972433991516325570298177171593300687007895554830766462700208972814488518395101132070515259071659967305091621162456189199035673962017944289529218137828298175150554367904579411718739703729049638080334258279678977765145363452377099035448979042320819560139513277293100238379232185128264511758873118578627261787109390611739011522522012355303239696004710344769762294933026413280514012883672080585503855500053694055541935585466993147791863627113767406919312505795714627405243301865380069612358036228533722302972199806204315646346805253539609574258293919312904134669980976862078315844997560471831406379682007094313934682914162496720667508254802882990057973523369650242104718354439251633620239691108633285353051951158210763896368915360525208622197574302658776610763206340747495286911409758025141731742680169528920020325210080084094492587649706117228017532291174043626524990877436534014677637300573461962763802077859359309866020413082919828668490380838687702623513173007673431731624413189243818113779415726909248534496337305019718752393063800797805660423413884285413414325864754714228028962512768214639119398611956690943210944360324675009805180944861496723381045391464665720971517354187134104306805536769575770034233291077019970031720528203605420258752171793974607960528180809751111508902908310620212202844872591873550486685210399823951289096753831179313038175300044940030512631611998411983674121672722781237147634821131727425020759814393119787241048629762495597475139830868258392797345711001400509887238169904090252915942333995359683981376377266249160990003052675317471794953970690488284000349817554473891487031959838999088265381087121703652831686363333365815644285316456353107465892120756065271591492298613657904998337118372047723165170763431926696277741211383837271171527066365181911013732962957851969508108246721748144117466663000055484199375022498257247511529328945197976861012300164159229844610454825678514744816850197309339367301627120267336916859136169160616901927398545532071679490827190471554765743809754386555947894801606033410231422209174758059213489019477358839949734255208314603043548603438677482183629678108181019754112903797107857676391642356967947123678233931547392153888965965549998696111745868232231328899269399351620687498144047342583782761421018398782108906241193221953070064400437443422352890525416139471900626635977158207321860565510778301946726509140088022173943829940148471651602503989877161059286446813430840991151038881598521135757956557082094929623527548601446547669639422928813255310241907329150226932070545544615664065548033243616969906079417543236459295885180265602849154874215931572840578007390712503777126610106051084976419773180206221302875590764960362945957762642941213008206719179854610912178814238091908393833772703578101603554075699221254073518927990036286937567675884290578241801202155747456539538261650997750321126307842808900620180624225047154799851209963600110641339191192305753767704366004704699193365441288530019697124835223885516801142710258095068722576490562638458762564951807018746813235439244004803759554150095842446845997043874339183158535505835238444269009017810728306758906728340509508473462048196833183179977671441842542798020529062557090310293525765592714515144295398583623643753612286209282674992751099484873915714651719629736056755491796923629797622207701883276954546098395524268594650432052442413798004039706384399523767223049002719294893943883941607157118652833701006481306836521227048214233164652045239739868544147863153547847393226417235300688533800349832240045684431417537029023344363904930334239217614588081047582360242127481888562655160365384650095195401084633044835147067081820955304470309851099064606017546737487189044001140076739258494992414993304432356429838007657198296008123458528010967312705607496079088338770912008148285144520335942012738724438854615487649511211332529341128254334522047694876862158369576144157787694702590890289737257761745544846728119496919920983070457396296625309718823493211815981744575360954569970402902348029293637230215462619009242485346824674692109706907361352745503255560953022377356550662573627083777884934726865592537412437105098024731389105625103352854215584916045983065428984808737773256537093379848921958866440635334906935668030192411543867391727387384429687347166169142490629771617783592076428241225993546638645149825057750414152501420503975101931501634114815183436272118845419034475728897785989985222288209380124185657141225246718234225517936766722477135229175599001693256496652197520398911764975324957244614136069985622982742352182353340299964700492374395904505855722032728204493691943028337868452572336890233870140405121799011125345506914141070265333482080743943173643090026642556722600309958534864004081361719278215584920449149868437195107248416367650605244648999271708172068772832132379294494326455055346044403105402575245643558814336305362325941103037947961018713073756304397989496848110694606084590131771896420286879899262282406688062077891146577028899935772213775403984484831118228987818591965345230365804873632024227913360376079512224745272604896046167162652653586830961654392057161952663854430998187472128473507438157106991338171242902699991164310910145009126105892700047376921816115293968465015918194288261461733505278617613692743538630731932977456419111035710390107792794180284920938900268852379991811498871444003550221333402665691854319940595392179621469055690407976102578119195888861492438557961834526691095812587889466851107503060556193809706746344952972436135691232381120616261242025291248991419286375575878114345744059860457283047314200803392015636099582007652507501433014903775219530137166980458935912081183105604183974629048559235019978203769265939194458229934595278362879835983604657605276977671330753342200848352005393598187227467316834768858356763093359227314153209518298571865668480436301674768400069189467916370469933426381733566034361530799477820778012442917843231224064643171479246011083588610956622429685714980571368377152844182920084042419415155420348407941734673150604472838257609478958373366221149239685136679039842806451374734077462755895071075772426063401404432317642328544128899884849700487702775514368130272884985264308979640837500832849830212287479284955344811253999361810523771594246280178047237799435987436581548551516630756030414601252536931194015086143992292491637440122585738519509367526903041817872890207014362539811836683063556915088654329606457562963088493378375960229105282037547112253491152426302043993673477381859319943387321204585507019227939402843301701979613966934142372229138440202006948844459012532631228653099730321814768139008081188020355394736996162801341858017398964562442517765240353764629191206742519071863830679028403655586254826917442124513527595087962279240041369839550189478333811541550691816345275813876260854306769585273881525998317443491710438140808605178357795733142734042336429820039242421275377596499566676345399475361040434079830612244103734477870056579366726885030720361857440729026234997443587887340145007259108723245400545066344525711602562567191488391049899356349407148576106781667435773254392660399645446385548874646089570360563694824439603372985641852623862559916510510351910441461379952057479367669326649221437068055427365398404170057366292600443920366033129263655769864585960053410081868587091341339591195432614170935608664225501262084343595922109638428418876439120293643781834941682350148780390053995360124821474966608860802589276795133285882144482807156412329799571961362417786971619812636079886768481174590182703262904442842595626283737495236020362820287271553473558199163794136982954178919873125629378938001548272702691045615294233342621847081811702091378615929578906298804259016923695900464302892423249113937156428105878023101926861350762607526501056577586717411807430694629795103949868127492747509699182465834196428408554523043950862426170112046476381989242965776785231333402426548362610150661950334854190731767884912528260269911567710169402866529970195246050865378224286628386699935784973172863443306618485171345894222555009428424047614331883763525060381526952488644892322070346215164835039841650933200633524795445710906613357337764633674857804737424730592290005611586884161410542998978888152908261169729513245666729660350031404165681213998836766843145813098544323829575380257565849106492240666071265583580745115181099632416462153127421284368976746484410607492632753213414222582224386567538676036260316601273345756326463752251048498597810016998720821991492727344957022105194390638378940038465181564029131808722428878118456064269235498048689158499262239674006420695558145129875636262227297350310588490277525744847931754957388220219491391416826802692805323330811238127157994946405428590305898789178196454941084176373772224828372320349955466822257563292711319943755895290684747188443852654456336962172729453512637462670529122737128780453766395115541982004690433812982701682816598937996555352636842126515728580949918796610930044534523142267817556170751124914162510108358331206063374102908210971345306920818527204147331860628367687185299817314152241363072561800987687915755616475032480115382016053735778052890071791771492135443248427964031523900219196285679684923255100261723092529319320108930412844256355591104979714629238857575441413188084720003827467238832958299711337782013448838534540439685072676447406779115427610261247874236062370304832189600659371220922001254605526019430273245509956618704342668492326572814253009953168758560591217884988437693100127339473370852155001092190140242901002514826081686693872841088668662101923206487492758118618113139620430386849417092437073020613473519550861032468258469942833985707924590271463966673241300231886497006816011215010571621173231709102157107210524508313577961200845152125957932242469250146914637698709987059291710824176809343977574907670744933402160795873635518588037918977876020851976309433653686662283647753421830953003824936666869302565739993306150993589600295911772802619671432976972693183216257560052034107023378031704317653917115935889233044206101659657015562621479690071939331629848622520442905770982487060026294104459296812047854842055576991498876504134215188274704588553497984442367846174694809571319420480287274078046314279154528246151986117006036353589505712940405403810659030535499911299718476767001562907665443245142963024995376151653012919155138760887268512443112471441569764973637126232648423657911201538201386202296954348740859189645822806531599735015682606585623235860318403121152811089183988340439480250250293766999673469964842265353791323716775021917479616435547509245416218647627410180016889616081813459098119471661844506068757357090565811395739131467048951482045773600685052836006679023650045634864674951656997722391596954345715457940258258684551715004665105136547646430146474115561372927442171072875252395890276415728816500037578184306815129304400263052603879960295268746194266173396246563050587140233741011370240378854667177974762136411370378681231532365866900309397046358585254819461544729300546043103144162698372232634100122182613452403713234362065436628515280703196954333197699039201608455271619643413026658535412889105934869837665154958054451039080398714043156233894252845554808379574937956326995635454952261377366692360700626668029338656270801496374485960299296800771107451613841654837460810021775816066165599544622887568796328286884329781699240249434523354669076834196211734780922457129946614229505656723692736418995219455536864106519776022724301176059317567712327777047549567017709538599455125513487465662504530433715080120276125063782506884697131321876526015531522159984795681800083166982908226991063352004878564849453801502662817408245637519470576323260596288869048243131173880708454560032473031670621093596935522449370651633324415378698399272242615435895325834340002901479300195242485722361854513092489485744771038981343627807260204133403208244341824208044623073737555563426825589124757876150934038665230342076461267164638630521308888285559326788973196173989510779621669556667516557894171547829894797769156836535317905442595549695253337439777732826578495310736985892758614449559222024330705384651646683849314595547926093738985037459189192211193196685583711580692581641561672897664682671291850459566771617742028726512004363307597668192528850102413531402336484396314574943824333729407970676592343024292852097060131163817461625678739452763875833549248046042274708110785850404104059251802564356415580833548579836754950557609750928400042643212602123390829180658276191418271986935319464786110970491389870310166566918582299913061593483674489465596837617402250534975456936981160145438227467917540040113196375898400591874452814816031188241402482090203354022811939593501085991756538029393556658243677606811483363500465249926332058376393054943403109048417553279124675933692104510165788098034701698425218865524962473942903198208607383441255980647500979757994997489927933340053285058286673645080780025217292552149340267721299429508935556241735483361170738911100752727706740525704486461491981125777206852462263298160468269555898364609672756567777737833814337718542259085609841019221303813249704239341339413873508485795828962077649150606019397182604249997338542111039962178905410660944945047146725829634741828790635252736165892520770134805667997487617434774666133311279027361297879221586814650189044799386415641681145407798683711809135601165821625115769138364120537524102509882456866336147888399079462569302017665650529170914995725241397917380219437328695453935071281276442565635057443268233107128162929885163743343762976401025365029841599417352027592307384478115403401887882628803826183304661587992860904908517518207042201120921046043634982899209889758798307515963571910357128407356507066596447021858619049262328981109879483464453220921157953838366980880866925147297897355254434331826699038214055828823494544591224740442685348355923372106490940828754829378316489814362718082852402654948575060807442761503768876826017377321204723519350869567576803374529317464407599518319791349426471316434318921768321052126600034749746640431027912395293078139318027027685617860260847075881794760353994140162816345660154155968993451305884337876625249913130501378038336817935506398878893713720410242787829590852933764086463157041926618179262494012796517521050107974585071752373195447911573306354264782969846088662643688711162459035022128513009349615417133189271527367829955099783968637990114391585642950563199029390960707848529258725121076106320942338336703707603234681381256083302242775923501458235900350809534580226578137639425605459983953821013968619989931249729336206736642942780098134095117724149080965328041549984036033126509499219624761760198611318496102186623603935590530311291292893417740779617776012304475333841609967156591431808521079397390257697841069368388595177189551410758434688151058272034065048567122118685956563271985571378052641580024502216599839646715659787598596429952514275263640661428043487267187337788314401345489802450785243980100731820810543635411738670846747308746949667490345112728237338896172396587091457256643657205600994195515192089226718885010216585513566025342840300230671322420542605938723321537919433010254686065293113598237785391249872134319129958163413729134590510104484490762429827566411362789072639142014331892174468581818650220183828265224806248961663785486325853389525547552033855589389314761620903356367837224550645101983852541197784973326612085831819156491939294145741673276834127227345752596390182635469527676137147221918800455743720209915369054905671800618279551579868765496886988214691484244647312257293710970885195492624800567239254302287007235198340329798275441815206638074849709464350737326636845342609957834153600581366957688791299207705694884269306761334973417983670293415853787292162544233254889995992276102861118445090828340418530251768372060255938105916846906068686961682222855492838514869093772464046635809065480006688181118612113018326420641871230286455965266375842670560336758330176106004014669988508150912007674468371235173189891563746587544974569719222492452493806346892390611470393747121935450925608724962095008054786468953683946945015311596880646513268115639137514340406883333279860831289822083168688221736418287954253834709586732060450600852999539265818012550629964262642186412611205603239027847438747050255707546812530260639235320865970443387385154600688207467511173281175689492732746806880637762622227134869070606775919565270490037885898145703845180848441855930848113296560960332410087487852946009826956292365928197331021054731329416702836378062902840120214284116498107825106756010180408738471902491410374574305167974642393952306666151205871375494308368345431813454302123010552981632385233704709249504351990151130790708219346714896271268357610708408380808243737864603457862917413398919780827296658931468427873057514239413997405209633928506423712936667743095188396288548407511676426346536352618628203044617469715573670540725842273388286238682916274393323639221795804932369749790838073739933246801628142507134149318370725022841010012911505677542820610037172567444561286086107304450794016040604474847924661916222222386942850186442331770166485339907979168027775020521525338271401711553408335835203104852670044344526604808655732150629995133382104632878359852781840584310413008757732930498911119485258926249711195259761071877982205424685240597849156480959464864738269124317517336249070434834588230976306105139934652099751827159672122538872582252143474409682690282218971431598169654607886509976324039657480213882210306046393019729818715059214440581176331332395321035881527439686479201443058722639715651513996548138358893822779618435763872823947449147076715540509957736957690554400164667243163421501145060203471984365531791951127267012078489337180604156194214982347072504180312662224939153331746376390382061663012964109040705480361012565719188064805291793192379210699561548485111492021854684336687466734978870340218562771776441255006089590796346913789360421854755846848110669356917372543751221952017180306097179555923137398045077300738901642373989214406516282494405746057882234220976133504400940788774040660419641970708291293702128369112817362683829878198770395833666408329988051302047850880081511657006335549439502201651677464375535961335801823999812850374587703156833110083004125066896673577856524523360081892291346688903001048138371852228273672546554983256412621382184801805910654471843287124142293722915294204079437306811518119304401464690247876408874273129515622224584089021633104801510864917824407862799488828717161893694150257873567731804728739822881078060583127896453835099134178030155362371812889912960082547900123671897148221383523935398248159163379846836986195403038685403366368622259764235361708367474566852715808228719265566324861072714406014302850178766073658912256946072972068120349856536059682864988319338391425503780293168383643577702280510258314623272213704301950673048299638049913774322428996263208308109142934901790891760535762869936799618201355295263844853216963744413765554975826994313484233909168082932907958427325043283586413123674965809438041601077675394947374740006881631094574897644370341198482762507278622690385130346448716389711828758813804196768242670334057067045963393871530113225979993618464893447043954649446081884633977350469823593466917955503146468422074944585285387692204778633338226243972662447373866905038114411076312976303065287979392054158109165658258730960169489829411452903248051486005423589509450076822447974444136571575591278130556181037314238132261001260653198051969843519719461488438722091080863786366793350732915381078934420877421373612864658525411325691015074553287809383399691670234062032038122985678210320472588433000530825611610545064471719326073165045237483261401824459110148190549842049204952848252301681097488726032324332605680759212891009435836473084184663677389364955589113399788252164671311534064032964819825800958465588218690681278741317460453727604314162778448470095960989427597183240761875312819667132545737425445743717419378266656819650816351100431136973575881803422486196537852442381499235160961043379761307985919135526063496600111802935948911713097874118350544104150242391216143052860037779591012941995684618545271160654271466981206304782380156035079894566396864602672384339077837427099974574415812811886991327319191482475530744946541753076466235340146195811592569596823215856741123419311253244385521287039368711121761590950431353277319619220344495539010950823942521198784884790202047268107687195311856108294899154676806913319367445990820885863354115115663708452372796531336852613266583179232449863287724662744444562020808142228400358384716630554582514147866425198807349019459363171129541300116038510936735394700957834852334618200655776528235709498972211353076530834374649863653036975778206144389420386170511835905500716463254940585448205959619136875350363439678263678132614310931492271509209843316050061634131570215647116535207785687561050551977837085758974099555358420825467828090407460574465135308353362794181030487680521034709619674489786781020264174319569837230535680763086836972710699787578768647589935907592958663492699612099744011961103191924325110731621865625917647287158670797038629508288555236608279511536334068399041592347761941082822258551291141793674303221278109087644715502801436590299807563268103625338274200328939074260286364935651180146424316561575264501177075631458038526672371562710491324668816173796140408037650104413698744593056468585526059180735675989121643001596460163348768236542271763756545218815901619479491041885013644643784828602644041223204906071018054168252376885359926586051392661078807666406595832755417974954807052784019408246060634719943935659555501104692784048929750794282978260370722458937233496169395594876971277941023637411715780383887969911167307951133732024960415258883391440868762115108580780158173127549053866244412978295185809811087255746966470614077289532980217530685436629924512395471842118546550837664373512219631036495603697511617774593882154520670462923096686366770312162421706475871015707315535304671461139568309413434935062126834746335066816159452803526197483076221697700924629899447257102403250817203319111730295830636039655355166623312826025838552238723956037255325353323797240602076979711748385074173939024502528075059476465655708727708653064085303675975406034178465060754388843594015083495842953000273058092818058765804888276973533710879900335331258262932075616957175150158347361258401330127593085648914493416612780256523148307715860422544991458621588846271793720933763491981794534535984378099753682831021296244638458729444944688890152171299143923189689424916340919555387453143891103372996612264293500441301507449574081457476590835944029313492022469039382430916954997386738301118423715209480572963224242114811955076693518537687276704914121712565547183629282437433275790441447291943887174052832598103469917380548632013935099735348708676576583567812649830649167910666241446496105049173902210095708984594152358882880339285094694627861178816513482039612356648487978691829513614125441287538466656496246262259716613771369258951716873857521484933339432395107430958287855094826357492490820529975864373297095867598307134999006099568341844344080507453833322147058798293549504724989573021497175177004340680258040733342649394449932468745381569286589819271309696925781277168913821511460350657357121878490562648204070695391561776475294033621329577598876589485178901100156308790163791423145502584708078589298533330803753005033968264954998898437103788596806850238700352973533734843754042502931916999765539666779908142447033537422426067127016494063316194698217713976169066154960452970098505745012105571817915702295223277708141207885776359792525919515034023521230153501942451173295812567912476856801040060200711382760000966818719254858673134784087919711835939354599745865154640945876101821614015059971022279352242238828795588857629384667931113362626143624641860593818803792594383993682664621541767909641206003405731255520211672205716242914332876456352249982168818716246444440099333409059149387051874722058901360873255523199021293704954935720547426967840750687329135922262449929083331394467166262691333380148853187183332514621676959332011093355753676099041707364088261783411580111772252337298832939155712480001606569004816188900329763070171681437695887906313961334745975091581984835917756333438795758755738822521947927710385960445471308083089215787396559176841337926471409147911124916556389480722642204239103222415535958950349009498330276473773749629590698229436208635248283003396190576765938937201328653667986795722380129417992235415484646755313202181659189885892966355724228634548619557881084410034121442214148226887008928373443956964393790510017229946839090935447920693978325263202717420841952134040677538953203458644280066533649026344644376889597968249035422305237464228599490720469105631744321646788719385941249841744202601604522025231828587293945879786761882961690877577471950265979914968229058489237421788649732997053596785169596192029268761118357948641437042996360952123863436452380342132781250219609364331169637814686325922645257879449820505270330305128858127447257355355892740356376839649568626819825720120650816338693406418373303771848707403439063224042386776421790979033392908534922613705506343016756233918691179337730255732184126279104371228798039990570382264803793897354224037173430339680238422260290598165660418725391671900949072333172055238500906532684460484435697926683778181117765944857507091069002322675673612700679105395254779456395173412697794476005994645123015212383067280367273749776857382731805914717688834597784647551703933546185121076690876496564668892843528756405005571714486256691624771984235336294577538895314406584004612380237266108502391608133854261929729408718363566923424686459801255360563940330874537798946948730984463654117462585012312458404053861404221454476895892116196154235879331441788040720924876533512497509546493265643619608744800557391971041042298548701347651999324675611761714995373124866146916866814473257097767207240742463737193918636475461256622396700142004037909746171808410761556147352027210429221554026270771439255294358677557152090429526053292087447521935872057293074705740994856318241418870327112232577140297288856831398029184120778446744322129233643854125774971692012809763150377421994354739806035313171411079473831477303598702838184103395055902943792020201631821236979895222339309192557003470419105414016887961705904420485383159647328388460006539864895506969328190503902785242102283129257441775584574615758139581335971222728042774072383856639638631991419574418475714649449725562105596076897785982703150120167002653500656565634233879306254646837464089499215250909965460932063548098763521176342485968309044749948852058245806034063910926346670046887419688183925504107306104933565230937128230453708381905957381819765099331749666104328993544187251603640246050160371863259104012344642609526781236928888511524438762620357708251369710765614167029181503760576835481845512497068059410799452478709347558700476897335035525708230981045673226046655195128939988477963582394091882984954083179037202575212831821376767512835414961061174605554306010488720040593892651412586841847995338561446171946201379203167176995000563845354105389765651924294110900956991058003401627019797240756368231438289943962209006173758569687612222649767898855748712697755703861480121888084685920117541711472869318637511900115419531385819652238033227126263478902368105839139318117107691225495929247206774440211251858448943811457645999954588915515851524617855031057242534707564249812509647500631119771566795856222667823059334560945766434513064763854994743002196852854663320757668554765227418663967448024076090748132481322869727003187906038622860332141724939812922659015243563984803466281150880460555950264583013730232820046296011961383155330670934066275302855917194765626420594339729320423256147590860616355888492342784435055176539645771460208826981052055800846633104468540778043185515124376926155632563436868374899722522912967432802128996048173759233080930243177382525169815969148580955068275404167579256414672576116234858049291998674351246094578675943572750756825472049704238069705853583318386664770786206571130122983078378755366435199375760774176735632510676439707688391116216887367251202131561998197970743340936038968224790934698942099815865950341450131541843802172072122187153188911781907800847968813936328380169788965172678622782754405010110343810382134616733113013018293537715933075364854666225733419306445199763136303754240837699532723135847968431531627896958925381543350062958562040069233682397291013200327262978264037447926944621124924611417763592601157009834466978364432320401358478828778082453300486969503368324722014827904535947972288946554221252555907672411069187307698916525802049669876295400483562139244356245678269700389155228015278658059286963487666320008761368142753658801380935413245784173709499731923162612185447611008190273720528391181470784536152995031671649249949234456636487645383340026983075453879774370911221570597750659898376224998724585199669794350839958427174280740630687497082090412132320395462645197419137196074608877397087849910470695757943354238716371811163634904826784782122316301454830971647918535433706661254846226981204240584936527530646842188121613731769410919264397031388534701314235975309824304806690238239669374924454551672653123457865562233148696931342497503878554031151841055627371020584979565274588172945658056284800327877203529333588000329183655097980227181480494718952080823807050203802371528651567176207817134323212199686799635828742722730840988301057159847526890626264160325168288139982843797614486481329625334834686563597121061808182771268328987994626176420092346299100242075551505534946867196878660219319255377672374565884053035936610970487274330288401658310851298008315932041045541619261726342179102679058664187521609895311513471382441306022400423503195527841792012439658443793969241142943294183956142048889091097064345173137802199156725414488719449168014288988422061163114409864948169082360218865720750667473270665699608479374598835575688216286282316953817427508437588920270871460736429620524747848038055502052734875968287256928680190467427240477052339750983906822542629574225752369001251432804001501179591252619661746513598445461591247610108495398272673335053721377284591239771628522701368006994322005546561719963893954903619145974167885388580438978354126109065337950453348048207016755139116565818482683350686522173340650334814227869685536147683399684843494954565207530109880387093803774941866090263539594449778060586659790769399682486960074021140013691926156757441318358577454514684103552101942404217537483730952950946013089614442758817923184299726177287401225166148949044424332556705556997443101519649712049533888131948300252532662201348293332253741559731816547730881923195453771616453833141561709718306374403703160208721250748157417849420342071399386478308271370652478953539779165089645731678874502128806477847209601628950757598099836013981000153186993407046826423983649238850220486556865177894500130558450083220138053806975552823168948337062476744740147405299125608427660107970885930720546154017465294781625639355799669385725393327098368130235886804461888076806501443127089521439167123907166926105981800153747562534465534889521778060046858534690300584092542981150441891494279250978788764924557522781322278960008748226486838685027326443272722234865513420174772922040260754884691229641433229086830797110336047879839618089422475394611016057373703316535887717354849829677014667561547495678009876327576386386546670428420292512781006380751307297531196081090977426644819041070195465237213252841032508242650087528278315106615433556665662092742657947279824654776329852392432764996130600565641116531810216776076843575206898436406280770184388300127627009564971518159476710459233937635416212667048196519427442101170640238612788172604281461336468018379367183865337010479414036168265558462584449146113188816528080236082203992826831374554532795125115427653298157645435696580214276641215834862318061889161686983513224712505065211316612065548727740802774452060274633819611117157970029479466975543265609135650298270814712350326318667395718433900562763470105548556847100706001713288773962179846271899534561981717888521570881801157742984958984056261166669827886747993665250541266912132866347316247864927141897237736360497795588279056100192072905354790356523859829261455518927028399568814219291337887816169670018567308678427179781438193084930256476498794162468320820459942962640475207040332148870452738640697903103891760056579441002619918036370768623476778365226319044804544360772256098223593283936013833628589256959657343117446652009741028205733946450872996617622443182867957332045908908086556885472462843739143219686451334355771574858608083157887697175069930031467832687797157617651555811312372702929801387361083637519407671855948928701390966298415272144380359245388635932180559574495304429963514850988053111352354783258545794586605673083485732139563758847665891213349666848438045445882575223303179746622290621392818867917156054611521110315410411988110312363276037978907738259982881071866603775973399089000098432155084082769434795440561937113867407888177653732531366514359482455474735118702021807585545927857667802740809457124472235582199665013099362052491412022098631675243937065819972721535123566983868215365479950768570010378938257666485893983136141775738706617960706623439273973839002460288327396756445305928342446033591013132142800616079312279666887333739823346773769081570182919912896116053965516243153365961425346065643618684338514091325533015255085636343058885842793148362913845761744270348694642711454771975277178238293615152017344389956697429425216241770411583090536313959945322377099178665380176352649539849047186990974321636680919037438026086334180926552628323742014585386678915771631580320642352399723654423947238523839592304741021378115596721930927850495632564749951431465301515874850005935983803474474608136418725686163088441927171631106894560690450589788762426521842857062985767863429662082869890205825795830052862121218123818741571368988205607712050047967021296869683719384777127410661982505639036368829775172796701701896600734307727322049069131194281756769908574429020218976982085137357508787958844546933999284253942696604125033070713245944509711719172548616509498336477908926552751291968966512244417865338654363130417438780791791004733219821347902590129995499511784898158129633103594265729062750598621027865426628701664326164977524150939082249065837113651224428049157516677146623455815876745832636914351273358216634232120531889438320389828077140220891865753821339880555007357059163178608237568397749071103475109086695955714122619568662214063169157410786272847870320759601738683995818663257329444399467911117508096765683552718244894367503622848299097663964541756652668156413143543394936581908392473659163187299954947617064540093435900151255298186494277894170339288243700658453439137523654244303784969963687073696419334919286732082968668631154758091895956487855060498440370791548655383696463788990906763896277832322805099497619056516881007368090318665605456962042707983887765779622965125740175579611589856496488789756646341716630053624606011404638942683045905938086688215007941796152940913285876379785566158124356144495024002982148341721685699281331842276908251985754379894012823328452842844228158538962429885424718192062629792547061395586599678515590634908633989517435502446282903515057155472742779984755347464652294984462784622130806267912014070894233680344291461556638844324550207994002290343212551675455394348863413855095656711348926552628098924342098692356168555154975413002305231459615300841090650481627794054030663386198314874624440668393177744414519876800835931417382047209597614769856168502109068284760085185222346247151390188530448008180783994268285449220521404040050416833365507861518472398294396362120930917529976675428256821681165589211764132883197050671992389852167415453027372413072348027932677767474515137065235928813278246028729623033621636945109971452902964739514658540311872713963558935270544297503675864275388106530543711369528533369745265665112887491046139540269255318518379564280190290467561149997283502226290005631116544577316848733999937671578513668269224722600985501785014546538779010445497914742023392945886701257306200400110150303042843950407969824338832862749108848924427998720656545965188840235820300644874743622332187063056618055274585025539047814470287712509342471601857610657664445847505706695905480381682987904573813850448718038718981879616329585145592695819938881092080308708483205366615741445533997049191625496572900619852223959225518048290483912249090265726268729464237809097056147249450255284584330669020215129169338450107997734300719545408986913206818609758562586463703587679163183215005403223473685574218230319798860929094299284405904076221989576975408514135974338555915601001084248103776239766597559672925136634388114076323934830289252063512410978845485066539245979001414597197971182231145906207379124479701893487944784088978939444004104307880297120827618747487621777187626481289203096691079440435090976620685153190087067173297270594615047226926649219815941240251630971587700925059354161554211516253685612609104795728521763463943183297753689436001815668277136282175602625460825407753051824126696955159099758438201047316167077020432441117146125535264520169384973402791962995048457140536616086269974460489143120457003628074488685393300456750281739332382267416321363937538634208352877054325634908198170252101568346410975271833048310787218708826993826715419613291054562838723339187389638324556779696243927008885009204264847097029406079074440717134439402362866473125015669817971747237425422445220101265007220521107636599706017307355292322689415817142361415522846003967016787194154094724875303403784398078336734263431665828340424197773748939868898715148371061028910888767930611586792257458217482393620925919447384353512760856892725036791711366210354734445099220256204254197074329575802933519089386101287593498813472650389985251117634665916309770550393704799452181653378816690048494321708153995544466645490480158935047320226716951967708258121564644900007900376473649445736925262963740867402025104318200472256862431622038636687492802276385457085571645967837199216421647879673980488310232846341842099077632288031358397264729916744613975040208628680734573559425539074118251869217020466500012155978162925545830564835307212041325997223229591110930329079238787234196528796215858319947918173137481093541641002227526865984705906164606390898819484383646475168333990838248900801964974343764143145480909257312929950664928671018579946428445718757377975464148673171131667301637547254118225999208801440055615917111252977960491217524279486266460935659198106608685875926223032003089635813173323238396844066069241374620632287054940242690787474784306704280289887385522012023591822931925174578395191876266414501532357424614434034556313934644507588270282035810214330318937988333838686949625861971122331839493074504324667596780314699308095634316967053456690984030331551314797721145802527837141949116304481845365074360748822390348245592565268025016892342917542198971329812028599200895338066356132294422509742438707871320839471398466052166530401412537874060304006771660649030532640766928796819439183960442245813030747558342673737474346081112840102250826544269017921528425633900414872178115252353124958664130644018908565603158497610238230467813866417130294109838985452874534513067569323689486888473235628246086534089972667939351911005732571977842705915539229088542801505859385753286987228654075683263440289704772369837327370663379995516793729453869218066305486947226963329519127002376956927266996466659231148185961591083434858390971053966967907424473524133621294571866494157007839610958300741705269884789225526313446435172697993349314932058469849238445722112118077036357878302343506672044436378854924488497057994195808853344036136238721381190608874286749354429077503791714879811713890749581526852986444317507978105761036151680028801958874304190428724808461495918375417169938933993589309640499599992996274347473693661101896867277563733106262586058912918536616353730937840250786889024083977896505965123841040200437486051300843690096176836302315497301542854161288355754867264101311971165400562117602665314944864383514094274663631884635370991396153139293543935639115346389134137905274125927108011680995241148622508418772884873871840200105567756121607647285470087292425175537243676223183697691979832638084170330203742186365508361123413096917497459594387575692063877442524732869257249424372204777618000295155500089720735160197041707775837238036748117358060248842431752517049918522893719820449700439816740045234335189410949237842765866876599485535682035957511247161047992727966274751220439274608947143902149375875378508575900252769154705390315080270257577935240180914820365034956140010592998165009514890021118774844216515421119708654230354468699849639847943248511263813360559931554384805355399227782391558842400299732360914744891017947805936260970534073571719482574198503652456503597547014611634440040602864519366685768079504816392830727881070548204898481416115287126775319468206257303279672928696246181382681805332875479053679530190045088536040770762782511569402595034270278025867710380545390600237196045355193324895598115848618990987060511612771748783955251286796404605042048063499288095625151057593442446372539489351258941137606433766169357777754490792526855084226158557291324193884008555545373711987872465305599668030305755949178429248945444706316256703752450256768425720518642660371220736285355804457056603551445896629817518422216773059096469885472781815350864982856635114463873733697702723253702615257869109567425598644451282562469340343087203573745863362173873416777679027801528278763763242318390303324316951232379175225602753770385987040779651870721361393372785246950868566119593183175458906947071472749902295046308378966527774892592540792971710229345126041318493558790975908946019470122818602311547931712790085221105316275384990406374821485746435370468936230133440467236176298882771560068133040974855024587720959712276635989384969790475793451329179154585170429233314607059150316336182296560673948222449447097220980296029927420208651300410876824549049363405933884247685767305202527056212937382646221161404598530348913918124113431505475692651491107841087689175160484034452567134279574590983303215344575077628703398867847617056515994125825613677135506645535323358654659008886817960303062676442271648753455761533805429392718553782012295588732241104500400690021757287697684314631060194437477965240750213428891944284289206442712638351833048645019558414521162658063536656189637337714204692515880532317294138827630516266161992174497970931806390259127152068203083504182480647487019918152400768714395695578081954096066947170410528093262818885671895391807846150383856176562457206212110757975162729384531330910483810837648260975982508173554199915341541942577102909551458059957306229576700664907820613899584365139064759455721691598756896992773009302643835452706467777343036901933551807128808923054093864990884245266535560648601110511845080641081616948048287141968257183912411200385600982748074369518850266697303039429065012413964690578412614225777986696256627293942652206676086343520549035932614976620041285541690244522297541475730326773845357691112481700247400111904283964497152413758823520982432822159913749189946305675321817748309102161724988562598046922708426853518590279066351694086331775880187284942145889810254957711941509738029330384994982241364236181256833113214364667027802858198931421909007786911780709402706152798041438771516080965423455620436321151349631023245205524602080221577633649727853271731501318036226210789895821434006422643082023758774539538871005086244110913054146333239899641669202750420874336390142213017794746137408985078431496464640089282861196110162758800060254443578666982075144843658107664303607351490180459959012520540817930997883503902681316520130021025399417225049060173360473141687889838921042607891709982592191980620577748743037665078226230295357215605486453877635311232715135847744550834601873352776500764679210434760277737003717683619920051091223093193684799688630236677141015416366153041900847841363160783073150633208348198736766357979309258902134437194491772006424103223676930745384442926204446850203863287143879847923118195765884101361946993640755163110289133931635683274769814359044496819459360971621285808158245936165313747982376332100481390729206150227123660628341097601245797124813389155981539472048441899499546578330233077299886522210885822131407927896888580464832786525513837993675941957725017540896725196052875886090732370098797602563265091061217690821315357026285906711089117163952886049508813000558799902540875606428296803868514443327858112393865704665409581960178424024595319861051567460676829272786025361117222550777887393649185241931007594487585783261422888791247263864610565537191297865977343401585648038870298793933418472969538655548389651419280712807044274474228310422712219320094442901064941390140470332034951923135361106695461918963513374535236939952508718988318704136516431437677679781482180067343367958637225158436093561161303914550154992383502012800604973600995584151662146929605239267366292650471984478542467049733754812376348053149663931466023114886837769758597199698818520111578647480285619997977685866349181088130220146476088341601789225505755776473566488738277614052220052613706124666751156565577708586031258247688871130881704380574849617827294401362709616725981655412991135251604410621688139729320398901087868152767229310523279249286198018239712655735090167697467562348405764735074160920765595176471420527198733482068355172115353453300356579868237646536155411626265179185057330465383459892275161021034928318652243403075544361066391620171161001191112963567952650892944788509104101374416055564078330958070299804688615391839463470810756128985194209125405775759682754349127811920854897260462569388609840094942355766669048900166744912197504876999857720463780587966181331866732452067431632844217232412765387563012884175369801889430466043891485608669927468382663936385337572019092344687001900552958876177552775256820231188133782015862547719245762867285666969131133799660307917189005247185588319809270780294065392386842488548348800389579683390992849628894923325542183751187882659994914540538097030458889947760875715286462528833428142808477646329565030844093739594617097595982699497433982795702581442304234371764689271930320904357790795625895051108434005110668120337272586147313316502772486343388258885613817282364922413988662565583261591475959379477784536597467837472116166135068095436947202207270196956282465587416385593186926476674700674639992718737398542067252559284550684398631754560914782960046371599063558089910361054660651209765347588856662709872115492017632902397173101299913236999271766093414193271509926878387103007160163732462375054355858947464840920252433138801039075664183853967673298386388543140912862308622734870816831921059541535958703604987949439199956189423059757983028430144341247552362180159340247641124988634375166024954438542002258704458520384159734157846905861386494333693636481972989047901403498863925335898969604797500932888277920372859073846103440117856191395786773476132579961060978020457436546578324063192939027143436223321568115190707346810492031559412231461172741386694944220628667562557658200319540004977940777863692065041450258228135380617710583902154824185493105120991289022437013128062374183243188414556641940532025002100973746043523720559058017534636762246797717696482413525231465874604124483154579365101558468330447674570350580788101086778039319065601398791893891272702305695546772542223109016640170138506805909441329761522802544279934862805504430059900094111102385125700827488017229170478577774660356413651428908493847731259603486428003746763173911872881469187414936664098626949899928552430757531108949272415930202350839122836303795044568725286251418335285943837109928791062032651036140940356283329034405791131565306686253454664770789521781455936423025291343137622308383863721934866916159470534999735518450359666948504437604292638768601996918995512667113944948399266846856081352082852837012091019154167941798464968527701543211567164080483768882606462591905316606432718098215889023021991622254784652152055551929736434218813100509403892584280650943513847488333824330911509019854067437505791528981632424931800123548083544758672767747309825639508774039576906023524093150252056147969271275685277098655644662730744601422865446819712891193113531306708113497658859983240446080450174050022295928544667462719874486105999596875296616517652900607562422770761037768860857009140242154034459522972409055839453289297737432389956896928082556608061073788239891012508363801710921730199604748141946971675465459962871520698891039110094600300483136681408017535284324654365314429460983597370075010948153337415419185626409675918282364712374641323183328259511280150516135116118415154246714161071083673490506163349187082483891980923119778236096577189312905031060722556266801106544640140673721712412253398970682962266441461583551110142904232164097840787068561108583274815049076947632216425494944713392287142688188060809231722568879423524089629387590658915242952865917240372733694167739237573006080765473707590286659374801170239423267151567892361007357238523330097500136330511540890009075042684966162774801320804935993198696495672476042867996248862760793178419390204454291785487943343873418360492667773940363131190988810673626476033730416264642846397808727065527230076381534594127496241491662228518025668498419155144716563498108899744766586830265908243938852796046717549138207873243133084646988183265525164216775164270389122529871881181574713637688722206575351932725721252180252778707108352986574064726739589962103647788322925443053701383294702840630053051847894230124547262405344723391864499359248090609473877196561863810333156029946824488258126605696487869249182370465674015605765878807254193561165421845893411061938096335922041967703588271422868873535633948837540939314251071331439068089843328063402572047603471275375176696408824109535381908112555057206485219029528699313787073822893043096890070590036509719971373011414391289053267164003480699612839009957489858906540433147491361864131158092576183786971191467147858724970996626499523941446046178048655483599581044784239980130150603104802606823152805115206823781643384620778427918275656922877887179351788764718082568314273394003827654135212183998888418365906221624992031076997267430142401238131729516728206598371083093110524403833506266419905232181852018944198664577593266711625626856307117870100199404436395567869153417896151935654604253353873820926704095960786225561526294746788536730414805367048467324336419687152774417904874870933265495452084143687770462310000649242559626481467196158707711867412099680150948393175157646241389618001222476254138253194446281324387618242449546494441538471881065094414533555349731636023022796363586607589709201391018324956727800869025573755838431768880989217406181883641876517465926003243817129891017832056334021666515250644809897253527014747803077826628960292831757763835298974519696185124918192270867566343223004610136301421786762527620772492847748633684422469179524161290632195003384633131626535313208040954817493989877693872358495241539337554293453303670463358723872217556008524687641180881820782739713340596311711202501834267397807932230413993259332025894307268753330292897667164145682843570130303900751500167142078260071092451541251737839724697683675476975890136691227723442992600428036350000770211039829150087897681722166649275868707255195457442437634795745070833014701107586520728597033041491054151679213297948966667131349430689443972398560821963464674299517364288943390182707199642351061100214321266412693168156257046397768900585167338366475825824287370004469401517625264754600621875098494551562416637781249242919934030306054355716671575191675326633843208563661444009639168794880170473779607514809346851634657678046458608420194998522221870019541142631186881160026469658882668618055610719332772486979658074288870060501445102708801788955932103016202486878641457103828625855647421884207780158393724877519380553001942977324802005326886977664452365569702112269177908369094429171353869990560261235537263227017517559744638148488332859353144419355185084703421558165257375541679729428660472907164273516403764672924019630277811535268846878006684001158628652395378214662952666386437455623810883109276539904926612481794898975994678036557664223902633618368048755528251208554506797134637431817800652115190885314895604195916407776713759818140658244134664579830526515662501826447953898106280622037458904935780076752523227864743467785924712550158991324717957227900114386624744431557372519563099422172855718940974110268386822802953071340003677465443093363169921908415045564905401543373210176084064029348011146808621204906305062031211168932485929734715122392051537104452391341392364396134374513680921873654833451295316630796634155796043120177091699961966120633572653860817915688399195455623364137685256090553547860801356115641071674024332517436656611290236821839431125478767171041469647267604220233315720137151476322276068048037024055566944157839992199924035396246224463860444252172074930855201929425046189106804324542389900233433353208876072712411515834323580549388516958511946434507048880394274988977152417172424977903309611788041537828162901924884631514978929150217960295076639823456331237803468162376876470438379414261163785377946953777857577109831496153743977604801793278090408950172796001944819577968171791506479295868538684566516708570090520006316785419370382243510649248644766501564033870146369880206020535248637284647688353767510695912985291699485264058409669780017644900902913648483116440349653021749238842530490226055451600913005126609415894728263732935483318831045276044113041924587882123626188205660414997244067159269825333197381775699631508227142109738178828288793686647668546802594907055996393531480971102596713444514907303097110613055611198651468704743478030189708327403417541882599641349721227382634997072164933163590720292725167137765659748811742771000083192553178298443865471496164351395011605410834894201843048344922276581831284036820884631684706482846570231436525119172212629428965832722719084501609778752719165397446976676871618803550890900564057276153087239294247575381949453477555843278704678782017588619317082185022026401265542420721825016818901024798873419184972799918268270663970255054174782312622569457277605886546863603706461269261966253942675667392612781680748178757038392205968372951192453023522794124189952911880343325938115537898079083864364796036616568039429400230488135765166545707358805591585945233236717819524596058933322354482705896334485261213010682599515205228526138492890589335398310441727812515448090827604521932017378301807035340190255642225733718892444024249238204784331843742002220494156672971535081013893395044030062431014853527631906164702081669382686155312524602845924337564211890705061694140057555227339180370490436014129361972106284013493996072197809430080236963523032131178628072912819805950463473875249735134796076973055419432225915495618121582740544497968862327144127910337097849768898746753538095878417249812509676114664129110440747653484257358365324847349803577288711483365039897088540345791350617009346684473893174094556351598556517019432262673509961488352205329636580238803891582404137304561078387407892998934956765811478049411622924674399334373804702257269052181276417018360826261829608106336052516390005679430334324444799543510484736600303205571118188567754033723873975333347492395495514166626581681955788662973974268357212619039380815925911022613216135857384032196738401335549433272407424375375246023775108316145022639281465447238395820539965805449169736788878504691430528669455689595696477893389380049696073734481999112751732840342307714761593560825227988928846180869876961274717038330924452832602845675648048395009651039639950957185469048051919629779465867262983442172369655894440191572601773214934457224166031253246398056459394325621640132654621576356737083288116150945012193284612565582004558056546795215075436559662161355596189953969231766654372600032085200784405526623363696949225392459681109663645449049114572689426139338748499118974417912790527503971966354070532736751705385199071894145209432644485690514245493470198629838343218795538025967414200035405069036903516556095846870149436558941276051155874145901894290339536255669379550049974933991791388788495489572933609337708846623131808541303879203623185578406850884870848380484627708595498275418345769612048869386480575861934866390812617554392375522982276936242523729319526235305878773813064722712561738153200962126907516587878058102478204749982424644223196722360006145026781945880594651210997559665452152525299590856142832152882496483614565103143430881792811728558330895291125955481702561381068978242703252259719211022507824754659789307301008847990414020799574834291184423231215558683996387214719075697071010604836967123543594622673158272625979648190420140587452822677940120517678022289641345028865794045941535285884806704619639429746143820914569046127815215153838829972505974298323990834160798566456650505131760862687108550049330241245785552238156699609207532452171299562549895577140939348973754273067429421342651406298752050217098577496843303108535022542384828292584882592155519933482019522917500108270138943052812550168940443685485830144235833433480304743452089984084821390978343831001996104406964410905907834709827477115955513404292643558252445201744361120763655129336790760349769371162138236822960383473375154758334377868576809376413421673148834272964812103668086881065740801647014793917880879538418268905973177014536007650440756550165171391616405570339349843372514367442899241376653880127728157003275925944820938977118206310733978176868377171878119849534925407310955637149490237883062976549297776124010670193903396479816881316905954197062166811702987583593881461172054263397145682731375700833437146239525662534540759707114217530949517152559238173585000565011873764570867410456088782237241311263102991019842494966732266258266078890245429674092898747306562184982554362594696883096407399056508914612594358220674494846630699402754808976466624236064109346302972469226870800130232736106810533186979490992529380632423000086148195887809874685790365854278477939249217913466227899506394330123041933415670445163840868107257014592906759637194646692213210613706466540965604807107325856378312459268643955441091176641508745991575545691475730238288854625065359880061425101294372297034226274121214718376650926056839424273961269938112776514813480057181219592378058521610516759931343419701495765383613057796389234937543626822626597687683141776823427746420830717416078784057312655973446236339703660799535997165992817202521412727943257449664736565741469749513140964088861687225203156782281606341025917487130704487033797540594189700408724737846211947704808892403283551630210232636350952599569590608741850953303956229582099509618764962707436262116108389628141080549764532929559518057705933646564295223844476949976168600438772589513636188404158270140031750222447391877935622229364346653762965141574407566002035003972122091871150249688276248319429614455348329729487490551677853508775916219412011039082550905118754152345582665952985575470533098182220742334620255576595712183731450054042750491160737492641154974670813894916538175838449663930480019974881749849738907655248842601160695347641981518366080631097207220950157656929164044456302266108147053572666754487817172553618906441551149213694802453421948925761831395653338592203324168053643121281049343424940643402235905894822854230644284675112375131675362038671081961687566466065101439926991483487215327596813403848468656832356608773349980849620979180510662748480154417970133292541378809539157225473104530370405764996897288117914732070461836468800023103201446654885501040607862278550203775553337786892488403142853489785669194099357145813635302122754933737610727985120894546367037508440323745247294394858374168904364906870278250156765806522018804172978670925074868009585487094769613685381713332216679475722662110928424362362281050959103784264572027379971660593332995828032999821080401813263241302017204915980226719270676164703617437928590813221005224039320475154610841614299627436618599104579012161997434427112878640201246560723947943669571420285780433700644875603456293326760412472219187033714513792632093274076691413132422359493560672945615294182888247191245472924019546568891629275630418025501506676965917308770001310963214712318792364567979853268063561435863741618037213932879438036383751789450584567761237809547017880798526822900525849706421537117726516515576097703012920360129826015660557002411415875669742338661336671700404242980687190511269204249039559831707383701292509092151145359970493259117646885395779529279850170564906731221232232746647757782028464176518433637979605742868014014106716665022262392936178312450269001235373560055448375425896193888048286339811908387007317836809769672183822901082690710691931396954597922107262413237162145868097524583839173340335175355107971150067863308799720807522583168392960538590435152466806376924547262601480303419351804162223749057753337829921836640515293108739022338965331383901447692400051452122331916565563988742561002143127597592962302956756653845201348609760248417776199942368291644363933893823353165842278628060385847795211001435961461727707665515636321842902225255584991592085047867552362478936873442113479805602620633386510294109231945904414354472939905463176586517649915204806511070941818248242443596354939487881748304081474415348108005579935494169723914615098825273392998693495118010664813140022645540506553337639383012622530055400032689092760745819083661625555946856042392604115968155256292773391666510292744148023380082355402836751440223969316471379020783890748683931237454720997712052064462724486875828132165727413407201304255496183248514376664100654130847772147674915222357396906093625635782257266037709638672044275658450157308190787589853480556115397633236165895997512919892148894835779500733735994845165510437894906765206923882172041946099964459291484644757568591403847271824883375743388453000821367077774050543649565147552594581351215901619266861582142969910604731864620715054826243700834781914310559882011392357530440659047512347202364329737777460645535730800094130708252329669189285016295637613433292513050328472035088347236534149601768089386885237040164981448260498668291782903804241202446019646079831044084219983881590811300631164267645650884327759687296232812220506222441557818414978437662416839757452246073546834253472770780118569386220497476601234795205787278557849015068239229289046982048688793384851712904516231551328099734389359186615393923511868577362473445475881805621640539917012535395574652985809012627742418970222158952690810257354819530228199551668700159976252815130058445306225518274782613968119288514996093501257691169748061025852959869366021138099203873042700403840022769756175461957252658700001582824894140500274064851637196182092391519122035765150645037531582524354730257185734315087312197242563807167767219320827488377077616053442048478663205511631269595076516975970211080669226850469885230950861593416952241778751690380116245253520516274531465970154758982582395138572192989337105980347356169917407659419616642683714202969191493359118009054542712680788651599399477647118129334486055289870664622525599204026102124203544272272608523177562548115327465922533451379182817464505003498466860417091498832499386718262441839961396900193367325423932381949588317905754788116150231770014892657464511295526977605254078635103433258712561594240039954686718114301563439112976679619900991647069954435749073189565706348282523826259509353988268745882009814891961134144273283315480757621690364042709816707770904528725473671542841293479741167675674015156807637661748114832143521936511292232255114242363866358015892119624762798887555146141452605027654991754959333090597295946218392042812000186667351647885508462226699282524466491257293836658849793192878830944920081646470557840589994243052033598784419372280844689935036541902679788808452692172194944133169376800411177529261298834940615512297922485582759155220917669593640318532270061198376794049682064819573273972823441312190683288590870455067574449751442052903416020481033717278013636972978285752662835344034292680494489827815852465606178168788313256377181718602474896028077881629582753845286829817736478443585204285255312840801364891720069174647641286921904748790717338814478864044965272390407539553960634432751664760720945357202588429812008136815913869212541865914003044452291675259688640190177147314491119315022196335355189060381243828029725315793820107892155505455081910381387584105854689262129462336323214782316858200954379005495145132622543094411323086372300253823927206884318754002765477204169293029008779087861979448606019875939286078596019401321052290347592898537574324893698350499504019659321936840263540203860191390625309008909895032104163997722560100186168277316022815647715530326437790834175414360742211226846431097706380276175813834851001468322518920634214332063424663484770339753116017620499666310430670364955149874234881477381137364700794788293254878698870697145004235341062415235328906767202253787075153788737034462268175645656646066614381263301026095935749267635325093345594894546392910694042154543655459981228348218333442652858580365061320314712009545996133082441796406076912551475283420346416963027558921389775578089445383932635634875320250680292489928042308821384201754796562701783154042042094265376744194611708710886235668913457717011960254367795970344530106856094448587167754824347141775988057230811111579029222320937821062394551061892318010517579586068133553530206572309499493913181648388954366814693238261756863239884768269803578920712008100694753696915307102993003907609658296576215984409593573451768131385451355877279402772254080301739988623510330204503811133844644757933799491425939190140114751883004015449452310653619361458717584829354751249744660244955913406862438852194861456190185651479576275178621620506535650726230388886206879868814465543418416829909279065192963283941662540951400377955313638551660681797761177706199996901502406157999614854879946757866790124177398679538775351572061853899091532529234651070235651819889553101537925913230333754000647928830654482226983692903565138625619455365252595645486884345554647773680435634132977801495015221204242674415350486264850011553096353632033509866464151636773273318990485401227523066448421458248822624353616650228577339214571787548895463787781252767919256737762798601865098142951843508804983274581522779127153944699662909025936467354848685442107459818988763064437949916442918743279985204584883627886314987503060398886988508278834648895715829635829488083166286946700664092229520933983931785622576360410396615196420708806747504314684530604206794426789298242916342789842353051078723753816667703553800972637777351043230092342107473297489165020110703028522293462904318275609251207402692544829459046445377275586137584702525343715166954687038445894030980790060927765425159426098215704133386496042977214790984959356991094867496624403554541871454735757071006934095174651696453172502995232730087560371978760208657188633934840160636037578860927481743970502353775034640401044410651025439403113117300580686459560526400509135254757139115512366818373289623868901621699110700782342646958252941224569327506667155815258455886472779991182532012205736844840133720443202972761668314978671596823586296694795331770650564852005057750270071459985810026078217096949674909970438088490699886196751962580549281178855634167343259171463713078925333243259712832731127508919798454989806212281499896316367474640940786927322990346692310469506874669946726493829368367969069642235764804309901884400201047460992336617967204470567394342730471345110577510899817327092187276506510977310265566126945997587579640259590882108637602224891480093327575408436853193249528694137210225647127625263405072514104217667697222402153145222467420490975010344357086321250690072992350772488492341370747670118505644183172261681080314461376054283985736507164198123885192312267241962063771286557922480030281141675004439589710253361573238430245014359412197137888196485860451816961805621828498196473331023050193556631908362452467176549189038016535420940982359848634267310116323044753920683278357202499306677004055826727472100321298912162154210911853250800219344320218404003434046645226387189558078444976506992147108029689323299412085959539914059900043762862043013525592362719663045288775485626588991668595051688434542998081298270609522534264244704385039402842641191976694508705360774469693607479775735218972345764856998458587027177569420535822824483396861964367165197029606415927351889530353942539523208532994088021963290391937689332361488563624854606529817801668608936258112871320833405443120880799996625762778492099155139351278854019456980134716252101420037465107823105263162260973671102876100239419758871917591066794284479338165817764636017161029747236395090461537445197602838239450735188971592802461470204480495035466904901083947915241555813685365853674545811627320039658258983385573217827743430909878754740805870088967788077837999094400635128859154865489693140736640856363055080473110003636907675127668269388396250148943539366987302709733829888927345456513550760368153485125129228568467714076253418440317372563331122636306720903043866147061817099558457495036317410865199564741893822550704457382230735457132662387132076692865213721519090841152565197690117146581193218152763524109007784956986069671818597959911302586900072244525388991145742676724228061797579775296631857379316369056964171475902020726824654523411596059684583666389719288280225823392442474128532186855817465572358302860247778709141060496658804076732065033712174043949847739240232847321830181412391812812155430964939877496668178148397004231413843599379790227291646516708487876188536010476368917473414732118124384463080574963038379832569347921414437262087715865649996340708319011038746057683783787004218558298153127172882018970658461467329123060941852258935229031085323968199349708471950837879484989650812210459353292898722235834176856785791657077295743294194670294311683614810259866851418068528062460283348366470892313588177157916655263760124957572632853181527026997193408344223220918877661340946521517124352262973653922508208213204825962853597817417470017464212834825332520768472462302054567426977049648929663892108570909342084178500244220652931277975412305985074770260014673706537153994240073793838086582740810241326526094733046419989215438844410481103821673197454691726771660428744147417239563711829143092196469537273143664807349332026994371062924659541469524528582095281169333324613092762244825071757368741080624300590282513758560599984674780191648913777131129525261807311200311176626640269675563031740433573962461308962954696138274347893697412867218172329981919955529177102552978686098643464202995929721952881807731479842141627585655765278562154119178907517087379870136360576535177887273646129145865291812866549124146984470812515161317479570084771357580538765585980800489032165539713989009941179715582404688791455755877982254066630779731090019209419110072410457331392161305621460397549157096433390315273453275524637458692829326782506181589114811328773589985749777250023325806314113676077889888736817613936852259590258770088155506762021371675583335510145298678992938733057250318707057123125173812295817177213170568096556127126915061229382183239353399689784923696976116966752345947689064190646472767028968118867069689177435518754368119441919341817971460714599621732669900700988501925341340909017747941170861395597476757968653897301182074420841841882352756494104213602630881192865385663752115799688899699216817884339315067388795889908292149968228350812231764894726507653812459068068938810921167869892422354644468188260187480689348440413841466405645134081466418263010268415965652622167454158952881536905939004154838389615019698464374395588904730489139452369151210161036982618230539784575222899628699985629296468825113238810391470267742745867683301276644024723158255936445180032927182971295028023227743292442229422305665165119018203768998011635741955479831292193569439139773121335471949211694049962087846642110363654952200634286563597488198046547033057105296296856983777657723843532786619084601434855686755803618417031051067792052978500453470342307572215513506586099059272975485096912073378105008542978569237454935451613853111469283707538391247937418464063845162161882916891829927103926329981228162588440834450876978765921060646163529295467860756335245740742290383800105248857872745856196600058335575508387817730802315478228167383871198683300506451461235762812825466892169436717314549714095340436075661993428667118131717565414708107104251080058775038405259725758877144778243518068416548024668086245550911376267045543223694781781615266585934868618520226328457708140884654688564151625242935758961836390941516344843770907400516270505197212964051772432339683309762775122980814247519755131387996376428486090648867845466697214984497016345898246521795089007588719678693823148960979640930290001813705470235596933805981888733281319001716891549273189015318876370605016411563660316779798351913279024907199109261710111262871829042912318078713737706288874026201487802891972815746166478162591499127043302140535590547525281786209566116844860959634537224265265447528058662476726729875854203179904074042119012610784269473755652518330968636170999201724158151746068390613622923230500855015968603525283033480469215297976428212920704358917240385809145267104969206808548027573026652526304499017151203819791324412727436945639924350901226438047593182148235767602841634379179673532402206259211396161526774502756499299849065433957067522179181911347196855592101159841192702363669743263280522828294130580936690828601294154596624574660474449669341638630947147687567721271155763173136414440405565356072544964923447264658921208009987150548768404766229098230774503254153846324413673712061363982167114194320633917120715175029945472447226466389529697487325649754942029472619844857606489014273544288030497042302078509801915913397756228963510032357973156210804479818812853582366846998038430354484769624437101774165232520385084460199547387537786004492401242231511552796085067194713654192122191358063963275650199661479272452609330249570332663261338424472241654856598830798590088891265028683343053714380353918348864158170530066833884466481109263625554174795143045974486764434427203513747672697931537348834069845411269742867825792048237842251196561908207450077231587548886049959862336634479877664607892753442170688264096815533791220047099064238651620940586848550960984571599816021101081975065896739383584227896913818114313070606555342500785074775158352275845568567813256631234705732310990185844866882342915852275727128474019673527785885916891317999851006880169686964840102593710056177942701146151957771193567540421260554596192458260269976025518600358024971471395966101670015828223973015305967669044557160674530265419961619910113767249995554849155989256552883843729897618316974271264055138822795108675584301558054299211288746821798503555649290522274318652126439262887289547846912821703313212147796533662345142163318412013554365150352433489071007440907045691702636203899782743325814916088293690658356758587372192148877011526366400037365120421003285077620564229349727835437041746888706664041419341644176111331271618680160893817977174866236507026524043443723487571851560217637173792194584688740512975548966209205575689062551489239880957776589392404210250727900845399339990443982576227013292172028083962026231258741433514512846381799260576932404279131048722088935319351123588538583994149900648504615861019030043994024442697793877900936490078199354157177175578592797767175342098855086590002919115709887193268134262807700889609445367168421944334158370303057780520065862901396529120714481125142155602845061855286845430393150289878478495122829214530586055288640163595990867853226550233888798592064430241981649418224381639339830119698639627467207028257337843333645661516709817078343523303491754397698019571918697839280815719203654846066605484499082070767443322951611153180784458585787568634121167176685656733657040492051315020907742011250901450007395263539042209241933140715219545740090472044339161071124220601520828743257491353531167097284798324796448843890899738183338047172738707423202878122352748891050558630388742626388732459798882385532838116146721119235608707144883950357635173875555615531274106624675450836593238896076142443026282534828639563473484683333915278577012174457436164886150628482525548467010230974817694654115775687518388153826582480935129362031940799632225742342046638689389378342881571363893950468639700616725832289231258559773281090171550499865196295058732459714150335359277510420247459679254023943871827192542061372235880067627543631671153355639368700952908768019965643107175837788278492755599241709183093225419268183662354129063474864127563042251568386731972667651714539700428289169593642188309072057430394161240706217974573821058860873319162817715964725127063961238907859357896732079296166750262289320498330091965928046672303688703025775014917478384679345009474737479045402777782404322256055165125905057597768510060901327970041960681614417854467535782368201372470056285163028094948022756678495655619548290518343856742115413977386176702793463000472839068271062865073534736959381489631949837068674331498719720457646285842500200777902504253435520619644565674783503818290138574004813168384003428738943552320401634656539381386846154267660877221461393414067925419807752329602196251738271951444568266376087764054255997685079467949709301510281832890233245225626303220983836518283758112209654737833927684128328410738995773501841666578721589624217103853815582624558330021885095240185506461842029086154864273811961870478893669300947048184662404936029311412895967530774874214851375755535738995843791642686376851323151613514309262446502516238618455986081303835421554179044125607637461363400523540440089474073219473650763480905706694386339853160516441896357343920327174245460602960258256323899525910728935532517176671752654326967554099116202026546845565741964599692723232236124073116924444453891008815151565683074027341280051715514031741415333599611457066033498272591037561790218813730136534696284562355592582107182370568321997099415744882797446062726051788079595150936701731064523150189292865596673715152301411449760571394496472695388421924221264656437178581955289951640496377938591987760696416604913017893686392287180030408437694216491470124518131330765678201822901916951397263835509196402905401699345797137839639519803319385204812164050588686086832815766141578619468313640535495404041737737966503199157959317438314156621193749655435431786836899293328660534564143250714968131103472182211477749789050782629613476012205619583197323696071466038759136878231920859090388317301078814729694280117676742858159649995377910669992080776618404459146378869708178006781049164215660394372814417165620374922356387798253024995296436917031999298476336859239885150757096771116250272475522553653963053927957029878911694137874528222940335522277726221255160655630133269822894806888452501818587775880737419345379586342188329944999181733662101861564095619544113869202106254157777441694061970639053102364939622138171410494164316438155491904494349181695506220926116181448308631509078574784738600417211996020784624570214957666582144688614438375528140591341077374194502711392632379692920135560059129242358712558420023141583878390326502793400890585568491841795246122554055763252046033361696091279940954171055592782905888768864447649239429369629451897393585657226838733620132895708217715344282478168154223320905654773291729035994243349130673049884924815792111153393775710192281536689994944009334905180549395260056835670877302967762750578336147637326102010564018525892733502243951341651435670584424588511639021436654553494968271405813418446738443808140456321869819145948541937612385202440272135763313849334713933307386616963896499222123519620529279367793129916000600595009774993538683376914224588121983717278276223126070663249889586818988003042332052255051472579378064352288797617039896912605189584618023162682628675409170417045898880422372031459119877489095200414857901986182806153763529332553039758124503947014019698730906158785496318481272795281147824574925001577769368692562056371466163829677409611953776104922545159594971452939099648624128727388527959917209689507533983330739640272261000369778574179951299701146218953481551938352869150030276017886321991927704590207209021311441847458878921015466278852478578588987183694328677785785501559342001399241367179385020984513293636093860540437087891073695213031150159574859081643235257939709770048188619205725675670529548636473945647978872946935423514534730911463797458584873652054686027703583233269712613249561937806663664058153471247610402434296322475681521211566407106620573295529536807604724150164942262759852113489153288755205582164585180701458902289677404560390240700001254536453165683144814876300950060126130609792038043821791004898327126008734245912364191617971594660649236692822973642652992269139034686736089377819222829989682873491740590379069244353973140068030825277003504706321080599183977763258482188899818668556808493234033536824339711635187380401129997985859608761458748395869530893646369823565325534197011651564105415948397143697943152933148214223398270460843175518762886001870460174612981765669571632105931992009838606797256711660754169813758369186328024983857751377433498649387878381158727213679119591872476052359560302312672633457485559647434907605953435042030970080422034294988834041775613858259582826029801588225240594031603121373308281794219108506613294813161358153070442901415289746890006576625457994496329034926238499722451617093298317319562293553678546998967364338063361816182448429480062952504222917096211269298600390518096905622571032265486136824491401867946666825300977109480311068296764068213938616186623005827095092390348302251928282622371765927008481060052525525296817713345553998493412769102648477920223139450188650924394053910268126960549584014303749954276491580388947166428148094268823169624759106051405155524783514284086367123057039742956328996024979218663069547066678223436866804607489618259705994122495376429141954953797021479681773503663835165234345118300181312504557452875003276534985674012488152572539335748497850160598832370013112953409878165036638887721391654820866052378588936137700120103009546297376180845353816803092878794851553110234951361920649123418637858285207225455602618171243316212392619833081151055276482981928906507574441362935292797631134100630684545607382836990286110153043774415024697302170657452036341831357734957301961177092521365974990793839582619850701677321132054899506918370214404317689602640280199365126122715712610194449881111417226943061005647299124483539778754831927775752833844624215380944971681725654037067901783272098871120580055457898484090634453079982528993884214574741535038623430869239480356422741596581997044213251695342997689597380238130100036638677720699735771779572349742193443504446733246774530779420737904224153624765021838330716031599249780230253594559917418726763126596751635858646068218485645498372686507856837403447271782817960931515973236179000028641913790526067385437090082344470816015591138945023865956978181807456547023730682475033334370573223468251777034552107128256199536182703333089467009908563828352826849677160933980963328011711029307039640802265754723447186540221282646564441301040736697075981306859603139305571226440778626373754185099927398667585584639652768817048840920474217359140788028663504331588226828708398691711171029929365065240424864240572691556680748184356413236352572947698947948408981860704811679401525821169058746875837486075254132967829222857746461510987393760116852020697839706860748320467404055251847241580834556173987807611591116456816856569228501347985876528967381236258770012871306218648177085192808680389493430169943028837707817770582801822444631144834185049444275279889424772737892676522110441350645196391518218698435904351263054554844912836772417651296190566761759133106446565785420915727818560128359388664653830657050037362432830829240856708280916324989862971226648971968525455978790857983021133070622853645375721989697262881569318174395126534629986808477828313813259567491370663676531416271576503704084691512274608909090511573273066650782137362296128570528173186073692171647970653835578424137986437247426834698553491683190049796676317387147539064455217852885877279372230743348136312647127691208977250078113973840595140781622262431393788446863813440938306176332001208172919300474418141773833790676997493843846115790758253656453068319118297189747223222116298781914412652561958439860597573401312848787403394628117923930599863488566741125345938196787668167456524523757802706938714966740562675975736104246346287016168337591623866425746189235199881942306998163290185969822005978463795469688600685276671020232437710453429537012798153269228490324891219943062713182937972203348860636268268860630865247362661350396515528001800535990704964578890966219612183857831149057214416564404282942877196389486381471706023730301986792601443140327149165556058491452607258410009287860504424134736893482770289219107889693433446977240404591115532168912085357283724033243257687709126270662543354811522697905067929363883181647843783230467378059258124232934024322213896204998570730420493715066388439418430247229171153249461129351978069616146884986753788763303224948014435722975832494473792856423146915468070974939297946118518699566816689457210338374864215014570945337464942585087872582421094001617365577194428243803237435401268324334727378826432601044855058996045117025243740679236159821036910937392246861240481730764937599047551068607069069268783254102317869095107482949043572389813496383916625724256722627489154658964968454414054744940415567367922579070037249712097149060797751987267006169040350627661887342213575609900985895392968759469902462538794937407061686208023174364531108596539643733921823942184036176918920965553667802508086299862947138650768710485227019694956370537288729356733922411461247618431369054493986854642054485539555360566340508365265113757343370333397441901491859975382450702194202674489713243158790361103794173021066463152434137636438806764347734335057748854713875374516282778272383580882348368218134785312329961082922517633099718791302799243680195087828124927616687159895030217741914232076214215043796490380351289513316470441371668556805718425814202565118953824981600438131047800963441280733608785158722997607016726092194230420028720477026095064008322450598877374814126634690194555583971443886520767945168532610017131156676220491163292817839175130444910273514643951735680414396770229141599378792447789874659759467438259815920970068930095350469516337665070442013713030160090494803606838842746600129765880481371919773018592712806655757062518818671136778950058921735094033368131373989612993488821393915987514954380047622107016684932130704597017202688767371245068734685840014236174057852614641864708099026127475840093118689937443578839140210016490263917779305559898239516378825473847761569711040094386308847123368560018010516845883983286786467726083867697441044526778349613704545313890745476203248526695249348644481374272073431722030045118781768568421123660294450233349400208402568655836247094016231176973887188061872004390253742505991667143045841857200415116067322962620526476408890969510433707774088205916037905408708738114912337244485088216017121639775506289717771080692632847753976167418301907063293676526601186201648454836804383684609073851918127775895199261203842157300300990628340275179664329639144374068147814824797552197992930803838958037304328240336982066974130048465810523397766791344894153901162365179037176965965641342558878879016956594004035638056395633034676418637491246886711919742319795284878095253889691155989901223540400336865831018491780834585300635961272394182761760305638617153931214058623852457099721156057595372222784530916256690937571002430837800120324878020011921669424730328266126279991223770237524061265531164882940490288948028672329168779920503937980300917804605324984631698147407964481609084396408610135366427443352774118062141751121318388552455766297099947837492431042730959251401479476799286147393070903164593041536315778617144561760336798390596825329654410179590336731912858616060786168488431847366955771172562908060554639535074510979381269621300629677218194441684680905823012085410078620400787045579005943211741052486300158990752012199851781055832191605815636325052563175339666483448714362321026166501333316073065991198187523862825386967950317496806358061104304866918679492926176581731765096529816151249106458311802466767873597074520920829227732231458898561823120247739076707774678951641116318482788752651770982616007579648466828299031306084607501704207818968327634796594915175137909153025193766006285160725334217036284615837573162176067841155885003767572708205277579313573767459195944062656486305714182790672067422777544737251019995891512386950172240032728447479661168491024933633274714280568258252000733610008406513780467077194780278171105036825502714944863679414735116291235654801157257820516801528511066121023017071342093161174685122710785201947246585583046057452532326954315375567692713303411457978065458784297753824012832212852901187039696490551172679090799650004075250501640163392498119205333765570723363277361253957721289478437860303629012790015078776292145562563580445565645579291084238869452184934367394769681069366293852315448041404357286692831849076907651623413743102820645049096279518151030314751098665096069298010152379786955693843711932280628262854422922741719623967664782765225091650781103110258517035477540662403748401764215714837734382483340475383726270521527780709326761307212680095172506651263238958941188874499360017297143511224713516167854663776958871536718542662824090762129607309100321713562934893660588968694633549743339904418121845030700418665585594467287038639542554976053525915002356840730240547215853991500275843772874605060390981896430033424714565395495391646091871780840646048987637221101140760417818698198565617675679043104285390583355162802125398135147155230270351295792131462354462676256411754224822329800912969890760549905268912859015171627119883131092229645918343950074860076307508746546704506062673030854083209459960013972284082350841999353077146489046464152193067115205853121530787789246020811338694734423706245183821762189095831097446501163728269427837395526350128007839666979454237720013980273795487789697212275092001173301741847035416786763581662222084460500857124756885148591540964436270622710426259515810778534530786183744754675428199956447480131281890267256823267232036121595903126487634337943521626935164280864357546332363187808573148197855539961584202867466367958434708057569939631741130377603089844448275490000169845021531811686796983637643503597600419501269417074519909513572360508555334704555218268199502551059327057976258179133170098745230012417371200207802420137400324636188282072517107726790067806429110279903112074551973274966400985573182511664286393408638007664258560657756176800989430782268026704218354713791071939680030448362993289074382304443262072035903937398839191408800871556239209637731720545100828173613035077981502221616469413511014781493870310596715338639564076231062690386133812108251014405347385272504563565020635610347101739071840040387824712853738947495513624527810724878651459295861816256550064691303936644812274186749083765921918773262990478833782421559110693955235996419285844864778059198061111738212206255025402272501385039660711457814297127135412236836201590592073380620844857083624548404810219410106055930487234175825265988666447536197096941373368792890487973381314183530597044524336913120087276392456358257504718782223761263077750288156331508406673725510177329799625716422653911736043010583268171003946619166511684144755076239800056197845696739844278477365207822048094003993732334988216431690228981147500578665416934246774496955338084146797527689930468787212776170074226337337159661277258078732652215294435201682761043326843076669409881077780958749425624778855206629165665402625528443055559996194119168437368720197462996835379215039661833021798120589369825567159107048626578315230479413159990112611554808964078996744363401787430202087694100607651983084104015932218036877640624209416150237321417197979468121315060840435291348931107134305914100586474820782022734694285512956478613536926613357515523236416935209266959577824440437565540810686922971519809339830225343868851486996988145061623758405762307418932981888683207036926242940925038454460805773001633056475379384122669629724353773624587070069936041844469961960965051584357108004337622143551859758232647357419306814031735621757635489222560241507684097625170351005982408459985328241911963788469727359026771773150435545632668913388091942775743673429832768131785490952133548241093345017188690645657409081243260281678369750456469533266304885877804291581829334084403015128350318898443432415054215360937885589749186582828861637680177190788911757264714999682616367416429743899708063431067586041950565653468392426010764303386385602550864814129956994054379551049811888519651777860741809089859862528218739504776726235016654729497651615686369251412070378436597002362670945989438606567338458923168334943201649359699249951897138603448248833035839908627620184712876524653028541507134617890202900330356083564749679389565031126837715909987690849146362496158705108046304777986353377447977672727453325017722033522150623420479890572963356627398969477916274676454341311558900117531608726315189806033338348616818694882620305923412267112999479740272918249701058337858487079299669378797434013888652746252197041122344342056098732997239342336151109227908141789514931404358751725138625201363738911221754383443805583246553108820053401528321112368680833316992747988945752882551537400354921008589446929564614288011750903359578558524818600168487771481056728249560077945798667293985715402767723285743092002378093087922737817319618429105204407476349795143512835935754847963151223829363173012680339400803825617743458976019675954876898523165220456689272355972728492174112435102028863037478190293744615670704790673879174686452667772328935226657114057055285886257602620016499955735737506696610102341411313433759240494880597705162587926656433154713725380164803821673082677151881319012350732317049204683065703648616086259343584782608735846544685670805124360488487906670568871774372636226919241567197776545317941984373673008612184899537291652053679884739590541829367579710083123808880054080697246751511105435280336205413358114205484256430543577753927164114016169753475635970370380801151757070509416247317423617502975521457553573554186886155693339140443684522812909320522488756433488143670688783801106178900684382687674836206563110225348307399667170321008230589641943050400333085030043226019827655403002727138389548461318693185967788709724391221281326163102601232186355819854848250340084780483154846971608537194079202394201807626493103631294040795912143694115699052196062538941882607497010297799735029082473890203003429728896366106672802178277205161764161556365286819588212444916607177659504528512645419684987189849964585194282722677437553474198691566122963370595676606239234017204649401131972437229875251219649490308015411425819706929184940046005710569212156104178484444725570130204368571798910760106882514351747633407344571514279990964777904679311204685023957732523261985477796600457828525911330505329876997658352936637765401464502249675034498797686660254856337251365319344441526374547667525273499226221203627627526372032297527305707310340166837692662761599433692808579790950220517268815304646245801237765378107400294090573603492133371224166542759752795033935694562104409564716366249594705625552940496999912618935038233704198020686818036851182032512663802390262229321216198546538874239843996111862788244326030566549022235006490818611884297299730976539422211629700511209008816332868514024794626020041291493097754693124299489463714910504648829660849915877855171763748428975339364086642904279581523560239359281761581496148021174098122015824493949021304611776158136753638478881190678404914368511731268011116439722245724213813799487637077349187790174289210568318222015807867657989314578818605385186029971299307973088998181061423741053320063772709013391223840605403388405949241223369132523529868922059004761740147886715328568699172103280495853122136694516295454501353254539121210909708713289677423467948423567583370841128670815474443901169776100889289520942369285907319014222953810940962557845179096931591661072861882709205168725488888158948742491307866356448918925620263259473240795735622119664447850979650542445167343410049668701721395759293336032737978082360720771919487853954784825435977269497313530608753809906317010121283931893347080111547282900488058520211711799034737151275353843084664339987011713778156367126927507755453528647127052596697376164092031536008543933792616431542789754179820407840400336183742008944493589768816574448340608980972100375154768895812452672549210443054891794699913597973455058806800192519094862661010517984889366247173452390373744221847306293716878412666609645592816110795728788695481986256366545587260892234751744977492618338815743011106828917017075062945993769028845312366455918724193238992786539600440185861880399942785281154508451549460373278318930685632466689985024754781655292931799878485059363413266407164362672099988803152180369032724763969675018216612502344869233408915181119558397729931817282884471250492799769347713084969687976647450399430550741165471739867001736199573379416894931850644600635869758196168831258198850651120451360523790968570589706139240008235960816128312714875915999143144860330533891277566999307770168499135873555928731938679127666771452070782222718011013235755115794039959234844740977730202510523938219889375339785357472884351998160537142920668403298481007155423557039486271119631395379496890550211243055485256201229662604626065681695480910765590428866984877668126603405356615166760939103306282000686159044479564012139906196559297285469790066260514070394785873649414683298133515016067730077948499737256576927930666328116962959943165777645402762659796962527504855940131771801934748143828866393807360790803585242933505606397893696632802230424158315195446046303999608947771073808888880428381071603331154034492316932216005458445757243517545920066500908245444983648646559219046911696821534990373297152270918091192808179735556747180559452758067154434493091807537654910280472896106270433227865079895570571946477653040895807785643137505312836746158480616997393559646227051043104390555890348382263531749981545402385288836932064328794417569084609174650332818076870553962381311547930057165672329443672657829872326100467235573693695192257692752902872934602449431940886425800417363965364164499114190812898491686931120102393350352045001946548592657413312245591875172675123761656671927921836888215435522953589890496448522244293381139450870213823329436421201792693485908059709757883223136966855360675265166637092246393523152821525276253324521819116110023797609747947036617477448796274765992456919120666775638944855733054354785181802108231495136850845957639559954563792819617055961919495380170782475926307872215738414131232496816617848898604946459943167963175477001129164283066848098767736482098846814317193141508234231164700341471012956065684968891675413913323166540506031490067030540030602120955022819823455272891727411952638303091225018370728195690109504374919014948567742605680652009082847300457960212180802718332918285509278332566364597942714538477104458170546233836633300446811025967342098029068897463114686587650670641957025424948378006332700440857875646100353810318274152103776311713097504244625650758455668450589185592740249767557171515125640881799947563052894771621990540348448740402632806922762743341426366820078869069744750338852637995404415996600040836091199829112271280522066842630020196133682824210237617724161837135357890537963945948489823779027499490987408638862007832741633403881102350534976628692715229700508781295051767723738040231486963270440374266847131348610514280940376953806321583308569179124438245387856765613522166645618392084230438279012243941480963653042612123213363613967052042112938128604735850901317163639849946219149766549866521290765013215198454228955968448486716481331539775838651622387741837436750008571528183770695741181003036923496440919188893660311622577368470083383811724661238911737899196084330937895164550365008935963077153122865331848124667885519692823165187522852208407710063368625202777227462371998161337760256819442630074343953358732378308643869091198170616017463439244285957905060687726852199446706224701649299605977787458730699113997839653728950008485200061653730956019814665837829274197129595004486003144085508152267257284164927528251480319598049976122634282897710848701665010390243695070349617778465440878529183825170270482123004325164455085489777370788051436268171728513789525408137523163063483829347846650985308995306419003278019777066543747534903031809572274231644207372368323508187737322560179515764798994057939893162403023136935950239752725224158330348087552894747641602636042524353465773500790506584444938522129024956901641180397747274999484339650204694065617042493666577866714107915482318723156446079129077805737621676621807345305604178260619729268253518951710817489765315019593698435768401903573226741987703996479098991236173451961244445133301383677809561439657895473152356828266003292826431270041675526058211417945920756616377805184709161073490775067391930251658053646453891989462583704393693206036370454204707735129389282067206450760853430712338860134584723543588682849350428453521031278744596463453220114944908374742882029231449613799953040942040156169098281810516736643566937164690479331948525014973346702352099680668807920188440866704775710826792134753013730014192817464434227194795625806098017972834161844536888027102793712819930692225034952533109156311750366328597562349525193826741725749201292982148264962027499398475060152660204801680317143959135322025350709116781332787469431506073811608217030650875426816763233306231301394201709541266546025390905320146524079954461109910708703287939514221501682058943688355392516287791978253070676018859063706447222083597436201926195670158982117872595785365702616441780244159104351533127644916159976405399401416782658296175102624585194982298933577453222707446771119917669976892404549906793192967618560673859790921344250312020614746617653037114455415213296120455649875519929784000508413725864027723897224878052859964178250845834131577422322761505270638971228460443172863817460293507667989413022758881366489231266773085461476330909045077089382126601710217720049642227646775262057229444661846486816767586687065531018464188704054557016562356828876596248747757604725434341638537191153343381519412432702991217666971555029368137042749324036324823801430090062005078501848716416315784336020063522419907954435646926208515890738514875093744695908187460412818590652548689833529572587207853276602276062567246836154181597883694911417604084430950765161570359229969317313129108914815781078490912805665718624801328720340136437255250923998317784581316794088622069117294147506888725156700573534057333863437373777035479860997856196751661614180318858138500350829763256837281178654713881376957546651798683186732871883335652336641794450267003455757552307391307072448708182660119312091459821033027705321905596616287701132789853041903792054037989917129565720990480711070989657622857020166454392771606375766156451770897567389070095256968697155704440541139629770206090020763600231803814415778817973455019946123598218229464361648800991332537403864490710204726199722305065669914577777114641759258968141491338812136771504117652113676681292279504756660577901632194077829820633919034076501777483493078508332618273244232114553933393616625249435792093089703457763689570169251015161478667032802225900469086598164574776462553132078856667442690243429124419513337084309587197641471509925281198742566434106999402198713910180455855691719335390187919177599197572076949609063869110451671695890908983639865688265992283225760254239676388853137245191966278160599962943522676541612672640932654808894260309688101130790209543177468914936747559074427116413808739259647726348847506905130812877248144850327055712601019137923652742200621452499740134671536591810970462754217363654123951444423186586757780963329298597436502108241724164796508875859379855588715018319667675812914064680017446850840782170524037215861427426323379608637398029645612187537312241217232862060070490259745725694151352729637791092461969440846179601734863497683753221011501102453917772067477463910495391542324638907981353758610548535853653917037547244603825568837417012573802035868377641570960616040996877818525750348563718162630378999162145536746593891089004346175152125887741223392082709916997962467541482167077681031250204390923215575712567064400625082277676293096497211328815654785934989116961456025614730316953076785851172863876795767412718890223993604081404197176066086014450806370213599842346530634892722508399767811877588148882959385266696037761503016772250838008241634122321652963443741675353015770696407893209660624691915538560661767451534835850130112964929055391605161363155806744610152600600808182681537688674761753396436535418426030033925335762548995699409500349347934668877372494675152578804013979897775975017508614514858708751897960428218960027082102222389162513376463579140505005952568069253810844096460877562564194044470231375956936922757264760052194890244086470124316660594492380247062701869592699644401929308205195550663167318318569321639145944222072169552063897669714626544505302720341177093481252805413038918670776476596997830003122309479089943750269518563015511244422036558694628635438593785384944590574693382026792239891317134377488174809973409353271593559351184829000477683892624587162659202744105705191037790907797611676010556964108726812953260031871402434709742872510580820498488376893527176824903857935233867704614995242071021978284624136595597052833701276146113618831401120766324545973123745081457362625886597883257981218892120330763959594182343726432624193117559539286947794486680166897063839997044683851285993804984155107013420675108984426822035363937385630009157879321622661952418600965193738955258438794931805310595354655223680931446881983095103560078110403764399135066602439338537546514701891892529035991996280551469073701391634931916962631610864837676458582058662135926763336036033158208634912127545144639332410302902462870907852595024187094584199247800069539693421764605735679698695352719260558606664582013766083207524989725601899705942572431840029117992435783813244338184621699200587314018201481984421474684946933063646154043686443922135024154771199075596932795702455540485239578065213449436887271881327038845850374059419842507849632609994951416459070994824090560591129408512226548486988221069906016613471014666049429223786165765920485852159682864232963242562297905267684115322787885638502989015001716068800920054256754371175376881607879312139744650204872958389348310144446660386025602678597076540039783289752390999522737327499689398954526121615384468307934418480153724820289057471831608311734971988316476623564542478339545369570707452676923093139118099203746514692286386100081262426883862389835138748929030132486673658187615131680863479095746920842083116797146767523511090039176039712552260626256442480716498101075585736601236810748767873032471669310027057139332462353995130987114802888886698057824304486122001706922745316752688713251421125568292927687083062026261277500115087701522049372364390743414236503276223992805565511180206051315765834057521328533562525954621759187606471582787176510736002629383989886266740408714627706914817488434415921612778589234885659056223363343440909346645230971058398367327689216477392594260674054652247002531028766539457621181391658779901232208201536589691204935882725169460320327942514085082650300844637469850291638126247888524957516609016998705270205256922119488502952473150569548917069288276760371428732268176860848820264084623760541189062957460417900676734531060123544736383509997792794752412211198162762271024856786654778581443336566696777092256315770497104272872386535285103218425346162746562265425371022127811406165569244187731705104880464243837432200461182071023640396285971435798278057841379170969489345629766669127765059703942282920777507802290632314167182232747350317322327978027517393295893541293220607096152730459489668536849611919698456206885177558791747082434246752323151742753234135957801453524815032636118384244207449379455007912093543955572291850609116809763560408677903396532474642749510601221255898783617442960080434341849881543688969432662219256946870972249724225403970837586882911107338295694147455617651812673752513951426428299132834106313255696233512060528773204720669128957725244955815520940739925119107033399758504965487713906618913542701512950364148698187862062497605020972178867419754661672865533427537540674109212800140644378261741368794987450494145202351900202518714564831399553098412926246086792411509234320194846258723270775836678506214799778904450914720479654885864562134744699938523288099485441871943882254345080584150490486302597158177776658574498794131437969201529733626059766096247773555566287835990944220514325996447716838106077503453181606714057818382619440603015099823307509513101179287261977173753355748791737714190141313898743975980188834528071475157989068616163250196553953850494974666250644178860863297910725431214355603466945763442313303612337664422382526528002372973404572936715268377256085400090938367136450420985847568590264586570453812697727092937444095943903627796916340647833073162653507210330941645982124454874514352784716398714215516012256449287996901144830729707570793915672525416148647349174022192075055780577040189098775339786907787504890252801093352175304332159914853615115245247197981832124709925982075434326319228560784038194469953957952426771804516559988650027214557729506138574948765340815287095146524313360110877530075345507344671213392318802814478178143431045223315267566975804560766851340040144826970154089459164560898840259753604694452877522512053267713494552231641745994032491082019490282594659222689077266987055446676768524746590041727611609288386326240635378912899244620083524110713786538726601202490336329249580697274483742536964782927472953916887347182476535748297154768332730627305694890159108783115250073736213806266914469020601207326677598567917093304268164458271832024223755046337067381463920635157325523776912699858035649871565580546593667452769030203488901684933874052962693464630737223173943514766649035305816833748663254625414009397738419690885495817343678163908126216852455543978159530345451033735001195292232144793684039054943248233295821753737889063848573135659722230553580797121992192335025811981109402528542170803740793558130128590800394493151420516045596718101410829912703505468210978792343619741031997464892916497361098206956132444283600240027888908962844853047760104589262329812015782211709207761503078515209789143969216408440179308366158875321342287122012457661274141126436853538498113385867356730931262087665282775531126669749565354957181339112638945179059369259342035066769416090539675390236197230001648926457079930196869266470348589504183524838861165567541122564087686026872729715920469934922556184237680645621184497611553703361000222779715196329625273185156027331687407455853712335938863310517742527310794871248067517352582692906875699411130940936990295120796610572826758095235788194192751628124801215740576448275666724155999717179045955966510435671114287770293089131893116913975273564119985225712901125311010489405823467103395480629598800718975710581628907002404895092242946879024417833784180506367071968867698921511724924219282980031176311163789973441393305823603800133717704590553021700900101077611088517430399939627757623599766089466198045854316140218906063068125259541698694634345823374735245200532649003663228243951067367668762812809231163442780676446909236364696642179894997695136478361863189176825256056057116477664352189260493953207699149249381781839952874986656117158474635649469003214128959192357975763257059086480593166107696476090937445787483930047558816406528266738788360629617221255744583749924626820262997183262087793800747580061231335012412673195989579944415217997277105790546398212094064242684365920812632654818409991596350937604502188679812984210395114249652019858217006053865459301561728252021723627746637974773321885762953236973182152450068369050524087756701545094682788785580898817548641117389285559011908997340872447092706995076734813562944496016137560694657373159535171452310829316084447402656460498688019032609580772679040404531224715653195153308687861400337341687039069742813670597463969095355614703120820038639437668331702409453610213344570673681156736691855295545090396874926054030825237310890475255522066979706456135797542722274568634442789615839058147492783078679264672174296066499886897209560963334241826976239009752157375498035821247820177740573925386768751327260190325287837826438868363091324341127521523707632139019074857452493141065282014601346858530578848880923636511380995632961654121443365309481804897135884522406118311334505224865907195221114213533822744484614679013688763026967318991363458766720920375616342678791962152929365652540925093250036409939901941996852337852818547158291855595447991607424897503491281042959836624333497883322637499095965617160435917641062209276054659139262046167048765015722387920534995380957382076337702714304764069216456637342712848044853265750038007593173768144492349261232643711006469836136477365847063756574989742777991951600795670955570610446435262652841393577191978740862616395856166577418818784716396440551461290195519158791565126152575524847678205587380438589887823281965177800203657341765236592712628199868715288805618948457354912315381167019950837394504631698254801011733811852743979758481943238372533501397672887519940364097699130263189541286311193276699549940256321982766009565693479495199876504222736025941177812919088686796246850692835370499342190956819982124775225848435952642915509312256843237240209578938372266571947337863111197874474004564953760797290397130957400945025835867258187756480289151487887408806009383945524785438776180907361580231745656739320964025258120357164099509730911743799286141367167964474509335396707840925206376959444581151399208116370194119414606262719446732818633441060161117713673311790185377887703116330559888028738550602171755077123296210238320502880729474512296399385487592961303189364113425723665122056582001715176695658550945225174481480965366729755057848617719227979048589132354252024823829324028903445030327793787041881166835641333665436566745388625301427804712562082341157999161122920367425651611461047887113878202087575763780007628465658626101657052485685934194111998590883446313204204763643584845345608852381194247805794076121632315923928527539726738804409568759733866001913301248606076071025627916066064552838381874073253544185904359515538750908984816463909864291551569886642628352293776409677431844762241458166419612506172996706249676416067877922891936726214463165358822347505417931410166899781237564608928749748846768996803456771023534807922907962600082520014566716913495195268461906732599852751400853330655734625932967444775236288538789443020173712175972064761442373854264290350151518228008108628818837616600572466839808821698722844789777663460892093174410369114405298523948599074114545129580636189458436114559506372016310752283326732186274322596328375896690598640662664889406359917987888266432358768801807185666050251036664630212306200578633731466947314006580247724041821315469631265463609783880437403250021659314855690570888824217678758793532879553995208806609632454848756060870366509522959143639586642330222697603464270008439381813338484003860590558496824761725223144867969835198840444367721921837080374927300901106959506138350380819678414371042475286118893807337233625021332562475649959588849827495086225302671177847965865575523610147639853767284408279107397162014555209620160842462945129593690317128837646236565683902688831739610120862559503719560897649089707199892100399508925510295824990933297799438514820070439347585534304977981639457620178222030021749093667367170005620107995840606686636836686203639269330488110959466463100734438891020969421974833118709455221078524292362490015407332895671467311212636256888977617996478076742836880477405385601306277714718725221715621188156177931219224186461780756236542388705974571487806129465457060393915804222854480866748424571150725457815185728252047137392200495046854810578361539002972536114859532218230333635385387534660187901046468596146630627783591899134354410921238136826412668037576277959870312763392288897863401750737787219971089261816185710027980010099320486388277345801673502687265986342963421620249682935666077312612624590997419949122225767007365965592106625468018600768775150690839794879391989194797448589871837268449128886222255132380904393849221054472141130520202670180431262218077600153055506043174109992775675747121298799019271740551457669632114031290699716729744332889603009109315686386504065955887102724040667439244330169379875145654391962083701606658080579072800954108662728156193079389191570346020366598878435333072642769453268173242729839885154054230325307693150175383505174965300954628620194638762836361623892723702221499218421234589805394911103984853397976490627609170159976853470236664870216733357685211189920540927973650669022978873293878272589848544941773141745511857897414394993969333735852895170623468439867569810867626595786249159130698358138047284204699382831835737692236635495074121435937436459044347838952746769175291299132189614127260288384801696721873365346971404381855617464437043145924497757330226208138896509533172124119089119291283474840028417517829069418245633337391538351941417173594371188545008930007517216785204877539093425888213463068653765844199971728716691324987542728245668629013796612272270495794717863916017010144723459957864376998947541198696104467839287577908747206226731534819231877344567380031656553302084016104513041997959951396315498019513389659850109680937981240682629831944619345514930337063641141263427539801788873504378142413183468271051008780743656173423007170453785456319681132403652011520968453949936130156053277742632028246859597230775431911066132781041523932733036231757265733723867976799270809851366756880563514088230056922106054872374705817045399531978841797579202084804979670161892062172983905947102895055092862116611701310931355348837013052855139593469051305958232199817098014798894310833032980447048147921851638915355379750296816561666284170011200499089534730693523979488853313814673415819551660359029673849968517706994741325052049463857183380702526105885469288216306529648711508646024426756418089090184029655343649949799032019304406802504393871209943846655781447602988556679690098873698518484916661401741389650069082881978145006850220318425500487884993991707355074859123765701475520211656732313242401735571243749578979794870420864208872543342122902768718091425803379917738602827815036341654851328526685088117022598141715599538087537814302736048094548726621468323998578191521825142546156085929934811527838236875270769899842797330173753156047181279010141741442092221784497821020083797596963057525022865796891659981788294940695253545523964956426427703769869882856034276636433887637161452225941293546312281855965134127462301923572637361189885754070221119536382381166641061758239898377701372690424812016473064641670537190054276411214951642546818681683813525016159884071460782607800073747362587394978862456688956792566360214021945306250886976592842092897057753886792042605713355863772483792131438724923539821009500991307763960941697132153441891668480886504638489982530787646846935813684968868398667216391069992261945796963549176879948677977045787963242787747227199591227965810715633018068145858100467309906956471436748922769575910971621285628394830698275980157103509355260480808170310306941972422836093808942985651592586382843110221590141793964625291846346726159870472143324887669617282335961237361939356031828539875013873383891642123478984494272093308569997723516826418454149185780702077793446089476366700149513907548872464580165902724562414841237843928592799601514263458468505722816069106659794914882480883521751003483529135444018526660266958308817177401986624302292264939944519475686763692492873463661788600860369235463673588886023467799195143611668998174181175223642912761758451150316621085486076892434504290759470916598542654302455298674375921151749705558375930712955226391888505658926748540954503872573445332838997870484525014699102746330969698602271483291587346805130759359958944881799379747460422819786644171777153324903291533364480453486228609123209150404603114674281251836846432214160767840709791478169189580154783218274706969112977766350766306106222757328230716986353000433031755942678628045968361082206990092277262421932642147566672753195621105480383880475701232676810107909676656023960353772121711755973538187576852428941669579971981245826937496309228917618974615337533602860831458143807683118544359689556144503145744162264539225780818428901013021117199713853578342307423450695287962975356161923222038762109485679430434654084456812216133057887058822109772637375225408392106101209464943103627153549069322802587224395313799202326553582118263217103833901092749278635446757188168453459732628752021818168465368968344678989820114077376937791623992931180300469551161290413693096451928922033331371348636789781602878222362914503840625921858632477852581334469159889190716709676805022722134897177098404591446354829292416741076440966331771647220631447556623948351358845248891647968541393359276300376390206164998822627732420639740011618776404666172245247844582335628873625267478661369394651917486615341486704727958726019804088908891823718360192189858247767498994423100918583754003092600993063274873775687249397880683080103043910228757255136246984824225595498339759648743648413073489882346997550027173471324229126141074560800258226529632426988344283206656744248664060980935852323800024353123825477636107152997155435556548921390038025140770198599640823753213961491610682827558144706589398896992218841318992913904180531917762845746329946124230365068760141037792633014434652694381962758671732937283844555784544967468907288476853037523053833426971033082983217313725698010720227058149880402867727582316281144694453515470261559946046251637117587970170589878922933856652646194125014902013545726711054485272331969299328214886745997723977113339722864350926376079071363760198614466104870408602458850023818065789106993944833029353570510597722090181597440366889833943981442988785727395389517767113428422371901160467527291667186784683271594570394681651205864832705192995858517148868284947555914120049474225740169332911647635471635986759852438140519844889935342592182558399026592699705654120249225405098280732233525480781043613391915335460838118711212622461304333727197295031552277017004011031431654890213285799854642655701981241912076143852179685930625280271649385767516570451102002542278883169466601184167104037244736137322725518158661347138063244761984704097126291782308834846152058161861465377482636735058892114293058424115880776294619410857839190908432262320753763573765694468802416739970133457410932729070529068845040093004080563147964717945382781320999658890958394113544356453180909163147839183520558692047779317499215580189289163630615045418417116287761494500138853279675904098421464902124969994681025946187658490383995176829903168288859683664730643294413435975170248079728012084740040851352421172456664428635309526592650460375876257789457809669811884250934089652569580533417813085688664230070264268560896802458857349164759907131446628646480442906737075447491361608981218437924705555389135056494419802761762854848776536071527667073488011445591690600337200371109375663799845326272057803668141340880701964613021926603852603085378798210283004675317617269022209025699934107408948225985457093819094649763583191649689215137753941969904463902717624688204681446051052421445551980151755432073558661151241030151090648124329615765416231413949905196454261659876400041125492585223607144991281486994431384025926424990582410444104333742501851450244018056125398396390183461132139285896349217107372467833121004896700182420635858194495425291600545039095321000172132507584933535992142069795873963628527187019801170139560944475574733993565911834974043581084937825068898960637828536955508307351955569110987504590429862436311513154387411556691456225572647717649215794359534651058375111992094433343075761971059206345625646893485389901091325531861419528131260583801958335627293463209868082681198353740068027801610336905753740010945918618340710488517716960417191712245878078814864432791572853801357980678649120233885753346448623748927790584844385036229160024883068771282218975995016293820223116461631987363288315651655761390412911401195256549097229942455264913785988343694278445322825083306442518931596121029945317726988452945011473158201205608507649979282379760887315501552872687346167578999200648709940947820029771283781246928862912506435467967013212927259656164315700428275320189638965414791066608230075639708247187692705923800041885408540114565207939929616660148309959276652192624561401469867008832907389663024433877956584073578323500659959960408940050434155587280148686222002932370460371356480585129149357745737057141813758287295288729371717897706864901418256348929301162922983855219716225261630167738098892511254432771348613420555335162149928552872987840624852014480881521932845878788168449826214869522254557296854126731849973565604100766705346495707301432660763641626736049589874276848066603377071505676168959693597839417761108889904881451334859253450731034736435039986483443270693751274468240280040566785637088291130427071604427271502704493203827038917555339918859482071759409075571562684537106101093326433797123222515895800878009404211648129948899302614842887036154763847088293926054325695204212149497611476637435043887066588651180507320813775559754989016932442704490874356215855333933095301214190081257060912797911567840420876078665637911727757260956020559738529796356314896273790982436822458591977612022786487952089103572156736560801899817316015579323095553687272034860030963212863502642562998418277601485638237618347208929312917705949629326865484884367480191882605966733908493819026259570314770942663473329727784563145157920464320461708873979497968321751926187246515520849213445476015459433179956993889402603223756354058286313193955732590490077811577498626603755570613303497201369251545959894843258004138151149520054633282201483169856162662235812079410984469519100271224165845497457714025389575720122114861901541219509861849346368978680634100730389245769348163336778114915037329124784278404085085337515972170224995208668770182832532650082709095999326114239364942651745804608966901428892530287950260919797886263407010730729130307851851286517402640311446326801073787193547830063620001258208597053704111853882934726011433986489720531665794238354336379540075814063564345873753572972188609532209513489070600504488957304410525731288719524186984636698328206257410887654979235841108217434313061542291973044153411947594179071772544206113106739588402881927105701449871471254946596260589574048407207606286443638610180349394515773997917434591975165111595070867422391090593914749874644295403911231743722707873726250380742305767007839022632796071651587442922762230037369317266093903278303015020954068621388357708298870932162713914685114455195857814770248175696325837675574579772336095281707510281204068147217040164135745814474258078302841824718799812748101731502825398803949957483423421620358076294201607925897571628311466473041856416347633057053392461255890864255325838220993691239245446157539744126591147931376926646716105989443499398776684246567628773023992818947635746540432257642330921877789029908659448594584704414842463592628695507946132140146412145624777790174542030292606850756293271939532145707845780904378861687147534977495685793841247691394003219393867129287961656952831051328854018724760344371906507508093798604492173079544847245057228924054796432488598493972874711041464888990316448464256569414501956727399358962603814080183662509400686073648204352732834479660632235114120652045508505328079366601679832012562692140652278975491747370552804857243090512035626760132767907455781401807899013368322062229109557228748366332962017650666119878309957179442037416323843193093537626675211786640363551527736943990765482181416805657963472781560869666858674888848475151336761846278344227622564289339400915931973642608667428500783632596130988002259487450034617875643402820459672900937328582080480654667093677813416556307502631159760075942275553780049314853961525702599830465446605244554176284761409890303616076095915634245081173553170180890513345056657900923770592314197105057434590823797008007544936564588950574850467184638245288649527910065312050353065931723337640821709019262605667869918512912763354871523541689292569183668840767460107631741634948909333097726566957472574415598780069301651715517112099935817520878613268061695865597348442287229794720780771841453395170203932314351455824901146089564984266692694072692843046203939434366307514381518684431892388711175014301747233997513503971828505475323575975773593040610074243296251643408080792504956316858590971204674756288774477447966133705259948933956310993727551329286880434832083545622707371090012653650319582937395948259260433502708695719045732743419286557660714284593408475527676789971218986653696963422716321499089243334544738568034904999134191021479668359468705694766612101166278748035106723600461929222020690778515357357436616442519988213146042890543021944128393085159274231036998361960234971864329146386663895896068106666277894578181789399597212377335076414825889381722277657077056972815396377116356925292752501874844492508364915059838795679171465990234013012090528045833061555598892988701779778018532882124202168130596848060595129200828133206047154910205403306151309295598430023220678027575162103515249694383212282353762592121539636854549137523667531869436288629783360129128034665469255641765021339219005680618258605130302295755025921082523882593222984182687303752979710868411258859563068502083236292218670732319311291376423663353678065805705483250903394159726234670532802765721297844301518687071538529418000402242231458201001128842391643967014362739224243864303394339914273985012634085149467968943050299021621321355190977631930273401331828323439394159891674350279977403251399667432844487784900006517420844409119196616334504997123069461322772240212357578237405089839789785736316230063774768378454294758896297849068239644169272727697407139950866309473042552446966943985289779332097274696484925763044862089826861265805800585880576311320608501316761938209631240434485856316823079171219145536561409894152723096124218687267189067389684357182152582002020928907151966477090617418398483870893836624216499549189043265510389926518796022622195824611179043593551873543513205220154851031848749969878106941585215054374521280379092442841361516196087211216891369189525917707768293561448613148470125473263064084648827759661193510699809197914247118202384376692799205569392385163301378388772995799454879081242017117306503774056735109497171926616055612164203454193971437259929155358552674827145779852330662754759292639268550298067469236734732253029760240564831435443334019335722708345927348268349677203459781544130206855755661857527692905104585439959893676478184650609588389945731496041923431373554536071726868475658880689196896960688037813848445343630875841332843402546470944221063659094204453968236141346455329016992864730344662252268008768471002537163684082933723302023565679689591114786143865360122245615545842969593438514692448882515506454730407211060589799411523404110508876132578016498786283706561969872786789877186589860639142579346254640341821958578931432043397891911276427980723668153511388330398092037637487273868108668201966655115308025065956147753353141036761376069527920991697398221090679975296691351770080501148658572480967861429963091861216495005183855821390918839475053381845366573860265324191378436091760505645009320559142846241476874334115704026553316795955816449529255896905886611552157578376944953268228084572522791555705648134616769905119451319727041686195621292721486505115727812502456379172534629268180995611257858027185081980989526102030873204569409380319194161364769287413049831970326531482141822312794643429262033872358070285207160179626478466662327271924824100309628145168639489779492914495766726182572249492383861601801735707191346499935947719177214783145899148362697536849341582682482524105594748597253399423698883804892109523511181815706804182963696773822135259000136236155144844786615935351139179403258727381991520312940677597684014059604051088568230750279573862673459829039827417236707798452735961162316786869871625125095323878289796520846321589463703743268198698367367986032283043439751252042691110765334952895524775777188921563788484927895855253097648348625059644807310247691538734925153636287826966770320085227728143259847135443709733257959664461956074757868166493039583872952243811976683934496415362489668868578991622335368623464944468084966519399320385259509877082095156031509564269821576607084481150186312674314651905619596301098919034552782417828750539602448430610366758462677921982848892468035123500270654611512370362225756292857076921614613619307027127513304178944077293297822712442476860914042919412725345444522542313155684934500771323038512087803681385739206939415633261138100576665448393132020596889083420545308434870629377711553755904913198780247135825738889736337744984999454556935959196956220950392141630463885890899972167919748725678780716305867914363543201336047735658195953314364564578608535753777084308200084594163585386123233401209529115106443359072580966168551743161667164797693775079202360895488127627064804038898948318252832122274004013263979728955321073088124405166218831738155604245435672742296377137170550007182481082912758870134404578816644948208241707215597381425807098101684756504066664190200324708331934879821515759074986283372228871429124404942928314701090282473793315631893941732287112399214241405008742535202368373526419869801415902655689056845132530802573020539694512225945433903348431231048602535988650586874832675915544004041647599254340696090155776408822906361190543202690664211050912695230324206084800826578541010869068790934622376518064101840587096678396020705004873761906545931357870813864761533510074690966462194646497191994791860267768288684552189647279775375681284925223123433516785190441417511936464922946233935790306595596319551486505078492938561819553007086904406451249093175166187641357331702179004347380088506560588614962642192127445642240531752315005419547255052448847404624248536034274439695138408130064363743572339451316216981107603535628405497255087328616096519468481497547398752886886168749566179002772065626484820797936580566176840222133876892838015074181627866320940306215977453946627499131043135010620112711435243687412959276772241718938730286874046541586465601843642349221610411683741635975047236815802757558550763014198125063361146038131635151366987265644813652536483495669598716261187596289481227058648241292675209454091379318910232878922438159503132855909652355578641749741259741767776477804104900796563258992266391437192770323059960385360861111013978660893560009284647857968009785520505282271869793433879652710928064846051935616956417951016403861465350135900097649265179379647653319506502115229460571448492034771271953602119763489954082675058525474323677325706541972224229016831684898135806519573856763617851242465066363419601734922031311192493812865377216823228552046700584877425102395696990200608442235370776627867325415203497840630768376277091864837924430409887869016308818976579084053156957786571531617910495416536501380576932372065904411488782210164325238719922994429376878022817408225222615412090518479393497364760599880493331356077973703872302091963235445299424395320168052903792393997682772482304669273063509944697359523801020653892966531053300091542859031340126129679420818098377013819614619216000599218009668639005825083103186509240517128018642960331395319729047935799149201145105702721383065696290017648599908034514622148167478653992473540131765820120040490535247655166743888654191685149391801088360565640972055955567575805374645766973077363981849119120541841193024099267750345826102896664198508367563405407590024833402205827584674362456514717782783074993325121623100981375376840359109284805437987667796431856233290805167952014012726371924107763934871540302344474847601556137474308003481461247656796422621816309934709107488201078656573911236781261168710114264157576440742430765927877438472930164885098138671365640977948757105253931978350435026900867341697965010170064371650104637107514443671995210427110035115673610106271649132365447318931827941296000755523675868288597199204267382123967732006058729932069106797513083996982531823520030893837662794352706622084330970074775197949002730229546737312507114386534136750139338530832699663000758908910185299938535243418085359185104368353384892026000387386984755354371404151868796967576827248160189152178201928543538672274618367086172651652222641932960487793911674875102803251190729084458789922523304615631293396832111288349800902297810215231928783998243871101432525822670253329223577849816529005073950755764759600530576804575080485668745870537275063844641611249517613075280592101215056280215353759436757679698847477922554649679213711023774851454189566456085211470595934820833065904590669030808567973734013172156896063602890538316167689383069747731917845349472716641941472251408402564024685633617445488713794822627033684939041398921958718355988864686765988602293501779499804789200980384896293209443765972807431592399199006384460281705902135195224961961125935534135781901253453766392961137468310480860330017798376192705813106473164625213958559584218325693004044536675850184340715003626898801649286624534713542926030794086932085604191661683802351992404358573382001885522950185809146265476049579144692259501968473966960883017585509212867641724618641921188793740656312967543849119786945766284225268833365400638532660254394500358344802189155568900706535035453651059485749705131800100884520577203306369778700352427933496064840473341018346801872423564508560227432931044602325303224566502467208833407899607930492220399868410778592208988530447642683700713417982498455988773382376787374542194807693750427147369720740452562503126917200971177456788906735070161263726482584217157603687455638445015629737913114711348764650439214544065483291196423650063551531040450369102797305086886937134540183053652796477601204403449545228498213894696768472095792614634868179226090644174937451258733877183078846952250931884356781911401306098261378954918207706660628398354862035629937479673408420297569486521010284776216864551822305572858806432770005073563691224089264927197378615910547497472074804667314166184243335473606644285968572304061034435324852613487336690841936807435601913958744768785474269959289183385341253821688205215871073486350733527980454144870643676754208543981825260592438717441817938794254685136867589004325857702116998980318956179967521506230175881070657293581167153925758946122776539706967927886637376138538525021311631925137610879950465022225255216202535609701654929242201040303018791738907595216432145555636482213759825941061306159101090717497995430712698034435217663356335096734626114184342574670822716704308373001180798600346691539375730137906764793828788643454358659116359937850307367682705542532312934688645512317038417974438675289333687057426302426798183342148113157774087375163693692872960776399946881254585244977744944929861409233807755483072947882360100252553270087900990633192813864232594831825659156686281965043212564407004194422422982940319256284608455620076716221125090131988434973413475809882830045543021587488712743251743100478813965960750513767463496806233090513850735356616029573606057614431788324328571738215186382014484563182694883598621007688318156836015138902244511710155307409327040382394689554804231261284284367864311251447404169690519065835095661254935536737007152220264722242595765755140215066067540987348935372198655682130994445721259362990643944157796421492994148781048598846496504257596407930474566980203097074405749085379432976046125595498025187534614833395206370785189578604048346285837802287059278641548440808909394544369518904488287261874790265975481211607147502736939208555936964109710313146158408991416974971023372645123333871041845906856240372532539067263898488681312289658338743431903513966864632204450377403741755412456490699064532380598068101268266191019723962289102485690538703430229429721096121030434629656394910671048665826780293920459645454612250008404830481656538955247510438657406149962388956614704967720226291669780859571643233528176669716183310657577987348019972083142600794129309489146188199783377043860288290581253771489057749942843149444086011665988564721432139065031919212924059922524202525928768582750654721975540529661200989496051234197775179011400720321962085064278955494701054483861567970472464000706192919871346974294179687607310636630842954848194546246272001387344010034220046883997584512434328817839709098136279321424970552283254611575852814927495665480612512103579840337949262920124629976970226984488327685177190573496077121144723956236864955375398113061543695091475259336749792154619470945709712403877109867404807223655402282912664041883637397406272117494352409098596485218124430140546313412397490808228796655517195936627651418560791352495017061396538543551007748215166684159743703674894645364488331473248365672814499683286975234490906898570602002999402167481665574574901778198508900801598166815570629643184340368635566288265162200220996148786123650051221874707814507039773573763830975421999997777252055269671787537558717199730865379104635492789309396239412707344016208168811415801658524336086934540214618264084625097603145288517829088863451078531631001411935476063854640751023239145294439689559568788462117312949336850957883683558503968412131698501640615763570368913336375712950799994931533494149942478057134087341224132505664118112489245288607007633281082726513162560965108984786280592498705659660574973765506620233793390881695327649892217481703440748482600211071450836411706652129909866711959717984857183276871335173047129781784861015911615575674862413103666539247515125480669590531800252423553079919964200616021353065505492707764411804081003452900516935536935141737267352302487335345894284854279240908784016812257564553146234196018566481695670503603686125047897428172239513975855214494235897156443854882917477627195033513034333651913474379809280995683777014211135479400427667136101623548233232801134785600040517276496766472261530645406660306558184995004014229262064854745778844991518070992053786819563284231191836372174855062368955998868720046447664163442033159628157052226566951812357455294439442977213410723233627425714823270419041048796815590922649350608979367550734565069363562728095367966003477305010538144847966342751495117079080247099816957546074076444592658501174393791057456949022746552640274640800247697077089649415473315769252285527291335607184854327851869166436542779738754401155055514045738269842904948223661898107874941046976217230235991498595618285139297319333642235197816185265325374958070618392706954509939354739953761036162438743067777802492975092081709472837178143216241912309659548092434644761219467919069530255155534510470777973135365989790668541832254187822648047757142513133671476871993935799615454115811872075765819677591144494788901746810637451276647834954258361091979975060152820188478587878535321890316081777946908280447667804404854218124141406400918670677401053137021769184734310333292677185648578536529035690444457745360782871063360512857686862444424175436325665273550221323226713512729712638563049312151971886307896976225735943821307231498284631584366456314578758743955103000953252374152253476317403487496857306073423956375408080025402886309293207876831745341457587984691563127403559528113614807783819603199408486334750497050206478001209267941297758000250367763050086598387012930399528242457603515271795134644616567536637706741578612273521853151808138141932881168369432767972572062228820332579012866368599633291918913003293774124396238852188632476568906417932119650274495564528501032353793877590976168451786229427110634262405452834928346284928705451295757265343670451562302028037576370830472584712991240677397298780300251340657321796625323717853743795439937387652250153499155756656044470286162909359187893811679431930198202894160692049070006901409123307825408848401015805117151850759149841406631665819457444029870767793344206769064357520216500497673345948657882147467565432134685742171517953693256003387778672722476608439769250649007867758197912028029412140118058131384715349872929910601474371495403376783470777530023770309688981811465001375126439933582356706665939352574344063290529129987272347279268969194098012880462373402627163744893814583942750367910841636448047586059108078290153372833799601909233828780033788375247361392052751187964716763593409805855871478374415477904981050738238640958820943827366577666727163028202014646814576990982655524377810544127914440500433482871496377080424955846129885063841310958255997586727301459425153909065142316922967876619752696774524019507174898136836349327485113041558420802203876479118658597339071542974923858551790846372703761767943581994625143454098402025551155724325436914544664733633710448950579256570210188182807222662926823850395339508154165818578595509893241659022967519281475957942230068189296483519310636200155450650017646932064526618720830187852816233763859272575011318675050035592179971202519259291111091814618020954191191407852476920890639006892106702806397460096994874258687421924387679619285196598881536113460726975407773885022499881407920543940192177777823560600178525775634576560955101206373809463622767227891054420939096816370526622234402072560091052853000017571458454515278234141659703933195361908148885663536454016242252467902157768560118826604169419317243605673855297887266167975474168018011829954036408052455809951250829695022944138498841872092067431177972411472756517821452886760022647848583827546914807341589083300006371090967971838273972677523092557658048481889989592302482044016210006549629699243411162822887270120703725725813304302746809095264579432377681096622455172809875948756603202729138611824194989720771943033566102404632231182010626817206337590993090384390249807127698652670903125917260688114613480855766608607102769198335751739169414208104494754930554706896057182186707711454987346985202856950987900750943287339237343152011857843210102553914567560956871921939351818892301553697334904731275166353891898227653168994060095159813243507556032043695923465085578754033918079446211406371671828348260173000446144080703568093824357396866725202419869356106269650594966012922112576030619029613093063655670769177534737766460043996170885848133262641531772520204810752652644462923608117966202211864593646439286895895808122256110746682547519491375263182283325526595022394077918886896812248038167971888552592361179933395507541813679866498776956082851156630272613010384090543291085682554735945355663278517355945601188493091207168507208067914426722653403467406622387826763932990758800514668929297527839664506465175493999275539095302133082353893903895365089108426670343095702225291942273865066226553889894007311549034233288176969600219470398473174231844663180447800421338465680697655342360876450052406530300697477779250258460169224521896635279708195762704425844099666718464110561500834808089003506817665036231395533634415818147730220399950378839810507955350030862551812261832501456151428096254401121146903996663221376992159139370855460989465746216029579877209601819603363528787216805038589605926650177643319977570001846993028653497756556752078042976713187411303143319417600491768560173193340038766093484797713659420775614266418488199174095167873069481225981468319353226366847663875464513979058657064713685144047563795432910925775504185840525895941067425056206800614679760862915820231711734905401710734519551379271807601905008325582369034281032726621251984504537001249531813065523870868821526840733299295344780359013013992323575310874843373125811529399977977215550960084901770563643732032396695137881105890430096245251017530227385683291357066615236879036414799272975491346132783433260676521269957232591314721139221991686683215900311600239767105488527512714717150200766904810800703914185672622700235122447392282858611352784959776967141764375155311342671282137178026492927224163527753049026749905227031792447026204148618251734032801984027008510466840060405256506526290926231728025268852770943733591483252071901212001711772515093040251816291044236214888860444216080551251080157934465051589470054577466555490927018767562485543240779644421353849329378947609456097748002780057655465465488405003655116424988765341960053878011579806143575514335010246008283179782923575236062397284029644111982854488786182687889831291652475936484470808319519654137370764556882685021946245639850521696623070352673975026151442454813089096542174188504555070569084253339221422941449063776784726196476784426385009141414453789636156329934022545989615143213269504607628967590897970523154694889914511296707870246621915784799112617241837487190050963740955353687038852897483297448028030024929116460521680179126992231394272270849151466140600800676981388481310492188015282253470192247924561449334834320090771788678455664005590667301230005626935014441323926768465451572511071153979778112049854282739976860994540485929737560792103533380356880810421604846109875504692657079111891746750323200648319131934128479361500999479207359319137320865188939325480896782612870319628164378121163091616661162917869548889941203181182804415021294695838544307094892474761285403292868489122190717793622853072744211666912126357222747690340134389133691579919746362300417465100964407419308828111974609091906322443836768791544291514133217834236953533157796382023172036363820227302035995564243970645471260068093288601361774214591556757530941549094640664878837685040598468871810839987701221158797729629064161394837486577206050105706599440612091846771218358390450295810064148604742688317753116473295588503579946158738604813442664800399106776665531617258354303732878868017724845112602762586561528268550566196114693801321323049565030984447653227642769398237087832455391300363360711309835094485161211911352556479070754436470250180140276051749533560945360480863797645725542948038840967984806180569312048910020524630529901996825461140765500700308421577664353931873692221805585248840593149253570218938851861742147506110346224788194102438670274891464247557009507405807281226973791482938648405430126320856604797420453846813299188428658478476025386474589604416349028200495459267249913337093360914449152348851224859145088338885995185257357677942416042885580087705854152759218488325947685195624093337270637432618736093819578747666708035270681871595241374036374746702266681774674006692764033826871797806893016436936153984882930697321058609667403506990158729756172519871948538279794094485667271835709248730267632660366589505831129816051685042473524344405551075991060294750649228904563737360962770280930869724497366231173706392315267300323312200008337006518657420869300456123843236784920520113535282576379583845705247467214315447325639265762859028770254633900007707977324638547658285071240168462119431584949715631311597422935100586217108834718669377810815314380776513978544751249513477599858228176535563344339931239387729147239898193535594504500842884745243533121924338949876902987065644067475216688113034861923940322161399016541015657618480503335689464067437739091972014894956669075330851636902797200191844892363979926647578052362900833943837997013797166349532720924395184960545308443844361548758221621414074769479605645138620133675818451098002742531979200796688726592856799730353239279873570021839797438384071553041431347268630714917672085125975468491682696439388090762807156801658294285383176530011547792700814908070368581588524725403347234973662647362330245741202164800000407777865597832226676031355752524064208717147183276711211715459730914522611217763882205967870896083066068916415081971755218423954259240837134338490614661169791470156139030063150724489581206402890775404559880673654638350472145266371971148202800884625307949041993986841887636834959284236229635160610808593865595110125282253140040256145479301098041881171781649803689252308170010414959066516866849984611411976532665458058565158055257410020986569390194646597683816569140054080035599348554731768937038568032100189369094813270656632313481857951690768796739629372255326569405882993927611509519795903317327479387493886922063439865906259103313227526498456455883805423778905089276453068973713348515289828049826663757141234707992610003979314090399356849671674807385190885529341491576322508005688196227699253538377280626529174664332823481428779130805116156766401011449782228403144762740132272644753270823772006311189622687483479797617069411322964423667004564032933367854975680961342881857964956194695222940789854180368691667901919477504058476116183873301962660143056153903029687788304967113483617283499746588653823679313926740974714539151322171916955623653499800310915181040140422872134177570828614340508232849110345777593518377973361483206611212572649378419494112164640521370551620660923215411699533043010267855819150354551275785086224415070241306560259277494043006921334973928808641162252993834766336740489464628139377545552611709912071336681105146450484603371876950813269136906649973823410746987179909395343639478666995935883353201726116719173063882745471194508918560508038490303974424113390545301069942206780415067182546450385257755726543668899853373939055555672226133537584776770002176218705027529980423885331303325652607384000602161225498901675814694660980737079111381778573803067572754696116582912453966591468213865874926597119890953551288493516616397800805202531272648487302076805686532883857645268535828209506684094683476815871537723464481747795763620396039088169218335010313470467073801867247309841819974283854325172134634645753580832658861976082575535554149947638802614862450210355364699926893691730502124214497304995945801277480028497694093012780878828217416180042123564957268352376761932177733320255983932204022491807221433157855099293604822696955984202808476412616884114259520986586255669017447696430100234583563361805503289621400862828321196991139805257274201950009176730597012263521786427746386882775026461867769279579904666665665193372199603922077175809298684669723819540866338802226876184411257616345497543394648721046937779945955106938100546018260301365779710276973587354931134751380748511547662359249684151475454879182086968577632740659270475591291416493007434901484142538871940957152617976143262361862216521302433747108447983113541185190633399564250979042449799498104027387945269286746706245935079019188051855828796727342763045154472646860864886869985034247436775953712276345555621468465078817820361976000704216164981276004322023529614047068650907925152640660822084728332836789376891080413257554652938779044586631132447666451879427832158245268002574548758641894358759965171788454703618199509323543033441588700787999297269982710220524308181416013628213669608619761087192651168660012399151375303904958933708595458304408444449420984553203519011396968308012873332086342116174476886352640426007408118465767235733053171523228459128381523153381363769270227054436817106596678434277331693211111187213759537226188193662077067364000558848661070046765601670179773148685638661391367296945787978760354768751790741840094602018116918228027890138351356677627330138352135597647938446709265303881581041262106561795073779950201186963413703863379914109084123177528087128673519338711569218316292118976451148631469670304986625675352834342640848189670412911562603490807960408116796615588857061760982815032944865044959466456210540842800483025593495806433716832823945725931591041154398066240830365585759632588238827003542262139064668531076100723521299090745275706671179575290050707305085909571837364281365642794714140867774203925516418996360693647449152596711595122769444990878832429798368310086211427138278053737954032303083639403128022046440742429641137652243159648538269006113290244752772082073502744289737522798758845178149391727743850203902320664074086409546366271949291846185407087496134508110579846390865518786969875769583612820273747405630407138817245351877658621501357445050072507201994394816096195348136687312085754892577300897058322380536536970071780678263172941525387719702617569841438879195371829258087484263416055571350739763608866711702415483057342385628524075717483383156386771993067564021193960145197754095803951306560397140041638427438413072451348949220107871882658464328921118512480747899840436322045619023352450549090993141331479886175304953095741021582228819988853319099582209195756863195790837837211322355224253123161879166601753011488441259687545451003835357793706906680311931474940930627976897932247735465177232707638349550244819107708436645107005727614076270022185913813657238723436494137803274885790477236104832345627347740396611079152012876067908977629321732111342299051459755778044312301381026619950103508168589061721456844665056064663443273105312022524621121929236885085564052370074725807972524465102918098912461611783252059928899944617125062784689266869984994638601845637983680654567289787824638770032870851624568523580867785592409564212655863191025810678595005146441466770252833691534760775638984522115944162236624384017331985284398598929452519273541200705608460054663869986034847459299760325901321697276252611719528412239569479240221759293305496372658119280348967333674659302684452435514992516687462473871081618755336794499715935569684912927909403316841386407018458185852618583126324578934640888302187274748710390357328398126364759153201770462989057850863905197794175360441199756027617848340912049703742804545400564013770591953363850399679621912357354144232664110131616748060807142654429250800830989635378377576057172828329636446296376598897322464168658387665928645257734830167982179856536035856021484786357460723109365291886980061510561753978371274891138886991600719263066305634007590829451578124833214902865333780344492721831273978102915417613230898887663819125181677872441332502662398409830252767331444788457352390554448365607892546191669696923721279349947137508567502485051156958527800054234372104957563418111380503004865182438927480907033111619829724243549808630351216968824841433410330403188940956387842528338308120160564187597730367454996142816989706119787203812226663353508641327964789533791586337572910105877764209519268663935183919720078319072128545931770675645000103776402274242178017308447954896830685149722817386355040425488356904091586734923253175426994697086059994998545427458447318147021316339663018138441767454363792296644565216856549570883993068568148268447542415911823668475701366985234187458810905878824937134370651294725084418432287568025230809786625638445462472416503714515073829668738048957047758212340521531852729003354373118702597504578973949232076960414349815177700642337579337753405672861734676296309923058209676868601663579783570606072196433140925678129441358605897464191916574964178756284223083695822690650994014498894801457700795832238922319480312373556402642936697537680244862271766702895153312786514956704027725942062214788244616633901259678610975974836473013835667024706542187862894053867821228005098494591542409530439967439054379756666644026099114095337650999835062777773820329441770542738457344467503183064112726320384073497981149021448849214305245592375936020759259792672796122736760458093271972138995930006698257676578000088306320806857606034624355215599761875329828578753887355741368253228915434764797684732963722309826312414588749970722755145877933922651053429851691582851762242091271071418966694608833787101331564163865434517506857756025326277615957223086612678239226249718595666612203538717148034485179287356777313851424971726003085032135957142945047520597924703580421275119017919009005950645934971404643954054172709175341748003696004796000344064108894552808149199028238895673404644128832920050363792607639038668684433921568495988245370112947824952548840754680655225139963863906864664450069944968915872433423224541885154588532664103318259565745510699912790546837386581919008250109853972985498681354714602129329099601339696604704862382644303060809878132280735952146577415563055225278980837822680807158222982845657236444568877189644924340869912881373246347147418182468242442430138040119934943466905211279454519760487309273926958309056576761765308373469179031170550877006686411404105071256935405991778568472037887112953396744106599183322186588770729932034243912207146104847528351694411858960956765024571432485256526178727346970725844783343352157340716374756976959397207296409783937596446422954046137228791029504142422969538562853113508395473960712016242219763982120536977247484363491905616356344298560116767531895760659002370446577673465197552568776729739439666623732219468357582072016816997572067281286139258482879782560400820883838307009251241277767797734640855178383617106382237002753847797750968336637453807424804824925496820605973003223682233015677123201180694639527926202926418398376990418551230418396871633781054379335128436553773124815589102381878734316234805490519816110590659677051628287868230901291691246345775211749073152273433080155061595414694820682385735783084904875206041358929047275146669117618986324301508039072815571396063445672954878866151262079672291964116018831931788088137318773032612685824868984543765169525546018461852732163906828138158414228198647112626039545552227328502649819443551994979222356745910183986166308973830951009717179919286202966805437219219378296474386370335321374354561971516678016276069266941504771567019432499233744544837541675440091171601982288100003727697863301999082114253317418350378746066727668816375602357393795234035247583203658506986497116747151141683846521769558918099338626810296434790444860185705372522823666338672272645057355868523351012010369612048050030793774694795049912234410803972238212989705740924153387449608948511264695305110044998440647236617633335774104461896432248914533482987176172026875472868926542321048049389675607709473060990138667891618327852899587969414789080527047652173709727984199223476256685650781285498520954491042011377105725727752323522360877512396443584151741088609169463120175316736497580216194979854353224266118590990738535665618693583485976347658509451815523702709082029144175850653010888973177597204862508607776728669107681402577001192375509912142320840614050329144768749304107460482386194121076030257331215899831352030898212610244025667644007563942706193577202510958329245525898856851323488812504024225962034742878216254261436006554871042427447896585953098337761478186553056691715451699255357983235535891376631431410689340577536789794704867307753904591839835466822268192372336064015950999597719681209044642090862531646625559026608385604057576282548222725438373918820097096957535547635779558200108062866297239423231501957661911822657131068163472325725195834595328834211433534861148659215059638814282168023207515860951249401379412999517183846257959357928545312203006085071583999721248406134336332635316006360201683079346966304646877834192322713980642078763169050450929824515013044644135928462828156879015416617578039548945847822906367946825087533454844927167787131841566614990089413611006604606828058265396133079943954196466868552099675440507212510042837629833088202877847556537526163089137142125342838134152298708471477749633815185233456589221242607262759113107641595244024403273258415314330000551472020649410917727663466852790134099084578021117453938699633810753173453651771322279099068302014771677408375057237845891210464094101242565060321669243187300206219024073638946133567591009024342743474544452788326109732653573377623471133497218411215749657049378799021964343853173355112064451423013316219167163477605160028404329091430559247630852680094039221497978771965671072361188950497775305165678538254095193416770696520312698717639927003881253385329885390995446275360862054652717385065244946057996581725724981026864286717129823595195696530421511288527941242036556100507658915713411387267653511333979212807686470320791634932399129238531654192986723491547459937413539226851437892419958317818059082552954737660402608878851145752026567916128683012843686285561957413370590641992987090273842869003901005897264281914912455228016302019515188991677385679217135415696940890112838575051837310677102256529437626542131443596316339845257443724114558850790935542997345327820175256686473590184641776348145173593308954720569024268992750576488599562806909482139471929154916588370011952275619343054396953495836193913864280349664653453841069975780977262804075459326430748756205084491575081253376891690600526465586088354254932713155916959106337559330071649984558964320443103640887489172046413704057096339129765515865690337991550532782002322924303876047516271327795280336922510952313528704136870084553055087776727505875928361678963310448278199097908416256281120297863128956404879527723378321236246567523740834385342826735723802414626108455832374370354758221226067993107663625359902491637558099169107985704221786973513254776605424819458653770086487202157019037655876612556123037606622728021068645682739566116052976276823875862697915088803199410693261101580842263985713653136037311097276477607390553273754549684438785399522432700256961980702518288290993781149870107879084821891259989362885088760324786364128275963990749513534467961888422748817349456056385575873902660614424490329960422944049241317970111235887492364226618840351528386946350812317582852874598668540343608619799079128253454063955269736649317866768669569965200384289144292885546810128063578470737806148064181325314046714480598142192936094943991650311362864465366091289211006361683352388754101431477364993587295693972294834365708813729844241489856406882281828280363109441025880934396350633417468975585431070646176480942646219311855272046315646442649889758402155853567044874080380991797384921356984496394081448499960369894636026032706237713096537909300841527535877089633353638453744492044293754477960203590925365972162144341395745512670601721617767717841142065193101241685145232918966469373786469368471494070925635228309302278369709775681501204510505619718960641808982897194048593263682699875475916675585445606847788938919833009947556004567369982258889120144482521652908801602149138977188323199039390814899285904762521171732174439017724805993748023321434060980625839953119864530574490391873005880156375818027563190918724941307952111777118806681884950882182613921003239117654075726694835618373518168765804187917217466287208975307405103594488714775252715284443833350798776906732489354567771238332591406118495711462367133270174490988638331636529005168505415533644844721778409392328815113340019650559799022215278386902842503024851715089844140141282918365750025490397535616330090720420800827883461894369144273653025584744494102450357065816622920273569224215583791022551090988407141252805101690057344546600334617242723737221205777622247032196658580264812900802179695800946795915115035099364743280580020577104367304039755928528332108642906619214727810636131053941566190994340121063964294068776354482435902665935544610926371631839271904344568071611458090007347184220028432157133801688090687928503627182384361298165868793965058604571584973302845956070974751876401869556705290787050887164724164968296875852654890791664160813345863038165349641578158544779570232864967881626189902291539830680956582463745591074107853390465481479848810188978821486948252074459168448113073663367251879453881500311495361712370895739649987922262356771494351108013344090992146511769884605239982416228494694366297326120030427057172606546578385982887399321622624959704912290202346375772807128385574930529775177475447578689077278110921640092771597642761585468256141294926536562772665823753192228741977557386702370491187706976700091067742723025460821233902344659484545566418282840518306214045625160490248358557158820545928567409435127870201398378012580149623185415163061765217063040794593837841463328643676968103203966274498481383501661877280488269252066947662598618926316057343080707392546090340426993750856253642922251414571834952305731516604568640225311136170617450279659957269372886974179150847473977813113831740737849808994454709830960853937642027871423825748756117903562903907392708446826146122077601975723384926687584044560209156593451234279666652928043155686420551749633898432996603719116844989262621382071849302839919382753410148613550237050123481052591269297618368705713068246134089873696008225608862131738026282008160315175645606762101029050612824835206104856282263126144098703326723149933218349482968205352236194111714644130106338165950832481151348734815475575872780865659775640368970136223624193649376650701626960181066378459153405379587259141769425618386503568557946915679020659228412930790258697118322039590834192103373374756497996750382113311493010240653034806380270291932028269214698586988429241487337157382475689155205096997398350738988851915737053604656488344289363785202810114277000121878167081947557233034144625638689214387991321337409672196540179016742184492797838660944255428006801800276832700452089309547494137995848177592803350265999034991516580767992281323604992640963948769289366932967461818313549150666694947496437817762287894573896539188308925844927307347272103581233602482643806385386120406006813221088320148938367358979386268779418879805650163326846578287101485041545549430701445214071783980035838158285153867240129695782390394913447612960020087162678905606490962037950741372259330531752237456441341765308186011067597904594135326164759241840730258141866485276515114553666258582864872798985079918233997123547577115913757390544773878813610410330045832696123771983259765604128128290912779741986586400691802776772375664831774847361280255095082566309185112876670712558870793499457273702913437829534978017392975342070467561514532865483293874086775185566932372463453476276637831464112269095789070079281830335717366160781985108138213672665532083134477082106989062723716917434049102043316475793894176716248919772438502902476774202473049295958507357429487238548121093724759835067810655842571243133350289547211455253742339522288671363294652198104605668046613085835769152999429027992209073743687834099366173438795976074930937094233273984166005052137630953271256549894170750463814906073641809950849884807083983773712032203244382667534944272620865303557589982549075921159957156451347163846143949493381291708425453357957020204678743604696051479752683890710360141423513908165346834942038728152626326607923251068431097185858395091924038834860104050910745911965147927565534590723370226459766504547755667886579216268399470985852520262821136627669145143158907291682128078144565577148820982020729582726124579048707408652338841782723747105403925266124096143930211528033635673591310818912997176531880001909614316002308921850355999647696223644285219509917514682104138227363799936440907049299779668993510843634230929567274830511332051354964254521469292452224021218081560398872474138607934329710764040764081148614733560522270681609309225711261788218991462867417449061074277151876619287572432667053837996889373944235056303204921280433837932706202621990397553173430871043846598203981589898544045524966677199757999896124812765986717766267369594592592222175363562035770032736716833959419402586194349262790523092886896118220270976467664986011829607247317261744124822493486586035988853492902238351624401864907153920328262822661232932030453361939298237755887267031663822504523981445540352079090765065333882365238150907820442882426441881978441047074564884803903735396155387293994303673901269350974805923708529940194356551485787447709653739525503549894094505504372965166252379186144979239398146175455606124310039281565010688584082533523326617241073195225274962454416338187983190307654823900483254021771929490444140598432787362617959419963529236401917802675338673916665991104179564664503858361306588077317816179725788058657941423183207028452803939484375035058515030744506544228091394897479764762475372485924601080474679953359105131990883271027427059326863211172154551156412793377781499050259495698185219128776475484260069122266983480325251967353021316880981386232630063155593792733662533833743292127443027327529465248749792696267250578874701508475626000420234755278529260867381126497073673871922877993101263740297871151265058608179475501536276139542968818063130796896715311048071422257565806036344486653641141881986640480856846793867844198472019526802862615101615921467058622446667790019838235282896858493553470804484425216925135886191962595500775288124615203304738663128940856343685723587893259174401730880048361958951986946037211514624895297527530611189354616622704527122659261493135820558638833024291016878410542002370981719202625329431052329693654333431941186358142332380036383648418888605196919220875106581052232685531181309914242933541873496259120880201635588394883996501743023543030080187173375929590305065341654034760650719220337021064701033827345518578534640935837009201441561256811427882056193956549211299279608687057119172400703952085077354259084827237629801220007146940223100264904722095654782224219325177512381081440213808480717249840707834995729893493536027614117728043091681578585556585774932959293967638624339814555439693491927143463242226741398610724126554664019933593135597523800862176700068054066007871496199547455281671173906448714520031787790979244404471156779108682450030844406780588853383186154488951591464718667544314675295212380170470358778280048641678691383897859152434007883801901224406877355036921857451127907361120657516295013381180286148817206536854504721269950749717044131632694170629975424182507624843822080243059070568710217456154955858572806564171257016531101606850284725697918685354295382144185268664449188426479381342176489264272089455229342766053132806326839214692236117936890914270464858329974629595558954538675114933300634164589026765472046851964060325164935238634064187231978600248839290609107782128464497073952958144964167806455948695270503966969687263866034609843269635617506667862941614658885301077140279191696023199028355334195239366048740135638989174981534915550758101400396395163839296914076068083505053483447241690936458066235971386240404701251580871945280996279928586587087595681631221540577599461615577707195641360323643665392746946092751138019928411594644393701334334918149871141067860683217730526776462878010718182389504952001155292666920361063374669089715012305664702840375919315219349943377581530903373350225639671221258697009813211527045614345095446601309626107781753842156503315590054001472892987550406075458332807849423209970457516629368753694954428487284915491563456627891219544838219467654680625613313416704127183154298653306104491067519313132765364662605070362750726691619228673553447198869522925588380009568408583902827787466038554622416760282093779348919529530830132012427028515874563359301921366242592577573574818161903988295632633189858644153342449643980900398154057191913361568596494346360066426204696921485846659164515237871066455361799092308070100605568317848660761065551512546214595803208598495384315331941669518966744786855395472717919355732314637154071831966022963729525967328925518508102462567484141345190695906114973206568639958335350395500913423454065169225106575676750934165749888654936849831897321769431494210685241226900660715583965951651695625230624508947379022887805840356245762990067033577002179373646645701344853802385094475444389972884180697228627638627228999990876070482692232902452982936259229612794306292629909348721416099096020882538315207958469295516430763148587373150741854351779203643415654113787451819242073803943844405729964306902817386757881476466362489621862499727204102981785043056869569821141645772774539224228559567289658157546219642249497324824586359455863269063605292666563862444092049852971252314268149798487351130040136083790889016075856686440973962790084163861777349886921017369983842551324719716762875310858978906631610718662986227912064789765046935555605071031251854706945180003587518871074640840708468172587962687654804345657171007044289982899261533282558245482818561956364135871739222460905411171458281688574309669034530426054091947155166586639587259688840139120434557616345377170168995150511455988830563748383127061049638460698002701587498837259552256059989134604824638324517476980033051474626922918084835305695891838458060984945171136657289222870990320881215556601260142205417748707682845106858532198090329290859807072240921377144437110092003867889312139056812862320940733057566155068520346859775111151851302565189745385259333458601265915789545140583189034329678503858938683186822717719029346653179192654754759702068755914958537951062859176819378838059669859870336181446812494449862664675167980198210166324989881936522442628527125787962902988403622527603581599201670900403958165798055566822948633702775732252699380751187074472979072029398668752952701366609932908015395206364222071402048757409792197794519213284486891677478878751753373760517759315635767316189982281708303014661047257335299707462695133170028843685504228625119802633487754866587555255465625456301849808160788104200669757308866579670076174810510456855770539589401088115678547821582806925050557288618700279505465030933728434757515423299724148558953732069699400669815532636722366634455650821577940742638494657226982075204164161347152055182158936545442391999115996672029137954517285097648283402971233145863567346858547397499176344165595653061905333113695709874386719599381170346760943630780668631578249061451978941527931214505398235627050642272948146269642189599997103365065306760748188027808014411203245740747028963802655492244764055212820666151026479552302029660897576626037974250359115045328455468331597277139064118536240411891848945974998603545777771757141782042207519359497112119557690874562927308056449199262743765353625006711548944903529719606724217734954695025462454074894550672346112622780279658729498115775838657442748390860199748903437865318311836642737938270428075548233618074755174477370015184599790932853871707511403911496831873290948687816965730332716133726862358867117945179533214600871752017355873212802507222475350507392600585037321405817643929294900588266496242124534694727811848263748408190376312990205585481959825230911811022092627629840897436376303291271400994781651612835740533463996875465119378334652488195901400758284711563866977368246494992251134510392150357203434546019563689602536837591218358159525174894290665783255608768875164680880285243347575848867576876215719183884904455931419240349573117847795049382485928752326032722058253338948102048898013502311739712217196513638556752234136651150819151767350897262630241902569965251777172966856167717862773628172593841153796179808126691620564447088705311787728075419066713736605015677770535819784187199678855162418670955491939820707424002730811440507543022308774665208435288853444813075559492447345996993304903450236971222881632614714604443524987881936787843331901579724554428010315548402122673109334850563842133712671761668593853027664228073502010129443263676176049617734852336069016585954755748108110232451987764720891292790841043492748234951439583011213667635178448136611949517187437697656106090321368431401359564556610040695069246311606118217045838849422909405954785826471410913535160772740543606452152417945880970758294661276849183791122909516823584588636168966601835285177010852312483330577433409534131888102620214745111245463184046014166095001992053504601627006089835404844102559076093012022347355969426194708892566919598594016488420287344362803112382695852156351517118980733939912734893598551273660619924804331466256860902879121934314866953706081108160734645069901989488060005667286270053908205271749923299531067748392757213841378315580126334615164075386068494794819849634636197328549821327466979036612626301366772121001034540952854524610882261857051881887805076663563223683909946297869149085752301857568031231768433124656585568930801214874785682619290182883575282801745611152481152010349143785287837442535788629936550832479424897930863002270389020435788015680893257334598672119104480844479837072468473271723867759186200162353465532556649169235997749084300582863287151159182008997198950467182211247068887069140667603392566606638610037615149075761081445009582446032315307717511671146360304991265119493089223337133011284381039426553977017371976098972230741369821036753521949363847782719953963409476215879463407264965169698560725079165481154031043803410333258270647707707961182160344991707355203467420719138009002303350499641625638040708779826734712818368143509034851832145757804574712424291590349743962310722349466432615014492017978473377663800990390535476802233695239362003905354366603792434646900343058030853389037551054577348449490769093226950717610569082300898767317101171963264563337271507688813119616136318853940224654835529967421695456764228963842893659893058259030367930771551306204914418012146442739192930066371839892717590486098227020565332824112350693853452564655030716350496830557841285332895238497048691134487425932239517447628029776017091590289420673037231982008888658111101295538005326318896922890133905432878729604115577019706033482869105890250309761128884524062601450392201893058337514939541529609067057960276615431733702114837437301076348614451957326747396140283784450819819748994997244159202975730727883570928276346198745200841216667201072368518091334632401085522965467053753355053944593756544725821655068244334974730953112768273976993560433126394685077524030320950016241881820631869447935066532046539962181012864719344843302498681843459444125601164454958020842670230172876314474959946089343839857892745274109294274922113561345588506259075675894563187668380113028323367308684069603611265049108258494751793557276939052931836237739387709823158333304742209058517349821025201394891507971507102821110307420871798474651502651181424944298043816299785662230548419267763638930840449708662779763980715636405265229483464734207215861797171236049122183931269271608240175341595133617248889770588421420363290006627886698851622221001422177927048812327721564986215008868959253918244355127150798757834039532888000365817139884784537888781969723301738108645468475987977898630871329854408829859873422630572767931873088478572896815336566066360821736439893155628036995235578504755485819451626661399544004948725384967578455657643642771975640210161438846067420117182162284099168170964282594593358771356619155746394291001436538906126652023079487107123160661754741317622041253617288748115731627543144131000217635691014070391436273371481444198129869305092072233425039311589178120982600120522277952378175140219142228793332744089526467828717184681958030079137928551001586000051778015167219838943866554527434149511285630707374470174813625168025526281019922927528708917355582929684741195230334906041175573282022450212566032143768508865649243321294124263075436345352536697535925136894901492404772737588561111019549065532182760132086373812110069835080618066395409119776847796067992531124368942990263653737668218841881041104653179075519001826929919062390892090394445351941511917126618931808682402697833460661928183486170193471520953864304795025155115576049766256765699773552993655694256884282786109101296909721890767756009819674683267546203004462980132824101534647703575914200333767115383272818943735481220349904623787961224399449888625775492301464641638170902823670521172606591185292885013458178636357337174457885311186847361365653667881059910390888487506826776384708006194692565270709705503337558153776778431488563811658417329156998652901629139502695524801863097377415441676989046935727279093986544006796705375160751510804344717720481052955652066153323740032684841209310520535105482211112819089025264047762716625314032500084720260562800549562841027157715919605644560914968451568588848974753925768164921144924866937689565111714499088617780728329865210222612023177467748069074323079784216898633546599073372808093786245612637984415110556018832101352997436713960704762352806833153732452399155298284073865812109892861181572558985851034067826457657218690999710530094101363781140253475850787143091798348635061541845319313648226181545467922495869205072069629432702797479576558835462799632449833518514707952145737103250300725903116486413803534871438316810766530427160824531307417187949700483597737518567598733759192228750271481332880018095681366043557592847352121073075639817162309002672224241014021639612085946120749965803163846311512145721628756243184992608552017960201574380933175450933587211930892696149871361780450308174252641155422446177809180182852443669753573658403870668411813127737286476478812510217767585510265777280352342572229777429764513112116198997158541260685352742356974405583275569789021013492862080003034685610181907607938942977657735204555880869984272367392835805373263068573328632237350017397147353497950571712593504863802907603963010486558131252401160407804866970029344905578479737983984594446718819731491314091558622813006306262614088632011640812124168830970131446855476704322480396732119634427767297631028075790387717900109717434718792991627370239683211306483977743541011025604224098668534516945182112088358130954128547088982318110735750188508808719671300139728324547277833729778217586010382688426734023655537701515148937628896204585089610461091980908901341703240110182355409740169012851491526068209464242637924819268689396202583301947807621904893768280460006017336179762265212920903281176725384250112557975281842271520935202582404545217377102693564057327474245797808250070333820509968112042221884188881154479949356668342067683863294208060289456418152520512422308947038911610121593475422329470285678282340629268013291650255509365764115086546125099478739861578958508880376927177754033631738675303866558522205878618063495381845052813285753326817699158732435734275608705332134828757253739445052837132781155445228750101854634246834763815834814603643824856120885188457342813125067613708445129721685304767616781110986124295261265914151529552827323631639331392096875821681170479664995599187838320877131627760054307357419858022216745703434815000290101543821868300535045702633397826683204057560858274964675401442819608674751046509205521759941234388382064817755784268617564372585555870197048485252687779922251667249594618811337697711104082317033987724368651669442783015896984647791996291806042699645000468811542070263630085278187435270057316606156121425820186357979478821467954407580592121116990434680924353456493752296694615652160621654806960526522011296379464350113754101698996913571520106234003261455004016208836137799159959622975348866800577313024949414586710864702531791817938748537956405763384756948108417909513929040958532156802845241240069230937875657028286547833055380866053161106241944966183664499065032459721747094463998112172037578462994076574465727687671293803859311636154933688510762396002969262489428134290631939369661328542668988659039392338717658694837163512864338330651826637881351701707323880224551273918625506140007190661488142245569562385941256994105685459174820671820042806722544787691375971674334508434300843911044412595181871005414506692573361314533781209356171290661953563552581816764515949681713950428004199133983316033941838136310560210558512814061167733949582539967676946367923915792715898607816704119672450649371391063128859087222808308013112465190812484390302131724125629204678748148610632503635074859743871860357885243460496701767934548745340304521184700439327397776450737998893244862495473507590132523341696337063702515951877387547181743227083549735775950337489428217933141717646214444969513767364167009285750340045943342195383071002381424986562250987233278446978941106752186432713533202629730975430586452230138025398209094454001298379153907779558317812224825638365815308718503486567555937258396981594816140600042314447455832780501094842987540398733357732269739845297807352029919310467833543258205727439898448485168278657748641012626735786358906429830285312264718805387748828231831800874887828711415084651473791096472980033825689646527788305139154968398634531637043341569422382452159401796020992265764303362848685294490755343780076297962650941820633465130842024171892322434695263186541262897130983455602641729587326679890931288411866586619927750777384645510331619403479454435136069379706339848534836975721314260317348100747285875422217124979840693943372360171960814144375457072037138267058890616027773776912433635008868172258828542004071970133764860822591097941977299170123983182497702193369638105293804000283500754976609452528058667314499940791701882077878146697873922796870186552704066501396227457423278106967932592099673003419641132609995332131184950494776404154273250283622298807208331163478357078374731689713185029880880316979707165332109998140687850570788997913905649653689799962721020932346750010508311153256076561317016876818374115799635840258612785643134433697814347860658310770024514011628154492447477798234738090655602294952010783885445785334777982739787440611150880795158039632934133354060883220907521185339650393142418413590454460652065628533876508539320667380830365468679485985687624831387413889915448659203461833994830886801942981275240621662757259681230366196341706193798248627097797595802734821932712496362375796265094158907095661184278068018294758519683144106834502864422120677223912254877709418353661254137948125105498984506321969408621991746418960651854983414687683479287965704560338657627495992578062198458207243885947454182675689779881066721647311613215400336490597020238558842373508597284207538997960230737611111081182671790152167858818093180050249187330863574836927564522502016742919429006771846201414694261850381070899308543179521491511533384759795303424808441469904990367145784740877981342339198026660498307706426201591743860864860848594849983392549128456931172544157207879095766373402701182882463168314987100398204790944584398910927545182903733746675643081990852745449681530762261017477907470487464308038308024679693219947543894460672557949853614896581165194046895256073603606148992477516966714612313281068301434774317127634839585290940458962706987127241600295814763409166461273590742160051372994137554102788942007875713693197068601449364533071935603253196059752807773111608715699487826902575282965773096921411402029622709363423354344243516151321881356235390707270561290625137744462235389028263741072604140109568991292094712732372846925052345677617310515040556979124215414268256969107725714606392345205297390895848293392585507161014371901591916606778103784995476545896164555470155200440254835145419089607235503623169576842391155176510585034885961221590001524481460707448668630714109349851378400102970560229728935497926811342907837546440715750118903114316024968377079649889523926761061646869571847011093578228925636964796939001284241444408612208005448769606301092752086780587842166509890499912746489389128340136658250602175187061121222802459580923113315616562178469386754600288548300993418314009359491020725278032309901584943522465760018147224370246016720658019346938242128143383925303393438829072893927127502115947861208881073243475729741228979846619758211587720958661762185728943914744108983929079684475407225987578998163663233889426842487534432622127131344353667056767141054975576362146059671426496517544381322399617285341052477727124415774223179397272689787951185425214130496271585484185857170310017062533314544775486114507219259188814814954075085472677262364579868893993073933269093366387022334598188013668927107109796124895611828269396748893208139207390859054161320881299713830668024609173960336745009763582713618303628795321367417781009317472558691431672382250859214524503618480595079529961494945694333519645269424207681286839718993868295707580044977122782556665886055681794639441294902144378136557722453905297215281526226887157086608490207461478513233703434925122823957674590903637414936488336640476127321150646540351734852589789430968717256034097961031871993484141802644372722064749815887543173118657322537556414880718904235893469151682350498771540399339453059805540095778903752207549759924067369622123382004116808126682951495204905836041799882011484431134586030101444942199778814026653745105026542104204637936367744794303169570962856964011044344543493106846975606020661422137593135035801162548544155896011043267194614314358506291377177701519648015474273398016772239812122826826501789212759407213373889837068813035645981653072708797289768202340371493410131247436490210179090393280686703169545380960115283126707771947708639934986046864396327821889662385858472906146394246039889152899200479495664202030589728573336405327467521168704581802458397024549375621583530842836744369580806827998739527537481968182350371610327615639766167888955271539313056658868320593157835652884355611207527814325647568295534997269818960139539597129841786632493343674672702776967471962802578502126963038351148572784779756866304465999000576042581658999259803290123809666914361852950237009810740065054706006989435554907793849951716373282528083387313971660233205956594778656643681985836335955181826405572511290396751996227181498361760827616138636009821041981821538576429732121842424359726184853970751772480337851130027270647428150709685741463374301861685515981797451414027421108247563875330601566546527195729853520663733056367578308698042007286824573683062145175067179458082172574026132774689789678259709289852155235345913356188039382523167774875546686675361128923112410476538869678565967284249194998168561177017635799794330373137079229132555686350864236742659557545217280836902191104088669528929811639290693108323770656700694862027280416624776284588262013059125682231409168087899892878558060165832431502030614034586793953125454997245154802695972436699112575267955881372640981254213641115957259920675034541083702220731296924990135095072853586979517166208313084398010654501695384733942216769575653081396639922395439829122999205267115876118673679679669810999720440426883370090578675137375933858945792590746754449844155806982140376985898475137255687002433206916946542095546803023341730356934240669686399832397977829488352274920542086479582730572100984805315968406874167748078599312351345537901769204658829179123255399169837431176535468031236143297338592571823533128605567637388864577704192241875264528016023136068727802356534773140571120020400223705411215161809350039808836062064973180580511545102162092349363062792478866355593431532605076743480027193340299491567787696835675466872078107653919436684918070707405337276075182094263953805713499121200281938064131736666372162384561563724297163152136920127155032888036691465746899740567833275704160486377461604890431930695556356240183992205280179668649351757322096574620504786490553702231630148275160749065045910484333466710194991239626187433873685807228072566300943698587277866113702349631071977584879057824502860270359940742362591103472528807708312876401351928485794768574567514559049443459785407502257927012614611817625218764522467284051804009300264087726417479498469297733208129535290051454023602321006316195628557395839914111835532168253829867524122745565187467700052779998045469184023959432445730856484882910103948085631680497953254136479986860011593677715807191400827147638585321928558879231062395036150731823976082694174618505622458950978520460326240340427276807293590631814839753002876946799574101840253819489414495258242807434393302357696783744035686283385947407896887648861591103044007733926248419109841860575908849047065870834204602685513667018816517688083905745703555266548298020621753931630217003872872720545693391876552492066481273952441008454039349397708729039275618171682025936662516591201267073026806117897122801459011932185298460634440381302827446573993462568769345354262739822400039308874365718088540223305533444453876932051713728912728835360157172736084496638205458332095862352399270866842733632243122942955730578242840743313864105165879643454752045778575756921392450123425779314456334908939904919052565526970911409594749581114272503276079650891475767850164525361915725486587662564334165619147382241196878052702763133159114118976112109557924545365640966109258244642264673734541684308757660501197089835395998104129584613997707455931831797833804165144345406305648668030826411643792902316366036433615634881745187035061190542876669202525791627206639784397119377328441587948238220042477660154194323502784514489399668658973960213699999826855257656885005173451468867936122831303218695740424735229536365043967524753575761963471211362897644895446782136425258471273716458599950812441168449320022704492331364744257242698172808800339189348184120995794686655437241759037160130333829260802391929806448528639430631155395083041328166101925616778055601027132772999533662089366857727017396436185642472362927530710866228790245508036598958365335645174228351478374805018458279336484163388065693591037981946148549963938770975546511812066731514954525110565072314474704619949449462920797732460002043291063066957190357139506838524959810606031143593213743881479920546108066687598168105047345627899493142092317713242750956332583323932423378956093224858648787316968322421075954114562390879784271521007218046389372094157378768700018005480563582722990589222746725489039470199653223029930437368955817811471627206929571855941227685346135451485992558058962120179330702294644282885706531231695507027944575659768763975988906601231489629104736845604752908486060041550923916467481572319963999768563218846949084243954522499038319813297335641485574006540941958348809558658230596242658601464986039182259662197987439830230661889287852710932578618081822695006778331754038016281148209784960421975293549701269975936942856430353693080708593776667173144031698962425138963027214483615593092163624213635803138916531336882021090394364677428567246165398163389945087311482877386669660693058774125738707192219555509991688701080155483077488813400484110415964408719921982858598496555539370771454380170889313182026712636177798654063029485136819268010076950346317241123631727579790188803942409717848701475307654645700056023622417728371517975038882278927790366818186978606091078514814238595495116077548619957290066064694673501314596904553255474699501138296410946519098490100093859263747572946354237363492056474120685757013505063702049574551977015886606984366133485879275834195314160786270463637318389126737712012688721781194853269892288897342997593684985410659647005523033084928462494587932082370875595566440076572935795679558329691637571141072984323942366274398818313753821873795019744349396855048344115020034278395881389568534011464712214255610890316698677061470778427780055383199238147471740707774403066613531599337878894542857027048925641474078631422436858190301515835333914191420953206923553976455690682783149849846409345727015898399524430763769443499300258635174985030317408351167473701082474556504253697074620440465462934533589393171189948987227760034603315313431498400174786673071454369254341451886547315048993153369237048652698269789049740089901724741948070845273966434623220970981872445092552627455948287829207268544833646428520426744677082969848834802402355816525332454399823174108097052279202699495525491861811629765231171296674018022187591627964470737839300181885901021707100875783314127137656995015928617494360170418811736573482412959721476565631820790531680569285407481059688469276431229136992734699710791140834392842640920215528829097352522013286203962141257761345293589662983204643521851208487114494411502854942870534746025047265276975865473929797534750955189580016101297656312946910246686493840446732452222850406229022305806936019642732342175798237727235074413452283815528272312225013495962926723376366818008985900510320542122813756585076313994372466839141168361766545679427558194394043585966862552939522755545036193097276882917958231833397018996650757236299041438824422986054744371375746687005118501526885253702718652259092885076621013229731605996060020514689853995963080540312922913253773250369912900122018742043084361842100870735515311153633799115643736417989500189740462581643901602152771422024372691927569112439231781764683327199373766013701806057762607656421863569006417525162545932160845896919424433424107839898510125308676205945979127319557057683690826806656550823481155148803990090788495023691660631551662424646213406223313574635171915685486534255879768311182642917717117678514698618113939630432638001814068076986029461623410779298400371109564647133214964764214408345683271756906848663563300439106529821702144093064452850037645514139348895272993273819894253985746357109663430936660652312504374873982676043924341696862494160668323508298751518411927156266470973583059651807066006425788697974765927353341425915857617673404112076705015827131282922854291310208752292697493564165193490889012485878344893250277643807989110767880821833864643358670162697378632445375742085373974862851110734406510643962950268393937577454475318095025129598586259122402937641207419738428411229510584623768358299402425260518136916851612365126982884885055970430726352836141637277152001995151988609191454879030142351942294893213934089061481134148753945180074178918379364944742426035566362100366171573376265083420021476538961121292434956824736851526994772077515765098369140935375228799594287707214413174334546343683214715577034988126623740214053506258669669327334439280251153621660289389510014096146195907382270185475517388785051244159713608742170604210378337340077893919443726113923176721339660855701372520594160170612986863746652973740017498226279775993738921637909722710131394135077105261895840898891428066268551492969903181771725725604985247829320460719459769300475219458952907825212599708767150118593060433018138728806248165741580786594237015386620720672158465558785854864178144938819304540506681421824365932614744701754619573643737345757016072424770913619838737941359456453200954862402102979181174654070559670375812027501726749292523044701061972768484340083532597876336884445666287170550299061947283878239154610124132331847248951933190752677774065481190568491669197996327455671158368998119989803012819841835812508323984870701830563606547714414579196580820776015936281701647584361311561956721777827148211627171428359998871496587567776217137379772612774159457735404521026142555813181043847128805830795686547364871287746987676874304305962385521402350923394777685193993620754719483234803980142114216319681904336367912893483226330447359067368284339084691186062629481293575337353748861629390641920157250618475768713446950849722152810994618378641660850189775118801463047385252752853331145647301597389847080662633892715989263866262984419678811118730496656509926794746376531011999828930231434523568872784770638775397392740609009314455834116072263484769827782296510017006376389074826265592384925375227825162361600082841447293926017471672532463386335179913758748654175124706859569835559132076491016983978168705222502890707047159662326662205014603384690615513675955385657233644055713878329996401371118588047121293997443128164919070397900771328859208362970506924322617767769707584417454724947414561389564451143294282469893638256261409852676732985484336391326897952215766799794109339923873254317266309319364039268044710102201663108828251107114161969233157822538174178139681911432680274461122584370996729578683754309402170728758831923666043562609783111749998839992999557612718737850409946620681604221578410158407198004894097615590565337313098980677569620013601324196237351545943084324521548565826938976302371124042069035161977508095315975682368382591652872535985082231561622853682298655889298606538108440938215051480227821689410381115531525357895720558894909268794310705895414829712934400578559567009075461993587781275585541439188589959851522952410444755529014190644539937899097115489593362374132113571874715493266031413091467803229055493795023202108117157975972844500947468806363213152653651174647285535733407960963991941627858702979110829318364954710869484106803431704645515202479167798999738800720908379670779311641226838604536804139236692081588008454330725080717866589301102084189052542302647942266068370941460256522844131070864461606176537323069866736486256580563779100301728276233081614736850850999391095366539193907744519948577774053764420696570684532804604740998118999476689872757550870585798060350251046753767405056589516190340427536875022119059664274614539634843375349526337418687026553649095883444399732579461100626881631548578015448178457365400548597216048203260388383208314230467210554192496559623921846094124889982359161233872321115587923434728368529123739140845165735570854649811751963655571945590244562377456548815073048492518063014815609548914781639494897090590563142599583776490456685707733135076915216090697204583910138297536961769970043457155248328699907272177281464902411693029210050390433875914348540586638667008951736019411794495345961209036457183238173215584315013672472515374967157345291570325824873265179106276195556057608120526817149927029552843882390937936548304052494470715926490126696792826836456742297701795180104385077531742723365734526318928850418400845701827901875140292072003923019133910665919804286641529827723620639702114366490830233631717987864762224498385614762783563200430062018505640415396754187320669932683724731656483032766308361811032097628455089260566429008648751791863284871156053321261569184059261337372142430610456716406958425991854877885170473914798805625734635436348278361712809393577550405109591798881342768431875910395086740294331083863665616157870472751373369855169135222580492906546207887576329791813821379707447742830726046515580766718977776580040048275929750520999539656244045230603026615064887863063817667704587913385422998043826609426424655665002370299561939039616857273116533743913756865549965568674562001527056392589995312124403980881925826616926458399288339168520559759607153338429834262967702405446121036893075159812102688225282020906517362131217860647548872296473174351713250327280680262446697796145630504823087806370612287174465782195820464923220449339984336805068325156266303674270577983277324114852212370805027550614877192387023262417765610957652472380229055919991173390301469494707723676501335041148819256477777273264602843318013682232239981132480645584189845792523093506928388431773859920280215510044332422480623901658143608337030180618071635430569463002636509328443754210334954511033476654974321417268312815950454166960815249503816135049756251433132222333342680826972685233791231162905315630054007867805584720188677486193615965618291828848354662114622917910954762692581228834819002737400009819435279445929141883099652579396075833023204193313761735811647744573752854947796972131928807344256798268155490424081148877615901113497022790027002875964775809691545473137636494640108110806564483144606612321843950933289703314707576212976619257075022555757502337749722451981346882866319788898206722691613891563016495779121342321522282521011115913820835309705739775697963480590552877797673804766523367012354068021220025478425875225743217742743604358157097608427951275191722494327187905294058510519588407170479810496576840633034774054321959816828993242441434443326231204859770462084854956706511914474214490268322317386112673923963923358430921533284545699733833711531481025296644283586396505435499969382157405538222746449346491559736358457370641628754528358456698218235793340810697450626410208136727646460229615470031890206087436480091078306457941423555727273085000053339170396305407955551956312004202175805882257094055338326731834058175018019107616590573711723298960381567147561965893517989876370827447910711120787116896133468051474081800547804007166883720688160264767598780139208168846541385073908577646322053673900023932989471469062918426394776961004911145453457306144338836600559425367089227070265853034944276360896400366551642298261018781415097106527160297045862491140441638846882504985916835861098064589842459545975490592249112312691670242563913315000078625761105445423814543182201407922179540474230675957637449405282018268808069352781060905220905784464118648355024856633269785434408669557071800756649589973275119634985744234701364888443182131513966574873942662107414415325535588384960402931239574858866416332491692975401324133663000387588895353384230061474147038691175468038309099377338036962972519580073989280905018944023369678193753826622490168447448655710168666505872982269992885704613182548796319794093587997872436160023780822304567369966491543772827609342428276075885766519688166999207291102929775945583920283430713615699637816989768046112199100274059558926748655648993535109377470517585776421871851969233284470975951885042116424537280418763288930853058738497855219613780999902856444194183289119531633071103157796610585577249438430495746773211951602207460242799265537016674486172179427670889147338543827969710873275797366968524615277670140551340730899947604458056856013617960304239604905982360712745581926109593541824830946406904382624312102084683605185171459869274106558034581980695825002772918183741387822634472046768496928923544881735153764251405688259155458522079783251606813599421984361308814092374512843313542063400726984373008668464375031571332730348098315158321156222538697466331448360791852171257743622589063126320765378122335336574142282764807600627960215439387649147064684405484121324233162693977914893609010395548906324100008751567031932112515151977226644581547673350683028652126942414437398859908658228962547887697998102265539646967361359809775676097154933729742039500417535638498820125478442399454402315890653202504154839183229940742665600623272351339754753472666136093662603917311477076582043207487915591157552666659820223680870883835730004018440623216491822551234386763882140889561078182190197949252642629914977315564189486171344983149591404047281390700698972327995055891462331702050690034758981326087108049113175354610693586752021298726602015835781818923151628965946432147750979903540464802075368916936398152624431812499103235038431192303614437189911098955887520198387974805637148234135469522079705229299067403765562704647454082062825177105400118085364900012203362563040099268914223464493725927827440518214231068510314647960802099598540777633824100957001713080602041425486647314791894373160649318825177985363228034960162046177627101360442669288674168133795617513725076434241322412256900914540978766778448726230415473556341467926155583464466977175748001681729458936737760417065425097431287701871241945778366406544734391933193855350439784293961023794250862901045190778965146366980282250813977484596556086248138575189883428867285451450958387347077188656835329517342965773032687328485019632927229182298947451981541902713871167631190337052648460841612151570070398512117642351360254976414081420180296016034353118846109379074589715606293909753090320981668962207793476151492248698332268942799214308591089914513041302166058881638588620416860108584735842755130605303682649981984328827209651587520952868945860036220772393565278481989821280001597545174787686146769201542575390671986622154493715359171980562905697863187940359929903267435594536865631172571543931910647376256431812225825070456428314075563276819860972598538328476755274630349235049773005094787497528532927192936259295224445355712537678686660559508600426187036425115690148195207864080608117777516798697472563141934935520894149213321789752330979883560334092970958090027422776154854866508681684819070375884794725268318058876316650332197437765804424701871877648860053639940184609040665765814221766240541841297203124529945260851994983327057286034674992247124052591432927897380450715042215670108661384961413769701488382603635826403831608037064060857394139217309451917312026855464347974208763214339967821828704985348310885327234529852875200632079103312653067568778822891180394152664276028053153962857102456237203505947310388626380724512813931105527555479685902278499864054583078080625987523991175568145820412981242162008559399462492318550352345970666862236205425505875209875081532887435796668484196486575278760800654792982258644233120898458922452633212636335146268443327301645609291104461631517990472029395836084893304924264110591310668300176620548412611631144128743086146757217106975249209185999342390682040708240624589775565948754684689670781668248009585247310657950456202649071512170881410588919104434969143094357586046617811368120095810566085988800365559259237370846068971601393877966694121428288435066875205464639426265559460533880348958734774530094176923862555203732570452886774042867791872607400899040618862613032633135248484332208662640688594557852082776263822495242919885524327358227895616932141512564384668986917883600421842010854356851904889943094929584755238832153763634158711958232916870280155532581910154581303166753093817238508660324232835105917993965649994472837662911193672638891056730683115368479007049269663177143105646326955231503940020395161943610258760126447644791719584448553270978507156004977684045065327361253980526280491880037229674102439735504138499563904785466886866271146258098136550505239044300321091731028794712174347669101808138434404432922045214716663934646899580405537254953153149249376401141310773774226992473734917268828940905007589304675159510789003621010505626158218059136618335313187705414787872111098663165024832801349918744320203999731923302316313321853440181476238980947630629038988845802819851559340999815604621530095300515596676477688253336410696388674580570127400057612699764973793601836683940300897199819407904883889245720955678925556629152564858345168006466724360814792272243532801441212313500508524854145061790418786743345515768748791812075955382867922811739693681600113107952303527971093658870051175742779353325298188429044135286216018973557975219779534287069487736945269359364514523772947179248433957444728820652437577130113222490616879791460773122860727769296356164790794953534020799613392127290279796143674727532677833110124431366881527662241218152594145556918830728384692013111052671168870401413954887378359724771796757422040516653120620402807749220053945885116930153971263403095111278816460476801674787043625934728657195098872405742781312637243452862733825061159729634096353299250493962287518386775044146615140784527697679277362969331320232231960448602905093450917081245943017686728020640921788012660660608428451070550825135344655315460297228841189977823811938994095034065934987194430991813638518726789154023720905708050746506687814838011279951396522899088186485258405565331306311460261493219726887672547482951453958195352535949448523724713020737762939763070431587543841677876594664077816466957075893725603700883145164388419397716715437937392971990641568663007892575493248677054313915043185793509165864109787135416478626384975918476893012459994876445730470534575965103936334953761395174244966174645325816759677053062126480229912386942459813904147493567233664866473680686545176550889648471565486041072925051595383444005497236088653470910638501465810249631581248827617658376068759282264723138692567775527826715091534634504009394987965205978606630345931574289194573814954608883160193072157379602948684008741894281413493956272520618178640180695102900677902252127279035599079551556526974150883233919893225427112936929510109314301796670415431892334058227805806129332982929973761641604256503578779706398577838565994899779372881888295255370517671955064268095461774937692060507040361795090347881708372846147432484089277102473283661144680924547570735195196232168854851957891161262449741588863057843606136755521868007620950170844672948336654440864625775033611452535342787486654014564898864027166802521950867329520409942004058433918659266544644607546956268629598309232462346177256099949328523822375133071336160193661510605844097490050385774183604459349010493001364156324801621665054311510651645813373277284247998040911204449941873668249216237291625581143253888433725647824935506606768539307476306205671896923624449024274351713065032032473580773203931119126123341823062590469963584249776385096579812420783941407395841460145693778201763122998004130666882447612038628008114300333602679048298882913268137836301627586730064243527090139314071285541663741455250675990268698849264581931886358915527133601046156129662721483980856101712976375803891723870520248671019716154608887017324738942526186573093047012931506401777361612615892329073568485847523198143293054692401345527127729952472817425177397601810731491320266677285120746507377834411560290346619778118927858046503608645007009973425658458886071169751589272593300723322507458424201909771582266750553951200312002435113761632878164141205691036040258408146787889282871653395764964327696317780929208427021386530796990282196975464883964340743854550110858706321768138651553602569603272065355576587181495928535995585193900707186081014200352777726003018058682672094204333608623329553670708976762335711011180650205959335699201230677003792557562415494155049065202510077453151916228298281142944231397496564044393396930150408520829246942203074635448424999795775713344216860525905463466246271730323663176737604662922542894201599780657340566701120945338292813113773414061044910864395477165969376767649743832144927187135305733909983767810617181436390728311386218811024192422010220149553525765818563594816825533738566340876339773666515537097969956412546109859092200760764753988626311562662269447384262354119285436955887157045959890881783280264089394650689898095980786284503362903955298686271391159750760049254050435359961349494445416314596290066535663637232785148345450856995880084420697790243573268478477439920192809395887973312950967539165015941148353670873869663698874255704682275941055927739806171692416742398038601082006819160688070730063159112399810299459740706551477326457673217241340952289756836058743531675761744601912819294126002129514427981332013209436867847225307459034941113462873404174481826966441170231964312102568492217457667812031341344442366742139371783139215428560578068092597649163951878097867207876052668840220314162275994683118132763177638497051475520188784317574472136798179267132813476873164451526523175574690515344647283978196677884656841307134460754834298178898398494465186463710139562356002352669889089907837092594298743506326306521611423709792136075579323154230681176492175576055322550388940437744182018833146542347009731868151218308091059516180487861270677792342332438996387968772247401709347305286852434810246662704883170728022095308939014332515311659799669042909498650911771439158253927873576794222311789982958494002866280492189633385004641466866713716336882742532735577045706847640899623987604318763441984524788414683582632918461502441138927168967512538652243058802199212022486318632556097157778488664824564339950169442707910552515530070069869151088278475565482505667972661938503954982246075286197125497844020269325409470746980421287828296370327443783754476583372823734242123535247377559300735810383745886039209497887974945411638978839206607890106972505684192227941130279741386888119700492215357557324378616904870847636899567889135318032157787400825094576230976546868734938408036146028321512752600335480489344164783666429018176201196190626029590663354865866416838251136340093505284499496988871909337452935573038475854311051100398214612865838486173859476912933938239771567332167779807540913680643280598991473599510960380080837093379796683979450858819107474465205564529345319719292345707699509210393080285430657972437960530977607610080823900409014931463724809754628215425730719218688759035024475088997235114490869469353452942471957711000253885137508650011459440890019701619146569832485784754549174605228064498128200588611443678204961617703994709433286053965516649912752930112184524224558973896347867063726737185896189728834304921954401648620449719284660759659210617365312966569056173770977327415799425813087690339825745014122722746583823056608026683446403985440619964697932830463405761199158374739589023825882455910333620766806385899443257809480371209282903486834305597937524417633634457197985702648646158634974671103080622904229940014408345507515077896046118727136613036938257033454823227360079039376147495424884809320797297972043488469506048151268822516143626745798743396905125225092895494416920634439153993804030169216590758388669416210228336006302138805422251664418326047295462650858831830927723869824660579038947159927645749227238302082305467482366508610452313548081223036486093047366480998393886530353409867190690968333246544044112594108428623287004345595717250236666093732109908065132662907864328381953725506033095101329502534448101211912693657183411513587695565856359847280187289013766474561163011545615440433776589268707635898709466246026950938704458554956064745956671155954859998129042324407695349587315823600032845136641538046551008996276087541206553678451505716594404731022369858448789057792882909061878979955968131940177342229091912136715467260650966065554515902381650792751733255485209150533835551713658334135021496417472657643077103796390726127879221354503034845525046961390822864415633994792348505301819622289410641951036845543432883733684932326457397821746486653394648287557336994008026266356012262892696605363582158340465435748967060003661809534174524995876438928246295507195563399537572434494050856974509313031510484968726758031162906000217810943559563749869605986506716738946270425722594266601329694242069727436489949482427478611924513459381357970460444451376006395495760018052002743497160195823290777142161629497681653993815902500977928302814792975608034616538893195478426629534423329775931176466930884227696263125349333229888770317433849205716461249897902755392932371071867828262102824484832758361052125993207301331045161432741040694499272020420647563452961939716225722712233062152191805338694858983604207849935468118513390180861214595722402113631333769431340708778946722413375673129778995975808705404339555680199493476161929345709899475827585578521481681424274014685950224446439503280853451081160049600946287914542556906801111997439025697618645976134870347622742659422470043922975070530865076007812693563947538477775828296880253593549733365764315756238149168024335165737685631184456764778266579726051800090513105065660011330485933942892545214083541316224057078051006679377659426624844259702231033221489802272868854609863155187078362337609679696446503366139920684947583881898878543457931317570656988331565929944303657108760025048864949736560983707754091646040919458662230147906685322982677442446187559884605143090820772290017040046650813085012080247010282897437368880416551449543993982873051406922247851374141858705017380785640939263281356510150146821474585286065292072184354571914691524291193612906829889525068653767697098200726370879286992783467562257569388290556609588670332378334731797481463313557877469587337902103354865606028562617602437201227915488085405082154872066508275236408052348296150849824379427519640505189710695373161181560536173443296635292647488504339572065080891161611405641645386310284637591079087472828426697094844958903327328680028556938395336296367915837138881232545917538177618920559314380525523360961126420500229137772969865807891593832291619547786521631711930129068357923558758110593808331587510471535857169283049714444856101295392078346724304547300442684776289085911598899234501676665676711302678963839709060605138519395656954751087100765259030172603343573022718133124888539866706258046986764753070105717284701054883344049723300552670654403449339741998533581413247381862252983986675341645905671136175851075795014692084526626267726676993134363337542556526187098020663730706941721719117075249666953289794655537865695397451922359359764292333451156314009872716677560581096777731292379250243916337251592387442478517452395000282426573001991758359730765513669790833064567612577330492445995478114770034767003563303799506718613498662150464772895642361709526014323812401474154835095275363939588031129461980336322149572508756478434780325413987454960561573590038697421976870480673592991347356136404842637170598135733346829589468121754730479765038973057756030829543721517328925557027795810336534074321257814109517893137642441499550153613343629283280431488991452850534483045134712705482938182173297715511728363316800274973921348875757954884336340515118666954097542795760765232913450406073526605170516064650060077060650886919610070222858228611139019230655028507714673624712017577014358642489090168439709197946684178492215013130684609518330622368822414474712068121627500120305396714975325365182014719334917743607866590754811014759300712418173566847968244719161779483220129391061768171112946156014715401460822480319417793665087856387220741059758944500163585199895491736401733009114188121795232357542392256728751380629889987311880146860402049744853917912814736165147675376913954670408406330676180153752878017013129998067560936243823108871137641225217795381025660393084613715382700350860396535723902207085769752934406108416589056215954217620914719659868173445243156399930441811707093878342158709819720167473957937489505835338442225657664444172400205559766357372840196804994962247084354215885994928933830203919992445363177049175264535912390150515098404946806615578878342893620759315497918313653796700090088379804183762739055738161038666806923475643529349665495136374785577772421051909481734462100123130418656379837357518071213001015872717558692296359478256482396260013357757593178901694033605306431701703276648672942181697258824580894732417024647049692594436884516416113503126415036145944012219260474356790765555102027336033060145927619087683402308717045848004763183772730642484148090376737366931495941818300764792531656677467592797153035901220889213229431406985506283352684707536142986880141088163142178377514467843843608863145233734159996845706585029695833635228505318800590495886453857986751548568467145472687254265998606411975518837520372619310903943743940323158086185347287865773693697727320699902888509446181958803061822789276923283512529499694827510249156778544140375056681513416244205592745777619365020345848327541955869805891642089759081666016855261969879427355851206167665083704087610334278496377065637114165780708908563730246539625767857322878311998150482096959879303349592095516205661342392840975912133791405201787938699556174285465768666734692494816179498143135741733657121010434695786501887335141250190449851971226316661352875820513424686696594983734116290367110342106030492344566053147342026129234190762339060427213016944780806589569287904326865217158057154859866851713304464048588578281619834517872452157191433357898610035059947896482971020478458538373078460901863406951006965334026953640918929198071200003496121286289368994289038696653931334047856287503385953008372295193696219806423141709895759831750953210266956010730885495781812092850660929682599757788232327363169841124948935448963332633052636841866945065337839026478298765622778722303907310929777602417058453322938997972358717520610122052347441524487965291195834768731670506583354175846575962492969312038873970547089339403495314931799834953711686046991235960246271466201882815592252685174309002375628954205109403950707564872934283888288281345220400042735903561375882356327201191736028007785802947669822674772219028745662323794896688630210944663576205572239299536235854284924147111900260547390905334908022754654246293935056066933179940852890206659825863523733852301705539018814753850262282693966943103659302695749842134185617721230495858206210184260573669380383559373679845452630638481569529648552564991259689765455512648806362573019877018119916566904257627304778491900908654768526860811513434327642201421132387518394110648737587167493958809519145989566311522858114214450459865486158044647837347678189378699310650675536035354668766927919339852936443534185231155831303321316413771029410504249494579299525941459263234155598034046255897260427218283264902474449672812812080976652691213562120933222463608945365943010584084237560677277797700714454409719560064280326755004630443976406588786145743296057199817613663673529213608680541655599564576125042661668554579526362756432683894965495418303718839902064065562328629405068974146576639807276651316071458381209019921384530607845458136257015663464452093577002752617010401772338273870845398392151866974126223231561328913262934637485961300606894361108887130040728743917469493055581220444902061331086324163609561547423178641231462334227122958048194093266569824220631114062481669616118974695241863702305217510703710552026057420785215772522504339110630619524348686355397345029055324758944616675764759558779781485614064510300672608076880306530126439874880332500494568984479716674588159111034617664550928345039589410169646115224089820162480699601768005821172563037373981118786935305807423636220308519844364608396248740114930873538351244296965876474644272437492224202632738497972865410459463812879676928845229997126549093255547598998918846519958774918253040586698203771920788324915782451304339969261000942515542908294066586898850933471896460128975992318542552315927364396067424253705763517997223495389690363880980938744749192346385492285616090379706463077826664352593368894373136033528160653787127775470867773282141687075166696991525889432417960286904176437334569717006679399453970421289304540241329742329814378100631740391175908372822907450767970245436387570628629297678027059926954953581875622472305823716698928138666306450692349325419566829633844342902724611405466559888844035439706080666281694430157104863789079517766286043818259376793607080116591525738718618158514536203762914730334838554255576762547833266446590489924471101030120963194636055728876971519803779813514275990878921824125254266252083765814123933481296622554477145950737438996650440067572664494478867967690296756818262488476417840717783161229655521161323086269006989254162232224166258658815802501729932016061772021243145633661896644382941266783662845851266649901078653611087251293681501982177233266485598594690923553253887641062564737965560645168200729452273613188254116402529198123001022615801753874599390262946682170564222324551952472262383157067762116408744198462630437659727233484925541111015992079734814341530437275831916020943659425507546333394618459996376396417372223315643948667649971894853084050773416150596427026894747486448556196903363783545266033383627625702137969966279380802524044288440040473930434863391684412234393203032440446251686555444779013399014165767557706525319207881262024717084308340369056955851830824087513651895825212700049489655385387062407621653906200910392342807516014012409280072068230926314670300708762509470499026841223394076517974982289537274832199477575618628997712953386328464436071506478039343996003166705886160070535664948311400971375107028080888816553583513090580908344264207531737069932382376123613510951898166722678295014474968751398826617957736056849061683723415246239587472534044874961574761741262676820760877444174137524991277331131193906973064072781225034869720074450513824844460758820726862332558945241329226123954077606887375511887089380755886895875692558732190063328746807656099412683387617912371118165965711317495545036855249536996801102102825046882379521727377509835751245457853748439274212849896103285484982855193233217265577065284565221500433615081599493535172563382720822951328258210444596034348973166262535581037707023079835994343947943084345398926944716759038335520301865239388211372760479893201154805039374910443911849046205394670376610166832762946119430302158387356076807286575695453705623925152002754849054055116830392141894099609253067392273281979595404220978356629843212527488542708237968967316441297622411264169715226325706700171190971012774131784362546905464776650043651041008342757234657597392453272040669506589506517109943790096785873545577853340271602548508686742403575476229761419437370433955898101216013926715639543560232791533389583069705827350335780884874276714352057695733497927864526459352673288780522254031501519070436765547715183918842637119094439896005202656385747822973739447025755127464878766986674462187080723462947320564224029261068117253330053277125627972480476134784782935154003706413286799918401718422470449879441184832939978438419676372501914678262371932801231499320555035499143304330381138052437519666425066036637409837456453264873422062093987391579789162589304673733152699732408266494110388147552386674806022338591298902088877383917949974489403050236655994236119278820352698985557234541297526359589525330265154505648159853791472467231985850201465906408802787388930613920617543001699866322201805419475001160128659927198502524675142905797954718440230260936401914350281136615632354380992060354932619180848573795091842268384825043060254129454766013607322238670468313409134237216163870499366989252102948090133179324490287549740568448179691122172111184015075987428668282320284480353860015030549129727827541074829087120893218270362005872849283864793697228416812375898312128327129278106112229528119794002340428496567645185052550833021434816605117820642570377800228266299444786878760179092189414248158102505667482285293114796620100350210843326094607833899514994482949219782819073155079447942279779877451627987285172899932546478254608349637156306303288071989936765602872012758878910459192243679648978350482446255903263370498566608315836104857160975168833683123267795095774355923787342755655103593678451255717374572563165579448825132585106993605603330463428677460874062633236562413520823030445901788593232149133003431009203087769625591918321925110110143900120543649554253107480594674084564441118085660475220815760160010002014282305548110838914404381518938048731589654151283411463537195634663428202889472285330843337806045506698365975595843147059686726085839650175904260099520754044982176140905275827650363348883041373207521522135080071454221755306040826515066287504330390231484924251932236862561068146593909153068951011041171839242569226647385802093547265826709754405700954136441223656814430681415575823043044300520859850250279196123079177243350361876315753965708691830361798034009390708615255992273956367594526514842966259993732099959103021166112826236875793397537724880333862989447776138331037243902387039601323688183469529301068569434828354919993055004507212413557198086385394184639101738109299580043510323658144909014937974287085496189109051649430142059687198536721917262282956889495755541765848724929223139787694054245266795391918381172543049143706407489843580722209303606894682865342245007980780880402620588333886483113376387316819879701926774058395478653441266034374756506989534956260869938025567772866594168342059294956717493195434622565748483913741620682644527337394998140116541603849329099003902724284509962827727397451694067596051852523007288354465259775113595891049058407644183839066301449734761013622090341824140893339437468899275856643131114925661121745918430127989405523230657027753529016925271463537199172381966101454744917883222672179304382262890219334602393112123617555178535409267038367669952183217852515343435768124058448632685024597378349038390052882790412105722346388392520002488632858437932462006882002121900530979989159463154762245558555218119836571589645017956684930350908775792085756536112698322022685777768827331288163061413518770670080806694884226904658071759452236540860447737542814412667493903574615980955375312089633983243619286923916438109507216212665369388449406152457742684645526320314675507396312528651248542135165642188616969461746456463865381833200881747618605233164386303830847926818842729833180258544237786573718748911321107855313662917574366266140713521644880565377016317034161892666502897225190409186902866511317551774027995650207857605409954918267358038344079657343409242454790941455439893307826640966073072403004367206448057691780452940237443553353332506859237888845371925528598973103000132977091304428370786768938506671492106489066731514174187075039245799657718321732162754422179262211996693716207248695252411570887978605794119793295277766798881486740092706749103343418383250014276429101073982702103334022309318105214186438485721122567480882827998552074290182538212789044335345041958212875538485622272826570048532104196310175123352045320230391873791846688857505191116611527829126916524134812650808122470276456423799300581179450562481962996344166042905377232352329644877236495644184969031133384406975712736931881707776056392650726139137885888141713224047050852545842090339859893640634332815063927369503729533591585268492287343415899972224571310142885476083563687226516174280855481088532350889784532720107570793314314941593070206681465543968004855873355553537993117505289369287130489084481066926612193759129872383383280153510974809463132260780475136660286670154826213445217788194249982707218197684044947519059764810006235147432680252792223305244846005605141712097421986030062282192894292988009833484539874368789924874454823502454984648036362022350076510553240282831104838585228360005313671562102740892407882355443252577828880448516226554511782509088749947357942047006665650637015633713947304456040468847912337788245054181210468747979194812788565884106993472408044420963957134283206244459787709409487995226189757497126205990459585619070867630158437815608976132336123542194983658663850256365957205350602054166786699057428157734764384368514156506116006713933000655078167995918561220266831759600311172090611546748359048971169515558141521898972863778430063212010118818144977455867881005744597554986697806241106024617932056617480063240812451932407794325114088949452654156723440346515502427807344534268861293497276246540412236058572301759281321721183767035898498100502671453894239918665885259888782307365949599017214371538232637930826405753299861329766255478401694865772406979787655671282347055757703203565586309680027618593774106620887800454764731866306343163786109374063102900103889592300630010845709179969236065702520302236849223627873529206351834441462314051497946530311459936795349865405685728437953918989649616206047853371737260775483414163875129361785300765455503899443332105380936902407747879918408221314467579250587287220207276659719938663040020719810021381586983270601504727277794805986704055421151489868207374180034738212127901245422238480579374797715594031547241751972102373074604287256355895128749190366756365822486373879941190169015779744899305654888760921191580572934137315888219988019064376923332901308415705487002428028729543869112375234922043157850199145656150614838935542106725292513189302759219305824722163033963387560807841455543620632537584455057711982386888096057980729446812629908675728494182900932495102451024923856105448332526703119664983633688533526211321850547346074085381095926875308198756017630436011922562297713994836477345485021547938048903033099059137037379091236141938987249874953057395605883798799684167562273403388760134155032063336498104161547508788589375190701483260750395569782732119576534714019588011704831157984973883921030586052287205338533705367916149243524323430351649321732336796233684402385642871354988905100315293982253181077769042677157007704944635230185903830238982185549293208904112949460126008011978308201488436344057294645279549876944340528201522627643446829260906215825219603242794030690143728706270775043466037006171216630557337863130961351337293271716102649798232018960938975429321808078262347448546818414721108999658223381841538506197684536222404274019060958309067420818677841192294172707003745371815818665260031283170702497556395831366327506856018522888191379421099257791367868495069370950062039539704345793594855960814859260548743597530560763720925493306217376203914643006248462385216397560160591445329972140302210397556989753700168177985424911412803311338876126311079348370867902381536755475177070559663278599312641503402173556485594154953620578947331662245979598153728686623977212852604398434537471332438289728991264078185744877667649020695047761645526405249750404135427653900044541499116537240860394952801330250001611260074504356298797700104134595992850537175067184481307897564028647447490253983028931236196295079383773760554465294407292976704414457992137302530810069558546134971783900820406716396511586378039785526597306955595543911464843071969572944123155683220354247717928665750290911764798336785858868283543678984619867419070435198377765957027521168255297204656785921588200971355421920936362107349050681902224901591207033014817428219926281074447917905125963588955329489080835221460545065552981388893756462735826709786596071959564358555974788050688140810691816657768493329930627484648119123330004116146658890796956605335445001987684426580811688371687512365005841481720040696437093008330251609204961318268454216472000553214502615952134222569609206130229430683746359132666171856238597553918355515562753479408579833417396366390695798744111555030320686029576017273002990580204826600635247947328877463049664859271346275422070108105012831959424964840829386497737962357042770964221181304799637792655338488665626038807248573483767649569666445781354162487465760298142641181591835235317216824624501328709893398343309368473212511518646365800417884257809123337256365899268162230838841463198431117776520565774291499912511201372691607917477465729176176374038001526443935482928958198517391755588109906901264896338246182034648866250603323463472439583097176100681439063305400409954092002421028665829967084283562106560844573114989344023215393020270887134355603644830651825592144262364473982285231379746400063830966468618293400683588001573864706101404171145379738174527507505167968414944822887391806737935159543587953191352423124453266945641955825145721475919434505780507559791719279770060852416803312308338196243973233845063784294297875218267679324526735849008303163168902021550530831480639979994105676303331131743884938406258172225785063041054580101076380480329038860525781546789584841770969231948752840891471487175544116846343007763362877963852436328132759180697769211895697066702955875233065833088209495369494971621317006429620721668553605165300263974162872275159542765793897261501657032085777455811545888937570432335455949398239579525276766141885993994100329776514005358842333266664603943888344199377285067296450482644704006026980463521150437846018287027798283723905245041137206515405727157705493239157081705806001583808669547575135444558172434482518115381314619210368606603729188428963896071700169481947545601566648315015273794177269051296229701600072497657643437562681273975089826105684583056613438888277030190097490484386119028856430684960888779407593758235987434187364460501573727098797589214731594593154539169894121724306098150029272395167846428999816008495411055698844584918416835744512854994687632757579750049923597638424375462978044677030298317677499752505520135850576044194644077539384475932678431931515402721410224140209713554269276996173849600160100407592846056591614616265775161735211742291101416634358629820279537751803946018985574251461947187693975162436824612729608167361149122805630213475565422538515152258689661717896649669801964705251712475192961932498565401642026716548470122830439278489363729404780451603714046269813376714723304395687004652461185437073870697101941683109931034529641897893852882410155787745605826941334172572897035497916800404529875022946471162765984816843911335348201320320337757584238189891504615100979280462373531887231185930743442821451773899678058328687105015864092941192228487433815196525751923443716906230715518103429729873397883829191473374982547540991661375512851583720831398503363539530993051159773942787126178710896644921995909859051720324773588588528986304004325458640019534653730314464886924753301775440811850388998316409323486213922980866656750775718498121401756845609970692573845352976704923457205790686376569157434339507988975498776036605076256880206694833007541414559001584378991015172707998113026240288031258510713991882430282674043223630840667120739879769473390800384862721623679597890701957693171024184601980372039486318106042079565757122986951033036542882588885603256747113908963079963148910183675496688089351847637005761522391955055176185866946472817383691841030506636682816893218238622573621139105252563906527202218518216546278752747104227342656210875078223082427219495788283569705064044650943215738637655662717864833734396062047982897341784191647076888686471166330960907274235370160863246132599826606346823225874940874643002711509282349874602552029233251312313772050861831286806829339276405621128389871831354425852085120546755106049621098771049207183398406853641601664716841626668584257377878928973268615109132639958096410037428148380209083477791358953025570091988834136744533567199519008873457092806049569279908047326615434120481234269416997232300122793810455206791234108244129697950861808166910636498982904910784085576582644167171368308240207893190145395954716542281702061102839779445211971403958513069185660229308642640248234135888905455965971221839160609837957105624931604183387655633683535487423558384833495979279822118202221432077442538285132948136180748588524789175264756151206036809504564796006098857870611109411938014421353929408713915370496746874496270096233503636257872379004873694194722753161606226733569350838643092440618969008897046527778171219443867697406416497364577289190579560257307701788529742645291508928145074940069083936678834604824723886017330104922979329512040285783768074797340971571370212292220874010548142916103502557655321320025079806289606563536402132366106761556221694010629432621799877095179076287987356120904817571767935396899485976895470793361026661410427288590767417984921995278438937646306198814112526267208104105280094941943506760679161136831729973397841478310568502539752464533857384179024600132612603586575874343962694719377315437536447704702999069979790890580224065703479268872297707799944816082383788590487064681916748842286599959193196633210180229614197107799473506219006810209251679156851346575574790518999462975423970439825493040946683234176858259929886433007700837196345201358860134047065285667177353130471959743682639863901538040672850398434806568466357381458564098682862762129720120060259326744824927356752693598760107280440946321350523170246056829410741426241000463292403467525196481808971555626076581436361341185803468530531909911490738747322050283108886552391083414907096604082524481341537656532065422772037476928696467309748890850665625469539828044679590127093404973660058510796012633453481612372452024568903862795835409188536349003639518728624512043726493969519454027761933252893979706805938267556034425365999967429230894946476074137408190901136358776901304634435678352451380402501271850107695648600854153858652844606283083357977087563954641917912185186099927966652299490987240354780368968748938523736717483573353008146924157236925308777204524359323118809856968518106814745040110439391030392596303549128776117766777343208557518698062777937426935699140283892443388943753809857374893311596938641050533826726334008600263114298729028154010090272765541403765283222362322498264651303030840718167674594669079047916575835035359733009120860124721018764960273124501131037749644605274175140923363804408313553994718006184830709083059337485598481394048050608607063819783365300083710013185041456508033944679171123216479147004183956366139848965667264507256929145318221591421886104483988342525874984370542738760241525344814072934598398591600162583507151632748942154479873102408946574565359957024464809638676312904916118117393927930537482952766481481794611846169963982833013648621862221723327627165893298247093194528758150439704584206038458326081936468894649284980056621428562859258237860400771254865536034327979271682659625389984018334077446630879497205906319633284544590448926076785738739913948125596927978381081482977007263499024051902272244669566090044589560126109877859951049488568656770782170677171133111480786204416036950890519282581230427048187803931389421724053671045306380056263087592236611157791695481814551670527110701400651459832199239820532301066143992869704092191336067691424411670919568714675318532792359103836906281343532231204477291586595268103053037538056413739397171571596973116113420818142697944655973214216197765409018763429049945393766697578436533258802818752334400827827179181820026749891474179496073772336945122384677501588739317738556810207971438991838991908317502844361703222818042284478593371643433573878635292627751561844943887793406126289985101000084154550103400378447398597657537726607035481788863282961375937730664926066258612320852183474480401342026548702754619625222820183801880009135857913808119910589732742956135659595508970521688046568098072209265558189294566611479284923611551449394205662881794324626160532480174419586539361070721463875551812739728022047915732194389125953961752380689511883314200849086353955111325799521832515931077096767152319946774227412357935404158258552302106624906644102862494776080096954190452928145953431898124655678664293571202170717981545368347739138945500597336872706832812663805231538817165350472195563797695690586281829840971448588809135179805168738538607879599893218384816335222915607956772841632450877504099327744408950844097703201252173172635488454661151559623119384123974722684811248826123770819531251063513762193785098360751934670718203261333040506897901011176812883336639488679310910698791564145054601493253669351763408448162846907962505167199519967253910746479421946726272075045161046515924504983008717824020292970490755662006344322519033218174424713575272115168510240304003946132085354535137758665289691373763840766605021278453573439346379492327761537135286423017496549622198844907795031058849743866504836379605300581086493825493438153970352417137265013284666197230914525315074114162985395173661578786021523072371900403309166953266977686429656593651745929938570956152636334265873133211033538630188478097860738963739675743932733547055666493222852671424551047547858390250663065583504167875227267301236481290101559349711623149991375072901796526248864320279983073607907994913112883389344874351700266002618893983190720302631740373920235558072430447295523683650376608788629337139030875406147273391374211488866035361414207843883696858327620835068986912629124619728063055028325322581892268795282764525247773094107433723426083597934794564750447524058813326101093425062825752496296182689747934707130298638413375217374440719543912528122107556236689539427892706872605547958823749580147666083885938618109759943916563602589211097837178298685398408665802246774323138890485517150091448407071400808234301440181293933859682729850789581817544617390898862542308201333356797300589716274064661309938975824989278491243079173532104662903803387423689870307901813168817955852297513236489840340821160890068303005263182770270898997652536092093068174167478248053513469713178209378739854037787332519275704175556673720292310556485074006885840805276709302176256647126786085718668475108633938424362053569770164902837630025064954668069341816725714575407963055879907142947643984489999878610512361977332764513849179597303513928061035468793429049301906509516110138529955068777786396197915797297127069344082553908121175879398910008206083130625807427151588754325959183283381269005961428374762402434738204322507980593156179590161888214809942493752740053677131255105935812309077022663918896013964785220239156863951273636153555452090963179238528980721712024119245478589044843979321057711937103471445209536448571655759515338471595133408679544910116794427930412806801536288917660039144475186008250399567558015000982387586902498200379389860547072086235305698074964598612171862728731816165446091096154138378325802611403854311769075619553860581227757473004254716225089732285437170822461786593885318375141287481656517135688775346842521132008900488627933739930322620634345427544362789521934521599858080892184903657409114285950126531317970828392720115744992218120757912465269558666828310479232633403336573382381727647443370386969977284770926250891839197192202572861474943790128646572043558942467488815950615757901758890902515126597396777714190465606885230221195483008288261650505985366805557597845910299080121281718387085767584283059545145701672985164298795174004580512860694958943705178303018198722118333458288877201431294805715303365086481774065123408325361365402759230462336339166278133403562705429877850405768936059903516832653985029080033375082101805421344713820210289366578949733623028859378918283887503843731218732134177268237999932312072398213491480260212743043797361121808293729830221567198403192087947788531464056478776984970816606386772689790388854184032651446524000652321951347227605724839211655253716571983753890914668852703448130035664615680303768550265663068923687642308249875109229752941852938050074103920727670889165802361409205748016254114527531613382945896266852985233208538324718159551577380640882005426060080943780372494861101660306826523118710914364959791920775702960188517189060632102544949750083724071676153105138113328102994160334061572710110424134213262639121095702140241440002564347436604379885508894976689130658626021013287687683556492752878257373199210942203984491350305602630145536377482268942967238915144877178299393147358297200718301325537441639677592346200178062565061463418919757006131604459323774870290993081444479041978190996253329983733476255203690886875347511080828024095451486539618070629728489127240096148044254862181621486012459356569392406442593333157214795486474572654850475973714962379816810685562606776300442434342247633187548240267663947507918120205262877560420791641439841772489840071573678186057872532876156849684449096225261171813001195388446114005642406943880386719580996248489755443752297095714562848850428373022136777526379538356045128790014280097939301985956526065318588738481082237000688845245363860596774243659769269875438575321492743149778562617580920203456958111651336469820247840909500103771848407711386770929784063089362056838087350530031618118362441465397798084592989407545778092725550462860314350201749145114715537340532518837922313590826556800962191476606279588646318887454236119688879066078149884239498705008715063881271174480253305126624755557808234845389087651176149049739626821726067717554290587404372231870374646591289760958889982807674436286255043343855128281745272998273199426556638879919239079690915493656074950210666501042339606718087321235449347963503329862693963958218754456952278033091147145151250859628782887843141378252804824346527838840490833072262229296266907525570543833547444544934006670507181729333182939668187593561100403162461194536184835214641443273204797566103035863557590562114868452071006665088794852562297345087581515219609471853472323698273194959240709515286842118712958302514559517069159328006031294998469797681178761818000679884745979969732877831274367679118793088689682457731285825975811481443364327922427425942685067238789824342704091293920840103542861219708764945401935147861329845926131355272370616365476023742105795163466998427081389577301903144674508988136433325223216196452618238206100989807377378413730452480436793842427853866529077219206898394802975146398903993794626742767907681784029495637964318773588293346168543168417687820934711251190720758897593544565143234691683302326790507111530018262920898420469949589157224880729562656353646495587546045082327866370689543813493820987152676785993683467784346518837187833417812377721063032398171411364065671931756504260660397362469209553668272160168071429742955522879708593708204222014771340117369843655313662390831640132426724021459193500252128047431387362808079862774512286997947975058902877154459834608016911625261330077021867966131053269057953784590640574235930184542579905902325171266778899418779541871762839265178663624226150397623839753909758934609273757376276539459593534751811162276227878941950715079791671757300427573228378861660360285202126727873125508252850039946752541722076728612655591755765371345061385864229204677521239484436706998231861701678281618890579186296539616985715795076450688054343729114862615668722763328675163304126068230899828110003696007897880016449639164758048380460585395205036993580305814437985510890218960624097023084997936102497192996103020852279372842431170674268149135282677149937252633344699217401834381577366850287320371555414577022195994182107170910398257621604314988377550897142362868003954671353153716818934395540924779574041754992647507380640959522364652534738472572387015032374767659281572316562225694659800119832959134485350798624231815233230757480293249620638140584619129565051513235508338303610461930758633979768033923245621826181800878651093074724577458865565239837337701575542143527545504737210480955860274374874441899790139603653246311023337229501190836125229584691661284856770969954840245185651907966824215759510055080455124511480593587778539876523806707813653745372448880909490117201435182832792048291687608838144295173897109333398323836244520961082547978379748197405710371211541161434706295537621591527040602059397529047354840296674910866869855374528458858222477859731650064728978665088629242227015971390513876372423359563908269001750363905424839114915124248038958207964056989761493699467332271700709917301812878742227605396591385478135491733946311520808481553361880450326831469190772620654582504703358101222402132783731008349212552929798839995706472420514528912004806026555963137240427091121703612067536155280763651262528778218214604359899868560100661578983648044507266800270527996249960297279153043278237284885745808535498504261183600517095809823530952627197795876534534664045890179112620908795080835437601285191993145956340917746384900512193104846466738466687581645532169961988156906647663079809365772819631577746461806547088049327436959245407728643893341252793269543448579119403933069479736558914824877769330505050134981502350395875549196955771664058344404011898193817007736332180158093537971361799127077787830589539753833502890224977627619378427034584432238502855095640534293947162586777470596755707672668327808525522966323204067378270455592430624130617259560691404566435274766547918683556665391111696689805484494702387441116279700194300569009687125456973049343585294591117406319636317185688108069930910068581633939712788259513339811200995152550814415274093707236376116197182558601735123253595224063898821074109054523135986004431531377669639247389667248918735067025386252193974531236913744189592151691267318641324644993230330744431176076311308561969363031708340271962043704891561420050100232172388493841559550289692245361675130094880753236784681793619918976314045614265912988978060551198021382827642010479667069117549352306946619756439373581133242133834524069138417640614908189928617929605204863666068326111689230856455108844160389780438155641924828468405152766374879376121176304784967869904491179155627765037699900305882970581256295189980571829512432457517716563106278236297690118984238729754335902532104188922891827712551583462610782067541936354717034655839430430192242968338813510548217606047260143037292494622414948193978544818052384345718259376579028095842425652427656245456202178306935937422344638973274603839284511952405378316701683957277732228329719812136817014499113281883781311648038086580418767499591168969141358012304589201807719523124163084584993821216627634460008277495286058321415098340956043988657247699071621482142277358966031903823859743314325221726414684086019355623776969437045600758892122003391212698872416718937606908314854944602133892623735482360297311588695296032372114363326445253690044354382401928096172081765415947664127782154194913956633866496897565547160973025319480459089361282898846065498924718117893798434809452680648742037643757760692931987122334357503059001174167499310202795908824721141885822509609035966896418199663950432264391337383407012563900522618052267642352406360768576476788911620671479709850061048459582103905834780197047513764795974681948404647559782808908966942995562951171452548337958733704093186002018034890166942797374027728482288755383151789547272919489556944179922994311845109421055879784552123202052708487839755313394280170055473032270675411692070934511864788682085392908895666357069071806531195780235699199180392920069867051159536136900906960579262699279838672575885823352579729078565691353493685360645170178668514198482958350754985590617026048213518916435219179157309510670043318718349155599786893909244924606137396940100216901811776233344143914811355200733876807085501849109890009402215005404401317918275235086214764776466854973642412654023424647508121165637577197998109037167810457532533858109326437152098981822695309235024383797147130550302447140975167873477101711155153551527831116070769069701800327881959468318191680649497457251589435899745325053303841742989406707210046623184195438887715531786685905964317207476677857135504991547432249714692100095909505059252949452195631690261164804658668946289301607314581526849322442516339714112887566956254613669394378916398904625686757740624814974929058974114544088815971875403688289481763927693241996555705475355817289602928412064371754716053279719426560960061505621938390017794369158888456403318210316839655883326762894254623404478031988296165060430748199058857486648500847406941747971994336479673129667366058680832898235567944669594884792336912858621757858745122946076797487728216972154179236051365517511661867891146963120520472924059271481414652835007269025230354324070212991497567315607713727335166702027255061011785573578125638834855687188821312973732945034051743670407689696460243643777814314765184266445999667668980399868312006442311682834708344648284341755579498099641622853228155791149225821339715978083528611660882687436038787459870846286198584934902767517323183494185239699452384307527439751266220765220087718767689044553652873026799173660291037487053339283157747124509021103577456263205967294610408453381613240003350264962826641224694100080049648000957438376661833159055285965649039216061825255575002119072138503585962016413369156559521464080671957143617527831519139243047971557044591793620698011881437908359394374237797915783204595487706239532612108930966207584487340758576016163098942394106651894717507960440250253837034323614081062935026750737191728371671866273779689245324674980677966252951224477718047075588319196187831507187877453448433819005338878316745064896246532676125702755629504780409441370253559587731920692395546812264299847221404140085424903140005914845431825278889285254549303015212364091689080789066311994362848795503639110409111852089757575362072507048048098848201021242240160667254758836385748673636255555761639804494816908004475521305327721963905045779629379862950026925485614993587952765094390331843661554480367746218666770764209065375662508727581711824897398023287776203176621069035301449443393218403048712288772954192751692413858859736703357487572791532488690363013140920711596979186943845156303248746059348857589707080726434187446609105691427883534903298485338969232669832234077769115298849464007037897448821309316125257222667371813328489019904498855066161265325914101754302971395205509699514232695388450119964276789037203368069009337598328709869429931384304309566741080731827533258882726206023947880976410553401695250672376904238339270965963373890321462473470542723072092183392419859352132394552108083596901729400509618933684242333478584557603477606712609607431267004327847225749445420759087612271925400492646773753017859979354807618517664240320471996922968552661687321184099893211799727058269648803841306577875960120119884653869129838862290340808345990864821528322819173192981209827019420777037736319943474885225638985900466021855376538488647838409694020069170574882035422524406435882105096280575560907619260122687403239902526671043723852263125922804312380253298441601265752523643871751822155055819316339533869633148786499019578937623441970928295482192223259847062501830946279693021360890334328095515369644077494811277969767788547746095719651163217751594906373670967161198005202134825990357379355519464750139832245401361355801189599906361772774382888099638548741440410696590672807551390166364843554574762374480721198229873587845265113701450061778409953390295328232807575307242159671342923429329375073583254587695545873010384381339863839101878052439835606086798793697102035703134623982691362394557728115129925522596298845560757537113699366774766005198012160578209420167151939273595562500926955184338472099632912893477903059869271574637548782790816953662054172366369783400130777799032930533067002913334883025323906517382873200052124032346108707378934577868953650782719983573091896815969773761457840856279598081920001638834315030987932470548280358467040078418953081635020688002581624959480435184451059484262474328086176333758431463847201685061797546740336795798026969683674861473210078673610868533267142480614488304435656519177533299744988923871958015104004155892483373129620604241302828901788201930407087724962989455346036778756344563628687035261563235321627319829791659106902251703486378144675166755693555302158481787004324494965320185205094183755469603546286227481459198145269771166343145687318723087879606144699664730925267919753641994883910893999128700625666246401115469750621795166658954874612408914522832861740942952429488063747367201861405658469774549986189573322861867281137625624446096677738457626676795561597689378614050165892960380971316845698815401437853161664150659655898038032952134804918651609017875516009109623565164566774343015684164460365169767255396974382597038035977319053174339851462146567773642034933211531975650868953221769712562735787006521347822899698113391673456872939634267186771309718160864985759660208532377574264593144262162520215716017115709282405435208444767088958908559623178753567745457854255218078411590908409178208600638284816601083280779038615097869887973153596067843865432906115977121641398793402590195111417297323876038728163502085855896785774185398743835915008769812936177212105255552789324363334225505263222823394866829038212185786917435455452160077909771775884256153353005655022707686486193198194916539180145373126147084278287435831547042418652416284942787374097418937791026403071004151352956265840662343635611078124279728711407886384584776054203722336885293947516121832547877024097769878666633287884791482719210196983546507652883856579672005896346886173245758450926055415071861515736246475025558275807053157521915725143292695555738046120125125475190344661240730931128326204194954800925866006199537539291306666851352857379436888918707066457106873551720085630931744632617348607657545116313109604886526248197830688457999489965894610749158584966661785174276164453015981277884266678066023814018649608865698773294549121598505039787987408454611164090801122533814151585783357766084438361763945926680229355766592905670667771608327281550254620103564630204967038488789874613701346008034009158928231866662227572500449804504951394664300499297613373396677549783395770676067666355596701711086851447931606843323340256435789099028821643366188439629888085413987476509840893310736109585861560583546543588190185826946863931307539540907801511927340992593744133953451776452059166965832113540488831448983977854958214118483017460327632250610574189023273597127369457743873379563987397937069704414616943950165046447065726326758841675060626569507065867089915015746412158610662414298941348468216586556195383094642265966411709112138823439433627595319087586916102764518028949951097704793921881256768494615686562684561426451722908688770549478359650081910161658830744134085375840099988727764414145385429367104046538370972083404599400000597441877976543202487385857449246976430190477474688273622955805026688641365344127749058036441021822732683328483349140994784200230098553785272279121232580921623467391064036057671688530471877876512836009077615403777380920241024392051612196563694221667226287774599005488925818712986965460345765746707549731120090753336107069383865133841999906950322231974868187894534640883203071045198890066929924423692428813625521042095754191864281164110079051935433199197747154701653174023950052206833183027500025350087821260762882905896029014001486302494864442084846267106754211176093259013215574291129034928235285122122600565588535730288903528763564637868799776194594250266115670970638480283306244633588109756570829977441552536836256036386107112810051766610797885984218940137236591587207254010021048267414093590574842584180394749962205939324941269257424596512427455399298510864285987598844736202650966197779295898685173274964131388629428501050260395264404037590143539084030239788483393997282509190860750501034643354226281358210838791391239778822298934221213626680366073772977809073450233919725527981983609391593296629136109646218388371321328276378589708280034172077825043215319786700118233678626908262309743808480320787562633041185975141385628835530581169046330194973129732234772063616543356775732777281899211379456617598796377968660904598907964112412775507021134399896027855162999142291669542854975986514841376757897045477117543487096111062138442139784224627561291508624722552967775410994597798887342435005253030311680809096487066984715302037392068136102050138466618559001070479978618793313804751400264800779307831132123822080807019511649166237092166343395276945618772781719875917694165792538922503943677983033340775016232130058762719809183529644939654381200053158653439678016467092794807604466594132174806888079368672070761007685984684150122059603462448201322021647745267119039824131889010853347399458675713851284105606715341896963205327138694648209728518601608002577221965674609813815545125271187027726735113526992508537469677365974555135437246460479034434074021812135886479558739242980081490002427314444135514157630791068926718481355717221616228466717093095055457234429894256490078687657837754122530748222289958126630214582181902440607162466897921027220407209160889727926574126697557540200440249108419262011539354077169619571467309825567265841480454460704515784476314271242771206576873833924649748785051634521339350950220668911617501299521662038553824616413913395105782263123247813859984494126149775766757532453378500637651051218920450150395391364535315689372990865399524829390504948703989002813517901791430292968080663169748708521663978463313411535113609599024090549717297149595565101284393997366833943704408072687733560135460019425499677084220594536581857095520029396302777241400659631813523373370811250637207000990484294640140569572776807702744773297200661140310467341983249503509760913275416629145119964194703990198133538780652453685049674912582630181539994727064602643238524609280296710590712369280214018623220111200673268605985792033830888998677869027731595123636615145201457055221819635453142827257127075162168896259305361306684739338292638546537015042014252902805274531999716654427831152743786422500316390390787844473310586384745705086965717002883047196911246544886635151753492704883597316898673017057255851757115289488063958003055069089731840505982511606167616473905866585767658496619003049598073092119591603656735508481863092145585664834625372608705848699923804079150253672275491129211063564405601541495397171772857853551041719027534265455853263623417059304232155847966340371159193140209349390029833435018207435510395878148377346491831562589869695956490552276549781206741120658120872133829571878203130076538705443234738739854568833905739183648895582760872863652191954156186604714960294929256471412844866627291996768828278865937232404073930325399005314213411740675886980936135866379327535841803702282334949649922794668188125559820716662712303268460066361663503410021424171775800065407018847676104276285858017227859973353964307956366612033872271806446248892827492730002458596994082817526666925190521980857136193810903815971759275708650701155022282350299063890107908221315270672412079366929201326056375298722262555116643716288685360028988538326899700076680204728635536146041929329764738988141541298866190130670134842710715120622144465548528075274452370228330745542058556896449699953116080496529304501215404672507290209760342795436581968435959554118597576745889244364609047183739913231957620373329999577500203552378615714115516398216183757505283369582681165408181937844246187591476980754767380169919125391766494747980845420113901036495794901157383001020502060728512536252606571101936447442434704936224649537335291647625396380816047176193744043557254060524420316388795587185028109418042007047406157354393443634507248336432183997481838960797772508350984075627240766938609374701682154330069841503280740070000985931621865801867967730486574529191455176250079735829835863672447561986136997632734970496749374100723083301513253871544808098891423756677151139034018279967284413665133126912446128106867305067435330849287907469761063220880405586057836859305609643828490590910574257758636337623076786095544071717167314083077841350961535239405280737026799635387919616120636535854461121843771840621123970286971283316272898091518097597526927329902425821731804725736707015191677027717674156704572532709008256173664125394906971420285267634550235073115067052439583209062920236967200897382263561446931439902814042187222626197640530800915273282437888660335025815341011339856282338619947293716039688814512916529832339045994935684164323609121857627857587407388513151185771712918226737527483384599801188513769158598439994057540920997951171837487883415128784113397699897488899186462622622107098036144614585552349447180895964386701080953406882609068451062886574963087305612728125508766053993416673979760601152206329855244520923935761922255655314196602864103908501844278604725426442979085591279959402143609662836763156606889822644390750716299234238565320055975241025317298644515979703846373631686886595505261729622061374286835966792473375309752236012240019892619737966494301531822937605697441015683718053574813907383312660649050785571517734937197826609454875922065940825160811546670072107061489382896068983765510324581180538397480237374443986316395863091857447939723961973675488383372222405757609527187113096247903268075481288210166560268866336291463779526985980516053002238260450461908345204584464433419942841154873583779402002720651815849570680604633699087246693281647317040662069498181036399978604790638838707781118866374351346766402183273490669331143313303017248954681729634950604063149669739469337543205160302954059265094307848418579513373137172558617735737331330636835546975342589532504204377837775625851855049113389669188035932677123070888096973399878202763756679817065373635524479243683531919050413334314779381898782945893512499487318806003913958999181933232006012319043652254842204201480997997043897310301509720299458558485360050556412182490507602997538942710724870698114851611562149164413748759999861955461510974594652553190496184008350117685527831297792417503091634040137183359179314369712212800238328137015468206536166519203177638800435309124864433279662584966000468942433380306581189261097787623637150365383240263066441135694219887135645500355131821667985032085503151938393644061021931158305408589285481104292300106808447441849527595774074408742796003277417253202755720951959713289617696064283685492184392524181006171648558935962069244771071813336017832210745507314382160830123144494472101472423102153525955113731139093897284538438541691410800275772339659301477283829055424284717697361189250185163914930920026712921650759557994363981008709575553515785593096158259645368786245070030380163953462994070935492056421925994767160501905692262535637128432830187508728519765391474159145682842692110783792361199879482691145995927894053848730949860304149167730852460530401330577926964810029726656760989481560188766161143717868310380476032476657892498833524189144608190956754647181981068411559822312678240882566849751824835546078387410831441608132061277081500936993188390221991643765601444462683055923400383406711747183980669791593465107128423567451627128027176888404830068707880698309353226680297889051711835063832560766719090269351063365141950551326929393126473724852452427326850681747222810943248223421087130672656953183863262052917275989605583052553063517652636781499387281005535450498363287476247505409007489115524752957272287993643960389160647048456884748123940249305571420981835710279080156992932490112287788380985676099298222610914462386970366768108167502980886808242578158670830219348668908812967906160180128444860016745809153538955788938922303664742264657086241392867806383815746479980923280384010469258451097396931085360754180854817536102700230009683779023816938352120086276438357604826554138285556436985584137705526596527321024463200159060099198636131953241843697259904615265062277256123695379271605820838176338509199724428309393227696335493475978274644841733362506517115585404378065924468098174588950383425092918857857021878086330922030613671633730691322028819702478797616434260606107982724085374947360618492971596198398294245073734330346852767456259461200405539091026208480485833697012616092664378485947371072853777504241770979454673457507284821146867002234224448464871479194756689954695783159160557559562389952710585143567874280861118015973112720390630576208145213432298840975961651105891683716451106837867015818782303694716820112520095462035498933250878611137682473168136808562768153094024032599542905694445768464605126583579292065428518256750687605068432487429101463270807029354693055965698010799490113843845345826604143654570813982559830758136332651234989077206527231433260207653407644381279264335270828531325068404535482036571577549349941950866976817054338921705091477364669221445569668209913601167260807048551369990213999201264169268891186901294635724154736794709707664988237589520513002139719569646466976946635124262335840357859515995236027438419435752087847276433619360745487526024719283471164816284616786412142943893844050317519699922320960966128919198948329281622225551079311910967889229649303756636249948779371763686161062512636733204091767604386466365260517438589222709664537932211773280886795373390129081635218601867900666263599094335629594263578253816149059208758911366576576395440868454733434409667647765759583905624440675946593678642921868444963609776130567053049315855208697136561861453625903667334328110566092392657862216598641579187084535047213822155068716174006264622445409257333280888653356230060443441753943891954120067364538504095870462373696296481330524300959236943515928497778644337643265450465564549599113825675135964810636402127069420569017485873463340045131242319728607874328501530493220875008485107844883152120877645895877031049312433202003135205848390419028271816570940069395874979434629804786528060515065067428585955908961602678155542223011382693085645077762036911032488183302992063134547723681165685726455198284585132531224766779378815000798191219269874214361637540766907573096859215554918541635949098980024344779018170337092043106416160019944588462639684546983371862547103422952912421634206971790616264098057551175503007745139081570883923954315579126600447139837990061002901550983159099910034319763926925204466277185651784670000958543586944251237998813257326146187113764540514066840541787462487063078335295502786551928605925867944071713110676588710539369226697508021868905786411703580714797700812755607094827697970346042443482127304744838265766554445415941440566591925460346593334033341509920337502888082865131243868377439767674948214726764984418461341742386071437429168624229733882220416850363821263872810747657120985110047053220162573319954655450258751767691372105039336862805538788089562585758257851700659657619192078922732275002304836839419884638516251249354359524791033771531969465914409880581678407094482458846518457806732760899327100309164245162905001407796340169948570607473311475272696710299791721620942243554997381851442087647532797227458669658512865345724392463401447745031726840358120680565341415185680676597472866483811626785448185591616699693167626194248155834941767540704066079067278208480291487936092480929159067678530537359572294413081115678747916891211561551642877771251865591336749963837300328648299764573124474360953781798038431596119187952414254085518426265096895019497455066127481392259585733939733735557443652955354976362978940411903858532159828649442142751479196244792329888169138679757910977167750230928130762496566430755880796605583292840839936391764029538018187228205094868629131967261690498845189024509966457845733012864383336743066963580852279842482849456354370658083353545605929486100316801435757637088942231916659039191374948842545338880780206032445229818616190731884229310326315182775914213757038008737421613125974125870314145299060973284925390918240084174528351862430944583963938683541432381081440925269875499911358026474577741838646915245040310305622711822698037883682301308913430960250281252069649966812470010535931341866560649919363527417806493480932976066173717876526822793904766196948360822035542511641395856296615530440894329833025304683704730517017360668442284458843893195818194381804930827590554517805707076249540623633382804439709476131336697208932089777402572746647993248049180414506252839168771826849887784546696102636195437847863064068387889597430294300708412948313038484498205748711757639706678430017589826225457700007615356915997591567679967711156328151268384268282298967192029583322525305881458561183933129972742057419485902394703455207961308618852606239276853910224970802445399202211583674632491398245253343571322594832088756626118376972232682146066499687270448153522375360043285525798198356653864332372911797819787349941128176106996694632315284707154155568591079806682833342715683221052168754715044012777107479815704547646705751706242103394118922922148424408188602246869981533047319436147370426809675369773257633044798057322383889770970023372836097735370237869500471268094565368507847263679357192776055544016705484787648612774616207262930820534730403831580150324102396512154559467817231271133412270016429355835506962232766049431917925631394641475373230107958134505762105726087944278649789174964764527907458458513383286762377239988027640874328684651405703937717526856138288486312375203721611866729353419763759533110962476201709513727043244644953899487811780619333634412532084049117143072927331899812168578885592511240514698403009554865971836828070388849748602826431836695521152805873335604199542478286529789659168503739996153237114235834685499366864156906108733523153859265833973447584846285352165123157219046489682431190706741034827603425977519921736426720616665845546706795997991546866261277607464055862377550750688459932482458903488648295226555424805204152661625719110349079308149841680187948091965391023891015157153136145721194194360921794931802270848770815323917154142815843021774362498413433284176571467627545810816165609392950310331279523201862079970543811344133544814868222409724583530681564750235261659480539778288903990054815015230728699842911620199693599266769740713736222052526757708987483913191839599216220591283572971209321444051384947461859121215340193821559511291446174556807088282722697801769910893985650170392053248435921174316299928472966113862455788026059688797232712658804545353892373231700666873354141532726621876269298793116335081978094843337734044348422459225573841056058029181254216879098817934037219852848298578845477868569358467173690849488806290820613328566575200237365833813792406350225562601744998946644688771211483786765923167511524410961103630878682485230748544337275347571541021913408863428536746978482647914001894458157004314801165949534850527738696309745830133895888582653428718150917406699657686917954747102609524822609216918122915020513638005575822177478719070765589321928177129515213810702785210130966963531526184045885804060557004556977725801463654181710532734069617297868794057134790482987736262877260803541417430393441536968296277232306849176230532147512329916035843960072795049439774725030757652020046048418201131401970343754848773712316068898770479601246485629022020742670028165948246080430697431918506263062231516398645406030971223284279995552723702778534438763437449916589539638948262975461412917177959227587522329334033100013731417630759737136908536917705542748890533349752665025759584990523329430393380165494693571427623264628666973948221662973275507927428684170988605368814429467055506460846745154499115000893654489106633369351782089505104366005884402538063821298926682154607132788188154597926150132954903126491085616892013455577466517623942952555119131580815129441148866454680065283004843096786376786938025045530693452598709143245821920741956114919364722259970144260062881636968455131909364241259914716292442549103223468862415302070919308023606804397017457293656967830606459468829442249499683449866767003306034497403380155784969909320797294684369035084700853042319174090270167295227041815090173394059221135768710788107025488088814269080839264974848816198183539924106951708753726117685098597416900283208257232358188925177301858313171382356253245323942678428647939228999668311184287351803051163799195991103615155087763881727503207701396699627079936366397569228561827838946361176644809196116910322483337981966325867695385712523177369081138509032820093897048516809550129616905317255116669108725518771281598364704671875015176370410519064045799903417829255898721030496381377017646278200418042120669130210040723853804478099696461780203646995235336580912128522261272711333782968287827839555064869931743118483357881763369155296722456128949251319434468995450819538553791592622839349004848847697799912334695526144868633952928610271542967409217182312538744652395984957617361701602308558489683196198786296895101676769017115178621130352032411108438615304848585122073944831898639114194281629454004778559121553639384213029465067833120161317769091632830307814984721686783585986665062523000544606752344927445001076185261646751372487941837077027440966265297697529403949979794071544467631975278901123111573172121038604372339423646752083254309667747463638968943605135035427861955164010876385915130169624822420893936090989182960382012593758131268223050656538665764634384554697493474467091405881779548454766745097073275030313670688836889926945217411965489024016767676844191537502674582479944843002048847863002135501010010635601707812862256004013923298991477607626886674126628502023136791986428269819809258181886336974105730252239540093346745693206135160426456269721541165851777825619313939707017596726899068814079988158141861028307506951003542647979015968240168830407132389104694743543821006727091689131388365970427872349385342046956943186862005745750279858184495399593065566237409999542513801022727184953708572539317158763553306909221087805402436243434053408368295688588961656083529856470750803054839762481398750999552703884214417909363992806211754983048275895376493800003238008355623715972318266456716132356120066480158944751355609330465786324474129333768153837050993982957587334254389749545457252321943044681638998753466109272126438394017373907097194453167436712480445464616866092773047879679506294695772041701862169095903774829684845142221246357848025789349782543665124942612415845192231176065747892770117678084683007559944647807438325325113674541058162928161184843458184140585144093808429018474439453792646256717022539426478477765544808159228931506853446413163776513504665939289719446281470963272103494577662013379316446259885770514483879721810901374852532123237678753665791919879932562084531904941566597512109281845953455036081159099904083595862181072343740708040810868856282423899246249994590287367539945403480190968477526394296185623591683927063461747244658339742081600097432818987957482915724717649903111215964155251845341294966992635809702113511372079294024610159569799290530204351360987814497460219650038943146092360038923086269665120468868117939975952226871959658018519498295220405988911020472207496191980444707504538425729999705310964650751343957637080510382301475676991084808975326702643497846667173988860173265640461293097894369785696088700462260000986948715912300275556142695437563567629018395143347148789066357788272063279879991103361915243550866239574280774867554963685455193249608063872747633590782813618606228997959864953436011792849163144897866954479392501091025254298006843616816550181575515226088413315376853023942133815137230944603668308297828425476298919499562017128611019977545139549902880231575481885497359480375974782877768179036910178967072397871481108068316280779744758310147795643916538701541943039763189620370943227428373077160584791929980312270684778104226525881654378375360446551156202263419006071691543138566787156929324827343909792964258882128348785984514576398944847492578607033428347874158918222783338254017828626906393240607315613839949406635683055412382733335421380974285545000225251717665040874050126268439522717852590111729284749761355408207028925956551611945278883645049876427239181374214906575329147785613712647713284857766257960281990193781755638247893812263291969552837765622566787128082991760230569256733098575762392102811621664624020080861547861374732842571256045027661290371531118984364643080880883050304444525125027322829509784538047526857479380689370809684638133734245388386021361673600515416605268082092882695545886072477572697586910895572348906633651898728469484322486053191629529520787197839044121437123386629319852239299367582294406061369339651820211136363852335069413298401966015808631032115968029029206562675483012085683755934249010929609060260903954739978796184752356623139375936971137450627055933814761956197947233957935931395953056227186250950926819466919795507788613528982853074102085757415057693613854917688297095478842291756812861114388669988494738591757571966149598248586779945632055448163027489610481913337637955811619408282056481759576213305367716165520362172063430905792980429318405235131394707428624383338019937205993585422841781968594473118121521675035685928831368858640821458285843090064568583389599602238317369414168116436144774044552946139177231277615880065302076293112322680962238390896681485782749388681881112136808763167366258620466184019162588627456955704737583021847321048674303207416727546012356522686610592826372178743407351945634221865866014692669305920708296509186803239142396476218848809886770053090201302209205769404093044400311456409894156361386564775009227064097797055529825786584831888695419167699667356649388312729625442461501090605842634238503421010414165528898380081304122510786822897253568805349458261001285931888150667926270120682138914131715906347858874384703252935132881071890322549364679104608912153209600119287478633181602449753163171297268712671808080470782129068797026442907379042619604753339166677358819347814481319063886745092626076699811282023133822396222231808953178172579030017336987884374891115310994501689881590796225414685048185423674032227419947747232865581712937725065297433536002338838354356338170445725574607393535719724405393144847854784578183750377301084979685144324078876187968422593845224674441549403685064298018185812599738357811323749900264561522595422605099564286011497355402033379221059071001390342253629866519167230302297560170485237138538324955324367036557111360987373444270453842605059960388271185040210515177665090030431299053741296672673069165576460307950711584583683289412805568052646322473330811450050476769145975632355925490238604148227712064241493089531491413627072362172525367379794585455663528468638790698384496774052185377188474213968309442952764976324360876806609984019150797153211852773654296042811131238384817587190194016458448076274039524732307281180216373290147923428930273403504064196297299899630801395923873471171702694902991058361574037224626344197503701751605678924677328956475466720568218869158511491206868441600925363246032479323760003102951209943909888109232943106087584883277164284856823078667771252660161889002737970951644510994905274608413071500542505181642503468699942868456620531928096821649716387786264780357571763279137802417340012631902863551446583823393007759388926507137074480511419821172440208520615532207223489013579584167496849892304675122750538735197778261531044934923000880105396717704189939264878397132789889407415076511476948049388414197511630157823048858332792087546082760509117731496756578216632626762641934025940853202186581795604493545959321511791295858058328563198699464265825922195360439750711435942463047781297876582879092351461008283101142960838879548704266620511324358302152288112627764507320752694223995281402115191185907735899597652429171955670085172125921559601563705708313618469098973218877163195786402900419209923274319435135576194634620572386628472423408599651494974519928079415901095169775849441960202667939963417689530151943212382845769616684160058656652545759296951494615734300228432884381515555825581987072216997707735132927830839277843580414138849037615732879331862733910999377009370516952125719816992118105606457958985486475141883310487106555869913193683725635070246930223776346244631997587275460762998927875178016205327721921542215099106185957890829273982429263581956739416665608172466304860022376348863551444661070109602097546255111300403498331510508181810443272897063307472447471621583746329813571921841661506169300487015052327563556852544233856403127419351909827081137825639765814393155877607775791688379173648597640768579645570837649332883783683166499129431045109029586920349228368744119728436741557900310238417038763017435220869368991403819464628664661230613841219592304921712988953805317746959435989217158066024918056897814914939640022816529346913289321082772177169015588901661194197312108660028195308186421887813736016346613422622065714109435169137670365393853791078040157586094611846805129905912346069528872160607596825641774228051005139809780687798400680097237181221855738225852713451060528193173474418425324992020036728489425061293570090847171269505459231213322094080406722665324897904785632163625329563554826402349355206772144054858902243182562972828950310781198868752401950771136471874039725776650652770105865035131160750946553334741438323137853821169988585272183959659205374339012222177618608587381023923174521137991204359178540378608328874196042845905835758567726640141955250670119439950855197674239513573227382152432601143181386314565253436724788950538951993418406621455127774677414779679049481777644743840909516161456979830599410463186600564423214994529180778029648900717537014375376394137366610633675325870007984444344456438481099354800100941963825743157604101681083611758665972546914197448749712578364383476616530385472928518158057126187927429163682720168935487538563145567666343318147787707021401997053882688473064341620253928494158172675352853339480866024743773157527677136168378056396424018434967778126507383609921730796067522493017858211800991787407938274928018906991183709160966391186208608821273671778615134116355004407661725894768881948930790805614169090526549052050857633795464993465396388409945235508859894205970921914296266508640259955029502375926923482675554793520242465011111881205520059967715721585131209521723815192449950901812558166405165683937662272397815024713099077798416540426443087097372377484395025745904176448377168449545705661867213981040749081381993673940775789106338172962551693100522272532489428463124259210581988245537915444038230632092931033766447471384010550973891412009668431156184792585470142679891247582898184710603307559988995270237704581956262321213353515188352140061957841657959315815660597587666472456833524422910948330501821916396355188717583361055439712504979769013826714982795158487441863959701717055494119060665747246983003963064384218673647079726759483677102372030209915549081211620815437067312708490756389879012071347701792854405236739069944104593274432032396510036650496794676635678394231977499712406110035889933409058504988946788474106425923830594465858935356413260918037647474339143061580356491341015412726872634251164991147765043242952932589797471294472662614190130660178015595593012835493871662567989742242200660674650661396607870800114670564684265782401994200223186289257870379314611690630116270808438974608914252570846021453651851250429809811002793762875957533381365928118045732138150128398146813351492686582131312859766420467311135213392881817002546172477081755711562378201370859694521910250491048700033021444586784294941635563877653890807985074103651218680993832021667901753398422416267015176120207836868880160739403207377820053574727797975138770927654626275040670990792663504715595469495240369811401520268682401539046876479877113035328109968575758177231258448116071258675851009353021096452812982266929327555980135612108088327072597532259886152801938710078665347870448348767574013548116920303323442374416547003534944622814028588149985235194221287298378093686652390952100849230287640640683480778169637782138354696474810820981068909604576283812628991296151212167218964097208846696599077562555800079688802422765118566539091793865695194698087889517030397930119517338284030786761435095612763042002393647835693303032244502895653115082371735002611872467986718179996983269966408315791394006207288313589908845878285101642676264167226429365506428822557320637701446198176733209972858900166542530773249615628721803513362348234888737955307231773432572595452598308342087969351913959533494108039473179503340253393453655083297928191159262715194084328320183887620190530073169332329009639923812898041854687139681986740989049144127176256778893289283953863304377585441325984584373943722356896976173607174532006258970402592145963849272589603748377829664681515696197639325319083187984180803359336733966206999959703442952847523093499903772997498895693778925971578680035521843083339269994791254556012319258991785369011077628104184455167693029529242098119251794736698829155534255218297189264558127309505319128808133155664564606277208498516772709149836192208930687659523149668871861961715878293568424449789186840896013138386410872394863929008719967400130519805648305166473144958365828297035607932306265291096783259761799766779058597900750478249119361401124045861524233114801867392373811952619088960341255837002787763435619219023756646526450616727694679390255101418299971125176907262758718708065000021939458260748121362662308606044777594976349183819024774836447930325122980186537693441223115853457193538904293241968486076359358113221585396110901906513217762443015797787593707942060659096059230811953962114241312344847265282545328990031894584202664732251512410263789392835283978858870073902383332999563591439826368573370441128274094455344601799144470435735277667631272229139833167379353175487718341109835336250181039507917473346134658800260012505447382327804002317286240302475820400596605040067019000022534094955980564140293629664249253578615855478845906523934342562359886375579152573434846085992858378046003711117374336614809770523792309428482776224353402924357373256019300174634778835990478951255915382148726622144079157411272228673799630391739302124418835417859960427103484861771989461144663712344005320516254122331497131203166847190565900077648333526383424412961041556744618250893796020144127310681334119963475620458297915810345464390102285518816535566279944625553747162092232753757465588762921775740543418820543119548817914932734968082313450962093859391531629418400895241770335652343788528842754427599794340047626987773804573537509633203480216876129175762735942297721244023392289173905976465382559323685248422688181672643356478678481258661552646918043971492290449587519409977931001437968878283684088645166339813250396108205637199562988407548537807118981572304709527333211720922635830188418513079991070180568035441280660710382633414461059436615790522590031249204207746023944292198021640304670371406660412190854121284535922660227370820627030003368028583005602955739637327991609913453059487925138319919141990586025073962312226178968403676258541717774397515253598216540799876563497873753544613144696696712175324700880143316866801417906343035453352754827966090655651906012480241793921919702996267415722449295217172039770762235095565914920213448932439325508560259375795872595659437521765578647324346040593010896449801373751618947474394196634360854413357584079515468714538167255844186228126909692649293445487300041331382842479888324245107891461442662339954838219416069223362707227442130805862927461022944583851820418573005723908033651665835091691874259912699184029203321799062677387501123769402597606873315137501038853142039383427308809741422551004286619379616964331709053522594870468534178278791958270936570117565586473137136440421833484538835518111817211957365639220905444678379271577837813138608801822634728243344879439577063850581895929472756679825564016627127071455088820998643167211422015842405246172655131434382159607666239612446201831732680943153886121111616831139358884956768548064506340002182923569255314140746994824551759174645403137551108637415468128222238128798742123289080796242911631176594016069950341161287650179078100284440489665645112492769931160545408952781153094894765702379525691863343307761997318232045391227735936557554034817934963217359822342911432770963575510611973350967384400198525698085031936521168762342458305898971156310461615328645269257171893473008555928953274187957281750138727780683191755889773311734291493916235914709182780375238964532584555049831879669311616477048175261965938723365872054885381719159416985927241428075236654236326381062396267559825948626848990540476789740837473326675760102807893630758534059264356426548828623918541143807988069625701854035648256658453353955914012237798658061997395650671749155544296108498969113456469686703502170798526414011295657976998661716266759963467977483520022161694604676196716476724963696872530731297077571419251383026720430588945560990486164078372639426762841265912702269277249371761788880003956130850099843391911095306305478641946644792838849101635379134825015696918354665889162374021045367275181974859206460209516172983714263791817109119473403341874526604481232724889227468299521755294504948074321095196380178894053840895271305526253320173254687929135382420256087290886683413744725890800918997780473492570296347445842574649789785134213611348499518135148146710604948185356063755887255668626155002739402556687302082424447667295707487063037320923082271672477070437811873062679664668333126873444974058626626972040582136464383279842529544308902638903212563797532263203081747553410799556463935841104331044036121063962188380158415249765412097046847778100649936828568226957369193598465250660957115548324314210551873940416199233058068803220416639038461737043005146203508688006509832630516172283615828497833000001535134126379414151734090897653481048131179901935285308069408425838745836938480549168573003179876728068449462775794807881373349326221762242750845862471818845222380671816298640172001160483714266603170700823699883502742149124446025944043591426071053153202166731249607404886117963028492259227272717390024362390464186573892877576603367300778993860713487126622823769838981114218793217693522462946760814295029978525218431035918925642995472421785694431753988404865986251949024227181525270074115046792805320522541109131549959896088033578441875030577184205159776330321831215718729187406694645519524298362364704682680950329166752163586033403000158924637940442392788789614488867419843967602801283788567062680998146150601960277659492326656565748944745128431504370743859255314618110517735967043345249352539873472869286838202093339381223878474574413781596613944902059201733687243853470116879348617857679507826634831284387518865715777967810728515208431887298361459285563445414046260513195967077722059122522704457491058395562936262858916323293231091428366451129256266805520388122943021901160229753963615454346847368036942582133403601631441104617727282542289494527106643310317941456484017709381420410921230661221688683910838147026211982978515344505440735157886211771389339486348379462612964696356113462498898659150484124624023431320283969879676782680296738420648236000149003723833680811595689496927027992387751925834674778234089640461599550290747047768855595604381493474962676272434017206387300303283313949050035312385079172165431020407250032725357625810683950405081121676771854662182622943488221532385444934758778976029494167888907318480676429814988134933537527151930950573260567636668702342901299946908870113562124999267368788307428944124394026546661107663449315026831602783566180304398980716584431022079595021079417396969632527636941788435457188074878388484089125420091121187990317250835049134232000272511511534339880871054661822607990047157807572519355325826979616742719161985400423151045184761130584156287285033332821722851061283889267786852972777594245302481457778622373779877347931179180779452756980402788559539816536238714943544244139918604750712370210083526824320700173750340706477161034068645964457025493238866857415127514907663900328036371425901359098227786598222229515314731681054618578972571061897681265414465747480816699312964687544923827922358952104027121313997853417709412124547066049813971344463274202730937200448421975243204975281389641907717628067841593361502672203562475724688173978580669326598239875541773766795064980007973876042925414053682616837503771828283634315554791867846660323231227570371953604483198624482255434725853202229658854059290731205385398947522746162309696061760947419813009274292878380572074594196180129689111549442185669167591331256988112173607423026486130226925617090401966919212196228995749898132818406742268062246544173862434281961643070572345769144171794915004463122588892906230360641574491698921228559822993833255688561850855013084820246825407113439048036454556695771952201866711195184279211395798986395122354816230372397980447723341773189499308109890621158232907213519537367238831392728323705779628941397457858595755983864866304587985806647383635209994072135019483094414261793559282657611288440209892491762866502751453644317325648019616999485469197699026047156053140701630867664884939924902553829346024771937068654204458152912310997797147853259040325426364340265775319839399546546176993870258704580699807561957210380694424023394309944689784489800283228127561626971266490653036287468204001663931040545492721974165801593283375417693780366226800836741517271846640957088982212552160047376754550011886446025064057826715045903869178091753760596141426751390737570803162026108994310816257159260471660131131954973947494587717151790587714195167979053554634212920272461572165766496382070725751393112280029980499199400353480994202012231051734483654192908816422652863632785158364242372832829509794869628802644171721310727727835717691569382884935149078153644889247513727504853573921752749192745503203706789810675095344213657937886518724823866030116427245050551566456818727882207927488090923157826235981977528642856146830546201969990707042139625269436884575499581968856975204302350206528212866264833212561316584900193363035535359048536609463760482065239174817181082659476506028589536062647648019360526010605279499863702452128687130786737744325976088753590313738898570915090572012950084004083798337987087302062190677858272885826777715925293834722787252799948055568854275626850169153944863433804645669654864907225725194191692748760801269769556531778523332415290513700797392921436851027796563325351242702645637339467186768785954468219876279945010574755673421779103444852478903790173237815632347018320933557804649718847048520167053380380119553824820835610867968594209074502609643262028158212880594268571902679057876631801690934128508818321815792517254207046911950845701618748062208421259546409933566330306712713403553089971829023959631945981354951501040700082757002469312398915734514941997978332514368549916519609621040841590123406077461084619305952620623914979717960807121087589987766574948647360386009838175283571788204535233793637159632235425008714271003778645816425428710962185738974111565185558555111893709391940128132640367459931177340965486027378523411679460870716971541369451895560510231153567659857400093090657507926388690986142662004513746859648957136746368427834729976235487722542121994735124444530783961361320716670047098079810767462904405480954245152670931296245142281981371708956294372229265477483437428761870661899052172413437840524549346597352949911096988584318029937773572829028048243281225950966376923361452397407672480781843592938591966881293228429624881160147384506321286979635849755874970201601877694159231940285610028607617036488850597203679260822397154661206007401872306419396777061467874332554122034054769028431889451399145495756440574535478284727125202019840739109627117106628244159103059362553281587749462234821505512015245808966687769627775375410821353658994517841651053359118786791844271553693737871319015718568610214731329815223637275555868195127837036332460497856514064585360550330997552046285919892398931227065927345929054308433515889813425729027815290222150367996327312514484238999883609465901765130212656412615293237770379430483144236253357800446716272449281488050078682731829254897509342157563279806076532152833487653123194294491952351112790108770095785317430566424968216651735770338000918001069951007636983483503290536272506005286657868328390214540898023878083092478929949962642583621450246352001037648068293008838724159828455884999604522043366668866657886460589798505805464276209082783017744050959456372177901230549002522021044043651315778706432852883423553121546286778722934899230620253054096501306579267929342292503649685546027714618916580248206085768144716133590104174230431551491289734017204772517081353508863632226124101449516906292760531327535037438177837630782210915619077433403231183036302836849955168944108903525254323118099073462542523361584478943773025023406384698921299680683466367873193744828585505803191968806608470167429790751718104238842477252653255381210561394174618211806987277763293314066306500514563778664804819376517320352588744095680640604641360929753113222488094011432387769943809937647625758376583558422169051327195877302950702631992840157696248396109865890250335584879725184484104490087587666647284272871934996202595604195863880655612138728073015471696102104999258524346641257145679213204636940561783936776329576874145987386024936170005977996623544821428301371807503363907553364166516634306034279417966630915008860092842629174355235892470525361653019431221640736990887416817155866309534270939846913224226582707330785787489601294564315460855534606881104844075337990210331972237959518423131295793501493356056082355559114266803821096184244285092668306803314787426603793654331454965897919706804730213476003957502566149700709613783467545663765728111699483257417714689463370172164333190966468833943856546817290711469435241616887787803129565735617838526821668297571448629937486786474584464314780972476034644332477384042489272712086876986932832153468980406468652945227587869572048361453489993809819268275791405978302609401387321968731976612788029233702576775490072866915162040841033099066084936225521032680487045320716613137976781181166857678972795134553523848583236336522351153776662149097035487119711271940990132046714232998364071627354466301796745937039415140919060678041241375302490637424844200427691802223814384939389327952972576909729079722990737809955650903945813603555105157324255588023305685117254843894506993001151331359320312169674865603820483263378671453278938775112085501194318165205093817148849065009541287883483739728330561947419821149039711027495446566171028847656157992506954592765051494819062211282774835995377808771861966604025808985114732056590301205602744363220666153728314094154513023093603559557900995827465998252316146587286432991350813955874579085586643898010457947558696404842947976062786737573253088621461522921249097016685279894307010340220842562798586396160155967431028127907002866499399055540270733508913440178523865713602079923344325488209822009406881079839595477224593360298517595696213437172326201199483604744835428718586359832989156346646774422327465521842667300807234123187277947028693421115676190520559191753485926647596657147896738613798651529683323717207919858631051018836426987150918331262565474067335845284611360894277416683854746836899275118687937499253801701112796799574100417699313094842547329049994165088719472132250753033951946087131536545151191453376298703697720932518033428585250352875170955895360764046310142340481884987917280820014272334647291261440915618730097216600300469744069830850466313724491519238852638659562779245053166449929845353601900198478376127665977240227105807258013909163214860673957103631173597958769221935157167412358494730487187517661821381775453500796969735460490075740903255777160142420606869478942276747806265736059525644765172697013340682081452790844372110091812793577709282269389467991135459106720381851768275460173116197455735615094207937871238753047431530248842811516830678899296260096705408483278411730395653766062450784224850042748243009590337514292343534900567968093287078556260649852691611677152851207950332326169930982740221347323122549638014520682058133736837330144363705940141126509896359416208802943375633245324090000993395673728513347907514113033534489991131115192760802914153984996672977908304998190647093207333713278159163423630218833085632714410307388486779113017079808460528145410775490030301450582812810241529999393793130690684122234379808582623111037287052086242568835965619662981723734479813306102758103536118626247277123512998420962852404110177595493182489231668879631774329653792692960676034700489147966976046833058421997583957920198553459508555716288594764677768663029843533244455638074240163688671122138759974869032243256849806577490714193666552808088857797108308689274356921362599399379783984422765460944053575285432031312166906687014230691962304795373253542473935557976057538215164108229801562802578963054131352013315085382391670800144001550548395886303206317568854695070810563342335685625480522773439719156510100643838706611131621652462092211458694238204557992413380820666990624685256527159091273059083395556374436217475363070776451078910487284803052437373492684086755865649787660363495026928835401013040875587320103558207725375731481867944852310728967461601522253735961581117737695319125727249852489550108969603027964507853482036234095104248979483483276580021767290805967342752037710271519644234621169586688486173572013918312484294670789202240429148085415204548311096555782453479665059550931493183271826760692447890138249901130594157758251130983796124808949978531730503531382234587415195451354154735862730306302670122913586284306852508630385105650551581920928322856248028605584588487218376262376692425903369451958958297154158451658623949051118788264795367777696929181385561896836890254610696251116828968492418484380184216585650725678195445407398309734170169799262742328860980310061376983583993111556758913871870026308808367447622681869657248805486454362802044950420506155946812472964769895801015451528479176216968966270793645556433593637849016314699918246145549331348292022364109394524625062306823780121537227163402388022227540815992393507899660704889794685520772056745937157321165544135770038039960611705285498716527391058271791015535906280036243125387354276164084411879056083485757752071499101383044937222504558410157417754215691669474815498179691135679591110477189598470500356811344840438483988293866782953797110091640799697283578872241880799504445869196054059160764181091281170065249095179284275762025268951008246168975356901395196709993711693935501276057174748515488365761447327815841807704185125619735710770312662601712031942363986607255430985216369573484279891303043863810144453070186407042923254659411248116498823645715910832967682076512201097777600468088340968401864839255572121844515423728168407318491286977533249473598691498114547023304984467164429756439794204504982517154298943582995682280451845264509152450524430117092671880290543620336406384314158451913221921721521741251623653823521869157303380544071307192566127459979007806958530872157374072473409855969000109551544847199640210810536314053133208828939061382756591461553705245289886922943711432877109043081344735347528884396688655326428332819277960281926338063664116663775313948267705600077456207118105581340388775149446345090343278664156217651123824286564206141120419812218921461641692665095620810793300221539221927340962391210033423658826119503359628695171290791827349092974910334353672948507557422528729555702530458310927140961017316713041345914062783727891649324871465134242087789534636412562477082654442217821416928952531245755650861677899182589753905794976312926012960861740490943443199756330960047026880355703988355065334598622579056004915549772306980449647718567494063824831533339607539605786226080798823309000999449565595287785107695403954764448806413736233953381748653301772494612160235949817146262919078383103431715977037328002053944621901489553705199756376679691898996704734678032042582105183581968272291946555032316133400471510128721645012519394334833945670005176221203686898191803944847135340254105867955024362156574584608662957399144768260900041306874564333711645648079418157757273256845840593036464397402363830681577466850970223015355619581861263529907886504523805509236045882084256313456192927859769229547810146701246170275809203180355062449960211042900527929283592652382971376642421326432265067482917911161427107881678704290590999776454418047249356130839230483976253064351433004309582184010785297400267610844333271017033601739618250664037771034506307997134542791498259563455873046405664760410003224803246283988674092062113103220102265944278117280603808340967680328595200481908879626196511347560370459599573164406224980172684553876845376662081845603631911138881888093889768445567143553244748292443874938073434162229725063922959629938018238451053625051269541667617418928670749532112890012473747531524885602848539554982639194351782713184975962421023213674547255846653001766264056955602136898725503601992961417599483916744552047558939793051568737166390914350579124361957040061857507166151754506507163484997157746314623168352735241047872510439195700391717838163380564863861587567183012062402933208279028640462587650057640346426747440909584054811582362604426467681204717685292609577477577716040449955706597547361782694023066983737781732003238462788369739703870968295061774136428493932156458623072357528932205794480746524538739572603058114182900482320236223561838877918789753266966123312421960400604843600748222854470750380244668825780318906479928630154865950408038091833632825057937540443281999011858221397560235924616367919450629931865289867405825534273540707853402452512725735878600403863063032829377597574380516418932994629238254570279354795502629593787623347861189337002965450666157055329944879144992023524688284895383100448312225828868996074348200391700340079575480018474483062216455345888349364381354184837783647577640892573919153068673920572316364948222520862536178266119892560087583702547877837023980244116854688259710496801440580272929036690028143452324089243115668797326220195717731174034264119602386180965189717138873985262277997679246840616389799919695605431729796295504373574905857475640687874575706007999775999691979790167253588488726895608307015020681874284773764123974482389981993828963407114288272046564308827509420710113420728009669897196409796863320255673788803748542261398035736446381195312096909967165875393757703122327210931288617430675465513373791627483563943597637146049991607339930890168430388645003532619166338431272262252095375532900285911635142282939695271436913273265750546024716637866240699528422991254967990374054206060005919385040090483558006677762150042124429481141799679434378057539791830478482671501678151386633601857869298356052293196488698391375621243723645100452031930809509347926759061794791916363189537968018011512043067310910004479534332739515342078221963527768228239781002808062616584064311817373214010802089389615535329525316867138090078916323884262125143062792411845392521222472399290085878645901908343919305406415331771393573633235476122961983269121402431640971319025103536599589242338998554362462616266167612948732062840116540209928542370757183440507741339936343856911098567622285719469923697630397839600046451911166432276297793473773810108693845573745120674735130265217039056440858757061016884577185097996533761035718500633139215384136042542852994516897123622093625837595110442886619379419491904965463415322222112980747881021300046160574262522679049389111768217044923500520809275078612617721685473625809519184773247858310224781328350527957813732146336797291353878263951420755914207608776203910807753704753006871101256656290030935000298739039618527138965476336970155531270012884923387475656324373915728238495191228393192632518749569744904409493998067365704803213085345326574658200977908417164716339618628336467560058087154970895433349473657928284605755598868061838819610856880375058609785730286229735460367488456174000707722426336448888516052353986706869903909646798131726765506363653185005975473910160326133282549485826754952488057731463236269838159306730435135283178622895394586406388339787693353366024192080046429416418468154162871925820991734495638240374588170453919679044722864797368551943129112195172157709758611930552712368197089145057869188782771081963255901489416275642040159286245850400664160993026705593209184941388237306837582017493217401929486098234857454356558824892992021556693000889301235705866428228603588792352913073229567320698946104835979636444792898117507204729950872372609272841001446445738026963534707374068943357181787800401184260517718221960733286866613293666453355016490949822615061692797828606004830173621886720667217313584279161293963805453508443421539951322315375184373651303485385250434249109107638187892959818670439122114693220030273340721913156944086306738740908517992460240279559393775035162752077880888726093154571896728133256967116730131424490055861550053888900324505024990209477642047816908283467881632120618615025769501502170308842299257353552899910134541388473519015941374002279476071084141426496639909714522745989836581677813224335302952375301220155501541030146805672944371686923964742328592175444024785493126348463894333234046304119471237482733393377091730783152506174449551672750784739744821347285118213314108812147714213247801057721318712466428218654222116574514963450379584172927944654511626276123860261735746711364334100562930299303237577183002939393131936288469197120240552801387839752155419896978173243340021305267382705170223371669102855478674609754175841493261375643400076694182258540050258891468417757055689865270903602182193799541036244195914508108128091017164580124596554250723779964797399120463100484106378168405749545537514350009370068780524532522511364266541076898946443333026965917293030004887819626917571517278062571452045550277290681946676753742400808821588688566950484200767090283268416641442951247703349146659388023697019326697253094512278582904882646904198827736018334199585302333291577169797280052389685221276168200799063809580142959038605031405707821750956272205168222690820491598781650903356684970170689614873064370213611616470344730279000860568117176649283876024304748613306286788289971095837255638470486932147014683203521616869493527430289182161935474993628611583493013430581777471716296130505207669872667694239158234286460675994200473463173780525482512907295504755910672018190717497342612019752266632687794030952266405133660962814146468101519786635835082403862118313860213027998430837181486179063757572141542833533463128332504835876544892791780509887138771630441915663487334535388972041069955643119372838631459625095329318406279325642064764063014965605177052100023111104439691600973122299457681433629213155488003365483870146220574854539696727378557957314092210365897113996133216496277028644564787755542349719685390000918000102224816361075577215748841727155406842400017726182825341298655231515850278025378194911152664230796440755815391185199259785569745002024183886183546946359807792297946553453319387922713960875864993981986937041822847917188358601749931571148502480916269383722765422151502902078710995218429258826671073967035454160109750375282547704272635526712752454104822513936504860315877425888298682176391022749340360576528331105669179362285780188564002648661707210879086227415058455833995830172069525238690096648667911683601673175760914780719211864052868042512329922028759479608719640205987531106089623199734548308809683395342157454925977284696023823736491824256206485059808033641245719630073521765528359145470828032822717429532433763328762568644759024244170520491239363461031733002545935447701531234951312248909692437995983345537879769618659139136262249416303751533916913390517164202786904974932963975131506955978661189527860443449849825096246929280393646439111011280574186584251476687046549554683382374059547074362559654789533948304470328148302593744866833928984100408955090351694456401272715405491157292516980363179728860563470435185776964891607760321776402721209373218225473248044666866576611464450040883417947382674514133949609223929698813314197197544765893545960021140874383454905849521186274427991254672785299921670041587879889428122822404460434224392105313421791489824578170972149209938312002292034302985122824928204375115371783362328583014100256597049367102527354366449545449458028571306055009753714098351931116886137922726004699314562093466323964667802966006936665452240284503138727576463512043413853461997901748445485179814722337843634228513185756607316761977251844765275573372671748262380502797304059912035421346213303194373425848108236331874697902690919302226655959631052967384507626346680519396554798806551044705551773713633355751817761473827787924217041525993407675472707013442877925042671069250463151405447054305580840386324930538721966478366906345860772302638062669833076875336521555012285940555935425544077936269238826904539430252781041687136463326150794037778015890254596244456428901215559740751484460439004152154139754146480925072878317023881113110254587082059444068879465458526667661607011473830942202581660764520546401382317088582894221783226639984907332953369608478148863360898409038399576705894990415028829437878918911236550764660094977179853479836658747705042234185739090003452038742723139746198746665326772858699779483330394665030113156285825865789385835760529524026434551896737434663102888042991479273689824895921246672582978932460015283219060701287371895750433515208920967852440251585171155260968180647449691188402414760987979423836144047861748859837031398497942513594141542355327114520476827565962430192037246801799378346569625763149659168950983703329528098611527790227761114361018142552883590200484805279072329434715866485562340466134051833212836169683076535852949200728714303985552826934557228997589907353957419751557536708039520174923549689781333145694775067036086139667595499885827462095757463181981608043344193487731166308946671452565967447763262413383167246529388102606372034358328129035419694168782117947995469581022732729347223841607502478921567602282837307798158890554980368628843988255711628511438804039624371323586436654642543261778928034988826363519368505656836677491257194776785010545964478733677369331885541493409779545111612947506700344111597762151421902112809010872230405918879977435523316786829234441213486810539235104548252386632848111935584433370634392618980797426649741755044604113696121784984775928060666014462772565615905831580895997083882500445742614784273437131470040782914720424475130800116938789848338229854513835556157135276282804900163992230436103310777339334938463406511236080744480539136197482762569764403417114571025116850812861164362013194636276979176635313253712848329053777555367658804721694714529644527371997838927184175004806296408794157574064893634926856553430948055573718166193678593637037351327571121134814615917870414623096811720328259167266276706503994603654436556878448719000858777465236406071876821604775523488221533834258522722002203649852733309014711962002261212136694206436840241134000569746960213116837147352144036739270253502780044145287260364452330081148437295386690509498471640283975270967715465880021718755198730630535848856639280957226877641963509930230843417262783426423017371934363629313743322968190094578053554604408353759077028323281465841068851476224702417336387578487647060160545699765677046657679428279333351237626912274185714715776080442534065854314283529549555862851415740490028061941405139849485761275796055031809619206029756515587592232501534128725585670377942804872157047949396400489358830207870750508138315499232775134445023544690109442484361677138077723195949750833404654566034885662906358526188382119952384513959236516548799936348254750823543946409838766875581950078882592009075616336504825282637651728140997719766647629297133482042749067583315823239347380244588636559769811247822826979059101607823961047401013751435775706273528567119305865160143176147386545975712250515779032997686094295041145333051181246987897616468123809808349777120967285720606490713568915725413239404235047690814087736447286846386578333309509502560853988661399262066886126485762812744973799667801094730991251913435960069249845857008189167160374359871614473912514932840679874450730018284002007815265260113187472042542698948548456389644544329317825567020094221522054003348956233863221698936733002666821436373110994039065038736089599973427321300564720181438661472198357127957799345400807347003485796197045992609599516520741001924577503343968254408843351398219920164115194637676454333903002262372327736010322831258970238529548708170963639237857945151997327278370522291744002330729022780912535413188740329950052457964131776356631799856832573710895169432187700807921238200171737551577730758340363222296454975224603595793161094871838630922814272906714932534799838693800580863795728904308594323546066802071744993087540768403372264054430997052116604679453287528380880972404789986611678427017606140116092749959582958778520256464495283837111220928340480554746289282654485219765864687663280012251426161186562845994736517724533110745589127954143864957909153232978265960609834820890085867991910855748282998746330426311743817235803233662920106018895063970189810997510738717145282380895677873935694680821090009102526020830350224559823340974038250734970629872498207687002359816503296009705930497936813570422564667368072574195916418000059774051683427058858086176599271002470801861487169954088545343864111366253811125209064171202152663310813984744211676491458615463778477237963915151874929476679228307638747695923087279415948922821069598853177128095966271993270836733500971271596177924139680212750146165714559672965654585211536093926487053253031606424565232616734674305216918517317516576532289551765689650075349785578167673118618278107237049037446711593874124956192025038979263835226611493524383632837858720962825192083594828848116101050999697193691242235309191467512585162930278748015128251886829856850678898416644506507212811214777721661927046203766972499644664381351497956260043474470558547343427120959595348518004458234105325936827504005860011710064437413647534225020344812033066634378843720569772342674592792887035263306812716276995591507472436368427311673221977981576768370774482451250699986180953688000015511750868621405181660538549793517794406502422571395769037197756157903316180196899767606276170500234586685853230328882103205668748633264481518914812477040147950242264090493571241509815833800305701810211181761986307663483730118133080812274623703362663969771309543827288486211428228592133565607467348297785658153201685311354233285325555164261594321555843198377738479437539481195631597145462336896863628578724183026610164660451745033758287624691939267522153511576617784259025625911784585254029561360122789553622238636026764499855306920792046557953168919410370295159403190498648400195474317631957237507245005484124228224833423420740856651355032224833294755974488791680387464390888442440737105238695340923128233822242049022877309670596324722258627951864436375470254991459675877961957775827632672040444550296457949986118678919792815566003768510877524060961630531282462352381335007949853716498986641068020424882912037760628751940556581641140281835108082016659920678160926508581449262824040389308576219055460617263417712577417113831074634195623447327750347488881511993944172930388356729248375067095401491452963316706312126551473165569873785223076208375309470225012820057233587173933374585481301231078728305009272047094814953296562367565862119171265451337145503028621500896583344116910111052559027016751023169372815158111197510940695797159247753134770276260779801887595201783914617017654455193708113312503631011547750405528219281611824018589151168654497504493117023526309900629001371681642442567426672765904899192590188078872146273839310225732368226771200456923203988614582686083576544411722492225662876981465911273321034204092967828251438750250144685573742117115918771716268246140578706599497836401025226241701708485602434951474477160012955204038099458224687612145469063520159448549952323032402830494592306424234439410110482109128648834554208850856965209311269546029128584373937396678758717727343796240747297724546673655568479144064673323554179457925864732639841841072494699800082636262999204578971408630347124676773549514001039146293844944155957542038716275420781465430897250022846385892983460090435263218395030007785105922449766804118955652304221801555969262051862105004071108252460485743856299890539231530422215232489837297052912111650941014644945603848600359844550246539249169451868018825135570569372730328697682841396329787805444450432439882669830118089349755668756325737416223277881309851028301317825847411319038186589481774218535708202311651425167198594592781209767119979377357682745851754566325900754890019668840379152662225340716698322280084424005426065898785255538484444160360248117918937132487478091083796988644780119226890050293465547251358566199200745412120737719425720803524324661067546870741200987067179814355230989301590278844867641650846344755939899048434179260511327805965919264589788690090009846586747809835152740060884122408173241018070218090491026566269756464023650844561134474672799467153445661364915336966201238025866374327402761354859686783983218390238500198724001421078195018288008323013942151369162301500191759970186670709055235329694009255006055316196810485481925047307524049848104180052728987691124047553714277006938549633408131575662260263180236767531107545229338887334960352091048316276518707067288724856229267132670060688323338693371542265896209608979179579337388864203497968418661346978767063391854685722695523120530901694270558434727078089860169941999635553719997051696699880109550440434182399611590538687501954669623561719328526529029400133952230487751997391965824592613549534358130152522795455870371219986176891264649284072282046500939485579439116260759901196897770856353314283368621533054302387721888836615959053504434891627686757366127179746335622232038397067293466063506553634868209839370232887470493551094543090823094300477207922539997057308473815880675949508706521834159302087887219170793105254922890484093415129127354338472141846358323044985802015108115566125540102947056569255698844937683330638691879820587407634053016823069914707946988462633917316144711408691668608098069550527595963419974549453559380444370091372218957136070711550526419409008920107023893262753197289886064074329901607964260656770227791120739845732305117128056733053836215602311623193506737515080076767818288925809897081504162798191485188308712406610999512568390663118948315509129563131654875537451926369415057634079353433120955729784345484877220288546537241354108101967476261556449827890861523384087409578744470420311750962346191234092848559725594221114039075378468418353111529524097887499999564172854626754058139808573238508145545428152755475948418617093813681402837318499576764579851997400672370952941467080019330872804722124802998467760858397287545108658235078292650026071814536610368699054929757147908962398727831095527654127228298508399967789104818781236929709898397262834952840543728517676194415562916416986371367610377554074111108327069820932619639577737241197440836461359017644135461988995761735882485453816393760958705293177691846061419134334544580650474091474365775888685002467683616672712018387189232532810172516433550110632376122265386412080343286080584581414134180918708001561000302687343308135599149206667531151461792266951095729843157423231274669330415343223701076926411275072670973796312272908373240364069910923493064444179374202828770663222907711996576884437270748808333429532443167550861544674880004707833528290726671308322783988263803513040577961286795238027734938460291311466119719571201701126493621496627156538011921833313733499297053866301665536848793179733387859422353671673851158331685850782291271360804929211236861979194455775020677199385761236069890722014153212309748148923104318598704101078741185561336638070614668829981593705431554776048487054503483130088477772681416504614484766311054056735847728762312345841974020579646883921360398091809622970762770568855250735160770797793743344202748932726088943072664322757461812619150195036775051092273809391135348901868052847378708483047489203974414680587327265414577990770429758133580540199442157403166475471744486259928667300266017207002679610990067344494504069291852934374273882043171226292297470368998280443024891993016171017652387314340903815389535736625600117984742265918648295373331522827465363746503347163171681743308628418450324120385490800627579840108410852128328431235185166685465702541346085970020727779215085587273695331701963738979322203432622419470924889300103052667374926567021440138556076179052489322443201915262267994828187459773227976929661461268028885604098833326632823242115721523940714399167415258188510655966913168986375582008865104523774793395153128191058974104531606473031326164217194289315783083124465657134556379096361696209858340871388752108359921213115872298763164400133946187990800806483169991760021222738297063463539120196306681616595282237144279874003429178065679031263447016950259658924048981232452796548960308332078806370243099721928349265204253653100676773103671874489276835671927370879646518184400218830849547194744293246121029193592867021037297197468797895786112469831709639851463798975483757188095083902048112728848042676395066553103444806084636052421317214113025665509794686460071861426542948218544846503425465627570337909280439771233783374372417036775446561119694589071471735257435033994304941029464659281152012863794290727257853288653555258068640450323314570573636583575272399491197261744917630648076450916988507556894732956159378879925361798097826357096334322736290432130467746135814451312486793390034928257725370518484493861698126333491389572267603332758020456799198750272590361145816445927388175309180353859578264869222488691353925335605008942104397451311997797555742215320253816039921976446765445813070209919590877521867750133745041121730575233909102257238598668507305044292272869065592279947987655739426225256257820529747025799612631006579606570545546170339720825352824198367045954209951555224369599945560355455401387410924680427047539677381911727451923635505368306493883673485627880417293246635594643237481010719252400712065275785282844934003384758901793192337314314181973299439936804119268489296212151287821385371785120236825541211813854819997441759394501471464877814861045703740747074951372203734505257204933361233128256394645458061289820838499748264098598339317640593329546766882242796578516606477702223764351038221311881104355968389863870862829748451714518383893617024178421299133524364614689998778727488892669997177602348798767530939780717458791857373389944629978451533988771111382644221132531576334739562159700127011987926960198300717295805526221639652842866424926072982953555586867654398073568672368116366626625624644778139620029255041162824964819167935290197172091530898446746543282787323636050052369288807288642144171467416156543595881142813746667510828588640065065798658717820320838746706254307790720792137826992417627159811151291076021940460377553976323020618796968190640160291524613152676691372121407227242328136200501629260078874517474147373630806356033442439272238840195479686119376529499001484305564765741935732049246411491191626575105373699109899979094287990604341004650914311962617881905145606615597283780368800621803259839648888914991237302747030439158752356973584622639363272939594796037912450096379339548928843767969350390027129868819689288689932742092582900839837335153680678374217346307933662928913096466532265022725842304491568817651918309115543812593034360895480450019155921447423690533959146437816907329878719621788637509244617919258630195719128705050223355010471079070806835054569184192544538890933520654656887651368695467060503588081394450149582188301819117439153038344282860826080632570390218870809771198075987683256258984192275019736128962691495184682718918408715227780845985156720657668893376836222012072226929337686048944074808303803331550373308755511342395106502967203231171523206312843499500279619462935535753533748505313130230611967766093762692604340695567637223844650124830258318359986740101742733400063566414094696205901351045724159296077741580495681551065916368172616396799526452207634802686531823372520209256365444890182577457640196739689921468027371947017254792275984751142178591885088644568003725150324613552998064758518075355404112908511128914867759550526895746378749059513217246380375696633901728908355202462627040457060185713041126008131149095162555640593756982247403348033951032972844231658926599435468451993969157882500241971415491802604541397370634883195103425077504338671584665346140048869492257966519440327524494679067355107432148838558686098700910695368286136715244282894621881516156254370841231931907544952698270362379837116113860783478122218463528449533244493222485679178928960778391322898082545641137624315133603731101360932709765468824758880904307778428978976253122809751814212015651104212749292675257332593301965152387453795421166975213554831547337071787122183324781507542718554321562123855265340907229179370609494626663196476969072870417806452456246870842400861734726310179617876638588421362575942799044538748797447070284932958831561684122434641392356382726198747823875354149253141737050660235757755240606914173175056042146013686289023590556035186796133123446861901993133423709467784345314491541804788773401535296679396787272474340784729698291726953905903199096665210963764535346038606118403232453027069462689064889127105607109889095782556003600868553114849874679771239157096629889405062770285002658329703191854732745559645277236460479999261803763181029435262090780618007453537936497937961430531928657047771592056495021510363848882155547414577903521914763625445564336904350975321682452239137344329138352151426301978462634198912689160775551518035976567317354631805492007469806321507571372131021512673049551626870479044715700538684427643058882892863485567218972675859170276200509067214423912378302357261198380188715375916645057907071980687561594616074833767313054511463478186066527205205524786424270787622088114869666011207707941610857676501729244915448840566238748106161330259975067928283252500969220918737769102476240016122734089232727884184473616708566281369768298688253535437787741114691689388905706763621455910789747928818901608230979282572964957442059641539630683670874743021339059672055896660729789659126179509670153049215906400137741501695782849796471238325920779405592435599657125752651868010048412525245786918179395593566397220952644775238026816697333834681549985381961794177573396337876584928410685796900567622751170762937724175059165235261885463751501504178463268275244820010809312454825036208432572356682916403905940113633081687024808179423125111173442163334400852917882875856606982689106386481214795034551784258896122687019990547602055619104370645499585678185223578838642695420162716014549906435254096128509233469615290912668381318404076958308099035292617415427190470545646774316973192303156308552025187898349310563701958833024324235768292624569873515935245999708606281972825067081979479332376282253089766177039546765114979384809501923661165593803690211656631343749415470668065161364214613165178176264240285846538108014314352887747703701270198681476424902130823922109571612252469213937836736093463124606459504874468911928970960049697096832569851043684107968779791191010400191506779867319773830759599747681732835534181133672118452133322584547796585870444328159160147399655497314063417113044358999444565309751171919161196709018999468133144074710340259025030088490323217242210658158376804136446844439488044688855887497962506802945362257045161826373325254018700172210040005582706417473824345934164241331442268354535287019782114922972545865964030503933325175176864325350112218612950935679032906964698527920086446663536256217373302982678093974946611429106162218458030227883055977650329520493338689992895867429015860046565315104340438476301920973666184173080084648008701547626710979938914162145416485031068768305665612429810064579701384107895860413119547086844556097661642181681754935700535069592139432818710731588700255531207935812507333781935863769257872036836021986021984844523797109644020409837345429831371576880032750790386386089582424021068470341888570312576171954815466245497043207361498729664529380859846974729565061161530119742961044893409763053152389800273641107984167718727667699494076867063824029580206777830822647742105803084623760082997283982215193812674303397296457777193542999711984824261799567950424259253851399035494446471646236610914969308660105592207880318448602163549010598220350733947430219865590888442520891541989167156686584354544282833001889935900148912134611479157988740052912881208920208287012932562212946716411760888317791500697183146358338802121615987466725952605011468742971563527363095826187425130231897967362960494532141715312041742344256250719857634148587020987636393486319647968037778193937575322902084596931585629401946139724737688566239856300766619746790776504842853129541933651704431017467915163026518508525004202899380737954240125527796297826759615350670836405246245510037217355052104239809974633096784338485582274158177998779269882889645164376561887124770587118949413523604638761836451205378450903413265867900861820043832360572765892976180412359618717924742227945393672414986535692469313289070156217228661472870282930294836495731547274047105153890434933279054842880894685619207828016714668654461436407898950723989253765660294725992691833684424025109423829794217930333912467079188714282902059877370944356720282989327562728316479403693976421021210070220755218277040379882597607618501784485104542121714185086394315228796427287343918616693937804811172071535134735998529771134917434789974049165688186668566470432985386527130691252575793083667279267528652863404479007737947248371665928834319423588154157464081815936651911502111710548835046684391012622954830073342233705552800540880974291138022697008041585129195651740320524883466140364702350293038191466789119713794845601978906651682974515564037539552627818636423165649789701439187074853310123094132558466900751020181324337171559045192701874295329990083587021499375461869958483049926171142602905301212107162352434685864279084953072924017379920532095285773801213165143265923051574079509877929988785075368769009093337532354981830917972672726069747820486896348446935617622738568291682027393010230988216590295163446988340527010963792111088312354473351466705578931746157176535261509829619464102081496270253056627179338946656908785644709380258457539017108491319361420057034821529883175612939207137506767040651396365350746945847892071186175414444555737756053547150913314285940532438827315038224452703585362721226005462451225339507717613476393931440494334696158663142379439404486436325015088390740464355356806116394498581462018488583965979733423903761576823614205489601010819306773413247918034491569711228808448323541890970449058486796057311708103388840225936874826689274156658750640239811756574742074093704725151458345070517566449713963360265729975871040485625308111317313820336355647174717990438693908889953090778427603504106380925527206229969918602290117484037990740990527612972357765063948584640778886003453845415616760576462199396720770013092539960939768325417374890961430303747358080895268454597657026032791940007805801538665619235229523849603455437580173850019987124423413370623357185321620481031197830106133703325399284332852810156329173485196876900419079574365212934198435332465930384961554424387902771163531841242537813391684379886224486909746597433785655091691211207049082407138679550308830999637127328916567223665247346562048218993018202359204781071740980300971505640722258374877341089597840594126529937096338885084847951608417092460096304569580017310689884646507836083249348948864591771750595769248625423416367557112316351305546346283505815947406395136512022907538889491148281462630515136334888597134599903898130837676666812817099306758388768147381427735998102612902155215751488913083929583511141799473647173216333630300444961791089263039878127331589975501788877732966314633602405426428558415656995530335152261874761178638951757378376295654458412154429032064861960836557934540793710799474207792228804021794389589204648091793779732823177954457337366481499128852051357781093681662501251629574135697125331136365434701277255974706971781370190583629397462393755529318254823370224589087260802695299663450548789338509863633339335859252004482120239464546590768316056719938816137995012152155745014336196292395281598578225669260258441222505529273595507529829778541146291223855902475320534919670795573533603774323590928981517084620134203040715673922386823102596173446152614971810798527720910620763228732753018349101175741734639933096833904125562572395909447224476966620386854861257550690363271297438997895454701428188070938567980033136544395840022783277169041587103301661903838081007246808161811062287334525987120251158888149408851973728585112621797494760391945605694444821382373284711386247348885139049990999119812260823030680329455234905142039353804892406608922739283834666985177312222629070434036827877576245459712694133736136066742335042845728716312208937195128058929377180737027923387890845875466020177799620643933043324512339306383651491325472137986705831444587253847708810223798364631730487054480364919675615609301523834914477192558890641239930513466966304864052088518191713852603236779741698467717365788873652609525347525628672529265994227326302137331286186697276124279792028613336740732168765224990053620555617930378696739711738394021350985101868016338687269961477922133007616979053227738707121157375422344480807448266861082821002782675706014672429746360604128311246571913920281836121423164178524159155941010844536657227605442967731027494523356295366402704891272061241280618084865763663586204425668938380364466414586851703984609004344087568696348064921258822102349900552128096257826173687443889040081846047595016085893830048807267216871884513689221632022031160238881331760706975460808292252454963267795154174526202547414807374078741260986016367470680324671561495847886561467788063864786878539039561151267470140409783201892506426692266633480610432831898974364271977912190310663245573640063699533206029138069010092426987726046643858742472514953915517515886523995097175380768773760934783144873168418079926846116693570107360918105571575006040351405775344992756736774098918106401436184244207042032218954489396451150625780284346043300346508568372323244223442767479540234767397398712263524912389806412511223018462460517728714961379788666711205733901979082914588718702275695026303131803422954832076479038830488801726083241037446732423584391892249975557232715363889273338653235782712899298585839338414470778837226812236712274425294723687399156046849507894787571921655464850635496700927644614653232979696982957193580855394215185841773296621572725946118842870378085326081273246628946924532682447928213071629955184646394753850387680849272711266920229190767551234836857819014162252336442254058143524597057185632279238862356107647638985668511185388948683334890047563380804183124964395024945793252806196403164846220217601187778252680720221669891849654328998258856182812810723805956229234857236306160834726470712422207994153443774335156697019546335523589043343247751853429318248228789825606849834926778957597875666482545890715012099700244293966273199838482786072434460746724595952876643016783421864282206975033796123770214490302556550993136266639416276186935153846678270080525087563260719656975509560658586508830633290052822527224956878194514105359092461810863772257660751299759807144433265842085781038345853681795894896660327208533154152436954627510256756574494554673817854385683213438771430913878647258282868445863505597331208866399711566729277153543930811097177185722561506251950019527384459081689492336332436515513319679666883361451553729025086357120746430983358964261040599007908430229725551925716138685221868594783104292187310158831563716064891718595055903643760277365580180126985314692006987541522851060874978500096463163366147547415491025930142775570000611182215411721561698834679341050574075565119643241280051724474009150223258012076022011045403621907334886965905946707795707741752558031543895744534327996437622850382431201623558582236468684121505453922760013371716465293146847779011257179508830819385758273916779018417605319886773224434988930331352963794583775077926942876933523717347806248269466951663836534699026643798699140328200785604458607888766223693167375890892091169667602191006818872504463246509203254409202474613586612094102851089552885401407282405079652473063887575285646098716625180243590769816236453898310434438374109529305671706089653051234531533335477532356875521542210244432687996972632258563592957852785193480991678461111420838229039304977644059391882543896939892081897168259864224698085156887575409061553885418603106955376974830456685506960416172333376299609752020219016311960221921361161812811878962352110978817298361956881809446015994820526317009895122453545207011699015478178233359797946290537841306581670896336206482766993120027789637443569135532087427690804617243311480648386838858294289351501836506458405896922287321983336013120882984842076628179166888450007745546820316660610388338681649251954589098246476598404425978218345354462901944975682999138506841218082513146142537092838567497213236796650008057507521829055501607280434096857721349094784850258879691656967200563976466886043538961030605382321505659937346646692564524992526093919049598693659810942635489420785415572657896641365549006909256398808019428008550436483515486347587236181409006584557298932747328629641928042535924529261376078275167537523379974994219981797932992848354167548557363551868194225379167923896969875888668084177649951536015639563577553629840801193286638992843734883723688779498814374250436855210667513451546377279055854021214510164362903447453743430933797972894677754195951997455982565720114050382519746436376079156945582163252574938061460191767657363458953403845170167269774885268782327801952994790611429351080042024737528535664949091428114232863727884084244749675572433295178340286314203991348406397950221052554555457016277287119002918903834172491907584766561133032104410090683104999099060196982998503139442336278709190908390939242451599219679708572157247614801068047672810254033993612935663117985356333361713763977980498949433735196027829087586954555978368582731057094420816004361783448814451760705655241400936473416075919727686703634669979513006039355974505808980066855623817798443738270663606312159186037223255892188938170254332172508298244903838131563942342058759329894820710198802736281409429605434894992796174191456047169173209877379524646995332469668573472465800075554126909378390026985326720327917069405198480411190604145869379160290153814772648502526996976532989505860120640931871678523250791776622759822817748525851787600352834066509755627468885225539108925558061596512581512754875559295881438173321126274426631272450810549779690854194524149638473620047048412469882993658440243214773025282003286111066228601673423048325087831405104106940742369961881156066157738474817280639389152500280210668694847413834440115790357391405021195512299176964889993653893632080586449089262443759862865290841213342526781261840334600690110795626810378539792930334383072481273755414215682539448179339124742625172447019460206633044886835326243479500984742360846831882652402646484082615687353576943643441349911991364039563300272442113528072259245648981497238664746995243424869776077275818032282977613823632229751752857974491878144965397596681214545745458188832156255927069655783151450076865477138499143858806721320588429217778242086399365260876922124498379564627471155146391807835054609725396546773175617805926186042812502323515242854830131580634117887682054495336885425092781092492657005389945124485065603930190631986630360219225115303167914539953000566040093539573711462871168660133664436843288170633061944894982899973781162864198109643069942820084455794276306033358019058996987798950013258997676270866730405342312793678449825660432973360481865355356322596724397112916456353082891115489071245783666624888534867784866675033108361167153048373233150761340775726093247198272828479016744927351097945334892275786800114982507693584301510233936032495580240487523442393144945960869690721074245669399322528283405681837870058063000270225140286199720093964574028903462566323396532702931551061041188192757080643091452423887452260377764763559570372949731949177868328162864858844590902858688046861815028463293070121029663783709352133463267708078530366467756640914389247553723290521854971807052985363724883362046321106104466757747092177864768804397562473243334986079753917978429066632332223284815067267942646480064844968129405849009132587764546314955877970110455154077089953864164281696630204496732406847529578517689420829002307437280276664436992601721379690096339715671210070960041329766514158569166207230340381362648579961875551065530786593655632830055351102028845523879948996172778398604181179050514583059967756544989660853507187066596111019416638899642456584879403439012640188647539921559206579148635150928937926018756072359576055058744870518402614948370127951253511689367789775383736380836087741627629976548577020344769197476895205098186037766334073084704889617742616342932011415287951151296825853815091182372640694588000269845058852036397906578697857717369702604278975935617171062072138844835490668813571922875351472532375140256522178804864615643315227779162615162885073888904572346782749667159315656182228689405628457462847975303445839872663118395075234502585853856407748920497634589369685408156539806163173342974924561174998831684324653365481408186145979287044544176852322032227218691963837127722217139616070656518161531495798677245920829501521077059926006169110239391328516433893579306646121850234694466217281021745595731982936875441045642641033411073771773277798918968216673040510563488973937470391106531108580580536804965483147765296578987888977918395045978171870937262665826017013909206398941305364937054744879202510801580475151240966687150082607022670761401551011341114279650264050409179380143674009845749902460267464405635729841419935755242355069187075504589941146831835409097342385275932025565438745574878291352781319962262513483621423500473301279605297760229002734814030167638324248357076545922558768483683639078529786313676020313958656864466378371319151885660566313396577562938943555186740480431822511808768595126153306221769990347616733559522151209656911587856288216670966871128001145451267518807715778525026107902853588562274564996079564114814768124302856552497997558226301624837231047937652583120388524345675946463948635715414278962392563040978150298922434724307086984472122001673898444534254088426792969275988238102809973408026837163614333197278215650517703054800102293276738409080585519454032331216774953219959496201503697706651190027283946712746774477689009181491857757592075422898685614014261732794778754199705913922082053197141759866594762342153552224486629194008063828585286253372847800176777966358905187384717305205409932616620979350501488265504543801925332090421522297940079126881360977037521574210594416556902050414366029766124398927826862889782905148843441529076425984524551819428329340714057179542895242625093817080907286192476956690388802604429941394957601226783732562774738883419725205232448885320405179052491564415584173132749910323204226577783014221241391440906676426220620290798027833346209061741664322436159545438345647532363425007888309468903949801267700091482706232375712571321250150760367081174557894522537147802186509619937186908472639627911117855988027548831020557209761668653968023723145162109870613243626620399151047508770746080547994601742679997679904389492666796439478735657545068779214095587701249239750508069032324338525376830051256200542092786495382236567672865979466519861116928638759087820791224057500870317995680140079624099267947015375542378828919999148306605288848416023078042411574857142846356918573023516649765841840593981919209166054610224371791813890975916659623186103729176507020756614745714587282563528375345478833144780907105963006600094737444135609426941457750550393183880857120829304146113665027512582671087065277114316765115498923651328603129762473482108501396025837617672976084104282284623792391675143865019870338654161314868040649121438752789461555466013047131555055216306229151040956920053578733286033853076399779225631801844703150276013090463341905558453956379532309980730543397585605570204325012970522576685904522526347353867599671286197425541757894856144987942927667839899106472128766191233387278133124476199372856351193938705557233110274167293036836428858841201633743040919400605655713261113177858457946835533933097224487801130006942718136684312494589227581727021825752735954735887242241808160662957267182161915164835552808447984681515169953323172466864553019435308879883982865377472225651428578176010741928892584426760543015736575162082082377318090978171743389905167967192818265086834107590445243064817270293758033782726354338344398296835302733226918695101837101182098782248092959234920375978031936252961056164540564439936280863060941707023381059673751302522804459626634793634287473704777895199380863185114364934033702793915642562424998113599090491487441643754671973918206989781772537649271860584221440054448513046440911469545882134476858169923280756715504548634600889687062238063236250194941194755925634577134979044907515619748859743047949990788726898595878774474056325023116243022263366142822307505004211765380838177668484221219724496438399215629100336060750253912927173808737682241461345384717430722769863211639394904965649196664900062481066082191832338523056055054311419582141412637868203331166864700946439835318839503634476697547393467911395032850555491066944346970418032139250960144941006103558247673930563156696440411815434561634193649373419746678036424694656950273646010577221338821804709624901142247154571441675268232551864130560143764243323135998693218925804748241024962597898970274198147614076786867100798434897290344667769467300153499965631603128506584164505149821185613938783235517343435016106641117647661822705552325307118732965044458162137170592405273603466957422482036539450662236714971161929834548724166969534103238137010166024388187647556250047533763855069590015739925486147391027739987619851812181321835391954748045530141905769831864925058141699545976232069903840133078959212140032495841375643070711719602133742332722299762030778763274130232759846993967360613167222303589414254831791901896271138997989810489866817207026998009749999934508341176820342039255549838146399108811100630361817130729757566278520027054499915122304357830198371437089586967590212685262164112068877877831678265299553352088360415151004300963363343344752549484317849661708926664047957013466129274059439520978009321364942732007771973289946395290606246169968021498473775437570455250568365020778738448579288416437597188709942537460892217705754858262316887393424880211380495764871709640855962392763051160531450281037172787458543611427197517236645209943772548424991817942324011636589012878417050744394801740323294510641393455410617017979887009218017514888802600044089116904784085993555641501267462811662960886597604225160935294857143403226716360401415781227794750717129197742777962528063332260837195260169078836795569439666459655328080759960748636894278698171479742818194946880437972069161604585219711579990609998703866172899157356513452358846247914539501138007140688953730984578234732785654019166724393289229831757596359566557033523557580383427173158679998747438994385769880595054548286758140887038091788621130624261097739816849234644661743950123807846924827852865446413269143997827021141372096743404786703084435210861904029606147864730888930692154118695248047776039123458795746955556855319769141955889781283741861455085199156064375025095429438863660743641372643547497494781705400540677501488183120430014821270051940710170835630629378391286170302093380392186812735529065532421873709872321458057573995472063341169963367644535510059652490454853908827395731125610600722109945721848105134671830629098700877889236686751742442095735848665112524742936312930106455693158772753847900379797246713989279665506581557545341839834336442732863445413142773149718324795762975378869825204263051570702921774073689081171530964913161315510924549533188647177597536278106465336213033850548515831799151510800100198935714450741837193213027318458836940425850176597265475759605814191891508678899740773799706077920430375712821188789728031004104440663270406145451096980155527088485596000487373145060854260111028524872752823897982440587687169334516870577672327225504592772932358459250514635253325039500725166550590096345647766801821304825743774542957371829600938624024035381258513676147111735932816598496142380243403767222560307003389199654181429474653891586425926338851683097732310638876304089162296585153553511650950041698690359213437486519900284906185043396083529972625196420616717885750600884042813125042792491397914944364243024269635617629893792767128431741183467138969559891758647966932173203172333429676982208721382553012827886179405499444914594603136929939089689570630164156583375398289591443249248210521096370372912806334459245472305059375653346222511200769700292844209392304900020605928263437576717190409458943686272747101754047599456059777136092949203828997781905168062348312230537552706353998679390807979721882438568108621204920119506903699775729911593151928996916375292191754799309128066522318249719458848763591705029914289711394640163471441306272175920762652043040387832623141059557502966223041215315300950983748492567503747165756255891484264972141457913533113857072349187373733613743665405745909964586382433760503940399271375796610704536525040116650739370985371190467222804254088158704416364875779266283833849020994620648560296041762661653781170828710839724157074843392061405677281139243681184646891925852514139394698647507315379267126606792627159631805614188060845111060274735626616254940069316047876605662618775782024027331138892495379968371768172908017255730127200596182568861630843238098686105392045151287996319706867726541360260265827419471063077344722221667461805276410999162300225269567956227483503623912450319205379051495516272052387277258780951089090137768530332119378569365692380010237215816353062010282137226757006600988181235428060297410566774018936302828277926754028567743621077629320588199053840574626258172319197158419357922247532030984690243478936068283042832374154495759721831199630416237498420849855354857091541482210844742687682284767572637092768878031549329056219350171155668705200968520262750087997220269350276670015877636766725560850455689117009070687944183666012491065075759158108864947951506918446061279388834734271544294171941861484872991953061519383757721873887291148789356269308343846133554644759037735842564326027175500654660305276446612965219139817001848248553910437125978885854664837225716333623705011984360731528358498276051034276980070196246400440341358619131653742587959728605515511855126290437101898756457581601410226122301991907792965177881722174890168509618289274852373415688790511564864722560440774582810348534399356797568332316827391318365544463027841111193568100431645233046630644501713104231492219614721243249502067390786893021580592261787882175900472992350276185635158935714696794218808007259710556603970182840468171629116870407201909738582485875765818109105940533448997984545588427971001523945284569819979915719414336698939371441858333469245753054489996200260853635019856818037672233728234720896732601090064349314298002715608559971414773280691241202101408792629422395291541890775126042488670057706922494315986134306337348529395478649397569381032726625726909944524651835306136762663896712256473504471601581418211078874552444054816302327597410890799746935079010109871496430829760734593604946591082164873003790296175867625726512157001928403368588857349956810124004827397554122548735832797874438625551203774945602716674321874668050244870080234776256249296264154830931028003053448732141270970846081909515439613137707979273644794354186341794490072144939888827757002276599920223920219238429498158456602560880521585227887989611164793111365998694218540413059990137625593084001529727219206487691586044207229319778133022252193471212076344774689939198657857244578764675598242765275229639961121696412806278432512737560183197783875111894977081255841511936798400184756740106409833417266573155333448306828878230642219503284515785440451915456028743981714817597485648208815880453122507032712260165324561228259038566671357829969301643675720540443300967637917726556089959339439938560867684702154857863850813493174886099287058284446689210844561604283781271473210803043506138879425160155339480897627273433436531071623265960901491371765040842346044521629394588625312310586116976008136565682598324994091405147404860958748227302563948469414975099386863637408739824726101125006284663946058864483279436409843302964918009929811780901559047133452608010281460706301848873089780227532795720774919816356168747463223746069189982049779074157045519342930901874459159374720079686335376828955630657187241424286639614865934797287061912841545198730274699876262383574318397010261346803596861152801677001334184060589890212593837992846965261879766835266623721145370151006191762115407383263098072418793033818235363821317487401812024618981962668823174517045320410619734759846859065909314212813250192061869995976252251041417412979952243839541946688001715683880322346127128358364820363661913143221037595801688405680081763157701663421435024860039394396252595024147713383855668435427283734746553780343813786197574982729370631308914487234706967911600066677707279870439613858959090708488438592390353782073269319388030292160928997756145553548885595142691070287103822580715211564608391786584254007074439590585995996985959685207148416972273046378812566587893136453543958498270217934353396127083165780013871828814491237531825152453885446326301319076064677941228046798449707598646772618491059978639206352287572532974517905531966755183425156171016030939856791095561169639325211029791718291074351397941106969784000144831079105640612501886028579118936897488713885688980546493453965506926659545952518363332152439951377625181798002206414449939395711995612749005444594954326893445766887786799530220448894626000271880414447819632699274489681672134768474778955395802661716476770698401427391398752291968869039545618866865735540661734481057435603065606681697522997479830659816487131614364515442148142433770694556330123542903078856971441768648054643016474253882076239469061135852010015811488310987433917006123164586632217624518479841072765452816185637319477244661406397358026361145057491996873497122402672907992429452700118209060691705739506400194951173818224565615315820812493824930728770021078153659943549121487434820110117804007352114810224107230405475491500719186343771758939664316905250885664540570311355410329728109395196017814708584232339802015701565488961106801438160128990814491124228292464903694126748073692517281527264728709904736615219638673157307390416737436725588216988059486505226785137370105456120935526471565843774307125942417875705291477514985521137551696479177679930770138788382581502785838031984280238663440793348826678599659602134656391500871035153937635564151215260990311324820757321241738391462525338359278706732990137148694401154038951547219031578374708976085098250933549479602338380100537137293232100598247544592504585534026735882844069662430230194879129390074369432351010254163574152678251357790470204442012314535473169899348605332692008188889431616884396164009229002133423419488493364986940617898661476386179471343436885317936883047940115572144051989163293338583526171898136617796780899425774300299165737496816356098063555582994906093159059758630625301313331087730580968893105640850405403463026857361528944023751440194936499989139806140687381028752519769842121365540341295603792611437285301666529965879333281420663646684494424873829264181820568863205872064147799096991297592742368408936474527584077357404429990419075773950607282059685692354523076361939035416330618447761107721920855893133213463301117106237269332994657009045541397265020300459796083877802373534945299061907091166611939021161415753099417401204897236487237107275491030903234828844321187518578158339946851229412121175203673007387177198870252296741562204753326336770293014695718142898750874323693543271012949448495654212516962322740716901629034480351292558866946553306646365290954448522600896417980684614322328869082663572869841830863941383758742455886406669727401332378436180428847886030385293161687661177928966925665428396469229950980508658675363642416518470683717516791422344679161219764862039981469355481078216392627112368120029119562973425098448253797670197194023741494200303550564112443278724432528488979010281414960174346001231827447270521835539402722846187447539886574520854742142448858821575774086786545816712700732658369486456426702376049191394907780780749239162345490266511730341454293999904945702112028645003872777548351725496298359977297660210718501908596980145101867142518175798906370327349507362426105184545421574444485700140336681896855359110894768601549053348292505206928560027703888838619697097332923032140167345004187625937334523390599125829766465927012338011776340504825325943073682629187864271636568974232189424514529428182927596133639328369402208640254284602108974067883569660106950376995457450246761576332728644022072611663401021986453778579507288543282513692474720022040876208019784757657316477997946878091210864694430262065820397730720606597778037102789655019304800682786308150365170782093884158048674207704493843494181480663563047602463568145913824696652986804547294985225323014627769670150434728152171811112212368644036515479416239476200091051556179650829323505902534766219654727872373392893458831495328703620752505377332766782133776775120042927602316682783464088476577864386860768181972065041276196180420453812260098138158457041504907381220018532642519376909455939014233159247089436169845249501847612706794262577912462124434348348252661254957729417432202913631443476944264371357694935587960695107590863657404210287825075009944334358687037350861673063172919210500596577253659491311237125231627680994366526943109681972576874406736569846464419902174590085077575043957479814380256441093863245694288820910390664633064124024890288887114066954567596442869801634501198957112216689832134821995080666340607258789353640976342661832395607711226198756342233874621745560435836390248183198048052509868501081120148254758899171489650577555802799799634518951009984913859584241409223139144017311216476214543942520386499711756313595083931183202730769416449276769736407087436675027810444089297985647066509285250807425971260959118839685170199377043046312908482040058258214130441581456970942958832419566735155249205629271240193268781949877064909115614678515398728405864152313126841560993931511943058023663650456319627099608767503701021460122702371584615290678723829203586186286749576961847519854528032469457769859872771230918814942914189185034277464828076087364945838926925768706481799398025162837919860972936124306209302608577063972037645390447422262365209023505262495694444177724052892412478577613428782096680078162044806974832507457165009542270963789989327641746118233712188512476640070079719082822959538562731260980515148983594809045778472071919554546996931731508238294119139362886079767855440820721928937527768890747179620028539903449032206232143645457597532268717276074528896666568973713066909664118515865981292663570915528115539247908656703604978018009217927010302328609884934756320488390584941291329853488940773672784945601492225989805616150750564299359957739072217388579661061638234381902310921388844574768559929578627621931783036503594558753452256180387968715489479348128723835298067027911141529393516717849049799992908722988682235844381008929646335314826352357318802347299645754721347023920063168350773183430257470341469919121260119600011629876469507644641635987149765588561088307242123899608830496265738427206384765247213375176667406878043185199265132281516938932848126501581992650312504662898223988454446082799208625092567057814009387201722412226190639656294618072321831469957278722943604153333106083088135400695162814272701318408141965164817105610181729209084243690424706663314104218495650899206735501468875580873643273216479913753772493031829079780113811137690743415826210153562116731570940287067715879497775481791959754813910783644863574659496015521161564627153539986458432411407443587792982163970179875547993069920451208983733072584378008180734946727211156789033155996859873592717940100677374897226906929234498128329780690535117962427854917370481783279703982409558644559098528067538887403307555889472698687156948528751289373634738214290877264716753312526302777943987710693372051746359184719598875716949747718918861541619979247903155490411413112836719560336788739981396821235030405580834263531037163092426463536733580924852774632020095220538419377611189102238028171949767708405003232185255102462623383774404361907718611788371127157268860066007857486820159817122947788957223639129150859857878572880152618856877509869756607642415603754175498887058907285588175341285690804781802965187593790240026738139788088043415808638727735154414972176293808078940932210136950099280420610933678044811072410543503090806900355697658463896920743800721823056790056982004008358706363544923436534493397390643407612022376789681287307870043278064942691630261213507309311409788195608780493592097154373768974160041830208253127108201834687476272023965929603050462232135999539765803811736880000730823503245323201715502149173847589227659765044756778258107086237540407520789637434134166376649797101657601692382201146166886250088511332423249819018673176667790103347113888294177413128866683550353383567729464945958741234134757157570001317583103508117662492917140449776455097138755066865306534180554010554130780617497622539717745244151852584189573799358803033169174095025539370708479335943972058819398077163945174618330694444641192056530040915364279552528093229130616889945152366620523476726647096639495149466733836704164391963927906152979392155982966601540145104314985931688518686332778233539123927725714731635245971244685665451929049344978524147362626235790380112622400130037619407627980039970820480013499726856492543729379061320994784935723962566072887990240949896616024356135759932326692134158869296988042762641904896737046616151278190321906914806269389046353909503484666471443109584039255881432696506145510763626156837881059863811246968917865003319828920634999682469165505316618282827456990225219525515936027455868537021924491108055682920691152172166954316792981779965432855654862992504771875678810969914844919294772851826316151677147733741309772301071508271282934306304630778791653517344181072913823925128303921325955886198333116732509666235957948628583998831580285647352064142975643183579764814419560322872828891115266034423742067314804688148346752277557148133067826424403148995743660506024948857283872554403353589351420663382754190611353963709555496019022624515175080350771841445932144097070459261826481496697701012697338507805051211080967329030601347971759614587181951925352357752292755081592679859343031964093944713172200283866164080287415857966862886417294480823219325397231159784029404752959885676606786803011517713825520077233202159237525770011900156415420834410388994606766079650177766048128176418598422254245477518792662937981996604079556634855524299067348002891858031425830441903340151725832239731807017022516610164710214161002720245419121498011369576887336278050153827471547504013023602848760204352653613113466444699680934978124181141355333735710461417011162323646805528956133579427202889091785849413016338795282343429978022031885569546657179450679542823235224921586108101867708699020505777402329063796206676123548165508577735382182203067442635586070540561322930287991377984492189923175435498677586439314960250112924129605498552500596805222070152366008032732869108261774629722503198890425376424964054886944803434261192777431708101322510420057392671268411742650697829917168992645670283587201156442620259993221531172665062579878961727065688831412775481439779963376433860271308993413711354321896056272792833096114018705126698881523240546101141439771153445417895490446821160576166322420906715061452786929771451344427554680984153058087540349625506643985357667030339723508121483323421584667180547608162363163374493493300036226605116401097906506817781638571251791534878993826204849501493517527686943156000821513839499734375434130435414475060863152241173363828881571249117502616368045760720501758682018151056624918380067727502855799318183122502642195828475760109850342849408208866998332253243112654871139948288718811193968262660993234411172201297774473584581844896595740423933825862333882891132591122926997587924364491702285259328393309138801883054455392572359598130235606734763819239509327849750689638625162826288597129376638826500339407123798608721362861928594492150641941204825457184741571221302718755467569764256236786307749873733789504273211980216875942066556483600134147831672155682657130647508506001167235507809075993758288014661921181059803703619852153859238879180269471754915404982589629414582162408037735691917815655805335377159831331714799682942910303803122779855352878370098580628841951379678900801633393587107800105268401858710204722199734150543267283320709840290824429146879723032143150229690161561116909837516541796344038946898854036842165485475918976290429799415494363565413942418393731351706331378876702200253535260278669969136814601760172473029326267711851759604873079461366717935232138236106834161587266998939259281226441823143720766487070417218664982947211372716339602400856224361960928032611557110671426175617329952865503307023289004738277629722294664378034144752997806362582404282837253433816418025820945182785308922508976951818993871440565670278413765727155901384029177248355265875722872261018486221665470579137135511196907157064640297880584881422232586818866735229239513853282620441484647222274333014766906995793448569831959296407150702978399197861606859673822850127292921566175611373324078432812512382243395923171123596089273438214554612449766362929457056491954729809692255798448500942220579683340768472498344705116836170725911578782065663462604004453550476387323949511049134073976940536697581050010670796746443012628066752923067834147639397179825305578869953156162283107767698723949974184139125346195392219926581118885279613083327865603387771179533877394274558581593790037132841460813420803990730524177477816435794589079105165550199416550286928706463080146948624360980202169918659825611408040180238047266650629593109588008738695900959213363451280731694771064450277712079584531736884909067941531213138255554109508784324282198699087233901046739853802473762545615462273418444478749384123790609496733246115080639245336584671579377767238883239257376161161346834330422780991163192572688679165693415949280227772173792837373150802411356953796244800919016801359627996324420222593881159328771698503483684639035889948040212513061972253059851305231834481144033718116183245359110170239259299574259385934098012877353757498276245712928528251849523744500079595131805617080788869376923337447518902697183850323531103520401453050339397640346313244890357852235270102492468190491971572230924314209877207564731330870633692767008208700928208875224686027259910993256249593212898254826838005559541889467367738309079699847996916461735962452192744766292404098057615188394081008428464633509830083072781154900172767669757946240821313030543317825416651385354652272259034153086285193556788990678777647004560265236042605760870966350980471672382770853526878558081482696701951435754968078526476654105410738979429822074293217838585649919131703535220729782123651712168013635492962174103299611094936345658265651092396116064755815279425495671334278730936833658257376441429126263307424420083019981486110696833576808359680670754892144577949745677869152377921440521938765795794963282809381087141876084081601304759839003527026382130392989439007813762639165797112738057870632490626041085719077490762986764036630108951678341851093554732951589425245014422299791357650476865302638405458870823458823641209264727836846237491011195939113545945195502816323731132360739773154166733985211224857411710891709876375665210492289862185064071173664237557169644482079904989822826573969900144233367532139663601842182559000344924227719232600025967591962986071652100703315957575259106285603399591414410235371681148768626358580129143165672595907484410066704181609350759098108329796111549751090499568419888662413391148253715625261866897484065922376089894415070767051441756108940803482799996832123010210531125807912800026969031541546400090596427883021820489354529629286412969671716056127069560198501289519337390637737824259290238122655182145798683978135278179170672009733861853461593033564468663010641225277985165633858136141828328750112542716882803776079291497599203119331071272539525141773567914344363070176471268786500679369643963243468142354892938807499650441388647425950839194384576297603081556548289965455354569593533475226814766099566126518721161427883783621898382975963199934716628086200076222761553234103591623666171052460375742238025713211148771462458236523995789784556343920189316179424318502818096349542091088276226207364275074900891813749150428458563190182637076783537087633305969834614583309805567022045678442707123675450023172293146457174547531886355734125453081977870320923078493532125120715558845630256222704365646259611761424726647759846964436024654833745177043214251676964556484542449210374902599477791333068857337612070523921068929304579487180255213345804823033577788390980249759769863247341696305286327770370624639391410936958379346673253146351497223181713634419556189749270355015752830532274026919638915071520503700005344339985782399868001097682492772004784599936548543516275818375136334219565976084664209195821401006112951192826231652090255413156839982012070380062775457221517526145256035488694656851992620017554261102857314730706739017972714128826069300900115418597132088803473393517672208892301505142718058108126672113316179655480326990155922396973047527973424562718889929620869706847886465408668236312485671153496004866448943828251042427485420025489712944633535991854254820269858977789779903798943939510003286099788915146462247362724123951836397278200799370311700425597910553920688158326642054581768646539050476876712154968503345310501990671036768112432124422672648619315121057335403998762889847755604733076648209464804759469127938560212615260770642042392431619279757564413683412531025010895040514642128018824169893924973403329289959459372568688579575467572959773060791162044851665212325873512536923404537273466376443819192835806875454501764699283003808644710855532524626410432584936691684278396083103926425733652884906885656926787211355121514190668447392088202105087302278041768374218507236612543157193242660680195100277444517377071237618478146524479603561780374470810589948089891407130599307637312523619970334700808531030918468269336356509904833951178735173084769038094886056302258042252148019063297069555625792069104769253921677791432316290932997057494750911405959483499443226731697518410992142409706699748643207966834866145141805854117166721136959187122244465737852254909057137467488801548918000629763977515400697571152094597066478560610350382346797054637270401631459895395444027408613596843381115322512228516605289350684880230783811506041666272430748306158004790237779781340454294477751198173923834271843690623496354989075857250442977983728044859360681664904063606942750343154302207635341565792062444817314119373509750277130432419735154486042063853005063326612775852155451643854856515653340729701427684666488903010130055036667976998466082002921039638704465610618367557915592763791959225314821446134345884241776763473658004727476217678984401535873053548442266184968604792933102553012020862236025098031007118906053311759665941515852049492157725451718767746759932939370990783511737554339847477390699172333680388009804551982249965437642943114335657174305273964762986330789184995517265633187960438588106378441689763211779565947026051399639865624980982160707073705477746064564287176341296450697754461989204518612554067521125814574419499868890846493355377492929540931352973395473148321834753182851413437540790856828259741578290237826179677621206667282324310336430205707217865671945243153249969925249569638198855806022411378772787922527107204309536961271545527725710821202550349878641523073264475525965545707935919359491098828015610057058414233259514929147407746720625133178239594799027057951568802812446100835766656243432804718030832945787311582666656661084060885671519130688415925684295882125144829493602044476713764897632949438442612506158542625594314740642064489669211794804308474119164457497884407089301479621027080522074650943110630646328865514668665482413678325494900043765751836383604839927709524604886677458593652787576593265643683528811082115092329780690276297772585255519187964476303927195489817358946000069638536712612181316684539692359990244225620532438656641220581696828590430733111125042928662499818767188387829214773022767065715553692256394975733940308462207364092270328307179993324230224492264764556442714608689223017649120707482672201918011211204046463140846226722940596783318988604493365343613175139784017035409308087962731375290341323453684281484848182256945278080116722537273134647954513111327638391322402648652527676203836161993827561698534698204325397372007057722644617221642271789936380202931591448043978109463191559258498966491555856283785528457858200718286663207998273179562122971415217246252726722540200269789614767026665265227300468247192819182550107772419715103029169680879749558498363471302571949123024927385006957416882102309496538093477847214780016535079922767862606146348832009997431062456753611559527312584966937183885646574292861034561331525176210031497349338433948493462084371970244809598487675667014019201297548125109208350498899982806486696261931106750802917341547996277397116858397783133959553029683501503028600091674354625531681910480100314950076090942537793984298075402592959349938257601604455879342854987085409501248404376958723180926086557204210867344927651131753484249325598725883068043031264841009943930455195046855414124109605092372542188252388768673990182072492550838982580256875634039984908096343088245617829328082307304178280808851315823887668553852366071072203303578999404854621128992944830018861041413556170450506907301388398911493259273368096956301469548128416825856973681326679305591030036854752221800047083734711622627805346278846652784910246578351146337545376886214408516324156928686114989814626819147091077992878322114681294667753857225630914377105387180128931268487767816244827322899449541097557895863989166610067843101071124443708264948975728236291623767314260839186544231055775789026796936094738020411726945479197869861035569925413587467292275940315798031674463643701491408767397473115842425436359218525159221821391639679583551998249682881261112506547019697585146160350862031474558301911789758008679998073069217274472040715643419700419391175778626233902087879724337846118238329177499854451117698664699135469966512810408048610465030623246854088785872271325093857551696403473645682463163663496012793660298205287652025423586302433911780103812089398362534535940069715044907409535699060731957515075950452199637636834279789111174589099134061500011630345174707982382944456743406022998322773991847363989867615277912231792814989049735119525478462830572178691384859112732642601226535796301648578749764527531637185875594801050346708256475839616173865340544408471156065082446126504603268408409893460961635798669417445448770555481075056070711597791122069306288769455943402812339050708758365734469593648824694857228288329550421972922483043448669779083746987900064080245414943191005896781551173086011731236752853151346926708658757009900084748044308843834979041047772168354415643556028606218094921885866456077641813165455587628698650156092700713984365786399868948390081106120021050696254068115971180807957484320404810000124689393869924899259232585112339014668338982968396111917406717344722202109514583312123889997858010139519319759881371162455541880854698988082444534936212911043636190813524395829815322336670317682267828815448744248298734774738555026847210436791796397112646956634594757289813763219881525923971653320546854405108583011028298583474605874680962595258453335613880910275896752582407628114313282098580545075112991677236936219056841776548480778025028120933031328044210736690632735539100230807550490259067889230801661711364655550122433804095972350977863935213409538831879571854916353717109991195307040182645366881547368290535035699574807271200455540589617923349551934556216069275165515749328924870086563187614034218681757607387114059294721888537250741584610412701073165943829523257732331816700558793459610830199727646304928855699357306387555054047278766954183975309404759860662187020269068955125345234611611261344496039963455691030740599280330963242005721250070724783409927548030025617739789610147298315050061107086377557297239033234246490907703741214746503708841511633399291665632456670049612694891871725412846037981423731881598092117169456903096866686728803309962975089019809290963332279851876477379946602422645311798828624707369577859545633615066823793722789883194239172347144977584261564348340291435227715099593318174338884473260529366274970317018375795265021814097824333378142609984607261865797514833945038150748011064830122750922068151597965149705192286607511343151543396986807560575446716712995125456613344973568318294451273169020657577293411769209051349689402818580990494448541375120889562333653541352947320558802132057354290527301739123786386549180631763706723058949659968422090212400130660325291905014257708287170045043484168453164060569965146494789715954991505242337606033547906720763736078517555598388813841329041740687043899107582755195630760795025412645837617686895817105991446637109414538412504482160042729950815136831672545834065314524627149922878280278687870380552012815426427598268001250781448339120834216348217607224931000281356198178211347582879478156006527038575144220488769275095532421526497602130591725553627125983903296164165017112217424869772385611450534852564342408525295849512058072312468209079439211064106008202422466929493459925639329393703617451038590444406851608157013169652149808758851096377967661184433223957751567468355223589373055638442168840261035286482603068444601766699752365395652471314927091764145748312286208353639725595385670494769682901045189468174623845799293496288058607262495817427936037335888945482295162436806748121524962211541797563194195528970574068107355484446741518488859288659471879984551330406339891305303839822539065703700961916013432563269076950372296839251322833188829537330478694420452970221083735826384575214342815355409911703318658504762785073232268198939081641327119832201248025242296545318757421450137946053718564612267560462817770646911609353415188165790228306950700763481895010228570816646641537135486224689700616961508440223503287111626055164092014718775258408740889251980844183023326904975140609043797493617443213235966270310700206143731099143866497154607846786891492096192965239071080769014710510996991509662258880861293840962952912110355497723620481725513714553721503991630007663381355392650577786692100617954719794960701441072453466178266495266916802911714417890860935212591720058611676545908554719489663639808551106539237526566426483089583563736351128327610982932413342589740573656589347509784908300804434056954918081960627565008041333219806614134518043980176728221097234075752980109829928136351779430659897334788533757654857630505274725556245001211388947534380901208651902945884414906181650999079784312061346901868972911356432014497520873701366635403956139479178587431126727421086261038341445039104670063488780865643052139934189668747081945576919042213325983166282250594328257323675709073773321367014355677695148105572969124683972785487618077650808366244041815829706114751814152191348461973154779267317112033683815412587271853484230358671469861670248377204133381793813137893609092048502899787618926350784843545385897282426577261420972934613721123649533966475501060215116381990402800284107561586213073889421133244175087762169932958897667897627869008841728824854953652517844834916031041772886478950341623062028482346777012801093298729512899012944265286216821160749459254813870088187312309278749697719697587202400384613530285174325268575610336565574553377746216901915874800599019059864277773590614023865825639726182611174991161362224624274200700870964391386423753467825940196063318586405313785171464073913855273419845181893683441575102837240002540138708693958388108947938867190011490092051419908362936434536353513481483394901853717398423028848366945372094392439777756921774254011515103812599110052841013986482420639685584197306407425606423900541460856627541990648504995887837839859572054209437677768261482129238778937092506862695429776718606929573702694507787166374543741044813332690115270361637759714226290800907613419675716564408919367298258799398921656538303525301881680711276158200566290568414177076109821215203889573085222063819936082888634076925956813567489684631891343493423677108456424065118155170547360092811370764658880887535692170497588051380492752120404790737576962348312087238759429316540935692114494325915075962804522968302318010212113573577905167074251141793065247699860036996246116101021598706815275162613987937424529623404267024152570579958294938268481531452557298621705746367081384695479412750355866918771667410693444471144765438271527858992426553833183802516314163682480530442726669966898183168403672130319560267954983317988842262950608627015168091590635992950983529310781589445680307622983077554105091253521367058583740879468580083284195069829988915214633018926089560544879897306168174051366364713917296240343353904760717954804531704079989846893480130925514129372469633683257679560211391925997781337403804842224842926457988801255217919205955422647450085886078640081656000171176845245778309107872321462696394476462991142051914496096208607629158034997402548048293972029865287369368419015921994346019723240912638314912918253894261914289801717902816362029734169915637204843437632988761887971267975454503951037096044012816771058859765068239792409704956935220487389499017776528663632503639617309863667701953489845609215729419191000825390196561533632156844697317861498433747973912705851895212275493169570634499548334153609998620299975003875041551407933285992813250892731426574119401416317405443993176985974847844920163032354489488402793392878227005774931676798877220165324678515947158316502028923782971893995636535505102617573532435341242433397292932024359453749707590051502547135320513236987872796442078995987871032141469872275447903444149256157635079307944067622508055969775276636217214734323623478676141862653375477592063906133642829574525644250588782581617957201666703354533068633758505149027258485867246377579478446889667410585156601245838300454956179170242320746780298753765850261715450350133996078767258501339849975180748697065782364380160434661408275357859529609037627521990421939511680001046017733438028214256760880098605028268431295524726330289210932802447396352719740649959447245557239251758930518276321699178553711475608393186850328380901051865663306683403952927119198140083822342769106676785390641784802928426915534376371044977706831131141712354207382442968843580222295690217821217475914873810053106144048616742089642556758748161693251408792728912204746796089907923137316903537536527845726872023107802085857437528000531552882075043949322432413704214871268644690865338726523077159226895992143718690616272416052587459439831029946832043972862162743981403394083765212430648860733325044937931383268167758369029875539282089144254764153865208129258213309616270642202951163230099692213622836547835616520465713302710672516037422223330961833518989391073835052468500887741764338568227262935331235471382782982628831955610815768038027706772146601527517288486051198864819866084660320557857207541179928269270341613676552199953295287278654765707432773023071293093893749131700346420712730491891672560616448856994870736759275920862213321098585040471819210775767787282534245781251755784421227527150805878514563259410619910760985143559885187405281051289235718989419582118596977646117416067481441783089916841618487010221991956345671581893215039659060194212526638621039478901542301358083541030369811260015061552689651411672747962501126981473814591690293252075564058559622220476273922311064194217312067330268942483634981476785136228215825973231284494531439462848408495889885873641674160506279511847891092712256035455448440857646232979036112919315695746743888057503702645587844236162311373117958313467513538719483643625007333853137547519874027053019804172818482712981189959801531563841047870727167720933327957010818886193355583847476658279439305768419412168609444562222015184866723322795786073381444286282293797338647996232834480297269822492167929507227185450730055660401257987959039819731211376166771458950522766117320816344353567918153525451445559406034451257650839554677518046017199242641367458973090287268385185660595330328605073532969751664443745393910026061910367246571336656828633279057743459939055911768137006922465649852960240017103583676167353811394228174834172371682963006472618640597728976086189130583219444238390735561301438860538769015655818886909612236889250298623485757076933506029059303375929290344907470924294534240673978812674428724285436276788359895861012368910709856164588711895412209561401435324113992544620627876580155086372623081292388655773779773228973739625161056159884824600559032202692854695115634057294606755957075946345226546368102141082533369892596799754773120280204924016278355208109568612226908765174953326864198438360330540732689974873771655361966178343464472569341741756975123202161164144049482135824930499217327907469032924585646192322472633709763220961281895904898442813304439139081938589674575140388456901216548169063958206740295088644323602492896157559732879491813376954884233885409986427557299155565816510017194934076945594587794790800264145968136043856822727059513738927049172539928196945617041727413998029948098550085789442045952508010630493397303042208049948057367906324029983847885742698514805630106647664527840174013028263223131685883178911961529849840188517396265115465802582970055107635379343358479605186544295457760667198261922684654135021633920136994366848622540719721887281630981613807552214069816595940641684567924060530490632401714097752156558569569498279408587307601905129488653926933622269401232377945904288620099051525515480753590637256436756429895210913619233784892388524049936825778372722299898060579184625353089652543965056414118622996338654767230702055246425303173047028943048149809141741469924386508358955360908286401884031785685308551097328899056753009821023164391455150378459758079141980232005933778142498723586726243455952342358884782358868971315779108545959718684471736601257154497757246228251128637015186528481310783602576141618213812107577143826795649177655298603067078250213140000489900691297674749705573338993607688995546386813045646075441047830808611117165761261376691633399551217760196308403577765267782371343500095364647363920967854204322310938128187302757553577937543529979894225193021964573129549878466105684241033350370895631670197797257916928931283695093515266253280453283685123710902383551369372002281721133457624376749948313685158759576953415121588967068615062143090452483048457093419942817619496790541900770564481902717442242423370710629321622964361325210641284134176067720731287680368752850319064790199382557763243394032699580435368053471228097630560946652422232342328459487459749123018710338804282977548478453240336021126762132261943099935973457970173940126043771435662497840844009299231397955811851942492856280656370320192801435862103619767942790546535167418240706211993610773989492774986613516136823589644863028306531037169369086236134874547250823693434900769421390213274062011683142562261474297261658337134931353665123147388583990673516815816060701870888396222693091159469408048398242683368012154150872202775984907153055545492861299811656592670448358727982835226631132821299979228736601986810854322050108099361279923332488897041968362827735424193173291534348553978193475528582619560514864721409796764181890215142123756714443975495475465672730839101908942815058080442106101228519877028295003836619188370626760537168120844216651789243219762993788800620674358373622507416493302700956466462256539031688769144252232935465056709784029940762591708251289501012476091416734534098466382098664284718385468712454707803778543721650437565447158941353099460797286911917524314042254534100405972129452964087224224713691416939437253819829616360156617842490210127042166606833155772282585736108923260743493166567327549076502587241781829018364683854138409373976342142119359534523594008319937130229342813200965847610302007151761775062962707969091914766355572159912631319015872850337513079809978999086227590449646221972048694544834681435618320143962949171015577526638331163915296202155476176822792896135299467117848055810668494514818844546476791463138968747646965299390631754403806413161895431525126197707090507456859900619403283555569739669644025433322333520528820044120678148006127135062001353535344795424478140306517658999517924162952984016077765430235953908862459985669247497786253083179234332872261807466914602485161838606386863082568641324772602452506833662568650948070311533196735196421363031094238011748182646450006540081947816568829164270702001299674739131670711960987483871876288061549278008865508336760815105935076183841305085733998963024015131679733546811208956405307487911598489903730257226841544440083391854694426524794012069604954390014465713238062733463568784579875930272673932980512560751915584736911844820653123925546651198394676062773004567845011809208280383310333520286766781972908597934486214434997260831589795475780590547403133087797059862424705420005979513330309877853834408412723010014319316998919255802797919338545966309247023708593058049707276351324969283178614323337260456152091327449454799739010332918284688898201171807471897492335377461225011084965563793810264213200190124227514404118455765676733977594177673589822785716339105831067747118031166662363959235066441444205969383320920470120571685444410151495873735036106786748344724797261651118292779194954858652653194556691256799076424491423787606863739772116218173285792437395474856305202982068186118646100061692896599549450304918629507852409189652136858523459764698305922812232205890831630792329486047152671309231614984554336474985161187861240576644892902329675499637419411597924346860174998318712331840738053821628832163730627765823064012767204693692238317220196368647197925852608691272198796366590336081099946837715815061574271728617365082600046509673554539106111924668154028184287163849778402076561775339439073063957881248080616334993319825759006372662346513177237192065141041009293828132559574793331871272158758230363080285069661524359172502820833447254342430190036729604271390049723602088063590333401307300537277935881194633278832368038492456138572522187603540088778169831082316079311289857505023799764332014621783454733315211140939615167472008026932534200054096466594793064691375668668436224282484052974665704915373910247329111118975711159170545703376152711701555113850473907556355928142019641210777613324751931718908844154265795524484351929323317793586775482398813404585684741793103282695003741793076064129506885448691791217578037140199679183325634648187315891028637094214789962243074561202492343402503598075720846594422448049892647476035486798002986484691334561432449970712031401850055784252048540013257470620612659253742480220333797156930945424023765539410576274620501883059278151851902301987401883094010174872933065598115852073854228850225532992005344017893815699406240668625027187550588585975699775053768225511834114099281906834861342093565115438794233340081392623560771653208110910198118837610754367915014591118173114788873335422269897763862962312633909662632194501942772539528827671925304905235712991429851626600371079233959790294594592663908103725890637416376135819136307691728218198241521277965960401177321113312606247685736502544355674065500778075707675417885202326023356996109601570719134822269042160629385334541090447450765044204787822489136748648448289398177224682178595515001898442174704140816324645131134619945984317929241160081429193718516182171157576284350729337209350374575084684726509973540804618569025684346642177308363569546710333707114027657520328385175516947070619808559967844940767502203711744604422829821501091187557662894284011223930711987459801505882951244250731594363234507998875703134093992743073818884533011663345949865487995592164343551019598871403425552189381679451344849188719958668238924818274784433592977207300115085790617780695984876054532859121277251571486713917732012885185031019993820788151163225067754579623806019239507667477864852398142111259317700804320970694830760146130323212129184131281143204151463670396219156722568830661886952879707324377824929090669712426173567673245149051970133259960105323334418754358689049477813546732359320447027642709300812399657333388046578711985274976117572040129192838353866404523894632985053401387465377087173451266418759756688608651309515064190213972423704025927801352683135835291659085196436044932167871886342179056426110354962351326093411326772713014830311471200948767023817661656386521477791186088634249487865354989265447646048241768995469774968888131248379610787714361683599348070004931085732821199906008824706503442237845401555124519094413766734017522999315791742781769632726281173981618980954655327273564822461707641149543600611309139352212150262259854591208537777940056852453875478670556047071386626405234723405904158595784658641467891377625727249075929169722405570797772983481351024175005173861864943871503571798455393939261022157808070077241230080551001900280538591599792703001605770710059725768291586815896628665328754022205017056908410158401226255422735281246935864823159342697231384887893480422305817631865983864385133612216333279974610001680897942119705965167204103338461718796326497417250401053879234890873850838199989634057572984383003203471270290275352072374714820045898722978042941496042130923245478679064117669047556320041820530592154115429070912188006468980127806371679985108218199654806926728634397791658541124577457053803653677143923573265143157904907585497965213127437571680821439086229453813211536401538247307216499400433844078002754637089155219706432897435070207721657873270726139822686628620407735236504375037334525681563044866720330329569839317279334411798800192487231971968560613759393570163053951312039538724457026833962214436127275870433059851567786923689141719206929314430222959239672398692123664756953321737174648379700275916512144447202997798380901159077584809982817187980186879431401647614291205428867507935221649401042174873366511870884564606124865288882829158895861785283942822554899375483914388736868867148064577640431855428001221248598238922726512786332002246777387697302800086315150827511777739777273492420525385823285348964014022856141963188327437324560282231096094174966652696036819769973430221534632092017968927606085584372095571983459136346782799180482234830195866950621708129174382526707698799012006087803444036217039270241730697658677462659248406430463829177594739130553516856803675278057109865338781958041663917498181198906643034782385738449941554037413917977476236486659856596181233946165019151695937040859198894895706123754031513240748786946837429121446216414283300383450412339200297593101917976047007020379617952171657584304925933382988594402860683003125668247539110630167515489819404891869642505883281179618552895007705051923886357368721503708720619231382401364675224885061611800033598382895169962438362463987043076745822245859402917763040995932826895944148733018192755698361241941082419878628496870245260579995369099664868004303615985060750606184875392088464367514958878969719471602051707162574510135709634697084251239810030730714222601585803361765584166860173995175181437071719441537640088513389976771344290451370189584817408117878476725696866811778746436319368823791723420441996489299700683746742171970302983023416802200991988359965516565371059115998382276863403210014388837960216793179562165260635129723661487462793386233066435673304929675698360231366139419654235134621414934487494230399738851897287588098458318725813825810537137361033006470190093894774134122132125124686496787913944558517496876945373422276742279482485042061744230141316297556782470123914244971202699057837494831458872741791045157243938565562318428426363567333770856067779338998162391116232495883903954115699413751889548130111815890547747603610725979741805472138558414063421937529443797883020352720614333437178360237008063350100022639668521990789303877683509671888353384625797003559226079980409574401775323451451276810868442287662332667342333424903668529107795573974382439005587962117830610071905918880346794640765401067998364988815100792091751126575898848786244808303401598626666205912774890854511150256659971078540122261487888905670914221276044911955794949397685258535375775923398346950838701240046576243836142078327179554259845116176393216191999523102585855210428292835832174036581231752429622209634189112694018132751810205353226402922983428339811157663051087405978850782606354936999787896344757864774624036140011524337028649683414710355605761017285540649543906541413995105330557409862939220984035996497775894017491907739026628567252179327319143282112472735330607387333850381473304669789875409317428351221803790017651858064954836268666113374345244796097523589135682595681913350022780594389178754410225375921295808267452824203598637610725302598094325844557096135215765163645016006346934504043149038449306453195709884481535619429028642139331992930404374262383619502874681180733486332853700561343683108896587146783039961931885250246674160789458592368688190271161415144227751390770554075810734122496636450405560622965909019157123047078552686596495574848563225406113500245251835787365539759454242803220832452776114658624854343695374308787506970139941334702640936403843736028684411149265211426919753544011892113271664886826002205990308008168355104499714680591708037755814044309118743471863002645718419371290125801528709509721615438886656210013328124416741159125349004056844094914577002194934372148907191495380578417960091076159065774832688651601807431693517832597712717668354403216884505166258921320627080418002051184750940181287609735034084796102162686239015738348341082416031559228861228544683897110499275305775032132386800981862153347936157480862921645088280348772035970055042880363610571041908834668606236913812620355020994741051376450806115930709023677553221386305343949026563692313064210233642163228612693253506227553817189327698597132478866960908216475886613292515144130996674151392156401453000835627060729837987414308558531741132309494195894831994579605658745282226480647259294216163370666516463929263603168356772176145722079734813789242984108648280429445792804506453667802338917346251976448583646754316434102376350747715817891172247892005713569556588066969153585372042515133947380649791215906664935668196520442362533459116446479128557252185134946075833973629467661955061011766375853548939064413666795682284411498178960453993813034199723521711079340205544952391441686006039180580721887087661912234141190588180439911684624432762331506752691245473367550259766368340018919341120174291635768329786230299400913325723690890684926949744277166489722777139283975727782597231433645694043972567496741334612836493230785532956017944918012523527383688093867518380495452739546235715085169912276287594235558685675846640232548146559692357656397158702093493764572042380675002159370550223908078988006885761109770655504862490344191572575185530285389114126744184356103876068817119887182564368678612752849065988117711443366620978291715844125437919091844217519045031491532423382588321528876578112146709685942129683865107129310972801398481005002072193164622057120820444783033335187139475936963538685767025035029087787942334627822655147682771526224904584611381117620770634487542933640420700109349288926357411531373875163653446868141243235179643075963933504738580049848770136403110173495339084981609205159856668322889489289891888036198542140851502335967813102585728052881860365462585659712314117435839992004842922656434381208003261076350078920318934309790005209849503672037924631078820116740066499374717733786489883390375446386997993579540553460884023370832019861214582590664090261491096440496534591836377190100959878608245158833459561999505759017707394157287513782848524876080898658861145233773229690303291215846670024310672222002971871776204149138688942112772961093157180020729200973225741064035948910787800931290571844588894094928755719605664110817219923460659683954525285746429984088793074199110117881794596358640704681173689855483873075560451703372178541558982337270908679294628202777449611715721123031098455779364165104519457264573314137723029243454563414047348243845639545892363218993503911999571011263236976988206992123902800727894571163552472135714828372969589797984792477722235294984269590519684413686759232975125077890337236804892537738302506550270518861118424609880998405547299664479197997851197448021297909073528035552666601153389480472450856092055297595997529959439949996883755002884389544917280677254529950702177414985170638158612813854222407939913869134245362273854653950727940201634887293117618519125089085091027847893084545603779786798899963742821616054065442520817798003170333423805478424236033765710289789074824213861791310758423476284085871840051187491536810537550523935698591345146253033565386045428992040795319468315144236949643959518951950554100852120226444576141470978344956232595381600053755418998851693747429371165255337668455804079647865464080365449209205742821820245707054160189376518108031641125770360355199301014180105543148261426535472574192869857597010690630931988001044544923906623846789636534758405034762852293866990924855674055675810474334892713520335867468459871070805426663601392373646156809261982185397731016399710389729521365881648166838307231319148770469634206723859376298402313601392410808181932526613132335569137206322768712968028335657574362256394125618476443929498098263159379144091965250364215720442190384710188101057024093222125811452746250731778284850377324811209330654090882117492336800660978440665559343880323134376514660459083327038078051463342662248862672110726223960041391037708746897174473333398023516497740933937181744925138141850318690386934123687500719115341142096841628214053030460296254630219671900038597013891634134812871706320056182602406881563335404325735638825750792099390083013592750594751469951203924601241034199922252681072374956081016690236360200683666191188225429729317546362449324511463405158628561304189750334389079008868144080069325160916207609586128102025329256028515394667524193711539130741028389535637898160793273209787805154489935842194252856767910586574608875715748233954192931132234969994784710911946969229724340926526582536917018077596957940859501583780518642766476759217222792841741897191418070337526998145475858686866141901477418205366151122145159537976021124259596707290196463410643440942158927267451988555704124425778191047207230325772466290737862584725428775851842915290613293352898108465253431178783774094971877219714733358092377550374490285839238118305757375478987312629710111953611169437865888531825616441846940802273803539225169076247871549297174738136542843129708658548646697016438297711482531069640315941278024146431562566929585695103840282455192573350600104164128321055477458933695144201890005295382805317205515489515603511200061722480561361307219662071665311583932711626009181670300916376667332198439436989412344010586984732892064422523720159386305720386912579947152969356753760249962946122371997338062011493827966114769432497538345741089900958237038423464189827150951974430006085906377815541680249038335264293941494233845394617068609870129209813945137411050301904590335987484018427578018019606527980864358361809875264087467243772856471542183411565427324615314897887621735489065246573745511011803845944071670588520434232090286716528138426042162260256862284987203365871599598324511320045051469566912685035498007959659263805846037028464295105092065595869464119191388648677769121305430194084439382203945351533229540885723703239480468594737480612619786801251293802870789567400431035423658231960845088211598464119559020014094884429105590320345244207697003499684509450910140040960054236427021050787124913509605483509574515500618319979539562920346166437091188316830871595459928850918887599413416000016761441717637234639388844146325280961146212304678043587999633321506555690723150331106265523762192489602169316683289650416861691390931234694903644317035151749734042059993722837773126178155047512634932936207186401015444608090426193065254646167596949426877028011932856393369950639801870801113048881212775348785308740825470725161271511633337943798856359538386766520588619302076311336918224168533621161040745653323959291116531528580734757428564931830461680072217611354295029508386235782276005801525992482515691120380292311380865608373522959912492529883821478839269325985809970038381077740840442440180531913746318106587031855642271958930248949674733629752985695208901274289300392364687354924458492832120548116684311390042177753950643898274529293966478398593392464142395535731837181241976943159661842445111733420809943510804598875782122585508697959603938691506814309280200482039317580285089808050340789813189265937561535206552972013079190426470576541725069310379086535503198867639808530801227411048695698474963731586021179082006478386285742715714560535773789554641925828792792692803150604245649519943918358487658184290796369317552758225664613892331402428620510143274127520376292224051214184412057510391781408478767674054779444897768782463740459913013751219630380270615865401245539956089452512101734372810241533033371584326193809542171785792928454188434662351854958289698768218004962402690527136142073649173534397816631611731957624201016913272803312661565950892126835322772561563554163941951423250523843217888500878948967508577500917479277765956962181440207909825361153542343072490619922736451992746826406953658886395419533999249496444267488161193232089014340103767464290017060382184642993261404325374376887753295708067697344522773375778072083469496766148611540841002289310952454300894762610364247214809583949792434435676829021302209232627007245374326788247717203907963827648784289836286467624786761666947578028013320488142188601557831722262714730012714634867984237555506305116734115385274650091894877014416699744114940140521505883397827842921004432537689138474405900969346718263975713838907048487917355590374295331273535926470773425882349710497596986548231635214055721959336494786459751767211736575847540854272287299660998353032285987861399301994137438008808239959149907481408241522480106928844317386437948361851193185350978830011973578157589186341769876852394735506879110149716701955767200788782032409258016698270633366892866483859913231252058731632934443654372681335154479066804315675752411939921107942979457116891673046314053096258123900615963726317268975796098375638104811137750366268697990070376495718691989005120289478222878990574652304888909006396611718307062491995300020308250851320181548256705784389363894300514500753296130865145948004060345082421508533349176778337387057610486195321104704820201188421440612899829678234153531780736988190240367471738282708677282913228558236221478094211684435364843841300244121627804126995450080000025140746861243852079455240705617837000777207618329874711747293352265025600892533020939847626790108307151278820814286452838798398318207497201813997483772491881447640260876904022999681690615325125409872371029448489785722311928387349347067632432706986097449070535234097145996645771470332917521585125678109462133519423509578398547304450260431237583508285495719755699623470600046438847573650899282561157976181739921050539637847235480711853666393073339945436267526448980055429448783819313592338305941465265334250844935641196110771136876101197084690371176122300060662405213254634282020377360204759737876115887891906050439152786252037312292165744362807886915847671890116986064301081654839373565042886268860550093548902099993892438458892403045254521055201891776500719622197284873280920540411125344046687410905950889548254600296378955159249167192053756895629547681713904243530650624407958115641378549224431507630225984966780040368632263579315541033267839158402490082283055056050609429809311448330772013834945076212160480322021342150487206453238439246811064841078627098337470362735597298241957337496626145152520125915341854803626451708262508516637823681063597423665244623020134854808131594571710660758704878123770222412893794938012399875792839868524620256849376920563341359287758936446501656983303748101630200444014146678666439468023510262940935724495502945979252145831610071517144253475862135223781727511681664018310903191935303186326518347809958745093710744244621450363613940088246843324631625004107595855867707723411594963490303816825211577385686020432321432529882595961195906122540640139742953977934194867319697136553620663227375868612699858544814176772843980148296403575898089839027654525248657020294025248498489168642872823412856555131084410660201346283290808757177210529515264830374775550117178314214334692032601049358744082193748867988238432271451604092877353069350516152665670295409735745634452292768893305091794286219006923338574186950263970664021358081436640028927175540908579415659581272683454031532794299310572995429539505622108121227400416813966372245261432111306638177895178341430032314212041772589878676646089212446342340062779605950890771730223569632276819713348243705919160619083836370630286039579682694299224702773338855868212400924593128637855590878459498042774118106308138697234900009377877019699130080514775495920943286139438834803370308259375161568226416136643089683422115318004222081244260861601502882737614183859678851160797520496526573755036619547185195390434809461601063463824916149208023836840171404505015095543861323591051958418489773109540685739583008009563650168603064299961173124699320705324207301593955948014372253028869732688919259410955148080575843289085027630025641307277526686946784862036922402367857405299064926395120385223724091249902208938431082545677719505501857406558007526517238190358819423603763644509369961797671090851507229791861124276605370069996750720271049655175401632728054211498160962208973123662657917635711121553090472998164514090668431810420545294390410902028276385075667810572817535843892152579998549351085495588540086130892682212850309606378171133906511559939738408808294627237614082985572371104876815970797727927828845218341204846284908750829097479105962170169119478699583858741592782770226128575393475181214647120886801255911986803055393128016007114935053390964594028758351920358786751621245113764697656323980644341341230424625646069340426418508838072167386175923952801376879849483950706480587110854255139375325288684407210611569503165176375172744119166598483730919937335318134140363429719507004456044386924082166523054246814722871416804458167025675750609902666209570794725459950954627004994012534624671426708023086861150886757582788587905994461056171424905969297708802787506647496963761455025877659146357826315485707428083007521229512028530102017481767483818355413072316436765689024205628815585429322138573518351954240699282166494138012746996332654356924149842923419552419176566136572615074695296922331132517677402336161338144280001954298851116904808831092769629191739473433325714568397605055059464100929060645742480185290518741116685683740647122899949449039074134063726411465514783767831519872268475892026913624146662337552817730889034015099854900888527769330867125216008933214359627764822578257110727884845032509497090185576762587393032755759787417588282844010168893475387014684962923409998274321770429608145129013048013345609912994767174516216618501311855629288547666572498956310514345744764524570017176357516988694673562588784215940805767392213443746548681543599868744735160060083052020998842666377408387526040495560758445158344825890620091380214622399378610048939642454703874580879525712994248608239953300430337608078276340337190916818621974021984263461467218825196037738092657323274645724152851039144435662087291222627123293628748481188334233695459075749015152842254909271113740945751662000946221379634630924639971531659695515682542512816845728104739911640664598419677795074089387598243112278577705852506505728897007872357257599156557019350785435805332718363243185792487448801236280267599817553471555822963465299493371607376589042385754693067860001160637315248242382529645248991077527105336743091906109391173450750015134988700971306573033566009905987796396048749897859860488221772135895892962245580528899380785970219908253168926886129747328453247302780621823123747712708815871626078268920197217888225028769031491253317586998737601557050118161887043144214148528870588264148333202537540515468561691001900050225451420098423455901636765116472341233770171304788844906025913026423833854225196708631158030965067494231281819871300718967510237228901794766147788062985754645276494825753266563456449947148577246439794694737269308868499008634102022444594477985977681334441367184447037023848646303346166042545274236956473954241094167993453968934608711388510788476965066025555073665589384617484649117970334614540771923596580574377621926971709729123957809140101524006106166816620178171406275048235396406500204138402080921621593996560789262368733521205842011626211084459141011953302586715950448866674932792253850832919829382348480611713918894292234231536605708233623927551777124997581825016287059331085805557844442541306856533563585625965708100498225456261647106431686474099729411824862319526416616893814372610066717659610370395992292080985359371301191094711246431339351592680858587419822405690001641520679801111038518110998878718041342612680366302681543730726419618398860007932316503796986091758034171183644249670237611511319719274325190999402769441210497864894005428965137311901856369370845573001032982676764109659013834823816843181582829205970074002969195865585379069420339996646808200756755541106522954462055707303743268496665755431992316848895378797757187214210433123598642649415365473609022411590814414455117355996737872121673123956474185297795667463177986307640079086532265781817683173262620296734504268149176493669341281683109121854891882297579406130400036810704625786763256046338834498468691732856371839387278381006748323616956529095038308601826390094873974346246731455992657373317851146725729543206690856479438636553746659242055867580321093854817819862899284380664220467548093347853204455352874316788574125971325788789446881861972783500209881985402079138066963110753212482391164691389955344895111733530606804744650399271866008160536149333193639676393074292227897514863988720958321572747728626053842162544153495390457994754990960919300343589092481521552350051817312799873238400481152864048399454284403310795538572618472523280741794410436105205423467076242863103192936182096924972099122349556998581929388038003138939726873893527944301284446681209908288882799008700792868583135652889726073092933681476291304942493550975094316951736983592509110712767487416970010348945861402182418114440618610812654979622287096003326885143500142467091208244360564376428278778031530670963105370776472738932167326540416895665459221855646938587845095427744970798724479675155587358303472785824833233727489119631626233373717058606736426959496837293187140393529229462278859717070790923622904909514526809665168477436720051905946362548042159781904122560791006418878908709745448115523747773938110606294940714236895459994975232372905728534694597837026745785448890639347908571871610306116721186165135858066588014116503076920782973994770604499125702869784201069159371771046886426279216930582992614349511040538981269595405391899988141981104832654132509890447935881119714374426699455697551543694134211511522373117081750174487954171885918040723355510065398220527631293360512739675774630526434414535983627423950111533622939762616475216244184638579074081111923921855987258900384292039181774918309035192368386951489207240347619789101823511518586771994105237331459852716203877713250853347829533563081765438145331087419144885319028456724365397508797637265325081268189672233791630977345904874492758352155183521870754164346642344878367516346031673352861514639022713325880469895925062983906344812297154056169766691480037759786235062974550321513288285547510664334386286860146623989747062967672360007297658542862927517485729184272678905447719098589714017384416695914377101391847708312823101876469581098411248253080943102793577236903756046825035382077048995239412669466943156302798532619013501697820518523989845781365994972594949859704540556939144618051265569372193251942875884634431498641326673520981074656481805458657773675770608104501527647525556037921019649915901924619443182514029822721287532486335557427019596522785742168484536111759222959673516928335834030901997509314769524636440959070828057451125907789659962001127744530001620805890345954756068631381768927881835841363870951134257300609524146370490916685084113250687241707098103395697489240334163354316903807939162431235614402639823245547578371368086235597180655321471576455092184602479781659209950324284200009460258421192572495787078668390488089666646171906284121660680258975694581605588443457773827812435309735574344504977407211107917995422848259826313237200518276338245726970761554967105090620662227807329087461573027316629499122575602053714673432580901962708751490423134737299923384796778176332810354287775877231238141095630976302179656929927142361006172644793657680489153090574955784311929964303382216371747810220100999919111236994962833581476548990847378036328375836277898108845957440904826571986852704216923291225034761175389259160525588053465686371426347310920541116589682028213363601067548967702041108798224466657436404104254633006421543829272183030159489607390225747443590707529498593293788703014593930808636582186794019652939097842995039949377639677501640294902941176569069491076203673200604908024161286012727967007759199934004236343354955993330726908360456040620197581869432186676651660573017107860352735654371404921228223725753905046026553080897128308780870994193261737427327425398020401807752700269876774619938423863119093319330224277319019716359634564309588283666446100411080124553899999062605926971239931392111656747639364841026890147766204590036569404421058221361085186297505721073478572771367069138308809139763403188390417352700884998084651520112156633937287353550844574695322087407488794910740787987287345366652607363592224563992089336755051862051051053517426300732375989341800246519426813291350664373732420357450987042146702782512932115228303166936203578896581344224229204355563361556899541636705826681174312332296900413787420723533903285790625243713741848969649582143185111628413542107333955742496585283823857721343660877859065733362086918065152515448749970134710428119305442862086683812053902900717028801001951179349046011639115617549915757631767845796206843268449817401735242695235196248853175307329226170129676965750639461974301408878017780753345997200289932664271520453721308483292304022732884538560578525579914329709411113097937652943811156934677539073402394727143104859149422987579177106103364735649779143408368525104553381390283708591519723273436101841680100887111614670456396598805588877629832049884127788418459198156982370235270448767656478498831517488504147843413870927467629799407852914130062962087680208193652144792801057303566347351895788330901768771200300478024698918046666977525497562416461981698841241898031739526074668132161200737058081945282230084929365251892998073494196689418848052588895695088197153935711084797783444829153584428520270757903270258407718968693471426463159421917221769051475543115315677643876161926290874669515632847730157669620392457177312658576797319384423355546687634919889059084354916544902438298061433490555430265657893175021636726719410879093490535155499748446065781045135711295439407708488299976001484198389236472466104925245009674562924521468717335786347812610432874688318650976975918507464979940775421070014065408522458509389342117252585796622090253465125926058914919233201562856488824592782760110932124635019789730122676960986903046019041697596570896725569822272185784342525591076590270264422278201735176147687553918766414156008278068183792992989936228947032922285130290862447153514447625432106654035551091423538233539473532433320515393000653325891914025894826379492421261508540485581912484912805806452166646660825402416306574624323364594672715354315678516838191522464301176626589316943545056286976748617663894255683229439177529147977794055122093458009158890535754777975225045948040861532543894912757287254043821959054415817845519649918671662133914274357823132262372710864361445208342246439285215178060804901329132921335176995408926846484366121011020716772883159748518904849578004577373543164462912359486965710908900516966147566361254784806866355169282563702580957230365924798915573383054247097961563818513246354646022046443239781249675407594002926575702486538963483955611102598593409091429490021673837209208176943013786012467083823944052253965572868943099866789960485631060141128224236980215820496861019768568870723482131773961998375482536880558815361130297306789018576507125666649191269443365930725567242132919368617971804330638159829090028844992072348383909284470823337717438660976219178907782115802068423286085576611668598760518194913061640131681054458676217005774917334294813764715606118635189052087703287751329057232604519276510224978965017711542392803296154122001569792894682776871252695351645529066736173747630970730882493898387304372263005154259985153341426548986113589204169355979000968121516446223291715557037101449860751056087829589468136570436246527965750458688546431291837218818869608530222587150062001715979724764032984333650061162656677181787194032436527646902619173170704370407855763213743901189903845280521193461008931231189690260329601943176185718256847969773537212473236804743723316619978876582740478345595697256567083411545002265868216008457313744463846429287994740609376845758123277169799719245466348668612497966427682821193494006346747299353336975874179254327719078079452589507318672430634909420988755205655733900963973403194540298478272879363020704859050173169295523974387449545037337245434530696517929165281468584927863321340556601346600182791990358332737386308641433409729419346503238957124210964836233010081850819779229705643166654332358232565213200705245440623637142780434426692795437035967406602504944911427447090185529583115445852494336924016870916329540719568988446139821881752909407049340217607205771006455706825552529832226132639726760081083585296341709219591470000110654188179130546682175053070228835630958908413156584496721890100381264511628788874337161462212581848088130687347723560557724599497504658275642734441522538838082742724539483054659546324159672927621481807844590891508651928389009730612685458176444606925624131829987044860493349203971870068068391631389230636444509422377731091320569393530739988047872461216333904538670641542394804128497577977397024505501589129000162833703763102954349835378116964489985742459020244210202173410179455753333928059800510783684252469758981001108926701870092449653360667845364009852813835430634013206757906543448917150760241647957555532425450181982172982733562379028382648896116225245576678768353837991906092655698795424755609865642777094636411115117506697784858885113127702273337745192680698688718155005484140718544368691294774899889244386330554726357186724118448777932496685818340737885875022576236961158369635968040338799633412110316328395262514169588687924077575381250031069485437835229268380246135962081354544004756068061187669346016540136480299016301109218548040399809222812698953301058093882536263632055889559835143911036777222765372116969232317266143724675691246952382601365356920768780353163838224217290425291172556058883575984559316261945345513669999197686801078401147405218767499293766488894122410895722862960020756450188462480840872659593160289339262474483984435537549720812284989405983128984153976940213873576383651283111467434091373536023923973227010285766431094360529657353889278391480885819076551555537263850177485112873650441764994121750285938532162232527840858533554060910883281478862625303188364224373661873096282126136471248569680475021258536418728863972254315642892828064323557160589406084278081508464284229543416861736484989778865214127429136311237102266842311963755398598491097636034769858974282429432343255476023927897065376109960419395237738127436818336256341643684283842025525759276923857290631256780165264321102675861096998964428815114638046371118634034439271393977188966537481538106661409100559647970518679727532517205610402712920489770939257775903759570669433938686470798706286546385205469954914400717630307924195561484034332775563906995964896834207014003218124518829544445435153145296394391501120739846529799760046834496537932149759314341589563137997786110381711038150696527317401186536514909514834002110415965393157083243480626515999616983686413572590623647073524214379969184311007005780276915021514327573400963039121349908304873566037004721952322652173987121228334343675462646406252805675747503406226897137061754329006362083208627452663254185875897563299451991095821006124452218746625585222886318139025162958630862207832809246881633770316549468586113757460873976751292902465223923975322441025625893826804491945313370229200045921911309799441874489636783109782273183799672945157352966551901712785172509480258808071795056062328057942771635887451467890897202089403692356379615842305508246780312082174086177201908376600181842014778440480857926952202444891205671949633660207720220580572384254644887921096478030915102668639968585039131682737585096991654011472763082858241810112659470531198627764190013817224445887365545016074290236745604556266890216683240675673598829256782105789130685374859764481086500101352521327445674776109284674921156681165878769587730678373884077634708748590078876079216243958269494341789558842981791584067343968491644132251996654918649040194282804595966092975403160128871804792101790322587048257901705212046156165736796353305216859180970255094565086708039896105021834321073951368798817734510362337693261367728278547998347019986215944728261360376538908088632657062210712694508830642900376031395512951417288105847424952726665729285005089815917497322296191109064540326706074818435304312501124342830701320159629541114345167975269375401455949681096282504668253585470424420744028590174032783407954664433363512015634059812855591796060263075768241112986786095727491214595263321114403964239126679075001665654756178394096300405937494651553404894224487234158570231877886036728924719557623016806463787652621716135203339195203531743212171643292509479650660031855929429893791411326165398546760141493423641584170348781168801220397675164462339103417035094968421502757983147292475381765091723195317075447470071784656656707870429790274446048176165315016118954680891622835907856185118239335532902243469844862153076442870802187138957973262916351146421579750213856813879916475083153674653317621576349790996424189745574915157042474574993277698192571886341317367018045525043059976915576208625416865351588878238384910311724397887145125510929857606304257622355082954413440442849178275604878928058501859083555870411525353557394713598879351107167194734935742214945739899715420463689386218709558183265860822963491449592349703391270770693119245497425311165863571089066967045965135382475855065019653834785306136413012026664339977588053490139769423091831275799172161075833118914724793641522334841374680540948134981445363467484941385663836016425986673665942141252863924177779044613917703594582299227580672704220212791957428845164320924149900515726218829836853976472671739965433473900784065309884022862551470069806736854783963781007196087705256934684269041527385621306459755880947261968228648060122665032178669177781305399203674124048161086685422706323634244023516702444790468235257928407741747157643037209243616232747587496226323000565633675170896365843478339212236734030659245730143211368065295142792256417618454855215509486709690011818361548744066905528366510160377929435477392746169423905296217737326111809443334713484676370644200435802188469423130062827463982648341432652209573775745529069136734013609831807053832019467861672129993169269377092174264636612178235463158694345882511158407093616802448605657140416870528929486721237193415657370800720761382262772505283365304147795301611476347335290398292042957552480135662246463163678962318597536644449288247971810219100595363495980961848071320855807569205838893049636452492042284941695162795427575757171982767749823204214394510350908804726813177612437429054975497850723978330150343117723612022101677566072459967262368037483501808354775127100790041670691319460209273193295595276559586655667122517444647009007219289131402672866406077539000857125461113517697396461924921861014068907008742712124860315719666073090906817492008222094675349582113952910112652255504913571695136704355600860631022309589875935025166494046035960893493638460771603788307588920710608333428575237173140891365442756048099089283137608275267446940016789831882680670366676102619640765539660869433446239566681220491800955682882960086617389780451738075118223326635773199456716904885769057712885723939568338685459248943952282125068733337450416016047493394131006730367164113666889512742576032851750047912772887078599342217511282867928254504021279019094758807271849802858714962250691324974857285880852331487700754534649323231069819340420195712772177938117606035274358399908123547521893183814298304953802791132263979332192935696629248779856849405385891426065079533708796629047226172682570967992547544110314322399360544416968935905218158789357077000767872207810958704958370502608929803215119204532029330246635976076438096745381908193958651589111783952302248129885797877870269570085089874026718929721118089373461206443806182077292671806407242305430674796934738574399288329328722510886144991518353816005493973975016567303191939961899321878159559675257622750236004495829704894026737692558800196374012161679985677316299179910963898708983816474675221730924937575720524745563974312477454143657823705410740038699007064262525464241326874453530141158755560468786170764804575327435389178269898665070991543059475930154862784157239835653285888485214313275894467636823866227120611412455391054703695471860987775108982202767473450615546708925483422110094862454714205721768874134703207645644019264493967093122047407001220131268140752970486590518453717736558036584962522927552352609087083209599389037760864319880494508552456915808973839097690022881375394333596444514773112075516325933393283865290938178543815268449286397773435533269571318751776083504426299505153440497820556588262030666170781339339838183742047964550109673205719632691415597297726195544747513597984276449962679793765325282358759352195852193573272522048648138927746731273324248235453880926340009422794816023094581774215732950562034811812512453460736220155066309227442377881308600578454511460804913892336064222758791176942129469819752550232722527514999330139289651155817631407772158151712734721916251845248529727374394094047074854967147177324500833420080399950287527258143050410167803935421063360936423853484336808988031241501461296535032011575352772154444086825821795039952004830791224862354351878842795264132147601238046509628987994379794652742358961857032491625737348481500498192362379249567549029380448773888780373884893940882287041283652200392356491965109094781560086494425669606731769326705892546534065803510192997680332656782811723362288263051066519228823863985777572540046305094645830859215613937529020391457500831398799241959906896275811874811294300990381143148784818180404451776099524613974122645398463863553203776451339922761780591918562009198878324018756873174108926603825421232166774953407495930497633474562442795035654778419130756814698173368488447063297528303645612467518217154537334933496011696990551348898305985809409727451430668844130018763319047247182314361842396391538944433398887656960387559474379497739288127407870369200423074970128971380437646239695281488538976506677267466790232348728958936799548573965762904116644567193514040098748199488101469173683797602339604903337514632060122209978367203567691866845446067348115147570487126603115101927589970817322698817433948352895777685863713284484929980557505192827609512294754012090850506111701070724148316816634756383775775909175397998089828723252152402260546400538705741635649224035828791327638052092195645624089054386035908086142901180634058645384213809403589280962028165590018573330339085604626980577848071027541481859182450012191486205564384357460899158829339543553610202479990034318949550451778633670664851491169158005370283709186019774613818203607991740432808143546647649643867075207916399505696436987570946815499944358236376343426201096622801700885117341985482315475010529114676232295081657611467738244170716642151618178700676567463920781497537157334935544573865202914953965353192379828987354833790815230113701167498466306859393586839162002714520587777478290150918276585342771268319107590694353001131030745456250843757696658850233846418123032081546341148061531022471410208106837674656656447207945560240545353980195812959707842619640598483376335069614851804148444618829766270253311167123787656351446241979945131606131332713999108836638675099982620705032641287302690276817520146456241756397722980469738995537314025592013244286892011986628336056429884642179569194466766982386059897946599435165820017812837325742870322100276192563499109421619911002764127982945605832744258833419110356906642446896216906039783238947581066192929630643433598827691748419164150827763758238782745162687393519752640714685001314518411691000139660925200700086574830010037187760601821425235377555784387814124270011539176031330681046210767701170242658543459218903289490581077457837314849650564133200466428240607611128938839700784362536572690515442750887169125939953640606438968510967374209584568588599113087054658268458193251173364347788509740030157758923562475821773420121929248572357597656217701802313536950736110405026331760849520842190324709882247960343941830734846784861981840903877020051587772743862901834768725841537078635488662857819115986608295960699389266321067254111633587052504345054209769978912161458060733214949745654224433406363738284401905676681386349503851197223577903990657750299840147920900847367505919188249859603692202324711007617086482979369234755190262690285899379181915957101348447062377400074874340196229774629320137866627293843445098606304792408398671619807109049694820126382694654727407081856681006126381337753863704534404428069521215743843589738413347683025740915956518745932534859300197542221144514113448063551424102291062493340281873207315191592833828534297266939890245088928457096680530356354687903769705942377820664176988796989176516603817216091416797120328632829390297187526497953178729143243364338296454892257805268985786291020148167586655146539069194852957282174970083053954457283312427578714297062347865645748309555138286495716806674126088154944627383446709037809336589563146862446142392558794067640281749780489380497292882557031044231625826801506500867842724619073546284816778828877803360570354943789563408687468708932915825280752547705917830555971541559727415188334521917123802361762699267392684870182422133946769083115717392530968876381540621792673151195976225482375086310734585871424533897857162315314851145257546237245359161498269798688836529158869309870240118634607435124848103807961116068235128486001487035021437071424979464680564485304933682680867499298980171132512031244878291354095381660680573142370105180573269301352829310839358124988711760672997227403320710353059308109041841155554004031409764898376339765109443190728453586454226047263558668257926610715264222265381188582187966364320370513707771086192723797673321277573430191090405855369585238370134744969808992170040153381260287984857661031063156855769633506618004511601766103164604740780968645653556485967959393231528798798737731267939680609436212958730145854215092872768398586845521903175934618888190095229445438903055156355053381182881177013994754927962612841493768483814885356194497226797424604155934374346165204386741581759361644629743572875926777694339961869205157546980548827742472905744608635192161218437867568878520701469287164417174637399849265384494460805057775347340655539844481237052716192610075918259022304869375124504964213438511577403483270240555185411755178273216113197988596955016008318478875802820156844986166880974480279276029636279573958613785462668694600017166220036396143215599702157765852118155378091779536266347954160303314270341581450074692718913344841305686232164971095023632450457184646299477793693836634037028963389520001548376342689840724850650873311365771495511730048960074849636704531865293045269313736339120252948878839359600291573930859399400212864163614821421182410785162496534061304725876127074745025442483998942311765104659509943214895159570861165389028625561038446894410839254003286779556981368133403821712559946300765319605554107877054931613103170106735380558092466839455754800150965710312279454063244512948028403655649448160931487573997840630903240584008335026459464601753563852173452829290694485207647767147948631300319182178662998493385370255466821156899738094872190215577505226771068443183797229184507059743797124669222827468230249957165545984126655257155380696450050188099295926425307434248301603867615911475739822196722330719422958055002986393709910875692498498990281153594333559270156825835141255637275709941073862809349735842104052203313095159516410721637284253500733100634918799214615983517935325202807346228595654415410436534164287727485902549346157728980578259368802169886517592796386060742885625745809885556427364277325833525571344098766658005637974091341691072940436495711163501420257704640339585253869271740087672752381978386776694680490880003398125979088584525595284089987073934729990974164849598250466172111450315947803181064273564255811581142218621374490667014558732886002517991331063478860475177816208640958651998240469391633067093402218289670541002392226803897030670320033911283908780138727724889428410747616698090700883333810684464188141303289319494093234682617766696800100462648873626693166501537595203624399636948422397927028976334470307894440473934575493595379889574172557956339109683157262185284809065189991592296621109390149879762775883661765658676084372449335783433027902470373620376259437327365928914988147897989863087384905699372283657585931522576720757722844696177915045232377242810006326529610869099046411330420711463841891676297093003658722221771583689868441471899597692389037537537441943520598787263316435868845937149700974817852009375006650857498034697807224693614107978485141062937662874777728554533734945872192788858469288627498627468834979632882789171311556881520738270798443852227330796545022552234999517505177096140603757388678176195136865185167703886340472384055525453156487610678166293318668360016584952604917168489929895641521574183263035521463516939652631719610138265932727639636207974517338774949743000064067792163886533488260149173441403336059135842608626780286992343688279876654957187560299579412367653218030302878303167025814594586246298400762420403898215576592627630407227346403037895717469850652397803636883591491994271299107973038137953199999303682167676754439655279457188701179172714799921954588177625455225688868550699641270867179364438251294336339082790430219153680714998887472256877158361517969717771743398555774290765387047807260287826776505595226125193727972246896341637864421991510136841890717201622134987863470938364823826274355026001794205786111553610532737387671668344743068250725733057022179620710139316208338216945607116628513072827833958023216834246273827722572624362046671071518575302886948386523617234084872678026144159004204950995383998185064396057995879957112843849495005084490059196999962377889251542429956816875852137240295458095012429780737468398903180250522307729482293554477621080933395619166915927593897016714129432958362307663606376904746984040914695457798733503631550435918109003419685355494872358153313992465147109341759250649366877009654545562678054028537570891720820112742004723652648916212430779787568562516826163932374274129993986259153436981969940572714144765857868329387570507088924576332321345192223305968995448263462308170315167225142329548596813901782634577764490692731223921985479439374180509704349706278901243519319933959870371143232740561762339842267844411293412732049882074272858529844341766248330947508903828063372565079273807406345699646560879631957489801054361415952169290183830463506648659037947956684630615701858405041894070495771232637960744375406649729321632731809926855531810429363449645395471150723529151354416491502262039925201710097271763493786883517745729991336959860212037249085811236921951696364750804800154357302361397444654917961695636570610240377467873617897739478057361898481262277282988364650661319992296502640726349998687820837290768792606959991536083213532680932205839674055308062298392355257859650720671373392216031124763451254688739110962762773286030346776305819792941918761725495184927294214758902230907436119342596565280920993099209227666264982705213999517471019863467296792739882693602139718490604036480139583834633060764306334518124032081231832784471710765068537243388068805908151553236341637275025629296327203069832038359251085484430789765850562758311050803393349440183425364040423117214239373902842046880259287719433338394663246765406661579609810309557162703348763781070134122734209368675903627967925077306305408561003523886240319143186348014749577582808739245272053104949178514572208645057920033580281635176859246209364279167455739798531455201308642034472575250489954271891502797002855893343150517096345744164839296714373534708104859657836942923797757175708584058875314306728072129754330585189324505492813808336100809396066263174351652874483761237163775166108828572659970797560567845090841603412980625604644938433634647666629722961345277188372373308841288223786451455752077309909102840142823243593805922589789230587320027263741710397471767587273987955908561032578681544978235038720214506000407665725401426984118684472937544669113936004719555594870370012128235812754630914681219575798274254640083986316309913284511911520366242365657237121396537754734460224383276975643451022559213165722371701283096375973075048734759626867586577325624934076338522935960985779871646022527747162404391672144924275570516868086141753662122969625696279710928962964024491910777084818165400943423137578733101781574407074774075002069872928246946724891940570606895578160258947646128268133703776825308189827790822707003586840992662550011769306095839793943151943317132741110749848190960590826522449949640566524559398537669848260174556312229197077816665463875172626220763132610491967839840856294103008596759520917325413284436288054736167472113444220398094621092235097912959399681703356387726670214253792529060620944362123903237498402957833377865559470099885994969374268993063805226003111550721025682362181373127057912863201360476177386602238690134584843390204477781215822412320272381882856103385723911207896446084834120627890008271593680199661811045588782346511651897667905451652611400477307086019920512520613957954676567351958704191126949767108261008633372066130744856422963763303961712334810763970317544688765733700050998277664116327621392375181307712805594924479343899470703999985341223424250320015720574598655304874473199123597604406653586607609810587752892103387364143680278524840834651100384663702634617089248841866945615165232395648015305511066097770718774311363626526676592421713354153541667216422243442632681452715227112517011845865156397561180742513116701116274983929182483467889719956314016622129000625672150432571688137707893649367641980117848295666004817366831388400774153947456728886722860642312403504909944380373012898460689868424677312070344681551763998192877194411098283999126952648026489999593037435954860553547860185400662785844927036768785489431831324129485959059087867219839642652376971502206673469588966741742297413420967266903990967869537953572482074566713114286521536194038612316561792922435550778818707214469392039420647730345061695833909223131345564613471717344372319288875612212895427071170907857737574047416507512835299068245428574284804106271670738939938511393783850197557093746666596197737374790750732735636903985966292086951551980931361620368294230548496344602653496640295513229161842406123449855111204591414182220544500518914423086245583654337984057458812112657867133142758784356751077538826761698699070806450564354989477717737756008517865554273634506755623522286578411972381180057877053531126709701057752723525177057369395311614773878804667592540341803881618108666229369594557389437252398093207531018611647326460879505651138135706437019721717870568625462421594105749043507671960672264126314753840055340722379176546962896714241453763365036710849783369415878408908816062891404960959324074356367402720095037195684894319365784637569616944416553674932342407582994183870597276679033365604031915962213750603478765200452642839123204520031663151739647428121335501693595160300557602616068369402599119969470084441078464986014925964160633105117928251000190511323348770889641542609448573211026060691296354649142540517059416622938032194144677610496082144009356338382515452696686331149566521083267431684015411247419240242701729969499585165070257660127402587835705166555742545832591778646484762477298686550352829092568136180143429451155446505660578786230987913276424954119146510476522575655011367597796091947479159076035213071214033563088395812344831581439594830196386107762642836366844275757069233102301836500662660037098993587172458952069635818852539451532208177868473814846926586063488782313552635984358019404824631912403784089285341328385535653197849367031559866425660028025755359197713665488229003386637437032875007116808849185530041102656740018009142586665560248441114362518353910821773727591050106921554729403291791389943597396661914905745362329407728390248705994239017384382866242107081605771254203070821588307724239275519376019565669739407980550918530270212077132415308625983396852246403977278563154785632826926907213839764900891146803899377364845984397365475069557837859062225283127716079877697551347722221297434414433292293422064119418185316375239721202786219932241131326149532429602123092307100936721494997577841360837440143775885270078768260087304543146858527249675013989486325214623538208898017420546188158387916801776628333380457796396696075945382954342073676857304939328765028015449433925998287797148095242257061953074709219692984431911833459457950492612507947410675068240264054791219815202730464418083481180718299016859245377947836421375992299002711271870095264072666013140074077461792250128043441289297237470486436416533314532926129522739854334725300596184452964401532741445257290862501850840454163848478692950127129622917408580324410871092759692383451923777298136265900116158266682991933216030133752456174223975287526529591959546780835857766127348747188466104147143918031802155437722926009006273390991350177633449422488196935608697556605309886670729626879009083125122742280564051565929946350821728847520602596982171507208506317660953145884689111416673002346645773313996489905755703531243979712455231081927252711822576010153889725668071073069067012757203236266187500235864358144676309563483811863263081323637610339884153823193469285833910596639803255447025755925295253165270794746596356309064159614831485368049853234292204198740289153661615810384312700183459786631797869172239657126189778841932494172067879306348111751252813213038269322659289136485462991882668664254330011770459263650392570102072858679831076517327768929535716663458819987915578548917175300169591359200667791381510537992667288745124706371637035630788861732982830282695957330221958762984265883130314142749980581451645502814773100610621791236264081974766787944873480892745151800259421368871138185645084451353323610875812855957331353859371198447167114556443254185915299157400684482031740929063853327974282400485446292171807761612002227560029569074887368250462482104463482646035564024766112240441407185692557913687197561321921908032603456912489916753080995647925861058595018231099243469726005030287600901320833712973664227702920080116246548008916031428719265678954643472462653478982944134716448813143634471983560449309401701956846917532072566511403844038927446537967329527735932287873468135904315796648566801561435295484914820526033690548033996315726651853836570822344288190507563880940325093182183462606657070572206027142226880298266527014024338341612398378334813333695617122454624706984668038089565727328998654199889299187536100654490790503254472874489135195060570304303862603048934686266470077758457640347652630683616462631641444786348093107980625834501244790981003766330840516371852662424906939885675837591905387775536890047669575895023456727850055991036383539855061291122163813957120865013453860697884870890478921532187839192629686478581321018198235474134127103022274518786600599604773110829058574897070346847063958368144525009538748586530733847846139570852526390896216182929530081111350332140453834963877003221963404519014777710134466873861027181977650835858198928797512582649842398076201445174669043894922957790636344658446550648366245481528503542557090444636722329217024242662085653125092224047535068410861528469678746373842569178719749530803476014902187244990346532463979936067936919003809516778827501499217267427274154321711144101543422425539948351908386511943623786746181503736394109100752299376334095395686812366235699922822715747569048605030852554956459748619012294425574494328357790939471346893199944922916890407886366753366486128753392470074763704704386656378864296466963233010507892865732668505832270259358849830396504201660433481417401919556301529577948874821210926419679552917514620792925891597889227704909278339316416317319439638129212522811787351113891781351488922161169224006172716595860962122780567686909791412169007390680675526179596311386095380576801014428563500247400504409085913006952625688456759842929481176054923666436402178997885186350799240511942095214137140348045195695401159950540828373062325771516946877603020019123655032127404509103042936214064668108325453845369525764118844455013664284491567436226160714831353750166633895737416322191738002403824993990579401580610096247426854023068590804298448998059466307494490605003568711841712782955167860614576785895413427595543238826283885709236418849111591601158217613484120252730575307064708768217211503938734434264813886613313029414545722952625087225107908876901584759985256846463914568511553480053226303149522396472645168674524879530255027941522786022942156134915080081752350304370072366991352687351860816707974796673090046015080214279997321690897557400274321609573873655836673188965873996894993353844203049589840803295428901030648047513981202572178490165698476350422415270611434483667748168701877356093109600952211164243386441126642417982966122609519146914455388088860966869098804901724452886153684188424422802598048189788342761896571932612559648108102698129777043168967583137106673024404107563333925010408652793609139489107957080851472774572034048744970513405832695085640667358468097309957463396164011193252714266456195938529407495362726226877506765665394794281944697804375420141772803599975427902425300821880936545682991390113948194006121938909286624348313028789440432549502741113357108781479887271775934978737616228422502927056071592454004961951021116366249034628602120193332325751393127469033037440779255058304664090564968701457031369270006898830010851068638515039371887768610376441772778723087974491383836154086898024503919524824632146882030035148446121817901257019845565527907181511386500770742333331181340554158246564967812714912967741865518764348557427785113348224679137928356529665211496756318748150132923154428415371933790290387768822846881292852969779746470884420828739725684143352424370836930056517214043642036422527271002401063177645414680868323055165813660462265324719319481010193356327344759832012178428513132122882144940652962984052699830523911597173797575374773499009367637636071978493608423973621804013684339441576934984050580363836817301351400232187967546403893218929463180451648664454393412840707208195493698478227619779319114672945238587803782364130626129159774437838687010235077432868712322991908462573166210682145525209203482822883874010700074996980189391856176412698910122613978025939686538835812230104592780996425693220309281398444536441244483162391211035069963779655327701177250130058056280425432469135754236066561594195955312412823745493081898019019275488689137407025297063192410651145106944151458674961624378444452680710579093735885039211089733135081671809877706949149603782299729040236226514161703127822783631839452690996491885431509520209572590040035993506604215475923639203937836017604052476958801637791986338377108267321931010921961688308943730531351372679098958978661013193232437106357726924550474223649633614568012070623522227744003742518118960081097356643867332539879783606709129659502344808108933270765846798343294371365293079830833682063581708814416094962727937479219852227087526562100297766070643582431172153749953272915368836275714649076117202791745571847629196156285762256216265133818771043807390430085669772126047848110210564144486341206066255458882280228581004765350583690057923415499124109612649909379147735101953278310708860075506245725178020881634170917002903448140524833157966378740197328816386340327908450039333191525572790850569633434161371720174578073798695639924830220408562515991303621373047174638040115995469904982978292417188611405634337431069887321151347150468388518770971796756975060603937608319818588783651782372757758507225974757330260398060388592189240722857964601072078583424751284399546983745215536872389889360301061460868864486172815660002483464184926277418980826430333393977548929761285601867501920906830754815934033338683248099265193505283915318104446044024678668736417870228204367526771024127841397505094041532881499282479518368225167072324631816774110410765206492847759913603121996830237377865347168694161527269126443775434702734531411316512074454050793649320369656622704626326698121683414195013444900223594515001420873427199632332873080889840216271548003251066036954945339041355299225319878026500943621703181597502638528341339379715720998003821919018308154518771325561748738676270462944332381955741045252619821326114011131327355915345051592393243491140551290361498104432437564773621667616631806921674201799080140000227838726705835939779088866421258983884847109972405579458726780208373917878324875759435826686248639468996897925526311126070121871318790863628731362644435546064840915258397828818279660680593876321582179129586268433869701556055326836658192737320844175058858410046710195597787977259817564849866698355772000242126950228728511924128274378941727083329313652000879657237212901717487186719124948743005305712453489512214973030680368108827049499169276910060643615158789417872203054409803983886149133261878601386061100489075506682668457239574281897934621307675023815247582005060463140122254831493523549689926901524208175717485129996864994961872939963721010499594144586722673940073509598480377031990004026873751097158848978619073578459510658392441838054296389318949604977415502258182421975180384932104686040225405636249199346514108859692218157047194025174460853398197287313245105749508797127664969625303570492900709494279667494078880254877690040777081614989260031929697406109939777899606567111894546107579188071155546315535248612845009752144128242586578971835633886123254758732510896987619328938227313099963683939946046147670300777064542271671660985052777880266416568706273651018706069897311299528792997417342208642469244991906537142086129309294464225249246881609697736058630242994567190401403013392882052648685409657520316306359667369510615838972572790496467851061560814499484696665988969234324344772259031134660022213071273353195616935764520273682918518797434157724427842608124716362740476610421402716985177091564113421698082366619293757274032054985829015729614598292067802785855894664502916679507125007270979713810145212023347634683479730831261792340883131439145510568617464822535014167319177005424075638380623277270267562524426258432867480773886952443721092916875324712410779899690613971811923319964975322519809801009735842173450537070644546399206777589038881776033290626397651206057118511724514525191043268631813486702263956388147652631076232370237168563094175232848287822180305340974756382860420560026679225788265879100527944339464146188120513332273045906136340907550138787808601017725936517719770304297567725261916983930671245508081593571980686183818475050795586012552479814817747686570337539835127237776293276567608575484992438088299467757110432588598310359160008117374048991730441959515958364450468359864855542538978542909566964403858751867356968978824690136466197659415899265958955331452622473682216256666026479936879119270183380501703859497516485188569177992127271772162421469229702471865139664487996261982955667202320635165208040370265587348279294700139191223988841878320635019949314360667294230794784705841032721813106040353610553787535382938638396154780362564170309653024471926636292647203357123919974991012480682599042372416886984239589336088629493258314418689909857341371212491191665391786215762169867365513332768385528325852735747334036802808911723724084080138930147828004122883511653887663676364174628820891494660204150967236987708067879158808571351786221993997348250259205159125666454671507216255243474348769984504679796915886453376401864629352426552754359511516672636047104582070685669333277747669906261935714785594816033540384574291205042391152236336370776239501775705093283822740060623238150443897573726075484365267991127042824226385641016087560008227208898357628272550327644468614151263676364245662459107640879800441260279747251668177442784832104861349514673544436925434196644743502330056801801338991534688349178452269161483154717676970872612076720292097987842072449383789959584487535205522333676731432982748916617616205502508114993920150441618970350274094159406346870452959007371398724594744260834762300418341187834340077791601701839033669632442461880952546062785836403300214752319100126276588317027411444800107870302720983595010354895923892530788994059847089887385281196625518428264653586271665229757497505863267718234151432286735088739603054774887271456092621589901801963745481763315719143168426937967617118380090639742333503806772917455304593425185513059969789172542630884985835165770061383352052106663673380553306578852160983680651984978098231415523378646882908453232130747469025975878854284933747511252333613066857501143810424795186257050126999158692866046595872853232153875955969223709610130657637160678740571140006629889966441823243833502941493962684183800432711868311528230516966023617162576538139099078988281727920042712251471519380419227245597556024757774817004068032866685272947113726893503982634445959596447981720564623517701327215206000015864253255716023806166506948081689300547627698995168416540178940533752719507420423604514111325296295010587206442958695786885488723504489888938357383930254919646323774459001079194543606201674105028886229029610692384332628641455746993830004713940224312843189959179515760898564333350950490731945187123910475140300503394754128148745337923246742848515891502859248491556911652312047180376472644363568954658987121233678602623376232073379609809258253373465822990414636209522807157049786496394704403933034331218097975693539534588274186728029335176396189439881582556914997078703332924027114310887670661215416866168292141318644165001113350939665574357946655586424112258265938389824310298346944723141362156746413151465735269948750230680066302070115623952810559981838839009229818290124339043587599672025720172919709461695419301955160748838135247620118161675823648586710536404618384732146768232464837637150858132720430685030639782504770618029393244208119807861216694671244915303735785577742275635901825580748659582588703319496991561056138827662010852060609963359697161561045370901435755564687598905777627192983282883279974962406912267236991557972743748844371900038289793455439734053157490452921447785947927993651328778443096656096007861050783245394552032264071955031274438708012974845700008137056266187818771673105378882837048295170734518081190874916403923718464605679123515794604724919962106746641192983272003455420045883353698756171520126026540996049957677912542195358911111417410557987906537281124177752340088502191072064689001725339627266008286817711654551861069401316475004584853645324495342959053629877927655373642060772989022332328194678644031780113174389351275489896228790218476805709298075251819489965561723558248106070870392840542682779536947344132727969865848793845150103887066814378853266265955356337329393744843434478598840892822890700359468160114746942319115269877587049165371669193540134227764871574401552133800910568708931927065944834208528618627574623224452060342004470198951905969771386824319070183039655800460219067546098226291032105363243040769676552551106489432256500379105529059727221791427083197746351950441232112047924915529749352505783110921761018898329493525870272779567713982142343147462134206608306742731936732729849450333369736039341674245651078304207817892190661846099005913209469243406880039174277810732003310412743624025022579716046606198595753986973669553364965519274410609084830894433830959434093794402237383116065424533523030375348754352160854921693494494947370616484757488306674858162737535067853081492244504807599732928362182356476669591482093602500321449154509181091427811856439048895094374691026186886066041569384879313866463623037575921324276462764180946064669945654417686314179109019310650115202635591926987529213677526188637860317736310106575338423220810188533184938585449488871388868641118528677780161321390016430763214536735925971780891278861243104320367873914285699126110495800247327809208784851832697790211373439572406384401750711213104183199198941878878146489548938988104952702877380076232850781593571668656395919514213021738990741124388872499273196826224321633173950840210190985565483783635161723169108845738868321843519124403451600115123012077463917346975277489620582893509152100240674464498387892230686723784718151801688630930722647051600350845281511542678307981240298581854915071150842816705709838193631298244905903838113249950717807255752228211573996157612858740545123884231990789252236643648109511930651905965353580435520910161685618063963251805711294940409846951115329422627182255805254079112698547998242562881614652809222228945933477578062272499481229174360492251816122497808482558039846986119531674606239274870357191821303495124253694227187380043799730364003887094830348304007987858426758038701362167201657016996486465682974602665571580037153243017208850259958464175540215456579700131752322452445121406832692960699361921740299511327086307888626963460846674274786579677408781535494945979875908212376673929575909590339988200909799286651959091993047286187225615690780126131528639475919445831862231441900708650718842566088322599712657629128919496846302618853891798773633195889225086429679900443419992309081815916259419526677498420227523985033376411535952025364520481511060636153272501709198540130907757367486585157021005454603818130706173602941704534675954766091767990834132374617230344634598194263562453283550040681775767082484822417682588319778483713714902379293175299420929328200184949863295487415637333753330110437284851519461146140021458861366305553514247451849554709079359505774615860532807324336586073425439566383150795044766343700925368439275202505248103229012412943327825086049333990966157261310758674454079491851903698955569598872242631586790656370997464756582575172640707497793670367562406978110025114190692181999504940601006925047950335287809315840392250487280650291994137215993258678272402486444578777026568209567279540915105591648467411267692362005423903204664293887426523535871697823626982444116587418410525658351240210085866367690407914736615896167542972729809093507601770743973519253583174593471065382070381217290319665868187051575147269833550197924541319698707059558591434032752121483758601758123428396711648887243067324459912612193262007531896417260042360832201166854012159718099102085545868394946209366135305644802513597317318651514624366876387206988148035753135553586371774555671881406685650835670710864703804514349744383637841355951664082551150055901109497622856501129237288056312909234175492347033613320834810284600390577757601897033912133658085854450246283016064259322740317607863205021099942901655959895072001362073819757433678755636881294008530945977919668524300492900170163272717084630431754235340185314561868146446795638786984529495147339755810309332580793053962881571011464969627336896336365808560652400790079409335100562591414430205664053149155250754505767389856054886292493086262663708710972400525116579232149073657656251889598090897265085238440693073565610407650785350444248830503169432211749371976508007677476479135837558894960731121885735798931181489051214103308954205769504851551624715286541436929933738521793485074307109313713631519873241968756390643884066024260027812943570844034304899317009762269094169921519909770038787597720478584813244092339085813496356384797277064560579180142252551272269121565381893154747495653818156115783184990471753458016726063710827816221623041541614284228116060021856883164795977557793704810064181820560438318305698561181259539940619090154745017527145845997037328796344646121055390198562404328895471524816752195481161187226323151353774877147978284841137993141976581221666285018692889321058647312012046076636988892917395828603990397640849940750184723307838913914037060859797944045082738790222033961955804266632478333004662132372205868288082011172457647841970076659311419464156801519164286539303963661900039257894067085951835054944994249251928368785020369904819023116787121968991772347441912788822530767046806029487280072564079379997331685323565956559091834782115063196721336684142547096272254069693994228058360540314791002622739208729064157692475395707399650059059242517686784471356637414779467697053009118818209543784618763486365562544257118270571982007101642039536688892145718284655480727523032670265201932052643926001678713119648630688351009463932884754133053600801224800161023769512368646101028854662402009498595447574811610062937179434553160511088289464210317910078074769611954454996436146950196202245971277720456681628078798151212229616470748440827870454249842650176769287420888843168962162353460050901918412023569007206646564722699113101040653145475826496676043805322016148782307158232143696931598164242759171239617699670219796631772156847384951857649330503853897934031662897675214356822029711109286613144360735506755465800786541465331445148294386873931293483543151319051150018214784553930507918167079710133424559090158676216288186641370581116079168659195769863585374864018136120583353535151575170778385123048080368784865681369548525089643657447645970853514626010612309197831025744867805448559615384732009434324762354581173623069449677862347935097376485896669524036993294054478444161042367674865694072223977404374607565559512702688979398675232616041936795498424101147556215385889076358302848782139723810953261243798815467406181869993341802108850823400379126374150771698267721952900670904985368929224205711591457449809533594634328702217481609374506178033079547505487524310166543370910125787252062251283062306346709722379530108650883638652863415388824675678340755615044286840664209734851571570668667401890203685305440329025187539817148183986034287346632906534369388252457483304804110498028504116986567495895960010961706141357581293391469658007122867722168943397332311700981220723483938968870807873481705559017428254889431846528825421338735722694982034042357834432504117630273612957962906122674081868636178952322566156030639061232139278347050242606987407689537488624176056750376432435312561395608412353588989880254905986877775153545368829469603576482709147001429438385411941651536985374835603598250203328371539942318208082168847152191544073738310775454321364806955312974975928496996606546662467862414665392499691915170132088183720881774620960983959284479109885619261863431419265042742788589688518244638396794622005727424454609619644787804818922932656084669361137275187168006037598947674743737616936873506793122302078097459188287411193040988659784132260410317004060640170732917393820737280651766090164925113642516951215463992447312550083147520642943015190246296950106388414706985671953749206952056669971424016151208160349857919540887734952126653688156305079155341993550754628739210637485097323982918775097657995865326527664581540193183403928156372196978037034669310019797163821476295618383223581419068215378204221755810146896459388029865932724795867138828912344382600064934538903115497243458548561663548566745890186784772261917697557245148313790301471632433724856712794747704790043909976720456859312927927163736729056072447814815402872194661350983164145066440379119949790804985654058426425689196723603588247794480924130202715237179866706746131780127585337628562350471949671799894236453576497701992071608096389484259383400168740628067206893169146764011817513764777820559347302800111090430838886999575062031772890260609262545101903479869298213013298825362404554583133041277018738696831311182136972803129566312496479094861736162103753674274639048104174021004471729483954569753756629608538431358416056777936271809220332801998991896743936566629989934449237817532385541882096382715358883123349611555571088585784403990306732716711841433339009976095821824103199398206400669468661367462370255100325962283262149747742946617996287325797290660144575711331860465958974069838170228363280667477018251736696086128533385862605457774986670436831344751135525973234320963525154551210209784782776594487805330574380553270599794676268211339111144972833772609655925099383341139604825877066386447775347229015622123457834967277202443750541410460086796346805486118131566556895814043864543927258537326247868403750677932956296355162928172291380939914278420068995491080873191183639120185525621202848900493964101938572317390905560370663666438180719044862127947454726337650391621552947209944073192596322583565450219888580277053739121395379042942726550917790110104328076886183085490908079063562204271251754904745457156756762375809306679631459033229552139697946607178325638335208921444775790724769001698390541395052224040007787118633728148734215530999144980822362237371991054106959671407665970021878274354036179378264105876210126829084625520897774028146016970608476231976981997213400555849103153048657264874047313311324719939075970979032199952355923552492611464745383850423011739955618913862112938102997671726383956081218026096780307118424362696723196227960989906193734750945352945607261838467013731657331695050586097164401921289385144170333144204467018913372764408810252126800159346654886947191249167729561118637030048670964056451138418752762351526651782913636699679101113853893926641431497696519081755032751784977568377885518929137038055602259999080870284167005816252849830207200112826429269474111161926961740588377478378563486785378884193528915797121674505470684148642030133312886337549715408923260095994776423303466898419958615873837420888263167167514195781411875446938184393780784851371325818864061151812670455543227842565424283192310709851833256146484691942403147042616197962079061023755152103122322395386617769804497501783151522548143848593154512572341038380927194859779580451926398077248301998756063066957700932946459930288075130475343001435102427193021449103626789152472351890639164956855739768107775911085479389498455847788677372817550323971787574541812599257054701339158811902889337902205948718574345051592961319338766167736847428025859091944162935760911215384298715303629286489416123066785762913720059657954351337880364746327182744336318804622479997905656645235200981955246519742591613377774920009251130166046315198299888374649890386505260455949787980268875184624319142108969010004389401591815466353701355855323616179877819102368937273921384879833383993275588181150295006383699207297549220395653789429567149148639422626213393783655085965721392677332362210308477412437586586275073610479133450051131832812022599404506790719925476685755116233410330639102597005286717084800582402156582966530067291098806343163916730716217016105319044590423668913272913070411525762385443366417262282973647815261234602560238997812464188850807751654968554235127499088261858393192216711472023125461625503155908040862927951190449867066791175133060388994667817833346043712430208067798326303502266531664566905424306211980441238535968126239202091354864644917471075956963877205564266722876372063947091677103490275255526287991048324510349999853821539762603056927993886907270385081034853398199308342495585002240502229730001797691835940489221555751910429733370830608491058953243297420022470081368195965835662857983402218485797261540016428472563724869252622130177825375350163327211893186656282926147901499275247888630165917447901681359614909050185984652824742413503807465225332107867242898454076878858399292683392834690512541433890060275885254513925561307343770800397300675626468607635056748346299591318643390402209712271232037395680114778380128121316918061415636574542207020154251641932947613100853436487750785231813922151183664297293148399783944106999479477818847781841591550680683256109658942532073488552088609732465702531914524442893662799939357103136157574859152360278580328622599408100724657672567786151699544472875700031510038362728800865631997074699129696889333286568399418577616669726745134120929029999014874082898569205524898131036248039903668350754288670663428170806647148631323924597981134006762346728563428651126783575911952800346898538239908212329849618697975043727458597434762845716602008020534177524790881928579916579271572799232842091979901868268372309598924841960433552084223992021292188996746777737675408981747391037623559189820350333422824876185967991969778324468889500080998597266966071548165417943206753108702423215254125854204157896655397156973993241150948432643606410097738370846881925664569249762552628969815710021499781958806470688128663443994407766243451953978184744038898002608915069987174926514144722964780089381241142462130776164346259953066250518959958620118331059200304387858544189524323383778051182940609824235704407158818175232939540618370109979745264245490306937314569802845271783639829936391542340069625547832482936403238950414293553427157202426693173588401753224820087312585572953968348705274792270384631856427586585436773762119901476745121675694197107399769155199850023776504972479678337113261040065750508272335215053351704594011249118087410908735167578390484780006434175046618265001466162930459345449608296351939445304848683670259458983459472595664421613275119542006274905942970705480846505044776580243490316116272249474416677493224962703642291619184455287517710078631302897442854798936730910265261008819933506091016434540925735380330351824746084631410197691166965869086364717871916633858468755185921781822971013775580868527190317604950718774166084338412917175268920179925329461289902545561756874198630360922212561901684891884106919221694066231093466381446551477940853845732330779879236828793500844456481967611658162294580615120415791240059740765508434585403795811564713318877177055153686045913780357004047379490796451420799476414596095346259328269081889528098293443116799606532738061923350571074435957481395103842174225014221928746598713291490793870365601442711619911307631473746277632450133068436451481077972645530328445624320314176319514747780337774222568263690773738664775988657359941239007590619615597331394407364585763745637388902387325340132298775674979341198421218238972320277954366585777237690785276006813213115429762334208338665838521002020695322347851091223252563747386489793875234111264081334026895453088455880445901938603282449789625999171659633111967240295909948493115345116725097386788412848546048506150185771646624807848022087752389168998610052837281108449431533203587669333254364157207587105265939946585164444174637622292829534131105171343622809234672676369645572618260599254518630047163152966757527057871647700838382844626807940961453058268036873234103041754232848628825001431570886379673109683173299484095964380620090942069184758792554936077116787726111231798259677247151236865722909730593402967326032168595563859014323579136810762384658053668943190869417074320667856395800137305556676634707101740948109310683831637065126939729643928288255630342164728157531959044947875002405689258502083390999079276485532483211297821458019956954199687497432615582862689197176127493135362470599031588506197657285452112891496347459725778408240737746090704041640982804973660560796324337646856409766741068242153523555709874811129957685034022099556365967151726893722082284128080078889833077162712145993547504521686559672137746431649329677062008392880790500641466870463531931596260910605921865669680570158934228580092196872156425101432241212486598745775282431475615626229456739022023898123967727614417571193242040213636603412396895806309808841568677800084551945321095111056171394042281930176494470326927697478766067298385618746639035690992123178358737300770656159000197628992230420936918132636986543351680356847960393874587006025015729614630395030584990284250887031489262938181426231634732879429883801481115791016299093705251966107798336294624231473725653023752189306723380329530582177576645974336928680812132327720139658686225806684553427456149936974218522452659187744955372058992202175937914695828446191119519878452050443995267661357777380766362291448142818338716392333746196265131268735687445412232161844356208093404814525157267985063777556314683406575327763896299177916403633694688451373242433752930843498551389037050796446949824030556632090882730819022860983570118529036605559280896944880300179886075908900021359297255961467079755422881277116537651743539614548404871711808167068675766528823017472692539371323518752986536458797283151189358238969748471354425858118418748324716389143879245996272689154980448512323144196763557227231757660060896799632252897989810836506829267323726416552584004421058590866307296134641648903575195208599197554023128605938880429554495291429563750573944909097518695065761290149393791002105098136126742581385325012361932376803780918263990996882793131823897136480593001644298935665602577564394195370469312444171390065438137935617413946118173670193084874732402016486590634666658027014970384047256506988088645946987259277673542842185671802307494233823750659355361677832510560548653006157789581261700230345450323709150879267332083205404792390689506235623076044896089595320285322692501678067319948460839943556452840991071489335143203604084886327863425949639447396457926050905635955065039710311784469701595291254990118066196626418007964179123159704419295811024659314345510806844365324939870948413885706436652589748504144261923667586316739447819190792074459085586612695988588446371716406875931674003666074973434233628841591014514665808596417294038189759450622231966127436801633381020732532097758728178534375278179389241372186113535947545136544322196196296447132371503758886036480504472774977436492375405901301925166479745861468461310847328424074005361946259760426213342025846040055743760121353968064226094257705385623231445773486100918918267925244723924515122347032284045036868364057885766846008216694485176086713284842137501041512430906356891282259576844215945671999908942763848255940496908060756519625784270493363821003267823635748494763125844635348961177946906356789944951555529209934569202561042253502403293200017488644156283463412902528419313133319698335869117892313303577998656628058223324878798367113125052294452287886781584161572452655880559984735858100413345748344438278158138608348351513085187846323348330590749545856980644638602611561704876042928352417058498881931225247518588407579358886694510860057449056536350746216511955508177713757414443294313152792267680973687950817922228390862141700636833139690328288916679449002501636765876224896494677189291016617756488179363921342206260803791757129108297057174283633389277448123176793821059956627181400003900102353522094188538873937532160661681379884210028216015218386457975642056723144916512716145739954327521028168943737063956685002492250636021349564777043056741799907541294130009265531276055988981069667509205758753417694125530438221441379118248297711284908892401158568257748387921876782333181973999355434064516466497114401233040693082038125433912480613512771184178041929956208436014328710527266463394897570405882965487213578658702867829918682075611163849758425924541125280898615433452812980147778236477270038274809087793245139936230497971759086946336895519698799163358178224362272488515599319168403124062072928427855905731106838705143245761165923261111744357427894286367046069627487583629384209639825713686155948947721225963806241769770445434153181967885964432528968130160725674685469116436929659346445501354832755723067436984255491005572502107351894683116917886992678345046951716318976825321177976908521690842922190744765546745230503603736702975092845935178088880234297937434553288232414268005709933139766797849561697210707793250029971319041706375912508718618197993593096760010267024064827255262423900976665313378735914504251770303879508000115300871258153465086469445400815595711185583883639716363541285509771085557468240615545317284658028585085994477813517425352827745487434163781185189204746642950339343290318177434164503237691176180606077275042825333766291545060588818631744776042565683699770825584721057147303140101438053688747536267228206527274756120558645572142613984940622400731961217672620899953211697603013505267099290048047267584124463483364128758494886903983477863370930376810404857251035674276342681072208732927482601501397151212961392629639443073505085957423441524990784495658973248183892020044728211268266022598931999368181634332087229368323908720653542919994628681115239924069809971665561528548126111466911231251603455902761517332818031401001486565416201489278603598921590654659885267556977761193118878744215298963171171334135573798332102732834278464322557490373798520913757645288351294314192477417895332795255521245237102322998838291388534089266827443876978183650713525791219890962679017129569512675561796534369858004544048970449593765687971371978640259743039935648815664382017726919712759374755857400313650681410721157276101315677034405139560241699887703922000484628625788393837795236077783854679779185230181907851253997800973429032740859693598887868451477686900514134204650882354444797344747448244218646624379600247012517438212610466446785622030284755435888350538309071877727073688228353521994679338047200414595349486518514073389718686209527964879386941265139030532054639927350080258957988980048343418325553808694899258684576878257525592555430236415109056821813680650205682004063428377692014615380556972364415135725474308244024994764255746259456977555853355876550814356891874475849185929349154383958316848428391476447405781058673239517492656331722321210771405334423480068905976795852361437659473460469913620878389237116694296644973562192006261823709209554153084125572448897053519105300043931705779659672443762084905090237689451523670012220029223773286093447228646100915724260282251346606820953231682859661909207971854226150159011344241476528683037226360938856451096832616996459636823455452887018231646041989563954104134629027055210178029284419225096415342404453798437396614857378351156877688260183086062095521129802798009837948765398088608602438103077123034936534113150311936451648404036048926966675133312145879850605992486505278788341048184571143803620505884596658023997494075529326851090082450281400036626388863825499638294279152775628501523402746060165017186825194924197408470351943149344575785539780623527006178525637930254136127177515197158404372105814350117622437223500840023053278273563735963617450178441616762449534728135040029046957560843425905153597456544266313003977515257012044250081832299272142286906017521809293418851218886351657284772836805312628336013555857192110755879710392477634228790782069384644106927860677085576644060555704773392896306554593957133561044950670943212801878169526783598620196616081176512362541310824376336483474528136142108345385442038849235012454392802566596606063999727687999080243300329537011860178067914105224848788736637808615308396397140790022431714588748024602785235943613753383888990055281286057382879863722107638883439226223647532803850804905255954464937285906746459750769694710285810743992059646868644135869327077435067362879423700902962368103234348696354512537134523929389038430304502103277728689743990098887272318910417386800177182566982838824498508699849103447948552564105557475229801529401856596838858588721699048540375499937328543355849528947407497286349745249418166458936083806622568221517832924173890401445932119430808612507112372963023452564171369505718287743505973676833404161516554137898376957262081782232272571938721897250377910669402321969837863330100440935170684665895066588895937682800873182506596454835467866825489968498444810635920552169525673759468456726241281991630286287233288607599004531981204834020781923427417222438384005993638082886699852975692442040958966855546886980184366470135634274458211575558320174383278247357223063245986776014660352642888881160045693626089158981493834146618891674328023915482865624933992982925487778639132589813635651925817613711339785205314439312374708959441558537143653363802371737252837038785028970954375970284949745927654751799432941043760348134439649405337054433753669625433948847376326334088765904622402302748926791159257848704215892271763069544345037943206524532525203637295494247455582754208313468251038111935014052684289256915249812309377407464508302170370340207972102483460260740152153351456279551018002031495103795597448442160554980988220420964223564407133309189358014740168362311165543602212936747016986764115591409939195185267463323673911594460391378336572484881265708587293598632358971869503617315890902992986974557087473644636311680293766492678708596406075523042151135922296131639103700950952746797273485507102509683272929111520133493378239627666428764450174725197904609038298901762698398507752713213267771422784264033255001166881842976391465571203261372610551331106420823453850898792783192538623780792333492983107229766755474835294553495843828198476591628130192184087208902957004061559897557129728874443448193378561077953159902461683242112279684023775583132173843177448686591642737799455890820555589569519829170244458052468070819562712571823906910815937917487326915341405204219362879105504061473818406599921355492776163707910428812258009087383463089828783506585655338174687645286237317437373819548698102995370194998810350100517850574821807646034545202947295873069127364150329591290836694398272661927871854697987418896237580871018653119597981884091592296395639282849224702574211844248304600810138780732674501675966646917060590144366164471081224020940004624632611576845124759219850892697948607911152637632145318617723871470647643642813751525002860603370144391770288716474267788074345371014192549249367998601225376085987433655059377146503667671394363174333732582319920579653018351321790260212458225613288891378538405356867607580744908626585987576505672643222772934637142646986768520036462446614297165715969547471073117703806024344886941580243409213689827132847007056510023428854558103364825712471614905795797673470252626364267864301209658424191997405344022262747155944844745945836248714872617242407778134985434956215877100604937096570510548083088576915577372732907854709394733804692250179952434580632059260353508375996372635842225045575628981559226994060891680955743013199437470627096224464986054118141133131755313267793774036954197254394928700853806681484813964911489493969966266552977437077784947334914682726802489223076580326511732041605820017071533832994081865303833455694572625288118308906928884548573661330817680552780238812502842483555106274766006902054013949664158931763020176761095597517943222192330036949858900613950958783710577768039040162108145230329858912358774322211970831816945538614733088467178805875558752704455994660076728041170654820219701578203070505302828988554321936225721999709338867849966957315534804044478203215281400713808809756791307822814845004286382908581372309030025252860175735924101286257890491285287645807004769362498444544020973273179221852012014520507191642180608112790360711669922727434784372568867725271564493689968003658948626364298123313299316790441717861812818011359118365650100432413615008992075895282320718562128866993725569355573198161636391741673986118647021567819111345497197576651694482273369713877823293722619504753326170219773594534643634073295002468111273964696302160652055059961877532299743558647993396192440703162482384317522930891893700757065960258085796383867588970502220571265060198066640340630804607233867578937239126170166510212705456779406191063079641992877016117007220398417567235033344077323220912282070190350904029139381252660320172930940206081955930701722947577871822224484667610820075405788889718024099169609422973597258983331521429839224757915825725126861300999486199599933421619695945796040015230959663560906177332572797051606319413846351642877982179360519078390439355786708032042764739992762647540429910117794045637530195300085627637809038890236134494396716004617636273625888562094643291900427686936278708754074737676921084771887648616879759117848786071457973566953669335846477373221152491394875778059166894621727241323666089972911431044402900145591522665558512975910217289989891137368916752325067390500790176766031280573206618592162471043449730408285780500393826079232351528021500515572163932731763423109078267524849796603611221587192391848882577920707695915010606726590573082269280748351937235356681207743490651046139314124637250478769056207082494063356124496605464879984452297353150654691967901884191798493951466876051481080536673919157532817504258408653219025862762965978444301781806241967307843620656426555766613734778474404063522165337307732923050421805276240605144084509415088507358129788914204539683289521205475696686405318466245350460475375490020059977906494612422480432805190768028139090016795973560468066061368215634238331404227790673499372845836173520863459626593442446402376305066932344499539602329533721436379697262811619004374477158617511339181895566823463281742293100286071079868923123180412856293754161901122220118913447005175829033804642534024162320498172663159408990473765069854429962941448193096850795076851499420926669812346180172185769898490187561392670028025072864748725096799121206157247715471084292229984302327110671405526528969539284398894466082359164681578451525701959061417077948861043791398463683108631799588574821232884980793432911265401234811183401735728666416550571638714665283187608062544818962128962395953900562663104993414003583268023755842394451041254104028755589011041169160294232521967329518074209054675825580175721474668658278118374912399496708838495984858756776470330170383990336061178467555320606745645411678224130378000091647237091142653075662789665036992168696429513075296040376541404072125500243307309682301156457638137368675593959058197111709329309908477600328230603476993409471651007805373286925397721240095901720540586717758470164226369132480940880542883108020238968084342913182321207323853034741752022213577734372932110967945339845937853064136680045314842768640004355121292903118304956868763019981563730486469407004305198373864492339064691417923430254893584502591468997142011227894736454634946721817767242569247810684019007280408429963444976398578557099186501100759216717482388781958016958933243620549805407615616386021091642286696312542929763561712959204529373536785537525947828159207635228254353063070559090421002300784484704379002577258965525389790958785905525439871029183216037999501326950224972074617307407305710063831430194639968889020953611794092722031687204531227792216263145874630285674838040668633271108447452355442040767446365983622908150066348817525892962403057729817327043972017839610564919635300623323050889086304700890900292908157045534713508417783850429070132085479249513182022295673229479209380452510590586037167003138626105745145283981785195790222160695126436727260960741603718849008917394925400624526037164452856709268075474567190781703674961367858257190312901386655839212510634649677344516278365526274006324665416368383411333335909044285194294421936968042608122382146351891877208624453741879575894655210666732495525966235808771911353413117930747628063312498789370653068318665381602360752639668949628742154702697831858573870285248811912712520959532914191093570608716048320923767115633676406094889953659812584387619964170372754775834424695606537051063493665448027540197147521930198952157903763722908803942408147079412625098393034011540574175527271808409916635090230964360404697404981061661094210808170277017044033170739083673971924852843778638168308585210120148115843229752497188456768269568188487423056650076816336579190864342479432550379139822086598298269099709088405580026420918209336919783607292500905407042496264496218452519110687019642558715546692936666693085007950783421219134398479052321995068437285110327781473874456059339042778243166937445937507378400889614338156354268970059534092603468368922103605235529853598558424794083386262082463716125747094941668002972059695796023813679972318063543377025306891882304288729905253932174442024853787736180023141746995356807408408380626833900370267344693435245628800649400965738540822498787715946420070949726995744025200648813976394279306933965211270352206883443147996878103186689809714197971990778100671243039355317305550135298039017315428983135634819507483301054575759756377543575343750487135899217602225669391807309450905518640147465369991356202657167167222545996660824247772644454544057094280931332234756208052567003443059063030096878971010506317578286303381252261222349823056857338506780264729947037221028737843032030248493209436212986509146974574776824895389824380766151178202040849948880384828490905099216773400360547956746414538101154612723986110207542791033597233342480008266393828147188007402024409346972216940521489676496460545349695136822992939515844909420780136066650990004880406274436039641886584740542158402097124370718275639374448975030596559975112088962174071312600172708714212339793645577223898353910106605539842163133802887543770274422259458290276467836631766411613250557442181142180530834616529983959015699946910300071249546402709781992847811078370698562313397039113350402643653881016402072927791530664379457386442481449632193146129212202409024435914549465376739470128121014039456577902644599259987340197185157190564662013300511707534646205735087924827636132954429742632339806458726387618229631070041943721243633826812172258498162574113486016236872322249414387700650902647483538055953449988901053791895106485011892270251068317364785237794378342109388796393231085999566410256825049349288303646119808326319129268830811888042503098257834228943298327698578125743622390418098510712608140119629945023399067611828663709425609744867005965879205932438329354515252923939689812684882603893245819677824565029499119990831249325099628063488107221729728087568078466813776055670220614667036915686011827747475823234866854297192665165396855285139251243772514356401222322207536202058839393244592122467290580226198272302389129149728557177238135623908166350812047991523042583528254409636393438429430626047774385283605892991591776313562836033140289594759742603121706268504694866836585792709465995333360696917711424185722343178210498603764316921614853546259214213351627108298180050130913422787728233174115178609373140638992750130826089373202704131141598722700507584878021671370725203471931910834579282362283707537821986239356808210228135446862336300726109900017492380997121375090784262636228686784113649648594152403373539010331165974565725579307679961372934708494976832046848327509202645237276612528596266496994020943602095351173805263539432596287772799754445581060689098092530323395369368163877741240520376809376037602908299540851224827691814888618461314815879393514659969244136955995335840083929159445229588235874304414671805586405438288433507036019658806154978543517159119540524000158300087108677577936759720888123110631650875654248193370834178345638013619617867742272924663861598269451905077554907006631815597287312131515164184294266473959934797567078412834266604720189268192388247678779830930341295672903057834433073542612067563253515158838016810680313690705023378740541157337736101081496841595705353789756780601940984731988217928716107314877951180619305995821375322316197081956335006069397214319788158083999712936374858422385815899588810895927784864992554070574494098342749516456551713436529834791153631498220771387634645163541441490765589606919165566373920123894176327191215216120107085491899102843617731132974814305450115601779831696958493102651997210498596664788164648018875511227869826680299610636445483956373864994674133863795868757415720154701751545459493071891422298171952273708888026467598077274273883234300988786178877159882855065939214782279791691206863363467733984268968123106937567104737467213234028905067397824647984977165340437674013231101891309290574587759317095514791487450942643901207086256341085097292570848646509070342410039273751745523938946231630004749688200427258809393347044503845725106985058577564764341665491902954390766978347285558408061020070568059891453797680764576798995246613793769203224721146193252112249851792740955511778679705716953578824791253691397688440941109114294209611770490304567341227352173239937219376184780092057811960461235462339173098032780388185713932112757785063380954243251672642416338216530468695129776902658708526035326547415405287927607724681296152737001321578113393289962444169450695152948395572800803143832570930030388019604894800137238649327369171162626020392926142784273381154265738556666044966559232333633051584615977321544450192192375533832923686330843151897307565966180648443726266571217703131840281151513799020931983900257043543956921770503052151417114451056386385803034222067709461945392490771386282435163607943146063669368529390265659854023241842919960265639719642279102088066205859968761611974626348235011505234377496336293098860132459135334114538188721301562137912166630775729946252871169544891271576056071587863075244930416752786074776306656951952321303074021864349625121236555407480650152979974406326955120210483966562527263314701354205479323006532789187796494508963082730138613707508821281419580619141315721651320496168397358708161368413449509679810882319408808804874241907036467188621214412675023743461314849196541779751696903530224137963694672844742846263679422114248671171969845638663352648447156806814161358824773648289583007401559798511614404527858581437127982776282913592413381080345103064457907604596918678043779428324517623975743780207246434771471207626619113981060742363084931870889885059881705430462248781739718447294599421462719620975363689694099769486017197068236363916064539806491678353780276788140400606589673766337754088192246015153777456494825535224944387854195835336097805328341639431364435608685373134207890248570599794933653104898324311734777352493205311362162712832776750534461437701899648670023952192515219357504088043653641354023003668789836640599528247480588738505907706680951752636202631699680879639473222293966736421614323815593215740456142743113597550450865929531529784190001239391777009656090784515651267380545509847483785529484211188660287826845653873254103156629134296619614527290317174064056013670141254758621062937814787143989151404464456132252670792676219473633461378540488575590326762604810814349976859070100138933756546930643204778774948632241499856671192702133311193874553816025707740432279808820990903629566347683590641013850509578210860219147384635267008184951824164864679138367444081519849325733979869149094121722317719788312708967703076049818288870579201329639302480083815690703508270837209602919443198598315296023281175441532710817836282337146266720105226061530691993317144868041047918747339480762102635524694067528505832835133583167842179018023959873235756858633498537774128217989698248627905970820060867008894458341600252425060989486945865914771600099371171043527785984976223613834920311356332744518839899843547171257311966557131576360875664696393124938506276348109540450292008495939268855375587349351270559957725953638017347352278462532749889141619781964621834841573002853773695644384973386667032331426514069770719950148426431197073789959361867948872237771672824041780581655871240834367728981113381781525399803800462967051241905337484900453118881631382612843096342305179275978082400210262595744798754759768340162718651153514301266892108996966031734745725997725090475779965493971748181694013275810470599055108888008420179804572797693625571283388587868297164175145680022092539587170881568897100387882263652681002942629209760044596828716698468752913912176738174501013345087094192604647958575713788907659033142454071633418168286435311779558407892939198179507171120424397298603826710964937710290106517294169202525397145833508690714572507244048304117166308680252033411688001802622598642750323164994401488377523284977196522957360188226954156210985302011724602962930960435609351129364234462611524242966656613027736165310703287706193827361203070780435974857832467764490080690329264284169594116819799083523884221392202272775019073290238080894163552847959840878266326887559103904462100350352200229563332861765260976143832692179237998733458973388651972793015158245006850130901066065755411879643509496588969292177036728293677061940817887847013679999070769107865362566918038437361586798914407728612731233362667498943005483121022010183991875965724198365396640094045175256842053283916946314919221254033447910679896978834820258997081583409887765246388338928431467472649688710269805628074031593089713963897438082186677355488718647341869242609977976585960387943364876571985053332785513497317222738019310111930692707489816720060015597051945613530936782661319845935518162610558501799099983579445103742345601484703209348474045387852266742814227553435966868788815411719252294594541749098879262963955151824688924289892611936208495749160609992907818887006661321278301252417896369556002077692820560974370809453754825552579510409864310473223395665861538165456485108800569529651871180617677490105271476136403507782799180041789528488728382200630075787182288995939077472210916970897448014316346501838325699730608579703716480172018179652455494160946943126193996362951458433794415313237811178391484945412266264053879263012200382307463734770935112607969759686391288958438583004031913358247366897771621004971187141950324673025956621457941649929354041223538079986688926391238965740266013192971866058048173931828878926928008577531865824503776550648722439770599496677278105951164454764897377038782159301384083129785027893621707147740695202356787529750790469041263989075082166059969435207415052627629806127713046931617018975218360804253499497117601224546010243797885389984451395642302514179543376273360646465911100298061066768486427325119587245732283162225856824220156051724420975896455720611993556734570859917243412958667313919146062581914485947084904150165538862455750407509708393515901422126267595718544864624494186515108358812059861227686458182016854744623370683618198804927961482195272335186378971291292288374652212710937686190041155132019903532965313630970822532109360935781339490795968838744785192024155246675369561795935706726388763511661177224391505126332941244538144414555425058367668219769632698396461519476912188287433693867211622275228219732633179758809105824049966096724818042406715742134501515664919081396640948961088048785701270682023380072802960976014595810040492453209018698530235526365279179665493198770068319321177364378659173456880293208330814961941416298208755997407703626454187296559110421562513881004074850588752938835590327921627740079694315513819596817728203477403401766889239106184796281000469447346067625786355719545390176157578439168268307879001440904978667946156013337861531101787198350432917586831539647596972696186250009188301909089160898502088909632163808996490247750003242815044569326259918489892505100789899982770906063752629956493813053527607786991644745910734321486724833937789114157552867826502670382091851971328959533633287564763761026218277805707515479307485285026631845141844032108783437483113817250943749400023441404001343292938455033077453615796830186994848453114442460122196394142272500693642440204835280817986318678869484240497957285151435082886956481641902704432838516096706239134473958741983233743202365797454240939041168969948100156147470738336735570450605679335558172531482612778173533105844277426130727071900939943786804938583148699069599508339090414784086934409461541430102795234239874058098363339057892927764998013164437976305472261438828395371707302022504527312329527876552166599928734274918058430751332888963137580446242859222695940837037763775161605879929198819793968984399227346490527751024477032584702864567314780005024890561614153137326351366428369650743290586304251364758638901635439066736611388996532834845047290804506595001356929029714871613674735183527388482288914326671021754850715625553389224393003046770500990659315374182400788244242657215536833411914670226109610655954318807289159751331841661118273976036029348875215655076622863999557368020309206671415780646582241902292053255630256357685435214367677419569329126903952374314064075522957696250706808590206844326597101108897330789710439542170450902211633612631802364863341658658530397823425311272433614531491551842116592276189932430932796813927513984907232415705446928376259778799173453100689959912533191303827765837530033262654799569935815014920154127145382963710531628785389281862218302539337155576614122874052458123343247013154379188668836059991552148914786221578477099570379070559214386930915282278246156249868601278618984978314921184862861102514866508424601065272634946430976121824282006228493496629712170529923984085145902150853048882045368815235235554554552097777016241038120098379595893258720285191451733292174017711234119802934823937522341343007266272160131034748537274337562760587434445492990417540272505551565299334129807289862315439320077470615200330793486731674392385636187677727914704278100254338808566629024800357684335448858043573927140066911666539385750766936307247609308646978492063292436699301745972354474055762364285526469108788326260169339622716996208542418357899132687181442092324071527360847878359592562037822680447315638553171549587328383112359385773020232629209878845792584663121001690877749326674668762896325222698318127571641088166428736708478034653276414582719599994532609898660156583359351551534637398801618228373346911447041877339136258196876810197548686746675211227991255351497712302315142386153995952914169499915569351521489483567408736100200012136056539121958575283257706903742108555450100244098950646116598390569758893850360987010707674992334353974646431644430942845404173365753786166753121829655724723574353672503606225828015412224110593950555670749615670243210445823831754152367208253194707125187286488079093958643207719564374326213661499317111976140144251603111635286099591911189839542537352460446484913249376365180647960903330718952335782488370817282212832400389140025607015274658231705730375750105274127033625334980177649925836622865437747924423820732212569145569333183712336542410074370475229118732465556390743993722799952454347229337184986144534399539192595818486711065208010574016114467069541826748245932561456829925103876684849274406899476137371723986019126943825624414204932979674695262040180522609354212095597813288203393166970339348601373141778480300192720650438398401500511025359488594892579680247166578805177984270540609090123699265285960628202677511099666292056954572238942658554145432596767297300540999484270037088461504210517702776580656651105816576102363820207248128954406857262713173430991226322731292527733116186287254183743129967126333890531322065947291562634736303799997850750374706461109178364403674495607294692261522732918785097049182992628664500307715872745587603030957778113407069909721664108619458713415870028344812833782161758693784751591037562052188551304940197890333348725677486767134521192249448467155344986382989328742725062710514547914324036153206115426797124690163290504242364292506625883449468445797295948841362157439581378711028061317470748110834586701535953275424865995022586141563099151769347092540656298661960572219071107683268079976394866685606113644834393832976348326110923478895041371690683712302296673204802149629055936709922550400939707298364863564812788708130450803074252607303000311900008341953017623498386293622510642172006546489061393587525763232018013403024246786194505706593520554090023730030550782729553859917664753659109929570358508966015471643700804853139620366826863713586782982132271897356525962745457956415724843188713783869947897851958961237028512324910263539833566181689771640766310443763494529719713460794540378340840625839738822967012716485355334774610043714470733768676457383577099571502854670016718661489802138343930206891204093261198579185761035121550323217246299801571997523514218500929663686562356489054205811586135897185937095387710309379504397421341229899089059638433617614276224875634171007617527686397775265523577029776763914086765226256563765549977100898620398020543720704086260749778588252133584883117626874615257649553008947083837699757769888795574313829110838762308654242566305597986804217695712153101980041246319293988086070915762196060980482762117014281699905152062317786949166411314938778510135936570414249593151235486304256383409777652586077686801787680479232474480763190562938868279266301802595619729583142439200884788574457463285384499034698662664308284704878868771233191372246100980850210897939455335760894989423143338229129600892609565384552738792936158300974534132081127325083062685846705032679922821507196513901590283519223124402796898847964290364069404583762029467883036916313741921513478761545446386427606245541652322866310820378241081212656298537954808267296833627071787934046285135677223492921377298412391814615734629702771669449935044257606056083278757047060960331960530630450109448512876154175912727009009020715423198618288228154754371621575975492981113445317120462435918572409680473223979203973060494317106820760485050977595410761255566272095448497849514690473086924702255911931904697346737647994777694339660581143616926329330415935095485185610507695510257561226659032636181518863606939374831511952071934068416496666940372974444072463244460087569149502016565013174028658025130749407273571937948815235966407540198007285629661882326209988766516903897518469301858196984606831879014468864690277886889206153830091767405452690864542421370738316377456406203109017120175844615110099818730936671215958587657166699534265982546857950993891198263535954731024524257532557497254350271214355585837915116708483064069079081564835940600045633616901563274216659406330463622228016180222755445440513931261989832145057006767700144457858901920276268177488281080689559957586945735777538383577162621876960507709711724465903195514195950056126330345358692391929716244861238919896261552000028307862518320846581855737695325684762226087806546133018764786552287762631443513035497628269778821620047738687610823657634561522928126292533431949504723441825608134686889008134164786849089177246652860975841330880619994921486542061249871156018747051619995635074263357882544291328005918457052370705964551089462117412606113170379807379070595058224367291632369692522251032509135436567991830272679036480161381247434248456077295063922885349142691830923299467327964042214969131482811685003235544516692150090779750683670421531651674816358339495168710634890253390335989906731689408631799403835257699648825398620232293889289172455747869153586698307770780919844684344101119340045767267404876774844749333730379265520567804205407585939238500873299737344554874729625440090373528132875230558753576800681296631805401620020686199494691894789730965057184103999558793014106628461065892664027064300001406415077615994476005646764421317260324635704487314070910870850706551382083747201193947970652749075005094657026925498676205087183801409379682744796798852128065780138165252635644357368819442563829836806626779887938131671193743338343132446490081824015948644598612253179527435185224269705127680046017867874147255147745043793808024807770842881942240963297522773999574531793729539761226386424658292081628184121055976390714354480662138089567486843884046933417002445067624694582655547278079394732917047311159153663082754177510612498406312758942047872572624974588845840028329861421530301520424644879375203554284410685474298993103948487792869278502483481322414639132670161935454388416268125822718019162218750492637820362951369040512299470697176212705988375843500441462949031802343682501316773121980691151360076872459993157999967182845943380737097101575583901765695159381605075304181897183494650224761298335417915803253832875165967036229723126161307677454479868628257987652835940886306323069519139747733194480764361811232559108513884978542711239404736625562959598548996832520274330746779761682456402948239491599840175412281724428967913067162799723284914030734032830730152632986753289879284041077638392520046076658188387872254130529554069606740980700835200381436411783403216968115200608809165837081634256929118298459975493351637080557957301240764012447005278522150573418005288833940228760796317738421664866655270654499423187208791636338945223791001042618519816799820282393213031457625940561078187909459539482782421296923562112143660511628552031964406669271997407967189039797634846433077113580377378012463067806759745971541796501265532160127391253085934197814090977958916378584127704314363549977334683369396630159724895154094645401998259398717497602476553098448841250604531878089870883174105487450210332688457827447853402739131478169435044875359871338793017977570096692966037037717779899723379164762581168531125127514449883102161852531320761160274331564188526528613830103384938661068464478128717563828499560184942801658197894921774352805310507095964874278197150584192866707772956925180125890538848121326215322089042096122269660016464385297163421254615453794697062294796216423776205547370233814202271216402905034409554985930010253312844312777095200746049062377006702060104848880546403289074355607770216190749584544950695749415557419176142487447079635406854459548010149296966088889204905452706396889735506542860492318243175925787675096541809248875278655937328421974976872547788933924825188305990274103481723921951545171774733764156762808804321594375482160757464844741006074972863987046350941512338498044425745936526027154203799098929332287752201922300085199102072148049659271136742053148085783413568795598596748577897561023575693466578724496078291373797402333576102963228225379946398900633064386062732863776612833399157295228885987494455334947365192005875448352090856565104144422940632333778873479790498330728798901197424758802147773523295060151572957970926666247307619999929783688072665449904796271642922336748027479452133168856678254734361936355428219798053559102128717306010333265961451673335412455165925652685274987413111864412695835390056792007215900071117320116619532916694353687081212598155203085305667601267317139270414653242135882155131014441430506452971219493468367254857396481515054248049440310749385974343936104671446881906252062116030293063281166113968062936858024268285137310352359689872626390562555908956337429734324930409488199055851461151246616161801585195302825341868454019352238213921638407000194704731998078925854153197941003694749336780029905221229857896722774035751335265170462721774574396610690446051314175650410158899811754173700888093379119581506984927013433725442587027098691821680011112758311531404407960032156738945469762506850597986487825915137384764898085130356278984247214725836521414048462749089239545320514979370803342997459538250886876836928756876299903107067175062175109537267739618204422140521092900775652870571662575227872851182676303420934368715395736918176092703862620630202365181351303487653840491552915237342995700313048603372155725916011066565455743281356080829135685059399683240762431805454203208884895832945067216329932900742726375942869210636957240399574024839100843476240436166913441101069196528385109257550134622665040193870753060287711915640732496280928256481310599756407040850605417469305799521965201370728527418262950715658277260764015583075425333347962000138824651670932738061572938836387781959303983171370042382065769548645525449893719598102285191676944816360008665450477177763072670173134352913538196324253380050282616183016028353282461806759823655515300897040999561594804609022063080910117350762599103175700783902353532117271550359378828935032005389510735251627556479368306131042885228954817299011354189834424637000689262533117673455802835451790204469157159389085616715085513123639888980213975261218574147499906460825979246506198760897790889269337395622530547077802598943221775342392764845730250836740591651707795421607495894571369746042955856552949947571819419014076165281490595499435161129057462944472882463430024429021353212012180985359879882887397529270310836705709766273190882885935483991168697756245018781918179774465561624806974702749613882462968962080034627180207637807864539973704142485277199593884009767284142857411072319110199235907875784000095037872505534951870790238040440064414754327192417493727217708963746680091717482382844408511463254760217884258207371077117859142767447813438123626696867687173191211418895142721323241303919081169287780669199348398614621079449600048440559192861999819704319020640538873677826050057031411212915903036634462563142229866947284809096968649460802120742197935164479349841993714428342001137149735543571052642032848291120288226787552638220323035606989814218740230730331050726658015897903971514181482672060588201616453825219907539992988488539228008370456625223176705064267139240518468621136860048001707181547581646718494659861510527093964162506392307985440817414860303864239277017915941712032422159137712001661033246905771751416875681154325200042695261312640334095915616530040859648063495944455056288830214333513352252008596104339464522803606742047036713281288081851790590188446815777017382758720561540786175042455588980887128550633289244580922792507336129257276123154582382600226214793694737363075743608095685711548283025638897683449052413544587272689348992078814091356162895736501419147203862138289945869445734701455669395211479571223816738784415437831087523612856082993128552638710678918264261664992580508900012871069699637267016760399486909892787401559847318905033416654346215379475902194730288847705308345156457049712485368294447161152312952203991128557246279157164404921132593304151298838559948970254634664556496210866276860042431521609986978489054041976996801724077064044446571855780657837314882414700425652548031693678400174765266234308134216437962383323572859469805823523426134513152574544289631154707094236254726210316142905042633109817721501895881355584801824143100035792521478303804512237633381686729079876356158185824615902478946920357007308747741152711844085188030289037022818421581406957449141736210004779781909654830735256543945738411388453771508404529975519447523862415933519913973152152472349773207761233183553885735632123552438422914835260651803040529083116779976693768631832963915403825615996128257469887048127727786947663438792000633390124697297958049435760068674865020684736324243970087500553098618600344887799926030952429430347838736532982192002401396656392024304247923638043409522386861817993662447463080565083454218257611164515973931790582437225602309560043250355456199917996908833455379132941363836979806509340605234133888921136648760653943994030527514387991473513494961655901359553647316253849381167809356033602345003680440455586102275277284465243450782717395360204346389159002641188725778602139364092877980664262124274214554090244754823607354148834760205274764409572316065134310690307484734113749338268660885225759750193103687618709141665720513359561035892700789823870372605192012332124468966137016045001146153649408605786594968676773119338273157464439712276018809045445055633992277770511592381736515526615462914836693371587686868126382499139140534563651473554895807300681734230865117168515328420518007940809089380150766278225584501797709189829129602427910824674692150602213846616430440963055405164278246900629194042173006358202183780759805070902959334927788876964479097567187651932239713727610400507358789717459811655740027711513055371282210736848360578206573510919016657593110093485006075407487476068539742523701394851465285632900539241413532268193385160818557039015394236026560741338202159390633037087850857211487851382453406049083216330755031395281361426315407711982366827547877653284929131621722034364006042208795168994756231134761385672591376833049258237867412712940411942713248084370038519268985367347282287923198199070979488196161976018590759352591356884860055595601888617879208086912838122795738355466455780871619495707478853821358341027427762735376137778489823977971621640128965965134512940139982533313282787143230830685639600527837529482081151938999236005723196730417745241475764775635474669054162408262967685205701235624921163854428298314893251172291583524236113735571473452783399965820318432560809852448943540793412486091822589257446593191010798370820561693205231679977204928841235823141328750538457653882790968049488612944266274248832798303463859675361620516330272706279863134056405353721850576695475598159724472070278861226246061494713083208216870717650768178997641466857518692657194186479808345895888781714314235522152953978757268597689010358990550173763132845123992297233809411013492669614827190034037668891386371100817813200952174507935177158562667649596779170775734353937355803017953082082360206818746001201817327905094669069818891059753215280354408713629725771869994887718579998005413890467998517751202645417931900534106466487750972988889192789184469298417000263068985551614659800846839297719017695669341095287537095298201659208573355059298495389176967963097112724266795704787830329023797006520704786520160647435911902796731663236232192860243898976646614296554709576839816048849402402300426908398494561524663085135274774698746366148783979265091526574837603722967060131557339264945912846108010730346488274176964379214697813383487132552101635302623396227721111178059225481849165909280617415594925164873237089079755709787920730058186836206414235033334111634452993141716923959469667546342567023322529260107046943952465960949948352352333590937946450878860319697777836376201456033502443658623663078836206598925754391515226520492525943844728111848433729977727246429506020904215039433654541310995801107892646075502823772502162471129798509369475786699817158961930711252051056513612163563243821514786135405042560116578903251080120998187729280702552605238303179553141863177644793930670605985898819319613020781846900915107068958219789345743638570798245166414028350082149913051119042462977335684865327295819576493831975131327042351895057976368441807375813881756387259007981930286719919554036498737981228531636737279299201463806595361130574168050903480035137978242725476868699722546145222185302916849377242846634227411279516270389255378729610426648417078366811605015887899893313132679589177906159083027378004094907621764204180293271238907273352659650654405117808107842937626654199318406283888020485732624528509460182012418151076878598683854567573830203239248554122915432808942978811258333638088845606407108082255690243561490607898378202992227853980636072592912216199470399044044737544931694807957966047379442914721507541434700332829828119876079079892605074071020311729726114528653798741325646873637647401072226689206106070410619109348342380096506693567469047629866087753609752976205625935440089122250221144997253305628532632720407947177192816832417552237379518089709785988847994582737575782488565148638720334956232389842874445805792875974154454776391922283801259169048450778163811796870509258919546426050493878306682597480823524226902040626384296792042032826167296866821855028298504145607328265744218350516564294742854313923953358069140813561176859305900329090651594980856147315352809524771946242527805719408859082971310577257934713911975975722066944563972063050987871736317633738440527267716350624100046700838679399447878387797765847896423738346619007088951056480591277079487650239366084251627490826846538289676644594498092172425651252099104626739884270099459722512869754820385868026298693281620328503588885122085465681356983091843814729597609605403892727416429873594316860641048530108021344893765312541522674019710987297046532045890118881836118498190272656084627333308499407916420498559943941641816924705023493361479607388846260691164675142025674514868209986891667084695170322296243171984450164385163803323287453714092997249993710166213297392685021290270487094030306962477458661796020295188249301557143713146251851564863215144770763830059190993801341937697475037287786572803475456850188341438156738069872666674434442995554598988747677131415752591648945071214680003911414960146726892170639387708572396118083555618703687431998729554420222846700433122679612235569895719416234769963102912204085319265404337224139871654014079883237505829167543405019279329629757291708843755985541562302925730655909704074708065530120449734365434612600125546802827211598908029638259498794194108865323551721787299436388553543070789276441961265888683652500129137583650239878955822111556693985995566056594552876690037693809592546093022667642587855476412016599160828463900813771157853159418505552389329140147329627081572621862861193655140955348598885233837294420745808394583575604471998275928350416433069887831062121076045933464934046888633372329417068522458131305441646505970952087231455558020853374835927134022743608249752376655259044968627775601030970489604899874369492888921421234595305440313593283369027452342931282943514612055654771869007721163854374526474679007645609720271406878674233262281168601212736236271910007724295189468823197264524179114021998070731248573616980789874138442716197858412954955815849843600456420291049260194980778615272368651067811182853157107108415041991966602886863945016078270214598209352754610869353755736809296828484555197636436602407101195455090308409850415339386874909367655526708739739512365231596369735023736257621071785111144452866315401404756338026459426147124247898229057492110980765717772508594578647800895453688834516317322653960132111472874257901279377482362659820726446416151968652033121373323804254920995436104218497976434164257597063592796955377132661514108277293580887776380702597154007167084716287503272464129714215475235707249112026584478416446960014957554927822793268891839633647654791907846196292049359420468690509894207584780423345767496939827975354158529141060871764580180396193460437954186570141421593190279366659737165860500118928080995928111382488727407026485806048960267011346011172309520228323058728731656981622051264604963336720375831458646658600528350100148842443078914708291419682478819586872642854907959794114192619215873261182005796745760626643304073331479122660961001846211650748268317582676611795750463657218120625973070259483524109736017222620719156853125947176339008614026421488690250986079170145856330009643076905832271710055472011155650251358479463727819412768164380873485985655025209211659976135445600467150114478796549577764301049504700595277388608526924781411112623474222412070025347295328092086902788898480782382096026295843642692222595721843591698285120989770433745226570764652100275831842036666311634966788827027042012401947913806003064532079924803328736956570936099590076666556426850891420598888879340359229192751180234652349945813800122870035291243287295515937083598693299352884666092016501515076688621984933226822970775608809575321342175245238887376822859997830197162115631319250949373250888685827370855901833094801602963129460284143159634316502874019132391050021210067056833053663266488608673496708422272007691546773460893779413128428009831657203004068669403422932149854679391181176069564159847220826701890628959866293524456772399159769924827339699657518756739073540459484465622161256381067563675187744358224548497265520654363657139018621814273570919190392445251072430502300644711004731296323615891030828690166042241520432340685861618432412499504442818868273658436235988592357591839943155250119594861394619920844770306794405329069453700048929007903186212717878028618947878418332016740790057386779198618187974489275807897413174907255030857900381140148169366460424479418626257186952895360808651116718776922571086066237795050276966676297450466016295074693223915429715141622681186179916293665863779772486569028575464610665635955942013999559057058778076991745970389813222701719418364690683987109739294469061037881592221266635782839251414164223936881823676886488690703084734279812390334089886980373656576681373491842363391407833400027589119338620466452352451516023507745299111436162923888318639033607332997436588074050101592093520123024597716194525546678679277911094408875033727899784259782905417230252692636572680582813630215230516367656218374131561261007123830006741580875256306729098857026965841319718293430205631452443980597362826068267512852439259548163084112150015376018993297085059799613667038639144582715901040985600066287353111148291873215880817264966218299309388194419840222770023260129224428158796228415941179046730916442076890037820953320554065320430196325499470810966672861836984805021609369395474179064620346357330364875545954397389487829004550167556670279518858668342608495714964715299858780302854597424559458951885837702687422848444510660131644846346353525694158490634011381851974713278171669755816264845877449522416255652049661224120520792078170299452273717042600265564206677648284112877728471802628152243796524936390856985641600355010057797075950323347012558926320369324419356275977466707149280953972393339936536477170185014383190231531675041213737044402276504965099297598365924717810498367565016516917117453946777159270305647335515557886751760578951660561295757960905229020487190808366259728652905090255313021225658789875914260028017402628309134255163201475088831767726749532696911725631933645735704982566792093757103798837474944853317812658953920436075088258667335289296156793985902886441044262457959467270371755618390309230697645634829662959839867492849463234538819416446601291179583995797732427186772466840431710546871624493650457160564338284192205920663397067170835151949531387907966156027321302261612175643718894642742390268178406830380767715998899959455575424148675086907311392156068739176764562755647609552415887212756773515969954042992468293200286213372539580428525632411035084786190971629466110905053917694555818330142538336401869448973217504733910227256618713756007542092192261278076858177670835121780303689463553081115503087240830252899400217218822879242720690969594256803064705205928614330769376059868868530446066620728006716053867311221041469859307066203331179411526312820506676227667655400577531576897757304279263031090126119002135252464560612378072115803584289161716898265795784939420528900954828002271283834720812579489021039695560070130371910396961303906699364466044915593928538116661455610753179018100569487240779249723668586566885066731896858412130089568244111281880212192487883044505186270635399213846863162748036076894179630674635672989898763649414055862556510312106375579179803493452605844730866606917773136719855169682224219970570048419674918846625715160067652192660427708527123622017586534772595513965030204061021147237840625751727146918467977325253985992136975328732106486457173598377715037176050738721196012715147747677845300930877152304636326499522226536671682069260251330537634788046664398132456348258142211984252548955557080807428612603684239672460325331860666110225862125615959112672939033059392128782750372247657118634038708408322174260179768456557681183688282228675273647775066809178993405031773255600251490337620478713175810794671605731412694149756982290205798978460321477242829693957195671538679726814667434457619832737620806752280326101814760706231074342159955212220070264375317384348416464712785279310172596630832059229885919748826056123148201246531046593587703919731648362030762902053462276267191346201745017280931159994818651176466024855486723162859337823883807793298478425936326983787866173160589445814877352584153068783078785578025510211590226066830417338414332595760620085286970874987705988121728305946784806556936547155812440686156473172830850456980552558325818628236603480069027040528965574371583378183011498515321786534972023028493280720722818624732009060524794055815233390775178430926618415612054407501493230115427635416360475013377097713244215337970247851095838106354913400506548464863164601162464312718322517440023345249512738561663149143874847747593909376364695101598382294415923296272911145165564065089889072744221526396132477093546307033411914275609052280327592067628583828845903665363862166951445455516420398635648272335329683534189281878270319721584444124049338330883450898269944713648643434199842122990315916012318448099398416800844169819005199589286032620202969134343172952139689416019773641625288966384856363382929693464044094120072930621412501700385100087460352537426945096615143287646655624475006288548706864622414927909441526413843763533266301108936752751439865508752041596553481356595758132059400018213275240541817067387108074276931577529285134201449491416276879851956782630773563908350421955419144995400697779269071089276718484884351815417841154770725325627449494438555579066808960351372274982708783732102730805008718284690993459626579026908297388705604010964841765298545071968993276041291989689597822915571480277817863081425911729049807539237436349522926457573824274020222825294200943381396600978827649546787745261909299324861924614160221668102209016938559436047422431609780275046175964133958071585709957606378196870751841720739500102978430508085522949706145675496123494273491641913755420795153841979566338178464245175469091468793735479514610655123421611286951155652600593264516014491458204863763789577511565765785344744144403082150124624934359116117438633165054095094857259143994758811070434220857243395682969261322018115547898005090480229949343057318236532223626911791921500687837465162324638484451609733139694794196105440754297662000007235609277021430809867305703595225770230087690856002456737359608001982150462804458601821454741093544865352252360578382714459798127581377650026162297236480444322875914797885777174881702359623254559653517784926574358495120780630455463787315572980207381382115886421524540836244767363298286585903552647740540095027722403795020508972467498605952076740479914391122005890145042594105109441551347726320461171863921757715105565485143324089004742447383485346237708795774244971110253829378949087114568948440535207006043263805412450629126820303871546882663248052154032227341727133287684602167452581174610295015358369432877774543085742858017508895260852276471479893212310464457406683509800122010132804810254030864046636484196333589836090831474813087881614015636483808024591358429185362135433784838494983516756243384657782170210304921068702799885178980462716602596014523095432630714452551568485982881046942519705745808576803324844183305529154760138011528157403093888813792355795010372574456842719894614566022830428378703988858513806648180386680918193644966536786566260891522849410986186954474824579047925226175936629918208356867076772105677508799552095197832751272450407739736355054080164779449804759860438868342043879272180235182270020654703266328387803701990289570760971799210990184697048890743119305332237693609353048090418535044486806853414875981058533871668308731721449118918090019952492501079505566573571574809269678630109387986600612678655759559752689637915583352377976479129947610603386958486007129758443149684568057339443509778429576031433787144190145312280514014028963450433221270466917130585692182271931820659463153860156269811103080477537544751917025066499556059783435252903210680790103025318035604528000187938403843214719070523538726570311711194893752011754424644222256813429207392297500055261341272457876239976740427851580839821515502493050133132453215116938990893593958407936736400658272800553214041787111029820492525110388708295894583637481552642112388884127592494990908521583891161799075281992615875634700603203041553562928735475984555687716503535974972757537555919100701787297318318961344935434686720246319584241835367720213779327205056779332483703336634294252021014298355776873502732816719867905031569958165972181532772167294194321793717334177765817310841700345318551354630533228295864533009182141020516691959350033941064024502636808691004531441140906980515779572680774101073209485556088789571552469524236052774797580355006325528469666398284223866522253922403199055870954003534964411343351931845826689214691222796256985385039959441612111004679025049037959178706669050982383098727900420028316218258858124242052912553598212274994658670730966348394048749565999068362943043679050638862991598171205552663615838961391599493617635774425628180371554719170439346693187273009706679918601319184283778059682284777772279479464648438261084645045177115317693271943869619116776108204750564259248133462379112250839880620925155733286583035883573587643332722639402225964685702079416504989980257972100444495453826989063514762646313478255096012688590831475409484680366149895290799136365604732884364906514772544497170724244207599652688896799234618723225213867419965855167889242473406102025349456832697827767401038944924953405224863748039749713715258191647381690409379129684023104510463734252121992290598129380587798456573514888440318556124597226556856236623384714812602085638243546738439405176352434944519645149950558414201930697698651453325678950873992326360942200997712834007954414760703196528225347186802433449990202891593208874343795871221878155287236572710125264854784848432157454888028761288492247572829211293270312100664560745620604939029863401305986759391192653802875723412463512121367300892600999028846319042983797044483235989842004128636911747859647004777736469400026753097339508999394360160497093783369021446683807855818481775013174306916978370726906479956782970315835455802788560703604788613292162735478487713224028332200131955757239821140185310307058276004242739444984293339651726391026382092371677811544016548101211993193518750696930204375722865959669961432541152994808304298335711634803861623242351996672822953553341997977452248364398384530699753661450935208081347570254427740052861905536306192825775592295701134401110045056832920520803920141234371243287804394490460022960774851336142495336161249439894143280000989143789472650920085567805724775346874287853286770673548812405157643375719210469399267022752685129006479894194108693955540467302877034537645710671439281877705009279650196996721242896965872350434793662962273540801315107569534989763386009970865320285137273104651805884800981625664345267660684692341105154612129169993679872855412404847291493407147972067391182757091049792544020808377281498134194512719185238892580636013550195518950606212112619712457702605189421891271072836990792086258706696844532339064327561419839403543079356244998119173451714223167289577045380520171586783583913109590838209987204324377382717243069780360043902741261788771805221461066217581588694650328559527804308203060856679026281380115431519705719273355849443088023166526130139950022968204434364730991146986830250418225256577350799474313340547169580852162619240772116218485533905173447658944268024334495746669595508662564622131178546836755254136511902490634889119871032897376628548555320893212021686021951143043462221785509675794648191266797438733890465719039980969613095393452830991923337687410075009658573591729412271506358929533896771421584801763612599799702826741946530337396748459005988082131975479758664685897008099866477399821374307412932825125956652863382246175159237718047832164739898588142442017203472213768666241122744822902731070311438719914927932747731467077328164985012093652243089382172189673238156135970730516699216668482123607927977632008569356193263928503686885500080605094142217416610663239240301113381424038117917591667717047218962291105167568507094816889446098968787462726846476775970523949626502047059480574335977065338280041960346002364347857319203488112679050539837500303726196900837811754235141496202376929912982149781048555630649795695988365444076491029751588071197559021143877947098970684726264342877715034531606803470791221391642743967136992874754961152673833534718135153366215174168538636945834059544310194420487145029676777112643156013194079640918170194765116428956787982736485332763469058172107097189849885729546715880596058385857215269134846360149802190547516988010612084516221014195027788035644909689783083179602436150638795546090710163741478368476769295144047014846020380023923085993296704090443536033697358834317021827354181085914397995730809823590576146671510526381800408947265065584313798979828844550874505756782068759523166303491027187959143971263980217471352341188638671425219508191623955668925827316464065743688726515546041008622930788415988985066804421567640706976047361473922193402990702064140960278999370085899007714193042249505786561788626802492790436078890776902299245677017510928328152260488169358826662332999333469148152541449457539419360631194041844517919069490126676425818152263884463763196307551614345909320981303528194483838911026280775352725771344353397487072013583002393717235501166904323421466032683418829399776504179705032255518708544931752266609271870341538950017893914653226078139415638266123710851441035447863780433017185775897712106067773766289869907755777450504233396657002610685655801950290772569029133745061149993126160788862971673953784424283800046673908344780089409058015678617442865474851212308046124774547329288212676426452793597597365208788579889662385666224145863272564047338877120866440418470228909292039341344812032624790868439598876853963172453631461226131488677193607091409640860463011766818256728890061615186808387848870937499750689795039665041705311652660408278400312795578282161866428920358268797015355241347061036461072869390702019824639956919062418687096978172012067195420566988109669789947367127012269922286566850409461248124907215667086170358880514223649280240603253886829021928813879277660958749064391852123588457329085388672440287727283911284331230268740188027099650230637185471670853028483380103561376692832836674701873078359812002028181288622839147875905767868309735721393484131701616979657878595789006615586956790647915518993567216798365250402785562438676913237391616151510780617585600107620836836921775775986467201828185898876975781417553552405211628861802260582360325229138828546198301594704996626623708437864227514230405319387941577727951431406039136871846858922662710747528785585679825375679236156147919485564192229971367318683165083441239347583149811485648371285539787812952126890018450731398961809318205192194540776512609135763853110466188458094637367416582886543122951109054912048168028061742391143268035287214312227687961007450628778223857598374110189065306786824606536689708145104586859505084240499534009197793079926058403484940804319144785357590548363923597027718143935779711939281095156551718755043402094339889050796309316881611975162807759255791004294608405293732667745965037432995899114093618483429265476694394651778710339112101762094874987815190412486211773993611460189074218382954846067687990139019035785698746246393352013212470452183320448431856337256239591933990206047437976925927415433078278162266333605375837546931152275351076471691153334580404727738699077491228033575813557004352212876004408180820749825564791377640120490804144302210698908594030613126189810357365907186618618393082598285735982981578959995498893605139862613938059842945927375161292837782561313003895502140639273176589523540805514030763748290144261999908317006347019805790983465851507222975338671933775904024035915238916793656917485767600605298722430971963817759006106439264322291786942354043312542618458984014607521013317712899959662892359865331192203175700055134825497371176924997008543496593759660553755372956416665228214322492768305602250926554088900051556749301176694016281085359005901831221375405017240115637570640884033336112704125520345152241978099550816605121940643496783277238828804662664510574231707534722460586812438528895300497753785740049293065350425839284095940841004419682555091364709779243385517813380429810612802030412185103067823751250026540703096521471316141005997112718681674125020467318235589138480416934732229430608427486306854212353917246918445774857260748995883892627533091457653806328510232741064447069673698754976866425415356661858100602279127309553430309313161627560329433267543764573772292543511648802222130851050642002352551634600342492470528394259178076146389156138261261277164831217064601231512816538218330777967964155287020746379673952639100605691714224084946429605851007943001034608999633035864332661166925886241614033257592275102127382485776822416456652125831058603458070848207628151276962971854439407976044256406605830523113476392184877540356826711011764763040170577595924827432313105038495552088899631622864402174539823257589479535319917047531704124892816663848084302144866440451239305967573222285793061881538454658152338110606404188382264154476289329800615622656620460441194318240120450073235160686560801345512300730470231769588992096437737605210012721127254900847047453525889370091347667026598591890980331000747945464070506877294877958826629055162076593020460248422601177466615455365745318058875108317409979189532249756920220132474059405109887155583154699086280871270116863624400065720171188918235023451340300090689117028350701818823391336690964200028039790186765443912069384295171924019374709336389979732076652193367033759288237608382669335344686461589915081704976829144541937319568755010098792778002172842958509117728466947553523647992534035872425283308760636476778222858928126692027425488688021113934135381283192919888216907737181179981619559569655831061271224449700553820214246587539079758711527767979444732404435196036001652525460998053965720144994989471325350491390243662718189320502579039383944052128413104306851893850330048709410235230371152446106035522960705546620165504106716390356386125646951017042347128457977063185433088051783719491115041988296385628948366650225990546400447181967485475330463943385664708206351560272043343395175224557131371340098149010406251967834658156944883700480861566789043907425440067187942010390722245650152254766924082822827353783120955590323147357472392011258741531400338407906191282149149889259108623633910595304985095940660452910865585252225504436974420476706211529869278872118565310274927954433808812248911821518439060986711057484299445746978812185005039517206153400664491116956688689116680450648031983227718922185352155846141905632576149825086728771715164240108757981708391092895651414042610823520939406482843760967524146731705339111710615365933334430015025779161134193007827979263266982630002440257924326321963624562623765335445617921047720870579963854679217327619134912507801053528293839116332241552959224949969579554413464045617894679493268765755078644400589275013677454012042106477268346219996313832207103522269329243282546502520279939717655302368178002810825594275832811658236751684338375335163465147037436569414152672258789882549485805081196684809099253519082301511742919600289560202974209823976278662741966526628595045468554037737686715755926858661569581398450856954208575905734459469274156985884595779699536694331271979433780719112892694067727438854680224322061122377558277187038602794613841355179746242057959237544764356694324996340473889574812548809905823182119189005630511863994442303358097907756642617794756801782315974471874073339867020509725409258414474205383175584999218299373349967953031883390567721126576369342835490137415025319758629898433866916792519985083362313952277769640364897846621252339022550849800438091720886915032952172453731734108337447419870589699707849544795994718569519885869560468116715800852171006419283409755192718489842365160604187578023904416372621214375917326464734046286212323320667388655179180017348830172456194339961254343486761767589699990038180158822390281121654252335989354544705483647257448800536397194993837028181782258971748063043759738495545157667094187465387201584579102512781694725608076591051192906281882364012051694692939661889333887596026713577169385827864531656222651149298740407450588147534145396930427271811397475169375841460336739482837940113358246524910424434284087146640619521938754970564918358773196101826830306552571981107955518259673972378450944118766720471446950474361882298011298880544342724355935236178259291126545498653372808024119446595568927508341676092924791428938975712579877382897503779550923259553224160098684074455470246311438151432501534255748869127250670422184509085529345527234727078765801240139584425751565169933019189939866462144964391757070463757148387359024113886803713275321731287182774914243499256883242083083733235121638690799505994625089303872083650158821840448834547697692768801323117848040196228682284264491429809188283975044522980284129397717543282578084453474941258163295925505434878275386195689296107325706910335242116706130960149641924393054095204646116219543428817971457055411073418042086402833786984763353845650012359581862989712531432866303246115647505745769489387106941042598163835779988606211766113816183665767670075654301563363108325163296383426328813775515308036721268811525455887423695025802582089533686340952815213021868443785614258196324599168659259594158035477509867031596574562010778369625078668433641116475710553852275245941557773905470892035144277966789442381262281202214304525452828778382692843805890580112143974533318236507697985041897003894270353120139111516118405359372550216664236324866231372258121518196566404862358186744357433238834009423395087480111632532900027455098764659507622581657741122468400156030211156822638745526348225946973029647031657581046490184345813863990438678240645685680906212802620624693084833914056894248724972493481648725909702388937445442200041982014388295112182104745715121727177417119357007299184749721181313951639361571425228525125939306659356233945557919578067126730177039779315505362467964192742567592617517877958397264507768983039732492531176531101967095291279602901735742987220098074168180599724258890177725024147868765313256345681993217028214387655617028118492679173236854573059326772370308455731157229021376139144495017325251231232987263770876132774337505582821715706215602500735031632727867588223942069409866515747575887903136877389682233917307789162153645063665229404487687313341053076984846274606352454067999113466695141059077752143909462943976921197536582956320804094285286818698755830125497074926876173284636470681559719354722292642555464798894022520071802329049995053712265748564949625375467921031531678254274890065782916369177845191165064983611923384471691812141351616975675481006556322680701193701990742308936102564262466008996811402070777777878747621245670695662099962796089124821480867934101991047234959752044920462817577063780692036843282128237731259418328094262914419588045332540357192761500339863035024076992899411368121052577031691436163158361030111639196830932023180471436581317711531034976184912092265510550408080334704431453401411303775699035537589783668794741833896774281703384743451224260612518784716360314263354038408469942556138051542126355583016314997600498848093064034152402541848359598213809641762653727366292030643477901572811053400771341288062687929377005931751351968321337227419873519091544483103946783834896805844169553933170240885626156345489605126958706035719164876362551277402902808275483138984675634787169607156978537435925640140287743844989436333427268233422988961039871827073661341998984133412969698205375032384414368234865055324999361613613358520253308416183747004515558075015325367232542101092489217244174929447562452632071645863402516347753557702774867222904374044853746929241128630618071715523910191741403365055380188803813527534489624547836783625181490846509618177285002417804807530847098861713831965835742869693516592409777172224753268074562255598828509353822742386065127345478497563309700666965810047967549960729221920521462389949189144825434656455678762163056737503187169635650243382415580762012023505622425784614744697471193229815165998976799891765307090165416601580054946098154154298657749292744839529783314956641996668075815844504595726121023017759712677329583093859328424341721792614153969995059799570053235116910477339696711104733674011082173375914513291601584401216161469182660480555856952081441090575220873766221923197629739604009561566002920616259719575299916773337456154277202975742856136131794152987371885056651122985545008993112128718123427723736485378398182144183690274790577273013700286071237180677751827458716983947969408716308889748868764322518767839031555439185447475829234719107607059716935228958265301222621274868501190833113519541832977904636323669433077453896656305813282858223919462316442760518252013771444487865523201421137132867091932462070376752805625062934442414604610158186005858799004989642508169287938515310611456645562460014328260306118821124894961210418496614621007258696619819822910941078407093809758903435114435050464007338403425880987387710632726104953367148298324859655894429778326799069600344841846271262346190077735924145469100114406519818559380150072717432793084136402313355388093118744865526084034123599282846382400273413707955404987260423889008681633290163787454792784113956292456420846547285635133369334007306027559459235867487428976872325259089933456308417585730010368461952502874351113050439948139591001137174866032411591212918063504218663270753534894996101159516867630086948342635024500622404123420339233596127172418016317463807033737223003710289906764121078514400413850941549841079305374221313224704729633679772393091276064661457115221571944363235638038886008193946252826036664149452739941650133758003866708584940369285284098739421336502532982045597213962964845486744206372943510301563952078643453267742543542006999214667064146817932821513790734552174824689548745337201138245185198186470849846730930712298780183161176014467934234909210041925536819760721185649045574200831279087676696098324824783272967283870067700804269716746813419318140660088645295408690995469834955657095854334092067044025517844456686828992818135588464304824864500281045575201285298035468834975156632128587798336801487358238042004634237429577947573409583348295920614478234141204070248093054544015750937729398773932103500743303118021638238886489647311156471160628836090077665163975030913196284872292929959634803589584586088631323022771094314227516504325469467858385758806509283313748654918429103646686171861329687479450728025794479554878136192445441601344324378781650108389934559901928936181496588375303248004596293966295252622266516442224640503170971805743525582048343906631015698878265543755634650044848782188933631774202519661375516856151722273964285437542887402011260633996847472233651562491224646646350311590338132747659212614667838131586773984604466271287810069340531029707672224941239228108268184065762780794335814694993142438480465101289719620847468337602893536684376154496510006703041560685027926967752081938035444852553501693577319777943263847864316657594495827107581304687192177143690306261187685369533267254691597123607549660320142780969987582455916841539814698824243951456293668413843271569427421384461225590144453447192232849167426927383570121274572079780977786764224543268986974335635148699954120152778357417009671376252501242489956130117454940759208783282767134265146197132154003672673407792554893024384866965672144558373744060295999336571740386767910365049692979401897795654670301051440174249118559251120621608416402481945467678899108515922871644214857815149381565615216894521539929036344621355483066539958977372687533353084501921867293296125865764196446426246808122706674044105954134135109835058290111631656988352512141363311920111148459575524025835192364029361416285138866675292226217683781620897770457440347000664619701200997349970005663284139706326375409038328080822282743574246592190565557062433649435395450583566616572498903135016334856459387319684381632851709270737549513795301043365521722007668718133826696710488922141253020734970026267623841545777717710621747280338313152039547015734369643060109319008140228961680128333985126612449474457565876942433850366536210683513180079043874849072204842673169930756311879715917611329438769445638791970859026464604647619680321214461638233837942028855478889990000188642065174159571150057242764859531468720555453633627552571521264492858892546085665228345547362468508159619340202453503788123266846107358018158695485825135715999135419131202786507331827036727402227843296572046311374182747624765778931462756280949775020555591486446939495765269906508884603294894548510882880227611145150964762664786614467167015243983595003247217059145309553135821552096715327506497943083248587396918010492780095457596595598717755446646174516162850382268356234550893748928717788817424628277231520416269942991257401992429590662744037751595258492011163079570816083446237631103815094804850776379184394769030286292035946675541442804261627420129023891315710566655143231003239776939866767278918905099746930792847655109455434457895448136800784716501632890037906244543580520423716394062058006351044725811538749090082322450288455482600991743432276059228034879072293859107856079264621125991917472587468654780968616056879763615292693878221242129910206761353178188885244711262336979696999112150462413535282450656812559026242728366131091532644076089799565606039638964713357963203114437189192874425304418189584446081956926185158662989692916688150615723326865349442345513095661995995600368197988844623118869836254282754062060065988629431444447413444704865143416306270129283462949063200916759569835451872940711806748865433840903534674760889084263134149172059919640293096420943038268536268471628186499926139083349094314925392857160104941004696530169547465934781571222432555856907966517540347366649816237067372453216593653498603427019119020681594673067454845657786633957033421152667534157502694760039098936541799885313655570559479631183531724966879912287491863560028191694258929350735102124987572024803896387008659377726078674027497696598923159938911072649791202788565234469698691921135815536579426447172771416229377753529154580351610353159506762451542475844615934152772367248705900517715433909469161946459794537699844838751809170523227937905777777641709789335506212147716377103630846419082165478690674218426473778756323205282411178896582341508517342296465425621743017006926484957658047735172435265402549620049473727297897487266444689724388284544158856476087902825526937583985901268530680591795188303367112670851931426205868809895899432492674345409368472202277149399483217136459890741164331828540663916190670052364280236005003100529808472769524736150016565198839302855217789069723341157841034459890917145014923419242688037769593609586613387947201733810039789158286715609154132144922762877336449388794468017358918481975637034328465450145422217314029283635211858830965175594105640375761177948565184807953429724096184073298478485131616501635767189227337877558137516096539407592936526702066364946343676101195004383275836306427086380107943804263334150560429671446264498269285269921609478926750262106742837968016247834504171198698265601037306655188693295620278929758151591494102455961306971122428094577123819622473318359967866237536998557536440810755242338817098116212213409764152135334176303093471695301561163861542890452894838135849201109602448728548247324076205656559005155315647356247225191372935898271572073794626432027049874740634210735965606810309748090648684639696137774723803677653512828221056546770762165847661368435642126304196873509478085420096006992627362913219754057855309132758840743868705230899689680320220781793538008006214609112531078034002694546284194452364660705043171634399586509026422639253148604380123705820162339147261956286892583558167543613052530857087945897068026410801419838593283040454673334811286117458700547883630637983341959089831896814588182082821888480713723495020084301343577669282631621003821881415044332561930420670774082962351769449385020705878335178534853667992326127940937537708381723763755415434626872753272078864798645239812762564388624714997846430121022010278867731385890696078672964935621375180913281810773656405610985423830838000189487894190688419725488759517180737483724006047882823220733579603163342351549943414652687620189127149358025228373283066025655037547911013435619727927186272592230786063043152467091367280578972821220710721628564178420874565801891545212518470758562451639256982118885647133050030578887370631848273322327602452330449899574123654602364633239924584108860337276125354063729979458556494357245877186684460353695947478748357695295872455519522703114483538372389213419738128162283182054012340065382395533408522996554081325141655970652641789652821677592986890063011783274219546719433487211972429268697116328460429643204406809886502220179759407661957263428344639578968984005605590219602036249855384126309676346238595489851677922386615609622607402532414693467563379456343369879433043190152561461770672058859795762313607137269574377146145820584461087623361058320075319065821212845137372934997401264894381587160426217625719159975346119940964694643904146351511931226626477757977804259382057436823518270612561793893243616653810149409961180201480790373585490076879751527974550503787878662829792949284085094213795939616730624038180693149200363575744464918452228886175341118167565557882614131115659800454135129771486701965047581844810030562047173861138969337524793987613811734422427483723768808500602237459944791414198824296853563798934730390857399515245243602475538441752644319484456586217498307959576139410226297193811649444221248443312226227570335374090977314521893561186273257169676497319249869842656438860914926165967950662247320319576931099822039081361729196974997897874495684346011997495575539936785519848597334597701925924594260412371689963303058415744571316596762530876913394720413281145699424674336077825066176726959627687889233985646900691422456598322842373536213935501764052976892616413815893810939347061065726799759186861271563288306197229589970835199308190338149149159327919983064647173399842561251728231057779575583485164729260785868626911081327215935882010045734037787157370401564804520426619799229085546919470778819491368853701131700329321157481997456358767497825335971411660902785873137373119098082365819159783534172317843881506812322452960338610162767326645730098100324272946445432995478843605026511551766566287253234925264504279183397908254642536783441754885432748314072651024355851353480219957238502813196911193001706301471543488059114473118706730973283701444106025043646748809771317336696777533704739741949258467430368250122488824102170096889186192123856597867342080185850414909543836409490238069104988287040815845853951285724407143809535919127871339674148653250631514776523840116066160566653381107731221622289468695508629399525000377628073402066580701894777084850469154690310702056478826010877145902365777537204526987739582047409361869838709520104380449115939588798789147295984561398809460747830271221737823688955399508426168694548315385122160569648964135256262682693228575835666909954025280873629418521618575307440652433875064313550895648411923180930280869851903794150887996874432414436719729031178832050712599225746245995406900922725027986052362962990830734092713296825339725642958229801253491116148432551286272412821950428626072271468607994538105861317888559036437468196021874017438087818593225875832245609075849312956138824711949045237284072845319694935264732994518263637865409969370797522925287045307134682840436026304128879526178665476500444954821075835678935242391056069248993149116658020505840329366133580654983743528733514537889966013448521971301334892700738514211363590462172062477005106611882054423920518862849748785146466722866731866942902172780900524716726084904931972552095863315443955359255426494694566286228082607494869661106382334466590904736492286358441050464581991426637163943788884487900517570082207783959009091714148346588235682982906310327343343484975961884432773557901256382053526996547317124686253215007863081002989721115477989855764135642099928976435537803776693854019511531667567127096531072347800005974060542835648374236025722334602038046267184761964640733378575808391520780027951519380586417437992345555971958272019728146678103635175739942709999407650397577255163046478533869308633400612272647471413051395209308504978323244564028071319557748238282502144720891117271476286012089635025849242733373763275475442149105936578739767430995887130048351952056261945614888556858616095033254364388698676331431295919037669004881035023589598935555187526527869328028169271760598464260330457499001386856147694632388271587604357110635399929837805460645357509832534045544792880756355695720772167730355555261769770905199669058641479673558400644938821813305154436696802606340683910417606169771121299728553147929256765008084062892776192536052142538234686614091144363091077763327717755097680577635140480327283129616710188073345395565869247593822894479843515848413208863653816493005814942927420168055178307839260395489659272867752563706683239822880645933488445060416726296047923080404719708931553032590993912257072881151907035409154300637294602702659170872623373834205230937608375735178475038966674663657036052532312709667773377245033985737618556019817724016816865946865773604471995389638428391241250061955761547101001236058190355166075677467504094191725001851869540354788882866299312758707600847550842063463553413518785007401317668160685354868235116262005051881952789171117425273552977967544878826587490997141200705633345000220014541122064490114214179323372750217037482518256341680991078388276141625152166588281718178890749914792897015777750186244223767005029255628018756129421890595393657007473149125807980329865879140446155293379428446506162982518611743314186949732425650305260667506440680942426926722719709920512805286443796810720548250268062689015187403279055327917641843271038971686402139473821661401374321320278980898578229644018817204573762046315042702897561380376626611779992784367189355878790798847583190507951796625568049203080684776271383951029592634491213675345286074798266790860335964279916471348269753011024519575597061564169811292873121257316182236728331810155543296326874073264029471265744826852129756268131122188485300562924226278421351705271728296974081032229663027297947454298136064870675141834582169654530106241738070796101217934979515880391938925546685797596903564709948355774557054770176935376620357477905348567124489616024706525632484520255413773011029436688466813024587636059713192601208505503437629656835887733589491420433418925652549827527705562115277825101942997197491154303147878749533648997855605254189602113775059948518274863711862456144324727876209228390448054209664769460058587356562174788611771528718089674357532953883891572455809389476550696453352346968588655706589483018732004138182329579860057029644093072372490557901151098139790443940585855759275355144260653699483710387526068711535819009307644571256607501751161521672620568234929909264991663229869197548082654827022574089656228879751085995460553918667115342002652810271446620460017719770859097374986942849686991041172528503871733160737989765139611973057613195018294388043476926577089670735809242023725094194147627754646566109748875523779912493125218602161740716207263765521306680069731510245231204022721615027032220720605958818265032540683767332597789899103568482454529795003431145793462049743006125632566422206407695870367558328271989401168242477354499452038789180608197003614932206690363107113248545758581392890323873887847166019269869032447921214762879846749295259705142291681483265252339291663575978199042823874691106436641312411703945715633716775429350799180763418190045790470616720909544559535410973491377338994083524068592540588174099250881979531775093920663053959450123554533845097781768561868424288771816597379664358181663513009262738348000117642006929284428723889580392057471928144982560878525915360420504898898063101550866650524879618236199677469368840825761554272129059365519964307357282892624191813653998698502831340753061892627897400604089441900041042846442543977236007056086538875906226995934360587851856690247927611651267037417590240860748353971173979544438803490843216527325339148573128638736847200884177451935595471227242223770779529742907409619188653352773219948144088306511783519479863414034243294778646859825870879126377520549229559513493937492163319930188566555481867171884004224204242822951534439418120779200875214862040502525717306482144165064223308485364531477576536351821070553338950467010246924876148763518261896856346826033455308766775029044171402850645669926538038019558234424116134301618708088009026590857485141461183181641455144939835627043124259596186613674967378969288559144636118426419169817082667960372559748173102283304084651678178983505466933156817725055486241462920115358872259246939491283886689110350789495389411080187567753090261767384048016887194030043954555839611238800984383280776669404583935518499837934483763815867604494195089495062620928042720482937671062974423339494342536650844872061467853678437094215488435631216059275686420815494779687927980434858228532301058218825459420209502869601934029127853690560056438627710909212112296009538841693536442930286974951517278415359163372881392333800259435069105924008642296060778714065231181083931052926122787016943431165947442792100496412668281984111026741440715832793711453414759885852866788049916448872372706305984066476117544805106992319802370622695723802764925538896888693654886995463495296965104777164192709020986175533494562041817695472441106159606003455450150462316206203139696821177210024443799080144556878638754045696621151850844668479425073319316036194830106059914360680674978963737976181972892825794383980510308100537047580753840871940282461260173120489441960561479034752932409644135337905428584005844738294020765829047319694255603263808768430507388219876324652879666603797988087652485548163932254098428487612451538676141117866021369472852545356535130950837977820121852054605931172550086103165177764991055888677735646052067847410440795746547550611676824279946789661770196563489249156337030633628772494023240414939430151527550059762598351181771424170851611840464335191656460445970613695876891532154082056722759758662843230478736419332313134750302772804058465706567661645033081461670425564905606013277337267586318020686095622278188045094983659986198220038462330275394744396219601451371718428130908579695912302741835326130615835133255517014153428694526767768578237982830896831877179657171142970079103933884095533340011783309993392855174594861170634720759583469156459269797944502022454046592130871879027190146938747318951087124226124859344794701427420487976646405046420765582622970042331679412389330190552717118508076027216139694696614895487920176275450470511792638321543355150595691333495656022763086123239482733920644252317522937106615007464681177929176758684766179212506259726184452946895624017679574241510329741537413292157257659366701234836617759903531136946025362651139542597374692980965684721619486387669651168033812511802030069097923578314314927211926767913404343119595668945067646067479054035518404117723231431727188498938430260771401751109281916935281833454446482174619632410931638639437814530945088877646916525999553391188385280576734705743043842970647332419343185418999575150569673507390612035097184308063227890472749599825844118147783472027158519610276871906758525810772931458317960355127987448691753550438922397753396062966715860788577597929611944496287852827231575731411746689696176276997217805892852887002286434774149067794530249397874771884079761405350808201373078238188246832179461709789458240092611736308050979832840860863911329280052688203160549707679212782884771146260803941974984847900003015958808967478482689622302662261340987865288588809244506959376921091406197292696114828734822512747136718502750613427937345999166552249528501292079718814848662338804234626128304357736917765235112037739190297220883008864828288643133310896674119812549708951163261130669484834718692020395191939520922237461598361802819990251230044201015344145721933759654715821243008163841782385257587108640444950316950017276566843648200188922321940221234175820485756684719372031149104534727411828118215411389168616670408860079004615750091527093004445353966199530197358055100604331727284687397805382183075660375410015578953876817955501549727140652311481915069376492278355366052012432896218887208891007681810918460044857178722674160909550012330198369899857125933902366076441225953124830223376757910424146013833406188826864955737756241621712016792557394705287309887423290060520933109259703852091601526470287506424816795135869755832877276243559779592154539920283529656149958053833927597298047301570372166148995816312638519739307168468190083747544662359048394804724124773176348134342749690440519396067032182383717336202226295949762670073774145344843009024223501252771619502950768191667152497035225510910927896272334302347726061823659806117500328519027071112739136721689949939216659034264413719153411007117202309363345669168457693953612152914003514917120413102902090449186066223016099102744568698473959127248461012299529353268591670760970449260840368329176938075305977035692179293676869239328015618275407226792198800776997995837044098781169294534449376077700477485932513086877878661790949540573414944386775610014426749261231447179491806171005506960663941259955655633040977289612904951383091098052570580841974830422658042315426257469020860811708397822978559767034821400982772153772265267857258876998183935830658998632421915401149462879872556723622845882274436558110263262062837814930522840906492760615292722259503039334041472682568891326542463342888076943990212772884390358474076917034959415126325242412098405037649832595371411526239664917400562662738648353091921205742936278653054942433964174230940841827902981211498789145319900044958345631165609465676954152567903076508523863431430643628035668938244462217100137197561967727138471226602026502713198703518545900907256448257288264479759234475762814405715736304555320631583591901788188800644235360341693181178838066846402725052927956920547335815246630162582516651349720105392994421032613280127695079601344077473395522803566407450964814174986117465207153698830279113509274092809854716385450987838538417662393955430267479206671562337625262115684343746962447993862154889525713440156763323358323297824856502060400327734301680739755440280521538023128685318518172006780054700791107178424761239765831239340022541699234924950486696175978167263986343939036604497979290481593592111635108744431122298699732909062524308207493644561652894854656016296897799123607496582593056879668317856651696856900586864121261235325170514512256145697828684267543275990192788011511834417798376830993956693278719222143000079736509633474079794041891644306708723386475469612672767268649385015696516234004713821763599956911023498810466173687860833447466683822147168930407502205566731684265103395321716064392841536228147415044998602955626337008798775693504072897093289135157180064806892935578967975290080441476500195328203739424434317178944799943973012273097680567012966323464930592391486131582189597821537917467808248166936503012538870078741571589850569581925968561987535827562611443045561024239821485676111637754927934319320607395756790088541977870138662848484414699602585239217014536773509087917514206828329476055977608644091054979502870567872879164201728980509850977326778031774624762404192893689043178720508276876081237401305172372512613168676400657521279827768034616144348251233987457971110619672393533438518191884708457165138148923999552950304314053034359195263222126606863353925434328010579728699758984235148860266734220576199068723000308855491404300298339954461013720906767066656635639932909357446290852086911458111502053504051942507033363041722873807129646890352691680087713094786443048289360459013970519633200271840027720993796771467428831393170645776957644742887715162255371592959966745151928519658825995350892954309816506290504368657106665089845873701813145844715611131002609380476437418754443606597223391066907979756731809101765202607510532402758425643168832813408292386686086389402616092490344779635730774105933474376822640568063738189907992192938700085379670706859302356613829810193370335376672693288163399868289162067358017413465619074218536063250615460135106826843032610595447543016963956803979171206285374213665907828781427753141064472693905047029607079576582419840384868478127960934875992377362936886669889319051075547393455472838137962517356983329086017505076570001081223418804286527525848560941083573619823807522570894019096771956126514447489482651278580746528599854675408269914310641517284751199804516923762975462804158286896814323542685208873042132618946865113972556952829627850965109491906414367263300122138824923937665826863435484551558622160745941481519795703273933153869716210834268400436691052474576723229892026122891780609254050005936798405712637740139040323637780981017913111447161161055355771904325635671244836378302405665397872077935636243093740128695973433611396417175665007052409134486116869581495508336494513872678302585345272685720743661713050285704488317451948282243192603337074239048601741914095055835939732181158695482986431758209331646745907126972249394226742517017055021029900590572872188367422776364283001736491191871837117209427476323193319626211157616900728492511731971294190597118574989861666205058084991345581810427291292486397801751411652275532729098824172732074395607020429563319472320559593764196300160983548476795990178592817734515039521705863207094399507500220408111118870805873162612819662404994676265029364090746194560458537226577939577362761825735829413095572535311684462731983687007034828437403001606018686086738502204574512874951176932907473146974298791066758633587070225283738455448200311793961223621488600900557672977961310344713548111263255045557469645739924551841029092350981983450619966136487062702810808494781358447413984427383345717095843495712348567976056177840138495288861318819845408126530060131223217387998497787267683462835239775265945890283406848144593774478239362715033584446881544793837981938471879735550636263425679883767198022172693546072629973806699691993531825686846723606994971861174218211621940281629292280108572356117800489661237228861832638102577277379204541159081574062354943435474720243449508180210815532830968506988615684604634945460271632892034440927120274091606172809886022218533808805714360108989760465924020253056587538493499080134335597008297650085089448344867671328902414153768243973166542220577957820397626207611452480754790303137867816466126286983941561370454311146248009512779547333184967950047118239580972408023847201924409916780414658054395879590916080919289439196040120561733140468031985854807473198019465519284325030962366219878763160755557263400995217400016033330315766560362000892135643724614255679092385630205180416699355292031712300777587009684094209766375340818100776212160859274161179108398110822739661663515096967409118677150584998977519672684692460797188295563265352446917018530947925939127309822239678909610653084793528192013119073506417238126834229856647425228726358864573517508447368342729388975174679727549727366051779472469897432294906762573308293474573472127867447523334412232025263131148526670632942948365318353030318178700095844757092651979520822804606844407426270368957712017563079168601234908408610956531409509310181867931225035097061592717137881532806258887802602457570205503483874261457654018689617586951713161066552703991345329617825145882256424612152399001200301956984401326540134744163273415407161718837202472536840488324822371119978866147046859825814935310960848610769222499581096358015242946081339106460705462602626098996513776173548906829774519720690879508787460712483300057317858521407719693706734428792955976311205037265634129318567911801399561865585784304654359946986333640299812964141397627146701951517103896589324227406937485567999890625891943264971338043339277027300529040234871749609541513593497782477547897392740538034558041689475052067444287186290929415192887700094585437990800480596297795211337241941642483755475920634407814468629212455861549600684790348347445007441596587858999546246181797424144947640377595130852390903275419843787410504856054785937504724137047665807446615911634147932775321055562208353415117593043905784688269566433035521025561482208653931156502534320649167133123394806594027906795775416345722564375391263600514331402896403356989135887385239191990794468029444337634079586075258781899269393542131025540385253040229681887840954136682819348329372611910617556697786935029271655803274932073735013234108363675501004627668775601063880795400900094988121112395411571217040773977871699110565426078497731170300063822516321220276052039266102849173430588133301684137730078592461680883433583139895773467312775609998876263557695094070210324737719069667588943675861087803230638932907002007812595495437962260253018870603075676218041525427712388680545633408171443844877825437086753556570111857354670813865655017634115942360944136479489795924892188745016740058393790961744321740648372745265603584668769187373560852252572399318824463245176996223929264958380562735332317121237340787779031711021550874400952891979844880649271669715007693666381010600222000182144957625307549531937205193809581027610004956048519677149637201109083215200888243736906852032889727505110709761126729136145024528641220488150650620133645642723611234255795234059324459324986705656898087181899561716019580110379072220571306615415024753302256113103550270463990902118387573194090675549966077524142623696547355415707264046668412229697075306742383477561326365497679103111559620735257532164608420560665523502909072241481443234822075124094326002287825735295512518010164475915727285622666804273978828781990889745039902032661895562530162018481082855300424141271996000778701559042881311614991879195179782964248043508124452006098663815512213604350553035251533366813301020704708647108674414439160766291205488889582785694298820187138810645859350360601352078789135854682946746874834486888718844083335015242374252501253613569755908803793183276410694391553296124947075428399130648528817397939230092017785203611420848774201598610388365532208603110927775055316437896617900390999353174838972987401609271222300186081712379460707565649512079672035837649213877602192446348944052450701707208734679560808907464990836831147525461048367399255812471469457833600825160287855336924348281666734861984104567652632937280695797339698354542366519316466745504816597608347933958804278018986142565368334928980572943546443013207758134711001739627992791035658588095549858675853630371476566767223524811155005486103222916817448910193450167166127644018823155324817765247086420889851172367120555499046216979085518561377459425135112425439415416793063432587682321373107816321927755146433998685665411061808392328286278247958848609964147567705921435707859690079346659576743361429225239979593677101126398916853016812831324430811806719726707318698905798209373756045738951713337199952396729227651833157955774922319397345428227285448769585217382351201778325790900554632892281408103044802091513201217956637094327253684686288137875880498811303198137517601406828932573139484650456517698988021200559862248744065166703723070028338623039952265979428808421976215504295419457088263279712338864950919342754582013249106290866780150452064388961097484363740230970182177216309095967600255232225139120064749072180954228394155078454516743587912280775046744908334008656656951638168453502261367960083252767002719953769064052832574111150290058521122144623250687895445189219073789918327600546443616112387463320403274541678984907089289982312459317896616622287215057401181772284313996129580469265362006704049016622558021652054774850034901161293858066542729323193891924399177752292360841239909164807580970801828619412284027541071086700445114114105237368693892141512806550044610362812243042070140141466554649203012344730061197695288115237568882922892513412180652841114045753817882325077274041186034922345356888212614158784370563998709338357260946093963411309783307062698295422760074131670143975766551180381699049136220376306436621846750377207120024156509257040806205243718286887744386329278365897794623688809344508234582838283016918408543499965406240290064114514907654293978938253398219723661183431775797697087554490697173111190591560482680996357560791560113911478200020472902172117416801460975938782637872468328446869048697991259814599795905177784529448637673582319971430285945938841272877254773657842367100631105342222528506660200191056148344167418879203196260784657394826766376390267149390699597476447168327596434652681267849196063740782684554594752515510653769087447681006293099398038883849750858093280187519497851554836270540961861646298954594779897668786234875258942311146270807299287366590137621217973743146943611042166217788658930825425958744623980463027625226211117534222019774676851825474219955382921367771418735286720168833943321574042530032785737271312664564481319028123418440319772191108318119103595520011891693946125886946804704776991679947240306508114923785196639712415156271821701459931785359448142583517894943965801481390489460735910305583810957227924939866180127386249334734633268551965829311613842224669591319134967660983034783660808539634857124196445297502135570800815240479423030745288514514188672069070181908758682328497241798107315010210830484141847271964457532245683726431397981809621578554931325444402839462787015494015470320175077084692580955052154224605996109793275875665105342155834869162829130118979532263014215986667596925875448205821087051642372935341244543211443287172209384055884130422841011666828290926963771883869427147901040637923292862907916894650726569449618971756863213012645002509742060671173601326483743760777419868460068222926141011573699982989018489432067225297724551501364012878524295349735343460026936679558610330719230886095965706748097691169116391167090694836445577280181466517327407499831440722686836181204940299967244373763850332890579614111117433853345740658509393902616062671519108096257588502436482980741779262894332329922205082567983140909914511940887140263279328851864402150306738704328411191589287778467752539386920941178984581904272704731813270299197582075322108352317440263726988906506251689285775732601071576261356973051610874368678945041098804496409299764920521963323525995653166806750449508522487919692723695495387370130536657197941545759003899397020190741180907261957115864148364291855104891114653727516198192518860933992797675242710798420896186115516881329062322155358812626960205729144470729338106227652369721858774188079652121089147228347173488120013289827815845891701016793962828463604089372768345567549274808766268719901966348586315714993882766920680233175530634962018624153745122601233507594747042698081510954452621820082316625073804045899095833165218318005955249660573209045155914708535664510991675377410984739946735510478934149512031985691535298792147107896164505576311102087142850968069908819119933118591366511427198349261378546305902558298599713541303504574102454588494358719910267030481107544786516027037435900121489152472017708863336939784526240038140283179658186168345417678185375945540699881102450021864167976006738572113271636822916689507679765976051397589028678564054277257735202859954451038083770419437380279956958301964667133495594726120031056737396273904319981492252471590827178335681858284682188747031671295981850359364573173209701376248486337506513039870490765590163153569935070272636669157836589680147713134558316813888526185789820654734453235985671440224258151123608742792408804118963390476333267031385219700490022402070527582589225494745091529382132125291074576044229600246680717567308512093202715245257742436526284970348213528947192605289272205004508006680560426214170087380585644483873915388537512021652704402770272038134092139208037501203715930738905220466509181310122789198381727032429490014688058176850973448548134831319716980698991896199428093252305797735830859311920628130615842642489173692755178330739455143754703336642254830314115163391893405153175672728675266989399051819747096730759476563390513535430177309793876253126451376845106351564790454732474251843018926678325843535840017416900380897471325129198230275527298732945211874923814431768662200139933366995842390024103111430898896553784731094860272220570531860604151206910782075287855440750834774370260884607505357215138602655921882528882485027324519166790048692936188446741972449411761905131544363888864877241511372853481345718245761671484915009578712925982742627151273802899846136632521969138379662083677851741955805205806987374608914817921553102045557953288341524990996476441783786949292963384149454493903168405905424577728738879387733141848430436974384165723798588160265561860333182599575921808569686115428093412289955498368841982927003164357116712019169259431209848619855135609020358896292616881903095236627809967204917928437967107044206395389468205790664704165186662093509179251575308548075330659946478779371808941285296448517453593669502678714258163748610069956792665656574022064712399241718750683701042800287546943676003369103404484905134289503062999203174996508816874331913313874347205933836871614999152123818635244643711347246643929684658746007190063853023318308298990646996491382846496549700859790517888013084837944464469834258218326942491486220435815338958312635398636202435414438650015599293647477493746914810837534666174314279189732958829171619276442777887801908505395096319163638836062371413122622967456882884115453480686102645889883374994768052868955410787020036915258915888732705183532869093953296915995129211416742382943029601019149777319543733880690585000762711499731990335139095726948423722827348937813605496666166892122198730679985826815280243869140530355635805000119554156762642081944538915146779518192909806729031532743941999033064418543752953446727458358276520576686364610751859887347973398791795916618842907289453903391158746212317114758189569259404676538182978277748191315130593216909459098290795364368713817898061309315782256586183760123115950890223563820578415480746900979772841363185037920308568344650101940671462827564054697134817618574421744447001396232601111940824136619108875023625677243904544001053345299349009187456862919904327964153001474639665754121897032007772902463156566500139508762127306397871301392339691707264643279785187879819977892441460642814064763825108141503676071420757358394069089075027323137688935012943953820941938449660672553367932090606985820856502586842985706182358755812193405832432807840650747478346133147812566822362356125174263063680949879615119604628398201745687136203483814994374821652823323131159718586449357105061950509834593678730039961042288059744917028810133277689896128831984865222684712744695004693507507708622613286687159171018560914906934750135857278172000920420824430912939529352074757613678214311395761718393532200916463638286263807440382996894286383405224740554264087980329059491879868908200271067005857069940732983477062773100244047985196237871999239016206290847752587631539516990495871863741204879950312776328434067017469055053957586055295677732685268048523030432858771656521482212646768284585966711118810045433721514121614793807536641029700644391465353509886041092593599123675365257377741995086691468537911274869788409631309430253028295175147359839850421275974965383571609365152494470861876056769573918268513891995649199076549184727861728390368017370421572510224578138545125455500034171991930633311559919324914636418975114276237615423771591880355466181835428168622276593443591018926891384704888760398355274038253453706543715719565437741787744639229400780320974780138550696029482654385781950563006849313209444626950512439011900772835376104932735323994788138767492855946928969691980657588462972520700840698127879508739237989225760124205739263057384457887187834723048825795473938172196123748854947208164396345335226746910253544186656105038114852642722832017049234085335326122221428119892145616931602679644847120440296782278804493817892405073916746663967197242513803576662564877354472201974843136593683358258764710281063945088964391534136423399273950389572686121015785589226853322549301437362350019715117110333138576115553794558530685207982029708153677524062615868267838584469573975358039927625758084842943965249506938997088006302139582357857981114602135970358265101193117105762789824396625401562700660977018740052023724377201370627073849244835390516569961843772403857945639507518276071047380529783040862676206507654856385318578256920460722191283856308810124061566324180134362092675235811905610470012869599154267373265637221070135960733285800696268104859293878950986205834621792886517927504439192356003911136638917320057739253391647370193078089887242078923955097111034431827722891478921962725283327176137282448276636579994784833470090363972444301731091813902200947762495542473159286808525323403391391385534919735345629404383152022274760674164271995924091986205295188216099687867458245908895573953125363187535900336834220355103355858405450173264128911133114900396137758206599748408761652078696334324363902136758406643457811906797449816557381599434764011576693336440016484975061875533207600846967410095391030736829012082906991388272104919293364443622157763593227887571885681229019849268928983083438138928059438732039610565674363886484357360594368825597627935546884617770349729192516762522784348782972326405111559808861166335035955590644107555538860081405910242917865829277653357744822008519112486358414993167840959602251998012517416338455073917033621877621280757467732899105035097158307819309193388845044356780315943592589807762901510913150210217015935420656976132681138938319832918768716414116312779092102790672484994364045872408440247981807130947771022968098535899306554427005160595185444178208999896412781520554820603161187915285829021987947157059912698851631672938408742174628586511128689202105779154626157234769612271147451902455123969788619264673979985797254230435603502215055218872538582087440578235237033280159553989794740258300566338836931107353034962477454997071015771937561511094992824694894279826000672842358169226984042309653907989210372599461380802326479115603132951674899225019915192367994738470846102218545165680345727380649649313716961674617186013616328943415190185666861521581427750679039223694786236058337164802658197754897625088449197585664291069835470378425420509043443737431847352328312567361253690307243969095610935736817939836205273974126154156252113770035128939584527967207035772890154160043957399697988868449779799313651698536889631286687171087819234494990616994141210623596142118801244282336881326330927600764156502561130807865193324107931347140050190250438550050403747596533498562728301573091653217166160967147926385318330380590607228331667785369393643423282971101284120302863602448504279982364503870099025070238839211332332197544830404205950311359931733396394738076786338008206615605765183934633715657806038619971487327109755336723957438946639764376052162528023174058717371824486398825307426812762562355338738816535345128727858389657390472031355266971762189850726515352428792657905011814517097763248559999154889792150947943229258070983287709841467162651901377062527916065776066193945952881861062085061378454172511048475109647681975331938275621669141264789949089345980925428388053299496887000258709819139460762397928879660694136390569616024120770089822479893867848173773332313541408170730037991877452235411599184365335844149698475143352249613415149742077460320256730223643661686479554493120039966345531150476161746310548393772694044887147375508239661150924059152049032742635174344279371063449662765451476840969351115757590308156559604656715266458613268544848373223194646675152321784180097621169427468381597136362814284306834152268141401426052523242235820620571380946879730789870334063340430126020364897328816104519315081373048300532016874432933923475703079068228333321306333942509745426739672643232183497038688424136668232248229262569438464683101425731680487990060062835225031828699481878939212139437902246785560199426510647437894650825315808696256043587378293038035612899079225855233505195985645419476816906228362364630251454614872196974892348176108758015574605812370566050574295450852930977639023923732944368879957708489354549391914233174169976617356486923409617382095235135686638461543758077946379834727536505910157300557817273055202346756853780731075612951847467211255895351131738038700050202476325118877317367395502901292105983640674188134008276931208247679502655222858342212496300746512084226634983020971828604105801468797371483668405315728535247106989329066227762378776660902824771734361219548222058138893018838917245052527676524318418785907185934833415860666557712624519326693109702230097981557796863565081066477082286493481160302424009982654065856311555818096310856566345832572789865184190830026801601895243089032497082320116693210280542507621514621275028563627844368810852706394254119035252975839368600581709638360757942862738303244849894755854926454931461223444229081739611649549349772500585904497310803752914584808813446190966350761178146801374304201858399334834102460535915564260405227298954708438160226593112899556553631313831501250219472596564789262598986486529953492544988258647673634476067667043069001835649018885482189878120153687578314096840460395771551056775802064468615398281280601098821963617224000067661430589990731132650825683885568553722976641031796437885967635072630342048820009953147667886864082106024823604640715227138067348914316566998680761108225406414569328727918170201589204493480135190442615686424765147137033444084375384731350682341099498588000685488225919022432916799256466490427339096992514438257079165790804220915862681967194297869614466456480420958955389019863351875672141948418486444662410496044543360812872076530986682686704105933442220923576347499305164082213277463647641432633768927845224415423897551413427657022028949631911537030992214801784897799810809237922807350630972969946161929679951428921107126308077903986804766548869417646774550364613606992032402368581619794017215846136612927853844186024770660854067420909023145906237319393068368292987961967329854837136494682866045535803328942309799415239071281770948427984865844188122714467899695081679006644683717861797343458098641668741068033696469884094167043652319899231059808676152443817665790379939817047828566857077769034889425489659782697223332808083925838039844182174480869689489808377699642083600785268101131594954678713172476892795641954669158747568294940288754639554489856764131611268037306845007700086825558736219548576253220975538436237968391300943642711367535663889731447980352936111037543190157871887633406570605068330223930438077892042362948977117898733341263486522134755874481914872200825835612722632878843843076696665708015871899281493736858831489128566661174917136544663625352637980972503623215693325907044753765854512674205919376297345294717978779790194822774955794400142632027276016572434488577572335471334373893889760667730158882548212291367196490043395478354091638131246895583688890330148070511777100278943468477664247524875082392681540022106986077211781277649771713865947338476213901780787463648066553020455941361374549266528254574675754467173345279369348563400204082620790057201938048907847006828390064217378107460460606177257384220333159057474730954010744400402327952754874339209350942077360201337915386568423656377069533285946934223604224067201473688457968709123610046300351026645470831575160518870535539697775275939360822903611367990022086903328138172637871538602890558375767261899650249397414040307878770897880004381270116021373937575868368511479315326804384015906593834052237411493927925546564492359472886803367779208793848577344545971696280543990869099052740719792002393264157906283763561127488668279585056479098100486713457807279847810665805840528644276047983409375944345770168876417771994752213939473361873610081587132092039107169338631844107643775628538243446202234604475872661638923734381564618610843596137192221921373447328075835305602219306015999201374727579209026326037290838045188250988236815144073244111678955505153117437618817057969756243281891045290029441731714465455263701524102337011461033246292543611091729637975040566347233597727030253157514020730981201178900125447553487243074576344669383228627748801330356311065634447925811351276590670862132780043679187472508909236597107153188047439600517072065192006128413450974064228011415250063539926599286490426335759894738910201148408502299694369042816067036256437331242963088821971442234774791640914237430583827196010249271576548636037274152867768651990816834936034589893730263233691697740163218462089380416369423683284168122823960881732045580878017036260263806459412353329216349360262955794672429154501065582296252224550047999375631779135126453400177004607467835030622796027858208768086448007151390270646753821883024677663757881631296528165859656394570777348935575857098066998306790642346724364203140036593720454715973010989586198471567363309766949285780341693574610657574055897312389922547322643013004119088240172294921641461908254082553094733251287345230250419272221463694302558090729943090049099868728663898610987711375671302895358565830612031499515197370451925514659815692925933346359746109906706455254521127836562297434481980121472752928728810361688264974190968957714836881141395422199576878007851003523529214860535086404911886931576027857409014229485883607274005131424711534466913530666259403784605186661821691295841956887940992992960704284772716662634141429940152110995674469509112870264578321217757330065439018897883489189697870645375132832129952552448707109633875710440619152633387791673035805191829347391623048879657111474425972899439676455819207350402199548099230832643538032568556374662256890205013006383094671487085778550426886696011663811408503774149663094487287604071630791810911146887561443428908567114012319254226291143005665182590921806015072048309095233628818220661604893427924164566721197871858831524769920044780963690607897255149126160422848212437544244846733160059094683582519150844637940232642588983118497576309464312969075365697494099198322871892611619237408590846469746786222031133733424087495949729029807253669551617846707640851402003058509981512608391945016716210310550627258780052675163471496230835355484087886933907046305865305730720850735421689666385961536075382170666003743888370892091501647763567482912342176359968010853102686517300024613239741653938460047994599334613686301477535995334263453039105454999472860507451096284273539631149667491797504639730476207138015733316232290019342372581626069840954649556348506737853740069036131294031965156614667228556596583520170857789801532579871659462772550708025647031176618759367917209599941961486189088485889463120926596183258672679495157172045880976997234178809099196185093329413978918618160244398155786534402343935857678801833824486165549835467523596310849981366312431432840875247200653008867153514801424032425065308149588833925810187191323817250214043511557857762265092838440440403034362471856105842425005867490089727130078836926338599147874391878362621229533946544642380566373498530520422981465689635497528315950648763899931683682657073415576388759797811315241299784820891563793270973735389765959305728708266670921334867727016768953583999194812563427135539577775805153554397321421163744916760516027766242494228143786925439835346650915505177202011690842373461349938814058938408133405797406532045807359662639208975411391004780908984034511515590882483991514970083899106366369074782512978234140174171995757697751584832469651248250787647408562719797279618377457064785778228138046644421801305679885047728443506614056617383281265004800339022419920717424106621762982349439261453019549244151212017235487079259900148201144866709818638187085930134426505914353917516140528654057579364228783199654936722807146971240057349143014526078851838539900295585870106761436353309726147965855733974485069357379828855174000753683976388211147232571438802968425913377766645028219598387278891311097818786673296457448658068577548296434544412315785923611285005542107475428272138853537749996502918523290916677838820027854087789591421031911610610794228720688747405965506306756698814668286852498370501833142601070400529419198954464508115281274584610091960746525704052225834361338663245914114787838650626252474886058197357483224752889839877357038197717787966877224768541156540830614794772032431268622841860746127955792825662802870839904342919358675595742935436660042997017332838751821337451529207583468906008654317745283628436463829048976979455678627577492594108217129803552771626722382736704184714118603412955010671590767129198521857593985981675414637617316892125676262694896625943452514093660316203853046480862565942150915799988026443221048134955055876696389094916896340325032219997998178824479027739685806482170359097976570641068159314712549444913850947132771166358651706743531687996659897493189103076609692439579795273978463272124165775856572801568202452164177459417798654315183194756487467671421232272629509159842115704860677198865569682488951450186042228024575240928718755146937271447928204093716207489141356836381599256396599051622061931444549161599862842445413715477507803654527043251656223042844136141274711889769488791914874670125700216756454000769854041281164715334026245318572678075111196164189215684126766184048449640589193168856097791815461737815123478655166352177081742028744388966241808758356804954246391217133265997697126021619342877028828354274464058947576993801815812022681988733962315462778653100679104150073282465311877612269940102399043591469456716616287790137220574656821576867193030403070215196560774770242920914058515651838296367612430827274505361248948388922420132000943930967122197999332994971161353605180194488460826450254770511224433847918310309757763136083344489199997895912584553038539769231908978305855269488486621737015845580526113820425097174979580472775008673805197328847123769037536632075986460516432690866316461838188349837436420948259863238359415770847641253173305047064246749653553550747204207139266542901409308358413878927657788809826680855302011056517781244169358689819778246650091192062815031269986553938540058261292801486217490607662041873866775582195705810806616652412301155389995306173884835730244419193594146462320110522425863496456839664118613122593637577912220715311060998764686187766831560911326948766970130580481792789228087224048563555918798659428969201810710182454482832687117463097695987728817885297604444163835598490218610574262615980757373162800313611042654686625376025500776313434618037552821584982023236818412904210598051617542005601033818049278146339438006442783512034202620080172675324544348255779249357097851908988125526702225912086325464782234625362370444655974915601708346244609356268041974765277975355482554523882409828914786001687988428819989355292518880065972805063106526256374562064017073137236387138917732151997433534676091527921753369952885740290706031968632855268462139255470922849485241367755114374726772475543271920700704130223855212435729415836470862876236830749499066564541219887965117675711605525781028073382906955066778106700660372383430245146622053654780166565708925298308701107227232747047651549773574432067879755691092729039874797170197692245460756091426135994284900810899008539867418377977770231403987490318011450268001788015166150491938227715426152384405273671252596851267465946578760042209834207612466741543992486019731905581594796286483260147301277145720701603118922387153045493134671467206670342064881061413674230128776498494931603878430389302698550141037458389560284022587297709255992300938135359664365228026704584357217386856333216029276475795561740615036626849795489639227252661779804038117182348291185738375428952719819474690233032917069568075002647763680197675712053975352884433168063540846336068926861140941028927065707932654648443296981490060092242418940387800559582969776442805241330260840172702635824704065958639522975705170132445474635831605833273974424149662173719959657056435093626939652479410400085929787000323120650346711095387282127033429830578371194725905302726392404158315182544247759761757838378083713359994342689236970243400863581452548466464404425522265080668963978968270170898565821815386747655300462081592328713257272595281467976161499234168457661267224689913569729293619233644334021645369250753704849590621591429632105469782811616777625151945090027187203698669453575772259438859211571514623231636630269446717157652321052243424642953827687374269286465101329589654487111091488481026226623581371603172670998469667997453192073936166493698808269193275694114432037406326387132158479235429673626424964185547152896440882924279474311805492544201888660945172041205640933335405680655372666903451492386295064335563187255290301936827632574023989259139973495878852580159038405504256101123027023866516975382272252310009948017355252853474172854160286785809923462847285309119075209627988503402806708486852396283225106985315931971974629328054316150594203649763404210581480251860702750751431820524908947206210633595221976768536212176466772127032840338620876716321760828786198531026247116661625436031463850580834047894168159591474309979588279127770527238106328651566974341245071871773828698481575239286164435783166222945817042672701861714432619640744782532261827685793420599188600883146134900029983037587120242592834431911348717084333070880842548050816364901869801656699233952747421239255381387239042294256334630859600499643175614049623351792883487741916186399185474466763954231010608385997120637704826828075169075528832792052883719528823933779106399931378313040481976518479725717723780048451668671527051129828133493000890890761321140961956332380673376291640517682059989699941995195364719523760395824432450208528989517340676470059574140632677860670226728271309601169434901447193225472374987087668186147947799814061240395405609447477617681077275871444056178069008923637368518561610189708447979011408682656080176612214609906775805791628862110448446482925474609576445743456897360604003839423297817851288281721511592693958421627448808777837727236913372081885243279639732889366962654159069160749017792855442355787607115752550074330953035943657533414923430631750119757786079221505755706187206323399400889293770788242868624396802616386809785715054571808942272332510712940903077025621965217843836233273946005049931050803852097313626338639702730136694176507376802816574966636235411111776539847094874230511515964119155408895436925807271855829499399579384431115258098100159461219196296320244336655144672825049975413094960091058896918263734904989823527844252409698251725109965915823480018606273768082722127133998406982087982396118853503508297231841798887025930808306394769868216950242181866776208131176639938100893448203677999307904468142659360835804326907592455110190903206688510694801292448454808083105702096410012212540782862289495712447055383769933539677531040830088311968976093756750488506306338226704432938369211107982660973609469076527870831212724088136225442265986824836376414197578101271797548033070616242914073386573843517981257588634694705004344727031878819718978308197426840183975129155187053900851635016438105003052788127089692956484658036595241190930562028922507886410984474824403750279168202224363274820631185007519247196770660551665862955789178499190573173568601556946393730399922832016055707311754506341673104861593226055639582102009376580558942176491626588444979443187892675461960569215380381281286563433386679578399987542178012864183483585442080733303941631497641149950072591975150451759074389733277155994945976464519565532012214905614480690784222110134848664229215570284599460476334304659267671955560510823200692039330500916274586878293026518520195528659262722581777043791108366962868708088351572138913077486488836890546429943619533540210826678485093970659924123951336334928557122541108913274598460716884165795653251110618986047115853061614429830188082031375849339834451319650404793413688220160672494859673433412459656513846109113926383152945425781302108063042277866536246560501739340254323660634676267862145559489953307625216465051942594470742465186153391275943513619309736504880510885275438867687828202610570001483505812903002912069866432636572779831693401013514669684402620054116615427926465524649213442408219528333140209406991671590144687365804984142178496103653437075480708586003345938640327609836293722021948034768823778265651802926373446008123993317708808344167429161998529204336424658012100824867056179604052981438132174840787994018992187578370548445605688178522571003919926104844411667045949725198615218182137079858624350976398919248610624525250443576126743794100430726520857419714194286814597895935286017415929066706879462869168695149649924047283709426604516190517285017586101867885377049108052258024586262375559356051386221140692332851638565859127052890817324820362516209608909697330420364134371300362691087093581235245041604066659637904675927313985198002502368153826063830677757796050298944386003934693159823111031574221159501352171402121363081671766884875194799365187658895401886230552823333727717862662943826720451051026825086955063587313641033576951057046498223910936676632284076218044488924171783518931583381493546514388706317136273722237796176277370366581516198780314547523745637958197301610003876955577194952531332187336792422940531667934358358401456263227362412878725786240915931340733512397964299661665283652617762164472768085838070795719411247545256779673490896572920111855570187902067146553945071207929022813433976932633721046788912379091639431422332359365119565054996845202643138511360326987475799124140297379288548174279146612186695820050519906514872780581235290445567594975660122398341659892553839862487578011261245994665645859129880120884637064221472970883132338579648011385042922548709476187868392459669951896050834377297641862864691788259100976872534781532707262430107788074034068069604738057706269567996864433143862368682551804455833289790892502516906187025703327225292436075645099200205908597756143493339292870572971892857937937769833387906065286706455022980365684306729692459972553170545399021026811215486618191068215683597252827520708764859108751658752417819029695219298924414373788843426800945840810829700114523533931877431683134955068154405597456181174546149614073894326474901050081200206980076611163631142739176852437901887089442729222476154202006677194301143409735239012669756076591633481964934704211298345462726423938688685142514109341458877337675897138019823705258992902909332778737103692210601220536681687311552513853289203726542419458984185152800783177285060211725581524099157995841675157603828031515742474312550308079509197844512731858715751453267738462117466779529070511788779684911433494759916517185638049138197887587115257536052911172194882119892327716696559735962667249630282698044191881447256057274437335487238985964309130959915196133075355592937415592710207853568916702737868902191354966119552009626014504357256495859140899841711968316815195869503121561669397447824135866357501664877922143346424050906240740799709772434086789471103773078551224583931221694171576185029126948085104130160474112722017072760070015738855334162660552103146618924719363751621914562567881629058740259114284458786415815950375212061302305435386505215929619135951580575676921707374434116803166568751281667238564578525598740524012566940965006644907922156634813227048186792080523892271512099611368050850591574968081487812622972110316298045041388729951879629166913809761329032872423390953213376589730016727159732181450148577986718952029097612428315621234779093687523142460212607711460096988643883828096537214131568519495015609386646230555075231076619991800590419410277728181666161328905155574216665915113198298634179832992929405285883261697506953973394563926885343453947684125276020230064118028622821156062921260398991947295162697792410257684076239678981782783380503674204674587805665687461432498637239488377293526500856566378827691037039540538964285236962375963018443474316023598651118169534831659107637047484496436678517641443530805820145832417086006289833179065372454948772205671465943716749594184439741434637187888858063608053603134165785740899982439565375009628359703595778469190114716931236806086670548513155385399598252067123560518820390508486201343761754044421111227639723871337588457527853726066250528704332483296513167419940075319624455134767060542869431322892313632276330937118281346469797785895985242097807357769262279855783263286766177947948309495894628507039285846299757099302320560414306185511717962916842959604003183054649072004770388521346775816537425266623113928848475497135145977653029152486079872163831658983471481783690388553588179044868956740107057389347298499374150316008656006627835561782310580936609130460986224149230529724252651809652960814305965501634794572436174769359456756623519288768879139438644688936519943419230087623235236440155886481098589046159148843521664497538733491064677727160585858980067397195176353527456433783480342454030950487107970127277912799621237198542101137977717890729107333025953811023907824989436018643103709463973469622474714791037592002593268474469230675277232772926269079750929578795894040582057928452524405145336626456638532021834030371611745866776039900760484574872043991821542908617819235139211763640839164696153995468359620713621073628185132721719267500812714628172608926699499894495699454190048452263590323329258575880021442519396552453627172788444591621391974777019533004276282846667706447465505105753260939253543698685893067782042703612696991617528073345975281603811529094024663101573061501559419146218548933462319371056450284605981056156468482832263618105669866620552530975144505607954880914849738520837457998666294882856057470466008308445864651228127353450078609073181347866771401481236691674473083667910576283686941229748860402363313722347787898501823975871560238639739228638837539001264501273337639506928249374805752936087001876673878565427355973069120849972975957090443168356551337422918424290051637120094123466970565910663292103231653490879986170132042948887175363000233322029316218689738935329765329439823138155734039389580434626371893310392084270237181141715219632562445411444140282536626972729513026876684882503921753236817893567427752950935531829140618799171376920367617459242991406817369931859713775387156834623537749764894002429328500888085233652337176156500876603150776644669661949726988377329714911978127066980708533240258457058890977021242280064783603533959386341017538502323290115396372549141711839863636513103513677566516444499473763666744956246940862388994812788075230633433180816288205194471378552797011270194405885810180215143296638724842820397958035852009602464879523796645799727086128572865329295986808046201480417844846303277729206023799212657663928787051015427344555747041992741560740514021258983020924978165256976638971305858652733794547274274953993664364564932785913466005312666039107616065517729948176904966428723596931999039440149138190491860718281010321287356705738264980545926392957231748784538979358330583990981623733607085284257198546016388284256178728118673324653902580958892444084206316763602810531704625730980383882351401240422923074673776493519708875653609759347061491460186378453809436986430505559852845242201082967315910601667560237766327790337173472136088203848982908458628795776932538008730289824090399517192908480846410251762310743213372489162418568652291151486168662281987193204087563386687748580614406096610425349113821863932641966738690651598475302750706168843384287033185055849934248428466064689976979650086682525068683540971772915740132176063759121973408752936287057788142750730804838743978370635429803240924571499518091620626732428063324401957323254490379133676495882793892008900524493981312336970783249959543177743438285810503631247029696049228590802589526154936228287374610955798245362997943997351727729141330760159591862079408797171302672264759144381555487854837065706746713390105165830947577121832727587788420050963460738069390341909281389585841280308298194981122843178247832271617814342528034264254626066595882168800713925145930298352272440377397487584546607295506794028752733992698215963696652340496151589843298282259924339777127821232467709190453424973569135383357469589782525778714498367639859841558316930347712157757437951460205906841987673347215146941427690595240775450751195140685549673566769353443395467767847104589297689958273478982600540141526841657939344140049293044238988865235820501535622476769573151059223406202208440220087929785763014408363278558996781849618022401808166066190545085040510491586257045683404384540948147683092141701487988760174718903266761719461556344631341227308245810358888449637828754925112836698064653427818856894464164248277830403371423887082855563884197022254007464744535549082979079672554407360826639737181754071320517102137545464276184519991188302921340982340929347730632242257275556565193574315712231425276232702139161834052602665818279394079829567277273333865137920966351982228095012574669242021902462904810966134787149716417657494757110015181298143232712542804189850879866817743233697298017578070310321435649032633795688042907037178801120009886392476126456002027006948046510680952474995472106997339173743676313543190714919851931261682170343739676859685978196737488293844959819990808749701327094028225332867003245344171823547781145798147714220033165609608839959244662445227117722175636476698034072168705890390040221725413253966608547549231137244919637511890250071040103055725229065184361719413895316057210116178647060674353417422488777194430960127254839041894742379181296562059931366384467832244264546944475842057924836953807909526166980771759900671179122699002305299429896740178365040618732474826559110367460144548544161588218458369827902339732933758916277464595797216610988444973975502744109188140433967877547328042329204402703761380778319953064798011588865732400267156727410937817346122627672494451512177820304935534748611553945906536248063493477756245454258222456697105296758560103535745992169202895538299252521107139947150628311711959034131885498628884994604718940199919374344271805860586162875037299007119402611390373805201484512625948217238482070418500528270442862426791551345532102430363760540932520447537767611934710116394389186003012104502368670344020525911392844977290892424725694946579309236797560498375003769895615682379758813048562602102157621435088536173840981264929399415866813536487924174391778903850841981752403360121652664444128826627594363194295100177718025171938466911894394185166141457746563181881403129215220889438658603541470090282376929686392360423376956764350718241274451604279444147450998601773546744933036517334547506672828122559497045582641936605718082695871800423155264675701946362341446043843901207278417511256087090216560575360906658241939396609602788472836728634458405553253536946618079165298805071262184121345087615850568457035309453479734499133800102649525495961455120850985375644601525635395347169323097186492336781969344686319689866964834477870868845335493264111659684587705529954566590755588508883481080236153026983024093943079639408650946860610969206366066577363313950076068356291676112447249284994106022881338389583481631746375059372060937640256368674108122574266175667868075760732303219317217772378023149858758287115635143054871637298530171128557298169391011038190179191644209431180007100546012634534924037097334997936300029924881467566282855430435443799414100421397269104222805221794479157411668246353086595117378212195425779469664941119031971710883393827905680093729001880385614273833431772007173324934826035185426746439066203937735031097644120190924334590532275892129062336682012088827083115181438086717342062349663644904633022832575918039629008720381724163950574897494187622951152347266315140096447199769690530988062399694083005857189252638415781516101330948400136629715133925038774774864389306771632842064153236381568821715528474095386905176491807379810385251833912490730327878944863466093521080879023235568954940667386475323486379144309234984215891699120938775081320242971256299693187686668530360360455994492865426966590430356917228585755337636396764549008295251137926322039514302120318291815984257504252518989580382446724841082855910895911825591631630750486414300231457761095491235261756792017651898430432881147138691712592269004323600964614650143245264619653716427627850844325326452840824560773917150921452937429329355105687246484957165991900266788386547115574427418463711716101974464516283416868378705860362364179947643284362246885122274414041723321540438863760879260995932865845866555337891164911909183960909766524417789132426402255956691960576080855951718571154169306757812670329115731796378601320651517444034990108907777099368295295889819562046703033679173397821743803650671440775253874983451305189351108524931419788498729708736259422605677929128719459897966144312442734956426275251936029582802334901206861194391598637893227870241081550664716317094556307343510534762497573674774801711185732085468582534794560851786824515006412844328460513693307763612343747150243777010254553933447957307332618897510897283139908192549918649326769113806408792375966756799900075133273044097071242168692239875881941399355172732135709028597517689462037132062245120444425385961948465757961786412679052028281172852125726019069273114586174910662880719172294974349787900142713347215112006451193017982457232249623503913078555424435940401293523453325502471133950885666998833924346646242284200817886103441986397084454842738179801159542737032569173677327762308265794041715380141263247672396566041006215037259477142989117887831086372705444547002285289969747839890642786281742819053457104397759769872975479846391687234148580403813922986861413740373762421925763628147493623106071687981743230691611052268357221555970538804732669436583467603589298976984150353883523121358237966361738955366745440881474225002191972375072586128097348950695055195087946516523258065146323231112400645136345994891322799307082131325226139038094136795432246330459919177997389914557099736576343576312973769226758920497185258662085988175556415631874170782553850752085721604717287704584734221171932464736926834631812351937178274470539340462987542909555604438727704968253811592096588712983696350022385764838839156375671130097561581021754278389453049665893075564067745203710991686855429934554093291241489703916665524208662958264231323504942738587276712503863394103060808496594388329835120768706733357258093836559211221081052582951039173760592986732098057981306872416441515844897594444809722471323672865544867331966109249488181960722164119425948123402926986418861590831827594620884476696793497582329197304128397455975864018392634660585756201949340023238867418328995204124574693894635443247040936171206544916369004559321188414736114232446729826412315677372724032488414886045611317387795707847310944271735001224327285461684163060868417654666506567060475815548161561799105749431266278734936654117068190113342028932240841801871534400118507712471066109446091027745899286125863231834257538924880797020756814538536633108267956221280156221449225110188412068176996475847179488686442013001994505357872097556574116403700308503700342976532756653997629837022950794331059967041502664806214242784205110266703860704710017662659822058814177507971461506772288270564091190141262650111082744770397754350321036494492154321909740798298229554292983938038548260652720606626292117956342332262489599475626167603172423579410915903138564732454084199291797661768264772464073076104538581614947911132926519471346543094047033865963935947769256020289992474109252227737926058557734618353365247545916632524969626045177674648169877117915985104186663295424276269729113698665479575418922196278537298144422474319754258172598882729584445791018916240393512466309048770126322584946893765733031356219056255757918889035653541100307559246487290298941220348594526326440691010593457203803111435099486562254292962471504443345817602482793840663669258550101793711496688771502569615320407616105402288392465508444916069994199848096928932056966979237857883130994138390527599759593450392939709828734408294991002068261361979614577514767545340847734663238338997816663856537408366307343414619949926526993357849626091495833935821308822724555933981931767958831249442804235030410278797732079976550054501634094448512791979761141489451083670880612170654007696697266047214215324677354926351507580422485199633214198519040376099528152565785854509087991304448796139609281412422453617149722526017185244222956151569525105393623647112148607456419051006219111277682462046815799875010846000314392362034569021975738807883939944342313571864770774704718063637444261373126951555217489129304820593855362146578168469730940568439763839719115028500610037606900048986180043992430495851048700267343409419012104698279101903341170807035711555639387511394537842681755016945901057616906524585524881125276338684595245499683384218190472195977114139024137042341010247768902431303143305062941988278595688193348557050063902363766220122854796409173008633287429303118376867040677010591507541816507536695740727800036750489817039082812212585751251045131582463043485803890839292347965882787366148270146156868792552674714299097590782266171720614569085258969917588304921389922573354027799930122558438273425143252348949184738831168594583872626787158940324435741127183757166734528432705239322083596021378759229081237694806174604296533710438534263574629279731222403135802080800077001265554740940652261519843403585542270480178582116788364503259165852218973672219974471509957098105988135432607862564263587504682793914059944482803944683943431991433671905369334703078348119424697084659178704507592468498959613388611143170541389393343032742106830487691446829931118691661149499497682111860321699710132379523375870587756200136926093674767273130170568331570140704625136110801858824023679281903931795033990114677968209318508903527637324344745718713569907614187009444876747992981445067465117879913985959235706631891139613894389061083413253131584550700526365480923181072862901397031441065634325450215546634144424447916123383805306308109608413815942322220732767465856215424049691651417335460984863234407777618372104314964065747893398120317199357687809696512387153818214528668677723309184634788246979067527965363808130640191174871629441746453547563409651819400452582677875451843435206917557096333693542024266149955764726458031457532185311319967438289060493372828343295863643461505865808241392186631440600236103940618923450566942129461674564051666757923836410108364315286640115046662088737991170819300166763518989186645528734015756639631465430487823177916424236027414722487011304742653501666917872689750338316173963574680408367383296586731138469788749991150401992033649007678201907121992388111061318737997703612545992173677340503347970612228304921613389512560857446330943737888702314660954209064934617976147809099416157651665305448568053901468737473135589997817294043436393430434470711327509661912790815629134269342873908579305931380856866740745643838596662062291011855470488492019761929953081809890167924363724780433179148641877681872149196186161531223338146101361998286733382934973001842307424261295920025416153624517043145217790032273297499233837794831051387786802104764733887525418248764770074342470761399132118617165303006228944127221939172294690327182048867015902139618112821952309468236024824975007967358282393294530905510268982451784370932080140809454724346313783620215440450807995876533590019626701442862420513917852654419319554838578047604431294822679627617398183401374601262658373005608131400473004554924964618274601772749107479516533850112510574885660454266018628134135484767395221521546724038313904725078806162156756636129005391455045889713676467945309587005829987783163014198380352845834366036838428573425611045469713772976186340813311160438215524479386820701080173575687982978397517455856905290999158780380375857362061653708307116431117639678306414556268439643878294313361000675197512992841900084449509493652521025039710052402610733892208252622430950859935132604460528146700298707289155114063658068926719331459476638144534124515937499192338221113905028381650853779199855506677316858399539280232156177704803603071465397849148670304508993614900359834287469372488198968465038309642658791551837826568509088906222736586362783899739858059343009342957725240270154248363890838686794487081340350209402049195940726789300818970077008501255397715186456586036250435009558156093327628511484627753484524377495921921866214020459532785993252708620281986196322207487987620031165461242639605121838764076049359305680873102746319111693336594900018067909954385472594679108169019785299650852477978260637163154057813487679781446904091822418738748065257167345303058376813139045719163044969331972345615807823326945525931155644553747307797992871288973117554850508738674941938216871520642709006964748056371218393790873029846165809030913153641028393183265194303584346233065682254138195965008620280713109742692299763995316968434114011119984960545656490402162715277229337535172336774923782199789595814590797899003383967920401601221541074111113479200773957524261600500173477275929378531613514764268844422149822341208730887876636230571947297479890501322427237279953095521641797930650463435752490350153019909882604464912502812565544157009598472691106312480586319113055058035325867284039975137613713980310826859086687705802600984955189720669685525176185370263653228591370060636770534362627761071297079276003291842424808805537574347073097837543225088041723394958945261680486109167685441254777478045113312146135908750431640792810913004810857919205132662657957982937378977194096695286886126141219420751172986147420784893725487766871063940578519115533107263249061452792302504783806733399115833780041499292353990869501815739099063109263316724189697770339919572467716628067870734307661569006059859125136393791949072053781341437245085621465756677255116966333927095262239481433107976464358076978767274477945220648619690682118469696968257469195913383060010562078603938431039459327332739969014937433066226825530571284478284005544830651421724096084626486407210295083521369778393968490089456707056983468076048540573230794172795805465858458902957335368530609347053557852278111709424403502976067247164233059294455915915240366140934927366909473965878689279409845204960031521484488903720345233300528922510334290922486177605944034270146172914551979246873916517603680083575637505372958609285257690575642910525212053447417161898415651496068429520232572415154897767214636210225312694173868815548653384470550434264079287891173572537784927526935963823555778451166685786784259288131371509589595047011879075625925253056792428254115015342887516522888194124831228532331323865209289997922130086999483572251415538192848948822768084543137631608595631066596487206905087748726607316528859799423316210994737318345539053539151381769168151925832007744158462417987372694897918078454498774161539891122501130679408338681545074652638616548598290951016633150855516476273451865332252889754018627503410499602628933861634293244981743353921813536402451432771220153918514971099742030576369095372141776756251572263912836514701503565578514061258442922646181195506791265743130740324501706208935269206050302493312991819446228820184957899613522973835496204248517277962132004611440076811263677569322669234501925951985524571767214871022655122106390478395106525124065607942856335941780504563634183548630293473071202219475178144323488110553036879844260703707137298438649081209831902346593250989971851696049548266464910038587375147057252988672700188474854025425808065487133903690762368945904099391663315641819145167699141148308058730343126358892574512240453683556435337448739863675347400880713960951592585450535049579427760305356381414856561620758175446885064963712896965722775343310105494873193954194307334391707182077117480619488657991938215914850557539809426670089674484978912057185173644379420858725950615341757406852950935417757938176534532490060254922536383646135474220671476837605841381551864800361451341097237749787733931321840246552986113827654724014942060053106389763757747823563534532642194498482961384328406791427240112063449419696735564123965024032108156084320857781950973028449766623469239152774663106132933722449059414295079012124883362234563629802899514328709344762545961232825188262839077116062479515271716447295275008874706142210284889397323925421605872324940439064750581158319309219089543584678701023198444919468008386160336852522250065691759606054984779273104030580361092780697257819555155695603243428911775543695557566353205718640953777816176385582746543224109549063591474226424902446905111403695090571492957645519143447906560516225002954926318243106568872403314629022810117369084997767095087959808146835715471951160136039699258599190203951519591759853899218269242613364293971629141614075559100752237063374061572195710638489671370375216504982219589139481745753506105124428096444658182834712428369269684931264267403882847794394896479981548575819191196913719551448227097104449145182310096350669639466713500923150964269321769990263083470913826243136181786688269324195999439383499211065359495529249085300786197460392948213316376536407016944673135383555583524802926360016466679378527330267893093469387818073628072485001967223335754033502822881076962754948255332307746110996347257556454755303551450694484616246275089783983310907034312080724414966384619246186821473474295400834475673349364347723833277556253276598350389465375952769163603249677469280841082761085997173737959343283310446769371831704537146141339439890428101490322988090411250640660552800996303995455016163195706978163385025036310364236773329504633550743202480815379906819378950273195702859404289720218394130589995099762521167043495981042447120530341726787840651702481053860955427086457984200197889469085563546057408394836511101491313732838553225391205875353884274722001977652992331052814895898067454881090917810234997624926152360658124358383748183137694811565901771866954841579623328454761220350377310289390909999981478950436737064555442800233359996241555704626583430991883780218118613870742311996782674570780942544318212385576171908341264872168000709005789010350223715700205593358533364946390054165438344245312107885582618274915987528982846241051840900752143906498635927271954552626522128397590520303536594568813317394836622333041249124533593763096207318009589947259351570449161500115042550401152806998211477642517201949106040648122603527375704017283778547018133769117728797116923011953136459974210606008308856461691241396801803811411054594778680890900630410450235724212152256118382273713101257008708735805291379291998737161834651231496483561124495042604895028250534466542262454883486799121556639007871767737732813696512150479630440457224915239515963548646772465136999289479258746848302288430467120990182344022089246411935004568942916059986214119610976625547321907145562390544319668998624207870341093705254044589968590557503438849974401082739938815973886858595574598155946403606475463619669864353383382574287851815268607568745819240635678380463763543044809948672425615678269330361352078540273971068512226832161985767360865809839437864087464214251001474703968339294711317303976612343784930672012955538908598284375231407395251378559299757180445944916620291890221102166441306779885764440334070245565920627715741485960799135563380639839716603641683062662699108347990576717942499696749126356208913532688569162305364082528117530354009360433747971852338240887973562596394405383250092370755450569623519292397199036959785275976879760836308950439169405087092510506184971719748721613636019640031684594727414220560784075226116933693530069816102746361327498219158047276987320017598858102440199437348756679192870405799041095673573687588650822328507185373852901960323058352886321994716244590367415880216844222031130550746487820618506123417684779560960342245482314820569847083014131203187590685405741533660213575122913546548689550202136824157701251394530052077191840732356119659795394240551801952873194295690690274317284002718567164765207348478996977201828080656393784335600644612465890976379699258756385690210244395740328015636983522925465499516671135000088328188026922732873492257902830657284057752144272465106042996420518582887962509545080982477476636718642038546314197054419248942150450482252523927680526082301236906248316833243907879226297908834389347982576052874634650874439548710697594514616992686284245372780638560781011465310599076105815877976514881407199778372932060525653365879647838379987326673414492922460300558371189167460147099368001607827555673860217057923420053187203876774255994947399773021035214928191985486918402445308684392294924035784832631854163112814766105101297485656989410632282675762113220109935875735188574372386507956276693440034888456153943311031773193150472072240937559405186276465991934040466576849958963829898502683160347577455182969765819802653320535440121753495088697948418573983725033317958406250122043785916613321394621487248699557670648204785925448157573299012013688022019589742968293145631123426086274396951311027734768573566061589784263512813981030014312820859902789090511224911305612028363682753163138818275057399029055659168526994797611830695240503923787801608444270071594965251936281646787673021633253208415597927189116117429765525421691083212546161728051962937339069821969704073433764462406556444210547900443331218056383890233413006609864638218287700498934415115283774462099798619488494649135411061364809671925761203037391381505009415834773386832173760878817002625924497381697731457282379685295559724227571324725502546439313796219601771065560725824855465720772978226859424696330895192051390946221782890545956602817013260222035868401852030855342147461938079625405745572966638485229407088624164439036959713622296615688382296763154188167330888628367872253936094591440462632836726864378774625386185332591887084970339618315748482727145605016676215238487029980592958146158728432896227217047577392552087650815100302999909175265880328751730299914096520702057958695580895542320756072408469818671421326361969264469982022729160864934872584870801761547990736613319998782342714937710977997964495538350997509785089745165837521730406393431362546903748871570258459227367572798722806661176457769088322824427973829114850429429013908339792085233157685147458201712067265267580446483066098764829376720788632261099260801245562771913538486142673745664402909178197172413306112865904137525498651163484451008505328682238866242952930728703261531588290014018650707765591627382478130608378004300064602823969469255844087755603569793752648102894552932309189016935420955705448002123147702451657842206355246571876914799037233356338731986938756166749685720075968807041803770473455430993931933197501373639782407975452509537931367638243618316747441434313245278488974583156248013236805274791573537609405896371304542082592534816168194516203636892685297697754968206934835989628684030818331174160027721749520404953059100658196208328631476318455024805993368284955636392447814668930678367670928412925105202143415393983479099295051155320441158117615682911621014164400175266290545472429838762139520843685902021246902450252116576128062888146168425275083866530329681315757035374737581008784291630425714311755911085310961986920959395987024972406670290951739367490280695908389256410957975536190107865376603755962540807656364284379197887800786416873077482568248139658514839709644256296091123500036886836993396622899587026333843025673767884529295856081860099179490498816472532683498685206634193495955485437385993507412181394866566760362148201484114693149012356303995469885400439903521163100827185766528931527225015962420383748275727771914890626788033262866451250436960651247215650922856967912788879993489946653126652549172094897852534486001353592767638954839114142471318918333687266817269910994803813856869218040598169576856515231438788122291245236908680786643487561316962743576513736833424632799319403143356733111484070519873632969857842914629878754195021994632624171516420860849465002786814308952800186652486008846650562302111256305903902238510096528235247060374345467965788283353759951882456487006323540570249562155002315541769072355163196941713820451558397988128635704710229039961162504955578602000408535432415701278463338400911517606836657492449140469909858962161133927921755078185599158311214815135625882155239890558299270977066422503687797141117105408190507381151681874569413925846742999844038626646103707054310145131765412070358332645749173792325144411185028963874331180337451538983433604532212315315345703323895799767784612202334423678317667688357343335365946986044491143613227643268542963519777896309641673526403336047338085026581435445356453907249940153935956958087515428030186743328673367614246059586235781112263715457334857525564309012478611578961185962324649586826018010710135021133443628913306190040809869285732120108887756792688743222799393207507540345299422449456800826509691758809410183610177825617081438586900613629368881118668092641698429838243254468365398792528228789651216892094854014245071497118472710213390472145704525584737530240181901279389239172813906457783578767962204175424839369766654122521887557619269720616481675612790934006218942218257940832456298697563410704305170433925052951561047548016469505063836309109267651398867045981444931089284245412738066957494617448796020865062480787290919461110508090206100451152112260597406244656260705538167223568983034604873675803308941689692432412064609130566843092582794615166198513220004790344338222966583565630936855535609506470556221358140775185636366327031536380251743526298157632273193547667442380893158720110854769897388925434534321566039989169325673581787148483420038982060603851374219312820758226222450696817772194311703088400886044618372528854463300435590920242449316080976099018309662891174622965497762962033053443524853061349244685494712767612805021168091104352782860696518100985899817901515158454607118612020599350863901198388927556319605090620851755910575236683105996032141597388244050528146291245686244020103339291462314554080434527841391612836681541996669774122951775311175130591389810571327912576887112067626967005387293791200208383350116726842565744036697645126805170420481175953433670371722184661544933853524071646492838918291480735171111447060842106855068724893585094090868557199359235969291093123491927443624722295811919860650152868643075284944886577070286699013223505045491651947841018734829644569952051509285313179317965589557573402810511695414815502598444525917287295748168830747135858174097884578452415624506507465286137543364351898085199711702079095011427179988553434706446583025462765648054720564102343735814618370561524445220399409437568222805449884671272106151970561626606878678257097068660713425903057131274023086407305668464584417293755382562655362301165436946359090520159465557694102758748129565570280248192588381388467920946783172232393618518883211796605438928826316328384992406769292970043021130497552566276792316738150751800946712546395632476297500774829958729184268947585583216158870865897282540493098570032514004451601372875646684029993952115475052647724017207546439800737525417651644978665758215588686865034310896504410585811816539172367987213462285645225588950266630254076423722727182876141766356307033525265285333769900594097581121149994931705118015073082950884912051473579752467000921924429969589465203229827862852948973968468615085983612072245149381814685097164610007405074873513925158192803471543891169878310204374869577936339393129818220693734191190162674977014284665388251730786773991215958083825500509408047354568174050464255251362230525928004743958670290825206865912650717150363611636779162707902513697409936579445321994741548615972277137501147538889183498037045504096153541501321970768555740014900412093048565440268282263708914372309288010418158535685783518376643475102298788858335356338021609132646858607985364971932126857875262224144038233514376673543244588466707351289792221526779826587321354890395912285424410920608897772714526225925490258392823172797892670251838327814808775014120623785102093480676487473616748575162823587900050133076364793089952175576647701420314532887601721058813065694177240869534741771275678471813758283839398182361712291022664430443618076598522783104289849114954655099731302506669150105139161786890563112565302081444628989725032434282424215544444556513972271707475404942178432986155638432675091040664545901135976432824512648683243870494312796544834011038995970417944269602395971386396520349651072796142556646104757634500808928407505388614284713279254080606152788997919466134665063776249371789652982846392289004339926407227098683932863860092659934836619296905550632701033409216343137331995293586571551828497381119261469752639382068567528330816045998577553865562661363089932923365374264593619655507030999804462379040736104360540571851840942551951132327145596976969384558928264737726061338644755473996932961149737421810398260530526841672534380008295425780729503725780872899730016165485718832369372910439131147124421335963088419724282456474070479464245751084847819790107362728630590521236645215462231770118502079355349378218065914911454097849932309604680576604060397389404428890933686846901112434811809659636551353526461003408902020424930704241781695609234935661204124198755740508231006660699029436705582356229275828756171646994664174434116182740580335560953181026196650965054784853611522675199570189440047003202349385068593631973197178359080675271159272784940064934206405932731986090363014708034318648762811832902485378913648875780874587530203762022697332777434352874231977001463631195201893582888582268709388966614899978022782331672594807173781063806672580579763239904255608646600617342778056025495933783715564663065741374241745073228900091493457494080516294649605494192446424270738449338519070955365321642326405359810272273613642935952113907622805275749921353269016829035533491754369532901347140283590264243099009610123779740637309143252119687441197296918811983195901819569647310805247878029549715329434859532338707255814056783478053271862309154881593324956870825751674421238801478145732871315025298984663690910544201929764890594727984845536385101715916308196215481059345800856967790512461841514788139474759922352344612457192643057604725513185232402622983446744050479401078503595018961975759768716652663812981752060513324644165540106421059770100686331307316003546801454503569488468179897818783257020935199425047060945426314259878089898403601487933518911231320218657589883078881273050808224036202372461739563976707605336718720279392433470356512201335866673383970792120084933364278663941181769133463708496779605068775061611811444111765736779898157574922689653367290253966815920548688780587868323391751012474395873765973340197316514456051748383186243504033690062564207571643636745888717268985381780166830995401846489975622075399787814820134779431663432031768577179467481882905389092982703517929726812027277915855665446909016397405366857056562021907936515719913083117763588371877564216971450463968391113539239989711182319753019480905325268749739916319616705716049660310072327486376003875874121672506531993793382009059246312532689532011132164313427068975485281887214779583593090904679386443912873146445528000261272427584302152507030880905958665709832812648192862225758760804411063465926377166715473428249960769442498070512807293469043728981803098883562453568704529910808050476497659713194573268686479596255502426471248280729167136268226292495501920130265265689888161446132302453707411315362852042764846041677092968099339294732671954989658854383426406711524113121815046510196432472040996926529019543125069000392185643444877004232120939175455040029560710409725826509943722506618561526648486274353289989181461263021116545233134157774686544919813734257293890407259762407371053120960377814180040806552406611084924767571877359114390668149396674523150296036550972563844904692904333086335719877378784763774289932313363653702045298520231444669657365903588333348802402291140852445009505169742523640457951369523248899096176763553028391744038156003965108063128390771422745640002792267078950299198078473708139929083685546974883903927450686239409759892139024761731957243310741617669406806515613944033541013980126079955912170671063834550164459155351666434077973967015508374640066037163483162558270890216743024457372151522241041556872564721140267848113545934790503842760880777741222512728007313588522724254786965819471317479381013096527932226375475672427573890513279729288426015950487299123520057057199184322481666499720623680519777992329831568165955326334101163385121864990163784849771541860380925175071370102946019234920413383095810758566787252442473360397101139586743212384060049759892259294282418018169911788737311118158880950547230500470078836294233617270587405123494535848234483894032945244205913898871159249796432069544758885634508435913628220639828811804805716487173825904073950653071358247700126521388044417077245863277038491261143096594108483564405997409711738482182371876470285955791931435493139855247998557726317939182244158270475564165405913381711534384464377932483682731216430049669683299678514401231514208542319205965037278459110669433448636461390639380494784402483563892271357255784470690566901416719006748399480269828180434164365927620466100303104587061120650022808606505967035358195194674794416449734363432920058913906603376954237676113648292602838531593561584648541642510659000141508384189162490131853528878764356043358242312880275459992601545324553330678841170887904475294588828820384230258818707603520120931397827858233564655573936868385455184271588899502745102994832594874987769203000285762353318066863787919166191063753070105613534819959040005206253186351884471040376023020042069473949227753983200009945981515736502742760139637978737761561188800972521089647842007722499119567306547420536140968433883461229549171175886778669122464771107794705570692760647053331058652571861810690875558035467061940488961664205267180575917188821942874959908035368717352164386413865422162530026073316410035112026233299301804583283906773777990310212080421606983223372246791493660387692979932361469844889110017195320349032388655733811152058677946169500575708512594819656442941842313487433039791155898486957162151959551945086969543293230125966955791553639205141228741379167656809833945922723949996833510536567309850159600673321346077275904315253060522682563620928699616321668551082076276809137283291081640174964397865490174736827927694706481317148212162007778783633103747063457378726641124506694556021573150514192995034973279685836967429173152267081214640857399752287000591438196213051941018162584603537249774672297179511093162267002539725998040669117315717366606679069967095289657975932019760578045118930979768439035296342400841326106649829590774155831101710378150955966642221429616740765081540678326250802456670463928132514161621564715760531707499253284762422070163731601550871927666546272651756127568277592697748730244748826405055328194964801711280443511869187210617357662767755560128993937984150274082769176554209441038314941167565777321959440951857517248493232628126787376821878723244665198073855746480106243727140333496259489721229605501517426512698525264915750560570264839037643277246857122228909178741997472422981703559334846439314858489961670798029478499692960074974630100215825047426404285995976558877811266385917663155101293696687743908502004451815514043554192256374857232034829421713566950838203582940394384716606845610085957691714096751353171940743814540173013131317060375649159186648628577781315236818583187543516826798643602988183245032969269205577750367775318738763470725267606064157617740210165287827804355518104943283355662718322439716176706509000973313715991945235148003771113339652028183410535054374669042634088338659921101049282118124798186822681800444572684259813052569862583049245746294880739207249892787381761065825280783202943459281293712800170330822026772695831048053828159862997274940665529346117730877911051913349114498490040704767727775622977870778630699201915860752938889299835968618888664402170071174588005148109299623690891179851743744886352831464421760888361458071396983641934996760991088545736350294747590259162415747628798824595775984276432514667894850841734333434087365081924168822043447997632847593988446904172245576465591424686772342884803129736702809741415308942207383724635644560160397118695737532363366944379866716861157004954527031413444696146164014526021355683288924701890060352149310552213014392990042783299388334229434967799964738983101261071071651441785979796613062321480910957591121777104467152888339786729053565891447261747571454474861781571820410837603902461125190467371287874446523202410659518195462224015297356918569197075163811131822211449027872393827002177150277703663191275131100564058057615226692786845855102088660090816483659344347989788405786078246010216362845459474142376278661999954208721270894826402215260932677515378005422314760315429837848121356888257646511521748828580048914561591625333315678858328338918404725640063480066344337496726801367672034391741172868034801934051929057355879032507122522208067807733435510621480108797567471000120221926219818442635966685833930301062808721608373849792571696763631238933077579969813732466077302076470269451083063435870161393120267417917641313406202936569458527457843815137133708116329159267383395840055378368115510389167238489029154818132999766589441075763130349623204380894019383258330594084795502176492824874583845710528164156128759277589833555781383764690625424210049412137750104332217473453848239022778849912852634864835548935101933012474074877848281529311836425372273169034091133834174778031624939635115168121964181703900794029180367783423665393185745277422074907223095763676934748768936252085740205712107716278668379219375792305920217595439961857030933447494488871891547615597784180355010436717488448939450112310196412312332676019666149791179462909661515067386863580819005983381812768756355578596733758938392417450331062074743446440862485836055641477162150616939567219953638278916139709316724259813411276959694040761150991716519961266249570817603027535344968958235656451713668263955156963520562940336048726061275741018400477410335118490454674862711084245531492846441198038838955190728371019501271316216592192432789758214346116332820473381842480968151750840460090914183336742122978563973715533632594575388430228022619978701420302450522275213039557842393640535308887208098894586814965677550099420633162760685483875885704613399396244900995814509085558798527148814472682524810313999711938363163228171502519486275555138991315717113234187343364347688486114870636128956685977625033435342350157676762163495535669359705061690943903798197505370053270345566977689335839735127964109429732921942948038546110171441536459396012463154622975818916673951702304779962724605373583183473652473487421188604756625126421500163992571006656199396114701543197579419002385435696013459637630340653475713197629879213359661956782091391115068708515049933634238552899508353294446741925852483492752413620228774950872096307195105433454317140373311148322846042755361964640029686802071280937633979193724955010451373330734149086383420353258656701700870600376664995397127561762217198935335419567049458036931349425784320791795554980479154546895689907506980099445013626484563023883825323594341253003256122750633292331529607156400359837829540653770251763163594335676436131153533151198737363999137674053803933979652476904240576888530615191442800557557949815828662708218339330728298068975285724329453049649661039856822974516449553841466973434781340702124901620522117091945954913689970181474872824077766563420360206062290850251212876074437165108981022499478723215615119225941435858274075024129174677773719417613703481039523813032842659316805940722219111310510183684115239002140788908945881663882172229508661091557289332719753880738927346301865791575941076435205295044665774883601749646402169628643408874342009229683918370316221196808203027442187684378680155703550027086213301504826177175515305606110199261034929568929044771948808631435951043575526648947144705498008917352147163792785437608593477399952662245222610207897219626076548262146760358249297752142002343634996021461509477560589003591134091711125675667766947105033738451528715151137494856608067680212753350045013202612276112071426680346434740189612034799839582192191009878286791335386463061584040070184059294626327449040739245182777480850171016379694136868731661954675920628288777525141447010016269278883434196903576415130799001295861683432069755421430836157077964035635453055642971379636328751243378980598488573306527030852772537448919582684082655902907846607928954734177972586919245815781417681508463116659037169800862269646411719549732867399806484663232631644285718225613392362834277867779685324336173012325467222352490354142542171898885149431979464743981962593277445182948866732515418234156206939709604791661046915777725218111884576437812217368850617584036980223395052521735606397171953696338811407680914220452589935381690418969450314089849934186283909957986651593505139682898145474285411783585031679908823384414162358960770680941669194459198098035109877647806235362159769442384681128852374665125163224935425509739887737864730707363738991513532883929128182746455601847450037568154330521205894493164159109301628332870160405787900202705717293438168272055696235648572526815340901039100396895515441522357427688640364840997351980231627557401765574517057331344244983410117873043793080821012050437939531007134158816984947846748945691675005540036725645140878544638161370044083427866265834689650002716182294336384982276702794313551653132065514508804314538184018571442255948718732078299831164395296417567015327352006029447939925841599630582166607037266626395829878380437679618301346046066866521734941906414385111023364617219364482946423551389632270855276118664444623448727467777580933049588407163530080538898829458486908343152826972030348767371946443743141025281858689215791112500713215500685687131720109098926323633012139956190790376842084995095487077019498260415790790563867489995288666048086585060406768200936037424984208110183739349977184264488593477813210727188749899776920351540484546921572713254015252506211566765781686274814935706400782098263153607983635494492693825729929819453035353805185315792499444274877066009417015198103343814426192792467450267776997816773112746669628468848451530588401128255833106844651499717522198063177266402378327778210741998637823281639260709161769074025288637750395654638085435942647071980489193990287358141090928104574054147126885746025367502714367646305671286118700705795309740436752130214209341520452023733958285855815348940001957244828121444916165953976525127950171984660981614941805927962179489800007576906277400111038777985823932993989190478143032589086594329138305340531376689633016786042958409869221740585237810543287179034885346672862906879716526904328703440220612250443497039318279013690218116295363966035806573885498040632997649458722293060204943002501326205312075353640667502473071467143298370018659491336909954198087582139831583911333046205922320464700820140659850342347092215692932688747627451156787674823585204431478592134074321028433800879566372959238644841590000205852350717720867816403613389628296852388410932830438837257560575300323082058564723539214234770424576306602929730156376645190356275883080929400088267474308743384382571090297751036716241366704354742314325779935036138458358773929190659856962513167397016654772429705370313170880762624840545728752827198061029591425344092911765477719564467157804965420077221067393796598389597813510243566336725704368488684396229508717211163453300816146833811453965532482833142684665512056725203571044549239784235217764196720550766266776526053706931866426113829612216445434277145241321336460945242180297290330743489862083224130562995583337111296671782311719828235321260632593954758777668499943013897141232599723677202743999397574443862674067350386763958097292418736963946514453208372173074499463435553754585737137693587850208723510125841236228938921356268244270797724273969658813516784222603722757202906214956661902372115435702801736749108168347222505189457521076204842063038621731301098233829869983099833920587549710381224015883008491073224194200423278363755165880899592642077470193912189634240865641833959215076132605444423091311330447677655802568911797012487392236227222727836262341158915298619864203193021272086536151537643321996518450210129207997754174100827876199341452109324169846593017648699876500129259619306707650013073843999853444482031127457190231018644963773301482352243367300087503623568195373247266203849831802996605662371417169604184205451951714197752685431632467696880379968704813714071785934351942744231735543353862155480280713931943068835001132372579394281251976296757693389066001607460536974806263913830587615255581552626993066870431873969049541678183267932666204643699520936575232550464300556929434767960281291390132112353948597438777517195650871300966488534475857120161900484475509533492970688414716544408021403273209042503040903162851897512605208709609742487992805757339393703451364393434805320865309350085491951352005563514260104113403398065176798078541688499380521855635180378893707423730448826799610341356415082413845475241367972993351203646289545462221066067206501986478123044957089321743395594407391526405009511407768242386566054808463288122752854301387484380149020842063610969348506266156597708345962583259622224884321686340036467993618733776626257486417801653717404105675674419800777081446192660007240114799544276671696947793989774481871762209610357774282284145591451937025316203004779521688435101243748010345393742898295261071256542408004586474524121802908879966929349563765794538408747963388772160988405730787221904437960900762895746783512776646853731140709699102991192116623175654863945916631201136590537669114517264588224749160428854505674707394607866554176537729768140405011973922186262141621255477733135338288825183217538771610767878168445196178577992689903004199698043521915108018672061732898610538424530856786177680832783744968004711582571375261408277160107475118391287766321664266250162033862145279639209559120693117852030708233908279567599413091776656838437580214740390090205898772218010872807404009380847032747216518701261781578041392397218156328515146848270633435741549282667355963167636832091780895243598496784028154061132582345867652031685926582104383093218001974926516775432579922365978832897511975937673263224260344020329661669002410361955375902681056131625333321753287657569401370112869025868463866851006729290313110988402103893641006075296139614218749557991270983701316839760541407361775402141783454590422681757201113586523898096518302700559596475181779196092209265302661240815452572045514494041489725613760406980412600679678425227880815899149115535519135813264541324758302828696169411020584254417001890084913887740552293108640296038840218645072308251310464283235478981294524572739304177893614430957328897588300400722116690929465193622165939127020293639886829722938443573614742398202381784506620394834550475387872486462565495960370883333225725891159469167564729408796594456789946803929858893800044566779802576960189303721525811841101131071844328426261598720433211122479204422634767549977889206823520231827977130017705890809771747477279675311362357190183609893395003932205390564082276817943631877370405905703767973000115672017209082745779408869223194422343787736868696641530253666165650410715497523012817202407374745430474096822238713875942812710420903833418512528681001380060979420236462708945961769864361719471819735527952856523427651650225581361446025877829056258152405917231408385258649096282387913288910648671437292213675660312190013640759923838878343547012947685719459367813223219257840646887028682670606581472597456875375767616594854221053775250753362952343967405840688279041790478690967058747612955250800662745805174748722604583705251527600942756336788204796016407624910644135555072961827933082403795183482501766617830039924031384707375175837414500474174177833006603015187040425639666374413951210896738325463844723459321887836677367464417920443798949308445910949436317583706599286806909090281511393968783595844959957294763618928943928618182445689434991825144059555385396084496341969091220937293312593261361412575357588744322586321162873223839580116693845021787331525708219904134865217290860092383942871749233534041507491616270611172090972455996353508717629938376287355762133973320911294283215395532755752316614458326564056210630584142847790388494380287854659103107798539583834454068035323278472308898952624812421142343427377598305750500553515462941051384704068114435874290686032558327603899149173022263624951644762364685796362280528392413397306447474996163223442167867673292487475222967756490510320230650930198042583155146408816259237103108266641263375337509182209447185455114575936629200826562366397485064319282332500838438477767360825389245613147778480254987358680742010764777241294539765242498679998095180555783588572793811702792121947247583750509196344511540803854866155249412283491960984421989598005862877859659306045821830231308796956634600943046922097813987520120251719241836806363003296824414722679360065230687989707031048063543861872467723214312327241096733576692734622593443476078307023760762181571649565036757899364275608107233425829957943289356765480996467432820501990348940787236075912964404528904437113303737127521523918189746266803760863859245081540275361212919867138118729671685268578172296969510632175040661962778837625618867149538428705135896708775590126367789015701016966365075407456679464972042716364616717026335884373615793899900810239757603659487692055375061696880317356606707437670700765683511194134134462076816948978431781624180073647085040379551238871548142461759554298348091231376742822581048701844274030088311852195407162030217929842512284521282217206290991786606775978859272795689424401369730526498409423774563930533969813800664152901204781599766157345550070400510652864338232234088175256701337928163197893095356951155899413925523001026505886103037758397916781307841404479383596211362818794993194134855500851823869105589146074155332777817841283015177200118613594684555937371974118894940684178070815031319039374310499895803305133197504664083688707985771140464386645000688430075730845720629018543334413830215069294846720033746622040021482872306229397854060132465344258212124314780344578595035106964651166844329874332041655479444162886195639853923567645817137786735627226412166333581910638688371493810423051331310555703003226684116678999895209670472183152783650258029426337183753756838260372097581654578776906152305897938338369664387757760078335675367502256049717542750885707821407331464285430069087587397644611678745046438870033151397943423598338146007749480155032703290566855135743935900512297305877462994172854372899868692687574763981826992740895555134860322716935376380275373621712567217421786398121965832614313426291594679938743224960375739351632785341598365655890363681598065837681030600944065546939685542055645569340040915409444917426970058719978001941097787270402240891369223019097157386152717260390053251927158533549196339281551198589870403002955128765376593192654683882824599221150181870768678683794981103412867342270036609428850438202987969747146765862121850833436477047139099548534636553088662261574036593841669571032054383809173623567728742074994647410980812294389360613673728560763739813003843074742714561700153798523596534343815090452359015105539351204741517905278444645128905633628868595357808414206760690027805078868260009034417284086918929949381623485924348498159570676480289836003734656318918222752400055332672246403438751635375645740430477873763389061014055464688612119362548155325641501974121000511188192083764062986242722576472498623989302750766985646811306413454518312044854735292321231947044840448714007343013313573597810594663062970224332978092553400620907973784846887220751006944569439024813992916596621624263525998511511409450897890465984401696187752660436635249385534767435282705911975625133934712241415274461744099627288369943216959762893742078364095192390136675499849591491505698786152909182876436447840187122549814089745576718602139275939261005939531119391016459226577186500886063226684748491025949140802733645657685874804471485537960690811235456182672310915022260555150353932694885493264309135589796995134560084359879790228620697766408107633486954001115800363871246515175758577540704748773747722134957392209734492998418395495145896009596353569062584593966114652967781298549444285981599931523095282450286671344974604913613838332935198996831355849489058081482622053534818359434179698663472397655203645488164744978840078083298923305775360493233202278264804344407208009521317466123861641779540549360426125030519950836729181502586290725214253401156267419394158730827376146004207039841501214993659040093769208981855056565547797703597652980193285421670394692198047528445647111315168734643438722259108281751393854974902982208621931379543087320011427312696750795946388790384957417029078773448336494290540006834630152743404029436493863588948294946300708916385527179742838099303213516027714312005691468488479120462786495676857727589188293237394533943639817615783939951594427263802251122774555855491897766537451269859362655409788078946781255952396638703182693014903509262712227100395101604414689958416837391936078955793239087205447539664576713140007714434961929531280381158622407662549338627781954240008507726823126449827646796742894991845412339247472052290847576422131680463403888288483329201192614006215385957508674811324092596250604821256430652593320689492212602082639422547463525367737100242877999082995358535608142943309415868621874913971976701587598015840596635433550667727634200909076567261419346804012899990954716972645090526860231828292559284314858510003526424260219979911320710303293478039187257533357770144142633023344995378330616086484533272835847016151231503840445738529167283905219710299498370080112598624420783379603125160598748880934717862439184798566326146977825734303965684411007842753869338938403352310323831210928167383903851544360924469610759317231970829421325963456573533557591789140300122116980705922012647104166566744361600862590086902376702859953222614518959272915457500366607779641381378066837147702458908765995296777300917624619914436852464946892682029776344801145325356484918638923476068324453365469464984641153543862170229468525363761251621496220036638567428698814395147627241498962553297338291667759220315984870828051764217300701191528033969541709747788119335851385866251340412495969179444436450630846573403904149170652700970470971757053359220569193720828754115424532334182541804844061365970473598032121859250821138075741053323321049533575799195670051659678483206541530171749954588616466787209035845971097163395762277747359872040353231219824906070838770120361312392042278134943810586352167710970844735778328345616223393235574095100909408686961217667401910311726906459326073008246714208702158141619865736212426138384942823580389523097452747221758014454545758536066242983511148321170681029980795344535480377211762955651230161667566286968231661518181555543970335700454873306808631555547088776368876164761136985850399686811709230172441100189930541017604178146239331760587631157372888511108180324925864761316962660171177896289076120632182420091549658902240551499534768880084222979731662013578355841483610976827322729729823039029751016665804989567786958366556474378483942232739011079391221086309711422768473122979788421680119258164550840938954788603599523314277514365897474833308989333059387939188607080899475114621262404831495494181311706505884283441697964401326185710788476541149337894048672566036302238895908523208183300210024824884308575026267086236311590191337629114229583356206304040115039129127773222826250963406432159749518504926426405090823314476923986787715202191036663244445955008027823098388341872637853909212964679248489324994968735917164812064045028436480820385118901623881316343307578884164614311918690227619452594001562269691202564906241276584826926698573893205745735182976617112161834503883628159316036999159660988739192943744989085735488954725172199255712747255403095934550664655213071438010712585750090165948222147165386426422370540014569340286737587888903645589924923165494464289764465221880839774080967053742565984721321909898884534136681250242844928013870162891155741610783992739840800410896468022987109913587281229051481826612761173402814746587435063931263444821663045738066038785279342533966596363779985209718037808553855042801104107428877432576827868260279253432145260916055608640561884607206626795937519639617564503407952696855881707327120676195829260020632506276001624784256937146254000012668752565415082743092666394353179582223862982184358428869408405543423803262107206923182690265928363249545813378332783558730364448044255987972454668517545520420825997300424113418371836049440934768521039894773688780893069424189139903014693853872425034386276402147980872916777040087237697214021131977757092509885221132011950130154569036278307869772546312953901817500715451717900751831335941503838429231506907776609078822831909799857593059041007056556430624147873384335695027120362744061104254958593042994527245511379035928820984974363797666780420565386720007340412179746896984030867680360717941481946441817273928840276784923530868091250141262929893696872433794148407508259441959869958356696960487157404363387233947419166124627957061579014495471817512645702548978751778477842436536819461349010979905809059328163989218860498243683049287061294944834467332377039827309811315181446981331968680733622080118977812576887322699362127959778624383774336945992885444872991833948666554960087405513095273233811250942125994136432709025774125886718026124061575104604446785242738711337146270618524724147068124672550207202412404907091578320150108961575267303367545834908131749206101990966598608136251381416321308621562721945335508008727685016145129279792970804273603136250923864516267818346442593235973526325303635244943962598620884943338405791984825805564286068566702289000142461185183609695171078665748455561722804525778079048818992897548448254106232458574305108559279631656783545332636334640615342033436791717424219830955168321616527167442330655297504647742572465033346585150328684474086991102257678817830483661786542551241928241705482323892967702960113852335718257261620984903894020636454708730122402422731815324714090552646117092558156754679566551029658012999973416912397770889064702944127938806951066566688986374476300047616276571861811756032315219836231293349410897438655290450311662670560767291202400866042183370434923798477751840655450909769054931324059352150566014840412821574594761320757334034151461340214442053480022604980370884382566523431380311795843154753819461660581722665850575358119723828136565741742421832766577143197895344416278500197898615772420056779937594521743084156568691327215645672876516546534966293944970554120281714712981657550482438773658646128453238080205347682515023747553165263546885014122940193409022025877145081250341082556436916604403085623914820221039196411312566107158630227101734327550812023069002277315320377009048118541073245390220096864899905798936026542338648916725770959920178834148943021976601047552891582384862948716415244826056298910770302443878535460292899503486589188074244122004247391780802943340419810993136236211447011484013163119289552532100144524111915284626942177730911140206006446452965365999264045586591071278183472441360647789651451968656534278416810586505407314130281072611776663094925071731025461741051226402725428893355338436445650098139539171933958194741546568018288048584562257280632038071411073970950415696785351866345676647054175055066072303489316539256182447874217820715537936388128342973237108569832102998110025619617023966489400982854356156356675532060347549098663360240558208739161331674588386158147397898422725710574153810803999353805150499673483176170034352264739444274255875497701736628785019541158697641907809016904288788753655608643334318737092867231345499586838545142158969356031459460272562439661108617519757613317391656250183995295540287874797665559066097030486507534303521295159825786541083724099449808366748525409268154320291678536276667873935027967551233052930142887925031050828838291404574930870537029955776075353973554483637036798276193056525972949979266347232533561450311016430803430248573737822180075571213495707337009526927505829719616376040657664669493727666152897939956896955726187531495655471906778457405755519448247106762351746837926396545784300677677349497866197054408511113631493080246112731934569187198792337552349801086144857222222260072749770459213937986500381735161866216748259698857518782583763546788870669531339478640655142673629503302378580114676033957780269299803256428749307655476801557935522980073363927733042058827023311532642956939748550385016608580176719223784749266704183204865482670563985545072443159073626520141327043666120703396102873911330937317286219241477857697444534026792528852010822949706275125353470172157467052578884006119732395402704762890012266277490223840109449138669417388559678220464910299650187634914431127865275440605896760515914199463153942972042703037315456925119453835464459069612933574080876231104274230479692600499903725365254360588420613737759312824918821846579784406504588124726696841529205467899284332486844630270026907897758753792415513545472018896981649605141147796565864215591150953215781292230085697223418560365903369508802600094968325904261372296326563716275442276557500305810437702398054511921042680964731374300214296810824917695883869847407915034332670488233255164254838771624945704881967274252273961588057719429438268740745156015218732719089848227770966245236213953154035464912647544546837353512915652745522814560551869883989721163002041930954205782234507962261711566979812826319981764361524132515175697068779957169584558968296294571038442599115741860899375478902827067830908138938451146967515274585842822059013112517369218650867389726357423954581772764163315476980226004753415978376410461930042796374498109284867609617220911958405910776870575654632750222658463747577980605441669396320884962696074813069910314869894688268211534407105858438136961776601573298055203518771852075347357288161357510735939204556269359388294623835352229517619535902274289757797337512438608896314194628196741882555347059599327163919228450661409223275594345434426039572168389608909669202537110638663262749899605047551323970424181902914619573581433642713777209697849749715570198342817141506644667559556020628235269275600831420250213443072100787005447329293693502362901626583342533833707555608000027363415164363455105248265799725623369636992191850172234204763682840885311782462979352315507493044857150274675118300117113281395445875343579817868491130059738135886986409642639045878377140885457737029573931973521462710703170514374807827823212816651758974266176706879865727153483043448201067091454957154542223816966343610580561202294515517519323613323834103051592820505478168776614161579933496945335190063540624341129414899222005653477851411058335388981148783263223634323635489907491178758759960018940968380208147821902303333353283463254814351575450033158338743846893179231807358881307977302479556868600809948700261684986237486139258440704863615378429959888808722257711068910053317722585380749096562441282613212985284871864022778982334570793509947769914298692129443086827703150912453594640805236462080256742869832290800718539250244938868162470969217316936476209650347615953233387084745242968953828901218856177129107809907548241559483714653650197089735499996969386554301552299084520384732033343367571802465283843279767488975843113275468891712506633467677176744667697544545029550186335744364095016985478476728147242789841325859985041393857699476152660833750349951614742906031222789057834304363209020288435075156884287215164633134517925071731637846641763414269695284108508254379391145843209373147496793737041239524195630651379179768279769645085632153175956926975331549973315395441318818952628625710454354613999840143728346215513358498772638242585541422399895272039173426239535737960876997269183729181469550667901252217420512425982285911367214538930172786082548237482049393439019070250650216426877313119572721404403632251872906794615153962157923473894950955136501151880688685453939115571336970243062963622958114260556970589500979105588692929473785564967858323576826024188344072124030251934739084692839566355003984584724556002171265065921128524624396829985173492669375846242506478054400529372859599392265784286994909389262911803556265304747149934212183823240025724716333593620833147995649831186654343379283612169484814186738809163378161425731416820284976198768738167309713544398443756446405028155130298386446126498735719995361641941384942477723564280772475891370201418819158002807534486089445098992971971082690597207307353080459265210620359349323270459845814974737572854339783775915956017526422827756866020726646590737442623623756678680276620913692461367778211879719986765809654298103392112222546389910965995118888944823801809886884877380319301992885446620182001528419511065195862890292512661366239279519857116321141745147230538320171524115807075652563809166475495503779926573622076612929099764222146519581695576078253672160414341099846127027246415675047613483621999094545270205276902432089787154774310659912094339404203225625607920434060733916753607391662996538478888704487817828322119860854875387134846232853610426926513628566424487721675756783203076452051223797526725279488146470790375311747480918663636136415765694377700542203057213040337576081135274372258193592601061388137363727308452925652884587232084940647753691763044173946445569087533627685524578281025721514714824843434220637722579071818616660479164362798368187565649698242419691670100614337834068632613323409934049289675097896254575046669097904027939323008073485630285825813937606966274050826715954970793190097542758194609032516384191421597725689440406240252212643954204037075151900942474895016151421692279125882723714574274401065363179563681194033150831077999625813620992115040634651390571174466762016468758625635729607005309801517395015280024663524076871316708633918127421430925440792060850985467553363281347167436733932615230842261400878322946153530012523027025287627726108908895944994936738571406353587956133362176732699205141944549203110424271831633807448974594562138878888316244331708819408682473879773043999326942899037585850621980720819870764835398676298174673633495636122744702354731196620468635773664071732483067097845817732198015789232296190794164204446099847218482014086284541637730465754484896500350225474296742062989375449453948289350179884399914894335089857849251949802327337155490155714193777599483826054954149274406975539743847708693577371755131192934932390956293955929923219096196791923867825247164835873659098661376023999288959015590581535050008512615789436052475326643419332331711838562021628922267719249106249309275415960417203012424846596783829366597609955095350873053556010791440668926150938006190533506936007393940487776393238371751487405125067835036659042419030977916350596885001466529509603871037641470011177693889064354585706707798954334542184672950564377862368795491296074878861871700746562486826624204529890181334849431333021913365868928904210422196240324872721112428650722884634744341477551656359961152664487452848116545872362763396012093998837146261229075989034049775903128934511706226232049233154076931842265864987273708731219693383810944294566974974822496562067433511195329020813561887509981362155684265537419918275667139547039428142197658823321142931669814008660661591348053726941581819415925048177757977172171805613228560996671015019735002172478220338024356478903412638272581705269781700257524667423157636827343441333497354318504061550910480353838483877539987173658627658634131408306750332191197705533347596257280674868455042357046208782469433292783650210803192798572769509761807312738259314793525856507843645970150766389265728273147900401943364730843218485367297417384295648807451906688483527119827983548925117402014841518156836829581180710381707521231038949130194132620436578188654869619142636994540602365570421767324482153426550207765173028846660404355005078378140220441964408442567919295659626562497869635752835136698510307826894530804264544718510620519310493083848921123190932090796766441416004104977849947537673651934161688677031309675314141489413497395987036621589187330903857572075310631863546337075825378512060152586673869193779042590445653207438807859680761608841515516634821801139841911409378337142047936604537350862052005593664331619783515339470954418570171738790680641061619934420180836303212298856277851836069706050834553098453906015851526682848513457784792814280346119592706124967626842407087116681831821319865385302030071297727377005659618887326428992612941221318385129882931089466137608277892034442662384215120608097817798387317198120421426750571999235499655468955979831458027869552772498654991542439508739856061161159840510844123704442077996888649574476970786640288528166792297427194679449076759089869287070069640478235145384661129020528040928919283999205460920836184594493606824141342832988923570781545113302793867268031875043446858859560628173837034011059078825554704172580993337219654494607545947727586585295602483543922274399881969658866003767348819174733553004625644676067303031788001776959456409820144009148828093631054013311708260922531678498955864149987690236382794377329900977772169854384875491986762808294365545418585552414717632731367315046974866150718782298807044978340217226331369338709087235414477461134647928253109901856460328050039842792258255743000535816472278697507329494634265656647926710737231373898726067962738049125818374537318930315019076729208195782434243533413295966972844282967754290807843897701332044200510205899164522858350347778710406507002631250803632230362473649295931617362993383248148380359609747239474408052264627811180740528095212297625772073182200089459881708794273190621267231723188670184751421733418259231778374600788665347179044465279973644275557758683098292100304829207482280746030594832541283463319740823841135953057681005742851704403797240806896988288784418272251126741146715663731935965541693943947744905453933621129581600879348627298913752651019738130622387655871186078275407054042449112879891339965941428631722745150820531807142742546676608410265256577907860638741872648955654489387741956157587748110166546434642652486016483044720557108309638113583297836346834044011824339779523341737412672618516478205949275564506945928112079156041621131074923549580285356686801080080118286497248594984902550264814002489447127721659893477254645324193656720023396574432849687714306638900796489549663333618716557984361901217308016670558552347362494443141159756318693627947674207979117514456216730692613603324148580595718820567186087728640408517876423452033332715302553091371181127566589630394995502099843376317744569570638836098110528160754718090151620453529812634794246277291492230064912720691625653754582745536367857705822427537982476872353333331435678770862701937409524327218639598786120317965119742883237629170082748800248422159813247154086048710599265108225640379870950801738959587708709999339163855298316320703667406698595225574274078169030351685680127081538250080840645330214948806140817302773524636064576521547700624422965711504308597561584111130204521909964171226290910523462322244518291346218494451422624648790268693220118901847592001624827868767943259005347041337671916390301162206762756937072198402581730277461405980353640864390021142326881363476528312082291113814795196895018179597808777924553086463008142976843723808285911998113526114204647587256116245530322069076474033016417583744594198233457219494297062791981210754335634393699268776415905117137822806395971680460313846707260892688847709084788643688517102485715273817037725033151148617916477401848577640899627631810712669263354383441713943426366950522146424463257268700230767774498402214139079479365819037885879905660944464769835769151609694018144442638926879778627015195645795167928330076056152703175959686698433754126349788600787953827596229723227413397178769921882205954622031398631543527022402782973375264519735864522595143379712266357233145173409204895511686997856898704570478633499625373842283255131705339992539794661334279494253174539768506235926930938042809586486584833722009426044603268086767636708784223370484332079348870701289285173278563190833940851844575421172368567527841370640471006863757063831502877027226351509027341728069233778847182732774080472808582162893284337153870318092233067044907158351862929897792886488745364650785904013236498029017507996567352013573704264090829571587737666652032943515935486547108732021536714264874678218565334671021159719911331125189371382469145038788737084758836480127535447541604805695946264007780283461068311950381268984444134430362984712460777871886676673986532890271656336194698485272850534844354330465673576095801851509704793566087442033019057963120072740437009211534629242004723933937850357099198197114559564271731690400600682117359734336134318430391756760829921380784027839763356145651276210216398561957926742630354738197857734591122826019454413605562203316304244886616418599959660837583626687883804126508905883430970342435109284849301662198290890311787942989838066299509625725369316885708666912060576220127917695217922929861633988079740683941310790026549365582605003970230887542416478370855779326736596700088285155938300415383853326013823662791952644588783657308825661681057699948947562439416048629827850220220921871185384169142938072380355545704280298125964080983472935609334929334215773892095696045857392619923153025246252744659128237483864921919540726378795687123113228723670369153725545285599813271329073430009896522637625405488848896606274246887148361192304574497022283277827343230578463459103128298842794198743803346892265324363773305521035410802820791238226725300174568635479066141295213608622877485410960623272749367078363262988305782085584621147032951058493147815043887033359265702555460576129101116697620220197301035007638399455061327983623336947792365264769651949102611368464070586701588727163611478046428751037867961704199541016404899841000271432584694419373246025891340201513592598851221130135742927225821214502079662027954342467587589445494395390616496556624978728671880527994067168882260933312366499663489493207951880261235574515754365433174776298694488858739776881804157981121792177282281206848577893122863716206599032473741175954773702100379973779715939142931126164636613538442168758440622340141332965530343166142026801673935869981789066359420151018048591907901844163930051341000144724865168298572049543268244297083378527119934458982909822701596240252484410667755255620893377670246271743300615305809146770446565874678088344616126112721819578491774184895915780925527326822857651125472125709131310539538503449380061390162326461553845028257107808582009756615380761481345795710659916667068024197364700008653956907900317960380828112682848603906159570216952223147587825620933256410861474890937050028834114110942289929983506856330749261917616990721778527984872625597740368859934938458936485245808621568789625791809556445067046048999072959134068045292409819646964912872640020631400387609411651305731718051369394305878927615741004085316059900357011959611277081573670820171533281970508499675330856385505394761525597192479850350063577544254123639789501070091256999409805038016682966379135934094117875217314299033912626620736330148655110914191426189501778879380257844308613614336573192985760126420708990185731696212887168998678721241031657139429358487045237177401877442158296688212127578956503788197637628726978902088091584259278056058313260126135865521467665927587049955928568041612822663381793278406521359371393630592868198540591383417098701182126146000029259873440635991811452491883636760172808970538424544692515477658527329120195962193459288572753629450459398155982105220731748667724823214119637747971582225498709348304667754826003648110864575114374652640031489413684187805241219370658571048401560427191470213020372776027503744582625851314047145546956041415852113262845047358092998082121174540880366158507651553101591964010781261859209594025903560361467500320732276828624307485744046664165939067776065288239077762186886977359240906045222733830008151862731930557934454312909868987421078117074580341485100437062878067161475595889905607192069417325815072033304180866849772899037079009781681086196188664697362167756630848537303183641015658778429279681008377056760535555044740867748201141103203826581497999129322556408433849454156973127864013585234187453673311382967396764314441866943091664867407734541179935645934299118787458807754658720418313207855649590289681342864995212735584833546210153853391059693232526660569771331785408712683335587250698817107805968353199934995566326191918940440126286946509500472104813909450716012092956171489460506790741042501479982376643236683726004224431896907917971137062284587647241657083939746018738799007384467453982222673404781216583721895014936049412943242639496452165100542270030522169243530737004248762868934445847391841263424684599581971367990894654586950173434184144316505750836529387497922492954489337725642647667392096901447330947635426991533114711278088464848760689257872110748935133104346170532005250369970831465774311264277004056942287210338330913755520187746454499739819033067001769798108685229880139920586920851826342196546959013726141902181394587677758238157732721070240697966966630819279153400653420620683166507759877046047547452828060837241736521036679226645358587051589727152292128292544924806909100742043943508124688101591360629551295817418375747992145830984432851877925944411005204775400473024106432728316942331362841007899176984434335292371588183649885161114786889485874997295332894984437681915921790541071633160969726082324440195389755984336934155583430495156944265763831217829073106804572907005207329941222991566171990727411516874805247100144287920094959719181173429200456153775448233924351103944366947399821373359268016144802885482659708417395822140798293626829888376800180504709331422350455768010831756743268024095835185663740049767311579895002900471415062204121596101116661573605034402205202631288443342274559022601520915399640300787013118021438212202332966777056113749769351549934455689270790384565150161164973273792060914915853756760333171665804744654566515386468942787558558734757359302663910948511457508988782323286844178155117424521444948952728556393282575715964434877370814113662649177796474081745380064243427401141742870733588269071709176492366943625996049428635553809674057580770369386806400047993094314541963624873771073496780392206943828731958389254534497447496814783458759093980673807104461243093615719058738487738149256861713376069743175368598929174377398826085297621911369315736532753294555637019981129793022602635784411625218276689412424114993778674707538281182374795262510415865082280438212139530066323677404077553249703414839243808319628357759660379234290060785799350365761399982326892235411554697672397210547140763159733104967772186833599070437127130473009652131897364750410926835030530508085832625710760443093160354436688443023274399846369864526086704836309107760760332410891120881677580718275631429075083496620201408417911680003144186267951919630163175900901641497199593170933932082466973379869519390321665354571897121017419751911159324035021979471886298314889613488291180270327219317657312069185170593403287593905128577925738249164432852394056079873304449431094525039347298481864001419621408205046264445339083949702019883337959399104455877097840249092187314351144149147939587658581964533390046296075546898598044870432641376713662105338037757828811178777979586527876043955173740232796584623516354683654396189164000071579631526093880225706458439909031496074973734432145972150321772426897218584200967933435209732965472373600754784645036799776907130210498879579782463379222985513224812304007828221527239235627428853051616384467121861155234381799496705590235461593187797848061248623945856088640287260619865929813566760384737522579380093794817394530494532604199226983426988528288992672032568330164016476452856976181787279142910938293696959820944500570547233146195043032966911397325114086934845992127625636826389867024816232742342212450580363025621610891154717215523696649282078641870877710287254028708631678759176884522182987277971602377718089328964116684374451086516191988079596650667004962729309248970619372070736708024235636868858723533694631101707273103017451617808025858651983239137887902641636423428290633884728700690814800566937743297572555923614689558946373680692281613338937555657581503290729254655430971484847355684656538809563665086503560848639137512069156256169335482718083138609647009381822788521675089943084287103799158959475287209523858044492679251082481586423746812848837937228822537983315343952875190407230081714191567869071184667727135402325458105512295425496878600998007675131775656337633581609951692176349888774057287137210246621328362880699886091263496287470332069697412243685413703023471188672482540224719083318802245190363321780344093076672239415161683897710166800064849522932121771960147639013364849487680233454669852410261615773799054362774852578916791757663278916327740295806195988358936987230901129064855483431400077857567942644828353245420167957606892999204095096634556052456783799449477302236586986796117311241935154726946563699676245212461518626600914414443030280660417879190976165667237992102814286236543640437225048878550561832754184831817477087254058573593731849811000175293269844263560138494874452270887518224184640064466978321902304544178925009743768192295210493111397015406787041859833252852415657347202717013909197291990186245550199119572567384578747431764083649057515054121221766763278082629624186908016866865000981039399710634059882241741122194879612445821951595030904379928272004063042672278485898769910248341343707267872434522472184653192675269525583674347220240946763199323342418780336709791681130069672023855297016288569601192270488193397537344435791496251362889388100115044813080853195831962162021688288465250688235645292458342241463561579212072399978687486667754037089945095868748745056764692427698672046103608142186371464665499212893841903181588538264028050194978597682826157690940257019356812499299568372448729996766975023101553294886872006548383484562277494474001419029731989263843594476275553433024544241673668110725177331739993363505626275091692373437834257997454626182542971841440636381476617729536139119309536640856777764645884410358125880300328352935541037901230550537490443484235990626165588331240174579148768796807043195597081754299976831569376099503100201806614219671437753364485484852097984559073454189950785033323890863081019168951652929956770520611430101945213042594794662090074053062729586861751884912771714043964360768901644935811970757359056859783654526428590080254180971943617617848600312359319824800314380590829438662261430006985020217511309992278451782233047736821150390844543884791139860969391814013372106075734505764463960335567560264312354764971362680690717764084954412136583441670858846391009485842528356268753283669837771984848494780810138306774107809003008044972849251680340922222159300964496067682757307304361162174030366421751552446795703263709762071831770200337124730733750278413381622232786382247976922775137995543746507792616102418488845621848372950788699536565498533980376422717612149429124327047157270374129869146226851153041050274895299446360848991749840018526951855114058700623392372162496571166207351072127720356681047265629067642195196826750641262425411360865015524343204180749470081727780562085318116082046933993653225740587029634215333761781904002539422491290544565617944025895063660116139875576688432780415604867126063426503633314572364850556271809538216648718977385957729801037241742869243980529058928048472886782510246153586011414932609554934041492257730509480170034176142514659665508359809800095188398495962280792730788087162364471004399942199427976777750331912262043963268827501790155924022541555959042012555319897602641074572794963861166721822135865041362556930858170735821430925771129977813422241077950185114380600312904157531023136033241797493912915738887697437784619940185372050187013982817506224993719719620595678143314841218560423228720225542529162557870908569846859016129249819182151913913915648704574179412041980973331677590155296882100898837100737558014443205395707944673214155270908653909538566435848093275214425277842093847575988611484523898134923133315134433981144736268969707058282897903466199480312069368797218126337863286269010580420950990834188947671646914825152254074561233879786111611126165374077431399271793639839126636207337230264353803995845236345930159477130518683741868304610329384762509618476899121833988546603584217160117096619829989722871026477493130123807217145059388861417608202721197924334336310756203822982823841965816301307801791107069222092063892536048911591533610689882973452598953878055362911167283193063795357072438112620394536440645725747139880067712551649383657266729343871968289658313127873019800208272563850539294139711902549105248320667099928144160264282694279407948040096888389972514388780097843266907212058225544999783409309954811027026149613218042182871483488286717927288291393387307241746526211881235181624975029155117687960605904659855276942221591405494233545114017816627908364844114991908847151426238046262614334698611981357765266124418475183453319468210237789837935774695559338530125189421088051409927596426583203675936074936266143661584387028232012615075201807827549273089815735885826744711602215418744098680557081575778360163789400187721542999499355060577608617187754895149337510826904192341591710637942835291465933978488628721607449599902659885138378654073371895415863273013999535310552232145046114338239798430504671385045605444253008178056732867558289323513745012251873635959503627850763516271298889890078048118287176089360052360163636259079010898990116338280917259366239015740386863353464008045076351764743771207444866789909940994878729585201310938349813348692374756511507128589564271682789550793143148708018641811942673346177642496339644862357655889737751976117653965705429868428433239058197360161649316158122092624397543369881014600616251434273410419560247379768936397997382632842767928692469946538409650375187354971942273323220843423063422453761589255858960207398751446481569240686577189294026055523182054470080066382730840496032457060592417668225501564965279011878229139619183417014552823153985511684582069421208714473515005298083443730298864721011675927972268164390342511992379326766348846786323271946403842848983676043175198068754480963785454990110122217454177940069006411968452085912007883447755593873906755708521700452550274606642842494728903910079057037103075350139147397916465303997063822703831470059150288118760366860583861458271051062209797539786761479040096726170450829091600577307347103967585100917265561970690811236507527977391776022137753445093070666246340845497084268101760780729129293261906754951989954682935786396949383851309768854833544629543377063592897293749621528156697024609061158824728407928530630724929261327100841512845472235472105942965253125182091500004035373038050787627897585861925651961356614518671273370821774738991272906046619404320732023795480817656404514555586306676752378533015225480335583188254220449962077909272207018115617526790444117712986396121202994557567132072932730898431798927979357894268651117567250516945320155331892452596367075652856416234447620544453761943764609280057167061403972385405709229984476354655012363015005206853851440260437471626093306521042691886716257024961638095558566316865058498003898010433300814884529587415478851929609382238594803486673852160033905853537471447694782868319834118257338345368550794975474818350699827838190230501565727757464647522944684960496350157605854929773360604350947800264028694445973494093663270713482597120971797601415571957919194618920751438497578707835363054555338263332056258321463880870683650046883908922471196121498442403929589863902426191643228302517441821376651198987243153273415194387019435685861567227755179221751208665806017173042004658555741289680842154383322758823844924823745206889648821117057601712959938025221678329316574038479066337673933053477733846971847841917135986379947031790485078976162352530689378600677796000557891424256274651456742812462648631130803928387829695099284189074814430593901245211808684329583001905726752530225869197752147710054323030685451310751094506296822691045149588781019968848296381742588894115889787913759386903457908459660193113154742533107424722846575198820511048220192202730638318752043741019800549851780370118316447197066442328066958720640461584510500940842276984568201801364940754611265926940089129210970856873776171826732427163822249281877178944184320773463243909990548815940065827054022681943076806780290820476288963397731247332699338300535264042140624006565352357667189440597067559450205766293521562582450365364284771665844669843210779924615243188088885227286966429150130854845249081310489121023680209156067847123335627700164040240716670346588782072541340953595074174734357093128606087520641876287223950049712847597054684334364027092409251540230028290368552945414151363958539102550224110125520366655986694309247329690777577499095882076633858865892713621494140068329723210058168393524090225356607109003566419212384597973954396759008312255002343862251630573094599036042744215930001286426282323850269364546364254629229537613404506719276020640822402067229045782692888710362079083002770000571884724049336185563298705861890640531024101991806447794528216064007182860959096221818596738914450846073054320342675888072984898781746869600191271786965598007299115657458812071849459477772875209541390968146747579117787806324545261311136300607057568579603822975027974062672555021997084758212589020505983914100304779597182969186684147581637315361862622054767838649306775175295512788402762518970983469867288367799580809801880889606458733689654706205411809666099626602305893408714848730307668988672428994553315753717745892624153667362652470557357543393994076419451807685148370795971350686959200783185079745770314658690964631362948082457179581928416853197121611188608154330137654551695843577078733169630253529577656814427474579226623589790627014678265823988493842259546392849945071818492887496202674552974790187265106831825729920677419810658770743892276663745367789566961287203258921533235222169649068788997278455516593675987764890892387140451384341367320092992139833263808027568605356249338144834376348591584575843175501645389400825142249644948172355342453866821102466722078275161301807082638382150500612747874048412667374096075245451783564510282604592098109509800667212203254573389400091967716100665793344743121392377176647968581001529042619669057889809628469098091501198952417292235822166121541597020513147784720228706255274182137847891503460827944505833182746564740529502263977725383345833163900610672327849977835486594541207705464144652440840805243183140420275990276030853397987385231600135522579739716707154124294877641880503854779435717385042171721627345656874129086965246745218380091762100241653131805659048216805314408173252762278744191760386690888781466373351604805160238401157811673910390333061520433168719138681205537219688462757408078744613611963631317364187105503569278878451772060278264898969832440634697895841922896770827866116440004855609783390448390645249313112646034571601604414975376574681786664185138506097616347448483978484846011556833331293749563314848293800149221519116035826093381703308071235314594486403331792887633215200512643987509681438427121573657166830674304313157658971661385561553951326373878556344710301215956108430172971932381997716424675527653505155327407936807761641522884941200832172844655767704497139967365975760909007066849128448822602813827699182458672429222285173139191809762782489164117835802124515126762115010913555513813743644295437770157315608161585494429130984927457507526299148843310486789177378368451701539016266611374657429424031177655804341824987504713321751863298046173631116676207172273139023514645519073773892599282497587716265088722195015288414379467263292886713644550448921944470721835981875709449131406158354310161262625120709937536632916640551838532498479549509324309107414593918248119953379874032530195031882453600037037730569143842491779904345829935755655517419260907661362466176743740674687842583811274204196822752202709810020030342146061496568298090662212191961698373750245764349979722353744660108751599076280375739468749007271650222384805849734476840782695670331691842122282487789808620169613985176215455048978093369591680329606063873736535631418649321197212538481176963589294226064589720478308743595218595560672959676991237549509793033969992356098569722702429640076516019579134643075728790037984746268181856468424471993468203419416853727599001037611615773010950751795035098242886001018727320952043714386383199352456670849349675128516347206198471805079833877036802645047645274042709807327428205405119800206729907864762359784678700396720220266504379231621634636709019579580190902467382378733340070463820848253261194982572784423174699556427856825848159896818075582953011041925154639312109821641767182938791912231475308604658540041621897935191688160799085398943019319046092056693504758489804413871880605508275260083702332429077247946525509467518438812869023126774939878525916821101044046610427754632296712439252048754386399531089426653119698259206604043949111638305050606152768762778140471886723496412551705012644530819796678588069927109839709801974775473996229805821324821313886813664678904816733657604555944865396330194644397615847492328618869944155910444720134568036534224638893495753665056360778939285740870568944871943141128995720916006337783567035569586508640719937779244899277603412390221973006564120890224653215722537900977294260310361199731736343013853643289817874909343952903445693572018946698745371786382658781598771906327486582255753961693810701801248883410800395237674943658826449224481578049457606930891976230159488090337744253038072288005097690305862091877008312641312903807155133876959951851969585802086765248071216246125709770848213778235982794088132313301738955171934662469557953115842432745731286559614724560719547818541381733194555558067759529470611630212282873461728544987080127911652720950837515170314810015687561663351071455756913825907432753392738851555516064658044636300449243407860545154076870623468540561631710641437124484189826629147269491764460990877942090192848817319986760280937892727514551674506625837092056742755430188905987098801029200320277349520887153909907859681973411020852674096088264198399608896455493078215293716016176317968214480223746729956140941614966892810150510186955885878098072496278640781987200460245652729582621365522011809983149364079252177070140582511569945240157618910281079602380934418310539147822000459660851595526856871098795411909229342540103169422602384443963690309168295558812181364444761505584577176430786832543672782361593663772735762433573488287783387807303991207947206544108893227415555019312847456688881614666544476269582352779109572451096336863931659960039522636719611427060680485553930460125470511894027947880620618539727508694481577875874084561769211611785437145764275141886383319013992899884246933217784491738548175005557229406208429907168407324004592739950950122748357743493423478751621256863589684180418433684579832739246818835855415376121640777877583822303077969847264115953433233810988488455888518783059877121603515014593610679839516532195615152144027238107198490288613822161296274670782722021692832763144455694058617308941977914542457307459187581933774893281276161528077320045669296911892341803192839912460751859292750893165597948716166916397049873132018641862931557608306013134189575644167541599958164825296040845380348515580847470222397269908924376273057039301356799042163620294808167779623429671145924479556154832236870546194664155604584890505190554591536028910039590183033347004603387143524407670296581199401710150405691403341312767190244404076974882752572561744301011843851160828251417619073997900279623226033688314976191093582767059967854265334024092505786909522261933400796624947909244042665591394347397815604911874343229511331093132914808786135566945214865699957838518856907782662360346642280431202332828600743421269796364793558324643995331588850808196462438941849151242356983572361627429126930283849898179156674419922754174713947317230302796784000882109316723721728111085929456859255654368827905753240987546563814588765569675174896642834217341502373103651389425860025103255908574391171843998930047469071189370089995874895899849815900028041158023711602317289743441153016736192335682731048720124704645235631089648424619839386743158778252517143814405019713510273778468996946414255665724445562379500883628526881193074181436248079382074322000803415710674176439200101209004482095924053502331479786734711331566791112816058557592012624105570372602652138259262846527109198503709302410839456541636822881492582599230824164648180730328629684837378216167236815091248116328913892270282567436178536992729837437169808404233446428679697900045537675343768491138296681412937410866823331043811989808448402630888942237607185610651356236934033824535424283266142249004923425773168458542495668089260142178301733399626651082287005137185782051009590369121265672255326848484384947884881086688624662207314804882553310197409812807816510762746914630776359813127094144367901670635121301649504877415217451709831849473088744027837837197071803223928518818089661291803326866561750306379011916377758392637191451359790760958499043451364976320412806544642714543673040478745350046511707748049469431310505280213652840505117714781712765710577709015097427545686749350670114207418402199941925558323126331246519420243019548348147035302139291799448750843734251342379857823748291793585594039811082634170107478546037953522368109230245602821271802994798517237313378951831688184392017605759253554376824718838098429847266374341267944653663133956122806088093292680005093301310689909250338140998206244471641316099983540663532781954513359526386281624494730726122784190490075471212683725505899886926915237324889125934965495413553194240903996482421283711096529989451319776305110928457448837180046563943925220407467632857790373375788825252922128957832189307904395995441712144371462738332368225106679151174582411113501986640197624394901233916519973982825138345641937388564122553882072358346610485612267704257040596104470123690061771355221325481466365585404835622100119572770053511413847791143435883168293020732027178802703429800490565855477543138283115817916053091233462040650731932808694688327392671700409051857796927784675185913042424372381605604459333428375715885789414745572365543725652425263330360894432770115720291818141351820118369664326375045350377984572547635625876683014423711750880302573337884015528681115181509048385616611897473500291514327972262743357471202984561469454825078144827303913409399509742941920138039555084088708678793749483794819903058068795458521862420518005182712194071898943692713131008493779341259691215574357216496843901294789337612980707258819060979613527360142020415410211300906177482227005313158811261864039056278568736762912594637229002967270900844892886248394052929804929708602276984460773305473319359968983074655144641120968758630428960237107071586339610791898998628009475815759802515739733661974985106234142645795945937430337643310378136829885378728228683542089029446855310451534092089599598697651932503650618848367606813163248587008472365016810651596248418530192601329811646182567195882394759615800935319242143358397364793947146420198508280908367885238344092169169700932866615447609100620911828839714600903318936133762411331069889777342390720807368578805936030725254950400840853266433826070906828187907797431032479984084401733421372045700967939185977183840420395158761899245623083738968288217985349467988001231325392088610788520660905837101669832680672870540407678543454155465091181461907753453387762509729336909661157388770104025646532584925808650923771352885920883763310986597887636430471076578705709127585869873597887297588158746173657178199732630030262897521673757893151892864650291927162724804175838514046703129363879703862760179025764762672511189817045235654272127228815954576669929853474235589134745935477222285955269996340641625431988101631633890085108569990155128992255265000361115633503929634465908658041362048121219918321602685816454273430665879485364045916479821636535349562509169488333670800104708740392584726674755398937005238095705815274672245642365580224230617298861159568600467482288218977140512253861956585343123762713485092477495253827475657830707699903980986811496570265650976314780842345264560319485645900333689800243477542711917428010278270388638657264740422900175068092654449850358799834863958969929426124839504663191329075510889455847517798562354200632786523643907769193860771234987362721087159559050634931293300036260181505891451775637787151813987973597420577236684780068549523958913054799206419696224776022651219033765180019839110563445180273126949907765941125961627905455004097383133946710362111551206902249557460167704793584150753240363063131823348279613375062197620028109606989431573613262440858076410232450224345714043136053401979124019418113654880430770678889178419835563788183097236888249707023791803055460265322943635142650886662300310823047589027330158841099240993271070920349220180199939768248131156163797980744241136757972139987124912302453597091655266436954726640195274042339047071519974646830749335963081845245493883821846892290446533708994935376752937754538290261860957283431662935187342650404640126703727046871211019294032813593746985416475689408897016899668727841617931058256695211502543161991346986343212499859982899763624807523046136854317631654611892055809606770686640167897729594056864915406547721229101284808750928537659740027581156085120563573532843678142734503652901853566660748600573941603574322851261098965627580247378933663179175032349560830811247121815863621375181461951181666648938993537000890536514925637016364634591858815130248224347496769607242242360306120900467109709245528863847697308848801687428218452318058630820158587710399125065845201622842304637905372063010198071938609779311819371329281851392985321142722166064616960806444579320522364034646469472176305784240466365544164546305166625020240758780203819023366818501541207042983547698643917744847171519398435294259914145119712437559043477557309618979833413682186311964545574638722421759094258781112940849858581602458049224591777806553083730838136589034944893995161337412589038046732002131610326361863220853841444684369219931147673048541643005717338751684426862852842921502589955606491729778072276394880248318197081618036420220334737772652385742783614830282151637009799943793742962355316728228526378136953380525579856119359008565140999168655216054609661545581658479464299863428091841744542188273804746315034833975410586674104342319376045219488076283707018349508061749416545269677983082893898016270808748788298070123099878487349579344815112647005978665490904795759190391177112491852421395484423959117673281394648358371294686017981903052798853012254625311195227170488977015018730729335854276457510658053400869712413602074383224669041400478540625003050711391991254206943461622125420290276713707643770010576175103730506981780564124297425811720273841352188518738939489998930246813445175415486145435741352076835925069448015376172574489928024670214400091946756463102475794675586858951749885269522447508503533575357019217651385045684158565669058717774280701805545186252107602180166425617218829693818241701942960309937909526320454258243042751623988829957395783907910580514410722940847584253711342279744019818601946181751394783274223159808597507920673825826443356325065765672025184585320222375053284551596400501896067798976654576791721635002382245879554213825808731999990372500915096214693352030660141176289306996078281767162389235109229177404483982883572266234317910237752099796331023783563706460540024851439498292728360486386687856112753655398230932009203555070455372723268438511950366869370757518619669930210573174824908186296554735354107404075350393091042426498071868547888668324707184825597444913975207252255336007936218225789000100216788300469496637171870246731686218688813238692829530859230770623366049668377881935494057993664167832121980386373840984253358770099616640533568035487914777573830981424500552164198129270823615986409880866034812747785837392847142028525148447373407177761381564887541886925500419789495586318237094237522954760968590222395129404666702791598592694062649470760835529026510401836946018471368840388447190097396242744589866509832368443244613513365031220788645333112554375515590399213730287610799590163650589168686211023267562606473799142100775902899487837191777960291795124887389393976293221019037476388928358562890369561525708726499705356549671719576589986098990530345829574383573778781202979818233008028687560643711967193265229718856388783484911995490671621608619804870318308065075686235664075672676841740642534280265773109585172023458649205936104875260166355404613140245348747882994468030303699438014746817433980913246180039959915946151837364954273717224095032715651422202579932453267398858776640748521368485417189996692707306498429791951120422535143618015933201138374673035209941826392140520589368882578135177030644510282271898521326127205687169598042638867025875428356466989487251332670467691675390796686037137143363856409341169523099982186867526536645913008803853701779054804814555501309251417956495431352428822183641725209160433169131102195401469152181491569948421710365207007405637538823565322755259286664277615516373408357225914898058433122738476656305188760900547326441297805589275310323173550935221641162175298767424905144014852930313362072867688176359078170617951297231417930852877952637102163816373327737375127787966212101349962080258527127040788654015705951158140991091308061423750099610358250308842801348486133875603955198336659806183959321834469624702615244136001109983761762731849260399464348602197251955603439852590351737839927167954406321161806896677516191387778443809355057883910360986895430011143546941636173208126054850803831957278962944609973304763626619257248083169419109732133134192826601018391020749704773263301698243993284486626504742492444465523728314289000363039362969187264915759342466070644581828549010431194439996715734101871171384077769670136580754819621226932987560606667586092863666395334225528188762867127357220225424357389616972339593583620757368574914685169944631063998154122796353777399352232338277151937569164220543338704797643184001439700512252987477533675798606256987818852860867859505298277094581675740676773285676778937427756291682140625328370188600969212749257457564786735563713325809097701243383188644029114525332149405232623740712556573301026124725251838230126666521920755180837111474687317976038412916730467240203604743284446555350055287714411401749639001089196328660136212342807086119439502040996024666887206539558523207573708413824923239741864207137544076095153799215896516838962168483049703342489261212310124758861488737905313268287773350042603968149650364911807934027698993000970214219836889724331893059210656361191513308648379842019832795017994087368057644552828576468844194551809216310109334209398798343119745027184538469643302226299142673033999452722999844754446783339041511348403597885673771157041869297704166920342762473204586752582310416211549086709955543793534602963273079716413776111896369389214316363566773960469689219412049999100550633191401609917014216590913717664861638278755334578738990186032682185422432388674283877606654557811139513886137138807340143350437802756641256646618169822257406174913813748848903377482486543740588231015755768503136936367222828955965064652380572716545373896072217151071133748700420472526532397817417812435937078509570046642895220740239042043018850382964129504993026023103194657745503518371418820806649396599492688006122011404288373365385110292529024132317325707996550016818426118853035155812804125753139828591202360397983806993254235599624207961907839385273853781669555775715404856644612510573239307072703116117169146881031271656291179989955583873548975899360994801447627209727200729620028992551317705982210411388142591261591831691279784729044856737923709859759068767859556584150095387770665256147834765572262799399537453803088569299211824535935753592862320543610574188356318386614540179380406369456230502868980438033442253118875155444706083476596209052066439955782714320554248362749311541849318445673342119436728649465992405135875026924809295510944567926905900985830903338287352277239159059643854895277583143149445596753041652138211541007583629743031400503386028913423797475434399030845896490311710253168862005256239173163318099590114828412562537322099202160843418033654397494830319963328609554463529664941259919019295768751181761503599328392430511671994871695394073315845391888227845668893593832473270606214117679591198870071795956863396612681773116785621260927695805382816232967463476564898494682442557741681978569878995154843622179230232296558221275474387467262900166435938893280054738971522765453784381798460706991920815879917344372837434120988603061380787686606158455400530377029877121113642464996273010091307131624903547190658995043887551155576349474959636744376881970476036138294593482336691022688233805252293872915983787146041726911782671053982445696440401097871710896345801286680533869625653787777433730223589087490285146322276614612961779705592043545683581129620590096634857723349114139191859894203466671120670471402394091995995121586526460563792762785528515244078123308784046321999087835233149729722555848142017596191805550858656851073537971016681952777341372801689385408501288750253940579743548027776055743679435994248828798232570107981861699197032603815514100116390629168133624424551726544779031426231805039375578025863686695626090676090345392983010840263166364522724094097756575253899564227131809796528809169516828141344493151844619483253880809356715442153715903469751949338936303745664844621258001811301429842387622869673355376714176713133443168867136445068281162437661463004079538364367243974663864029325342814392623433900182100696395132034953591668478076459968582189800200838461394387416760502676876555155338647970009644148764758256272757311005495175577001598650660111864240269199068612312519634496652579187149974246145864623268349779920496661766615707529144836663946968497368196027680678234314562834895973297475732938813093490448675642823813645957563991969787460768288617260117718076915438153936026052238080237479627480354319582798823698788927315520130129358517807807470346582510235196337037476493482795403304017175017755118691891211269807934037494940529197422398929142786447053038841922134632688537311311288004868314123373897572840253398072654777181886327858498604592931487568223917864243974668640639749766042746736297992221978838605751765782594921215496236654476283492574528633857581273232961947703550075838420573227891638175755199498099686372481345830505122202837523500504341106435541692552937158614797880326467644144906225486434507780469922820506108582530224275515533347844625911959162009039296335404880432881870656388599064267685280902983773525384823107323884030998101244314617579917417703932218310763487125114150018115219029548444477419544170728394812723148020361189258410483347173949151968370078716865790882112999648354648038565472846172670736170569159594389809401061026306879383976786494870261485077585932264441018647797142658182282081516358640279338549044863977222471958377743658197259401174139766462972047616048928486238090464786123186755831091934444086949470344545321986509857196557213792649365558148641199607019815331968113481267977830343974391400709301922696040162115256677470256282400038519565564129508173004809359361297606213500628332937709990632337200824967961082788843172098301250662280116497082747181521521629118293548766331362374187412849384246179793042568444223020328436558815097514970990440479036772646382872779523476923750341079712980184794946479148130212292336268762867868412752208824798144275193424940747746772885579723513197830915481978139397214655500399184480846252783968966050955626842920419763510891798942291918065936208956700011276924121386369543439190453761118940405062436664351620698526656658436813284765272514391282711138066399638556407484714005907672768454302160648914511127242089421303992631721195381042497486369816089873014712409566474438266566628285160714816543180827562458458189000782351648437565427120470349794887840747872815959482256778413977323511551820930707374425040787310265965928988784987429977483904466922494364221539489041728843141823985076892047393946195354616533505869122393333410415400970259461846274721040610245005123048707369763411107070074168990709810541418757949465826281172526545645081506050322984145277428837326062675838409588877930109665466814732554663518594796908087341577058679114168282650175776857352642753684404549952654351905331109147435205971956009541853927906191352948886685325721058900461697147343261020154532889741394681558815733306945805663304775227865134937323201286031035540046414959859413095136135381856829720358705421883321120187027813979656735779153959426819693482065979205155421847179404032086530091566042501964604761907953559093159433469845769849059889034140815611414719653296440174534773733543754410300499661445088659107115139545498215353059524511765371886383705932918662707833555018241996223794572525704513333964194438238914133905536206510059401324545967393000205178694815774979422717899749004500585180844380583051174845479923543425338995646744563820273578891006985918982950282276863266045097401995668897408534942754963222270960880194976542693263484505883937766756247782085746650340633630781205032390323791953313424259708810104438095484661961723201594879307953783249862770138944322179356971524553083696505360272293183838251493540841143888967601408884049240167032799032063420064026760662317779498665139647809087262456157637212819411022595644299734183714531348865808129277012998995946316759943059311518406187401892074353182302304114824008927320041812885170702819297161429022265762881057603417303604494662373215467862529261261039442791194797210159740985122719741826496611185213513615684106529309944949166010875810283152351999549179137542367593508569709558178946597579595285694086143756418135253281368512912681659656956578176164175903674824027329612586623474420784988748895303970386817788817279797300902791359829180035532400258423561287227161874670667595964773286024226766873224828916053482278071738713177997675717249472770306173205395256870661985470348017182945409688369867698157114363837687502007425900549342132766189554087162707026424611212217871961641964479273709738845252422798413657062334440619109221392420706933195446096900152753513323673096206043949970807793845338360286029903864499644811442634031365020996449821365639060202844722675425707553242583038005490024304214272509726780659548504389476189455769341588270275971632607800676325223966582564248146728307577212049056416922156004827609964739135277391186828231075625490799920922187685807531504983030238692728982627696611899256779910868999025908507550323520120256810831711283372364014537909934557228861019642558649775716504636506940985222749111694377373200165431918091519954414624068647980951845136866207992993150128687016960127349046229252119245847284757808118000549770533632116207721615613407234345671123726651897711438726086548853391111078711269294495698345820511943948815650281070801767563370176623156353583214358415401279362040913390362809834249014898205619415249571469525897669942700824842475037148547606889940893957352055192177383608243109646959588545243166895512729721509292286279079389190287476795372055903139587298680300445066066738008178982470868097624789654991579635157269445166549005657013602464168866073538648940460205796794726241710902835676601774779750571842759620145073003191771815442873798762688558769755627604599924595184526681778194955154652063053003336626847520313386743765925826100727372783354452135429646585578359130386343222718683023959472590152187848158562449488518179027582661957609964715644590549933687746216970813265162817516465751478291467884128898837459217284577987856744501004286061926098421041949915463716282343510269102835092789137547812906087331582668892470223152611490697468154603593416954181982906722052969628032034012454769254872741271425873628546926754515159312539214448970055145781968979879287681524772365988730854388958956519781180941078357613718232610757410127069212301864168391224455349132982646798320254329986756566987253437112999241172542314457233768085005072209541512026512193407087368281881569556599244658481258139204682961285086548037746861690945225386308214547236948000813877464331515117306992460015881053769261423049130579354168280149277024473291272175131961662405882168091308893512984128733319575952345343166571675770309151907959375717168160292776004343882242310996854517440379805116472933024388109012286402542002465372959203958974132572212782971963143829687951480052941624853608025501819274828992117303408897856848701047516855228806540166467581382467137269518003774595116293360387820604247429509258475177838983517257091116336886927583435229600779152596941157689489582066830478172329840480112503621119203014042422570199011159789713984656283841659898250490670455704920596741815108083874887124644437788651101792993564955706085611085980410653787618851520379583731345418539442232083814254936522469064590535859666962499689984063402819366057965186852536557527648880373082383518352800589983517901584487100098882176178223483383101261414758757144209052454149199668982447711525315726394666501680308331733271345063672577514055098745131151411050334155297899973523624909671290855234093035863971705293193582024272722431279879895679883954746474075000955291410106920039058189132907523789165357759395704732909451486762535934988911553303557626394593278869247125910267112091334147128734426663159009591560484329037928074913113313660340602346637911305026542789717356053481279542916665020705112903824929611421924134823382929646550499513385954893272783139535154404500395791060611848957847645277483670861479709932650781835731160913906134878019885804082838582757577338945979863049080429276462642608586611053161717073356044439840631330312322188975520585332438990791204399671393123028304442918161736247795111101490156050571595237869838592301099981162530128422636549105316113557680881392479507521859602656248338186666811900009964723627774063637496743248574557167208709829308031853007969925953433401271106395542195506914439938011102979650533184833956484191690100104965139950982968019319390606419889966772186404894979354895255270958425340632544699847809266317856488743841601257549325855327887571426687676449151485893818039457813483047194435410205144794799496066725203237745497651435706086568164528621696108800222688145896344135859049678411871615281882850622868613632662275998194799457954878513315460382557561794869383742160040057412862850723859531194329890444521259169850113474865683201658289221861901374363000970216700404250195882955089716098066833495892311410395757332820909347959749553668995604360160643870486452908447777899995869667342125096118765200483621531453468279423501869730920100269084281059114385546307650076292858844405357223446611190779870473921112471122810512391672667720921557157227846929762271000910674975862794441027973027055095660259597725349252193015386000006609305440982658972142810751730361399657385681245174867256384879849797380537109065243184262277812209993541366079440607136026180792589538685662592839966769811722558341491077762588180220240693811044083590943111966667573637811074681678488259937558950534752686959661111611722266006302370508418216142771040416120671908690935909462051391716158725669999507198749547817283745009415781724940458061713034265846329264342791228004347869579224389442850312437828030271774672764552680659435647381152288783561980813453802472275739668532808896183740444680264599174573352985642458899234158774989582258304697256245029898708502954723058700076371540307142209970290793976799084079448562022823215474243460921650488337655120152246284447518190985895212875661246087759254480054543573467585648261392775822893272519846881951388168627400871775480286978915122465653852034862175429040667826206802644344606755229354067880981187431412406415166504443853010705265069451018761106465219020118690191895118294431712817898524846292390107174164840211047292596763414299592350600074445569684208787877167729519720609873579922510011235724231570066048505831272748235561458877230885514440760205300536983542150407055057706191241296817447473381348570557049248789262331881245576410996634911506976465751768716143564415749942947854378213298093083707184493158386805417772914160502523791083312549557336558741846416435252359128292940556801781112123068547124236935538410289861155138922279469084848173419436935608907444899686462029538778825181248831454505090836949334275016044060373978393803549966762369506695201030134862245612238894695306286947409775688256698875329792612071321945501288387297168998122403057084431823400663772043779954531499936506294967350456069041280443380860605118161348374448946482826338811834114460858578130010557630328352757055582662842540785307374633185827402595224969395883330848602536074826781307838569899201641868066891330499690742829980027470096688722167002264616908663418375765527890459203339534777760991536685369732411404663182651305305095486411406731708913032265075264193950713585065457236659850298760930651813289310923736498616509083547904907668641059714202874727445560111833560919010551092719538706147021668938422820999896790639352307350554192494655875772424276702815672718393090060526474321905743824981834824227465181434102452797598779507485796037535476890636184600003377986277354787723548359850411209257763160624655207720396220422232203066054785295863177924143627018634550089384045949429832824297583278603502647247335185222310111973625302582583324389463056580570304169237796500261721824729926700531276381484146542521598573028499151468890960177969533259790827976785127426246719087526072828234032710654774106076925548683940987662868462538227549660746593823800445662359600346684639063469214860771773387335196989086677824664129463800654006053736939500998774927129191697978126757930061730324818218519665531868364699638565164356522364052485344632820691965449479210649600276966852039078266813641244693511463622661872738916515238211070912320951547878973377629605539682711949195627186981892236957409893937092922035836841855789732088083168976231736926311588555129757966430018538910697893849317242932722439935420818770314317600103463704453931201697679921474912648307471509246006582917451477711057349892535530097138937430746732785747822286545744636478917884429241771680343278262924746223612271926860290084270260303191939343494991059865585230888161740170868765586222205225974298017272225449545457858538744763196783110314840609865732008312171019604516100180240446839735771393781911514847669957967718384796193660126249797513115664607323591191506832750257744412047754106349931022601236250465363861489037061537232682650549937204748293395747634299455332845804355807349898941893396606832144655648673447552039142756093707047257389776481941499739439659756843310892660371501683540998715329355612184019523772063798335433314739540966501534763571570625971851919613044460387192693354241903912690964361034280864069048435166442214222848176027717275324256001882193881343303950411664410420685292257377510709831599981650394237262305713054884676131403114386145663142790701213239632458384824616110710415908517212291890511317469785521219565769854517716923092698002646648779622649920884431103604134192854232059489336506663119598005590257083682937645196195204059624297235215585204392511071727668360329242383207909825983954108128614073625465382403971981109524275549089869467845105680564224009022578019392317744745572172683262754304982989740409862819720199694802337163106962752649988308664617934591863794212908970180110347239791455936211950751240949559127620898680843878229996846721200629269825662515008207253756404516020429215141436833142666117518219647468168813044014982513719237490704869780109593734858867602316108728861357358144709614571276802966017778633977612261624113692866024009353376749696472967540577108041620332334214871914185963626627034780403002387353492140572204219283712139098571228252344544189805480281171593630496619504343107415006485418096143595450520590261797251901832397708817201829581438331370355670658933642632731345846810332632319324718262870864628714505092393317848380202553283663558481422060973626669981366083040523699971104214078917000761157450058155233375827970967588744531280540006197933180885943928212715607634287396546735076975667121025810276335526221120644885466625832021231145206986783531640212108983697116288138253070620977940181856882841639347287413376278791284924372616682534636523230848482265344651814867891061300371114303799063426797756916228339279037937180504605841890668612449899584369112119129413234298675010778096721270407935301174212221519184618945873489276398618877021457103878522586230237544419978471879470982574789482339729353386393944850719091370345772056772230862119313334675642299750184016934533873144685077648984984498177605823299750931064058685330957306041155963606405003802311505871523120681728259960108264367965857168206756155756086820596329494610653593292749905294422638994145866949711587402730405498204133762685308341094397181380935937266864523193893050477815911971007716500554731987282663946888797196296639254591720360945281623447629600753669030671660133107496071592522549908573232532722844558258744034228889394360097970740712670326190029688193935729817288614589450676390807667870220649432405274051766883830014638255032932774863455262973855997141357519936001211100518592419303149143637882927655303485771611416227420637624904992967550276095747343139692734019691837930550999010998972226830769507775645031949831063446118421198854667216641361939964360510657023188877959610109761769220446629132679535187195030680366694603950871340314189112469431008211219037407845675212429855341858151597874924839792600810728068598414517732296731893826444229067999089800149675643219956516044959089266476145669134274514505356801726451266443481094914670960590425859334476770930859744194547161518290521486392036120058532663387865402680887712224474262862408238325516948724252874163015027900853770454332747325555945591698130797170962848711079832399720189068480233401884024034109212787515166637894885462691401974414126899550628113775295940065449772721055903202305526943638544036325758959074110759122571041524943664058841159052075560424607874144685976617594882244792169390046299765897597591144318566612322032963025791674459561330992775159692227571934887260580826241804903787499430736305089408772350627494673989452391977052565132698785114043320261352386094358437926518654194890765056893434744778865927301654351414815846133435477341662223555475725586705693682482579636822066600613781817637517316676460950980971689274633622525844636466058471879841828126780452539618303823582145916092948666556422173031793022010592414883743316001390813331710016758106795038903108671969744713708914496829055106496529158461205441381937218020852307765041721101063491591398790569230106673656345070221772555584849680429622461556826740035166848303948758904320315849479957849549291615269937676549209694584442051072040559254760973148888565050219376856815685262726799450553582624726833249962214907479786792339477201126575402278750722832446112971523593867585755729707556974993354057991138958689358946855682226098992329412524175817883978575456160805605365760079193479867021952513341019715913449320390432437863622951366234382518980031375070789469390603082143207783426381521308554864989899898169893546098285597968815953687918840416942919414596009837164457586220426113154838107391388687977510840138144160150511140285656616999835991683203830365486995076946457869640005266938803188049457239857287492418779998978041408639070349742572979608619281688882164441759447728280516120378204476443124634492845293405997987807197949475943370291244229105042128187169176467236286597682085129903324732415557821779395597075429027511213519690911165847624885075597921831826180555114952100046851319657999890395943702766969188553876390490405421312402685736823750285414632219591246812390787474465291150050400412166273211121616743740575835737482355454911400399451981695686286363526674591284894766302341574147257940774292564494842775364114246690758628236387315290640903757027788503290392736557579628574519160898834489382046757458393863492449963164006978373294783702813132164231324156148199019198357235380581840825193505463584428954152770196964378272260121816395826579236919123668778437690271134004956777239362222106636901390669677722903845860550820918570026790109663611934078501176019575531460888707901527019723246607446892362675836541670387358636041622014123538102766524055472941197646000537434995015813615988270215072827385182755669930479106256091149130310466103782447156016106900093501505573832695371223616232926673787588426555168230260735662668451890109611584823267034266557679625325356534638929802870205244002402028809999311758291761245541990405234114926428542363046919504301444455166891680253513886408022421723829520937299844853959576298013690747344869204146880341075563575443198483421698739202157162658213229156179486913598680540312582333708923167666323198994528482784110297488607127859198930788272258086520176106923974038339301360435227733652390451366457272143055633936028357722577165357608577264172634064437691979936888424100649046355568402226619846370804676796953091853598364360303209807762836441606408743100309325119477557252852652192463620524607675762018030785684413575135501544660814103426312367945378366614940776052704406419241153541287129759593851912096455674151946975122124670505013021386041452751071066166475208951373868932359310401428479199608454328927595803900767048999310111310871311302644052237134880596617555705459030511766561391436622048492222110467975372688300471240288279460611096871595908170857378807373830259978503614820810543193097874421688064042125541680378460363710412281428613048852394113771513803297453888426639387547695833914528670836128418466543312136398620115006168843202795510441574112386518042494669711787847032412923211036863084490963507614722340311345116836047160470864513108790471922476254150526795750416992371801109811268852204008589229852239841121142258859842910877696593849279150178255368527122838065939911888040064718334683255414656116182887837786620225510378328978570937293865395121064336555652784538143635273535286695033912044388147092019907404434754800444217411929212712611620727848564556607032109240355919102939479970327754560800309947753769499514570178569808962624125974083580815735016277420990311326737500975497770985885204104680224431811250166022773112892958878362243218726145053165729365876721662977789241339271622534581987563076115276547193267790283649178696297919431794849344469572205797503894855435051613069888401822877250488085820957166935122431538146579119125692563135636453429225237598668504287725404390631559120156092149762335381949376570558858013299017817743819744784014272638885657441931108197064913017502457652770856918034063834165857841532967394013800409485472466939859157645291722066337045729232538852526742724955582431081623639943736867111175295600675763055751952944329087696467748172945387600473553064584218187021594347096118118441940548576032977761416184293119888127733419279777851819519508981777341559073501945140011709508637021565810733699038542360915813202578877477237171658726554241404340151237472967778755296428521896836692581384361354257676539250433809780436117182919465201414887137214339898662547716868587565232450119437480450527225167885104593573885779949116075607884646019890986057758118372785577602002960956365457426229956432364446955167902999111125675895767533797356432739138736446826934916375554644657205459978478738646061616832302602938737553821287731744360533273802628471574533956840900895705393167277261268109898786402589719159249270239249452385660239182825818739102422293948527272265765282829265392783848911192307326967784071052192040826305655874519930069034998190065918591631932651153537462409875015184652544283594814495750186594534215175195590406396202195488184982111403559972110032210238868397829643398100009136311068227685649624641356439926941766373126105460803071513602456912978279954069752268937922270035284828212999008997670204430597033721747634422277480015756031083404893642790249575914521084217345022377100741935621039294238998850949169112575894907395920604687235515674112508142753696344937457256846506102860891541375003471464974349072428698775239209195609940442998014470660236504791262114585991438309831514748606024852046847837406366765886082316597310914944996419301462361599986876122412408076259667961822598854137849589386143165546233290906229064633760272724279512125349667255075437232757124166176475607597974383671166380195775668303515233912084505323354103612253355685975931722777926627701503700394448211160019089922888812187714900941608640855125890414165317393168530345106740681009931860856131585669434496289507862410923596043035655518867347704837552177071639075182340715038984305190230496809912395493295806934055866114974111546328068505902553118615310864699173960267945817448901139487293198253157091320704482509096936115272937828090077207474166681144022849028578902966156546594462802330380100185469937906026047110265209263584702734422487842049870627306865925344993059389349205945927180120356877407183078910391665537410114137095541862300331684910783217925387519155720933009920311647372583505299502355789290197014270080423951793807076796916291601412359815135680679948539424797962797560475635087297851923043519055079130298406537069642307922845983830336677161429984511203818831093751560144506746477737724045431252483524159558736655713127789984295455513643181391249686778494432415882187472313423098461711193222795773458864577378242282519520649393932268835668024902756053304606464230447518662963271533436853369823881151737982188574892499838613195937924571878499074991567670379712445628670055010792042939682434628361654009978692650289609537389972614768870026132437838395983059121270080914466759473997946649606738587535430480133343931358534679732612559414412046967787346037096797263275267262080623232567818718639167421365460344683221218062177665876445102924841090529159746670931652985244485312137682654518412738278176180830109022515423825945575120409756990715523672818025442951862067333339042771209488113421169140412255706689984649367259931018694247820150311423600335353266798075653260988181303248596055432246256132751945442924098545875292531245596060156243990315853363085727249912138289960380954636147381790450191133325838118642737401560391084406312578948355888559190970047942145659645934859889853822682373380741251473788103725856054957736734912565465364465339457172908867620983440838111967635556560549194578689663928269929700282558068932280745158906304698158182864415037441595994149092758934298662165408516550728599909470296985435557325358626794026006275672206554131135621392509975672782500558280290668809383933754166054215358843199466594384225178081216539344174487764939355867411038161053119923716683173621264703439836425191586343604772740456419851871516654717600028238930441336284740068057084473117085578295749155000144629991416531677358626552733189103741144248480152226027014712754905452603185723922790135904130784284234128478630544432796143058918467985828307708062898583267323881657006533344644253062465825545063682807668896235262927544309624389693270082805694812565223675431506856646391820703827265377629718724382178161551971947949727423493622880015347426457339956892570460601823717779012911356229080599072242482748960336870423436933344841557194081728897204080912783223981608490612722836477104082769530327179280808405997330660040652408996235724497752177493523601941101318960227293687196167093814620738294568640979597785757147232186008272624302807006421518501189777450326079455163471258211615408563821412210867928240760092030666432742221131220683743405231389951998480980217968941410656381441076053892231966678006682206176761072641501513292706793322545045329212038001991578843681283383092335636100724390664272451337589877747265064896192070482347821820887252412689291604843260489320765946836108762571864792125259536874686798746814111754866895926394021403246954653936894888611098189894978041737751377987872240464775426099461287133103812645822875382460090824551608997942260719867199854978981483562166960633934578628166913422319285000733587067591741861656586313388742155637774669130679474357198168707391007032377522555152840686993393184204617095200352953562213250894360693947845056666066682154527420795891026244444458297248670621189570119380386652747488133995987617503014629354453131359481909794553590934678709853734734372529272514447423157669638134706574553350108269920003641848069616470349136438299113921236587622404655991162002488916913307272723405528866640767630163232636646181268424773644614344205590729583867016285720908894736418863001066846180234313858106480146857929233892018409935850861411860498037568883430684870896274235187123678012197695000549466113353882507541976752780678738851580382205772378954669079807339362273304371614469511753640360952707744141316532524050214938774846908279028068227283906220224191023999558097197144181186897131061397180892657092879138301712505529313673571511691412573609520944026406947564724650216041501731652772751699252161507378489194671972913788225405209012063735072423464708820440782578417221857540821066621180346439799084223214821360191992455602677525536421172295251380053634643959838899452512943163687701948717662560171150030457912831538276065094964684898280323918609583380406501820754364720444804141704842493836588763436430985611026944401063404095353711360890268197912885455989918667289135136276959106133103844127710235885950472759620206013204485435407997590632100947219032397095513879222143462863399979297463787835665945766142200469536157757251876325997144950159237916425837414193366850101113728376069732317192976939465248276125726968875124175448325937978308268714614717320935065478658750601501215165483239769097799926675874026795714082177150756684984330317029839253884097298399057482609523631244998961770788825970036337590221472566293344427087967336521058398685612529843978618238012932601458662418990211940666698673206073466333576085847221090299622562268297819640365884981189484595113243047475385813386260772177694059997677418862448339972798905889332015449150022069331258514130420685132477278227729667731077841713077967014992631901790868289420809967557567296942621887156202417320012462282868087209052450279781282025233939756829583661006170383772212134179937875760797219863785276827886445187263080590266546409724037798388260517992527086871954805173623538102711095737801233566363333641830403780339819296770720655468157967422976913730894230397520994620699779140241256800095048525284771323123419273760217209920816079286689787494888495829901456457573168894121367579955931456093672065426962782172552471987628985327049440603710467128856467020028891945822731057069339334543785719901696403486266899208971443535049728465171982367112477355488321585022372714984232214764683580823072274760756687772298432134179664248118713878793923160025940634744853197406569571330766562696973067348279431161597639441442706843838594560012907245926456906027938810446897852659613947705641066288094785433272140403807295032668869770085288102323450570156120793948184652956420670006584845456866586136707384158230394237137176733769045559453150907884991018927790122197732517779980898300762836865345752237406383765334064391745281409984618040831188599329362627946265088832299796185575254881245593347211497223001183631414312247932228626631668395529276449814283597018971020058653639790413554372873305039637333355865012049279322002563956637995016261404312762548146789109009652905079557748127474416892049656123341816428221866956530853778622710778566515636489041636238582692070832211562470551565956678578659922333927786886749144999304968785949756899696867846475026561212490934052811377721996518259216273844592632681033484870828957092029989784618565010559924319405266706386466085056910311350907068926279647086893492505563667424938568140712546992958511384817584119045176534376294244036788683448588601865942625687890511332088105705625566063066244855388103753374859768963278707324451669739414409816428335518647524077204459007079033534600251403038293641550053299450349327060492344339375587806235586275322483724692009924768915667845393814959427936201466180959148880945755555126433115369347609509736357806730829343350141360872474894677114741975574148728617771067901063216225234809714731398087780986646421921406739558029806211556243589094754830841887238975981774186829152523919654933508019651019985050694305900271219901091823024321761792328835337247466630610957508907136988534245903859056444656548311392915096422666053935909834357412359702458298866808744450022774130351417467792927120807793814266063233463399478268295793711816422628166734536421158027857676189162801956799395465044318733608849773715189062842206895745435190416227190865035961920915312539394203244306995577079126630016250224717441586287989296175386522534311706979640153256997397587509909971972682055525830304501838024798113348893755081712088275969935031741626097146110555202653440284955304776524639617248368131348067517520848405424018378944848534921945858601761596870124547102479410658062089079809331723900413292658488920414731513256870316502532152558651369170607018751710890366735031022328635689678950986417131617817694827909347415606385892545516585948658180222149985822499727755787032437834180238483307485813949013128407504383474182794098997082131405223545005890854731731100475875396885993526156257452184329859708882738234702461281140476034331413637630252422569185973014973677614195365640819607296865102618534810747736102424468799936816579162120630204466077780603365345043659157018661017875415080942901662033880420787936549490565791763447013260878009198609802885044351173757976494806676546758144021235706006358222266167252304593593038675441022558855379621454372200690974511768422750166747043530265354945064186039060055748906395539252223251575449511439823638678192622591062663766442060215664372735008399535439282521426335537695259267659383499074642790256204510325959701172383015054224857939148053927285214607041411599870261609865556798790544695131569757602295009629358097967111712779109436104604548086587850865192971509101565035408442847923753623874624280102478155907542594113069187532007968795915395723599529039401733149849835354486933657439452507239433164671827469532172800823989343420762704897787314544013029799353580783227806219249643473954741382478771074627195472007505561275453739762481352626564716712425513457716839045354230519349380528563687952627680082853186610871929148005100863034418335577763627868465483966307366868373855060354734794299769061959556366144666074034381425626744231343024100632529475498768140069928690037967799091510978960016950007242382506124205623778419438707528687120116985180709437996835484526700146841369559774119846690375310890203711502861497185528998556442848410956284787784517775800325925629032514661039292146881522196152871661039179447349239385230175138591615868078334178130413719607502608276998026257538788719035615162511035875787801183871263842495946507907016455058640282146318872589286721641564278267904445551119679931509531731544506994722023496563352585832033686531303409666669031730648957130364925446642478850775210555177052780128378983072695519684015962516757049540668393619508629628243033187220404344326681821999188824638682398822830943825407619367306912899861683196534579556352269387257404259509496181423027207582211451907716066945295883720624204580677437471814547404147963818184412074185238739678486160647137680186890769175980931577208171798571494308201801825163219726242296324092662828936823530448815753685865700364095574877650650050125479666147505612146499271585614357867475066207039877134198840261988735663857228174397266288343624065610496489489767784847868836960181229369490896386770647251260276406558761751763161791667508496198775241539691519104022455662095536147669573237296954061789175703038574737460414533559588849963440882284495306522073840666526428761189770759832872873286287108591814800466079036972302711892226706910862358878764157599859114397008969304117616337477292124415525477934064572274375271071749759631064374457733985044189308266400794177328903784033372852721377237099774864146517532902881839533070419980568808259799619591451414994887323877481552534964762890902108337220743378313748770492480991105993753477300625171073965103988762344013316285138463575160274027174057828984027925469553488785891224917725705182916824176670306339264241925872576460906533001701551187818917457096812031139836656928758306190456509344203387287259746707906362244789602883713811673731908048279310685177682011852395147010426227262283287497123970077211014873246952527937914863282578939233535252809263916211343446729387630792585106155398317976884351021291420198428474557595878209706386117261353079335833228244136018418210906657857770485900819338035050305584025558164859064559430763072441260911381429814295243286504251923980605518375594829417502057322921149990108074774550563965859905044069024818232162181853690124916414500760357200515345211909839679682144003873090557336968464250284880752952623913060620486322702983685932009245142883486014467558333491956189860212015976019154192063870492202294585555228350865002603740040187390947287233386644859708020294527537136835832928075017750854138395564190190340408956549490127872528790824208003353682331594800084459923770516336090693415314466943806796107441626050014578947385250843836726000775298059098647022819273743959551322620395172827279252161835329731719439318117667100018612963316611339394917454395838304589689873185899536589047455666382688528210984191108793079856977481017870815017230768449663647390939004411940388253826384927288964435298935578136852153368553901553310264975100689766088046892593237922060817197426089713042328174108405342417108235900015511564309266203484354124531624171499697894663031041343038078515912912218531395009206130203074488278901228763427028173432302061723175250358165567428559834927676482950488393639237082230014087777965072843148917899686795709899977321036466700028052375090163292309987834666736906038013835201727402334790230454050728146544878821777861675406934437352735320698952728958722777331396550382966213913067194702245466879689353042420401378457393276234035107099008585851886520130831273996106966766855852025470684923833011194108571071309296922892026780302078125132466507085386123383799002841842668274841935820457719809405661840974282660755439845327767981798235151871178913375106490190200493059004983595905008187340326965162565735089167524231768915511027922471243391103175498498737632097041824289227535089785683505986693415967382688665407277745690614851937995557554046997444916209406832339323868167109179977040311763709477695809491430513238977353443504749863163671857626336367944807244134313786086085583985912036449686178499373652742522085947387651214890193608656716182605930261243138776279369247550715743588840163932139691314203005169960377866432475540050870936080446087573811615443615030056900589978987296319988738500889625835494303365608893420888670931264277590360792373911031795967606698246896244870935441527793760754393312706877937084421240891468604247900021253713355213857749655200324812874948190402134933344947551813380133102187485953267000082204653470446228468532968669086261601365310860051585975233590445883607110506505464981439619292954532784978312734533515893755319334365131485096499578106761380905927632579901957876694418292706134332385093809525603432995632140787040095517992904412828450288685483728894591941294099851453870598205997204641091449727867132113307543540265699332081681576877234964171564620918872451454964155416167123236593803847747007203421123276136425309430114862159003741175127478643238188729700962943248541803238371974275774679369846626717689065922391558773512373249724796029599716550103494222074468535449326232219462968615441182581264407619644480432231894220825439879494121277909225031710878781293910519601215678141212043367080540450891530939192568989236439566201004473673850557011554804445266602206498712690229167181020542760302540333722895372913888151652319214243309872591897957302630439352127679505877856331705099640718660686473076539176253928487106477344747521040823734937382259205609403574557505939559813557896577055766898863127856820553466684556790582870062643091341849741380855277826520968882425066313882871279251803800903413918121139176865309637980115515667550229915105982870565018868156952175205348453988850704898807706805620195395157493883793687018033633291493089373900446721213096962644555924956322665884948593282149663643156800548164043322975719053736253821558472845469226143654927575804753946349511798137165881391337515663452147799553909361895761737369282498179948663532891325653172488751307406892194338881771237662116555095269651447138824304231871587216027596235961137797996355852759174227943591265057175719055446172313356769188392944858183902578502310281713927478111388787741603678906562803236974567344856093490077745204658086628898716950723912266871090949808143940102909597660929463235124191108583384223885744181021585759717141884188313123294168932765527185751053392843703249356581206197033005111309356394607122915020421154308192805311349022079642231557570287459761310612403187890763452656207391181632566713061206147265318281269679901325914409176230714533295673579373278202702149596702725840543668246538210545390639397153893558532817634585052118472081159129984587532536716959779794004942614695580037642602320507567783341272683382483923982827833531828349590730974097319572560901448859277677631272507422563675555473793231993136835795855151340003541406361017150473032441054029450260800095626467207472594460493660296719030106876880756042369546596681785468388723838036240257720257091249645105254579486239944488927393820213240117406788163256728976606313301643423174193085596999697206999674752467469777576082730699053941984049752888559682092299730025257440584644784241571085182958767422492290697794772809481443495721637641241689731542617618134523978425639801945545979803277116897949535231754674573124566995065554467933660904435420609487856769482952370376628822410422026506786780370872863256301883821674650406124213566843205155241943776357139931928624937533218607369876901781702762735255804971396089870382946586991986988570824970991300032122232786701968197276041973317121424918754796443758503312150993206954096250197738436030630705424787948051079895677719501490156315376510649266429781074799556405692818345010551743857082375363016652544707190204553770256582281064575146855063117366005532391410638005695968512669482520795360064995447083391168704106194986751653787192459594096591127479910652966525177141457681713287424685206412343265859332377095926603016926004006302129058837217652023736113371031134727855085423284724585215495160723751444648210466971648751951852101010167823858783162486212997281498403425025004968518759406894476566280382064656102086622821793651075742433408233352434472566172396242927917686372287068502923256025394342662408099259978263646933953190338575345189131780020627294022924867300036692034125460887831017544596490971760196997852831327557262939459825060967750708522111419228056925641542342730923348621652655119070053474492944849183846688107308975311063487406577099326188538046024348419845455333450461928487954480580724428576401870036659922725356284675626585485065910128552707854927627143249074021585834798955853521126899939179735922694267735975778465593142147636853940099855085676474160137145975512020212668658815954978646107295898714326644130197340291302702345616653799843598393945983075735290844489311847456092487689409926261151762047752194079821044309579019299987460565697959568041025213835769006034864247040835522681939990140189631671720079116421584735133368679941690157448700827316379875314670034124683652035824447910659383217133394651993441188249879548387962553259495485062884477301402596435916579596130809941763077901870481703664575194765770939372336012770912956267969473369653840474856102794555925880991029004833699480959607060912851333825995889454626434208169154666670612784289236907876898170054023220342237362584311899267369988150945812513054616272813073195025995238624759275655931033448428344578139911901167038418634089931517293270173212273734780504375629835349032512620773157747465832004801653215576814901695344888893817990600772078254997533689433547173176391587770481699941099160200829388337295012345158492820009103811852064448188992442545770054330015906214244513648800035449922623791519623336684253904807174134862848218829693584332110376977566446222436723839968148022301529633844789664604470981898494957321168319205904684917068536518267818249288568279765353447866420415280867107500669171257481211171698328419231031405391745594506693814143390848274093577395875054130097979457356258332121363974489638268728517058678287951012296329956868548268304993506480198225763449816058144547582793147290072732534754709519408918340748469089160803373361290458444192854918278322685701377344796389963619389871657385784392396565469866998857062150433088750538052689238540856252418184599917884689252432701409467281994181714517782280986426877802620485674144700323774211869276895494429910111462791413264511647902657142864514204416959833347124350854651616464755002544879190811943614842806403961372795730035570392461573018638840132902945119098731843035822230954125933877908529912806427145217746719598751783328778147596043794637374899024129721719134085107466817009563486396521526060820203886720898497133534591736423251784763078244513309158258760318056602681315350015242976611722596579983182812357219358999579288590934485336770462532414625181064302884092715930899303611815290046868874801252813045062332733655305003652356435350436101565341097310909725948305442298434528428988965329746862154188000298815202182336796861149187738896840414318971882664036703527709400295536758733484299994053151128230590061059977405747154627095693060838080883474099191776146619828557052006427677921019925304812602181996521601482588573013170503558513498277589344074003464858759601596826013037966713066197521271930896568326609231121053097241065162737113240555078758292452422661185387251047934230298402009270297664397485998465465930434828635591050430660905949790573459065968784892052510728269120297477668538336886986684686120361169167581855462741502219705329525467749632005313101757900711518212493274836397998175008076811488376499025006872875248700821813717882792506313918423330541431062090017201369380841243213564992253004841168633570517293404997287608013402317441388163808023574619254755142902551420497524608569927472840565986580718958532708714667470868291204869213054370340274278579902245737770999441193149928951682078507461817606358186889708125996663191980744402785798058344642283256672317877150542020618161693743058645011281820835159550929412193985263260717708300946379317189441626026747591033034939028516295351953063020173643308314348941175356269292821000542959676964239563727284812602306211121823881708697157559894362757493922609923052848777161845802286101164030237615575294283806615784596027302854042271147973142068530170112326353440840710719077770307794766305773733954926895799091562106935425044258058881182796785070583999884996320846832590140581693154226075122682626544008652511042160294662047511590586925829222960122714023584188877378015261175944379105578066720648446445727981441617830944513712333754579703520154496606545260263603776012021560207193063888242709382628366617971797113852611507681364027327367713561929260891071473061894440876617776372378436376147531371906240201238758244606915561805196666033741039489563853140495192559771817773600341733301937395950884850467655305810527492606174644095653485728017071322385140494170299530308539695338565218004972673772914797147586040226249757498516685217615179211876605986566134401087177662199832076673876329356354505551575901230584033769666293061097865451393056919136722815222678827863289404787243515052424567979347116382507553650230188094180943344695945073846319810758022998050966600786572293054433410031383644302251833550378369109190823430015839790832885025886285668892268247471814603040083016023897266868682489978662123466727389155128173748881261912636058406066123938812814337854873629571295151355807834521466051022948691651724905644128945428056961604024687327650370436062257481881149132350169170103081507166763060188201736476837170358562324197107531891394843919657433590957577679615268309490576879682046383273855065627609132200214449494306300834619776036923318672797370637150890464951022126348526761649317652523079593165810771433937137329414330179717540003054883355618167423132853241928406413192638992112591131652673356920905922276981568557630354019681675387944750022920223467364906639226547532802036001910259080654410756208246687126751146554988934131200243150986957205751145577013337736442137723226356686242191888190550483770428026692854081224231609892019553846937103190131287227269825988042854240176230742911186979058470224945830875323303004473830789534106371298471143651420886062591412345865298152190297246657421873006470326592679301616998188774930816059794590619701967254475547116926392277580813938052578969546998345746604758068625712837073005330628894930050443044710418449967031279180158080448955328764877750874791646225729171127229206275886763896146075231311907176535998232077299169147208480779268111042873101610849972179942040210229154465170904333627700036964079408607392087926665076001781323766080513116691976178473386986460579133850212427717198145823199168366609899033884684495608143559827611788386098876316463124273560514001755804618742598411085288586635273591864901798033119560755592481866865381228525939286458696995765614059290187114132437949642180860186304095009095401762467438486392197794081954623499832383837669329775126456978489539837388773668148749104919714930449658458843054783226205162221664849270599157096487272664356836174033863882596567994564488334891189277661741441282016296356439784851400388289650324564988167949822312970269295245434713235501368636891294569240899129112466114190553400296346925943617940785033328476247073601596662290277588469095058580101838408095722676683245292584887650186952632709014131434027983617739368682637491075853379431562465872347179944009925655999942701096179734827381478654868128325149506761737614867859985435023347842347858272519112414837614035768191781194614944814022329658212027835286215416644431894078726447288659289306219201478192900540018664287878563214362581182378227409178038979570500898536540831805405580292770745215570624848873556376890965277324318126165114988371540673370878755078580359759141585934353224893813551463594457850035809881914883153380224877142608732823728458839634199499507058093874407206277344209073302607628645276210022036402237826868201816014916329277609959735124406302190567030372544503927287602722743843183188920997372967128308361256608715231820559054553345692719321227830547850379817055123882174759747473375151225890766198692821071209592104102030975400548536190060509401576989973415162385267407134889277070337598728028358922511712949903445168868586527909257630208789609163196491450406302471343598853371281652877229193341457350524916646292498081925587450038158434592178547923511037678778004923861561389964220618390485417429709718307028802049881441881977978521061629364332914185559957476781437268692173935895100357460759126436260057401481745821489190050611058242482084909336777648117810703404049740875187669883863403997257009412405227702922003591827471200137508538460718601859777815521340206394508130711734472453607532476481947929748188787737276937267720884461495585040090986901268215611656545249252411571077800938216071785754631967853287677025064014585946300167375281630087072119117581356813829327401832294756320730180486315016110206309185915578806685018606325233464374738548078316411267362378479054391936155487126859262840780993672078698885394396655314850188497315644229137237064492510430435771275219528478072027748321639576878419126312935486793084245299203172866202358808898072707582249612207737784013848293915623007195934940709549449571544644431950598514774439912048765977458528659556859290156259853065690379207878791036879672414560605221065465801951908183326537743661978726153849836436146050823954091922940323802242299352320397336783245751074537694341489684336895154596500980588065296825038322165292370260927226678173979366356668221807839336472500866681459546627485091521011036909943279265562136180902362357144286239915594338620530029062595794165430577467457159684073021731181402642404591002915563863530700286148601120438203768153948476973753043611611693658098026229142018980651763602751756412650950708592196930539873260110574969100676555331229305973483331953266728244504636755438908962745963510545161352849504460645803055197872231560915626242209838760084037413554026682800545974453637573029974400320335862913980300913389691802162566870049074569704399407853699261062712834943336372892030757464086906993495271281298143711474496965591866932123317654232935896338818852903696684415149429736503151244598145007104262324417200609481691826156712791091660036018356306808449793113762243685475526990626281317558075930700403239928720827785601682876464445548118030468993948655290130878715047332199138982252257606844029079455582182476073800148571449327271978466976993665070316788577273556263343212540947703197819112554254892976218011253790140491748144261651622538023375605754034385580960568147842056214978628787774846648916591407303590496639583985677852937830389820719565810728495961177978131772130213986925786317981107745256207772113907640241469964104984642693179638628728423851758337051569683090069016449800691406165266668030461055261727451073139689836603188282149939272993032287867216883075062124693762805239595941522408151131738209442176499231283798137461372799998869645609675089011979954457600989285557380220164474970231235519922656942571107545303146596433532521558674036797423037652612374002643929683831739655263830906363077679337904526630599041543753767168675848001769642076629332332442468801559952732143045308855548522351766644920511172154744892366838650733435887536755019432636977067419516939460360362259799902337875748655728324582378920248613315603132751623703907429828675942497755247489711958061524666685895692967036399948849756365054393609109598393322428391819834298599213617829704400542469896071837498982984299263301143040560226933301580839763953088433391021612006025965807601356199585730243551390960310984351064978036166075433960522306306021721357251151958062709964566030131715935237247820840291745586524891756904868542971509409332031790976565730812855703163553688131172854842665631277443087296485275357817380582327960333627614490215697458915413472832184646011482817469473572012628641849418585674135424316564314840362946981063385190259562793962055691112738864383864213053248378939649011924233219534711391737945111019386433152451825845344926999868603403075005794933720050915176605187630128872319040621944222169283056804381296366513792900220273843879454079029060307489227713047224365806267765930677595595373242207424675411737116822674078393255559907648181208554148244098023446871564192254932664652114895746601960511385962916742111077039488464933931819558516500322096968912843693930764877134102216177382069791948203251176880892211597423985562716290152107650229709062050835462583182355108607143060161510566597552630014715266483790704851288219977821691506381223616604578263597730516550933909124718144046677648628191134687295306083297179912889950143408311996156643687824575524804821895983662246152317978197081954383637721683322139089108066412756388161128796570390983989175893015717045503200145312809107498048442065345640024287530346424452416355361288721383623818753104101269658639072101904597125772421518978449995458521270089407295039548968995038870007596504968933458184988775619875966720787482352919827945784769056360929672900166430877253090811104862205663757689141925563797459509315742526548996942278285812708326097605671812759321494248841722864836941392977876093858234448903345620137905690003916260333073825903348805763926258346670825159299997412074911043238827173699031570753420806020467430014467767765770142839541630025522879758752087574965066838316916761145852291150757232183211791689283245900801121705337439978346089126949033899899465702156971068522893647335062815364723099383776343415542531103943741728339243722816856093373146060828719501442411767299578242446639266347602521777723337883215742384007948560763232491622890978909560059622662563272252937358124526591587364643792316292373148561564554071341185492521164287788315038118590405370558065970189232936190615989144049924271575123188075073392446738011085160540771467409269058799985607981481694609794855156157953415463125235396484290797940053126079345847376670062734688049952111434478628170558280133411145435711857260238439155976367222560487522081816257674085555759571516973371989025672533157020167582798613302673356866721333968601312420002321095991355524679204926407321342466762915140952125711685748789624509937129187267212472630009869646399631210520975532405087946339092646328378033330848486515950903010732481686218748793832652044898284595659251107285042939848066533052195679095388706901005256202231187835337923903093200821230018681014427195068739993629857139240996896805703100461973443891051106894196300549646102303014370172937358923615540764912880228738138962543288496061309850335341984328849785522845164059122949651128491574417639394382488698714160646883517110189500671383957405304399952533244535931966792198974780614743893986816177119209562857219751564717932595438017666846593401554674292892043492842502343375696752205198842851110989524282148376126234109009546415680796973719671786898149139513876394863096766219472214154387461190263897793851757220827442141817493089889565997156567866293713898622398704570035887160025411872576979674520562288580867907305876552559368772664530770867086419672791916255577169097224738672014938618313276629756418619221828694968500332892232289255445517104901043571355956008665877961065350331104186060588647631248688746396390923386236053789648005708929811544755115438588677118390040773236433760588611271885306402440320858700049043483131211685511593237862927308581702845067083720865752018047691631837951735732974742471045872169808881435121822841031653945538398055053139057547555535214067606157822811240752420945924286206768090059752946908172599082209674978244373935501372907037331104318031778127425511130397849041811936679951540683489188987922175861433851174703940413302251637943101038611209672106466282858343388476591652597026914211891038266907930992155026414915466265225914327816832612737397515992530001200984504173123189595588443162829758957892888983377532930132561403258935635308053109302708358214499345738652785658090997782951117672211505220848473609277208211710249019770183050114054583039096025597855788706792081707074820261513644348811372101473911235029591899858634509623034480323910458730491162015325081320331649980261832650836713870345725418243400480067357034739746745390455438435457780136319773283007905132920654045120828884119223590276192492779375888857725389012920839813216778364296644963109620610609332058934682844999754236776316192728675446262095823526041819795842728540993443042320177888602908309834231841913015605441528290561746690808479483360755586274023670043633110562880317615428996856757130332640178848892322199428802544189663306798668664510529787058364148173440330311516841074523875344720799852987305496015165742597616380067568073203382822822203868149045132861817962912515142992544637342879511430521875004026872426604512367972662200816544197378226843066990963065215396811323709532441120300863425701508839148484794599594835478076755900435406078391323600002213470948527985495384282389789720740519749072243068516091131871125288801812352883934616715518769859397265007707570876035777270305815902217626679302232357235251849306911549060284669152256189988420870793395415282317835157726186661512560790097354368472178825992620247475592238034664756761187657106262145222834409215645442879390052187409454125865161065205501456750825665450234459774326898901020941428921161065091855687068374579825791056457534273789644515823644083852187914876676345584084300958583233770201930451587563265041968447868722519395296070748242075545348113031793447990006755555610900637388277248283134507902294558964797091121019118276875674946898431583398848131044925283179731199145219026217065724979036880054562430911677788006325189930919808363735689721549670225107371944165070969447317023278534617529006767886327288872076887203304025475603859908435373214228707931485206739663403909520043810168835895805046808432557787131112700324999358825680322372303592842968869343511171525589268570575604581831787152964290379336364640111179725923465963023396156294026304023559361128835881501081879217854208467726339091198546257802923377967381045924957158716163715529375935522979474260958848218284029769265128009220894643378750919994019579747757039465860678382192526584624880652703461347446180726141806415076690620560876628917943079290343662354578831805005250716873770890916723680599775484856371116875454696894974896482993365286705132074799903613727159732046685690803553703859277400835571160045646432400464552382405090001420339378422668127413444318965807826516615386806971984837615111802167229223019465422212078893457831322679402273228551272500975890001683113467989940594703514917867697435249813689436114429994745931708177052903490235882410928457623276096386045196177104344136469595533403117303120319539008005141101793634940326714152301075020255309803488668308222165848356880380932190184386370850965120896964912812124542000894406142581331400026936650717364323279273950099803255509024027291770472871790071401413991881102056994267536004883640045150467484471806495211899947769417373487956987260937996624097577521549692068014768887427841931503536874873986247517455221522336089180067640241862742266973159086167846823543588907268138675904717566347817996509567124859994529492910151376671380432832382906663509287511276509673819687469865699235150478590098158481424659807472406541770234190818688955056090178479859733007658922238691330550442775077455803418210651197932945862513608573783562963848764479695875489319464784162233017757546604135891344150773878760843668775886643783522140522825558360159060508010031984275334322352747524214684826715862687607243636174351201856718344174193363624529747393457150761597764869444934614828734633759697604509458550802254115943943615406232410514840590394717147704140813996903023241667466353826369563099696305217721651056538594358857830444272422280958014406459643806951920625021492220923700229262809130651653210679572846107540928515735152237079338031088487518455818867081280026773801805542085469510437931710651032558339825558648691172774038883814981928571400393701870339288997068003835813202942157878929685661531282881787623583138251488617709054459321796242782976196892751805121831930477206685827700754223753856382545972020506022918879269338909484578960259793508150101140638392477050748692322202027076287005268829669286935355704385977894057036784963148539856144829115299455904036413551442079104810177972459835954594628888699830809378363845085010463830028376638053048320856004920607124466167882547290295750101871137545117599066402958191170514411833166405001454566010212939174379924077353025835970835220915198751058206789877509611356534919468445808085653961493452635273354850060463309053223789390112689733667197556888343388306235490512250656156768011583870113359293847945920071024529623145541987432485314622582283212235441338321335462200549277000022923219348494166243553754865935434390188483033421835259356914089124850425791183437780432280686850150815740045891257030508841635929073055051627880427010510922772478187394455275104668874163966368927003554825629478265637591604233650117910029253676024776873028060344583651189395812867087059091846194890642672039908074258344245143978113326346864578641780143526679331462296642991176794370069889189727007571127657770516959895764841760855730284279150370821900727723387424809833656418895819065330372227821741119541748840102926863137430558979228969274270809502746312344045266484781960700186388928276599101542342428449305704575016552490411951507415259500396112499432136674493087029296932790838735505159735076112546773599145780290184159981672183639953958837839155143447080019419601920094026093083832545981282249897431808314521854531262465889650771699282513741438101221326750628628356941821404516669372267987053267659231943338198254524498496486401352458043530456422170045494231094042794618565559103559096353525323841477417140711620444068558380450972452619944346075429333778605767078314253494885552563687880463861285717381337305738493025894019324159253092908257105893122738315624089288444386316171201075683279110315807030197006453733348151426708821021448315883342488715242736870585009716081172882537665356855837682272362190246699204689781123925223429067069975590329415235104711732722389106412636693230296139035867471114686770249671388065158619789948110896912681618283237866165314259062705419355893767623247409328768405166331201819031655517060635908574313680405857451748165783412963201189712719610271463253811008307231164331030157163266192599208426814553447473728289884400816844964640077891133778411835590340798856628313889369447224328358677397163484806166153140940068152415935732590326063748829194911383353042526752469135164414636022264055376861547443435147864484498042030645067836291908839700980623535643284951624549342596087820208595018437064910769149191347074087921267700970322867278462897989435584696618397043383913388275896254387995118780905920676887180236799735294500519266353317853532131441973631725218159748835625240623640419835598034378297765272881150020048307429603509348361550230486942840579801531555982214401781725692366742649948393712547968668229362596784131866726773550531943361957114635331689572312845792781162523416107535053922933699304608527779592562526008989630357595924392539160958651059452393600184990927350824480365975769041545894743353052978652338068820138889122456223775855058709525480118674161295555155418747688508906974582246393720496139026233590918350073702368842331446087607887864851911930503971029323062156156397317097989687323131076009218117026490193853471294295031846908788438893700599796108203802010632948099345033857095557703623920090086518015103017355416625872238445673654194688891456212867909871609328472472952392953504896407750421078228315723316488831151343210655348062405153791626142273762445022878954710918799799924707692710714110559466325739814847527494082399020230261286642766309846654969608530749796022859283232587453549075438275430931662937823277169711258610486255748339552384083060789389780928536447890112624228058561850341376480704889410072337331129871447282368242127003522177637811657477264636553871649544450545055535654422920409748022606658583115205932924229900455641948595181183241817272770805289620242364402002880646313388219349127203861591553910701574962004856106720457602916304674323623773178415159600896958153020856695909974506649342938720523683929626501352861922803743498310845889624156516941658429343857961771212742619663648963720270731563046232547100836654857654275200583928816722064947858728427696903264936395154482775851684258490366275276715493486657665617905644010978687826981872297852645380044864486150474406159969027998707967246680325417274310759685380133753531014500376199916072148081943714654213171207931006926931239264275046256372406568167352212712645927847028391856780882769719988255792310350235332371793351857773710952877491184043765071977418044846594356890127578103665171993918801639108725705805350639790858260245804360342269959699431051208755403800197091027247086607763512290599406793056038654797330653418763028315178468609154796793100649723963241991617581511487401111980393860897020575410201324774718960961118412849202898800821516153947453360491679703991787642962704506156180185445177505278342607910092044018331741994244954479356617037679244360920262780377835769626947312659843811107476618798996147592810223889347505849987319274486843197304420051270593985781944757738972484078870139245185155473928199569611687372953472015355162709441068812017293440807324381986611661585763488625235331500619172147176824024519110123267295243812933960461997987668929136793172553852802758398561352524664623356972008832656845735867941631746968934313702923961252389516962592325049196137300466099900819298251433776874792765783255708022557578866213142032817551766612542483612534524873329538492917786254721936087497350066077818025177424631768289280804024914147097319513930837103652798770109566655842089920229820184690512595798978934323321700178984595471484616127500652575475144269435786888141382691204508799998418800953003471533173597575791477421647883564359900488612733417472339384226709696139084369144017213302249687047201589067299105673075802023975525804883659112537659651055202442660436816857296999077834084383359795472729828179236032440931167164319086751295544196865386920721561803656600021002765674677533616795877794175112469849763499969197113731708661054352596604978711190675278527031779621161596419373438882519046364739012880120840687302171980934276803840906101917997405424735986266383944606284860375864557785854380534360623213622786423278421722785634656996261173374649792341875238367207042493623088229742652270653489563364344039998809472752705890284979652772696645167499311216243089442896756732422275195893408220049732722340112086627021739311345510770413858356158205491090523356929081660005887177305230248151798227533771651406442647504887507387409329888498407577553892894410218524640909867169550875023774588312523892093166581835086693205946853458987866690510659041030328542514249152431762687770849081200322095803783317774082735205400344445747680388012748069085748937199666432533293970772101400197626096092468396728671400053754470074476092917709273880562743809818518929927826485424212094095892795124732312107857720394722065021625103956749347097564368066221773968568748712957330912083229381568676178662125427913860582391681525348231168618100848160862729306482069699991577800106694093463417928231947493765612687733551460680547929999377185885692145071363180876352974755093004590921086004069663598890232253712535596593722136597382634293246621745103032957970147476377174425351381202812019885545934988904898717897054458905898355054504777201303652225531727189070162495073503995443181246451695734115846146112643942586633657454612175649016673260715614660655802978916557617583592995603036670079209654007256106153572830639739965362174610451875527094701645438881856742850402339335963809535162102793728914150273408444070099127173800940318750285468239358420611893439964417374034704016688502008680813287951712996957113223999107175716952804962971624967327319501439951217924073799134361508682444751033347878163089123962314102138737738741157994190050352947131246201241707903680128156066367835261030091149885811293548564585868325979664435303418889486902243697213793921303586545421891569656960800202731297114474268998569931492385886093393531493275006403466196733096141607559047823070751210995526872267462201845378105182853146497481387873109064695065269267731748397729456475061460421567390819934897688974075368555766519577423952109828513322437521185819160207761135546365379638997181666747581976895731260373116702027222375047616208086596701942172578127636392094137851328410324496559867233950683931175905228483988073611741487574962109220781108565347923081627101896240928973838860630007340950810109587378651982330510211248069843138045385729214883570040852011730673756591249154842996665082103759268629012174609235987238753118656999011566742629924410966913913844835057009205667136119851262976486286215004418829348480134858186079796051275483718753600937935673264450882930297894915050984321805393523428035396392796106851990691477103519195199510621676496285899740423166057412332490387931534706456266144612276608334663903781111835639954159079335790686842132266746234489149913195105557239052977190459052699217004808672410639088413236244523762204226561439711537441111349054782824922115127568621636073007372521056619884074493603138208010625800709456475365521797640468278855231489680364482999509122736827041339915354761901047161364372046396748939603878704132454236662111691642764247056751347041171021811011679786137715007681139317969100466133139779084400654876603720071954519167236102026592310947854449273673664802336878264123814596696464755132138502163157931461001339545890089141732226626798122107299137425925080063976206919399168151970485073943692009072873712378606754445852770461474423002081707430715290311523990986795794646818129944689958401213381610000027864114627786676528648466177479851815960090711794555240215265349800908207082089265739495031860696908768768481807235140844928284298014126908721345147632887965687317028717452344504512466831228961376331510227205304138381269584641556048198967556945358676629687505878780445609910855473438590994086275562113335682698068229809068088837923467182747038756794064566336234963263832760635908038013107992069936219425584635796398440022511935063094353691870407798293759909375298946911919553726588406134560922636407314244961645751739816994843883776058654448278854089841038391040019500935209032143823281808770331427357956991605006013432326821432897333813498559612945991461764958045940819256169821106249023498556290602775278178791504524937430805184985422586989094484949493776804118575722661932055187212209409178209236494340714229782192130634993886992500819306591038631289518390461873832489218081763293321576744044715531985193327000655960199029281676665565172679767181382934204219330255581654753078541951337746002222070648269584761555224448719334748363654678940369057693777282690673112624260773004913915312569370581608716719463818312287963007993802462115683230109727295524078362915938372184087320789766961152467209226865352061103256957594008459935870142763220970069023729991807754684102696409041363264959275216952036136632608659898537330331894885695841718124817461882423201357078934840652175205836619420047349060682869382922100958783709459767509334500218886822169090802022828773436492897924768311330516825564864248756477623864125166074387254360206986177301147776543653820072529089320057640883838161826879410549453974516322994781662906132645551493418510945623314120608371253924383135288063726704425084317747877525169860825652600583828749686986454876710379996455688396567994270617609142146783823336494065695635925182015921894297399899516012210650266696329761931204445741235294730652175001395368128246835384377877981605205302567185745078335695462931240671984796678733322048989106934560649408632034312649844269015114719831871806872162302455938396454609890922100466971908477148456215220886237324412622181255397833567852127003245086124479055013632629356317404737967012594876394378855200689233073961688846350000738617394481480164985995571719381054926261679889179681520547828703952977248975655579126036155647106401890643532654142342132764401243441345344462200145922184242023464158411315850649941982938653628975604096640542575681284873776989733713352704608652199744560906255229146801005210695241523975210889066168435376125851657096733481705830239140418506429888252977601232294080277161978790703048265579334093232144234516121403735458601127918809852875178176181800078385070457513762809591188370756952145292178872337257157845111519814115794838650350975844670848776279241004087612854064281767613802649506406654422374453365933289755709732250760245100991895823439342469000350370363849092034291767541473191082278612277277595719543776153886694253244325703024723399611536963458840378524320112257982869180183846480332160524265552572706009676178670426772141150614868478222633065169049627819747405397998790376663130519431398547872579466076839389220231903168389538918101998305210568780088423449089293156582075389727854776127390528760151388519573921052669031634189683676439691488692823189071558982128863029268780342607778817845410330017844734771768828683486413154897761848143352137944033608296282683390885829658831855332757074981441004067337201360039433537162933476619825734919353511670849848199594912120467885068636882882881484707388820814678991753850291753714809420293103270076316451782917863224043762507725854355046150818857178862601465387045705187706506854600657778383642921116579485427588636948477829089520922461720409291985133786636929501986958083180676640515203588416001434252324984587868519903338843764268236387060755135606509924980098505026403345988959785337367382178590032268234891716052081009693058172985508771842764624932629886376680328223712994708229854640705196172194579454784282113485174313635757873149845525313477018360642214403428070610376764973599324234568163411972722942081599797922625625633295275853670308567262270097197203856012415085791630550492940692523225149944256028448401160114533098826151625200648944407162276090596554737077034934415507488744812936872163705240466994015535231654720419941731605481378652762779227407431865803807409061602382897098404986748618063711843422697433782116166183617051696148430977552742437833132922611608537063715224460045730242915054420434216655912956885915674617862638714692371327101589948025554705782376544600056723511479811628334149920876023563850060733112426488442117389572540735320879258130644940725844073122269057094907526142395572800996983525032351678978083875897588209753485895438588959365293730427435190281267876658894646024326893440812326876496266895881480805040827476549966377169940260424406918800472019356606030567820907235494948227477629213281187864278859598163186102587304299755878548009242710244226866155546151750272575085324070049500536778047969824894261537869527765889118260765539354887639238779529883367549317194217666948815219835884500937312763175497841652218262135499587507269603645540748050582166080517163840568737669994430328633600933453527422600748705995931734619922577354006806125702847460409550381142567092175412168876724159522456033726144274834651319565173695516428867444242088729987952930023575817793906515836271298733637162846909578936005514328643873538668960910497217137687948290035103545695822150508845515448105513547224789678888651338200438169857737990835284713319469221075029757213551483789217365207208865269911722115350002792451852483820371157471376696389644492513119009443833104644009339153630661779352653114406315722731844206718975293582321196924132109720746224392562052033442133886590062170350955703040619749274197111784672201276405351571638415633846338403290493642342866663110537561307082968053440506038943211741358788464943766790610005663012734175663589153798728385671008476757711156766385335733467806170426545976414262439120055221467103027727858051291799294944968364225703326262175028332605526665606573503390331777016149242326383596362395556215765216624045637448931644122800285777385114491305022886253122904952081878150878164001608516493991033932550827283412521350475765049609149974234508013595440515587975981568317070498470552967070254426580768231293645236129597487519591337254458698990549614219398279514953034801400768883255653540562182646735989104694625415331618129673081172962997844487712820928566452484704359812630687181299257299532744215016954746481069497559886953966042419035397303121043036678915452584258123971157450795695386486202006477963901429959989289278174120564694634250779395540298900820001675800627798737501155119833828533060818075738727192048000469690588104394575398167885161189158148245556422590752274040004140364227594968515453568912152637363646213874402272806244214966073127024535077534266679357049306502901245790118656687286189942765796317284557339645549782339639594967247745990152099544109051450757629690036319724777090519898684360370632570855687634650669704694857208136252683206959706823171759318789194017818392414524264559608355962823710982067788125338988059541648413007984447245939096940449839569351368200048230394870972600097734838547138397448778914928672378201393351113187666162940879698550925897090932332500846723692903699285779013683496665072404092460910166171375284739424769889042989575801704977109583627393171498949046623547666000037871416621970523160776664573129926105424278531181919863604612242164767245639706424159646205532104035442097041527512130127729578019700421183983732972442105972048101572510392366194014579189437503569146765242525924531971912446122661671375425041182005965947601473099053017335284507075180627194877491955704905560967713865496610956772647436199321955447531196106978755867923372358862382183067655078591822221812791752165144519688774683482231045872032352851777494318501527471773762898202021171267589587281413188814507667202884984311444000755766419513627401568341237840978359029210812361470813413698464696897598037722451883065017324725985585827511675586329376467908121224881162461128105832703150392342935226548993747877596865879819409014980336052265511653025590459906151128063156281719452511422063336610837982236098869630530379258958882865117819708707897154006442783414735229043317110886250993837747486586380955074383251637731762278781700878702730711102996141423832826972276902185045570653021408182988267153679555758734025721333354291008760951287378184025709562250967439273580653334225938089204244403450498997522175951823062720484288946456119833826894964038116623627870407530749765467485100960568595412355993710416698671699076940898608064526890271779702480376223614648349145646471088967375335843262966480689548273954970777671885615867928592885578071656326568016080070440919169575948667896019356438162459612060075350065431027962532075970021886031300879368459423981613121579266066370645488989097749729743491629623160031972645194230540346565320139992924874100380382676234447615934086647990661112211800428120393758191171604816948181930472840815574253042107365855324148042509385166508349384889940116973706044960713720354739769219725377469649525340465275098335809384655590881393548382710474260634206870711574213714952044325996216777402571182832616480145027740597689982621823545191592725551389591101624560228739789546576276663912495676012296525833582980745604265641124168191388074415356463741073976624011812810039481487218673142073953250914611818496174766695075724729833208726236502958707189121802813694049200763314283446296670858451044973625630520497590029117046947970265347010509890156869091159254052170342711397585991534515867155502614884028172002706757172253465881215217252234540038873114406796918522157438009631261019142582668126132890139514501246765109020919372052724468467876604419749704732851907253851163983135146052097245946432955371227363812750320988302792815456194990497493955957503474207190821211492074331121909579375115128832283360582255985436196783901864262439164939225312162930970982155244317138998948482289784436898394303716761824163965028907921160785389914461852193431567911780312965181535651963697605253516424930036518531123750659267957001618467683451080211510157693039827574564072732223610089968339391311137268945138306494490979640816540693411786124519642028914485975966211583810169526969499843455181781590444738978529579349642361747133182159963540112792168374280797924855824009693087652596014593570369450592055535464791091848285804622895518539355260426721823377204974983279837060278501300933269680880210716469294065546938096914475416876661838632507039325549082158041799612302203672136912366089347408880452662100383702821033918407537191363856271068373440964980492987974213254444023498426041424945737332331316226581028489069537602192397702375602750205309301441624086920031578111650592096878098801368889467215087205304906706889531727888282773778578909932163567247772227409930519487164349348618395508964375822279105528561917509761088290000554435364717853390731275672997325663615332051416574207361978707049056516093371983136600442600967007857765230457421755814733195877013310135055880684774965905392961320915333941578010148231403522263609400519225913406135827961846637236319607031508689826572566894224426017412835367202349648753121516344248498996419135746021192120403278043524614998602382739302757790245777527189974286473496809031742940585745273282164313823232256701559252121613067740849703587257482025973833571355327402369290153645674551186046526558881267380136396868497124785189087729012261548920461879260091944386410770455591003362603901498435166869261117426957427731303201203443262113593154885178366732418706200316081328108903049317150985045426768669996648434577783886876223692343643847673608626486908078758414565684370628052764390756834467265983589225924206879769613191701270879021692013395362685638145695504857114920488107956765988009613090722702434669784955293311423540430431743967277701105841679363991965949668907008158105841246489649918452419773264030006242552676191803596264722445563285700801809577026745324178328829796764706154995800765502432778059125888293631274889840859146786645291465301411867013023600026700865560932099046689144105054151971002211218040106477770517726915234604943860896584946771518213299641974555345716642808584977950948715505272754024842852163277290151418219630421413209474136921471783277773606170150719445142520083640439683507203390434181289022151893380173468144067561931086264086791354607746421870093589828834412897623353455857819967962621744435355776945184080040838698593949393932540779188660968040865254127875928642190115687542698835683146943134700189706982359910380999414151034588092496129837203536463331827230866587728399896681007822392966789169074732314282815454074787519605584976538888772862882177753957867636705467028743477049254768701546483980098812307081440658512064681875097582304095079653303160514718747346547517967396722679969176988131203376154783964354931171489413769805655094622386941225120149484632820811881749580271619565950084322978903336586514007998517863298002223750422384680810430687201896102510204281828067975675262110802812699173080457247634693451998516930493181564864565950742105527687253463362457229717310904413210861454284332588223821402595760845840525396527146596769513308537615678809250099743953376808307985566689711130708177417894781619331650596813673187912393517067454365342811493938675929658832518258796444170925902810843721152074194963332721888801304083610644838520739701889318685387507346247269297576601472950430614589534911550252565651000296472595702203538648506044550033595015879324707345577399758082206549918287453566812143116550714739441662060645799578567868060708219553584112028477441109850192208832470019904335001487879881526984370758934351125218035230876465269554849034464028695477027831689904884802847838332332360786231661246470967462096124097932628728974801746821878749786301826421511313723698290001946200138567038001978754759565309702954146949860309008486093559224937117354881462269701396059374091337853639554690574342936700309634750511439795065230572309066591434199189031419135130522844376314495766348641949818908009515517264837969690038849214495411014520826465540781713154582188133141911597708012753211547576163411707826882414767159184101379220941404678258428059653365556913327238242135283288070444256859107703411013799729594593591534185990305649106683891289152958346298596006546842458228117124181102281450286039303196347168736266639021115086353014502989934460577318607105238474216742040727347633689637352721334757899857296366259055244251273094123390125088947571288420766785682763797198969785817897824649171245014021863114016239035258307964802108814644076411589741329830006670936604293715719162852220946976698638720638172129366341654855333213599051891476731605607420541135182413536814136412340922579312697590039536143668431063022017913585721916584225982937696051927426370874958209483396265880908401648508499476283240052242723388163401213889269892085656201702863733168874918390497816834648180602176818966860608402822433507628222268840394194441784745725132813155424460811598961382971590942387231097435454992858318904443907999340533849460117879587032020735437366954946837186218473540531552467159685129906561115215982194382593319670659096935722712973938696624262736113144226714992119264139544688122041123236494169913581121468272242242862376934968274706812912966736005954376924778644827821371035592799298212355785058117577189592411487378281486772345408938565249757908296971916461622996864961560552980488012527983806733533360318289978520164108740849178123661202969154983431384775622736511861699151126830791111467239268456547094394794322395944303498367120564053312689003736014864381551417927874086866221333721647541007994004064356543238365374477887992197547483750528764450177987879626485382477144459932102043785555316550785687337378560473708695170561088671901833145165759627683378058245123957274516940537766254924699072410260714450056230019353393131396167751472636315254266760689378842383777609051045436300518965287459895818536251937228729719696259827817743825122499406473535031630021759642133479916332081018513159100073537043659303017164013770600274026245016865712557689831449522568505620695582709164491663508718831485209667302189265541420284214243284018194411006643027288348991483244623502714339789620040329952806458745805892534849209433762719141592116279428202186736942329954771195389066665082319924463425875271249799888395562915314943482613232648365578983201541256440419888009692076960758353908800984544168174387685631906045801509023972517706305297971416646307657857155332257747062847623293551724703932425794463355794652622758853164448183180351380358487737976480695508039045228555724077347744904489640028387162633054399607759682759689262011613352440288357035503693208264320285745706821879194061236414052353756114479254787701831723457789150500819011782306367067163285547969956438555821942350260216547334289664826216287035782641887225032202848872125918140208713424584175905837164761572139822661070249088337689156681441901207216569100045321993024806473068854468236563846730023320068477619251736456102968033973249932899927826419628837048883749724637593665065134343685208919621047938569244907472187116407876591591111659612988292993282835516789323697458622916098689256136370283711458343899206201137239120295863173897709019197015285934033518165212565581287248303907314736154884254579886186854795492085087443251882649323078094294449080925982299511747593264251930826434804455687280840441395752165809245954727788315466595346360364993713796194589724424238805966605548094967354129503613149852575506512033245767622326089243460185263441717875407978792196248374168425389822064975081101219176954267407268385904588017036009473028850842963362214113112270464601779837901956452255065587558780682008678915674021330510123752665296862769148042199464491408921604046584318614514141071764914446428037123917932635261876613525447150160316496949297906263453050202783100050230672295131231905788265593634926253076348368309348184644172481317780989660123526110806369648515340269907387676908727464458856128331326215688280295720837316939460781234802477479267433888025572023525035061161209022512387666122841657450239305936952037815828212494318800012095580793151078703936278894969863248674093104086936769981547360759733369852085909336633592052378163249052020667417072693703650786293164434214423493006728145553620985092922936889621256460911540965306558721937452826227483379392054076474761690683552600876999599794601905015927338087685222277978452724054740014196468255545312888950611465938400182418002606784988917777337831181295924128909335147789550113948900878404345058602291313747373500334659510046594269704441432358638241377479417987261926867519449311551456465613586813429956129066552084354634975058668615983573303817630786586415876846219244135074961801199975009800201809111925529296327161428505763129922449492464353048412271955116722624524458596130426034972417332889511602953217288986450863229773356048544751227189427035392202241262360072635392350871922434198404939776223216762939275023401438729603369585461131786869816940506512294685338058485700953666851200518676893362235798784722592543321554240907334775585994594498264008041099216256877896204599971716589201518494314744582318798844852657802495453722444916873475512493558172844727710088529381018318189861207544105824383807802609467710414051702159735640048561788068552441412021415452936217606371094480583037091578676144668415889971342799206543217432717825788052031105339020550454823656015475015325230577752034107369577928130991962397645942762927741727837097496429518398825957779143276725509358079595630698955733903120764508265526427011549687214170193036567006645349894016033071799570898172208201987573229879120080832912338925806293623256169498160773655316952784373996751413258528096036647871826234081235916852252890384633692261957966069638564677697957188464028523536736131914556983406733224804137829501116813946800712170222856512724676042190388154274830593220731089198712965795295157242062150396570044556112573820511933407741267096246135918728122389493766750452960794214743755732793686423832170990831436314739877022969453337910021342620108279652880815955796222904831888033269804457626088417788909350011322251254820145983530905173383973607156978550407802773100617127601858897047696533058019762610965843628052207538526158897524681995187596172215687382327757268475326892142681168580782328011933798142436563956216182475172469256408617321203065179765689641405207296268037828038387019067929854920587379077743362790448025373133735186197658193150852898752809495237900209620358389368662141476242790224397620936857570775001982732789560700555216712423789659414272494589163878168288803091828827500950353634273768607471758496942896260853403540310942211654925513955939608997452530451861308549428744624039785913753414414721712507842084972753445240259713486142587030920825464113356678888164440589468404918728207549698565788625816987241078322558221588994921040495299694636684492480446758700312754799529924311095400074141320109715844345573874791050996454162419904505988788893120795804095615161105700450387679766806534059743498305989487192994259368182183113654163360173735686500696697807747231080078093467938561581541499054129032053425499562910025535673336048867847110961691937950983251011380477771581305329763866866782497967329154674937524121457030458534179295252295956535809096471751059047624280079772092926270013567539821558340182482302382470241413033006408031737261992684376515891903109058777969258220091632132056782517590754355318629038435048500988564465661196903355477975771252485465112656051652832886003478175016915825132458078320457356158732599462462202481698608431831492249624260473473465310860995497079605616214294921452664628313908445943801992902984339574710748438339682207073412887556000152155119705952669404490845936563098298754689371117160528161888781479034270290424953237211540109477248855675383386187187469371392003141519445743864120696972752909528938320806179003326804603527650636501041214371955910378042768722152528384674381727685811078017551099990683259185687088473490781692384510074517562067329786774089972333545671886469143385227982195664371276946094431370324252165578763962387879584578417719914130312586041892112203319302035304301112325499249037723830813589424298286988981450089256310297818881443575580124548863470718463840729289173728468460427254633146518706078105335221488893583808871290963100303796068092663284438398463801474888790002583733530313143057933827104637053775003737097941157795425259481167924647792857621836349522434625151683018405082176582630211237621953796872254619540055152237201180863205218220557544166326327595733404167679399360507429707644190455283375925219899679274284649614662175369832380794894083957756590429535296957193752153592088681316804415055040828929385990857550636021472473577938063862144107515909913125821085872075263690700548144295650394890583816363182245599546365858933706553943403219457058373381617933272786312945325347659141568406962233807298991128564329404063971937616166745152901235584829540587697703989859835067980886914109536986744783939269317765499406720209199366526131989806559752472293363409011271435638062270328190938871005667138026517228509045020156597194812081641735261792934892704662333893143805464895970804461705480856382113928390845682301813244959839610251111353869802303326670098743038342010989285833308325219707367225800476595959652052502875055942784163537148255790022228016683525891167425908123910345690314492441026066400973681948531249479569553588732116367229915476339209466123185291302003165492324932158664892302571830155586444878365300187070193526492618136432242065826410885549118081585117807970877944341807377932012441056635522160674441082361791221142424555715970189742506623689453840605371440425979987447230273734394722392992324496208378158750541501236747485737641045232683329170911328599852599993167645427852941346477961172953364506732230507035079665591809111400753719627288181992449015845799096142865393710790990824368071449260862634590443185517642984058448956901797455858168667840853842575459844660895434414641113258208055415060854575847811506881777866324566205740265557576801818723725702969636779547598883567277509313772688949481305744027165288698512959093808967049867944382317688852785081177314890095300114269647032729160463976386628678973736545729680515788138111346104663308896125751745933759918625276263937416940754759762835699979010031933892076428455435873913574432819338983580667754587530406280858270119458653853356229090702742691123393656283669084876842947664670647120082504586656773385537102032436079687030774554568670339538071186988018906677507017535113172819061212056119476236499901855188180176419522221998783516071448833583921358547796170182302581238210289557529667593394275571160893125418389974961719857185023352073210239966064091160835705328900527246681589773059168863402772543459904422669660989729268010479001692196192139722928099784321124462341148919798962691399088670755708875259188658978776952116665074192416163049810909549460399250960458406939184392709223271791307203207268872940350256840279565512707706519603873724008510989893670408381620177326806248016250267711689539151677131976184258543238590696321860044542563519453200120665418762212054754313889535661587494600724163081816755733908109481892678385778289107484635453292648654216175841446213936677156590860578089263993812912318743141705674243741094474672198201857045673526018993598382285190142856107147676933193032137194536227463951562723394436038197403652329369482312540879896232214364754887954214129654077795249378143147557617552096223914190104358242705115639153298117087956413673623186265637985473381397514102737639725782531372663427624330206627343499487717760514290078531849526180155428771261634571490950087328102403288293376808682275492720220959230011839341220391176979122701126143861454646287698684653314256493570964933599165427933952796833135848882220477679089357653125169600288931120572486918004314218406138117512093716978843234672010570026947535923766577890903130044410316546034813646857335321140533607355458559107619016818437356849903209519776133733098524031158017778192763116764050670736576694657645499044631564026038697800728356203508759225674705898254166689361635605862705831313118135749163825258734089220271066397122369724203809409989238371690579602663676170914610836539453437945764536286696479065416329030625010490134541235213658801502946244494029830145592457568074240653940171873243098147525964913504777576385404083605859128667157156559710832972392295345994443870468584498587437346437371825318737931223243413990034032952239182292288370652572611556148667742313031374563398729143301663220916130603874200586934686692575126989655501909813154469837010231006544434501855442225085740274559207408194229859553864628286603486697622650317517468600332222870113174862578662378341825868973254552120958854389319150418040071140918170105852896069915908771248571694434085392088066657945907536657214571128557321571112697552409829259541870292168918007445339715641299933420442140531194171053372117122049725369273287774669297036647660200023987842403432766061777286449816595451566854385039156740656284496696949993236915384828196898047151571991739293704855296995219941093277994662212105552475492302500587071870613403873596828138918554511359243036852749696079132227729578773867255372689558944006526227006802747462630402218664682091853020111152390639042396918001964695399482510195984232215375950076957613552565498426452516760338563414256972384535364522180471719167675666362647444371218381991077845807593323720932591088357033268886126946054739231794602817992096017868180157340898646074556409489731278393034014866108335292745854981008727918239053093482182636066062420025241479903105772822562404169090569848133447374458269890516123873194214863624409002085043564211634914539499295070341290538723446365231072332103599606722130011517481921939475059255193312232577793557738217112764254192416153114347701041460058168753158148496188940441428285619672547603234190550823490473324364297883794965092796100143941987325580795684602282820924240044968562940571183304434672394887563476593970907802640272385825839384275454920406257345482536922653529910999174496697854421764002908747408838644405491872174720347466828197599295310669477519631126884033830171682570807995094651878974437599415615151912006918339762954954965778548616260072663708262193372212549802812935307425149365985488051142222900737858260439814940684470584020386656604591396748245810158833767421005053529486287714539605719838484490880614148868495357116221298083727533373537751873231563944042591083577252913484985259843511968919031576816974188801128857906828454842575113266252073063993794579706150244743071763668656142754413052180125831831224195636761743459871021751057633490084357771331904900519199843455286979682705054084234155406633483213104809729353114402022903886593886299585558508046711561358200430338444018164383806940726906812714663394129268463279939444603707288870855288054347534082263051566292718061070976298923474402725039210394405680074152318739278284830677434418196528065811859062617016538011686186164859442004807232144366371029290344805638488044599971221429885099132935443390554020025308107240901838651787407161868787678598776849838511787896174641980682998408864428101203316527195145066510846230739543802680645670191848379549997440299494718430988723594675071199978809224576359243320033679862401518503720917475591475591713131852324499004750096685665032184984602268428693685537982708477487572308907241397227036470688165224863653259550642272464489708952091729387851979401893877962343526836618028414548005425633092768382361881164650442028142671366518389970176170370095411691976854318510293196664717856693954130599256418206140718512537759813746344578492253006489356079960061831869907455751204094907646926276707595853030038311726012703941055445451866405560963250893598997324898212123992250092134155942172444999414458838318807255007442483798641399712432264896714927611568608598418858064334804841991355306678353197753132687107631304399057804672604427611567651379113091498241043270737783808789711605257704250286197686566619307366359067057795528509889851924956735825372164538411549464972328590340826455478697873606408021958538153789873726195019207498496438724425579955570999968514274832359653156995393362899610397504910969676590421141353187680603019483065027820674741848385350156199905254347967039728009460834603694617495757550669793683412258974953741105971088054913357556583875525702626885220832131677362281744418885216036655269019713147497855515039421958490170997629478966584508968821408334292500984320289812726652078310401768103787661395953828962395584984725996536466354445568975854259478931995238144258308893663934421342053498134083116806274008061930648740049780902707233340614358097925627078645864435631536153898412724270452870212081002116704630695909418880007046845203572392957317497970006016652855254702218604413855977387011213945216811672727774146278366143311237980586061290386755874826326829052147476804017976444237202770642749039354293376068930199778076591827097040066082012641136584665347591546460171130701276541842725559087605313414601021504068090940694294801507825421104376677433770081527936090893199451006500161881041701622822424077220225394726578452615193558015351490487316898250831214056880245404805679210159433749821754543591978741950831963691775556298793924510974171014241205670061518220311057895557369962436556261102196908314979382222684583973009243688807080057379318994722658547347094519435587270786822274855368070835430358382476863064940856574935388019041972513476448476943811779314897584568889179011371445397704476781464747156587193302238534859106604032023451696152442836036437539447017814806584372165184979140876577864535532800034435554695461531921676556466807373273834392239817465837909875774258808280420372988677650971276616523975437290520070317595529450138652848170156744968590917826697637145285172192547287864441622212017716983915758983839276261259704812630998158432016919378683664739638305432659772602574187069468302340824257812454669507096852639014024320785908143527177804403826834595289544930347586031323902235722544239982358219090352706896866698727369752642967137495207284569490694046608927914392882456750147891379538204170812961040268093953899624124383256412889104920802040674934272628359971413717914272399278160236157552950851963412456612654985647295107442735172487658841311161610418672349332625185859143806981068079568265652134139824316069706831113669706879874142441568514846825122228942561321013561965957820235104728747025975694928169113117748991260838742588195813309416060325522146591172926664582276629284983005361362600084716985285446338176190699795307260646855953409211191175955774133341496147830478791407211210370150942229479923149812545875347804274872421574900339733815726130873470279484034913094994933506149207866547345177090839378579539374960129280716495654671985948062382957435377822463169648834155502841963416630049208719690649701338903926694380320121462067406434579575694247416559983194162226851374864944902545447880223877439414778361341844996582223227099385361292593512068093753824613861605798103545070458929876785370478976284287339002153221246893154292296893338430783160497530222260295090963670484748401442264769786258099331237686850853907518379492635795691462284299446566861646386623385169421893036682142653827961440394135121442353947952871879280951229778746704639970483691715827819405731301677366952888407342996675467381808181240770005131949519486704815633659895913850496977856493066541319140884927462123359336438363902122699705246129825350680629411793296087866749013428366914762311871198161458409008723820663809431306057502241072099731358661937314019085158515319412340075895619418902526687871865214223951111839876874062584671730247847179638897710264195465422639544307168299915672455982893727489862488156376824073639536066808079522362554093853469957666005629337642846943673614107048887304519216390732650421997346463055910187480810920495674183718730088026160628993436093852912259998458376641011779797452559580859241716893952916614834772098908619614143945027600913848217202097066373207297374963469727613178379031020613145522021032550442798637085470707172801497016963261347071195519166071138629040125638945157239432454951779125558828710840887144453253772259093883435181293042561897317792110081063955051976325367870881128053095743960848560942225386796154477203137115141916591361096943503900795597485379011510389289607116889457319327187350419505040685283295025946822464717957334359866240443254205199959424555313020501567191828984872416916311510476614586031190859748739439544238982425925177023432118050299614475856853939719105262809752753026195928603634104179877818161739312813493892626440615342913715599475633500024925718811206176194764439993590748707228724201884718404125309700401933475461955577479664557110420234656941016600749343007171611375961833871668039848860742541055011538916931829148856282186792428587965241487994058901140771031156737970069704057883904516613959518992853191885608495025655504864536555188209807836979630689422137137201422809096415987671936961602992539401736461323993891480962788111404937312302807762351737401009328285360490797813445452282781931989177127343099346450326444009056951111808370732238117989601037737207744319536593101941626552335000421653389519462013888044991241842745263200029580242344431607800290753581795617267733009767978505557092293384029782271026722611231281817318610731944208752578791122878373743886116293966937555902366352812543106020106196473914204453973870164893384516896618003009400638628091913631518260297257529393764100375092725260544171122715655744808019908546947441551022506649083925455347885299163278796585308716373612938295491083060899759196091638535048905282494293676539749651811924624784567759405048820495571118705863529689465975647297657388079749784904760422043870028180745024348441850718125676076249370787245927061857641597138558178058900149684014298442701908205266292481866452901361527037816298048182180483691661288411022196136412912287108050581807513011665495074730551031044922913763983999551473303557050800918036744232966505845415305175898440384748452583163699253272188362613985938968416043233604450103089078065330122287207651241373864542664506726047352058534796288438579903090351689050204024182313041050556770513030056923271492628785951132415984121450298568196392944943347951051047902681240113045533372300191596216458460937089274353905260891770962942283641220557218490800942721594632292710165766287437653124092216478152134886631692330405806381525067020494175385545750839644880117297528954479604165366395106728189196646752409602548315003767848572623814595585865701626724299570035818823186569857366497594923887448107071796974442443720469107241276433342464386221244551379057884611568834000110338134577738939237929341673123182016200156917642886922693550478861036620563181035775212928051791707462534657085187271070090092197384276231222594113472654841815025643099774926012224239324779843819159015212472257910382847496232792611370280032160746450161128235954828004239091938354482477430670286010376504024597090191930061044072013229664363184317277390295972823795132612729964875045078848776389675756315920811245615198728621053988224074733728885506360109312071376115604256816364360558605825612542043081505970574494918200591224511113126560565678694596830832738108210243134000661277540289112789441805468765606148808752431096804670336458692012753496447259823020470222867952892250918505246034427149348136612834928358705050649775505802549517656338000203895578133111827152433762942154669454043024126491293575974950988930001958268406881755971469458435650102830834816010319542005435468474418726185277385945491013011103424405664317538388495036681217156205863023579508997709245895597154117131624105869732408701293209317908087756679314718656104633943884129991469808618509593466178529355432206997909694545251796426424259634881537565577854475295043246522705133619696166053558049147360831598989116481108385060099336386342621237319937622355974558391610657334277210469891856181712025589226212175264135473278930892054794007900920211144839886754643054589663766363641553653304252128083084750183492042782012200418232583645133327691653960959614621776659773722041593358673852078888486621135368363460792227758916659372187275193353447830158865169879963220623975225184127783134090630626986669347720399864052106232273494843377913752605055268836624070470876002344445845008045510495892211209591026160232096918421015234758520911565286064195704465468367822604176433424319306342579061500896258624925687302106596197107714374783059417019296879095757568654386142635259627267508136991921436445482149005235094684349974089576473245701590009656943890924031394773361892447261911427710078936405176066991639523774544044870904723983710713968548490320194744197027066951074069269888087701491563635847726340061882343023889715545715114385335438744385580769376027480131564661769513559298306058174930069532665325822401617234107043104374390102074294593869132056648236272044615298092313469861605622258582430591893654030668013594964050241684421133873754030335433149692616188991903716890807932126165743357989224190893629396389509211307280113081106754970141934828605495151321650724119551945831279554957940218501604135215891483964291005327713869571674773000063128437942674526717928377001872207142995548700243997835526666454359958257583657165604406736012962760415716703391410993319958348222998444796363133981863792084440700552367207780799016796438922405172174726338003822231388118416113751372299374258789335262957707729635467853548577329745510906787256684876102713683517885123530881164583568859276166410312907758600667690552513749697538397610530063395040362559098881503910172766752246667979728158855605830842227247014170359292827369204355015441494052146040134204234707877843487981275484871811622176366140905629353562345117268140522206287884263370543946819322820145744219498171306759835935035704466649569611122404761549152530363067460707846838129450551552637423047433347257148360415865464863119320429548123203852408107935850796019154793617334438947249836936419766902648238667684141781428279608140624385888223324614172396833484429201648085705328560928436930875978741077055946166655881269753072675306746199843091949084269941159019270880845557926491709796260539867152856947481281039431914280851020329394834110002246982716240325879877181011749731614670541951966331618109542782365666795672713289423519823558044858136860488456416827845967244186146790485404014736262093646789192455015669260103948182607411977889335503738629672165981580685197630161399912039349117524625785221609007558683252180010896704255699558980763561990192309873188674917394620506242542699938414421469723371996845785713974514194864837077303897330179279636043637979042279702686966756746017789115719070451441617769927502020064231998070704688285827534742086573154463953399268469066823188351688829163036852860956875527620235266484335410943328474238465089340509824611360806606840076233479761832317964318786810140224992217676208142297756010660895700301480226929905582800408083416140406472613738772970328303597588047792276522134847946445377420492598365102602160685536582975833139845294990113687908560584768374652981525760878633031515778839933859044962586377997078309969981259463254605583010079905985156139641659309087811291599520977688378380256404446428768131901721272521959383841555299401374872631866224142613497857846190496095939963515398225182351066702095632851097265693576910082985939661174188056132357383321113476954781859826999814679121027230767828886706009291709480261747849627522996646724735470089408511141851037319669178203140486713128870234883082690692674118767308917046514755113285649552460979405327395322537132291243084615531562042568146486879741917908518103448801313220100956228348645772081913046466181532095672892065602839669833674256947843598813750556832843279765934068482584533380775862959806068762039617960069695997388950876795824344078789337596299602382775990837628004785525435800833535004845501974235710274865068146749481103512389126504835731093231462339189782604145329624767875204763961913616872182128490218244929663401932560551194045975606727425557746522053273711451710302235757006101541321797305020295428024633784914461455471048823289000610703077374251905617205357266573093477528874593982487586526574180212792080034588443236058594365761200815893834516042841908858265531528135967395631758640204944964167561588018364700397992279582755097360526474796917008742539824280561481869478723718580830140383449578947719030110436255667339346507002219529229775358634764703149045052196236894758605226177224188595661899093987715050558213028248627516408185061574160349812288307873247901170609113859659050009229051905641102226521668500581555252849168738201497900489003867163686912114257764942194861524137954080662517588817760914025878632546563521030949011925361924190681971362269976627555572745523062378249570061138092185825615497908059872950080154304820870486063806256793391347885737795781250260522322526576355134978783170999085928352604497290368203729891332366003160792212327519785525892372176024724994227746114661979026956371521026038283676677819612435134445824194167425189648246220736744716774083134197839063467249601512475522121576117729414384302274226795831136280950493404068213836779023752333432060305904900616301295611032519684279850704595631264354321128545974057285032667747124784663833863516971478582563367283052850806751827154678260522051409431043356031329678702292367273556027383204374742955247290742908734729847959337536861822559673341275300773060444262826740742954811805413232428656152585140130875671222126032204703704928220138398626561426835994289641910235415046080324957310772021154313528851950541108590356416743224606391339608396437653882920092584389609480106263837360970637057584469625440004146967537935553388484832350348598902501256523808838181259744877005730704333240164319727805493564676318210602604324173064735506600097194097175309287354654318689542694565132003096311673939403874032270003827219456972075931902573822912909354379387803807481397963263033514281329860023854451988053267517780610960094062618036756741800959199778509784250892929509458453373240113016227379469512025607545538162414881040905580156254921928881649467666050442564188661007285548055467548318863009870384379621459762055841463448925235576854663568298374099704149490331087365187266631063192615490846282391902145245758464832155791764593413731989102326410038864480685197329442065419026768014048179322928239680773178638409869639700511112386342512322035123834308515673100227356552109337929578603265056819355986664805035892878743227730458504034190383200377263557873653671668966611495802569267124409866526513675966412081814877413824121593385392181886740842701021299078854247459246159169781853716336504838823246365681941131699849548643355083941721267913582325269850748213142644990837025355449564190897463666208662025537358373048275421166223276845859177389312039021256946345567603008698169468006694005985089588320143261038358575478401478456562536853809874997779712602895360877668416719266983182105086983208078004571754385620512977513802474845477991582980003503341945037802043445677517087595143479234755568491194870399652388498122353204157425060564274932721065733459688285000897487608391070546301562584805609590325525923156737654855116421679961626670935810104661253338577266964425841452840752446773951768688188120389610560058300302355098464164134897760215937430333013041742996692076298845285573311837280355778806788578764111471454682892142558744148629843536254166333759615389341482666530015841156843228117173774476792417183267768365426392374108385917236268773029080757478098550839083282713442765363903886368403596851681931617903729111133251260722399334274382334743427100832114924545779439090292277570450258512427285788267256856234299708950094090886401266803156983925580820698353083583633611517778542215610479258194811704460980898108463778923552161606556251986513716291521333236813394392058306099679505781337795578545373833554110591086829951023268752946357115572620742543730261968881534696632251119653421004027832893680039906086860526490385763792047973661857332471373399926684818980763989121969128869965434007804711138052536525543396462015869592475649074482934479736994448239160822697436393319891311488337857523432343995666131819475637940347551561797243490242661635886909555514870686358822727686767279353065866561211899590311191859416033860568216747298386850360016387822983449589420532646011229187759081965731802395152664795880187370441728906373569076586070053815252439326132504013655026518778393088212333122421784641505173668033212753030543712497090416480601248397409823227024669328819367037486574235100791783011014122356174145880027129119523927493820339677693424045355427292576491451983483402302296619812146364758145112607401957227743247701324817525275368095864662406267861133340481546954418152403659901142604369555299282204032999733423476585773143768635627882170938250735683746115994000344036951708017953249199196919437494133116382750687252598411008100392552311993663876490957327243873850140664025128261170276109793710619388565447976777805382500428467065759367233066258819005204047697389800142102700457100670888489413851683467639455819627034171412013199481959630798176946694108757862924994497633752234218987593401638245546970346333864267580482363588037676381970829616471659046138190086930590384761815123474826272794747966150327187922986382602434467899965102583529222821635323060478928557127934233707589110425304009504295307979442031173443665930973053639563299181922747118976950673980332731183715382738311580418788648709347273660883062874762319474640779887088969446586674125826847593792136759608732058863445287930261254597037134647190008461238463558687994853023900897054117232832075331355526542699217457823413913298152719768609199013217837457807597603075444320101049816045673953952274466319629598803733657941191996834573850673116294356064795568251478247550600774778429671094796288828214623776107685440305299185588826800635464510215317812321203103368780779639655937247427642933396826716054511366270294412561773616514502828017165832546364193758486612388036722387840789627400567871076211371943156018930334818578428367935622894812857662842579159770630475844688019947385407783016648451640032957119437071689612494127076902216949742949845325064772274955603826282791856987727615310887785310847197010708474555058938036499088836024253711008905216966317150024811186759212360214453582426048769110958732336665441773392972047060574988938391267761508958749169211534364192206311288093940564480850332245542860377210807137569642118818907877131392392805410373562496679315536096002956878939709811190414669631431836280742436494141403417393480815184088948293616185099474978218591946646328382133577787767931858745722187486846703179076095950481158152643721950971256120838565992645260041424647978130769299610536455500767036293416326652372848403419518805527023399462932467235911814849872951893888884827079513592384294895854843656195818734643202123028350025666511076183606545705318734350999546855249695905515555957985417970209619693585248480161678039604614490085089808101976060195479027213709177280137075734032540064315613797936435401662041283430721546806800384693928593736820763616891020685798490048779154654298836560745808589346404588373507883001235085932950023513311509384009503026317333767130108586205991400951859430920630593687589040529161531177080164385295499940428823620788969702349971093154394656904706205507398732329588896628192557117645378719896707092954900232322352777998167863282922728861988655790400149320511300440530907247688755495288631966975967943248571110117238590646315470322848513509077174358566011120439607493236938941956242217583953566406584708342890352040690807111385862852710830832584569565808012562454240269933963193225231307027474873695401548953792465554803257857644381007172804109908287360567348550228717788768985415437716192722802295183185269417132921198701498376543053959008947032345331982054572314631960257015949154677618350939062417930060993727524645521897697059970180664439937228143806061424868017144796166645825149471398394609433972428325786780870777085446495888974581155280895260542831391665811085378354647004399372244372370103894458736956842140568201207490909871743980591988883377958573974473866318198821430149099154866805572984225999942566191452755967310901143124234664272712739367494971069397549853843190696280671217385338953218539746776184498647543133822227507559621412860563671066122745614592481826023858667651984852510279421263433378766096158511508927595185127009661877409552618938571813417823112705462372816352784262879109848911195527106941815574270664755872076066749102009300984950148124549287357242388143319840561484041993342391898608039968961432571771118406411776591718289149859283888917115524420200930976917985927366753054302341277868782920206491312574614603753203732374791088926919172588762940820301442111481183742984861418303974370796250505262533097260354816490130037151234328075543597522915228935986730505724963536635248136822607490630532854618843194824287670508087856427982765641140115178523486277094831632276142301407412726225549396235974253630772173243437711495088683432894905970680410838985998275651973188966867761558988541048017699823933435385981283421250339688442675429592697608814212577323172854144069382166119706251556096166638524440993391400661621115923552515410244570738456998513493602950073398021589766805557701162390769592059049547939506113067629287410733814345848103731724132042069442609908310775374289707231668592976597251733539651333855785573045649136417226422426206726444342787484897778767382993604300001944746571243534448651771778276126591004835375489296784627281322132770256382462880566482890327274579374295088670328684759121018541591614138368010206358358214884690079843490478478632178818013255172754218274816022646646953646304398485530413630831270048641017743975939686892095082770685912489165438463734128711050819578651810136288283848831331913124501573627304010309002267222270462002293550230042333624821894250350075115503568785547858205425310667518114341283189848641711729388377075670779103203231668581699985096575494529153724046036298043722018524492934713543382320050909288920448090520904371086902949421654668350724308998863113289899412270340209981397140641592225332615209238507588632916833621379018994551371925232732049788891259150804553796462149307866650413554692924134187250215998265857573876527362615013549147268387407705796478608200206988792105531332875381727742632746616298619045149025505002202997888728843486765677853650637729837750390122656929328884359506910669072001759858443136789170527063892668295056690046164117503999965798258896838690650689047921325827198514840483704137921160535217504179159242037765016812088705248716790454298579968605324311459094002213203557725829531781753936906087706674861641254486848217820914283117511500183238371220650275016278334696050668697336415551797755361336455825630977946780057301499386127280141900304869857787914517678642364782696826283874037247668159952220528667278156370976019780297722728014277228904023824204110434783728882524954725977463550740214070982906512603770143742797221835443699419935425442482350018547365209573726243323666292147814356237331138347084408219233414440709822504871363474697181721738645927342343445106122964926675037915803979724668909039695090167305492356972133673913826145755261208268868668918670213110638340095183862651504693259606067321517994195658298306969465098477438426175637449987589502349466977230553492720117153450627590594422038693361962249630983308664214310505658530528974818267629088509895482028985148466620365121429703369896961300597217992294469644927377579983650967174261150552156735407894234008722308649671918397771531950304014452655484561820538942692699775583562263290905932661632084049728763363370919361865324664546130758873294828289720361790361074739001695589230551820579496451142490488653993374058621326810952946508334248999121779509218121198475422036838303575854795354740310977162833249140913132746318418867869161661945405702443689045234328064118517621188186515720088036179777806941228982796696398002116650858653259865921379570085810417981594980915919208128585090890879454963229561730234042052551454422993513435595569343244530393128642622354981105696666759941958092862000643867407853819543277779959805889489899578273975552389529457430418119661980951695091463627535445885403329405831910884066933734586311300574390758811900256306575866687358024716727796063914091891310999869978137293164419228249922853620941546224303926977296792554571628956763347073603889375203371546491352101444453319602598324323852158563626833103263494402739162668121905925577657670407077434551310749149098479338711754299971790520885022213643300592583989844774231921197544599481146799674215269812994395963515348539318704847466006401401518935503965028590505387193593467724230680903253099162722723735732960774549529263062036573140520615852817731435917511450769994847525244066030048040107799817497118240314939469826575022138454942295287693219563559892134633008985343241886230020261825036953889199065634461685814910726340691571990690234443182557394122016231784977317244556829041273599803292404482507502423972290305706733554033757154432993955539683834691086172144693969286037267113616367932114360574743254727631550273476217837346943804615786695039892918360409849537144653919601488678749434482465965054814205512952231406358587329146949258816268066507481866214929706937150177679223549755150466854665947894843926054338892487766151703259439929812152205612178387329388673689844081067126897535255692678836691942987733500195885606521520904912883012786488459464910498096066350123882162259895000296757994913446855726815762651681763186462860996406962309369246855647839974334532592539403608423647290779631682323453832614537848931805067103012793535268253120156274324734616741165096002124391252555964895161595279012004474964648151050734504669422659164345934855001224356003222865498071659543675648590294141125837476662727061891466899535666519101725080246357109639696686117743697764954991351932948818725655055999153040695199807480184329561183908713299260843270563089048210776675550777521411862891826807285029345657262996834859242338500613842026920865044831976630685087600288442021245211134981610769223627313065830867598318564681924409518448427617443745552370420202987755096294852391343979246718000698903258796381472773583489177873694402397167353247622670869010346593669603276530202837518373386191784227095211936659737466647518371629061706322075897849824334679274774531785071525156158569601827758436174361236355639182225191450031210556196957608055943204859572459337774568602451399425638935758330340119701560491420813734252731128033165507308184808179601456904612009896364275533619195858439291704645648660458552331033566977877245733607242090309329824141868768199411655846660171829475930134737916014208574155003026756106506346192687388605332771736757130523661397612175374746269083455802299079637612113748749416167155380944128855627523675907371002499735735138279380228819856414456920103773475676715504014604043184514721927399637018125107705467360795437514991745604022785560393228693528278092364176463330243436664815630824867816911851671266010725474111182314984630852696871166382017043192287544105454537392387706199704440759579136222625532304213302638432285764404181357393368192959624091809233278723754237761148200554148441101442128878510453383823754178545144211541583648646256385040658244350071848556864864447236523592185193165979374865509723389867917926147300253677092911124673108778483167006640578985305566016493439627264686316509352207115291789408946934241493837574653556219940864419752980094345776745115886551460608946828209379084627205046724169569828926513823243388859724968908466769582300164862395882727042136482115990267392323241130748275729583024953196859203152861443256345133637372291710557240003565760190814231043123351695435704868334329967430434606863767181387837321373218998625578970880421775663716013454522383847655846466254592010896989152974878232719672252559679230023342158750380358591283705939790362596628214478641426035110206390238053096301949273053333367759240151994466644055243797553045474259245579243566166765208867224952018005388360473826236843588100239914355897029579850760863453783681299017987379859456322984307010280833357596042216170114015030678006146145406879298601318403940855349325382198967902936253191968304981185396806319159446927594667546110797607831712065537639950480294236289012881614660066212703708619363943899518115150901512522768739378280381158906804942357607209985392721849676239478668278824383331539504433754565055453859829251655424059572413590913661093965347824680915172569518171978455545276274285699260742121279169810905132847338201220503178743014742731462127266910134407697462814646814853501860712988570771043320287030257094370726131486365355815824480899372833997831513550795841170351669597938543994018615067913824567109086128095966589935005839891876555703315178902825077212430014420735852512028218982788798959633195798319842867972847762108038810868337532537036904585586493615361172530091202667646119209579643126428986795982559258267707997785135527184451120295758694587093463735952651264433395924600469136722839600455994140724833445264292863859083171228645431657050281131310132599983894831005090685589251055443618687236299057603173364529251606737838315789444526574951538240018211933791208830961647609799678394912300774375251924072013076149383984512052822458898652995218427069646195986184764398888299236469917453759263728526547175064916096522352983918527707452060023200230783384565416522542840072981211339595834508621551800013352821377001231018084165799023284351180299949034335937123506333137154029882470422466506946344696217668631688383375347851231653566996729621746973366601138153144879046026530701845180414727332565033240329603794722452358626644338476733769224750229882190481719780251552496261406007337098542431605415474463162531949252934809701487938585636446935686237334861791700214160933122992929452258981234319154943417668460646259242330288744281037967769950069544141707324686145885642663449774029304027011007769845411893689576623766022747047764580899319543906659807255173164742523356623945144301820796222282734875209376463398313218176888445707542099495669729208384860717724022837413552029688946356276888837411096288610064544454094013715901312724994930934610072457226711236256416122638360269413892437447140015242618214991016259686383369611920054136829639779756519004912439809281813896174306160916355459810759003678742823893894327106898256445920355614967307645608008714875789173900084342298993953130799509629672924939280519065876073859520917273496861641767613037613804030678626608210516308907924831291745706664252876219915651504661535187539402679104842395150626396236354185143121336842360826556947899855477398304774274494085621727328208340456500458254731785413700473736243794772069833503354184190620151093049469165067635199759169791161671577671525044159000639753229826304406986733500748217674043300968446830877763210254844531533972616162518586239078939366597022598792867090848082415597693822696188906696411288357339573334452369325636194889927870787196629839613762413419764502454149079294004746077476372263325651822680744201602805260720171466839726614975275119358013720274294923664900518279746947423195463923263144949900250399824873782433793445832087270163255208334507353618002776862209959203413146255839726056341557407527985921408907498648828252128263521769144937644083696639309965118203488865117819207732001842017020459305081814303357653779995974372503387714443198994479369986909825163147779755639756788694718170045528782808185445161219534571212826576074696488870582441595650443553822488647004842831294465328194427869968020707529057645325783760445869850252124225266242086573727147739117272133155084569867714881078834681344185513247362034954930487220099313341231085033296327756816348997469973531325854709947534154804211318183262183768862237787079072992496709045696997978875715947441255400323428660083148475026443130815989335804560130476416753702958300523181616040440797599006632548021932657782517477473650958288646717503988684118378674374602270087363076568997005647761637074986628582984236777664142759714592335543489624094109359224438461277566587954779848810348071347518830512074487043749273488807157778944751432138641269029210664093529206308800587582787284930530186168988800478481118324171655798432114356124437925796310473901988263861471600838875493079007144802201887993824878991320997849757493096895606468292148027221602445222703848868195157691907346133041369409110591425376832766809011048302881236315092005121547942134381627473686390943569454770777487951145724931130146618412170996264592620017160494104073148050469597991882559261044186334100001718370744570986794556850993462538022206454860669839582284295225889130880895883138460342869019353285104283887422038794038169962361238510024951040638200419914306570046091523544706120329207863496465303776509426274066792836883209538543732221788236339695118437828931999364818899435302930105243995764176062723421740217079030989482970332329671652098057988070897175508141274685794590582362183971941023501772690127680948179408923373733063959156215062163557221881759427319804766066069690474762428790760776635475941896316844235455261186669245403046936920670422934348645964743563499004373112377520242858258333262378721407538468563451721716002722311422009714639977059730798180494023759132829839284519926240394134407510296124969876022286109809522691206081421097310759315622415445522253087693494904594045844664714134294715512983522856266433174873886245894110680555177203052006974541760589873985746059606186692862479809355941552545752030037099989142316582756971965799554292428119358775847962371745601704809382253104246402989865883471673292244455164178083838297852717070910459085710563711549008879181199563040832396909389037518726224945020789225258174289335725580589861009730670575489121252400832638150927576241178857216208022766733049432355852116548266168702351529408381772702247895775231295446924089491668375137553285079451328067541631196138783509243306764982962808599365892398345823673490596257793438810146379146718547376228247727732624920831621733855543315927055631429249627806073854391512023311704151443168878895399051725044919655098433248791413040724156280254150477992601303767690837533966078525237155215942530208996612929100211202987900082768451869514775435677198316169724034747224938322332691612343909805865061530350171137304839575983140475613158038762782261608083192253954945168143536760988609828790453852764215185152728181097397639435755990254787984394594857717296665742140852574282457659009290542355466009781459257035306836493861992851336801669776825905019974536230087195854084917717153888319126080253344087990983173768826546678026571438514464511241793481030478309928008172760991618856796619318578341152737038075488456901121970374537057254713029935620986747620450887518477267024031743281689424840968518923006774376401883768802665571862324390520590591015830568709846496224689882000871105104243657921409898179399086207950681583626827039175427488499093582308335950821873262758465571987121058318415471415164023963636114570279824667202269482639713017558263132040211063192811727063908904125559846885921093836455243532683604409288004313423545014024623839348027455343772652397071469998824524165519646274801212734463367392296236302608759200992033249766532843910074505388969835195832842937773382880593485027470932743585618854841451073362451613123434872143449371826013510554574999288504774507250765303917716730372838176270569677349644710111381677343508830078858453635868368009355032325499094931371893168574663947831962931765034493025590324467433471949644904562082486842707607196927709413755595698615691028265383501686723752102751516877239122450109283599386520143935834107396871458339077967151997690306584002508720158622526179739707595078110168282017267798157152303694170347564998504339145711731474664838442730935549100660177796582262577012018052413667344921902493001593474228174406538978321727697140658448228369607026408893824682167909647513904048770354587145330729150947134056668068742314036742834932414656649475480274794915963465619229158418349425190197016068948543946594481094828602286637321098773930662799068925153450188818538551837393598482970886888170121623067638938593487084315247367451989301347901641933996034473458166268845369337404199781624097954212826923270267212972946261306071243663220448006810062984463875620599330310740125424479231271094484916382019832640933054853353578783791734072616522735433632263050244558537959952604445821663345739312527975480252392841385481601028957535086430409015932675316043235488256597822920876530860763074718793966761938864247122747864081572353096154709318229775736036473511714418144433192808126949933945425218383074754779264947181091807996119261139108230503220605129857945402726446106102345392465456366452329293491430060805177538615859468773789675184095550432664355963629292484935768216235656945033747346336397768872943849535952035519998741137675867449050233543225253136027135779345895562047429804637954961357840639470054046306150913383472617728105525677551226767088196121114873866517686702628636544951834236936418909961711319159003846604089185151047519204938846854967414030535773297275767155757403499080029545233041547025662387189760075654537312468976124901711517536175781845952695089081119955274294481493120662698889783852705841619014381456172917418956869523260198769123101944449624978055683067236172608820872978203634198585107557685976387081179067047046485444799199044880628985098966083380826766846749960324786074636626282625030996103951401298821789770910453033142050505545587639558172603966630699240093721101597550830188043375315873356178384110523271170959724128037448412347708584395315212212670678601234452405637824986709316305172859067964174037848404514107863421947704931419896268539867909989371280380922557234363726589428694778434405288905451958000362182719609793392889975681007354676969740633987490265109033437381049903718600688901176051777448917202497958590812667818550491847184874460300379602064120032798916540840862960665408769113681397968077957394080736304280203834412563221788866489788779706713551108948673399779464449836390924866591110646321885383443961441115271398454277107420969636212229116829924102881896227555164923731217250152549139602629002455488471935712074286435616842256386757661713013889304889960089928422789255575717385272367756744726638325304054517691354021745552092354718168422176121454448096771756065166973790412215202728573449461908237369185876999412839553699161159995388911478101264114395600384696061899982444842477705027493026574547327614473817791937381836909404020445032971510365163120776156038845018939638806036831791444674962116859485077745595939663856095396275864017247150038075714891258817750933514828921040642314244245358888080001443660728856406688949959501610862608236691791785959615539240915538681999524718096110224376305762513646326905083164354379674216395616833154928411039952475351095358901506405697548268791923504492486506308666715608877057980556753704962621119852858436894033565397827299141339962811451885803157206832493199474674240204317021484952302294107085989305513178314431725646215265251976379201256766848636929036317726964455736695969699122594061395881917167882707811569112184359755864314771948860430543220122975551058793761748919865643802951629736566488887433503279104911218699300854734960644167286503427975358101261783998995804057778554496771574114657830249958514650366897406108863501563658916795006878168686686638560029005943369679691856812260249797897699110400083425705824736393388134231340144163816110940073310628029499603214527441388029689914142737218043084939650259351017854239031031523215540139244941481140964228095557193107374524182945856611223262900464634770029760268963423318309987696312137973560793113260815891654978054408757552438378388589378672943369629612752283933091859574810125017097644709509383561149463751979793949031781185651942742950419255249145475958491908085774388346327210433356202157266895102527864591517610011426014459649478181559681592816853658430088448390412870907721430009442818279123852136251103967197649212151213970072447664086036853264826583049558676327808878545526158107675968689703699237598785385380468242683755853379276336211735218245105729423973822403407550757399711864876644843646995250350771977803026084622781744305439972126872546485518293456581976164071673017600597361763550327896668199965325419277064196273236429902613617442680645614106131875921985951632524456354492881306273716762441264372435381876870432475422386205770694948220254067959725301236474223792999044106476934702873453717654141597078100846424974563060964162843529582986739376792148954623147653405113748489433423796769703127444042689617245820023598728512892143865426508506851997443391062144247751998807496829642811086909773842184253051787354695771653143599160599571678242587992722212026727436667152203679914634221129308205926402799558601048984439389677883550308609325097233564772211775834865711390206747490138495194595965993846259446272955538762627571718882625844439781004083299381605757865499773298170415813090924256700466454599306153856512996137397831144395312743721025745052656991134916237500432419662308475188110861284789636130285984868855032356919838262271551086780317838523677237299131078981176973102134613098254062203072675230732052995055803488603180113393702319186798539031879488667396952385072704316185947090860771305909753474090935694225028333442863461939636864912650028920399178279566957147084867353905813935604098587073144907634927293985871008908130104508470357404359749195888155486035978844139430723947924004203186686768595624927902688236119926904955087597744113274559083326860048439473286839944252287541531255770678548747215747872938158243229299365602955003282889157338976462000252610694731111030050041595254505389517672544484828816705964996412567542449415987772957171735685232084861169215446069774635538256194044670110094642761924388724302162008474084177011453321899868627431024573365903732576146278298028174642400034800858969658356429803843983329968223743229684409221956867652861542032604711560846910210435928510095033305482571601516935393734601485511311140055184945447536795047206793865125253719737826977359312672708097372713863180587590764107302280783680593799375509182402308172312792064445303961753218747663475111174215277826699754219497509376607504136907344130321135688926815465026428300763882993845005946850761855576053138006378605233920806690327037720166452590638238619612894921752806255032790686349107524235383634095802868081916675536554029504178453407355848076787076044723073497624403975240811339655610385950101931730484096612647070471652538993312884134664913362613982188728970029030304588166136641853379475395104167958259308190404777456438786781732279969768327942847206980322827788926034284469184928308525407535789477339715902235306804274574905028611937058977836922916400712361803600963701606685711159143956250067094359626450048433881816917945457679471649239389530709246341950363165326690247250849249774077468470987518153032341138531362895065953130305477386347857853496846623570777262332207884375586645948207809601954928393036913826587368058433348691306843564402443741849787437185897970317906252333213348806629863221255591469362120203910671768228005177453489010245177220153399970114104729567173468286276758134340727336494650269262230749566521512438278493693303357114742414220575810196016604197206541399385876011039521377463297640472862708531928720073187205958134073355991750036301309715417112641084333617573173732374845005257108451739052147610817081701684520793351582903761545643064005329772342444037760307366209066448354322822130003195102085870477172164759380589437766702557245544143722866096496727112389723827124140018490111665216781382205298378963982017714820350390344690850477083991681177866369044857171361323437791083566560405077975011692741942976710591610395234809018882288819672970557805194089314580073104417779700245419300720638400329406048154393644892673670740410230684698307179781306139954658876566904463057201099136977945767952961495928087887359345252288804605220454503139779752665619609158251752576968174759128624371618078881764664417707873216817394233085931316899439071788580632118179939736456707757358081753865143601451476778954569351351267319733247463691136082295710661577953617462238622829417070230553985475620423680601695238821870996416104490914961312269109900215197639600525085039111763018061270722260704375602300681835499768409150722162001664351335734942894929192130166583050996496381476964619649530850752665285352666544089289259291132863593176755031938989009075718854283442644669543627673316694995360328571599773609015784854031768941522825878982628037733448654007861406888262677658591493146067920278776420084252361294848787573545175306886133897099939490553243618280430259134760774346164855566116351731394847396746132012102510543508456516600002791712292904881695025787916507170139834398768013193427164746006911126057963635781555535377940479031253198562042246364007625386014918437042274474357094438658413079973552945027122435147534702376627238642513377489888226741404749972259863721698071898188528703723941995718582781924652774470271878301147803316331811753103674163555920275797693845592294536696877229269295274904216232184176851539968387416365679230992768738978249596904162969667758415229822239508252185118720665950481401428890873751928243862163471492090145716796594855461491563662792350223542390681417462461320356007662246929640220519674921759873110182311775913022191277198767686613644534618026790109919079145174234315672087548299057452618776676019134525743485483064624360535005898015902643169453240892222059242625199791079549367773129289460798526568862838778339699959149794503598524531428292440841204610893575288289437508160671555613129923146982245960663726864911302812651769572492562564112788147207006422689666562402968204423526135403501910022435801630874657875184578295607458508240796455634744864227509012610460269133506403416743875790328807272413829554614525725458089389361878900543958289941120671926971363216686305983640764225888655494164952712347203897536637852273541609253836094636011266334030953716022533652763919012410647867625830820716627470741526320604431375307185089310772229243246970816398185684517730043535542360087091737031928426668302996628217239390716753427976335203274860456291266396131545021020742571346794609748555073200016709843286709777477728796317773336139140869845526452793993549216559738205668781371567592412656555882392449326816697890435363484795116161181236409054742826258366385450561081918982776021159534169295330383200405031521974109618710455681913443069579628645206282464447411736111242224393237777512560057749742164771720529041440644503302487522308706851425390646162819463768024347635328515669230504330448796170334531742324054853612641206109357834764655340666390318276640061509675960236173581814304938313826719208965513030919330550047305201409176170424421639972887325329065216297559625628568134638268937109768883157780557359550851025744428254220287547004256460070761343521856032568148082832019857412488124595033534130108361135102862475476547284677121297015878107222700221884063979846824195140375402606776691656475493052142632180633564646265066779936376412396004751373619597168844032236967674862675100347920729466034840646907179780289053698367578661649060216301031070200785322439631020981534078132993019133275160208828460045174914396091848790728161949758913394211564174972988223273100043854618602740266383767807563433192736123321330212950483459609367957026430763961433861268152845461972046002124129508282911547537787977394009879185473261098600939258920181220123269049518808502493808826952575007622652129749157651351222238836465486432980683252521452723249216414563340055636981061281681339042341424981858287303396314628171446141030083740638720409294816967114973764824876982812461532916298619766776623002233405873408702058648249236613179611203207456601885465651236350829319184018145391185937207301916919791945507008350852633584115623217856316804090961430335726882865431512928364224453424869446630940156007272833444280321158161237103766286511602509763576579589640225208465231157800717972773145201159881311655615371937534084182250640745121927888896968734871976155604240330362734862113183918204466734598272301510719312144911812853627560148961637989435998362636532930705139133826968721691351776743820725472029201312032055151938117939852856330905086895293074336875552388641834780358044191167098986195251913823826917099799257737586019445222265368451535836190337838951220555125187896121117982444501050968813017288836336881685387676756962694725695148959208459819527496757411145511634397793812990387490486060548653059827378912929965739332083258230396184776474353698850254372676591688095733199268207125517102032700620761040853172446773468495238003715486708499129895179554620027386628206660829845232228469927896213495554157067462720138757020941238625763396214957204056636033335000157170455952945866139234801069714003489155019432488561972202385228084261414570827196565602091302980632883385952700769148756320476826216027337438104236937296161772545888198910568725221025770743979497779301655080558763058851469962614094049628976806356924196530285491890105247172702762000897569461238018589937904131274485970363877509336015812033684938407778784971042233326403892843734186957720514105729197405904756097359479401752377351380810360560982612973108320177534895012759757122440895126612706006784945691037203688224088357322656820074579710945843341198188910267487107932934606012805595969053554021592060652181891855554881548900987457519975637887329405724589729515974692507654395521390867116208934343279197717104369333856226925495924232103011975391790563795564692655238776232525429156439782116666243725313995242069148885032050062613228417793922649762930513264971055841727388880251439050327398538118457505325156988977644661504506529988625906645726884753895169998491231622170760313009407847503288233122996334176875216629153488874111125779026477794988052875403916230419746355091614665664434893910241289542005612371582630821214413321683480376819679491454906906436673109266201059098358014767015499451777406450517676461362003650389512435884706331113430619420757156249608028826127319854631860404314628281591889261143326915196817005214402982360138667741256126177696144927066674732349490298288109579703460846791008154358274130677729330691098251082621008666043033643885324918649922039360634275764620943620110141126733955913366731328688816599559059836108469224414284429769185063051997519139503878668294046185341326398023030266836584671604684067454624370023730459105895100293704875503609679300166932229256076854469032776489735089179208215876882182244332477335119061438811600472999596704486180665428137661126232178751724458154161955633647358970023003009943571436306249567582245599347976763722852405890970334582356464602069919361026088002338407101900047156256849563464763214865575564657917108882030402086669673198601886386186348802385721902419838647793867787508934168398597745563203638826583227009364707301136851608861946671926726333896650392634531862582146223769611079033175418745768206181764331457033280798940549857822733025743254878272484953191309921015181775625066808431254162921933727339722968882818114126413000139386261012873650424035433829808640454871362663973075917244053144507161136939017525339851084644179047574170239028231934883888696081147011659913959371712022868608725600137295140887539932214041779908211496991850913189244069644546284694418389241574897819775586200640764038869109154067869993036137733438993304760958492288161466304045255422266743162101994415918548867459028970011144326435046137134179866927245970120369275403699646318287701281489403905949079640659361045855523876472470996309029311885905607221476427729355142170648799406600438035802395824487295127249698696608829783280406321722939776419027580158561662885740236635946147797404655664403291671780513790472302339171554900135526999549794920731199778871831366076958654137443534607817787008757679678317362188125056451331094233454355974536988751043576423938668372553256023267876690621893718124223006614244062072523005902274459932484256019422026950251626920641084068912151818065055627823849644246385175661384236792884120084147313189664491388657262327413144351239740028579971446015957198014656114626854490345989167767014077237755602982198484982946049926409311808952794955552980138225619137492939500632192130756575443210141257459120956552724819327002848067444547219204543844517290458924571747561523943500048673359281918972599715136208548750933130961921890170036148589799048509741730765002337916143214018948374193370648223622293514270655317883447728997037876586389938866815021570052548758570831523635179391727235375971619730603831666393462364544227479770408027013614379721768408079227576286476108593097483257237138539013562825534683562245684723614970822838711579455362412924067070611938541905184117441992089879818096465319121582646528154450384173983563273612448687466496989461647819182852771104970331336390327960052403313592829946438792865354048967244375323626433999603655695924228065473350096368046428113972109364243832288718795447907424451153552474241403445516536273333113900259833998108742236185293880879335742318942916637868756491463227172797440774363848799671780564170477327226145155823010197525833763163944783171162052741690541234984368901750916627583344084602547656823837107002977371106443451400929050269363751102444270796264769117418393135359676818729539098353873264914713774608705349351685104070819037454799337744080956301800297781765508800283858771772350151960392135103060939392713776559658727309420254823640147771897057627884995771381032529663581377371626896798789404554425508603119403085584624160641800023984796893469983373710242995004391169304770914529333581338316773013961387707596098960320608506101084648635328490612502850090443060009899168852810081721295718366274368871404626719901560887249829160688629166756480998977513134189780699721478695610043829268508250909992467743703202674521777620729317212017068366641145270117475091784585693770351574480037148053305740973281066724141860650702659754920646409697659425026013153678284114447785555543630057898155440328384568807601075974987098780545672965444055141990398901036399213479613609905996774532230038987107851197646756067827775194817021560474233257146471282262447469327817061989845308892017545543733989182088026784189545339950246697475073016239955503740569514372327410580414797555178416641261467105638624628755442242038120201105329081046949155317725068608541737632304694555646890971548522842551783076987214887369650269831301297423139629124430378534496546745372709363692368153392400435135097052709350996044045382715389052896700417314610658355142749609102960789354579496639760213318595930299722625690290843640564084460548921385010675348281461714207553136683957588149700953936055400572802678172063889611992633788596586238697587071273867816903636677655985893486435337077370959226853053603818666853367093026670680683499189006673900838898154346437676318739603449584580285255239830677881669477814064089631185526040635380520683137274508143707983728472026551960349254444193684825846800587036788612720384245116308804311267930535852100910176710502367570738310253309599325765360754477190786063567730614235863025485223842111106143544372814438907253659254341747918267267920232206111737262383649758200317688124903377709497793141251254723503847533279519137480096527164952418084433755264320919085400187025283714979115090850454590810392154550199539521908489492568579018893273818544699989388607032615924940225872483194397315156262459013216556011697301679436407323808818235415507047551514296189866167920361547265518137986950048480913320678174857557628093039578344866609553647651988477812836348153104742914860630421452150280227813250845313928317229343356393627910833802907748555389683717864812455684217766255822212382222353369494311195550867651385334644800703163098462679196599939958991012686953539282276311659574339269610778897628330114604272321516480239812176269134323830813317651584914643054328530462671095323957060787539368432258251101856132810601959230113564398640044703339442248551526564164180537066278980718225449279497539893996964708526681193781658347135785727087511258425482238694263256614431419127820790341482087303191366807725184387178952826004414957238620826777305005089423882699709906379751330415858449714133170860587948454719292953240741140854099179184522061207017272544294152906891160101308902841642747376419113309641138414307886593620503947007501461055212399004303081285146970428827732853725955118533368287847701850652396072172022495090753742365407394034658859997406430500283543927575463167362167300046805190574903967870640682379405150719121259986852097912196639571874778803944103805430433717427035443603885985921311675784491205985079873189900067252165364031602875928288133654221229239114108565662743798212648299141332418709807290885973951424722413874594105567930976421634169378588819223002471454030961297397699640338866642443967070814678396700639091952326867014670112910002549024360748790892416260571166172345978998309435239041552885483510954972411315335259900590332355521457723585730645187115882504894771029006893610002807245173297069102685774794046724633432926553104271044679893956997209740165831758089763245913323759490338990356214038937815477083266762367516184096812378683344779427658493784674481680343496424124427285398138127255116798822323829347263991282935053570002355668341111863671951019717747673622475745185332052312686036543240284044422358093274188101183367543316120454681084815672877040294397783882427735766039207805192487541429098382963051617761324943341287647437418474491324359845538752249086145777806656008941905849331800481040300584462293857512111750078613831899573037724536012944873005468051446951645274680761255005372449744830945448054927730553811812870211934576510633890977092025160672704395966999586756254613540826652597354989462664561112800576645739364638793798975290835117268365645250892670791218817599942913114848520507148713229008178992952226309366868590297883211046408138462720726894860815979910021030381676351367190983706491911845354999705010812056504937604055036892513206292846149450378781465231616035657639316388170175757797840156129074288911841408676000483605645403874066902993689650225195492231440976771119074471433459956960955900278941661848886940142402540909074756942880957665434862555516804428968418510167652734937983518710064984572635337908405742769148501646860823146781006371901666812709902636421739134828791946365362318828791778405744414278392219589459220356310165534638012247200583729655880458232741647781965375142366571937904870172873743230206886814006787948516490830335688643094274361603218043052458099816333506607592524928501987478097926061140968408852206009327671417820563606644883323454889593565616134393567090377140574293068615204565861139971174236609604632907547552023256860256923826929733889793333071766175297075612460104830505978121209779602894025802880407725700866522168651161905460189594482812256625409651453800665782951545159950865035300469385677067115443695010124939817776263219631985346777602118249688465736774095230860015233280612121144367965424071947772423305843440438191396013944165322513090040406149516672566591855000926217685966342971694938096614794079702901034524809761152098660674175135790579770326613746299189688684604217430236185383312868211275388012686745334143652544588000601949136705532246445747619916284819121848303682955249279497522167622612231356834167674937981958435717740256119291614303868668901614875589893451357697245712328907421667059543148100549048727075526737185203284937116833302180724868144675421026412216699853741370572457830555752970726235727502118366675262393049320443055761837574213710716653170325303369308179297850538900638735371554187438143715666290796082984055574895244482653849187021792348741981273585300769039787644623794040301564053838442220484523926995184782713427918536281903475559896761895800669863948235454271803500518309468601571853706659404431393039968244170242419791533789352604025101734303593121077532638062072164427609034791157480512783042545246117504625475005993743889538939372168787693141210805780636409098606924293026529248490688804348792786069353630083946990427277838094871173722903714080127260128959520447452432728045050062615787823339506124316985213924615975901953153616346139280900231742501551331825749488337374571113799190739588675123077537539724030737705209036974555293430779401604295595810242471050289961072619967297855020337701254828876091112851287703095807291425623011229788347727013174292408853844224623963973378272679045870319718929520294125751287974224251080640181135279399381765389070431743642213656270735016214521321702597631185950405478848652292519693181682449548147385995719082922829883878824995094135945452490046562187675599617842975984504843902252127929633924339622002932525973072040021458798067605609373045840492068312673284157281737263556195590946961125385427918027582028232541521801920871614257033232753303795326398568686638318824102094993287116370996669590713492178507502815224859907076668663723449371657413635365995565503998721002154579798782883989947096692511704251190021827047901110780446751841675692072626794048136636912787585890216911006942258382874098900429013866179993883701335623334030840773396033894130434268495149729451184121458773072383124368092843384449269344780685714232943431762725298135955611150987191862904309199006493045985783262494617602852199181811947367607776244312336544230744965748765578299808282676522448457565483869991734969785754782314237820745494807660528168215891911296857124839805202054054905908815803445967355939321487183303674313820393988701200910737675226818717360727585627063519046950894616671052657704449503394064489849095027200020256233339191861091330550807031583057442214115163519780222096062424393869955313149466232227447995681266858419672859987860281488112839212788748963922719333992187501642491986794388578079209264560516893937749037979496227473860962259208575009140026927987356200184084828469351330994685283616504694729371851633155633375256339036798253485218399452652425697256837362327727810169638574159663217047374005342611750800375141560785391970961099667213598145412994250486467286597782986030386205337663884185698660654144760485753252758725678843218052662691567007904381080387049636059088697964111516606738758750604906266006719130911946809306236051338039298789899160449170442842698439245019389691174422614958943992946614516695557574048917167634989840437796752878385043560728054541107097810741397727160068800278453279542174616385633721548752161391573807405836652509123474455567304583545175358641222727409428353002776828013605936354129679335639571931000899650181768741063882432113436324296126299786064221939863062347950887601606190832237103400884102051807922004002260660290273864383936800554859704912561058893565518885341109017308568737305713866597058987771945486498191848062112226752333748181062413048032463399507919773585930710097935493877702312776414454816778869846732373584892333187170797993283271994644585966422047941107076015699683556796180293700080082376679603455864577010606739171841270418306670628035918304055924607293298262941838010288571752584513449828742439535306626409206508321655792947245018322598535561163374673312764947438714702821674607163636058277156810062839903632341115000258970771185312848178536727406811529437549013552834903995247187304859662461056004474322997619809241488272301524020086007417636602154782235592184877377126599387224463150032728441588304451423833972492384889826923192886351579179275320137488931077827055613360371149483527318365801038066631766824600231779569010650025171250660333969526798434095105891794643371411390047948486903188099123649124242907103960080125561771974753236421925000086735651909519994986912086608907517328872405300041625436776565517748483100741065511514306641805784198797151586293654354061619993787235611193165057351944950018396344733809845472983781398632411463773077627036553087696955583276796856028418004387418958238592119167761934088958772541048243508472294538679289186426586934865368246080045683339068151875416498112324866617060078118907605422838683303047899526180368032065380245981540274609440236222509692139757856952140268958956396987997997362909816958854536395903405977829323195504808145602306292100438375999378817369598738387828298466328772906326367290390025688520550633163515009910546116134757508169600885672807417802827355797150840831532540956290075056733335704857173739988378052158432090409378097728469798396394448436744105251486475751199985117990608650083392061459791712952024765879921626747906502646437314906578312660141170198516032196652522779933879980606301659036055426612088566612996476808388559197140541498935600430033871803507612213401125149635666412639389834046112612260676909326641282733614207800907996458305425331797550873897016014746042107861702126550658515884145484318129483998286887244210747492853319209775334529907187411981968865533506720646953640221545379010069465036780888531206441717485195934854296403837588615159937347990777038773886878079008382103258745360855514216685606213179624233952580875052944349798953633867983278460039883111977346731621815732644126927181518053540703199162771253448379410313721959102560644167878130995898426120803489704634686262341465065106569197194258560529483541582863813724155505772114744617158289491087079104387874602665344126203202464065958926076660715703566528823553227446057782009996236982084459021429995917264305494743096330026262056873673122851015556439727661363988384266893152409044473422422612935952366297793677819922822364186040894959103559980141063713323765397660245057757600187017949487788889710353983496399503213053337229549733884750197300662989825378453705920851742929494082756718998542759863394268358675510085430647924148638033793049940548272917354340106453113136038583442171470281777149972830210105007557407930916028312191199589877667840276944151866923110558224216989648495454114185169802957402106162340596535380173207269944002637295874869478456753574332713868716140539242631628872129450738206640839012313815495449472318637170672137247876308587436558255244163858787588788883745125450123931046278425285861764544207411287533982446208530019189363840430819002132852245316154337715995101342769702552021387788978289644000473395923760456051806364019990182231938332157171836334889574501515082457991361045407088183889079737841103647121296014727590880367380503103713908508699153173679117784708874741196075690344939133845117658538153994795396401283446360858152220957543307392708864821351369224996659597978382576706187644161256418223619956935673296793622570721610863222725160594630917976769831306168206310384047643775086811286190793083628730139692935960913666183578046615051801579290410246865117930430379902753804702560824668648458829124514475488457455395953916712354880988809782936664196656315525773920842073178041097043365396685272985293796974925872986741171823968492802094457026794469284871007261149545205628383185018285045751909777786935692341713484248355416709351448349402074543191738976547006838230801344245562998993816800022850778616996167882788427375997118227254788800135203726310235507026868409916356362469542397641461836723102883325820519730386893597937219064138389175687610447243480391669042431604993842571668072637978506729893290539865433988507947561736996116351471456458002599774375459398311001608844770795867053594086263424794253374346653723460873332975517289965774296512315440425640250215380352543337862216992131647470065611818437628381810081265848340060923890903067102469814539920655251241163857742399465708990736018967753613446487628018767157805974050032843505323394489367113316227314396954877576946162132237388950877002605951494169745923636317734043420116577524149061782320431818882675453205143670718615550748943635548646696499629246617697832430007669112149247633693231671417381769838703164491544287497976367763825551349933673361333772741583727525255645952097961797392268434753564341290793210564174955020112688037462786483549598150664140252880076009111966943268125618777859981107994100694576298176187311146187638569918021603234423685753822030868126251942016640941290142722570562713320333887390600225708181809832737148955249549619980859189346959201534508244154238128615573584623095365342697344312185344525894537100447102200587844568770732325255953022957805466717879904666708821967220866896345919188829187484936725459716654926027807667958510060987237262014274542305918958501347957378763771511088209015922716092183128638816269342458284606631232522771938645713305293865593802821775677609674626190020960892009346754840076903686576361697855358320711778020595872248130178903574514684983821255819745117806297061760447266560893662350734269750545256673020504249195068357678913021741649406288212300756349225883420567442623251934458585166378248156330447911771220564092658952253861442031439532596886782485538344334351746063962080808695033013457766168606253233089026513500811939347616896897113499401966227912784488995374321564080008223045450465793552263582835351373359993115530326393225978903878380497173838854643448954307157330263224695129098810812054505153151783885582432686627576530475309648695416663855441296493587860073128971730680436894906772823547434192886933664490229012635505238008895167228621931338211846725368753500388319987217775829908058165698837232034920278894592473541306006770902533370478154752496092161284827784305432482297184148329401457112555200800310582835247124551088256147319376116495670339974489095033184733534238068644656565853794704022095675745168602783042156967096641571025034268665758777436940492039761673990183905586597485112099188868420703706416278447867847363825582023257793286801585941751342201546745245416096227150313335752730263075033094414209159846084643190258331707480458576611753783389886969173062890816688594051195774747921911502749187907560424275848647556160611607212877038362025529384253722846181308636310736176780921607246216488695335086758776976780804331191209319146774887783035299619441130635965092867041389386563864436683394770132735264665974878581847656555489434029155315832141658206840329767500413092621083556058156530019925417301443828779471811044084490959225496248003448513014383043477254669826878904474605667406658535236475268275072364303149741626489877941171229346657143106998945480838213314435452065873340904701347334047787928130479441783713149654543740660365560351917460058434300779412996621573654579970083515336203339929302499891932782176392099937202398999489466341793202825291740490617641365739037825279323015135030002841126037931988518712130366779289562952617487049217845151256831751248250574958222142453362697160422387809052410369761333871632484476336608635128198312333928949293065388315834747576446179646950635619970827672177097119687578854877061442907719023538353182510245617000450553117681648982707019072160435486545858413076193302715797343883367261034088597058916184197190415190741901573186777854678975565424497040474607593652378469071158575708097205371138586600155766288347812258183432170450496350080846870394148221913972565712280047399734014066937689145495186358167793403506190367396945343170716772061382401209498435528350259459793217038330277418060485112216958750419892592550314705405845523642533072224805613487004453028129743393641030624833631110729905653128054855438700069470305167321670445210873989695182347005160955720330879917247018376936510299996363931919918388171636831898050382203254437215454347090368778044819829078142718757177247248457656357292790721726929116329603702895101652926462468470868439413100135413317043839369634008383271765038703114840499536698991050090841742513577978304357272799664677979190524687749529956023616462794702323916366928119466194386014214994964550292904722148430144509971809450372697425363325705451390352890275464896107638898465772948918381420385830612677834425750460472040954175298168745803548302815745338983423288319242070156325595067321677352940580407222255606875365638661188016597983127645975330399149349675796317472494431885479378574670871654280718095307350026846152419379666131921604835371761783900213879688528999357524356168437709620173368673619197922225643398121771578785609496661352313495006814725962241105289758326190979544713806583274777290125673476311794811136693278494081843909437199954999832307226607461082561058148452960270570691778471104494286392787600686330889279521470763201973251652969380276015064476914176578703324169055012179658787869727935131766137239532359483312622782654362807007955711388148342804686425392602740790089118470425525832186829524052060421269958271610393818572842734673841853678781848310926170604575130168481255733420847098896577993649041277393111188709438815413313173649059588682230245065999007475236458871115046910180784799583508941838783904341202855554715662734131088130883891745615225277209769238956703375070592960405383456305326280918416949247059271644540803230838323569136036105100104386377148063738357244322863658054686602795390659687375182433819408064079172953010471609743203078015228364873789912960815842915558648487904609596481680370187407324892830268436539226752427701788436915465593412673309968676326097260562063902207854815142940048680812924211950461978066280097126835812187299043065353263528223849119410023498620263018821032657843836968454870705657276756633240369419488072735933796963833574591237240251568917950185814282163160307271529243010804344418797637433641620854153549165442349476696616734670697336994773878723043788272838285243662439732171386981951911016603818849740642424619563255124793929591959271496560352267990682323661677348307500931823903949445023729860296921281228621152557734422747147726162546289211953238711694223915240226434052915628212260568554573334902405747900513004295313981069281596548408718626679934764737033620508193333403517215184393519775800158129557981635737936465822790311260891985765857490803964104322939446784556280194055133002294792479180098867098787739109774985205928143270080235060114458971844156296299346417716650698125861931233000307521514067133847069839006024158847687745053858474733106017870163303815710649756996402018381767956225376179456936356045425168544684442201049626861604701573841195547557457388678448176351282856866686244861484459701410216824967643452913915448268158620602733155740505430090300821158801506051605502778396414658794487373651360615621582483444833509797201281214160635724157803892569473219412529809343055547539154040150408015724001470009367873914874717986254082991572726296460119890702318581045660530848396670424981214466521324058760286583545328961533283291931674851834809323356599954716514017511729327325835186317182379790611651453526276164467493631957343985527079027356669695497355322646631198664506713085045649081598035359390158355257413606391425207569599774102988047614989043493758636364461260631098635231373041392707005151702415630447207693233900683699267968257737016136928989415581679238035735924541156123383389661234556919681217069742019981072197037301540335558909533217015298756988681316705990028759775058426917164011487718796546416517248036182880634355848856767412984795303654854213725769279819355866011377859257083061661001476758064681482919940576237074795447514859075356992402680321758194505163709152730195554336815661088818913720877499517908108301916911520778603743899118840787773563329439002121955499820558429048487064460975034782557184625798960198595467316522910700479776483090930635513963920659963847997203686033491521077168938919841071692808006906956562327038130341163197349530289008274983030700789959952036824471336902182372617943425869733082444968990278436588783730031462711843506784646211948164816242225065634132089822223017918634259111081643478938555916878824989043740213935952992266115358604615115362755859893132429936188227236178111867073070433322489993623326353423411711316641012685489923476399773098150775589865213753424364499253066494175579110378417937471085017711297629276895573448163030742683109057563665295822215633970337378948050773930669842154135838782879290367775264616245563405747605239995108019874130397747578257672039834416055320850712873308076651524191859651229842122120003821526105789713876600816488842185979087450113649684753832778659944808205697132490011780324974453817424253135305209560373314672573872737562792607774620752694348525781859848094424621746927821707208492152120775178442100178900962526304943925091863805508627923483138654273530167178549296083914139588368506580080485992925367865801677897994330076217781315736346382706887082760454645624552046363285402155149488384013726239463356742986591512520849769272585263367797493237639090564286119013598125897187130837133132941473184993350383193497648566810313847081079323665705068018577794912461787015582141178889997958795706793248787994377099134246924308150460186675713204739706498951412260398955236971098225943853411004110101142993495824214865593935008556287630154131099460967200910018291209892676916931289798031717367394656621914660917288217598630351141049326584530959350716867413396822724237489789133373088701484790006459447895567781169986124970946359901783004915789106837558098866853721584153357667058353057615530999434081539467154683391317584474702429592784466326572700910165790688237864388782307352308899261952311585975136824333471126062333079757433568374146063844244128936498203641073520516187904891543075676630671935752000586163833884484363252639755961259435928784025690346680800855595898993220651168235688521218959907323104357387739775446974245752579233572944407330878663893477808860564135885786477306444801062504942989111187945310767707022341649150715043469237748391102325949194757581550033851388014372603090214955935432449020980391409209714843810476139220082886693769859782750181021316649346955095059466336481799937335445563575030110384507458091136196097287555036388575598299503997172762814123013816191920893063037546515066339415457600226186456930221016486660237588206913096042036685463351789903386971898334531205348720786306899961162888805634178868225691263946828450656313550079022512115574446155912636187884894541189478527071185746969065954956607139720131148863909977307227818566055679256162025705936646434219983663050914946799034209750025802176927947617447685883158371367173574212056875345219268289086654240201333082043238509608196470914103251833888333733655212641460823329042568035408241113561740108977378428590373142215518447913814898840452711041076881233723984662356339364979910057696846214295539044328052384955783506679157795862352765361116705586421916551380876183331490472300765767890335860541705277153165433141972107815897677994197989967405682594090300319418193647356706207254708011590589730371561175358674097648856917329267763888969232789735651887625890498916961718293016280634144582686346675883059008182152422250101957227457947297760295679721499652376450416905638036762965009100043304487641788379459429096507986831368001996053536873646544353409406917946809208260459250478201470809475674115138247953739261840153317333330836776400479568245175913975175568856458118721307906783157727025146775020433703853882359348804160427910382959592660941025865680937273568334207256217726442727631230843062047719890304116439993855821103152493699611726630361510203771091621273194630628763392806470891468287917047582890337258938959768157738721745611363803487735139975916924563778991715880564636026445652085982797759325920696882345363242079990073754496742956864941615363130116209196393693862206962441490441879824989108881079781291157639064876986892917239098774240533919347548206922613238891920863213844311719504545532017384998238120623295088045520091054177885017558020644042346503775870972996713669465766485603217164786179988630065904495670097729450106653398841404515207284501982585701214303439177636255095145487555322752963444686742753675593965770419893507922077023045820509176179005001976897357430695902030566035096831466414022553051018750471056268864523071584330411858760756155804541712545793491491060374458019652890927786225161138846662437165616087045819047807434131727720476684932473036190191585197974623408280826327845358268056985099929383610241202234563895941335092985862991364440016125354796050706866540578801975900550367193215016405569979543480062560113610318908175383766569819833689720017891962516667480819286745566831217316070891133980413906136735523683310656883665357339018054793061915626975504751556814254255346193865704325385324198454292882356126597899820439242685442839270358287468609666978988167935027808375130761247694446367327073916996291100089747263421026764703071474872982665918987289201417633049631434778174798744508631622708752918110041454927176929403045835738296945895940602205108673052461349403890754077539122679043438775590161359983485038139093287160451614173764376883740217143738818979030326869867410910433917682886934618105174842068232449622252618821966591965828445819660791904928549073366883655754687907557816360651019788277597636729442206322408927536946918619359400080166373544161309973156782876377763759768455741759708183349667979258621975687161976870154394796370842728673693894510164441300981507549990330011386108425033547050355395842943738001731863441159795175969548407984419200977282283634690735563703878505020225417128122340940280880947027823677337921392242549882554903457412918961103159413203389172364191447725656810385731268000107086725468925723748119121551825250158812413379218693852788173274227363019769911489929330945040372118096025395023620950735018155337758971043456292133503806206141749112986299626610805131805452070269147760179866674118065304950985677362083907094569885964250634662839332749797406136556328479433299961950189119676664858395696176914846588193235046402464959633836658522842568531976320321022351803175761236835724659631097743078801019361185787454903091852389508363448041073318128501937405058796888092520157181379696472003349011059948477319293391106359862087001113249262707199139495211256586384119403077739437419414458201834529188291961370489914168807514978730035314998500169973800631500015193721077147937796158123815232201550699198382412261300353807470972882016685475807948121145831134799505666375072894740396421864419192255311002099593756353292668177279224694501876830924450272936289568304798322526182704599370444871695187885022021361606630398376244530236898865742882628519677823657370704558968103800286921907472095269531400288232207437480341557297473171279122446871909501944484743123784749582539526965909713370059936922520903528111816362897034783918435015816644073450461522730530004772320495684265596591598992102731877877309761413027580336636620019208267369243879232978387980093947707648001554163162245707723828237294571349069172525375119558324420204573348055154517314198599319068056186642908727224528913352533560437065603468310063653977996725981210913885990648153368459882481673997099760471225775221333362826303380595067363588353347807677888833087791148974673522960432960439128968836816790954299086185586623114603648782497536713751700583567108606503727759022096706073972468336729371533564367708038439247795177640493655439649272501977685650704076217192286383939921603899991285088987272050117399819876317246684606717384002574475026892680552796286620406707078326387394881936033220931454714353783196925574242311127563167875163000186007946982748004403413846534295026702577719629929315733902959228023242821587840023153506826665089968540564078858446826657058459714148465197209540182086461963593187357086092218475185157523508797636703498737703278180410683213161477812359217076008667434279644377145767679389502312060992611472725459883153308981943388144417096861793943621786160828343744632688971458896886318908716976788336009667542068945749315032601812567762481678784624550036911752225548462612310899825437327406960944140537538508917053525691388417269703625604037987741616264793168116176325319445339469715690030779400949739966265013819557796890038897232057345238641365750272021573920780711351871281957104784670347637944061903516323073881713484106648421273423656185155869270002243870893076217799339214837400637921309842699649864780205419914838604555804414649565412329529053308842852476953651144705235857798257059646024886374385540859907009262892308696908066421106245221776427631351342394046106964770820460314476675136326345958007118266070403298719132469329739532517980790977126668833509452269745160713123222640437119937767385652638986018631354242575049964620820327349234452793979136950974556309025886808307548799262375715443237786954982226881814469570219634071895929662989844863242074429876755044667056566794644837813317075965784118342871691321484698453173024704527828591802023502183164507205040259429419210525269880403309770452119244939365619649260477456479423354218011924863844113182493672387313669111834946725734145488860498482840211083768482432823989577628065246896123929921766054956229106020630362139763961307337408002543235382102606808181340186593853257095590795232570804546964577138968821687127935337572798412586355025211551557852856001328181152729646441624215840186138966460586270408080177752732603664389856916173715636682619909275101302473085558426006431405972636508690487343228998195837174241935965447644508580334313903459242909797440167933104929394145730638037932624656534942997228049457021509094279645558465265816684800457167330814547580341452261313583573669266586937148485460691249446057545318189375818025182364701248130986333538666726461085589383042956778686343911607139066479954839543497753593489861324482694104479812039132699284379170009216734797915096246067038794020746589910428248713429838870885780874454523971843990496537041256300966061424453278934779695405637678323739662702375799262818654619761763265372900745362416485913213144028491639614568380902293598527028926838602563855565616113595866122636665691114788303629662800994041430894984378074907111761202115966977106879955842700529990459506191218907051335137336485286284638897880149887875096082414383998110927966256022127526051340366530554853944993814138089739596695820437555586372340902629326646892191978986811700810861561862753294554351851203936265843035642171043534488946399866707472490941913349806292031248427929891127043216107738224734586491262399745012142104857772164175082059812852402716864848983498800987914552363691367591020810693042151905574417778348346522432844264780812889376637387367232304007235574718843847644351171849655136422578280810295332898525728021804407642650324784560133077995980692602853247521687635661068936598916663567367811501746411972815075760949608391331281118330095814573144930204045670942428067204140853985280288880430162571977916760091027595187796941746596999377473471153371561624327130881094456527802655810442678389399223090972288556861695849099904947987610752814361582134172527795092274237875537199566448855117156523849287160509629963727881560684786676683060125330495543808223929851229872665227924357631302953632610216933247028566666110324745289993275075992247583850388823139820494043009267254713949393830242724552736648956227850537899540821340327207471569080151621580858916823301264097125953405762747927707870047927029832420940858842409707704197548858746708719006259889329787971351586326602734987621272012120569741207521241862114802715331028549181165839140868329520348689914636235043293114461037120996851875492859082604246717383513891072034621616019993713026825044910148709498480116720024769646523957868186848899455123912545831924858292956767750220982728854648163278869594866747312031417963132808481696223795898950423409816746791248956491073195843811579098908601400943874076330381689904464713546637388795365509340478651473217334147113136990281058759835662016661310167414648716345809320849451749320668535215597907279463584961308523714378349562012843060030633311697793032905577102306227962091384310369668215004788821266418152110545380699517076970883121015878579657646072406486961584317800306602981102274875166431003556617983076025570106678604665393945943033321481706188763327192774913593498627851980374150738091927401912746235082902137270939172502294779747480623922446282813632798085587189359271715907269373300312647576053316027852511409174086837027215892421660102165791471284607077624659961815345054495349265324946518221756060337388014360711321654579448316605103001969085727161167523129555912961519335551697913401841676427764655270051861582119637294581217906175315508480078795285731104443853732848638293091491333207487950049156146986065726477761266594909060210194624140350573212732441645402940912859807498173351671137138055375023810641406296929500506353572389120014081416626724495647352164181864406186209813665600647254853566005239856132786944059538337592509159316376291363688167021637955473365064691244392530113398955802579503420768895031489636203544104090747311947175951362821631963360777598366008729114430117158661454344272231249309869159658048201071578069668636314750736722419636148182442137114815252935777319974708146526280668182737455460357056929554971615613826294025194562529277323419337241775529122894490193431647527069162365133046571314151538995982954849616305669351209399831446622196180788072721367061781458665154437824151538370698295512456094717845555449271319542929381506536285782028964072282916115558641465781875157458191699255627147098844529268535990938761498183884678051126868909711420744696560159980270024773440787071827570294126280100063349962060043481089895167065738321506601868963093704219893951982003691470208179158766863298511157318995269769096902998825688658861234233725648322514048086867666489691012287937544004609670126277862131348210251626137937163653752755939076696524366641643304608858315543335134066589981923345357155713203531617047108770799907065422505839698066515614451024925204801662596736252594411920392509203006975120200012439986753465591418021911478817993823766224104065513124013128323686263191308326280164835007281474371113403594243037848352163651513466346367338200603036574388560210906275719262643811065663827317434077446751590330186574885141287898095000602026990554964167254812191926961210989870336342853074841799497228673393295637268865497305112457201665853435364225527270240668814814351117274159890394469514125571052357668612850590389121025206184248944686306372490017153720936688134172517327092291201047883911002000972196077980526657259530706614465103817260301609138686505205986597331549587563716563449409050918083266423891314220117690070396620737751250353680870821756759153400660478935894261012822224337615329214309934192783358448557022026556196138282727052939906631081624517200391186870162261152616451636204881145231120462551850599996339101847096927883509552330503317070411413138476824145323416491811786551186395655054993819064880294109516609188224581994437535862763503170719213324193510789372916046083714834434104573877668343337956676675638137976189892851700018722427587115478645594479427552078562022485755115367758089828889215186574366796047082090087258302035470135848097205011839571786546933461960334661566117447950533968172526901533539928623273315881758607650253164688730133993898468347074055833335037060845718664698866677431370241900815861408325536730011101635820730508397131317467605196021930483915730559207265159208963054205604185158845679268873333740767113161897283595664644185714570497650685479806238968174513952249205077514928832906956343562311388952404930219045929159714777299626933174528889567317511525756612240834535284322539323511234685063850602661433032353317750789532585854364989184466612704113903720230371012346652213718061054514467364519052539739021615859445658315702204660622001366266701589813415838719043087671273444655085652829029154153640206714610984935842743794667696637752574878208281406172626886020244745395317206043422496115174659113220292467180004542112700533295882504293184009998203408282564650055323554622169070208271890434741984778699804337634281056622872955422467176116074825271678160716678455129867455808914129303234557845456658993910753016742871765835764107514344706213594006678158313869274994233203927769029808643191463667527728869179633470791124418662856024796786776549915439938801316200814768700957798007143988004225714031999594143202074332263728151014494214137713139118230031215821229865077555215012536205405019757764670583534302753947389532781703614813696050187377415778219268541396861694709390102232363667299417197705756023100421305977371215008476929166819231289733110992654010830342629020892185669335703389153879658186531377898822382422017922752292447168173228547767267838333452380201312834067627992789717960944073234459886017702673168244764425394300110193547780083646545992392536430875823402594720992733738357758643983536270303948284691330118568316555111186328301148031887384777899817463601860125191410436679344141561136311331646459803083094580246163812235205413131518113724875249372920234105701734320549168004422262495203216146712176740042297082371758463569459506086374931239160953517675928720953596301432480927523381504478251493191174868728665537692087052616480933622103237580813938851104945599416965594842776213724639842528093073316514499078003385360858430003335807656441619978287513571658709724291845051254183881456813489452956665557503214601304863960595704613009314457914826563035454162249349089961277321516696731110682009564142162985139845822809476371180715098489688818510575183762284656867936249896196060348768668374776139356991021357427046930273668269897338275941987233759117619991426449105871560565891268587427942095801746831221070482584287600952178953252041637638142947752762059024534693450148686168143760326310958028590663608989429948511544018921364801455919697056253332830244686179406954718295736270170055632403894181420212066561416724139294155637810240295461505274561456186018696226984316777452353061351090374081094718877331490187471076156034587795187637499145621839377768351842771276322171699786829103376725351614657776288523762838298376288544646312860103722953966049415918187735741826570765312567698107433578076445346506173531650296895129781537218839729038135727874574257707096313020551807681803449062716175458265481744404604073094180694859475477903461218071315456655256493004111631948149148571859976751569609381833578792143150534359507519222719001212304374082037454088352402701071140772062665841773846883300457350592666983455611180311133543449407332515134623758141534065957866076532032920793749069144596766524726389487418550470343369333849587907421354814645079248884918801166942387636530759042628057379475486974582436803147119149501337390999653962497941761010590832874680827717545068498687935972880004950154611211141416484793498630552460761276328413776599049739240606595641101473113715331589655143591739178201464183688448516806602839732325574882754958856278322274277215049938787696172598493306216270453187624570362033133316302114026399468296989658482592619917575422506393218758647629950347598379061732731952677019502990673378074529368533966722992100696779076155191647700393250420792093250084548875056965675342401941739753735104794614159693359087093416985312409182281779548455635515315453532298135626437813984663211227844004892229596751022542098831289323853191117490312549277517908502838695520455199255692829715700760992655842111230254475016021720067225233748643872246949330351908663373709434604658859375327870073153073127831059300818263867619715661494263069387385503386989340053916119913464564927240829077551297637482987938003505527859268876351961097293717882217375019518269889131636374440672745388262903494537508432920649045288480146100626813542002169073531212545642918522069755473075896942539844444374858431899691970933606696250852731870456857682049179336944534015204776830968940897803342626432973063036231399934584082705470523513996018864065133420959063929967191305142119930115343775983383437033570140253531689194543556180732840580263229806900576065474018750179516326201869631879902540977110962799874086792886357258917103436385178379484680783334655830367532213095767542750058542638371438058666480347554400439644695847304618493999838086164143661824074210983814011892465805103619932358342009340819553481159538044022137435241632551317583220965755210305435440025934726833139768358420014110191678077219619577296498195241282027653643958967283166956467681821996806140769963393882149468097697377664492025440321650314761657421490249866210163392391016154282247022133283394726138879520483270244389959473414054404612899985776206366216555022285378712811755997126047273395603701457750755015253227644368617729505130065462731938436553790102676760829055243356866254875436872815995214685501710788222879295196810268096378622525417670521670741105970306225742679739076962337123122966735663442260814869611933260121576855195179858824725461837272096961288885605777393956904927895969257482363355423407391585914696178428283739760742102401921306676362019052824898881838931308231479504151795274539010061506833107745457308496079455747400776759683322626809507047404714265574619296921454112554209696735880096493626158930649875581361329780902229760289442730255539984381104140806959008350548021380289630126997671511646070386328400311400605336188645048226830195571208614446167067344013668786616852009858626625040422661144617613214525329352129856511773792465497421706088693953653163049697463509456309734020140016113258038102959970232360570466171085064833766943254566689349991611201439214540763096232752907128534111029409462543653301316990269587819997455437248291250674984534037011762587585880788452461004239574225109034026420849746436972159895390889731790571087061375966719800323314784707269409613788637952541487775720996946740850463535805700476374190586808194479211674991300317352006720749598371469382026394020372127945908705708921809561563427888886166244295859341877685673298061898860841807034131155670793522362132835666473326381591401966079549971542153532063856583277035362593368967626789127913873068275513053481766871304627144550444640602490334651763249324585688024046700223649106431871620653566621083564083026410464110077725378747011038935745625945545929083813619505419018663908041305902783465153330073511276107001167893950547205818192823126749995199118851929291012876809003480381877322258968512125808198131584690988708089887866865266087616896956371342641058220354634979991567879485384867017696648982397834567495462202526710119134722027821860703679734796169540200379062828918678808843836061878547526800010374890693892054259956187105652077247186071536782167285535904531051217523744712502120656628562069361563611306050214807432069710785669313450021504088529537645340717129359391699847528155909336080758193442334339637973556326865997014716941458108960329716576951989478500264524942418712026989617083599809591302157257652219306101429445243408691050522391647658626123493343489323857555640907538766616656378630219908458959683552875665237608628690825128877016156277486724701770101762797368417885262985087535147468078635549967644109380197839514299343389233495022505648770501310274372075298667141867728297181776073626238714984850078947854100483854668436660197586506527516895156502717462635970654036552928748839140965701637664741318894686900944564889859008904176128909074674111490651677377665188337611475610165429146964771675339005360426122683069699968848746038391117404075291367855874987387216974840561414507696554846553397398756928904216496300132516316232957954174550504224742874923098117380866953999115864941983079736339662759044206333145918707523293532544119132724515095878549473689088429249253550013690364964578712886973416242106547139747367123816143444189020998514013139462763306228564205297398006816759246731050589240242802849666715031814791140891737992175504743144952375106443253519867723983952818592501019206617523818093322072734207936720044270731074876339527086354079548497310055505285507707945391201311516717961744259026642963959767530227167743924151630635667473276097720126783356787497211410523354413821295162583946015244920803255561580483556177042838535412833103202206001025938985248307647307302769711379880838165781278929346287318892853256765386138036407570272154790996487402896624820180163501001404964609418430071123640570504052282998182637333394852794606814817972007418168961813631776416367519216285686841911574167840098542389502216893111011631905292746381637811501687169974534982356183374148415726446507410669521606400917433903781448208665972607658529205986944022309568966456364008723833134657267823024742455197142402276370574084362916686017834747425535732350884491303636565360961167528440802140314598776842942608680609588575874855229805369703932659875243769323864663051630899445643378522386704797343580845351888564556697188224462021443416219464250512942595169182685112720199070489866642187235756371520919372813136839259893491356691578714489394478390406453292360539051254019444491642459925131405091634159864057593226293083301912734024667269974611974097182486228370363436404046738213193982364612414493890771867018971308283775550266584973579450465677818241114302739747450405809561536788300242892196419306476944184076049624107298528081156221126843108402846480724823645572114267317999371436498447972856842759137671778775288812172553748730195716080000280924451134947976676552410074070106509589224186197717531849562357752812722261724429517913496565044214258909798154252309904844400128570475652087741409575862044820337837001150710439916657678201057612424196029180481464359410728774132515082167063821393514855255127265550229862282194874302006486511043348899136809928961705276064110290672487732384285058016266347909528117160746021982030025305400921917472102531316454427963607285454677695472204250017243067019372624042896026470449552955251629807573453175533526013263028945988475214102303380815864116082909092219343678918378929422830361330924221734904565957290609722527436242026643734409892787119383081284603349996683191178664226786911756652160853487740135001509002909913279092785744516949295402679541851965354943293147320440996320258046336956045034282788200856834733886319236340628713900025918794535325753198179944091410845657185750673058124716756629421054823203429864732978400661236761033265805150698840450797194440015766552083919564301241591053811934246849356055303750077649748932754789500675127629848548337580145386001567213026256069411960443399359931473090666999719433777775341216650603187262184082370571340742037294257887981147952555344860465330058731296261235075918938551997113836587249674967438812242605935123899274166416293104720352840853153558559129135930144579587239221614575170607887563516069868542500659239479254739248247037296557643197594483046057939271559415213939850156131401678908408117228944291729879758017962497256407416762732375899395321070722603693651397606023927880955550487373329645108201525837354479452199332596669660181544984174545369891538582075738634466567250529726676827731989201826367243757230722151196688879800645057370022571135633236019669328841247792440663694288381176962014830924688816412491260747010422458416397010301047060475656843339464719076026350118620517573970393562937703247317199412834386199377222729301571714379482947622823695011327061128136623290394357174248422527226613840286501478361781683867304306911974061768385760671240928092414652282150225797358411052005308198638340298221308143045657072527225979327454458786204683499488341981680144512644228842277200455983911809528066169296229748645041011912740422621353327312267748286078658668603119408050100824446000389406905772611398696927368907488463879583229395983545142983436279750441300413235108762753488061590451826944216894904615322812101604560241589129527114362707318652242755493643716294364164980671781607355572212293301856314313183176100536146974533120154499605809713303281302521910572253014098423045663825726388765027597701683412411073214088167389925184355638692386882637643954844285668771057129974513750832515380985169410406999355300303320927272254177252123172626314688228977078845968796394812179329814498033038703913008235253306575470345026158173655225909214340619323940885227430428329007153113505908493551140643174074513525338942800417968209968204264991404302630078319865349992215352804194414926950131091609588220633934282191004529086812492834915464162488755526730186715181637678888494206882371528083603878086662601209425753895928719576746727757713234302861766602344623085927741515132168721115402454873482724785623849336345644373679412494733179553776860403189640167712771624949118510738792076742008160844015060341288185976353415501715004031076898147761177989466465247841764834564984199174453774095457617604803015194171311026192777834804340878375598187112397786442890042074117176264638500966452671883408872583192383202516811529035591692971593624656848371922984019964977646974839865883833084477437857284601921200692909593372038206778864629507650017801104631872376666791753681833969425028922702677770497103978240456557419473747720485441467369696244293059059791587277699194534444623798634525605003241535953329989089462398756605571461993720512617898006992569702835571038897875832380139237041509030342578738255695681237612952554158515619264421304507414241547249027631265207361310762434424066784650249073945040829015123613541736406159504215782481063671321980415219552848220477941141838775618983446166935293925765485155051015758965750693355556870344517873898117186627950264140490361617753078135120274598670185123476715041699817011427624718900485280974475164341540083699414278519685974210725031591216258342967870733084019328906595771081583784487988179875339171884880404566577964186415853038806723095351622878912311356836319838621114676537528751124407611079314765367798258437793475471308522200051976727465448029634886232008540270718304122000355602886437732175535558896217033911180176852149595799913825733430735500071424999292025062324138037110081858471144186519358946190529680387181575997887074342741159994271602515324316137454413783976534588863140206501333306862397773778572025748421293124483955043332018903326678919365547658042086129183396957538866539369002696780352387727303469461585081054897232892627065280391159942894836927360778660480492542324838186917445017718017033790671116981583723394468163280392168232255609804112032856839048944281197030518096162103263948113625712906505506021877240508415759443059845207924776757439681961066450179514532389117108235116706304740825741145094653975029149689458551097813299564029109606228464354943636902965220845526120268048564851118422549337831603823588293112912656665929485914084549245487801248644307781380701682316174511464896907156566061299662100588047611119383716142326034198707785991230485008112215391154407025971057041933192521554263948259964870808270948543747638400373154311476675792614877541280912362503852885387455516701204726357130642445001839669764085351849437330953342890944269326257926025434169671502101406387218851427538802986540597292387999886465271466749976385543214885371220303543494892631442736111579557021458638228947879131735092513315325926638954413280595055923429437299073121648386295664631025183563564990755167255044081892687774999893933283316557355726711984045469789551641641643771612896601171193040773139867013906297061010689798238130213782488209236581118731924322290233478034652003186138343882440222098869070454047304043733921608910822086729657298121440504064311034352487926504648727313242611247896993759700344403757593355223591771524983413997927038912270989159081777665004087554368739248779248863344848493823854914599030641334492109739283074934209820805161668724768819330158619663701539305714245106159785971547794311810326983949093758096281736601113965462939816230807085662653574986203020478678195018929826868218440628525232162230789013165757179995390971495749161607509285262655022821027049691297873154234034914920073943006250398278211028945072666491087198516184144326097001898484746707218423432365905760170985348147638370081679708464007796697819244140879632753453870845753310730802057862652885928454714484827902205009207234866330743242513974860401794414682997786665391763956583840348741995645562047587835664441547280905613917942027691266485867112103716111984481899064529122432718292230086784615963322749543817429997368451710711911166480923633625128795587361530868144509338757553089917620598368750278705808956848857256595984885725202482086007106438898909135379076243422999561275499988139429306418845981265832792584849800260667304701091724354395098412170219572281832146991203592994244823343076444800911699300387476822065775403145514484322971403725502310470077169761823939883647976839885898523929181501728754440648812051339849260347692573120531454727748916615826251292704426459495753385586877183163450695008462895466834464449375380431097406743480934029397518099070833519046554133770220067535196678274977309946770622028285065178664017955098113323785675823111145408607528099715439438612434702483511601523253785147579812891490333997636277323352062850391094746381565115522049412983759322824163224196390041730690512972436573961961438136027568073399394824905560612962225280377738196324995455472801037182704471689143970462707400991254634262624684903429714897306631322103910958576189503846509295541654019949579779357152785711346229650300730331486147353673548693131238359804302693548678327732660196279553454802707279999430905565506264793684043836723384211657213727827565428036211791996192228725999865136136244078239464846228476289043936411424464656098010746325811027636666317623574579007393382164384377217733633932127913479249605275749227848639015815534988434275399815306341585105248909695128875935863610053994588587072696903777261498638476479195691298233724513520911911382349223524032738556161312884108582322870745439480931814560776411189468636408817290618358952643932109246553727215117814281216279006251230424654082746591848916781844707728076567267675344657707193362133747462000226606908293413927946137794457205540181676491345393871580366213108616390544351019973230254721714552373747126952739318420093952007091528118015276930146314182530051261299962749696272938159968541374616456287424140942716709644892349762293616609911442683529099025522428742670196652769368881727769437870086493737936883001843214605743739142690664718002705205414319109305474069869074915301399923531736768695440871527412678172996882288131184479707033499304597484288155937439503606663423527227392100488104914010869127102049731935053671832523932892914430107929499026954737917582800938373654053984942818600095768586103970619316654795155765780663315775432745922663914625737049730824043858166546686937048085641280010678196203504020587654645670698166059127489195035293945131599954723332304709147420520877176103888865240131463882994251172470567447798732911027160037395630082419592827099065169952505044329631178078207356769630104217578871759893655755679166466430950415668506798109774087401305887448252475631783800758530589205039351948873413946135930269896229724655717786972983372680192129382083947010506842153897187239410407009011926536648514888655601229318421529965486633242036173460529955199906758977743265696040887375262981658901530791415884653003617847639410438987495379914801430032951902744323944845993256294934657619460085134471650653541201191942034590503194866546343736479261635608458819639283868870950482827400065045676501850733444232649541723147160451805912171609413513959497623901441954203651975652974969567341742250046953673049197570498589317361170658432294909284362086097036439652694167626642133315650547160116332907493432600983178838337785816366071736346120833901552302219884822441290939493280950768609482760287395970961764953393047360868661542836868723478927306633051237795163210304885747649386585873909866116952184087636579043800672356432065969852650220839089982028223092088702832569298541155448668557969546517508453918714702635835972159175564309006820617529606059910015229486353503902951791914632170825010899479648300365273205301442064215933141616755401893743056546998769742874071319770773071268278084377264957984180902836285039583805737193994118163906569554007845345491920703214792082595620520986821101806613163820828330804507314885051475945906672636457684176597846377397010405152256071204971515119516518393020671915003167766044604664735600095930063897269397566406274342982458453670537869468325924038351768588041875413879325542063133122788660802003068490122792457046282364574110160022772874600600278523158369906869310686057024456963959307118062558266034577184186303591766878646528628057184326378587208810779046707837316589888498522191951612612097116381141953473295603801386700376932834967508749190375992634737498930688698260079855317739439602208247152115771861923256295250567594199571985549189072070577094820661435836419730825690647362655207413739803786732176155415286183544179793183166678324635228253575517751011936467977237336846171225602662154380869787460768607500480669104561142309087817219919953956186691135811894510455652767051632707835483274326513836695926373615256680827745945522624550436791913431901780115043172452122882940195172661274787387882442629831949296072980274741347983475797822157201118453386802497977298049775355520855083967203108585438280293722256903603162782602995961531066012556026511494650991933397407380252368556123635620161104917614751981358346524036011210328552066828994308637351932781118358943760816680304718652477516918961349450860940807559860009482050390184816662295280989482337608385527178880076940622345522935925455056206801335031908745785107682917626909592538590142424964578878490802595035164624948490424213345129186498258967318828536416447740121999414641499854054096452941639182925164731490924252071131885721281272356207245883048324046407187652815818964180048635463792927756890373666304814507934347090786485216101582563015769894461563183432281399986283355689597116738879643293802581032162856700553606347735506159308847786141476669526773019536375432106281278586041721805373172358671853360915367754833078111160721537303025832347477662423117497961421563338072320827519110387556546655898245297120180419246803749945520794805974985912825897933759121145787298043910317483919614118686429931502339478098165566925752418106036836321949066192176521364270507922373016758807591514899293457239727883582634700691127911563938372628878745079705615526057653827096154802230710083143438392606313769818817703247338111160797113843026811471625149838843828085036018243741689937627469319304847426116311255344530556087625835430657984127003862226627589781307069495928572840455798273135766545607171155128776752219709730716438386646979040273997032859375958016126911423181796566496706759914185670350557913504274355878645618065336477608033428102403247732620282317892534828367739135335208845669956409002968443936268813558073153509994575949914042124169930877356685439550441753310793425519468766269885557216661489106477532360143349246587747384301860449626632295719518561341488185635567459358028730580387041409281990762779426405842897607852852390558084567373447235881247420229924806177375186010902555715575089823585698777705281864683606473478580359228992607272170102723030058207657913226514044704114833159555250823341542868154290419411254035066188389933475844261954149080078902649499230700259484661253062392010470333198735650071323266294157356653995587585612517114216357538523553997871878377235960402948309517668313229428000194592802065148030677684525597480600901835057717503935988193665484860791702114928742104776939751219913296446125212443026543835701870524599992800172124135449781811752871165219289312811326117837200036510243048537451077899724993903614607717362631003261155236272013371663116043576539309422586757577128108949768374903478056054977192380626235277652608551112270646262325316023129787041099419958929015613692614309649690704380392759155469688331498952754892501720790230329670246072867263779666690608798199256835925516096723813817871938761208530994587619429881038390935622575146311805790485032280416841703757017627044277485391404200852141932001108924046121346540429596314365487395113271154398541108260119103801021811811821334224825271291486617901479620267248102468711317503304623732015886177630424626401932839414434753338578639570689910147005881699706113040510920241560190275448601088628014500465692273307942311409501458554514086259474847385276768038797449087101726337836350383039702483460285071801954839349904121738051268181758050121138408339135123519033242502319958784519440804142085811208885190477874061452389023733515887465072257792015886991280314535403884409503010542572510790506801549773032688342755931105619811796191415114731033297330784789602124025515414016685542441015845847191299106880227102441392086696839370228581332690056381729204038660801598940841670479610315978287604245755394240975768160291475896838276303877635669742635233545735318887123948273389765232051251863837805385069303114128731977652764210168205088472075680311045270423742842229260012793157485300615621055032921535669786699578163104872773324710106006867337045833078996749507398456164127242840469522632623576732084331115975765431438190522133071580473031932468594472620778654850300842220353133294780550533076291306227556044569413109767110133901963163858053343403456224211884605566640676383669109451161262090636549517510004309038628347701199022791322660502381618628735830700889254327752038843052934828691185136953680217772684935786740694601516335104900881902638942298638953740549096241949014778233541439704742531505205611496404694742458962916109077100072728880812948730517586267859844655016983648156112092563349391199624386649822903873929905320399230261371836425197246502120062994322619116219774942786793984078030405393415377651535104881280864896120832237876501623894683446856926575293980766727943865269919818255437301852828358972733784758304846693338554283182064519356754879718622359173430329755330216319359748843683778893440003186525591745050211759937504198758231417666573096656078808710633356039316044567598180665029555225956151005249640697179483172742856797964710958517831648770652221259274058055253810469454822306384809552583832642177204680204390630051060214218628125743268977756085547917896484712501084876064740927899146674225493543143570019530860520609781064649418107742397914842539604243357405587773271711343871567145296455768785176386061852896103549730582589120091575216902658802087884563516098828775854163811348315943740490305430749923290031632749649561279300897122935663762999796925050207105059603587888489548237552043919175112081011853605481816940317350110014546463839790536356180832145765926817236316327263867493155367003714483282657245189907640426074084089485713427242824703398466784934865515082606762437097380440949873709707683627446062883128047051445637001106503287581894319785146016892150823019795092455105998759569304824231162426904754767087396072483122634934482621856617873311801572754964850164923049525997980117199058973038225012772077679699278648023814601121957101129491480489222905708428940053891735712683430517347090296840641916216602463776993587162987625713953693838289067627958202562569843910314348302167132979688228483636159405877116677441707565343340697120927335075005653680610848890751886718815496898300485763413811154948590691892893965246358009954996888448996814103247525727647283570233595824470389047181883465499797547150246898688148180797052271049926878435397508069703597399053116840457710344979786543614203980952944368939586955489067732261500439807795854641537321092905582364845033266569234282176692941279455155800292383084480107239498607456531576618556965992031739838074175459404547531663497756941983774725953685686128575982307651684845323008585173858002152906339883577458747077409418206081665681043085772962032360956638437616166953425757631173113300877273760310951871904194523265026229485127845859391774539762232121650109647867576503155264932143199587492964957269396243352936562594532754378035328214663842101937908357453411935209092234276161753819331936922693027550831672578767019618594640155574448528959099643999228369754166418310157334926761923045012309777876691828977535561051833133802083292291505195775719528843674091954916658836482659706943814051640220217876706228001433336141514529050457548921044397674751333463238241618399288378709423547762002672476045481300910441418061367284792194450493476775350840277793604130111766314663611351199395412463032924006521113309799565629812341457675118469364180591873924539727390441340296665639784461354841077474028445357489850341039771761062951617241635393822069808852544829769789839856089148431164680322516216865832301328012364184876279950562526482021331671711124366264819099095274182511845024686657003772743500243334161278008920792021511607614519287919347199407002119198198201176636322986508201500274299180296642950677368603672717673246789976111663883863998691167898250607480416442943390626006480464983292349731705161280051991457702320987259603880594126465630961485834048198174003940286079909579677510296038411165959347031120194596615454785990971337254285065637117323448983416945166323360415043668323308384104344176204575664202669509822908977525543470103243950692952038520828374892759517063792300443794141802432509569404397212631806830839525962196345904033785151583392678139167985941571301327503791761828899494639279435097293626267024179557128423440892436587140170606603150892076519820488283368584147087056066378749144903203225398294009427083276425178072040670001955445392552824927242950190515651010061137838359822739695854413771193727289534021396610262965689323689129128568901905027125041771845234389281401908473038777524501656788067676504971034574811970286219227150627048642869896537119594352887472170495900981739406885788496199538698999822542094090214396943514030939172632712264470509036168396195304422619834230609287221671852603879572391955844756533445222395913915220039468780662938509762211611185781123300327242571500746699880201358948293128895128754281338894642006678195482294016807470390859828986188715989090516672781783861333300943616226726554253802807306237520699464835790657162592678372915734148287842023457823715203980056585019530260090464839215040692247560908854744105562837410864300424991140730977168560349571356901446296030875012379139037813942994321754112543453252108996518290868519789520134785854014850059870921897546264220532548899000613794230807597779932762923969435925299945736402000570686811004763357496669058283865019910848502701739421159038076656967478721429714141604827235137759899604586580837871712516602265089172644654832263682786799820373442465699314773061245991403911473483729451271427205091846533659011860803634257941792516994649651770896761919024377892366496940116171549867718665793309034942648902289399487601658054843645500796452049134941070079198535917886618823647614403748801680594801990147339088112366115151430849111352001212073197047766237907326113391440225159040080426146086229922171675387952320415565161234738020349735338088765521179198941818206459077246417501275972853534558057171541839678453471928751361800343455102767318690884267107769017237540588871692602291972907196798860860999462091428063113020965589057253027068367865450867710566914587281647379200002431360004263328750192943201654750713971739821079656400682277891083286439261781973331342683688183102052428002639148028821568277973206556487447888069928161310950274416310265733764086430708214331579308177388458164838146860774134503915192854846308377579867284118892335009262728455805733968551859686005084975338401496523682929507035930154240051599881623657445420974180735518125026410880200578679980536780656516596570312388178164546396416799163552788665409783862178525011120319263068479229047607343575370122881017948740301175845788270446825184200889868616657430659288400014688399257635771275034800813637062536848320560519972257443054018139387590523960801825823102429164615267266379822034622871204129447035957293056628799871363904500570320307249491473084692608582780104592266511973936473217700069194062188003814310048591287554467458858287196984732203222751069548604957144853833265038141166884449230671070042020805847987158868223265476387515662438755286083521874843081493741237822192993112215210427140949724334400277646079623362719587079069831207542904572412911053448787920777795775141973208411039415915468482093995266934563592105384460143484754012765384891332812345917484122190688407113386104527211438665898558976886918629106147195738759118787341554807584149123822365477729899986918305419319421762340250919551929777304532529609790844315285907135948312748743958652070611558996982575773127375452886281620472190366285824253140497360902154601007456550271459720325908765160381235086901310444392178665107789478873624547632973799028557881617573145634817674644228078375577375753236379255683653564374058708168036525060538511927499362841649420542938521541752178590274968787321948874326116563618527279528071059000570734487984481591192414486653738274617701089330135618190734987818638829281457756832573590847408962902903064722348645322139856349089912534431738476284442137350399952271758336261966534767589997878251568022734980933542279938929726396153061518091969930570642958712954413989775524958941340417603971816789189735539519159111259283122953950545851998454475561586583353601912922771048849348418189879831749726871937341811923870829929395002686564217772848565333523529507500046903971388103631009357564915207818977045766465931874040651941593624039450117317820447167481356978348108176651754269710956329254549624618839879435247546571833097976593005764953665316328924574050090888599545697031540005999280879928628432641554563073809493892535481562360569218375745661552553294853605316710363015645200819131171299385153685287287027965443750587879774249447153220726210502899988617260637321325813873712233869024443608072705755803757331791860511136980880692497979781556506004260101458720382469597203823321758460282718492877919321223464390527501524695918719253433532825029593797115602573872161086515181301404348300265608090554825920465664154541796275291742793805115854390479508118698709302794122370369570590542041555920726523585013481162492858321647182191466453604296912541366961104585693820721637616182273334965559729553622551026774495498109430847968580068279569812678542320442133975862717690629198750544566225168642813281838433208260846819211666825217178786670899236232875410346478114351406064540743443905559021462672015210147090919186690993071924915214854811316354398549733104552997378285288976538156095856530920819836580363102393527247799846788276626074634178288052165599387426226128642015079151340439942517669004446960690005182517809732014867155278963513743683835056219995774107854289052285445832581902243408486854532376395326050846060883186115916649515520887274399112039024242858837094510088228565119930762608901699911450552734334870622188853799663828034025153112168764440981194450495072131642460355834643536451275443944941679315991985725244135451940260975279635576006296434010858384392127909742468148383945430211632556102870671319346503730792778324874945244072788690849390699296654736007903904798515259369018085945142364941272443982410238961040767496996070095447908304059110702024877267245449286642729474601693105600039597136800068891680276383117737976910167522446439168066489110474065300145128974679595492312036068678972980089375579211960522585684645100552247659504670178754163658370119554731153226416674184797541229140216476641208160929292402218267343250263703430769579804377387655632812008323321003538680172319624972335742353689612791620504975703516637283359241264698827549043014798226293464473276820977674902908161568533550727147293041684001290845944883564062606400051480890249261527118550084226333797197727675913730237513674483980169793668650981761051300861254066607511559607750949232865759049199922196154977374622118771809475526566708389501827219436023717532320238599207091174052914404264295050523421118315284478061950377498889016194310180910250931323046150202159307571349066258367515794121492651133080141883968347900512743509438541973074035797609115004453532902966347450714289413159971307893744573013454003104316076682108138512416570390569143257466289430962587360210759253545184725468895049443992225456527295066549266416478220553476521466194997693519140809615975596097090448918430119944852625840883821434808560846359033069605995066696751750314527084340565314667689094861019573709064195792778155476547216186944170196347464938507522114683390411714537876201201972156782942994792161383653766647350369958398359787578383294410985786491016291765451606553605717651144083056017680042290468729195757173588829743976644883400180198310618715212976441927906500888361967248209504014838443802482281442618299347994944308923904282725860962483086283944022683922966508373024641028340516748596957349283840884711612752841590514422189550842000441023377857214148007465350463943978969121213808631897604678509760881641255344031851336646297149902303601848461410215328815421233485413017838353708948108107129482166312658274420492491402261827922648342471703993527737688777597425320384541021349958421609687447112001658492966501485930337787442165157984183894035165709836920071186812964267024026504675822661801138727962473375050537719887089494750449154095044928792426024847343780831798357519112805120599684553200385675326368707327682951754728828607493264579820223120485813458563458795434271107758938797673587124811990257039803992222581704088761960393614743668954912304410523873220358048293111788263541810455299754960025320569420362129319360535824052482804047247200900445606162833082081780819082629847172733143419813909087583626051743329163057879240466804064418898883346209540890939199548481233366836905196958611088298859371289138035218983815247718053065979118177793428497780398989794279217048438737424316556826072968109862387287908379220927017715974187530625630556650266022406338763838941846178288984970217238587150090071822293370243093534223940379414077324873663799142673583755825853583481269773660780023015137333105139965958282854184076994937806040573434129216867646808785375396184619483847756949023031975581237678304755602962633446195138387463239956709312733676791739236047804599894031238052860456897487679715188830655950933084952020213965162262549701736031907297792534302517109909993807095754183041400803062577243183034132943507543367855859114854116018431140170130127538531382387534194512785676894064326851389582654280291383134003812081828611573291248823007853330280370686701701214722893065446520392784858956626854251463053316230866458685362393203003318453090661954455181411043182907467273808444560739612240813613534932754864247505831963267775020360203016829787968219646337281621670599349932708970581390741190317466170431259880088322641576389198076699814443591857761528596056877955212916069046382942089006705813948648706915744519890869480151729745203854005951866009454387205836617026437893765141374597566824099646783996800183904735461467573993158989069111033090805388420967562281293080531584381407100922246996444564097761185057912908821537554072174904001036897911690202203207968192603402429297951678037018043488566257696758689101710371959744789597419558510994525322550574738026610037225793084744142917553327285501830857889301743841378666816977358126185942156316348350748017404855531313612834456144842065567226835357949111505321967068024041947443514239968725713674475246808915569050413030167042529760477116046878947377139619966004095818508656722242565481847476959713898728968713625032918861210670552804942121638000930681335765114107113851236593780963091670149595461156185432846960027066611534191735087426225347571882685880275981778953694892304681379816226141648273661739902223660048281614014926537012396661587102838280238155958909803206514351689421510406638211367045822070347841186695208827421165637549451608783613599417090174320896399364170460750214821563635692980812015489881821718297619103733875000003643394051622600328385008888891334449958258813302448823991872289955405269242877962153923921154282896764811165829967563661389387724229309922348536209873389598881851253052068539259457292322642744737983978288181962330026091752022123538009732766649962520453696319261089424450349514431411703802365721493228167564290924252542920045918614017779382713568237280730213307908947150426683149786757630628820012012040138707493811584189279229206470291730843113531679201411701052681894117593031790463509144052089809267747956335891662348805214240532477153235849741086569826613270208389570932081350902619650722904358696578116525457455934307100334700155908962942311571505091361688774629901376198917452405120624581141878353829082310022771715317726852375743001167405636463305601582783416024266188366467634060078244538706126071015076860159513801157022108966814440951165346552595314935213530520304174609971543836474906294054609711047036718151905658012662249745490934348114992893345943459417251536084961012356566864370139144395114821924983062304765692637409780456000683137614922886314626930607727418322864583374270185717127182359024533745367690300776508395129776868739318432650661864395411159466406140396929058188186723497620321467628437132728174690748292783413269376675650124998134055894737903030279856355337128048136944016299516285051289303923320609576514622769724001350503812018788838588019565506824766703059747436078432912296440901227067751252319520554072532254999718317089220860607220371857977382447522383125393834205538340028173113577064675879166358594476273147631743876002365179613306108291000767630740187859321998699351458425892355035224310997270950771630613357215017016366844574069952773377953742360059911098939983645565951777508052509304394262920232967936562295581379182283412598998503335155588542026431225408061914791682324831308652480380490171398552889656273613837060309160811549280967363122132197017324756395281062860863780157014177942203048172803510483477562403744122145074052444277139749973711855946091048068635280329228594769622319156831384832865300174422832616139735957084242058055354577228003991454756840284739172089797552454237777274183709498409771582243740215153572990714102497922629948406892132567984206440382487631387382426933728781453978831152143158153833930192232570259971001457298167061600496513733134540020457762062021022577780285207506736154769526530521350572754255732749134959695531277325103510653583952880733776142587588918684499230675986906313306244904825065113038170579320776861728841518929476300206314581151605452176687949808581383624881764835453654184875077674164310000072524322299365810390934529548849885936019014714886458576520333811377813359747478595314428463612706364155553940814382627581010190329972152572408293773729990302718602916934904477060809576889897306507344140424131033730461335358834568593024269853547071472933607951183974707365286540620779383109807395890066098664623433300185362953609766498626231186866193790622266878966922704864757716218044122174386741857437253194536762040052204015901908145242544126089291779286620109624830149830771299979861866471763931898336914884433148622396363160983916379666808385517836035076007015189665862756483299723476427302078606820242957012610666967416819701722118831391669461695384997472053348457251171789939315065502537901527766589621164533227145194127957731691856516464397777958455077989936724962962579712525031704869400142783465266720330584741800951201392171469991123224303117364598599641558705492312912536185083828894368002078698654013527578066251967022709875603110023285452184924036274931439742121605401418731498823990049657150962623807289474343313122571431519274247747101652362477341162789204959014389877148667217908232706204425292561347498047978811898327275130751713391674678941973030418747753137973139373028853131318016766176993412435669210800373992044934767141130690787557182713548875751082486282959548130101705846730532933475888760911857869396868177158157799279547939535266041031938855488145533000578848988403693852176515944767393886152431019728943844939500048536244590142942547608872519957692445858082861864746771670346979820047702960929661477999626271314548248787096484647875271194624926143397444840483158660451102309599265620570007074446338217488441636554575032695688374476061567978405045243612383291941576748276549668618589816773501782300205799457100039908569239008614196565978739117995355669135283362391358324273494854538305193040760808034926650429592546818911578801097625777938813792621441919043268490501897974879707285635782937239204355696942344650589952950720251893769500767140416695370646646894702058046868519641248263502925914601555655811584835530889383110567374925620200676291069941931777358520567706560926904885277713075783314763616712519636394123157793076780527951417112455834732282493517914597779703838486150431626810189972681122593908197510683210231437555240019322240153355690562693854417537503780616660562977981079044151200601176991437714295789219156264302548286560185681047385384979661423746877551872502680104898294824181577704053361576166954126502068674247904210194602885124827968398334888593808119034798944748192923409621123820018105935760552064631699204899985041846150487667950416506201202819369083558209834072871293628020780360573877662082014599097733934787995956006117245477378651412445418514041249944139964236239617850244549693203611985634420119879972291471053860446385027994096253884386899594737055138900288524832537785824680632581512940183223175232596503487744273683572451559206184944783027642942714440770285411067598305045713797823303451939544693703138381097948313873426491820253229590522320834109602182798501873355561011308193271501044052926257650377883843286952080529420245174235588300552648093813449592355349787431974193571057909081170897233678209708508303902619312934556479904372880361154884245071024000031118439036863350550257106498126133704780000940715524177341364430961120824817614793848093315679578064759542687495586120760932015399886158463567004884504600951189060588314034925154541874350007823169526105868767872210794447342121168458404756907012185941773070230134145220002728855806849596897558185741782596040608165008575131068808854357512291879398877467011729691813131142649230102793257509199169161440872567284336470498191563972409600980809620515078776870596906921793721983481364836184206260923808622518944319268964851765293769533865090934168834832533753140647425747538091455983510844488997845804373049782549384853074312163772658732092464169450433048640067302289644332542837524559026818992958568028789977504904162931015967782455867684005322488475830298648276760566609353129063828230209157017679581015493970458770564377909344493856450412090675922934381889261795047558500286082037990364744123250325765571774625394648670287681101474009912992493045559365227514526916923533236107751178582030933923641380397591233457350886871509674956738355057543426717819660055564118141506675738552621812758748249297842825908379443166315085086935714282548358445138915933156002281036464601744730023292086866290359315037645805468810438930311782935367298313084995923526972098449631695539077347507065355640189599098748018824475867057860490312536615520866117880699666561511112591130192152707064938098938853465119485292321261737992110436669171284003263446913430737171977759555799147898753985925224210212181438822469489386652482971090925778413418093988291961549104356904740684286828017494246957225857913384463247421586073729421179538073143625171263977013533405893693773838327844896837720776094408485289862506878565846232046743448132182424205545060723274493784992963759928578277512360794898578537088305853875098325547480498489909263613716945920684495457897162957365646297394968603287640958774959442429020582010424969048965272987058123902968713220323451983685907486686820034330859849424268136748465982224488592002645899322517116054156278026892864331136634363427421543846777483495424733620122575834731940579457182923594561376288886345356574270656349691623625732088345120048052776287371245421028076482373013283821889307338636808733798107102053929312415316549063283554429054655409229515236313915219169013109892934730719656715614457415144935572003760928582096121255661217452500115384471362913423922665413978663278028842126204412351632239210259212216540006715584293721958387490586723752136143110640550471391328500424984518992378824174233351299974803855471927900992609634234741141778056323097214753741097430999627829952799307240671891808505235905994536170847338844658913344083638978836222927649765617073160735474633879421385286387429141897737437269255776423101059644524662572807427079227017754328659811775367522826786815466902517171747592023172984961303768635503616180951382200252706342112333677682616288274042138751110965819996223946502375537692639688598371494803152513446969095274923079090135903373511861053846790337328487181358641752579584021919207112222619104122501920950753911206389214157270217427570896544948479928658006750506023828272616331566116501504599442419037314183769730672243158354886570930805325675071785978836057362860953965700160222313769571251165780593701637550681417884065936841872030011906794909356513977914068165100476816926977116024468656131559345095521262220481764345263869217978122170991080835357538530828624748470913336759867588155237325376779983949620068587610884228344623192084748085038516742517260377155294479065096200267665679539991534702173858190995744463594448612189805000994286955499816807851160827253425264793290528012057872077266849383827541834094671466187717635628351530426279571698013111061239229836860643408099229885490540757932747565348769244978239077216581699305271590507091855031475917917558483620110849007691233819351926762581354763489129340265431485261158741673132721262152755165889851572969778536507397285234700049172863618066541553940545762449368392471230883289826463578253908187298574000175553678152889772300619411195189298806247495931065653603635758912780407730514266437344422607923630875235202089956869454815039163155578581541664536332941078131546385969545497032263525624476381377030828244007335293280874553376757306132710487815210312667628758458713958217641883226806842776723265959377406243619164165738895551551948843188845223271172361625264104622297964583197342654589820421234914432920916546546865717063336454438900149204966129952737274662101278956758315284859933967537135176361557553738238953451870830325127943735712315458701331092519926653347703841928890840301015415877289442451612238663104729777627107896784338256613381465513183859139074962870929751712609570288222701073561519582175978005833990705396121480163021989442319488664888226946001594868648481309200180912016614401932414996218535092202923773635783337577522187685039392066597932366048220320079324248646652244199470547655576708204077383821167489716364216268380276103555666308399143374682604915121274938382119111329182626290488568892655165837547172613116812269729999427990406247070343164755964116819492187490995663230424279043629935218215796641926928377843578095441782107660014500208924702155402050351376975700186445013783755138409760674174254678414444617586831754819919288931718874991299100587080609510155663150651110771665436158373967415534262824585274685061532834668338164285872792858283931553737658483249874332773779619815721109842079458615807274837763790031501420240932839468174577636345659465827975543497202339532467670767918939532173376722706129086533320922250163781690905723950420784174662814423876184767852113330461118044385277958527643529245856401343790133422422894045223585574971380449473342246381053100284796778916230071706129106148158023075200896142820517568764288978250723649342901512223215559988184710486085109163613392879663741733119590985477711252408616206682966777510378980787761461865891777559287641282277257835819718827688443354086373287412690017141346702981864228782793013976323227698502451285302313546270255207976772911093308347316737924043218993853132694826922295155831700416990328791963105106328416182235090996748417649568640817435735861376655643214134075318997537012366916726613092396944947250801949515187176944710891353609957030372884563664431719656147043073062881229933163156048444516277087399254274655712552752536640617993577445438416979240055294204984283764341371326499686809100919126890553975724015491718590202371503871484694924461470278029139155992360848900128687540839368138332545713914089160586144285781486543241925497100353340014751436208306079844753240508407771323596259922854962071968884149628962488086650990052677026204030199900262342595057289897295453392592255257443256904433594863653303393705235546746599953643523977462102660063203251556009401774306970947414537000354437640982590334899716558610883613388542369667259776548495777363943023593527234310215013424741321200039962464869776112810130297486822911573986939841562457628930545475781185911248148466431921721742820861516637303896550368630129966685597464196551152049828836581037063331016364720550547425444517997619750701814195998393770342849732109712579305392697271101047793983258755140442672232245276882295307728151944205241320769319055685337877132298875559188398372654043337893625281480970132094137052191565316458627291257669460453528341786640886380310701507120709620200591278473307913979465725417943372382407414688669848062587057420934505066708620869212410267178941022762580087283241512332541578959786400561237220856924186209895731926911505401001485274366613575485956778083145557603875799638789054109419498661017787791173609076451022633685337860796303945743190066516883731452594476220209043474357435829805227236182034312667112820220313606972127183695084071079480921216756690742336473624917438597606895619444491489242081396561713554749425998082300694178399306683998278792620703842249199965895249411081902654381723096003304944344091645324181728405665439146424309122327536485631735260629609676753069028980579245317302285345765602467085476747837029011930244464589367328963894682470648339692492720506762370984648243834429139249133640463428707440420432279950085583547984917595047765284031454609266008484308803549286498740909436252537464937728640089946732315482533441618514073903810359941302183343708823892563677450386887189177596762172615121679066500933643305537913064993029623888391704777879477309300378269749300480578512293186032050562543803538240432025340522960850343138840237459160742358575112984687591448083678359932729895430498510705890700567401352465145826327480493430391289727867919377554927607013704803621816503686604269542260120858589675842563473389210116716259781176183042114786253664624028150085786345182165289665469831078774242978641381062759031318796836389538823978017521236886391173652240134667438878260801572352561990412586975079557434088868280512142900044999124892466637769476072722561870130491531917749617490860171515282580539739290173474740090431196625970971260216576339355221845915707432389749378205334667809862891074869221112841594363426320373668255828837359202228180888327805760720160382675676938988446099918747910112659996048810906073450148947710944865920689475888271341179443589860862258585566484654125204443456196532504199343471900872705848772747785811039204074734808118437314972767556707677719333994005498535886510664868399076370595794776355166307133490416579699904038718832349570659568368181023245057955668350953367027542775274670332778969023990250959284109847877174056405918686060802724423900324202901292759958738405809213383258278803536408156924837310702670932673718918962625482248927883844090191202593874384167908810944038042626317400958604723756104903105964450847655279043520668684718568551704577833915412226519013874615992831390247107975116768916220836235860462693844639943407266549814433875062671199168802879544700359863465285359301715710110023877548859563226610237579272286680737810967931467712314834206586315254803622153439301348458682336498920302879566668706618792540126611330225514520123526291416810901362975822026026322538707247734634617204027481407061559536020951822006745358264631102782626863975832936374461492515722511627290304450845068851636328469708373904654047794021666925775144422463247250292000321481842721269746730008441985552892673885401138769312592662351366826746691691345005908410592400042668130556125444361502075875185649222023605746257872131574519194554726239782427407316877975880224713102909796203244429740185611880290501573258972049563959743572118636653303586065190533976164785990731278184717696027826588461934869248562288444863667922488275594820870084622694776948357449530663422953767194922681937251916813284390162089446287884722064682145076962857942069026636380704254888431726847132440820838188848944363195145253704182251905544877659802697143224985755859072289908226243313234871533291165754162983374136763952266934248687556818204246471015036106871796752249005190908117528411060780014147190578340509434173023126674911626011381803389208988928510438629793516647918037957255108603105189864703895273367660457778994091844942042363292228995313306513141641980839540608351635632537753444302303684885245257791772360618590812706271558426054886599547510256063608753447899933314792093046527365503787271003918142713787051663108994719728144048266546515110475404426609426965195003370923643885851513341691210392351432683087801248825126291337662788131574279687723088060499207278055508501970409357302468506561729822307642533281953532441351936575869068348571892999196468389591107893555320257711945050785538752290150453031312000284531034491103445669224252158445405890710482234165784903472585465084520610119271178762521127944628244537612788820789354779168494696194457708796678880513879539138341885058750422999284062338309442223019088962557500324552264215889778266173697555033857210229078417632232937507599859551745934786651952455794660722610525680989793423806787135210960084390450926750469803557024972148133684040854230721034893198465659400527809391241221738160344001800800173914162643721205447887206464812367573278680168173884308116160938630967308862756286056840693842572777609493625579328416200638226275058699288983371823533749616967523856623654446017178379780982439107650662475957837874987732930737518953000569330658439002853813323757858415991938147036752207737783136787804704118239950518161606459195913034977577628598776471574420413217165076697640563965667976073750233209973440851914071317778030354704969339055229701944488386191114650411785608001464229034519966269714211678373148039243141225454752221864263197678554065771480909249365763063901962856070803593148061405345753229779168196725325462500720487081926163931217223685640033660378026728523486323308299825651707021447178643410504331178599121311753310744222849870370897230137830118188993292627717090637121091775651294695017267265917782089826944797807473320169829232057694615936796402153591369167442572583123548798243753813827340204956125699136741271234630019536138152684877245278579210174665615587762195136067599236387182865774006134091845227445258617744072871054355319280572794693746592919654116790358982283936359021506886724365246599006326782375842591851583512364838149978241419738079722492494817381426613448231254334138835226953875464956275522805516931194804779858382164222221980936575779874974693956944987769959153726044197636834371052259299321281919673221742698972737921694329015368185082959330185942589286730214461044723103279448615345235007108555990913505603886197322399442036760667667648786039027922807092900785433334458726391364276820797005877356905688308967215067434416370499758616344163939182391836291726970591033842013165469316215659537739219410043635916589535989802259009290485160121529228597368954024322639296836854855482214240897330923377401964347448126457068089397080585025528708093547981474165939952824138109704983461563870683370576493380569853438329226265085938023830439494100380607114234404572499246290761699467732048493071726698798365649660572477647034164846968312397467192136378992268674264460941548137439164763284824537722753190186612279512856088689467630877791773381992389549076538155318400450810360514101088817827448977126823142150154819866860290959186307133952726444234892614697549762048886089890604989047777211490305061909594016347360903464856981708801714178516103126044089429576606325470438000665253953495108377667189833234403811727153132238143960327886536355217279648964393859588121929020155746907078323128642883205385721374751949011627301786484580312227924553599890054762789014001672503140944321099876239180007160457085880685268204457352464074669045647101637337556863575850205373409927105865202770819255647645568313679698933359331671041344645088200296752964821171512177973250909810106808978435958019014936321546207912504199346667331398391978635969040719682557000428144802247553202005898574412422662980609068578292513480133235913060657026362322934831331112436781373816823062702919362436828574299388678596610343058255219654108835741250786664419344539136709579172181847706677291150332422652431152974610845294054094051958745555990905831893262139974774045933901924509312575482823107641563174306073053272850061554959890109696475346338901633118533367632136561691281245501578809887328219810355643863399070256904658194736029110399987685820357866883290224220008486119869016838107697980751474542577933640411965864990263888263029682317174387159966810898679237410854454243444556816607710326930612432331255488824542064109686670814848256683423411509307642689077324870502044301189528192384889285280978064758614888112214491719317840227320619653710512237571167513320670269380607091943494734852523540799810510615507530825163684381025109098071272307476963877803216891600674087440726185193783966181303907451281042703528748610941749557271065658866680403846688306958970204255744889040368351008913474266590979780451684370488757391382342469875296748397997663285271147158551371459664043395912139492864250893127431724670742270095997025254292265512996333683697235791894522619477189698649329683331474299429494424559209334185887717604200391432606685557810855558432258970165150559277767553415273258989828707111929192760008736994663262070090087989262040196647987857125884900844007672017763590410327267275443970889271404675959976596975423419280290768362184238955837903593356390572260126590221066781311290852456860696940186603707231300029978698996025026240933661017487765147852149025378794630270297505238187596280628487496595308519592653652312838296311723773593027336102261421330136158071110273186385999949020668282285358398665635703284934829510989947654589407868601966336587323836717342187477043108508602297586623497753912906310765259668099451568369043713470800931756366414749607921312260262913339124041556641048613995941154674106227142966228075925243461900226389211336971616851085417644478573723295326027100213989774847550204788447832008371171055554607493070806824290884243089531085544445231552254411697767733940162137789534877087401752378170511758843499380988979577270662736870353750824309680633354741196395874492834234100626378153312370551613802461179908898778366889921825589468363934988342606462496270375399388272046871778574719704343543217739251456604497842998239527550391905505364128610333390517194104325261935342175867883769356836030426507822084225113731733033095981970288374976468963893139035501443139662234503452597675384115460462038984826488817179332066461392207434792642262273499415642826395589220210163477001109051583739208009737753937781523803874233701634706568010502718135571672057181212144704788912759189351155561089111296934116858101477164570234733542066500447825568799692340863716937668089848414989962092467165135928183744434553196124265853621828989964990212746529690233426507519966193804960660251071832849358759474598098672504493747216917784924663828922130342077791246744994861285342723111296401364791309777111472575357650871180397708064089328498518931352213230006112811639547187641700971581421651949695996783177246727945027309447681635675057139135624223267584098810763551590045100424700564620905850687250546615849798885910674894596160966541896883901103805544320012346381974704851138384514621024579554461739721944384101091850102314472881552130405365713487150307093336869972834816443123833540407327373269649905252546294112707559083350134608660242393829878966950697469028979607290438033322847573337517727690685081059152547180736542087735090735535471339217838315296342270975496392361886292757281609088150357050926703016579883655251503806722641002591877240885690983386163755662877502648201198900020279410383499098357968351505421796622776526890587479497143476705582450775878912209230936799071570864186187335293569985043321590903511144244748108262005631881969886315591711290942966837068044010130075657393910682735817217665216441473193638510461266178793459905649501150259616780242638689866638934374825007136689458324697952027790445458889840229077156926925356506824402819237734465603133919246823709074477215490141737428990384750649664554637375914839818161900034685462511341923623819002390447163826155659799034648650428331127407081735707231271977803515813575298066284210317431480811920281412209478848469232946106577253564449617597959574815225109706921310779202671732408782328233636722321029382259142955556105950650557230171996248179596573484496260163996375572775827909391012817967768795843254746963201100699005665717478290103257734674833847416317449521296402879411212368095397557079976948300305474048580019595896805525616058472808331129349375685961985279646540312884494294184006708516336437946608261040181439947806521639543244997619014389795179675430120376643522396669305745682566058376271369551169619251478028444856782137710332849958979817144569217510814097711561926743337484496115289682951212543705448014557223190555786787037136048275399052185509333315594471968471575373285713149936225311566094757306446056838039863090546050951005976321288818106138914997777369828713380590719803658801440487838330938915021303223378312758337997080058363605981125904138239203923157744408353605791356482213876871305643997200198933043299024396407821194221359319567860796301617102750162489922021787596928935715893820875952475507603063595148917511882444376159519133080179359173148221779546897545144729322593326402091861960074181081901104827645193218459621019470772105275588548331026497940461703572893417258160485651080441139276867993026402705191064568680392174338537424767799099905128418581942266218205027026460055366888846855068668233222257744216995935766111745383286955288811799392801472383186969902276189160766559012245294516739532714987304763312765097336877528671643543999295769818899952106310352163744442559207030346962715625764356377957559662027046926035535886922925197258562860535987723568520363242382386972682604237064467372052402305102956562833681035786128812688367563174997167835858860928282493030479794432873920173186271433113625949805196608929789798190387887254877736131447684117483546396341633699401442003277912667168623650245077867606446974551776074979028087934789786092029015476430851532074690976950497135222773062321454136789786222681655806115065340887222290483748485683102396061264630226109788095736880676991637704591588262277268086783738289428649599746512504903730665394981986901177533544096434297810580399206756333044682270984994689239908482495840312536309555182128080782114976631255203026174349523133237356692842565191487046908851291304994608836907891422396098065623523849650635387610053840592973984622107494454576448908767833276158986574707433775828178460820322735204555331181370972603633467754847171146240496543886692206426814652343666089012758927519897871648170475242467780109509766962331598290909683992148850575872429261596837769421863747305628794762213678182826863706473417301054231170699779970052542703854427456163510726256429787354903541048690019296368157967324451090748059078236440349863429634399561601818820857189719265412380069880481693912340920256166459076652062421077329057357440752441678314388547886490997940683834383816739680939544023535368446354040531791657830118304349185481737161021411057622801222269352471606850263885047350504065418627899913954954668093008428510102081507732014477260554661835405179438167272507537267801594883065288587332339403253244276094644121591523611829774536615397085384555364702070888452243994774785570273810704526491825313487715090282174027800551177050222662234322047995593307962378253791764167066943909874991033520667793371627584023286317731821651322204094763900049674806076986121417347406379251837685462446294663473680607794856896754931739271528089577599699421026292633142298116122685162632656801040716412680963769095709952237751425113054118226930385410925191014724630074718461812343596333794375117649345628031140111206362414653393667792689961740820483584805227320569662483746491431704030341732846394266727479291040600448611061027545789257772695896161307772592297426597728763753573508107991909239100312119849702762827549248763975062423542050657195067593113519372034935256021791594280510816554899634157671003513784332584938631217947126802380096110573406750223739470709739076943379118574956133500579154794805262241704513425714162185452182858114283097578961137893473716309130033872211587851326228875934048538464605194375206499950509669061279071254556155176456830550111026714158231423923413076375179053512005395789015734155744709380227223460972800017988269073589676534452534926024061057059671108570874994308239789729959943527480147918861808513674141920346968835958410956427262649185048855420820719831681371234104134544857870301680584561159601677862981463705361747051009570212459923734145174794664123007365012764878297352206280636442522474559077118816683541012683802221655699066177518042959425038645946298732959514441092849050959810842622498986546182319593470352312565199137566337350059002550227272509578577914155310085790706992862502287558245621915343705724892738044852163882303963829910242980159056358543811197086591888560525131451649726420847174622257225952474279405097353017841010511143319735468059328184259254920927212854624403658183214820664088249987533521020729179547278925344502600955487411102502612980586387550077686917806839677192072007499772329236166568377232315749327155447613215294535468102311450460324133827316265695398190110355735572987084228425343524428283548807063624686180736278637972380657194522688517689574229899920152012942279470777194692071893749651969481677313172350322214860090336212129538496870441697274473798542434101024419334375027111676912554649386413550044009299395688846676609506675631569284000499496822637781016601181880773970905117454825366309604987638528267359355351235791485883400482787697119529365039626806543290531925946420033862507416428750819194812048342354815667840440247632493677932988485749848211171498213887064759764863730090755384024681254289752707557028155842765857922082657063405167300901379851447104375661599920244852822990881103438026033033503382796612341150071566890181552248896774274732101309095545237001588024822052843163605069785944249945212534696025704057681448995257271912014053739444785155668915642314730970930853400721002602232295350933881117467099153551188636809064244440180233253363271632276233247891655503394953497606011867853736972113500505762411887718066299574620512772321613677857256706343069992760503546033522225540669271318665854616142854619874135836352202556381920544741783036344058475624665103186267211436444504139996631322202394533418546085919839678892991811249853489185805746367303064160211486758028783646197299762852869978762954245935443141131533175729445913226846780030035382332807521978871452596534291875609727243093175754269009989757192371554062695248098186524381405357477430100276829839263879951451029143442831513257226472386775980554846636858318860219805827711727646935011560071901936941810622336408138610731082906094954982548700626882237839115976517996003384019301547545547546496128503699589456643414853434329511239703986452319192804443325039848186628933459471213780424007592344861031867409546038127451953187162497572449687772590542637563798093495225257773078745968366172420724410501688934397397444909158478536759474084372419309323843713267484983747390528968989884686027491069457276215734954060795376782921412477443216714981491958960760126183633011315199941248709912822217172932944665155991270623582988120747317346281760136552892504204212898709829335274402117858050461663366383246842993472458375769857659678660824499891446771672128966786882343801842629367820725339016924997039085456745372309920261111904025164422959030330517233439894310067260280979410257099023592112241296316575922930173258496922291248507027727072835510869419766401946733416276020391236278954898863492154901788374706374896424034915423719195115953600106477900624256963516257582411119632498524800776122147277572030404066608577828562981753244388088323250386013890103331675568811925974343500857299709509357541111633454120761463926669731948199186955228678163717938155611034146730090891849718780676907721735343119128735506239182792031874146607125800982035399241784309658365938181736664921281969540765968665953512983095582920053731279216807628917877907682278834912152573988729722166726770018590029227771505495580943485057473586081664514340793998897007622410744146749515769900791374646790610255500988744832288246573444415957109532384229971137505188082380533280258801255174596220209255876418855779654003819980997605813496947934025555901318936677185842557247263186423922336962332974729571594420519614779168530906267138889171573779562692445267207337179906298719333432786500671986779728055197170433063562073486974584661902448119382147551885059934714356028503294238070037529958843026126931299355860147827251195116577408220149510394373904164317612303390936439693236749586356052936245526309228508151088918290021307530935380398281610528152823243844253392013364448977351257763641774952532487818159686916721339728426407798809943469612061738278585987442456174663229789995032630113452998603662795365944146613803936897895169984651207003983344673033719206230738476090521605145027796680096650541250201217965444418985127797124238338330374938107300851435790365964740048844068800129920974671612652259038694638091016100227594546382894130090057882408057184109094767772831564274152170745374799319954815074572411829349884361300486891434538273525568053580504812069116863761462841970644389471033946276382109918877421680492987755240178260209635494006167803267249681509279126364614937742039149965388322872989464216616798910021700120317441484543094835658453969507072387515173889101018276883651582885218016826982667105923323361326604408758456629910200648078909666158676435678394161818995372585588225989267009460375942748461920019264671153442396723207045494144931435924142258025806784231708737954881755776665853147732662125275500463421929402106712017518875730921518123878452606948891518184697549653582044691152414862557697058331001388367889703757002321265803893978858850124649967537531306482406388964921286241549008314260150800034983109645106937697808741074450302078075329944039039610730385531081609769054695167413583212403121692722094451490147386698595896433521765597708176546242889498753528963781143346556132073975972655096936125216198879160595316219079236155818082739256494596820706149187839923868248652453459914069479063776708871104636608938491991211595317458758638040591618486070550088001676754637537865484443009107317567751703086759269215568432682400132179486718684108812272580880913789185023424543808629621031157132623326601232081794842491069335552841492205892783657220478325599012329673880372453262882371283838396223174475911800327784340376511975506996274689081096707324021288773153302625146105414306333936486165591965786687327623234010315813914985532149886579109057948778141340777424933503902236588379226608558827944449716572178003779582574401992139371141189504871698868493314533994412640794557249211039327414669417289173827792229860442742122408153987643901565537486217537647819579440085269905630574210849120159803757384815553099521195628691163751046246721669811901045633779777674563772030566826916442065517236987852383551657282264771429110992051609291022382230872683324358018588674945123847764799287353642041758857363393085775159772393328892432311769707284929877293775267199458173675021648113657148338652547353601811388064037092321002387770184894500182026726352132205115123409307416687578996220978702627591034027367962953017164784247860721880163782802329460700399384198172347726557726011029586219952566480871959600293467574884522827230393566179100683474880024791838666201080419663333144801394681599778221283979543187704690463626186530427357321228664589014122437245211117565226353919216970297062252084861826350759124099177257681091739141376061168868175041729635626102890619451583403976018744603429033338885691515804641287777291971520711471140098769623414900250365782293777377457532382217434008431296995665171085069287949130840480073070156002352132337718489919723178086903395117879392912853200613814954664666684777959893535055055556792013415698229726553944074410835816980493667237568522745970955508881562676867517163676969342477161317957670737143515946430184655146336971574182357523589533554729922563949630512390677495642424627881062265419790833985046704533707615164755451225004593690516837015972219201327149044555278072476823514486727250662765314580366347801038118232688935099881417872056837821093018078891155386094889369735983093822629515706802636092835364435981935577352297540809252033189144711832067863657174717879309442388073650309449229533421181794738164981820313590065290602837407938452221665614924658945966692648083150878666239435387066981180403726108227017179361931058435492986340879408373790455799410912925969953568674039118928547340330705158314525901111529314643909613592084670150220498424238421838879517866545493468046729857269210925634930815285941852979498322889029096965868686133092921539414960805976040305133439893185245227398540654498408966869208527427960781986306010638409002435721059994585351883947578792118724970934185585071279412565450882452056485574487731596314375796019974425141912093701120597685591655123872894261178816864198695878305968506317314989098664646402549673079215588828546843394367126806363423206480275021205707955475459255021463531285095650564191468744551107390133590115834280455507302855963460064361532835213017209552585886428726095085437180907838044431134988641307016678551263316472176903507699108087574521197352445026777774594928150579698390749478697159808818461051242803416296411207686058628802294700942292454596087097479879161155975017432053516375375203728647897852909561499333659782843401222485184063059003060493884456237684813552714846107068179259412613704554325310079743019616884593211990758072578976581134532698281434558730553277978512816070921809086717892620414895462406018207230082439443492551409704508315085057835282333321345313810177902253779667355692835477929246345695705064834023864738025383184143886947623312338215272659335599769233838348096256939009710485215020502181005475402962091599338894978478212508548837089084191251605283456370970886701110763302463260665672898251306644587481083640032418582867653622298719904368807581005837833705222588630349622898802658497395061892948352475884258084007910411113934374457789209261669275808250205513861434970254038581220603459924894175440429744373722236881388727978358312534705973041198377246559148541683872218058518055013325756945435896498398093477693945039716046297558620224195244558558718746255623601590321531120872390978348231280593304548887269512283087376125551826442570078419451706060061048241799442596701034034910776478801901663053106749735890531509832214415861078031947365169421928921749914309834786549105878588478667705135377760558479226898928912385128888294167221318746873951023296796406816061996225487577075275234653666488903122046443984327009410410223811867780602469987921553199918181968275293521881413238086692142034876220872105122597917891298648080357826679727944088694822168422514804107026282472646242917198661484737545464916017655990169857897940391724255794600958456524633912049750647840993355838346063753600420359397642641667762218049964032854267458493461491347042863284609680024701665551305107423451280026696475211880079643701603711886219580694753069792337010790332242446322556353468180755144402363745879875612616564594389655368734159104809729586649379383871940668468901339577045234914449938863640768421354461408086560887773731214255454736017843830439755288299752956330687680320285478865681415474240203373860604229441474681877791656809467879654854342972419391080651077123891396637512046078616599190065651039183941749846648992542955738004788073046175145901863751987517282031755263446923065240760089350263440338138793351290095265882653111268375086577237844434073919140334681857302523156122856242635150241251373572844994549825298857742134016687048913185714739157198382449793808383615781769302901223058345582833571336286681906398468802764511280349831085494697837084029204398210922785121520444138879736802015131048744135384363195943869393384424068397891551681986714426934812315190395613119302360738233267216327330437258980267598729737278287273813165472182298935977412764184485161915651118796612852352546127964693568443169692663656020498210056071177191803758755947566196266412995518330387982221482699264344641774342508477682384852676995851789131458000166497226109632686800467404499710852373096714950395894998297540642820922390652417710662875413338173939466635927100032006608940471742970922985136812173445116268188713040903225465235630690592080039309912473511855056340371139595210353075057694961870149383457368586760988994029942105694451171602447843267142666346190976918229267507603028537903195246261848614440729988007779994674374085667353720532381499024181073315130073738934359193466362855542339064742230147361921083300302626746208483936216082414154831204042601663014497913772835252168853966986193341506263700910186339936611312489367458602099529133153563657695972415072879674523025394452769190687607756750436301432950301386265834002845422755799003408143308578093469268206309630667832259827802674135157738852172952879272343356928034145575344534276416012257895119640947409280159304676255993871532506746600277216082103284362671103521659486140339844591016007385017375081290066175552382789755907383905525877794030874571954967383786741567162787335253304441480794206437129734710882299539188074597074754636416086167151253390174018936017262422077513181347668143594185670034981241477783592565116698246981902098069556150036638594662697674381618685240943432609139475108525648619537964667147837551730571906627716580055907442453420076338969032701290048224206954950139599784311896486517350944404684838304235042447762250049614171572223435980516913911987525627065894420589548926733396038439558317156193133003117160976715839969650020446799584906858987984530214331975757972119640423794102899293271720072144699786654644509705513877314546932344578031170004033280760457221306630396541025459742127257783230554092858296979490165478279707177670058126527652491658946122468671002726870508389891029738472582440833881991579681485952152968863300102813546976256136667433094046789370351457929031032899175166980258934255363496242505806458300662165044617359978002251429131107282185512970589877022037146912075087530591438674283892799923699837893829201700536638273799258119366231895674308464355651218708459217320739154420041271807469720150927889238022422511260717674814553853121584984931671483226726595759594710324635825899824967495782367182458540517941319983759469895438948825593199221966215063159825535015477052984258434808494785878169377002063804248455213094836385574535147012884190383403568864241658068776764262182960816238296186341329112343041101643159061278714232922422598070900345950957039277116312748445677073072421230891471684989086046219751529692236831381093789439807954343116849272224691257436078129348904414011665509294119156373014842824581208933062333245488754477663954102841577491581459574292337755820068098729491181634892512615732472759547435509120474234749687274801708999812094849213479824133700389637052076359004156991644795479845857165756527823343900706326298388592241971646895383118689482128133536633318230148260138330115248936630287390562499411926371380712240885388374747001742375254647082071484192546487982248213933673526956997529610881311443403690147970143718970496554377127399098263290897517474510171432323327520614029236332249338030287767585187120915040145377820172368784860953856844587990212794308092349114335882442940034219502572097308183161254521148160905953155969870410976479431019220295259602365908465918631519707161639231522001299669692741470256367276324119343769637425187702012994970003757215274595087312191783216069049689967774550261765353907668714808683112431520357151646479606743610283752333869007547698177953239732361205139550975395759861220962994791571862621593291560053146341552395645325302586955833819138627864838602051740008931344038277419439040984096290348268834432172340624911099763953053391265244616598566668767581626852603318109990427673288013308690790062521399544612858931479585637162300501262748749865397498276827186458824784075589999051399833162025605566395547539065669707369196196078643870271279512960494199924392231047252076343046611020988710377966558124010159070023880027821282306922281978399927499747780663618136077356316176285659403852930917545036857749767784900848461417670772258170053700658459872443863329334494708536774561960220460826276029659843565022920286125735145894513325643726452887086766102547186591897041166514017232946958882887499365163445663925681009641420394269744935303850443465411397993205729337702717325072807843127322237875691049760492960843732465195939994373630439669270243296706408206108470868174523739683209769642696004934996990654679721819338310408489618986055053736549790949936085266498005222279511904003141939361066043810862506215590309704048322062189487622453463997456159408410142845200242580453413997659881619138801312953036920841020147613457189425740820265612868528891703138068285814928971502900043257021812777002130063009632033355701519164939729027583066592498148080667245788799083908683113498893625676391925696101704810460536922129260826145786112410412088135655029859598775354950327237116164995138970956217688513781458004231301735774794922326478986454829058458202540049706187168611521303286715366004121250359736087946705127873361445450243409499267297528473861019787706776785434605387252869252092406487478974656281757476686614288549024142075685207081933202009479705773706615768943156571879185539500196877059009010245204341210835454143360442781039320940988102880759150878157642368105463252253859589133778677539267711438805659121260995439572938995367720673218837325782859878014614638803437074860363144064411427814649343298526223758628151283869149038702841547304607566615463543220951088276736561562825923146231071237986351752983296976867974205740331383082942815615764989780931471719534849514902215184813008497534127556305758592734503052070980741171967738945626084990230196908382862365406586566222131358051372130045793799940680873184682507890402553611278220876067776689226114102025241846055512603591289174703368688206764874563437089832749298852742960760071230650789842463263227596467921099068854864077227272770349261563266712653076257774218305754068487695199176053286364554434828906671103063734881575419119114096173701813053741420646540590611838308446180321929674928234522713052447679118993036399120264481826859653867480442992519186981544028694604107379695132688263047194818676720662280225259712778807687068867297276411928905932537298112969080884258601649620598273175706824337394614244192476072032990832539283154619801025873019370715166621760713144107751265510034881952263677121097584378063633165147233178333963182631597013770591071816049490227854219706859059162550760409171616901923152331684846965108498019136171508353655894154383389227494505210525606323483351342284767487156099538585130119295151938299253550831574005520688152207548393151859298295766883834008091989392284611611219248531086166729164165194112602742905209365505650340182047458414585208097257342486080836479217575947760218334380234541172131008480261189164973790838059373841497767114423365847031768586058482381778841081615263686784285670033926163586355293811333253604460104896908232783161170216714951905381329805557551601445285567496878392208084742398836695735581274465736703401922838082107983287093824221852780860076876586236193744525831898545920367511452834969128036783314274325846851344768172276952978699768782862301171508765629849859018841271438882620847589616357256214912061174959134739742708312439616603377812570647945758408378265824558412621484269849030295914637855437687679117967133024444083924323887632315990091497221665299780049448425373722927525367109444176181887256185288209104538002505392410833926535627176969961248070634806160790358570364787313458754159636250270752130923792747437634113195678662349396243164514036839402836766528717951444018413439539294718564417849786889867668044789894172352033141384691512432621355850752620725775949284654195618063818613118000744731293724823645967827008685929709712181872072160511783940106453799297955985342281740807587486211189726596479952125812051776609973072934563507660956123487299587238021999832055247286623124410941840722366986797591946844144022956243730526597644718615119556316587188806322706961547844829490570900751871099778871963325955397242751634066494303026387797652484024818680039044942171707226342099031518450605614645034360049971703765570750559505590259052165813501837008335805176647512134508511639910063580763430717415384052038467332776956581263943221075667357538746152126921841229508854082301284487585465683902831066950784146331117620276895140842564631081037985589246348455289436563038594749509117661177222734121972496431116301315235467124839189028042699862514479978992769559667366379963279217240110772581508987949964053328906256819217048567038398665296513175633453741367022392102158844453600365398671826612464108715298578180992208419892599149655994230051644562202115950924995940462431048718224626151558130737369211247503072991497447933521521921687700240890217390271121833964023036483419648649193917379012332227484724837781358972899469763639284119290257724817741168062875998491666234842702518567490973838005590445411454060044196797175085728614860005373342842028332473103575795716077033313795379649284783603426523857789308526496980059701353836438867226793206378119590602266822789584409174454978366645603090126993785423530112531562864213958974305869497394786123428049847422807966174022433726665981059181876583229624892460016227893986034412818417796750280194560230250774343020613924603280946624321065500373014281626437486169827263351286319303379724599599438215233133103222064899839925124557953314549376881227094094803013825100052315583308005759386995238365830731975126724372197403909027574923058247841381111826538839893436976151158032944486081299505606210695827768682501000059899223755044903764103292961266798321112469504696272423828067654002801434751656329498344677920559722599833889312119687100849093345609490571282305418057329547462678348663947284604521201799069937424201618318740851396170759604720101302238430405217647235488048408834437785009014691857732952706241795145072303752644595164243994941855029345927661513573673757484087263727371852334671330961811998256780791646013553671182326327465017756824681133177125843333480518969749980896938042063426315693020054971074839400954396596284525340308230517429579835810734300905105213494306470365077123523578471257510582018578254618448335963743494755853298088472403943094144594445013377575689141398383139470318279960504404606302917604843651921962129133800694616548928550468429940333884191392299022043047163389333009074242539394681426679979293880627657470814000472763930915728595180195365356745921263174110223700295918319221302015936320873404546329584028983570705147011544932523940132493374850019499269357788315668808134210493341693614767361203260713959408751644932648123884077216615018130693851487099467040225808104610704550721865029163560379877366261106499268174123180331940174774273272724038087858482162745321913250110555406877368435358485442151243667822186580401914923500633382581384164459065105776553719450519962325527014489026204519890933679066319628162086206419281807039389358159048264387354836349792803731596654156950858141065132061659271871087050524196202297947784461180074766239477800201359275724215825292567134929548535710095437257496645872829941701586903169503556606917225485119380092576894230923222962977101815628797388820350929453117367703295045033555289755510109710232633826028587158578048796878199915545864938581510050540196094199505172664720593670050650241334527842474538119596965457444352154482625644041459105710449018221672471003343141427812605062969745395273047261688904551625801139191621408647448538664833601977940129031381895365652706005139427830955826804897843930313408153894393842244126608177374399858123898687604158685100332161054345206182976900491195609509659087754138819733303425267208603083375904904757177154393281351175747669117358403373564985446606159872160533425257207634567436356816807811232462605917452111523904495222614067041745656445181314536147135669963924413501716229418792645302787605960193854480615257578281279174476388282191138956931018777432353112099434367769385143865480120538674778805168065978389977490739908499246876206373313244834528842191755948023294024715193290357701075278239110285530023977712816973421845437475744562369522637926785802412614556225326110462207119261476121779880976078755885545452929659305897538797887833679733642644379987295392513704733945066185830712513663226376075933425696392588683901948550069854486254815222325363283483036271874296587259531123904253227600352045132697538992734094057767889930467745156671267923005206110319106166841247313683313428374481792766169538889784176265432299887940647245922082390655884727581597043280117011347248807861830121165573556278569593166331248174279593896595449468553766577474643330191756546962215642581239922352912412774968171376267114058519812768785802024159424478227562638417821623809032306398147631156684654428982745890058301578789767774516796396970463231438325811371237406240765225504372110772376671741434595583549830766093636063017155642046816746489631353327803666527797297804208332293545032748498466120444887939833277863588602165364935642297541945023387763785275734278977073245323588824695461229440276652414810140716597938077881656571655303608065908297508110839775788317818359185600720227957500028661759053210711875961616925281537682730153465211921844905247879903042228995150055324522240392494330756961265784360595391934595772112095054291844693323991225700354268637010047036838092490004739272554455362673976598855969538265460125326321672998071219963606162121401717122671076537803993229555198963255536634783503766476998935901023202047401679556584983585072403928173950446647209924616459352078669064652110577926688282983186264085022025859770688413074602559892135377226341418387633421918920956165671895208128389365675469409751325000583555602786208094257817948334473199210805066840608793298799196468898511374607896815678919901433274825416230043734118488750148003820994838149596757006155994123498756674440204691136512311034805939108589193801270744928332930876523241436033326777688958551646887712336954504187755908540824286054347947204943467823267582945896505573861221245040863686570714935501182969656709232635801764959006922161549400563807429749609534406043539630922873293945110552626405378531149869310231312596218379074681567520980571606417494675038110357096128497052954018099216217390769680917764627632865712397025199320227819562667065425963017840765553995804879993001172462950313424154741029850360540062075930921762122242387557868775191919983551978409772040900861710986891331616832717599748234425019361449134078385175264919151093726746254091457519971608874950040141938244397227287660994878133628532615043179307838315025750845459009651378402710117717095276858107648556799184982396656075161334084952706772295328268655180493948509139108264071548099475101084128054954865961670997371869684291166423826707669874314831509139467293580310185083272402027145877299218346015080075085149571460651603654234464542152686368318701731756800654853436114583126214160854231571029694368049785372014051916879192497978481060314496445619359732082349545247799652217605090232959629569912787304765688213696295967675003640073948588838648478959335861861829007123718785272313856023379709048416665089823947791902977627315830952375408780635122180384557027782440474510570226736551998518480058828564161573314452690776600360020436087700322233298969744307823123549706002406419784808145989335144333225033906572957379791527838298668459602140952558056012414228083224837869589819097584732101866224005275195746799826929960610956637557518122986419363472778708455112333259952350616705775438576021481042041095707724371388085999310250299193885035699419644006340634782222839065975788972191862974904901207084320623288750726333219755639501536376054174876528220386256875927383839313584093984041495159900548445785654373724003084547633800184137934918794016582015122600834991213942615910025284789081658242919012438595182325071663097083101153613925647158503166001450677668419835777857541105461082569151768064989070634744818354922922480819908329422212768024117156440965836096737695003646397492252116428126514474472348244354593844020343126719599272594262460869731588168423567429100074748349222098762548714548406707888755734436914597552631359505224097157632863255005925893289632641200233471040265927878184004547059317527525247508529596947277150145227963008576537762899024569620928935645246985718065165694120786834493646824011452873136220116343727380280685502683298484850305904059734928346536727355956808399116170890479328313398420009571206086620289456046266912234401001963678530675020256522272691815942129171116649196732272610549160933909609085138197275242572734181465427039936688205432945841923990253015727003367609352702387219795406370666305952723850382402406357913860689718383324215521267247540903833842585856882452371060106392794758813337018413780643304088860200813803742551556688173140276422755453572092485864493665828816238493645323478835124940790805442019442472240080073419295599505177078188175457002564140581021475656187521806666891710389587085585140235647789143546043207345864013885760033250703598914598590357188030764612171196605184953834039501692870831179472713926407461061163832837162329886149577555125151248753950086019265311698268236447947597271921036117839809738085952630067185588540184682230414744483011722556555746762794848688530193267778981903994740311494471126716839964979434471634185333813592253083627530713857727883651557941770951155891037082433214255894616539996132866625618068167391352506640666754305262878635546493073008817044313058226656237902760056342709886451486039452875097303960436869340853558044826236046684225466501880000896622464082209401893821336734070688468242981766172995920467759717723399117713482105733905591850874414502265951684166342031327462675345206834201709065677962115308613801623141228947538987588580781014721962777773117107892578018117211264830056685669528653577790627298731425181626279409162221581833474588508139587639882630427228256669440670438801395831163087843570077858432599232419456109255108494626135901366928660809882301357644860281208462030498057132506664688476102514085640836500170325799871801554176894901979591427725797283273772553748746980853804259782693365749190166273775461181910166473561006486374068653324142590809591406616498763905359640358095072547679482280403544868167917466316484276152832907498518638398347471829361063204035702675930501249678370550354737364266595442835419450688830780186334976192465811046629168882508979866661975706152258546837595104404962376642704920102382259761603069001958796236516913681217557338647527952306307446101394592845612973895036524155885909971090182061340865000914785487038128606865741610279877173470955414838585447060590552829103669373597288747090371444794957305131345518216460561631446848733148930106348004915278473586617866253201879615047755760658491713762833306157438286284396279044725037774618795936146245676780146099544322270344796521908229884812272846754056719612577651678359299091972283606834476110818868442368449062680669544795901416873186667099370752072485938479624096596454528770988429849116665988163465266179974728988079679791770888129147634589594362173356716012802013755341978008477142063664216181616094865463705882676130161840535053608308874447843758652798136745194470912279457992374869451238591028030203503797927061381382546167303888628588681696557969881585239046742346566501749816219702953287671812108487108470736692744901148501209844663556745542910537922471447383814570570339283291897804365041640058499125649345922149201681777747088317866788828447746243662236530388711335505837364464361423637174054359483924360758222785886334871873127588827431131362486784948349022429354635643476432549030456916804385802751684003366661965852067281777302188758560459248089397049717543786671415683185037935674269374908841564424994909826012745185747580037819091961091727540869905675197668083337434583500905673943152661933670462755530497925073113623825236609736862338760630739006185643444228219746958332999062175407049306328618951818275652463461313367985639812912762578837879197790409695169637797360147985640909629935289241741875278123633657554532906982568633206538798009331582063597268447531844527932767644841282429761365932022585846420266790561630228016822120159659518663390134203078013050733587681973422343431330134984842334274145060365045422094101918935528579137662303087856533414851034865819399006339546748607435169811362080562160015401944578142076563190298243674431471359263902374844716593870606176430194425233741814517390352574060723334775331378859210331701388064466500832662801829324360148349945961961210978603162756326807060972350551657451208513010179600984976855000606869761318584667869774914421423598815183296352437816142973100177262157507683924071549886020216054712552305228605249460493243052627589103943637559432603703471676804688402195555983947165677653129806649692954850797439928500216315574880175027953121908706249107921079223722257308796824856013871164492686776955382887987971121308900507072937479888261973241649737591675954507868978335842797451909004810446350528543140795875583031798233216060269193648977611891872683132941442239376978063843557850636798772293508918596870009489882554048454831444635981270539021456994694923061163321108937407519082009904844291005753818051843825418041648087055706415163890470858760776581273889117381251774064416117006130318071913709891474218489732934533009387810037385800705795339447392704371535074088315674641051250219662210637621667156181856647525182377764939509031269072012650032080357273985719526145316524892350462482679612287209285600902530049097698220191679705103073558472210831938072530160935990494978209282566382857105197984246652195479802018891175474162641375376626522955543190604997941189333802223686266763127499311041610453730905727181492609885915693741013702242872009196294702321891376695065122652436252314319115891213713079095107505744054353106563148103148463023903831976630526383215618263883285660502742748187274345734099219742484423799773182909445194061302581364492803887153454680061965869069189485781740060534814610880723152254925004393640998243043297386129649372684751592380738868880597009228906600045401667061256751005293065648673930143262416662095532104667708648263894468917525089274121860581694827574942517608009836711845316858021046865945707811808278563736718834631220645632610453703693956970656232987752240745268620163745123850209856572486627538474054776097883270971268938721898597866781265650663954779592574863568025183328899743282212233713259098223206619260237617140397524155024941157459157525914271485726751072584047823291576817227615291387758231525802261588768589056720824450793242319319984439824395229217814304706596059838517873031442998261352113995267775294745833016916060275638132300120307669657468510559767379436641827863834909768216134450901266587345732126518827929281921667022573325933342530536823104664390711685131178531976718642915090681443405877542260041599007505045719306911429878639558974189840175618250870325225145840480077164934834436285767200942769272277817671155389937995848387569500412767681974244336066401194852286604913086635233229231398129105997684839748531976518334763273362672336497538012195371186503506634585156731886680653631266663806288694683067754254759319720743504229788456205478686663823988523134177444639674957168513954003516437126171454676289120797601178967108682730014538060412095547045720321359467130597814938113519598443230017096499256312837232271993603596702023187624546960931554540616907819149648135312559501077570746930070516381346405150957145567271461280507762440827929159489211298719296404724662001597552269939470268142205340376632672999235972471480802916025171737647013156761992067664565156742926325169603906735449331355158763219675874354846545480212555149582766507891806443342773624572879821797633652419348696782293797477944005134770747068887439376136839101920290743557204797007848640141709003313221885126338927271509745069962324225161565429011879105819991078218552986585240276687424240927762948646538036779510265168723153958772379727070995125197085782616268574092877077686664117117689413872855289211075643728264269967922522445070606290942484333901916601136110664005860825842026029933110010266738472997838852894062344777474199104882974298257404340291728512809760890067090436997056620668465950901738455613626280348202389177627767433416159099981080383417403354845265806382660982272583073342197486963870635502084655790342878356543351097840959715109701186917010268836328491169765547911535459079684162078987101608423495110734711293870521068916010963924538726794426604366597906853761253127600053734201352585218945098025601370637639189051614014569394773943503684267544219140392465069306082111736810635789593080106260438699049596415316901478397683886874682115065841973442864936797236264393757733407164620097187415313920682047789080869754737478958745719653466470629462084488559523949151562697826442652239338247051224759262124697319089529590327072075810930349150849734244987133187943135538966618067954651040513586806417060929099276484732846795919510623517591050148419192969007825523093922226385239465694695644288075050929362648929312114343704393717215224261973859535226048689956635939427986272228806651075935609428933000804114762218031324401541691302014221474176044604032443430082915859651021654916565214427630229487598130061142320286801921553740865114176875451472587102347611132417261797089956183785661718231848650619760624949139151011106212107786517141526949268124523834004265398919841152008089415151033543828885405030434819992888990650725099836728663509141777649028034640561462820503618681020137045651857925621052419395977849196188782535904256262663818569822794085291097521335103646251334477565459454810668207551869521645943608606199736037650221752782454921879077887454461711027643434208209967738503836148468018013414193854925490315057682911584397343339825815336512498518993009216668685899275228499800606875323075312794339471032097412536320820665876148522597969407828998854537242449144243216816594721432034871357253706816937988424143294762021705004153698554269636157311572219565938066922066903866952242169936377113971235409222390027690679701249384204054840957071593620021829777275296702456444423949331984314567469716280859908060742050586793992694700913045207151178706947069695684987049381058664382514272146910464135624823061353442560695464110784636222243390729286876758754466980301259506202013847496045463760110784854621147713639237403355917189249736647788122747139395158483573007766634666578299247951402965684000872920532931541699952420846003347082638807966025742560255006521889967918203952855549634388754788883672139792190870655634468684320210525529262436982040537972833724297190615227921051188443430125097335130024398657644428669275222128678409099853953424452377677597445965476800129180831759749213759662712610517939248479146431067865910215410354608492142948481130088985208762470616850567605721416972890419675312009375984078764496353424192121955168803026637150320527019695973256480077080678118089514143416937815543604572180479459693535235904424310976996990807087604942157307033650389919453215874593227517178092414060854717012974573002264849241464194955668548264457091947468756074308592731759983553453408477047422054115414431648513835786360781618505912091081848321198643635343171129229397092918291675604937582163698534762546880529527178806381059216859794818842580659838111385106693316739287613647796330627226399473971634440490931000999890449490391176765273828084986319714508916368619893649193192799227393648390517825021773033225236226387910248668807108345266151739081313585280017969685574283528499558465229382275727208935914491941312595515509792300492379450444942705520184837805324460842525815375281094365875563863942372752018661782097115064489355939346694664761588668117434407658555806456497017737118413683956645477562230027303702680877024809875792709333302289921591086111962332799663217143775596275043039698781434516226360859415388661515581271816648106915529212645855561987178416187266626296565774297792535722675176672640981609716410137607791292972079490025713999400858146634021059087817587366059209178652414264280093670816633988353741137364141221600568169238384308505343841770544158693681386022322096478751107153422598562943923654718921994717477520355825323687073171145982003084692384743598126954654648287680197488886430623241786297427425305020048649104169366536744948865926422342175870013133406269744178848847369441137728390103649684556142682380242749042226740134681534372453819105266516807072206866515533249636247471823897023795251403120973082011299957478109485647609308103340912368390489087107901677313976310474377437192447493379137661169524246356470578263394818191838452753390252480121031146273118942670247538409145417471575963993807265239096912061850474157489303652536683026121272851634156567996231697115140282532545661135481072943811966886767897124318848355018716356200734678038732757287630885638849994363760934919314812934588740795436588814045652869668927492503689775164530150165445484006626495229267662231689814659893814339883293238793627016135082607560676502503026193171492827995173364056507463105842380112206569208123639803519530486813537063066557278755886586006340104049145942222159959557279784814453914863432950154268276264741585962886956364603368225087352177798562680506121120292934323371794911524943081343424079605256072688111699123668778360823170415922790979194793227691256945282767522104265814027734603303933647865856562971455665677416730844273843241882529281186913484087665968598625558013444642212142975547782416858326710030079052054587394804196258298501240930698828327570738871368961805434114855193461420593026463215378991450276570634474978088466044437569803951741501835094246289765030245006877186778244175367439833658457491974090438365435138872745771326262357152589157305046958507989270775522148267640081845185917507335199518015467240601814989976135691147293728924030689459641672551855822571748587178594794684160147251114439010118483271529553447616259181986068577748510013770304954688268705743592883521126609806587307374311159154036677026777863860136912519474459457520844176792886688354736912341215643073776467993383304311416061748841366985967796715486515020185869581150088726336958844405746485609038286477947136478663306213565425988062829867303474311653976861045710907864375061147367324598772284662622379727783341084927900544369880169866916453720485970023287565373353672971124210386068899540293577307604538357936503113583508002295084315243823053049269661571122726038831984192065354711964245340071491791354565611418856274484936591372037689900898281486968213373396280862194279835036916456644393831000117738220962073618203915054046136011747580224299199260954779160986960027669593599216407050815118800094871605468533262156845530390808489954492307801395600260420588785784575322585107185661826022044183107012246275591242845343430665555635325537784531299844761842921032287425475140560228638345533842702298516456608838377412497472427564729427551465371672739359956070005174472451038918088574032869249814872389554319135403264737429266505694385017421966710613635995530384589835590788866214452116589378324311461021988412434739625483549104530526387785984971263055902505233705684510002930177180505410822295795117197824948321414618417865744837841515601220543145370655496883963258564508336341835017642056382927664355618351325154667727999958014854675213554937680223662109955714745146632644695208496061379141124714908004222256628713844876585414741970538413410973307744893520677193450127215904258226952098268837294868792008756573146276531816822325408681361325223632927230666186436123983938472526842506073896054639855923359668197771662365288131307115872981752507234567891596543172341950688076047993967094470825224365155921967301093653160600732990954294151389399923096380027089847276226795779862384403289175215452389464620003122362618142312777422238830082849468191436432715834079782288187957367577560912168326898924720898246117292020703571809797486715749820994607440275042870752137553023560077864657950825802285434578246897956337282178346166474138577441872996776165881852671210081609163562940813967106387516922570042800311796752989044396238404921112138188335719480493833958153438879112189655952428335291001953909853952258792026478761304924520083416564889088902301159397378477499231972140576997214275331626663387538064740778680313529075099603267783206985152594807146539114298398922633807465659662217357589222545744963735274396584277517485260840653949809034777260661847900138738720666051899785637452407057242199739246044101040878245073975032601235860429836551342224163390620512082260820746984209617767803372581138791635697115253172859652733866447108279932636960818796477184822745856036481159067188227637955707897750423848750440750324602016227589721310594043421606419756743661146419083814390951717814158325701486628043332832979749614356377436122056923338991657742178168400996023198085047874359140420028649833695511363622564764312048089454557558502157862589966275373835067083154323515033906865443435758643268171729608606400449390906635808413997387886224052535047685650735206743756697100484032885712521541930351782514909564185279451806367210766613408420659953706800479839544878457885558834061790462958971008358538168815696711488276810232572447517009443610400518756078158843177084511686244365885491345345879601891688294987363159732658084460421410113010978956497244191316195209836432520677961270593980671458599552957793046411581524259673146183249517165596568765571161069787173591428274349210986480292161428746678565686956562472763571117547498556235169445729630622993984395078855011425858914693221295266245153698244165299370339781576885572044555308208034579007525480940859285191625450227574798362515083780900924180781736481899013380028779190401705701130805834366131618638655471061053435593267077688354486071344806175733839650788817602785397666646857768378643012846707439328617823978689806508343243802924283723034883464212858874398197045152590901714440008754403384643290673799892554336694013877450481050753838973137987479269389642658679092540725067640700320064598911490148109284676707207902390131429706444306343191694493048443998002951043805624800757182608272649225181869283240824374912858399749236647829509126572957102213134402842943234432791276008844861934988155455700051717717600082059974826559026884318645287588859944497501964969674943023137651586521908613968190890741687207645851876521379969171086418312554974621057914727155695909284167907041251836855063366667458775722461993035764590959781285093765589568275447733834264106104772971328976445060431142176574292639527585958610314711756231396620053505091915960495277166409525988990345007921155967804996460718612150135423040034479972043259505212064236491765566454007985116697162661519856988065090973969947081132967492164848143317451780759616964929772314243675983563733847786969896027342396512852524765725821035845387060069242483199903669942080821853035562806973278485522845057249968667376924486460039903312092912933416848795121099994691164448040185426224911914215517416854567968536227557490169509154476348088505167548150386086906811172777933980480301479026544502856126601810408960245718523175046952453130896828087039106145636536044782696162567079583054099779684457999090035282337698110565814664032276071149377617846358762489779905837419144217994436330114239569841955262734335668080741845871807557506016242563979399047800731165870988559781318772812697307889169969125508222131328203454024690902443872214091332827904667478003903820646372125107153216664389141087693416622380634680816989508173056310191498026797900568435476079028365884564400951066750900372536365555949401457240659221477921033782098230127098871438043716166750074764909232100335773982906762272652386008613231140959235899484231396155195794164935613762447293258405710220949821086757127535732851959200117502598407257760279444918699559972366179666334883330990793205919819660749487999214417916100071206958188202028751307415987504107122885629804101740224798304416477300380108166708238762657890231239209192279898167494884611139211759355146061158577777011907944033332282890457937535242911849759417738477384645877123967935131079599643491613115306591976013692520918738355343609741692032838347382493042413059720152153000840746774188442434187428268563011254907920585421761876238090447579413527551405112448302541487971835860348437114336199071996758765581505709035474938818941407037386384882725556820651954011548566366440509712644319530604999205332787580931158742577116506249331134282127468860964025543151032744238974653355074274591095664331472859820097230755366364814130716198408022404227244052348635767700973460755851402692019725491403848803652375306497983920089058464445203391339790880048277268504651165121739177965081853928241812701173787368254080743049528193593915532993671607059851361900961780959092967667850606956543828420955904374655478779246041826432384711525933234978848241427033597226144923906348236912615747483080203655459935119900751130368513478392801084630620083078264266277699675298292043199027433277409874905105681701865969807194408518320041969112624476673239764269712134419030910839848750849995911206101131692416661399322218252706389538528286967863519246148292099885647572106058133604318099172991155997196859927299635329223636934788932000192053556729833812190655902777783852889237079063283945589014552516178858583576582016160000057240341240567144803204760946089278677021100475529356574969006082357862314663444309392822760444859632137595725560821365579165387403545157550237111331070842480045680994146165282062945028704390221459524458521041130066103546597675739462728096659426691720116697800230617109659621082645842883525247008584952196739570327782160361622617290506369599480474863262589750208275083340041206214553739525802474847781849547947456900075987653978426486247096091073265315804861769290166996615504070826160194961929004309718288097226408353056040253176759925987402478251737548406983677797521503460890912072692202408619721623296839606587650008399026357374475435972195509538091718426857180652986031379559974174546875719823058685470675525230663790061918259058400808173500989365444518123599842740735568959337614146065064733718504511160869712765497255339325687105707532484294823510523905006231581269975331186056421669293511601803083167668947846251886250491008864268732785725887865725526018459886331945558713904747402805307695051901546430901321937236626292861097419738515643691756051316623927019895272241444793603915699118201121804518344904129132868686678011486501831323129345690836016525410775302161772488811271651254917601369901691468984599257537985050873793439097910541931019799139341986086721115434091423318087310653042770617475871372251922523376565611641198350270597134645214292308284516856271938727541697067315905750107913241820793796964522577103073470152351002274096897838393659756066707678080994635674900428737997080737321548541110462700268907092302992451290691175578298381849142703020773516484218418661543032139326329332886780239217748847161720378446559217559841251082278699435627210084386398177720456125935540851942400212839586766265381801787397424300076357017070207252160072047440609690951556044566018192317771332273111075896663024298212837063813650502042450903617243814876505372894442903592744240443670604547382448891643442942143105636412521526675145544335011268112543421386864969845804681134798555255647429524912246182535797683912037669939554636919569839309542632965645718651147458460646124251732041365658215801551451326298665093111079471339970025152257294547436373854767041978367136041093993818254651503274348507420631234990671878779396011009565560483271398641601349211426579307399448377246653913196881386120391850597313140475062193037520392384073221645206907814291788752000846639959335762500769631295776197298579083107535193601622018420988209060591407674121221506948909395518055781145295340185344749170494426872975685869379875912872829567946110929114535031286191255204417718213683628266896786484068744539186674942788388219596004003463261713522494880897147454690741730730065622687958006009475316610505887264709646410108253912097265127440848818660959029380745805854435896803344385786384242088139514345739421140129664148544207208637454149256885075547468291599858615282659922791170808504445563135644892943917406957968456143760520555345699624813522864250150522243394072355405322905245377850671893766114657223990849170087813373591136819646683971485402256292240783864701185614699930383716194637132838268549061410830011809889912169641999571974610404927483219788422691249093820087356758747275843805339575125005641040486054763067185577942192821559757899966792069201435840498085881734272580996930155070455397281689043712917669810623737960692011735279103530257788400629996249363744554589348176287257738670031492226768437983826669843597164938321028354296636275091891594248756295596767714268641917165037205730606151787569233238567194426370250234592545706196078887280043557924747550736742578563395985671361624362320325171572859806349570150041112019915596817256847043205096398355769269145286380150448497228102085155496118931547119556028877916336517633063296404442740562563306422846384851239183099829932183456073612880635699457080627916264900621952036049515371315994629474329398320464677433905872860626661058338207902846004444047363204550831366486581938673825356159243820222565708214723390070876689648400537393463401695044573385391168688224698778982013971391489973613435641326463584335235115237636365532744847721155965399555711025486007250247978799515624613684045114614385814501260392191485666168438971700516157524474627408484623345306026202300880024429075424240036949726733434446550940240933855115793543943894180230863157143825278510765155179076139645481393817602353677207235259347523601802250771682732138998366216915879176639687871220691749216135278533373523246431969351320005763683120505417601520181257200353544134011471060263366914739720623413705229509503445666834160555848851134217602581637094960007496509869986736628111150284567515591389948890808164625797582888089702605552883822943619900582045995760776574785539686987037208018473305218462102390145941465891091379753142835919331049692289391605856733858394302112467991775345347608875238990834412478675357311936555054822408040552215034344466761084619643696485801656211534518591353913062210479622776550582073432646885869927454514397753619218843722280398921242306410082773812294890963875956109586989095804263051142696095670563679070609759775949251834771538266361750345571309280188287386837603901848878453298597279788128493626576675567773022814395252003186413162532151310454175243392244609225801437424264422979018436361469381453738476175881253577239829998149748954503312240985567817276049205439413129717174382943981042934903634062401157306837582902844706361504596857642975124558020727741220073266821645394063788471647317540435273217199712984264543870689630676614519779988159764731059014645204202055461451804963468344631057853920380864691945879301925317758901163866387239445549061314081332091547918781821207637795591276359970898089552634979122237200062128452627652924987424481225502521158219557443861861328129782625057461386454904181669603732415084593932599581429571033930495737922948764307948418367567107211116164548955786941595467691615084777645286715315913450130465263596332553397559000516796630131701753530587066143424161352618292318906415055618725787571895198956486762548386174631301474491832972066951362249372026221403857975025221588483645126858373544671861600037384394173879261566763189517450352411956636310106088814394419545134371113301808077666989330231818907507387051685168819751797279432358579167989906265305768517717073931560171103702578803749748889109033061985784055954123108466918331943971142972736823279942520310379624669344727560208974133432059965435576729612144368624972827177163094566466826424379302627275460780956301100182419517272932921683832556131068286733873795590013080530751061202368505196937532165642549586352841131071699720123062949465929035654500486846454318959445508750616950599578369686834524815777633447212327529683640087324913371438876781726331705489821748770825078466148786034608961468944146108611926130589399533983428828535404135673205065862077662664674849978500367569459519504575371934694550859962007770055415449271765689367273903662468453738434257231340028839261701935191730714450764513889184896880971269789529563260021117084040251355045021329678404075202003149982501920438329433055208787261670963604225705380768461062519599352065497333783210006292828626605680611940388504597126136519562851400264425421194758649001332376781240455749455117963541124633415109604334456227086733891220971633357578758808441065472824279072065856682453120062542590467699445611852266632671146197501253207722296658149108488924267599584422627190384218284029134667867227348297138451635149099815672067336398494489975102578878241034274198221872594862640558399215990564170422386853500183216771349715143961354544985236782005773016950320012624693262397601874247609637765580785006604657678373471387983599486150941258440609274788788023255454781660162590549260642069377663444889233125705887254098959293132882897064681823061066920089522481006518217045139965686232261397819956234343184603489750466996455593404914122521293086106065041746612024878270563742093802087119423272504498406733762464857004366217188496527141143096029064216576732944993234412210433214516736758190734922823474229463493723492146541489740686405050107034468935435659457927312547386772826334140041020804162364074993263851338570959539119452738884682442178926796186105143270389606063528122689569037900912513105213912752891487767787676773596933942701188702644620988601606468723419454806338740551404127292157811276963719782487841907206433757597650820320655034477833103963451444642865088694140299280133429054919929091880094122814590795940231629205997197761684351182500502782272304879350185386116234912126884092567066174142240687461683835744648047120582471482516470912485517601356718885626619670790202250810803907426556323498100152208449013352048126393224621854149940275946271569504544355141462252736656894253433462415034453486206917599873104792516019973793545356540845176349253919515418698376298661953070889252873806074763650100772665585096643510806799778133251574594146916528912534749869819242403334453455229510099118513293569813846004396508081819029172236170973335098890596963214295891910525694556652872541273411392982812784974893728771310859312711475885021527597433270328887797209812497196955218739090662926559361221213809279469453270735093008756109532002039839410765294511375762341594366356737446880045299353548527199081818312221549647792904248964670013336663286188316355811171649900800332481049404371013501403792604131080913718322272000097779998594465180222465660805809471717142264689162417896686312973946550194339222893867521346279787741866139711766203820095953314522987709303151481729289565867502272745813241683919748479130589682774368125710743589336890562599509157415244032141193639778176864824962544479212895179450947513224970275829778728090112995423761801907826785578833678268145184455365385858711627417622143679532641243151940501778494947087317687342414399005448612356943349737853859547560484390200014912184351298623438619017882129533520245122088240568201383684910980237667456761715821414916397133808222062245649291194428082655462346670668443646167719199954843004236111687664444957695310859837475917512994295624561566581397930121780493472032145220197065816858485701945332097611342690009284802471943029839284428094340961797749200698596606884432177505726428040855255724951982481142714516799210005479559159399652035163160791996233268842969428355743849570271875408162359617895974695498902162789161005047760691792813993776828572313183324965386209594145040850070752499767470165865444208525652865810646535167153382311942547801142869800197411354495877725158362351334609555703374135421609022588748233054317581023566611568983557611465517644657053197015750614619926442716815954013745684872244129825347019731362891235869614953154541229881977983488788209691039801350684035451946709749493645770507725676273292078409906747975888260338064535757459794885527812599550270519468717965844842166808941584355865120266496168464243978947537751793698939064287475283704072516413284024230911887568475564017667516029756776345553379435013749635305125010841740340022879002232911150089657550240095308635263046181798014062704838873439302111446567225550237759873032078082973491784140804539640987330403932673769262379192521750515239748243605715452852427940922480310631528114675008186456575485000975097067807431079587309332420129003563222347048259398037549044027378854441100380870069559241334183984844101323603667463192365604980340341816645323272678031496523892651238051868679470560465017802860462610121457505034172028697339855098340812143626825317332559816995303377486106233617790848355996425120904781124493575573651599205790637137052624216977511765941898952934179576824252293406699368270328466809592847707046081616026474116996458253466180548085350429005383443931123005979821207262037809204404725202356304864478211697452129103154989972184107729510767187423716942867872390984014723562476866317890561542598050207870249094293219356115612505471381136725649997363968658606564961730939475583963786499792605354964224905774063105407145337545166095485671535540569150048309167575427728976629478364446245519920968090099415610536883397803233303715719344461597905549716882471298299303938690396366898025771033637813129847694658009038764191025899610581875687148875035738662013595260178391297281396854350151503366225523462387749187243106316969005834845465611727696104374932174615322134467473962644258859642670801804246036265438263453476718110248579879496864705497459474873839884833311882482307477313328177655883976124956907948092127295123423588728916061293085294141420734558168245228339069390495086030266749765813220656207430884281249235599386408209055863723223187610686276544597298474475465659407276069722727286485416180801923217462176969657535428945330011193223454315224540042411769766455513235515586178638517316834229430071108300074628982854695610130944778072063316218884300057824437924115433453382547960645461586759272371807973922713056497901281153891310986989205609488213233450479382660397911486627687207094000002690820339511226660075436613188933267684292645739685910672545376581854930999305604582468979863322356066421745802132697430284179580632136630584974785400316600737093144196574248149674747231334268464154084786351082957224156215169584538278602963256701323456369276551259660048428181855632845635714532385071197254306962987762057734530985281064019870180771836342739265346815738064127157890567610464335403834052477685920583803059467953610544189448056167921607596532027363103205733148799400944247710262959866406348843212962096261517784758099886835614906978212915008324681640359272934396155495190108745224837915527083625363113989828170818982934496680170499617361827146627939214284622234352745762426352545717781718726680829560510204412350445117889728601433398006653660602255462479818791596339513013671703277984693214163034764976353128585827959218217715062919364313174005258440149770457266592672101893735509991009991150269423791535075520232027285438868309146396330255119783195312005199189440838730752226494878899563223817606675440742540130470306767920355091374303958596058836967518965977858939013605478782638946985409347056214434081287998519072429919867681130942943784768970497107481565025356077463497782361524765266760076784440637537019296871236589897593616679792964929893831595811357709708416521607960327091504885851963364636400327377357184936242248068799664584999327347114119486359272495494938898780214895653095523286576514577039294512970784759852106232948706132634371330588647066379390198973980035120636881392813392914802456661333120295827973512986637469734157572247582712576255937997879912071380710985619064626732568311702190703609448158686148933811693181829296212502310309944627875794938373414574361711797716898349491000942103973602927732228606016166629800820311782167240486901107058396915445963349311469450992906363935016296167436993971378884143572059597276103147419161586469853148485710635584129530855535377783565111308662521042868501008973321732539811030796807128476917814964495178096912655848034477391238003112653751197676105146550741319471520395002150177795553821541597827771633805652356070328808072079949797028586158297652522970188722429875379822757732686773917715534628829651390232979086432089613360982254226671094116650810507602531850500942820559296278050889685399204073276907085704011152200417331291063974708430423151102746708323619218767337503997517582440232002854361117131217764467567169307265196589172418359433817209728666803640413178491334292841940235140196186662372112801036228797605975208240627126522807578562944781019749123479060751167785236101708911018004875246968179052174152708767941249805001570965639252829611890359220548815172680166553216699533469083546767489698545406625988111186306113134890166868549448053851844954030995453238306780194636867137916048764888383639364302043538994448678563312189417159669721394539133384080893995982754030316422227811851735179690290497886049678394703536704363308691244990226243810879839023131780402131902805426687021692070695969657600728740775645924403516811571301692604001685413058470913380929133255287899804902427151953025486885174616890741156510680936242557639322420150149170250669748453454704005210450069441477996546098377412189128371459563415817402678205138902387355478547961671180643629610688784024395798060205668116861974564689124139379473287229498330441212983806097740268377810573601851885390577244133494387275852521633477139963491460587700288712169704089306832258829852090911218333003471431307409681963203367880541775296749321364853961272434328265023510980761821137945304264700609253451211404800534611106219503791364575390426560238850525132452312604748529765348314326863202833087420139253112689381425403188212987387151637622903275148501607610595192815879945138591693285914079820817660872385280206237759303501234152493916933735370204771657171662542130534711211432332334507318993307468459486071705585096242569530564478876863241536265500636853476041563442527045219385295086106495941559645868637392508046506996064020575801183596025085361400702042499017764933241633949459066773201387168565373207107585313743392755126292705086038780572365265051338104839226931348002194581668675126003084408572472433734089049800633772325568604693794252202819654965602103716465819717673584501702256018371544276209588810495732987671782492205449348633880528469260983691630787437303521776927882587798787990539036911776529343533981276889939748115105686647670390812046075406576391335196879497513016516182817361699662622661029490762818874014058638454124810704658637497244185423226467178271244778017580512166452926760309694764242787717578367671047761773961147516893501845555809932235914636274604499198713705359183202039257403490157784661577657655859734106034349546292753296422821253499962955578946223043683765609960491887016082591205266553875447337805954741385455721065075182578372317350450089915929547742445129633656625638671424393057771431755588083141903713853141051178827382870454067327315658519314716993427708791070172880359608932778783341364042252078087475201663250467792133390196660512123659450698098748871914994155151807101171293636586734473680596207793487714349417573899377463709518348640511679953792639119772291427423350043895937257768181549083886703677159707201792479967453559768483302028963808294327645687543539912690217753959784519464214038212011617475050100338423469462251191329448046609150014884892747281932314940818509191490802954778574411690371378179081945912041889034509995191015788951027297974673284362599668306979482410285278079582591413797697005341198788512568949591738265218963235519731509015183865698731162646080734207045016184696067254054793993252601197690361412162999598298651498774271262281949382274828703333568261907112469202245026464898592087006564005905090425559289133155948424434939547318802554518920972453136816228128832550805790203001330958887449283102880622097771618648695992972105774061492783933005239248268045595286487507567619530325805577283877663267412645513691674201832577015236083041154489694273199316362986491536874594106540152839098499704965740337621833972771630463540036092009250826222965694935850142628924535211625687195517048122547310752352220247496571775974358444120356920817004079587379173141057414800833150549851970828237155193424187830596035469659716110534119834793336110752196482551279209115733053949775481260725564061127880692913902730771018099108983705712576509866943170911515573899726367164027382304253491562236408447168369234133601817962301835509887394983515524469593667265852676571436107831248566327901821283892989252342141698312219474184458441723839389589304087793826799425491748592056991484304004780454367727972382167072535547135135306210776658928240673207623896024150085338664144718574434298644343302652986167617651796860729187564425025054875353930696874774608038732033925541913643430935732468758453601172415904416224229691814093744050507412861993993480243970742113967038355239911589016828067451287644238308375494731708562765388816647556308719903318518794872562071851522515881040441396142536562666474724952382889380375137320540964055704026254731895452955042232239056055254587637316043409942970387657915755511258912563281236302254400831000383691024698014678008867039522658321653461916635369236028268194758571406107343818218712219315041307533738906117271132042654167198241359578158482508787465157681888640368327385867736304305737730435627065085955597073366944100803757962957989430670749592348678331998711700376677319683749047825237557639077493205538870720858013432796179997586089118648047527633647030740504772891390209569090400309086983953951497907678104157327923316887152978796748245772521261770376887256630035413025762455973218255057591623862603512328013803081329440278883763394478273234739698676059575422312397432559897101026484961177742588776421699409958834595302803103434244046689957445504612538547639249318336892819218915826050008381054169343222132352522957261782222309197353664778020274823002512761709394859060200850504627048175292042845287262516287874031189955464536481986565773261653604404726151262440718927883429893490285757625140113539705754131665562241007269178781893769156059333411911478670637096267735146417074629609677460023295231000320669125360569344637007315532231781335619277749810000137806270758945607769908007592864600367803059723946802104965439614763375786565799465674458639760261189692107287916021630978303236819451803061839639636969142650539348401024258820201602996001307274429132467690434565077695338545029776651951880914481709796376248119009969460326572940047041906633384449417089493142603334451010217684158317961401679709693671461918563212518697551470369550741108353604074803473706565669925432933257884215128586734517709757560790899009554146309091456544630701997511488207961511241700756139781262401258160273329191871192950941758752367662127881889256634354085545130133191013905192475029281100580213788763607654116256999297259262661928698625428640140871289274240822536456166865955407932310443501215267434342794176732507928470784737870830549994541766448808340688531155248343204676627370041362668321688857605220164301194309957005312243487671898629896572417348517738769201852504962071745325246893965782875127427174772212721449957767033043138162069458143320362940060797629847536551466386063772967843566854101645955380574943927363176531152362544307589581090692673124409452120384420819893434054683227146490877267147561590450044085246056987800952033807847080495365246444616988957859078973120193703758226325531816931711288684888451425102739335762738613700396207452355014247702360389241032805743581747658624472811198144286546426155559957389371381735815497962835000790771595942538695447545427362422225173387154189758794468586328521260973865011780405722370936494603084232273059106198626387630099619592207539691351258677151573796441301671432823851750696795849297209344286126448363260458340166855222291169366307559829890131321397804436347982263513793510522199731366874744106813287202083204502492348759432085512108131925247574132209918392558097667869859288424455286213717621760908007365058997496171317126538951230834853304216507775627507621257763252930847329374987370735087064807490217830406155687344827256655791091146201856026431250715312555078884328309600979480632110399983827812914627803171347956333702601883428971684520021264455965546122981242396160075863098635801697768837303596111884069586798166757055186669009528014436637824785369035471720422218202026424593530369451998620679799623837127784995960914095542413189691448400647976061209592941870477995500054466622872010389642715086600500924416969979288801707521719287315531589101917699327607554289694608627940719760548513570189410247193062744684659636385873976545505647373172819395526386471917840552326367272772508323517387065544796646785940986720960313963458287498765367350602351524373794172378035216271582752294781888758495087937709133021256541979718586262139584114122426799957885388254778141295151054093981299679501506390957601959041065015840497003630870151009322098439676114697621990174681945656837289109311695827122851734230650744179094262310842271855226637905890203600783464095894948654103479441712816498452743464812694130504581975982258469391318035091564418894847060037799816053350778636535238335732290769048560647290425942314935370598806485744107151400710308813668283938991150675575218184385697149864622243009450879322696036158592680225933365265084833654930514401306042576967133164783127603416446565700038264599831100147961707972838129137873494060568872069568908963835616006457779981133944888127535570463162797142188007918981073191040260704144936577666523935205831724069022409995323866772179073501086935802036720284006964200135866609490532637106829980110562524169262710017319637849100884837278354930927612472547511880319991697964141355595118718245782156060269616870714877585717964925344016018231500323639455336402573319556090466070298452667608566094040638427853740434643774490673998083632447146160293395724194466829944623137557257236261007743923172506310195920803593015945232670276705879007976887639260548709577523439381037778101705367229572280690746763065385859642019221797816636490001019367445796234278062340571082030085803109651326540263694202804207162427042604687005845175882872419948716734443892262893767460504797657474715309867006923308722520299127359500280419786016324781996391044322940782686364570390707986338871131107291663803266655108195889857932817403244679056944994754249548746352114159975099471698900771040949423235906286819946230317814198745437077804976098157475452171755911380581963437644490202672013178035959166018975292795521144775892607387361222787990316432329102915288672808568513904118500329305435575348931831890598105717050393320881718504073634510790831535249818994007391349167706217626195315940439123633876663656492963646536878176078598339772752935674942950121016627453336449497466946593644523930767503084667386984473243369527378436507417815270837904592844857337397601440264237633331592052219263902226874666477297298530783609961675372623947786107778669581485312300082783119234538317700914375463026715692649890616558786894970221486001967246481785196982861315861150727221342725352102035051230615361471215967908237348956903639199320831999529702395163477315667300290789857641138702791339389454016565117259751383659096642362534389867145510562852310214072201235804136856000574343430942280760105712153751111763443173418595986492969567432098753750068881903590874569856304063337545453396788782569455558504725069726263541180758872992994255149598312881353425584937984747044786170185161454258927404279902247033100530676343417072955167062888543223709311062586317304728123419967532024449285917884777174071517083134682486470673347859041256083247842480784940188291379970205319694867403134468954334578295616362871125879459435667590645980316198665995189128409388367494910513750953932742986405961413088057523961272434919031229627608048402988031638230936069702611095449337576824892445179596652881546162191249767759929517111450490750252311387167858369162792521951522201839919671995152397800061356126477988663759894473980508073579100954163616690147691260834560750831663197306140977439619171985008980613582515586147774795566515657828666737695366780033158663214724768514257690590602251288282686974554473739542112722564523110764190269675749971021320229866828898979134884452505231578073457327136452760115143900858938729479845357346131737144283369277208731106628890539838167175111586948286365176189602359985430026302759183601822284937857994908149039325157125521332248903455626048775769375289432844228821527296220655810012037061171151070800955684447883612793360637709521972856612889260742131159488077785322897751628468718435766514716067925049194749237855583675468413510075149888860520952019702945215296464680886678575739694771314487189588996723480487877807550690721516768422742086762215159916657291728328304567989726462117033769697087068714880108708874269559181860139404340946613925389544501500028254724882775896227111415344001911835469667208614299372560937479404509629801328956113442747211409310222118240461280396309517638897800664828714172780486623328630076770030179281654384645528833348416619301439966859813608492667807861914559073064525429150828188739561635812770608648124372561002443147373358149078535756551922822363570141997819640001263350776223485912516967201394552333933365615283909719142301857838445380415232937682657630884395314081914471720491756997089327408174054144308228868595270243925902627683326194218207938794252125782480146573346450329632063458814251729770994802768389716110093314234017911854234453423215327486368468893091802100013391130082582471816246107653215936328186003423195130172994635044491917362720222041729881473821049017059842348306865530462411904949716587951078653397995684499130785835561925685266734084538352902215095935968154627706646771832518989352814894122002710972453938443605184498105356169893357879389155642920810869757469167187002273597464163500305102311780566535018367146059876202403058542748633458563223047171830151009333600560637373945033097790368201427337109272804898835757086915100705637995049979335067943040656743382423475662703925066146977400563827026224427145719610584184471417010659642490114337967808081833405421307845481135573062239382326016921934050815501765869862944116146166066347670502517874805987613738004626439242838970492097526806434247729162416005977411901980669046689008567425856812927219708522935031249829595759149199305511942367904540356063896217002719656669825263531685667968312293262589880177749420085602952094004035936381353026344195896677561084846164084284498259690297024548756714071329366081058631608500065648106927200604268118049387004601848988802788835239698860848349707171421655202421059690421890346117592046374392285881689391324492594021759147893173630343560410676019042733384654892788732901197195943297883508784926361111293688981145377505052593882415073931084736882611703406016623558115767140920875915816602482814165561596021257015575181801908075716305260145580319022325090254816687636630483084111973122099079192333054575395357634863438289574486577529487290120823995049375195739064539172752401490868360332558687204325742139352842818934264159677705345452440897023778098083073877600517191897683859389110690945257289228091739979869295276631298625040255934849482968954932154587702887969987273027428202512703126934981043649336276601711933090320139737828483028557412215134249882525459653534300190426060382108718748670355981407096438576279296688788297801575295337854605482393185432911287494764635983883928516362784368571695515216741932501656157804210621790779647351696662282359765052634633707982930377494036048407604291659482818178717061124673833196890326346953654889673903952216454223859718701106141164451821252561726257254353667330434587530212097321604576036316071358492042625469528384277538674248258795887959478003832485317321497674660868189597807666136389167167523872312243615711029647583267767358462535153728280867141575774492712863079848633450910020435101251645642445586127649595024551144201741606874197748700848454050384830150004991499674892890720015904234940115341141686424050525371603807394045993788369239630203243932899022085020125101743610446873522367639923934123035387485505533023603690595250546711870264361119577908960502345175832121357386077618934634307548395795236700557679178001997491303830881967491093325861785044133192210411043667312303502517348394995521265636079429635119362717808505187833781914193681178918051794000046567079408311970233000292297643977591523169023640712036767957252968402786566825571934597151689451513556020284375992798860696481853798475221726564711407429930324119998576260398283251389874414517221976569515145134239477028813068017460655632682706955382397865166833112482953359805128604949652025881508056282463103795565741374402251333421917085371931209892497961628440210164478017023167749981737387157029838256423055384518738876142245273431657118123162732556486705007563742856932719647815173037281063898677678533947637395637815854399521054912508053065572781782942726119572002594245120293218281761437177697313147466928760027874611286790772932733348857137717735365688814155513871956355969652584685710698310044188247125244961422695918103811215266433132496804335566307394872087709281890323949001857831498630401473709459499941632360128795695331472415747551477481785722750530631018965174283342199702115906384510293280251901151860343549167577995590955734742022508563299000806576583140596227978828462211791841136700544803980038768611611302962977562565141188460615328441739298735943270867017091022135199315297344532843814578943421097139631987263468530096958752007968970372050760734859276808559841643640347961538168955011149869564933041567354390108894520906977725502060481023981170717379673446313937643683267404703226788742708006843528617327750978945527941522583661745844933060889621060907327897700685352076264961295265058863655712492785963340440443377060100659627588288852308084810665782737547640075157983777503502172502079361661594283021773413674620691917081870269248887420743535695060101707639152438793167107991492219802468295181400586739724448868238404472581727135702769815874050358367476944715216522127631832565157826674460820830338197526650386958484794933967686944513778149363015225802132625876642537001679995487623475556533296102374491807502640771188481210751144897104418324131298483070777990036980517710483205448533651974388195405536255796569957088914040734012693777041057659203966626978070233459785019086709246384074712924467721297252384227936044088751028382005094301582558453214937241761369533939521739451913424890130733048696720048126509791831870903516649923886158790595331355371508633250230257652291348146467402364621739939653146408202145022849830536355195791927679214023034916397349001971306618645038730549220414541228975743271016929062175500057517666559514342290615854852631457394418560322278819343887519194254628044541619886573336030654022438469000719167212425813368085975205869498441277694298794185437150879028579503459608187846300266785708486151436047476130937685797250762461109529875569953518662837676104441453224123863743217251546917103601675224707572935034762894816903455905385471448020936028438504505663879883466564144008130570160759706799760541801630731367571564495279869779279520707723187434893605224384494191653031177934805134513043964981895497183773733730624543457795183968546505186648737803772102458365464565726039564346061268917248485947980140040821981098915733888378242043088021539549128518644420159456119388602032973069998854863516458600338040118178908903171542805864650280142901216488195973519584866462096424467698174920371201059763887056954979415777245555951830481059970312665141780785625511582152208336749408823608421349128966369996044422902810129988955554518340544666775302370514335855560670816355140392322870290292356238704033973403705429878124197714609039062044801032462365818494525422909777918398663962644150866638040443191986815495567479795572949750634866932342696933440847068140161525260845791073613187206301775874778634743636203168075554541637676146926370520885955781312677915225713186974700621883798733522933655641826584907270128553673640665910859336091487386677181568001424124329397650002317712481115178309543479320027039678238096679617122961054989740669989091545079452722356155120892185336018566829092233798501188530072758357636023730849792713319977357227915528163679234681026610655528343648598917120062826633397668900307531809243182677549555575130939495142747430616933911573592112278882793861033029018131915537044835870266282855031059329694923969076416285874663608168020672945285143174831208427338632938389630265359013062882000897705838417909109484447497568235832078213051127772357814369629792123590165374658145262687713049192802567034783908995572094238318388725466194012940218585331807000969249270722441688677657459006682419561235478722409785858818989580244676094814600161673010196085945461212339676263910011405594731631682627514146128165661899979043891231779994164037508818540187544221765486147436175946041459825663055106757963828550408645648066841190723726601586897662727876359626676514722621926811110730444536697109391834019960710817969013449005782937136434710911027352474402092097270018716955048322356802106228450091622518867670219615385306812770140943284974133194987514573285191453524689532262621319445258992013665258226399364655198593582709433794715239234460863478622473374335384985320094516744515694727661563699317807014236996652203083080390025632607780502579122403623477902867137288636261055201659658908257003402923727429449627601184488635876579339500520489870507209518964293072204680329300623494527356701194325157320990517400586244425939192103103305798564426826188302560494690546253449509344599737743052663667057848491809594888296888007107870760709367537228843090440867610712020027544641381388158310842355575173508167192806600688626952758501106546699718451826687932362198636312492257156517021815047417910342177683089091098572839597593924379942905244804432187222202668900632474871122126226938818517023072087873681165160395337589896391855767114856526307274669524102052278158052796933989385170055194664870677947957768368480049844576067032315847623461049872218123205031875478578942269806510712706336015901747032644765263854914897462936666784100461461330196287986478613534021625253446536507970003949073279355818172827817463805756600587640159964213588187027294865341300135712285295706591299806906958198732522112722428297693109977106043582289279697840974947225135291148644484113384351479811827065064093548304862171700814713200109806836326478671125300752904414751436281730471272104823717923857127052319979079818790790615008279244815094740853405178938928128643862621363331481399533175809018279882219850569266882050821438747437404577577191576416761342532525302832185461922975607839925865923453118889316771113588977892089002980735941500676112945225330851072533089940209916975426841455463401364031392674099126792339199848943480448528550428561413900088556846945931693614004528497699100354419836507947557848364874563653182155221506664036797032052972889715116075665267398692239049612371551094943394675152338912075413704704747183524052582035665362800697709529952144706874326165615864270137808570799529848257836627937810519946867428013896299789670821285683559198756005935237405065517898418733112176425349249136099166658598679611553721596962833362979906548992114197488299310370298037863098658283132427653168126860518585684575975995361926480790645240821547896886598139159680288617120355005428819949251173471655575750708033355166825558087954867951496252983120978889359541728835099262522720176054966723149631831461745950578077999972861107183212851705464349003561392610632335270588724347374606284162888247896060839875104223010000839023833627115237370258783811670229619125290357493795628608663895839808339935875250732810585123200552131273186223376087720715044195328959215238318102945466590056574339906016071384263433614335571033097196107562757616048495365413632786911036664378712284716303528711655459139539677712853857261902376064482833264579038793938815958451199809237089217173270370350673130453114063687562458910177915855409571493994858004933012114146091467710605691255527163887020446189162960383782823688295071544554627200125450293757840416288010897700067881589392218540205316435761581116576499012674946852893758755525575368310892371360678870205706333906949434391562995248328936874635163934384536472776703419733645036100849755963263583981431307424356298285180362123142765646206944145593836346058480116471302052529465966276236661579215141525655046554482823332133432637120468781256353367873325386990961897490753874276098661119464681230713546365163452224057864537900186276586032093017607001631437936261666263919137638732030769555648966402278467706961584830361870359157682855623413258298028641675455666318609339684736982243852636854003209756259617859949170689078530313850561963371119814336315035154312765644245433555782392713406753109798782853424605766134989417005048679205288271255817470356714485006017952792859498662499349904631615771460623054986218406056993657102680554228133092144484690048062303508087046262415115363383270010530448537698733396860286164406626422086341499401258627304901807618726118224899746440824910199856440216743810846452926605794739065595105806697165486386888123181655778365367855481806911278065059526863963407724343845626501575602351925601113491228932552330793777062778440972370368481576109707435615786469323424134678535699276621925082222179798726679343898819324530671233619701194547883605059354497974947517593857143109525408203507526417688463145722704466113415528984291512713163696231443839751462641454661291287787937819963174491003628029648089635332823764755219893421143104902921727308747200114301302026073952506073562643913987504202637138750800166951934282740652715173361459615722926260312571167429229212308240104682222840832682751512704712438253450914502121529779078386088012393992688811280809340826517290965738891212872558568572162101865564890803954347921300614313679218012405346432200792381721855312490745473132889054440709147103828840040615563854884210092191796657432434393840672245359495556806751607722980702950430795024161891791473630800850408679311366708773628674078114590019030916755426777321280164819262717491298062517351857987402467147368497118935267908493311948039111886808489245187490201995649287178784849824491363104464341697968761299437414137913374991861717591546571455190221815640428269077019098964502544174520044655390532056948167050772484246101633719683817227950121291130800420601552176551522485121200624259878010208882554556066195209382906728754348096053317411260561220198404759425592258093549832700115790043706597370773970626864961510442379799461064592075937459732831143184027817677057852402013187972231377829001385672658730629306935705165075763012486501375074800058403698074532634200955651499185150900027894907936006226194996718108020438088710930282211834741478501283351114215517626106610920247582289037648350734640656028823491808567174647405862184636756398444345010053877696797233709819487308859256691511054898838760642408670254037134199418995513891872718947520068924942490504570721940430312486606843314321010273153552665342780734859428538140360299452887042690930503085437404043494889477250189711747191604936039208732400268720768849264969484904904062771451928004208407276545101273327419544431293788794253140418086233495600284422944905506135222253536493310842347450429130164380716340498040897418248860856799984722953860075673059358893048396017710954690515841248285750086198085145760528272138369010945907390811185617294335401150044992805694754681086613591262318715026487052200043795425463919622307597894926727765816137964555767443101432280105035119368804523894801204067456327317192178813835463832363770332012801718550658422292666404610211773827709171030641946774209349549489041787156934366549524253303292758549425276382581877593532823714968095548384359131074743410524470302108992061721917450234322147091334735736359493261025801447975049408128196018959751373196081122398377999524987793654575828956591276910171392094780058011445861862872238803710164488564041515407101846152659333363907318067228997657614150162596865382609892537409861212579204041971429399068700290818619222220939267946431992690665134314802883735281786252999308865101169982666875824470971947803890068908788366430693272817349688792334471694122262150247434024570459393499412600875671865845807416987187988207992708493317532722903302230741792170198146758248221669152379274453382546351397391671493685075533865198845663104556674102285250156932872624720953687358197197092402227890274313836308318744136390222477610480813859192826989267038111668073981250789549950940879889565713692547864649986220004836055365291196607176488549883771576758895232298843568425063640423162238160653854698415251646987343980306030464109778155821516897955275595162753708910789462476257433761459181008694022573082328371017905270234986276694464707583687017641919949216379847268515370107640679089010863981269933133101744981894824569592435286160789340709078826866166951155577611925823319258384607121976891254215594005611435042132086089267976048215801984817184790947801819002868960037984101778750324023390899264439917038996615967922649073464405245999857100971031968336998147505463286421319037698102806520380754561924335629182041929352523598611820593086230630434022197676226660892857857951057055466245723428784538561787679789398152735075465974186169520241826550571871052976321866362437326129776497693844089546307689477129777011425856695688407867424229636406357171690860438380266163860415227389961737257145507703904734101553318410044600648391370659346629987678978793673113438257253036613526842689944883906193534133545785959492781628670594567698698707793117662739943035775953355495480656407192600330903569623990209244059071510502242050344859157161416829481207810415196714963127038776360072448299223030144877970222640842231793460305579528047229536475703510207978449687479039113848144789245828599118789544345711890895637644339539590686693628754751948958205564590838706326987115828289958793602067438916553566519346979739388268876797235463091752026960804100402232047220815797285306899433357010376044455583991172245992072348786422831197555153386991032070327339778479105480982026877092879631702710865619541091183574749799737878807346807353389251692406931207201938059318149949237422625580200631116786153566185763391908886269521863772797384403694316903946732937127469401458371102548148455629347192955160070711683424855175386180384596228062112748802320763803829770014789552912267134023930071866589531435898902636005315377605634871021383946065440936052255647736721910455024941058956670924497262088584953959494393237239119170650881461537739455077922771923368362245498270708795685205267141464542299527335693957246097683461250986730866113680008420417422580237500867620371820494769088338773316789605355715243511388815513032346485897075373947501795704088303470738826210299394631513527977776208129548132141608165122049573932416585749821228772310012852212689442368057790779298664333587560934589349496963267302034346318728350934074965921309080810822387656030096239179182698301329833795648051822903616124880255591046955728997788624990907551049338052543767440289833330347477955879659746418938763168615341337171232084110128606621284633484986800052144246792598259609263914123809076804760657420009449867485368373008667236641292390527009922982054804675524412710157895162122606397030709639796566246095500729776781712870801790700414571723526517548440755875537806996126825605597228594676881074817822727757692778464557149959018085001170606748955649814648528346030367945190742378905747417786683697712486999156738679071262525558171567197266701027735588582664422657487387892458363142084720543240328106231644791178742385360849570242239658263236996126693521692484433578356400291051559690181226624937469322969881949480104880085738502103769317013550533401864217276798305358507657773865894902820019588430903526070081753595385131635385466692078869767322082289635725694926594823164220657946080862445092462692527446429445122247999201752131910725926774603170592020784331155030481022527301671385464056150608034929494147922765909477856610924012482039552935763888980860764579326589539798104617716998976274629824684923350380425777148449136713206769319076890945782405511773915610990707615054439249353958767172773898276096045096354452454610768118343548740540301773335920080953108161699273683687126683542667890274841098547470048245518790810288135613901233459469627937460147642408089552225213722422303727686560479536986044097406517952597104024239271751172255614505164701474072812891028528259178383219290350035752258683325794529849134760337727384803724264243030519838689571895813060785935223288866771393718525935303097055827177479510704233532534982161196066915575238827460051817377490880415662634071918349230909056499509308510131067195534402167616014920241212522379361876610575667737692664871071908390690733738906978020729160745425184339185172719320165489631796504593491973033167543579708060114501670017171123117948366494846861290042363027967355096894047453779146145602434389445586578377639486580939485292666242562985797846651448102476832345299444248088081797159048974287169903349102076930783751963851715073404793553123826523788222046014319068138808395794125961033652209060643727757536986664423428898611990191793313967238428111903350198124736930313494481512273382555039418317138534876584126079915112957743479237527669277637209651082730997327853263328215255183942140215780734353901196797737489827930872576368309824760208844953981739523541261294448565406070270142905688534130370381107100878393213339681522026341154183444997079432455581513741154476442021957754759710302573500344146823401899612101960912637271007498199362439857762749968529231141864289759879008809793979609443901652980855970299514924208854961172135690328258020431511857698046596978307089793094664469153597349494969337674171250956485826720519915649268989413810697796673743493407874936640599754460944584457186904793768375929611454174271887588501113370035986007379573821959705929059989271914834491143974347299365788349428625292892076051894342123766222131044993133653138143892301575822706267113236787998926917248267202012864297773090299054040533824313094986959108013066205500999712748774342667660568890742486307193616840082706497813227660151296457978637071395979893505707416318207525403750813843141026178111583816127984834170127025374732372806174854664586976139293605181803655179899536670100320777140596673595689974493079696112741473150191856329824838282045414454246260877777434007208381583558066497001457697920769944106849959657885412549176144666472160798366178796322705993499107712148686815238191163291429759929207162752565599741735122166578459136753898581508271973722853059512052075940711398831752797296166955180020335007923754964597982910704667987952340876853155548142742887928735711778006917067483891487956931325017499158468480175425594004315108609523219197278510196294455842836732914343040048447599966665405542534674338890094035125769530998837757237540739853842838853626870430392633698818829156111091613569563495972957584747796530688565357889925272930182404489033014420444609016194917177064778666829542350084730470894995594646164752826305961568672048254750986711470248451844952244730117320633100341500811755285545794770767432724367240476781733057845465082108189628640628133858842195949427627275571979615177821258097117678363557287169500977405666151853302942142802866878988708416692308747963156824417516504818494607524631343212608178143876296043847773518787760304433428437222134840966131132067223266259721075732529469212500186298608429626120743415310317356998031965639584258562251491838243761939346243270609762884609583827189145319864782944096835213972856776136828411093411029856342886964124383324306563028609261850294483595877502506807444336505291030187667286194829119945902171502088255181836449914504311142896146068144139045719878540333709025365337002145228656058723116780295163800430337168184053589188057091779101171894264052515910738391510299922603004477265560001394975233866197084081120662989438196597593561174400499324382041079436798672160170016959479664300656673997146841999327374387272614987667726079200951048785222991777416935722612102666005785432754719398453577770182552956259600038674421189841208761938669667782856653193242383883147907811541651537187185247193867505753198345468171503764059664142084146515480598067002682617157730122989073133433191954708455401313772814600750217333372534735125536828562405330092809683309258899263344144855826994476519525484648368741156450726800470583318940542415449273560562918367593456854802069048954279727912951180563955158341314645215471092436122162566551256830225406466775499141204785724413605755767723440507088367805352028197415729679230329525002748365261955744028990065768901334671036045432801295923333156959229151279654414671736416062643173445526402704669650569820288017778944315877378854943192510833486155685255439168267464962899593869797373382008904892618545105150523898832045110855972797640763706255146142214659196838423913836092312411667176959666098752496444190694282433994989079887362711697221685260896409365304246115481930674388277443542832327340151199019906668323546649965531332522787973751747995026902127553066624887269859503104776751575117391408483059527622295193493649424274160684992063582860298104509076420287147449395566755271893051921802864187126151278226822826174812911894602646816373562840316686589873433596681957391528957954081673457132984424299379541991205141813251821878938014928964534127912355780068059830463927458317285160385746569159552436908926211893977935570052040483209630555827883449101600418807076174356935743714499556184788188964620279780465496649770925822985989485813427623995282656604260990333154233508099424539757881254355069468179118613594159364314991905686095732798172192770018619029183423622364522275952619897041325882684328540294206712424170582123647931710074755441099015348099048678257114896068005503920881700700008409327763763283493474256720636927325480636309307901159319847147900536695867281914270564809568329574685223739368851791366417991289855380953470654631041846054555346956240249755420645756601669842748231760182137616087706499086121477864644355613454514560613495480958337983453883587640011088532938012139713516889858636576024046379767375783266052905568543240980781230098028796681584197662248425392030188154631936788059067783132480711349398243010058495670998406503152310742258157106340165797985659808817940273549643285615567905268045823096812375600400963408574565634246277995273608733614581283621675049661533877207155029763589886077523568680486798195216020819980309992965044193495251667118684092986145241992728146230303020452805531771768626685729374253191225314662725560361919251017309011156298466192309083339659756236910976075789044683740394398929580962704547100873837574260249142487917612952019030170440594129834527946708290862808993017630287488128885242541112634827821748104732938998956362041827569438267719731641882030541001760401013920963248128146536841910223444963259001584374954162577891806750330404585538761931134527331981560609503956548438986953904222855977376956848709794331723285212306842044066061770737950157418118955524568779110196703710844729257956247078407028995711127935010480115300887087828350041545087041579834666041990805847434289623365286377586792779700489891439949211119022446796381520256247791138710999889235154835552318551569231584258607435013008959852231586123357357760868885950209322099902539389419436864272704531429096534719349255475933471474392716467223827265758756651289281346347847350963885244443543074880720718468460384772394993317578492554177436663010606674199123316421881503927571887955194357049086854636121486214868569166966388055183001125760115364796055032591009130520925409456898201225655345026691163329056390455335843102726473156555067832895479283256194732120596322492921434759691230632278893434356866422433497878958637296940675920511963204888061480035535877189347487382370326197379939876824993779306422011547531394044382664804818812148735149795441077262773474947137470251135537924548990675222435163727648080677426284364262626622598294714345846194517804337135766556616679576800561995239007516556053124781254115829680013234183364920293285511358803791598822031488209402103215347693187729047177334487767671131177548077663817842042621240973248940417309891142763889355953829331939675695611580703985981741176338552124507012758059431948785190187733387977608278378313100528488245764376780274190200683549452097011384614597555906175600826874603175647446004831916671890786782772662206209714668882617965878795369579022125619071722242886396777523398887144001792118721467508918394680914994886887663639119769303605255232141981746487685615774962927089348999831999130173700710324345471040979904067058459617996089236562977571467106333916499726306530668811888330606457658554970541279921844250174817337099143011463741235551808517635212987871669335754833010315991187592419036083462543478432119815278794139741101491785960619660069663879992034519095519833758097353642126777678003090165851642218334549332406436696863976121014121627549109286560496404543189125188616568875205900466300112576102122792954636852268647684794278891694348869332944753394352304447980234628923322564192801599003107471729884103804438318437790555616658487827947176757224185658633882293333299574672473429671236087269079497983157487437846975262321690280367247035117871824825990661106836604545752988295909557757267838322367855928296359315128018086733702416015701687828681433377919703651238638586616745562462023846210935096613538684135741857181036692369093724708988072483390858265682160540772586541545014423944444415549251810218319300088192104410813235308730118309776296218171447242141873354522223676478040468910159015658369416363003182436478176837270450699147329609198686439878719876108384556670874930833575136341419188026793584901577018838644464274493085809769484535406082609109710995041510315496196479109534389793794754971495604166623375786288851700888706633537401224422964910604742033033983834866941213793116409936348875176961423797592687411672414503465043110870431093222722430703619115684448718655920293919382521722838638513017715331923184496690156373996526132479479598346553230611073312697037646798438552894795838200798323741266652027353021976878316413610404036788658156834061276054002259424167027584526690973575143925475711719995796480009561460170471516808474294345455771608025021682165134212399749282023603134969181838395980805653870642470869589147633918929755260593739482567085978353005473296089426861299412722240126976831017191532672674613151692914185824385570186953297816505556739423270902340118767458607589344434353940230987474560305152502576551133905337787217443158544180822768550848609179737601583025903729963562737203911066737771583608656847327853040212947289278542251169810489971783429170392386995859029744164310373635200321684478876707943131039480618260253959309563301247226526015151741809635318625039026273134668764785328701782697397106177923426394624486369852297898598501935809539489698472105635475512858975087120714656502903536256606840022640558619140861613120641773910726987304955330623683319369276879830708561452876414660000007812283754136061440875728530416564285914053726882770089362027920622479220538170989744690616112258903005750199468894745882676437339382804191423856281402351026378005397408249954927093206755144499288219596317547395826524034553043262405392743246779357595399681679422606239157375784664321870780358793538441232930147896311682871532686814573993100240942020940766226032080564041110772574036086600402796770115003302399057276843358180260966959635703593048606967468354931849376381719006047158198091463130832554170701464038612569441638049462944808000658833408802621804901142463179304981628572216447505147365944293159129107938178306810551610589163217836041844538917144200107784913118486851559198146409949337664944248809658124128339511796189230310899094501450721562055727168084162309951903117686059712450503020294097811749568520296025788169113875233046148123438561424886941592919865682075497156073651249258184534724228157255341105081707291506242418600182168942741431878984951601627444930567791897715187752773378686408978927608050676644964891229109409242877438247319968631954443201707340165507621661552511249980267109618320982384926795913001327802694701916700793773948318284937398021673300646099457495002044731569675071572759715233970271021037344842258131861485181316470281905179181075205477705534464694923118902589170530806778855915795077183009952417135462211038158655914573951129693412070417409781246999517845207294864488641783674531273439947968963755938524577909269419092952030435518813086211801968100582491114916711125585181760143271524920195350340917582936907011837332694357811537353140199804904549558957253883906942399460993467867320765013132061878584748867901663080392508528270692160900626823657719814126004198026695902838024681602371489133735414610550673693767535565239242908526063892723913272354737846615453383592928706858876909170479152371443429552231608043891384407562883352872940066377791257756270134068480414862614354894868873249545345141099947722002180899548427470164696639695245749054333203120472494762947283675634369059618385136026389542002873221630205015505735319477888006302449578489876430730439732496228530332756391177540650732725984706797747248123450555979147297490654359471604209440380586927408307081652549874212520236964582175012895644360378150345706507693690876362446308699164577846002559319742743864961197827146054646765429884856163633051461303469329898904146183321480688888975891749255332884649834831537999302052336350654145039586597038598005176162644334795250450614320937679736216069302634854049179086842728964576771781457614512248016481723552810521932120771510739751215311776722073484486758484857488222989406629310877685075603099209585258896451438890214854418523047776942011873183855812146933402334345596599413736144068798889542996294506305770634575425506541066411241770500653001224903994050298395210474156184771719454228428821406873465773569784255022955861046883625055127207887683700899603524345808712899975537470846147361593516938014541826069475672082550843801972962037317104017214501193832554852584812753702918472946038609915019620989485351435863391568409558541998012136305758670774221799284185431276579960914416723688455699510401996471907071494881877134842113267684113821165937914868107539038621554819428876482295046572235247374539437002198733419306066631996702884654553486900080836926767161649450865275488983866456801903564753370453440035914064649136499516662440129797453323591599287669709207301019425307025651126950771364837373687340755259192741428595323932928401909284559726251618800301533207540667268821561709683472418954863060340562984173068978282068604750764931457379655843491481493720691663098161377511276525651914342597424920477205775539569214275601235078573211254816127089316555680748656573658420400776293872235165658233034778781898659782624513654100146943944874665223175397323840053514171764532877370190634904652110655992848671078196131705292025020230636200717116818416124809999985712546762068401631516435016397979064612758942795481543281805317358298580753228503859986031091323905388260045402117185608659278715825994931009278941047856293267311696718134933302738335728076635276479420123400872329357922833611887059479527636927743258951434456771338598234856029850472147497875969336142020828641191273158605199254108409461427187598098098321073062014692775612612951395046584072904116113579972759634863459792664653866636669058398292619995438739724175880522559460422064364065319346969362598450646025355413786151721476157491851840351487538878283097829464129394398336032732582238292594216037106263074364732981353192892870710554378043447092383580579713051061967194173152594795685855416209328288754567669266449246525657841619201364141027030703962148521262230264193493727382903974377718426054083379936757532247999398772204500889746504422056948030870257724204540138185604424878251215529787230774088665480001572100269369467060494554960411247247783929650818326930355013270612981223500585442754353070271135285457724141606748853842960266224169264723873541737271293107054014919218778155020847922291627349208862012862758304283288670826478642521282077717075695010634159578928902242821256771143706889374856241795757872792708462809611786261701221482102812026555983914629327898222411733577523157518533819582237945099310848775508202950440512129529678858492184922530838723508524527807862116025188106946566837302456864442226726389984928316727229772217439892272584321423237612956380610914542231232225127630159727055965562691770541667534417098038294377477480572203401389084916766183238081852526478162707715693911986300544355803797753455724677945924932842415898871203148358307574048839006438637813993349250863892668355053114573761995544190405943867512111153704222550695609933625912459876266003569631837828492660799543903860109924435518094165977578877161607857148214991394439092505091453212669600913149503847093624988848532499168114475542756774448053705232627768100593937393049972057788051532517238675842000298966290306174507178415852390937017141232351131401378060679829943289299220513511259784274966127873308987278890266153846004541774235328454762713100510095047960415522298737662427734754315977352688338585251920015936984507028523259259722566981426630699367029316012792058545464575034489937196605264409631170215945170481381690374622540038947029805902626529873693399308447759802339118347656174743352996650516276556178301428820857492361376745214480749951090685411551272702300133279049990687666605189293086363461205839586651260955269432312631000188057336797687946072399868425325203554276798629497881806208927088063131093540067306746886322598748156046290223178906881849940148510603406269171167924285037077236195286385759588914660490616303887382691855885324992765368794321084296248477267056225818945015021764932831361561982405659580011704467377028322403955815036719710441510584789580983602212010181748336772620964682352421965329203437032703746990742723290976209026585429233860114140982778735453012982079539902400958174179813571884487149537495829151464239616448922019303123240842827138052704922884689438765213792000853152590549011629153282309644471868029118618850902886933922961510137243542271006447551227123022480442584802248032809034985363011774011084774754803142771304754548559056513512300562420400564885461944731602736960702640236007147400119769631412929464279665325185249604427696161603111617593223294859554141726518788411668258021700070966587531768231367985979317653813767573678710064122049651023531173025003949624588569783906003911202908447327621920688863757003613712492304154436169367649819521521861168480828377058547943291705683400924604047945432720615211754440269504733443801077171056019580218160062664320898038233942889531753918489381509517138581931818911361565441371504331859974401420987137339364517784059046271947946011475729154597170176057697679285687237842659978155737811062956793306330060651953844534390971182983665518550758783362921358180475383749830109674102626303113845564518210177402819065421364060485525974355940271642813137709117806993075308895124046271333689732884951622051199442023007722018124034171978800827512629495142626045537459694112850621488221688303814725900576399189359179671560031773759964872031568052593019915372774199817149703637773669189573349986122553641064217734563973576040939691129765147987617901833636249307004322255493829792571399080685652906309284897543814752949429837617761084027937772768374357020108188815281150514902029013043291816249590903965463737715678724850684478415425440648110480330054417244726454715489071846914559223639923169126523152421409826184340224509368552105808561661637719497797084294053623589124105543916344423629859363780337187122843095007177481234537056510036605744236279664748780794645320482435940273088222752954363271987061052703479002072838041070132930458748159331640977788414098745803141115966682397722457760151109964350712745252236019263106695509529001107981284206335281482027283629640203878786509922931403353479691071310391470327790352759999347067780879016495231869032511555332548162778577470037645922013486415031392765684065900467951524244856164268403793265315740812818204645638284929456013135337480321296745024076739509802540182630942564246605141314331594443431236586059190571098464880303047195467717940302438816883139494149807186540896075162420861447693387269283099839455678375328451525384108285669064874605345928355333880203079509582587269692904717526565877296542961301593804921434481274747420412827965519441870203656475783877046141746835734423242614049668874275221880462952068991900096424880247028265495097570292327977860513847280441162961385240570685335367288852639537148177481654908508237952615580557039298423513200024682840309964511631765572046393598954204958843514771308593764183237233554537150914818811775953711402561473848229938098952530068807612892564558629731551141961265825938778193364565055620981508323281958838968684748933013477731717207057112949845226360417876080485773392432971220867609660272741652058626136504154995948473481999849169974768011725839645091435831005722658498125019943599486428481649648524905269077167143298605116067868733460526779204256964377253529888768901448332317456504296432820863423721549313360618711173141751274159566353307649051111537646389173938727665092290508587708724297737891025969384789841422287317096913425875267178455679411707726092490851858648194677455421981651159565369176210707703489864905396314629195434783454293303126068875596176974354836438160002186587180896912615642056028394964927759113820547135894613238796600119622516798102735112369948198165023490624792276472409945973804210380288717870786319403286631369853178053638387587524081664125285050814040544971087893205503480234532699925035131036775592001352863289343563515725907888940402896925049225348958930585501719377189180798039642545835481972465530517540808627975085071045551079899669821759573347003607630192430518061984036724925896168304139360717168485339859796839461386038836087516594048792460765496457194044197627099444538506130137318394997472520429724123281129173700600809039718864400231900756120388744930826061408490049800446359874811837162734586991046750641663968981084661305544682900838253114681776599564810977918150313300656724112573486832571021674279576061885326214125338542929662405407642767701123590613309904871530734944629567980283134874021971865634377617585561148186078301326378509065181968664700193220877341711450066839068452273659684411140743614872721632493875816439008335952464570930509515472761740298887543075873316161539010036278158370897694979183170836363547674812890348534449379171042676864129939277747776766633515151884996157834819090456748884679125020924506772334881128475090313140559711174914320640705161094052164297684031791181393526782992090097826323942773123630799759979031597981708333264640006752375391641026634163459120454880844040433851132132432146966910659144510457736133174728403464220279084209226453585210751148680577431873885300693281191585215274066551753322879484897216884990972476424878681343995039873979412875069706744595923216264128020729293690146313756285825312667752103391573165110580923421883052403354734467342654685606827277322744555858364570571611282989964091831618820802197417749767044231787512926045159608976397345561931389624392135341042349800705701997658851845740805669084095614481284071660598019804911855542745329786325511925405930548403187048245308732623220405378221838347369959699627740733671330555196975164840197641258607978387213192986393525841936755900209090991864338663968885364543219080219057337923047014172678098840077939085064168953839976170479856798841024748948749671617545251088866440452184575367046486168321823434265696212290999401341763954014884755507238313860187565330701212339991335078783035479292705080051728682726611152899975157230754422311358788549948967199864414183662681197213295932411423840300824878234685180441884536313919731331270713677545970205374119414571795742972842820822482524679432691696272493264392600050571494758948011837780941408673492744087732062994534839839941138013423758417008951660313305749938044294626931135014120584327072273571149205231930850264133474068095194598179899462511001149106641254242634206034104906133964889035092350554645186501253311832243096798715628983454455756528953065421486416373358286031829270465085830951886725423050870435624557899046709669441420454657614071653461710687735390275846035548268147344640356261722769863738242479739567685968982345808857991860992684612668517247765392337224157250558943446531517361061734161550330167393471555785224737097144245995143788793835069549089992742703310035250560385934963927437620062714188839203060028572481817783017537561011121541903183312432153602680283130701201587372119933642002311801986705293237157160178932792194798386997612714527030774113470843330987411083445294319764026858799588252891467930148949751928539027277325385865050502001940261816907016218480317807862835148349705918048667413489935403340946862173259667428333154937582853268502934322450819709271595694422880858576061438365844577354105525150597524907316382887909392404053582933436318596722141449460884584130442164766316741979081322907147566785015896282104707586364905029267627211954677868493362992970926806604142066509957270037205048312651436111273503699600404613587887699553031738709014135438595294353746225600765667788903368459118425203506519381474397445276227277622310228662051053243256128407524757884662559512795909998027913175894068075355183398287768096108530395412421479885384195971333870591867617590608319912414687067799189792621150154424837940568053554849585823065050672259953280186839537471554265847434620580849780016530232103756025545970997399892891699632534516433422126108939690760313467923587183987916590786004497116973733590482351236128302415587116330810882155239186383189309044925869279162483660061914300420655663497823592228843445248176723520400124655707368754334590707893323858583995528737353536265621602891467319221068749913768306967033006731135792781888007974356747160271358396953646901812163359741841134978682391253645638055978039838474565144708663637621151392297557129322386703699454610155093267142720930300716725990703620866389780632583788878286358776451566329320246372364625472852747930235687556989107895546814089472428190829252816736262664506943961870849731453142907507640545340153917976195365069766544782225004130184744671144556703674485510532128240155267955993303531552217059680972273641192001034160966165353217052334271162501321742543456774468489414390914225136454337181134304775141720094366948571508407457447517343614631227198320859030801455281367686485457167374744592144417051184907881766898184167495878723002030656041474151451253061022278940276469392005707374924966453048995999915918026553573409585873580957508807162268238652090893322937374259880702054556330802395593145478494140338501303690369899285777997926865828350956151483186291557544145913255062868573187082962017824152497382917629807114402855668308471063600130997103199590306660408875793011757464974215246313071816429916069864298544821869408719938584164095206915422623170178559583260330350021294381149017841072788335644273112580134157238295243327866117217947539573246877589011696111083682794262274106988713445123405165975485406496771806954785498854202280033699931760863634708327767383595852384840059639987636486942866319408418073279328602849733326205453501954996562818030227003555425055276256105841105419027863583238037131437551273912200341250076294246120955422091621260681062313937506286808566007297166635644851710223257237897463906372257090493277166356107785832899202013683045903787746770008437575501203137100631798328923306668530329635553104370448022893301537728991638606331311838828306442765767838715435764977829072162936411641092054666497024400309593812804118786658822787169344221716360392605597593442647426441669624198494439676686557645043740768913092910130587581550442785750117225344527537018253037436888277726327124167116574286526132349692033497575118981089511847334466375539935070599137907656192500992740217160922582585847756946254866959811872608925926880056783249341367054126135332614717756979981063732236273748064838751905347241954123756014996907488811737998086119449800561057252307911653730281426994873956819905282296269706120172516529251168964296136853054990339280008507574361858537402974839088235187315546182978444043796955076007843732256559582306226263065953810879317475613198492535832718952050473073329200573882906772298607799415769729020622822696943513589472615353235041559487140719374247489566059551163660615672022212319114905468562194177917890771453997524801913729410746166242825353292050669018438873039000198978880526076782529906403233401899467122165722552645716283455761952168524381466919324057719961013227943523441385686127793003676711007529359559302224899872438232360145146087477690685715286023263979299025178554253548183219945610517562393136634514852435770865125308594725533446309714113310966307920232871225952055259524892916723331133548833650355811324951288983620400263852435048281153493638017380732503451513626793529425264620691008096876355742860588490383129462547958221203103229162981020727624194626620872573006124343746079335980382157794215480944872091666398658777008040376220154152589088684852339312242566962120565720273327249585124101750024891654630124954031766536507128909537325005430408386222444081386980228244356293578587059867627082850690350678283743151855073828930170488246285247124330628473725814711300393283800099387818822031530573296618005443858449947382222510978260715409209913015111742505586698024679372528035271205627186899804076804930035614315331509120345991518916653543255218597703591840861272654941157988865685264168867357770857223882841040754021309133770330941479687747717483165296603973924579899126835287573659954220838776054045259880234963152327655281988340893063779061364910663299617697761809251467828505441225887176195005859970440331481867538412821767517223837333901481793898427428508767399168061174343793212044491058050244314005427259136036786123634311540770879444792838957867103904838444094498532704472363520677232801019094063926170672468665584443953740489690564281311381661335468154799165785258834803141136080366968511444741796056451501793139141757005681694120714290392972507247450364366463154939004599943995794966684019878245432769340824182730659372836545302831859529368742943007545537741228348683934822925040412534118756922655750628605159623554850663788199075065008761703049167310826868134319001885247855778888187154429919902972397593475539536513945288953816392658910076737736126084956130014925176213869960463225065939167200854508851530785792428138825598129054409279254715227139920245700449281055260487212475815546881204026844319729565740815898172310650411760962739084926598414673389962247728084578269928605911467828145448963210008675763375192179178159153140781812903292727014653053313592734962773438605159489909750806394830237588948604103913421550959376368591099311921852860421864539424001690358450073482253546902847313303658543379356452268056643267717222795688560318012588480736539926197996649302229120571528668816154785210574593751776971440188324737902250086966913880361528504587023852730263735689451587591937117044688604521697095357615996293188968370449874667510697079539040936042979814255779610160039036096892165590964115104412075524592061234127324108295721699441341757949808771030860010910193525313754843563363839563737732038125686631315555739355558496389376287056148832512740230882528895989316351642618320971600753135185922018714906486165391560273535564703500225038608922468056335385584113724518317214799851229038985684579541142977811714218800644006356697580628937542414826511950917190323601297080970859122079945141707639501625184877612609614506225313067188721059405830146072914040948406768549082651677409961953295908520315036184173268369244289848352993324695793037544031300520934256511324497108070258429976417885624775154200882222552611907620754090639141358425614031705929769225980607156037782159393386297426988734645352082576004617502171902235115091064856544320012695404712776895934693682551788404987591949024879895195196690018559967782895667240082382929672274927358907081156038140460640272764800062964465494382572058863698236872497272620836401458049463998556595515786420011323756286387910696658688926186534683145860119840232130609060660047973373981989343735738357411996946820834648531314099077723862636674596795327525130828830749108609370457433694221804728347035867932876417140725760999697918138470953946280367474713501138928824123570377839927553653318009883091532760012653343099771956251866399930179968754028759869546603949730819153775825775182832707218302624252898433920494866356659705369818649379451291209854319805546229392833909959181595164467935859560150343605353025911569097963954748114250555704647259006157297152954629775814413703283421570564381100634100331296236194231323027066209536504539640257577407371354038384661089661906843299532995491968214567743267308962628752881806754116900174705190799068397303135619642265026005709475637723148232971382042441907731634781160864423282016117959232474149076797436064229726142081138035552067147042830276227617075036315300109877833604530308468805802974429640913230545462867318035288725134223553909362111057027527870145964548227109626136305848274430078907268442342862537307696218348873218541448597397312279017310058402841753772998771910405410635381510159475051078239711087884766270226015288532432862465700196074527022603378157865973439070005333789213531777962068982734849286282799430134907126995308215435983550606852348273198558942422748484256343105018853907594480396372613624196868840174601110451362756484001906272013976835865176414238714432264220280771337202645300748677322652438005529162152649340985628254655102887069496818688531998211160815780491117183503476704653027972437318118084078571958756638157138588001923661519187182946457972896838606725926912133366284974261119678306907469681767884547885179572287921149657254913127261879527194112241773668998390725341219461164934310661715191571226407595848338062362673997651322212729939873733094563544844382603077246860258545958260343568299793163088040095622365529192139459204881368223556929555240505953742604842834538036978325071788667862695745067805481102203958214561305402857911878696488433610971037984173411925108479950081963812514477202404182340720998316588042074293890387424725515188362154188266856705950457036100163819808954979407953666909308032838412483845042018688711250054114752412380336594545954053900604274651365926552799872250667432290858623664033315707376865427412348166315865451250206512851890035380273284670480927683577093712148802448114194595076187532009500152606367542872067983509935870996705258023636171273354657506347331326670921813049622419972464270635711968123066010960240525503649158949952222956720363764785379040624296701355598553846808392674812668168810253747771424403129723256278853572084629264328823637891612948814114203200084944365002751499806332277753038765905558263130072711366777923017925419447296856182650822412547095976748828857821534681306714172451284141372907343516748918785564547568159170850699341596444775924828734868452333494547730435782381621229022672926675489347581785409150246950131300224640220701833206623454866218443105571965035002325996650090686407796147178047952463944544392496585164342691366558598869588504837186716495597843253189661012439752740125091129525565003603292025523157289994925340881706825092708280504980606812727632867309520610270804833878306781233728885201173621229122065593047801606744256027806287120011633981570572079798134402377235772284328837129528623937399975466157639515281718387295813110675405108536825579873238711831643583028983806671294215561170194819724925422763081523499731404308852228343920144602050829986424616254139489562580558104147515682035661144470724733055152718622364161225126469153833045733537823868809549399895865889309869019584777789106706246777890026038409113608415591742680189452709896763239611930318850989659573535595516483343935940613765064021714107915379985395638422729660221111282760564348906001126291928033584025236350368705954470746852197689355545195586287588393673378467119231649859647415949954269985940080575398228044516987701257343707644980006648273016782276504298519885373488363848562978527051114889430186343744991261768105286109168002438994244160262665286653940393441363681175892690872544390269312994674428483014440181852245503227597489742343064886961076684875461626761274360730825071377306972332086310598409628441032241655065248601533935653261191895930683296600029289993428706489622186126231049255579211897190042365545932250474989649140040991990735980197247659821192834469326894559111502041872403087483327180939654367169216227171842539414034438219465161555463623875316297401857247120962882965718954746353616419180882550612367609820263769877103029179476714454916267160499884410230153475394563966904168335981944892929070393647148482537917182104110230512486600824000705047156840008642565154135188128913782211511331286589676287793286759800118413684068677902446535555164432280874310061918477716937924325954945557814530211489282940742796987702645828382023244383401953039993598580856318633676403131899137228124101751505061931691445079994464959014555463436682596941806308734752959215842182841994746721413947722194898813997232382229892713267027416222261644828835711107587150525714742827596142986005203332061862378414056351347790076921561780373792844089868103160828948753463326169260841450837846351810576806752070312272913142916731244161381106411734408506165736374627160257115539323929156439217870377818203555240618350597568616013826171356657786460192267092113678507982068439228179317171079059291809071354393399288372894864214142774824613696191254033786096531972207491870509857723892778115104539344235823216194306064681537015740523201801263024326858942934024918043633481361912868244144610499885776400101242592314032400714818846570013544016885895335184634934986103416477412615225635714110551511748988666848941954011294647361945036822472912406962870573241131347759358610867134556242106362937212506825431345806672999136297834449550376742512948283713543276244423573102676642729564575498569727620010562220342680104394921196017340980632770771116403020675595882818663372718865000128297544002515309138547799446568452088286886953883610032017554645402737562305354588821001776216997442611336809278242135786963678731027791455078710148183816664277875299818245184946634081788709622508276005457702773351232615330226203643519119966885366010692673383366405820355232883026170771940091447290057902817922344465501659523565096738976416816318880617376891132343145410604346944693977789909936501891319482279073380579592680541961597543439318422405904195839791006153077086579645707538558967645662387638622724471993525071482896877412852350597991129530415461151955364576356998726360051460706125602907563553749788183384658460449418512657054046027738297514364585380934606095836579667397168906201224719073714751168737305157513368959164988730211998576791332661742242841256857834937032944120064826521355677127891078476347396945506448588049746258369532128945859024894801300034716419943233616700081129155841328748698317136890466460774614352408218243438757678495909674677366845253168800580359958192937500130210816746414906586931481293693628561471506411056628466900955963247920099968256997467835332250133123560198023230753454142457394524645882789924383191462424400865300442418462251266396883769201107260863831800682290245939312475008220326865160357682097159157181421475771571395392398110492091876825910568593141612051628709959031458007034052063686912202168123084569714316862965732165382880565456988142001163109431804093546080907479636053469623109643408232011023414856413635928525474700863029778213402791181752411897370190308130213951629543434288865891483144421680339776263008951349029804243756444183802374777546381868331340025463387389787955107992029665121581951796870182514022475263300397027445179782169140366583022353637989885760561083717862353620678056529655139739146326040562168941590258390896282056923283043434680141690771988693685073483521173970939405385036748924463735571411780095163521540556866742057663331596079839812396959720726019208760424939419530303174895682644139942331162575583631078080646397259056931609710177446895142116844264644359238182679006053276878132667103027798508942592044251597513140745702384642794292981236583463383755948863842591100474388929018846267012072303843614788881700688530407488388345568462391406226206081445118341486233678288626167181025173491625615695793124842828661244261619249749371421109763877505894906676265548028820805457412867408696699539925685017189991742904905383709056330199872566543810469090880024241727148958607390312770396395770867926576527674089248362113165294509744504754570216015507034572380746541419158685043133525950697719354870151599971194983991827542419127281080341674173901414848679448383563463783542837028696468163833476837791017910119214553588379813435416962325344898438819680483156940082791322873560182426883291009575195202848333585503539892755166896952721365462974517503358128552126850761712365745485285907619094939327137209667155804536754402582763036942375776163159545483293270004030270316951473374621537704674270162689355346935314400107758896693655682872319933703550569206293991512256881871021549944159063924093311184948880833697728357274951739202751950161035374377625712799438597424796527017955805333550229677225135151724988804118502416942463974412983500751089075823084882815083975341108041465747502410891661858859011352755322833048623331262849533751507295930916392929945254054754737775618132786831733553934569830449104250333628684127929627284696804816856227488305611668995144882954105335581540728659156527577987267432518424004474517154876622038558998232830935304299453528590465954561679446254741032705401151247086698202639367597872736044940150529870191346439042415347950967918419671642818609457605626209164529414572729901311306316040887958628660481501351407195925400451601549347848837342106439116774363558650955429544290841696844371485839684074695497345858917766278804650426779213559831706425789959844608230560346753273883763198021517591427718982864807224700981913774802716797995742117292735212991931958644546352785688760630520972788313019346379737245993964255736800824052658409984014102030507731392689136956456686314679319261334815102605635883577317253287016726339881444222054653806151691294328428226789433002702349799229376855618067530247038672343490601659242876061249518129710615134007254756642599102208684886185733902608875916297060871369008937820064895402170861610859402862239193246719334887525475152119462431253520143386464426476045538501926020761871536362403755346905037451899119834480712376532748094405640226650404511615704207914325503390228288610893163241299450513394182979046094761865797873287940990253930318355799129587454411315231246114174041816298797588633179710474396861082146047011711852723806292050954759407022364937226928977393859174158936326658319001204282673766224630105272831023491805601182131511638518480208432603541559128293144602217922819218489315865656553745519074095438836218737681808052421167284649370757201789025770758929421500202883002767822918586860297551746229662795754160049563231320664210841683352462433819518894821534790784494398909316930549157159808897821724785144500517248156562482267743768468922262837314381967235212441988755467594176765066146181409427144064011088218009487724225180403102522308794957578794088676022268104607231241332927074273388707691591090349947524259572348853688367037964299242051164861174191206285491436367741847289573066775464484814842171111393945943005674467164845233919133548344003332619261633173416474446877037421816986756438519045049730592108821262638268246796715711866637884298692480555540747384619105571823945807442143395683854513338092555742167335117405951570570191838303200091727895419182945935200936547127254076063330514531975091156111091623998841308118161617866963922214523113701471123880517629320727263270063350293785290581835547870078422072461986950319624320920374752140441387227536645681952341238530018855274781603155314391108130036644110838899051400730144684872867507373644455974536473648482990373410222985638218005630444691058888347233653822453712591804534552989621340769462620776818573158787053917075342873246708674422366499900022950577518632991142497041941965862902152846581366119283540181769881926481550022725052164932663956701112484176034156330206230191167574599285003631167468696672665045475779467782549939708027633150519275776181005720323667154689596346092350956484839783199449110858761170966954320092825787580537363191472271783200686535635455634772713322123394640087246034574922995789438910570264390727033807424932330403051130695316280316367259614126629198723990064490158411320232145787071618007578180194851302027832381862300245396255914052792759798882070711458921888461641762627796206632857006627208039947828940187582293681020958238408581973071052598777373292223966983973198050791059530630635442377001406249278717167130405011094477115216334097813098068891043988663805853440435939519033859113296975448309591771784063431068727443723542503345910913539182577775973205175351344564474030526021488589882545457959689071728138579545365326076067382818418026671092127654216971128673207132679327633623835285628909420340736306037035530174614567704911212608210649277332216682861730146262088568364032643851140134224175276716444896734949455876128977302541741527243114723993669621883435229137965880257832225000288768094205521178842689724071539860831088919849950783201964806368082441435033521587506163814150583572096920229116588359337298121981896978480211151778839994401591685778298390602764626489060172082404107110681226548689322830009852489082980345447280174584070369446477379042642433939791193438995904659109261398352385524991024549733416837366342729667540208211467488039167628789071296780079739312706621421975943576946615446524124258211812554448025573482677241955454857350542888448581822454429995986184108575983092056089639950335058070949578863408385353793970222070027394321837780773196228670410895787827761847693194267710962234893128209192669275691962824465538723494422417131406764633695279903852684511977156321034119385999736141914869366088626238458117042264178801643129478479082003575399509309026191057150174059133457502504421232653750353882697566457577039682100585404594578688917707504765588357437058200519955052634528569883107542162487698153921551038238944327327601430388763321498153342930858206469303319242466191600908417569772596212575841315723973713920620339827548954795117224428815492401712504189202314449225345487633156483684647846970420480435995427500608671892986149047627695137502738366603338119004531843742489134271648020064569598179834969600478159562315474625182599102730733224470214862481432489511842451454837981039212627589285454486794824301438810342195520314641383049704886899456610382374175986804529463403547081640013084178685891055069464772050133850846913713437300071292136628305218655183453404167496604217845075481692375481329637209318201542379996532822779088516170942434479558050993759099682576173789561967249008323679071717600746708485448867085138428998988710050709255047794974548641077624188121854698809856550581489940314130985418082534065062377033226304808666728050776006807339538100097354557466924596648091034563775391306810675827909119575434489632557362133630250467226400318065649086182637231570647461353760553007865329710259420169667587463244011820630410099650543482540181820889532978580754037008349491516163603686533029638346852681478879785178614179144465160825270664305530564671742878046743099460309164027502322635409584534368803899402037479925827499893548713673155374531715194451857512098625819786716017123225951676591801136782092014368058457798086619111559222527822517938029314406300838194992191904695379255026818088839905624136060567086094875489928254481953983459894586467641475055390936621677524849385804054614312658798744303566751706659987299846687896576440729612881272916202084341597164863399541595889644928331552231514079562086048822771198894926957354383051120791589872127512701408480088273198133976063512428312736183272347701823815596522931369758865906185807464967174140877376878769953183709356541029676997353657191872995796569482161253975168496701596256552944935656774576693374894532358644519653533992253810712696470051364029182044977358919928305085589251710369714218164051035908849680409149682594757705632540464712465429051518244030985102398065234632562119322036647071116215005716690805974152683715108836067730940883871460859443259477108223759358445046916419866875283725320208774819178302847174297045232795421493708966497182956691687472242455116718735037674937984339997413497968972301375936501890563636588418272535366819076018055814215202362384545131712877492692939036907868619597918750133610529836218074460309029544031119077484337283074794740441103571510792477166440888156107018854907816287901396678913115646714061313796145411520906841349178267818910880724119511061978368568567507771320708108787236028037007205337415133078799423983082021153993722157549829676322807908407518755582619900880808527138206186528636949021881363522711763224150162121136602679177114953159876154455736926468248747149352670436346357326643101216378373710700228134879756089948822542359740768336238233815897742414992177564130646644731872667284552047881704317654956139174679894903868292066713777357613840511140506351653313597475125137267063489447716876779811104644493452690523948836465260880028765418038082953025592857742308808158584440475281473138792729356317845151916122014907057073487099983261757491820723509327690778303683558371143549719593693762464873871700725370806468040973270656929933429026091042975913638432968230018534634924845415750318653061004333088238017268077238029699493397129924487004678081395133934455799400056043296030179768457328929075763259993808953985762952652006094592367114779648200192859801976126647305736480185411249004488462486950074098879553147904626941827829080715020935516981225892946503754429650662610149563425778090650027318560164507181586888762161308771058609811322216377282329062649370664165023986161409251075594027373031100050912095324899998660267858338433659392911655468967406783832508706056148210636362720923130068208106313519046090222812952480056833764884669497202731517128374246279867287789672050726991077547173584912342828548738793542829782298425019486953474849877028140544685242059311408743793673618717676665482475310533034109055311120373281655507249697243878773940090498461318480204862251839942921754317059895099253387850399762061085628274427540541750694411791572646792198805578854851174305226071901768469499892664508799170367386500674658986407816137033721718826227230570299553362890360369889946313019330353250112608412532168716496001672356769826082220995133220490665584862593489149998733185639718748276473649643445527008924789559952753368345325088008025977645572119622737885781534832077915374390146808226531208048233122429333999575992642539761645294949277783870686455708226552861936559022132039462477441481792331792314632500495790668230743595732659981660165977989301523110859185172459170156375438336367348674024848373846088743838713179688085695515960394970481716877741916170674672469881264558276828567766277917547650704836655037248618377237440656325431170828329546583940114257387953149397205340510738558678999919866048132417794577843955974558798012411431940703767936589595635256159788922048622484903859329993166907264807133205060720890162938468573885559675725311818343949152507196677511170573209538511054934056948498567647509931996050133304590397653820735498964216369539293420761804196888225229362703550248361989646082861040121443291853294925438774437689405584514750408286154885310840029959445813573062595231432928723574441820352854726672190067187277155982093959789619810459486592741087035450487596377362648454307784436099887718549004119320034869821593643265032715242936465430465819432380391791925611721327731894900628553132127044856814437275137609428674451627658049643082614805970044755604366367760127553879872244804505959772476818318466892543334850267356797316261403719003950005993246182178723177533430549282657589069935604730451225894072985769421642010129580813154389681133581029528408316507971603185185358622650171756574740179497570887460812648758758574029264362663506567231868213335612530361421040704631987750060132265524934402344297883550457565458293889296477738160842975910389505254930599119740649961868878993918204547396040496390116724894327739680035119510785021172468666418188290094960600131203530604280452697043385851769646662078791855887148859624331810132193564513255149098972041024092846172222868845625399760849558551545824937407787894540427544379818692341923991890436051557528088000020690449231353178411354154504566558218641806170420507174605529631480162796259822814093980729670677178063775938745833659917608045661859778875765169716352451445308523118600569999065204643248602476434909243309704822086017861866829020021780666917586753251088509514020096044953360512130606446391656643717497802395942273249285527212389483676860413208900018904708286261009255261314652467292628217183256126382065961375498486113366233424267004367277781582111093335301721972295109980527646329442756456425989002416527024320355814613211445569199443142403162893450566663145288225839606689775433146834283485065178358173332144469919015783071382827375674762866345710845067364249413836975007073882434786993248307514417661981214734532939638531713885007120858622489222168365431899003250379450432149604481394458858317458436731818083573775108510552919275464374528700908626733642187580528458586607884706359886766710112677012710439581181951684419596891974776877364660326293670939319636694235821107051407711377953182249720477865471126601078538241356241794771187019319160410219638829868895866735500270793743905094228862310821035886843568542412931427410135467278937674547308707478243274109620472704163973638464090007605634846239018703086158153338496640744383407474618149891086496818471862456883044831274706887317643513935898154037036984939441780373458464015411375912638482709121547591077833490719000754125312711375917537410453876316012891661855085541425319059875411747291457289616194938158459617757743937072770850802057520075545765542873166722054911279514276562330855845759099621836683638453087549830845960107513373805004215193126173551056080930662228348055156863178332105067861126125936285543871260069581152899469586362342290724897465680169785192325080280893610132058937218902358467361503320365737594057633084909006389069533983794962108489705965560737153629620268149570853622113542975766977744510358030623147310407499757908445114266949308177887103443240978274388878653343504085888242966265266591543211775875409859978795180767026917303680091170749822134500303407509388771281281021224812579142009899816314027240177780884602707407537768506058860646933983542782160422138060274420719957126054743559476244837245126189847205830192331860758733764226756669698316175892240262953785000160606499947758707262937897986493280039905509574032549517784842477638210849498623125995157534204584931150419758856318797106084277241954325936763309878550752847920168334059847559016252572098410599058584946269480839626182816260534571090848530043708046123863998276151392285559199910860132878474094218857307715910698996995974553372428025939845112399185142925777472820783554683611529467173309660670056695295904221660184147544371390753717171967363778818773299140065976902978026356520664736007189470075937375407913774323873363046551971332981203327147082500374203781184584364256730864528338016194924615291965183217197800381060284368970616063732858371374609404090305120168261115659113243916078026736223805931416093130248236630946512726547134542958870549256655068355864857192027966170024576155317104302944554464853708503365686288813912491076871229355461681936054359073818536019356687877564162410397934303696660136736502158001512252802420069826022387501892167231660955044188187097977749239920824660574842180654803444499898060881696587371563260357184381157972200439631079525943308586823740215014203077380922556363602839468935194519385011578315263985751323775761279788579645226115533798047585315190877972673630644875934373013058389270654891633066404231288939042342491190666299866812052116940449277917281488492394533955976739778229018485352634893091178880547736185990403460441062426649870992681153345550246438076695258400316237443518142092522964171769110076265153081121646188396563607030699032908122874217986302856042157702801791592073767627906580574187558513197864114231770967698109513680321125921568381571950506410168394059626873719248016448828928123417146193819710228718260430615456375540491105448135748655280856568750549719725251030378311783089083859608406426236187097344792971260977750429347082385113619680652981249495479977120660988190485488098928176591803463135637749920357779534495017421324914167401710022824151059343804764056256753125729181900524118210330938320541999265271786684566381701467233444201868867939776672033498018718524034882428187525335136610148664936815109239434901131971961520913935829133491862249434514986136691675236734065747308030027332358778549372700783346619356527616000912502496760407623993672976959461406840744109240625358059334440091053197740079103918941968881418949133921140741043327281051470759968152509032340924277938594705013803474660436418709100380165917992060792826266858679886663202366439878500971780231776512423035217708382946463141041001798963485359564719517250416171687084077631873926491513828140926688264713085295449771854304745990224248684659644479700518794272263887036422078245557568994669445130253551857336632816315725824731140315874041711399534640940682521298189610687318702398548434816816301807971372495637272577795612768725801199799768136519419776839144735286061708643817872808861099737140658582315852057004240501936446199794682467087638354821565924116263520476217433515734635362528151516028598364532184214724390911456191937818007110031281959528082869855486241544608290920709874340447585120347392303530859721636041846699113083726427092318009607087618443512065471305318599567814663699110185090245185357911427677662526183360580106880553050717407601076633599120158949807094827476873784831206558457589611337287822308624448043030780051401493692499040575286545159329432633752015447562232634565512816075308815611331280398120851989065455274915818701595539904446814651027714808836195037696422419851620092324988642214018698809395465214841230895934700946443803498235890899659731490659718840116917892708659055694050314036997517362111025106790958071513954248152068956496283408055445993142874008835362339497595838011728872773455263475613014126958327638287883223449122868182766281191002803451551632414954594204684818743565679006104855856100564096603096820042613367843099151989983795406358545941288781499060239800778565677851659609257370246742165447941534535334291947593059883186674981002709071594521619313828267557442878012742228882925520664578147295468005806838045011029401609025936046520417463756699647972225398292853484824624812147528499323187597133082444905520470772979167493251369295445097920582623063329101352479785237925861483159124921175549355194535635302843042162532113190221674473771799914047331938120265307763803718656094732695653613606123474481199366215448530508873686907411294947718834413893658188600305159758704633091900578183336578619149577109847527978489058832085335341247491079120499873176258564872551531330451094625206886622815564920997407427096213627014501278543178695598758009285635883783198413031741477483167494692824987281502348876126399259626015148907823153768079320345145352474354837750544841520446569836453179281901371483886514671297605424973044289809853540332334389642386123657909118523274472143192106424544095623396365956798396397538612495699113578087173054457977973772329217627331224443441050596365681915877232566562356243859245561170523668447452031326000572444084836993509587085303602023036368158903788972789002714470924546385625143360225915403503992296120426871549283680172505931349485736449386021745453811252363882966089279094644009517273679914668423674659792625476466624586460640167464046712453077787679495211420025636089379232751578599273496897406305097186480614083072129122456345312926266379802689592821607492437073269084590543692611394619843534924411271971252591729970272952750556698842642326891459810091145216698350400896160477585713735167454687815909542583096415193801175698424943038336814504224298598729916298842550336111029944066851167529020231591201353295311748181235772324614389677423502519971539013106731963162379764824974190739724810161423805947758297686299747727187474117775478611481402596381966334452566808666112559232910211651705391613447795297344128200168870097123073590566129620585589392093297394310889174584835849107974222389894212818627018289775669618873972654269775773527747131966576059747529487001714655407025643062185071889264712906434967065993761428090714495107588030832321787377958200821613259898565802883719230110474111293598490719709299571279807972009588813055700203690379974316274721612178387889406203944709178710991335421052654693353704047039429612199822541987132534010385111725317566204339399485637853147804419532562815012825526684747098619816448194027770285288894354515371254624951648836862006876038608939188693761792007467216310618817395216622914473606374825190280814509763167632650720833170370709956166396718313205844490911275866921646808701233323031196190546614924839265766657041758330088133784443957209920325790149352114642366077313134062136843804598431064747247386621295504936310233710631558233957186193109112282243097357739973412590345944186674830084677953397939330231657328074593163033883248475763982917048087534882061211976739948435317642433553428458014564497597859191738548525540667382670593318120358346451292023674371955717490344010092028631502333854122004390136470634569199418021743113237618056892657775998882953587506364472037297635024045138315730667886791962745848655781433947837905836880055770333099839549199636466245944510112865717962612879085823168837051967690615898123936340795708118271581604533701356268712296545997641340471117942243999956317301602817572178695440822316408745951717518160552920720985078625445732078515347762716022659801652042021863728543904613611313063731573484309535976877842560260171881150958678404343693912355912473478363287241585658112011597873824594385070192718845654672704833553794118662861436744696115392734984875947203474996946466401847816768357860612972747055887133944297352728593503928940942367354325518302798601398926038979442974807946729360708321989426988599103755554291477163447519984373279105997435785014372401064435937520938470584914861827990796652920460579676033737089322033147512274634659059178154742152059959775400438615111196114388668806728619351749771780713260614205845992348263284474938552597165524712166923404373165884576626125646002655260894843071822853796337675844616788650570581337797574189076351782779594052331847474706560057667248290066706969630714157084102132882458805729042826177949651809416950458162940587944329166309917683991512381406173358962319665538277891049480068526850405437105395928590651037663019639743103988886599284923971521672010679834656152902772571391347379524153266930434989836705083082491701641972543217282747071257896700163226687066307967922941831419820403059227426438488158195224694794796074837077449426115099821117098460864136723216347274363795225475983686005993518370348943660811482468699733837829662137036525736655341689885131436230280336915447306649750876680202538352736040765446270193655461434632006418057540816301256450974570048623007632168714585339106557698742460022481431378877724445455164898148442996769402498708796771382403839749928229988717905812713836270764397615039446983025318721439618971724971902111808348971896180560608415438147039490592584043796445594951180100125278732426130204258880192223027024010689685884420717794155208511903438666471283903161973837427498156098632111484250000020202906578093031929400056017640757929834725057720689349490266420189002580813626377099842514989669842518681358410108040913444725721021951496390331808107090627104869083199993929198410837688376951718790917418558107993764281844774611728074572178245127814295950221691932972388125144543537060232625187070184099638247485127886262547167791114852004547022801121963160087933141111350334340308183039303888712505316438961891649696665316038506624205287715347790261084044284224177312446151986136988520558178583799252207717978932008148691472828850791185272105296672645985657731961153479282111409357055344660144909857926768176728080467820925969992013726656663539579321985151596672810934156896762771987183406368475863838951004917428236341344494481290886821792834596884604066065624548785560806496160481184776557201553627972124131259811794613436987346596417481011050278765170509338333851583601305179851074127237230084359181361530314821751611912654931266297204550716874461561479784693529816620631000400323490266215608165757364070246197310089956029046879606974767291396805355539498871375025794900822662200178484873962458461306558644507809530352355507542846865848174354606494740216327958206738940783774961552019813803382070057881949016315398382820905570447489311207773549422012774943558679624185499486227881670371065492062718727005476330550163832893160707681210742625675445019652844971208905928345748592114162784155188323198901662945505220095222893680295824826046002397079787687462462580755344724019999469301586645416893070327178937276428066215614582943358473607299474477403381760480329504408479488943237916356850679414577975284375950812887514117391229835715096928577170794641348337502638494001229110918321366009491107093423953649786269180011348404820521274207449208724239474704708087936193156156227771442334461792483513461214514088440717772945209295858938441776966134545882346462225588329454267671871364736953634315041832667594299069114126246367815136941668280853614248245751426513440747290320687854559855094366469089883249093319612387564939266154250413375353547887503917452117743317021425216702108134804269032286600767601733012180448829184571593192957223722266878193167287203893421973433386451802196289068001650378770462822607939646862118087211189633472678150219325469892714379636401017940438268663060542829042285425609457380345563804043266322918033029334055564278911217737835356715178206695451815179439899872437669016206499477033721500017885167239935824882392090366674621408719899707427994805830030082936629639232288201028468471173389819734905946085365116549835968191129704911106572717161837538118362303654542569401869119726182377094415755702642310311468111087389503240171569103774828621411317526674805171704362086015553323700759901905575080482989675028141388278086349357719385492737183159427965486787795154301834907058717647751250908499398106503413968145206536449934109638514596274150923079442570682211833868829673905191534112933145859281257928791277466144788411980639847985060990608672448289064034172299021596963175733277857640254644716529853467165740225937807430553735461605112511620299322301590734365976412101094278398833685431941218968636757752433457568474850188728906852425194830990080588856211219045318636063663348201518558515695610695392269910336242041883020187361335032464833985270025883987894885971483612641701700481715613475795393703675847020835106830110312438233307634053530141861206793113165570465473476606837807453119340973321662355658972961239061711387665962514772590235389012409865164800630659440834894011344361239603733427373146244189280705848191433147254841544070226734963431918770897579830553500742997604286143827487105229421355332678066655837411546809873938834432275802095809600645546198024933810867965422518419018145011338296526404279967044335379868983280876813294129305308808233212625889116305283589852120672718852983181720853032053020049471713079860540301997360883165549595234818444590749616362543555762309627473545208252976109326995641092225210806059540592513290178966335730655896303642052710345832733646289596627941612367104141691400360859778738269246207139839142765458803662756288176618674177098277465126392620527757135912595250401903316946865677541259620386872368682249099181249416902367793037516656803088628589740909119719410602215444339842073740108226373385129422691518811365670633948552984189553129874358880867788879591791261132986040817596228541679342583918855237425436837794956736389759222291325270385735755815985727898110168611942181572181011004552611431398901804432775072654622756730128815060914155497710056097447446761933983749757598269591310537965695013990695129054273735437672135615187311684039485726669427707132545054070832536846626769748267977961057747593203488797244720257249641016950273182216261245153549334195351897594688913341603865125807776840680655013723692833558733093758429494325997286871345168360600624924131126224033973723526265974519532166035855258273029118303700075601687008419402168560781502107283356343919365579174027856467173247846347927370607424063374394972744372800135681297210693462784228679908044414853027919036667388360828934823445628743587093613459117741530095420037496381366766148695710595554719723193131685034099049911094953009440283570432747229992827045600276144793068645657625977156716290256610296138866201840520254097440406042308703064760367672160623006670672612134541529760689176035545653145752416736166073800474877972661882392676694940424525175632118305707356658156188653772858308214092974990111023866218531161071392736213403624272246813523799339262990433811941468399111455542492187084895908258644102590506002784714832308070982806508703341663086329278689856345254385788068632757137065132338234825716615299526085495611345071953054136549334178697310111449632114410026597664666836008617467046719145008431936380138744649700129310800599313162858261442781400510025442429342435710946785685099304584914535025475899490695837106641857854807929060978725809146612226963973591409676465363626378974683169205181813001144377821202130262535716160961037205655305183205628825704642942479250749998060104467313712607304805466686581035793301051387691048381004550215432471626140577085410799856701373551486754417302109484681690101819413270437287452684811367052052148141216125400845624488406669451487588585378304122658218153688473168785927511524210782023703214906955312582665979051784826218880752415246985884256937326714027819583652410349032282429374907498188536076079699172799435867586279637900594546380871686283151395651993871427632788319202872200922834991685866916459798132008052452126983654191710553751871753620302615919405761860225935835372124410612363173659687397084600127968050371289605243360825993649700929963849636721742764574255656420853673454476074239591489374603117233051126041872642371882774318992601113390293289016619316484278412904554907249741991532062598434355438532316626847968756917628259995286501148328137024259322199855622626961958632903395093076778089613036301684903466612987428672472401525424516602212161024319577005129976342126657938433673899386547984048416749558710794159582127746579979821961898856265099087585827189940224554276844572856313997886755635002485834098940212978080486278586685655719751634725604353665199401037892258175416620488556763368582941800724615844716979315109194578318411943190478265262244257014749550218329669116801161351975456879649807118126089848058784380064327355918999853462979077046737119128277134496774141103142851262615307585819735454354235822056393235487159348528444104947861855992324445070413371366051441032585864916880541620648683801032361509777525487685317116860229091050030278952750416528108927318461521643473402752911275901740435282052130984841987319956389953556108762901212491907132836440702664809475445695753367768658568794208256699007882544515213733546777397764402135496286119014494067342149000675294794449847139696933442408264733182073599914613445424170814311747700440083826752894441652806636363831289328346156342131789767449588997040357464357485597968392809682155182113689440890836842836441025853019769019678523615962441289097177846015909836988854925215079718684990198665404407441053675326107394947374493008568672558404691498779966307570532796779865335019424393546679005150395360997748040887450884888454264983163342557888140220486118655871225084514171948095277595540780658551955472039168611983428886600165574922645875954662512965614255291813402589181309098449512879909315296833050109377103539938736985564368903844324935963203996842103755251133521161425089686707595624022464561640233400499722601171275764151620084230272731578527319648564440514322951709129472618846548543955191585600447072889802396736297035377838000293791265282539913947275897550603249808603770121593631378787097425652238682005078508830021529323671174568008042895440679951134188418054235531490739964930320489561727578437496800759031395930839438733785836669229782473008980795200487609973221620620611793503948604245766201621574719616388349939292704013806207332068617414774259178341704878917699762297986686536588697904664407422706537403544952253104681658454518189322248071280767383601578531668219859042590223933536143935802190772293675832494306797146174172260776672001509199648130591447108282080920131040603991996415014919733358541676085534093516420620986499482764550659648576725972678823814226611073276989637182546141192470108483684884344292176713969384091536492653086462613600570670899056492758754191693180030644910480676178295507782540954081495250183764645147850025072375792399133582249073574722502842116253885173297991779123328094953643962989809864792910912946734299558709634044852177444390010566194080217153202738986310741320558767588409552172916791473622693771940137254279248958951924704367162429392942226562718033572989220360325848091756235497753572073270501680923059288659529251701819982606014471315240607757512964854116477525201097669938223020909768021990653218434935717711938810421723122556929687660866758894165136655848672884126757330758452931911634173404698091786827402076237137754043058680092988722987222244628726814785051668459653416051569043511788041451078114337554932535637889516584187028190613574539871428836261389325813428840569271958325864340744159534424345202136469083447220082242994315925092336771742596041441325832091704015616496738651632482594445529958399934182810997991634376521576112724076303926060377833812476100808142341839162853502120120227559503644227752824480644536636762308792842092738058201131684472939976861132068136473601479281048700671196203911051888570560421910893718173146420142366933009438057040613755957689491706084733724284203108912519216487770082680580087396024942783517815267943418560661528714742457035172502502565292913438968860837960607922309040861430622337146891673197601418453499883828986916678668169448837959509368281726158416147473407353395762007978105864608329653629128022389337616456182548893840857839878804621337669747019849309406329955236893166106758134985224963150360776990472494092857850951789722406423465037214786308462250330873006111911219963941984007599615614725299838030975496647640621986248797732196527477917154170196422003387470574206726580289499861774497933473805505013304869373436347776492177966610637569032284659961577599027424064035167190614299495120658363152552664167474363078676324499853254807098904430611864390576651609776868048611274570603881706968181997774115788513897246279983195239597717769529954468434700621626344360645979771201451215964165815590696873511712670041240358678702586303321544228339719067115759555845823996229403630981409943035107387355071762658164828140857312825960893307733175391386345826364918631697467975805529318516605857133670541158521350310848417770695331909466026944347654205520513731279389101461539397694439892548788055655293037305818208400716449242845722426096724439586298121284307169666514580802270007112502856911384285556332645576537220523108857705668592688836876549509583760113830630070744158783828061889482239826438657731038502710291395108580013190842053880008900845331498616702535964165908212578334685176304212466561143865237696090558296111391552029016842447852903856424509205035716047693651545595373845126644502390277273852270235426421090884175651563655878258811596468010454135175022818615684980968924114450568284910537123707766771476371959666269001568765949248019967616084884251499090879320932723306463425630700010160262318596564688590021433340460430758629827626875976910480291661688716091047066748102497850947961471598784276334836641186526293983382174353705826844158327878401435991662924563848927293776109907389359991758764067589868509987371972986400063713242450431192269921721064918768723525632645210384486972012017137452980521886532714726152681103458468185472606831380139563163646756816548490495482068976671716527021406789772975610553701982000544403343243079586769530099014094472835560429652962589741664805225796027268341289928557760903632327100065731908270285532243517883655126488392483290249028877559569911898687509265644431949918966586061641187900876082969351456939372465369994832215174679195246397467256302609266058065984962943136004923404598794812817040344843787779185235887067636776902444192213218573125419170292589564649736965583053366273825665745228739315069469753076342270343802194827190159281179083244774332474781414575334333677176868855868742817872865953551128882670538029783215902250536254360559118691200234858803647090668999626475570768540131336147890720720138484886622555347927546155474892605247320800430325524163435933035779143048160222581455053938178534052629091940435237638926666203521563008341025125487105891205860514709923987842408996100633927349502222168224942379392215834538961118138150238320786006768943179658822725589369532710557636752764115393563452242591211997812212546588907822933222367770014905834204521031160941369811213994803975326919036574516830205826672102012463874961880254822022350178693865253598196150013049291854558199921265707887935337091593894484141098804415422785044427484564590403921360902795816147841351786454803293836689391025349084182319929591489129873170859834579599170457230498869755010654363501521641455117594400435761963462423169355593138015133477047678060206049094697989826358589003233690667291153619885539872895890774807606036709564722473822906127007880274736633388888580528432849306253953844217330480692773681538122444430186002180024414571060470755988602292515279142350110114283054850434445815384411184959639288037488412225418861517663283611360879208615880046012173133822316886698142489737226623484342834726085812906956525862984291713464373411722304929849838590609153335705326366388859223247012922905053427343931377594283415000012296072899358904751233093274958452654103952976365931078746858243840905726448577121657751155335819695161992710889883954840194547874124343529506193307655114289729618895667696945446755832686187042437427396275965160665101352553515091629482467739037795862775544352873305783894393080320388749144610632150065935824798553109780405370282416126650280106177409514847669119968362106274566817636422577748251489065416799807501288859541623967940315705181214164013556030230299467913199037102159960315349125449236371970601211072802983293737249139744763695381142368782236818930874412451799433515818848955288841776844039866613453478139883657656432412343451764308369734411498169929536933319131205040548885282638211107519719241820945466656760626533172103818528527693599480227939640838860969425252874854021792515974528197063196318767225923121119041751904774220988315631189582847570301835088660114493418995454169673520864841999924862769994722389606055629326415782706926878856247194228652818638064919917281470291353156337104228761581739185707240702146598439791113688606474789623330353791748797062684844469747468266673270439920491898422872367283015327472984854792298789559092337208307105441568401013136813805886523685852904781279610844051119614601985215985202359535585022339554291349111459396372411685514661730327185928589887023599702244205724914101292840085925183268981248749176493993128660506732999870633401352662668539058311613432020017407058254748222758015386977015181773408588304574300099110237325144058043283079088114121501708404033073336142305550921151001565927992673750951401122126676139359335796734916997491078391536166885761982757924639127397719392149206223825120629855002574584505592392931326678661076411224950149460784136718402387078289466651085084162615183318274711627591046264598281838000229277952366090014140331185858327092847632929747852988706929527284239825535674223752706924810521254546119164947916801477646412790181366583382431743126413166378942813359144942762598865834849879857262897198595749129663932188169650416124833920547239644552779128727111392603434884461818907197433107216433235819032328214193454351081645718674458187621414383985490480810234929673989988313063117489176954411227522553985880498953152990236608816782210422524865707029094914499218524971914964043287814945656403029176692894904490448265172708676307320490547439288073042366823382593230727555727797053319820388659344429370827436204541095163909736189816635937399402411732638581292610027861472749553738919052035182169743064703575628106891849855042166135988744045764234462741138311693020182570105336777710793512194268176815167724925913295291708688849326751618500964892922268580203181793973459383231884411245013234899074297519829660469525738980600352729888384492896562284873843910421680711590854774793143984039603709226747379444004193305744766270870557683185711552010292565772265989295928077578906241572866438816144976425819648754671033235390947918780055598442955161976084626401266241085894593216891159324012578781052950219111868229984391225716289380272338055390015488120674360005868076626075885206025667680402048189497917851947235049606687246409755304426812218816779167583686622752478929746200293883735958859488996623034758310648015814744265838112833068664874290633035355303310234239428972382430808651102585667192115982434669357978030116958402188935329409734895657219792680109175235414332137646208491595330783551116406771542214142681599049364066135562849649861747433615383090828338263457732325154609653189598633724544377750917631462767243974782265582614287307932885729240470755878136317722277372428886911922890319709683916098190626685971148514825543661671599966013379096663283220883647423228511666966704972972533256940859928914487439273788961980474694139592554619746452730708015364418997547004240590547681811151069833896613192091141978012955668670928225804358651050540429026883660816695996150704278043446802516637899843125475834426424062791040402204537403728248588128523194429046937804436322119320324407642919300731848588885912457631402883778062592018883143759331571510248014278903329553800299995059590143876241441277705549354392601393852374981568063383751786641993590057339592611424175054788401751735740491154930973100969755731045540793799401530611342468933346620791504799423750293946733644860239381531053848974894920840838998206068010204616789403949177413590440511192855104367502073172841873774665805271793932778877388349021028232267128459550200575164182125437660409414232139154066324746700453034237750596529643394671306023402947246566348165343963128126359353140318009978813269079484275038882214785786039203155279593323247781727095077107797885065155235952220511740172299001733307121741895677065455781717753957551212168385137882398431418186668400575064254134497584005084614672842598471952473423877222887439153003235177043755935413263057897381186402782542530015261993617088944993147240841280275520405131217028021170119486959118530671610931159997525529185308115433304464321045643541405015724992743078316651201005660997184001863125462516587912192993313148689064337945918094502715835818440414156986751326576459489169340542113780222050986840670667577484886556515385762767009913428227933929892957376088006153769393699882129941749274716364360475250733334524182412301648496038635517471396059008323274226770368467067943819300326363864549742346105177887556744927379828073798857870829387740713870939758955061889562939602548863811512397054121334686661562228219948063593102454463684166295161690852286400317620857365428201262355405709953563366893301933979737839532716893260493030206027341421164016822255393743685848852614389325528013768924056895195684284364313825268184591756109348971424753464775445739938903349615769324677036316710160912616320761028462634386383855216264715434341285175376793737572126636859434865805199013006676097568358354248508381412340256481351285401865382962963453497273557486765850327578521796137376098597798804094736495474113407908935481127338542401138223132578504430753445760721660581391749754218452577401580454196483789442590067357414059857099605642164021685449772945177589734488330312200423324204182725976612918862596819471084428520128684669873804866916770855338650156459731168442177203488805358109922528571723443883912198311046530036288679143216551855354267346470508602821961373523049274405145847711959677273337123178374331842184358615361400939022370642529450643948066700382123355725623797854993737250642859513740731487502776863387955310066117112943786145816772480352638705021789218184707545655611470243040013806054726858486814067401569282667033911452019564155679918871236738547254790605896537381428576960047593157715354062648849661624484114926517291129201411232246546305607782406942022866713563237551523413341746234658135270784800616728575932028926828445606428486732649739335571286995078030528104753735626669238694458283507210918166067415707177898145164157526285884634556532242135051448379990171004339325797964742167139517494232934199779679184461980412767224583255697685975796574971668308169263765812387151698294882609131443941587228140177031820376611450206441110900420751437066032855065330817765402268683362609236266684411436274559117038479606848183418083764860672688963028653334130369676458307535022894861680461716102854622206504506088862401387333747175092290965328072973418736361301416826009417910302745355557955446365030613944184450860915387727401888341410569530283809951562355226912407273479899840101057104705925946912464321510614913350309413003865692483373318551258358253356429492307709323492482782090989352550163763902999353853725551627880728417990647352249941185483859416909110305580338316222067861573792549550406218903188028569863188752947427298392801165615931384988810028923730818823382907538026593000548861475346755694900391736350093932126719303304340811592423089804241832149972801657979462995289778721944699500628113794933278194130588989602041362172737519104885843100706709767744495064348075573112853399658805839971909062217205667771228007832178850113677750495122695212197230050919783612181298300168280571596504051864856417143261354518531668674313269667036803689743999223041309393755995406843691346989881718671793233132005580013160685596975184473856456953464223610982742075005756552841979600810861224832398681027590420706948593165738910724608968534621330588124885475336413186023286236734714698157355007836348662955349458390392951280342406750577464608776810305057207043231523973238610121864758311323911194150649804700486196064402120481656301272474595883559183878108675925662312686552908414250069086692846789339554897810959560198501023381760135983353305327130659058927144684713702148921808279326660555375577860346826619939693748971967418282521412400479315395905685788467699947285574629053218788449820964399364930610977757839815372342904603470907484787135641343231371246756962491770490843954555065130983400440331233316989313637730782981597739807184050856265560608830212682924509512514576474582918781082073992646713231249871056822202022787683089696349031728932393418570641805966195289040384536546238148611160782814283299738207172846325540897827269056852026659807423094261428209586791773764066892410154122025132899671853153297563631364181941309501439333405545810556941203454941661557221585161002201724336967442054911792911508117540017350332337672498128428773296243324388637851350426285035716473358593561642345087939283994459054999939938437369592994340050840340116912107226426572842430781904105668314306221565782861661786216202753463236594174042092221825821750706244983974622129397078822915015503436024113510898597837073442239681058518463686609779174999507883765331342166058507532582916537205562972339975717111692321359935039860822348128393451696650811491073216095284897446691789578353381366528541265239854476387446790957619456563987904502313954238928089490535737199456285530339678884332774734765348014453068429838697290118916314727884003431832392705037653084664603815970287411329146222392292950035918896103859017101172060590720288191886934590971544610135513619971810422576014869130913160903263273094982119174189331183575028309828386399535934703568018320656125230406195833240696930720177342665017794814626837245370843362018914776381012911924716066042585487509745590628576595291707536061638870453280583194383015815599449193736171859199909449293171697097285901311477166048733171471983492927254714595780199841318274295125170440599616214763816486006307349238777150341114950096938380488885937765636278817847839252302178570227336288292319001697430461337452241001775096989615602705217443483500481682603994744176715959353448361700565191067680964950997307097377872018042773666340368519955745888627701103137474394692099871495332272449015446801020224837812290387094690041620274477456627987084177067674566922210633721617727662124301262729645698411316022310186686825423642400532892944826330015560021175557822021210358989720111813374474100475680119380741743091354160396509615186636888341495159129119771237042335716817484061506471368198769988600543569983320598432250622781537794078884262051510727887702599868368155749185765730411196470124649347872465046337643824332825654432683007772886342945066768197151200910384416692942018162254849558844520629978112673471488529660569157664792516285878409610133554100906035272315186544090807172636172091304534354263817861265079141415384263623320461355137321617386854914972429505387240768983790067125665615569203882617925571925951301665413902324087539295755678089901251849240676495048554939957663267873059169452843354785853895702917504137459687671915435701600693836090976622950996187350874135898759445248466818910925541420657620328810798889096581401619301134457958131243147654759245213535191293376978056712696596998158172934797638796186391606011966400808673113602775709200581425090210942432188117052075553941023292504128493162885048037600412587196181096599476813358390638379217026474465700657162915344776573044153952311825964770848896767153953484418278271571652756769983676260576520600526687634651069955491290183462433280144726668463167025905375183005768549259269772268833867033023799723377940941598843763149099687074415275182445243972365856456964365129093805321952265838171606708116522791736388187346483293422286229433816336035406511316712712864727372380349754468323318718608196043225459760298719964678393524071942951393982610853043389337747895092944625614997231243056682007797386371088148892982689485440337600635791747135260215662260844624744561416312258927941292322692610195061373702202896068034234487669199158010241639072860207888242673101036576387244262971454883338220684567377727047526705830682243038254315975398873074097564557550506387405593369743265747248281161318888404204310987042689202638751361385033851633853644466873701554677694543841759582485399175219188985492823613642440018042418066078452254054189697462253289079526082766854135664293608866932507777985719488645849430636842198198580967193181274153314897077413092673445236177652803875624625774878914619471256713588007076355789621020803192011786289746660854958656115264616467525550264934341795159190446053248238507986939311111573097852096267235787540327889607638915193730830101411207366110366614252023413121508050491184923383198827373628593486601833935455161593579700541431380347946727965909825230895255216151543608405361970187329632544111769234191113648914119200596356014487897030795485532893269089995715073233806864130526612274146935498503120357138853404908497996470344203463188504656391787469835612399787384870694357663741529076342708320456622149219613891564830066718936552721297033466665791094986828199049744678203217722365189157586546072238451586565950862106126106774863555920139291909875345793567004061983083138138145131391084173208115489097965548074087072796679721924346607160817810210463026827484990602809429549365272509832306699187108324882180988493585192059790839625354269810563973676795775109962182827309402529550461504898502992968571417137606062051542739326367689774715777598882311037668802359245809948815114601232901080208493287364524437244861040711538876770037888948259404149022655507359161461315245723075412017119325740148576132890838933299814384275251853735900852879687619813723178438602299272224916129457407735726303201402565192516973115378550504185088830381620115556841204391808610418894313751789283623052605734610943427394716304602997373747481821362085282733639902057143095340982053127644413030977092811827517631700279380241262847061300245352323071039150360216636245185276516876322616861420395479417361839848667519982354306949018695286334425712822029979671325644036439038300441027761144513226503489220656216845585261599080913256510213800448342551069255819316335722786463336098766459613907774401120816207649857562725058573285875745938352430669803298236910393815517191176178431794671309572970490118645165548565114045989540054364258194188055230675079172560091485618516992830311060154767351768020541334208442542880830780344858825051785796395812000774770651543497775998102824582423897921600470711756668398812225520503994205512628683899273955934146975123924837793412854319900840342897218456611276069412116031039931025395986754893952076387638078034191626073354051948557113736005975071959893823780754896843362691880603995745660069786758423503975171901989769971786669051439631142081768010033011495239401184408205503595096813073004725897276471632632042756376272860903499908168893076573302867326348333616146946947453208982566119808368010830520969149119695744850982989461119464610567225205408251090527522763193580207867886441313356989112101017157237075083853364080042279297065361657138511363712411737428712190006123124375351796658643806028257512669517451047446260187693710690194146354591670605824296227670911728734272950660988497676756631935859191773405986583999797532072029871185429822537082751261653670838521477879055070768012237121331111229524429059104590030322452707341893712388652224203243624092676184741151978901489221403755752471950136264202271833974356887051555167396466971412906954842618869222320799457904534223463862966385133877691979458637561484063638991692193570948981470360348127803375704584423018230680583561764579926314459186405471976408264644333700723436683601880872902073934781467012953843175037299379934027660221948331216997094899125708071738893361082052701400738416138899555709474612696920078314118732326702062542795875763673746374307854849333252522637830024558760022469385964151207752875043063842810964929491851457689182239717461511809925254907073464478920551063919535147175622283099681201480475650231657540450747181124402907609692520476554119077296768435919336372617303318025112313303135852110606427227105702916828862023354796965794675666347084710779136688832969882122814389094807441279919199436037567156076037206515321885254863986406412800106474537330853426191218534692836481160335438094987505284840976178219894031045154842054152135710773493984540871947654589909841882537840970820673579907379549268989157402985745597366255870528158701147790640172336644361144514031542657944947274754101252309806704366727978675439689920533722667996619791484345298837512608991644025014815104667550552032814119594297901974012906385165336888798405980141426178732084060698065777987258846364407931673657491898555737828814617808234092179844932356431520566925895320176947636217120559813221325594110670952104206111749693517385757540860057716685567140180807223522005297649272421258302371380107051314033733947254737247290755452768710386841993095017394822108924897682709918085637683749323819584617865659875395179135361271501965224398121071602208677174273483905911507834190928687581787699021829841103438426610857670080475134651935096237460574264114965501566416252912278450223643159515059775189860355438430886520866918850794868472057719745893546627103221050905747142791250685801566163241557752379456611358577185245200353466725300742719997621547812431937199985641761413864189861359007889045676531048727831444141030870393050799270925151393178012790253832036438021431777504924819132830621294070702336518917674175845663202153501133620049659957462899950495811176009434438135381416500197017177376611899362408192763494309815007284336604494619304662473771045358072996966742660696071075692247244855835483312797968485862692986634975088393445997724953370663993764824940477553572532955556412157382517799994439506475281982100256968839414667262540691596302607034927594006566855739737719827220774936392523318782950689304146924642025776239332691561480705624776316003000936136090065552310217873297590548771178401250340312178105971686695064982104624090207358386039579785723820410649813984586170836923693512482784604984161820674349357211037153040138329377994010643648140171649214889851067476671927108128022186951708722407785272529749452106961503448416910592593747835750695203139806736541199995608016028228237212785619500504371667000300020608660540000532210952673646342666443450010530238336798767022678043084847625640598880101653653352462103772838755627909212863561324404389680182477260410080871524419234060298105236161226099378872492363588216393963186920750135532615044559461975701606058923986964755297000180473622214335335692433227765038016017729735787055562701623148646119959353980704576913921486671078160506919344344662020207441992349145994749216541308196270196688160415509391094181230265554970557270831793597069052137399189520937864397217108225734935520608876393874636136105496070963217800805903534342715664351914500956556119738277160183871652906114524647760187128787355097414088081461378967313380751763407826917837389618067912406651838446175128154134846243673079333110349595315661816853755764105511779719116635640925187980005523544517357073798080133532603326447849427965253005459215299504164913230027731257409559182014327752877905941375950534332420121341138759212495119561110323667092654674656998844256593326497376291054718539786445331236954859456450036747835261147276140136541049228637112914219773409391480276389748472698174005132797451942840693017749596566861766540637988013873563058902499348594414406140923677934656697301188618221660680642379185843720911192397434854339967135037873536195493998914342232408895033173925482202303668170148789908243120602131965719811696970133082739449677951533018150453817735630666518513920164597932685725091206751799533758993721486570502040294028034223011244177634540116568079403769278577172521661642228880619881879747600567793063545379386838325316036893648928699068868319541879916023827536824757358343424634744190355002312097983951121657462180925046747045019251608442511513042928653013810960783454767982878039610976636337493171115916290979299011912137222060570269869604225617512372759645444279445301551322868194016663171054776805774416577716552002161220212834636637388477737761108321543277894506041709256847726537478420003423375493619601934290711030157992788132426083033094833763185524588860349816041501029054495851202728361994437794537216271863492786098437691976933494540478075991276814403309599144750281272293097001455502120616302638900421192719313606370720309140581128506335644506220802299772225748283625678419293982281540931246167264944900346766100110480619074648961571767533423804472605816726862389246349101034309094897140505451460965621881757198115910876876677781338299139160810616490110545139783682767804702950481878980379030077402561439941690991150860768637683124696907546582970649503728576091688606275446517736259051083919595146022347587629509400450425086444650568688161554248598044499596703051149050989984049620537408661004269161808872298515512459496907732506173664844992217083347071970462875498483938905747680886916558226858995372399551580991450053449773322528623592325259206705596367097124835863107489406261533306652114110105675326593991375249755228575234357907098208970614243859528063330910356204309304762972084425498320819666431700345758050180325997434280146526844535722974821030505232980105553400865216964921701830405239667814674349935103383847441319375101069958389211403750264252486481228856054906650197870514316139544069296266713821000910870503158729762197797465795287736431983996930454547369796035314205508670502521067706532408599090148026266537087780452724402027319415545402423261022137588028869415064139650784806415907970738016897317658317453073171653399817586418653538521529603023564633785312469041067426326172034353555546277242441519944400597108452153581254390376439381568619815508824759150305918278434110443292875944496590390237766224846652372295082989467574530615627084955192384989758120311992644474666927763650930047585356095343123274611110737060892810601402667967528039029841858205624010536002815461461468672973794417552343511904292719597620074501007078134681133871083251768266878387489581066805833978841515561104664536117679022345361541859915121272617347746817232745005651584384396952383250869662036848760034844543459010445726262328749659964616423122054624813032787826688459148153536846156198709441394235718975894938187689744066240713884265931085026198227259112370637771981183698312209656970865349884009430564893364780427803343007343126188661309744021785370745519134301867837627463273023051021092903161956506911682988304467708634208609053078143565828765073189785285329542607362905081950352513763503745017261928203046250380902456012019882135021189303179444108103349582175055317595150858712937033647235105462260267549106805504016494154715011981846621721366756169146089762202403301146758424401339350296267600321525207758225993789119230711177696734272707933795709089491719578640944549611007400374894804001229385217965406950939117064236099628441338880794611050886914156817379092214997462486560818197537386391504249197301673495097138800215452087725707547284321348941656706797629608210240069831339021934391040100389881982731560663866189412488721011707421216950148891764940809358752980011329349941739288176555517305599546144639357890354718992244736764640788072966109326411837056631756685107019856356272543548936772555594270036368999762152968716262559903967621136456963721651889097137839152670629298404903486218020926385916239776698609519270779076637446900551551240512746985027242544119030862630636272055560121082269551341883857390470910063081547721370306081896882584465284171326796765843985190695902350411599613281597020005379922310776108022138230179724819306953995234521363102216352017499822434145768730977689444168387850186135119921578814271959126996476597844209224446587746978377236168755492686519806005106080896692646105253824915867900979741173043769851559852326978698935923496741029723639530497889468432734353100852996488718398366253456633950143122097756293043998229211445970456565697262392628150397616121944453717346719328732290900371143656709830355668916116220329587298390453786387312273175077948974779997402026168846338744922033095451280635438686444381166346161284489764373653913271831654241644609964362115900971431420260606810439520140593049986157917267177616376315538922915946064044211140071663737181498629677185483950863480656042598398543997132460820306633063430052707982512110839633189965036809983327136164835077978949888034911218648426422233160152082202859610447883744541507590930035949328888566126286979071835175584401710184942010809181752696936469401975795552468207964330212406733653948825571010473508048961220384648994709453285437128886247231855984515672694904951365926768931320008442393814306167937299822986190594089684869135236848744055465417448529251790418202249933947431420038678774255975136774756278034322917084296834629003468510142794570616321690311643458516330123971309352223164306179670475845089740378926455886594135040256461014421818193647834100585362928696882752730002139121127169690957670338652916887080236672670278729634482038380401848098192567513825878834654897837085933614112630686633589810993143609898755809461523283360251195595707582573338440471715002951763687590099000964466716920675638488433701944697598680979183826252202332685918928859408527570702696132476209484657310804047480685157466146203689651816990806124059986113280585532744060297329743136976561888286146735515281974043987150255058890147946348275177960684353676256400533834255940395129104269648456286087091604333288453562387573501495665546913299232504537559171538774574242189497546678174366470967242075515790455073201069566935891392182768060838704684266235925281694842905513618662581242536451287303919365118841050674493243333447942146042583388676132326501134339087335902785321365296694978406241228621234137077334739008425936364209974429568716802165383025778094988447415476708705757961252795384012132943700892353416659724116721059564572483118739021773083356205795663960615167980651090653639241343623447559308764145852572856681758300914799017770611693229125843586315828217502950185824942079156259328596144569996916236767719763441535772275844831376178885630406381303920053846614815942649156213346128539482399930484102829076960702567409787393653550612935876366842561748561554112146163051805652976562526281406711715504125790320598756303355023221021893645474696291807626896911667041301110570534155322273450966908953900689101770168570347184927533591478423225700000105979469761286791866528074256540684782994469398458851209080355547312261506829272233737887832272522909967757820448384099522381528462271128957921842467589539198925744777425081300814081560453029707529833333807329277064077170673435513612854969197467274092772270778756787397407569024386576059688877015863124132816823319605999801893704144197404059892211320632731542523533402797761413225984571061207773746462156260260247824405170465249667673676128010231407753747666373992138510159444293327816901856158937529291783906440593730394534046832875405848498450023463375321797244158307823252276805003668244482863464243321408089794525825729733184580940160625662878125139817154521879559069658435277583444767331180746811136647558483384689115800491658502936239570378197561770904662035638400914348911360917292779106348397846345235337024171210398347662729099224777903722507558734978863980613713473765318229975008024331260304696946888997605158551511733780576566302568151439991694968603536201924927666683182472309177778643873971542358578386529689235849799691018978746583953514775084300877221040917713414687155396923099184789833895430243690873369602588363572514969204174400623655385813115977818165016114237740238700769984829986841993446728329820947220093443069092312662262385998087053888556078948502056707387874142730770296638777988652845221597650702807582565978498002648823497189378409257631860938353155982533802098314357515582723731247835931812345083167961550470991493697498206413657681300830997284888741194303475219749290037160530516189107871912670504180713371715596763686314695523803997388387992537774405287672301032070749815989109385431621954259503146576749778282984955340373147088085881849966890414812190433681279366802771754269907892981376587445334347472072310230786534530610157684197313987301711645374018061927508772626560812663258600871570651524396408010795386411569229873916151812426510629356347295375886290905998968455421225510153032989373730482589875773809607490670495754456625467339151625017627157009441260319415374021890258819976317139830882171808752812783965874853585825111811044107054680066786228202475631188830012875895513229209924291086741578210113671915438321298161457116698794604851582014948326654587523334828668150085702966720247225734796586422957545265995489972423674367077969596616527304659387039943639368494735273153276733573202032265400161370278975434914834445077438499272703999024788036802672375464799467249989863679886102614774456488233511819676685892097810223851414948152800811423793158233857314363954391172067034689240112799889431920654268639227340745855797285448180245509245035326762351673292646560440739141848158695483155513092088066420612201968882133183463547084956935546461950113022557628688055751308923400586293820215679033104740284811378108366241329282056140032740317325828720916459564169116714330356622881280450402319231904483356794340377343019954440254972492585945534915459492742134045413360825391456706452655567035428500515865267058078348038044943235513475572003263770557308442028569168044545545882563655517020324478295611917593941905814394781944652235885112414013961563060404651350140214090781476134606590602328414667263148455028040286765182627685927670908816882828610335801295010641114498517317041445051738130332818129154792115079700260180738572321832739641880045925211429266052857455304616565617249394915978547706654122006135514142680737051868917500845176017453630051082723424006903139001080963008434371682772556596251443144063582673511448955800960012378314103621441524462767161579827701549721022518098631424708549791416434595949025665217696565447141426629840150438988763455028401824015169221668318695144574808869634546691278797993673848103912282761368971531804564313316254334009932331871581133552742995928980338117195385174334188373268657483393724688833196216667988497898166677101380854623564327261544310184806626704740857028186371552020728491864883672587493900984817770015679877082713785147859380172264650228546734050860910171428787438251174704965099427644976152947042473633746579451025375786925987160664634232053464319311958952291746864985869205221120798792538559581990753065985446686380327188682992423823113672805297443037739753472211166707417452878221208396726040248222776002940024008375185661132599258489054049958163331351631681831528114313859756571204681813183890716428651198290764010525289050152236581512312322206692437568956854545300030902994854547812142800795545517638974932190511189595839026088364738890720159705798543758875740076007379911547392936194330165082865323551130371859139995848004039239846789763183376501634305997351707151224104542119016040880396719708486908074022619956788570857851436051892882101123570200477911084345938343257601807382048747237127973577080854078222413511917625136621964847098442998115801739458412627074605756690081755645622275872259077919812549630286504972733425762381011338139779047846757096660285162897262253317628512212647585364281014577532752634427460926817473054233244072515862945121267499485839697690940198360646690804751458073013426976552993589600009845276323729121020819456235321991019294106474559685022202365905953863975939025884088414166793022958874952745941447653721223430293216570321602746797667267833966421022601060705378358353426787939230373912467381832536560612701230209656584206944312794301966360210048093058182418833460404318969759603015182835589760633566553826741807875188190282106560293143700267177704892436699245970868979086943759827846040508075625055490267031738315985564125365215715416166773283735095869616386398079022024537529616623874009720216189151278433279757210393584642624827094982459315562833489740093509185942622668880330526837244607438377681085961064485259649716033378585869367697783405684704520659429741260525945839644030593615929214069781054447583165683232666164031556154779818497817857200384723097338926983444885898574324495634994631692808758654601689819937770691055976200702052965063144517248023999870757861555337529057190679404358702744877905354576324138740362116457873268602294759538636209622596414858484807228828072382509743920245996231097077026368920403474490480249388396355901019243543820287492592786700774849876293703569455750328927352373602940266281950192300605040550207441052298406708342682168630762641206033269752296770375385945718351385493217637087920557071586670715062785641886512291687529193494643275736149762326448480019312596997987773725444605260120298501370292479291725595962701694919154169017345837215811336330655580026142245733566751312211808008956006000449963299321739116956529856547024594948694374672398452900775718711064098162258317064998137929741889879383063865517645965289771632428263933172047555544571663680736418021735664861032286976895679378291409624761537303503766808451166380222456309528022877134643712439206279598228033417055334050370395514853160684729057229514272650784731700307161962297827676883455432930780198618716425732465640317578330762172836812465841532834605029220945476039159057738381246729089530358647112537181586061903311404776013959774569428369544249392357702666391837860070179613467244068792806196648284806785866186288067775621716191895827484770670938976749273488212896225933200647730310020777413577474432105099030196345956496525888249984085270670460592403828039249100212748562521227533878692255812888134384484583030687818290471172068720179930776218941808394819080725730374512944909619154534650701804523257064592994693335961722572807917774968889491164504277433309339892547802537741445634369223714209354705799578482236874044835803820109962514561251420755829369730040219788347358344564945264553902757153098802422669310797063466838429703702290400101952793884653271152272177881530336900101603996024412667865170171789223381521021536141194374975244846482539226660493294184513575982492484173917914007504596359693599441094999650364374098267351175858802399172187145971264401600960566259035694067583481309505977167667662053379337863107142597150583138137396370809280811671259702433141712352480512803502903235828093788099366726405459340349202959810542124967981578652537790787643526515829743638037498829904760030557523270051906447474250312283951122281651942561498783156937110206460898103200962967448136080401126149309439553602992633393759513320170753199125526614590212351583997750483741086327633045163698938864614187477788947876765630136844471795225490786431380618953114052168208032052351770378471682735232998481736184779546393635838410857384395121802597023890208434448530223806272555426105023047682826473448183578993081683986258246826026480705054737381829214836387625734690170904092267304986215280757726605257637017465557138428251216890117164866940314187605155749747810770277415585687864876885955833738357444389449361652921677178552677710129352936178675841013337358547858917972557664461539471903034999571330372071004928082981132137375089343707160375779624340197084913787560604170188209147691121122423063065687017978740992430621148907091310132200543794425157081994132874403831688210266665300055551091908878834424856736576217445684772483202533144328361452763348780456948028458967271153554188283045030349541925032238565644241605017106579955602632045527716559317406263680129695353403638696667191296123457547301560782949412902265109440399647853760339444560428556249275276127534892021214799302359408412902975858310750686126853265271621254720227217802510087862170378773069738002146510348874608892572673060558738321962116284756351560575274189379831146431360712779678957398368131407332076761043486280188418276753436677759189672997094117203362061687201700682190763396951512473072906204946140431314521411250421098504514279343599344113175228911478674443917928778957178737022423677685958272552396731978406797334721709835997326080953159493656530573650499578371918387311795658315729660515988469089894436211299609598465987048374755753823063706354747264147866909264067904921604984325208356089140470918334628735506728711818884597339704196195621635551664954421069070199431266617863287264193519945280363904502346702839259819570330729274189315905611189458169924556993808300249134794929944719847256700447873714278801845294381276696801134635339665815838153835938200803106416535848406377070305946718191782347016647115307034963753185915518121808080845787308946828313727471300975265988813673154161907294074078360621627925903517985678152162037741125877151449331375795345710960089122267964730010650712664280727386256467165033281297617887604280299551676017482327899846673059839063933027993320448046199674476627596461941452894162247744993999150603660297400370967095376352654644102631360634176633515437741790553967927064817378451141106357423288297554784884928869387768299821569420032690023449925958673925081166167099610708346685533614671238365875220348523302801574932737951521257823580722187880227682090603189926764269382223233935490765924727176893221126903562240179912398171873192085511446695955436922759058846274766276198322749745546922385761729475586594754351151352443034506093459467231461195665134439242755066245637913389830686791267008346025574749126213220800282866108979908488182359767812252642107533218760630123165206823111382819540112989121062894606698159532879541701878351931052575361043506175362634093396623850153973934808339983117749287742969779660912029262999040621266660432325918000831414368261824461995549087757706096358985366984868770117500944038874659831455580854184828782185897348941124296484233355998227985143451980865229837239710634977625194721289448557038528575256391899605899833892178957591476900189625732598660936756720427814691697943477337265478104517987480751951435582193675802495628889470650640485474589323651465025113574107715645489625450756394829323767913722379995228294084242956114693078369074738157230340716703252910694120840580790258930850776040104983707328035272214435949758009821664039538276592883747982457798309648283827536162898711123065681238234306283947916037132696005709450830496222527774818500774645066919690852445062383965137787701491672708942203457390880278888532727673759225169638973123367515138582554783769085561190050202118872901300957759860249456179486370055324369074515087080674760851398738721925997458697427631284000465049392475082497991182361689509975935522489589487571707007565269951704449669604483363372416593960358596336834080761358958221204516277404493382248697268637737147184798334610619898187320878582645582716289993050605797545245539746827417228944526979318731699551319103205791099388230992531619851930507776380809972384051541508514267618473457400683934760451253497867934041817461572895195344998100518535278242757921558703600943908891167535402515769667953922350458667534648264471874608950891655879984923101225056284909141111654624785188528464100923905923514602060133062116212308535944746190590859267034565383191071624196410883121387528636428048672292395902965842971869803386049983384114101983401884723875350624183408310883393246196670636359095893185554504499158749285867624340977979505804071828930865228842253535023864347603237680830647475299951121958931293815452452149357484133785195288330805672864273684149246542594515711034209222812913820922017579955553543069017631181728164266470009640587655142459190211633067942440349803126169122430461447792055474713161795089997140738357252963575625021292003074511196533574213154453225216277643379706066050750042522262509442401128698224432936849647087238814388750350770719558349483584850595063283134157619050739101364252231359220362550606822787379445061595346055958047506243037951798878616008214501873011638419274313867952895059884676567858648463843038826698924393437389046769373692010937804285577206261443105152543838761925292978038767448246329868077326502311810417169955093400531749809018627054878863281560275871689986820539087316149897330856435890083652199757030131717367446617019326665134099761447543221223808490578837738747986007515975323421382036504112990478052994664331328893911260324055381825222646345926752669107748833967866262163061362270143810119347882162512757734617198379811173493268310450252416036127248703335158842936258116971279559676299880475897560879614597647087984900567438834014908606407715564638962254387510633141753978442395062925306697319140295719909132176528919169356870085021775714590793678585623492703451253708976355941600183209111980264130934612913582488087224491285756480084638605738627257078320406220387423342348487345377255805216318031347991334654182049572486625948192634472080642892891293900915538841707372495961568186958794629790772415377273435318287859680383843593952493250766766232467077355603555520969893460926163808729999859615897272170134832424490709581758079385268852205130356394751079214290162415348288257587059659668654663915758796959247996561398138788273768852179210198186977598992651886013316476828270414529591858221171659549350982218766379203983518015691035782283515465251805808787780904170815570917969704895677398269292224563805538386960287702703827125740395270653913804936833545610138925397525741433930416502316134812616768807534657624741727094479991950930901675737764586616477558419540934822770000542307466233020221587628613887489280103378637313962223727975857644635529403075141825625975159298284250145705389657925028174789684804426182691485169503861274427495987481156532416565595174334551037222602488215229671570796686084900882540764608985147636959674543728556880280775818269189392542095050785958514464897309299399785351929526050325199165905979642598947381804414842991660006581861692167288658511394137923795489568973164161471850709907560352527568907155470278382095647434617454187816099769364130463401365700806257380378020115166260732830774509918105259635808296639183834709266922755965639485172371486673511392809872245223077097909342958135733634844298729621283485642024775373955669311963635489643245078690000860024745357777306105604894521505628678506581565573273424087503946874997179637593337598579370704947092606047077617250270736148370432261347715907225382112121825003012347149879140894835145163842811649625525497420222436929711335860452526309005113312783497501982587767810940029192311792335523307957094858549018500120398840331962764448378088637346739059406510497488881865549299900801775921051360259797809636935426741550445196278891381339543906542268488516891546483056042627595617023176707289630493821610158223996757357724431556729520856409500460619614412596535231264518350184149109826968532807313068183106057680543439292088793891343646396901730239786600083494405149268427964710480353434009620504907945197903640131302908516127258254961597102071845541503919937492244265664222286336305027564095634091185097236445472122783342676579978459515040475969274626386573071774708779909113260501633603848750160223864056103136661477459791098462377170523885168507873298232086679115785536612373658458631540569077463138805797505848124519601117647589360948265212127761983267610972573955202982485979834848315242681105774606686553185157771857953010105549483559644622833985279461362012440826806696201119800079331706879570664834352476305479774926872438069346884654895665358011083996620925393500303210724139328120733035553828206046654450338708057469582168629207246843966729830006854473434824406392836762276104105740479515248409894508818057170220627603642540097709557439036683604217813689478576933244039569220757163357996240155487639638933935425081510125560188209142248602947202174930257880058860644811700451617198083101497978925476815812299156594095691410118029485677387930402400091066470548702244873245333064286435971905981573740340414600387051848590622723044373348848252590144921173059592890629009191409401580178163903728813497731085513068455359711917799404062951667692268031598153827501345576908636207644674730562394704420036479810879171702500788046365955158753785064565711156978607028667729382847133769467238928107747555146516118693347378908465242756290100336005364703526071348560890197913061953897573264023713658793523046240184955085335266674590826795945014571709343692648045162851462482690655477548608618354025886421212635660602712910805130171937276407361110445156720934625760555006905760782727729886190681383749695188436052819886911416681489572186830256691186348993991102985300940193695488062068422482559014987922650788329194632130219718712757056703509067988009917527153468987661878855966816222423819916598639146652037948859066533813555601699793040784020556991067215563327145953899598691108564825234009176318623395501470444485093897502730137086867961668047573067095874239200714796096593210148181846231831724250621497867484033254247247565630190267459692609564996552850451096541337385108705550081952197671588205049357500085877487766296957030245104169038596395812512020339983358587227305236804996441827709194720707524950221836294263588946308914771211932201490173421831296995219105472547660273855082216282629343489836919939335914700896618493220446810839902446673791256886078854051871706416947104670863657723437025727136479390342799349530079109994818527778477214391128781454660201735153899729121327286574691598914796555260902151327415978258748041751244355390702654819164155163996350167651619424299155196407112082693000372042496165585150467994630800556156418646883298460689400236616027585579556295876731807532953489362304472926025964109039312837611621160141157503396706385017925516501522197483497528401339006200667232875996667702362155615984749026614165669330262082199504471324599882793261606542668238376410102301442428980998182978442409954988909317516289988772521084790583143983237371554516126601090554987049970701842203586720695127546910862628407813674658873052479159319194168715292632806264360651173649013198705472511601755066084598153007584589951109785953302022906013474671296685397435473090553298640118016903391459291470020539925645687015193878489860706755019785717400276145601932102565610753346761499729069130582181174754732272514727243811582122208091303050045481696057673926705369110677532580168553009858446103645123110229605638402669894342851745859458058896946678079697217296958149128482454408768451190524253137149334074774279845611283506441775508364718530551886324049541768911490879598212884420576310940482193045069095708281795039242221631767726692412720878640922978166111479920639745136472108695457977425590969217788729069588200571023137295470321085651667689650859113217784747000304967891388878117669870630109275280935828169654418268981582195995878260696591232220433703786463751448098437439500231167592830138400749175349219669922332678295310218520882652831537719551783708796341152623350110543175308279160985290829177616990069946877236141283755769296586453875933890728492724417714195418596156430855335504084905899942160383636694884185085460341438595333458670041715429463020105208339764363631157585434126247177534673484329841579582902505813970783012598339462643406400530409299736538008675030032971839468791905632450425928653415010970946747015240681886649868081990513863990994037977812113700756582559277313932512233820643440479939632211188445620649310013145021881326686758682050895267757143049375744422798172139628297790914966094704431406845471220592753075029494326455530951511976960821162566833953799217833277038084499646430176079596919894514986824263085223958174461901869822104040272754567462890611066516823361633188836534406592987800963709045686741607468843755704634565990959806403025569977493677014395092298030733580115146267304957513514705893317684073202775043128743203585508753727397803819117901573052328516577220821739174146206598763602056493867424118453338871873539346622943606691634510695861413585114702416038721705379875270450362865520713751273517407069666435589372482706719684021998742687447635154677499802434156175114764126677601519327652752559188719354704891213168107773001042122473861456935078881265939719087489764945683111271650936923144329459517795492720472298627882099516350792574446788070887003850042128578457118656983974123664367955637086026737058474441842401155049769801401174932366026421492446304870809807966200060650067597533760487568139640863029492717766617485776381181361253781953201293828725342956797283640466059332024659859804055111035205854655176061280548281093457480071811875823681482734568715347431628663197694444746973439957001374582044767962726002988514079973422981928019522045072853025615142086165788061406391995504263543806637797177982710373842702783047578405736054802941627701993722002460007123668665919169230349764187289719930429007933975105802311189647964074321751198927662334325093325580291448472981589793907116223522569420142756753854179830010971943807923934660985689554773062303201343944892093054735162227971740029766182605490658424729117030180222209614843050673026773211934664363923831592507315475299337512817648844719319955006335245952369355884784561487196588821666031248202507743955893760407351232828728308029018161833830359467755279805474715196169337111686665957758149508989762454134908896324707944509773418779307178641958061045510918827081441068806612385927024013162048476516348165572137774473653312735999826933059698255663393050279224372832935318140548671800848939895651581318482410581855656368379704859296824326278121938769610560678439720565553381554368782428101492335208083151562773467707259475247872701652472473215988202800439861452383059809086227879263972589611357007118816583897683961725523685289318288523316066048557059487117089958200667488584230823757412321704073465825529493538096435085280569754390127835516579136337527302836605818426304862317387916542111621880966324569850178976020496827893792092500687989481922059683004374504250825975128031657414311485323495828787109881647805838588541924120567637789684941869291076441923225667118910907000931353520906008446693622358460891689586714402244719827345574414371827837755092651643762855134129578228085080524128331907058956461857254140380870001642935850355517497309946392899939196043253331081601596948941922443865792281077877334267182220464435218051152912074181857855224537229753576390742751361582702314451680549716320388039826575165361340742155591049347168300668552290969127164225444000103321575522860556952996386360650306703814826588950024894698695258857693901505746648210794659130237686927889861326610693684253162084953840368681407453220411895219419211939044590357844965047622824997561268714119037385823563004114930187262769472967039307261060279536581869123463314394202692298607503403184409689279510317780441176375279038040555378271177928702427177799980944477124350908086785458250920575343546176575797630515514948377085400773726063575555891176806987538018592227728100864505917418952923761939708155867055142575283155882853233130334051721578527394274173792951624006217824917850970809957809952533687681621050843518399356335883711271328287640828709088295904622402276079510489007619119695809064290455972811488111434413364376009360020497737385974259277581634137786495311557881001778834434933698488581153115889607143671229807510614774463334356056665076433967375794530881745022855641790620077976852570083244215405878135865152789299812122291209013254102305774248181857634965411740964544642275677075323008757774372593919032921024147200652520124711217363206510677427864097761986601488424789796290193171477997468744098510523455466446110703942911871488317984098158564879691645619026982597118008553828425705843342378452582132159495760949596578653837759794824543777647966146035675349350544377577869601635256684175246031394264159195350082974778530860544502136979828993767998044728372022839088288137079636320616311145225647144066169227319828548975600054851064448791720599515235905155864419408496345799546514024625107349121172008627226459678252134744490027019528759653241614033489743000452973725999939599266103421161566861138129589895029785351423494074621365966059152701824859203121197669606257495117255115202325077814993492315616168394867743099299459135868486267620457312355345956982101674979290671421253091427757670119655724420144386784127157057239985003156722932796788543022779312226722768049234053883710257595266899866986849533434109023935427549811758815524564515745753003351236019059237749798477505596775257984794106984820248999029901969541931992387491260614695671044893937612485000132710488035627729312804012774978135080557218070628509213979024466903382402234568324976895416169297040001549434551066674119844398581059451522211915338470014362963635425717853139339612435036428365826342938125624693592549131421821520701468961985979750399892847556326636824356527910479295664511977432040689457588661372826923681999349780437964587288109023831709822876104230336285558024541493551856038772814374327742228462211021052384955776735842393857495958434802209819340131994614512820282292002145886447599414709466541607068604029830519785491675095870671593870095726167609608006351726999840332079322204355052284913721427466575250448393970165556096256620820086385828162294526826766255080844725183886595813406128266343158768812758513866996303251328044999978038811221659950155469759594388605499338455124417023425310216830784278524323108935986242535526118911345458592300158731520728337918513002443569614572619976282340915649547487007413338192740815853700604709568409727734704361866226405054991789769916848565534309029233207588758061434414699791796209117840069164550009613884230873523145535084269402714795845779040754820872957938214094343765993290820971770589738325248909437772662657680546661801563486624478508526756529614256265027219940194110635926809226707720732144437558847423303889478678457535503063439845979230369948558648590316184808945893092265242252302102765003339701063805865013532418843388512825148339221194875142981640689033762950618788200471557034477896835692352191761172099673343008360644216082432216100065582279425231357808013787054103057150666454523688322029185319779574352180487561026940373645729400236419992321563433432375510215431446113349906956507814356148483449292140887707107221405310761520446148650507690522555901253106608279765883121769003899661656407265321840577441311462015169433932456051471170555020432250872297060380224850478844461314141186658654321680959780560263779460404939669653309128966856725364177892334154898992258504731405746447361842128163860421485018443731131408145933556176838322084059694109644554802349383952528528957509431764849404929768543280632473787416610416507234717455841241968568503303038251031180857465666684618717365163266529898643728551457985560436537450102120146105397168745471977831552475026119346549122285961222284481105891706564125392149109800786355522816291120984496892237214195170584319077133374091626139282498063108483097213710566577575431365744657565785502617000255405469265163672889128152754416232855074910558339567641491123975234526962546633254748985513333360029065559675916450133822450476959766289416118499603105592046079730890155492811829949852735871395498502680647989274649871834822300603153368254424135145209496965936749828643839671114212352636434682818203260396192766749480035447450382485573118902920009984640208233224376667732028361991386686982675442715107812011903167211663876107636828146453118216245735112510227150669663887886290829790536696719282855779887700421026623357530232297162097189192509445640871785716603877011948520980639944914721909826588943907241844280326074762586440327368755205670951315347284132453442054434683405800406340649011064419255183312988980396706259401441272710929623867463583243296426020595883450733330764338748942359235598815435048551621369487015256569779534729950984839073430356161858608989178476641884727237598413412623459391121939526734803828719431139671846618486908945928173790789746508389967675887745123159763522257188570005192587554373541365457272270043337012026342151308303325422022718938231008714633381080868549997563922718372414520544806836516801293154009246420445536853377168956495270703753206269771305806313229006233114812342602529340145400537060869516948453222342781066144926227664538406249862822915047565316471717760070616947732700291546296972101735527968704281590125032825602354568837402814636257611794851062755116109237560531650848296783252266477960366716570065220683756083720610234275261659949567572597374187609557415693858952899678835090892292903159748673598008007567049729797967167333378045285842622960033704482901288691434324744467779624043423250897900861756791142973692039601167523487184646162135732854535204249508380040809810905764534388308271400275513546627030911044497422233774435906679887641887592364410886124450129030311718536588797340162027373553546046375410631891980819333838675936264012219997220649928592843088611667066531317603413093944233930374588640266763163442065927098845678651472135644211807512616508774637094837217593931896254938848696058875454134155524082808493690447485188620849062219566710526269412935959519675435351901954580051890152346347917818713100644896694281889293386663137324703940728747525014061516138437514766906707740930719401003992096526743677795839569875448439087617466061556363283684411780854818632329116530399206232243600432641254472050884940755723897526190128235209726182252402596569781006323415181958368566473201465884751548041841978963539662816291528395611435062439021297651851802003204623784909378202875384693973210667649972728720538715783879231640491290867014692640995448520567149920595637733415662292117444622029666288201211062959864179712156516665536702740535516799606532457903097804324445323985795875960685558124450834131942056021341245275322158010063692203693597334796261366668934920569019594232660531913861555870961159581952164299537850847199671296988527714726375655033078175176436649639234745064975973644601404538760423843845935854980023031338952007959860200958878764747819505360178873202886492201622843115595749309863490060367924581022057409293084810034871436069402106948077112504916386739874639571879679864420071296351522120397489813997883959242168378587408390123104813919016994926967580147516621556948264826441444561499391005961599824087656141179175890310018884283183877839407426285487707831642009522035036057841755388710290809951682973226879718733432745138342768747299642929597757115829703747574238923490302087088208047584501929123683252266055069072479450514904333536955077774034783621449649986200203019855175516705750047879035550978538477122531292831404833620380413450879509036205931764445781499269084889480884228224055437843003224688789408161028939698823338170143140861524986663472123771029879436827276114187895759911562923305794926325090588456942677014987829422733630638727193936104451398630517384479978568800001983465972063296531343886521101222519667803411394003596807178522158176046679353937987769012626375910539216224113889264492035314421782639722729332479224632663686437982431981230049230831924135681011974153240646672071257216586227132217122156137593932088304525677994902328479685966615662358280045593525463711039489559092215021634639397691810249749602798970999961611652087068455306455015646873601979930733371848127656236928433561341633631555926098514672694287862011490521205893407150107251692422091198299280279174965337404282171960505491339083864953371974755575331748784365018601680287575525728834821446992915383561322563347353864761032600974260287251557791197686584346011250530589461908272508687268042282749259813926411100446049339887349562177652103933259416782810049644800071980063116247760994981160589073753994066548814845169967720426323329539620510214424250273038817484693713344621062906201056834467665870248499048932184020775684287199033149170827779964745054652516527264358659211438483428203329981658991055638942643916191325275773069953906232561821037950721100087790541337256436132406235808614913711067004007880290302695460779600637817245515912617726649551328725770923126566145405864125730394659943904370376734696105520792909668782194617433793248412620747671837644691482511389735870025502670659610128295637088813852170686510268403288091701541112376180710978409504953796713308855252806231754146864382322635730569519511474217221592622751270710938858742835172753193645594250714983507368621812878379819681646723755986497460992660122530420670352454822580722126118089494120652745250952506699085732644935482241823404870352882225416712872838546861702600312806122307878053611620789142522985740887022822324665464516965683012403867988555101574236094412767144120340781949235607040173864547999688437131243963016312771553214033461258820357822951270676424057569574821971513838207933656181826984827303649363799256835286207911306175149808710145518574841497160512949574461097725420195206525136480882125352608125853394537495065382844408834984884685937331291618772041922086689334194480360306433487675965419661417354967804885913624101293629269449225041466460178510004770403489583887300682877252844940273956326297403811120291975180363579111374993973077717900373927298376162987019261181431147004490517657008042273130777431524767195630202184521832789443221156985464878714518065564541822422398915965705396777316131381793554989875497285242240062939884122817780345165468241184959418349207380892090163046276266625155008728243236312260496145402853626558563679021211077290647794850605732864491575670995281279658587395823075050868023107488170317166950792012309762799912453057464171688960318562861575841692755031302028444111693265745399757929147474998390646044636824264610550430745872458369367168790397197268137933187226223727796139261239064475517652046535209483056170450701552631174553810529413361779338373096840297810735861637189969927337535844824553036402630687016774174414580800990556694656942337876728670912352080171744324567412471921784047843024832874620416371715899272312946847413475048324921688019723388673806188802932240204857550768232344355363613729939888294471026594974353363209327440033647481546550818778338613569238566939118172635139447362573775193628496969024148243557354147853984166967564732683593868041965097328484140899323215789762174236536511893447151569871054897651820931333752651456196386301512367040249437986290874086915459883325797897181230432208467659288586949089944184064914599054103896407738497531216280868665157436354063977869916947184057491567220176843689492328753350081379913648774099272123932516795148502611651944616883141386600172931987354725667732806797749179230393244520981556069810166047350460101790558813858601612866799701312109227073702206853914600815029334075269901158201420219750091729972018939854996369601054130182968975086245269128633008202258701628559449833728999075340113650837294150585038737173621432359972497632775868204517246422000218491246603971953887938769900675993167375579548101264274342876518216057869734876225307085792982769173826587397585395750948745316804277022670747828482870437371328172235275011348769468167680847670417772399161208293152017163297044115370827883894024607903945356550545306276720297493178035708015950557425098592703583364467959903476119965330444884348386563546426239517039076881350168232737341718612614781870947577460415899036363776730324478866014014507319138099026785567537041494808312979227668614834061023391348290234132003631975992559643422330825002067303327240000902780257391801435680129429395720504005387546412158689316390768553671752905375870708015218124402910530198907111133302852979128991383532221536830650651786138830718633379101252392867022445634582086136164275651785088797992176957217954913705830601510074177848487435483790065815258564728215383418578263893862033785117152248918143635003566918093541072161122754069733259350684045133160406586958503752385332219777898873243498252209683035189312347009443925646152532963188706898615556303728040137087229002816004244629038672838753957651610628246354517225640092226043889651843499916759057687687220216401855551230157462752651379800150442638248887628930886895091274289817664474190173590628373055259575380341601895039046365159283773991314466487674355346671209710142568350932752402842958350508300985725986152588383087693326359944806896019217351141687652387068306592140066250455723053168680536109791128851353775113198984687702637622983743014800748834946161361673867087324869260209199196222463977688761725742693805575198050879318652226129790562183648891120739661830304065939469411555304028489564896496764070536137436022723145352770316741094240297907679924494548293577982674179636023257835268272251687595445556354133247364641582377663132721938269000989947792002040458499002197448934274159567174828007241799903656714017095945389967561388163152809105297256656487400279852833966442583188501022489996130734161479712275613298055930579893026135386473273708093945910176646792712343509762373158288223596483905494014783010229591375094670047940124906669194841877078889698415493067927052585613497794832117596928179921998271522836278417200682587702268233668460882553354814033348123146864423693482309514327756944227139957732349625501007598472436075537797272229328385543532354392111076490250209966589363716419084463142012229895634772923254390748148086234242962897934151634352615862375000604309533853562633243769919770365563582153967861879719671006586446604278594902269027451804066607782090350506683554863681462186089267320073214168562626733740679567343488846722497037103437239698209005826419769992201467804920099513711829536692528588538317833675931629040558146473889447296715590982418970505139056861073064476573772730877671261065834442074216253203926651763702897800280026727876619138360140629777845110589761948753627522656367162039634083139484474546926068505820059772156158083681218477145594286311931110771786679132154303002968303641006936843252648168132740479721329238262235539777161028459905191748762746225868119970293468215075387576861858298388816367000525759084496297810188828643170792182559427146535585545011946154859591001926764665669736687950813907592503261571444484589254510644011033565180514354637079004300382577993093742066317802887174881741452251651787670997738418702085785237163813805975653694771859525519344900420103802268310377475093027441755857124376758342182443741820371896145807458965937697557253592519689634504486126110667203982652773143164513643209931389329693178845348315397884610902340188665708030420447805270425973750600357747024015934273675908254490359830986462760327764201195187135443658286093638622089568633828686559051157081149256875718572629783930534089933510279270990050087399432041994930099608626910537022853615825179865257092051893571989558181203860228843706130057512314066906469182661544601445510029689182382334405825819954061289601387027944642374481656260821104999732821466713306275046039473777693808979103540197743170736487392285643501516588387546136468056815563479501334329801271785410528356996145450609938023771805765153364436306295502565541629499140450483658847026188482805505769219702230845917802613627649174780461688568618312842096188251870587359426385829751616190659564657984488715507601572066699140673043459244528214905854773053784183332642343427689507215249502318209423432359753659963270045992418427706979784876175899058553409378316493073663716560665076382974370961677554977872105987436101621344341151895715082249313799688444729541611214739270868776972990398174871508549963765212855997985716606200987451246052351974448941116873762314788781669540281918517466627642816852797500761492244405714516817138254411216684446624785469328709289720600176149133335937650322832278833788936930199671872709392887223422352870550151800813784188893097291937777903404093641006529560826157299288533244670058962225827831847452038887211851201715882044995923811667874010821113640681525246394053937348431726298827737466152821370447515969296885354243735821881968005860838040133361977601060847174492985812532870135905650459736596191191291498406918680122473454288277889376675235887274749870823519539610075965250230370683597398417238047530851018780796922696671842337122047255842708024080577894998326475485980443417626800712790171096864142195004301316277122797839128426598583770029806970324334303207456854736112673949607209857906924729504416893298336875115059525419247357376784221631130858889273184074357201666950291202563517060932704701531306412299680108313232615398653082507325785345727819191921877406723294747617059009110675001002918490520720106139941250801051503116874465375867427841886007350170373754943087836805704573551326991616322225321415382720821336058557194753281183020841781472806927042269406995260396432577669823549617850626774251297002571641019276734210970699924220188608780361313130893825014377065510594100713278958140161583546505244670700524288092708195636440251524180585048956164252512854852214292358138533083905830826187014980528291919896416217161957672120162106332419213024718872091682420738359592534634131914282984813793350313571614685809704668232909665734259879497995930852277972681285624851633567362808296630517953228711727014558804145533359924210564320457422526967495857753642093583695772163701496316779717548400352265889560008361310685846957527397415747242490068759105233639287156489389068221303126290098474407644917521796501945119511902006852608919601171215535615821520947749491396948873066734863025029834777801543767504174249495940407066900954340455214258237721459929860588955442745634117158548876413827296295312524098576189947153835514108646261050485852348198150052950427201132070801660600216087876218526300797123634037795445583124340103326347556932911612773770230919016509631125862995070492758309392824570908115881716378626078079377991033160834911713458024145329541581105975077414562921364578838411396013661850387910147271883826212746919372762547553648306056403501992721560376539543044902279206323038731574960973863160932111174041630309326068813521778902247762583200509996044373673257553182602703392726792419945223765412699850279107380744349249051540519068621518015937425643855194478673347037574212393682045023329040495555503407566791875989008075130076317961215459951889451455371533303976039140573355748465451743198518839948680367680018788188229392127132900793126890714101277870767263243747113444696447535956578568889898253875867187514695670321553800001056612381212481038319384514189202827036827706289298071262392935184755566080197899919239095098859640470698455992952732014190916345253140810357397763217989641462681265537506328991221562633730056391040956438047910650361731593738049056108644435027414571701821372099120970284722900280839458052926332401687581906537944760271138726758357918307721168576364119211197452634230401524415675409808057131659039800818866824223775348374658615840678560166663823280322838505973662822588305030940766318749605797031183567473741019116400644528991927900404007829904597189793074429226737260551553154467779552279385242173531171828376252333343081091926979722999366231293375623799129775785287661086472697752791410265941176532258901308225553038551912007122468053532865567978914802541916534088901932921598676564725000864466701418969364163375555841040583036133543811172844412366506840061271963935049591157936226863587345157092327797469174533071946871122418165812666598930218418738002557431775107345093611041622122106738719530099246303745078723025412905279800613985437215207366806739618906534706535492712164077832036271792942895385467862581384220593337373181230010198424878417529785073926571969160541292630337093373978700936974013364378622693464376659260911471342332504400037450900044753649698677826934768171313167262387280448315986481609703342622876817126693046510250658085392638910046643531095971901795868894279593591969394612539860028467903713470469030357274032157693422333615418068062023538704010545411987990522821815327478077102541627782663740245760780593320664874071966371557775768107009359139313928673183710799666034965904050268295013335761508121370674828550127472683360027519081467276462100210774755914555559427271459919717887959015097339714164112795162125729376105064605342462968126918851388285728321424010627416837764353878164684621659144281736648610383510944160814631950479887750698376382272971172777141930394411656069809412254581162824574879237278279265301186118724791359044179150202996203374105591757762477503541598606341699942572754742081552265797270666760634659992744362774928884086778203083781402583475298161702653219134485531292878265351296880150929320317784184885611400923691571210447927547161126360630180286675732573267148842109738336832658439923261835019114993480582711686145517525387761355995457066702202042723946803972577637105524705894239625941185607737597700413574039588550323330765738545961031111228201313430000883007733474884741673010099068841616924121816636833973193018529771889444094357935729240628856582469393266391823459918467684134691686087707797701607054084979820631547794133186611498748653980560701588554140562006846863262348552671438013519670530059790658881470916256324922165148582633772347059755453505729657807051854899026252040850421333564303474843339865038088363311007572975767207936758851672918349042393189187233622420685578973596939265486967229567583823305388991650455347748549864425483321622210041703723780824632163809877149759146995849181032143951093931359133556284026807520348349345694199604811917990481173692877769977553513989354615048699894687342160000571076023536348532260670175984752638424959453471948771754103277348477653142314040270397638029520269356876482418552882027020394903803109211820194840279239749647426765457841565294681547432032180050601716475440037504933572067645614340204659389393373188728516662407475181898991183444257673307757904058453026170924878436669033700587970677822527939274626920939183206832164646339276270583831096251926424488746200948173257517932143446183117561712488050956402723771596953099871794230016693073274290652710041618508918258794524719353933553823299260954002985518144875450722970480670776050808776626435296303689023140199957084288916281371182638369581924428881579028898621083351604248972181192558358146279613273428347902434568242950005915499560174351428691108431268014802343283113930800065569888062865222618988506872849963206292660948118360428121720539920066298576557355043955991137782283863586947523508185463270423675717534838802752668579355988957155128559454011617133792214940030480745366463954598941977645099624117767971315319993722756336507302662344447372621755909541414659723831433867924441728891016867471171746370834234196235804031076278754171054522980324625560717849319958226807687591672175559997178241260477353883677932207827676979931349948211367183891658125331793889018093546177889952754288709666669259397540237912626798938997414811984782070191795709231021884114073935624332341517465443912472996481415013414232890909462706523283601716855846022805719468264754093554073540727471543011014876341588987995182273190591933008446521034792277302719832187381856665769520774902140302570120281823651477758173488678352850873375944990352431810566243420727397422783323287260222732238886677229904601402170889742771568307239624081521288466334223005268104661980573401569296140518842614710144719684574389982298731335584024315652720670743479101387740004013441912002653006726351935490592308366058889236311630158957693006234181175973404950514515254464178549821402709341636792434360692249543710535473437929658759831388379859782541182282876734956992088207381097267917561788477954666326760458288748530065551624857130674532946653366207243828198050334375383389751164747992750835944495931802746011141097096022776188932252825714335856260005119767792587192252040181935822504805794484671937126020972135525582738607961243225180007716942552249803697362936924957171790376023324940052122384684393120395211463851906851134954354309011214239025549437260421275490906471235356273616757860652016554438695203502381379144367725136230991554987562458378812311780292602768085731336096933777977564247539824286647694883725558454741604396228826600789141150147935210210671539509613972897424635351906011968478883054147563331729935013747009636628696150981561083575398194279193173255676220291225524537922689889608614153507343623533428087233002363694717053889734530817356904279293824632583939231660497114628174252946517765803099717844612008420808594021450799353894144268417818247140738481362260273474437512551170671350501765580706063093877497380806146775610568928393115725017540376541646168057342561172689145987305300635651241600085706107623171196097943484520603174214553532119306851858960162155560473447459531513660659487126251735989936483330054456307826726186184513148214514893356690512127398948594578598173010720284480090060686847876769063438456561742059747606099020752520111375343298232698591276119747818172360260800506374463683856079467174636637224649318162448530746734262286051681232955641920053383982222877213766624399374880544638994335712404034858497123929398342739004843238267487465035376060496817274904644282004983195476042565289656880767025605891672617607368195487663347691220732973458694543586098944502959099032842928033265806199783943337979781064145803709892172278577305448107412933310364823120564893699023669941546557512413157157461409393953496190911084924564390309265788905590150677761016621702848001757857367142334316840542018979156191445519456906741249901265740046081725943444443085290664672498338568274878146640848208269635621455355494494864068984757992332382885958850076786694879297891688685727112264146263619327653373489541754306384855704918313680806995638582298327398134058846485101474939932243322266899469581292008698827734526458734752728792717425230131630111621032449923036819292760701799810804861297663794389176131060979108172685943772016619149916936843152954502983801403508719444465283575062724417701390987239535016764147980954099602318481495639993320752914731795458576468484144679638162922282538532826041039015294388399702855900498832282349356413441436952765379844770992730510836228923967888224524178899426591059345404678961760299671946796952271331288314901740994927985866462292595902199353452485860836692155407010682282110286100743234139951246847854990734380501032593249704730230649419395919098975895804962188201230079531798587402765955609632778600201837518416284488944815916548337328081623483992661781201568580038118009107155475391804629560401003919944275546397487233433981701609656851620409647454659912993782549246505813300496223273793612890441437803914030765913295451544050066697445944715722272134243324954398720707878556646097890900612962891369831804857991162256980391359554695270245245625358851485955234187677739901600918060599433794475308609845914582612101154333295261005265645656090063861188383961834674536408737373130421104862222283160598253942323746721366297734347449218388254079771110695968749897343427251513065694024366853290814644106576555195094828636262615562355112556999156089518500538042482815430856834194703994342152002463271655146733963756016470572965284787659041406507239282624372081259467760202155655335968357300001998412866608200425793628208453614544103543726585975054801437005523132390029232120242301618739791287472395957029851765820778875503351741172081792625449742620729014800601363153852867744491488227511094351908866552877662438602163859100800088382945187761145483957730014603948636148059700936265482155427886430222787223243916940492804726400307543176774251482422811065732039546975672849973136349892048484645796777243305272665930060322785694958992609770357827705351657821786012929621327160576349221617530674465403715903588417523903931073748246896416636883449972867063078451974731811161122252149950410893946718251817230598529958253176641077099254057185438053161508556906677309298626661982062305207127871307379750633809848292411763137781045093591744906822890755591811540732547303835744996079387339280114754940906504009151601545999324966231164813711830161403463249489495517262807322560880544774545590533316317446117971000834757068867045523318558176061429988988231170514488141834096646798274681959673327985643259336342427385509183203891342005552249468615585395270260700769597731194740899654427742804189632389433210805549405308188463244946853261678467565382585702939624627172788797145953740143099237314352246823259623198548852039738864390132746093366344475139459787790686510746294908103992910848468426695987138728103582199442050394921400987258537088646828488545128537767778572078121753210228695773003721410990942582312107412350947703433147166915631869569108287113397353257280433491744246045101897772931543767095742977306108767081327025963994745414679697138043074773478622045276930860770611512119674076742225763316789280037980632632162879856256151868327422193760178155928570975840215070303468829874642483719718941112979294632842921674262807904184827868523275219514418994603043630747487593672734222559885824994746881528391331328842901201864637038761835608308482439978551317442146581783889148101272303264145175556532977068614054525835827516546704932147303089941933800168758777546704984343511067444598728113103115891861678309124635791672343783378383961094232303440551980955940312977219639684269310375565940953315322877511995157047435503995970587008078423269827785239939949308699165202226368241644307400992034999545536528592868754328302642205922347539100097128016649490427303428991399508338738604413335530620362311284168225179307702836798814201581670158339794819154005087148046208745778911822112895570531860441447828562371296992659951058709838669742761889815466732533671248604804275957772998626017470318774063353800674703390099860655378809378870741498335568606195430579275780209011221804301258599972243681632336880248003242956937834110576535046707177588270104208719497078560275806052517406241541763470702719538365350068900322000269987672128010851850585968676858919950285844573667608809993588130226736748963665019793265705942674288349402884466385189125202164518128230297622258267224132456845920151492786936856258169479131665393629363695376888599637551993517848105363636155644086700167931409993257932852984401240256709924079016473074194805801234089847872885539568628170535322013697691692496279847672194922410464609490649271647910503349431127594357709057397199540026174999783452237487729895077044865179544605961398108952147556443422366082481012906227591751685771707131698814537151407611861266334473867464500531945385691080890231158692396874343365844878612703395419629890870001966859489982708436034100209620167326674322824520478510407472069309378306234685264654136406662237486424055281971381467416230967143471481911067672835695591935973039974888985975496193783758246109785873246009280721299107037764436540741206623782424783239493054606637891821339100781610989475899124586902739506070747416781539138109388196472713388013850726503296315286796491950047543625295899383352566885833495821793749437394265127460775209776381102250541022322034813969523214612853903083275470859888595795441768994723804352403138885218828937282817924935538960518811522860376183474058382542814761747284979068896191580688013947393812684489548215751976743835780024918821570595578932476497249930583373454902587579533689776900418426310573367352918374572074556491946917484651308935831101239170239662454954742839368372062613805131434202093846355576401319398175535809625701079522895561207880336638136661880988096031723781740904620091713577539037995427941666234734729049950562740899508449036967966870573527039267840898473241533515683486304351316305138416368946804732124647203163349507419673083748300836310304622825560201780827233465002682125214588132573857642903915929027660500281754728854552061581084011518581662597331538586151334066987708972629580440718745312503307064235923544174395206745937136548392352201364087055214446360447330219245255636704769331318259062086595060697731725466467347305800017871960842798567488843725779060879092818813586170633460485494270050209454969218615833651869997692949807583309843500314231810390944424234531366876481674884111929842233792148838298242060376756765225132052591803342678219820937594044950852519762479147422314223286244132409273862811125280920037415578922068130012599281890956009316517085932935397152271229758846575361065465039897841415376677429713281257581388665269706983499395043531307889452859917267084254209086776175888487838395738986414341265714973068166640027442643153547819150961200316456153893671063149834441346302610255564152391304758397665952689339946101664155897713813419646031895051992887281323703560966980005979898675657273973291306220699888014685246261659504952692561773420465131449635882148187182233860788021285002326879017994490179006418323583764897227503194481064191524516516551305414045155905293410410786630651138475297057534218338695009229842264622575022821339946709072618127086687330837546928484172092217358203055842497676319864404619076344832841733028170135211802827140951841137934515648549696124961429364359157563350388282482112176564777601906265636496420850881702799967858902386140209178595887730063501708114950707998107935538617854314360349484286764755852043478190221455879932121080228460822313397015224848657567438264136106879407699255227487111680405278665640964320363787165132612256576312471979225697386053841769733904199811369820266936361797879854831201138116898031138220985502222834892206972625270644591469234282277231609098918354987661160751480610477747052049927197288130476195674185779362255249459385007634824875105942067805659190207181268203636588009184295980833012769441210303773227832819704877336888655136067577537208514267365334539693788890361237803857990856996678113537872848848674522796938418055929377352300571429559414316875493283008294881673201004292704002708280275472934395241644486691445318521235990881230837074951984968366542355880047488473113638496558761246474960818168403038533047930316842786937129195976574353723489343017172503049164014176469526841697122794255955033962959404528076275418429530937486296270423369035596371462980716680419175702249485057173309556109196526296485996242413359233634034158766992091032157533066753134535769446804267828405329847541132628506727697258416001040707831042075427361594032191568086100496910746660697572219813107336745015601576593570731202926720930632860278147895392814973989577215727917544340758965488994239380184251397991148902089163995621747952559897118300221195475263896777975507596309134214483241257224761983840643380568809506732145804420068595221585520421041839382173986204324809316647886911511344363066624825120980726174087196927359920915676767998514846762955171180421256079147525596092724990213924250691044034512528733296125158443476890191338020566035024281079537979644769222350425778261019423921408159357329099163635693226080017102176371642024277484278961457192719927522572662973694479133755730112450420137911580929674076571369751230550160286517176749368505120842884596314498694187344097772251329425304079650739813475307733950437672193198100708677829428930545004429124588922118285036076500446779887930586850428344188221318267693153068321221739474451645926881948279466036281638938325123298552760954400572467581307928797472970949110194660628867868593617183087111721122465318274045780981656973337914125094271987399483747233483138955326355354469130192906127105739388112493568604377256238764533478728776911863996310101163442608698279173997580550656397830503956285524329861919939672743567792401064208081326992760471441706488337113636233765486066327898152932134779999184190494675573865806332511562932014008192107551873533233936485600337938336730573736194321535847179706316169303100313054435215947669443983005833885365654202930265585197368151737634734267312404340953115541723191637617476858532952913573994961275709916627812566291517987807229423827098229845050086991855701102356171870756719645618858975086574891253163554749178691701392471586478396548922671357565486569420139679257523204436875281300233965396653847628552831177688088196912317639475780582470706655824953922855204140486853337332167529198911309519532241491646477268436758627059556106604299635747703800317452008111397550740392335092911280399762207040240367980721607147589580662927912391353375504157339812912011782060378377943520062333880968942534197364961499637310387818989872363007926237307754411852675841821488437536005581146369221749816032257344075574918349729356535597362908121289703462862239378172921323255012635162504620821272834683182748173245293741640930370485078295634160762041909401660506573145442621792038173320690614242329258898441457133333201479326711412220260718573893603626386506354063774440110970449360960763769267580240217926537094091554060532256057573636939206315485392684032356736113061693625540784716331322060413451138089950849360373361546049846356671295624153258351892333067100046181912175488964972428579707669204704033498173740106953896012356492485441548832149379023645605046680163889182245733980913633352846475093958609288954395136676609799917711186449151848862937650664941109245616237317909987898587085295206090566713867714513725410504793720295673763484328064666443665176055155756086487126662458173210423552545127357493422696135139991468835325539461695270294393224161317437299567398742757458332373211766632578051546860186858935336670780701955798396344887055874289131108624073971422046462562240717405000169024084415557786402429970810062878953180239110252348819819896382229669934301835988687297257729820812259986958781104800196703552937628606725733707568386828101830780312317353055580528941212303506344051380302096011861416420488081327197032963754643266387417045794043357045426579122677819236692250108376227037103392761822248237190129529043961711866838539088987054877506638245880086836362327230120778799948756122130254613094693815088470227589321897530529694182366089963245723445783124908504532181034753638006049375704876724715044022601921251700498203767958934690654288599296484037173667759327917396369526182895146286122666846702875204228213621656553187920593573021497939255641381364369361169340880399064678018929176423675558329779696448679943946275646501847260501358277037158840425168263144515262079480177804190168991599505809065098891140667221603147210292223470004071973147801526707512035596430803118089550922982990051742234263883053182779467314257579907073416905762270588455556772758393785493773473769995605293279975853633640143100207687122026194320643154175812226658953458282167395479495074545008241784325126824460251408635581853581196708932084220456254627098207875744096358050658004279562249221528773804068180930765139388785611019356339269838858469922799122604464037935664508576656747708843875609884095594348182579114510612315086552867905601414518568969133428006574626939665306773112934270062673902454482650159588513894841635114270244415400605842534070085242823582861096992068382339159411996550709145671974356040376717300746388932640080256271532268503573412985437121217349407504779113765157317266128442725961193914622590540033279522152159684929884616289819084281024776216838044450672079025067963521227556740864786641153153664640981496055464978030479703448004446867202632502363921510418685251423334362179337355849494310363511237790279803811920669942978268004057061913672381244278981730724288458609454348604191447457918839879466841817713936962542860344505775727978289107394076459292164889821576146825956184754547571108553090567893107619305498418124706852479730991076536521058489152252009918182336771034524986724214756800516327597204235342334340728355931593543026403504881084851399968955123393714309630047779957094091943600763591271237042427483618460197574342792228699733413579824135890920270510742822389458615446252481503538961949182425847497593020156528449793568379806612425756157929622825676252536005671268285989741777326012456879939346984914951094973000564862347317469358327778959005233405620775678525649507954088667539662683237132187816683667902071967642964844605175912838340160518305143256743508164866877203370298391081801802940859139300972884494226081188021544952553490086790140852636589046207944744745899959775097323001003854884980257392448374832957738116137910650848729860350010524217969048416105322441925344075479809499847957018152071013166757737956146071488054950894791838039274306875601893022132726673121241817638362252057421354497421052826072168731581588495408272034523298726103676965701163331265017860361037356155913031626270994765838718733593391078300121334064352176471207708589325114437992642938541455266417216497910415016719178450642849364697216667032972393403427388900103362156416007469524843930557791218017489140632562223235294603519488415104066670678080917011041558587107485372028552467983856967472878100231478189144769488199228923962862346090106732504775353563314279996009790098913800011367630008907588204473762769161833810153774110319661577402877390697506555732250066086190029580460506262099367878760715566385976537122256776551863461917727515456408575830624817332124538097135858807894814415874193728201799757805774494582679081832072462974370813437294153778061878367095745540940297994735949471549066945216018235595865488999527198547129847817036781574144200446382135431405540601154749441575866345785810437194274961823400769649259596710949160083538319776989040007057182296291507136436308042279525320050303787813354837076430194976849015199194371367809072260692834265823071104742178870477839689807078983101564751777115264179509136602195994986038784021035394833719458621469721359839690624365178188757261467477732460501652731279448250122537424530940361203538622143190249671759042053618409753951852317797288926823150281970614038787568534272667481981337409249943895902810693598384658398653294867399658656411945913651223475499411340841316234559840751555141499986134704233735995512902296302954237052948704683501819070692171180484094900580793715732757568875665910344174228006006606530885596582986463059706563747111400447750861280354848477250356124631197132374133946235614356248153924388596418555323358597501955299002349524954260969436181247473115588509623547661689025533537610454190444654612534323657719354257996021833543476688595923931537016745890282493165177765800165598623452320909490420803415119249249581573905363868863116921267192316165757790387851896218808849130212635573104144505714289943177460878013865392306216123218661299485424060021988998573235024471208218887868874359432570307406511780560026954460076351537618494183218863247065662524697675215652666312892266301632004522470287190462780797727592594200980554296076569788790259170451710028567682334340929987469869682970980232258348563570355286455770920839235424738268618994472317058455564234243861071271937708072769263779746830978604192393915707760658074109660021754341318111535153057258874623002444502812650815840927773999536812110413730770109978535828182576753312772489585310754172571294813003319650761164839394343851843328514729069914127499483814642597314464753468462387406383985153771509524144291645344059966412643110248558410041605599399990781570535474315385103532099000646018504627674380532158570559367297789879108372159240032051592696760938960509725591133384661960226656561149459968983910975449969800066885802968772108793699132588117257442123680936154323347163360115149227999380436752934226796840515953661372495388392631038302406827529030091451397723430794038101354095327290201020582012330101957577372663196308252913073848480683665345188812649511201011208215606563124541003274362768880984624007342716241793236859358879346846346714032877761457428233918536391455532884926772073350635128524345904139575663864470490964150443201850481344140751485872511333978670129396506945652321432619032366827531036187354252660238454191977638446459374842320792932943220798006491935965767897176992195523381597296791269638704135012396455708911102409392082620746515905763956000218523174585246142331021409648925668176564799764192534241987001017056545157013416406578324827219201372697014123343769087189485874047479352018418068766305195965262527303321031594989637828319396659714803056322944876696528550872639173166504696077154344486948928810633599035589973950421355181182960398266135440026365017749445727488267095029765565172412951719388945338364829506908347533364848709137124060177880389041346877512442362734321762244925900355036885287566900100206076027457492443003220264247801378866894786356520040709901459320191023124869010751541229236827960779484182760402659047322314425071209452734383073836672017165302084686377714975594567916374858666640831489998582532107280502930204144429053925268779632344569358810930742389078010183381536144040851259277727133875809115357426083028262251483380858823053801103160769205063376823248404342485844869969272068114632652106763140136102194331479815260943247186751737002737037590932091730388918922431329029964521360801369666887669509481838049103323567377015887937524924079520779621837714569051525452231227839103071795572255788705216393984050597758755792472288564244195283679338076058769371361681739949087645236297172755485273023080649570686165962121518258608280490847813705594999591930037300158981113870459451322298762653917534844287643618194856580654960874492203422263234903831363594695770711839817135405416447149545377958255016258094257725860333007312471122982675133871615868723899192598695598995884487063451638623975853902433677125749182130370256553176613536219899792342958094396217561189249787499003140553403872269105863527611855239623510651731137323114837479618233681918920219696585203272219519292420721509765441984023182633806541593681173038142759941038398505800232035842342192202496144698213737203246850363590256904700662591324909084631915596277122510955119009816175997202330711315503059616160644486133309550199650171613807441178726801284080772718386282603602937654437323527660028741692949826024153391776141633408342564520231572222978926066368142136805299702019961542488978157578401461210994409991163855632496303993921686961470087562544328182204573921870483095557954836773752837922884497231973033963903134640529643517182323207805210441732520597896726811440614973206625814176266210536281922051189086237481778707677213184465151104541931773890540061036834692604341526102300327473308537197907371401824033875166690736442861690958885242396019902523420754148703234510436259879550616545988551551247070233448891110138580725032796727429135985015453184713007495837779205695769015880365568843909629935846405998246240188512668014682214553491626272919161069476452870651748630504555442980053197419588940190533726022474833522669497359483541823726794603228043236718309131676234512849842714240300715837480319026777919928226754046781040451965106666141088684526370178358137138965085582113437697379950289105199559253287430128145038851072771314477907854963013542898115967645121203759622677729366481430996657348239777025839932934009154544599812291843651662665337972004749779867458144347784453854546382147917249097762561606052432241847676971516062253442811788286074906029195960822951723061385907230737216789574908937983246876012184360342577553071971691646779113413891332702861491302041225621013131498846753048232679065367501558304919751347950676164338033931281457406967007956531153151696332516775658465474253968464913976021631698839629710402810443720509436019569279376324104546725029523206861034235000612101939917146832583924629724847936671728513663200572601739643972839116810777607017600717477444921455148762060924400386562437739335518163763567538744908649656328081300624568516730775741948120595567778846648098880648570607778731940975188683571548775386824728927453771535719827193335346979768198599412520362436210768870870495141762434290257964775285895310658186077954234693936423775345666853360633558525251113395486866662869753505613558578938634077994311072143354415782062536679468149897259858678935468533440167853950658722497913992885959610382913052548448465461185564690253507959743482160113300517540329109231859449490520646748213463190620473508185831942898629841303093074856134026598878500710859906757439931028417354086703489034222768309962957941359568531037340153363320439846185821230984365473958919444844502306779784121890013532403718744349179072553036669112954888161226173944747589666078932589371307583105760913714853231978775283998479266553936742804639965282058116165061163908247019928599828290343335267354932194444401987269838292872539720382281759923276193532392665111641226383934904626070353863035691016884060609869734784675769623354414227466644219308292971830581029862422108547541241484099208046853493021631817264178233390341638960307341120902264330273219981792420112484520762495709131201934423303747481616748433441420507339470370851937621824982623042934865280235833715675540033599793103464659288281513072226092035449336955529537142590454741396846414237063161513950308592052634168766129362214752524704191106584157535612928356192031141587689370558016708877958794960311398871065602198624358941422670662501859772294433107370865010408336475235024195163268995822987608975427901790209054787807562788615475028229799925689910434620349552914404647832195899155562965031217824110694676994686238438197464987740582070804015121392263659427006621156181962711229844483823723020615299499445418608929189036326652419567549429454160713804025622940128982629203167364406275780717084022283906430873057981928954244215606367780591549448079842690848657060392262561278086323696406915023468007088850463129353774711517777166749353808889316767622165737264903827678324243600280029264822419046851345827277793010278122575493837628748408784673034405997349369817707795079289503536338656856026456371078657493716563950488510472919621505888762855743402925858854268362519184078268750169819690258626926786236340723455393337218181881699781540487713117122731333092340920356664051528637163049738652141190817958029011785302070297340897612847160227384167097101755509190127651745039456409248450319067438690800595057369329093051133799260868501114011110856921448485161036463709791623866151266562777362998730001338700178412986083146280123117649957337746719145866640838523150496996229861634232246564911960574440195850290355305206612834929129628462985706101104565592892218956896748546291044820201282815218461223866700480142244274696174806915114922994408943794899502890526755772243218760648774141660513156695608535527697938610203503623121851640110832575707238375398981585231274678811772931259027905413417326530394966151784365056419711207173946164328174983196841629455183964322416922141543491242452824250469011588525268118501908891601273131041467418110546911623043197025049427401792626092897090757712206370243149094228191745385261673311119714484333018315353137371737715137785112941589073563892957340260016348478040815848639815695070730275714605105112067960201058454796997032045214069211177338116728809632712775750032677123429300089350883119605218506393340080236623410359069491201579817617703235765633978277291121010151042688348062449771612312158551480004583231163314008415578339768630794659526162328177048471596940089386525353524483426543460520996779157923905064313662292493906048038663440927351480020061296175489349181443073295431594089795976796987965603026348964238471323779716703743561281201595051959533553428695256960878028007076041943683354978241308553230922227118388458051468941031755617795843620184602666125758984239759695285392695489443461298179677458516672450832661828400825344752561716394011564627939606969130263712934431097152384271789312673329481218018269179786455016289826137128510838064126395703877811647840168841991255268652755571922259798590410525300399341429382082704793934753919061426188804856114077096555505770081713741783260460214442693504962688492248799745688903478618413136152841323479928089561522001275757590321149525112994547230185991856621181869510521723064266374892311047987572129966262151004749869289982667819689208343209215841056394823248974393576763019237632543048297001201214636703390181704849108154794948797650648463705143388808442710162789095001340373465958215732235295082017021429918896752169646805551315585423441119313589014611610309925421693496133579602745106982320407964611909974432932209688272480734202308978143831265313794102935151909092802996845775292019999826851820825032737352307327887418118568572962555482116797525457791259006034854840255810357375484397908240605498197079161961592489299479738749311055522959285125877901031908960960443235077064308154684194090875686363020539817310913105454763046421175962806408509813594418036249518021523039236186753725308517663806398741421449785849159003853538724572540031528262548479135999905381955824048910399502857786142376177555024275462000062547816565848851077470631094512289064199546360603786712423482402555002447977322782858818585894075534831284504661853323346441831042369378605829247362268491189458995218539181497374110880529043562327879010249973859966965980234560431474631638095889711365570680341775669632838684776343222535553592556042222965962251282849180145909635925954349952946702851099742776157846194058990415570940932102140988674192448232765663600084768357430225129315615263162110322182833025440098722551999312759775480561084471532611098284232078669993954667604795630735188900873043220379858142143309865495519228297632157353043637074128037732813651995134307047014922713327517028373488624374199493082688748361814613894627231179835752174456229238636817320671551445799265951011282848335562468008529065900059002008284640439710081229631246935279063221996640003472138119086122271301486451778648974516457085282320638285531569742997456412246981646410320794733500297958282412745505316673294006266103990357868110613790161987283746269098487201987645901674789259734578663750910226255327384498145068564418770760286966598539432724002788720502574922745118134426046793146262103325216741554176636800023979169927628949686320217536671693927265199434950622531405331099734086558320877525911944502086945689830065578304719201310800413282525398847829943557235851498143244067944526626656820197241382545097818566800083198267777682245196526095664501838458273247432563273146730938395490584750289950139999805047583576312340108091784673307089408427857914675857717672097337220694017506277110012107918379179194696922087519885531392946902369151849870104550912988985850407939939722765174921067232694320258025108981515023808956472288684199281105315632977010995262342576939983991242769252381778641841835578977874342315487259357304383816125183223666873030268510937129834062489879990102672674188003267484016858468510758798580812375960499626944745725317243990890655216551194468602863849725665312717372664738686460327482159924296711744380388767930535820439731268141892034562626046318480188936020539559949837755396127513071243409585622241090438004024882236423962544583572804400412662471557558152828709929871033676210731953173361338268410986002816996264775858218405446956284941896258615052074430284944002414021597320290283190374725887248203809019104249012841412295075287221746910614757853284218075365035824403774536113882565467395349037762568124628460714535961274984610186492873220616058790428979724068839348482937666036097724070620125933010971015486408428613055457608086008323704112673525445875087873712390540560308070505917082668357697888600997354858145871077413810898585519705026081524266067731593591484899575152137792177986760404949646086405182700582709141027643124571595060512672457744272700749622168655314365719944927672663180573308016958084083210122644467493002488241915409277993752843753686809255357760195516090673692645626226605376232486394890201789717253251305072512184320134262461631640919104742556593310085527038899089265366925347720440700879072181361437143152951048791054658693348956919144520317714749929006583560484763869132595628129194784415258968820293049042604283403554410594206782414242077464737335860176219095442945175293949908958141780556752580660134567777720158346498340830911092348720958063869172518967040001010693728483409798268136252828657545730863632494016028069937408410772750178610009403700649485628356364451695901818843101971799333031786567614868805658942150697769151698880673224526746874197709710642802145773200336323383718363381798108001805176641992530339414407439055771726783853210206758681212386381191471896971596815200711325880648734126975244837194154015059334604321200002909756082059126224897789554962101812100656503383432108560331940042424825049576369671535938330353482023419418079809523363999665975590295918578620318215704784849881419177717098764280513430580340692989232586778330363395108395296346250687741223263448713413507517361975301369360767551428778546387044970517200393844288080148444814561541415775885426834436385789681748266192172022113760505500725793208439962342434884102243114234686296427593038048958674371113231488968235701699923643929535854080327882849749596448064522127197594519381137342334960445762517278054730307048180827232710005965199037608181594316069488472577733971601483717732162541771321961903214402315850556027403876335642391164837586885308101245282458463831263466419434331257581227273767176008239613588786638909525653266841277963413595289010714251391821652228566084962200584596291425736631305892592641384286068601691334369518145251654304853330113655946510587567375887023626768571766715008862874033335448449083708033392697816555598959402019315992508373186582150069638529974520024440853988011249900440507140511247227989675253102725497569586975856630040573904228192796520949159302931957207101570089100929014059671268793554556375665210907808894867680026001869079276681021008169701138894748106780067752213386414604881848830929409940094799189601521147879685522084917432028957630763032281500826864134474493626841366905599772759817205371365503661877008175018123578659638764965967479694685906181437408644362774390121088060204363519010012248486245525317121388583570292436742852421398662490959472254818301653320324644300109836584047922685943051932426939379915351085267751621497946502276883270047252986462514183687987034597022756433893386248133064285668039900150308679814208842160860228136442948648971820213226657585417259842778172004984512596911904929999747806700248700504986771907237693480610667361189753614063222209171299181461442169226785798750204926961447690039729708235069369380285920642520776114014639601883128528626891847123091861244941551280199863515859397604219594002472248166053986119796389574871453829811280795409182826280243618193150195106613489618033942730076747121062330942459377022517964370054094474331572967926447198159011472305922336608209780230601936687920625404873315355897204593073726425865924597091450971597466833747019806282500020647740923867620471384771895526180226504631861930521349234897852423294004562605424202657635819640357530832738087163661580254679544586368294909571177367075914477210349552544347993849776620702378148855357222115238534374504894900960752649119197230880493192944367010790251035588560416494745786370562961343277802639546446799792865666504786115546160601322170770788417330785765053847370533111763942520927662705902783773183657874725344070864113381257672107078454240825118911855429921657211407722143462098485161880893065388305814233220773818460196167379004512087102651477743533075847335245310365215885070288929905640803027526426883759330310382426822324494480631609838627931608335152060268536709609441639465749919989353118909386694121226564951083213105071380852467131927367823133172358750102451330878300338102485067405007075895346158972821354634429275664716070338661168115192906372596711311966676858771484361895052676856638763206277379547368579339309541215275304663522731533556947720597148137567626526689694684008267469081791923050127265053021510534494582721800637366852705116205736757765998300910525799088133236732170115920949072300310977247013414676591142290971343575973365272918228192899738828934743014804197901568933685608916223982181380133584790266799135926019778532524209021609345038385489399103822107986384143959270501418199778975010257553949991457243231525881997867845400032974456067200073231240383676551013556187872131748919812998084292946356903994587204704868654604494648984339140995698896515078366355695846903924621624097002278622607677880815338336466353783214872865713719741616458905235457809712102832844373862979736274102138454933175525618077882038229496069627451180509029231813063297419600661759162366605041956558390624736502130578250458543085069618910142160907844212884642669195008663641773517492310140448973332871539900174278695601521782869586300260223073209293351710542471165133500165103740031487149683664867936133142341419433404264896297451464174873979390485174996987766945313270110090243908832641592773139664729356521272850547234699071924649700702418937398906915037555815437824703080401480938943226035194917584700592634610525952021537571011653384932372061110364696733992384599635138269109234663585976886148279330111668438341705037023498341122680254677006749068832226046992340207074113707287929563917627426637385280899248087899173300927954215456082428629278124534793964427352945103373071662794170865484071507792595497214719095832777288877749264241021259452289067864354706931704094700385837056702629030424017546234771549607436834991525374223946126720605933441291400836096262034410848507669679837408940108723050323394621536572932921699609962606802309785641827034654893072952000793033157846390944390123860592645628427322412693095375684467702062580581621364227873295410398014974441841159456866438037710042617920192389831493006826371544481005330536104926973892386357105463319799013782795078838969375408744370980423779793100426677148701727039273102000099833830585159005544128207362436945571700819392497747909541267768100667047311647200428626396539475368696091857316281327736386765437559285479818028570539544951125114718345711779285992363705079736426300414514253937522174195298474182099057287967147747211359249466980456731974970425237553237132978186413200438108847950583762529475645391446613294937231420258710096258579788519154094959102376117077913368582423010688217549039277741005662562090533015111471628046782815700509545335383987127895885531548858672184674751889885341487025406285412797096426176604959340738703908097336972061032766685080646199696027763750704488847619042607177980840747478288553183583194680819861994682284822575645295421306997888361037022340121997635607216817040311640483836779326312374083359918029714756341265998393787566115906216310304564938454594697766983058034173472654524343891097647199785143315162268987987680238743632941060469249283500826715294383418924351975520066912782480294978709394453018706345840468908094278463592052652542635220187231622668753357820639463659403685163856387084202496815574047070807991358423432044906336803501397356103992801847180653834157483029774579194879216752304519971666044320753775035098362324772030163019305752874109305594408076839714636471247804658825943028589815804845065215228258916887775130130750169414734123939847115497296400189260306980866429227819080739143844384869613462303017812739303791861411491061284420623261013671305648284020864060450958289934979598284297197110140780561250331640622435363191342138951611751447397144700957024581957535677002411976720256017491045882268945233191686622728812637285149127718335062469120040836195793972276010527774540480610622456932795582815194201756196040904129831674122366893435770851606255762677837556799963137441906329321779937770215414102926166567471752773246699661791741420137050185596125139930514202504218173439999011512446524459651869236518171826922028768436144468731185583138983777624948679682874703768570907214488160470284106561192620483196254566859004917790518472832247804877451171106350077135905801101232796970521625194236863761734477287401086133821896411004335083628278594862198501307492415411182623040484542558702748350690517561180340858185317055193311300174388639349856483554854147299048501641939415324502734294693902124140246831811160651537354474910035008173642600857185902699210437662146556840708110246045229156966170505604320775473297334978955834937947633436713967909329520944877201499607723243871454089598748046382689345744218609606005832663047297758289936964136049621243343770263697293316163996575084276514100020285678200853578965311198515677627956968383213722113874258107380283216498025181577603888276306260804005706383725547545105920157510088162958918977798569227501625539490268846699058380077150216613233188113613799252291890551342113038959897570571146387416689277368339291708238996304749556230582221946645821107826076525026008434206291174483055550376313241529777882677502297506793966259663357199874752090660211858004924624074681945214286483684526611685635810255768112892529589099910549220157080461185125832702415531809362411221260955924370736213925180594048429057735486628072217578396519634497524031003621512414991064705927250638059433336326927635263230414081553269293637196972307680142659836828562403102664039559049110805003694503828954285756731442723579611018520303609621694722146068236931029073158236653721695014958492199598966208710655960048589724930266291720753075141108424013819479964134307977816475908015650524577229578497915760615396994754555151812195637524730705605011901669495245018500188294450059917398692598899420445433175580592255357995526999254718068009714681729575170943570540887855237206795007734715423550064630239766456424956600989707191381611249794918343096267055806734260323785639689871562671247020478307819102674315656898505843716534637969691946027729020056337855531486160027820529501105423482533564323201066952756050496196891643818705627993235634907569554164044406376518417995767780398178553997851331469579036762026844463408012363625150855102795311946068043111498026722288090284492925811295643590447302884410401247672171421861663394413617291815769373477432764025193842067534445408023163069045291139738766163156973399985061222075500070105153989390876193755439480641175661951668085360862106724569707641943130852182986753054532645613995154739309416995065297699976960513976727855938742204794302764994545338200122330486024091926791620412705687581634423292814723851429625431474045268598627958362732108229591413592863600138667502578625525513412337367367953393444948919304158418657001168461936819975217124953570440941895252346676834034808683348461928166505500114133331461195420514083505778491559087681415148694885422939842655262692194703553815372280053588303149235005869528833905323964916845268934049500179656851009267309060808267492507889964753619688172700992167633128525880477685076177264948939449163292694675425192900921458623929728220669015996427178064135301439889243709420444621838232318079126680362713339808985109234086802582478054109203939753995728395629747660003798173394579390758731534381952121731833363228608117794179450646798893127054588791873389594643306618049854695361389165961280972257628862011791378435893367343119473194554630725300868652396248004459563900307138317025574243154432936071007074677391365498742265086722315921949452528873241657398453960960743962456698504710209332231132329148604979876660739264583422038074807089999373218358722066974604578477126484525142258458998912486318824986349223170184565369761758790352526005783311206106053543285689483517508983517678843511418132520069528019957262845210133521750723410823494691350491567122284522892579618687563865345034409873769636210284500600475732967605451355748311313494791146530498604253980277331208827355117490369944473196020901646319182258696695669544304989159958000850636525784767033279863152859825092971835531221710529462237550380932452343419622890822949436982518301867477085570814537131611472913824620946834482383269398197536089558442515579668658793848707771322497473234454920519885942289280471746771245227406925563237824632773632892190948154360581728035764137498904477870021216926851717993745077841402776759867792398119664888742646996638194516994934849171743181431211189513585949987394686050922759136892627982929206363762386867895174937828305176251799604000683326711768254427472997294240254728506596974176361751900172010385169119777869246062059936111028885361329163793668763944927835458920967270308538593593473468957422656312474724927880225039466786925475805422337832582521962567053560998471905013502534663483018993540197584634738967519220178322173307227554894492362002687148204091333701537157957079043156837704383525708452340985817635600290687342358253033322873292064551583933657073437999615051525566268518180189723871986676906818487792329830542133147593484052934898756234243764802239972876786866396201222003112219468972793568077406175983710814737680052145716791925401521903991170172219631145007051183204285672063977514412529723716356369875127363969023489339143481739867992447382349025028683839520902436154979773442033175205732200974874973633714848791111867680998191468914683131654603594306873376278323840720213331233672958354856859248835315200912927898168235881609811719911791458579511323759135831835502756972494821309164963816984907325787843324314109347653266248093573806147672155738756165071027757043042800209681998604980835383615399336986880547684261644678177808231420690661033221345080976332820517319212252003896480234160161256419694154443367394689108630401947117381426217616670910567001973668951765732253620583937618283335900159494402335172615260775753742740525105286229176234588062816817398383017315821691396614771386113075972364900573362643908538544648193892123724165936745116605390808403921047062859054014152218529326599942233391914229810376092204042936747281268190940706979056954837902991910452660544087348432915229231903823060259036446344461472636417688372638088069218447351627481407555225744596960419717487320749870915987467167323823842113592107183700453898568011162764400336624680388094267682128859102798053106305313715058335217116903991968230719594131577312649777871721736223388125103045428158322007324943468911342414945184651553969183556540505741455646029693256788656886022681217047233520910487547999219605820988533469259358110084454142653746363174204071352528463747127044137758484234123176446495714500515078616373041699497491870406371198099795335452202974060222354143992195470970047043508320364627769562373130685807922771949726203475500741759595540514111436232005822882500968544736544356338725026524404598975384512299847635257248382542800091818704502721907803069533639450890216273387707722345782577158569077609440070102265701969828532188598211083085468357871131933864153809031212196861219220486496454806045020864146016066344416992257497611711132743526867949464801456935353370974985157894642957082314137536312356092098202270997887193969015376175785426857962821632592431915589310139841763034108669611057423043029703343210556513547554701901115655338170898655220567736068677882147648980290156565471326425506923443034013227864522675388294326438825734908663509275156468769359276116519924313535311879529669596916845629983298067151025598624369742629997774891073942664037896468332358987079651666995418413185153338626742520430916891598937574190397063842255935721928204466505252747481730039807078191740944144805716375545743549135274663591706119892426638013125283717424514755116814860519620174409704387619040403842704269719519966210290506004531949534404169137758598999868432998390487040871434040737838360581326161851984019782633642374721526380790081891861379123790362587670431701938273833257941745379656602361099249803149900634513395041741021886101870137583861649780445069769595044454179044493869533229922832760876901027782618301990296829541010490023994178193875700789322044763816505738863327278574501607025049308866136091366800513290467558593189611174010339108349316896950931327151605069532817838700442068246591587904146972636260463094634321712934873574203092352407339697882009633265399664469883142522756554284580346692745542777529364951587016648286128082353260762057729932485527005641525251536203331978803664208674884661330818018281755823285462506941386420069926634493948831888502930435526198225478138293202580953878328354020621179206677195739575109308139507678000456853444517539219559820771320258141817930336220904396205548197664880636055050715475693092664747303058750161754948691495797236177242984694267680036799864720934208129402416810791955164970818348415404342852345320082652524800778728739750916348371612725201731084899151358199847288736475605587318759761311878070597182221076845176188338972987678100513763338913153197932525831691142554765360367612384718424691310287047551969013379504153125100281647758495217111512622409598707904783505247657882042262629874714429836735260629355225891780873681094651825550623655601744434791980425397879081736463973562510320570963106445186089679733903900416918073166331223209280558281872815432483758801224452523438411624999855670520811048660307248501379408701595846205826329491232811395981140705193571951657451304088575213729127821995076866315072523603206322414226330148127159907021206341931807199982702474580406875997803094392517168869762621999803107116187440130328132769360833500900146283159324788678119607841521738583811546406577880575476777525892910183607329649388865441055064507061291943943552350215411546106026256970649048265291067164549955880061933106620644147224953537707963113096718349576242663210144783321960947146349124128742375506594419396715472153230596795111526649879284267900334280099698363955536674675272385079947980239912830295095265360102829806850484292049415034971239686160976981650171979805659685118871957182368502998720608537568076118138063801105960738384573078772233120003701743139331706994766317346508913359448456778522476779618626698807003066654405500657880191366395490127626560681996141455707470107099779408837977795195211010082821270788155879183102189447418216168710443378960697805163489741232879541938917563043762372385436313675583713351110439616440657726355054770822264745938619349543382050414927882749047248107818444524421507076255632670850472579505478062004860058422824740235496926231704348010575646796772229600286379331989403252157800930095420550266208424487153346334357422772007915983940980534982838521002278831152213048650293998080960696957843014967881912994505285456553277675347338846254534064211755107077787529204170894147301527325198369761497342838166418096049549023220036211153574400847633249141543952177981956706954403902058684100301827252976341099725610950200726295822038610342505679082419145362538044353032918346730814516209458144283045686223183927902719034713846095012064854212327133736818428555468362811658854758959622267760377303956451652291865089592211482782777149608008690514799209203209509936200598536495011008810447963525788721592080382912622960553769385063486273489091878893042662977631850796259550449752874224431016405513515597225383282774845636906729838832347547862285455641212748832733259033367801847247259857999427888441570957410805945624486309698435140808865067633743420373518191507966114826659488444686916504139674135305063341961734765999320606754862517208094201210442935765189796894460195935685617987815458586203192709027482966644623836249945665958627057937322140649024192831721932298190678350022076166200755787828606725280857777557598678921016744307192681984399299663215410055214697881909329406558608165220905724932817630333944430488405583993437314473724570115548106623143605824142407553668806768889770130631405451387186946519211671880327412602591086888088362128568062700506678241972994987291855192878749939740735283492344356756907981691330253959861711616325782783149117881794884589513389416138598097925170071724397251464250043120216799617590272045196251854995833976157981192785002533116964229293715325929009997081137233566344029309981376591735478173970790150309316633383664045832297145964552053202407996746287218332613036074685654405901518204209266881737113634205798139996839717582895613194112557695320771408061761564123173818179811891354376472365234926846570220139800997342720752913396152330578695957802184778731007271907784200981202814128343933297658863383424454478142893851078118064967168900192757197634821494341457509499925903523789767391024853472556985407495808441093633186199400499993508614687501543772579074725453250816618949942736366612585212629246857593594285835855721569519286649923677324646271174152730982835670838092777335512577192442235014230454593512444810996822755620031028691320171747344294062896310820763321878024356194376933881123128880051704747074585366010128747527800690586393876109193937045619755623675373732741692908009490116767612965124402128496898328155053247409479228465653489107065405587835436629017216832186184321710871981140238284998228899293628018854756219644693458749659573562201557046810202441843807234128735355431191312545111689948470795045695187176529607973474282797893037116625806289545831602812548396206338769776850929905156092962191802352288511469389639406509578478032185342570028120245853543686493614414449291617972073759349914963085637340237537414969186024295917412402463240274079770414157328990087898737072713105819663301640356108473862980768611595899206257167167372327501667615933791650265659321027845957648895499330781143313092718047072352543080059905686482115489625672445776141570987385932099568193458203585442782363591606101065676980836235502553077418777488268335935432303624107689003204778928364114414421714143782849316508752053455636516487023954880403113275262714879110934798219438429627703502575637039248365156490451270238888144676670252810513332240941430740323039914897765269821321471833413683955346175117125300395511986688131235884135850664135117053244536472090349502368374797066234844046497795596163947296878641297969579211667756709162973768640824431282031022338479233908030055625997870205287827995074608098169203378367975815386850586734701816573502217826040447338272232084293946357853840446773658087496906904845656260681801067170533332361719230767316260963134082249928734283332057746630950653100110271181791072811653188350875447751568626435444281475616943541123272478496616107979114814654422803225943567113001006224609342334601942060616939120442809482649362259058807073832617318489564409140189056991711220294654143945806956906604791344384315399719146530333374269457153846456064340857579537598200316060299499162686227235228843728173219335724127126094019982089986804704929615486899759628912975376429069052892943659359569848891235284501253176844067427313648717515024421767388670387194491788704021678915311948935367872349852580828017139645082018727452362362521595471081975575919549537523743242537525414210353859848657156326920770598564964107123515012261667916059189391059941619080828507387078060415989678531058959968724236652704000639799382155095390500808561579280000809794097842846488040454013455568728999242572836902427786220827927192809890338993386813455811563051383623257414218813237827156992636264630668300385307004330001833043609636848733620648256748214796262237166410958300208745197206072492811219161254093548346346625564343934128079982462476059956778225495974663360230075945896567287160306780288942107050321551062455621793240968346117169265113455203846097534338204636870285184872308346687591948939109658395309473015526155363354892974162798299189889848817670866559130220395464314026488569387189433564463463788315958569465616858530704088486874735284331863324575522821768990283429061058305656343298002135422015889646994514841981236657825048041665105653078618889954094537379443779061679609737284560186115222740319840684809066200587750686812094362822114057066569077907110414683281277690339931946403980154657359807101549844445510687384338516146263100893968145488958736378008338559613787898862663026006673432184913573672114255855606946826596787040178088832736434789406379163822484595857007157466796631523489865186071177395212307623351696943996289295997632763787565713116645364194903623907470960561318503361413030050187138905230437596954083895985964511244021489517442242410432839203947382371646449832198627958696654750057523898078786184995224851154170292228033523897416342517894976974217684720490180614495670226725881934587673189734576728163649749592707207718729852114687209543678491296336957185565411993489105076540497990682376186988817956756637262137254764847753742392852747313276932421177690956244857408082084206999878203245993876063736894209396890665070431811447587485223833248515082030184715734087281367503520410555630062513062736668498849449396924982232213333307967293930690669614878608556302286439310230824459436361263771660451360682022032171731131079799819341038784777316161063358960861032573819971532808085876316283011156609325877906232673923592771028959075249142040786052948316224729728145397790759066040714528111743812417303818660141382973906890482101065526781845272312863456297022206009163970547358966258454297908596278353920086416690286101945856485346583529637615005092378960815196450291172551007192645222742559321300421233719986247499636858394970615341194734130903112259118561812992099993065527198515803790159682690011621649453930434676407966537025206641434804098367749101604821262734489667195310938473249148579545007392143024212580220869634814681350226419056452864544800756872455514468509053678412177634165685912162816971332359872036490445146450306390907180436047623390339640060039853296508071385958015138629748883895909005700147082202225876711693586503234214051587780881073082878491112636514165783552147835188613116760614621424074522814806639445612415383661527244343909680079537977056587773161987840322900874415269337343958617416495035762016728554674371657720771729082023184844189065046526509422760434555441619817469086352135239356899337398401822570154723700819153190553393498014597935035992663882247499915576838639311113802206750556899087190727279979398162415550764194810136522986631181649661049548090574006030941093193616199175171384433443404182284224677368171825555370616609298950491666148266716382398334945939656704516000314178739203698985977758031209119525993718681214343192613016168673741799464512954465178186943725204902160514836938932311855206423010441459662634789122916428505212433667417432656955252194285899521345782132674758846823884316998814546286311609924247674318347863029359846523940477476281042022646821737718644004360143024351359860495811276612216652946134476346686034223748597755058322334564474234423704507805598473541031194659397060498061712617273711392259050267333814359387490835334106625346708345441932107831655814241888976493898038946091708608762844129072544910309048061902098333350243783694200528968986009411448267965365249696997396620520260884702267075693308262788222250167259719513295626936527657286517330239884889185865492667888320397728704618312067531938882850598545282687441655407496734416730488972457073629640174252880333658806180064337878912462763871601249828189921485919394683769107765683941256586733073709504654249443824557809894492457790717000499126079515677368637187786107760356080364847464913895834068886581058119947274039008765229654671966233887614384989652845721419451287090260105194068271026808405486451719470298823882561913714750258445413906136253976143165296416323474980532900642659399896996179408009323023301717614315798307014578262937170730446863229889511887747064769160721347970387806937474766246199239626935966384022561375984436480673825388575990034073434821542814855844671157271948001060748851029641304287991416095912634738262056589208496257814792859877788578513310380918582091304066624979288722716856915186856063957914484943904915428102020614398221471918809807111429603392344785073345201696711491137643960980765342094696045898461119429920760795984987150302315138290105921406246047633629989906552068886109546006546526168182003834141609938667446343339355282656865674233240574221119610731928290094851810494732842164432300470280684938503799984049796296741240696584819293091004199547645472330180324219227542176431019894520077979107899311328489561847804053066409259781503610313602732275181086442507935999111228357298802546011439680314786082863071464377501153348897621015249111368294478447143914197770124836345091125865773578014442825547895098273590765097459157837723420951969592548331181914205088497818192872816535296457465660610786881309671426687394184455810751071234223942841043062051223330534155291963440686027072377414392081704341116045913141039045366721651365206879605936461655170277515540084081090180046563756823182064988177038260188198073775874571477190969694712485329151626193923577830546677542343916411470457277886460673891080201364453661148940667699454725433164872364253289094013451287853007623764103298479793831513375724428236621260922483487614690296606682212272636709130141088283859511418138809893843028759716822970514608261981845588103830510154698128000256693174512311253228202277874113913897231007674902904610296587230347962473860358364065464664391813036435267250303706924154421654667177059955653323253068969377342014204007628904134356636433859540305292292572446305609466732234155166409452384017314409903889993234197341668630217441734111686771113894354416232209986387578387415359509784328809850354047798944466855943296670282805742935298720940479975550183451520149587436828516398378780951793046067761362818084969273354571211319059492524892286168063799539834817862386404967529573941299518770546060992171625338040067252196708585806095652005996729173651000830780211873554670193464403193741495836620995593261058705617207945302228655300067826832580573514539516394244630588505937759559163875496250607516850873635270307704985875106691933767971150939022198667044344288145277786778446516744649049300056878312099797839529422594483504657710560237458821469080790562419879983024260085500991507711800101169838219688340692744227426361855470166328937896940840782218748853375497068098653101969915574332881629743657655312130888348982611441982736948351827965422661487287763097514129973578399817237191275445034662600211687873058625154172727298309078174755702732076909548461527739136364225794235832391559303356660264800832732250826647719999554984387023732816101611502354122309056257868235577701149210600372834395102214230425438550406550165595346339226461665088629471375825150938234509530524171588805050671208758577707385208259638806075962776646050732440513358363260964237009529802788251049245110387976296063546642442529067380635102951341929731938598449627342605417520594154352225247531848685474594392814759324083067408001027953983156563272365062083553651850110190296910054194136341682723387742456378244193221652529001657046839550761609027971250550576091747163737897056905319892311251358869811244676376861015417971681015104284623971767984736537817548339654605370517010816450555057487827356869146766945766564757155124029323256481769043820146733082775171939588957563696724285410908106653568527995736608499700197725106104944634180923020874452282609249211920841315009224150240627582427033169779734927864611011804254623032190337659283212028408799265121683912862269195524539577006874772853150993337415561732371875552007984419891098211226505762123604137374649778320240592066603473603386164187914955629671776273274103211736130760723276911890149113100850094667967647251782513510472022629735181340211054422428691637170411888784048669093904779942347634286031741563769226900872497544292051817062407684980123482879672737934339487150923044495764252974525814533070449161182562104809877042477012302650929548862149077173860141994009805878132608576353745325678168408026091874706534149651126180196548089108178507724448465975567460698891643115566391062081146777286647745339294090861129633483770506137026748972388411219545157238573791953676324437436288235917197259079312335708405941872655202778898825233306660160039959926456337157613744013107334092302930681675269533327394682692981224065917636911285280444965090785638457175536737239971071501788461805777105107835374528560725280710819988693270183607902657626450793201062059483476275607669698495970810011600881239263494313655065567334074203204334751986205053171856992443776697189768915847677785891020830662010854468143147737416602068305742480340589752893744938943814231561144611176917493785459049673886692358686838797306039133564270033129105654630242670897896474285532107858003736226973052983247961472681276907123821373490267092874005608625291528988010748269928578671566947539121748439238857897888094480831287316110989954899022423970197451504802180719399793022955623985166942653866972402938010914742289161341639752637563356111675499907374469517193447483928719181123839402539129292454558693749473709656229679723704230900794355593560112730510307766571609941307027061423653321964199871761764866535907425065305131992349413400930558725717876857482951991874519754341373558373147328612948637971930499668326307586234600734476016046687792189351376049859902692911749201898600145607334372190863135343612474249183098691496137446026553035382055058341870032139720945831216376915843086907133226720559696470311011249032381009269260085177598197049613197623497881170041209414074323141516836282843827593713574838283278357359631834231956671869429752850705264449179103386406965700910622282548064650081837873360728775254414720654076600944725685939764036464231307728542470881817113176767060015706876144012040148529142313545472715990544680979190841967376418312323326313043059531369276821892689194337718557665798227614828989099880812666880186555909668032440384284217153417830484989617467416196692932982366389964364051962970928606789053364152115082713098405657722519301824716726683418620095513814885955519117028431500018847500960518463769873904655722818178935934083998640585919474359021041241931630541047296330461220862696138926956976278417630804703661609783095444474373407783364804360146897125841192999792047145824640646500139235565926566090677337637372401030186279441316757193094332083940473052138901228141232682609364733613231184689445208392242810367109667060765524324739300620191121858878170807694052133901202937385352365165857361594199162144589240868943285167388976521365092186621061180672021315173382452277927291613911179562352989556910569324306346692682388551192838067576052015615946101172535509151641261651161351953554204411837570935546514623005645310872586762536136945473045971427922242604918920126085447707323515155199701301109868913395064794985631238638538759986505235491405620752053070537423188381633127467790301213785789294829149262809852310689976649035659076780771883653377444512207579237836566554695194985300180040891616557637246040654433115361925407179535791515389841578358965910691258811984495060182400994796366591770334655465500700253403656325646589463609441811770356098920894831958367043799740925866228246100364697179941925508205428859817014462484016451235699554865478155782245095409227962972201639125005404953886970990830727904826549420830626780533558876378720736838339479925913689994066744056965964870547848357436929562948634662411254933765420668444764958673433427411000598602837336761852722937595724957387340398393925461431965724617854029346468663218523664593569322242940025920189709428181355044093955306171336497875106181055753485454837513281587006754894873328206373548511738462219016491375313094315631304981795366886404548569344433438774273870331899526955783712760614877353056548459890428632917647111967145505243923299922021320933594047718272963375284897711746585256381093344174909326013667194385767120771606108711227210513063792269300392625812818220743037028857279392800809595550741305946543084926235176194286526540661114903960434006372113733372458006283953745090633376804977748302869244417019132009586645512894018239120387068289187721400706004593950705334921504011198583456620866744677081517601087187190521681459624051234859381068509510710291344024142544662138431208492928326942433556499963742895349748379626300201301294011773202833851080703305640837234300579614770837722128711375074724035370381081456418874206245036631543305867923949569195695193320586926843078072557353420441225914158391320293435112791746299196854819761761339944626781552615768444859855002748993775737197806041581286962825022910078618852409384849097674092208333839996429733428779417696586863759620977238660279685288927897675277801749137736764131237398602270730230794516275000662576590478342552052533089552233055912907608900496763643321211078990430975969316405527108932855578398211772215106892173266577531742669073892004458181400903335381827923568008279776971351587087927077978760917122457200930571430597293757631035443091166657094982964143870313847325450210040078013068218976178184966858930711709197994872568418517615033484141183833607319166163704493679877363660921608379239947080878647447327072185856534295327951270427256858172171430420136517466054523447648453867876577050740813220115844396801248697100101352795803133182824698854671028834776070236338193590309308178552621686380400012792276917766012631849690512717228809937507065371689524604725204736095676210291138815516947796739415807015710118890248909552727535966523379305850853985147014816254086056242133647642676276432226057817886701500795872356688089658276240746283831260676649254065183879653706945759173039990164611330805475878149998540617019503839803135395995260662229010341380587717451150465886958137052833664763555762647632464342132090278966684653869203786782244365629628871182936720280335036465295329792428412363670210989260544981044184069880930015151209746244870362135652234144035666663858885912638300239061050309863917224587395565119145333017144067423954934493648984494379652634004373164595941267031794748842182643548226734708376167989745766494341677731660823670710294603036579040008138354311207584326917323196979156964230662032951479957219181761591411301489071489280145849741541902837784214404295565660966327496559037042320809554861025071384912747986500238637600761005554272310556684855740296426762464530230488492346636576689670150830006100313444117829179047235678478134567949745277634105716462201805255154888937684118546043860320055642471353044898517532216510326450254015305786960613982022675159989865047187026531881661394151446549386858624631059501672177604780050181128211610094684215090417540152170791532020305710496262860747689933647893302607870849533663693883965252452854644482197409627016572570389391203699516760300900985778680442452193949098141144728705559867465674224697481404715055824364211867329479734154381543141060250579460363795163994572807594531736517172602592957209818707753779837819082495378614077131028362283013954413058026737949572718493812347061956725303002102388171068765072795553309142697102456042967187743826710610327122402658253256291884214049892957270310842488111271855986107477952672132459048605976306575913799851075026592958883500998449050102869973901065781765447127443674222527344077800727453007655596659597047217220858316463063905873414229480391855174021228003554113006292427194192678702886087719448420487203285532842048824369118360706778933887238382529363351044625392214595002401339188719663527400185545024092776764922789957562849669358759158409302380156829417318188865353391122289308288067485143031352420992666638026828295223740804037642372604349236750001469293277956543683945222422095873710263316301986306565752292348495091946348341033154839139748342495998502967283139494436650389989533660679130455857589472641398149783015998913694709315420065603765115977848239710192625793194916709066312166759414293868224213227864686779954714961034622978357522623666777267556256717194161049683067899793036787809990199704305960565412898129714621479333091359304158547177898512478399360328712776121025246246848510861255082507445303496192560117300243294875458886721618917746433289519810058313217585334442050731768315682726552864446905354027031048366746905680278607519162051671630143540658909839978154743988181232297944962586910606210058175618123817656041295125443081686035590460763689875395563399153300118127288817212802533814677744874927233052595169405752724504088815551733136262254725826710476339142128405055416332179557870249561141041510488000398696776714909675229486952137370348298107110608319337891297928465215643942936787266244710101815874904378931421165714075438724768137066903033362694064484629598962193345675794598421975600830970378802135011184159734419293267444717069894982838614507633808830707605155097921934401225430301989882806457772992399006575247089685681270163967017634581315146676302619144716028402685200276971912725872343174854715529150604063021993867150979981386591143253769718362165364189030012546930493209990345281599418371908708037823636415119375686455038837783341100636643458021718402330667205380403969329258134976093706804557805610965907755772596913750773528184433991008073239216478540533004236040518817366414271384304170707005309461468108851284056115467906451029853723304951390213752458329962430630354890043189261443748752095908001351388796683225675019423122435971724394979141054719730937042276743923174595386109224123440022074697762383344828817564121342474521646003633571641959687399369895357304383778958487227965253699662854919549425074014425132166607152175326128539140317393125977001534703529894194276435380924164494397312713426750088926567853329135386769807619547341553915036000648871413446884877335778412821037017815870826312329750190159840951009524579746949394856337978150811882199417330447386387518047396607102254870157848944819958407438826101472505426549630855907154534667314042162032292175915956021188330021087210310658734725999245461365023372250058650686842129605063749861296263803104534889060635590377355589594459684934194787232894249707917273947362875471244934692323255796099854450861415352735502576291630892920452178102272760209452686240167653075324097590781145526293059693784181362062419365176290688187178301149157671287153753092559174386200719674642896657452248718001712838816744473878615876067001692843324114514005930570460561844658563295293972729337486017142649504215467043138963339087499884499500617489879163169334891308636828366589921937472432309052738620563144344407691414920387966984129132364406982681797480878632127251498098908836419658801136909232708013588168057044775174709587643066220578488313375506209131652908912619288049241078042313949545158734972382273811774147535824467203186267464290635463225325941163509974724627435014220702814316334816177253842790725713551809966046293323202569912921962330034666745246623287941269389648910432490770778858253668515544225509885189574461104898065919742879167220980283098712768456978573646472362320761825842963198936687766674485317633750248143150868705253583676637207379451433353939329652631271213016855962873677162451532536833546577964850180953852671441199462658988916818731169541360762792812832537919976832713505919260476976926223817501930928727642629131954491694615895116081688416459604984003215084603400436789967073659951293822760356155074876681260921547631050097081283928787977786421726986324610417684416955270775934973632791565223332366621393348756634086932644055676214483784663869526144539848363190185365302327501879279612688373776196252709584656298437887851150902839287973097303634075600973733554711575462152347367726563438536493146378083024042220595277269641719206899715825132696479449507848952257922553713560878765898018715771496264427131486668174998446098440120586773981015802398264144144487042464589286672208295495320554625444511629760244746031573296372354675506595696428864583923201760197343105840051845602746827388065787624559156684849207561290218780541244238346004892983082924896305773375397408896779876674616667566710472341122941064093044883972929041689589947127567493838945171536872485509682942259288863031182475259158413132350271992736337197102651929741459906502468757406016259882571638365321731340964279722546977691290420564120776725987644482530073267373502984103958741371790507067787792908390673982730126619484833710089457362667573364994012566646556950226115254616261510501397751707689129080678968956557931881543781138812397460722960220770210036567477937557696000523011839985009063099300204453454251205254158535358811499846212948074366613010792284771463688379962343939909862633085540917277483830086187038849346903900872908955556471990909019238437798005646745686823158242793159133856193571035372852075355989981058482595160938962305653553533354377704546617783926094389610577050784634316505927701262447851494579864350302449945585849965162996450553768067849905241452582095885967864796274773104266060748307248574842094741258532880458708497367035228294037506308699765700407946135301368663236325784684123481613958049049331281763658916509147234755634386923802156045716701231481841288823805411429831028116714644990336915477811520168775201129669431546833169346131460111635445174265932940432498612830028487236524267283223548175253811969918218124912591239635260188325682722433133109784700685436863684509134917167069971779684485414388717361097765118997554197535670790688736097746071350309047477508064185904201315364424918314874301205565255687088941839476092485005165496092912149549081175965694385198235079470018325277237069172315904826412970071832656321620413461856728175082774861879415834206293703562045633833091461336029267806883293650202219234568299072256967835183233302244098155152148557163459090912083172696378445279067321271335866671938380139979653132683218215141014633704909321830510023008998249258287316002771513071346272898647132019708729028968343478031201552177756952623034330322914652992689825496984476695119409340159858033256685064447727372424803314416802322972606958115823446980800646450765861038795936717889658142447007383225848222107809732685985014078429547029065175780809047729164691627274505304061560639966219493631398504783622545873836826733981560016247731421951866151744211388437737024074033510587257788564890065360612257366498405508562664838281995372256933023382542132979942473811046604831372567873251638719845429022099775112376239482487826846864699415794769912407240588238228862439761257939592110425535621720337449563392329318931659180635178110018263601928972606611972620163885897570631328554583341791409825055927344420559894686367588914091908637249976125699087470890034088963082148739279348710134455730628915405736246407951720738168713958118780043793141463369584995146240771187120631025279883823351527267155755958937108717652932516357168130891955127868929584748022959405426735110386970431567384036272529307783205478089901241307712542425659076057062952768685550453087469310879049025870044408525147699035595692497181647353123434762284083980255198137146994185006710470561376753790319102326307549072756714983160542842143244015969366610789159399829887243397539917772641201550114369155997442674673432702743143574573226608821315868649275230649440817249207060748639703667388618089475675798468148988893417690373598937210477686497586601551275608588269970654550554255839117030919659954877437024040156720849901038379899519757901191415267474393821500145956235506039514158573414349235799940892436150888842888675737683151760165507043698197439166477574176923892519841292325857876329087033799187459424980451140646047245430068811619334940130086359144127259401151879160345560986016497457266641855433608208574402196315130469695831847239910423359751482558003228842179202717423824398064075079507024479217954694264615728148824132477145946575629659989773243173914707680570532760293361844579095922920677388987187886446290294621974493503222872343570613967186261816709380398633655088199816782122549518715899724832018716244096860634345697850333301752422341236955648116255233517229073119760366005642263018604966091281917026015024015817012309617584852691976238863912132944147921660624443171210690439095973880743486154335386475627781832402274777510392713573589537928608072756397362834593276057705401014920788733436875955832424582147577596290201198703448556653349619643519109420487695678108716688133130062747285468106674815835734640511438518470748334561585440973777353014780391479361431789231002769559880127039182051389045001509141924206590458230699701846454916684106861150509143519041514880541720898944434529655939372464638621677856707838101597449591765260336228620677377979151383365062435260449274722454390227018477961630209028422474896987591547606821136311548159482560457469390882847537532531652067636358019167598460269784222936424500385750164934061404737998104405392931580788412276536975347305880026561188901843483735862682095801816616292133341905565137662922371794984198848183675321158791854604375456432767322344376324426946235326125169113266400935337649882745465796909051921572501436001239925160230968214978337678594864311609984426071617991875886387477931648202703959677089163080509608167048830572128598294965865559070080628499017874791849318289965780929016615836683149752501133752056422636329763228476536043060319856538984419365636878979673817463023531845214096781017198287914107562510825701962027762316911493610305545223501466195658127468783305482523490410316908575339678246927363446790675920616949962186281675364325754252290220655050553937867146098351173409548063969390895672166359640225829080295797225451346536515753444604046817075457265881535532013869482299995854465496199653739984606151275805247596025487316780388382783589880688971356287664781947672428652232511117735538891309763798230588425528978095115439661187950845580671017530265752761666526645663278154838275363414380857085754608732146602820323617846145468246425236165421056622660251308634413121505679261882965329073595232143700009643925144724935892360782707882810257540214660203162266489213759982680434976599044410215074836231924682233634054417065184107288409932929230452220094105459231864556550366203024167508794098176710575218388873157883795319546598085284663122124559699456907126451971463303864373326126471230623039595197372881238621994031432890180983931952878911580285457972161263479740716625126553128193911561026639072844180018746656667678207076490258899919982781233244798888456876831287579670676591302097209047581442688610727820020293511480765068078235239518615255870107778913962833612899321036512878635790941337203826848922570954864301436809944464429252789278314428641830515712875013341723343664485705534596157495156655454811433382866027776093113980168467920797470465445484721544394528965670455512040455800614603899114135979473523226849248950458097936730032285886620901362000343789697603597391729724723862254516081922784255231748205186431524338793478778634507187352037541569858871060290280393770135403923531279896930724671331812988673275296483376357210773675016929462835514474229740218562564291096790264301938096579431039148452728098773750330504173787501557618595305490980942155209277452656567226725916614594806099749788932832745770884954073803264613534902077758628151907838043062402254148798035192297456634294419281601746973031278874846354420816234910765233093449754484748807242391058757671649004228866526831647512605578582659120933374018119167500126907862713210433303242746837786841421265592412531664089968571021161657943057683622402060453514542101583738400716721938850003923266423124360391650968799983272025446912554438856117287471495467167326833752553102799854188173865602127930716282607650355959753360781985416615651888860179217946930279386463105495096495185046134968435323012364694581317694519756426549082897486750922990414533121718604941370520433292829198350990989280227106914987072523567034315747461231184796994678778799855585301884636107248256819183266609975496403837355347643402544527550261892832199873324927777313262612448316228637788463091554340730631841893974253735248654899624403624451925398045719424980955927661334472057451621653598486912879233387930346375930940532064389898533835243260356682425954258341053804024870904307931969611411368003575893421040390782088647343620855199018164180756551663068006641717458706722824260246058619629145666843567439186007582111844102923104063524679023983522556598831306902391704632059022785553447913141279541402791624052405088095748104579102794918637812589581194468879207049318683724690358811298246616202237701749287315520174233503471019187947740962947366107407955532470632230558879716711215868518450886388003890891287810548138429540457463750147201522383852653312063180376231917604290332779073570388408463179866625882522210868057535170799882517806555165628296462974287584839488829337169085728882054636555280527458155142245942544476869835895902445747627443438320846646669506894917730774961135683050828771118063083898859152796476622734530495446179551177645561054063373403902874209337349205413166016782890717368912478779986908633416068267640075802076110065066327960901330484238868670292250130374509007479327639001173447458885070396693891209294943125376199788091303868630431621510562294983497995511357180476007763216359929400681909298781828837163595821709514178860308752030817443043571234013519112862430839276897700753383886406790347147808747724091463515801320880779012912532735558959285458273484676506683844585049732732472467973310655249912145447011040722026783860724065750382570382634461786715081865045284702555840096022121623260872190005605045432797202791028591196259401965652546722041165374427191317876788860488786712012055076462681786880820640375521633794173789122622021713089788218415090975328896937669192795691117035330776322412655428393204312589644270052635601777095184885641157321024060124138515709736757830277400899100730376197981815998077944358977780326851368443818048600451531685810763264624662315831637188522456200223605306961792288521018452192580966031173428591210808089247231610475770606204875992617792004039131661130649398956850854833735110206725807875726297205061088369506190708901334659339351519338859131070360571092361528437945454939812602372942793016552121066878939536918216842394422733328730131167390482261870627096943658208110264733832416282949911670521164190924603447093629107308306896060122146794691785262413107923132836915182903596351600801186952823819133317551713101703819901078776626220166607398995628507330703808503605259874718376845271570981417844660068579911599741613006332911444568231394192211995315287080203847760812500463843969176964167259289280883108080977018630441103989262580416453313060461183492342521001256546825065102312852176634248481654190316749596609243064702108260534349309592210307932869474774461281156896114936442841761241406917387123901074957682261508090056988516139703398595898504327398145884731877522843841421739404271045937560176138528353910610664107993299489128213661094198010641587914772256540804695674147504521031069507731702459799783750156597600705592006337152602588728611931830085995689968914537423936633749539816015717328767370035317277573751889800037669069473755217418783839807752326125311835003385801157574294374454049391995387423588150746359069918183960171857134703638638775217163388899521761395977029585805944312386781505963084091877166407410697127755241106413415645240670396164669929006955116759849285574364814975688326486318266669487832364225469115590337984125970731295068749776157225776249578348187850628754257015882426691568173356096121085396730261662658657767739761501097401027590432010879837835675753920650649131936145338401502526815870028761510057734292710578976899816146717835615838677330120471009097471373829789035541080252093514656725057421370246829885184853892786288590619583551712071622899267202970473839412685909070136223222658877096312045775697700030284299578835524248990727722559323108819784739120284149167592081526362408360937594811141279096405085318463647244011618985630414349643072978119751400694893011153820778574434276885201454762641723184777949621543284075302493147726770425561780937965400539007857920556858618001911853054027811108681300240223236862859118602114990015985233036751547601854817460060436772374498353854326471931814070954191264041987983406293756153255052460778050040583612120396956931347717202887340900750530007164427398239463292852674116893377853154877364023002715422423059358431375844415907493963643992501226141599727968983985582188041758212275435817619361144993450829417877677302220793567172602845508144671817473315847153448998736170063859832012174344348937553165712547625595680930708964886445711250414668871416978358067795161072553815881061859407344130571730930809376384167640222546265953324703806314265984112781906107608801986102205047067087814596356064694473893652720870489548493072767231389543486339994919928476859817432890157698118855645320294818699103322757587843521429155173695011837487480177675408910612186137192484634610149496504343168590599515056417647861953877263443708724350494664111549909308036291281538885585877199805388425747311780616596682513396477088178772767225211945055593428811114169565569839085438896269150152121170490716788463451476363266305134351594354454669050121645200274751735887235743156535074718449784191372819688217749673745651396885612055574074464957167881064423540421561108478589703804704155634080730028836264758204216490672373825206136355726028320652066138797095949665261056857361540026613648512000499863660085451269227722214592445032814784393766421822211538296816634289785862355983284752602522111055938789313625484592462958310659928590304701181175447751064736180095859217577233408652971579714342659570145824569940328309997018128905758555698640680569316268699247937712993469806392937072440084318834952227570112378643371239601564306246855005256306880947921774152163140354814922426212834579816570868547394602402743305717901884255731309974528133859562112171446586138927474689573717097336656238922292760548389753348039601576854025781777933290971697757568869554743078372486151353766399712201776301959569699749712446143423501207935087643609916274329827696974180930321904622554334115848607403496485658776353124124909196931608872102298657231122885922739197293347738299315685387349635956018868636840646490344213055973404754772056925335780312518379475312506699239755340801155793055472199077650297387180885040051778755296930272143577585642636693343961364174822236468936714239093376849230596549790484148158140029723773638708739315092105389223163212125145568180939464810875277147514796925568160237492511238834821178313479442670662212951065547515821139515999386001772928476989742714475767289791382768837078596197838150504800413495696996654044873438871239989039600401680335295184486164838718953115781140902800183838000282426746867512574047280311668604070873227677642839281390628749629333998605874663952911740745120097015938911891008087854770940374274165188027786776491718805362993013030701191711205661958167613147696360528977389258608097245603948028250015720390274012843754991048650407219273349714474824005826399927807865445503524212378118002403040711171358774196559728909837719702789391720797362894450749554729191237083608240717349692523381336762566207239608286358274524308221725305970934673799282267776452384019362130416691679223051395826072926081654006923572307548179555378856257690879454944286596384041994350714916048140745878834672476912927486403702305139873188294740292703530818166924923354469193251834872612850397986043737552900645516179534977700429878057904206170648168270033393804675804673857677435374374601282114328831414449892621661618052692738911705364541540439809224997779033242307148483857606166548230832599066305364991681181919266988355246927471595568278956032156875072636027975172586171191966732860627939240796990607380961632211797441856991358726111561630236361905801829814846172067324604538854635070769194246249587893330965245540077948821959870867716311542386542353637127751085616519125710495382517751987233288727520738554586336954408016009314359532610153939971081864772830593874638780501909771649021339076532577554780198398499668894975861326977433391483674026562738119626668065393158465711438680764113942519778517894992553405363346009098042676363612009077629966996009202347577689945237196066869512172193849396991325945898547845654201554967297647018672602656276541472875122801439504108047904158108219739118375360082273413803822807417918522430801041316295996985336042166912980376852591736123081861203056853129876476409679453898212020246047203681939986398464474386010957246333093236975163070190233467408976772878662238280710947958105498374849268420510789746146404199478744351147211776097617338416355590954040818248921721427606388818730933260786483622707172117891411538707966320754829405204092801244835922824770209221427334327800096108258892355734455242743099404378926731627706469433968484898129743790992880784168176016843724724213025797987275304441857915965014480061354394167857746813904622918043950503175028362791276062600799132791130080578196086500101002795945536041532591349408606136103786177389683604040432525587739393674619383944745170185865080409299351925089899389533135319312341470118860148847335937021693072060719903584863943314256342929494512012061800676657267216519760542197218039333418466514589346303537641818619446722385398276522493566370000665149036425650070834838576475919272953154237079170698904202336424393957705557617421311789634343989804664957657278433534631751971950175793972155484026179095610667122409240227710934974151627514856640434323907568215657689021461302410255367976710681973525599601207519997216160606802294728259869490672301309084318841819788592966783066734887206679764417546703517445699511049630638728925228530929185508786067393917510041147279795926637781739624986164010340666377618083546064718378068802200495346931785733608206496154244082350012962622924088731398126274510670642281732478086606182497157805625609125803674889862708428549114156652696278391603150474834227586444045312857701682341944663710596549773125403704458335017335137363726659718607634390390147529640914204262905227931151517532128853928911932728703438440747405084934179094713790541716026423627938650607249573424837295286497313919661601277612506618486666314506566482159062214314020176456494723359301029353409117481657330982055310780852416584663894412453389887522258033133348864384708380532738713013005526168363655357806479934560654689870166321286106677889131384201264061580356074080461554299332807286323639955151585859011994755854434349910732078271355635190310981613816243981025808849537145783253094124099139533513085199118728899501207453548778324380396093315760827265273607982032275195152292873303147428277068290336519375224338575241940861633069856195652393502468629891070862880530067117059513052395811571480266441016231598485561513801155304724023076065616086393613692830767463742066352585024853926223857860924674161200778912275318579525179969319493298824017045690091612963447956050759431756317254234216352053781825047125452106384925157336929723665567044223566538540244701805193769211115600804976865996094631350261149552768893773190486583628367001171108053868291264975286510050559778909663368990394194601559571014587393271243907260518189382376681819944505011268153231549908385764312397374068879302449532881841968065911000673855415981346485018589353648225649007979081752458642580037415080898342428315562685875582093784026026130040294907509918084525454340794306926615973412663662377342970003311910644857639241838342391719296748390793552841436651037829225394572298226520995109184881981747864195897041907354390858687598100034193499214198459002034410335747608442369531144179904675927590002957758058886902325446743322959169104720411424873583576583424142631703615341067231122068904369731159611231953817777968614853744768937776037623261264448944875618300270292928209338640077292850419357506754299152734691365986684085418399078967276420141847851967165324070124284945482553204118815152778424364275734863946523891799170050557520601480883116003384505285868510486602025584198852967671641752897368777854296835544735414638191535614347763778102050013055471385285740378713029081084983586641941050066616634400275887138508494603565407049100472659426403042468428947507135345058261313111501744101303036236644362723276638507315044205602623738915786779379843679650623286666924314340373155960033003059161537415465261187895675618082193341859730744828594224730476576947747489387023019786739512407881590577078599648288732582141661323155333486487986975088271814411118499286841164056683649747550491335335193091945244762741030174474411574524883152209741478779768518319500947298087672113062950793110726204512109828328972924034698658475433703344110640292356214517115816123557081491254631518231349598279976277286664582312843121169913820361723281620495791485542732089414076295781518216880793880573402026954094735559596951223297402028855932293408295229716350204214535163544349152696788532636410881873725197159202269737058045522822594336726861090067348716717695922127905946041570278106146937667804797465145024755810464730907222580584952143776383540191427361645192322352337180447944932223227884458008608105234687803020804416411721155983857118592766363306600289314915974350531369178313194892383396117890794197942424809908881849109380070277299246153048677370106292053350738124535240316788109411869649566127522423171896694953125925084610798876392212202725346624217454161642335515535928867651128451911831970313899736919214597569924107194533543545253997589183131580086980873114651835162563414324199346720556535005205143088166004930224015758122576854288236737246422423849338864319109134775251593113035359343666370191284515369707315648782864146063220987318331956096595091592804999442006976498887848992330241424855768592610083516477733578094635320365889342117473950626442885055449323334559911141437553295118967659269757580684890884873463808034898472158067836118959895889844357306859639597556783674730989665651925295350641949667110964469391164059706412295863339480342374679838424075325932895096047431633905196241966589250672706320566449995711803583021366035459974560669140865171087322612099569266020567215558616634814766904867328118892778753172391350344091938652084592635541626263097667412969596789048536673772871925959928762257491211102195096120269839465502783522213555234909311318407395380203061603242013020336805194215409483531611572467808255743451929018350828808812035340111442662806804291459387895693800514547150476473708867883092817033305329292097128708547242744076733124013668291153440918241152926972148511548979021506916960585075244990972408891065857858093041824470488358322011634059989631543245151824509260611333923425834271512996343325512189069797163655466833877401769062518478671748034429877273467993439091485426578845597325866164971042855168005968736395133387932265544671813959740363594714574340265578275989326403761120576512966263757378492036728992368188820675789934382163348591764931887772493881653355694303362568730388851872642452508699543063201539969813250065862509884156535791081508145436995995541377794449294167874477950270309351699982689509828832572354769602408009732019922988608990062620399877058251473915836832948002564377591640969349634913846469680374139535216463168573187554888943681497326629568786373981278648813455281111611953608535164797760083954812348304172163282005114940817836098619912010670497923201295101445244970712968219530975702986710703483067890388253087558658191797923637736847823788261590311537192189813433723516091791218654641616701047033358135770239106242959870193183376971402168891130939309639540147517985427033803752253513618974643185879716673252535081472443756217341931676400120307909689824791139985269754958239145554000999988139011946660322423082982560862011001985557705837751411874232405112567372760397373138047699063365225049106777790737001736361172753797736267341400789963471838305493451535299367820776281002636055826386638236520085587669930621296442440411372332552901287395875553288817552027475989496650121810066390462450275764276325927401890070192275240992202861098314720058435185279638744543835920167294204285366266691275389300144010512747124335537971472203565091479660356651624094629236523116829147457213168759260938061037847565582444774000164913041387547374288613153421410832602402125379852526629730560429974259383031390601842246014060695003550247147089047017553028459099820550972490953026927132799935626394491593184993507682810646235853023418815561767766409193061004402771688323949083323439891511871162916017551255869810383068434220862104614837022595636707307456595555569949083660259073478948901687278132925854316563200429309497958923655539807733082209768376357792051792248490262938611403117075291246821509962733710514386556920661841404567236255386306692079275332938423698193911764049976259606747408389314277800474841172261920426531574309763446861999873525150906390197862488281901910674336155291634567246176699958070941410442185142922804777775396355911372068101433432072813907103521427942027334303256986179339231373572591637484225023326218979283358487156338096580320067401223991484620726975166105916766950395135522184366898379617308155631729065480238905277870005472012438274549349858255645517346088708109965424477560333582822357437737716855292762194488289388533551570299691798213429139381982472928146123550667471424364114890808914613951853374381205027409732429819547951598116947844529389501631227839638386312206913019892879693303518707094839358024638402317006384070962847937115595402035973263549744505636853752941468893509695841673919059258562422827509735632443896436718961426450225018756476953304003713588393134466739879446875144434441980037934941182641581328212749632130370481202858944653253832081569282533356043150019561930166453859383386514659480951298087147079994999436435845768450562524282654767302375364626864556244814727969586981116570287317295969656559636764490807171342785699481925621335020402382384253855346504819640702976936750760025264025450587148389866482008578722974493978218632847508191057510907924866484417388656716133389505027747385096470984123235513457674513279691626092416612847834649921858643390743482080419612466304198325359724252225863345292407045472436510900151562459246568744846466249450369767692823926784563321290501182148832936675581803380235015048936959042659867349650274093681160444006881987877580431875680431373250302051913343362326209763513836362070799770626393316047040399207789282210702526248948405457049185560727210737089198710451430866919858560456071599535411975980194398369656261509618401377485194597538648047384003542186797937895723261790365325659988379478892584562473156116410123547653342750845733904583824322100895762781818759051976942593405839214722984400319283404986452917760178083731396123081811869756009870138443314070050773515746105050803768933635753958746895800336052031233571799965233048096724781309472517475804003893962555439130886543946481685862985213474067690823550041379171660750010160001776972505827415057112452681070975686167291484753191577191354719865703074031789692721357222949812773931560863954304416371219346931863538057796493498322798704138395903962185825408819271144884158546518623433106023343820284447302208017598564438215101190278984809197048061698590495450478990882313279292416227868420304224854397776918853465878474828290652176604532968404513533712502887217664100440755797620358679457058721015062336950650366256173661858720365027085220952310674874452882786287741330797782912248941624436938132832509411536371324469006403304043808160445301679846964757757059813007740892941819779397744481500353583873322303210299333833739893294089544457667180878845582341943311182508599513598716779558725902112275496594235297465406456039577528078313204222936082430132593917447414051084254983338410508054292980775110920984650516629296954327776799730114363968636665725002352128397040205970312742618744924006425088046961627730814275559329583450231726543761405594131988148138115766952985706994988308786564694365730553857521737784679174796625226452211017706721687536275952563725105009962309856913924766547409823472728329581490971502752125121610786253796449512101302914456819850189245586051200640154737092910163243809175829742662903870538727403547108921759700211620752307146725207684694475527831513706889204036225145280264096786629621060319694228485685460279358121345531663192033265974024545788885573877095639518298524911288266349095182266900413845033204587168212067279872549893341107507247910452459884651863636891407605173638290734725044373915589882996496781431263145280821008421695072900446066511339762708271542894096973561072085773616384117447911412142759989630561163569595497751277262415510656102678404333163023927000909516052873323823080022211456360961007332149042754668469550413183603584490359196987393118607863855754742808483622487572931206309803274855439755839525448486977405965737688300167839070500828493659872065355838957520863232117460125751394653298226981349844359958141758959035188272071854881874786275879343497472067371387850320865677249345720000651715777439842369137850007601930488552349694999098202225076947841912728696718816764375398490016184987471234537669206938621520157037455730894582316021713314736188178669918121592884075492145950342797393750456564037003703299533710115995453855910366970808233193119308420855693769489709997214391116589500824592779495193973516804407380536822886332837902825998753053906456780859896326562724850982173015885282925927217639369018087694772235342734624168175398741701276918018751187258424006462482083711038564095812186357795601143779500804001362348207660689307937283908197930592012192470785958984845137757400101303959340417638371645753123736745963895722843373844758516169756417478892457402292784050175462690251808918186288530917690922704668245952644211154346021370940591991944877501174326990748292899060817963220800308540792862842417606309957806052811040907156631218929075436473657601830666793077881456327924870328725791597200690841440272969815485621446691555307247227916543702213672584296633801404282349294821733503685704753167124736558026352397743785781320074565109119160405933496399324251384156129129168001510446082310231564556968274006861786589395965303681903229629884476299188577202860785176928837754161338132379302893267580742854582351179842296842503498583293652972799064382632758744799535505332352274066297371587920557756543236177568298562503293927951334004609322602718402836394699925157238427314828606185568107987355670087280548506201418232856174036414206426836997424440875310249542724877040756941735040646190757351300427023230383644869015430362100520653346346294477468963917998112069614305181882620292863078809528653783706773312092474332306833861565155204333857190294032224283817817407725592411984403605265626014652926784620405578696517281443519893653013921534300927493457587821621840106065915520938960507924145227324480251948078389568218516869920073300277048566251305024748823358170865590379734953983780748000823046819715471674091426134338142835568818817824625599226400783570433388764015892505682517804535295934224523508781215447993154481977067651261133263544063826318828933249197602268739904804434142630501992272272728166936715321739658463451310878442236775058654937199373444627402133736630838048339669826774090248950461050041003471100698055816774528875015561714800930102628416856648081656327038388942370053273179958377716330171812380398504081135732720617524584001806951786263051732331712790689513230939171797030787252612939359609772495929887763822579576768334871557065361454771498861068114420935131419082269593083874383729177884919151122832460704258221654027656193678691151384159662245961161198391845299870657364761310980359365378045684109940697367742563107684774748959943133317998150186439033759812846054553289733870550544952531577469159679383155339635741874724052838807130046222927607182040468839297896787011976129118305444467431644147671434551212788557640784219175719626067166581488034255594628740471905623391040453032904655422765435972677074485812272643621775868649049864079279273728790906939020681116899109276255652434613628425093466424584673433121106903535258245802678311209526997822231431992094272655597793292715435446118849519714215865725461628824492592343763497229693749665499636053314745694465640205604793970041966010272423064399082818910325556593843533739420464555166099315236763891654915162113605144558698929200976867120647930828195561283194079516976099614404789459240717991729634970693290878681840866807064263589383833640727166815758319193184187467030347620299710163689545744373027314052417424821428120981655267184283671006807191860326244554312387047796413414913474157171183508965606668388849417804270050642612471021792554210316991995112441964543342997713363798995353960794724135582332462294727328313964327650883207722391527572449740232583856627433491203959565425186247113086230247225556512986540938751266560276892157191631991419897045434634590875030518002469056235078060752561503502761743800148542711549151797035343335551571112683991997663441002239049643656618263232438736312617888254762370481962265649570930415356833442715835430470091279271404400557544138258827238900473127474960300450497150731772977474330773581376170674768548010422079457869965910310362765474645438484325108776086962943647397230501539359220873374461007978245166120925948031574702712262757505900977395096757980847862757810918004460197110897826029932007947671223717539586977843828349015540728971439317870901654907196112567046202659246075554556938461203328001107508550146708401387328942220252748708020655907907452575253161138518624009247419186151500470340956762885609956053786207188433644785715306312825658207514363434913869187823959736141324936406804529480700747593414283771474495080808687927895721997861085245933147853967332760107194068848663723030294432027432926379174797582423612168622065127009189636802921497175123921497765314165323645067874815386760501325451128514189443848500770357391231435134836698111285998316894812225144171978638506507117015287483706051267292379562916291327192506941400941507700742354815484794933430116232370448024468208031606462422488093209683647314340538435081961605700181857253901085410648484931779907416222275509745272943463201349000087475063728111653452871601259450983587016213773057556637984534048921441103326285766713659382068921765659175370313207747279457701317036028812360001445487984038393784272989719565440744358907754615359933412608301394120931106063033057525760940024847805695500268432839587629340986440013904420816342357273219719224217320095554445103561155203325348935212712067518422888791436962610077513915805377989911157258896535425668510994130978749690677670468236910579309773198603802292547147835408062465902243514714522596999701888035965879512902281987583060711466136626413114027332006031660161518916791835095994176940984744482467566215098941586641908639575285608757207354140462160261694434027517127084531523062426820089172311772795884886073490901679248814414624592205266777307578185537902323156680896416841115067151810020968172962793557030405281644793383715278330178696359401581151424409863883763196706607161697742944426909931894309393238803732597168034720232392138403142163985358059798527787467756729473728968398573537275748685627583922274379661653292062748900536134850646666641252277677992006415063403116299362589955732189929090208303107609672532231923085775935615531917706735171637154414689124926031857872827162631219309902692168704380056704277382614280888433304665430085306136700927741372326062205737987393415978918421052800959992458769735101445949624797180666908417850854938109475599522450350192083644478761460906106874183983142405668888893860568743222629346727957912817364520357706273669334721764757231245375276445525764197547366561449646526757648342807782204975796032585808875248691206244818739154890346472024412649118874065260942422824454803743432390896096901439926801983265768074083386219246897186762512152181036797481744470284774038301930168644580393962778973647156954803264889656761222120405511332583348355216372725607837763144989073783133036302716174184099016870251940911356224268155870308220607533992450001141692094178142676230060594824123207094213818059394078907414283077787135652111667513128019240080426922570377107944166700157020222242385527615381551372347682005655759312072958077253802924735921551879145370230524012066974959239921909517724554894001083546705756853798938134072226798469230097274091796273479868159410552678206851005464597556366573572932453164026628889077544174360256062019826477429989050081862752527289681500229195943781277986865459633711121126722269985297186842646705042623337728306487809937904904978440967276385862414081075088546521196920172506947508984776825400323787620934544337591807783865479599738363334352398369858811803564631879959886009807476004089344107696455925532218658453115850393201522508484001993975447304973328348879548717881620383533196470243819485896122438334067577176786544076606272728028648598702362689739512815466702961428330527327881021852753083535973229576901144876492499836197644994542104783155610116810541865320747084168945512734614189726663057257459709266310471500588278039208470931284239065352500712112207615890151692124416609638611029066186093419536902241542697866171821083845660941412319851082195352015433502878958390321322236584159889869936409609960032120419986126036387490084241438433086491085315813374776180153622970263604319896455249088122155482822039120236716790638841202455623202623243090587999216180564160655032870673806804118072704707298767510629807428976803914526447056683097024134528903003459022012309855929270948146861107163255316090188101693211318002620202092157517538523145586511528067941595273763772787538470324558618127866048265783924180245406690493486131648008850724741414660936394877364201383100143417706061319632152735322800871113639338947247667366881563961159750444010132790519994438997436497108250024369900145811815802042964183175506341083339377228446883686218638281863073447786707202858558688909729039693897226718211836887949081802982335180494658845373325005422142011898286536318015540219291936708365997620700945476338127461827187099344244737927309538650530092093114067328427901778800083207628210127114278224147099080141273528299783717764263276302275318661610849225630173955905508772531395518495819109680317655722945238829763406724312541759292763027518933026005518319622979302120854848198538614106102785302516025730000493703188441788098521693322414077482251722891901409624046938789386699738730371530137143318331602925987921799240198083710554496907970065420349709628876123973631085617016036531860612520093416939431753806192448821801916439760354385739767605022507473990685988200901387877786531978861755275015777666812686996886659273334773671548740027516913685609600919478853814701798183664373897714625434687912111667210651991713813437266483791272899129921738083714794356956244167047441056502736524676468229581659681553567797531630631708712061196538266728153883136857644028344187673355871330316956399010512356294838082884152296197245887432394537275667863146161412599684083752392844683115608401876475233351174674714385613171485350612183618893143334530248484284751605393637838482006652733008501622972360625456309948980112896783265546831594051875957427730734859050534810978133078042468618790481894805821850971020163732197951890333561095724662692027866026832066774297623704458747673811886415685840649771350873092629763450903353125645210104334332797244765495026539895303006064413434105770508762764129003976667783232227075547004905699173298767348986827743268235622612509309130448190635008277183072658612133903090934150687927413645081525165521580262244496445267642852714652795653574051066246560306407055390030395481575646457455220560412929894957847146055046332510216535350974538240056960605938793997210403779239061390449966190836422535443194089871432371630008280127280907821340900317614057730771742768665157220237841884374618655181941587355074764981957067590465407960337076875867194144398292415630434328999816823775672559805058821216624292703087799076179976541245627976034158980721035605172636797650221619506051457480211194499853163094030455017665631164922813064796934867677191702494578882295007000230315931576566998427354643532074959059832962065031788234396635461405071572783592377296135073677676254274987535251205612961404425160304447519905598332529033731718578480521113328755064198667478347793433941741125810057385122381089810694144782388253228490234277502152281552835211634213217425371549913913490151203564124245643552722301093845956501872761712950681475645094196476338076675921486445922397019165068610512544412080661664447630000288954360789795812701399037078494907889628239340801555556223038303179329606138206230190893819720871972571040393689083786424027904539695822410527690096132935374096815222870584298831220544934302414294053305251991822506643050837457369943900881474408493077899729155040346505972246960664788139863715109369879959452758240948678309179503238941767348907095572304522305997306287640842754712113909207399105379574080134517567919056892613124304374479422095988137853796089149881964411126112502322387978076391022739191774164670355816739892791606188606281287068385873142153398733963943052002264397763686950878099804588608536672045993830228248152545986120430775341336555321453229964129523022890474760470154305386219790664640851362746325217981958257232154149450335610978582540939843515191318506919261784279236106855005323725371578802555330101520456276922939060880771107033376771024405461002030847890072089938803353508379221121414058023088848671066567435377163993576223782850791423513720372914811999037638885131171704284828201369078289834614484245950533705219898812956409841297750812199606739650133017812118183752395071409679292723612088315927895423782894503428080062264199432455752352463959206697787577183843741423247196411422766339507002964614076897593972110738912431603105160163544093178930340141017586718048033720249223395138650095107487348861152335727753650868426190383763777171941131594339773845098582172142415877596278067696938230377543522810155987930508918901928457050592470311241558900239547518928984455047237667662200262303707350392890520727292730434298778822657547749436821760812561025953213844242405376285119813135705118413860809870154930335455447427180323630886000389709787912579954227171841292775535310549991264858644473221537204367111819456997979604448003096363546772664439793553716335625189287291904985693695338249794007484590172968967419320442475592968569628339677884220219458576527716807624838795289146440449768198869287536549376146505971252736360679709055478182770243885300663952975985115480347705103006585270169405304110882753555017567764070318352206923653022600515266551053954581592100775707482221487763352418789052762288480833673965489711104315812665010710102359407555532895532361073133687330410938969235521104239346460058408125741338868346324557310459905787000137805238046037400124884301036025832275115216280596627209918364554511004528330938956400298034803544321832401981485437203595495437181364607435149176679813937609961869518742339117454328723329372188962650987774766679684882830553227790289000332183046863550317517972870157565908108711127193311502721685236703242051607859730552986566207281001447062035782860888215173895372074399379470248274414216807815885168153576274683888740087500958161010542286036116517502149969228483024788008781879257440789864044930806832493101988422165265370812598995648485097123141802904448937646969159849683442289514737821450424051271746499054877193336086967404933107352079092572696224148996206655840618039191910747971392402713348588248994650106383606734824617064397069859658404482130576263356286986917735749669364728596339833917307921485194567874936422441830663479723467236395575247856966249093088210539684454501539686408542989181191826554851480274515488151228920889985496354853178324823170805294143671796784343122798461427937037030733273557600799348385526192146375577889880633455493192947132857182502301895626358864012916702141777893239342548220044368859263306692344529898326427144904985957877954382955389195462853169120341989077138614040122196660614897638193110390653601529396172154228940801721677630793186617688655610189775656981612200875826244233971664210738136152746579995129145313285314849355634225805290557788916277339941176145529947358488843177989652831346345417552656329031421490775647136131063639071628601201738534758963167351587141490954470668149245373768813716851455984416979647708080590574297559815179575478876567618492482678170934773415588933875614960146831529630374333302984345301568911118162980394293522972377374779018264132944895545777009982145386930648948766015279475271708695241453149587699839725525687998499364826135605188750001877516397221292013723717356614634346147952853890588101072753359082946316334617552455529796067237657253726800188318802924256800001104808137247289686326844475471943956400523716641801920664232079223879226526676801995573358269204375487712439764319717569856221768667005811545909452476872108765023674630654979854573297760107730582841073818354663301835401918838164242818414734703371941122790266718557688857067095064085469401832050727360629857012341372304230583017128353077923413244433298718006142774708956811506226372948613911942680749058088442099454691040808251746033878293586402115907694455966843526934744367937085988269273325953673069070132490181432867773228234276478001748841572392708262881243421219959631346800328173896498011373027021462174023504100514190978164955443981471264999948860611299576143837510174458756317246598215782130073958056663237069488011228099063303067299561548182431887989938561528535673978388421540333598273004192849126377081675324229061413937112375027873085483204109602622756796892103268508803379083916890183532809945726366181538617718542328248978499378646390621777647794779589239610282527313936688534529794846871001679967553141131100090598042819423310584978597913168424195068399987337851932766395839290139223639404054771238168176426011415400768971048457076048504545354910154137243603630364642599093427909228604399324421905929637868864128135386631287479769368874393816070001571455363364656579057740942324671762943180352355816964471773819437768970402175778705431587341928722031337651720545418278981532597052939377190679240082380813546900058568897749168841698809015724856389977763312216643105755301443157073644970489696315566219016237004725235864110260175190583062058068004856676462272961198614330708033611748349798351954040629765502741906401670102680422711782271000447685220040209796222956195032119199325112940376946465252842212017722945756427690222325929557845615014341019747315881560623133842604167556021896103534002849757387577942902389349121973580249539114424200637992199985603026299777494705720712335798879432511804335055034984793622048729845745222620284830807771234423927038050816315711968121175032066523546711725955328840610975647743757123475782953270969097440483617397324527931542976219951242280162496391976782973117574795773063509706386408062482329606098018093887652481654882125067591684578359598975684914364725530057045578278601393164131606902189587775256626574297753467821390830263516427231463941501001802336176942130283918314412264596760594145268163294195561545994504520010633116257560735586078757421879012610323658838608910191466587490483511275046760389522525514740980967815317687421523908973563239358080916504069943396852669190008059894504844352561661995950927083881505008515804284274491371856282958618209646765009390792358603297858760251036326259042644013023631630026574917237970675404560178864555278877431481872354621000662899131824569777187195064245660408992566150553192587945166511696651882525814073569119088727201966678035426211632973403912506985317343870522012106916935087831803679013395004980049208267591436580626497425404031982592343113427856368362126908225843069257246397018848833649722031283016193407873470961884560544864497052318107294132806603271879833950636299339560422510846312532818687515248260910318158414351404448501718823147801341272072082837571623575174866409673709222408520980615774287957385850890707141473899107652979613310576066970870705133981625406388579789471754297724664262122187588349436205192168283324456085717872259477467336333388172922522046356287181970580669434290303434112578820637965854711049643590749931334300830936958597908326416561238632925041830074998610871160388791783086668644590452438117786689686116076279398872545805920105100596587960822575881051859116504036271974963710303293004336506941316081870613092425147281047870247235499750009174072647764376752537266629556633891977239537132731491005126741677194281389765300419289485365863153294078436831161865284028479814927075594632228185275550094114632427698551666771580678477917150209022186534391926365104651693028915221639530661695095893106647757655547820612637505020850593124806022899600777955136131304450261998526123867115977777621685308451727597282626197005340161205364659589228108873302168393727176082480058000752533551996115715528449816174283826195923261320677683855172888991619710899918533203225304204891072984455352188833028275219365733699586256195607956114793004769056125952392748508219350358695107052232759026376863514343474146275298750962499072605255499062475423001611120732110894506884958404887969906051563662717563301653060710170166391856479133812548668741495225746089648724914580553840680381936869249873971289921209143976472470179388613438585341342515906738181044214517785244100266262378980453598820715676179673720567338688655329714229042862019746994935706061616148917736285960652290437597267178749461043541552485471477779198349448671744837745993538446784130543134596193628915844744107066638572509233151746344296627447653192282280144450015429622655900745038399040464106724975869053677634575859669964391071729583866476147624212787984874156022729820989677417622759877371187915998058116294406435151721319287215757420037028847830992915770366018305468185560560508872085421744219499044570972312435248536425624567446773103065210822560891729266960882115452062410926389619857430948714827664287233693562665518951144986572438122073000339706664598320484124563429742148227210147334575872716815416337318543226707930349499017981729292593185130582084047636970991614762065447602543513191727540303805639422842428138543950965596955358445817349870921288632277031258643975164688267956407846158469969576318749020018721235277115004204455439061757521061833783335116922308585348604159831617294402138440748155616270288122671065270103350956327095246869148656063219952586304204038295690654833656954944531841608586412421966778293128482830446225529130315573104730051523804125949420076128753019081658689452174984379645435293121262958076125575369044079426939617051321655739855479006811071225132653191997992889159879513669202915008014077447035599298492568915534928095086356384685606987273072047579404083940978485582162981304295658968516648932693224320888257980783468263512573995091664126986863317652277550102915719152725986952601815488815176058840759005440824429754932079069755051854706850755715506467115288904127271849947441473287885719600320608742910845042631511452683988551981606543921914972318698927742612244649390611031633347681239431833574077889992168066555115454845314417502132042281966142279921753377416063465200148332588341051427251459881357802478898177467438617147239479953162302648123396321363645834486347974751690550160536763710752977372814870886764317718666067675075007421421384851101481769846226575051961159383809680914379360509125494389156991311988176120098974811128256429101753510289926419797927115909653723640876957568757383974977943241874644485908058387460208953152950026960729661847526099086927524690058579707850439385550975167054289605851333730058355926755983715299826617983779128447206511864552287675979567097712936956957084387731832856861684923625827662700327125527667357842053799767350308025051443952291965890016648096783448628311136156715468158716970502380098107810024703894154550528553430033827642455864115168139427394710996789607412628720343214332385674034893709237632029769529267060235916570174809894367491191459330402705846972031653909646170766337522645549098886841192933588492904608767180895872087912259599785585978902813579351198307073906010894671257990845817547513985570493856177808676575803071714454906507942072375894087054164282507994405360742908932638044372264216805260755913786158960127400026505092769211738551537749481014854906450469024296993317644638887785392857772888372693708895473683683245143639120959738481540584519168447632327587568726873582858489750089825124021872632306711094827026647221019176130358836780421169558985588319402258976988074998897529878574795733326717848704649191375583025260738793993915561609566770904930130945040661444724167151619136813017279625092963624997536166880594038353067835700253841446186600853524837566180266251597405201520841215974899682067526691285228830658921302346055345745881183376358174897181490064322539274935863257149102927982099380068298805221712596529317102787345364756496053064232088132696880455809935588842563995921968632403961075735554480322781739083057246279927484690563050249272120630080231946752178483481119435254244872633462754339880320310403158733742447428294490289898036099860330431341303844902111416742037278404979731889987667790754087523006530510250713130810793406815647679657866060649324699763734864698610702546606488726139899506113290809347511576447538795666377676028943179198721406446890018362339869708946038394071002201810044268951283487665063137713483492675004660513639938286999984817523630158852778892086314100912524499867639728610877153387512689755578061922934602136311954881932063764236847549801734974339702308475994821416221099249997245482827309339251762539396966955561472647723381340350359002631860511952678040788265475476837706569269546479967912308719812000265316028117490305183009450395245884190190860548220603257680170459843452503927179862375911666746970263031023814945182798665325005078090087914955734150724903621444030189825198962944359600455257579489319428009307581369731143246142876903761720319115152146231856470576317396085749124839947958900028492982719258523159815143226757978921854616496158562175339431261979126503182334770537232828780046150206630894518871527973018510848372819276208884496241915237272325294471422670817519208890311036268517782500821721113167303097245586991266515719742605557702133656082469859397989346505384194532203900702077183412447823096913298877964956433336912851365901133867930116474042666229986162113718797714402049998377891795989368791226999143916928317168496761687561095214639589456554622928250879290617221932860097258909453290076517989793216636601441589560005383226856177136721980631445447893913983922252827427184939753191974757582730981018409914241534767155810465015209153358146189232544425499932433568602247895319021242626324895974705123859223868214875054335079143008017804976357231424196042799948973416863577632738397971533563553585864495895902096519331997462481836524225830575495043811409395845597267995295282060776627752738992247211210030805032972063989604098587233180946434019131412578580331689022834027577507523588104218971697832786013386382772355275979403450281610174705599619569937486699695732321720259285017379504831934933120416175976423918700663854499613051940727932711755482843108882088647774355609415770884929488287725185868195678806928270809239963816992117941381671578151110913408932742385626202768365125053691553071413063279817044081967265399812818705207337067233280992494965189707130078111706786375825322729814360778715875586517402285188111623234094271299826719394353097642152451515404417947517725118083299046686498732726018270265686321837427808024521507543230704650280422598957050336900610289656579789782479589298139156777360000182289525800166445060960139913392481145658958744344568159453487739399405607395354685932678753746887260816064193704902473205005570833107140247937994739997987106286962100531637858709504229667714454074277139782501313464651070659972655181154404707816885844029802383403426851421472124766240932249958073458338848910571497287580443366927478992762816966214305712937181439170079113026484332269267569829676156880296700438135312512368971387574938480017439816788908900350592847432098169676734945818587598740589070961697358506367957883107412186255955898334067705926745616053636998242469032830494640275084068412972340836051268940371777549254562614356264603192717770915607740572873548055846703218377641311222841809168617192788219961507355868763262815572199404899131183998495572486703929260863724383074312650136706399096624125631895358071244354724827107648085252923716339733101225653640830215260117971758392963256216959019077427689225429686249652077648257357720883002937926371474617737932857421389419436131046188617247806487083128361730187719936597514722998462530417824965769321846594755782399914611609696772042289834606270301934512825573669052656496229394078741594050527260012364888749943906802247348896881761033619014145287106636129429662311430704929826740531476445545273093838136078478849279403504675175982727313446848942199396594133969781960532317507189003723031760143942838505647164669136107502552645794658966239460143637038481019677897828781038295496042912628345266917819319592642012677216922827468081563397152305542225854870674706719123518367977243309363438635179714823782367977243554235015617662176032861956234161384711407000485848468978477335801828085822496268715325415048907061320426969648277711169575661395081532442509252181532196354215596271272223545114289334555262696523381210518614097965250483688408429695681193131181614020239838718752924427665330757751920442830274355960238538368339075248776623790331419634062724324511871561238433172331234066683723838200169849806536947184368011182527783643896103109781732646005088468202049425109045881067245923347742613919645601283420699801140707395277365691790188732635502591512507764944698039699345944558124634712951357726552869290790802660692061055041590208902274582501633537898281347060899280524779715516568923196034023229901127273658207463798455663561611946656591846433218964938991630117601649066197131260783943446928200639343823667791946982271252185669629456944557168382717225071644317651240919758174308375698083654370406005212634414875029696124755735531531756249392866665676323593760199277936586226539401905495052132556410107501671527374251144733872415584780138252904231227851629543785227809615617958060145324772391242271988857337530908381077191039343080947081596332480366206412771575223029291955145481714665819176783826929734199306680512266384117179634474705724021121354207686338745222644468533832803669147092189332035085880657122098559222786383977859180455473622576936184868456017650623072135597829755498834845992238747014305075168237886125185800045496161470642017488351103976933534505198826851544649282044839291999786999177996515089946849122773392523036950891045136607169578805638056566774060073763635841075900824725647149081754160226210438515531122404830344112816734154571160074303294872604989488096979446622821149085557989866929437146983012853780636524857385426713151525836689242795352529008575945932240849581317056506084701186040805196064567970474629925854592906406302436913838847926182800611034255475481697700934491875508252496024172515945087403526545899850873887770175995739538237250556037598243550390682595604175631398720585087716208453192288827364326223782347674443258064502764058540094064354760776887255177761415293705190240002280195864394815920087117417304999338817766384273621831234404189884669185415095833810512168666777033312171864126424303057446571807441074630065607394707586066868151125759986612664859220739425465398070898718010960372219372486448666858051596302308896979931559751069481393900035529636484602307946049175940120378981480768398797036617040453545665538608778957066583702666996747161777237791098811733656003028597252822962080122313053293085357080721940818386967179354588684839462639333366204609358122359195343369540148918257286490360894154853596672344322206773569252096232393839876658936740503533376553663237757314161596873848903354268152679998862687055958028348083009143229546749097648544858881455494969871561830449203712617982147061467552457538095489062362376471238584320866788280655940559796682344795411110279392487799496082958072454479371908360071521622933754149232663542996235294612563623144428951520556486725224372654357105690753890456464039176395031964331936029113667466991184201834892805424053684374008356429535791782753384949123512119335947572843324927704641005139313368577432901784285146210257822101960030051424895508465332953271479391685776434393459498224735854400901001918615318079826896680181135863902074923907740651048669593976195826096715096836842360929533797253835025779336676931068171988902041646902656114961478360461945641160002489171209528076999019151487475703162769280723562832658347624079074348627383033228107151496838337194610023310721352498991000195605342121991402969706858500627463482547592049199443597914534661772388082651027790371802664261065089214291877168124989415522850625729631608105949833468462876129199304194689892579660643578301773910898306734833457652162868564159524513105177241020516352714217532578561011192935093257494891510494027870089657010963443027496852112470897849048149874349184868993361274209022645003995697243073231660717902608023729322457117864917880278814513065710312210852572828427796295044593529190989203230794743485472384053767730221761088288987597131811662019518835769128259100666408673843306324449802279549906392296513912652744832676334307797541704803642365613632073919863751251545324221813118711766119314220846967591770874914382816375985226592617603125458892217706506253102222233603122704954814370020406059160903029688822878991701407983680870404264533606166396796560152316795888792445326631860172979436972710202558370139642683374152313533312132885140228632722211486116941735737321912371236958947102874453500778685589455004475979576594653792796655363845764875201256962244154449840328366097137283775100506318404430117043821825849687691577431699013339038062943637732590193212497809944832383375591304000575559232257803102425445084030136586511232622119472490613459154635948848362239549766943245136740449084561939759923467096400557141379554563968455541855726444531445727096747651240607189561916588135781455476318681734873690162182035457870460508087743870746094533346829853566868375563267227661225376325286631522822186999199121159428419533613816287972028652988842420793592319286245764961403021749981182722313624828352477141817836862757662252685765477087766510850497195210179727491674600857197413982175484668178167812492879733274583676790911725812869268944012893489549142534028333379861817012426938652325615585904857431189170562371990362464617105036944455955632968839136772234178818960825442665192475694623781102525714896490303523885069983462644084261969680651270913212666540664203435569162819247962284723300780866350138041141592719424799460685089948258348795270376628191270318171043208843688053875218359915418530881242479482203995909077421100769811366035833370454080318967832345951426472426886635208956811211730027647995497436993290672875453297807803226376096590560833436766683185593568468724957599818483587100387718670947111916069287105640786248886606192402969710803790659625486754309255933338686931458089221478948047324705821789724485404511290637078145964341730105543284470461157204128054332114816058201122115088499225209353082304861237151753581342502102851236933441819960965015150455930556109348276840106929471407251093150160461564026335526978482437778303208597129955647047173724042908329221086552091099240664884037288633086147083167119505316769258776318544665220755264398104507171263751990184377302251662594815755003137762981983244793515135132747115856404491823487799730179504321887138876691472849990443271193670918409596781954964003547674945047146934047422629481000338531113840657240710733112777933154229269393235004874372653254033687727037553322433751423448986331584586449513525970061750193293087565683793033012339757455182781326221632123092428355499861890086900003527126255900505268064394528356726474111398055895812517148765634672691513851796687263671927878594878877717649455569261523072417668160222492586256591095314151464996923298112562909415260992442932058283023137297501074095527707002733981499721742983372287480561701693058138728065438582240135614699287369165806511390362738653245475726151150770878725518891702145609970445663195211065975530870053418366252307006151854889739594318040888847641622352210977599504194086120508751047074872414357680898783405751261352940292858929937182419688179611764020690960262849266983843207725962495853903036585308768022143819485380661180097286327304422769250249757410194961883501097436048078366092579777325398145868913929981185860176607872621340698992486255275482128367708480033465207291593583813004575173403044585156896629982683748168229044666809176460904557491626369449173847771302952630159966094186630716130883095551038236624836886545571480131495785234685711881321884576350151061583385900154524268024650926912501284210068973717362678256524791364069898467475510456300754443544236194743218246401711643167870168629191565296008759659368789433572210546589843770551171783582046828577834796459296063569035237835211314494167822576326262069897437908029753698688014508462695436742118603313456512576539949689194830479093456336066552361126234595973719626609063738787376037465749026330857411251492676094733559773734092571833054125684798394358726610881195799937440106429172211790033044329643003423764258382909393212829883923412382298387543641745240699506425414004453764880950415344118140435767943020714648864729539614314145504075906898518446952563293437647123523024919292287932606732257627999826319867319058248501026105681735752246490389311037580509439141934857591112559818390264754238036418726675971768944360198917875230857297850273849376473106081452840957578762962186940011207459812201937351282718818169808122078271316817485990068112243221892208809464429578272904753102152028191822606965717324007347019660835090990179330571074643133504510707256049015510002006511088373467896668230629175076668177257157312157013747967422401512321657270175427259683932393210800447401730525515630550876097058401685187457165314480351324920763597545534730670384343672879915670068276109010646131406281997782836824084019199267605138229841488134914939661244668096626570553232517823679263419488560261758703101670914449189203434594053033466724291787135344848935921809228620095985221768381442042287989422346633903673778224760521559754111437818590871280893349221258002171082247062155676766150417481369970525322265968559427895128167165175307948576951731904241399520641942262481911003414786292900420136281447016232240087093115800664488551302612602783398206697628348309852256114087430017082154763527581365528993227606260360001539677488821335452061477644553768751449827528272763314397175278088948134597507538299377192429855552625658299056851872274632463359411414409413292929342712097037197635558560161792901924618626598432829547247359112366500370709495958697695582881411977843526132353736900570447338865884874002211790486595693992002563957123363482787044817955789676075649336305162883414490502979713244939666186860388922864595891975464803580439322891989308017730072524920184541936830976111180594273433031775900365000135964995318726437713642215717524578918705450361550927118743221537052720410860004632942992082155906302859659314514914486553669427189552120761247777271499212769738508023743794880644433944475436446710684884027460361793248524485329969347627016392357161106649788270940698529075753555389350401042432077839487904436535320966035133478637665673469778796195724753398063989810890890515940782525031074345799394695934127602619040895745183007943058634386082614686434942792285120605969677022625542897101941847272507719509781686020104425268723548275370143002007803686317956388979608982665077178057017150416049281120305339834851960810471486579441903548246502144787285589610961182275157264051926566996848477772581183789402764561197668759562184265171571457384482462080231451205158145977054607413250049530266673154789982772919849222707548252342893443586376889525302962073019630356874585543715852774160231050266891827676242038636758833451818442678804080312056976033012144973398980260051995670815965240618268029724532508704955333671703613870307255554457719142621538385440749117116075007295942348930606320679915190430703255549896302731693906393935835968916888768515164878529328805188162760485944358937811870535141503709040086576046805385102247076139921886129481019240984892306409781313284824203055724725992120013977929021623222667750752911376965256000861985786057131312572617415051651544196146439686420412805062030824077190650690828967008585538696138197225971824309313692496798092510034215008573643387975996879495291355812239254563126721498503992008712367732489530486328267253087100699808586612844950021395772045531730678766291641643168986026365994990130219880007824938157940784481040539212206598588119366480879412030687360752477030039554220975932093683705844177857943499171841570886941901717428548499376813224214911818414850867153054784471086526250600231260641889810966034160340043785575075676206181462252844043227404992832232797767910158460987233024771379195077434297136222352595082377519958900729758590963119984819974673792853450686128154794666428515931226649917184080932256826000163683470251778663037975894369319864923229400795013001090510152998889066942893334887186525069184579276499241790880937764237901875118146186641342666232960496010146954448263360644933116561266679819526498801097334071719993399616577851872073886890214042039568817652872144064404731625096760191869731636640160963335495844073928970471453446852522601600414909274128913049517671505569164080161289225437571532302948851062815132358069354158206930357451605089390507477215158863072848072463433621482075607551496507257101135912164419999897998398316906011750038688323457015660576905409770563205889816235649187730895957945294125762973872957451519331425329204920719730358329737064896420794061555448748405746511805002161309589521971513115489168381881164113216756501462140651998144680146510895247529703152736469130215688793032384863101453970442075037397934142209485837354638618685899957465390380482572576803832436408929465523518198177287227011588378907923480079121043092233688377707864043026239038536698839696642198459997196296091374929430443150314978254524585986948475779996748523770431139755313953535010425834149669788442937863586830212784712659960167185037513884113951806736858385836631514530513873525235114131898617618559434966161699081479478630504284057531171600989315381691985120071662456511207535511162354024460626419934298053856528972335370047033927404268803054437940269865693579503140104145426021949197616470719795209895992910175473576608986358625444101705534055637198965659038845211860979323744910392446891852680801612653677078609583193867392202583793582075388425114722423283832633329429754451760951812341826981852987265782004607081521588875565055424704570523394728254879025185732157640646704597344797413318884827786594017766116589150925112283143630316360543085646212293220409279577366983696131719537817194381330951401519245079010632027546018899069429803812901583381057519752320962025233533698571301579739006778098999059018329389799304077569578678096323492522540763864460701265275287784721472761501083154666758231856940974570464548789725192626136820691845629910785153684927406855176575243457873462304484507341109457541875107118162596587461074376824335353422458023838342336229363799703556708103233386437784816321069980237298168991839094428639853982682654832837312559549140179980672889086846136751725741179727090357374725740609822991620147002559694142659348775542369427319975621613018979105636947296622648556140549139219259484694657471760759630560796853580794727009454215469159435327763160617721586872344840344434648175907669683847313830889390751013500363090036601348274814455302040482858654183470364237788479136766872466832722181866444722854875953596083250745991763651125398488384166524852140367122422754259389851997749931202964308336548723181860591040060052497276177449314128252107832674950347108694934641518388967697792913230282233867282603156044689399573935663158737348949250488338978304676089426159847550339091262926217754855734454794459945188715468837516548273139571942673858797432048618670420652031568531990740198165307104434972526839565200589161048583790711783441182988059520827470203213453897434093550946223839374089650411136378804273338088575152926859718128486476274563008130488848800428445278289458826938517167288958806738929272381551163240117629690398992596628199809183105971216073636824384402695544682610530792541018039587703724027014126307673375179746374916698876745273783945665731978087217167175421693059711454253839668883665432251704825055283652550962973446573123023528180911881660092001038182781918586500574651018894350917712680496838227993629595073098203588573837837896877273449547535834390840611192260961932056687584982988865533990045073669586325701633580699920776859558668433172118069994054938866696646821328280726253445754290968215753084086553697781338622157411219375391581344680234869688549159432273435270620158009317530316470148016492159964245827001111367319378194036380946548618984672022832503666607473210284263095917473453941753001715874252620956237121922553624796771858472171821359649442640405579622749700963055421173890729512823195602016637340136523463778687707164283567788752694154733734358523291502797851060923698256415770784663870080846376035016828765475150540625458408942895332287251687788957373597623102333604746285026045751187326251615250316548421797255536115382962107317552476424556458344686656087315640159847156852505794090738672569921951722511752432460807930804225667843543814958021073293549628082087054235664906984744210783520113666515311120028277211545114116062305476877560949346854373339224232775870356635271178195170030685340414533879112712377474598956373990448152081828583475257982039731561659659587924132798623934185411181467115928164372301239549176694725075799601408880561823659665405266463592226639808602564359454978087464001505031829862867780632578552798546314459847101209720217211667868817783913888762219487167794584527035806772387043640465385478452783532025583399952947554177061437544215497555419741408918193048906962065956589384272568638429867575712653617085548731187482432683737643429422407804434076899313426417516009546112321069532016776797561380503551926274773598278907845133722052215955553536339533717608864383317130091058760089775769061077323084978186011988278125668717157164531646957339752625846528177415267873947819203637613591973434488608706168100806969946662540071635726073623055160755512024979954591445541667535084370275136202555708521756593476824455384293337866630636472785491159873914587669548193913330439606275826971364892175420036806062088530917628251881996244555371238788224006212450769641655737470475413110255153709543347364600751116501748257710458387458932914733378805117965854897885982297605030420357852313351053542842840233780317442862156887386357920668376337781728976361759548648112342596423087929442110944000593640026903063883949842044607406917086554007722605755322299244828472904100382013011815855975135555971935474075077361166332658202789872806508849230626092831110544142669496943370631973467121416323508537210233157887644378799557792978462776877828693615369998759976467405413860465056331040409545580109101735765891705342946902183562935303795747789030096730616883635884403020433473322995947240063426147743197407990205100800380435850082584295082584117297419770449453926279317064484097473022571343592862264434513159120060017608033435747571486001012039897596759341033779095674620574458765164333151195498836581836687698032118478560721407978232909723055872218194065064217728745496763437132243635607219714435433644671045487971452414517834352415170208257220170081088521183797598246193309528644743495115682742420349879618577952023679013633687809741013975069241611977818784035137999370208398144350173024820514816113936827515773412709266894481116869983705728178796072297948555862124466449332258878748229177199125420208714516596953502955108719823073248514926636290263875804503621467580704358052112839143013996852240165207604537365385554675101565393354830222914761576269452495416891490972738772223733119734166987615244661869615614703740062333630595187491473851315422489430230546584738746399089493013939590752129735643291415728846259969629468238197072768949572996575312661216864889368593786020276567142904577477404557538635224462712114439882472848483710392650406602673284739016469004392473129178223374180151482041328696338293257745219346820949561396471232741376785807194414480667427678325049854811271511371514035504745456486208484109856437804509794150383060868783610408948824593150744715723125700219240510361113800177868033587532952977115236713118898597884961759713232057196758342891981542299382798428415515478312107240185871053972858092772953351850617352500997850521510254479685040151011746847079723242198465937641191018457466116433808341305287447273563811411999036673052993971282205292976239433454677697855940051223786340907854125605135038625870383957389275286335404561236271029090688586760138135099567258662639149576436140020128419051199031927418120692669614353775975009964438650511160628012264248866410977711326822497287441458637664198973642161258498864007017167941043089847644221385246941501418575562067383306672743845790443229662867452871968130656710362883832239919232035267201679269241483349090974319961074114114785028986217374638226784324480230847386922193990732281142373085998969571194869212030438222195398869613767668422511269567001388343462057797439185305570197366806352153630434243940182149217973113076735073028591817291634507690948359929453028253396727111270585906092901075051105590699486987100379945715072119900856524196128456784820640542173963556997974307170108155305199572325566292679702934818074822328448421150143613262688279161944518406781171381986171762307826630275212314852084645281042570104744861299002878476280926573105608592990616469156890124128849247908740272711297655995499065950458630433273343915493667713649849981703113345185075419216873984680463991016077901654769146164786400092609559237009649898335038907787767048749645657408763770309712851146564742040314908017602681923485857138445642152760756044874158625200629942399539212548196473486466350680880006413562288738080532346737260517747513091762474553659515146597300316563145934801083286225118377629686291582749020567627023340203240429040773484878436212622846467426754018056096116618752801382596888242731176363241502066068820827799693883305525228512750952201385043790320089400914575259766476026890133112411583800289835788128098167302610930426005865578190276973260424077675161300135832741641571710259664913134041349148606687320296105736296833242410895059000842510379957704501865534131922656454809236854129432898739929831427402669453420766253377571226037823125745646998113940624525837820444277657937431134474260868879411375893642452103870047505306059052366701368381799547975666136077513574011122179441521666073773883190499884576773322136123772275658695786909342261978344381259294604519641738057862241780467902602796998975778651901695142913630113613759882786911778332956902681219320892982279153129972737978479153868505569318018715148864523739123773625618814531841555769323130766082958631902699364198239215169504057369392920046548146613571691722859535182718194639370980270151992963764794126729948633381247030205421748848317527040109861259297317150072338768075182267396301144288486823559675340678421840587841100815676281828713977900006656145389956717366113355744496615402139010585980029568828980779558244175725557141134640081298946084496136540301763288710318828473669647975168942896784372213196229257509707584664803001518139192912107168203078932929803343437356868366524388187031350398557686305502404973517170200738653349625483104114275837194709981408328538199436950124546681894662676801890387905389432645195405577396693203693604493785566253898177435452968426926608739386289782733381644499960926660055435890107624233535814165420697115214474971050140823618071360441596712648961726696654038985976976134331295043054240776432756096823813490169726541072339833505635745210663950260667252449929498483761556799464553234763636671839795719444087632306097887404752926714127891390535509030467539731513275318734008518865478140566042126205681208473053871756828394783827069355994681705188692347867507195537830370729523688615776598684190654104586453331635675647281979268545233290251786826074539579309757112664934952615734763793691665962027820850880016701233600307901962964808397064646405636456798553321226051546340757124421313882888647067014113156225720495539750236785849702966682409663388032753338610502963856409206436511355049729085880190915879640110049567755031796847203883097201291412918599420468795776871490639148887936144181381464061250644386974877682345068350408348009358647723380846780659142770464212865082009250341299222571961206901472653116161026659973994712088919348792115790966741939083731781929277723818989280741007564916025575040556032289197860361991685020206805619640485487143932103554813933955866897656981997759760953814057261546191457481420261144587109084937569996037172793318869172981802050249824685350956947085545813339950025823704016962213816478342952786792627062265128538230084618243999298493116425818715412441558972115473748077758134033065191404287582532207959242412037319147358319655703972889188329981957832000240211585900394442808505446177906154698066467449561477569710233283512946217634279094791883300604963038521192694507411522363606628471181486591490125965811786192788711565295757258871240053578335179190309775802387236351282665815263327452839738692144100593396755265696941936112147584568300047985801560088315578205836482828106144253581849950877710429358968399310406364867664284907706758966669392373710172985623531461349468269681826776831461264563204852289518881274848693978973302156688877478539744441752650400657992786696246558846889920885032584284764112119673369141603658864456255979903224194759203382029661224003294802714836062612185267937746389408710770436625162696108366562654362309926601502051777188203100624422517528746380784770025394520152959615995582794015865547761410367096173226923007821944568596471704282251447247721548641023084410259330416479584521205532562393879593457984086667317370176178928234536413597612570809179151636607099126770696699111314500487961524111632216965029250827226014416590686135913041436650404859052665957231203199960517021477567008234393298510023635974271036515465893085981747686298605925993081762998862313426747667904142674314240368472859518348849049810445175011179844516209639555451201985616172738806117750745989896158142805561078774198553853350033354814149577709911769592544786929289246303834023200554307779509373678868576441602250922460506936806400518260663770047078052386723982353787386349658357784713973004584598175680042862470793507559398908884345860493440527417210943295285000994474565093377954759035324488258885982073734937693567410697214797962706996800959890974844971737754310677331070579261380737508095790143823001165974007906016387794010982337802061743152834108440771782308821369320830040902500232293189253145274401583406259996370445042957015843165167213018924974945789051650317436918578332923650028407174734621470277707714084859835349414659378955772824970912708393075827072444241650560045576826391551036773619687801260463415448351067164048183888826307318965042368242757518221290778666468031928254373086841133965768220391918948142712690384875368181046838146634600148631238758318411833201318674979480508439044752853099036923462624564480518424331326436035818803457539554186192163574175047167798440824860327500889957879103192278414384922743004885953401779087080119083943475008485340686006214532931583014269565982262161674140108078460966963359898377362003308685405680198568051552784669759109440122891417570573090220511238446391928052376902132801523993618129029641247121762099545705295922379950574869272463133399800173860262492968487187295754685750783113457656308469468921198644323895971979996506902883955262295436258249834326913333033861265584858201792633902933383304095250961692740183174993458276728800852374679426172168989752035563453161823001710900105765306204330998348754507929415656999375158389643056923619385825955140329736180605329760623151197589283337749530436425365260283295923584275463278622408715297782499539352734361350599617956310992766495302312830368588778232063112965903731264356274339147355492890819580572246513222598818840702065735553705358572021363800672825953735643785762629639786284918840583851431070501399370493581053360776021627402917467315008596607451770758486776312446685593249596896303698771722956716670314516165899715321691848520385773415911994772356182511517718534365488977583798498530598279895369913900473563477041392313446224327439277525322495010401612205701542810876699378874618538889075713635385524226983539927524921286340638413885230480747230597341492973414960239329218451921336934347667718737224867365763459230493206715712090473639864825525184611338999026432321137689555324376201469080786708877176843085497540875643714952068349933356704430271657310103791616584079623737251553747976909869280835388442353762757564482962370144918495727153625196187538019860440414230561377516601913496562207894792010030223419073269964210236928489056235110402738834559356332052445649387611654768171506463741765042538365032629732724479806539715502097320857033667225475537361352700572932007180981661171376653317073706200550055284152541223377207094395752870691585255040954309174161397698926984886131111681639304628500820048060978926973144683579887194066631443183249181054121199124137216304501368231986297931010947474089427312979747676969962088664831772949787383026469135994088970516376480384852553980301673593411361484329394103432146123246746311156099344994574563789060824681012180811274073403813560881232677274597768253957157925535103743760466131045512776783897599500648059961513413279081675553043433946313708371008271560738621976662194139654755916361318302018747827396405749267141010533433558121287936437651702507395192631724555887828976901533584718333303034767059322318165342327083362966106900966707773239993965527618413394672499171907461593692113886803817886991664775620900050306858624402899237508011944505221205410248915880142609748424020838803005567933617306564132453109360162832419044846108264439841885226395309723198232907384602919275809452968101911573897552912882303754120112718210049640571005947636201517466384533964142133603966676551714037147783347846909641820445307824599240276841172749837411422339535286136595420654478886042268582827207428830187024441484257374248050811476741106934809109293162766427901803030420472596094547474037371758342938188208744447240333679681837606955881500420471520282838218751190358514260287640640370136968044961968024689525856726616819954460839390251354259696307322059840476206058407690191488990386514751108957593340279463208881086335214594895870259091442361062224175475025554970526407749944780019949958514288150260308173672040032014724890671497989220975051525381559075457195524992247243418496024802816503215716833558168977624307267598561373063131897876261901278405904485864299689528240669831049189513452920020495358248826161004413370006303128619586561493740339860799341604011961426733760263930921829832023770014300666216095912052272363086262969580380285274957068388279870548902377809778806713885680622458971345931024854433865136451085569181628077971820222108053187774956005393934325359205535888991822386079112074031868468390381027039998355526279419714871249470533524501279020733002729922842602579433682942672792767530474424418413474786469596796822761257407472682064978686753100821682388209337199353899816173561709320582739328498531112255036015227036460814261773891525277608177129443827049384969471674816884915860098317254352465182058712842681098856988317413516301340132223369701308624335188831919333991246722994720256934185884013131731248935780230088399966785367426370033997053395823754099185820743877474137500803078559550192846918335759878899089450077806701507398242341357775067780112588815076708376010227988638610757216000719115454500827322357846787856242926078546304297794590453989553035284307334640433136156901694107243326975913857147129396865392170012398230535954668958655650687358106831516446577803742978265437017706165105329169481640883818117848097660706770269026015915908555892880658920778197156191501336314593497161575276312245194145653983090686669322539329931215154313654262705671033285449729965051189618614723507534187610894775793369097591090096973692957310726314602945321086741303477765135555326930570325974116170803312277758235358910889392901587799857966996338180372112240167164270378653073281492529270963342080935140061451356633914269127427771480432393677477504172938132775953314953924176886926058966141060130326669073851641733874881810425653128309696792461942546469242915508486491263455667170321348788664224604323900320004857651982144233098821346564232363092554163010674904499865800135729244256440739197411989796564579488344881150896552361119283842391026842231379960069541996800575232983813869875357627683943237729580266474002982949884878911890178147896377552737984869154729205987995399753086325245207316196122401245132978689296937313426783658099056463694836399666436018829454884749379273517573444278755773474263381196663309662649062896006753578328035819313877775806186914262233453777632003740077718370866763060102583839774580852068534272979237985033005213149818466473638179033491796258486150720769962188039748702335321437793955219938375862841545628928426712330237613270304230564833980152546210185412316540713932340969763967149706454846139767944977560545820705502477588902260217844003348514886664380052379605945115467128614183738081310205698648164921639180071759368194491778032960004779484090746029189591456317719466460818972772145647495796826712266642749243588074310423493429482592632514588056550949336189017923775674453040822990439824616246805519543929707851945098473927056544270042008716851716027079623224711730974778377326915133422048907122958169713990519299776698416059281692733210643979566181910041518329872751179018253270647139719707257262023136144264456711722935180685688529858554328419108690049563364005105466771586859172806260971148104742495554726758362725519413722214769977416848287739592318975930053059186027499344756896754503381827443105687487438771983839423366406221178268902024690018690208757677308417920344232144632269131532626737883097542013033940527441308831273485854056119346559906099644093274681108453317837115344896190374219759051755993113927878101530892005106178659982710392937680067088126121575183933850308676810492777087760148420806363151179355409469665256149906197148292419854117760513361028459571322893209972301714351158236132687604269773922331721492576279302090889305816647635410295921806352229212361517460993702344792027134222827058599480964268355782057186895368374870817539592877764048886596296763125798784635274476432897162229834607054451209379132440418639379778861447627618270456759513814537052057528256410458368455675341114220517496440188532773327648012799638150051206934780526430399214821575889012915265028138513588453442068929748948722535969479405671386440697193753550183125757175507879085620625715767796631703374879361507286677685564678054395986298237161013582342783384430783240372458987080411133621145121222880581165243462434401523940105095766697857662451180817919476913490299013035369518434050405590945075570485416025803539730373124177666217063307092288294725146410743634122008346934388460798819644279814286068678550767383628998377157094677413087483132489754808442092688490896992684587912906749095024851056020111418563838365660498089798983795710920580845531270010487764621279545545893260879240688669404451827985227491392263126764306838310327457339403990458830883237391831356827149065939441062391388275432042851994701079017722279699109785015923699472204871879259442283759023033140858369751000519873285062244782263436182761491392552796505213396875807916049582631235517912048021988417448458214236869675738967182380210307868510519219033759147186840041747780610292352679547689756263820027542754041864230454506945770727181735886912032542404423512875661889814951421442539797744786656808922531385636333912703856562705835359434810652399562115762752712286207468986838303272691919286765994524833079577182534897832140303341661975627571846796606822492754051608651757677362580125420970304205192393758206619613101428856381747325042391005351439600938758701044407468793065138922608129423357055415654025350369529373827629991104085530598624008290996296696775180158614020883819750962860925893655191807837252179332764843846499372678260795828436141238156361346044455579683747978033284143334774535409576768146232619474362314747257559880073197236074735926086654133549192332069630928846037302279573237844104888801337940354180654676708690383114119342993854868333938137598283154051975147664214208234425429057793424553795988487406696747314227050728390159379849151379647279230861779423174032327258615167209605605465719014638201965684237996591266612236161728266193953189287697022755937115494937143142728325544806531057309237659503005177840282426185475982629061431950710684676555236432765221836625804129863967802775049728232135616375550230284958622037264655178253641930815237886573987180268479832222826705926638539528353637368251803932298238469636088879433503223193289697579942004548151089348458980405092192744833819209851029588256273878767122830075762608707974882551894899208861514137295061689833791222572869025827033630211835397942378578318318277414372159962754875749874462462955699927280235354950851715698652393877717080942043090082021541657322049740937004324461502923671958462394257151673217854996473340958307846638506436868683783517878527023863595463646141397412439359994738388573893274009866849611296867301705133642129552219442254085153960118427045332584948334569496303852560853064929183280945320544939213099152238471418626729123753171772877421033403498853346379041896574154196699474030579480793118810843970145674808892636785801074007900620126649656568747327748254051977629271770416193664874599490032499015525654944399811543933201573865846554105038406838273340995960791918430358271606595541220039229191287622912454027808138102483605508489531830386505255445943643089572188849453853867373929436194088870282984544596860131163319038072523312886735664934525208985939295603229042361259317770106407188276193317107238742063654895481326525575382722689374276505497894738809667643425172997922231112847579159634704412679917646169828529645227478262693638429710818731848658344576596000193095952458933513129055687819899410800102370802070899395439957048370508170190514463153691704136124053828789480067696391966483705897422842405917418765109361086758387790399727462437840457875581291880932236491667681252402379343509287487575547595260376576941458900787450176271376837851442621061104118086133379345052823757236766437435371494908883579830678012067577795012225281222297244459886090057743383481040758440073473149563228075261502944099762112092089380654584030023811170556899066553440914623467823452579466620956054598923348048961413414485843893940388666561371278140535697303191026348006900903038183494884938085918422926686355270589196773318435804793727411263911202264339752237715989097896318827293816776222535658135884873996023443452030637503340624760503903461891531206423632689252121370874427834608735606363535529863715940631809475383635574056045458798167738729280840729152895561381914389970364901604339372107405248552158551951942531135644612788780596576783696485314326536813320090983882874430764373073918327537449289868476127186611742804399881614632026234866667942944058162967197985059019837605428024956890182004680306962257269931442602416558383843134853502775251888677376230033132476653563421282750815264507730296250846248365970535719248861462038519100842838265281118468909155410816302297393401015872315955556396608148710303571974611153240103634663243184533208014999528099834071429468035216760530535728997600975556938511133037129774770609087545559752423363952081115848978411370896816368068069412510578146647882986097438521541844887075033681300621625119234803590488401401634388482205203298840377208308023536398019822857401588979113302948724160964937504744390972246349354595529337413223033691996758393034670259009081685952777673676772973027142754317578642509366395771347853286248020844956300451249139744611768867366598138214970903191158423697760672352236489015316468644368736816159581194240269572922695627325212423214156469736593312783205712185557668076476463639495323890238171139009316783495970619260802655426559465889850827242183315491214539429591119475764050846570144306667012352271917691030188569309807000286518649548808473691772267289265567502423920892279577936322580049872931605410312574912702041951695675856097773843681763962491874187054995984607933453182987290827261788429231272080512980739010610333832429332123824097339055089635488968856620468366047815303978109508242220674186877106047999397392457974123529533555930424686977185255017263244029414371756375240558494537546325253699973101864202777897305915470991815300245171618742152776276790372606873171185264210925251366726024098568498536172158423199898501133127177319711780148119788085323058944438626462046004377924079897565157152855771610962405426204823306168774306746126696448996477421108615998023206015835202301647603763039499414043197479923741461607192266802652945670927277791464587198746023869608174684186493448288122298718219151754867115690877833842988060749880140408866204314031092521411478867506070585996794601371938663712811445324727758149854367969217368607500289800833305117709820858996734872106159965477626813322531783321541775217375338997259870769152836592382065945768649922907969368471849309194644068637318136697321447172418869294091847120782038003628936548996132302185494794442693439381687378018074993728071080225132180727054649751776776631338939725072994658646833376352394526767764449469601096999533905852608429875231633953395258981309462496045775599221432777273080981862314921371789391758935479497565335575304736691870698199672537257557266547373557492051004627546621105432817607056402061277281327180329618229391991361709788745592851607174017743580617208844854563548366300075696900690668292541812424809371091916068189646269663318184890368515142655482112292083034531642324388401646044499344918992077164641072414858393921876404704413149684841541723491207673120203000899776007008700328619923584562145154030610321621162295858291920836210730061145341682064528320018407691412464310297732190338952078703848345917040790066422085845585780227655487594608047281673037879645626564508608802830359972223210012396094063670638755532281154774550699446690753863146970539735401802564857173367379703783767693414914352495825319790789702741986501724054061169679268639628290273533837716164134524118790690315707180068530869234396948473077418777488324270192193988174514210791060612073919227249203418414507652574772911737794071220277420886131291745827381573313102456474069983637383626773567849975606272646501096894588076884497209589203261309205118064443739406754178389037994457993695399389063388393290423999012045363290286101160815610072032466086012039724638007765962402589795922126391851809708155082832977229164529395008726229732439256975966200956107908096679234026615420795209889209917474775125352687693834279983759007740646940643404721416371607783362986852371989569088185977417358540018480139658480315835374356649419080354322182934863596233860012510742135588217076856835325064695867033451080364407900419256039384584765245649500310779588730309581371769148710457580355856391123870575690371690580219859552426102057639891028451395328893919472361670284443705418225365995753510845730219656048805234715999445088350166968258864665251244224116106329229090953057862365043775594422673690562563275518127804158179227218189603443073515249155964769560702019793971352544865341952611516649393750645319526228840818658855113891896602742652011863872319265562882938666022394939703578637841899543066739099809362975981410753677477575158741565811389745778128386694853181610554762221888260407542174291170260870893173340715367946724604131916181531241835448462652982569869782873640252179841168247824848903661852343670786543294724952340653269766994142389442399178246297666433985121314269994535338393851115203586470578064026618193361817807487444532306201913489916865474215780810783864232876276721573452116036734470711627739188429204234263422521096658364778102992671517534701097657988963250071623670564029421927217627598866361791582962180205841888196527211511705418100898927276196398953891683970600675893144763724733905099895687605509309221941209656512102469164873359181716854488489668683952352566265541666713541788602918335155804637822821526930629101644682934811436954772074394614538423907615380777602777048656023805865348482241704254727499435954305426320588599741513026968584939758913733621737774878814846567798827002970398855920446179304007273978090617987959133853424993838192667306595973670869667371150206632513264414477005572283825203198601439260496938915072260489774807058215676608623930701842297453441741243804730104894464778401761136766193412350100598166542741110550339493715371372373403915430382438993193060936697035587339292581380609269442110568937886174037554368098521664232721713250787024559577405764503214721840042228035705127643119390795014317654063745918421157013621012103156604413442572580259750289881652768837400958976255921596516165789339078914409923067515918725939692470595339265124119345684380165882348078527540211992335587916030620313600974474223909514918331424982366157458443721044163856264443342210803623003699823803404059464715772843683387708160095136626188704858951018647146982129001569675269037479751067763157210893769560776804342033942079951210963098131677316492217106583647072823902553524215521199836023744524321070277994236357058056280924551698357154642114714902516050418010049659236840315594370744807135393230709632572306011814901280455374357383696549767630566714771952277816383632040453214298013837040380787458857430152202518868736024435896739947111805061889294412923677167845331374455084314560216352315272538961177801879388634292771748630403145297883313104316248591182423620933215263927011893507797030444136149863805532251191295986381009586519235148674223125427020782313763621469158316265768453415415072101041345476110760862338448149158962865768878446990070452428257781436092196758077128021900271450716845633827570580152365239897709331190514660954497123438057927458791557998254033273044643109182598765814633160967478784758903240815353779993205648336685986410173561959092424488303106114390720389898616966591415900281404094680450582064074810377393574897561781970505617811758068215325226586282422115876405155033983222792966023244984044335434092216651703632213009849643250297786753049838807600079980389450176349984844794320180542895743285599259354660714167805277122689258556766302845009052428501604388807842021551197593974264807929085079913890799559138203993802800750586294629305387420048494646621396871689181484073909116434340288382460607544469404160966853761955930803291110702516351811579711083667144206639267736299974314517449054007468962022830964906992995892132965783563410805910655714326211798154675723482650140963345768022613456475337880866617083512690003824291232911078941683028735730718410709050520017150953696125608045658354604714205887144024606937860835022438780621306380230910987393765561499531426610438571946093381139838954764145973139775992729033119267976969512378564809105757026658958618333323546290167831602299534858087172031515859544106284048350864732959215716875326142855888937568897670920371783616461915835022762954289515687754706389409027152784414293082122793449986543699456612463670536926700559773926053345153791147104941011078152337895514895350109603181234129004826409992227562312199066426963039449169668515439885542135434455942802352885529569023504971405553151864117385681627571918730897567344218314606779157631516129556347434123293569146738684203659452816214590128804140833083850711777428587029919970794947867140712602294753741556760610138144719054709134651742837527972066249447665349315221772557398952211952813370292454148801839442499209511058760197887564085230544105268683985227689114488992169325285951260631527998223321931661885867178175143352501737990700207888132670382104730704145542063606596881291865599488600435176252435903875048324186307302133437441932991727732733976319559700917159587919118713114609093420376907005209116202920865111625444516886543313977561242993571024912386487651001050108705541537092251827704651609219502393984112141198614067081887564032738426536179294797566288713134754582823163324831542237517911712929249937127892128828858429649145969402752874373827992594973664293639710936879342405004400120405917481352643349621559310880384537127368899937073284225985065375497557174883942258582928854469209268875776924976546054498977202642540203355043293459624765947009542874786148627747700815545205495797786412451030057328207491120320639718643211713540316333770475687869444896100184027808653279427531199261430908300080281490101334007095996613489923332712872331485097801130446897794079272205276135632061709715258535080686033689383264071502051480832788950163094787926248630253489860363218265614163188864814778206691256839886249996315540261350795642003513249894353735856468664752471596665090635688183052917168596215305848151640671237845072125599561032852268304776074030875400685627351412348723522573648494804749174902002312418332392913167703215606297155797902910245418493447305104225269586180098241398274353770386117675455801312847469462399078085199143046516477621354154920937478370288822152703636668760475047492527460745013534524405274226979945572903018809949574203743320010491467913591525485150025414661951874425464550836350529674276344013446578689273511895549109917202047608827145931279770223968094946455107034077848628509813349479858416283309388347271212034198577277476353729427851209092115853324121057124992185368803984261286929249697611210863662406960663839370762807637184845539471843550206957539916564905343384391385939528425169761908277027009237796012249618220562714205474225350333190253513413421420349837813111896160941955259056214662309809694716713577277380349461314122833252505562535540348516237964041657608161876631723737731270047462238032572493173868716391555657616692786267895184554270494365288210713029423583863647649501400896453614114753730126609328549568837631815909716557779535035646126085178380271261361694909559397540120078638522608581498260327204117722778504214413495355481295800543450507008361667202076125909106076816579156333461866052455051028510167408167150432117585044755412713322206988354784737959448483093832933199385193800027920673770289038940356432004215742565339909160231084317862678540257862974405736014992591691846497418281698467066925639653822933085214748182849300809176423323099754276042253605925608777666218932555646203548777881234809825642994552469256288227034751296311982690092270773245440242871623572702261459837153402031251007435593313600844406335202663488878011242062932160689255338189149726880134381585402733412880974749996284911454691991194288531023024679803513712541388283675332425293360859058936241638904289080440626974387517426388715788037920532020676488851157917631256580809123142791238397588080053082365259993470303100523171635501156314929850717434692652387445626605433104034561701064846961187530759860094382727723314013130881518783897638963796416519692577405242511494741838808598220656358900824791713154391995261346149810436838951066157484233868460272548139029058994115560051895302289505682531771571258461494936248577328938835209652989262010379597298198592336725628497286244946054365689082965808976322303424600071377656407171677238350187395181401271060324946269241484920405244234349303840822525390506402140542883097005595164946878159689020819806312091375295224693486263632638653176809600671682839550971321917802154051345611415795614497769083294450340487500192467495967659752286547454556752691832047775547733776459834685905341976115454668297094113207102320796819989104619809121649163340833348303970354979409778506753427888730840879023407790612099813243469647816057715238638969942336529909904546435367739179176322004817118555710511406893660712437889627504769977063556577577406202314152516942701618999311622597415392572047118218388026114082850034947884033300545284480909909984927867628836564471600659456022137559958311197547957776250101349664301025677155382062811770611010360708083978232083681820383885122325621092410729362785964329115369829898313068450063770512826977825662078589423332411276899070953704178878517531268859035700341616924431247999822116039134092548601637600918921077566119712568755198901482749899079952851462151615143419554345508803438963848707826865174250193580972675163147321992506728656061607835579732669603864721746858221671280893410303624804429430637822526692417985047375104066261131965744437393801533369357605692311341998022828137518379731993717923764847156068609892203112482182470408435373355915689999915686962786630058125767083802063510826029252666639102610612582322706034279443696442171421654597788807677399666626960380760419674658883624126779747305028240075612335064593568870868124433208468898865544737869066087293494282136268654664408786421973730765476868547026168814529933313267453643024681054049207327024416113794101186115989536618372328418887370420166145639586475436151053242663203114561623160784524991366474624686911033032189224560738710576577201604130295633446728356039086427704020135213769425495509298193220004815210307554016075248730506886454170765118824430874204504785351871458550362207745221474433219449252842589235402429858679222525624438604080504082575476090453921807802956914264407407229050484893580556941651348884921628590996861803796198021248984903203554914347683498016346021992897041865229252826240716979112737408104717617787811088016759317425608176683530695201494094205929537711089381560939601648922764800068779751345190329655506041794682017476105136217383588675764426885758427709668236198279771826183469951778153874274397709088938577593120392953490524837957292433078906339812444445547730910065568264979967372117862777959241773137680778174950314616319336670040958724518787263023682058686632469056030657652000356944256437753936262984075381832146340787100571158297046569819176824059112872775991317667535335567576468618585552051186097851083957508189905157157781971954352295533675455712241901202255522253146107303839718226845653036974159669852519404834114795747616190412383071996577231159259030733987253985868604371906291028952767871821890935426561759590905979837841060080255350830869546496359772513353468406864000920085549663896209268910395845035948654530143225981000920380212286135376343358178181263456869566978759330623457696734246664522339827466730909236216201472204066015642460393172358987003442500139367267661317994037222682669177002387378322129280969755220635654507294181199352389922869777390994914151747702272381091581997886484104845242155852382541423483404221867522108507273173941535778505233138923083974861808366698768116093931342831071754457012345574981885517970389687250705725553411605504865714168570106317012530677208141916790711822705454614878149259012044548037190482688571913798302361693325449482285286017512066333520517449047526734170115851155347622695471661548976242459356855268673558317913640172277504541414655708000879082481842101967464283906574297844544010118333309540920487760352112311891252679239251121792258027199817512019870524163911351646301628124406813902914123924365856729005929039066943368867669479065753274889110179612517004332020423313142192010864075424421381608169942501903227268166085966252835459240841654558020536819979078247111730973348865196426160749673360894120582735540268982960443390924149687747312605100056710096807703727755805074210424106899133419384890917136945036158148308274465709982730847644180725922708548314174425536732510743381099771780048887680136227702002605932689540436866344774636194088389895743497244869706818328768822444442139739853032220779814793858030050156976294018972712006029534289890418339211430967065509992232866098645702345757415069964760828669263515628538224141670293514563050787000780549032908382871739428958653013808158251217877517580304118870592612135856897753861352922430978737558944536214831547258261425541512305015638433072905782115805282122741625575689105088720818672791624057720081719331653634513558447041691852138181684239558273376514776262989808252635754984654714049422110375276270557984315292824433994548359949943521768866979522598878958907298529218300817998318715551313107585484227814652461403217933062022660171951940091983258652461970772203364461890928898312254177981704442885567652415949434891090441133318528719810523542963594917257026931546816862997323387516602327355435082910736723542737090763593785380554478468800382616968707514851208564837811226342939323993427466673160244653650875112845196989772539810307527356766526770835028769995198226223329918956051572310545042238177553707274361163572684542702900781153663914746435469553880724470743032020157491797681276848647621965371368908184900168044537365139853247365700950096477443163760354895153076568620417348425836473988294193607254572436732046149091369318003772347562258443687439350136020291853337772994428769926454474487882683528651367932683741822397962063157431740648554253858935333823174041881896429256814028638324028065124807399455611393757668009613750908612041375528719896741986288969569687092034365541749093215951584849010060895490531919907583643635684436787415041136348606053881715806171599872603093483866076161488713740911058730913795420917696096962770102675868712485306135707511503084832894443503932649454420493671866037148770640266787338127753396814503172257893600761587416393842428888270548717792792915052091520346588675980359511707750760966598906449600815697789446511801896552697170624518629619688410526753465779960758572998974863373541383361071200298309081116222409789593479914747421160102819726736593394587460167701163788736327056416744299416058264682576137782893597637491127409617074949501553592908275434332436742191894481869486957279366890441827646724076985112770015014713027474964514794725362890954365353740879328055259436865613898588962635903890533544938358301049359003714744416857546929260345804256890175903654283809157020061155207738328668253795173218759832930079829787292417768493829675551110631020725735887668161255249299436879791778661800475433122294768977203135312982658243339582143995137796590249263618966218013273283462722166640488252119937205843402783457520134792837542006459494309090680763069131079963408665869979465697900059266050244211910243474732522138253856319547789116156505519181686717962740004062644123345796560397087156017988344909789531534139899242963338943580325904090398323694402079219558313271716902862156943898164719807407527904944862092042861480952750575617939660567326883669414848409932524507958254237520538168848596944174677062680979174213871015798007950310928435631519110227109534731540743569531433686690836232053417319837191253174898423940835434243750162771754570323210324966389206884797727117820761247367051255970240555456828567035685078401459150495243444812792726033462171862299433766382233726170632095336260588315921645307824233172542696011601565740600983884684198935771521387889280218954895875487848421623278960815690974120267874054892536641902547985530237502211326591137826211006615702980509743940690017254141748889073905186458550210058586055201731209404084503957987812726476116430957408441122817367009614615738769158331125593803018931532909026906148659830869802109992608221073161697476330796688563536312911435260391623874228134419378962156284527565118350692966396800354036067173145274083895126364693231170800345797434670251352823609109084301600903917732908647753891071026927376282184412071242560916582150695161511779929210145681264776702644019191944411839424267102660844329437507115299490781511833616367158700833014103525948321127930307907176979160326380052881824708395269193279164365518065602984549280534293874527380713448536042088330400714954621463106090270284351701100733724357234036214751966129305573918296066940775558578752109825746643434672402361260298230509769133521048480627137758880011510578224385584660540633025240423814783847077231179274936563400933584972828704804696246030647479321245573947634217815131064397373269484498418663569308805498243970996150910431107231283432009049880808931613599429359024780335149444465868205605715626359696307387451697773305384225335465224015120675176854573990704916514824880560366227756052092929236363914819175257310009251180674961946004106928125158088991435200038952432050685579239542460456188559750474598579682940527826372383922941486788800501535227892709206029926508226847351492939398139403121694498070638597705191449180203255597295935535499686730727032685259101537927165623796628312508504319257948551411799236769846983867862221665746226264634927449735609911530154008564348658926707306965558767207267807176580141880183536077842095525205677295511554111741389044648151512612003649822900396069103907628175218157469985883343217941661914912625039261463962122817918139181266382876392727007072786867022231947298588338106627813767728003653121490088059792149214097957891649522011166246696544301490756619974928022195185900497046603799970245049614002424482048067882374831451521063297673543344583374102336283807631030856988902033225348982652492446559047251496444610609073901150890280260470326106515554096533676132586717416759076417573930182076576765734686256394725823392016609266809823191767436898854907845943681907908690593830803961860152478493432154693690994189429883854659272181759596083925615150526101998394908040556268964693980352395851553868321985622794116390995583230978903954969493414593145945756167172429322854555191807905546734702287047724327139343466029088196897319930586604091493246578325346892121323513532937246956767636466569129055983393788454109519287671939757641193467101926010392443717424129926809040512202821005735889248056454980640095589352252697976615659349937725142355497665797112775060890105166556264452967360693385427647011018985703722858858744452529957094367163300217147892654515567682555446468515570109036300825272340438681812150269278748567705208701154451073130640145117140289851917968126256942361215841830401225557567445460215789948627503152371136495978539933275285755031794425585810521188286461765259445551710294441809482164367522193511553246674047179148998118153676780555655601082803551273203082120092956051620112297143090077396144659722573579378726830431388338370305949262652022705614482481574049607187580435984216746486133133725735431328140409064423003810561595218514127444898824572833782641083394467537267657968198999234814961796543634972263832717052782406462379141285116130573668416481061771479155823992414472793369629487186196807140618702607680604061501774875034513180058014155241772043008153123931296096250534014058488957389469288995192911994898435105646328123423527170682860083762486137306927393121505966953718922405337998582627886655630057707489105666655426493433375567612008647942812131783968519387666837860579275843623406869845340191097086725151363604807558328159599726411420687400512336731751915402627997307666309823110572371991612041615225560261607004389236976070814830354624978095220304199292824620990799936070489103096998577177258731157014686298516781616909753247589184978555578957768334817718716829456380923265431491808716846042777567004679300171082986879208853037463127104682967712788669929287087724076292797904635746627340850742854742529877604463985226293643933169671720301817477166360292477474610980097052032797907781286186921448017887059490659637215575592336984953281429065411126862926942410978409495371718915499512778690163070818302457486064330598494221596005446700438490351526330090252489088863711281775419808401321279842819804948844598982929259948548849438046845160646970140379423613180467590772044411803320477123893095257644206435179510768014284813366596671858176952712661466187109288884318500086356817673302338984725182884385480785031386017422146461261869686582824929793936778431687722115856512033353364161563060748705665692313732348808713355857144168127381111241086361050163365471887621140886306890819922774565004158421234297380460267182745926044420474135289795730621451667098814809979303569680200429940600141977690328294251513837127374626008100562037842349271876004433486653638131729408809472928451837180972375754982478933643129833865731640550262720271094612350950355281098837765924222068714423143529861058972049558075590583163984711372363709019472583767469377162278339011043732163258210201142510318399499824647843772238214770650063475393887480063799427599753033908192933182996181225686854426890463419640950372604023993925097867401976896489740651693516913769439821801038607304413662591960049699116337231553416869677522552053993079093040233922965225753118792436174521128169130622732698604221395920333945491331042635689151061047365606207485831042903631277581151625836687494173770411665461127462236825733171068206657983928797846153579136845589059433989700196992666447004777480266548098919803546408272233035175273819712155056334892434161469926540694398103824336297630019593818873249727016160050663975206501359092715148538410179065502510685750192176897405480678114801612461956846526971305935044199941519882236752379454139078929607157314212395218612865328451196271023918694653980729999933985501227994032727322019404648904970709937721419603058720028757797816262855539783167566583513858254783538088563110660127072617275597613268833993707262001134826062492461283514854913463819246273723921618226429864700237937948841460681942559969968114080499698335136621791509542976908785348063814517788939337138438707416155538898259655848354471632753529233229853901519112973925657143227198837782050336180878250891430768910154723922574012275470424757092123421352120341733346745601003219042385982024177545676811283032761475957927845418531416985577238180431640739972326721603264149240455865429775301647372258976149462849503153193277171220882119186645900320383743912368643065025494989645479746696733094021135958918568196541071668088042810768278681880964755030805247351263042687043394465576154726417429035383768477985524803903285796670504810714290018353891466628070566417002764042566106284308933346927253036605675094606432740237255801366283014943772230663719727137077952096450083410047853645465340296880448866471262389320343545145096355534198756437375504325079542608076970410108423189198273229231060911800172223304275317193737027930313754122357275504332255685059658546543592511986023549666042847497281181042569483717665613310228889553291184119901764200509322917976645293666949242489271374396214778064318951140266992382614689796253439890047746158706085937634117789886216936917518945623294653772190511347567780330072979271108066378518429216323520190047511623187277627118101228937639357310874555334406516083373890745186308370253761955452804863887434642857717236762337688402117929912429993687167139084440490042656425407535490115365001588298064692686815392202337626779799096857025039265406666214482763896996061941394253069532518990884717571677607365468434461087410881263434008521307319276733817416535680744870881631898734505704245655480917013962729491038041312833430128705613450027357686268871741883137068612391999388789843172963248042133346324659434810785746366766367402452419343152264903655593998368315302788679437535065240487145624921192789420011611032433891644705271234486042899107383526660026620148932387582028606596194701452334461090675315701414671741885178936289418547830487362685509160806557511562837227324432098148145372917006023078445321948140002236264606811487879402716592428342792790701283865127092654031242862973858707600153238739062364025813371381327563626335464145859060340083376757707736288165748868756852770066831844227432849269794037438758272058209922707453299102919054941708195422781273331373088588686055832581817056018622148674258075522807076551586945268003878510792616494092351089290175561141349727628349836461624029579419053582670226509489013228295719237404404662007214154311730172160479435165719910234713088358943809123726537514321391270037837591246572485031978990522147092055870863039200282515065192596750694631228247870079092813890499545648396678987594331533393362628015286061530945681714733778851892725872737758872877433954265217480022093026759046700772871670639283485345226937863909894503957344975068733584488519253516073864985917146786725003659183288530923656120955588224580273212796511763614014098026117017940993334107642369846926392964021463084406402237828976276280484460975310616280153153260275481973048129602842292467976060216578224997113764707788292241584268923542382571988854592034362817701407151328666037366323953966704444813204827462309105851632885611618098110246643605208556197029472138536343552568059337104111028139335429819397964316689783132191074888386875388466206849634392491797842755782791341307007704186167973451363767081730493996339388237455702339945480416736844875868193625540811584548560486954273528017663695857198043353321178366736750362716933964903594305992518699887681969366301148870662744300498849457428044646700561205600954313595867258535896391553355302049965345702424419730223294549219442141088733537788097814655705089500538114260836276797923149869783038234085411532410393273081884991013143475188814095948774227007685183671280753334792058658844053741499555603329106719201249290102696588721723989435632963654178243693387413080809717482318103759180919086844087809419827762479495197060255825200375325482681648142377045724302055120299428624800920535932622672123767346897322442265569139357479183814423197547554387147619537956140927270613843386537829853325282843245004044003181138462705465800079602993510620998088005671331218044315008541539530504303179211140500209138951888508790704533129482787094534380032947497099851390839105069174121982795084261328093972322387298040752756564537361322536227087776325905770859173266155586021047910642301144471486782660799468178400201360215770763060651566281552248595715926455275023344176081321749774555178975051566546612124321576636473404373546938160503477657440283949141288678280899211120358678652069254797941701443533644099494281666312657986654851984051463408112718014757247404256122858292263832405940876479359147380878248717829959850239459409688442243170033010990975922989602986988309556312065504583883809101575527061243579914276765997913763817100087181317678937009072022275382547152417019077672956936122035418478178790538955724924259679073915322764766764962081644767060119972273161791860222311852496634441767060547298793301994795858621385808226278504972274315907891445911436877086137420196398608370544150708765387699007806639966063537862803958694526185875837384654731815891768243427119417147128866283218425262034820135082768514981055401129184209967765808706286732074703354462086527425479711320189189685371268781248154277836131272919095561902943522666903838508488736245578344102409848180672612728344417753179427876805373761398193236677108122493971962196036529258771864888395335805085549167693598347272734605857894280192757456213836347191787748428403515880400318619007550720675566725915756263064918162366118795416405958349935768862961440858521752382498523620962329226277933276917374264089206861262901393105187251674474683906231332576484738163059371513922703898378299638988588789670562831849657086832177177231951123953444636805597898725289654384763548047025786868413193210983419939144613099024724671387119594595958192857153406726132226414092401392066286977943430930995635260125951222262700905633153274145559513130441081308193085461208989273726330059240005236483267127924783604822323714437314950250859336050565603075907905609841381890989535445568487538792016983782684444068555856637543097705764577899211314302149415071311634269458530597275616811228131259012079851759957784471523424420555338454931388035155351762074272532628989543542549382812418614492117529132124861727286206061889678380109528146298244987314744483667452930506516416743367794031766759121660696178204922025234788311623125822801229389275324084831374988711289788011120047427283914633284329012344125955466464967480530005019243767681427426505298199400429398310945662266532534939078613241796372389159698375137516601805002734473947667562173958585842704096240962739505151868594698613111084376668869676415597425043644888514429737726622147806986239078665575757760750217376874863993838821123541835998690801424306870406300181934903312242466451398754734821790492714162212814131089759444636181114945428050241362796690418641335819829992515786845874306879886637960494928463928900753504480574075241978037327407494253457752737783373339555520625745726405445915730150243596465095403565759272649555384238546495354882085155075237430165707453649584686702852795956540593254920208530741945755492922839431951359788128805901491028420415879809812398944437204734944808984545351475026883944429240316891803391272029381828001828678058170370258055930459941372208455804231172018270737481335696303659559765752811057053505754517753707976211538260384747667207901502787187271936549566691458973396814800717309897483778361460916915884659332680586601411077317414079622463205660559501529030143439023820033464257077168037750323128806242172625990719243235338722935624987949874291438238751092058496600714549550362709197582854743544739632227601266398182560470391882293074927777628211052415059735918444053506622949815956341396548604976148826880908545156754927819856045687162285174546934839727190541054609998465449472068882188829138032663016003634586696415768527323894546582242204301910406535302278846365371953552723146892255536253788995134532531298775719322704995652650440914229573412176911413575135354930844365417672325363598476876097973634084476087403778393938439780538438009273797341571108450212697690322852829753188727582336507493529742126447146060827344245610583761162505211685777276821068131542382799024649186153852848404817664461010035545534536004979438603307889989690366409341761235520999449896490984146873495887384978125790738982573883850278467531436351906964722494897002848409913255358647021450790689822382404840959884776482172292713614997371261185684780425469835793722987507288870168031718151693206225669498467874904059110829280994184398281303914000871334800912442659592029976053570873424910201612415362975648913906724168619759124667806726284242200874930920327694702534977531252918428130405453151167844956327302974622049824714345072454858860348194699335958280831988560762110638779396672925821010053505184705747264835539969466807530201992126570145879532592141713355684156479504286497718318729535224416517295612512699916716024782979750966680846860749208230337172556688543856704699909569780491922433314687236271684419647675495344021847881402628960502311291704108466513181275764169714298300171686320708949479251601575087015627231387216623646917452316944124632661729533667495250713153530249673441884456182161244927976136467390368409860834462256550002628772941693742131786315180659525518964332019381354031488648759884099184806548314188211518190079103280739083804865577684451190096077830389941210494965843963913661093616460506775205572426689900127111098840720595379178975713529601707509949945900475365505749644010467391587710868572580626689010278500179674761068844381626626336838811328216467982776527974032804996954718605076585231916967394463835850466825164815371154905226859781572320849986267874763314514400335129445782037310086021777602341288106049464595330090629363448279770953494362719215264520734086916508319750518254819612167063513402313133883069733686029663650039798701210053218590885444025619525642635627523469897509535889693621662552464842343667557941416146649793369607518015240426681000507420972644310978749210096446975809715539651436398958341188837442528026654918486194371133787551394318648193642131045266222509974620475157163160442097143050377270067110070496234613059853177814880829529108973424817727712982277189081221042525807267100095028764351339490982903342634143455856499033469301133238015189740604887989671315982609832330355125240730244872635189396565894008446128199301245194101827574989518683568872221630749990846462677257119655602301195698216791870798501678541971806309725679418864396189585197817166529408923201367226274500355119317951952173624380656239629252025422738696672829185324878251057945941382776193781408334632455291032901016063017699494703800391738462736564264684655986002477347103159786869466883061888349691665015690255997393607586803011078718226330324491360779787876649031006966733985665813982954838368382778185437920323407497201959798626873329230820199702317915960249107689199749253806878730225079120580477104316789138659393405893061082134574189150015283047106545282356463758410397085296753957503396777321087862933211520592078977685267926904443340006376026592522149575252130926722324603524301315407404914743796968699980865912080174522383919900327257292063161654349064938621397566649425017783127705881187328212184194703832584092395069044277232570784630369479019265064031486215996779999584181041347829773710733265209093777081476145589602923322410388882138049330264876033180822482891511281633160130602714364128927822537948259152003899430182161966060764448436730003081534734347368506975946191139583736387965066694039577419617210436457173381002127445663640884879508110048130155006070689233615417926156718730217600795353902103447824919555535096944097381379806304674256123770032975398062585859490239028046340380893584491726012646717092527524542044826858225979187504134310244676291196604923172030930605720478902214664784998183325541237220778659951367036959862626687869906536901831299555892882919532796897078330080695422706303269292871046170397802290297182470848149344741205885281022764773342377417643303385658810487702958147461796028723944784616459206997889357917695296465289794698972656988038720667159995252196951079684534892441857260148108361202802892220414627892273417794755126289177317763049936874937126389333691005911440534639730233158049993889777882451857035589211556198062292032228859150784179627570570877542338795383955703569459605448854201232990292888553151601724515430746692837969145410164657247601063775991677278583738844830638570203575195598641744884730286287442787616017626998472109574981880557499144619545445133528963922579909007816102548412021611993853459046440921869663089147573237112599651011198932508105226987530998514657178118496351897317984406665746747054589046727172162847464606681768051078015825855941957930136661543137669068467722409489783107969338669955016218604399852659578188035902405854943589370975860541322184390872388967817935322474827859342482305890620753403693162572068529504885853697556794014809555570861522838989439576908410660582191101996478224224177247741544005132893080720515201745917358533256624542625851803386407304048089174447504791986471481489140508458987234111430683969784411349179401138570332493150135877540029153732232277708329946579552000027020956126602717033761370618026498827414342309082518989319840474685718239414445840357039593372799428761020825089884242227319575104700223772977091311273947889655406620909221899126212013296013027601035766544810726384232053946943618773239323717002665514594647642754857897339553443349475060695413666840750427698257084489360568194171140554446166650401505937420349797448924406352781635904234138824516532995416632403181184212205657501653358571019349715331883418152053752211360063381623875039389884165834157935584190414945962989088546601567508152222084024415777436999704232525707952335769674260808420665511553154767137151678714119872252813711945843437771513915079310899448549697266484286768566398740114783956039062814425173816265974859046419392288961511699349957923934311719181684652535176129643416621568904126072293184174558267241190781192178272091064366674617056300869246661904834849286772749965495998279901380878462666070001195440177985464474061831455696813165111432481459206030720497819396725107900026673688696160577880987731022074599645456765837054373982829889425953383878606466137343578214877298878415498940911695042554747528469378416384855272616595085966276015788599186400405789712479361158145670262369182792921837329385546889655539237215333661397087719858652645548470412067637924041405410970944002710518109844853365848493195092419325790941201388292890312201814935920687677319790178050358887706660826065321207314918866625848790360212266062593565220832858300317287480645410731284240846718049179361256120212075833521283707949791040559240539013818078512912690936848894122269659687874422939554727372677429430231539803406901005507964463589230855722689706725433028668245610748714903670929290743281511672271973814825985981813322295858449588007046659792703025409273316834351927549698507241744483496678606351658588585640663552541477423855490045731655248911855625024374841354029044354889035580410049850743697462073685366838174670626211924337437449547982981626887859494725232563216778172365388313776240927459837474764612861876226206786854012198533347487649180839111632707405237701542192166597985612662194987465380519976366815838739861130168691315227727438098641237197584960408485602765644511453069173110632372896929327392916954101412566461870581609544037933648269630585874092617541650935304688631953015116345200535559290273346571857140951102743040387006247677200678430746150222996693958453379283904667103980652640348716807979570828909487051934009086062262785265355678175233829749870940062857495251663587256880870548947696227495882268140684371273359312723804970082719490184003470528747384012245556967150053640194448923434859380191422956323773143556182974408350153365903035086430259390094403686559564846710886138997320722492340539280832678954391093848593248986901771777463098048329647301118269408044185193904566885855022961883458749749952359032014732963933008789074318725312235915477410492603281322009816848514091373953537415797587573164975705607719688166828783507982899005822030618564854931186516866633792013985856914363340948386676353606278725228438774535180616086166469467650176513435032342311632063301681640207908242280188776247540758378181410832488064289028425075080492022726575713863767303192721748493626641839659178331869507677226857304241309711895269304724689123981176012481085089743655546150514585475697954082031126810294539261431456299120363071001104114599676667063219086187592401286172448818291605900303872626190564922858358658788868508679086852261291279293005118896961510797577129764081584128849557047318269438326845750310867183503421852547298200198577921989787116938853290667848321405831863762565626738465960140689246034761306336644215910155062477642933880084849222728932002775443050758634565105244638905280106564856651426165323249991133170405002222664635027642654316060177306830474353877548156002162606828690379198452169186195787403135404968930168860256740257769218840273494488778034590951167656821751827007496283549318082615326067123419736968283013103222601799493355043970848617295927222771138052862050232166981149114938866140588547837162151980046588493946892112191052287864486114268443942126167351756675918390915998562830587058884528146142754082187496507455992954253327873243768921879280326649904331478374941705508413039958840769624697784500123894295266725828887072814408732298834711976656302771539822670550280094601600270612731008464630858560881708386870391229562900974703027441561174120298604322760519433044343539321413336328106900033232293115145288600649584069077463753559236040064148636798840278452022601168284407873975670282492127355316037497563275734452909052957672671490965049142043687176869993975267619988490085993937770103369189118984096421631681868923929791452404539052852437794125987953538500769671796575740300943096417344735445795207748306895933436219916944720730594230877638728579022746954631022528718528516519851869696524587533952939898901248502622505984007105749404439415085228317591626930729941784046822044632156501432707850077212818273416179103369347668787007740550639259592126377592477606435195360772585970168757808383642632208735379617220630976398926169991356167580969348432093735790647268889230884404432141945145996016722548467358739826325497529012919536007626514759791316627500984313137515280175819832856466267793612290266201778243484410139544207315173130534781343374837427845204964513507625410879916120553786932491474364551299167963996922548362154146145842764402057152723536406784819904480626467312779933726912856316198672419089737438796089334197693462780240814266530783706590563906891116395093885342011048465477133489536711943351671868614325997758421035893881518599049660256452383700752640149170215626838220752270564964614589240481200893646976514930682952947300640234915556220004950870168507311053892785907784857065678790464766311409422632386025520596729976093911892748805328210562366176600836020375851221467264710818188564445383541373043811264027136583118182259146759708377189741233787403960310789600477642495699326185276917484818421338719371556810025982204244231997465984944196821114673706429061609711580353891661505262195964045299198435336266455500185074750157885147428104231417498028880907274974055672113582346044775589923617771116807416213836962075164308512504363005088514209876359198500615140392479699004453152680655701266477767684314087747362998386839596524149040029629705938075896363776363154362711464954410086356111861727503022801114482753939804308966591273450002428722035567319497750548192739507380874067660510370188191992480556264026198147569724574613213689207474137981988737260479049614473270018667745888394619669502991516581912342034891022656735477837282744919597388666042954891272921861688914593566403741226501436864548961403883225807791865622814635909163814627460899335663246986604582424985392403590436584219853483290429841290157756657027411751925216561628653027820055508621820469514408804767323292060985347725749868187971743443757789572623140167880911111134904427324332833711101272947041915785252330596173989168854870174421916857842308058597989292354175554984550836476912061264792229187756380438499052093541445156618646209176253454333452190871527790665980818402644171714147391132702499094049188872769925771783010551006886287902081620988183703597259461668598458101736190841680969396303414091579788446836629268533184725076316760034220675913351655463865711729847150561828848215561732751243669837107978186026943785793148062994270232811685046248491816225326204276931160926152165191958750509046671509691964146791416336409322385159756162200284390827804210353690249880780357342388852401492230882097360887917739207468098508889259223743454649518822052579186006590883441389798365976433888638982337362884394246462037250997354176126098582221389212101569299879144670478547287378010306276809277675368268007304262597814583276377211634150129269207171582452742593606087952684310947136760949196047137737817373861332502435520638676605612967470494825209777762814212924210263260953637863276437972426667122870242261623212572730696247238366907834411774897836930967077320753179950939603717955752822853375955586955304085950354628941409551836041877619924509369745939696258717822579290268671087127532470528104298067625588725288556680351565948072361574222378726015978168000903862664250598151470291126810477868370762778262766325307336303575020004017361215657081367633500219358193480804027619506379685759619560058726116594863399716551897805522432765085660480584999686950155253426723065407390990005980333415985615984126084345751472711894753140426322066857332444608082962571624580035042420774067634748454306249012065944729800578237909761288185393004717228534104942200111723692249802341299942253458732758070801449840846958613546749985964244648702805580051669428349448047548871182871629743068105146897511341879106539730247995092188559646448551244825098804040555011593208745505478583524577314414403486545186375506001698422465516731857020844619291188903659760162736966727844331130816252083627982179482169554892497413121046036020672212844464574382744249722065321177685438170473434486749759240553896725356865331901879841749025443137779708372435530205026646039538894181787265253267015582270918360441308842418750987028272328697770443433325836267101832738728308497138134399363654033112367016861999134118583740299718100009833995291039699256837600718446572678080207477321669645248027978153762983083244054291773541873611072577451284574319679524496649603170804018273415713085902895231489629752937455595759751899987531821665283269141310587731105560803415110459716004784726230345052766654834106008148648658297992922821133721230646542944237893421212436421243450900816946934324929424488033374243670143249241316235044407684270768477882558769242847225925219131358459829556961159397736571116861171023467470056293816247986855024739492558760103001662692105002563156216050028129562759037257117809344573585604744370801102465553573866149739890269592463735569021727706978691075295255889929635744795438593073656047168023599537933564473692633305733460093614969435777661398718808720936858494668118654741397163498240594190887093896096959255068048912441949477115902291132348618602096150257536739088145072378539804744674583606668331097924667984027956392669543470349955564573343971300764084314942270456155458255086338823006007254550801290069318683022868245929417570749267791381634924030318595809914057075223438780215184109670928223892104717440738328395190053162206115981173234941578832790017307535893130898203895562655089513799308494713173331238790862626046840013229669060467840919351659271900858887643761591797736810064081504637134365038192819930254549873179822823793142698387267598080065460586151078857682448165338203852143734216090610504427182149859305633910608905560252219603012706932968757938825487287581641309753838931019516355324730612135761453914915699741394554967086872710079235024643682049703799735224331475367003071859284202379538262354692020938197389575090420766884320828533899605707256556449373903735506173644511793251672453109381434167847954222032442840326519970955546282522150648599683541639424883991394649446028562807916022469380202542918320034516255845651577332682414156642167186037838919497951473523811956777734939305610655215091818364591936329463784998062330023076425614041756672152484025234947696478424652302856863637584541350469049239852460911566604746812610536207560061292772719623817038398055959741928746905137661265320977839804347725944346718088142025749350985095075986481624638095370982709393466253704743435116842913163343814769918360249556912501071324707867401049205183292656200357878172157326140076483714293122366620227503811751349020325465059647170084080714220332128435401945698086883936391446715405082183161809084462576863402612491995343758895903968118708581584866157186518929251710548921977673439027614186632667446840698248208047441186509237766542949414596802020599690019852746696978922025295886714657238365133465618037826344961433227706934625801666968313826152475793096385112546818982923111143459956218152158446742896719494132938158345901634525449092474550783733895734641276516330082577957180739426044374737274373130770174603843842497679057738533388644975824632715730747950069692123974442946513582347879133158634578718904764954980643742399570735301315444178956225047118657442885529996446201568874016619023525670301742383959941341890847117270281972315364358127514788244267620166359463127615246269805271854615882971378862860991292555847864634866599033561392921676346903376299046170646810398063422194772106436468032901414734479996865294016587416017782170229939794230700798205088689069762527509573570549199812218626051119922989589001532176502201174537102606104165689178216220900400623399683372232033895742944694505253073204845161208943372173570749893930795459778559733027143307391228777079715446412809396440575875009029442368039208463647324452642667055115931377197509906552545840392239834949833118709059652706184482421840947993351272573506243355754854351919270192648997240106107612921067435758634300442649035413249999955141889571216461017907644752469359228313597601372612902435147027429648737430633601118660967073762475538971295678721750478725353918905619293610703339088754124064040748041128640522117491667900218702075546502488806349474800141792098902431685615796595228810341894668010505383547945386293956747682271779780020054225774585368680887539096165114859383378161546662246998495309825755527511339799831473323278046447701821155344867451193488221594771844699666524983102895843946515918107747697944993944038852996258451887336136242682498379962323088465906888855439998859182790344260739580444846575306140731653990209520387655833906882408596700999248007390151273886157563619107333051794775361752010979832043229670613639260289970008169071214104951299382248625987071016914910941804745845327145834205140530087495471220682311275817191471288016329297161372161921558567857370034311563000378221695697528494609495545614425230230150594315120506012818265327295861081849072656885336194148989721331673628365575256451359804975063095416108980552466433077983485236468123461645560276810336251401679129352580071801929937270619974862786914733049262566954444579490579414712020035911301312221265131176407679798013238782841927401597139940486089703894090313505104915287822342472066647252715165733718513098888983755121825560192185951135153996525160723101537508482215812728259645585190348512479622998322873989689187517772539263448887253977395663931284219156812335289541789568623768837668070347111222830284932033769514762723320252208333269393412012390901236397685692788799943450837164917322743282572488087170103859093555179618771139827842770794132167355299256068992657026081113283611518872198601888817132903580569684962707247866034542416969433968019770352131067978890788108348139664071040217728724507753481475273135844093237094558320907873409910800948622091265807193251866266616030257045217476154411257111904546926797751222025202166963511387815541092765520173915475766936429765265914027626887390967422107093574966257339064003800806627967878027413142334646352623734054138813870052720853379047276584680831477033677410191331845565750637502115763389543664396660002443631138502883716518843346424709146446870242632630447388358942960412569666355505587227903081881543334037740980127210857534361189423289885751944101813512093790417383734844574520677926258790971496545703332944143750520120264343999783858910314904425148506128737080646022770807173211364388724831717443016824197819830115912233983765845505536166758958522991695445248734419152102756422946613927917252984112293451524672825762901962344504559482491518787734822976295431845263481844378447745702372841171688684929778230222761028174142825202824076153959180865097772942087426082864059186576805564943373142876058017784813340003035904520276586989825668041918729479674911037263219489804064891493070944145520377616218667171343246591358797868650313209924743135338808160053321639815164649192536775003818727577031405343263655317886806219950089606781019732963213490777538785788291986943402388347799269179246857496964150122014452621510929716706938355326858274523194371839430755367548701355815884554047077101869387637680727121810632770908423907519452663898259079344990491864127007407862106766089554881875855073174920545725280764092768978142043296213701963930761907396696474365051934774525718513831235054680147265370479581903157075839764667172585101591895039277665814781982746876511899705976126246802564045114463544351995668247275374647052657557848439934412552523779542702616494820812500704413714871633037470994999800054522954714040350184640641075114992728723519375885633034432226592365896620808460494959414618864013253907268398165733516706880828466517583901423824207183981435170986668798735190376378123724921405507406739462528206883908370262555868944950759331984078531584096506429626947551246188496185422703595613490795057243749508802878964400467379808651531944297023796366582017488015268072849593971259818734164162061740882098682605971480598741778296101531516755399448614920062748871509086473983127980493749607022911298154889261666559756636999475537453999433990585109331272571109274701016982790524523369848469727563471470607237732944185998223950910776234970516225294110583616402807382152779685433255138460875670080057657148992564497104711257494515965941746636345922111040445998621037978551591920952935184881842375980300792795566629399834360043006537735983729079616360417072472019246435182432075495817024935358590805827459256656170621579731035433404424807431981049456854841168533700852317465990442344763863050719855793750188916976900037127293495257567241835726675406807778461867039593883107618401671209475614608587212730611745448405873109494042188031892403771317896893184900882786813154384409832197686141784198656693827900046214060083578170418423322086857929731969366230821183804329851095545554920978170942316588733281799218820327553779812414975400560979975771494377084124943696240397749683593301673088299205027203795069739673968404932044570568110888339820188353655536195204671276771066988242012181301230699175426734814332307813534865760905168450598685350317987822605723510181966314191272342488084903604097353190658241154912912585640632156851564004797016856051653188471660932451120036350363604003787443712306145429500252802018623023188108731361409360741873475573710890465976917818048715595516446521131837165709288613867927815807471793686488337119884811415077332073530046972903927767919919031932468919510717586800235183595949895301584917883690481856634568662934339412555601761482338062769706282861138008864727177133972036550108587222314110774107594239581719757736326563544444938095995571645219876416623930178797645156966441519147714699861204167306016097485844912195476716185675662453454309101990636034760721978227268554032980207691821192160318943450468866528154249414517867501111914935931302257691435038877345307788366194789255947424497249541265835207496270588766801391092249048145465486031841432115602048214825444821622976733254824269607711889282539517129074520110615747604074934625203007527932574721930830147384582819706013921340417546653432057123499110114897893016212557603854071427404490893465873730458070717436561488316307931527783853498555305463591985830811133004812122398593502811381116057575467199812427792616216488263799310296145000679406303415094817110497088948867184538706832237823320613172865205800344339667933283405554652177572680249152146406880674214640748462231020660041772203024283883823726249266071207364626460654155375489853973765400213339220967421940817635675926971388490375913995774562554034016344310976657470534606659718198928817558395191969978253257556824402089350484381127301547403020383332176621991894911134621349908272824875320718544638604171471792170902626390167086494956070073252494180987711624149148000993727639973623374509668017540194265762713934761597622360752793973220719048477018807518427491371092913582274920183697823059064683884839208177774518946833407712530414294637493813948974605038461306590973943206280266630907524192913525500938501460023862904595474287315637416040548599361416649910985733945903410239062615029287561471310629162299139557864656575192844044476078041996194218234915760536385862522007231315507313544822715706264370082680544177344869983466112503507156668073445056424031039626486744233122857498674850815311231961447076024571218784029585615477888439226085217194888522161610481561821101597491262463957422813592013373067042579267119309885930383727490258772563955363964865080287000679943743371897237478746575317511945601590010664621491497053309456337969161000365438991194237802477679124911248458153441821275566026471333383578194809256033917564772194594919431211253686367976425648141705105082386191953746262501769929571238663365085975403444985421913098504825649179181717288886873501275629145373461733164373929900811305376396550981984001323938675699450035103883849671573238959580115042428903825131090239329999692683280558202379694182840766068878059965743325970399348103245544040815634504899901413976091557125697764121407356516542783933844204953067975024504261224090941385359554120346860058148867692502443315738253211164132857474926692476691651008942442304415062286684837997731419469197249951588841770010880560497231986519017465311188161292458350366813943023637325017076778084196540092331504097907329100083583056830787115426649623468571051264588797694666959497241254588778046179890345941976319756967908060205678515691362549797638341336777830438378605640204518286068073343095611205194387302519403694841982341898601999235979857955817932734850350610039499966824711722305162997264193175186493829449269326311618841138624324817999603439143374029839777462068348020324163936524290316642412096068291889671788839672180575375693912034597668908412235965342829918083823498748360911393220641365860640531964125426519082930566916771921566674430891004099421375136168589546499088408052365454885454594955526355086912697513718649358642990763713383236129702591799639400472632700348732539368598857340869845715997371256584615301059455535928924776145006959350031287580520716536240236015170874045230478925297921684579132387320907285130233703312829831550570739934792512993096894674003960564793123080952838521227421606661525540415408264912247991868145868623240216186745611750004875337908258653017668170521637410990131071399594251297906197607931310730244942859551598669539605307816519920538643699579366298790070962066051159105975186766913158921591660839178071902781685591611037101584513511242046924136895848107576652955136824735517419293429598129240288407829077462078414593278516530431056988792633427558306193666227661574313931881042050471286782175085036333669549809939060055759184890861626530244940525680409553344207614493042451054250625944823845775742955130197606301548819667061911301182895504134641343127570300989598434816552167626064785111214751176339321020790084275287580650138972500053253547893900517566083121895236211301992236931752395467261781427377627258771629215115732835749458783655826617025699256401796427674546796773595029121818501622631083644746034752439238758399732190727015434613159951261696224244123101695582425885372958665341512213871343282173363985880183856338990978376892776221206211704532148414662802230013080580854934391519597563674311721864667203919343699413134459030088594606540527666746229558426027980954785149329470524280969147787776565740084369084509052665035379399142485769355057516867864192105714023150024214823597407249796657498892448846314117554127092395220766450191601459238796948176835773159972565691865558194549565043317032029832761321028042578017693700205064179045686098524696474688292449268172051710790868632866884448980898634794267807982516408571622430418812158868066374036525712007953571761249517735318721999485562953311797647152869988882983608275080030046676290461475608586941308516053148351980292780387521027505040393162894610126505461585059375379278594979990562952696069151577074199070347567904850462837386822349423697732393115247126913783865930816494608312327235060406599294869597507665746172740492030529364086977128439981778713250215612200032124072383819103497170493339287810956970614637105376997896877212538253066277621020255652351210413258428449026188517675423608951993848926316081928788936206592782529018305390566389774330371640606148459226269935640867089601084579379093301224143869105425023241936589469464845920461364038395516961267696405591668743121440327124464779410529094381641354594589845532569516998273776796840836325873786033799595378973834029038217843652787593746304777030237216490751938970030043000612287533665743599278821324781843667946602820603124625687597340231667736225652447894152878930092328055264715861616731487841145374136726805798967929726908938406832473772032219173617987978055375838499991820821718527473827372863257996948323246101797855748979906232494790748256144586535118696214662251607131634217716008947423376521094545316802648327604826776430851250552773773544134555822264883561803390584867494819517756565091607475312590456122708231899247938615037017485138797039747684988324089383393252679854728489174334577273688680784505747615714996431381945363740497357493279664150519480275822916372587404339998887537143797588258651093135433057205341402769539460341832928632386635848660175939502981097626154545493687440390047581246866853973800919252090177754488651560798285164714000146246336188651257761614709699246366931132504716883096634477398396540183306970862800711909091995239415197252700233411931810270516535094995873106974458247196120254970621396949853833659367247309431811845696056314085267310789723860216064054881689641967110142959934584565593171135337495216046265560791612467636771514684669680531254498906622169720503351849842008435902917414587175668970301560799069990723540434972801849603517009114775726871669911376791141384813630097917513401189286779203014348490731616863101976579479517034326968081432248545423241562865340770552378876421206355359400402272448695070183636003469183729999662094262990607212864601941756330704266765961848569874092209654096969475300176154039686383972121269050246489860973663494791352420431783797115011364333617979915521726009418826412939194257424237399501772693306039114371955439320553860712537739233286537084251573439683865858738319216615922115769332516701609376832711619445047795616541159443299848592370337080212198265867916232278000691941007211853085011581414241225508985071440186337278758346556414447906783885797944225372984075659900530207012858870166324305136389176386889236422571952625560271140460726063160048511849161682685147795916519107535585883496882603855160191976871937512408143824568222295307281099396043468493671323754464481861532704378445571149944290656364371566332685670913091541034954091959751874379136108314623498079168718346959708402293710483763890992898376584415872968028750791253475646682498394344901210933384494319028353185903722377772808521013124559736296443183413747496608760401984789447876204965793008495570871286927349056839611102681607147648204454464721685507782371541986032129406997195540288802963433242491567659891376096976642864166088619347556428312654668226949143155641734161238235828082370322615307647762576457253298461459170755024293428795205974940089842137565894160413560182319165486241161747539718222519324375709579908803187204528348234390331693455099993479722637566440717914335118871273909412637444128605758842316030579602010289733079558365384218775187394812954888899370945028655141890543825529640147845104340813982074550355827594213269331736244737499902400734810121186679119693399215151520169974443809624872180450244840285585246502934839545006472592475653327091549749710644569378627671408440806975337760612321549497420741898087320017836360137320840577794533849552090946354448025047079958340480378595716840133637311498573982550280010596536611320046897124139534335914040706488748076523805890512618071763836984915568259394298399916364061132415527468387286738088387787215453755880938746417409123877675512231929210056134960747183198778904430636629977700841294178003293640216719273356452485896307583837054652191469751230613011515577937797746647154980136511862942466885440912056973875156257934532258291334661200830609115296709932670320903004317249751343551012642860669915910792168803502713474451668469127920488605251719719249580242766734545460291590082359735305910090333675131028931196106541409291822732686192095975672344403315997992224351215295447485403502185299777235123257814841728519933716606910663822132939303423774125319002432754971793616922516077723547808348689247145527744770555293097572532095374089714661209217574573241901067187507322012028474459785304340493262460699793167306736869712272713461721871224987874855725937352773555217755214809672605161588034688711035933331892461020237169657070537341866990932733822318051371513011448108688769849442861660150618736928020825723594777386415141932072335143985716909836670095845493092736302175384469090523141739981727959768255068021464677487462790750776085033024211778102827455194610576072476858278997746101659855252163139243163991396904375221958246949815953830134517296596380040486102177091682903445126808767140491585211204232126812953503985084657129599575719398663829052890724834516364489767027680210315254173870761500378068628329438961445537265441592435848120976507224836467647987219093771170945272368063437246499324775706862946893063067465870999332161276874244716590524940839013136367699823028004527994459800715477341089101069099390814032498221710476435442943786109515585537272318184397536613081698767822206061321299640841784483518202402431911542877629368818390864486722009955775990156613502704630765775277756606739715586712515447099637861595702176991840652747195413826405086052167168013668263075155382880991183246951593515466369051075634225676930955294695176993085116686947966094385343593005778833200798063689936968739014973559380147802581837132327793163413530193424968552357725229303111343336554294975671409914938920017473494847191797282616487681866534500263919356993906183972011639558541273679643393153733875692382594686206111053088512437428777869048129751900276919350088515744215960837979267080274772785934107031049771421966031759305871644334201942231968115751788140494726702005174387052688617858090720194492458033282110406711500198693666036737380594559593326140553290581880666443876203174157630157810737548477330476386743413841412441045936875579233403424543281848040253558697179103483336092961681156817144374824906248345941655848392106440824292628370543807446358559086973696232305305016239811472362281972357365876527768529001503943753914425776372806959048127427228535635305840504230718408684762678297745497690183536970462936097765204755937411017599262963089482578320421825659590489660008257211227973562398750802672104718056388141897191707283374104387338557003752396134095703440969350852606373000156716785178095016403365122577280789797983419180367163069983826687326781701043356043371803272220106971181756023215760387091855413073462040811947298672629272699205537878279946862164663988551917590999912237044613535926272002995456187780760910179417424810669186179441583525812623021481492367044563816245939744160185481796613438065846734150394792866040491384274850431286183630914187911468687791572884574589121211666060465162224722923393523434374326513100100705872990658410123738566927855132583391008891112576686210977598712292873648088933411028672031584468395584805650313008044711525160579972772483449247191452786379427209595334273377121490728007474386071868418726136492222178048235518057905942131041898862856893049091764775052753605065871840672287574326635463776203055149139693676121279990173197457992022783764203540691870155413816877818501317213645313306380495293925768732948192853076616727715215112064203812317623462876303731765302064799551564455126998121109836361646637598842050527119708840195344922967441648986958577573066586337417596257669001955172700129681656246282635836661712072670291078886020543776427976662991298843182792119555981958063682173819230429016969877220461251143970048764460674314406834627252431891194920996465680111268872211164340933982012969734562462656512018008953684258008300973311408459628743807862334274892517173935288448005227799606952826839457307043905472827444866593809677188207201987972352571395711433712118390732636148636002515199028711957602055667866740381971829880427680241567357865034234203946553449809995795606028507921359349477182435765898613806521630154476568899877821297585402914854981074626101130122007991525821208015079478369102588935677619853990754205776915659109687421032800581230279434952418133110383917308413215351917843569170055402712470319596192948134879918841665094279733838963719477041530075230679852253626201710512824903339064702128336328017453004688919103029255274052110055410771857246362052899467312838915890326656936026412335408551785163336014034654148884063164534102232955201672526218598321262402372817265519208780067360137380903027007627971516660370652429300357195751399073126093092050622593285145724185972855745876877466691841083139414443896442704478409491013320965456916837188480907658056501868396074378686535542859998975896248233346216866938383400210205424968136964664214488734461140364490417450650632356560345529352322381902976851756745878388004583528226173085415825352650736163258730509308517077707351904023323827850027591914174376031283120108310424648586745538256583120842321061354330828090669582364304619138959486613821837442960279949056957955520439666270789230617286731793242326325184058087930460609455907286580905386851553467593434885367572697440333270300926910313150129703204228594591352805167678806374381305690983734569997354034853902142791495106932442873705121651450006555980770751983622857257475683512170585155543519806287273254841975126412083566570544315649827585712880085182520394818183493672271375429918089152681167891793338889068563891991939412246063305057801849166077376479179857292001665798908816761136140213763082551931341966827698747098344524917507969958865940759203897466585789910657408053839741597308491304133340035949488817978416695503293236488313433089428695929369630577343791311523498908009211084847555551196779809883296151936423760828139209437357355543979941808884253166679460769583400648213946852435493105117404489731818573012937037072912554006504141401177959116861509257910492725696856151384507437297769527703603891511474343452663247544459496210474114114618115495532003510095444377346299865894392704809993384685592996416297655756439277471461515991454145965925489883824385310961303775458265730112299523643863946629276175387021010767075134520342619287382571858224373911060297159517014789139447120875545812275251306876911926920231849130495086373087205758198254001394419500718370368151758393791902788699862389471796747487534533778677596535810764944350069855845281929232863698663074913325364104605203311352219881336878777310315994825001562284634277141882580980056977877840415764202327834106839842824279830059974684434710273974839162735687292856246030577034925999365900482885314883255878804902637350126148966872097900999593038103403094372696951180482373632955758615048914573697622963026703926166922422919403424653627502914235755937390502080676976767246124958048988616306913321214171523427993641080037189933861216078148607332168843897006319687480375704424836675653465785619368111586408825410715635338450855148272379648902074505595498872880018243972967879299916919067685838595173033385639210091051238358075753778129810443158318692287555110071169791703137410585225656236564286458685986885921702246906443572479734031103186023793431587930913376879738954890614059406208962890175181803756006676809816874210655078740145267637275628211162296039654671516580314035679957542398101696485905626721766911584968755194048684478306955925737204603971526823012185875156602780215929516086883058222976517615105334587685304944259793938313428046045852942654801234141287704265258744239884164795457043666378125300981818611005609233502547901612363954821208612650737005985484749190314996438489989043560870704152683438163416754425637398386445258487900715375442433707280827434316343184241333441237190112031882121320982857201888941100703215369465379286005551376129340089065210291167799121148207580426849490029068962272781590066004301364205852382382977684896911402874351346763531689770872244429956212464621477054862803676739971713751793299870759270724050739333264775407379648517805723782059210106355273045074442477535739066084184229143842071887141471999361370202715136021861405052382619636954966529213035991530245259488290171291210836936131615193928394839132842590848728406574860501898394378726799076319460964030624502681257702721040718747458230027344080367914563677017481603396924930970116832131305823296722410734863295732656513875000718802684407211070840686406699067215410703742543898539778280277458851462430019708625268312773225706248249804219523792719999223309682379850271561880754007086058146649366894180141307344677227570939789466569861657227365866691371041086344858370594323811461847361416657098190379710673805211975187254445751016086286862659680733980436147134968075545872562547607908987529359460999278006630784553000082625902153697855867470699008975668252413994181253735948101894982356654814547729142424742259108981125237518183047386779899975000260691015631613421853820525541489532033602477953179508780418241569739538952688609196159283646378562453777069973363339731439839756931746476361388162785286581516274837445050366388800991879191381686096609277137983403500389498205191778237059630688042864315339929333161580972476347208833922803688387658281408907415046157993154609960606930012699942996061267479812575947327794842322902358123766621861865132326185223290788252223106852962125508758497380571000955558569755257520419743889138835241651269975015762758047372595729156315041794448439062971313139501527017540203095029197323579661157630649938680494523855716568871778551798839247300131503243876025698951416599917856734570692266992428549945771802496292658650687099113208701850613092881237927255969278305317876732969980103663679492481298233495658117563418091729323693783976162272415304656016977365091025833581038068083088403738361594031941516723810670878724893606933219472303271777009889962482973955227512460964805139555359943349758805995508484264829696361683331583550488780786671610471950182443334067341093604633700788515425989181057536218850325727463266255185104164892510540625970611143309572040895103169191835626274730605702989433415727409596325255059396748785035291944472231538211168621924770900842481420405130274670076828630722476301215579668809114857305000429546259968560303290216646618965032201094505617144841771945878510605791301082131650870059745685655561319320698539482022869791671404541147276720038365392783997602781013871117520341024610731218259583497386220842827670737438112727018699887112387253253671567511204079206290897369981675595960311781707442514543131878577489778654481704130280645468096830686430175525655212165724946595361965813893727261865645896773980242893136855939823957589957295625791289582407156745782322604347093964934750778377307167496817861151143077193788564116004565913850846938604939691118167545789096564034951277219354381039489365764190921930604007044111336778349551879965564534437622022869365390868061701796963257117720936859615835914018001987411564588142348282343677754147485899778748289187371571152998719204030307893929787411110351227483264967657770228189057400338188602371376238143218754407461022693125836505608585062609192924512585543534888668637843751326769874941465984186355775816403932452507042119085878698496414465886182106028256355222225587985578186418308753681003256823898780748840791039626723653510503617772222162275990323788625355160620387057810031531038225319567178250468993347340245243818335809702058435691638797554128261923409355352386670652552878064243138095219451091308791460108825776238978106287039147787300575148738286131525027655870273855794855512762635089966624907085881236667471930494380702051207605447977223866338736097442393561149734440227744098836072320697262109467585142713799269453575226217838394217999824642768375123105748852647484934684402862564234817469176337987306869070552660704533601203433414023588380866930350985088600004622939631137063785884000781514051189090283867096369983454938595219829961945610778649731997322476418144223860073563596854839612890633323831636450930053767661661025082337214662762403771336249378875762416866112432027380002334803730112915419289038408182657684417957793199554948274855741437462682701443176438234724085407586420318672210328938094500865181710285616947371547878332926118238784098362528989659090703553746714333541600710091652806014086688454491061384567585415763017288618561885051812895971875570156947511878748659350674153004661914079022429944795123634450790008691556367257987321599038063312755535091935202263522080366097078479861655762279920266385574431834673422065807779247763236119217832852813864480706121643178031552282642718309305318914238053164774837798347159748533572314510528957279454205342112904037808171371553662817871621352077407439022173212750943493920856602312226548277042969171555801233800186571258335767984687668299689936240784722598829577035404537078716758154580041308696782354945778791015266081490268198989302738085536178844738997041864563412360695726832248527191891985494514631110658311166174573941638068579012704455870718698065972244830072689183569163359189929501698207299655999908632185701147028756749805364920603224951412176611860560587651366342160987614042786837860251211377549246903261714120264357712288853113871088862514489813724874307995699649302702674272032231132651143146605195720489502068235372447356073842196700469586836472757656058453542723646304058983107162415272619990729777345363257462068242329608328196077776299082596999387761567557020259829055252986655019759427061309056398746905378058780429548537878570786216124175588611666697188522714637805806131402708488889236299378948980650554672756876278370652738014087097214258938348199262579401169155110552236976350706897419604476609046070817954986045799730556036684532036956969327283897075802659494799901169046835050812191946361174395966252269039067811951708285707945210615923197056254238428446004983074680057361908914547689140350046525478069563369420468496232586497428964029725665383554113759957539961554015063529377520677392689760062974940766819376566861669044175474195779795042321262279444297812739896555368646010000953239366135989114533959423810516883435263243812648267685021929671672605977454723068190366723986552284630384350324355383202037285879155658507114654705389158725623073686889266146333378253651716647231073895469338230512780891745418395736085588388484021395048427991319772936746870965844793070421610693154134348381139397717192266724352682924149600438165600407211661650510381904634748076585426884228867832978873543507764967758114661705394723396037842949849337643159831094081261790165450498122407721388885107943419325307296450159988140608789389376873783667837532722254633404622592281335379856311003881429077799951370686176871831613115368221639459707602880761712305336783769336010679671622534288349743500861659616374224790808159548884984922628973299576168066605389818263735926137660115108417671521219671194820613680650718447184006094162394238322355521082620546132497060633303312480590689606367275591321302200996921066886437430454958182030645724879516296789176280532427946747155963077776826582798334470429194715047426014761478359457733161438750881575416835553524259688841001897153558204577514769557466449301724376613983908977858369563865689089273762052366236166186514444924870277200269644916830809591807860251014330800132074661522810959604066203546864258036565352202097578264193112333888398741974589467531377801460992595496616719722567840526669138169929951131078090382948184776576179866725600244819260849439460993887850787148042252671119264400165465581709427195383703556305776577599240709334364072205340850964570412367510174688878672232582804640287354354927789429805602626536191611637805525863440223929254345801333793277837468135207506210712660346244479635268673018675728994558862302133908701607567138613573329198822213683999858707711139196021652401747821927689740412091953834119187250378373931825572390100923964526577668166088864551719663716753611716792408492910540062173069060225663451602143360314829680750717764946710090374333444779314426979256933018053639799020112868753521174891692130275099828227755313923913048732336564548929550657223319281934196653033512749686734543534286914834560495334775714469586852111332432770278606426067788058197497396567614408761695016493134143696438392883695503107203083772579767802461448687663261047287708007865082396148121500765862305968912757669731891469826209662819500954131548206999555861623939503436825524346391236201386154473898955692781584368371727628602050528704131818352829144360344503569923676366704914324802465298838372088823869202010931791910834461754601934674193232662682271064018416821053870527061897633144281089491027301748167636305896144949111359178943403018161155844647222749597351807039592385136816963100148444945699827721839094350857349929446523621787899461110984760056356396501672984125578160147881153488940824615416285348772596697576225396683502360396873007649084696781133903866594860101994452144439701384374188431766686479211419061360881381356087574089380721929790787965057576492208344787578487928695181170161038810189629297594147918991625896298232240348481042295953896075978255554322977902254509551455576542093356207821331346195772231229543215462966401780709716729877441475733086011017800611682241272625858275518717845394983215818106510926053095554787302357940364488801273126562367575251468406348400421139801011621664105592340376454366676370185501031857900733468657354147481933650228498150458622577371632157586243763016348122941198120916277332065892236624926721854914250177087963121862688765561286061341121525463435276549283785791323003428592555750390992717139997532698216695761438815866140995803803363105332386635637069482074875472519479516856875400279039948632256948726949803258989051047637383189710021496351415778832078575993668721822000654880019244778924524286561557628403692462811331806923155517161517320951611733418002483636261291384514631246618445471837272017406498025210021743635744264554661010288267953184899293558227102686947915119599623419125875574493319362150237853541031499765217486636682893676552544874801685483297990671388582474114491316978804008933142884957793046304415325272281621533478869819840074714887796052532141403701557945125256303661294065884587468082402663555950949269112256241388555218033185097105707414532496524835273319537314830465669085863058268411178863463712615236400030083089203912963806059720668603263799952374617929746138208198292689002137630731895432669100221120796801060531553486109420814085886559668707691028619742383864275468291588384966502552609005563561642810846425661724339292075140472346439157594830885824362700888155192920794419112250951103511075754679366220430034716020763051030690264452511059682671768433187908096629238725733795197816652915616906173601054528442297058323088308330074159377767363175372682538841923565794197714817550437521163109643531945425959521461958693328121191638164077932951900661001392331780805965635658397786115479780754468176809191428873384178276517263743339325975431145246052726069001449279237219951312781462024101122436757223817766561928415820593497363962672493264496777864846366100945023542898747852890574190811127586575442667673605755347438034605609388021616679751588434324163073695692271030760601832304766211176118542397107106397809408308739259704350867847132980196999019303462649860900544766623593798019811080124919535353244443757898755895362911028312967703537336554570557363684836743363957721587636366404801265810426811675815525031500873002320091381076991855948549801593595844410132058502031252883328469062300665258574948471015112470999006866783104258427305522210419899371994216768587692881764815891738704808583628383189288757527669003077787425725553012904137341403062658924830028890380525200123641975183912062842207977240117043356848461836226355119029325058137506647136030853789838306622450208505745173708982952666314343842696833444547891392735424419672777153668872239772036487078427528298748160654361140990236910109089717334048120987512336482260085744522595985834590158787635605619234313178120224412631989741401577666688812154206125414666645329052161791248067475525313202905196401392934490469313954489580243790238328815500106352123018552393232869863791987759149633630308684011418138417094970227670429216230572658578247250291793688921257102314184997486661913082977622203112677924076106919357316103666002672552098538344032461478770515910122304305392680072604703628283756783796555144252545413780399952429159965369838672877290401251377733087669872030343892717847975957790559356648645379974353591191780386002998109364523049080430001282667076324293996235105370876573344411526998558757656386263107782844675299498911444802576799048551247589623518806696418658023694685647981842102493252299020847531213642539522889539712580180070721010825543213874768677245595616480443185441828654116516207927841166275893550397363835103192048109289257184377662437100580105863921264940410816625469113876394408965141741249005484832425449787900028128973554018594032708724729638601640754125675708038035927924710274716304216579751075658840806488624504105325944495362631680129905972884159972049450114504688532361443554692283091120334700755881248449965870555216613633435273802376401380784158841597436189399692077364215406668534969177392487761305620537495935837405594131271590462851333162850417563808279614037416107769792263603126493409288057318541599387175925742238070408464768816834932463285412974120391041627368213723837123305635385616514942449360123414013691306975254612001107783732501304192310004954397660967082154159835621176546272832798963913058296206161044321827840425952603516826776676583283404403000634944320721484416602061945056648420826929749821256758237136381697060207893292687858212117838439173252054602087006355291241202868544171067019343672676789120319625296899315232521375758467290333734494382766351585086086651885424319678631029215365897651165431625570185466137737421055797079136516626354835300793078032736105953410178963860213602984651894182802517091055165507208346863992762867500655881700819223351365058822771877717084508869929215497850259616493692980555271821650225229612701436658396268401949015073542599125412235640641078564243535084515651964329694543725025504920681481292241226124164465986543976711196648102784289296048178862429483111012941324674278432914209846302059326282967333514661522441048431277985708564227559585036319568073478759709473559600263003343848321843280368562234350420386193252841285498286269353574873518716414403723861752217816852557193388070724072914202600660947824789718443858009754206909506997564481966043386584422601900850501214779370995133879804403644371154303525689085117047673287071065330995211262682735732878514113962677070497145259933611590532013175548862591010013828488041389288376579192457170447553147270121255075078209639619597417086193098683001018833886721116633586135771110641667820461309759783886632934736903885315666243602360157389608543707478758321411310495060452048950242494055214796329668755453735521343378330795013080312926519515999800279390870481101477213893767233108538916155590189010655846580431619384182253291673174461683583460447248781003784894919028628354415313613471430547326558988666159893653377437823166555330973611283982587514482835791197077911186535061612798879941967432302497528486257950295967894510924357390327502027447983253176766472995952660682374004809247403778727810677843934944228923561297043965234573952555278524796689775478781836147833417805128320017118921772735943937748139002991304518222128447864198153866184837661139373033891511192416490747780803832772280749032682587706834908665551421526187555551309742043143977466134465538001786206343054067475204299640203786860495271826169859440730615999868089986909396765937694370179558086887887381654157867886043168842401419710453222921728398959190856833905451364540714636582608969898567327446033000644717784866056348133413425735617452053157450925307047872538949918964812582135664847237250063551886182832334360132245792243826638081307379134825122818021411789379113863785727546494390007024089061792979734150757781447549095796475396874914093729104214238543735681509391039663772198012553455868189838928504878150897332140965580432282412900458285047557704423771669973872692922114195760017760777571128987793816900300479171708357679517343695145424503315857794293518224592197362328962713308707133826249332667995918487613971091143329792867540674112828992576809618514136063142151860066795824277533151423993742338604847006212611222932022702332911663736952819491432417108433128937481977019729388046660182188965909572184480043845164161353981050551385415674294643077582036528366656716491932702466325078152426142379091614702950297216374386551811963782270157126397247680388107771956522389539816966379939189730361675717447051844359124234608087188267574483558907945896375964855916765524829569501011997694662859447146652852380209643771098576813751637853766954927986942652601958836390882035379633527865914502929754194493156536670724537159229200184240357961279644916338023900139038089676516429063594338729421200717461255746266495832168211582080931395417324874690484297500708566510887282860916739924375724768816359389941298342048375845124960733949110361647734155970344752433803534105748952091338269138322560072888594726843237453139680973683202403171279925072399595515442931149366300695959831887612953278336956760837844949790743420702228260103193459903748378099970739460326931288012051333950506145826135907611085459901884700625938039114983119571595684132051014594584060952299204871065837185592857988073324742289070615463647422224917314916343827663949543230231798530238638356041195274500840496579980585448419662114009834743965097069754858624101694701971588374090085730513363953160882348690346376042286120411837525391191221964637022948145819118524923972087281583324994787442120403628725819041554201938389483535178653089084910373200264651170355694460442279738376904191787101374758887394335346228058255489127663164035794641271367717969637494414789111338966797798816968650019480577023658707593964623261749849130430283534578876951610588868022015559934848300423651936558348225006554018458846771752519287071025065054876084202398746856984300534391362266600716112124652526404920329534356764823214042167735295613470269021791130338804827219693111201983090556655313333238720781909925827420060202287547271063030456533188663109830879028418704720599939773902811617886806346603471489903717674694207787523879341026898810250365640829300223399774911813516614410856721388179590605207109188135326338190370536897734902972410148521864649472144521502686809977507975431767527423073059821182634903880054843720883377463609810239730369873782133591752676990625382426847119826112202115766091001907944133123694846999577441570502994892676375047434732042504359274822726467033444485706579196711803701383312655528138024822159500206345943471693763136125085459855117314053840741416134022798186824064985535355061933659296565767511058189042763683625412282998192220158887494332614617565898497024029035802898807509921726505414762495282762083616374733853798268924564119376844879660796516995018990734700180367083093499403937559793793653988570744247101413513188476199065571319868279198086768134895100039576654074977338945294028865909994704336061650269350371668711272747760480364093335844085887838730452344680323848159118687736148463508236503995418868163670855803774995319820523615102813439397210853358983086337166725568714783427864883969572315492462142847286904622092520760600874818719997564059078293083929649931060698518065778665982362571259441475891466387198665585759349169872289155765798659111145854103725245195016814128269124620647189626923398223352755114100506836746018434199447107165043919172640343613168122736525907370279707782445916590408965321738026049912403997230421281072417640947074871593501137415871012542505718496516773361813082879662800364866609008880689147605465385347702832814151668069736195615016956519331786809406272323067501248573548891689127446602492399160840984356054063068549763502927353098868568392792497526415277041487639266541285189203230250388805967396688476701284897471250845860853746146058111125268605652361396569735490242419712845454758022983041179312077818289602431635849291201893262093175495550733480339279500069683073743267679798256621826439787406744805073716693637266085557695382736464695124333920969942001599688858074076118077895012237824700939769527063027224086162255374915115653420840311196816867913299702359357371896088348342715656325674036454679731240303365894462655483546368889058862250946870186497044398296220536343990392844723249782405734214039174860541563340139730860323256807747576701022548629008830139070438680677363956443716364443949207817691704117496932096268340171992884400150378350944107169581414261411170933440613105942675930782171755884722965311927420378651749253188640388067033706193254235239978561872579568575833960960824758889870665139191753571915114505169330688913708171748875455203204261560705935454550475805596157707063569545430903125663654211626373837594636202675148898823057792660519587930824110468335925978984927223562388484483389690845504183844840191160175890083716373544186154185758762212358873669624211132556838501119012988061612299519773938818184594833144027614859469077517356090297456619673010920958205470203668340896230663744075696156253809820572342885703513429036169309273952993136189868097426199272275770063315232734003272479710496198629877495733760338835279476632850038302711841236600374201249273621475953983669934442514031406546740065556295908537480366879474221169149928914348742841013728061562446531562603345348956856077621714994069875705368867814333920226014889671001288877231606717257239915080417299491965785709363855651361691605434504401150028751769413922031861722432303263254705154413133343905020957833370347830015265225115202457805147071535709533055959134202758482699706887682415842311141370883522321765863236686197781927042794800901670705056081784119093986720091107420846087999442357925885418729944250152134807611788811404227494559578603180894524267146812408088254402750722291530671471099094941310765375596848853370459559944916629024149262766615756310402241509454682326336127361559926370581822336766415658561426886580990709626594307437321852098832591874932480099643733300338296625141642098449005850927710973901895959775447960857101154959636741709921426564717898327932203667267664512603484678562832438845897908397558231323660228044260008109846135965432185366048209579659786118341921209013612422552121333938669694451088506959291450111488225237883770674915036718755118334486921487525749022999212822532156990027851766563921118872089310907677167554872917014805976813660923668291083380265448723640268564643113108460332328430516231348978582693659303905017923231301296452979342783170624767896634119444118466242209821785557555409180873575326223949067499312516541731624579465294527358433874625426084433615747395918163870715768764702323055510962653016316526581243683990887533384574427600728367910057799297258143182761257686450009219801359714549061508985733161346262676758024630225586196122347109873768350896780255299264081036858751513224927499832054594426866221689183463691776567966913079856447582142024012512431616611737507498508292322846966204642028665601535549945075602490749221744718742770819036378610974510938118581655048992409653826061735475931393652621152934917903706012517645249656598802561386891470741076432035517453326116136615130801417260656259495853762356955731556185173424485481439773143127971043893183648633610075921592762877417665426676150158531868206060862292774878216990555816680177346396906270324490354745819405916206145538921121507774098296194069847239324625553994463325623731220379381447609049254834676768561268797334219771884382935382956934745919540934982231669293329249541464257818054126743587465263049458101039527637259087955902332499642116323167898380592061426889538889005808129068474249672716031174811633801243241953660479287194385583697999405284561325179949769966294738576364519673449926334803481623334410004675345409499094031522016885210727441034464059036621416598738329916464584618102021289422897219286415338157369815435517039906696005144677865532267156750977862186604839004250271884972051830996001127266121559319397146737105271257012150502639633590794277795534451916857565324682262943723541980622713256324511286962724589299490843984038446867595481811894350694242187940221303055540080929177074238837723851349899666907454100150659621581709966871913230051590970028127810756849721923604550224550944015699368768729779409602395521784639898868130049220714655078423622320496195599126826465936115551285635585671848353506758472009423071622774219169275968370919262923551921805768749444937467655602055122639409692217780592273997892722587469970692629693808412865913789361070867559682490384689918431063381231222736862476008805881977657954195793463809407079073667428453494536526566886259559296073057282418216221729043716238866812724717372684901423668125893678427422190846764772218851039940784758771798514192505450693238750547539049576169578849984188451829663042394610777406017254545658498180204158280754471665349397233669223902325991429575375908490205110039831739583174721299286092962473362915454399536962498720471676823611298969389180431616557641952354611273850623464008535223597291181781067748078499737357381083840853246915048113134228660044148264839493442054219509080776129044501079268184419010585115409763818634254177062530877514141860176619365844243905617169665427870873537404136070184484667804076322257638103577772641129181313685764232907783183375868760359174521245325701954407448782317080024276302420137790746847655481214214667578026060678567341410180341363878409059249621933383075032069532174679768231341736814501509317158014058513907850093925073661301814152543367513003352777159350685014019847786858547742654268533304993144277517600448454601196745206563808074842007224159429475774677977738716111675711040302932164908416170150246368991382405835236869196015626210800515332241277675236205786932269275647262742745620881931443793677465620392968069704875190866897785438271972636595621671046409411242661307784435022617402226274237781967903921692478873845031423579904929924791001540243322322399168271629636475335567212721643352179928939779976554766163234128053686213810248678438182757247934555627836687123427356439076780364094103491655965120462967926944934406623756246223816490723832006999117304291424974219155453154594679893712650567770075988019321078357418237800173783466402092906855423175254524730213054463575690095312672571190989271336794611614209264482288984531984546183999270477607400564737886634583087713941693236047431831972039502581508576968840890720506818851134237364673756415241108858265312834686345081349899247298744990248197060644439024319088196769608795330982684332977119044373211343473005212145878967716322199400776142461504009516606861457185642567243676856019063987019008177679882679955694668311224357791158321416390888310657612704600362431088897981257359852565458265563516831020386924994786469415107550827019081308702958019211871054088598416718565331023940082761932123777489278735920851267622162295582385610023104440824163743566788822448274352706066779804568129889810219988199472015747588386437571731102210424555070427977114645261386833635170021979042251544603371556726694500234546820909938001958033304840921922729808223377510620940910550679181848820607681046379019639661646293140201369665588371907519287761891613128902847670911047374157375986276549459316432180958567304144283957613442761937487641060213356162938412418715143418461706440969729225226821294140332286392350899553441959099283712307286524966112760103905903842815521836124323843747624993180765925695994977704843854450341282207955815375786934770337114612265288296376770296476177035037027387894238550303510201254678073647191510260084479787562126121966314577775690767844244109433519482778618130837048721410474427210203138719975667143395379893352131165895004806219054786004608070904347566000465702248722951942954164203620902804505025818504221939199349786077685658577940088886191970540282690751235659220602173618403484858482046967247883642718434103276003846122628181961073820136834040931865302518934768420560758840887378183311252083476847576137215164463760742868886006536111531210535574268970415487529496768574934836120214146029251017679307736285242295814370532873104452872569399698596166958971364048009806908954605981390507171116089146440592894921544680324658671673060552814619860044405659883852262112616220045401301588050235187984728676775310206095041748826622804707279086721570169278016387052913274471573374266040757704701061224679420221753131044707579054092189639369861470812752820882533833525824814058119267231198517061836065926526051783938105912203325469729742249459524817665282227440974726068367203648795269356375098435022128204999064604248447523096862290965157783826326625414007334739088793855875472582710739906715215654161580558785793150759809780012127550561859351012530494985022236547480639721574128853926966326607995120249266403466700723030653935813740514920045626850932445808486521688843915208727213555073523793289626874034591309353577873511950608677331015004310571030293730444347464321889751985356538763407132717409453867511981232351747752561400364604757419596667662566889042200485196731444545780922429355368777957771587340561839359049840142661640827302237694078788038321121563326077120644631717470212447996644939363623241524647128328617320421071861298791300721996822741495026619304370047793562169931081495747463091139875830038448575374733249558959471390427719191234950629038850844201184610174528871717655671265939379317546812883692991809294280458146752531067005193842210834600907813952983617867472963245700303111251595118475356451320770966330168025336331262772662701096863653933957317691443779479065130271980393049293233283305604091944982494090987254557153903192034257298890532369335781242979322392124509345177981964464371222865741424920268799426126309589907842457275838569021425491658704439653506317728029553536934196236075068196591754688795822549565248015507401094400121767665032451830714431861480314705442709911469721206438210611257379237853572542881012055570989834513273619045082356748791535636442771497877230658789603596700063108933282255498628107280574517071657077823604825830632608044583971494727946825637315603730297810275936780413631081727021905357469477304807568655593368768807717294243699793156487908551528874632613872675423062804433130124532198990641253004663370687798627052353997295807960595786217327353753875102373478778500695549084967161181573125942322073791940308667230237437978723366345497367441337760250763329833202592517552461688336215492522466752863383415262659875701983708312811857348152063970871203226863587369638559400904122155377162522162137019214843942852163733191076182802480851050935269054667063589499911378679781278431651370531465709575245331707322712848913557044834514585480600152280463351504788315370315982597982111539319685801933433569975893310669332460484894185279645842201884503446959667025981359003079193869051712533147480475737551560742345669597972967944426517409833687149901448667443007045425473478012850116893165651362627825325314681830799762100217559101135247431311646133371457394106379799317676342601534963773701870830015363184415512273355599021927875574094556155531819246316183564690854552467343531490218838785786126210310331837623923776674663661106403054800755833819640237709490345888574819652538780113065154260933677313455443369092110951716470843719161282944787882970741126764267955768673909512446503959611371142275810492303394290284913495250757290346126623472736159341300814962937395418024211435736894239539276494424500490664350133427269366140608290218909320550032813094993374737621503014452580714536694077643446826309459465304486308728249984497222025428685911688381791672939395330038012164527745058764128818191780148931523428385200720801830918246724990838850029949641355147437195506725496670561649315621631014235477320496112084062176456919467946042704574786092993316286038826540262060452279317598371187028949715206928278423918947232188412917237710394950631658884940186609368550942674385532648871327570529148093671562770519145231539251667511971229498951981416710095300382451644079657676150787515458801603607038247449469094450359774995833237527541800627931169793135852130060288820237995761739376995482987485489336783061246971216769409998865541317272308266759311352064758296972541911451428247827975433605791947761331699059487250681607811630303496187062031140451939489499706693546294444392477886501815645389340543440466156318129904545541492899218187245890093150828810936323296494796814891296677553032425137930239046278624899020697121449544648923736617897395474446247328940780783931309515747694524549957205097012318734618914274989573663399204081436847216170478311180629630407328435699922551264902305601465865041504109697530573445172945029621547286176504819046672576049871514722745616873494535282717785015184572193840492012491207132150193159157182508870823974482318637498687162846679749719003609144007664504123241232520040620611324965830259046598026270000234288774623780944700575043784519749640352665017523830360823959733236105651074014103591864678090659908123644496524124920894844896826076279744785299927047052583364096963594581859457185551302901671985587140292841170684548267228128246220086670364738916878811746497055335296940805675760700519396966488135939148716517372066952392331992507039959891427772199991781403164632035015673561978795399473163180512109634376681351006252700089447257550680032065327065088074665791786350009638087108825214578529475495727033180051848761512249404412096544710141484358506096637319123030020830156802128793864875597672082999575579462222602358501034319385301115421840461185544149779584541038641784603537174290454855394229606274579207092529983661902547897787628744860785792268737483735908488926533403441668641502267413063782507301181818532117042920400375189368905147238396486963011310330135022153327271785001542037677517611618877054213627401724552100272979853615138213309617534353991074796033515691388111513277159570403067242911278821367418857129129760644412098879533700811814839725182032800883291053659862058702826887746316309194773144661112010046570613107884268339929986140203144176736819744286766596638873531570936360858892123754015531047685158926710080111385518096981391932323109927051613802837045327159128901328221844033981800882222681947164461594409488036787687390564445775686023889739369092939979759400076136619295859518401305904163720218060353639245427275346141201817759554372781419809955230600861297859417536191345347463335310298608041260929003774545598992443685388798131011598860986337605231518609303756401632244484672213640724208880691661720154494724733427733113219021411286507748907988727551650288274439049794362558805072218798491699251721325257928049094317922186468881977003819173696226901188874259478105608090465868904830982965770491998621172364537026022721636672416256037715032521697776223727559833106390121995341786061596799088382063662263545562558135795543483149883061292122058269454879384151726531050318185350264600657375881080818279709910137658639214565014776389560747171109578312655682077814281272932352980756982356481509051847736884032013758724314481270887142614762466307302515288881786204993470559498708770497517364519455891735772834185489716965799862385973621037912595811176266717798373568322269991807583750356864029209655520870423549933299066559481056960525184059778381715927547510671628750781388332748827288624981883036353570913490887777615003699608493647436126822342213810234171667665814112239404126119157202016121739264960103689331862319993173941900614766389189028808070586011893680768184941038291575482857603023633538885743612112241218128137099925365057434879805526252835679662295064550261606344275442749421830666192788383760970765992697785650701749260510734533905746175185441703495900297449836158129272063020710434838249341368307246549625174064855903264094767533561323471518778738910175420125392579766348290848914974194038893260734952245588212999531650424466366420092002496632128908637484325746567237231020069131108964634564748656965902432876772007987721216505450764718563004808214419679509364932765956336505048141780428672544574369778251116281552393529970914804824757602545395059919331312313025884513983959607371589894666700889560959744211077659724313013099654166620776889199295501738797790433832286573457772477020366631866197661662559307384361728834358854897123231718729832201289221403294887443300783471532095300395496269535017972203232139111967213736586897408633641685853352715682931255179501343619471611552684293519843860656996114435578151419378363428034268848418518338684287103467184997923063677008125333148777989434194657653786569202359599818246451403719579366848658690816880323594067076280497915953941917867023129244473316425074195531341255497807962248432266922192197983155918000587241823550950547882101262037522569279744670994923718707268731915441280977131419697309524990067361236177605132167302900442920501939125875086580291428460769159237380704046303795794862465114202188335392830156337978801580007374920827765890422577069802311761804259610364051019716737215470161981510439316300532441075352653824766350863713410111886407525268365433703712656388338346007713714138055597440739767017453162128729302821939019773727958818247890837133146347833911757633523358908420466128609908427003604190963545276683880768291934066543395545527964242558370561598177978970634646599475609211923585961291256000690477045060275207626400385210771927174173121794293515336437549169326890948540140972349413439342966292522292669434335756679182327594516597090251247717397636658429353352867806567446692370055292667686823759627067791825327416884097515385960503849010399068582978147541228303061580936720440050006609974971261991104509550906876705931622460630971599003434298057717066695149177147929748638630054593953181839515098368493448570287752262498218876775385102891905260489516207290681170563344232411531180340312796506628386061649793123542044679465127998550709816466212925601241886908629170121359283665291156518403750730065181925242886465180119185495661780931515713053008170475996262507163465778586189357947336911915619714870034019034747527982640738490122718570323543144579276580949153880792524428677491330348996580152371216984296795143621962303317753406059484080870087324593833055379558340030668969507317210163994751460898572830635554810416248337753119503313718826969094248478420698927460199154100483649531286161321861498796685013635041372852226807227085089844006627751473198734966086004626740196567016549617413606192278577026106188986673458862033144306012695977038564305025860584073811298153829933508773069194045676135158273537719864908903085633664343466529875273969270172023137455449892370720195952874406498693729368566392921514341798352822484619418819966862804712901252283257310006359669924111069321463440223360067481884648132376292876721998717750921205401425562601833655782842115364357467572321979819874739989316102078976064319198500966490670641953492158649853223631372141901528134766091212327457016593820601969209472984743007876945697416013270153876107933264390362152962119730661015885869717232111196733889517342345052951279241264955269089553039762635369087102714628700651342319772104802708303444595579727554088835514511095169691892673952268408625256010248462631330928565004756458765132236785246997420002482464190042581860207001765518639274948681494955395255108743429991287396271551906234550342128310600013487085245346764615711121808952783852126884381680920432073820541864077783716144415601357633178197552531295548821059723389881928334572330272209837883699794923822157767641361854965330699476394025634836029972583413341408641902768218977020947730236341168728685026968848613391253613061514659503023573780140801968434737694348401692789352256603687656945384872879796158897345711069270521954625540940020506733827993589397546650254788513896623227440290188830867729339877894160821953776873500967690896918852101940117578204693344624046803980549259708680198860837291475267679790656480110262760833472460989508535335503770480871648636832345482138838049361534059695902774421065835079210378135595927323619713804157879604818469099012827895341789009625503952689639562458419600425399008291729096235608915000749819045366093374960351618844177663039019505285153247948794727739367272881406400263799227805131356949584654960429711988216775312357375304131916079637386151357683800400124447874317032726461897932860047341542154304772323949547664450858269810564181324159118913233083705035476744975546369892207915767236273243371736252108879627084054188800124387535581675198620197640105993704874097102193617510476532082044723888547346016557885413249730805841352879198125818673323489722037454087773457112535802241082682034743819638412900347950901339506454046019986309318228345265921588583247437209418829334040509692777361226408843615800517851133243502052801536410306003896061399452576828729415919107083365960909626839215398985919307222190174679231988997769965432435937689182843634260188618852156851317281538585084465194871163745420433920280902603000944442528603617866666767113114354839998584554075832814227535696367319896761598721903440036250593479372520379112966002691420132077596143342933078150774851838097693295892301372322276598154344267040953972782979436466392976346284082728547108888424180536679078235004166617273039094714712551801955312189056626060025015289284001044661059597441258322990774513958884654522911074218118518979343443980477424445472900650248846086899631388907141377764221560595758453629363480458116259757702739629141849478426161576830342760046607553867790684131918721776973460110261956465348111503158022163681452906969637154386038496484913819506609337332825629079017210707372395930361482217319884774024668381510356310496367486436412515217789026469597130199512157707104953656273760987461586753554101492796249407709743604158478583383210756295642626056015878133077561808637825177088603501075431509065933031669815211012940949867007693019683813100285761178646156145626621802808473449646951624465032654321918546978529646342896851046452817957592670067873454629513367215592580965566887463768420429863809804605512251546788206774262342764312482637766289478959589813112345207557233843420423190946649272528574428087307349148990635662857911875541991288589313449892653528806596840813681490855141217401610245150895763523890281883411304932848417483787944533719355241188880300311373279919600328126910219657006307292577493350739076148937724947252292022764911578802449604250437153842130768714169770856152704528126097248915987305623364399532098338631116451759203624451464460080590117398182572022431827159546487852821098096403237380359918706165320055212935085499338380803936721848902409024672029965966586379966271334697189083807692141311001014401974840588360481204640806717266611700251579569494437033696892530972161211931505796329725764260006827062070751958153312531209663487024969929514174368486747982246107155029987613517449723537235537443691527884009654021185298554044465414121829712034894113623294373550761756607963241831994785528543294365247980344512534116479673604823715760161998611143983313579517577242163678586877527194158779588135483407019938341397481189835507270607350727493275706937087582923921987137744783898638590114543693311829905554622888892618471995731933788690645092122277894441247167626416520408886045584273618751430443604969303341437520660428243901771660934673620972073433040194479866880784397490787422674545291387483974150313139663089577996290375696130673043623612017365334979491481313723306094857929167639196902018980998155261113295814558273042209161007171978306251380690136424942326811902811051670412236932428533095865180272811155601419198765281957561032350193832289008816794305018917163806987997008916518039226285539352906739010339211479818936560570568970757616951274924137831829007645608342991354208194992637313477805205960826460469746708837626395815296163072942433003321456808740707594278628855618648904985979157945343443733260592052625487091945896520291597547550713075451962346114054207997246246042126622488213018801722249986814427478943193623053835559379575258290814609892041177815631348805536698260015744003633998856809095383052201108364695737980445815334317709956690847891181420411862311294098973858843105703601871011412491651393636148926132816553071844788490976049663325197393061022835278826975383290536968882874069231527955649796171976056730776632713380518272820853527729077124687545283157400335071930572445463271311015035370099451034233448959184185924344635500120377583124819514694573524846808226475213277959457724247599204661229394668511637404900373566900500710658333814970082290411749365231582995148041812436200860698201288116140722059236976774317291319791338699997035578557247188665027112299261930731008335360138897158007123159795626717252128801234561550476969078082783920855034496251030643763934482382036193808621405714095296321920082410859760480808000705981493848666425301253735975516392370237753952383074617377207613372616468174170083978256073519829046815989799073104813131276326236043905116468006191634665726940813424267010786968886426663035932336996220134503413495978458253410229843868646073409016403982439954889429322922874586577117987508090863065221454372164243245937834633724826938668088988425278545573548879705889922128294661940641762368239537143759904004766206119902384174840344141116869443115033755376471191790547903675243494869411355222913405187912414044414435452012695294561018283713232209322078524724858580683604164979326068014629742445364811890526295943634376567190999370632219770454727425586511502868503530434929785117070006419253071581460660574671904156397110796168819578326822919209760975190208923377130273605548117780311458400479973170333552400414394198567972492377305437804685732984251112341653726588167230992174818107305529208345886062695196739415923650863752879492439881685362133570993684075341028026737520732699521204334576862191977935905172045708258422019952122903300498796559556747380241756196376995732310262762991873792834159175054996440869985752437036490009975142073541783512649323233931859980866759094022804635546832710239277778155603973836116916047181372952294413195546635743927124403185291481917111529627573497903466929475164401447509536011573297062163556599268846870228529384751852003855853315680904117215537759881693568329715307572535015036512338187304240221968448490338729749630283998187397111789397141291816448839914475697878198234152792169347079588207084182138834312571495942778999841614923145682761768610111197197052708145514461900265623001909258373188491779611245725195853707818776638372390805478551151726757600192495397753592823776571065434426059203478473672602511850692281186294815579789309522700901494321713082187572702835505093882927593778463480783547524935324792438922105007433997853881232424667496705638663284416416765073138089226627335817086444191954908814296612824041881332771074021835068654155150802969059349450164633946914070477906116356057248750159912103816085875350057593559183006880524071849502805718953632744494409190295788463696179240595938111054032816623935201866727258192971137280184398381400798517297163645011633088365777270326152863178941644810761351523686113056179472968955365282320404695868353602373019152029409162613973931935535950905605563308434282042622444565104996994461278160768655999971032715341697489549801583345213292179829595019858476216279361551499610588756106925060074941797930962941899449880544490158149464872241428066933268743450358592248753032346858324581283866153127790591399780912399686213962319957164367659514849785233324229467802812491500478535976556016324060343906013005785506435998340758546547461690833297199438486552369427015717572456781392517403838570131292904656184844921341924120337476480616288659183331082053147536043599880109100266776848723245859594425605269156727647082942570733756941870238499570744055711872187893085132562175942884786771054182440166829581789907338837300073406965326576541375496618342878687095008211648377751266875587853943679521297932292075517522930633445007657450579408653718795186938368377943580865636031181915462256197219921461810620495523414619350372660448495945012511110539825919480689760506357901442731267087412048341616677712972255567459549012601213189502363850891152275952527486466712287009268307558816889657958590766423961901670093315028127522866732213433281379788548296481781179297849655999605553120515635879379550690135207603489164109230812082366650717313474254301802690232126997982540350325754392029673458248461846476779468803045115488126125526951846247724809999034971323005711749444432406314393921919027057190759656498676272754153538228718563443864242324950043301790419690380623853731410376698365765376190375727242607171650709413561800292915037156720603612845201185940471146981652717405475837172056175902887912165114452336687949611420213821371218068557902322782405050604305625689047538889029236847726747469023203462987183733023168381070553705913745649416726830968198202092634249258046933634020297049365305070265874399726347548477817345517726852596162370848274201615996047833610629752483143856804234620063154907833527852325252074793118758173503990681701456059494598015129212076256378348356048485480572147860314047214539376501899791096639556508677287067766050013164173110610395667845570089180278462814300168584432452231454880837592322839877003380634031289178516796483736191243962247336313611619399060205495476744167770861817030886474939511264907929090557264693577067374796985183811064087075428760493076832706667406334928094034060029895209446330793269961854290155732718092335093356037002604327908694953059617162471807880046944303974075235299509278019140018289651284532226483655286563734637332627170290837067324890050094820363549657398195248564060746510925449481134172012334408861480209744141461953488347917038401735111456533955945532995922155559869550258794548772303393375617651504335433955710397229956424309681156052139621920344480999027249897304715951334123076373631425210613445659109827530987055886040116515522112744729707707913031902188259208669887256324279776700333888825573385171982907421362461275498682652662548657207505945895100477267980087230431431265185155477389298540546760848885855984912035049747143958363928670530075749721572552203428751358544704488394225487541548498725397372847117774656059110207279543928260343058304717636659590567625697553309643703743069649315223794541695060450026720421339309169697227113928021277948902106125689688628688957414853946593516316670642286672969063093999020913439544170421749351970612601323361930784312420768663571916972569652305635521757141699467428476886873478802398683584588390438816544324289171268191766169974908691818833444134901591152569100967575973171883913087391222860296960960466810250550972661283883490632572933322147650047541434057508549067091884718090225461730448373213630289776475258185009340706508322893232511491710172627195027061565452818775755270466342530113261360565567691417326634241639279429008234031393769191599714579120024833852580160523123512834288922609617874168738227593092957306706943320194169497756925230898065216711719561030080027529675935981472645551065408093116858452039799007105230235261747381712931821005332427210826581418496839977197316854546790102412382571967213649594149562436049234098034335155334574075693820586924567798861510906744616737396029961939788090197252018564946145140324230448303575399497062094681941623618896383293296443946590403762464325809391609669314209768156676729735178799187335141188200102009488105415693378253989329551776977268485535061664268913577453548048628343682663275515624378905868026249927502927621375381715534082371604194972014332733598935360537661308612460660590264947542057390672550349245797124876726335096513821919725921223720006207046059654776974943601051983988461764526935623717013886251483444603112331719871425153562576664605595699620825802559862679253039179654086136146646294751633043214732375813440628746031074713649651054996704127646038291958676206230473996091145518365027255745937012813699792611351992377628702819240151968190769101628622359054539441401189438678436859554057547751479966792029788521244929407531522060412616439845013915274157071204096273282362241400648048341477428657110979669684548967992606891248291211772477017847141340383935731890077000010158277236253370070119627542822741897975004751202636912413010298692876841113490897409221129165797286000427652818832903328515702852278646779238670624171347181783806815079596375181772180205027311118194559241176150531357648928681128603601401123263296840285248245173028916603067903386663732109552553748660695858494763288757256709657709532983845967612602056083712757889951021672874263580233931407468301370269213253438059482555124462819621878055210627205256025590671213413485749421053051823063271084193493968485908708423260739208136843151413332521945560405167457595500019605130257743592015788828295994811048026437344660359978474424945135879705614531281022273127965030890018177651926759287044021679597373243966939704844101723408370435296207836259512547882597071411897938636839631233786292831529905720513139231400826203297790351536126793770117894594088898688920656786791025169172212781728043009964996352028103212493995240350325246042228508911515675405658813950100193150945024670208139108838183310920271670328884802077406493787521757197521338869302953711390225377808572140987817029794249272119230266612433320247226183724891255561235480890896586354550715582331657801595606204586299727064819720137333406979190116364810281778810299533706029277462497790440366801040709178032270776934982868070608302756199353508199176099874585406015272945360605744364002328379416261504477488654110725661121016942067501612019547206073535251943591973922609106654050165350019138238361824487172516927059392939535130368394650445312241444908371342128630273652332330166056574443672916624561637335823815867151763602735670161608047592412103564003229033108068968797047705723192647277219661654187123988562694675807280046653901625694260389262735142257696348261330509906429834251788323019524552260137687238321466337304346984801868022900463666321505863372719956483794929566324859099965511290643544445823003743970537981058802947224840235839111404781772967086712307352677622694053826167199661967688628749328539198107184922353131660962920779808247008391565521593514467343403345941734123751947656177355027277534311383674360553035747880231392780984117037346411938098236156296321622023529462499433576919710064929230346299580896272341279285108556288909542484574939155981186665294873291937326307230605523538933298792498950521845044238591126614929267024626693781158152135047952934836869413736355592930038169965564265221212375562991272985215207131657753564649038984191057345341811526182866944934973058056933889215375958730297081958618176647788931261507953192369364631522086479313211561300605787632742666770667052688315033213302482132940165993805377071707038331081950452114762951113697711439240623066996766428982562342781976473191934277906555228641481302819579110730121272371435244517016151149185597934593667728159475462862858055255157633851708406975340944851623972682549937088607128934076075921693491792392720069367685490763289226945971297270239147215056951759624801041568585413022044886518569244101228203874584457630944640362945690821231353782418650115329394788150221581711634110397734896310037687131189520038956171936219258119480097850236190684876494244400192215733599153935846169365811091203485080696279595576738804471364922753793002223920377811539315494770855436385711838669159313464413493673948384447984364604967958029859715516673254944965421686682277933569129631202592254628238497022289318964559278083167971197186625672450314775786057106802551548839538529771649580297085534732218299167432739400930347978026875192960025408679840504304611303950713315290123246351809532961630586148729537493279670664292884297158803815222189636862672660396863532935530114383306846089469118683325771045449432657033985094610202760935609323897596658990672824015490973739090275601243906639334086129537334541605493806298686131960710785719399503155839463394890504268255862435398309243759087339486840949927020204512220061246208733096827411602529690761995166517844845069815386025407659496142771511645776467737000280539366720480595134890422387850709881167384498006117658995490966034517589690201266077466192566840519862035272426284990768565006203442267429351321047130793250334307160281845817291907326457789065294079894904338471092714567255175763442194173203654991300383588847510189654977840714272631239760942145880992728377006399755418938220919562020149371133882029696758528427714289112745479038206439749128448384251090586708905610737722232314430008146929747179308911586275282731053323271588028458060986029184169777935046257678961183798194744134718792456704512837039926866181837628886618703638535899892617872280308987008327594560800818593910059729892525860423372117542105933303987533926480595747636053227616417347611124444146669281844908502629486978600480299889134828045333623838818052776283235203874533772067740809630231506891078239426899292802261212749905343688639956963181314541802783088749458250792345871739928912299279613125713147539152118858318519835822542742283222398293367676793836618353057146254283703595908917728865265102489954896795098340129823068207242513142468483839669451191828057052280196913615033211969528734470073474527486720418089953822572865498623010868001229003219996210509147821312216405413055549087098417578670725884985264245714320541969765634509126751581296603151374124083529384747735259083587218113029435989838498717563047597061871506329489542026299883529273056445243841638625212281857638846556201901854762436672492278802649991489509351131377285705847818326061924870886516721021473198847725272315077428002475775831497559780748367623260597804010553284146921795935352041247886722006627925178069056295849263837806212670522441592651491714132409493118165375532441318038209760495640586044974569484725814806290506177633017106674533406773085324851590462922361851005451917438944332982886100834892608836356539352139759974725310608302927095918122371259714954723144576240334336051483354206116618288892514774352050444657195455766647402463259920197313050775737617257672395617602179088484476438375410517626231958534873906630913936362034888361846828303509295602022915502172930777163431382157405325201561492431008525211783563376528099574943367928850679800283502117498448556739346994846752854531511709290674432162640564076577903420808605414111948913655055793015945429914977021417133125311072871629428670795385108013824574418203772167764902358871125450954875578986547184374990949237513885105602642954306964146627009917379947751427466738170961498012347603196609111866256710010018202316176599501323627114816943855983057594145704668853443215443682145218278651680965825698094153367890779024326950118053413205095114612812751137771209955212277359900979837982065893003739374434574040284577987251231167500602758016293012190065307179640054918618637804237429237511827018981589062689855082080490176707380699518539990181216927449890822519741120073978341283368439198162887760904434897753853031039346308663645413515440122244805885582123042419244524860641569891267517162513642250768234722864866040386029349844295731270988074716523183268585956929764876740757895596997724723993250440118509681464210258696662367733522726892814224659766410585986758470445453650687562744256782301962123687841944004967672787497459200014628799221210523979052553749387731900834124050814216833870850829384041902570873902622004439281871911990678225069427026354645506390266046250598173642555945943323255527413759889077575445248208690203956585926101078890843336574712264662750418719169984375221713997877199425172065115928409956753859458594398474627966435869764203014435767423668695250185386102224136722024426865048227754827950408753697140561098148971194398706158069031326252705807593120456781512918907956615253483257341366661437236920868612029328942675222717550965336535055989725454645223628482195173113603911631733431004323592856577635646003759094878275766534509400233797924618110721306212118542093297951069986070665320999876711904391874935507855090336025126311240966919368751182502881949893697176484918410480135398618346032468398668069103030618768677638684529715138010046383278632812306854975874182647479742197907195048840594150741636783589422780855056881971943609191232450383476171463129807237500416334502791894425494818845966620497392965784496205688969057979053619212863499614171235015134131851447124188690386770571581296038263388263857662519477078276347958308248152974695776168930967556521722515453819011482422221742924674670440346159425084955117932764470837931658850714172158051593900581436739659749055425561787334629286964586511879297813219073025849828588614456672361833570700519263685836944254174099401879713018304221609474803059077294068532245992118775175617422195958161488173920327282699225329505337672200726670126023546995748845944347749808216827040568099520423207736408289565094722610509583545705313832052972089162505032662521324231494716685251136113895000308714638936116304784629788075441317626454461710675405138650585841235975679934990206833213186040922155062057638400341900815811844993084849333581235918143325809373734761745967519168735148376586487784543649127260025193215042392694421776364107384557304732957431502843754557306779444146431465835655522978897451498404121112256714399706400145895885334859666203455886052008708805846681127939348198336475907362929320782328403777455223155517033517702309005926603841041679893660584685379639609904610374450714831791840410301666709731801308822449003139110177721513712121375517577741096442144519725082526270856621684278349172739071709607904172877454628071619003009255616655393053359501236127599869119854960927441794498379692095710227279003631865421884019733021062704878860136651630378932556826515809546273009732108768439391715722956832815668725941874005587440199739234849269645521807877704471618062336586981340940410125925355541170134214035585781445508242616152080960579090601796456293163224501641437826700128904032456532291454355668092792471011422125329210471467147778569660753216469094647277024438355384099865931963005461040179247099910559986672148379687921658815506690155078153911901515452950403297273610655061214214529239544602331309155054213581914434479054848202450172066340379799376807976758263236232098952658274461897598964173131559571110000916661769587426278817631539915148306306781107038962974732881484521286236515700719488962008866550029050395840422682002664636543363148716341977345798930253385501592025911925023414952295401773385060126706834197961303466820190058124946573494531017507294504398689652844980417167236327095386666444936981521061863817980559713846713773483423340837459707685016162812412555723625643876452907006719520929192836773638592822897207551172007511082621617658469227233402178323465637655065635718942169035842574423905008645984427357773182662680357464821274670554556718440763687234567260223594905719969907801446084511128733292700557560483176808017572820869918808121404172987998515385640318942317345213546804508843889662861124132659024792628964311429159961086394048229277624176469115943952367409243505638487523345010491909585822392202124897733909291604652084472038418569941923480503159132672563122524462790306603545680874612896357636527559191318459316695098027094480348952970619745541590722339564500349930977043531313594491694163520700134079256956264429792345856325793965324875638945961826347375751669508773428552597272698980456620999479107869548619043412947571784959222905148570531514221384002786243025833741866883208046628169376898970882073613732845364179919707784162361633778897912191071752084343399061795701096593157168174718724590293961377553291073399746597886374901613150576616133400376509198402366394956664489453336505929871470739134442268363760577558622587239319125914021238286558140596511889072712287604052252938775353747290995782715898039716846003769124811707190107272071769891195491907352811090634722909623558096746625091025246928820002906911127743981964052191033035606900312400266109874699374808243799382226608888888328577122187101204805472653526854138128725652057414724751494603782987380283352277990438830693836955646190391358505599592112785320073004492832980531556642736334112053519551317984112777943040789944804724581785032444364987052802524023991657584483282582305902269006126389130643908228826773759730734372201532864090665379505812113703280456474263903761362151709710747987754859065298922665574044229552299543919627830933822744620094009345141371688823914192237584786635079028331715402468078908259243827173185905173884098380921454996145663396646224254438927024842569086587165549008291342840301413055328188126286747507389911840632561695437823673862159922798748980569922111685665530774168365944454492045630929983606681810244064766243585731767853769158770756562859784221402957338737099396969763951385389813625264367362548028781912231852720369538474504645586242968619778752509554736305068424620490976277842586598808888957409009161560187968544287017059517181171458458518637334837569103543962838828545250548130099816657956654959471783017145091748756331775958814086246859948386403081293519004969143100111572724246111542801642004813509216358481718672096405932736947770493226315060747012591978908044387259237036910476354357171877017063208459490166556108110203459975400749526780885499055882032627110158413884401641864250673713971871454522240034071967854912073228712500322476867855058812346289181629869572495234512310504968456709677945286267510524176080141830829783301158950312067387746229439529700477651885498333128463955199144447917610029070162920497199980306727764999335382419434901145289258483510204876415778451844540034448980886821075996589107224551791537276823435318701931566115210644040751658729027458069751087199350840218824269286722446453493706736774861801336978787011559522357512376465756928736660019442505705363795486358117509446415428110530626912548284852179251276866045076028957384765281504880610313782698681218379033270129023334345958315828375910955929708630477096265141191601020423885625684401414672019576404523933145454509451015918581246061675942080798417549798383399003577254091405586999625168664908141689361431041352445234373616512919904989870331164287946072213331964582501191903893175598440783288498119793067725619431592860978798920170051265757094332399365855763495850685288994062804611857952762973950295373281181321931572238017789292202651875870809369387009216706336421003838526080285424906754849047024748535174565078353096887014186665888488181369662999849439654786023242507481476208082139530270395993907466572519937163250641972149467941725400146714589517155906417389555253329205418631948074731094807969020618948000905677214077441234825198756116152345973007428691490523987057690222584374002273596214858955085559296018371475800370681774316112681651636322827967270723162996105530168560202108753664655088256998468968835026971849386507496317769062867606769397150423496417841198417023557018020688214008933428021903028401581334719657603343660794350806617284739044162839228868463497248531495243876985118953664951183849950526184286362681094707430795279138325975397914681527790628080417590719493586702800953366164758844626879483092221124308993684749466061474980322445028712228042196223064841746035536304943647244748290354428035499418936511388926225386182694887493332517498171498612033411556557356339064113305659004112767588517356025442882014406145446600540263836440516036219830854594916759338747523789140786136156111218946468462925618016099222837224030409771835983860713820306494581317177899959835534220620714064794560734182561057327936994417637842027811453968007198786476964705673389236675883888525120506491075037791912311526357804359607672860266185829241155610771626001707315210157766552282712696824616386859478332434383982036050502515041447050215609375921372801659938885619807374585831773784780617732647172856166297466124386270983829668362836468591374802432843874349534948673661074876218286665761527780006611857373046718387019142079031509367030105090221988701444516306725150763291024346135694341125404329210719192711231530026584853000697596763653530628757431885037603802136728876900426142980887318878060487968030080602053787379957769860861564719639688386024850569215058510860370535940631980342604132940892896186465509038021602906682885915953730484685829354873995502532282646048016820993136036352209575598472223471863854502039831912303255858470110105211134646640696689833924940825468933444698621881774189315661178754245457673865337948850627307522398987263025892799753222074792869144388288969100022609343275214093709035467989851494979530735328089481675296565816625021153125868666467066680588782787814425421431818427024651884384916443933932481080469279903998920473363188069296190276052819712253845585830754683648481460100480463625176768255768067054900264639550412439275898503257382286083330985683277512246569764222560502123202195095952000288663568918380369407078889520569461265062265352790672973449536557181029517768451645938807211111723207621798368840325020404202268576649754102218887886906975455399572610119598966252451815617951776493023576480096187743661932766611129358038243110277057987420028258212788120404668964991172240354601999740392252817029461854065435180332617820465766082392029912953945344899853144755312401015361827913088403789938158599018549746082609249447416929212666676985448192108013742148605597146962779865240489241281467036336166328151580465299633343174685230037057029917584062735452053010247719219932985361712104924888440530647581780789150545158426665412219092778089780388936028749591658087662007193513811742964558494480260460539663343660550631120755419444650766591495950754955754527434729502788927276408786449268332461578137721307339354993106568548269583590691127638626211621519648192625630115673611839256435891781944917617306410629319729717536735481373898959342696684963960303273168278817517115254201000737522232741433277908788076636277681702086404581402331494647322379586180650348140785916759273516187823567635132251238599388775996197495808230803285408968866164682728471486078193740475929479725710758984785338403404386823080941939738095525387841698141362445801355397670688816241514880479648099101193211293100820666741334309271151759005486384699990903999352306838486248976228305984783467935947128170853546276192118090959141480381704543065506355799869507020547000719057845525037107696825973401427645370106213007306002548000043375554399104108699464164135171181948387904284537909352201033366580349891915244506417170054470971734350456279972748502108958541376832919512368810628878839317684327312686066661240534848247066977106254740325370939350580801381895103932211395097182719974660247882837646787891182090713875348556317092429429649070289799701320421399033096118806020037577521147387167936002997254272346031720270245755711206037594087405003494332092333490229061553761415209814243979165753128264930597013692281841557266999353278037888668021023443954740509903650817818887528703399564004167122103202369730791402603976847979764935266019037611268744839413332738894458061926411319584216283311233641488207917346359536449278358213615523543831119391490246015677276729456088800462559652353338203877771460030806362376328567840003038904404875498933619799910073462719398371384505669672255598805163591383969262675191607575096492339843732042803522419055707500489218462043398537232216209137522212636404577317871788635162424718427518829088361796626738408608611983918162188955268339389606537028672247793172673389093169310700468117254281299798745277095194572224541168567290076695482746670948869281418271227028613145298581619448891364241122154826325369040127284501969892189711604604016461192146629585477868117899509825577072592174800872790921116268941338201931919502601614982692553781783744337453710697303970868256736482320810095589565143259225134523014115917094907719146724289227473256772320637378851688596175231262819382244613957197057798693267063236970601667085053112534446070527919670677110424908965722577085957053612375785027655442983451416882796826797649303219370825615425685532930324204238237218288362055594526353670085667789779844497691304406291536968463781843164298499147357761622102701589103592170314080856247220726305568484552275203569378826903826686566101320984673110751012978959075746106809595026891753355480756735250767597005418894352937766448462942972979009421189963134690278784322755895613191132557603669268237939513301724938238526356089103207048071098594253102782025576406203420084040029258608533167145974225876405561268083082118404326414857732656985894422800615433728790791127012200005519339629096561411088914595361222333161715682085302791820693207415358196795417345818949548477436150021944524147534990813737753225482509402888028408573520203691907725076339075457581860459306786871688318497395347608249195912049040149483592047811050147316582556662355559626936254215457396347425570932071386712883205625443424453072364287148830414327966226496520649584941597773667034411849662295373870587725293082416284452170686071496722618489677288556683141395984011963312239702069885443078763231550996951470379779524750393256864782662750436894393962057216884468921585978129272620397388143749415310386639792240704567513636091360794303952112722304310636974248902940017204722784125602921895343365548227364184295362999698019296446808182946472708382372513469096004090193186898324421185037438104119743417406165301098403279376428579325851641781888192474351781844411441072811505542781713277241976399252661793699390270723836441276228186051216453950021499035056479887094755632343314483158870597982667934832942951857225209670019116585644123911686205922312321104093243790728894848104489340901103284466140390650084497519445037113044024444482847935794199908582207895580497402865919417067437183740486792019532167674967723359327808289580218555226896751802580813058233776021957998847547717644214860487495341617670430995304989001842903850267430116036460283241006238892335586334948212808136613587724813778096669357745008928994997093180207994395881516391558383781611702299879382414110056805096770221751010067088331869049719391866202229441692600146002709149161323328357310333062701292645084825228461101175335271727270066238095997504935926522618508175105372694656962892231493739447919727682064416533228773829623513923938746874996955113573523019335104714236103893264230538166797458653250918859200199968189422375875912191391817433031977673966012325281656193667219355574504490323363245825289238433901526279513410194506264237499029209390429495634725208132368341681676395569757246499583537903082414532703279454014844559798723410620310300542892294503773318590146615506366855055823910196352249761505821895834143549392716764830848226404001673076100999829260893979432035024168715570360684789208055167668013777585752639006698041008822159339888964859738115853066511185571251544473182379119256031507778781749143326578625914925133700375101311071781738501134095177059051819434195525946386356470757684901061540806439355401850902462272103301926099057974186432608545490684404144876535453908243630461837080965311188363863184121899020869343333024682444883812725477668033762524525336582066721216293231228296155421280854968792988995821075833222537739344179557091780142572962594090485109083910957753912057610469440966088319124302254316720014275982529951133914939187303767044284057285954884703479785480586969889460980876126694928951940297993104460075267397508469756836277636169746413662469032644567333294266747405680751904760336721912607594635597545599584111384949171245928945653413870124216109459743463891441901821284645168690432296610333231961121218183738567151203230244095991647152233057568975306929008114506121058264584928960367272544922751164855015287001091890301424575444790412502176204557372231517107111185321821737309661983789051948495225008586726292004564573071871387396142536912008305387808361095492180638273369116018690011932317057577867214649057716433648899523907890264571218697938381738203482462451853872752361282828574003798113264934931344261090889684083668523376216570487238730274240309223128757846937778406789326315773885290947485610471760667006265559334902225319559126590744803938630811193546767374915685828277738908941254100426547952104585903429777283615092317985185254897434408214326293366878727469718916015944016547059462532535857715810125086650061702445556331179916794232335545179279776651332168339578393302384140535061307741585248416419816170097832319777156618266772414583416598275988200041377985536530112422624107853081739606375936282638043020046254495159975849587327236048555580630879039330523731904338535393434660971882097383448492385630935285226818762613996635683790044772497910815926439967505631014242905267390788847111546563177910202200967562415643927179269580928926615204749310782351616004861009756145983042890372627673538887044437594908168704447709689835135810218908442920511530500030086134661312306574195365422563431954676848078775916555751306430040075479267550474452818302241154080060233219759595455324087556812681867237343959866432015301368415816074278405266600040208737651163913364406174438175550033228477828431791964018489352710502457480888934057332191744353925466380538697716552746088653386585585298082050667989383547008343855849932841350488551204077592404507375138342313924544900567696090288534488049164095062520798831061610881930189171018859805758172106776068815889683227488564173999064324138610483775383985442056947502660895819158043280427597706703554253390896520449671261571629270817134284171297344720767142034659158803590890188284296235673607916916505849599597460075717728347051000975112318569077268745193393759723728020395178445312812802804781177796783795397564155720070729058552222603884857053302425050312399162801525922953659640064546042598378645714451679633016523745333201693139566796112875050773980680626122090664090294348522295153250731385107273367107593264940179970435845021043468007183970340955321467949683965855057622006477678711248001557442893925930269679293028630181742904239271754241531557284472932925145475139784720966783141330837242386668423618271891461684704679467925172485909560893505240455697518430379422070845395017753351468693215928970249056407674264586267328502855960199470364535595374315109268053359277464291872096834951205802703528168709389046630024219902720513894036512740737945745908904181111575068846196273606575774921501323672888447685306368404217537529730320125926394049898113931553162104857115160018408894020710101999428265138615992852532264596076800526800728435031144820129935179390046925637892236495372906599262007164028747917638270754970353823103360026757254762635699662898151391847510909094776880730542418598050606117140915037479537056469914258160695218233924590629176571506422783895969040023704548537457587392756268789769614358520529128403969899859074580504089561537563053033196746096824873816743702283953444322592745779178588401748365969016685474070630662775468073030025597666516967743453544531456102768125994397243863483183958460583821866938657043290000972799407961843206927391887948946156679155354654002578674157821119872346459941325646556073597121773885007113780190621210948103927298189025464380250821889518852662063066574492839070758345443624517069695432658665276681139969184100109056320168425339155774621300715100743119329970864349087324697303286720150874864996923240562266165491538939015116841073151460973652773563329344904284331493460912470947260998896676210634319730662991183196027786374553194605766955898741526437184465196464564731812040156236222295308270697448843274060129137629327769934413880775862550068950812951398457002892669215934665370112764815290663573559850632069976000428256164754691063285596473929545687617150567676062054001207372464079348460124830214690297460963208465384567745899208690684690489573082122989427325054235763747813588857043763977788477030674678804081261962472523757114692353326183136798307956593011202814570918828711890228100085663819303144134068744149526401337860645384193143240455063307024617176584175380569692084838437268325434921319705088973457713102190232263899128068845952990839578392014683895467529549408253499514644034737623269552781216660337913908293000677984698172045473826093396609426490735476992307629112094046573515613836289109598732036156183230644635152102353071280939266563097339081696242120367040606374232388801757892281564974696220848437721387937749767747513905737333800902172581392790632405231325277222193226746997616031835385751821849845919528454012585262864310480137547079745425650870845138006096947635244653095864675939390869879959630806032478728574073074772866957909919404832100451355188541633890586670445894373649841850286220471517833677312754147845006740473342815193077094394316984144142896618305260493658305220353301566564544180597949791427885131721721626640100943785338975810623721893406013910415441878217851516654348061500050705497589255147964144812040412102394130426336762399287095639186815407451053391669928233384211276888852139641506914749759599178621845191693712824154342797950022277365686019722842009877853351267197350808115722171722015349233700475803053305769245575348812208466643103056266078823158838149711027745273094938729387909033853647137567739221542613915374449553440863942243789398103478708079089942817672814646273726372332544816421285606641501314041526119605107390335620942209857856489355675929181760573836034173289597537070606486307882926571459706460613221149068114226632357559975404744101230286646732363894049358712356833580174963604326849791310071922525753190772246227413653129738172883429068541469240385461416120379566718131534707367974441175030678260902466814082112606760989169354868706093616081965011639985294732118953637400542080898684341093723700202563585238347987737597875447269906353493679647844204410594501408003785164181400325990512276003150036324217147929502102535296754715479111103027431881194055021612024775659322856205152467317151186602653558068139960706529883422582137449717789820223902395523692966869871560205548626011785012306480390414731742328756762925571879945799157539414646056437948719975744772706101405450114546556403193973297014925451769694051479578935428628823678455389411506739266944532791874038721246109722790141040442617997690547185229592761735787063997797150595613196529859441137780075870041934156261005045007493323881231981847355318213735255952815831004969625650808428189137488475165849130905240388768091211221815965446410938805334757884912034878237465293243037227757037123201814845903158929087329292488206066033115967554156974054689278002195227612234947891235914291879403363437460027902696626628506518966436991907793450891044703593923720014326317960233474654403763347786813020656246569513468483686354893682793299464999489025586178865917299854821028828858804523014203875940349265606463980292570816963228523696558342881408311239280905052382954038022365364601100101570238360594359023530527848920348876239931092980202672856962723437079656876000437175086519791735704091357717020657502150510358832495063445435569518924872106907844034303323588352696562202479053346492730077534704792489328743730213364847891324550131510435076366450007715047954941720403645649897564217295198482253067280508050411734597345064898026285555344067298548106916785392099060854398520432661748881900041575289455507536334949532757725764472556570200712662479183811997401193743206600489159733785929529380929656129106160070707059193955275754603351857438020787554025929508472418146008968759559013734443978592002728642867757790790601250942488108773342987133901655479607986105658234315748012284730614268767307852193210885587571354026360296942005515127579925907135379917337655014380623494020020325460728839822446849167043711098977510895821181681952064306092217528714067935394307000981568235623990887064620349711547801250783262376342527801471560126215992162312553201151205701860826727402811413220514461650489185036278998436517920460292776205878414711111531169413020736750372239062043065191957716248053675292508264465012282815979649575767074975640582541985810569041726807201739571509205531378099783712169550298306111486659262426035165285176161934886163158709355106290216829209389377836369235706389450554738144913057882921219505720508659643275599187447247745928690354379596671027659324162248714825636894401141945347540516476599110806447950564056766952841445540205206337774851165189940588590213429436274344953067269397409566977679126047861321758820930432519237259801292749201335017724006116399296114043355918480516348494156478536853623374918282895673564419813180632133365508956974663165604023128130199534020482465030890150911379044630688854137788602596144963801463545783863946130049466266616382244656061067497093641633263067418583677443812888466948231325896191240145332319873469873957619686790396782377429277922657341497477483180012814380846017403251777431164166301449968110082384021282080747795512813145169430189697200035664188873546187018857120588748561589448039215825395869751386418626771602340410431200428878695360266810694596893252093400341782503159847286366037130434733861095144853213622943207814578342658190821766958230327281265958345495776468349909904711144169900675333092154245388260534912420252282279356803249166860950583546912432133259766882981832867687511983848208818071222239107169751697206058399323761711766387139912524391670192452311981875465821239925146872692019184815997863935886772584302500230646999051606541523837068643177090118581530943925978040227196913947812928655103352865539308520161881097784767903173283577229221670351135493859170136406697039739827820091056000594890370451115065098952635045659554235593696652587259469954778642017910600025946751094230891141297582574370835714882560889445921861762319545812836039764111046159962736798466124844469241195963574567358911339859770764822738776457624407036517753456738468055345247238023849120664524608456715764059769732611107110299879879823742521412646463206159154953779408718444962984368978115082541985414989276937434898234232909910595480685483043494977539134927825728913493485961550717056059019018760269521905090287760744643172266351470041170912809261067910667119392016441402475569260994252935886772004610792177608972669373053326090437967228091240367750957545487401426700598305992481397582833971653852594296647434185717457126744925556252874741078164238509842940655277327980560295911587402035339758665495826911876151877475684040771609290708789727990920861564973272601071684445267767064565029964237005504346451408843815010038027847017134534629926494350262323496230283270762381278884145944384481258565877373456074174292504321953597326082441420836758694541784368617760829996403822089379723538601201410854557076494023771491407998293141914435670450143741754758659539470855391826709278336190233354109314244422560344073769236191464735596401998237703681884457757577602352071598350262258448887264699323601949124099960485738221064942296040006289358597113969297861431050800755536880916899308783920394997103131868898839972773437528001748750833694048097162968680483504472822099936079303223554443427767891792769229752320948667360830441524405375236782210058893944400803519034724855718495286294214544939200753319588172685374204462453431199553251096261418922062002105354084044885165788753651944083198945999918522101252289115989659833930455157413636318018033619253652506938646255883183361627606710891301407366640070925313079907463913577365602974070387151921737621130747610629496556212019776177199274110203085521381034114855194531381157183336190352395624182667179487122271191824129631612244242647221506654622280280363392805720202373150017740972292037836198607720984563653128162506590808144227250631936716329641501836205118698558503431808917488169770698306181609812263906101732747789595262768220483976929977631367466138818202785761857347455878696057967080944533464806372331201796803267553068475749160729606256231338186978271574407409691966205523158908353186149124950936358421242271583238605800471628564922035503917660199921096072446011239431169527151340451640965390582449608964303480932735432646474076112969730058264262026983868077291534699131331943382013059062150661191764455637248284434598134922220410302747800206648564879752589835438763961189951552718076368449523600160594259805277734142135664053464515971368961156508203914982519153509632563011059492394892372995902159310121774487276389891731109799171835076418420641687506126554841579906704152797624044536103056812784544445568035241259926157004043626997590206316208727510499333400574654544660304989771751216773369460407276497867473938880355380114920717490284451347085095502014267806219080708512322817593301260752340055476022285761016866712133792481295040015066110723611482288764557763161937292581541953069933051999592839187137885545750553604321991633967381166176896099402883242650382510132717435867801947972340953783814126156752627658607200614114374740004741831487145549176582945897671942593026938809978736618950293840362276923092586781317669451167249840812935935058008000004123407063753908194193567223409168936050573428513356153664936124422473049648398809675551981758091791199423359464979717965047750178156084565732861850025779559917773049573193199247883271837653189248352933570028805116786355078065942079831241431234671991717595317917078474431204287951389803980530892669423957715695373676950953040452767786767177153010074181382784629409761414499356804510310798808825128428172056265166796660682691902459326408750809961885914432245281973801514980593271234672830637260618524456988776117701936893684570640766285110345862158843602350862688739828211162889530428967202520843804823594342337371026152037455927705343991608764243086279193483057651765347244915129612978701420999619858204500073135552608255109037382641638304743814840567039662195896949253076615802149277567201856585239779795583479453508028089750241719074637072143286044689024393156658125050547406272204471903938101381793216845846341681624960208867708714761922034768962030222831482060364706798230331873895312121870012336080501267401538272686180335553254376549449732877414773907682904728476759653174556000045188230348289787439705067095688116667584331959089512942430121377898104916665118152929786538425318431150200836072279073375505678292185164205541592316183310898755517866937898394812063264790948859545309249679408104537597644229764540873728244644386788879772234899554836829498612682678137621718174057756991997658178187950681028420757746281919506618529488888497280247211422608034617173159172465823562479885532319690309074325029444082029836857078298826264315824623092824577073800940017111005677647891842451617983598313523209953674466240765837942004258899967032967166027043174123760587762260580428860252466540005215416566980793357194034415280358565280367891849195283892761705153948710388127536161732344672795482032026118628712952593949347528427217679791761546894927426982401044284775483183182452581448347135581532511151098436079561503521796279380086266992812235500534874390825599598886009274779382393505379041960697005086113610475208941008733046427245039981427526834219325653078843405623972358049818196292169536128180773473099903544470558657230183125829196702037941260635374079125508729390326450167159071265206063154156731482442602991996192448663243033637320827903251222965212955338941820473050074168683052202751631222583623953152229965885659889001235478395033420811871807075911836677599891193167881632308803334157133809284170862902593633052104239770298937510984236615998017916277405723095123504091971579772053255377592666140386823481791288190243163958371425027992001850761402091475276886093548631393083550304800245165880124666923149560157936027474910449165847686696330015223945391858301710077135151592598946806781446070919583846808617924524112473328429924768344178883609204193618742030377980651698106447098464250977748203870422179845560260931741784216599058646922816329683548840425911048312130571318898200375594368029114424635023225707617172613019742572707822011159240121006176000236117963166743023702506849938293019519838794643729607069864523191344961397546877579694679286306243833823688431884965287625242499753760911024219431261744525532526615454709117698897343052345930099181597918130226431471710145108913300228362167226579486926067753591879593016751587390977549615172764856535263649994138096345033712908167514583046612110507737313145570197340736061407683677599929119269254958304536916555185908287353664372600497713400435640037533570695356964648551172843761838019874733121450356975036082796706739041204823662405288817471256557680917879705784726681952512990054336784345136976132643439201218336256275567539734650302533127933963724627826819817329186747843704537306961582393797711943725314825615303654196938536288101577978552477636434522435110145625352563503352372395271654813612896583824831195905765923494563440703548924056408915651362221535168319979594310948235186295618160219176376016337642164060880010458866947830227979975588978949808813234082963435018763086119867723835029911126435417330965451897091713831293612347609222156553711080441138267990471741290544705375809053016403429262988370971560360914287331373412481715303029021392609117447141874592574415042030710962734781100500620403656220857362795994482698538687174589882229767787362612015249533268753823113219298848809690756870068721319366475173376989966086837672262410438862772558193383633932981017971557220810891417287141161522076499052465991718089470677593212127333361895382976896525569830005166945079976179748565342756568340234102860178870133797749413813762457418454273270493825484371424903986822521833717165830268430001320418972208538894623315323687982818405485477548041558068589193546209867290598604158593626989294545869218766933456279928676277570069878925096387411288392754987990663237204906281353422702348107368829000731183689076432591094625375075862079080720135077686942563982028425706634244747218298530050843493543363495403579965170930062169892940255735776334501227677781030407278942275086696009400938105954248511928696048123828141169088519675914002699097324487488836460337531690393923684294964863655812857461530737948784652751326100112277669229098392597888626629459273412631715656076995770616113737794939055160559390553691353988215340386372644886581395576311173020301717552102734271863314157388100531869807991846081828935350140560709592986944733004321539242789303338678842805467916844719597402392623901138804363944145495848676807480230047606688220807725084564116524491319505596941340992176713763086202825750876673358823452547621434615453628972999108484469020627480775242068914759246890717938674314639131620268448922623039677745875149189146780101774600221169000271689816941792216611973234642748867497379605795163049431070426137362792895960079133218039460271253437668298678533446913139174898899130826894861665401938070018187067602010486119787886244858568390965740455313301986713593430923745427749562253853261561015046677339504602651019949179728604491825297787186603391754479172298088645067249976532160245875312548183882364477845700451411910848528529442915687500699971385576544357059746285641001788393507176376567823490990166766142157805259316283873929438910577616476744096404859346784794558778626440428226208186853894227179806950103094577636355458674372796752277521994447235286531445318593378070728359391039898299158070723433980542306978353875055661861277769491024038169006964410467509118148228376330043250745548701334768713442005222637480719919250128909983008164869043074798793640482186645808916536305033760891151117728087782808841887687791154800787730894552357581121215696474913169582632770089849980172024144590118127713813459386781231459508063753192991410372750434349598494001878598070902962423297553155452408761750847378951570021794351888402697148234226301840306524875661018964289426465393939031485100856804998923180957776627878805201043678063972956523100844604352852878971702517032302924004258321000263268061643291340438751667952635419090686229748846855869476852097231090064708934061339608407276093370025065260247728253279293334087770451207862595233761480957983023071373430655870985830523845699857351515940923778850322861946213769643965735940003903269769865575187086563349192998777808161857732551195146046270749895615980115330158399941655550520931328629568956420228681653143907192251302004065967423994494537528347772288355483766586011054974940890058480433183983641701528281550877589823048506069534750621293544326307376659988816378741731405280523456267305983062584726413107494931105922432067721056431266815961390118885710866290733802037059239425742588951854673952348128050490901198337717075492722221301594032654544026454330136359738312133149828025076811276758277918828585086811741915330286747343585832117429292382152354029672045539515064957842134791404626316519893528741080100945566762335641487410632889406037995486139366776605984898164520610415143389496315911937600814165761073168796368157179825427508453937535866168727618554920044995036580117745401518987185392544386149321682702913878645865578562347792701600449050368675863126362344312636902261276039004290875256839268417126382219057213278206112407832903894900644291174828506182836752635844438955153241319516092102217929950562098847675610422399534932512731847150826862023197987567382750266101949011838351304355719824475197349262021758590601868793075864413717389012013462399559597873618732677781992208978374367063715625666719736768506846964237347227773210055916456713884297306486320883861670616223280096552812306584741177075434296684900307794850915930669580744558622639473633798654369789107109784187164711424022245134990803715452279583711716105156582748585639293707698671966063136131192944628321538961451162593949194619334024220174174351395158179507554598953880478185798086904020381952902594388490996366228384585029325767003841499144738753286244409052687756474978914741471857884157560969334059731824955303291385425468940907160731200798434327955128908428107197838840724298172474031620431590429315146702819536157973678498231469656898087229656784391572745664395842351773920239495134433224536341697946958555367116579034008626496661200203458768677508676684325707828813082031301320729549736803592710839163196447747948175731012832656812278038881527011850200348906188072919102041612575530630364239460939698593591279709241367549723052704120604370986702841805356515557293163942443521251599776585690118583479237839540188746864885690430359343747716672023084810010789202511913779357995333431250082196911712993276541745741704976870568755729733592799489587049194711116091968501038084588782546031339211154346233331248512231641889086029973959777538187429727562756460803165990976183670627359537468922864188950225590747575710305049061916232905227482198865080595315456397984815385411655056539561655531883718294983998759710088060482326664836828441690783180260352006499649678065271675881139719069804018907673310995996549860636905170216203201047387470332561283936164143050603797841571446621012313176715806597791196608160316866270599248297493556340625080412317073420292286590447393261046246635519096410142880679171877474434288543992060186061661803419991969540939309702153575704696758880604707788209583859131067868820244913352139581010466952277515106243925524735595131381792431313067498489343017610417550383531036200779817925310850609287785201866221039652113464448522562101358135607706757102559379070446531392598954835996083755149100194032394853850488339202034366447112469946102136115688238236281921782687094568846412507292251413643344644077526447723684193865120508788062216289342339879760260733379083545396232945148408828130520419159934589029208950999684878951259257299170284318607173156163098956056116824388070011631843472398079051929036267566548734626703340256048224536948601930396058026493736620200010412052866422040883909889857593169851325438841451349249270138360299094622677039446662841138477229985908939507324421522150248450756719257327671289933983814639038081681198993031611582071856595576488387903980827862963424109519969837348769575308132337293941458413447480765684089190192747568426896998089614111015137321283994492188741959352648552323794763123018373629017349575513595652921373383706302491140836790802564341364793708428100522988967201300747245267155256519257957180628409236070635842805722520723818925312168446567625886478661516915903966404105446015991356903073070674985219663505773443909049518759486530773092468900810625623931155684970338299450286337958262177116797823369338588370134799893643844232570101014487444613177121203064799121323501450729375255715786813026080844543145685651665727001162411468479825536368315657597600058478780069004574996966356789417591057842328447206230159505481968737442238122064892055711562900697923873348385023932808533612161552790525119434067587189084453416466448414955912609222180095322254277643922888311303385157888712944797899670063671229917704224635429632750959452412245941112356460522563265700057735559597230625871952051217378531761108803178767186789044688435345987521628454689405467799604612258641951643582382440453299644932986321576078663397150261145233481268131168911439919334175255690455096002146514913190571471431834415275578235553742637635418410121504796584211889248242550147655390209682334286022507797913845992734254056830625344192513847857657218782185380182991427996295986346939986464831325065241805138165817530728426767658556582342389015425728796060016501491107806692562433228086358515600067993619897835788925819237799511298023969091125335962467391283082483224815261908258975241695432652598932882345237800523570334063074839949073987496343069548781806563749855275783939194607466904960872509849960790681084847929004455858167522057350561446891699070018585314559134267691535479227122991271282430193129441020584653277995759893617474938627554150912874410592999587837251759232868529440986383894532605125932041624813132982852134092638509933204135086406443397150910997364506283379774981537427869299013866932699402696514041390884603617855477384903313864745904910533349820319175040100001894715220909701412095190293217417785722296893130111265786103882903045934376302091472841504564683850397405734002363515813068961277650931319941644857493567660945816373260135197174035326204616874999263622163280081020568282431427008366268856893729353450028553986960991061996921907061952627022447484143377217154501230027775040105348188186292589387021263045702209379381571292063588814025300700682233970142181460780184100491237918772744916516938302023357039163864000232365818049605307068649727770549686535190006726196052967900352853598631505013971249332819902716241413082533079178651996444335314577440335633334968257904922351464926418855524966845325299350684433932105675336877304943306751226122840386565331856135467614141119000758261047883756949340993404954330014880070419511096295357531456711166653386472521107102221464424374457125087429572801254531458086476925956015758691086065550611008226505045283376081187036391527607709714412285933479208628855890651427127328877385593480319699043135369530577037547559345688141100423821929982443022739096809585298962054379284505016180583916615694550824071638883105806828065110872889099848599388470935505142315542267791104597060180653610436040063183997247249878903877600891671608926727567658992924728399253038323027366891157346213671785752975097385422492127602781141261329783299302518315115764803795651314344596751167205952699535814292619357696152910023886825419281384335120854171998006412943613911277254634985973486607301453269062663196345255938100957707146237122509865236915248286995631217801820550395212837371074832686813560302047822678345660118818489357266128570459587157222648986407829071018167143802032995050706759819007841427595528647409367723164481136810250501796134476535421541150219759798574036233144252031869194185541129608128983006718429099361752385612673571852229799046656441684624237831606389544716383964943178403453994912804189729038688621906940839533939357106808162155889786705198423612717374883955589050263877116119961873689448699198634816948628595776307680102832847088481153262851568301532572078497501532735025986674551078628875707292732631567832231132900356536170486637500295588666143530997737674475033802564151791733551664398300739753546347677158891117323818259905924990914288630692940321940712616450859961563608143262578298817668410902611731825129828876245464590251540723456446011939325381593618041223867267396889070405769973110003506095255413925739544723599163905025195226358137107095189756634029979285823790741925288674030238988722613875435801971480005478444315958181813780963371435718805778954869091184793840875412727402389532569474533584929111103531484536662480900218048646546961935934792367404963051630797138746022983145523326123907662507234903329084971125219577618649158069274731589301292897224648902654825185355738442357730382997455121504332270927800208783292741790791514629162168050767017463478290301643890743462913558272260995864488760426756644633185338507562700198808872166012317447482426107635457026529411092820620869308399177385308285579004472492977662737309116707790050170786915246810404697102061675547515250202796190436344809044270420488891934356360660359491670133588248400261094575112857993309045290448571053840526656094100090295967393023505993499033125335070092465281817463550178966827048743728289325393742448001299413450230059473812105654143186059471757012066727176975404938079493550831007274503633589299306685627353376061894708304371169192881716135307363594639878530781220951688826888732696289485301507578365311702033674740362501176885566072598440311447341219370140706354217348061767293472921546090920784996643099714797043193578666329645034394550923162386370872264730836643423222797848986299582394314747861517391027050282910477399075316940240485947841760626011887551399989749352933556665274767900881946056903589617926438309619502212878738000204928355651886993495543341430966223669394326822844176438635032035516852568181227913876215672582999575874150071399397695548878406909260372216692551730754809953003990837499942427418352378722663372728965505312490530713737321264208553825381656939926066451832322463335943598148912578583379423674917759031700686442773036635832225385722323946124383124423375406983405796556615414667852062965022369176479457710054204845273863398679173203967348837271499541135769398083445662829805608293760473148837360236094143997519000871913049102305388585808751094200000195207720747589739881628790571916155725967636119662298300047810355332834925740110398166706514650989638083555575947133550147006390317206620135107754410386590586250513829910157333072544611706016084579210191992495265576515540885480374443928453554770756304309484708454589253287985718062742894427649959472879270398976818255466026071731913759936507122254679735692605633258762801483863025956709306244540997566344665578940289005728405257339456172364539418547719218788407982433394661317645911355522901402254226506657523874330633403274253601160097016192254583589780373511476306612426981857694930001139511216851169648076781554610957109240779988641451090450051433155568679411654638824623896222092293990655011320448982553943261262073480444104821553560587121984141683245097244065612402289908554061189407721423596374700628522795694039446706607620228459842901433947045243013488859640403442031851915120933978565621514992135850819930353975188099894102356979062760075427253237898133323992869917383504672140620094036060582384779670044089734343477983579402563074431061026964589577198530222060203150739162021126400258866503869212546471616793141367701602898898753382837020507965251765937026035422711909260670756167237369350619355482025410667793607285775102440718166729235307489311145226923799952292734620956367001447645201670362422578396930583727645741745537683459907077965597415053381230551813875237823875182544053216914194342475462000766655317921498390874441863694160745293638144907594310414355173045281639417921656723588405061833652423859477220613387104239200713931360647827552480772424616822728404105490072545270692179280239578065455686918645645133754517712385663650315849502823272848620850853693409104723296343471175293334509937212980106012355415487095668251890963456102757308243124988661592399815503249771527471939593014097477104097808856339661086498540702897919242817166233473999647020481287426649454154400515205573188976364344716982732610391014822992808330358544970893029522206504363556657330180441697342830397722842878619192523820740620775301067070129978846494243099147411487335891580400934239623770247765600150670902880606158976274790708270983844714677719357028288924569002458148640299567746213734524836795738952069735975844610462215373031254853714507901388243910208342950407437564950067528157636213333271081147855355801569475633516460881361129449394263849920475705907925395393376581386860379139422999296962391900058468777791378864459055654176301682481144954913098341095428358807558373387847552253672239229654293784043679494735612404332942402223303707888082072716720283994065180048831238959442348003407216387356364837712463248816839585289086022811501226561803470027119508952543525321896855810563276308682272408918439214470062257489010551926440629281564779776699984678518952401109449421937218240602985735523835354376650376067347007759649921837440933485761210258520023247800615116705140664467600117206006715775445067637906704416643809641537290043552474292144617279296331682454892334425872031373987471309851142626197779600594920636329595995162446112416168428605185649023804475697351483093913181389603890761586425709502875478182360606736319579152358773185629480083745741634727209351922239876322577390049127608097525518903346531976736559945800027752012781366504123435511700126987771734799707085153263794180413211393955923586453816577952580464286686940370183280921744252809810522815819050751757433935366979505845618916485827946629968387796771212396242209073918358079962427541017043593505211957827696989083876544364143110142180265527969673401545246859625459202397384358456556929175926229984130349692200041416274910476758648595556831800008642890978465908586153380982552979036281148609665409866650885419086766810106170052997529452549899617644180324561519886933358890873065793771204915833176155709797306615002734089690697504745284638137217614258336004150954886077210632357661626125212939182400720510136129992558744709898395006185594411549516440560864788618635653265652919326021172229038620188267191283884154273330370956780430710300336884010313045593315889030270244927929627546298739926896714208548188041581213511918769202656792427662207589400039668385924033196297784855020781301451522212715002156952613448703852559322875765663610659749126346124774359408941621117592877353153452283190669962736643581271021534291283451357189230052779916702097831887961678566926745271044507861047163116547057689781893506130428325330765212458341099367334104417800513170947654674999763225495391879741656220884048791408909530157362125050792743975693575137550370724054892523327908787702759034429692631338839106871824955455132735930752505995047843137756260283627697765028793591045190098856932817098223267695054068021239925362838288005168859168128551274155221342569092733822862283745288108907289636446573451356630216781280232646468233974829108088835467713013879595981281085320593682262419942592094804199383536301226251237703085847915754582242458426951959727364012828308217789857263133738088441581007966090923590447759330762907441419169282147348889466046592353973615577501567067109611062367029946811147582332977605466426193806153853478164400087116313629961447520959601445706424654528801781838655521491380247416398322094076748339056797044474393211467988513845155604763230414947520122481481329945574774503249387242064438811132893994557348579054684759456511971688911536244500814009884744476141253009596756197413203147143337234914010958050427834897496187496686196897338569475640156048239975475992518228970938570136392764948121959036884609980802732029464887235255179724606578211437840526131345987433912028715176320060307871361076294938714993566694389858062911765887973682279089650699877131518100635701034685074675126767978197756804988010389786172180011550711705516157198248373235322641784810682612996101461804996929838862177394023546562716526867203255354920019465536740330919171049456051951635638402636481657983093949653794664993175768938452654282569169811624975845033940526154262419015581446877527082225792672136775361922951242983955413439556296921322108302766761796703276893064019147532474218834520873673433018771049101134853472016640793742798403831232817127393170209490967170215041098539585926544694226754996999469656845117057494149833518152579627977637295299950303464653918258791178416981774490469542557992018011679268425765976122016300105025054631894024336554026499859070371159759376559326787939362727833385880179688328206153151152537633168792271985981825668781027273356475329780161446024271680010352958890510029849903013137414799499702862850194802608958366050479684877742465753517210497730978347249388566392148295168425183074908956194985053139409618683295646253837670326152172961874601980691247444870913930833305334866800891221831675786578427557447014060983163215042188855738820964496679500955523372653416133065234757183938666614450310730278057780709682886534049124173594482377412358754470954490053394328830145834404555412118995533384681059980721561866391108402450579720214047678310280234899022656926099333496638875049737706351788322796942725509228872675428642940884401661791772524886915245323543273539988261900369373682652917966616313008589440231791002013161166611104759982525760173337579501099642225246183016496180267823389931162781689288300699117921925384226543807379260722296749594085656973384573413190654525966767496276728845603985100701254678923839360527330204593733745538971619770093577423519455761854027712655814992035118829302990665099138994907722861142363971533210888533820027035406783777086649147202317058670496956428921491258074005645902713891358211279353644398182262206494434087630320584207863155801415586223871167732447803321324614989285154683567072239353788425148882313463722744815947516540203632571159010655923318097293851856448962598255911252124173024197939289415439051282381563769147297441375983708256085360561459090684561916306777644326819913423597681438154967115959204751256203615219197203472979369816517889718146263125976814130139610786474420152977806806303016425453668636541143246307853022801301559712370849217062249547053449779892802365208805521235468028474490984110349295419636277040541552501863617442618944691419754245913916050834693867050311189073603157174702564692225193438143429995464004798666832311386603209158324669730955974411073756069521356919172563879494408118969593578644011735275269325028071735585486217722030659712537655333888304419218221320060408018202481908947767304965356647231846147803135825244484865712104431855387681978660365117479089003220354475181064895804921601115120585303002835157004962746222116323423208336004968684362987265716521977289587962193604579481298856366558221816806079274086312450329942178555979551841919396242757223078032190590233855885504522585119988435282327353176127622623624181420666076227751333813629817205641738404732403144451000509099270540903202031690007861905028836218706478243220021081399277127902203996552466545995160850036777228410424665585573015362714688725499439764145021219525770422706862324428312306743908704553046491511341832221878317760753532633976896047871843241365404170318212390325593122486493767199570840870903747106081344010352528391572639093351206393346653280974137787787570119165535325153187477575230931669428604209336709079051383590399304822798364311106885108427500203623214475127191545880447627224651839638369033798610484467451348719863831430740440754081900505112819295332210007642005609200193745131623226768940656125425535172803382645577781304356540291484121629302015442661482275299513553172640173687228302974478871978237524316957739463836197066902557994723933125440045315598798178582566549973586672823865507938156718547732376646257388863396545127056897029182246046420543238319750444348252933706499651017260930014682007441728707537294692565240928649189974186262967637419202317555014863462149462889374688867430845429995779778203191598652466428193574215620815967119611814922978447180950738543750575236215587615697755068599854769875907382352074161268433757026767343811385528457444649149413921221720096348851465929731128801447179144289838793787277761716694947694641451036562595059736422500428862216715940279296226110447632896535302079606855187253225159513600578495220699916261830239725987186511638713182413984499072900761723282940687979803695468429225881174516985935035970378539575021575576465081700652884131938113305294191375425376140215319214664731074854493247324446163787934152937329805524856328330901950302849010408306849188498979978417106638785376687440161697564797126710803010087920750892635577160165537290691250894657396925919891000570909977220156070286084568146906867827779782883428246848758990512897560539253374270300721006694356595100577167437873710317471006137384961150733990431645739040870095403898734146157547742998262451914572257126506878346996258091283543004610417091180029213869140518573314449306287270579527504664010405560815093101455443378358449866650240881800855753847146711218692966409859130151502044681329001126618894172128862366697543754047675026250124507301940336325405870916697695181794510162667261907500719900781640700747930099123285033263400887846659935780434098993958732082858567334858493820307662653304328471438710978977116642485339282482321482250220943867202384128856488122102273721997242839477337557697203418474458194756082991497295188207559748834493976470247590032889048123638826681434758154440769047733521907073721490720367753540199695356282231624043745451832502585938679349822353113481624909737153303709497334614214297850285728352121335430328159795625335773177660709070143588718566803032379092745144957037972728213430799906099641602985722030602917841080977763303113796468903913358273201834204674726085941628513210004163137153934787241806025849652535513029618648616336672760801985256564485123553488205420705124415978782430496788773401104560218640816146503276170941816323992939892967647948201048263182750894453477625255581434370212718867923561673225325866254601794101210597193829976323757020927022548124567701451948198971396342436590241717845279810197432055309644830837288019211916479729525541591965590203409054287476018402158109982406567176763528366772263522845585169144965283983754609306205826951244847576596387642743983852955712318355514306134962093938905029346366377683206187383074398242528608221013540324554981185689824724953031199823763909205096041993487803951037505207102004541701859881289208215470828682970969281915260756264650774568742950738338508208348480133570042764239242592690430288357905306882865485722018186645390514766673579922426605418372445282504475505782778141241894838211266499421796920839373226619235760475633215078877024864796142006136267028803935503704385362305541842266874363804138474212360759555419805587542794088707719082521431631807748381269565473242124820137183886858713485856761776475688439750455545198084341369081434341497949656589952420934670055266835858028078539024199922673791493648798352267368191779988286312777734208087555678396403652607279513795816866737103228773319650242958032815692219887332810595640414165244743660807607522828431581531755942532802993178144098159802123822601528172402650549574213460498116223751742791967893782268858935159243420147132697219237123379372471602605019903249595537578971266970649696559214970001130961163613099414127453784736618736627112470339020449640000228223823825696371148127634149517273221690939122586654317653633635591665656556536441297076872204952903408398763862467323550430915397530737681276511005571758085023463526087192256415406527129819611725612425894353814514711066973797410536727604379244632200017388768121744113914650901812848947687437508671182806104013262218456158913998389349485944014056826589912774291877120034250496276756005847080701965137327779295794005321900178112473296323874755111820299067884498924345889006410839804318189844312836076587021383050698365164147498311106988145997654007652864852757021567387108744331130535810866275273613074585498408573632745855326348247039563683029891048214142423527763745504310645686258296843021409495732449992131590620833948613755546025397623573998553737518666942582328719633697434053776993924818045927077237143659563375165944509697588533420702845124631310294618730202278875415817037770424311469264279656879124970018540245345444469152147220718491181701911666154486090620330796865236252414231122197831354955648120306569277038795188778185056454046171434430602909827759603055587183129143836717547783690682444530837272186647205094911112090875028266158878590682437708084056238859196384369943233887156228078184979241992026998808688920277115899509491314265059376197660671798185817429205169830921457633457520756562492107068137020854828506652391684555399855181718920631858874641837969828626732448906511000592248798904588388926118861847821853782926461825091512692529849987546801524503470969709201322582231916948106420808934489973280978606304280715080438389368532885169084651606083219657822354006480827660988312219880057141847281691202394619510196414754507634942075591346209804237572415437378358285782093238620664148004192877873324039168390464481601197552937186613874775563097155049673947285323569891883067690491037938058091298752472735066616003471985378697238984878392445731898139280316900020024626530759732557349528955446296223965107773863663066360643467627919643595982742913045366563811469436564400920729041812759717749646675471766776912370025136344846241243029310213581874560938715301684230693819445077969052651727452779704968191013356395136760886827401711795341497455161655308656774637369073277477090402195941443621969830829214452239614028147125939256662531112924803289954069604754537665055256154972584670246479393810721849663104930682103268979334010477010555771378058968220978640241263145094407139349294671436465887886287951825708617251909039329699048455001964427373750282963449891135241463266329176264897249342582125276097567126526246979642156667257428645821609938863662635257585657480933775126235879090659108115707408592704539989687688061044561422194463584048100543604576726252050872990254785897750524594959385741092922338821382581667682177759787025022362180333126238874842581762769516579848065531253216122122574798227526879269257889683665072522472431144130265620015510394381779244518693509228839513309143630459897455545481049403985830377518434676484964095495492975074384115536035400181762589289190871132925949569624957534984379236608460938274749724887595260430625394748021643035109368578305340519769422029050320028072251673888417049569884246551580165745291492486402739921550638998220860330094201156966073561107854757765325672761032416121067962290791149023542847874391845607339894023378202784676779775087701805045347882225579663942316503420273383194049679552931979161323412058948710298365678173175632682483624916769656849230633531807057060103548823522096345854131662767293725460604117035073949457993092189084997544567628701599807352349391473279771538802313876492449813971082330009815069420927899206973035918387288335862234077601141336373389268648924143026875439778036941011054646299313338110880154833294094296360321367262011196599242990212545312109003075024003552432221030486041982424942608828030676933296781766559136207854577597333163261673840145263639110654761044392619045044934112529444305189373678416980003587989417667345021721117097892285264591818117093591092850262848507687670394060592789674351665674546297329452035973214519760145027430296879105593831841281131332186340861294270836816643949564734245470705019925230959298252705063187911951780589902734058612606161776757719510777101745505174214492927021978670910254910340671880164649194521776149578764062018102717853695598951249990163191113279883040857426528974275736352632312427202048528693044527789470294808370860570541939437086139741768217278093076180563879364153224775391818435047548938837942627362281527412750175670529932489242202968080630128273303323090168923246214422745331682533885461632509643712930568568203850327820124305212163702317051975656393878127730310251197358437713938247601864729433086932438968612910045333996667174217173947014945912087821413934208651980069089702428907651035483182282854374651207212205267944231317179971296437659286697792937502003522498710028066591363771542876339200169259175688232565380054481263663684643339524538617481452603512337394757723690223498594531457506281611321715653983187522032380298206292295591503122624142678898202014963655789466176134636012422785169231341214555753752332515513069258201127770218638487088453468312794406531665602170227490321377835992769045650229323207305079569012243037406674364467491471612057817510935725366734802629269068094891429389893697518617631580184205049887009339868104986864316242357541253894788022243077835743673242022831108445513505097455533690401924781040114470043601520854071501197743488035371614104762502706142702442498751926550793203769957870479078598902502895351203780559364708846000880806562153027385523389777859797377550516839240401940322968209563107187124956644769128297466971389984515172890079342189633374902596076373826363561203818024439779136494311887691813859234535138671536981553219153022410905264997573062090796438367551391124306188013870755111749092663099741295121746715316515307037520232637874841841386170778510829894372464348914122333343081891888549749780925240824567432563080063593621136056812486246966724676572683444805898645254256118641045307028741988730170624614824599537222862694738517949664314333883827096726687211883241293584515382583106320149926384784654720549553135457923423825859439084521584832063742918267578213559302685257940055716347401944394143019250944937358528167598402700165867557875128591082190339431102846194574982064731990987010732483653478618921935533770627979607255874727967354656177475222512833155357226962688173903120726766135679298807203492862418297118244208628226860720243674794480452363732796538214943444364326033184192130045097567559901515147379541325189225660160529955843800784116719981508567828516095982450294301389020764413393099149607528538886399531957046411773671787709916485254453586576060602518638130241404034182047563918741174992647277398982230377770491293330629220344817534230220323251395249885794460593884818848543996926612077603754342106484565765981379355517504673033536229051970254790539085736491934424143257006742745019089374807608604277183468006614532125584709354399253539264232787100474763611687400528146369260095778419886917981033223797552321154518593036366540598804111955020705942036077942438733485208057125390345705335789194838597341055552235956730703568964728042353851559916605840396065720782081284097122175666980975592135248850511071402899254638821812002503286329299053968230151067023027144607580132677887912781055494477166831904896650209480449335214680606657521412176146634537201639949034944199492974718643995923271893938867001228294744279641981778661494598004002077637503751231020553025456567340047654907508193979817599221785948558103744985600208094447707896526101751663493082074623073860296269466724978671479175415328168272609946090180416609572815485739545092326754758617697798255384797699615351072648829359616933027981737376902475161839327573177692865470273465656155023425532403751736350064160486173980661487434930757945762955939063956179686223776834294386301156730098980227247135432592116089770651131379012080563962092213902252317823295794042166305268846868460926363313674042603548232680609996046651426024066348483212907690530298534631475731857680665837996587063455077390250479699797257868273780908590420583394688765157817870435138140706018689706584187910845141004938603401872247889384329679273294687569285062474547130770976200203778038746410916166113445666817135012517498282194444772157589113528047803237154890986798498457020919076089064683890797204422748478568989286461700180657020359011979742987143415121336394220119066233962173059373704925352763320954177600321386524873179568426753632500599892966397990748929699402985854405159591967612975418033320717687582401459292634943625674231560260345658857095941419457935301944732928288557089542908613225254160295053722157691686262066874687752905554013408976353693883490585907815230489449114035953692608176662777417547677880243298975461215299154932138136705448643623014389921305633275568843701643534560032253006366725542030431779668704893208921914700532278003325185310650102258142841103246360836189372050375966447300389270144195445669619617651555565325266189311285261495624236423834971993340230285984630146714623771308626103625561782866693157624605534279357100098755571919263419901115420029230466351272332541930105159427453705669726359765797296240002609032300997441772682306086618600595289747857194559728371113792646449529156831245137128645846165427052933009156795258079734162610558468425215494908005666124420356997228086697328224696887892190098630090774254019477857417819405367460349997247649091076745456837528740177366289675441063566024400231367678547947672789342988406300185068420562783603559133930329755706628059150252414331451325332403823549953774440231974222556381765180832547041427579824495067886760466164385834161804048349925706879173962391404000683971246668452169219921266148941515561656116666748928055331511622359667630561186376429889799763084347911928081534821814361701750817682568029440792267432990787005615978787904391793897649072029973281912039061254150183806677031633398470857823809013843278649725926416125048793142762728618343665289444276085344749485054091363664418598595015349905970208739628156684578167849176661793483167844447933400969910348759763558945882426438845590562922232389205372917170285129489570161246936942463250666678373245682142597576405992480069658082300630112352840058389095456558377650834818278677539596619858662963813100135478191307827141852545246683397443406585183469967029735352578832239719003148992616102586582504345781259654721602252070865639638349807138891283611607126392879511560564253728864728388619994551217655919388329361554551907845690473280913967958458471992488744522380369390933968358475462900992759333527372161653314851470570542946584676477867290787366369972130057622172700881233701020119928820417962361413234996410573470277449954486574874842742943198655263306834267829050294614533514036393259386796621283606606275593219725976796986184337704426534545411841985339826360847771850166043275479126454464380061270833978368917780078499736660184320457662402313284790051008019377146386912278992119737017575696728907127139547002107621916579809078210245530604229826008000676054188768123693864558745284265330599558520998838126159361847474222304631655712800037066721633601674290507959982046930304870685840469669252666725073516330329932586630691475123042514010132495352045556239469101673149720037706976777269426338574408932107862305332155989514385313257072611195943224434757324892419651215432993348975645520282753567668919778044980027830056960513223444009916832804197126841565877876947876078913182765417510645327309471629900480266317161076267791350736401003266722294119193044100181882404071256739489957734798711801503871393644386596867645018147855791915016514558897512112094226341650919740654103179325176367421112793802221624232067094845281503347025238782257294935108820541265115106252376048286567728243375948059221497933591868984675831792298350165207633834577738369765393958089687752098179533953193352033500107992709403899684642206229610064073558239396285622158633968199734075664023924795804045027965184810634501377857119273605033321538972763069880739489107050688972413189628776105578730696729861127689977944455150172316176807294672914543989580526388326539812674465824610468242741322592129077907275634138680932609703372017198898425182993455371954504001543537506546349394431810337041941618737488932839743344770122751530975849034603431734706888537958955245677184205995674569689467974664295156749486745726560613188785905892109293810909302814855523357291580895352057161757253969742466847922900680185276109812891560796902029746730237976912693456662264508059245134643551004777176741758464085852786791953606478804207914891271487801666726957611255903601626462011759479101194698341831290771048432661056582307218087241088681405562705653641495979817513562300079280145516334485660400047442512434314910113317014530154232356228515113500543534881127665455238651576803346128715598169017644472975175552216769693311402818452956452393026991566011228510498494682785578288346062219890766472386858880165235964494288335865819890480667023194034730994431324970568816965231937708677460587628435288107910533801607211378439695964044866303808061600886407836649095269251170324333901967966993948065779118578912779141494083469098199216156032457734378350887752122490900296524649233273698754092868591887065865187393487216932149374500542474619727461601911064754790027105848444016503082020192543503409505010920372128718175978932354496934233437825276518514021679892599347241623611864803163175768449540467645156416124482577138560536056055267728548908398859212774471377034557711636586855890344047351422283521536921415122585268036908489362410130233912472013067456328497151881338708986386595067815469922783512588265296707515054514511586732657360559017048962556814626426368855173051370168731469376260517806064460640290920231349629072982213928965343033320290207528463224506569260738192195633969932059409796143384034382603889678764869611919707869732155664389827542113109142175859764120909818448290668571445158334240284317684623100663303958244376761533216256465267234253562321015428994006942836371086920311435775832474456836438157523221886953053738793419901269677145611174548404212525775597507790946762458989191015143058043374760829965261825915175083202137387302608954518606755062473258087913003049910380573509283041504455783584488922119378767715283602674838595620348996166571395433717833396584528596421672932428275723544994089675210338804978536882855735932562627991132533143869697506843476908088692430189776974074682937216354278116195239654720049826175227493372313010642572061374760198905085724578152640294755470751973477747225073206631972957676617971002470529970578466752823909185276143400395118660561656519343780797537946488172519127422592355598387026412414689010518435641378509577321057715667991977044288809441609776665251555915490738823691815548806975345771982641273404648009974961412417991814669012185183737468369589743729348554854268071997541789596655872515693339666319104849771469597547070493098047511327428816770272240818889960399087466299564144891928972879876149868966933426176684438946438018824570756548100506495910940491466567040814205628126233705919686241109801252263261217348185128793133992881731202950324164842949224400624791728373141835411185014615302184745894801609374771494546738211791520259695938614126964938257524150425690959927201376915590137692499513018067312392384680996626262352663022225416074748356625470792776546078750714576034780088109715748042143665290632374799675017604873566724729453689376290068896314953082462648111541050754121782970038705773080820247152930868243859258632834987364846235384532808419953458377350824012082613082992873852670753043694950475914473364503729728543734418157574306838175145535669502900367231303056990951036520152736430862793729415674251840372486355121906881747351939840799370149745537616659231424070056239385774465986767799170669926950002270583909439972242152124512051310195692054190671122234576493461863562608487398581872928581580026687606218695233086747098603391175374042453837428454580629114065555674375479552676573241067509273289036785774738594783083944805638787945503596835650872850966802717689126707343347702149550575728732062413058229823179279181945991478313016997584793065868044150870859555871660726409974477898119584216966406399120097702994411332681099379551016971287992733134507982866100066277760891362177843034140354401199803950752850226265335722931327780183436942245804869843910132143317736948334814145243623521834207960002516499850832249339595528144951716931245416661360767141367919102618284986650400495745864310077584740130361031170398188243727006224836061919468265263847432207043766690951694193930246591338879184334919128496383883508603358950741827171519388084254701070194029313110153405525168099958917586833239026714791103865648721961180738250316100937530578077525813161558750711841240611690601320282961725991148589598292458927813742944813108740446214783930693566282722493518436270605526527509377275455297190253426531202401758829054992134194868718990602479653563299682832066226103319841682140632002435140307087738947804589440853659489913217302199430526218818013307160527172051699058752174526448733853616981831558818191762535851106808711556818423144048230623451593034141181251974754465070941992793108594401097948998925474081162136648206955275206857742755593014636901801811548046454806986442472254388886332270662258496277500012173017739874713512118632994648145055333716891769330223863499658068953487138781638670613860533341650400625723569850815808714777040616420871998412495478104966681451815389785678905121820005374170036669671749221169544577967272556247329491035718784992916305736371696519660383971559517790006480224206430128827433318190967561269418824773898494434955119231524916883927544363748905069878227592765170524639522742340203580429705077210822074923407653070342358866971305755486959938803583496366609507578635800343403305886035871952405364137678816949491238372648506747966606918897847597378914845525442134716110157598104765810307806216063337949544385131264379631897622360581927079351273260698253006671527253553246264320225410358569331905695553368735956493667105736575896747965163997274884420917207510710115197921020270379812770382226076262867974696881565708041417154931046514481041010763591316424597662682601100547932009496913436657443280602844631112768096256266909599229281088413375387216150166074519327427229647705162767351961590970963738130624304430547521848883793765409787891679592810142674395483944892947387204515332655430995448919793422539694152311135277198905725130306955134371705035301962858112019675946903720433074693837567704857501606932643806199834979861178424014082885768851945891972232083814614278126505782007761697951910258542730841182005213735735815963331342671076887894379865137254455576702496012091068633264553723804768667248815447901498924331104740995564287589402975862887193293662891740029699713971939851516406892542873012870770610901857740832730605108278074470336000876649443272031860426438241406225129992043627576281556663989126452923988172988204922077935042720405087209049016846514468622776115793577988199160506479840574153386249262048245301339998756111593014976770365496505337630053381065100848492692297877506002441734502475696966141274485663538029260092811290378229984858802065666352299447775957718653181366423319982984407045496152426113779210759772576353568719385657965239604504519485739727281427862808410526624311420986925160551678198947789390609361603809127979884415167522129350827345530422983578274696645807861257280097660375339283237330042242079119429865807526218580204544222115323114208133249953549812128086853310837918458312079003468201264478306319346457769574866594480291371712226012936471331621058831010525591280153196809968207340126843695199726957665822203772103945788927770372362562394678351168505530869611790894565690466694202278295759048437167795469519765966289767392806718802911525045921246009785672847086677363390426522404877300413830971413443407035207108171564476716348357419509256140432455910340038587533523973991685647496590195794096460525015851720504130614804237054992329454842878338587424782851190031724873808696467852965561769787904571737350729717778988166909822292040867527621526744869931543382432702890549763208505219526148092544799099685627940701114164780370102307982465191207454972738545557016518553824687861053305952347775481157307125349270290975204062381941855311018977051344909509278973638062588665902798849515737230123061994876614310374504623418620506072733350015390967605062254883256485688943043799465078426904224275574620876203938380356518019711958362743397064128268437478969479348525049999387916738767766898823948855617418360853395816611520567037438201425868593066172512098625752270745688179882056234125450198561953960895895641225289350293581967240291157459165441197829247208808170431903334060176883022948447368949244218149406065477930451676881671850792184045728406686329266369651726033000381213687151607005419162066258079723650810992586700556398219161789453683147017630831526253863248316779949016402420966412371231315351379905783933002169115447103855854757123392739035435700998415124924351285067527847254029786110783617925528720804896083373168097725506335502258994695007449280543118320521938837435039886125617552812867335901317096747913410640789402236412556794910501475488154623077781261906654644676068476503243050887256287014916777253385584154166477037270429796474510441075728124928708868711991518706608806000255786878967944134679809777064967221935668969952056353156587486258498457384307143505141091806733832343258965863612229266136388603643724199886925451800228757506956239320048932875760735170767251672285291704971644405804838104923747578553842709481934697569542345084553483591154337019098550919214658645809076555805209001015347761737405922446549849738355963080348226784746261111764605029433897423975622224428496846877442299948773421565878627989670487383715219074014758131185859132630039587433705144579365179679833538746777888245738339434875534651875685747658685431928599179566874703626250142366784035230812060623131762745961673929433558481076625323828579505092271481961082348648367224656838967693210193170219628054172005101086471516182058690722618503174093325884264019621935095396493336486160642565954214894593913910673799912807281594610853730960210773233034874725988696601675703846751540229249328962000346394144560526425643038380184595437255396573841874713782939078388307216328990518652804054260657617662413471529320593706435753115849713374152825642232672163880921076847536058931417694783153684601101774966680536904582498588374501847833036686568083169849945587434334166077837323240699021376577901537306945555364536357585084395345593635174846854815359059937949730827245513713764804503135568313615059727714834957658066026131821241519440887700796209072821285615660487841874487538647903550410479033724362424559377197267399456745786167309660016527802360689700230330237457716606685812730358716102532449475982891625336645441133948938977798312307476714202069327198219599196610527600010416877945874011245682766224792619987819426651022938122360610157701133526614939234337489168469020724806530361442980696420118871908915380741698255723464032779697762690540741685853147198089978081907113859782459688339769615528237174643108415883496240044201377937256222963841342875612515565127204276290118690112713654165477553614954834538439505377590258746324364311813248114159549421777147556724700238367300107209366836035362127922206280269870129981262118485950857860518608665716165576902165397127730561443844365859419396372495102959473155610689762151915779709447394294859424443941555613563766549851898146240463118891665330539124898993482613785666992444516936094170969593625589784067627683102103197168116823234726302371969467263697157344961115628274650024130672001472851633624723518934326093673585080032607183407112735693065700426984998427197022574375573536914206278632808645235986387482617818315143156390315501573170999578097227580254445869052733215159459989935979507348339687146347420178554178957158409012818190000777171986290362736247591584597093385183099633280340427137027461472923213774475509633340885152036328200583855668836140583557781457950264431027111381758986085763317106523724630593265247011892118228860219159349111233729775344891891672405313297316110729212056584464475469129437741874911171123284108640697556449641168231860797044745102772721424491523379084240540184380520126765965189175178338302112688651700066227967148144635678397090842891479009113532637827804703696961120034982703820229799078315880946352272111614014160293138531350513108203910497661998453392723564219024137415657362973133463189441522755777288458342918058582905170153849680113917616713476285973444209396452122428800208456733686779466165851099822372639122381991254788203878114066899164954373529594148043534017063390948067312365890992916312766288607862792491357542971704423007379587643834321695914618676157583211879539182151777431011480144623689232619342974940783446500046294562785022306420439945517084031998546700041707271402072869126778956019447431547614379293663172721156846962924475133365399715036711042183744078500289042593014490610618678566409996422043850543952802897457544330043337341021742354646312939042803759717062692230937221438894126193291096634339170426457328644903386396998288354709426668818306487837329221046571239300196388090132672521835073342992274415865337987412745726907298454275916044259325082645599650462796950633309945120312383289327022426599749337838811820876728798645651342330078433939490012614552514463047711422475193307540986062496156598043727692940054489762743115867914977160849852156644032703723569711013206992927254052693183616337395061757226312238782488723651332484319003991544828935416009760470374438235217381100668915348125279725828516697180740426527957460843950702816702838486767792607812505218363566713530231380998018199017197244016129777703189196534092780664134972582979273280193166647710838163577806008945921455197944275196738469762376880412777361443912171092933501000367011826218434693192040948448313927824510030899231733479969357867942006720459512384792546026846852006977123866070801941761504120976370154128094187948061568692222516693608035971240537548666384868865986115838596046053860136435112048509079757700816187663803589138644463129516497808708851863321538417090897891603605643547028759286581595253114114183017019474562153905308676934410124190452958546494937090496282695946947233100043401530954628124316506936766074248760659869397065548486738376341880897316939688109017766856929596007946662946130231008966667461035246332128894933278759661801499307108340250543434883470545759604806300828291302542949545158673394478619333107594568675381275807003232185874056737619913713128858620371710225826367305415588877628401599484577373727023554203639044296688223284929226923203965938453254174826389191449816744946774917528679829178567864262753976254900868700294938996325886470183236258270713249098366119321695722345630345208106248296078350074162740514908527757628010214272138955602869738666708516207500228051706763509930780286658497364300065180684520579009576964617361063781481486787566648404299850811552580847755058796220980076919513064224271141507198078398155170717977311586485728975775731835978736786533473711855803428606475407416132565484188051166533151208596596748721976158460791288221925277611727551923812180822651350146445343682268024719968288839372996753238157506782955668833551725217618272650800131803792077177627474013121588533551446789166476060422028853505635472709073174764008873073856895659003487142773037971504929844061086237403590812017771601542542609697013400673743581893914294196362970525487453584728490706314284660334849904022374296481411052218241426238047190811473723418248160901805580168351926389446107085403457133899852762872049448569919833676429044142759727615243789082833767049504343568104790071259061683687580285481144806516945916548398629456082967457099297280441195300478601089016329533495583514687678879865646864546276238667080497789535856835484389904687614335324503735996421341761436036722466101618666657983136377298322636509331839863505748882853308526746448509097375057903696733183170224544000074290833059762821917918738435372011707629142677728749304774887704859148119766899496182304057074491715639161808382330325068074450860613111783173198083617310654748157346001936134740228085638525933686392231578647505644107499901715886386042428444162746197661029513528575590509673643394564248238580414753420122126333368188114902254648141938928956889834514594461813287951330203251610935010663834536258125068710156309365736467352996525920204781793514480990908786083431180526796278478627257460103706444906474203631761403813620359662095512461584760150584313255849843610977088726070107748209593267291443607171487237202383525188642448615157725676623467321865399339144736746570685293974847708394052229478617309671115352835806887411749544426319057485424069321312803356766161024251964408967847308784262686871599788876050720284745783692215996615530926557876361469811491110638807836662284313446703498595016477968480505141816649665686594963385802366981726513523413819248013339421156520177210853848321008114204325188947072780947453645211595712651558950036783753264621433677524207902757095189754651119265300502041568539063207382777219770985738106417491188113518714179994722538158469978488542766687910553122312605955738038340858121505626251034618354960812446589377606498515815105869800637581694638406333686364232829988508519756347520055693414774989809310667666193765247493309203840153624600640946162705991184270465850147156235590733336087930637691724829177095264945559263248364375360561257353111837509489131365293276633010350046800194556638754780355705703526772115141014564511505476384701468273503575067035347551341656533228415782568302522384342727951771567730006820691265797810106215804884058527950038191076866276538651295997166102451738468902826492944289716959631471897302070036051990824538260713242562876079461768453255106483586676538382330016822025025300314653713953167844138156580526833091850067217533102748185274307065239189341572614976158819841607445773167666445919445573041750949897656277875848255545248249294529100332482278838034442063942940581130411428437629778131708675618215089871261323859023757716231387343058961637982502317362124107164926421232803649659159559374744434961904914464064677818850744608145775601554627728996770890061838291722718687836250173520867580451208060204453048945256302822483643187477901617993453057610564620258285457249135335506150220642855866249115329351435099244188430902404908464338134421985255730784819916822753841433736175290545674047917034503453386679937396845627102404193228441657237644313167847616981579035222991829323480763555565252241347905360474312423930633403972091153632653551376455007936613183159945371990680545108160252477934523005909777689559275244370704154854711981108048914702000958651149200419387477969556253434141714820958450182229590856988514385797313326725797673036051894005403410279636792288737598636345789740202993790077122182703921011376982182496522636001088887874634318982153854634787226377553356544742881618836395525978448885673005293819971322575348311695704334696637663301310965521203408369484178249849270291187139353823743157378556128955971577730352178351481527162965064159521465311074077858679774813538862376906495934219571408644688968768983684926331221604588657026308222680899679280279757779142014147223960317636163632227061231762476734827328461702424887195103791627470617143685307179071121568583540289730165662492794042638591777020323435720483804156390812864584882541790221712485452450622241288467334684727504031704463145068345760961796171916561619452466833091240975666950748310868538517775501540627105408399325726547872687182122986024070620629934681002341985270950797481484911150352953604821400394283379273858721326101069894233911822652368186550666695515938190755881727429162171281760759034306816725570534294489307679222673159537448635552941711980998854068981942533474492463711180149661206219446533883363856351070630045105587435213471406595165034330585823918023659822636327892506934591565617352914124302430374566745129639634617052471843466708641531053009374888791229921168261640191174662647604669272881650457460656103143110068031282827966746849105372798553253724770694926568173367171833203961289260833225410049263184514951335161788099123897512793522078285239785996670094258124398437592333050903731551913113876730825688239183626542254563589081964602545339499293021177213615877109869454718858375657158103015245689399421334770369010667936796425572697776719361595657559751743458759188587538697339762893395031073661729730536430221652287111020549314301591906324886574088350895459908461881240925516197608539196751315459743072456318801123571188437864295027446370120832509959325612559011592689154211441507608558312349740562781835077279801390343334111175821194300837345899147341299804795404101333886079507901505417351990239192829285848798646856035214692308114238948475521032898144768345301512657265983622340169436496488233456641012680086710555919221940154037137553346704886626715924810978216924828997499231471724840860984398014099913859858818826763870486201415464122941597712207576545664083667284859060775910102986811270918852454586385129430838083183180025814163365344905843013237683427272541556388370942100216020382374901339399725004105061118828660754877951218563144431116896516719249390947805947895516090920436774423087380807355680696508026429002083441686404328503363607560606515419695257606165556260962751536291323028117494654012798716712189080230443425661232104787325058320167278593309576424011366267408485981403144283641003866890680472028414237102095092162155250204097434093721173768724367219492001221842121734720791962393313307081191185372544900398239976698352033522194098128147082152981494729646439332200752263509418775115803728765792607229492196918473866427665085850906199883077178823749488174070316389360408906889923041863699014737427734015395010973861396340297869588393837336140895863319645087781927764169719423967888450249428415546980187909886030195106966002972147270703260086568610527282732765470940405117434943609467056674096431885716836490057030416773560319575837091649098524322876408964278222717284327320706235647445927495120561893638847835643240051322887927266890998292092040859256311758890739219324104866496744472288483162032409215825091528628330552517128310059849930888196794541485574227829329223929656169566041579600820663775895166125155533539160840040441158755625351023881428911355368965390828868896978380427906991515990109330733341142419976262419443710537323813102934934851446589447394104668133161147711823391535319200920605636462739415397855087628757056058908384794765058178394889683787334050779172274508383938449455125723549914330542851628136689822667244241992679187779127172860328175220385347716354526754062022573890604067291853853332409111485919949854265853135973314136600817875618731653792510028615847772219190789431918788695480243792993999690200492657102731372207692245141667018456195704694722446007162219323110166875632956197534289100267686104203465380490141651734205405849490952936035323236037519230126238822415059133402119877846806499608819261254151740867005722581179443344573748285242112924956895014994445109125576972712449612596282533105503983340548906392431724885131576593726779057029867845113558890790650520209757827164652740314763625290688093091220090829581626188063282161325095211579820194293086253191208683099761822692863024090382779088646647857460404326956334368729377460476877704336087617117848553456249192168581260030450888543042395449749935894912241309357209088389063319482451225235712611385880987684445305609588993922715980545929567993385925367093750232419088454648955347498515663671628373263244442130155648508789955934538989455659739986760750184201455507783541475568488832462751582770581169708591972068359990310864691547866899576882061245109082706736598592638280522164394388393743227387750379964107090298445030912940981293942005175772867737788334410236141404439228751506730785422891080395463436893805882876203702891179730191947816725357667467574225264437146629698697478029908841690078227915089846329620868636384444433363009598061137429024262889133751466508282294876897297728213043171356048263552526991417697405091640547781214977529326477409455570525220925551714731401609139720306144502261481776038516883932389944614122180005032836675405128848464377799066338049394794399009228185234783031178748647622487543328391471390830709565565237753068666568576214427682159778704651023556934745846782649769237853703802541375423764443065664057103500768800439810428415462342178936302769975556270211948622130973002705112680373220300957660993316476165517395491735229983569661621628386322737252252668677137851875312342701737359740332350415531035278333401899278558788570499070463923941502642154254596023357258442503420323357259352711829002861548731390142275207777214403118047802730004072715920433986339254207056453337667070182032681153514568997530158805159759244421170444848906260803617281627332389000692692774472248872672328863367387254687129491319082071579669175603210319155634336744442487331162945879820978512043725380280181507158298134745051381953140954695154398633297501638742189654432040703933468750526412178309335577298366936421026984874739928461528605979023144743908620386104840477588936092459510547967547508443987919121077531368577738092423155759060700755186186250923292787556006186084541666398739243167242069817946120793673577205433202583164913470097291245987498311655579373678223532589244772894717137374756018289594023770738048735897905478037492550022910518377852582599292710592730079063128364715490035644592608788583372824505448428801782899682307314086442763798546909475736962554449720048855179181485701093230026627487184456473316589318347627367512041817638187002089641263020815056992305832319294185324499353077497669555145502466503779592807988282316792096717040279319134067682024040653198647835842577641065604764894981405278572577117410900813597919220194308916735763258085865813129232069137683808759386719320977481494238742088877242098738724878356351977340795616328194356661086796052983560689229466072984781771353720975783788402054844244989861158197785392185187891623068604450343867560906323960538984235030991484969714672977201726515382999746320363793699338231068444615806655518473807386855307422222819073405429365700767141379464888642439695470503621637589905000843105620631208983111275809468797192102420354715324942701873071224901511789068885147540435569024999686963458066251834917072045546924710892567881881984291458974922195198463526351590728931076459876794167227395628866671065773127957649090490258283806974855244259234104687553944800792450529685884815748753402858297153025362622903350479960926826555939710513932231092414063459842831247227542686565929192467223021835018684172834886571660072530963599228475321034100347190750485965690822401591757607722079502291892725622813663345159198676352835255461281308592189995942028375265617241082279323496100460486540234136857014351676483797343721011046146828376426834989312825197529575442478296860744724435305268220010180525950739125156309617074259445232685371670340796253605554534949166080230123866071977502221091214218407130120249883879478745925596325610238670586494053922792252149949580455501303997350686240421150761806787974146457041694031988869467270200562720809302057954335378922771893018409372275692860020360261861161733700049547804917044707739683830718366763856157675864339981983991265446561145037297889897992480705172353648429884718175819644823022627137061813368735697881054238017683666540214836150683042908053065919599734913092621906498216073817263493182697242775495726813705518381565419855383008500698855386928650051498261985777066247391886121429825513551309857054747134823495647975508093548935441913948255251696036486426563554418491106515791526678519729638973441342462600126027933314213574921942666879103765787094797352934255752545150632742008587248771691148959086578519592789392712679191668192778447471897123333040457797587270571605291585688651720154819494754630330873301135084497555348239960728449201534419497307253136779247262080189998640598501584028807364319986175318794959285913628424417473472867573471285138288020385168197034217164458995635016101201368720406104118746306443437801282496270563088954034349721875721888063438009227376750210709071842757817399728775879925625086745373189817925710252251772070865462369987434720579228604576874179207756157056332016436075964409271800212503153957084356688336821129887894421651982109024878547941177404473305746956230449674344354726177955555239527432727840844279727838279525832497192870258214803967992100697306303021909296204201963017268255985479441590472250214223332798268476068236191361227152812996723444834033214346156418034526106747427169832807405397824942017695723633615816336074228263145425817875223885016443459569893569494846360525783224510958169333494818306755567219211344393217722848748617024714303928012901054212006579128820347200692441515604163440427502335206617733763165475501233489858315052885105840090275975103404824240273585545154961024205565111832055456441433796425957810861726635027955717703587224047510838334410213703606493357116238776708750193218570285790437490567108198154532605553199192858131589116529839298104418690536407102196921756875617560424258624628562819078952777887157504306573931521588221535343735906089462545164169474490539056167334765340728990157926350837166696383770895409109370676080783654045619222337102307120579275191878148165860975782277416004320237491517778082432160327121052353039904495749020729802563520054689239189062885579031754399485999714212964827627135225773714824907456278608767546370046966449632010400628416434132583928346354340069470874038521910123147587592058909366439938281294435454381694992221455110498963174300652498878216470033083096965054771564614481318581477442384168775038320895628864529725276289847144393656389517905681585111491465082945430976914045232339566708601980272983152661903539570193228757522918214981326855056246417031084086506293344420789637557681355726286936728933433546026438553000058787180191170914501873887462714382481132144752914130339683006528056919946037312943847214280292482268006413184543435965940820556997146322372490255906252322343925551068543987808722937569697695858041500413912396448246672238833967517971760540650802538421385945924950315568600037251333075881672154322324307635347234788613796587123889567719397454150946263944401832303377637864710849784648870106183307265573514009144806857593181033926068767093672051334577543444240049243523207550601109929269207595676285737613860940013137567981801535437959098397571124442089731571616822540146963411618151618318098505795364368720907993216455542373595276673677381441541188982231171026979511113831994945369152652413364251333399857413989724323028695420047681949309787490847659871195185484024710908009526252573643634198697495644827494537544611049610754227231852980451951143664806344611821044772711559521328098045506914041329189824452865677563831807577611229128595253604150584182579301227101863992603433458192547447010470878783057254913151760127881024208862672941159096209905837797223016062841887553801001480292182667753243917604475814763977588503297320972077016638460373830802832120753166534873166212602434420189744919243526744385798535356543786035463577454420807979359956286950453584600720739083460991906491001515801553582526966984676345031273509788502499157539229047007931989484464937975350526141732570057807792682932020809010248674618207627794081582423065458406673362692706555578077242131638435707885444449332376341503170714517936385890674939520840734655291241135133762447743223626741755535645724011737527841802211555857340484285523217478348333057680027236444406958933146713466933763465712110047971577115749837823425204511721336995415382893515775737343622499958468765585496395219006340197859556287897801697181240645703339961913055731611519573775239877856643818891144633670579016935510524750630921938589145942969368461765983857634362692103234734192130657249299466402679439751985507494295352833028544478690333326231414453630047316073180773151355116556461111608649510516074526960224363491377105373479005782660192624182446561796584927772257338868413984388376211522983910420016518924059099042919734186645463955479468811804361293504978889849311048147874586938347368631611979364483121116909982117924191341344755368480786844888363220218566980020371822497137473340461911459422091997657107018898290723118378081684961290743289094685413368440664553516041640643954323676942131841273170213885356353556374473667903880741922697001684152436666674530049848493547952083439910500266624819874460685383050627504388605879480753865688076108713222841741689231776012808197077248683983162782775070904699035189141077849646867568783439029965695022363001784159518306023913521478134401292502213418206037301513269394273762344110172663238231502778693202523282311376992678403907925363065145997777098314877502669301098114133827146460056791215720023644999749833354693577959769869744456492697183956313217669395352064971075286937931623556832296375053637735036823914081252490579014918874033964409545375627638540190339950388167963273810499680403953571091104158605324570865898352528985459060799287800547181366599175770248562528835452491445305873710257680978488189914812138010294359948857931639015919098681158878913452003062140862060045103329671429640920372116492153399505352182599306261905167016215173046279623436833525842784971679357917873722412530570515292180506954094295126860532858970497667279087273352754089891249264980154576801130203284815932800036729774796954686805018127109877937972171105235065238572976428551371620501218000074865786171745680841563002539833359932287184566709690815631300154950253573879327965725438609539657036305677338353477197600620311210778517656025192967847658940350621035104107426093674340416917549115453520742504001089646322317774826248351494847061062439195368050764755315503726156756906952054045915644376171070633156784347004314171868868195562332204069615593265572219693171420310482277589711011908442989904874548557383300977168163587290248197864049472978236252416253706219317171696426390336173430101889284155943691305722619587729786733457326556293399924160982322969039615065204685925172268353368387617246465109204699028540404208296201862766496352688640335397631205353513130842465349816289448454036073897456621041937307849804756731683917941607558719104851687768708825261201218806807861545043475625171844951168007211013252111257024827459260582816732194370876272447738914983973800233301290490994507672565536496988229091636284396597253121556014113210094533351298902245170326770648338811694157081058631335864791145295633429453861795410989501041920958817563557300589154687876295133801737522797816705435277941350674518685131046161370077319736870619721506173858165846635661080319620592034013369180860409103564990225984552345662645780734346427109825898780405222340419489679617204340568912675058034318405239767101002840958495893352399934225341035250987941909346689110351771517040676051187728554976529719781668745015677858978710359614743138140411935882050985798793935499277169866785110008625839524809441570013869017978193912375480897105465776037335109725476248065179822517580725531924976040186254646900339661124652772022028890874717293446707957472861978169163218039822116301442984967982465525561699825415551532300180287870366786974356179467863048785904671543033403053126699334196552988652687558659098975056251926896040092537741464994055328140328949192522558674953412844964479323376842002314159406321801041336700937969597619975132460858508460382005493435548501055289754864400555761516364855601801813078965749024005249202556418859098314044811031868548327147960653898645097988614903940951899406496886131889108656276618161423726658722919669524441941357102710007245576520016770761893314310204993688663215494280784034449516241378810708846178770307048179838549841216105429149493475819128410417490698729615894831668635050298669353892497562046747603969796379606982592771488412736570735653107685972511366140567766610851529565699610815320643236277073949318200067181066494202697347527111662038969573309802915367212360206151733064364478465947802366033940519164438677404649157212290079219472734539628513150848623267437228457865430264177044057500634780505881159780153007217660899260415160990741010423905738740721300374931929081942505440576954676625756418927975086369485745630471128059492638353632582428941279058195027421866978330640964984113337037327363738687194877685293389589016617781470437890992500044526447077623130211662013890877726629074337171024494487919238834162313371526460300298868971457612534718838523012095782590138827192693018653387782344302015610447535241872374898406201715053893401917739814055094189744709552775902616555786909583842652109449538151146765704979984906275315156908146246200479794539265913909879983012382711192643303279291940606323485188075989526353946619656464963260800343489877393192709215368075728736977629454624788836867571416067743117221630050427506702650680340487432892829154034023345019270640998432041132938541096283115103951134164717597728103454919301819755465867549388828602984525259026440622031021170924119350455125277456145471360672189933616018523647895599987890607799503130520110910731560432422002783020621659941198433185233470226201086719566431175530387014001084845337483628334071272886130154584457398213994614799022324162693096147511594136259714119109884960525199622012733600787342810756356637261769836836027197832370398725977302709855722964637883004494971392686797174022166664298152053423843119328556263588064276408888523206075400331550277284925646042825265130141109491379177848540031065641891829339574763126194942304430808400111110408048219690639135922717102488142820520677085542182312259656851648168492152496871439753019259774690438097964797113623044953254409827851294277103131983848760937011788845509547348534232453185020638775809571098984314950320796808903479127979674233208848481731839519234296743472174360138197333758609104808481149762239079415480794562959860962528946554243619444882125486321037998967835099517545780257537042861799557513908650339484647527566275561675580257448817382965509748159549849116382607097564548069963613268609600461707218953653158691324335714821053912340751182891271791372382099058969370770447162396326272105089943925209632829436902113883676647687487833647515748901903576661154645019800279087362036628364633621838949939834823539086070422058372454439009782902834428758773799868541344071679058818509176199160454947075888143832929864689410336803879263935730249123035372355338970882990137286713714658942720971569398207955430483797006578355865182114548626298767465084481387841187698887548309706048392957553703617785957951540923077251347244131826027338939584747080907760715341984846870012646759488906156889056942932075702845814694038219256432622368767194976610250418975896601829412505415390874047124759763292692018713828997588804113198078790375679964515877747231111549035242860713748007332982404127714099869595415501898886428921412213391000581573570477181663610250963044841977020772331699266297051658275371338933003607158855161061242740411448661493447144065092151014931561968775278014418520589412371830522352915507856407944952407245074919699625080932557592266458896506615553538210399324058511266088988337794802223503338405810924578375687308844576554492601408661578883847727176636738564612683700416695499755749609882609911245194840851276657430236935426747633971066633934792252751429256638072992502076961640427417113405873341439239073273818265533068398821173597752570180910079448737395346226405065152568914648864215617840056875882921930117296404717061334799231947713342792231380146832778559208179288743379022508554844733271178610662014622048867328866615832703259616426635109134760072608085585113294649093938132987771738158218367628378134713105769800771315839729820307963095160693063421892002542725711033525259831068628370195313577836784036930179050123243337262531434807885979834597323716033222998795499298282280094958013627999947064300898213847242603359508577101972353433075275533863838142223197970750952751949393998645905027504097528686957118854123744008206805880548593027345458395196053511113854613210329821245214125786184521876187885752679748180070708837827812528493550557711767758256794921805468140562296743397297022418800273708725839102366723535591096695638940255648083263202949403720480115186896674363196745524230116893909703496259983772001980488905473717497973547148882693436187151323572429260160073188653390640138417434613554725680207559188921781104871396180503219229601001199057757314434094785662701866014106806786813649052278469294615301335752056935323784324259213844663212018321202120923200400312292554191707464441577498018607889854867708935892608218841816877328326818977306499518620316278174590876603277081461146057042452962998719102879043098767439416239322749649691287676059548593829930987286038552984651428056171378312206357461901957556525312541065437103534750023788852302709420207437445092448663310848992089969282921406802631343285046409402084132930232259572708065660383364695992093516151420905515250837519976566837662379138256412261033396010414433684513416367066835418633284104494424460054569267573074980157301413148120388108950089867554480466108577110484389533369253443497863902491132452491887282696296499352672669516040998170304314869265963680395815565754681730191421024521883764699338956594607552680526312814890572371948501040982075383085605290430909814548639560858253539460708302391701475244110042684380455017450183047197866164260215478628697252616878876955437186672287860769390110860402986783341172281725197289050784673326268534740034593552174722510576663273746422538650526205573992628715013462197406535897274814457990912333026265315185913760541212737024822789214465994086907231563662164017433095092610436643887074654078467571904356768412841410472583984090308827702676033174950014611675322364684986438863684691551745016735525741743467118238413456431649792560118671917326389419263577000021692664040574652007130844718790781569724543674573861057118773431681269734021223704516149014530850934631412747629845553351909634491432629641515253741163578531530165720521975680453040793910996670422272809217302856642264593023019949463362993021994102644208699087440862080027242616314630421605103203947201893459289906455749867027724030515636700903272250002923557878007463111075652721706879715892086643661018785089855122472315496973054017662506011656923381910214612119737498318188196734972901789203203647390880352858491171819182530880790780780463251827690130942420954377453214667298784066881128565536216142657806314902388921162264971773655596840842040862181124877386231116426909293467096310800612800382312271531484741571947599209270488762505604955778697930815412652151914016686588547393661751715056783531611211419089363202841023385241631264702002595354225629226299616732260631607594331790379149769440057685910041926320984003595343309167540712644403267410607408178819729197828926701442022299492776608578040292422932029491254264760910103567186932988789409175858774614062657292486220105664625374765451274401855591235495073454028747617091337598376277062560241294638153522254957977701499047619622751798338953322029031975959513565483636612795675789927562706701637833177250762638567621603846473252272014257418990602849906008765750245724304383838245734521579412428816308386276879582217285504795382501234087123623546397216160468799265877228942174463419139632838460133152102652157327303253757396250542737574025787376160294806307876748455566155685546125396491546593034948763735788162522526578332452403781605565397260972872136067092095788151367649836197955782848056673075571809705095562129458999420172303744414934614848795857432394752459309429349455233948553009123184919779985459937340764184217082698281623868743385744310423981092419252358524463810598395703998906793292717908102717599909317292399671685513370920657728069801554257823702487875657288887691758869471484735206366467169098200841197934562109448794476217947159134922994934502838695047312207810877512726428391975433608665731865897586518508603082966127192173959394590456204532707149867555337185889763193354590270995540622305755737234493136867168857079361039512852772603278103296223960018005497749122279511965896576320788244243786315634085192024010708209778955434884356337917041296545983316515967117268393627879288754719345596596794961720326902880056784762889302104084953782607912981525561118335129956079559856244617776989199683264302381192520172226450702961620034851837283934548548491070809714176723672269669130354647949044693436709438611237646898861772166907156541426364982601571126181496857110219786777099539162398644293957214723247854448558549440234224584455917222061125271693058622243762233474201722375938492973028359501051146931772854927399725266824210714007248178267725420851059212998128569617304769413869416189998899397518838732802596047066952679220434462664975836933368649093168914598022202385856039653845989045910861999359332099472310204240570790950095036947528445799439590419043530272542857640215307500769408689714473442772478784208870114871922477882837590708097835833571767351749138116606886575066369073441946429119709937929249716485896608906942502033100055840602930513610475790153652248494020669159190354305937167028008760484088685214210128721004878782532612746046779793858747576273827347729469534905502839000413484691627268035062959862995991914215214525939220307260672566187505043851716469234780288288613827874413114247435110695661176435900823291633468056648165477639763917647135347902067395232765412300655028324146530858292062398375672060093617374486005956114138038727348205933214991229527561841910193785676948818563422792108656360030359107275967434675435211465245825117938064949076669087825855647902746792111363097960659932680614700698632929228428010181373815462651835621736738751931739048569796595142784330798133574685575318010949088726394479253108647336341469948065002305938238347897808491611429732135311737986211303857697595321178349889874648489303114069444606187937066717857644049338646998623609530292629022309785231779472673136923709716300054766924626419822195530291083982200155291113388447600669483273447323466734133122362966735463216468594097398333038827263673095577618508734908408702849254453053730809706877872306900692263220975045582280553316100785217820119331552414921704529021014143927190135297643115075611895525124885453890913478583497878377342747661357022178089282912912629617750702590968326240558999328208209558634074213646103218785579159828584103992048755348151441836398099324371462937051094690059594191244898236671190073980865457325870225434232230350359058126820552451411774145499872715792015943872724491456931884029001151756782511405364136922989969177784691624391154237701619568101921684347576876508990663211019639512316288939155289692795739045068737733469616659106846257706061963855376902486472894810712327980416861604982762011352022401078757033201730255848124391965525845296389306406886541825444152352879252040335964184389456517021316190574130779633981850095864840403886749687292946268121960571792569020762062591228081574461160365789126368735161468672487154646384505178439731452550885842773122580024204618518359164985989404885060891605025718001418000193673116662266711180681109461761879392203849486767628135678476114917398569467951142276934689822601992875467374946512678691547687133783799754560696968956812413628659434331995571781742024883253368268200362944048345512262567839497153697072406844438661381421861166792370991881076645870425203947500811776982567828489573081775236180991514691423471080597613733279393958191155152635993262816641284625148401476786657749117514684868228446305543411697086802790260257189920804818944541930269623547461302627594106091696721982556072165332291303750751451258443376881228253832063430746672730247300617110684907398921686640688431665938504560441632472286693008447076915559546856782474356481795965272383739293679533760645791538684799009588340155716795517631930003827876789185788533451827684544206047392942803691424147767964124586118932200896565465753776269192417387111221940085156027341540633101169854408033029042947502464752408689819007085135943865199523063412172956719790563847584976525058524604875681650743858804539012332107284980393137234493148326230297538075818173884509529269507855292367746200606118791013361521269414945197853920278658865403553916813121854899951108749944143400134562606834716386571236804983386047699106561777153120758834659385742746687230726264900738308070770936556914908637525577016043867124572501420743950162531684230308520192352016047459130976774140276632282996039122746324060891992321062046175513970419731617137571797799421405618717162111690291456155193319056321835837414234410470718649349338486247095162103645620455861851030328188353479572598648533906603954471852218262840338565971272782493023055144521799871596878827985556984161322076404100736126146730478866074516958793203178215342131918281113974998163838479012805596003166066382510807364076685578995449833237437548441050113590581345296664350772778914283476324764614862362925294931499121322716472604145201769386907162545605692689594714651383559344043554352646384302399620554721465008150578580022653570392176437238067256871441925971832421858903838872694017380164220960679058999646672548429478608245417345123823489250173634866498627284490913260686010913461218586270329421417903832781061377866708608037000812218898369468234104461047461389709041851532193441579594610931686515804942780869017726962627081500865134835865764393557831841218721320420310684198596241764688487370608169574413797220427571012631455711440277302627906608428476865457018530243354383322028482093412768258205367317324662874916719381014062841560153164272385149372729957194490587957179443556855864674026019232948332608741993320817097812827081951192723571178666338483165003536389495301711414550555088225235060237337472965971036157668583628563529281390930176603670374758072134404319573860993470497298959954412958735495370308314489877115751395940315312274700827045838898779159359010066577565748447866889519976049348143662530025953348285463154183853703476314541414302589077235396206642938342688221410162172315757247259273057342151896979907477573049810844857382057218515709090039808827810990914547989008832490997837947073676633121667585757157069954602156520363000932283933351753922725926579705785744470471113926803303313155309991982349743200284021879104281068516746941455978833060886109819802134080287842577244880949907092243243043453868619769689791786452387638845023891941078246091708408383631938459225032842853011864803671789264866898454145734100522829045918613324070386466099589729311410430731436113278735577055295126782906789626835543165040256333984503440687625307020922985352781919046960050802732849441577466099698004832734388018871296457951442980462879359338692021605211655479065346860223766007692579766162523400794934600508828686406962796896893056359211561929973697329249452850196738186689797682219517519605046419095104892866388563158958407278106479134969336696600918129905568855987431945920062217521289134761920827007902474467852265252466763529230116636296081491144839935659115770289695444516541161488639184714596967457170811510561877632350113035799906702499639858726915177714430527929879077341953815469440450552717878020528356760585984576383615517174581735861585577485823005212464990988427469938284323082293881972641827120475949902260520605569840638435336045566097930721290887459253872898014828931480811769028615753977145448645453027201971213266648082757210082046101828909115460436108724392058646052686106853878818993418343582217211646525728639132729750191246373090671967876328894784908591951441542648459244498926659380109440198473983898076596376250071653193137437413193368424068446685411433198337225718450785802987521521212851342301603890661405256977938437171993947426222155723341905713555538038617010007837592186388217681907558966833140454436789649872344680278742730608864429329158398597266092976893081285672674688235266622413086556039358694073568183416654463084938011699641832405848909852401054226007379006282514279868231667907072709357202530919278004634883618950072606171412722326157754644596452950534206696219269917018461116810693924745677667451831229977592375395366207731035512949474804590053653928691704271267569015832113008114758652294530703715784787015422776165653157413036936204123462270602250087393002082015965580693835348430258527140321842679684260863393239748958462646540531209326594945654881530308875254023247635050172099204957582591651652858858208911439022123585737378241575651203311407926410326145749004411278729719831437382783927192506667123627535355082706738851299971165771899657284724983531916955455061948419866027849967430837413736966121856521048273594048358443110969828642475855745837583096634841808745042493557303819091490882119910563232173714957262476187955242362991176985970781414241997856964133853126573019817847261624005016205166952416436058621016986957229346463913126168562363079046446060921765903937086508273335825734893393932901270513909503718094866470677989043849157623877357937558670842116261469177445925990437795456715751996631874835259973395870593438200503914333599905577853986980302934187216600954028664834117870664327425660651194206785004649889813239488349296026379007469012078225458131844675415362301264272604792356715290303226946200696066857943825260302313687437156915538604518278686196129752726025643086508113989505071602852608211818103017531078735517726443669003320338259996066509922458810828885766912264514787878613514700016700779442582095043034943193597541707444780350437929758381374379691077650269211401154572509899246685972217540654218338019669829121217924385223557500582676177017933009516223373867078674499359132328776784083285868970172860741843409561587591314952272261795993236973532020805340300876352418705145109802786396550428037778080242053071363378586852611434295739277997698845172495605140438833568401442168145029754154740856341616145836940298796430350532645006466741685395459932048693301106123606875871707075093278690007361693974690446947200060578235700056221495420315035927539426582469451537795276488248165664960071487112572807486396463593448921407554777132724784620498358698060722759130850280000736223810246633186959468935397153555231996923313697431164553769538897004473629140164113771627137743668286776241910128777393734668549929967860320151463828274233937053600552835371074782037449168541809515587113350615448614221083637267985708312480390856560481691646952744420160944880260152550916230620632410032681437304668243724644264788922154705156351591983770943627271452350756231160455845319267394247891787341017318766011029555998398321175997408465494466391530251307059516341162834790499172870688181639317655578849012519611479219002682580726449968514161278002603474035484777505270061074737286410698291412101015380628079040845079789388156295472424144305928500211137183970225765630570135944771675665485989450284769324152601241084111895332928934047002480000124900855264568983934810629938354217264131046207783275950799522849745714459358162136063872540186399816726238241148173814283807455104438201639422025018695572754230336018237053439826284216448622049322706123991650527197654317408094807008864651632744444585861720693492883047254166677090840207504569835972110208447717620227296621897172292073096882093140004389786533166272162769032779402930592922669133597650365109023817151511094672024510365027094516167137819282942199415359224767340831975489951754679573219335810649202075201575631575953585602379189346604791141094778172616805028180042310092053977814955768778960029172416135192412830805135623451209786749661665219312838412914523812259273089955914375895953200842532334090932709819899496277681484128273077286931356464192202181129050727484371961710918160534047228891701142846729928953277335033588391933987394301318522735602893875164217773899600825050567046752910795113414801914520852813259408023079973423093719524312363860449071810480041539956369571077407843169091725366387959374988009943615670461453953511506492121071664464130675992826295845514720927407262872183376298107681098310042311524399207128430180834522651436255562569860923421615628972610330418774164462106276318342661432669200342437437946808928093368765040671014840639688545870238898628274729259449087845320156943884844196076805936782005552738234705113576653413257435798577735125735347773975177868609916787670105382115070396381127033494605993474132373990666509051146605969279069021039024372902289043480087248017267220358850917849336866769131942614663396141587875050485605798824512343109276347503505413968779420122142808851880648672003497007790380557064544743002655762461705413075102508103131551315291773389616248393766082329123715340503691735716568599300751018256513882585533105157024813632332969363206212902069192793791169656519622423719911686978373691099179235744863323175569901613435529862245971136135709291929959207676838136834052383711454548099388506877470969446877357764174910824091117283341409537398787124669371942265674722585873291682587901645938850562620970741112205656267869934112771327641020175632512781732850328524597034365787366503941078552199147151427296895050417256755134859243577932444132886464185615673893358616743157713555972208876251292275976860829370359977963178520541534513317259577019799523061574191365272598964525543241786578911498338380711970146011196345903555569645734948251709482928158405552848066471336015930549186100037339564459240598834611789083158888954979671901239207554487321590937781036648171586719415037933746803550996503296961488387181872207552318678930258705478533037908120982844951849824314338711046164448746684830003631424154029236027788221353398638330461627021361484875548274805417286338906346556852957759300981162191547164994377416567298333198023668958156826962258276363731795544708288199777871338497490459087998743699831438299644898408310415353661029455299929854341025810366207373652379556460096692397207288044370364285147979438611858337291853223364314501111322519858629066683811538290509890381020453082926893693592769156165403230078747000521350381199793925819459577360057116555069668895274766891606353247269012763714931233489385852694285943226073279632801404042813473434491851329942481334135494871074205970180783000807682695418756627613322486410573863760534046030273098528196055474039987909958859787777866321239882073071191767231403868247192014572169015372602120426376030560328540759446517816552462149912264579772111391432687740347572374020799195789112625200433185766054203531750003127198815326192367573278144455320564924748673760864153221942050165215912933068454486862854992931218109865760909745086544152514518064711511791398802823417088693471894950278962212207678712739825168462860528042648801240256666037227574620887019506298730838538759666766339984923824688237466153510044834640796035790813712801163922828709758952271703219538834070980963212145205106598822818526600123000717969263137432999558320075581800240509279381856289642431348641435265994800173497462744950836706380517402800392146922502767047698786474387615358480652557963033079411335447068225347295089634812659982065050148271849424127258373908318228053833158898715495992826868093712947811173512576914434528991025372250502315863689991145213949503835111341659634588390512976177163095878385074562086171045291305169297832951970876306450443301285812367114236109124831823913185190474583633875587729712395360493466270685464759931964286483566073953264994007755129887728547237534754283681478996328323424755473473932499110125823286364554531086531237848926959816262854621120002282068192406500317201560593759083794037640170459621235278354321145344787046060787840175563642153736047488828977508399407870241352747795380822052185074158234919165816460355392597981009368154815105284041282792089281791917394893610025371357052857542522999242163998831366579169463038678322416338129286238716103462925583050627960252193100749919022685719716668273635929240520217531563098199753278558780671636759382941800190022062495000483140371519808474866303164150487485697153386756421835482150778240942524720947302375540357950447993099948526547701171979700766012838553531310514654407012326469336018501471610663880576592889357833525761877953745244677474781559554736117736513308018089883478083936717290581032322377748276174015577250126271486073861087377110135112949222839401198734821631571501135174771754751569421931516925021265354723689120836117759427788066349629330098496090817605935609378481250342697299905731656631424677192714157607643879626156656665781923190632648339374446725941468304971168296259918469085474677856513826966880891957765936733986191319177305324096760687972817849533764818924449527244418884115814084643861294261658642458427771849134746742165374935927619469434132435298862581021575838491601581134008976802983011399883203983429050687219900053876211096194496293067460420670780223280631997761686086265468845500817296205324434720373672082695187968370481441410886213061665580800999915497894529138284737666415257425186764850300724366880698111078715211832805825977079323314949487533708357077098077334031655014427375170699858719724529797904008813905857509724143395412578493699889892535615976844242023467230960268446641924106825069818661029658957278886642480920417276966201326468583083036402027462976881821927792030714999779071405001558266841664175651583469149512110465007622930436641528418927780737964354665653935219176058179454322070077077528864460369297309081670678195824722980207143712091643734774083941527932143697178599518235513679888467237615002932017622733137368779026104022293836228020347851664614885960198936084845294426341743764923948916714830513465700652820932233331134215123775119064789558453601261787083707563694163149033288011821148940807010005760991054062717808709952357548406069944702628174558750360056643116517046664924378491303349443918000592920460633419086180098111284032712632403533841616456973855878632926387363016770132285675114164494187217963810127271778875111644163114691713049227366642161617307629997346223663688749951917173053053620027732895226275670172405191758993938407905160338969318847692802951490582772788708471157565046765814424779970505738961853214246944933864400692044821409645227387507128309716506639155986020754386435379290674686080318389372071913485421350223564233584467278024930193257227006134471626137176274146261339939397154572527217204860536504679085091669121589759401868099241818077531424452014641402133845865784722938153089510767611678490524115629086108244477214329407225256375838784222100681362988465440959795743643432940310572779452424943729284557538094782220148873098772485847448099676353271655895872518310574861989967305706341618536790828060167066985681104121804569313497223169469386779530271141014982189713667266375991280458486200536998179272815334865974611975924154847047821357995469951841354408181535758803805979433639425908093911999076151874374217835223621224456371718516866314098013747399129324149277436438233877662641925611415083643661045734867244336960776167145943294419953816628684694306066243404880516306954456837430431959682689283945939858067622236778254460180497364525531279255929547022201667687888752485152578959951397876633296983941629619987452411457161503496021121585338833919169011700973874319177810718555222094888315745872381462186398896374609751632176184641237610373549022289608943557177773976954548781003231267901598652066804746509723491467607880051124791117243875427252347330546995496524384980786919865193073591692264502912663310498513901432243362876789084377162355489143079230627890175323910304323354120130699902603632820266380812588300937806828382128076612022653914051555021380048511832080758922302399004330993327506575548340544561260266176790666991186725370234345704512539072925982988480128520011491170379983616944436834236074291921249941024321780213144984120503649816729154884505601859876782915661272977169783987998608376402734832687398438459320107615787048554602732832824782870124080033004139014923273711434274483585447351215713931993949001746042496807262479639947107084257520647150342427606942910901894824425352823140568861318634558930181806438636858803633425631363705576975724138983374320820973684019949497450454345115286151276108405114525962500192571696369749601419504109579407542322654973187987830058115920083564394888362519856454943775010868339648884407280198570765764002786784988623802699390564705704919109486477560395927348855970770712081818689418199886989138082073707107036424673374313614087409033549087345160308667752448830025672055995673413696695382995798789739266587167683686382282416138684541209975012983832121670955264288752912321005102696010419577616120903170595647881611802996429966859604187541178892912237961992989027394046387311171691572804155641301630637616271374357279940756968595070496097488213881177375225731492090624917310732230494196398023955346536128362560337505126524957094919879808979547468540716316160123506707315518626474572412474509285533484438497984905770484501005056590652771635289031309039976819764984308752821826933987072575010638480836282124579916036103412429357227144496433394464856365720934806351024970954382708639597285509056456378655015114538748479511427691953653799612150448347020470143642402929085781625957537660705434506525341306445852116223018568335495245508901677279082513696360833983147672813718714254751152926543541667539138278351106901088690618746279604958797439422984688033270472282787478945663487567074265225281588547921406289549314854748626880977886233031951452295041605789573015983137539817476995573373439123831493437130802585517326747837117495837430176690131262929428730075457397631406147688468281097927495274254472252492660714718992190591852025657445850243463404959614147756254181673066058851015664196875312246624192758109468115480176123761382782320857476385193080203387128317763478259732840444253277855140240649222423640269003567016260553334025725306871583898532107290654327067691644055325158533699249298484902631435066933865706708311710758108477022574368269377539447675753325043402481961154029939197131174966324102034770055215400443469887576396643606467019276000178666197288661403506829201520083752041463460997597134389237521854268215511515696326372469834214060799911159767695712423721804320766359458303902184754992999044091819169998412871612544759610275330378004484038365609191067099183807593563660612225175608204941715725836121852627796025191462909841528634457828388989521884511647327093057126770037583234735984687120163033512923932802093357166560378831369326734671769871567439529125499627929951468038122107104652870763537851129934720771434700303130814314451209156667167447768925796282028509338180830536212265583230828138795563082669155288792069447245095194469770799810729032669918908497090505703180608349025795503426741560048440742082713848399820091340986661970169395105964060618209304184476051837256584539217462738477526389336758635226367389758326258187459496830626679651995285946986698372928277410014560233674911472480764688251130638575780110054594444175505406126951695460223826938636446180131844631435980915102283921251395965785537066782123598221557005957321531087029856924424021781739603455327045643888802347257525454833109870324381380381783172681161452985257799609170992681648568579817520525341799905373334555639300235468923320190774993466640671613745899742975518772943403147637438402340262263101328988697738672744510699111514039726017134363473854304370018139715528560082269403851618509384619918982216967676817388346153454015084261134646948176138051589146857424685812836100359354991021683747589770366787825547361169208523363107904642686623453306280396065559050369292748999941541256297484441103828862395811842501812809287711023682341495487651934133071751953921101550347970896886864017093637952853012951951375991996877996355584443708379231355810427430489782021326525637362909616007269644822396356530695408378272408617744327594198156443179780421941102896334855762376509622190318284060564491560410174970417632957361901793517978571298288827513363005747319882892087388768680282103426197015988909037096477392485666622388205024380368453018964343696362275126350466440639229852133837126533538343304253186927192289586557203578434123244399820008479130531192788919726427914181961047020890145503983527704043781275624524298171654709661492814395770858949737498930396356036548705916304053812687104351565695789105883763070230911529508279479457590608662136302170570131688841990923829024533286377365186190249035507639586174052297958335020129323457982433024756099172809718078377609002977127863882956613992115777776778903745484478598234026256678172653750207552582131715195354574011121657683755957924750582698848686547038482332587639888520431520198314942142830205869364471384225246410268562175495526917121711157217835663436656684372120343750921121119639690848166990315988765997014180622893730243064177069063767696393487968898264053789132731314205109423534198854325418289323061474945387655931936793672317665160726915970609961888837787592686731841466125596524062846440711603704220769324533880584641982579967572866940699685938054311615722325338829350944462405464113204177744416871841395982717991277857305127473036903538518372338144835644357622925639079758028801213977418215472965735401733004033596007357449177436936202889363445537171852960772008557991966988224028078453902512454338713891913886028516632507477161709686573371170076224573729783225913487728864683521650430904099943104002986645482329599417239146211814405623629072175462239452781086918663546868505936658346364705714773975501764044862399605928429598411482357146374094991339458994720991404442260916053863139613386095058188433599486464314220267711285156360983403847159830072833602622548499807697708338281263364157182381741876405600345499615491894844238826222779362253354038739932436623364052282310881743496969987604699521895769855030385397927140796773098151032324579849184759895668084288806523786889779334303309896605394309929468487882501384477561915921998672831928362391713866394041042818990055590007742566536780016286361776995041949055526391484750491065554138670435998993209511912336758969333180728065285469674103236014196339239995577744174204514685094588591382431901577377546725906978428586584127004388956267560934132832097120564443221715966390366792695769674402029054311210165187738547884127474045382536363097060494659300088496851023615732744724073929116580466134064791656281521884469766598352134402030608940465383425407331816233391790889558326170079305073702109130468090538348254899207306660076216332932677325930531361362850644128016382675552274880798620294232906733641615811543509448309659012461894102708601060042479305204251765907478489359409241337146059372805548478680514168998377854744874993651746273338390502228597375829929704602399238920522332565246499519791691996241719601676213948830963473208961721071579010024058371936860671553829462669852654013179048024931075580346492894823280942523226048741041073963692278088557718283793072030679317244090914063782165939600189625568931749871843797460891549960185872080723058044955413471322100909773491108798675776161597059812969804432372859446558228753852022920437250550956941026450287623474415156553083768120138437830747645927794812186816766792131329850869743698995628594823811736475706573688929987833157153110105550968871781208026421915409349603595945361419018437895386879414433025685520441128937872890390013452731578616482467961837382125065842862415207433495590445303349274786035244360505849568333613385393822984156538258522735816134370996126463159559402609029823491080602179344890349991107634597395949879398755217641573365622248131626802694289867307001155699467797017328703592064300332849310903473796020499337963592495898647863573712586436870274273548710045427956812901287030372056468404862179756831068029326931549220049945313684753215625850460762385648284220173790610130415540712309849894102508191731692919642738784140254728966498905981130694952052507249794489304562494876552685155936911104456278724917384195009599529652394035503826394395401569017806400886606701122076077408342660349527961827920777372342903148537960797286444270978453770993321881215206032976569441161083779053184503213175279773673966334669804485527501783536431339908722337503482148635562350225209699535252616902265883528722262726968037862181436449985344364844982104548032872850700494467450643348772947496850540411531657653038187533994986295997301141308705915560950679648982723453017261147838696467089750337709661288932278432886343939494907389393360955721529881405481597276673222679854290505851118877714510008122328914088984094838536334628095829709690383738138654446500205003385257701890936856944784916841859911990033238590665195074794085024951953808567181897632255835595090868553864478240663218906876753982877101572941849043890466088072123718635080598720568655646028450408753794096016923600827200920509222226104924585770404285484120050544994373331018083825663246870501039629941561722865980855640368732834928128432781338180709226549288909832990555622780726150420398631005447908738440498425177955483410018865967977056156721348097278422159186489408577816842888200430522975154941577841714392128857597302130054969387695378876037764922648675456176272877341845346390766433752183313646408138582786049350544040376685817374471563609111472501686064918573015614940498234796551351027103369809231012347972274153035445318889770583017128478418437849553000891795030025135509378620522947833625537881495612362009081136041868285502030708758747347764689012562320659394630142189241822193336085591016832185453696702502269412489250705445603004433047500198732471880032427430321053135451554398568211992424357578299910828152487493775276325792549258440735927606214457420618321190695073263095173171822791966083954579673636086379792038558289768699870151923227593288913021718808859945720309841516809225524618906514040185976726891612119509384140593947814854513335077550478826166552729112134015391271141389427309596052032710060529008203566552557120498546759834964680179276513758662745162396177419067217520317401237973686283189384289130967445986750255404462696521876695059776494095048910848293668866565979179720245595840720402521637889438239754233243146055706757142449203198123570529865625715883553609974680376745167923227104126448402043903540963288188780747691410985125699444782287428264535657106247045946102633154008769921848108861009396844030897210979353371391153487503447884682533476906219656552340871590300350080922297024785313436009717409702769061604509238222563097225713372273795751664896463862483744048424866955796163925356226333605797131926689122246726094699989558560647695980487888737764931305961443107365933886414629059368493880937417604597316390576543464433302590896949118055429041390532764062565002856064364510551344813551984926747146904708705641409422494319304264396012817454206552455297018148022995521391632096771620112712357860189381786350230976075518971617655249406916352593968141978266493135857693936750554429510055639432965086178932575329591241876696156801114530690125981140564844879572479066272375625956462304489237447660370906763563359581958578136477828581663097691152134416674895238216492339212771241254365701633681901299501184215382377852806979945467729460072734789708452041764538371518866950609045217187730153962964032697556389251996732811987429208633918142874196863145157233842826360882407271494522955366526526973518002327005057402975247905480515709329894493578808431149005667585586002024197177655310471026611189130485966183088311047309093385751461174882002063257176895963562843465107015102647480259798467515776988030702450545325731939253145710494346842781731254957338472910675101060921794408164618621527008467714277647504159019656975163230317727336252878028390156570558733019693622693940231486529446192291863166364348471744945740287189113511120574225464623349279434016473289441358338913863328839883555967759535493177939812008359370220401629105732950449973435101226952844007655316377615414393105353360421576055641657763437406877650620648647737332967391334770105483559650411979871825007921861211695030479533867663160075646044522165872510605044250248588486891079856223482606769895943862852150882739741781618399503214229997545469541071272731636602902209902318518167094731829376389633865736549396693193872441263386633781838580157385306470418089901741600050969070546983121162833176445065676185893791466671822770388902189001634543145518541027911788657245443001131028757277232865249746748489449280841030300322033666737842080945372688137070168868543679968916153527618342872860248302617803273596026094842464319782346516574848415545518593496509540474297873494293884439007269103237642619913687217820791004789463323000865521907158314492373666778116790941027816752703462572990983276881706848419880431861223536266442000113716352058368791566427510881053081517487036176816200440363222016478670622843366997686317184471645819593952584675563193999266504348041650178488969701865012723083533252717588579366767273690667241776591328785898117586909406549529826326963668252162838315798392917894372108649641622301282142828436412461867826548061106783206484718001975627272147805618355811787866587444577674588465243341702556240186504318490155110756362209745598463374324322610393957391488798591076497349641758881682725711896368414090616005204776351786983427782561406080654966688435907308799461149403979329311579183582261636311403666342303797363452662799294293343138696422394592518079192785407377661431953856297977983930516371787406644510123989670891583391637791619062092651819399613005807265790294192589993238735305797831342310501444481441820943645775868803579586660907781298668738223448413839836747979089713793415991958676689149823513468937536046295579854797673508240648788127529177495387145975590866534069471138661989777114793568944247340883900933637963578166113035538136176550711574670121855929855041361599479693099276739178901610024238128449225552759804716035260865651975656497616111874032965809652721101396856773509197544311667022049714313609891653832129421047659942726256247303740231609695776076547479131272820957121823830037576425875117773460009454065497742592497944659284167539597291667968008577544192450811399861070425692885338809396040370298048120616373945042528845881265364334671950941905578631854552909968337018899705200018422508176840168144206333350473306551587205280945861132962087669299320165587817145275552983956602621993414821496645000165832029967892875580017560154568769966392874893659470490743726115999264058583637086777258384976710721923298832680824872658682396614403321731086619272625152886379158449682198792935116027364041012803157828279902574220922788246587369640819672791879902528014162879192817255937205827506191927653427649751316395012041702650709702398525606177237688740166044897981566570384809473851518944929817147177034163711746991829521320337185473816910009582316769134779607772796728539869585006351379488563123067044989506040413100520921598450084106538843094049298194272529550523524512723200192999799776821018300450765031838720237043323640017434833568854671615669118725391880489573522226577973485139967082958153588245299823011930690572625455775995737329641247520303309475199760886485847551079312341647567498925992143916556768713105029989448415145067309678625857820017294946774449365605475870588045485324937158707967665313320780441594338144628865345371486006851614782773967746619251330989879410792489098632831383638365674140908469466446780915176495427762818838812080228821288777805630438707016819474534067292649881938690325843914756025011355883682863110877659659641902887712539690982129238425939560172660232182644803553632948821478684789692577434976696693585451209038200869298854814429859564646195776249768840175840512957163972894845907862221104534239885187657664369472328647138057272166348895512145786002666293816627759361343413070508683860791076843018385505932162999375449672702381891166774337055723290300946292616689452531268732566828760972195751071580734922267966195415929607339898357522910699804052468881281476918912242511007979362831971996360131408598263437151050811456162951537654285577058892211383266110035801487071741959600001551485860021858657058586019241136156383764306770484740913764607293636002210663169596366113414621640579385317845977985790688760552973246072522933451100959368797173078881746441281422108384711639950378220898887036546846031872098616606511130782559268814579661189013295397020177055013305049677290333565361055685964846434044568536894298699404966544793905191049799643454892813152168285971620767810804694038017134870241536671863490411429076085032001386052615396991421828875643556561611794974468206258601446286441356010034822667408836000742724867873867486966832416507484808899888915541065039285729225978822803618222263381296211344228709863808098727397478004903738221918602889658980966635592985644899306110391521283289992835441660368619609914666347605212809524122967289837741641965576068626154096021855457748214881458918509922522793058834116590260593918691719167491163570835154141713837300926109480985856697887506345449928834598981178514872171434519222676228277649373718312989841564508061947071652698290811349850268403282679467511919242646259512829733516322434014450175402495880409842962408227676223944312579937557185249733342845563426634104723359004130259962357792801861585482778894035175741383203846709681707365391933976991930549610534980948443218930940173589400942248657079233762680872919171867524829910852480460622684526105368575224436416216075028185530780440865442128568886445768705506417501095645892217840162364487149162979239691227668754990679231474855494918775094981663274478748120259749801004463938859778189313104449727173867559511604707826958175269861879878803205983867584064966845941238365164104178096268694997314444809356806545364112523040578956118683546962024860345785354345743446733787283273634817442528696622048622558833257259995961775605665775289764611789388298735707723512868478574021924511956690267745172126785363825787748762610582121877934048743803035389640839836759184276085785607357634807558130091677789119369911908399437135793341453539721783393375157160136428164875123012344103411850693616328823080025693847245565762103032937166067244112271417254245458597040952279034357417087358900534808968303325866045854761768989834150491360815560453192763401283831754684189276656588387771530470213703773480229683396466894369072074943796524179194851408780490032494810655203575173972168084093129155914424196941613619210460280403880208371936177103650081200656775774162241564952793706187053897400827361652796464926771340203975143107204855917120289227479166528196760542795529505244832866109747029506520771918717818532976545641228580996766932373273017557705753099203755501896393714355821644263814912514257640105171785467251476101136856565892084327588550800670784173272450061149844009147251189341566875241191275191450104731211465460229839051851521701185066450544617128241659551015491714861477661859516749551906578691246724512582477735583588467862680237405895934369820795160836468393066886780516528976929092406211565500041138274676543299830776284337001998363099313254650322949399532721695781816514333041500185457743997765649925714260301624141648276658785735825372394695616559559739197355364943072326438953198808700542413814579026052337492475524474768965239251457883777138232106481325055581279610202135378259908284716902086781867470985421348287228026597483451288400154226123158219150639694244663596368477953361001985969368078537221353541114672238561297570052180686544657932983939946755347333210259466853378211118317279033495605168527430999440423774388707811602473049165892738520507462289441127728433592076661330788329088169014078940355546258617111276473184030991731661167588109424659812184975295135860113112509656235657740934282332227591227311386609201189115526824709435509303482392073391248692674898801340529483194210025143486254551988200457583549667129706126929193058147885555980414142924519966431658820015783090717447531508418381087857139731850017281559862190593485580191599427265753392460929633479090248725181783115421651932448375958188471987245702528506562556625255832461833146454302503725976104583963296030984235159472464037936261702944846958906201846133670643818437001302285390036020375194597562053576707258174435427701746628274233722855675942629985522271943683579159676913965863335713667809205323377591476566872823054873654034547734779255843610125403260855827296114797715299884618735790877479920466034608565107236923119240863602376744374584189636165057664217770336637949719864516686315743620449177648297910801439127115527867690551927261150976093389120434163017247891403358931554037751308751866368284391710193749743715686830950492492355529646923854500060807182482705921915107861541002649601371595865754312993515506531650021877940130191060683746256492619283426547972200605650103797490329828534649578191999354900270049115250627740331274158860298297359676773151382311883840580834572351583770082040467352320155754533268261728944510089966050360922606848014506448631715768012423146035647171288513177791496655053668957927126527986314839760206404229677640122684019388589075224550557875897575990715472787444181997655175747751295018297153214734331260281864500655893140480681968740291257428293943541662100817070452304993027741619197933530072379884146856813810104876605136599046895281459221763224349756182911036139841096399097447735983087504000957637431934856792083767175487893008328162089682329602314684598673335680528996101896804009461258930404869772160901363774707253319270380030125552098677742293162692435360884122687483140877134955671200945214837481494514418076002120071389105195399242512214650075257131433596489051999212056300959879330187841441586034085117618009490476789005046692334562216886521749872015833150824881788514580198200218594411419707633333386241029232362463175983652893558568491929208650500395918715529924429515353522929647312507650986652427499446969936141029452160973845569770358965864684139133798659801460887348451601864166675387367424081426727328056162774961368838297133419565469715350550586798895731526980591886924623792862474645226491344080344061073224157723640915863055187960798332267899206249799291290648561739594002620759083182175620047360130565840974837618093950592620265054810271473000489711381000248352618094911080204826716000982129257695232432362863655932152827275566549983744288206747637747310519440267914696159260797920518433660371446855470337539957659723646811402590750519910274044638975819565460984601672349503306662384400471721153752646459791180277946437118510341343609500078911774052050650315475669797354512181230775771950027657220810353875901186927662507616679978869950352199027775234518816965090226595012125665878286884403227533109125140486233870294882283524656371870354509208913263618972500307362204567576815523850822977731088048324743815246535008809725332184136296208885970729848258078615843520808352778620330312473884325820308059710106653852557844307419773534750906735811186611045288710429987576037269567762857569135321138148428744660020515207861916628785685186877800634099531564403697698247026958912269601718633956789447362907530661800930681234733876912033349068650221315080904212853808448612415875857051585683209243703692051065749068276752145663865056440262668719564806234817139126087473985969147218006789026220569108322299795543161407070551524891355396338084347771813646815261118354010947288093116436276593848819418362134573636210786522049830333826916680060911948271879014361716041430457699287489963703946744459868471670329361130612016242435998981446621974446920522406433360504320818389883231419487067169963776832468067012962711785462811179911649458931885279500596373295161311715346940790588376023757645152669379168470837586422347305694298606560370770077027725652298982637537700305807883154263946412486566677316326542520024322129145991286692864774320838130906517143393830490186581720618568528887789619935782542011144726674159777273352238059310573548702077087070566926274201684175751815899919584778040851496731768711068979956274550135824967088775750043688009481579880412676343918891751615776089237966194189261986250263980103978958210579338414907746820300596367036248505034809331220042053801570633143555165249670638122749057313954251183938013681243955053428246151895426677016408691910455503947908157943063076201995784332912380659762793507626272145604439501402473621195005791553747042348713071479812486235059436695372971627032420854207020328387585174468441041011493555343571317128303479758659086032048848041920138950839911086342099730808133712916418467593148524494973114089377954635339080039096183972158312344767382727724958475343712083184836555431353859784961690568803610360464216981158387914969912552354522514965345820192825161708902940593858964202168259535763835467740150403241781422558917859055993618812772517699796065863438612187883437342351615249091502382331407822422157316126744397462702798600251947491268435123724070279831292920742737243648409925856818686637735628018081529547803510086987727503721882071972525783108853784579147312908571158573175898741016343433457492805465441863683198532900943545694807271229986039917448235387074197058939225975518022491914385763564782754506992330965945084026223379511789127592561068412294039974285897297994436607070934417688019477000051068438471095134120989220388386053837628255434894962884480055812469767113094320355996251348939071607640780402750208731338539957246244729700240593930628478159534075602875092082585731831071043867380465291508218313942727624593097342151400942377692188724939256950331840005492134196275746708434261024271437691019538643905847882016090679522072028459238860961111246392670353512929468455473698576521654686991995616007766695438143711328778478980577496455596315362210833027334004166199192751007709711055503178796400608049318763684318703839127433187878357176957874674824487212045058507074864832708989625931783682611231599972488804748164663991554542228631334185074626332411077286429951791104362264255791955791554207216357063043657775409253490435626942365693906139449392382896753412583075184266943154392602863754696912413905290065301978747267236295528132830702507967010071274103940286962433906749247097635633660248066569686803421140968589222426896705287849717302155639802744836523235187803729968598687108657798855330713476878083299045312363223996972286192619709842602696350094959635250416194608729332186822414223115512068652473043057579587947508646459165128953565390620382787554935982379959690931522700621523470112233009884021102803580111206856681516991412517762893231817383466733423140797360975365579848623380222963890644233525972666824306368257680763865753368969594664368162109699967098471139011340132743726010046948745286310572562627454958475232193260035958063017411737857555814078195900452410085678946443645447862421534948475837233745642875945791307558948236065727203585569166459923110185921068192483654980164368500650769194208291202363085745020818334315625938788812740670959682024050217705825473259002885401780849521027760031479525887552981044567463322033400658692309607668769613611314908343631990151731080891597448059527171778044838801110116396814124003818265781480269339665506793468170905990437184644525518718969783541574885707086299967455845291633713443940424839425537784677453622896317243206531269813464427847257284055135369957889019297492513995520898965848424936331903510027274494313145878713562843992810544068966262416759882486398816638486546364402337500438824094053344436725024841319439652213689788564842916275956436965993223257831196236131728237011340598010188241537771048551678048815852341884079633334114507508287973384135338204629584020414072160002594946911000826081900620220807552934066322264761906602270611940740794924971777353583743692056085359201626648956418517975469640344533193818778507502355240822562709710779210944040576316158112116244988673344822426439683394732022182879143231134759143728921589180908770972384645708295504475904397656820360460241316485659017794174759161166514018181466215362233644293712136077239547940539470190233272400534320379586519097825372577908381011896093151741995444786636338330299892432093291328590206475580144624739412705150204903259354455200990765211677458532175785573434761205918834099552348071233188712030366921594630955868068559456372391894196393783914381549296133118552757325310417423475018423554121859115617284313650122834916445291808237997030164959972889123314661727046392609010489920745369476836477594701552678804138456430426882372846673812290022872663770696104225940701894870946733132541533984830253856206622733365555879831935569818967544531812705069328694338763663916572364267971898166843506598509065991129518489749324642721097240160709563530502339186838256133599154348955574361604256866070671204747779406908125896638251428950509110383779598560937318495566011934542322979554046525381821316135450854688392965430038111486212442914105315636828882596357516782170254244427004476105294155787427885698714752404161224946455883103356516428110328559216974748009201060027679340809383372714495290522772808256942558065755882663619510049101255228875578840393790978148816132172778915953059865279431660488138966631004076365492775523881214397412482953570767273329510381646060086507280340834483674885630390175219248423794987855399133650530230182253959324496613297851581629205346851422306257484199605591322426400136065906257063096996653076774216162137478210012989836768034247098560018197075322093683775454433953712130024712515666229826318683154519706112101309331276665274017462833829175330424457039019663332368525768382699075609251754589420698636747252667691227043282903733738081341163011556112070341181749405560927890510173942192032662366760458809435458176105618190798511061300116022661235765847686209559906195914545291087456721907959675852819754634994970560161358365761615736547252476933700538621612043223550189833071083482471260352412784858450984859376638070610798104900750204672788397190043568020162959182632904446497524093868236914356566511737538229366759402265576618137405464939962727600767751383156002651699927023198436222566779173058838241345265200816630977440198359184314917227828862714756869374783386501686817645491537075540800746891173151947907063481263783626725231327869676990939526929203586011248017442199693146352270264489437960260412193450311821466393364629380235420714791158755275452461239825391561326907155150561127250527349201492122616613630967093604153358106516966028275678249295976047975260842210636406808357068055099016094265338979505347245039947931558707396786927038837453491800129913159931614953263212821958098910674574675725517610689255955063133809989388489322286501070119184349590051997007988258082135204822040942861133838093215110079429633892837535895414639801944618174382771956695332102049573434957088014107069609741378155918275237596965406518751241357190203334365086883260790490346301520283260811243914541625471746189836133232178132089555891737058150324531418094047395258651531795752007723523278632228731908662027619170157661841790451094573969842175640841227705860206079830043244732976486544797266924700891321728667095705671977084159678993713499209164682653474207270742511319984226150368024840121885684074197927908847994185919063300153078705474749490903893465772231458942343168258163606015416045055391334319648364403413725809669414561197753154166664376039787882611939644216262581402897759431824176447627202397014265278763645873603946065868841950905181841082785098015580845789479064643528144352673053186414536925863426779444515493214463947209363251751951976247551216816126520887290436927686906618294694151495661547473916403470901863072199186926791534468438676516787754836099082249310283708884083227054736797225057897835266993973308932519211648018205755427016571922687655532866037900249160635604191844306732938278393799931233642832955672122312069803187610918219702194648582060041533237664700417375940186120261576192479216932705122934501793704341991053260769916255239375092892559759857186674988018706423872368187421533801275317066669435886101222607558525117699430835821065278886068751095387059627895418006730272884876481661266490729243366607401455726473529084369992289194402281791223977351812768458060488849528678913333171838498246860539032708775210687092674376264496994257134051949928596366067835336430520821403674153982980399933588381758411902343270397528244516425077058854585058358827071596251128172890166656711607193733302635037373372705621970994948886286275395453377633183403734423895514937711018213487614850637099513345390967324100865863653355961711766462124892344588038832809080392020431045564116518324183129887812765316641646306332483882855027875960201344816690706462159873146939698763429807348169919524787850661874485800833374674398660385748246687292171545007379587027502167235096626099479140787792555590805991176904738425527617322249022915573416706461029784086592773820189044827910690847964095889772805637083414650046303074535849654279184523189834889949083187851387359098900203276945144842815794391900250516082888977222782281756746093159849196392068719321645018803473346447929498466454117786341172618429405132059503346067745899357625775665911285427957557254538181092127083669048676340899529998089153615620851864355120264455955369816093624320012150458257678506520197935739210086856299362179623270835827724832437005197706980226966163035806225187083459748779737396855681643937221348138361599732764057749553336055847324110391652459699619113445718806647813085603482484290689277410212020039119995659407346954058101185034989224659244973246006573377141454384575736982312397197164745773734451239451299846587163298735714178428107442847802938278503546650501210879459713765215288620902696750007201345954320093919745848231703086521661480190607806404499394170661773457392519464072608772124104146030116116156930810381520683583600570336623849980890147035298700289704090885650328735516865606203637611643480354895685147207701719910866992992151653408287762423084123873508726237688067994498958739607947535440628379364883234110803419390244095683882923118705003061101186538064455143774516991871321202377912510706629909340752343405846500531927338582584321626968129451130645362844236376425910493657726578040050865344454933425743420073295204781970994942302978133249737568397719104248079404413511395679136738491194262039705325910317492714695759854856514788041360122053315598994631906475512947689735772681935382548278618552501172990754738078251304530560661172648571615684745756330357458137105875150527719891190897614894391313766661030654017959351709286303626092364811245511496794646201496850864275003136545844521826784856528774562633010285630504909906415275572925786249781184848458461097189907228637187725855254972753385775344550240296572350052282990493705746245329257017270279639635680620817377926237993517886137953915180461600865623645650909510935744524217088845184778908438811042281420579002979918208111802289113198060748607474703259634750746017635559784457747236276083843747886872796140398972071723974283498112222695560268356255584847143851537471551210925799791791015801239654389851757234129098795913632834447470924420639220445143395306927502388616526592344036323008697999843056591160312243415030812310631008333958377203912590165142476972827899854054040186843445244123303378559175844073861209779459393327063768187085647582300164852715002974487736976533775429150751818611391008993729331461418271357892362584163086096641365968864109033758506093427153304604206334248719295671459926345004162588523756577682509160434644213893672293422878715883662915722485348740544761764032690323585715243934498865079650185670115414718959712528888432364309567551535367017962567942783331102412430958490999246841550046453010490676083369192350433581263061662749378440775181636879879297754157747079118718346456790209385916627708780366621101622431737836624201920573491612823757705802100740314063659153634385750137558871480510075018387889838321956881842890421355886075289542720316697686949802315476535262295917869739520956579427089352036402769623082431118749930090555577413676855010819171974742061200057553069836338272822416169107773163767247591995314188915418747885916340785636633273163955110728184229763796192814900987609476305298468818894924104848110456527351287917432119006699991277778529361259305013159571580191769311429274729269291433792022561729050137282657694109513358748174970105815865874498613249974326185537383521407047172580878189265040421908529709106874983432665269037325374969117856004041624640975739515330007568788755004120647306181584694509479276420723716286824364988451655326359922808695339334449990180221590566417601695969377298946528342663650918641107203204625108253077358808567952792411095683332329480760300303854594447185295866526864027285067071114227492518623849600848741866242583822782553372416866808704480571494232258857620233113089733664494645401450521995434026768998925525925711930233490069009876104345035755540959641498720244250108926518688177737106990481751610116636005378161254785128891194550538275857459526991308912701770217917179123718995970870349503088104716999080855909385881309015705830215255398379342747184418241413021708364454734201678241545575654031147782624409673464419116522690008991080773870571334197673430248902517658878512924960862405681261291016315100766606948359972382680985373333333028632757484202411705564350060757265157786247690676164451312759446521485584199475045933333945205324208374885662618797415993986777039625164687823634445388044677278614219498756700295114911810695320429626487274753227673529134278991704168435019804639496566287627529957109839023390845504483666081157953255984599615662657886019234267232037892648681301883748760282756060230964880937015984107573033001516658692256836769501405836927678469878697023592861994222988236572666007482835045626597966984292716679674545972061922853772489480438280633570582047236342209798721722652415183067869739123655921296630913748004840546829040056313518880900106986432546019609915301479400734135642607677290775549154584565870249868647792256800431476438958663417910017730368526490549326574871812724516273165945658683127240961145590374350386820171924882110790733356864073953155347141633135179556240255154164737405600448760118082189142751678572131662050635979646369231062322750739701736826539589433715428341663277527883887189434900181656959249443902481073508928283219986415151800773674440048967307718684146133742853512999405587524162325822632589515519996376053327723676944296977314945617099973296028594981168388138983721677310068919726425010208954117546234261589312339190942989391352047717982621533170759105863890149044098441662731164703796077779598026869995454094025057938426884454781172811839759770640883918926432439566747991107706239976484478460834535062649817615706010915655604982453349741428312744372774589140796784052870919159265234800866398100597382999711227413276307049672545006796571789676641880949393874912106154037908882922117220732333994419202401451557463998592756403644334117615921047630111458891168156725813441420559785575387835061634763231495253064360112962332331590789429449759515525424425306974348655129354365295793420357121456604156985140351977845712019732174883247135660057342838726494321767641378565210115935708901677590928426555490047160315153634393433400634879431362248417319720968266485554935669983851207220478497633191803419593432330878555590679742204912513941205062257765425111959746837839234626320658668498112349329218710249416584231425300470489601631975131229164138530254953381244124670996748849687383400104607907724179142847771845787659984490215491416951978471967345382024253936961260649142609814838810023971447506968426485911695556635845735323790857754669182079816536958907022263656361926055748289608301428522758667588679967447749889643373870759890316229923481055347805430351709270920737500599703763228079157462916448325248659451138482503504441806865035511879803395963678164986204567364234486489615108170617262015998264029356966943834704609234032219127171649682729708127653160208208585957704017108154656746470842107938500117214314395056092833567536403637242407277315938306478437146208282696590523619906721417028678551576370246202559038054767498926471356922043700725470319504530531458543921908306531133408424246718794053185184764717554614252821356852729391085813442667255833681848062132693001556138715173120446425907522642723708506437714962339154322537208865141719431561525177363670602732403279942758051126727954577415447566057304798340925843030472249871509789066660143913921158915877416710094048145926593831110736926481532943674850899210601201017473730885129958405691003998994721671079309412178386868178356025410895691968169261421555443598467851086307668498542649640762658810950458759360710634269036365678642166398009517887957729740636296603398345589049484869129692375872149684931683478437333506049225969009949185652186692872887186392830671805114899334529758201968847377771498258846900746881727513778477147722351262079902732764487791616180591794916807032033418324181601721509914352206312398392086753830653326701498042420610025025199424333284202804522555969045024524423187764306928974524550946232425066185048699659703399548208044171543253065242268515286901867663357542349740182275235908189823096589170540744345867496985737773166043931365733476524739373329595257222265745518273658876153963358231110802044997856878048284816669507235954037081101761593085834973247466793245985972632406983445700415797142054337698103361312892071043430414811557062364139276129020475984783529836311827357297717970210207004485472650490218781849066595305289879775308007424725727391815697540875726014846148979309079744079620087207644198820012774352928675682854404534896247925269568787229351993437695788563568623769931069765343309053886145831409900593977665735134546592399239825985779029573619371399916039551897001215261714321348311599951182899554865326095738972695150651322434515275351275622086668849867135985646025256486350749054485673449029697271877405069401010199838163616454913966057652257211254889908292801877959094525205692974835448793202972159050420141902895262038667317514162039136632098255437532704182924517085948160307922394786576198718554522136798757586378744360962320370921080027289137824614138142719023999913254676745354112309524643652866968169176247972474680024665116007596566353696689227276815122996878437884940474691084128820897023806153082808327408949279962849334168130299357830223420097574136698938476974873196914719053638370839065790570829307334589899015062667983596406861272968588386144884962898697506919257540698494274877726317835812937729171552307045492242847941074748516423896906791818379174294788552234794407112669123925801825047429143815763919106196001302572322488013966137683113635206522247875967197980802341975460913275631928936430823991192054332180604579178613311866701787678568031665058917239311145105823013515152090784830883739603365667431362496231134643562149271053371090267175684324525298450556229593395558682609655543976579175297823584273666269112428105670171408007024085554265530977838828921377942620343189437007092578712164725210910258601406770629229998282931733979274277909345262084943591929459588700813547487859210001494049493425672620007705388657861600978521151205147603645399337629827637050949976407150907921353198674742894290128493252525145808256175285670475484364343864736580996466062987467611697498459634677496897821104439321758372555323619526925811055145273026459740341078807338845979048385151944430749098058815960576305438851982283334655759854078633918826596800647428739415981872776054342680190665175685041714923329492073393447257779017398681389090823520789398261968909122500364372068430643403164384493828157170702573932464042851979958719513840898865942937369259080415209259958720246492934923912678628957629987925293870294364281870106074242895444785641871610287562161353709070269565060868980293074698098941787754917929440495846336504638887276579992131197713038932846263591331349971415320749735368199828598622398522376210159252497129818276045747980434774134391135673174763660146000434858987153427779621706907500062309348082623551434469128044110555486639884279150440661518293550319906377048010321589172175430976953508240939244332898469571403802085759388705591542537386360137930335496851180471689378916474131626065456663463197109586711185747822770932002898734265990414999839087257106934584677012903848188040628667557645095074554324858129631461309189770341908322176196364372273244486752351744279599257832218733491374337650216495304617172755777359786421383163190565627535386809276713283734849621753264032785684780478991682198518493908183682730971719947330008198171824060849937367472280585823692828918557177514101444888014809310202188962362848560008796160248586221028750399676972249522737959295046813416798613260422704116490135599667575192967106369692010290602494984945691292621422050771825873194322086593636782418976902046770249288812632175136408421955464637876833090346795919699533444057746860271169973140094888168016981024512977754900408174516869909482529597644743653266443732471786531215536192572572567665986703736410873729516587675702467169277950033644323525537061039132503589511246294296624912356232321177323103105986634975508158477757614291624175088743651953588839449522414926711283804586831154894969584245130181422102806586713243784192631357082889365309680306139192573302908449764579296709257032718956818789623196825193040692691578011547749549824605180040597929933899167674207651085810311638805259294763270436952867769857097124922311986386882650890983331540277895572884146630238519534940378354563197999448126462819090740399146260163484275469765254542694704849267647123408072800108981353264495873582205283434705168902283759063810032501542850159431020245170364496554635483993192115211819890529667557727664415020978755608828646719707337470978514159549013115913970598861222064022264727973721186857288702998052830764443769645266914042607199644792907484687609669634114328380186284415720488444167463210548140331613649029170758957542692604909795175834755503442486488515336632642344989394757072048960971767958915801328311816566735280530301994869859682267566733239264880037986654640208124907671843291384665600573828252448480138239294048456891890252722005092173879496663449433362994112445927148836656169456456088285304292293306932412101469204812140278738779198346578579390330283838279638520636830951799051831690513312970497161077948621510586606095954880301596632809648286215551966298945304564925958663394354424683986365201541266407651293071338801121412055813186511968593210807843900702650391088503238970641456035113786439087930900501166692813082294934358396534788902360949055257784124453907586331656314183080359742524255958112905757694182026947612844849826378351523699814861907497425034372298534205125974352567931371209247048758030144362435393828773409914810572105070601332063814516779508322935049958234112708816340103000634270512081562230210196793529735282643802953104633428065126568636843034068386085646013420766240074265111080142887499182016906252348617319764965771202646635549298281273903958756939960356278775216818005568988499944754821929928996768637735456707072031700544534322102808738203357217128387679148110181982323222881119115791695222483284673695326947676131621182632770829766378178322571024567892316119648478055748958729515303481764993711960110452502377952030573024065856661629254231658397688599376993313053144454956955387491073021457824558309823607789093222131891978578244673225101411418963070970150628816207281218284519514285014127256767482475375841143866846887808586436141726744895097419572381464220284673703093084862082672673409747521381237584661178291915156162287366138241600708798567469061755654535128226029891312963115712226357711229718582126743194434337408441239584669426904713427510016866569859365292487402390829654170814826344355593223103676307959075618207221860582427196340693598220135614988313600841904089851105714207605931938546464829305673025599209706908614078760968259594452183094476122890156985448061034889591132840276382473773474877270023081382213313029644790338791269093291437215172287456572104827861824340914291732815431738403435521589745411182719883505633802041373809524767704710942176440394965317879302956230468304983911724443279910766845674412901905313965304813123760528790448000634507749680443705129604642485356521941835180889101455529884441704095927000667196637176872145775771816500339734782743700393319081008934504279308798624269791993652457252119612190110973514372063532840456484378129715339148749143816716885594892556857493152379538875245588042557906645121277665803652271066467950929830746418642810977662224016696421093782282135742161199468858970859270717345493634462193440529862740697102874929893647086343068431431326703325031116973743702951647492533044176462155060627812473791267682752327179135459227289331787710062801889842558772834868583183469129570211121007846933774254219463484922529429826389588455101548680699097511196389815070944761887817130736409290463099098235129396466845479711900517604907158558621246329155568912391612554095819313910343478403928418932230903495925147067962608285783533869248990631682514253456134357300120251038007563620256871867551204706234864116740595439297570576988174962138985977026329272506824335261498455779263893486736659874744659857844571455209446506932052556633406732419889181806557084722162588410822983899876046734943852345648701466422306253373294143130293258097892151336511442152772129494117596979483996043863370772161615383999269544808584562524902347165104248033810745436443834992689838320370468306325523851269846131667662367665412380150639797871283307392244145622274752443533231294309389512618774678227005225148181217810615053420677898123944573389627903663440162251132990743466448008707315072060131558759002140870259685394942749790139210324479867112185020953262090104687718522045406284329999582321613160146268287674150904035975350599497314550305239620820844941583153696933294459174151418050467163516484372129539846613591280689231497936913655233229355445790010992942802199712034104493072583036910242273019715570726993249230039098358947561582183777547605072094470032687192913835447828561813074427362027799252390719945286046086152968157825147927506241910447216671391422771776572576199037479558546717902027827551560173069646158464368837323583870061874952767232192725858449714248582952912465257313255877019219281949445640273079432867602775035064105254050918878795542218423131209698503817850859847068558041080483524076251638081559396390008503689119506597372111031314641083811929470618958895418965982633589216352479789578430989293817208294770521169095401103752165813411923899407034940719892327447716024625436347746761846549635952701733891030766112878649244807776118165878613899243224386829018999343392097682597658100269911868730577281342476151780417228985702094619141922825037501877883167430979526723554330350828436259400581327053538956552763282425610294420365339963959502495792162783915745787596100727886454431786937938815985971988910488606526627478104805704478570231203783529518168883036904580289948618224285339092994723368423995518482680412092836867008612524064070668240094468090728407702180727995106850029116339933178819963785043962524027598295485303696875582782927672075099392025760169751840688238167475953781894381220654299934914786448260592558026197361908734531661483631966195831192778988133532876500144981849013003367607866430519073537304240212746589020988330200724146515547377465231119076133345071721058380520168033194145814207709084276141222195420714478094727050419238949297933665283535128056521446345959764724003507764064248445136368246168553848941665369107421377810688564606990839267512592037663256272203866807260458425804965575913897262558306661343140692862377593556541548656708493423376468809020070773008085136267838218136041886090613465223643774618977595558278315972328713382659045957098064787121387284729440082080281065328791374333821652770036971026954116407054877300333998969235818912947131058430033755894369698524092734343267201798532637819773777663325257853792797552531847155923188136029566284863576172488775240814367995070708797824825153678471539959241435900865278636749070752171889415117897765526011784290337542597611802726919099531879490732288441142225676137815545064059783829799117557276296509287149055180334041870810402206317343943558399105986059093980898160212832243132877253947278405335693241899037642004282041821415622918748205701013040453028541593437179903288609178253789405943630176503677633750066130591783254575683590663059010745212684490541336695361373866510260091008349161211399424805066196643215176141516998027024801289958900515491733852574693098854610288160122359706851654631043282380483547279288790903111989731754033262404463367575987457234744156003143035556001629675271081941257573429874862497372209523257842750605413630459700739570079197567332113826696491207343447758260899966825682256987878549342156576764812475954783192663896511650543778441924051889192559661235536392556408499588021086712442148563009115835656638726989795555407877866041738308684464145110210332632373310485747255852856842905494622624603310208750686813711709603388460278481214894754118669725467645223603131204281007873447433434853864756005178943421825133563355456600586934990990449414792730149427027373138459544519912871717737334500945172728691372871772580927371274956366236872042779626698622057629486505765710858066027032613069538667262600302276282689531267422401538824781299199001246858853899418909477522061027153134246550237005014743912742720647497381580527891735019594710705160529494238878390097650557126706291547633910433797876043042447018318054533573551266070825856141573455523611146333218315138396601764158666815479660145086569961627015839186996923109176246641557279240210889766732509948688969081553995057245992962970432563012449364013868692638407769649174792197178058458195600790928747902505882557218950369582269738754095579480789138931242305110964046228196704527498124739137775779346641617468008408586168174762437320682870942543608730249886943960614453822625030700744562996599843140926340558865883642106913847897334852734407467392362348130032156875459574148587679451182289137483557570526818500424592419100166468784046417461722149641162998242788076759498381996691475686834109341066588005980383781857444265097566133959494175579749290350787933962192661142806981027022499253084613900771562958494381567993844479731122235365403190309054031254750278205268245579693553856415535872817330978548781626262986520015965982220463212865109525071459758246286547589252341131926503164702136417771235015448377275642120177244470186121681603840095994488897525790106849335889171387281167232360366743859577912095742112635025637147814783544678980939968205230603326089018553608244876459793726734207344388660845076126206376853035020480887577496285951890435026835542720486218142358619176781000359953451119568881682883825091772101045463992525873471577469749037788128148468267702969428112464976310296991363743919345561883312135802236477926135029403820164765420732070690269876514765043381364410838522140618514897092212881950507824824503646191600023422015433817674912629282492199498115955557463205218532092536517981091039180088483788311736647384495816507829874590078924859918711278448655648901069906292824693186175239167459653257936888572707636228069911661174332928994226503611164440499652672597625372163357436954991410675944836438012400311881425261888964904648120502942581011766450930786496228184756308948615761110249952625431808577057927316721063983596563071693234316837217470077995308407093655389202457917916982544682363200500881909370563673027423370139058175211133922238932017356798457621632956797693341022859079939845631058704009817532957253940284056660368365470508050002529125607655468228202113022912121042213816429380162562430819168866874302533376318497580355726374620255580022633833241453052427686036936378007873946701524727463254169402032640276452676185210543107242694437821411333709454189750854863524385829808688462755520904264312212238982979242521445396117990644273002743333134476137984331903201362111104157707424985134137818170957309193833473247019531407611036214340106077753982238049723036652933505577056219009635135191591420505266714618118817927871974860144121154532325940610142980209565643210262036872143068588514343424426906920143685497465941980928527748365966156533597337850521908370642321367387006410734611242576534677645457609974046126232185020802795168288537284727580983734802926461141140041065981016170052930468249000530548154797748819909446974422119733926205895017258734494039279573418812362854992475008647382008164937786949708882380132509226994106207661175823420142718928442142569369472476560022547671308811203596831530643761330031265053293294829375599521293682682108400976209955651853625314703206795701304970197100318006583477663433829589415435742037871720998822775315246230116460816663434344586902039099056687682001840538684884028389370345480759914391701655576561296891391545047651477236320954092974860709171462778551299522713855928086399404390964590740794700737179834651355238816622673599868826933450665733954226843277454821881502813817448933179108850752769146335281053464145394758659573454286778115635271227662499056699528406886568708789429136404105474571607738937453306065978471942471793194264016309466741989693734179911432282322129732760306331344995705413524028630586414573900759563704279389958711215957046687168002299458148791329589189033580454431740496427054126731407507015264649654019719274690689216469093122123125689104552809936897085516360953590853067426616635905366030703249918008464649006213642965561201380557375657290681062411345986636631324821050328510657039664572937201227044425304737011231203415304092025194781130543949821608245929392348299457444566613971157069259447542570586747696426590187340863639056922937596810626952886426079833751862701160300842019426245620841924073328569250520960949079936098007677112094549538033915342939860130678817286225646293101864059037760769343710544947526713038413842149535134641249549392112165989315446686789849651423607068489646735156998036578872326157577931949069516082990875593255614576574302853094563957840880407424312064119255924323606389449176101934789021595039567689989307590329075475537311795754378593461119133511747461595970164276609554391519199131761262310384918145828676943454220291423788525962159026864361009619803704521286561960743343247466877739616623753718097400709187444259390747407410336638258758123288140869986440250323109915706754173605019006725010236751038455221858002836733919704101443013967688121829140268980360059404420755908170979083506660696361127281078530635764239005259040933908721486825086492124588558706638632389123027348643483079240292959611840046425701071860438321603497788659166687758558474704151088252505438384369019431699105711881713406550702863345724386934558847331627286937324557888230296780801249903550669869241196340109746039156578201734988387458238998229114909777794496661584539926568035672813489436455543381073940159276706193158738666740521558910624734730476866374464306138730906155429692515551836474363064725723012963893173232687775861740171872819085030675664206759039852564115203109901022829620829200247644878147247421736428512702304524282359185765353998245180186864048712172989073085082261994715426458713393292653569591487163543767229531431190466701416223739499652017046412103773800161745410179388336792678665956568926860394432777155705648856043815819895148270044602419306846944815443905626062989840476577099260522141183722388074170143678985041750442715771033068285964964358997588718526374211080822515448100532511195152049311048961915691275706530873472026479124207060867947229689423960699887236116550806456645800051749169666073697550050704348128330024442891877360873078602201217479022291997433070067522370536003688366794922114952091177603096631184787867692312033573638970457610817812663319722173641674516512278738374684061173889269079605433481454973462895460860731706260401867627671632697426419285255165503936057880593556452262692814163727573211698248041673473885963584900645745482189870360052362140005942426423436914989543493006395869019345513638794022375703950905587555738376214116649490885295631571673652668359262971981276274572031744453887463278474466929069665818901877845818685147242835818886839982045833193693965270535549437763224468445533699383061724525618992414495579398633291853693234616882328306758281925663927905414159392392110456886820119062438632770071152248436023599145929917941099021580963913559367569355629667737239654029725931266451353646036664778133154923878689476301066776853923160066303535484199418276902758632476552209255671721758353477310896155970504373009023180074940327244075979886058958057099103886854158274688950666082641809810818740474573928398970638582483059482287980055633556120774056331404295280648412259812617565492852154335142752875319152243812006055930526742296284449269035890108427482784237770390386225676797998857525039869097305726527026545678861533376182267386638985217408044228189192072044465249124995680599477248775118740378089278949409339226394596521497194005202054021271378349481562538518497027077644316279992409083007580944019307002291349167663443045040436107938186572794089082634792628928564489822856167687330730536799045672137007864208345468802910084512288584079071932472910044977269788929759375236973880799152270535316468452650494886142002581311841642961100966888136190143519830111487112206348164026914829517572330439527947362500472588700029843050376256216524059797705661970732212354672711435071598421807596963047210596811051892674567203655043565389800553118492664706299569719925507985663442753021042136998087022605715038872663324669327765912433856834621687356622920115016722885793439558458658203061401460634364154721916879642190759355762994272178221032488897532072832596099763431588253047006242543540800739781024814578914298877479822706943792937194763735034481040279585453240441101686773354790086503020061813164199662811012664625202032990888234106525954654274427934352857493054936823935543709931674847483237314841011775776226111687764018155940808112995812283029277555990145514160999574273734901958399532543862050436962172885867367777044962862297683952520706329587312482013170179885578315253940343216354599177369347124406819304114607688831280873528623363631698241953126724680728027721326866183825234336448195947447432910582613669153759560960737137429445011378748320421044650461292267540676974785106461019913220473419666523167147031404680139298318405101660422441207582883406624902012949236177989083528169610450401209266731694398693305930407383588413134069566272701103784391581628785190037715789170001504520862878023656606677342496432951339439854334934937008079604493494438637611458196397984856183692936009938529695664353849069953926734996299330630458733695988006894878756368487063873638832792837992873821282880063321389558083451938913323460419297632306357151389366416304545735091242314567758207967752174767468549695451831455208540371905271452657322665676850285695533027923989960965736238643612936635134664405442777735730381304950153245480796593169488299692639293994246854545872915757574473946630160228757347212548374877810346704040516263504768499086935098527218721579591435711664835530012270118113315717911196209319851288241611618322265974375867071810373628825601027429780367313328072343715672937106975093372349901795405729785032478296109494407264830433736067204439852518644898215498197397486469660968273322043892622640637945865497908257749394401843241162434878418531789023886397880980508794858852576670753247520012612396350526235135489112483467239041032768265292886867292532732506793983986534288984948944247703021730953295184452940997669020569697537723236501652892382978829564761024252961449546157386081537572057372279322101920856060411785834315231166268864755768615380825422417399899711469658555321800331936602906537971799419752507180543538342927258091917616904451188683194868607223143188786593208556800527931958158356638008033181488252927618305986820834677295497295052765974842476489049307420420596215010818931681423807320307186202107006216353107416255692075946422056562932377516871524134246719456335538727943507878911873104726782906055255556973093689621357654184478500499408325525657037185081504256228431925377582765955967780064055177200895462625747956652205277090634255609316155161423850815827877501834350358161626280074213749181526120697545377042343000081515256777805070802184398725853978211895725237952849005487297124666939999781603536520846425939881546309028570820851900416755321625094226059948570393984802597956404360684936386775312417262288875049136378131080398487837103017406795922963948622227411632515916779140491239432577241246588558440450079183772241949939694811750371925905059667830310289756366870424368007879961982017408988519811770939405202586900302916288712330557052646279488417646354974910527831116318968709091656538682485701466898666874530065891875732798673675756980472079272668994501143702567760655882692818872356069853727087667398465633207432660069205265571138410100572220199579393823067651142646342376127275000186591887666355540334514174864034507304129633694234220924504234542040012149501224319630753837763030743430790993944325946720249139424809178592449876492311677568152712568769029354296442716965857256287894707639750406378358006446338899906933992904226571391812590207377431593029285139253054463000834789875801377606496476336574053260363378401614239282887393723835844986310482931810906708563351835052393253077908167244183470207385033303314219425307530971119759919505863277148678293329722392750221976392118548388013432235920794350529245901091006937756715354177736899097087789324879709130668495429116601144285486619899551787787622214517076343939151617334440347798325145985926310942756534278980870521399792215681361189135033838535957178464298910324244547313648846966116477936418308702424264446639029447100655332151589749867873231250640999427037117001569696123925762861925776689158235663991576490417029811137083276208750906090112790811550856363173421348529635362955620351913127171131991183143709933859113399906481455361462688900517108434474910382857620705051789425936811877871253572510627599143931214083130203873904823206443339487775522847849614496573426621103827652611248633601432287523785411255898730539082883668889937019551275249645967273912264972248320915866276311954426798446501366410533947950594395298792015399150035403919117073495836301366258725816578489653927175783090329056891404293867090547288742217289091881193732775875707718719425908456363548147393407483340785591574425540234432946539028167321137460025412930166652237425775843806075261436663748621277388717544985206865949371585158831316044468494777906768467091130971260374432898728090528104433507410031459915912919507694965772566025509245578013786152250949422942272916895381031537324928886377747612821267689681239182707817512917699809579352652912381760070863419184931789395112271208497204627033775513420096260301350878518130056376936947178552831481304593442786912630250943499908127428117716138438072559316644000149564541489962028480656163464164066836342385563124577596491115381363892593136184073794758437300549906874343532771364818546993042336738791960849249646084764169517645683249190123904259154823654185802530090374885704203307859182521543210623175516240747479866642773915219073293990894680245214233893580617502278972835435962875198822776948635680963652632698610433997249292467582075693839840499937322960894265519930468421143373247841638076051087424417989166356547623841067115849644655998320089885530825398514555767585912190762561283369287553359976700842785771909240477918363536437604298621876406066686439076978198600449936449552128703327902499692279367600971345470157286330633047615668984456395086579377498636478645123213202106535548972673556289813404460105167511747739962947486352633052381188190742640824473543884999562482554327878290356476347263299467205008303857924373501397780246743565930989893499254406926126669836639501935521524701403840190505847892676610914711367317067015949097053245384250266022123716440868612374312275946093919823413675931099106367096781190815210839237284502417960316852787605692814765659972639587176024582014348339523218087570575720438643946294720297924728726334901441540091352234308282390799245224357009357323559649856647164035431564719096639666184536838418678834197295887573486475754487536338271393226792017150598335422656690379933543978017496631272897087225223965686453097967911648941343047852691216077261582976626617308035902103447250408879995804900362774085939626799331601087786154487539898986477353141951276269270909152759535909684002005810402595570116142195961850204321643402771274452724457655101504339474688390234739275819640723866181271618888508256902428018733756324500604843455024421715557679337340211294177570197101997130371665084594020152139552711518549851180343918713659623445053629247439706211305238709141198075679630350551206355499118284536753218236733620481512561564729465314326349605358905978676098606491090859004129018686284425799389010217077352754672651808714861655838025096966325224738638324529596155655859448068117746368067749359535990547222248809093986165982626892038255913363157655486065603733067834215849469085759607038142567198275991196926394715184783114472231830957233678897288196897826333026987165005088819323584469235488893338265854866759442463389920266310891710525183927329020126718785147208207213804116449653600209403949340969867746262575931588583489993488835381689410480310918268934839297524853358378377816743374926368753135740345096446346209669896486182287228165192998885351948545710846198992857776986360085388749746995856157775886158544531327058255518685456058095489970268392337173969510293900298041004854934200418986504996513131760448156183277246332145919363422030627506075642700274551484900578133697067299951471348572348028866722942410134313646396105837389367278484516820669493205287873624623662483423051507825221315657421878162946792349480463532299957644947225563778143120861507455713947650936240115942415413040743570009589615035036564301108505597665452457452040228302653577106687314890445532934918027293963123574983443400801371616460754698198261948198612369313571835256017966599846342605628056625254142904451509345689282728728979875855546683816239562799413572259684466336282948114515479679512038583260016046232098826871451687396689617316150765375149989171607183258722432932847425367907710447834895348412719331213215698593502646509018770137445810022451970325506596835137430852417544565279750198479575735176534836871278088320558783895419079420728226295350563920610103818445937049327421377678607098124903337601575053919266826167241655894577484390589111561211587414838638104219019072662943746512964121819281984160638742797500923968958969385841675062606068725504913318935219292551970184307926090545705159985450187516365337001674997098336973327706404242510893117509028229208118301607575042090683469117297721420080655055918956370610647018856614252027827891115682374985237257760165489351506576118790921104437340882064145078997353910167911254173362751552628104002375841804163334986622530559776261634888206528514958429522132624695669850410676022486262284703368781721613276647194175125069492541616759236251974557222993723928056556580576705497049333111073800551399972964080467011278986402234854059007720988272557820527818287244207735081776633897460895171615299382636493714801858198822878040226978901272920257357319673237272276769063182893509514720145065095761282432321777653037118651320832431990618849967915918680158496690817844925447901275772092212762729913828417338146666105100459580947146428487204123755275306296515823002142127032311999774096808241733235675010208577239059260306876774634111959704741348371773478893364615596752928403974609021798169142413118175127534865650178630031499231120722873354364490764632543858119610903097289196144913500133847622079501076585742333456253176121591552088677799916932535119821452414214113774496590915605315372815476540426547239994393248689994723939286115659585290266127126472332267367659165734933954392069631507708929906494809670435100834856717561332026177203668625632790523706953664344509863519700486650289908299211739743812761565784236426357606618472616685597034929565627902976744353064492629723662306024496316707069589722387060513783111476268274455929380765608724475930949006960607385196127920418940474480733693146323581166542553917304291413421210260771981591705455071758451247233153990204406843826217782544851289230986675507939457121024683516198761170583479747664824126285244864281569073812520488753627140489374530344865236341189333329774034663532382541499800672165536032128493755067520074647187320437295145395423233031693250066363547621046500113238448215865570661125795815630027634012696292492325238488887451766568121658145096081844458277111416635911901139998104338229889229292765154921335045757607409237146860207208659859260511767315683221425835614742820006533977057437528080907207167716735788007673441847309513700263479912990100131558615484102167653261117286675442980138884002587890609190707610533647697352231458214948518389846219833287614891142429271951715253736095793115259202783424173926383827576322556310418032039728656453296005078563103867477068458743109557018181353949171040724277779764199488109157409978164392203813888443775203323599069383272354899395990270130978328954041924187949076914370104034131763324961319540608447991437101765365268833039144061980264513748277346254713417719883676183986633247934897978489512640605823590105618222298261686124937047661054242929275949241917256385706340841717422961062589057688024306657465880314787233841431613239954750803900503788107295671558011164292394644311610740653425043784636366907590632806475382751119641285048548373186507969537454890507086385348503285956788187570951868488994512328539202068091628923719625303037704343346767322417318159100332384265405219321954056476457387230100606367696120574539082204865343021304798125036569539185502842155215960412567496845848302517907560205298798162486844575949467319977603322056332840450319958230879845467626056630072235579869846985073100076369298984624368539897554596740028693558939927423514421161631189228802399476366171784294505103222783115440617388042875062973641098588265361946218671361134071719563122863858887668776506336470892730900894512715663503122913301224948036227423058332113415982077884584833581936130028937357367796604575016982579059561389854370552929813846807087002501354565998616999792642108108258501642966774219950338450977067439110229035428977703877957549776096538662781591765245818577619112070169982835113903599961261352626093602752652615845889869592910949003915848601179738127546288238680300754602584592613878181439591412366000280978941066775762797819472898040384036079395208837744084231268286683088936013061870615892731321663756549438832446825666857734963375064657167159229696454308531684464286725912356969809945003379278580806458693437218724036539420035540966018192591426617375773476316793467841494159002168711702609470892156501865667625489865793540178998208323438623768392681711932687388989691963074564666590738054618471233428888215260515087871456711000083503063288447203018261672181317219366109141306980663890091865472112103222696845359638375885023857062856680502328624296898132124682768473289061215275341949565997960205688280256117003299713576695419967785166171283063477132824004792713326574718991674849946925519738540325410160809080694324449947741779203601310737069053562526774809207346156408837180442797102565948574164221320537731928272318984915127332892549439162358483553064726033806743766912442703959452360188123128372555775679384026577348743970582073525207544132401441273489933988638768335579835070572897119294006973164978396218702445805097242911384600632727701055661746985448678600786173860366030407740449976102258615731171607715396593851348105610826584089069944560879788281880237506240741179968280350485468914868822352097442328290939119055208056402385668047260049895272350407202281396362342025442512455602834102595391453073232115539181428955918113129013799962318733908859491453425730787051619763784638835000504858172121066622201125501174292876677898481311148407204585737283923179626227014089867997883264568258521387334527995494660664122476528444955005497500903167579208605659801443388788754395923730925648270595090198159245715039634762790203364435475055488000095194688001099645205031587725757087742313485690519658500669084634633096578275679503738780191626248243036144894234599717591095245522744872682989633408867196484713254352792655539881491930331869652215884522250683845686723418126322653845911615242901171959661289282918429974589914590389627280159762469556974455377044490957593108644550329007838020084281610116405236990302075168533328673125793199529440519486684075294925834254242063226471400020410917247063149441524454403903967788517535079438071053247341934146558912643812741853756035213170055500311763136200338641026250701072424972337852623617942475745406641271701357087680209114601866730849409528389879415995784199265934605638985531523716202947317602987711556458057917627294771363828724063615257915213938199229238148596563075296748798844341679196186067268055649827344342987080875757786930585654480444776963689200724364790393819849869099967683625196202302632199749165008199812900327583577317648353806185757748814167515776765949101290550791713789283446610940721406735952594077551507343637037850608363824295443795990052104750608994291325497165064751028034191523794431141310977429527621618127723026406281232404388665300314593700161900673662993609827274308587638621885753411570474623489561799691643252253287984730959247107347173424256397137408759665062707866859984926394277439281930243093215229498375444303735634727855873985332907395815879560746495283743189805984118348374011450589545308531799682539393307042627163198137402336977973882760075606150470640956639163222494924818180373942967420470023351337636240291664719790056635580338239134928033931082935941790155343450042143994707725134181327388289207732550375742613019285252861503698232090809863453795779254506305221537806398358173999054934011016049983662899565213719806789436161422724983943489077180054803560477069249685903161629039999346311681688749118759850337697698473506015362848303100600344230273381228060372479821499894446493961708356523976671142337901715199893650501419722127427528067864890186865349148845351185901206539220639076719063137797044219886689766694775014052450688442777068190204632744276114965401858019886714218858382095895455668046911937015993918908262378455526994598473158928320332152006668156277842824663090845769025473987170012980974437757640930671462028352037399265170337443396501117220646982520127885217271137724360423693999861352517899593184835819131503383101740182443825171487288152832136518559146758467848397842414862000219775012741226724532604896590241495226918771722632005112545868831857597921256347346247982567502989844105006621156590891369962588896087103796672077587643829014351696165846681779341893589225430784306473910922359456570948087914115785107434095025732552296877514459933970008088033159200367551612589174800579564331845692733473085411329890542315537447090578813744399093974977584590926684859045691789670075903130768192753165914070165085745883554000701039353263606655063355837588192961388882009099711969248533167609240964905018752690162568332693136828951288936388012462263774309034005925827663534731097039830766392145457254989019592720095711666745509370051202695559362528667655254566325839198769969341808662798357284362090997718971135375920976065943888505401166668736950813333864401468094489410407568099515703942900742472890664451820224849081776969840353218144022499031349999976718054116804143840213616239223480070488290058792990346823754102345753402200750327908003124397089523333861030912518821697733776231551659151500063790473438819632212891177936151622368959046941017228674111966707906627786974470033017528684656041240596292982979900854386580121765600116101542000589464928152049811391746075034413777250149146791691429061719831307843215553359889474593911811970019000100160130861416970252892117933991775948528320899257071461353940620505205141630736737043969358169029533018338499954816673213557189138190881072128099638780791984816180635797217817277862567529327096615490065813048746840917614672743290887507369398883529226911811845088712570577302357490584094646365255584708961146078247932555658595491292052500785724671882348565725853436957666066617877481939467713605301418894920966467942674127465740378833925189809323856737262002192518721940782975613030889863021315468437424540865350293763112164372753062980297293207737910300593554626911925937290870211121784151009237922579741461548808085141451432443359331077704927095136445532399571138261933399812369590954288460128547463027530890585325607379260175184995543818717622321463359129727561272760039047309738470863375563490931463406161790502049253805172251177077444277708007119187103793421441598316005130857094699542262417005675737691421396913286928723979098470467239611338699823495596549500849655669724784134482863062684809440564142822880100714137243364063791010813579018070453871860795700194550795875686972005410579786631164393392957259737513176890579322268062206311491787358356556977194355813598605726541299034456657417684031265329975139507174134167481573571271445882453796938955925389775347645281715561341471866662688618214466389026431016042131921776413534527262286851655939065943605407243468905062853787253695470615335413906666345943651182180992718470449030560039737259370605492833730668395645264230239529899353512031761670400537997035347818182921532191041434323292562724403667414260766319371379106558841362748489431656611751870665630199307805236738355843141920876125070393263000961709963642022379146491123132126055881071951674259834238851648583149675875346564937466215683144272839987081274755654085645515971809524868688177561087729938749207539749362768815981351179620261994387639448831852263699678247388853850078299977177926301017853156097997556964281936394180181463697226800816971665980500220573741858293949422461957155327187975091675136296047362630966698821595527566537531687356913454372160222365912192794687282085828506333051316568249763811244737782115291616929593835788452191822278323034432420206471858676511402029707941454889121644115760440920830573379219368273129778098203030275990594027629536158556230210406011012577511596716781096421854324747163349834314169279014366844427061887863517665609067564199912349245733131505109425294679774263413183313752946599264164431741294396816306554279169959268046034081379818056297404383627036385751723334340309165187143411473787308785808383904620476859602711846421575246417196002895420077979488004155997019343833628701937433563237139373801277732374496798184933092677719532226684409483194826825162187374308913075787957648580941459307602321115779844640042278485672059298178888591340916822306866926020421979982174369604139811793779925020998028880238266456717001321510575628018056473034174550327491823861170443329946922566613288121975385050741336042685405524690592517685373175424830447832748350008912497336762125394116862433768211963885623564095615618976166289965779513443829694078638465701002998448744321406345931706649072963367071482978117935085201426754783025674774395552251243470358427545757947694482403830997591488314282244515392173379266583860787999326081954915192277706718895726386177713236199072045519687546432831604629000223054076608362214384696863679245638476079201259485728261789137137657423588441818168507862369095234895044756601420757921778875210297500030583829984605885885021202593204305518111282276840906084928920487097404661744549619651397905883255218104725620091509892037720824287058776028502754901922747213156068475811735323315316618124209695682224876756023758267509401895417303118939918218167383613293669693702130348654279151603940413629683209222923145143319551652763461042299191468993321535499226866737290364575568406811599775655858936538960628572712866347834390461759549168447289842629271594181142059892263920179475138743331215382213972830655458119012225638506849974853817716377461190061094953515725581787739429526756120173809084958438404581072184106376143944568452355906865409433356411290145076234054507759420187398263729166676877618242451003016958525835096612321805242997993125139484143279708542359893813343568278759313777125703935320141796933485987476335052845721884092062502610214712763267505631894755345639696811830691538617457026234999308743088620081828211344359194042279988556075448579327753695617232436325998236365264296003587521271316222831124817206261643822193699845989929809343122788827968903753631683200866706917310933398458331639434853983303314076598797157257699373665184554670267096477934977902372336221654075942149148594904231956266663017788211191204322141084412008164613075305051353488375813750280298510122208395229331710573737793448503100360154152458785018367673955924759608057208402616351480818550388192212804373113884510679474673436918588627384109317992009844827507178946243619338090341008569403030794220984452338272368944363793045310573052217820903384146784709216937967838722699839692994444158612754660960651972865270283443369961659290055304082332644265733312188721157830445987018139043431370408854215350252458185957913977896206105818151760530153512548416302335277539495828376159361042729033221148389329759261657675942080741812264567278307821438595332217825197191928706736912797347691724927552967507072034179578306126301443858977782711563937504550407705132440471452951015849887810780034828247234842880371144796668201410924522736342095335736607990486596606081028264345837301578830122137170969252140080865493084074530620473001636454931384608616604362186252073610666624317976975310154586771155384719424258366464152460978059502934960479090703284224491432194696712718682401025973654383241204846701670906492466241616416019555917274323737003758108132404530527335884437654881261322631954416271051733675626965562010980470958979959179893848403798235461693969837669035665698463297812543001630034360072760866101137620152502276328312990319659740430993846695280713493103642229712258577351903826143330313043196272278000702123266249137605483177079929366809655951364251322641206339679185659021055890687817672440325267373715326607031788607058978750621561088062922834128604846046267321062202049830896181074451342260371118945615571519261982770696994177896165852747044851175222001762086971006719576029741243513768677177143916760572110783585002279661967427278992982539320161786573044697106569845477351011532008252043146989925699923271557687336500921555040296570176556858680280527156828115173921398048205523847076790887533884470722665184017513570678042094693432188186479642391829229454388621603446343277955127620462853558590112099158053622252674965117599747028268848551819634423389206879815788780785722924998442341026878274859492834657568782075655979250405996880695406195591497953207994209795142708266831224913774237936379494100279003028659413689074876992290459801507673662074894069816810269333421024553041135558811372719258419431775226489484325040531082804118685477759969812271283293392847546837533905291704611027576189662280327927692711210550814700314266725643359533126986855269988969166348755008691249623630357519588405419011396700537685757104912939982772137768424696560757653825370260339973818336876903150510574093718230506673338365640252426981449172446081008079467737675360458040229807826410337344298281854855606871424673611861979130399889761530615086039289405470314074057585930056632780733462205781013883004256289191028395755224025931920752037748376210813929924703149208860583136793479343005019024505876146269906020172665540328533750771466528232350507869687004947347066241402793768224569867065273936716214249637632901843960558036154494583417325577723182625416918634342597977588101286472302551974415381648569861532061922003375483019598397267079332288944979517822649240522825192895862610486632126988441532503062647093997653193837856043039890004157130751560406492417640096587180524339702117272063374623264212734567300822156561646685564094397493822499517495280901308914907368965558368409311077800319565240034797635652322519329347148152596250455070383574393760049612128304737960409373231747753577176957410264880291848178542984781820160363571751129294325722112358397732078211275610967619343017242565489181093048472761273731804839006571854850648181285393281566482677051129996330777869310417980673483789919505158163545134921710895940926192711262962299102731265955284351815340520176778112123818133910094294022457886781566018242988405223999347628080910070456208130371331093320290562674159585725583051108801655075210145277080197243972619604146387242667546014556036374235077198966028081245486690670668711990821749616550894847620365738428754112053728359393651715886217062295706239614346998062289086475845140946057389056463366784536277956165356480492104439866395269596454759923717168193501572593243180142414694513065679511696313246469934469947472029544341731839810721863884078087220193436638111630089394760117001996474292373671344474768352845736525103261386945666732444663641968157060636106500428967769869769352139493297046044452256326881792842477179776699265265902450022946150066797832506913202994602807460712684503722529206004526222817490430038822723844186622812036512598977251646447396259783857435293493791896351182669752143474765128997031447022996242678587252690540489124368994933324819021622722073614521140043095759425336956936221707532731267071456857424185336595836211656721751989546920104945399883036268256418510947093518772111935132200089613862242364071177785107521754325001933130978445196264852724127716870363858565617195269238894240198249591659129626028934759914809752698675088506736202338138436524739378357050152738069924028859379151637210566637362052129272776642994218076802638980651630412722927691288272163830361157571942052858740602674107111107076761740501331944991030516230958250652221094822961275093407441263393666718284761124367151860559536502105265877153609712270598709977051039457320342731111296153802377418304511691643277829139276675530453407452001857117039041098266383952302473650341694540722290231370261263536944990954516797701756196641070594669896380652444319526885421135153673232116664136899896757278400408074016931347837786765151234361834846869573421442405672100698766408099946826590198078281809868328216675198334808960564700902682242122363363737946130202207332812072097547076804849749342057989057148569678196689052639482930902755746415507197068262680191054302855624206292711981810360100741553348812997504943594865028078123449944924160076272561145125863694063258037700801045230345059243578805757651397628530176219630368578857446100371039344382691808968768711661602319294969429192457302784929142676848346865088163034249785053556045273616652993708330294091488639764164959872913650815184867453222454035416919918921327477683972592589087194848904304456527798026377005435645046482497822190447144744731920540242055390936443128576109456304749483450943537208240828444354376541357638605343671085656246587911196088912650820020072868913961220598658375300928848899624011384687511497306092006256978065720802338075230960852448536943321804357541057590782760408802374061289424245747952910633692095430375183832806203779941858757267546036758975396980179264558604792802931561659345647356072434415804769036909646592273678950873648009441775517099831103879186112924619473447558219984387669984396140688286525111238867617624275740572432539549205608703653117883678754752716532467067386920099765501674192995238601657866723275151314835334355976418162061219966897712677237313734419264756645960247677283299956621656155755373048186307196420732273482488786003271100243192694255050616366320781408505078230010766756268071017846248032199437463122866452279717621758720494714814835721479050233760744388521229248061132119960927517026807005098351454416916048226979655304341219526232202856134183666560944009422826552938212921622602928235962544129378532191249446251597683535685257781474600441051700614357505694658823529616905755023472595770831015705447749853190123253736770228552116803119687937073744457086976752574741946934601476988203931294668492317593753665214636907239555671459774316944940487538526192265796627690444669722871428629098578027927215467537925931735606938547089805031469835531619597126349434837329689392980214958465657567018738411751295032528758827410492794701338441187329097119424210672888844457200997356316013608303422151897702392625361833553810213018232084916009505771687036950264409776457026901941821210937359094586118379289130569715985317802994295126969122147815865710378293441720195000831465629239580454511070471635357647735661898617884180423685996214959542802160857806970892937312102650101576091546555098742471529348568813702574952105966305743263849775772075717324432936052661189694387703008085738747150081007367628441297006610778131555546665446191637186990753532479278210140464748869470583943583744039147904782917110965598184166878107608710924922717864658897803864100672211516666930273718446997495591593560452719197866563616466326624802247719289797070236802960317163498122663513772486236305416127812846315601825278873540714402806777045202037908453009471573478969667016354583445996015226461261853766043812298585340048730386818522367089214555131328230754251938464144629108934267060539191837123229911125840787277573409563816701393868228556083302093659150953019150459464193318305047824457688573387695346958935221889223476679566477841108592569846391882657249035957644858671138974667133934554153912823062151550598859042178408027013343719013729620112823816768047341761680130712237353057603706940823776902180346623905329030795229609484084701741410885450146217794354672378386705862961927513127913488309633116546858792340436436772674518157534597171788731480728563945669440458511262982393713216626551699086146012313737158464938974080456695137188423912898406828945444729419093410745637931688314332589502969814040015223195238500838064635394977999941509683121066660495391172476095113126647732541810862981782097082212103351539118212242285657062475374490390949357605597221323044714624666923027143277865527031444441127073842334864534875599849665250163662080401436458876316115855003035184474441731483934758884841816266300501560958908467920081007970191722019543834007213007320854338370664388233969959498081882979396403181242111539083166960094455330801344797083910979754300353194952849885946064041753011880339530366134602221563097500565242408359702763392238997652486001197100839160881637627570637815259191028307851892782106052392357842973615614382717351728232694462242413482625268247118824668027442895011400520051445147836049848447707032558393900217392575333687515465220888528123032042568467320610609075292609143543151208311275850003037172302521304973161985019466915427282865642547573867261592188019684378901209586891824257331226146391905886596797615347810806734688998673647050211701540133483636347028442910318244760672561395702418761943132545786262325657097411221507270194217233889529488965021920393262124532203391498407497469444427523982674496298299857119697424025377757584028906546034616980861163582862991390980485576772796219631417387496625858409799532697197654376048251311817899669366895811743513658070040248330009966978383058399381143145611464452709442184717036015275743401138914455612540201531514150174464757507235263781307195888005874823703399175983068439436231444445744464844627271414233805270258597389640182279392271853775319946968089491542344285431906726168446577204676802577530105812965349482760062235701636543951404129467426504613049196084269892435033546926897829910983274806526639716548090694998209563432000332021029120238413783722024218628121536063661602262503992506336015946959188018279028561707235119806219620146682715335699729612518042407909505406041074065174351555907139908238897988090739368906280209911541278444175055388339245513182500520150237823467326440317429838449549942513991789915558609721729367722711747392498789995811222370674189402778185838590621457388825722601063478011319940493204395946281816671121844564773025166024884870131384279583741413524563792313594734876578572035586983496057116314028353305084545813726189064617843028050071153490956124341596316326706676404925084992479252724249085914910080121522315204567718274833495074595154957001233248391485390137059377839701936715688135815470342385662903017534922606631527828360825998463902055074679136250513711703595246574502939799017026453384661552816012687925735041070211747591033814417756450067076962559632282452160586473164228722452295904864837706662949826474245742829904254315661277651116226346961084550912629308302491526072092361608226172152427049821628024265827626308188024100768390206245567336766378986375227670273784212172185302848672673165382967895347880214132796233014707591732826728231158360740023268919374393911633276997370029935348322401720680860651605098510828264378989846516064421594893365987015958164949551862396035522473936498461730916889034232127571851464968991446865957481902473018523106580345828683132494907273467538873721839473099958785014266989272902891353004079491203857858046109918003291785870483934446268950791544806436134176309330592618719787301038144948716329430551193532105930649186309158098917491098849072449487354476403521505696818525384519111027359314322843750077722924428067594088020092438598069213938464261199012567310300397438874259403812119850187861613714558183114666619775045450492881914886183104676079404763125662849634409427435587290750831848049068740919262460734727183576024899174984598739833769294078316249854404009352148357504719575307083891882336651913613688456048195872414852726064843083598175829141059752062300861652704837188535207408440207712211428070304346231540548295526565480971318480359559588512270907270540363851927698596245075318506072469076092514300651921360534039999845659889157465961971028934674156295534051744257362989940862292213853427748607321753870305394650305888661141515102366346088867352113837788527727614974300726137294676328770435531098911777473822051326984018101158892711419711125224242895422869735323278407207192301629019067184068297245459405821971245684394812410565799029483514951304929103213824528181063352091733157614934237167224587572849207158799818466573826595656871948712981848001891827812006718412749338778300020487184721055973737268128361980489717993484274496089185971105532128902194425883874726862176408771034210584117298499096104585027504168707387678164340121850570126070059278933954363133420528642631442342999732784074614853567764483122814970957878988072892912649291084500639062804619009937108593205248564323416113121476059617998131639238123594955740904056851629484207098092622687827332757009280563292416913310268910793878547963983764009809843538822284847031098294863407186414391006417760000744126751486945706718634817204818413948718279049609216016737026652396893715632322755195102885016584472563380411896853466475704766045360776587523637802631410933143667054371291662386623729097370140254512460126606966478757372246128478194207395432660697136705553724843697484919634130625332549932509730446170416117573945651662718764249936393654455667643229581763892738742678098322745703701132315160573976301498880027939332818857284134968497871414605527832965135173043472812952851617161655280989949114428022159368371504217853563209320068714281790702549402213403243933692837915031077647796882919115211173590352646141130250694226529842560699179015984801014292557971152341716558420128948628742485846779853916490309601340108700267962622083375416724274192399002975098073449124707063733143971701983655073479494539845383767733859813009742734358907445072724366016947231005231172632426321182212195451467749635680460546904729290682411846232829970030244479035556908095075763690072279623843587437422146803378448512537009471430682771644896759503249125003715716206156435170654811114913801367316585422921464376408652850329993506843478303046322980261034791667873598401492184211373860377251749166989752181101086081083986495506618570164144706967586111506970252099226921456715952425654046643114969520468452377705157591854124746938548977635241644749869274672830208268526833681216976894491462103998163635340880833046286915056069664053343242476673183787595872934273891370260010602949669863247042511910679431173009199717935699461727223263654877316890600754579707299065939025381410832344516531133997048177305968775505746511783464339699719903663605016647437047121514642680565629974696765519164810482284825348187030436894966416476107164876698095995401789888814077867500740026346590551786108692602977437485894280306183317504775600133621379267562359643621052563408340795472629573547027185766576479214245368813855184795090242709490576527900328689933003769881269797559448205510720283959556053908935684359227031075779982336905286649538194311529391353112687257298772472231855672714584166977683790764064007070924980724756795242270196118097967868233038982111359120524093901199651748567233646975115938948017738145534428447127948954868722725849277210041268626629870835125683825593956876152218260498273584504747346201649028261484657878971915551789472764570792505944825657231362530469310110309057696193743575469548579230708372350382301651337780537020994313773506040486263002303738922581390554674547102962195363556052141940237818219677494430038037326598248847663453714760571168295564931565117433712930182573275606024526738350697673908714276554536057016545482999415159010037732865449155524163221032952824896673196133698554217044778576585353834054971496060723911858769997572361958073532631332114787297620449485826958315033232737882561611281866184354604968293728491483119596537207571569555127795131009338263171321166297912060592789175297954012396494181532821445558687499938654812715913932760385227509536721226556562170184227884943397003394049662436271920183429141453943396987070806979742575254677408736929912488756881186631376589915365947847374208929522199322842250021002746520909647710711703704290102043320475366981127658282644129291438785114672051219159796333128485732784119880231527922154636858832725941199448845389892023400138088859997101627452738047333090491720488892084624891015875680670144729736363574148573650396664589310769735823612185725222468649011801666548825165561896968097298854087425875436814392821589607394139913391242924909552462812958387226715365099073975227103968933753514798427324453071513088120737523033810464787831971579617374819274051407150730235838562783066499607197349111826476143340222148684071280880146143104073694758220627169494759984086817750363284693625767505611882139776397590604236034115718106592327437753503696848545475465746581043407454558759144491737704178891170431734788115887322241841438573962412695017805845743935946666321183879892587718434128097592964499880032853684582046632539564504417732574564510705489613770068858933982459814426055775061633126160497281457601411940559495740706040384496986038933568139518140007717953662120292416769982403206055445588425491499608463440343526080584725458922142858012733517543607639408688990862624378089230467128512801562185023896008301111610848173106657462006476204284131421020678826436313198068332174819910324678458428090354621080356125707696873879954455797858320588753268929871405250261145559219125581202124985262351691790374921297772014730767958808531671437109732324384250330077860132551326633614807664689356342907914477130353100115406156100653502764704294043137970219859607864993252844529997424053690083721190795540210702828495790373748074990688132370006448562270106879926168873001125791972410629839057322546039871108138793922504383891028177786548215612727184238730718642652875466014050381519396811572457607439402083576547925612828581019534426543704326730447069330681947635854769398588647031551160163042292260820589924853053411026979013004796843022301827436714192889490950245967211917685044907657282841800395847476131455165246007542796538902834235571707925332664186331247404692893869962890846308185347136593846620550319975649040050536234961010454668263525197966359323324150954445859964945254279891513573997724319551299856469200765272629019924133517865150855308910371006519228355814652841886152850107178135045738067205501241003830887490199470344366745311933084284265341104580236206254116729008544394142784744685930383012068288270430334957242619589280497888007180849066935887951458846186576064586425065885146692865651025330709397120618830592749399687643605595807477003238164947188351021483410440474969988059570465683331728821112620660818056633075781791679332750209142482338162518275659135018786226040648965579315998162684210749749465265353733734201880919960484497914991192847497930313380681727337968068720386715954761549295384544801116040157953444652908210609053978353855846745848328427374986367918998155350381602343635414570550620897777027968423426134773994330101338862739103901660570097625589787285244837008720799537361933602646665744629344359414892211118112018831212978793163128004617651897689226274166861341228038504176250298533597920499401760414821516458389353517715895020241790486009001353952799625956770394230393292920755536461649762040764253351848273214598964129916512740281303139622203478775241247072778634016977932417333377496531520540536424643146850691243585477386814493153004705817222846888200967192669767980138586660114961389310319487039261927889989543615391196521087555994985828557705292993881954670793660492752328344893888677711009864988455925567452877318197161042927447217250930854003557890127285497490001016241262236783118066660800895428019394784885837245008736394288172365963770669509372273621948927147889340871600934622406986792594604152437987561263788510345871586715490454771008808976102851868935910946288638561100386427590475210933737780101242311835255181878602915580922203049157296499743921974009477796527457222063787974796965947832095541649565731720446686290456279248798638590919937087887905982441031487755948346790937602356412589141657836028089074116733099551054386881914035572861478600047908745128412051144230499573989171670636079542549410587578983143247165740661044625687659670386260150123377058766127892584265703597432605654062061423903650785870344940161666557725227950876634015386563706545895742613952275901643768617317645487284332483764010690960303555604219951926796757615026608606220137693345717092543593340099122425913301786350588196046312942094887293570033809032779533247467904927080837132552726341930094505450512590770783260360699244301926193078088902615894577271653285765121974879318354532141438476296995819036897979749730670249200770559362382450900496000131732393016079551821861415404098730389471415258936457730950552253436216073913048901510326357669445283160638935129457587588671829466896930229251482217938181036984242823296487928734032613031166156022062208731784239656933486067267923685104423013916597146000426797947673636846978566474837936800877715178470616779119136651715121763047265110640875722640547607353958317100605195937945945332666310814601339985635076129934434666929832999614810660006584504522192830931806643555013004952713074254760593206405440645276161906016683087887418692373958615867290804104331619169341814709836657917272920447567017154437222280681854454621477354226729999337202685920632472488004871310984655271989122831001257936824861648126555072648372583971366420326796897306345450924228552885341665737978003368263970202662236148837061601065300792392349197736623050712983652286350070977201334359467911488813877175595916004633363374310812987273918430243357093664216855738207356236166055711457560765090785512249142504363007092525704542783067796196502605678087377485390884802775563811372352617938256008499131649178114488642947327770046226434110952139472388249521539680264038649512799274276994857639287442462148728135580894873822246890280942291634635709224842323836920147835665863025262918824771466179911388522472521425501016774992754546581769956567800212220357150286625257405281725532609429238425283707221136352015068115813359768423830516927538059626686472265551055036299052352426021847200366427542530172652408400661474276076975300122431312228472125233436813587726267852561047331136854225795344143959219544354487310459597231126607103334709610832189053656002553519167756707033568906779101852124623622948873686624974699845042543373497269747494388896416990774317203593438438548524012065091511665857706469085668527535611927501781274071142464007578203197994638528445481130931756879965211753290945076458903107966217684579667531242121564063889827015365377758834798887123843492782853078383042201218489217662776927917021721930664869996703023036991926342767679383137127238656846940278673936155056027485695999612349914635918748390091536506325835501446005230185289522459747699922670080759727133905765089988375675031435082531715921256242451313108784260622617371655657264435031972456532604529795286381257018513237596116892206681654055268529860243350485760818617131233992297431051540413284888678133561220323087639921784761501363321433187533042770388640198012007392162173081976690954166973983429315693352375736544042336498677111723988926362236517226282715836693767431253522774922608574128205503618167077786872381383666190422485807185098197646842196057272605172975795367574870216147188363955925338087186254432129113978817127513229099029284749239125337353684069389054109950781396220330306310971751175809569705118803900715173368086821017948510187885868084396143965062250358290759158484829540377860212855020159543767351939933778844716191319552400749253002151443370895000698926068216188176028689617048427588349343061295538523365553687306347071842606546531066590319091165737809484486897703244582629001874457959157977507162448793663238028013206512035845818379017788790927683160739699952813466930691090508111822118142554272610546577328606177399466021610027496825422455540479726349780488348477969438790395407192489417287660773391221890824262868208167938783778852610548906475764884851553503927441511072997850920524285599627085313304677972346800735580051325924176901319912067348832643553688825515403586656405914910372653595371885850509299256705234924764230189343371465195312174178049535688094426909623714197818686609643628736217591610143031937927199033625274018487575822601724276299604484545903280070657720238297422376629968848057063448538083719482916436710703002829121684727178078991146593159317052222252617087301030165029624146256822938381200346391191453669896579746745082744490948183210557010511071002878902410184699642125688599072398978580392932388101837977353214208378175889157445269181636395260768949823328434147848287929526084869875557450790753150845686686676000416615362404572037495703097286613666898704568946136036833919090617446673924597667175435396692482158435700380384483501315250771838164421257924390114950096373483769185290064666292183012923233345197471089621119591416857411031507823022290768917482182972486379338249825561287541394130236200563005407587574898683162078448063069006288684742733491824254749346811757479409443350893139497535395679157920345721377287058668702319598776084871876698316760918247952715385956893280819777343750225802646008187013680420007636053031386506118967938671980681639253457638391950407078552280134598335176515534367220481607104015842555964781770861593829855926815969804747294025394662292091169361282392092400384094830948124780987362513267216270462593228624900910941882944289933271699703997642903223362574012446462795474515288653354222610801585038198560810480665420154758777032554830498175333004548203054552522864794082622665836503862638928002057204510917747094952554144467325257230588115323740838166098314893106439329124128549364593536872724112665515810197677798802889122502313429884161760792098884862761358945287252959565764106339211327985279804250868582647675988962169278754920842964225957681968933148982322794103637521680908306436656122607964042266203963156573333127384613636193343170455018662917332866027091528672957643623098463567676312197044850394935875834090341635920008101636677545515410835719155939943280281851652130274299754569933045771441023223330069433169451283055367282804194856801335614159188008506187512631316028521667056679991754235282193120198355335917422184379042648499349012489004913718281730451539903180678716238748834104953151829456804801113554181042221028492304646802111737255087303325690500640338593104422604735312616630015176284475124121071391542557687328115109454946984114492968483482818023540862260660038886317285915940095210541450035352194925506713852031083960958255884125383103156392306240544564433462262621610145399356157767839616919391926441332414456177074889316756400330694836372307035791673465649717321322536855628184735688914467587455252360848028688873897205900485756745928943834534219607043796892273937594655382346595351898529897335005166262231734897025831420841114352907712399911133295051526513679806052306091905300579646231296227602956604417011768539422529195378732954275658168998330970177980215372620522514287327094965546263785930282792498170745690596301541938863843536147490114616068762354527947130800568934474851752125371494758381008937393746662374176883070695229392056765666417011941892532395914798018892122079937150238467681078113853192442870620039162627248978364636388288482062959296540190684544661878270931458318442625261980655201739629320036328140027846893428898989803598117828233355895882479237903681506631208752516929034164863917387605240394199565751005916591283375219865725554202841887227314117835231290155145784908406898361780333288459017601153213726023248776857410147288083735539861938063263445647550539497437286440502595131564568372617397692473390257555879670393613469104769516942167873506176467116415187761873562394620129472934782382590373139630462807240243937237061261611660682150743798310222171044084401349592511625154570205008888374711880989318204323532402755279584646681186574616939433786185960452113159278925435095844418206118935631401903153428764391010809256186283968156811927200709916497606733906918641266796946860479417543818385643148535309265895173884169632380843867716405955831610390216335291337521548393250639384663401287392284127408229428038412361945663094810472995738377549264904197615551025494120050947219467281697035114949297753790432667797675250751177455379549462455524767285438910961136180461760963364972799003740044351112317118457495089686818269497056888028241339633964537605485293752328454791277797593042845728207722913213735160936015599393319684510361130628768193394580939060120887658838586060548363614502544447382703172564931922277091866262925217409082692680479277026509574043330243412948720315006154840889440340624976737187587921629639426038988124737904900277160719032689521231471172221702532396745301156399307648587949965784244226738070567650494586431165102900811922785883432641153552343762785223030925865377443716401645160712372720915638977581951371167204090797253999252789149309553009090760134867985517847307299860678535051283804804876939124157421364716238749665439401962249181423337162814502078644436446394686961053412102678225469392284423996912877059929665784833350846653016017387185660118463405000895445652489187021646208672216878573754140509465933977786990022413886504979195636352515656145985647019005612608001018289641583780418126143952035313285239678827226036541581774774712210707321678801007256631675955650132970366197158557984678741965803416499495730259510067367718947542554421031753569213986101679811388036568879563754915266399369676971792244126417700310636441577496548571637080819872865523272655587507015492036646127473706098960011953825316770247594584000144058404687274774746808525420692665173433852832257018002158596350644418172708589897910403000076117997858978993171850155469770431929552366259514712512671256328348687872137025307516814545792471655230571772648746533894751653838140241509067319033784929297221460111950974550720781373337095685211301935273495461485266345424545873207562601428529029249833543715653038973380521374482261158030228863025997344765360860948835503320648749975068225866973387623493508530300474166580595873456487385674859775282046920967623820608803710067274256915864868729905193462346066089088521463740756288096482611483146565801867787684561417950645340891747744191467839165068669615409629242753308258639155250664422959486561493651870062826447038209095526120065099899564870862305857172568180174941654574577795699694117572114178139176170482317262443369368860073716544322307397366567135059339250128767115185901810035776533937685933047074815374561987605981456807438373992807815655510285164942705538971957340320132914153738248704747237362498196750658024747800613688179699393484342718015944251331012958600138938435881595432086608198807612811893342103094152417040390636103911133431125928284319581581190608631224155928586900451262696914208019041904296158797981624473325791492511214715729945370127702825639444492375760256799841960470621282024591319758994046081744594439608565262912597193505848222383757386953966989920189614667209712694892260074398344948913844375016792212686188687259940357795714065631213237343071228950228303609838371272441357047273388361576720575065001386495255593008135669724760395247210053124141416914604907210360126622263596995318497934101697187267669432863713997227346025651648372258787097036732458694973682988023600762972470976605949108118552786266965988877226571638668040394565476843038408718785949167809705657901354603314501830351875177756979245215608647008902459572765138664058079786347041654842269086382659677117783498103026817740179480050152619234463352999200817821703030685417580687707273957754115342401768626879812603938365976596983026488839616203360504676106782661188461810436488237874062188003784437095271788192888912858963430767557349478078546471902600227419035653456344627461767498099941596922401763997705425495388195449423335640596726698451574409002600645637379344953535042640827891657917831538516857122514794210350365587878664699002669748137968815840982472968291509681484389838533777474040668882324605428097039844921330417548162372426686971587322505435343102142836306616492109318929290831262834811157549784010224868043218508836341261548397306231948906593700516388834348948930459024802197514904998618308268751716282027599260424271126392692262811083667831734201011461476938013776500857804506721219380068733966056075743709950074882857214438131657432019893828485235096936403212746523397150509021472687578242632590019164387666134409507361327148926002682370130136894418662549969099575940849911891282170069269863167533159961785200539754520375941056762176484761330846674109218369116693375331532281966052028616781745019663454343008658329597728850054897332890313274564162027001815365949351470436809618789270238914056755095326475465257976234541125969067931408970924878630928758250992595323831177165475785186356950094391315867731742000436487999312405394013640823569038531782519948443946805306298581467651261333187685197708893597591121654029082490222314295362114484785998368665986736805933495809548845359205829349652755854004245673100133229853279519311831154558435322266186024920226476283702792379382819155117276214888340750009842297561961154440219045447767847100619901925023466578778006132849750215662398897652904536880486989261919360067819506476280325806994356034023797613291657882494316990290501448807575556392089563528458250191433167233453269321090720567973513792238064609697640214755956653175414800480188654509187530053258647816699576316758528641002764334550235647488606294326550839079855446753973785876586726409941184847099067257189064590889288768944687548315953763584542174564933228521765242102071409501937891777018918413664216597378870219195853991930092696130538550353691122371497234908097921168149056549572204482752807263393970488141884467284071681647627732445017760543019422991577776964330342747792762878693166159043446364563644093174601232999919912687889534548638878760717047359274712566150251567935911590095840919135273029452781509068738835873538513498894454533547592143180328249306446346489542431089950641200434576768172655417430100559490898166701757023783276532653411227630675547568998658704620064715884390732560208013920019764001353947261247756214887832289163546291679309300530947775210509596294499447242281280915877208868404852566288309947578100540318177897753785545984706008253255244661242954810166053270053188296996287239198330987865661323491370596987679768099924943599262251396496523814632517816341425898989019108233515162777917519747556731918316181078208438452254743957781735477207088299443387561145554829961764048755077473868162000815013064731742729298072455720549406228448082667743337793788518825265226805814007695149067749377859054748081173081646804512771280482233869499744998224788770763441387347803356583277500895981502944287039777308709447387861314686234507328003340312100895137700825603384893521687093269476643066745759537504712060332259717355659077679642080195200928784741822434935975441318948797886279023517255857809244360057539975676336457266681741599642533471074640531033349043848446403827438758238421421843663966860538980079019659460718953121342650884503701975195958521681031365371997106302654765551460841912960963407511095088229085668550069527743154866590923035382342168669455285440383237757102278464489748253410939507428741623839526109288470214468434457134941757455084380843927875811198831020240584327751603668559554699050724276282710048749233461737173965483525347516183052178916039702913506879441642596776528591568365234042109671817432634329422625706432137368921002335845074100321796420966297492648396243904248817489615144636009188223265665442726661930206845611851864888302992461220582294843349863066896917800223239723418242880869143072117414282494562804148339008598080664227001866944051823083834066175647936350954141884989844652142780389646122818629491185759434001333893375416976005223423983468840040955082709425646278787413224897049013378841537134342922743483222210818274131097049265990158903706216215695800638176560871969151011258351026645799063502842309817991459229776382615363433464446332651509893175897055442368407898946683787795058655627857680541682288383830375685110594169344632044469215865037493901572592652260511434144934098031054209504105464300553878326135598534824812159202818469582655046556414630664600489553571239726743060909936293262822904663257980664243198743442043480879670574450384873503655574271529797138573704055314883267048565004056816510012245374394023652581306007478615076930369834589123090334711571222645821944048718202571825204114610988585621100648506248421702842259318910256011028889848990874071394891068113939868646517456093118414017457320328486160432815359061971528657892110868480352483624851990028482940383283925622718412941173069755484044318441497450648785396604282156634641876530808569454321847493187143202585411690520799498331964949587770047454534540488183083469875619339988289196990919767224691270596979863294491480025543160775578377793714614936335470406722472311690500593524390176456852572861880318678679754554458266997138626849488850015683885144506578553053066373430397910359311534503087574264308972446943330020124982269210435755098121881030825987295158940522909595462935445258150962506806141654544748119621357701154773091070400636911034203400608949987122551142219119450030141212596531530237928211580162217801599602154495812015566615335653762256002490286489989358579130437281766062216682511762564308311893997289457595917873365096824758086632573718597669265905103510908453435100727988591198315814365026471230483334115735769297481317867373933612633549769411340210061437161155228707489513871292533720503820804693916403136553396853185579826285120582972619506813962370552038600318636141602350554322721764783900040515633892840582270836127530656617755675025032231838284245179969162724716110366421002931422488606107624327754210966974553077254689279806548943031950015133416626706504637037685428805197586219694178796007138905347112990001723029981666450855151295413721337486717295001386974191809769267399172801986777486084826221075097852447075893314812508619468266882775768047435020772968805731422490161543246434479789805315701292682887439301646914484266173761694264936690299324337571373293988221703086465166822098268377095249893219101347307996459484922383118450643222451456747948223582545624727086088265625352119524030486142452330934508997311055544605961141303012484263282899000238422179137717701942761161502257023473670477299772607416250218981719625358205505247710942879495879334898871863674647108298374177354181679983734166512860682468192390214575622761490798587432116405432716289649861957010257968452312862477961938151662709889878883460604883422964963275229765820525093006307629844519930121125179102966296036925392023140674953893234787333352510437208835849763845923225287525597201386168726371907429878217987748417850573827393050832691374173984487677550799549096000277662507021373472609818040803173694529213820450296769376777107899289616161027370862094898076861271429216660104402808952119849049241743440938676347259297772767670895564588165503889317541590012440189432336357474348146802533628455102163131980103808134504155744975022366442669156484249872766763172785384078534634265887586213075658732716777711566537783023090562938186304710328755602346468074420018354344065934173507968452398532642063985802863687406683307910343157931038449384149447205759840184609960540690874672761753477117320371900251766015842979275901063768186642420399738022256247330490562991180705278488195013645434619438879157962300148769015015778352823978656411106097362652442119246339105606039697091910992139889254192767017661174309083645506564034490070024010768857882888033115529122569623632706066974758007793618186575017158372548131467643045229257596743608504300450112901771678838918735366709456245384539519049239440313833113124413278213334200980757726361290178546025821961885658696781515194488782212086963062925188494023362114051837947750428096100930562958151242194622720037755906549594368063641045301775637192187200453960877969906015907181963086043420303007852502469904972627830036408488418810042393920200245003350544702801541858986022708410449338006413159427879146928907933816084537389110523410317838792631100407435362462677717097350759668964070778625137567929672523184138112291633378204349723405690162955930768328064132579656106996434767974788457747503082953771596478538528026922942397647023347299776360374024180161833178206680883932987719093932514004514338769707999133686617697540567345608705736798209275136466888135528815177976404933530268357337385926482602705117715663586126501827204841771362588353182536152221066966678729757554728413399675675926553960594176418654655988211599284682677583709653928011566471206179360089041098828106948360107483661720112394871763757254723322550442932264592058518378478742380804998299062986996146437965803329926127221107137824443697483160281311598991213632233422135053402842333757074347783087377126118504214052314240667388035874629127723418196443069654809928120207612934225156310684292384715913277237138951393105219729412201936314049758814767820338696605413629349101833713143627361152260279589082877306274382873168389535867537210188989956404326784496308137736530383995816800801233737817261414327103300431112860139103455062992100064335190664233397068272108448099113905657949291226336708306654388639592622140838343205465950230446424587146436738414870178341879139320084108260088725040981368767540428940712462783949119841377610394143790947724020941517858821963771208944069952216872662023036590163526757200945200253741347649015024478454216153325535687999665004190881269219353892998582010753703558274912274372799951972335637728830476745490609186043695288865256803562565963421526079401153775896462709653410488191827463380202073365559965267411585439204706230182957297081134936761787334145658359531832818568162575186881582189208052787105652329380473187710319687176925119322578548560196818183187925772740206574749900839629297269460387102399877326872447741926281316779683869696025852864052888195502708905242493238926029373510857647667489758587257274189477316202474310783438599824142826104589936520513140486091421479804638734579240544916634104162510785294377268742147987055128269489750983012480963606546004006478826656914481276734962674619326633835262010884468225868649910061599431978000893089833932992122854099820933350656200576229321409379813190494105573574616275766114045841211029504235882748938266095006946836528320305351325414113235597173955317191041421890319980102761392500908399286962689916497806476536470736128273422333045416739242723855091461455586878731424645015931545899180218377141168272879749536017977782504360509981230987472925466787765438871126071198057629526816474544507177270800431892157980703761436790384876277221583243296066855620539159209443540483077838888956230946868520297145922527325465889781481302231177801102724335288601624187801730199907605186053960864562988625410681415870041845318099544352572345522185578886247029162969828087275976336866444638931754097472187155405912986686346997082774035744225047349742141968623632935334472837972955005440138579228850034915593109429411981035745167916141227489279468532404610214595890311721289053388626832467680914491547653563224679433852079598524344226274101965023792644218464073255406058256317596900327657214468512955603674517000143949431956782593191736346656992552277573111608386823536172557452859201958082938723633134004588781473493944587034228073180964944710210404364610218709982748352491287335379622367036176390274546073435184825655387149935704338318615987262942245859195224209200594718351082158244633208674818536302455242250353467165502330369975335864913516616816685311987207604532948962321026619931688887006951557635249822856560159888554601456323325571071834694417140197346188452971665131640851355589305189779304498206426946312734844115359345714260707053849177319359673763105703398232946547631378427650069924246288520313378647160135764499203823195574525988321741883323020308427590466893519824951150534401355780947329942052319783388002096002248657028213793064560237280169824484065537042752715688970651588759863957477722214963927880453188548474031273255506513132266274609889772283181046242886203608565673316150525106017575310851119549272366602691169587825443559044010570756360918512970709242021033305322652209929639741790854328167462347154791145473300561088383906806469300904739975508794175738810963752925275878142379793602204073848542036690900318113861876119766240094204307084134836230452932440273959236818062195773444822430748934238163383076752242554550608845545290806085643351630682406067101993511946679521869841361467326030241842299041061413574155350899729757004297334914600518504421544840429018402770332586666606060794773109613573458405357736018449417714529967499219309587753554756956616730545698068504265172198971291993423603763665246792820303832400434343811251073164941621819984378159499826010317799395058622422403278407478542581671657126695894681557634296528554367843131441069846449616151689893041891286377087301768153655887693273190513151777041206340897479110521353674670278510564825812323701710357251945302459592728118443881019681750806044361779388897728419765941799369201153136189569680539369444948004519738821587419296070022586758641398650461597086748431876778738240558312824929449619091377582024956766308543236525483975674712439762901718648788493066030667523138298375138943706568774275274589033908475606473200660880750586955679795792737865693612245478339444912937716991474450534179309308113308440709026315271592450382930248491435684735016499137404401970839870821550025591408096210466132599828393497906172343356149426070474297283504230931768968780304637660594889271959129367725959981126491820461018800635631568025047741598972132939333724720799532687328996954815060547677730503620210277514320901014713948200303756711219587349207305983187600211346491144795924655358912378952358841840621782248319717631963823489621833879035732116910331549824242586304642596907448153548485971028221790555829489682329999220215047757777045983112866074964210047875156533251434809178352810327693294582909098305038420396589576041775523448849521666842005014045341617134436993639687570266775529356193992379040121656586329958146664646278323141612754197930334076335395004839566411845370039384281775621408445243063849829685726450023463514201253074822599849244952478529018939253553271796088951036314299247914500078863772464012204203980339005930971292381798081238063531902785736073406128060219640483102002174396772579813564949171376309725704426171798845285126344667355901843311811633827125045483341581001161109740449715445600888529921566381801174797725747687946762798172800791863381361912337514038680509483111338228211042703180060170769854463373943599685541043298805943121467393187181055553765146188248481546738571708533207003307520702228805849395641410847838487473866371938156616113050473934998847981841288952023208534458091499055810069361758282433290374537247062709394522748439899319077204098143046578732179259761197053640627088473351465047838573751998723678290310960881339105672072263944971877246060386446524652413991689280799781309970337045468024124658977484741202192105877644905481844413755696898874715800813752312040916020230233239453658134556903718939075161679084305397433404727164146703132034613291521666730568044488061534070587680203180259610338720480131705771593058108049342016977023251433382518553284757528139844094668867675089173931472941621656248559535414723319164682781535957843338063884556156993494717960760886062379164497332282006054479524897244510074160674231584753285628109215015936386620041375264284690414556206349956216432133617606153586131403808266672275023794063585549310619908252080988083221834877619370269144438415947788309736104300441345909632459278014159495167301703377720193691108362323939331717379511071048714112391143412276462785677420024474608476273733912824370715212981860841209726938917482684188811724696649052735825869034306061115692422694078132030625847172226654954600631354153024616439035771960675041510055492410253036715558471251785149749409795972904207992814871457209191887652468677046584109081381726053526020485032455749986460788119116300311911354451252647575697325120812593621156838919990822588438739212330180172146036174289017483886783967294244854741355326471290265521680583145626034643824564532715855306694773080902117660255933137999356064835994561215002459159903587849356006843847015477072319749753026769841779515896173650465902298511943588983757987146711412811251970950674688857116325039274600467149210326810145550914618128326012766456541119775269728902191988432550071216300262587808178314144990432332710926956297951431177031794987377642404071540679474862160242612258764183611856236474876532418326800813388166347165776623359770940385121021226040097052583650370120230307580442703423921927911317982854886467434806170216678463866546927509373446765176681187122207153999994174601051384728898495351077132844990401906236822851361194799535176989945697546991263041178744788589686689182601543811781852071827716042658439355425449643905117526103763076127531634135600942354458842804279273464130319514926931104247053356564401682018431516722104680939183390340645868137450761987644050813232019155464274260179059654831733361279664795662775825171838846485361174717538084587628679565117760526992207090131398982144052133327321817642029673889836906423670077639082911777773537893905056884382612976267176588176584976203412208599865517761545208809999859602271367472322349177969264099210120343763244166923169878754751176695097911947984356894756660086501354139092202861979958712766118635675292379374683281207853683926308844133972709765867864198132200215160149019581257137263684987940565025633356130049595789594793161835855195156278896560543591359605738151539078286840608931489096844823337585936362541034948792635595535916711466692329336875675749770885677800673130397655496924466189106132828241273638605322409468265891798302036403756719119468202671349972911533086391881390204655176981879910910823221481872898317719852102662497278455885012080183687525275411731185799977736326366826936909834927162573324975745295925989365463009465563233315145277323192324213910944343695803521153989643759816178100232541054807395381671685545392365200003872149088562528482444939983916179652291256287581532111207903285967129079313843924789809833988211351283898725636859560211866621763206439788261861224002194557707880327985581228339667069135821793006954206080667567046080775658535115472805742038891393597743910932207297060412271448204989307073728491628084342747069690862192997392955436923757612419556974430989932451155338826890749001461439293110098182004418611742369869143117347343059927958208940591139794151951436384586870916565227847079094535503964756993240015389613993742452099746283108702809787452834766025585458540427397962224120486333299096309714251740905006165407238517847896000700873401717966279424600148785441858882026690318820131352623652485727577137448556439372028628778203099907485781442414036342966536246064039505871844575407678102988406095002578992835550322691158567675839236183913342373978122261355687432983642140926600657895143945174556993349141898429717636929528015024374039576447692057832495594910361937673165684826467529502255602325328018753500670919242089610712311839413102576108159786027406455648877300447353421266996223919243429941407922199031921533055363878795910428501610982664678800100612137026932108971716062882311044775566755629270706304638795400136486363787309833383530554169785197357755372235532023379849913790203324458462658076806566876120802052344217406594843213103173074189624176915250102361535344871901933923665613626441938036750947724855664065494074794815580414111202655994044308741728123312510672526552592199314387454150704762225449682051756151015840708924156204065444365239295502037162805599464195663010221515449335674644295227278254079246363357256639256308469453841086167468144596855771256641144726170425195760199139401739404571781500041696487261404070204871945049618789019848820869288762782894129131534734481747684914099846589105760247343505780226831911361893584052197137199906245870026426979729254433910134061558440886070732437621049931418891640338048383844376077127321521886823015423993986440227438453875733424719487199841142134226455981206582893938917752453619983846566999021022696148855657839669817403418213169702915203049282444140945933703727668298287745678986446858171883827378969069482014370229311752409631847875330171013153551943842089999472893554820305609371162508934883715304036635278707455233155824210108766048161218895763078133222200333071722793409617994898695718898936941839027146739277747936427090543413502300443729191979625111491777203331905465808862189758084220502195886688636301659153440296536997116569555168568549372813369215634713300059153595241568886671812762595407843699582832493579935863661351022360501979601885625172605240871444880411728253936827175962346859017575887530716949766213232184947488537557966805697574029784811710134738620594254368935447882136674403330882932507494139275276001422445110257254498676880101078749602438880444462499327037404731851006465136090292080818522017700233168148655068964261378674208401315214918971487309709552829914079359086705341304080271753944200182002038056201048933897039399532408992674206097300546933631716451692620775764896116137130069619505634846937008877798870395599424598349498327785105461643435366549606936284348774132660424680243290479491827772380875431223133503161684071875576678514545898367155088344574252203329047696700748772196421135472661919193356892926535870440779382535344881604323192625612667357227543300017594666980688971770976940324830218878354825303347868048727215032419635744347630626036725361496593111782570990519593052519706110798841905042050364555190866333138257509631243330147001119783319429757711272731048859595526690035015613330770568776362310698506827131971376081823465054335375765678772337595543059888178648811452973811339210680589964095123036206812858399289073740392068856714703369812797806689811430254042408657879871084008234368551945444967140528062305821908274789535230459283963134940628652805350411435897706938547287260588109411845782322921812152083884214770144255636874883684100584950369367177192794995137112004760669896418254779043618094666202351477930867995447375040912346861217895930357766113400404527464880254170422290012593001010116402045665758622820313565657146007785785523087921756142498932209782860146647231599882887749589751645679408114462958011046241364141268738796322412528437258953051999067836875546420570295625732247552287951629591166049282472691338255734076936173156202710113618165682554723948301059501469347994212852296721982322334120528367916674196248209760013315076295308218896892808450740416038035028109911970320003263524963715106572502024794937991903198469216617110585518596903634618217366605455949074310804400647540397140430719697816612647619473635618107125727083751651799728014108168661428634850539216018337415791705958355852830597896390002302454865192676935524662780072854533202671328273875687510796924538290787080018883952183317719242424109642043687886670588821850695416362608380655617377843822919497785454448264669748074212386639345012872305719481901534364892170945154770555876509607636534476142023233892724118132429920450981248535823264294901523719687710875978972057690376932903997365194280622095884056986998426250446610528824814996179513368192608680554565108035627439380988571347283377718729391230973855279251255428988985294405684432189967843946345831455141702577613565392563947760558237324356066092477341802892522345303054953741884675817690629935288132191426002644742157209319486484768588050220716254940999019359045856476184698730663559270520989333072408377244161927608388650839582282842700784901672746254988448776151463408317269331367745318488421440981873799284948233252525957517774586744429048006891183441182008789027390983047518222563765510711066013534888224866347556121468381967910650474109580548762160392404738182374476123495945740481735773488892345994316801268970724557669182165041736038557254350577716670358297355336023004222265406401459073979565424968827295118752323755979662176811123293757965103797386664431652804219163767036144499367988305218685335551389799677755760318621723403727095707117770382982758815519628698856746166213292861869101019891037581064347009639301282140071005556275666359968200995937337552104382364159539532099738586683797881457818746930635284192676464112927134516572085513432114356915425197255790173081687109325008889541645702757021197079760379775442880991463591268578157621534924796935428020310863360502523821713720604802429209796079116468350650882873811289234184159107047689307874335377269705192278465576910714088981141665065582348455383253134787340773779348195082987803745843435342117579975646366954714042332451585350580617387741583891224350548296175584956320875783497121212065615975665257381984737251600550420812667496337245544991905059305390136499762869916117246208636283194160671900782608064021288283356488073737110082403905569447017559063395064072816154717816703910147340705456821583686416349041226718256817012535576612726102606340589517185714389664727849077001692679958045745513261550180497400747426541857321907514974868612537517632705928843541984036815585504221082466808082462444051059409337407487284471846422066581301509929021811421381194568653293382937125808891489220952340336527928081446526765605296398680209635367698519901345006332481058338131055607742569255865900270723562291755450834772941557399814512458289503260297313182430721811766986606907453026929783920279076476379350843701484974162403280300597960106824944146316946115819748279593183852707422912137851417648358133812433830072591978461518081166273759745604177648296128015688896580804643750840298340812455367575479221490566825211753248728719360745415533186576073223374087976777366795270849698577149133136849578563319128317349205112271434553655301297070887551067684874511119654720456232295223837626234259155846406181278021269977518678014423000060133387631545712007675832258105734997612787909120597778489008980607890146279605140555422593719034056846276327569551923637148528799340744561557829334620098673482970745396179999627024823452298420509605159929246014593755574981688916357756872428254230380490693364403827958850875296792588619409709456091809977175950904835601128056279483804550646161984129800850649239201907603101525095090742116791815598993710595400265406475255157830970972507337581486866313792504439505643598546998962597265965156640061292486455696165949446675818967193007876876334851806943706197902006533577154711572605198746615613804420698077070111024264669099692745861155311562337566927046350785328801101106760173850974098657066199831932292952144020484328346107977178889238679852779454692263525316330727821740715764459804470359940499381215605179899157441843907729289503358391183874818080095078878496199071226886657051141931659486650564153606309021812839579305024842235648224829137600718520326695554140117684148585398587263785529296812638335115475607510990366161425843966556978171699677885967549702851582809769833066831596014242739215514794944897920698605636415592746415063392066117865887651724961604420004076593221101376377951315855159099068600934155110384331516610544389129277912544326866604850236527570233209542485660927971777016766829992728225839375970389607734626902169180403420009064591995591931979422350254097609882605796886464926935067809392222773740677825731236238051644492438130895612075918646602307616730074746005019598570914832060774885479318894849155975922695503864586698521486205533615523097994292023002044386303341579475512331521697045338163349314226328882403797315776754696469911267347170339521257349506399667574256355039065202163945316693256969487636411522871670817408602867756715194407449154655997542027004749430082476579040446889386588671611897801011201894871146927002520264302027810525450850496936390315188041111092443319050346788354546008397953114653793209708305356914867965426957394796240690200196087741155409617733796930164622923244391668450558970813653921178564497306930600798699438756990123010446671538641852583297092259194908255517849886915360377940734947766790404745370425457691935769163584593104539744747455250322689362843139773185955438623122674364407822254661935937190648078767763904518378401906656238690168437729886073749832329383559884425590579311370253790379515274125092705368636687753950135026198069206808366798603879415421926235903003654131580736851237027824224296922826541942422279152489092262432197089164680830653761498670529448216311206604010396272567596079011457581972643889657607963183805451606072563480678486265108559590793859977326709384811173823708144845307508202710611657546888468295640062059394816328741259826804395768217644905947540671086116085195338976152475977809926091494386153671166303654300219601007112974772025291986773089920081417434960935775368057904723064716008159449592744114040800118110464218144805406965128813735707628642393265169452269398613747101209140642085339721001954946127872228253275542408035016676941247135375384233311575896518488834655421659062588026564628304915906497619223474956707575945077538902816645232645461618828685229379087932654529119681247957601539987578363600645810568077777128409180144349086814419422606266055289652719697451216930592886957951030511889541422767930665875788002363487926586988918257891080992119761418521569902480322968945550755299662387000301059865804157985664650277277970775972523917170508669064564400631359939642840632667085043429196695371676210180032684917110558816698099781320223040905580972172253401651543510386600875557468004385364572817480003211168359456684433438912581259526473686509934712978458964166005395809725637503156082323269096175599174257129954298119959755409789075208518454458983763359188207487893894949718880511769592805566042004575647979130393265113202555840509048966441955053204883348086971821237146047282383555698163330615406336549140124275202707800459587500505620942634997137192233016993806666875512342409900492283077436517775413852922405276462198237386911402041731254899132055722078047251644179021667066300495894766259344468731129515846026499316937634108601826535290625032655496246082407345039896449373932679415091481513850047704693674374795631984214247689290987832927027441014013794584918931745657023737672739039939820464389826765177336862511278842442143130604329191068634876781479824386236854190457111446037064590814389938832243348687055800420695449323561633879049560592672590637862655372778255609871971477987189075045828435260215698649005039861683052166835559158760500995758567972165588370035945402552625780573979402881708212440634961752498600017526127630794991709300297959528168476120389262024907127779805024559377844085674896421588681737121138148708451679231529262486091664696014409936718841055660678325632689820492636531175662752316084047580531977616225947645790787639929221805283353379572272527974003641849596494808816597383710003366851851709220079376627842590020134033639993814553617790015663542805079616801017314287722473858884800206257258171278663984464730359253222624424059086042305084121592136765890026902342318746636162521176432496067794017814356795723107320788162670442629083759492999150094329014944682215108195571511593080469447773598713546692618578823214775741099627775642764258857137219113204812621949765069563179320062596554421937604312940851666549393732328385979330225207764914552352690098894309835434064705855461356991610380700746046514415466540769937021462421957376968699172531454958195708393098483318644884844677654887761801420373406808449243908370057334936103513821933234630931917380072539297463743532118988648051314450540756397953336776825029428496540498085415529914291627259828791082199201396418848472550358216694831135834857259248902231903083487059711405934025469543873563112330979132774877480130898464720111928125090170691036793176764498024069424174099070607888759675260692062535913066387302901477681199541337808587890269768398135652602981833150579111859631672407845127520392585214825103199415139711923851905580723040726171651703878720118890855406156122994625467397101058542889490129699865068374561803762229240978101594250472164829480063209068676747115740664437598556737911814267800352165344833281142255857100128386741634378515147981229978814861676416441051099630092228942626146839649187648972112102420025989328652570621942704040919735090163275404441519922803264557336519275980030225523710072694454026928246217598857117391693719296747780291304944185386385241043513219936849652264148197243181531975318083369194183906737394023594005788956876982618942134074585495121255896004405584266554969950344493441877219457921992688191926239908520560949836815476793533228758885822907500715103708772618016130740181530186808163081626880716489750173178201562644447614336781265476342745943194395077685888233295031466625521823063001838634570282340944504823355182074259686713586833876786215446847504525259167279630593646364970521221119241254101840669925017769961199702944891201165305701236340680980865189724738811769894304138958281352838368014650630411787066689969952132611650897051942683256161309878541620586383538236844011497349264549519198106383087710838097250319721182372495820589640021577308343141761855959653598752886086235388681573051357903580723711865912584649531720278550125485432530386721942836449581838418424307746923900686191528835485284875045293118543146711980998714033363533350815372342009779102827962595372743539469325100285373361022177789429928705878806436158458559812131047272062843292652436995284599247006151233504623554010149603753778457137727756152749694896197832375466853760891429449193020575322935731186360053935530346605277756193133880402627591507000617161074645473410012047607881138464132027789836258315609402076050913261242830179480994536766143948018627140914904228121904373937258882314017223113589207835728095549014658685984597822286800235358127763306946002864364418333361890576380843160161548237143132429354986288355308835322590545844269301285606815295435316784809974006674733920846301315277331886248705786607464899489776566344028267692082049764704972402217990315618896610634770757939740196497665944622497815566636881558199073169135208341721680902698687445033785371941642453061497217349722547674522782606677194251557737412091738284802629536149685004656854833315945669488140960001503709167566367280334760908930847960028566245142089532581430909852133180435779846244848918260677690627169602567987976979330392083726447806621082824234704417112916658953803798854270099976148681295143535020931690269138054199998076728883671253410971236523974602078181123370307943507966867999177117003562064614453508554625051165485485351142150450136608618677784466070159909172770611047984441745778886003401468370187053774119641059733194663192757915864520505816506362618557644580242386134338185727913802416924379478403851847607678201571198867750542834883966794315117069072785324693258002989721425718713802677581196288485543121762402455391238449813745560982435715557075259100717876533513901165061389650071635426177636328527327252498905519229921067131397156537395279113228160034701014214500545220061753022304297523682169922661058649128410603876174039523631820390703861524506805107101101554504831490928440589845754882101993942207178145819724450008117498375753401585689871880622859271462907361483454274863003462945875131515545545404238459132598047427735166637744858024600900464266958976192756116764115841127033974787388334332513448280995634807585599773959915625820021725232806965875859724218286964481865526354668998384164665852521819633151681561412936413179699781341858753365409751953767767175238127520979074126991762404910396802330723094541533133927303170895622460516122708830036425902507035110909499237261473850297862992377708672953251836192516147430643754195661687853248410596141700367070820086374587213406112628690516561096163952216195310022719737733568437015469558050808390837172068279044489164361209579396054065585305890104529260838355613010498266649776118280167649461518747244818752020072860790381966957449539779384815318807266733942866858425646497681994982226006665383166004742191444560971663102529703177925787298750377882601094475463366909325337333017245670162608466912948571778567713671829314404430542804291898576470083777227451496820358811007664481150784399007264462982687895237819124099427019007234245796921665918721707665841729654889515546449281059428960407439078994137425451557795092928176706964740693555085796350879981578045936089196628612912739463668979329877842211531492498052442174820151904795838521662500080070351563856859051243201934170296846896687937804703345710464171981921191871122223376441409673400361077925157254649225343223435751897289240288142701330887306760534982962010309430507946583807967429435357827286887363721428443839517070941017811684049416244864658318102298162649388707107462147292965328358625320537217166341575219209167728936190216211741538475296326241569605245198700123977585490677364002374980758298015083907201440489179243264510189844909929800274268114510143345888439305492331366458381414584858711442992237553548281063641602030938403336871254205522852409419301803893208834754586964786326507525334067462144282764375147057668988395579761401883866188647129617146962496947037907270618214524376196238466810880181763702064021539890799894178601265944921170687577728574574160770845499708881502120662876983149616328934876980610098502621713450635190167415271981559777773453546435822409059532636100334819253082363567460634769359774391666265978980219081950595409177668248704177461475093583699373858345438722077399370787713773335988051865637246055221538749578087637566816636390892345502757603901891793516110497409378196556416967610027192420924344800826742586376484788291618703551691231956198288673125936308251303848519091873435497715754202847954003436972863345711471752241306625742184878644837694858639082265090544444919811637072360543714989417901094154019307700317593664870041549553978316455853955599655060237199302779545351886878096313465385460864565103970979442058623854051719511449693552415916550302193637663328438349740880901394860465128274655064763187089269832668022181888185722372968271778398737694701151106850067431372556983691530051278771495215828826157547945086834795323131222131176304475909667103070439699659260291381177433746443246746829117624451307807848462981869003590219877399245944635072531764875832998890108494214961735532902570551178350281925425043217098369173226055876411708077782280249128860638653923903380795462507414400901102701854131544685738290190883273163652889191870931631769577676579459959909377775122642280654302914058551097309562806668382988934464910472378343807521298115893855800216002495849997110481309468917065144966493332703136303016325167313839032581988286855441464122461189508704256963178392759106056400494289275527029557099818565147092796220600547286142406993898025574461317774365875465080434736787182943540947355742497302802662006702716923762993867037456728286967049768402904287344535229487897401916188362054280445366802686613004712335701146862455581386360664263437679674878408437030822145733809259454740794888466095802308737320688978984164618282369059446959142230436131408728775428653246176457308927270423683936990205663110222289045916125952319553282504501171069702146508959128335322712926281592931323425305136790926576570666385201205415638259574657853132877485162986946346179915639501131572300045530024856584413517119378068015891238303242853183294088042894733937630695602585600195573633059300334533068742676453477849762995231082816972797124422723156799282035560049182087481272293183366498422743608297956230680206831691144709322581594709699519458793131072667354334461212396675822092562963196265305497984924094740802965989748767796967029287630584441443920974677661964331890626897945924870264407263458871832488606221511009383623339053809645918494666472899504067098448937405447858765747082259293183703966415390624405468766390914479719518174318198335257094580217760286925521429792234863903732730952765044474011943882360181065625627997399767676376452410820095482119580410511518198389505843442172469326775399477030739596231514093107147674573832077243746387880660511925031949441385456851865695492174496890685313831468362328083046822356898984959711420175709717738566507671286013735032434351197502140824947819406151116875657773109571154402430199932761521731884701154676406179559596370279531708986594851762073726409458808438498687828696403753460854400848570022516479407525468250910433551559841078883535230245439731132515435770868953510351520809525969561942197898512177207293336321237173571027808722304414806873348836031350918456383724526761671214895661515367551570558658204258992733807945546464224870736388445118075136627178980000622460058489956602025426920337146009594406507841169809789072142288821039107026725966902197355995313402897905229897702465137172392648214812155312459060208835812247223297667194024133554895487298326787019771898635039512708937900515459788389736681083330120414957744726300388492392873260698523036763052431607856813424848747858825593032330699668220275866745113486806546155130811826099099904224221944829235465090956132957295780580689819532026648863575428212435455493777689972246616575079100194470320649094553276813008887582353929876128475713662650318532871611792488997328267523948752955512781380479635092115211458349407673667503872461744876314597947974440857219570099215886218058912171790232725788829230886382070056408081982742742012328809107210295088666241919850556355341323486294049727672173950715467779244753893636317945691613224047481021523158749737034792926436455492005339034891567377994604488066396765497250071700096147615027705354112931709148275551258293745491781623159587344599343065521797072259137524919392729675936191070433413557177087345268735906077588099065849443919201318249670099673755703657183362664457813799373096160084315342257797939439444248392644616205032131912882844867710521126180288713682548101028942042301229378834357547692601542645834389200216199725864103092138702335560348411849155876338641823928837065954639985361534643699042273346845967282927556271895032810936283730497142051892991933474435194006248812184106125349550228567284456387862701906185573689891833594838831563614954372255611333571564171808749441178610196455338655633910285203691732941499324426487309447327933079712263071047383247794470911407338918509237104179505623688563953142676393771119090751599555368135157628221810640836321098223657604376489222733017391672885953331590020526184819625768024079255501955017632393059984245859497036322442831475509226043845591283209730107376338703101106099902769488236675278975433428337028083836967064814688308720588688996471410154353850220884687092282244382498697429856471524318317225238253305437391586619698576861892587287306070862272274084521978405192497845748525136077791999055685574453587341505753493723746235519874520620881844153064634015725036901347513732102608859785665149275762571248100088320246170385594935404501750238264354358509893067891361657428837272847456120308067570395024049106847681485205386972623859769297635873836477739200586510234382568666617856746977998883558911620240438032185744289272760189363093597843051769986033785121717347886345816081560353493159457712583886872234084546020556762143836548988530409392018133875163971723233774773457604090059969742100849905238295271252426184104470204499134847882494897250044678168056447867162414658317456845991673800389291298826375965265307181571844331176764640217659462256853956226439435595735042441932393341896947554574432986855985076896007908555504573162545052030598806913245056966604462560888635314556648241051155570739384743591431762354793095730142483860485311748553718282539460948644628068102458982662086202523463936129772108478659891885218420719563895134977003483272745147236365944812356100472362547917864986317549892503187629772701639041357969938972401128370441545677291976653715192383200687285735059492628824819894453503706795628077881107544080574460078878587122515247192050034629863030530497210918153661741590517732651796530764249903393206509317089193629329876307850435092164619756113311222260162670329357035320143793239878673162113887426516652071416334581821191209773732730559302732106027440724309053476920837632544187190984046573418898973428235971456281235486337504962466128781924893331050308481621438001560156469089564626593768068391263287000372875255894239390971471376427063330601936591678443039761097304864004030204111398508653014213968076145260261442287685343061329875361666074804177072719921990228688566005341613531138763484286788865560613429899157410419497673984431777877412415388378021073493197403244290289640966297236461535991654867202986198643746633923407524437145069586799104055563207445856377426007062081331176904508742567952054490074490881298089831680066292328490089685775791817915172009536542494090226526574133903833208659693901251073533345736145820945506649265539964057601555697719045153033210067196121764739883144442177677998049247253162073839740493603318481416507243025613093258933420134626287421834297666089669639319373818514225573202429651456676511454879498490452313900561688985510091251210221668570370396462684880880607432335786511976744706102744646547601899188714878780668307968140829112509803722130795299688460254024623864037289620646995681430841554538531470736299823475937951744290973676098101975560172929930373734058175273088530871541261058288051999615658284716540400466564052409755434116756347560390137573880777312228860305058935366331437816631036625956686701451067905130863610755743137580782894234615974229679995424682285168107876448077837213305374242357596931532488755559487119590273660832243420588785773223538568261531311518112476101643291392585008430572505184449719538587421580989279553078063752601840395193036281230390315553253288652048770918659227762195453612972448493878110178659645012296304857345552492577020614096560671648035734207985138184221884960461296499315055659956188950276821649646321334967204741560126181580967086521738676791435445526707255855045303716424523588641954914244622727050273707625551673663585396795445109430433998461958974345781687801455016701287120781016037018970532337778300244294749698261351215008849172455135280085613781292239145225594377196737202320527415087569179558667880881743377494870732317620789201484307213173828816782583106493606513483655621521912598132893593248399224582849721578338363335902634931294862057794559779338992451332201694396608540435425828095551180683568117185989990208068524949087486738303876504955496716437486179077787030894788490708694972822459722272128036675597888283330738621156977262813953068419065990663512450558264454909349877245237480604652470254955668422948460179157592478881762032536464085658599266925997349275933690006225066324598569770114637352121541200038254065670173256572040031098234188019634039605378584950285115557035427723902206944884885364059468013252311240080139416913577144448653568000424598982080157153039593797277643628666715800759469503165755365107858646381195739115633936698545838815065047601081539238023998677968465072393519931201618153225800471933952245481220313342380867425408417757656301005650208668341111707989190729970465368543726692218422242200436694248227616023619588810390463176135790734526737828409428145597528274521865985707540589820938615320660065948988797156439332265671547937950896311728872417991280440566038679367229628628473915764940830830476703950897973551297723819172601733296901199634151796228798397657065965818691208944863341245839782511003827146150620675245082223118076503027715136455663995391210695304529522020704760835347999586588234018863181080509427351354508317233745121269979964549773755607455831069124548608303301916082524490837678501363483743814589205244813908716915639230319730392754666888592698879538641168444869873493670935481902965633124413811857338200187640854495377796338900365485853880856513907844467554863898379395457762037201798217351563442019118797187069036386643631321438683563353087383453160481565718628771776793059469650223082513834060211811032562837961765304856561327792837655641218253106593227662971881480999789820383717594987206306943481914514561753338698270025516698511357221502564468037709542589948992247726050312789289356591403484360687231621273871534810528953767367993305646394406903898203852600605764326393376872336655080537946729511598395279375825617806290377538649577622516042626300794318040078905639462912043510431147988283051145787678031655768578058277205971974419389105545076325205741822303726515831373240714969667715374548185358949097644091959877471163386992790655108514856500766032595749503435656628610586296262909022646217240841637388138570853302175779434376624026994050646047222312187954240735154708795566636639314402009723330232449987813275182575112234415164441911811298405035505336842185424931064083834723161479351830586390331004126236771930181133047893255225186666930040909296561966157345667045476083447568518283972124251016945619364770505909282563398555834215383008747383152865909793090808440765468678762873073255438894522243461539423123781741486109957421459431350455201895748259221381675782116417607398298032333363175738037428777901698164327465532189717503406103357735151811302969922089692697885747839608264208360018029939396392454343646178710144624854140980347827572711886590866999795816877932130240495842896135656667825364769025313458855718617265598065687752004369365466754475694740875317177017647327079911467367282379522073789730967849716575546381571458911592708653296855806326177337649187333954943626419273442731245453881958014901457127772678909021558434244322441945347907282430286928755452627117309155156648285061991215667745451060032252763084518066204747575577183610790712906084319973861686270299296695162571284457907253194385268272085539937706648712117879420564549730087002018599484858714074066916307067528419306333211512977301819940286298286394983487488487996488946432808341034764241497188478641848570846804558789442809242026924488219809563854169370178947750698370277535406732387007942215184971017683124080318279570187133632881502903373666670114298014084183241789779433788950336630626119463468262865861988132274714593911005271525099733601332032207195379593694472878227428674417293181762529622267717967559369450783824876781518602075405383596118767232863310297898896883775948983286313939914309281545040077544550875257327779585652393947636035239925217834477732181336552430336008609815165576309033466006807135176815623305489745631378400092069706948573139438213193672167220340235214400714813586064212157456663129038095869694030146089269134729852493206472256451095001296204136442086564681825737296574736019097146059700199171245746743105514587010539161857019747195783536015365972787916097905909110399569722977585581840077532060054710201770145834200759413043534719506268073460688654724930020007318848453937745069475285801570686738798727064751130701585718909440980665773726741216378524587879074868877068446324100441722133001241758050532687798848513424533846107902488130095782251262034878756273570214358384318329389722536973809554569369734725570718775175998295151925204565306671290541663493014303111475822419947419939504062326326118491279220828032700882916697997791858388737498655732528436728336303214692603338899151101662796569346661393016191354622057599275753874667182611953732672397801800629295393477173402367605975986376112062573740871510274174789834053845446023150315626382361655668591410627148970934094136969048708831971343254332276934037780167707802882164090553918300384698434616908835086408216522426146841339435580141374176642510985639035360936295192846744400998889208029439673833052373655399450708884973503787895859013102642102414094250393871158388727080708447844651730731206588095542471871303982337628421733523183478268913133684524753592617605658819276140203015927502456813448780253362014291927975640793121361004946897773335732379661376770741911079854440768693222065694046226020919286231646668159714193463587336097031295823265572980590229679858237121125930895226811962627503238381027066580816510929856077050969633991611657172695345720668983190645553507227233968556225844812778806498195012826470064112969516456547255745177477064453567232494561567598159664067331356644535081563466490755841624129948194270673423925305560980743188523131762445017766594257418054449875556049036824252666475977484370134923422077933373504658437401499857685922548211416216395143540948699045967799360623129734089018509809873463297595195520930202172008785361757040157686753629881728522686330816505962051806297645145681506718675026973179272207761400605032004279955297697221993714624071040096282665450483711800480544287182078031202792475125869675547254761327935075554823461996448598533728782492057475753253547203842080905360654360925698260498247168630180473715442177419500928182186376827988637710826982460630772928490521167217916536853679599536224783900782679430930049804447893010964445283921821928341377776506608710704699523372695914366155386306071788922914318600455549534371208264067073950527166944280870832413735897197322380024549431082107157616969905373976367925139532575042010206372428059015870723607990023214763645072083850462723454019242372195316047943692344405162593370961643869654483402692141073942135744579998659181433347549355000172212946251781447220913531752797097950667502684558498307861499606456159607642671599947350760925718470638643173979553000834630451589402385185247004371503253025498677402627452719278659713207614498593945961595485842967462034253299394507713810959351601844322616119372312714976747505858809197619561841183371293244048734165249280684587161666981717821331400903823486775057249829969291030595051413248811544181302210894795401003648764478835692461390538726848886149510810808460259405213515245529610491999781745796543634441534980378295733163791737819712556142648054611878659088248235010355382496740727949471199222403421315885374858586446002617824759283039100842720051404773891150792815804726216915977370481359081212046421755107440874002658639882154289253819128757329749096220734548468816397121752596863884167050119986394761384403622720944328153241030596739336777937429244242560110760014120956960843798970558629146892910875569852136205774486943696988354392436175252797273497555480696818207773684697188395702404705168347565265026659369919787610500801263657939652158951303591757563432191069744141184083187853151312882570681013958225934141566869487148658217458956644874229256856408002179037824730916927154443182447828141467463494419003065180104981719447355748126011510168335047743663691880567245217264829718118079883326261163902366595222468851572172252787944461596298788772403053165995238544902638615026426995110634084143754148141928036146019642717389932773615843293100787255096543529954106820088084356272060782314271311387979805636687167677429152633480577496230859544123566878832204500327218243757683464949470419403449148626629606578118360035472471413233274896431408224687825027594534319498977120863203392911384005255368929371743508606153254731154222789899468098477703109310241405415755982921887848592751731844647913658754976486957938933823140091682016485028015464871055964672708083244862560188653644424771688632994242755596275402084040425982056159964299299239337147047853891699353225278727714650114523142177310125277073323197152398472414559888973009096200025436306613731606275527903433084305507634997280004198545422691521598513631988158633857137896339334052797938090820035641955415915378640657218676230236929071940378775445006841675432239457187405968442141259590956499118035253289106754723379593239014786845077452125308447330975274592977937410518495102367259690323666049419657320803783238192985649070844787986847638204303127214223295703999419587949822174737681653319548750932225407448060917922875877524845660749983521413602301967989309955261127166610192876618540689116815062910148166372437715709301373334729170578097545549967119496668419902729219012497596137681517360931860914596886545987029502479785984067670940607731452411920598595134755195274513244042196901458310601195455732721772428883286983954674935337160256683298494886443256154288627502296760734520544150776471266332928012748600290426492143179900023108655909870744512828556950910594086210134200146513616085878041498758534253759776121519583679867770946398686981606833599710786274894006542000558878061066130980935484493409733201066488862697484118446535525565164172463149131031639750211190005301744362183009979183096147219774587104720149087582965038904852423977816920471962056766635360023696468444809549261727138729145349944584582624580522879866939737899711254256550961423983061353301848163061322437351436665685012524351724937804117669788181449121444331725193773511201882522440296588067809052301451375222542899166591389245602719033120603963724864178921910297468033594387993822020750956045824218524766787512614388496318868435284273495518543716010386682199878183660385639954182074265451032075315179490333643012184361937841162872596832014960309332842671701005072571248186849771615807074158149448707379761931783173172516221972264080161416815378575881100866633312249124408725404382667808042262821441320023052224228950001470968138412158432704407644626950560126857287233118122210411248668708545982216355070113991293385653447012058476043273338511832138079063984892546627933882464225446759492575681766762925673606376239603631696561512581907046750079764115965984971717557019338282629582401743814236960366903862710450217106714069465531610703611730226281586889759767623467610351263099633653355988998248322472745240107067792100704773079621830664755080481478345828071074706680017456201409973322375193876491752159505800818716759582731524890490297320621835598828222917908981021237610457891774591644767574242251691963877163959985004622005342016185981305243078640758934385396516561019883986924725574480557518508363351301858839310551407568677873346760496134842079337472566306583784627366344021921775707553611986799742807853193921617394522569882584601198780005188964483129039727676419539755965612423685943026319852303265380008581823532856417393986106076476932309796847137602824695955944248641527392905013919812083260528091526177228566509724359457720270382818712975118555043581766207243908285385928617813122264358084600696128829932948702645395386637753627881954186905139274069204820588230390822132123215013420277373445655941190090363690666408027484553124030199748915791523614467494141737524365507816585411413908770935298055598537596232513809202644640042531195115484131343093591370122046050044157658495469477393264799683337850561111474436394828466443560099854744977177814747432759882864626674744128197922350277630237001656926455123934008826710174442789446217371937094917431465508860108386282105607701534200678145223400952908791688587053049078693924268907606713793106099075608186669376517157261241231203579394742202920642206307839366037851814285564419035852910360703128585866542599483087374372652034602706351582205350089596328107687354653688691426097666837488435121375020895227821481651478262594125984728183085925796725197138509789548427981884495288501809319430384892056765028134726894269132478709213804680054936597769295999537801927882786319317076747853564469974608873773199592732366018980910998938645083585222409059520532635032675702876774085095813837634417272671848170971235829490563878412122121227270047659097925915289834526399376403965287363531431007905202296159856573740733624939733249679658996578577089913373302037929866077675641439443734810717290275665566375069913117353320008665422738302690595808075279193794799639738140162033347903297821695355478392839182050933826518693079536185276441165506256738826654512246383214156143509855429092892834271047479143553435959224318293472871438405726821785047542601676987342875040031298997659860609147723912140651870123623559744965472538871753567741522237107663111702615701035715268298093361893927131946193311280364230498236267839272496416787339521648761869810029859213081812011894226356375951771662278465919210718694656092624605837948924694570589871912930651785670507918329814605361479660908427174679346364428234295117138971104692965702058482171814560188023021505369159810402820675807290923590390097888542198043224667457454460862075640761503403971932279778340435720896541306179825815936203407320590085818186332710451175580490579352585193418726439826307081534174666020503613486051493971951869248324173953167215454841838106291052762715792011211342302724396907059603126242578776262321364332203288151022730292018269721751850447740733670219712949340980547087998111877938879043866420859757512214667510474314645424374879175409227032171163573289879564846685229160322586523233416198592451106303034741028137036452016571029719475201685586318773351591451605959267378942661042666797903431893942596942737349775788066497457967719806936057955033373252135886193502719992280116455499519227307910044806592306989330275558474680589369971594849846506168839352414340069701957753133667153432038403217720597229075309336213440900637352074077205635145687777266215905787390376005795444236867984639473701505213512022197808352532501395145135272630910068946480716337095428049931933235215553381209148374046099726484870479163897265794448901336238777654792202241201033419450130207217334198964541545109868887855638025612848158360481175043392178840878504634884108693394909522326785203734144793202627267970726280879948156565520752520419523344381100080638012003697193306580065321732487708613689379078116244536521212563508780953831810404653458064011010681488886816515032013287129188749768420518123687350032167689289955947226996812106138907742166571938041578030902121004570991622171728629377037104598034339342373120654196233720426397007347107403820236963343417594719509595308758670708699883588367572339172593892298891029565257315021912880738708201473660410228315026835017779373277663115070777986707459404348689365029089970384085585606131441956627804825497374545054236185699062939030093405457366849999870058310934419849197695365576643956736444365293218655920818561161914577022110096135545353569012399019434041247546089909038248862437621071537759868782474644537759650078174521893386560954696461155270563561000099509498157996911281591442341512018794803195953830337138492838634150989147679955399391502315278904713959258330265028013102986718336018312135642541397915004920612011312999107876557627144863305153088874292142549854536649659421178542594131437116933747732665767532877694966483941347393428145646656933345296131530713158480675668001814139481529106720166920311050674030089500354423124434153271370234112416169372492934592704070751834642372642449861557201817101178143953477110905997880332632207762911770392742657094471500272502439534680714906454815700058711106564297349006903196221299423149495180008342477688310011236920675637005085214260040635749738442126296205317347226568746014292965552222654867656374622914274221561560339859945168051766786559079261822295162760619082118666885041586385500899151277705928211159332978102720702787696603511980471509819309839381350360977169546604999093269771885491191106889569288824502592965601346621850126045128454235080119977630677447499408307284835528070864150438512311992859732391715361240805941635373707716267810099681636589343257561060753881956990062980262914819559915000179414730149870591353054148351247034032934471800568693893013089615919366097926459901199621599855273397279598953207047433951285398439408927268089283678301928304299806904040520757503250948198416278463291562444221046184495829185066071290195001218144110447666457959751711238787526564725810994344609411622123038184359578176518107780627759873520807279980929486685684746820901926595958142915540547267465451867602861765439580396592681989379462092174851030864556992578394261082231151212150545703793126351256610995454216286931503825334466453131217141318213980140988063981700030310692994574190155143767891874507422675386757354378756192637424142443893431108633868592881533812274919243904249027684330101673462217207768568191279482584883174093161024038309247366650661961742040611034375450452967982696609405040327612061847801670963071344689782846504812211044682621722947362729420419130306125391232271012577302105135894726227891036861022199985161907918604693950091243199334070614412377968648626774310489003675377208716565956467928971418546992684950674561606994842960931968359345209062474675643175087800047191705747848773146546804652962965597493202868924932332820524290883752966297933566266021742318022238487009076355955437867874804691869397746050379211329641680632010128335928306583830230198869496834035927843268011395185546150534870740856423294770783025721527343158267814222646261383818141743191560368052899159861155923030902154629053235405998164483600584517347048602754804474721470665752216317324265434841426426141480013473891231543951728575334507847228804780869305969018575036852350383673271525120848279399710376516598794852447999183581873054588826507689181041360186828519888535140029617703693689688487714062465639048941739370552879341202509112740703766678270003445720600268532113707222220287144830122538313676490624083948364516580019307079365114932396614932851007357471984634186374783026560170574140791086888064280775595384255417722905993355431508170458971755388904006541632710687163199915626995860264048054874961353266269848396982473867410353339922033495519538297498196237787484822274611054117382802698719227799046845077590047255725949843616434511140993925923318778560180337268740223373114697344498405080998573943956614316877515190801467797924085083454455738824328995976355496022599532638926494170347414279913063698756538790895189046402719849368536499532276739891139815790742381126533523284125319441115693269119235707704900260343353244480083301118837274336169504321644234972762835545451979697803334746580788061833934740497228030416975475185619475300224336646597618511854959749236457885305324890828249504339923962425613491787031647429457805022772355265650857842174120756578500712633648627303657405998666087920790900509775860558098782737566225426048039683766574963196122603402531343189423093467640936137227589963516607683882706370655169964642957907459920564875233519188388728713057325652840324765429976125845091042310161131269358858382113060642556920094782773376059845684393154000776371494097798002685905468807718982860962466075109345884456198229150424651170048356157320459231302502083366976446494121086499711987710553919396967459111662959627601460524815382246274925716528520366052620672644171889200558625088545111080623365858117356208445309966946335619217118261653309437759374255970312480511583496110226001855996512187176816447415448921970862491550304804590921529044801300294672336166707640247962250172931652442581411274724533821514233203532884186782123750152597731813518981182000281437381482140857970189488274046468861528611614598504820027953289454550802760581886461460212116209489970026237941632374698023224127558429665462296645223602241843817080526540344019888072979588963112253526780860456418296356782205988137583953444219698530289012898053576007103159953559640706546833717285395221520099509892412837199805295036492746566374134636798987453694499724260984752746935051787150253669165566928513518066672520203334639578171340765351247959998511450381279731137092721456577737777035957734786986942706599852791290805653242662785196158704436624848239781810628678853490230564109564995605985297425515609207356233891027000453825688439421209641340349704761069566232167524132863423142798241402191717785429210101098182642116212100779373517107661376830406323715628323388752516440797270153186033931065350646798709752735250637645795502501577801933500237354144279259734266941081074550876945053911059892128886921405817001600034873684756718351386828888306992891726661915937796587788192076410646577435254067411851746372873999562039322566663256040190956670113389870157192469211956076650079727913653573914343055648671445787010757417655493214434432696214751957602369799700418920118544740623071248472627860408537693044465654298120923223679145770222450628555510898288750265223483440256741760711614618249510496986429927776055486136698001459400044502875624631949489061376228662367030034393680025702077919649720810794771991392158010005749292418409058608705143010354642941794586541756221611826063821457961135532868444052841543715545323966310133896744870947432386421606911789089795776247616692201985444810278633181116030345905188904529969642108350404789070991099836707147458412418441708657115680195786547241664437785233176762855983623220638477703379922596407728210272330672223804287800648903733591946891930742033912339982585704847560216056508013528318566909769693404416996112281165617262850093153934169580727213998560209838041971090996796202141491767443006809326043911218352752258634565280567575583155162649187148510231893406997581310746997147650111972023378318493359230524753207984848972058395610578602329266913699053757330385908333451342087156476143655598938935765214479663394044459774026827019647209773350525285262313266834749761109474057826549353062272572304930078380531756782148826297641741303228374858797805764971565627582413556933081836174789282184722227061143794101744638573355848902278724447651465045674171852058558192361600490194190392985792186542360041812237296068891129771757097193406691360447290034543919818587256224862304574876315376628651171868929245263871843917282007843944959008879564114797122990173366017004184314302459028795066052990353020917703399453744831305288198467862669890352215888142832073006439100031650347413029801237750191630009432898632900688608325785776341476742993153757430119377199094430131867582365179207320792477829738836394189465402708865011203476572456376322764011111486568248288071564651567112430028359150399181872901600706611448975946541684905844381654154612257702450748276216963258344778489037679499202044047568433724444814178510195323316274562855742886772398564069742727070641648334869111376104478467828048677104386060652557839736368192531830990380376321974106328827154808396553024282171838133344029157053564210880113394704387007825393526446570165396431678993828459844987139718379350174145741672356800460773588435704158846561046175673297975773136055098828106754402702652139604999132580358131897242637320267381620701979112690582120529011277157200871406895055560667598063971664726882043653813838463764306283857525947303444142810877210035732018969554918105244195183679930069186169112528291779236157336136752412800840396870038220190363728437590543713641260839636416938937261571856042261347984331459654953410134195830416073940832155848891919445271612909830731497742796828280292873898842210073437284956534742027300126673948724959236787823736867103984779427414276471361059408422677311012615805238784564183741215728056464379473572477170320998024624968266910509409901946191901344050635830387691317376063425752871752762438395275819533369096733109131326254968296641659759393218881536360617191550946055718254287384458241892057509713158490254851461478043430560879699234332935275073453017784230382411028186746097401005845114373922159715753707986644054943099976026396047442565962242496939559765024455824407437581887470841102250495992748541291070066164446559672199852217218694585632097815077100177174558994609378041223121867479513132433365480684292948463490762202854031042883634663366590432652537025522965784173149924794344293873459082637856485797127521547664866153591811628653260267948099819806976131115243836953088199021241315521826843756582234882050341983423120305084173735573454648576506662754914708227839919562745804275571196482131925177868600801539693780128400094534763786212914149055892127507914324598846856325194871534593600481902850228701455069496560668541069551820373084798978859742090727745808283436786549318229873374391938102016384424975067674356632855193856040235702902320590979353673442803615176642076931362318925365634066424868102763510147088463757541055679045230914663511430331299644489679926226186916085620021710922585846076514857238561564471898534784500659723484723586292569045933621893840273235253310620957072385759986976926580578959039152905330052347372578296127115651639239189721937242871037170452318028723028230901090039588637427420649864831865846717638723023207027059615796261871718772996083762132703227812099800504430373817971319730193113361376753953569101160442893614315580499830611458332967032115943713295915108145635368559044982831264312984160245218172630752998239658707382341858820574158084368615128027934970781027748691597350239913308671038472774480813981426377533948582850218953406248919179671339505753925316974168400422100619318006995978426451276571819017245242383034565381798034996917501936310699806979050204397339032250061828317879622995580633504735916634270957666949049229245430478668640043092449782165733238446853210719375900401444507841506510210978498505293912540514533475639845955216372962021205660122923087243938449593334623555607889880642372405431142891437471147485668935026226793291004299520823734843772569413456422070527471849386462898053573487992075117963561756376689970670321687682245018430943264587249021132194498885880168815172398091743183787083981610026460527779766555507441697262817295142016607467640804779318633431427026807846126043639548608756917431339100630451399772245721670403743958173191890288484881998177970766700450880970744680792951375483904623873048643812621374089648147055043924765991839549229581644021244214811935795081328468466318252375114523656533298794606301408007329715665066167590508027322292818178564346787979920573329560725803367149553788902522811386906119951647262162253123420388459715980420338236699824269780407825941073493514070433674310185785957009939373235640445203859080734673955336935651617005996122170722933115485447219480228196590556459055937282635224011792267809963517362147899302108981095707191401247137815860914896026856327586823376123034001242082250179317239208260424234963230196386693554933100390299713276788857182972278120750598699399042449640272665458335826447942898158704091335135108953819030369455250321438968483596498557413677783893687988461883860276748289122305082459299217878575057546125487900224693281635539415668499900718404155611646942404672584827927404002813131050590294437433753576788441161339045218794692009473020961959014086885133582249985658901180233905714060303516956736655426588548798025126880013689484397143847347020609867428909357627591068851896921187882246426145857194661906761807291427130665989493508280580650495432173787576222331615774456859642495472550006709531867026303548212184263013644745710686972417001572159862673176648484474444318674004583821066902771441301009470547283923384394960388257812183732628896235338273015617989076545575786992900944679981893871044961731728840818535273565241399060574218414762893723078887363546040617093591223451093312209620941808482909963960889989783936707158866241094920295696409785147160851986422458562905979779804018666776821948361235684106896241119546136396225577479076700975659585527174816721699742423118536292746208352485764347972700815159812071669206158676768832448745240584587910074464968898976677364794507006745486132498586540834959570114816422606464208389986088474377151679523471357369733052586883463632670867181819021806600193534627919951014665325587687706213488300012661471549107069602131581574582458856018607084109740637819116355484901877999001184476924929555613171506888870193586181721792441224527406049068255734051656769800891596057485302259492100647996520624348880583819829592259712264818654552969348394575519010056953836571249128134588845762265970174991005535471280365864055124679929389331507564565133276184082687608159299606532551054997497111647251127414510556610734543914180507131602739151650644863938674067981247604410559141329169626761854789689614486048333294679457430591837675455790947248026731834140719836466844946196395710852794153942938458893689919633568087237674103661409166309558596845805553293143197424346348975950215144069901569480685017600041486841980949909027243655960665621653405942712628509898474198866779012468203658338545528000422026568574366373372376997782107735207241905689035629292674626938848632373629057445493121301832758090912839390651842385940558930264193997301812746599331090779982560692551395502447226272315343169741621633610412364819707641295714147497586088849112385059158878383361379664328766575096742864813433000859541891712957967419516329092633401381203300707403510299944990227863532617577839153005318561297264718583762476850137812311738362443388038565094402344635228958930859868904717766152016897052244127413149760031947807330367626963885316351900339012945306112021203346550004698510218703594796547352339087376902211691564692750099448448156926669361770185200412170022007384656818755119983787332539920150993504696371528080426714853250316172080179274638168108963788767019746383888840155487943297184228273779550537166559279217871103065102561592513891917891753801193918638896420601536716922804319088796367944827771379062412992571025709089519670128880638877925512905276020536459547791239914456401532609428113435281647576494823840990145931669776837878668524687480542318082615462091365599921972399906685489150775331751368662493650165330933680000405660750641078266118570057469699016453810833974774657360816819231937866768285822056533715442652337827882243963811907310379890367687650957797668982614468225463705650307246157044972623051594523832486809328250733167117104714994143150274732328571890023867575330290347203606739276259828966990364985035171582948545532015767556815799374285630211586958389484277271647516624414226325585959465353445769524733727962619590223538815686656238894173954708232389163510030236336094946131319370201183117719264201073524126931828258178815587316886548670707226755051244722874580555232153789654271231323937824297230132181221476699286562836564541760421187019710505829388632499384343335608899631005040931242059421472970252469034402950081985758783935640539593645900225939229998575937928015718898944014105447358280978088663445445038658498903886891186971998662233995573226772588565982506483027141456933447205657818824292463929878449227802461196931875249901173207822057687944843394328883423277207542690384398894230041608710207486078869332013310080013469773843063993829626557701384492775155226179442571489716610189968495705534272716519281969588807562489395744056497563511176203703638773011950651171468313685135842151442149345518532452001927270279470407583573757799420890016731808346704425333811973285478249559533847914579572597209349786722275203759415961234656176900983464405358938046343469576503509597573009632132232545209161082656351476437508136724978274355809265444811192622011961933561429715243479624283746688125092469817853762549652570223560771096136042967866640828047034099898968851063248400993134126570997134071798217624330160242570409885131906754317923032757942709908315025151102079749258011020410853544546217927450279756570305990335355045790879167924289650519027750252164201639230904712083801128576089364303417612798933851257683718123200152999812937863198993759879871365818552980676230350883541388149402648158055369163344158375917228631434689590522394822060198066628421377907067206697788840809267335112997137035647072855430748695400840478638494883925800333902393614458873331574768694192230562915790856652973670733222437972433674824652455361303670906483754363959883593558722614324660494231360077923868792871391539610269237024275124031269291904590446570695381094756975955389632282148191206836320853350141022103800722896750480060577588690804223539505616455620197558733155088530691413216635668982015533082088836203484589088349693572741240921363827669448232851983697163814975448525637886183693673515700999478117764068100639365759223969010859473498050590370181426255882983680396888199219977504615898941205049005848466455550165193053712116530725423962282272202074136736885944555769728978017306103028151924839554397267499496615879717476577254742460314190415533723341568501911368796293960244177877472909205296051089983010072576817151056813554363932078485893299855053372982180184486668566424626857815628173653895286289308179290749465264927407016498432237257539090024435928690822106646507510978309748618962411707817753528649492211531419060965141340894053891920516039118444509433647608359154395697549421362318414312850644981932868084720205121639256077743679034529615258628297224548508609117314275318129694670318789382911160617388201786130300024637937451173211098477996751491765858014141210099960511279747192581057467098139382313761270810231374517093854202937560059668293729123622620290705763891565152575130300262847982455296116816916681961173395157861418353793527021184249480810837538369961075437646920777166703419343924699108501535692146636861498831048553707427674025844804544847291932345013684146562616655082126750181336129647145681016947419635939302739816267356934948833247342915043308350512979569628506045112227986393374935825897549577606255080169907690755436242248110968398377022647507210792815875163915885857015990514293016195181549094982311078335573049953155578677682067299179925545802617273346026336618804059714939539697601030532685115104151855425435309110438281914075910783216373010296849401292408779794938623398920006059856580810799360130504656161328778771219072044440791709101444861782877579147214232516461589455670997343349346560097053279075295578411128634401905358323349946452061072474004973245769308202217493084589287052537151672813336239499788872604989548426247927202063703810613491822451499101412277762098708297543232476175988479295393976862891712518282965333748364456267022738313369321561645573129159268269734676198774432843865001641261134898197384105049874004388380508135146437073217434510648772412721894857709126971292272684478069362140295711434025667783120832050355472216545775556974647711114937833781964347600389194911395539674373927195016865125924895924124760082395626265789901554348573197160974434714409394673580020112572666355831187919452126595125659535728103316548931945445664260875849193407334899973631439197427147626938595740805470835055164293051093209412868560000662189072810883168491724624187662083799111644307566332364553887434988467727700438911098277003641739194989030441839080345203718960422397739133655858948090931938510371809921180086990763009273336390721697496876918615129967495065920986757568695928489463179694534163510411214577768110368360080285390248376146460759848411026914410038443800078331152850897586551827140062063683590257861070605829778861639022640277581612444511673050641092721099985519575029709305267109582189297223481281351234695701221707757395170973473029744821726759025533368671909005467251823488540991488378051694115493815992619776614296465421477695135774089412425831713086614621171556401938346303969082417420639560568741825364711178674812082475835302685398934889030003211321158222140506975084598575764319671287666732728417958245633572151467006118428781829856663501040661871120832171185807192878761495458973547528527901527747666626246204704909519352697762977690795277685948636510011596569724548740712645157982406222770306710216041723596397925409146526807820016945485491490684989376187826036400209315197711213424659384405233331334863942099030869704511366715713111172827462011333153607424743265759316684935745961804972366319076961759544436176512894568173676834414109092892027738883092476811978269266163700815334725715545971559981927610810319807373123174717416962054539217507160807782850706990933268650960751295715612131087089416078421310787560562780170396054026062429037910619868106674498169318756560904830753645146965197282595454513502490825641460783133135622001365690680042215799631766666561951129631741837911579076031663439817934000858100648198244298599032799883234649738976580302004503641295706989803916167053181828139998989854672497072992869078822236120905556421459955759436609485342626312358526981105405159846493416492955987666204815897198479521083947102224427297053975414212513184629872087259086445805880344692145222989376762797792231527677479885726626866526419584555648669908777841031174994294250425146887900306580246262911727058023233142854863480094756475475619488897399126403773494740415931288882254574545329104549192487684480265062064859182845476167301524254690483489599709232378333040235579333822603023901961443744751574486108566535893376674630784019834403541174089081161608679219525805248523889155426672752536064017035106619735935642069003429405263828516832607871691976768506314808819841622183959486417648713352989651823290224442777410938844365555041661111031476261762827272231953929761398543808886226182175163018321106805589853004382564211284721552598535147291486812274591339060784287196046212735070800305228047220033697621427560320617097636854040874511909299103613602106868984113304680183035863893326991807373227277109191413984539405812878128824263360240624713643736808434953234017547358140598752984453309256693923720032174643740855126605843253149452419634608960526512843734015629007655840583959098234811043510521161897248543538962408448362964457252145070892374960962023122028455087876496872648294253839606778664455962226241178355702959320972438410355863366716616951624170726547708469995262268282819909510098801337449499676645741039272596832070817426557830093582740524139423003323576445654126353907716554301333404200454440025255838577001618739639940613584597571969714616473779820495437872286201913758919753678159426401818466247156034108811439772793791166683831692245776988132464629398937809184919909559686850546983099236340832402266317889043495724199117078518717787301963256572437623722439539344744336030159101936471216478725526072308009201925153338165418275591727519374026718942935811713553368016177651015161459624311428225419018289773281850428951145681079150436555200232539005549545456715115903915823236539351139051461940701608207280599726413867430439110817953791083793201681826406489123027502461182439793915028960980223890513803317896752643416168411868400078935269466102294611916709325953981295592290324268329776249726816588167160153980933108069193215596017444913459329605793541638278191855588901116697201366340608819100687072257116978166853329084454336737617334414907952323596428848210698640408051291922413644363789834579520330737516416033586352496611861807522869448470981342773103826231538994532364250659427617307263142216168668254905703701365872874904512864177687826870068807854833806254513783837939652279517237082807027841877347425789976995776141773575629673820201293159167932800806958066245831946641389305242289256171823914676406374588646616350947954995174896308495097524344014706277227064010454275333412556342236303863967889191644536098729872055902628107045964649757526557154465158674299778704987883185863563785157074723866203069295087722691685458537545114381173818265769289089182146266114376536454106682660733277796443393097600840477125607300560924157862618472638203203956860030947458921462595687075912743717157014346276909286375336810441443982264650517741795739427770186801720507745817924370801104257049644467896730884536922515648009223176289903877881960136030005354112562193127339166382188539997209465642552249528717362785895836380975724509595574853795454306564833550304150771548892765049323982637826011123751188610692699670848943319655991657936985777853155155153892890070812104084683003359954060868678493876745317827096887295639127901838286190598235714110480145109764986316620298435202538707985010462032419273562820055136716133875088611499523621106352742674315486183652989754509126536466419733845819981434184088982964017426669223707252587703753689713474813867437622450104401477458237666620360697845190641281797246800782755635137788031325182645845001639596081121595800054612785269620592614602102112282379508525735715437740236733326498922107879972624275054615193988198865208345869236787145040389294812535225842188614974842173541332434864425133925171500499566494676788308524336709965429128131008295606276438475989582903166680771895571065125393826486425025255603817216368192360707002077904815204205450679374973448110698284378776390785235578774697727627906299606910358884996746405342797470034061978749093303346170607088104413623323071245385461558291429622606957150327968672846400169104943231266757552022022605533712918537054139563783124919776087963035276599262150452721603824137820882862597009619401937353153889874168388896825077941222469940427840706165083658581744760289815376202700234096188937642591292971228578909660884798658870917327498242897271913969614668539535218489499090962851953250927319480219108808107603899313958009663876988384156466317215516200034291627879837372179511453498834350039737817142008382475930316924491140714387997532687487801689471942145569869120527229370846077410247081060554381480629390921932777267013403744398090746842989104059044322265572480793746671231884837146340838642099113379880425927953523601645708744976414781704746238624457944810191404760381247616868060567685650470469164669630997862374655240219339456738513753113770149307237273969313272576884068009887534022812250704522654782852654374843423901624577347974824518842845731484774269325025617293098909268668367701414059205110517395622561518650323590118020719704357004190841410989488249436243179472200693409547006483732394721447524823525581121397340870012808627275440963736221813080154682760070709305892064266008109992785492480047103073942178472577461370158103994934671481883608887304764596809344417286866357419020708963417497223544551481813769764936325433275145061235508430456040307468477791635660083969846798818595225014151794993836212753482397892201382395480479958406586833426977498573966996039121004656324848804231778283575854290644740839746834588094126604998765257854638521071421621563969762981000054729212933150665109932832530398138524685199463193436586482732228152388537675577367869914386808724491279590761710448437167072459940477110491065569017626748956470706397185266523775255756848150046290537655313302361374942030943966592162700358973166218822466536883812312600110929167040224003318217141766155962362965669549448333585316952907860815186371045954844538605583486530981025437423053829398848888460140938413736688305251382214629237830657401480313439755591703197642487230404470449155434510941059650816508982060703272817277803622659311178743135318823284836963571668583489087356379428313096562362510119082814607922616864063052058840568079951529222279693769196957201529422534346885992585561499050834451659280466230403883086258512442645931449441692917949713865599398507707774457124184087650796872702091587909715433012311501895895409767488366968778499800725992821507538408790963474513815288569434951929179581572618210956168623691409573806382338188350003142707046498414031784124463381999748909122211094246544868632598601002520104066922839418003226911676467312268522157483754890427690954709183111572213878241366432935872576961156512124836295995217467181178256902435632773591687627283594041991285697531517873640844057646628437368292113535870313910013093689479706088170793456405164699456555211288992299895591593375902075103010261987664196200569049380547467951724600339775282749972422556591185573711465783328068178572537639490382970158411030186743775991049371080877319308079135430721018241262450348184473295263366327586002040094249198480056810714483216144671592110895464586382690040326053635825606029846964486883378680399507396913765780025652583930858486171034726670904639928970081186181123984814773396913819026490618919267319698384309311866672664051789230535799374382377932907093457412665002177162837002928405946999127944891832304811456243172092206392386595143727418364985282207559039659602873026089206851126688903468139529249602046010104751796804304624970510434075991413363548877285656353174980823094654026610802297720101972878150193889509660719821282509925813985977737030535736475940308155858729400287813376036691200948559796814007740087463823196624259219844897179812155024750408545604895613608491855470738697471943090618763342410456547645520099634209101475386113455500419291061622277407471541687068423119915743250688349085679558866087336637358669748632123295686205865631684558738973036020167826867332952387459488971061999006624714875044035925207497567341187057510502664957794402692166308499260415872518662188661145610591413249965285267572314558463551098441726013771896382917173337897130993405501385179205357455642177681563369242127008285148488434308213919212901062280377826565800174687277129498569039799188027299052045867613201045182944820701659542859973004133187537704606651624142937693904431403322458425960580802420168502406530310537188199066917218528366579144059427842118067892062165743889868691837706789476166569375788123229435616176943258111009881562716782245298344953176481112505918979711469465016189675702696494718963690195591102054865829505698123299683542887279532845232036090040966262177466097604319112339787099636371676984218221917963169507681670167599195422851065850496332213608810880006928875693428151256041087023496004246396075052001993752090302463199347020343365352210461225801237163805708420879108076636765390348124313655848280341841649193351167899805402341194862617893963037899976606000987270943781382917254304011063275884652038209901399618122957901029437371714240699829294704203845021110978801898752002152420395610561535373005075824057623073869659648072212438467353171505688341926740879414668679895519103976150279061475638709455282844050784081290997213813991176951930433156589483257700238835533718208487670747134852937388376720573916321142365656492311535031496503850647401929556126688008028479132835567439141538616684221093516944169216243353419277057323673249582033088409680315751577227258156997233844661336473991898918467356002513223306120390164444596616183792085780699401314174279837324811578162773985127823629983563707159607430915926990976988403434014735702807412515821594986929872082748193190906375837524404607414263469476668293670462594418661388093213504569516739919780882285317972363323064867418689055807578383759154433184652636244761485186206325139833704095602684569516748660263889041510348268552134491848859600356264300765585772306016677132057859561751425056612846373936703246450318929940780275231935955318663419385694270489249210721501764158054032721543237401807696211837441917990484422971680466738228098340708827999751951660921386730457922611180905494987122289950341771514754379106232139467114324814780972523418556483459700535709613867767371902390963115787435322334289237087463027171494570913418232274041613614877100879794100604968672921227233810718656003800946950786633213288449551559556342590526024809719794438859904981083598289936945714437731799161604046067444053038140542062830642016098055977527072928456077362844533771306859742250036433577331680540712416906313085849122649302074584265786908174942120588001767164640605222139028205621093216759642966703102359297317429733565747206971647576012298675803563257000096845364887178865935155659942485342473922873837474722873947688121144112806188016034869648081658286596764100627617245856033495121274957749202802694939928416836750553792042994885481513206631001441727955621284266040835061165260195773713425775285430565217084877331197347842255744558368872686181837862201967446234053306970503900398402066951656790249543335181036899448873009864395800722223193026631312278680065591285384962818560212438165872808795798665853940820823450607678057986333992363645295789497928854278815453980355596715903455247726826878126443339699447846281019533684620034513726949385929181018723716163900340099266262434796620757161118648802610494753142698537565319215995884348387220967702755811404188854923362819146757252535750857709341846326869466164212569773492811467346902091680395787443401231705337596766056809917190675467618497233660769885970779174074167725808139410004240154060247585893610921863976797634682213770480556478825583932698384696535777623769503672727741939418170391215808842329257845890666579372575737831866555156660958109019808657541685952301859559708010090994653704652472640362048759184003411866260142950576790641098290768816207685311798755799582640793068519770296530903610746975977755016699362769016309536287952550463139042166607328791813122121376374436044584908233759341591495228478676594798460095586223383019451914295336475331024895198138769715436998350136805076657775116509174189689648883068161038030049923172116389645943010970979603951193282363170948847198171358651741994630188882556713286287679126821360212093650080284462918434037871289989799731860786606903025815326793479660217249268910394192531081711625830731369647259338692750068317665561552208458830137397345536130524336885546656513272494269201062716737630252932445376423445779553090993420722856401598256269851939575787913034588147749221884559660275897385047313835915401752176940549971192488557910435687436473912927679640787841227287268805133581496835052817353758523446020838737549172092394357260417279563724466444436184661824935785941417352642834744548078825192277708368929207429794663874749759598964996728202063757887448019424071630708702695526002315161035685040708329535150500952571726030657924575203503154921197326362334524234214896621153797201054727277457962209281653003657858216196707143262266013740159537537686102808513944321651000086264224158873748205072163552952286012237184349235467107154443141307091155762614945942286889904321217373112262338904480273922215020004110583672767783142429385555033133285976040246883760519106562444454293591444884996789009755465230642185761408443413253039168727402801490029314227271628742121074356906939099500432867138575407326253959118319871102628657192509040222990665227283072912544146402375396224734925190765175575626907786760598170695095757906207019561412863461744640788447591749893230130659380295380351646293648213642859994862482617463664726611676120237093679053140431696268501777975921335688041745415469654622921667289232617655533421473957233899826823675108349545020805304494664274059044010146212219426735850031023396335323561316928003609345283069301313406021793746181166992730278975355308515857085478015529991083821124970603047695502982173397120820235337269690967291572392661975520618610254583435107148118475734233041170940910475125826524723942946694596103917520356912407535408768628686287427644567123598506605987415103168822627878011622829022926223871311200631264017522844260764018547377257248611180524786621409710363273910199121842501596205687862364154184356101799304282246322670857430678183661856718009642131989294351834335379163807377372002530138245263207576678176360987305185042850526822061680296978957787639892615663686214385802096262483758987760714380431980789857279660563055639064497753226053497614169235515983629553321548637045598250417538086212403962961212344408194648908721237340696571199763134367633263997890019090898324886645852794912639688022414173896311947748510316214844558915507630218694883044868722951604975314425106213155652079667382232414151285763725001291690232036623269490626242487000672569800336276719131872469467409528754604732463528516462155291131742289625400964853356603016318882191393445715533029659897668007352206348222994801301429967138340114764064374312250825886917827240496863487580841917893160863556140323432064169603317479389164692345470391257059891515280910356362242295463399503273198436374063006449091058678825778495569631998889975549340811211727863834507045492882901900470215887255575318785816623774677439225748854393048118239680985584409785854443329818804111290438101625317401360186033516864173345219201430971871307039339305390298741327026351508355460699191639492786527593810657073201475402439303145708173520085521141151587776928830644589101372388545593077701713580490016001468524942895392880373340041461057158105932000065622276055494258272090818057681337228485835737347534046120961795810407918504484853240819199943345555398741000960306612717365201964927116296162226605610727263832093995219395203123958147626817368042924596877249719437292990801686118601289259741719728121793336620678609113194187228627529521404762929992909172119846186754977593275933730963213695461638824094175568608985735979175349599185015577909871008095737848946918847111572528108875475704607855827087274740719456711288778322556478718173914218837085087631274042429805418578868020747050168212620658779374518321126447287371483919506907948377835477113061547296027454475929997726258355138517852610271255263426634462821210284072776956699116840173231969305708613188833615993466385411591801549375262402149955776090932529268008798130379324817391474748683165318950062676287250917098151526377206055697138918601856952449118094588356235291451067489802415226986014245321659142516845616929362126449666334026927821163088913272340631275432504565731566116956640024387213052071075373034807391474295953471421363249458800728154659427817288384270230563634801083202875749208387187915795057927587494072235629209405400536854958913167242109214520159822250248760891019180007823904459284622419176614335447203599591655823744906685328625823987741798850870179111432204465958616675835375180692117997269374750157266493129767006975732745892180640404670295962151903861300906733574290953055561672885657598306918207811053891993723811251350676431866913440316940627845326907642981556585846287295836487045712725977541474492914943413627765004022331488213650866143589726836485379553517820719629245036972750081046507693979517952756877963439254287311011561721728609032013693571060958163892740587587611515142624075658139012624566289382661581480000002931828197514883261432973061315661607129508874284405427539647516161309636413434596815896185160663224037526117065003341910872637860333115519731142136571682208943291063703107609685574394466380665744781932458056327183215085951606972835542428303627761333022029360300360139040308708421180447377217246068613023608284788928894015731950309327250101959879659339695058750771408678762584134123432192992198213676635096816005041793217094406519729037624029182710138077216531403439369857423438490371248377256433684385850471855689201084812896448886346887546696346343694894816750584112697285151032939881138101483872509842439836430311285220399350141440692737090760626737387084892384370940310284334477913886795441547817792223576065277361748799381914173903041592275351690546748558159857337836342722385288960720015595856742856949014892106111106009414954583258669003529041895054404855993195298921525190704944089482779324532901082911981655784181699013639281213273505822460567133317307084062662408535058994759139963216470795453017657208730040209541742326867265073018671730988716072215815826598657520598875054318125719284086041044072166601181890237020023509977200547288570426349444628719513223149444702304906975965176209204551084188501396107640712943793384545563314778998524866878776620048765801895498118877464452717609313164559887313107883741626892290922789208652589284881545163252404635119742454439562480080613703703409353778773942530965041950365203865564521271888466219747504513877200239132370617543326106277426459862507530327936270625295058099972933442366479339814654862461853496866629395854719738592184614818633098523758116457641327057814804898802135132024058504785434240996555325718565836701569817122724269650576260586841816968854302374806500997496637378658295944837425396667066382146477442025622150314929250076518124737665343068982799564043197086483797353630150867719669786907914539267091629537191799376965335623283997584008189416885571626888628190656272904736805674166145990771304037364816926120636821828892072555813701166763728791164086445978881119347219515290959330352212621592718393241805676973639352157059979245878714635390488651656611453179664541032192530137663987397506683878387000976482118360043812310417675915298270641641311130471822229828376578719587327722658763767325016514975813355602102537452763095288110630517442899445887970622970864460404921778758624678189631987751209733445349425293857613014330803810053956790330681676254006723416278734272294103121834119834358567805617034281768359416325918698667362062367506414829622263314917682830930761200440402969195027473652170037089303880064005853253817145263540512828184734006250215313784198586934341263213542159805087172921017127731103715298257147802641987089791815851937704842841820386131676761562955379691462930999383288218927337842401267079915026747853617055359722964735788479133561615465182392314692148554837021195639467797711605033550413231943186265583594305849762451398125234126856634943967681003306560493019858505806751863038141671104509522387478997821942618470114102200817851639267632805660333360467805359244192790692116546259295519695700140110677574153838117257007790136752376949871851592476027368410793245605156645756148988320397703194245786177577527084998527181327741669361985647671409180480719497599945824637097955051358158362215349179142508043262230048417392820232598284463682441035144615042081229840730768872960658131462976448297542781746829591732119551789574428085943003962446225789359177011443662037331296825517896552458793923487189021815449234899076118177113938815790679062279048156779144409402239088762083112938039315561476647366197403859873453580692275078772433708300422099381980107248167169197011946539396037216487095507693225254235636499771829846317994729447490247065813950619740497218903205729721592303570929088689727108797227809889523697304030726610617771513253591820163792180193575923396419645315389487756225646094184501804113509157200323473550110432613846052920072740375308635890425832155546011664283577078996662032400919964087603821984009229027119474738008260685224911464754746995560867958058878951976149543894149451416098658881364389265756765034905463619945614844886246748860984669252683159720417945925946874322339803463888292679533517538695787611315583438340267163899254284464876387290737660501333385811636686173825777686267246691952389491695786904075095393483360176544843899231914996781691658961862187149954499164017573645256507684128869244447525502168626327544519867140634553564989962082290978717898906743315494010211174637459130006999176798823361936382734282469160365931957856544974440019793928436978157531784857311792501508267632094264693273313743121558881835605365704653409043388660416899664535931959944696125222123958058788714467854850303815292370617726977064602329677187961997262288959336417577807607170978818292367704558097926146033382574629089385632081909022191830535151039503271056421796533490136797335163080902588776002147015216538144818362714913631398842820008862815672490320120506813458701010741930044958704556187012024051004563873259291008047184188822227458667180650072187816895016592369033102781544287178279175174600373278300664767122898283557817509446455129788270397807960480745568604002975793860459197974409449913274820700958169323145456502043321606322425863088141755965301602205264419762990412500203432122058629704913446868765756532678405521847999208611228954971572951138040006063878846381548426717921605402114497721882926582341806517972477224046090172401396899837022770522159316246404118795027260085698885067067380168376275433884816610683894299905278075736135193650529469405672155261263407638621949863995505028744857461732013554111159076018630167830787642535775152174062881419573407065371908331109033348145892033959382788846132959931210080929618508058803699197457546167577967892582965360452478467957629338502884351645755436435341182525818575524205465757364450234657740697772523469719580078378763046557597409741800690862898440446984739070304867715193607605201315245115446373884389539334392422011946214417546101994254862010193221035614014044836851550236882506381454757607057505027063360478382488075761664500137998722845601719052841001015849077126989397321116753986657611967397194202094516686413607280529880699732962118995977654637759673410039201674077927590867610816634954272735418475273004761124256186725301259688322932784581017046278851344124340460036511413046173629136839768646854024643057873465174976185258106744979644573709807835601646540242025731072813751471691027066055506524433058676260052569701157663350613768450988528099216446369941682765863316307590521419357571880622224500944816908422195617747692726998383855507673763650546197874642258724542074529683351139549928616752678606428914006575259841142476545981883887289232449248173148580828137700595827407475531817179743185169916526865817247232473728061338516437103798990615869185338739510175410524778339448867095233655168056619654121706505458830704022767524322974295057388216205842874323363609680228258441860321343096540500279487263813111549743831055125096310252327842708885851721968192514773847834591349678663140987980237147529738162441477770355269549163171564582217720326195861408058455785897255382496167979351589718754522904628623200794053235475112332180056628433865233225458559518185469047988647406351452041384401391666437527333638779861412740395531124760339551404482957604175979151034748960944763699817863919556707173547268502911893585768940395491799591703746320529668698995786471299890989910983332528488385352986316108306326447868479972352292401556148453572421556349096634365907590514353993318692379676835876113567219501759683254719010727131946576321773845344878541348812745066422018150362597356964753422743108447553306599667889847140687890240142330379729795948364295002661883222316169646436596694129560338375589449841999237423865972375177332793115919708370004276417173256030095316442810198853929205398330052598173442969275816724955616247222034330828713648837899147622890808038075434084747913270055520768947255024574816041387234488057202623700586094643250981437384772053073392189557891940150362867906116263757507599248577247522002862974274039055232092466845591824194772566650124169949662629884108265335576321403566373940638140782458388701672460303330300503175179000655088302628504843922669883554035407521956333246270221882782618455189391189146790948136743242763122626262039392155195092692953751697898420901017499995624090465404016173432350221227016952647295403728701658699014086620253980100120532645274285738592682092648142767827651254803981394387537342239087726040985819014314768188564430432471048221696845095333068909330151705649275836749293161660950742299608588917855890575009596255238766032662281981925096206936929829379263901490249139293496559017811595498637354090621043585771743802371804596822299915052625741982514903667349694414913940508282741202668940150826565447287614695940556684134074659797218052318462784066196625044556356600534745757944560509824753985773508905844295400428346373339763811743628299483050257544857483802783400052254027582224091196878746005944528489393948448035574196220537964780530282442261886448754936742415793585088926825050072355227768769908723058630569930226752285240917355870884799125482162658727101377897533730671126933065536159301445103280382328046305486953876209375178026629604375373698442282067839135312865329328178368370447269913718922510122446551187443721893868059584166986697710706657126719234138606586413736187990623001265935115640444125258895071700388665684061306225295527733640245862727200738945169715998078004702699871558551564991128109277324575384067502042742564900210142087924745430320814291482787791369442341671258901576229128784717582307271347934786970591799304839326845410214560958731632076554673210165920147826817587151295980858704495926713047968812687387117254048774599759964539390029424752485959784313844229269452155434565996145560213148990542988713907731089167899177781546534801765603295656024195941687157205006081199939549796381086595593082267691337033096275505489548334491651928533967505175211581569225493397695601630278938983566959521972296141089440110993641288439938130621287031296252410620118819285114758746486880618593553854680068209405926885388023867589510114156929305883087292820991086343978770059739814019716226018959094793363892437904112089365982407104342030304179005107013539537984891021261464860355902191023423771080775068797316898887404244047645570016778408396106836765634900448549628159810726273464656336066306627297510068183868707454010047344428136219091486311381810096159015215805853974216403923043482095857407767681334728094018610704002174081191179984726103293971040952625090118143109450653453552453808928010201948804769771106097803118466861412604965196797197252155461742867764010777769987524270983481691612015935742744161041339101916528718689885489937531816655664833825457303592851654928884286181229303000091474553778739680016745657339189805131459238243906294725451325216322008280817851010085503223462148447655558672728076876357414885065388353091054239971441768142112064337178094818660728692808784912826028868346297557651956375832183680328552404631617759315936319756367598288652384431386834160665132419336217343634892286914043876287023719287664531589758305043232867365973731472016958095612668542656070241162975101860135468899983549507257807072923619294733377720621728083818744003099456884700109949594004648262477333738033168361346783386588729162378329443426525521341757343687398229187791137742750737119468723461180600180201614757343943728966319775982729171675197885923511817951195579906371585957802738276390115963039867223387157389637596245687679676453983372245169272053445241324426024508363682816471226116585309525130133818922079030180493974328731054355635752769739837743763897550736197406733884818231054295904531967454158499650673277326130298925122435396728014000330147709993289067322265165723743305772914678628702921181467383010340798662968816437284862437870497891130025652644246748117001960402508754175142191279374852345901234400204665125764252726325402962879151448002561432437842765933584418149424401694399322814155107053976039184360175934346222507261345802345465489189843402216504445736112254409407228778562605500518023075873786014823898254294866811432173119221714382733713656028131624118700883761672902421997545670959417195540556322607240893369847608311633812013021566949553475440759618886814726354818825312084773031028699626742176655354414252143389858703186311246429654999724106983483911480858324044848068830928206862586685807434817322363434721705553307221538881040086489932123886774479560199058610067381800737418335973910029125779035250103246535828097243490230254856973186685344488773672855265167715148109730332954406706093723422106692253166216371345823098801047180956959451237447693164270354397162967144727133848457215598986446908082241826554171100663328622058753243890674690083243455698563040038238156864793202040893022621992992223009412391363008562154088352595793908292119563956693797817033126749510339552997583205564222546197945885172671557608103526198796388842230346438304953302364901047405922584600211368580630933971288062574967248168618669073687689825509043063620903868691287675171183307967668020146798596790594703508482874745693238509765274042349164082052512979667835852721850583176453895254256845070079284198803630730708727759420462601140473607491373480001101265943184784590266516795408093932209894252342122795702703211720191165821104703282479539959266138993966729661401234330829596703081745057310858762752822429439651857650177767727537136799579405195612605515336886085781467570905756256526988947554367113086189981243359851326969541572102074161472479831951989093086247348866525183515713832586296620485796781390569678939585974613969839211206087434382970824283884663441170472301992841091939933742244087099281955231243726242811265651238034865348824991882735949094977067094818665265995523701337323133691761354814718773606057605729528289791423997808160340842928195201814510505860063304512086581291629097121464560451582717547926621784258856935026108637442199186249057930496639579534549183265956918820047784326016475257174803149648975152305602980065509796545365865814715895850015537626024202340446843265153243356445651484575519712856415615206944259304094471591708762191997905622941163289000387510253304470763374593081740061981764012444471527992380479006599753926731587439644287898036291281718239680858193045497733960215275299738895272887238634590724185550103205671023893444353355162675276915384829890486969975380164217356937865223713537693746339498924953373599260934107471614614244292381186360457410683337826824158901561479907284221479539325639500949227410146184302803922044494815569038521170095563921495510746919280612766753644547261830463513169737898622771745246279025636088973120951731505571845821364248362736141602527256213010526273108275899610241165711266936260522452802274636079653771337011692177321267439019283099086212981610560215514523342476212157972375945881563976035883055060118236598331898151637377124042152931721610992263455765441969816869502484591237306087193274451382022770005921659411151872011372592298606170722477240004890927227846072897012021940618821514939974367848920667602012905798038745607620034752751903893024808188492314516383401210299231528855264736850085395621721134390993411069492517764838488202976058633464903483763596775965450313891022850486338435818332989264787158337197108365474351029500446338542310527234268240742800883333514437730298105302136030758771097663342637879977257029152034646004162780415880887116784472475032626633603688969122912772365035835324810236692170908330400293392470559670915651067201853571748450976738003281677425140753564429967210003516229231503716197259535566307351983624430459531743480992574168532108122165818958828984098338933192690734220168341662157165284883416415957265927602136396157463608518669203255480977874220587677119301603909651216214470559027194193529796644496270592629004572512010091572400018424259143099968843963572575473523167190968367362520733739003975767922511139294283208140392323976262446936485823093093475411564339277002784112760295929212989819588350501327667998078496751552482129928734404799085824107034739068977635607625631022961373238172834616982730689001727909618341413529284670822519551446813295900093624447032977355878942026319711272672387496259974196661909716982819521649157590104915104638140886180460718557230154923563876491344285182301551775622661476889057390670885003727378059956282028560358231395190126685727110251709379277158569273385763088406089733862444552763409525386960512950950247882213915281851886285441574421807522635547927807227767885914889327185148664845590862799824182475546832560955484128645693549983103052036796142881484083213857917939092469969106964769097932493048667821124821906045771838238235219153257892672164668132518649720471080008114984740603267033862056247708767018250355265777875402235752413211828018514214986001517469814704570602017666024778371664350874779516007820020432819726806888485702233092581760354414882931256631897395326998238314863511931759145610307330987336021426120538486887977302468187825204460019952307555908414452249168712064568105460662369174410419062012036134820798461885763068394239342468864482709156941099004228750534277061804180472203000372196645012284717901036456089861931629702647693591918007808665316440979054551058231752853009495672705228013504264924693008848796073620095213353475227542166203487025662687685127182430590943139238317553919601393590774274743427105316374181230001790130331577964724151526139460419131928013133039934249761151606800771268241794963989929767843857626077976669522381282725375264006675391089554250879878088760982821779158151288666708249080134580963331158135238960873101963915570840857699713327325103543819799913621883017432375170500758211343611100965404398487638061314048521912485139582206398327488207001516636232345579245614386103210876651341795764924301075578733401086709768433961922063873646964963758069123667688299552878089398605211008858850669679610279014449293408127966857321709078352437045667736701930960205891067505915433702612068366055704150579518634576620823562823924457349996325617423905080244514783174428455398823179411181233002188410230321565506394483199998633661240372277749755582075742154209456046579456818030364505159754843336046966024920771876569238863656153365516550822488214730523058077857768971086936083076444751435994047390372813622222429801441304725224105269111195008503679738389077484572616162091412086497535596384062127661828272125747392511486283841138329322402616182221705565268863029872536390483183982430455944839499879557878671364083532706178390314054331860725464013007223096609100505758574353431103520915939893480159647815473622334194754475102236618334624425842415075202225421214552938375345629294905000390656315965762586059908961813064615466394215772012486581567553234668150583131972385644996267935527135751193485275482339174008247230731982040754200368101318261636291301329648977321470178615141068909578425839594252504829810293217772242528104990958497808207166630594816659295479073241397092044686337656043748346661260135780938913855344053802854261441391954970970227815154821110881607475736111031362630972630355042951488839369507825950074443174061813547149614230601480570639748861578337974719186961071984343891161590875519589214974174767734758059666858430385237957133315663343730251058302348763518585431699902814995045228668696630738896007730202526663372225587839539889879909174987145497552767931108606466410436450747196409984052048005117628302980518243148554812533501983584733217972524787412502819495779397527833628350874093393181421887108253705011496176633553122763160138269182994199124693444456862798915537795591611147988329647855869967846428257556335597925257377979382895840661176608153695956833813264817132939834827985477644915545312573201372754165854988836512850001443097007207713674922031625713559976091999504947755013596461616308777160368138620411987876294495790358778544502141012705146787675733275353057327235209001009079208455811832711007553367289247601955711914947969864562075457955085739353212830534808542570317064173446342679312947932008315660839629977368396556653451732683197580524626647380322367058307949584181300230715588400371691104024737078561874506520362358390756690893472119486526628812347722610957259687961149129378631491175668251538277935882030278849144913117145445071401747876724809183117355334579735113739305033931634359739784470211288724879616606524931362111506714308334680833308584128083013923013793017031064773085199614523104345210318754600921835005952634850350533277389624326378520086010851064008821779253388745603279845507317756596440407468231333851063439113962006457255519262448980596105080193647076804769491128143299467057726936568784945940163211004490905939679142546293896439753594828121861231906914843861263163316970733416092731732323959553611331505038775261676602330456433694712170121086522490846206066000390031922098100973170038236060560976803234776398121075661885627156815130180690593542192435426802826452440233087578625201533835842525488676087508275994578382754482675825394440888745054672665840565362565220557189875829939342120633957431114736555825962425899452878688600724448383340284066076365244582100296454974324211972764874742147642220003415883372136816467752385127880408808555092510630710348466205923982359761405138914206711876421008559751281812170348362417127119452088962388041361261917409876112499438151971700732402267386263708961032944666400960905465721022067286645946102534559088517386032136433144533190999487707713402568249221138543418390649393088685855969179200406286056724310887667186977590809896470707401208786209279205116430615419863698506344778532990388435283327828400503383373007438554492221146049368535023523995366724451045823061791249641418675658610022440301057894929306626521040167095677498075214826361321956936595537586806097183777916371784127080314665605620255872605893565033304695402808160736070172785928471481008149630647566068603690170442579434827224332881219443019795587009893354558374816239651614940045973761509628216579665820645022715832533178217258070311435110399470943636031368262252131759986347476599375704771270914996309449098688410615053392250891189621729241350846800492828265348801437691401053710951958237989291610346908311078521757926950767425008618674911824857590687063630354887947463228908480089770481039534914055187091671062854093793222444943403969632996446387865428547444791982339053485199681983348868053221082905093795360963430774762658221063018760013497905820284345278165420421611259308142344936356692692776865854819818513899927588208140648423939847019008100101065259099475145006420245482137072296602362453991872894918133127220585817857405644345907511918358614155190208163749735434649903325073303237849188282777960547047331417763293818443288091403882650484565280204204179764587464390092864589004099597548738466670300693621256952717425735571398113325886490343408648156847373843455119368914214432879856602888492985259288222848536624830636782256834305045288853599983463913192733658934865942504426511145924919548944221180851004682292290049887050903622461397855048656389733625532308842639849236524916954310711462334905880147331519405446465204035887989485916705900501908734057892032268985470637063734044557331976757542667946387931805694898958293445027693684382884189322578597854188679685144064377975855431934260517157592594973896358155050807463835716288804979813713490735293023545069284187036192469479751494593134152327499389692872108675912215131777307295373767726537964300715564868245233901347601029339894213906402627923303091259969493778210322172673915372560645262643756441151963763817430148872132064926635286757924678676709772487247895965734798465603626057701804266279853436871473286054203996275422684594854453781976974434400684463796947244028647676250453693982064732953231283099163645220149715974835698940331347251441542654063263580353255828629256401637757363833268400042758701452300351919962441377480360317469869853446861592229915683327082518163000988256262785408809831566781195183160245001092290515075098513019139255444336742631691548717574523178673435159291040714468906167284997032816489066038250278606966634451448231041746618818635319479969030959408346294559189557961669920064002080494578766147757556722975750545405913140381931149828999229527384435791000170171979811393926340649836798485006313915444832555922457098666105773011293597098092525993666428113935520917427488921820804280046114251503902710553619044503784462184575691159966522026437515376291224336123739091781512463049128652264110050855943267236415809365504337070979961172020008444101159144308700752940294660613022824661349610536516247571243182819195530646095563998899394071385370168264579001156891192470915551939501131850342563024680346176789227921139655144075446540595548803057038125642864569265863574873848674896172561021016660890773767116659055059071715898625071438738794145823340487925214484459732445414832434597969873747605024284751498503038178890488091927786381797067064173947488686859027398598092085892050760023564492881833192710578936649801748560248361758457759019999694062727983956403710845335312294361145047063756378342092097299286575912540407934859111254885773613117037184022755449675936631548368755702913044654364200724978671884997241916389694832081278980522935146603926104231449177232211704155745764840691430192167944954098111445375968579487722811126342300641261280699987951363581205161207466356052184519787524339307283562594204719176018574125240871988590317414994790788246779270615308337705877128249838710444996514533182822017795575248310120434636023459500833251915014988286687114934258748289156536814851167246608904238120023398928682592679048508271971189563436801125609460995689146969875334952311686916426989685106118153223387732446516436636802677799620735671624636605124526167989997078880977354719216800922545728926998436991070531500802876094451440995330256856380944123801461142840454808306274894287231115818861457003518068726445462845511051744558112942969344191277728407232047076252092154264202774538162070358736221619841236091817194661137932904990670579678340042266289595240446593603449239624367098432510984599486269967780589627417852130286275780041160157805732161677150510202120878457939161189456226947591408248706051781412767992395099349653576977113262040271790695284837259994209147527681675654490141859655074352192816027623724409078983455280404607116912937831075877806135675184603484142601514474474792776221496286713139406792722523975491796260204069201486994183165045833930473013768101111347344081569607630477969185172307994481724959945121225223243749176598855806670497834922765317976403631699122514639487859715460741121620222585138906728191214883194323451473949681317919865944361076217782477857844515959402969949999299452640643576265790429601019464209580068195574994575599356947315940871549674229930809160307080969030761179173350012616645264371982199752097349525172390256090697456829431829946790263442476411711368607352790494823004607179861677680192945893695167745443574905759814195136193074708743116233326435915607006661026421829332708422675381121786150690400668000973097160962838363940960175293745198761044674562012922188476984412687244527619977526502121118979951572150995998091843785683244598742847324354485448041805182805166817276782375339707537756461188271966972929210680223777853347782259900586959489716124191885010964961128188874888201384510813363198614641766066435639889530991812335314466619311894900644136620724958108552824961066994430959023454025584098496964548625581308262904709874666681146613923326092973394790032438335159046460691847730156334455505926855917188779599659754781775457799491290752823651110989505518798185618700794887960366727239957282360393688037092124073820121122519854723928121812826875607760280190707630199576882083057029596471364588998179370842108024228153481449974064597266837355652086903280292025356406923251153857521590753543041115364202136572817355967985537507658392765745252168762885278981919747892288788292585618997075825451304025541737365376928490864373095882286247138168867150456741220725482943488627488104718376286676158821680958638394578276413348820926539687144309182827429314976697886396352497943214206477355418860141682224079905259826343979761358054821413009585910302137953699716525190417535572962616108446259369895872868225751584106878097991601764103170875746941876968512001442337585122202878389276852502290417533215175585929848291736378083361908373200156230128708190804041907247428312058818265424679447535220682414213239619312697560109551423878634829376314484204667902510010653289742247268779770768256270199840654756842624101557382929693556075702129778669568170256669995396707012008460044702738500425209612765385584475986339599909946106910976682086724660725576638706003901162838150475424278471838552885982354148109598555646567694968952139224593404891385568020923799841579501317382458244181296673544915875673698300586131391655313099202709496559266418341982056176242794911039657459240004964157343571494464044867905058468829071191770359293068947104959572292535143191641138181479433679670870037277621051493866142936464263844874820682012071742903618214445308686331161512521664839616640839599530648249621528725961919792429880604650251642521479346651755855622077170984889535516884450292434262033061607710609984865078671648081288376888564741638821598150886153736685522166538362319609822453861688784814438993542096471144585814744431452539255779952770173006800950904774298645606648085479898472064914319333646431375617139260309683379698666695348744642253904285673868255337278980240830303151444302126462466119786965285733465743286698117265897657033333314898740986986443724961857141760612870313458154056715665138640075933745076840461540545878108030170313076105322760612946912729400902389259974029507118588167762672917052416221363368099304543274944092408033776006453157566503718966997824158945460998633619363707385292693679593129547780504677392816226270440508249475398044758391616576339100953479866449275266798091764417592708308301273366322974426718324687468061785782072854873737164974409862498266306708708410516552711208138707969714981412966515675309496324661408107587765941721333638128937046746345197219722880611932336163598789516089933274445926824706855771548668032396316040984049696059944681226967535029412791464306442361315710419470484915311054249839927326183585747786390813785408748432114636129963093164647171136245123383402877738824543184946069816240794119919949774644594205754461739533270211116755465094280968524127123705827321182484730458566419219131311060575738146780162086077298636279116502764655400827903420017190635826965828864727170749461554812122956787019514102979733784038585090053316722178752990949413406974262896474424601390574520721864313546306514895704356980533768689725564025336763679122063616733364371081496328729380815895436920202251414017581965185111253377922707743326182823572459641267097420651936241095733434780674327489570115642631005610406934030182173123561247603073758250589383190973568339304805558198560662342834306628635826872188774679533388270732391883992642222606151481280055935622919767012627438644359684801730521602559417580286492821217845165426976444427864883118465937654497194158708085951294036224254220100924244003133144016492847260840112566696148304170584771373834888935329823299668999052081910887853761143773577894697344673230801337433995743312148127140563726330585914892874755615208849639239161369754842573892958040201222639785040011470554858114776270335009639774913710683329638127124648468336468503069310485089881880324928429940258095639289030256183656434747733019163264746726159566737290291569583789345286876317872557523004617545290850624636064736501978315171487613938522611010662213595822170534688742915794241085606396538699225423627586848048186247317232550457334721498622762415758167054562042979817132249277373280329290757014960993407009673949450990683176704671624086567287344258255391148927497436754557996211384989545651923369153570922153795408216817435738771489025576860073268409543513553241067568987629896961191316352559056175280306666894079822291002720473462053910578721104089964195902413979400091861114141676213733195105803977776791620844493457574245837714955381930765480290247639037791015238024221230973224495807295213572537687475214709696374751111392532503396081147908795836821389560049521267263888486241443449626663287329380159421107017930924494542947551808692777663599725017859714645687923514747155446410964219252851062123237871500367156431216140599587089941119975479091205035436347318220285235798484999987544920515586844875162927373462124796818949970027278669150605729234265050107493131571063832282230816193461194422207335465433652378920926784138292265644827689722924320561880953351541966373644618994256759653850565291605187101721971141146872496478760009044706825478476721704617027102100892941716028433402928734572805803037982460878136073829238341020869168629287068089858801485414733146563300768530449851869318112175834855838288533464912957063928768646588155964804953129038225878298243802077144759234219754416968532848778695954179184767595379116351837455233749325738743455002178509308882610938986408273081475812772973023588058559615235285835661857467941731382413625392098196291193424279425143781155750886130115681986111397344122943837085217539250454580318383833528135750003324172664126002405668253485033549868741173627939216872252154091365272093425894365362993820522557258104532401421056677728783587846832346047101282456117502158204164975829654637252182100801370707632025920127045483801235845462117172418778152681739608033860597667381799487869216510748982897134305871630329259219260202420415174507669977904429607626899158240842582749577197487498429027970502206325181691091285076970564960972864923538067281346168709444673201527465551110464005641255039441714251692356481356208559110598165746151270512673435720370267878526972943010817468541329382528556545880831850760317689538621959671612529593049412364151321455819521490153497994626679929697383246324882998344215349899235706497061838897662808936791090122526748010684616284687980774493117835824527879404050979100702213793703160148655660026569712435166236445850614335419918115349114004693892172936530053519003577145013562831057121685898055111660520716840168756846496838382523597017770828161950988591260718551176050509564646543420446014675608951259128538367831670714237495739674383654986771765212273621030060764304839397203188024406015718076746324107157279636182462433897389954131372637979277932861392956695400491010034406487428651036500430974452696824800337878199066569129560973405317870857159141993909920290238679972263484639087499443251380256426559342878257507172661700181211263765677371816611023967926746651267473401144443125894663550958206905817264179155411198855152394764984658302171136985901844692314066033937611873699484396715912406742304296539030433032583349313724592059058236474499487673958471474550336924158598005229249706021666368067183961275554105186378980589093612588091724517777171904755904481531476253308955731997622269760086897991017476129186548543732935067489437574461138105332793519498558508777355297205375370927709213447717749898183868590953671268915846962052652304860836555934093834415787788501922566405615276990296044842086903220728864904581614918170979711368961251704174171393442550403024754986136192835558411618183720198368538457299404450825479597002650497088308444358693234834426975536958580626653715428987461399982074639877608907016622858758784921297415605683289332110800929746086829465213365636324127485867541173197824501400447105930916453803296080767817716856900758792340463922745011639618361478162736474586785522863092799157075534357514877886945021697452899017413585629652329338445861464639144977435940521714246998737096897748848310110000459119861580802301237054291152510367699973780400776009373308215341297889000933162407255812298068017125260924564999729804099072986044609488645770062444448265663373423609316099449567528221395826445830567863970365536344248960773640410956194569669617460097466232032903574329721974817387216923405181273235318161452328606873659475908189926043932550616317030317177660340796260096055127256729705215490094103124468138878188949163247528857973637422225443520092790892730111207079674456688340227904424798708877188623806410297579505402863297394429416633756457091867508829227112871264047723287119560562953150669715288262774081334746491422293427677156824405170628140079361381103917343435079422911727161718848059652241550883688726753497234769610492614765004550776589993453963556478761541423234208524884344064996666983547845524888540293852220492572570561944076483219221083353394037364491093172817708823136959580814580879993873926076387490450057668867197352562440463256657040052800372175431586796813349610118517611854826335984497809960864533977786029562280371413954438134357416230398920029169662482851165434437466153231475960443577003849272042745874653044545440543622627693589848134436544661847209275399241704979971174459527415924478583987551924578829908664589828481410055511298111623810523264646758439335562392193018155895054441192982193931381147075592288210266415705122181105276812618563360607880374041371341966965064053106314276300536379241717523082356424897204213817471454674590289507316755355746780777736761850895127549252107521134268422659516775027559271718552775054822585077985730690881926649219789870379382399580977721408182399723853891394110897621855058706136140804650781673009957601069927439197676914834227709372036228274535452449824794908287929327454231471415418755136742636262378013777277258861774345489860943490953622154963430734591610132935775654410890006511838886044587708590947645338348304912332128094952252135590237341299450444927500039656092892881594830855086715343544694278224725863579146752046431909109634044049030090888589642310374303092447728424930756684428761151640505400148394757595140083330957382627662111096651466476117257069008712846722733598917164034910062354740490741644063901051211328949586997972408348294799701656320244510440170382886649742525087635782104750033503781230487967564705775416673530231238595043857738158476522269407441048011000877622041711424477982648330255508666260923731008730339427757056319041705496377455880948711350880790286142465154522294852490633955366382970210068810181934229978253018787588438371913624508126840627183458612870111525677547675525657915681655709363316537447040981315663860213342333338026774873560243764254098295064113607194063803797583460735440014295061212483516770490912863972424395341833685867006149128336648039935769652559290633402454206485636055804338883241586955206899491597339606187939762086912596863206054875266254762189470156936902859496205672702691528348757822230239302118430289307388988561565355014526377975975075130722362148473903037895962780939662724954253853279843224744523346542484783290455493267464519684653084950949688112297105207715421175568788638695933627166779875656089743156083980972405853491531404966998526803321883479243006386432876697043483809083861734795212475139789662962943760397738861996676256058741729960661244822170046451036161912016150085742472577652615917888621713472234423736787335693612987989382540887232260424084664541819483646035362601139729617392941652329972429648760529948505509663896989861078692814786660277015352722435734372619365988361140369991262314245133983328431937385047658766039294078588536635442793613962934408357140140087237569416970292343794868225274745538420424179305484818442188055520837504238302628341251037920484151129336957064157783481379702269642398252240892753443730623031825042484470713981766835230945966765024111399194234703879120653377590261129160793098188508329245171393707506310384162755307459257257067527488710040391514135617810585331622909487860879351099622374529543626376298420163058702277446707801675266332133400361472293421347044651319922652495207188267052280705810852721993986519991519387232848799589258187722574304966850116971723292223058691817685893064453698518557501303423076405747025238782747865197991056441995836103704528470615030063452885363997858791900951180305732244824649337250269176304624547912656973225578946167344246409456035879688478893828337402880573133746873014885602552081792507250150542769306224402886195381143877860244854297958639948486666587054579220949071594554036587785445834036993192553125463996722379543844810422038842803302285551538428916480974208437603594393419998810094783127768187652444961951014591680619298578128029626851431357576885551288567684781730423910714215602083382107106587492364373501574077924180103034814615753236342324928942342511956206416271886034202087810975598294214289940492970854968959064155376359085563079002746995558044216182140193220789993571926565239148893266015607936169540164427179197081548094170075769850539913525538552176101809081085816732351370712979593090203380274081287327703568172021288623062322780039187170890870071848674305819569964884712322648062546243862357527335882382151562754401828290951660273538371838159623430971793773329928371240478674240083299760762314189323117144652771349528806215200729587311196352401921858408128030355465525771357070740837477638098395081381171430093418014886933400759799860180375947918168566022194067096755691748877749580963517188307955941736663526490351477657743847619679254613684768945019638547698822110454270686719938121535175180947244393145857984924204937694910313204500200725442299916946985014793903059486087363884753925339365853270143343299415814518028490952659378622899331767609257977425091348159665112078123868871327232791895432412299102824903277687583374156586439050181237402184894073716644977094413708294416003691668158760334241975794994674290216894200156550161504579209359798498512824411989879069097152806476078644953850566437892404968264225515951533978125324584499216207939272879458957537104584454186831379550456795875398152772548376984587478580792186263840889415931748855385554938664890112064521479725491397845083263773415564829639998553802109695379283704018858813352705831086940618013576979085401288082619233495863362624363780735925467677813915156153561034493584493479041140942403355874654406369664054352069879499230074077369667844028086247389163039108333708748388266631215171325914570879565477963883999159234127040486503050250093208919445014843801117327325884809791304130760455938923135518267394995325094818136393769273715099122498442563545560291919211972542048754905230288779063491182699263728094030052940783095574844692959901157711177262983437255697460806601178610250461929287540332498113353012209203272090925267703418833908639750006476557494928504441586823046314399455998154301553185176385154817677049324209735808497884897167319479364364412827036514142041882037267447609298987216355284335892148969113661896897446073354841717568094300149342389281155305968640444848320096495396369885514299666465349001099757842109159389863369775451868142555083350675152428623553306617524646098262897327632192817098753566166660173419674095223003243888917438055695798910195560163419257496598738370765040245824376025396147669755019848386903664815418975762408530994546398264770519951221004721607316396757122339134268937407573590355556027884593871158379011511909094829005550009460858621073176494483512135559667753198426285972720655359986677749349267639153835129656379423309505242050080675059505747929065365250728220115332408700499045683032286439614817846795308601541028721177080019005897638444519312575328703989349143678263481025681462541816333089145234820407065441657104495870798966347029370225211074655443193671996761071690533876862322684142173058486695848948446200377998026545529273728767973529756398534634433515646599334859183427559032421160741527265082982380872932350409342237023840506984762274153936363783752812177647916374731490215338590990336186923593180573146217729095737962984001275249160029288522841559267743407806355799598555620172634540244482552101319665027421147219472580065947025111665158846126680107091650373964167169767108493688929665056970043670515876654853733669525313099521696506302866499598902920936200956603358167913054838388198452542423119104157703402518732743214569674301218387705548629608466536872353304508976189740131941713792916396040774712086291978502190078963582057247123589844861022449821903565655656087716348758184112437846192074912733356051571042532783986675281543208287159364823073662605200994386628952340902134413025139707206781695600126490614186281382138008380720449255068859543241692293095978787249848232902131972043064598721517562862028661331750278780882383538834080012268403271877358956726165770565314896190344757902664306664513043828543151875010446377316432553616339527800519230217362130259015113822292299938341797355767185993050257299563614143112365558456646118496773661037350081912603917822407487905181507821706117133464225275681807038836925132873434769474941890943601077816492983239052830618556758259513136461676570587623866440071194627831953647226893529264528187956052573967540140155393748611283334333640173683372111427467303693986558568936378489493372801300251905284870192377226855817768516449927289963599382377730940076614162912686629197709718112217647321009692087807548001133506321580753694933626217095345142464258262393066232323649965129044351256459190793603708253724723609021061456184101333605273284979395690987999274872920735000633335817744262202839641158776623092498765221472656337110828521703102957857911455839600441621825762929530025032452777862843648386314595824483274512357239788894276315637322567872660121476889502693356960927331229443676418573343946052500780158106209952629711785826039951917664509531885041534720701137991493185794154589356483447887055489957806271494589268964173514583622582259820567885799569251120527705218618895804914619788013042233671081601445391152379274170366770160740760062590451122061661004347412130055357545784569895112146898785202215528718385277335902191452597897017804154342668176895701039538217728333588870697780122085546142476261414777588361171680562554625900971162873832195321739472835194046644572789174022378744102334347781364082272951132374489603972264527147396082470543851307075674708492222871942281681503049407693801147213474061813586369731827303197944865422433254309601329162366461700298176412873112377315167720386746341927405097573709670413051364395412174601750572631007128949684781676323635374393952591023418642992067042101647884330518982685409648229389302886368630595826487568271838848208036402373524541947196055009308834216404921799290763895625981773080741970236985509099325346055191625230344204994591062774994476863602400176685319226348351519008586814453281703154436178766111177236782633096342912360645588688850950680494431168481592695251404253659502914719297417811094944713964101324085434453943458689084521023872706530736403230325487108892365505397411321476027104976680857776426710078831261332551809447619020151589272640916082623273393506274296034239573827312175796788923711605884103492315816780333307220845853215761668223291412624501063047230253103293421141551428033377080177375822183728942631936675884749243727298119742977900670772487388814757038942086814097297580933669409674239368854284219723121576942752250896400822050334622282626416157201300869363741550507993082496998632016054586154147392375094820177241427205937950432846016683309108824475050864592763225308438837215232761317107298736986827496877930069802728137468486114286883828737733018544384312568812707814476503795368205787404213655944606701826566552112665803675521978842889371381675445698777519532033642043670693113257522555990941225469585581994886007422910762809601600985207512734076162066617240126184549965492335719141721388634493131453772826924386070333616245040525671573735003421260319533727298223456929108112767709243791868387325062025037044317217570235054184215412895450615421030710752805546793437349827901963362840966538979036012076725077380905503561852670206620775538096440182441383761323910955063962602202772612663353047129659452427426047345490336384829533670865801819389983344440314945679507790765792468504247840690907725331856550291039383776180193520258607558597748699375917113578566631106968240753041322026056335598391204864590009329746831939625722810719288454008147120055735284577529877502055059989245113011481107802176035671872767530315016233194117168618263960420458521990166925955695863801441328438528924172801547229616270058061831167311183598696954950189491589141610949010475942756727310015010675366791644252859407637755814947117818485485432540231191082685572112013078020144720772696286120916768462629542864113302970841226265501784612515940805536441357233594473777218309013186701771434508080928635905381156023598665432418407287813103991665925341528314639877883499088871705317996470431167194091663895052606093049889411584120088751045328015684109070787893526526972668758210079138972628373736069024132303691764401541184205713873976473986307372021531014985720908256768306441364843073135202088559118594053089529842782418458302391525045707946695752099963288401034046395486635735294433330141348951110647587394192409199499458870449559778147892603867558096604433410969020912594430835941856327738898730301968158919330552145301072790044011145366130620747707014670264057634862018152741427099454617609755882530263241018176984156670976542771042854863019202398490926158157699380893429973255718406796556848750868188782161293905124064886655579977913217224976462121170807958711483038057975144452470112479252611901540207656790994854922521298933206345417590209059963853727135676819535477065077560457642325387490137853093876704278584379256378626110004423623496625610413005434998872083537944025838337484849398568441794290460277984911024456741746354153416915642249264900275103648938588268898827240262302737814401196320206386631611307785691742899255283198590055564424891899902037927598515096432324212648230961676326360369121167907728029058949086941911379144112763029263911744474126051182309517183186457383179281560843072856790611773665317691595160079682638409857803924373330935255847591382613430068329041043591340462091782958942408359691794664477666082682692839186403743890218384925345078281980283739377361478249545743144658604968442132394702092227838406039918027848399747855842821015119113592613791525408012180384613726632946198620811896943924036954959563511817677838070088710156515108661694406156317612174463158360614853607750341005598125556733998710503443447800184035078824421489338358235751393444278466727708923865916445932827733413710544513977441827971653189532226332714330766155682469786556447392541347085852317054050930309063640415435468781862634232684323369198678602740587044683903689800825459322683095541394857016611319836094655017164839889480042040948028149566782362520807371136339923312047299406272626151614835941281736440859741043610593786624268251387585573682676045824614368824409301659757082912751741649564030127982911768057690234334853042293019942679129022664078695894611029701245592435866459359990344010719058671329712406361358434086046742763693772565130235300487664451813468122271438279230676720418920185634403988225343007678096266612210564029395132355338108796416102009017162893298506428725074317904470311291672498970158775375473634368123116983687597032279649456068240172054780917990287653818257684905219886270130640326410154367766285772997093862775752941869753589856085462084879060529181976298849783202265104396315250022569624004786186844463479105248094675319821147357542332519553205932737851981437742028856351923441850040224685033775872563349828594830970884170199453954592241258452383218850651045091843324663488473148863023970374506794553881490920023904094981270882479800564258620457433520166087050969357466126886759058828634491670593885507194414399763663010430631076641862803947344634586485931271418565372547823167008687078531528170484754127484729576691425693189090942161820225476815483965628375106850967735295604183746177865365905705998032744682609943227675289412107285734476646911270913266493409862541056903681968548908763802701331687511741018420894864259981610085499670029756978109966479397378643035687122651080590222009873316546721308493965994822413808574442165561394319951073023167806059751248543831571025808448860043495388121817676189740576056632839978463944517863378924621996196525502436668231803825608893044287829510342701023193771703172774960043873518739542665771305497492495932131179539440398503128938504539511578346599264431921966618097387478708528409503031505012920819366917563897321337953947042168051998978362508946625202440413361108082557535176203421474425180528272938285362528595920706953579749240465811554704758489571011024725708811758601806633518328815771507401213647855514637273892015742047987794683837377164935774956123361179485180665997719673364540021743694825320945722219828904363680248180400711773444318709055608879088362821254752196760680093299392180560884473442591431116145062024397008076494529175049972960021161405218731150485447319232317849981519538145080508534613043478193859618436762508878487139721421621327611239757770229112561355687348376448804485959589607283924606438942241998788865043961439016848334210464753852881947411770811591568140963345268262823907898643510976459769121232407964657360480179970298457794191328482597547799470046693150621913650707954618945224799991201579836614771960039873714395512024279182448252731433811184379535248745800915334328289040493745699111972466020725872275370006469834771310458881144883628851637333362823685953134238191559328742557828362566603371955296009571347757879785196758412454491802216505404474591698562050717528274893163848931310846888003412093863198993365556869890282020464141548719238601413613899156671432786236970518229348925238314568688023608054855515933513575496586201624613322253564524355499751193532269821024486561094973341999313370580014216956511580759425299296361542278742640204409792389761854569424605798981310968736649541617104525743638044906197639353190103874164346257706260556934499845528322632635518018405282859973373531669475720948446381950163281078537738968319808324911916208018571891579812670313777816180912642004453364727002914814310996530361430198483425428105171261633476749083714329721829654595916006841329315025796742804586724671325726945322900566238655175012106476435606620319029664861767877955273219736891271127088770398633289705762271890264944055407232195721243558049374670391797493818127559158540972340602258122859903304501433543630467680869348285956308626253785028746703105272612061777133919869353451996200544552919650201742098643665468487278883448815004097897000636827647460726296541930084985172959037013766132661778147295748162152417425004636980350350659852454846695701241379183391236777344971557958901711630303564802971814615086172083497173453177391527650515460917751369121670897570007742992502576813045379762283035955047415845844913613714087938254670824057453020171084181594407911990672860146619539901794730753428635358201678443283556536862085779034486696565604651127437697896712330944050838396422459643383100826827952433568741719533660634709915685926354088308639642212834512002838020917909727095768841122700796685922794071896369655403013959299700236739513205794955444608607652731452522393647968487805822278535355548689809751154550143496088506025729650354391969934136490953567252196423654465416614297216284521031658487809722176882958634436963972427005920982621167216482884576651239481584021252230702317336630284251455026205288272348355845370403015393648100583996427342484834419649528871849262136234320850793603865272244795622435861700826305995532097902386276586036442860854039559446301941964494516425038584534819908427566462803095384473751623188833358253108116217396288946661881643240010845956004818717891435679392629381274660629135102916142515356218983871156019503174623594102103502737395826692919149282718605537131839675815915023714915610120700413962475418411286032615594359190707507626311159767120418127420627168966034101625695338519954965878314269998450605491369532987659980724121271960893581511686431362874281305853972810668927415947480235426720234280666738896821730716123561242993812194511530123235431127412140573755924492084252074947969610319564973535313137556171577599948029566511689462349283968394723002286725315451606454890770595281931634445673860635235543507226988974814934045191443379532367584232931310303556041557132551475556396291391859559085537512595610598144469996440014001778371227526298199294497412188183726454935130509340339993538462387964958235704813296123105017772336033538600789949389891786955617584187752835948758573099342240540263972938480629844552027443320338008003555489818450653834870480348398630525781396904580888551022685788625683848222214925833034888646830266867745793317639255428802388039293969248144243247235737759471306224025309111257770182731428999350776855119424051746206860708528994900710851075731384335907593525691081326383755902088106358347177431622538149785730488331721068120705341976244848858741788045380054833514172600048794404029184690257089501328736536469189549586125292826741949744141783790098113773643038365909135834175487387935154071274040489214445220658481236783092040212743667743444032972242175445647700826266762635877884783769935038640479154928742220827063624662873511819147848139733169379715869979992848459901184491247484799970922354215155939451735168270295037687357419586822677009012537379609067586740923905711721792645082039019763675903338516173496053269849501695899857960922983187075995214738269195056212719369776376192832943051725071779867956742428049757402228663118201432529252956730632917909627972777441608998140600006465165977885788141259975102003366411391008094281026137057511676313859254013513832799950094778318137438426718176334479074602920586189196074354869142867162393863442503846927339628608357692335076181310976006214888851709721541147658160545630970709026119946101691194191184544055110556902799175130067621566341718261654856444960333534872964971166927635574081191554606841962580166564780797097745273495821743480466398725468491401580303565199780498601402839480372963122593321265419291241132817796916370412917608560902549514647212804361947813740129812959856755565033563805796029951696068580090370984791492295802315469916636716912137998901148170284199156521116882153910532467103322669891891359098618972921780980531733588198965758552235450295861987174391385912548541769566114501338148843294648608129928084897655788631508291724095941510838210708404944099263416336036002766727075885108194088978813804746845839504264037946340482235135682814063585286490864161529385611316292032728230234732635052350073251345575014571944554320997543923193826084167864936564329289698151657377884578071797530995256028060443611871016782789346390541162847547678221672172061512454769997623976742425547135623751525757691323089089617237177242888093375054618202901078911432585073460125271267847898120777150470950807950710544480463657375553865806328203070766532328471887966591129341398455950807548892744496520700956250823035843959308559410004649292357580355096607690083830661553649051056081698071762597006153989041845596120407682353249493905044270361708861911661482743887749364188371900716019354280866560642481460725522762997055218514054434943889950040484209004047072318168584475840408488084935210897435364099356488726016713320848426516040244825994490899041727797091204404958819061033287317404869686165638596629968470946691062651688260157993646823916018908240035509641093690915238795291254014830618690380541444144428568882971296601209462748517353089570290219181868538148121705985605943968409959474929741013390480944508311611975121742454071436136206479444211078334341229879317124132071967490113456079158025994621446408252158123091536416228763993105019524651697292078859505390633082630141983941657546289955412975436488195153010066896477188279739474302041032540818808467924700238090174144409361395397493315683631470053193378548221737139305614260141579980895554806978487035944165201850705986880092078992692540630480864175684750851438924382414141059407805159319805812736981068654288889953344580886926080966105433480395473499507276274662086283769567932283189621736196013706700853133283938838171259239607043302579126099142356394885270094280272056397234071949558474244321178997809857351478898505116697292843490292827316164625802420315861186669580200786580746646367937918216389122096802222222784394337182842594414205812547076195720619842717975398437850950224756225153975678488659469389194234293369282581756251136821364200308880150564214827824733448508210829870768259718328002700760617773930111460701262438753776745198767627023814150223676347010816274860113048694573536867824547624923397026306860480564505889075499935605298721282333652387670559613108529607285036899588311130717320937119002560802536893285185538870946313005120662556422633737394342592023050859489348332001848016755320476740688175365833106459647842140396620086166232371395159349755582104036521322256480811978987243573128521590456706649227726825264669545786769009005937488484362201191715643297207601863457764419305478783345751997230509665397132059623553491101277978061577450607569295673429673175793035764119777773042487125775295733878358020840428020264691373687383933081300621593618143371075854029619156893676272043613540438512858965641951903533731111533062546899954274114759096038510643297898881463344390741731776275970403530992299438957748467334421419909498019028447131460686092371348673102753440101780329610517634052636317931031765978188419623521207022782732463090019900478345609206615071653667846633195236296959429794878620939075131051746859105432630539372936451163264228465305948044502092136921653089002451960816008096123379736637391047164515301333597994395218450610394504490865610038289808993333626292084491565145088407410029575580768802848917054533267137585840072690076666749335163316736709481425352003003201265857196488487388289446131571390630710596897784007165357233531545013812291435000243949756859339458859342656721269468526611505741973413006798905808158823052115115466031471066793614025890771336751918788225265526912127813266897687115040498506342346089035992955320627120874346058863129585121163813861234106188022074132885501159124642329602071639991747329417595604408411723671135971055042225637272652569163078955823744145419757988049069948880743296586833580735680237149246589628796284011285718515969454591789235287118671823902555135504598919692019129522483527640599859091319870736234041160197518220416725591813273261769083693705979196656124740797838283112435499945054075340939925782508213625457943504165717349124866089234256737595875396090067153144950664762853892707972625868261778594667602121940034707028863817221643157713036819714228411160856574746715911025741194095907056465476504334105514474075886644090046556582353784705087924333633039697371410597539160459465606051140925030240965629756548723051381777538386574564618751576646448861173815217215296074360108714409742237328693921404367516005255390132331567372471567780894218661919683625258395675783103371687615950647032529738129970278411369224516376985655154087109419932332541835038198070766769189103129414386718802682071180775833191806240312386662465368958374849803699786383683021866035203407956476010063345711808364381866061327667192424086686090936749869926347468564736253909747152233396799265058852846631315341896227304384745817630407560056881850931435161892875515721392090251358921930346809013771791476919981243508651798937794229752036505825372200529931196929102282924008306686613548272952065217491350626383022139395144534176856191555964012219583190027004116003122126243440763152684684067429753779886213295876684893096947227420135717379045427637511446752058699892263389584984813320266152469197426982015647820650983488627154498039796808960551641397847204884600508995636175673994024248731264606163094455620202499526643281008157863701082892870517021073794510072845114704165871671653604242870721753747857921372391922314015835289713086915482838903008358869117072763674952178910216366342158442801873872220495065124215531696493785798907861970703688641485976340017440788249258276630925792539968962956012827140566342544056664805832664039182507687742683675907247643922447527729958297547627206953795516937611593397145922416342272031235104845033721013170077050941973713749459510342656822603925769716954917744270408681539709612510230182772775858486162544362652892317973894646127988039117318713193539127980288624401702921253768691133539453852531179724318010793664747147563690852199177057540984256049259778014447327062962883222460942435220572296444695820119406319468531047297823746469241025254717850638588494819414533533069198955076668272658692797490738896515081338693295208952679776263133122486517681091239393071018862475253989299123092364881389581584907910386679243029379221509652873818872238525351781815145174651006460978494209846946462010702744460318231015544067454247978618800699616047075144427973593928954083339748727690297419869188190010544862553735991564517204324235681080579481150341193724792665037420065491853617216796494374827120938136260034958384252382210468055605509106569952600039315451900017979284164109583089496180290489583022335241106404340967002238608840941366925052749509069643966885126010784268921343258316714108450791186084551812066637746810862700657320216991281048270788856377141460302985317357388682385880206289259548867828492887326737584859470360750192688414522028953805672399335083343867200890092004232870953663419679405995779664744206166966273059372705596643449939269918851986623914900195406399696717734295666169069217493799900921886810810432490425630969966592233300434272717402601422846305911885404049026333286862345000487966991970338354428007189423618355546719050621864487482722399989060094223330550648814251405535606496312334773677958388420558045378894658370785389266999900521768971908615503981086017617695337460383618448881127961884468510914350023676883035111608515804327780330129247609892808674939159613254773246150851169024580363140241019968004985695513983140651621961363664594355420863512083915267940159850033336503513932133017075431471917083604677263795359646396045537134072651470717263042510816988401572763705624575651627188883985485176570503581971239347665208306175310936259802590702754943882016917987775684677469754062590364505814826139115334924338786795852444820669495870711133933332210402669949067385248159491695984739625828502031548026025716537445328427384920411179675615187837267291682087360012231700802261749149245907193952299416643906503770733641255516212976310355889342880895670513660584919653200325797324203796937521294594545050761090555880584379532881858319615779585113736537794066949720852180571179357609356099001744846632719138024042353727380582886118027358611832577752061071395364454079784389051857722594230001547568869782030989151906751554549518720248904526668505390999639723945170788607456362683400361365853023496921770516792678506044316424542923201254686096008857103080593377418269151376708195496619002227832198810882361618690964472109446546116636372911461789431595777842856399897349304910342523200252793844914689188943843995648121147613707754855081865531376059516029085665671328415773047357818305445238252864564776055553342737092968671723315819074061884063587297282651794352042671195337113012203612417968540796323693622377112955802501991448038482395048668993202844514493977912809487008505705408054622594714520539941724490725083951950982261727375781754988627469872834162061411198456145979399937578664099836350221785075228025517907827953411057110654963909865724406349081248419837187460616775835059421823056956157728308753169521238324851482365726801397955783162170057877188386476941076072911864407207142636477151849035344613682034013178086521741427700242932834098378217566729289598287756407285792893716067086283470851359481509075089139353406736916062822184786685370067415455988851540447222145235053915243135868387677281403049517664391152251409078349292929485176859356220830202663717308480304150431421617211303764783590882416731262449432435293747481015089701944128731955252540653837813551014605469796667272416248177429518364527279052451502605735952233622034970774046813299898663202380292304965322585502976875024778474835186788909776614884823416494499594138450091654046974061135517443964447129652543420167504039566143570242234048778259935817740518516811960136922427335570388349879484271241093501945070059800535152473463669916560822462652321908846788437715419473089567499817269651989408353019905222813274911775503968353800799983436479928603132102443125313288759553440288546573153808025229702337529220347627352300624485093215739282571722440287356046653972741429236913269384345671177952714674192676834887240519742424601660969610164441474018460232251411657474070626105562113776595436898529440819667706680067998316299852798683745061726303866581353167866356091453921156645991293815973541789336981505410325189606158229352276823026935438731123309850312433949888728017963471452524343072259182296689921097561892607250395740810946870202963164317784018212511800986230599113644233566633533074536811863378655454158962370282798159273954144890085289025123382116667493456063883846450155237960355067605763377582304382859358749108365634570894633250971496109622348671690058391995589634845815814563173055854127792709050087536355646639467903043815757560913183585203879838823079863868456300570430249498939040309181791747750587126767956518846613613189722814417779141501252466620885582189982907305288111266955150994353155100131541052781214951827115184940746027020958031636438617474321959471682264211515924302182505489463152503464259767279691031676641647240041978075182911409734917889189966151676481519010120833229471920108668725652247575043451542900915093932695817378174531432381163697200976015130483982696411234778517387584393029905600971960866433822527148466702501600788284740775084422971924446157967238173009736112157885999619698443506528448878946363285327087759103536044062182468213426897323254797460432590538139863978591077991468733372676941204475672591463683033369892711368845484216358764797482795579440503038180105318032212918352294727194518704525458061598844995654549492817642962554646043973834100185956530233949567121925526465346478285376902776463461949349172020430269397920679513246633174683416871227555693418388634483079693857819078185909682782324024238046248036108878953491099182475998591780524726070662920136279847863796488040206437398101224120440417004866948022632002749306304420117778817510681151293749373681972377576548487106066207574674317362013900139578249724118981707338102636567799733216281096905395632646257345942599429111358824317521423912566958070188947209869936040402918081691015594164456697674042805418262530362650313640152407621149674011474664215781944245852369268107738389330123906536473424230264192400651104614190655387112506506360441173207410088980602686292736354886593636844018568531223075933763321387959742429733609050003368295996992338468146421263211100818015629524569871967867530750294999573354655563210545086490660015287168254456651568980219713818701969149719450463399867912350860831996513623748995313447478539849339462611305683652501213076726462986491578846245441795046388855179088826191688421995633037115516133292332340991937754777740747622359920288510979953898191398453543478139497949653781083465715422768387093656998006849152113964491485033743689049256311281699706740525691771503199964307644844033206502238042488649175949228772538489071608564665205432783633750140141492485369462692601572794828028940890069567357513394114787622510698720557109830175916788181571343446635911312679732241387748038893847516795832095934520697120366397359146808380590725150994670222364709450706311165952786717221948782953699296909268151215904390441321255969654430441537403101310090096269428299107027810414337607353077495906915652332366191564746400593518408907123474362618691028526902615787252508349462599480866154607988350638842962077126219026563038788990428454553119619340945267403906200444347860865300471888965775244664913621387916750700363651074387810290089709024915633577120424148732700272709793219261130266177129930279787863497698649727270974948775355338253458940586077305181341381970154221489935680861919251111146762611966852051110938757411261183306674501991968976516857007080224877707829817973556544433804530512700188781059407929548344178299420097332244364706521687273727226237029272604903797720622363600001616423467924868972929178692254514118011223991641902157077240944353364476463448064583844879224093014878897778029025229408587834722202448342558199290053822741619422968559151895815114948206017008818185321292880411570159408561075118589716142064961691463172436834768506051801247769820624444502184962282287657733488240039600985479221883773718939478369036883875230913150231018628683714937305086463872586030528344984371929076304394233516282785394436977518666561414273695354889927669648235170630059693611584027108999383178210031350556311135296762385860575248271001639942654069745349165619449700270161843740985559882712224186446856669072383178507482379086450106018663023843435396347904320509225655476482883083731703285584804256122623752549116446929290874192346266966937663034134096909638219932280585337401766176791988277442595388517195820441664418069553221315427102086137063990345228937477605604951410912687684534640436285996108009754922429569800609120385767707894898448112433987104405764591418906092988315998344605710431020975908581408935364326806752279245090015694023255030238545096269223597680312627991293256319706342904757946639876322065925889526909323269616583480921143481652886222829069187835108991703350215795310113004243698188788688091386611182849895153673600692201238941947682489279041619901453140786111706151157392269013785482793902916879756966933073950786901399211223784439441238520676255385428942117539884934357210338504034371395039560242518165699225728764000040921525805277391658915868536224230021799310465295447208839021824317433573441222458376428425458726638714394864825270569473809447789313886676322439589924982769855657353001925809187236356540749296897136521093727308884015043427499178997448933390625162297106136055998228788092855398210998318287703159491031287911427349508430936727348553390495760504909885659166645140918142582640679942053122957421336374522613805700203985191511812383606639391745352592682002530786201915825463797059597020909088244890755522646895927511686220146428082705894778663411244739616141905920505994068038395619594974828795286522791145305639095350277215127961700455602027271708123435880363690054505102400015691835096032523397896831367823304966019601507248520661230511421821954433962248674117518590488641396942748059489437043711005695307542416664111517099661741300202719848035746327909129051758850284388979279038470741544458504188206402742069088188720566770636510132944358607476947227046062554660255510757697813700790976400709712578096653432910226933943411405817983479106898206685469301790816184631943750737346339633021790200352489456968102712328853019634467287226323313972767754131047864281183122415976918214846665657240454437984571141382064599727336369128677865832593069337197053283204633609449261900702065587995144314335073113481759243210324888448444564238238990374298240445418111966164269305259690585276190605374637844677498420193798577851784064405087695693739278240378542318036203690778588536195600234165548593548773931516384501591795038620297329138822668547000555706874495220978537301595460900005827746949922874666007803199021771075655827004094913029368399785668155845204051021249590542661403118291777726771021347099542607878683964019516497313743082604406099146807768537547150943302680129404025227964369537017964409659244140280405759713210259659262166118673765679226518677632636054261473424430705780528834268914771417509465566284462305728453375002934774465561567200707788194766256590936302488962510465747470416510568845757642937132050190995549921145739132858923574865754511558920656094720475653257013993076268933194063334688093762447212323183582663907651435560247100967703947394586791866040614186971795119716117891445355324956374113687157250857658788339077326712747068574806062625480909704466878258052722711522114680524751993032303868871376368169754362675288280565421040027274960935786580907483202824166950656664253109023012674595474706280519216227980310730129001612265619409790462061179863606317397237828766217026253124904503067155921938098874210753907450402769919310924810665242017605924013627071964439393183781858613472679562149644359082550288529809999343080079268041326500876976109520486030185134597755305693963152666420152565882719928878175371892248307892147637091042688848312267227954197968093868637630954671511289943043801717552240755462450916559343681375278099225335593548886503398963541941149329575632042019919292160167493020352534948286042943061782051030852889813751353710349120054286390399781728395840321968523483624596633867703947238235173259813053379948117517809863961002365815534114827988928806097174520013822783262332435263978505292953455320568724900335307200049735142726033079027559137655678664815899172060472998608582636585717772657010781460177952963121082737597802278916519442143529254060685852921291330628512430449688681196936931243909546725375347451839394516602564819295088317195974089251950766007736425162087106255516563695422973341060878646834884124704459981067861499315320909394152159083958286347913802324595715739570885642562352252726325600712908899423095678169228435748386960203923456801007695103963183358985284322285398889028034961126515721862081231729461695565724664606257921981155278030941076071165705916498311497530326907320426923622694222589041141453984847603137962310486190267767032747011295713488590354227326075214429342599432361509765758711290681386819236018155416784493679825153602943359577015660452602397843363101203285203916555469299075400367686103384736044390231714632987597031266046899624496627487880475414502832004580758035869970048006051221304785879435296269968747057233935154101828827468266641883867910823438265071732455455794278824467873784649237336152938247058126211654113044156998908488825902827362083447945708248406962803552911845082236008732632348610268961312400475963400230933748286716697390279088968732439701049117262570954625493194716720617293384460406156475480220323284297128849967805868173470538401164681102904708640737732938781420028129318481765340820234316312130692453682791351677506714854959500232451150031884020822070951026114322870827374401531708334753004299126757019836813091569763278869613231033530073062358887143656817104520434749932671946251033616908280351288141226674824744241228785580699331495270744590990661873457423676373878361769272783924992141006397127663633831345535196152523826198642691539477557450878636806004560221096491160278080261753957469574419289521042624998148460956175610332249138924438691259942298069520146898373554412019060234318602454261076505758991194745204131988235392002230884295425418123816420576048783462106532201963513356611108470045461724649767879733208066937927187664692173879409113192752684344759293397337938482808137116977746724660875758406868833769884529833785514663803446735578494893341522139620507784068477102842546284819238490770626033822087473854663309981271771629936306105304727707438713083382883280290908716916567703147215016458281786749317658793114980463569641969996563934116672268198432453742613687909578636419549735873631799064655774421715276509708096070831601258124643239257334116475848535093227388891180882136453547552037096689917864230225849460297533370872109410015965194190824117650700042375226902014274220467348566944897338487655493649637582516119120203348915414918037817037420328781335175835719193510340220573726738707505179194447234932697845076483148100468322763091204722865590097214695358602412771853744323582757375558493335648024276892224595136704724712387094687867386699216295337856021939115910630798716971136322618748101911524375979912945021696553687361174289650145583277535185787460217167744160695891913572054020943206506027178694682301712170057101813020205083117368592726060748276529076879585350684398609580742200697653205111770680012600375052850951302841859593022293185078052882634544138750026189596268343053119096356104993081196395248862577564769830781521347509278340564133910133042579397811337667057266538654618421279187765587158282754674947874764479574987822814962330244997758583945961801253724219810272581810732005629166586542768160253075066614313261476221837688869732175260198959673671231390895082799541755678318659316149496280621212739185942208027924113375103474351397636391512145042415176657026909032572992476867852368933344839513779559145343731765857954098863698343111228432625295509358150524366415689894277208463698538583614281482205379323846423794316260120394529877748236082818367697568361898191786088093477924931002793522131131211727735227271414438017580984979510963336181941531754268268048336643232946569372442982787094359269612504913965105806175430383218401806464446092223283476519680550786159934446697453541213664243862069012541262800428557498834416536236245207654582132892320471182542427164547408678362141786908343303184279385136031339078653295283319235388841842182908613553046941049621264596223883509210381499408256600174397704965598069887601357578133246792983034589081441800145486683592427420731752277490349806513770071969164598499196250892865288268995079591765563244100458464323189854207847698801026483601086743920763125555133340948776513670585506567235428473896966239328144538355650164467941875660410910111952050328793985561474652173543628708012585326189348464317163697513296829481089628451248652328627720441761157540585943594654848403119868548514040978054819591322065934920852454428893994492512685200340007935045202481051506003713440768809660956044990869497602714000697379137524020505190733517129448412740726988479879716439407898260256397141270823595993977120586515149955440977287015610420974166161154961649022291896269129859073249017087672713047737407524306754852670029551154250473680587249168592663405981185649578105629718633684174524770778119659825316349598492942193701303918406044040948092958662561366132947754040840000583161883265007141669490475122854409887638240818311690188912926377849100097432024504990855071537638579661574245049999001211202534014741453851472752175498816124319288172414084768468550673306553366732368440022937939157775740668165387388943990816265045979872644899810337494552233240873113243755227641289268212145201946014960488663463759657219406862340177448211138035559232783877712059750503469021729897130236683312787338476263926932552370227779568141501609919610673994188410152545230472600732123793548838273730797956956389186558579463913038029968243323362946392831391815939270925420593807758571443544137749440740920284506398491134658218205767701171438692807496014581380692597391007081637345293040767413295963895195281106955257546755696322086909514559050020969208836000036761198659056182325045187916432902043431172539620891204594149811237519382415421071862694695907965434358405690943589184420399259700999013493371359039020181602913410371277280885771319477534764271014888786529317343369560320440241838878111512361061531059632384949050385225390953484440963121242317560199482987649363028166010738535086053256902963072767762150301903541031144065291131424741602105746375365635505709440036817196837525744599193525629755121361223783085532128623104369257923404250740600916962330193848743645275024608644766873815415885680833556062158374967811878246054836075368062976347904207523610164438255426278556892626916576572892228655063807886165145058802561870538479872087299737377690054136219223687314545387158880958549053450577102786547849172914817026997178838161972005319727185130759712473040899714425725437641233146341118348267630115893304989237654543032278907151035776410568273950762723976140413077098743655466772352071072700066956491657248563829680617109518145303171242093327270349955152439801533508831905336760933933913724697927892899651529573719175828432196689430845617604744964277527000566168496343695473677115876266302431531057367415757415851704697647931539223911365158188225711701551818199229008189367631523566913427574732020957672298730605107391584616790248495367713931643060119060935272788150337861317802621217829750573066283418742380401476313668552089464534308975689526199284654128948223125607743403735438336990821341446555522456466377012980268939406308438926467894954952423361101153678599412259483594146579137410539386208345424137653713425446006526018716739773443225931305755947079068258864377305003930590952627438842658146993896828566494430534694028492984283290306174251115603360842787988821961064380300409197726140187768943552530675154814617141810239500648770911132722458501320059544740900188286889326706101943320240079618544736999077815480564302015645368488920920709708993274178329114383392329879591242915042948679860623288129627528392913515591836359286913646625612963356113101046002213362956764231910391325667908674578038640349390674558194356563152703647992959023294006682115224437097044764074890858387413275208120698488894477759542588893934412048673236757865294169639781914000071609765694743849633321077637642089829508572759485279917213795345032309079764156716295542983752784929998689019287746877539041819198610602836443355128984629465623621223253105759088746604411337097838866096909848538129102160402594421628690220524263201571210365489552905207475343835530372187613474178108062986747796678540653052646627040384584619377491234713219761646440964371294868947693480377662528707195912748078125057227784060563183620526017984362094914081473065098025948638048206975593348010786847556877388109083188241790711821285371603357029999646039867616230091866725963030061998657460266157143211400363321051836888751075785115894455367776589433780377236177717494456952841109804977399879834462452998445174960897092001991538823817554643157963674997469198875521739246623157823337350240195549863689994445997290510754376966166460349958184229750839354211795855217496443336435065972581502999936466286311109565850360577518456786179728596802393349786708978404234431552874558293049034338371986360120790007477667636366669409716958542403250855744831488442466245456191426313328962363742101410795677107141117296889754198812292455641909463151469340963626118874245468001854501467669547924689878110065772507112978114552881123336344244575947440533972991844753880994644937071780761993960744632762019882473820598940689300867157223711993357491845384234738635659874514254258166879247362995534601731928814577712842105689435295091817891574827131406904572777801514955025693407568310012501994465444608835248928344340671713630096873977610151886724864622777111088128763921906828691511710551750974255410753768305310056862447934434581880633131639300310193493160200526776052785817271104542973773315895310320607986014322399217704993793941671295282028416839499978204411120057681117990592653629880792103255260122873388811632967107759977788781096904675822050987061980723953976867909598905386706003776982336878888300311527555410584174430086888883222355211585261643721252336833632883202972743069374086801355706512908010573856701469470770108587797728359264808896933424475461221278620147253275450576586415348303034665042124691687580784098305239134032539475771077119957548963177862997711568247719017716346310477927827935894483197102689287280468357498382916093940893168250916578993676847947440315745886216621965139667662306538045598497932842405032658387126467905825611778882159535279337679606111481407496776246028254570421909538250831223455336920909981356253454137492158469411375654972420568597599068189551697167914835083502987265659004959555239099085250874773986773962868450909656719959431747431586923199569496698993776390732662596523234599959931648557352129213487282562134087677203374861819513681867222754117083773298415171496868640830296464210596638919803553753550949632726247933456264912107402464457114477534957894601410337063230664393828407175321884980520888876322780797866197641094564235351596753427541294981669721246237975755380934094603828234743833923231280677195781962603647120280311763611076930961985881272757490758161606414887002089118801519113759520095035861491946807553303351590781824023343640590245177888268669835188445554643818754616277134416285246657595473835843743766339359251861176448772398416758930017049745518117492269456230608478352083140939457982774264748751280017035707267517891611658466729310417883424217820521426138429639056712739818664144416005244498241268385098094308877256561713371937899801418903080975701315394538969254430732563872285641075699986981649853711709447025672922246391091395716529102355562937337742496102851009475760473425885574047849159806406769150348992110874154357029593786863694623083947315437374844467030670463696951285757911128489564763570307243095456217266376962257426712407241165978628938879264567269539747115136664855690709415005754741471438630592692892552295572994609402390566029318079974897973735072131712469708494894677507915955214384816335237084162065084438500586680998880015587185381957711482172471739858934179939631606164155188001380751100258744257527099069384706778954883226857751040699076153198491999181750876980309587280318800763282348396347506744532903245703429747448802963204397058162388794669850004750892369151570104116732159668049426337985867342483824105517521016757544594223039186692190237978471339063727192997702333520983556997980248590376911340498984651548814692014893307198192526182387938212370719705226846713088346537563105797359631766549118515177346416856035497654465332645489656894387381477422443874696918802681785404409414732183228363129324580590588021048587202256729809231461124728278585273546084485706806717894597473774707668097790867581649436279213797827584274233804854513697077929910928509615831206992816561901987239779032393507152771304662988897254453185754063114494775344030634513038544874458043125144182922886205636375146518329745892853475576419449348060256145336993908442789630051045651007653051883122963394755093043089168235124683241238142177347697861980837915263012926455836474855217729475218470793671998664027584761817631939667999604789042792018641619357912454297955300681209287082129701532171175527574699074977495789407217166160664432504345509819161350612654232242176577827719110731702872443737101967762293693104814033680099264236952703636191788670620703771440919127222183498076983236985134213386415874283833541636962197452031265219590886201001785380050227726744228059964578574848698391012091402492818926298363354832706990877410558276274975771478362418888678334290404329547877387069837261067631790348517423558652702117518775337605359775666471467756820980716851434850485437955677860467705176406070558811008671382987075524501054003710229311005787432330001679282266958856304723411415045498147625465044669382530261016572844374501721019235424731899266830146714983055523906499644796258248714310814815644902322483614867774083820486820600344318933169206578163369351901246830606297852819883877102521532510790978924031271216411929167044029742870482956399136476352457201198636072736008618420128657884996792681915991980833436424117875229097664058980077630477076175288231475049332331686473101332404325571751095017464926010913408716203300488748923315298698154433429488213699102498570426668245796789727536591716415184390338992929009337685934843704352781492331649509865862647620177477792775474336798139601216409788842308723447969529877799194909677760803691556455869498379167480301310838146353717365580806390936311430044615981491226609880779654648399097354691689691499549741326881659299393581862535545397307728968080615471941008088468829133109172624060758315147779529688197491662553918739616286852638924257662325393538094712471817398616932179124020869112725174528373478017811224223793279776565848980965904229893986023619725368763110720713286283852971415889788549122368397154338955930958617244072108372826019335434683869746469324101937757254658937677757870295081120207376500062606782159069661360882208121501168915545297859941244621805299302958088869356704787200566048125359638830986475278547954936336166157861135866653373539446431270261258949374040965717383234330736736557141668539163882195521168939340817045742679924266348675070095731585116152626333475686642939577092541886543343452595484646649063360636334562608060087396641278291171553035859881663261402073901472904397738190713127299520419605628113916241156592268764468070410159140957895006945005662774597323753898075385579833511713171339685566731807075966155467962321562570299840099597315589536330363034342087578521425802195997941797494551950188458041902211087443216804725916234015161607738964580414447322296689067974003367724264980717459388996566142766643584015070948166029774561002443979499943322394598391803407359057606014104553378747838354541097888914264743351491342359978236859810029336155674285628343820028018533724481697551325228304091973439003654669179589937961024904968486061470712290567783479695387782935605408960532140531591781623191310235058415334332952842755169684355500358450583765927710956601453660281151502576755240918791886717606072274546321753252919339686228141088795746316156645701181787807201689278901317880287614969750581237961075157027115854788569484382740139477879965456079601937622734431100201281424158070167624052770639598071952298413183858856132585698869169171246391295978464470114073583010318409268201483920520303633914416364804850770738367614087752337717843823331469441796559607820426821107441968796278431747417988229827114199716671839212949271997989600975472135389394405492940911845465454708847741732577900545060648964034041239062741975126970706387999371832446265677216087416723363658823682440985038897010334865703218829328248729820872024437363396363021977408506263064269386581991350716606765287026738319963847874908197586550988953983718415657683473424264035496230894349930555385976804842659250207537182528787530520012520492881707069153891370712600857898452072714581391914492293317144036764467688855828888134090379756000056399560480788828343398672735990257916449653524358667363976711089379318336967351246849616111088986555750195906118430243549791274222530722074131113950992439865375334843488617265694488020796736784319285541012619201574660208192877806035693914698996510858409932144753273600656231340509955266195556463421897671532468201041472657747023748651784588300861904220803926808259020783709358237206407192878945915365613779924860116505661619271425707181397244960919806653311277773444966633327348422916591504123556073617559533766013546735626023180855415150380744868632217921723201206247092122451605395581355407650021784905676777191611568636939293900251516427970212307554076432385650618738887865477678645354461721933689520384906255308748388513335715643325033312542268478227926281279223747673311440158945600051248880376505367038171309109640758379709427821096743488131066050677136916991157623413685936159889358342587642774964097714598603124945876326437044708301101105223057635250692346163429663444148994988311043026404482859076342749027337859358955134412501080840038141742479110435928929857047992264706033068977519978099527134055774737425598225590188064221695882505640481494701747636765887937973471469301117160331447494157092352604089487792738123015859687177343099087260080241904034423627064865387621831181809574150550594882073287432149077430137239169198640538754507355192030635082120593702273713642837589858975785519789565741327456132467986335574190090364684808102748250522026281785009955858071371740332596717777564431979304955549852577721427864951773673168454725766577612491631333762930308889697883230125671265619966096276439089011200682963365692960382015421959856386460940189638662071649576536244283023226087779967615748910401184680994439810064850254986150749856521878024946108878507224516046952745229940459460232260955553708948631595799425877130927409967163609841170955533778922140547565810239104176506468878270200117252124797410525705255483804829090068795872853327338019924979739079884126990120276536057186004013393429060158618848972107268296568992165672397543534850071393995743947873489170789793089981572000425360000025263786092170962138930449686076186634036088996140823893747096813664687757890805263096953107486596414584483125238456453263088651551848468221833756544373659465492843331963355509287523284063098188595601205570364797194828640080676794578551595033566702674783357087949041129727603361078462764410217867101931717187207969222886304336050477642620998054458701684918932942762596427997191037405509640047454539019264568662601550262842466677326866818531397178173591749843582105304669597330954931979929878926466157747683853783822243266362561489292453530625474480657179434310081590685860162539065707528790487245706596385981709441109683832686926774042469120186983134080115999148136310043072910063937825148062572448206690002168788816547901015009036997856447932293125088759552476322248130194138041423738929063215592320852049207557494520550839365035810676845175950939248294707769271079488713438560258212878055338302708480704007968622739902755042349684494529736161189993748229277924821767166439593656734744400677081488504935847648483580492570938125307745902429107412158571171795554435919894047994033069000739826277131559444156700769947164908622410248483879058548916342697900814192074652221235899707506217141602470878748085906890855863505888043246129806070025433191832120819049589753318116753394356318657427432294550037489152462426648726742638214616432159256415603515672937873831170132622104233821565893568931683738356857777424097168274413491662923945073120523188414735417621527789802934167115008552633079108764314827656732745003887047642836446221522332358957586132369691790974582830872564681196571431419734649385972184037608434956477823741634201864099976117793253996795024090536515790807957838285079009888320583257121103598861643199848275087530850359963690446311002815252746132861661349685934397156290074954546816969982145203250786194852229143323940727510719751291421358653565477062699699403298079056080042528016205567496465192263647963331996721391954454210568977657063843828157991349140536330359880811257619200158670877224132636438017934574243954482030215631179784756367049722292950856593324081065815533973185097169931067385558871452370033373654143812175317059305154622119511720470309970989122115483463465745713945078997882786382246069522425241368305538060394210791316473036578927096223093852965495814131321149610716531469641006899664814942334281625463806098121839151518608048144491186856949303290464460567035754423835662371832319640556606247510613395379765068969059586524877292765531077960716980628764609727364912156167530225379493472262482369572281263380551144953155450641877895598782898702071343894851265046129242395730851003981403596597151005495707382382974740988578276294425305348208495817738215541772920327520700364050879609913697434251281485560788997165260839289429161721778105701844143774579616007408482927572347199277443254989373447362883507119027661829585542605232948743869707447931220218638207273195565622070182583576087506627008625036749572173614479178414260203290428150696270355680200353295187138027374263290977319970995623381365676280328226667783982165927476427358099883498555078709984771022622613421186933942900698358462076112375581314043484535375403548560610207971647710739533301427188340677578898490553888028977617661416510411229755437517821645597534755379966844001387239702627048290518486914898013618749074807837464039393032256042397924477467789640778559103332497952699877408385785079621769238855525108745776081598812542965603238442930120459594780710552983541290562954642867963956834230085026096800637747454718110953299755407812918276525389674452807138412755229654321614172746242083528717725632488181575233848182268883069117407594365125400638289643398647826208284309945022294299817436048185119280877318777147496776559668443587958241347466821471774924278322066656244843688893020814953378870523095556342070035478951717091137471263078093767383580552461997188337527561276483612283958980287174685026849790763776482260081497014959150816823354049678580775774106283891354676997326872110800820009883524490936908017924447884570075384272985096845069288237122836402312019516377908720792399744133415277148974455155965898590843314573016847124440303610863175083420267202149560709105678581900480090114033444512135599680455506430956469140305566838273205209724911491352207554657910045851022318021687253318359440309143967949630625999016629802901869878394119415207148187377462393888104462201366613670220962715968195966651838112982180734136373676925535935492225090077225245074883478817622203366727217576598854936696997941807007210750408124276319481886395499442661017281909389357423905499026610835021350234637835760041279332229696345129826823100350085887619455894389063532644952724678526267569348365457380282378960186403187217743086952829810856644549304529959940280244314295500552491244947612294060305207940249070130117088785467026303649034963349236930889243278644598811146724858779938622676596272462837528824027200159405746244976302532385877163587737184785462439158856341328029090658111232401150295862700291538619628031208686132346940612110076240242539296694945845987881979564999773732810430867006735743795115413689303968485453389971562252047444185652543207278550504206357324735514932166584315688291607132359714898102740896954662270185507589268749278173858608801491705892858295472782610336347895423055456363076905135841123138839290513134968576356338299233280248836456989149951242043633055779204728628980210278328658877950649289352999342060694252469409313637814753078080613216975991786846727652039100746919607434725369591272399806972458481728237245999034239447186977376810319782291753525385261668105319355745260785318237311199872947174978220599587915287831670597235473054668535987679066136245443671496023079322687119083388296138325197287400422677383659697900397522238708913648098436962230033352549557024814557919051180793593984008631859585815127774287268695282433845754760905539198581791973231303245060364761317350532726245160143197629576913534948977709677413839780771296658745122489514045915589739936734291381698883853046288268962198800581866435228936929661983780896586078740658389731384630352539387604121639524295039460738359946101689699181754917659079208446644288233469641028357750983884612105679863942407380783138228985369710383252203258526352321782981992440376842648636475307378482754918329379455450834167154808092726701442554189088195272861481891710171540426973210048918152071232830829802870066243316915626364385773129261064839554856573070601141806775459836362022776016436500232785912997139792206788814539621212074057885658668621469938937480606791801172352265018666080203226760801035414442448752947664006367265844783514187856766344834799054615967034819821824865210365274185496004082012059021478250550112380040764721845475742484342150307636684615449489943457956659619580600785774534156370077382152552581879567537686962502266953788987233402038522631923287256624565682636086059930853604096171043971975592644365314442258459762645258382377474507586718494547315509437288712124493280400952972231040833689261650731376430141915525249561168796482093838634412779165349088701378797100398835184475401933240283820353291605097430725759401167562345253379644061433219344104106653452971316236132956757504649318108986701473337008253733190179772801772627483582595231478250540291146095726780588797593984250151167616235514504965905065580186464970036108289884059045890942625783963763983598863787829899313543896001702268793043946308321327226741450982492173251584544878396514151542935353148686020719617642957651271190830827638814680619787268850485764787506485364024331218939094261051180285963176508445736673858497806792239656801972480806714613616440060276526532070208826893210419160497547273967517423258797709999702632360138959272944882275818611959081623471742640533963182843480146922405541751140494212591481482148948022508637632112380649361924396756293663178204841518199285639381941896928703871233094344547680907014171138796280623959202377290823766074400156189914031733120192717871951813127292901844611286342716247311838561191057199693871083030376452014142361745651769985434189784279737365388762494565623557099339892138061857760175703995131141219397406768282651811937793262228559559523181881848008500872520729651973918012291621995406180017239138617469934446043457611095519905623014654283610147651340335959023607302537835381559498492540605903293377349693594256246356919199998842383407948431242436276241163912564895681955800084101726789719756928573179956277036889521215776831112936820870054274830731664958682815492311653131541756694455034908763002943996064724607601556399464323308594645665771934221552782530687688127903288525241047593999183967455508966279837548222330698700326736144612461776248243552641120902754001990448635920202802738766706493270808067452944020888447158423079911640832040295005750359784897552033370976517608785942423578102631861876264604353617656563172268642572639754886276449526260842343479960646222156607875487441159817103205831602699850810787939259009679259783219379540737279170728853512353931189459726920764618975813307053936357703487546265305345401069246441599070398514402079620265237537421554648335129992786789161023339074921216025305932529777063744284012153801423081062542330122824966101010239071580056937468494679713840617403196738328619589956724406353727437683609405762010316235483124187560922250072467972249789358668468460070079780599888211093966128373609806923572901849220583707604629798566256730509804825877350548184502447509634182981111047348625559348144484480145850591807487889577460328699038772681594853212957403032029163535587254904977633357063587764717432439652086244276425623529539589249222327617349691299873454709688547431258162994601901513601557368429507791633043678245044461769850351885233312653587150446823953668674188414168139174069005672537107645050181875062685723794972916662868404705825584575703126792887501694515861655030455649000312596764002065647319968665588220796409226433014291941631628908599468042083664564312523253677861944661033731543418288106275678868128692899287756693289422578970063037784998174018313901424237674150576228343877336107608908545447521721866388438644143943517544620383171402969781083368145742944950177879892874516961730144665689901349773016742828108990413728418872361171871001757948015935381773086546328319417679312428406271541325399969876347369456078626142305917512438640807238195687216163745982517891741905014903917260862516038954527607058922665296661782599446137178565072692833895366623766645739692970343591263385308062169385784858471835544290142704388253110042368880864249985068589304334323691485846422777333797637739755068246389698977564212823458782392103244008824045509664983841365828428968557079648883448162044130972427027089950748062168429588800736385768651511622697250887353404979364747981248231400364268469201437074583806424365402206481390440964603600304989585836123368833932400566271980472201541829972850558447053266006458693832059034828108464119193949309566286838955147070837458662237831166139604692854480239859342915041817893873461360412388842469251914120290388443310678740188887992519992969721200231245643057281267083453427445778702490977301504887175116397978189667576255439557398574539172220193887580201666782236542523501783660402375187579641372517787402139676644291202484787612753288189551481996459999399204984606116821235391822909254999559481045765832635408653081344037589894499923574944961550558158335600708691312805981525507685264808671889855361122373522117568135811478924673273905997016820795303772571967777443575107191404194359926443972941653849447567131056656456401402797529421079202169729581235360108652527161360636624149281619220140578450410232230222167934917150588601544920188084340377542841189940397755483703869794407362821984217082430269308020178951487559630515369765649167498006781259610251172340393056129188406484468715114227938296350572161709168556627743124200619842088234604094525030715103366851151693893093849073006077491307344803109146371529925320738300096863264632849206438442565352108028692206666609568589790308650215826699738201601181823086076275980426443396869166065076312782913659940549394283146725476747226078798636199833320739957146037155034286197170348541963929009722712832017143792257007870149159721734448722456169555599055770597469011368399904559160826253207417131378712345502336394536136296058054142193386143442425554394033954860750452318404669558936960901506593164122397401673399274557381229780974079150804287184722152564647915518469071549056096406980219097901235006497956184958931828187477418990868845813210725544898572789135393267090010398393862122677874898335284498882414626153334602714341956250614278643741939553552685030551394216373400767368981980836904657914544664932205711761604888403377677041214319137115863884202486598801455177421471025588028264036414661760548607153889600723533707957951126796451513049719477341925409947217965248155642887550543984528413389448197278294073178888337594031265421306690265962485309731782510711446986625297064098435919431607852863853384855539210439899157489756704048108597610484594111015220744375104008788165757883568983213963861818474639082717958709487273696947650252939965734078139769737792795229690841379819204647383767438828993382390457935181512840931662694756101819659629426250273929361331767714485645034928761317736287448251053151007474145286924056475916609958201265809810986733741565684256466603582140926049979144085578040895045498044298474245116459818656435361586376460419579244601495161437493676446874847751974868261187230031305227719665629280323163238097264041690493794138174851629873478622009261510025141532864159355774291051763365050542202127069040330873903312253369004287981818937648944417812283594497535416940030276496276586622949500844337380326518827581236424846360787394063529010397933355538308208478231248866606955720287533084240271545012177495656217416899924372839293398444102037999167103368938321979032657604319688873742649947665700308901582298219825775625265284006589028158694921892555772136347295271799020904244769417967031086400116663517449829004380392611494499754008527707809223862629739411054061374997176231670707924869584476389475659837217442648166808087095686449639465267653259991697207199047110883440090831822876925476747904235883696475739250834271873451787356889729104708426671147202179049144488663824963012514221011290732231857897979247405860616702498674845210236937694072615173362483396436862995316630159595051027296188813857874001598177748280017110928883827967498190752448064318930198885860251475596726599330804495200396886924545772372230753491104830399935076523825446991602434008791984732866165953974867256953419907574437890409862100688047003417241708414561652509513694076903203837296195439344452201287939139809567396569231770140163981066115631573218715578211195168588073723097941034623920554536174930497014163438383272235432367070739058318316128338322166899146857072069745384078707723287721826875405639026589991919267008910959913870928543396560563596691726937314275289600458532184719699635695372273402779413685651360591803171046150112849172084699522795608774597169008681003618786145838201282255280117322580758463493901798846913028935488816276077219295381824091434606740616522925916636776120009509209066248720755999789853611878319519208455386818209689668207685844380977587790729620275347175585245494630749389844388877424467945683171359840131745586914126011348412611174643497126397859969830943649882097668654108137018393564595427377684018919299115392523091313669743794228821110395685758650524733490147905140165302652193819787890325065631540965575975694359532785670245562082061628504177241938411314944879126243573239020862684701053395843630811571066075403824882429058745463222353880248450847349398485564799361805993312750609928883334632484510024465608849138103402818157779379897158844621404878106616073880047932634865739557896691948437788104529740607939767065748671064221081569757148477430692933093273900175463203699053636212180647850588664195915079633020819802217725297210028124706298073222771693594847666136582389479336135394289559406998631449552284098535840435972632092679895967629679011640788550274001563290200552914955443554545330655742530260810126742880521586991874946526006056574097226121465651139452811548646213030387312263347235617566942014338091813029227773152812099219333068829904818245508151026663308174194987042180489645583112383349678801571480422612220554762359567943457251853462129928718778898040784582052520743802701335782152987561973337308607290514184788700880437140006164118118529059194013077618467779861510668469646651574421181888512282773135139553883312875866194081877308938981074997308328874175615860543744091787657058269096636770361360796824149968340020955651789221689353715274183486317717867058390608587044746199554223500157354138229432780003328454472439724450266110920672727243760093987068938488570514962472495267883163156710067761091740415655015130027095141836249483218023392507713777839830114923635339263297415058761990153103011458643123770497275063262137540382588632509381145546998054826792560098461400399575259559511881963199692573504798868412644975249320807111806846449430273795566646635006102581711048473023014085233403548081491654681715518685125498031474746387862921687771487481910810878118654777795326199952298387124426299201898515936900239493343385732228198071887972031014026847082232918574535435045731152136701132696712709334801963867885699431658151095458638484780855647748596868404939619124373599085541587651147824052788819969557041807501480937272572846929109788761723429703612234819496515382310362898279663439383490639763355552671768559452817622932582234343737170819122710418125065435174526890524594185794964788725540460167489192083969566138651439509704743512821098205595406436190667685646350247618126264899293041443869823425204880036479049930319021283275469801421319236024454491202379957693295599534046423165069346257511103558603422266769320801748015081469869527931294296648893822156214762775750734762853086494318343183785618895724735328729741402966627090627547915929686206062757366203122527063987246548307093321482066860354975431055714162510639070585808109568715856565256178148586291460458241419588024479146511960969552526021350091852211408280086984504103146110324336509655687897450993329356186702237695653827963817871766483697658250258341033333287275936155654281224698326204850360990783994416478629469304794371975304827834181298397220806895720758203044539853792563899241846047223954396246182498399866798459893531412421348459853155828396809118450519813848604579463893835550323186611712349387457988996452336776494132232648664260349969042036466402143510362306672409740538713994778331280447356541809003804222094571036334656210333064145864214773466771073617151316871419599090471404457523526221372884688782794076549470851507325625367557939966491112766473208250960880586044253583965620532203665394274433862136108576360524295081098431830172937494807825515867749412545634998272169022088508031900072284728632621162280180941275841349746456425669120605536258215535243973007235965608931820111473971643680207072629465346524584066842081197357159424570151794400556261176604448212115666872634615286508458122754260433803242774967270816779101932558595704773316822264943899392421077092532668952949917391364780796066486008592926497497918534014449818010105930900621325896344338804283641415870158036201034413825784296595938360236123769113901129162877699759086757405553158624649300558407756693929670822263469937878988809918947142966454750801751216614040399387265891706268199183808477951905645314102787588118667644104223809004512886516007210978360137790904684408449081288001114364316602938263090559324726388224164966949595910738479597606895938010914421091900177519994719556821474324551667169015065183114895667439520633251394573072894109403532361487802338547412182744467485407347914409327245031548043046614685662894932815642044335728906211771759455035883291983486196821266988850800798578280507558457376099928489847210652625542848008543042143184736612188309003361625893595470446134699474062489271782181038737974838230265260038597591827529455297745046679149129703078530944966843230970823972528465183937955331481095157571452241864215688969728210433378546596109414668008838451679767856548764942215151320522823377481683139078994127282156532007269326335305441340649403528971870510316824289795640912935825722681651984033672841686614104013011487367056517971896634209823528379680440153233386687572202831211438555656656662215612373601929872958718248632474824127190615163718785981122847683065507776873422113228978174232821738810974156960965134647686957815959978997716989929548371656421839446426730630740155098437100938114900171448785743263245860945517045189663592974303781394339526328625448856789005907466372308881947721851165301143636420795135274834834570548844000018139258827757804163107435783769638526205926915783425117134676142734621249464899146361789400110334751080265955960383292356959466617657150913117327641907767841966304928173990465413674434974803549488016590956361995298774420862846838998288265142367161521045183352896485965008948239991792449817058896031391387782355418298092524710994041789571180028866684670402147174163780712703466271817315665599353702099177049103641950810302399547190051700395958294936618859378475851644407356962219864915331821545609767992249003076849522236366444058996405048417099152414739529324188113020322061937812825991685435674488298249704857805292272891976404843090017071957419910486628024242684304816389752418801036611394569833960585640745295234539035918739989715018876003389633941307336415078117676772204818234487696678065098094699438405826913929640994753432955079460684754974862230003725900665462062160741260437249840137939112668273589410236352681334709447494584813202951674558030765072313408932803041754019251938056143451019151102013818820568963081123498915840780303594667053840003359456914148729329882084739670264058412536420834677100059566488212418745405298749359296039142641245456002766229105498356093862925982216381038080419438269600246115857806663284909981968122777908087173023188381204880720474479683119216398828033012280420033091914136321907469942510786105029209172133506894906273919997673808354684522629597612457021555266653246785803130763937002426799417086324669176075257489616219972754115876476791814330074250785134513688567173836250061314614818442360624069436804999190253135586219806681094168640082641071737539128693660414130113778140980383345904893524738743696480398880595519580028792917543251918831736007750620295511521227000711681285428982012083929153465950918207175384941233854217181051570818931176642770257788604704293671145637071114250117912717085511375542136558909831016753354143949841214035151527526051689213155941638903365092658173150105408822931560771772754320085653885338102846113607783015599806284283365306757212718559463857545868344360053936502270691279236386574695670339615265395606194604869583941456929226806380598576429426962247260206658657931785783698006365628476389797600884539711065115604726933999744637790823837628333763695511024898415470197899547745394163248875976642227766474360064197360935856553554991175472066866465078541851030714547385040847570303859193680685933601070232682083555898465270665836937841958529132543634038768417564754444818244209279659027003905675943971601936345257523783135687195855324009161477874293318208767314433366075481874782361944824857104283330097878013990122562718771929178322269122906565862182933427630405373653086956208307767684434918817082029171489190718587208332904329424158248486489144739463119036347180694415549634172381092816878912371812206148651828749112429407390642089572213336391531765058427656100268083811150848163689700863767888789507663848045796991033111760377238346473279779078593880638199297779705536960891087374441492988147960164057455470426902095971806598557642564234295943038176610990472653412234990152338712228634309221391752418042149493597440625500945831042583414883937388799701392263969798195764976247846214267168445672561966850571598494116723249755795389079905843295381031578957133515005127989860333172562526432950878762118803407974234990117074323018361994823920861434435994991739911435121198426458557640873175507700601561214936826264598783440744592066662094826234062336759600002566599270745045471942758477890631549368380230986301471912385197062894137715129823938227893545317053903624539891520686905062655801615958704198634739994406890575515710926525520654696656894241918856857554345140768034735677715367540427059238866324817977725793372059152497760758571431973649394407300665796435352329761995423356297659055066142233101892576534646183761550186725653084065630768766352031365784332651537632744994997222522650614585293488287147145637513491785247508600147160766826804386017724499583523862897925735655149033751969697165314005979703290494979990496240277916488690187688008096339091116131841156990926061640896828882522891539787559359148102894900543174133799876224205347208988549874381454973142206549909805377120881064350601749989094068931768415624458344627711974678673779167578903051213626196001482035523549924795285934093451998998071184052930153018740604191012462912426279289252361992382256533272539689077357718596879813696084158728670724634365719394336657133058013968393748749750582918405930844078658603631939840060938258431126299891675053821772057405492526473455781585469350983607631056723822904662643261054517366740611677311239134857467867629503089888107315564998908242538543733184281622389275731073723094830288125262011260455388890405802654986914557927978748365108702615278839339890209768458240761556350896745796838325880246203011323097994491699404433681536310984578021490624102502696914738528533180859695916311695211847222017138216677547141906301872527291992832290482806003812187352111603429426567411615124265604042831808315348959588282869854454877294480408762525767676443962481757375947289725953082740821264343933866137810625298681081950744645559079934334692785943640617144300871242855327829216669058764273271893001658070370079487634168843047636486125293724464590213615312876330226447138589231988580685707463209646076936782228464653979281151201862468212103948437696876786556987484905669522655560992568583400939377350439174592425589658670118940762460092814305355051455985471813620600496262591766951414951778097573633965692799098899282676914032829987253616336263284864864624139801407492864586628781093418123714913568360493622251976574553508753442049452085045678031361794019051199042750108405209382945076893817146085389165324863680114548128112172552554222035643612588187686895648685284315241211091479616917119108940612421486308675527953325284344891461703246885755593329974964426693819246224043381947471705054728450437358305494510303031799338231084012448303373692998368300803123683415440129754966613805555659537669730965769099052559300090067907802649805656476407076859153147306490238491992850138726306107025100830016122225743450139282077516511845519783727924614300123421172187327614789421345811420506539383308200131582575682886291297018970617801815899999864501228079270838903534608614600950114170601557871608232984378690398748410028305646859696626123556796691988848996392916840954144918894956027412559236302675909107832890567748084544926507462261459201397693845383999142366863089541026410277764029234249376500883242691105913278358459951421767879607493728276818406190897011246209399819947348590533853818857854187485059921897294465199844133277634442660037551888189749047750190518421408487060581521349511310408747013549890248720511191905755593332609837456981053979822608339553595901440756704945846213947868850592202230288200423338027907250858395408155038041356274717208813303653102711082173836226167504869187958806379526914146352882364524393976342725912147835337656761363207530308557372803011727714229427320345618624531562392284387041053046065316483269588904249183321361011737929256880314512212551662631525269540691134926910081240235576221315430415022445548701679764844900803012228682144482899066939480906475556160415890956810297323073194306590873791106635026193535311799758061690998439289881785008506633163121733283979792899898271371617138734305866909019824094356864351975100042973393705711538944511535607700002018110097591300929844394294081161607084190752269271505715439249088476180907697360316330732956236218094137808531965252390907248662997647991740632629878805976080567707445927964651057299714736971278006548745955101535661958538589830673714056132018684480689488723204622003853377142885090681131396150587125718365946052849923157689592966547260955935338899849898999375350985299715573711852547118853368149103932374437492574835663207452194020572616565792561400540498468037615127808068044621562155323523519818084459062255079013475388751939410653302111499205478925883046691948082706158265789716654328307210634367793771242505131225012790815784039731969575573400911213869788976752098574447059397479920139504849768229370482479808847120800862015492550002398510593278942558996592315901934972289532756119496422834078885479257023436104317606780215670581401000500450831142797083373291005181932703551532311684571468727948492265075330923112253541437221663364656855732101814048101779196579141402658923325944707074059443582908404324397777092228568237497149300813231756565220293066887011615299203262488843522740453638849525441505511474357779674239637159774165542927572480767999886496003206824888138368474672719859227605812909227034045950396877769442006260289102224468414707039000632350658012099522400367265608645452869447105079103459278355576523267639432411736309679326311660198624505836792193261243938656324630672446073596735544557937112524007379254365259805585336352613022399315953024535089515752890758691859077329456084849042915150739487553129030566273011544550167044234605408357981449769895279684017664547121470619091457972738473420658900610890594764010957438753807110521699190244271946006366695994709716423279242467472772926144841268409258180300188527113559180343434990154874002774129213643944189904698802306840153591579194061515559855061540493813251992443629406937539708460058218775918121938555263155978556643641928755047791003621253981004281355373577491778248059320092733413556554957438210985694186090451251771831385826083964383115548606668198947615306719747343413512000704448343630811489004629034679457680927832085372716766678385479493939767880142914138478613733767888380259656118658704693850960833018859863571463411308865085033769020945219785705323353878014014265584766317864813852654364920454257613770640620462317031103334379029188890605040376074687997628784587688609608508494574095759269648801888491477437022311914621787576868656391158723322823400335882156161022433238101040951887266360574824270013828736507985991720107472562702788265836508629423243595478614601841173098314409133198299580242383486794693327633275598360335101239410359992752930891712344762718215616663737010865366223031516722668466655045202095823914585982101663644498907565731854563080629347392136765372085574417328273763514086229534439198121834307007217042596911681738944196438174595055083984143460113877231604630032858297885101436582381804193343806751480688978360634116445842536541358290246578353585476436849118016742047599008055788047860615564294127280884784991552491828250089747343299501915400522932435149455206471749912968801501011416017915698055837969846271192090395985565277196605906211152419855731545682179693565115273020156685566765241919897713127210376934640010778176728177259949705271377459645593685339486774305490544062661892946305296003451550155350590723189248829243024292983062623773676355328236645773945745429407342050782902430595638760922062839852725989884127728566442284821389724023899641986654981941608907567365012154341052111454258872707083121934248594564753598432392355396025910163784682925997120238629243314757336261119581036422803599559144501748015323769874460610793630464329875273798829001905519426270781380734193748745992338420597260335747171008623719861095095038296739993726295859413798026559731800887944746676639658733307267347958123800328188603542013365113412768729692805421289791650386756120267508629807894585511794171484442053463699069298150195416420797584811423935938331980989879324554207361187394449023981454304287499580837794767031788976693326073256743986264460644762985035925659382975192336327123873412215088618474570018413414106941836375159212524134036735754436134825411876899012852873867790517818995507079666644980397179543768565669964951650313918720809276960721004828352524587604258342322498838380981866065948947468858944955037728193272594803088394113362231678670693843124641544118561185686591652647887791612953046814386438717104604781520568149904619791770453219187676807553707437710078105119759994450164954678152148168083270608430406526587681795063090772901418763420742682832408980803232055252571305809547684994784320942373315589781090538766126472599436652820410632840477200203426620279601565233259170661648987654751465531817774380977176678585464710410949241815094574786204897906907333082577022977017452110293829070282715182606464835197092254632788203095953957148348484057832579691124811200563487952208162383872932598020739347767916913005989802853158172584206444330182598681345869843246958257147326988820165622412141281614724871429385346177168981216130669093805523430318058140830144597098644858987522636562832448814413662245419718026668934101153883844022118521018538261732138066794172534019975795811492013970028226270268702632830028633010006840272871895118613428649483903377307794998309653947963617500832478355196911413597052295117727580984678638896015132410121999433913154834693504468354629095179465430099928637764262161196341784890689991212413394866604536854429585863944312320463048070865787731239519331637393104004533844846135374319207239930861965304667861075146467404942702413626270587388900592248094061795753396096842663018581691541336232616157310164203422344899710644157375490736177140464677435881106401749659853452755812176755138312220504640733950359284023314612289332611616584401498210274430340451861195075395828001768980282063217315254428105889716357601735330128257598026187267631565821523413665866829904880336939496016181125204254634363963169248037012209291070138696518589659057298604407175381712997466654625160895889799834350170926546310438047914650947077641912424361925164275070385969248022301074537471644287923391574392269972523920123208334530156043632087827521642981335028596793955031042372135061574941084631874691179161386256006591081606282949293707930449441395014911469828657233888569965211220525627209557535163443292150556570268959526275967228541983428627599458772082793282657700656383533789137703876268222366464048420123726811938650166566783440066117580785787993425336443995179883904687273880566830907078098562451513825425773789934327054008139500877913509869457635732007608279655233035030529512187848001125537676839909987162055724188639801038278329799112301977192731730142738615767634734470471391023873809215533665001699617424292811396210218729187908321277233616281373539659153454971751383024887967707783520298311998501071612524178484642539412909127515823604391243129200212875794346806497015693973471765324590891926751707793658389199997706065016260144320411311108485189052479851088475607491408651031836120475907809970879955529613582893864405080769652052885747515885089773903061172797594574092846564600568425731625505929087363003198500055598168814582274159820088707897704731539499607398353256123982564987092976166263500004326947899772775384610409227705853384800832913368534783907976612978614546838333696778886083339592760213622111348124959564119684143862476791233801524606406171690806343145715333092531053510118680311497232699618698640268224698402022174315507783540565305171910777943149023230023213714259115690962521125989251962376495070476871150385776292977891445870503942386773862667515192742483742781944185294342835103741502677956856676834189620981204754364218860930909229281082249685250371470378669033474875737269765115407722716449592050231286199384256672663144998201292427070855372200262863247386397612094119257831850075949169052570583636365043385791212574515130087758083734568553020789255452934410790948169407434958738725541226429728416084996081247651176723565391488797569287758969780684016998868318087623749332862932635897021094724311352056939411702465804644850787394757083155120835218428898907720037942507063292969404526432049987041375494283897887658855262613628787815060506755653450227581984093738228826533957820184012785267048070412652345896670593483597155924528209905361880152487960214919965690257472924505675103277693382693080817680310838643931846800816196878565206328580058360049528334179655437163195765595146184086142497314618035513468292400753373695256555683931641549577688565731093470564692917566547794918257423168845828677600050195757394998796821407390367425974719008827323707064565120562911333764443418186964803267306781671176095643014748013447314813465704136607247961349287860968089650600039838121584611714908759867400370498208663062419578914219551674457936884230062817602328384883974947886691350703331637536648056471036521930184366565090935070730741626424440419553753377368115071194693151081627469566176783714134810489197422828750060034452358486208623478080881453965336215343481544076494508440972178512323131954653689586397968403198954309684107165104163640223985231287049148148145535174316768747831502050977380348577478097121263361258426962796097140211977680743503288046535294089033963074828813937442204174458525279734494161200596649464085503262414820067073175426745907848432094394706516141669337396867315729972736692394134689820503080684609552818509362779437508429215447506899283829412261701713975473842524189575560153857715910666948560305410870169423174596089984316055724141675775314853621628601659723029124687392652769228142614498209821049036397602726368253895047045706807490261083791216123485440924287092275519968859104437738671826175861037925854455593695729811317011824343795550495707017550340564441167300093486577610633104976326016235498347057524183065580349436891624334422354807978039772427940769002215129167769996319976177767271163553593023082376233247930065737661697681493377361929144244507881236088631956021936611052972108845643740409736094294388434152818381802167731349275388325316092782566226752472877931369456587814990279446795398865832225322789048608458073309288428513218395816992168704916408363315009813542040899211823862413371366929693955445011056810320418937702024255990494877696492347297743495753688746343650020977110091061750944865769078957503910334206424786093711959568572292086717404759250187740679100861080761611050707496577990783702463341273348256331673108988016700177692748977923335648665867098718412313649121357060541594488224482774149915503856958124449664853614568672455093522929044838376141356351235978072527381765358460963596577926625968110063426682601914522451505731474494101424395044221429932148046349067428795153742662262569576148368967289686343341226273176772474925752692494177106276322007776781405699708829841011546141785263016703876126991037268011713237467388680918971977845860555181831158126153631310304878186648835573084094154334545024572220903893243938055187714192525066192386368533490095924452470610305255107825839711853148193603524675064006957963051134089784501545549212134349074956828842188142562766645634043475676889586742049364440681067468164511256667605916858065884212964459274624795405156800990267187137518650872656102098431893988107423700255845743496345966244182796534271616189462838765561661306786115219753695621496355153369491095407258066526369532628939639914234069758524253696481992662355221454030488463284199678538509197360251816801602233454916202008621729013666124360269648031169640997846850946876120346314458440467131351974880813404069167515609441955230723075264706724806292422408087299999953031862398683757113612769745259395764323494803946582470575248278937298052860250397709317809250955719154682211388590595277911569886564795924499786280429633636913204595668856916080074384385257494760224784808757423390590867814429472593328464177222266620669755278301477837352730400086755363256178436144010119119091622922941869052138980042969305121832741433083976791465697427539126264814897304428164366113067526956611223302478123472735745904067884913489551533442089479004461598711498212335971358078519383835791950358321606216713286207571138795558636796832945360017380678881758081882715401836961775917520027471043208427195115285595497552889623320548083482811306057954812856630984401303362411388393728782770400577662581524354830613118124632152467589946194237266111694603222689794151640957272434520662353465756966103625102279549296559863317503338060483384950568771979281462496872885630768194981544286232002011367349878437647063065187345856440471704687830217621007563049320657118640463741648046818038692378121880806853425076679669121213915859343350194477747588225536840717424819804433906599412147536475562704647016794866907877917509679207641693918450671806360768096294549706733416339815511849822669961501201131442174407131594611799620076410890097460829617647438763019544730322660465258513477302575044458452692833924237421665421568520295670999215190738318708977861434590319488620556877633723388689855041202905812137803911295984020903003600302244876895747980096307117671355759978763878851445666971080869376807027273023101275057480973439865765599404641534483519148751567190801964255411832849925899002986819756697976164853187623192160105074849052075935727185923710133823777060482583492399972583826798149824634969527746832791324420105014161545576668257480858070788902531629679457113546742052268664027862723061770866447202330393602580895740346729906945205173173031819178804609265577752030433561307953289957027645547414925201482106361936669718594171520448939413210887158994946155980892394350933532336984433541191045218564484555041178073107038707590642825637382841458704849822267976116437147128551375087856469857868091054231536744845869379121438943117195196668095074576878421518776828816282533303488557972368739048937159729648565117126121352428340527554262177501694651269492660572768210201906525697934978770857362595592680524981023605780798400298295105193286718553738000257925616788595780885321231246353803575033571045108190522412323062427831788505500136205140132367699782572283140993267182041936186207087230682419589312370621254061075910705127514115232353679079513443502844633168275503253101505005266509498194638925865408507533566218309321615549894685893794886260707598730159963261532054893113510629677212439330994761584032522726472387739088597577931318201669150156727527740741460843301870592753844252653039460648893652769561664083274676545449842306997115344075713920886831550718265405546415988437146708733519905549510064782593354541934749371152710502024665335154722685163620298289920369973260022309899622677216389068517288411695889479634649643531208720723368868054134932250076104016551168126685229147373602811247348916112199674404477864323920221580373227738972646473932907503962333045889646969312240900612079170989006340427503730241394572824810077333388213890989117764263482058137282489244320902209392280474220061306902499447448053454366732159503924647440139451117581589311987317153922846290817369184871753728115554313987836464898680170544696454386769257095008612761520630333761671266599700525595506096221013343947733792016475134743246553084953069148657114506514523836856709354794540533380583027517771763160461579867739281461174889141539250044841308100626386625757504290419893690407632140868226330910961872007783993750343409349421327055945067096176259543994796511121295065956375177296543081975754496973924805544671724532344560833883236998283167779325513296261464282728772571507024813925979925161159721306096231170404582450851087364198415457784903698980978022063475294206391999543372496282788241729893418817825189346236037193208590783435912898170393104324852568777610252193723300145765935563107710634653552976607383324706086807035144849551171448030478003601024080357712744936282240832629808996404044669470889992019947278858698218700354572620629796081626993733439251524797852744226023217917377475510977535052998861527749893507321802916456506832188542318817108989597815026286584815961032465653531515622234003177161823754878313736908580752075632241398683414162924765289238933812416053920252188931535875864694551443305972446241111699036669208491315510439987881887507559755040865561512729982070198353423099092145705145673793662704443928471738455261580288424704141374977982828357840784943539064047493136951563674928660755438494885393490445933477555496391278961049751052024327216427358078169682179479151838763408652847001393384775157103177347436698458435571989115452088713847250159460603624412701112636620488258418120357827718217658162570348809812394414035653220111085411667178581434121856467313754430369079744308174779026492917780030599932893500902212155633601598897460370339452649075511844168932428660638484447151587854221755298700364211957538881733152759236895376692410482579844755262158795671540622621831198245475829043232872031353214557414286813819348654642661759839636645380091661837733116754073340960918101067503424600189757134634092349944196071387830831199792282869014278576698337893924634638605382986913727711260187198208594622906499035392601863959740150367557163913433960402152852881312594711833839501385917118422148504924333132211435544102368470847295602057148789222694361145815041910175982934296552955171306545706914747238342897212955645014468274780797766761165409984245193711077271735521184980668137090380908226779686985470940380473118195393377309526533369268962415465225762904003563206301287757394011230916508407151258657656708837594703091634645560741675368099802738605953927041147171363246077836165617530269989075221450679700945001857192390349776798951885181634699043129217627436907226157015289638451676557589921035186202009327728998432854190127590702256618799159917444028914382207182121256595626826678996420722315171389933278854590415539840884920249330529255394064957060492798235195219872450795496923663860009128821937633263387206696201176351103685762795254351023741227248377883199507911500272558543136048340969756026104259206310306481875985740612208320574408766506775617421180827332122187092416920286464245658511964384268824927936439592791991427185260953865159436411858406646361842949483771240986447120449469002500480784914244241108324685791135139941489467700118613458736522546375647502696000820259539957544949284612850081826663168131978687031388260997774096341402373194613451489373127453511002332613403174816929718301241914869533582512520777795626400623396177149547038540385876456879419785953989614772186647523816929262778454805727037370013862950790863317233316495940483590884508991007136316530970533769580218756604991231359250593810036117407738098534979291204737389372924677052184414660036812861411110597174778745060564320899152482513357933003342940772330628392031024815091819611449965927622135354262648850291400150974914002445344351594509879848750062586271836202707535989170144360040225507295975051370696384555681620461697001600330303243490298266668012219189335601600705572806814425883012984965846486697305392310615898416594501321005632638822808375825945366273294861049903623920820370420150909114125037435266659093680068868061104209262274509314868427536994322940982756381999562996295360313154953660134047543956670652641750066473814761774061247484369474957408746117577761933516428766080375586540172424336689904184737439350050260093897352483203258245810457192726376986452281603969591928091337930206540356529709418279837253860458161868560915471318332998395909708317947639973027006905640578763576402845143487083834529153942036359479034566679834504596519953456424953142916526872055265249031047887076913880980178932405363179667012329993200924393182803129602596542263270446223027402975216112219844176925696402513363143147349492989791142605937892400582074209761648252185081246928711785241367910451964923184056543883728386110477395561224884658296994740313086954952484707688737630784291943067129543611737681413813806202944874547599249915660136148969162740424935493685264982656809170530384087627556106869696862026718430049057297140490978773126826420115828928864016455168852259468153985306673386371418145673302974709440984120794321318049106993582261090669600196864331756416995337489184857848525733851592900974518375073450491577970479938494250605304842552568725987499800789049231754778235364438550720737762415431972548507393502163264556152920563490552332770173017014376911027578166384174063010333086258212758435362596550909208009600037998581802453440887743487831136544574399724628326234800319673206443830031182068370031627424653678341537146681999087613132686756128099331694530910596633685151859325166224357190523536924066982521097394533180956106732258261401292532420710736263886154099782181355914994716645405221650474964001574108140566843521582897300695070206776750280896022121266280122843952722718783052601572592622990009821547841652621287723217883457888665649656993939574896543492241068512752156760441372555366599304625442488690271468670897386625834699281003762220715100990412093419320819728686289316528601744284989861874319498964078600557271539084143893197588329424640852278797150302991785754477220745674977984399981078825980372757940225535228645907292759991541283908908093250485539210682265817129045285016324901356909292216685103559741188738420808973927152087495253107392240313407763966226425783306364051247387646609070269634718188387829698221872222553737222206392164037363644515261139655299714980252285771155314969593287243766955657437681727298838976646919774808275457652262343139344213792724699559045745025406206204670425864895289809209939081582002022362777032943794662049236169866009930752031171564357032364546822475200005597789010015557964034847560891267473228774617971342756081051014397628430383156015263339206903283832974392089390859095088072461259594473557826852769065979836269410910477079503975696809103053377781512739058440633584284375921624825226655541631506531784187002935530675919013460848872247114723880326739029064559795591852338788370608817765902401603809255024372454401183024761688577845539726866201281163541056679662412964537020982633861950824026066708692433961202682057340024784995538836383109239835518281703710219289508105063039972593296478253845041371633067497589287258004565390312490430140157076476442705365631847752011626146422197716250459466377515907888114829718615967904253405480294327253228383001536434770282215605908615927932217842034532477144287294922575210112321111677637476786124237632511263431490746489585039386886821289791505139619363516089350425818821279319717230319379050837059069792820565157528074256831703288477672864032195260236208786672648303388218756868650023807878220391582931258130468466765868753074948024285217295285695853420706970903584967215535128985385300329774564000197792590850390013537435865144809352350943439805280160844059862686922368863220772819004925159167576743961091410197452907786370683141104698857654060772240506878884038445290409582236893132044403792367160232668770417755741284075825277947927459202687137591746993811367690789058695826746745616975708452780467401947388576727441628811623079727140413514333127877192344743011434127966049861015280265524069111424293542147067373676105846358043912933854310409965379252321500675210580217965295008127998441966291746264689729065583410378390444933225958296226804839405820719532931084036755865454064444502828440310873361420957602377125396548639459608166104217760867997063561021545824504673898084670376317745032516965121965659995737955083040753023314573077169541968031291001256489497958857159423694190740159620879145440610755109949605099472185647835722701872788557456808823891309950254754138389928436175337323618647370184429763512362828736360795760199399830232391114479023482744051991919513333756291399072778281710028500074041537841532040876524160417496666597715284086666959680384659326364498105906224987862280242155846137162694137039959694479347141010194858796379882663768783875430356507230152960032896209358903385470167045053843138308022818167421855423599096279819040904699310873671367626023030157942011278745068905352652577699612356406507053203125992504640076872039593084561631843825476689528141916461783244926455368441384992038877814456801549786302336969738204874796663675787456488260541339166752367815213598189270058927021965694788031112961946743646416648152990555848141501542873738777402277360059451022288906160831664348114456231372975503386324418826804357830930650034485861899790862125709386172784440792596768876760128226626757192396995933754585357778882149104348263082022908155986076344328235597795831166179122549178080381510173616269562788855765307369463039626561831830721545752616246833540171496453991108446588360232205563397416773136872036860334145167194726604255168214720480249277347967412606273393567508313953418289663640297630422065703864330839858487977099965954947153572842178219711073133814427234070570856071476341980824237630616592060740330951110820295904778354840054561371580100447110751977869834969260569634232178607261973904507595235404476756935488783404370902849651431610112998623700925379297715226248395590202015217121487048190426759914783006928991482421016771115579656804961110494087803084612455838977567336781743653613129916513902049117319453539094859686150877947858019227967322097463726532750792978902660103323440675337338527910231437861742730491467569603701467863678376991808322861917984397484770086326576329344104761289273643547235762949255466159750510602044236649640567916907383801158028311378633629545471562138518659524518097159037245274397689158573139834710380717056305452638285883510218491049783758949566886371751797986271091410059557018541539921153632806646821364478674742270610769172372638338758663665043695244517334344497768302876702594816668562160615530927438933978224416793802545863378117479748298227834171152698926728018248193137588263925343569512304935436613519110978508651693372359050413272284915011875321170915339438327556917494515456477101398652979274117178778058715125647262516505114557733062843576443678872491149861683138213274637477234869845999257934460427033419770991651989297033000853999247715441344495852087858184792199802759241768929393770870651813023544882368477876215450670303490111796327406342719617922562845500427857320785796965374369044640733717466088986845950907193901497883762260984561327351611885543590575062611276392127303893753391918479488526893421718303473481754009058419246022503482647145247275322274072542791818214797194962550588923630908602217944159529687606190655979114640409253088020361804671635582615379778053704717707406450246845728542771316885233396482968929643760412324321260898953981682407608093756026890596645218715042953846925612179768426142376945262901359098176944723017460718725894342615450700096095887498540625164064772030365263882966807117427295632059571371894929437615817060163807620549768622452060990282216955394609271297563024027921538729678731275408778274501402376392213330474567433916300237525872239028492079469140258537441005703600748487171824762980299006351049896338477180845272037722638078388438729335597237290352597924147681634942832970887875580585078718542983776617345409804157689973750060811294860858307217718227287288822070324121817691150673971527457458379156260692598447236539490225135608037847093021282547103611254456938146211703413547042643464457324209378834007200669068933075101160128808536814040230606979949578432418699592663885483008501941386489830391365184319807528395798279374348658327684392252448227131379096245552683186197716499665763191386781415294103341667420705950480485063700186260207153949553270233912634850233106496587360952930400788293400870796170525286077909627146480441254530020066949078166388951356114984254513454704682038132910402549759086789363493426532874009493692436417643793060611062394853284591858215829141916297951636105893931000999977107399612350516990784255944794325094626513945018180540445470451608277137685666345951867572389103354932564230250395636977841090697662561343936536332499801967410554964996160951859766171889958350659638023108327573928107794499030269027062270950397596288462410990565761771197536054001756959797728801224480182433579025777937467006773126849607402613377665121296053818439189004598511836325744167580632145776075231790117864599194014927786723460097645244725864487955328307677226854771722523554790802375261979739098960501662434511030434744384161852416715244887102648909046663685100308918379360176247398333245414542107239405125321441254460926188357476669163861787182932356154271572016875439733584521435716975609116227894508972821123291666438486012059734506344771361189862451656713653863351525234253897257412824713085292864409923807165770404581250624472348864051913233856291690135490281650637245156677455557683857196725310274002005574010264790711425860515568524474195298542801698196849563886323134649008973734779987022074030812232890269861305790220032243774166466732916994957075787585527346915951550141818805751632726185575012728004215566806098018513124221481536587454862555970793093277939443472476540375987987348742124113347374655916461724510664301225651093003811182523592854010414822929565310517607215226285921185881825979505737053657474874808331219693320443677201051573867729563942080021107846078383402745639647928949448705743279804626726793863107088246309406178702774582022953672493133882499787538270644726720960380850961476689694264636458383071197473463522876571000963613347684793353420625788004744884897565011637627505644056934879091889687791460346386515901950520223436298242100974519759774277484379027541051911459710356041199716215107680206345892303217293704880351161961272616946177513344051091825310707206090922732689724119977385064974989774332252689426581861824884078460497008930404411999179770339332244278793701990116117959692050056758312601751591187576277942206022629719461398235312853143553446048267557516433825041558829095511226718704375806038757698712296693729294354806547020519569288209520433518438979916070410660947714629676182550524101309517375587570493841094016026560398271006419682915566732909281241489166512157210881794000787840936019062654709672228047868598673681978801363202768988722684510178352393812984282508743664104970440407319393473099425913630242617906405325201371074283672492825596812131615384276714142863506171503107984790058332432219692551830546590399710487477092196325499179285282190658922932820482859736846636524722243027191300987825632286579285755610302612164148516867281216602095359023938000501590108443387924419145081719779722478023424701824299386037477576954890391537917457026425992359669184950101652942848736814171289728162768143796449179879260658006209427178616703323008537206458290086821928880559102490207521970398341833273263869360331043911647607267260275769232924720423257124699898555554406871248449997211860619247112747255436343403613266241819222129306632255570417158062571191561971865291856792917906879611995255044853736942961198787502014943873553491537460777572285529219377330361821384889369470940051291666774208498155473703990901187554047655654473319037318658834042072094032996786375558120938334434378825284918723205537186891883307846647687924035220482253327265848003401477765420988089113898339396706531094637590679486606742823586887691317506775281234919912651241723727840591353682624082433420708401200187303819224817781085057765273448367998136885855342330640659944459804447224935492858569666493565529362040033996803750550712024663453849036396151657012159300071337216321970930012398951576219965877060795120112356269054555549877537936554766140415267860739046877382385942386373676216309839946267125954184040332652131209022803936707242032704396560354448063351228756053622195373019224003452082628382943938263322539237013829838813640055651700329137062714458817899249766411910185149563223530416789480703562674259729461434083797849123488633352017637406232076936892663406584410405802794787971796107632480522689147939608087795499260987236130963541561490864433349340343523196316638753132535362133107461062270902087974231257403949137894079600114254098209687712075480880153994527524959346659588182236077156485687278687716602603570308297491836469837813995945058238627450664839870563911219306217590116558648027152520097296364544364484435305009437805391949965283703333008513583708862304756429184750527128626418987812357084357521642407184756692580786104577241341360194059115656171483041118547148533907922378532555406327329967403848420613517236466178392283110101880617002277873200764814549524284308431282248020730584706762633220412425868454733281046418349782247186052505107263957527303818706814849764654830116008683781416091190656653535531108877032496030205255017973342427270129340726233557926627978250381413096132049622293497197103609047055491616574959124107599552777922825592799211810089398453191958970264952667372554680442509880713249885733917126529266021549688702430269680778274812076886156000722237681849626731905992198329816748506812718863824626147045790844824885228564737864019998791337630575484001544233286931837899330215978169082824699432580688335258125395087954790384874002984066905800003420819765616608889688864875494273709692714866262764444292549194875102597193262753224415384378441914909903619053860680733435646544534930590528976883764180746959140916546426546756318548310394118156548039033502286941681874731783630120093501994309995339489820809471617980123191991083315834252442779039943521192618383817437276742010399897616891061760051751001769935055393876157950873003565425646678927749028789331116329377862012969935826167511747482997002936099080432400551798304270641903719113709186659425429561256435654867934166933724574644074326641659253291142593171555517007723707443210188026074195842780784468471713541562621042181976296212600247412756610741703457657273137614164863216689282487999603558179647481063873337971635128804572227816891784396825039286571585192895665968674547344107986461913594955117607936672076995203390442880667365134863731836800445030047013087412333366112240289372940619591529982322868694886755941949991517366288617866300080699993993953013171358288655559047253964999511037731177430729203380010049205684345408178005178304211342641255899301653068328355949287321202191125494512250257867402917606792669586640753114857777456238825382124031711630800181374396116927192165706806715447566073446779255618982417951544768351646672141859790563680101002726637427555141816339704175672239406886565609717735720826129365171444212682331983450709690742904541515546213211282034750500357531351534012245608120252826435515813271031861421470881988928631732500869200433440526021896600753550370885159839966530010160737892831308643184896881768539372299738609351947078358966996056652693006852879790155516527045887675384904744012796980422252259781392681998245532835542484843534500944691245261030492603785415147181608655888166310408339382863135734128118102704840892773128538336853646923933648094821442724213465459461871735089425878392237095827282345795388043581353574662965622801602215510384475276611811634642526837721879039660362617405502818534794172215226221164803055131428220581353743872112374220265633018147882747738445757935480062345369582513090447877984959358911446666888009694911639102011111454021792289719682157032917913036783603657317856755014075568393230594683031425135512823444536251565211448296956705315968136900071116557109800742848089830464278328479205588265576045627163214306462347482225205917654322588476900354282532059817868177425330867258991946987871399395792234587988842645764250125792216486953321563663654142663198805584969146310014423102879666501595304766166766856770018593487855076465523195375876674366209184239938691028510904895927642384305997528497712807911196133506645620729477789608082046007774687990040633783682038970206601648795468137181024539827972296998498930747464615727332768654073206401253313779672040556054053166653731909012357012001140181221823747714643494889085972806668221753642431063357384971136590304749697987635191086587020908439506667717288471322590134004084292655517144437477869821512636992604528849669532752619556887337108361858179547782163393828509938953809201246286381488321496520986364185275575023309685150429442362281430748727692914788021718569970461557299508735928247374435757946515494948312545237240153368339309066763915405199569876501704792281626186594465212612705158907138129936253654629338749419644048140467736216527065221285736142097864221662220509912801115769656249792695472185059864018959340101271849885462601021028347395614140805137267832803501392168265235984454617774661957132425526682203436001525628629796937557584211651000799127252970556000335522970255997590991495033212282827156979738221259127932059296342066287361330134818661957138587595216161837044912575357468607213686529060617793435566852034431241989865292195280282077383868747574667453003010680073338057766711718242369964339271234914388811065524925740088875635034568837763244412048936694428665942918192894010687644512341826985181261487425158541833985861719704713491086923517283847749860316539650289909283716104200573040957508353394215663716321952631645300949684878129205644885547917945882865106793031491425786942362981616704719052029798183012258848388476068368460800985375409819059740520563475284162160068775179614517197376028382958614157264659447246651702577598211659787102873015166762615218960059392897019319825270280870150714816036503314207821517566092116949489647531783164178184694357392316206568314740998716091655508488238747224402971678236818336721547001022020525527674780700404094108292466233504208145576565480525888268803867416414186700586272726665487195261078559021997738879307491841704235231624653683755031346503079858913871027037131753620033183065523221735265090105429785186980893604546263391224949771302311396289976156641300514921485437839114745472653351336609078751476691867352939220489941388545363736949106276114183219917581526076500655727972545454318311738875536056386064217187316705739227266488165354916510076556567667132918045277259083066635338076863862313930702244364149364960280819057145872256483037484162088668752761400272880128525302713235445717838858015429500066287914611615185524826644438382485328556761839123790884145197968450376743356357372868802988463157818953697829294646089615776242375903542694197027587586821413282724100615789078153331649216747054637046220663708308140558005260078492129674212480682074685140610847547123375442453099784520720087579836866378968337055230710495094716735459785140192928747922618901388094508194338762102075499751370013853323531238082409268712406472414392133573723488157384657531207017200971466060410630553023747397672175100919103299769263653707759074449300346761957792551134492892141513715639072473659511440655401046336811505971894476875836644219237661270230322391985771164070888543410230898986675090496199717692750996168160600886579385502401824027410156695564469070008420115178080784379105323162156885275600382800173574475606329893727442596232438031484995633701546438202784252638220308017373732116640896937443975096281532027841215092347313337163205141068384686867131261815474830725402761329059017723534124968215948104804766403404767631275295421509774895555241654892187730906040709181979392867844845581348931686898538411429796656448143626517245736601053757640593399633975954778989928769999783730007418186436521004038502370318578238002655699215165747626043839090000771862080432475693127598090309685305498610237787933752660005256270777250120375010520899270627765687021937618119831187563268284006893702186911835364677498296672873519234461458550832567003640798671522014748754777456929730335545341533568154396936135531535673966912076298626816762470452263923746631690674792309165960697372608190617993277582161430611483748210870195888965691487727456134866468870042226635599065485126636462116725111916323067794018846962084716849354453413100766677922190144164191125749613556091669602646552399643627383776061290144247849130800902400175274301217103569063394778616907873481785469827579687088124326856965398967007845203883952102379093403951858785489502725524849278164240406144754668944234340559511378231300916244014297211560480972075760193956284943478635460438311306117466984750866841847947071604947479149252792906304447372825191757930744971369002243797189174906711895558905915869755931340716205371516157145886813449214611794735357903229546137014774916840862167226679322363227018719887382248450936149079223380084064252673161865546789080543116001918639671816418258963530333326816906776795914882068965291927539018170458990943975415131567631521074616897997953476604243718571308875740890969318307421520082103084905743946430359373524069630373165479527087977487644820001886257107352440204008145811778651333276979615482565771654529170441076291071151080557737025336681945620040988239482875281978600265805473276401204647660978643633989340630839659181654329563664084290328357233419145688460612988524648095268772898405400883153556290029993033929706008737026462565450834495211254485851596374815993508326871280043707212532148795297266334891578154005898130373050908496637519031536470553099738740822297898494514580169859461227361464055774166246747359963644781776278797664802604303064787115712674772017549280721481415310441809749398609789250385936947876620711691141732121617333689689685706758975893603424432865803763712817099770565763614114338456858915007348653144381033198016807691867606527675289375909689134706451940399157403534052549867510994507585086107654235248845505751830949962154150885812755416517111954236675238959799249447137325100507925402832140504390018068412412515375495798730790102951956681860136639415544365627372126787089703738361444500182109255649433817508937783669564075097478813547046013331362782342092782305535047397152979672984138518393999990871627468985251711946171003819528237830162760061473040182469581238249190884786990778018386201655185904423100683712985632629662766294696367634324220763042238465886451193711334096895157138562177794908964043988579171229086377696557589139287922930383623634353555036744722626025154110189991049603751990829833017966695343441056422337664454074906559260587873859597248070020421396086462836755166149800109240154647086308753960335453197776113562069464604783291958760839421655075031579794647131639591168989132258240084916626094710773423601513645396610343454409109229107051007782988009383072197490376017077664863117005640605779696526766997582482129329675976031506642216371558520259759322613449534949761924002603605608867895248308251977750635269898944812176522640699104182562726919903316783931835281136772733518881807088446882882252086626756099797304219329675723444770813036844027944992317510372931252688071341657057973699392241240076963544652021805201454401438801583847032792744791285101111662463570406816763372992247559477881026646375907208576892621734265570219330672938184562416300382846625645348076578097111970001609362534775919264342573990473086680181696453250962412457390846234072066007352537337550332692810526731138901312511390483471799534519735933170629417486680754876473889827900603165001387609570394320158781902503090958021643203788743021796111265100241711296955647345133276057666793388483449352882706965980218611951911127793425451003036382747711385317912275133856812072375560357992382764767827710169143500248632033700710820726524719296324918683450610528244156222254530105432304056025066171425958898113968476575498471332654401971005244708383703611193716846344316478622587226330602151166583474905400866049939434262653075363553298829211482449332204321060359366988796218225561075514826067641284024379859180734526864816221181245117615167459615339937408947696333496861610360669073150776106760953109637586896490765554333260360725177611525489380645576891352500836601195751009969013764310135388925598461084186711838562282313488889946761672322472600438011747609446579830958195097339847762341447928301514566532361711715450341437237915220575348908263216269764642609438425616818196214272937799957871317499066898682967897477107944724466314107443773314929008518363403763717201918160276313616618936083815449335160460231840104831552300256789613606931606279945295746545264686514186602549534872070679914787119024217287764562508956150990529713376998474782586373682582338286868789863296245046311027870631141481381629075657327600159855234489154541974634168899894275169701417694669150337841665081758147157429906749471606875787163897678203596799299350247425298893278057653173328930028050949189544153219630132255181530734263455094159585264805792627259294441549221216576052207994402367489836754007472614317201351886470563388802956993999790740715383331356594310583982538018117932360127314813343070170195589369274269406091974019026218591644904458332791222378951105623940217319357557376380819672910112088441498825269276761053690584175759339746901487796361788147105328065970022798175370551305217273092489616820013845399214045702229514661920011042272753509891459606227797484332767293385331864304104949566186057372045214195221382975417657241210167526812388489296928365095357842531817457619553805406820737195206868683147758590163988181146115390999911605376302689466356956013584299224132620419349554962898545064811435498053079659346436471444911302327334721729323584131297682377286759983093778151256053507471188274394006337174760354941309935416493140113738799372894536298940771944026084173266349306980550070867971844715001631044662644218991548935715369549727770474549862234037429822336248935074083270437623745579255746869650299764703804551870063654870257375661745481444655829085663043425129396124198868853328533756586869953946532422837736991422312627427857593118776504028950531445697003893823666870798208156147971159879227250003840626960349711029050026324227460004232552366589277025507240851304872118973564572968440585205679033902370356449276306285482173132840288818284044586564474771996086681676659152585404445950251473514384532725817011077594699638369892476887315289926635191523648944900060366810867564298108534558545340974325751089113894719979042063739880689339740019223782168239452878223991000610140832302592563334479710780971002884147138746984244031618568827951942686057132828045834701942300465041798973652581079310645983743282242495627516715677520781371348385580174803420051534797978487431979169978023112572053767694873030816789420986563173908273077757670226652024607396006783877770058733681063338315987835328132048589984982457806223692146930268398221947611698193526997876169919923195566811192909858437898126654125637931818864744370712900877325196200475293766137775430157817818838366070396915303746222274264140224410883624273077050411327207008756275384056773114864452348996360067909950033720140904524725350143478269647514918429123992430103797769370146043658958997046827409615314370759223108791622723251803114878132136101117327291071931096667237028209699673871986501530932602007978938737108767844032500141539881417480430895291795530081005115019446114289996638745503794378240536037169484211963501625432508462304079627767638673812170302340528606051408659359147944585507290530002169428541500865199298784194597518411746011075581499537531879978565408515746583730030711740297717520712373640509383595421972771438982286337709103564611466758166956649984863283492771406246766968298479802237455088405351605171270233526011876677775498686212694388627001614410283222367197717281033462598178679879729951520370058517163104692476750549187640369894495000149440569303836592415009219669584119863442199509589016083631202505107785459335387912644225371930362727109686686247190300071269371143990540359385607281601332959078747614674818129057163883042636775950401709872896400400043141341347268341911303364078145367263052936003190540162294204802723085327619033993814379928318617668211010970983909407145479063980150445669322126784834020462889232513721088903805912282176234650937178328573525386226264089594539462899298604249911756811688696429669174769957589566845792279551710782561899368692035505697672855352038139433705151843244871350705242261426009926506924257161105533849465727526843788343893811485613925157897688421947536112271661257452397326927162987183991910908301824007139904010236054279306530146461485660712830707158141033646658761538964518666955863604221721174438274889158168002182421028564134931006206953605955169467063952759408090590640344493422417125331674815816300215560038540333995223271033792630869369517954267767179192846914673769193382630846631613824007911701807989544833981098683816344910309568008917750676527009244278180603996488257509556017533524350225781891433839476096466835891999163910442314902917992402526133754243193795344728372393997241583679198870362491648169730999336380566530093915560126081507381000637626634495597744103082424466503199332797658420314746931285928301009098802169456677999825282755532897300627043777059359843638685626573994743577125296603091797769679210061700816536912597769922378170414159374056785450304757534392191120836406617220750211823978623304289807973982009965182094377731261531844154013024990087344374628991649850943593919459523969681730589952871233337542769584149515794938524567948225690038710199636562454525021974493662431812811641114484755793426547319206875675453181533879268670989362575624404260785738663586136296173376796232986401685068752871418538594219222541300335460562342917109113581971772264594391832194497930561398817732976326308149527226443176904845131697721341087951086244697857246495082997344024794295305855592482359825922762323941516121040512525446968944851070711231055100688649422373510636994562101712907645476094125079729863894774004369560758640387736232952141663075644233002383307522382290615280602147791432330988580479406715049931539628936538259427980088138147625187040393171337038291428992028441523078129331635645092178997690752761859728738748895324977068830021820561817457724727212401505377390073093199188809676483921086215744966568446578023184762476643643941723008218019936194744997996880329581483973821137273188172725003475906860547567307280751693117269032022082605996679767898287924810161298142046831619331139988012942110284356571413312418329378341880961800220933237373749982168026442338480371953702767743895815922744824943366206990157830828844212815274789123587649815982738045576532933730245135266967830742853171904506241120087649095697909543538696484125850716398263367713667009698736205506292067148330881058479505281123251066414150894245012301903039401919765545969345302186208915726730385602380651669580807828029744516153888433302475163086076917643844756027955926198395181177986402292259650223032960234839972472136756419174927990374806499675358569923620957770139173383343452733089067428189166205967773173123427664364738290931603504516295090323909408235181733112525958355205797014430547544049757416030783096391399780096219673731040580321176180024928839272982790132059946608051015926226752703519122688174213332217338202448773513474608660945846331345153861342787451739401503639461343154205720234820514378925404453370599866684358986901270316844995396973648613783361225982188539154628463809155555099540510156199325213888788754590082243472629258262070056760096005919685861100351290291349511623138840684292007080164539778919263411065887495884665732856042104286749989869767494191810171198113615688805482952771353684921934011962757992107607153523834894845860711900617514826416316950803370670388034391137773875794632641230247557746429562527639568238897788241189873453994474103020446916276143453425650984268427225433881476807385083192570232366431121110539367472130086385270880900165261451079930146355073259865470106102162129954895345379244174956979406341253343741669561758270513274412665630656824022688522854993390481854252145026091053510235138814908727787225983344991360282296390625374103600769026919517851956893801229539767660079312474432319438004856059937868898672851843888241741168975302976794426247809727498747083430914478760456852264066481860162753967519939399958845737615562266769879369316790692663146976950691354546825707068328197687126832059061528181724660586261508201827328594625947530091012685655448210918129722159416670201170324162939744135847114909422206675616352521149354903065714871966389189754250376598526388514472682761910255161063256718770711241440286095918730222295921499019848017232460818256122667680757075481443888372156747815478655205181424587685027371349328916049397222692894638624171788739970610773930175881677495405422074022676761045893111202880226697544608611768009103926752208339545978046770891102592083512915005564884112901770967424625426625153318005927973938330050613138682331947110462268652708543081983508906888749731831547691036841071277638714827526611975347741898578325979510649584446822176592295726730798201617952672069223571910908420470327467081902601774550062224272067520330537873332179722499833580574051687085130906316211488037496893025559510555567467329663891439159279116466369606935205258604000890227100280008272013784473584068779435686693872807342779585437356692774883465189441310488584735832536568391743610468681985381714270312009452285661385245533794258034000327869782722043075448010043939308996492656184103701657783158291152411045965208211219849182936236821341993940021307205318460373856831972023849191078376910788101550172266318532721014090154769597156170235388643510934644971926433195235386763964094823622101851294175631268765525122035241653338811945974062794579128434026851661838107112164791015641291700632722536632243427691093916064941423149416368209542787256194730880709074110432910347411153573490200184525880350709777028555033571684008149211454349575708306994326286225110093592619272081436440691960120892241864279827922885990245613861822681882876916682704157940435883082740867622293371697688228961679337350922397281798421896200472327258163497124344628944256863823847907574744526680563196684742827116857687232962365122356241588020462947709342788168827377139837634475302720354577123826798153449005665232700178435999589744513529422777998290322382265330226939082329114868127367973480857925648516611415171863108359211358772978706573032105219399466536258011783461919243494513156411172378395826109263111124971766557030986413608514553210449535305718892272438720953302025082014361955840445433114359665677142329976927652964188925257336687604997365090801203375015985090770010401536370453373634048916718454836043981248169623951728509542375185098368739404689388887388773264942260146393902704386506259615969486316878513805362598929906429652888320228630393811574877168911918014294046624745882782391397969593674809257486460627681945016643361782454519110508014388454121037256056107751911457762887792474607137983167900021556632290700574692170550440810195663190302570030900828048302692376171938531787707512402121957215597968536234630093938994318924878654393648904458822854099929475217088424345961314164473279498713040461227322373252990220535719825971835570471441593170275869704579227016642000791332966720987160843050178666712232883689836114994296683566530340848713740672262146033279993786840454272519631482340529944913350480305128867590122419748672076543156952999386224948785787089846094549694535674132203505888344102515688482246700187185454545820492831038159562483633029354611720481880261067170027294600678388041351325956862768924238333812610525793827053630080510789966348788822281418156550455767935759604926292945631015581035604253221323300736057415171801276194038193204955211524561524589675764834447240114166188553889697722359931572696884278365949685487933407681948159070953273902772726734171498675227132644406508963672447108625218274810828253897646010446346038942944576631249547113143263833271988774103772070842373522206806976909600274220460937526754944235427036747964833146835267509243539526158353742622522620098911865887963007094478856571240576982319338036541404652081912612082727263153531203929454954015651237292404569704441548055311819568063184263345387848268688156544792958331731110998579673091493741461449898298817996373895676345937688160226269847107033068836895001017487209728577005486409774331621547199605741270735836511130321207775025800205616132421615349313322641460502417361386152989634067147339020629702406093079066834011240661738519435069072705234425153881824928137190691898377433848580581140190268580859728564878640355798441527392374396950223137478705891820813158211051166851725324712321345705617788189593948773691281810918797641846757631495511880820900279215066689693975058326105824660503420146239906383298901661654670349900627714014398713866620042276435231143726262903941514982828551200803161786371202906512756508552388475118725370575511025250190566224925488775302338721159324632191005845623716153809719142042970604946685302460302970291926160957976462208480206458203134258532238703551223631116764097813511954176997220235536054970897806762134202830511341744136656719619083476959625294174217581233896612063205454697053359727901743004131654589031056924938319781035789079702201017435557957395491371587803464797878939936103798812599061694088625605200935401123794711880061477683741590747035377744420573334546996498350242185900214349971976860404824395371985254060333140941573783841939159438478050666371973495993749028420842538050593894948714325345640839372549452868201936492757586547285372047514896284831491254175422899402994013805166772294606225217568383477675873923050805052602634158665470516251420317996824752785179679534750670463743119201537842488012291303094744793245442950603945056071003747808945022193224640043875100436125354424993637081828566338024995725114910377610999073662336835198986933514864856515450804655870146378028617047628239326493940403105103672251081398006586621058493697271006075545018425867519847130979726449109405023535334158363629170471460425995312729897578317292878236253868556828516217720292789865396023381330220251888265604194838261410815036897944379282431399583500920890896902385410953760729132741215274695037012784043143115003592923019836920250116007134258063507228371667495301317236630117543028546136693665683433733849544893434314594952787942843210357704037994519215826447582879414618151436291833130798233762084804596507906747471223294856638629360208025481664898260568555873050050347207209810887521569712513582817368488921958891302933647281084232900515619495263783983632791062749060367017967878822884107958317638437924439136324264100927645862343278316655051778975626496722394753077929653750502174099064289668395062219624266503152805178755282807886291005827877962680265524243368312075214259175326745955378030701888905744519831842555796804465111830305644299928766474360964575819824842264940494692293695761281707681199938092137697318028449009428923131289617128343626459659854577174865269441923218530717667484343370742802006766077841142833873278211316785203656049185973315477863336691355531109808643375715174636641925071876340125137440362268368204339104490690207224892988675848177992703391174342116577876958856073729066320320138695034262003160661847383339812890251735062717351303539459454640206899211879005471266841517383471545459086894964698100655051741596232221709124737534229353679927050895199357260933759205336657028537938259508732384223749234794205483369181036639040833544560116506672652556728460472269998901248429971373235325576505914758136411053247716358928486586221162728127314723368501050220686900748017644581410404413568201491063833959970690949857211019617179157222987270114514642735467539550452645689281873859954742106630939718124376415278973654027709462105757542432245093851206667678790144792768663907509529329957994438726817324013492580547108856520358070776503321952786915715474428668112454143775127091453571919996377531290177495677979978111369418126399702752807732650475914173041340794987916060912424450577842427910098436169970988493635983044676687965083755304109740942570200823100447070610552975193009916760341804559307804310851150034258633081858588658327036547203610763872292677239766319788034162290519929017217403248525228152828703684675907913181518041714574445325288425962834887753483524714243606175982407511402782525704007668243824098051836680235421142414940960026260053310296444071730852518414504964447679054852244505532903711929636939621106315042469313406313009743149596396566702047070308672256808734580152991019581432105077957144531499522194991209237378965663044365284691364822993301557311482075421518234851719710094716285691844888033010947316356875233246068134970862462542964447414391853570889488096998808203914836474777267874519626047799376180279094221047927058183251426010283601493670923663762331138895665629067213466757712965937172834026134190868224590170233175084243083352149396349703890425068504165768144058648369057050599782348043241173559245873509854117067833399518403523343218728502749512643248538785003862446744505913101415245606815938141161676113298576029188307178893494539738028942421829317195343770516187571335535880919411404745094680542954981726729117178380981697057431228558235412404891409723229674003607303465053001692028848371025577814150304005163450272340925374724371517308202809841039848386626592047495337722705956752585102873666684318864305302170964633573327599880285948244289873999418586880479961354848299408610722840510515491624512624249606725790098834741975530465865471903067222237087275272265354521767987157280013528555008967279229297416970623876807503475919977613512990629577685541972572425748527430501705794681607174567654386399279318645843294062624758419970553907129969420816891237996043385674841019660727079167506754820793930214971000051989524846160185003230715517105037450004513831311367862518822062262222720418786846908113853209822793018658935604166993014932144237877084517815218023545741246362373346175256705537326203318500434882018194517138944396526361081673533830405071963435902408774675145474570663838964411430275983676896958960138645289075960585615237649701412243269014687611506498718159849267253737785308919038103937834464545530071603463737059493801804202584028922216450527685515441349328668859753919244030225504525535567777078946556234363541421544161782184918817116837762978553262468861596063694442385103055494173799192583684743020791407375180944813552446796990221849985403429903973412907365536434448080224483204800206456831711285817390122327450777585157244436981335270120893163919906375245943440534775465121198118215954150556331494776288271610308581481463396969698305053298184868251300886199944320918800417671647314483109566477598975456923851482131697049678923635979083252100849413388765844960263752708526288265767386005439153901540855699457112476774826807090818233760263404273327004270633657840341791280827809632560517570753458036705825631302231636121122917693735915107845933934031459130415214214831319434409338474954327155234257903102638023761295456068344488218780409640583209704957665622483928821206135682418625918832993065932498557816300440602704494905550985202615353066627054354879099464043152565246930311220772323633031009057480769395369334366781966683600129883285734749829802285889328432207966679868394605265435212463158477850147428772059422550854151071995989666599389106484857998693366421914504726432757713771635513205424193363454534907659178787048536200363042784735716130188164248418565847838431681614582105179827671739737740806976527602799516057110065779137101135554038095496546570401946003222854922604767029794131142553405606523486497242879055567819359299497043180252122617026237552783214769294699109567027494617955282581226765340767864898109515996355733927034096359294144949672760779090896111331940574358509565033068822834469663315487234221555133283779083081330931817142558308435951574797936084602189590149897741898829430292581281366683196943549801257985064276843418093159431039009366965458161723717679195546762368586948366750205560822168805941693448844503223231501256746872385467634125827142869060754223022622614451997566907875317432627548051726135597525528849550699845139666138736544296136538926619681573712254319557669573670225466202273149511111133644338673382271209189121882386416694563338810549741012898001138433533682930592340996371650227620538546221070776660039082968652171244444624483249239166034791809245961833862543507087435932586428291589504927565633970471562283322215368426520554605684807654091369541868307920049718678659566896866344672302168858474457186691209587872155682338177565474119899785118700889882694590313009285019023372143727004400415179512197625906002859894080804258500552874821310771172991176745287316528492444129665501544014074929026855524674345374923481954807431988320130426039734786308656498515876016794505861956896493808852940350222840469124131527155115503781829351874148655971014491206017490735508656992206597077927053660950914234346476895104227977006631117333144447372654861095300303759030092773921871329796696189991490307632623990410149733205101019332871812971751377311238146874897614551552971660680661844599402303247455441675404196123891951545931170147587824405486896901218240014762539941424713317985910722582512383644161540448033183667709456095121678642998322683031801156977258582916503473292388850531042767472908358447750570652259296506367230968269938165881969981519825856721729921174626759982691497798191264215729675578040005523373669066903245702028671382309330385279610494594557856896391308999959551679302268729064818025410768440748801117977844677345605624532313745134411989817899173741177068643323493459686210281323226620307993830264202331017068496865445984253783497217766928460560407668686210743269593652096686543229835532460815755355045567400774978373578820083208237098940877208905896356107174129966199183751572830737158889269287207792715913121544875758552905658714998806177585836349100358940579130303316367741131479195014199841745217413797525211385971170135386426102341007078089908917003906731451112230206430514580745607779278189245717154841462152308699114754933835961389574350451827588150244597560778217345324823282621194196183248643270955937044508131187911098634200815855305489497621806215754406989424368956233400523782327739808812550156734791316233246880030975057966636312685297937739392882583132743902590440059943311567062773546185110203904169759281209618586250493480725657617260658821626260606461141059993095787306664235382379938212682076819864554398470973017809491782810186948667393070614671346872189757171743769988633361302125672390025057125484700816764348797444332400079422067313304175128435016166576074638824107893359177052378597344556727748658626395809082363375119154822172556838637981109061767671171926237180472747664606102600919677314466212389862352669418693725291061856416406038181251877462764033453619399384897704133078442369088850620889876370115721076621532456475688306266087153578133955301098578001486719828595428324070607981188583417043186089803674520248509543324965712887617281725094826480294283638322630738624609254318807373467065116563507746365601360333846199703549683656436411490361636170495644679160062815156197106031095056694156452642183449010195610122708486149033911059736188101442870533273132977138168828758878750332742153755346984978810863810092260668626330960966001074032636328231541656292293143052981032539477752949917287230292160246073997062726528577162900514822252290425105899749601260811760009713246455303206578702930674636859400109741621509020397367246635689292628769907262005616897917610243116612709535357721876128964723692769841469110059697960814336497924323115390831317054481477060993654223746518373089048240388382973508482912020162522826318061348719533967877969804631589292859971236789879743535254504827903924882330924732844142187487080244706144951385289408198894767724780364286911772528733159351303327014595025561657099961482383305309996901166979220916326012377539104157190575305126153710178634508218535760683789049740076982610316323822690823905317054872088066560545334105258952001879665556999504802344487748149421383045822190393272643744060052665568385520438608189392679451825410372818696559030868534418964456204559072822987851499616576965764264250307253349443356711134613371576175266512095819190898366232627616129035631379288076517299032507956310148685221475147648434210792541760219062095933107070514417534068791422044340480887693712622290654586149008832981199010439901849859557132001305712107075276599151791979986727950142316091655466228165218671870272430241168285634525609000645797572716592646218998038453649726236431447809345311838286150831817610383801823879559795453282925365500599982237472458423840247788119773357335358205439007177890913215584002311483294861229535234680523698778001037802052556282849542647093526538842838485879432341923496604870317947854110361079047313555137422859002340678449673264718251852262221931770849996411319821732294035835025503514453487994297544597234587786777546209986576455497253448624903750951559177853005987484401922242493502474089036217562970752639634777524004538623033458933360665421983313888230681663454050822580145197475591077967696488209749535535529634379631836523354056829809075631285023188134617141451297640479291335159084618329692126173702109791272909362598817365020260106634602995713613544890639620030035502321686103933533607011767659165510747198890109029923362154695266375182178400733657730611642843379679599440788695962868330873019835417820996748749717115626108583575262332833923527004154145900470983785371704313536518477162181237861495892906912271095336832156874372599457766981849650785044337968842611828313780818647657827851601684328881207632980558053351033759804025109491147079791331079529547748218339039451503835071541972792596237023437841697220234273312511135327193003484647714700564356880188754659523293237725165440026306216063655654415482724740025622899583632492670512542058538868746350056817002151642196625711664908238525733409357181301859243483520119187324258233621002903764564277714397471565889405100222294023863951933411243437198554818952089228928178771404351534071370116454355736131443492550326836174136462077655399899595755805547806101203218193340520831666324585402334964882889992038452026287067168597720226831269507728709141042464378445187618432584992777932754405174107723807985373234222763974916998274836694826289838710766555847546329237297389678148680412829783393123111999921905077095716549945264925010068571944445943442952924752331324592420221095207832969161537511720783290270130276699427905755571434991357875545214754962749057254279989074740362255783840937853090752197309215580614171364476501308033602971877048880436691731887335864903584006202374340712967930037584939057957637048919781297022107014071524867493362377393180228163424246081749503260403006723040842268242577767047405442358026554325452338845912024495230705136709135613272142222951046491422992659451815402107998143963287226317322367134126636834321492005355232996279111238450025635628211099171719422191220312015747161685023197552197805901547424987546071252262790888194065962334363059137688398940135704274919485995937464931506105901836837615640389608760163854418674664350282469780153281014049480275151913139455220403538682960685172799046893531860743482739592986206093521362475735941038532275590681503686105468083531349007240935033347769217248719505072389509575094732320131562649966306836264803746322316136016850664040451595205210905659142087701140823614598986258097607193740898630559543596843350124366911428941150043555719112141395892409942870840543168977991931553297184181926281907844709000664869206614107699558933108293821060172201543442579698507452797205402859782834782328801449757601339253230520275442045144953590508034937260252063491398447840901592146922301715232765480456961341626713939764977719784863942545690045277712051754882449229913619150427501415056211476361274335115158337192633861210418603699788833830315544606766937485757821000888557134496276872106882652398739922876442563186757712705176384533505594495615325206675277740491492773339285658856569133991709176282832545392148132004615341242702270460916134778003621328120721678479390575710027224840886368457142333862262292061087358999295732768583319477985788893545018855281905278360975138575061567950272613854855538615314324010833427837674243139338769547184893872853929133737297620795031161744562902092016845566638574822701157948695628452503991699827031985212164806937409848284773244406220991250583017614616216950277394191257321363128431677066581283215199694125984342878221245492161949991038988800081471918752685269533136659613169718213489829372619671412975956463649674963557448770080601292223116015574703939670399095723702087270464933471862710209064888990054872523512610522472547248985235149744889698676536313885521999784574040171921327319215923314820817657849116103902084359328351857697182122055619685549383790633623697201873987741682889324597704436489815020884544101265749078992368792811050917356198975516644115583460170892683510981126644126629212810047084642925227106140515301044557015654114011585448717401097088345040711409861336560835004116266801626088714429145395849921139554108671400162300850735928768179424351767827333790177430500073823712961427797722460098900838411379525419363387859878568026039266959964112919494049215427727958719271515794553083368221430120811054166726472284654003901972999720364322421799496727030241549790212020646299570671470222492452136722922350137306866316052817940355824404293451948400754510280903573835013936805234986458138538200754300202325698577153050954172170094862389553454308345721223853366069585261921477005979637364374220195936544766161651277247532788225162524337857052268562781702564114354659043695296729785953743809237468917761936029401987154420012324277054871320998676877044359393894549690794971660896752018600971364780394327216768568323880778079661298715985187231532081848093124472224302580018743873742643754731895183836843173646942173019116549640819653112077583473845952128809656839250984429591014395885576988120342641445873114090938313743730740809639199037595413188044699133675159683398734949545442067299140256817546954917522699280110013253255156715529794794507016203041206473437153825608543401656155088089477363518353886058821861860472376174559875137399072532550688522292172735885794288280212554670696605178895482534199720281168653198568368322537688067317542650913096272218558852335401322306792178779877525025782247969353286696393146956090794206942594036838726556695409194570581088908551421863239502324718449485060195690350895560017172299202363879703343085963763199394253404649537874104897828621004378779096292542799178482709079752054273332173916975132704993526231243046385981866375695777479850928787659416263253707635445907228073642705932204916937033708819353134868457766690772325645691109215971753072039845191442192061363997193090642367052821968554198234259106222161753811219746156514721030527596456895573483005192903043221111098490664862176794009966135486219450091288532181865834623962720189145693919833187893185950594599359621564663759522864918737225400857293410632925923591818177587569728273023189265842478240666103100760141540353558331947577264474811669583382529141167536315205524517273854552994859047912314220320979747199189661201666139257746009433235350448020615050604018069283915320319865077951358799906907604810734902424408687523948193624153429733227413447130693915292616970608596153850045625216810052877263949942359044546206266402491663488491688666131073818237166837791941537548210814852159016230569910485194729268342602731334573818865581185605965650906122390164995226982169859086520366232044287635692820077851818155814982952238119353692695517239157168737239320345732012802409085141848082279105892161027964700196405266640671958789135877003615929297377502896375616828008252555839277915829107894193354893283697896133462471068503283267365259231173220545255542118586266391488467203981621854462671333205535685035328555713862045930883667414415489818097008195820602602584524023300229547286274061191653687493922349233602892739508547446856931588713350242128539173687664634588687045627698910375381166383225237707223499484093470035051166197375426873001752445283843683268194321326213503067672348629190143076363535887124357683305086753291423315483983296018666221532898894079921359276972641811210838685871290764318200692293332728654854102347844567768229466619184986494559829804334351421349011555568625967738377893691509802214922618756055867101165271641229063075657511081362269530735380552294932928287342010466557983075448346818240559095542819836832011227636578759157974009883041451435374796120525966068921615547219126517871361643919512893763531538628090689905745087374495575884766444508724186882657028593363033845988618083344360216267482242788893703922684309603120468613187543391150378992719897441440376117783195807555406701701374356806607205929848316840507957923198507148089026465457982385528249664702757447989517532975524754360712685421861109791580280830491745789657357156140946709726073982182038448266208235489933285108259628231185408845540801197432802469823551074224625173000837494415408610355790203532484287881637652805571051868807620841821484336378199452354332722641582758195707785396875250606389874989198068236907089594387083787364340570331858905707813338957347811412167222881107572239219682639207139114463208018223552686718762896394115185680574687447582754206457103012062656319070524247405517399411373275333421688715584403225369690597632438732059499620961393992505097076849395903371283656472647074853190018728458100519885926201689956818281417407530504538028212723325753507515881399688845479786519919935729571517530046346885215644226229661603055447766236173351223789597639280067818294922101093894275063262677694752033314659216126043965993157654320559635117334907153551632644229438982567877058916019978562269355467466555613243757127291701663622398317765469930182030929936598749102408605895957978074392655408271705463220875963857281446284197184195291745421702825302105282755110689321214275658338149299480464903100732553197749575055686798578918094854789431416960817130564050150287489664769131245822841772639738131945738434774968942735529432458947456870405119472820597063007524289325733082953926370069235531117655640806333897718551610819755498864545408232967177669414178662031393052047736881477290109480344732263671581974352378603198923698485402168361519424304636402435297449789954645550909495052337181676773688271619534183105760472051903774737997027022633236562113077208453733223360021937116916523088930365369937622097146702562877893667150600043619637482564406116911732851793712271151101089563288872057879604336386007780832704946961725333551494996545630029973819165837137976359389650337756609974204657872812566186778916077416385431482615867221556821580951537271417763891144251991858264061776349663776904281587594767416234176049557257664965858373329153764351318724521289078851701309278996557515797344278059504309923901803355514760641454793044664859643929391036093270733166092942781188493407103519916177140537414750859149707319176887030948369042359350646383526688241047241831465731297792577126778480058275960672689535627279170795191464544579238520619829916481097265229302332653350288985461263161326486174059571684070870836677238114608907211235393178743234198438457823877387803202275119021867595183408735778685665285917928263385405298938161465651622799897776518114550411536538189596282332729721619167592245645590518684689444985764847928397962735392977459815447415392262261235287521056157865995470384757750337187098104444956492577637442783601131238525571670410381193509344715893669753621291973536343109995496410770861571001491782964435125405779276190220436821430983202191511587074649206193628845280117068243590426249323737330349845519463015307799007281544329757235925810820713464643965542750699458473322719384813273717321463880188770780689401719689477325428264951343523644323355251637224530336644746411335294688652268086018207098320778279591032466124317814012390847550613386812484432533362763297080921555234916998720151905440271767329495214093914987419899985444645675249158250666323981345415890472705938278020910249526756367502202268461138233430758550586633521833234361344652611536989497761273857942843409928244215654159947330109841512008551199845977371363537874840659522558147164887208145853922523181004736801986402663647406340880241587685248616276842516163323641784984016132722326624573654333107769619253175618236122527434353653827672665044391672415536912951277690956708077779509255831118949194333390731349917318450613501032971357085208675841903640272285448782956091731391397689845437265959089430622940696863806008988172597198088530406762168462723356202301259995025640523713207443951981563430286906886013954414030957092264947159767723592963828901335664893218333604756469288953167575904760424472571770709298890376859522927516054416438043430287857713075865884749807206078265507747865990346888695359416567531312043050116554959601941283052770170517279771345011491240751878943662185219729409397436180810261713825939669578133826538288252878218242065102474957235937694106230455758037372670975990835077535099876451016460365480935625673685887810460870660659297464504880991131604009421155945583253423295043690579753644972068468292471177891134029894912353144946473609705417524360105209275063103836129222429606482025231330265803302398751197284206136875453973530670074404216048495347649873339257075967602999736231404713991026250450807504187144061695090493740052647169485794307024128145629094648794478832525549293488924288005781896733878663466542980860705782281875847258382762597161930751665519315788189066007754989272012451377767028244705602895241629636766923064758310324259872769057097105307394318370466111235290570405647792763683572031728998347079332234167564373057981894508930786031449295076743182968120407358624853078543842012634810416780648438058659485514244825434517024740765250161532034678314232001248947905260343887307338655200961883181059254902058831096716580884752015778625581553655818625810968755230928836975642946378111490804752613221375412488166399682279536694854986337012843124166533963089958170477198407895612093839306819899398924608576806117183304704293597532114034057079046006519035706129203709827904961557162021914084249823320363436147423914991282882356283605636178427178335284838771430598428766027574042095478873065861357851566838831281390110367130179315618968730568108143685685227978304511515519105554891255603426732533846524961642894519082351077655140340424765596849124917063213602308779742248737804747506095568619980094119050653565674188292505178326106766433053663893248441810654955308321703686038318872432320308944880643985610351226796965737273081049733381515523736684937514872897561172809596886698000513058609233097616024514100991735200174065722968143397574658089525507844082153392090388744562487264327349349136491183739804626826520779984634958882823683751978248276826486751361641806075500132569526952713148302954382682678444093465508049693424274508639776805675630203190487999657294300163435643001375434644478651347838196331029265668878669917298130194143212992360495019939614474843395853184052431558845839445572090275020997661063745340749120171617908478509285579828595349704841154723335402703389932470505889985101262248590368170957641436505993402383025206970652196566894522795894202485921335090562968201924571727020954620818612852208118778316834965786652911175420369727308143654666450883071385006546235656054015942505119796026644738008907344444229613062436820547143898141434693450665118157260564923886167298095801780380651499802600614830673248002871711541067729402812862854562058823720425925100623970895122330776840074249063059227921291985525752592871537441038168981312030279926530562440730973098569359993288331963944927533182675073952234592728304065706466324285309248584315243518170159585838438108699831932389257342149167995722702663213464836722862356100576059405392159330894691795879216109187279365470142787829602060387294699387162661969330839662024974102057692275394391938320573111591990251285395382085002694851452353907138361748875520185373105213324212129023067544642165231893399140009899200939234246092437638006893705794700361157612404351245890438933075378511372518499270724302014569428603260578171783043026301074318744038166616916727686097935943629019855058133319106642116055200321055262544199912764145991155521210194901811900819858138318362122995863591735767732255897580989613398362850555437004759132544507321983556391304444853250191463842613404552782681895399949445040222557586865924838449184815390240557916252756516228058077029283322191858425971845359080604521339665957037807196037038175223116154263638825909374868176203778351060372181049858007971414285824336981154540207218398358654722049627218669575654295712603300529355762098481627502967020193282844360434933240080332688729501275185694765002254649546947912472735916338310943086514327033432181244570762681817027285219412353077662474890823322208042693634671554690271866089004843589925627221003424799909940100651316792310148643691488294665881121649262504673916670249680292687228766268798127521979564525296885962362824286474061587579464792273655574252992704438249382739178679078960105900715858549365896504713088719890558628782455457810137419737114891735495257828880014922431744106668414993110166881003291112057955873592670830454926445932500770560204637109201581429042200433962558153645915165795859135703644694245198414712026004498243974095493951042695711738192819250717470231859016274638760393541870361761584210337971836874543847729330778132598919521534365587912003909605359990892289013907228150599295213361640405900353490950375730547188551100637370225896103694950047142006321315967556468284994256739641176082298400069873814312517200993174561871155129941604406578789309450925991714494021491972205464869088353767586190872790373784488983586896411188091637817622736874740785844341478778287497283156180110680235868675446131711436252270652869913179624210025911872605620801393355321232876769835618433477039169577477041601886730246687057123708214559827303352591350710206468975242906438607349796924443468906546987916004266112433796522358973414845904631710588330541337458200041934505796105281526264317473094098879739628749191621726191095994427273109767666135982937503427583967778866040839165680265660216829946260715606476668511843028173140217191960138528096628241197938731662151480691349774452968507086187623593243036309615193245611396416980090342073572297173660326059056871510727329829099756991032249034998694484328762766369128671392894984072460720042469419121899735002410717013258034640133282121376575864385610362111947247550093674899773704621498763848105572305696449238905996230868407220334922456224627247482726879500256335114726920383741484355677330628888612720566498239614572946062449496870525149809088908831068872938128653861970025752174625427655660642075146175139063343624617807131752213393604864317268681968141009262517335073569951063384577181850679277547821937897381206896484166204229305610055805289540099383072426001722068809926397838434482656825229774504568443009804263908242790426062908576349846343095821937834770289480809463810239076758217313413367735357499693237089099697282274321919506927694278466998452537726573405199489224040228561024864009569326743935858566164471279225776308432529859890343476248954542506598434159518528099778362680608220869621425935252032404601471296013296573356551345044972484149510818859309089443212496376760457554689345429173626541214669972933674804147732722123115337399993327255493591868073519071802992795841324812560343611733221583529219385464901271427710915744832587927975343365218849394659218727778984124544350593432100241193512451881099207814876424538222700597981697775850473921858411524218690183160071393986349720407245269182785745923087880508389905108500856442784362851958499754411127738302418255181162887016908487085442910131676997414090720746754265922545677882254414277595587253507333789664021394091257669433466123032958308887824957178598444465101291335337522628729037713413811765348482960783617290693242973330200977031079248878455135388694933522180316610593490478293494876251024383725035517098713824738766935309215159593657439006621595191513067743553733160627050225422117426053155376118240350915918203462992266151115087254879337472018389977227159245802192480080335736911380876471334718004832452537700746878158363249126001665399158226992006633893698836372195013683199240146701689745303233296082434741904624174850266257383275952310596286337050080100153983182223032628182152562745841885452139386226541026516977964941497240173818883791202534852023095051556526225160893489141449798966261346588766700531977562255283575058252154823999426649980976952848598705791006126787325166754125291031452639706967974594469170119614586970964596465451597128919627645683247977160385959271338505506799806249704889837741908254085078302736135832291482085825639573511276794567469769194669353955033826260794485543038201802323702078006381019680661464122601473956174135392804263522007622444369839387168310164422597409246155855116934432944137692765662323345351242360484865996561451267094817117711618711632545644828085093230776413880269129882204782842004403527197402418665262927060334736864011050024142114952400757026499497980281378070224656301868552227291406100939347259560582540054847818790102093996315067003943508138347960847063154307050338219695207464612893920190576997798891449200033473500248162756321929951376726502049332795234376339931205419063007668858275618204418384129487000287245947001026349349212533431535898167666943227293821476469620214234203717965597251505155199736572323747448646467614445962372551884834572467512395844090843045577024016055107933602639634417351321627939445675635223543229529951496522570871373249924511970152275899845072658892968780756774018888561060390832379025510097674598840086236164214616110683920646103114617444550351851292517376539887922328105094727149894910706278458420502686974990135774957368369931172607384358190300204418087281698494525023944832894217583420067051792457093065698887939009226231927574834884321868098784526435177700163639392558875226089132424938967206940598099021438555716224707654380268021696946691811722468422567571902226677916230836436996202000782175423840578796922533993715038354580867947459591447516665970304803746746289585914960171962944994002344894974004217553637287547923766951813976579230029650169277106943286113847863199573158015177702578849807091282142145976455239626969915194546807674726528484747801725391940431533830303701429734364413816137830325324524453770636979291782576284332856386608748369035638627546370193644670949287335505779571558166198643675066977087261783779794776114241687787479934491178099604908978850827278910838632547390972841871398135607049140516673569067900190408027766015745922396431549121419080151353665101282195919393233854345688779436562787678421174577170418712140175550557546892892189655844870158056743124023175584181435780513363816020416758726459120859663753340846877444178594869403002574277147758463793662489422860882556980191224842075211707973324278602285084711733111778375706102874419536079492166708192996175591343208057071380493683330631754989803205629857882780738831583916610279122550693869297435023354066903812617283977221100477937370569800469383385384177235681964001227122623219952516207879707682872105420032180647919464572369808711917507359644107834671345522888398819114986885684558286805580482937237492157210508793347617661946832074101242318985440321164256210763281473357338219010583368959445821980158498594316120721986388404362647921393240054123318813991760323333636350719586032141889872159983394219341181575816758842126473978624310245736503180805380396113593266973709023587291684028234723419400474752715117969786433496487981829017182466265470462096913571768828907003923086500015755921969803291828835590494591667750108908924657104729428314296672765031272529293173613578773464051293730933748154865199190366536687787371978551017690983634419294990136358996538567904072616384562032458766241493481050966797226876197251690364503044206444420100091080652558054655388222040219100025098124194757527090940260997521722043898248966808407262989691768029218364016629389382563963609786988627962269230278051983459316005951914339254332327400647976190348419848592718551517260330154382256748062943025539429703287845456167952420380938369878235058304367174792495099811834305732726661154701605604329225173005747953675733808352977090761100088721479209564760810076108278525397511110300114531090988526169407011549679140216503232028692130129916072133855820713103881483576522399226526584742344868992292658257552429030800113140257854663145537535590111847254668580749971233091878265694199621301112984089755409268494534319932226017708442503441321564216860943660016656539704909610434369506520684769708858780972456619259201828505639731777220168232219107608510265153308537837476975039507188526477032272142876287232568923579937960641954328344402745603289913027704862100669439819048441181810305560593572298353593573110585914226692898478028108763689133314568157958082228935407064507932340422618418014979282402671420521286283785095848031571983198986700391368982659033578702839270034536112020147440151000788629627043189622088343961485233231452186100835259908027004859972659116763963797351203648631619383474831034688838580156016238550937669897105283834380547632669878328917009428276533385693429986743956825270574776375706942711276256228041180612858777777450422144668582362528924603737666614459591911609105403379770128902467216512948184449094280107057948601539876345814277799378838109844681064254061858244305690035670908897420749829161633599645391903463902831383432894662661978148001536653761556024974066253884193762469363190474630744679410718081858412675947976271501893510023790673914268629008697124498269278958291895412336949499576672149878026870647932155211845991355221363166343143253883707503773834182167617544177004356385417123022276457669028961196557794211125366281327221630148573761291567736572756862335576370183459796508285907959712778165212353604686086179338129895652341520799488656691261056818639291149036546518833583916377235310214840651252673724530121887098748826331088045260342949985594680544136266866812641830531617614184062112337090059717676632555616239774259892416221566908831656879780041551483221139367321807066464333191454956904873226425179363966065913889103085373553629651929368627603111501242596400678961388661697182045918862272592784726535831360211147395129231550873933550650394702983776133191635359836826630742534383246157710410593731241732165298496695753076784697934860230760703571165683042176339118802672862439301732003761082639107344818158909944045501870713580931511010463618877548739279005869490037171793567137100336416372197286342985635358042775154323010640617844866378008884667241862105912029667044376787495547912545003676146508601070798111802616997949890295586583444185008656395466971834181424534138461691416815754908590451317179333207534540070000287952019905231888700768943720857572335812015225881915104311702466722118960818392867842289821504495506170670119314620103715121523620500205964118347602974182370909484305484331493727971628715356818827739682714293667183603751481450211572394920252423086657016924316806303044178046415597178352054270534678177289067027112032615678040353870158667318088496290689303523594725560891964381202193317786711775034060908966148322324836206503971590046100331954497978210700972190750732165052734470063402653940312975903562572367902639883821316074539059543509419870047713855549189410764373204086763932982611069245808429978554313621970530894799456970120785283741540050391340887199469372672278031398287953427330793607477492274794787087940106366254688212452775845867496607379500796609414896348470742990255716595265334881670057356579842266609222478635379470810212113824573939244177918281975921949124512898154377010702817196340338066790599894195667161308503788210190766682766598243822449411775136560600971091394026453761079743041979841387041566438618988130431669838274696679957038707864729170761577842465541139172855328128640733462633026253893366044915239474558510502236801679935745336343497197690162871053236663030722880389769296830959076492692482899016920295525608647180852220382547472822969419842683110813954135499802231347768327885035459656573550883857144342050484530841393204428493767580417869920359740968527566422871477363267379108411534177644350042143879770040403373367542303700764767614131905000837148380604393177166782948314686235978463255961944211669806162797650366442294586679638370361883946692612635460877490715072799955764121910743643898370647706104834372735940126433455693919964137395298085354913759973682107694264038938850037265753857179388578099722347344960226135087932047853488450134234326493230753423630691017464697588401280504792133259779122790211666026889958063628166543610903346345448819407654698783070845351912229000861346625846030173281583155287449647933915563521729973789026809179765179276208852698307092906644753703736384526089891772295630103525477537620754521108624680150554966940811288822517274178002101766407790631558149745198333710841391742253089484738571731648904698997677676880242471471469002375394398426239239334872223787025316421070237469867963909239876996171810236253237374407832410174251308048614856274195284182778512958824030699531750145288032608320735657015405764029068900353761744759491933408568939438532608834622135408033852165111002754835810986748333425769332072239646618559172050653612705137717155185598654526396149570957588575604238479147822485897752120295282055087893423565638749836514595863241075513638745969252348486673002801878335665101075872695198205797757004519101382410359917558385059721695101790604067490307547217024439651752635185005778566503424748945710449286764412251578415785906494069329000856085670570004043994907841650785620696973521104204864246308882586670033276917082798531290997876741221325820151962263025461962989058315379619990331011006874652029002845544859505676017865689498155717513144910833914726651361294598426671909263963637910316265288927003338745451588965125099371261687331572930548170134610903775659664702153389937781334296357612826942130277473032970892926041169445580630242244763833647531043172137251048260633865507360481717938718801267549229214386125966021488378185678571869728228701415378947384266107560634912657456702933663050186675517862436120025888269508537156724222021034218043570783707226820228848151792124920468873328902741615195009054801942925600973040795183456266507211647128319595815437944708125911956131606215208523485347197173668546834720981442621623314996147071254784076953672641325366952605491162142947380449053543769855982893004904086562317966634248299595454412390924399688681068771503636498217349686308396635389226854560317384410237300417984067733884104054477329289021848806468238457274542835901345228001875091145004809204600479124062191724564381338435894395178823048217942534376970682381702334635158238638484620970557679836243455738558541016961121593494511335194545681359933029436966621625420280540213709271266675868713819115067097501033829288196162754095056057930039164880010396584531591010451608364474078348768850174977193588327635197109800543453204453749523891996238974867135053901916158795014974439310820783079729818482700023230592733946901023861021117962202709913774575630088582617400460033400784907046902928996240032182852681821494137121148534501277924426223928253456060061836424057464233664830606662310434012700163670707053357081990431527805424532634642676545614404717713183247439641407980308634322597663928242146437316089316790113649825905904870007039706434344121771429536567647626983288300054874043870079378102571060136447436639719861044919765297308328793148111659626776682494052593078380382824923419964244859519487184331836495736372526169194837762595302939892908335866202736552081763853100967053088448229299694183122089362825117069791112003543384746124495237897233276032223869709074193753800429823209196857973565700576446665447789941906985790720304170128625278615194824784047708441353100613282293823678838607398146757088490534250140596247210733501639273683767139304587512462475362931324618103734100277031626069113026927233336669171777535678274512593028593067970100388597561545733915062464774638496622968272084513631069782571269752730901860835907230903316039159199408485256969719281224848108755568406800204568843103604615322781469095225488834098961304821243830858032819730679066655662172075684134011369566702460718239962521174638114939295841981268620227872431397312713267279086247020203246343840380545682900997925696119040659009536487319256243342060160404589436413528982633017130728398303694974922466562431799028470469838837737792093142172713101018934517903164056075958817041095767900089471752171513637119780269140830156759410106204460191591758394262325066244661127011424778775442035622773125993433003325342361006349640497898612168250929865028855024706580104003666098440137642977523695336184769525245492668315256684680941147295928674762428227766527292810979512515789903258619949509257871097636113089039167804417654376160544809950868459774059495517536766362592670062988808441591281231002326243098446679789551035062468469423015254745788853728772721757325379433504508564204674629351131184493309166904452190693843531578826766599788065206845173931395245992892370857965363667161792568697156435925807608423707198909830118080733198331953580176831253527252930343132476156707529093798097478937298997025139066057517926939650659718839547170606692230572487841520010978892036561835919012924159387329342592653722196222728289052519749076845341166020787572678430686309137870812829723802013336482498686407896603417792082281185558659812576638210687342537702911356694170909481389393502121982097473629352711479083335338446944654286064233892432802878442815976317078398134491908948265453528209303720073732615414458684174282653773684072760929408268157471062559119673888131802090901233917871368887809460658359126111705332307955792695450347740538303197319674174471447542149330782026782759599981965504040159928656027509889807571685700628549404194814789571009453748111908641192229450277805959435837112498347148170053917189107402229338373414746371480732959300717291103573235939932672237691606409986584867892578466172275535460993279531106395890610987963602322641973372402599203576381622689136839564949776459444951231231157170085437524401135068879921241400832810047544708740263092597846589801709556423304570143890645957958551264124770167430666864307209369989806405869762163666531017474761547357067910031027947335497248265096652071472874908298645422695217482702298355610679137957152491379160954261756749144011989031144252710068239068712691459456007815081094404350261049246306837432117121626670472684640206405306125875080310447032971562421550715091418010439909333950105064644381271116866595011850401679766718845234640094688346092209160017832546277049389339715014920287338357901531755543564753915208297257898374381275510003201828726426546528915182337118477786970761701171719040365655389345800222729039489588655664567486905142726293416369762877781820051173486385979835162031154266345766399744627963161150016150654017341657787297996555878760536430994416684347598391620837436179644051509865181459053420281394422129915543292117509908120209923255840519545382649227556774879106198453541521591816931130503912470089600935940510560341923667298362981705297614094821270183232789565102680905569162310104883506332493329233879037745515446471298991722038920641755990391964470103536897993061477945640401982010000598593780845955219076549244721958020584791163233282529519450374308127158159985196223244261114865476266001169044445093040983616021972779499602708638090967010125027203198590294701219992180339604709635775618195134666191263525990040291295485133025553995513077429586780150700996530911633826885220623222804164815914717460271165189598552261843850792894761332808874645629134536402244534636933061358889155723048945201776903013169764501116161962316365379240831176051625487508770230886629550168917546047972576044888208811389636191187821452860318354372219187607815267070851389126457081303405436084565844229350900294570581081196023644181658028986391218173605214791680929266650148935772733210565375221651733501298023832379578815074154265502574929883729137719355177427577930720221022418457542439994355933183624647880610491965827014723182044961958800110990714775593778106871735046616420644719467743747580736470838865973846725761460834303679692552668515467464794546256065519279472315309450787659247374850189758669103139497238625034409554323120374701949725549157335269425829393458746677362971251809667310850126334458894548680186101144250750686984548955130952018957093463368085732346962647274088321169263600198738530924034908089414369798069681527684298132835696474888021771060833926981833677474545260339316947068975710119465568992638819729958554786311963955534511848835857409608666210292341672699476632879640183191068590828448860747523404308108827230728407457704526193649764406753846238331134907660195536478129413564309836793194868606763948992859647407561445769788530352711100616637914380898977605620733288318246640213855703022129042591893474957266102127753148000046962016079960731307090405755596769694152245315401504521692448665623709760391439836258268116041228956942839838119378731068062776214176031703222005456613586432410951839745890967612522695929244632537569262773358928547574260202908881669496654196703358836425462562192461455523503753896393083927432286357601626938305183679516353462935019851220500053532147313481905521117653785176986034353472317202069545775028457968186819515067772454664710235967658282847887494860362965830719281356754619206673533128041323067733044472549555677919483977112414755283248018325978013403157693869003759979121516367977732443254773177686810338436729511869875925055060786294943152569156859685849984071744170005109694371599650973251892893146152127403923651263434797186598458951569904132830268010292034839000347964262685620322894012159431943196729682508649999982177421854866245616918394906673512644538151223686209453735339922899635576089974955365895380358910518699583014580603244229083652337481973165585240755601204931451669008321853505752020965045347347490521781285400041388169523012307538337780498855067669393774804019352689201192297384334792931634757347436415725884332354783466410935739650734633680549809745603342982115949450633521135027308983745876502937940175646538490732043533065397394030895337284587454435021923465048491425303467198678599130760368682119383609606613348356719472785134149021715047156202793118490753271331324464546623898865040711721711303815969096715847870846041688227361038261195380178248062802607006242643181494990260912135364175776473605522689098553027465964045504039441357752979783899724940089143954549640422596280400863486966548912144578901889722029317919597098345108272945601694411888889881533560679684687751368037571914057930185827699354328087809476146322753166240058656887577902362189209611275057902815315769266760208863609445760645535960320220063534782810328315780220611510274994143588426806778576432874046276736937285534592125074242500399125616691590593545900279813301455709224197253390259830341237424535475971668703096292268807456640747049793882110507626505320266762300227128586216650612816229168054009218259204616886657941092343985626258107516402507523179011380377912250041882000292920945318243157476316111544728577329043991998191229214225766653641957393207834058977742366161918015403401969686151998674019495627215447142006477497842177679258389726489821356743895424082509465230063137780451338377309661172684653662728866817753736078039379579746328158157693606055374609071188808870480472860669130549309776051589296244719459358787014259651787110189468255370819752445937672832421837656163168209753794980061513795275758001040403146127262141042473154853315086071798556453567948471684720131928268535651317026148466722718267952448089176319545123910019747395500536229843653909988106750401772924848656385087304073263941929037622610643170309199561106864094662634688801838939403364292992733157878285412019492322770835746655058699797275979463268365857003465020911062140276956903822785355979515509855411640718134521621230422542001460672498241837976798755758756190011198571231047665772467440070385134908727089133216246848545282588658916952445788651895720565178153794341466031635298953929449549408848630336973527561794510923544542309984528190866466478374169447137758158921384480558183550440876131362606642256328702195679617090353932726714535628328638017763149959607227557486367863710766343707706205102462643842314912711530126986902816519816209958995829683549987503660990657534853863540668783858731920561227800292541054668669818375253215047365220938591216173982545045842647712167759472791832536576879548706765697231888345541302609292512512422543708816573365784569314715052093759983742303744083714528356640630476191792255913272282466333027519526883199237212239259928918367035680408640695295605760908067379343186985634407271804418500365919983669388071939062979878968029411447859518071867590986976920840606204199279906770538798611610421662830531300331353459470053421033656835167183751948065122284267775852771924583185245683284599302715600939671073840038958334923705797664809313799273326675369079174997323030789635295813439173018761437104790875847962451849097167776017502496747486147235537857327432011133591080513338167462413868836267099881492782798746336978259141139151820766361281669756681571706695252000504168113186175624421758166682059661110432912131874148698826119235921087564475375730467555000223323583813225872132394619752596812319007210709462920957851105728674886562721658614113396244677275681924113352633731367592153961194223959122846301566171069611204356054870904073826120721259175980186828897024073359484169051963710851819061222418250033541386657932137153597384096984756999236661810010325687532457145200520774820723456988601521074790664024720790227174950273363996964817843756029380569523928781006532919277287230607615206832412862554723137738618382545467798711907330308925102766335512078075144657117143214934796382630777278836177177667276340773733093566459890786764076220980020511655317315738919006631250922963863610948170714908911692646123513121649123201607713105780445464481655633689343304220499972653964100278924486728583774307979377597817603033856106758579295113196198387249285774533913106954184343234775300499223788672773145108190159505280439814726064092256499796003797768029662694962116934519103087629370413735118514195872919628493511304687755129227720539834691155490120140114474128461319436900932426951812113884863697040671465646552169712245413453680016915221679687267987875868174340971220671182029968100151133880580306784831448754977671620255572897712950033892392865342327644068998089304500420736241319399543640293442504794799223106046414516842820984514018219623746594204569397333680688644233388862607009891674121384395868278467235589991802862547731598297763449602861103778984061668657276842582040556891005528698579254632009187351783439221910554658169085683356649615162585158980196221821259166912504176569803548623543772072364643396592913516611194696507933492422901965022943448289088485159596785831895339583440016101666300015366286083594846948386031888750559508372310455713197680895082982694355746324508161131570179494875263296427203414495448558270072894030927907075524296496445780505235131533780440759114404423778267675955640561447607930634064437166434535371325550716091824077115690843429605881747660069584150215608145084946086712183376192172360464048026765808004098797735277470101870308757463232871868893142696687193161025681302742188985323734569245027626099996860834320737327020640031298078376025866863701917225493441571842102454704218006633962232582764123592552168278655754818493229513983879840331122411554386675077837824402139597061889642657363006722745693991887107185694129279654421979723728260654154814012214780894327660737217719754632895755158164062265394088329719210408931063935135983247385290787405578115009059193952674032253977683369141580109898503976049718820356056469327288607803128078887513728890160617091053109604540573291476632309626199087475023952209273912425543561216424850878778568022957700516266986607817276645861388084525137995762102936254589267425396463711011686483178363505509076241124629450335196150381006206198649076305624417958749410190395172944497378915590660034337574130732844896101450017202907362858661460862503254802938652562805015738017439379441128377465260157429524961700555883141500629908031944324779652602238671469743587389888517163592873272557937609919149590193082562598984411375748983513747505880103025039148427031016936490140920638553339073777505700170696306344580393368688240250243156731232515863346811479039991151865298310049570733292176784900367522907607972187301574868149022578112688434472084489064682714383949710095387361160312001731818550324672048085139805812740156049051595466312993893915184899705334545288509570387375501063795321437107458876929478733435515804274238847128746454531990427778791074481785394640504689960713415957151062884821084728841498349384205381512350422048199618720608633036541601355261980650009955336588924942027184778266716714873460569480865990947177198356262895986687300043240918173639638839030936916400863725836599088189410520158608125559690467744372783249802166877336545557065653449186288233349438898335985174035446252941820820679935276497939240109102598623663574886179987105559704832189497415049913720464555902316908045100033108503392955023996112434711805473273787588418037760179701141264238542734671447601578114793592345025270507392328877124296338045692374247852194320535761468600362810921611151796596501949175498424360599699185188285021289396741531479819415843518372968725111034316483180630574245571206539622726088163267354197085576248639701507907720302544401067950781297181129416792502381851267301485185055464608271171822130076425709726357431403773619291132055836627033060811536545371126140680323113847529701464193881522474867479936340636202625858785245498809589095916435110619266861184692382736295127543569428708693759803857208387050198577987612692114197834151396639746248590100301970409670330628165942905069216678083778637429195945793234336338624660245370660630081738889833031646319647186085262552181600483227555466386519465774088883828823800636126797404578070436103381008269836672025059536984015319484110665578609804351883377550534206898199777212695588276702338661876834638302074509448759511186217572367089134044075986493955904457069440321465773217376912336130173527613171320244621765798861621544504637575246134345298237061161221845104542933474029744672414021441982690679505021831436973160931506799767897413883476381120985157297597464986874737719192910991872054122962087766816793277966150825213836023015681170919010285428329543632306314125896933665605081222735029917224143530353672415293307422649249204734631109291690979184538880047568998146450493546178135314465160229273318769281806774385197494745232656519405638695743804300527992999853259056481338040243968040425085781226374326322972447167020893412040435911264188400605155609793307959886176323983513040380161751272023261902892045787528781790970589895237379392437961048718019497696963623191236421647287602318276973038322570025191296971750827333783699059992353104043973732593423371251547125466615542323277418601853933216423033768114007772400933551744752449593949331008116727445879875075563886427729314423844105494883578904521555171674618133865189254157260634328594820154165526482002843963109559016577740458092411968875655518738064925026878776105185174246557885090482729969069179603937851730691268587433193496693186433602620057752831568895079504618039940753814289455509860703012399934498609167564550446629762991612298702741534900797569449290262456204950600382993036008755366274593805228496238480525458372996441444994256642789454591509298442316089139101398427664530822751389800515686397185152082324658689208336311408427082795616470165263525806762548997886608804085049595045694889309760449526969177771618980023379387583689925608840782853815400201533089303012627704527262704938238629410313963306136498901732697072286764543388311045281054113500227192128996895597407895700228757056587202575437007336636356997948248217533734343349099180886186047787338275422844600041481422087465550306129128263717496413387068429876965468673736178197610571062193944587148635524367207284037232243692390346000122069548904477073979063278910357401088288422645666686068918122367276299022635810343715023333465968071931020742985063129168289898193547335364014631778899692323191164710154307182939538461568830467731684691637170084693244092340369730658961584484375898265014799688091628801521342249299479553575357823392105263279715241868638070875422103124628645571974435883565896440474451598582977519583994907464589072751610079558661953599312835613640533945513747914097045229060867985262889938506710525562214044118678810276181306293308793179864731919168525385001459580531792405773746201322158549972034392850060916759795496100261250178959000788129878333939016703202843031089193497703003599054663274652941549499426561673756069978008769677355075071322581048897350448265746480949142777154734374505280971308503127043252593577255513404376814795199188432246481380205731206679416561384233980119752386412180786487478049403760515754480033601194807250422632565380508191612066834410787397669920643978295337904532423581903577407070516465630893198695814312623681713247783735151057544585906481122723965475291863472491540228169855485398485197516843865592192008035220389982950782161058192797326542482564619566043828183154017031241081939639084406780626522159951570255638306204754236058272218158877936865279361771694610372107034467720012167347558146840632386272148530625146884094746026905724211882326560652049310219559326004801397800555740861855993373818462630656891423481553229042677434164370147124108635162109020445703324214478846010280270632542997750888904312940699201094634762182940571099034227497947843029850490347398113060377031587072294926908772458667195674739071126355323583632514555700316793418634028026028341602497220836666119031634361760217602099678040594679733852380823900187750113173209925459520732678423574458174682327183140469545441776954602937446065402697431951785297595336892034736993727441319885154834243922752069684438324323830903306512260897785006679721363277662661041300908376967509392969602534958425979460062589007336648129832387821020111600523804717235568446244272915752790112986468792127169165420952534451725908550639148835479796071968052735097062351015328638274411617736789827963938031775826428202871487378468405434359177692152070865842447933125158661224212320981500757124720920641381162041865808913167585306165349465686577234685639441880429275835641757788387626184306320733552713193468187523344463157599596777132230542513789505036280574426215045458273238843353454291540355434595643919668366799710171978635097961644580861510723169305172126502060590213363188124766090092171295144463084187310306154622461541115150449570936964781106127808369969114843134808441308228370374241650315793041147313027762472773903777417840891367065396059234429669447142063213158832250565221829261002513000360862121186458610114545081062101056010776507386046105300256629927685345919422461752648662034515069478812119432325232819332129352076017276243762921464409078189102724622459743752067248562829090058537111792722968513048685074561352548051811482053665050329630422519172377458764810519625823500644260874683115057958026220675614874966847997300119831675838525336032569540139732009344469666034092878932876209411449980661202777739237961639329093098950298331448543027212416554207390817087372165269734930479794135521065537116118159981113753997753938808222859874782069659739992675937042822314184051475929095713125785021305389103512659651558035872276673115588593129840569782668159647836312129148590395261556728297939808126488086103433504092559269140546595415421843183364015238548235515310367909406431848798348815773899055137758685443318518635169155328927580725769578080307524075244413330889173474193888371450728229507071727208914796259818013907866307477193358425518138850590421827935842860530818270289945973446959921073997952599969893346202064878112685497338246752501528848515235534876677315575279382113591103012719384861440655702958467143842182389383197696266348972763553851247044148907453585226941265026970271128897445756791441882649979857047882811825759662258063025664263495526638156976676699481101042656364335142020377901696299800029431590590374535712213717348626336609680374218581306416673235199366495958527669068070938807167162231133079687300339751772543462200777854779550203409715390343629414575660693393883804448184380878869833358251107667042200954140112125168376053932928529944521276206388702539241879525159703467581411456541908739113130205848135621598625954799733183330272269815465383891575606640138435803901939299050714214151823242462976271264537500498910441982449409088929361439662984108853243480199503665462265215938043009252576678745676936861560874089198029771647520284610688129192238476780562223432799279765132787127894928677201832666369889115646380816468987667214947565246823286226047365903979782171854697219680930783416956163251145689468235659492387238482324610502092849515006130898034883264576135754999516554785434914653091385616049305415447190481448715673964886229779062708887626657373246609610820423128598982777174855574983255384520650577863420322301847116260236103465143327034792409081922260357338538359796737016978701011811462215844404802523276145838762231849228890586521322881842812233317977328348527187711289952672693547377637052763814552141249793734333363227661709397915905403866964924782238485808337263002742526859652275268337363658363587344837625714658482052454222355851120970115488744986857563604696886083977294344358235713889002475804609275055344470206511775009822548916151021675279354048246302679983143981385013590717236062604569923114070663360900172801754351043437476044640465283105390259869361069866904608712190754250731791381568150331950419171941675562053732164602298188888412546135541259089280465937891492860225320143850679439956067671409615626493012859725472671565040257661852530272846365369077084017183520019344303048296839152769812250380872507311014892092317354484467430871472479765840371893118071130142171733593412991411157151088466292460870105515821224719945339614272312786322956490107609952736577323684426064300377051340824625198652071408985490972162173010683520338930115433236730054622806868389292321965749842453610598413047598949826315018737117719676933216921575346996496364961327638148342462994852925069747134618741253985290630321931071446064850255813911690671666217291691771445398008407175919593407228825125339723656380564200728977371501357889134896693892571523744756927062983853533393048119975060769310191621729330842714045364630124585177923938559925055667352731717798841831925088844419092450439953026736101439768848766376046753038847974561253933854150895455483718815788077726127197575536783902259199583962224761758596807645706709248688718622576262885878227272101227721987700989349465876461100781825027956968076947308448555013716705589959108393055057852569387996858216529308660417251008601665221239336993963824444891576119550659886603957710469068201261108723192211558784901698389934980208155376761517973759184512453959821978082700888332522186581107264443389545240105272335446877434331596849641465466519421794904656729397339898287037422144472525448778365253317375161961553635312460052834384660466545689134636853295317939004621613537138761970462921747892258870465857527548735344431961398732751482012276317494611776952597583291172709238777299923073051499279182180733858076934491753007052672663001220629495895353544230422533586322619360110557803473407092330591448170259307499272365892881967888470919084911782474020679992683298593318603823374286049565507683694413149830662551415149346732306435523010134129656936336851381774461382900828293365010742546377415359334377106808637264557016848862759319218783358470637209189366307908652058280402900980539154127613637509526819060534641367896736932928098890250084331512219350092739631591525272062797538518852256130791041482100939072271549499385947698284025731738659021025468761345573541330932140397291365268981447653300717547793139906016022370375060364682621529875869548453111168832990910146297742789330718357111673992738464482128588871134396609626636744468305326148946668964632922092677705345463262465488023300653158781464602540543122162824105399123939873970174710091306509042176271227322277889047879929197125743679954044031870057542191095777228853837707772065044997070870607945260573620800095126300670693098607142471504385238776892768649226055463436634724762663835568115656512004077489079446995129439910017523088461669988577247835010755920756703187444614449117563623843700783247462771878756355022020623635112788398621073209412203545338387259089381406165058273183722046000477860723946170112904082259091144742034495055606791957980450387360771016259308598213970232212748437207624909961129895410774433657936716720655914061867553668957738180999054347914336828172054717856952353088600177432104860510508567561841119864484373420673402355813514575228296581520158175075830589982751020235217337169188254310488364811807103909990746430644431649208746794218863812624954735132794065055846156393090996781967076265108423288000029606681956798497026557525095575047347259001893670499836860330140726700874775402710101715518028166312935628959517175769627584910049369932388246790537168023853687742534780677483623026395204735899364210901272364048488185402372104076856857109965406699210134327566883621354854948986465327526112817955883934482531987118911728058764877649328860037957106823690922583315840016137112914216473541217908320257055514473607556269488795041032909144247921035308892252900033805780182387689337085000403116525871404535965177242359515876917659691193169990297665464004413066825333448088582133111243720150642869363896126186201770509799689366882097238444589590449437640501364225377822915083882341802528332976013213612025513953891260693567877726452060495887968361730917338856011447706396032400773058815830109707560907338608801859968848462032491391555881871978382080946701132512103157222125863147256221866073270388748075431771538844534257148650477705030536749381429354073193519304136286422803905100593080412424463772131683965286067988046148150262277570621498931284295533631271523619450899677197542807904028359602252912195727773166770177785270692757087430607290002972816679526787737779911659164458575513629283043805797340199910723254628084252304513272748182388720306856405028338311316218941520671512980894989964439435063873228198355257216310936419244322899057211088245593311423402490550398098965438677351743732822700647450397347712519643391345136339813984678394369951286047728499010103034640722844720359117009065351447651103290672552349029779376915110687560291041556800310676292903149272943590547915591535604303416896055747184388356929654277670415044990312831714567378316427698738306555531132139874474220981579199449786317315574956508366837175276616072612852361236160628712956893217908566241126475060076468849035779179645121202247822416559640512275590850436913380328678444628361787058732388831173296235788782290410951565999164849310067215768165623222723522455559667282527466402819643177799651441590897358211427758719319571002914864567043873353437288570326582122287286458822100062112485111487484072498618467019816144769422782102213429768786884157805231423768632328720627178920667350795300781308609669763379482087040769990203714602373601820630368198631528767555537030299751647215156236151526453093460329917456815439564867682875198610848522823567937994573829555884166929041290996260851804706987943554213160058998801002947694552415035151129593015989749200742019213531789587696782209491020013634693441169916376832461472646962440144841938978828667628267709060497594813672514769885222358429040130637231474185618783587812539781953281132475189524963230742542043333338151583058582042553029088280432032079421425187487401571976613706933594534039661873507956865922964397337992526158474818522899011308683009796350517892752938145051624363762891577103813677924355699115040410648794239982402687902436511590763596385277916311351621633185933303158414453991966864804525189917527334064399400862979072588413141795562674978436700364995863865120848078488313291969311309234568596027868788392620553058805643721718677942692004668162629588045744702840174736229962286355043002749152120775324107793987054978084574262154329390576412888306550331945026660229090593549876051176233620446238902428077870444199178641802263129260109797943795686262973610503453062354513750983302144263352779117969557601116543774512513930879424508836974286348615966108721469268900887348430188350640623391490213669746362483548415780835411498186280314337781295463811935267463892661378928250937557890228517332436278228020776542751401664032612963375899943864851890565744621551449538466677383846617162146433159272342218284479744365174814722582979922416868356085592924464394747447390555848093586750780995742491661118143786391980449801545297552539997503408552331843018100719491964638631277231132444479364734127482830024382488200925632174923983752835725022665172922123686188959942434570664249137821227798036416263429589447621263079698335496304373977440891082448958880939002395885010340101715962273387379589142382914201134256420297250853418871318726418546097285245291325190800182067752438298878170295459374741031320032177402167908681538651025177619640189899356736347432422955432660194475938930424064852498715983261374858371995915595211508350701520950180296020147020867253357432007862687096202040617181353638694992372626955958084916241264321610733185595377496218378401810085464600554247754805396513496635256989462373785325903559038288299323319261900017548513821639853879095439324106425460160822386604694455912895604734454192357635551708452549302813923653652302043486498086366342481859778168392065143858590079690063824209832073545352443410734531807513855555437347562969913987146661079612199473966871452773930463727368593721567039887863243176128548764148849803081584469788040711076496569355975309783890054330513425866956476264476174116918850368900974731324538651741862037125589457936323071223834336297020391119921460817495557623882261467464772340294780076712835105207585557802052716624434631523308505883014675217684993710594985400985411902311787147461995439083383676903042449474136373878900234848200089611846237112479314928056583620991749301456445246066025546681502386758217763623857033564320527135085134377443278977377499410518740008023884913530813466288670106979936825429835836915346567191147030168812344804773100750599845558400776587529250583673220075682048993053414251304129224647721092354605388175663780313043675938255551188749764925350950457510685215699057315872141803394872577530679574203060764616784221119023878554858911852152980573583378476012082723631318756969827510360804856483832007382381927100920379870136786329421301314775295673794015638050574160559707686137068449031297469594779547023528217773877874389720332270276006385707747388740019008533496610681179382434504792618402883871113417490898421249311069256728008271843358041200826803012052564106244153931974440409672708068481740182834536924704979941300204278831208500698594559544168264666274599431421298052881290097363952440732638143449127465725381664419646247553386220565726110513790565405616472180544112695035556781601796693244981443817475545666292690595927721214625646784034139460758554597032307581157971163269357557837160418508919435590857298728254169156126377044478444852950398330957955252269487292942218477358271515143076873458881020572410396866588971090419379349522653774869755592975863213269215487488586676812963926619665606999457727739391215921138615369149061519616395040938137749778195681966570269418521695020907268383196795489129447094923911031229224143429339673189074973994011053092308963697942041040364858960177468448428437547501492147489752135610682111892918719872772941756339108821932900178706168716438621012067562521873813677176980903950749177088881604536850980984024357053750170761000616115443695835715869444610428598634444102943419096912748681171928100426521462672289100065029020174981914828191365084222022063527798781652603529943519141209099141608770863185510701236218720879468636814499758939267370077226728865140515527564900106867198158136997911730416906701046130256941177573281503637632123979579805716589796554293586775064255289864486569821458994654814492406020722282439806459720721142681244427744522814620874267851339526765077044647677634647731566115831533578868240215826868884993389078988078294916693283428854580358173875852989613617971939310195975115918563984782309217988941665636678819107776383238313796183233158290981337236404534961886949289243147574115353054917204609268533768556582061003048459076023668355942219502277690116468741805042158020264748923337009166508995236168947454241205741005471746616493469744144897043776146651437999161387319080046769150908462446084083578938832509521361502516388333251573957086674569928566857766441116384944662032661553589004968628880462980666860299074951774878473730857803452280389042220000642098334081631708291146616625720620110895626781284126891138043873636756153580851775445138372072389660401384424171380218314468181695949726831443389254589243107055605681892216360222022578338369227018461403866521486275666657218498367549919809559439867635088822967728148068474467592967703842915411692622908900008528378151312963059515002898417228314889495198758395767576111076735021656539717176857863362066789036575961237371101933270524758970099149997788538190208262359276996268546671996767889072120140174586817196444348953618594221421880078753744467650503926614726002160166239885222757339645100611634292372482488904624167655679324887025292846124421351855892194020929377611011628792980049576743032923729016164686469148644327589634943653376075488303604675368324145404079398023473831159253680775692321406927350747047452249786520173834192459796847425808205220053685448401404671012861387055709758415519310045000688192049320256131097718378768772952552007281270201220230126837910221378426729437375371843728760298449409459516575865085288492063238953531081504491082369098223565292880793999871499630005274483099735532120779825006012212119123058933773853536035588881706833260522350397610180125168864832764715430048401545509211922038066358780465524790944384082424596007990255232455771282692000346771387135404194040670317352893434472259613785918964930374279540804455484128948512747271083927620152912114513308179968409826136734932368550766299409950995667819156089034620583146486313478322166705230864508858653123295325887025365928726679009710478286202334485661179374010159151373800762373787617620761469946243665087770855796940743283505901574050410433669815602654833928829636282489309694785702165381582356635320631350809611535785144185489163735717147098292283053633267592425797214715328434000151276979436025573737670796217846942497508617594839668361586894259820955805320719749813646369284064041979651250681170104716892671319638996321132070298316346113230704230615682192272279788436003909528712838436038366400356711550437361873490189276870002977360986234449673167287826613015820295805591003301743139258643598414953985300605618983113535053916390604951558703392506894086542892482184141720575076642185066506120309935446542672402056262512887609437655592622827579088385320670309496387804724249217763753708551798057192563807178354741873099563306746972911850591866213624347568163924732127389565393691152646849870841897788407269885847351808215726759266262856204975808406937933125938031751836592833318270004712229125939593974978395645510773152044511320856553383798182370973153544039183950901624343343758508447307044205322073555602713028422008429892601337490864852460444525368016423021858095603295168290249882197119029333948779879764771816315714120646302560096899014973025581534393132111081430919294165768490019367082256142183905317967125297000408671098325512289327922059843622692816479083552571225581536624624451787280302793037778838859859600575339865409754670765305462897279453699780228282191296199732581918592264204874590936396781498234666220847662599630010195049772791079236400889053059965858896805194372396880265611045334418723714866490295703512659452145199196538093303686534479086902044246339960266510959282704638740902314078152793684768793465845074498367869978184287731006526413936984799207564166723264405301887442011358240291203303380850773201311726268127658166663889942787445267249247503715037568315707526409016451248369221192566966163035716078250700710275119029719031665448394452538351210202414956454746030994788618687939436633231794422381909492079960848704452899444558967016972680496589120761823276846666761385355151760179577820227335155043280072406226366239774701947491522862101003306247881117488347371408975746181329444188769802462763939886265701260321792402457927956539567201971710017487756394099574440816861931334081565979753697234454120234391303751996876794567481287102952341272811748919419649975548229955841802666327126457980171884887154276057385654510986125840078638824157185178897385553867990696726101722586596992907168798789928581201427674059491070666103361155692447124391381336755714643792568319691395158814272774815628741422872409717671838243195213526671838205138486610723608448715321221622157075811038101941634614980190224041354686812429154697961724176742402771738689989381082545972778967444974157858152440310122562695201352156507639713693846970983161410334936343561927748012009056942528599237132970696605344582967187894114355251044236365940367637008158889450669687439889417880156601577434698646556092009663190960936168938903778701301991297391999625552865376806478353916113002926509954673898384602932386280052074870036330596499938145100876673166546234069047742203861866117388758931564541298749944506105673373814205191424754604610231786320184019062711310816509197384633137296172349783316243127111213962120531748180073289756214413204829234240487749904851181929701545864138675481635324475552406389065578532649449614725847092746454573834294061359836100077322643630227564960861211868699031048459473813058460225242577687594849094646214806432659428350531607798069266151000672401581940244487560513120782211006406583834619626423025009777843968735022373749806658275646805105833761125398981279775709820517076174223573277199205814164145651274085058738009882824020417526509052378321678697205377793146580714021541857835219585560909581924486138899655534369685590926922670265533476652898912256683983297262949972401555439199347882763755051678625379229380454286966635582858436036721222549952807757920472355714114509605790751741880190575692476468142074412245556349546036983040169806322319593965924750960701873474903825477564731738100972865900825416545256667951204836711156852951595183584384789516790309072605382574143620817950555303592857195513715689131661986988133505070758157766830399087159886405317089205243507963422603779451065118280715307420283537377178408879721455044361599100469495106194647419275072151915274492670782620796715671620972298576420761844876737645197274180981212333422681854288051760357260103985146261325572876782754503055442599501609352084328932342186921671507555786531815487544678266400215677819534280620341565310699436560054360202852070755075575576165208035189786288594059331123985093819382749085487458743942703187973119091981851842965372751974372684274362528173607312512831971956470494838071296538570976583772052034346030670597307938694015236943726972478540941209409103587342472540403852491473212388440247973425860625483073628815857498261749175675970238212724306662882158023127293603968036734098463066579376599138811296267690903805680675141529654673690401308476972172961734607906227035502373513064475498689495649383412343298689895395473763727548956743225161496600327122939742382841152434635818857188941844160614005776534975161676029153802033784390867382672607344730073857202066563733784900474682233420051674743013126295423468453949013816094633412437318371988610687648440514435476540874274816532525361162419878842949086774261164174974069474738763756432348023726781230185231941162329016991500158032262715567778801579570620830400757103602445765785627139404150554949875418142373579775576491596790626214158845233004133238898559136251401776334027679698916483957488416412534885397408303665754897256549302078095631920243093079999013927390623347314628985502391159351657716747010967804535500361693411535536889299015756173628032474860671886162099161108647717076622444330619041128601049660354156455779211085188717607963702859049647811767699653399453812927471454807381038433717597615610175229325201113244493058199761762595858105322868149538185443640898118262825473997414157244569074279490741211971310315558379510725934412900692694893719220841162299482146103250174317373147334482314290674010123889102946368430251283310165512986006174921403213223435576164455194463337880032460681274905822757121987369528535518381495642010974389521603318256812362133611351116373963418799807049207552008453229932575774687953641262639096191390244886751834847587618757771118514367760949169526790783638072506415522267337384417959318810191208573435939300376344083943549575760572349552302818447450971527892435017897409682505726659113262637893904732535130042079525063787904873323657822824101400267628458591317942272100391081808062914726170797691335389813884380758556183134138726369259935681291909377089529075639104865413589440363639605159116683217439701614942954980428226964672750802514720615881598890368689045217882283263731382711856241694411714123792789943658482148648126517986832307457305122980526150045274107266028700634259001019514482443687458653728173041531157148663992213155949937948328293741575726945679534420528833571322892117935188721072379085856530654392491056545890977068578825646770964910999556162155197966852583263242356845241185287262842278658006122760868821604168328699266222547142146488729357998023222893782946513788360205417340399471251627456189950063760275881138665262255295016583885861578297447833567672045296535699079902628650598990380046944602739796442638213557235954337154784786365793375027216864354406874342654960337400272529358695883114872856256345230991558792495766078940191569607142597206863856944079429745799245602841069791381676592188508686981265195663108011121911463689053718503263593579783681069763410985683030270763307595560650351373047904191497561638213901200470217859078884508796111845822180830432956585361009482117580745016012819866387680522916220400187184529885201402624979604666504299226058721729280830964208068442810733006207774751014083139779980059268727471136847280176763481662669859490571838416836693323144422633144657615874074831714615055748432232805228751353138033290127005746857297983286857295408817512152601392181843264891318034707448791721413441271455368937365413496731166486827058775746877308456596668708976607110270650162289856035341177669970478076973604731191730726297722250978786085053820494095661556653694919280050331206321334209195276403269862966071056411112994885443589387426421407645651332447850058194163484164532000206718188520627574063727877155936743408977611822859523931592602937842833700306369402890734362128040080036490372933005428661848646217151432782818364121120306324290880082243156731622680401785822788733921189086027146778409029588525681835792800300803389824352036661551640536573420443343300549375144373251559923870370563228760252727160935429922851179416231174611713417237108291119626448374057412929084595865344502532543563718795636585292745970857604852306591727160494014990726504388035643971270945229101178409870103885285731477408586749707608857190335510302163377756854706670894120155138797135766301895771706852990297941315488254435089939523687910444932432321890800561626541435770176654260356450452520366151222668485797101185897525551770558894819040652816995970480033848879051151452888064016888959173048731984448648882163830837256651912315608127950097531613789553668374364565613809982173774655103007513581898157454724691537503986339213650109981908263422018128972247513271111429132774016761227077095986430071066272468455665877753721525407712176104191445011761945360249743114885206493169287795718420355634862633628502722780740007396134950075269203796316666213124706047690279800933903992577928958939683654290822603711841210610203315154160532991748190821721015132472330984599994676730867797544816439623908712288364632272544274329356693217648020241192615311533344201479522835833661592060894009103855180054093997724454902734564297536520092500311135483628050071983736988175498190714931454710809362887511253797602865412360647435479450107040072883534713418635886019267434377509544956319999300724915667750556427485798928421087031468831489024733187614306777226786109574400300076867672792059326429496136335577271309632700215280419318557362514288977489009237928398009811804622818738976932121760789400997028333099463608569965901225534981472058888958594638821745309242275725387161660651350451035311397245939931143597101541222877237809284654361209896484680784419697448179393630545952112071834070388383259005651496517959085522788048870478986148734144476603679463026625349307089701401899749380170077943780526237388741184221918478458016456688093479295920008632541825954061216091558782588012687813864524046722315219893551756370022342961869900834551218881621278379216620169392686939005887227125642762393646283136048265991655678558171136198419625889686571503178250843276827013254806428686210532687863289981157402210465756405286429546457274447488303608847204172297660875936591691286323422986172598365565451167099769766290790696824007976437417103159100860263312676835202664097608301621114411629230087758448987828883468129333680952107842857519680355398246334722768398307938220178373116472192642942571337741421273253483232122707078499708022820299195763508908411685356568229109407318028377344856663454199261250416137059637845769818061535515515397337754964419026382879414917859427296827764876535216231148175298131785331952574650664329631521716033780331582998195718215184303401244174652023756290631093355417306180505082767802412645054065085493571933994152748009023589924758411450048862390174804507700289747752648366758417355542888755963329910883435335791132278956482749535169763928122834001015171556795985660542661873687643151833741415497965416399166150505887892713239306152451834571539829781159777050384110417292045362052611174154721606118883456703626692200927951445203327476612662669863137849477202127940187623845157360624397702918444575115560645344766552685507840535057282650958650340537757699902554876653436555187874031297180423354959341992009459243971015331044633762673360341212956845737601774536122340079505149847426748486514902157584378630434270077218995391029172321574166592842584541922803318053516087338266109762943716424629432476484329265237247451096018611296941340229735664551136710306716186291973933638337439366663275400184979435891958866211476830577360847767459607896219099858009179080184283856930501863594647901081697109822722257510576156845176281675361613895591420823645329773883221703716140709205631208080416727789236079175735002664057500747827688258267613276984053986581808471922566165819806183738425871238654791438449438337541377909490032593499766166317967475637258429011812653703066793978432741519654404577104721724767894690726240312910105317139589099072356113447406437940527105976142280618906408728643503957766916568076269438966384771293367965506827447697494067713942125397435126175873201445930437059772774488530008083444377666648139637788058331113306795797191549040121586644320078257808353145435964554882598214217993442533384554816938927494654818166404450218262427402177942959002603365735561389639916216003317474234702485524728967130161970866540466662058139334521032124993419373225885144213822054573101753566460906767231841734643502535575452439654341487140610390123963306378113199903177999196073521700664435588574230361490043340523625115552523393871964244472079747974126630435354103877122580401311020571218004843754450912893110887968159320683215853566331074835940145945719884970076240859065090572746996673460457580628365315854650973992449702967761875100871919714003695050303287041918470183450188405243190246515081290489936517183124773089037206123206893000007686669778792090801312284801722875333288018820041677654339972415975217257480813885277233569530610969525937908975361301632147303268127757959888728415652782709335491056546679787732105020345694736855794370311834033212932781456566446382420635295864137006936496489306046825762191103533164588934578970673553408580138517532484107198281016194377848516739066218085237413687496644869544101170497627451771502282036430345904940912468831567105241247791354585408501178023591958181150456814302929506605498557009501110174282870455406712341871050238143781675766126989534635310045437976852355700717972479998134382613979955179303379844815858254298250159108834209211697637180823473517471090865294303465802045495620732384674832872180414469508360902706152276473745063730969412998971500457342624555304512631688944713816034522068965240487435187595863016346109768207771811740999129250975452544643572758567074005421296198033233952408676107061159017180858414808558415423402578483883191830337353223330169674791113791984123378305912773152719780577113430887632465461412646936376588443432754004454326835917893306542984538563182386240100304390390143993126664383877702992889089500366112461287857569646864357842911240798459567981355615979763037354701863863538645317969572818374283154411980493108476129178715793101246942873362204218840167400489177861031993505013051993332942004355169275515054381034331115044483940627735773029655685783101357996560856619846528863150419493435403366656017138295639519558619897198727760393509045099180164855072565021646704905418573428284762617262756556493432141304818231446252287177806176320157651056842040189233368637247968731710295338851697749951865335401394571345486919667220444473511133797616860890869618880709225673249492759388262985045025580490700725741173570317572269006130592604853971110453957872577836306453693933795085027166047933782136975132079620868119077645047468650921743438920992258135668409176803151226484149260178215085781468343235051067089736940323825288788825900084868192159764616438358251120846451301736315122876949920453972864128074631341599868970979564390980901754389384713808071719601411852902698263958250445500135983710539979585744637332114049545942779795237369853873423498723223019975186358511683467549259655621736713615433081564207557082766667997962572129122266388024146860417250288525147128266498251931106607417421839085659999809230181037264396398857227275736906690917162265137851909295092712519911303009175080668704591535464799730098569619326773463303117162478459449998951808044937822096317983014919036433541880188087244372017997607646142714527808640960281616648425581096890466880320868340463190838529005989619597285818856756625366363059580820099995596152775798907341269709458789783829582252260946073576320815905348878000911842478958945222576034655402974434210126616561182556757145889746056093710568988233644286885942240809604136660115245592102249887005360133353455828181038026718310851073987270152031103232144954196285998454144070680750915900567195309320917126172211874360832488106582391021047749821163302212739730234120021300409025849752880690528786337390255146029630001220639354063061009026584820622938875153143248457258679648704458745832154315268147207058071250254373349940507213476371552081191084950253521434137379373796117896201935806439620388172878075320617943966363998143198168659433163601776220888520951488450825550274971016805640726426282600617256392454357985202340061203795218813306303237739324074526399690088126704023659182382523501528849214069429382906811072738175101165018714254571541335899285510880290660615603597716025981011644529987954936951586961870263583991021771050610653023048191170807334601168145686898840426426215424401189114665912103563681458171891974885699929969753154065134995681426205438027101251384842197196799861791299805752728386727963279390925414592920788436928163600955463521965301484754094359887203969020183981222152628598483701511645146691721235230024056440960050087206290125017933827271599611447195624897439157599950911879745493163788580598792981155345089546808340170454520253794495490651262155024800255585544214199666469919065153786941086688004383920568632554096309245224808508885610411826387571092586721624917198322769486009812478648611912437739237992756940104591412495472270773260684566050841619192302159008191904731516861869935976206591427961064360533528563433424446060732100339896545067792754360638471581071003468816540444551303962905525536843601614863834981254855361098027793948570827027043727420704041021731564113053765508850416084924575352582126502435955738619012467209689474079935004534161636708925166557834076070677779853641608084509977498744630609499920379695021964720383035866128654571096599905823119896307849956612731700649040351910753432006484492047615450214545433276461625097510461241141461860085335606720891810204991532099028088844482701336565078428166112866492632969489773452985576331687949328519831879788047759255564920502280549320153117294825637192100805661775625371407397111659242958903921595569615629595291267695961662056022593558914232360360493839985948818513490496044518180194889596301789449813911123311389425388003325486102869574548550900331902455594502039147757622579883798058304264820584660345561099658788355942446081569277148868026848843289511480463563819692863615403963460821601818027953803709991761260835414172997905443115986463053386487768606411915853466128286514225530162282329476264111635460825992572672204378364963315566339208579082442768662534409624578480327113962628619845385188315344581516058674314627951771258052819757566480645765319980175246707888597909052389442427615298871720887728784270202765129503238886021887637453804615078929448297657127812473115654841383842482125714669656502702235527475385431652115861173869365150860990676442860750643234869530687737839905940276122471571668765489747834712328073029235077868731619459608358741162609858474136380132873747360990479630899226746721982917644645286296279858102904090799256415441535284577353443560986718557457813464405078827487553861894981653316183687243250851444112533609112056927379705991561181530355688114548153569608895626546821328235844420649577819028337424751857935615288415090797564493301860808949794516796022878676706868899368157307519398198970781213963001555648769222785192088586645295984288253477603354759388617543567723507156494713038092991971385396055512207022657157990601691977074293090814957314227182202264697940803838417127586817328199196009750214514441015123212938798495388127017370809853563760856705947469753452138178121818956668456123319529188927263432541454027879860817066326147711581137927036266725592373992571122422529994798249811382631469719876029069785405669278510856119840038842903282108316125524347118244127216551518050297702407204274445209555981530894905781559345014864609945615828952168224815212057548648799692933362536067601621388261427402236282617125676101752367465195638403334471091807851324482082999643170127234195813217053909917168254175863972514598146046741626576644946074754573887167127938196694296112178072081129500285562967441060898271137434190402627031217865971680697798806329275407633231521308493281750875943557116070277504387821372018784462313839576531660868378727150202159143861988266686949747101548143380364898486923936090248678081537740515043272485708823667480059772794459488007959483161580043716670851370372200536251508789739825571390592970189817718191124908971685803158364074278217590795753548725846632604368981658795624620179410488665804865607312862656958466154647873216535210181238348846708785820291030402387195271093852297946287314168566604712806042481713454970635500132447741641572606317766729323183107923395893741618494417748540884293864587523449512618260435867959285453843674674952002696960192334187898709987482399380756361097650012731974947413124882229334614305599788825837385877671053748237047023855640876519575206028015914472004864943072277017042954715720034901877631984641852175445999727901105818542901889461467870329412431302948266438423809888768927762305483873712607829676522049682754474319292116475094750652976847411591481399400680102410236216652081115468838508218437801925727692101110196478608068223631115805352083105032447598168414477842848506250805082052329670745178879761047443162810305131704083959664615332112005432962980343384459265745407113510031417894754064316118334569130466202530193064815418770763028065490888627270339370081360848346806490998331799377165156548690112321596293809657088621723986299627288012710868189273531325921041429070145945774500982025550981489671754480404046409034134290103051324175817414160262186063552188896445176170302273555532596832573919440878482209415414258290090917263024562888147819142893851296570365725471776196214930922827367026189503470534897376696136006543432207732413847758161701260858134471220562988384667945987269453361320602847121490121038993799080072443320767517542366040530214177690840577803294532789673883931411575145875168035781099363038688658748317990327718552699361634334700906518702923272394945464640580730057945630904957135084273147427062279588645696109596538748207582918120415686181678801567089769799736240605351730336449162133246086133742665034316462020032080615615447556751028646727585540760316068856063643460178489406728184984219496509468693649075006050897710991197536267510530783811747938180914935919037317331259257748922092305904933316260854751223986345851200648023424402654243004549835958631612189776727194181226633392965232166477400727694439048836687790533963563709153034417904429032938288504820442155586661333515825662850286482928458463838766378544677420904348676194894362681278537901316947290067294320608517970862941973696554561017775222817092525323025337998928391053559594068565848787890953677297716638959269655841394330062332472396608390108440235255606460390534259990389268593967407494239955506097392027310571376023379316726933570173638072092830137314584458895361903709473625247339135654878983497740830091149400464825485581206375840121363624206759783053202099826297453382194717176090085754735007887893614830896825383122598866549608568375838946639320229969944869947185863238856331493372334279510000272251800917789844680898112253603731860707154261854053478396956221413190378944322362698420827953824985201900571969517189387041242270894428943267821205812626847554213327830680979877356977704603084031751190475657960191872021773351641198288909041183975632469448621579596096126774751717477140117377550131662748602616992558833812197603713451064142717146459193232495162724724089994747680468007392065835273157279967917129005601403507602495214574693671753061367550008637112682038147359787031778041469981639198024050262784648302882920794635596323500193700235400710394130847084528598313422192891578642406825539411214612415821210687907630926563224625914498309236646705427592401519543599610995241614177248676891022652242070964859342980721706397719870703051711294286819985498569653014664218466404819537113052249133707317474143545817557469649414777695824890838571110391991967315810032828406065687006844408762342687368448256519138657522373172839841473792971862988082337818892685788516650756749143968693105576102648095753491335045366864439376398949690361808463373235347475070624030106300484097882539883224575607278242389250857793052803265273088749015851960617674782263914390490383942367173869569459540020731614040320077982775033759773404898987070870616114284305615894587744112574257646185514007419295554299705712452139697357163308612302758467994175380801978667028486689552607572399399288018373770725662049240207091069893147149616449964764958383629606023496801311383201492515240176941587155019331520198384502967599892529755070129884453132308792748394436228720209045898598608047055924584782239837027867805329486618254825348180344595911527583029347987522095851830391119245700193898870715098204693706202134379203840611910230938787431179749609735312378564821745873399196123959873993155456186727482909201713670299906966900563538395610093130119480274294486852090768368666723280069277966088781503099736757924057356120025121991604386645234904431711280644380985570378060556613736044869913476939956995510106795285710186234790995286980784760578782891479758584326400033599244270505710370485652014530664017639097062873369640626194066763268386243616863285806978010016512686955475061333258286146537425124270453039605486273333953631722996919828113983745534196559311429662250035339507002538190448759793924507901662660171833241396559176196831517652434728959891671760875533454964419264408617670836169972979346303811259018659385262758501178372185230622277363630976757627615110280901594266166703407285462709727252782718286274836631583444089507621607869985086556256626917573641503419147418007111520384325781433976878563160665791241500552987019419442619582250870454587700968431701038627847874756847118775272774400557909138853130602505020213775379405715583758434395815264467633306929436216594556481111994874266904553334652413237169926076878421886318081638240207657704793212023790027520432932269665339344544425145484865912212399426102422926502802595498026519672115525924017278746194769491576505666826294693602790308387290331801578415829941064468474296342710231218823742739721721723755447956343201507044558977470986902250945532021229041908125669153870945546741781224609870803766828879537609417273634337682087451904351962615685513107568535720563128958846567953463059352156148709909843776837910660058642102925760884638109046470657231873219872835129316600329814135816351564467834251171284072359777556391309913904394447401540096618170544062746686334955319290119946742747397553668974097637753473664610244359470579953470295868463544635442258397068072227424389625739466852001643170824415252111145466959372483088057716945620583228956118112991238917402475513400076527456526192951640087425507741033205885795748516155318591305720973650248486380477401231222198482080476760643836263827088393853303019651791867719112783364463230331570768922589916608783146067882048169127359587636206169129482803922962151930254802179110122793520991387998422671885491434610189993333846361701031495505625214468022111719245320617579738234508480612835862748387897983243436891111416744349339123303867769076184346326553148021563750241109641403657138651526320878389840190119376801898799889958402553575008659382211928478859971139095417507050257394040729906922674854795492915311756242373099283407753947396476757361894882486034348854986406308837817619754708596978311038223145300282933884864256554560144060309680593566606583185506492658116494969068406651523041776052115935730818390858365241775700331039836668744921219023884271439052424243985649313627030622255512205161855654080589493284974521387613910501083772846272420775435084290731770342677668820619431137326712640118733639138368091486947514063266893793172465586721680144015541023929126570879380241848049445118098816369503458116276046384830631483404268019989231932409381210310010784767291619878699109682273977991378906258288815705293563135054073524622911895128215907763262021855101007073691213660786312583586341756110502386013415044003091813703369543018605608943353890733690367015427324220147271701244327934915989298603114899369387594461970561243739927528668640739210974633028931369236553402220371687609688151333335813373979252537561473915334028016629480445651983221387870025052814668725676327938458480912713751766330833147020148573878039453710715539300596786200058664995853974526808247902981713665727368001990387235625033897702438524899551311202680728188928481899161889936506143246045728981227371727196079909845283451383479799352706667470660777357163078510972202947992905347152320312651745054149271283444442038709381645335556661494331480575062397812615224310087910074413558757283316516062019948506323440192809352161261355512250317404690510198205017497825054562691580631848505710030476923823703936898924356923184308423539228312525205835879804769285387923859078691231798216777578551768284084121488013856428952068339935961241289390140603071340814150781932474353508182958882909820910598369209886877566879565640508850493777890541743902554349501475954345465912052579545032022561499472326591873507295170325224826493055489294805967667515944806293680011238107287834498057668687544611040123776541313199462345441187635048847522169087121838838594152648676773749170394262364946724286437189762914764603639559607152927984335764210223230904379830351760821169038252573827566283658616062592904873678015718975472938725879296522232787714186884287687678274704154446382803609934707222528290967691642711659688297234006838498308853422686791912863292769866824739222834138653538445562145404975227635845889402204798884439919821480465054291175800158330474277922884244321392232943267805014735264266074802404387881388093886857219815535743343044228583876611431782117266812184913541943603937503165063945466562630740339503422302375686999803246338449617135945559608288883150196160262508703171599094079383971285187669009735608454706665193140005063294780922781634289017311727604803366394270583683814548549465066212056559516845791828171299865050840782677444462733704352025956931276865835143709174320117134187752010059708321401497178445881285961547415100187933696011798777232132984756503588705714019339634216483668298275925403893236225568923723655815408199029939818607830352745860420708414154549684771400773115062898889272567505187172859505969858155159889318533758020113619345945648679653015486886859353857801228026583519328249162458613182351929835298674175931044012053620095368354905094854533746561731930067973970445093850087056036014281802024386752333018156930576315109808675991452056140088050930270076822188757429379931274336049762830676451346439526152493571979296608759274918951783943867714486139583652362179357331549741389259298665405883817216325763720909861671143259353188924893394721191378036939410159089562683098321852168251238861290795130900069929057132923093791211280368612996116463749808062311067605970631020484731460355098287683562172993565834115429957699416160471742693720531840463166596970569194066691254869463834606643480103899017641389480438920765171942249602204569333035699217047720996289274437256725385652033217532173556108595574141159985651550961509021938725669386538726273132291483844951048262254458691642298005271017646961472355328019932794997640657568233634847686767557105806833742898950498938024254917538279060614506737145569364732026777185903590286862564081914065753999660837851629686173841195202779704789019239547054761998111283172608665166540976591223013703859429986163541148411083859701400077597196906970419900278219421531017916366814847383110864931475869261492016408055156410710460030341763219924385755136801169969711815196948288417750068993612562815362802128237266812133414837545175887525598657626398187323114403226638127009989881261647531618523988582226808551875702451780505225374519926560068336408488702183711844573493862608840805674596863571129924030788784156897436869495834389756428959207581055220375884362395750790664609849303211794673804738623561435802547473218069128790646064640218671545849449793479182615558171165375538317056970052125204348919273837380227603648955792716463867944207191293280075717900861310008572139829345137495479623637201930116438450725687752128230284105003649959680624566006466543142465522080593667203016218356422238596946341956052252903278574638501800662031826871635018507158706194859683764187775145916605319774774971881154788251466717230013750913791306983260447939323259155959652047239075754163908749588496615223692949817260286739795259652800981124758085817553481330346773253857490207313898693407992918586063732426124494949433897274525135462681200738893670021354998575622967638685956006127742829689064715665830199304991452132361127624455065271343883975226248571279340936332060236144990775140003523375345623707822348535715377896405211863023270825639260203991055563000482790753163120890664260398378614032961107382316113070393572009164758191793884747901652467667131998265632601423376205581098317435880569146153161679811189642172275838660819377170739568910262641726272567067815139291181045303711507946048498923872185383219286346292081801161070355154874553136897368282930417340644510804434229648671127481526892400274425695455852677684138387004133592695357163258075363014021742997681500723982339764743325778215280549041447809411178230103835304340219927271113939620711217248323785610998098329688433358295844934537910621818319883282959902504144484873635467934123690576979888669571891676218562104133117132921456176592584923222956195442558752428421115600201695051569674626898423398518292135303348848889681687876776087863487369030885166513661116129747548839694480590916994107207948310168624012080572135186553363935304976307142767063424096636962494236609682189906779060715178532401260151895701952468164577174944259199729614679065978871878099698005830455109432740502251462161670977823174364420124953843343394686442593528290827512515748141435446068014648393678436187193670878083870454958207571624971957872235815284346443616585205320631456855778337728768539168914575705104390823720801983589255827727665997837334968547069730591272842358315502705455628725447418406721502172851788592591539154430881667371173870595408551727683431460333425503197478846901492904022099473840569469503172453256819040423939423704425563323122841673137672487710254183499615210662841908048103298728692465130184569714174669477773618095631748962460976897606785442186410350852538657561184529323194726225527075361444744013954409895417117514146863111949185515670769243969478752619206725390889618157170819458242560624366050128551714239363679765571182927763016842049406068548641026047436813816928342781208460932790099765853770677584824500193379097073959306766350640201720899307992664599668474916675710898142409293666561867581526588238001821332910117870893349552835032613657211535895785541450172969038707953419759671337674047874872898783905356066074430292031990702641975521777004521120219270554893751720300189561976016893217554291092521057159397231741206932071325549760994491269957655239559626250143718277412511194634033196969951598384261748183009664310196008400012915682008210023270912522319735145233140595611293019523928308908098769221328101874822385278050687737455580345399440876268518841478811350791736265433700000056239864756847977432810363531858354640598335091735282273397952896549888799686705279997001960089636816497093470088762659384902956605922447994276402890703437471266100848901195497410013685014312571752291231744409743503393506622753830002624846639767449887472176293922335395639459406830219921045713259486188838608367840285155445103314494910737736909355789380380063804298225674061224373102438468937534317324131184901322003557771676413718065048881228333464232620068504730534343416853421582156701992681298768479077008896726571691388977324079938560930730845548715379555448910281333399378618180478026702132231062384438508198535061895850512816877724389026643491171446640443255631179696095706869590038700546843491560544809791376498394074063590109644011687448360072169380140349531678307460094947979830778459622645583801398944051094176802353741407212107737448975098739622208802776857244567314973929707746301849972189612628609636691534968140557385367026353488820128388519258821952127637110486735290717582997073292246373671771555569785498195575955990082986787744537331193416656772392484165351784937051356175934637115106891815150607225628978366844767359199911827204310528412709480181226197777307588414376249920777192525410280644753821298508147840853352931159968686758655769673052742209940296325396091082272322988757310720038873641062656930710938434437843871396990184355521749407314716708452370147644596742204304184811940019137536217616933842379928750524205972384932811781272624350641645987921136240755845085550659850152612032734194383231862406308259862128193443529341713582931053532170253801842675736791421370290011024452264431778865956707334095745455044950519453281194982088274335709065252114794067691506549532907224669701191294562425264628080668218582475043528114605203993229843138586728293446990254860850843511495411239232776578540511655719743107749121745598036676885321004803108700221598347549687159752337422881639183742441161331182230838670887124886356199258847252816762208522795881084325113912360672405380489750502139124900201790894358361235916439582400859438718828634556696213118907085798268490063024937955711078712437549729653051103856456314365512647303036415509778181498734681467866930642325671728819248379021966868033962276964491473311577846637657831024932548338642045979132641678074361581777920926355235810588350182512857600144475018252722467534489475028342802006852025762988914944936507362575082308715646887501579035839758104072782884452716706228103772053265689553241948475447554985022834361184486612842647863554022185865492681144970162129814685855561646593645847724023428658452355444403042209479647467584241249071554844454585168109192010012822638485352487370981285783374119758242970163163833649322850393787766459638433799872018161254273861035142533682236969816513408036791445167322989158337700492234292769881013479451129235516645583611879560072708084200726427699716077094859696801005367693907672646779075627316855267255266259531427635393014491497477997941826314216510889059903830063064780001887876785769501151203861560423662212506854272001943709434481165318647542016490759861018260061226312632671381126623323781265960905653963185999437562845559883727395314969313989929236688902184393555125225040670443818508609833774400800311857283585462177005198587990956011227398838125981756742617810879281305220708557541863624144064979760726499646347680425971317534809548689301146023125868276887050735228034676495844990075618271535061630325269907089846151078976992480354806022133710637373849625644575714440412455059136350502305404262806345953683969494609396913711112810713363134887973944922952416726767131481769923670197780962114195823074086983402133943540558986424552731676161538277442341616645216336012223314675142089453986285964191286457689791463529068549370148751060339080393601917154898747728066903799568310070584236195715491064365030703734795336408924734286995039112477452675605399714660991644202468344641321807675533456451259264302834005482172522169883134849513341451545347477792814953544090001929779673894532347807341475695361908419354758605398181670104838690116254778779519612926027530835085842786478117979577157265732240555548175405520402945454655966823534231498816484308316978220898063974489015611996311342224681044215353588201183912840000067376736021845228479750659831079596730109780640306098852150492731258591283358642284916068002053460787428319529795454044347365365868251818555981205889932712731631383189660743387943228479891714802439941582419629457988465435510275724234671966024764036701962459193305937420627288767198022148798577874656777318013088987652772131384903148912491873812142313809269422773061252699134894329534449139976373007263752108592316316298336863465315504515725498583768328183481969293305182405027731996852091996644421826489197340190826618178245024992900685607958382557053867994567461537894224056661139424554024054401507990872117508914494319525793886077454958303401702519866225173009245189571555130073844197623811090378954709353418276747883712516552221888899829825543344418623858734650812961203063457283488000705133750000951228831004146314702923436819280564605780981248292241376274334801984187950101108141538449631402026689557557668695195599595042419318687036708090221581304742835501872886491225826330840724578048631610403386122345016990399725478306070169825331326056070361935209609772737670266035157817734749101018404026162701412683437970144544262745727733717847940965072197057199313710307369645068034056402814971349183766713054642027310660008805104945349848808149999262457384936737220605880428853837979188334534298979825720604599628067066397444806907511073026591214700720324682331759650419283607261791234251039406088928586969243823047973306583926872943747019081682951320063001226282429476881642918996208975029034053284976667592754614451489782218226873638985926548385545253492694005855934618447216673172474760326674034777792575069167538712225328031135625900747090368770043330334331099451596606517760734944935682441100230006639719417435820919876617922854071662673413331756544915735171902855718072439839244924228244126541304261240007897772548097019624972654404424042813357746591854181234654068512913226993726924384215282118038811217185147413270874615763305005541450380578741109464005862029404286604247749557445916533891750214638185210435825379438905301568619382431590273949222487924283834037930852587622315883244403311778868736935932799062330124163536648780061796764762637775793722129540073855119402046167505664059686351185152987101234725197113349378161946268579091905118901260259215465286827185579166611946882305772016140588351835288713696556105380637442196508394447557415791488836012689571835179712650617499621336672699244059057455779210897757823797495187780306143446579979566566033469695878721187772456314698756993587639426492418993877012663772974621862597384300680422791444806037736996463100162990775090949936087988706539721016960076710596645670698487052603693604080432422391155105598381768111551380035570775150103072217206460127135291915526137755197462878105743643207241438091519564634811279976148931266503581958670422389909424248687826937021627301614337110869750177377049396922018381168236486195187395186331991337301621246335957180280097548203589268956384000824531706875761322812295018570570767169430122503137524910122400167773773834282673491223071394662539333526884962554500569763880987859956542697081762915939139243297162546321617142396227742977957923609457397002586285519437762937676229842214539935685356214880121709245985843647742534388168366303378361010162709624030286729121634993248155148082074723900313677980110831000017876490958943318559073859532177297449285639353354542367997867375076173399301392382799292164663874730634705789257437323447955177109562925530177052097945552854136587910121927149218342769808612040053055880702944457447860703107165211790994071267177097800872084467743143284108381113234744638043853356477545193400290615817874502453325214679378953577864123086851871686479747526557959466824918329544418597011887056628389988440061184748810779293577224997819439665651391527612352912937920558830049517729820469627705728753443311382790434562269972449028656893296509414341581989337934397694467923353362639789504771823400934363604938418181252123238103012431795936718755453265712108311784674205507360970370143816163706792012981979557838541667969983761192795348135089412543704245140302165469883899181651048823248056620759329878908027852432912725640172447072376748074426749160228981176028282984373725221102729306862546298732559478916630657648803052909127897030359782075865104728941531899475320520060601154746139971244426087619856058207457266105627552403745736555275930953117975045025873675674310551997975327693751403494137667875581815721597929252393127767081602881774942946134160782340885353016181595120599265995875135779637799334085653979630426545038240996851579639200236184486384312248547534613549860791804616515263766491948330675205474590356703939021965753478233442433950862765598929105468203682076748538714977271955280619515290207877752991691832746851095083980306534339767978650664395481392689353941121039230474034881044089610443177885042113726684242628023088802333393147536829173471063951438130518475689471586655713159973406887047411489864837823051026956257067602600093371086479199705698960257712603980593355819427147524063330446959770023323306195058703534775189430473217657731013099032699292882613847872339770977533852529744393355080209445197591064491171801479557616631568487720952266700975685210759299338213059899642023855695377808704967164618934978524577822074353719968212267777969823364334003287223152531501207492786142135604357421793300027615100104192778497989045385055427370837094445830202531209497323317819207855065242518313119975149705788029183601656057042211564223224527054237467546154701764730030969926821792778605301899944610613232885329027201488186768829600907708602217766584031588360030280467089706368175697313410772187338886548873773211095420376325893082444976887765711216846895609236716982317795737597245621594673826112761263994080756586078915872618181309290609782257910020443787339176602494447811675281474072819351489707268364819682675385996954397139693627044277897643934004042260341994567002107898896782759552680556227195902722777858421374927519210588307780048891918231525017799631767363739337139498633035288945858118028160181887433909804220615635997260017387976502874151599399928016193643610258691116748760731163819537968080979837499511273514009990597754589954407541811473856316112614719732746736749725754313562647645124759590899648205592323441788774932562319213225402589284208473738902780134834551958021174333357402277825166162394966551828960517266899641980492946580746235106367216706631574665386454895407493837702006124838540088029015603923317839222716108226203734430528040722217827036237467948713986720521746493963632428203920199585033445685393684482520450625059647056861434952659891297808034508768751117921764309619363699209464774089139239944914910735513241648282787673040787351168319603261670862764999538407815040122751870784094126682267563586813774119900915637060707088411395240160038089016973427517631040101031049164644981655828686013238779280224919236328796195152280764204831354691438339508037791511698959248309326426625184089424489081688614007853194398468551201323394116154934613127306666937770553738429089302741887705374028930969234478599897641891587152566798017247235831021061562328882911847492868848833619979294834683508363899789512292921835537720990502454577418539671033870630112868538863585372924811957253652068659337853862686447709725129147603532185300554594742401333723669175733425116462243428287015885657727214508484154393773389245521497229492863697748232497991854638228687750487880816350402667160054030394142853369231378206636309600056907434800006795362420892368184054333683353067181828818624059008122920548728296004642062626697496492722507057668749383410676619725933919239134491285438076703184120522542892339002366365522247973502440904360714253261032950593682971911056897944513380135658136009589382968198616627673588032128572095732484185504575203054809016417023943439546229652755066236370896362880355072966321348868724560209113462465851316274473275653902026846916574100258586073009544215127677497672343974084318942497258821161742089388624194838492875437229802724843596772466748564157199200139953388256808708170829212240802636210894050341557607489039787699928879119456379158902102173453279730218569871532956805538221748762277614945287671172267304038283087019410051979734406580489603987419620339027947554201261182772295008944469991303083232902764866690415640772893138590000403982972039816819849488192211287933026701199173076515553960210020670342781584101725759023631899304158358513377161451979500187933086548331560260869519987137081423299727958308604852953154091345339073605479640287866184292475672402345639572956198441944156219991656942362119486599487456926529777751872230954150661956034092477441442844885866542514077300386796269491797071422789793428812104703581080335014935268734612643305327564715743047708517196493647496143881355061549344136202300293298205458862152917897388201595138005574346388760067772619118752994484961593272865357675372008468322283610994391622303334560680324006739319211650641332258234258589681050909036238445136186597711654138860555185547704198261338138615996953748322754094833502274634091292401355401501889790447733348102903386703547863221059508959346607252619898450581568175865032017253571656974445630959492103943535830958003074031934447976169037360417854134877973571216295755053405541697135364762660420757459073884525429316891597771793700487628226809030166718577245310394426332662137324478934718117985470047818801425571421858095081804417961761082940400044192122094127031504532151401200238646491462574788688413209797854434610337786236622364411150134261727470335764031787702699165557679683413314073434080323836759318029479670342695404055345344630959980682939148962164826435025062718020646001012630499166092932923213322014421194516117242032594517563964701007372794927717342091260851667670785619652852784431875213879275444283212555956146230179150114582410719019364031850132034701479639397389198157981203403725191285579842735929460888970422466100706380946338723455988057638468011604348588721009503640301770420191439022380830015770368869371526930455321487789107748809711516673886982301183300206615388737643139331570917391956891907553748255124427621727568297794110140616068174198716395567760006627575794835565741221215911510665089804807706030437176866370538899485827829687528724335440658026576132053247964824161624320756588429322929215857308477617981564047679511140153510852090332004166528513784663652540208349366559903208305789312826983982955906290196659454196131519402920115414736418647406816773039051991963993504112977427684423497692419901030535675394796194817762559411224340738973719685819877389596456640914533983414883675102339465701508434830651550794278648186284617521124194046206071620099707703482659268361619191869093770549421944510185852107347571261992516969633927905861566783137612433677904150610898244366383469515903553686916981110973018540166260800460177686425747681345089182380443954126549277783336200928671953581740985021172913945057059225973126136284754922895013185889225840881740251093327855386063429658377216191313696752495623876699183807839260104628611393369190222102960084379082095424526733924907785086899239776312323971407805047862716153901307484173469443368893973392887658973639833593113143088131893340303342453059224028919436549070630345856073697173709260546282302101514900376612349211634419931681387851508700440891241471507151967381850391382894716476211746525145624729219969203827906268660635369558756931690565658560841141025868375914551175860613487145161680701874674868826863593107268164180057706531738730667921165067327770060495080274108052178291237729141537812485187615879041782191474143954527529813979630916835849611209536547242807525280461403352642525756262581784442456840423525378020611955706128593963324775207454682513001272681048067064813817273113067845982370524053488589771858772947587793083938490163354186023241627494136933922968694463130971340996397990996051779620657958633161303845073919197236919133922096764208637860401302557728373985617755164808348480012990005734090921439315169800948676939263120904000708232791450547265571455263823727488337968266158674445787152861716259654501989995866933583193091054540731137075374850686632787308602984093470870723703331394593861582926510494542951006428578299117979395687283252680876330099931945711630698234882376988787925222592632903394202760868472873432410070079693082194206198345720144492651825547657343217078130476339759798279336086030138434403135592687614169175080008652789533629718050444546258281363241848471769229736875744824339306474736203896873713276573603103182889078014804508206946002385644016728301861005669832911743043027922289827141442365074266561340377973037791439164799041939749590958386830346880627057851366374779778148269373595388565334557289373346219003050292344662198054220160827350505325572580555489428000577473624265686574529052472702436899112662904872859796489523827607362175325944473125252394122293099870890309486876080784945684039780323461705914640050872582258894734294271411792151744084395785042840832715515941447888660885199038472667349651685714377505928333556454473993313880189352207532205033835409121851977737755007396873801315314291210033806668033977615885052596763978810608168976417586482241504413025528861936112863529602616386040643730415038283800591301511566838193561057309884151378732989685081687114198130030198814816114473827180064592697160983626852107664021494528333752157397199599305716487217762626740166870596965115879701662472053553229252488694256730185663982391477113103607347275076957082917974865501433406275023482111663733196369860371312047985597895978807074339830093611988567553041871732150896715270742002686186582083118645442545444659231086621127032587652476979339836431819776333742657109893382010689580520901461736486758671985129038939211050275370733354071487591259655546793631001526824783130510049501539735873363538997118549425840828004958429125234015402943470330269498055138397054778206745871693185428257940514710929497190803163205649683970045437505011863871495310299970757313359806579419636131216091882852216714917170101655213699275652405230762915773511042539264770736597027406086535199941635802607936480984278607641276870874385408989386663582270561631589375018014133279940989015346389060900386266103255414752845461768487867789022526716847964487277483395417403022584834213359483467262398528231438744660204810410663593578179355837183504872310779909675597521878911363989711721962252015716807553485571221138582127129319884732398757735324240438413444352370777809201139973349324374444133233124018716590546622460615950543497475937232310052042888652603764543111940575822085439391336919054233584304551441046229058421216067647283654676631084798527180729705729428272195376810465160549792328358017129713466152208691102450391528956915875189061381565492861915023049757007281744149329751948134737170898488458209863503809335339397828253361359564243932367270791877959368840418261532448031590599403665444249901435862249106090825517587588067045512956680483846072190870155247211450171185324417099695553276159789618248915065602550164000092460941715089953992386759444934165613330220607315595292219230796225270799307522507054507420966374648983391286963215246806436830996249565384667386282696005821638850549168454558788098962645763862875628783430855948062944890570375942717394939874413200277986622017325440562239553901097487423115931116604470334417883877107791165230510724994253635305537018470703809005553750126115188717815042150281141395386413073645923557426996579309701933260727957095743869543512906988624936234386031977491275989451540533442035640632011587751430042901989713663109432380425908070364049025785086640749598403546881526216265190028403003598152957394259231013562689084990589816436977462413437471287050903886250863194675175893250321202813799087989822650544663432052656411854557319883326615490837580976923211653661073965457016980140188720621637081144098953046411368769552299839466164516168928894559489461277697658937902448567510428228604824560434395096335591948032988322267869781261135109489791802133550162951914898303159038592564360939430306398202482348857326697973226542177602629333571059477846088910643318861504185431404902483190685902336908389300429927180703892225256873655494996835219659043104743347796419084891157017050539491364388519059148597837368771313787431424153738573480984658022481904650345643535941241603784660532605237213859318569221206972701633892476291760674569820514681402929141748376450485575955643747177823450817918376967926273088118466648984003214638820790780527984821596103427144363812716164908990306369858331385795722600170536613954242925690088677600016359946926930806584171534178791043707086735564425869826179144437323278751089518595000322520199049890346913979550235183187052533465080515336485697749327722044570862257433296021572681475188218046861333393362867187124823097857726153536987965555114468611308571683322661342401117361950807219648512739405125513145129617597605830419721253295398956697088977451026398334790804969566817482188635757020983914606204294531375755997041175557261438086911962335243265600533130155643482922860285837933187652592415603560592496656244014929036207177971304806357764010316725219673503799601692532812140479395135998129043694570278633122594754198062353016758991035587524706603956962045415106765606905103295561492247029568097780914852775650007925909721568442582022510472516573039730626806991112458797942973315870719131926302632727438888169249624595931663156988238235016852504371375429687576290327957807673832565723726629222136319025664998836939386752154744693332857766138460790627240405210411003790737182604357380105643750984500193610476041929721305405535091811697310429585014073591539415371865127777843367375969022404922684988730543568914114935391554951327176489116740548404756926497278497209945951407721772713135397324408111169450970962999022058583483676747886433786438334436428074806031816156163758857769438341578983195594350875151087423410468176033058517494945461887297185403661894263137046072844587570338922125185664887659263173905241478351727491554893990851609548111248499181468571944209134198073290416877991620645988897336658349786922892802100765758439338252158878836933719895405608867355497566603431021977920295202497779484175684617221456300911875899594182511627741412615236863798558062576628991642476049064056233178429637028481322646140731686854300873346293032229122684142626027731037788302265340315720204290029681767790159619488749718652802818416362777752525054371309408519678926471651187189450000207877818457377561362900393091978431242213806808375604248625335285716731470220981942654025964867323978914424339703458385127916859869689341364595854005281216632954888803229526187533120924009443702448759009354652514130008357381704330764549410819682610790140501934203905134579498365852882404946901003395163633141000091369298543937550592427468388341889334906239267106389419428438281483180315304486457650100860199454131060623901884050879617488660547074227128385793060477730393442028242399707238366112437167773330115893843148682518107018540898690482284938829534836948955315307540073029624526288920764529563807420712567986096401744363730408540572634119122593967561173409108026507727126154762946438149611148758380616419320116163131967034123961443161745411500196113183253708109604878926902437349781689514029846226450697485016474500748694056420463849175326855680772766842084780259399025300049862786778773373869813721294579638021792412924372482444353095481772176261598365702802096033801523293387615831223609330413096198781829765947053787400460080195360819145818714413374969560612659772108130801662849857839525615820061022333292332361217016423142094647430850339455370118587276992434733134212807173092883752703756604460648196642753354122578884659110117252577749164023693129870063322452028672325961322800028364729930117946624070294752136066462294501168210954312111480091231649619014436143480392914849947576817863256672154310172064330984254322312777031080917598379391706428923658192425694321644627494887499836445849934826260413854926955736926976976190494615950628592764578906579220589792064456005499042403958924704993849703338041316906978803681729418459914918261004478296603136639707563883022346496842894501697640101287627277134302789503455139225539979629695258595367785906019747378730052401370729584112427539020613843039260362959644134561587578954251890804914611185567337915628571680299624617694653881684008831149051545355199368973800827308641536647633182404022366854446196906433923163025162712229152355363512942984532616754476554578204879301625691500500091450252421621396617358135797135909941094753792296245010627991937927082864699978052656633951801927915139707394360495975589992657757707735881022113992062670246550093931494085601372421965708846122132535487824623969498641413324767372078944598956085478401975010661864738884314016485968506221936246836335457747049100815558435221106640800579253166681723237723006863396826118058658705452084843938061100285850750272098531682397374839998299195389080541468693761381639656235476965985704041863463767961130525278765061939064616265378550488944699721968380688533555102856341550317839436589372393403234991748270463293358762023257602172162540204141129881406060871351095819829184959712546598170396340960663192074661867856186212807420064520223318231353610753638508170052152858958650480784798533036345113302729257327000699239438565864736152795655328299308834957038196737296134467067466179502170556033766069369145553389393166263429399344238758736026606671523751303129496220320218188551931963787864857107963720549193343881410556861997350833817139968154656312274768211873186202516679023831979823188450718464615735396399883222922545864970511872093400616181715941679301504317184979713281273731758863064819272482026393453625304246697665692012869518866969657126408369081171170489022693526246929929507943018876261529731722622685927493708411480546195571534535101130348834108756178564821224076077769120415897965710741032189937626923548238854151502468286653252103382069812130312892987038165920123073484169197617668081957081777529372847907251039759217290040333760049446903102169098763304371974935255238896720697717788627045526322858775045815154879019003653343612905880023275695138299218575315938620792392295018290195704404271135608921621363178918477566706376317688592303021778282563561790798222547184936242316891018727963071539587224753956253134301443095138414944869036710100860318025026974225236511539950031959575196249745645079144357651251593428484442477308495459301791811200552318569985220086348711677294972682102014136419455362520491962482519200744232852913182680237204493470704456495084096793787002705211599670784759719829345917149419731303534501307179538699349107291479783162197084229864084226380961167169279220517803102555415280420995461454695930129192774179647204506519480800835157260199838705339692814603329349103654217811746593508971253536963569187584628439657177070463650567234466075703067745608232999644827391348580422151290723182378031520433347718139503777182934082612259820795453685420478956224056617814203268794680900213107988185277769921927234477043542980674902438531324244225185260821602829613682809836988466214717754815153367530876383529834207780552933457723949910543099041095379016851333737273596262943019285209031117460748592114318884158315506933884698903266829628305746555445187524179218802489207350737868175424464694177738038144590242360849716655617596327672631666061335899006129799787870658695308682473400332734237185519501535129976416259218368864044088578510166874409760382131169422408541238997103354361545644013704825454158257526443091369338773384290816150740362228708028107284597554983986466779002857291397518059616594296254723172988363478158836569749830761896737057487605282864437633582313787758420513290130522349019980759967731046978761199322438590136607157781165268002856745144219881713855451366268035479118247072876015361249184804781263137102603689283652025469983118097198215551388720375405682464725388099344508564129665925326793244567451001931912471286612946485481186040473084653371438105593503170574863075650831520786201751216973383286877454023662585706590293497373580268397966327592362497782803005549268910615238804695680059392899488866608831412909158211371564427301463136559839392398290237040947963315315369250014776135035251553996333497581148179459284814781460422339432776803682593238741131678382288282377028859554777490144015283768104239052697140030903747510930962487624733184187701759731461104983135973584886111297667247903517921022288296025886991408000656605138417970188459409264174866111205500412521551019223845731014463687911563075299421221520682949440584241863217996187442725875261134542854937215829082122632758631483056304758189024263003286653996757499513669691834323117861218015097633425915270289023642653941696663402263638206755392899311059065064825081040643081546869422564025381608350246424800323912917137241213144253213761267927799563941133204545891981545225908819355924890411324783052540508529198688104097695565256706951655665766908118847855393184074824659570388818706606021138924868407986242819783248450041943940950222753950670011046112885624590845200664491265389130845264567190997690215587375214655997358282172135938897019478929810358863589812849482020089655771994353349750175605564752301128110298789899755440217895427155565925218669711746781084857249994093114543915248383599704728516139803585821654511455040041362625539092453534370680412756245145808032327667632362647220424986106165994063913486817077044417273132607461693362973064347726362144467929673040672411954823459348544330721064321445935722038787329893658732535600360890622505599175634904253860334247745739613790278260457448958200896532011257993585519222803405385422992040497202068585838163572293505575053060447525030281111427574267972983263817064758173199090335598432378770751694356266536880100572372845557534321852220940633872134380613171518938720409000610329344324960897143805564135921410143887152804977909584611945958647666633957296926373261688913613221124270307631354880982844981639563259737725195076640539097458909383038018901029348994111297846529061668024362887222170174912796188846747311277323203636095497799747256239361252427178992099464965151641981408524380050479830250466822200459013505078831178638583495293411443963728993395650733989555594098246632759393208691889610052007996676552016722592976042211748403074020983679924977022529434038261111557912330432986194680526282272856445761865862436134366364549438239699381410581862360890462627762711872069373806776050415956923667149666967737109518202500091085093333499608770216219673956480375569431105740302667985230356835426510044173134158530239259927083554024105502549173156758200872239981689742054485211925141384595112195302475522225297680929199110163855615187194322227401077160667501290000097012142318928780222024403078895287997232809942449422822596995053880529276788123461221628185918364951431821809240524348240084693120270694412047197243134828411081499123610657259580079556254495288054269559969435167213953095220588820985651741504030626621588849697200416710980036668003827993679459527578513288742852535948093302103141864087246842071560489637596557737897119597561161590846686698305971389787223474866743760257215301629047458526652490711372423610053612713168136054159050408156702972472704432861503994791262417423942993020748525225029122697666438611490546432627823608771426942536161382186954259165001629110256486787859799495698869270125212940219581122289009928925940979514957126131596307767312042927810098093751559412073721426217604270943245423195545992359499338411699936975631168412462809856807427775951054483793539785709934136665442431142109833525352071879971514699062668497716474720278328366898332996586297952036236032217151546579406410445322683086220909007988629850210670415557170459140881350696278621249108876375351398246021856474434963357500209193506631267397113225756139389631557144786946258518791720765475761698499674105643359716700265093907056036707292831394716779340194830293065280832462315409071650033335273937277935144313940018033264369778391193943896880478698156242007359413811239422268231118478554859850016914761689596340162287883082707970966057519527164534894462071555410282560961136299809851144035715151481481945713237484346881393596378616917506876792128910678412936039738933604873500184845079159488476029549314907570852160203953946065508536194990323912378026264960329309841592218357255144292366413428874313295276648385362289697985961432917942792882215286904259888837914614358643967627858337352390532119849031258934576438094940174846251869540809210287929624565966152791901608597482978346721932142538758634478859388922175274229648045278661540443081651613210856782196777948547352365931547067902418722637855151014129968020685199371919813933111233454368567127043845410979786872915500738394250911182551234821902179815044487895019447997632637986932932452213104209913383171123295233865272159630645650760427693576464947328864926990455678651404720886633106673839538000760177666751316007977311375870951378529636483186792503561066118262240596403455120437285929325341094354992584447830719802700453378726593369649387185303250211353680420344835843479685552913538505241852504964705226726866272690364952181104152529014808379684603633201553331742829654007247330880188965766669696539034847791921046136394795276627488419118216493067008972627267399385174115598823358235226355946356003357193389464363530992126882986510501736150948096565185423745458214889848390982381853590947130339714538759914662076165743883761006611212323716391660351872576110724357081080365950575143407825214430263272150385251901565737461386636098450847335458642414724971100713313438109448268781158715361443552268579783197311601073138614975360685262726410702914104993177434139866868477862394921315154351231462816713805811950063000895291862110573767672944633593998626652185462462444794315979606344200044445231278055248331806877702991722896920455000538292892936520451109310190728617263164961175464605565321000891338720772957635293932983172468746732522316220154747917542022655548533241980069974853827272200930604096768272145082299506957631089947477750038970599838792645856227444533098420272395091587837360308528574703881984153145522064619007332955154572857549094572187436935800900990466606408699583523459024329957195599147516361771013386689834741864853869314570546615015863150453346628399247303297033371959471663918438471540692176021001966314290225315848835071400822827447573869474709827577795946620194852853207925489151002492726557981195228019712001967216575179203878763414189306254051225335132534136326621355858833581370941726254797852464623938635298370336651759058296823584448125888129939257858655761525290518063490455201180224735020700022724707191221256410415172832387632783977457741742011780305944998948037091061526141416950415278103221474269397580225959418319391367959171491938201321660806662499637715545270119145956091075085234669854310173811355320873040508667390657715567989831571949718556684256185212228218375771927366280901583344397671327876716608076979643857396368094988624530914140901647358794786677250395844511159730081981832767445564037235606558678754696976800370260968309411712399929472655699510286245505954586524848538179602588857018586829969644253950685817348079398802004723148049911982786783727462783497762276862848774149491043103582000339632429641491342436669654350674861801546612830800266460909543692937043146368774034537262784713084001539465653362780483169871617735953376637869974531035382073447907669111848716101877297277719938773600591477121889158654613717556451386434439657009420149344447164601486036020030149775288447253876395468617450605937249527280310188291365864806024811566279438008218331473717277320387112542613946379995797267039438873273188620856546219117388101392599333779401775651021342429512552368430615994543974151727126633835044009102798782762325254056196686868390187401504776324982762484534129636934129775002411931900268247955119747500719002676928241796786262868055647578191173161031299334772567017040372474633621558947300099818609898567616123973723512076838157156985283673079754195184925540589523865560607794431620791559039742627613468144481398237264191927771627692263706211820507982971158308155446061980989143221449379503871267160876368673452333422457711408550887962652116163058975264813862314846189896587186350141232764538056589580997911593661652996455847958814710441817098791597171163022155467849320290540304196900440291410580047509078821249365640087462248809324281365183173370271955467979919287402120333901153806474901771634195196079188332311501773089679272962032562230341467985813843028123715926636359233380646361235645254426819597457343942298905542240811615378790805438524879265264702933679947010185834547761803138832346354961761182572498134884431682164156947857906322941638935983805659632079444152991356751258427169597982165491393767106009177179267891016143005855130479354715295801090015955754148210562110036654271929074267017831637229572503911159016382726784573383280140199132835410735922508140926415701201561911780080924695098916755292782070901419664729111310188851839521292279969471761393843748693095153670816608312246618055425254087026962944329707714138871280205228354678151445447182006737559748006272281381726864741402823605382725545521255129497193442667574727285310323036039428900807885344103145393104458149766633967552239656105452334928669026249452347829546126440424815305046273110671023932445349266732112061323004540828556308435011482196894101457342925043913342318047151999256084081454577649775161575632443512378128313724658992866053248926288485171555136532410595486642501898586263569547930484165683142280795634066363322277823148604665204849033668871313618920286114521052823005204554603819002955721418325084593848281593661195449051225630839816807508596747257394501927968703726745121118749980115302492993328316182285899848078887810035977413843176113512154753080623127267921291797548932283653096895285915229590036368027611112152376793757553244295755058897536579150295636476675924749283666350267258625494222630337335021674716896955858761040900606772927722823894723010089717362553391738631337616225361453198026612079436565204302650759521453557053162710698513518813071759108223807818766623380699044553781880024987647095836367579121521948449227728839801573055379763963341690626965482081130765923667535211076914129918013733301694134429624143871578100496086900696608433271176700388408711985478423545641784620841537139094594286574803181830440324779703664365889665202998410157649707044197665105722779598879566458624739122730618451530340721987375749994919565418117298821682014735616447956325244846368623762727189013317850680482273280134767409269885151168936565010011181930258992167126471882116875173684201732421712319025630423916590137691568677173402033709012443163766610781452197850296212081687645142702528966468675922541363480399115897438525801477436013949207263676543751445361288532066979324244663690983976871433596049026195349540435828972335143691221263063580404389730372306331683375996065685424259340868749195858746680975931595399967764380411011347935008646468922502761466682284558495609989767486544115689956514270950843797486398572709467827856509756653846940676941357787896118431094271535336561314104453079122129511194479233210458014724885360207372344741593981908327327061586664471098085431971225244906764321388282181378707491495828732643154036155348434195713511577156858301870075247323391534488952936980925859479808983979223341009261871587196648949266091884810516802295315728101104314532053104713209494090640528928238549971315672327084955103194564246561306907766240978963796451193128529140620236854053001188175081560236781649812109858810044786300143995366804271961241053127092015155780029554878550950527198185337723084206504385881212580086037011788772706627518110618437404084458868631099222240381431946592763451711443377731401019061477856390943753044021756534609644398049866446397957822761290543557207223326977851582107639317134795108889035641226758504372494984976863558361360479726759410076824502764048441294662831848821427624695428882326546660020526384357798807088433295440278239380677771650191848672044725817901905654270024601353360597963180057125621454550285033455296800841806712457148700776023904907425871526465515681070523192706828786561053411493910463103059039120007686319514522001642821931974498040477967342406589830839192887003930638319105514919767404412885130438837725190031156724214824039746368494212673861217773378279319076194453611751369984640934226725764080293605463879862551839577080867897783774495692923483466572364589555553976831088700966357740992819849213166766849248762948017841035859532277342570588071576508959590029713176132051030317642828223297414304635871435858217950675011493082642142325118490878078567232925681710592126604326486674081981809995237942803352461162522024021442735768802015059518292607292316060400565289968823850903097197684894635270725820748611582336982585320297940383254722190980519461177515251524885466132386461962081677450552917781904873293515380695636994337447711618429163616296357703890269747075332705858495926982841191801905940730893910651023497439345906399506447556445720538631695247809851606321201466367493640405739485368486025403389064043380298302978826459342062081400932196698464558179417244065731281271777844386883644746540228325629655211734975994566285075301401213826907515917922493722438440098497224079802694578289205949656948305808502687547581660032409048464306506600337091924083529759338374066978916196484907852760288332104448933818735466415668204789172339710658604169258509951577076513730601383067906335877090892159352267517910012056992059724793191115745473294086867180882065486927285780301586576046453670166288014126039416515005984678489033242956288755128571108051571415088411217607949912564664333616687456026671888921616371638766885650737382408153064804836055396114887710735962356239851593720211999652993599045381870540592616059204184514051661387638867833447366667274124212058005555457013287178248250062916609940343714547851583069485905458817385652907963793650783025050371861668451634763404879670215189677862521587495538243556686438000082944671300797889412970443555516072043261438065574781090198352498553190718655158368263840015850427121615560823626439115839116584080685274589554771482673932607995300685210536799450810206722866265791494971954809937003666926592729146448066354784744248642068448287395186089728298105255696544541853801060991088792099704043429398049295133412448025367259924836403375220250630712927976203815384527708908362420419563519720162733558127142985555192058294302523147890480540511306089273374355821411447422528850227879716505355274528993416234163026503301538638309071968089145343759484077795912037572289063180606537658024691153523631257988060655017301047653465199914338834829250891215641514872223363181155325312493056173870881511740124670550467677516301182243193649666103500939225874643024728388293696094133269200723592937314537876047508167113934834547574661010971093292889383777885705277602762620754378733758148323458175412081921487915802030835819681036756568233650043264175716858979682859017665303432514585211155605609505279253751942177145280831860535778574166636245866799212376040893646347825968359670881044746895464696202258461491989774726975562877687336584356435401049862333891432061133095860968696722753961722440406009894866749258886216521259101329092490807690284083525724035133119148361744640593802402138253210864188322749677365066486559591735860283485440249151248155576666974149014013441337280896329695132768578220933057944585165571195535838230991296351810713117822380825111517350417010893895360765984332011222471703053983362906898399729444139954626995707054881883667463733916865146621880601544657582180674470082918975670630449385245148884729227751543914340106889761390767575627241666275428521518948159941186752114988392659147195246414809704802862673948908123145842994673949933120970355084210334797069266788426184795411322560852321539720278573699863701518987276989176292593729216327126835618692880991678042161511831292759267854392302215243185220320197176633932827032201900389363898382804114290580326181283481763040298851832596862925781807979733868252762253034298698808292256630180180152439299600170961368568097810899594179672940193685289591735819323816308409299112043361933656554439540749310353167307137604061313001676033622462853071686980370566743205259676177262556184894049575629443092827982022696240643903322693232367327188791314076353690719938195714219686681402372770341220183779592467542487575542062946132767779610221907430598073412979746099704347001944366805835377439946067039774271423982297201769840525437970615895743043901745769863553258874107913020120356937292073259054122153588142325581438917878200719815486271287867436334758491027436756719517372493145751658240192758856374637624036278714684127990337466273141853903520398825311166419169230418416899732351215455240136663572885160331688234644806221023427494696424359904972112031836215670765260122424189145669696237144250477803092524815910268836624957340749099440165188209795685869708133830780868505343146060525392256040021845240614517529210397784112127043141813293335155249712900486701916862791289136741837912991029806456032744240466633435610931268737152444745575280353605530369409475783056024517980519623821243250666151904353275374581547923647526288552109156171793267754727797506052556918136163461462561448236355095315026103875016967827754084645196214044678662546757845978400113310576048315009273551504166738227057231037106500620566493468502235743805887262818719685394923389838726381252698875245724658451922891041584672841363858342263764097620798953945129906064988243660964556563713893209073187735935656264316416742598888308106711714594156691576734875904948728345037837786629950447760306549666283795448351337538255968550454980727974665950438683630818877774308587214915513908857257958761195524348341208805581589471039254503797788714796039715018089052186831429263836112912389366752526414683881579441260986937276693181489153715907765784956938472265367899264361670548285171327022973132345644258008864296876670571070746209407377769128470506914108453430061417892333334052937173047587897605916467763517734346273629224485194308348924399694569532195637347529796434724711390601354766526151765625587656296383686142187089473964992081627555674451918202074714659833321653833722123267505705823134170948890460958713024480493004549028659372726278543666235856193373952270732624020973196765147351440035573688008519312093587604406841605800445045765203045308672167302929039255250524037365915911365947735208169316183416803626001814753903929192964368374168949514052088332184492596667025326522711491749549063423790938769959748879554875797630563830745549825243062816724698070776031500484889948849442860527558065465764235190130535155369383387711641982150913144520083241245899647075578514004683796665522796015653086681396861647519180655166406533013740271727311014241812503149491902889761319735090265786025151105850531228858429727876157406263246505918115157841210319426392319491887619051918742312526660278410379392278706395636021340724472961530590225176676802760643549675504767377585385667830197342079229395025999641017942433525866919794102294254084549128358788536688329405989099090496489635452179517930454393906883043132661469255503979839576586639476269945453898621288055473395915859550585884258409155961434665344682220363747476382977299112999855448527366633632610576843201328210702695219293750556441311261527788107705175165116484206049513173125967844805151973347425264178818316281632065163549809748346791900497790527631876580527339921115122634266924868038731472257698074449995791975308646552710930076277367786043331986295680540882578151360761808662635529660261132491907654450097586350805301626388515404505560646749764759005011732843250769275774150586241079072405311997418399216355408278374021682569188930111786037487505744023136233769248919718316107300569065506879697295338694477198180847073137404875487540192766554550556401181027128013081106697156861985936460097413611922941187283802267332649874513222905476353602973511791760623177305098202297805295539725686242944283923389574651396481021050286609439263935475219633413907069397828311894269103911804024031352748364845776756347631205104957547621061721541524962787066417419195990737767182458440866693845745212339742991807874954444257618381737726000200254295968484418006423284178801204058890596891658188234094077504875601410221153354418356983190455475422916832302485473869507725371947031263967379451880556039481431332378775454880640215863472854438151537832592098192912308010193240259410912828242612729319595589593246712323929120844136610797472142452439066643377414960164381598365556130430281956398478749493335281487118226709810888084819424035540166348742887532335259116468863742897932153120469546671088110044100456888204276423901059301382439316500143073924925815045079972517352188215893331689742147207574791580472780793430451044523667222917260069927817435609738514305876206936438757871447516834011459201323240894150793678984694650394240269386513292596452360187077429363494836881900074720763967266992382128973046106507692532089802213064426993330744082217880026458252032916936419360693297294514437885046750556191952677810359089674879382415039580068172574565449072699723337540379600684491752868194940165030484721050576562315082803567829505492515339690139940448333456799011682646149936987150972536939695377992167216335212713696548517817754036095402940570894360608660922407877128331457282657799413844041911967653691466595219155332645968484000115137611666712546544160907336550848387409184633165261078078085583796656452198404536438845294363288014529797035850515592708187398077227565136357367382717795731464719945204784519775739141956859965944708752080188024061950849924022912458445576411152529979182192731845200451848709808424002872040462073680355884664646285403503933644822313585621528455795785165171227192921216030756542421336532059230288956294579446320520587018244733799859708906244301590259675189796463443259077434307034090317017908682877934568821710247518513491778623159264982502880573794198484658525651187491811297346306340186519381147088965881386369203669258559125720645095980929862330191078896954564996742491573409103725551872394906253188297839723135438003148187342162330414737597853482736127180948294411535896566479690687689460927869649708806043150383859965227099092327329024830221416711274269685154757294530304377424263917617027064943253540406123555760610660150916336483629443977078374233154395508605855079209509555419288078015794056241751119906988505504966847861051329090567985156841852268723971561962026859017445020748145777770866175519847466029018481002079515663241480523374378000188583879400675499434442584348955294046521269464654130710689693826360471322459347691474331818363277218977185735572186039204386467080778363923478345552111730739471410233515715335655940580515090912466215222724471881133791080060965808594289436069518643961390652379678923425054892718757720815423801107477183644031725794815988367715722021581766495969012921731439534819369612648846689034620323512558196598741284200706592336194165506165086400131745042450375563256960602002470122232365575531069613286889774602910039132089179062663800625280565555950991614807963180347044580287369827977338544838884488993970571139026091973034920543360801683714798107139028715514302408259676548402408313635355931779207028049349451710716793859135702601091763565070354970010684407266790806076237830991399513840923235343033796878076423635500991810312605975222330786162511804965160585141765041669075711214846440220422813853575289647942623307705991532977930736098555733878736874694918505657772394937805861761015762077233826296754530589827521216093584159408230473755709694036437254281730236176737411997129584419737384498751775971046720585697342742669761304550909628631324845207779914651731272888222972480947957206027883599661279075384683566652120896775887446700396096555144749537937940941901969241532916526969212868063720878497708954190351648311271672578519431623424929490955240927701087350726199551128305514015242836672841678886167804830157027811184588862049953985064154436015735801679945301576024520261754469349254175109254832206730034047941496190415256809464975061708663112886929954326425334146152986104905522658835528819535116085291676665097522154138521573804046775565260561694264479941625475894585115641433612358451521887526722853440721659038271923715723095976357528442128910107135643991084157086262208639168667550049800360704469439938318766556477718893581396781834440848861186879373391264911629557348746379200052474826937714937673909448218198966796097254046073482422485795477431465514465080918706084741045915562813819858401697308649971605388569615342766750511929082396954047855152176943623810861779775675149146736813237367263297036630137650027643430525159621043889778813125070407731075864054390086826002877161270822992887584978476994942521034932623561720141453844508744525352656969627187283283420105918243912745829033772386430393948879822814081019317396439204684933533000016196579431096106314532657838707377609440702138437205902830725988201213285877742081008991134832718503978233310500795717439389893934017447332350691383682615811884431097732897197334227884692006513960298213327285355767964817023482713215678474966912773614121212645564343787554322980635945659128496360805933613814042812798233564837733736503883900951039873292675677970022122383289619270344492765263273208481672174167331124967965354310757503158983435987905813340390053606593587132311837534471563287529234405088494328123846517097489683262484392546254205344092010192456226934920282812985228024171728962186301693532746050212955040497047662279421984873501018340811161044578139291454056601950308916769982734662772644883430487991837761194367239366213157169820125224844298402580632570685166663297845179012044959559244037952442591782789030702387594488023154307748038655467497809176466453878522706020289990016964607331234033618956168781486925911846524781489346865160204249202324548646824526851224222188650424661080447930130188590036712171016907257468853722513483420997159688213394857547312332084045684852162897470613882454812012969305667300216620659715062991974018518574341615557845047929342096242246620623068950595906617617051147845882796497733356846157433573290466399289388610943005220725279477288764838948421414114218281645430178916687147369638794813800652030139667082609195679460083827930738979193364080820256520957922441257015158372190182635983578012583902185927958618151688078611415783717350828865334144269473165849822935718498092771562082488672149445191876322369910925825309845768922056426499582465841653995832942368447313759222674997392836022609525555277566135117090106782528129909571752699430592048011253318997174286593107873912794294531134411488269383128349757442595359104450953278238858463956820165003775545403132320093343278786399407392916346266592622911256256381697991355787584470347736836757839592316194136764851579427096873470842804585715873599309449478806934384141108591734232108736971002057573673809996403583415576192038037181676155878107505040348698837236475043626735256176668000480558091802871415470681620086512704285012288361633708817070757837386363138586771682977066574688871625533452631646169525027793605501872423327952483274362473763839554234211417644093207721946048548274285148351260071650340754488613514052838734478326662203904775911998128020339364805196525045629163033348556170610242784357419501291737628967098784437466283610795329848923983343176998040114060224650169173373467967699844408559898066982161394391980732013918064798790912920358268697154182590511896003545340586922776478318260064728410807108063806573684271496168111694664837394718958303708087460736078869489246489441898125173068501492124162551342613367804416298390176268698641449154447747991234835159552924616180218905777583100163865172523011376729052553617810831570939190942347873872535269947995533227631753409654411173531423932437621980607202077885104974305827230893609939586756377313509606366895123034366840483497105243439158030737132616359594955122868517092038808383459864836399164466083732311250287273322380459893267155807047202676995341577282707034366557861858845393231194413089452659071229779309296470522362607818919750967902356227427141776480968741416644622702446116902760881559283110304284568905129222982878763737693414231410137415535118135173512077893718477594673518170555562150100090495205166210764127398350069230147173582029140759204103780483986984018256628046304990202019185905401784206162723409668284684156527794804722499323717292788611674500296539313251744905862637997794236707055967113746424752572412164644732940404058922635667195912036901609686716381325323993713372625205377928558890267361105899101515967053715416565596304749470859408448380362795550223850121195098587677749658489754302922062863215781663897092117033364253244688825201346431071004179039769854603356118754059345337421088624663709616260402249422850529201143757956394945084018090440653858749622772013843765772379779117178069537708727462812909918490099255799558106005533744398479069728540722840248792115153734528846186715019314463248249672978502877933824247163792338498766595987187406561047345412012757692525831247118385288487973726748736343805247804509445962507381607592480940369611857841553827550397317326204966800836981509518395255124498870584265946510389374710375457949987215425183696346268279938479297830451864202972053461803270074924558956191567125818432871694687716408364239732088244613706559668220337806150189435200721495930161591488501074177340882324688578540541954295712929487908217954974842486154308037076516569460448067936147464672176359234764622862867151443998276308653294739730836428049325956910104393472907082027858779976728263165755383360514311969404127083306404738955962144114094155550230131662181913688589296454770650007600524613514025470556692534597360153485820550713581915142826707793582485135844421333021949941226121691154088626190441901271277771613015490563687478413258065856867459941356178070661566946771601457253328865588999122213422371357488467098492852330844384492056070314521109200160310182727443265665742576903936357923618792716874704734929722978855835224351191118733434981589797969525177562435379280126730898526450696940033521481315288586639623296277828703576785304155991101460574080757750675853947767636475008102817242144256750918137803369557756534603954327808532019589107450221910020107119310013987246487674041956344402120882751029232776892985133892308336392235343477602710053116652301923376022417457729036581870335846912374944615948819908904740940586170924076856624679582124638263014432465238624335395845146132737782424377023271300945196328561282958950784398934934875830066961541005623674170119513607664043867139544011643115613912819348870952527705927387449200218675287917573817864988780325812311010827903745210560550399821586159377913076936247158043217314507717670016320515048064148472787358431746790204574167985580935959976491133931727774295324169392581913513819925154760640786377530172787884844843483655539378651134751886335776411769960687494918967423515290829361369951475937423851109062846936212973220253647311281446998607295397438472107721731063881249168787065994152854618765827922484229670848233919532149365023754691209091909596185289350015230162001164649418687077311752421159661325405430685076190321927852394033239460383654544937764633475662686364116153665811053208085142031526975945397761313638130992575598616822945707277203786450973705483988896429457442174733855807967136140998649763996109883107389231284224389043862299311958786091795253475088875004939244803425656876507296233452378838181432113780962147347971135278467716959608478492942450281086575370310091105052923776107148680133434681626111712400812204084607325222196791867843737404744850832039284183634698124843886887740885001850861104361184406680631921300182527686751825944495202613610869869277864259107781374183168640944902817844157262578966345307244267892241882312754621734556375878487012564554519197387058179747740226086201253800293653956218671317708612505063433531367853269107597325348776509905151401722624583565806944698074714624900832245112989679510883483968842748031929860622008375374526864775773788725917320419420820829415506857499225443715556126981787748594911217838066164619987872586748477543216080736353498067485978725676177632247122958834472600344052484525647159309468452059039945157170052416020697392679664795520816747195872717435800860487433401698771087688868646281327652963952628076919126006496733300923261258873492654966170373688746684790172935051004345651378292235816445695868733182775142116153561383678591234136093884339653740967308782465695258560260960465468720840159508581564086326499943207956395043127511216591797349339789947287133633043499558498313682268420762934382151079856799550502702181036197817746495499358237821845835481201605050178622293565723845787611018433196912398966492396631082915141935938808691721001070538916714885485210178497885653747703716573606488850680004568485960392629590711435787466456665006101645684628868205180699315155901491177245597663839404324701927525334602021887161549956963205290209782286448010698708135853994313774916505763098055675027572095794366179957512062839068733406681079695015821714530671628677435953762008049045711266968588018821640941099750249296869149185823429944066832162286055131453666836907914412353534168900155642597276526627207181956067532103896212003160718372955828728085760190392359198920761074851166658522756426578647693900308818909950633385073936325467693618969535560849441943075436183157291825689097748079232725216071452329112788416707477881661909785191658997192752844633524706742388718054693649352333691122961515423854220254964819362925603601955193978458232486162710514564180187343097255169836500070923257787125744662499959474650718329329137236187827612693424006194776929110941791786956471040706050847140489428774981791460543123040555215095474339481081289048412934769098548617357012816679014365434432819995694691316002487601217432125835793231645155005389038443427942261046803665535032321750902678275350041377336736042175071356794059432848063380421826123793001420463304759021519876059966674840143686261710733050083087191633695413935532873861840026681340627939378381946016862667200311493266012882780018360655998336488286826685945566894839750480862316843520352118971715482725696132339344841544961701554539331788494589616274876084162291915833631271111931650302652629030776243196121511570465738223202970030854053998011139894781075484728867410517468314473099878569842403706717420061144095465649895042653412258003436725890809028040743632529105540423729381208066582090475668712727231484304321606511662150054769924555636752717405169688995466296064726499412915712474645043986104519415273842928649124844675415984110092823076471742750238537558841784949194931703831807504887028049583992131984078036941310392021042447125708748608388141645404447599549491377220896134711059807832405802657219594982598679560380023525851785598108650038323886465210731620107441334792837482462121291495194323450529216602855150972034579297589238481727275324465563512527498451414285372078657806898405522817255077352286004126446611740673044889237046568616068741564320258000326453428160194305324811663696848457572249450930958732712044158444569032818841431982307248198081533377981026259781292447168138516155376145687731833724322798857473677938410279865568826712355815256287007632839419987460272261621720937534833378446974427164011138321088734107333403061336650056186831371491485072982970551907772976170734123927823251109199896183059042561653762760712025961284373907237556662864022328843580137487398693605031465596388239133258545454075674608660782993404038862460708076049943375258880656297103294819585481358117997758099161455216025415622010939393060850212667428031704496687794394254012300407415864944403139315762553960816824176684370557374772072497486294863228164720433736494338813169015014264006814875269944659096348551798677732804663466134340446586194266668711481232164726805899526802807979878618493813232676282294429701774803893861208082834907310723907044676801061533485630343081856571059672762185826195880317785005347812523116840965420772941989434985886524214509694183084687892935540569671735900897484812435693877077830322022084060964797162813728285031943043581771725356086338554748706614657533081170759121914217996970905908200087226411703355803348630585954960630922496106233877111382737983222324541976094964717946168591109249235523946103323153800294796471041174177708079404983640302193839331525947629143251047361607530288205425623590809879592200298937564087853978038044939936264581047710948528929977255807882342335984228164336762855509895388375015625792945811692337029430832130536410741086654820426139415163350138090708967591974916714443740033806882138595210999128068475643718895262283767079393657196359665582408149969875843194025043823611866811689133238781770999126870860429635212101149257874189746433395092738555371536709499118568374183896935406312948309937040412699449127677505588676776468994407630404665617803712072805245612253801792828788707052572796595502671796896398851023895702253074621542261110963563714846619732187452629418891378150632351789084994597346886358537688370113158986383033136324148454141463619879531110944564599861331282531805098936944904027772461333023792355203780842040645165281001239846678882994654769111566844875943360140685150603851923703689919110691071287192303842820790101656216901888611094085157606308773470246895104357845897334929010213574042172097272405425111245075178972360470848654893815225282830688715921431540368108786105312193753514188811733492986034669912379462490782607449894465012100355615279080035254235278173176107507658088655366178201094684366925729502271134873728319885563031626326408412685215307014820517393686421559480456132687053292623780552511735709921426271614244472896978620831329953996316049071369708553604633833698158518681087463575504009804254784913447631636222329389711287865720289193407192445818868394737459901880743768567764664573867673946982439008474730509478681714434767076464155925626117235520424291604950038181755471132390591969709696040362552221656319600659037972505140430533180541350659491902124231788767595400331435893569907948543357348738731134389656653161068085714371850899583574794325668761047838481293944693603709157072658432655085464629962149263154353400505954896854687736395979552088973777713339561688780055876864668144905696691010320343150340037345277075283136777334035379722169645249736411848043570558029421809013635748129082766377651965994449060103784573954466419850256678913502892404010944938390544437761602440562467197422531091202596252024301451823453877815247667406155375056279229641795571936698041405084633660464197007545373961610865349164466436661305247591786730277793504852706496948640659936869186366283143948239178727227742682359426650872183423181109869673152239570213420569794497818950190370301405321111759879428024786244829043637894316369530374751986354950487727525853627202678447135932393968047804329607495643246068832810102386257327360595059784967072900305755476920859479685649012016014059155970417972900269248147156328102159254948237136368028548167734873165676982278769397380864391365686874258345932089593661127678102689565294302425854227552799489328987317216488449007744667252161311284103504018104229964304504242235903772985684121173897724147970007879708799738116307184093775504224584023151731341353002603583396085434250530300390657019897270795455607833966049317423641069059478322610879107318113311260881194664345320792060795657602120880879001500140615711045674178432823235853233447375064357221113999035245566589464295504311190175742718250060481049370489035228144617920268646477501256165165698726299660524594256375332563147333740404150771186671699066333307756741126762616953882335478433762514540568582010472097283416171804571166300508159544504462442206843971664714091461450717237019605194899045353798995760421109008025576637103373005067366605181965425923682208197483734411989954110907019564470558239120969769537425846038885732937559227999921382906701636574451422825385091058937203193861704890285486997765488627304606851708618715995499557840350505755211310348371864755053682457851541077929170681727942153846148667274946574001999497741013797848886275549371541253052983169628991177684673036640724740111187677241855504430820273741557831717594351318349443523068097663039636299972930223158905708281115790278086899094010525364888257840002368005413184086422154393436078639115579891191802107536976437105361262854127759874769881751424104643064672940488878858500572043480313773441109518971840314026301909650629374260582004601732396075100439775429369016604869727650247326101309062436744932801537589787368873975732304743378632425616689000970630393142994037891578209919518334740118669934981782430357055911852459759566268026709537815465954184328928214826168672435457219429881910197141529572421216280337530154816173765313069763530682882545057151661996491876884474543814458512215440750994589055585074805640300036287134373728211570896094348893247784737811853545806681484697078600415219951789122974665245738845006508016668659915427449018452619564720769154386927359278155091736773141338410663007093028012522558860822586466716996218345820438623473804140105763262286556781700861338799525800147308989210384034917852196157583376308542948562367616428298213088754665626417672623127044375570291800468738674531742445480896576952734341001406793043324295269659200961845103789671321175339495707520887698151943832800343030159247186266920934013812933397346952744451413422072760362316905005184523118768849681516380339037146466590965057852811592499845544033971746345528934358644147880442680441943621708232219601334176428835178409607958499652707503997811387547229498189892937743991255488461547753610206936319820240898137537269966472918412978037681902070292141303702364299192245300981869122759890534571950557108669929847974381157575405128670076002120405797947234109726873265855272352394382088829165721564807561577732346216438668391329087138268031242803369293900508256370754305998829342681169950602619381204275124162051711956692963320516074016936848928498664022005711161150479748932894195843778845040818545875383322586675509319694018787216104263771517747103521530316247446269065218244551387773592120496808849137924401280040690326281525585683882149516622255771898970486935133349452035589015569172624487830060186630671853099875022456547766833982255533770839632554537436538054941742641817840573755160620275597815979663927144814247381715324168644293838834761897417436334387513974861926587761990178473135702125190811941945235983138480999995467236746712671304664087489664075976225331003464753409051553353660505740841237122075654275112451523851097056758381042062270152047347951883504237201009389218312153326920614093234937863444900011335816932784274953231793490614736900825780914751294269671477787609942888708028631978433372490959206630110110390815784699485290096996629430006497234636414406426825695793407662958332649462074842443856184465841080162187048138513078742019965010532968512443700054178686417130501147725188173970723472025498316101504926258776464704753364694361449835068300025903111044881408300371975556815057503262606317071017612154164499141359952541712625363020766022465995252282666794900954477287926313631908832162759549857436604969541794835993782341115791826387475838172145316302124979444717468439978674812889383593273992747918041604352397083535534722257014647771151902704979206622678213526287141855031139294557988581626468386495028481354359562038110706544730000927748661529446402663145117470091885689860222515587324105333086317005326233093921727088919500227076333593320506963436677267329794101828708612074991782347766944507224136201433101833804291260716150776110310334673112386451006730193208158260301988318061590989493094265026094896487080802346346199417082157798887806151415813875470201531096335890029339501791306688342594778532649967224130008987400587223818962105733665967453088576283753777666346232885512644640812480244531027404642203596852735158175038454602111770440534777785249862283511650050765027879166806957218980643673077915711960376684256973952831725905350586294163996342529225904933548808726852011506751640777321340306429743298755440504765884185652921286710238814021815958680022724658299657501656010795871286144452865257432574486741490487120139703284963323810801559657613608354767959942600202263917500508963488179290136823017375624785654104161732093871682819532570912656088747746038102115492633511370936826747133512997193725295859575201421389429815211282532976765642066097459685781879523219756720573859462469028799330351117437316436103752510539922095403349388727241883769893889524187639525379174348876685343833149635766841735892641168973813393620607303040382679171414074259731166074518831259343565697972552763428579871013196880538633635205544913502753161068009787927451556772539491188842731496073573639108578215864866249247801916668922349909963570154746061156421854029021342550200899316191080668934821667188734747269947129891704396148906623553147244679832054890506364624287287564601861600435587136395458904401411191515486178352442592173969055765770663175630985384667384422574114164059328535159930814753421398403955674584622623566536071797412494512670550394633590727988449039348998202200429347344556461180761722104503811357207490644469469432941404915933169174502236601860151676197219388022009592287301249917543523333782194999679143156512490258924326479412381881463420417543374865976380434271546712881165200800860896313794510271924830053020221778306241125584448070297596125816180414945982754023544878013303316981414823484979931287921340673335874328014752256543949999025879017475891665075376992946763846354411464439738879924296127097336368873084047553091469546081194899538196905635558252755990976130739708033616207506611383814864624423423242014429020365947420602539255432228939869723043602574546616581158250456491771361501163338169105928685060554068348991409937403543911989557148554503689698887404014574839235493606754769320913701839026329294768378273443076861943848205151236500073920859632049607152329666012536220986555993835107940249089848986015248876483717814012187192485400999405696292421497889569949360447420442426845980586413254857215146197348552550488995839593466285549680003219718297726832546900095495085692816561214985509091718873138582323848041504475359668062355934569655790444990006587213998233466665019822516959919794360195229273398640008550819421811744595413769076127180815309692043093626967515565715785730788902096264252355017505621356867771487154035928205548097257862968442020367024858528246184981526292634077814249069000817172018600415370283206505216877704580317957622332545832773784273320985445208540485922006024209330729873200722433017417663580451349522533293862247270546606285948064328444050039116610475633888933068142889104925245329547039051263199277476152896531387739999055026435323039223680624488585531238172914131346435215826488036670596256847319753497149698661446257959083851197850083120475705980888564616326696153562934428142223894335534368928710156345667843577857404955598930377356184785190519484886884897646729647339412508212757000229485205746560847133989160027808253431633628077144048595437257917946853445227557884406994854242192481229117815835099753906663887444721875454053182127971350030621006767496316686780850035483768319991497199089372743893408293927955602989242271391144013526621652207545080098145726291951053614397650254696062427376563320089786184691007172271248949650907692762255004947289626156140215523858638666859527071737387364417397735711050706882117697955708190176320125796207660284068670552125795087369406420048025789329742650284739259088781740916432470485267856215562094430976864795048775305746948223964427173999353732222287374439177973121611692536167609649052997303488803794724242922287909157390535320898904042818828289087606074514198847709678015669262468415795836642059572185896095446863113206335674393557109770243605475639373376803122399999251514622784451314996365156369932520285261432693200924596433397233616847950448210008204324129177625752421596993347651033900084524146330737685031349339683031440525855528952470711264483206101768462392256031552977257756589024400880032267076530938650706953956554922231131423568647436228007507669012278992762312615533542816157421332407654258246554214704095934190932297572664211572541396072310206270852777833915398972919039910481766365240752850963406903094979845128210767683579216487237121773594602073924541374344213418323809693855901826907778632865562945720170052493208703197731487743537137093839393292566672104268252329797597584933816719025219759061350544368452512272788221380453861251247184212241698263094633149778714537679991989970131154056604897187978219162070376958124594049318714472391459690457448861172179056380718647920127350810598008568406668913102143464434677773974757239798523286014453643875273446830315153019023708882833264279434311472681482039570726421930073590802091743608282522122224956894956861625376786199626570854790637369441452403983682876603550770530306600693402067414088254137141332343529477275873845630642945214299283634407851879513169884718314374378914383201885455350091655877495482576716944899662079757481167496009321681668755893013847346391724419246402875748106492733507515895933726876567364647731338053482812303201901271489589677238727420241955647887262454942985668891099468086435793387289911368470793503685187498130784970959288653905571525491625161973858207461156672629979383222766217962100770524998925746995363033016388869209157178176858307491737855699572993831269184281292161450946478984669637932860537356820582002932054825658426265722527841252581277456928719158322729440348885480700718141600947132700849090242568970650087658150511140933197789639892577043685320191475976918385848660596548364659433017879398800826485338841376880640935063369903907417785732539637345597892979445496162008071076399187325909207717745825506353565609476991266929843472965351467857486186301853147063099267747283444032059235888866905120730262080722896635563166908577342287308814125035590632955084164013673679029361708705895733490897735297743809948341427597164254571072575795512541162350776951223132295461333394202039475645946233958041545075330171959221469981911473668056156165915085594365448564610134049570424457793890545801237592025163906634035826208225903928253453678549861186776692743906576395606048756541017823139452909500971587977982196508233900113549158890049212421648034770345287367607356889762256876242702821587391675907642660588115944538737830145194921098387420408933242401403369888103216037660853841378411909768559316131293054487796217935554771540769664772723732019479187637834942316919427027148568213630646360569252705692604731046296342615924778806840858343883638834670652030534082264160172539798043752908207081093551866722928571361534810152780232481657710159065937684615029666590967802967756014485012777643926967708746683600112447758830265492130980984412549468449905651749375458429318472043601919389904145891639413216867226458723146135392584774120321741939609308949800460174288521410501664869777235986281954724048518957342247720601708438769731714779824545759145629759884159993390715167038556726525853284937194687166015737458751416728875106128625105016517979178997193521613610091364994524680467086007729672575197963647206627320247944832832548386223437662197370055933111399537234439204642003913009921708690940635162318825791387891357779898043483813405487460166310351701495544093479972471376620773686258138135621747932600007745864119057637951353753924959820593510006391128208240830283658188083711176400011308744103621767505676884079489154276686272056278398758974492438395627880516506458732110199039891024572026751725448647141893731477642005222550254761446631713400030284487061062251574091253861157790628029726907891285397048162927556392320528727769774694024323243796737944550282147569344400075249861837900550806311018877945088422320683249215165759137574433876804742091018724596495578957479333552067802428901393223590152220499996621482378516365769767298758862841023339138036499853123052139679384287350382254185237415591881701968122323531664522329448437165406915586847170473521757585750289579073695315385123405565202387840302828134176396178397147089147320135802927398282508376490162452365664577829368769348021937906216812022088904443388482851449883885708356616880220127203828344935933319526558490828119844846829247926916402433622736903428409546916726723330040689161860540112950388016990059011123563874421940726687790142692128751012840092382683137481080212117448405035602665727726425678233203822225976730885473498617449248554664781375745162943674874702365506785972864777674538685692646946646636676736878626062778952823127434763029567013204268709211420325546831418344229870476320067247262118604265700371110289308639348847738544209893871697822691857842798584509681062813393676425124059916884889544026151119354807994956003930017677036306835222451066464657523687894473568470281156727114024232537110469254505970038220989817711448321235359148827884286020144005381705108805977360634341451897991634182802399579024638134565958794293652425468602383036585004999276364263389125930577785582952347531267072619719837398336087904737593158196808627491060644503328086541047578587448437570456153881401422042626841444838059964014314650921273727854316156798655456277840398590335377483157750770592174632582052106502264044588986312129758051633953705667307015760013522261388513450499451641906660022582834874102943444066429543662246170892301437666189844078459247434743397479764807928002137379265783789627772244265951808952326547351177879902824173275980109096005318722384810262023112724100886055444592000840112683941655852249999569845647332272002302489253561868099932616115192103292916084427587463804845897320673612300313005846491093126794591229083674260240557716088741545392981142027065356253752500172932639554367757827966530805635085911888676121198960136339099217503171035800499164399653943852198574920508435006325026651418631775343297985722164248559879354890650507361341648222881388681904932707514010166428422070846191014712258400817764049320150636292950454111463865010968614557313128574940324759327926247839197633107539124803604365407284754448944030951160468366473072102058726404185590250036308959041840917250904522821100138458243857447331557988184480708730543641479782414933586443975347836895980902249907403538936897449133774366392084352152237527584851294174809857568801119981918585025802971245534916229101430958924263979550980348982017443284035910667493017296021466158332013065299776228613867461230285602070544708565062291936252136389992742014229018870656514486595381415404106282211813026080176022741990857556252975797010608740560231459129831627538717326422326920244372600164929489368891284487930962121281295263905166701132215415883729043405717064687223474959247560517863524276378437209963665083205268554088937092845253932168463232574048808455602369462775307503132735025690292786925190788110814425099190717757044973969542956180400162824480212880847674740029818654168351859376178825512834414050271341581831997033245849718537746504463866007269329352903173074705403550482781474770900755196026635757462505267186324567844249683544028840675707988988727182875135363190307335921807305672055480368090254448694933191951391767281424952384032470178317725298731168196613834423422479135510533928267488555089671826219248034235532055515616795948639346080537228350606156021129955287494273961815078972837575400785684740294176184863159692774433398357922708906858591984741267598140040964351538586972099845678036472227928028445090511899462120837562093637230933647705811302040127012995761783700767357472898521260973053607458923788425657526876325039066102979324327085781734510751082568483733489561951126087634164265191675357722463921641889742465321262386727810669827257843041474948554395705662252925581931839924368397558337389816150697242802758128587812892929993099534223807103492105774427529185365976963207594313889484160687264429083180867282145186544146276543683174570618194876381820547193516468242317376032345423299459699326883129576872759503231717289076920826667477554507611590488461083076997120837510637589066684804377664905325777811992120647980334509377907390884566423549905071222931476725220040124393181309636254382254374687517328556514797224689511370087948597047862809467216781622729071519932755444581407607838104103536989858346029881313066875849896260253427071093348110953154674669992950795231332201518926357805963379768186610892948738976388679874144451188007243248988193584942127650705325893525246769101071958926898183426843473844076542304462087275461813649925651603463923862059757345361014356022031385908244099788488513599072775454948294118656729947583088913997970115495360519163320672122905692618710797329729040795520077715713041938570497257005906840921860516453225085377253662027913755482943089519561602956965955135778952470801882373959097189768854701188872740081365462322981872531786849236138893094072390022922107785714112433548641685562286961820292263578666600766488630832915315766601549319654054229281883638904640251788586023153718908369259997811966772377221879044809810476642766282786704579354087620537122999793087958808339956419354890179335972607063076405244083292850978669348152069510114279348650997475317024272974169060921256537209817640150171202364286804369844103538330302185309368489312360909531039071803837529951875044662608610938558483484554829875028992460581898414543741121243026460817976514713876625438863710717173157580629616600562278173424905001664328894741036613646006961462226460898135318233994248307513369142699121950139970618510718557152846387061357875316206159356242007101309956348211871238909494990753498557741430607836261234973588711559498937791615918595357487793297022393194069840755460222668586325253281504189959443102501912752486241616435651367019020741274317637845340450521958185681308842292589993354565363739966746425389278110120994698442520824972197394418143610383412890731967525120828246905815094020046961397082594909944468787301953217523342629520916670212674762916028570498008511056352445555604238047915238986829282796905374293080039913003186175732816798411201350814702680573874442562767836504078179294106562886920366406439204081304483058082784867734020493406688708898537341202678322549662672282604288497241786204620270531813189815946025003181594793502344702170052251343438941147252945898269544296596511956507526882407945510257172365130580224834641837805136091693805013601261366149462742782080446999371867014322712957210057031041543397697206294712130973551221365065568326020424659491244294233687306092878707648487930556753927988551363748362929065262983119459477421631810478213096735871707640040030558503615325614532977268823582816796564736586030711218718078648661877165723270966034870511667048467767526127031300124456940372078547984359723597753268654552175259911837844770174967061955796105398375044773265832871039633489265825483466151277135939814096325436383245770009093587196725596152539992959445034393784940720163027607460766318327453876415744817610737952574842135558195398560452105589839921180002057157115996048121429698967707990415994093049497109832113714870356371927483417668571371889151323905444048092636342180368902964563987897434525695700794380618514480966733567671663164777993368231485416603195911132521714264127180591668290194153156063551711759333548554185877151050915421009724535283950340828624591146240423483390459146985538961328067040403024688032389492308492537903958565517240952076076405490998055040169092098381581700635234631332945413546467853157263716441399283819769360685379730666090311220649081986037457048042515516354758361513879200972602035967694411110619463001156590371356902971547979902291178160654740241573934751212688322731814133665999866883159100253918890963899068641747101778551923531965376866826070037077737289752952748315180321007195636798797391013956149411035619506681540448747624848759597071146450696287537102103444980042262147389323945604140158158962963807584371052249451997953033353502877624956828432564384543033281650832645610377691120731722091673672338641585694885328510390065652118387424819577133019870694420125592942168640959873905363502721179883252394137387815122571830928722328963925025626802820665730107710100798005925799509546625564907972258698704563369832900599436834174332675492933936592851399219767386154007907409126121582550726784848279864274016451016392675719832754699839120767418277069057895814461626560929330311561323215178715857419408629515095876531954200173386776617138799252300721150217326118665243097014618748724651153013264671245946419110167273033368702274867268830541416058927149135611328922692572555571501856962787170097187257088931771158137090142378525059241883835025167439517440122960075691305492594235308082866257213164013638140486136813721170058672124972923904227855998839668356476998008051175770153331707075224048692255205153685490727750958697655307401856561945882743046875327677641002316175318465380415925711556788312042688267119960141845951049497482080074035596230097972694304088894769554323711034992526468226871243153627749889057676274109850313388917699499221404355140775817153434224417646953139290727390601565872024776491424447818739323542801257423823495396793993144777644163054204056559515890098385799733910996736594120445123836932936178334014002506656611930427039219331362209523727782396812709413696199921915416061243626267646917620872341946380637509393341836400036094867190666769118089646038363957400617358962537182645571661383688499606843266349157135384713601916252101137789549070505555112510944584035632422149923355006629629810746999926050904923953049008481023293627773155589096117173592199190873071561527249674595149445870720673286459840533892071205143433977089087551106796716217895112440776772184545882417772344475781266888753640767612889041172587825324831328445248122528749980235672406078869639897393079034874281249703157675704545671390028904526326053718621945535910982209896308449365451026386328075690841737972465235359246962382427713758051765299278852124370894594283131863243354144131634877164239375976465382011093300653673286251148024647536836713182143953365557638132389802609210215686009097488319177794133533203671021799443208431514557356232691743138927917399821479734233302816403149452305368454909995391972982145137914003844579585418650365116343615671390694438368254624109004461955501429082280472378874926780752821680921773898825677292206871180293452599148816749516660378844267467174230877083742912588437230200125450444937291236042520836864773399586291752991370001310290940294347310618072953469482080228396455752341497236643066985710614206855101554641683751833611725892666635272628507066358722060195803724452895839970354722556489189026516567588496775657379951656460514107457758484144856308240980214499266177768055437328872535656512625528829724959907852819046928015194325846230309077790897852731487847195250010351819106477063477531543275386172805708292690377388532985692549560293197324162154443151498179738911655635566604439484875672708160056348452479866079893508865688512646748975018493094895416511517822186140360403755233515991469120512556289554881518974612733546094884840414263108070843319926294119605305462477707909917256582555108733123646603520873090968763333831009543585193398560235084100361498734987745235170440308444788164446162766055515860756003890226709663795638533201109908444769572623799669880279607742015571663544691363624136355071599142362769135002281064229549050164804670297137544069069302016299067690075304349827605633312590342495772957545474510391888867409261562871539313206677869788209234051226629686093235284906532395618191533614080642391363536048595595865111369617426919619710218991777458181715463556246437930283542083485239211836765518411868421068326535446993818822358747254997331310257921476444025369308287393835388950655216955278796715663648159273236720700922463877719701658296296795597832932381840821250726998013864013551400900777413013676255988726561435233776316150514170945104848476050439439921554847370591981703279709531446709824999872924787105786047817906773853262166961663567735170464737778963801331039085883931445822525248790139687750960365235981645927161421335165102471797942857849029575253684221568021226764786132713362148693738037943673236501434311036875034941866015368060723653661319992409818618751090878280573254521535563292127914341678294371066484966510850102619642686221936051283530085558774953261796873172996525873083049141030390893404335883314660597863773508027536285005815521778906420746748197230903615862962852108955196907972567558936269710745759468674305433381086421803320833984267143084264771335903874923450229451918907010282915911244911615754318071103464796469489868954647224179081235296782851742193479920640921618831468854442555043332656348834956546775780154058881216049478383948908623111172990408836791257248839537736228693724390647132012711414252476623458980585028352001691702863242830190447225688986369116471878133594531540017658925214968819737921678844484595289135577738596971974605845470570014168326906253312827290943766608233974725244944848602751049260416147146045575881431370748209049748165709309643574283340637493605341385426837668982879844133404240846029077093607637129271588624218992232549178478877982587145641347336977222055996483180427510567545919136518875975434163437904544249674717476560559279408051273710928235471879011665201583128924251563240522444706894994698771406501692099886426042071820925781346540189284461211082139582845423234376390662210863340545507272880039170441972876016392671599807761617332105270679911444709442899361520859161689736010607112512291308700294633893221467819158357766510173513957750729375187749671860992964739982151558464853835312745961260139174567633485771014510003089329569979380279432825074629242967944580234959946543384173479204868879544850700066153148217720684059279587297287598864361327960633609537366250187032112450095004021337082932204749667419625382769181424445315559238102729306047348916220754028967036179569195331960214926204424104243401639339418955518792336910119026000126335401748613771331832124870871099177657019599480420294142999939262688811803081513694082471289255079984444538022116323939684105309451258111294612233952031164763704994721176988846145930608714230944465292881993453620406737019388449363942357753583283827732131154404680644349348891306476777603468945572170973425165784825732837613755439026747848506332834980398688235995622695163006814962202289462397853893233582736472860096140655099210795245397885191290949082434446213067598246987494534619149519658640774771609538175855362426907814042171762210549238792386990594614491134514920030013593972212719638322200809567396458437783825496411405849232235564714956470420275267967219453828055334399687812822231183330475915414356645714097166235212959059937306132669334935500106108792303780186588566519236496228848454951547058100994157451540125025125860174230853692163366541682778054349037829668437921230200588008886650890047850178266463048927545876022871972599600075790916665075132703421956204756729171817294304494915208167669693731401318212118559063523021239173882557824109533864623115857438859646091569550908636918838717069149952198358178243000520694815229739140363201297014039531880758428590504176105712957628812473026440392152071688205529130578954608366886226705616001833351868697390878600379277225173766667054923956211651730886605188968573774745978387112434770221984052058634209595228960148719307398754195492727576751909507289129786998828999928194705900225450197977469795431781169347965454730148618059922647152876561234784748432403766553296285948426654261394753234093367684227101749836486154512579908120195898463811559658751144758985237349810804863233057087009190385906226106177349081104563636742399438240338715237290453544506292733177692276577065571726934872465173542259114615422686397839841150591210583590991356593465184880613972208883768337029754716939637030072659113460190095912915111154233654410234355169360472437233255111929006024688709704775970913062059403937516569404169174019718243639501761807506320922552620648351884432540332140915464524025093250170574180557260593518318015747730131162009119105920810296120780482093843864376449491151833164077686849825313692005162909131818266678965442039490157944656783943561791788974883622081397862382401516249297157763673955357898660422784084491243922356843174220059644077974919656603696301301695755540325412168563487698698712940316982473986337778344849604563814455210365542425442843820679005088327479028780502353098459534820211263414817113505543149261168251675920210238366605914403396524972422187231891679751489340552944586074627360769318230833706254545492275194750729680505973671445847133014796910959920623620682061171711907054296613417629413690463610688513863095584237434435952996400994995669038922797982719887276988401971003130229556812709993477371339920089451567942965933266738628835410260978821626473130966897251148329860966460708776865763032186745304163954536955613745454102410182216916406622845434795225923307747690830689513182995291648943642250438741882746682564728969736663052514072935574271938744897282137439035797991899642688776480497571433981990813115428045525636086242669594767935523784147246150347979532486610064158076378288054700867117155854804924529161353203553946429730632904852754544857416993609405426830265888210939120212739658522852463811473731919226503616679790329740832724346067596620393585157620121119591635764884648271705471432558960397812785284002969695083071053859080586730912745520408184480695772324261443103070993070403482185154650277240411628752872559504677399353731424152715960960111457575643494944132585687064911228029987942864077670267399694579286739101759644625489239524825526517775263471271967614784151659172734786050563631716474236261390473836480114867703218298566859389235344793907739135749185118919007851955008748843719602129551493239692033375168868913489113896997082795605887203192317170950057824442651979892301563987159799107202041400256818174512705878799350103536575196807657142218141894835749613846026100067024316321655251522836555222809746346537295707144089013319226387259456281570986994602455193485330813955336038609312623894697211014361010094865411990434240512404533255604814512210239258584818965564939880770705666265370534749935317915548655333785990850673193245604457200716523456051032979363459109469324451438369474139879622420295118664913544879498961664570479559781302675510546924965430399437924404143296757032912317861961684230552345717032041453979345243192951735941061393829134310281100137731734819097422714661361876678258911207730975400681743482600062049479020357395191368478465667712188676775677428487503292447384701504025088737322323115048564492914004983154876324524208532020831931861508174166840423882063334292339416491801575611206156099390818326992680438953945389296847707000421050616392233287132306171036268493641874216179546719941110363675521336860018751520851218916705800003516416447383249982576495436270620082957564088040990982221377293524042421956408438927885589608258694888311963282469312773440431825933290566110282076596989139596042697366188565996569911710242144809453023785527283619897229048516777966293868757233930585649941569418940184916813875456913292828794930441833824394320975262340544839695310128806380689632798226878055759504421811398236648348358067638638077729996907740329812622330427366339352459825072856273932105469903873624284014928309192953413496662402572890379084128453345076342086681106882708685687252454955043994911823235176246724008291757762586833376700521829416462310187512079847380630184509670451476155156697566859258013415022680430969772479338883890446440114536464791863206672459205774219571556628254373517630170226121623059366445458682639011734443480075880552945421590350596282560426924222109753851262360817226015972585391190730084955419284110221326115996709669283367497900411443318102025937393827080583519570455338750183130881748741627605245937243334354519515681608923172426686069451292941983293740696848418317469370831664422811033838449836807126658187309891124613413989326934896604920021775626780444999879509515942956898531837085965946426325204784739275746704102280312004610799970289058980802246550862480006269115126406610336848215262355490081695298539251628734579242599257170603522169939810167039250120434644064054947575048412632268453166412797193198970190267603627420918931382290098985077045688988169306960859329936313351353801833747659366050242446890768589522111208436128590169578832912945036741986418925700879303353125618817679685425699661848025294194806400475182521699644311290322852639123581940297108187743256977941009211851424551532935677421293340808641659109829619846599013622588837860754217011715917681758631503598450421338303697686726343473286469511865839776872578601440131501028049200070456922689058562621012466001423752267025231469945470861333092625286772598648084020077691289545952282496757318285423761686306049881879756424160695427956146227449462637958766475263747781635504832824511811844740489755581662972262287165773585920827747212065381926105006035683972005669435690873328074051462254151035946655799170888085734346255987741481653983351239265958214453672616025356582657008730802806899581503166825105400088403456868678793279956572384326394530765917144234689321842853908625206676607905952132958070117541487473884327719344153433543537867699997283082926572907271214654231170119351258794699920743487676022165196240823793786542432165408996657681574830891520545690899462545545372815385731136989741748180595606813446233791062801651984557771657927497590279646069515115890634507741527885842637167302052824256670832083299160506206121173326620021652718370172637302148493355868164289390973934482998540661109527270192096025215723367541698920175555764667444180475374844019627266087633677346374805203570819640039964151489711798055816169307032971986301862452866465795970104370929120091591214839063674805946781649068840418964252825116678644426807989964089480408851039727361266670763970728023784404705676378328802007707788323383290765641893589209274466192568358981547454787790772839145215285180555564579984896722575597427929758563652495723705551961350139975285428074855073382825669182692354464587432094495409026511180190765512961221674666215227379712232998038318598996558949399171338517443796004285392844131638881283990595787892637070036838401173740164068788188693232281360291665530104439530585553501286320211562780753659934774414244514360444640644709785106290391943420878638715373099290082959609028582466723662845732713278334651827592497486364634454069708385799674278064225590007925095524998885210993831594938964626128942305055435417687289058972444677280632821213025278602145055418801167199943578623997946408863132783945714270203802343913357657925393027033426898934275207952025452554719861044794721498862794051549971402837945994805183129363678278928260662798308371899565095507599689798146852621802441381519717821705042793179665404931367658342888535397950352119093609577062617979256858704544009417369408196329884102841453124021015372934221753736490364078367819011271307833116107368230137263243511753343375573012869182077282065019164598554278706060301044003015119095468870121665100209262255771956688863798680799118793389266436230582544674948583577065550326670623258608659908767799936270304058003173823510568529194481901183855958199330578534970002880523919918083693496471204013003649754995456260230158052475485369439300716896633374392628166434442275622799338325708938277147616193008355892640057249250396300185082501815560434973408974550026278247305816919587238614079409964236411933663178913897831665328975935095964792243464450992373320761552098820657820989984855112020922521030371636334149088948164610461869304555875609671326462816181260204200716967947334962587172329028578715184664802037420528939376232045376500189384920892000240055415170537925953783293722688616536155036071264248931614909603164786485265682191230418677491024925159250366351566433571046311393432902918052988835934466752754784829836555093305081245439576998188233645730064496883197736493627924610854027127377154867535816936714772271724938755785231277291745585821455055382500744725298809058515926677308652520884847205809502594655543671577946918137079685186488922824257791365814214024340016333297273826606800958841261862396481826401262278111755506844270659502975368330409265455502728854494976530933416283563488031453813768991112765077758810785768572359120393754877992195996505542126441041582133915437800364951180578745910517338446667736463812752627828911393474699723349726545835907811899815230688625963247922527523685877877762801907357626436522253725554669993979527204975056109652137945371923587343386492414666048334071585699620556238536538997116292354423878506772332321698653940356122763397072436717929372587057121163055391346714312434560355499655036115380952776259543161004785673249844219481966406433612727869728774070672875758701272930524891620849699295881089832748333309160017952458607691106342637713770465914450540525256784167286169804505491126065531929155107678556637210992069559525579005741598084468963926991522415621543864880709003921517413520612055385570569259129629953231021875613994232688177371117901469765692859536414957138968801836708275440313276433697770483802052008806858237610085825398415757403035934344740092281778514168479193737461023650525209200806004013913370455667341669257520290255894967909512225353414840265371004866487441155777358314161467076971471938019384912550170752067026899361844000194617041239106329732968826515440002768615186733679030737670601960104715146897699641238989881032255434876725038060640696937823035365301256237468959191114620189106892849239720277344043207570500656546449591558571039925819886843156755294083444479795136286995080480232751989150436181793817585937067522541034637670855835931210103995763682537590341109079364736155510372302977446699711134652998316993662844702063674220892665998189814916537111470369372987682662865330418591608026115020566343950977370849196003862781267504717806578887223146506549350648159147930037088321516358702923175763329735835774161491957613207876497886860489759248972655918112875773967423615927313322205662039494265888072169029235113241620632846493982550540116597452311824849220999949100409898933488961290508144294264891943529146865286811867915986786313833077012237365978866610668493163602889411958690667840323879680206080065102215262017264010950521446257627091205669945273821969655410320716579994889050835335953511153989541312549953147225995854933268173933228868181642570649940611965712125192803489696616806088750430741800291032022185728735764539608039186580886747386679867151938384701976975507355225061803275899893270688793944421707795191039282843233016965560317309895254646623482829587611212877466371711021375743146440577284777938939745709571763506866476933301938089137644669319640291373325358057307269641770979643015237089445140435665037813180794378599496846872203581645846644686774808253648682247784154013482281245953478490967155946295279518741067384531218204537453777555114365782059737171051646607724908435731903941385692053216725745590522388975913422479678533326477099632409421575253200222374341206950670265543130538835475203445591508114189057833714647914943895101487684113527682042375342472290784818651196887196334679271190841849207748869698090366584781744758403476825253647533396890557412113179852944860791201897695511255629110418723949099298780545217107850800474168567475661297731779467501642279211647124948445396273524007837012375708700798873476681092693711914643537796395097344435598175478207762169489004511615534992322791709621075060807179115768317541229975417885037195715016638122598880307508553672696756392354392974027972581888127992994921847116590423333636996661469230331807856192512684513762902055294506778223987261572961004801951639410061372200214203693770258836594406601930871389692068899125533818101894056057823201036689366680863133679053187898381603826532200069326762333608446351564568986131610613640306292194434220506941583204933222697318835198208221366022945456183934565468817372085314833441086412750648925526298521180636148088411875697452122404734816479439729086190335950379625609982567076719935925306032613798619026982898183437736482143853046142118581937113293979302823404142330228787221825377908545157383520492587896727300540376253153434305251982147235040219503230787613388359303031728582432845206526039022199994715886453648898691189756256300366558346229521017744517954326399150674436409920607598073147609178030731213007181499858390813887851890400303617514311181631471754605470591068544699790651224358389207565333165199284206019300537558003213341804276821572559862120794600373100304191757474585499617559064910558330516864202588708959002065351349192234593280563433694965377538999406066168968810901089166596139337664072976726528727438307077853874298515269546402104477577609236111344429955843554922269229049953953975814603358701397021092599620407037790862139091613772214006833649422179278151999776819326541060866673309999460106482487938037866958633525249777041963389339093912515459177026377581481243442039548244253609911514697834725477766918792694140794763567892155183884549947153152671518200975930778137280512333979035778299564678832787621077022719936147462982949112000562313528689307171830445371250225352852877776321880945903767020973162924592905343818571066488076427481400530982465747807516025509202516372935404182037611775764409423695863024100754218967169323908503869506418720480104747229341492759993926582501376128759319859400428993048965963996162457030409219903882643260305171527657732961473524154571509899876374533552466567880106696902627132989893976864191589305078067893725692007584626946273779013826814067432072354575785753290020623485774103332171350989533877584404748653451894105653675388724464659324553489688042361199643810724247280106132710448624300123530885398934237839018775503692094271398435816908109992810795602274683935637335628143543504253386396718251505058391864804762918905119514228138621095468953963339986258089732779321840124528833928304320367575024821528297429069517245551370347297872209898120290375025811102419349462657813050807060101283386719526714206779289216935722096801360579725448980201845480432468954496367683707941483150051808286711905266434060588869028542423197984607130148464282390717077454508520198560277143215089379645751181144412326784738065378580482482681938458098116444560653464637115564167639173340120275842582786063636753277943300497573947824871746206971602626490790128551736457299431176894910888700709362511755902764758218520991477252487916906500845700375720793237577673144856352207693681769317019877357779429213497279330728792937939774811013635498417514514259513092258370480218817391905546293934115248806838263297650747694370656817861738032028206510325454565063104368968740598687500653513284698817986762069560624047626669296827626160265784485020261314703521042343797922886977553088578383412199592374213348788971267352006468205872882772853939427026110746571056948921849929883818828867338356416227261497992490729496765541849451177553275475485893687911014462779750268479451923676686067016571977806346759856160176249559577890704954813374777024171958043752168330444604618598342314220124491105146703126458716283562574173664431095923786850972793035984070557045478356336445734523730376291792100727018474828800436226600081415219628070377722688165839653702145771885264198576978849789098746782669258150099402346994804146637643339961568606983260759797360241401822753382638377766379622451219545235969557837804366349213927083706490265644450719096575525953805216406727691171758646818075048493138834920611002345598490065435476237523059390356055810255824981446592405028577460147553042671249495186234511980408025073854724531274023864361024117598408096562652130582795150609218054677958228592684070994926526885229281562630054890197471730590455784698339686448205617828177789887957070664145501134634067732125185097354045096892415480907661606427926578716597375870459033800426556587349389866703476855481872064202408587235611739850098020676633051180340469528203961334462594784641458585783048921130600381875537053626465700943599275116860326780040510372725379763527924043467676273742876693558500430787152673169744147443454440864771854314650421957651961421507675437058367903769946548240212217819575517861520948300428090268187631278417314863634626377205416603599199611770868739702448427713668815890462488450464766637955740282437703907434340269850462971629175944930906001187990143866395351562056979073271838672474232664249945123779051913070396946392910473761313633972157057333415013958486406329098521477276673420630169254753349092760708612053488595775750790632418705799675599366966408578039771451389448550178426040902901528822420812948250138398608475482601165552662863908613423664162715976344681259241780060277424940976592505765662211087181871484837097775829151283742355735208339324682674942308688360693723848947175862106624777089207418967547644869368841503070859267242314031477516191345017272898146012070766568802673694027731931731710840865936614132116268551800688111617392183693979743216357006583803938042655941291363471241406575207913355844690072435863779447581686172063501097676095390246755742583723723743763379554487546573191179968980667777993620677964162477547571060744002592920451049863669210700414225332679657867667384051773213536055929685658723466136905024182378125164292425017331916197996536817361355419183987699135804531561434307101450157945767029052933400258713660584841760414970925214538911434494001089783244236305406261784481099614279387878218980846492975605291530220791954548633262577354963270587171214502803413321869994837883028324471851628037586851530411581105596814088209102110496312102270354234201897673079143755089623434739626802519052735435113609126938093478392019816161146246211440185734179678626572333107741918917121337745608627792635369818682662603954412133884732143339613326351112077240077097314011565364794585890092852070308535889947678927263838317475809965664373828225385845157482034036737157022220503446770749187512503378001862841560042499881677901610626664343060176164526086507805832679515257176012377329253440010630981765775918366060176366975284038066425759247779564699342054733619726340754690599466105119313071333944150593775496754490519545663022171388962609802347540397476531023220633537251766898716108276380710731160955808103136857143836291904897394675717787424843433011474422958319693635323805591401701841056663745014773381443514413300423388209714324513851476848181796973326551467047702287147170270286354151197091371321634913725710664903968726245001506024354864788568920311275953050711649014555613336587658935529540876803355267056047403130167132620478159826028166094634150839993852421571875525747704473753146326335296855774001814701927848570207558316427981566824780196822128046044749374178680649198451883518161047631587493989627027188764064993502366237726648907039134288627911346768582945548148435758462979895809551247950006686231235227737693885122501330173764517522377441273587030871179469108685149998368800863122174838497724774705450277703175261088628200731599691266153534952576714359388944615795053590113914203895260137284811503590385985929139187729746461519398615662914389007252309606343645573576471755666678610837181741394342794467265422489964838721608175407602195796815193828537006122620411186284118259287962790784965743937199639664962966118147643379770145722078819995478834719526708503778363247702709109798379307380943711142128083171871364974835107203641707676352455530029227917242967270583029574755753969352006704829246533135153134778497610421228414537950711572669933555471894080809104644030170183794998842562353528502278892678957797599566835126375266771867586610193846303262588428134426616374695442464184935976509512511803825124974209020074935285284283484525126485790692308900154270009212691186487025538249069122071450764797388173715984237355575559557639577982362623188294128825328824786273042082681188770370452807131286269309824515248172436069452139335233482987819963347706090164597261160668761626359648786477758800534626788481902843684398897218187797879096706586181160032840780556556029914667533437450645445657429288028043692363421429629931211694955360061926106234447539258145983300558352411269277183490312223030511295079162852165430101033668808419284818834991812762652825437846552677191032594381227239249647532735861117267377402284908725877351609269476041376090386165920410157352018834775792213485330057298572432380127529698043013694358983533057609093797660488923174713891244161584345634083927517668342348980343211708673481666700483603847735362717369814465401975804214845515879004095047587485326923200064460132046587975912234530990390674788334021226837410607967979778956030363679863349959239393461838355486583841569124978886069846144463887682826782206585822958071920693095914162904726210573907083588633185214232758066821449990846563302846052956558459099009922542032598102081048663588629108502910298441140165922889112430538074632748541089391759675204961507707037469922918763185073288954147652013673303452753398516833208740734047422296698744169060186084937077965159140330075078574211610597929064860635442778900146248074067546988643831931053841280312123925660586087793658575584876470333839550146554988380721783262872114505768762398851166708015634714627250419998804766050707096356107410374231990604256735801970038188987632649471971437981408362945313650832224345787410600728818457807229586299897917325304626307424744713539529546300528009442863477428629155136948214592787746637903500449989784025571810654080564820808079377381297092926003900989074540942980172124853462714167288428387687895148129755884344216360166735945756116408309737126843056160972435263858617871557784857624610958207745030409681071060003600709862407165918776712041975532650373802636207149431824813245722622300147048382764904606838374939318048975100131711922417762172501125585754110779328603241204449918525397451405847436512809475959745773946455659903900408971859720670875956372382902984324482619177633786535085602762721895851175370450948025884806247185532354553928054420599348741194530846235081799471434936966178641620841122955383185710932779182567392803001911832098426109582119221879571273682602252028965850987013753063907249093962843578861323671910523837520117178737039040264810557185779607077931993133380401124176449603726665918527498208835042050171533467173012924789775501746501682320318955540148279307611689139929614517699461665075494590956037004601002973216071983601198085385080581377910817269882624006257433516891135435151485804126334909870445722895980749986689578218087868228842641741169577137074820096375701519368361499599804784245192313786013110088530917468354144142449109677671429323702034497143942507547460478831207496893572540606477920225541790637005982381507656066840678389028858633915423499836477395893158961156965965865379256011539104578717547628832301277347814323878344378523292041987182776900360042211630262590560880521698524188243444326377068487562736577634070572201018855017009806998401457226307668760794867041904170293738697473382761067222501819029620906050108001771183871906827968986236162287519398592865495723619826481779980127366910598133018063539642875477637877730809625402020206996457126118291961194422441881898391471321857470570351666327618095654931401581537071032068253009415598290836252098031642276106027641850256496122099563972008764115807467570569817709384519624779714947395473500950971206741285147405362166031386690275324363540255833086660848609993213660647650327868058985369833013959884827377906955284647889059608816120072239097417344720651341228836184380145802190448012015680321340841046334461717516694307957128221758361599480697356888879642086103424475058645029973424950470514363540482108900273905604122209802930868706576080623360634835208844050068747288777720578761258825735436558545581750492305618042300041247850046781900511281290392592522554439679474784658048874987567699044105337371993167167527928997041511261334764234996100801074582910753472982904546659519672150739480592635733597665438730293254270276951090919916968842583044684178602776884307041054983404570084712433999523370732541304650860584512410250187356175639880177019990117828092756023058138506789261050793791559099107263506069352595185947951773279503637901603987422776675849994747459303635490989226346908942632684780186401055304388001327381111076385543117459540573007907272536621401021297893932251350683470149755425426257610651979910262809442972351709974305449556760045472114657715436941722022007481883176525510821369864397692758324774178169629316137193143940774469901919783465494218642987475422304636290253425512059309776358042826166124016509353458650509747139430879377689335607341132278446289629721428620745541748632973541318577366782520939497873424296150804849298283885610270790479935363999787051610833940317140411983685127176256529675840950977474463100068955097434193472971814023067336865717347292979883526649125435297580437654060061674064125035383861213203744044298074926030242791559956537113171297484350325008892948749607007997567049473574906322596760676313278319846669406215035438105322463667928298912280495480343520551940176572414287981758533381706047113024173331270840671182477333005051660667719319532574996439524807721110950850195306012128916810123830784167094785839250684033532041554585907328121345634580638896815684576979321029295650056572803647121642968448073908934510791780241135977668402180572669107104078644534562005451103593764320887564042440955081221433976725674853202421401939436222863409607764338546235326558972886359336038254437622679951149083146836445348808010544338740347442790342335851780882061447547818594302716469439991868590918318959853926715734558325619443592589239245416039643139523670790536958532306704853570183538711456007881014329845805953293172630415258382184908924953611004825393150405202536862120903112281110493692381551474556114864260676945549688445680469944604435827311720386095206971964671200350295369310395549391804949741055193631338116712125715328406472034670295981376601874048429699867351131966741328619106811046199183520166567260609237667838575260645288696846412912715563212156900896396590146020205915129339371772021132028173778328011292256087488110896897385296729834705155225346040446529170215448550481564702742703385880766328699279733927908805702056906894112189723103816286136704455709127479355326550158165914691652663840213957585167552442510569539322812401126317794269410568676839754459953881157468129566182754950131861913087406962495258754703466872692174488010404924547148712120219382249498372719566577996969292755216483350405699917382504189773407264208572741217915408435928493663166794425595454806335596035841028184308924566278541301176679853303713890309520272741621185110847340497989636518186159913956719675410097489795006176487473535827080046279364953419491215157140145753415762674555991328059907935578430109725318005564282663966863430073793174148853118075711358474070246690566886415097025440654687755649429948592460170713974811729297791410944589614518741077109603232187126585725232111437216366838383417312665830952265927852208498455237462952416739371405185325535094311850376309217972302772216860663540823720970538761119216697104437322990203381916385856766657709159316515809418679764484874755334286730988944014356203164306620680687200751399422078212995299833279615738578752203452212151276823715113177154037620020972522859420397699803927595353688194394904071319493196782960442283881294542091747421089472362813377398780756398771354118037771530595298850748243738559918414778167379637664483126249329716313356407090915859458322959827765024173113265599946616224505348912127785841580619949585489875859768953625479573487750404988069225332947099948341702996587319559987528139511796359138365738883048747258456266084888078285249630873502700336089007547725780173589617736259012413518238135828260527115170334813889519406058625636619584401058716257002619615191948044003383045637211606249318321079000898141751829746981818649569788369481985450994583291538991280040634422238341716866034102767552300213404544642409026810001878884976955978901888962689474801863372296153162226328710103539256279786580974440844223345972888010339408474541278759334775220485809178077475879843105109489602846696953413408511934977007211554799896389501864754431841985090539091721959439437643095660429001067396838712015921252586129169793459692933286108856449225881708195213933522496175291841536039566280828251176264993552642244003284678331322436644467292870756060719425319068905124940573587204821045004134445408408581914646327801094294349464327220727031622199645226775214840142585358955673649782962750556908945403817970657027499528396047971097192481799753863148717544651587953506441354590696774033815945200627041183698364398741762198284983916029111980563994714182122951894310298460063922445773293467702008664031275188534025118041759232595551208261109987167918461844560777655977474639461996227567449130617967692998424956128539855591626028826796520110371501938177855146526262265497002796750359218231423639700650645810751978719165696773622914285858962923365760025504483796200521715106621759778313174269250664007614029881177004265489846781852007565811313846017831653283701858012432387028202716545564584106407166356361788269585759795628891597544377283566498531994572098317228702717095692777012282199125420173308258354955090062971466044586645685008388716752601043183920837629709321985102803004698640875423041308447318539267397819049495096899844762933349550932270824090699083556412336882875238459670539258626742675845275056491045632460852050215351901315149750543407336826176752245078280077470693611713732979325809845957292894641286666162856782017625572120520102752556017378507392552038508088728202989144828003607481290691490356982865904053487386530200035769090836004476167657566127281284395765642950801615822894158160143986622052611338806106957530713878436840400103209846903601578791247352173864885859501937697374648143921319706534347611744728362006156561173950653951976049434132656121864352256383063443446684553640684564875219428863612061587084517634083846825907384379384449539285004333901165627042895288485532016212281561844309986297400038752436103738744619119604299495084610847114591569489570184582107603602260459597313768465044989266945069882978582735614636761944830994773617773758955823152436027316412111317939209935969289006846380295926998596585596383239289872426136972197823750700072481850830682409416359843586206094741836797760177644637213037698216845583139555535405999831064715561146910550879469826360640254997033263390215204465263937341918448542385939322207186802377694613201416665907602421647836398922264568748585044162762592258612496270881508998899729987998629639205517641187185385084536019559091202894196362701287554175254044567793587874785531738503200889152974836345347006356890084349666428662680309744723129773132753839641584079732453785793158242042225343922323546112716551219008118536861294229255774659491119913938045101574767401527514056481349280028987179599822269617985149260103210748914130548377175693501865919115992281410182534351912738066851819908615253462736897783297843452195865103512307291429693349074890151208341226746099353261110657658302633409675202246271887940295185188512667666125651536282935954385915678169653061433225044849153343427784218096064803220248599532602315526255915347787429530685386653407987447647953617091030140805700660624013124863641874774549478212461955334256557962811002031976375247596319688522833052488043805041731425720181744097176013052615855059543621017753238493972207376303396885172452673766285617987791340935549727490506368564606915947079413128711761664170301903639139617974191371940080759841990761563226127568389626321057649350557924786935316471137381653097448772666620141538894591645335308272028979006505695379058284001500942425377046578491205367129500601878496998928731455431467979265198779910706977506444134705907117855329818394079916373065294646128940380440294563314176041337151507678414809746007861309826086001397426489514723444083883137510309703263365613511877966339139727838633398962811366739015258007358053067703777129172366404751462317664281351007932335530875810937152768798176369791119683542756928711401291204047176899091394843442693618768053395627007512988082858455935144558795115270030794856384074829739734130189262586123528950062016634609199365816911978470931065141618224483170236882049329484910135942737629278131951723252237450342769171730230182910339478723564954918363803287324897076903288175634474805112858765609308318260650995258485920212677383065462147824079852041154653574242107435821146656953461868612009897891685629627899988432232409026170388874448738486219377866895772884913930190940098578064330565256718322232373926138724242133701203779787279796388331100235608498379074400568562499651862474560274136692518803882968544661301578882362667213170912828633781060062815188702916971357434807086105080876682127185838534118577668308083039128285353634229163838921585969057868707845845897814959341223212557498881295348311528954602782383945243858543786679402840690941392150507329323486835697094069922660888890097424691313148486117664519802174054700564363099072085458071069475311895306250428752446985043974688578721376400500395313926954400475976795761047999982390435949206915650229872773576812520994574434967173739554505146302116339648210997701468491387349435885447155823379468124921347653136456882283842626508635937131350570349095370456735982811548344539357916968731996038604611570378320056884612687385769865902849490626472676028001569891385631095996729765471759337415860534554629762181069475028860790556678960039445970208444143640805934778793538058597870597788426654241886411187065283700709021887279341151491765337893458885984640738271730036300181769514099711381332611331267565971023760595901482607594605344411685755190943273445516196867012428593866103999104524488349652367140110475856732458931776643101384086482091887693858086898863389264592237137057404203840940332322559363868247627803793919748504903979152975917586326818188682093614308618796229738988150427838284167542051213098525220400951841443230586528194813055668705419358586351505375095282949990667899423475785999570955743378968820082589153370932311636256233816773379136405304527121415672376210898355215563413968874902154831109822213073591995137894123572505665831979550307495511722615113707350524131833873455189418385772679264338960057758564659813462425329539645967066571582231336565292157603942054729011355644681401209235364551839073455441183301254566715502791162129177077607256407230225117411103841305441038257548733171386884529547463063518696517180637033280757597351794289577019476686339962833529752911922912082831046543708911775537156651606960740343576906181772006893753984558410492659129753638296347430634256116360020823361579184657397056379214260621139747506529141138333616530009298736477975963601656358135544053458441791538304347030910110840538630628303655893949809988673159713993023710293213577974574232042586093590099851065701784310754847412003839233983857905442815605678012813076260046157760851315524501520675873401780332160070699334886400902358755953484359973761602708328996459554500264450318583846105693992436611926662785765237098061407992937216642169091746983066360544664694788478069497111833444844361560736200946258553009552899768579553631963676845119599436973692547518186078770963721508783146956330958721923151878001960573350841651823708668692785926238445881642763347234272999058814789311262735987734979852926840736674117596810605271442630724439205806737102044020473958757401769077355940812483722772474860179079788817492391125678989623473229432444543969818456718542716842713982924918981447200679940908206051727441323288525656764669053154699029409557923886862641281116766460442507641768867674635675767510056154316795135675684530263755519520899754210303617882538249261366798748698388529579917546672900938701449217458511615862162792206382021247112596403915078759721728328946156696688542745921535700768375853362635428939851729695406513401017170140403118456253551369933378465810368128109571380043589795557964120176719057896103799681534076705551459165508565685937039267678561708037852921587797389153831098545707477377949612436713037575496256851306742138874651867235051070479079878774397933081219837756153283299158771123628080125785532312374383558441850304909437872949444861862780559245007177368197804204416488811595267003867792327992939797972306024250137910095262903843290361608709969018986455494421634746049393288553769406801080520244946390376355800764123947417559677160247582969669324777385330900631083760166491479301444588311409541220628061242479070591942746855917083805520843863023814662741985372910419402773202990718450862777347176151297097639342694649477309516041838209200675177582159754964649436766763060171755147808372929807776968891554913284943746468804998176846234349091184687105554434645232789522830151013905124530848181733114481055675174595936321403775067324701325412789695049762870523537598540145088507764558770452457171733486033463644678132241094192496698895868516408032771996193924582522486134363917606220555820088241885118874556115575553138019459520172361767148868462954843439291225170536199113965965524750587135513444887910686017136100200406557764178492289536037376660200740627225053135084956854588298229216992180768946755976301257542585061940146398430531535143374863301376363294123792379790586433798195745013997361609725563546410623570028590237510698120448554557012034666223825947094073467665990785232943424121629683552667767111331876689953500021829072273322572164832846826880209750717190723261880066177242252295079369116614964992687491562783764155295645007768886077382263414649386815576800329538335466226473795305673356352344977635130436109714371864498059424616033597228825160702025517554202642872352126422624065288185913896411664198256513751916600710051516299354557742110418268469750251606506443465192718521236607326566734482820130888592856646726918921037568121428069551852698045403365804734772054571887295428216488856433607777574517453697524505919729084373180403288632260136773255849792643452958489351122010831775606700658226240674936957074962274549114761412335612617244720083331081830887808779373722372024712026654641160543569155692763590887478329625970295692970126262363858813682480579510250123758122517494597632164880693587151205321207440100639325213976660331855275400975159313944647668603912476876499448783911421640557125432153200590475773956730183929783357928793697495376452442878992095558946240303651072573795727649113611689207572846917065453618592712959892902302819133591015705434410711397011907199653041332110751413935461005152975803071392883408501056919372531406942866396711291219260725116078515751188582084117568479440775716900241921565572723561099192324186737449497981403777095806375277534547018748093762492867336678049977880978668314285121729248975601447978520955045403455347204360356481376771815945917444050694745390558361820426579404150982309392964526927881033177843939877555360132959204240981186979054952460180667286829296342315997319842618616615885514046131266821896753561373829629587551700354120601426766387469205075677853503667694497006140086320903602233062154227667115627686818201237881776412550252299729307920458439876075965235835538456522002429296603739634630867475957605043551688345638107796780391256382207970869822318092434740643978512141983641383724114185106230641526923076689477748783235431104214071388978924869986139555875801953910092384260889655364990189787955251914360852318916727214552342635736175202596119920817167890817880084783065262609823011676134615608011614296778965742458223016311963863935167505917116468328382952560299539062492274710627731827907287583584002275525359400532880857220572408705553042537956381473769255467123482977495147021845723142419039447590977906363802394762733811829057331410595568841393067542218873634681232242054733263176453376308479761995569657346444793316226089863963562146154807829771937238274150225646512764771899819945245369720162326430939116111214574212419645788480550330039087539672607732481230859444756804501993550444484080042100557048564720559413341654301261327505413084057732198319265290552403825323352034778862063896360596307184304890723217304835309361001007908055860477568987613233948101332013135789660038449583446603767945541694976662167878765055830382151207706814498288090153888832592409268344585046225981933089926756936565714189348557686780060863357109232957492298541544786495345829965538296736035029667186055762060113883928137442836983020575195039230894624349438460369721942830677117251891294393720000471423010522026419736999289177996550865063106539464302604061124942262141845634860854868808406056118673970276874456743150419859395611758421215523765491717550408899531062538874904371488528529415016103104589704594321202948755714197521722044120073430925265496880969331396082650319468817515860769078052243910536967183629552416220916350419436717108591592992661118189618556806199753533296112588636128653579422500871246960702683580224623710141964368689193432061819469156578281961538476989422359886876472863994879126562397539649366448360044277912387592384921882732894685140033365963478439115334316859303550997333781216738559332411641811087958789857079853382929193901571007186224724413254565009886055827720764612669648390191901590502667393168464608524500294613502484338859771207027972161544239049679867494268086213139847894081765706031256764984750051744963358347585514480045286943208471564576257244396083041870684395387572182836271879287435742815090147258220344747271460370347371410200056496697446413631239404199934413970239620250900646267965583527915168029367146080056364938820635792207310382867947185925817603487464022346269145234392294482077561090742916978954957149346992629175945549472768046746223961576365477426971964814825068322184954633231339308402982272939729070034025000203839661870992894007105042453356570463649514447869587774406393429570365880476028664812121711849574020923133451688163684613404164610896923753690860919964211634739239387901541947865950522960890106852077199824632771604625460093442659796139295391274253437570909756675739098300047643428575895111260337227862784947604265765731431260688620998311785638804330452091644127499005451617781203956086579644380108010512615969207031635099244302588415428833511715251844457246824220175152731466051801066724211542611791766661316819267621876042960832325449824196698432462454505509013230775031361405653006608281928773855017077499481422480797224231745029581236183086625975116527344535302005994350817390332197168605685569648092472170052371268803254694327142853650855581243055644351484464999242786982934367378288713220534669754180538681015339901140873473495273292173708308905511532748363071983688079275289852468777491577577418191823036427301194423080795088235275543236206185624718415729334416773911915902163824433680386451116136729749635905052916373095531538729843474002608351518132997371067043635418714267918650771148542276770097549989275445216559714545999216376470058195301677524594492273398974193715909063545891833624728680834682111497064500509634981564369620627606023084118421890639640345158028721557649288623315089204221533585232262567774832590900706490797846456737600970833344747367523389237489035835257453203214278222728411989600875575256723299637948261919126236478117420343328951197653594636292803166052504716069195737612492002724769185105482453508978684900718848666954280009591734214828429627234100206808554153088320551159904491571236375235462243209596685670141885204202032424964418794966546577549731750985858780623775254793664486654410219034476326241714221015027618077800570397603547679654174742271043903657962903787277121672512237721048443740443175201072915186349869057224555797888397868596613165259504911238260346113772283448982110045989155157259578502729657042475445896863036806159549852784820537210390303435055021924426478520399115070217190209044453879566702922987074625999301394092948987279345356819384996002686670522185536034295114677129252705713986924931566187302920358534864192785649960290636519117065066852105385915222682373062862849320273253632434226596774710690941898239918116622487095174166594318517521340924389055772166884246450236404925701369974666298544514021205804698358882697615928199680944348913373397318614678164602281393460761213348737155869269171198711579015508269516691692136687560733195340456505104810362749097124278196139126065707775758148085129978262000813923542762598128234484933066504142527676247566826330466548981872451557504654257375234837338331114760318428283111723815761638783230465934949630528712062303830444451631828111061191678635508960509661246350882996153485865860519422485249076255774753198974418226392068206471632161273264431530856017421531948631767325322721401717878614742762821667291043204437546512396622791726562054873255571098025049463507609633643954467140964900197171976788187394554762588615806729406419521331619894775225629305705832527131415686099775252755433572087648707079331039061630223801031487241099745017909185372982418198569092332102302050998430144013845970835885570967994754174466026452596243741799084003368985487832285199550943109949040219424049320477456954344425797445971436160427959007793901025840408432068487270669905802686408055868523987146035174207087594625396277720719629109625558915890343649086358259359049760702167492984063900971067407526434175658801961076392471378783871133004129697213734064858311981858552676985663037733886264497295317700097298220265982463076593964029255550525507731304165116021531490457534598272035090254746642031107115403079383941510018937951663614644189090083546247957263887183581484434494464787970132300897449418326161979960473630063170515182927756735839879901328150669033746568802572602824837473866351806381089474872527884997209258484732127877122628917536495082055005505709019445479853124075218393991498694967553640498011148774643625492019562761691449286869284854166646150427214080937174405859025628346771864309776966861818311903790185140403053931318078563852789412799353505460835584747450214786035717270969898977093317841141164261766617739824393195549758228839511293262387112056412714675610453856871530511833316634646953247858441557818344664049688828600885683032258677375887274790085046025770601609413304925363084890859669425335045751937221283393431393105579474102708281121562094035655970315814562210175348587023265085436766770215914371400518685830132458980257701370134023802536224843175709657497551684303141121963386428901319072920099143372635066408508205085394747748513220997938400909621184646041757061351326741605657331374249084795391682214378542839835958963897785460436446926495172686581036376465953404932476788488983602281880433172204665208947194200085657095895615773138929918371926707608488104046452136489305345039730286343525375006844659196994805549927367608016378922684079935851756174838357127259943577578043350406185923035464427663506602411649671656576739305010525154619784158512658086914444239115684855975955037805814028641761836527774795953666751048806520635859230879259943426385028281188240900112319054958706099673271437501271783405146258899412523989574809701838883472284200772479252431392569434694614753530952312122885753033404908477025172064343461943932800671275220921196767525525534191007921883815492972242620836239581735899439446523778892377629407596224743490963199063917852876305027650270763132399577625003909535429523527151910326283686737713091846507079320194402911897502400988868169258800902027660328018383091001545206721043251953294612729794872510262363346086571528503386438945338273778994516629474299609993436485269624781955632062788064914236656702687816346486567393608326784044688197164819497052661603998317259316791485871034122354141551079733776305499791217511306884021487963204413954904133631420185686853455150220965725374943808647978773675657689663421004465811062839154320933532915340143217692620145662128460586233073291080826154899250933425445741274363284780606416050314089789495972008146738259633982700408769865327946595429721437059894804761846265771491391264624354253204152058233442593006014062588004753293055824139892191308070615986345637407023602530840883710324411034541180193076189229482022488962204116132574600183738715468308955495300396401879829210235169837410657326333944924237159378008432205330109882291050379761528880321402747202494590368167213172030237482854296778358215374833173426440090762259972562540721237017036141291257850221027232152772707932386310712556427049919387300251470220488050552973811579267281126050207722773813373296852134783176700549175707482707487350660120093398502627092425229256291149934811923868764897056635983445403350281452445557909122685591087227369588207785061013133241890749290818599271879893650292809259634104906295816168188305416207446825062790412406225395089311642603665389434271058261864608096636609531786432530740098152692375681697564595677351814723103441051171848653805891535300664264751893669506515997254878078236944614214481261380164028053172643754148255669571080702352200167238567296996152536794340207433619424631524290485773423150208700835983096385781942161902830838483214247800765360320051691729940570308472152377195947345643237910039362059913447285270581871188123311463754894654900790956750934216378979431399103595232596881725445091040970498668158355381807831203272652054226248974516446420345698302404131605395039611226790778323144647441592584926884567702983063777817644514494917840854083533555812772223688963669954936839122582332416562752231972332379533888658472096479673662301807621961604838696291602928579194173967081652479510991082460393152075130692668542751637335010774206231022857529130323584400038996125938743627971107188705448852756307960431671838984274206900444096437904229933322824534152317068444657969240280509638992605205775030771321272591054336811568613241253392910815005504185749639719212908256535917751842590357247882527674235863611941620598725344021109482702791673853947321006426236173024114452791975582809208838863265239452871635834246264380216120407899326567488217179146332502299682678718362375660938559751709147708938752548864189702656668740759062219417353835059176820816275200533486350467445682142095687399211402601175946511597545480918778511693892181634642738669658687789285550695961218717359745662148181647339220772902746927789303819725283164447640344642608223758056529768645045039504913886711251810167077073486158669695312065997478867612688457724134493056588748410123021510341363685917984666855858009368427283730418256376287651914800190804318184310892172766426609725665711286378317168870362355844809687474098279434110097703149529030299746538072086522967478340005832087794157816788665829474365438429708012747367935305473453307494221895026376149427766987896158520057978325115713299843086439288765900529841585638765305493844682371593076728664519030657060679112229943456551650084592206582631883573366194980330382252708675904952483200237584403941445529389271735179416567222907552602414052811996434613161391830271892965296082623769234081464207363817289121387925073157730343860884353042518831580129494405377311742184940112191069388584240927734846558158388086215237099592106801075955777993999938638726688425945373954557247522422974447420809666705328050913280596230283750714228246163639722686621684299276560338371073484509198224172245500860219066561736988595309751326569417480411566785785705962579475545311211136981417388680082260191549690864011374659886102270552083378793517117082708165769706325780136899591467816220302597764821385002238569388818649523505221728894135855654533876683149000772811504059392292345379055737203616407392661074924083088350432796046863414206657208572832893935684418548276290022356341016988279099057602818626200182466744024722957160461630227090159071376572220939770169917753212164450959724158852468629707251695430219412760667950985215405757784354788150287360062721934641386326720420728912537115293758597611103494840118746573367401776838145341220024017106973476150327845283052511796994787867999220908994097469997511862375558557583008489089470940996682860372355544702605865043545540609140584674016112019068795161594140108853027543960526548599531141053588458610521449602979412337456976336684463216984341486576652639769099875932157410926061646611719388561582945737836735411309329198590982077773752026424349244090377593537205886337698829652352954704201817035728087610121071524002592708417060878565418431449184233061203665352490350848353655530860446807027566071361965470961139089558139469421878555825696633976983375114994745323324062026087493428048477863374532148871047055515879887819471237912252200551435434662194782256796492166614679832532593313776516154623199820422243419461257008413881279603069449235268845219539178348410961284420474082539067075778754128351287988429279197447164084445499759290254668218154267410504198367995895213638232682915280357793185522661307519318070020269994804641476672231733359983036559840406256848861901781286194412662083531997273069898960055208862077443718493083533891564177158702736961249979474941107156345708484511561320997243145182748464465839944156602738959389666804465610960970125453015983600374226508623654897444697258447847044727071838191640446017784178623641352402006104057465610909980867549484849582642853921839845261092311657672895069118277449271262468143345085484135800496046311498651377470768331174457483424213398525778913840314823027886762103552748048370144502519359238985310409773028824180200518685026021258577279656813927777686905132004909100163217523747818446163531808109592079831305105583321297854273012887383654851306645435361786343537662951939637302433127849246414029931865024207254273303144042729054586907999929484924643738360646995476524288272511925268379464014784173854280527161384770810328446475791052647642796430910493624932563138550539959010806870823709929666036636605231148660165044232821294615134185590121734401875008505634259141965496499099202939062912824255915216753302461921457930753124918079189882432061832982371414829446851995482085083246681004102760790173999346429138665952033659049280985774702874912876718339946315836181126651180206904571754946387312190730796649771232263324686018322457039836870930865514770538803641888421109524737318600936061947895732248618094074587445111156866702980580839033937242509797232410109081915572520361500440727073640158906968572702650579945433348216841740784246350176992118279556135166381796478382516682393108356019727698174241662801370954073322071491650732609928795611980229928115027389411508915755062244417327643607830743998589807442105938577995398684924345766332551975993803903288097700974365444996732928400971312965565669043720124992737604612135336263280345520827802525567318316587904320471335177615038860313899929591034251873106683439701099909428864653428958351734125009473457755016321914317433238225903697999240370409875492332765472819890464523686329289952047694682897162294923216972744621716014639914350589842106330918980129746240579152128216201125857791097106295259778643900080197500135019887555012185542065644940510649459919154325875234626614529936225784210144210307821458365016460973692998254472966116879037790833826557813545578094753629632467949765209357094286660577629616399966515535459448627263717769810459532836677321198792490084715706313649491696439288449843088819850212633243190612406462008687360159943454707451005081684312974545023524512322673406302484450536949330214868869052049929740366256222347803932046651148417865742187866584104552829900504719429406682204841616492626272808911142498455571127211811932155528228723073508122315457407178256318581064132480072233308785817998004974850459198779841235632924706635825481830274657112400677711121995773241699595624754978892982715581988265868663705685027983379760494404097038376134032683485762455608763358177813687313485289630699940556334409218997968778241556354467500291087184779793383470598038294496390509707732337787440683733327478470592453476382960459106054738338863172753876754476462773363545789484756772768145185518060952510875440565242584559162628029637837477087223182874970433417193979198844920501151971809562931145215410765750467494160617606430735015823389805948539531193388119384398410807778959440439113898423481450091503074088005047165786597272670672428983437164216796464500749151183241636777194147513164347178151616403147988650561110554744119223117447704961152705280162814462063073863221885478542454712473330375209470676409670963481782957599035196804365813481095158519792988821822423666369740489538213431447427954715046481179792557621576784398295138901183412898274115568368733310260290518891359141172017603871535225143564510334176925147421698879680982170211828234020729771506972264489437870082313736439627076470857442412579596967577322044416765760097218568982552534440645754807435663675421952847117644156559951839361725560776971400730025353591485260551103945340332949797903648984405314984608903387428198041743038084776577795922171352247891726307202981965299727469820963370604723017437705753310946643441277309666275949970951482027557285909126941985488402895540506171921947571442855424178538868257408743403688324087381187332757646183066712471949280545201387324050384948500076646550360035627833128568243154389663217247180718281291383023928828924831978436671262790242987468509519661367982840398175772860035194432135385299722239079315392363778855493822570936680603634986872390382760590993880244712357103840826610858681602797285753848994979105972955609613273957595243161091052059267417920731012495868974816958205147967672293753119431168163213623502638844897395953881545653273995738209845665732868165568826820669513098269738643280748406461193650434692910810501204118716832762282598195927399371297610217954510874820623326533070300128811878074239863432187629144346347229574842832496737146166775396630014857295189995494096448394267079847908478822883583805828806115133248922720491945123552252750634395884898855891643368983685878704393236094383789791344456366667715619206116346606145678428216702422621954052638646027139705730417226912976529046412391086238492880875640452987143862198515156430008495840266961314459743590235583129622228517347301848547997173793399872985385163134845766933413831065965863158791431319345562840178108528392822490488952320803648711192745200007265229308566599257562015433119637005386780620526853624969905737803490060838831963393204099131255346814553636707554740908517756593901516742819101061742404195509403780642180815188326827838355761670155866331479451865952909145854694657986805288363257630636478550161547366191644074394984674536112212350833344059728285313653687618204644402597448343601616049214762727989510730299274297610549289601210954822372194508079653651733158990892693216481585437128667302303234766867559697698049183164120408367118209210240507619957917415855391055041979933339278477785792780857318174942913218611976559150678215002780230897679662496467723628537007077252982890378150104553640885046439475738464079300994568388748829568852415608191361855115629133429104046560722469674572133359822751943590508147128464411570575125956042117955389255325026026935137511141077242653322816344278110876115396143815046823525402751902292808543192928794616365684010104820725814420409220790243857289795406036837986568454654175776725931981685369939916196110928351726434498889575806479630572768068067174417061217749666831221889259801484112464078545996161464286501289084841365192565716508205552799431229447336115677687908619696164241982232786060274645929948853887855718657234776192938110701000494027603081074692171692711690866219458628400692315346904088699659338864034451942828507542105255051452433370798769247129357324265814876918775834316374807629092872646022919130173065566121171563099943294963794042498753407333903503694289439490577485912271209761336784795973802351363550382524638980741540782130449166168589572221115582914111461115332359865088454479123707413600028962094537337759092872751643682743515651471585823979779768662763267169042098334293139462508226114714393202536812730346285984758264626338552133774867336091347665716176200870974613037140878179707457088153218278119015364719748797408188665308198158728294502157432397741437860295881721405938724644096751077784506078642608954850505046331791744382406196068580475398308619478862248540126013674171813903053951652468207569531064680413247886054916872831101641533166472799706194243783025624743139379750412339952384514203177727703218750404713579580746722764917412786318709837721542249467880464887627435806050716126360694182952046875774122231168473608400663276174317300570107269418388855557767212410131635536491197759693418269501289855803116245305134890049209822495949894422080726249681314073820056200005069972191501898698992245361322392136168589874458480705475962847340195642969501285489405872722342919877174750562854129807716078022365210638259438088979714506835813714630637995728590723098515468995356484398988916829291714598158411975933029202722086281557397928392257668729035176752348044685492970187641609911241244230700112249721149401386862849406111298828303626421173384215038209411517533145081170462092178760239538169736295338464892714415131615834537941985664005272970183126994315732944226758077642733402608186270787159980790012485776097832799834381568310121106675088517944004979315009287798423190817006438044636320765824203772877980343126521546151794933408993717015440380353157817684402995347115502902121488802312975663428110997562261271081817600725791762242438324209133032991341434228226558282902502193858326132426593455380231145522968707688673062850488418145115358939824546568560470025559053627859701285758172016806493976879101927668321173881817027032470653271580710440932245579514976865482020162811939312380323290254029420195354105525704852626698780428691001223450827228883161101299468489899083550274575179447164023655070589312233053503623371327199391745098743899774539423706485612968707673174599646334307173131745989517752179029480373565309707730615222124364824374263120909164634503041663794709348280660633103615220837804214945961018393411766030622054874149145952882879637506002513570629478153906660990407748222056491622018406303625119579037892391131948793721155157831283810201057804696208651805638419762786392175018832421709145004898860125420667791698289833440697366015420476599310292240658774857100796963798337277272354755679339095730890064308940837886692462651748641041077692219804074790656808194055447974900440721513309127748550054438395860330004156526255095064287336609402922485822360250164122530692172366191104074374708035988917051313856130234672762840829345499505559853585052326556162088825010932285627956344134925268855622017120843793286529389528084684148112790643082491121569738294057163534608690607858072139364497927532202191084762440509209424745372198728706952824421191099185256909829842528467691111272140523011881559282384962311494332233246659857866052609772111758454225185608640484435876204922031385365956072706480741432744273320683696271502257951058396319023291288613864360627021940602677608435318431534696921534174517476616601060554584790057977350759909946787442804617079314134766299036164331749394426493295507084518986979329776494758289603127121594864063271495440987116946813745422868347268923083891887089767591080031085039197419545070909463456280753151791619327095181296450133697132185037468757771179900247043137950983657908634961524189677887077525924179353733928339199741369137184362666208372455433206434132616693262335254230017654860526385573911394644284519990486998409272580790797380318228226929937929212846816272285962447044934541952201990217059622251242827331246745804597069273480620956594107998669408162180647630963186307344789914225300082965581769554586467711368609980225231390150272688502129622044301580637726076074137077819873194594036873143767983468646249317763351019408435665638479629633069261533500391512107611210080447579673827636978080626443257473410607459609686894388556102181181179693438738867916218995878358135218031187042802098234911355818136783527936384453942351642455576590494661399357896396796466378498895409065153266290401240242647469660399800171653004314051684348767812933493525256272148725130297781229010479927960732267321275831200358933739808876295766113099182341285982813833777196829351959353003509525131218686640250498295251555564338894484549487823643809490662932290764196425883964495917481460452918497907287967740784235190894731710228343619564747888527299959183862869276655621920983680701372641050510751566970774633827056025540787203437801240872769183450560127953747686429883414274844573819598032674041353517797149447804206180131386104989272890226233795467554892671848091466737951709635616552784421657080203825518226131010832799151242461336598996456196429887528466593470421981526877052553528062475605583895561057339565680827574173357679239738199895532511106819793294573023734989136682349888081580903095619161741671811576655477102341679096124341805823961605166131317619140673371148888217836237504536056902711089765393547618845348142028574291559892922336561043382724541677030802238116513386475807445352600581668695618276621822088134074136228845231282648249278578612210541871856646416522539558016461245192231840958839947823063746491715172452726562538270609187803226707631264346654547369825032267580200892924832045522089674768222504608600830140803265661840191254320299231686802950920222375324772865230821144362195646748522319957999441984156579030242288650642896971686023576521083622651468657420612162039840747075083539083391398433908403891643066577589809177380357551825627296215722368950683455517881321541880075883782016363077387666190396979249068212742408814245375229511242401514567947740636577331744577166436281928753873348056318315139914051676236364506911254677065805589319289892163167801732311510623011801816767568200391715994472273473204866299926526679977805132392454876234703032565100874566521202550796106677215289246301887990359031891740557307482496341392222539099020133143668070123889509239807536647753053261548372242809197459663828638240674762495953099828979518111695705541723940003772234129041994571967484433236148843580998147370449215685242082196277403736251911772250810411449757916683087958641071176369955730803487320239870050323155128368874025639960103877551099414920728128110014958019359916170431724562101846742280332639893879080674266391319408501399202541905531083236484427734664792139549136843626463690667441961978922054076859905505957167541233983137246401006881008005630982662472535135244379227905764438277685829044901156363345368806839374393180344101373003671076643740476083692110298998874898730215928300138759580430152505914817485159636687391775472899673779764352881719614989815170227431153464992863587066487763548407682389801836372991446361538969821292012123964688017556094887101068028508751331721380844957076142674171998406427186481510355460571887017742702430992213184135925464523784250684528318797803089049375400687956650701407074742600764613787789155244922830539842432883389297105278843881121455622980656150006381777389323169895786489605170457497598902410233317582095541578872587171494814254928306250186499301395744182509855918656089491737396798708826037655922593176986956444179388381792490573252256608250667397902823161451994368618401698596912910638862213668531829139176832308794086379826142094806158370101316536521964621608684206492857239256611426749991898893806758788962238567159398189994085890030616161865747632179726486479734064265192359874044736329056038292370527819248753824549832463369893324868387354691595307421705079798322736785031446267165460450956903095157954228499144189253142389720038046458356893215603544670446134963758959117675966050278185791262599661743659215864933816674014008083085711323235103514078982725863416812328323754694488470436915670283091144597238256141063879024621158939560641009552897757535013624212807081434394795406516332257878591064416466919842146829792992443440312974785811836620325562302405736711792244731237403697326649406332027059834016941494266760177611895989544519018699224879844500254962207085445721380033655336084073206311410856393426914393527431461644249534268603998666076638261463316792252456058881196418009919229915207838691581434481693870110496591749346976517727832825808012960391500528217655787898551937894155707207040981125628025881610831741038618040983480810674241755705048610412249519392757739790786462901524050008708453282078779682472479657882998673452370296196440483831286689564491121006976066247028730371763042690475281798823501229797025755380165916697742107240371695690354719692495297141514154201763477127854849173452675218845886136554829094536573641244549907541414831414934394122518125637246141043984352705889725194913135458684302947008502630805362186634572024595348550582512027304965568357558033232405928721810420183537381445449483002557306518280856586237228508105954026441453486471381781457964584488464959201425192753089507738616378174315845450232858759075781709284000087894381518476251993470778359814946996851142866223116340272559488605068295530467700123197282933641917990017133769274867216023089824809095167569404345726089068847365768375546860183890605957062731212778487816040187747951669415932797838171839584387968668041881359358363649030256749055312032877210027929001608896087924360275072708694323614051861493071160970440819425831854396389064526104581226450169035936299084527613927974779775580281975254255657111954953157997240704665459151454167616612111367647324012180566931682071123885451442648166681883034479081371187481314430013139855254284604926773124210597896496270722808120952822407359697613215408685205182993643209903071943908181364314490329404194942326488614107550663388592057998360114733601546151064514763660653651899427734272728654441808308178981987560310845101065027020733910530946972122583805690954815077852227835721427212473182230279242145534681384837419534824199948188697953232008308925099136882764966228862480176625454817903894939644944713188310472587002902942340727067994932273029973472047829675100349628490329600706919519531596333959623882023177881778453529115425236039386529969336204786547928629755923459931264062599866713539565866516797899935993742362456075614141844628177115777478146996699822332429542226812004548456357329703032519597902932188535744437925878238436744906770809853272473519351625091027585356386627975703233576962711372893943622046851484608368448442726558903592118818960918949425665440932682796186320342491264936994208511951615088174533649207628705908659398375473709265287767527209909403478155515984209788132336427511631452042531488365018689335477671316322347426802859639167861048757115909496594552863557320396443235477474492891233923908384960338788857323088724783633163608323896542411042992378932827589629947391781540523524395876970464051385391517348404787642147742981360536043369089271291570513363850363517235611290773185615044708838353953450978789342401745300050891311502017251143415464787706330348704437772467654101509711730992879267655941918024505565883408401807001976491045653619665301537343367007376767338076324068112714123717717699142666668099608698153315538898720774489615556113250075997272357889249685785385172636126610050171396608928153908665909745864227095777927421490872730987818807373631395362496794225060496099645479188908631735147696122200288184290591834717430747368942181911760025338874159769342774053168620729994970559712251341650572598747265909484540712142607265338253815143000315565957238087945426621224361674613347614420090602798397746595752467853533512953049289777913277515654144404976900157994575858172594761620260133433633192946323845634582246056549162311603361084044041710100208888715085828426047616759454433289708727129671488392498542805139628332834315917219280477002443631612800600151498769279316107555338552148390499111695661248342589039466008303912287182309619184842082527016202321718837389195519776539297207698299264114223427857119133734919491077328801973508338385188261853875047999954269960801824326888637984910878483145187319167541185044410267718265019366631878636439286864439502244828721634831766878666064923913677067845411167278034465888490912690027363766833256842071291859868545764650165150445723198567860219465939528278867311688443648324715909930308469538569238261961999255263025768998822624265273537081839491535011254143893603351718215009423535903470193912552049957378227914864763255425862913679337262147773091870369179375746950593768711268851939372597888112092810640450188983782503836302995935264302473193757364227784332143997661796730412931217889720626889696214642800247522628094041397239634124761172856781937468852811517218267486873757918894446107592620735544560658624663010968983445542556361117302475437701919083298622754611791499432954528597398330779851154290398974973890687778693361236532620379248352284898449289053834368840988494477266922008461491896937073624874173883231301425063281220865893943858533234081132125673305674558388213593853458243608445169334422783597605460019424655932892650342098725339033063179881469840400516934295510614672745425786762603085614663642431270648148013333102496360368019879290530452221072905413104339313020527413336848953425367406895578402483402450776034614578127997799890804081178246390698949639554251954760825952795047160683386909218943638901706196487294501685652008271677375908126169031797585842656371603787518892001963404970427740554485210258831634044681656429856594486243771820104705349545465949777634525122212513518132743531006248278315251446326403950001946098716583158775287075304525255664898358350020614315773138473419108261892392073059847288005199951919629076191425557204861012089718055619240001848627154582609156091674385750266884563962023500144291002255519690690831231616950963273287338009691512255337318165612427782082868500025305115263273628462651255636194961651431856158689839749830560293788203966623632227566697404103727022765280741179097530723945542073301179589909818121180781926168239059428597239639153357839484791092393093169183149413838097115813231403925396379168943142209297636228777858170878306736583326825948215212355638446811983789418723725301818318602810291197038932784815996381098647975415340858123006014660335293332583666745159801096505769822688501240845965262932314162000686322629290832308348840346837020178984014628589352019218412080203865110382892477077235367403363432147052503427626535453505361618221518766801025636924714140796536273662229782583308745726111613867362816868510836468896765640507917430774528079855657934681633898062914316470182466925016096450794061826098520706383391705366718594821704200613938999844242178237733288502280347495730052440191874511148499841977265686679989524076004263073769729746857696487929017778377075267398421468441949338866091093178255329719540000828909358668267392088960037162030135966141964015872487623573641204895663845985063774639348923827994473857087626004064291211061404264773780319309979131139110498022121075295385644549145439807081053959070686899435086851649185989476662128683329901086767565403987747066956045416985133994643124417421752855826927085357389771002396691944626068380167028974716690344839953803659098106383014876036872088607531746742367641639809897199386819148078293962038590360079266404612406361794691598247628892067896633616693434243151950782842354301459523279920450088031813544634950905168376099316939505661265106769958372762890347055801217953126396193006444799899341770965436859192142076433747074279374561379033926680829370662509941004872730316159746939609701849359063392732349983034300787178913691114116428031388807550416188681175732986567196437637475455345674603873008898182323368634391598963649015100091219711063998117605229637631409473294354888569031243665005972862045145514464761385036724100453582778778310928279799863059791460235514675342083231568413951270684419134696097690820110454198261784548649012955244938421755274824753991201142558010920534744262880280470301321358521093965327477264346666249555736882571271648392341802757765788470710151960486768961877721289878777278785569340421215892712061937922025567880539783225074030492029396901856729668526198560331688339334792947965234912566618624737652870160552530220866599562694109371438370070274692647871553639281044065489854590074589536337943275382575846114871280123949114152057917768839366616801845922041535817648530296765967373959487289801986038770627683093634437263962081794178315689218236517511687149131487958403017133377328942515261070366199037968777951097995406034323781880155539309849255870807187412286120639489909318016094879550740204438656676836054365623044129349836115808440489739394118010388017373597794371419470785988589064300292064138760680808618873432673513571366397870999967150102194058487186246205306237315978284552039181788576911754774147189530517246372696649045457826874876235798266319722453227502300425675969298574754117612196817389067683354193179820953299783973729160196148246792138166290724890897109771852006247358973532096346331975125581129268903461596536100110199349211957890731460987120867013060636516275811136508276763622921273023416812124213282604110732872851135848434592230745212628861893915935319766669840746866578120252992014049154383795568423582034914300114340779463916195831915249142002115757183262694057726172170710600703258016816994375891890592866611561867656910038861192490750965561990083680850991620862177807700002725265890943776165748602320539510998060348447915176605230418243895524454135271290641498037182148762164223675900253400886338391871328592588220802902834529731844153595456936656222413524691514077804185744031307863427894942304279817790082009738138032216042940191573241325289007948067039308219838056196201899474949802133864396993574600272993787820503633577066466700980303049617258283076452556029804402650446772916404506443391938541719089406106857629165082275237288645137237652006812048635176767174410888306265813477616999303248043589877943671133288378263276632653594959279977376810450569866860706496118487465399154024833892728721157199342700530940088650602019896093689121665998363983895059923605330814831582928456569203740092136130192718665658439469653050292382202006317679274630513035768695007196012808529469147546867728106395024814313723640793019769140941616703464696071365669489394462516270641090162297095140541896090700694353662189706472770791924085599689592488153922198506436227515298477285681406206964716496240330513830839192749286370535162043549373817287081871709728268728343018216816135198430472754902150785188963838571478537385241539029993515488705145221691962379217727910244134203332924513640815464409574677565560768925984380328348406004029404439285689999290058716081886274153489682602993379172422098540040386847363444666606741629124584363142928890565029133957507907818042272724220152195201221836106087824255735117763172938000601163571217090571171369338810641240418361964159305800112749171874356052687423537852331811959997351476947362930580326284922516843624347133350885632883120778212469397384166112238076957325065808610161273747380441026006171035206132183994811106904944724826726975450679286394486828820536775319562432633281492605539141244217135065786073216703399264479885422462120456569248315362660300173949798453596744195782555889806424420677127994867165756685902501027299494475493901794693710588278091220521579120079524659159632583573175710598075941990776356864616933886154347212437141139159661336709780698543023820847158172661413317097401986449173678710057931389767036383699524777324145016723086501811602201195564488843673401460687231908165012134400446798348370800125695361355950558379004105712041967438541675213498016537135687484407181659027395269992248501494922104641690345704468857010758025245142644882639200140233162402310370574635432693414293985252941099010703241301435073774586115638895274011844054629431168210493590640733604665612885742080245519946285648849101660813557305677434383539847948731057281032425432970666227581188198009385954478268524783284698336721926817152066586486466251939808309467271532928967034860206506781492830901934958790850982687509610714103554029992580380672606119312425014041895590786070857564214017510207635936631237002146744124705604946381628753542661625037263548136882471504024468706788779241979972241360465850372113004477329216259746840608965313759338062214745731134722740712374224963327627718060387873503832956258953533483809538846478844697848906637557769496887754712644793554075552291402146024952487334558594834632704643397497219935361023367348303194647509126041365310407443779698370254992582709106660722349857114097906252280786313922396737611177644538611759574833038342565977867967352560378662256641039110376658663778564080751248133315326150843996714050028709751242942391903663500552446098542349563763466012578279591623085703577011918271327412733300659672336960999211313445068798015847591238523815764849646363388422515253984152784519087467185707374852194460640171425454456553619308653412517482847421477684589996219583515222987412477793807273294196622049208647697784361904445151530935864045933050922966513451391645141370398471739604007031644298456441303993964470006108243157059432047977510485244156453276267145440027737889703640978710510769816002422082052793812792683624923064817141300395954334341112047742417148972859467447590367384890836330154549238838518465947277073667632733568877449637825968307439971469630374707168566226546612754824519725728916307656935197990644825150135554478520334427265643513781797199707799913448984977450565293502786068288773304738052711070860531533861935037821746626256832962330212787854032682379429552796713466694110700420181324813408709876582241367856590887941193941084729258599132918895864268798611670790268360001453860920293956881687944025229473914414763943201261200743917684928041354261306088832868053126216610656269954038570646933334661023622369442609283632526137675463484776664821767690037560732405110963579108086155627089542957791956514656487390364137159262221089590820110183694448606754813018365428662530142472004359891141869707007965194831105226969312138126862140158371189649853302752631560408790157824460852137103287479236287290675697899343614985371013848216769167011553723084626481570288877120981747268157469324999207581837108236417225342267936650833753315890207653320760400751419024195187506459535627514661908716813407716122319208338276793346787650851617570858692411055807261804530487960709486749480718299257057026981349126911746011994304936951055967615371458119867469968036462835802572982155027794309774204320539750457105597498720595529489104056349550283126160102188379312036259445219588400182742508811037507843219512670613700227547425389049563406201799491427716126460380382295026280396399649051107288177429170531944474408868300357566853606631069382477661206507286606641839728647654531031056801140945436790092522880019252361716609331631877809187653065391551925375093832524844028438356714308799076817311334732042914623919238339384242659490105749396537369157720495610153529487429139814759390653103446283613877340038977186551900324215597463799794249878701786201155452392528087193048182617073523738949995810688162915238533859282102378909934825050205318076739710577228386415004541592504502056513697319936902521946927698380475579298051698625369419750817141556640735478966664139387767274862945736893216876545832074796058525362963667341490607585889032772292066313329347781863507273273143289474352717640666280658623575692849154892659703818295223255970688872062032084358864933764099770541871334653113802618042452963141735674308874503328148482267105869400477199561462853568485132697273206211436411624966734793327921902423742064892978319297681813436338895017053743526567877164571642261378625487592372834844499697559154085657857389815301238649798138603600235162174109780802393542602230710263872885896295934368121599236893443136305113900390012822498261677013936968065057411750229817571007696636489145157987302874117719516511612384306075334986638584258068997989784921765270753051459948770563676154053911752879777785084099382844346488847091729878696374631789250568716839943722088478774439024166506401502747686847603748238640063278981984634440138226941092741870708425918896425203040710240554671256697252667135381076374657677028650225278388508100973565606554457884165346342259902416463785819734962627711237167218960633606454812261559152447376522332836550560258113804343624986436502845694167410760056370235481332100612055065926149447535206685358541595761760632800492836487708306316241160072997416457860085117459875844734990041254412935013622075326929220233595853491017672431327105158924336472550694583816948995007069324208241961102719992572529488980953628585624109787672633181403078210439354638374857409398982005196659491646361354120029946011792875606756416727720674059945000372494423307880134938737879470124334473322306312219093198864280180735830467985921824316312853965459941255201013447444618727028256158257783383382329620774125853098120270280598129171209665626858477376644527053251717166371070464653742994406421957720818499481989925855688141693056795915689372789143669126579461428729346600746879342214232702975293357457195200266520305900079542360201663126886185922568049258093035030986259647698382310793819493103993157806397600220043194960067722727868640601549931717663357730297407157511833252472876555800659691293549052783707277305759616400104094340170162327757150206976292476631222021883221127568120663273241332996471481362657851320409330305367453132252216197412502971124926805607263078135466740330352389249968624381884670237033461551359401706403166680654789196056155822204910924266734891757739637972265236171654007405115970554649174549887302393294009284812420515070957938670805168248654871253977209886785543297794019232013606466142650761746099050701334202236116346561365079934785585601508186099703476089003153792049168197595126339618452527363250619085290322567645327103881769728290648796972845153366193345975963002867799263169861308532058449771522186169839104285491632685611958498128794898282868448246955428426193730927728846939115157350954757743000614926487319646541605275183889784132203930401537834649182257182840865893070458634928156051627976473780465169806334432185186378331693172537802948791774826905684473367309957896501421719616400406655270949782504379327995075613801932581218234174596993053437813829133362119979284458856506657720914111124009484607115907616614849160396978184684221198969135392628900213790305803041560640411434768999773863895802360086775019076334086896295963646404194408094719074839514620853783643023352423616527256096370701924280516741704567866241378052589243045761001295551336669272802435952710872462066126560571013765435566952481231269210006988127670921851980723292794335585595427307648150919539895098055961225444455696130806873992287177873997180538063081157319201770254568983626629622008258252672542695533565728928278736104577745006512191645262607232142247167900132413948951979628222837706596212039492142043496428324313946611810501343438674808324227904255749994589019097416737412437368094265096289176112953636832542605697103557718298750936913862841335487287962826070981934763473282144626402602111846820330170740956582793404637704562388585647123811617548225192042011725026748984932176742932198026714573930812610622743119495509603544074605449721423768454254054377823520056061559665748149722429072387828703174141228826294294972759698093453822881781078780073169536312929746322338747129221919153695049998611262733987851068123840953397846442994657574352072417708579803887238453337028923224221940878211340182972911913004717335269781197662266886229843624844188624751567984325544676080037867365271464483997099418738556910139933094616554814764997127088100289366330653627354329358669986720796936889983341022598335091729477991277630673558856805165311181317276052954666836908185846153771741199957122898432082113459277493158874638348885783566643061744869297209712130591553470665039489369318038849837353585417413154362739780321597634478891501975521856703997576619800606729900395100881327836373779742931087983461670376653163348662739252811255616993210903843151119939782088852780293972933827717729182691080880306748917491679881791884154825489010360048207259477686579519253782008596018149014735165097353196439105370294209058018429967365802724680447859318814533472295693980503105384710515352333137879983508629474592346938767342544597540881501492371970903478228253086024840362621229252817810752511071679445737702667523827357203879409519325484652627166698242830749092354192569877371553265338610834071840733038991451626366057899226629534458612647470132795618275252977852994748248618490797958282768674867129923972639899452444047734025028817433219765581407529981600170033004775622353752182834962886261805200514092972157246444959198002583524100919434208176823153245876171664118679242227431821463477594355770727209396800289085856985656156872444759643370463503681553477212604358085060775819359701778854518623175096464473574999930479797360909628261067883416415189478411332979447451598407266985292880111912562316646721415830067203618038209612647865505210625397530113189598977892053188341286722983925992686013868352690174498266241730215961001328546643964037239517935658822738801475386853383508729954956803651228488287954226530387473346277977502507130236157563996943522686350190794391961303288401635619872231725484542187914843811568855985890773160450650699164055040558390095599208458634488424609586619407764107585084628602698024630650019678524045537061186889998594585902507975116376605982523135380106981666811469715104359737280929932594729599185217225473339634320238420189692616617728550645513070271515492513795116261261861415894429437454268968124171136803157406993237020807888912718020017573381779668075866076962296664730050126044610722892967040097258850973991298958756295895922443328649617858793666230423151927710474837327793367806216256471179534158588381894221974695675259970225500013094500480512585810162738134396653294361078023410986411124200699509478385761419268266781318502187366539229710896385363045616106166955290120613697169503390898559975034316311834774277295773794522984416853172832621190231532092578420027432121555368981436047061592848648924098038060744333503171705813956449747884868966743763834007248823536415254517604933230616220126259096248695090080603643294270387467600645096901632019127252218548122273115177907997548469147524082265246282620589803878757456101783198323968217223249254004525598417380088773223401028875606856676012675885155623440333857665490517298656404526986479332135085351078796111035869527009306925056763236792321499857379789801098495801751069816736709568759322402271230372551841799753348964846983495102322883991540011192806123304772265898137253210045958931093448187827290769059100248355470657074780986419598022085449386822055068137623724083284890035603629984730500746963584241615349700068410071793717413212680996853712551578003382476829395961037651329586831548559473703226422966835700821999669504084276019878694756798311773000281330901860921263676635624579793389753119930777718549007313170384391178626432330731962366593421057548381314281388845599833576131730064519222649020172130932384285422100182001515968446195975094506157081107336819765368205760634267751977725848303932160415516959814456473031622286868546425019373320805092367197858025137715288665960524032380647338569009670041602355068559048459800423636265744034818221980329514018513391321621574168694103137098561121402511151483819096869843954123269845391737322388966018084236919185385903969538810305094944983605814739599017957926622505708294340891664728817944235004273043866559553794397394262293426710520774190254364923541283905274112014664008446064389140901843040592960070486777551449514626423940650446716483457132073826292855826951331961257235625505952624702466658437515208411364483473703084545724094173255622338593844853350499096778611883624992799966029744549246082820050276860086499066192709127730164719773289288536862732471023242088473590131479881063745979198589451547853998926246633943216151879606367089247337151987579956968437478819636729891142726704736653347306094736789672070477518610287404827231093602980325973636758201098806163153555667902534855820410161236724289772265367831427310451916647082516921333883651016786553560665748272379406747564365961458421207782067342618711844952671746855107979277723839319142686293789357869233648031121768814595871396837386125888727972066197754935259490489441846878544276569485030760568048844786112480369767761931047332949349913925694775214420816830514040427901979731634010656976077922136578305187338630065933322472777927803405290235814986579554886949387378785036820270411435013828550566253936317902352272636960100851414485354777882967028664312351896099553973077303177431373110682317176789150080651079019232484722589889586457873864137378329542647253564397102329996634932370815389232831964570258840028786869309567511966370275464652764018922721564111836283221356689963268501132162222269075561079197486941006809246330323451811348371734420508496238166700887492719861139508438664015110880076092700855120363550064285120242327423609451254031986131287412989646401012294486801799114912226704356677523224238279551658917797295263121975747838932119671423815772099929848083271763892102453389059671230400575852065027591505146610761989202897806203768978405564155769539931513741367471840051924110340068399677049514586301421596141947344811523426153752024544566305168934861519271784613761017714811648388166179109051712480957547877963947732837733336376515904171003723286980462426342242110154404824906632694492865612758749375270493727194923912896466315581512473061193117973161257745881753694983138915403397177725286110589056795683052460200011398572954385682577158840713885819624313489491503049035351444064631934585219637892233867652068827841036055171527457932682905211221253518186050730966165373324312256841679733568243530571546917573305119335628672635184771708353450072954367790907519751345596975358434310209496348503046986198047625007559813530694641656763768167537341787843712176547250280712559237320742512078162138548561673719993587984741691184338697221849198864461605962418949380039736440956835493876823057860074308632635659438443998664690900552085292211552035266097082645619416601407163530256880457904249252828844443980251765336511193049596749353576920911646598149644910497406517174177337044887485364647468171062717494475989429643477142539677150317029629578339341245399292866893231536816973779258150301184087280939724061067589745361325756083744565682574867133761546639951559903148054319111090508129927297581406679772386922436071330505318497104893042078417136004776523688427449224257576184794191395134927113434180933972810493591770611504861953332327968323815699817963486572257780439014043046686867133087298158887779871721272049577781348668949808340799728166506018742369629479428773596625543265021686441446254528265315340938601755775449681338915273139612628003525892798010504819577085660366255130614877468408860049243437007615629941802647218066852518763016715860712353629657426480152264757591595102188259932829928493320418665774230071297028453570560299092651973112302437069578025350309090963207299991619184846638439634395298942828892878564768053426318215718726283455693071119898164207359576661224269394155517358516362239872718172753258249851876978564516166104706463501513746750454853320018795618039721291545629656835526661832340658508296821674923378255664107942726625616005593275964679695581277347748955872413397128592126076863176191521044107750311941718343572490025900646976444611056829862362113795153742118778261207893985044931328904433357374594048611986108594471712784092684585776959047696019885987772885248981788267671009874518132559992151086324896173432264260099391173284696284975563097377329995600465229092736359619342985960146624410259537613426109929490227152666441836823012135977427352042828084461148277682682892549291948144097796379757367824586451969998958855478717414801749656873181522402102923117629850614171393096075556398824478024200315906469699598296036423470680092822093283989904204286237909253058074008964412845477388633404876217880607597035177672668822104113067151226963694412411065279913520429847589332885239113763348903205407589521196243578718473525525123092096888943143539473204830503976303114305734863035239475055452522707114355425583513199074015757010133648575314722651847080170741069875091471379511672594759071848388226255344405000157924236936243391108225747955534537139324170741753038200621927861167310885678129336230821045326913267827363175324511349064188791456118916404418708014486435985313973273235113152723651399853303926277985154720365892083601713042613302983406504928735427757147502473049224930314175632304364999394727239498487512301590147647070987765272273137123433766842852913022262619211294175628759946197362361567442219739200764090084185251815267756896693598813556748462819551459931060040611645589028782630977268380536764674245446238819143653685301970650178485240264674349448460927589331882803957076948974160830725503753625042742314067204012766302294433153429770557304832183725760350642241149647156166893655392823175781036604227790220810898201666243470326653578534585432058400514420215144086751423539736496193453675354742290996252579200914933160766465890492199213542517056525157569727446696709502756483999387518524042412984552976953033053564965240607428155257979264128242563065906453496562937616083562436949350258411295603652938466349234994864246257581765095698264675420549748620307711139647453558381726423183274999824060479250165946464499326432620438969793696215193157500768594016200393736565638894782548023874264139621892426267013295344440244467700805368460579300497559803176612536734397844023412357422975953535711179149422022313527408749802120518922440107383266768751787512867761451249411268227934733770435221342760534123418292802436559584615883301155425475391691278196848745374360216830244587129869097111234896644004010180937864270086172747202455051577091606064876021329083597160346259904756969565562527217588577846667542028453618201121119684741520659649143263333312392884147168813317356657617293381302137325370159508479794508905336849789197953214113847232719809368756392573804850214503926468326705855771325103134637110272947791656920912735991250949667760442582683754840685677224030137529289127966602890911348565064023771080939664917922955966295021118612352943154725277287260706709738956322626562205364268335666078994627588371950706201577846461198900969405912517183439381110322513276124467267385569688700654290199154426932414279528478216923360058152899820781358010661133171475930170959047899357900556451982695803576454979382119179523753297276953689612666439263321072580080387992139104673871726576241301775499892997246591064967470675391988279697703135146914489406143606530645974457666572790461371100952570387624335779399573593488670866602260031959347828198425005106282402680561254760350350396200644363654156136376057773871852598994940721228005135118424477133347701166911618745356981052967499242268826526797002844095961817407990500068264398236156512658165410643802477617002723838942384823890565836978691552261809626610849357057407081953071412100261667212415701274465992730595493692405966901213784140008980694371783410540029879996986811434520754950199106431610822621379004923738797353822143221022725193697058502458041291396670655843484577789785594980020237256395918144707657529188950951574046818824430647435541111524640000159977039123517001477223443326904957987725169004127056947409705248454588498385826298031609039759562478245384007343952389420935188756282760885693734510565006632777783838405227976069577136277182200342818708942936295566142409581379757077689665332414647231473941375091618609192966115532384242828910553808132419565161489773375314352515977021126367613991746735314572830787150008131506162332364466183404898007642891800314463003449267081792531756214365878816882408117022310012656817599018414085432322490883780331700349557011546341385766460382046678092401112738773133659273364915839139305800783777095850430012768055298189461579903858799766484089307627267999099750394030638787582617597840520013938421404346417536754495385915173188560087852116800093642975931799241127092264640064041115032209257340213817150681789080872303462099245865064823284752427927527988765869316228778741540984214134141956573665468965657219876774905357851173205582660319074513369410700675664525494738549994715246375165578127223480003253136119062581646388631522492786518866122463094688647787254387596726940495269530822458747809079144695677541368294492439174205994930518234007738510306055439527207856284663132215944324229112511831143819629821640923479255668240875418941494868504629014625069447294560278883579531321214042599306963442626724872992256509262181972752739599794714621971224173766442692834417440495444520106133474288436129887169609395219747969143960092170663220584585767452943418501460760901183440963504102048320612200935044013566812980562545176187929265317292942088733371154600264763911287933980534438755870294899675650194209672904000664818635849671819256690351406049459275150111600128564154579427473540062652012283479483086133042742121632521317577698537360289108788418215824926628033229549210712572837930458322688841300748864776463508755146153467843644262830707411886815250987203089810796142857987046518230081752396691168339274449168485678575287211028913489631337312996476237112953192680287760896241412782090158964049961402883343868414910242831938624129689609191813317093882509559414297625589544702434492870191584665644650418213044142224658411953713663282578680543371645746612562804467513152320103673727787891052805748327536238611490324282813595788622192028045882752614740796089010073583094642567608753990806137621822142324228934779070252572890486318975303168759652204717650975059424717009060645359023228196142918574663066204051008651572036330545415283030625184338300694211183705722014530192587781357726845201655573922344426683056684591678566934095704827043222741897880196721309426604018741509928015138852865024760562589401568160424397704859080985804069924572444193329491571756245628140750919058502303098572604136290263680236626080802643627091824599190339269419833262335343974617053144340203988734484327672166410220861881124863852345687847582050659050007482888161025492468770604858905232992093189586107036973387230122333516549732749980264132548215237398500963937525741089036221441126753671566054328339071751787337878614590599074246399475965826558885327676175513258858157744774943513184294371112145654470363930109303471178501566198326269560438157446573566928243476700079038485912436463367018101772532435296871535638279857365787315337166477817670191209950343695872753278672117764350815808321598371598242341287797779635229410362405205567346620069307912487608744434521207086507678426425845220752885067590205795760330443679596363426942702415713163195318727715536440023338230879171451848335805429825266769423892702202933010170584432777696010813041317341486531103741834931055783388864422910395255285080904740020639392843496140051191020451593785392146034675019618041933062904831615049148482565414958759926931154099038935054793943876916353913391191438626946521195785715812079615593583653067576013549468952312794263290104450181473185547778736010289870189377489580336713377111685144730898447008450721016211880466356924221203372891255585035294738238784040876061134377328226376750304943423146973537602760995355823165516001898723857871308576028769198508499586400053376935754868100744519837770783469981486251528980840187411913879413154522370378839749530245818087152049852855368405306035092975455347535445517142967773175770500045609701561697828510961027512929381943364886420436197204253277770950236199083995364531637252049744498262129186465074612514142215366700964457961915222950140502796300567056264415142089991618586119391699542499865530116037950979051614525594062394884876328837555180502426812648476404743030504184943819763289800112239981656793688636743040436427831190860907335936129119120490416416362230179736327712371067167706793705847406778515491900332466688576372883470589851866095204907552673728892749661771027539215691253385163743952883700968977080076679450620275728594690811518947006865855411927556547234237937994689992721786837831036253007102076022405760115532576193197522984072682230622684376811390145282769517221841468654301551774426782872427790320698411979979435049788204771730978129574947023559299120640789062514195865996617864778225709184652698745596526133956893171128394753724938393352857394266708050644835941627698093914778540261170716097438914934493455426365043352299434948591921557619115780591534596685381613649410164365391643394829427304066812119984910721669538379887483823223100621114055581880790621333810077714830614072545006371186690898378566681382560948643637988516092769517311093839988616170902152030283330928377459499817360171194115146034844759054361940094535300897378161985508282863647793743069551942491514440363581608701565289950659900601716236049116824816594484304504697329077601373369042072347920132798990659686426141372856389508714482022541121531208827308009186288260502681170641431137641912796103103896732276691696028782711963482587049929970764116601167192126740811578464341788938249845849451660522631977493722909247989233930029873478208842087403167922910869492964684291404214582282513221172340768622556987247818789983968073413976972541984479197408711034991538101983756598522780109188302906414125628850142599572616201223254125162801457898949944240084996142175079609015576406426937054415056277138195636701592298177522783411572129712476184119398541057526983334163532343632316387713924469944185914185477936874284910552516229881475853750806557353903244653016902801233932841684332092344438504769138663446993405495391440931153427201982502949731027490595290747520116745197124543489990933166278384900477960613528426950377907599920354439988442523755002231545155611836100481178114665721741428167769320045140850929067951919148838396004350771476096720843935425811335619076777707687393345491285293149230706052100577172274309959215287937356238123104705745422202263467984353855048138164882047943726609239462199914729938473180642845471869131130678855983205429394647792517393798676812762422961366786318248308340933419470857161953064517208036299423335633649660324798108629270212944775230986689950897826457048400526646977110801720360300673297883349806002097492452926658986452757497654156554194105112458187785306354112900300543597109743137599337486412028271557738931211033299110596622987962511953808141258033349039507572646410273292016509949161510076099788765801552422978307626643936589366766352787313877425031932698439415371333024531550622386966784803346991510208473848688614326557425204663487917156431312311177849053287402110232368652096248476839787401695679564764644000045025335790054261656838320379656032509686889990994839133754338269185171447875248655988227166330802790207029575076545711988720367750160361961020141403361442883273987964717432757218008851550423219982324911963294392380196061871894591840765261210343479289118022408349830216603049499273951848795321652085622330636516134493461164353744007745258889982397378707017633209567140382435539930238866169095435385476811275286658661459610035817622919516150894965883193247254429395219850519524009045895257958483759846495979492234791501337777687527575094825119375129140266737509624797692850048410709634389879985918846849803072252452450768796446854834519555687278899598690922540195619644724235641270752324324559428296756413877560229193602436787740728034545384110350537148489624422130312175795528971306170621037176214105463076722483094782902762880513114468634593705925666597910623158844840056761993525104049406021646210696082233746653388802438257297269031624660748416892875244710415784485060254964624060363712547522691608093646808267939915075990638941068357071916325772231389970820512975434201589635308236671151690654559655853002652396736075945652285832234455839585975902859298536522644831763981962536826974469469387632491748678825406643964388981909147580050552075775670991137475167835294881029315402810770084425931395957297460405307159479563979850474018892406820850216485056237176193945607747013705681674465681239157398742372371488640485731942727362003920834361637036635406543832803766156961971480884114840454688186347147974015217620926223573731952464304494704812528945334713501529104493432491588180505600284877165404752255438650988254526455541381601297988232165630071551190381212546654536204574032846915044791342825094257549113258820363695046674566346918043424580255793302009287362011896913346912289085685706340989934990577007069118607189107458901532176248799317952977335139928684236182269322478078013706842175475305205875956963996371918743035309337972532909971523707457990806756239584138213732647900946432270245997068693383079546505805453581931367025526574044104535770959138562892536398525001752891386980336343256569025686128035102226078840045623138079275483296178516787416875210458108607871868175665016563508848491662401134942917130820057786412856637763019386971543424721989870704157000645566045036399132529420865577759978313245259328277848149314551715033100440712731834463491014620454718034642942808774539561508300455353138314849675776553934991002393021242750629994931391302809112036742052671071694145279461954827196680769406180042129194978493941752206157206172228403758895747824291511872635142116177256910107507939888680471695938895913030996894690283551321123211061520226922099605892892276103271663244741095295659098594989893529833297176514779139236286673738889169528509232897148670164548573240809477020172157919241167840077618160608037594156678455596947701234206323479123490487393863166597593397986891141975226482292840859168824387696918210960186830525480249723969785000851636702721675036469404335720146332633915721114995557823430010559952404831436902788339318073748846955720612988540337332362344987887524782977179269635274135037677776180146801199456572613939349696460299665847122654984727415421460147195051816665819366209563755824792834225005624182317831428588769096368439855631430192924786140600171177248816483546691642872498489808921863177653039424566913346995139775841118308121472728763047199927207007279468126830103817193748952508936906231493231371848077619887650268568852568758153769407229927937705768936169248764427199536428706267492451953142919937437991344912421556703497948422286218363693757187764692572207728888200654245645968932143691197072961494355876635665760349035399125829320908594330348311706554428972053257200292236215567022762210473806474671975166796864077773258831357136790875913137182053975047178005257407204894375355304509265436166743350364868792562752922017857056030002527817863183309557152638414132484408314424973657174230526535403775790327951103586596257459891265212428253446204443340314495600987197296767569015810110510115373853383485353779064057973530306534634153420421837066911465133054269988983685963844306742504722724278521904907226715849566974577130117167544159409553153564989949848507355016174463522576680816903848442060586224945010095107436481132086456320123912814286855383132503569196827552629310360696613208267674811509966206969440855529418189600916881342243493463101804714613087369179027930271587917487042814783096813873354105561835690692809228778682953692736305192797109589015921294821578227895992790295533858903870630578590687644670008552811885679045422148348138719141141884864736057975883411656726579053044954068587678871971717248649031933828133528073781031768661369790943395608086628747257793530568845953213575709583442528409817818426081339913406367249521273835407285153679177780390285403165438827110089310293752780378339586873529341543927151305592305314019282331377963737222526894620235518367151372335994368534031254645899872760114688832855057410004358487489669151331647855176055529345342645288891275048196190674556421235486062606372555096167687771181484893655185605613490937190413733411232521405855438521855442673071591360386244130535244285609566062760985177351857849525652274145006948348190515406701020964844057036017764924457426689517454619934680692179509043443698207899102937387151667802600803019597863847560279194872729829718529937736709625028596188241968485272733406812574700898167665037735398107315239003028225382801799749771954636728918213100247638438688113873970536769619369190615967711764901637142759381838612257500185169834846417494430973420375608973369960660757531955229404164075795166711467401077353670384865097867101939302700330917510984748690884732661073105674392075117478214229512904309015559769840320109635414339167793087777168200801279385171234205011422933350671033301290481350532941301537501245172782327606130229267507186014832907723278824076423568503733536503285089469247227510475595173995246454857612917830000650339940643535706504477595682069209954565386917157363460845397585624835309372209957358370229303847589797553313195062070595258892302245399407170339997520177146406711992022507987671509968308889265899079178701830944071893049047617341161431446642766541189330797710684454806213652492994972096534813843564937883880092114587391831938055004057766994350291177417306879953303160962331733952355306195506872086360249022719864887848498173650983148399178893824509819006062917187358479219857904070408180346904558728939463944827496546913873416358593904676834685669291854371115041873336627331628942479016100663432833707040590992250437570598374296180539252677774354634076646188869504323839518282439474357617275167405610531990766742335848071872640353574604342301543859102177493762144886193543245381038160282629151893723664012301501859529742004315215955051890635446605039758685265222730012931370624823634277603187416106710868245771900725462131536226680011231087750586625569216430946445829711746129163263784364367030452403643759901966760589080628679838383657128879461185471961118494653414278974682047917366222067388290090340932679001991213894014684637745051786180317931067295021057993090472138511606057441861154989590390911550709196615593731370463263693905051437247893844382836141562420018686924621878916770477042764136410928065894252989933864654459978162322240859800302393837398635353531272558313584443678987740262058294387335807200919227119512175571045021550842826532617199901631826129715863172403483413568787275600730870661953366799159649866275335655203192770437096219377282794084763632730320041336501604428544329063040847787643142374636976496030421550378408695780217039686098893575455476674150271168984763373264040902462360486520331107334633065995758509950172538689669760005781849109557578657509670154933962930772169637552941059765700908522168493865236410138802686690391872815168467641230040534915026434028288338078668901448527657380191813393895832562455622474424387234092183786876086400535420097290055778062454051618164525410933756417919169954417386666735911513948673081673536204171162197350358660062121048732635920877029254016825107783925717422677546259260466214204580062576304477159949501537506542163392072415197766135240756856271948387803645228858819947082563068834319667056872744945843803462499392059755836505042597391640023042034168857439030943112462702835773635901008279868823002196795461363303153138745679221326388760703257064199052366498608638072982135064303833019955863152691740718673134860578211841057531436295931206944961747281824039611079562250781958182312079061389998877230569312067113393406139996857117801202993414069621477524597938025173385327056792370553092283709361692963664494889035953809452630524581066376379542053261984157511576686762039867219033660530058503300540993927830535969600316030135203983013220275401395434546858140929109730655549150978573812198240437169744502094336229631790923828991734823113140543027471599020839459305909885290288809454426561798625733872976390600878682238697639472312789868141633116035303281878501552449803123383758897303722286423653726646900245190812583350313701831236764749317288306513090270812952685542342554697331403738359970092175431910986239172620044799985993026103686636018446593453653252085873814938633309446018118365343439203628117191855878215737417280637392814224424232676676204048156991461853834498455559797577503711298724126838241253425556422406135586493284368614725059636346256727724248982700176564457846949300157829975577520065232490109900364925096168490881031152095580115550431718985523490969320452161984840250344645666969516435062862670009031830806266455202944086853786527308366365573263486051400293006419886620360376793755996011917565683164541509388284594736016120700816975257939523703950202044005448127650131884516888666860527618366286088995721550076554145598380511404879825059435807895809315546374675641043374767495411466354920193366941058081757475513261700987159266319697508326740457732022449627050522537003341214808065451542143753417216462824415814111291331102070481297127787125053920772613434653776391338302194110915781323744190078298006800390718575929372584723836942661130759816429490780489357683064760617605949614816488107266365524861993820429828323964605918764231456003126338898987664773590794416753477064122374751157591858600424340214904189549963257480773617023841331269206429015384100911342188583163282819527724040140092270013767180890746836090856960977881624158861293987079201647405248283214254125691320542521596352827526838733813823433910397101404934831708011728511294570871997506312591769617437769684363630533156748562682336304824000702182078065427902366062675156543775569692932092727177266790806096958806965329854811940857821374654220602782893520285481238039042019911291119005544618235346788726145105187360504030645821746025282772963405535822621974861104532994078516186398851908380864388858804842278506757458993458766245466282343636572172043899642237678592373169927812775477955375710542392725432621463160575140502317130602233578665565370875958417226063501387983777175185091860701365754778806262353161614357007386262024301560754699300347925814086313734243558526932150285188314362438577032264530864382208464215207123971410750701901782149457538194331870120678127614529676265634254455285968151481999991870528325675939035112516795659559752352631092744807510074690185812721478936736682977471064452874889936654727035825030259914032628902469623774411604713775340723205445670362557192167872456370778884159396042720004205183101476755611543952518517214579599649659482447473935706256360553519187977236151403218786824316785368787800512999936179636906385292915957328496861279825191178467398680252921959600636012126822897038820087254142021013122947106188672743334177729963241959150822013833630517195629243370211505241240673350880386723829792839008340446789073798716218800387283886310015279452946657639949484580549201462074176058678921427700913973013629225424928689681421819901075745979754323817026251657940566332434653347424374974005586894648843010145825031384391647997966557041007350096230084597809335678404663587304976758115166684197348673475459209610891950248858410267211952789636540315082654198637564966697775068046262878486445262872013582172114633735268059733466173446641318121876492650087597121044995507369275267015330846418475519428517359281121573344747043156352814460317577208954475917766911655748162052480768383374682724564442448988669884964639445056431586329381542688378696930310219935769800441797171759117250253416079495180346897877988565323448987445062655783883094678357095848540045695051173390134931611286155905294292139370157955138204410141783013397327071276695750802697524149379275891342436951720162670711721658973087458428122723813596958440392244882498196722986770420815511903599170742182817241326516446133277742278800085234494493810038141976747574738186488437163297209809937985266605625147962883237827221960956407932854655359414998895675324227755534794727971001832778519341985888792988780908180150137759001823474627124936168169724195215494092586365323687812900277110481528512124771492549748168879626153124131515866220728175787289981319920542644812838528200636090339179735461945927014420040714036483925690338738130066011466830918685314163526989642587911814903541860769317358887425811715723819993898411846255110862242517350814395547175082481498338199413815915941638818580849670249113118901976469689978364283228844748370346476973342566397933023585412383774250731447927260093802940353043592441691495419012215951603014862030129033679064678855680347351028782966991935633757296181801954898328665722419679927770006935425505235435585690512190395569736532958373195133851348010790558481617716579658368650668102658387591231352796097259472935533340628828863974588806418159253416373374398191977418049887689524195140731836054191041009875705723838735637743938905989508826918167087335780307146992888990542771206473685274753323342807458901990408344453458241634132560049409644948086742089278534340899605670812673686540557695740291262539495147071937554975508475801371954568501925751630935757966990858434366109619810017839062681329088629977429594784606487574180934885263056300932085709898691827408628672372767380777476413619683922083068976812506057246357079522597014938499262930079691111426106562929672663528495391331200627308540517485152862162983620240355394818049496730992896572152414610922811718623126530610553801881824145061564992824562550215793293420976223939367163638618937700800660349119963824423666027961776131604884512281901643584291214855284224710894824493915553280276954951259078791659124201356955323985255881028389655433579291198906963272445677333041176313171942826795806111570511397117262354253202576175675195932569617509351928381150473918285251974400726119501217035684686347912537400497783278501304749654040549579788518816449928421199067224843637118789000871248496700756825787806547845594897267490935533754897203609775068171292196524349610430375354483349636860815035299708544472041638709398307693569274786533888805378159137415160810163359064869414934679805420180592617935558982970171155922319694426700634351273149044588423146858177367702488697408845272783609188353821291140397196263710526872892359135434425777860710076300872930236296697735973404058826088914315365154146135153645667452332584454708366562596279558642487955857035724900776818609624145942255577909060798162833656932288406501796746709772864421703172559754019023469214513990126525524178103474862959665363419042938326919071980616449052980085941809633138515965385034958342678113209294522278851605665602385741619958121629569686944521151719988294519975588770631725981710488634884139508892612196830507610184399576775514763569338070627396127393809074952521567622082479913913299234672488287073048032343406672146474805170483460057400377407343636200325641694894288867016643429911574464545432979084425556071126913591918310143342824995154870061649667428965330991680754012511046983955485717281323160866190515031031297609390038810909497182450321364549494829439956984772529226588568363707080590512279365960417485057903119036308709851987809284707498401005728714386637540940308282763067837193103345713612738581051717181004124471172545734967180177487232717412643580746695064706776346181246128574607076840683450285673540879995424014154677891682172549880080989825131824816128937849193992140310990205985645211502364210337183940457025608648158742806547308640205832296856366393902253566581250409706225985064800649149728119372329462629420266117607779762460517843125032562030638553993407295269846082140601934633452440514528756017777083939880477089402546021113401151014305217501941204924230523487414125650270273727009477526815098245171439435816314988948339232102635870159408181824674428424304253204809880440147625137823583611569997268389888912312894616033833251365235891483914925680792646503871639659580863550562367986306635005121092756126847978857518982580439197138738541990194058448919270890330666939225838077411744393908162646218291620555651728732842541880077212308361797098077457714339079877016550291205318288879104275155573389947812341606818634267853205808524404355612371588731105766906329232992776678924034841171987593550117529503543561976095048206393047938452666896893073066087615099007061401195935367533805810611950826072782139763291646273415193282814089454936910801040771420093367580261494401062177258990349737156353762325557932430251349988744693908098972834423947756643177073233051433536109093562762566121505986113020416518720771424311975277988758662238795621800764278267330247871619906936964507334527053866833171401869333533566561845590618497082331978095554326048019976578380208376337660557591666408412733243372819257570034972932810539336422832531525597840232335221114514918871870270969158969931557531933741205840103847145524447248819383558713796775372281548410852405763387033267449761735062716711072460254231234715158618440712830674902512409563461503816265242897202142673521224406275957152595422787576449143611867312844275885506366074169839359703220178928158129254388527663116200646281640420367097938588098058970336487230121874148220291388308539196596665531444109984068146516427749277377240821168360760848078581034814249044510699741080504052819431370308477054767739813772771041170714263772729483275583719775075911853430430927148685480927954111646936219396031355776386389922298455141855669828294266339421621873217766065704047212210280818840825450887400656518784553964594585871444247948050345059536324748646497890814012225895412392387565012862912069235276997902561713961006073250957252998623398479039222681447126314257252912269770799704054420635267788874439850960032055913143020834181572274042535284057263800339514679384128061065529091985307555562574264048643961396674720198836032882384594014888761461695158307767708598552099016860401308464322886225996096034741831338422660250618366554143927070782124871274777043400777760466162986096998040595646801243350546242883223835292664087666873417995508890981225389445548540181093253274564951633258148486192391050941191962935769712125604452936965208726378626490717518974919323549896698750993191486854551722846285337688032477519398429312025725414796431315996132422543714370890188457119898489612135587206691518973879547353914767440343044981613393652803439433900823882680504631150878936160927922560504188442527328563198058211819301886601252247750084014381316111328960635746865848685452811095100126017973075605421901115966224678743264803265392067200259049358687803551621946037661211762855319072174427295917106740657673599531298244180063097637197497318112732974942848331018940639900020483605031858291729291915209999307466446001821161737934110161212367409249723520876241694072925919877946685110954602866927811395777648306441722790645156863546057205891518222299798538116949211529047085524519946088422983600260589703648895496300428021921427555303060675499976331785345480606530576826617020759971272170083998389950545207061285906833909937473800940505713307973033912489959669446984728696601464779497261889050828385368929237069665688684572456744565426548417673405843298246702347756021886240348460140830515777717540830622342186072132240728756209270268591325283018466979924683246488693052971424335070905202281960455704908728652417047592407381103364227053123398460915695252902979184443426257608588057286728674698152477112215806617831224860010584103529260554693572940375883867594883216462754941802558902992707595652502388185276048854989135556200391983893271566959556062667610866936154427339391277047070422133916719913642680112367804753084629878045592427852001192225211235078500699510589381624819789629807749252847716565621413657657536469501053732315530785008277971282911357572375946214541793664220780645105360441712875773639858940005887046371479699796081727788444755517579340946186381147606951737811443089983223584469907274732902707073427249550023385828220863597702316251783565800281268476688894226817607804210808136399370648064853835749272166567622060461653497760945175212123552840640513981392488657514213148884904355559853253712668312803780471470011462089812672003461285805408159953665161510270919181977787063562514528199089016808010817115132198703692070585117972996591150910064408951156074288324559657107456076518179075841813210883256180715958175652002752753893993870568661445745221859322712250791137878667850418103422087516876267346971883482250748439142362822072857246251134202798407216464243421193951514773862293385753621278962820985400262767579265818406781241922752962293560878479439656194901980632465591108972506495324477337483167257206766589671834644129526080138762908455078039016547430728151144531172513853450212821757579618896516813236185494266806108274435479356016998715024363721518745148163934971380606941606422674819102606565952325122530823427620408872911477111334864110226750707294401427682253558615912775909514693606072588216891043509291165528966653158969182592346584333104794112658495287714171963508518200406893760900637587880864206360326097727678551844955020511399302749178687770763920187216959287241278830519734622045815618009874377279024054296422800247596372532804253128172504528266056733786018303321517463775565446067836624980881802790768899049052932231182326805116231015727799612843858254789525678083332255718612129454286772136488739672056457244657553565560935015227094582790577595440170552813354106580410704393851592698636478140541591006463011546016531023604345479390812728275585995459509056657890813086549690159110011388684485415682310812981406808969637365744024664323837836514075765242196163359171106491338691458203219067977846697320752322595493985768513627577201756015809585935242550293393253028050576914044539655185931265633860894660983943950280209831896250855322950215258240707249323137487697986219014781114755233813824468149666163242433172653023842934813903607995262744875588113203747019121687505571120182059288852818902143586955381921827600057199850899065715416800624994836717802835226385031603316812536344878834847604901173573937683198113812621867037620437914510598939040051597069749098068998670701159916268515696575087968494243679935700916660730212610205519158913070575945347634021515000220953435603724692474247260340382787909658213337499380534254668673218051924744930259413760784745126444166856228304279214861982169378641397783200565689314540274819735962878471264257711555998010971347378547005529196110164275447634519511449042952748793745614458922795555131862750843300136498911947628782591209623876358566393934679362853805025907888349987909567382347302248796866319221557553166271819482128090039562589860680888335581418376292953256839673274996249372929289285108150093538748824906119334370697580780371135800015229458371660009660017293913064477150287076124069903856065750904541435830042860551241422818192840728065274450578737281252141083774591824614680557218552375677821983466727150949177707601569126624487993711432259036517712659033636156593208293959781230271269355022346402168873089848543874285526156778678557800287572192120972542194140189589269665368634829392447581525513616727616735133595060567172789424540033397657605105291974636402075503499562588242016695080912784336129429001855187237139244485758950725454171181316823882132192821438593367695334613795364982269120282680537717012713705531882031685107090187511677884192508804507530128169129352730417347423110218075575303489524338438514255534997053407209687512530166623348488272019134718741805770688943531939692590744150747653597259961401646383160688042480844571869720609993421599812131164532936091409819099072719744142746456665269396454691448604570885714945029050090746843267133640712146006106219441721682063590077941462246325939203915838706236268943731505156386615257341237318916947497820100851748968450104579849315257600662572505567103129365722294253489030430961145817122408300157238060836735946984948600787253866463906487218626918662520765003678940140440629921773944644302412979186983837567010564307430083160888135948184413053078662898218626570839019928263145843444656060106132159486314394273848537682419140661635993616317762270947903972238952207678039496964046494827576740536937799710569463075236196152951936577509527417323551703769702248667578627394610443863771661997985135674237081482932535254687040979979126202406553424590307699099547025614977910057266454978970387945253971833068229017435771610091364178952105573925717265643915504855821930226246535544308147046635110949891051792670091509138381697026177734202146050145905864870617789660635471223813716461283676750475123811297524573511766200806421041969472016207035561975330868595749855109541125013708145415866319963929352628064600351979083570671643623719058289265785128029311736524847853935251259038065368639498611379982911829408145457924230276459036770349644888906758594125890116506958958874299164184337272968865312470378052747245791597637966742461350131343786577487115849085609868033415298600506767463153655868240061390379903856933235220723905582777499602792673298079102566789285626841707900391620114112752357930776431051152871869399133088509288845528514297049652869235212278794252667374964911734176460590969342498479443502950634070680440337720094604803757102002551535184981957569236206772626618110584525266940852310476861561971820005898448177294927145057872926357769538544641917548420722168887850088858295386192370479410322977357414097268994612690433757564877969371530622592264573120959259934281948116364442167931750942440437899289438043363191338383043794100583938099775103982308664864356260249664238649568523019407047900033554090781159454956114557086588242885228391600279740732988902867954657732611508219391273104814693397247849560192195981615513100799761086432168213640640642215536145392752667007161929382043704434995648936644680572307956919537841209932741270887947075375325461306428212828608045445135643834647896069422972326650538574914886370167650329039945128949557564110532388683600394399109010101854114367606710633438037064382081932852883434187213609838330822569148897497458072495507473312430811177415526060284502110638096931612488648600424651733589351305549027039556961716310171949305608065942851794974159520913512509854618427888652872765957015870503127685782303182900020069427595380062329566973345325549848155204106472904088040765717252735884226479496220793995500497893452197428621604225131294940646401300438955224932048665398525938054547307101860332478359251158556987287395003091515107297383889881042705293596836963284549315581267539516372357804299785253477362003853584858973391137291628352886768238493799081750353500889471001301602490576211711766714742385530852282332648535019075478396765076592629289280649605876478542411068062085993308965500729124844296479000848656056261491837864439958300048076731680969127352874230767113729692410487741890100355783692700102783486072666554281189392144260710791123996269775070774980327369780610038846828841737676884116346940202540000652015342498671632611815008789457736335807099583766542723155449591964822912600191858631456607928996978760188746695236702086525584508127718320707591690315302635184257726177055856933385722639876781504292372232924731177833227596974298233254652677970221493027530062728685787433605986013813577893932614627087721297642950939235160439813729563006853451844159876426378673970166442795987587054648035824148418076243797841436835497732292214861933317295182944438401831605400791510073966105492409341978548435051514499497795253430671336742093168952493786177109969316465886547122307184994972889257986769140975079294145680145279363314783749608160684608151672716968496917630825964469963241756591702097634834338095970387495963005297212510304453646526531828267795427779346288523927242271561381497622405281130030399599493761587234530609092517092688219474180593384029344036523271212934933758694475823245524504550313984225171153221003587965439539189819553030276516368990262656402389746652510822952811204294691338529044076311555309355261253409978493028035944742835858987579526279454360828561854086053521294539570459630327670149651800487129739080659953313387366374291115458698944432955981540533240074905211964913501365435866313548897969387602415700598072866807444676971387863966917384620300175285832964161163983422092285411872154889187562884443312637388462926333411674904177120777062056940264670428363224924478122379692197661217578693859783240613068928394765492192260838572010318510270879252019253095290805234181114686702044784327955585262588176053905461217934031978340608595516749561381791901945424055643755906881323384283789711793151010508458635445078353324298282892856368312879863425124662178569258834397875548521447770629249743252226143042631483249368177459957050677565748929028747117165276568595474943003305795806712475025425408953975459964334472804430875513086078157897315560481125769113729207360080413872176041651629099559194551568118190369520357485980110159136640022287403139547993697338501785531970238418363227588702459500138736161510946426063433212268330649957264015725779583443820966065030468199054270474838759853090455927597690282200638233298494847336833811760595539770114483477524846036771777487486301200246211159351719873296165165538066886836052285310336669420778740545418698909103175412342082627449725104194529473744120402812504435680068223890405643556501189248796143165983242762751941907435571179216971347175291721091339346194440573483207612869409711775027462916492825914465665156094342346158684210484476880065941645458689458555392301480466200677770907438438040667785793014033168679685320610915449039875285699995801679787242469181206763553794715484354048018306539442997543882006555472464897448807651720251829306970627647697155899907498484328909460432255323840217364957017848118668797186238235755070690129943906362828269022283256793677241807930962565322508047008914260542426328694953232990072613190413376119309136910787275262252125125806205378259899026249438646088772311939369895008450773866413917799793297682645313474504594216643080164652278203014995774585916685843565200002642199488301792081470746715927686749202755998791171969324409990524963519869751092093782800560472161903294244041075024537186723930152009380955493569280473374121562788806634787582718783714276867519912161520664642592773298601764409378589172132404128254909014346376743189593931250895205115077805445132286367093886266184552919648501573477104684051379992143612040891770040856429092298657830540189297740363395457173390159358141955306618573501304430312177015649802015660338473086661533996413479140843768241286684599301608030109924204442146886076877495283821586817013483735749817913377212947055122211897837975878157487250719589932807267505862317101393845374494410218725238365997249898394211765097544221724887011117956280669599497572558380066495673532370475350850317498774335813810276610783261284596301034331920259108345035371773729312549397802762766625922587458437217515135702755710509540236808142763427274296991792095296698203204271734059235907385393493820302362198625335654380803518208501833225384706705528562652757259934246515950394255466079640277185384912313202536383951423377390537838103335362794276070634629876664668378302578301309051076004878334055233038194075980824001170863821816252590326260875030524089510104857467778381112693934733181627964956658135313845010519812895642393463787679596646742673375895266346176199485644112902709913468586847263876751619892310604275165790656953481458610348134824522711028725939929135004432433847499255525187936859725919536780122906241396395973653811755375555872113799557288759338210864836087547086857894572877065871795420153652977669677287562355542628735891163930600452201615738814657838531718792463122960124502777414107724847924652898746792513461012335357365538578167844575625905770149949034490783745218227286406075248258080653644723175983769792788425238032378642084061196172670217073962897010614073122934220046726371185278672733499641319202070675632902391618064288614802142458884460600097183768590235288173330707397502458207444357232191219647678774029609779507841960804466285790459878369225478861984973141334307149810953274478303400750604876794658718721993298863377387341489549376642402723189144361230134414515478780346565486629944490695129349621506261621762589364980219369362273775578516834510882629344820831998371277014578047862225184569139220046030644325959785387677337110976131921237317420204502039954239463094665525688064909467706621823843891330854188276790792067508172269387739586177955132971451665782398949537851398411051494333367848210609986754075881998346969532397279130901500737344490060596365538687191025491060287857457852384705883642577767821964260778796981643151632588095899210896368152994990477762988226669882673599300741534145741938619392081465343391964446425270101352022883624421288414525065947210531260991405754217918090638207470783082517494648431199202526299249407239528437227783117236950881892319152607272617516125282639980284371301496481290327959520136440932187027865700070457215589882818534180274294168131999982054894392509515264038988801078564560584604307681856126384052473646979206370645081955640764918287873998032000283480430468156979155182842731890616210129706947476828067161507126102924707754343777395300696785316266490369996981431350327030848228949388691150995571172984808860726665958068654509668869156194711403296557815587390762613824750476675832279716128022455181254284338385861646648147429964440492689204247304726785368600710583748975907105938848867129426878321282910270398164289807844782464732255715477061846448719580547522343267446179121433899780582573977512554333320010818329940225680151971250486409490567546794693318639890254140455257548608298491487598255759266649656170640811655625494325173275448851886930687684157402298391342047172572223351903684969890248931629732976352837405150504561083197949750494124705441692503864573022130029143891810482392732815494350925337668716584756638414346169149380519432974227145697924161300437346164378168725331694320259826537494153011115307636832761047240224116892477453820393666249119089819099090509026642197533333821060231744543630131934371645616654901539413579622024214174085200153469374184633762349896444525271440179802788485338938528940285151732577418825758144804848046031252934649507156748515980815949982410347117483686515982457894443710061154108833586951193569391732140971782362202842915817814427354068897807086000183664329092104882386057664561326872953979414544399934738494999116796299846188007072338636221569977370017118602159010663383764746161737005372118980950831535447495950868047463486389135102753866027967523898908566695943657515457996509327558304028446618082436162709690745001435107364677274991175646599476984265635822279198312065331475564589640707841478766257210167184980757262996225953404200472320679989009604392398295804219062999450098536560654007584334675301692911891392005200105654564214559646932973075814481690711995484178023719779830014658135675067037292524085956880790668990806639082404871911024763683041820919331047753445334195025053384011552756982049824689583274151919666682048925081908326467331318309107897893908976334229079275345049239542282966316300621486595252590506478345284454894582372416677176079487735356006913520478055140980993076101962820457009226694718266711538591093441143971521445735344268109604252780158387254400512640170868839694395105646342993654203830872408747278341147010447501391468785218992583587695107006632011594755585371359866544472663391914777589849804251423668726508238101959202997166240390693878864602284602399433075724924705642427714798083082096772815238194344721596452490776132842075085507160568425533755383717301420159908166796013521970508714611133524699614467165159131993399542511057906677586746262079353067177575593725963894773966592488265723950161842804311095765802887708622908409922549500881613792037584876695120390077987944104822913020450635396784826777232761480381602795633219264015325381278206637333378609497381638888311352555286756432526594514126606783358210390377148234949163981089569061217661434889574890816051643987407120893112876377977028848691207705752346212310534378406780478696004049591865460917405578364326995521488633121471812728098903198889675762005511064097510165742124460481887672629777986437760469170971295482427457736026762748251869891973768727384238540591381855420540748331124717232678793474207178700186768711441392388488875521141919900003355151159204655885660846382211878660570354835191625511353661248132335828713370018889378128671412001420317097560481179219836183076858690058961276774549033521755823733624532864858902058270009946453567285344759750010309073540718532784424822107846187749374825531825762333224211583096756546186776699775659345431615790873285212639814264836087416167833916211539867937955615322873848194670772485940816476584473969601467155964054939445336538600984501319555757037971656795961562437410377091462316097830206787377959641351887688582664167297919477878399391968405804960870552097887477704982951268888661167016102715898300754422349402326766244846289808275113450061966765423544882706544599887960972355819104123761773735581221389998078912327885000081459739736633587672909952220054400514506918237932704644756598245656139294368049421191843207110161767226162290155137362368644073292183432975253675624113100054729983510463981824198136233389557378660256161700632706575446105076442897723355860420881124776079440004664976776145902208686979218573430194694901544391413477420387921567113896156117426160369515819178796821375568189086964833877087560219840920703194099265925578493730125487319822177932702510323721930877714225958799416661763541319394580001631120712415111661948393636954225599642751131178376744576714063706149777782255554951517140279613045027147268975499840890328148842308726498559571913006883669990342199812021521635490602762413193989112248865930093982936019344895213855983627194594806946762514220485545517983808926295474076841833298438421035248393811216032651514885415651213874226991622455412880820672723991651190158271397096008199353193168724625963515669639314282555224273928827328229758435522765535518637587374138197852832431689077336322224273018138585217619429011379717136955883631576253896240438727316497933189711062513130084158530981523200621143346027030686470841570327974085511349070965918982627820969658130449856991742413479510977884175980124266862777388743138736963588025330908769287246343400130670455565547388120892010950808923290988998712025554096675887861453994477486124708122632631824193976127471755196943800594636125370300530044371596794121478960595601717963881807887464895085827361853402248254444371388982071562144306254539218450034929549246167442439600097519717081355939049942794021620977055241604435715842882448417197002965579513662981851360436311551468986323074495654362013500215579349975687985067014830483176549126289826077992625255644180073163444803607436402668813343878898462505065028961820760569519491112568869586043469795144858289111919238813231360539120580507664868162566984961665062409337210839553495055223176835369023736991359747445703995347192134037288962858135551087899324995609916660880835304876979537849201984357033511613257257444141714916033993179686727193988329040413835716454958164823722606971206120286564187568812326320799507188439739248398195383071032572154488279290346245258209576579927732196945272294675087516695578104572866233830624854963695764073735711006096102483242440135355676560488959772255897996404559859253886831196966092002312502879501266774059642065764060001652752576544738756191560783375425974292592639145966045634588110179894969708774146485890864371740720616117657070560158207342023034717383399264100806038427728391223561820997732203780653617653629495731632661059621498886748956902271766105292755671708442526728408325520498849666087913290977153588249473345983279705618857274283770695875056687149097967603237932659974118008649763063562937381394730812217588007773426634960986988306557959591700341848326250231492814701608637872806644951796231541171492826835032848471063642611650068328978484687421525557279938126542908258625532100564794606748349887628628036079018351165132239729895447996034861111211279399227478553116913449983267628282273378932818863955457491164640830363709889879376233787103961181895063257060157427493443878957455106484835568130347896407788676746096302427750305708754315978550806843266344305778935153275482127402130217108921170532988797898055332853076963000270382460382884775396590346606077445735867613014599274307988432017881397731546876202525810600145886285633587735095750739929262096173545504225885885778706823238020294030423665055118304466096155694589991740278012630509533979814651717758656862540399966281873032030291682728910096907354299825796064105832357138651703837666847197171362828537859653881146323487528415111978971059736409763055468127561087016232947406179776004740182742653919017282678417901607932666027414019926817232459770939022815726135012987066967823641166197190401494768678030246536697319732703189836858584707264945872159077718864419414964211276485574267360399935738471692281061528963212150220971067479704253577973619569288776800302693491462689289070654083639962496026853381381970385014099728171436404304620853181282356489148693930083515851374242831942141122871772639968990338611249332640665412212674152688294175216188743263127209816097206195069683844256370510659713979843978753541014310319222264476958801420473685850025693395655445690682870801375998151834662675363816686520493432848514598381065027472806415699884034554232449845159032566426687218109336669189703852927661744988902569944302741407874464560478402026103900325095048140953804159841079396199350189042125615264041558195773289598050806328152769907840366244592733629937048922123712528634636298065702985089348262198206114115268681144433435704994818685690146079211378586679992343592273463959413935842633759902214115827682469414599992485749268867579874021143990920699129885727396073052780992393364502854391739655367373074256587150380789528269235458988982818001000193050809439970061137140727378232226899408102076361523845958586740236932182313459473720424941957938785923482253195942138309693212659397797034975944377946616618607574946394362720253589409798369208912970659950254141192085032114332741285208192921753878657419062037788843383808059367149585054112144480536304479637209896207796083163936109319559913659349818974651942823644438609925878549009139208378933142100311470569618456052814445138432746139696293478517834078348871183609335958500871768874842583749815871992685420657440840288264251980191353384307535622187351377291791906972396015017152956386015528113147882056218275162153924860090980733232556802548444816874972100700353107820570327488405571280393689671554574164344706217159179958402952873183856203216160818152660869089094097050128098108888173616120630876317906130134049360183042909162350224442482837506164073288201508694395937256994482901620152707598052081148888972186489445664211524058319920542895861086440131865005658013412692683416514986749576399915922950873329700241443686612025761759317810270010174475489676502657271045009258364271018702335802518477829400609373309569784370252142526187743953897354012421307076902338261479293066324740983636150623378610092721945033080605701787923626625398984409482965622945923005331841213442603867248037490928119586195142934492356137593395476654817421140671091615159382233392821622679596081609192665509348620851896121086777992955534171571503542882981638647669268404623280640901070213078676524308820633720607734373794763933251912319985309146301807714449603200998580792642753177415101533398235408178693357862465802090044999619592340581517601206619417960945920872815956873733581889474886294677993482142191972619846318605314848619969472587581528780034151828261586978399510256071954671977873823062773294055956799729761777923596650626132921875234653238824509409440698685102144373629166338344036630871939953554080843791922617128217996512303277141286354678673378904712113090706109719935889969474195834871481737493418381921814958971316738149945266006173795115077475099463176868604419520324698427017008990221625757791306650827106008697891496521436676763520397354679580973025288566546334059560805334616286695785709101729906733935232726605622618016944482300687749465247196635476507047456383393213421297221727147064550541133015526438323118552888948789714090406744920277067316773035151069399882743480165400913770837503197873430285907547489108440966299995344678738998396343512429318377775024143777411162275106616063141535034252775102125332689836949262302414072593408869491415986022813543763153049580260786796977801370741573425996084233684232575559319885228845745054230893584817896719204789188085033923374825271374878184043767509210094663481202245733558314106486046514816571628903275819818661654335010583250585222780577037084171112808455308547876308318859321617066712209502448531899534348837142599947830140386983245685324172287733469805743634199019170252020510750833241905692714878620866864938805664113805395648230798804319011479732357950880564474783723132001010797421980533568273300945838278270121172782708737620030106022451516636853512877171464880004615700354713195232352524482111759525931329293726828424091051979844083126073315702398903361215604027626866934539164177925033001509912722590815180608170284044651924758808626917484798446994702276993743196791412771505599315532069263716201630605058717091864727513706013637504236666837931698713279089678767301512098281938439575156475517728070742610847241966603175843070136893575693017951584379899245833621222776971709537627912396373490132469832509163807966193244507911036472236579027327546725407022634123383972359940720485830033255823301545955078213427562675511397624159980396406939248064204082768601873409945310528983627704277746333150610209157163273683662377085162553266447349873063135023855568803071082965170905204740729424326529641051155333469035755277154487202606172760954483342699718193220389111856588055268625410583976822433988349883111043040476821439733074420122276623520832260335652041805664061892126299833517536394874273081871431493206532943705788341966128183587864827768590739085492159593916779465820142975652752150112690970771035354948384366145686259356613051937323744479876518327928525761385337522598310935510815302678452269859932818437620684202601854805999871765503414861171413204635990506972444276909102015216145898040620432076338515901175170785091593016292785347559190023689423446044484020543848618021501976785500194507123949315777145622530903063949836783710041481790124038739190367069676315389936150133389761346358975390188844553890948576771350831932100133570223171202761777418772182871370933650877646315747300096862049950604837726808069259143570701592790713428390300702285307243689467920851556210990355277789405548485211545079306122666575577084883922819846297654209966772356463852039188400537626300046552936315223737278666619626792456103439862102460229165132192204827575872720479485802532357439522307827080414625451249352004040796303294159743586374585392843612162181622319131705167839271102274693652566965238085544232893554025594056902444333113462122703778584704357011047991156952106004101095060105452238953886551845092596873090756153820990639777525008008966781922000797954584003592318816402818864652226812170318291327363134029328661879001244165598673109379604146354513785084725693461027047421140167716662723369386751402434041258539822703595707875534734555444533943307649048649192274257596111317446131267898559561179549038459919415813952666950472059076991099342076931658772006289102264096758841868043790635621576233577307420051740006375176158387812322968419970477389788331194509587767460170853233637262679546813176445861259323205505678881211636155066490439357397656633045527491570531255509730254521249063000431069564679603922150055923926605882977282091368064546881576208329975776761996297377484935680814539403449028147462885176492260809439227249777021797425751425070994936118769758781213211955964300182042919164454762280398980273449802656130215551503136594342589500723028627275207743499411976738585278314235738530085158224174420257998240505103220025238198522076526116271599308612704546597744313360610704560698065144124509467793604098318885935540771314013987456490489886053338143603786724289099988799061152737606840849785048214752835852853488283709158354915230154828875125876907101024160537707379301318733081997948601647994415802601538894518458292262147131253578035656374277945346802104371127248880469588527461503884803236171694213444840055652828059816577347400535552366900205092346753128146602904777947222526096564444955256315167981188141100366562635221222784629668389005962360300646020839180202666832127429960466903258830454324343294114434011513537447930119137108427283416308433549804094434394996800037474490236291884945826765118903468118351715815989436557488026114902774617061872370501079323487762255997139261035524992986967939879497243868784022669564206041771544676177495963431679448167252701121117700642725561493108364095322380637104153537951021398690186029004370416519444856098012663147979342336198163602818651242093924496484972347836031890842929562025734979836543995327486311526000131219530928228797444350291080820548092271312355584855989594968736150037845694788142934623298464615272538679628724842353807090866678558362098487375262222904387203702151759574804964385806514392630891942059965924389438095883751469703225607088682767047373461129183517226002589197362531555290166827776894218073625541268764141225950421491132912347163898035087645129784431675159394543705776136599740537238974159531498194650075963550015284374237473771878554725184193513308946614179167053413393172623674528748450132336575804064502780143687452184096608860326722077556673359185273420459580960774414805769395174380796678723853600689871580261334543984256647966886178467668140625428613856916634983989275937993515478161547682537663365317317925824009523992265860432039952896470982136256045369578553646306197529044940840287206649612463153782606829311969701560745667368807187901702847423510909946082421735095040782286366053653646858265129188498521425851922746402776341969891613828720029533658181153588458792982509907080233588727685798405312438709103146142266612800048464655643883179308098572110155294903112581515875887675388803204177200509327278896857432382196803202787587735310513451801163697237905526918390842943061658083621607181617554742004715298856744864744624122450445717108385052370692244496449683093643776529852167718957194759145603265648822785815822967299045386825695093572370434858449844733291923452420659803380094370801596242173210395591975020574960681633408580768216053746006086219569903552969802379160051168291905296538865065665420515658887316362562887625842610266744378345270338771625482191727103762848412451823769888207212350989446117240930621671864170569353016604101016510227025144034708070767374087334725328986884470552595844430456774858086973313751438432181262964179370786889814968960931550136427368613225854678547016812584220020705100378323368595068457350787125037006895620389466079590510335791802472212231574395656051468675754622753161460414346567314634489308653216415002667908726285002451552700815338847599484261326504736701860967876732353851188088151504808803225103269461197587460711350502871730729877190271153810502418147411509854698234100686389451155855611448471800515869931502480516303310618188595709584690107873978570136874336903865048854220661676971555286826736338953981492536622957659440997362861228723649728367217887190988220650059072703901252400591095917909269187138930760997348491767743071579954288996998261368979419354236050095855466648061860902878525232231698398844225123910840998863071676163574595181424520163415270458061472851465505762508605691187548011045259775545780605136591850729944723362316676418188813725505337177075077408028363718142976978459161126371758298712723466651501793010514828509366063736598661150894954631754796704925015094732832012227420548399428712586498125409872082313463203454988872491419777468264516628383330824314949736799231361592190865515087036731811897331193018860321106695597948939392233893634801625117908242342073593381541145122816938135247592322590944104993997758351931172372648796276896480941823615218960707828285477112454950875722033706782473486355691964601372744816648271697565711346655615127596219596275384511875439591256411063703089947839251166789292420081917098731501813861869512875182193229848858173038012641337858089092500888716868173561463299198197144501730138390670950979614952711327378217640705407400191860127015645094615470978314822836981353466106007234373701858351891940986197244252241085977438839435423962854388593628192404726174773939308060035188541409626193956926770304129056088517005183447235703916079668387029136780006922000204944139419169730062030992318639513820362714986707071559678438180940446450641826999278336807648337787875156272428442836447340735895944221498526874113181675859262776854408818961385692406939101190959258598710942236729739993338495727264446733877247053379767174528833137556439493425180498213647117101328826334560470909140702225864098579927187733447946393849144156830159773128918337354547918785789314698852459727929606534642217842546777960458542118797464953051316763600642800458673855646723423196611366354010069979925941809479626370920084294758053954913369651752516608389356225147480190110466300308437983174094758160122089150089169696259922488904342183077138574037978899604953949740728873972882199618447541216845250832367711971602126913370689225854126191153289962186851355926089231648983871675496967553363370989918292628676859515958459390640466670477691107290331871573574887028727703123824203349317756589365412788429728682112500533700274244983659989521591049809895145650872763525572702736657956291279305632285963597181170920867295584681846177787221808006936541095955696980557057591518403754166244265296155267787816937108616833449762282224588152768177143184066294248947672400717049018931084021785080264135528616193431775992547146850561805149853072403545333644789894829639083482653886538362689981002738079612775308455333443935013821432999473718618609947861704007008594269908640094807374352304361831793549567963298770934511926196088285624225310665552607002638922381510375415637947120230022727372615373694254716816637411763675380585272016871780658941428946444837730811366053762104498748280132936557997055445411923756409465206993281176281582316168306129258218518407960097226194847690720640949787180972275784876408695954640414247185799385391192959019502718529523730663925722844478912106557636362473173840772763477958743851500670974055755771350741307756159596060090317964991323583804385558449028116230088509108883997364023535145326276877397550875485558448354654413076014487882080700358435518316930874546644856153092772079445008810718834027662888405171028101981686927745064402586565154736312073446883008410937197551227874834861096381977854452737919009700382511018391482045616970570219458936624940661189229303138527344320575173388371385454903422181229830187958365774320208529038477547590636934063955951573259991209001555510821059306196953758978822175092635330321269908782183666357992575156941996273592536451395629378909562315542986375457884552676554116970975492234179620682966249389385508304494325469571658036824796897143644426546543253260484772326943033588972762370848501328704573136482982397953389878678857951839318809829872508837622492024369930369772338562644852237482658650601161973847134959506348376598996239225340603858775349303747390443115143935272016857445434542327890655475542820689607615314328329297209659351291791463147645163627874308586365336757436682632601790474379242152577316972568498431330859985141619547252501756712408613462268943591066616868466833591237291690978800163119418637590505635510519286401521755326387122159935229454545488330218393566209368130496183655768537426977886524289163338196062824643971587812885911121646554110757607104939509984609959981323765240258908456494522780596459834823129306867605915444722836628698813304018237358789060428828742056530861140497310309325162711116881062209550450004104374238625834985045544215844298090837937553426968405670398419650544250969722070908813528095290992387426818608213150314645967784004713239761508884980282778050571037503593479989563811502689996174728695238428404079091749801657302400513610241305620970464231461548995929276279237598000402291493196095654480191264850166140048984747652985862321748589367395739243324179001117337816106913369924186846160833087798271321167299512041034443627770576945440225394441472440422079197282369207229539027008890879824172388856641868405461546134243983810603658712500802870537490117092367231409292656667642705845095437414966457052468047068721369372238924822228137772189179532327326508735161537385661933455534472832719456761329548769569365600334752543669286276271406314379464290884501369437178960703991536326346349270686506830114314529733968054107337200302309148843943871309440190840161519586475758533455920914980838273619494369821603460356953838487385529051639405923248597727642534067237111878649512660109305676105096669138672990012710330634437499084641489206645764012663655324616409500108456719659606764363221667173878826324071779566903585781761975370733451465074071958794238226131502289231940397389465717719367965190812907054669163472483822810135730609715760264884595747871072221771321341190473751544014593366730676745591853199453227540105892356026596790966661540651156229003545644221909638445802471218430312246566425913040115792204096941574924763519510435497237464242556078211267278505706863157815085466369563118032896303578579926950484826530229155117769256340206194932248613404461163930110491840689939411787386423251283400653351297962428518284297131606202552877891889027213363277658584756932324532217564621794343229282417343579421945059620424295420149443974047543777441739195916174017813985166117698199864450704924970477775817715130294822758942630121886266413405866180467206800392498197847955979702637918697070894298783011839802956444958768554699078169983688306273844732025681976305988789648571338684796160791889519778478623177105884717658710316203704266098207062954101512439989871345633490815366328156705698570649854384870610140478636050826165257060517478575379818938153718407457975183951241998980225461430808896276067571605739837316071866019550936116892420925963063188980435842558100266265022893319719138864670994327921612519881061010073630782131636398407779676952595481691741924773736043889841072395822814926724793826349199604083012437854989544639459973714514539980961545092030470875150653709157260751591505508975842690625494507451968561386834708426223557989799735726115946328392237900784512961370806438205704831947363241030233127342323007138700841009473015784605280821617543233521329347219142521592845552336126232006301391234657054577998541427415186751499135131148987436262700359440546439879761163593129353120346217819938953437975965338603033110943433465943575223563067600888379569647324245366576596256977349309722454118702483394593368646509429589914509366319994679558477435427508709716425983654235623542159366650384972706896693631204331485954318324544113232133712289874309177173935435692619093563426394808410782857172898212244073245045851520016057331558624971834469957564535668364287448654815950564813359373987977665385180347381875533839465161293333457187940969912625003632380073263909045921305459071753812848562782667580743025754291180561740506022063788996888638646663040673439559923959463026218452876730905416157043750916217485276717669757848936286547243313435820004344342351188428505968948304607166790439049464937922294836370140906213191101467229781770490496310477761574053850651063064236506195267916104035939570562164821291963584788642679622701872912957801244951526000316666005207259035049138974505608503810295940906158126767761843309855854508600065505211368071932138592592638344326451354510943706417394715207708763870627392810796511987845053360396417199669103910808371351854027270802839215982147920007077689563092346492655998708585983777935546117743244506702742810444807424586065269388479060171160847922840465777132867636321619669613315471667785206665314052102033688455676078028851795871135597384679316516675792441308910624286946265860756500192227065272734102612788688571284995227575104900610560945787351749205602790154741824554014503529365526643346099061139886491560014734667491758740915884945366720505631014200514123252701380682101021077987918429652487169204377659872487258523943203581490969289575691578054551627978841499684285915319354735938749883748185111531999230254755001982575403652098721593457620053191940396150499792789492680377490441749078372352801944486812860256079229274544632554622965743869341236058520889528395126734677385417143331839283622126719441395766710246631702009671484006714076340738478770496200143193961015708276756018167495999828100271009258402350102958349589704757561544193132104647188561163270312813860110897735213974653495849959522932801169366099138258058181616227138147995058589762703932170237909331118966300413289362284272198293956035545137361127733771985422117084107371700529010824008410997530743884080513538366036645866120119360947261392985486475565500844817303268254358374052229335191157967969450670230188690885656449366514562668210974628794074911796538972472309883109280012539414213830742715553228037986051912272810019332956004871229488534132500417012888478276780621751352851703055253431026817215788163745401226699095948571958258685980512913579883940932610500326207916445742890070865814618320484401440122212209812352958954167962804667714256622936522416650127662311732717350209133334462792615211383431218723280123335553664155146189648568890081074874711230433606166507103676434212737382973755666570546079037861680105739391805907491122870632756375474782913277340294099903561652837706111887501273228250364502255040361571793602423131368173956579572958943126332795070046306783986037214017513957953308052163123045783038194460870703085164794655147260947553771625002075992010612430325865576222830245067587828553588807356806360775394442377997263156324640417433835611775883791979931569447455801142758062177010874728838187681701869433880873548688590936149886397323859329926858658617541716505804623141855713359417710510102554616125312089273202134525629457229598181065141194002348767276620871671009439890142714570852187655453013225493228824859446664361732716749112617368577004748285106185218885459666646267240462770476537078047718505031058108246040714260781747080407743915251466673613490336561963275819157958113073989358651318259100061708992109611904500964060568750767470352135054944262419791854434413630056305308211467162498220088664639100411946595780341640710704294076940316573735659166229561251908423003684743515593918985115282127803616178309992124858008106064612192910219982441852968592117847223647642432548348340302294674038103894127956294390467245208228432431563821175336303229035929083466579879469373325298816383571950464712160029511130677965951544630448769061575350542731470365006593002511034632409410714139744929121406800359279567348960739757432395871261740181438766276491762445810262661456297541328892543909775979170914156277339706612017043692326514310216881631605849541453399720932778318018219736236409179579186236567491578255023287728072751273732737872400420142591065620057108609032118429982922856703593352908731767579269517315051506323197786220768037272716569265226331229257247963195345112060167405273491307107350908590892913434793770802757728148291347015007871053735928639303892561640921282833570732415804981627925043336064719973287741508653150576432631008596183521199803217435573111156170198653747592139690194974190103660361550185803438934246776850479507067618591590514951816968793895834358152896640534356826116106271323554164949612280083169532424567245243889622251873107761830018170674682320680599737434490475573501057799634519129652459874926466510887928677776633186357665404203575753829601064760661352848765126211494187535053547278046957616760013260160152985042573138165787296339156149378483696882477728772587154915787935111804913233218600820915054759141646888045827595346264736277277028962783277215467015347513907585813739661870252666251698829660498702480964451309928674576376507828569882199928081076797483588216741299509557709032495886687447713289771387320150298635798167421276734485343629478631648514199902949228148095035034193036455859775719196994386171546542975727327244521608970479842550511733128349304943690428870691270703553942872836496935806094830142337028358613089871682916722121200817826661797515708730279884189582931440868479354820708815898545226932841063654314585966286620879271991103402561252600868247695697692253219944900645061908844411479607829539325982773323008716419155068724266313281297578542559928364873228925088057260882716069417158114981413060133260615124716900578665200222893895910198328688485189472326905686842599043865347057622214461683424839644479703612806193921325823552454993290663218798523115991031651367864558314988119043344902442037419629086085257062024940730846333409597595442715782895374459450842607323842503650664603149363667289330749905193412130351695242826124388179954292970150760992119937933785880114977417332954267147331262718192150205392344357090637130655405035385330651317899618605903156448090310360752605991964597550008063794521426378227222407026145139970926188771281731283858078747106414473551363659088262691608985252580697291981145381365431495653893602828119657541682023538642174988440228504186907211782536667877745427016950011156296933903738039389437101011412790560312942234201586451006625691510082474865186994803134718717676097010476324524490531784709297032465831432758708046333430165583396689371933409649094058483282991791993303657266823149067316003772305717305747282311035523141713560561892611146573904816849421891552838539363141925530973585504953752072898774823316160285326524907529505249600018051304565191954406272874161693680131098995827897125251991784853535451259075127094029599146816444983626263251367986712538992422338985735786433418058414493115715165025219380456301469543339339156689720119209081965022565346616473131882308605954814773629823423463373168776275964623974051516137443362532149905530773020064082390821221599173513759273602482010556247188313670129637985781858505920056712234748203588867493083443039168444901895298563782627805327393618930896249068227751455479909638606685230489689281581376177317744721619713549041458757394150045865832171284733353168227372779990117058180632605734763261175080782374902403262795919465503816657115920839795119363249847460440296725269801427993318666736267931359896140017121734154550029646154433097769515959898393490168384654866247610847546606765209059025890558091616365315266171283419436744319804319703559277416333686647505324842210983813761859088504253367826940532910812265965575593666954070872426307756409909940846109713280112809004362509676812940352913430686692567450022749281257424326878232164798797064252730230244954536781929703007809931772843718497386207352316727038833804892745417016265108082815186391752188964614564410023759638106905242638490797124898039531837952390184529893646261144577449823313254987828453569981419109540082229769895661144217652201466184272194647396169610945637701646663946835300751301623459961982157570371736076119112182745809198351821928749715940958978148224337139005799309750317444205334857111892999524714232720983039253582884330030306436663422000025118731794110195152874717871245623368027855597273328416669726212060502631994351489118313803533523364846668018874661148273372402377349103163935829587928156201027414017994606220498290669512199196235535986425977251085140655695529667347957926850659844249511145133919757550521599867432852567503231608329399323199065770660768801535226905549037045167576955882900474295915948730001255299677280057738442005265312446164604102094551959847766340324071536612907769243233328547891478428399717668797781689168369507586790825565970591153266875879986851728824776106503223195896290995156021494306287870501668698669943430997218500212913168725551366996237515333288743717347690243265589460592069158426975534249740788719337973158598180663877741098283734416231083755557262397908245232960112825375986425575380382741134719581835525292373327443530015447903451204464390744037577248454017163746514160901271684172643196399015065556489284037508513382023277187421890991684119595273626331726837743792073398212729753009345945853928432019527488234495332479606220407709725429228574227952501736475481248067570959255167244043654981075413217279640477201873060116552217864829688414364507813306516209238539198296487417449590640483921192769159698812557796627124002776060108794394752825044743479019600159095975146902135323856198913033213030856619292208088084327066275474116593733233044327400449814052437266556710517362914576467304906298707941063212488745640238961148427116894849312349644634939988905353446896902100846506167092612552663047041935404626822323121578477851172122934426458851198533285614011929122999376542660112831833047285282202708244134329279571973082354401531491776635756564610573180759815299487176635133136631706162162722262200766819078796850283279876908740353291226467724870172279223871678478441744800759333300521180754814984974877455494784225641417826158020719497674407339642151934853859958422756575695479464936118884811674419697965779511487937415597619118583017973516425045142571963195435274153205786034772568864694135346220274476427188037927884721065877918261610037849149594413958796074308513395289684937111769341853046614970373107580822514502210139396467319020057617523086459137417332380041450261174210471791181165552163074491813460776206193493213378348490591019583371121610315374708373093059678988960832722704594850511444264504063637876838423983736237699292564378121158845628248329929377943404389983447168851906709233376247094177831370401054151618228083282190442047476861106765845005924860347784514306995615948723991847073535403375894800586062053857250153874769696141317213713833041322204104694244869410754829073668667264843655525777025648450586062291383349923945101434236223345403649999848767990444218602457053696864206435176802571918665957592802365411507910348763152088948840579201365362984550677612256461502433909631177261858599084004093263321140018218095251541013866347587351068487625117147624796885691674961511033951663306109347405750990827494913909346775652503321120784429386703171834052751487944038401743284235354541448846017185578400734581947269766930708561533352463379353978866096951910854896836746922106527965130878483690512407176285968630607862300937323493044950275786489126085089545730487422680267781842535615491735390142053425276961836339069771515509005530035833869318573161908371240132895449029907388019916789798826572485567921142219981951649239924540259036296458637020225565673427871842074941187527600724225952051259922024351178115448440298539990521983830650831388580337858851561656082564619409655710442772503979753619625688715420624508955056735100244111403390459696738319357722685512751964057809895396832464490881688183585403089560152177308902572975577116140483924193815283504861451945508444775939803473349151709308744495958598853101109028419464558373469175409668584569115784042786192125678816095080903718993149513583470936058999223273661446760182598514292178543981028702118516873026470011156845845237350055467871854183479902302045995787895932574594638373896627630136900592670043386724298268339416291466413589040857927808108208858849483055327915134265322079218636206419287895346940992762472615993361482161010566083468196253863989331862953428739598319871665248377100969219192716414488999248845312695382546807130213500623011593725725045264575362245143492253873689451325496860565850707918709661585148641799768673605259751087314242058495920375765642942894643244685083387806591839655347592217079286730154750412755232689242303956710117559479392554597210903237597090457599480509270810312226751659495535922400842666751024752952685168074355951356683442660036613498793124143135949641244210772807507014346963067323087765351044737001592430319063528549512401210751270333848986574794692756573261711188175265602422038194713885135043266102275128484659681594087320721620503465781246712052202356118781227716769984708502029976218763079222038778436174713736184838951375724281557335449489160692141346730718496865929963454926939998419215764447875948452738931002881289626093417582846146271949042270278344175967253931214819693982686701926575005087798907632846234346500839071840197164494156712716290883818351585276309867125010139915412016798751520239199580706513095222811558589887838301528215805223360851718973541390558807948800135117450160317169746976162612111099955048870158315498504681056275547063577973771337642270883435919566277540082375287950461802366362667396597360387953245871169245352248790767887714589352649268995798133351725093747605432144402559261076741802711102867365401112225647580343344293592150962565497228467915336520438016214752528398320027582633458319063437662191075449908878666475851620036202565132053142391049394129220458172044267151187282007884007832402126517937163064474785447223642813395585760984389645861532588717264392599003205022419806666338894474795344880156500518610261887318780829195500668899527818185339547749984775772750968031021145125338591577759201571323716398886726849362312139633539777086999737275331581235115797319080382793121232793832717366407142492826528985125373954630045007904196126044874391894685433350296891202898603459946397074921534891793667561291564286306013537866784136689182312265369969552284007898702281066448678514262356651745543511938276612469193408241682472758614729428829697334200476195199724182911096477365838555309518205268307164610469111779934970436682822632415280425498373429356962294561927483670261896039216215772077413990490352138231929059910183173522758273271645183229063830770790851561348441907504017052898331458805462246577409707814674564251256340409149062304303017622976681949532307624569742020683752543335493636712152455077163598344747557325052307253616182432360526673684046455855149995758488054697407181372063204302469295730850186209651975111280627378551124691792030403483837596318395675988488448117143785387424744828875847303044316166541502136391688647862444383199371310318818590295912201019650755762083101869381201900794600711144018898628606138323313609035723811870946285672028666973735434948066949491677956091106739403466790833329688382018906398826957662378273561352653322683913025133774146086130250091146837562188854528095287509592852314840232556631334318255976354434971607749062094890862611177532135569194666283244000890178260641249916595651303518950299059500533310430098487362689088762827028746866345715368912175188438545935133047429952519651070276245524346193486327869130343443923420758515922548677281417560184957708580466433835952793687892982728696176326547491307206324698441364956509091767105910505191303383114795575408931102602413453987170357057410242080281753759601259314818692307808135967399724851262918951753364570990481618117169986798014957189243900269719280390825529704152879316567317393792605724815168917007515235782378305373876868184297158004342823096780929302726679759570086612555395217291603923438746233164538646287043697320764423766032119489848993652412561390977866703559767035928760470328163865332762297857191580327320201190070452900393402163980046732436996999688077753459750256461908967253411351520642932002068694261973236538697607436206308148744874487348518297073203407497103427517379665608585466523424638879522584473158945615135183956699827800466173552669818058228820381601139209758278437824348151277393837052318830263644350887821244181639751722463814144657576111119888537386166885162777685689392543402273946305052786148824035221499868293636415276214173201768074311388763577246877371438069487127326785012988602057962096233099723061909858802945577113190650574172160943962404188408649468522555681107464351276284945618358070204569325506427790326264088706061775935296325263509352671275250918275187909175354383634258648581636421324653214396897689364924451376427440574392255541371694205206126815815870405989034653153895315615366116589046719331684524773153864424973932465399818442879739830674455646652473035316689683609819601716256931244348677206532921258014398236253399041511122154627653451078245596782293250637306954379115720347114862119905761873801923059605554123098991561529761208341870426882173617501470492180845926633553889071725400207556620011838617101171143459296468371484671561477010164875040847698206064648412055673347984192292472355987591026797758152093448958809751285542920670713311881501455788620310826614447427180924313173168340606456373289793812646800934643888013521533163266888973325461661296210159410711652691320523815533829145964288796812587452992125211316899185759939612909745997915732450553527433023807068169753609393937094536960673822799673119692857084297815230392243172158381172232610092997476762449681872447221120085861194576169526976163272778497939381401941093376488535747506543651028337546543800566070866959468311314488124043335315404284194829034272197985607784111062781589907063275907173331798210372102301894394883808823828679802967538682182388523416963672885849859387518226697643708635576076791786382103145735352431804400506497908605925605140519488661113025481174618665482046381991851701611562230732715708428112184721211169326282172797245989317539065771702887493155963003312208502241680997854329961902657363899029367791670042529796402502341338509609289057143668856300991104328363965940087519264249755180931515943160489479627286716980913438915608128161637574788848091186316641566851816661537255441899090885795112382906496694204736640764282461706922455142048948505225327164626811127236270432865958983559725446675448280001613032892821702392995006453887749096423249222215428560716800298804665851246864691061719571655111218162818019236242601374070584383049154081339282606531388542693159112009688424927660005141656459066836289559555723764510827605716448997891201956950686423922031228643651513881715010222708675692689250722548844556620332989243621030142053703153753268465638647478339965149760059186099087268360845602588787694826379727152095852550500753332504753666037491020762236116405029146192528883684546816468483086790277335895656922957406797343807461331878543598628257672488281075554164791492414982782235199332153997111449766819429709616608149631756454227457934936116887583068512387462742930915509306432539711055169356701042282052832400190091855350403634602111201413627521077087245890007521074311724359148541884861408537929278626388986273210325805734378806410767221872458878928834429147174052106256914620195712045599139672805511987144812926177711107505120197077042290904050713597611817376386314839031645230240526944646779813040740087587540741833711567128607962968131251710492769402046408797191658172948771130300447042160256742576470521384419437269654723813905784257142626645274684168262412446367554267648922087475993152959116013328718565813929325178865437386166917855417881846452994936255943718218063504029664115235758048370357848397481419971386793709111660128718413308236380826485329207276526909019025034537224895793596684984931288444025973831011630076545469003728520912072694851514280411138985973208616375443384139990981190080885079307775354150816918844500338855538673522572423795615047475409052020400771886356455466207409656241771177476151297901091140662273283722402545242361669069106490375039869580004780793172597155747323435598100261283820779043978571980719723651796031590487804945879804045705311384964318913314954627384468935266679821884731432113683301296539980925097155692086420441949955244421980488971390867961353069257538833188660230904572617497603894441432281546485215687883957258861460652412293391268488246896130636494552738939887935968128764861348366939737861165345520638349114355337439955068587628833682724407558547946116965652049149079402474695142582926767872651061079108993250262943599259974542927255730860520222532278819142164792502742884484545750931157371159887167392000356957171529905441327533322856586395942190755377674340439546388400194770846762055828529519520552605697151983191752886365259454382096402003506764085251059657298881878105009676762144118275948146976249897743054957215063292061211804231001302589834962933709204936231047048581614115050723228052899322367864767900859259261669833546287402169131200171328140575587633352585047073428114960007572051833560440123503582270518271626352544327427382140700210549353904878607122209300106290836325594608585673609503693776927063123068464983521319439687419963563075676866148436614928503485071062329218815132967355717431340779974014588488006819246971600375984327542827364748154655108538571882597535810224791556979368556872687100663543649992849765784981236817142766837680514712243410659557239798042357200187620902714385138531923152962176200550151179341910339093741033590799186446501468806562118730081750032740419276497891804681509272841788705512888966364429283423180246946880098539609726090428779967605949167916732448629859323722605642117747507558964383144719941572643298781459205581474616073915688249300746582688476395033798682881750809330032360091385620294094065797980423009554140684022867132690846821611719247623207721504683702337928036176166893766121238321686706403927661873462521745271818406319163940710278440052406059452179026171395646008214141311496099057581364063261085855669936062055551209465046968769090929936058456982337751258208124904303045386649499477170433300073810243694505783712832197201950630044669999786823878402463908829422964170432954738932617722211336561721796669074432723910341634256230133831377263882169569008768302284270571898768487656049225489976892775131035750228870994400644812223489599871124357961310577072770103148988070237851728972058953310194121624308185488422056287858584150164214579366891576313842989898257628816639480551712674200445397428040879676494053151383245226432459216775223425637479428532007302626937248612480915990257963425440968373797924535193983224760008421741159954345062346605116374335670703835879976687680224813419977732597056198819811333141150077221254395341617984378944588700714692959178272131325453704433156881689241696645728960182048923093799732820395251028373695403850797474197152523125361112292264273739290583835669772327142405293451787785081672670022344025297336078712613395464678853362400057150415067942311102030711667735714326989651444511269733377368800164075084107061190519705184310899206474293147222444827336366542768558887392123877547974648183439387351826229221882739263510863198305847058126559080358168096240305729263453925510924211019993333326194220327197114090635604102102383317302031773511082566709349236229182294182596630234968627180905709788357012383935045727132330247884814079590487040021971950669048142697802262253961191291385832260686862291510264625214588836419860269560456585808706855293151185298232784258398844825787248371449342876178392025763105872426250770689353830989473299292642110334370105518709660743062595930644865248502631168247928456443503536249951110905455107322317459649498104031174720088555835563262710290119519399990847516573596195031040004281829061523373231632738847856971921848075375225423692877946539084878210332479104301197862894099282650143721964398461278510136659168255707904906293446941197488752901972670573923583386722415979029384371056362683333373615538767662365581806007781091798516515778187969533350607659604947886907777365944505459991482468797762005740632987763979628635243451277748392984435746507549322356248415918233733784263736653109834788753854444764259849794398225799539633271849864335372744217226370964687708655085213652537575036434876870810345784525288961695068671690486489874352153435208932389552930374245142024865044027919842658537195969446335680988133913313256906899351001789464775170107025104436331978389696685950413364946888825318501640618664065903714694771605520362426480878465749991780781173003788846205570432527715395860026388792236187537520680367582818866291714232560810852875804296626108193243649707703116351260368598850331291886534522454950918585808969912886589721930474949009758205200198552259881694378628827447184297225575213423679988429247941863957077629004248226476986626388087824844097695504292114904320834711795548875441659349257192084800966871845899472273106113318696537983633750764559730511167102936800414969490175286522035051369611512095481565346988018110623217420504413785918446461733721534836446096479906953490218082581627237766106369874788814284233724768490465918558017190345002851576487774706573431709317684543577927653004086241221313964784183780706397158672814670955698274603165681842035006448519590979096850904711351010463453137432743127951367486887617276218524439617077972541861071443852499178120823772935881514971068925072439656736002904186260610671732444788824306238323833060111347570782620812522455821220794878214798751727685088286080832107551267161789940873396678354191271678421981095770454642762965796590456813471836390104002259123568651353988387307891494654668223813422280531283896290300297342517142601551242470188278777230297379468252082506316800347208949352687496669433650569798202805676528596338197148958404836032691843827350878896594954331142267412539329345240617846131386704365987352544382989313098134784679617101052919743979911509623395416117065441271019909021996964426145503375897537575224193270136161691112228120177272764882027223289974910038643553156455980247888497945489946777451481486147204981844248774951284413017743245914427046057569227998523543677154895556634734527822175060752057717525638618660831919759608929893279300669082722481394745215720735581533473503820250613498172241099880376898970326147573826252424439911590444921233392412056603302141490793646281938907867739727582164800668772102596796685897769924119042640696770116719750022837909599780729316622810222150767342645992293674292908835979524696334117673103875000023229614988204461113931003761574609704355026764532647627692139172797603383428455850449851479119111719741423294384288445808346387746008622312005586758912546998268908146848653582865660316297785667453060182565814084676119627901360569124831809340890572580958845409651413249259639897815808117091323493710376824750432339985391646677335890690311117144593095400141192456031308178541063812342816526179662794883527262097954034154393925594679314727896816374232932325125330888457126388955531184592742345932664709788374500710254326493703091965635099281826957484387909502258053664245377569544050282796696368024986056759138461667279706464734021068340854103365443225291185869506674399924341031857614363970705170918289467995475420089808463780497263998017527838743726317495996350288836198336259583883767364936968908590304939003032698484107841160489559637832411296587123185104536609465873760154832156858218859028028327291328303171238502791462729885174626074226175646317780870481228952986655989777860816020056229913780682057977882455686382121444665011219178392528752205754177402532247858517977991414753337096094402409337987485235185917416152073935789889817315242982974576367497575596580111504942625505718655270870361121787417654516549025467708317060194615777803244880043945409994956667402370348635893085343911715213272995850750368599454991407176685066326318803996138128671683663743832706608941342847202041149428509561220042146977394979678949070181223473559002578118644496744899222674520549486364155009323355198903990162243962582946135952922341963930231037685683071230396755306425754162788198872784619015887405353467333243204401829063802781590770073874642125940785899444008120238739054805116923797739293983947525542308511361241154847406055649146939923661880967763934411351221612074211137413109266475474773464187560550397933664184825327663618549265652456848489751854251761325923803623089946904304585907056544315724322321682737939494123986779147093803838177501433795759174844392062240648840933977830777908807124923322723028258038215992147472282221759163906341884153344172883687210706256986186325163225032926394912701998981536126672756523013992441418123646947827279789482841298642255243536341184752802941068752952618513955856119656884821633115177180274398287383475495858282212964023641674775833934346807718507243148500667645008315005818269041218960514139375083425442036168327450921046279299697540096852378021423885082762476814684936726638959635614347679512777623552350046188618075505996778276965710619972291436448351171090130580322714302871515920544150901452071580295381508864441320328691979250006807316919017703955467052654138975989732806116991073487558900337738689273926668728498249673717056486761968937045959953616370168917826947986847919482357345159773247275903498007694491841461489939378225917574258808708046882125817086831450502843295803786468333452862952069023750911599535353562887090566656119069560076640468252216483549581180660165302076297669438271301210937240329155822084617395422850037099625974912199613547517982207953293695604188967112430629877344616198027976919303148244712611839567886771256129021497017055269037225820037157662122434763106030837303665884069363752481669007280129515994251034911145616349318367055316925149354074304354525504981484708818078311936350530699089259651887857588782609370645526104043883396914618988399999544833891966532675109143839937414424324893902508094262840970121227807899741935931340605405671664480860582390939768879588164853481059295076092633189350637720098331202440895326633548208105310973653831338940060090971297313115843817832478436357173507309732080719168554243566426852373358747936406215135395784194233794172927037674621498094164270691889263402990814740817852314026286195557807819608798269242465029092571904327866036701624062580971608828287231678485304204917263361301751660782273617123107017125705880139542018291859356863305968709221298997397700675656170756458194280726664821858266103720716516319855089482323485190524544977205937773405662548478493640262889590857507428654897673249442143179188555827192975395987067685033703879456317492794146150036897600925038851370043210952765860801064657943208055419997263253358492525146811968763617777636273253512744725679632601177274482932374479309391156701352809073510717196089019957286704721800068408530947795805132267679904647387851049173387818840324911044932578950084013759044412513493737383249849678396742506327988765304436195231729087856766218514168958227376736790071261316753236759272588775924619382855077832696120233409876566249648837894336879956785444464120724993651315629028887067469893610787125910019225073067861911262901934370424076790316964585932145203759697796027846914031115987436228009780088642570610763019612782365375618765685203793458868870430505187237018691004968537811797997447085391048200695375708737173800279677493461651567760850732951028654144062839498358827822898899707126074424434853782440277595760906782413383741542238123245246065863357171476972325900874934380423557295301388397292179930138700819852173591681422620798375578937148123778580689515815365882029886115507192337327888912493355565867567874229884012906586725896505818124675293623903657720505950893581066510387897872029112770796653440323901369823899447663674766566360407712050208026135784495591509693677559951323018630648401566975108890536401670145586561501999482455066672091788623687924183633892747089430648082943019755202347139773854913701236927601622721572337167771394562719789107907097949355782134237588094117256714787171785029998911527933822568992967192647796102283136633683014797093896323241028183553025516819292657156197104340987690985434379403316904800968310670793147265575284949084261629033277942313293993892272352156645424733629987545839617280378656214682584838182078171409455784936833782193068797349174491414895798264533252419503926818600941220118778909273768412454147618320813118717494062104233004563118895548367794043935635721385927696703529941633982148603181537226974315554356172297957951405301434146551146920418410442764637510727011156719239144100856388264485331677446202371400610199599198451729841832529443080139944695285463182665351829741529303234807274071317203467243839771580997677610677177115234416380521725720659478338967092040300438860392797957769773031369267450670923075856102310275286631843639746107179906972209125555375527310785939342915553708335025816971734973607041652496286802977059980504497500105834590340247636727572187870858603669904721066459983549917810088928430790935475836065918709653861473868265942694152993268363789296946569775305814644638001957175340607030912691920609382653094543462165576796163338043401232060588176234909770951331280767257759215779250209969195458647740206773785211780320469150878047226510971419604650848641669061447606701958511540006417150417823235467510261444978760319396341658940234176155549362785834084733192415372066738766363677308356808028937439900616808001125016890803036625593798813124150741524785190078794508987736483782551979739872992649415568727311039699568839710284042423411776091894240452682134274889299053888912559855051075710758938083729258061690574613072925608057520246027792070300814555022533460463272202291021329653127483247451723251464863453996503551056854903576507447408020567653278178616291172045252192040035833506876760885619773500151251693238060109812171914365556693040098980029767318089206747504695772684711038107932659352628325761318393399734530938638047513998872491163195083888152872959885061354368269830466010286452625009469317430317396021744111265626931297891493000844797298722152198685456794810693033997701351934048072693743138960039543970727223205983308992170710829660531156096857304707180758081345763657365335782842108129168806685780850703446357506033557684295360087103076084870849970438597303700091847677587922939942802253883544050215747457673653090356056019826864026060964194270819463654686633289452429767288755459360522979586675869021876117125175693838526262976598164110277790390042867042406495049497594203439776818354770608475679961899293601955952630262640305243812075488313516519451732118544790051550448464326871953245902220386025516555549927184265822833550765401460260124458444709392553691999182009820316834387860867655881751223987381635948764357279847040087049320679218087693839175752239500768254027411747655579825592851307620167736838663412074717088808243865733575777287341079974980536180458264652722383919932642329896115405728535243056411560386756129411208816346786661464313739457261341123143659533443128140551186098062899463687367900743498935420995804907863040100175925232851827040332201575933091767293527974455151026864728595444765047033603691832144623833667403491545091356390624055658324200051828124056287976749029555649279898770309592278285192903038005608037577331211838535824192604243222353809225353595778728786465876660344266381863296561023811775346124073194573270366619406226442447723957199211805450394703011397687175901371437524733670502990096982800024759559866278656817790972562636014390525013417387956323176510678358483281769513923934731102876179153088723748812205496126175627511092054311125603891803399763153402461787094183294732214152614009372361546401026838192686199665459826246350426792878092183393857546476805070999244645312158496803872657614616805633369378976910832310058812920582222301297709822431249652288850730383892403544310782839593272734432058494174095019116576167652995934388019084303519910183221681946163233128362468693352758702779949483163302220940952786683205947451788336415019620815505334681070784774997814386528737141980640196305307810758409760159529130728168742691209869649225705751256846803725926651749134012906567566840269871458308506129933909789406067228016865677537258746601574723811798593219133639776571467336734375973642413293777421776917987717499098339248439318235967974950428006306388983258851028446167747680305792978567935041336364322790121651030881200711815109939206222393955793918775074135180275723352114450426178601802940572907681157731227290880745728343290747824111225237709525474769962372150247077223857071621237139813379037144641256153538538469929787195646629287087620931252061872557346176454396658846532129918753348585335206692577959989779634101286719094283609231746471383621099251841681401440235488043842315818494621967273004020025908862363817034019497187675884120508453464016574947404360007157512371719842548914123287499780859077270924918463743453561126701948969191720964682724335421164258720875395763632860213903625289023342983380549096235373265927173590615414833095135775268897610516620877206949811143060899057350306197533545941911222796114579955008602322380985985554657192409955128881890693697912657263093556164745885101043139700917084688395893503401312262487087838386971152917765402983730694985294278444668464712875971246030694311620020671549028679150116714842765769485035209025793371835702481328103777374725861711508281630282692563788770849600704089448421004692561815953433830420354683319322598667304669181483670504818872223480623625850085697065950471995565048991229050680477910422086847168026616593301900118330462798859947537494233968092341350249487282304575307883812018128141857831392689635317767992779631455087870355966562573143991366902795611632728404901612645587044784443100037479619853786868617183859089969480928758860051634160699056408499307691223646180565259154082558998459739031056103540769382299388177979748926011430188427600998670746842556603915451588859726090373121590585420971807607456909398384543322100455739697716934218208109989508458492385944740850164374511977631085363362339388026381787780918351013336950162739729544805622737725336942259406753934155073111033006890983106859918429944646630893338806024127961929542972557808793124212462166245239698185157195235939059268911640971331703286628368350142765919891681143051030642795073174531430430632427173032723133381883337179049120276657143555746025052738361946068253717972631469486199744785523349322060461358269838041873950582532205391228641672544022695172862347478910384066433343244485069710254121609231130806100001839300968605380505776050727951002623334572240189280705812243156668702281063385917639720321893138423042928908167801916815481244107209126062538947421379064521046814320829517296860935572308670980349381014588411184783276433560337822228434080068535532108078007212890472917281996163980617018225854217828770810720478616056909312881734628369955414579999015757261683389957733498575844866183029077447035207304774931127188695682477560570552768966298228316967429347069276900798541974319150517004326992333502400013514341724552528703582142190261467130569688635826166158440119360510540916528394926102434539224890739663145767889798698649286020186323901139270990796381331384661892363129956982693422381723027149348386976769029958030193012568772886323579941990214439908873102714861331641666173559194311492951872588324679105558876812041649840345222366406106560839140860561588366499106856197608874153199356580053343980460943029379050638033241975007103575064426726552252132192915440415635635323212060423136367156921159854156021247548903560157872494262290931620263724696661446942777887019378427902760403192063761974918385352685211367476410566456857664578846644718741304707745213669082926888665178442216718036588648075074569589847744053015554020125089091014419967297101824146808084296903984786319205535722835347807821050163265772079018731491085739119729934296937878229634992704690133078523168506536532423439510837463533422820415206603427412492363724943032624284804370344570420353729940506248955919071613245805843865685022513240275588605438035668632810473597030250837282213023934421244738111142105208932434084004780303387324582517887190381312434211948435479177061711247685636596648355001088226838591431955049928613617879095627759274316412003743227573314654444834836507174961476754378378000730499796082637979630729779283768920240298530236058333200676274056317335920813307837153186200661153456117538227023017541973455128025511367061788907454527332398610723966068998272840674617995693309578684028871202142936601191393224406515538711871813782382324946326972435762717115279547895433958026646725729316741732017976159655392278607449220659480495936690054848237661685598139169260095096569771597615688470270339856632738080432119228526935897830240692881856201199966523257016168124250378522902792175009917526594213112267810364192737012102077660559087910196287500987743862747636885457410529811177293121255622181863419963047915707399974945288988778630409003044017019609678623001108131442482990216208448701379725382894990330366276067280774892886336562408307903033823107998793479343970685086718367191231079046095190182983410304236392554747210193828548245695882176198893261055536315491673893310261386146156094227155785656486071700964836357834468956117841947146541770987094336624797359113456306920412216908637541335245796112025382123878557551629569593918287956336027527985657547202046913425886191464267304071200456353898978881755792949420621404502027229719683094871010226252164863769801246664090813777864935962738355896949389777293505924253738557063688710217323337457927467957537723354315129247534911519501663365839605767149035590924926928065145340407031659697567738839242929840661258216595545110500610801557636442826499068122496954175626149900132896093324540757319551000436148037602842203054267581826891187024889424802796089481848981401388637004183462140253002356972298776937653938349454869526479634944514328509963958713042676171818240809681205245012786737548400406402185670320904868444771575612463657158619609442632744328096400388946828832927085237958204189970021069086429431467831992916479345367321827999826025893469271589123331751667992296493253482448472313166915734605471651719145983220790976785580715187223495883356956164712752569086708673693292177438342770840565068012924805761448289957503588582059314836551643691441212896977774495369175989826036686976671740928959263550283486094719045949121678320768776523161164688698121118712357679555615520274591082938926382841435712029966264793028796024117884096853538127140781184123690234901622755165951585922441408785204035153133143835408580018632064399265009131413255994772186660985792098255940787285750192531563222760184955578324314066564221113618283044654027746641665125988834258248938328295016407963516779442943849505656037094597000438378818605082438633355052146839500695090514596184376577340476829358643979233820443138213540098297567257876363546335978410023713529657779049228807387834150430783229367323008058651110023986420408731564501900544405702640757502519917459682725057913440285751756143473614669844588943201089455988749711987856747813097683579233752257711274805150799172126049121407030501668956015921616716426925522616978628435426539092709353586400045323805416325266074069677760876698299284055422525902772361553114535065917533426164173671483511849067376324085296531672029288275616699525652578214839557784361034120347342113876663899458148303838446365118746418543165679024746574536494704954760829440752471163142379098251623464054060081522046946115261038486501430180661497693325997981675732865061503542654217601568594451164361599117839206715977319288039424907731025503106825271577797495905578922412843661039675342555759994232591365076591872719707031486226121204835848968791994656111852777142069047783906305183918927699311580233268305195724550125964387811700358160546817393050754642271537484408975080192582835724993258066242810082021592859025363066493278235519447039764891746555166808882004196948833015838562967096155258868536432686591633069922547053756556898811570551070149226055278521965556309618322046272371628126275934078483368898119254051900053753869831256138972951136343022015124064132980093555335365752249659623916561939612928521434563145695803582248066039820208171262559246133899919259312820777263711209143703193841348031080976516777271167848288971308572272030907337276643435372306667401330851624024247810149924773510895175082745266022612267298555912325714829243925004055205966343881818463626021583517946682523888667131381386984449059292878700602202381658288967507604895788974482418266090091435356682877731359295489294666640531280696805093029452816385854453036409505141643201681838940005144577490829122149941869275334048138855451966061240384863015311458549283925236066397210999977288146136787731914311907715399987208033717274772360253252552794949372869031458643284517288753421719266685916434973878293918219470356915635197993500698528926461364203280272906967243689881970236397594320757278894879143250724939271032873668192729791140703493062509005523264858989081559541910851686379899325850395656659358378766206579509477574480610235715207108766789775603783148261799390802244256651435603315844194975638484062159322992338808616112507839237264202772791477206176617626308201146166555025019063871938113783232772896745961528369750385892549255487421298575634767032192307594005638939848532794870230743168354530825571044978007508499248017706113190087519725199446854742910582498990098385585665551528695035461060841553785564866260295001634962148963243468638092492594564999581198184138796942520864597649574537105655850510200535033790256526047666328730090886732782907622508191547869434754854906833477473206338466270059917584840603766706606529331180573551607281459563382342841977776844825071262397213412769730451732736965305878583223155863955553075383702657152064137161434337923421937415926142278233612713932352266112670131444458994447260710578728636623787476739462702601936012182417560064835967706371460291685393138852859095806313779793643639187210591058338664224068083863423977846978882022623364575170989411148485140272671639407610475698933972536370276315267453981593922255975114210909112839422219674081500440400257157789279932868820894616390472614383153593642699872051991323098032685299343068169668075645659581699180434927052404030148181466760042352663518974194689642564046806815692041152692770839154430841795620616456206797492507072177619929843475790315062828306772323254926679188898776933377843006782494245462390489469657139805467956856242847681823718826104858841323456701466450663499038341268333687504846677203663743932490076307793849184004919823202316959063036913983155468983090062341093965185105054232113164153587363561390366576544909713613723029571772455418715727727726352283745650524981223310226212019488634222783704788739519585845253062531042171907910623987426615438497236381868255349955252601868941242566643784486209083605629006704285607886907977384887203358886579086697733905555587361923294540971046494829440728941294542706122464057633154845829853138477636869320887157915705777206390207950717949736708621718350659046134343013501930940982287810293052854640360758971627437761587135608528770139697221852020672789490639687795446493239059436500497752946900951207081217571093566444231175919277635995236635595840498483745492331658154786436180171491647669657392737448385192102720889839575979823596271213384265967284542684031146940721872400788396637997212047134435867017381856586497625539186291501140586218674152034223927069935323631454365665221396837678810137051535398640141428318930277031477266854794092462157217319172665402885467846746737480937978137115153702766105061725942006865735697906797508732340117497877124772177246406460506588017670496865296348598614893119290641177637671166400229524545566950962217160667060222567524454166504451019986969727428507282433485069379724428534088966360304905487575921243622149761688905245543574058566837193804762158058389699313987252466634365802369385711556103365620510172914415794672395903684904630542757867799270550547998328290106711096336166209721652772215863839678108848405654373496581497340217785616371127265690042895858714461897033685326493942055008273593005538003846168128863215370999255989682115540121390825453400760985675087154879822280641458145226521831091520715237347231380144322430870674156664320271099848451986189358089254206348399725347485537229589512171895937413529220445366971413854586012191803557607134035581296336270075015907852095176406745558497115461290026657636147932638557171046372016010691341923463322643460859913383750618626411438998837513993428597666529154489485489056654025028825910676275546771664653317459395314591402466594675586775167733002191755477313709026209971371117138589749650860253749448877459756668847457780220591011121681208527405126855892593624277271465301555911543144212905733901053191348389738144756490045164785921752006959139535827408694281408469476464185565764228841484370156731340459747329348195176035846445378652078742296743959681428461167110278174493964303596621546940467102076408990192216826495170393063124704655081523013459577037733133899473991552590122035993677505024880390362238159836827648721698372329562792531107699975889579304976683502988098548459046309673044285338473616643964345943875042830944675530713474121945722288412476898531594885602568100847090839581758964343278461213577074939147988378426469412733439650551757064865346383477437879541118222845137192783847066069749405991514171178479002536038309878340979572965013366554817760550026685833187255324531921047289292531882005955715879017143227661366263047185601555555370570903696289971752863154826929826593922986333653849784629800089467524342661570391997382110098523742724941044119126365848260023459946644724154297385547050048318151311795288807992860526728828332437601639654507139480073382726374003376614316629803560112996746422844008048422555432129453733866330897860151715911549164338126529292943402987558439966928203240001379149155357959564314159012559678694031947623055518106257217984319318249538227268762754599615787101801564329351609623370652456119367722833163529223163743563641159952823592211104446704764908722256493409807143639092037844060059343792219266083008395709872780612885482317297446554743181946297653762398635784098512711087201287100893797345336410547461278380659982060363610568604894513734958984766073658285710398878497112693155599124806524855490815752609774036053903607422354354906029029150310881579225475367116346397665474719577685511822094483736042429823687050624438608447014251846650885332593562444335570115503815099019315146535828330697701976717836764925075035583422973920325475801078234988122972174804305435682129887175395629236490743798376616437452664230108481553562285064964165341528052820115845107601488738606377595905576743259195837566731235311935164662789682942169675712124542248613422457452817424445009942320153725391011259116711307636223986644457120147017412328827181351502905350353730348318035454755573577083288104120886279005367741958003066665239624622127540423400890211258223133151019441909017589997652396114952667020403726921601380103314518506427298066308978749476492864323180663003499153353633500775976506999682175131900326765026558739512107531011254311225512230338169141600174280950423963252166934257941848053638962549420693827095341515672711820186331847057437321747885065786246888128062919902015447678891106158031708840773001560095023145795797715640830878428473126367701332803711830323022003293047832381104314110260302465416967613262038967679574530599438453311212193236903208982405708913501636528158689614279052675513529304389563178300006840497300017881501542923655142843596145909659265068369943585878802609697698644637035787998495597342321828368697838861040465169906202905759406736551151342101208998980636688090516608341846913706730214667470434388186891203470407310370864576466360240243477949992026502374948888332613132905669285329941899343525614460719345125827609790881175576086097433027198630502806461885283263024760352913736136165575089779816723095832448195871046793983558803765165854354912065001280925130174996346987307137077264267833915678561438478087834784113195552159181924023680964597793006126781031472641490542058130530570608299077964451704010759251620674304919102598436005363626881978159870182270550440733930652817712592645999325985403692179244424038479286876412394128955549502165667582242417341085511757792916238845651001007418926532303145381663864223807195997294556729626877614696303777912683894618152340108778009119721371648497862083095789477573318832579718995776070686505096219271665783630562347437699692788196256914691733495332648167840220940043827089206289576952067020285199491146702861614715029298629859863670544730091908028677080020501322021969461892713517106234863803530189932151947838226362576863954816740037690964040007882582686232643533643325806841089642828560491764401149545771805477353689545845260118574095427557406882058132211226150412732360865299027497366162637165106805715643960886402442057822042886763719960583281464667727252268791462975446602488819298387299168525579394805010975166608733103815945318365891074909078503222975575348236258367705689217672915285782590267706372562862703163051562594094974641652845811466192478243039212044427267509010015996663264004167937309205733752370327357241045866351287540092410493357818006674098781255946382588413818955635924584355766016547785273387574330243153349763678263092368649202912014896076501176499897557681250059953385021619926791454178978310803272210263021095643865754788076286659896196333526822281239495164931123648582553579865451782945943833616243988894117141182703224735743938156291200207960240299835266526268633158025412122906597167202499855456856654342883713307519318904636668219807610579176217218280083190649993600855475509941182217546087735603150873869674578230624097992638046949885569997704517262770093727987440944818499447638943522051412425257009521738938660584873855832085497004138626620975993830718886131529711436370975164994928666527615631421115651573987147520599819443190851510062917549568974297194585636456545405054496083197634205579059940461420999382570389539140523236316930236898058282782758710625073975041029642755878596559147517803227826656573967587200385304835419199446590690996581462680068422674845116966539898191014352873059340817524349361992423032827953003701560045174391473214315929006002231575649423042554522678928053502945811444737963061158807539970986239013329469967676166782949234883594675778796418808370876287029564323938294919023690158772645000058105041010995081764222234525983706973565965078167078055418439438044290995563823297751285266508418019766021119810702135714860150051841097757250049494280352579686662557060631586729055121175373837648212013303834960136260605579560428770642437257032312773280246897802641062187332992812211491464582633509016926089596501859674506259358628064759999836140129626988971204035308760548214907118368942915237396451906046629998873153645475782676338493586551568288152732781560850368386896009752059747101497421228435120700924225920393331821472925383621676566627596774240349550571748549907213478682967264502111770693592759785149020995375600551115097508506914995251205145439254300148072563321700722122953250329640216426871658163782351280371890249712331120181024329645403661204024040909650242291391163684072511472221933812350396145022522331917664640671296092907302191976274511339914270481736861846771973787005604273726979826467176962104189723268030280565033777983461646522341022162943749189141230415902620179482996710155506497584404983653655872257141060650515144547594888248471368891087135496147635307842992322037445903418509955784776128690484805890895948285129021990327623059046977188650850186335111742858845877032993695941540403230724683992622131467769390040655671042287388623788895867079687113221147941487687686395974796414965129581068726991901068036059862558995608852415487151076042277326574391779690300991634416791746059951184844132682943396385457315552268620356471726491953485802763757257821786615687031783620123677757632910314025211961071564994293783528034496161127327594746086226492323458890382433785222142068686263293262961577442871020765818694301519138312626512289492613558326529124704846886230361795312280771555198413998352637694189423101510871848779944713812365021933566073464396765724348122748735255616391997858610505512680683429319322819502620266140027168463349002174456828760893020209129607037890511098128741415909654052167772417157443569794991393784809771269862536650941136468564382335677039538664772186421471849677607319896978298696785148973728030415168050771507231482582850716999558624251906194768409198396177017713499355985429643305574489054066785377298614944692469178963420165902941519664093046257781201805724336801776461982129803671462947159825578615785941433236400880560984727044523634066692168703314213517505423255658230929796785111592113446781304594439540058547665768826913808350133003249172455574173559831264985829582399601131939287165308257724577448203116000861076388427104733821386275601829974393827781979325895905256647519032190122013741525511700394958424140187091764021814518442876127885884009530079826178106728381188690444857073506600123860808204298371824005950292287950117278120152261290645002884805915390045076233962906432090761234148708336719363377351142532521636268792051911130179061433914626282612857173883497418342196286091152705451314970363349126175833218332064889298103044784848787190014185834437236706940078811499218149467537075294719126910463235015234424713340011205547110223208928932846573754666988344524951258214673466032182581285922595981277142878670222007917155188298572110387591338455697755293766762438826056751236522439060920918963770972803059183775593899817528423645680397968988846669780613540320183737170038944532981564813700484547089995230114252063696302867307836653905248568843552391602514963596507645586402278154727952377013875506213310910348041551694628428937117675447582498477808631909690274312499845142773272517576638262382232505347725618152115387509712818395872240393587287653425938692141325339006422688477335535053166516172030197038800825995429224919078732328036035246722627438185236454730571920766048927183793984408959671320208600987406159779022058530969778432045151862592046914677649772757285965128858195329774833475179373374709388436346053490291085575430679364293868916767301048066693988906069795582408340861615077917905611496043386816627917026849825212321029869039579874847612503711658667903352329315943200015003954293161356268185463410781167966285204450096426960094881049473458663671674891488083930885119182379090702405238793005177347665447034696166885228299184412659791357690618315888052469703509431470468666263674602744905114710025452890952152120643865185421143569955383939397956545304281413504787851152647989159445716586384684884598600349970848992861184945360703868360950210132866444406757057908341711688652945508882972851841920687541256095559611667192121128559334352238176945294595657772195487351252601362653523041681797238358158491722384716099456158449045112389542785536998674246256604524177277509399898488345728096704949309377976697380909530058254981721610161546166961109337814494544982989408690780745872409426700803457496055703218337566391655364122144571856178977989953942633070367220089369917183317917309751003229895185909733184974682915465101589993435359493152908538722505585578566675136628513745135638465148770081112972612513957285045855959226700214317146512714323551209658303079669205936342935014651374453269710835250256667950492337633895767660537275404303022553429841548892021910627800116507968196512218923772354594194808419484373823230249953937060963028231396265786251422385159418885973136315625636439550449262829571506801793812631159820835169794394368914818537427824925005426188221695210133845319155677091333808636201192862046964526565389879802259904794706276563554417016073419345395108202361065025146561106625382337550865305872462160236793206651507471239757538797997198773245071260662901551180471607967561643303526519185414953652222976778407139357295590900611318555757420055905017416633884905617010290675286898462875586326255036714338020980327050316226732450033561872657061175756873333491249800164201962132602127567036926923768756473431159640654110740476715768056989202389136405907988093244206335352712817244563144751206180433964240673753420042684692157524693942637909804687510732015327198132100585010630835962726410037422907569269039276104086895968751780066111038245317201183191849131136115833498523804870768917001655384883413879756250505417237526139576873712449299728315366953688526018358093852134494380746649059944130207114000381454574746319506689925748668562091337358209529024977311921357792706387099301959731422113385730280303166955130975807601829201159726003165302759017088292155106412337162673244697151922052763469507426320275755543594287831129181561048770226387968406268779776676731540882275350991726869821330207386678173121103713060064881569042669068044054906000065789982503779906285058815507990158335662800306723779977629669364383264858106540045656560356354505998413496069421690070946893211707634436235076077012264431348472908890112774511411387449919912004613652039907745109579080715425168110225293974838250096195168436722035345293636665260579675738556172360179968133067660412692006362307372282289315574194053180657925444199554031197362337502227181426350578569697553598568327024833869014009463717364910146537471543048246847906528161045607706602991727003296651633078709903643923532778687251606823246678020117732217849426596152723670956909857366769345754939646431967621740253794536431992693332509030277271544145979361437326304438555357850461735345489910891756417134208553000106967905611103665460158026745450352094865583404326831277244254364325198777207433624152678986393979230659442989737281827832462987888837487683097021115544445735787835453920513715418954385260144241148713537376903115336326771531337033888571256236426031207425919326074895544358706815182038355959130826074649823936557199188317862340585797195329068505188378101021124855638785995802181501775671359340145913980553924413230884894053450123446594211812862178134958746158424893690644805307498533780065352001908656018055009805595130315137878723785929235087656607813147356751914486383630800170312783392036998380549706358739364811991309964637910238666952406311295906815083126493516735547622336176442016237155711812477506134749242235894446251289590817022406662627320751059350485322398825434788348509333590387002189127229547281596876806031035299910573113157970309841079270366112231047803388228343431632945908277400598906996410552792070305032219505669872245095516510764544908793983049144558346138198788236952945225690417438796149366099789463753415151561222465338880733979682387939223025283547551153524396773248160903213140721377250695071477803421139248430643381988547198946034436282217714370783580682478797873722638801302118607338314703800891356951083357384067757657807726209247066516504347344409962272941703294639024399997226594575191856005219923141153977478630678871063780292432425047977718333970354194377903348806521901301686718887046207378051710189492817400706649839293947136065482034319302651722581443183097150484620018159877543103062412746987175743111839817997770512743365234828230588566957928631644951980463229565607061177164982698152867251869209956130450539563510853464273829279201220673764014281146364922726256052131169638032218867462007026347586505342903052640069928837682992065082685471247428258177652460387838738967671287469607503686158283871497305093641688070868121961877584895244018793501846762120157213404737102238105556286234115021997361348954503437921791854676209193450656172710190761775111234062931126868779833251821562571119860514871635112287745657749287299949747817726484919734084430721242143693117560018799297434176903290235510816604910007189457576162022921206704146106353943054253848154314349361488192253567774566168823104463630535624262446045019786264276722997798477212319845798160114491101602856318896052207250060734513165999281571092145392586932949691881892102115077728760457183421089846179795232783716807695624412184052112210407615131505229846941459448381644532916578799709119634331591955267224906507852370693679318641860460716895545419256170644022161941521527354919991035943903579595517423348716972814811989820793642846734782806052671162976443698349589714146927088741237771769944722071909600216629445784336969426517547534160163487021363774961114259152140298520081268201332599261560508854640104254970639058011138690118412423790866345567737046312529301377590400073165498458035440945974415694848363376746940262730831286233256884785883542130725116780532500330083821481158440733286702728360043124362242632465459132349106190279886815437725549522175194560092873811514278117382923800751623959299452167353014629099361306468266486912416677257204331841828191662690842143547229648912930889586709341158101009308709811346151978688870943801338165434019108764365221535248208233060564619216308805499439610127146864808894525833094461618312553400622593160059502501038671884151233551522981423618504266519109081560385535694238746077242615186658712242605095790658141408060828130942236109008496509650967843932008983306704158800245724653861362371390447724505180315628574945768434700847856126463778871410741117996483385304241422414247168756292877137099351826974940078545776585704525869710216821793207140819854774431931057878888758437345874075053153483893487950317350708296289296852538134399955781509994729475563881138529278553460357552460891436981211463053715268305840637925381817949577356110015698983100566297286627036584401079676338906155978946364054302704577506498022087504642714214518133996501560307658332221688974379442874899885321748379675444441702416489930422468886264689833471121833489016226666666659515657854455659922075693282414058030965709837789429657266149187000055193932882444074326036417021374270853050120820944137075555033211187150543638664486762651733183203698782105815568297693546111706646452959359035234124024756700126921430223793342055423701690979038508768180083733875930235822609853788304669934077580078629201267066393067078052830110788861948973646245064480958247847977605505085276465375229160319003987412865164194885146955601040300760504626437235166414700345257595196076798911708792642913289808750464789770153055143701413193798391970931102885751359298249047745669695862093453101555101128049406854697685924896334993627969731404794903475549155701242968308563591010691453650961759218107891348650117669904341400022769221158672110656034568366178911012633638006012657539140332920262019814648727354785683712507087182660004800836514230128076406534821550106906345092620252502579564280557736909787731665334655498755314551078055324229788075007844918790184762750079088415942229387282846780292939309053163053290383078787110515842704292927472579275908534775339086895662286850678083668036355227143915197474603970789784885565232253170686997591881844341473413416647741994765864707877673505136513901545316160626276632692962009285277511746737849864871331174930776225451506754925253170917710949745134873742704777300774779077046400326947466319635617785808851021637280216097084348349461203930899364402738765800400056888792496190466808914140845666749883855466234756165787587025850145081120004535495797383503454423060393142191099822727748979286185984907582502154557033860385242894115581440532048378702697835963500563315470830968995112603988146356372174487687042773206141495643211474240906780005896262106561027164100506606813154484547053499965553347556489454046160815496186654156782760205493692848116466088283164991487498171339898906131843518786456725359590148953004664857429160812110355544225290664843725774574182459050331716488493449003264041444867106108559893401021823881119646317503506959637393711883741543675033021014563574578975156425129786812409964283309175605988933194192490634072337551877986643996177858900264850669891322115426395916324350098383365382503123600361313342836443788056276296152073305330945498356124058216360692655516578265589915872962115810296623130065374446712443023914092343941751311136365517039391731328904743563858996048270466529539825396819892631628700543401082242775821080801728646667673730219518757008013665397197869311328864198479622607780029762201767073039478293866988581943784897156965064806905375776927602085691173891745624531598028501180591581056930160495752792427085619041960251291819331604596799873493069221489176244718873514411003742598407050650183721083722498136362203902194556321179951660701567419503697048058237865753116803063620051338274548585107985669312565541477369600890886078388420928961284590703561816080328995156470459202015128041946064528519817087805186340271219911434501467812343713245598172050554811071765702041589421571771870921285988680148781523086385921191092370735372330231329139008777190650835175951629633787740907732714392944913696361703556955115465271280359489920614284806729066754535932174916307816788306928933402899108569995725757285569967437013703760580810314916343302920203504593307749904177606251148377437369594647224773052022733053811950408000869716977773315049488761132324142973820624960993620801280424520749100743420034413593869291706950164591226286257915041351556991356027163531357484991507269736145801916754944446619704732761899142507148114914529502722036479743224636491380149991415728149463137856381612199098141614421189907954223013869254355952113138136274982051945054105077699246047369198454935745904054941890887514218051095455615859705794618933714169919826269296737418929918144449217213650568353290002129527191967510159015239370724513925517351862834926267871615642501377186392175603077115879239406597462201276933254476786663795217151059338685800613503871521239372949950993977819590798453117734591283544068960608782769997698214376109726601281809191727136071068001152151407454703994696696684693426191813029968699606148911910287096879629944991335245950960022050175396683716489106387820662749737997190778280877117861033004925624080010856220638174736697248796415823081859997207697316531334566691565326789093018081889336869616209843910916581308854907863426384290052912683718105542275329974233034500100981307773971091992959491952808997824635745804820423407989958287049664730353141755024536436288561503231921897023588925757796181966713566276202622314172796624001381767401939397821500578604207880806979851795702465990536842387517811082539301516524146547246874259264526619520863545947916438784718603949982368429746895177986275808877048173902930334073863943431095879309786103223250867688377676065869131080276719536310488468150210500753378683296707177646248621516002462691714466815014723542293247944561028705975151233207468585664945517277383626174426743554721299366119543017365201715598781578561616222122016164921625237325912936429028602603180619231894213915080337022148166986694313976162536936432530031604258642245387197445704792178786696991415773054573095937434291541647399380636614142862741910789757610226029919280622790182426612980495827336833449903917367210359020975222115398480792821237159230206352247132507016535610992948556123130012106846846780563848394673741710910654236616493209122190673784588254407038433314735534144474620342870009558457605125796430828916686172581669814660929948895707930342917934620253408941650815163658310831921873385832550668831147334291189844254202360398197576827890621864123572553982207098260390782347337442328061556136819421658643277021773737990132645280987642797184014543477448541795226885504120463049470725208022240246242831351826247576098993797255828445247033790007172149486677165774246684836143378519602012904914117792067954185048049765905991524358878976140143630288296942623330882827265010375784693434301120825736420379437595954582937259072970862098023850723212881660535665362319384032894047664607487300882756096441610741302093937221562417261899261855149284555362142801649856616602899580786587108027970137701870946871368350543059894515943475983964821254455897437848222199623870217763437666547842000867499927193230236985707183108029354177263632406642824599499553682220007625563744436988135299778351143286947301552379505994377835110280028277700909534961219475362893728630805521367113157369016579282780459838791075785510369695349688411147743978390506954722934751018605276284869362140667060648984623761017889043854762741586712421187927893161566501212431056880676271146462083992155990368245236974550247522711757694987046032364834404587088049379520489113718381429201300791500862541810392838765800046246620267970399928586724054559246959052919861303332404578168761736087038235978777207439439398667781750988705535518685979464826055894422391384119790506569748052191997764542106263210530505872044939046644075784722522893320845784201510301761064043353906133162113168163199886859346120144609981264031939373377532130854520957406124891186296337390821934351819556335298753832197507854594204608584523864082350059286316132981076735177041026559652518260884206369204464196637319056854950714724333279718804127628221567085161808526174793642197450987091410461058957894346588912505479910022003820082212431582853582564802342129377645596898826387176836773025071543189162516220188803520132930266314053869221672839285749584085024151775149155200009264644152754986370571363901667369855086394562902714191447765935335370566964414961260715913078935272744859491889085126130852143542307242690515798912420153057181986600393308485738965757336308230898861769045817834264575063594323423223956726052753857346673569718836418993740846743905414546405995273868321177410048905089775634995190747288091698923805100881516273766076861905690175980309683094171414945133016071711684354562473914145405973641708330705572897342142405372102889868472571053289140852934230225515459942079893643273067455345683189914674840415011805485082664318162638143322989339116176481318496096852248523175409158430883919756995688418494507992162488437702550225234689203126123186309462163496225565160392384349688364848777648220151934827641020210330789439312940673967938829108130525736383401024269874413714477956542552140110945006895883478351050768311387449061964881177566923302183337151281302213927218243221953407089963463977917817768085418851950833538579242224375212831760431612819751654624260010286383107950212344695114125609055222889251038438459632799064353824554438959412756159477021786523787161444118226386193810968340085548516362632578316737564940366278717945886618563696384489449332722768930752671824609020549429395621763275106833430043332430232567229871311821661297631470940174441820453568291803302253844963616429223527179731435121078664130752006344095131179874693784525185773273307786653278576883749248489412711361423185007874120413924005334916732147233056622340932280106660140679391980775136434125302593232342319116967050804518531442353461858753864924799607827339062087539420470664380540342081198719996596435334605704365534810750508849884806388794113604575163042775320810420701972140314380659675426554084364994478492731391744063869585294876636444692957592163882312917655761872127201518895624489544000517466133558094999104583586077181803646039388080722473253083015719014729889798304056355816740691410263442501281860945743814531513672997354807095058026836227098174557986787687806195378084088209334382905923114041560945770143575512420302756631599591435798778153402634715315742395371940234197753713224878486344087452109947757643949197082653564875532588789170771179861859739775987198615840504820605651012314449582355809916246709756500884899609051358811239874646256574323611420708303525287378689831701868152592877330301424456878066799866225280476701713197760720757457932338870788411447320475461343996355379535410598809837085882784041536448259732029813343067688309965047915128561593669456984198658657030591278255297406062204913288293062250565097235568222167723644503584448397800667924109782713537040867036173765943400022143556830401138823961285534849835356845337759511684942879371473463965590883336945223284306931348841687847321006066109686838809788572189674982996762626129188978968673657644823050727011323337568003074842588471118536556125581832465743515270353631301808274095969412847106463503196566405273060381765917318123341498631873463146045809000690847062228817917797627099449266793243944790672866562021636446477482230820808665010178645757291669136195544877156025659974503850194926741481804460190048094037707447020192014182596270287586972446358262544189714947812333270844546528002904902503428652771319144006884911566546073799031509629315738750540220665650663972774146986085294844674167176421647406806582258065619498846718521321410230838215546915822406097350008571021026561015975007676218586000862678068508343475348913010246590338250133514070151658193904243395857652352944472805311321891113722563497823317121455959702070070636768458809222241695806217512967450695770879604731278675929430418762678205247309606391422807630010166791599019923052225409389796478040636937160951695682584130302274930593814406719472387648098024067681737972500400680561808146757103679953369974579515793289471270804943942526540625570037622725664085900508060018444682246303605934466904198534600420433961627757737896546573740079236098967011005132638229184465629012917743088880073206474221225624123366874152276309423395579334926202766947908124481843017534058728650033025701583418414407822557501121784758361743343846396943701956290780638680471914258104395139233632936699444777685057268620902865277536086575700868316573323633255751442111321107474222435526024480183713559987616957443721118782208973146397028536480115808828070536929309514192278174533796279264893601301679935516783947755357002178293670122325809061257516028871881861133736247728416775919937390165895151952381591688142136084094792462121616968360969995783463135134444164079842076632801362994161688263083419050378001247716867275653422266273826045472094490290472334393855723697595560969541639348351735022133117928148678100792587449560090449592557660453821340870188975036166028702110604701660252937769011427146069000413418769026933176451516663899432063025298178269205021941527236919484486145732196341228645518365758809043945536964493299319314451185545048098528001524367237885381486807936386220929421168120558966304572159701294625805103164235042576357525023395499338402563717382684461791641796655464550906070177750801876515083479656199735872343096714827386715268032650838559188375418693853269225783597161499811267929846078308833552949889719594738197189546301638207148666084161379816873387028449329098378789883757402479913624061146757584078724707098063303819046149231140198088393789796596764454362274557435815944885315941590947346889573682945561939077568260733051047072082259970352463159032746634214453400652402216575455013905652618935338296366743161183347049229966276804510312436325942772582473934692498536943994985585046481438514044576051460064025225587460274560726752432938598614817556045313011570357241599700566936210304101068030084575647713508835788384250492740296290134793901926037638543197318219070875746037010531019175091727690170365455222844761870273529984541840121968073121163484405465170767941021517848771496085275135908152401569404324996315564550547747194592705970122673272826046448668087763801627329877446314698673771463764351224574226732747796501224201678728495131370388181671414603676187843802980980508187901091333037187243682612780407915347608587979492944043138110706674703660232587522967354839584501056901616902335572260245420332129391394323341110109944575224768436836796025141560891142131412641501376515332515175025279710503069002590107393804004389790455717068602966039720511388367086165561938812970919139294863004917654208924519144749300518591005700224785333128448777162729517964516956345893318691136251641975082586398524966653065433916041442500732944021181272035814551583036615818320929624507170350996691411718680941636364436618359160930380184611318778020968112696788116852642472676858067123372538401177257771433998199923510438188146502664575715689064130403927890332766919539827196223661551673792119502122623559070632583702605224408289262515522732899049934679037900178623445962501184339560968453272142647483058711419558853748055636098308323585100563359308989050113130391245301203118180804889287856299226322174743259125575739979597419403353213033042181155993011294660199890597404010353021629140484153242775872541330323639396447866413243426618117551631184945063319522129124235754857058759852598740826284282998977395123590205583339314899535615119356356587576127731389535565538237937482462183863966069430099097381513787110021157830902235944070282635373476212378826019726672219693241974881419549145711060309592737829164662571646978378380591376676717408005476587123605909811186286518760272411837722840944920667403694308674221219373756479742185205409226276643576213245202998008643557285666204929354930484776954603386876435913072772485997125544374794813690471480164152328736463954071962957693540744568674757668054160602313801372240458153119310550766082520566815225841864087657910423878323602011584379095300934114577245708207607538985536459556144715164991284743116307110302872318554502190041443485272925517190525442991023395056617916379125125675132263933415821164528387903202142498522979031554459510840531849301762951391998069987166593995995819370038694656160072753676332455376369655927672328256306673013973372283388896686172635989193844218202352562183583224213196528187477183208761026804444420274581870009252564555881766444716333086478258180949892852726913031174161946437177784058693940069193697773179205679736048874375185043904212983330102486201732208340397254861916205833541267433255224017706376997648695433791493463359132034648167025975494954402950747407451313610489598404868811189988753977972919934632235641255271206613009375067611980958113453171277304430968656740005579011702207659125593367551790845106038076389101427126421487063147372329564532127118064254894655009104905247194169908651000127713960812067707827641218704205541552939730276566456352861937056201751021566013948444052722486720322535770144935400598197888305314980152763212424615457431652004564650946638790539872301267464791391068031971467895031302823186191083620323532356740384712315329092868320580422072830489938013573439094521417473382046291417039564004265649471180259869857115418777034358773020289007196342522852361615356893565289348084809764747802455982823231496896783571631792083924544710841809454308162996370675797158938676797857903986323473240098777935075411628291247555907186220854056762435656523826513302672317228359220916898310404260724505114443576976599895615861663944154271480081313947929057440803338341761731609493917904804912965694829655628926259834990367695706832218583547369795540716468680992811737663128705648680225248061607757650599847461495377693149049228154120138107090256760337290015131015871818813301026927712678288456287455956894092435133469936950199304738614980637558303311530218801697298698958955249224167344277339649626861470703798510579341364461570808394751028134957280139771656896458561369942086680858753822906117931142932437901842194311317226187213660090984763528733952729749698895266996902889349777663831373527216975119143666135044803292900352846520192791661703020480628906525909180729461142723043769681395628846016840702024988809015645340820796578941110627064553860180062937471713286693297941455663037694793865494049773292753919368501216502027014859522453383574164717032474152752961198271187602021339300448225777360491653999949093181642038735842196764576934715604206331049829563234229125961840436548598687733144586014941888780183546574795445362005792696860170559101216332004188531543583436433331253403379580584811222126447063135477844974023988105683896073650682628658485167148093922529589107195804393341841652618874778837251221973391269763555745586754772471498387919238124661441630087425497582030355747279018180297075869682919802949319540349623039758330171665752647639799961583695048629875618360540668345367404693981036569667878821965455169964920264848276330902794227247665754071234467479832846474735821746772365883901525682522545736563429171429326563278824399871227509240419094163737803413010078105059326073909296786498455960167992990042442006723765552345949956818514628462798566579586386380365030809824380545988060445398784950345022655495054994110298993814378661298845894804250428060711226165908974742721519927902098832263745537197664862893190115796348395335815675945413823712055636659596086653038612529995120242529497087839806461059107877625540229998504358781607397362925251754868372556374952763015958391080221342259328117062924502559182177614006258273347669052197681671113201497933004141172776484336385767276368583818275135421233720356382236515886447058954592255550922565791939218695746437720030441402958362885235130449193327768237958591857645194979595434404068191092366531043521175455467629784953117452284231296931365789813863849490353724948794266279837580184668075188080966725538550924256505701823133612738753822048852493013406722921086568025722307768570741727506779804653094103878240045072985938329107601430665860644152110108719332368267657886245292572811377004228983436538824287730415382115898556060392710547885599605630409035868429952661318883646374894017425786766314122855222821653704844532182233678296735225785784592229793752933133987379464117448808486995847713454300230287873804007947292669831617693487055364216299741296594694141270957345509397846625725990340415508682392068558658328726644115314349574447884845697311062930324582818954893562428578920734084649852461727791948981929595757738887387688953222860249571996849639592691851754882785207013355603172802493466534560598090970420789070635958729436362964740174053305524139764292925016146736541946111109476087877985038213147635763361795089530854680241753920102635123061211333568447217363096172783133891917074712779221946389021148042649771287423805609878011316808151625598957176280574160663803778553759943329585303075726720112449438504860425525903246305752908726909021489089484476353145175857116407256880945507865623649698323749663205857826950379419007097674922882664980209393426830563164135502783951566954058955146104973538953352345024041984899871666907216289185151190618594981950651819314491275596629235322899352849362805937450066550664178132254324978200400342455801423063348247799643276013228225602683155728623662607862600225152500786200571901713920729388141911849228116257527586275157435288442614108278832038867641540157463460262675021173200075596406446413787991470006357156768433143270542746052606042142020496914247877513543816132616044397961696586906423325544048696170252476007245994634133487885698401842530275850677248323248131862871673646308321871951513916622954535864584756969809255477833740013584480346672527929774997483166011381657761507401934590947807936914819704801918656013989415987536484887421269438170581408545606093887133580876878623351658801619666755612240545250448839743577243759163592389986033095587506442199573238529866791603110301236669635537641364223536945355513807080907359247636667506429232514934188085385301851115424184910089644440571003766452264952056468781229834065410291858683037822750935647517002283826612486387656245192770135788933116701663038297575261235848855175038696072408844852198541361949994951782611750787495487408292782919719393553141629273451001868124256759355750507437347347412111981245585470958766549016784472737658070645609103190470973647877561380724922212358777713997597350008120462762894778661155251803396750229819043911341240195397094523626673956169750033162420124716639080144454847540429201112876526687975983119722947152250816214091666282322731715155642948293879097384712731459277139495124250166010961345810883669701992400165224791222589375510853445481723714725130745921430402904881562833609942656690020965038061200968290870109419034139859037075512872477598641250232067833492390462289175635253075848542797142732367482551216847210746076935121858686606889293078880306164412190221322195148812539102809452959052387352634637351747044497346334455078981887948839687337414318322032145914291555851972827190839426377846606456216143793591173237458907140536943179431088231602291862218446775238906969585457804548540720310345548533275061910402217881745804041215054397615057380600589808780221037454295064835973664218569106159293144570830402861837119024461151125539509606691709514519732020306107039447574384688510734324394930936045119855411527444132339008023639211322285720267223741255129468037467461418072450080556417483455709927802380743780838135014168928448154202310854163244588536221766252782368512395221852678960061099545919767733794822678407798620574325188036329710444762029621516238407418967037417690672306681635145764449089065292769795923018263291170769111537630423406626091401657212688704784495638213736230561975298349938982613165707667630024941167042873285260246772450373533155188238939407923865457509096915274798275433246891890978019625603239344678096007302546571004342146321811773916322001286175528923314696305392803305866216172182025376602047331240252232759508057290291422663528546780924528510187918784303890398230305745482038848027773455707878112792369551920282405748494721136190721965724056553757424335128177717349471328547903684042672730326801716837213335571425089139963570219744350829051402726892149031974777534277825282177045649493237693665061431783092412633954157950197947677610256919985120089482978114759347002355405700977638513114199987997290515382697717397410910195242652256680806414859986785832718546320614274786841078349032375233613705081351166919083988427728435620280112262714349275928914444795471262480029254103715567126846393393598146417973301258492807050840211154281977462452028204071076710713283306350609139104492098342097051293139434010719329002161939786333241518045712493505503699971118333493923350096860452801073825948263935977825833246640093386724743419572794322174722502431683994746422908063520611381632442182876953768117620944489964521316104125047407629637426488781179446584005242069095245526296069659355038727967520144258118772617706497325162723228336475670191158452995898619857459091279489529410779554923180020715994888886290738897193118237298862503039278851567532376032584542185174032021624212649880365781954967919583485412320079351050886013831901134516912706750281660950404402373797261939554083310560295192741312384530674864295007983862519058338452074878414539874237985350079668812918234895156603812545143355778474133807100707961176986000900685338726123616794305876801475070414764118590835690645320501083883385889383339088385204624418228237736204063177386702631778680317212675054142116700305443676246493128243188797686970238836947782661225650348711164679011262754101223975078328958597208600462411842237208945015941276238027563959582678767189109474580607837658436617391799487620134814149598040774819022374309324112618291372069867960856139483905949002405819065001939599299703892258993019203198925418893911739650293480369797640648479937758569597442609952632878882461918713002867752485155702013762248665601748850863294015501105739939902054710540057175284308428793164737105142560787703056485455246394624716133841044021344835698072588272060906611248984927207380251622984825204056799625528642112936156493836127843244191692246708727304642366506407707956086950736428799981924861056838219689913383946790704836997450230764475921701544995127894560088889321122276856150238383798018413294056545480928828952700439391522601727106908205276409538363961491655931504267576084088792723049386456013690051693454864004577907386361530429649799357193711728200540246559559464316502791797340720484802727841878548255637749165434710101639293893648179319696043758197039339806595358169780751135634320100065756753513794701721604860024588474252410075986510851224142280612437977631077125694661712261530241285398802713348196546878934697884740679209389665295919343591772772562581501927203918419030348710257566265877236171734777877359339066566357250205938739701663116623529211317818949519343136423542363727000874889789432148639221269033273667298287870063975389112920107765501163176535525821644664265002878659438456766274711945576865476370610959518586110244568808086540350715218829366905251833434074012677799750423842320200039072871260724595616069188024166230615177708443776340555958541145455707838036531504253049538859484794015258007984322059063723979427301940938642367802890067805507906082266388702605551297644963280954560404234679894644702883531468810065023295282220580247460973988403618717759580635679747010700712070085148186805994137172101808768380146287318356908842717691187205427559570675230355595745395757136875476871111830640939385307673513581659018882924245833391414297373361793660908346012820531686011699849416996549900629928578944606861335134471151724189124439222595820622887910725163490588880782634256069549419087925060567122156329597752043600452494994848623465274905347488400712247526750098899743761121822931421802535209804790568408112877022071088339357473687334557052577563432806810699869935284093762918499510183978190346107953419225017488748800453153029500672221534536660657875932023736014395883378220496443108831324042581785788622104354198518672639022318915268038684091937965058235335213891068571861690694172974093926775149161184404682350253639648078285327545825075234684422314228620298053209526402345179875139338670476297989841622009357597705354806533168886420616128243382728495635046936809891529204504825135232513973391544619854989166209867913095519718439502754686737615013505136588518917473048402640675384415109629781389422450591316497112918190363960830539901341704050491480606809547050311446389654237867945426988285474039507253814894195729958514324380981816522717140832541978863213781537450091193678797763553522118000312085422072051170984401123726120102551217821395348072021564073243273068562190684855929451085678488376870138697330701040636788848304309973429245933276697615312621585035242286930342390074561097950373613801550700668883339117097207229752884182176799232647648474513330221649036892431560453569904040697318077701638583278240427976284067429401234748804021193238705927573706023864147526966936768351103229197251570852184613585215891986000571815181720071328733508117762311519126307076852998486126437062681924244137382946471922961389678026250484583824185563545838151617613241085613520175870985370110315094505638284571273652186074454038167336645504638399419219400283878970050186487134047825486572155008652207104382030999054990323151344160053286777324583357451188585527026817833186020729414616266271176710247035440837445036221367068501755043332229406275152593336526225977659419306891147465876780147976063729319092139881957912874925362986426852801696858821579048498981064269119885434666618240983082345315832394524692040573421807342581274020192527511406806137157227621095874512412644048593119825176821762479395225411775968622448318837962495554120451231589287802062079608945254548019094286479816663486568188989093029603531860208162018600229034470747857340652675905123276859335445161345373899066429320358727293572345274270693669490138383488492214449721471148184480772641982052989046700022319994232773540162471508307771154155343034578115418941013234371299277949613659194773394898687637509509695894849330609507378806321012643245490856574516460990176498946614807448833594284727490881106553361590957032526792943648730975131105525778194443935624889183666810261511114934574083773846108401052581764900291768141850636353939712830385256546867008035897299868707632981283555941009622209390290536542069270619745939780310856989095356598965225076540898400681639244841857686848404971793048399321745523560421849829145779450402440332371138604542651483255517299558408959599415185728518744340579067648181713429356548669881482550645323075429538968792066329371375055829649829844828795933770360620450422206148068809228229443406489928609353058757488582019373486113386807868079806484448411497085006881366640244085092074055918085190377030094693347958122024348575107904086875545435125775167642860530934150235062448132515508145312005158725329008736277807360322672711506218104205436673832218486792699942692885356819602943913685612527362223945246894583529471347481323844608196237044878967223144715989032864963166309685612413631408598297098066034565328214120284635974710912153729793978297764598595797384443498026122444045254980024379699815862723057721422260065750705404569266702141892919350867014480856590922399282570506158289991698065858196263737514474564053408781327538686056828930227560229094443003323488902598003746052480312193630136243952194697092724148817285390376023109338219193071877120519224581283266103504535146939006328408421244348078668973006141672128934132940214082206872199449403475167687236281762914150852815238741154396545187634586747153930771563492334278168447446435792739891128968205088285368875023785678224898764645540505567614712661864749811577784123900376057579794562021489996021723990452580430630803716278312230165360105366006814699256466308070883424930947044294897548699046338625278464107933665723852615204212331523830229325255700259163472051640390868189093976345838648303530498382250735911969286305873139112623972530977191983387024370160956607874351871449020911491377428575741534178461725433025591300978748195446005662201691512258336532690312480789828830804757269373869229999754268422405620618536246704115174679253913106615775049433151915208828034376681403536284376052881397162208785701602975211649106853911688497461830351340054659035500124568780965894445006400084357659566802753820492034362527707909688105535131350517271603091170947925269424714622734879892082861601450367658038517771877159640342161410052663656705384967397992048387414260731079277851982141670997924109873275288011431116672399251616974347768896090226034443249931053533784410667156558730987962825732662418209063372663695397160590153167870308989115576670139469275090336522583049008396493869562604948464921219623937411136367749947595929237194488378516361014303798222373414483833865274505680987493110439555441288922354053371467346324599143268292040123981808777280008162329068804527238543108716424322273413719769279203019813591581823188345286484943912364817560312915807068711679990291575422733283585764055846715319583744083387723661620866407277906369546767888439240771762901714611005351421721120504683596494962037013809332132520496653978224050557881073267257526447496812706269007761948289114412029799635842151731549779055716221519593310292624204775913093693914397295721487737751422126801608971558048619389949178284446733455777303318794779339807297374110765649420799360681329339922015595237448131554550423342950549798736888317715540107252608138966495785272140287101619258839141170549443446846888811083554619489312496842466163699029559507571304165851316003779460350124222636966137469489293576145696828354172092353572046521824715340989064331313163300655530054772982278564245689047581639489873766130930379023097800258583311543388721425218632506719116554395511082062068905371513941485086181753618595838089926830922762654186607464836885853202576632647511494904383310687989200447397924585936055237335112036845138809345126119079395447222518841290632205846624930801402811935625806230169732825480106819730908955179071456103133490315043962377653718950458863062108786772945522064527256842285954086643721793191319248294831825374217967427838170277782213596312645319616042387094396579955197376852061464767794324152140092837942254337360454863265496618220022827475031665884303030957455414732014130212817217328627863259796104036586847590090240840138299872296758844378859360281834999881946831340626018891812302266866766122977736261464209020616812966916310790420164547371040009488446010131786906461830016480990431570606300222504074421230968286165280292828016364913096855571275675436179844194200119117449599988616077842704639533075952709226091129375353837229902179321138783549581849164194656583167295867315055138513482482653625105590234233397496296747207678760488524735010377806760826819658856760311169922854152572955742351141057720451555886575395546825567157196583021933419009839758991299107296691520670753276502827179643928929761402044726943745535761594392589743995349166127277270024180883870512259295134726392051798758504487603235109859036565728002928682704473229759069654428658084582296070955573926337600757295721257277725734771819573235498499514109950624570335774335557394297886728775691765988281997516356047083487164648462000781296116941718958053470806963131817962157232741802937279918738323000608066081112261121354081560265125761191470243688858641255867002685759084205685506880623398802678849628460683463036793746753288876931435744906419321174502372473341546795452905365609467999428841101516099029217748316986533353693217503756176268532064222350686034891426439130815595562615935675682098737074784584708421349164515314212106928885664004243472966012122849666370007848804336149716417629994197702792225759666686056209152490029888929037218131064977952597801487115367002243257608031587824281068433993643377574163874747247643380870105849786619583478154594258257624062069878587070466756688772013734474033702278794448448702134983589565237168220036488546635443208354301298637770770772672144800493133831021926298641411853126663983191334370404196066444036717068201332549158252308018733874967141152212015000274731563622339440566734015938203637800539486538237652899154346010810156663526689690412022733528714669726535436764736236815739815801837946129213162197146341434490935778060247803038610863874937103388156678700276262206399043489022811711787200611623853220394764549925784639934481446761711935563377663931084392880592358828860740583629309238204297910944116926046898922330542006890453604473112267656892919844248026094842073686023313208270106981136352230132037178742402657617982171855855761746015885763275642519732606137611635982878382753446642729809618747588458752639261537629613066896031353949663321706000789221934934712868266261902366786487115213824005283730664727278015925407438746480431780812383472389137478496960154777305040322828065902191479046421592622467615030140411899578234435105866488795099765637946747937783769357656805703369480602788543985270798123823412553261330488391380164292513713338896684599684786173404876928647509385873893717318679492478807745620830265827614459588113721465262659822555784092078496545451399387298218942609512517375095779235428544825210754274801054580453430202658044871598525356938878822647135904385045768052993668722773885346962882244602792900233230385942575572641683618397887160274449942472884010199330808375147533329601194294040730092082530547582598741202999392399540363340704844614196282046340729563080126278187743777095149979640992802081822879126526781479736886053176819184876870991257373931646198969539292851708838489269801506345601440632654591503981766227927653717266751443274592611429096501201027276374155283870718498443723991926329687795359700558536190707369922826612972572669541891215808301613796087271425892195333293628043475615089993152423135345016134309127296170617844360243426292992195309596729078703988115941283589954361543612973978373659705071162933230558195561392828340246639665661034057131728720234943448092389723136055945613185048930670108836765571649940758551386419257178755226168023198189121442849506656965094308897795209777564843037511780186018727735965261256202568422219379126211657247640317694166300139699674716535671465287497737402457432237084782491454188718828275633025075719952998107652979942316322731161576301793314442515436242008389104105786692103757940196991658001406104112689484842701671571421393146983036174056301743733615746534562510338816987580053902153941490011338064096069770656522949810155582609039374380198117062403099134954585112162573677813777773080901656912974155922173355296845932930756403462456752639993944674640115056531983574958333632947373536158665081333903111724811639606351589705663000355992830786249683414362587179346485115809510914735756165038465581081450218563219238448158071484865640384912653528025196904835609574504940227630827705398161697887533738577620791316667504856793529710338341485268207731940342593123072296621915294118623645484704626096219070904673808392907381748846956642084559032543924344400788627076635912101285424333665742144877428295805077969538671621319946213990547366885870704004137472498737991400061534453926163523295300945337608784286709480571567430008256122199679512884857114737917365354885093791704993371100070189486074072257642874512519273681120623535568435478935803692121742407959861248490394967809346155227802798503660684780923102378201030504953623854603533196302006297749076210085264654695183097894632372463017445312434036195052082646451743394186402145040726402639345171770275225566872350090286634736245194005601779169898043223540637575321566267197813586177174359806291398636055170791467244603240011928885170297723687690844159596400756628586805931690102170638334697137159515255350697816202652077675103833932938139234646897574305639867836290580051372019726115692086971325130164773181227051255682178312861736727761968662988966934249101679573674404056067323300752021315599451140819304504500393654592191112370578059339638470762825411605686765522158796168240529022787486597620196084799705817138971948547451123337939773167231602138109423516521142290456253617654116904719759401891137686350348221982069575403268784532658431173909245934293056445334811313296628849786244828919284637219384305177039173564272721375509653047597784220958167447848404064946322383493202013751387666939253690901355704142012277156936319223999177458388284071941592915975722372012611999671509718517705671898542751335915631850913959758427869462131013262812015018450197849293587720436534034204521255662256539571365401338239063087835316416357405979821596904414431634850587152369878586355981768803223323464018869478521075511833477808542868834119446980716280878680278643407786647071557217914934116194372157278678006827516113032033272323568772047499640146556453832331212999242727111790373104492763624267721058464361695420847863962674576561020167412822235964271099562041703424983441261344991225696759778383981804340304016069042407378826725384369188252546164962998963629323076606088249931679861151954905109933973965997366962289267718890958198022404080385939363831824504416555982001140519950612781250339789343157968404636509217204786581728800486058297078640071827788300519558102815461837543520563350491370153957832838726468931020226705449470427450706814003307711087972981075569858508048786901626451244957992321642779277313261405656286985415953237757200837806736640621898534009528932170787372128010165395849161566270464146085549466351451681896808851050298730712760145811905968281566339629796782628057796773572555331048554903711159354624941971346816724600657797687562918938544567553179811153695831813241567133575783741930457063467010561869688512107072989569688483399789327747421500350133818200633244940557588338193180206727452845279256463370792678932976430493211311278409736092861337452077479982992771473784791074340061333088297931882986389258755776964704200047637021553936955628609793429898196883736394908468832590972589652147011381192747300418651774012705674790143696543979273607101835049537328128752118258533971497048021440184061390166864300253951881051635793905594440057765573689166372481429992336270033543133250524208480718922625919723548217163766684072008252140883132590530113037001075064683619701261346996052296998686101256030344538311936159364021276830108450076631297895651707255187367995825532440122127398270220959383241111548469564246953131809135562750674425007145280193893454470765403920008588457541356108870432675840460398621202604927026012364646379182071230917775999092839555373698018739479543296542327261887398243148583516634964676837092325164567150392328843630420559220787085194089764388991281350075627945404952080842509371127051919785126006318861651994494743515840876244730901793791696992718436073989930156752045311316322388024455574566164741685202551616925753468946907456386077466232820335040489288863690457633069919655649421276534538013984772833330643086426569034010429435161558167869937237741196495562872834421654090833465928153346324306429561889869249997609693849911544368573929062848716271646152944742450877375389519656967321092381412916386650063196763921451160409217299088413472037852814589619371255379705587623956222698039244457981077109776661754719491214536488794029055603688639093401730391068941572655730452789067584780624825449791252647541393988602200185378779233731485502536412102780649004644732958494360132123784358616091848288437641573102013121651359668894720796553521992789434713175276380218723858734954729717096431017745252644671367497906173944976262389544910537179883405583039908473716913452211396695177555090202805765332708154641932301394451176995503185302848064584063260439611946408565063022193294981624369315542724530004531288080373850276175753424627228880832826206116903803341943753203626769622323553582248905489090030870680644074519602446983438071923011986266410969282067178549275349963998428395835955934988639042281780698526373812390482488443551833969253462585945364849264434027082618914389084976829591359297395734473079855168369656855897117481762551257753053626524653118226229820794698402640709242721410235719754049654710985819122897173355242722355066290213720701580630334696601538569506536170756620033437201286237622069024380412915264015445313235524051396456742787096253363201670351916156465608188581371985969212154942959255784593264286978385451584880130124359839696652412354276778326535371059319007779930065492371080867051122470673619194705332733115877016754919640286273397899369168479889402517276593566537406163715958923280532918054325124513089661104467519481359724700753231517749681779617568345453663067310218630215271596144130996150409518963344585915061939092254246902000240824475239456816535604773080645675630146816365643156831208361961058408676410456695117564834287941063642348001420354164563409602520481075404416587266895151482540306754626263514010863118345639467505532176565515197274007947597799230390305566688438214483033322521766871788041199921656300517962835850467573575227686599677749035250121646894470887026766522749182828480477255315154648261103821133227811102842867295371913449881318926643964418062200514076874710561375499934415099083353106819698039617751448437521686755836903786724740084271930161023212638768588122279175719085765392590390730338667287391021083333327990287987610720371871748637029610057400907754352037725789002743158611830512028953925481621742010294568439231663592643065772453328216408532593404776806104315238755770423817490559486247963323802527942969964773871025501265887328862209974441875360133418493175694800465653925088055234855328226285336267222433290760024155880664230474511955649194053546122744515041797533589093502003720437201656515666399747232391758389247289978078824697997140709001585644490424425911156897855968565290490734289463360038388674600857894633943254681883757859859368366251281754715354487007078053006059298676944906394246963833285084629118326759419193477965512729822680482927332910656181956179244308936816321286118291811828274033814240299608448231394282719873961278368937541205133739649671870995771892375147821335360821282041567725261291450122505123067631022673520164994103143312056282367220896413888042182009892422778367665945076122227929225267678410146984144208903214355615450042381053874977254333672051697287460903280555353288464141396727453449246325145483552082265862756497646801321980016505457595398513521840575801062658766935015400161669278335384924794901752731099083732426132817668408321608053521448291798005842305713907262313532177237637363817701778448059906629306906790146307044118015840927464082198514440855274166609585833257289176341739318350497682212031611680907296236974211608593674349608870371131813296054224060269835705634479224033899360998836324141846891299642022462127933910410545696471632940358370018792730038553149558986245210485944322838082645544250706140093306130682594296333568881825768922842167133211864466960533558605859039717792075780766623983683698280471875477379368077586721064228222667908857841739878984823239042261240322606444482485603134002426215634015738856239807097544376816485172404595007957058774317957827088472936506632765038405127219341127604331920461920019405708342016201213415955481705186936174622430006838188833627872358148499071458062941627838878034142715160876193194841225123956780629788306901409233074468533909902595346783539511143785546860837432208117486916314895216810485777335388760222708997704479685902513020595153353946483998247785091852817757206247195565965082413423429129535400515790617435898057995732736038890281927073602955726548005213507783682723682368016667263288099142984102669471857879695080325006045464239086516744783810077743266464235665606976936062202064382252310025520732393755440158756810447845628380212811302486831627415584967670835134771910452909972071353632088661729248260238479914150429451712279400677131762284399205301193949935259890743770064819646247704425737967578557119422658172087163659355068839315040067146774261032764706833377163186733637614574716956353353301709242496821858693452076420206407669288241990331340923289768475334050344280786573251043783997433361346938407638608468520793064073453429657483250925322507943944031277173380873909546124008529761053965344402614435443046690006517830330887455485154869248429158001570329808749407504233385392733722944753731725099024177796917679609333962824097440049353215864043781799799161048899439566228243276830406087756657160661811229181825656395323628838997928912312229379918934733602574284872645201271134766453505962278674249391376460905291802950989074678361018830683386665262943022327143465783368065908737423408853797860784976762530573410431115851229530214474268083489250488718594258496891135275530811697677049425036092117241825846147965049484759425089930336702707051484787645476723608649025061945851499569174913423898377139578551978552996341901140830224451824682884107167846713986457270045010484232673086545142859760343143443391080306117382852811405228877680057701193620772066448890607568568688323408965751344397219066964462395382499137155094366001416369756881145295493826117271314221787882755103129947352319882028501033005689276082407818304460430009817721466431888978206329414755378863481626563252302314317803862186531449261642105285208713331025637699395106204552941726326727920188666325385782056327780203002232209599812234474056019086167104469714265315137037225123050122113973865720338415983890852082312251276395023375355128500887024951631937337763539234310145101226270559572523937578434422836131450270962087336013387828220167286588154416394109008772006212206767331508777084944759970709325850260719465171748648686825672477013238876673047892811989769868538288405702958126670645126453222729474623931806509669657866045424871140548943753384805291913361569117092650674664859091404935516085935242386373321386548871537235501123417735494214212541221818642461457626742854769530085404841031349286082033494541032305201734393662686046598202573307155259757978509678142722289520414326304985522158015418062587820218242709334984994005792185547234532826178090705285435514307542649323274842703418202943553961915705962858961858218598339793882395197228093817028370218444415541187408633043526672177977432076939492925497484889099709181788488571972848633971760097220676143357262279855063682917999810156031425643055429910377610856858844458272073236859323084262261744662139595658038819977744186631106052463496333249059412291038299269237880849224083253395891902039842787653057271253384832824111268456439702335920911955046395008886119053228182675567326746355218338427786879969121820154476669814955650635359057274400047270325759485519614199407253868899457163124305443411632820466543979315001840810068105239879886859140331149813715249021273970586409055768332267185461921132030115250218533543344982551792361260540994503614297338785269808907868544228003856117487940600664751251088222440348105175317431533642316993874455999457295260002701045950523583465040789607365136370381002399040693647161717585184151160119902407316268257234338277755932647934856804755379137748992279819861293217413404113626839237848460789586791343052002838305074852111211828722809887182790736279960157441167183837623564845168176669587297369184226967179130190084819016695337188457233808483267735417360644582228515405117665998869424607571885926090661394639667584684730637085642764337700562414011917006835836706880000777715400520495140204507655687179879875537533361786695907850223080002436567389841482961912916586053954643429177419869042866894541009589095436214520632138308596773421116635388632009551202303944621341529123567152808526788162855102396543317517198538746590667265370108284536542184332106548735587643609476417717483892213879470893251918291063157135537814655364892299407963096986690752082877906716172050141814482723329962839194641725137488908536989918376916179775604121993558928543562802434763442451231336046315502158335440279036457172393773510010415066381018857026805005891386434919012599784656563649212299549553421629368602039898837886253339636304255332748021730175803095000284299581882085798003151320835426225224306686533787604994988946021302811705459224300930454971920246576498720061774499737742245822573260301982737066749107203405100248236824356866539175587329806270722853717577432245817616456249544381507846154390982041467707634289229542631092989103348284613841128202520148063707917401587204907433914782982181106807872594506007637581216837658240298386565071904094890007843103330642487316842105945045263606429875339647541990170294145744477598849546739089265406834927611298693730407042637539978217151652473638291231919835017847640724379029055895094698276667856352724255528431191524836248282659085138922466454755058184129104917308116437419600949875676242288200509675846622879110908963898946403415046215854428221234464966667002626449235751273913961201373158284573477218099998151985134720350943825163281216271556907873685818410330450842375432740019819056601304739126392113163204016664793279913387274659574166918639454036453137904309305584046144315705360808504770506142961567804755980143096322303322013194678486961130633423197962870502349988981992767515978377072121055037679704127503640495209960262631295462675681428903876130318551264318953481545276496356699267013863109045417147763348661820829533481366891076697845874720829019812734581998170053248014958718131849193512616114117490407887156072077170850932546823848700975311577805476823509820135861064742592132697818060490096287624498829278387319015049461757591583375180201729800683817773900063850061427075322610932646283853761793753439911422487172539262904662515307904551856574077827473886785395629082627554204140566353582952207632697503329485698371163998745294971256691145427503256668679471049997688756450095026729630565090489602333275495680332877055168778640342718164217148263944731617759725479406890752120659558240706443069360881826403924009967555870392126629993328730458506545039975475559992805057199545299309335684875725706200179844329291747780452963679757176684095776390627798290622375469017619052128878854689852237869627067166369103365815517556280675778959667872037347467932330505307844988326558713323143591282648917353148554900434096273921916811970620815064655557828545668594490609461584137762102082305157756018710367624734085489687897691048657691069027816516729030819144174835865610984935493326261096305114700164598635532916129276425942724878683022564453122889262740820214645495003540928200741397205133643295744246287627206170425179232942494187059982572366735564808632904298765407132572718569102243642654327221178675797115897579207977726839988467194153246359879916468514522928606301797201080926123243406063433799500884978436941986517116990436173442918173144638724569031830346819124361643826893848092095930144219880776467256291381293939602072998332563178942041406331830814704351741173827734973802141555701414118233076563624016323128331440820207118841671887464935899511781130132417370250408953920862097995757041629999662473510593275003389359445583704787347950085128042169501844187316843920269349210566179955081288236778175216978774864865966739149701445221645530808457124597610464437640542039554308964148887040745268117412636089111737699423534701772584230006791002709819258210814323326563503426925535625523880145747831631118078739290540277461739409206289863696194635028004483905273436199736816035494721763334749603057724663631980741813670331079246172477507584122298296574144376054709810411086202486751195382756991850320741067853608245444100482775473285401428376262891891008926775356820625036355258908816082544403497881060560010569711858567161556450062599009753789858760333094512361600500054148661349851774344946274908089170739967588388668437366703950932343912062346693952286609312134330973694587421635352735376679932266270296451271231170658588889541687420340502302356102455059164236933386343335166848753773661231306332835489040595022574940525666385213457283462618388264141947351502628698277181709684243260110109446220739729821722142538421343555539507224626071480781943637907268998717932368006336943635446751494858254800424853353892045469929292882594661910518090160886051308993041318896280791189200965363537705756347862121480384940963398567696814818118697350560847397422336491256453978270840498117776377644649732464858551926000704806932640363110446428519542500363417854127464107815549730423807519262791561430676984934847638843819748276192169416461258335583932609817414187490940087145048065110387963075867304062332140843012023289043463482683028541831105370695870610851485432948044777530921880565739490713345159095001496705399518678354363274123275965019460163902011375074643098847938223014458302915859608258425611206245509459745146782853869185833136291204439231356573988384093214399037565126039136410160283489415804823079070646042621518787772244195678773332197892914963814616631521293832087381769921535557005102844790037777130734093519086735209442697362757276205723113886951742444522458308847642219285867054744342925810464293283623992211080650683526831703937952984623010650141649017127283470293631411868217089257628011144659118305062560747779622401020732190236508995093068497298894385100330613032264468434878619343555027796092864342081266033372787016462742939083418911194481888644881600520263608457711249538474750775905085205003355738619947839333129188102801262500089271330614003249320612217727494122561664813062019269389207185351903928830258076375208306327588143549447004567520287775942218189299790135308244951487031714202500154689718765872950169926149974076250142321265596968229576341689990007747222652107689965891023072882788459600806719632737791979225733516755037509263242033340668687622113675679440410977150145644724292061243897382522871408843863662798340481163077074268931628926336653092344850308982908843955510406369692159875826250730385598300088744003622045202494364874222056955648665721780609464250368206570442869631723773215527826004536083193539850439185051437387057347655850637792301960809396282458794419078495931423258299855364737614480476593998027225867697796524458100066106524559839388266260753702249046492528021929992538854922291327561374694720643542560771839727798857163186786811489946088463941112666554715578457020158300065186391018825629173321514150552036617457926730686073386031761166921349033939665352540323175642138103457708021619335743405004970304540674894734098314260269712653062624001842212225760047477395713018222281499245618375698049008750334118104304309071718235470518147558133827591831840903055141616622842211093320809283959686164748523137444118327428996081638416909110321345224709861775167597061009669363765162207757255851875608769895232160178575129958853461544754188077596798960196956498474773660113797866500727851490210770573126795373629766882914174337654237088879071649813621080827852016514017896210615818148260539142192404397579632023988004906842009179196231780757721302407429857423442736729331597728772033796578327281939217430637597726927820479553561480639487633271028201352532478073112931114884694201966503898959513111076561342467049244299635816694230828734322830720047276848463931523777116719171721848303390820334839803924730352942049211673340825279669398063354897683978791547764668044742775158004009223008303115562268202955787427950804009775434534046532803368164425250493542141103780672412029845439612928468525037611201439891102838425874796610387313920931615624581575544779386001466480928796329777473824822668711894619851575238889790518535679957948258717235617238327247883089696643994920771139607371430137141868247822055401957720615845558455212121462769413666362675328725142481475559165908243696569349000571201172442560958159278891297089729196200896967323798514475463558076224006387534129264565035382229062717950013352064259813170375615302811645901707397253406388038040667753072205109319781691575002357187401792099338966521090833625025937418453744667830940331222583341123522577195118432144646452425704355557061800242008056867584287422648335087202888054993873608011271882540140743244456118553499630866538726870802079724542147835448517476393534941041857495414274560748207232441841625219701062509784340793631514224468149982894322441386306434466878359314902288843197424526722134244309279454183621849875973504722360402520443183250006407386391011229824106948466988167619352287814492050214004757392791247294324765452197934373280136680807976617895458651172317100101825053372200299782553818669219149831418881187455605078625901659968661185737952944697629767557876570723002327171257398909156149965296288644440031026084488396708376667655575368400254014444515342302696210969696312868692761952077673665776209686648544516293296744577672385690606927711607432402111003491606115628424062766400020224290184635506770107271818438654572054126361820658701264353709392595472351105207806335006358921268224318165859577894310548310285391912721155997667666018278382876967213281061321896581237553773435789266685637895117490209311676182221304356866625286024524788398458441790448261963201284568508701979994448310453506456355705135723406563277921103071036796516685109595353829347050935455111499165298299810447287302833142775762409237127586177771496371998938812534341016755777573912569608355643635444298009370826052731414082675537756911190501624957191191608829541547660462850575017414746951982758966401483255054127373820505852515984796110534525662088617771939310809835579783959214546959274327024081065693797160243941885354744015742884718003079712810111300945120442405121596499310113035432800230293433266199651007547183613924528639832198142007402031762592217000069571361204749526317139165662067861400826310504779717787023861175236855695663760062561518686933502265370546136861625802074483902869094903410490892229044897238173765937843212135305100155247595451986673841043567003969069532029421310655301800083283500913395563630380494755224678982867108929606252339165430739812369816157670400491965493264842793988877725276935375744633051256833198913176998659515502557440540645349117621368615082885813111966880196093124091413126749938481308900259911278927682193161966310131024628278264804906747795727729017733788302807474063452915426923293870297265209407777827360163438220993986845497251819539733918930482634279089203078271124242663305110089214389467094570891298437493578279528963854429146894726489997752395048234831842360425466526069062068267021026282754658628036073548045676317878808903840081076883169779718785067173490260404123494802517077933939855228786986805169265268463188047251277858045851900733795391850271853477814533213558653512155219055315747777667438891300076512835593500919551308075598034725613133503918771772596384313213806560541172582407070352517386643127996314885675806906077979491139684004091206993271350190577518546047239715661664468905043920085758656661994021142504004114587376881033766163937968969198754720296549380239574188388936121368450504645233421794695742360652996503980478676908728577506995336294182288321804808346997775750246163213580594410403234711979202541564254770658065298867045243360591627017115570596015468433905680802696958651539057970688899191915357395890178698974587067672292683311538042479025364039953457630506156837129469367306602054326100542048238562837185967328652797013318227971068737636882177324420009710726762014245177177788962917818583970623811484759820075456138897264731812981177528311027397483126994910564771954667386947498946998119044036868629892658126711565933122440344137855381371852977786222042296665153433736794562981950339484404221784385088414480816520407681556050878695760115177569598157860811849244034034029893888243885231699378293341361254838257000813542694195941591074121117969973184929977299338748472419467963933308146563829765191711950709122648748173196639254987526467440854215532891691895702157017554841373391681202297284624797682779892157432843227861620391462846711588732760770187774283452877489473262990484556153943234623290038654711614320374445794130675675341382733771957544895730132409695221450672471970410938705331068017526636577333050616425176374014617353775218789809442559185070261432645832381207097325616539924269026858288704529693233677797285781720710622379687291792524318558312798582985413048247760298977857786700900282094038035707807157579856259189421718801623290232730185906120772089244882041788397930439124359594009975163424964954149022109155975535205112806763010099043176000732435422866823932834246217491328926417776010399871433905528964671214078362761936958195764626385798281194922019884445849264398064708034888583929806817524709818530634481223149660713515024177551684659604271303747762717204813768321485348855469754318466507721912702570723228329905476613144746832211011389396311456339519059694768655610630457682355962617395894920489547225168505163748086630684643478294555090362313479272357472568255945046123651555841530322930858014200054188140941340250173966102597969882528160051830163948146110882664714447088642230787198239143767894751906878287809884583379252088841881934002081245095765666957667762682680356710743527924444929553207699107283210693537480489040183290605362976906516209207222590320191626333327888439571716522379297598972957324799852725654766036276544543579146121004976359424946182664335979319654024464057369214318279648853879589251644131722213129377459955537586980592114889227325131581008552697925848334538592817632529002249788209127653718306850454293709239382112162750106096741034414608881252608459951939073361336238279805160964390199786754952687986011068598066345312345112837101673032798736900993272851208686189893000138181857839120739658092424440591270624713530520698757072263387488075267875506051632403753317483923957927749777062070592040347249058937978978855084878634921823968248646604482178366205693569426609625904728535844269685951617700043200522876855848881453135582710579481373889877976152324707392963678859258128917763365809060793234359677273873370906843551496440643757803379143455724626450017457754974009459712476587696930078753253516233468904571011650979853937650528319291539376130217139928988903373325941652000557443734708817840393704795581874278352648595074421484627091464648431277665038843978226349520405933047505227738785262586832074096790064023475341045460276780944409537002535623002363102689244977624301674826630336572591633554746708752608995178078654148029849866540811379235456835347167581182582592844663174715158329024504250511416161574664366005023018821892047498684974251431759419155665724542122891059904336973156347798488627158740965389277036475590685439324072091859886085300629002447617358123593886176399881690114893644337913490044838350795541272501073182785978328004092633401482594846410178860818647507041923640311279956368912926411172928563998358609356237999118638575023222141045861693044298429379865181986589977114370905022478264834876768680573771656751115376339858285207024020661851615263320747559623618424476988064662240047305015947740699728289946368776524194470616791669243654813675828464769841813144626812435284605875066049975166385946699397431714449738682817587831153386447911488363479773149852333724481288219382904996583550169336782999776793816479114141619254094837780776276638571342222646457620317851041452759314589583734463534054387441299282455305737049825528460258333174572446020809888752374567358466992205214975488327361774362729540592955120612392926770573174337852886669513718165876521684551127132585918303220923549135316209416758067992546397341269776118251436642667769148776871086178811338280983642865497886470521772411683480433015049657080930203247663529761263888157438723361284760293934783721811996456856323868571453413376755394601761698137454626195950228213344166490213089529633425714358647334951453408273621718065113400167206737576676558780929914579980253681797538140547862762529828204517526267028043330359628555875077570502876424758486576961419317132302954089003751324813754695798555800658685959080369745360902741248643746687147798730687752058671943490595410547554073311880071055331963671459719021863261193813253848630807256942611802499270898775520436271586867094749869147514499415414880039347464154814346295473172763648577798948654756982670926785017296691690095176295474986576884595961665629129620325162267075962239224266757371512614307363893377716850364859349786921546632830868317019515512829649820038562845709855652352675072567954164345813943676661147857207731882428194940895280388725627234849625438566779017720569868512064026629121882634947103742491482172676564916281324218986170434369152938089704203879353375916087621912191414736496670279418801326114868754143226005314392277139990880636295517619936555784453838564244265056477004287699615486192826243778639036868853633439202506408702682271137391796074607827197512104014992850927166768515008393389256579737652348932008453160682702548128825038498059741876386059882535984441872239340420330095411684208542834810851057392698799146009886250869902808894239421251874287590301390651393443801150286526616654523277363577078863834035533286873169753310800858409966478933372585492224399196322967204775681398404213684942431651100358019141427472049500378931256036177521055574986176332407368830621998731602374330418042276639807527905290158078358443836590490231182973079110162920720500723149622772641027604132224833638511327603942045933041262576283739897363808062952766458132078479611256336753118994439173128444402802253518304947442850812005478835498788225933983226902797532096459664877681076151958068424306891557363127623711637375253332300656134456222902597915463722289324449273986610405243968280101069370789797576392479576907265177465453502922597987754428107811292526202254353327813330374720535833325055085292314721353106662313100604857473464962740818951774337048558692816028360615521214969704918758759710405398829062070091716730524210002591279911159957312265633707696281243726855188824715844744795708524425357931804913843969318706842127051992554259517641696375659763487047922069688768708070623402173816407263495101231521247955172625134052404049476872472200027582028091950079399174474786360685957900500788169443815960287015679272248717922598485496206753809298882987602063887634084308470713518129764386329910704491816721949069670421679363057764900639469881121469577613230847244095558905419501179714310916377997245236948500076276409008760074914145099795924822934999475988866527300640489578363491690666278510114716924767377875942504696961008207595652102940417212237850281902148961356341985774911015953234762512868933969156163509844179153032673617457533961368932241537111613561343958273851181141604199480092948483257922609572071151483773019075508243973075578395929189264609589087009063176481952773959654909808749272761870382263606321327295631211917925277054867285481877650679576078786556265114086680927865895360013521367330458193341279227502558213877810099753583301723142048176179492409561756169629196484801432656046848550830011424857307485438761353723261320579801283073554264147940421595392010409626306657351100867090820281175840867464726809163235830684438046248119765816345373597277181959682734322752830860829148055742602049201983886412809722514073943353452063836455359741963841513585701720488586819367450571080388841452943056099626835722542856278680903965332805547844528262860821245923410636829981645453384167066517540553373577916781914912678639762184467079090212105923993225482259311432472859631461439634420610640587857850164871898381991033654321173143323668876877871570575737791256558639751756865603954663027276040467389223620733334365998738091921574821008858703202609942318096199764150423070982100775126381345930821245537506390776487682045192495139675978892169551283620194171139115486298621189743029609854098907856692066818822794480800191634451349154216733147267534798076980215755658808217038147677899602128372377763279374075064300884254138793770584407634685889385971229497775897757950221659572447974546385327957046308069103717274876235719298442770282814541077487629256604676401471044258812640030795872575266577376910249985021787573997583175436803258619720497388396084434181699965870853560268288646349550474112933381301087038558259320791176076790180802495047207209497511872757061146530566413506602262040087009857956036339014903575011287092315765791326709862289405998037634019884440537924920222064565376829186685715111099080821154000193955037317089713503023470873892741061631170346863568949110403812618415635952652661314243240619314728403961597502361622292217314160314602290147242002516723243322832749992354252649856830076854713259940728713964969371303169885996968396745857883882383058405938300692618099480285701761608260618264018599554448886644244192285600779061955458795216489300367177245769810397681562801463654406832304151648322923516343673637125934417654041141280919348049236576969864523016874365428355520915469767599508620844059596867178041492561889213939167301635231574466658474524809669278958075750901130415304884397319448381308916670563146619493959759246534367211316869968313233717625896887195486087521545298175461546353411422199709480509355944632390823727802732026361595188610885786150356862894621959895454208333444525784837025967400787661322871657977235653466756196166790823668502214713685912149194201436040282696439402799459343334670431891581553751570715446501597665590747719849192318322035124994181448362633400832514779195602416116433669776409721771818479104729285017531908919564215746557062343985964744443032292432162320475621647707032265802043955563666486746585823874822628341709106903009033557751182946012967006431162989819714486788611775448033434770799993411097857024623860947570541557647074521400014434102137107217071958950161770480149358505129590353283343377077417643090673582245862084380350022216192419888065448035683970014960181841591798840982881625799517825420443996565155669081891341576556373739493036267735721511824055082028310807219602684914341571858128402248326236910879308392455996665982513155951489512390794079160634238118815554771535302376580430169076671307561578980204619599615736015122778872539957661701111271958227082541489109494026893563230977539719037332922814503827383855130242789319903880434552507753029940381692799277764668223899318288572202696990023296517916992091948089102335288839330247851530343060498914845726371973708097691089786222178810368505679405124763818392214150198279985721932320997508002013478413855169100152903389704084780649308118933324831652155151057050570422310031726629578591412570119324194307074851154068468606774422871377115183491852640674553635876476917525405125564658308720629253653928133935961907873032787857371661602525407378994345279510286287269820522468137891896939715893839231010379413748475130925671301618984959402956414483746405737556800360152930111915407547197682255085112364692984943685733336126277133686492376421720915599155093687193007662001469921137213302222110968607335398977226642170604736597185781900971794152259919036481694691492982321064995658219728451728372583428254282258241015616967864851680115324482586980178105326712911397521509645838991150473015263421130142400897257499501388912748971489406406072911515780066250690033539211684264746043872689348159068429256134551075950468182635428066583996200408551380297360919529629797053010099275625773052993966758746731396724947705418714198501923141567750066603267390765167009932607218267387102234451628216157420715393745923877141791653994756295104706109886667114617158244672747663720974563495486982681349489746284268989214738831625689288106160760535164700251410959687141431319263884629491094089381072394857690018058212777205551677939901116765832827700691776595027239101239452737587696271671205891417821448964500824613621037362333256833944829570402221453238116312192958331185095474277880262618190061933511451262576770388591547915965385357621620824230987171756965108966159764971041559345486874859703804317235316096776745817339854525534410236172869824963265786803884890391150650160984309318926884227791710171835766032376521052975258806416164627438045651023456262750643556942324823868299015610144724706559388266132104047492853677271628337482064862034447410068913283538851189965419155503354853025150182961242315187346202710451400531524726392720591969826862683510181127173736803282258820738014928303788166842207517353781926400322898767436807090299704027501575191015393140172382040589605257065779751506586153316766665502321125850707515591283838592287375194597973775888211139747149232479669050872727090271915407865298638824586495694605435970557237078595775659363317864270837913495119624900193961788443932223559049250998321396382977977721275571729401764489402308859051956742891972348839341211197671719727582620512798849359428379317270994836620415284629963135987573833194067408885085900721842984190679674611689232140098094100296325267199550784246474056513569130089731997811807741367261807641672060170709506197738397113868106993719385816851508249189959831206129018118536453402023733875376188104831122400483961213402858840698899597634007109138534275038516682999744202047844706526534061115513086675057124705351370648467582134396613915280417146700232014559349779233192608551485716682666391964527628090002030337426336801367233674484752673940981145662574596080050186327132304407040789892549233437661647273733087648634906090275222644028697933918398607359610163185673864251329223610948279017226385262192400290154422135221829385898946000103544098104253275986212393208417104087723218764170567438688289045616429491798792896471004175644763791086762476726962315089250963095324164150124654623879588982061709612099566569406927092264681756884362351018160165690001555451528310731651952083913014265474796694871468461952835291718007499491013688065415496960430864877259210542856211089487698108791858490984214343380848137761933691618741765029868071881375572285759967446803249496786241079833807723540380740230836895156571859366753693753567111688790201942170663036099470914082061845537020422606356961760979779039470545446473277839231689027483832483812590874015876438489525389748783190959809901926162526042897222947374014781148812716335375889513991436585974264156139810227807240107332946304396656958418370173439921346675454641082883396467306711566421054615478278932354480659648849186351973696910459138605076999243299235165357525873661015396869626843813469810914019114103527893526276520863827505779736332347868773752605523060119944862477747226331438101451130197934247280187400152229333241300689092108270249158558390581223639978086694936841665041559733406548456114892101886497118021314376685787858359690915630416510831967552080754241515943433371892864935817800373202753524409576673220719709837441445311357261967414927045234692752043956009235012808256490114073467085222823038578096389301206619335982878935592680724742926077110956668968448088481167109281267541909964179354967240150504981535256107304828176916431037403103368506534138911653816865852654817942286098338911855009726865088115527246492990095242894579415533579622167267457969200719623539155618065286908178684752640765478896190372469204012820970658544544272277105186834203363486340903844030282139118674698259765031549198353284352183557583009341673609572400030870209283919146592298132460831301099766591943798852778824283397905722968188746946971802197877081916990082751673418414384505161756860461557003993574461984798701587244722686960905929215099876763684128714538326846447743644994054564647966226564629093480995088166546404879028688812352989384770703966370649741564107332993659805128117712538434990099730599233859092468360123882413481548423287554858875379481303891011481402365397915677348537521514947623446523345770977057096937377161061775763873688388372985299021503682153069141694016430492790086877064336971597075408286786886812596894870507760467379095732067792191695808395425176378764384864086180902108451143716532691497773976869269484824716103579702666122279016188933469662988491085643233475669897243251465299750880734171926455633325822577792098283534272174795711680552956608775073836410770428213622083084538669854775369515892195705938318636373483963538497260644444659115898249415405404721183418741734539292620450262056732602754629970605140245754262309602241717522796518771056952402834741748966730587483874341086593122559293360437082684314153217263528928921183592771462946283710418536925726845444706963789387560076842020138174947884332538662024141539154416853832888319888312838318360312817886022126128630785589817123519289374891357277730178563425682605884149723083110435513588315306418177996166441652356102655730618025509310976230545418418400033790740239045329495460795364978972448360181730862109150204900228920670037445115955664619513572031950954505133008379674194744333011755543889726929865299045924837991852229698725808568038751964609328706152270823033937512369847109955678229964299293530594067658548777146910408862234144643014407499616409715612523942888753045426060790376516816000351511109422057722539420456545561359039304592246159712120452822719135095957245108182826963172960759738449508351202712154493719918162610819633864311294442522790468098830013432876979709359115072473509538656390247450739563867109314369873054931934852726932199450493858489346529214972476994612175851285357253052338098293779705876009614712752131190612904823753240833263987649276905789085506068631046049232061741378645004919847199020429048360308629347347853009136277165036243957867745954237933646237212947161537528064740760385349805871035050571261251942580247240430584054384118986102096971491777519891948928363787100650954934633911493491039742591193668106727111136864155144395144965628665261971307548817898574390722334163604489261921453457007611974098102398252131928031177625281487534297360285744449695213471998023097557659541613753778277383919334828260711627887025656882188133930212584127926546298625587014610005917647207607440064831685126778072477139472101297374177802915107182875298261428275652962566969587878470650913198400515778244370243311214672241349612733346420210933802391651220098200611137135356792245515600899017794668031011992039083388738295269412450872767332756652692924455944929691935468110401303698266110033011821471743096214626816477515373676407603034225123954280420364008366069467193946471971436825200698141191274216802192992372735539727424634659130181685404484282404795616011041260664351423838550136552897723613590405106060373312007912455583311235668908367221311312553390532133485085451010063118082951912236994150243347547552543445584085195842724353085228211972407456617871240417755058376366944073825596646674693388105973455702987256597686761194603738607715088283846651622167845608598061910413696116931030840898234820254767371305585131466409085046305110424837853308809120236450698824578278631499980355868104010825566821486862338083422235309714169025786358508875339223337746178203817334808103201278928508681565988247622913707571940224391820720585846932993682018582689996166005656775925405204882669743763594373747929034694317863585127157334989836448785954001302811541059518055003547812876670309413873682332331547243554635939986045212090188903217424336692632028620354545148306775208712219748136720434257202561029730346543349922566384495026102216171702796819166363083358931133013673356867237707053357694003540369188755130235161865189808259745421389920864599740093097906870864032471184426969436418152345909995886426642467789446485674147546792297038766835532508131908944432022337497297071412840011694840352211184479231697882382171578148031265725634445558553492234566359381585100516243004723127233981031611629591837100688139629276271535251088882032919693147835753966509759638704477788491138575109837138171188669435705055406007941626366582908774304706518713777707767897106639733395088237877927577298096079425379688718612101820656933889171444047699447496782239168996413940849293721269981630934927445264461928699244886139716009035963792374044793752001073865776964482818005509922202782665067808198002912192058635580853911033138596736736861451186717723316719939737935934779970345880780673701518646030794574945543005353914458724313255398308622605247723032976549014867760519997322591058432554799669219094544412663752315938867828556270442539992737179202982895445642284347953449157289780096621903837645191663199448374899891224624641091609830522887150075433050577205385878822488862921960992083724387011203382609758731492873069783429237565956673639457062395563400967341300543257373076369076312640056654512999311123818963599721594441458255536134279258375366604596378084183377376050006792999589798180973553935073755914726422678781203300558777663485580821186032592062395851128477840055334304336346647824324422187598583518982454510619159255355583713350921331697425150007343371659336405173630158889041561123557286982957110808747314473768649219007840096227774553330463254268865947558465619390158568781166908263809475411232032491019661540640713915528302961021160124947107911967460153650938107987234497749503255097295836802469392820667295817329421406064720833281265813266935320189075385729442891562833486022503057575868660283713348831457817642165225466124534573186978312791038228158245757667687496386978053660355536506279474393328325103644610757882756149554314250925719195870715625069481089417093370810655209423820260778658477050182658113122550657228627430431650240760915391587983936414186220213305038355069169445032345381602720831210138776765391999542904352724291133864238386868781034046980899193368512241244891784070339276126872570729884862832367251495684695414921131141425305851037843995612054082759193687557748697071887067569676703374065702690832876761280650196514395164785381876275968705451235052992702586042426564600168890364850366186946007673641933835333915065826071205134117665618684232680258812765072423872555141088821128737668131598248703914542109769002529542006194692218830420988111948810622409664597202284088509789679288224099540602066833654982548978074427607793100824814088375748137029078732951433920397775613370783341038673089899551772927935498602664164110511016848356742656306113231590995785200634004522903280232742958154278330080222600395644660542362291119287411514201633508241872599608553932280344978634477011802554735999828994957612968005521187138383122780700696020450817003076241381560746356582681792908735306267529601290196336272474583567364371282760841059211417701678146561541726519332166455060906197708298340010404650749867167468893728422467910425812263557222557825440352714063956887933927199450820774747118092380536744774175088318851975987543474986785679435146512857499594603606298301095262245902412795090383261846827915918993529578264909489847199274467262330434220127381359073941199549903462311663804328389427418930042919024829923341601966270143262028852758163566441647500397938740516444840104130699714725786784344677445744347017392560439400983796587450599361809465826217652503825724291412019861833704258940598972420483275259073873145354927647202625395599577418548081289113282702254093122782602420421717317238311603721184295992156581697750488298906408222274931624251804038871219218157272351671157457565562845248180891989053859462092110048211306527794942461050044129660348363749123612495801815140708240647932241482040240076001076406603457580544857570301072365661734190988834470703653917121954377454365692136725670214755634949462452503515951796196036477898812937721037556208892349860821248327902779848386828485754546850410489533226093028384309802840468962541387831300655277567616547788937159248436065940965682072614693640057756356355075999279675849726423941752544680339895895027625112956545551237628645921694111455468974664864215233318442935257282705875768415065640926233575548773900724684732407156071445282776758613221532360257577683295916293183745296896211356373530042829118379757043988321123778745449308777798553055028817323386854316146174389662982662574743728492303295508379460313985355291983426623120008940322434619198287080191529077322294058916188077568805001487418251224785636990898980117924751094301601468168428415188930480995278805605749930006159212564756471464041491180043320832303793363403367820866981205466265007852070449204374239671049997306432231472050703184111883807138675307361633236314214711472821371564162225326049438863659437104100824658163472830417710559805007823964375664958207529958628103693501174859015515815442315832651472302766515211320599644686294953535325352699301689821374940545844231260947021774341709132906270872720635100735404658787047614630768141890298713180716140340604688388018418148160494551005124679800705505584076358172111623861587705080708505488311400050189607712689356881958243961255945950250000641509746308930718553678707878904891964042238261970237912029672175863685935168845539271429908871856762427150224559557267899200646058279178719007724641070127867508658726933788084552143305505907395627126908987936635723905828494490603901118287733812247944617830836237136609551415745750927694609426968244393616693915577183859917072988172311839863380249817764166707711808615625592203788347735935064605631018054939878127735884257807347934109158964788791962221947399660910440974217485235811773190196597055571592914068743500141676197239824847173647697948959597305517156157964362336645238996270440543126175848977847882289064839892054632812055136567849634535521664234850215645632775633532266966117130829157801567878306630219944807968107213873201225204155999030957434066365199909020372719980783569472294414613324722433854082282877954624668774125500684066355965461156894068480172567138521609448627159268997342694234172956533338440862819654157647861009287389558561157091087479735853624878468771269940919999672633095818707744880813221159232865185630374926402718967675611807841077951165545546760243446257432765733775829156014707266503522054570741757655752458278282963935887009810199447743629434270376246799161204385902977574604570843382867375339189257826221694389626120392151174695311572837505266731185157763864694494359851177064177122674659184804177187266355455652731610685484088048234031154782250394372332186590182010627853323497370010827472985498411894800438809819367560570641905720107827240287259938013618676870952466313573577180493111861789467239768643773205248777647691060125872368116234286652691005857076997210707743392243192571404978108805262715275442307309864565013196025744563059264293781320630205823964785749711684462906194263447272845098207504368780483436217749980578464465507397949921307317541205707586035121672762244404323433785093344882054981448312258636920121773325572500157676980622647346068089161056678672838095343255741955161957634805253464452587934724876261055559087260820897289687497818123885957712376975014549556222368519878619769631443463068450243034440755809285166197610681876142419974610850064808927836135124877702664529392752357750672861181333225515663932766467660786580971723706922751753871233589740229448422935918398020019093116172590383667698240302874109015380860119345243497547615555102867682868065607469117462748757006097953810098029298348916851612720183093464586310238478890326308576784826349424425923775710958406690464967129907693290731066122860524256999922595420999639520539782396869560234029893841068468259677451556600887691890323252059383791646023102800140095571314920636200173639004289822646071563979957485543312302604636866791380346195448133466349722767141212478701253260501955127249243340632707904094508695347310428002255051141416333064175635604385996144554326599226159437037633018575459225333124544582520626880511749991314326735454329988310140767743373332560192908887171757483013113789596130495669104485801161759279618042895147964724945356929592361656523475531588776728801019750323893899096312876139494613441776252039887954200004885035547794808639164368815357043317839042515675927527778553468998045698632352037995115669046588544948772909422218102425088276612053745110154384306175709420952387105527794046194588828652303686832557482818357827530166712704037532605360330626077256687513224922810119846761825923200299958607832543367877762639413469190446746406409949359921803781641687381284301550867250824385665725180416865359558104098577161166219583436389650697414659595699297618559978113724387769626142593353503521608010513273263717492549330616261820670015551825554506994548930103553161628737267113435171699533079159355118016746554806351977170674877840869736748301406959826903976931662021484309130370058957192592996864868339680197770482202010724824710019007005892734281823733021316139283059006112180479807521667416962912725206689299218438103900565238830556997233166064862735955355875742402689471021551265457531646687308851672327018883011793637857775955045942345979738730378625031031524588795234081962834767794494093236381762834045644418220020200179586691081141894070279666180886010918584323176906608229592102470553505112954370465900532762430271534915992717098073386344343564894682048677385750143801840320303923922698580653953803111020102577651795835407946718688947270255690211525480479726951624341211657334037793503395576390161463269652427582875944865310953473596829115965982430001812434583989351031298242965678271245551654228955072089635745908507287965264785329788840361365431896562797770848019095012502853697416821304360997670872718552056404564420050046083422301454276901741428879036677395055986810282888623360834504626013552157112917677841890353861433852320326101335877703640860930253478730354134631796254735026314940647890205337725987748257821842270837996991468330780534278664413344424763859012771714333413661055811290278365236102679164385504698977970608917567125579762968115943025657667442599556763248709060625966260241720437950498646545249716668863012907459327851356274107771011991568041979033840856259286060458046991801453874476237831536450873205266439097921968832926592884627830531105240878424415619753159038852276832134606711132744476650490438759886569657946463245892673335929297845357499051870454242068482823788207920803433669009958898945342762678179079443476607662075962653081876123372271140933106344992562507784467082810880917276323931915700453779797492713393804683628655774545246348156361372236544239352762614317031584943993775541129754276655086940573372974884582403235025281692632644852850727665418745517908090922410488315340549063845472595633837356563326138815228511479007612755895890273875021974896760153158553394392739037665347449139931052148303809717478372444549032976984730228862176531070382041037432378495009434840962100792937378463421582680677663716417572241751219669984175389351295171035970452678903081553066432266320576069122279900669575954163291657726104134825561495260744396286950216006820126193681634287052823790747411544806015086395469488736589286628123107643540907238617086635051880538150027306005956829346855561738931074866941141250079394112387485618676745884143199647894177705880383084135198187234834849610323423537032829282600122940684170577309034620839993716151214396290580437690382058884639109589923675615566235682987929148204431430236801363049797357580864172614833453292459014604634031972424090187829074644839646537546199319734810551822997217922453551479507603883661498765353071391464018384666413390186352996841689128883067977169626451742145701829689522686421889613293733260402239531929851872874765433562978001802498586639939857239877640635352951733174152063821155675285788531327753574922353851324737039342963406581409139510354435973904935266408281483812403126261171000954285766653875717700107155614020778887919832029225520933212908887595950032367662031583588880020264389012342465715927028439276116039161900389974133446554621323037484977072118287707279832025453047733077270046113050502362299363658710974918679910952832871907372338909842082876171989857614490762366090761616248387720359187116834790279303974289870736757756443717001857985695999837703551763906888129076402651981455591878432967592117770657040161018716097761014596040027088212051431614890749442400481894584832054698621270470904736019062843120261800084715245696797025347457974441900955846967666371675406598520766414121725975792099693400446442083181982105497284393984425597243363848377155331028919082559106283181247900306815066898125949444419850537226518077820142017151779366622931126100473002706484305814736601524632594772508465035987676457771268654376084062247726153251181503732168005480540815552975115722923872227572606627949292005197250818739695422777971221082914514401621491928948747402747628725266642637491977900355570830469528073617619195882872764874694783334655311660534581538222522917256483287857221310936987419189475251681439371989627069682261435864899772294052219502145980448083098266445826368305350227415192737451275934644124928114507137850912611406034881921560967379079751347477715325627246931610688827204417030987869454741822345101387544732352115248655614662116590948222982440273599440166561922484127407783933075607717900206293752175136907438389360242411474158309970437823648594822312777740092976422402283180260713300074761505161081158083914900057713942999309943717260138595473064605561843961775313140451545885563995694008043414946827369492642348165704711207211868026834098188022490441706661375924356057252421687822038940859858654394175420482702279849414154782899986434139744375617824100088904557435688895771803661877726329306904029030755206300485639089268727860394089025840470733460655766895624093365263942642223031044012411710508649897879468608422141600404994074820802906415894496265604948788907603679018032737579451260014373541358419920718005166762928714075572612236027300004216968315382638340980616512062664981687529620309627835299002567449642322017453600008807692688791042619726408486385041085971540984772769157712830954018469453526557112334949284306243112893955270838263795600700672896818405711617603350571294876543363769022858948258612793455925156156199083826071389659203014824153274185507802824725878275185644447715137370601192395248355949296328469425836726397795270958355948711798558078177875790520015334373752112946062952136010376449255496044374453048098539735334259802999895298088669671596546687289707913941674580183667056671938118110811969782847847028910956709755562088294940127206385082511670041256340284801602684337914416209618058663511079142368270855748009700623211406609953910633129755324711080673443417524700003068189163263358155499327047238793211352594045161925138546502296040277285350350486808733654892177901334926440234218347405097143053447718455589825347819122099836640048703772229608829108381749943666727982753438366241414524029936157016733988864172007511064606286904094983456405161174207147501571041048753519125165733276943034696254731509584880609497465987464001907934426382509842851579398875580610777574007455206703348255823545912744222953126245606321784359638289822174390726402229823638844766207500510650643373961634757177001394346126267442273769884558927298114316315863700420837998437541364983600980991727660059043730574826512605951309294191486924262300336791443143574834585145608264469427955540674968043373536668123043099200836225452852357588623135368186692654721396030488771284278419215750713454031323037276866285526486706455902419283817151001420084421766816957509952597934170349346380292630947102231130316588827567498333449714228793302280938698941838459199969044386737348639589100879520713411274532723969329454675610510632921682593289699380716265832512471325664883258962270501511926882468151463184677657415495550638981599412216941292854308900470067087918180249509656507207317768568225900590381208505222518150262146480623763106759412190816171331726023395656138704172417229951411899123612510484672196949756903650034434273538534457730794299498098224873780108928524365423897926353594424802695361962663367947084375819751712538931576584923921001463362521883550823502901933611349267521971065975895043889549662074692270559828300561538544254758514851654257869791042935257505855079291297619040685860595009596488490379339721832026370518844939674594271267718265694710785473329891431488445861655365652411810891212670766644266790661014143766549936958417707813871049998173811617753853206520784721502296705238963223014499393991524603007442686290464882134072929248299415017890545111576100257105581036024287698595210076084506826977695896656226977127524051674768960682463026076222823070981599319682448806806508389955239512482803946601561462985652834352541848101957405328606205803744285806189649510225372295573772329594101947514880574275562891859750057514083415528374471439494647045221289411118367607517961026013918541662766949518370100859240849724660567692080161305760923992817831275275109997013124406451710244839844014251055473198572233515744873469684023036802713610567031580645838117046387190869602969489518281861257470476779956277464035236775282437863307184009762406184635907200732245063538380667438126385835136763307858665453358128009407383058028262238519013866865392716282623390597877857241317880933087238358247003065795926895339180921550936767484608995900940418187018576417171545117824684891032251875096549350033039445417649431666527308722080544271887796003210400767617108939466021048266331849195497910027716894068563816184057027067789997252242840876388722289384298955706038339056659486735052256287179236513383019453748040383463381696491259237593728671682655461957158231537511669026664243990340911155869976848758670484659608744929175852205974451019904474329965468188748343197723096060046746720443812076789261657041870200400770977852920249442222456057978220960344797628240142563272279593097346027755224378211922759262434992300673271130946743409564724313118344497274583767469772024709644168097687494047961801213231194372498220788917453481654662419410641130743878011532169880199612041357497679668231841949687399401522315860821499907979105578719486647645216077030502177619313007838548362724375265156366756217531858595135473181422042416380649920516482502780867316819936218482350167025363469589178009408855699294526792242951839428655335549077852057718371705341835488655874849891577720343122347807317709403927273835040402478224419727427616232736370410490748607971401897830087708190641647330938130292377013391660650257027204797042430947527597298413348722532038129973993957716987012509179491680471731031290713679412431016442286209992084777209807771079755316604024096610524016444054643131238902120478043934517158300909546536131478124185316341377692740626194001804265543907754465790082004101139789356133001112788314917509176528240629609666822592172535652695200039365664665752284294449616911234783867564110851383280535974378747049363378022909804479824118627722588210349903729616850841363935694509628742289803380883315679922971978843115130969005375245784693862751238244435820518946664721792876705315304671139989334259428110011583423386353173422474337580687287566418685479860731500300045364886768986789349256988159340469668083704059559772806031452146815104634267543462420747670776459507270702257055392683142444953578557444250458557117241731776676809250715829686736316897842096004826348875674414177018632993544585172035520496651993146440125450888652349626729694192449884168880796228350043720316187841365614133245537362475355011400401023862414761982066810087192086601609415273553510837470915542104373771672401650516321950036285378053691097349056441847974511374307504447312024681445071717716051778657771150382123124303664142620459307621482582899623909634928448576834801898172708310665110385233273955132546322341802972773700171996222660410047209565150104616640711503487036956752143445761580109279823968306524908458604685410406654919616851201714310066187960992958702142956223466560796555620395287535544542296117274743663228702462801909869506306725205739577327043987663051366042730709202686902618307251976986374274650305243130024395438190148326823158087074442180283578337713507391079965799728772369642115684313452308532145156753563861602533142001712301243381224188064533323989031678790291083257602411210341737439530138716456631894586820569079303086240529350367713572089647962217032467952684275143500010832172794638286986204471794242458957086509178856652311331845786844329572963514121575117533102062515872678215403117914352185697338781593607356817322205856164679367220069643145389539400058466461201595994797558353554171656535336493864806514183013647120776358258941331435426259702583890019021299565511934163534393179899900460262792585914664181184333254175873762786330806226622222890266268990796454972514690811219596943490685844517621876261736470579167575477169220148365069105832541299353919333329205933775651839046623669909405080915548150194356372654725928776138178531563928030696896646177961692561511785159594637584909297379298593856278409962480654588024920994300100086990467231483569714028913789317848308931015966569579424319879942770694209848874932465779351926277089042330356458256605923678827430398508590255512944065230882586250581805494113440245861595857434381246426846444535763761838766119598300927089594811759736855507859251377033459684644418164453444356950375042832999886718544084546996082414389354734313887201738548858639662507913937011016368728277201317771093641480386214807983133804097729898029223418386323142118537111105598987115013482111026379050911555871027387054957048685270386280938002062811182317697495478436760586491577517348011948746041254187009271047501403867778809415160035433671254827424896119443214795990169615688224720874916806150115778168446248036533283326079181263131689195761730918783483735400452025999431885683893811972464382925351697395295618383873902981948711488595171797005255863098700959375996378032847942439129426547064790982799256454020710535939170610016798209120903726190002931487715214420709909086023368612568545501233773301666777305572596128151015949010021640108057030283070561141109817802741567062976691338014927953882027182089330397728482922838922192997975309935152206627767063958531020131152275325759398167354953180416087442669585107011280218717387450506599350208461507675692700105165710440367049768889197189407339731706961416024938097718283980760360583480318855599985741808502422351016577330122772992291009710154718744091978762257310942596352801095643766285223002880408581676046121064093779387395090703554187738274739445330572555215439294266859349264323136546245720268128783022060403452004066172534169837887175743306025325528823514618444162909227473791977163763275802401983668325178089839808322555026965053188697332434738299024166335975833390375371034884918357283211803432994788602412308543189891195843153350999776527784125371876482312281403307329611796713455412516572971009420801472226214787521460298356218276181159304744604007346157489979503866875652629376928410301826175384657825805855960212493635362377139744180302798300445746950278123389299614847751142433777841993511675609281147301410853526060063784368099542746016978960720954300904033083932633700334297640839748684313910926564304861179160208684238783315424707364758121057429429114845788692055984849281414404453210659604567662308031696815494524852831273397986741029704782271495246178305396891957917956802057667691973598218002760421658822718935192185640645692459130300034831516707962895608120853252738343136653575924625980104331795503505570175279622144688630040419075923548166792914115019452020477119487104962315672445302437625492325501581967525453625807579636653989763561188905730979014488802533929134304727218514276666048722178747213892774697426318126879555719172635181460794305258370746038451515218297648284738537534674147211511694010064776044228298968018291922692016372051980573445957174501390981769689670252052293500403899769229028660450238133240991228736966972916648329035369590237056245339347100916468971823864300560470172315348024247433816840923368065134508270530173832889233508305106409239233583919559261978914093134351029851594628569720052013295650990068497397171214729569737362892336983147496784038119011661522580695884520560696522789427337534711737087174192936053022477962608827398010615548576000789811782000164925534745480881651314037210484932479222995563527104989745814313600059179690936357492025233956530926814970834109728535047010326242012505890904831011021010241877342035968242453991950452207870289454830862778669015181835201899931739646951242027798507707642395290467180998116050235707997583000302996298994944576696299807715033236177634971907407854521954680720430039407631370765393863033402861258193676064806844932579548772631955616163615800470749778766810746181790874020674461545105649131324532036730893943464719973541540933603348223691548138155717887030539250746336700313367571223824212139172921413882702294854959495060379948555098493945863255405183358102133239892583531925929746268353126583545911247118650902025041857784191627770516976667541210750991224149507363672815388822419094331535480777833314360966573780238341778064912928159950315929911807507161700393840790185886562611719191730254908668322867374596099507341411281751400228205676156224197942037498009452065397484124507359099405255340723170097448956800413151100437175316358007950937378572785382440544768646184665474109686023050710549114464135504319598320905207838705034432742588359327465971002002628349227958170155810451030077615721827222511861040518767310756744237382903058307057204215487171678178754040030318166615595069229647639377779068188834046364344166379997122098392542896532980845273998844586982635416254479510469829376245521863625488333743823004710219586475809000537711624461342422724562124658157930415298220917099598680250664068440609178171726332519662643686566840521753901494349339917024102661124404092366965514227341042638358103444499167183400106756161040460646108081810910106120082932811850221978738247136081077406509593747809435733253720071827363002579075239579145727518867444200351281182018510994910793624869768067080866266247648151606959079558265330156882693609968503804267788232864587569678194316197733517461348443260181042703696468465927458776939650875883960486389790195245261664605446742191014662140326723948540588122531506442781396543062584009870178771452929971279970467559681180926444945356010408554988310014960797081625346698054537251870946852388696128977500381485282723326547517196246754833298604559938576512581935577236513407303963593697366058702053947114613651616483046321483363939453755272968484365248523234658022003849485300496342355984598529369551197192006632327434037936773320930380528603614996127410294444854681495353395831125323047692429790527623633518132057364062257502731220761631140872387754375328413630531711010206299614868277655850699526498238648133853742693941519037441584178229445412878737378221438821468245600744994418060538539228318110342975844809488993366323366866063521385918438989955461242797883268524388451497795845958762408540107008179244841620621475262542338418812434844363697269405667490252132629214673140352204651420964127970414349716118634292084960957277184400183486113830987376429320962853357005841961684321343935060195018568761124274807790458131755383916712061216809154466302965954339624551276440683624171543703466177240623003489194475383489594211761244093500371518938641827396434342680484899148537849192042895542878890967106337708908132259997950311846122134232531061679058236980251268466186209977477014871613934295841180720496313943362027451699740852128280705095086102783652519197958833530666229328158473022732247754970737937834433288485659373854022585923983030039942572185258139569052596178812259815865860826183061348394628963129309886460761892843279296220027320549285973729284944391342423534102897325427813600137965938349342598457102431000765276791140457337472677424360328068185076294956464144138256233949534613238909205139712838086737829759693914283285806536886879336289507576749881514115058720933141471986499282218289651017428204059061500370780825198122767652657093924555963697172812777993612199351749731495180396194042305478819583338773119910152854022806978541312803830532719057927383503341214725574513246684719050151327231816906602385527807782404184230878690164280692339074361584763091740664269086063523889886607227093414280724961964662888802054740717826787773942283067868496455484755045796469333755175905540564400623385212435090347363820210214746236687340671539398649536450564073380734461975654932529237471717461033358567645003873552585608136600581493305010153368804699134023370703842955872909417071586080975102807666157925076370625914680405638480700166492627818987411048160987357183253852091191394488728575193381062833274498006013937970475797166725344089638056156544585227132195734345286586518079888600643395895434275859224422506181340125021737406714232267588753006718423956077165764330594677522979403755355252620616361444600502846280126252435307208297930055968156562708537724082465866291151756790210952196801018596504089655947507577337890521008403286748128182122942241673442782779412155666449550054957591878086365606156205363957219841921159274728397251855072544441722083179906876124543227341149977029037475707201849572510731596920205124191535751883171587075264385349139634775758822190901287807312887065275266872425709094762751597054788443971022456389242629665506491484615616539337546379295042680936355940595885965466985357865590074064210871438342838050478736823024458098017669703702807163479946532466990156481686545164038405529448786596542226268437853343642052187363633809031130360473726758098298449945816130312157255247722043159727967615070494012732481838676686547436347543962075749400371766256112462518394833060734151315340810245675726246893357371293764388146390739995456775515392561014375910075895417930869491942087769656048553316991856963777311119125480613022708828447594274649550023024037140637235630582906962252071245919648841817273888346649908738191735434960547885729683484936458770527252068401560969688783133262055333413800756058189848099248874014464170751612214355790163002262285483028121522457440256104892022942670353247541917883867056630087580636971806615485269908039139674335014988511972057369608291248757474185508878107633769683648917245557838558123499627196174482630979798834149439837983620223108950791852190271278531958490515502075913408084084408040165016947603366245592157485763038638585583114093572800868290302910874143512769038382401749714697004910737903976507131753769377844081836993023076751040341350445438059592385254610087206803380735549642014038846734489217465972402601863322902591253158767625550713702212399161571753372635643021248301463760482977625200870650285197030760110327050137982612223086108508111368860562757692550336652405345749856702002298405448924049369366810662031192219824974834244691359293731989542076580833952651827338643421891272483275795996756798552748084671323485380855852910852435763544969032949303947437079993699149412985787478790314368673004119449845660105802510390185316785510545970878486669761537170833138918702139875487732807870583471578051198083044541633356131207276810791597679454648911955859253681589580899694263443971557689525043498059088615782507308549852990561130211119312511333365193259658207984316882388436411634068094777604048958415721832097824542732011360290724458416821343053197430840865087572869866963350349696633523763678120238934627207312988987335971704042314267048428740081150680435948332696860084839091295588090858785144502611660988053331255356759467401664108421525096240996974234864770930761003758024671720090277759594066289144501019760672450603157774461286701596260038684990188999247864167916145460827364345638412683361194359118546157078842164571269005442427887398367350192364593991411410189135327631685883439219017964268295923613764011208267774369823806436695458284274784063021392867836346950081913551588851919641974053628914036486485322620376444653256079591264348379428551133404478213956937668637634320112781461333130262892842532685945729002977960780685001922788008029304691750771959585773348488095147235165451277272344451188929792323443851772387076546057138742728890158479056670269996049158074468140642158653818520862592801164255390508383657810633622927529477171498153902321097728302456853953211651885607395985124116753317026934868213107634155681035901263998447112042850738512819306148484496782838488328658485319047267154185874958971434572507462832207962559506442235360984613036244786882337376767182478359726853519657371228646428767428807792633500227444984956631419605023415729289287912999469182731479821822021881739181004927432797253126272334638662053052921465331917116189709673128019701739689099877895840655489257208314583878150578856930564005388405191192438077440510380260736676801251936152587569537696060399793193618384947100319578475241874178602792734216059106040669165884923974718114455776948523751211192149320088237892794011174752677735475560244912055270084590953541347482514006736244143411909850518277797701815530097860476085827194828650104388714784658603187857787230440123519022548777884394553541021494203145866533598478002993189784113458554831495847830672577916060301056375784608132681683608623522240419858573393040116302540016319200406362032703467937267373512414150222776715114958319594850492152235875432383668971153321123667213235382458713015818647444413692404024677877802763541366906520515002563759975333937750270672071624468445200860355471678601023130761115952530609032983467430251586237724894019661183682917320760059129191410002721892218034256894808876115597933455178049482441851791059547184540028687378084461517469372966460879125511507766714670849918199547026630362248545381295950806828943960277754739081097565800880745700725970073358477622150572719991287920203086992882297561719252602963066495197302889285897557629157275403697140288621990132101046056359036957250239441471433911840768269877836106345077040599030773990777557708127242558050046137103791827450073965879686365694047246414616338994327422557838899535153167586781174806154568639324779342315468422219705855099429829400167242095775198146087621362995397982826897782969851681630986231949447175588943708588866064362014919149657708158822632966985274402952019753718138043248325189145694601550724353384968200100019004381858890606692529794798057397494217833050133898288255011578069006627474190318033962150854484821519201425766215323524099872250105016896372933491703603556879489383460831978454222571323353624626974278194942220870059237424421839683052828326470920959018992710061506939223661014777523362662616928045921568810913200721966798708337397111786946863664189546452626086245897295144571672708824882027747008952566156134078475733181092255138512944789508173995493776391598764435650899752851214740528963183013500486379046501000562178354284804387854090909497151714108557327468491541505415369723059694011396200927648442110463368479351741777665429224305692230639564531261144616860278872592535402550399392454786589143813216149503599981611428670095846659903435223796858566451285114525469157863459830166224753022102258625000909229458771377508040037451277048580485783881911548933178241311147327342468113496342729233739580905969892848134012737059055368461904349453395200951624507722481600248686086581307460170973861826420388058900407447790819007164034979982221452603176307599772712416842945650804233097607008500889228507693294927005571173626339280367526132584138818086360574748446515965629552823272843194571028854357109343664198856986958888630017303538935762132785673045755279915189666083656755147734097013308201976896770157659320415904439159482746836082634475351244626488172454940827128975532854550001511952647516053061648959280785473511179800717700158681272974365080878601968364373953752180076324232075381156234546591640158534157797261686180514094770991807389893214783760315551280381335000195833791345806804195809201235241903505482444136236642925045033348566996408002633957426731977048304522921005328354674351457269996681757201193552316569153508201649570194517278615054979702095641198060594896419007476002957473022186015298045814552830048143897387160308868609524271175137014219600417588514956279185323815795399100847923308567267908385978754936082755803353311066543854532033022859628834187895380306693999328805349877694488156662909018946521025854947099892862129382711383102671046959736073855622822880663340280200645247030876434220095341801903122650901967698195159410976622593934792937619759112999554658474455605586990332596056671987717023923523832974283951659573589721038252482003586850930515210489227198244993802275533745299365399099750102589596987889328954142361205612049073659500389239077006808300513768031341637864039678708297929191634599443913585109225712960999523978640462032379601587832345473080712827077853508665120408507031647897366562457849032699145357744653514324582640087152940942703020018300108394532639515542415203778033447106953892140161741244800874067410637634990277194572418879638380399539577246600925736259245513996573452850490896448311088025314579598206743641099222319745782721683584945062072473966090611956585324318609179528959037158379000810173017338647450141767006463609762204133227708190313861295787985271894499622522077373680695763870473475978189169093872477659128852572372261563995265840269615705237289390797046041158792263028724709842774857800285402185077457174455910229725519026439042922560701160337680769987052652651440820199573162199091711451126610749135744987128026134954960953656347244232871181471894489592808790393746259034304745520970930188882042163347158427653184529948356528400023214092602071984355342200779273761917669915648215182765084293639102910873153490851102896072522387613736090072481397800951802753070673388275403994340901742655334567500770423644678826573114867288922176138341650727308973159155951348941885653795708803979380245600594070522001137075031801145932431942236448702052216918911633864697865495798186742178814061445194920287126548438252716803180975068505718092217976011325007571138327535148174784633629846302142522296944460661188559985064355999106782096354307932270855547420153745539962374251348812721722934479529837891049325811570591545368861488920199245171322348588092916447320413402241090504736682980975562957431827567811080540380655593810789393709513272469236458157218295939637480986002786747935600153920093909336077607978710289161523864554813723395564555832284060799382604096552841639996909437154347568562111681573256682796811851726233261716829310312608388395811442314998561103830174387123660089161793455872664588912290996067655804898666019478570094780223904676074722800587732408537444121859152596811107523419934883558361169983186753333567484940066607860703353737057138033733180959045860989710281096754575923100466656277853459498024209472389355089763960993585385184588068981322418976480550543112486556817183208894202294904620519416897226223749534940077188786378308880033504104849232245839931287699153111339352035311631189698261253696256380564904275207264231237141332697193649967025624653383240239436234007560533530224472029465789255953516252860179804638525790836009930557565978323325351231045327135946047764685926004786503869972359781006889713127810809020003242541137266389300155348435901759341551437651708844139761055160190648502259801891791277281846059062706250173441387099932056724783958448374124516692866469338773383962847032500039164975518071570711199156218625090684323580786671386085949853192496099412783477889441515024148700883434375411148252502405005427204055961589267717261808193633446009060209872304218787352777462228483398641712576013754507316361507328836459566775299827854666914549777849030448132044882934344071714686995795125761843512626219596108926914061636048223859570404789434919622486305310732230166382515510355788440627501452021793848167128456082357146400965737026098958975325834104547205787647290457354065482751220562734411598200446630435755637832909802340346743408694759942032679982935048562887301625446340568694313131302204925191248986949750103898136436624778981667065922009947905412222908570912871033916216836078227308788032262435997751310029614273385242632225953892721158049966556191940815117135370355930007864595792484803380689248805087843371058142618012229689408720812070795609351987149701227189267220916666661295935320510935808934371054152227513601924259832503172715001938767494472013940649015068794453224100740935130221792060990143496895035423727777752300630975893175796721284821597861887549323439703486306086314269808370574213017134722506929995142586407133674078568758153945833492184515848713734356835402865171112532181355730426239265411284832912453258330145645513571914770093425483535246233386380464717097927924717680289982132981938551449518091056346807668760778137057276505806406115784703942360825118298059830010585581887432305945616984771610473001925886830215547552195066760281695230658635296468815026445081722117660078992580671166748759131712162495076408817359313441389472050629971172115937556381291702107341401557021080881535666395203637202244390009836566037328976526044280902174413768021142240746142573209633532763039696153835032540830700095976160919568413235596939286922437417248494112434343098570496153862624041063104959480882691468438679266092405421474203751762399452048852014725594583156638244083862513491840386971681068243901954727952154346053110355304474169542583884152690847026530077161136461800308260912909612236029906511854920398612391630619200033974649730288295642464453136673773035207129094193188067519521710685495241829428639410065983998802996615204196629586130428033280919252501620153792311150594998338038462579207469841722599745914300255902920614751511291125229042392448138239035513502614475737825934009394307162080281226849171403899130647817381785215661762288217112695224306284934827741461591388014079658099414230163060929726444532535395268504124294496599531140521987910517515362040178737439755654316769263767580832857990179143297278422232166207451062335390603622831180808398482272948298073816028392285072841521078366754394556922236176036448807464607999321964944382018179485262879927154148755651145579264427691004175433014893266567420612138127104060996332762206824931354894689126453429730482961648710082900219260624030432248147888252191571808739161486234498105003909004869630839318962261766166048020581182474808122776151842813260417909766259893423924027233830782688023605403134230819530435872427079492435782230217423560605589219240407858407990163424350293222788974453881608064970317459993825460275014275205630813721833742186650483839216067931185596223163025777622018365784889446944348574431040362253150117136037390098000070735855751038982994834615641702128167920203664992052587465612889594847669237460147987886793682631711701867483809697470088584763198859412914869469690134363879104810906788234778256810697726109705341265219151420367520108179360662710810643372149086519923191862877032495416160979249443752956001132931078589062714321468411503407137139321296347347616097368959158350617559885641275084136745338049319918652977198584369920304765107790878796369294775778070758121469506225296882418626517887345509541173540288649093152387071757062374795207218903879497831189796714026513731011542292332295831382719427340017149381666579434667180030475683486236938846623138087021749464565729387000471415140050068153122405442151820854991989324689934352098940922294899664109133368025528709928379996763232228835409431364474091912580037116398022432230742773895281835108169846880539023107143564889761247828420501424950952621104165341662110451606017455229108581192625168924361776528513241255113823754090386780285279868884110113478168866976785389732628668581091408475942028139490385769786454530577544397257191390291908223310035747246710863372234341299142891419032380128830009703972921159513838313923748353406618626657058093121486575896426710130832592668659249678022055419533297897987084532897137297286711908967062796712225968693681118130553756858734097640882385241536106195041589528474660166365020746133839974828972167238773122842845476073718857062716088737539607938223036442214387337963350715242657054428847587982007041868763592002632846539996804400503543443056686724988035682741790145352933155063389200988794490589245342931162276738531953734667321229705744288418552202502105484767083084126708385354885541691766303375240787523675486055121686766585588085345403010192900059204144178214959463892987343025045217251103339769606681766345551358475159084074055992208479836772327635263116007273490099845968526670290359772938982235314405871895153389722806886201075430359358196357419207174488504377831685398617088571476686578134733528141518136956342337501560890207309814320973579180836334566813289174874414888740692875806413016399562468942861635918857190722885649104317379930049623213121099149155006361582718123701429948175735988397456523053053982400546822108439828391294216736521172677598689975599820465109173032189895679425820896157289990759213322884856125061117193913395542949089863838422379667172049000045728496918470113572518937785709279904827100607649362427957994566303367594022010040970828119003149570426981123597492242473253264706996008725530009650551022350350820175858043162428337495930408276721512885774241099056057100168456664736448484891781649300199759348693449170117105270892916914724450875028278270621345281866036037865948502479735460955390158415692053059401775059222153351819833411244229539503756899561888518781757396799737328818405949335292788852359520550687906192007051120605046189469724409433671417228719755728497315660740814577648484311352823859242457155198609547639939367201799314253158092665459833698548292821786884222137905340065512001485249958497285232983302110631457658664429461628454134923262338546595481931029476194684634639575420472165365576482104953023644186138759891022857560685361001250994975958188092845419020269450327199516656777511188654230379304950154447195022937586910655651726384948493230855919506008859283359439678159884179918231271029896908162471708560672890777831370992222175051823819631219029541775902723269087793976477681778059834158859459391190237109589440741622423321915605199855103432935479493343886137736438033353737640717970182409575091075062163305438790421458059317344329505490234969439339060080930432649096526287391854793997507414538096810489917243334225081661664327934028680749413650508024954588926750406670765100886737207712202007206602276210019732463169423539091206093218165091454829180817187034508708580138447408089810060526881795618241835881299663593687244758497501750414304847319911257499010975392496715445105790693123368483174227246276760510399203883389384115650700257253197521160751964293842469347415331030402710813494957050091392614313130224859562913358366658354343194769398766033808228312143046476826662534560342581223295589636532784012358496471791790385080219524760372757377404216600420874458527511341717077093182658333035637540011813051035777226727073821207358989439781910513953148563197893918744927139391291376250925965312655722166374166106937569655882384065747494922437411499039268097446538320183088110535179283626452983864817704761405349802652961276820622350107778613384052764147669204731160763263061524957556945840453225674157123628707454964903110321399660050705467650118171129800070952569549337332171283379093319514328320666394026579694881198496191402640888200263536868275507966768132463007686268740024567776353378118217566098349501975620401054939435752543231469750689896081345916059236919796114392558368668652016128273461287033223357118570277476875359063199665192756172132031101802469534500157987316066859490417455302084082972748021088719408401477941519543063846112539770034819544742243536636790423634446605367833356512899703753325890832129292295390678546308354591935176040131604467939833447626827846168463850728823394354688477846247918549778383623221391546036603610828186069447232194050832610468424251469589097240041517014183559781347662353235040432674006132955541826638917005887951328706268963969770849344615433029498904127013090590919971277219544192621398664194946545850569030291238705145024452759222656617191131174522964254150418961297620733684803512768092660832211495073843626586454333642919321646393407179586324491505278930082409122912380933731515634353795289371585224316063831247250410799913554156241334646524774900783162340014845311282534569345712758322098244632245009103113033333777927509513713019088863007411600718206746363999569386489533659085630303135703617772611524322215829847125599530087968426405181776525924446955614363941200107825082322342057428659831483937293947685652781448024379396364087062162300471648400610624270153296712884496641945782535779761610064882558610304918246091956647792976438084049184591747858392873154371004688509504328974797533132794512972176960162150355181003256310957949879615879091215452043239923351645956895961523517101396699747253534219963622604532089010393762263402156857289291655499665354894221421883605939376206624392731016442075662508794732839600280828386183281777558879794651128741136391587029952495029075270879806654413208943626665578630692560414624456561861233893618298287789741356463006985677785943944773936793899328192105931501335741853009550225502427017014825057212255964153407767007569856955596816344379912191056919685496123013344832039923473191907688039514065563076568747916513509801956111216837831738058270759268581811420695178832424891086826081677905502626632894389689844738985721095654053241294463256606909750498146425639768394203350691237062526538125345704507081428918061329498884698418653860662752573840547966703637223874574111512172714197951543737228444746212071179597877555078678399888750355811015236016966821261076637616477424210801010595415745780652693564093084468092852332296780300419132599413086661067965844009907252213764562873894789371974819491711828309637695743985120252699940854648636470258859203490998921570012223715543502352536881725101889641224698027756540993059878086545278834255905640663167460914268316588072761978759540547207111584420846632830228104067977131711707223881278942927826168832693751439042138180502511418531614738861296992885235421821337887091701520586668019396462302839990504036859648481686655078018239221032623777966722714577183894564331882755326876637780029750638340175348629265309645267858869705176733893551389248761160281192498405966588299020863264905582806810170553926345466255866738866828236731323576677822747830475234674386844473591790188005837869753087591256769936199751347548547643190261245942928457211033020239226742838027786149683777294368001787931587608939112253954154398499114940163510485175606168872204348899245442379674760109542521604851156562801198654732945515806350800812547370529652013718607711888711936044782447762966965535498292887288838844605153120975045813632735098771669060893481160721850891982256153441512943070939354127635089132401012455733675997211511245282611943116433462527749380668441130932818683941022035027671447890684726473337331061468052570031242509437523914614183444453056329519790979078493723459403744618372109144963197452994349333470987600246591563405826411515987505333304108435873598141389774544206134014564380523099760713115941382630077760005360396543510093274857835959787276985931567978947959960385165524717675900811367489997156316695597914374009251460954767862320157981577866411841760833192985639250827053441628896744823215900329680908521663449740609252418679354020362008820208224505211137483136354939325619420605693102240930382624161126290767019964746934066427335917598261455414480681383259083925705938075376177526099354012315596461607280277005917114455192848579222657932892953929837571039297231657223790799140086093353972057210156699117362746315688244233823056159117720789434032060633111881487533478529275874083958871817727777656843914586201257685099759217979269905508074141537210690874925911981178690653633240469217100060958390587826633908802126549433380508504375655511198537275704872003265925347707192294846495790902576049580356852121889454586910522219841282939704037383960747789758626744147723908978546310098924155939914938717018702951755760955727957021854291949071241644004451987063983231941805487221048112727930931619560429629324088115401742035752023808756541207284430184615228283703396224518138330573285220641312500930543301255361001819735257828342851130572329865962270661185137237958947520405885167715066499067960438330943457225196558995233837981067390592416711548532272663965621218298489699509925573683624370372810638641313389380200845644100245464413949660530359478469791564556525999528238808200148944195687403144863387053026521408880166978588224738028039787344387593697928417660436677879371413381260420130165214839013711626081253418945345949602955335747116439133522169049006869031616594704276341988304390468314185027909053999748715867054593026874849181597835256031094619568233083638116577269326868291040001251616689251889883386835236513051876957961262718396231837686823636831591569292399496112027708584421549893497674773423078890212703395344663782343009989353993579650711883325126771338187704010655336493589425914886330395372419072206910735617555650728843185768221350957535960513688769988996344887369134359740158360616678834023270447135204562291206860657312698235388104611767909686367661594838113249406461610789371323018664614684636445871889763551384251503382751828933539011408435998121516967902426927303892808069117963289819016508094723488307766770886181932800918564011289024907786813914061785097015420980309109272648958579960955196495003129605001424201507831835305443375519752069617655901030168372711232388288722238721411562630392394075880405962676458199593896934931360131662306567735011157244767976623569875437443642833802481657186680298742262346499331228039889396452807517701949627850975644730695574101338246938531613539595533917065232699562095416107407463779550762511814443837306865162040573093451705919837194086215610709873178929411652323209676441440254059650467658676118426870548041584369797361536178436509467834772399759530916982223496782133428602231658140926872851357167277725374115668469119248626912947909584316825493431962374583046969206291655634982734188089764102082391068430851130802657694263462786748240968302796956142092411483230565191280612087327625354931250526326321631759281498487082534747354896400569923286815399284141699991145041729142138876107100772438355981796389825471320145262533472018693868358288768158015972615816499099947484546063511518075737512609442783434883980040150211428461938575214678187302665657005486641646916427231424288020888187914089617657646050043482397501572540047090411395964202054291062746681622010308346527162863013351819065945127916410456507913832571448072358091170119292377864705662829258128284082144640158543965589450139289791115101259831706911953490823181392926180918980606060108411754917799845018019136387465743617790539522784565882249876341286688659900882042169715526025721290520027049160577204236416851931904293413243309933511858457546830687696678292297270314723768935111209074374760534097385290522971823656229758026047464556929211191634056617461962314337998533459254047591965685826564857758889958953055287046567142509606929645912095231041141460657097859295177702259412900162995243837858036978401030708675583757735437931368128954766104616136449069167000149928982187040609290279535777106045117340050287074869204162118514349371541996268826277785066694227616562977212670358153008149628156952544191882852605729971335944173103229208274386944607296886268177495903698836880857206042826925402667970105134063934511368742166595254372537113983900646043090495379652721156338884799567778434619461421919997303368936262448204767558734898506426815846880138803858449190280329573722521515711163067451261794820995601732098529617553230524614987561976497455566040819378348006367043988372282901232464383267555340471003826107487528772255819326334589447161248523292540107434390715763846558362127996064070550768923094816569716380863062621976343741522784859545347992750805041232460433050065618098245935576935412041016393191366536598436160000061338836209263337531943115345332322198060669150983777205936481473014982886302475534849239291310261447405742004314588157970147981400534658060868946728347770586178703383744590462624521569346399460518329226145159517427122967104616288387544944768733923846404561949370431887908574905400435087494992400631119484066899237799859112780340745339601573642488070279871129590186990981324327917923604568703517232521641236748977601583106417309410067047662188246295779852787049088168542893802875124403611129374851541863436248188708079436379212690286690105550611909885770425842111331078084410675186442656419165986443723481060289534297563990908197666864764798183719442837183651183352168673909981554472805721227041627452395347153553999015124769192578500073271190729793637378835251652428866643150733116936436502777716984511747647977537059550289910673791457171078995685993097618274503578170189086906115783837391965637665466669105906637104737397693301621058398523458922363347959318786374313381086082415364641418576990980096234607507989891455621330003961403542738686149728327728233348671733486748044378181203806683943822792867235924305732142797657071559682849245547938630234829180540754878975901591048923539750373855259504813767043487273639296325339150895949638266758034815468780586847662948688782983676897586602050167620305956518659338567250030513045827601013026037787085772905534296512895783550807552712144532682943270560161662987038902541124250166690411117964242900430344541839239145502012119832049906412828498305035332174382315563358431466695784615386283948092211374567056980675835050676941082081598172937970509825196484275855720006593113148849994964986224887285315986033684412041015061347849582084321097287106590706506553187761568515723513843417855239645116146857446471269782428448230206717774783298662858928866665861299457760561717487954749720509311156631326394815000849160088203240720529293626059222679227869244634170512430937463421948311491231627475549337851388042725613150145071530668919219554198363368972197571080501101922210925885477907740346979923737407464710416808242820807136036774987214080071247578066174921427216437346080840171913459250010975756162167715958608531697485227557621626609826125258469468152718486644453937249356626933621701743883427955173259070860750992480809843628090004074193911778787797469238807920317356057101844542353553077439425689995554226252050843998876487315791399478571751374021797356888876318962766038896453137648759847775768302604628455989536225032154271457026672348879999284556158392891591863562394299531064015336448047900617999866235905193936937651565746196528292717781893657415276186124026058653515182537554117032712603299236888081140168975105173555193627720218028824337716762456984420144174591588853379879336639936221129594102511166830201637377415332112015234447998773257762671131441227509143561463656451152162060584429144108383145917092292152860166991563289215890789057090343019996670202303389647105731430670856514492705534906813179259127046854628861643113748207563602231305002134362905332439035304664399281294670931251487146252936865729201236805738106661533431140581258277624694521459465275990297297079482419968831020941150757263542601959757233593293229472530834469372103884415974178387033752766995035098392320950207000619949782816163760236002615027593670677229924263493914429858128858479115063117225856297273629560322074001055639201754780691874349621743890537619555908199488016090765448356233751701103814938394456983550114727133819008239230501805570970617679984324656654177447874478219080969778151093137943686064224089565517778245954462553585435513226915316989270331165094559469824901888095068383091487358393597924022799305150617080371886670187546475646118147052849904476948581437935002207594991647700202524469964018802712394148855478996616501564622815052862683524274749735687322334393186478492272627538433001101334046627994992444348989338069691736235345972345355715783159864542239611482194835130486391099441898946796266000089155480706536152801683983719467832074175917013822495723765797661865158439784895576921238274852528917850393723954781313106321784758376615606515427931948070293914426881359557975417694808338161465949109089411043643442425868980318433908804610974565035093365093391661666456298952136513313971374859447340109365124976607002431090979338367083796761477495408322133774990570760342874104779172461721706796287823602000235784463275576366480573050462113032910799855326024500821376856622610524154605833962707466757855379747291300486469658720935254953305312024070364934261756636788052108086331651510107772579442796259708011409143536784563077271917942752158982827740255866101056532857879870527280400777049094211289113934984300228338110525631910666532988343826960322967254127038829330137029315445924327453111235888526754228589753552234767569493577438545607402740934627944207433205207161886746980224113464858259044064176332908811852466366976060453953839911336257472591327525743972938691410064892090938626148936645558806068809800850024864316416997335562030031984371526826927873286997373457570655686789528040159738622729014587160696962907371113650210843692234204530611653091151960772967910712974416456320575337635857233343189869242534397800072474432363766666329476566529360154729960796269171613361023989637154277340026938254301654654613517704474661745070478734081523265594948638887571655871570863498181539471056478494833913406172545629787023735461654865805236186243613916540840527762272664606813892391218553608091966866577368301218130305345193792854625010266924927322352844084037198292230639497724395631590525242948101130064265567831177358414560991177959909204567564861278199142936918824778456388277589354331682389605946952362260056383880531859489535920351452355701901314501392585601604441328537779247209101576667121935680304335102704702105355005790546839665441380447366436950142560237271006953186156218163440856584063872647364965247989419965184168816680212135031204968295437160139046274260128333966108409237782816664311097805972365359571076171920381917775728542577826425477234935819994665828740358371264938818375927400790464158815532073635964293316213520645771895635321130946704997370748144831418424372521591527348504074194486579625968328644830244668102235143509541309371385653276616119214360923954748671002486605763277543508107802369093078027422905650548361258758216920449045731612368134167007117999630948324233937094508000043973247471486752615543420969837188436336083729692272319400178356355653547987984277620950319057819986223034090759632496283083261239066521525030217915045462241618974808164526027921525147106031737042634666552033223964620132400049442861544341761607479689226981255033220452419809448551184998532794974717532619096652019027585830312296298852135397439434647764675487870544948358036845234438371605941155022841120354092921206539384532281783963437910796397369614339671740597486610543483676561618346745362472103381809168953793443369625610080707788709274929926639528607542363349686742119115849277743250768679298638386384736012713694036805482471921548294614908475034355825103218444357126945383419735503779699859345470180762180509994651597854423630927628446505708493558299428545609597881351313649851456220087022072123683464047481576598220891783086115963645707594506370076309527662551940071952803639892367967053087386752812712911165079564243452236219104439256007650910687396906609315013363587549037585907075501461430191225581258315118784772275127593235596290181800847546558994992993224876236391674724775001460671424383614298274425062237867851662478918060758613494524212624215489636368847976317887095574367763641369647870118690426564608090239628347533133526216754740763292237145133447800246725522906210390035520839741734441848523339669630236414931559658610443895061611674317418172748028543788984544104542883377178145567391918400398173928063228164066933160745412399462527804341813080825544505556792412957018953564161394853356316882685470596175233590440083337065085449976648482731796851406992261327265169452903988681603485991934398799723451791634833575967382570116430794570900387438774968777522015597155976918691649939442865890438804916921601406628612050024819031284744956603180085003069450751729319810274922239321034488567068313764198245275806843180632292708351210415308598090224527518404290732359682859100715862495288303361207730187802906335389694002177487306075796751733822227384057202993311166948302952367523021632249074980024060505939074099081655391667908659324428990515327712661614506454691733135521210194226727905609565183274257187089969380501145756705710053012586616446564741791358127955464698650803410316940013081933386620965641934608330944275361816740076713500444495876259685528640629089176120568758542415034194071720369532715334678461355398582201167579520023266077483324050248452008769870880121231112335484682662218288417999459068432075861753290742605501209364323223342029936498502276176460196068339328972819995027718597967659149542924148618449897483271393922504074144101169984492017813433995910610592166758958142536210422521880461069065718654439831708046046710485534402416314806349267068766378563969265078401031000166168304910611862315401893026520320640173446584941562869008772708891844477616224640409053343825943374211891026579851364734771468330868249090959099890704712810060777005378107442909323577506799803162573641996122662886855531914624239663188376023063683896730180215326893258560134183609587279780398027615867604713797338850791401718602031929638249690695814507630880400991964172040110384745238207371931851141585408601725044106120734284079968800143419345946727219115540554110288190943419386728946751114439636318511484295056910775448913493220591363441502142399104716988119059514080797573660805495186010931593720389910951207500159380718978983011363848998121986747403233759823270917798647220272547875976810741222839912535223333425073906481210278136154263740599494600231257766776855777802316917022914299922403392375616995052337816553694875994791140790029906156886250034476721701762774483420308455333188453916820163453505402688458365927976935834888412458931941307864669457161595866205155747282027405118926735782416965135224525355260278645499423681107056018653459832232773113681004703403875742404783082987186529693759480898457278367748841268926874154915169335784129051040191792260850509945619966748032371853794811187416843291006961183243171320489423415638469818680807194928127587413673696731580418483184119769379389893155241151887032286836079393373298436051547495897534552464622740794224255785501840010285903528091925193778641970405338380654329203012907961207025922977501011604444216369380024082275014296899901927160601007654077048766138870559159223831515267592043306962036426759947034793369482527868785769006007625126263348356158548521383591803553623550767207490406455183049474730454513647336931529600687801021998492193359952799674027241098415363569247709858532850403913008841808978875082706126773627334978377053640102939331164575137086445895307200026094358939914435331990531978930350921710901611069470933245883659644727418172858513409734634147491265905627955376815977485748838261317216321488315292337481443152526996563775539208803035526775318713923230032151096550601646030636593611399853484478183879401901848298362241403970712200228626283634718041726817518084221953950941586758802055530057612207093576981404440540381376290034329225960052484994252135364159201449757515901489185526195746148803506179858278401385230619610929475399492640667469994322433560649367400212016320169918861721008251382574448548684678032273675771897385379264708976423730661881439610315682296028129577959378219635164162847957341848509420862290951493559103853506806255905106544579592641680684828183936725868373139728800357118635480480141298212978094792685904999524571140595283455178888758579850729512791491357054723488763588732413359501540024882747414228487044260427415824286985991748156246902010491971679160813256165151777562273623958163307942897892136557854511297777024647789385540128128573104249017584895492938528017879069634164787237024932814179516074448039782985647691200768825189631130398236786764527350167558109073548673168938751296633200856016321160065207658866437722147393005312134773952900571113837939152945577888852895655099089493890709274343180793188801912158052603390145725396052428608283813280358635019706136073327081228580942325880426304478698752914285606812131367866203367713491984312640562522873706237361902760468768362038087302970693863208532035901030885831551138556773952713922579919698983001148599853918962802020143552447251017802096392722864717588611850938068893245411999483451131228861851638607161647883925232483770028737441830452638633937850681524624278714989213708942653872863789544639359253529017938040520075313109544204302289459864403738257078127845256593593502406270441066821635177628144872723342626576355959889645144862998293753241918574042294324985398212311431132714128264405022063096000901767191719304943209104488942463533350269699064344496622783795181034399162851328827134063496620645582974796515156401791147169547025290524471872869547162365753691359179305538319045344653714776026041232705300210429606855426636905830284554461474818158704975845436630987800982305808052074261307259716571109527524498719737998348155102267606722858109196163948377458189278661061113859589237737058140386198529686718746100338206308385515919788592089021875119572508851823943015738085968018507581311738074623653667493456137650380963918709651493040569428951915097557227231411448266150889654359477039869273350502070127787040098981034909472232972861266455421780065970033801509032784285591994005694603833961461618155150553007274450536592290781883722987530657847525157396841227925433659700977121744755664803431759697854935204728835644607894513561389229327631152700515130758875635733380575003731892198716044696487660226388473725022770508486625696122956953083714196547853171968128572424159671971876808164646272465756554882086106094472454240702511805964440651892862282522889066420008031485644724164535455429899621731079795850961547692389425366717934157499201875319051033810584864482064434344917465418017055443411751683571019694948370283038395567060087337545702483653471499183635008342713157442732634387543409514974845698202464986833455534593308709795055534332974124674061893802578616467520682774879869566371311867917645279172935603894862309253579777455754631463718898333528331736926053959534706419093998913929686459124201667312104277089607392399204110314062093097800853469219710616575251080719638977343602657026366339201741333803252646239841427362248043925455084511476453551287136642324503299532345004786170860030009553579064507118689102638821448422706192032115357209401060352669905125838690147418896274658194076955370734324643579373457768758120993583228133334226930643922108925678098321168738536791789938902149564790979804703230180355902011672204829327224356079703641103934264079035555438347289237316782445527130185118553654936870523207701476473593529245192752179280375629327559907899139640432635290896483028153226907573036128617256004246204009868617234525601910332239344992653510374693755175156794649834477711088381984608925095708290557536947806304879823790097032592827157359645611251451560041520850214403199545658279371639966361335088498283428679409475315708892985306052064268677434204954239916308124831783505719826837484948335021966140672134342014927058958484588243288254230561571717177876621690869873840182955472528845157048349420051657661856207076008140530136666513332172094624713619882876271106952313091032315936280296528873629950113631017887956032998181172563866948629334648998877777869816357638185203787375622058438296990262927959996456194734239404439839529774461157989599450762633563083204459229445117443709358436343462785154164212788450136995264273224593626056279339145674632360417215563328902592867604484192591950619925736674116152925868789388613674018505340196868924177973403618948650616801888051439866725309409094162913755500326087847443392027093003418424937986177587271370431179747994839878525487943928573457214236316265815865286542868743592292531642231483329181713335588909148743743323538325936674106901278386177807696587869211472505472111744604588702648942282888216892204003827685625147630805257387199471346393814941001406024139873031621264270583437680454990854510693285122547072718672762425068153010715609187982858542263790559510185206851879164170189530414341140400752532233964210324424994412771422449455978868710385251603092828361993998792359017003574995836848125651038183032617196390360755926005927027574221099119460358089377161723849386255627077491201280326993476015510834432172049631820341777381058214833782291130491265401233458094059128733359135563931114375315898936370743596404512764861224871016182268609462678574315556237175767550091434997487271936937399282740078716802577752534175483869940326099176266841092148679652378450715320626594975307414732624112732623140265089940662128500113380220657161206955474629369292972571217038848621507334188474453757896683469726938186658115888995369433354550541497654663096394426564510097021995183329535610740840354365906234306710777956240671550652409870194888188988074179120251970729368515368467095043082877804677444199247329759950764854823550792536890521184625104057165790108162633809655359315644146433728845284674163694733971293462095128200143603267862045192608213071912305330153213714472157779170883293900700555725715553880486298708459128694528510257970263113958198391757793384573470167428497758658241189247849264265233323511963081173038694083411974802884447631902214781211718265193694131128504988922174208216384577478950264400443339238621310863657548338959589148430836654748803454247191535459531957975435462313982090330357232916365135292704008011801766759852388933427805137726514480664860528931895102483102635949953915923908689558273957819665616541943706448252053178925817532599872780222730872149242900740973180839889057322994749085589749734612783774115441700355434782824646297299571865523205408307156276394542023075491029906254680159577480791565871840517650275773722424343387302213807064545638980292033102571126299426616075507400037110146309117527195694428430444418196146031425487521981266324742340767415493302534325205920426402384019617294911107648371050291567834368779889604436454996369202168736563661828076965728855851122409960236883087596154252944472826448211818391843179552261288309793959687692207196690281764509397055666853394091048038222116174891732545063722905472719524094118250361354122706992084779984002209623063745938148785904365420972234365899003108156317457219278877869441300538909282268592186541679266123115986364247786598368478316567752655782481560922631209453895889967477992375733416778100104778426920791298908044186203897733240045718176246142857677684560960739697839211584172710434830019756226762897472510154950936094323669045027218487689654163331301254712225245034306155912544232225443996056576044860156233849638834039527132471636096355212056826752365856511759792091072372871313836989231015973235930099373372951985551694175257431151793272267231276753429702173467641414619933330141828606726236250078053717680964938801617449978627572388207753806975248865304124161523096250846353435892126567798073121811032006752792277627332426738392163895042613014318204236705500567630912782218583995603269689210512793883871249032087298347551638334408097505903263982607596202286272960221189464733412850887898543387592655477226127348629209889943485518431909222571199344269035952659728848842385552449161582090419438284388484912330591212207038226494626693780789324435608777106836862394025926484181612041167148628728492103445888798130972381617574995351313037099955716437889334986535637512511396838651603715914404068771981921454749663801510483358312770065479962377490269129408521160277674185312964524608840658664930343974829043151524977715369931227492322524629342665468605962849726043783877233535049981429476930869822692968727555031360380874863807236293151811193998341794759125986659251519633668279804151904861612886756728342017715043127577682443566533604323507851796044977248737451826810953691038065685967899259329831521460969708479765593500688828210051578241076492299134096681139851353054086904288849059665257193107610101957822318522485538212714854486914513924468223379159154265221443540649171985931049861164617074875623012387210829122690440752102210841176451902737735034053551918728932279096588684459184840066324785460810206436716626408672826898180762741758201951789048077317894272354243360699465012203078083556992505031948662351292725905723224395262145681900084518312972483390801206293391621909909230799423391608661062810287679003737567022657926915665397669646544705695757415128261320760151907659448270776542865102241913478705588259595822629568000077994155478582627532810344135378056935518753547559767847825031348484342799196638800014809228064727368052253798371303759544612631561506216720474031669517992826091080316946157246460964237320448454311070196002697393398029264707388268924021287733550619245340223763284133918739763433755791973662448310815495840971665470172624529840118331073784411749254875934099927119001290705699875339830551144423606143012115457081179628192795556616785563297181872568519317529478722680018950742635555054536722705533260559042380198235355869397383990269676007200615928050868329128870200874225635870412348207027243914906300458442085642962196929364484173422195857100013639777065537279597394350782986468471152800941985536119523150182781042452639369097754857169907081997841449213986459710226974358715951435370902403967834521534723495789626786226175523463690331909725802824306110575769303930480969776716975378612760300853505370739040655739312256211294919833043005747996614673959534079129598923139179205903897805059372640881890081249277263978943049613118597235105300188354305070351053854973884891867741545677704683650821486240512716122300768879844524577425217488593607902208555448072927889949922968619664963520367339874730386091032291783665990310963897434991566965267450501508419071948995958264451408351461819854787316720983419544764189642963038044931368149973489355225093330558204236542883205974181332885345891957664475668476857514321139195596794202718690356510152748753548152865913212054704376701484719438406281557632883418079310749056229139892312363851578831919981137290764895115155127001400054498792782928971613884593665363692810579701590456743907168825475859159350514563465133810090541432382139739170921788834059292019125285795455091007735554286130295334514179048290540677634883211394256589432136160537318011788262379815757760199732870960368215616993808698494525154563219485734492631319012700323340907389304757241584190543536188152442779849426882600452959363454641376553384341502925939296982374732547960168014065969183804167743621871252157457588639447817239260402723532363959682035668510606051212385063679789293127187191043758822258376325651456899359956747651685845570192776507075615917792243685943206840839512696616957546135807951834496113053712322589698742577407335453727103577882870220537264852226719518242481579309075940912092215409429580166144268282517531880357508112100936059692024862329511882487346847888873487031631267218082213424900564097801888535888513423497744258714959237793037967077843778359661423662177406764068379987388818442350990267485168224084669667772691757292717546686810472850478555906903729582316453675210165753581514048028842593691356191438844404364460682496765300441032490346970130431949667642216411179167019941166852015947603412206087149729654582152778636865094204859023673551517294681291578032372133051414256686602841124792442783197683499400293288760739503718860826949553940669647260980909676627422795397063489667058936538033207212031286769744014450320586591774040009561639000270972206408130602992302048018395990526006721452549599649401849029069163447229690718054733505202331877916822535777941765291364071951730445234857586455069717929164137048857194743908394900695938909283480995356198599554726155111354706417022334202575585459305858834606614904845958879286234627865045596608025844704482064371898307588907945459104265490525320410889526151484736612395046740204990566631842354544233184369581939942966165987661004680904427532730339326810462488462585444448059580365670353844979271598125037665938026650806603903579497365795936393163944720588013277565903971698465117162746713718264423582974973234585965873526866402255189584606711385309919206001783434639225344274986893249653308448041591970445307202359797638963209208796592676882052752820010233212829342475604689192298771123917951542003558411138419022875054353902511510675843991580609601597326362567339463434621184537438553458963190855051046171814863108882289549063936655282269903943873604813990556304000894499042305364568154463936409575916879180627149119364361335676142498794378043898936487914872580797162997579640139017543635219659871369112336987432689493160808225213299756507417087963765333051387922643172572651550836825349209145362661410217432507713913346163754456047244540584195296456493737983032926251149910915951586327005788640885401300346698254653422349214017951788672576933830989645793791425049786484739238781233625545153873638898969599996799480835454994190831548963153762384583839040010459926308374611697733729377103415613413572769666953631858029007459403222297894079871386396473371926625447804042274862807463091551660531289488250502049426077898137661190454621859610316009285821462203132939941677148503081270797709782619682413741866698769818352878166711658283216741767992705566367759967645654450875598117147738167864716116926387324251761285270527082366642486810455375764704619892988682297259003156458420811607014986373739872204407072447585408129005900987109794437164929627729228310458892345605713798006387050137354782399145783918180150827880374749118604908250046663971987949974887537037530228263978526827336485411249299255028608609304313954925370550507023964199187367505454872444905619528773953951613213845872001458560123442501743162463008486296858936536597698091431853621422225264728119309632609183921531643330681465718357681683737590400527855444937232658541789653110601352940518308726511967930504801195958916514209052360053090902709885164013284730680235539960848949411560996036743754592675936286466771392696175288303585750684755290513692029731383522626369353575062608536155097806037421549596393078097147679111981195500771508587619234016687523190358055226986028329994458535043274534623362947391159259514938161827949525880979756911563355639215310002649444504800242203573657805123337662798746411767567124913841565913655463660170305010555477913227701793201908683702762020758252353036146013686035599516312376663061927367079750085762757219254451241032102656732581699392640418628550257578401299671962471146072046152138100129138117299564622853858661599490300589109121139295592912158943346191651736244560876540685778929057090851154230922803037325452454862231489142151053426224374725209075813236240311604512811360592792305692968624667224926261476283785458466334053582542656602692363470390363027400995253865779781708478421887947722399096786123501646700989500694658707862336627894396328571869210282726770331274396401393607161322162466132250258365941957358711661825144933553491801509493618046474890044006749922734034797676807867927762171476798268171033063143241259335961683810581787894625799940855261752435369007576430776983358890414763874126820119730893817416539720293077840314536088227282521933501144335311242574037353525365557540085246686072821841482644277347613910177749444647837790976858362723768951698018930500630493405742256026354490198386378926477679089492455232957089133500460335200980295964396444239121055620991659096305716697137733094813418453053596800195722952392543696967171584481322259055369510474636073953117019133112122591504901771926536677598604014209189147079023943712547076258643327505016010738089294982946596342229525946077520021458962425214154806407461052490251499820533525711428890567657833738734170936275108735546734362955444577957734850403845833749389286258477900940858354945649320246282991765445412763725304303114588923810102213062627237329610159403488810020131384712217453211511393960919237066424040614544706809859474603489306951978115256238234840364324218940014709057683329792699112241713332262858826460391980919525404896450111540578868988857802418320834599615257714033159023195438233259178945727758201382222964636307315009143032156871525415645577066337845884868284590123526653226644479450628267392865137970583625736938483212047763264746845699017538596616248356775719673163923976319419710091200246394452633377975074152106626680723092858454674709156630027883798370846604532691784888983308959784208749748590980811146731505306138212752136408909338197985369523037234910596842776702296768941664694451581440206039865372053190080135017649516487435922333600624199648995064711599544547782297733311533314846129642473543500585017983397148223617092716695850823203268691855117104117886074526123244784596897459462995396398945167602822522020935814858593374155545651485760268380446830046398584231658162500682639077072152393982344445335774152158812579136881105730372603629068521181449982343412389632433345490261034903244036299964601456594501811553232501675957711875037921513803057148499225811079106472649456399424217361846378199150444924759392457063332071169031782383937699466665532035283350881422090498843697010077415387032693833469535383232974385062174215473738107798305386577007105656204900706275131498871079760627252711750534121084856377231850138298248625930625411309912093666896232113372028806826591696860985843715083160789823174334307217301235823321985978636325486202622443518621016336955384840757632145477524744852314632036447107572756756281678752516027551420364921907898160975818256999589067359763335866585476057166391881426884413317445022004770979522786852936944887316217236349356739016991022412674446744343712301057806719049527382152444361289476653685468353911422101466798361154120323045382097827673985832649556804716655807560396850460318661664076774573283031573676588302082351776109356962390975751605280066922415813985085224737728719736045680875475823628507665207955316283205782632152603966917338600401365383978020124970588023532176522110843552171906416797956743824791343159070588333680198521161902676719800567260913180993841007554625665886365055691809786475098958827343954923214067144956285085695130077808540620135960019619397481871235037103707980243744682871088013171942249205225730703403163695167555386893376811182597832055698741466326038986386435859665911796926897894023172167925488813902122199988186553263205303839652534625732930484793742284099443408025610515970825616041884216042123323012846682073392141757258296192271800329858339538498801843452580805894574584197979477418574546414613708262166361272042506690288783229125762874361017087071427121249830608790270568256128059400081640699160838876089554790052822424915634328351558578743182010266149586010882724860008686601607562206530152503333177998911957113026620883200299717907974235716590666705635925234093588534941092193389862497910162488253507214969688500586074645620780167000884454347390983144838871505691172170127097420643407994952712596564463061869947616817675775562593302726607426708624553660660111726859376100378937573624359378751125058277756193711469853350277581980887330245663942047599105705730881792626546440670894657970830850953253488317149660367554520340436359173032195604790328278138345916503304269293902678123317783484743778860719573705784247640855024396801210653665099227826326636105065744788053326678568804143281621491251332582668368863822620898448031991378741206583359076051230805704341676924046984067303858248972775787750528145590495260799209822141359687236221268064009261679962396328305263620105305175696084622306864775701453799559115722193058262110858695336433747956132182073541995754173184668875719724025013778716030587515533480036414255983228429439809750053666575033898801603668682556510685888296866167082992713716638706729093721130893418758095956474150345950853186645360013472231864375526753065220964478672413070333360961991845549210338909632292691214915527746938080078579353190146727514401856002212605993802384256786125809944171863300185233011149391354794075703302146003499970992924080629759705254548286681378316458330915860734772593698801438040383463396085273639916645252373175901591775863654964263054569138493745114140018573185805508011223582033306532367820915145183928260869970231030176092566118392967180038169721097232135626887023454900327863390566755143249657865619328121748871103726627302166211374320901262432544199163291105653780377613271606754645192358456013408848625966584055033032846762303050575340350932387860514302445822171724727009182389660299689881527224019119558404012399336352998731927323081084698657515472565519921966646290617128949958268059739709000612731452738656243544296136709920836527598167498474551347398079070181781547487475249767667983098937986052160585718963274721420907539402126780638480932497849562690240918923546717005760426145507241669211390382649882709076013462495353263428350988127507902226718202244025824388836049789461960255358146801188969113984205586430535508032827240398582541265995844687268813917442152165295802400214356208409484053630421496098151512839901604786589151953817333370737305788330787688273596812843500625243749726782567176480459612877723012874410930371954975320231607035147537738108692076747040081001614926562652160399988682632917857201159565659972781180199944136988935808927383809119075518305780678328467258694743741303451808901193085187814976996026029237163623728951715280225866834299325921859291087113626487734499933969948723032607689697292290745587593640829277347974646436627698587813342619140506250678024423733639334744089794517266839795726846256868587009566404305825265882514773133331269682751575687022726099992516245069114191958111903471270099613964250490723895361305200569522644101359828192886931782647956175441220042608432665050029653223935244508387126485216915806504366839825346013599515931535877685107610219287802551349099773236568505278487853782001975577706012221120946659179974398588304154318151698343568505731096769243455817141352644071509409601907489071117227844758818605864342882132633393275685892541461304547100948708028921784384735759260140333515548252796373752350818962042698895770559270320893635679916905132098241763494218448694244261518800969290770620935753281235746168951671220752589122985300591754025271564628659956787437201102918835585756942697561319914018862351741153170648574947672634104192430263969507167894487212792562142838238773352820997706193588762110994020917801832658305807759030626277552514047796991377207044097328897874720038796604822084517546757015471025772300421441930322510422786204659745245360296931388052705031340520284613929403838034683198067380385128856027858561451116602904776021034750515003631158374402295023321265514592272884203382975794680704182324496451982896705257967627904309309838619173733128016921968351941485156237512892393888153295369649454071110141412054765956731216867949458422347920341235191673679758135481854805313392808381185687931576115372687999571655055343195024070001429205831053037156913079996936257614395851972174074691108720228033921992107375219806227260487293230410006412014574909549544700889555001809020987188221525495602453101002586642600223346236842899920444115809854533106970243963131186930236261852049682075099161748617498652042742618151951065654197849946862457560008279180799453753121788087806323168223939672309190498010626518687105788332108671529631092343562467376964790508607671450569735434035897498749471197451679677829191604305250168261180794934597979112205485483544962170825914370784550560360242163623819094895269142545529132322490442188821657022056093231547992296702487393788393316665791119431192507422625406654433459005330638941684105711546567092188398893755307701435343583846126057392514151272402150627317735737069988496960979727801561551133384953900447724630091267876121928458251440608921228649971215872554087939324719908279877882690191871399418664522536520376831735578901442958581449004918057597109809539907921439932656072393236145819109552196369686460183054723320038377830392763437035615296126888427678740458455923708669489699068051173446003231761993661464325894516762098525628095284925695937319943886120557373998156141417961487802011139337162360352600762009270797738973468162249735807279664683114326018111560206765232964649467506296593616936269046524885020863001092024599254984027964422793179718781906358784974653742377312722161179836547729422203302255757161523076529929367448759342673229537594801250974510511192628298853514742755590683336864255346437916681629355461856225867921814753883415305055339719646884015648243257649645794550913405766675458494721403924598322806528109701172104699069984499294735435845038791811182751711403206326331478737949672250121429301779890094064836480958651622034778349553177687786193042283684356453796554103722808280016831285840104059154919004259255517116130639592527057697615036047319284636642124577758190342569669447717215279529165560369787300378732777886300820189154989546489307555775247044892044514388606544256254734379417657162886745540662852618128788251327110011004224630680071910747036185801394888229193201572013614693683964884115155756710384170763783927483276320441662682800320417228084500494929300836743714883341573028378730918297176030952970226481872395944489270347703518459021191736329291547472999330596077811233667629642664643562654574317070388376060651182711123411530944152828757891151428227633265209997338596183461411668621164943317508519907851654028549689993475407328645708137919302920056612899331308452359361878304830265072807502288579384183102130947913811724492533102975636679821908138836600207464137993375808597573873517599646031861409549144628975628768429784615795668720043614182019128574482198441443030720898927088624194699147336454193265394281836776011200910738936309673056081609127967498657898819826440372704833621702837235260357607108757907238856749635327624012980508160206191344364653994378308518428248155506347298863727322242051313373556973835725819384958833519120947821340625784147426914382133021532770572032245575228594006318934491824219456626637929789485947663122991172134714626258929539383749763241503910468427572332532917112523589459816915939098377858188326803426228878931930253384661480345411624048451969262590373787298971121678479713617109628876830052053004828439487278634170584415298842098427653476271263795994884655570567777272667972498210970942497582827584907179689512624305032645255444347269830070257330939289335760957258414966252306343392870908854895654417512743854115837441082180511615566673171351696941158238063061658421521386748377493677042696082318241707082877202129204670070488927789941214857075229029243518142511383159386819509988792841245128962143375384530388789515356326386193646881912559931599091394059168179465410480199993681759788204326452565353707086419112654506018516672182943848419935777320555673101029601763487502193410675041556365886815246512271851194761233947402649109193447776607992118008079610424140031292348983577509787230652964527726495837414158216184536492401344925626343889567324554184068842301607740173287929745558415115018530896853784943009831257891692372796695435501287535385971838663338256477761472481857040454849990601889414408003408387734732522977427477111369680198233043378106532083450117935389350764976719407691234139789939055006886790387984479218234800596318157843798596753565905615569499124837021616456075547679590469843208235198062792426869640453984502550601971517536306022167404603045477238576931887454660225022363978049929561290356140902139742709921202015199561920138968992507061879286429446826441923388054192109629057729671964771270627440393261158109936303766539499537270581553414848511514992318843538077663615119362291217016896093777940700023879151341977717895767765994587866158095572619501141564641603502049593824164702159744005861109722910055401452166876992823667612840879238763398672613163236814224368091822079251723704288433930026505689683319965468193212444400452764559140288773446913424225012858334867876800225736126950367561608302830291120760224013919865553165163804551628602437782923547365280821939745923556976606246205261800971507240599717325767757822572106257939075897714196238227499079968652017290344043139563733605786388829313659184183497067049565614131576657409122412290746037601083179168236196304310552483215415026430507523464728919148136764875327446197476412334068324373495540967582035814829811269826910482937588560036872703426477933175252902897207072299714981789168616243095963120982673305283027838645822526532874872602297747510134798633610114390126613838962350888437892246126283825770320966244338467971343791625525671088778935318495069673862401096366131268849941711636411171854131501633974369086331266825003974811110574656289426404767952556359967951987352675424062074327973898571086220920434804861944213915584371806977326678128844917451524327845703288902621624227810441203267196774162046161600162913713175890410457025763421719189904836324862544482057272777849042266503704698271961765498433016904859790190604908262756893089794196462555583573939481516526946251144428945061589555866858575096668011619197922976109489762905141569195964644182746929025226990698163795253758255225923606633876189297650103452581032578301315242130474942976254078147655253164457388549278052055931294326751288619224697970593745003157065672405958002858526762819386932562486461061282063861763867598148001936669586715557541341244953559212246144558107670954066279436494174862817728481406386932487659545424946073362301566278219229372821998604999429458608727097583539045404499692591522835129797096860919102115144282535856390500832642078088118617866518437243795721102272085942883716328430314859754943911567068538181367975338140067807065535449931120759820525656767827967749704399474860052974957538558999965599611072862236439589672071058840163704757587557428310205178211629654036113833326106365423978406852281967533929531457739178196275128934839850138994227066262123476130288913183234047980717545807120170605173246277324811003019980336088540390558116828016992925008771881304170515529650167335677649384498069715967080466390868009304979618964129708460626093701957779773468307626670595433298385509799984476697125340678550516433529540002506512595534314858272605878380243032722004145885738525269628541711353634773784971356894835710609369375920385951952331808452639533675398747224769299224734656218119027571537595353656511895392525763743695554728846452939167605734222552553313300278891846706087028411773322606163437251218662038695136243223775789717107420160565422470038555264505923927240939743514740519489363548168844749790044007686382721953345518975336224434261057202786401920307210609718097804186617185788849222058881844804278338384755016415853168276635967108436282084258234049535385204663754895732789009425199980492600354189140721019125042573171987379517601005501950753891917917028767245054550641956175349313854274863891154546144563426253261833205099135456549401084017140586229408900536361228759987663554840810291001165078520872156131698047607241823835015707961573642160230683516537728715203501302420243215514824101346481454769237699085236765844383495885269310952950131074609605388371975158833616955367323729994761810118126770567522678221633605911778299502969817443604875661405875623802021176118891045722992749673075358217098770615713760203108689878200050783100209027388500246132680595101441697198926703036446723733572404479353145110235794529406882504374656115196469790650629387169869372880712105242002752084891430048716634347525773299977165375072088489245273833647413295223550337960623107041609562899374295559717119146927906149063618237394828061332674475576000782186436051908041866619945353989181872029648584041008669971870603463580170321593083903503710185500122867724479100565257608510358264659991167759631171166709090055992843713869348638667742057729055711087443928848394080279834775726386174667728793007603447292153067968806610736052833690472327349935904024416333242024250241169323790256297830137233211309329833617675945493656390930075158552866775865355158292872318997592620224188984427666118857544887296501351534930485161808109763348709311551495637121682087924676055352261655173684381005050526327575315119916737340204246970945743673416043443410531904725345479012576363810268260943314693344557579157678650933099252159356073547905270606980305724251545360786777163169353439679913771491062377550282692507993129696407232640008833072451928592769971179506301776416363133664926996269452764640671157235811802589413844619384485225075754974222321155919943234743352121976525474135075062911381217211043084651931211774271821469602176439069769247351248271374483540018376218440760955183634064932665351268555617839366677171112123629743502682646956773855374205321903155317383498539648202407527985478953113555362512340274077607668001378584015218627530030052152262284492046812163185744315739920589201496634595174059830600321866553930436258106556960227473866042383494333894744006096857648385681866299609986315904301547074015620258666090699829174767281582570371273454599600105091881621779857428482329994939289593455413232597707199273780164447706960133241918718139878597786218276924117697991798387549898074085907342372327288107493938883021476659307683421485667946277903762805226857974016921041096920887995402463125591131757109611628004861210985756827923925794397583479323575571190658393991577314178063186739795585016495739974039173700738330218799780152223729779907706130233556793537340084223532799978272981169826929874591011366091682789460253566557823999519871659527734059804859686970499927338951481734516387459708796493425066394983612557717539623988508514860707894010724198919755466573381249264396673498639450452736625514886423411112973675618639746683033653356277032641165112272267024407204033804326737819677992651654890358982768080314694261273087632638182679886346829857036980563600092484449742257003664952896794938311715950805380745144066143827738282135698212773630682397125460216988321384565929893486703761284055352977764618366218288053097734988507949820683319122481473601850557208361613464886560990778048469251029803293055994192953563600245360639085312869734585641619761060062856497825727102302373246797196401880259360198040293464148126331506108008167182498821333268151755934777516952259148755636828618386899956493469059880466521212013874269290608991753178288280370873884923083108281787667496191737480915810933673654998145169995651492106584339514526537623000794154080519800539543582212045166339212916642654361846552230968959007331824894950256124983397038253310728535065401490542097835350104400210196710619769757217315470887796282210736356166994074130204621668570215705434219093330539520139282488494585088858730574541114337625733415405050146420988563189065475779638281876472748269939878145122006718440315483453276351340753383170460987576293164409446579704119030141057891993208733267432177439730481082713084976874201358086291302389699152528958753228625772799304775499296920722952768286185734788016129311017992429431370192818014285420916461229332906153513131160827638689267500585706191570586524158230960458112028831764693665440986276343169752542667894516320922953324072002103401383011731009702623633991082463476176711101564153334418529377474954025510730542833520507213406183591225027461252166584416627394016534943111092453191211526644045350610088918921435077263846308911744582361847056426013390536405103075629676443604075245247450667381726992782934764170263022956189700092911321478051580443622072813967144611964982246628697857231886225935949869857715144773077300185520944436574669252103790820825493036898418227566910640972357621265382111822214156240783590919325958879983707726869171756155996844091094863960476915371330860940092994816441614754854336450564842549977801222318101141606795707984947063152647146181458236818834783583765778730991904978439178470871161329040782818657324619583611797642573490944922208147626277363640211821592711941904327649541271902545917234856327526581889652626699227390389695828635018004936047461023179189161343453310057368292937664250000233563459440792901578683546214680793565698928986240229177720810517924280484292213302142553803599664556828021810488703205317414977842463770253562449893299508627743507616790253278150887338229539987566465634953265666759759957457268992438114604870194047040207566026959772755401214000756178927887393061299698379236263185904356018913668784818400889019774906559799153410838088638972118043614659907607979544663633610715690218505249524280432364260430931736687261366492231418988618541861980632167483489987282137899233717102502857797002349805308925814782618714567730192673765509076131493701931922213164529528722097335807123714580298589714768212586274575727249855823989298389591206804423175668807642226984079245193168765948512710212435334991719237311541921320929418929668713587477094509377309141154063779803132207980451068283135612318168989657087271990105278573348266196163995046812293169099023470652100849658038426515104490055372862508284550987971843419636089366164073660882570835312938793353688970973301451342039846804162753657208016458604596196102423912416987770984217651126824609632322217570524118951090998934727545801437737185054378006201509700041860860532343921672388370030069405130437555347841434882433236041211773040244270583194786305689256436375848477549436742047077602978834591575634856806565196552099496588245525439854316593074931307092739441078169543365147081279738994956683753020981720835225712769680484598552081797648260971965734343839742163892892043953790911370982189471159586748700283196096453214530047839675969727268528032708278771271498101827809991645013138961619794684603156449885939815426046192943816487465283146444739080562248524176783603340524568137466346254415301280837896130533651942437184323174662537680495977002634334671374937656219230037246027607828214169952898185135760005863432256313311303659294931203322730851126942646917791664527537055030577155120632767801180064421079836953308010147853943667723136457859370530083619481595570313489322560609892078007456698373251933644869478486299701429314542543242307885481450734071556471675900458776237268398584589633219254538977116515260371778937878825885928161881741793711141951038002164149165270167123399975190159321890363007197608675778596142016057538106892389017618330718784081914296340517702818615596198096149220968691832716979913238188086796331727376469213113151489679400220414694754393924974994046275568840925284608524548405858599376606959203525112634830855871222824788347755849003234913672506101290248718289627551587171204445313330063402469689400491539891179011573462792311913048678619950527338435234486700859429574147656487672552136161897216037819063692504334996818866820898744107269221195527329118764852422237367369539588457371387995061232507337745101389390941665841126098474726482962945459489692989747713691380696191129294184828849106550399928376632431814338273638621698680274609973191185510243746030336728400710685983179243070935942004034987440525495176708206826533634420496798490930039833123032779809440589391200026862330448258808512294307833449763134411260231123024517107288782065119259463023192953225526360639534911643981664448471258886405674526277670154161509318167803527739958359035159624315068696443466579177537553099536302470035160028395976068469226297588293586709070507429996036881086984752699827789495597530841346253550022844702697518873433370318927957698408544036192873556574801153759416595606771409386202320900782869250291183110148644240674631943770561267504842073516037880907365535451128695428116077847935549554414507873275105926386847977356428004308760109441072560635309604552282752999391001988791905499176771609564446293206568767023670083410033592499622796256415137996522023643018096546427603279937985180069219181450703793841318693358272556598484954837211564559349005495132164809570422423962068743950437072356053845569197495511165861247363514167700825083499546055492736046694492479320037530362957938923990704630170946706433292391438133810854879744500807396679221881029608965987414001398525210233019206029660030623568568838660826189133328342979677097134659752247726326039293657661973778361511167287092681276418456615334944901792815094997400876261147070184429172246059064483291421777860300867255045756238788581717657688607369193828388613065106082992517513051664441221834834220231409781487908762452145976882414883805672815753774929994575722423948288272319778663519535239351159064770700682051013269827265656358412319403007559843849596445703462315816044315738926982187234330263166163303400015503474753016457461083675733876962483496226751518349572518918587783387793377639836273184374565643871742514719643485197833420630879993375553912525779816275991764488952095978746980414122571340033384995061205060297949215612047811826381374729064683260638883340905037046914708529399333252418510904110772268554564016555504477594248398184785971807430591922813226698403989200271364235242314299472724539498388477455538565687467427744297495946839213052827355090173788239355285106885166588959416294418808439236115748979442880072444757227132301280053092369934814582580256509749916222426152587947412138955500746672747898911716890344025499007492940768513239346334945915375220218189465960888420010304291513264267743745432904423252776841946170944584518301627461152086550700181327486281278886978688471405973026861228923445163560073409845273509976430884714484221068384787084887395565588326371406008298147413994557165757155374531645809964471699414824547204491738103574449924628089856875895520818638595934364232269377796100903737003111041804163344179660027334432660593354052823404452885753446261158974732133730665625628166307959325846096324008177536108691301430238961615071643471604201733741823813380780576692602898985566344686974228818269749704277923123476452736087901003557847386023499448603844447275992394865965755763048824501419711621219036332273088176121407285491814904217441408032519709915097195966913483078818768159956058583337019971695368662017716449420643472545564928569834201260009431828702393755452250481029495171552104869300989270904579594520405085581828619042365539363998854133183324211254029814096154551979859477452897138413425050814987352549976218892045638146652437494304535466410468880621229653296560710893760116663395429495088621928731159146869947626386269381661152236698457820870808970419882415945302920179440965993016195015174645711920770154725939629255289346561951994886406323441987587540727112341696770227103026217749894261776013201299810162383148473794685087553099611954445137323976921495990586191124215546173928899985466562205374795628322439657550493200003531249746874721186255171535218846598526734639008325267954194760720571164978219458537412667087927512981590819721565084329864281092065646611389935965473605552908710923114541692698868072807399306600024049730241829529840047953415579958416149143342215933484604041311858833717293131311810779903524515139444570291490064008043230965366742703930967210342104264427710356270606370371318317881067357198485715326930636886510067883507899322964358365959390264581360309058159111849177233392271741338949926006219560712851625024989050889370576798368241584969625706054768999780659594428050551615597427986816084892469573894168540269978560668773348613746283383738978010770034196168621017577758883475189752934302777816011492849402817707131649453047069066713660546668077318659413950462446076400555419221742145342655433738844066877458848927962762001352889626277419387269406848412239912610403898762758973918916079010178618112618968901668417322104312746447769597319434708060045116923736344929569843879764975856451583249657511083629374133160400251932773406324162874902913896433727884811940132127937759309312453590553412728133248090253428454134317249037386496320995526816013495898020600097359218163960288251457236486439432848210750925459992194403695014991251642753173782180601672538313853442542850487944474733429480593614359048567944266732330880229553903952125025609858088154199135497727011845498932201023113173114457826819862583389426798494296843690039787912184519197379751864397132084768304569577523016493246273451623291681169636350481549275695753859859157785283723641133427507581197853227117782900752109544673120290223444132709073983649610904184173601370546483356010889326964447266397838974025960581209912374821457849906167261161177865004553450927376464913138885185868140486308226518122442260782718182705475198229786576181363684148843718274853330203599938448654726110871170144808269387177395462828688273479234932012483161818015235962041401967966147876102068811787407223188832057660234337624354116549938613324483926082341033392036148951410255164221617671718555953531313994419472153773728982300541817908221870166739754875033006751381641571939500478149568341910346590898535453399185553510683240644807045095715461229031990600077031164968494504645379107855463243408779185051994793681779795978685620681394055251526251366057864511770405035530806560662263541192410694573507968404239705412275390652697171971570712340880567417902429041944930317433423833835416496812365396987446617307366197478428223797714803437842475853405406622129340633912107145468386069293862231290060252755167841976994586562739646846334015093942257171604450504929825641655802787880391149494827756252314149718618329041069257529054726694788783964996138523626746782542438845120536634858037590571827354043561559494396533347008970477112891764232776890476578420445585806336415544455245659724194913692189040833442150639188687383145121870833742562348433058027707971993169156930145666974840597991907551702848355956223601895760559791437144367861014338207391998172991099341790111819023079141651892102103388384611589043289083234195040172029515823408637968146389087142262849729876533509951241164123170130584498736164295329815384970257289024716869306278522979188692656932769680604526915864720108300463244976435841254970127616093672614223567355172958139183775062727046725464375579084702220983330272038316413000078184275827476973339019654609803608844708330576109334294726851239761769884876591298721113491696381764244076284316895277259775879580488429734800150640046323348326205110932457670908845568335731869417268611630059382617688809577500912728861404343972834342000979499657585923546678921370548736925533723456528462409060550832772749215042173014236503049393804610346526385266915842599508901137994980781915092717765510002610136126488507359920327772877032643183462338534722523308317973120889192026575286956479198221651362291530368323897747873037639217222631571706937654427676074638738785848501249658547170194832549566508400808867039485622270049292697714106557096022781311025860937304291306164779853039721036671437362596593858501359019264344937978518547937013472019545113267002602996897489711647477781073252108062141553409189613608962516502893741517921622632312389375458136820300571991101072389973694306726067066444055770495007572640413693363643283789906499841036216432017440613272453826090948706239328799038150354898339420902569915747098201762749907504670813446293690229500680955447413434439023459449976390992254996599449469261613750665796163306510911019034288837878655642717921544093510452401622811393289251881219489493190260244083604117025414028957017122603547359193575422728435431663666471708599763019435273673283819674841294529195281850507403052605399579657124133577824756760496481955207702854639775668932987404126570545972657258369467927427951549385954305328229928948597611660691191724577474071438480949821189913901300670672561890430344302187908463587679624053871078225454288979113456228647204747563495635505410092982571420878911671346653279034850383820442744065450481052545815499545180794780051638717719478267927582270605680454191714789413114855511163738211848148084962255289436166726544872943650672147347965504116557237314426960770051975982891876337697046617523074428798231987443099786327704544878781545020953464438341588738433897188072841178997981547878015550236213937066176552141146849500963506323910214863679582208759000652951608053061437218932747642314415629407669047049252578156422680845101050655423014444537606943990165138328828564166311616116360174100896362092630036197642128641109596648426083686261896090793420869020360011842126570756773895001683018929941445796733745823363825173515979484477151111561330713022007002160230033659701647942380996993830386422506898321314586780985749887383346824272319178329575510751770233412246651177321829710435100733542940045047223244520180715805889453081939021049455957756199437014656253867901511572294832182060267714197769284394562635102928428334296598735085501495486276703336648622433322583498222988581650297957436133116064171622753370864866200321453813704580753789066801671509777598180897497322549581230773664559880917846711107695830560754957281822500573314305705449271583983336463212448605764326254343085553580080210996923843069658710174155928682463225810471485672250636963135003577052717822691399835325956731239046147557530701823711945906310309307520902637137604766206671029578012738896017544445442694805264965860950338868453663595537697086587033080177197540770495578003740841173810577368189731370101913404564992435505030579333418757178009900265573612790700637908029691657281389660367628821929383563012371781955298545213348070854701726185459975349684645568272048531401944660382289106224515202462365027166048837599334928407755120640468927225706684785406051716792792357263954995946629463481003061231327273048309049820153216425526326588275208824323887816540776270581296380882848485103052073426631627130289263114013831834184663294741544392256402222242380581880416492398335322732852383022584042264220695246946523058094532971230047501655845699268149806530108096497717385466822001043750269626575184675447722696172472677404176156388963930015245855406607638629331457850712087432913468668022275318858771050866151804269611263619434399442552110060191875937258445809906156131311308562205597297433871001494553444674365166483617163097272364323063168760742922468332979470714973319720984707207791040241631397002942268831652120928746225471086839849467718285711145908477238455685468282994485319273180831740501224419367001118577377980338752862836181904943667225681947903015263318594786446742293501225495860841464665340125444835740010378656631306152538634068154027312612187754399569565719479485358018687312824752589533962649064284643773253973446307880725156570590863262941647800662116743490133374773521297900450318685546552251281015039424535726324399018189254792762987157983211761660222774183550456092548804670371977793930336538310114940568764215212271347494105700097109037151985511329060934320751169046908473221702142439741357641789803649116248123923529330771755922288400606217781351212894269578554589682185467256164118309603043057171193975886846145768025353541163899445236277724234059947525619796490475085263199820805680370418362373828999543381772538593607897740828960509325470316935923261143285172889477665919050092209774923782842164227108868745780028642325716973879807808737212976534991413541222115342983757626078636373135698945099374199044300066128186056553449199443324976570321420954206490270478828886554103865162430135919602141742395592516455368802076119690807817593541570489168132563718407267278013783386237739135725036803394731882478859542716185256971985224088966490600532050210911899496444771449672733583136078099937593417869565946372187032080065565986899978087699327331093497346667295020799348938202561090059692725400184718370847869076295978245262990732683980115513724171858675121994293304034957675647003986504228552887485860312053444633154173642885580708653002377725945002601884374001940018112169328096555554623519743120743374216027488131809512866299551972499139186318417613245604613051693681515284048085322059699803644773061576390678487528879365684129302148183518710021684946516040640747045279327956660490367059622326680486173427541239209783351144711048118117414488299806902745773898355372538260840199919125114976796176971887677572703169727296888498665881118111954080205760490296248237405283353453603963381105273353164994028151097198578185157826635056086978403050598537649340050441431089892257175076396945427342009660766836958165936526320718445957649384382238278113997087900505251577775704683898622324650994978429365442333670768939980263276722922265780002279695212872137687708257621385911422620217634753112581014107182922504235060351698564884495545889477687253924725275712207085602071546351944397852015516384143227350122793356241173930302661023519785312213469994460815253068460120362861390067370868171429350641502989238171558447005526938900994500228076499043640748565398807319606016026949074423886784870732322536567485941266992339875903030829645588452402227346718911893406055711748161887086686583456894441474848657353751467782225730423955726479815369977101368043033414241057940476556445997700336856908774683163642943986396520401710893601965786246656903330383105585486785668563661082767467966487933453105228566478555558667124801915975782644931555728219753892311301151048930809887481613957834178501089528184280617247029162019227676199042831056664669034052730844505822977231653453529582356898735589100761814929723619074393652534240788167565884084555391987898867348766500508331192767613767404799040919438030443697249347198868973645098987017070764385835876473038682237229559796316384505324657261859412929507690860197480261037848821515923911870672672899128955537453631477722490836948913242745419743918685434670417383444205532386324842243587605868757588333833728041462698770237828072713018506181371865464237009570576249420015421535212095770454798939577184514989730689525761671410349359850524715799681255418642502091705522666652572810556922613172940024864755257079168578902550862118536318057042163237245432511313995586604020520152030520274082319635610708616167924793950946988276187442128617506059130355547429360743330271747481966886165965618439355564688032869844857628425814477510078762052164125963046729052783406106202523177182477716957218673186371197061060064872045302479910907239406136008438315849726453691969736189832014214272252236946999420468526985333012718187632108023649299489511618870658452150701633990505013419389869190616034615465958719573331519375071317633848850238789894032940864969628497704974966219630887403576438594966241978620963871522965484115612905133687444177964869797298073977260871806660395521207161429120632143180082464234152908952314333301610115672618750149713816477701260126877542259094325887503272690162617398486195828785505325285557104740066467876533259849298359500545278547119669841826604462604588416776007585616181949586914023746843755040018610690930509389043739910670597899448641967312467327441972699150791164705000941422486581833005110235633989961632449007607036000890714967666226323512409228081484409561309966019349327598908395690049772687037492660052497790559343793627170637007936477855678542511462768281954873303170988628094045955776662294730023786000446906232768168126058374216612215747150683620272279184126631674061898651927920075529337553197772844893615975414647067706798503980970761960226675842973791414496533972261746348503487355885753589875107138749298407656109348428282629418169778013029165669113076038629060305246850332814811416194997892986511275025971571590270117467272032774663957799288916371808734018397902687751902739792835320082762742155729974035396909820086191533450084660091005437016572649050524394537878714993361657733848699079151238509527097302251546492230229151108663956118599195516339360655762700833486791828920461128797283049890621898304490317711783551227603031254207334371306129499092217745297870522275200656887963557092252968970669318280745891449227379994527896876407649432787183235926607240488401060567774934375148376919513219681952138248379726908038239719262900339808060555472725894733711598214396342482829044435866424195180086168594179266709252995943646166099831149890563534466931930164157182268362404559824647705155590193925708061434310783515884051658469781582492863156570541336311496939370064209358365240626281786214641675449833711715160236471749367180530605647347843994029904131874786887899802978611675592402601837292199303432992795244692191124366050093289210822460603225367405884576854605368059440632284806103794030812431266604613179071399731178852926249313546358463588699260517982246885836805672352813901129610020352969577515301513383917596386407464406122361204714764096430551308628006736894470663830946486288217978573459794427341671753114732706772795193997366936165262557884973285805280881956789251464498446830582359830266739881577124929770302166734366203990207759627803879127326844920016098987905359204064283273860903166654581807352853926097929763105753068206499850671170145097012578244858176073988462467200119199922410597255194177540226780313115781384555530019014799988224776404629953933788628020971396913824430224990952122206121349960652840855138266330329076957691548790522587303482087108755345469181842495303620864505650377241782904340787246025400005964629322511674744587572638597413209210389120464115976410859779783892463260470778383150571465012665816919992986035038302266857132242537132863629010392492243609815819751862773520576000622032818201914204061269571553131397227132840620253603080437332997936782372510307127531260649827355418251479752958349277306796376016643346468855726246221127170644934140885024727927657087037400912841515456912384342909221195800889067136847460314913202876607292222132414152913424329545098478934322390140978972735159449667342126160843845555793317126704073371166172660026380475610119768938238287964959365337684724390540836857350976695044493669564231961007085178071789907888963220544398607164751417391365732802169154364829049226395322357078567374879461284493540575377501589353804828198312160998518377884876997751806105448683754000159441794325657118400753274349340417781580601308950875117770337029828815469679315164300263469261419494414401424717526010378883328682023179739148907170896227448531876392349472217172208301033300094841137749096599330393067885436119693456828463320379270639700781328872324220375881137424378827851222136220682434303271758397367254373325877878157702203650901749010283003695068283393102361583446302155984215471601988084519916566581245494921373747895580361862778193479101389616700114692965964197574840940932704994028453692047763688368008492548165904347455728353623117036923628168281117572916013608622447852566756579679708766158937785179749740745867088704885627931652774006265108889946224993616926761682115332257524094229476678376409548590465969506199046066412608075025233414165196340732680408521136643362190237552477428362341250924617110650430680427078450020698711292222146916101573286351245616516725192275283921408029706775779835051760800463988901553087481831595461936412406430016497526031704294389913181475093355693491157767150950892246116255281432380071262735039734542115333827659132198037524283448344658184837872672049179802000092042252361179264001632736235009282956145659493163811506250745963310430805357190824179106369460689142246163365338915014494765778475040583052548911378762312009935294332288307332971150967800839045111376163026365213161700465018433428816104905966612007228723196501569746994326753326572427733976729590797913045653046030910720826666486009250915373445832573255117280767594603118059860104124035527814940084302621679473655947520780937439265762709789251025946767484855272165299859294591760244659662338593422068356910825714211247583562031404075917114511830914160983634931933867833577643440583192791418118763056069454672858623276781452419216103295638632591848327329626672254901768429951494243329829435903327283400312855237018301623792932203474462692372931717193556391486515820474093167104767249282290330310390124247465309124993232053200811480108215699316998945234546836302835501845254109390355901998442193447268270420294642383177184402660774192793861718341844835221664436509668287622906253510047548119249538579175003746941731749631026809074376617740225155008179339506655885140721774004273771133117405368854205051961421109970013784082742169162794257553971940988014243857502312974476215380637673437349615216970441242703056440010730975934099195956864276298817341135682430392380976670283152345338501855994951087038384471891370268085748135695901654686326785612319819702851793879497264465195557098001587565138422372290960503441782737510770277562337445282284514832639731700763346051135085680103905899183845977314255835294248325316257215679390293023825475245902080421039474403767537661338352789093178608081098282791281630606869130379870304706393296891843254778542734053464780003956609107408538575171186415713298546768795121681001625087575855434493307047006568336699725764957992727142864347113306389655771965456928390620430316266732798936742449079873027476885637424796939241806857184078688204615592936192604470681080831320652545133256931227037314017057995722651363893464494077655245163489373003949844671296502900302494121767109295654938394483220693085708556519287828068823242235006102393601409229433499632310623677354359657771496089122321239960720918223764599020966126214400979343819030829225990242397784769659014134589311060666143863148266098523218022590433279309863876523272309792864835545811435224038781946142605462438363494382327810939982204432681421231972244044103752729604574291142988538245869496763965214073287645939808692283104195333964317086307337357284483495682536742060133944812342977375036007018090997830879987671518204240385641626414529427870907515024674793345512666944848656578566978452043320920603474099049131394879691976269473463413055625824987347861952754263099662266857545207387825017674742399031875685294177068037777916305709695863214095763334005906934430924141286486397465708138279622197728884630187802183559253685495625169861513043744283475945544496339880321800926488758719016145806735841503761802767721545451592049479378156442220117921804327867731903773638537349249068269354781388673133129947253144285079343467916768060451954490853151691056922148908888418639856291093635969596903064373240989946439768731356134674143883789779408953420539986825984323349701784001973249027621044900283737903005331580762947798083488084448839668803876406367822255534364249858016364540910820392397151542630948902531528971567580492313232241216994137510888047141690826388224046169755970214592897325826437475624581963455658755661743425500945110399259377608117328170150269988641303509169246438453396108961841186181295724285168482221116008418046352621757563271899795189324784747037979112815540339814191196326068102075662590386873404531095990671990246271965249158040339765548083289919447829211281409684104567033578646910456453296737444785062168127792739991915192817749323882804385720632582875007368527305284367928704923509516889636259336124120816752343968015118586520500193260999479464458932641712051973348199149770845792631579215180312859644149001417438740028057605502279784266144072473302452780838183758776527487815941408772137319242536419304860718283615332784563856281351690536897349218862891981266691411644521258862391753058067346480888348721820004346589504783546095656540068641069638212934621300265825058291449194568616623670355239436594238235126628652019178970244135521325019995231571339508108232578498348545227774225953485970901663609288769119538663428828916156204836823045672404821833001813075356158126055246653835532112041099110532425122635296848581668213204623583391810102367957731369323578674631292783490055834297609709069140644739536492982997943437564338514922385959837024000655210374383972682389624053696077799762930079490510231084589332908443126954179756661712756014066324075627292362318773919848249667353209881643519428413464587305066535279410883468534367876622162302337375287191336096213901760962178513065424956942785856810612779683231566708978356132392974787453493986296877139303811128576560836841426362531408640795209569660272676866798297826848960314475675521942019900270804014309509091445382157432242888037345110675978551636647579472173335018381350407929215276558551737483996455433493321595928921540452341967966259228655213577772715961895791742516215309884652090024163064421921783480309396458628380836530657731061149374921567674740068932587601084090543023663450281222635698905267936850742328793419850936012829141311618816426629386433872487694850731212202162384372213841328866187360356107789744990462436221516088356635579034965587610113870677678857870239779149088800941683305565483005804917235048867032395570948549173736579421331927243556844998023207680825301744953668595745862780773602015125203856460704153630137245977464495734105726691557836267578140462395110753090768113507324554723289976460919548438773328478616900015513704537884045228909683996522157199049521304993715590850693435172206473195517652124304023686011562943791885615376266368181978488835825129132197913076187066387761387115676562402770776037687672791646137936421887574354289603690994671877708744810623394964363175287092486639723918600349250785386160382233233025825896409723617047071135492311899502228511443072199021720538916297587185552428617920891641253739803307211532711289570646555719346470420577270497271453729403748191096559956741578258134057258689371539396842151013485813941813378156455842973869843916471713675242043419335526848598983404879967106079664640689333131678661602502117599079210739440858172030444477936985886910317616211611002151509171859748215617445221688798811329279809436258774279363446122317348075236390006703994321191439480782490201706782062429019651601458148636416762634888127745380257288327498837759578109807218042693128536997600097306133378285851711978630870022386444365637156662207625271368978950356258981988117291480940407196475504258591511901298815804399811080119918007737467777232224993388738501208105631878143170501284056932301058893443066941574122525435763341119151322018571914831366464269943606061121793457743223387522063674243924380860792890204476089858146404563027996735015707298063705942976879232489506596110001297140565699126023658417477115910496432796503327263147672322099403938547926471724566268828750565435217491297369998450275887669960007307013919035390998014682805201039862587763556466554121149152540135183281595836365601483052079428654409488686211657230717761274493961351238311731443376884685735313796865081668512709716221275255429378422055528745097391546425362169772169904833741732711003934780408011070195676875959928316725866450756182636492767793535835374287628233620177236384250264802295250313904157349285685825633751360793485395521179109486868271007569761616741586242200281391736235976791360842067246841957359576381817110839591969391615598664298088680850259367705718799544382269796732876614406667271665337161622441245864455056620944823318395508172196856111502714776523064062832452716917121357659842416357427617639907584583853000454158450318628217550937333557774709913606638806688992659222243442942952613502055373034994565592385990841764275827582853334632011569734830817279192574316604325926497964699346056515296893652860051403738741835472239399010289135567880714759082443004779835040309441600112359284533175287755323088009077525488638414803736576889778486902197372792143427187945324667983326853976642134398787199086215399498768727612005966983396430748957017112950254499650781501955721536650808923249117927696472377793759572752705828141436973686332948312266592971894056595650572008501538331792286760708462582832739029614686416031194823557932109220029185100276836934184518749908285680033794518999921623363617463518148384078166740960905490627031859998501481207425841419179889779131203439583949085564718500611806617510784286429653284056712107581051439896681128741719890906891341347720746481729689174663199105121169223950585393459203394300959999541133573513906524597695901500173261604366575064858093456251990445650533932627800602551324850228820990530567022858931937668179236651814863824000526716036097993977187143245269534972645461970822301457618335109204196749115205137595483106188750663890365167821071067471740609038922341072522307449255738532794336972517317183019916788457645190913520494612479195933953674283210180200345089670540873110234732249150983296084945945948085096027926237487962521227735081273918811009839877985425127472882249132566348585811488016194070944933750259694902406055457426342546244771202980306245016131185924921916730670780229333035946014853031980493210299630999934608084246481852865817990817998343889642889914154206175823448441513482673211436130795512018461596962810518965345840289327681850270813581805533612558034597586684276673674747961328362603412452808225917855454340477434224260306831314252238709302644027438892077997557672556398847764988315015312835377504093869558795567674865178430992987325240520064124342621636707596604076223197854908694068387773220462993103381189851769361575064205460661462476377028354737409449458986770625042418510666668929235378895856559504960230772422554237472287486122756267543053946031732977637988203470630528188491978275904035027605228975627024807301397303462381186421197537473678278374244789976964994179969013636146230786080618656101890053960805898673006723748067094460292773628088365109432748310664674611387129998086851519767885703008922371935480847455024843901961677616363154791234833810526922242017909502246265709201911529424934525258391249051895897334987364735374839009979482470363050351787716416379681753204060918798728222139417523173539594663519734297682301162002745332250959988724070324023432005049566143131799631877051005077651074418302775899255681504893484905640065552419891447339348272272785882801871321349825326426423670466853040995731764825157586105485092530304105314037399397070973372190639562031457410083368757928756743160726034358998586411614649780370909724658307911103009217255441122004569720047037814299074342941078947184756244283114622729155835377314184716861840005996163686809448564737695326190730313312929212604529205039132402071066259716031917934753811932635728451888721361975514606093695893436775819128696583596749526667073555522404547003443421121515104749494823311404506450219514478518129352458200032526374824817259135100025767337947398280505065257420575798760206140152769333908701295587873249911241470608998163815624566660712793902688074951657640945850793757075232035965796675313988912364253530050767942375557349857666509776209980716431146907475922949784950368387595376471366209557168942572443085110899668509181099564647163621526114215620336712547666343062162726760779149447392340958721856717767569834426716383791350685530204241685895147230517396402518932241082893846232518264851671608921479949232921533469725534318622611042767054772792120354281935670143095948501371700678386764189512461450903461620442941516848405723430134443897232799635771392657541236640974152850893534809920503441027435957065725216596580984507997221311592834624459598307960628253741559998879422715808812513490563861221984303974066110758856595145081741274412310083035275466561488648752237850101778611389242004530582886512870347552939771300390376188809727970585001121204653946171656913531967681070624299300409570850148732502202577612747715828037806423339223309205508908430786087564461862404874341406637578200301064388220581898999410801214364008365047932272141157256154176524391984051109699898659884714686760401824488281106163975811504141998315191134747267255738623755908058317973790188638232117807295344135153541693821849368654097730884105829688176073654399181297926064568445175464178623255756491297409848927770843509903750151288678945895636695201228721456859814339868747827305861183361526938809403071781352368166180216536575359882309438421518088038111217461420126412224040566535684486020096655355804050393774020203196702818642695820685593611978333281271435910390297615998643438249908000961144351808674569255503050785407231399584293745688877351662084900444565827523566387405013259090936467445394183021418596725633023392131277439827284057617633951903058628956280760839663622797209516178423025932067127574252013787541640697232878689892758367471691638356268642924154439958641468055931063667916267490499893930048892819942119953880322645935604451020617820788710459317757219622917864168257110808342187713909226189557294755417846459287652829045002976795166264126219624918025112388945674039052445973601936671851595252418738488950052148013402793251634986178475985624996699335149596442062175242764521481559106560369711682750836506074061229794686551876309015656514299054961992315689996841811770018906592189410865320573850107436441357238409835298204497907788969099402360835550539501282815043467377050936257729858441876095518588320030356193424000039137190335304269249882674623259401761786858742374319656326830395182877933230515775528749986075121545153001164387045888596285309441034067559711970373475210456353093885565362782146668117873979562853252619068158811038137912249709814520411192647719501867681494042727121778661842738713410108719836621607560879427108080036188027658154922869015468365274352131417086073592078338287246220097513761745831501353311493541959613627480711937343336989786970361354206033859318217682244440498767826126255875987861772991300461781444491426064459227551285715735988710738425097858569312746085341356995220227526288859253558361117867498701359624076839077550225187399263508263440632901048871348518119954174504390277230273284826737092862396881396354185101901873412528867658127234162635329668223921801163330136541393315695186386868146728004229045201560957417783773217764370899749031656899706454442135393812646334871640592040734537252731539030143707292881522185171838000171318444986234846626997686678634409556257664670434933977969736533053322894798414036599912857761775714073416988101391572576280139708705040542762149084721999823122310031251144754115793523142934424735397807279812926914453514312723859735231520227481778764566638786969499685484441399392440200946483883924804885209074886424818678418638021170000414965887570170471838738481504642908220292572033578704237394136304196523574419971133431588912801018495933179140910810874595582197123575023835830487935892082123059785736649231351651336323306012732400339628080167198611081614509771043690777101677743348204416456410095836090726237065503460218424542593088106915573178844819252205676094163905518255183481565477479387557217999269980556026805346883501570498419769108255657637154147276628458748440392451575199730821485311273120153874578671152134949857954605904145965717884664053182782001947499178033365071037960973595499276336651874046716383427160842595148222127912302537223035243961110942082860156293002405701012626322285985377189189005229615530904189374958198175750225704971466505530401335527696373872595210317714776490282144361612942411005529637616622674851391129423199280228496846904982357114223316650909580105727636573589042938195027517859772819065890581593126383978223350576657170204688409818388871811077112488952416995121636029235219034302906272739684650896893674016737331617816787495812929467044935959149009548513305259344606294756719843336804142166875495783593133772811717071696492387727501808046290959600580403393740088614561792756921376551620432973270891640772778933527384474357199367851081965189527817278088982099385189342285130924649162991450621745654448709344214526314193782161609166882613006877929539096047217640936819678724209723064834737618091975079494998525439147606304736449085849492167597158900514819922043038484440826924393142885924918933869529873184288904905172627281781300469103357608853224932927252096501429035783412708853044849815263619421733042907279743866863074193117503069931778906672593054910129492708137009586052376645880169485623116121788836402045323917601488760716030294061558571234974617538923045579058233732377887462432623560620963362344245897762447836569001821097013672306887883853673604335450303679361667260545123401723315800907129027582372795027291845864330498063361044264576815274832726830962684882445159757757496649058501314417964423417160939671315803376245504022173065389865602374361062051574376566537169974384375144922990151797094851280136636838610659499273451559816963786760820518216790921396327946414110686333829377734263416973282943809049606099555969932587314611937546622986640576040892340163717771567047334573265202731307129785198500674593370710075846037446195607962315798049429628682573669729427187256506333325893882599563110098706082444061609656730303497140765879394831012338192692676522916148685658019779401216738255906439190791001921722456495643569374187532293330150322773545621939103177889948598398984633263371915687602232297265404856084957284862086057551410848217081744818952521148034418259280872305875755559350796810445063301992827388772301310825567517755117504166662796905243607723049633053490418655069080067939105965378329113918302583086386916129375248241767125339073962989617722154093046218812629533848778111265221332734081660491303818556008994547099228166381532168205818350217099988414464293176739569910423263225321584860480515122781273628740710970474085474536261415467391304343570163570773537140058181553865063334412438217594283195860277025310607127527156845054796375246844903533851747897055324373520136285494520737094422383064844003482832423951941390908022329522220262843933883706411625215102088819485471535334408182993164706665278930968963901404600587059415060768922079649390786670868065130377697631856365211622149482933302221257920184877437418059423331822233289574989678055388166888111569208027788504810045305516770732017463544533577375173992936530634597341672302689509412692539266591804804532036931827841622865696454930800632310132910149439478046099474302966795920664905058292402937740121291963538715537243106197091273866091776657894518013148432661813277207325625148857012486113432997047528707135078614876303192367588722606791934681201119769981222304417872458066263405394727111139061093924651339833675131122199011906145681023912072777205656636806226771125180722682712564852735044593307753995826559112483481216502930449629649857752601098334272011042832555687987211933369314563533465479056167754877481387830322607190674309811694760235801090743481676445658837356921413913796225041347852097117973573707618377822437257957065472864175785334606554619172755354645866255623181383279656844088282081410156158434144530959071469532493132927137712520663652507548873524926569058634054626705899445259362128700784444454992582155501736720814624706298498767761203494266331688126244037334772673328345229620560705908005314379104018835286214213315132820470967552748824862250837546510460741450989606370304658694610457787023683520871642410938727743990309443817490647393794348971744465047235842743602974651238399667804758624443881738200712502725069490603096053991520877288486078774656682246768759003029337962945176646786268521502450902352279447642513545575934998126845604689128395700863260439658865850141224245321488530799712975013689418554898626472975918093548179147285675642372162711019054499416795881912504355588574658940697474142772378943884224902564775922793538559314781460620568098189441834142684518221221665950057558551039400557554347897645315479995199300440963656177871542327479077142007468787952968376451184345069909323762324566139697392554711673629781369713345556905762358545374599587308435802799395198230099149261209793543959951194875083738916449818935960078706729084251575419452632214812987169871655952251671819205086783536990062905905535796399591329419470909570319455816663994395602320961912949532021589151642883184811214661399617752622953992530393881471256964145107128849802405442315937745359304499953258144881154846933621054270392075857337984666810357191383546888468976512998461460282411267170319763552442265592722559527442843995707347039746075926664835941849765844099411590181784880102845297799157419613551655180396422495030370538447600081029045201454424221491217545633678702520328770483022938098408098185928280562475063875307030190487723336495791973800843541427285293025707110940539367920339996124877504724496166520415578188220706010250267853830043359734984138932058716384261109030862045196554088313129875892694691630966220117184820568158174964362588340252415820686988897766208857323026203363599106698202055180533932430187004979662760977881330390116496717469311827927341676878785511747690942001010260200927666045458962719741898038060552622890179788666983327254562994575163251957216900986853984003483661802514392400608586259140694814316393322192257277797242281303761344088526663066847656576761359960207010695940736276604757138140916285057812787903502804759800661449652718521652732883471518688414145017813384562898385622630121446369015613186105301943830555030385564389334432460221671824375247328098121413223225624440192406061146480807658311472663369376431957657063035081690081380624633025321639317383599258857447086212787153714311648116965558354921869812508222974940931316676535425611988333647678467820038236814486160799061498555238453282417371728144802672592943187331624045246775891786254944478545929105315935886312852293377899041777938806728918803701848183576860358428104441991655216924556322638550655546441595606759266605634293011169863806754737104207471455045846665049074220116704971260303014187015482169599559217704603512754955443255977787147835932747709992281202165705067332421754917625872042420374938237488730087343441367591681357018984761627038047476241718974534608104709711013718012743649565092839763371548039949360860167104901014166631553333393294498841556235015017965163415550447193319577200112449844570053478840068355116405552101601124628217427604214587675283856102439528937589275028404372932804539160198316431615507630436048847064620387920366870316592598282725824058438451057519708553521666529552032720859975601474186099695052206816278049608604441044828201548405704058121785124830624403002029616623789276004135372945062436433879649624100997509403240977886588934250219570121441797439584184235626389534877389209911442442992551186015951393215286990977089763566145683499591711313966319417603837373978254607401024888013456226216102151824067656295434330457967823016971553561200622570330034330188332052936320655075297589437095917136191641003195150946051074880799157898380960697665567505115685550516220950882082952159836637189751097985276202924097349930365241841824052857020973609791777635590389507060464541498757236969539274638844932784568779699740646641528374738481711868707144524655779934306203632769946577623171647215102278802176240390763158655442171349013665548672198165755880435431732306445357376317680587333422721999670655355864632162310461895477532716294038536621467998214497928004563417486376706879278932999500094438775250956315224770404130845871190335317089854034779625785015445242568836058758597989886401437712434565343907048074593477611016748795143613853973628605056591346501891147993723471526325633242837446399987927318970561244149662561353917429396052181157893132883427572350870421150677205554351632253247330963372179591307298071552346693705699248990592989192912412967464601672076251706723012104671526943049703112231006507852957208737584784291602254824879317959522445064958254810629779184685858405778482205252038882232599953890011289317437930759212014175923794353649852510724916995167145980776041825037551624207795582997110467842555045024930586752899024522854895157030839484562456287730426327337333624569810547227504514363592328012102917997487682003937024671324093908309647969890239165629759520241674705188453290064811426451973298024908127852923447792851533479401953537049682193067953796305790279786515473045385852932503877960524852671713558318610818021575799306572943424410622529628405834980437333615699021185439994964584266488210597562087096295404872947189345038901685585387291263774217229464415863636040480774130200458585413521071216852497744875001660041337840069004011547995150698071336828884445039207968159605388180701699567193618950615466927334262415772128998914800370408389447191691646940320053508060642810419676027634631195269136059205583559566488144488299997412718627551468166585033697651702766089231428726480248360259370946249911586522393460337133081820748268273610047328954176628312311692476686107220878433380590936248598090381283772495342703438694826228087849419791487336733561458610311508198926608933197090698004727941957569752021429107101795273578609656578435593140891333082441348569264584655124818870569747592918099300776092810991709205431879192379328831431118342434803603492706378448938345937974616620132771956417379053903180059567233725465664267637229011332614841310732313547224224459061013284694991945238904681229448109091084172867401057869085910156922901905861801437352746415426662242103978226074066656041659610590947385159582518455656808447667416872847518263660931318737768349562651748931267721412504284474387966712037685929968640743574722537389713337737385438628305168861593468977627859002527217820360928402106578050053069110857436400773181919257504769744812413759208224357569410537519082897986945136486810576958501242002116310908267573148479271265982910236568151409875017749802056805585372492325913240766776983867595104006178932132000970375372103839371337702073143857519308349718617594711697089618371194637862439590677093846591959314610866611958410204004223945809909222593550150299277132078607879265047944819299267635233391589472914373667948419295827233637059716363423656275577912221974648075547136166174423204068013498095183352085784467315972790842877853451352328727280414431599652680163438438929212447955812766997427584653895877574069756138716647521655874002949611084983183407323341967122376680464526955110900768709487297648178540200953544830037248071332307108892716751069904077737907682884002288356319972990282968368814630853671891604684901940063662006865104774664953247517948929503418123762260123365623876442970165330064742886410859320551475598829945962000617839983485714756625764430418350669530831066655321085786162697406696331582532178218567597534968958725221099309559487546637554106701483667910182654546660905789233720212563125893000134484482199770030357316722556396534618660839643437150759696726335188804449398829776509690707926279085827407775485834064728847083156119416712551336276704537680052389362475050901935613033198208896388901499267050683121157503764622591382976451369126205545461049940613382061373423685278938457116574974066647703313707221205998674076569874560460811203437769917413686692468978876710040701059171622156497846231216019306841824336153738966169638206826329294617105147100485404195194088234611311725763763980723188970310687840585575025147409643870054047036268793767170823928475664717026262840135971784139597302821459405083909320022305832092315110249542681245729699960759305762480865515859625984022698451647310657762961113802817926164145462523117587481886254528466286869896735778825332816522617133616327779698014664282453664767913955759964963715515075241827875335769041608938641474167694355583586678635160647052528498990534625184564095567967741416280492553985528790574316408523996546893118992216675923129649047425538248845498924506992739697502767235174565248280153873880528372739958562261130233629545312021761771571190218439904671973065226401360145054048087911981213006708161899583361425360405564987511055387965299329400852693194498537601546700860732680447148862476776533796942127932860045820038902308988754386039165743800016040702965253373198700280218306553617685470949357677604265031729424497769703090796589792122933578554297249558176425227277986430742857229442176465863878601765928383666451795014376773530496421773190174702103260824568556895139362710419609149865538181815494753308501320327382563393294659698642277332530077524177910464411123299890563991599392857534658118203975313866710430327051724141114939808932349673063893099566354962963449500192997749876546789325804040341695105328084395372977334953266901733635329274186173208590293594481350234575937349054487582893198466587854057427560016143818304844956947879008237350178214654065632465695476940997759237520283995636481273086635029342452791210375805322365704566673309528607124700895794982366935598744329446305770741177204162060987137314813540976681104893390694940329526854901175365720003441298299910640054250094829400614483337567371425700008140219784809886011987778214697490814265668500231902592436209713403872205036686148987717699338269186648208152251992720853254020804812780788882115653947828116966483793465503021572658866680996607242796149090746404887874566052664715700463139696689508190076508558119057815603185927177366698253456412089464933163427660030377185183300743037803346852121338878668658963639161615210164306455082363430494134687566140145022135941066379722197984662116954560105459312454004641296799253486057157636400504701856674159462462189566899741641333192673948796714493187656085519571167888633429250442017190682163883066169179649362384059242529881849158194704948824717643570897563867883205793256889750060518022655237195714813443376278037490655151741121688747436439892992998309246429365202762090282316430672437268774893757252229558423249036116798967323053199112873320355126605405796201366920861071394562187249822535163389064409839166560976500393581258840039240938081825128369135213244109156801553128434455496155089687139848211502499067754383517385739124121581988292006994377712881399717976031676984983302993877949959763240925090040473906708015772217873251112005740045805128738551976319001918947434349606735440028179791482568156707293797488035343802875009005249095104582032765158236749324548164219365279999277321536739695748523663622277001300452548824312711655788283252101895970754757546853159218710511706037746367687618183294949561141364488936648625037428137270210512787925677263285925983619950578870418492571981046604112187941122337845858190996488018938157972742384738817466617485804985299197508570222507915452692237935904035537528796813100038162070194887151336043314077513851106985486682296682593719964149365079799233695981354689851063811092230524803280590190701120401478777643276866358617089584104047498279139133118486483267824190538935288470230076836329454818710508141527410449629182002750415141082085355727892847109672887950249347675009625531067859520850581128688466919394869036642905016734203681694739239418801828496467828520880767982169769497563411166353428115044353106816420035922054315033740174694871503995145429485964642966125457361064636017571042901684035322207388188522050529838914399646353748104669190397014035597945177707108022238941549712385429232348900131739299589616684711615306452109044276234717790364151362596936336693644559280823207769164707548545314938853928331514857877824085175240896778158870669669579916235744339727964609209181883745285443477335221497924101885857141899002077773630645062259767134060751546703821399356026567289311591776313078459653732581685294442764373576064640138192935267064132720546823137858798337035039400611640289209823642956959692200568214328498708075633249312819319046151631789288587793562220110522570044171427941279783836357256916584007975348539466761312428043824417932527671191766654939442822592815029360177721373263120876718355492441699101635654472632002663384122198192584617149352700082635780074537892900650908827340734335337300763476822394890023117283655494144339238547071772977740782611145617796465226383874924396382695598682786730648970877703764009080116209955782431060729870961058163394029904686195424300832019896596009146718513682317034745293064122551376908528052834149402173031999277633748152852072556010274060450041281813115600222249968623356274343975951579446518441188905020948894591838525831202267999768596351525074111293716599876599247995182875048909634522993818285550471160814271908241820951074527439905006573130909949820772245017592645616448924163079440924302220347566171879483945152106935717731744435030507929076481190005023216408011523529037951617836061087790219741235760012411646808354967427211404980819473930386183746804623634967785062300013758764010762850808849389221155174648048676206158267628457701542983084560974932745691692660677377932782431187063966260033062399435356155493808157967966197915782143468913112361240380875002786048892537014309939729431418510892130582742767517104175643840132533374807106646618176123579645666355389490209578474003858363248175324437398629294854416008196188305445702310349511566355426647552133119766943010367773437591984393275881993371982415542653726443515898200778940480993643445141686585401573710242814697025047671442947046743397276310700607729655063833777351687614416596930111375530463979919098090556873740535624794003116565259344342585198123504671160628189075750387317928697331340868630652471372609454192204457321132705159676445701353138235270212363220029160980504276885408541463571129091229672340170848563016858497781473979845774204591299123179414413404576695147377138783598820673180086162141408479020589348202128477910459625154285667080021849476529940286800292091873734962631192438188958461231072329474038096004432635174611632478566530789856501538229276412770306012597832055618159891632392090611971093182691589112178925177990900201455947624630450740203511006746849049331483721032562528398328796339997989118625475111309661753603989751959321469948924846030593486675413526246231295398786019580308488528803638482859025609079616881529551942035229040439342074556576690408627528104216699203635677141226920713549562809734971794246872444546981758501009668651809971561521351904554470959048015835200967619090845542796890511900578547131722595464472449131450832335454862714095829594403171197821569852167033496003760398698187438759357385267409500792595125183045318036376647161150802637000196437261864592793294852162417738360908116207365183048516077911615935060634111934111012162490581715664617594676374124674691840571215903404307771353188014915555615101945996640289294345408033977528796361996201107090285012489856194787093780951954737615644613906282421183255693373460730724851354839731264210275522064400297407934897491959755955984374348352652343245559930735416313983984675372877640892736786093228663285686661455674032868312168284874263907523289101833237713620824831937192768196482755273413209203114097572648900931927916088185860768407812078935826229700667789418560840379779613994451828530980935683819718919016039983228128162599270700606562465176654217486229751111646628562267575728976810626045247111674384245077348074469178916713346416426664356546585398434481466709254546960072281178076366623808339161504287915699449487222543557335007169332691691441258827181564604857313144577894180410588634291485598436281523338849513918104308583025383797908277635335442163387009240041055816018208761885969732317184409784260591193235796611930023577125170209273853384930013887815062291292954380744049149604591864541794744736277609032849753375675451278604455684952838479607090792316743559512368393051463784021456712609587044752314695514635933167464834516676069834531442788248442873921668964692546597088777095447741518791325332079196909813293455939586920156411416736322774213466405249229570803866147321455175813062386025066231786826106059263487196416557681754118657223865165519568034934381827673135479258711399607173486847138306716473931946415202976747293671653518986631945386175943087538889988852001215236096462583543587206508328829878828382277879747794895615232063201253067705690265410027966796573233358052049983252730766050345939298206888190586642587577131762426043234330289698151123022269523332627304880106736341673856545396124414046950577334062764754425819160889951279040301770277288722786581799299344583970258302484812591429009553628171161118479706400276617355310961614860392206462484887937465567816910856620316870367648796655798949097883902783400132878906413935929159585155243606137789879165285838188153415271378763138071219563327573970291734116148337849069642517552981496688253646726910532709508655670640865542061731323580726903225082233843102389473380595309541236019936772082190648770724459454153159045967259204816088489737906061170999117950113533738676984283410964340765408920390952177715679841798143438910099979865751870556247541056882511959579243185664781409640275137375901005430449717599726031006698093570583376205003105565527019043700616757716502789944099899709882556004369992604405307589765914914982522790574612894866820349129007053236021478990886297671116306472969189050738677770542806883972854106220622496323905089332389562054517982711614122930684900402727362327216442802701533976567735093189917538117900529937653572353602385628455920884061224456100962581115013110923846912323589664998098034768776681249031611807577863370081064961746874500890778850459251347176494789787439497134847135856414921818627219168004891037314729716957561182187765869695314737629678674674988354559579431609442289138190596948260950519431104795599407512976258968266368324393891318189907893810030766380440833474425576691042288387218160156862783818383440466174398965765249548640667990998947808972623321666550712194509205501094909237840031831654798313210580935179515614239872941365166592005298191265245352244815621517015563636276210001216542802384819745427401464244940860584405455214773499540635118837932673562879888268210600909244109442519849749199240371485159191474567041843370468216401624250980355055829491060371589880032385107786262325110427248790309116260917691837457222952869280344506497674566723018338537405846198818413643186251675656068524542783127371369208888464185947622921881464614338118317272818763815537915705483822854451342873577919718782957159424900199309975815809291454279069426888210651569520001862246807193870540968554111403635026412303932577673180086643519296919550008268937950398642595063455775097938977154782831780655093208896619945329618588139926402485174336764911608069463342680245943541706717851998402486586630081858898235721870953634927804691936767209511510679757010936551347575032821857205580814347473011494166672551415760047843925298551943207311970323234297414781008687165276159694502219625812511804973981216044985460946384613632803346676956327959262181984883804815589260595479843038966315300079282092794745097882682169916898684545510376942955787497019736040151876105783959721922190227361393626838986133145114386334059961633275017306366507425922624792500138085938051395842327795396494482125578796131481717803569890684216973899687694450602076963423825291516116009244847292298922685711945327792662344075671625593614783388386162937760812961982054324331710431723885228713032191351265562418201659141222633459470457609537931510811290565221779987562835296468188276846398850233609473383683020635481100142966183566324726513294836936761717317331708835066987458804762458404345952768324796334767274081600066504124323335827004628878465028518990787461855398284734347004087964901112855119560293521358265976394934826849114825130630534071528480970600749815988767064155916484016265229050152931242702852028245708921778766157830430079341832588396872932408171778178318796565726205451799591745045150481216030311907038599333947283410046399960054910260508111485194407330273803613072060596845712064814526521226205180239665381728920044557156317545686889674066531488203402469877313798416768800477365092481503815669349891664680925110795681855501789891289894277073590016803267909447216973267853396234229448087337541353704914382616329840895939161077753020330009708956342129517609485784490287319506040392759954142253054822400608581687783123431271983239806606199721673168665944109682329658655500706876268865430160315397299329309449140055488957214692703121025342309987463370501271594973122160145532905300675941376522949018342476762094309615545700486747265150769726232702985876554742725555542519207419347273021651328679734208136379654868451099188231708393047964488823552073532871952844356343274546943545328511482178851001935609699239296409832039520862455267289838064697481391160568735230201740707642856157545377128602461456343362396615532031788067565691039665819173111967451846992278004247099062317125342216866415039703817107653866939472146227880604000582587162731273464416224252020673361155719208577273039020918089253218622345255340093100409343774468181225246796104964605228140816549357693306235892375726509551098466797480438884672412349150270484258845221126303603018776405260827124290958782165078409079718033391099562732821472227459774916615820861751185513463021020941849893713918289764432612198766312448142419458431567395847698618633625521053474681934469668916823470554169238901729237347748032976692225278129198301630660650392269293256741321582269715084035579769112011647387500158273977786522321806043682363767421707470204303431731782849009261132773197120282839498169501475278156266176993152813516851210885908123675949189046567282254078721550012804819244685572301103960499457025304792140319337561251745254657387175102378981189283858351904968877945974774556875611841584455119595244407126257332267022047482329370065229193537538576649113157138928553466164475631198168446970521388367973845862544592067162313105363247391993568496083861909382609708408206066166349259539235201453762645300930433122524789881825170649595898582350564063984937836019665664233881327570756536789688158409013518316015756216532913321989554262793350804242096732825836484116605370738403250914195839883304697870745605864844693852813960027509851593444803491361540287758225440388344612590422170968043680970595002980248640487825349639201940382869806480876548033695449644843143368384500289013675830063528863271884504459611028020180447907523734836535197265255690464021112064587907295831166512710455463942425819310368599432193916935053721636029416607944344890470515394154831815876896100457382726015774926883062230327303766563194336818402204264871839148438320177219653468068924252751173429414544999881465063079853003301375183728975583962835500615451828641088967782940128359595745625731046258614068860451845080019796775965198739126896631347608303183153521841414929340342629598826787495190195119917894382261552393052094011297848549158969891541952414971927933418851642570264013988743435433089956653363980381910985382671022965437891233726428407845213703856684560845421014251043058242690283931365864461096527120859861108447270744904976041783582824181775359473985566371036516862498963940189324820867567144438137638197068686535647099902271579926953001858172586994972712791344338935587576423439262165555613915754760069220140267435041772918063379165770517333298088291753730875717968036776457724443179346430648078923723023080802798253054830921269405088810575207362756325503082764441231028153005322350315542555830145081794271869861806355447258222576500676140061913086422113260384574422113944057160134653248107599532517160451906780421518849187708447960961154027929989139409109697305144651567605231831080825828828115330618163098890275090514523956448117593087600221535577010264273160976464951810699181616581412106097216451227026439743300178931188715294107107483688253527963426495807322507718852341739943773726778295355456101900066778920218330089256335648343658553532488564009988228904622562910595514575461397039780455752939828830659941161608466354966915216209886098338720331479361085038972331337787852696384874288031096645778477113096886745031916121326174400029754672984974752633234628838453025148051799589915213054059484422433894868705238026889404420533535117872681967275310197391677420460597397381462196754374338629415308442606493162799662392761504987844093698575597071019244472476164383664609231786009427763007587225106814253819921462775594262360461257305207994711281897739330792467693851153782752270775972653339353488914776071168162353435017374401905531734721276082849663389336869797319408670495675562382290281393162468246718072592671042051878896889736747733305234923548303252157415749291738595845337947782686845308364020627968526405362994993759343074383573884171069031938005798449197515690519907886532767960788726792390945426470566046887831369285883901423239479466674327903571347750921019570100872788616210569230343616143221273891010443141751628375041508682026421313593332585048694558975386541465346347659471656450413791909960675398097555422906224780361100112781326055804494708957059346801624788229704941951740336867546521670172445274349034023704894886314827781624825382643246202793254711591314645517805938912698317429829878167930232925478441631402370446834605170522758822256371798920547776634838894200893659811135527801381211412462451403606069160871997986283590734057727995646143925334862072419170697478902251565022504594434574697010743766000980862089468732538601142014098334208292442063654242862266402035464259456601600942549582351885921696062258566445545944090025942055329599125269495333589086420670394086161726642641837130678159048215580509254732871754986968558431136767991793225832744525413544803519834569520205737042033674530065039414636600688433367011380094180905485117091331754640227360468918210336446264893773317093466969509192474220342711718523390264156664537389178231199566649331079898367911471284832033554152314408569688777034245426444671658343885896111716516783494678290225062764299196502491124323707723049911309645874189229920822423047978789052983353525093209989550986487590109344782060091111116775410920155104882970556447758347955434624660087081112272017025576911678096883921214464719998577900985300799100166290334488280452716771551094169057389369944934728546907375573384904014401097339185393117132471171053554022917088296598735205759981738136231747010721895389993422893560868546766477134251708231504731394431434912492271725533744066822626395607265379741411100203996559624237332905305924439754349611089217598604698776480249536211390904639611172956637752832853004230386305831824582776798424650633327349920693945082298699690980905591073080050444705136521521446290793885322064456382052042512509405557720398686627401821882725216701068731062689054480911409568842221416263316428567972053158091567732944903961697903336216295011796731027503140971949748598970254668039681133391056244161317714255654127268149878908582896609141320322447054347486496883937714602832456786167952352712698609158892708680252436184358316163212498773314094328160489234440875618075796395148504192672079749268428896566066548356171171138542352488085228271768448015671353132461875693552679933019625064631553577711877713657352206015561698822945138518821064198241943189424563769517564456259743428545804775300594252694828130997432585910590007664533156602788806741217836241701467624146987114068130526798966273474927052769697650913337754722134258878954923311891613152803128555905722945775346684927393998700999908367400530006073428344342065783697695417864682238645230964883423154543177591195688679852208037845233251317871094939433032941124203380749230444874975594983246305967225020438502399408237849949223152945308607889907128878660920259848076572873763495964530230546813232248409475662515468475305681534355866949321291377742275950414273145417992503093494871338453785617207765967608155650599535331251156565492196522338248297230842544024245468447506959783872094645262703381836248748544815370048942691796676891668203562092337532253943257790531398949603821666102421035590093648672261945679559986859880812032761763899506572229144223200887991709072494874809824180259531931036957936865507270047562784433058868925653604551833433525418376861640552620083400347893980272611779356954123736672226785169068115935073050584977310301301478759932212241753536097162075842689736190064005871936044160930831466783145884475753709027868685726693704377859116037343487910494390335154079677371914467387635718067467655739759868552046876547128524126305784179932045617573705816070714029921549404518543094475160928075056986711321292380391169262745766835584415951157670033624923750511883253175389512534937312431000643654273165312265777031758781492644323998939028299735887733773898987752942169336497604312318724593700577811677190368833764850174084261508318818304137922768357885097712762650385576785931682238507081860356071505589985854037493829242519460149984495706140638606445000624128354416083198529795026429607299268629740583513503073818684528935478619630331197263474064681530587680151967608335701956903267865462817073927983611577836137555392733457358530724041860207608273987412114427095744301185927648304136748269373778911223671964660087252578835652208422203380805677569096727490650506613274200423864746233862481458589594886770187908469740142061040449177114622834087162059873138130610461344606487078921529110850796795621106833332697266845735829351209637105873128738731877562074598251324654397573881241412201019486474862457957561461377873242318524607479991166477682245171564398381921258304648286766980986064074367628590872585490144884518431634430458265694560637197184762501790885205980201321318016542926295624772671590356780106228920975467344159422514247854538700662950130634115472323152672467564302390458691020012274129817665456148049477615043862578735788166123647039645070831016427903012968499284735503676255601261042050862415316641420869318743689225076374350799161789520854368431641295594722603401048398866205939159283769454166769825400349959604637879987245770424558918083936581181442126575152427183408542800385995088267612191588427213984707652564221480157310422823131342742476958269897280444593819082225175565360635184151444356936294570671884417209157196196564066289431969658659725942346272076225238654859156289205214081206259690071663665779830699137813204553668812397768142891646706719284821683353492396732308965683692568375168065670539526044674581237974992439480110865990418780861760153734658282637689942155171341406297733259889387083176224543308478872604287139635907305314135030164922764840256138232443539275159561656008943265592774995847285941473588946695303464969296015402539823758457672663530412411315284987356082244339078710569466088545021134865523272715909021062145689115001022607780194269300507728705126660213313625458885723129487553732806251598485186915590250919043610492973951088589597518491845649901657598949305241421608277008642886632118557349703410203715512259704875647575933061290477453584510807530680711475021420768174249341675745046824060363909429664089938903368934014578551187618699499704559132491389997313534512852264857121447646647840832990335588125129790493069039669766801831999374336844015560917482082284106652945933981998016138908119597669146155222179656899092915021073060389119306719291931118501809222104813617733971598898741881877534564423845774129659616854455024995835022755140445902020477617856978549216849448937252100071101881726925479477350245844462278938063280056582213018068087242568682078390619658768293207089447746460868442831537577770456715226980814109835437091982211062092803867755088253547478684654877109683832055678147897252296093910382089978829196903588724763230719350679517580805208193671593956938607562602250567844548677123340034701748965412751437071255172156987167867663106322800237456571225167541892725062765551300112745483215375378969439149488665936959835882007787484634282374350964646585566445326959201824939998994124462822623542693022167486656567632744004714899632730600279551399774486787105743542059564133781980533141117898244680423216210550294557495308590439504832614359911550031963300687281111318725850028097022487391180853508260336531845032325571672057702082007122157181255961066683848788705801847126605527998220644831348997922420822622961762193758184512967837571457400055438077294303895449160995373424723255935346437777879862616077392562011028561718819628816417002838966354804534680238028673143165605174490044960516939759433820180578720645072445681320670178908795346862423541150272830370113993194546386314505513513271817435681825681561593958947467948163491017124623703018423591669296016262805390039710944868181214308766864239620112675758045593058257134645182864333146940911767644968613545270562047578637070153708196127489966214544994004507103172819530169097746027392063552866584270629633051096796571299563421846153815036279252520198790487247703075632696387588283628364784351749784785869309269320814321609883529455242019913504935578109870561395414910973894046473782803130635157097048054076832428241197557418351794885472972060299227288248558112825580998115995748816609731320741000849819580108729135221225932104831172131622632798941922948690391674302394019367634053756049897765431122121149489209167823138680507436437365244246823553962843447395122794403295155251388008260813318883358275308333843022141494835164751239705734642245600388470917416006902112018131435156267288553403909975959818482007816271365164334123388870604791634091300086751415684259462824264440537789913663766333108402031588418561659839045625532984451971379068443828190642013687364733462460337579430119767212563109905349735666634592342019359130663785759314405709773949723532389241031221999970593529471357360346074593010225648368235386293712882060267825784375631225919502738223327485393662913154343116648831125484940705359052790689594851538578893741031320195608670882873598908763290737015324356353767797187019120739080436952020472431007409935253418216801238101699343775622513208264911532170073976767382487185076286803225030386855937652203616047444120245990667575898935057737568124450236307066454204205102286927169581462188770404034097069287303144775091013068940977138554319629650280411988872162168526036027923765272792026476730728517432691544026646947134814416669427511896802109232315639919194867211431065985861102472669950595672627695410585358967271182222972708559478568264516595381100666020433071618250817137374856472313169845934005161201224128650035657702581006873724614166160540062624516576105813056090364100490590650034733839999438002747779095663810702451225473335727335441906368734051833026414137276813282372623162151740769159253611362902496210414867153588910857885431104400368906106252632221271789197623574847124092570544264875518893803722570003439382414002165513094749098835612449871845430186440038570491847840916592593646865422464672663858039494228806277058171177579655804121924501547145840851414668466868377199807029429283734805530618558769803552971939583187507235609066192036266255650395632623286808626483725996815276719099537398629563403616023435820566435745651818674481306467421665780423495115886075314011473031281816272605954762962466192606752819018653555910911613719735320793302902874196301028342882108315083938329573067466113914445051479835827755647540067728413460811398433166818879017432358579383462026105877152562320487250798098003012640772448863391355844396200755647783921603869161354555492396196567498296547643575214729231616452237772503617104495841477221062626508594381609067593983195643377955720548532967020002957928377515222060019332926151654150207447348778139793872566476945983849711691540919125451861718665039654734298058185050328081685115984899221771598669334340940205812455047417002582335810311789155204971544308164682716030137513554212570440450675171921258894681035729010427556685538728859280815567878517390315143448917343583206852494076443812476535859105613777291900416953133168338447177534453023148902025823634248623827197954648461701346585067622732693801715574444705290211206966028425612657682759358291043258055634589072237508988253598586912525537011724351133697249441937632789503790609537794517699208682037952364242220870152070864301283236493296621469551826913622422453772116603777358000066122473071801346250936463891308231156128159625336157275070650615549734516409398905676552739276867967786185422294003947663989337875829673026622900079885931506586772450857987038833058969361067307201853011062683902171715447482182274156025375910085608066706765919964045506523974221254896303054465560386051125340982548098330646396293206743336530102570621343743848172331785232810716754090963135429685729033911890581708196656450199714608037494050925455478731394773723606449061475622841355356345633770917388853459791578734032948293239930807289988052451660621492813394894900696918014564179890280260725701070965945978320143997314738722500181226287440278742115503739775846930350996919443282932388568845645198527408678681315093930517312244849480597981739389431155296754732141120111038556477703543789273764507152996546908947759426751502260096555363845437743089367244028578426195403817138782923206199730609487744731897840766504258473389138618009690134333298556497725397969287176568324844759906904056596456165047851291714718957171937972142134038563270068059241052372740488206609929925465783646952222534472575639321454868205776442852385219821632027757865724249675606550731244513141938706736488021835967390153971261835627503538439550766724979583653290187035546746695381194793305333387121269746636978454086535456547623337415698383247918603127442042541883203019889447623390318659986318208730708646927766413797118683881476262716017408529349870675417492150305827872603625848440571011844223262740711086054598494447839108566750104291417119486039726431930044255358740827370686838108874556022714280221329704988793289216433167657433077262666452441058131205483267375124636886608940232652927524923719232814713525679005259145535404900198031771617194108069184549011061680499386290885580868216404490605736178993041122557230620911098879302338560111417342763437851113395520237419965037989624554883021031370142748619583387828158130846677867675715561124208380299090117155123420886134525104406322014114548123903441564627588091505948887563370527187568787226987944800786895573644229136857955056675573000366941777950499544779930218898968440307659903482317561665445609628947023633889738485886919238722933762570735127823285849942407254536800634782643640855299596243299832526423788524785977215764513480568550032409309215799533395762431000427947942949432081059707987539193196812372865958136496095335029380317447831162801908941985003599849342106949651340655583137975769098275636378913579557015280162314656014606499312877990462777649437850853361645971931059615845513885207527391509387446241430710527217095641377124419103281148781615708016240704241691908562123395275532938983083399657411825041424486436996429352084220044594734163972051107771069969115873704747650711732101331570975921587765274580172283539397261946404003827211022553372538561755223734188301506742445803267719964373135469984232828009689191789844160512368228135613811891233477859601930128075132344044608201822355002913074019712288558835653565105351366490656215781024625032030153290513469244321917290307638234471735144323758635462771593420746713219704130380872009431904790276422228108915404641498134928348455167816901878824543384738026068168007561424709221302240456739920604079492849220635003821109880517335520531655568963606873935899799016002858114350602074509203069796294204735769094707509853030117611342255082120467877352095943785578809373694310510062789061095099403528841527160952333763516733144456479942742752818151033933702814231044322043542457435037600080960785070290311049742818324753995438293757826392594941233695863390517120841082340361746668501066662338613332329598488848557905170073883291349719661752676778164232820664985425052162938162757254195441636560832289694557726818705319621980522807710049276092135419320344838293208437140506560728404440576202374026765021950160570768861030398434394081018943980412520411916272986891910644439001627372583172749917345212305605449116956363672187526486353989725733402975053559866517867942166195916086872325235560980188583281929073892360997233149539844393166012816249676466054334275024547761682445832531251271004738503116314872371118861348979040052529174888398309138118348166164571730491845754049472910633505272536548938693187956283390577502111663631743892955499760565076925418581856672657473694029510435472637062323780603861015670143071767202717064687175552242419085765009488969521480440484126295713427060270218439873601104905349274053466356571431220417999569841367200075411684688977357473471207876651805160937687384347252918131173705418507656260076343417712082431337191679852470276709778343436759379191631544671510046044369555188494668250454715630643807030997002169244564880776580799894973865008022965885961542426914902593550004822929322300557178586855647593841375628003904722235407619492393270739349056628796662584024578621042932561313780650949754619303539735680761163381264367194441747067202286585001180626680991992219575026103193414508442709220741347326584003000504756440058060092453946177915623431905571326216829727684641707530863691073342238392829548874794842158049901522376078817090939937320626202376641182175480300079839055697099898202352621684101760611291344965326278064033118963693872029957625126205785225227956100588032907244569891046982760548886416751262493489922292101215266767609724536379565923586152875889680128560122523380036716766629060932925748533044606567621153886015764327978657890895227094454764578799721612441487268768002893685156369134968840637691615922984536689491757184393737706344593813479745983737027165666039977111799929257316051616338219320835548478096243066133705950594048365475525832980310081752938239480432357942821705661867205331071499722925143722626550376666183095811771402225772117523217350212917407956665110038349960237204098371898785695152377245718467404144921415153259284296969664975887494685143795548540463243098760393210776086501408471088751564948088316479211226973817861412165113600309284826100235687812923215958042291482769553899072920589534593288651036667728933338658773173604541380992461224040043616313478380884572115159112640230756003801536858529591441780650466727722435669276582102577391858618027504417215028146350544793613549603167273026538532377010695048011222343540055418667978361746268903299653397445393827036523131567352924620232464610307357815491970779986985169267947581390958945108898163225782524704134297610586863832813188916462172226052312964704639562618989251271959292148216190194166365415642384586074096839649399840719264263232555636250621858944160525702487456781106022115044195604446464714750994775887260620222423587701456168775965669385581771117238061984530893077489099867418684274562853241466162689822638756222496902346149212267048275234377019269242299013354231356146003001889998291295730297027814333139724460287727348678654801294205485263960995283237614981367056794363149187041063777776463338865311310591270995924387287054103795501391468868986952272666189924267773471369265672919313817071799703851569613508914078718400134972803805683474565833942843031164464362756564094255017294865576098808586021400346032018034971186162816447750220149764111741804006555328733991644481390851087314533353142132679793416836474089328598828758981381591563866711187340639288080707726010669751614252842368920291208077250030717561962017942456490052234076974048950551222787989576763904329664915319157170720027984410760423759512784550229759158680841669306593617474861370738145419406261713397038519541517521720272346360764061909933396062842421419735182069297027573946239974593614267402895460372036622881911129137591532868924952581831424900212265625223685742636768148878340021793314160989414755182135129353572789102170750795312099904764778905532523272640827930116902117677475045246830537060372293950672344548581142255359989282856803298993227004281116959045441156078072524931823870232731340880898843943385522433652011990845433983296642450167793092811900926451626967278847102514413889302286982069439714614767662265279666257572604073918511879831144820783961466776596532607355805508568259572345295569016742852797014679369485774136127847787044449711150220477839601824173298930303340528134842833438724044057249834566921740310436729690562628244227855549861845429694155792031996966253652615670393389005581448479867648801751853387137312293549555027563723144070171668092066988547663692202348668509660263512050969302224253846122184269914529561697922105957025732133931974747258901056637986674405065231171566153277705086335529095402794045484239059041161258146402979737897843487756313703757993561991835974425597967913143792922539575472383386902348462619774420617348454066423307612990510838763846419878425435671363441272911482905540934514087815180857380986890747708496911911398506057813061594549713115893373312398662079157462641667600295349748618476550725073863038535988068745460865064674737902599040835070317709177061906978978037373417449237143370225748581601398993684371807957821894565881927778311604158262875758782022878752183112940368264357025702492122514994056018455130466712422211195558260632636074447171771147107656198901253464191641364530671940654909229269313477744994285473922011483117613746790960239746134100073994886876115071171210230513082329082464611890823724200124636933123951767265577576475001369207421074087850440257665386228766482333318832048440055792058924850369758390844526412906285643787128218219783251869525719260175640912262369037541179411710748040449809987221657984785830568266175345887877779726970007307203911601699165651561281411822317874272914645721987637772447253184581333993669552632604707600894111044199018602447399941111274840503877593270477035331870116380954255683393682708810603370280440863047155792680213346753558503053257245937179210393950751892983580688849397643351392936257438120734796448414631905692298264161747345725792509897384035036604403113510226915753650852621936617829115429365291922362909429693865391496417788228455573145255408187082194047238777419581427816357069296371088822507859030447375347765586645192260398911044536612295574888138989152338513926135018337166106646587629714838244890903959167165246414571252817049107661777831803812490518837271006752956261466820097460183081993216596374137550590631901111660249063225480155630989498075434876515299655527097856387238500969751246517309671273862129776617601322614432942667763917598299698716428033820694630946794749092972120335912005347283207952384335913001381140425527391386965028040408645636624117486825714186595631942339495064361081474789061282548568548879353040077856023536452779252474699933410249361418545908392060175341636292612175898277327907522000299943126998906954755291694108776193119918340962787254724053784399587818376011252234451800321218874126547555249691815092776599399897437137438733491728609868488448759844479445640074432253329071520434170847779713232359369495721111917230824461400055861384299991402160597275975583957637382190737488663333980758692529167979379314960909828048945050157741891673846550327900501372288799099094457353348861579189280519420606799633276002393236482433149469788058306742533820714408613081529861161204372651370934571017700267695180619969773940957760318665429614772340119992299471720625745647906425849265096736540360865600310484712767041313079189366521325270710973967295367214949258591957490597444059854027165077256970175745565883964543097540540745957216646507678296454220208397745440216726166617103398294856943049151834869577225047480696672307848205350374684090341345449726577960681080566842641721882847020170234592446720236061583870937647009365595022864288318401940683068268693654803920543199991595428742338520802095582381240933946569305354808463236430070455726694825583601243531238313608742770754876881150560692659559249506741192431705951227985139573688301562862998644933677773682947493043016053742631863272976805982286412640572491270242418435850507596361361341166625915821238551241381869747601640252727747602327092398047860434075712535263042405800935544374192447594838682099239647620913210877987151492300557590379457580269427505581175009530889604117457266397977438643762269651481824122099521233588674614821174310148650540350904702930707808107105086163463511937671704675709620427540489947341946992310172292795902528574716344140721199333741777798777269085728030345209694453876965653693260669727902466915241808602675274875230211762988080214464323225669704444971803024124816177594405339504135127027842646237458911904233034839481019362690961785487110067163185254273914861489559709077831623484913866733811300559797416182535745004848984960835195794967841381971470395455280560005935377715074213616762183580707135916554202984847503899101811960717922535955482382975766377662701002233598983129812715314081434257512159105741799070329055552681556514973680086526446832452527739296942426488822941059204248047887806587211246764631878444999766893141510345801336069845590878427507851387412563750763708669552645150516718447074900511553304271419606953264128873264935478490586571673306211533965180809193655876072487156943789742059387062932802949135430962741458106347860352866126075376972236463398619329162399713902348667102038808404791693941605266480969910359841563824082579446495402931979071016821985182891921253036177224523156436574076150145721016587287874036147102748738549143274373923404884727141132021788384565077902282184980586138256636646248612586961619776454455789689271387162820986767121517728313262580957456519995005127146058128367731704559915297401879727148090519216747618088027503364420222429584813356506766093764145948783501571908228075857924424114401835694234545839330014178092465546471626429206074651533326981142841327112846322282854073449606349148319383489066490448038169958537849318347838921851393077015653786826546439595737848648381124808349383768062740300242600461236004331395765821581407453836443660928343394709689549174144416159920054919574554327247008038686439255294501306797394775585760510602006300532052029635278969136135361725184957405378249993219950956983358753874293244715476666707482650055245397147837467798497717427167766569265873623187369562438480481634556206520572924264661137104945793836652830700418977617849388681242949867611740338999904863619897945923025704262117169897771552824946783880121128037115590498872248488827408168231824580870983221994533372226343385358984887130247172148191979300410844346062813102780128997572719400482167298326032231967337311511025178500783016842466778414324961355235693721528869330002654006421451040558179761706867460876296092131205691888687808078809641588381048466355968074145029844929630915961295833047280090771085308146970334791199123582180296685397087736302242090764180905297228563181505688854293217661792307991074640414219107353096240350553074265570885215226021807191020172141679535782000507359653476643682617961194739530663259689236661203795412624047391435252694951805437766772401839178563694659268879886656509502812392027965134878834359493297780512483742856228970138246955889074637692290522052372765499077904265567054984819801828967154702954244651964533062632521758867963345873177056054456967524811328672060430345486796431679908911667310797840863230363959013622296791926420761438824201237207291319417941246913114752137633192271107045021765041876056739740154518215489575831828062291683295323209099656372997610057738513536261905004715866115018932379778332683264639224462743065742566530872429852442297073760615420158377274305814067333039691933560345523876428822540681179850962715648189834866206896791056921005267690165421156927205692002876835809913623885087960046766775013366576188833423868603851257347543242498925086687731963773453322863282298119925089207550049771306881982696444519439736897936824153059197161050665642388365438519930745032093621722982456118878166909539072796097134894321069183891104934465300146633111782637501279401295929374383372790903213336285429170093130659961086753805218268178270717981632501907985681502092838847026508951403464928474174838123852212563669703159782418911377175906120585892654900192793219502931195131322733085846436015609987245614282578613466951443079570704670834922106072231993112039545861848731792964421642229777929966034132585603125919114869515299028314276260866968076647970877502693508709887414183482449189011572389492449166212753810311593312741454123891240200635116028898911824984940242719125151657655171507326117648805686451839103581953906405609010208886106225898921771543192530099151389602364900315435939336425621467012845658128078670535169236604556923985781312106629171018800655614253155775889760362632893640354122596336953634670326765952209325005603467230199237620171111888034067460004410180388604152530880114720640876586000408348696573843285773779125314070626167156748121405378544000310127111936524380308613220922503437424133985650447230129215429769866428378865740434973980970205480375690963574264252775304491408236474898771597223486690453477217154523009523671957843349378745874664468733616936795894427268322168797159853105404823888764352349977463586319374646043356180068933933265453644291725491842583452114855250096354514123803433196041026753623923994201201712453666910080270735815348166782842316884601294961485246148313043242086373866667760847196685883017807787213825655159560757831899416499801288608359532706340636992096463273572707591325518743022754184004297760412491455439252245425783271275955698359612286047217509488529566919561472521911748716987978313630149999959549943046810880046813829974842574971411288984869946746808808133294398457034635549328092389863349289185805294435566634418591677523605647531828233079864162977940676380581421738692343992870763395282660186832478658264611596745493149769811122554927311394905737154998643991316445860711814164299886737786939723709087366861403872776979301040443000302820853012029064673787171906527910928901165798156429518413933913061623895766299254391249439813141972099159758856985805774312776713597103012066914448449272842587675679361840993873200189937276699678815970805387367942838822341249863421725957075153002493658687462563818467891424302486857879228471309851859846753134876393357722778611578999671121865337467562760664047623849772991672443632056701568167703887775621405019929584595157722333761833991882633791942467446934881488897290126358568341118477419771317588148579289447726359141925929882747691711107886992585919022094533124834705190905308605388252739843370375296966275304388673008364746135201383554765983704079739264161098724074146979414470264663625669577470701158931231940139143354866920904343030387531217589508815864840548303122017826707235474021833102204351910077232138630282962077053396074048309132094618694916385961880606981735974487239574743311761778408197187739352886074218820900470601310700639139183867008367063874716002028436580815009105734786279920866851666063124177264743327319830947399940527677388292500282937927074938174286937108888262951372684558213663139529573337737289287351690211698890945027875232243875001720684885213522833402051737777687051731954206323230736068490125961533695069371799431169921486966542616240721842192912852949947825017327356696410792700297868985093128297589528823980087518388089904745216498478570807344450347567548644231537155690514199270933232473419832424034765077951994073184612319449819044203273938365896998741513828214190533902827774166020366235795453780962435739726107384218452090149817956600931640285445897711012791286094547430851284316912489041131694307956555818025249569336643533146542585727061062712800481889964807042974332472465625582649353833119745654823527225947661730038740196145143031628591194879570664136479680213329913536918759366792137745219286120269639406554246078397718375626461625884400868347669219097507710256276520720398959885713525686635029177553146199875632942087332896844008141627055936725855119374872886793980573260127168248500477891488905970633005333092938722119738323527842137308062493078423480094649628252645683244397538957561322021611216167791178628624990225713262360351932691421357462126256763341135814860262229683746810605130646180556870489309327311887985270246227645881159757716054188316933708576032931736729084662367113480072982492280021217118578249470650905973537302607189582248437410196056556963383898159889054186847893568267162064828300490810823326009497006758477892118833320605022795571010143805157759088663722904824640344227514742938464779324193463109042413224273167069188349768304954973051311070431289576535993511779421587580985141329421694819600782599902624906085153177924273828349522541702572360712776551154394153189052675436822005495057802603528382064788053455147844632049586669985821718467931482545344581831154345732467742836927321826245449130706497061993088023398377023014479229992047322990246037062222198748036270389486063622110857489018690683343405201646787175168105262407236077063316246642412469070775590327192378152323880184835396582735152043556633289245670737803883052916019469989262776653237590353618251983908165319254363155272390884016322007890514660628435202880769639170122011040026188303931121201555452055715011700856417069758865770547600661223535853771776140236772042302009645482044165952980685455873396413030221818427559783021324697372760075404045329114997891404422776775393303674979198819089156702817150073511133891237387949941971229534777378327161226265722427617805838681857331797986108578967825658818757153360089178577535163398020687588862084746851587276882112445627355426620640782727681343934895072876120253841703262350640770126560009722956524494016100697520138745594180045960581761512606672535968566318468496033300520036929175530770430966025407694521176382580950707303613417243751460373143087369338155635075871752427950473726224903963536291433725313180899693283294974517113722990871865695725050659120082157397062218315115644948002972961555419625282958466311127964241877212901323862322982735510353975872601848080539753240189059886789922643594966974943730287688934186340503505607183388259842936898835634578142205038037989522351896468996775730452292042716079802873353655434329002925909366161599288912690977980260777439662530336503049468299796390452050021454686714174006101938837137080714604411747159174146251113399330660360403269250268609480782691866069633293088241350876527058553260742556842124173030953480907710495909147211683136560005778429324040725416456275741648274643283862640648561414405364959217977970638381491319772930859942613138412078301591219742449674580578730901676776740048539175733594795489667546840844997027877951094006142478754470250163495860202114594063508696225434013803773588381150533419194057952471867678251067728844800980728531937149007919468957998675799595070485563893079491945689330347780571134647009649597472327689104038007178673929132960723330184988569351881320627752053860487824475001084850549562820866624096464580431346196511381546919098666140251615312360082890861126309003439379617512547307012727937413842253991914237032810008754599733293979362099024691333237457502807539077608635268412972396091840350257432772661322394529263878492327515744485684149958856728593799959569743267280769321931468356936605303293169527536098662451805457461262015724327321871588218204290617550774894334609622654888803698673230587919313798915454898602985265071613041148969945571750510899979588799756974612073665848643384458543732572075834107730765473181404055497057224022493114792531030401676600706280216366882372933344173819830968245034687868111280855539935312593319384986182754644120855192926173785495541628633003709042067160224221210672905811600973817147254819255773726297185284314378601569428224575152762373113555203379074533361748894639320394187497549893968612753536743478777777551439423432024742414756423474558875255494812994858123824607757141492288472357092739682764120153534419455825611322633449808164793589486177000224437289561292360293020429899295722153299936478803591348075438716133697361516082073741933431946239932529181647987081695090746272637544453257339180845034648841464752165067886649885461633292422657837145773178574581267682758249327240888848352770782015490087286142991052810948126262638487193926181840885906653284811319097788904758312117089820850927990440457654099196898098325296256441107220320416462299185823447736763257776047837042930774020237525830248682252100587002684891949531191725437186225664538723081180687298835983015238224009032166152727306176631432263287455307796344674124064592081410966371652671965152308823496286177872460906231482365515427360695054615517913917109746380366078002002417169186152875577347732780439189348191712720334441708304659919348266645948962355694571160345508207008136176917477225799111820230283127846033768046726570528877439088123353672902104481177106481819077588670379285691452630513589886505903297384406432768728302113143395577701222037622594019980019638594053464499065127460535181170692644070047402101240238481567039741909306916837990542009158279390839327144612876703934329587247622230179256419825863101694794651630165719044538442022231561147895906176381406337078826926382872758116629286592882136637854840164103502537107105254652507391587139223167864218406872133790146603798703331160798678140176687871675753521507530174801935109667418103280850339799369105345053948782790851330005133640344086209469013689816922867606429202119076215084017933864842594292582789015993339138203501660475670841108039469611936078929741268920616828677830204974855446422233196380823058379125536552752034200543563230436443698644928374817458432497251467342401576396494373782738327680869037897210772468101773368150401812644453604820668733945869147176474270807906637822307611561011112347280032946493179322179903488009024041287017794427850660449870597841878834821528586252102140247131935017134914591533560393886664808785457682376063597122049370602037518368526910012575396290928455519935676105982485258441517626568819803073769660199595238236732633943429402450050532992440951795991213633912636287459503382652411588762641827644122345349529449179210449216065078964712568274817892033119872358076009711602409587069751699124830118759885469917497184452512046986656836191631664727398295289500032995138419523974863439242376924630299211998117499305052810763765353817196627329416692083906665447258070877768282651216759406818793910683524183465186225500197846956666884841151105762238669633695257878030043083884000496510671407552805202914485696969621165224350667015455032743093987657466507145567044141027532780839258269417482094799361982938627911359841086293943080648852935124427588302054675577568728620058941299085466631394112631128394567572954422904757767501927678300847377294764279538624198360854102357594621067512299028927301530276223769648611751907024489645503358555622300202766656221166371007713603546715364130307932745744260276768172466153449993340329478830527495821009058229318664703966402292278670181241469226097630703765970002320065937348984904833008104528896553751934353399485282279489646635627192137400313540249931978142847016768593598130593349869941918912307104586032216415335063893877103437852830706232003853556721149833521747106401957846499994800182195902131678788496525783875330732723627982468211553238847406030902522538311370950821848565631847853255712751139065778497904024047488013920907339508601427775918934066452621451891890932097001371692841531215412665654369958665916456188421743408792089982222429860567678696494134386332144452424009630767980464900458886472682789052769199885798125257673637218281360049882198548776077265495169091495222223240385298256568503009645710969173681721398908538245453326198387531907295147400910284351648863790878636529954757511905837753046817450435456128450171781005817814382772573723986934533328504679004475852580240485795263877047339773955465558100199720683106114772493852670086752396355395814481303622830610309260875285993961752374500650563156263750165397164642998003440094713055225494703983926484766964926099190202709043876901803010739674966874643813054941284249059030656037788041013890077278330799553649165540257031758817723419561476792754551711618659755216101677634499887747177422219526802162207822261451175643647730901569327552924720263223514445938104861736897927126889476669319780422881025977479051427906443673940884476534975463885289096211035977432551837124665602035725831012319582029016696720149760367816873267129894633685528710472013333418227604935336331892239389649985289166866719349408960508607037991156247750547332239546476433396146109435903758639260084413089930170397976233312137299497691941880714239883943504291662787481570685043260523359615936087863994249981555925318229986074271591993444656010019238864236002674391815569187745763632565781305523890663216518404319130962643753093172640293990949722252297472757888961614986243196607074560567646877916422068726272841367737398594587632918551596180508760896852584592282009631317156338405273235007059215882576039653900944940218019352088996864916155789998010251289847167473011537326669454099912664445902966251535903985390471849193814291384414598657320076363756328048874896542473979465385871387408449065686127484911983683135241678379754193008128689670695805303431366305469246062637583234744961976553095446523577989265318937745013532973940314836888534866038141362714520025129924448927717377041077417418151318867272278150612393291360646825971380029902180082089142570608271862594931277068243495610909528544108112381269370899593655330563521301638745652281126089735955310024820566628538502992816825159590232859649505801737769230539814442174667551459991054895877200778794748629980952431894796339263063984064190426595960251391227395660066055917069444572272984025679705599916860749808199136566481677270880346009005157619070481255049653443687671996659884944768571858026847647480522131917122899143133825545702237126974027389686585588000867266144210744636338115334252884272393866875676559547821202255982689409582781754105491826947999576241047476977784477201015741866338560880118930519860729865112569209706070799497554512796950406405880254491878814035477625832566732104848569713039060024073519331458002287236032563867304536461020300544602224260180764250448521096176546128905288033495067228481047245535458661271049010938757722422865349817077649395674480969069946389069891849127144395692708181289025576667200808884044478647395279736224029436722732868162632004748059570546890561720609034337530606018021752020276583011282065272393018825594458629457050352684081519270809803879584697444292105564049095369155801667799417522751766380445101409917444001626817815109097007564380475632640049664644696104099619967188194248662560380309853222935819049330837834368249954805818159383897101031384544269305624224278631890842683026695935887131243455046552396481401851690392973542362788479830140967523455163113862610740133311285719763136196433641277343591715111766070810803234938389320613621391562809142491260671555812382156489362300898927420664160003345019021164162325057076047108415847026522837857759037446483074359485730783052603301623773657582992077638312563064077505590786923440741066678989691261366126604447221700386900109718939833444036470180257189231330326636690349646443903160548753781561841239533099359835861489927510248844342788389725529727363506024128109563669259228481737348291109124115397990664140219848601269171498470470762310155947630934840789829620563587289189102857061195954833550836217572869710250533079847572959716741251169782722539472480953311081454551554587197812821118422483748990266377767080652093734712098895714728439179685708040087029315853231180431549294676786095936640665440805466049707367805359960678312062707249224394701640666260731924379550682285959002566935901105332914550298536372604611055881721139738236862507118433980104195451611786819446362605281192459289411624249648989952033090885070725538983767056192040939921501606126554366381640927851944493689950312180281537265652042317980577429979786826679926693171919675613957227645755700472749903635009120319820024933942684091524796627290111739275179988602816560891713485241051059262499111244073188754165972900804486156806673226481543018911847911083647267371136602434586972912083609692930825375043513647179004342766875401262926778966214663702103042365986802410202743906577122814516196970610341961795538481232659559929351346517457992489078876172959359449725202634363064901413850799257731878638610549034091116595245824964460316978864982008819949208019254509217318837387934302300572265966960199626396156865939475526599809184653983342144224426484818830573082117365953703853273914439807220765798272152130772266076566925375731174489233548843154868096742335177959500952394700669308276089837981689717444043724222893074456294506216212832953933849517562990123011385305869774823114358997539097109151480498945099203689313529608631773865688428004944701475072657951662257835278383305276435723457928965314898513212984374232575767408083612843511961120857372676581990841126923056135012006396035006207384979956870035001258174056682767761328369740434760189030546869041849428148912703329059478657253838730498200776006340843853942644094321514451997533683503073410783713831483303748173402601559657138283850955318054436425603429681886326614511923789582704383104268119756697558230018977169610078555298502362928997069318402255245850526374985152882529714450272850018413381605897064179953292155850072786383905381224535811263379268619184493250409051816970311582357511685310217612824381124944588813634845868470839836755243683204739349963082695281227652058233415457830781138655228745415164308943309153647529277974004647910060820047659551963495628900151130690926306095293628416817336093929931547798602969313347996581847494586938524567816727264033852046129115190575086797635539001902095568153498540210916519241760531072192240554953377097378066939805632671939866206830954971710201069866245942922631923152459255728673757465722987876590965054627351628663316973364596608023580641337259363497422254039063266499006082541794319661340561861814942354188269455053928628817722077055693200646735724936433992330426856070458095019302930642631338361195057669818213091787809815954025185001562658347000602448186751881276431663637346601006274311677636001808582593138980394504522534400814250495765722221856200258082778276431693509216534309515834274016395484888804816248387372320553145229269118841419008458893682714577154616912068919770988154771246428493312174576655070379446685089364551326644628385452018855629280776654783436426661992186568278513981605573816212822661656932552150753038346514469666784436438387455760610877312557563595271796679998218408035239389146104080954755845610334590437721236144144887479945755560864159845387938779372882602462719950735131013646683228894474382772817001118974724739862425394720797732115194821994024991243815699759293397918681047881254287116314004506830921227530861986967047057986210764866134902684633771288502851704921653187206786587655603450342338026658692538080269213751825929161036839460675036472788578062389750918421825489642490055847977817297633010185543955245938638136510943363655213117614258679910363735222565972462356181808345937158689651187488174690220798991876365655893991330662858281364485443829446079721070495923178569078442623545679660995215927754613109037044126507550212776900974394422398104513669367966270075289651701041301019880068903282391476481926592965211421135743791828042540620501605806172024702711259096387299141853397514152095788479243707144378613540552328798257541072275505997444870976892269667216738071926695156197779908727306232098059847919280100347118166986977101650614842860696118174674695215785166077560263240552360882995153170291257967724310051815915464722349792119780682701811003582428400256230665936020081692206318516867006834921829370737927087827289173985479414804045535273084965747723622696296582531129769936039999991383372888485820252106520427014196626699112115480366574687475584419322687813138698615734475080723739175799699102738409712443368008111382408890672854264262264762348547511137594504348684406781374480992349016462729053970875534267335535280601353205909736143494144986038246057570936041083632262811681671374656684969383384451496703834998635008050857297135994350053260425687257641212784359612090111531203106760555988341544115190598213236057593056522200927346347675415204002430920090040906511333417097390081073305968733787606967255123641304769444319405101013005728782033134997720519809891982471910599715914169772444545383220065751033872446182887286923790225453939978967792615212745367269940674253255366888611606835923496106806319378559700460410494644028984223077316732979621732495321569760726471224885520626347940341013163321992527940725342118647420959384723510439724274366005468756250067383959420083627317414567143750344569904200292921424703094087346468539686141623518157587774522639755746948974911152486021082095855085888865880118176845063673320658231670079150419441541931081954891509910566625132297839727834788441864706502476406335108750574444092277116715656150223582741541459084138146642157817489208985083528830196744873025728899361752103357085826816365153905977738898366122242053151292331568156074654708534659672795775509226104770902564441093872286787641536674481085701600304928419823279191181515005974191717922127918126667635777929647814096538180213899734872001779809359598892905492926700842509890401608508441583036015025320990141125983605466872195359759444693210323909809996745352466076545269732241322629116351549690341335396066377543716585789314772115075327403604775360404158444868297778830862421692139217857624893069579775262774254581731286372801707199575834939414540057645830381737525752849426502628766436873399841234042993123658613423613096761142963108050953367129723223238125593287272576821163954271247757407746355395843073564617972637762079843219758170972896685997367519070668404791995057529112137474370663969102347723851625299298715087125987034988896600557544239177309934806641525223976391314753058082115575913276521249862183017366310145073921205545285567110933694813243023787446757201612659196558503876253624657445476832866652761938241097921324798149501767268957969265703124063884839833934678132121356943425869362964401871658275081490495479729785123826399888190937523841507718282980676540331926984458701734107328698938375609148410710673325139751384507424562368599420932819193584170429525673528009187142003852110523079588113652794074595024547340169863671980308270577286202300125380553733415554177401381840929817910222483848685591646648395239752294234425505648564470012292824088966595769573907879523261085312466708335590513340743874221391734005108886190854881207882328781321010626411069836907704765906347387712009571503895718472630668275778559424334963987484128229773866790202454853077643269466644122591679260025366105412269157228657356995096776248213732374601318380339043341288731336789733553001766209569547460825877778274929713873212792496093662799321440078172667953591521757918384677017846734345235711314086380083398870764612116981332708872986807454590898708737413591781309789724513245303645378547629305606824188309380581777995157665289642424728755118489366004592913410091802962002188098613961445046269486487139372923438010618672243747328598839248047205953293550419123836886877508427824264497104011585269940347665900471581904631633857176576877733571501769411443131663583274133239219108945763473569841161646766181054276206622176083138310456653496336224818958360164280655933569013968643124717765169212881701693726560785224166583297720639762500423341294423329701197207418388576546812676588176522388251124557724520371198547061118726115134626835848566593087122777266512929130887720016797550849301340211260347345274253704083785046293416702477744467151504791994909294141909812272879735330814673647604754148272900475688399026553047199366246215756976931097433098791470227193895982064919679441870095537264379734352787153230385864717103856879513670061098694906677976042935199587591567125992143070396773542526651499485663971578196425501075059099745792203887916548281578109322539678121069882600288356451930799866287710749200338402127777644795651359753809475402187743164933935421897681926718556540830594513444424553202354975420583080895584156690789421862552890903835923761259865758482490322118004523595630546698532424947075842646277079736471327418525097831659827252545002939688606659652175706093425669857267233588327182164879046118489336896775986210593842603490073608483878834774861868791469314694454156327123302492150261505132896469983700691829314440621758629168237675779067054805957476882077475487196722881684489276605484158391741389424337904662487574451364766524874421449442622774283702886221896012888141427786916611859188972828682639240974713345074035087654466757790432797668399202930366401450528365153407240542862484453275849984169549242450709707634042059108910618408844102098845476836701717823050297493592096079058615560264298300349228456564780522837407252734889409066936142172340817004308814405068691157295581032868620317725304707402781280773627807056666530751271299547999170810975796238968678249399808866286092258327277456249911271764110312780301016089475522226054471071320981056266884394355495655102210868655927910510404715607486211889560804516154751623868450711250121185770947293163000919766481741890092432135114301669796659210191426770313191398294792153029777592902028470461244874039257130121920913087820836992738768673059218286451311960811039717942783915891484417529968005493570265591119093058776741146495769364874525249864750295208308109534096545797759204539679352845941684485629726788394912423388516991689839234919041646177102125332118131646495694452503934917894039139823541085575635538398726945188454412806073594233414764435916179142603117139915473289519252735065536475662274796287382561035887779158121231319272300434893766714537987339106576193304581597242096276647468002581227278757628665557758976736690184223890560422971497981351415638328615340413650620542095643458058144499531473846931688209788810295224494691736534346443925563803893221682921127059493812255603863505654064496327369171491029893468310344906832715190397136280200562665674222188692722674063831980541260916735658087480109548292927271700652303006234049162764264759148952980712172902294248762701224856841238663206037519431743175969789172366252958893516779322995251385425847234879921839578278414954146423686435582736984097538027815610239913854509493180770137151055986351327822592428905006516754467107888745265204405903159381393569989807238375514493239188586535335301071897306322662766474281857208279214925600466826917928791263174639840995992491550778722479087690536290058599085232173237749202644719692819573933443276570362841944788153676881762240817038102870869733206559815061943493060755632125983319750416422692425197893972642306444106207615585164119430000660951268279955388626822286932677702163627665833220760597984778057184032037387567982262441824570138783690800103088235862144565177541441613381929780921098490878008110976044426287954714393615536280124214285370222876162003689501260404639395717638349623424656450850144295152003960389962371954774661526980912185417252082766221341791745042963224163173401998830343106175203303688505996099455314581430191870441484576411371522501105132634915676753644249316464319931394887372851821058840678002588636230785299101062848852620037406799228441708709235768245209903370335222726389390706753622996043250022175799469670377774767837919220778128563494749874136979845920943495604380676747932457740268396749361585946554378823698191131098081277859466175608978664064241757414040079170784196189304936466460056036758159198581158479195671936532991212707492326537253305591699803651539345092392605815587604012982130898768857264515244026542745429964571881452471914292536185801177363149561555776911756725374667629767926949985576932840979810599316959773644480067476266544155051257730351209004966054057184049057716859035391234784628677815172547748724162004118707819694620938360934477852666628878639643801670274992296382154743941494273936597938872789738136367278311719766601024498532555314025052604075912766807432450576826173385388994307680215836820036982678827260342254297694775274850121765973372072504919024959536713626948511807029602514841122694643023693928617197105607124434438781955466248428391625571934576266507370200860526973335630773294898507670202401839476609376016570692677246315281091181140591581689054989267927452321588830701812726210786915968514305520100067575855023273847752771637500641873842510269019352719400429831468301674209438333963714863780430741455762234798021664975754261436858649109973500279458257847921168870228226799088326960020173643021687485617955792015412779971933236712803124811582751102023256365559745252828946064288714641015756053504264943708579041504068009798320567484812417702309795680093240915309904350714509926628768183974447731640713470323712658165189044952037800158761718442502730508970912882648035189392389425621462099831869549615392289769607988043248386843234003221935106779631195590572636836216585062991314617269593293194948380616625711703994883972221214268027030198114381800448432003354343138095378138560463451934601848030860859739683039771608303739262005335838924869264263115305212917534751317301242987926276054748169379887311023167963959778493668675152275261469869342166340857003840224927115596408472396256010147821405396914827689495406586720749961478545519421477237974775360769280659034344566873748606460767762626786451854631522310242990852493708732168539355917667212106920976516893668896163032215256612410128388566314142305657851078726092673776777340729425286573924785304873929021587662745348927233920922052201261912258050170232437077514045045474298381467229117307984865214607842491630720775959802551526771349412270669930444363875156710929014077987595556599474930230467001014718459983097930617749498927192497531902741266863496237884407965024602887257483846507468948706421090340536895469288013054598809001501139529599477155158521949752603109406244711732421851896841819278367732837119129865776760136526057552609673703922546195427284887425684054524637329207226987747076090853567733864623514665121955122654034108586872932049388297846760325149238424652411135682964119840769965206728995565266092580052828389010149379897629253504117138250637671180874943864744589077858531359424791753322987347770697980198454046815634067806678984367031684940643376531236911579774976032161194383386673610764910492791772814886419659009501680490675034112329879053053817589968111245970235285173127480255638377861731200074605357734808345075756833542003975390897408597260044622682388675066495899793410167398928214912201922912263782175529771350729398147613162751869985718442026787658331263298196488253817688219762130677178772843943846395659069085689956841341423104330243341151667676176763473710210308421575787133605933116937473781168728025578788486330876348542481803650201370639030748445711134627427466558056361313989964419502509759572553087918252012281152710083828925802459121726757419699706554105129510587321039376575235907443005113164477425496083339498178523886876565808885843842583998045154473234887000625055720242084582086371640680053346890520699238880784296726840671840123027994925689484518783174706273980197523082369899754150649677554650672692858666198173108362811632282628798687451036182839688356813834901252657997325111092273122413780100276881553804879162229214477929357374244099984382568533621076560548421573465548964073950412418428983692817596059844481549778725567939444145770284708800811822031199794544702472049569773831506594734460203146416756051816114081889656496827111207474984915416409489199173091941011408911635012060028499652222254857547219271637506098958916736995404338513663980836935508777674046719357865122717380738438020731287548946467512707060935966830940056016157659384685156827401956002503545673703862406635584899845619435097519625175052669228820264798193096681824875284166033461040816853858912604939368414632812677116657767770019336024186428286155004564915520554818489501095736917180648945370856247327406175781843566660575275111501447715596997689099053779612522152444479132137953350349509547747948967078819669159286509394448337126185561456327834670461624671744048903107914947156819868385313622751855999673428605117934214738478164808036593024656203587665902779819804834522888069833740540087236335124217503941932244317309199097100300995075172985830088272085578270766042100266543369652867804227495162366535365930259602860999523188350300136990492771071965731967105606172294870115474349369808253317009832902209663620102040251880164634206555393021861128909894192423243894617528191085560857522675687540526471985020662983755644310992259452568193023450974366839890553818713246598396546694844837948421415298813091014466007114296490923768879261511505627227219425680989624735511591872057678427801526168195689077411409766490455684809666665974103761226934602389768700552977407606916717287387829329450256109046202479117028759201065036616122073184060520653402706320580344237381734859008219460998206111605929682224528806293090895744307872603827796695598710703414173000028978459561979761774264160221125131994126456942420517847137561994508331214592753068054918831473437295196594184526253239647226960767189790969898625167682323817957848303099826305920141712240995471187715785779341679958923971053608438868192493596489777584334701549710254662827839681516865286213288293706183190520473301456240511365467878306924742397598838518355780840435408994557311160768540628731985294075382613444581817232262326698389822406587543207175855542021491556713525355091935786464743411077137466321162433411785974220136591576579206943530800910582890892859376677999005566352070990345403156788664691977182886420235308020162652416773058715231810559403753934045369397722691344812632910277028979346996170669041184026456806763453194158363979161506665436440480413139815789411707620040096205078890361567477909614431702554500183753537083652456023563327107074177588219315891633174377668309127124933952225399805348589652701360804467836211535553831302967102040247432853897216241310526711857615553930926126847368592821075871958874854054264040180012348357422378053966194981071092830926207860542890910059612477898464080612090025369207126088313569766547835977784534454923093188222566852439150933535716874958873476851727653677470750928946166640440931490693801548271200766765605052491990562102152798714398095045829526450675877334362106604644539642862186301260885462508553255299912482598300815645387026061588209499363473758310266156398894856836431071678004684778366013142885996906212624799654532392666654357320704162260121507312290133009041216738732299628527134389361601473120203892026569629246974893935165487558915436510336440596947794331650288325182640526282542630920808112435206892591135743239274919134676468285606986977325432371250759588443509916365883892285506773087697604175103182590391854894617430176079533550248823232002813156078142032338455076234590474158722916563235821599781526060271409163591776933793086766413000952033374039811500938084868584341365244780741941825133872975931668599699409312259628796843990727698244786077183402109773045083929970853090124274251895323548502624278851407605630439973763749726751459336006342263081715331472663001322509114790471956426379619686513419550059799367437611344427686754479667888124594074630913924570375297519730014876189321295922818616380020813604930365574201634009276028369734782625119779159664666141402523229550174360054578026868833755366197351576960711342818842011857926809168293295305002532831821494165713080274991788880066182544139266379533542670657402860653789412446556679977035774696275028807709070553729746219506339867247017731488052888025008694295451960933002328280967245228549898869500697420686429205497247845974762497605670084938341471522523865368951662482182230099453403607306604431505775085366349864919521213375521107121779069688658431761248987599891851356124874419944127693592812725995573529063020377215220754028643260009220881963718367266210220984943040179852388362045051829383067560716628055933182324562583136633886547105507156983638442947638239829774467980626292064533328033643210892685398915902370251133707132597689294303365579995912977351776961753735843433372052870622239369863559017492764834812849421829192987459922111919707529027394755829701897515645383765935118303423498273725814006937913597297685430259161410726520575173335897777597382962133222450174274037709534638451149942981967395158682325462113017275632795087612675461200157111741624260662388994427837026586004524863844341472095812532996100717242520909513866601371428211166042730384175879113436935349537568229112231057872974246790161923743440931354831336560561431953895174794480591085663193045517125273232859934268620838778729432755446785801589712879264412314037112464628623361151164192137271640648293247091479239473785500273671570200046039048153298969218261769835914375418348920972110682013146025989510097768794680765423293847986262600181744371099862689097816528937243731466752588824023610021688459041032136034146762197541314937539731701797903984068590402767180221437591112262377960243211621030637863922990992550494025198026755762604173224171983527897306540041550144582390939539454622780531906912569738470415166789687322403511274345645593048334822455088629419433684764732910465516472702739990266382799870052524184545431322117087563285683130829887905324551451653737191231816188858847267311784254782928438288808141127251742063231930309040603753039559565171101172679298197531849781503858198184276093696518293143996180265196211481540960273870150007140854350945323014384190988004316662960088339639859466244403235676275007268135505267975231978929756589138820325984080220474609917461415653563034207712068672744068429619609651558180160655691267654125557970137512560516670606971703408419321847063284341447500054943637125498616783032535695966805668511750509637127041232649536161519890473707619509746871116498673097267866716159228167928146221276148003171117656427524764410112089545287419346229374307920719714046525022083568475887989337345628107601279188575172413711217063286643026224011587043017868596179854500663865842603871593073513389125174632389067409438956366920415017725993176164098449055702103552540395488580902197797604221687873236262849294638613396610103600022237987813132409039230884643287744983775948439950389903462176134927223223532232269061565164757098435081738605215738726873916276524174006101448922113984310483330409587750578241571381056669004769166979351158186150911455324616449094903387769034750406131310727955473538647616072378370735775600446774284073012718313759801478228301554865512797064418864977176760618131263662151425481229027955968520895887460039593763672490244217749167997888849536573734060420124382608416385429145240587531463157168327313958871229436322199409216178755154414455453380730094316831736767707243266548187557441421891357478231220807995567660462893593931911418528541619233691024115189773741888433011857478691353086876738945205136710487585707281410282851381314415981229725610325423514942597060979793472592992536785604330800224779219896695603609243345873470843888613419289378114159896877697796777212051771667806798620999444799878295793827937996600604336043848401840854113472505016803880011147555653007668136140296702397256306540924448577951295093123068501134949690271298570034581601450288375092538207221851688818452816931353317865595263546652471137916262220274105017502603417459032854892461134301345581066013802885358187650109375493666930525831872803873664417217613360984792030716411547673360688699017020102615463819583686988348410108111792404928576749242746863862802176602186537056755828336107357471366420303896933239412944693734780266469565341341477461654227607041303171620409647341578326406139257333582382570140862656823514602698312634408380519226814106210803304699340258410686749480121079870921757696672140158472504141564504961178555989610533285276034755012944001739532182985490518475648000826292307004851641047730097638921537528091362886805419869328521913873919784040551788637750402301580999457343793848248122249730565147647906884177816010902027385506641921143197791802059774309260390786257975606660260312372817100327523263554864944740394694129139425265793497948072837119851823203902761589916631200501088955916821581811042621934253108830238670023466477952012333411131634215737190438377359277311699167996558927522470657328175514536204678348576079917681300409796596608964951888310350796907696299945909000015348967110996748177676754054595361872947518770951295105956512733803746457998515271661471159135295472546610591430056802222085482599490873922782828528914497839990250736939966463051977957170382287382052603288716868210452374065092669457440045742692195203048924486839861565321303158434165768586832207447620801013939172303169841334362355103769104909407440728059644086166202147356530255659950505551440878405928308519778831369372023384698863830657362558857623239584982167723055236903531632332870906642037255222349994515253256011320868215564460156443836295654867080420511035530970738755004669777937673224265808591491656615538995434433763233584863333796858541774273935498501975885875866402509574368391522915720107237497803896812779459077269752264162785544602661058718830634336258321329473798337419733312005869992089194354471941033081973633184224457015135619844920861945063985387237679938333814451045549019356432436322913098371172060815232410477319640109886815563182034685701300079401575482171196484425161283577333234650408826078826682684932190859376158414897068741323573974469227643940616152602134314934447575918846046902796214457321984193409212084824364779679100868012744843996914405714819288629719116097105325307388134271519510555137983111559174352882550678182091133204991079451029287165415549952204921315390406811237944588706251280985004859178429747475879439698358311115141541050724769344494591283489050189453414015302493818402867492501134427262386517329913446844022515841423201234806899026621500053493815306554343847214311725228973376031272234696482199415040931124273689548400623828308416289856375742003464335800298426105637523218821374782533223774429605028915894304798463881077420521338513001675943446713092744413318150705917136809471484479130058889231748127339593076974672874133650064810516144448127467252930280226057057609358683083854256602064174648122927952825424754036818643272095204690623549703597239536621114244440114439031239391763315859519142865249111163150095468979345855090722951853707747570085278498855428628894960704116881517172083566423240076340812616412882943703826295969682203833969220499062984080592288975763829211036782588317967627037335271876357956653355547412201621438052678134918275193856325246140489577285945702395355848498183711549896950366813234299239805975115011075602900127451822619873169487021228117406049072157495385481311507452730470323906367061875536360961009790186690558644281742368425335710922388779682851486932210629269785678999134388981028015285190763668093086984454995166204746263211670519370757224218478689888734517935211108595412752833856895357139958058687299705376953911441503484305988596836208184651260352246937676383793239772898579473323717594348954006671608677870090281754515488521368674693495878317099138453277678236707150117460581581275026240107180538450802795449021638277679861692367074129501943994494861278475541679429444920940989409698752819268463488160108566059407416248476599827894830366645324548608912013929284074294236256328931536155371406711462515658802991096195931770188161469716462573788107672653262859040859289969675130430017841640581798101783211182261208342712799524649665087026720338038292121246002722764060473059908043067528944991308663137841336346423825284278196082009369551920094067437258242097722160334935225441919894658840321357964261366784349287308960782788967261319895315045882894870650461825547994323608073748182181758286308360737313136959687802843129201310149700517575811726187654660096278556131028805114589810502933042932627767852165030025902938098886416287164991963183056357745961302309781686981588588846715715773768894678805317862724849230968558185461248238515699335077934097015682817757155188896941403882335371434457066469201554908119850508488416524289696286246824824839751411332099427677161930150416719977970578095733098623285592765518918586041868954299592592547416464294622159367232772903662421644883558649199933804948549879401770141426513697075494662524208388831980731392072415605453547649247524030870158132273727136971988674374578459828476340499133846235223592117356955350765386608837316420682649171804555304981010976126379210206798684590617515562154276975609089192299886323869687339759824985846268591208742119289376456623005100849956012868991433899456715130317202366585471168632223815388650944463811274806529441054305213722715590464372788864701948087742948229003794038640391495918592881316279230148958209064207729772179927717341631537604339365396962900196151810691839504968518101380525855087132971490335653545986747715022703225199794910024669648715108675915342862568946542381038370323376651217086539862508351396101457974789472647929132420313470305090218349762185432012132190603258013887535790132736410814797530883721420994733787577396569917444156418729330276050700719461431857532388503944657239379079629431099621787123634625593774696860950457445775741074726625639753764477444273877217570848769632407050896524829290710284901193040478835420253095101032552541260858117933688341120351977241655906635926153982237747571163209933815300775024611012003828245415050609051493265500817905975824157335409155326378971416967413717142725162828153901076642908384369020629657236098175275113809304502291343285775450377977595802531136075114398068124432613275887169032994136502674994257086134731828262080897732795063674710578195000155764998567540355085628322932401308310163735840626814925809437818046268978910077867406959902829428772022774134027180257442800354568944105386811114263667022352329041426066122649449152619593727570131806668844978185847933871287808614383611561994714001050387271082851691885531301628000025232698187238217055557026864962389294026731754424630115986582171645574656359123087108717198398119842589031437278618523670020357503190994948675221856898258847745141329198231409678880598791692790589172207561698039695126436219802729369950728823397728348345711041071960962652932886125129456554000043659610893566235317457694193941674978017655846603342450370656457647538290189373153693746308466435292602678068840687657467066954075177779489026162795229693338960382770632862886752451390200477842049584222738500846068298859900803941640842782698448064413813809646800533990371858049892067075112239641716098839826567523341142644802505653009784087470435707451437053779000825105959730318038257560810598541273247954994786207698765372334561320321729115246733720634666897168478419635253455534213584173599169057426536644655297038760983351283247561338943085089929088752151848441691704226550304351022434821304513886026889015626513668873956315122018422160504024081633566792590491154472810229168355935164521888092695809187975652651997530352845252023613329665862754635131793150186401658894901078425662693325303160536904974624073103885872643669642201770381842991665867930630516194578513939672292651313013349765458010024124827967041327796503063346457643900641818743697494135520622357826950124813200229038345306103342561891323063154203964967703602892039178272197616161607339278956755639309883928029270492083061444691335265284620191970420658018663379386873128264422256255198890993841833790844652924649039751907349280612370548403235869179079986894596896312039556235968383345268428299343394574123840655597311773948724712437455769438744742666253946554035485077597801764491557928431705536673064099343245585407846912589458002753778386540283954319540594596472469010919267407996325607739200852123115127792908353659356072216358976980143476875879853053352574700666185978972137599156134522599071500178220014658315709409634670721975550919371388378358864032234095620327900665840433748907564895667809303349165132783090719921555759957044713472650504778281961169556695759623325101344278799851620178835900568022241197635349530880542473326018540451856044040658573955596765121634080218325066625470081289748912763451400337589907017004094635955629115083580008463177912824644946428120445493275858796872662062738341533820928878309419824056009802054490103212290354885295790082724423225715768211902835042411000364932941557569279342692504907152670052439775001546085839213116661146957523571715359592017023751550348911490026491877814930477462229246979746226597978186675321467043759284575467562146445010597554910685746911450903133306635825858649323724091877034958807382882083913898713515414782711447891773800694221432248031198681874797588617733376603744664400399784951402170272894339210018789611709006629225415009137303279604682577522678909284659921179391243603172246207141543480272098536220780919047543460824824885455034625810441213192497227654429905106362469814714511798342919878259759812407660194508921078643451029120491038985017618782378180275836964236252729483785347804569843775391585051728202393083764436250697336970216237185492923321512486330733670174194609499849684484735578810589483727382475888851420957485986854915914696360794558831544158607063854378915021970950146109742521617945272217493806521519069579064262171814417932084138274606220453033687001108177751004437144996419672408775791975964419565644245995631785978252499309649994445081724848722788453788127081224522736720774579614526566014562518747436371760648067203544798735476318814806708254795014758798335610021723749414257733540781536845913727277502513546423161017418269155998041647682029459727645356829104296117105404323522661517754771129821918009173687004066695315780096788800757788216899643871415774926036737956663962091224622776345036849617277258628119028190496426684565179536554502296605915563290239383653940680900046344004573071384450652526614649921021025387926139062985175876405860021253410010554242600573508769244989931576180406187458316472746063621156942948795514434884602379941059143569228817735730648849126136068389582858210153064624725823920560881019905608329907961133729449264597172374559849165052730408529960347135493625282104296443305956653962705254664106077712507023698844058438119455614425984792537325542107123619344557725668919978321660650551549848723968727938175465367973897659542396637061228945567517315017006330966787614078619620583032317042967244834776906933141416212892870496274510131215343906921918784615861744851390943109557679859498031456635173687539489256187330591752746329413053136852923394092726069358952288328162181339077166311303429506715113278917131453350178466147886343275165578320587668796445598458414144275713297293550709129979126263395533211096807569171803538394784428072158905770124439665135946857853182169655659666539409228948833122767944936215069180084203278167191168329944985744280114418523842693858678179732370468996915928688468033710278872538928006468591959016995970228447250764996243106875760979859128429888308126193959495863348968342530341077033371882184000274735413223420323430137289568735035230605533454070306268833941484149089821725843990374418903132947530457883421082358209989619535263674426681000490340734811600514074106852865392166598251979492868115755789013449420064786823984768547382348937554891999223258063067670559062031395832732383990791016625463900520655662293464717233241350004693792268161310011124415632034081276702226142027162237567632875044723355104897241138624800078542427076455634631915566635045259165025767229045698401954720775496510024610503598607907500174410898760109313064009615978324635429691932924917163613239745197191017331414437825311909920927369340084217088780586067395745149166501248523498807313756897221856626167439552554523860044019220589583674105449557135423633164798870390466016318747928396278278448162480002378812285326522380931837506563480384536592090942704007278935253332079504002847287909851869780788976524853948767392779796393453173933168489639398262769409823538225158070543973846951103535400506874911221934381740338283118261250677841495468673913278800885840191243522788880994630132495608006607611630437557993746069551094306308214168105757310489247359930255775110171381850590855562696872262838563917016984945418477772704477281158703773426844022373155080818151815578878069203638698012320502883212013358917917061952667793592694782679439763826911549578904660094864495714448271352638735506362633891153422430750787080083775141980720158077148575791670826598678418255486273790039083522762430122235218403883975025532018780419955286774382838686625310419615796292798033816060261777571420018995142152195781949306699402982022038651172371177804440598109183247267281100820914444280221695331875933168763186286391758603377498325708885060372797853407345171258080097159484505190774549509287626621430163554661502046017792515539046258253964169230184634269507784628193785615842044973485180253470848925041387973248918978033350002712073184506608637321804645123247719390989047877459744027611240442142020018573373665553234989964784983742253049727543197841237819936298982411000577619105270126593544024643787120266686771879188612487154802479060539327728106031699457087354009953797778509240009104460234049871797021386685197617944917448567256862271547720022717747915028371103702609438393069544473169236232695129049141613483081005706569430074578662096855252464316169544473825339331011534668642676912344373148005342466286255258277988507591214114144017915323141691142837583499538986286329096023022168404465123720405199347426638515168653653901416747189646504384211757264864055339716778910478020200798123689009943035932635711378041823436312902489971970308579782654851041501472072318706881026522440340255096004699743097717694046359349189114625972118433786609445535282548590117147274189358834892095268953572309339375537623602118035687950824695191065165716994328249590233868830875643858266131413587417635646106767625104208417433526553222869488678806999802069790812763765098254734723082375953009695917449868120382549855931701711537470563366019257252523652941964900888358707220800360895832020743653708920839559927233985421649376421006427189986868126743383203779976921069898738976690847483572243189123186041164778564570754171506468899550410317941382902162705222306735285018460208644289940204765168447490495890994416213348242968636272626699318649403494114024202111467618877946476571599131108783108273009974429630498293770053670820003358949809309086593501522686812858684127255096508248914984351330366564684104673405509571236653858068828391482472866097937181050962262773091896888851672187963029064626658506103549037323865107719966414687768692190655465555774566944482104309351493302728666034850908149878399427485588161922465444072110210906469850464270448667149659445742110219937748587001497351489754277472614258018369778236673862236586361036045690876014324783863225065748565850266940741958821169208716315430631290842346543107208131354314597374787633337924402496940150533508261601499236659470069095676424504296320490152921146210096485699741257991742431199553423704412608126548897228804241648654361001272286194438707253620299503147679201109786262974698189713676862488618973497231648546199060936688919731931720340598218259372537603850787140828672154717008960616352896884885611334622550961006573992299951202946737450357189306715313845450103401986825862862449998655449579061877681205012721528242243332096576679285607067117841324515105419199344957213697260082760549405606498655785555768429786317796922174973655744459684740140230080803405474469629620871221834620061204149609181535262891578626200905525247528704790857829789800254501029828132324270624484954281572729086282576003597456339701992229233550592447991988191535716196257983570927117429941244751218516677324846787776152656163900330934335713085342145316057917284173289988209271090333472265283034139908041416837951837103266036713382248487015395984272176052008321449622482228081007541784438778994831121600808454356999374496984570136591525319298855585924610309960937026920864181482530828177542919727036610357411509584024391263307881019910054841530629558526332131868043961386738349387438183271632150427831055514051481002029068255202088438941295739627967515258702700419281378000487728942048847443833882247989622898732547223858828799101444106478351631566348904531743693400806107692860815900735624890836165049416466038819901805898335278853047456987746223178207923771578795696403900163718546036034914066143319014792635349791513163589719428057064511035733340578290183492016989770817444831498311303921355780512288784113634799424004768354291509145429848899489205851051908386930673345980042796554591636056688845659632279343718714137016946009188781341422113552120820032897024346634202280063862221870817427260069759149561227967677352577212782037615387143520856260208708016324171495209518322812092876625857564518227351013372087194373995109552411567001520704150862372067166698088855997026025754021624114970241633341944632256212709342464355170144394897657317837217659988706627680062223296111633504305982478152411716744916138926773056814370900419653404460339225172234413767560228050265560904721288690899363412327559851557238854505552100536661179650609536281217765729806402009130347365330115181601904832802525713115726320537294446483602942381685878480298082587459303361652681441941959683054777178179177596406207602274205382735062859661275765521243003419065517434466103276885012326947469348586144449631619316896361710544995072736367950338469093112963790835821289144794953718474980864737062668178788450771885022092750866703193285751222057776056877276803366382860965049356453101094584295539559300373724075111040607260468638452935688724527887767905390759324841007508015656744531764483732140694695329685883797843770277773826107827173612191864537095443275367741673965167190689093130189319896704505859540647582226257492565814159265858108203067075526020646058121088702175152076594637928092901871288860502369909276879441982322105724425667389183067665439599950959072477900886254800300754901458894313661027999119814844374093380963083824410077569297844352984219692188451866564344043864115320274397264064098193947639719401465399605924675691905883075923021958627636520356332302019707360467533874913675933987367639169463716767380185033480821507097602249742170006497947373064711021282435295841687834539438986740748913361155623655776931918590680859374176918187515223276420579384583569881611834508206445458587187642962434890759788288630858808880390631056797732428332407551810229487616824284835144014956997187694502929896424216884094191828211851269624826520749055904704959586684190211838166100245333191712326261287600711413083902986930362651591775895608423351999387363315607380080557366943475862758278217025734821104515614260752751224706635443871702854355293786880441430148665865005239548741647970368352984891286549553726861995351225758518022517420138660468365149296531053212423411745084181826536511409745476933434451290019773836586843799493271886730696729615025657730582034325324060180090847174774136669503403925285616878368596256203470628904364889865064483095777971873254786649640649889276579410149098952909899251424312304859513359531082511127277332366858163311961003532396227515061859367244473648903301207132837504140079907272067272353228123033870738836408252530109923581170576971008062814421781245937112955458807658336910190222109939121318617548076836033545857180894962847964512603506282823777034357002663685527052513231044249263500000728095711185164697548089352344440432154516710642946273820207041698871183732976897278604582646728166371246319405966924591618636429532099698383859766792876033095269069655282850775446298401183313233880227798492837706282931832609671444422846995024853087686920197867522699960343596107090107459324484663423846256627265681252464612069743737047763728202448202116181232913971356911845442156269577702885522911198222227925403575910106222971023164196257355052928466645860325944218393493763421415657946102604185658469180947736265055803803671807567754903295682687664883307052164442144560558100122714851538415322587204977098551265556350487577162750345582476464294639830799690973256461337343448124119296134492004552715941383930512640354345311569663067511002239390307027439880161179767591759692964714396568500367351039862501578455826786754844050501789249600515985610983797978061411451915713520249404372881616040681143309013113293215634168900465116627017235202860374843385279511590883401387230753019107491268733837244611377571237573998310157042456783939098076409855419462108912010525201596931704704641472954289937912985982247805998336327431633232523875182019539608151095276800701586777296693649539174278649683726208885795395619606035482996167888944923805438026329357500710109345228018116781456438693769652248742121644876632047043773507718302262946735021248564241098458244309885902059538219249914088588879199419213079453479565522871707983995256934779078339715593739907332751681878822543993589359501743317431865754115478180422470653947812285645479292706559883853740158457699872868787933044306857120606436692398218043323084761990069016019076980216152505784320398425124466424975748728709169175280254800002943492954375836493480114849524708619793832631259207099405643446446595662953606691157854380395586357603912388707224440591087164518539952421893677823330653227326979491348510136955831526842998303081719220183478481776399090819939083303031172885509053597017944441339626587535439140102186411893662290389261610219042278523239605679840145172151072287655519262620769566474349275579512726321515591969093108440720894589704292683877220582291633903969386239735177425976507364167863891595726049026869215899538872856382671508463961374335594740226672977255484949402216025461972200280145677489054464208506280960205202515115399971098329187734680378063905809267918729551282177281458647218608081629959058853107393907879046118778503362985400800001996439013693855589514630714656269543308328017613752989926810915223016854660640385945528303463976003489259784803763229598772458270227844330509847736852235544361685809021654327936343603517617902745994313859088697782625984715952207264605815725075336476980838145384031069385644594976060488820496288907422652427886724460860060482419107448124651087657121437728434816393235750140035591910882651644908600975319654574334661010879810141869867889666048799300708679235508686176984481395751375073976798875848497243426214857342228339300267798874867779713786958928596352580384618033976756012000785503248450539870702077323383268919979798106956698982640957633465565341608755977239858576528615421634250081712138316821976378924099497211289223164886777452158305879581539905238468625509592928023262059343959577151763838073712974442452573492016621432835965067011730487626684064279458518503396614653504615753690021019996096973072101706053476531684483078776416944305752172457540836779082306191231764954503893654092494623159390781456932108135913599669599486607531366356826066229122731693678729361759024837984008092135418229533908777591353756343530647257400102438782095333773128910196942961713247223355374526881852389168997083127407041069042243956317661058021771411878544543541684580925373130313032252478645819814425821236314210967445466782038247577384731025067846223387023276617412035260625684907874190816968677809517964508692351988282033880490019533123817634492796178526835586745031498937239801128637956504991921239144145481480175110454252565728672554359905256604150775386470256667382457583436643921413000280609920244612993780423124315939068823231069723567806743350428745632478110147592528220775457483104122463272999658142396842181012206711206108436716124496071428551444463315477746565810959007858007586614972093516030330912800925523535048038526801074939468678264802392450281422853332619403445144571720924395896003057163568198249558753143363640345839922961149686063487462344945941617008236282410773956940346017609342496707935566801029917046185148753761049572932634370057175211509529862992609844507522479107647605757454655241024497218235117556331161430313400219630356607647148894003651702329732948724311327824010502801576568898602522301485965342092419611184507106749887086927656259717173300664284082645876865394177460597643318466779872386247773772481882153005310348671794335638323074134775595438604081405686570534159736767564207222215046393674676747019296139978419891671904442518305993642989300405102221324315464686968109125705618794104565147742035077230463334486807263584759388107940145880192750666661568203301809519490271072030154120933655131711234854157543053600059169139055668117018953990355178352464253246455006749648739704447175379411097579082320767850111644351997669299876918383437385361589850806786152724149076136971869317669341016227471217052647080876218136727043792124424593093089882998457457852819246165267291417065474006315899339717688590775755933622798399399579979254780101516513907975393759837378227805677949325570445028340120526737887032313916405324045979938747054875319629541663985358265602755820692533361366275562860980039929021292079652349615129422936042515307405413752507621629578652427134857316427729155650886527441655313644575868096824439105527687035207160823087168277793713740756085338801253162558211690461825723553322519975426253376690028835867671569113812204297078809867370134743653884074358370145695254463709516087270302788964628958875919119631576890392624687269280224386725971769920855877055514992991082430944789735234462951028574019960860016080822574200460464259847030792925969960516234413954844896025570681171598545882147363525811475098216748749596896158315244905632699119748534747244459988423790986845661052207125772565574271767090769562582860610624402806756082486602301500636620633230433055578334915482077923405390536055048805909011164064483333129494178001706083664005298829191810638034378525098702409563233622707825609506737789125844300463835600709076505738513645292680644832478332423011474436108612105448547670956591389319890613951629184722451497709584556029075966971424595619474619538927375778331285091710367029087115294140128336223230656872524339793662795145065334432982237644784184318859587009029669140078803619562031757755477200463901872728574526980143512218773442365668819447004151558903653072063290046134363306289609690709102597556402509100885677908957044031393291487950504617158494540271524320417243363803339208807088529112100568822562865693392017639612417283611789133280659962066126587446758091966681631989064959599475018068897731761630690824889402811842003041543762204614328894748692562221993868303758590147054984685733528267447195725900305972976009792052232669651749477725443757296241823727941035737614679973153493813250850523514445862331766811245634381031331513254188827393109931441812041942029597192987803166966797929981415411181970615238192947118621229253945532220455052248526994977616830752365063797049876252153737074418989737853720386537178042337835369347856674271740660353194776707361042187451457666684085573324563042952032502788271385344494658081885060051884886564751378156744117667856945766498790037984183644123766266838590034899917556825004645144757665922125466860780669733719910945332953250240915659651250204928389793056519231033510395955585481489810898732538398294598590864545043309483324807718035520637628870447996320462003499496597211256669272537627781894479040911179512168324731175518975986061575395573956621679546524545945917233013079221877485995432144103173342251621801637271920534595433028013341329632241455042121583358704188291507539414209251104516991723988549085882682606046242069964309431642954316730965731522000208210058892596520580156132765780395810698080188854020223083361290092195342814420604403012429373057679162231136202623667182106091542439470313632598649805379979699509879864578252620252591712585627953723689147538379175978289274837126274470358655174047784186304474357298687149139113022495524830606632423640631041497052050912421871316969118398447363771004987431763510657193470246189036520399607628092302861259620481144079780261335193781545201858179651234986027801322617547214104848015026791694923037885781396986145171286428768916093249330546471431682245725576042172595930574763462750682302580882407424953858542822724013767004998743267005404822965446036993414290156338233903054689785882736451148095054710964421840342230723324323644605146969549080754410802471792351052494838716370640383732451952114730282111438098709307840949565464925220545935087143420991209839686751068844865833792227029861240519103732741379974037138038473541147018079785261856799356161241914746625176241781411397721048618311156174843288702241958017898472604727004698375013772349132225738711247310381292269483109182524000918223254055359525841093436018071279066723244034602733228321125425976461223361524523072302925341695358040558141848899821645511635042113833848351997437723251430235627908950713020180140490841427231907086159829097304584633757945546441826632135038095520105285006801811948685690334314169125188396486127598421630988273810857295912910829162978134052090756494497921085075105039494082322533842266362507772408915735972472182147247406825970135409329162433733884923535824233044392950315014054999594656546304068694923499181962006712209727782984174878332066926510710015123069616222437099128917017336849296698857245173243596384111846375356516675010898774805611576136600736058994020268293765054406570787082943176080561175095263268378355714876843965899926437605712384830287159611772509918483436609578557933190633779757934875566148707263949641179958009408834776457721564266492586897649619429341068565292095900887095908521784870053702555967250173646673004522153224848660686024409490672559321638817764033423927088294265040408094926373510406674563689360202156918048369380846123124834421589183208355778702939671316378588312424726888188053900955110287663483414463893300935988721573413022836710057699031906998155803362188952812797155845311733593344744619303869392659507834913272566162398128872852764933675302336892388613966971837254367867303928636736501307983877129772552086139552665531084268960291960432289440008363591056487698910253590139733506241318718085940337510814964064991941989608190023052561628700934724378249361086328440243046081254236141228281577370862441441738386242541617703258163117287934616249831656681562338056176360535012996796832483698967436950531709646892568881432244162974108068962373370417192423022234755277560619801479202488768196762827906425070186374167362348043592255065350952176086124241886592309078565762391799353329718676536249351425671696013062499348742181536616063930329072955403229950925384598204247049363868896131416125575284196673953428671648956334862587845008834422972745651119704806505189374971401349994077225371122733811270402431845807107876740917126740733010123082609193953159406727205600907385504925544716423398683772527336317315923270016532365203801275881836406640847264612916300500531908084573719944051012514553696752867520193759703415405438418911962835069917520349709839407782639269053405884516673337059544562589550874171863612035513084147581256934545624127165441292249017369901675412272085364121134996812566977004058757762782124099887885186711636405396359753965196183671260308575762404932703046038476297267882645219034065000922564279233817056469206660812073007088848304024580466624478185221882322608971964255146390841682891317937170943413666609055448568343521227518764998238325491851238792028078114504764498916931998166985204383618419448044874955115964385295075501431226777016545456421873881961901707046144576051766925717675927506657225167435944833761799432658887790495406486437044324575465401206918099568513379273095742962051664430778690261243733112701365041438265191497221178238704677315090984794089347563799609776863099687623768684530115917183804147237205695622958552483789874825799648589639358667721327258084266859177972665396470397832384321538485205721662849561927347002595946989171357520242179620192845368023130507044111108644580365637694221241930989574638708982570001880590250551456338267379321113007449141734109709843335781604546897894984807453049976683930150678489259027226601247233580581238393138385649880271853434968762405234395907084627272452154435362140209572957201741832457401576357346217964309537118493133890979809392407807781167905523515639213197095129158301274467439013185355506847955114576954595712330022123354241405337269196052075388645255830818541356975614894716629833469815330141991624031991562505474579001598572394283903382813402559942291403216102156418464996890417582787291759487894076086294682860728718822418353512722987540265846870273189558067279064898636512998279441050918507035193420177045769673637498010777051701863526323724235372621588880007379963034796242310133225299394377551866831327802889498025480428304194150408544151279787192732535650542222916070110088565419458081306673937237147742878453660193864948130353076851969948710693902725829953408094121800349238741529940047046423605252632493186768654939616638588695089820521756383043691210160646898104297188205141409198512484073418776301965828205434101821031964290763996653918945061927109862275750566901318508426882402750558493841259652463456047824360117102785449870499645654672628909824884532199751368441281718034130947968602486862398362200823795075271208771791715563162135612750583522918008357274511956445597259601501035983287817735482503719278112858126765139421739069622668449154754956473491267302404747472198785453235227339109914163058002996604191419056574961017256374131728691641486965837662058474124060838664455972457825711495556473863272974761141095659454949504807752165366505732900603501274908104062935145747612728470714389954450567397611515321182758222296254509265472958321695211800555492380765393618136480082479670889599370145786331844669186283906932350079641688675239053374997491917776759301036037140412372093023998275619931177590804749688902559292667024723518377830822923413697648104159377147707339012735434324770579089724736859641355051671320199911500629389972125481903936268741225757010650475564306302675028589339848036924343852993541154786777283828199438009048892035204923732015668156728271594769412748405030676998857934484881660962119127937551928094126822472839285811029147002662315755264464146913356609164009464112945722605681114291120970843065449876792843601230712459756893125807659383871574743232322079009370578069780291106642054213061279248177614134171105636918535866149546029147147107941378732935100667495525200836566500733388673815422037070355977049171929834025052132852839057374541085833041301520783247901667531197746458851662528949021281907160138182796199482522573048649581181344549411691647797894337350979980357469264414009625187280358525428118176745951784090861002409332477944689950424664533229668701692889007830113597825493076014160759559357813705274700105567716730985250125546020301728886136175457588912404685093137165699618910672993714989325904485104992518776857809058592127073479592947943092881469321667622985446295927843516744508661390680780223044229911393787749442753248733862759353606319179004106906478220411150963249556844687181308791534144397048289469987977141902406653347355793512755501696079610631576326290944184598958345953104502658844489462147340117223800023383247045963409029513149558444703151656607676104778861502494270752946726009335054358179572308211937853850229218780297454211535907923819804012175518626733644409673923231009032348554182771526305879818611293989084668619465428816902228626203519323311737966370573400472832911840978072176901001139161144112520824678971629864309941324384506141259671015026626017164874183640583789675264788423422001362682075378684071428787487166231002630691903670630798139444864432294911907885895748404629796399123077888156371820493967377831361784463097383612440188479083102144294588518461355122242776813839496825958942131626889270651920693215985110313861230210433619715844560373716579679654897299025740864189701903635405694948816628406749066859114548638533622257405822117868796762864093424010840383458159061705732199339069442730742007615708634571664172114138733775357177576531664509548732696728046723446208758522569574637559235204304445489617735132067399762823887788311767689754495545922335880931487514386291556940002821667401514682331703023275845240682198208374175706630965094666214268706937997890045728838440837229221661003770993178248465028586733724978389034207158185105104488494319232052405158236698768999118370585070578229019810853478211307588538903606835710303033334528614401654890809539386205943196604199016004122700797420525701136960024149204576668472451879510662525403861595722993501096251049852165314628126690836338228045126938315560328662697773123335794448897765928711507743855860690110200834903159318979633468904216045554829647858082159020276385349333935514933814084997587143120716745515579720924831679833577870940924387400587753345348719051828440453254150567249008372630826026715338528690952251946552109272615227791251138169541635892158300083979672562297338164550270605774634417885216337311895668396203017066826850336021856335614783161980900155196765833665554684926343502604871856339851252755773648511036934839623198855252359887374389291272826808326213624657009761723911208145385529693615445019270702807526146105806594678550606512467205368771619382836018476335771559116480242662305317852002284852624295904966366849602719424601123520157210221843035079735140433156366530044155936877342848589298954225367023210784985450278283411354406667331019347001757086915253041947962670126854460143444360368608263162159596947408767736739692233723911441740628779133898490020659339582461564873272424475712830459879122192353802985483044671801612007875884838120530798392198294588618445062224536991502952969512463370098599598671479790456445373784158421665110152587919254454130364925607523868758937980335556402224785367310832174318562528129520548618181510499565551972790332458795269834045721653178928492095745383861524538815043330248909651850971350470034729189875351772239102254719532210499345265104327925792890851399013318614519822053497589861910083914200712062949009494267148997627423694556257300019885633412374290523584431066985394242087880465313197284817828910988758056102035359601564190520361823184212381449202443467633664327497469909244667712592322858440972676305653614453305256179390466228995271619930955280259257642355923544353684067213234091727359312889405368449015713102411677696592244268001443284019362061539452792905779879312072255322350890652091231574397515231274454907317734796734939673029926600248510321058275947360445194213026728395275838535682045727867536848408759862928314156190279348946146008935649358403864998905471994228486125759713780178197482665776306728394959385890902168074998192208131229063438832486473045790796884435114389082387134115534348883628899726589688784128967445038760350210733679305695020920755644670842013722320170860748610648653439197347248369965089436657486229505975924402930399390698015869409659678685063552613501859349985631860429797020990230069204720635009047402651640787312606741756798889978467602493372045445420960125409234064199633829384462354685621310215764894607774325134297541366687289781506358148979627847221559538212614121820052707904710783824415314289119414037248027019838624973168250557404153855324070233978703327597858900136290997007081640845062071670384214886157992098219795724904213867578011437549604952383893032342866546561365486482313050789095446681419089826267859127503195905123232751775176221032850166420595909743050816515787732728385494225958921251341735623213515833642712180820277360996782444626595295658958225173819989807418961611238682296267577013574304362848389582277206508309994819136846956175886735046498674484326112287839924414810235391312421527845038594435591682886951097679777651066291440186153594579225700544408972525933575074167732255509863368689476216727972642522763133117459856197671762619668277966917003107159101051113754023923695680953409488974329518658743146904299927160219868115177974411862271060132465470992486604238447278670365264076929135101074832496137485593451100109769258944792781945660622379317024097836414378379455144619842938107081066647981426509724830647434421622132540779584181920702985244582864463455244592414758273889924116530684415561839927605359235031618944137550002470794823878749467289378995542647060398281155635558805215992246092109355770094668416516106295713099738828800355301434696250435990117472097152499966225905640771034571605659654210036991557953309665696940623241170183554184188865019528503906889997939555804528690967362993997061341388364287726577025608991459846015638807267847500253013965110356462572025717839036658729284198129504262020181816178984648990928521127647814649072990136245223375023574031342780580871667447119060007758480201587456882407593300111475319881018200643786297520045995876529490665113852655425475216685666372405276159591852061392771202377581059627051537994495977231718862428105782757142613144114083037569560470986715976654322956421211967084437673716912422452407906498230027404285647504747828149240872558432788948053921652214148425174766074714282520290018841222411378055366905271140204649906703268658049840646179023522638938241710963837854419205758598232503011271999193179752819596623035595261764651897369092265454581589475762439800434330053812489415924559342043505048604299364816858554781369694603171607647510791838588384541238979120398891238044151389184819264015198772956939704845564754122894302430657088905851840224381963858290790119671576202567007740307731351907155493232562810503772857238507597804577870772520949547053041476735179344146379736222432614519002173644861372097335987843656967499540706350322124583642357235863942704257593509051764997802051036093531748268332085507985748587080770836496598960033537767176068657165273724973813081667460139937633364887077425905339017831064462234752198706351790640384256796727793422962598810004133590011816407191693676285429125390735436271408357221912195770386592319147425746257662921667756265602428601022269302142802835517659890720481690179186766700525316503673402329470428475888835792031131008502074174007105816040538767177301356712727425215654759485067864177516230309729540014311914649682834823270547227170106410187046561949840555173999374703797455958182707854421508266211998474436483585679156048105067456105135961246236752977876949370980485369750467251486853902817026467583024672849427771326931617323159833293814849737182741730293044947904910606943517404561252523560132241835514322418002872380242044858778646502032667986325393990605253651213508708741534146796075642098202814827840069618502532337108781124382444378848679450182031336999740249572446604138116735842249594149875954253097650370740086886173190971804459041842285919591287697936276297856880808827423681697469614279851944479069307542438318581400937374891624088724247434452941650792449712745960240444863962972173815969406850331297365340026969006399485543796464863025769777606428555681910364547799146228726131721707897473500951915744088505448312887271053852371885079857875437430563012965934710371966216559885213009484932065609316577348050762497164803012752654293305364088961966996446253038547302174237343443168471417573404163458563550807539169572789193045072122372605206456296702604587616798083691543677692514197149133155677535100096350401368603024973662648504766471915366710705236214617006631057742478113186718855617946987576062658590671103203701306998000930391541696393877678153992422541117208287730161058266895176386583864508261191006880588865117812411043781261824666590096928755025544127593049100664746503415614234608130076543600515639970228730091115595460322182934100768551334634566732939647751283133222640083570707903394997384230517127817749648570355460720897423538364725660577257729571246891088343747135755059442821660896673011659211589303056272617733541121635595493767808329008627948909530565507210132726179426729063586572931212142548782033080933108836664596454772575389945117987139114581610559783803074249415848607969173402105156541728684751122070285830617843978301908512635857852261785259089516741273510816849912653495174692301731856063350025965655586560216505018733840618300812644648228124768358236237924099226118031157451138278159676333795208606314610370517164738892532671343522075980126838489526815764352051585714476547733514372173525043372393637128978183263914325148371954456791884223315298157465651526155735586382334055212357118227905903496437095242882428242278529069752334110667110206724592848530304106602815912216871057455394747593612276101496599395635664654551974846669415379966223284024594352617346754508330045787949036008571962018881487234354706586600403234544599906494666637991307261456173546578944851543891677763535508277744845154369798527532194283522844301906296108786992902133276777854899379451076068705365820975530625972167027664218989897867535623446971333304771694562924299190552672904878587550446904187901373837517764438500792916975522520144857657083887139292922533841039942525370514228629755637003711369229757970351108972036414265702114987740825014284019238450058919524895010274561393629524502754482980752058878096861396385280332179030420251108728556661136981184629712210211993216921276502646456372704058079913616521946377591437483068807257338776601425352477828409670594186491761471344750447349079751457473494831774301881011374336015239941750205168075005054450256643544891116238182523290953078890559740770074255929623158677775792063872382282264832007519275072970858519792543416690176405483367419695366642258218775017251718050387203605813835686747569402893122157754071129820628156741519369007114778046125315985252880917749256795801367939001775954954359575405366241177662611669284056172117736193715440433802695935200083261748435693415113681593036576979392504705187045941648869667924177493429695047576465876888620748923978097317227977675622599751023568090153742449979367278416519235374092638077730934392244767379757376773700664397368361372680402156237780202349904860107091232345750795509830852621948124857034525544852673394232158306535423873291380337482834964634212678006813459597176279748331303108889037276462695480549792142607314998333065908335454429217693320361849813467574314531354237885423926242437726465019152687388600148423713369001673711657655108719741971747457758368403764253890833349345859545704214488162966251248232742979721828860463119449345877531435250334542986629923443657711561096996947634485688662068771936189477482648182170753423650677169431231650733793654031779627216273115332656320109994471452319528426992768919646167642476591723487746656233033485685808275796569527210164779090026418387209986387324594706390258133791781631787685434258838015276325189157557376862834507334165528355542580837261653316358858114960968536071529554576524427647261929306809718323927078332384470362869273739369590698720486286933863312246394129445463114536440675145360362833181216123010015764299200423771667505667789382977865001716039394664280518174864930931115779522531806106084141949094521324134379835169677144672831767918954044538508476091700373166772309691045084321417678489961331766822744700031440044433101559245777947224047707290410151362976128285152271753283841711187492400393354354199231213794816164421261447676628036542128439597039152943599590926473374226903746965974671258078068797319311586346160369566797425385710240076623577624012012464727729015614300252174371094589715699006228863063205721876803225374895991748691045695177814357043931981110688493296405700513807084129724428512000400186470744934179272176394553580100508759551795349776914694893098056050941769440494913252720184596500783597376987099456684420490487235567714875879003422576765371637860217540086750120327771369323677905134809147144770841411777336710921375330979183062417085421255441336490522381940100612259373456347684524103472638715318368380854310456210863629129032629233007104707488267329518231614746049295445892624813244634004920923556079448427900028522437247308940908799295078162748764757992952312285469576730955442569213485591224768862494986697010458838842238191448735958656446439033366165733167006641825198369530788744759334161160119277579939454858152512725518486726519064762675025724296047731061078669827371262051620971905440090088055179498316602798110979505899477209387210764846662957844268702432921431835466977818069774354825338983061695830644924944322791198023993759748042553076981411646848677975552840134270763238019827405706251439708954607707524301291761595530531959755545593097300699711595880523186587770745183870749610962279920083417271257628733248509615536186259232746327596829475054132467961189644799659243693701404805942385700085087556417314451962882742174463884913383070715601898260450716398554697561745950106856552842586986664102007641915493718311016518396630000369733025992124625716071450676249272099985976996978721976221961225574644094312119517618088281655279648094594473704057008227238375580106213718918738135803385414626803682462468280689574855698982033448837902522278435042732832315800421289782766367893406462184455296208848231901801681726647189451235685848177599227428376620715328282284558217625398835370389353338816700476639660179625787034198628006955268486633439802319230646945372403661871431979378370342021202507881398152872388774188293117154723213957069728901752062073626146724288777657827600592745579975257662866470404767659717854199265847573335291360833491875323164624600379393873124297215559323995027638124099827007699107249202563683776714133960797167269896779726697947979538832394772022996859001401572816038774102273262230033765143239295134647783577074877716431622833969968802327118514172895696870618606050220163197736378753198423396992831271323370696619079120166731861275288135370196664645307211994251298704800407859173547596310042299697201548157384128311034680621027577146566910830247661155562843743847660543959371245143169622763041485650508566260926873068890259806655876681122641319674993519230759456698927211496229416766683988488070464018785353042375200925594635484545653401659455720311290449795681643824492919314967954100584005589038218009857219658366670585434954595918128407280217931002526634277088151687497349879510912155976134855481353576846834642887237806529471052345821505482506480851528253017622001645473976061724765296547811248745629983012570415886876335791033407780372615403564843669058121898303001597671069464894244156558378342911930130935524973685905424848438440194568925561848356114204638072031760525491169314295906885567964697610987335565385912527270423002509739754685892692669970994568056235801869564913758531178122749441891131483480169755628254933177249398457734271230122365248476095513102718791281387210197456656544670243299972859728714870381686296204527924579347720091574184191161758225504788816964831411396973461561444233211867818663509899433519363811171715885935963132833705259355109034531125203503577750911815102675855032588392173643289910400590801617170904560302475338453305349753804602967160100473798216926435982562380759879874153553756475573109615707771217887159761117528471718552714863669452901645653673853931863978326781090990598371932705090382820553195370164137402564327208599775027966528187316945674380520434022459110770844890330629552388771679764569164499350312413691227825401482195403280514731305682822483655077247770764679549740043696603328449659568905391603123697599154205248167510340608265577711642944308609596083935750079331621581717969692029505723524731509591687116014491615291308512243664348777320795395552666571801913001068378056015796860465259366361791841356710732355743020682914508484389709243662423335094180548947064374467704007158050155317615719189196511211519533265826049563848315529187972989493424134437751639154437992450473151104110667653626362854963664188777244496757966410456407300621666113593401838729332082342662876290559580462588240721812227923873091790157709335408540232633321989225371913572020188774750412086205739583436889938931639221237029593297480646386048308839081776173196505214319039120797517958800191817645913676079442495894118211312020642515504417385737052646946406594780430628226284842572840806543099846462803130109017829904901963905869518607169258207158243495521550438179154548934384020803292454795165538429178384486594736153360632188297189002080946309036725985992608773521835299948666553398746625953459893227836915201200228447128263176317436230639169444784046509018684344446293873111632623600142668971820243624704547298055531178221159634001352597231510878792962589693845808238065259270262481361231867815516359211719413995556478410886911070176319178187396514176264564544732264302761178907602994771096525351821359545038774617036191073124209270655847658962939024803570210700158476841676346265471839185750501750691635879533463154657055485246325840748443472692651412990780385762059844917221807115238993472992597559150954558822219875823644446060832833630128572195879911802372981719118864404365749259822390576788797004972847277635578248523039385597552794844521980894601821325263978628387748115636676676508713950084146730388865038543062478165533910109157770956378495846041464667532855502786602307021482843630517926154214047960799675727941400456429647001906193369009256015618857933697330425805246493183780658301925954930015132183784244328266804323046852931427867774902480663239247222059049765791442363683626592370975200662554902765430329014654200814753480824271432550202641876497387197916596242755348978001830618193103198575373690343627176265412257185573240947971814718792305585996207335188004069942349506079549405226019139725986656704522167601841458496289718825940452265902403646818171580304470966183615845695171310907301991804488974388394430070413512619250590861767990080072242556851864437904408291692131837913018520051994762309534894558386582782889494397846448473848771740030567479452927480163771322584856022640579579947063321256779971742921763649932201118437463157016867434528432714577163479818183862500743754946026670000509324843273697991730342120014616103345215220664395160138949150556366217679606579035140136782679235232350501691395848182272251447159267479583560037786014481493802501766327692418458752820193074072896849677316545453391173279853196269119108345590247628507024665054846329201531602577654209964408706101883024547848353789033506239677821887017857987887355393171747025997550349091090029410943685520053917497519066449093729536157737041707763865060758797121570601857970470539332758835993516050627267854119588971480786950501798488364385750355269018652077155134556122753593150451958425010910661886835747885236909832291764799074521420913811321949659007980709877581157727447544317377195215430706312875096153490473915017715204065276873947284789610390372881065961913955554892068675760894740399087425497042041658346039700098655308278612833971507757471120903697777064343218775809159000576311738522222100479937941565452399597924243213691054260999870198244755662970173408124876244733097269074343536505883197125900701194978243707872340375797634762569969107014411280326072020283825716178643916301423859000007042977691960781719430616273774146166270890171874200907577461991810023322864034593240813453502562809493400570133491598973131032893759353874438591638161936575700678559818513378909095536834593163328016430233733895759463840147953352216847623422315367890246495858286620683171961243612144508410985119239888371586272829315081381376152629106014602530041446379087165803621935631991531673123164153553238869844824120756122115461795626645383757608338197097032895543882019266128877095168006648831880378947750522316502583856389931716076283832106712746614944325095591793969759245210933474920873969868741487942628713325561383001637376570399229076141895987915906835509845068274063157914200215181494204029328904818919855956036280621060530159518689878837272849263633929377966871867962399516790570774812903532054875711647405067000836586534920294902264232612728503631624258273075094690312175781707783596490299357373524276494268087982657688945169170426176367218440945422316163968173063999817313440313731214142296181714742704411050638194243487693759246120017649843511388377812675544244134404695854755717097755211546335194968980732209445103243631522617678552545135645704728462879292002980451381773985898895080831301248885955146470897729168379480212465279306641861119922923490751558606574612786652087579209268722120937891555517682810341906033793507691872333855675926158648559835607881107404114202144263493841298096793253565763090599464098558489201141348721082834857940197713420502806074475423883383190335642126397559021288394493767651517424969966231336964484151856625716896696246661713621004587178445107262145445000799749975469129997623259252156925421141848160591725292891317685265280354118228373424717414262264428452004602228617096415539178484376120644176613290271149457024363173546555482084520910087274537612135179033949406570741803149575359595216262407442770950256008296916190695056430485081349606540553447221252682801204190794008036630459131859206701208524405323578613198765804672272907402927290413399533369203154994252959700137113269796894922374183558119916169260231459476297527316268105287684649366175508176579149330788827900624225679045985830847439862247797788794610714499480137566941196111787710438135165524868134307893048212930103815539194005542624371285856220388402419500574298709506404733081847379700261170797630281637345967076999768869947208581749569114063844061974178474309269322579004555594510389508395523021056002216302819652948969815453014014208876828320103816568974658411648688948374466176573411860277840971972505565768733329891947459058026454678826167594238250884712137854563949730671746435485785867742593207082196146136747184906192666030967541935343276128683450503894627231263977889557759359648843082100293017906515459182833673834210646960191615795525931402668826096584031941715727925393014071510338848843428062984440193744900443483325308581486282370616587437311941748571163188389725663423142221839563258235005920395154600540195709645907289643175770956341856035677114386623915409169557409918305522385331459834541801394019795834560694811858699925825754695524554431802640623121545450816668438406535613807584718260007188263591167262830230629472466861990667903703756493253595739643282764604156487018664857580750462431505094281764557416003954292330357471507000470560687248666002983729899196079910626967973974009061339490661139990054718875125475545183559974750413868819718264802917981295551122419614778642906303125093267780562962447546013613651813076011248285547587817738364163772834597551025148556686995688028728841058954620333450222536966056966307220561184976429354737687247060994894499049651598290174475771947362109055322713014992605814125620295348612476473502280034494444248805789867069442487964137959864529848297907916900213709250193351950395751307573473160045848832105727600493536438266696763079485001528424455201070580439128198610967884854817722017494577580508511053786514625396744129045170753983647934661495746779689606667478275409998875875087607411602632645592219752329028493619923442421649449092106853305690591520099267130414442977020229594929608669162930465647256666632946926751231483513063767699811560749425156166666811965783203595821177653484157619009286312036743141864541724773634493709457864785661454807316447030540674647410916119207003264323950165278366254789453960557930194136485765266299026883792155117284692969847000976785227180425169215888985586720905389639700569449474793647768098578099431105565087030150532490074108452051674500104634538876917833335682766576522237699786018764100890364004943046839395709429363925214505239780750751718053981224434548156806790494001885938438113532770973276831817715892948284237358380141826237510509367521044789600500134618712497284437874224146397949060613793226674483210798807420160896753981217883900659861413648112062066474425932759705888563444187127550811889871434523378667603570090603574245802432304997271708109436818802173190324448665007471225606785432254051185382431215846700750856602695704442062110790456338140779885741403654897390212810014796531902217461549500368776237071040441201006095310016946580590868281262238071689416668765096253646458202175753764814393712040865409136131284425986357940576148958637173736346339703769432773728443498095071434653635593875795657426514180072243337438658834306182013784628729974084997537211315905227329073564762725189839014690412398935058439817418462064313549361104453716375707221894740916746736938543396211700586176478120237807842151716022386203465315183171711782121947798773656959737012061704501410458966493431396653412043140871015874676438775959615665960158367968142260228858847570342143588619337131396004358135431688259405162582507614153501612107490756061203918976761818771399886619212828042326374913816640123436393136864304023960947655571113347004737582282257445481018722641573469952851256509671604704567028630069735348544767959353935775044876794859263628299136874727880761963616487132260055203250807075843005904651424474627124461083974410040681564464322457991379937233497209975746716770391844995979007527566223568844809553778680022669836429503555634948083399741810300457351378775447155243564103433525955176310169213122041706582827225053429867190432405383506721024091668704428185557931779705941645461338917674258298985810838208833221295924485228905256733223391524372107604818033234767585089801250145167806920508780648452813604965770019366622303117712123488483347393671326555230837067574800550383638014360761055656096623297095271863636805382685082695294069901479706943099423047970643176057296974111563518509556265693364422180490956635466688841308778665194171968270669313856585323733154404058655510389461636089769797683438198112014741121450285283441205351740433401359272367540215681778319819368259704808855568445323883288556245476024559349853597001680822108027973127952279066609377094109061775725565961281586684054975898913177256441066681114509362682832523553784004949970172939248527976710898649434927438858319920553730897245492163561865689665430311060444012880223628636365310608918735104507821808988684792139261558014761723404391622843099412626837953406804068157780075838061481101907561660907584075954097823730932174214967353733123798779902905770157915007245601768900926104036942230211637775013041234622759849020020076235423485598869014790360871725750936272266456317299357778707120641618146185645056337916582220562582618068524238268736301547695190509549539503534691782828859707919739699450919368785742032095130415599012087062836921904176735854910855558069757364732315793916219239676544782110143370227563831780100825601410611298369968334813897589582177192071657700880651617388353209660780836895934058550611151363357153239603708513962046685170559863931017289891982301061308153682502684642815920942105409533898813392974779968086176129095339461508126198713169505928170392933751262238077909335890448269827819030403901117087382081903725922556522515800931607594866210360392185328559285641835264517456789311155671845481814259722908195971470001618888193052397951143827164148441090750073280852181474934416543568537673560999804714043885399427993929079658981719123954403511276622907365672003231085042001117836087275549328033699511549714449324015528463132195410174591948193349690150096079460177306954316412091651831025075162717585710917659388084154066029991208831191584334835458855570776825147879893239264652931607093919883054828194171700420419704630462650649970842059960231992271239894712417499429175706167445668693692105641619217516160479489941961662782233002892939311829413812689351499489957183984410940087128109311209688366557967309036657936192361028406332042987695622110117315417973445393761022463770004521279120741128352128693738527291812743380889623254084790313368153696281613335973064945675661790516746755022805942612573583593323539876648962053090185102750707492168117533964915086032126534696482244314311913270945758018729989947606941887139692186336089975689913139399558760570405636782863577211556202586335833044110859580573961418031130078625701164756621276083952949250966753591466638482436419825967725592114258521512288439985940184985887466257305110093191441327474134958710403530443382390167409047219266007922342521718395846715258097165817929408920133424302194148432090615300138678819459237312682107854292724444982494010608393758549613805836343753213974053913671303195385855298515543554883520956407871292823551816793658502695774192237060889213978386931440908947779490347182143531485279747565067831984296673721347693176259063964603876442185529781453087855014901804873730463565282614266438550902526195943995409897404915968144568900278970845300849666850585774008404590340627734292255151696888508907200875445392085654483696460414003020804344347545273485442638890352263394845214035271780011249755840982439724533038117756427132634769216220149788041549949451418950255720684432112112048738255991538818386969192214377271653328063107179891047013842243551181754529392773976381931804780372767310839105776292878567543300192706987036137531776468977021089483529627758771711560728428980619029831815757680380765966402343817855921008339740141974050738854807430003230594695938286710811579005851070918982140306993507128543041088054768365974967807723578451399512128439002506948110855682434385053601916255444459953251915290546808822539725766163756140425012855167787570620472087420231042394025267948136028563869578317678865882365120443414621206895847006976974244437038223364414789780285779156863124669872506153774286422854489248271566583551597700113408957738458048863772391034216954839358566239601910549820652998090888241755954850697828547865289052308043475616718611352078261980256389759270264658572466775471002238870731345171926591720409625356966771591384059535506199397542832402954596039007464835107030530629873103191747779211880074787871055312793265900459385834759996898605628369945886587837244913636577468353634137684814247477623582006504959111263787276471364564921330748546019875644321530843056880087164671229048286644979612925484177598065323256614948415933547873812871927666966099079065487281955046253808606942811961929841870478370994557590406420310957455456449219720252135283720998008589019468465182678597427504086336888374795537204253442619332357356741818808647876544412322648241260080301324632029730101372470014712623290459027255901682479949301381889153587947954867195709930740624700210064019740324695839001932694263431782821705311301150284599902158709141276129094907700509719549033752761313518387057494215333639278603934871341282381485457913212517527678513876673583458820910176563347524417865680793151602844513787515515436144366026062554944333041384929973970077579374879298862818322342923477844716540154064151852438574315275457151509289895244392922787775479089155657129321046157081919386536542568151907511014232758599166377953851999746807213971921286562530112470221537222271839592920233349831866410241111261804149627181589782637581623124626963826143127073063016887281826882862215043674271326980896602417980390982459517941728333828018270912696181993502247830374787672005666494344872706475508820468710214708947297047770487009389929289406206365138254796618226857005684174086783514124720674773059059653698969293146222787424977394594343794161770166734702078776964729033612852626520765862646867620732008740152549257549712950528154494909991237156359024669591669318087967751356689256867415866235251607693476656497834145734652400366860914287780364584285549694126148183025274680937350642390359730924108812275870865325924350198608817382057189418478209907959842974492810577492805349225318686027972357320182028584668607561422909064455248869846268464585915094161272663739346787594186502456466357759837303534574433689364074793676308124984272786831377704824726708056749746637718871905606968753253815054255961815871615955829664281980874050578244905240203836022795142430319294854899444522030861803370389078766796913150035412892075964350478135138453571218322768020106863695919283290800057609088286326635623938347240254229094568717760424801019758797139034294672392405417114358390037741964811643947152592219194075087915401982684572390539458851182912279532878330236783507430559570797982993242238777725393895558229612963199340244469535377733619402614120643330963837449906012757818506577701703413850659636770065071352665005256805934058379244683169759048849773201387412130457598678573538033499852909062556709138525670515734817751334451042061569441302190767405087282858490236559207449402911991761436556318079160847989702711237917901821011157120156419184462309506511840905445809794592569541602247233835741424019331163120521586438020790841715326543213987899666189545653493849229791736353338065937639732993102193208655648826271275914971794251145525501856773213181343838464378646386241305631412739892306903557801400902550275990628739032520560666829399338304273669069377409576427131980876418226553136172692164718923849407389373144796737999377677261323305183279245665411766970468010402816810288951325362304655829064779233302576313395245160279571619017471198151576520013399761745510504864730598564839917215496184919968717404606314518580189885308112475537142624147680313823364386035472232965944694692834136327303336601090302694171996163196390229251203171930890329480177069570945229417975844711598246956336908714036544132634452357159623491352873872469360518595087285263163297135845572884572121701604504363990250604515530876094963990030941150541940738723285996793607803435700513354762663427466049185329785706758630047296694644870452642839820249049406763406591835870348727227085658307397404287830687919264055857714058961791110628510616228136526436181789904465845256380161581365927374720360834149869836499994636505064523071071027030459163059075257441605962623974302253200513022178335334781306564658527948432411786551059853548518365619659679377024849240453446728004554405095484774482250302270475672580389384813047230628313631447267849856932570827608123657667222508836733944955327304160541864791761680547372805010484044300472189590904032571616050764291935291526841660920197917498515306348581724872880055103440030297765735704359579908805742421729860950876943468827468354362660419924753662338374022223137971784249921745791978984387070013934306726778788335818979785772822905528294652519409231083210975234939539768443598732230833790240534516725705496128446929280714311639506223892674393677802096379245427015046302850711577412006993184452201856433788251811712309913508155062224945485738834360097642192281877882689433936732994254142663315262397330770065633740508123817261221673968329137918071934912250344173793786098005196178485071670684111239663384637762625709409523713403788646905957771906043312906766571283950748039773656704991064038735022071024749688570203234368099730994139635369543408237887321022092597135865740707065371248600154549562816594400318095804637258901454590657840521823354840187701733083297502192003717924869155683007057834824729386069893740944958724859318464264608159297111443206454523595986212401735401721395207393003314401245937757916824512081155043697965884247090547424108789060591212226696612825678080759682979665378135746368873943469310582086675635936033180525842307544512096766131907261900366875045796573638400012527271572026951127081620793416206325058957085107685922016593232972886328304524689887237375384800301964524356760737981788252506418044485648965477850919111809093207356280209814222517672773568032127397537318621323573757674900516438443859250704304964686125511329220545405492664086584285684372372999253038087986778482204961299094118005878706373674869757783157841654693183078071995460840457701756799462542689562676082628125161861174246743926839839074972656099235571568431307899068205331744383926850840570910520659491234863377751555703079326037899234284863691091259192122463019111813639003071569523595729695864352381578480113777537387551945748523760166027968319652569470145933561495854812560254437060628889340458854207485496299881177272499790078847620553756450924671530346900844645544744798007972130396033325003265863012324104468798108725344535340094253383471536230643695264080834670489116236242069783481045397340857449756941206084730152253624082684224381115491393745640905515364743359935406580708885690333204547326727484853548966077593696399646219462538481256961430256045294881064454808124554053022784093736478990078887743236604648850638770229721116947664711121758948854253580230979438784211406223286984420177984941447489453752612118506827880958666134949887640828976978808219433181494682852859373945594670876963290982261428919946402587689557484168673148004862756977228680675131350687678709674424715563963136102084204795805158538277064075219606766786825368075792989853819356165340666498139457128661693489621975588268322140938862411523104495320298411485820487805992252742681988265907458143663977045605144863333840799480515042711934015756375877299587387808910893321150073125081359992219704337605670741286359298132963467412636483902926563124988745391202511038919742547654629103748577868875043666517401222499904831889110412827380350811078971321986046850423009924589038817028410075067990577004799496563999491868224528727666646027096019237313840020290360776160087959759154468987057521189611260627521397412239926450020036873241134483414677601677387909183441796773711775864146108723659855752864132672304225650636747938387137720131136337636404222730624579911661127056714813831796401128058962270471719792161843383163298656576412275296387768213463292992286493488225881421700034344134453224503552989544514265817336025163194306052033127650745784491323857695602507267990288526042784343851780969457280713273215214501812824593563576983174349244252719717198699755844448420543496893134779622783090593028324133046283077766054003542768013531872575495884186280011869794752648275519093692723069464109127541166955658701217524377988120220002503326214517511464154521817026894204062705868806236640899699637374604642809041966013934961984202056297191945592797575536101650767801403241729243152768785676518341296119566940886391529315566602584214403531800254896122539639357419623427223411539644564449250884568668289636738671955399837349554074397041546692099102761962863246912065360943654477694501927276643106942722062777779075423949167872360895745917338146636588565480435942735170491451314040170064965938277274455436200768079379203210395717489336316250894450005167577544013377058443965513693315382749762649193298412654598208715375629472136257072138805232211400894137210508469421301905959610378853380954352831520176628911755739688304651183090640639201148597886839501441202661634796806806282006884068104779858029288499916010144220691319132609936941886802317786374242844643593175973380714800845248202494791189607890903020405393551250167003774267782539844759640717083595674125091416232096212478109394190004624648712241872394883864627855542879784575767246157137657019183731508014228822890035244374512070717750292360221558356163848760950410835328994099946204572398258994307902152825616506687757821647239408053307985875135530279997631594647230834922914491202968733468707544561240899197366663707076814001820242975920097290169177103024602613033219220667606064957451775887513642370511162772930802803581891219273151647992495396248408865187329758411632327618639082631050208572716187196437970101769513895384486625430452250708227164781728531188330294224206543462720201918226684954419633745984238399135031228127199931047683100876287464233641866642181963861317991165162281094762014914878986703337131962856766058790288837296696925229521808602970992753698497700601906643203386956203502822062050099761346312674990960142394947597851445878667017786352384933323659410663440310509184037405784318768189990832145118980512999361161721680113473342353070436813951267322845028264965360425826207151675799045143170404509139041999753104937498426794395057364800566952865870984142584317857244803322288527265049898470163666762468460403121508661260052530129163026528812851897382499019681981208825765847977698332623914011750989016079005630956101656595010718333355457622577121388479930292280668095310794334632189131281217335974240031420086742712701997915658882289932580677613585650171147731364544630894627813809503885872159910462933382299458696513542759784123900481709361697360122100960121767889642529738105300345068530936651813090487493132264793441111524000663268456634897631771240108327002847944330451761415858028181240655117875714700818751303786217483054864882028058632152754548463108049838516727966936768934922416111433356606795848522337808308343373675233927113686304564771512722683795459501528743853917202657135413379149924066614207470769780668430994716786764755982211289046186781708484169987481216921540329348341623203430692929147694675782654963117141603041090826270794442308216695761069271709002945268567383841350409388369017315830329585437103108966877801663291298362746617267590727888485837681330774360235081658221861251986539753046321807957998807465521546314400311887723415554387797970913929136102266680983817728038068736868632180336327180484077770099478646959050134126863204981044413559446763559269562014809322791542155503285555548712114010642630380687136597796524541165795797146525965252427260142648975806707558373389924678050032228333999444143888972539405910641127923882149534470057793535524073961928450835622516723112966683194145285460268205361347484478903090502629879251466737812390642641723843423889295178091232993843548789463272749418696612382123808856859177188031785114318826147840624623396051380913209766175974989667970012905442891454531267012153303269716567974112942480188894485094107671527401772822168131489528570468471179547471430618759966037258981249472840104248082886163575325591902468873851123514633941586851532660255652882273264883225669534985251582374960801724217677097651226749531137083569307583806686776711586401936384381877554561135789190126787278852373307875510933865282236406899662729976792450349436012371170541541758211899586534416558963157367289861354461627423195007241124362963977240193314371236564104667282772144238447988392964780737786864212113082822260945911228527390535253394675916918219105050367270196857526286359849807781047460223491508715023577370999981611707426320114352090551635075579904633691575458565053157416713050498637028778584054971538043380904950851491654085967088275587338929342435138852644825849713976354688814187916645947279870227602111347314857257185287216328127823186885515049572359991484197370664447357446496546293386119826146194653579210139508985476305140434577683231984580013645335605310503764199038474767900012247239481055396105437626371495912691888329106176271254481332719985510293412666093972654864125597012309521427260581324227161455680717285389148474799342380975865189745639195028196612067223867112060375734058081988490324118714193000269785164821250196323285027337782833526263710257684484560036382279672664043559363090584282616381243992905769982671223864413903980718382812460067751221337442813768756679518523903845779411170471920871029834213526010224414082060978376363334329675629844236388146046061919315494617059884600685764870907165685621642564138173874114874706981401546174074919849578465945584808140178316710493318324900115981029082544546447350522587207838081943520054984904799137152009217275070937924286555582474499764526411255388961870603513187377669202292483833150330181580434891363061696353712249905343642336364528922201620690441067482808163818478315176804284638498729438312389639467403318307027982113369738678720724382752870627051424194190668618103860434635184397069244387083142761858068108138910434053554719210043206704218696917458325676329454760564471383328637842690325995749912060436556238595853903993931755029288210792693315588505476549277063849026944154630130579295174796809984039261430779208068715148228531595093162429188109091293158604283592220790274024476631470633704227429691151007306468375425820244015845614022001420625786411107815926946211470789671899915364463927123283344183759916878194605840188834473257402570383979988095907610438880497391147665312372718326608283241164370173481188575072672227959495713682913134993100906605182121773421304017335510686905631003683460632117978393675032392567054790553478635082870421364038754607332279407217353995535799944520041737430228721466557378703755945359668533049011737457374090510185518217855225870711585841354360388192183039683765112965802251892699810793852986794771991490969271077530170844485770916759310528316465576773309167343916726131981701355464038692721892445214249000334341740926675933415570848780061473665928094526538031949718466847686222577934927911855267511889123511410588869688553389444283149218600767552669908338253631146425999887771765105356759984649612099530549089760959225621445357325803543124230196780482725186310481061286381770998457133455590111174682912257174599177527081026773726489438980473697558123958625080828577523680706422357138580703740930482490740390718806090621948093625312244477257542407443452912193895037307091855020294641020934247843020505024307340878267843751527503548093244106992919087281319692197883646488322284152723957074663985568619904473143037039225749055675142481656791532301408137087710765436027457868123005359196525367507620354231833724718486470681101261777104793635872804790679226011898299423215435850467823367432759105186538843016157822070810451848472916149643226447581696298250632802824092802523075881610638093504642649983591169463669471144528766160890062192868305374737339339403284925816130923188794093832561774816276834490059485076000373474233473189737086701909474226152532472577276869610146538972554437899351848713818891338031075510499773087056442896315259895011906734712996702840817637437226971563924131773806394191788615245705732937967750206157788515146061383936927219317889077802456492837235544412568780372462359128522119049706325088920843158976206816045252246643444394231772778275313740143939167187040646217784020025367511575245050597485740703104461041159978519494973238251006219416009548914674636613818619964794602155688416869124664549447057655485455721252478357124707347901186462393199014637762707963748712668238868705985180668700172148367545365345572686349721982621191154127468926499956747858309265522997092662873326926977306666018111094799681661314970850794763463824701100250432098766937569261625850690889636198087043176915526020838152261867124631082281645179601601293640039774563350247332653272896017824191896130784477082696100282423840489448731350957414213189820795470090405290818339944988582875809004121942481509001867470926554977578835116071987265316778331284651164834295030205416110832521584393436229082115363172785396500192742681777104474724546427936831883828197241247020985396291551398519260231351226834813181506602383079862015461244505145940937598903790717800472804185978347734352264681229740088270876520558910817777146894242293660824987567503471896555039751259870818734598036977040950333952147681627505633367710478892765008158974673301764564700921090304468478994168634290294214931718314007519374346499602389867540113435661072959917485541020116477163013013595413420890759265761341179013290855436816155766661962897210749341223965378111303898531860892597679443495114499768698654488759425153358779583146352531951664993175570506429515342217113475037100650130305517738686144190001229135095225696485402970995033689147795776925337528096978783242004380954437854147945678626992103797036513327456895856348269261392839247750357642827017484044110053701238427922888503028923871210164798779815933411940720411760312102448443983302491925126483641703180772587438421593594217851328850562941897894361441717248863577745488016174454844988273289628630679908583297161953895049918927712607707551177179112351201802523874066037408641277759194293081988208982328553868010386091160654331588936158898611451976841785304239412560944157387263752908299981427537296898896832595600690379227463186040845050791652070606971416026148406937550435254609496378233389119640277616561334884653204425237895715179700434265095345263289953863023555988735757555978143758982975397824882521215555374048337785427066229424540963784731056987075846166579704397897506477845378018679559377219174947900918771060735176368790278571791233480488360815608850565393019868476677437254605714828022778436485004564665918380303731286874135618380206557808673089748378028301672206928235364595944692540974339569470450211105452413280948337439567661809619206760130126814998451655989922436727258390588119249350732444391295693544667060951149627185341522256932104666659899291017401189683416529011139766441866024761923450557983232418982971076542927504288207945860385974717607800519906184490141984515330925542561770238719957986836267067333427571166909161456207025689271408535017341701552784041252886526638497039595369186679486589321218559155473924802608953207311465334041036505181489979071899761535394043900126542724561961367926664701562120193204955556865370238379311511107464333294435713793164592323014642218258542064778664320921869497670182661029187377953944360512705021982800555655790090654552597694558156974152013584282130883604110342509898609793272959983414433683151384866863668692068521081751400340344684706600205544129477164576271467482604965553704406100661055557414217733103189072942145650662984927536971989433715605047517137099805613041874497603316834957395440888542819257580637315068429241743184874600769196362618790150619313737251663803795186148876800715173352482230335094571265754197193313470711803996231245726695069742219980600844733567363053181468050722496765783847880750551755392443541070801552381060795220043533387955633227370564291582243240061842426897174966408949102622530423299474061823620356713669281087712000280751812443181864204247433936600144322249887630357850578777180887600791649838555096687712983072750217292742849096436822587261209722260934380802167470639920956127498555662780717794313408671753672133348789997378678353122859993809615839165755039167855306767835996549270065009312591504128115612441660986927384112091976077095256743327155959892548563912459715830482701775768579452113288982204751083361026280946889469301898766793418352832449473170087449747813165099034556151798029137779989578719940814652244186741497367001687824204542415503718189293083399715664567586511869179360402712870131957991742523463663667728723982969235782995591372335245343745112955488582652471603067791327299022387019563153015913173771361173591140712231994431359963951604011523050356891892451388164813622266066569509645991965379367175087721855569216172130549818681742714781948037519313160788208904702655678208755576542451101178156527240306693928647015449373501408248111680818890103408397292779771246534244910295831369910957902633132233533391900678030878130618745471186969312276977677201677775098019623378600313007989344545742446278673327279599814042544480677700782918421679808527687742361596021486168211836057298205940281389469142024954188363585685242891958662017438634881808426213447835828486417488063575446079816247129106777855692696227599166067827337080019007826891717390383970474965363389964792595158512657397279988710325940992381581593871843053200532986149497377065853124066865035228612762727959427829108472476511505618297931475959486763062952196372851738108204578283364090701986653058375263195841557314412613729963236953160078408477361935028255314352708541381313924769097083728979226890755980758430323773111419664765120615070747422873858855509398725484909899731047528972713389766044618940152991839456064887450322255535878140230824893052772269521243007814033242149769052091185232213590404545734375477757147701346581901866764160409861855856031191582764038256790394025081605589682707209477489264770916992820359560554038200141219338772760908414980514831490451964271259333168976384184885107656761662350487571404717221507054078101037018991293289321675659015092060538873008634716884112714355140356812114853679642026737524166766448132523182184539884428867196813311145732248165173619738486470329155782090936213708227682702900106927898393334487568346559565353041724971862947741090529767011732116494087189864918043153677479048460705799840501303507623056563718945187872053856961568885083355416041983291007469891775258784322584089538521903877643707756925767970798265104746064408525002687759799459522750851747120745603765588426783695493251660079966162428229741508791157245995621741485660510105530930020520973658026649189621653695409704064144073255922893912820345804856217918249881968230575493145282602773609430655718064994106313229916245942836993975849584088136330793432387381787046667806712481136189960159782090334798315844517239740523308496639617843818181960000224634389483734317557307673583379731667919359349067833976380160693512531853720632404988378180532739046292606732631165153262655813902369465083448267546037047408451782375988557415388986206693871643373805352184711623995106336918305365167811195718467975735268150266950210932797424304495819986205037717879634444340389737341274760891648285118405772224438085994879914563551619149107119995055238599155876615785613755577326675584399664034969381380663414495135534238586152225391313861884804797052288015062414742698932716357432493072413099591526663432298219899124912203493689132441620867881723443520110456781051153991229616675015724389218432295152182653951884634312093773131064569799399491307405292635519935642320304861454378509630502575627997118510119006694798268923280929751362261626908908821879214435017635119047501164901646793523800766363846580611791728767872227546344201199696708754437337943419276673048338924419109138755574945121878570163690247061097911722431884866190523169434880783741901445364986708956277484865534133728980525465941064799856281502915618883799488644527052300861610086526072396983826105322292247712875632223646621624093088006716481836746128857334408670409399875246822473631469756373774004501445753612323722440669192019210522981570259855123733807384574167503035395829862484609010138784520648829179535620331269824431101337288626340099862406829298453403275571749997538163885483347164459371813604855480896162185221641087058258348097878654951124002897555952194236178679696468107471896624693154357511884782945661034354820334905179653151082740170317179516867759209460826616875611880139747142325717295768103309959509344087835264191050473863743520863227321788085607507738073084843629244067358904961873061782460869211360723635768187643171939070202995550362059030672134861343222551171419167999494876784660978641212304820990027417787142881759259228791521444597895477620440175348635681340240488270576590741526593034413678926607304429558451282581504405751992789248540287954911058990930202547806208986265695384713012010315017710494854828608652437157739950220906578584156782100546827848290403458038382307903654328883173855948834734185655211062038218637048981500215188582700285695872683678619125947065719900180782846398477703550134588763688252806300221123710715692404186272329928099391771340799458925798866933747291190878321407478890594121605329464547574945298685470078501761236276510559357782542932591703373083213780344021626653648184134717634047616893988720967744029259766355265205487968010900263618981780969208205882754651414424337065851106972444470538279412933385443556777425752068217828989644814449872167064778825143970040533800257646222110544260160110515326617751366653972235133218695159011567484980551200157989644109593831356165334645288883128560070822474615947271301259999099607565003870524988884888400082536491063802671577733698272316208210129911354547682402451447697373545953084998130891449622772044575253354708244665789902197037791808318710641940582581343813819743696710702502964997401338433705128006904153777362435394238073844172052119157825526207461539836852223169794297822450604188752790628437855439001606236004228179657392983969074810070413909048890543836709379350989203195232110701011357529396137081173986800191754529590345883614905891084675191957116113135992163935311561810197514730346915419739660404799683920262680127777302954687172427901865709700645540442538965842134636069870316361387846749368934838986690210604277919613049107160575288873672492200298300501064554031535881828900103201696078299087415835264671298209402999426662147263860655852363592871243446943059417102497334530210655449220960425600339277713085879995109941151566445851522661643924724125596819585005595466543391466909718226394990452156506601621407571828710417431290437509144342455693529176994303397571159831680873461663236811995182095541796594802343374516416429463605780682840177614243877058575535441532905071095795782404968424733561854102296563787884697629280179909827965010914589136373383238979463829945082789169770963648663355970094694634321195826528478245102084899019652914216261541356849395816023993114073826416474109290281951561910612862992355424096497602896435612860613727131729578172284789577119890940813902733654206224129184458495013043294799231523647110927520591988519564101008831113494926935257572239869384643346659202806183852511349918096948587804502150760246828814205132124483379873820529798464168424777119080480592862497002087637555918644469111257050298104873003159408228188272585517458970042582297524962084482652835969307107767941942550263547758760578566926499114896407036868471995352019380712066713218999239365361875900660524491566703754091203113558780402157126332721415131820129686884657672646712560063440435885081861264534886262566151335566789413909300630832715735748672337551934546616084661323198005716206408374673436595769012062266383759134597405866265832111171564965341409948080103441101177910390901712293712940071631084331307575105942791783347905023143199231223873471804999494367347884982319292059629828860890022196453287846012443735685328730913216291687314898282916666251294726988459800484458366377498485908249131794692332060066407033515850816690868573437255669842139573423477090298528659362731627158159017813378969048218240879588620016887315755027002263883714702754684932730122322661482696103304984736922255823543387731762812911658936165424161867104227176354232480788946227858325597088330879846925568864178951150410625822964583020082668044202331362751193519706384627575390799906685620363897333663038350094247855307103521370455712394819959493761510027304401582957621784301293756230563581933811214650572761756437027212285554700271801059816337586429357957951182780207341644679590380559271568069853384244347516029092096735067711717633577846187933047432656946504783908331480547096420617009499769845937638485179708128928848481832750045850515298493073099308871952106164353952258984108781536525487304268334808864350319593072114525925857996544453904765348679402359648749450169021085092980818056582257050905757587385869552816760995755666487101959971317508252567115696366281788069720396234762140836789845965600437080308277550464274283125501983984598118416138014091972343378144167009791549435138963924201924287378643890043580918983604174644369848963109407665162063334985465074062220180327041021499798118153800110734267812388221497339524970169104638539579778945737676778237398155641921287289448610315087943954108962168874679291974085519299359603030148062732992159394512794155274422758896136038570389818192629213404816280284744952469154446547588130417945034805596526482847761948485664278798658511586171594002506568336496023439823928914609053470133903768573209865248667362556286181860536412831028759927140728485153474358715416934037363739836325508469902479203290044871714321443153919533960423570327759962493645017697796635622713021875868952443290322752818239056755991398501523637641942235930421940571720444903410952375808283399737168570157027248796993393544191865037203838040248539987840950666493711132098261033090250643739998362630602856789900553041069369683644998936816277888010858054027490155124356340302369671713358298064234841774376541047036150022969857829416695872094617182105440889184693438056774909538113061211250299905303289863063337103546222786163677678079213660316352203080843781246530941176523838768655726663604710368134060119137784896750867414773951362063789600796843890340522056686897573059210931549168235045630272424645648817667275527167006195430839722120052646099880489028645503147488705244819406864490786970173003947651392526772074239136076715303783243972045104070271217688574017747680371349004712601776847208051907837537309274274458278103374465130692495791154591595955190863498163151953691380838433204203341339328701812097844243710306840083937902741007401781449161354408505862818473839209350968660650840795333160058964484353782956345422688805780525429267802160385404750918538234725389030510895904652697249111438695917993504058812819315518025911483549742383368660450552324381376562750715421339638946354282071069424050653410418097964785374534887791856033392775184583311370734552977409014425235248512414696700453576205379375629483709000947814201390404885497278983604648878834336959842655345126512132147820111026586085487394023030421051367872523069871376514575844003787337540262109902921955013498347475189133175597632052876024156285060442244956137421640723303229678846313534029156274745695172974384065726972425432462314572980387874255432975855476939008344819048252602297742838206444072325825976105680178861777626281023189272030002411418566486727729983539544472662284240391296382556418525147674877695273043559415059183572877991006508642793446724990226097086562865631152589711905862523379836402138034256066426225762001028396538751284312124852859599691451138986620263501036975650068443246894140455999785527204117059310075035597263234240922964807962511333062317696394144200982078820194791654818894184988103311881853979668902613372702855170813955230582986360964839401292071586457344936207063823761045355928029467406331306848605408798478369502622016913636058238672246489062138511334326460994261308968745690554523503456939747729309318687459332923927020070474012721011651723606713453062956979512791193231491990341077425664756577260953314965771344838214036324530523476006406635447833663951667379964976552990802506479488795380009679995998441772894046036025482981087596753991848215516550906883840274177969453119139566758450517529633956279698538512625629851187660956089081886237122022761055289181931905394417642867566121886172578410970761110702712374328693930953060665431555650350577897112514422994601782159825407039486756502621149817664776638516922999214293526925448271901681032888997580058154279515910572815766480102476114228621256359870216167410206317214950548934897608559339475842633483438278304322066801755483065678033535067604878413441152771479997829124071496472760104601915698671489105002554499845580795780393566494379295857154406103139712983285508789407511846101064850611667740313568222918778667470901907627640860092902781177257707330465956472235354159825284331292640718754904941591495084000244169687861543188792671843319562535162796287183630385542120802808022583557961950723461837299439750926276497995959482323053196525938849246983921633018883619325273989037972445100977491349207091779866998160748432479752287567903016619529276519124084736104827842318836723252392759667222586734833002935904058508804585208745510295403060250342333164652325020483909336249101336374696092230731353724218514359603604008979422112538141336324359960690581502791780872633257161763008786080146044461620733594509350312733128098068366913020387682019216832300796085553787199984712324166189876014341943369212626347139482376513737242460289268355915278808747217182394098794828383646609835018302627900525747573656782941110689300591569877486120211903307171865433056262954094011489160851844407860104451827114241400651019768908304094656463120543221062801976796411035597626902867331564377060005459389372794665786791071245469686607347398560086623209016223943535121955861778894302219083231164162349859289600998975603838736315362313320661882869391932292450360048433045020971906436104999314066886685133456617508334973369736564737624810142221584974402126777050605085135613809979066554034218828369986558603061761270039698512333464775246418798079021382412345444856242742564882014162075488059815482242389315035145143329904879598091733117663792072691555443154275022003485173109546902814273368353216398186925492078153642609703980124987322037318902428542478766651079517676563651202841423605527905499708178021272758435193558416641294264643032014144851504489691345332085581641995607348771319635699714108683253144438373924817024589288184565262608144756659476728651718809789641517191572314848887815545167165171221038015184014111653147673548133382501415012827788109148627565311803013099393945708189995331579935383475884073425974804615652124601718780691385206036864030459845114610928282504861554972296563721597363585120755099951748936877672838578721505831187050441361019029001990512688735832599506093817125904032245116239324183157942754899092473486539382226735581363567744791160075559151198304350474922101769689905485564324739337122521216464682332776885559455901734635252627055908481018536269250881441593616868004574825456075153341862540116457718315675630803492568568432282514278165254058275873669632742101235314721503395281243713710979446202973690009985989529761007218859176725589229098253768275373514718960962164507575964544633039924290441342625906421684180014273959001875301190565162291177689977222603814566438729466074850567467459794158326195580329108361928909019589582728006781601071754362265240534690503806359574502506562412805766957854277137153626323018598282076527455104815966740222589131139254463616306020666987068421417778717847836408763842980796555285998885537410837826564225062293876966867178442317177989575996878750395925927380051164916150782259150544650340239067805174734959550518326133028632193861105485071548352988958878440612476256495502233763431799145983492451640876278268883772122737603798948193430746211141146760771031803132557836528682924142630757790820217334613874217349835172591368385047125636121264906643857794517722720127603012845155962037699754890731055165162595949680243640324298723610169662587787130367019391947749658259132801772582124730036741269797916228146265959333625101797655196468156474347666865616562817273028365715611755048331672244884048865024445887047088582123920619826649996646923515726699421535279000061752072106601287350189872003398430034957514749509855914890103767434885162951774470055456558259386277727948311010136299513526047150362289494455011037357493912936956359175958849189189429929252801186392041571349338626385056419734051574309308379613841762764879096863411230799185912076199248959474630442154284896271793101255703723030042115437112220569137902243043017011192383445579596318942968860612193743278167223802463323319881026424722459143283185847703294652371888874316434870191865876354871113505717216357841505762233800914582017390188958327456893899773357303347785575923892468061647859792702305401334633385168282091037272688553686055459290696124213875253532233997987130960399775354452910410691865192055362868918956262127908136739542750765642196552891373598208281745270039691556175455768541247461413487475993149980233081554641623990957267979322470196405935373138274210918882954185596116618934921074443294254656362576062704576468563430664140388565287926644053500898486788105851675543741506250897838489453068003632662517062418180386738222811010828254458992570813061372647529278475480463110745181964319433207601930901741926855304198082074769481183462042465946190193997234527171906170753745014481297911958077649903228911412633264721823482688019291950101874303649624333309440880631872673514461671274750127732552302680430775831216898055530872952796092538173699282301406233396899607222421292286222391869965920599124448164935279946873869880044566905881608263355881631478899107900703516070405202964481918224540124112300270363191698445078461835192627466703009493128615421364071412203792935643656250335282860407425253050292316071934841677609853726448830014477788561348485097879254650220603675850804838482556973842227552537089496737812265288578972294347773185716944982841548183788317641235499071958310077998481804183322058544049305767855170084465485108383952528398547231193385325566717550506608520215691527127402253604006167208894292139792298120325628465616204890850824739581371094425047302394908944590010995760805982079005601568272586354471917773893499328794929455233423960866587710552594769788920509564422822355406775879270830169889538010327060888815827737762339723570090845111088054423269650510796254881958844593228133352506628982449482494901614506618860696858492280978269118324864729580078342921011593847143703845541785761802328829683949666809163763479563850298720420111591755720805792610625288421975604144655893789895310366348343627732237660633360507943001873087921789438915890717114235688083604596700177973607665807228829665295506715946993966281331687703925740436413630565657504181241839348663253865756014832267642081949536433440358781390141624596562531939839767210760720559243780034232537270749393928555431881381065806209227266722372468741204129364227998418705645483829426985886770292678464461283677608214039750304454368361290935183858666943518996206852080874926076870667988161434958475762064495280896930454020502681793013325774787949094394767666901995235141944876161478076470711275416379140693884454167840094598672717002663420472908144250055253917709258303000848239903676630538108441766036707199886956387370333559525571345939839571284336962574319907696137616683881157815425364910526303463020333194835408146870201407594531682879550670262374898496399458059231219130431226673330038353401847021706496378596375015187527886572872646971982498968245277996643732660822510385446141290162127471303748136890694462297339018302074117176456223177250531858825764229960119442250142959464541714227821229820529142280909730483957012237077219742228894621251320797330188652079583290355332139324356033589710637454901459064263448466118340441502268439577026009230425736378224535759765434938513824442428523103741731690340421782526458076451674398359808593179783858287473193436188915397423414233620232563709785840876893000946897650064144462309235496931285557502002519522068619844835062892658446999687022659978435549004334747068925763679330866794951309317616511151496958441170221749466339030907348091536492388768957689464818416016632620196192034441052165219736180045292884953933613369490536082833943402345166642276015750541571606999483154443450777211467502954138342825082121919304151592069069615316354602287378489879848249271649958557079221114382342708726598179974642415599287970391374545636069028630120517879216912945798896267145349659171088726847142720636290333099961541889519747443476831078252997473631354780912490167302465943643641974874032432994845578184744951871967444656834922314950277652861179718123779315089129540069540855438117301993035008582723223315891734238058634248583094041905990981900199710342660331726663315426875045405409593390275407246615310148197275517256306857791827712589859136227692098835498533347131727697008518052042518851450477635404933200217608152610087862607532062936328721236778694669934861666399034670477265491686486833029873701192743172476136227186996744514073447666368684545708334558883448913933918931349315215577169805874545238712901684459844561229819516054725755606553723552431977833451577441318175518488599952876477580930285927222386194343472721408626144729134901571809160769350761030193172534783352116886347895588560006461216385439440550227028746567005840135346088112070725980065914183534219481545419765576524333944669241980427703413506990475960165962626722080443842430932285091091681811660042696034287933272997738271357768970598367506082626599824653006470098365281139784184923735864799954354888446239918681534218269875139347254779547287088606268150332986314888002209287591139333474070625074974617749389344043696127653184758012839595286828638841692753155097489475582317705042807381237567553899553796506145842614173921650553094504992632803239927820430925888321710864135189359797444713309298584482684122250783417576554530852350639776756878852163106618795541226932625171813459164946420779276061160195277198598255745672783262547145115287438007115298710111581434742308387095833335463920926584262088003235652231022359155167791535504709216332641273876009334554540816506614836679648179701830150870801125161813990203513995148132101159077893311183023464705145253052620297602661030764061718728066609730701271383582648535723052799798357650871386144599392334584260484927574192051381127168136303781317917324297387830694381066338611336606195785565192086677123305849585225714830540110490499665457152675163531231479851091637964441986488956151376060494742393704641018369047822054598540080382813449483760389158948357571455723465875025738950536847041748928517327231178965345929285616771171378728611511867331741917789009656713467223040279130209060183563102240341845967243990239726493595968514917814646640267848071731523870776353314122440833650812943334720415562913858520065803941966066807837795954486500691486685967922968584402677723680026304038718548882681765501997986270878999308996733967044707162529906325255084323872427769602263034462310029967199083684800797691943570187528724502169667949776248347209880370029190827985575606624016729329297105304716597617137834990241457728010025842383622852097845114204902825100989737122674276587835982787654411704778759380732325805639125255583756548100255092146016107695044371608447910832760908355780702719413350791795034289641401484840767591318223953746107980746165474044844299474697506379355145974227698118006879391904357897989306610640013084576904548810925985827467957769901329957670257199106035341298246954376196342038534831078693378446534712617300495746409719572153852828623625195209511129124022155319503016566215135133097348000436939085138224292733806209863754395497962937845406574781554046129475127982699228141109762958821462924690047873642429985825666337260931076628714627519127849230550320939935808671994403373468633545448056656291717406519951578678493214565753637604106733002363943646769650110038085559946705700400380087390860513355884263453635365227169196555174755941654206118873742215588139861451650974406798644528155649430292329989985275940795744682308203889627779556813055439901749492368826440543601251735743475653037741881165243062411758894535183416483542548654009006766698742187931260041063199983578791053845771954613581877791526643549428233126082426042177501773491202789823595598444856816421421271449026643384233556676238896153358357644420000668495794016462970175888091543210664505054490875058195983741300895667279476434099529003097185022123262508078521284699377293220298796498445678504741388084267832947574442132553616223175794687826135267862640458297531294760088812389016821418707095193342428920865750654969394962470804920454388484873560711517850199401677338307683787033444214986910613629961756735731647782354871807795759206116135916732573064014725937576829709638335361855529225517287145627557244939093024907867560038835851279593791470332626505688707495321776183376695773391576873133271277611505106863457521756114069776579887137527125427559502566411058234316968857029776275282740705741901234935529438599779852394755500377271390991170465394335762813267296750264058390315274763109416664562261355997340177091648298535966648895111866261818330066164860387979707324763731512396486927801880057575096822558328826548154023067257767953124379700306340238317618959442512372723409280183735917202444413193630661297824900811123982911440867864012148290420505396520157770270965680787238175642110063559939777388487808713597281197891614311016239415332529729395734396144377738815746328943589123598393070114833421353701109168576542036864305642565785382496853796477000439424361756172509184001333176469794835594711643377588930208641169677117121139227938192131992544964535361650836155863746418138434753361611000392237802746861360717649765068099027607271355259580410979580460130325172960705608751493094299735794661570314507309939720563801069947178400324091240282480024815230313210319026014706433746803061848200183941097666886745044527561362538538529452178821839637413105260724983915065688990120274737769539330486380018934092119148351234376261629610562783320693917782034031148498391479517700862493883082440952780651943633131252660125999568167672036193628802093872054462385855956715445212380221189531213767315754340329140450228486091778092859795406386323398291570032167520412691810378814296344151659030031691263353043257699099333404440475337517118270397250919714326059626588405574857167289713731732176224260923283710439895044785802868643682035521845846947859539972267027881100551120977424454010959991271404149993111915265636924533367052481907293143249451760142243391624948996713884035646364064055658401699915217491278039732780651585290892312463232959229431280222464282371598454732387649141729603157163698721750299807872593853636675587375058986046412014686051267147956509722710512799949114874663780184274780735710384757875808857990697574324520345122202257630646872468066652751664835489211306524324913601777270189165435417691944754955661389611041260583212135768925892433765495234264317300570547104512325332177735037771885202017939344562848223455855309665944112019293361676991283876365473956301305287068099878965620876338193760926237192604795436898142211669324570933290919896315384398429741546799394757566917869000904127597007010733240831123192648024989970395677502784252418260781713878208860164817478980863663311042200172254891937507619894191572823281557845387198302044125925448409994444753221994986428858228539769945701801966058365914631796778025618757208470637642617948896945813784773136730451660279939739456701837225307651524808478038742085529155574768854917504360921007265448396672062833514769545507445417114125794317086809305703915722174178785159416641985916395237127418260432144062267875513515771848759770400889419054513971956140511251679604723544167420596160902740630371430311562858076090562644609061985064627549723989620223528305179968067352549925706393351790634293220192794089404123432137643778562028911832858438249697946143387198715524911759552817167900026097923251934103493043839285426120459869094884719062323852367394580776942364787563112206686129743415878814918112255173131766742543162072048029660309611798124478440763990587738689180855651621483803344931669810260230012849833572766253779508059886999261770727344842436793081475783133413184268618787779687000302531440053546443515149105120670024388274428413769699231774953417865252670243638916880108426868475043982926873231105636803747002197746580813451528387403308162562007036812518601184677423250065513905861354579877031619964195767943382000508639334443315781076054852582084668874277431294891688940462411048301009084395546631423622260212895275866967254816906788871388188599053654923931559179075494423476466641751687650444535946247262504363156262089831905796408551589622673910828544585954522210003715233912190476344668870314959576091229277184435064306896635129967684246687638487403810563324986871822883753908345452714890603987247096003133667586462478895984081758360323829012032298175331258399966540682828327975489930193697576047936564694606660319575509812219345715996779491472840856204925400780622837973985206095520613989093896601451341404202301631968935814671931759690064444973541075762043320441813822070872737453493972277526667860234903744493216557706171212858245094865804116251243189498844940661036972568508086205468043153437067602074574344150928042841223284368392616690542821596361125696178335850147805144961971678861305089202292188073225116474829162511223281778915652144595731478973807528504910928650981214472925309188853259921962004969770268189750401561759425599728679446495465254150376621477766861965734580216360264815431279956276219432675074421898142974835916840715909500640041916207561991346570280227673820242625425274896452179048557139653655479607197522029202711215484389526861473474462154347211745750684064604068123099649852851942396420813464240080769354771493290660259825334613657713382749038629918433362300037423923422695083083645523033618301629315898035432005612250075881913888747641260958294346406193689198475419652820918292024640292202753163437994731022034326061201864256880622601511306565789193872105481847687239930803379669638377869206643393658378842680810715547234940931472850860931448923764780109669186671980158974483925413672567005304143345316821818742301927364024725021519857951521325190934691794965720103353912127832836498469004328127676026607923499426624619401070301326179312201427892993669621673666153525541497802361614086961892534481133319716303476222920163377126484405896582085131276084526224858714489561687690470503188906061894413479949602893754688868005351039931059599261683000889709526960872688697981007720920990978151356532797533345231421960220458224426282209325812256542052136697012942503007392627030983198956310586888080414998216187722002069660099336853679474065381192111578415823401350448137967864065708705478983487385367997683358312773469635552978737406722780197756683364796151585872464792716046685170724168501781561882332707219985928885338012568681317688984429789619480862217522817075644336861108420529680383216397702473472586076514614957472348635097316628464317033833318458969352810393867138595277349938142867636600304339906816766964313304238553896074114532016316138794876590056960694662745628299330222693988173258709088291616204586191479925594033569548346073107771785333172044346671280740534983805020708411287619612546709569715654274353525301675003618545385751040340669098184513248290186039604562374379258014780568391733589649920957334611196150669321025398793466116011815951970917166422456383514412672481651905083817337611434002025508844860238678368957782680689933451133134808692055329647034700853177376709506391571210181665715812818898475189221400360892219677581058241571145921294144734297088236737410236403595832570944621085412753351584056785235632513308643433909928626277640998722230773378306860019835144896609150377829081001592391351787910801735391338895576387506770458152087727416571339819012332847632404213617298208575770780680535805981380464554682264594752837126104317593316060532285940166899377431538979989329822291612251730854763317885149168861418724453873132555507621749742315175405838279685446124172342255335314755450174422917704818020017145326101435786027337588588356995952264722252197454131406161982508687850502787902079327899123299690141730859479821982450274275623996385753358471529272571057588658450072155982749198718202680199836496560296653825896509779859341647298535847691333252032134557352738933526791991299489107325212032219947135810184852715778201489966731897756774388893793429779346407277914062616302308489949532320917678379787820050458144606477743114622090250530903047036628565425026661226294567121508036103770674622357625882220398874590556981396077399079335156096948887131030971202453632187800374749268260902410857722977932190433349120167316676188253941889060391793153892874722001369243399176224860117701798307727784414701442828189034053150246910547730612977190057496323933141888482938741631097560207035256972879409787943858942778585929347276393699679595619980563833420045908799995493166343356049181412796048748368894171434733930138054008195576110002696613701299542129216598707123767914675754528561893423391726229381450249169720189662349021295711124435759387710207682741377487122915954650435169870213321989820831534802302722229513424955548775377082519254454495828255580235993619178684402392924671860951204059151954202241787264209495013430771046907842710310421800479030946526917072892979847075614911881085212977135069952137584882886007190562295136794001635202948432241446563531372435167776071631612011076483794832139733671178473429713699328825933516701353149777581121803487813403289550958219389691773311222696644718026276154392143611470068251365932097995639070804385042293263135950124878206982544595851643803358469184824470979424235371613154380054111334635194581910347201136295369113350354463102475129721160379422398160615114159724031168261133292199746625521516527373174324687828164096751955201035335825308014833868142459553236592050669426198471844374756018551301842792385268521133983053776474582412501599475092949234974005828374678630003229929275019249022708873187512737668044513962298037179699109777839185993005529039891008186875416222129340934061318167477073867630888603794513394827865756143933183300568931448089934429319437476657429429628844021239926235353499249397856383476957430883652162353530172162443354682855686283086169808967629560725110528028941952738384626599892734461262667202792805394700883717403340756536701432447907891362580321064816325417241933205338993558202519281591668281816184957915017030334861696225072555129799193957386504564423160972586982038129136065459187355193510530378146167012352396246472702907979635811529600664396447951498857694912704915439681537255793430648289117940606409624657482459519480653246961327806119628616157817867157193631348355766198356456401232816891879299968438015718663142373550847455096258384373841880597135172117522057642285884892617317730245754049724321395231451928881235694411663780476729871225030070474633228094801540990305108058822760305797046153151560150149380242601870527433333957611410203290142128233815357978507787187774739125143679683366078533347337409206856910858230032982116356547412960877567461164174829880404565129053198716135429118055491725557561641091386576522783647270390383928430021457485064078182052027378321320798448616000693587715142968385203986691701393022445001242137908279481414215931949304142368152703542163876872845485275605676116781967149121791337125213080931888140743243462612395733984078235503203992448599486098568451369278278251210638132046593280671676106022421985679041783344624787342292320369632114434641310008117302902568273726197872241977396944144021910750375609474568617961859278612995796008807645965390623697861574847659366328066211561963247496791439558088108877859830950984249582708017917716857617553026051047479215196661166510079835275051233848536755797369164921807292020341558551476505964659013872390187543198147401365696016808472759680829577130118907809469529932938623416596006129354941295520907452113110763209913352990194017151479127598616454652119850805620809507916664825641942501108873162065550223078653248865399489961803395499547777925071174335567888995165714730293832608892404499919382316990768492251711564112250128794993301771086433829771437446625126949059115312840810522374350844843888994955604810988258122093075956768748140845927126421703094400216863388730058147004839043902852792960476239579355633532984598673292550377028349971748530232652285928464171901337858717751569812436931862728501449561332403666675335397085416201104148215376294104879311425517353563569690336085954959473329374685816021634676972732040368336494515317470722186711994701620980093828525127966317631928064976836139492611318198420593960730484397487218880395497247988435240495222363886124147437398064193749571431467919218905240313707439585352334936141488691982678630635650243957850337019461611006133699191494662187738374185128784615823322658753511239017845722704683372589843662666845556608899094711080199133932685058280275080296294447948577027115748472292405633766177215104995238673036966872043164027626493860351492922820067532309236858438922821004071710233890917430227596284925553096153912290500165549296988369819516262577717366998820835956759218315478039532929203271585572982465991030697474409930308554160911470996720761631450030356852828733707669477520770373769321462912138697466593995944526804173401605453502841594791163747306784517448197426050507666055356178425479882641918215091333946848035350035068888082806520074843443892821777447365202469864798430882470356841766650164635925822036885784458586954207481779432835104003696923384980990189999912687231513836081674388507462260241099821951540632966495003483373779328566932007368177005427832692850812186574003235969934397727557769077371262521661030586016753345972338247459798536061633919120167585295451624302527220182878197394085977626843201466540523423761419674690715847980905011309232219829555912746299099911406802831088377268800571563042707918285443767253330346158171153560447975650377829642725539297347952563863148252074436397481151869152484528030266275806649717233249058546631991029272040178205758411427194086122841752494132929575632108383050445683717981715997875275189609854767996152988473661348453524136874522171386861269575133298607562204842258049650496432125620459051514222033411687963146711241466225122694835859765400054496335854625443631379367267647226973998281666970921930039059628159421325667573520275548983098307357422897646986825098147738060806376892706376681010710976410730244693529689081231795395807038760525801459547345190971037400721449605774445952273366569999424200989976911037599178822237878521845830337169610888602850638007253030120850626651008035526883778239778318119006219205698698735017165944285273209964221387009970985644424581349601505569367439152536854156945133963802812642775315278351025270472948389745374402826282815251607701314142120128142784673584011197358806414526968310075712524720850692202435384696546893306764725228485754788174937428793424510430737002671886520405149526677432770813797503388832525737480689422912219573305518995672006971893043021889718885187451282955377895953342159744234633287413078035460690126443134602178726707699469568935074820008883377981416534479413050289934197130891676255010023430863567901128279106250073244912266355686438686323333725378254830468497793705790435306136240031425199188148389753248991407958733298675947667767344127311907239372538657119363067844023426315253899766037348313461647396721722182054716406701693688500211803886575813571109943017948021956111384376838495731324478434219435325063435964137367361432304531582077973063477787894450962968162469105635043712840338369497090331964887762972187448469340286475250678485962898127897966204085371310809736388901128554986595923482195849711339770085551208140412195413272185881886342720404552904237195533824221696138031163300757821635154672565543572859856361366876703045164538547188773721830779261052173629448040314655304099584762378323582251303611525038478581144851094973355698561107984490263674837334785422963986672780177078506077665393712618550461983842372196273322370753140393114551048725288411795495008304287256826198745054426990755154654368455199754607631047489593641525514528113334741434575343560757413317372428154183796246868039300356205736156603472909531316137108952945404345972346909074880844961332484707110220734908229526914192172384703960006689713999465146990032676287151797723920998803048530839668340383161436651117692560712209020659207948727504894594850817337365875234034329167049959470706557134284159516232876994536397136007810817064441456760148980924683073543798757526223751459318919479164383470682620927931650751056622800360274888349149270659704584284340925019474275618819108850709529283423576604213526752103340894383034599860622151107184736395437996238209613435821210454980770339111140235514326091710600512649411126623798125627784801795271952177596098464247691768141859433512061946097166594413761025067657577774466782214364595490880433695572057527317040704000180156888841533034232911206696031659295303059806769763698332108338985442627569612028303214302385258261885145392368630396432430394898153367336647886640746968377689925082817713720550674815020689693081401155116979882098988484155141539523495230830287756090352978739149258785245536619796264639368430201320264395351611798041620298238166701464593359423007884380773689386621272660472180277362299104453564165479423162863244186077850743133286661151859429059124249039740851363837274051637315097839818397776841892377280263897112022917714336907560667467778892308700515954837262357236906557577082846440123671387924504825363886692822373211539051628313000337839779045992758639269537859687098920576597453020614226723868531984978524951141598709336003179162982186176648159166518225116520135800452878484356341259849831687621521936315133518216182292621281795956303106644614406544660466119392966297471586169298424214081176740097043548170109635352122004758780167064277939614936569337264742539113076131152264719162291026071476019301039390480427175148529201340430573425123450466448266764455620056435123949673529102224683499946446992862882074107026027993684669033182341652644540864507622192852779479441125665532775317148574953371907251132708666821167094933099820337252778675031168493147263951627059401098716602096262838965313661464881945596053179461071533413010153174942809372420884157807841928142836794219473244228595511285334346743822464503180910767604716010682793838886359472250076431116370555640582296945595040578889044650914327374786997845072837262479808898061290398880228431388341528651327442810715132904153545306402981337422584618744275636426944944747746625999385077804186247567252297664756898795966455040982097081260565957146845408234170241604201127512455183626235489130623551077792249956676781161914755894829605010398852672915858778253970858888177889263831732990171418384806929441721058033902165650299391218018217450346165241969932724700508759792092968682052181720495506121459233685970384741097056560432994846861738662290753162959337723097012549674790953397646860822529276726638042067555248198962724638015484290195285246797314210822749192419092498279664641520371348609492147507193839877572869744769553054367504019944809999569674737047369889933163765975540755723703266445132962076348532176282890000255983200676965223344553192772323478462230650113915334762577622927334515823761679289484136382144419706304650026499250466617298792295302444811220889559915179240650833502959549140537786168367920085402277649137826711543743185672723880341741271312825690700168748489298269366882129801282641911873121955722332837502656738756754659335020323652187980625367062684593608613326698407123268914660826103187094162694294166191526865829105963090316965632948169421332200450292346220737399204643031968078948294345887221764667812842191564777871811053432742731484757888585527834625123448817146976284494539751775532295819859110311167487636818594284493910145574693318102891536177120840874509489853437106374641869434103016400168933206502066699953176546736896114150408216785898698362570345940615920836922556317974338820685983420607604931869498872248573473310408158749859868779330010085846019213375204120613076747340459627078507699986324186508489023086094564857215526700033135590726562925098599669723404998551220594834846981620566095883184184425469478357057222592313379786072216478269495529071487324209925337238402963365333967453280646759806363691481848464460174066527590034212120710663616474098443516978947740663122708133838992921719024038397485950957472203638178963678374844551905113082183612377202796103480263108397323055829341324611916931288657975565459335973959295573409977131093456701153347923408678415824719041083001945457294350496630341788053450383777973877076831089128080652164621644418545743873342253947989954555981877905375594199853429136976898521778537094008666451227937215041805396510769228865621469240806161210894835308909085659786696654740370768306000322772511591915417148264881683062268523926122475860856461265928815757995049755960496455272433404099360340210604306790324583628356231074287794584245873243334975252372193724041438876761604611544351637630333869507670371499179948096602537400897545062993169427513182557134489295251020353460200800053490152280981104324226320976798630252658916609213643639986516700923485088985361523025770281048621242881388223665074584279717271391958031737026361930124449275846583971899696802629352918839749983292744349916268663622740756801294822003605441388021678140445187156244584060184603469210068617746073884840973232948266854827754174359663562255294870837276077114338432136276859829348239117129546068022836345089517698838688428920943086629426073786361839094048600679633943804181007747448813325133165227393778032947854760563650795068709092737968576327216330514489818851249827877235825820343056158163480701036026877085095847979258546877406447019138547648944019037718172039182808886411270088775458274617838250904254624712008189523850514362219566339417848389929066900135838738118422837131354010454268762251336352313722329511145382965292997920720979470676666687734667145753334559327474186636173134961451144688983780213211309839955395761563688664726384519831817965900951314574277287995825573683762751673710476683479045989440057025817404326022548537127340109290220832294654342311432578237884556828824983486373807263416138934505051520438716001048210276529044828727110329868086781673169951810513795910831912744218037030659518134884041882883884650004212012941494716321636335751711770481706980310694394836786931802919681999164603503712951662185126864239988935531344255911544263892171930313786461843563518405337985237837994380115773691972547260429966668214552885868462226236766878965963690114076004093105007075682849932777871014965742279680610699954299405823486071974812618707925496963536754187623853581000799187063109974089602579689921190456524080785220161498752401791741024043130347720922183283782021749113870271864736833932687958267587105655256674386579722119423182059390888993292485020136078442553591279995943604335771495265540733675263218898420328148464496100438992665519134201008030218063340219031383910060514641984598511783252566979186042298267969558780258421894989634820196233579975104915207168034173703597128217238615789610551420148144234220128296548685666584830709559401680647694223107857208058040288250513950853872566230056571240472595874086615428369929603299817234311760873904435101210558803524484881059401879270187450964255384064839312464027643188690224573721764998340899004827821762336068844849399056597570156136257197950411857279631352537527846916361350538862117262005545200038874964097079840972916316455750790310729229504051893012511732517808186074768189156393252278689012462006482865952147476592558295036911162142860214160323900808930105009082292089596273525131006246857954279475421689569065108663939435099401343583979391416833575721712121247308807781343241484192260096405753112211449842071884762800788968458411514752711398444113709284923318152919829548392201815738409470386801545645544779960064196387702684813322049268601672547270746205549585128288930389291900550813475572631588661149977479564850570362319507442872392048432198967323319633075645542844709073756288442893467141681146537463197967182402477920807431785746215059906375018421985703999213831795776346355454694553691458383668582450217300873507782657766490181840846854634675548984945685327405669262857616852137857180485235790339195152716303225657526652309804533746577741920912035939434151191424457596440653525012985620975452330033431943775084961976223469180004080698922769074984341913993237704304132587832018926494679011613010031105965186588971605737805613810345276276000687534923425866462071412476086743187311684829663477986634767665629610893890023962432026668846434249627713219229501833610615426259030458388260595659648467033390683157422122780292366726334031493976589683172358575815544955700327149326217298677213909675625911751753498902038471893664592216350987318886340839632202290204226736154901694593020378354450939200812504706799528605312328984271131611553779348191244789706107806226774659274555631468138546699116976952155239323370111620868056740284636647855481138431041637077519181689926909939436078387122327699017836774408059304507281889094465649608029069888839476618536791244294919998987971798037759665945052112142153453357693321144750132112736843173747535982475057334507808077995328204635831741743699466196650886532530155969903212198641377380110685510056146323596703140196617853287529200333820710767471812422195007867835460351484079850598548128848279679516119551956509049708382907623946598682758362828020691644887007969046671156768324782929049808881196360123371704865681620113545447657444974221777175256795865743149714080595117990398870238711334433539225188365136491021793040763533849555128713822268547843508043868438929989072335869171733812615190661155672896616287428384182618848424317083943529709511913736138755091376662407240603049299876937079143786639501894583236842713172342830588887177650130604902554792186181622717665334409881919197446292770218898441013281703065008117117262349373902762381156055169022955001040745701396740684223226694878697183975975732398257436939177967298579149047709322301661604280925133209886632278443838764086194467170944335861420563476817368295132398959001360433621855730207394942141525098033307723838712222057536411871249788991916142518094783450764938278852691510174523784786677534199766610197587203615079480640714798879778397641998808929941072985659604391302299190985790257621373835293807351824750994267511713372697361478163100093339299812111853904978466550163206247421658360349351126177246727729113479926970377997930175149918559915090455643453269175643133689156453852609119720514803390011758752349694847318752763491444356238843961442686215069072115857822251481046392828184541522850019234510398270640921539427611947445248530523363639663841797148100425906689385587671610814309683519234579016261857613594451430320304849952178471080837806842468155323928964282988084995521509161923176499687653492147431519248610435863401757732543932135397765596719638012178062302133435091271480835977545846333801329906401621389183587434865064251878302016397816038999246839091602792321847421785864589364366016138642757084786711414422897453744842103395423675332351468986432643248709897128958843262070773700974026452433337448948154365127773174941110767680536272786533298950233849062488711057217839694466891994398275042599654664005229207678554918274182527386860499100441932969705261504167816133814170570183116699511820907409574018255437363485143872942613025379676228167311444593537018573530096975076275126202757725725682702722069025877395030110154821291645042933828307873687427066752517413984545891418890177988102497398775949867985754643328512073105591663699119023405910114366161197303246297463002376725928376643189471951230903185144457013217491128901107369005905724064519185742503194992906078444980796951603296234244033726511185626204084087400676247631424353332760053458173880152445441100095380138492243922205833142179722288494416305962997789750668394445372373740173031697673781136658146018240813222278361845993075069132091976293510675403435719483189495892989827527074256836694546815625853838939824034380023236518526608762110874317795831049881273477740127260039348773739579580078052144873197257220494563952030945266255676813626428746848824344682719862400310131294732146052669555598920288682105659171371207907959116639186952273347481004813936601481203703329082019980186114910221570442714228881325158967785775263135686668921551449154049951223729685967152200750257765149831765089919590685494753199125665582290339786545925007348808829762223559444494172706958109382610229017369655300903154727490786752000784862219749596277481634305008867643330217366663587654513207590148981703541303555400749260150879329741283434205737969634116492259777549905227419761409212054894596620062379098294532307011884371056372374242956399131375980409475377987296062774606519023748553592746669506535895524056750174546742275303502021989115487523027384393607054004387977376299808257944271717492300779213416702403724566927476854870690810538670733169123757818322448873989296054177763556451022061743481950137511397807875617317642303594824426972761757172045030480614305021501333840841819985159400264849539100393711163909297537817898291198877051086141881532400715053847560114245597922607599101940244950292037075730914556216449005810468744797859703677188874640455812038669072458623644860641365118938580100289143697281498788249635455009480052469432057128295532506446341422379736674628218685715698359437979781635609833622531963270313902453117585991620557472986009043804037414511959186908540036437756900612635715270307289290171307409561957531094798630032560801851280023838305036234212081384243945679549149937352207045546132373838153660021237998327999290559953829516182159153912984780938489052743388653424719512665750920500296328901108262752580946436962501928558668859123434406013168167173608953958136090475321296698856331243382514416511577113481569607881816887367897104201766905789914878309576109341039686131977392025407510101806324679086660655540351652597598841179773550457054884031064645852199165654523569297677742993184732210741965603448638260336802558454203320334714027618794183032171174245354391196572615049203193785938409611310054270704068775805582786737396304636844702804661085843305516644320766906052953764380043961807512609404818014328771859452832600607638848225738156490077296313161795194442449619440905834447756106643159439599426510887779627286316280167603478401068786081501372678779101024637734711918195045848056066806582033916984113949412511386549599716878003442607315719577697968740704052799619516521008137050220645101626277393667748491192382553218827809488581170619524001054239720270894489023748336132633996321654414050435909943272600404479636053243636869230639694236196511689820084241483577395774070423617960862892901154177463955381294951805769284263242075186352118635388122004956336909852135002424836839484655801437590149514496580243525715215066475747142988630208786693331041062422316407547473000661007331589520841721592430178661570917411837665339786854264024555200021400131209451979238828873599388530110613247112578711201825295799946199205039376257257764484939900828246568522894053444930267695399832574526968137993555588925714212420870837523767904069737212050487658825030786608745345823921461191882349606422120914049392666768256155554993827303190993539942391034013177244551896488759526353206787678269222701460265967070484761870633235599368872962009930258546632237340267528590981349993600984926074226777884125995051619341087590294215558929070762957328884568047927959341513506431249374068777404666391907892896282406997392491593007678220086089530362525140948275525746411701042625175191872062996843590055427549930909891355304119374340386422505481196864635352087073047041868361853327902460719061208364199934201408219961581022848864077471768488022142685438866082073879742847811527438846520085702605213258670364492921948322072531929234974711812776935633086941076489202327365642460905799138108004446816213013635935380954936721692025523839503752251140493730792489485697911693168385904892209626123904020792678696002270735763529576705164544076813500052061540612588731807660015361799718469902857283305281665381096272888798515711507680403499894601121940094802411525151224192484823180675761723339598535186512486888259209492773558468845249408397129142199381498715515528125355840441564700772738925349013518841733296772800134236087061824599384574311817248880014448515783190881891194234673998636028331938420377558740913276350530752243122195009985799363011824629750634723657417392978818481491106270563873373012812767041962686031159469362028421954670156095758026023079927826533859334863856588276884693932711046943379923646250443728219258636220697489728305186963080060788008064599640177530733715853843340801653426857580728043565095771936288022264818649781540090553560170140156917545934443640187920134850298930402900217458739196294921066805209926791011239945230462822150638599454893188777787470869851693402821575122772719161562033878318305908576776925098103013018453876643731601528529549624790777838840173210480502758090631710846588256449682368739237695006770950488951077875489427346435515339561145295464184970622253648021352903621884521893050776414479469116698979216587574840679862321045940611498379930510201444047988701826874805866790003675675765035824134493063619333061463861999488786676685069168757748559610213371509094428168212354950836470701439916311129264399731984243105400810116559609070580210210925392328992443516459722599844290155185723560632360167556395160369152497514661617621908410550066393998547393031409433834857586445540792731165210449839494182023958575761991821277638662502861074171246479903265927823764504080883544459235476513364176960075709973632938613497801362073125027957431202749018235596206076818415606385721273296916829398942557763690338273274803725346517290259734619943489903780172650850309584199621067486449834377549363169058800850309181282698493602069245555166154146980729295522629887394760478284952607747098576079551487544530436444670769287573316922746088899369202231694733162909938536339218445839694863449560588644658960423742875951272219406095424935836480216943163349108365768942930751692058946407056357237678594293922938271697352747683799678583219685091581462666809584776330947698031831296469288646618950360419528385746546646143893993889880309318902304046392111097321558180400028300170015854241142299205860363744166898982668770520907492768295894979244227572979068058201796842014406487807601916562298662197881080512142718555696120413154187289098680307161052249177125947233698203143847857772697132035605217665074426962974752670529774909015018625028052386850964051809193117751087473523906019804267817614772789067462797292025698269505818223788561733604114732429345609608328163280530082874769972319708138158205080440589208561830930174672574419217214880282263913323478822992267874341376419394912901105375800475437735313915042933993126915456752881403596403817409189143596051737621928953626510294445866646325216088272820188253016459546241090008039418467976411897428745126234338654720694486968504139016179165391761811881512623405232540168335307358990158222152234665445043961655949885830058189827836032349081212895572140861849505387560136492957849779347896302122542746322449485701435421720962871985773979801723096305636146928352884649680500943174709245509441451135750008157632616799787921520711867299126818016019998309201110876050183710361805144838429333651695881076232365358559036540274831510756354510621329340662997460718407459950673786766899295859993948904931112075164068953337370627114903949161510117560543594669969508437314108828107505742858522706929721463764404791001114811174740691059427302199396850120929328803990097377040654205745701413198973224953846222810581113521631081134828291162419804497601711408183822858633069345206232628062328899426433264916638009449290498482769002884895571800380830158030030984068763367868737138984956948409672135684574949627911444909451036001011623363969842166634985324224838142838473385086256330814060903342458886951876823182747467320397945819952101565536524565848605682996387781067482801584799532672719130889610883218272762989077250507362005956029264860801523334452333253827610411570793515520065141289719657730497877116670683475867364461530215886863707999984909528325852378847240088084309021530885041462955824401898139645004106330017847048596790096390860796107358051478793043156535851347899896516127202811883263766572041976116569986382982845384020722122667468984093857366471129889896431437513254723414855139245958240989286770832934717439261455119497206408862922206142748380896615945338468485166044599450526766246466797406481172617927824650614237356261290312351648511126612204068681623119779055779309918765014128133407029944506900984239478489250225300330280017599053258302083567442164879791119306442685452683884223598972207114201171838334162193745408240653339451687965430692576193185155690247219908614524473360505576538730263299250446570206894655390770732498421985878232407882303877859291585014610678597682048402288784423302032742125479758695975934416331763257198677978846055832350019980543209707126655015946146271271616660536968905854500357208586801018481283344133492709364064239571140946750093415709232260321263782889542687325761593426348591687369405846828555451554139777185631196821153374778097882776759776970995691379495221083499620105895679601513063540847399072232297807443683505222086058927215271785050322298559438514331394402614877628340514852362150314610289172882689101662975388753925924235092424796872217054519238265126559540790084105231051221500436647650010769063119576477188643837501439656616272142865178189190065184648360508265156272159255180649176660191845673587994405417013105122230642330993441047878931617037757683384665921009803435083766604154751385836648141075224745581296011739116428111142445983466873471912162009815111098629738337162276635808463373365277828987049413611205413796979912867390349300407901760157562400491277288438280565695794410537607271433242740201698535582224745184785101026886835106006576182455671791731252855134535376089402978245446515452208698380530448798988477552193561256096853375550509529704965901042370037679316030822740933147863205851901251563971866063902450053988103119046097877622024185755945336590292200144640602076762374984394775622411863708923589408862656219763137933059469568461815041105776890760556023463304800500248103060484802901090277345469633592139475398588799142587504603855186656491394178864716855238971244366375935113778535169119925133760801488612068968051595131005128407256617474052534646361228994859262640550737590939657334070902797259167531529670874424428202010217024402476207019933702517522253643577081767089781183101343741802991308077846878058484682183108724908232113615972923993567354415790081788141982490858928762354976716748681313582913144821972850487226121858439164045075813129929807560249109199843242449257744478564904270906871853525347660554025460690176565553689474603194864793430114825265485935063254575418877969899489476403988982436873822962566436277023676379645770978827628344583094568164395127863437119994233180268058652428691192505730601810690114868355424896934293027692206524998025619552453464996725455292914795265638141593273522433618469705204371767895308729442074050204650673356286931070435907436524520397275932168150632223983709824501809087562622848520690026613296628212871640908476311545036498563456705456748570603477542038697238158181404580717498917138723879900661342433180255886907626034190654418853443917238913442164214677694830943404811353446755377584733560053860936043113625917420887563593580664775980758565543619232461571430658579739156202004697161205760894791453779188945916813410752007871443249671736477092910562543882999493918591550875754248216445845120860618957435166594946149675271940796601733554772783638947834357625311430944422540108613032490682989813198798945640888319413783872059537316233671775793341888517307977152244119244468643039879172564227873437427079891111230914950437422443190522156914566431075175929617479078868006438891855918438209187663012733318751468027553416186456566084190899849833572460043881649455413896579179435181109594750758858555911146825993919284648965732011744349980958070150859310368215939641360788999277886871941163295873330404127859443787186273923626648763762206680185047520854957255215900283555565947989604172224562961262185581982962971016903756227940822131651735229935632387495431852597109819838549061375687927690718088222598490282373042926782379955716295611749805155097482840589341650451712263933100823602501251843200236686730148227487927136177006823099615709750660965489369610052177624476355888120693052457764082209229176579831713689855908928404958900991041382238143034455710647777159158023573805986667380374212741271350541619567284774995284225758762523773633327496027075701557396234075973006600918270574324175243811724983419251933258625380586254549003643069730232515452967905790585442951892783682937471220306360300753682678200739957207870862214714066039597306740238586282804939678812650226563216327974887897612692533425178798810779715909236196888680284436457217649849737774583203349061054105696271370055145731721235413038498260790381139984240455432585581510819628487028286179013658762076123310088233549399662663356744175713358037373548075517049725418599038378027344099338587278685931913121052691050314742238992250303586173040105388815841550518319706094064386880400569357303025220235257232562229297070870303671279206011639196892623788178615053084195117144400340850308201938862580245724718565324584892711560607447732415799996939466914447282936034490249718106640059563764348438619089240843331386493334139319924311433562418344556895695306017609033952674248451017576534109128747014430501867676236262091566965707301061712858424512770402825712017748103114721232838584361687453349557601399284704116344529019831579672613707031916617572809193143420564024401174358752637825881840053552735584589108900830813737721454256102701015236423641658487702347609731417811223935907305699039743875067228155326516392503153410289950614969633226521070230013452433338596868997272220227918168259705119335214341289552942190845652706604499514152270035513787270915046176300678551488804303481819552276728469835229762547268660060161921870585672719495873078355302965414518717694120480248906526077268324176837770806073879198256993070092241889447314603429722891217289618199113196112123259234478393059367203278186235318359093099026486272771539383531916723231178671870881500304637512909548563028188299306418527552820957872517447786145697701990087916173463282307511728071102809428061095299935218492722952174597388847671508097457659777398715132527736532406824133557623330325970589952746238217860043916591997981175203995217211767182824407237845772363975102649857326180565211961901803244487969677263841821461477102536434466826888706810957023264273469958152353214711414793904150783034551363290456354325193275716727654339241190474594901484760355409886567910624644278270748049352203731217208225932265786417072910771977426302377673435696803773186332487482121656959587775770192877891950644986975279331015618523959234927509170632076180380006107620235591266599399413360450369392249583406075902128308589842128388900228700502779184889872748623659295748548671422685838712747090662455671497873439342875490979198087305240605112507636418207897623671331589047548299058549079212027125874086520982689096919333201045071451557314658767152046873169607693513796308817299935895142521456991391137365094183925679216121969661443797468417386847820265788006625932006810563273032195849186157563344299230854979236729758426649738278844572516185612109713306060771191085537704348736209181053026245082552995526872173502902245053464890574668074624900382991654224830333555130329193705772802681548400461308674438136325681187661481344597467391845241995094645453530717913861165331571913473419588002286324244970634850709522445499239544196926989920156107798071365076242944886246536353184977919385732881270285457330175432964730379532639267047179471155861083511427996609378282089970491186260088207296659692776804530428062936340398026579520474713721091458936253225403037742151575088365877232806221878986147525518822526615168194383574747333701556602352136492620509697447180589487077303000114541887228389924100842314675211493059085858652925789690514878858428079267696702107669802632164031510273625307905188607054339141123566142037921823167872731038835441035825643320490873847113496222949795280062821144145810205293338225916579551071227602100215456459032592962986626224323194651050888598596929297912646056865678469103228503923590650666767574029774712868709865377383733167387351359776577112474821330300433427762188349012388643847046169607262348265897191101571614884929000293306659116501861339775581594315910833263085088937773952309073614644154235950726208545883597763194814074598079768540480752422428985299321096299577602045117945668488987840569502376015986945565121039036139435567419008090839899717317893974915799686453660504988729791145417044093945901161258239456895911779951563825099527556061815108284775039845725717723277998102451794833748255787615666583631772859404287479154936130694585165062415980184539845468723678730366657905943314722564883064656179064085794215295535268397622699522091091632098617586189403905902749476378026247148568648067116066642372363899491191241734110283487622512964882062130719474730627867173362829841001758961442222291387061847698679501638046839619576798056079041267708292523074216505010804501469561788353793233837295955871207006935644164561401910394617049175012407201712133146117202145526393930194016552018136858648274223538447195904681233185509180868605311337434875238356440864196804581931355830449567153175143187098607182163802410861063909714587016116628295312184343032218668727802652452798370020062909957448107480457493931092290536970087899995747318153092568096557565273509625517766036992513430816761892686071728220721677780606396473555258628192320113820316754853501187345637172329381388656577652208856791018322505328217603900652225649005399873247011972452225184895819950289599344483581191699838558425646202140665758706595932957437689020387243037383988549119599016229514383823459591432090981655006149775642920734496841454358147272987507373081265200852909089240926782547302253616436580967247695222274578101435064852091528238609642060131653808025608466028432365913082841491269416608324392526247549767261045109942331998684970476580333920494387505400436000499193486962961148680129339567075863935639284757986887958421841892463124329668554318365847693368492940232371133965089534253771478699888157204431287497142441634662850973643825753665268091144895550616442289566480988445338560867146591624177445276856371450515800156302308364981773494489777584371490503579028069525727161061149188838869429567058067791273549603868905163665068161228087458910320585763678002304909036521220466214374455967820254947972668761492909817972190776523339861572388860239039370202919359276698665180323752695552315516524609430622318448427750592840029085158030496638309475051521151136429938596785432044700710692301976348995738936324824435002975072546968841048789617812459355149561050055859572663887578617000704290928162058870160267193613999426694511605708964899692757590719028928490984875915075369402133574014724264551823560756594721142002334134980290281664370386272406622784403160042071981409124928221487265001728281681479575318308068998013969795464434806518407169188982758452729874444935346947176945513759104577834895836881593357666129615447736455233388982509356201333839610779234657335691455393987071024139048897606664127555628162927550761176958989689286553881927789869020611868317265547299670341892684023863020803632305295525244145427034402251987805316766371368764154424814112093765058877020677780695001161018434702931587218972956727977452063537832747815607625573751158685649592269208781099313187024358263769138551559520244214360177100580619998127001325609594373031136401584234299205257625489791744410791461454458083553682414113998586198803327741354409042572206398212736033532993030081222118310177230669484265333460296058861637865364842841465511864630715222032092045156082925498458217741913558068873932711900364004632516081041032624469519764395279528420368550222464048284288131419691982265914992146249629237109351203241419607935511054197902312721188019656652868225820019254898300518155855107889195542439914322211351822423939618555437451574199218901213122144636598675751683294738897695113620487432803081425361775996301497339265965318455381944183117928387988319081732545382435312936321185148316423126299613221239631125796351658725615808835132769880928912909303470890824840578290512124387773176433061485171568359464205226313438668732096593488300968342847166184589516018478328247011726674085353396091176839196081040585914973113372915428221292709250497478552433108121554804585114401115107484657763001659889041795709593729460242311241673610807624536211722944104918011868207560152921583210678927921263618991816121560211596250477581397482703641128708174768529698732509551233981108076108363774612276503193264903326123832210283640657425460660446817256566251237624894425439515535831725440874265317058916138580596936809952656572695026967816884572318205999908035559333573901785431556686975623714813314636706466915571964496211521899290560526249024244520612321196918048239142526034840421532932637377940689204296997661834786125048901028416319874527346008043337757133834221786869304764803331525077159222748644762364141634306376438484450568124830355329721938961950449013515962542967794959703908181705038230104520810712229392519823066310086397718730246267201494557556627908506169082210902851124520453139850342490360986469219273060365947278767734555476346561905291949124801159465644364998177814779986587408253161046037825641329446262614337244574259381254133455602125621078924434657662625017665185849811212850081969315251649591829810264935094331569852762748925206468223786825896628940979250154334950584376114789408358622598462537075286633616624740326060567732536889273366964167838692891251461450067148145398655286265545840710041263234195143468017579905976409422193787641208406458390627500239287405806866104866620343123244650793694053585011458532058458505880583212763102764865782753130119564788881578411570697476831537351293532198979274098274692051107408796992161265320217150410303929991664992503768255271758877940786790053508236875744616874709836121983715298037850141216980163156637656607823348074053486473078802652715274944899203160079311993719806074898316857783290092931986842568009843887384366899704916785988744765092303606191226114647712851771584703524619776233654460649372467242420320432595386202661914043600142234082769426542534369529349093945017331797202278125542729619488794455220133282790684794932398388918008440363665065442731397094925423171109491941486766720727969623174699150578387602454430060310679539316224737967489341171218683736327885156692149098776868264108307061741787800605255667981192091114144541901229928250935595445088296831089209860080700495752227659556995647924715491861109571444249036021621648279176249027695743431224655242448129683303982967214918308614764824753410213839769859912249294966671827760930379051559507812672148090996665094739936924367945778649706254844259379129966499333810127257332739925817253801016847184567827601630892064659792992759706069870607028258284855432362363042971038180326230225935315022799712790944370317499534840844105950381074772515916938830370764470932694075627042097952730608548565925546332515748310246844923853817173436582699159862589632136941794913133822830849473336429586676243666693553866095476326441933790262760422677650219671718072225289936273867697668678342063423142804237439247515703567853472063781861869774443265940179676686812140193826076552067869366868651193399851402256846916435806217028042244406706003883406695826505857786433037986314397246859028323118995165361045036382290287936793518946015200004547082800722012251297599670911870915584918129954588314485409353543157331181637808426699763436177690391319747457539826814532829619109237492938825156212338469372383048992069105745088092576051193085305588185221898888253624865400451042016516853233536955878883851973248661581180997915479637827860828670249088283190955866540730745581750528380887225536392544450537895123330334482677485789940793676473858925299560161797335431299219103568005456652697506061744479929549236798535005853647036624255424486086294272494755010189403407388504660506895521330592203158006724227771100962586813779086872226977662680943940286884741899466023252222271568656347893099198767314318915359653624077852812637106830460722782230911424782786989857519922468484753943208846008301366369516575123283142753909925380043107475125331964458202300179041729677054505819098242784686583342697793979814522934476373545406414980806792907340395381191776138148185345104189499920129957663610556163991717684517244311842510937972591403015830457912670903867534049587907682632058550274686835082889642115180498807704702036979067212207387377531697796246396876028502767516026981136168068937498008849864669510194906922860675228832893672911803676976488063256252951756279704764405720782611122480995690799241621949754136155500383224385127115031943045991068971192830477475609451799937534664701096131516021858566108615253325488788015573320620029345693348960136168839338524542536078313223091799207748242668990493816652635687741125889830855285675335696113688343597260448768088567793877688595781211092277705700376158436602242557288387338710405714968075680347704988871608954936725608130499552296615141699781075585420618480584792035692803612211586889748193711394914569144354364811529280190226048573789110283669616588051721438056270098970597944933029112586967721724690422426848785158099064466691637474931237147510886429815742398962681871291084064541903697730293540948467242471040193758787945356510809249690577061053300340065614689391593735206213040534555523707203364721971009999826074513298653047304397065180954148096768388043049626062090867692126131156374441794504682400004118226400953530227049359044993073879277009908166761484110762886038155644571135855732960826910849490355412685027520962585153911733693519481428467398617513280345006173570711319259434094965434204675442405975595061285277862814542223423570106285240183211719791550790377340939326559643422560404525834613344653474954347116921247884948889577109294428067169327465973195082899575828845419005186200065586283836149994216158014658653017914539530070578718942931063154029283232257476955373405744429372103511606366338429301019598492240870644287259848136876081696629285478248749725510781560608475168322538485468639177596679525722759633043263211511533798832554659903095020236226574160266340425260076528304731853833669121088700114462954158356239081014036133876658808761033863185188249541404705574039327967545827524656697996222864208997463049268030827275285165406377971804777007202343111254100532768282906817411869947187527276909972077148338932136597334807905894611655795489632296971971416659970761157410348757496929501851163781097253424928070710784534569309501605312716633300577919585571726119602016286689114327115921732647288621986151623337444478472586079601501267952306488037533484971819237357912488891909583069770907461215509144870627090598487756474632985975752678003791737839513185174969980043892165215504555091599910415261878408432659233400670278676340960267871758042699314861885192982162023065621472813597884280220566856004082028141858903037887053656068950879142121889926952634993686449982234809212748140819421081319983026821251795701600418419852677474601001637811435128763892968556238611666291603641811732084278291376965246870162206283717016669768866520020294181132582335001686141545742738759212847367064643124026704767283101578666806812656374941753689619425250370609191439730978838002350489318744041729632489854863874555329213544568148717613965484508632885639876439137339938611583487969654772979641364878997440638052581204941278621686277136893062964314167329120855909547677215664286328121945285418827479115399495253747328055093896840259866595616594486764091420584008671973349543185612102016382309406320559654610746142117903614082605625862666101231125415272494835529572313812127116253689297313863519643325334114562903574451750523778168840094537909510270791707419254801642778841513242286358623716269381130015608585963616280732967875728731795981968751944047870939479032263108167600934131294326086456955226714695766719339192848435854701931773827700836216133176305958679239386431012060870513770566033506936184726263692645600307504860536734843695309966109808791715729347754579371433930456455166227085290517885679717195238469560747315253688935499739802924014401430298082841889372435189991645905807373767710438614570244273733339264510189445626627785647674127582607674479621620704041727685769403213131021480846667517705118509053946137026244606303807516159145163997087130143033868269608095073191485538821429546412787219681341216193533697146327914487048562091857597547361442795630204101450883276200917215261735980469865351450522910373043538760514187718573415639167957091912005499681122713363055279179346448708533397297775194332070365848330789780288579084763229728328185977686689924873882477937420113844798962525684833836502069459335332713930147247246095406732907646653357097279884161140590333527360744140740846190780355721869767371935663923057949992756153884655357418351360864307358659720691549964649160866667478631610701296445425111782916745286003924376916414263844747354131495348785512800642341726495174026254368556690181706744238953239656024725664578839082597733171936996121632460348661906758391746485686951156244232106584609412983425012358731975999267366752459024246961443675514142912314106022700891105763317417631694919235354987288174710100579540053763970618475713234892571230406305916987821934697771363336504096727862080952005985964262162037625667674215731495132278352393825077322318291971705751044978602839249640912427800143194165646432328610078783456669983702498152856641468683903349487358550602294811306753644658878614488033883273240474361985924614415430739882793180698960390979187338960975379874007250849362516574605279884041674451083789888443040643646028662120642482434320783911218623382624960602834953743339177753014059514372848943630245403498821252272961226109046209882434465481438582741352718680257061412126570719345608217915990862743225566769234894813514475269677108363433081824623623594749994438471620713454770025571498226896799349095951544149280040238376111597218853901172044455678346398817382063136158651896300216352784911021994102983749247510284743573354503127120320878660410070064462973466655687510775618334192950169926678317213202694443535904815146060961492152823120658293115037433470245790115935526118946345008227276986702939038724550717665028440403773884823102450484267470579140231237741271509200192744991942775119793836378127519568533126844328345763789537785245814059168521564069996816886957624393328251792697835287514115529471850915346607844961995180686865408909021027072920657369758608607916081246423755084073805764855575651565747101503765146780493785647498324366904649156636121696377812731013449206254955681263091174349611816390318928371061550383164740019874522114322295700533910035697090882636980756795913294696600648939492753253493721789415292030735969338810783731589037515097935070807781658015131417395267507443612033424087404762837861164111813471478807293112009719986361655963331734121734632690242103544828341300780940401289696676271464056940827018742615033545269114787530341625579143100066974675217969005057435865561905325835046887723865430578636566278650290881354702467424876739928997167663503502573242198077173399953689214600065641101639919329898321592822283419724973002762434857963266819116091327290274781438824711950986503403883062040411522862018180570575988460587169559142296305012092836517009417401399541976232249562166552536295590859933125477558202849023488423813930130674891969381126882422211058983118637976681900040948795676103003360342931748133528730890622289423965055532130239658614249498841243485865040269965266789371485378972367739857703876727086581941280968915415116136080940945960762767024081553075342290402586937198554013028043383277726363063897348516784103063218061640721479986127132502185910790944493161738395130322313668246778712832077510913872958153465438101513690842432763915926457736715958667389289862062362946334897397786583063191522793163752452392048770211766790959106821603064704804021070006019227200683138599554583037063239652745850680489032507684422785742972658904553188244388785649520366825313483709631930336205727697350854568058708057375190213462553069552466978009902274953783254066184500053524016800694660080603880708171052558677654393752999981057462784108480873623266643082002876154335941414611694802541504964205997661481734521794567627614432487425477300141333968315602389191992103880437469660518086304074247796179438462945466689778617177036131094149949881423841077513906067529235176990223506483198982875691079342094203282233062287463518887333998429857721446320258686480047953258831199147537691957401726393768540307529081928237415433437999331541836952091169215486693028216919865382373359163529943645236961204981504399374668626048027814087944697034633562504228916103648091704105646416042568530610003688869606663848674525672755367492633220835247927063739118880376464869785239582816040214594872754755780958188567191758941270918268907332488653389687289243750580886512209802449534954333185788096715251212613806104161052557455161471194115378311180455993507757635515227204065076216727086271846809909953207269971613857047830092754524918713537460632167553435893455392966013897686264061478565328933796965796929803356020379622431443303093110768420714272263867725846096056125366233909847661139969267686062567725843514592923256079367551613434211571422632719763314842222945172058761168451610036014523251343810655351214759238333403125187244181843034027395328028986144568729365240853470714014305562582226420673960506514212711288164023057179921359928148676043284037263117236631392840919041414845119860004641505100566380603427412645717315954063213514631103131867935557151200745161220847057341072052737483210609719932912954724970129421769552851812896013074460803886675533373688401855608522463358189773676746915019142389283178030469474623670126644650048680097339421404600897518228884567726766189945594468408752281617450483971267629120892951786077169488656086768258861994531877760092196635075496871085283928420482672180254938491688627746830579823734842497181733273143386383766941339433046659415921515653850480481468469080134215700173367791719943357489968512408727569300352981333158349496424377194441117344167618479076691622233288521245892259411228005989804419186872257532633712615297732796968186451089639584934434947496965016658927736690304635976950262529236161782990918477665554416672891700958247574522889240695442354943398763205678815964146674522181100972851644805567058754390332923305588657513229877902662520456487489949567324501407252556846153414148034962067580930635780673259381427891613532123700275277282280493289086519803855588954666419400459598568241063104714039110062127464764631954663402266095032606797398841093121410859415198040293323202005949182573604764461001840153758759853375456858570258138561616856365895880153921917082111305200345187449629135272352498226937830603743507620560274049546193173051671447887550941369685779808302507290393526022762508778496957690411106225058437590460666781594432463382382456708110156723108395417226024022598520715280607255121644130958003214479975476809203515559120943823214478969486132772378682405691840599235702547005317194657233643631807944399107452325270531751740413465316465961453633988037651810232593549467912632751398935588238631965189113721893113630068005798056768793016128730960951766957925685678834280116538874689310671904100273644415323103035006567224103265671274469180152798443614131626138221779984339164027459028052188905724062069287274090180017359244924681848881260001062541861272152346199167900889482206418346252616132308900465781041530943288771340334696794001158068154697285120635865077016988669721693020687690055317018064534855007105530719160816026252721767534405290062017585650292759116291327362465622333409044840942945579282869401275106213052912672900019165455391577968955233614607251809068108129102747981582765632012632844543642688587371460000957142596330909079637262280357928123882997565980773625459735495210074540126015646576013935833704403751253952698602554338865413805297069187370684001356881385533491976324082843350692801795432710915706011681553338164173396520152204562643804828649494183817285561795270171660211410909462377848407516635203443973936251830074295866329976563365022589054435059991633284123004663416305727044330780513590756883435244306702149342074152103028546162357564858227183313307229322911730436177932547117802298181555043144517922574797295276839019644720313791948051462394692074234482542023687654286579609683765403743033799835020712097417023477668901086505210611346556838192887058186217213103171648244762594671870608521829933229944472261904221800351448688947680971824798435648002774351766112276934145166620396707502131791844450698280828528138491417069200972889601475527720650528816681529399539310757652849996532426554915830968561616653983058135261333879500651599008376283486587608958412592220440658308518842689203398649597621222978288174469213628346676514877893076617852860791529436979661868883102155720554569046842413102285569493348878665663466589740499706480816275871553796637997373705249265933660955993257281998404428545028817765343207480904761536637972726510731341577111682754023591061734698060084518984772532700354873893857818804572754322516712356034692715596168285986669296290262748473344432614593109756527656152184203101088913954130295386167114692359747628872741362093669810575901721440009597323677128703784946333592433361183488051405119441591977892380102919216636859113173483191123388600234273657855509495088787898174409967520781487954669672121252429829118071657602178925782348990179620716251079532675039082596258932924881831692574827099047563326400516642358717995662203724846873220065787584254334932478705691834438461717583780183956836086198694557067680828080679164326096775610582782616852390549914870803589989238843953867026099096219410205816628878789199894759394531769891548903233116882261392246540216902490450451555203329322631453906954242793388539354124494398301481800770871133004485524750811003563577662459494239130895706454879707414224769710556939575060368597171117322540356920960295071117140275401285256713995976690246527519298735971614776891971614048092278414681364011174304606142761953557286542162311370824265635688691393356490148729184131327970161258480590831417243912613477665981441134210464504785981832565364309133873746824274322224817499997330746392423817476120845038119658979684065859819217593761032902266148644736311909254013047263743058723352936489520292579448704318841238392339072059602740261199895137615742290644225814581661281560404278982866536307949887920296388030738728643649616681594621233397113282537498898135155678351736681257438986325757965696833340653885359474321880926528973491819135450486257465315480740802332116696021832848501317528075288977846166069483595226105055991331726556267640882509343891082667364958115572731460603259683265479139859074544993432510662696223710408586070207811479216830431651116350196670958763564421436983142112645386456937477453195556348530084603070027405171720319348429863383045383227436289075241918817760295091705934472444482145202225146930021478665346139316953107673778580210111037707447926930121822235250916021286930651112945013378369608208653591363568777754535985775209737263306103250943363396822028470845891828322691981834401967844214762572408844655120167331247171952488229405993655442752982494585782875747831263920919162609905977495121855056143642496194754606019141288658874966356168088152660961835842973911784493526367731944605638773922593767734403707850075043785638442330119509274857982152250671884119319640149138394421228644073104718282851060167110229629470088809958166555669847549823361793623269016626125136580733467885724806567916203076379105662153051593334064456625657077110757131561309581018843802304306652742037408132131899462021943011353954672447000104997931432777093811836452863962710018319317947124120611903313433835418755531748390497938294655510129706502294300246806223984401228381320003375234621360179218984704577939143649159159048237042475891410960878243768520244077196613242032270626998673692288048011037463742547611574327420250274995217106481860067867580801683522228002835943109594416060580118061657030928208968777749189240699195815921997861790480121717798282588187338770966635074038521298294200108204186297427076146065963090624897717304096058636138607513073963747920525478226534577490336124880061499465143115588414586409064808212002542308080810394106900175429129306701193643429310268492871843324468609075516491634529799198250757302850225838219871298844426392542922582350277821644517163844787714738890959899897797020192979402988134493653544636922284415977695274041426349265061208334171329370425173415766126297282668659272843859296427028239668679264140581496195661194947415745662673031105649110470765255768158453448944777202141073492851666937165336748853729853658461075513071637061432868348291978003950860488245641372363779334825484948789482667648952543280720738385599658662191696603384098880007212934482818339569190607880274942856286336299376125348592844778187657579212830977385155027753711938242815829118474393666070922761972295074019509693395955286180305371154250471693698871954384145813833808081429962155287605936903086967091545423719132170779058011505541636212816348663922214663207084268905453237322435066249392053686556525073483032829999911601907775655788921097404141854164220857302012120065563716844252995727106362728362527712208273383888665199377159662411605208744238667374230546969469741894067695590674188166899565334925910564667557242040757210556952643541641789339677296123574788949557262924613805053308472170332676948305871556556964029175532546797282730367126901764586917330860008669002179843651681900493992606911470718554620990010535235079919964059371346689316674965576923468629185478151519571967924804871977836168031391272303099206968763695805307211050358596131133758478597177940007910952056474948351567954184158106233823746143527018508041519869451237335174926949832203857099397833943412802275890877945935501369962294371009787450465087512913201670612933531526379271098047277615417984260956492150465927251001986447880791930560952847240633375302470154043478794485741123860205874455677647873645589864513009896221925024411393045850899764503713424096313665847637067187486403886364444375971134931263307632643817249133038129510464555609822485588620676747339990556606313342454883502134281540530479274079682167330337465791267883275861548142372396879790053353203149609655477417293389162982198067955010704479715790570167325026868009427140915873636378508840101091043843728220990283985174865327698841232035258404177162902416132077708349747556019978328357561706668565964441083434361921462358777438232013732509266565833972764160237643917952884236507483675028243513899506179526164603752042165784115199899803402378595499057760980833126237568217656614999904969849241600531202239598593791708881932202963485868686939025238917626449538097874243472133703059434570824205683003515938810671655414416017198084974691734284756109422840012216835304726615320917892337327698213382871675414942215475487833635397681430881235670411543448005980273232839374353381700169830082857657112408745972456197915830053849026463738473512250818576631443387956340558294585795323355202333053665715000219784652111624567384357116261500278810020357478868042170203498811613546807182786847194364816947188369451992026023071764710016096253055445937148446623308077341770907531776695724746439601825052950131690266606327050243960105157435149977205650126157508534917419511262582678498443464420474262400505311717282321959821007151769539911951134291862293337815258340543880334941699294017001260849289997844476306093946669409605594052071536204179274272829691322856351725621272186731719283370525485278116262605789898686755189348807368369939935957352825581167645546330684717964829680250269715848892113884146149365456952166754435084623389081202484737637422505534945885550876134602311749124369152753421671842745484000507717232933438028581902188662035786870985510397838127362661641629632402666596096932571780453581635670940499430812386077669870838584030646386429767140862003799128001039530067708034189192063518395325685313139617446604224155075075636611935072930343222310503872144557944161192788913976981619352903695981381719712471974301563709964035826515390482990020923777992994077823742563689849952913821885222883988221612911824994917665765135819422827705767234090437407744141328210752072523010683465994982849015232831237828856918056153958648019567975162975233723222869144930643006997756482868214734681320829208761341820522165597584697482170961702512225993277977009278584946777572352579825173235019080388440382488288854395116086390102412726342458124060379128727662294884189148991725260371792060860861683828816043484103614741224231522187940277124140812303928843337027564587389182775958964134294071721263392268167780890511797551356810870556540262419418851624040182768318661907880340049550578288896225696025008928646792298445725526753404033216278404530713270593039159824478421989111628919211594110306514766747188130959890032871137521067864213681518520941900742867432996563373084813217260481529511954463514989592332241758272163879551814889703685526723210412809253922104332194036635148900676435962577901502436810541959806295268058116530785725089950136811189161022416939873038914380359911853614999218263107321548541959234860285874625692251436867334473074360781271400082866385929197642252953964692702000271391056050897110254647668720672474726553236320561531216813894800186111800338807447994852265356870446112061971990694421713091560517562666807723765105219553542865765687825081322702685048884198320642857235354202422121747338974319960880398447158949835372610646548545257073285386663893968216874772960147526852219908544364695105193289849379030598956611307458883638835344896344224631534750609956413554145102386267566799657532879045990659532817006257228137516125308274144972357847038128335206601827278702437564368444840574950090466706180839184059809336700108692283396088533784601427034943375823078572267178889315347979573324557331554456580431416370246017393998250713239146988107656958370060512558981709909303187554514051089780271729143553753112462916703209499945277697109821948099782929895921628386086533511430012997829400363088342520765671469614692654390979324458685538880948096670921379387657603763294030430162872610121552696462037017916445792166178141635128437568105190471766489642835864362452485172624016801965843601056502454010621058074568254879357197012245924834035614841134008357492030381964370747425308588161587715651182249225139126607733388663758459758406846145589611307984508733466786781460094102107176514344584664295607950426459292244290475107427275562929479140517901283854987485671152170624872264856743726472604940243164048578510248659250192221540347341627152086842431110157393527951648219820328817864210063279659132270852061603405012903221217222519708474528919052224004556363289444840578897030792726399207345313515889158008534085081528341391471813372917971841321598623189007899213306994214426026783937197156296600229548283009031396564767349944225138429327933240537425989112853825987443105549515040383485841608177976274719300720427440159881076194216518312040439423206760776569948560861456004973113651890477537264493478441113261731377956031605276977833296327600038293584449635932467553601807432156450926483090116247567668093992338292209005919962209386625130576434865976921930968958093097903824241097103435450427275619481449080723402158499473310456152226961653693596649133900177294327736391000368064771322831580023569903197613545945742471659355700238339611006674675763574505242629103960733060308932397608403597412424853571985196485437326902965889200988015328342355814127707189593233672051270942427525596476459602879825583581707403965111948789567179192581124601656743675349630151584047392200620544111753009585214078067254190806212740689148183601321929803400675132017020414045992952206126261336682110752217940254536078348649441431095476589303559510887614339493024887973453106558590724644184490687291204987988387181767841041535576063452602150403886346003320552931882823512339027289942605052762593024628650475832913185358581437613944682675845896220990405172077628959894208495354475754814651739992462247808520040648756599418458854114732165489763812371002426859155979166842451686261150786683433479918930464387300011427510500996473493461752141572218850093255217105640881295902542863833325032491740000307988132012859381977485402732512352287158352255045850615522972281403589563421368837572174162695652471791916508433425527762961165450905587424092119004505255865051574361231406902235207800609624995679020195513024861710630728512200935641620001322823528350909511868039439979654462778721554403279974354991202388618845152071182728824594958770153717900484592108341771381228870524786203169261918859337694807393660132671016999811156698047704031816388336749510577099408739981596390894999958673296448003019883966695191688044948623991051268057178973009725217505480704475678606926459465826135365446875335156694920591318123966401125098853161014806447182986046413495715180860903303910640606758381267265783523089980232827057502948592318187462610432348475015841123924060704134692741229218202786559939952872483745758163300420755651384242627488865631124967574855773074077050111967071263384230505774421208105960258714932233422827986212815750148414028850480682651753049629617233344381346226973735557038093917780916908637050038859039220964126930103521776339738000446605134049317374919850991366744276736193224573033866470293724809983780690301215581412441232245289828438105247053438827423322747935624125160036875849335187768594178820680514741731703011307311173455340784482068920868314088402818179617040935103371441056139284426261921541592517810944807912060933087807950606612251696951320164822052891536311938112642681318871944066502316114186895230633364761209772629839193237394676094796941139182829717787321462906014834895110235609225131026329707959814488160699705083362199755071123948348162863902093343031168575871416189633654497509952328251645781460983999746265324369696768725412698747685611187758244051942418066547766688413420815356696889142332446561978022391576947197858888121895539132999050417347445716823002693349268544533874255477408220191960452238234110539797074463444127516513947005898757763116120708170870845268556561235451123058918090736738210712341258750977084198543513517947895020560551173211212511157507276310710644332181372504407710783352215359394214965999701891121396280417383805602477865710806205899551744583878416855243442233007747332310700895840192840745334244403316928067752120716827809905858098980401549615020120379109558424328113852791343305228781916459901202404774148784094701778112622670080238554309346384173074545443396283380804032600133609252125456082352188770720626583252862636733555614194230694777586561409494484661784050056114617494188284830494141891312670632698397361499879697743403665244966761761303025021763341087474724514227551967502179097990284266312673368922954494537078602644087698713568318294016883322510063409411022629252091382025226501122516096111439032717823260363711150638925228088317009429073492239761795243420707780739079848406532387739406905491124623549924899102508980135390117064419345574473494077561909385106826817993046728015418136242558267265035553082287799542026060258377305629287394437502043452777717219064884190416219514672622270121322903458207058120505774289944178397476914306958124791775155512157305251067437847953625418629832658716694561808227307786929731172188538153947644845119739287244713608047803177387324195645415792058742087401935403044037306981049181416276359404116505422845311922369981478822812056263918533979556945776449132145095480693688523404459729727527420401523818696257885065370576868281732988134739996916187484806315469119589543075672301445901718926966794397517938416505548218701485184554730071871420734305647553815111979342669083270785753671753676947558748108068796695679860032707960492499802591328644586090128585203527277804972929225422325333202070810058574026959915277448648050905064095787099790161152551287425333737031088837435875500180949307357679863720323482555521870450673620852873964892251499690271212999900217756532372481248779572062966127373577063313365990203500145441380694785018351124897207943327315298433293577984872481240286608493318447010638388717569968364621796035846564189115693828082545359649155314079592248849922605528108961001907744603913030914392136638893486573607056522834530069735747526919958249721014897335547796057949871113634980840841068553209844841947995820996634588481248115884749127728878360495751557231842426840541835889815341975566441412734274443323738423960949640074018971968909427804849689843225169863485364022296403091774717152974969347065878141229417482981076257921069529679613091434886129734565484599739843172885991216028234002660039517645887960073043122374815162235444260758493245796991199885542014327593601517797111116468792334032665968538214037315211473019064995174552220641115466974649451620836516411781969791401363139975210451624389034170176128460409862649424877970015548288056536152124076935303295165292942811343405853189166458108121374258174966388059281148968283343960750300930763515884176968094453414897158889821243935680433723236298797710465541348755174184703256214240418300905802755013869481292029831569073031599319578838033686498086963703498535027964709971811200505165496368184527570621144447811230971408869327024780640128771343697814058303394305899652370512060779916950503629189108671720675107103932644112560303786133985983064257944641300390126738096114723448201874058181028522897292607955245545731690210093081338090637487044750510047389279886594397213173075759240448449955571079562141192170040316825878324564455990808426300026582137232476051464060073588402096969668497328719118329631091923456468879332348231404390467903535520450652698718994103274722802734978038447321201973968313174070063054807848617912170438026051768036973723090941723288901978450552967289831823173529485306648931791734464391701823462500669129250634048901392073790462551378911851876775271749118709767673903870245230653804482829978897244076561552695703220552866404642231748840214711742175963424680763877235140165584108828679445286947087174326562632399808656028806608255910571950036407996678171173899628196634807623877180826817908873626257802819889958213673397491144498893903871037070600677828638762705803864019550096670079732324425313935337195359789109694481424904309232013183174235894012996831478582662567862389217318436279978295174624089931551211479768675808542473112658032638610833731325108598001424918067229678578718270546762834698508814957186608708876545328265138728414385864997472166615081455758699203573954369154048043663964425254275611240528549392050758464867089665992864109660408188353283369747424271639427983735784832426686969013331008413673592819537687060127490109907477164117640453005100973733431696985113596508106378679597661904831336012144161758274286654663615408810031029008361445590814305145197448439884452152433879022870110168088226334121812148791488113045558146922829668754789946756881042696871655871814761831734290572619166052789660082465011217104150683411881153751674827783810200417772306647892484026237086649924724570271640035385227171242641856667738141896351523502808059374698573167560607617405047689053147148546126664398156158146689908173730360803467779305070777604094538144782972130472903902928073425450099867696093046754503826932110203748638622263363103071345565078526303094858903814063300023849435489260606544875811737285910103049113218825472838560758300709581022710850043041312734459929310080546717477596905926876190587363331235421444595657086399885582502080197036459444345440980529637339784247086092569979651936384717485770825248128186120000929025764652709769315119190385864533935561660713741677320188578746839603211950690882115876881051142359508670813396672296706172603511347479960783147560945171048829420862871475186403935353273499832832603209079193128390293334348413954528529464845128886415665525745737362142387608253256055082321112201648344799103376891979368479321785517334244945797513263377896428252458122311357365824615742079348040832851203109079780346728577055757928062522965760510759087170971575152703365921279757306922678764944234446072714868916657880444716234956631013717868127785504204257568753960087055297024922963589671327207151069745974232912682220955301534621427053883431129684747505392807361869861275457487621316863155554396802310838282550758314843381594759710446593158175400649091548810569661420518311016275160296808584021244062921067794995320578413524796666132308077129415336983692613182931137208991745237579314475722189264304521365833241858699332456902623695846216423780464050019255351178613219882911993279233276543864581603580879810565672815028536318151301729213420742695681374041908187387623242865594141080227654502972874358758425191371342169878776389629999763821859359238467009212576911813011453773683740829760616268374890514993181951277544122754933250564773867523093060731218682422649029177994819067540687572320629270233152300948813620751583441680619411891883396541115590891259122776357829016798385689294677161667834554036905017044808429248841892381849447265242511351588928469834984993922672125628952679566588016682977590897751344275363199842648760612050025883179971182562255983960576047083165045300998974697908751787132473907343182289907686314406693592879255181450057552669873216738383049337858405923988959069917652962946205009155179769330358784048071433792799147471455131114020939155114383880292337613021692341777142125382486455053668989770474769285948481868741326989457804111128391256459475134258308360475124565844455236912604015578355650159771626216323125527208999887636602189830697119035685879839463185033663888573405860673225055319407703798814315989051676740420499169281751857749767899728413306282729527372539386985867970898805700509168764688004543778790308134239752236506066908532152944630304115120171573768597286074571441361792183806480000621038126567585622639891437658064357258906527307429022273042761681839375291620302146128137232572663750227188236720540635073026980488316880765557589255377063694026499118051213902424148072104561605681584245541645772205495117581133396623392787296196586062560172420878700589362901893705186031601161586864728148888060442341252082464966504770075138815129617094682580568286939679482352677135603548810868939554395473846881634815334443750261494804447451687613482894534582576727380502394891964931835264796785035639354198243504142358020051945732549067204538204287236233073075008870795119072291054693644667113202090710659669738507637064633690885287490223883569659835890646486066416172250471641450714738956236605036736004100837923703051368730161914828775063443875672299963299682930820170702894569025960177888555329075115243074279385140993813139577096073345273789937798042525829730044134682480876208871811719503684549940564783300542854088477029455318368022511557734192813477585039966887199414346964104509780949359028461829889288662051061350841810384409445725364593845858568656191439856812666815415641024714872582576448585205338450108189669250566816137864799828540162733564221701073140639884663991949618588378950472240141368233380452738092395557123136143998894757253470278274011631787695934374152079205086315511751696944395247251933313481719041616671338190498119963325365815254790028635935995070376761066181584906052323612444917582983250486777893566122597357909998639656353822407078022157395431035767368588878808029260448979645013403857100285368603392517743936841453544300612518805105772878267174897677646402619754283304250418982698429211396352824961293415428795961236341065727191119951229540560039696361585892140216971780456668473663144731174750617357976679842860014020702651489342804825906357955853841031823286087092246905355595048288326134542237422946432759444400549436289748256879017356063160169729405379581459145705399802845704272384265546711629245342795534405431161432805511633393606277935571178514366678155471609021588168772569335947144210699493758936258285055878179326831217557051043342337904965833266436054266094538099249001292787307757882795979896830330537067835782105548340271758660799819318857442520138259225747385536178321238042529971544181601047406964591892035255736912439980759788625426458671776208852879819439076215315980809995679608969983657239866922369671120524179417787783642668549146850437976099137263188748791129708447703630289158935874375444469739620286250861068728463962197966600282275829230379212667695491156275743084449900864792727121975625371930859615973060125619314443881612419534005541960493488173219778247069895629038695648997222604004710542428878613330150218171773536655320321444597223347018473013319660736195283834597806390403582912157211375946180064013564933032964128031356698203048359650211317129952116552148018397403509179929521323056080719892905325591737801085947560378405218967036943698141000866218209869108825825158316158188012437968314460574361280836933842035581141217601398342808680276522256339786846058316387204685158033608132378420114460713402145433205135149792643854384818489289700993364606926868755217508884188492757546282553581272493470614308090248015495239168114257817559138026817066791947931329249009184298301801658456821344733860911439739902332869705264294796071405642636104069420916426376218802151087022068355106386453129689412044535445490226444501694310906113501443791518512670332149393343984229362734785788536151397246916366120826029202125545568631228211000750130232364207572075408488731621604823658257293875784096330816244476538424827287572634674120424811717087223375958257239660464385042706099977758472346690754347028500818997113890808190291695676594662775743345873951761865334775896541259657380653289547369719847497453998595748498817467073916767976814071661481852533093643958879855399360109149067037760712052356200279098845638401718015136273820401458003902467930042226624931730497463087358427464916256439421961087319931783246981111328620625548084517223548189438734145278416060740002747704525919565796343816248041386230268847125749743688088018276522623445441380201329480058133743062796296035085405126921590015287495939592438234838918806689061051721591261459139190107728198435435139491144906817034364720940592814249502802144392221162556090762182508238146121061913776886720052011791575525780023959571463778396367396647902762742149110009619612458759769943824883039788713884903673608522911685032975827215949399505164593073085295434714652871328395115587550428482511082717392859848797533957602232758934406153412601936353586739066813028169154435274738677351169304764213758540442518842228650967625662202720623703722520539858965525197211436587356119871402305897190570518815640226801808769545729094974535970993862957568474503371993830197065132695854549769499821811293825204424807586684655140363419564252167300852451633035201758463682618642844991869836192456801098779269389154250301535807614029844171435443231582019093596908434505268600247296795628042667419065777655292411768828393174639234524314876201089797980495524060469344532294882219942484117676149182181870539451774886625328778782677154741324177758512977559392056655184274607131490627168885938248598795480776884817390827395334564669171739942763233210786171429632706405607505473709510574573648616547684922413414669152671440104863358405434488510470153744166128218908188262437780916483659470933722928378522472535656801885434979293053963064008959519028695467176920363303142627889606914821811238488004481015070377427066195542573134597816006030678547251600807297986213288158092104042660306128388357191537853116367724672779797189063526481944445375884824629410964260049360159917096009527486546874758833748785978630302969602994856621351197144765920514539034313338615020510690651612826201244134731663453050285011957292167947453200713100950180455081358306836324873930719160000203341260917281468195022935004429888089014493003262435864566194559568422563327587497525391333360402172876594169949612776958939860162483018558810598046450546477745661211279641722311673628523255895009777973547127229289670646508169746194623041659097790945459012571266448313188338592005503551323470795804862919315234874674793584805527790094000870557836759831694774994949679428512707685843311297838684642645041045882821468424067230969835646552875141524740276055071581602768662386205496893347687786866263186164160843563903774669716123204380993929289272961549948911801030656522805064792690217083364669081214197015939832488712912193528153256467095547990214449688992818334438986637996741759048572098963753827975049041342756302769721715439851722608074435402542278152844620988793157693252582575175091543855497979488435528988401731576380468574587801003105120385470086394430691787639599633634025464561851844246412069854818167138841542050049481703489436279125716224806099746111733724143937147683741822279615240524766331202146574151613794066532655310600041327176734601018771462781963713047014394556838106576063287273029825944005681814670612536568039669479092157535429783171298099908079729836198460050611166735754960331549910224974515971982194006188324622589425616585297761111260747369058650909832745109030386380137047655881036706437744168310978902253618154001861202903254106851502478426028643488908376355869912812403364311345662201473362886695748106472306103494644707141585640514385051465867153176984806511528396504795171715277953561357636130214560750807173374334649932256812528772145891995411182094494941905752491779509609125405333115929377679985355051513677239409877525909013489339004454049985321460355530990960994141341364712162621336608459513001896425541135237443890034385441740980206006076238290568061977703528860412322360034183069417849015674442134771490507502681039050384120240582859032785740416683821614070713497891907177313958100852733305286688331380144199789003207747223828120927640440395481013585307360224035247791481853176232384137552949838503496458065043650513113653121986819014001778410354483508682583800798404855905445392290579264578796623156454752228650571305328894837091316411999511263025223956715446344897416243019809511166983469549989097861479720113982775259934991360431999286753806856661290069126165779427478091468467786523812936515638428074294122048679528207249144764876780925571359465886837921174072965438326564478048395092950934327314466531210812872951694091281374513036019775747946744952915105451877549956589141777847500482936361097601740533245328160847380312859723035716396764118929563350915380881130602750086325813022657120350147835724185915637966144616786214961840638427678216361736877183495102282491374041467883623799601851319348177949480648523921435304707055161361908604903138049443719448351352254838732055769961908422878147354943884198242241369613395206217842404329711228168583287024617700241002345591920623109201917982774341935125273004226061984466468860445046428350549945767469722468310579813447823989384191542744775254054435576848841018357149093456507930571088536705994290329701964232089283415095294908286839891679429225812011661546071898898088813052741217363335091695640912263459615041394677988261863974217159528365020893160093928786809599081910494516248758749926210529337532905256254867900210768537656741151891539177997418624218515365714848095551977324507728899833906241884346396466925370202028248136660371385241658543251480104246206862804154101740639048467361227301954986998187538804272639435958758395647907695455857040239211918517830366345330350665515554820462974504511805121764935142689892766191706573308833108494728125311614936182216069009320844459471469352935585434646057882296057498836066436088548731226026609251284006141695677621944352804743799857879242901039753817811503458298218584781648877675101134645387912483360725354267118831105994083411862251974800919839854736800669279182607511481765784781847988559037088955655190761750821054479206335817938208152402491599859532834978668028998731560679334548821110067261755246549292686589651928599722756235517016295016037044148396526525882284041891033594434327477988721056080611105503964660657662157365714025077240967031955616633978101976673514880846019261951661732939399090247247282942084987072693938317046192830447806364475049208342463229484556045469301193395480089097832311631124587211265597361191730047160507293589184019156858737498553431896700692542498210598595350863826936276418106649990327433655234840789501439513874964827495382766397883084574686366621467802968768575012524252512682310801045179068277742603929899112000511794621174890483934377034003788209698003380664390510989603052443829599606028132531747780430722186565312005808365354093864525039060710823092988177668048068257159820121307842043413032389409492197470584295735477194246967988140186420714763561135408916635664842170622506459742940216383041515546659869451423388368564174537375512950519595074290414170324819835925368583988826530314379295891770209085877622814573505115157902277315332537914820408951268640161512484959773399371026705723551152308059884967085459185672463035483619257687491035810095163240971234739523680190197488700563074033191863429144962826278818175180631546857091017557743000217076657878371327508191106587380518253941135420687048289285957405659894785972274316196713394056397088991154341145584486373748995768127135449362416094416150801146754121945502758895831677194144270235212111379983927912395262649624170893142778214467254557577142670997872960315001564265408393365398375904009442420578659144055445322009383031850324255726737866172636857028936575372321386336607022682462323910036888837024529390658161062200691440151355951493657692490205348046015507084916202398361904995570983051182113547190577908511960872723196920945475608887563709284110104467603860307557410183407564650105818425086903745804337757628210360960857745235526257738954945695367229861667324015705153865684742568709544621999863416692317722871525512116501525898954152606293540403365947781999470027061426897139058677115590164896699301194760364362497093968506500094602037898476744931292885953720075580152193319981996119747980340423224427018662895588826614939111798741348028533199294484622506502040126927598262670093769252130355453691499453300052496856020917619424556836692068437366720422301375984878358051839098495424082762059882148352110854300514752250994210768214430516168213099201871607246319758610205568263408565892822836272807626336296676911205522754164723719222733467128630975892637124374256907999461200962252072407207841406272289240916257432522386569689158055784104614940641075527168650908905088759446666177516434205542340616202764219557592135741517106743145905505023822297158076852869615414270455439029102594588719317414143825347040864451836244732714593863701948379192919942336489476573127985555444860200500467566436070459774093779740595734108646782431874166317706073132047454545899702446924660290879593158747733806307614889271266048269336153994030974027005533912229483394104800599907581105938245580282526044561919780308205984613161679569166230513857394537699973212764973838077131277182065328788876732961795383263650713535995016308073102378700271960202527000252079379677536230361382719475684863431399521945172976339942598519309838623057271477943519213535223084760159273228670460206160621216949363766245892658888590851667048973507859731286650806318347731929903962921751279885355377156799358358118929263097948231929701247706493799819892557493787653369726949402986413054600023543029498491601308239758066983549861341845133286676801262533936827514239828153829334027189119024314760721817035670400716729380985912099325513129329184015624305415861440274986932207233029427285535499322340980005490043092026225146033873927363795171158501440459178572062127630478811290551116017509056806102729023926358646352990881010860489595638868191459975653839069078702488454147192167866658319294629228030477920309642497094173730971461977928438159163330527431866670905959638174201183780992391062306412806167725362476062990977287384934845995736965394851869620743553511440291918060866703324176587441279035229466121996421615386411111490714997451432923314138433834858385390949112797861640716859854850891947106171028183473000754796264626983409827908673536975125827352455619011650772129320694317199109770781197621614229427303061470763118091355050538602971411633692021371557106291881979817168639526578086701245353209938084514396773760101398122948697325039064746608943300552291994694777823020537648526147621676951272312170849228147186240172834435730623474081665487623821167896560001037456090836260124621730447139968546331009152670306186692333927970688507659573508302759539775126899167767418280171006562315655493188236780572030684961266597020811190345180185940875582674971402187257978626228452692545727584632030204451226433828744668465208405975896621333699681732106194155413256120517710722535755264811772884428804452257650519385725886393449440872087743674889661142859077384329753762450298960839821357431940813983145873387932801789550552269937223486970750207475091810364109646833142667344749436976526968367264615119203193197906506583405225581583864577840337823632353806366432649671256585975904169784350551422817742381129565829742978733513184227832758719228897705728275436267275247772935002236352707904893318220806094096093134969828268922415481052249230142173592144856831746589955539967291188108004325011290179271015349787517929174911717176566368020118098254511855624061030443058672387265705479964335474431417264522001202539479038148641462226520488169806575273604088610734155670045716923416613287988304872689131222613634004539430311544098279510551056556512684876346297221279631482944494949206916927020187394580179839347954388976653754658471172793966394265846050263246188743821127358478179117098001295450871662398003871625275380104756372049882699522374484287693794936318878752320721075114128639337595009445211922405082943715751975966386634017601117029364032083737029139696901916719745737777710095554532745079842659744206252386840511233363237957335980334719094849094120454759741116463821010351027562847694256573782959282730516052749591543168484479060529263742711923432873187927608619132039531639554653821067883354819499969801817010088709738336178478929849633385113569728887956086351954438489165240908253847132890018268766159913767008106893311281481463212400960149528146708257957217502151460548614121998181921976671353325969522013385983970505274836518124825841816303343242131284478817874137160675104570020259816763827850618500084159506859632959595606407720367717295382406572765959662039017239327332816398357451401198042580522390607554757901304330822366085898506292055864611714995274670079010382466451232960730759787919950933154187865725879362376540269866487700476088247515528118658970191975612375429435757827592940691225133075197546367637902990883655085475466703370827683296164261963592848654597676677610124352778300795209869770877895200904938207977129747254998227973750503191949928178408667838639774655158125229556889290223159121686420818158790922071275518759324438637654278226260578980301302303527395869917829823315917851060200245244829396334803517379508545138696770527217997001398464677590522342198985066506203802855529864485730273228431968768845101759493805342199355461052102122683588364090692543818371344373278289468436485821596515308994133945635096957543472660037916908222578291723064838867165442045617590333320509585838416498771491884954887447627953510972791252528776618145156008543043071556411131466600804034769552705008063314240376030142204869301596204110223851222302860409615792567264886614253505329219805370968370125666778679105257240977922040301629848804809282483021983536103368411086843536044670465071632827514064195964528729971936722608156838830190725026412689728333025389770680878535377815818761268501033438276024120136164697042667994502402198593778327210306799168634264180480705833452484618319621689605364203237414682238712264917415979339223507903765504908931219037215493278062664752307258293818386195218048839045240328912908262538201939912360564670808686102266795490382542442483739809972864927792931544743291617071523854637804436674645572215059616444083518842729967611948192877624105791540293318980822493154459357101306528070692554614507449878095672164099199931494872146838583373714614364724128545582958441341886781592237629415123684301739254436269779718030458125738328162639360650094168496984404117537703622092475602792903297739077361453947264128548497444439607802053956669672365529021972052033462575665819481615168104692749859935037756592720427128331421675172774430425883772898222560962888689857839956649653558747515316568128460896147731321403095957523360432743204305810611452698190845756727471857976646017680619414949725985010092931214098609618447532329127021118800492920509471491072507490748213560724587210931256748083696484816977787269910413528500166411974424151390553027609643222530052363139946057133670465717266700722486758407823434007568339937181813029120536211000423744421721621092865870480157038401535222931110042787579430811040930430135874788236302926908959166764541177735877330476499417828468602961823256517343018116776867616772957485842685633641606162758926375303521132267503332315681177308110617651020202561059523338463318967835839317558851344560934515113512509829241940549728536315478761057599337239505013618076277841352088475543175881777442794145060276969713869208934372211632245264407274381650462041600706110460035389484847879521590334409586400881133140494199683681917449794267346026354005567333583608876423863271495353133039316911423841528088624234050813934356354487116355811203658053380346579129808971333390981150998671373370831250691296201027840511773841186166750161474810516534602721604953754466430205416861106226830190925031082561413258364235552976631728925318810433121918519275594785876616032481458141387450647789795394888423760498816800693199419945492661147974179841563456703718373985591695933491356880107560316807107682957939171715164358436242536516438704958750037571812520801550699803009008497673529877715120486075250062317522677869480900099335874541069719018065897915511505199207247183794131699120252586190755513125824059406700403763438545206535837455405961149738243594967238731268347807950947072628224063738915849592099294237879220516498599566231782069547308246290763817081726445684610153180466801249102710283959095019747275196387523156077414030274998664417803702975550463953966197385747968097850312387769366677783551087378148520994302001501106743510599699121795199840962120068948636220565697207707358715332000202247673307651227329469753580137854374327602557192540133155303698549031034172656740801492808364751716262498063484459332837357206226776922193712813041385945415506474300519030921025082256672959640892360941043245861240190462571254728301130893481619485610429512511408894673904010879197180507079826114861592801247202088556677865935917103771850920726966661862482937565933580221637359512014557307757255715623375963520259993950604053747387018256657932986375649910718208726199326481530163479446749818044618488960733418423432430640132771671417102232566266499718895235826030052132873306888180615662026853653992252217977436256022719341126456345032534638384316970876681424856551798797356075163886520595965339157243368387574650658364856411947757816075456072127609531530859926383912495645085316703865190137494034976083852432901995868544406425046438872611873763685445017888324993419575370536072767890919823403984249744018289538986378595885920336157367260494844809073688026006956792000177621344185691535844943905191897962248015225896909865731493548959684119558626626183577862740874244898017901693932498987396365117236617221498118201824766994744778849262644871877468814691674555337293482238476714617969710390588995594299985269560354836176007668290445925517779497838834732153219128613335701543375072366091794070713131890803095143465301214495295716683640292934787281361157571036247776158837738328052241921719253001101902708615409024172390843309533919898126629715972874053091696674303791988499524115877678871815993812928094494840864491414069890002558512357980423707667364279116335935305652361836446945636315379589924726636274134710890532943114403649731428467451093266000214240861044593426968046662172697089426486255374033236935057782499514155142030970080910399008224343958777007141181265904306592252827523475858226368634244250952668869434743973017694647212131646206618150070933594629093285482185383949901523319163910106526838980943644836518055383266449538953216517760514456557256978595953485648666063109804896160507592475165983534283980136944662288164405806537500847903422744731107413200215400889833927390231974269107501038757446037200860960926745839985739360278402647169081734469655741688797135403795360610439624228303355531259006772921069693542194051535186550233366123313211011788247605635649599076921323960999613890944141623006488518008532265400420117317912358127745612747331713099969086652018646133515169984136115295131957314547758627633216611764196197433670859926842589177525074712084120007792834800150069453677255456082593136682204849549230629521164846608305182172429449918870073255998069393644615990449627582066878497089429538015248459028893837407005727425545578987735561708843131475784786058327891705502702793494797987138280922046561689189580419792071450472862693888751695111342460393305500283177755820142810440187421445286945462466657689097500847948929271826727262377250237123650106108054260653368894755731905950398490143754810797359410569658563717460672494975130660300070902322769701409447644111709099571539989106227013655674209096433217744865722966122132557018306547299875291922602326359179983726721091766972000627933036949073630817848689508784267510806660608953314430138841857882718323554439440444437748228964190516932662526975734691917787182979104775065727396913455051007795299253774791191687272548372740763103623098814991747966731924453397902984822550692228347334219786523057489161146515397503601330115628034178215657959568172950537168486544286537397668548043878493065260990499297477082005180073187790459772066944286719195834642267711830854241196554532576963941892415238296344065117236668683479399553705952888093839969806845367566760954770352865280955866366568732172515168009686223457065083892821367090919989598426353423612309482634076738124581292530264776238101315189353059658045391895956497604628125510331310468007811585064528489626401474590009589857323609337896210001627708953485802637593457255069177509091051495543660799405468131371397039646217665353539150552501978180109015494784661737846721998601702824964667680351785998603970434929494997665557782903765052292385818505102265940323342130245703307556273587412080198228055973153366987745828130287987084303629827000338976613461531469654256766285008906740588128530012686256155939987384358272024951273320049972881969910264072956617294346764496546312768345251803744927141650926134538510008509868810503145389012053126270759926587610905328330515811804736372962477856809090477862515295068762574388699927934747703375254186246128855231178370891524949264707536978704589790904663212690903182369596653327604491083221747956905348746408429380048235792504835533082007142486898698600966951787050044448966322689152902190297683010925330543151240249805749271321029957460079302184337550674764002613847667368631216033515162190995620168504605566972369583151155004545633733030837241575093017262705245724346356519129983583359600598389104168443368211798333755419731385484343474549221242808163007090166149370114588580818755102347186905076715531127213598372276573085144752730746492373970142895256795815906617386655343238249251763168797154168955226361287460360998883028196266867928953689908941393386578662690704992977782379461684772020106459111907397645852027230615149631601200830279749568727308005882843650549394501775273133969083293345052682240825038677388227829433669504039186135797197229054015859509480996703971669963776493225593415072219975870139112460761236134018745063450453818797611944237133559697358604841709561362614917506952628217368192919503324857326330380409573058729204536109268105451265079932813664921240335542672869407559733055637030729160015645185399360081435323728894447453764655413911844421657817205709003456290704358808914313684092459144797711697011947466754602150619778263585585529760826143042387595876613792056687876918588772561141634427129788735826996974683528483354459396621954585754480377101582142249427102034141875869194015948629565151379241760976718193905049087184033851506263784968123901003957878401423452744895895822586010786378896582026890615169155058192323474721489651126953645598670728794584041674842891026540933467695270251796956736652096989916756736272477742450866764836988992515659887522830261246350274977072577955886539468662203262431915367030272765742243795500507133527448312109195558578779324542588100921025526479626584550024076410619164489240332458478977755947386303714518207684008207194986357767879159212496373579708176618186780426725736601127109293325019328128948493786435030939322175945571359724728665037184997638880377956605967679429376795627821651424329909242475958388256243071056096067687177158999124065490350363792413994887703296515877016022155841544367659433484579951154196194459355708478513861665531767538984456814603351788852520265628500304874226290701350452625481431431054597722337714959553885566983805206802507564999167679485315736119047759016638778873691684883108480637522668071691986592145839002016689224685240706113232075731611299100888963771329291509384969140622880822906759174533667410810422651828553922362856552826349056603324894294711702457530987716616684336023087360158266725224315654847274116198389776821726892763126791417394988373868708403820380369677879019133959233995750229128294429257536505537537429436612975280167685249772047092480087638484887629175686028742867310196361931299075536469600713843032329642922348972293271070088101344319555599414151791978895565070736890487421571959189682113563536746277651923871110788255198367882827745173553538218433630560592151415328703453459820543945691791279544818665206661848857302332800946145309858072245706452886723643168539552161356589340667288450926761144062095830729581721028756821451430884753507593793663151159694463453614051138151865730188947491297092093142520516278739330578573461813784876314409549048510728705688745366113415040306576338459070202188956417017891912784210077628237245019236734556808418915854445702773232535578677875693468513869540028282559593991553419927366881069832895741310549416918168885912505520301710203551787327027741663530405165393252586357172084373261409240079118697430765702639297830716542506952234851335599859803692811737040237423176385469103014252174442647718627929314467431446437629491382535010782861085513759857700773067522943246397385741744932046167444556128635735771177632936400253558379123101690336322439361346884271731774007103908322681507905174401403410335294005190790024330562204230800496966185690275240453828422638390576992603261685794393449487837602919279205339730470796522038936373845985912414567050481791289668016720992589705387528009402188286078694242081009513384451904893449692538073487977141833065343521102022384803218544630068730096070162969762911976027450518201557688308531214154562718635523631411548057563322364573619382183141412240822837879610700174586147474483604492362583500381337393599219149123061316779607175282735812048073191223403106962907025373716071415522499292942318441192984329767143112393555276630282550422664017834550163886260200582564685905781683512448744748776521002969799674355694667144293424742640896082639452500946916879690206649923848241024954245747353684368208406794473034092992358498198859030096498001124231287553383917122125725862965616439895435739789595047006563930263018029744631282026484052868869132049602873779248399631655191628855639718755201379972820754396454892012526369035794599410080189819084295133874978651445804566211804276612089757873349806322096295425324404629015670336192381847988540492451139753107657116581591281343497625404805250030176968821628471854700925812049670210937691681750343910559873554877706098512866976813952892699639913155340933180626621920429709648369461449116686825742343297732201462245395896911668712345710621215246944001191008878300171713396215054879426034464204424161909249016856376185210317783279214993150011736013436344403269249154031229720437331180618555416117479681335757173598020338466247672450497392340067479818701860799674122125073185676719254879793934166601652324543108535575920209879817236543109465379166866139516322420153387667929510837568020337121951817564283341570288045821583727282354116464475697518240984275162055375890777792852649459715431293950359103596414256225412219311496631499242729143336783056898203486358083959137314571558063848614041759808707615422643869566876645039067626172954210979752130851866410885823328223464036188766462229115361221480794630522637792753399621639426403799829714469326636583327893805927889424892163044442382267515776907766962636215888186298398319247512668520709075461070066555608448777652902314180839474958660615073956867073939934026359738346771713056629511543175485085755902423656253807603912590417233538215436371562848621427941602063974178418174642792464080891111916599109071929875774799485534208708433782445250416056901333873518194481080897017539213440539360170252485124098497369912893810344459553006673707282142106278740614140277653340872565601643919599426517834699907883788494343591033485995115488316228066184093877143934214586178131998407783813898737729917138222557329545281588790055057999923302277346747309314625202693156221637971420372480296763778102590866055909130700207405277692381901098079702667004501615710358032798621959723107166556284475206940982064819340279375159928985821268892523686873188057309312261167703778595129346506788915366158848530975952649962619580162320212126494496505356389454192012501948547704846929958956293092761387473384269636883082404131869615643404568347088597514720119731132331186856547023144505241998754205714994200808849307469683365333265127459263745741926600651312100176215467830338109476770744225026696822379413915276931586358440168744222610293359587176264393291095831299056023538520979662061630716049663023181429640239361875704298289880053163619106643849443315563701044591609329798467757028381741442666738420542427055466079913018780313842868162521849011564847915450145454083570935469193410279932253146719311830752656730099172296332002198171544660453905393626608509151997578217984001674336632542334143451337630791578488841922022744741862849692986728089735345864731607768590541849534482068896256726913952295563964510615921996817296452040807037565396163982287434355786594771876574343366960392929495668143219298900846351285445288329376162077196114772345695696211043044268131258758247184576568356559404369411284143360878147252060866477591131232064124154878915365401203650534651786592157033470787172689621019674801088675082890004592128486619453733391269832687957701551061466144995013991833095545439023160412576369623934740826792791296636345366473687923484872131053242296191240219354065917587597987434928866343536834350369899834166191285020983009088740858309951252716265751550017334438183973562922738023199917523376435505900484429499777663587144142631869844695201939344909608203214284963223397479504724418451322675383775353339330667945963484977195359821276191845192474292329959273808368815011223778943337935354594818452884876453616845828347006913785013651313091954715625978296222451307400835901097893197783103362184628314658967332177452701010358256112881117941939198040260702818299364715283164154672057890259977943882469391155516018005796089033581901501210610934268508359172062024423459337722302061324288637575768089639584412054235062182187993689895186340593462853503191049123102968360179437853801782484086609756632233017041997586904068890989147789998367565547474516878453680663999969350028341670816897834729076037539453695935803614825184867129583756796798834714902894902826039880140930097602306798370918749529201524670464624813885541336795624091504635535516590703942534867688211551635050026875042797288981394468358328787736114788511362153448860977938716713504852706164676379707870002069748133154259749124539294487596722725823162891637632451234961670984149744576321462601914862591424469247843954941464944633321942928677670837701262197756849571336168201818679920182322415812952925377929274895381454549875319651526455293319970602255661510968788486885550129452725953703155420415503930965722880442656315408921383911455949976288868416873253520762521344226341652481310565185842589056620135484104039107865459948187090458044585440032010941547964967187017307385325251717277169221998455188372483810624921282107314005502790018877907802647765661655339647246641859112242617440538098177782854953591519097376286645117820738267027428180668483608085147351755233147417587915621766103158211967699044495819304616936470030278326412664633443841388259761560794894331553460903379550749486314824836312193304438928569455086621204099051594609581195936891967737461732234410975377134973177958544202845250337430880153877572135999132161710956184681456273482772223153248395681287900530985683862599999092475440237986808687130579248963036763437205246077005830650741104129058308205392804504328092622395101625368025849994537970549229417361479605093205143696653072071802344347231926563490349929294635380553699548216264585918470401732897204739686739183408989157556653760242194292978840471516871043160563234898798488656247042558412333487176666235634601688291038460218583716605071483324745809529637192301430559805700179593793216628936066395330181386086673302081676567169975277769326710759476654567206103768124872561628532747616216662298759299507477229579734733656107207510295214692757565735159050233019098297245537559468088455253360393988751021088342628882010482904344324241935813884694831367786781343022933282263612405565354953497209387500921830028509324551755645677016234649154331188239256326505774435269247728747113570213399682837443939683711685006761594339041870836488456593568368613373442207304247687555662993163955427487374494018699937895235495758418496614271462110762945903635207474160013323739538523764911013466479230995019471022325214175947664421986338231549254484695045080680457894993118715156175864818344485179897130446036777888090042064983671250905957066165971034628962472873161938372504348448301269055127809076679721336149077023700387412783536067369729600933857518291287428748006632629585589354052150850169271709530457120437750860967388866755422660786731083419413639790701357320243130710738516685184013626460424850216729957721424319781305035857624958481339128262815619881150178428461380124922464280284292457230011105362837272378967192743325290742559588104419704572863192767315886578212655564532709660749180828598964838911355864903750122491921712192234099305042049491365926977699060948540074354552296652595985755544949935650132981004236604405583667815372875591435363244160890095649954040653091494414780576411325038331123328689565975570041460172117603452451129511045045245989678482431322127367481555810465538513044660424003104285693478775417316924554799262884353677908272968440054241162632095341927317852118914718982552110675439515863237185256020171249199813056318952471138389591212424004288904253190677653097520999187819610892769708073692102621511405828183714410349396333845611576164529447176400259246919424239340093395085872841081742877842242199032336933501859187117313135718242883105975141153364100907313196756786303882002557820271755966179162095690878982405291342344362550061623235070070204043240138393478068779574114385885576051460149494024477402838440811145375455277083523516336236701069238414350112334636211070520257675503181974317444299054181646028310771611756174683698285685742114295008695451945504549752629267502341124861302611162286216167616905755147786244132790948384307147524629554294228824978455337795257841135704743157909799478038510168513307087824560324295566342573073326215997489183877611754747162319416768174894213019624486186767623443088961444218507307573660444417301420383571772326678359889384787039564323557664174709223227987663194326406687296575612674419661598725575887371290131635979647720891909434975945669984660605610020510252820332793743127027039179714596554802613634004313171652860934394249749613932694882879550349227401075674182736594992116174922007759636122156164027312721631346534508324856960473758498556091110715692690196479007580484529624454724634649429216912191909277937269027135151663570975854033997862438464554982041284385887335628638203930961656899383871165831233058883444871029519642193513438764594250727691161494719022590960198875028036570877304728762420998080689312705817912999737421126962775952173629147630917269025405201606387730409214284167601475629173098379472059130595516604268779515178723846051342692623465034336723391909424817612860257356423104666976947317166305914377084835252113032238512608489633085006506302666698319900221774094756450776824560963362920793668390146208272816571337904544605434349185793553464844533217322878840749320591882278864142410487621236792268339998937800967166875814783248157220764762175166795389820166809872853651145338814638290148026072645971993578947667790914391712185386207857578629783836341875142707486066067083150389223254316512843826849402726363210496063289195783426721141530347622823529401829661694542153858744904706362414498208257119551403888806783491420098430573358715513680984635475854009420709298939866222095905588864625637114055055635074951155464532569990237682215050164069198904481844256739529016961215227277537989046389695529530449335490089844600222688638436341050851183310039977815903541162939983839903985645052018198602851140507540473156925756636975772282892353128230793489538777104900655378734249877432895196468738914248623794639551459861879181780433133182540965439084726345852048427508544052488284857995776926795159144963209846025412553651226134254103169816505506908563803275045123224359094372325831317692217471293803116114050163850736570767900263582726582190915537300085751702392908997506551899664448746646556392177082993474326761706846582143009045705032127883178198059088161662835495566129432780372432962743765383613353725286596868237105256565163462754693255194044193389608766300213860428441350485736847415896814423774052106164258470972505752174595326909854018457639624880045419564108801520354631141463940112403053083178798271460825103482755033462075918051688645397408778339550780157222375974695880334285378313405557479729277912825750951665016683061671817493600989045941027125936789703428053130085076741973245701640361320318439777791805703981062226099805335728929811351111952065168420882241851423748060577136476859363886053732605703041273304230602566094310730239905474825536404236096769096077874252063974080028340708417126285517742568720254071697157900842621711634710427102397682004616832175555163821208759981200203860260248310111728796436632345276678697305119990656101739608144772375831545268951413468498562582481659789722064263185186220084598126446583404334029004586858366449073035778785253234415115105061483881992874059027975048900214887934857208468619385923355253058324261914889561165682756242055889350290093567158247167300518291583680683987825230213671774784480248765846800881336904689312930784530291654537959576438051636949294252282264860457628515050408081962122531262942357402251977784346200282086467965856921712088578628134884374444841975387806253459560472527049496283320130404704081463290474174461423034678418668235249736911652547683797883092333160629781603733442868970794290035665588554683905552778415584148856238176555957523330091384684702324489668711928148869857966583686640715432710433106662064186905608292302856834944625060312189661491267666489739290350418805491407986347906146420678503505910247850874966424484320185621468635905304235487933653271425042816240736451940827206912451945976536657732466337588713326337811170289289640400546880043768548565399582570016333414549151428672971939334471680346951060405333086204829549764400449555114927349371030151021082301560071195157637806883473397817520075952729374907491557672982669085585584004953879485789635515399313947677066456717354403582000816247615895877421124392134838873345006326477565660414606934639237840248041973186210988598640927080366313898831996468513270063654401274685568633064590283996062249883732350122340847585728544879680417412592272430868608892216661354519348481295297267177388094346643316082308227853709215230173244285587243084560823986588092812207520513070406489648372413300797612876857829253822363210548284712052594046271591282217800150260539680050949325937822085424504083814609074027958018957546056652611742782004863184783782879182117808960254483037299513557811131050266464265788125544619585970836246231367775882250405588614516214002893156985853337366343659943181057055474619184400395595488078573965831637406341256175870594179376723194659583120484974826899362317841866168639949682200570333590569799143821975868178545814340987915404044592987108671254094579424857443556452128456068666375466575041102927014515434320712834611754949305531063898157763167902601015278975312478392511997545281601111433931066072313074934487002380561963872462688792461548899683538517355757520182068716352206775362236317488251071664477448195371454008890172770397286092794892000632634991849692552710205577086625541927070352370519540295174034592302472790534141103240315232766548060450764340150803685034199985120369030274613108404103539355839864984657832306926494035505839670790576568508574968631846785812920356618306241416674099678379310223988306662086129351340388928759803570742648614295552736185472590852458423071024355587633478236170739483649418741637226987022309607147671251964216958788571451388862596845985575402517257901831922829923754061617395977882554152297156574053979600750487979324510434151331154732337540424936697709788371527860559081975329032582167404606502651909712709947613129652655932390928514977252931417739331317828349255167541189933892601969119981913461546468145470138296827481149023832173501710920711561302828820947178476000005906340433297123439586656100837579235694566327824220420807908143200911342419344292528757107050115848686806550490274096541056636115030533821565277954097440933552130579733790808821772518399120251519699289218082984609150382015800474622143499467741164988104893455775899545292020904535533121636683260697831210504952260232253846883711219194439172103407358074987869634616153847709005137146348331253948103135308891736994811330940682577206065357738560638823937931869526577181488731859408434069348659833547195353809809033598096467912491888243442348125984061250513607047319495044303694910397838090482243905079201522698602806158067598017843571846120521432945439147097570207885192364969624346754936064636232431897948042711299965238746268249057845912005358044477871216511331712513367182649601795969974262378976761168703390222937738389072292105458720074946003657448883222429866014264414034061587762404684515148710154632537801997356910222768971672415671844472139911599948849490674753675325681652263189172103224196558919918154605229203540048853700883414394868329087164522889147492471138554933904516494083050438808375724534537144750608280141088250429714176050598060572811115627093604229713211265884352953837877716839809525503344443595491374414452737467237654694706765853468391684043066345869384096528489448802709942390531639939533823943176920798904077128079121159448114986220982920597973564878726907504597667870443506881006345512683652166807980447733340783913736863912905576443570367273979044622221613472685597340317883701435525998195806425958044372067074674260610547276717286432822965024700231272231397081279621902033111125542044406975995387914939621621214633215890522839833027434053387243265296278356519727350963653091274227415516230213856595675236237317802199708952632306103312889664349612042540900410415968176646564379294635252604688859142665318000132070207441219263356881127047029432045781242343120192823042681054169254603294052796592347743444419597637577507424141766164268650721174403899914279488809048377207736817427305213559986509071080797632447381226994152097743141803461953246048211499658075332517038225485626610564180812199671675318937994118856399658298174255608337367216858455775442649579440073478725113408504810037794752577001028020413533252918238019715064718187272882419738933656939457315913876796793034990925852454442195338158945229214956831270316150404823060903153471732857922575558086063739183740915024828820344513493622787611386480985414722563719909517319287389817033496071795230764466263413339817585586476950880556730301282523751733079290997510677429349112263751640755298253018558760757309669843337092581165997341229121847310314768129989402852896014513219202744683276045451052216510247180027057720558995503773774942802906153370193385020497492355909439785494022943464319659264565874739649354119951077684575653927970640454694030251623502065572380983490265584790630006229982133785563437805963997916326560362356139436468002649719581645324475027225083738801081343474257603487931771342928832379805600451951409658124573073793782161068002440715945908435985924811212261053513158655791326564261785708028035915025287695338809590936745742749536307426489613733466262613670743957176537136090374382095588937042998096028602066851368381151865794322285583563368336688830377318622538895638105609184128771648700802852850872846012033093176007945212580309651560188631670528287656919785779933450099578205113881802367231437951597050948757933266052935580083075818495713501063213010141125869149646260532985141703297523432200202913615601690656499863152027536082040563498209021974328093848120613696651032432233476475454309024898621872314407925042833923950646145435753014581659097780626919376165989135031841100609444216546663154961514126603877637062974635235984062976525289829271804862560961955131498106347146013633503487317536766244654432013357923050343338118586843172924316719224954938197419257064134556455002245934778267397586742533885062379841403636451569946482037322248873467339313467468244863024777860916922042660373266549614027498391897207483307907877520628532343561538309383917146503736471951295380642878860500777092493461919861782871624882853504372904306696510348065856574909223746370325449167228794893597317506630255028110864833883459341342172498016291144097408912961126565241439764485804797509806564385362837474555907166391426929803373664743992878060111176323356240702527484299453349228825208725601116527416057143517685095011064364954251419396387941491877461439008127343329591283811433593699302653541766616248213640548072367018759362092134185042420869746131685326230501201304917602035537691445047987715588474902189680325077437718901913278520805828620764589524872371655596177239883690966283594423211149361231580901884021644830260216281362293916780334550214830723824768119296366233170840400422825381321945432919848737156777289715701464052856838597447529639755617913910779582791521914904191651391832958546644590088841922939667749629569245252295730379714347920015889264235356054742342955404275713520107265554961469531616070219839011492040954313066207463298509812386745731385912498801556420597302324253901235244399010974003987777540836354633440647649465314022048345542052397785725700814202336057102636275767828460989338592184659761249784052546851466886394652541903129897421172028643239404776078158341291915922447906556556553232019622259374034703329869704607402836921898043682630075822183428570487112484625142186195458445709284685085363146561468154714906540829425412172557834760990781929505348947872548888001358146091375021076576726583983218010628325652569369960164148755192996654046337703558816080264174320753314057759924291358163860576590751538416211823855041898313820478989292085801806046938355860818656443665062652880974383763162506935415615852328115724750808944665850848728703003942662857328863069783473514937095653016256653694260039994558420578400352636188148903188414732374642371339722201009337627686900992760199996549594527511813688169040321998698074950387413308787013397845105945797153885503451944350761858267672216357265485550988055774900679831533237302321054483812937635658851500491108586407051857505526028262242080252886364423044452957529966676819275350909508211219519276339091994520809282545797760723221367341955877081843164365929373985541289382620907427905135257377062642289521531877511456849627278876998621949427891784175458809854742383471948704887381444131815149280466219193291293649666914730268319257508458014403306256066889644005928042547757846196278281779099032951848562943643098415941042392933732135723223680498263586445490725637663085072531356880893187888875303137836044833942415517856635916693450457366867376978740085897667666740903980483279995371778418863891609564104495510077990734587237264133581824591260968689586502377797510836355672225245773395207647823446662442348613469522188054765683596143092429822719881733444397770449957191329119041499540223969582236379108203520067043418613321431105255971155879757321611910204750491756767527333123953606202623287299033452669692348503111961889596538179058696659158896813147759805216736998640436196137468595115260094499762974326238761944569447650415026615127362161169221653079003890967901064303105979726737433707485581018498746341860951306494364803250053496823914781199454473107980162066574486035312880541356460776874077945179833388958998705895926224172525135015877387768221183859214184453146566723517882649694672231082678762935923835363662022889718216352603011414965369024891702924832976571934082870631101027443038241570009155701696959859534651898407837101095993635144320413849818291096969040911363061615864602581659347586675028032653753779345031438126374173312820309070667533190450217086913902699842077942672194199123462865839454185373510350499027383548577305435795754659336610108300284364276780704228728744962158721305556553997852563758427641218020336381816139302227642009911316410053247180221703855062552399360807293680714065028350034604471456892560125060166301933362873320382880336699266189543022934087042651140938579006981274857052795640012240905962725811490714187842641646220030428461928895529119769486691261300040965617877372536270811953906811176871268894992162949856406151880803122484804870815204125213908630072895339952365576081278822972872243245965625405876811946305315557767672892812581110877627772627343213417964253562203010346214060405558754140579836580349486811370297665889804129799840565037554721284580180024641417226808124852536482469280284334294110726511113623500690862574350895933939468925081981930756609289198605405807837329990902710920729830036269464282924562247395745858080392073812423253206914546789870109695995693403210073578601619462511943443761912835266990052044449315384446495021349875254252058629600385448444197997878297356210034790040335682855077941424872091233261680474246102321576550280525611843670407003729937733548929790430504783206450185403509158666420148606067179602046480361701293468183460793045424902987004013864248504004333983153008251973257036690425526447826670223223483856454069099994574999342973809242148205320046608783339147271911433834850061355833932521713627020710053305219358408469561613044404462428351532797576345858368153247175524224572371375682414143463594071134143177195997155195761793254212737536342074970372779464327247594666272046494348501788101031301705145588796617227233246734253419223677329452629503393541480513001837623701388003237363419806445906632731601833803065535223902946197620418891452411848300681354899165018939063685606963939448990298073318093878251711790993104120568262070963851506602343279917198797319115046169850480947775745779449343597124800801204524001641753323013823917802396502173105392408991475821247023999022008952530223733743428913047563930369211851096843612478135224223466760689473563892327229317095811856812778886364954596351745164159691338590602396684606532912024574505016981593480036506351588472798922912389083364186464009563416059164585933992235396722136513386549990132584208603496772641684144601189825370210968994449523235846783124072389655437536535818598040524365607353742009776169117756631139029568433719117357345682606593060996835275434984695319989621305205237670900212830413884314503950045837547446927477323833278332025244543246480191141900178965089640990794716049795186845913538911433777644747115678072452382903471923831330356359051522979808370230620367554049133652125044899903387961477454114128357137232450195774513803588502055563403755462176756875215104949017424063280975226331926462918322396234803395347429276738955450356705646645105256416003740902900644827680652415828449299906384841727197234577123593883166777791100313626364727742489902121932965258770724568575875303358955202105311669440699025310351490292637856556570513936061411820515694819618860426664188954109599041772748573343069636843152726759358249568843478300166867860775397602572822798071099915896825341743530252257270544714399171356927196371135928461769647372179102390679067257025471891439133121809558376118596155490487059444659313835270263255787913926787356496930065229731140344724705479155025049604627204680169764035965159036953749843670090850824613111062226146847234060178515531625784579430115324742975168252240818440797327673253821714580775285938220350738283640647397939446148353534865590694278237551580559159007824991262787082528512498434188906251823942144610016528006014851911482200622425956497691113235567102234571112220378421024951557033620458131987461226733477804794539907876641889931967198580247613255649975799556182014497253602606559024109939346024171600219457104896618443887928320886589831885643642896344481220571101989342462875919438951238631535248218433241276709974917883982104605822122972880457632295958036939378731745182603564512597974707771955099637933943611026786699852210394259401246166858215333512005864238835793514085761665075684355257842112573919180863151552374439507056257171513194481079551483511938376675357015079853965551058991345356140957534938365967634551648391886367754284908223748401963142223091812852493112675711026320033273506909832530835365873997472128720616658546937345397479471718209683107627420358474901974152588227271140892692859225634582516181429170137836186993596203352514345633950750508711566322870477068854386999971670199093208551904373508005777162922609039156285075565088615913719254475545353510466410864573623760531509901524188832696797867629940702837097937770567171306361654293719944734693806190857152353776767090760892138517982607251982872871066993113236229590417220866879947547657394104659504823021377530389237602075329466789050060225255769318886514794753395482907171237519746334758434325919001607274341697420905088036959190547443130845444860135106878812649495664156967678857794253097855164277356073541510336083930783233403651393754963330014925957174888989923701196176334562929014504928011287835137018435191737825075894424516875919466361180585817485166094579845025810987621393054568029979655156310741719423158089937821486641041231357002040013843832911061034481397499207847622763981268316566703694203538250901067313704569959458637305111624802628609416890805645410619820027131994038610160771724470475639020761957767652506618150382643578458063687197532697467593836525039666743421390098081034367997327235458404032880242254718068045044808918701037586682695638287690765070171170998630132163533984704373505022811734972552861952232510001822569790208270381207658641351396096130777654558301604387080618387334486221972085295099802199048323817476967135763218522724979979644428929958811572661630817573460414928268687665546277771094168135385714686174442501347243525905716656943749437202733228461533203927185968082520845437888155719853207953558260254881982979687483365307764747638391733298307889354812681265868433819484410527264546833332671148396567380921654800592619937753967407009464805217246884683563425523030057468974638576643702444505870690105383131122744763818409520047014400658375010239886863875405988303896570019556316212295679973387551731554946344516290831672485653063441943551390951543722876657927757194034717166493515416000466421536104274116173765966835476266554213677070316179392673854453168262376694900267297866309290952903917147524650901681647808810988778367957532084340804439456464293148543572139743151535152966358930464417188653224946477387757099629686156210807665503142577433021050452070224784638903947810640824870884054139523147709649345803245129662478498925139426825246809001872042808109957594612461934677602599776377369185904429118227274982316946899819888622142309733297798055583753961728297883909984642656222056067306810173013299993425626032299301881042793874737052048380548889852907451850353894291469056105644273693978782177492930454854725702019009287707881468012987131696861253058269038105616653468160296075678614829817466994042848954890003813976228435232284571148561760790169348382140601943410126286417392223084956160589020102983213792425349606050140456242424618716447740343386416523963071261236368405696154150784906427723166304911411170068898788366528849833289548108809865177362321893482709296215581037123045780065859092920711120258567133980572151810342768640956676249977873486163996453267030542053951139757141723010423125272349093814324587779797311922519183399551205006682544823285171990793033407879362050267037768785921817680647097242282258525657243258999084457106903516039153783853008190072250857954405381994872321347946866900739393358427754593905181346033926850601172911784359771399164547773475161108966313433518628594062936943316958001449497321475024467026435114339464466256560084569636087991849016818757106397745978680841097205440777336654479743684414310125872345344538545856065062118127158709712201761380491502254548241256344008283049487478120311062311757881532327986305313118347517333244824097333468218006231449683294734429741892164485214693437509598265692459982962736551456416016349839239944463221349132811337782434651178496852740091434479705361671327240444293750508946781155614979530127150813137042699301957874840017159870851128008655420153588452505858127656749830057222405774878671318688253210028455666162575337987354336595973552971325663981331677958773188493757003184152642663322013510654315760696769309101349848829203932524628274181622613908267528591847687755534385494151114219187884240719882396316231306076886082037218112274825175397941170020246259288983338263982206333699263523316261572885807943748730284186311195119707613975983421780913367803611819347894294217414068280931545546244685744749485868081620892247060010994790914080672602016183952396573211552977471043429692704606952657058036620054727681503254121204728694481914675192399359137941655266246204248633656158698091990964548670045881274800436191625581504380229956098146907892036279004825726485684505221642201001999832657880975300525555648024903128012284888157889340133692161908108321408575656886153362728793008717897781635682007731904182458854840651047486565092204034251441859777585160829852479409171018048705002029157438939762391556431823361411872334990250000543559986503769879280002254546766850999852710923626711547792157905527340401195840876834892329855113781851920120261640888056490262472908656227632882837722352704181526882798904363013155913515062323190531559601724434819166327529846904318327539341430461927248739904311101598561267096836419427890423170044711032932599721299414221835473940991677415568869515963605677105767025906748801146395421178682720643340239924728328680007941908848903168553844693496570081764867298644533896982857164173473806080106283880067959650851595737297037809446366883917461202465005041072377839401233639504602723928800943534250333868862329277319509969824684630154174928704685657629042755977953035180068701716340070943123703046506415819268263852746725137934518695880999977307600031119519455933531803311606266862345645991221567512569170770362644183867819500126961653033723019937547399091506969537204319072752485277483064481829921005090216669536333024677807814021902531938081347296138333662430122386639726163819940339461702376201675270784615693912784557328098105741551476605075862853135127997764785756163606505465851068762754374851787549524386265728085681227232369435465075743572333398550359206092256263720165373823262533023277479257458402211296561887796809546999857752635251639586728836619412930489892062264867250152346423964835016098069650121307322122401071282831526805088814920363865189170070977272305934953330938958595291002313163506968489986633734071141623414465194919176403629603415726605522108478758689996132594869900103958798676903215003848675832823165274083871429726787740938350204694708689912811211773971209954977239797082742264965190473068865785355781602617250410637370901230239925757119776949484738110918572467776022708838446259408331433195101840952595527565474066363335071830510257657300273754019922963895779900294499641237467511685412403602197229014477318437370271368465950157194498094865356879713595593466480493932800756567643550586776853681692834303582779589317453802290234104568230250502510373919801114036769475192320034355091335706662842726674578192724510905313147419503274979123691146494706257498382347379001171682553448822272644110080143550367056382976171026789981547610909000838321724124461967327991250445169503931284775244032597080796369388971386323298904153556836739726429500164887409513716776594991434986552333178081381780638126437842567202370672374407528523283153834952681674978018511245805642907439970517850126988846609961253459865618310352366861315332724472880748870578186342918623703126247073133157022490822466839028220705122886976680499615935654150613467791177162991030164185821978941669930372351414289343940088879216002805255450344821955841045942481074569454281456059787887622320083571568646517806115349184361208218707206012248241067558071583860803597530594044639723109839528758545677022930480244254748465897932870110890759286661512094491156286698025907379847363648437432133236064281541926981613408973719651809123786199357212909153815067935067651013491012358078195458902676769926022793558592131601935441996708592975124909934614272999379639039488982405947709116198309139406099510016235063119681478372696695530126571272106072461247908132112262825308298526296381040499107232163273423809648679309500930299544614427891127851622521593652182128231053508327867364214489761172238489331651672620540651169487968736341741842591330346165830638435013055542108718676170910298927025604074202496163533194305823815841865565877141187721425920871587785991643763572399382725281869768870961777500107716959818293861584590145586655582460361288103093327004127375437023437216422710556201187706417889458862065286525271712060024907242732793615079196677828972969130686591181545214726988216243355138943809996445619414695567941902087465295208734593208638804620889588872046648972238702999919922735656588967075093293761896487116628663024290030819645753437489143913292093068235655747174334202398767655136806844565578356257428910707107853952106239421753350738993280190261874664811633140667584603423292594634069548694407032743432315873828869502508137481128345022219862956364364524196568596204223857528391180084504596684082617823233284217196918868548376810535423530419522408528280089680118807988866715104463516835542194769602203870173194349964186681746340705389046342922971755053992647357914564481439899724221947710033408861733247485933472293619230102304137852557969540983632720751678155090512367819242250862489260527145041085272916157010847920759651136807672311897197042177465484533495488123832818036437623612237450972035029372752089042300118616274710749653476921241046822028962954537824367311154520111188829176839111054426057152347130382163128446896601638274949196082671931279313615615281752449623847931226355770735004411623275286265932774985877761580684215986713926434613104097470575742864901903799619386647505567283386309757433130220839035285341720579836468156155388224206334423959461234044919112690189249110476961874715335354093309354723929154690428008850523061781080396359271759585417227420461953409276413715366170447052137879952208619996934155073710406485000062625800974508925007161432032889559763240024060134003152909688414081512313417248905193363750842784693187530268646112583871808247508572587009684098580883263074798977659436733095533294748464559866038689071675527049184848849385088285606126922240961098988643195483260917658169357297191502287979120041753135163883806526289706552066122879741302943490759639854747570606213405784055622047030533270705516926247944049257227396291329878271794674915445291384884492746740474853717950397123057708238346723174808465032925670739855952122675318066854909261181129239810119603405965277241848588812911346765154872926049667494873566886348250281039751228154948756298988055667138226375644138859508024441175137526529880268433942922606499921537018910318445924325378815824065893549860968774913901840643516208567777598097452129489348991913771288637139140471139243403916949587437965821005615675112849156575817671990301720278957753815901532498934793554509739449752764454462639972926686276043885008815670422556038331441435326064285330297235770985239193546040150500319452930225844620199765692545674889073637005025726392470596339530280474909763274835339463221254833683047284534679503452817871240963645645517614487057164925917247072320146628064325334608668185338253371427389934900364050032086419843015321486695889101670777378563277231405810939621752419939207622240672362342360166268904387162645412088805852063513700888045400885477516882941987724245820417766368753167909086858689395218518074252296605747212069161176295250684252786690976416162387186904709310928520885594945929965313689844068773948873514611413268722990417205394179954284749778577064667092967710731728911686778215233681075158650120137956045623385782166106907504759598532264544159955783061732431823154081633168929565401803198675226466720524117589026826229317624650082018644585919321308091498694041286787202320484689391942050101378109313602064893440739216036838907200704412468706358204712509985330934189192602594901690892572483004524306570244756477755593909691690618910458110422979660548987336871355104140892206035095889383667280156105291033571410572149953525691118051092138754375057473590836364716302558993031849551245969858694479473764491624980193903105367585285946291877832167810380568078361222796803157588308806969492589772769051160520815408812137131137077741683656970811220769631796045968438409575055081317324106786131607425729601362224686171047239688396107584720717697507507294057278644917301779536316911160269811017419975936424522566783971252033818318556977655479062022948423101648711563547643903275630866166584599141403695939365755359417443935848825943661342235309191186326123755176373711666239819181920032761872373860844490257111855645873286073628510445881801573117658608832314332026096196768974484800137035986811182765288719740195966387497099669733926042499806978946762053694135241774651222917976277605675853253222258891382492998023662106625319625645312407746441674396873841099750189179353081840883149523716075988498020520748884300700670258865335181046523829033194733736789886516912617727730469087426776281673311280994826295429255213531505541464720751292866948801651640180748426923301612349146445877126860777467296560063178294242992967678747261383554318334440643795658142332642331939664898143307704300857544038266521712864440180168665850781975083374886447743934934931620315912896294596063738102929823434993696907165588681708734434386118466533079229998122950204626567962425613412085690311103534671236279277191701135004402543824658806696533761993072557164607904510099214863266086854826402179718806769864014775175728306052696948980446174845813825476156061460051909535273071508241818013272325112124449161164797195088048099872877154850138066494901113961077622465487300247892491264967381766999990021357448882996466783462362704259617242662684761216181975175393319543589733442732839765551782222293377772581536250828915809066961294099590858136081726352884929757101627153665260898268032685489466788512091368617430843390262649412068363721361789920054044577815757948674221440668265234380880463565481620672823742904172100414538600404791897633399329716424224464950322520540221365711742268072151639539764017610653405564696324312459708224824142216110899332573890983637176629993050366066168860075495123364889940438534122849645518772703225146775676814680213666091594123754248591086303977450373901170954624972940950555732344105766187878838033068186743182291074932147869411368542796901815490311611994855349989436332106631041736088695054999381942902131243922652447185439652207827236385846717438019233536065988060365036210848281876095719533291785096670356131279618681800564903398795348048336343111687882043439770642182136717416325246791471006494994491923126923921103924066339063052559993610902249046236619843925588983758564048412043437053039557332439838718871504518860509380444974107218471194966375690026914009133025463717217688785701994227629748214879811551119634216178422542186754264301498738475918627941197498999124267676455099233533256971049444760305128589905004768605599591084640390529791721849019885536314767824254105716773667043045370811660207700566344491846860075762456139794361146316560982366019954073731313474322874268477340503292923471585295924262365930005974458678228997976100312144373599435764078574300447295219613286539828826381084697027067731612627883071827087702318719932429960227509041567491081310591222455299491103064820777163245276617731083132780414912884126866529546031202979499641379593991086262297340454802034298922790419126861735726342589268648971989367801735847100175583066947292461594222732947260890038697939671603250720673423742326906847911364333743972232854723729071291527820134808251149412352243955544842319253985070354194310175115746780224687308085623468602557860144562435158450907025901807576869841773006347605972602462672334543953144314018342478554291855035128847775486009891066112528309481879920752633243264444702698874617194308662011318529289652032620513125608561116180928922965252813819047428981576170368950233287753605115168623134547691355998389828207983299896266633581246280326818071753321813848117025765227012528056154221035584700844904091778999087268273997925004061200834323379080155320664469935773052454430579851046519983772595017412228803515866635332408651325883418328475319068644658304050066920452072061842599159272989202262116363906211215005340013510149964921560495676276236970859256884769976412696991900578908851224990098495708434882810992453537712865306579394237582497875191814663537627546824928128221714159098305797691184933555412730582929034793839977077425963829515284947839220576734777903053361596782346740297292243560876958931403854982905688039797666715026704505273167063423735695821845950335028101197062745223522144896687614248273785611644885151279498117666919067899531217401872993596930588625376081887565793478900305544367192824833099514718477055931069674884839359694084878880400156392287257712082816714006528871427431538592038261393868874896510363243888576783216613976487633887669141363447732311321579243220992936713635840518253449101739904971149661028756350223014250120686507007143002790356726515317664021716238891098643583566380247822638323952174785785262037911978027822692337874577021567534903374251244678146345441322653991474220488087408755463388020781035803168613439261396213069150190535108489904349130311948779536513386258746610144258927397003775789632216842406472919457767595552939815376525890600434913508195187389741565831944220470782466643004938389137415851132474857609282066594032356372066487272729239558634470659368916957307856385139397427521276397690935853905560539039882290733822652526696075145223966212905267179154812021382259992761938144055634779018404746591244476888813683728915507232420266630451237057351016614131180677562758337271332343198940226020922282919136750741359508421273582486708282303367392407632771134128337077100213709000080013256630312838752953633205701888071157701192341479278174670379424837796909244660712317411537703280715873969767776720413229631024810149746540123111964339234832027938496987204749760824820592545929504400273788772939407318295475871816501139867377160365136865395805893903972436164743662873431007326879645105414438687749011669959308214250975939901037025122178920486935662570638843388875631173430872987893137015668183297190765351581969099311925533635719366324477579900524064451997712220269494491033730646241583038895458490228108362100516432181050094449260382119874242291340843134291711063715245991121438229609649615920918081946187083673358408773391074591070856354490647671458208939690647891427219456091400949496117104837535941586872999642109587897187911472518581152866702353089054826282165950839691800806083027942218078914722484580084545365539320097755220106958118475849906437767696849421939869993046929798939764455431983670851940728802889246303058008424533780619630664192809961198459106089262385602564625205604847183665456456737216792715905830256399234105212238917589683072967840671896266753978492819343704900611643464278932524354370759562502371879641874175600720934562817425600622331674841936705168276625763523682109358138092869794562540902712654636385948513922463384608193829361742878073658252848129167700299242169174112665055963251590667481013632425783746400388254723640195057226695738414911204692047177970801191516822690521561839950172675332250588187878710029544880211783962150809995578591269605800718055738847232524135998950646091713433776148323301282316417848955924889693090467813700217925207472316415695839698899082840386195499140385322168831641131068126833164391466745863805685323568566411542080910607516900487381030298390999733422232818755741361057593270211855870488034521779874401067818030082930648426427072336217014409425913587277830561596427377424829223062898099086909765641984783952163581910572977803045863130145302937989808182498948137161327757664800160553971004383460280103922038142805590195127108341715741010100313459381955041013563136852953233024700095701634526530570160389444506627177142665224057768877770860269679381383232576154798346540691011109700811924728351077606048256462406407188660597876362361015742412262240397961537659928424600648399485137473822848776400057682474492044109822229035746787684719582614842921772288308860185698441140200113527487217568636216776057453609460810152613160228000066638823131261535434239773922203234865035256162182612345007603065220571951680790085459666940328971811267080314780308453215304816695192927535349739034107189858225386381381641805958066332383469980650885727827335522646955223580279922721774458234619950143256966817138284001671675522631442860382996529826357375095842690111286041998989443380615677773264732120268141480047132952088696084536403230997345484473850395495529719695242989905041597433929617359122125949100797836296201950958995568387778284617037689219158377943825857473875296744367748412262530195544611431380414376062886668837596137934962055085355942675351037491009135231737355584728940735975934241839821885712760886002968312100395741022190318175887734696008990314213545179470371547306925415208052381252542639451071211487427760439424918772460471402754874970552731360652337329531666362068872929951798512102975014754242439107496719587850734124358911034435412544821854766737769360862487144321378563359238203110521023807227241554267507209673553467823969014425027584828221971747367264035477656236486255369311653612827812046277808705893223729013223390756513474292938239670546030541712922617914126686283632347069304550103354330214403567206524324548978558369240732806285555839785163025373349075001100675099488548116995316237948690637337311641262817934628620879110980776817607838901499139563539831539086688005974291628694872279955346382765152262848275223611966176573156535923226381315081556780685658705663043793572773650245773383168996839165662697748942360827435737241683727618998354969123048371451104381479430473298719502403213280422861163694097637657727425924059888739138956285765414911454511964692029220202682485142009593361989580499958394046642571650218408512027995302158645381516851025752411210388430277855248910872862908398773953726237617347729240082803310064177303778676611873586936567131088492897743598648796465742310364102509730035036799433262079115342761082660104182346721119240832436910562287707508740221716673841806168022575514730455584997760762734763793386653769340895390048802453580125056610112674992926817020601110899631106722192486829816556554408156044584210853390453342841599442928369433640607906399990425395216772576932792989868557100056462761390192116397396137432666620453668525006468670971143528883063785193539041055138294241630743074547459316535816563159159725664098506326568055228160606340935900356080229773693142481667421718841232154528573851148076388658736562829920332408913152685452767299202001152767157852188251216970075146661470145996156778971330542176589053655623821522670056328107136242148373912488207463079294489706372357300648463159841534325697411733344021961971374557487147613959859583905317010423097306821298336567602342324558284882114581845280355499780787460578347308286125685975813609728067165298320569190270621543779526439301410507084659624486710401417897257540892330496870817206616824693808411363956086449002147530855996591842342466798683708279060584899323294526482116708512237820922811015226823800532211376371157672271230197469035635704273379387905634473615897322870824592543384841528627220483179708105481968023372323505624065535372776736233969202650964636042638870192087072514582313845306691194780183340106732413520298385009148363727009633688373847418021040196769571446657058460299985312746804433301863805673950215370885086084459262253356292104044227358414589940558040366725131909387491543631334033175016918134377881220281004468721972321002500050372534915886336356700972055363480101088192752083666453715576075448679824268071425671150988688103641688538351892307879021810176883164886192331303341527771224693438952393245452013500359264216431495759199169137446005474708033695363997299299681572555651334840119356165572844636568463073238416184003182865814858236768881740642210998580751816498904316629902043335982559151988763320610324919620797747883776424517101086838384738230191419734176289203948826638711866003332149001997401823209900253394399688363324592533336919142936752855052137009482130741284347829356666529373336166775456854581853903491478532454357266806166368052922105479289673446191537386005016899662762852047205097475852110510807591910598022717049603642185259987999276611520824499039609778836743810568888497499835579482952530247503449835787029618246257473856988664276205275384805297061173227773923697826579512176009247752362422432674223470728509485915036378129804948398861473177277495612015796305558332408650349991547343962396498344257562732179620443262927388722675334116842263881795670313950285557414101776748917448040486877028112469065582558382114272743429148332935703591401811314856218416508925502633870720889888734150001823222161383819260454188480911109779418445907925155020390633795710793038233081904765381737681498805173288080017234112560677741322456749279407058235390308574203915409900852094835796358541064322427253182782872870941244594118334008638533181533907513934895287267549608961191905551100721027848783176400678375548188467314340736847093992511907325189035184173825104663163147888856538121240423201453045195495644906602225187614053989421556961253306838382655253829468701742699607196136899727295124621960212452454473580502112248971068077674346237110500109470240150554098028253708790543918123059018298635738847199898085713794258712506434663412551361480597221857926695575988230558541327328302640360753274691877976399711492878457564545265645027803485984966379006891354746360602152052261003030191958859225734605755662826275285296463238436164425940209858452334062099724277809036942277616498563276194700293923069669234626771783965119677813446431431624284085898050800673790215154097163985681703442441354205710742089457880699747602149826469392259055277315100866274242254676141394205662160547513507873406811478061246435695582650586223905197123744923304328276900143708283643677985717380999873999580805647116690206322289987293780890331501348476765525166193697696288326343588089252475462927543192052867899818830968228587761529251494551899713619383361789298566915314820780899056802038096526775678414998312281346644660969918748957952801641130464468467257140864442081721217308332784598633863781495577916693561552954472685174679585983599735475509660179272390084795329362613059437890895545547298475621601941234280237706971549823749208171518571046237304404479837463867626217658436381529479366574144281822031697537907953958319024957313392447794618214824176458256363168716700042284287024600850630674326653317286726488117866944500878508095797839124792135496313892760140100967863377800882757568974921143368252219133369075295137613572268323616641285311581747597685812105476293891109391881066106333421514639697950749959705785676572888818857663003769886946910521856111489372960893504048707260723964149621599505321551049898222450942515085493327634249714311624696935877981600813430177649852159312096727785745677427065508574603178807278367887550414266933219680473090050515874435132134893058938858977597241122918258301966435000330406878495785635687744046945854887334264548485343451885607995117890438142681749185517035946227523371240733198532023836117611906012531371901093352636947624109601367345434443706329814022670676814442803605742733667172084245247067008162118335316341558343163141187238103759606012081669468465387477970405904522334982062828809591756195553060825935674036383024578419254442604783231449221816390508145084436204226912641803539834315491456559083409560378514160975098664204006352453261103107669666484612315349403214692702281594641125972583629549040533183543674001393621755835482432336091432236355666712927305782921589271131503481793713104835224134740235714074650739964100879716486886129449067772513847491950591319489870422915670254336118452306838766442837307368374266683811159055789992113512004837859480231647818321139033691896293152828126250789791902301697696287369860056976430917598165120977773508685147843504978746050169108176175267709816182428976387612018557275588245386752041104969446849318049526462136579487698633938640223159643914577082970451577950152363863206728801386515596192026795030258437493784373397216899879565973231821584964096908377399990144748975438084381182120629194678161674355063425009325359742812279036926387692592396443958999731697629044909612012288446416157634318225271633236536492798263649345719778875450951424800388732833400232533827179515948832228796540723398872177670909385197852364496001953952915379324385635086271751188409904451116433458952660426782755269151399124443370149510692007872284899240832127314512095506427819022353955491904994367500934170737711219448430940440810234741709287585815546031932591077415084662340153929844720141418048166764683805116471525674908016958586106969622086826457227750540803293276400173723276161232888901549109849294876124045591052533956224261096467689528064543602033914434888312122373349295061585175365877649339502526091330159619597564724187651164773803513817426414064314836360122214921477108298283092068789249789535466359321532027677715126148399321328562945109141666945416137237049071306997886493265872946233156333362961375055566534575883135358236248090185454395967900269087288635860355256132642070798293280280130441800869227554296807760948876544955284217107807995751116376763640024314464485832748260785110830302284361165143006247437872284019376678221458630891211240692937687493728591751630236419135678464360760980938859573713921512422545473731432875330363445424750183841828540227104852325455069802373123456470209302111472003192895958509780685650412987829798100604456014880053680800654540772918560909670380380890295401760247147168109805238140444935371413050721300514363937451941086585760509453072168687473995713664229535897770463239367895178124658424807215177828053395652708307642702347491719951403684945711711177258756023135551939061270450624709153448630245782734530003456563000500935076313899341526534847965207232680235463582117278324975736577407881671388522860982323482015196229434240232753880083778599081875604020885747103651488428920084360562566748278940255052370572880258180629274881482463109264705524671046217592750204416367332849731081713696856249467339323511035749832353297609133742567719474065145963539019998119221114664122062452161173388054060039466405214367537063058938533279385643100190700433498032539723853726484963209855550915716683104498438745338875651900099004805636729359960630570265616288380246954666347314221734862191841541138422688021157735882929110047428288708059867668240833566484694426959951821899332272607056307774592655672363599416514448492289834315950732456470789190506894389951527424691012816167489200976441906130698195224400318325804508657647862217373452572799306362717096750949402666547522913831960914883999416174958532802269976885314231567652839812904911956964187534264227404431345938701965149715332338161455812676547959532294887225634427739401773111585046015496060442083888689760010051546144934411459189031772869114934327940044978616462976175477918125885291071193914377299840509406906085662616582893458030509556317856289878092859028871103169004316072929449023174542558698295582004904615843081487948393595804330618811811644764863912265164986691896985175041122518705312310893524913385775478700598709312701244695566404191412987135612364744660058039612508907492967524720285829873119702368651418878513264951737986792761006548574053720906075511834576160188799025605255948179722279038634023600334623053856024333052105903019715678108743942420326703586955075731171812571925681334574707383786273116702023164979774152287062493262694663630557276822883824129522366097452953195018565103550454807427973541775652407580567217824025592159863128489406997835021787495806723451601776363896814461356244644642761266779570094265923343673400332557224555210006583149563690797195279089230911196970613439577831348186780558020199212922078827118173753870370137273153237506314176174347209630992755379932671495206024034182429493446198761186607933195878629723407473067812887094738017816211548446422983098532226450253363461215221949356240303099317539006573229792696617997847221129119137124914224758146921200327990110608556351431368415432868194029431573071439257866413419276726091231324820530003563856035723179492045668255378250432945174356461650363234049320139280809323778711874204919489283632609131203603449310101523265337977368677738008387441582928564619702487288733640100668559550028097650912575096319878570049991073674952710444618485441756554492116708468645808527707100189106739709633395774854698389190493632564921976546471324876161834685943883799357725060053007625682177365158213553797619212859975564307764630610521159270233972311038295482774586041583142010162940078727468037159356036072440716515301383007040984331535880064266564865584227652916243759794745390933538276037561546210223365902053997033977253043834011627910511971604874488263067913330447558389370048712553011078219734056821713307301390058172213767819983481790848568486622946372748035177051063286036297435783544113463666022635339829697551163436119167514475036485675793281311748450249432335364941520947333254358939969074238466224894630147453462457298721155991440454422877304519218385846067406163277614936232402671712281981845838555536928319706849148079258297310321904548249798438718623425610245618032372035658472943632632310862759196482619847213917355399825440800630875422642525251670109709847832947729652537850901198251035546201918444902960261340899423556706331959760065529904062452387577754601775502637737095873207235199325502636479924303899435007379737506302684473905576847431146306912970240045599641678454725831526551047273097772411740844262870683663254678967635081031756261296872487949447920211074819611705147970267433100590657884442335109866471737701051500520902916258418078406170788904215948670456049823421445481829041419024355602232480707155564391947411971122857499421619721629195317484632441525409418119820055656760175871231526554627895524009012084950484766972655257129141800260001809242253627915167245225543406495661935093780844437240281363573739321850632699756358040333290302778074880948463781532418550344385736982794454724910449432989852747191583368058493267707566838567636108489225552849777951311792199141264086034425640522476471028154442725077660159767696504716132816502432594716330902763206882628386494257367447472418426431077278921006611906446021242170534045055131293453945547787788508093196979117370894449649745195184131496781507187219832228553235115029334170509134392108379115451860977532804155160952538436914852473938083574922928941442266431311740481470955256467597461190274182555578401444078237949565328753974317137477888768983089828874908594713539930993967313516298609183485163289456846463443763431360097043769876610009671703865172519397975289012269756627655103113684052839219545841447670006482497300241629115846151052230648768427987607497406248192399266454531578222009388146570187915546357183838496342124169219888920300511211890559267480390192612610435459490727413861233081839260895791613770101490862149256874680403328815990122678765153988662741501034598528716771558641700040700728091040676635790768180798611197427311713237907804743556019764473338628876572043336269489390321527523351173537483308356062908705817687256431400782574609660320072275933582656181657807820225074249351474466434614255481400865778807550642816529585324804222775179372010844495232410770746247444629483580079882871790752262956038522625081071374893483877996022950500005685368739734299491321303675792910196049116616607358212072311452107627593710673301535312876276256703121912516103899503231043004736213167732863664701949968508964796267152361149343742892679370286540574060724140796605182268283161312141846841663041692257184410877398241843093786403194837946303096475725405159616344450793996269555107623927029591487290353013385309486105347577366608430823956645610046141152611683120208797927630448320146845566811211206697467603343672192874800312142006021524351820515597118095796763243379463055388868541051506187437793224523916418269154820135146012248541220361475407145303170935213105730246302713311799112833811221048708848855248663202919866673981982893156377276535222617112466966445075064433604123874323393884099194972464304323922920310206095845879974529167790050362507615394679173155292872689689477895544172063031943876841481120633288764961461185997333936887815094106009777261578929715719979334636075942913605177912262637739627018845648095557716982034683872388138411740974092848076947480766920148269489963220634318137146508242314172860991339663190057022599755868552473098686394376536224746290520732695285641065857840155593488970977696283142279517530271571358894437160535221736325697149046813995233725721256854011015130505869460282207392961926553519285941819668468349060676374558415648905071900347949259408637202351390906881265966812225538528567215849017836241081433136381549563916717023837490128685035001945589103126894478333923833865544319119485516683432060318167836266657346763304194424832205322237797863584044339035401649532080792461778386229396861101036295921216062918194582793937215845473783344762787964727107060091585482367525695732162924032171204438200561025234386589422686920424213531086923029236532501972511622787594033086271246627565079241763746417381761095894206758569469459885322590719211314901043499423990771206344493718887139737455571729803730235854586606300168913186599325766184527453023733420495970098611480557533566772648890565528954502556110495285730074432143611982019372168850565694194488087918676104595517752705792021481280515923869942169204960340369081279767266680939880087808658928294744155526985043017479396494600908913511373683768368986346299378370334290561145906172225125617436252111429148063366585367030111131027837386506999231582089093744502991699006270207214483827451104743856366759968252553571823903082038156514168398615748431568142582433859684402710319636697858266331640501023953272359856033067036107752367298469298735432861193698736608579877827050686312932927864733270086378975827882397891257021063914867098933114553083438608939252984444165341306511755980454809612487678369972172061694536643497531174463928264662272072462421730146557040607357955200646091332442451408871592393836795443108575506559451467532878645081297723690723390475245790571805049238104134612936844767105331335272748068600668652916438243407617257042030553837610882684594784380376913781643746681907766691895806694453608411424911177205419669157238257494069147261713128312709227738351909499162827635683168263295211307074594358720073502312878070237156136865205139003623584222619803648829144702555140722067710633810395479352764460080677013533693613222457198157996968310818808955289160017861571347900154175511006170406196407964110297605423359056380232217596878726529015856914027919090300036328178138212116226244512897582743670062570769845045482398676871949494411715349839952857214543189915691546878375572806347275490582517850045527674568803855682710420887165267067994231494529430157665909658331985499942785084692642969637275162844687661552904598477354111920023066846540442644464070110858316084767229408378801969763363265617146457233592894911826947819382212754002271160135551774695402381519923794374754625404780211761502459876555029006683635521910840932269185476472526008935793244767601850301879007209847739420311304388546169973840245634429270270692226258230043957871292903053440528622612986261985640589349255405567182131410004911843238185279542875753732458608920774338390821373087144238280573180878494501863459612222354718206589175019988420072080323647021918156672502160944296519526240445035374394817771224630116828929970834709202232448399387441989169103630017627697338150152635791620919237678339629302344973731359507737530604094350618543109531646520461330116861326806784664396491255555651877168879282511655232752220172229995592164201205067341346991156006736764453455472528528345899322551532523348286337202517303198541465405459413778904452518090931688545273612592995505309473421905789518416400686294263110895692171230018204562139504485373215173928423424226087823693365799326120932735698149902159266578399246233785334480856343104991339328573920554215279465611592928947109414189553190554745236408171514052562122678284131943577655334744714349762346250829863769134009041377787979454011372422868919005168137693983861807044869961843153791692045626643454982572558467754777107976587274149287412993125715241542014812808553577634652846555912555237220548832774414679796443531577410945068545552754504458498535063294509191646692145631590901890794187666426718181803465758133139334720937543682777114421259868180881569200873380242708359395674204693716210304869210465721410688242788777256463480915500296893463268420151893120089523167394781651520082013466610240987170014964628200223759253112494722526133463042060861459628874974731870572663810183869899119651121358214951330741944525034716265043380938218079818827052821951849465149163136717331920361363879837611927344176591487507677274387705425480556147707551996562521125464734142846745758533388310615111687363926114795420188442151308455923258443274960786836378496384963294121125707807966643838503415699728532531574892360164530494672170521844122645779600220111495677842852134419710088491424361261657273056325183235948583887686480723798170288182371817513061593744870335036795356595492787378119717791843670548525448853093503854731289874809536279907817905867952465586811608375597774113471478031394390637332040962928434067568607837661697252032307257923715299533595770916804810225335969908401065572318826418914621358212855814295132600284659418006776615915226163706280630146099784552556236039881288391860604731964457538989541438439262083301671026381823590597516632625845758340241463591165762711927187263755923036777221085357480846694197930439489996783293112905080721468299280694395899597590952886233088697749595250135215155396052035403566221252115396325575314292502377486746930008588155591398018719992053857949240100127037911868062419374436912035729065322167976977366351067784922653663530468293230944291520153817655930896315489406515274583470003929293208049739159901465070375183512040925366624972646450499331869615782107353748563013044830640151912386328790203783860775634012394334291635846472379428132558752822377502433719606710408669609969206603139150458234770116489579731149371587888237040471786506250299744385402658551812923348192181743417812279208974463702551828358116240178089567883320160195321085265295649748418222711373910882921396834816632731720463564869796008682130130709578202677508157328252548437751976483568842989398157979883397445864501089488460522881448351704608638959742552727657145833413854196698514734611968164802612322632574757741513698406347557423902902284510906222649888161159680176926152755952770457728715744562496072463032029968688954891085051317799350441716318984579732247633043656982852848180854972306639349756138974183287257782273036898108909335692280384600539554574078835309454583385789722212764840518389005187822182320349645347731859996655235620763867288297273412144655881320760772676524213520751274257254617754011872535344531750755713908191684911133691953113109877068898958985149082105502870178541196236252219366910933698192768587356748414261536623343197894417319910443062117766065057413127942285656468136744003653475315747203639836187194624088823975420441582986092626776521357306241451016909800108100811999623882786442690556232274774406718430762168135819611545017778240470388672562676519861266892715172211319895701069668419098111684052309262551447365129602326240850559906121170814111850158286434718155689378549323083866692077343650256852813311240196341731132225915443680484441590374127742150927911053071237845825653367892035380292303815786640226449482748530415849243814272356554470211945680429519030975152348934621109780379455268734547012537976612825439220574904030130859604417666225070974680852140415545827466317980943572252444424321704172138426392829488043115501878347199370939100119689159207692831725367312423516789143654565149051034475101507702879706917243929155308269534031636813409299200017382203094224847927747508370114967717760378739619758809925063433937655430926230995653881190181531909624793506547480634951038201251120203153872410510037048195033334411590226501174271620080095297933353785294414573043110095087455556903369994347606043336005186203819039560927124319569487473837693776733308385588167335926219871683928260754073924768474543592753408505772621600954482180188257441123851634791814393896751327426802322425807427102662028942013509563632744204734882922056303351840333816964082930844454476384304740982919098654317090664577603659764416449763123758533861053292625505657010014816600863398029973058219863125693334094120816959370755037165751508415473162187881365075399801165870089796104031190935838503449119285966306704048789722539899033172910138421395834437175653976115794112794791543864965606000010502152318343589642931305275171358534176954581500895360467994326035008123747089003757129133601809709242245757074042838273838750688249050383718600434404052329799641591490360858650994159046639057902562264557099398747702992756907246668563219305738678658977532094339723610061487879241962750992516588421241302367985306043904070625523772996262888920730827189481948496227378201587769297625774343455868562051093130229281838301893884706861852418972410814654126211734514331316759041210469612356931206481608104818043145546394273139373890675231293286916859350852866769349170727568100316214516937527396704705667235662074479859298511903369778103288662198200363751284637647455354487002324587964541084626369605880748832306311346239060392968222715662186534426475081190046459307696703128636648939683091042929793152172001429092661927824188819113850561458493571514592887112597138496714134941634304810561585574741102694787002593099280347563229333879241008068040444052891312877649920366112932046599538258919393285517158621072609053252108645973918374216908058519771717735727401720937624208022843239298493054235980350754991678677330394861660436032001915173858139410444540456684497022937382632493054518616826532843518008605007853492594113014692346183892163228132991892321828746465336542247409422334479242867999522787976649339032259352800801911303330180817435829851845963452656723575926026743532035347101721400990060257208148298980571080986886410553820425590579790081110918313812253501256189931792791060305178931225952933565743568794335428412859457049318185323209807868789190085902106069697508494298680624933248821431803762675852449316526505563908621132640006458753341373904151474512895114313380734170461610920199866059464429143033452004806487733226485838104847826220722880466777369949481846344757323327287724982189085610925773957671914430987567407262611983594240747786164361258368077661157981466872777485626426594174247574624259643719682081293360793784228002969744944536539537167243762041420798306021689500737137537643023820804186273154280297809517509211010096935132270253510231778295404409232954203780244155399626037298569867085323333337259008018190328607270449195428306068728101945226883542175398835477422323009043650481431941287371500314642720225135113770379054974990662705516103878941053970867206172243300453718181882216585860887957953596395454173530149632374947695548488679577407480172582730915448363870872737977546071983344885156147217461061665719665432895704527441243693491861273070872295741172331602339852847391010166257863717948996008250904423425951689735030822440278234600793173291471945535915269595962676979475750856645023176168888159558679056183732835858414518620088007095485090890778740102914365535220114868854347179649006056787587860631122211085957443734532627775385583893954991929136640268686582127353542335840714674196278019960669561531029581215205761251242171345995696489973332608354315619505177777533436997039613254432115823209758549786410075353908483836613298317270831731438943942655478540998579083684958563756178072066222229739345410722243467108491677685798262107715339834525416358377269347058198432196182508211104082284778620375545198914270033521321043996448936177003050731709513607189217939800150531755722360206479493252792178141020044825851316110878774210532674568830266397425489605116236786734643185545034368363203685960961714662210480445273691450016272806348724356002180970822552259760745082232057588246180675213086184325367556396256822763572462979070249122876636650938068993191138614960737206710794368289077745777841384881137075916218596196465659917712624172788638670496729757295267139843319480193116058561075161438134646290550123424977185690057819854617814281823231344880173787825292251528589804074486931068103961517176921240613279925653512507411965052126679175406694258172598567525857664202917152632814571536550694474917862413277236788920157672538965801406534076755071589996497152249463907597558994568521663987795501781131886751564389995098130573665440293644487130736562084204695828589882003123601513269628110650996326173502017435368041386109355757909332059676514332005882655746736484823010881789713154761751608112613932878430827417981821268582726637661138208120831205109893735372743014953623107771537159178320860416995216275923885488907349093411248847288194883269431323002620514961866798520324878018192369850904930607473765568006215482080074058431789717816378796347000989569564138576837474518363394682188978565281727953396629798731327870166876049328527968155248635572605270055209841994442839492318913690638667008982308357349149342771769766120047314176631077236837899244092783726521299555458789112968168347378130489897030493950894281201101259989830699401044222603655638261828806305200671349032041480068118434640133331907860476267076230389081613719547289257096288146799705890742670853236990777349650467580801648138316788859317314574177281242921441206467657019643761639517816164928689644765035039399440621549494724414257138468156230136654143423301117086669393921709760312451239991356989777314816402483375876063290899627356315873158517448959327828276755057460239105576217863707937248003240976053281391574682915841450807420987390702282736347946172920418842935305440331634543780879471614113683171118324750802503474314042169381707283180644041040265203294134385482680735796154632310761110110316579338015382985365472468754114072558242098660245423402616195531279787589928899776725332399377072879612112930912791356035982584380094369209565399671728049237410252289910802895261692728336594505416660597324791380017881487037535133294258124996672253649552383479741079897334089209199436613958938485102358316318759282075357227550087842069956113772974161520839676919446216272640416180964418960744764514291672306381811331609738174714723327575163030362815357686266631805631869136984316678364485945932190511617087023757668323690006989536096246234177200816412595589433969332638095265228885591609334461594431573990040456915607240328586663107538535887273760435205727913450426469232750845807554916705316368420403649963509777303269404605543374129294079370820300013194566873126659752890383578863556764917348113000373388987887405579484175629056212400993743505651464370671200402296936388872999453829431409438663344086899579966887736442349455041183689256289152740313447411406165628700458017081354622583062078313949014390303818114047323298880667953821322384780712108356315449209590682171733582993349654258361448111548673903687830868030672718463169705037776882124784347492797373240659701491882586838649865958361049134936364338441230558777431802259677111380852911058859069636357279910959686308548042649829792362322096207371314299520872938412091728654050131600018083067911309657618856327862961257368945780253056652864064713805157691706146463202187996165912285812586959120950694555734550770256766585952144055435529338645882914819321949165683309166214949044434480641256448269249046734984557915939401422887705814961407531500720135541123845668646096659799690214018943970209312927987661431322670879925288537352277417434900565962624017590419693372396735723903021744317152670714929722764445597547936669060285584448473896703613836534444508809865341171218973520642532706210442942303945671182007342797074693228507813563754624354348702380202027171310141886120760387695276870067959923480509143859503003228921753237238682363937953768811221728888332949158469424650020224873320533095756214355593305705772652234016691029575841609341534840329530595700391184745943942877548380134961881204363173556106535507157486669974152310608338028872924541199113034898500192642176866859975985577668593167221368185070338108904204596898190484748354080134917902599650627148231806551297285642361029096828187899275953702150095488097058314016391639106117734924670151756188136940997917716366860196519941988335483443696006719159180346644460248785721052161479560860841593211944038438801140358417878205201255455635476934756079852886922886211203324932290610176913980859931011974717986393692068305631731305107863617202491911757107502756339980812876533145935710264293971155103701829149315039650927005657637247072950895208358304294833208263501030219743410236853103774709384919690619244418559179421276994926441644856204643016038665634882820563326616863204128186301391408127417221281937157981751697175608397482173598928048356617051389223507521024965530633899080020965553713790886541518691069127125697938866108779134610650664782218458449758648935140673937583364357692828149513022590438183431259142602259354335198034344693745244025966715522435652517244097601495893870616253712065940258684287089032191340990293298770099740813524230930201921429823643362739618061886489298372623038854946199999320044010508060996772934626760084552414003394547355472278199990200335669543054517362584700474305220612434785094154693581949483175501611621264518257530128828299692027508996148603474118979116009385992477896766552231487848077162579767388966271671202120719467304671661977375400016277897589685118808639779291742758460014356662936259351183997985873975417390613341649667029947374880959296420683542099898373651683779557834023761951768190417559349529737094984658523415708352866516734430332733119876701269137662655010660645798216509697343352130817975512457472495597851551623239160258861181247892380751184793434995395331203730934949022540447020054706883122872487244300212710249319112192922419275807163212074357678101983089887002246741672165524612417503547868540362366908514554305142237675120118890982749957519771172646907034514280678650981870422034163859838025797359065756899953977900495130880949847761147747073390922724809861740190648210807232004780961881407143677927669889586438228480337899405494253892205689340195018933007982381251832980711762882101686165983301290278466092286217915640865660253978953118335256036170746883512348474612431637983517172312366150249332119070682424293378691757194378576412816713195283801907387139431745529072027612798704041310049939580302666507348270197481818812925415766900495561130434354611405870916499691183092386597141539404823652925324902179545890830887858460113908297553207181204960881773445612611127957277936439331443485362494348851910108000647990801100096894367444484170110961846227768369061550336331743500913560692748050953544787639159843361387377179545032844931542762076119637689806446133924248273606343864061298605752177675656025918551107700544522419385844971220076214390731054603170223094095949723564939523062484132762748165815111821101640675753079665099394402364659512264334338276494025399559401223393565105511306581609823840957462343444098770229450454638152813154964776256755175174502005592719689154996786310363361562938601866212072284797577152067352186460658675379789730773111974275290365170874516522191453234261031580984380753861975345223193260101248003626767360275194020399510420162405976412102678806828720738958576146063841922507977192774482388884997761055450882465482536783829151869110876688948118953529094755985786631314833672213032062663138638710806889635299972056278186780168038720676858189327225741618791172997191359262669262871529837177076958573426849343237100375642747906154370966499434983751214793555628529025849034876116278218535212561044102430961154031378278316007688364338577426938618880672299793340957000501426254374914856894233067917961463342009597328275458611461825567633478980934036307796748052465574405760041608959473383633246519878046080774507930374331621586043674530674878897015093263626172710451490029209400936755906965669921190830366671555684477108191403566551540093791957723670009610535104001455417592029032137012463631443902172555377422092616266757198138342334132953831430832958519901622822423447378287837380333510691668068877068011743943740247597052297929125294744407211247644437463520865811255574369409395177917718368547808967587882386635265701974674588055330283483491175330965206130438836257340961777555861926076954948868307533400084760059601175463306364691798781627194951325950074513045777667562637259127352782978974433889919764677656327723614391416561831520385486602168575171903562825334742631821706320903768726659703998333074243380352276523490333229486964646278346504730995065503895430982184296248559348599202490493412472283734303894400843956184814428103206934691405731527477855789113657742232206461092861088392568664959795723935912280154144876770412424832152761574114357159080028195179032034234741083436126560708093681987763110573934343343729339369364398485009100947804894969993131209214565142738432114854605293685859300834788598598538277471377986215051189045329568410999534922167649722389525472039941537781418026870018838830125834578608262479088862497956257813744487772361077164920190753014253941392458827940500412078598506607684397333911531901163936974785263448265853961957319498629944230665422735954025153580161260396678009513280074134175509320057495922291807091127980469914472404541980372415344425468806773532316322371567850891721515757715469813080189842990985029793079888791869094754094174307421805214214850658887737537415341717551652775504592386514836100512003129414621128211085168569624461293312097035315989643728374051904021680152028710286576787757663959915435405434789047960762006917883854498024758565615012661657892138000007631618515218203990354529677827365573886804358014729486280185305388224787493693917454828560372695904562273365285367911097492615167860148103740825535745596035376116084416556560798824960415570243205806920990408261537903357995309618285702954085575046154112122420901333274129580316576369726908329780988180812047310068620471858743484096124780645085262002106039984004734483265756870228768814460087222215120646924321049396686787738329872296185166291941963539838547555126648911216535667701717150613499665600868663879188729355823019319333507236902022922757122613687856971197149887312999256676734759327724814017449720647384760531846651336780750892283579912828417569922640073559940004415919730324369484636564680881214221781133269401668263617382766557430747560090318232118462704035533599620276556862113680535284554823041659265585380207118371741679462620960789303504515929231929230434138996297165775204529043324523752758368473003143321335663326744693046722548099132154365849591756517105873507206559346285259190493941915289072890475735980576682328900608018336459883709072188560816330026454668696213715080321373510935992742188650572729301090461727412560726964714674991761686916978943970250900553256752360447575972043252998841197521961203535848215417330016815853256581106952968707876498815329369480371300303318512625151040098239511910772589362835213457633373526178658508653156449232551949005216547911532677132515971634336346801850629697870420908295712021413584896313706755762445696767196903911474647696102638205491773829098416543278218139723751945903238131583324064561647570951179655174702449760717843340465593963214119226684503983255204083070347604890045082284601082500958093680922412012073538494305785890247228192218889459968424251392351296289748279414380191719660931615990637108384817539720657330829293937117988883521633488594602650110834328142194020950588598771599687723191673951913987335226651833276696309716361534344733360981814942341946356330837365235169247901562313693910226280284651836731158121924981533605334201307455242436508552347614262329622562618766982599362073831709896635263972425720584837962393430340158836048105351269639809248280995685051328814088499625908879732428704188126632844118591081227420736933735013465317680723098988175157449998154984184829078233022041191298163494489576337476152927930203792041690565940820715609246728446042547898471375372861447113394500899041853632001991895369224453703244878378100899557464071782765832132897165857864441011681534629413967672660112504592842339594900731823633633190099537843135321889362925061705323604420841983995481089700473173019001169152294354540490083383972267012432671593925135783873695421247948423119155563624940336616547849972796067534270041053684440466649425459102453704858740983889837570426878062680600520449077801480057361742456922808911746549791217411409464509682822685292868274707395330960449273131767289862705193429968707523877081239930466793190913558818011538912617466803445507520018079392578936563145645809290863532332208452993249312092768551490476501868984425053293382005249257557937538372370380120486184283185809300141552980973623858792657597820707567247577478788802018757716364776903457208324025522485181225123028970132378536215143904968670209058631252812636596365214599637481403924639144962767990903302816225235736188473290331712381094383332338952404908502888687533828968413445142183199492241675347965962628537071945300576868204984634255560324649945675355260510278350930664532189898754028516242583884297661408977350529917722906344522453268200533195247096797282269543313869281597208871363007954577832571158567216678073968489739701493484036892914471151722097698996460223548020627108364660039742836387970731185146256196959401655630906890463289672225390934332963010832771047484028779867365361899529111666392233551913238651465526705792063942678411556425057983575668177453156338138878566560202748134190049873778153080077081342461148944801195705952588898720182579891829882101953428811755482986379142516156990815474126541641223557870356015778900787930282047483984745870177171087920985929670768851688387142236267919962711273234977971888900491332151432076183594919665050515509185071437972298556224355748243550860047959154061980057805095593469727444679210122514714924473005447069753622365900898567031695691038700652205096702042703250740209201861842475775380163751085151014570621200346025049234118210610631217464180851938019466655765837445991486223062122782631492408376360051897081187441968846404797851229485051797375802371418530501719237110141651757643534582366386370591292119075907449869787918773183570353931232101751693856609492322273571450324728596468179029078135818059471811694732585263170507874448947887099325389346086753818506014408001333654168507880393645147269656096382516606581510624343487420101019468953118754158736511449791571618646933944656308627239459984501692114479994593196215121386259457677390632075393288347635661489842899946301550970848027644914408999434332097468340531431750214764950288834780844990611384274143883286543487703711421676547619834320030072503656922772137576465217614428599070038809580581022725956123679817092189483755726229755465934223593032685978138829622689024357419893129171759628814384571579731492584000818092930733315683436311318306093535094711355135660496672011642476209040429038007011708537960784386460262154008167009454736515975417014660411066483549486224178605603276410582680325420621515064529288864867817863927468392898264672072631804814270690369290781215554896881372301823577696898946460257566042684944280410902831770007167921808141796310916489040566786089077656690140208287125042863500526200065920904932531473938316946821429414674156175862856023198542021647642497624805052394488104953240258162011546435963396233615016803431427353922832822672647158931422843397259872169165568135644511442251321094456257505295102446095711822941070196915102698197900568212255629140481581885647841209981832236386557458918078647117673474481805310626012493536820347334245867548870456914953731631533067240976446343998010967674846539362737257763467594381323072697785614926942354519502907108157509426867260680132838970926176082949593650292755337371620319892703834514015497473038252947094770172255784046905328038344592950564694439076131264364054441363147298981964607428197548089367960108507185662949289270331270309328851100477922874639221114640985161334214376546101351035242658079487684428264392176180757640283624924027750702490121844132586535523311490477986386976791159866996917982596862141687549303314003077729909979691577015784953123357276226685073168728239934289184397651863888210684896672534723088135604200692883781691201801786804197015112697349196906526981303702653569927998649258418774232733828083156525443697806860247543346299352363688793932350342975931066744031286121621729037841565828601936659120594909522627144886404479788007843981265709445252681408990785849481529847542979332688166436511376645687701927479511634277649085685572122347600539403270755419416283251847967248306888387813251186057398806707648594562252818261836552340223311929266804372419122580826819342942333330851361402047839396160717023454657620330690848747777877757104787423390227844987209210672793731521456052053977810831855270924536524285468752083916639373921580130086917402994002357096373217101148468455688235572748621515052908670830244295071155631268696045637362715748138212210573762874428007995363876602838102311504361284131067914063281336714582629773396777236157007856936620573452053895327911214734541872003186369147766557782690423529795263798675177363202613670466962007486739257234142662816336972051453041779776490364206049721449332868200702989579084111263626140535269111576717049497613153085934412522126516950279401678666898760862369064650187790567850236225415368052918461629821901662462889298228686367875771648393028799263297970192739005461326643985497249848718971131400508124596389970950133303446271897071204712254998543771427651788640137023538666045916899559678993209580729346499364092443711756593205710894675321007319915515514132364475392385832437512551173703694330893284464904735722257857305115947689836148421807089757348473738328939055934812842515785847171296340188230421681078154773690386712227531269092063532616205898643117223655255993589495513305254291865944630495089562704230087706319494813888844527373695996078075940135974445601016839422127485682095870368525983109434452528165518676363841150496632008167323623694109369695467655702242334308121017329300949254443852652817007082105356779722978586160977237348115965384455803479082957297027350693253720509387612881551958507337751380000571740461852632490330764967619146191967869989310846630059466060705691935826995540451351371375560029888318534716498979448787520809660331278668577348967222474566520395142593630690028828661819823682292658735029276399853417911689579362288434333626362023912151048038620384334179321830648790142297601166334311604074807406449193506854366662555358466212813597730388026967256204897522167444707384046590977174119907169480285108434269273897204604392598593578527617300866034687784106103232378179547528741882308265975685283085256278249775048246878358363893843378855250157662376347573508569547011214766074621487745853765871725696128025718575382832040524354718476268431303850681492608825394637941753936849581717832776341457214939240472176493010842810987363567064547061634690648790629953189150812789508262616963824520913030217360830608192850079257254746271446564856935331963685234050446085213560396131759771040616332287100305466152462682760339406741827441434733874700637301800137276548657962735206128943416812373042756727936502604762572272666858497988009714551319418228244130585974683282897688840229757335314259713092235956926941528661254214148494994006465472053635735369033043246543343912781651533166656988385974405760207852492835834917160270925564450912410114402176580250926775275174448950813115925229271777620439612557320353254359979546005108322620651011711866927782960293960352383849066897415019828502487400667748311516643335682966902347561338238737920423958348879880528946816485697537105215047127890400230072805525843331665545472962031549982533569687032265166952435514215060907661834571406630779420375891106223653438611228960819080217633314262481357828520543975148826241370045731849339623838716788550117731341767941477544798472080002540106811549295340812686022593689418778382076102801943400715568749021711947832387237199122787768231008658539013756065941119144194950787059135546402281963319991712164030392583119718650646681183183447920099365731068478170584494321428448708737843341084856586421763970349825935756367782861078355991192007571303616220235804390448614637757949313709149706501143722338610748313033611490240125318852455090985497433300551392243370625012009689877110867626363469634716463875250743127245383704343750908556563713957232307598619669303749003990952884863913459577311570586787898221837574677512191720256859362760515016645018743029757820231518877571771962085178851533116246477383373267650339718821849024967793490485383742478895542920732248953454107074842320400502913346939253221631646680098066655670878119140597063873520646093102952403495364250383051552244586622753760648713170155462731262417387248002497469852704447646807020087981594638983239144168514720617201392430668464142459637370087637582893701251713750535895904492569821843863864316207351991704587605413498397858254380282823038438197105576353027389195965274416874998918422134218436261676853696595776598179430513674698519075416197553488329979954464819916372006067769679122781178662613140415890364418963863285489006227291934278333615498917360318605835068314474592694481795450498514515202590431521923062396842511810700299892935125040232947328989822130004819364278640256931212226682129174430949424805764280605257589176481248028866249540512514018319873780882505508479507639588975251272243823499497814578845406552400675772501955900449125445486160538418448682153807059496251322421638641802421147263632216626267286525505111350768211369588953395238936196139225569618149677400081113573323403885118873084204117532918349358879785865750316840337370549266038956227756575089044648280382895592368715269003485484541754074710541356409800071259418341651702345666908361934820829540994546010276704817128880372234676901059646232430281713077730419194053464346367358389229283244922679281888333329690331196045298758477895147439534631490716753439198794117631810898367106749154052691819493272104046377688596296538919823616810535016577045073728707719194459331498417574499256125075633420750023464708279125670342938893138565979517292526141059742608819634904985398852180670353879422031121922458521899386135523534159677249820237907734576897521201712590364877574073077148267798055503182017497845210584306230290880578868851191811705647168375763413812347428893041929126013535397956331863289788371447270543728923357025328679365852093942507971776428061364683038180905174483937177938458739224690395456897207625328041817792808141570677955450352261265405399602650287851555580425170018387978446683993458018619650977912833383877203621061695820529592640378780035923910402344168179585258848189373060637745306032725844574846292954338877597407709304672237603578112103863342359953615733283081125459680571101028165708721278354153121396872793589846756404909022912128388031128618147722342956425804812287491661883770803297967787222187658033210508212843267029764089736797288034552100908976479238912925844227273227137647972953025870582561961230089758822381144019886512242385736096579739108133366207198527097119111905383795801833110212623363512179205120176772022453824376542997214880150333875430281329884493903898197710304238259349208800257850160898502090775096151116568845117899158934460411005550411725290187288750898646068501431610877071494583526636277656634467177540659226149438364935921705143662593600252042184421656292048119297484375906879747390195743921784725931629488200173191842461583062685374305675837387363367147880184640254390219738394277800456797440185122316899018202270311753115868868296837761049678828364333822104130634582824777962402131708245527944833670786187400058137385369352038412222362960002591466035072052759219660792182617825217301481045307500321781341365171706916357565198651413477298148407279915980867576976855422815297875802652973938562350239294022186492674455742612487269943838044952955495384449860519600855279806019672605018488942679050199236330209505055227116934581687883909275329710340045992115777850493729804790240847425517445304369760721275086282700682490979604881442679226982912942732003415716330829342675576621419264382278213141250546861740112936221224823863761279900449770956645937626313270810709100817983265175929524621834951714936420920521819729422907555378825089697637851896217648673785355030166151248467700088515021151108160492448994188570462077503769178212099782367720800346449915825375553897332501941289482141856217164717059483490097252236862808803594514695129382038890355055652155787281970562059988917589484861805055948657691397687393875161292538517226576641368710426358861288089807219796767757848355761413053742358869841165306975799551419009497604489315353908543376293927294529932182045814362528732973676759032173121104338506481081052559554584152895017830562491194558231945964133325414138583365997364173123788153490275773131499633729608112172938727604696661876084485109606414237227296000563870155290298053435975852927231313920825944536668548026237572490373888273081662268897677970128385313577812527918451668713572399866964046277477241076268377026707904779951120148491349824053152234871065023068741301716726788543854100359160307926930069575178853074061126010323932078324851242430457145315961110956046076688599400206988398556321506364344168552730596496389177359618571406953686365382234551793443314602488307515468455475705628336146202448561575445081376388687130812374500497320495209649198484051030538589394231355302924078482624205169583854623905275931276517761422285277281714276403992195893934100263237763931902166557906882949555187996477627319887071504138117871339115425116981948647598394055470273223357400693718002563437971539496850744709474460789829759459361594058318342952968857870341189086700350208673253913311695233328984504232370219327851540637700093213244785936086432992367018001608694822132163902537170566315051108328235807329680639773796974919215046010321323664513382379018325573911532906727777244547528556160440811665176860964122491127972951718131619014058890224179782319523487284962245970648099596261529469000535429916992746693106258428900008529304591779329819076856892025208241993105051377627227730002420007520400949641813722480004379482442224794159273077134922489346522464586604118661314048380670211428208645513767957119681842255964051143595119654794047923977075297899662619504915948988581438817462858452097155692290648138792868059692107647683160380163919865274880668762529933122181900925869237068405212180158374200190121842547186489789867023015381319139596678900360491468927156967468967604045450708752256997477470473764451431434216071077246748580086878827007961686648793459319112100038778640957074384724818056454040112823685183594431274767864518406616813840875837048447831952733902929703013543591179783773692073758720446685831996579185613422690581356197209229020450584664571982984683808874891922483554456772758455593622950361950442512547728181829280360057023376742621619802052719910630181550142920124527880423908892858850016098875392981670894032173629501958691050728325417286222332349281901401915678556223932026722215250926384889193221336949780797436979030843333843067018617723526291554254427101936796656431548327687909158398726576565611564702914059938829381659108207992799841896596572826357843319554624882191590754900862242412877070688933838936724126764203472545024673099334433211206374320461824773536364942016562497666501287055325735608798128075664715229377560701157783793362766718634793423095635987087883766133472762762433847161987830961116579512117442591384558264268345735452374281790870815791371658822341525744277087314921903182255223135930324071236931002613296470056050700798564400080713763106871372629403755306547717425312450477266653593555351275523974613888796493530593997031130527223979026145963104043312005004202093189220302566360002091782725354898661698745562234815604097787012093975197806182519077752934462753271869960513435011033647138850917689411214487469999984161773495557541413659897521068874927469204198839285476136084717345298289282767033445267535649984933803651701485443072163236640078107958863675302049769826903056518511626856152260920270717536127647345106223670886934171141305114386768131682236173887079062468823381003932206523022495430601238963308502873281688599561413876706262923445155647153299421171164958054241566536016443016366028510199530567159376701474923737752628812877572195566007749150922302822949962987234084545618310058502468013292998016041832708734275307206250689956071309114424365891411836561400399920816902325221534708796662778719351150320017384194474364363769440384354300222129274386835780987272795743696036438404969705603415065600815784046308840561024537722448246386498221812306240216711075052676076370403039115390134371844689093362365138767544804596354691840677192225186286063327883610119110148511093270008590544322921190339008086290758391928807123665029377146876191661160121505065305087541698971829997549807711191489067842782119968294076527359213995485935220872191714707930459716408461619330646444735537973891664646747901383007158206490792026365705597891603800109717844504663482012163298164797399826736403013380483439776520917911291334036553168030987593527666422464456618325025453076374647398144653552389553287944006054044950198476848408222874562801265139053301652161475898366816097161441606722976490732169328378384682414917180260333929106894116145503717624384883559139547627975449356393502847661024438545444874573752874048001138198111685239007297117023046925431957344636048059492259356963115654147721284584176675054196964882732611098785873808090730122665578912386964553477536526877044882193309932553152621153957077382364974380670449103173277092318879897664799867769951808770454823801350072354906009075757743974637077431152538164728782724423130288138842393695926605570155516896214558918814154148257110079738988200541919798390399205245377654826916885171236185439664486217868803087288938413447534595989417987037083191993243408142216555356962062751944989359506417578263311648552682189367687986350052648592652265826875564537783590001654775405777130792591847972968326623126931528886736906480793830135643292871873374083523165177355299048234059311987890477156001755591155870779581083466676162833573609454449232705247993154518554040552793878218372296945284000269033191655450539638059733723916735355787036277675780735025489519837926082055148848093588899820797917289431304609123373463245085797398562976339083451737740447958790682809167107209972753161881792063057780168540854596698404354108838195208233911562549487830853847141274445729397498386097571810519378810097943646958809359835883673772000449388905843546743454527920784851274064286171703729162689404240379343293252959397611286417238113851266133064715948098204342559862458907576279294398454549547459650280351758211552790808011735440667803442131608663982430465288131201172889774724851867055883350152098883224634130209505525353322878040866500396660862139136076635319311486920419726348777719446717889250583301751737746060586291985873145076476938092056594888065533835448584567617607969061024745561625904996484665079903520507086085334045144304997557571621667496648321973369348245545988334003115908840479607383263205254172038577616107534128067584043957922813598656357005470857119177520341485476874381568196702607026435396201579046391090566739817835407060793756245680535735080301460546318597631098222409651791034082815093886739365414704309671958623835003900246339691275860161212359041995922448698427358844901178017666518504727920540680241811663220676385038143635783733762306362215981311313083012162669745777515822640958475716298591813460026893188577323594326458711724890449759426784199628885461755039753632412411718567286489193320936583279910244920102405655555688321214056185546848555780986053464450110976221735124751383705882542607366151488751229279262268269424986410673403846894751589113812790089180669896825751745589913336755410109102898868556967131502564358311525765496673351358148722255368925178379331811634683223085140576501947056197734167560387961234186010241143752499935596965056113697506185359599663320079020391371577826558702614983520150282571183427427338012563354781199139616859909770809717236128778598209707198678409459729840137088226219740471028934935214073600058238377223082187020783960664241624844431888164945894679188968921425475865364333286379435064886273118631843572235027011261314939026173696474821640244404292008018464802505040461430950699483529037361644592060028065083042650638962405523068409561242682267848259827521246384774285971846329795959131688951262484853777691101515646770852237326844240806822170579148248478163749099462622647526361932459513855876439715597920378808981488711760309731163079289784141766597526128746370159518307621142230769530553351564296513162192740143305304839911875494117178024372102672914291795122687544513127255777011944363807652875784709561229050589532683691279896217083543519267295795273258008600410057515184373732443786400999125237055627445090896559912140081594681657341843522812843078952670913717171684807509237865339437684540988636757817486141073702414734458848688425213569163871411029115471185489616860123273610765921392986465603089304328475065510992621613053347467507846996292353588362795111326403596184843951156863558618440959585564384995004630004107778371462713768570350986766115114589692438411236725006564847677330461676779668982364078514935236389898541636907288039291865335710613764110723337421544587246554366607234419867425528957024873822709030038891708848224459115831281653995871073009398441844734830107262402271162948414380831736265619778390338000103583621729998133759707068865454151882110709808515935759271115125867903606802831526870673488433138099484859575970347393407210122132402428704705516736983532719879971667474677372143758987075894888522521390567643357048061920371443600811407630652081688157055186037837724336252117000957530377859314764095904391388837605126130399433310733848479168045241148914414018552880526836993718850532606257769923920864172463314696105760921305571506664089969001829916843038866131341285501471712444033487361642251670234643179037754538223787788144572642441220135157533792182436988193805349937899699578658561564858548888890802293023783346019843151352269154233793825474177151279610995093661969703111369860266304314723314101119353676892191709176917766274119116648054715249741719027343085920017521032790605215419230362264375623958348306816975682702213701309629455093224786986498275962173726054560427219304417154972991667853340743115618561058591941244405733552385453926585063635889405127554089048528725870521495541705158071924629740057623686330793813092719431605839515012296421167598902234150516190648116020815555130252588704882499925714054298302241918342588137584195801672697028292539573590644578230454416789377041481883075699453961057312710501462283003767874154596296394136466756502972832322922414999976869895906672343498878280942037134863782217554398997183341078010991722505418292999872412744947464074982861834872296310229874010433753402885070597314367065760030143937075504088792302871913925143259375287222817058979507836606214693325188787760044118028448518494639484033433964438677758227639724192383395655302881060331920273723348747844363620633574767180245603299703744968046428512084088391494265994615767414738746657525674941634054574184915391323243287843823804362366326332222441834541971661720960730127124684562036003282039505858371296641389748318451905156566341463852012931612191993085995135189328006587316184279590861014039633369331815832300936730696310352091558106752462247288258854941046838463907629195290894225720383365742338040575647740032468164408401734257278839631988413847904416214309262228143762009672011521180495129941983925317129970216762080095758281820128659042540897141466735406384862757464945821162104143440708791629824279216909685862286777247195478936291141140136730483698393097928922466567329910087763879662008255104065448053443828790034049647071135996967098265176034179111260641493121318981474008776513087927735857172679916900195877051990947355135178401956296330414555045165942701494247014972369120083901543223338861615602571553075988631821164151856981039047341598423466091472059790452747920160170187728207007840335590750999097765080927580939297484458495992661361483627562380578839098523665312485844682057527922149745789664172953989408099851186171211710465744878056801132718595561875746513034568501985833505679270769631289091683976375876529410257380196731883735225551875913919036983707552300988865930166883114427952849490338714634020099404930722493242748913244361482161567140821571426403976866481184538553105041881880524451177423495252647542679111865733053573065531730201909182878946474929866703848492133696680623023941537991780553015052260121540981336703880550675968538268138915553958364312490045886914618421439047078408748052023755207397436946420961482324737544155507781363547000438442082269143474696881974624936889787028265295810162509759483640039646464073227396962254760730666213023880190173839949272236353089721983781486708351170845992364893873433581941183892445026325773930078104954193467971171603615393889800352628636611258522652067704141803405674246312720167021683635060596458300231324438426659143894055976139827185952972278899449691160945959053920377527356489899361568087260525270252775020365517610326732817916876665734982875510283248549465768395753980048400193566833393462184862570566616609648102947032566580507634317856478146442634313485472995963807205770962119494225677331901339099827353829559481251012082618528359349938040635678176409132640496082817481350608294892512913340844586255557151057370585370169586989627355858466602678128072437855295083659590330239779483714266082667324075928261768342922260799039704905606171518882844981894091256983272922623962899677269380841664968523677801419592885485209829998796988542156189588311559410175927806101484119316001665781027028046707948821830365674342763213941450813571295730618074125799267289567609626127172623071366851648257043793186529950554114429722071291362859438114268651429635355939625478421182191048467407669620646957948936910340939639259279299194189275548917677435326189059877778399540984048975435751402565546756378991360229420080594667050466471808727299575409604763343402854304146328961174393707669239487323415362013697165480997879014294423287056931962557139941067922000344337159051582683522673802864746026363248536645111495066118390627567532647802810295796586152786490551483266654960921012723888937610267310815121226372167319737690789588085474229966743084323504226178118402441405084551966802938151854393071953996930876532613829461147270355724161298527268133377394484596073353769635510299419114060400722873836515734332779075060773987126157472375196884656209962433294368368401664244500751238761912929843718061221951828698707325575141831584861430617556814865654792535786107631875034078226446022972610183089690132076105784875898712368730051830019153308422931977710051321602739325263065217700251182933329947680619458330024326884338123140672208840006552133476902695852682125742574532888845121956595845183329198733079592421929345088661215556512910354710744115279508815289988945489849894425706948873950369191768937743135181554853120659538749810265006810223371971252301094915324489054957830924787282747925454981978244592867182534746236134757067666419082983901858068566450068481138520731634469275894707218741317674290682407574889502640101053051022780656026297922098290355985188828613206550098601858374038517768002250858862435960675665777462652800480861778117391086007679789875078987603456436452708928215082884103414921085853004778511616803523457929330894789805894476063319430777337209680500587952854259673778580556240111511636019363115510455241401145526498735293557802036844385349059427739571008371219992379792732964670090297398125112396132557701560794084564358635371458709813231297459928044621176957616910633104132956178908318606124943927335891503787861582858807156851597729347536324708661707181374065403553026240104365881585950086711247393744081785820451394520973289252780650703104863976611457887356854976916967525803189586705859809848454876537278583557315263672563051690312551167414132341473578261875805594367168283100764618387955738315711466738809537327135333343553862308671471613378751511492580726141165825890642623129255701345573456260092552005982605938051231238257593529473127228784699780617070155613383089959934079575885854747418314551220333316898391120787867465405823645215562819664386489039365386865471993393004900998159655799790695064713664975792100482352878882022860082306876127250314283109764717950532668548046596583019669856421956319385770826210655304666401238743636069919162328001298095327069848493363481095273751487740412942423544924799513786771319627762349657895233942444481973986842725303624252107797327995748548028841435700648878027003726405764115775590825971245071566773491506147852406908123468160893410784523743759388874150996294244701385345819026442765729488925096114980848876404982035614183824529979974230726153875671097840642088705141786081181108154093291648336418204587006282274733229428908068410755147692352289002421004333686504661942002171147072282737269090759050608182533130692475540083651611066343825922088535639240403334347539253885554727704662650555353702674029286830752978399168933239709040325300916614876852797662658067476851051804206732906215032702384716958713625357681432740473984729097165679516611865280352183519208952928159614982138149312078351555252106298177219269613060073028542034124262971730812709627340654120410581858145581995415474413354742460190808143300909781443276054514881183847395251405432742273644440903123362964548413072821760877530357819764214384533084028251656977754154775102908132020088320571089637393942827562125624224339191856586863222696909286829239456180881456814883645194145951278559391569708319047439077437453193356060908068954641083892709533657080652774462609736430035398645304738656203415526495495699240937806654565564922333971133652470411150557615883206917969504381973672775049935271958713227623543236691454821871519969584198130477531270293139833082274325894324036539594151833464936345277334347354952813669838793005050433802125111722495626975632003702860673318927000304405022041997173697817358989984642739655856523747653262035576090420110260752279555401954150093982700101075448332495250607020162458584105798747125293310725621097119104992756501307471131335767182937661170469208336159694004780922257131800776773847781511436188389742121059012134282479971706168434318485935625667946812004022880103123276607705813255967064846445069057457069163227700421249951033937806543826661247682404231142052796018847780442845516216332469540241731026608782783528481376424316447203887696302408498893715875124225512292752696217603144182387730868578570805407077182868037002012571489769810244169205395284407891805639517190550847681933179709179732729548715577329031025659252009064218765803945475182280490841279287097938900862644024703085927194649366282506875674607298455862524140908058038138441069211220733682737821526121965185763470054395037962580172214810849539119821759408025051112016077963558801528824540263543972753582920746502615743109122950844818632964082086696847986182498451860281297277256472676721878889246550722015515190284371032499102267328215832885041979938356511752732600540914890968757997287873059438462428021352456170509590625025076540944808411219552669482642674402573976425188841761099626954492287299412957679902156866851543833372320726186959779289152854838387625350440489897216823863916327728738571444042273973598233991682479520594809489554903317619667110723959650183619232294343001681440611013168286427523865114262053514479131260611700524308835704704598141756507838686439899825597011526935587706985966484352782060913520018946741771635288095789728989654893020232128843156782938261777285986534894402455047715669019923870249874012529435386129500200017702736099306351357696072056661276438772532877160729228216591876518304894904550272248262176633774609026744936445241363856276892610528167051614869828650055674147919275424675764552421672061668357126607248671358857625595650764743363381141537395498206941664984787546235123583479508912990217747985269857012272634078191090937118820045157642116687763457194249893308720049020937282085328114374227914898635384102842680965118328417285224261446832359763156028852884473219724931493123623824901811306655133509284516186077587655787385551762621207949410340854130138651598859795007543651642143515289466955831709082577636391646348826783351470205232195122697099610013407637796565260931278473814623387520491361944680118875352514997469651150241599895275959735936609348071030158586789984934986723874518614457075202294024776179927702332050919508422418383621240635288692293462874665204838974624881797773808135133175295155865495383728489195753357094160407968620527272373993137167919849889601377637525669122295925086723851928200507169933489236413249183838208374703433013578825821979579891373428843442247930122931085068109845940450019364285492432659985341908664384179901805537654739212231745525420926099263481863526811506732392509820246614158670405262594959026235259185459717920811818341748649791095421586466181030475462128668755356324681633967047713183357700010078837544054260161030526271724699977018267224071213551629348893434672202327097835943159973228518968901164709964004249768463634853398061048156516360586172603322594820859293327705360465114404010202581673520681192202646066717025427180624071605889341298760008579579644569804209666660345631645137705424595684183609387601257987511932554955178909608690685237779395981661178438875584045756687207789982831419108344925017940110105222480053579618883340736816980639364873821416650049032515826000591437913496346392220100571478032668869075215022563916543733126861640265928125610154527606964922285648899040087733713669733079832409274158047189554281926238839097276883983499829927062398261776822570376078701072600583850915522722737709040789825221051003851324788595776394480339367278962009834317705407883263275554769726409603271110732621822023639859870447681242132778214251647514387956231917361340879379772605488017635527896363022937184380810735684025156012525030799382684662300867498097636705196029620715527039621686422662689565783003218252122193810927077325806851190982309969075712451115050142049870849688944297199638753260296140201049622368966300724177766299350570286916877717666457638741186237996932709824320409910334972796106296791126652863126314522080426373104503730748577387760153232349877455424980498427825604559173657891681342999549987238389178737118562549734431437346873239637019580204604292497071190153717891973164560328265948077726651765118088073918811926458960236910063088098271463249383038489897726916576334431505066661731920823847680662343795340624014324253088544869945441574116570970386435800613104466035800458220944260775260703011886959378187047176461178992835307008739724002982413961650366677915421915611336154633052346448425134165615259210120395291317651916780066096181923501568856516137197778342156519924010116198106598872302581265990520463376929725050711203933280422375699365268481981161635628781191952399588458761431291998515740235138051936260419021628059640157563813934924973613295599591759149967024531483051048118955394112414911059736132456115934131668186733695569946073285433449211584494164748887140678020973431732424526877425581704903038455823074366940904169411860610417253214670493589907723188462106337313507083422545815853007933754448052142191992087709414594762164713291708329918536156174743542920271330548916153941998428864875812625133884437942337496995873159854003254462171978960307452811621811980397226197620692707993383937049215874549862625731774885606379504563762171573788161477170658250621323979830906650401830969804312954496916772321305860751438020610174219228830425490365905711069355228361719907309648178831237925991887512411354945493303302687618246976063697406337380546204975091445299985496415269473840516801634140414249220889169051093403924320153046760427238220353708019996872030321825448238603961649364589818977213386565733565607141471299377763347840622736221001284861324305516269120400298807369925952140390096392809236765336104132032486926316940763801385696241274989967945236900950307369008031535728768501843611627694279613034883830683586713663858340433104542828149002558552642458655040003412535616350691608711726144878714084674576449755436452400076180242959277407438352762801467434343616358116218593893444657517883883448962299741519751382731700117875266052669965780925838588305434745042155564448375899825259631319410535423650751866997995382202689658883379641119112353853666226045777740274700685131914490799868806009214151879306376774582870920577279314739120155283701797038694973028521216291171498135086601955488282929071306642152024770294498450733044618902032836065878258335884736322171840076105822408921526313884512606090610311792817325508986384941496884242143640034569204297255194254157438390662800586987269876574260668646400892147330041365982251232813862848318841547628000163420947035956622086585233665951846040269639421369985317339672247074256328340352053333011281913020082427769754651745166671910020760362486885462325732163723462211427800796690521887984274132727075934196326341464289909568981614876842819873097273310353292538536045043393000956283045233192790875579367695095019003432283729489837441671615729917587197520137514177784867106061237356174990892882213159534570091228281718040527745498318064464562903827273400082110263580627849744034936389831732818455920077833890295373006059059719784744927253731538412727446417437097459943908315272450131896365829570730045825613482308803097873222023428049456082948598714587942056510926528705839154839701785654260560528348084353540652366992970741665970402510230137161030526450001702409070536071354798512104375889434422733293770621424998721672199953869832194365324066978672003748221978582303562025075515248162115175935230146326113410882011239684241793302425521355782257477205443031985513079772849134344985459328173532574188911089490173417269304814029372429337394259636352290368909753363687169057095750662478613854724937258249799490173298376485278735161352047106282547736076918267299101475024631951813735712076626707499509823318734269406253226339730327139200192564184496924438476869472497601807097257099315651124346775596364624826270091687280414521174583071975725272615109983003477205063956951517475867530274742724828612800748784992414326593050303533610158503265992723245577653456881977929068623241339696987333964563069632581704002589940793717000305041486519647893817218367928732236770492055676412566150323167668135224439794569365019209264367660696277763134663391665085950652781655836612565559615109078916599974487250662041654623254047044888024872807222605298705902445732639354339262680454291120234760835454287025578890703728185161831849643707102730254520791536547906787687176377449016015197424403917062380719598270177411856514349019613096823850269557321523498040639878802598890612693974289357506595399307100942583213991229703247587659271870288518540865498709216420205696937754124791899275879117350941369303356604754428172852847073114582661316969251777780038425171370955068837289848737561968100916740175262390012208277115825749263978409916558977040898404259274926248238293565813637783821452995177428547859134440919498226534721964709840996135817214702748927648334961982091324924877349245973955969118384798722738388590154139928532282629908648998536711393417594309332400771731067595717932881200646613289160316092332677836432612589025519830785720558326077668399200431674127872582314751533695654001194514529454798697811027568782888958020223756592084613009761984567894963389356199582814809493082045558117433117240250997115890062583625330036529663229163636316500442924497252812736400043059581108011655823848839685231405664378383332927128522582676998349360250278260106789246106681350580810784295516285783601292334075044391384746023519643548589134844947653946153805181570820491208696988794397472352060791933124698402908572746563107403219490865596608637265446016841028338397322903147835927364105896371147390606538484523616943009096675627677552695942700186194420094736672850756747312775636352766817260688667283706951048314739163853125552799525383244175742344172857331043301383739639897227469701675794699448436872148174791191863507819657352783342906570196326621143972340411038654484895881841522898053891920413155257654164200034514227991406390376687837758654327863255326252099531413394391377256668963371798378976130735372943800735435100261356527337962559554589874626737621465662522535447369122752324089727689607036271515856580638277947556559926837318875992111659870278237628254741455561929456237007160127928499138946126883055825636390067538805177753064376865316343722000198167928247531402798799799381473028848158692530915895665901684970575911107592375766085184939659401481900317139102505425945195867230118520587016378666271564541400515919853678056461438984024455632563734707479412060839923528436394076397809409696378265884342896577643875309969196784399456711053405207070832012012776892992339980688785802676895878473017885668309209078613921763528448686937890366949470415381555115736425131848772277540805817268749851561488978681026829183105334356604647560995787985729573548082691675770619296222914099237071926259408297764264521760167151864745042618433132941935641625073033388778949933185536611338347323289231831119788916415993976981616540265475200336026619529831284376655449982663994587530947908335270667990418596396936242571837849684023320600514955411273050929814178166320215597987145430951625738463230168220591312324660644851702631709051032143251349128268019592151804504283520575672807901689497937386074520964123088033236780646502395201635022506620440666461508652702318935096291090910933602278995222384150240636368371160283152433406965164722008455900940860441481862170997271659902438348869346680503120296355292739594237320728387993856728726807585504761991913436319939745688940419943527685916331489935023454431072078523793825415039479297115734111223523518737625374812191810108189337904726620072957405618558803281332388840044790251257487784234881588799584000410884597004996306745123519799487152753149344001938566676765285581342186295660037317160667226514037841860342604161358979028325151000479010778321893294401425248141542659651960184995656616013841861107671255993716024762300188350007330036853930046496072581372482125530311436644493866050602975415480357378871505966093657788261359358286473879964705953374561196002049482310385545237204637121801468791348367121151733428071079959630206012467023133214580991945016715945233048348060645754230975052545749241670876380868575096948214312125547858249758275172017353137299416292601138475327698826728072692254024770989778104011722024755937868988234664882231624757203394614400945967036265316348840290298609154944155119240279506724442273369221238940277956219355490864252008042836784915882128565756232763223130764538489494635647445162693978406565896501454984251765877064164555041838510530818147798715222589812499535376456206022578767754661387155159686855514064040890623256796456139946428525728477133588755959158637547868382549652064579066389146670190932436160755785128904065661972363786499793772972311023548594797278584528557699246041204657889377202702873071338161936183585468083992817861903460024263493101132840270587222739878454105829589151382696311893308113547171546718190786316800663938576076769821261519895828435305667514223640879400878819388397373473823594457590419355683232924149560991467220733138156706312158608203506408620137084751920746749789070230495163029668721321473472432870794504214367815088261202227136521688440956467898883227269100045179586040319381682315329577349141934085130518305780988117424021845544904235737308992407016023032196613588865571415692805692230871678700073378483557716050377562415556552469854335220091526568788283294447428745700116539469622023469384795089478642255001251384642186016096786929437827581967182203189724545711185651648166988409550048958702194232274938701048381224700672774718974118685105048831756140739150494332815782406978576333826849088124880109218139884926580902202233498875844382544606625230415444717132084528224129648970717739626410506724236601246961133010773751229966050341656802029985502330109176320817892387977800830672705376325122814569569851836381156360448852391461489750432232228060127238754803627350999927684014028791723985961899813006705567214931950930964490805268849500835999880662510201521935572648415963333902177184037538996382368326819109971033560510745890632878338312061991039105485030410154411634855371580105794349095410911780800566825421204963390607081157763001385766626119789222836730104907349133713822614471770310717094996369634366268826062262519222917725191684351861682009475350433310618184505978619453308590725757831286899536310312809249894147037726173394305290836071528021347036167722744159166453470335682199455509517639421754447520881435729353540704659950803506175473711445832154143720106783060422948097724923741763330885607229971743413039450058593149655014524961355084898063416182368836179471510443030821317418505656088237102348381256389149696275170777070877591067616893139081490518074128086294606894925296667208643694874620054027941908464592702818152108320933092576875796100614673361819106516457480106841161435812605042520210637233079001923295676912211206968726485341713038114719056829460567199818585948317266443949876931967795344037539159012588439902075827072699032998673164723686214485882762517999337227487283474765662364324576227049123718106216503501120816261660503160652112526749555659816785792589743576195866996658444731234461511000740037037785484959349129978590731597726045354519441271385679978914659389481684672763933100008391264432349735516873866350438841227846115235930002671163580005737636991566568993149537281701907239479413207631898005759637218044519078032379038868064107087185356395068566560169157781617480677944221288708752341782371872149984300197064422186987150040259970102752690606174885241411533893751123523228966958374775653628425914307235955524518816712744951383612122840054183029829920949100779573409798400178914668112234917091130667093052883568471914127696545857605499665983264396992251191128940305459352903706461034122387534658530151537854573967369467588611458053218643187680601388820335820307673354322182310078604180419617214988427295868767995763860590391096796301105905366878122620655800433982565527535658400783401397414893218985501202243577303659190378781032491096736238314655213621078348530549739683145199608549685128961860285696578840843039927329591483930587693673300184430510372596732249316875010639528479365209412424559458656093070076929944767445729900579333564130770543806927372382708389752954469009338336191430076264446419681461758882724259256339788987685058466076283812518699060313221216557050541429012865219984416756441190996893920016898898038231751502585963156330901464114859466102057464520838603087476907781294821830230359812217715758620739870981654499790768961558082727237385760314961702189110865118467345857345074043900104283576442593721980694683325871454405079840670330978000614475430041251593127021949321640189828363016520854291657431215160570105132885138920893152782315616137516293292764703929963264987132003666034441182955779672368561597251125209467273654563593636433501191785256812801732995791095721662235932708372846770852092659522334003840379862256477699278499114047354728214619493733073611927259072380032920885645463107169826506131061089909735936348963744302188005806861118051027156174347389369375780907586400826488205322372238671364153514459800681967173695958347915478478864541689711818198906687099834182051931996168165072712408420081886018435628792831949888669602784105780264163462507323332911632686458595008550881715043920589436941553900046396815465938616512094309097458430857717439136550843045923740574462891523529638557509050496125686942649837548851325889445034029201952500788207851453670642915244077677334605633135516568861203464463692423002655777918895142821418293419755981839417776175899698484045909977596836407235988025993273715667711328662221695123828002546987435810864677361490628241612764463827050192157169596328297450800018066243007681167722599008259807607612924381809082314113744169425909823452374184688500301217844578109264178399428933313662621999127528544811441022604995914861532257494853163023292643063613256798772268086155226196064082800574634074866125079633195140663620119165954133182201468080061812401846581920996610403347832613655192369861057329174813438483076106045029261453025511259716437857755128557674457426093189541027256702426399971003939280701537961166085400683488865015193716866047840208420664077407787682963256591099732442220112112271468005133266018809743483931311009392156118407105012806594299122626042589978058746875468816995067610341060016623474005582866390919157285601946311669537324365684303249603925895899495608074885593837444193875543980629588610714859544260362496871003990944037541816363537630854078389344091336125685270434815781949622914215114229955862145881332005696841142924692729597592304966125813151859970431278460268624383519158454991088371377525316400533623413811316499756995060337210212988584733014313967044287941519615143126924968309645133044494147661419653998545149529271786453552261242636539384937570676432413427176134388605509911030646064541485153062333520428184351857488698932506966518336397462431743513688234389136920324654820290584439693262235747553171334086638000046811386607739310650413451498898240531262197641659852853309478368741458142354119088176588135320107738680662019839058688492323670374936823883501260604911524067976237057283221976878936563075101053199358942504079351424466409625089955060279922088311174078587617769551763085538109702626688014875643822306144512181675380267398225592847153789444049018178078928257980223819901139712031169690557705073350002514472388931191383336065079015285177202583289756137342581518591471466211645137177645770066580564083053626600533232925916415123377826234427098622571483334374667940482222603451727416830791008086497351667284939061991654686019880793117258544367426211296489915806796641092930913023667636102588544553317073687339492035379462104660382536302842371208844785698222295297666893082820067002462409621151527581410195761751287731975035460629226754484494424416727001586536504624768700975302907271345394469369366199141819893583351721059068062018361609495165712980879287293803326585598633881715164878595775202145356177754719498713797114394072837115320702856448221811038240825021494766506924728285278202868627291610194104684590707459760832782772283369309252713859870554189378616748489655216782040534317651653779113557754814291083327947858673550052720310915904974193916678517849653016065016831277427760221880617347672178995632345471808376730986484898511826589419011649284999425001743396203751590849385750748640700951368931889351965799121359435988315379306554467328368889693422520925823395645343579243327249469940048734565052572007773801364925374113828376851780422620790034595919616035467379104660221649768175426322504478737086691961168985946555048246862181992628270630120551517977386595875926805528705276196132144740758898521624894112428808330763966709838155325334887986674315334654511570981727893484276491512677802232640247708677503688208352996019152796893218200248673591856529932738871467078327187609319656653318527307973144958638877872248311686059443955478903150331912969574176160737107258820391483087230552481294900491324322074390564914519520243483360564347030279727216752520462316172871710919656144832511957208826235376182789418465107729591043751120043757975676621588425473459049614107341448821553109354619322941279279945279722865460699451963096191364199926890982770721820351939698776718094590403616997411272083443382966483467843854018268751544602911607100275104564552575859646119513101552544532678428390606182039617051836956823587100010468425254657586327368831033216469985155736938112698919341856654865817816173615109464808597517650316537702009240378823789395382948989252004424075592557879820066318579736591975035105214020799490012480703694191128081857634249592786555319294528900610813502078681452357598907173417655496610347894371855991128802876623865748950885192387973897947649380728902901893225577812992117209615382947947859386664561691289067180618306957809292101504901209559026192994558079030090992902776120586545039846665675268912451393685071377115890473905532625851708030804824756826484938553448018822493023039701864915027087842933135644538053853307670682093059344187898960464359304420784526528542764785669277974249438317832138574556413189634876725277248104122913018220123133391567747421141631595841686403814100960532832655116438825566399933271199204381168939313612929107523074042915243703215785410115981438220498533927792919579410664128342815222642262857102636298001586929569040203690397832823201808401343060161612595409088144832279934371910201530940036318378239079196134518526335713881718100379601995906465498642859908394161139101840096565169771337092274253398103760225441725127833672309904671989757313594620571089223310091251662905086348949170029879367860080387499846240353103761206142211873776085813243950023481821369980822970335296911793675539531541444280620971107443388127465394626415549066385715031916243975302436079532697332729383193620568573525486151789571102684329870393198938940987618000774782649054191116604354036891181728970691106245452203336742425384661259550368880994208623764248192728938101887381699228219901325233960439377357836427612075910991963055443064853443635829142774401239745463440448908095918907844144650504201359415775240735979389379983582482432519902533093149596053014874531896086814890208270149328064607225515944559161185454652201681404612489882782547557323686711782401273325591839835722700776077209780033341917176904575119580494578944206997704987201475316088068500614604457127917459488980753741178703300010000762838991974056732688147816218863377599790194779215256804189890195746872175621425641786252635999339233323396988227172199276117264433950047499432012494441616918055624654501271570352946667617903039156242967844689701117902782445779351222876043754220130819751634358296786916774902398075779971568999428911783261210516972486756010913035142455243415674911737233332162050034170062003412307940693555794750794269962772538216743269789515013114686032046951757332731490512309033487616215661419303139716530027055930789462701511541580640960325485813708134527863271102641221540370524814247040732976370792888230870164492391308225733013956953491322534060542602481546846169869818914273708690900854410098816875179717191709484589247198302905331140661751125278816103362695402740688551715306670309492645559836319386783629520080841399076707907776786604523097271749193496731980968118953148070874878491272704006516674355898834700854866336075402830242556582018724168888135323756870212838488879897826616802502782005398395138366777835083492107197254077626077608180151575585782135600005133749430846619468489733443863006416878338433751198254864304800015634452779411887612307035024749392440408943730037997307877427933913922240496723308651260544569164543676726935083693047160937381337319300739393895848181942684839579202078464504571974780493845446582620200448562926945930282202226462997581249600007517073284806803410347237493734433791200052390447149459306137215454904379771552031958719614697251510659669975430791099703576481155533921879958001560064255301160543899120677841379986849133947486668592601624960753398854515361013435962124003864058929371662336361876612374519561857240232334832161885601769289284811124134141263007428773045161954787388619138153469825151711452841640857876236122612267932580742324677984618776273076817233580018966637800373120032922180758720248605978108764958565903398812060783090346301859269787396025220284123317636687134694511602498054231534722524221521973632078058021502434388928106327021383374736351233757290287235421053968342237428446725419695561200962373252543939964253643778471943177984933122217402504933505039434965088638721278170357278624467919618241718038363565541167299884904376296476453417405761439945239972572140642023566600617529038053412052904000734505356216892321929084355919055000911951462429798425607151947484878689455656830412210897075400341922738587044710938351852143946138191061887617862704168578763019894426958178317197980487932331417624693284192835091237905108361109979336320913649998657728663147908500250939840025725083213116003848118796928433202365338813245044542495001603239041526822323502094233641552130365676286223313877746664538543491885564771937092016235213473306382342628777906126419524409669907591631722181739117224974897772225380628427441640976536382192550729566863275162056260615767478091446113275045753418719512808193584871421834988395433147100088764760116438544726158258456680463689986269956413575747258589378718074720801734986663109120745105091056270754194127475825615603371204457769053020337657688778604374059734356527829119205305378225713761159152859824622064602539426894995807640509918478781576451212804704545953612289371988835906441976457771910610610145923629783492256698009681903001388659114170801439049022535044957800717243163570191677447958512666164599449671929065588698169380703845089942558008081294127968703141387348427110039456773625308219422624227584688062413376627064177761436396753435871518516602013208529022546539167432138750818909307623885663430254398753031617594777827787752099949260694399518938553827197771910302517417253013716564482169782686242908719075207225701561264464368521970168959903914908855705111051460450603779744976875097162464127049053505072364600533137399119411071953930527741867855033639011460278185781265373804076173353591051666219136579091254771747548406164993371835056081033781712700147379098338430784711214831244932315266921102534583766145285456109357545880693528488073999041577182999852637916072734695823500701413331796737554033509697954660021848932385029551968991176265067439639817514238650674011065560663036503833752958547488306197462257744264836913043496313309494489139100506023223484423623676792784652659244006560046085880085313647091156070621135490030205832536613390993199432512889375147652777127450692248441897513832329684272395508866169310081887980048328661844694813395380144075958406159748460624289931673290619140768242813915065724954380541136067992279087142993820794849687362313443554640952975517955730047909585522406236087257007269827539356762496307646719630072532701826024390588096381096703590397376921513226441202457844956848578720440426532046240269337182259186511062586858452302860423059679133484330969967162586915737220029224207422487697463023030126167359630551879881459023680939960252905719326662178581756861859334006007485448265645655926080418922393007338389351226825592590985797520750934089824592515435640447466093916080410174928121032693407935145559654042463838729514997683944566946180689190275736749951831592262852687206399743442897647859894370662454489523338089962844658004697344276000205436698307148193890267252673346409705908052459561434780090226958987282515715846340711640526916056460168726303173846183709119709026881848523742509184487829552455890305030935831864356211300696608902268381744989008535505592375108518573072774256086177858812455677865544924724602539831868291445398466416263896515826584394132178216538191674071109672074982341204068467726183711941751884206773373699531431917838928648439189897093527583890171642201356826699729115312693584298011807826567314767402901062299787945936679374720631451332079310131569113248667947680514224815606687404778004245518421939237003359169281052464722340551693124798153352787777042722498460038252148915904052027850151626977494733607175754521560414422549473845857172310975628616989650797452798419829315728634959101856625470918253631363206195572187820987409618557915693808931995543198889744945153376078943657755951548054793286309883488647914836034413223537214066150348733129240672370625740816424933613097827494311833975859507022434783546226552332059390050545835278150018009778455088596099822735083138139768540470457926857544230812187103922631971863882296971590884256603594266673883586590572959860216864549505328635851336110336829682794782721030929300220075581741456928405621095677100109806986613283339518656273637405460886029596393594464729158342034229629785121718685036442070652348966431266393092130568224368680651271350539653198507576915523728265635349955142407660548417678678153245783005945236360341215171767664182878788897214846490133857734106136322917982324315666473582348015655829647606173145426835826566771017992572851842943714315967762299897677430717062401168419507931623854889189350198308761489572071773278298769194975636715471500514232118157087787519808946491148289201904055320501956427813094348108115347582221078180987145098578117442707853837227996927508225334297505467266107216203882317064322775821289459149940884558020687332171265078533115848085373243981367176869835919965762111533563271212130052572639699037091771194119386183522236656512338604906851842304099715251262176131426196242911484605438160846520495456861271625275778173782778137704372081229505758176928815910758524074191914948281122321800574592371472999708782099184550837409125328175164417434657386771307929886523214126523348901305237810614204938110362372723653449421576033415004814720034888026996942784430000742351290408540872105514638578690446849390448345482787174508555726065084614884985194126401423285663037430736619680670881040633103084900952114495768993664497278205665820631834639774552035284423613080417340564297410482957646739411381355822177843885705348347039446010978303349919312533799256491742512266219556915073683681407408509078509269325801040058834734168215576941551128462607638247042263089178906564074159330237229192172726594405739862062638261094178481145025820959796375778051422940634157464963958514075697555718045422102698018908916521269447735094649103211896028026215730111146224211784645672931967121066587848673704664047616874794776756528678526026117235456251761371999375054204062141386232442271217068101167585282035166725607539327989536730243970153842490905832536000018437257851212146952998447378739914088067421801201888395005001396912471493618294859417709065971526922482381624710112637087923849673656180373275966542077871295676675183199049276508344866001432939691360471444793879420270944577504028430437168277812951317018849766303753646607879342576719664312552796483186847293853660645974954140809119030533830309928547218014671804338780184925903086167934450732604152785132974191549492901486295775255919780122518807992749038528557015428676652845367198504253243391125776010052778188024060330565502932332673572409663433518951641992001852149495360775532542097059112228153216487414450334780867688425160367085451512648366763691049821060308455236210306103881567344193012057768693023102081242571412753688135845614348612336913740827952718198086136974656922670423190298256133198374482121993648333095471074710797446300403525148192762381407399333529495077142050839803658588231362791985862309265237792679338763343003461478866562480448824367867213338441213351939522779753516999246984283184428837836007682477421673739656442904569063233728482753589936038469809716130276010297104609599861485412252002981592150790454286810353121643134758829604345627587776766330858744032802619836721504024465231675377313638879333371167243667670789034653923143754356627257394633375203640167731328507949446549229905958294816827421685749166257807177992653482491944246599376340455105710265375400005609142252582683863885041387944627929854800245432276040472122656125040612835059338764516145800060078208645391622856675422127930520330825251798055826040491058559187646793616860403760327740390628799325658901108909206126423330635904936767694096125649684569877284161999349609793173295764775719325436982613911614692151060998006867531775697051520160972839762696763378982534455100025640597316439705631184926265434538023785490320039816770285005218630673873348771301787383986409033517727689384828347900934630104215431037320526861242294361429298682983684777648951105739810351842294897790565113246734481284131287130125222766154310812084389426066219111634148203217399387276777512477284578419626966565363364594946788857879221388590963132597485195832537210974514215747407099410860392407708039096172461537322342870902595124928171145207086566289773242068662934538003366130884396735109190341624217626597726559597885071055015677816303387092349862755850853305585792586452560040968665970220866520037691094282453467785499004326712199415609219016736964516499224907507617212553205545336821164964461910876504479334677817738736355371637607364241637474939633250552563368946066346615426958629383443914811598286700832958820090478686384220111724536606988921596799593647444574462705401533225493415769840840337649793488687786861640949610626813485718690948838049661049657052327238929764065427588702687589564921962392471464815960916299531667093368231160453272650063029011558061246386091071794394703659936041302893559536359437840215503035127889837745517315812420473121675514383407718585729657734908860675222226553054252979535304411882163470019527514760309082580365990520432490023884974011475419551764676443596375087980743748352332195267899886364203320343614513261296553964180758150582010544248695942608855960354262124994725301160738631867201631963347257088839259953007716389133175352472960934116606962458278025786506282100469709382273478278124922967030636778663077189464151307098086333381125201433284060443241863589044217922402924826109618124050104532784388437282168035319682318639686566671363758626704754666748457610098072249453772345627566459424473013877981717953335927753879766410243952731576215073458748452704765222406014135861181755229084323128896550535205895529042679154289948999517131190502823032587109882471358433484763047657801270751774406129699739209703488262183353888063200032339684455443467766224357082534074909236712552766366141828801885908857816707954958622500524740034766778136292185859418157768472607739541918049336183481788853657720842912738650501363059574476897887494962640775469798989571036135405183026628775239993760308437523201219981586072620034516257571860718808632805476339576427482664603418498767572276734591058281371992562317368260949042174002900026404618287513804113028438128945225835954707064932281848698841859917438924676487978261912968533810855690532433632158068103468511790997497193640083656543687065562813178505834026229728169168526414181969050077283657252183893175175544035823025887550920654616541206055082513418772408801723160813059887887525479455336938436017474533410531014549853489071122886541324306367377889568702377888425283999823658433508186452820458353097482387472012941583317998351970554497424455384565255737396542641428404092626398534014977963867839327894529530842308409651719944121030732702563469312888199815593008503305156821225235306739382560448604684879815298308647867971831078528407695781714133930045454970078616967973280427330240164706006144509680875960444462505232764808718314265296944549695831805205558703299125780220880613800298906311257200534328093767304664637233160635813045407055400210976703354264828309845037226151860165148894027855085365125518814324218351957198132059267173328831332050150381310174187244934464409202641899315010365659164913270451191002979469095249480959589604237673929463489552319255370509748337078700486814091992030010371245756165885547071022787991915169912022598464235065444257370414278496843272363344051684232585460261011831207321479875795692881453751455629696978830603961468469344374049460929942017394616856644316418789436193854617278929142087029957285578973044851254009106174179927916604339679386880807603427789056551167290124094914096153452460929318434377015358562692799809235320083863446583929150470949243527600997803404502920648246407564178802200529360520586962499403966989580389214143908178066697961889591645419018070997625216688931537462108631841819415722089775585220836958877963016148219621914440403959550663612892393353208672970727145290575284078852721030578044306824193070887255777823834394634011859960125341056370735175021683195493555191148823260541629146605414922470981502122002760458350594233331687855707624557888977055891269764586632473462437668618970466934024720914136432710409887536646073913378687097548790930695062093345031360864660457722386223492506416100387649959173689127908784104524996046239004518626076705563363584997591312753275549525437790658569188171702478333452251671366502738836968873278857288409330922267901623153316594035840211820922348437680461389069650221385995801368337288487639768879659994363889192672418004520388887211477720879871089330880229303245288542660047821619823953578592898198078283282432930993444982684548457568028383043412406774602546931689423354499425998140998725953948984914806391450690561466169995348426353972593371752998214692679840418624539142764422010588949732937251934417583876581771775764997387083498149774918464375494640874946478886077223685850181343002478287242637714081963535160904499828898829746635582262064360147892564607924599658088801036747568431010704633407001940767378033694405619447353635991727515675346094179732767230663639616524577105100572203563195415500977920285924439124807600537761288161886273682491508571260069297079210515493678431648271196424895014842615869740271715241176689056946018527582148104425345940662213520988009318468666337845458288394523759920368368622784419930159154656276743909830425871034918466131373540423056020746579336532135548979404360511376167651647697165627606722540823899655916990180983009334342090380820783462599723838319922191623933430294672009361296302231407637214199518863233503684587021976668279425056900349031433724865600075900712661461496852207327958787111025402060414213600642186806824796213369946540856356736194892853919262219636723212173712335190500676982924264916399059163155175142052980568408680319876306979314369536544923613428243705014814110350907009360463085136673477618513381025495292762089417223795817724778025563243428535739883362556427654504183700765367772557920415827975897821770134264137512302538542336134020949735291397531610968815781544821173087267300803543241364155078636025314030291111331379267597276938310696257180579394579723092034091964797342510585191220699379416211738244153453350763860716485499602168927798056128730500445216068956345918163665762815140225442203945105992228286058576076343263926830210710927042401180928092556177041119257839835220695038475784239359218626404402487085171846749732176049369584193601559707944883775618226377664450304748908899996801959071910301000779159587171100935003611980679871470207580771870708345477822343924057541251896062495697535898076804085557811364367535427719983020469605729685306192560039288940567451321064936294591928643166432472668295254603275911803515148960177431154911845435838321832284252487179729446213413055192409962280027810690695794765569648149541710580095063818761098535876037415564297524809550451043320083916096632129858742101203880138793332513520922792057627633719885525836775270597904925164805631394770847215477144802433736472790661802352728926638296869568587355023346602433394801421277740687345088114736917664860099416295553576410848721287047863522971658893107087435082709795247205009005510948108711761903425012936807265683951575864117352428153333957089368808606826506805789474230587199312908308531901849651696395604172749661940726110350023651139946138961605362557970883474461376914470076830754438220018039852497254360310027615085249752548441181117182979585619335398691529800122760603519428795773125458051440770823173281199119129057190140654095696998404992974995604437289000158982407376797958415211155285387890669094075317816732552250618341090135926868915776057639694344746351251949492016332325070291882926029366721855854805870576655957938851320126827612779980852101295144138155092910530293760442477145992832412395383842888155038318802122762828976577181290529002627853104248543336458440985439956106349849442810414865492883901930686315623464341122879471176775520408326058549845840088851970685306563475934138162289106811514392151526508731263426259116657048187226284169962770717708292650948096075998510828111348600583009910767609064248340882603504489036930326882431692339618165040303162032418970442305521053676638073208910461448881615056729759259236735431686701214214597144891938493353144246165353942704825719605006151524226803747870220381534848867253501928832552984483244099153960994214990507963405721076078122786689626338260490142541514933431246562138243077963353745603863026542376652869275847390042360730709280719706003830992592455462614042431741627370322492465834184484000267049212729027619607566355936827303507842418771474523470786784363875529039360936134709540564918091822295384596163714968454354051004916033181593649964546283273576882468167624808988933935368579012828005035598255228633281576724952109409063565953442269277558734445376160738159210518031059811972477863333314812838157352057175563434613463595083956433589465866861296230471545706851299006480405013489828749735220641119736844583765291932893053008881403851912516407265603834146949097774078116452855939816425387818398348409960132126004103597234493329401727105678845590337050255334835009629192754574333501216492240625610389443950398397688503750077982007100264876570751515161698262113188291265277847406178016765525813769191536107609977532989723437694956136521261615597938868219410887805638173923996540312869530627644000088211434721211728101984689302345069725960864353641052757047105573117129814476747998133388254720068508845501341776057065106661118020627866543305300570922935234408764308618094090069773003182189782389826717738359535357240210595172990084465267310615832213274506237576206739426738744717284688122872110912747631450641025522205957581909415113070704276882814463233735937825997668936647919382108010144850608498064771620012174882884579471770300040487641379248244815587703916519286675936920350621286243274436951647289914406773793135953512073230376406433201554335861108216279599593417224124691808765999194712133098727658348191157558385727680137183470261668406924498316609722335831841475455825681962315288833377896339006164575793356837549174526724457117018239022526230545214291942631596923429390578586738476371593341354466845899407766061525144100310749536824380207433609255282522038043431630657821317325148816658216670941059160302007578058613896217022409672325215863628828906394765499828892474282856905980711786791590579842350702759163590637722767748865042420144277664224931584586178986251475862451740262749471676023080543206352794697445390556314337092119676430434487971645497235721013794195495073310120930102079503617016699226419736487827305011419816842080760117968924871588147623822044078257878160536224915944144082318318108626849490288823957691327539869385985935110102344696752339076684587599290782744331311400886405046017955164805143394644028073459140180938622018084438005748115437865417952317453571066931311770512945212352027561026904168739799155327156412873476743033387212859377469954465904116985135251020743449067513139686213847109104878292254586414228484757239678201092771945691132730755430181671538403614704754781467220593967411210067883572951761816376581235572972791281447531226198793875991720977832500416070345300169752725106858602091621782745086294263655150730237837235380478545001644759054382454132832813276523583997920311842992840383231598321694977063489735402598753829465327038275282937278592201369979541574094128836320200161159825165540520154759184938924049792863115508927368049894183097153986859609069326597704664305283252397887125867516188380457257874334197961236918724365249731665567979228273116865450451552954401841039082442864380156383695024733097311669731625820140463775043824329316542965131360400975341818101074052581031825617117377221377243040036777582103640119444382913546988724802786463490242443895336986300848012007933819721554958989708023383578715516335104567730505706160043300108335827040033063876969203983028668612012533552122526419516873130268420263172230286299155322721333206894408460704844518104789199714834171994411895028820494716001147024846219049000003371020212730081557558288245047922273456233632423703745730425459715615162962209807135652875742171489811559689708112626737804277237455752132388064725989147446215438474039944021256567641074459056536088883653320384532723019965112055023036084824412226879588922378432045389207120152494468950355750858860582691132505832007502775813843305294657137599368110963274672628287826300558083102397299658663710196793090953069456336695232395005831969463536213811278939765673818755704109632479027356663721606147035683289054267059136689627360215360474252175885281846832743127338201169224968109402169722574009230225387941606204139192262501752815357875541562193982161413364122207471465966756976361991505314178842812960804602496004336026845045895278908289420944636824118225031496827386993184490175373328969586512558669203168985015764782916696317682744799656776644585768688274135661981288231088621454310332575975476880093085596759513253335504034549086811431226554223088794833617328319150571527366220124843384560926212011029541130023732151227779658007702765359291308911464294928074310666365859454358131246750874894771918350214316031662397544559062810873898888868651096638206582348220777813137104198239225924361074800259115896903393982395610046936839661891488340815530634313847399549638337227032365856586089507658241314015746542286501360662108435208138098879415088899965727895028865587588104581973611638926071038566698242101288761913477418172478745941839126125828571281767774729549271424116989976120105097304137215969391932653349852315005765645306374827931775783757896867062257392050439109786563460958413021712608438587433511843466968390813760006827928655112990928766242289173737544204723915892650001610869173285366397966307220496060316764581520027225360204040553251852165645626499613066719621481114462121118790012074269037795169272791580777884979592560771188163062945107247244936456916018934020915414693990177794751145407103441433203752145175886445729799375849050932289995976320256194919843789250455013183943294290157707079129126003199326167301402383894890982818410970769823094030481396704612029753571006841516375706637712289593037729642868138074194807409611334849881079770098345581335496962246374197873170332356097854905401977026377023486837540674171257447112876311208064486192920263421362925811777420691733366498650953132671213850354225499741620531249727228739667250298757571450929944841064527552027650514363660914140541679217755038531634104391358997483223324782206923518054966582861738883480196937638309794650734443528773229617999052814544868185578872024587543330104009908599326321788725509219840780796938807880663507536797064841979184813197728430862874169537996452262288841736690320268077853037195603536319635568984709031481298161252356378599434953908904883984728319752110225083799812894591373262291930574864254896301655443711547338227425407410458143649528394960138201207136904633411755495055927459083601299892318000396276765576969179216946261235996957201217540190034928099249357904489380252415688098376007106186506940229921062009330195104358220396528450230500343198159086438880454203626059060350697638788633904859051646438228194769239017460065806957360506368013165684404296030712823882447933976610346268433938785602655291204598289990419678922221639575049936821575460825762221159143041265182902019860426178158169451481833586966518670749100883931807383585774624185944710035776914244706242360910453759508292874950008858925142466699209430624607522461467589440837845813266272740131587776345240941815493805620272978849580130392941427347120382435035973979312055546430339686931959886083671923310858582052654547107876270875242102455516281936508632732731693379799568634849718946147287768769021389516154065758129641278540644746011781389398519137190211478262424605905035925549254776546687517126060442901864927247206899088655563447963055897767514207427971206693584819211788585554921700533873696961369178540112163169765774234009843917385501208964829635125559694153686198102014704196734206094850582787567555739192455116185559957063913411475499878399468552654525526953971099332251152623047953634449279721733540051795219955031601013345369244709168638873959875428186199893437609511087684749050373970501674250402289021818487327062955908902454947996902139342597206029222914888462450300260201108057807196928059677231570690649471021842413833793765228879549512259499476803704837900434844840493261831699136749794674019960141211627577939802865079656410014643050922106143917491262850359053472157034618292178086587660280562268197523077733231134856852236035814576652150925466206412088937680901078690853009747698221391836378873082332212980700648103062352747406328909021261228434058545287258195070855822460696687065111714980287660012930340075765859596924517198924575105688381134666586118987114929215775408273506150457971744561368855553839461387524731906820262362431008773186829164358904946934741618375703574445722831106739628835103893267157588663201642017671078878089854849655385871213026863321248031174192542451321760069372238497620631859952306025324175714711016354685592507459465128176927591209360992612803729708707202028352037363508809990600278016985159422186125365013974196565408230853278553217111781076293547489680864842563196404684259934713569360036999921469551988569666900985789325381169028620424363415125865985834162110806346299498035626991974821968815447727434459000025358172473385261791902274799951577474008033172405215842156041817603902674604762632567715737845748151806215305877467977528214227862180014089024855142260279577673866502044430004769769425658980363471670941314548321174519216004319883221899020855949577080489338000895029593057370758625271425558090369086466050465609670793412127689081971938157000689664310511025364123310415400556790054214959845883749203998353562679748222098657092653966037256669477458734852592170255219375145879378730427630598720445622361945620201574289529402089966362580717941900161552393766855983261557494864458673172348929199632647681056213144229082168957878692812767880504928425825443558872899805486274985323777510329884142994742300185769555286833389925354797936295733442657775664829672579121682626927185999081737118108317760910257285644231506515743708711401249055424805682620956776841366476936082620456790362781816092923818710379158669087843003064451279506676611378139916583473557943528316809597663532581878706938469935318736412635109464898443370529048423204590792436981279990280947172075898826112865426751514771385362697484377867777019017470209778977701994882485400517929755761179476937399458542350701807082262084672475585687544070253198590506534894772325814303030848487989278327374573146559616086574489291560223516272316369402658306494320406515490879577289480262507963419465539929789744103839055450006625105827546559730116228446368776119074516405340330204373079017486228727286314106759041728304169692476212141107816672611757008833725049210819830554713269465735261143879385347864152491018720592538935980913088184219545009197021479525326177314431637629453545328401713664807196407954509602830143172927141794032611731690168333412256772066399110896824922039493946836799707920162676595839351712138500743842984847070634637031472275563332101011644058099257696525308181997889105314430252454948650508418879433853731633598812615946937856824830640762605606241336450924796703852287055465659599940192759616570459523945017074579996867865209887087556951588045404995431491018042957337061104025555979753579394758539793116259626770414528850182064337515000993984942004514994446587967729323926774833112447438991298556146264847312452407076772158375734441682100093930751471677793846774486988662269024973741854210873222195450353086240453512236953327582019818470517875637767592229498054713889891220001875266464459777269891216557829300679753179903288473152911977997829358131417488385825520610317462620774620939903376498508020015094301493413814144827974916770000760463356670543684205197108548324380473051307894460130565351130835614139736361188592103012590755345178361588063383941151647869178485153155353398813623198454727643652533354638907139450087531363203510393147548356765970671506243851655214201867152097019342853684993382680249395535083392460123184751439497815206294387447089625520657891517098720520476338963874098487660067645879001450939311501322006946150737466968917440367814425090466840113629084334081467658486893191054527044813732370339315525883409269605848222259819153646864519773770175014293174031499973915181872308571254676424802986340187771953936085262989819098016641983047330335837739942686066830423957265746591435216986069236613442549367265233869574576333570052571572725575746877563788102230414443481680825084344860615530085801773597727426267534657820076944433179566750417740464024660791593535292552018093384274309128887185699133662730689281397680905889735454302326770598670038159605046148135801962843452615087710058242718902260213502198641518338973162470420601335168965640025121077668837260483582974573710933004392168593791009464712062363286345649390491322907579082186358636086499145685989166576341377225697757287647347842414745166755995442424083147031981294840806781709292062766751493427591593949832860904052894307379268991721921310732100117653588505942484673356923830430653526584267110705725459550163483400085898533952206285222062593971501727518723385709592805027390237491413395925312366305455006773807171547692982119669776224289167689088972275888936767729926138127240315941660071563874488248824899498812969543769306495914034921638946825727920581348842279328493972895080668601150354862604505252964247838602378623925425557091407478741656359078508005258776554685101861972056270212889016101960069324218727001079269060243869971851738116261254204519850046014832127851490570343603767082155762081406290131323687281325993422380131280415796315743820795198697299042569191817973074825201510374602129329813971569320656994872606117600967559687029359084492890169575072089624610853913463214285995122201858269294852490655777383940007847288972558130760406039344690455407446123156403808832390174715311464449608461488953665309040052567942946391428374379360917440629652665099555708450621174564766916958285525600819015024153012529155071478644958587809794021850686780192898126025631794202283195099668430887025960839857639913625781539100392690270438681039521777161317249218200757546107296645862262375791216918406033345097847593793426298904071574960311011987792577808487742635125362130676306121771231188058295435080622338303427589042414324558299432173255481376589746481876466307752079523731435536063290495139326755959455939637699836492575653811800661002234245848257152135920601927762289581670325397224263326346930793232069217900475082752185178959866036300535763602021587912012266830368779183435320612855746560411959736186469577683639082081659733320915932193717821531756778783599500972028568634994377551942831977135530086588676889820962314919949958872746198141863943794452364717991502507553655069962127675461786790596404845397292290212100957324364566949742722829367317395831217187208793635164615800486384837200770609842809374322709120291147532095216459729398885538521707606829056554385075603860587583178997422042625266419160657996843232858890598832125405885438175135303390260056904881894870398011070862139839374051953178829621045309492062193847283413638845450514386615130602905966769241421191327109296534291129088488127117199511652206522729009889334815310670826334732855756962497066272041756375801133719339415318049130322188916894858686413419863076597300334054035199597523915353911923172703024290487742513189819296395713434302448643885459125394224429835013831218680806575197829418183724347115773123293145281547535080080699521611421727897941370426983397753988450525017477021320407504361500826919006563991874389843840505686826589542983506924999364408027288361283755920867988109165332620405996306961271030953767418915477821375485186598303493714741317051466647805372013753251681212727183598059755575617506348888792913961411334817988408569198799692548806011767665865846855471032062279985401196321181171845738009564462373010046760933353371121656472884571610847071315505798682755741905602795208077366372463484774667816418125694213683151775807952199294377552124088475651100664102005287476962369531298595272482186232352890449400628413988165196227533566124556465164647444431914389073606817097071521524103897315310908742489048044295364288965930233581888069567082908812415059130320862518316663275186937552186758962776002503618237122267239369010013658047818097295815328474436805820638924350396028319290075670746526905066622114251144170821525978465126313028801152254308731695855950970107793374453414959938821378128656053159701476747112446431445916540463507636182565977015497032594555412997655810628702414578895160476915776117064213677189763604937877501921631851142562515267296283348883293147804571900051527090458731783510948754672908109907723911596719265383802971230378738948030235125068291581771049724986052191960779510788573266837853746936614463755332961551599481227446291047688831164018874566493536323561699796996401584792944460358885981015620175294907776339515256181263409695356300482966679305214631135351619784977735327812480497577378856178466489572475173565474350463744564074111932140914132640739116676125962492903852847668187494822404449490617057661201140557068617805870826128031204994916965193853999467839157691490217827198709221444421178221934737697608985032101927302000222382775581781520259003238033877965829528427510945349132306376988157864205479350808901444424807813381989702201570984734256892560311454197204411095592582882090307426732320327860391016803050018834426238120280228076837820199946158619108001055232079724749046377447608041118763968172095085261038752016238755279335187021498609274815987744346172146155994401314821912832037683682180170936104988420202063031727059873171372200710142709259114798534258452680262210049394408173353850856783253773560799222154649410077232827991360811621850902604994503970332037941903731323056623532884904653567885620995847098559344241510900114623526500071409891294890854328373874152673331570799870873853957542321228958474641972957472562324961232514223739075374904288756746212133659983310646036699244164942329613223516327395570605654211258323094215160249559527435040549466662775911168083433880371036582696338867266737893360240527836412075603904576984437188483577123250294052104769098225755056011626566025496198218141570056152179721345621896882735548246780067029013378903015528612870455396353290627591131500773871585197203566714123782670566569910986406082638566014584531071193326300368958662990802365333450089801186000953782573509116859662150782977059266380543768158288018436211544180526897210008085416338943870723845055774212498406705838101780381094998891939604498503674486841618094423986794684206857659168340672062741683064557390872919144764550895063105423904991038507598082258476532077876980955718145791894824238213739396787641573282504864787345656394628459327153661549200479890895565633441035473871203479069321964891053029807758273832570715692880131582053877289671360126560409752938365830411628698434900429347059476117070328763046061109890889509723965957496371933409157420508075341608170730156455854178409041420522440231585566774592127145539629581985775119083949285849275012622289357214521150612462230330056974081900110777594342679847465331553629936974644867842671199588680827428119858912340649141844226780203450504702284028980281370637285073596882376775600969786341956047752103025713707619619148612014666500965532348482584119357556005090343913736985828541669790104497724970435990896747944101496460940971358300820690871546350276728528740300629303845626578779996542508980905776530582895564907177592435889143696899049972675515666920707633329060443245674669292096432294845965405530402979528320970116223778061134324462452002916109029253231179731937158706315909761886741675656447362469347941857211334540148246572197299752378872037094673788862062421736378735019638146486999319518957279034597286977459122932503497140987505194121604106386830271237388894856127154075258323156720392854957727161859626647087705914495032287288110965581962868117073233906560448840431382552218723637389685088468289788044047540901522349536459978044235707833622660087778430678706987986760222112820137520058755157708147275481274184813240715195982315963512535114108348225021482651740727924350961693602207392973087281425175798091556067434456347708278465879983987551423839522687767302292774441621208289982985904306733403816928841644900396036220428100314588195924270261534994443544351945136432385603460903455511048856622708467664169373627219326198940841559755718954888751301088093126279744410039406960440747239204197485456765723901905257141250938137862039051500181194594263800859251220078823274755064910935425761771493116294528372985108538068643134813946265845536458421595536876288338505798524894791319784230836439618066367859466334242859616908455881179364186115943614676940805900271647115370995717503229008662201856664062638385307948562489043467159406937038931736587527627533342871992638809401534140393800618338191069345733265903400548514572669318521352747488387492499104088386132852058048452478171376727812156918038352080092878132552473345185687072667537114789694626023313855098563380793506913498761346256646926852921257201586120242298243267524587708323007942511550437116216012521020144312121508655508921438567906610775290514722241724198630586788906378564602744475460336949852112959250387480947846546272665905479847607650332382929577072786264949843015536312522676001115788411551073037307241251998076319060354724345184837551897054375949361628917448042894834942735253268601372672678801941259104132750345154464294210367453146908459966235934051843792187902898623287257333119314229039433492362651632672115221166777776009225124089567984773443176948329917149684868530216836594319128097613484890820670827544695639898449495691687839607032053103789562043992677051615728462603497972837755763382051840403262459088313113790822118899203288019212118749766822765003637893669493361699252290813848890490038021105428201785743799069344707691931341068257928829047290844005902820110467753499130694580637727219802856087243668450249919813408432132163474032198474713322752893886988511316702079595047180098194745918878694475411791724469443215670294611323025417154486145127270414930388590596522911353115623173261546303115521516899865087637561038552174952461183801451560929832168368549138604851311815773414603905051046998202637053760375996206398683406510262234105216575313035192888226804278331375010264312728465533212572584381496022072871533288661863755711041678016769058364622721150718770219682052016037178447300264647534422326624590672664163554366965425187880173460829365771591279532066612746492521594858284903132507787229186310610283603729532437460486689862897846414163795095530309388363177085869528275319278336969485282106684134093747457205623578618741620995500755930186579414678806120704697975171947136114683658259120255698429201956061769179322984155705193838449105943699094758727901052979267530869083150657397484037173173785329708102560111345092362246525396259545706772192066101794684027506111875125912337066482105900353427328770556227297153019192584268729573742204076915590261203015194945906251385387288051656190486269458880160797304788623999303844013403600311184058338618822535327140381436932457669789778136489827784339514896136586129062497906443350922805227200484320078062967382861081766538319068475930946318980383629344893955476335507760555547219434866914556583819840312489515433293497798777952725474458460370987257559399824257112041788674118177743605456054869671463976107632858860190254381264670291249648731383175873037007864182839875987648593117221721941293660580109031133528899432089839014629974236625949374149145923546852969263348720646202216848545442065981733433527318622526719730114573308295171598364115919445148249048234791935750802294115111569999790321245211156208257400844531982969592785584592135313686575008726776675710124401613481708662451863031155082230674214967226943657939005843272213167224567381810699576788953604822536868853161590349640213168047919767434709642077093720398373272239117496447018729693757858412352900878301517410822792592041782004763519115541460288318144905321930660051950204263889448489969164714899539083656887050512011119202824963334818125654609853630147617054122803394503181139637064360568635145442020093037251533542765815306014549164302582628678952151077506022106014049898073685914962179659315213948404544598860354564337205226349878498798717487925160486236653425096209438512654597930038540419958303089719600180232779428076399722953189115927603143730220797194460640505603139348675685771692235680111382126412954851376404875706062066878669747072922846877867552975013876639638662600497291611252607634711925098783340763287459530696594133744582531981587544960907966490587813775567514005101108153585906375199064656799370206264653832759131471520242210992802266608423683055406800534857421535268829272140033915833596187817157633162673313395431746037764480984349767633302620704166203747868713021907771306165547543335359695657870461655678876235975368308039407945632121830956126610922578456902455332884081942501065535966117156022924200093990275974594751054874432944013333219114057310971766304400916383260022233623593987892208097127377733276587850394266803418974531259198679376691894394209253939390887154421220236589396532124402034614375135147949679819903967320640126975628163646319116834990709511605898392404555611062875686017786283902793035133644642888994132064026820144382786161956500010176108738982224288642927913910359977215452643308276081795770651316851830446268978135701230953611159161614919589610699139221410603202453842292951389898373431223683206877039642359055285912003480503189155044302506877818313406426222316883559680607907053375323391654583992036075871383743904235510359657074112765205207007404510490487767817325096133939414476999409010843551559975042750679486124658212768848083879478850595713864125689902836616597232148327840107740958956523223673347315226181659486910320268340244594406785923717018692627636759627407982383109267513531081549213815527157637229686705517590900870317939279046970345872644434792133353576337033386935005797292735569055935543414404216470550380352910012681052076673985385585794562289964837658094443484261979111221605266226723124941997613594391929442000852094344749653923835617418217048746224895921421696650682109618050726954994700486321031502779987512304067218426294491208744065082701230142960848042749741639189704205864700910864838247009348395669383772260179474230939977513566665122032504940663455962156976091953952663410373238346469109911695042430640277126884229853844752653905243807091957824673386806305856593905558049802294240976754627612625443400519826030028118474297894309823366631082801091554393569035119186066840660429531434044238912395541784862002760936322719401713148018224629715475807524713167385339968570131941052765602471071818155838220757883493863128446021865420374636944733155313709268296051850349904456569983387058530158274110471480542811248942039283677076873129795171128516499147103198333460805761696102190141319665009587638260461822660389442232963104263178486388426124619507256704232527069983072849260331920677753985226213938449946908889759747560945668825734354745602196219497972524147544175847625088827245003537455021650936577953674774986410350067549103655570229934585189330252417586733971636050327183255557877890052994523782152345940511087144292498297271886363517812347376762726554307296701700780417585325043571505277320670699543645257798058516296785835178234887789352453297718880775554596003662041505134595228350037096255543225707325457379601341787040237278614705673661639518917416904680139774532252716815577147987660455766279318438487306767632359602937119520176027273033484452176114980046565251213796154838444609077402836023840043143885135385160063508071298093276342819694846192564008131043665106978865181112922967999251948846256201026321134580651309027748571788197623481677942984754153621374316852328045579736502203776333391475295178656968315642934485041211200389937055586454516171576593350846744669402499998723542053131798723818227096317678461499374397571409315296876318989625257638085483511468975222411589663376483201936897601108328068802340479204726258159417077596240578690227851980182868918135786714765134523541036224367713960339718066515769051268608455467372280461830083455014500862938929664382224085421362341601615358466552833186886526554102001742929681378728062372602303354757089360432124140976082046918115899377471125098400214927908322264327511046222067131501909203204163423721496665996227582060658879764619679225287776382042133000358569137992548730960695207080918930041185518634101761791093281920255883693075863695082755466468544588181262402868085620989415723578434226759323836177244929195570650868726985425113790062604537068067462399930629345851934875892040480144191338811782627889718295450737642652574922074754655134052381291306051901986413049549517977830550628877867693163818275132153771722967637243258505208211557230298060314116446358644649487835974587594287666483735968709455098297267222004758451451283202281914326584288866552729201036303545316495007703042337722286007653902992584047086260325243642707172571985062100881403600275493070197581037767899549987305453289136624979431955714178588878543636444347408806285303006238411083606470750084427002084578072116309060375137526446989754216769839019012475767331368910894110170781550203977415154119254782029946239104981826812563973196168857911216003808500489985375823940821950543260598413618930674175566677471450705585562431948259066322596437626155596839140884697013333047118259820088998483391597948567682830449854149236646492446942317650189731462465606296691766496042804966593198320870551906065832382709162954997268775195698702840354822545860008417623513180649208525655067343212016204944138145991290961330614807101672853260221754523729989257559307961883654404214934642500538788132244582604294099160905713959049563230967890855030497481536345808601462718002978441173129405463847839420884010508445766835670523306035265469606209122890614141837252224032701471248111713788890507116923689597134859839805936276505205007664533132334593987530609120105739107478053569993435112024228728440360840765139565422402564491676933743531455601579326352362882019664875545571764985939019705469802418490284544705866598931643897851411982245477966000985413580053795695867218144045767897499702386841348858225354652334310796606368299299829221485819965471727965173617388292371394005115761529908306393260433403356138467105206733110651665480306552927021208083427426805800989572784725207307423570175667505075085016508822357521706207648288292197054659227128847938039774642408589651284347777022520429404742721655095145305140360161529155995964460752713109784525859010527683641984357471279796214976086488551529024124085818250090457200094042217414002729260570779724710575171596891547950037180438240204280106856936741532035805725435639413077484045833279202168745205747676486317474135697889160148831995447989225287174929938536801868662284822025969733570256144123477650858956653052420841275803336641669737717521970668672969044816359387492537707192244472025622873898416591784340774044983235200366959081207988654343347443713661637501539859667659489008476340848320766953619988553273631185441501959153358439156107262756769291395131815198986667709563719982358533751034551221624371916637900636957306035381890321141338344730919351563401935307307310977818195371496555761188826263693966595355835854626033435196946681140466003592824463485950451412741322311737650968839357951018053512409078430418349244481198651852139770533644545009069407999384120085426985044580674522607653296088240292929476503553743526029198218312716729661285152947045287776600573746723248006161628068686668489764916574032753803110197472363171770849981582733634738100910332609067955599973226710087232863557712958482748096776546003482716645460151323120164358226292107923615109029659700965170820086478670895893888353678707967079330299886901745886301293580682422193039557014847174271805344953668037430253389597424492215685197548764353901698369029765963491125282584880272178174798792517197472736270487411124561617006891887841379136595123336974559944746195656522330930886694291900466161199456191839941027739257328811546534047852156033063830177943859158348484878202665904331566931704748142554154054135835954290182275672080797452161776679191606026433190910298493846668109871482653428159512781458692747348266186316609222571978292980413380398260398947001474799704029340443221309803754021701079898906183802486447501516561414409374831645422466284796367740007662107627954382013233112438545872475272869935400089407612833942196993288464159836110345677006609563803530007459423125790583537470087651850044883120317855216581526455684849043915881159464935942879660420399984632941732690017227490092129065283287903392178636183462681018501408767497837986785277368807433447213349305432619822806516767441634537309664368972738882040509548791348811428275104845419891055754359341655912396533302146580990772684887721281874158314177980551371152772911941247281565218277192104462009064145858487847733366533306567993113645775157465997043964024381090239830222509323356742334047115569181576004209258553523315861009390748775344135446159052868151962926002943425647598473905588042869324491147314057391420172633700378798515954118838246905057589652809788028333725575354142693819575645694603086900888686996572391191100751601261898320575512213793756508563478754332876081139539380451515093051404551529630575329039320038630245309363390024104390658725172655804228743090363139808990771519813405897933381934910268393514958494688584405197766682596576190260162467225293136698755800609438206448385771125395015392027937394022558873008645830356821573205583711870021772167522663219263508880541864997546176035233597503299679025514358501316863748561610475846263237514109877591171800392172603990840374667119418427077809679573712791289137477311214706029764085054247982159164817321092892731910244800200794492489653051185854333834940833960423755167370560857537282747547027510289568604718228661338684837431157330307794657156049065497027964784466049240629653343931573590267520125243707293862377573860422099128405719568249081224782789998985909788039007258544216268370356540202718413024354467280223210458430051234176185905804843792052103237388360827033114286806384678386974317008119676128840101142967131440103423022077722057535394976027575495731345091632677211019208399761302480402297852818789693053793183694332602091967179089534726721473172482408475805124923038111206043566453497486408719574503409177446492630458219152855162447877911122990883108957936271439356144272818747738143949385315921117963078266913770712776983089633866500431498834583077143333406740138652598217055990461344347390042438787632086114725469919714745461487360609005160401974119036473292707203111700041709329992053111897079715951654005443647571066139719395712335446400134104435614219032077011580061474377359832298734530905981552050561888717191675667169274008127977332978716029526016328934853564608409678118636327706589247515646562277211813417266638314075293303976915121386810579071138894862131059168046886014740838927335394940809833757331509824115686978966837367739575703175338757644496378943139177226230417240027856925823374031466741594986928896148489165040120506516770614869029240913418826651218705752373093488131436029496345539181481243092151776721601286025496835015031521778789365144039605153614602265731668285785567486561008572010401560658984032510336402199663626789515101587341202385642844081091027189724428513369595749240158309595340892226904441186215094764167223964910900543696444252841220425027712980837078890931502259505258251799930952322515319501469288469966840118083160599479482512974355245834442006932891071784048016467257520654907181965607933552966092524076274422782370703835108292564807459741482851471107560043480179068497661119805343574986526562075890691444918326493909107327131387779428848734248381303508576051040129477968880520191317586966851773801926243282207257795983163623093592870896221534784154572634801539430769278293497099458144279368531474698769909042044130264918378557268301386541299524772041607875172322046389834485194445588061939722554232252055418502607035702657385041302097608701369052892080149411100762934388345341737260411638371526842957276898199648387662625127430487071048762310504316269793364924526392213749241944211629027512943951979685002037128066163929809399066878405636129850926085740370561889968350950288768545368119009208588254207619227096699191964642527664619245028899269243984174898078854804944779277484037439679162618693197589932463273283030008740423443222875546867154787400029835712131316755096992100786809228455742615365222765498067709756144731576425278092027842505317389874808907760359786576212693238386846730170557760815785619656771028203789822482765583227873873183244596240347629916593300180931109863822072403904658162950476805458805546778660266494672802321790022468860633625770990575183525099487401017370057695220442383914784256841775846111412469325479206465865872285840392381139788697299550351019608806835100732497742075852957573573413095711785109054721634829839882623557764043037712268865099307746499186503843228354037372621264723653567323809740079776244517613760617146046568762549358106203155305216219925766026092989266436750664297500050049062347933134620586148035756711903396104498322604767810354539382066439748823441410018414681723278910531098431432922559599572008525767230051128560058008965043253998846451256208952688084067715568519816806222330270140164640337794038404654959677712744288278013475743186033487490202181500351957721568202237827214716525415059316664538954558391227930613296319537790118551822975661340344792112225155686603615997142943407017978449885170460602778280887936918047792277060188553992914360914927091772796184321977989459177130418430809487701812564986212169008777100183978309213955432601326131675194914438767622098607936229923412985998398742960947898459436083460642963779896670296668707891089492305576560500073650887480501538829315177918183002874981517881644703515134823506866975816877009104265330118725681152108543564508614299170804688241650477398602350861724047427571871121683288779806627773456831615202384153145133083656209062038835139778792289874984286877529445026013055319630712748745797405781546745096036645960031895370758817040060833186080449002067012056950635668305734854632190877855488901486160348508712466204057885401161541329321122467135902497911864930350708777277097650377264640355900485368685072614696527418141185742175656422680553617802436601751791862464639635395616077209086609550755843477521223633536234917747856542511458059439209945539278105375160711364995127687589187263484966397489863550910774396998867349636419658731965571030059283301381311520941982460518782767020464035383419556107979788070331031959900129118576523072071967259768392275052251794365531518990488569305909852607134478328808653976962527177605963666251272844020887916459166235089146859921655728883654255434278722228429539296930899601116104661626987597051277752307444520698475616379067162515971167376862477643375863701222330093153700250069587280437807166234031682857381744335409096612655688196592138346578887163855590652631551055968427748353963888749555852218944484164173392614808452013655139596688865256897049452474111528638540922613900054738453250973713936744398117804721082277908170623511227808006827075496604747718434792802097368679144655995767550614263545383120328583855078037761467455281050481616681212510964001306526485087303871945830055306479247026127731643305725339731852150632498973300459001717844245573745294309060819281352830929272843381290128131066682112562758080860523921004294050918932531796442943531377923491342504581273613923332200191427529099615548022816413277118737790816393229115280324468338410584323162024227375529681183864686496113725110563519812230165386568068726868173578638339072119892455191651844395505666212191504224540512816426235090722312941931149209679071233235539316443475396798126838719453901884388383415872147441063191133961420904566372567757059104535642908077938098754804797775105693855396179220108468677966990375433128224913682318441405266613591170640324462596264376581413152743812095861421975585573595703140015489045145663448675664401000108030825916114414496941721271891559226913964363053673503035006564245389814209874598166931244780946079565350060270564699816146482728086155958240784960919880239366214338291197942365806198176555188489855130234925454057466574513667280656467167600550962556601399076527165799734127423555188275076071907449600895381328609774753717248946266966045872736273102230724020960647099409054213514236207938274474770591294198451820067687826569887304478169035790491693485486209841547128071332561208279377188187190885314297627607408588489592549259960574026515127652210419359059991997813181930938898270322135971377536967857403796269343868344023076580383557880558115065295663117872529236445190744108786680265981068725561323135635567276346902971149296898203946322206117646976851946105456379168237711938657905884138925662416036992064343661571252398393644323766692311341157386103199666112306909222755101623011801445387222255032110487112569668462519881679579495994756817582105693162561413090797607957714482403295166837470455634031917448715887765771337735944345066388798741602315895642300430622012056093388313124736329859227393747193650254418163780565165043447241602025805055840620319784217293342502981915125850658630063017982182348097711440111462990131502650221015992872319843020575618991232857907746099904559408966064034225037874980528883871686092306868148714278441210247989211043884020329888763492395537799654453444729249440636749511301685139596478215380172217718989328513438420122519932974768359720184807741432736644787533459465481792453289832868706297738451036760695303249067678350989114843601589556635917492887585976504983897916573348384466127760724148576171843315763446638670963786409843552926393127308957547408330333066896938507352916091920214334152459849062810040564277350071396525998862600138816985616466605955956448564990915202628389444483457348752381318466231522782146830037450156805614524050573337722875390500762201812624031894100277926988622692730688529565717352452907872045957717274574331541204337286941380349458719617715141697030455218066093888333138526848769801145844125216483841408764782353031757987000347649031896321945112630963712069092060166317156054186631369642396238763651100699189804482687695196999628888437742317597048140677151163017494223666499659697706065352258979659649222035254523885677680037480496197686341526641753634011356976708839316223100430337030180235250005628114141977892481610455560055290821817018068247182546893421819667177155827567055434671380978426753993041173042829255157292638418040832919356307992479157115243637560335170167858511834771035871373723800145731720410120633965124283183025393711949226676791938295510513331657366410145511374704787310176301722707168047004795351211837067701727566748338104087232220604420528333229767205265156502030597108948885529136775043656968426141799033816370978598900612232439242190920117067411544491839298327735317527303472796589047395539720104962153423859636047264197050993369428701188288509187498051768204524264711405287535390064279189876310798767400680982827802489635990233706902916253152757084536982597370447811726852954550237849574236443038287402204521985352140447355690526322519319857624942938575634118282130203890589187238237045359115959512697881343474045524660566618044153633075113521500647568796271650980947490804688772846394733080051859408904972885088888838820367411521647938639729064177021623392983193599466455886732814832707863224408031243601227531322976534363851174275741462892390143013868632446237687010088951712487653869222958143132364734194470090660484612121072209589404625855445750334941493788827495989845250709425150510284316706153188415118843395216353904270341468509561437188436290193986726793364687569968547832861032629529644219406015915732943940612046574565015306133010183706674663471398223750574031507553361274928695956350331732431625313710127275513407220449075280022554903619994729406698373629529179369896122081238484334526542304848563420602103807047317453117015848912930004074964848835559948190685998738917927727891388499431032447954059567618923149955913268681271860331157963633857241560197800529698284736009112283542868993921867064322566485483491758214460467219557684845626292389304245698964290805506146012366082023848828580807965133700462527356978339639998402741817056372371018661566826802846430162670616250289196338844048786158591579511619539625353369485138502714823325156159532815971134138782901899943110049246652949757968384491143261916159312287529763852760987834127018191665349993803085955977696993193309466594774244973368730102929780052499961784442595182994035785478922631159569221628541531678151223481399953712875677005595309196869987706261669398928210225503531206515545043725209010306863845437231444398339904091002676674652007072060718042774424854253602395711914615410607603332293554924130842239307643769024713695457130864218585597897381199769387120455282820750849543055339557416197441510408071128835810934281575928176988216003039953640241764954085141177464832771442877693689694004694787606397000772252628045841581163326053303936701273385471973325200385391768465938050617053782296851608227452103121162652478947217323611724967667750724335697895949691587886000952463954510476382129893312971576761888992772664764983173232152492787878877558136416027937873249673719674491050867863023912454839454030097860500416088476990755925921978876120014549427515498316738986935274787062780328176503456562334452285977067289638982257636381560936800237370753311739015147066412936767357818539226459858362294796091558984781043462186127869192309519082384203837349772488485629344226356466722055198682054331438788926968542924542494088952800595058890948310028595393624587199216353932513239231410073166460864940840240386021531523082827307333728627604585158272918664023211489163826326698585409228089617317682347689231525393385653201899149357172501721489609922662062663103892652753244333911552942340281032720211455778167753565989510818009991702906413785514367486348025220543056738737820697616424328603379933139310870283059218405066041106967119390431625319331933966826983460530598707245725918502835608337682459713372880098547853502983868365724168649262844532831182899312396877862759162894515059953640088798850682970521126383387838306845930900712098415408013194002536203642783077819400545169149568429612205590905913129901134996230827038900954001795045706115171388931139818137151572780291156714707326086882848433764742231284839575318085024099224631104246687303396618253047520838556245371367279553088866218088563682077953011768761163333703853455726239465863887989194401399396533581229633029472386810782653062643580045335191025680739353367923962921472478929472780329409911635716151165965825618404297369521119672813176529463862738077357298560109092950838396810147626511458075737256416707114235977262319631747878825420231606749847490768675334766367383516779836480918542302422423805317929537123097651579214451054848285024187849969956416198938929852621953557527650755651780292280582410468811891817380786048885496699007818179743557461685056730087507529540783590802395358857462328141911097216970749092512122401122116983008775117798550572178515884518318275957232363146339814491158049162804440656810053331338117884056208549056921988394150643821789102059454741423155344236111137822081058002804148863334165042881473365257445990709204505522992816549320710146973358775237472914817329504321779142330995311463220231779880865861363378754538049001326127901556751144344241471082599258361774271678070793752344927800779125124948056567680349131640095155919401200409665559482134002849426562845050134045484164998094622979002893397637176906688613921371919810154333110310772843168293989797667951264093032101920165434489706772094430728742324941794083299384575702578839551543136436883151679507395715682602057595107788575824358725991175938304379742243791969429515009945988130547187988768695637282875682381470564964954003955523274290348086230892790496833829462062308771982129043046814425618674025381595947585070844233872337536417837780796906323240873273760927688821274637642642806071133560973014269369008307684391323605629032547617875870249589728144836190688418728071591069775983772255250044032631749539249683976304050927367515125174707027180532817329858163624686301808109165794466018219287026064652404793349175173726654665833026011061499870759654372060215220246047249602732168172895082107744840801460262023528153218352328028882803611392753016867477133950725731588174845596673417695049365443014898880541393821489793372014288834324952386000308166442741897432865336033379069909894753209433572903892242174298506876354667719199299383266218366701896381359338274190910895870085052373581227843588405435337082387501268361487731526109728346957810133453972781819818027645744959750345832918243236911198039379830610458835012080168618185680050204271233258352769554049871070654771454009826290868926400353916514836836942611165383656084101144702982305585533878722246097375421685618484649896075130001343574929375628531578303503032255553679533280577226704590582604506441280952596687762643840018290972653037589379827681448211369408846908453644388557838117279342346958640233273404576870926078582729900999472541965160796173616460220951617987705812057915754182882023935444392492727102549446767617857076562594337423903045961842495012987694331090731965710783851887366035959295613108596465172094041741766014345214140695551524084731771194033402449219855634114771920426456112549753451052660176517233589159723154081830201435218851403525250322392891406074402340267832129698312431877598208723632625502965212769504043534834267279744604863682796445449430435120334768659000110880497849334915297904953867448892657561466015903466839063063610414803385013034643073647044773875548769117174404975476427348110773559870122796982032769257096925159132943783680785873653007198621222103910679358675309651355347964753537024523478029892831899387459407786092005153859255061291242445396866924027534027454386369079128225685701584761714280954156768929407150452724643340233815734994032136933937760283872099674024577971810045527587275835271983850702590021441870846663197938920988577299275590613743334878939494774281813273260660009253657420230947543690055669398190955637788727027333888262158380046903896032685324798074058613967030120876667853594810711862262885212330823221709799238619645879813012725767174800895466133535077616995892172896805832774855317142306513730844303445496074246237078340226055926102900862289959704475240921846278826177083898931937929045618439468883709613515455796893917084192337920010929471133819725185038553181170779887288079954982551732548117433353360153001398581937693960284652947003731573705369325738141918024562276099147009411119575939692816409433173365095965231258217592911853482152431332371238148578995122583513601143844191163862716465505282520786437402021711987967760142016872413557635396500407976632123029530860494973467179530560629574185560610690179726996268939192360093088944652699467736319570107830921986222486433919005717718882595012470908492519241785179749431962812784125127888229339605596322737209803947351045657167566056550866931612448930740174368251302153012915410549980215963001220004876193717989232103207423973196783244108631015044385188950885186514884262477456334763762210398596047012630682906738724109382856780654082180631845526456167116174651209418125345642954553682022259140471162597519611649287349229685319915377606285090087747680763393032961770434142488768038883417543645238702908877403837684085041436111899038463983203114047046297974440445167569441101573280249958479442905825707204307807037956347759695313685272520212213931084277994134358848724692568106107552483443689267060394704542080510442757873781867062080993923824644594952078125616130022556524536788340053841191317257998720370504441420320086662645988881024436940246796896150054809481641497817836398250477933214339226561348593663341007053016617471341027377961146298413545326371071894342914468738218928718129654685155789394747351974273498203309525292430733065244704328450290725981680743858572734499998151280837830375165592159401245072762112438455270580967519950032913962037437996721068873640050187117777029266212852013418375821188597282270191496457171309739307957413824472119618867137653403771845323885175471397389764167089550670765183795685413220749290117315516808501403181034369853960832044717057816312343385607311227690075798451493642841665293135095214784947869141874611510097195540470922954598104193625436942513611451466603421270068611595184753620456071737028741749446259202365492639264539073050327735722487964512429560992912841945101697608798123474633890238395412633529719927643959863611867981732523683819843660067574056476049546895569986474583040471442322711938652289430957031113734561765374279785359016629411914724104645870226366642259489705372595167403833628284835254474727459453111343773244407568448153248380325062013164379818956546047673361983121318362311521989172208697534990329363775203093574517523460478011998294524638476547796188864735006235338857397303612817834478198466475614717518731023081631397097442684266437690100604013708973110342374743750765503261197305154992919727047360045056570188465424528504009850719615891540978183859703427032284035972898061533247253637566981813099442271425973076090122714126256876261352578273190702595217452702915822701428114563236712185308895350985176098715796797306686367460351613648380695402412479685636664325045390619773560643085522114809982534796743339634391530291400363388294773541079120906075153670100334838321182201200572607995285623272033525765437717248248821499068256227172990873956298282902760252394342038029491570808348101998262229194105544110809820185177586339829724961567788957689473127965142414919545266968554881421766940950505686784480694912384125334184819845965487603477037314690803261594096056725412257577730633374049089818008268645321804836230323521814678523869955969600424946502365372773102698526283128146505903962575919213477805811489375905999976905812324842203843253149603466144460923112596243599806018637526300198247801297363412452164498930758119872672786552351801001526018853814390309055197804842815014614618707851366323576054886933047977088110861866921927767898723142373678837707050912427086632510759088831105760570962347342286268372910198021234403901036909207073764923060338299206905723086303875696057781088139871217962956277275930717291031224972489701836584719794813670611495457586901461742216322778233100000341215208890027524684448902689579366182502610753314900853885569693744698695032521630861998544626500859132251263771446103868897538224197971403824069633106821474736587472464569501141190433147987362411566541300975380610164602338444840280988437705699802986306876447553511227551615725341855803584692712565113023890435924410735633695271772549246121326717939190488049583550382777982517030444082735390994940492157838869640271508770646994715133487355576395802876039505920883020116952195348665911758953515333186766086027547556439813612595556186988828448383246052753446159391033545679727791955993074345224646026212751234014537077912901135308237183259701564702684546034593331114372849612524473787102112017085448696700702919765147861126686839944630158753115984122221752543767483394122026739960013405888281360361371053695091754440389964882722235558192943752327427535457900590264175522314067465037123398828717485571508040976449021991016752350946581741534563154405062193593771880049331202754073132515964615362559448612634791184924136591547419374914878194644102425442771560618523378673696578361179533585000097548298470169478048822154899207873163772401467022141514089912508469657053546848674290272860666306606663335040199441040139103542023685922722107136662219135165763003707470123770351119118630435455291843618693692450742569352498323374099368930323634214472623821932425880480813820584513819245783000857955349754012055507214841009824242771055995715601731238555417416498325786599194330634273193796430523418001517626546430595925329788364428065763066026412447911748526383232271651405709383765126202724464649788750994009142555847320689658753655324688671884819311088673126295088443886982301304983014883117950310718774991635028880764797491985845009885579524271625049667656662287883244850401113039057570973033993084084974450316862155623162209069298845842416969690490041249046256912986703720053423312050645959579915835112201387646887227667499656236453312439491650273774465241376526722023554494712939035936010098209395484433414986553640568417649342527150687846358892565450814374105446578176093989465002467016852708848209637716367045573848913895828090251070194266025792208672839114648756008529870794096187836917255254390843369106366514604468228264008134884450561703631348801864832956456095862260117617843388674355539818441491600174639515024819958239145259372699688099433716180111242311164166630294861474116839411149804089191834112035454480333871535194777366970077470755437859825320344081125033309113096070953305166394451217479034328945619543435548966175473827359790615119817478050339410770452289274878088537526621037487487073272483177920860724803629092767414879511170481755131266491260786242710609810372371300469568598759462506410497278684125270673009287187183317274992102265837482491445679080582191795375686907520303123912171229411034965789588140926762538842856249720334067413647340612575935204208684570842248130357164483343379720965145819808703379694409073349062163718956086594412894398410867458963319259807188285439156305552005660792016250869091564361485376601496841154020315730628370966416597689985809299111335705643990243429655450111413542370244125721178634436799510625724800182579520106902121736688597949234531244977017316480182744030135836876736524682354828619937285161953563454305611013146610976436314347218639724084682111821587048209512568123304931193814164517325179357632308179209693071474920171070910341091498640834209419582751639072583516332042324580398531403940180501409648493685699322762334187736821679424566946627115104895455861141015648785089183081808686067655014329565425526269064001427991346680181198549192688715802700580767070499923589528385284751967263482265883641260786982826563872960387113668803178954464973077009323145161396185172674599562235165246513126356794655739568991149653181947626991171970805125686173041583426845063182547026068948659034394420198317612092069993887142022986359786979935823814400853263710731429948251399461529918880049133011242712207209491077771440152069607212733236501704071217403814952282979588908161627734205811748062618900323016885868462071811711972488001271596728880734596345114132622765564108086749925983164105737896637966210200567587056894686037274324522085600563090511052268114007835104804490499984510403996188718097243801501495559934214934232054989492428677619440216253907093898030612500904111181590424897312370205798281175924424717599824913403935263736384497436312229824455758507442626497372414141582910790459498070652011722701146811447509273499025534737121210196159767857649222357875180474908216247207693843417530563598101787694589469952043886223864494651323998859412746285544572847454407691876019773230291937250578868960598695636814980329535117865421599709045929556579449816432846784799664109007664960672701206390953028528681840876404456407726254374646229942229630781512934311228509554994536806897376404363011414767994202124279937598622548676391561656673832597799020210519131195567348228718686262749603365392184134696354343605928391548650696826906459053430365421117745356040144733655302745572582747538195776143035941288191791726296197785061676744820289141233265595495792755037781054019765256143234104332498209898472429590208412786341899209101490516419325481555333442812376834544529083539291526256441946348910835448464652125414710785300463675850531763175694018394316200103146670766417335055965070539643610813594721464514941151232851107248033364520453879160903173708618430251943494723143533334005696549873345521139460551530736615246778108989055414096057697276706687052667574198914763045351428574206207353370783375245580882207095333091285815644577811849968120691271592991415745404994663839371828462089689173163925052353390783890929294430589040166108917449569638765047754656349426173731923859000568975802088673076812190498760937653224703511337550189443423419560909416780213951938408567845228891691818180043815380251920724884105524047716007544931932693675045560208327826464255087637388127416449067151246456973323886797352629013345071741142139562346703724181511191019247960107969422989389122645593657499248303555381594467564047247716284123862153168744535435794742259696407721416788830092613233916654361688012505166602369647880998398724959438833737125379395265105548806162946045764451805742618316510060868001497800252053008456934309064739842765540086586881293214770908883485884185196386467078566853837264723109113363891801035107837193349935535382135706202694649414225031214227694175572667023484635594517367780098756686650389814435743369663749433838085451871562760727192497099601803650708159623549938150747641867284382044604419499339579094466126834901928508709397451406079573772891809787321942098834373708265776546027903292871894974682723339009328667438907693448724686481834599495565646026805018996672471422742079896650289615300373425586177559268553500351886689406659883763756911101483665345402125260149913983273919942812174757837060918256787990393240924390187959055788754607199401337358642571346770386291090365536817647436516293436707793427565647119847654503782310781322198910117070564509214543430676017943844177227479085108060813438577067641233193470008553515710294024736763598255273898742566599426810939711005075201950917423444763157875908199935233479095867990037858524946196909117831729022895202219030242427832886240077712087027677317365348736272438675006227619970560427898476739591153531466328966785793048543412716085638244452331774783757635579435212524542550903169050767984169930600191115101108516089116261644643689924902294757522651298754301172445094855072571697417851347366293985686439870230936564576583225125554823164882798419806170153681346628715636349469671982840905505935463872207079973781224341621435205358473101599273606205574581154111512252866096082045179048691923930424279469916362207699361143081134929671565653292865979884928974962352244383441296225037118573813172677018146398000741970937602172064228612469891718052069238082204214528729254771039840878564244731377175521567678766725260603404318004598014591091009020382306179824793785538786662177083402947489802954152658373349035511438085575902905092447065464016247735554427348385563539399833266482772770086277176110147526052531010620418586425916812165037262397401123297466301930202149305566760744956023936753408737091609597003004654836160013583873527629244825452007472370998109687437114354226325991507491342163803834935179103219511709292840492886791398876505794354363250639818025875004750782693640661928090582363560122519809867965920204466869233355037202709254417077878909882500516225404732485436746187156441356354289165867995378740991806685434989377307079365165182865692990357289936821401810863953107687282617714727460739524851223662997457638554137472913685280893463266953045371677184939864324861357370417369233846110978865539260508557180671330179927467933602539180560743712033015159651267724529386391198985082489232497504807902024375292719903237434801486945244847699981092005958030583015776642354845243310660970416713574410326082952742263820788904037161697594733349809583428428772369202675845134835779924365333682028111734200552585253324202672227584645397256963156098764857662358901738089251444581297853939449716695870784496744668097522766651775220722260674253322052333017176583997023522411042251124997369727226594277926650191553045542058586681597113120322230339145794536087651355379154235066435205654536491606696405268501876794763861819688947743190089667390296059713495601791764325212257961257419019209224485074402426607203053256800512719889372444602023822422442424169748053002640152694108546130572250482758509225578816556511978462543208013159670047413368565476677156190150084913173840024421603460811675234442613477598484823567190572972103283334873053800082376882238995019595553948170701086015690097830053597727178984939786934605589230730958836136272679097783636630256329825076134716612619030042483256283048060342252950207835885627484671715733846724247416660036912876501600979733733493793600883367560175310934035412974593903226487833339835264090556097211628605095834191470387325485971207404263244904850349903094919267150722187292469942031957847635714964795118136908041035741415399133035223268250281230298796593430541637670838901366060724396821588996361532703819029333629686172312671505153479842056066800976941244549983502118720817335015828007679755467516530307211896022757010941953222248361998395681529196553588567117447731857852083854060695554437967792573791583953840866686193919352211102767977871310123170300819357256699742036250579294213859655924116384532429402656588249819970445593293510792511464916150613935682985468566801356176546318598033492999486498924671869747899237758218338349927611526387956711008628083782106850468671979792210128956050598514467686514079200552561078325600734265514497158849053717915241979342557136473417054333799038333190679924681004279760655146355943498898210401628751707067636397272264925174852281110822618112356195123198764735568365535664549717731461571299325567832812811119306499494294304355282287889112328547682263727729763890428846129147195926706357963255809014420561368665808029888663545987663107358859957821879977908339152803058087441685912668487960865078079053578002234883993297902174885844392049271229475458456806790447856936033027878055363269158589306932293174347240192878071693293498601359523377460105009094251168258026157103832563643594924817697020517748144470703640118818284186978000475986594615254038153684431203388653551000732782435419050535288570592881008192170287216014635368942184122112364322364009282807502003743589761237175743924140840425490901443925873283989863266599736669692186419162954261904512086044182975439514435409388667781544494122760850899019256152257874446894734747254138891144381757312614907585939490243185075707321353695998633747102448052239489524660928590277197330688495194944875257634591578235588489535954512564989150236677751193042676512896367714020013142676037591850776375810107391766095880555022367297898260932541686280665568635363886060526273124191591266433585723627374349637703438384151795804214885411006921986133567375900400947804751882715726826800775238574074848021917834632684244115542839706838984089573132089407829814466536736162751355472912564794508981909234660554704059972471670820724819717277702470661134461823821443310333936201808551118103580773793423185508422474704466962516253301400204858515024043688294128842403246599866145878572031098375138771228255934989466684950581317703892118874858002696880497457188349941303827311992433953314887796099479386280762230232323035654536853674942453401792032482750659578550598308060683202137517054206207066398733880966343525521411847373971392192345444205706684871362558868772595757532209127366319934242831602242792416819727410533200215123833686225616889051222727532442430320543725530938982090118401501926978075204069386302929072831977851238929408386017014307218186846623003272882207799955817452191427833609485935305719670095777041571443381048768206666957578410847560142816461851370021609184738512087488602658422949754064065184374169440711743584978733086124589496034006940540393914032819776895126345530033726969739501254694339288256907672895432516508457110115133652295276702018343212387421019393481066130299111182188221857082517684019266050889305131886008582069559031717074031770540024070301491209523947991369233455983520669226047892608067047498995050876150136039455917344047587914949970649070164639473327277363823713053582028476739535469539251628851033292387455165347280016393111360004882250787250864354284377750777413970625837933309748947902726422298726568210413046642257899115628103974996914583334837649411118561342901166058313734137980053831264214014177013273491173163036787085237070207146533390016331245686728052713630571158608121456752408459051753825207349030154997674363099770613082627891433926412225908051464490171155071658786517255211685155938164166786663280680097671366084308778697657410128470267160556301121776576894609952350452727415634668484653150053025154008385791092740522412706573142600455580833801296249064009039077104165084894881859129481210422405503019990126034609218134291202413566330554034094602581852483939379063387668660998053987432743890132331131612743119510046222675280729634850511821305683095919482125204078966437009170444074159420350845021615910723676906929821297545288261525838822843048148257301193546039080416797861973516853269454717246606702800681634616505635778668674499404371625064393142496562464156162292792566293523439770623383475094482281610730689377037360552283483770621804432003815646905258431131273166299825086189172093444975705955621094154053048786443763419180221323496774030456666158132139458200034824379225960091908460446275023123488398740366332862801799769099380743983856740168678482810210988094600041306029850515804817703677480220211695828142373479214274736847954239434112785271089785971553601954520603458435476080700489032304414967346518693343407066602670702097728562415032244622317094861085487384277271733867566457017696460125929629613923859719186810113857179949084993497628345615253246386817971060893327670476338426727570376061757059613431844068871262941703121250605108198884093331787590779991819583144713542916657115652643105706516287347616196954748200405186683738868661559692934964284252436202198046747668599720374134918835414651831564740878860116490610591088686562282265137501902441739967724582038823140483808926002003442407843181978699832602415593141712501436284159239855873515518204287242935152206092395866824081772920760164635865394854429675272492887367017737317021989022942776126651559051957035536434291275708557863195452119336131208793353136802880118533615181600541882318418524411840851705255174289644698384781665598501886603503877569663326433398559131859296429066260118343725500441482823591878505662798775776974447196471295688419337971352582750887380913056449499739657191316457972421093290244047819410105409046847802858871702671640715421901113056911975148833865648488560226882793021647784601380052698625397498708190349407024643506731554745706219773115305200435520697440387014859204556091895265286035858375205163524246247598322446771704976634624076406228886491996341925458710859123847971968001529226008281108968162383887313132761008953127165050834560102110957384791327854564428554944881962258367103687909743114017882887699919335528035805685176421419307969840876536671371649066023034806890197648364486222249026026460295560183088584432276233641590334055504409530910714292386291480983021078818586102504006242839345779002479690679680329970376145957193244173442614356312886010238719729833623461353014041503937518502309484623725360089310692873410577538000174639271467207704574325524768561526856435085431135907588743974501198015218529851929782055622207128625375512547482529047348762623840562707193319732230615422237656621022718942259687223586844455955101616356182659648588781788278222241272668842311829992422953900873117324747704860339334246702844285412590249354454856547834060999158407157055543360161270586857350585514081095259582133029373854616318170020562864555139745022793193878764620059867845984848950398947126476453413657739028043621770367028316831021122167348571972057193393084297303790466606932036405274303815160783171948304373215855419413826997502088552836344580487916452037951663483205370728606344066955462144801147396830642600773175723148250201285441344991627975106276552503715328456842708852783669542636666854982425117418118315000104440898631198901946063538803430102617570977481724027725352546290825277712349995265131850636690528024715946437015767108494875658296706461358323179700869113725760374466069825315453016486632810437037602363372427277097427398346794548488786159287010949553466315004947807394408944114534812433070820876798672125458387034753550844666380210518203336480481821490841497554282926658715277228612015040196486002793074960371260612165840709720560818678588600515266839177933270192476576716159730565970000815313370288993243772721087344728602347218857824637585336194067190381710656188243716129291490186231198110394912256953818997225278882203543701129856189752229001740918324128804586717573843279376409585972767443648830272431485981010391023719083889664024785442343263270891801598292025433095840723096838920643199917289345577205111089092377041310714316795714223616457984644381176184637127525235691804324330831712595681703241711371646124129035940992212245628870559072530727642398310618072604996349601430995289366874969435452143740439426652423515354850573047735332525639089701592685939085399851101625878677480246056757443932455751114254990485687959624735299094656606237759515641441873714838418812410296467517571571513681799925747407578097494444350047330931522695120121347674149337081316787858749072310478572236581896847960777022093423612831601123596399101687135511876911313650752079745656208722084851591050450347376030591030230607018784336015408151346330801565012768691952141321282294756485903266630096679276156292692164782262182420030688359465150649583433417103731010330916208512852656824122160968650482540017440367530471685652690916596673371838137278447406096471099522939852983914983731231758877351510980929106053450820516107832317900007926559703166879458453734262125771877985640669770559906176022180894154723582969409098376906015184837311030992224993685731038765873408396913181744194844782259672132573911862987731473329412588020282833508172273817821422794450675984511332810687317061674072045641528984873685052815863732588024088897394962715775873473841011446329486128857107589071754053152405641461825939404528715599935602427462244782599895567803359633818753069149856862668591204697777712827601878090591616322440469986314448849377979821356905107836208680969096125378117959852121785632092783115740385035015070243371500989659302445672031856130756903588197253019495720968139976403854093836253704022482220985741574518312084310908768939658344938452508050207400763547667082854523504567615074869320456009150329102344674237120373459987422057509685462745010877459705764628491774079841303637613979134687215970355408482740646960977573373401564241120213112109288915653982814299692897595239666617627427376113004714134407662280031110000187618467540052795298252987128395621421468337270217744937183548215935272910412858338869279416607198529492513370371810627461406908925802603670175880292927233595850845391014642932019871202025123341475827601530945983244895254537617254535632923377249244080895744264454160451467874395128876201434747384377841858939160526173225578495532708544197158813524307520647882506879345171488986769119733099164673312016575381652742086983985635870109430967496518774824068737743755683906852942841227905039167168022067324017574114399471100421797321709259928493661946646652728036976347081301344233808762507354976295274744866180128372238297023746684716399498339194457395608341976293090891854170569607656343638485519685597953730246770161186459991405442010346864502154905902969603432147467929100223196699431966057815725590580240181385446666376454569388704643578443153924662852135599405698816424024017541318862651225701813399230563151453658818763025268701933009533279977357887185692880747108732710785282750555819071124620732422412088684766797676256467770157633206801919886108315653335555077734480117763554613475643737803565456031369038392196089792915233023725753012415842676444260884578341040801919880539921982315016006585019382815850174923336510085314024091526910535267039462576399126441819782405258816770399103274299129142729871937954545646173449097320859671170557416893785243572786317285192965337500227336209633890354488812120665991498922205361847850405763719064605781710515094661967559659087066065662607549575505728092200104635391457833253622075887926321323938773703435854970927335088131988274428217657587650067131837326479136202269131713162622674908631493798687375896170760399868784157249524926092365270984952423738759172945408950032336609267708242538458554737930984314011070166905145124632374744494725805973111791392449111724345121037055665912199326843636789904043589750980581063797545230301501578663508566507462173072789714801051868765387053169868064309043480298462974723377275505977912445422679209065046060614321514287206755539479589771810707293066199878992082011049847439213655460306478306618879887168545644304560374919523165209845058610588638291138184550745524868045786137802404018623063180745797155127936993630021626510095111388806031539732580647680309622361454590038977891479615493151634344900527378813141541609742629147986956187774964910868298811794853868800989724786826572998773715581895033060930954290300386858964455107012666810486965741312197701358989871715944049444048323111569168719617051590272096129761986459305416999390678612393938021882472280957640293777206579122452866813722555527182143293464252146654251209861372626827995726684603208009418877639346519948894203130953224980565101731538675997859407169460885754632939051048051934687372454750911789838404831650664238518073675749065625082586673521238121807501835887789772678125932535821990491678209830293204633375699277989276569332143945606453372206646754869633669283692193240302458542863331415636419865488115523906990331840184146063141982597783362628080276311865295818990609207741541339427913298942275871890929004880144060203279450733568320856488539504646348134105387684939017692737934841500101120147144491238678521457864271978986195558289716873144574555945453582489190168760360546541147169496125281317320037032957055490241318624751081341724668823348358150749164024406209119718294512750930859974560777958714395467786284483041934713885033870866474028785967992040916688351493152528519008304985980310996812438096172122811699390579069291953528450911502311890280974089897895018110658237651392491217902354450845938797931813476341220066628318230826587856422843704699612635631812612477481800072021390433437772917392954238006542465080347559800199434833005384443850657323265836547886535739572442348863172807796996776712003451259151597644989659302902125226470792632178819445250669241036367659497053113796828222931467550476959000676987970854426030104345747116088958479918194282015497588471902669499269540203878052199147784579342188390586975878047100795315946926619789486070237037593143890770520067507369156920689040055634010129841778272824882472311128358333218394340271742839102007744369663055659565772486570876641657286824309216005373466029943202617949428795875461481489829801149896487165257476496194753064506251541164420062890401667599310775063900845866432046890677565214423791644886217099540883376497312197382432981724630419986472805119044380504497481937901184835524948907431302707999969777206711736077884274402305157363428860854241609147858016589400417316200827284460042571255052977647461342695151814423688442149436629167800778617111078733322366658578651001949872510358049076249118159086880327930066217122119071507060352546254372736782802271083389709479063306311271554078248760808996721327644022190720355386246475427635496979113720843409420400567304814648381093119719491589667987123605502424111516879049264105834530599183001765848195140681434337709922780380357405002819140561894866758473590309602112183679483138974995718509505180518344745327069271484723033514890298849981861097997725348236912351987733395989131319552380545010526611841796296918389877721300106169063563106513971937496997137488875860634366836346748604847733421748281459809820259926888961704548882029086835392144708650219487834198347516241422740650399313742473555471528002671379825633585583549082902868166097091079177125755134737171580237837200432220352218112938504222860079584995175290767590334571454042002419013508505728676248616049534524861626340495125452348212544213559983114344759290095304988478318700623957002146418737049950559967118713231096965824016147866537590226283564282859341644895578221434203818465583612318261680679217911790361257570339107461670823241074119151475237494561139857261716045872206038856147669546904469548657824168861209431242773017605385945385392614409427907640837009486432003968184613425788157331821195357366875538422887795592552780925224772685068802280481242279365798856213953771776821009179728914686062570992902953309530218032779130037062045327150634077663226808540174812894439627942469345585852965992969276520375058754919453168593337005227034149383268199965973156289151957211483349615582291379147806404781480871036371438211163879315382763679111524665506114632064420601829664023219219282167390259741763379866031312872785247364127140672044385722529622777303263734758234735384340213011685604436157794318305175258391309807216431018769567353303015499702668690300625312825662149268728346819523751568851058880402878422155036195636538838843943119050581771368100494667387467211335680428047303864087598305250511451394012351813866721463698540210604789187663369634532170386857527123858803894106740713369890139645288752792083841057528859136688236515858800168299577522004037610566322471660688356388536745853074019391672789219366045071788115745853318351151586932811602364033458544842771283970020923835987511543416297211324972936089121537466550878268607713241617056261166785242485092016840749812948379668016123459355329493495231788228870333562904917492432752042736987594922909032450889713738360453955311740695789196427145649018078331197533762743872543610580391045916935731418850182152948516963336195168491340856286667303308120173363274826362083850046901235700812020659885810873540369101722364467105639789454553331974866580827674584714401560610985181043134899086608243894706022598711115563766212502659602460332755532869619476593361581023750135168427886118316500313194191979493865922230451456805562511705339079756588801635293234191299888332735028810263972969550044598536265452991730828944813424299607247901731506912129315465347018721600078682878570683456521249797090402934026120695948388264476526765007293592532402697848343178675855335440369944923356923408222396692917529687755326670900801558445536358123899226541274557550868397309991215230928521912303000997064559669597929689325670266056054725468225357766441378212604670759260030057014646284602750772469585280872679574923346802588905838411512724883526710533491122184379876270705172438704897744468301020833144192816483230798001660277576408369425332736820838071334593457641844138791272975885209545745372595527809806002484381756625386673751982630176643444611430877057411692138026764343971370506440897748413835564514895599000741776573763184245082162231809083326505489920302504094477223683211759621174354311817663797041377699212423079110378425774397073586019045438566233640439368676215744845434389977840475588308530217301748972292392455370277338384088343271051091275422051778260130046582975317565400281904235919325022334158274676528619985094314734302480486264866767963752598387460133857892079935747642653431442620187532859713029964436573892295090336526593328032145873207654578960210664596208952354684556422128477751875747136790626760280499380806671587863042254683082243943313937741750242982438624565986277581184924139067717543431814159008518763187479235561295935011376989847505190522404201465355843377206926833548050868732163394565367114259018456824655399384104099558864431682832691537090383486251271728550846191852932357874036130826435479967240293118329348841858741830128827397164681770387487803447719735038651316577031240558928203262721145272370632435236444443838950080115731845413841958531190557612892938938281756932048419508728402616674879902954343440947413396469175471308680092565960827248455088970196677663898251670976130049307997277738852026011206637318890093688939025864288092429018866619754792367769255386276349172726603648616115714725292749990768084482038279976210145563186625358394686677375539336754517809467705185956966039529819462675763273278369583166903474865452273969763587129602937360247284927115115397723377121714462803558138043358327295535067016613480561702737127705090939321949868860122052647820647400152373998495192611958397469619284228946176442165787877741038863227243580297308507800499579539679143096358445905313114032746913785963867805491300041062314750771967021867940555757257220097210025435442457073376700317052827708713090578259689834844181940994485588578884696146668749108925262696810881477213618834642293914545065027238867533579813510487656439376111576776526528104271359751870328453431107176883093882785072914435004034115888892022749887024045905228975367405009928846768786719099551260568562038457426859771620038047333094132145444969290792761320887642180326290996333063942378961802088883819920945668051825238002639503106173314154191995900557439641285764108063440383482319777265369321843566827124553291484198072601520678906359283283614218741528457344208506670328143164712980253806755314704713601103226141008278243963069127844046120707671837896082514693672172460212482758231742579354687138499186272382279902333466950506608646546583259401069267735231863740925174939054411223529390738683162087256141152393800598807826011785610201829598910144397486401395506549378834589427723339247330093863588133840731043254445984625060948691597021432257181751422453445823810691917682801561635163131985136238650338210103009582619915553107704804742669451973207296395432964203967459589165445834603698605958021842349156090325886165289973369876047733748566593880304794319153330635058001661020870632753345409711164448702556247281845641211202311842470432085216545190251985407506438628856024376736805369207438122552095306111913320014220595452616211386473117695880861949042091143971277190170191204563780327777105246035942049373285758597526688728969332761730692308429849554128149399274739461258211666093043270383130703488944383207904819654291516476906565591251467435979918057456222453694998663923174563173863454018693933579724734629205011968528460804738899622481341793854699518471776162814881133785179758123343807709392402780400130168539152882010055488853905868944823538705475968541319833365234226451649548973107312696947381911897282886363845347619056061847573387405710178199196316800502511230186139596460682939228905400068847434763132146226563753665153813784006148069322901180379405598160883790322279966993734718717907201158967187116336489722364564100345324379009113337496021257292938590857300091325242990217573864106133338601015957553650404763642659753051875248090207228962123776052945612006673114004660167004167575857294341852349698113791454729671077703245152226322196493934177227664195505009175834078477823297527417711373351878430003946548547062552567357253391973922887668236260150582811458885287293269696017036903169970612980934634660076741138160331759617109634189677766911328783825466154086455792724019593210101575262983102387984765581715207889710057929943250221178815238994691948381109486976269748937856762025465731498294736617801555556548854168969062032811523944988524797190403202514608471826896164511631199649210658507841204924202056002482918081078700963030678002687831951052614913574637720834348530622019379084335764522481352096627528458738739605501380415182727462664461514490363165615347115811384234222636712897927423472591475314048982000689112604408654370006179165945750484208694564199254529589743266335869567775037023650748271588832117701896452802095914044158193644926354101593086105127688990686003322319235042397835080904369739895588198395537651906378530359786547957082632646835614277244435159792361392582683838641014902264896648564538021475970367551324372658262763412769363932929646035045233856784845556922322807457055221586215567033553155951704993372543246386316941741986019475260651357031106315960292048989384194120866446439342578084845289531339961256018394396758314160747665581122197258873844923829887992353313043381542453416040724035637882746676258769176049148346478008613404745995269672293674021131421905568359077915617943039647167768203905989613713820342326490990800427982559603372141177788199388226497673473794471034681314732973874640993112658264685877267821210686045184739859473250953014518119807199794215497203356619877437022508726520824237357687611796988085250970952399167898687274915145556842131508839121526343141806634601155367000905098551062876543199298332895672711537203228437117911868604541603491812110364087727004658079054993446410414751896337376953131276220354738599151227344783969373593348576619531008305698811022855126869915319762705533136426006409971781647398459886231895735583774359472644109003703186922311379898798045580004806153261949473412077254653214644501426925424361146548685036756064454403346203050520925412144456614875034182250575150251427073290019483624775190877590966993753709903051504817655728624928773720885255116536035062070685693058969979553949482173459583115811931169647244279296068106917425210416159924462788010134664614614500140392699174419412372659534213305871316066271799234972571538313727425588325446197900266318426891686440628361287616787177271711620663581904932233001907919437688910837649289295352611767305278645994618965366311535750140429854710199061693441985051768222297204980535345442292786949364182552047119038913034204854244495618664635003876623999251503728517611036923867903423182643084955052358869182087395260699450196144527576283260294976789835307833404832952798035021883478226672464265233164695357907817546627340694803903581438476977079206493674266977112617142077964071213547582366777115759998733563700877124749499019856042856785726388756704437708748867682019008943810331343493984817375981860786995372514932592948520766441766298793694867503379179597342320360156031910496796308842066838323342963471914849081715964576811295463398644265243617808234336376617150737839170236890740482922652783528054104308042561574088837111084493843750427311947688073778038774156080119536485275360190892912078042741364929187257595820447669071417463747434593784828182873927418220641678917339142676102698352755762357164898287945587016090395922800708263797910605950062553247568143614751804399144756811749139416715036403748792860718378292710073110780234196756432197632487270094706935894130562397376924710895804344665656088777748833031834342204026199541183785639328094576938425063308494565742944476233194853464568478753371396595077041810329142878610139756167300502900929189564696643628613327534193787891313484633463877634327427004505577295286438418767126281045155127268828652904259927702605311359710382055541463224961003359432252982711231827805354195627909941888002551678641415192921073005361212940720451225133069020595980616707407566360399014700263625643684107372426123215721218535891779111442493402106080270069648704507672429299204744296012669818471024002812826373836457815912369853922090088890360869431328839643825649454205317410883129478624991382182981187128519266543799876133185495104346021568900414079143177169022189254736167652296597212196324251734048655513295307312071081898032899149628976831212346220942823513458129260793261193294817522909214554407251335092652836480540819521205240797398224366012244298304764774731216023965560052859714710510527014752200323738421078336821921782327999725113431131127550981353431440893569638203234919183311044836452712139867946114538438324328427881368387254246408839996237400753015377510165118215090994827213966975588102696331717120795579635150956827776482529140654473776085925294683387040649551876869099357358765477335790473061087199307382872413530750412785250766171243080137723116285155428535907574778640513583902744735780133733008275868090840071554105596165195264456881797147646252680856440934212835541927653354004746344520053860681744760310144467933495416492420914723607753197046242094778517065928823685581830886026161568623703072330404697993375982357079302248656064434177516615642364938243662994579525261920431380562753463906018276655636626445162276493982268649444035023561821580113918255819760124658523425476041992941951537879346740605356872818312309118621906751760377663955299527234738350852268185298535841815611019474295483372673401546634061660052611837262062432892283985170714091832108954063161965939115140613225695887180297893497695403331741468314351751308786200859370891346599372502186884699496332384624373658269421995118929309369417815087633977540138791508499651436394527427895053651161780982081056083123641214399560210717851338167534396829103352081620326596119119436047434079571216747528858712044598286622716267478476428078888299098780337839850354833929405646857578617961889410597262501673624783885250330105132389872029381432834332060384969120947942778617914856376628517123725877668078789086559344180094941735221695845461672166880511500939748148882472099346199477763620679713763620956688461457984813601760464418108142814592869162109803233869143387147782237138424981683836357658052182746191820877047796541102967271636214616442725537197932760065323635575317324109159517550768741270753688404129085209896481071991831390394623531975321179630850989207279099353223131497964155775208580871638640480124074878412607524937360764393261087397183666422407379646497894342221310875463615626502923907868263256661007479394082631784073439905872209706119109172753094613086924036404330413593545904966823291650220722589772417029948757583473687462078062402684715627539231535884183181670865305484193220832793592615688959746280382135318179057797786024698476124518363281301799456099603170705898563630116906846812172038900103160003646256499577542228214678790966131116190279275702777137197050160340545143144176540827540334254876002508984815512286286459291442517415972052432796192655298940140389705248542910656884167336472509394891210314180440954993234822361640254122938585050430784481270581751027857887371417297102385127552292219216699032699842808240425967357377272700500952589831724094140843574927115263878870859771076468843703989432464640060440110224214305077066547577599779946428165271091132217477758371062191570535904730946431424167930613600260021915907441757345467833785373936051048039976714472403468445176295322947797910371889483967423081490428488682222728035942201941748566013587140580994282477719859491768847252317668164473518958338063373836222325620572701359659198434405348100492376575911025931429869105391328350809251022014872069392223002265029285613834915715574492276834190454206938693114586100176827648762726227808549757224832382978463948861954248151359041916028650835773117490491726769887396055499780542481376275321060986558073258699976966713225355760213182845955154332056571465974735942269377008700940884664232916714203247550608785664244792784677688074658535525038680910004593577286545769382487728766084494615152680541677410887739233623438693236845801869285104571899700054659409867284029064474179340398494240106425794716669071848665936067056416021700576998843224345748155856388271201268540432156921843359728406254040291600601435363464030930988741665715397153477278799566178129817177361127073558822556145747411191060768440261228149394301911496615491850030006109865297781611454516666215993908509713385515578379343000624631407451186007479355043139248752957523949451977551647660408364130800123361638397634823800914442852696878469772558044375659902172740544581558793147967761824549644229804817675243701259866160152123529140546172191778314041084607637562267096767437636286357352057320212948828389389478819890254775771216527852817567690227098741565372395210923115665449628904453033690201633316852739107113805922432459792930395111382744707493646928287658561654797692241030079649240490030881022421076210628640158139030416029975961634242329562632982769218978701929951571093932624394590749535540625021177963381939116070389626574123546132456662377266223852342188615986148037155846228473613151688575917765377696653124751124539634737534365828812396818393399758385276323218131005354967138198566137667788408530261165561664211616920002551429809967820734072443777083938220579157713874309362566893654523462723695203989255589794544439731174604140047062680148725020659412317707088057285055063103442097429407750550485705018743833110405868675311919560196484797447734357436361393652993608063348113462132775038241020555431644838052322387234578026328944146656551176454243383221219847302420283111336321385160643155503974872026088229013657886347482519950977386543487872016193825935017988743507416138103176456538871863109406350182845112503254690862852961450300729069774185647961603651558087547580782935042601754205174867096872691385236309040631611924179139967782061364511359402838888523073062450080690597375325629137544740353532528966774794193700986217856819779114817448094251494404830335966583467657930893932045704023663976393783695195805446407827148494000905372463538443905416394139907866620400547806886497754099790031249183393124925440899848892886273419883202625221764319317216331490507317649507511350828946898615109322503280952507829925960760905221671638563575438141916580149023692440636209856518428403972062362431209967407986500702584026998760151919336200218272763188377298380956797377555312200698551299339183630846393755129101936618517721602939975481471791151926530691899490235832260394478748049462622483787645759745791313324176233041823585140259448078040858240045615135669017056296888346221113580494862255347207017820294014385104110691993425489171107730109039484568901758193605578498423284345329781947385305241396687929455799601460855215393326682195766533193656854354344492458662048043334082026694100638311177073812639362273982678063627045071470689765151854918666636395759220546300820247304768042304390741451736833014449164150586900455724923390879328587585840182985939085587565770722762782808923552656366085109918593091016253343440375731420429194675433211668833409488223018683905755839871699308738109887471076187930793080257530959705210611459858764718970779606592270405862504517941758187571552823806510743709278591414068466745496900608469942637346279160691085362815488271015605302961347308433369596997152138077290886924196092967810000302878072048080020353040400187779278013175143145793938104167284123276227834026572872255001394228313985047721440182985567623120072050184925055624717921632235192360276911508459077531788423783433458006720606948136853736843835471319390890534616922648758802650778127916066171733504462029834951466669442571655050672394641602048110122747962941513661038461639926176940962782106158901547877575065722320367740873074286991343278105619160543796845414679115220891066052911611649258987409989626948331267138656499449950562764419388498917542104295949017761565545988745968941689667616200929106094828925191860667420763267272146050044599217611479446412763905022758744039881429321401024079671761805384442311670399758224559601679257573818520860786090735331582824595140141791349287289504832592079042318406810130638525166173821805582919410510626556420843945029304262399128386989624601424871612365607525333159292805273880562452462955939314182114644026492987416619854473519475428414200244183605614444594486791132622804703209723972879970248257623611539951313814217071780852282706930102060518651539030562791244339906119896724390179023395354200633003415929257492082293026074649756957207532899158004584894091939940656980286686546398040003462931865984502008623001016829615017209628235757519614518732132113761777071132306071390689285315813838380365481729832262919709625973115530874018978690107248282515782944274138648670786341960494382563932065383743563385782943554548031993784417890957891949104319436558531684925862575573753971632406611375831367842804537114068278689763725696465958818605722354092870304178756169164499332334256325838996314034223001080057401076863079033754710104476129360200676389328788066996623685688141838119055470397030182236377248496980801337995727528383617822237041615421603635296462790506569259246412103597579422190994521031273495819256030926183042600190933310602511853021285523662415161750924610290114294447697607280586682610940537647869193052246281935684105324362323422169971202010350449936877130336883385911074856700715831337467612096368404431475929035925012912159058474406495975218079365382603509198515408829580453737969464793271831038788825285809338400759212110961441628686901151274443352222809265301104900035817445065374847029293350920242390796545646503067669140686421797836977192523546932475700598525778322010915961091176005360290379256622458490805303641886831046123478351185673225617765649372791882851177969041135418151249185922491181351172995147561329993219373257081723325422827779416879521127489592858870964541685838705383247885967899954335169647553817367633421931535252926021435216142676913745138574096802462686327639415533734297621417314183430733952524691765696840160784215818759801734726662657931667148999532214754594436201274167258010764986580232815585163952296990325798286798494445386277859452508781678270380398014547961918080181630962210020867369288637876891221566163276880227182523832389706717564156233371856860607072792765157887832321106266745402750142776501317844119030673218242431922937803781039383887326227243124544308694405891989165502832993050263999135484024922585967333301634199360624606249815328070177374456905114707057564867049669755200950784661658253338497320111514018606902069056833374306634008080984548820204951399238548614171940962978735759230765740738774036561882478871083627229100735339475150952508071642584771764666283784029231224760022898227330687714681351911718317530214045320320789190716432817753388195539611080424742133482142518020646019253473488624613374587612692938366561444126066867185571674216197368935615737457753316437331107468719210079544147400453208778394801023917612596694257818129766717228102046544944637978835699922916631762781539862438849242815394756182995356432761954129662313997897963358813349283419713315142916253541364333254505779848388650525465072702497245126575073576247544346789970226436343877760891397167591524231603928030358638561744415159349938832494130495684920697986485957204432234959901626940110201252939823785987320336221976390094849875405687051220870572743422664836281250940288905753404285492427387986200980768059249995422032371316154394373675167217494728171796022231496597620556740571373257272949489067830448187263893692472717360536989621130212804255453225553668763834075829983912630544978596168370085749958446247267935029091057274024089341499191864092754551611852678383750074539330727009870977783595377304998361883292113481809912897503325807473742391433714923623526464355852531961595887869913355140576177909214061251764307211697263683991922551949761137947358719978049868020088729142203079077615643175755205309646253160056397654205722079623984560147396819998304927920808401979531398415951009588743129021534045632221600674768876487550195867178378485984702022042940275368226850083859724829894086183631618093910847489694608754386732621539950960356875877915574122693397696775891019573280191494223102765693520266195637723516626671962951781794406942376178952076193984563612141359728665406548065152374499399513637136240834523728193854710860704225057659260372800685458711435247197311435502834699830506720870305929498381923951425066968504897093861118298276861387086805209127915605734126991246015189423056038595328366633160027966496880791819051292829048714323147602250358924124955489265255195836052939594070151161977107851742479239601559627037018653198315138833920921792063298898230403193985606695470366127896242981809200404579621594340808518208947654947786050293785099267369117421436431660657910151502823327326113490240205395977379357853363683590665855681479190173370655283711553856459892734220663515096090115547408995097928279486249173889173139915967983589017103197244528232863979293825146401990359028315013608325440788019856602284180880158654162679873316060476588189097690082227735134268770089242152576098572666310548545405498584176152380543259091777701100505340494174248258161109921793430604842613758239475084346707751783884206507514194870169922709965770715676125353983793935565667251414943966726431880534677784001406233576364868672852997828398244672104160300527502501395066926192722980670851729874948598833405362197851661419980911593646499576313280602734250272745407319796633580526688270738959436875609190913552548419288294716845524258807830456345260487516186452094131594961156065827511242850673699121397357337480746009979947044417634203394521938954166400839594324392699918298469190515120663128187382930448380099660528086503187070176809914237594803255972265793864770168126570023155990575188870575705654782225212087479803713751366909117513305964438613108091286144494738481964066771549703847811044718978899224132820191237749248355698712762464946164644416410456268679273043014702969371113671545271917076597927308341860346308479093775380736391400030381002228525447861989074465738711366390129007921048573997730954343782736460597740027131399572334365940407519400826034795632192610692482731216455976736117697474989110401140378342341689778407784442994678770677773900603759176034603085758953001318643814871942418459378605970812025903893949348403551350663669995001068520325396064898710074959755136863283157658342112217213051615974161396786377019953058289763024885153818419063607680179590451462925237329950689464580898026467979386497199286880758222897868905786320879373568549066829035107031399658699940689936680825632463395959951145830221576597560324484490184888116326329776064958739924610445073849615257260014158891120067169958791520651242190838023618794193480659049955778905351913460139305029940161871997676178707000937042984857564352954679039615225906514505502118498637343789468163832903163555676399964759114889017679777729015600603854619594357457486842209764266840904730533711704140962017266622070586190121394383008360283903453305181482620650943861162345244953155128305724716049001505832494822469026918558626580411933506847603949053123664986525158919419192848107267265951467872869564796579408005350209099866915053814096821079252472962340293903025498798888411217250737752551037030530231456815178630436508300910787592688828073822021874174943274974317845069004981894156102611663177257021845787181673109020709158480766449473796084095345796553931612848386384645757852832368395711289911177148219583519773795016944957958953757368576650789680741478979074971049048984490909287490181320631308963354134987446090665560598944580900421367649079906571716655591676207771946963313223191853157127378467091977365612844010677008114655244889514284042579613714208430019248668983130968250065644698315469023232251246898111565612074166813390117126979146299789384249503976583605567338843765101093590534715994145559230452235343295262592980184015720832576691971308120507815286223768011591798155202499257581922411378959906264965174285969723328190836971293988005726723586974141736785133131747764367372487612406957797550285995706519134212277389631170806197995837534792376735759509435044808629707473418305002116082837453334568207679055383781929087539628845564564957870339782539572152977559207937540455967936881915414752828708723346879598093334242761987046015119756051627217048975809966655462193137045218348410523894225410845974219704999650643953925822645814644415204310902084188167032226627078638924588496270285622856667970790464794394799740732197310519145389503619960431519571689672978556383819505777945586487503297756311564916309572787166082820643602643582475956625489012359936389765047895235149311124895012750433076086782534725418048569856124400312086001662183563762640486151165564448202378306199767863106861254304937922047673953522257082795389575756087235410728862218362208764769087449830030980489576084811663536632987865863526900744820508010365818356227557428625736652695868392906216910512655150109626164928265977370455234372882694782637434343166036999040627462746587515844734056192648472689742694158532339233588724776692365744511277589408423959329902874209214222021344337896416409127161304203670762146382827945531882479792903613814106424494050680685725969092780777882196778983364024850931468279086765635115424593909465369314760610836530532258383052402344426530762291723820259641927598615738840036798087305799804689954586091041545332704715888178015945363367864670023499352965442058847896114849553204833997547325315400952127464367941341377194357719349156259766160746840481824242818296752744741710088189409143920394173341471090628821949555239075696752676089817469583141849741764390500022271475609265922313584371507653837556773262750644169138021245135207493443614239926851346682547831369262840609787107985174575545855175060637240392430444710346181172465030564523779650290727567133973630161663612301927887491049870989642943325261516874601041671798807591775805820755928048678553216555905740983285962489097696701823354340519673167039452060239754336450711527062814652555342659460261056906268156615438915201682592715865570715596549053597159131320500797778519832296058744225914905619786351201526833416563444151799848325561109549568945876996421654559119877659652568172241337702593369802234149743288020319165522370754563444171056795928497792255751724760873650554983979903216399944455296315125782494891077974467842998751786734915491669326827254655688551418109989918850710246230813126844611886414419729363444680232165432754840322253814322101845631174625512014173854336234290958928485410167147718067025889553408936536221616756628120843861063548110591521309768762151342678159655389850224694878212895243679584466056874328475556045201789083280085118908412073788087459927154838989787581366222955538006226573389254095761834884228872151841712400254066077476008587332808114433888436654535770376643013585179745937916719494127341326864532632500268089095882359673942952754813167786565809926866910756400973137324904221223874557387132728644277431426890593671319722522855138808082224857799157900726987943591418882978144542351753339544980781869261093090140111998817649162651137858967948638232541846766502132139672831531158972767029114589780454452778838579547155109980041502527807459701008385427437128453230634452911875560486237360127817006900504288195344962389873977649911686422653116639122869718988147870901107985640308930967864837093664457915787343565213915452040616166044349741303115907561911577273015081637238032753949372788398280633301554616366431107582550523894881812575007800403660395952288186122998982045722044308157898839183457149195164487410774716166292158294490435651241383821943731339838004737198620322154419933136633907276736553660171044848041904474323655094729366899741061077265585764767135613315671348279427255974185246303099554455748727840416586149757706296844093244514666276250250130694817028963215079559078556907009907457372992498672658182024128991268750542714762747255332710921440956440615522447076070572446075586007885955870128248538274777388894402505040497796287134450370153362024736340934179993041157092730671596342940310308939585930195256395056247371677239586072680468388791924434744577373920637739322622395457612595296031026320254231976189451375991534384048463536103577538975842971288827582443719508738515832108410076610692942111261829384984780013144594143834933399028820879005938559493379352934715712907536341806531491878848817191881744118899791340253438116573736538355217919810586835402560026376768868480692473812093699491954479053672317891472257406823409153304175212368648368584395438591889351124897169485788445900817425445799911665259524637227980042078142826826997154898205360460081406045214196083077583442956370333970034472899041995495473391691177462006513876231271066905645803163398360132676563080023872091011628345735676038916304062864972787546145950396930563620516950249074047911474345975214971427642442030727906411744766964209512711159293721941702396418925825528672081907942786511650850738830033196089313720866407670308032392196481686372116296953058225241837072952690380303296954013921210504314568157677734108413134261114827996451134437904496747391759681015149965602844972216746211542205733388154401310886169180675542376248823730845542793752394731105337247133729933279469335638210409520144307702447969311488879399781674280418176962886228153286968772911425849905975513382480771115401480126012159416846070755343580680370086165869558103118639593897308460298312050141791596099547555696924912751106614448543502244082057042787011739509017021098618477426553942311171140092671471536434969768120887605061783151431944851775743643320422365537435448586310569673682488102690372697928977915080813564688880872647763707630727408163986484868073376505778497242474378996755105220117172134530220853163945256404693421842390958620304007738473915023658257602644002531744925460379035758852883490318806976349559967378912526645522537382380349372559931012872637568930941971431675639473587302679183470008425850950315209520486637025461515518086827065826004879130075416770339217802669812245417882543861639823547027911874103149889748534018167047098141136890824734506599796835445721159576570285794928933882473884869338124832806812534141294854236223589568361386604268193656166776794074364612198570081027975159824403128770018884683475608644728532003393148383573907186036679840603118399966198835580022691852295840733196981510404818809654624067899548874189588836265531308604071716411252072795091349213637982237653794476395682024297490149933170119384117462101667548716499655819050420412142251931357570538434675029363537575617954849883225549059377213151693683091571152599638640695679360221934357498699422022477830630096029176894112079878425493670491502081081941315315018823497963747841365008449867365028854937450654099352533658644848792054108705873482204168214042409797778414479978842185061804278765377088194640047576160532710747854160412582535616162648394354059995086208778758450087096083316313908154312554176177005139183048981088779497520500922749535940030431787857232309584714286947201478890882770064812268287781383359793295251852195938249795946192271691655420070889300766327689814286610590311756264299155246152377650497561828570796638870400915118004513471508800187023849874564977957039324016090192538746009635945572144475294042619880353393421883726148483063189739354628797090923571127351962701978085471758241988237878323730599050766807506373853193524480543443463945806883008433077022618976328726522938996582292473315840722050667555081162930215916563480407627214224430885623788173168065562686747664808534968065544693251706836574417452096424907989458047393628473117811399210484156765540413216519101191844617868976966243747876646111952743194172729576385080817603651562399861835267235284628190443196781721762646466880535513314663595050662937444698504694641862079065177144708482903419334646573521781062842134641485589184554689569903027604576129417615495968019286150657994330514697629657152502756721658160794940717172853179907630173689617125588393655854746054822753145835350644860177071525823659157400274156627030283645726382762803149368593725022612013889562881555951781440211482812861125830589807237628606606528787361111090596810823533793354873122181139645457147302984124597279505924557045157562984989626304300198646184318890422477320526950247886853605252767384221289051654819721669858385872091384620166942308117860348314760008985705678578523194899130501192467602397993547617437957515155398409427609806339171521727885937043526190160564061844955145627310547177272908671878662115118266151288507550219890757664098023696050006107634151149677951728845228606074157216278332515113931709340935344353216418534594267480280612698372830222411056110946192037208571725719465931914086783430849038346271879448512927630507760995241229137867974325895424645452774862632976139615868837424873008191596925659070386615931698566125865919536132540140646722044085106978257226024365915473940023475701785607442790630457261223903465427484945502017875216177119765359223060077230184410077009263085951682534886542796001060598499595650359074410636892356309306305661763217027720419802924887543357910128519922862345033772756021687760812256770568218300381460054449224260006741121300551804555483390757017411140059586894546488545184257374198387125285780231438366301898044460199153315585257292369490041958755748244941637132816957957041252917464531178198293193917435333575585776646819187122947982882998826436055611855294286394896235761821089613278937216504535298630097836494292513203172801560888456980094003529038411197286715022128443547729614115903582837917695386779364005974595818568057504834651727235208003115045806348374914618794179452454269258358740539814003288696816921691849107801362921741840711394054771522873028568838894571772566255754441089110805190612658096135040982629190822139757586495589551594109489393301212372680416950381533941931521634101848411674529606852310242443132729035060294805643848019528957598159065792664987226000660934151914560523413019631529997614417497186125312183509340770086507696251126327197551171512594226373962110943771064911576260416263020446911294438620454092579006505667580089348391023699154682095597585086543285148385752161211854081997616372458800920456854448278923123275284372631525142045411607821995118350512342929358179856874079402842970373210634439007700802211327251202277516050515053626959529954382508709387004083175979659105477106363633141641205412972910391302879100436762718686809011858789714757523510377839976204677163388343506682676405273052500354688162716469799476580117442439731365198380482669963648792804726162172003463799056658393817761119435618932411699040741201303708814891509160834543671941982949797996909091062397476457221632199736339749409991772426322834529736430969997527701369354133150468307428532077507964364823857636275696753228344199980638935133507770369513580187329827890135251789953084986310413495161290067909441872584007288311083371062980461213679694343772625451141085350227236264439632965055436519898685639230031791435330152898494818954888514275179549009035201210098088661673037164534313099358620378874733854696656405771587582084717346565323321202531931137556812320550316247290416740449805824097768542495910681352453532792569576211075939901903123052307549703611272593386024462764026818307066022641786368639485383321157035490742668497417227883851539362331945430481172260394842964732816252640629829622770101732034616514112619094553667101873840788575996234373916137495988448663262196164062388132941529444584123177790057321990444337450805006588419194982014258238294483415569040513163132516363073312364875423604415446936730831835674959488151748240869544033031509169792178957148212413397318880680928922521456716801340803932176707117100381991107424871294586949109772607447495480208872422590783092156782310985407848631884308131501432319892776974226809111323264421149981443888595667822964745677448106798812774431245665500962005721852583609569429070566680453374940312004130547419545169864148459613210089696470468211023700425186277784709148588742583939717770092031439342145818155151706925269488695109693156262247582651750053011297685561532493409734995876194384384885453583683827409315580876303074963568846435566773117055837561906847538987109665197595274758440309640650061382392672077696097355574797573454087004306173920360705274981728073195024940193933679615771710347339392368744140081126958449719818481013606812582263170660079753600944437232410903534065368700276089727326170120666328785992040991495259768877162329436437755324946762529323811374560069732573711110173715490824886438027974516367470653853461086868176335172800069617351515799121325449918658122796471102528595730138491022455366035909804303110048357774197386384279954650542588195155145626887713830493374061962029671586912549966018632702154698940581367273046958207651995162877598636645773957780341428291606735927240547879885068104128327328885439780859277453690547470952556195626331422251999524798616770406911760398352004682036631316537534879570679477681162761837748449105670070900456968072131500431021950625943746027390291901892314193249303394650068778498932198988575079671511696282950171411828277516022091009010436324250905461785588566186976888267815707933150390911342031254708099657854860009687404384796144380612142902800614240080564761034352183398245399475828834109863959968886253540361983627460002207763723097573471053539382024387593589335872605525793824974225307505353345802374931925541724035932248791299730778177065435545880168547878994827662984581380516238960351445719440179059094097021368674407739003419503839693771652452070960511475951355650931455806369269827661664136742058043519705447904257398315706946896771715404239164224564287278052201142884266375176131550285269152476939788072372153725321349329637751629400391919520043719963695642040598535522343132421543972650506304454427154845494992943964585908298946686589793294875630681832024317142580127116743108908550402833298262996722756889542787348072547022587816011348416376493169039518824243383262960625124401581540252235618507977560148117187821650811920384695782908874335258314444970542773225526687615494804378753198110225981195703067885075947409972364287685053091562982603494995026199563717006458498548738740720283145434986762533257187218678372496815294341349411932943894300294367333713378154764521680684739974047932738419138658698339892847966139310562186531613873023922574470407632428852999307777572056491943200534484271561552782907142815142382091889008511464804039728821448369489883527360725668024289329530418890104606370749177791441535088149740270397773388863460715373391729390285048734342402352549681299316948775831592782353353865608731047958289968579323693387868282856226418342322930089078468339132645256914625926453202640042965375304230137902481054948366221111785630099511660204063683560818889948375127921701902622840616317789310145033268397393945029113244276371503004425254190727638554234437822374666569217865792227137309755769263632077161703087432761281613551040451257664073897927310620678891957914059013394903821155887085233324544118957424564713458079648215696499362063996135520501471144493875068013685972658737378659471709909261042646525330139897855315085461254271750758508116218509706448081149733411379055579497548323561628591621091529292961885691477149025727249535921516544199122663864470478227117157006328424415749792907014449446405429581099664113504085785724954214684005816862143624648954908883944269580259386925801236267183869428040929060361248565425021147818997603969283153104225307960159988344691761654136683347614431353488623154782794057983263561034673193431854913066249546210733447802417942966198318327552710377080637593707011433268585464976709761990086401650222636197598494663287975430428361615828927759398241070738947287227147309214904583322398280521211986285379073562114368150680392258523121161048684202081244993310518242795745682720546332307256054826733670682755505573073031053316942714640997139980893353158357310968532545187570497673541213321621150005419730468414416459172075430026148282183896241761091611185899573493771610154816979821210382234712922997631600676415833167796137930955479391478211365472540177506483393910537690473614179241140714077649047400216955453013008361603628501593221779391405353729017129296070334393577200229270037080697764661911218042738845401787829326991004201035783762779756731670966336297698136564893850457849923470413741588374992766518947653778574110331707538335469881530654544998420389474754362921257540254130385898474137333318590916567105178783291620364812571507450526151442128140085130955648356130842465770058145624468998218376673003062472253702991634620716673820403238716844981683500112700275310652936581232618901837153525886088408920294021288287041110639027998039770960275493840035584992374353192879135730048740450661964626934071591531058508948815151513014163212947845964093349427259421961933832425304415760053030936041307794669528810091420857959154474741947725266270758800039807466026737968990812285466556399697205618603576923308200521169761025529817276048870279580610834138546016073734951040907337276132733250133894188406219478339309588219207910500985764226060491568749318197559506555587692352831277385047806443542566867085588397827260565828606306437793653884215007436930651323181688630071322244500117855538415634843640522878476556261448430597229515111386566852974145260880374743262425967282801625942035992414397964062701551324451316704570993660394572929221626471069013934231616307912670520047206111944638042315232783058911537938198798563977118956632778380904187093773471900700952165678239569645438331531159611147860432825975437358146701290890545678399084921954430771943577306353741588557253344319740706634782796126332968945843089411247602388662280248406898734953032463300875617718813831337545982304800573489317072262080133724208959039307314574660978120230990283668210505310042165370098127266570018638992156649550708546641629536412201850137607178374109378422694752700920856451984978236124885343805826100394633916593218566012824723860409429066111312127639793390620262420451688082847754936331128158921207544136071789545198686970319742118855690077819322687892674975876848878104044324162705036901882000434703098356833960503262845995021928621649799411305440121085602215363722588912281619080052786512382359308291860420351869216438119563981181569287175072250084983992111990205737955865305534555068376239940733438271853555277282952272384230885777363247990396392723851798634170771037753104964568629714430101351508673162180784432290163682778544402598061776116125533008727382264298992002245746756398964809806495389891066676874096527464062376810747477756970469575210784961484699713725100821811977658648002747489163957979193466326212244619111446028652817701361920876321525201433325253381432038002292784865375509219404925993780364906390498973451643401020884880380912814282234573100187811109739078639718877780495291414081408700909565712843291306863476633126802065926235866776478116470677004751752966486257483054002059770241644353290748624545544203789895863178596683133624996456347593861626034690087174488043419495846141936068984694359907468971234505393217807619480616995345624969802612589180449949925973204625071934699416550965799036400150437944141155661191757818108970767351985357787666242132062163704066316540480534552027533859161600559000792109758849605668588808728725464030865854095396192517355914270187402098414426780058823360747779702392042305631969633448917903405549077682533338217526308471111481267654369648219336620829410092978730569998821419250915412421736910550057428793751965644802585627215210268953315114046365770615717449312455315236039858683437310156594324402783500724773457671416884705865076056489679978531362720528458508596184550793681566544421748084647280410458989480834997085909378639604038629028009678540123778012609467788143615905793172208168420450738938166775661272898865284267981563130139417885700035945985920506844095779785914580005686915841794237191260691938879779394307810750951748906762994514154545169126081450473178154035272605606157779584047238018667303650244812072473883755895142600173149636548243990248849581159739042433836800676665462608660173431821408115064021331135631982004080470784004811345086125486662865181970683830468327812840610288331320073133762766017121836186736792886219094452002446170769432515888426148814405690913892391895537281541827494389366599952589991241889647967374636066213948601252578230142730256296328922521572551715845213761794400450891831176909608512881255251911829744347858596112207755166282410133675029966776581549339271184056054280711809127608589493764863423050295008764449040719407322575948308958072559266837697933958543324412725527815429842840606941697440746136619165480611330994932056517801654281372729532282310541774516962223351975837843194630176921157290396609900195942703800161291012184764923458904080350619449949464254011424919671782611520720299546110571789410685031891500854751019555242543537904431267444553419449085022853701121145409177817224994786321911799480252027577268989051712403633107354972562694828970398227727910876308082961222120577101019111318289654981213519162025185862419641368579050265419982011690488146452295314911433610321155125643302536998548840222033072824682203993856269995845827926574680891976651360785128433224592702531370012007351948373808493698152808003527029608210942499432026504055896242486787848685921125425357040339196159184075517703750318452727665505239653644677746586323323350379955154813190630994085730634054442761693737656225300760251416227399429171888413249001761899816025363254337961324039307939827034545488131093439975559928805278034165246147508262249301577259900959362640089694388456899116375669420764859294343818720132418559462211330540673463486687530614043189915640778364836727005045888755859638753796783184988630745037364470304417687682409161113267041532127392734994429318405485537239804829768745021415322612384926201639176603854678550318627424668236997037802389946408588494681263519984895711335776607447295125804723301741797484346756248453175424940858886290616445553785689261471195785387859801985685862359315744256589686769570666384791891557467842631537444536586127580386350755600242902026092170991113782565487390526509347639438685592149919638531485143136643239608241542746125467762665620140508631948364085506603466370802514009384685589492778921845981248428001188375017977897397768913188211188143062618238676819079681839482418410495869884227574735944317119960574421668524069029232587935842473512488591132073805741148008391801831477312076104026739223123936884287273296663762828601148234140886726886554711575699663261753692340997585155450901411067293435644468181095390729682474531820878243339640422369484186610724948450383178044121403511748599912871812288903669556933509609867213861611484615080723396982090823732370083950992709658498329031548167256233422477590943799026943438827784008324668477659212565108586258408537773292960929263230412933357721555682794614413182372159097756735608708713682420268075942117157031810737252250943080100019382167024585932097934816321791800471365001542901744820469998640445248622032041381809553428827549626587299449551296336175784277082704656355730519531264236422256929374372648474987493270801859886312480789336132846580901943074300132979125574801887371303813081087580152636115514478061386282783063409369892821428288500432511988616761633510506118378173083298995125347830770823430330363519632474817787950430110982087239922604477520656405001012684514474442515309248457897655552085433840054016154062733405575808566024568467575706566047276218275246492407392180620582303275781899960124751644069376438491097430718587247945502626223881890525885123370160878622420531186510022053620055199122449101339244506343806591522550358895407629890332865897461619267838954384308837904152972905104677841572839768581918136698502713178616869623479939990777738191322118035092806888593360234839060402433814613580589887146245331433411931339090164403740082829392024353791682809062729611008332580999356074451735902897963327383387968564813731226665469883481633517507966636822071520780857019450643345341858948797968592384418543067037367362443102486881052174535188022671036473059681201245754680432167109322334478219558349722831701693595786647791723119456003280976790826455657156842745959766187336758515552690414554700824910451086599662652350386448872503829410175235028775085889173925042098819161325790694742904291526233765919890992839662605753507978508598159511968621340133076913438603202180040560074634596836577656140160515721271013962400399211999311360284323039840352704198518012448864134757535453244206821768763516699572899002359923051041053828819694479233397001818251034390994392364170706483536606615205951596729143211337890799158202862546268157268192419778512177844941727723432172173765695316630794102117853214721846113192456839437172169745903798378928251742319490767115620624090048387884271976466973958696594020139534832407086282137618158215546214182901104958330936849400939044248672361272781787593071826179196092003255182218248451863956154379422303536595261210679440948425977666575602945843579194937461580190488023914757522706061739362762295674885145607106389469492450574274702882854581172232327458861316955797491480386496683059965345535955001157389989516055297932926019328833696827578043808622217641316773578863394527109699454576083397066572526461920892908318208208054057315620563223468741660657987260426010645010611432158912405696273485722925880256516389970584058848745179977932262601014011006849435681101089431645835275900809875205678295912596901571332494063749496109558189643793072680717708641648995120829304241793535245329985471735891919459469990181193518126399214455851246324687997800428401222752500419259382825627451885935697540994894660902435984359197765749885871700595706271529784528728378828926012525234432161624264085789964818755931524271945900291668314660594200419976203536357289801122046538684059783627161772911608376070871165241070187272460911932405890130754744630578325694000988114003805212210995896189081515923965905785380641602804689869179529863316631818041819020509342310720378663371172203647235193883366484640256688428248024393356565649234918544681726419620007460761550052101365926478616496001935616217267705331239357913086433331206938736166303683899262088293262643121170907511130336508330370035346906946739885468268959301198978103682440389184486137216232766246906118680818883733795707217415360803219517309451773619403320251419207920461715757169175263614134213041054329237760850742333855449192013667442113215418022724830749362048465774019678090648485102691052372298258953707248325922281923360200828535819567208207195023069927417032364688726462507136046917579832372104209582097371503015978410304456826789588219820998869644610063033720603259226067727797692929921828369558107874553761193431614651507154304607388784978635808858397180753845168626378805409371619769028228204662926935399390818193013322102943792767224546158132925720412565493091529146547188115219885834852032916494629124099809224286256831789123776558952646741650089749558795430765933759799565196348006670649100488613618120485053311651232309143100450723307923571273282176971561812648401095246238718386120804851862944659684664749083771571315039763125027209277689559632540382853449608613868367641098346273334651400036918039465140953885403277104294830286162961360112677774325873947426221772373008022409841210290656888126644269637275521488456238571786068650180119461215357237313214705526784331649375005707619524411430148344181979768111078948770411505712083573300233429961387182588552071168999356654135508764714214685641050749339341416022866205201728837094077518411993522491721824410823095496709147012950219920852532719528112839133320516204080329638433899126524955832977306227094988851114610616372144633437548422098439095785547734743122066003078547351220485873069905539057426218016325458324483901653934031962521553727105358561458296836262703437166112408313404731449368463204095542130857374485076181052900003184888363260842602678155856579456922167417784722094867215768387521321250488856445568727542176460511670874540683305654963633955381630549701951364316157510632234846511698420522356403909805436390840102985720970780109452629423722707970532232256831151874448095658361816147625860339811487713593051320388577925528550867898564417922844147457438822984742817459501544907815255367204658241595049714129880023730044179649274709513527115141570392161039913038387038089045265365295957959815775733333911192943391984461369722560225255998965048548690077461964805195755652753730571155003315729629041360428636810633684626419096954462890310811411951143623027199979828517633419674727742510564638343664651882619715339192578265631681754220830290592486706449600495018057152284023476944791296852460761672331173784393892910217059915681680347904541295030471750527604763891596538954137994384139258130628947009159762095804792572703944109246434688569167598935525029616687595434927653833985057076401481433279379485002951448196362981192502725901638842630507217467531837916489131063679682888147834331070792261061787543719470780179458928610557558497915211469733266997893296579686463308652164608379575941368671312381691900139812021059509877520848883345031152183081052625725714690360185916296549759053616483443481347332913825095288505294012612282337083366238379212242046301816554603232490446197693203344706140125756128961213646429656677860166051638997133842565422798564306636807677004699791516958341317369041306209825352803077810520654985724651592875146275242964829815265967039908058250961905857512958231400666239323159156732600964811026611506389076894058966543046932984935013198878226720523898476642779155114827104156000983722994750438100606543650307705645455959700899829518968915382125429469145099647112476269375078659062828356102423933172520359954386113861228634847361943566504317123372969031154901788152601810180581763502189157356461464166280206354423080740638173947300445626949575063913409774041292581814521528181137000283054470899683748126008085082740283629974508066865988611791922295023429457656696103697854830501585570951823797495617746991463006995543467759570885331886560715545954869498366798068466847389930870374202108382757546782975627143588537933104337304296308610535254912531293314501384193108281846874695865318447342007258845489775457077793650360774242339205551662505119534542780359521133684580715707410730196290689494611133241301249900312324585193935402820742674932595566761791353393375049679717193620643652010834549276287942994316046625239380292530934215069927672995586317869787068672259686656499344604489363676896338433677347470066059420039108845074661146084411127225685435332371498708027014961840622582989468457898075388421575065268203615167925090298370757461652618490922277772833161886580583998479398377429200538216838469169787020521450048410428503892501090681822896201054896433510339306743346500414213160353046733597260810350056921090324742398369433547754833397874702591072556322573690667467417604121721493224501845490807853442125546663365000850025886285342684039929015363328672362408532295604571767766879634156918261096146458257572643980570359957777029233422543590547307266221557108042256731009238022907468445373488133133667535638311952976798937026046127307501618720718358996972399799116226179852482312425633498890415545689654863152695168780023219539518933601688326263954962338871798552095039272519424535078033784845625730367836441912802904462752675681762565067634273569436945014774282767873890965799978214766912216231466992866635720544253824925391311062020696122580933374642880543095851054018227451701098754183378080730656560698358175209845317596694722175777632764130404981915009346086227332921665475534402725568487528818760651297798482057434847840401700802718228418765706270407740635620584953172939003377395521753580981097034149340892499723094002746290119145507045013157245145601867928440246266168589217358953945172112117031214773344672570276657102695558560986071496436482112196133812855852623634865607251818874662660870976825051658390112136365979986584739659109632338771507816406345273060148145751554413493843951740803270994276765589966057295856933865076539313284360523834595477861914178358955900454673978758211162339333916315897616359832167784262017294701159127203123658034912286228705171239815445120759765362573172874895113911035361104280691750893713797922924281128170751060480453458665996157369951390743451910717185580490586903994415019865286526782141068787168216733851714482397225972975143513222544692188231470183700051561829795801019874743360372128172907460755934060038800243356201744036443055161920706886158879787595880435734923782763397314324067015340335722549294809087148795823265368095154994205701942801853701293560940778663305840482872510479437649150756487952424926513827990327100539718997417646207718195931478281857766581350259727876107946617668365570829983142865744812110850520523417419179599877907152711812648606090323114913774948999475057447822433040368360722043655871513622163018660148660538166515430050642723471244887017834293989346202445652334417711282377244790961399080694745854498260921832223033978649889669870138748789001614731273362694282769013103731996424123303987845433057365664653274072380567949762844469222634459442741849241295976040867725903472239684725144935352063569499417489983115049666474483359769781523478896770011354044171335073961109437334712871468786946612114645922539562023560867252173297360411872508974809352591125065475384519176505895953541777266747555922175558654718261505952610198891786424414476718524867397665096583531325667028990226759255964172021149083722746927723443385072068281924911581516500639123005782591927494807606724231900188105065780926368915245693504093550212833521434083080571810160972292169670839720542806120507218766472315034767104499118077798287852934747832664490428040645486999200927078216828948184998876638244624487678778204865239126952753759054694464890274575034015468387257972718659595480841499163972120729706999810160881740799998423561506346616095936635620413296783184792534665402091571362503555239171812512896686332800382339928309869838819238747891072049492629340268703937091755107251921316513877298438584994128867737738131556640051316525887712778311974888074109785939153482112107051585668864632013822680384122565221502577613361400823483614639665219791459341839594609221386693607025480910651200777461867359323768196340648876839691053478968543373818093523248834054234013054833841138671615886043715272305109394366546076748992697215242368918221150562556340185118932828636949533318142448433478443802114534028943099459519311114257980252138825046067384160398178600161679448293552552017468220511610639636605816102173583698852050205829904342704195199031427726201286653711180910181857839103078040413883052205799618016433518808214641476549371860494316269483133879721728957671878148822646210907129714191421376867749639552421393470002988389335024445213119823218293967918532620768285259741599337437961003090463456114332258015369098556172559981574937149705937953495732789835576386500338697777686991650451685965180314872808492698911677180395254743455574008883555090037887393392161781948339311785191587391482414951890160468739033376735966411519587350882229032469577259884989079437265627367894979223466909910404286977742023644129946567811464814545420691294101604908636625589283502175112762444492800523860083543971880197551317590146345206946313027091700783567155708705683257386288856322965842485981749885561643309296140403374720264135253628928960733644853988083239958370197880419381718447067699698081943292500998040143786312308171840408713684419624280538286454153292932109365229435698530881429806643149363111432096097881372314801628873424937390436056822673351904892375839955264576257140447290721697711642652233676629797311316794743144120948071003329024125026596709083443212948588500238976984641179396965588432174702600480752677784966938274530634640259802987203102871779406015500111829478745991778994313550679383432162227351961851834390154530781920975576630486546995277943841626027950928285766254980077779263774474727836147769921786423350297253205390875880994438516517709262986154281070743958433715880275070496981638405161363679527717821859404682486727128546381288694941845264726201021927334790619471124010942542903563192058771625127386825842393131014406237067970480849050323784281345257754577999337212790192798181922547357990254488947971071079861663134638418317300132294535155656449064885171238602766803269962978900502473264523184663687963715846951889892312846262970256154289693444893715361176833720463235864875866651403113995086583160562654629826436017949937092926838016142971929204606330627962834196246474782440865216504550764584425326190657710614457679930726692766457619606821184238080241777915883010729147426829328534550096140182190852671359771344919908703658184077391206855605756871212282978370824947490712600408879233349629934488059212512034230836352022024877085611840085555589232971313402883967873344001404453777722040349037926013699710183459934355027641529133472788693240945430458975266046392850907716708388023000464761027083659179177453304575046649408680219310922414281362678428003641747775988506834700864365243564516930049315654240355679310254558726192419654859539200102810968324701951370691583643934277510059808226128289790943689961315906166878842063221743728602851080170155609629177769179400085125623497592346653023698837621183804088847960471003533038504998992323531549985246659433769271027316596011014988574417042613055573156997813029435994789069118510484584474926585499609368248363687031467196386431237782697985579724280057481639188716267565762645131647767671625675248411766560477897113783633899344983226441623213771001461490273383350752909891846913974196627000438499416967371529367950348305877303573710975947104071356875914635293356771595494733293955766706544414545027769324098717621176495188440186700977556139151216734545180695537405530934085146639111559441143851187474238363336956733622632145706539567280963937226090700861868556726199107698890404844652734159415000240216674045601413474621450360647272803171081683693289312568611235648840079185703139572520727809060280392904648539818132612217750724173376972263221170917117375779137599843442435622120919704692732343569908908000027824324940365506826037971825146544034597067849147419349104507929545494342885619566184272435355590329634494192932369452904090526464356934634171645427452636594841268679926646640054280794805550116166949434167112492913747471341897127482049318844772310455164645305737796703998536370615421260938021259715402795571762873925588416157694741405974666606131118017899275519396780179339919493209061562419916497745908935740252826220849806858266211069567187873200986400207735342134895306970983016720844906542535820717900759010601717311415451129819489744558259995253993521388876001418004873742496253670025484147711492160754576790100608045190310819124479310152715184730245395056053668529676029347834584507359966300800847984204143978598162326099734603660534782246301671644595405272107831613356899944430696357919904306498391874379204734401824490218631277481634634614105391114289834096010994851273989910203170499802877514398826424484803694575611594628765930436958417316129560923730006075637212436703314563043959162294370023327990637227279313246418714982290520857142470351544266265074067113922045976346382434197572727339522042040877599225099340071189389565937684023317983618223998558927388297493688453597034615769810479543804951047928293390394265863295903819941410663467772380125238405201459376234603460393444985152620336967283652501942068222865595543577086577238968644434079680072018165519332119083778463964483277904529967082674634191931545246336611009564573033175837106871797569973635199071287638542774934219723821624431350816913833557668449395823983360644485066526882700074388458845918915209892487527232546119109522791669270514844802096157397173025010108485341192518220124875162417502884647609414005078715233012426954469257684250579171259807270552263466561985084995867069493451324583226977049470237394563542405157202887188138462657909508476954786702704247420080646211746262590560629524936573042934064989218100009207961093168552947380253037732088389427598435777871837902481315331805821941250393024428577525599567646738800153986859675930513464291002912082733672295901560990456390887825538218181771191162598407649720465679776748282807093214791548289081985610610571297301461409664603454342299207835173463011857523622497045158586514081990928653986572653481481506611706439978029614020497467557701109984530962471451292517616637342511127802688288894753476736382108676266217902572614823746227365485708997934726076004903160859212943609590469736583843453847527901075105774581091421139422934167487272925910935131994336431518370950148169048966866915788975577549666475134185371130923209984508873577921246332412112831447430048614746189954792410830349294835347668175185460183038676652851477248626612741136654494208304445392838528055355703758630526725791225459065984136862810168308330409138197761251260182079105019706725225309502990798090689966924947132484750224997679717158066314471550097244455789495848760844883251717710268405782269957404344460027454109193604018456360368810145505146774250946752110432725699166629837684768669568896053807276409705263154272054821120815148115808224663250463068264283157839807519003915359446165870910909938330192811884652796269046371842783181275245615298793838225624687338616820825516019223216999192221509806905339218940008703587998176008820335177953934405189564975522175068516689249277614070273234175201773587346620735300570022324245545368837421266802837679522636336271132513874346885110537699787094218827064602881718273377155773924452286588214496752052855289014404845234834379047785969507751613899988793399186806277743969569195129424605181216046439196531521275035323361212488371796547110187382143327577244976674321027892533846542573008355647984802043123912742063914852559438055543208275142509643201966623976217121601546835107783283963286922899533568399921760079495531772073368754496517259461499439741116853366836480286650222767210098606365687950997331152510196311688303440422602434834051651988636905656168238331008425328837207284903068922257784231545315189730218114355156499303498620203564289010154771332385246401115625866773884689420548171536148212167167612192005078663429848662905409312787957973024365929186813874589110747262922615315211254823169127365388441082809265237214119709146598649453792131572354005721856194977025314567793640742713418873354413630874210009599302399141560641143443771607259038031918602613061764285622910312010362348012914879851913439068046574787708832244461085164290817477568526800001731933294458181076407348980234904948426125589921055993081776197679133138967247344503028120415605096999402526787830191444853577826048290193436556064596920007330348425670952128231565418348365692276908302589191818563220855693634470215641469774681212520500873382143215924627028394613377610972272147338929785309933885668103635145617825321398980787269574577305893982962102185219355515592581652873824096567045905131887750744730185127025538477609267218374423519050340680599983691363121228513832063122850692951081208460308512646242270723972921734588922017035889496527879230874066903938771886047212975952655838226376900964446427892742629671117803728749409143994059350866927459124005915005151406789062208801985302390621856422597762417761030922292696500967436363472359534591597634255881150803270969356581013625417906487152277927328148841880059978207191043789986285661017132101961774831973973635341640443762562804094537465709366823566652177514363304052816437704310712499061456150490725954599940154613356711129484599874681099899461516248999909645202183479024752166251815376319794488503933800951578660412054631307801572751677617037460383551050029248147136439617487569395167975934305294238884497677147033428301343588764395297839886905084294655697723309451155985395983699170988719992872907488061710771688895041010165620814724073369055039351820143944017013942981082242353638857023109494753682600209046276032411112913766342393124952413591802673880877743501630289835555204531260385037189596027781081661025654157344633501655092678967265291399039278879201744337527809215075353814341150664175641169485186008509653168531577037479207789012603588059484962298819114652160562187418976915645853819291609701108900990647494944728576839794404616199929424252099983233339309228808034030743205055607197130944526223916969855004461827148976639390746164245764592463462313696459567153936244920383913745237956697522892748052692879213615458842373595056072657780382229206763109272492035005641112220972620999598235019778447774625536601389185346743815428629929883202405657967443114408763714573586627011877967661951933973750530402011551732972269751448088705815406008069412236916293618803403366707266938969113297837879454065831611794921402064987409840307949447178675782218589612530398580896686336011796109440233992306117996664059619436016264791425860094703708013181064889461238950196698085021996203701966294031288364520404119830674435907166695847877229988589040076653563569942208548258432828981401494278720482414792873424426918893171963538891630282215031044607555133609537787858801830733486378291657657696513043460187747170268344951417751298199797895335229415788724381364269798843622624076247187135541988878452565310902687353332511110110541412021475317890793066486078108334112013118420873002890582117653432323332552033688696038963882022750381999739466607483757224053659756378829663421666767547586533433158793858158789776223501670170763061913663770802308140109358915534717930239723930096640817305859686491762820358306563752137875894464185737158533066986952117566581503585083890247211045307658796663480299012913886575189274004059648266878435129704181480369381118366424713623910470774993202472064661954070243615192958624011320316642208309122406539751790798057821321304905801647670895816453164663123625520619428763227637780678493076570667449157841001692654683950268231083320844740442926952532927784565467462794470471742119823488658058716827838192559498431317845347963270314244756753940945096666849859978270088686172751374230769742364063049724141509650223847484213912382744052974903198118187505302489564774769520331156813917664784714722912060937699131758416232418345520298057426987308963655476405418772055324894778785928285094199719382862246931216586363362037847688020476162283904965776699682193719646753843141111423956225299974983159902948605227019443521173961596272972672938132486682976547353522614841270165156251639939544802030800343189324987729506402155799828446892340910391508651988354514033613228606457916118429277330077870975540829053874583217183006202293406599208785934882177814300694110102179198469574925678446302395028412294733230117810907470003762910371326748401675753691016109428364260372141095584243625092857149764519531056370638422427999927231090103862793214918431577031838176364214398648630508696998787396867289067003186115472073039209434703989069913334337876098415109792134312695266370990651800603207229522940448380846560231018072239467731196289729385044796628278854236390830786822694632112776392554903798474798553232946781065349465983864339135629968784791091979851131571854764559039233029356564266077843995924608129106183007761634582960229127564818234166539247230106872041214661850849444642321970463292704089640726632851313799349680477342648851360183209265768003157436008909901943023269340801793317294916127118880071922957774727757658764554374455125697264007565068991407315834078520943698700590354914502290477318078400931560121087448462697004627523785641495181301990066496959143798151606960570980129047438192098823759303575500727400574985228304820874217736945577268473574856898524660157863778957961325471517290775807306607402602534794066575400299297986021726732016710312352388198561196955817876124638501214128293793964354243944689245749287538827582783893673235949832554439411968442732571589021904381743315579108810639342925176325014044409578056200053540680045823845058494152485355436313586973389526330741091642244871608085060755931245882368524129916483273435232553457330575505376012776763916525118847741005667846706509107023106523448552140193670742051689110693111111897295879224360709715534187007883779779320499667944865838229376321072195823345324013621608608497890292635759333117103303119391315285420156297100465047051228930231473036390149289648644244962565998415267310168928489216797277030539492772479051040251897606271540091347675852731466407300623286205998634012071660082636720171028691916897068897427019465186036623891884014296455221773734005964602297194869885782983576156570922139020066709297042568234818991243244390959068227285583202440347293482731246329439822429011882452540276736293913334683136240567242748231134516784618200514986306541810306640567079704446104881797780438784564297953875364303602210998261883548395247367127223580602951842721106023435045655426275279180032813055186482521661654133318170853451058188319400281048325773076946398896665453068026643525181981478481434260274249960147857146775262525086509803721743089894979386068296406957190893219257749153715038717202206970369455700508614816359773812660974195901985950569189258429332406755850148218297836210700285631760423595154300560324901691846522050406234688281476567985464408554695824351262668054674646908605696933130155714187144326453512715704540153855756835230615436024309707273112444366410246636065802686701177181584193636554405010213363736756742166923051283154768284526380339754509967130314206703125174343557680693593286852330506312271951537580411758050384420842386571539602636635304046537197665875128340726424404306194818142406858006493279247561936233520684590437960257558162318355039300525100877640762432803424799625583613444407231236825945291504766152733219714552053555912366536788940643459570918257052253311382164476364627863343722814869219653917161969916182371858039086208227762735922840345494294641990611534320796446537899818427609987338997591333972436712461109878340848755270863750306835438077301165347563631809337128967190375469683794264773067598077978992286806810229310523595475945263987526139981396724669537193401369882385152972887361695235291286527626182755043314685076927049645626402317996833112824939245455462272708255390155592754503890487631164096078383065503242185638348959161217263088319464406146467037764254925439947623554175402327127741223887534563390312497922603752047943637269454583247010437189091515714009793748710297033484784340079811933242646766163945497327150519136428420807952223586790163421406994882016796790130014700413992799011088219133338149864273870060472503227895984800206258815306325628371381919344076155314309125308332820577557444794380875993463339659146932800048851576608868456992381916307489022315532064929507363380790026763715954384920077137177567113709529850829561814467301129434388352517057496992163326900670402754434834521612142204889473052604677766882446290314855693406952009857078697736868967488738148916387346277159000698678156979643998704490058237462168138515923751142023061841232338390781741336735845803761055254442880576740359478110050171623860796270509262666235855198920797527744820710312870796560924580885400965975723799203551118119729117696271505416887078314135168162038540282907234372208508233144177043259990282836857571847581174098855046174629643652948186854935727014700482519662758525516193319502464517839877025676422793705204160207029671048371223935546994473563328047745932851824371440483858422082947582703078056819820064071444316504406459535681703126145981606219227040086836305574679068739523377585094304334155530989685791100965400225884140989429577356410608144804298082308199313704421416456351076747513889319323670776206087239420136238297823260281169111490203178897079382802883711185829531967087591952175811524511324218500095710713102015983223068432128547073490099968087967172666004454980651540867978246213832954212044322396936791364124483292356489943831719386666109596386242841111830633246722118372171356056128423918352645357631556776699197804087170198781124172058823588553572427730977408951647158221176652353493451893902112744577270440579542409791784568222247659624098782196502079500744646565612070554392121289218468864011705595927200481281243475430713474613230989970493430374108047068744275947878298401644282148330301627031623990641070151904580086848070863768173727234331555201015319424081790749478630058104598396638777328260701272373591816209615068741175775530240070535543303951318507193526984808146747390320447610508184694754069593562010095062043444917934328234186651183791558031879342136344177167854012347407221059618782736117309372415533769186094166832002443396469648437138490044127005557169448769918004716186504072973984528632812072303970887397604642621426818499504881014498721363589365078916677132176869853807998916497864327414491976176102006603112350612485741171611907419443832052810252520345743791353841937611985355866520103161958345000458390974616869301834857093953585405540825462873670967545102926198987525013555329650643663457931187148885468822347124554735180746093582403331958847864859961005713960071583127206005579407905612315147912953630706664955300727451801454175708886878841871314245630640462595331788106810448539109198292250107763391125765449653388782711126135530225540576213833562344349499385205984759117527270763323494748588141979534730093042563801259228110664635724817131619713876836833422674453058853204143566141391096977754183461409961826157735715262835019541961654977233103120663940310617021404260980905796581995060783889884675863340563618915404566906379818029044483167832895416137143577256159019557827283902720035332707543580239295835800786085360107215168998709383869755093914834948646877845707799136759554669413021143273594181094580882245714784186576521191976604127847251507719863059062455715388998813705500906684443469594190494498272333308576052118249414555393050281132422400654692114666692261854226178149922227608724043157669753121294064068018097364479414374284213172501479010724675621426575655797761310364747028394394305481010940326761438808900210387180592438378031434804737374647274320785971001010825526634925002475872494125394333357971644887284440645521117334161582978263714054650423227069193793494068785935864550641105574107282980513391001606978069649924425177755374196354969745994150828522526620169466040104996251777176339319321791638667610347689116009130684257263514316480809259610798994692298610021507623640677840521197177251486858337263196933638860871554349275745661870488701116405741445630733905531076357542640403195666777978629472006077431970500729558260432170607539355439779580956686929848680612633640913854673544001621591710148723818114466760027373035237338387876226367965684227808141738479430853913000472128235288855455496681288015596571577173542965469518955837135988561330027220901073089826831350049963680301793609042029825774850579396031754126403989474050946699062759141720030342818197573528184131777693308104794201666168852136401168572171487913516371393031453095513835278318623680355372949714273745105920433820877440713955509946646968691015148058962678131176312971620489935445438834899818784978907149714211358456113836585399736015614220372048762968815431867954054343524793812209864691432877682218028247019697784721874115495565348908375029703388042200607789716695305928776223656337455005094890411325088792041880519897616913995146138319110758736989328907077511617622063797129950401885974825160559192606607266445143078040227083229213421795056646505356856088910232623238318396880173736404590314712765155030380445266692260981338712328489468578702522210226690813232701287680944325034780818626479799758528603342104886751071390937783525140933481407638441459048690658162084115737987059350760622039003953732923172157454246068235913086647393839522856329834787580023022041851722705912277947381527513237489571676169557122055307440193527111854944423833602554579551777628888183648840654722185025524544270444449028193695567965396105889059998386155135070308756669292852617726651468699477644665859477751030976642395008857764972686990790232629462556812933310906557134849483614647386355383577667025417749674516001627398320179729009055195302089770621567381394502512891204813738074309786550352645149963355251297898515607598891554757150533888745265118385177318462282373964860299960357085899880599156112415994039165286238824174120049148808752119710278709213460373808787726769832442746184241304375120168716286215319152803939284962140014679794440320780766967854665940842906860373649045044300117116578131415433893694046298752339899187192910916047865267097524957758112050543030214699135767449973268335411396815969996642059400530626490551108036801082736468933498206726653713100728316417912648456626186865174151857715319249485797353049495700967416713208942556516554818059935548858749365592566216741494679410852947382268390194243919774278906684351668838170627117448584092585890193282462645458940087200206592016525545959279136060365214802158825324750199870780219357066975672620104813125445520578847850761634454136351722321415697636918205255512470331671085693983932640899441416744208732106199797992149654953452720133182173355103835492293160035391413269753619336404233213031937002478670798327997057292598866516072974725855018050517654703206308971989188636512460925005034942576467516115902898151920148292294830193738989961075292774048245793800756833177470273610519419094547095845289334900478965705634692629327458971777776972347130725764351443288239657172021382021047247439435372597586234242439022175895014573977668464689875858290710845894536794533742371759272522281863354302468838899442892363250512222119813031944816076845480716464305252053959914767787479760772056950180211967063906523331691215021880476065099138633106873928259629168306814839070943199523296178239807087962812619360467379428648336664413219186686859898816708208645797472927496553782768036254803018310194960798756021951215815423642934289061819985625505536542577350604046694914984018700388712189588824425070246449686368454330413397701706941599222921577707349320149127904363669058479293633383802094368506559179395275387916119783004570510909561826599848797373260174497519110454546223996407229300296253637337531456793918205306656534755595859216468171597764040498276941575460833082547526172823335493668802261636177422993986913415033457730305592277074039480876488895071359431247266471483730385275324914343373995770910609309516180801146589608300067017068694483777976336312777067657918815283792954445543595546683455135515603110933096529581662322463737336001886259005424389825190397730787668456829930031916539567651399162779988786101049812576345478725465835450988395657994120668839653242393230288420284151124662396609145471157929089350858296809171807849129978044958016328894966532693837081558876650371388696318990606537363948077200874086277211349705451921990460191556244519813277732253635025114436988153233710044430632431095670791104206561660446338015591032482998199924272104356738944570057314795452320770312883918923103163873719236827613798381748907529719331828673953485979967757804560470862031658727767664939353758686620189025945527085848575206172898629818313050328050395081241389546899426354040215030867689831723300369921451564322866986056694940751636330340375796390837521157652640609898835350523871564160994243925878848285624038792020019134105961596284024545695368674418146606517104159503803651228560085804995373393077567656644437288704651389247102732799763222993651475706852235290404301140343683706203034892864670730457418487811482053309301065351744010118175696527914260660657832190099643310602807081773916368798897490817003449848640727131348189757328640088424877011729686243922240832353657642049078274251779605322442704607607575921455031094067481022331667014334842164904968651526857781850948387336846221207862932387640712716345105641829897761005173796543791275349522710436449725930617793280574633291267551212323103733254857527648583319076936921611654464792280626941772639955159506506263937228826343633796756806880842005633732772183645965063043045187992171814750152244998721971637881734346322425276801707053575585651299661389105051076874109431796309153453550415864185175142048858744673378670292991920193776811043880636871870463292051740501216940006525473473222224214222220156284845810552065892861716557138288375901978405196162178384922447769918554478367887226102476847491782852152323467368446006867145995542491295203791860993518860518082405594558993962998526170408342093914705524789315150178512872527357303717167846220198994076676368966383239509494972341267793563845880130972239891242360676117708781772095848576871155938779937327192949487282324128921146424152919544193961735599434467880732897656916204966308437927249371483503877142573343197019433250981308573768584676250582192464540974726155858694474148645113804281937714346153011854814127935576101417977880273112071479211658787011671960939364169889908557758303030648706453636624555271750889385686573609664546929094516032159274452007213346234750777897497925543508739117298265071864946352376262282469882319786165177461395425908357348438891779504567911677891869650336750501390821394442733640680062173755854806064723039355796585266262967779072791585026314622515271383865179786546771226780389601689474099309801129585262338911094977880968595442781587339428066037777798038324634626224812668808578897985060612054459949562654010022831875108283487052769098477216687810070260975560666706510430621049558434209325059645268296286056381733096129496535390325690532707456050283220062720230251693002106594376641306035788709194830963979187741290753061665062844147570646859024732932216565360142792192649323641541263790645606091443526151686379096583702721998581753427045735914411188611995604277803606996347156211208656006959849537981994354424421257486078790499725899274425159453541786729512513912754539796898635548082971630928788026685830359863005746671477288934737519201688990643403881227534357853150457179784437576354355325429739853791199883267792523650792297019764239885877065552798651248952632896010358324930521273582145498468898533318778258553153151076900587017800605939427154386178776019822632226018001849288459899923432150275616269844292826585168156705735362662322113710784830765896344725202552555991105643978115157721094199175661419597728106757468042246550109445874237396913923442637925279466606588124589153617144595288499684670090323367452624643487574253126788742459062176151601841333206989763065383590302304434473093949995780203418939407318898256075500574828884822419127020886996173318830657515298604643553139606601346353142960107971684478026727526699288325328462535246023669480328986601078251204327067734448841089879632559461594393163405578597602094686743408346233286354383352287475367407462584081779714216055391127038898591909331291187911279591095613333237729806747117612684737622245538405391025516544180562752559719171908631225223840741038445149289236534041334398156245353998241748470512688510687544808278196300385988107152161977069786332845892891976520054190006134365240611560555280820486436691422487503136749608537834009621091819354677601345802360165766072656006279728514699376504299558689214265970574130627535792358114249211805718682706561890933862974105723628369761349659025639892703171629530085067401266979979608692048289878353806480489763644383510416686831785648005752988005764144697806097008093530308180920354466588962293504736635928674928152494538168399337476569793265370124179977253813757121765675262782132459000199421937301663060918207141902315432647882269489764927464259524209237040039564039381386398895596390131738945900696744394184399491284505971349357767820433810914637486804746849461557926766403452119891298225715922800303721532625506822252306537243300473318021936745694767929179647084206512475486404509552875962258674049121305718767239927080607350483896564242318695662858440466226510880794084006962587747304541366295785941252719750354879678910868534407274527046606313530136806178149081766009880915238699244914623951865558858669254236195482216551853844054776758811702566300939332326635382834318017338900175537922630109104680390117356135847525858909265926056259129683541576450591490322967911063718877542464210177071392167356962494173933650381522251141400237079777250226499571208820063369795943707741289570247527024586964837806912500373874320522249714776271492941663083129789421293712753743333461202983959439300055074715113291575433759185325934420806894185836774096426398132903365115424847963306577195890894326454307824252802977783950329146533678609482247172787732046488635256092881900863139387671727649579526598825508239338355745564395980703916228899452069505326075247444734206453375493811261848238253465092865604822278970141155526426667625369666146853662620127437325957070428981020890795791930381165277818198165885775278695430708305910130620945587676591110407153847905253092105004524936407699005254414390150886884432133078111602289671175229771081215214086222508889716890944875958907112975830660161895586465679399999788407908011673618144510837563876489696571936921457286553092728246801220191205840162822546793261171506305340190902319013422487783599870344591563437913928154101688378995835672871610209503261179501310909249887963244810102037748565131564697478926728973919194542546349436514372954955441000754277951160960443657550429670199514551523924921577894837572353760426351802344942900223922066839573056852258948455375879850668119021656559433343269894630083186627571152997379439003063755427611609861072981904991677946644652465774549447422832072452545347970899572405280728794453703847650419763203727428080714028503151581351167602664895823555959400419688212048364105973839576869742161157861338794280086296163289868312987411825914679593326948291283748989626947821878004438391379313300612039691827436576779384710883845967384438265057155214342574586089388505126972093618115126442983489293632910663793681689684371480645077725833424808716395961443453609479452084399853190249305624903491686664515018363944566426961545168807743001968146465640894143457935538872813862306254181210957285816504209268921523646282901328698020529603971959287034434307966903327129562079060078315790444134154363083170358940973164825404883779714140853388726665706719956836727803461875873128285650616493938346990829540590185647390022612501133914012008034956613175210995664230877975307880871999864799417724340583079555810946862657380117553888273213940355393404683767440181479830626988790719622968184009141407327681946763927750435123080457003892639405761376524261984088240910120781826707648826163642736351635055577051466534522530808367316281057390568967133804955540466431464785057432299774310568294241572517684758935210871210370578014711900183155049188365775327145377918394698087821577091226409181599299487078720876379166033278051536380959227724663698558984883149746891613511314798775319605910349367068129762557646316385500914172629364014690111160981786623776581284432521206395563859832894244749303722110526696689614085070079509012568858926850449186870683809903379088178052123345931277407170887768171281226872267090971668709096985315837400550206206977410699600186641147551725482748699747981587438568644693928532349917875213455010481565172401223590178694169867676156257788267687089312301771998748032193463621854479418189772058750813116529642863607450900110027925205933524919824133792817379291868870912318410284617387586279885168561227971629369735925624341187143089848354838946682827807564934689899474423403361192585725776941815940477950534357988204882307003232198787236973179497728005425541549779210852133310575167346516132343354882659605130102037540256209262138101820970642306613266857869933478401639457163186365162412894371472252361597779227912161674088522141843427714146688267451875378795223054783038346343120464546702726864635309104841527064998965170390233501765030466975884984763129679684363155052614242282601492224065721612579029978574231636509012780165499017733306738955028315852459481029296524842407543586895317884720082882724333416348090750201571075917785557845602726967720563395448229782248769831035826504618559327454590163404888656995147993669904952807408404352533462834156875794230179900914240619084364881321094618073058806103385013950575867149633776370631119406219130829400478395064199811626986182267491368765053180845165188061933554551647827797466094844793338091971473582463802865061043017682309454499930316784062337270109444947104765391874769907238581415790424590315109853979741845116268647296989017911706611146703366736483704221127931671123505255387849053429692528819817765924547949963180816740360347110666681347600102210780277801893022485362280753086137874978540246232990182770873893803189981492481880136115952627166780588495756213635243827656457800263962980737353318158027139410004508729971349852186284748257645871590898505172581912158301235266581194515602992382357916759242169647061086567204534485298849974107599572322698260035758821996805217806453321822035150076143347420316457969742679730523479439199563212733717633558187208611070485485692151257185835879796806354529705474316706951832059244945395113598924458937164143341697885089033797539618091142621408661232848454725864068405999800810596756455686789546154015895036194437663606267350335673133192294984012261785542865914810223106706980217255344754942454791611564176195617295816412762520372037155714068654111495005393873365536942798940150141724631746237710733300564973232648688663475953242871633716810250893693481342345362601582391579221771185660439828722961837579513575547724589988841891593096681821437511919230083212543350186780919439557580788972968212091057433443659712782964243594175056229635824799476136790334634498513243641039991153048098633231938348465553725939439704340075918353367842111245703394882876663500057853575460553692740564001896854263159572466932996814714945945833119828860460958764361910218719053522117460143084806498649826048022255995693147220419134783734771577034219651078961474405459144741611501592436873162829928260697338987634037059067395965431304841848678396675790753446121649842030416178678137712324455040548126383700195605427214997386985425972971623359688494093833540995741614927110707597920828355201958685916922347476465301098920038706423448546601923515951033275663687355413663651724992112349359586155101174628433338842587900460938665060872238167093226175256441692923849190882189449488619780209362197129907803709159878430038170338532267380447802162666845003024880525191736689809480524103033337583114584663163364196514017250698802128215705002031668649945659159786316595674591918715360128224276523864162213939518343793288735838981482255483397266769380844024355151882941184171384032322122802347219759993355146508708353855258919091700777974324922695632716438283361815746488717524337813722930149497206823215836488429323775556160401939169861661363433656131969280454887793535862117604599606302323203740426697145459718673944767305939068463403836590824401694434620369532723001173699640444524309563227325394336521947670294741637133944822340114303735082507904867183671609499012070063063058077410524073619556808156798607414984976139241843907948579765264117673615337552294675120850764107930860814148327488448406567823624968686052911459715340501808542918030986549583768207499074890796266747323444535031477304241004468500855294369813588880207595036228092308537135759400329659748230436913537694527578397788190367284384902435859157709506006938299508369275349691699286835587744873651253116623347227001776926176018622061634821584585410611698642237996888763290152919048354357148004920657006051733386216190465828514391840606010594328634148002799311883782616312333715997898322476656076073091730606412260125807413614659724667384987675201928075913699565844963073435959158783300607549383891343268984507974798291547969131725891192923406775622491404129686097659383248367958276405817256440976982064383337100643420739936547673482157970055530424777578054735043764044677850498006266939469312137103340997568797371240236049158708208297183123152958994587569810786021254876210244723286134509947655192918391351350086687369338780244263220048533153241925688004910633191519812824431011487660394948327476742762445347544937587899142807534920594540470973109825081948272903260087723324427300433458283895797158709707497865752119873396391434028490501532292564628308270527265040029975579992568728316340085123435910295019428937135199776755864924350792660860415754208140973030577384889130379914004507919652618792316492768626513193125868153558361839882865925110676256690644948972303198457554341883816608446391937696619675014507825721661210078831728903576979323857065579700872099091681955570884130131720003543530909443887498698218172535453719659927670145680160593479316669606808951522948563292289787717838742636515384525843302658471467846856009459398408906047823705354867650635802192343728244107783448145212039835967385480486978393581372287689181570949227842885038781109302801308641364056805999065112585318790553887156530408251566298414121688737002913145174014937304270821863661208969307295689501531856351784678636990403807531781133740590011867767293935041742934457431624167007414324427148339276099962457787905814531912137023976327281567439275972453794915990078888798277951585467993484859351376746792625476094918586543742481730654369963117291185988599100657573395820292098892872056343198500452536466662307803505519784633496085573782583288770056352979878927513970875685273049549221592346660666588674539657172056551376893619600171383394169928392961351757918192957348806324258484543034948471289185838262014273743851945123993285599496464286646926483443774092816316802060005091169492948978769663095086523143022286172871006549797082484942120153786558076371340587813517697654491104231651313155290135843937146916230798337378110488815988954953736628747131276368702984161576235519791849464013341597801946903203691532514650292668766189914682557387885075120376834888726850794952724473898653467669529525786972873023015537495675780751898947983143562115595445676353587775575629659516999348162917127078472656028490442773557452651340609788242710604326944045142698572773959566279097610047758561559626013785571869959866249057312656836288364179642694968579937350538455861650806289410476317345095718140894551660993327553093763824255801576278358067195997065162698701179930233006230840205231602067025523366161813591859183674712761139278548622520973445690343804539595672972849095791161094249443470779905445954140774746216771916835777037700155064654518447885139343433799557516053000365658138017452304518412397560312568430661917059299042940649045458884969203822071123230645450832374798495471022624646273680941025350846177541624573521760448176288746226092956230219020293266530964893230629958909389437024654412055741067731119425189350282913109870920944769031676886779562307384542723829896389810705998397588357217964653671081915501207612079375020398380973960690858213427063415756598406775576905936621308074041353922063823959845243858077814112650141148520566437871396240133067052311760134305549001910468575798810645807032534561867699168668212795640047313733742332089711513455936950615730177997749002350168377481686201452445411454417902386076339192190647845609409182024967789850579657066747065905180254330072516758407470308826511839933731262140457371678646218712108429059624788401638718424124928891742218782226722442030565983117988735076596706822716317557772875052905716511691317910589801884908523805544272015759047849830137178131359696852057076873907264143416473319697738586107153340144012266637849355556191530490619032172817839175680030291307830156390910584009370043871192924657359907621689119581300100366237465391909016178648141872775974114208956729838541476003580686119469604248575103241316658687412879422890731617331289302019636517805525619826671819556918054688692078575198720155702591032513143061266138122346450343904830605795593600272114987667527808366681899564509350375962145812219677065911391488013490121982456054672406586038539425965930805071342086740015038044191850284773833939528586543226452972484888824573098612932487268803016944932654007759220790684113059587524279963411896040752570533135451639215950676550515847923873120480072457039299512737924793381843032349973762799497487556562357858043241618818078579295149683426207769035753305890235258515839324214231291560090125759435379648176687044139978664340332346348344682310700062303546945371634611504884328585015729943633903052442068941120146721257542012439946586653326839477044775747636319374115324851168672173502019104675250753375656599593050327107447003185784179574184672733106623093805695101653727774526624348441340295638476041834030066931898790524624251522439477515604438173362192423073968383985631606384504839510130605749823720518728102109809787060365331609188774724343327959709650545228552703739350887349954648307326279283636358693811706732171572962360673674987423966233569487243893865426115637374875087879189242192863519757045739453810996792741506777067915123575772240775994980023307491418343979069296841774847386604443031651444680706531611877104454481532362323899947510158528313819972179495191703988714520489039389588273730765045103855347412647277669389513235516437615205416457368853599043070786599634451060084659735350675468471224404337479006523570523308059381711409136762409201269155006913421861696826698317251310022025469676552294335192999115588784973973666876652674145225292580381649524500967188197855151864447384252861989695092225090470750637102230987548436450828077438001680178633332732170296432321669777063132732463619611436779809690310820376400542933376007389187300511225122732410157426817496558504831757434528941693965431660454635354949481657833654972420667998783588179464716213553745436843369755805024332581981278889040887137913836068804615825502739809292051198673235611655933926628406817343150114191659798608357531256898465942186197756523816597734271907798139867122555276868773476607288508626291535892935949868103732587544166321869046604315587110836858604231330809843116919203815683831012952735357447531312378442354870487161751412665928210156268553879780755850180104251053984069327312009498993759956319620056807396996405440082294904294837826760096775054761483720330482625147511675113765712588983233511586894534564482706724003847330756877375450741655762981477116563968612709671025704957025748495307944575582045361863132364504262494352426606556962485745736395579401120978455450562267232306704976113830486731760292458187214976139100978974758412198429661034477904866107082392410899381368799455689251811019755650409994315437429901349347948821307997756922710903013736301285257573655792314462553009083183191063528629400012840422626266162555964736905890217561192588266567723845532648042269861428999355466133668914013279554317042185042308706844626540930895203556826815491607578577899632168156783457618780336765809801793350965928630085736620564255171372891362448948877058302243432716457808233796256950856288768740326431544608582999993010663672014537114391471016649618403980952718484979948220649191094202616933117800936806027065156081681854447750269160044873189084208820135874525586853784168305596316187826160441954806868409555241602846618918604558715525654110884079936565191043038037449948740562435065156181714024398106896453558568229725610218667541161928553849894393443323925325469702155511279115653817359843403285128290594310584037936810504877064809959167998609340176445664797737237565610273632280294803049470205947837075499072162799612890068410095831177701333754078419064578393626881578369919638431091682711509217279950681298327535081091596687604369393872007236680565486748864967536464592360274174839831829672630069496101638999048427535876684880609476628939340564668612415810140510659629402383368750739586012955513248799038679397917330509792462338880079487169883253096928348499213082573579498942681292343860630663664651190845081867039545336385164834729840823825869066382936011733821807562414846645797349557704162565390122668694031746468030753128077418133425518243751468837021032209751295389405959391979296378003234217680586579748716152975122725942743034668822411542269355629283575882288719277489469540273564900274071533119840187202929803955717793144503420052338426577386284894901378417452294798109632861119632765567825677578668626565449036033327332977830272232715329349972727519379773955535457565041398405055535791343316671887078409882011902134399085243249569813177868474250531067110683237543716810348437871332225938004186247863962363081181198208806610175604087099391222502297658768289553405300619959746140755958787493286786702912326135087806754026216857841911266981275039053108920771331261811259175838550620382830907359426719383007761053969649422125385269142752306301484991778975459155751992347171322613027812563233595276519104851830514874106746307454077602949449446456436780242342993119611952075816922867896761153046950319462483768871107683376773185326076406991808597341830713420680775672098728350117552499318725826435794412818194829558502464100629520838798338336907370099451808567124314307996170937519374268655596469146714555943076583281618312658440906704693577504704678509422255247596138438960397891830009273526510881460475174129620155244457710331639294609584758818304172134873908248445215042425218700934540865088022842671525787708866694518208671980091013144171038863152895048683437495483236965549324415297537390208745932683818516388790050214452626699530775650352851297987839170616703756885447182805073458746424493678540301024852075907092580418853069548563731646420857086541608738915108089474485128856217888873830552079305660897159494030324125325056072117329763947414698195252355967604495661903323677029603707428842573069543645607307569000297240236725570043716577109817542903629881592553139960122060533112679433487880720019410884001861643516083668676999400411666046528056197368202784844760983287780690152116551582804431745584177705309364210128805367995477984027700360920074987830677366022304284467361156891546867886326957542139247686621779184063417070820889740641121918588534166826229367256677849946771640485108382297629182329513545180156849907302274194181685070040615621872982073651946543376066330962715089425169634077623313925876436527214176055307504896892164444978937098006289124456571874781355908463850028789608883711189640952633945508147775993569710488784293402183523564184377160334079523251039751226184835208658167967884926325561282340172723947131451827252110363955144758009616531983142095548452269136273849938203833982185526394272758697568459281759751695552642957117424322984320839741451494392137889063978474106951585433862899523545580636188094604423152224044511803419156232442971027917099187512016226241871567738212958203138088012843591665255255927412215945905686301361310929593752727038289133309728170099426530746829299596573813163972647150722130949329460822028333691326099128636113513389762148527473002111480233792927742898419428543919760146408755809436777244258088009431397717933362757536096259284976877933219190924941835856835457505091598994738888159757686412451350887036282127696790347889810817550176526932367659778115455826982249525605629054099283970105925740949040659747657478198681646000961245407851984946245723287451242059535336798570387728815082194605504053177866540402620338506310436601806422993231706093095699749527909906722282660890483197819801947003690337789497660234486376911726243119059981746494189817751556853185913160697174014588329037818958904801943932914332828508794275731087165140933655929225677829856076434495381383729227201065753030147720994533020310796406489523887915482466194029690364858154890386710354866068435826101668985791855671138505456268494741545832127908958466383616764590400891800670179002535465915878541465662467900760354238612447560823821305661868458532706801734473961811089899423132251045911541830514155597320021693772452565382675353826897299027052435557938565232825521961084108894155004217873296586696679018786814986461078823433460486417408825922928207092692934299123876498239639366373629686184223736996012492873337952612039671625447159727897481307904877831786969237081130381946218215539219682861701271634349245295024891854811622951369334491892533462651883823776493692539978505966262830058200780912073068614863638202633342067764335707502325224567836778361062035407265492037359818878594275267969562590143618821182128383462110889985610017077549114394427959752854251666271816985725295019154323097286016923214869762699859678907268528406091580158617984165621031919536819257017621475527066821037301581177127434883627041968943708915888432178394635342206953072201314409348404283861257050308459320155273744478542552523558740161893011651936797491985825985384835712223233310912843426898560898579483124269765103520966712564752159950811429121349903094071600238332430760678401373799001062128350097235083035185311233652549761632386568990834538756377594759524638127074816051599130730662134941165417230269831012099358798344560227998353947116342504634680689518277054937939524249892250719356861586589066993966620744491352794619067635020908751097000466738471605230839679305813776803206892708202671094742387686481060257398831296882429088446592874392484215640167152859172144991457730853469625382817083307031055184434256452988021557686624124127265925258027948092831149782454864189265998704603103108352901094379904360371268567902515035109047506261304543938442595478738429226524583242379326697211321757108763044091933476267578070964071910326257500539296201727625271186216016455053722908446349839019330324667574312483804537156007062431595693587713578886383737171464734931516414332717612623473631237742259167411809165161695785630524787642529412415419270979215792214561176247212669003314173472680515591166120702391502278189811942462171272202979387133694535458472623924060885615333393592422844048329109802193332575901505568781029703174753342010681880320149939052086752536586619984294283366346465142453399002151585418751599774817721705227458036598368732819662952977012640489973968045733852155659097094795701452101233234699108499269134529688858645331075570524517755806631349405510948959200206782277233307785578488596378627142531996955451429853616324063579667645209737246712521809841457162472353056662920695557308413764027420940763798537242523573755461712553989613493000277211372222535194299630504682550636983806646474705031515230504652584586912537467667174384653217731113022446613332142465459132426875538717522511202248575956175200944578413082299827577473176832256359960968092191319700791181418697938060896754930783655017466642603327801905925497442875654620902877265985124520912815658433313385158547846158437707136265192515150786040394413498806401728766227163501755891601256135608600048585513416886975719056207879307247483546634308006568289374736463780140935283248269230275373178552906617491330062258602465078104651596245149536694698227803362744952550563015766055095481899494413144273059452389466949739760956158556288874834747491646581430899118708608091468895876801912059103719480313414562702179943793476928114514606249332977292014552975610700815889082602862436703903999235870767482820520796331379971297664384634739030813562277960696962548583616213869684698587533200312793429295043227655621687835645802103322861789469317831373875992192969439638460482161826884168934593060618620198727099133361976758715146156412220264988500057513208677441220308203112872009502119661767052477467082326442174563501339420457072588425231317312283605327858781795064208339204632451317875597406747312716905265744334477934562588970541443265219755129223842927660594973124939297736297165217072181157189532742155230428622826847088875297308356793963145341349909493027674504429479595509579676176242141820193331509976425314872941126177450666867550922308761556927479153890210939165313434012446083486874960161867169782695260893148119726052466517259464506412163911902889086445908415470756144362042584677751681798042996921972173250443915949623849739629227610774816757469877285484291685014862282896175840577015659671900336206539608817034496274472852993818224166137172982114948777627771332103069724988983967125570835403192027902496741483223068721655784545208269632606251685479271437601060695522896263916812644751786057233178317644945003923209157241493632307841146591860244517502062090443601336795307540569633122842115082799062486821088749183597128149490213467499216787914420301730352762914893893367403444941069396106346093886388971982530085409706049364546390129450825149893874018090066512939607459966936347156177284116875181776343427667808122617993277047873198685366865528829402637637490915987536865430322786931616110271368060421065570489268686601585486182129967698827418023232411098322834378946769435104759497904961677434078658246659736195135319356102608954772566016723156714298874757752781872701569738215864257440172666046484368324456205934140372883728717270796519124309056498811745191894422386382574093083235732824649428604068298910244730486024638597912711307350332789097615336428382493089316992179098386381471119172259714029100275357538685006325672762650267921396666381430677644887471209074835257520841145208938525971275494431879655197270409405406956562248974437121151450916107545539282169461703259441850145049533919098694076159086920294887621810012900420042101815450037519927271468399907467579962742043607118487345113700984551688960644858090290334609166427786358227422750766765962283733852922285783340283280892021816497520495166566164287666265918769150323947289956557083962331656740630689235813883105943683937193500733850821700740151220518862640411471311461382364209231098305795252507774959802961458879867013414028144014512718697879780725298021763169872617518988972966523706496777713680402310255265410237933651585465746447939190293907252059046899213983008616435893981550493779003172102617732945303183065867141414724414747494103723547068767294369028733510923633321605867604751420316297064546360456163411289837978149526994001607700529038467392287669918637664410948794106480151160874325757537680007236371230498663084032288468870873325902377972360213290663134704853902689300272217337067423804454940391172344270728030661040870684418917717960762181855186917981502216441311080559896682853562085733210244629303660229094498806731418669455554703765929730180850438263389213939305288791937087665666427458594774489971477080485868381735915828343043757423568978099598960755566467989099365539037962969646746367372932673554936125584330124326405548834912145045919001197245854538410813152859066124454969582857276862480079297948784987154528642093012398240706066867190087063640045642878604058111353345756724875848278163762076825989874771353085827173823528981338801226955892584419574388861997195734198636812661315020750170160195724819032592255122203753023355334671974307015212178382934118282172965689159176700206979479668045855814475397897596260861537713451345234973107299543719919186628177544648603894057916124574899204335715490005389207077346327317035693038798942001228073337295313727867321843512966095212188671481060147474177658176923536900527550081175809677495423544157544191404163353999176521422091218650343756157276197141129217369914227582331287741502472817696081239002427542831270779497036782424296674736185161137971887260705250025612132336161887054391902535689439605614825922412574491218773313683773014498013228732220747095720586430330483285804584356083629800124630971714529898734435198868593522793582079089933821009917532113694300543538590435743427720858514130207595375966547043176944891314677265014286335999929071434237503288254112943860664758302357078603154763929855811445949941810448485058004055400973426485385675549318548773126253753295446057159416424924470939482835413644557497019719463272547807287616366259092235068495837137661003152938532564519029295983363601243655082533894967674168631574676450745329282816581761986700888345445041376473313344967931254102647883800511057951157970880592196975708822537970705474754577917831306979640632444008232006563804274545654806609207249422417214793535369263554989571392155702691256811394125516873857792923682373032203264154333380456184999635208672811325783597040857797089560928544119340478460840253026802272843084960765999418506288967331274517815538596265152356735927362336266962937220665952853805352797595474911343567735916212823860926095268795600835569213916031100650633158767812059692382753283815628892578582375833588679759249808160604605747627281129614944866454131851919340568799904885725625931722376769006648792433004059570645044167587844813348728880175454790036344728112588149626066369457365429127337557450250231888948026769265125191594806645135660066085517552072734924266282125621250329321240212371554400254431115106074810382361883340022173602608553841721465263521188003830839679821695462102571693125625544010413448934544687891821853321174818435610057904539436123196642606372088455883600279844096198087567618732257474194303814680950908630206735097407320303957189115688596722448898820477983035679964547342326239305514845253416671512605166943931556726535967398887334341259671874317487324866749708867188370427122634390504698845270996369973120708121922394769687454504650849043556307077923954808656316317305138190617419337274254141394986748054238844219216215936768052853924959753791336963224498898568734045364549102252941164951234157015792221579988655868310534270799714725184079157320649620698313616715835837202844054481465349958362336912303816709280353347655888406755648372030419103771156710895729497944902265355649235779304843267773827405914317044987297559390723295755318111850430432814258374893688632184690348142131764690828413147032562403157076202489244466912766682927390013674961406481914545655942920486038580247926171519646142379290845599979412705066192418635166847324538074170936436443572988775342626118934270648029256115276976419044294043508703814514756083464454278238967733238544579178671915016460044941704754344375126737453629565429503896178459518310353006031914170944558354350501541517885325942846928980616309815567346860480087004140849780796687544470758525041358123852256076184180818727219088453562791919110744518212387896153413604534812878349954358332040115539850149471411276403888553508330593210856912163152470401826881805268953468352680826946766356817959704120463199622295383076238050093990649045394238843558874522312811407449576370918391885094648090610849299606346262152816112101389184341700736129771169211035394865602209300521246450544828823211671314667258854631134889857991976196824673538451788744177304328650785331329395629649832533483138918280188030667333504936671509032833734711957614750847757739089307976258153033682670855543761339934998885807355920641934844584299720586177716289104329092308613883194011608928897837359951840006552488037454379231768840564357362460155971103227373368613276583043359155173724819971243921482840656595619436712940379236213658525614204299815008091711318206517718117043055900722210436987922238373591887288267379516761231474000829824432252301619401692882688452896134135729059043414329604666135161791972331368399664457780277538685185306301545151476775791861266175932212334553004208030336378058137682816692748609086613468223902630687694060133615428402402760045463124215027291584358577748727255334942554522992462235866664239476115881818282474800908420158605496669681718305207641035952385902630534019011915801698776240171787404158666935884706531933547506002866666348986666588539758423348019061100008100999444170112754581687884031189102535162173896238273641204237744781251180319606387878869519765466610594945322136876284271309578208407253148771899403160584856294083725727936521761999724701959219552639037022137189916598429497165940294664501215357016387654473834006478410684810015848576209593265916730401580622781231815656614832695773081213298598322415360158354076030485770761816360614285238666462388668416787847917191345988235528911975216584470430558621287018750698144047918060126618096868917253513002144584235810889135289251530919132178722899248808692696042497955423716378893376630812095642628777002299394006547551704176085574407308890623947381267460369856666905934104948514054331047704530824637664797089268612561519298898644222409130969845664077101717217263019318377240970179255087096339193022163366196258295854363723166869019372001627231439471804963208600079515057063137362894892539222352774428296681413299148778513207995970017426043429027430618935799012777207573599204813051700403845538665606975116649195795111277384391015738254764355711493669598527200623651364513259916898858025633322724991816202746048833853315032859078163777673027811086048436141310423591561436686982142282997189828577845012413878858159512666593371995006957118911969773597562397351229504071781016625538457617528606831368064671810978386813871584779029683618455706610584574894730870220609740825222956034971697041676004164589875084991331534998788425345271642382464234865063013676299672575099768555289789531424499873778487681605613259941642930045964009586825857761748529022532156699003743499074039352940706422123392899381105033630659337619520535437734124622003491435568134111012762514712243706204364383564122679279472311102581582119354790464433912162168341410083689481040310301543124624621144453823920176491597851832677718891936043669329141033576012803344183976660587099072985269568596296726579586888090600349246085690254798069659802976820370478185768448916453929735526687586528388700387853855424764290863528606517728459877461833882851072952096999895389748730557335415573203469245194152606876011232617784478399631369154790160467246939306699390920353528914814721331798494937378048934185317075942731448524735261412251928011195489819525157497041708870005485671382719218017074495628397867793521026843863885227780641334214768907732464012914829665615715524450787420204028702906117391759129042214678833260940545444741108354617333959319538776632151150351033479737848178754408986515701872694600982333622286498354248648116982817045761686850055341863188188096058801490314822860700587411572573041419708817517246666894873133936593613313072469815158683101629083314373008904846829836269369954469386474747158596164527321003369997418661893916111742097067758501396432017576796386152675786137083245520824738000722477064328267028152713951671448185594076682911419701463442690197194572901103903344598833574150860332852620502177834636730412661218884241321823390156817775006222964618846401986265943013563796576848356870781898686459667378552753840437553893538451696847282029932548210533809443797633874528036267024601533156822463641143144117814396134205041002267308871110745756478240105693476460573621609853573551871008193355525239692315641935930343681171088636311357976032071584502179078702836778718603479294469767176362845817556586369405752893593510871268760060952587131911206404772469076454683731586141556466010584799820853427531829197433458958683879470066337157734251933399932681616457746368695958074839160748144473972578496917692656276709242556534801331500828167482061631968846252598700659797152161185207050501191356473479794177392808961364784892150570703735358830863634065245109107505235964189707805638436890563412441978178016202366872530449532870122645108018727284003392115916998126293472402822421599487985081241105585027722010983108858496582781885924818624017245197327278015452147600885151509286779499037594346030245164347171767379284154826783988286188498456295430683043021467964793615052094368551825099379209413455073729007727617665320496866362695805399742903576353388841277348039699617996880645770219119637228716862176424651554669218768479562178825732310621059196642913552747257103450115437198166015159100438313136037368767505473867545234922739908047401926904262289115135591531802023797481073980350058897494809374083449470858845949429719572987308449540023533166459845100538606449798490995163864057005301083426506298577986751553994264052860129545687825501156491669498782933844812354235353936531064360286113121339128553567903773294034426923177019868901981835147107817795785921031775951927232828846816560442553693773451335009679617156462576999637487071475477522488875173647556956785324940192620237851607361351691890812678004557445034732019310579699251500883850213990678179211611251989795154665822544259880480750995430203673859715526155540197518807144297915630990129172221188103851398279903073560894691117698303951184075775040213308160609179892537028350164717624628147437773154902721445528329644923563499254105864494110999110562700736524487505954980898481527218671952286536511522120311989325330053214013018003894764878443876409288919851633557170171928272460865466174024721027831927284672654298744850058398816901800998551965027378489172610864166482266600066707582272378920268719859881598843039396336410399204760700908458994314799089125032317036369944597380819983258430864593643705151526592728310052451675242700887890784557616022767929766660507622631176449267581111442221505168160035504990162481533913574977243402491045117777803468627958787905581721576391390510685765786315837535280179891394879589862175718685632237470995750542695528645282657094483632254121513013058347150246594451906069913344951690308745642556787736691442331271480350009057123861766003888373188985764848857243868810689896456653752621083605090369868681938109111335634096686146408177392989276533445220472590276188783002647514840972029843799088955367672257021711800207432259853150464016907810165916226482590650956745507096617042300754943792177639817260626118983214821691389628356063749420937501139561167485366147711553679887908141637384664037161355711932169474093330972633139297340879720145347273454840280912631971340338677540790541660072369327884852181641179932427570563848101298166623548621360465513296154373995728725408517480905771927495077027169958848059933564549759216604839071723801231719281631707817416167767341780918770531565573892772936697708144564734726608153617330237505399157090378442999675190910561214132408525540559332201910573117200271044784308919562149878987923858148498957915954239078228049912771208085422063772923887619127103107745970053570009757563665848978921176216293650177516800188636072675450842611425828687136143404268244796338292329739604130052229036554972640090821733375151239000555082522339329817468195171135933654046388769778671242808510914664496657081490870503018192203922325863418988904630524539379948906290796222775967847888185626655457763268581329766054595259122747815445426505769989782102302257080116993434476585806859138836503336869781113323543843219044727690720818320829184657325214020440576802556177031684307866928469849104490738354633133911346940485883240656598347039348992998698771842704547437047562908104816751252256812136146920277912117224003963548825044223375450235375280738934162574437667163445332885451007292147075660405929523844259248298581470522156765689784125989854094159016227981092419748509068250970320799304122791465514887388969886943080674700752938317522413530009746078956586512365245699519536738251237589296630817828843434548507463734369175037626648196493119556110613951497351448712053841081501062689265031367073251605360592963846025665155780736368273300255192963737057471129574815576207614676494506696613330512655518250389532744324964653354708345002493728860495307432344005669534462091342162185266231018645162472593859868503430508969092172337781525000038033549898559832519146850217563811593911171878601859377796387197560692657872984747428312015213237924110479257343601658745596358041913486912316983385276463991156004698542132511241860995622480543375487283338030513382170957873973199699432101382842352755128137682690151137913106077838359857437215625039855112501876302034765944271137302090496116279924079225378478027548489433123769599978747649621341429661453766001616755136429490350290558667490402570853071107527569437135212867909313045095776352970676642635027450953088999043795858612744011610010289324023754482524021599168613176567296314710993415293009096551921766626901207663083428663957250637878858849200292761276334322310309081697869647360385955270978135986371083366425466700911753077175642125819018884901351097762491626661964403813456445980732051173020977850403787336883800224512911794335819044417495969455211738985533426838321662070644900945053006701597206669933575820938510840744855501943276817122290063509287796388735944705933580833344214489004415242982776946130007177683289612494061783618680424803624149995884312856825363194090894786769036129027865983588763056191654967200279972096817538731733439303103408455149775985894602445404648577150803276294562721488479223347976425858753500186591254375138721803775119010079360470335105288101282791759039719397130791009455555124919113280648116745602239956515813529209634440114671416925101291328469555750119294382208225335331486432555472067858969912337906781461104930385328833866900687653812432267492032953690011335413905162595426980852745000042586913687388255271122292440547316450668853489225906945776167631778696681489416188730972172010992333137481072079768721002447995966979609985762473172585696951967502432955178751697664702593562145139388566063184303464399478761285407785046927034186930769905948876613128391110187415355848811925414992451731676630100097135242421131425458414878355976028858433007855014597365501482341840914471592936426320341135244512197492277740615992926203801000922168106078124944926239625270513924635602433235569436806190357136164946310125253482203465736077999548159141336116774815454834264445619372192654428002130443798383355527572479377102581980177999995616530125597684212899251890473277924996645561531634584213820735471969334847870869264925088641687888544925612101342687215108783929586863759277811697407140540341437985903422456334134953211588064004013825968000420049267094865769004892964962428078104259215194447617706684460206702861539170216541339261533105950046575896155173293161206344845773632288405948012140436752202879033695607044971795984685878494752075249727975229323426661353885333597854650303897770581415986840889117063481213573831956991405580204377068400852940982926638988024385675357118665125083445321982112589834690003980349961513310034826843314334855645324600989344320484915377280540631781757829300320331520674230834665373407232622540160200461388091673318829392331707703099807465768856378393606506553963442936989386351641957178570202338197320220463056335448125750785034769960115476755568887548448029270759966633928154030609718529250396939543267939649531150595465457104476719049333154151838196532744027230324605355815827237489835420755390088446376781417617443362071020189592577191688821703287507049445107077712366100677364685879471635296896572344604057875556338177531717296036644101146975643367359034583922446265473506513887823455484934608689552495221382958759418783025681139401990907744851040899574381757111013558690440791761599015328006129054131481442419677756849781348850489448806702601802515196801797483776928361249105572911988586438487593895840789414752716102274278144304601595869894692704062930344149382182347350569356800294794718296802353291510527130750498335394274330620371994355440428512766595692292202188785900536749426967122894704084441545767053180667320808449526676267768740831436104527934378235465083576649033632958529464020227942772519035642615133922542123090757879563451283335185738592933204412175444144702683218567343243610408316216419205194545649501908329957362571838740337181121168820590659730982496975780985318217008080425796374256200315569624718231952690975629601009264895410290140533608309865895413983991471213756547292597739362957180202260194756414415263051089828116257381109678103703592000468770634613487701203366798417673841207880307482704833358805016504854488221425535861572175371638324738861945324863925997806754336629879784904729237350272885212730003419296216489192119750700803396298519053217271852858650514698994780968873751790886029583891933610343201036962782583655562640723360205177445395417218663587232144517939962701278448893445820160517492281725081551900663911972233347191049460475349835548821454539389147381360137454340661191338184086970721744157772303401749899965067064734744059345866580730320956425745223498875071085714852916424034431477463843295789904450564921482038955496025731779934126572196219262896854995833656830678713743337641902337101843758905502570626161539699537739448677898390925831757737499804570171011926288994675957166901032890799328333688250382108706217210251866467564383056277325460860805113612776402648648468484095284071640181407267867243081564486327594352644382050828703853533298947157144458372116053883705204439577603278484436645707468281584840959784355599042235045631589134913691999686674229239338323477468062865973465953836154409013177494960263364064249064285422736487219194015162266581217971427280997295734372037962001141825143403746215813187894639614007823559197773475401905741733917272892535711551056144890569650112421571011942888547110743939296720864657417431867011811975235937072448330995689161811437799379772290869378971056191544422697584737407871875662390253165414354871957665391121324726861408549577219191953117906227943658529344189721687776117041298658976983479775757868573967537889959026155993779395608551551181847864095676330557984155412621294392611430110818179098445009872360138585771438466419940462398786403783817923198993703689465562693843795418857586315739795762918373014196935433783394479858105235345377552243214138330879868574904519139183197833732529260914403082523634530654170462292906566639506328443898969053774976261640160469646714686049893660429181926823439779060849696896333107281745931982373081112692906989342084047887169708006387633357648622504413317755262114731088167517964818855078699694225317360481647623976977841300846257651029905705004257344749073866587211927891154711932093033108005261139677547105638462727995797239126371443326600944258078601312544369685867588961080505501069787790811184876519105882122981173003250228837276836561991047205475684018392927170570916375374143823691630338925918529800708458895504103794589383041277143774405023329588620193659712005776259327903899462245872198821955431062609754859005635817258421331842099141496876212648764980814863701086759710748232371541578961209568641071032071676212702095679104978500248669217284665348328151627470073647043415238311526135720829161352507358890908136220405131840496129608482887790045006814063353987970126089678673104188483570541823446987897890630639620140830692467822027877713629770061972984908157933318001402865255896061633899326105979952906778580486770954945588289966793634075734154030873230382314610396096864845930623756816142401266119384279873719405189690590272196471918672396406082040807052493948936931224425841653576063181219198398649471608447964879598298017560292327815160625124934712519717572289438146390806195666593244793195472275591057353020100426198333470346988739936347200338521686020346627217346117557264058092550188334864732426366864650369201531424818141853878736781150067777399594525517076952238223392715825725042652561962832147343653394028484589800983144728287288621477383530426525949704214755732761408586659348644543955887730284413686064825777180596746807553203542669648527805494390249467202079824318135989445765305953816217361489267127007148563274086557762345252514609060334511465363908713879443826095409795287130044224635718879322431721432586754202953958825297280338309955608422184802781205568771203880215378053984545022966596870550988283468981502904594095168103259228119280005829796125089764715661605986999324795550026080663582677808322836782341121933949569328511208780484990685481424529952706230099474883067391691732332091742037287297959178393209281899406035843433713784342182780655199043492979837889621047614171182575195362565070370614274547121255853962299652016800297879752266458789470240962492122765997231430194917421674697114389112552042059859946028100151044501088189568082499466744108111434887221573448697673387964242856808917033633094741559962179668581380587120225845869857580187743686749513288905101575058052205973247413291934040204071691292276712146776726190076069032690310254718230032996511064243318255503036480735540729079279716624991119106114758268216541819995562253649249698410968064978735053575577958233015203096423992474946740986471486643262887902242745248622284328071980520337325841065732543840375979868587417174766169858944173714759950607278739377700741690647619546993039217685687297628764627553932511135657871961224893503972275042743031330207286920044004863960678011819509903521976041276579203155331840722390338929143782789745080629632952942837745047556442711819357556153668526346424398660954110910081248718618621579286544507816215495208867586882781917731736184246648317789581901528607167913927866820957955510027132484675114611386497451606175217661837262982896524188902576283690070648365583005377257537543894847721940617317790089392034559014593967688960484515173128160772020461111362297997391942791846746330143791964817855924749713768929423970162392395061391546178901287441906303415402026236637969125980043564222350518303902513310298077531690464824541529717150001147893652254665874877948435102115513596748210985154110404510231626304142332718617147299385581104588994942927075970170475646630644667486145864915691326838338380291349268719089207829183794181119454526717011276187442987387114827807877736334316200169711893754058193109120733099053950517918889825968796509962247354513324658983515062191189288491737448763641756346244504389062935579871340280830172672069772227189090035093186007207162463031261407584665510639190003429676252319250941914820488936315398288656122494820385524716050685483805804753800909525167270031948828424602496629719929059312855540644239122664382148996523870534443022911983233553299314547937037779731883685191273432240455333345926978327639000752772398611267146786829136441737617186081329691115104583572754524103816042081328742327207326343638383455268855172097289455997193176144032692281354869655103715246638947918308176799517011115371348494392548008111546151147381049424277584106923392707166940360224406845305002863402839619695034626538837374468121046977130316674151590081942244775710937959226236246297992396563772387855120117203564069720939958667380193127928813610720178799073113778131861481404071371131678463451846986166645619715080783221478362746019354203992063916263074018255591592666428173808466629721440651533048910672437809826281533602552991300466008627764975075330255077013757291137255077403521295776320893672168006427264867212050617555328347398630265499308553632827850616788117993528215329534672784085895295707401933392185726110287195694160299013002214067496252281204004942992461558830171535250922016603027838728487498914704245567837927219626058300348866111486000225978117717665948168317207035644195832295209414962873364186521580441348603687796486492822762906808759919267632535274975222753320973920325574093103880563940432105584432487630600484565631560288201130345898712303861660040626928161724001980040190101121561946508991134137254400053898634191460297868230514431332854904051790094057526293801243472467558916323027104297185523494632609380928429327871045599820878095475374025760806521013326944185166049350641189636295191537455224352153643008121781934287683677706964530011567924338811770846187755007278982159776904576118479720487705357313949732441422506099617191895831042728932035627799659941990252076372638517553277066883420118396614665057901921391811006882266679053377662398907859578392720362268553863066000960850515946132794650244084733524239641402177278563979998283199249613597312815516609788050720084984129042921393979185249229424896006571434188783109976714187589790946016954131334716110794146490148535006027599451688127465546606971538442783397101470970785034526842596431996686549411176727846383615198254267221359867708954817343075328114870642688781354997235516182446387591180589087211027119754388138691841531086623375402117812887084550770130549799289968392348224651248553288476690235054227187376510677443419673850974736071660406250240295200356720575902631895783137700858035481970075200909299804949395310401388242460015342461589426513575965271732678930590558200003822461766142336787576920270477148612416542461677866093466700490936109929072291602727188261310778530586627465866995568476799155333854651051111460550064897282690548099142033433450803869192769999919941510069582329033574568783982608782017014643659638844830566801900875834824509940755360887287607757798466766328639245732638767751248627359797040826874624375012980826629774565608304195066643043227454777334081574225521179566846840462063722502967460407533564784255054410133521171768719553233107771195709209134945713063463660110742369011388425839091864511581030275395183557999527560936686205702192787209003242867498384923115733449056366418235644028027090145604954489009157635420333341515845441073593519340201189320431768479496198040924885301371661968079660328461024430304105599084570700704598317754062798264734788977323097933914177132288680735061159369542113807318834584262389768785316809433848683669195792561941153647379833831197812449898895695071920158377644164684427215947610437462274896246597239764139027939796222554149812119153530351286812005333903222225630696932276422153434430967254290230854357847109829661218438164246685899158146645001077617647573328305010040816472740903639013566818185460577048864364510288513856056633884945471739843203000272117836345121982743713468040849656568797818194404657590619545065111963942643200802153277916153974063617369090079638434680601132797262037641937005892147921594247853518049604731474270863630809864471906885555541794600593778962596092265456075110196120872423015935586969968157674180831452115744815267170993342006782767458170986040917366104081524245074578248402939423119313139573352142074949114075095207793921627799765758967602619687176014549925702246702134125341565214547869733379554280890473839580318840403343536973275164800309815416381589031183230337545299398053504424186270249053366256309373838527129804136280479146227115278235057364463285092759773663565455980999352332336596424762154777631114935448012259939689967922819711424312530437441897892271910942030599089893737251559070542736182380136039658261970262752308440477839229897133342520038162860397756173230520104069519725927072651823366372273600169950386571041367172028478492917051596531005549201600888816792381887677846983383952268804931015345214666914889966830260287955680359217134164723236308793071806698545379910712787980252462778140612177612096204446814170430907448635208036336031829618207272386784505902612786595411039363098314385823502514801550766770396788650819685056990200230421667876026406847183918375008016058602792616485503201221550840555059321728577558409010882885861192708579036407456091447934501219852847976948710741558191150893284073104291039248542217712919108957579176207692710277891272988739075184810327103380034150788779157283499546196519867622342845360440797195099888071637638800708024927845223853111398459979100112877896227175993671502807412566387357724250305324498750081960757999461040443555111948496524079040429153743140775634698501770732686574552571113618848890801822729064528355483109119743500020757122669382903614832607279978828969220675426884074316614260594006441951909868630213408540871038071763335555996827871635545090622641946430307509091809689637478534776315952261936093742696096327545911592081353055374923774578312040007844670557572164495261027773129851984991529142449733854821368313346520519704149231044689952107361850783623394154269492346641796126487324894436343342242005983779446992126704275104813672498868752493538943664789890985805118824452282798415847196885817354391483393337001836114635564359926739388158132687255496238930478515843135366823577301888269060435932643518166283307849433061968039968698792651174598028022308259749447136574747776784670580075163872443059672963404041152417802618106753590258195877650753873648521254861085743591471314704253010754137391130933614545206609917106393545051009166017544391725300278915786200901894227424897847002528515082610515712338893242476006859939547506039369741560775649165058683901302008169019638687079969980767225584615396886011345564316868726903813390469794946645491337854351740901450812941590302168494895005273778918424658169761268484147553212033712472846854363645911566155010429606850795934753735800534318367292869368271694921899413173568223203053863337353462004709717604757444386724800185856683822134655373634953915004626504354396936927836103362556590274950725655817814609289143157596174162059954476854951087668586280345062649349419011057338616197695490404723197056890162821228696555812978305131308594737481355020387047918871877177195583812507842435154018488754261129426952675777948911899193171586219776940164624052055829168721421212495535513055366476437739980678503683302265643281126631250454880769206255458110058842149957232013176891494955336208863372066125509062600027542638872045176893990993888500383201057247263794591356782280824860001718390492971087388589828430370501910647938939274716821530632908082159040207640218303271507555563705010516382397358536374392557819949243442236434614602562182958206224128900247229084870036665525896324326574707967480478007069839402134565927160452762610913211855619085135447145518696822359419306865615685574202634694559653189624137697092021186002448438738574025301306859940414061425625516654488629995820794039042189310804429884033714681342110639243441625319523552154781170519204727790235070413860928491249719121971066093364193864111413315652322010639778391112376948752856529681806734539992983938464622415147991826356639041886587237379219152913299243831696550372223628448806039898866671633827836675215199393393325154705140952160145424539878360965065474314685718291407293935244689998327857957138073968987099116996070056741907636744979702648638516767384760838986989015744958456149301166669996596772536572562653592140012730724667770001127494652193900697904975563771354999666296771619879206553090606268827830663410614710233410574924685002495772408106990298907500311579081082404704897905672955321184228316863908701908070924683108708306498315318552361784570989452473404190515927204768173474872067270330602140472712478738735469222960853549658604795100222422125045888382486558457111068515062163804062208554596112489550540303673702910140794731044186600921228250341941199621277297147867153864192493957268108884098861891866408863308329350469885917152415162540397529072951365279159752950617421576117260663945811574861975181090526817349391349960422297537260137854552794647524011889526140593651178468806615010531212494275872755233259472182873028558865566708839888609262053841094438932703020024130764104619513084531559212390963792182920040343777057418159974161165317301799975562213612978748862763717295513777085083474740203266499588976735067404104016681913950004938188708862926331972103596406025673740265127932267773507118979022450466833229956569653329461321913093562704571157348500805722411082643464647719778212243028436012921097943575614586194180989482876406873000309256437560490798643375961389636617593391284629826002440081928955028528779322011041771057572307048894901958406963839482099096077333207543199807439346791932696712167208593010866060825105850860164550592793852328221380326958594362801804757841855790589730195061258392429953600456208630307777863261377174549084148504343855434573875215671780692640766590433792661641325076215011766454307641559801741218888256561240621023087429201259123704615155877648072918851846983295694148823974021259771662524741547824561816472826054192348875525133931141713292613385011348727212740520463997726538788448754244980303684858695205077744513349372626209296663472236173368308700032327115726460924433436588686399105734294516993034266683474384760677972412370172396638126023116464688635804733803204938754126639974392796912295038113100237828537933019155822620781488427742200900672280279578455444208731595252957780907878373957771684258266206376364481121321138359556061787983600538455379031641791662547169237411955080396775337059809773634198604154146008254271174323087637074961026101032902552974346741199694213494833320106334505464631351503322132795408793832634337990133470580995507455303261833375315159068449285308083557508334688936023254414675973540917671658449593919401057700429017112479143580328314893786550690444269152919928351232350845437992469152505890604630199423757790964532793438937333160411328951657700701731704223079784406417140330849022354159407611060011663449543742364805793150965915703504001842639328237232925104442160046252277625224885637466208179797468308452423038732215947565202301212688068174890467975377659818629539733132352557867304419016417666468488554860388592550397790846183462397561507301072695634732483426703327161310233124678849105032396428570024808197543721292919460789387299493585666457429065670538478632918713075218699185170971883600389215712158461039303902239701092396874795224410849304137260479612239669977497135471654291087827705536786487309123404704469325205926765599385440536994356256358741500166439730987855722352318819731876726180773846800873016705852795327959859254355969123145893878006586868389405132974990951473670919163210466593187529920164924937053176146666162062819835006767363018998698638266502484682234771536804630830121183572090849148801817402794666829743580744103193802885154740025059362574491186101740473036324163021662037461293089992582770902100019427958101622393522316954372872833201412698955530225836319522540002080079742944142545021250684943733468800209693680101551622301464899733075844475751331519087064799965732245976279369121476730532018181323777243028803459034574517712322332281396117135205146325626403470076701326943945165043053733265379897129645804152130622765489915342253428546240056765144401531283098789163403857757085285045240201223690733886962085187350263559808989862324217694590279294232743046116995964244573322142808271393180012498970930522025228206255008741470666687094513481452022850749537303460265298739271880913306806976273197426155223327331673042284267757438245283619552745861474964141539810309391003976548228847009967293079462321564297468116214335715047445567602310376419608327625165716418356276828609324255753078368645572907535140379830941156780584298822142865723963985004971654986202553855642224352989580412676781819030574872567785378450488164567826726207416589870547748633104907786420348423410246086801918845128554641385438320536817746098116462625125500353496873633478045092724906803647590632723202370040846176235785282858189985094694172386223199871974250802832934511211737262180204148663764401497370975858377273180053056706091812939017243707483711585343918513984815755283668656135003252672840306275193210620710099328323769082927010803386623525927331668872637233175678105428517000785167440766665816974074376382618786327292741194502441010661916307099093919393512352330004413423764234695043686612792368525458624872639299819430416984156925237634321268852427473626835074984042394075444043471224410459027736026672725895057866897241746196924391029283249494910580293504961495158517921187288526778917716116762417088543191449285199593575297391679114784312271772892164889356482400048766779644608762507839762172934168033640722649135386723083894085511929236703916292623786484131473388474465727954646172444183367809348756538237970785634186482714832608682941807609402455741930165027202212368964584971090480487443890770487193928606488817884574101547415062803511551464148948876397675540983172236862051245799303489789015495436457253015551188174086849309352240904929936404305245826021134512584951185274108494487493634033797859671984276978475636937793706539184703624097361222394287123792811924799373654792188111108130235053415646317161976148803082444158645624122599378816361294599198053528782966933264875685286671500103719936544382310306615563270461846609813558686027651713174857534054686886159213981573406326146743837074992789296651049784828473409039377758416837195189668205777398905537394555829424137243508925406138567873173499908496205612540430889565127288483740230257670529763948569013543902077469681369728633218915278898011182390425328670151361222613143318720297786952429910664934284900390351862592256683488212850718110994974021035731822393131084193646810601484501210964680428377086416506767339870656540123222509700512113366177662191191806424231670252471896963518807543701041996666410624449631874963763612385536404076486466370990830213613523593760808975950963262739516142889912765681112209739094271642580327728987134678242389330923548806460121934632194069948700489978525325112744908117021183736353509267002905028711718215669861915114442257349294190958024002772185772533854368575686724522288115014456526547190832385603122714999634973551301892644405438588447309087692896880662410175874552455423760203715213082576776458437976568433452722133949282565927268987812024324911412613395255283482151290586033558797955542993425714304875276852483884526988361537301633182168562589292537149609373987406675224190295472069943906602777776704833134423463246157418254968717291941189925122286115574013700602745885297700727436813592779159300640224118148059172940292398884300419594572307173603792813037225087663159799357263786554708262729785720683323770951081927409881027984008467721099187189409154186670524058494393565254692973118123060626926254871947619358862571036359287846794697011500874522237954072756823579547316487249356302895679334887002741227780016682799047697413815708673216589852676740301104231019820251799829261923164725504450121757109103342819796001389385052654349508564130976512085219998198916582616281302161674019102991950893746226774035121669278027117970402011193134485999290635005847919854438195628196989705084725892095827254537631205760218849628649623902781205235395474478764341280599794664748147461291404040944969517746464930611583022684095618219659112681859551488320240173397686590859787073746662635940409046231760074273059356213725596238353684951452113903191882609831168453635549764803085309505473418106850478268986691958061592452699132345858917398037996283545912666371168384082597467623801343760467522677467558060642749883751153658245779750206318608355024981190165491617701915649509352216035264454192104849852137843146291963072950405099346233541746081893542922944956153006974570928613040895490168561025938384028638026921497539825180092915352996739944604689501147314609315459114703592453846536759576537978927843333318365143574356938037467939083755106923772691634982289309628966871932022730123666144107714448503566134576617643518140329749604335713505831245706686579617969770372813677243884554418379703531201256200888729324005831108724081610825396039409394569250966118300059155203549750434591386870704818982167997407724276424344742201510331161222336811020445510520044653379247379931473549108661854006583363154724135630424057438143912242155101500884351663787040570608042681801169666590106936986765801560046773803142937951406602965520990446387291021102843002752548386521924650546771148621834900761779886827013552647157651818766947602928251700631807049811742633585295280283537212984643741522104711811426463917435241286947382034722741986817872486133982555590910797485573873496848833949045331627179974004512331943344368338906864756677116168997073703535630449344072073412263989930176068729564534314018369427864899765175465393859349000087801119311590634130084865040059544870167289903982731579113804644737944837737740437181938544920422377965895402364933086656836905046616306793326228080522325652711713411652469935230136239726804884562401796148286130694926331293239278708185176200328917322367004464169853248407112784276663858066816124397823527703913833838225835317676083902177752101568300037862246204293009163251692460572265850737285604193052696956907163668838832337775179088676946493033561127501391814731916429396719262790113654858352238394954066899425219508081982525402717468521730784279951575018575920747162433147535922481043400364604287874268108036157220829829115487486082515738353203537680728052364872490231224973304303391120675427259432796338186573034571953177254488589998618062441181640173102433000595801621354098128633765014947141684251394437767392634789627213431126949997947669482234830519315627997534718775744734541070309328342634192822210779985598505964536786346463137814388473776172177748839108570714886814862839835393913842058891134533763553617728008815457722110485465631970484164824715680132881669871982147515985741792535911968097217517382164833969085060176330403911853823129715088529543684944408864438468034076530410476467437604453649695425060279937721701498886345133762658950564338830533165898115636891517280122090510039043351500909756227876891601573225473869184853480205196792098711427281772296659837047722710562624181660378676706094496773950800870300386612505743421000244786381153805348753110771369147042836430980138211197236856300662721634294338024107919413570594765648458998384121992454260861134434930394022197045815490065416977442692543917982804380897011270820522975929942873326170685656117279042601382252823047095536036957087428265838893338177025669541652756937042684202406648667452537600354490681783772999500680244662112396052195592574486339112520834989529269824886732250809526527673917998500051948922018678649181577604085417455004968565692860363684623862118207147264895394948270065340290358271017304030725624652390480654432642033829448722208273323819505411544614775983492311173498944533532448900215373418615606685786504774243751381426207592328198852850379010954663284006429801876229943466922740412936238431795679558496612829624981526202769775314100298134694094900169802107599203212585071936130851158227354185306190152213461826493325382031553657222788085709919972191347693133578007816654256862178565065018720313967707017246697229550638631026484589974180935336357094102020222415679682723543711501340370252385824211637638583138726573158360086447842892092393869574884472147851527126479481324605962208558403383493099991101464876830458660894016256867242192384711085217700480996130232280318703858278203897361633885997668673938736735976308081540817377133348932310303715120039108121555948414238274650956423278583033488958190457283691333842096577307768113592531636219412942973994945417923672470541915827244867358577666349085359130285398965175671232424314730562719563766299487742110349069530391342387198038336280151494622913816971402402601379172404658700715632713065364083637521375526311232405707098780198066155219546770223892397068390922952275586792608293720912245285463199733957500214404791277540119819804066819261448914513835511131184964176866621619511450890582546284979005674800929100763463123877537880456149827037262071030967112683124013487212547691547068535376767507272938068251672695892122062150689178642652317441139586517677468071121867230839801529311549878277478064034854516333006777107685374356487380487938993770592320053423315303820394878896386736113008313823628962923563830048948922293630940002286394323386922593719172353720137980337430619130545456638256388669894139427324203968111675803567315000041144306889079818166728530048321991711194326660834702253043053234113901773063689697474485912942293007209502335538909433657657870585088532948719238672822215324685560766054136675216748395928964398600962612245294637778896432564735355987960064555634980574038465994914239564400118609037527860004859285446514006626018031966402082677872846625677674063273094024198089362887909473448615115341730345763141976879329881621249398686205794537094888061529224405034987904725037780726891558584935779647619612481652108316688840603977428667485542413702262152808080333350623370029689199504550346076158417031228184829553518546939972875794158323204251051599080641254954778401881329329113875366094901864230989967701230240294102423230891187441287472979336810114660815829133587975785278512581384705878162656975181194442373714427197975052648714889200273621161163690243368671377172420572343951107992068876019805387413013796813923406651508792266886134563037076189075043559070266357553898624043775945957853993428731079899351220855812577222088645948774216621219162447462948921264332181024866464919503994920412217189060204193197743290295823632424346406026172798459112706548893705047419153541002513778249082235003861343640149225392870125883467107430060563341028885807084908698230426476231240150650345506519555693062043184262772043286297084618032524757826123536597594361488153826854619876641188843993146526462748452771816646331047146057250830574054205079466727037217253805187438859659619520287536152005201863606574781480920052382694263420704214728382064756104556407144630351839874462798479151673471483315983629930920515056083882722127980501738294042885354682576175705735478322301027860723255624352673601764020051303941736357613348878954569523961063288852617361484843584739463856693176691800089653810651126798129606725134705171496936619986015865720516600887209525282989428378929522241845375855822924936856364866802309219148971060546837005342137010457829417689618174171960252536523201031840587127136014865290343722824299656696214745322103916233617909191740756348044923042393976728275406798903041875529052885812044667296450702766212563324034223015923182714165611550090124695326777778172244568193471568114433404522940955965563161259685843603189863437065644220264598383621769960868404619154898976228982955445577182093898357730852116030192867832442297538935970484376307138828397920160975403971028963122337540482433960334856461053167310481776452235871217615697840990268849331373043091211850618189285667592192646991322885373020995703205103459293289754192120899022312945396150333802368276142562529496184422929522395097129185814794088948012858782621817778258679794968232398452493886868447841890083572239858245745179441015982673082904289815919183200199031371642874098748272367623198770548815988489986616303705158272682169113538715563931693230756722459433632796997187816670993888091220245501512864966467550182953067334604795284841555289358357902310204604790640534540519017964230960615636389984417510351831525735579843672903206574983103453429603470046596989350128248101222347131529004835291759393718481274086672213247748450343619816426398070416665664011316541247388685659870262654342442664741548213854797301180942527692280003405058677787064991628963653856302631938557374953166795918406581034995163158760598241987695765766819799119098784574068326814621878617829342617295337939268850334892140253403218839176684773550940510049104865436648950369858006041380266062323528652112387625695973650891774887811774822064372365867694240212414181299659606540656403834780897224536610553094513943124582677946973437145840318795826246140820773252731630818553781660238725554689602527674190876092086010376283997382836446443956213736732008777125810140300584953041412066813638227291547266497868445927619524235905274290998957700629165520761490247935675108402072367160978923239423826892587342028050313826951376878036866266662286808985808446481407282327503019357625443917352524164841382218605426503227187022634599864370172725658534978105988579722053630556067101362947243032008414262817684064915990171104499173425078696877735646595838064827021382488117248953251462115892152760848830511591073000762078917672457570010441356083872660744988387228431558630726531798310099425037341578474256386242170028533390102575107515498152498759151927589788649134553962363217172796814731404386774198934752840310354376050810568334359827066161839250381436738987896230031164731379928316729832959452443553127039042922127285990434515146196487669456873835939445212037941480840163766569880956770517845575030844633212037442880432747454503132402923986379947220279519454976892312185276033904524670100179841484531751183400877277818497786907423069993849170294628170226570665728635253227304126176369790347818060286955723931675267591325146872355550365321548212936779849695283765763064485093168153469010140654998464377425751806464626122906716639578846576129297064645882725363552169934874601506614770574959779648255293617515844837645718427387850659249448103448641243553391639114807987644505887309493698002319782445551911051822747448005070499917693253106935042893859720950724475278293524960927839778444849060356786124231160966807691494086068970765263674395037235064815133371924631002066855370997536143163107187196228111785276862871060030937437499440693555831551753082892966513660846076211260845387236489398156219125527485033965151926135566875207163817727547378842555008171685405393318516770175204221803899219715188109042651691403069619744874453738669470926414159621151484905514762128621918115631045891788273746566462576712549185911056458843306834626873417477660804956501943235393151618065192025419650907985557424989035491426740422480660527525690916820971665081990106404691869712366202573350355035241600970973036264840479077970445255541119847137131507320006234153274950779773475534398881317106912721885370330403088412523645234070637639518980452714688913030499485334512037404266367115269671206939866334756460310041649170523973813435877254302019522062840442795793256163245793144245012995664768975990160589712056797365229313734204269783764308849200914623246952916857323471581365859316347175344683768866523725714516475789167621385409968674254417936919653799083419022333506176653044693428156867940876585886928520738953298222627069733705992229894227663853266390895480043261415210729240192092499911719017117258738308366934173916500868101270478682349851030714184091354394496224305627322932848793285932436232415373547825144423108130832021367047615956018414757136017890322477230467049019915878141607461048926416333523242191419870520150909413335613921472439789272347277268698894664153243374584053790038305843066871057693660338976403077822852767175720549142363780502682799396878651117188800698641302080065625484862296305689968950823230956555445363744257868176275374228063673224922048563900702524626390541115348327369685570709292490832358718033423098951446833337285652600835619996099064701654869077048165440372991731767036799523401844983230540690953062678903427513194598291790068639152974202336590187860409766148707475961696320590365233366908726832720271736530231735019728388449969036597614432760679024249874822208365414794126086156325977724205292718742904894448726493611395680789785760618111560218951598631950098218235822077383285913523320802898374256812329266769954416409254534275523437163783917395086772551949161179240351908066266787792226233293229739638501093209565152645174057330509368328996400328623199266702734060739751518750485226953534545264701386336006969192533709243913939749942275390233590816489967304306975539139116727560041677265866845935261439888317266350404542772759639407610550873836414649908738613259972996323547455289118211065513433312860238292100120243350358164865305958598033458975821890876136665030902753320384180414137532337546394562545661904860152633648996389624439386539539551548117664574521916446747620710336194224833044294074277609910135324410615367312028247138084386419701132448463478205722025489447572853912918903133223087606040503996140409927637666476814668098785702553473093594526838216918385801968459646973690260886777082761700440472366596226790904297329083551096188829555529521685022921792556711921685556090482431499335528684622828496811640457841204958866149653259085010209594326009200619704053265049846232517453164853520477604835391887641532506882469421665940196285279205575213350725398796802994903663191093596066663286725520401091934251871182132060419780343121705826070791382440403085068788930241859279060683230799200050648381326431641211195312037664392213939977886211102295550467680448327702190208487409695950995288926453693115711507788977415612695284461736460326081300579817169077415645630361722444821388472182288643672346192729858728195692461982705717442111998313333976867275209290930021918955529862729164487419237935115042066501241548576432897717002461078580345166371284155723467727491675332298033254870842328822454078161802728906454181368097682115718058945988787999700671359181821795615165544698411203734645974773707418011433898320897633869706799861776533928461464436334851611802132535289883961396705679241402676666236266983581455639708544196068857669703951031305428623735184155724453371922036615523669000130093328829113888869441498705105053128197767004504397274083534724097600672359286388802836620739135601367695418832337123524536928639042203691688711765334864168294099231683223890869391789057984693666302874442465087290142817460097911351587277714810178000328690284335119984448628033489873849702345744498079407131635701148411374876158481387673257118833991997225549876014137812668292597693374196940078913639934648460984152674520331747721823849850775107693730556986534644857598296721023150868940325230546885139327839094696906619968835058707414420718044052287161764375735178221777567365326795823625195185608341101949394100309136909724129562064464270627570856949213802719622965127811303726871555725013152612022198527753562955821381758471093841957179091330375283064504881541200235099512344437249812475361110153938327007795408118753339877402409999769756653585303071605970124347293756621269445338260626159297489533546953803636471264863932151985519664028309431162589472380420400444155583481874109770336468040755574287475524504568097716682055823223344788696930335600949689982761873265157532482080454062727916033059771248198538041335469327110879977060752851412283054010456883510430179200573898551973721677526000656047591403976730900056889760063983961592807614175476805302790946037903633449422072820114524615498466041928899294513100314307274618343542835354080597272386741903966291273551803660451850733165761644148000980568480908958751412325949059223476179121346450953788146292000357587931333282834803008263860685293353197466830632805353727801219838689633248215697848172407004003418739000373435216239705738869968183729048515555725830987518814998823396106582766719486053819601355352481542760685355448103192444961518107379835339800420552060276252056207510288119724633671687499518410098052461444513831214646882633727608063444047450762867290154342668463446161484766043604205772576420138682180066571301213135481926758884337111462476592824320773758859681560648141606069315116868515902162498421242061932960303712872877658206929878254164692853483307879058041912004575089720143060816491144904917157444529319944969040832233808929492806948003709877464997777601577232501133097673282154379169391659895914776622945778298852716072570686889192272497508237821123301560595304885566061634606847963333309227680281240989972479866737625231125584412541984245465323349793722454508839489913344809726165264483939753233476310469328522526079670708145746190036856817205256828787267065386556836028954775233149709288676302253959412476432681793178637326445993978105752985917337124014220339925840159409514986685261909510617753627880119033032345777691822788986666741619278303310062830005738315840333605196182886365239750749640562787903802890872287153298982845920167649737556360544917898650812268960679049708236392618770124694572072128803904675277537699179754401898146983165053641019224846989434536269042489930893435013935138923874785193533696737165832914056920978025326639800697725143898068476486719695402784318645368300561859588593601163759362991690342282665897784670633700183810374696093425845731019054322374289438634775447756567991106743698162114452913336602542227706727962387366582192708150163563024656602794973846612775592711790911508589804229140062176148151992776777181716381322527090733721151184728582389581498655281792129775111080349876882790788477758280025181690282574717488253752464221211420701753442238131772720596916171193056663878226788063856945492020997913809399555836621149385620288512703141580875971125350494458482846292304004086979285967931263046817337470474347425212771173843292871135947631588181193288290627903761704482502594991302247226233336751537270047349315798998817731358768021019673715131469816957667752916179898014477465541425584349386495395653713655711876550449081068108338407998600414247169937245650856064075907028548499779343658776038502170983904551102093335487491625905171346130444583317701311758923009650272386782817272893881040550042116661795799763675884493984574416478318480889169334269049021386031778728915699129717691750274334191858390912298561410316702734851964096557067791675852665976533005212991537343367480717477380656453050843883470342860499995346548659800468183091949539816987136053766491705511331294747512713740770599520853671245108761597035233443276377639832966574259094216864310958107760291170318931825280217889858851254123645165486423422475828184689147884261916266247986929026508877361627334604072353477484534020681991064290976712452559889314209708489969376598383412084699467575083061187914358143866119312710992854638140080797962596642819234497513408787694193530430684444383849055739968779879702363586513964760564160004821573375597110548351745154218763844644109484347309954211425711352692344468382005516235784943024403576305512550223704257840865148473895928799248070780676048974961597435186912339341970036758461717564969479421336460427225074110046821549431005114571201501935708689007664599189367258208590555073135083599320815452541960054867811314026633364586446045181682249075298937006035432733506808982442253091028974754464334338843767091328775925475597612536313946434411997464150126924707251482587128702874210182856525447045768948017588123993419146857196134919201847728917838407975551512483958917049106200804450277122358000405758385591455145855768540733090040535251836200010704534399896857778757372103698576764655457461604972938562644031976900311048568107344739236522238009949736917010534516869448879057664818359407065011401659916377283576442884873802152451338600272162067046529214117471526616332678373652182032920920553017390501051016236516496045979016389793457173073496802331767668787446512087140877092043136679137003470628970180116058480428302208608804226122885367679791984450151065067780392387944216921613521171676672201432615445335700537812962777997960515886716555606431480910970778806273361763101588124814255870367023106486468060539417614264327370965716209201709455695860837026560316878510545227234945712281917808728985397601677467852324634811579578153230842179901146883467674891999958469929696915424975810971213636657238351619323111685104964692740122214880613163740620733141768716425246530607783673825649444711540000614360736921472217703264973291405437362272399655161763865004360101981235941852708099470225287236540814146974176270842193750074230137537723339821829453644270447951233313583957433582266696198289457062283545861408425653228208350627230225865416468767756218560696441455588250398774935606733751385206588213445933810413231038589575108992117415736206028003502733013202247796188889774617280904588197182662913215171354841289407606871780945548916000347349094073241538958372537871690992989572115639218536300914306590262382388335371339919504101152182569001430110121828471428062386174626036609765292481872400217919454059983182288711366974033216440050090139814040541821414722862288886378316093776905685603848755652726231231742152241528185532702752223305729989423416501052003861897578392126544627962163360528804103977471119534448763776936703894236147694309130027800877837583008815294348612134234437024770719021032200814723296904080278013861343343324739422076669356663749388294981261095760158492225301192782475558404546733081733227928670082839412608262700223681746343199379373574963507128459366579815274048263680973459304878174532940119750101324244771155757972775803307915314276972412210829706851283274848857726140292989766563975560849326876034497386556061859165695113783313708214760860769970752365094931755330911324719179057612687040144062748528728017236983922817182981436116379126362738755839954794830094235322465887236569600559473752164678109864844373473196839679211771930062359474888038272805504847551189535956457951780716363551213834422924973685875929016985601115117505585185307076769104450531337009279559981860992348998351812692868785580001393143148076005487138618965429587841441281952177261289061685215690093263067049347840686462816723734202017562802591103119494330148144730569494599031664211505420803827965005508677852574493450327156491451999921149242002878909406262714996382563276324984490901038280247172782982235161816201826686713366452316605671536434189055011228847117207495416616604777621274975239191531403582429609861739593042163241815878379637359672951821044220585535617248990839653492533989138932785446041118096745748457918151948186484007080769495087818700169092049021738671147445022047071369336916730314650231445992395438593185618587800751564584787374574336992245936415694154071234567838070750155812361668170638304173400919072800564621393601562827769109936452786175471787891685510015335785060631499207180881463766541048742267141395704756480919954732811126507693365027598901768034934852342109808499851982739250317683568699091491776440116283728114222665916986028177131020838079341020633322987605724226336716697019450133392419462260915080615186155658371497486906158593517328045107784995188959748827391408274744831657595768215176196890860535445368296041025841789647691193459865349374797041153972567206159786207925059717330663091849972004780792398658112348991581399134175695333685486720906408157270442524110293177714780576944454780632822094698613423882235306290559535166225069612664453108242426777764497782642294742823081201889495563308766944785334123824937357029818490119105669338524258494092979642322846520942933180228953128659225047435116927405427726272200795465521294340707756597781405044423225609816886626669624222605391043097915507117531431515000980518728992669579126272621147829465658570601219819866506434068872834891969033979633593311905624092580784362212661193687597467553123156983831613410515302350172002241687204522941533499924405556375483873472063256273508495372283132706177297820390601208601886641411465796280490917900991513764085665284504317322500529990759133313420174875192281967764348748732332543086654426144871974880891562411914355845004393875424248166430381023727539471938947404053045089513773547012040875391929453119302733732276156859843641762510567831660356143472166629957187485277475060008938404925455124921869995543576063187653569875885550907486719183684783655558005654877818084356182944944588917552939072924044400800155453141125197833822137464760126423806282098481812036928657471891423095998982771409791681644098008188026025414425170232213911648135972937366635393073949561496320571455935147273759452974590726396255926634480887835657037165818295889333606113054121923465724505021702697603463337526322272906639668645455136049006070549400528540391253007698273989976422851898609695639549328574247473941014444330882985418957490949533004948165195232642775439717686135936331933559435512594092087409579599696614317995927280287981718771303879520946818901168182117653072952564816245607933107210929940109770574267062080174754225256527428013859424815732678147717592201475551070313260722543893340331995422231516147689392696885472939966731430123242724125761551084563687909147104647320779665678820976794220432270005850443121059494376747646447955620927002702223613791285145337742373886815028847388329229809075955092810213050854535077972707770173035504621686333534467684291578971935327582989567485228916480126679224456314543413659040316421007735032522869649104540342398035813470592204128317209355359187141624802133605195514264629446851305707950154250383690394737290999496136002299209643808768191436416711243786529428148115440367089166354176369955000289152193161533715793363414412438294919052042705141911301793783866345618889080075983156572372463604800471885970705908439291554344461021787329508541114504598883330951036907179993706929886217837845699855971349457515500998639295210191915617767067779065890094252212123590268474462749347802702485708665413369666232477279844837104463333963314413253831234467958447850151687915074401936989788578208760335547164289979164801802858192571557233373714006806935845368502299455592248130817059893969480210722781178339786153747902635975808331323124400224774624862729918468697501524130510154499568164279324048174789025604178061145880630692587457494384467492542641154791096458141922315994860939123014511765335261714927870067367592199592836099790610868023100503662112825038211734180141452302465116898671344502495849079441690106064323404866522173768386177717559603291719899419729617922787748110790756942659952406016284267766179481971598014246655033015570695663910285031411797437360170633385039288904282380160882974481579065347644696681134420020750413365325141246352668120984634776472211774773965996760319991878865620955343321696389946096699578778905119723090676810392358561124989991185805605931059912022199571696547615413494171467885301886554069612709609628464935367465544143192082662360675257314847199565817176489078091721610128074143828162371037556831931871566751937069452231794337616906111718644995588233293029604084359475885711174440458389973402832291888666817751129019899651249328909075942592148899969837850619380655907520431016005652922460503304312212835973790313986222615955637735772601266552391775428659368815492088550560740724490733680378001774291499227291900002531579037360968014922484792384491861823960435402361262558094709981425094578205693955318310017823836451940127883681695877972504945963189809618130323852731428906883999546927510517313266304288885719009169819648464611080391867761368313263253141345908669905260419576095852553600529885987899547137467845880117144530091838553883591621046754579345029464227610241097998782622739089457589205676012676262908608883994864036815834133200452939559061607996482345267559218700572184888888231841695448827394619524694968687767428725190294802863449664226974300563626965818796402226245210454343216018261573255696622924041110547410746746324661791305716394292639025529901736704567173952014970332954113685608153105253446501725275924113734770867717209868308589584650378142836379537716830423622778561479464118242409397860282462876765753128900927664850759374691578595511689437522685360517859773783881447293433894271837387934058971544535142959353091533114152089380424167579151594415412098639598108867864403331078736528498602623778699703884549459065519516136128374700211645463660543340144194377272250850190600597055295723344062072322379518007596928257609280371101341657860090531901038566078458028321050833984669922271277974721022095420675239038611527469530400340882735968428053616038600312914612797818795530598166934101076004090538185088838798095053806114827233238115066744780518648999913515040974238570532661839585257385643330170229954275128723668902685829303352118720295198810255258856276879296581755483974975292578354099116132583765038050044656134838856664210534767749163448442551650991099544606246778318263064240670481090482139486946985921111152501679603508884743355580333124843487157937184052143077266117403448935745913314297501476516432072829579880727728595115547710831680100822420690396391141860041980215465952195444749676555963511677739173353611452207510791926630744956104743913335630621283782544572280586291228908413359702114834693511473192862090291477715588544087388604679164197155794304659366824488696309486379207105586439805681486455175484197371470322069614742035311808023591871430236539701609123014049434280567775049954402986117409863337167928174836798840531279075551802888073101133102979975275257536310027463274573502563418533410976769687841899867244275252723811272962977311538735235167453106552272676037077714448058960255306282558796854030161895317346813048677804199915117795768093784637664366475051404253109602469931241495277035611272403571040093301952791287801188366153381716388952623703139118739498712248998744800225785132298754105156694024275161528779071035400689783930207653775382320480850961666518609454340507452678676197087899061685248208720264141760182593438228163436988850032447718251608549794728740181742440609395433660495690376891475137836917785929528791013097568728765578648861985309446142589825241011922516382836627216110046830978634189923757362474933513039950912717805313417188941435081348427053447976302261997585625895139796395792058830015818108000521272513309853230995700713063286104204134161865263446110155341502836132304890014851167841631736370087756473352475696879691261652339495496390093705102829595740653108459833751559120184739176473017787345437472846968272281470365366326360663159016057072594287655970421179853783452375670372984616595729977630650215741615147909564041615980182888074149348918338003868646775614139954955551976020204325722845031524544469582624240658036301291510794956122208757701186383133424205062975050685177229009632682509826002553614756031762529740601023061908697958723810364280270383185871785484525373309461958456899307213398507775477394651437200221492441458232768946937051745718294552008690057823565579122078370424257503153390068316908890658440866802552781660845063139010333776633758312591126150198228431525530885353356067237961460876747877388045442730417263206427912351832382375098933444422653375974815665339472821377051203458061892601323384602360698873078844967681245760256378340922853284679081494831313525793352275900760182453333137963608072344878474611578128965534514387734726391029008816126366134433315228979538568717853577694478941161151381230007916502952358164724079308770446387841484557371765468040252605189962362322723700497361426320711140672306195564466226815236494983325413039929925263509204076044658345300235104278589065624555973613477048046673189808176505867551125343136613040064336233979900627945718592425174103264800158769625903068814116411926217177933756619612213612137132229727914781933625258292063469709349524571636017636271800711176154032699250081874860874115930973450179081076087058385114184306886078782423071438465724581886185404027971291124156890068145098081160786230200345060317804606147874268268736397903525376977850060517389924236748075235639260005393133989708274081633695987204237719262920059718788806041489396927686920605275796071168702021682431408175261289246803427326367203062834387559442135524162075349430780469935040237156504344185296881240076143102568404418142342898208366773732363271749308542846323332234532004182055569603168284338830357390729327998926589957799211126512019305478092110447084124760364959402603249376996552493362015390355926726464635382600032862144203587463403193452935007226392948067455693688322341290417991677539395261575365655249170288604998245312920463460316667518861489091640653967567159050581892012576737698166447938400179742266878760151765124359906273924633649830286834505761828972620071408764612224412220599490564197342533410331207503356748934128074226142265647991633896676781196057929072342816968239986818471586552368620042428676895297218257637061776799348317380542005434744188131470540374323800593657989403169912362610807514587786339975952276065378311284929660891151280240483584558931839270762667055021709031557682946677968335649442296224606079430819607373899767768799431612288886445465007753576564230724993939978977607373306829996047272729327835254237465756608250343690135282716539132186585704829895561203604457186666666192657816319101238118533418088294760934427301444411997647739710973829398130848486798524331444192131752883471657627935993582947652434122305062118977855548600378252188217218176043450910596343365850606705708574476442704694098362240901486540482166104715486029170696371038664759191363906296540989828990048054405113293664216234400090090487775110484309855359612019165024851076524291702358067441514531328083795088222791530215032669980532952565090167442878936328475694040740155111351006912378485492251593539924396265759525811384186912876443977523186494872902313283217116437006084284791576157042153283187161485321137505016775411276472137079221618644494747107366623855487216169126741367948169553066769814682972410138140717269254191282781271572704421544287227036157859484294144038803448304214517825999496083994736269698864364849494979664888619869266730036858531768512458458293349353085073805294969291626280974876730024377630314688261695465307750447406709488111798895680573123314403592778768314678021011687046443319365908465381978291271010679874149019259185452471310723468780304479927972433985130218832715953180466135212711554026480631480204965965410622196551085544180792810169594195465745821401854191495225801862542595480767532057310503061541607974809075906235875623058932043800179866190168575164808242417967430021922643536092194611687954605041794713873418777706371605782022038948955488966575793840694427658701384427261767813157070206277364051527267928331147088109487655094940847696372475746684736430328327125437270884667690113460897098272029683251647914740657179499900372174253932898329684976240574633668039209797515633599661147186253006881085856952773647302196116443069040060594803646796128988668423085310094494282927574780636159764175822604189222343954512593583923231247702855384743083253589110754916949898299812025301432119958436053339725760153443665487158257195810318461655562233335617272803941083658806089274751709385226207163185244388621462182082937704975748887957818294005433904596554921922187666573739076413856726231068980931102451374107548793981355092122509516930216360417630461656283780571779435845907215380825827568484034963137102043336583517382914543379050472248945565557355705526846793890668601589396377387420241237517424730874566209716133332284841800038748436963872554130145170931194685008396000447639610932592118873257372290969392629959135845986315908320106519391289305870047548083707599370305323777201418039999134545158709138793447758356093897975099875580196177825807592625766356967230123585763814938007133951529404669739469019776010520822093781152570568732750370865220748039867188250809360283646623698578361783350445001838299204125734945465114776633697080444466661743883537118472341482890112600511930791072094732469004471233938091046624828342452891219026791549059305246934722405124101550108954748572316757670043495613788859411742333997952122692582374132700846221215016200133971974516188305432022772479690977381215356264465544973715874156961377616754809607343973100164371486959332953732110351318592329790518219732514232338643476913982965045831178475867212889217144493796263320741557588018572593629145429126129872204930437243108614931209377953510047835089459000261613552297215387032674660852448476240499173412458488440157244775165192309642177968434538213601818608054348281476186392832565841560293456765147838404846196696485797338852584021023175194432945452161852697157867541831216761863112946288414001244194159523748727922469740819398867266420439903732296564745310564801693703382153069447378682043008528634432752820548991504966720939011293254657716142018985870409060670511458083907062970215416060378372554771644756945557320081559292415597325507530368674555124176696263291031933006134639869632216133619769209485532762553908416523822581040570514836120068519473272241795982952870847265282804140090240172952764780378776389111661015589376130823989027932883535329497826280488291962738461660519634865750472641097447997484739538103932832679771947344659041594540688487361344874866696655459988749585096576297498737206412029114446623119648334564270447158500258170545217613723620592887113689637322641457730475623086843955482509786170698258329874248431294969196564515660396182215673650910570266582487334149779149251309915841853796492002033752112821229729189571777734360117807012850616109649745009601489493856710030441109759305856869717201178093030574581578686336321994637273063845109245347172299748728848450092161822023585939966297038213541028374953462563715258019180896199824361743472950620932710106491129412080054897422311649210221539235149546451688846286921971660405838805082593699585039919310867398338603172440604620025252900807324030088944400891127933404004518822017057261227179382272611768694670735031202710827041264081050147275744265451841591151571290635649933660182183580666521180855727596390207842813132866844973374764743549350174820555094979457141650243505347113585365745250438487771197305880947434329243522107543157359419650029455326093875897851222156280184369544081256461230032273780842493328107173099983062747553617800645409332866712271409863414218053064361919563749115138293828601182144408019870147867827192480856579804129601572760298001406038254826165574191357948377478107905090335340762915203501776088697345858931406480923167123132002808380454652688939429670649383504497459425674694621542402362709608560640490503366961896249309494676051540693961549566655547054933681077476155519864936605605037773689193134558827562711130632069218829464477751944631211745181705407533148059202388744985331708329783601337249813904172553894650252894627081639494788780516624242814901641893672249163988372748983229246275201508464801651032029532572957249335507399676200978302706371261428154025399945072478213235210787038363823795570782522085597783129132325221946661148224588056123952304042569191298973993925822202402815399659356606553798161739511663764909226008306459673598028916907030597952266569064561423931533568055773711985165406717538836308716639804113476732928450858748015726693440151832122705818699743819624010290272964725163202775514705567774045952488256827798014381690477844830165725220976579535921739352773260690900739136065743101856216736339193792013767292903853099527476471650829594826371864555853129175316384303975142067368761352782703665764600365712977863229817124721517046886209638561950580472840631557454456166035261719803753401026596501399485870999577741024030525548544062538572201551150615307337923411723107604954064458424119165843072267988208518358919833531355773720948948951303681311659897868814546121403703188910368130529272940804600181500584496627848612230110002650541445221484431413083425803499258849080126426156709994459619780689986116677635057949549005555571369656621274228727642041896812268852438269460017285494459783254799003605158730599583437488719575410486460188270667465513659874489768273330300289538938310087716902772970437376137014607610148659854427092318244701351604997981201262799331840293533852457770369340402749532795683122045923574859354284861034945082396966465525038974651184592084006284708330527703806209045845584819266569183450556310937975789398733902275739656418970258317202806672736222919904650241822990948613400112117526466054401884122199193624002182368160787166394697101404262223032916040750003508701451092126246694654303054568398311852516881877380877634347323688175798355534781534383294840107329850397545810873459312688286001573111547399006619767516118326827818034392918624902310388164052045550231019381840994906320149599003792623003992739958136071866741523246187925761182446520958745958417583794016948552819074199640135726178719765651724961316647553782906833566215085679208058039891918042827998051945462278995140382302598809561257748022402616030288663725529568652032899140708088330803074931799262548343592016897625009257961358499550113358887658643048366178689979969379495070249160253594389929201608499912198854691580654658099912246429290378338139699571148074046711059529363379558957719128838867223806746466898629188429863729678722716573849750904064344855129675170720120452431054776504521828445786045657616608712544175637132870714214698700114919658562749169785195962650106124095118144531175035039056045114377044821937623049307843444503994040717282185656987143740008319559490394458269842992104654773354580793202121686558476976083923846397390586633339770595953767438019346611094908024788823952341990534352930193343404566494673328561974058593687470409752014114391562700248959386104169550929329761599238776214971495630219308001910162309128216358449805434060673593288797352876538000779414407335339496649441709992566470222879756046408712555892937288417578877058185003826653978633570000009023944101228005431231744860119879681195863116004290727731056170185148737593357938293157683961434733876575535786469764303552947686318301361108065371907506473929636026566252692594790100217103458909386686752599009956747737683970900342734611299783203871204936794328992061191973668695008388632288864262731676713433724990776291050828151520203319018657488176602252565491960312925304111255333358696219000784020492785150374092667674171963075531757660519265316628509981130133463031812701547696053864607462627622990389826849507007905067427136445683104131451172408431987470796191902724900634218208039905366213988454410926892712162249318275744930424600183551609577101174279225631864513719007770189559338579105954258556335650633292648321144791311082233599360981709872439468474838891172449213238066263124009960976621392513087830976675464573897326808306891479941214781993242618449570847105048871913986435661394901308702225357098723853881461466233175072578366761172608646590951659012071079693186375653628413830200555219729973620846578214549771746661744973462988369035140844382722216420042250808905722838313583516467213465148583047976591976040085590203805176585917804049708952764562227426678839691597449096294056797221698945394517195740135762505750509687436418092877086991536881896597638932447407729634469983540477070835520600751174302492213639601433640054006657398863461578829744281626642853362540843437391224218135679899069758957277102707252327198825931783789481451931534121016014729797142759153715723193782304557330341805733246604459125268338300556775898734553939422423908313427348759013066545045224286868691367447650578822472148075383268065158395812201473172804190674746704571064773368379965164912284671902786903788610754848956150743752697245315462835286021977622301872647055925960051013629666054417463653148011747141202914218160429350308283796523657608408258946213559906470388800162964416563430432412891311402669058730002788676661439899327224877854480964415153675343106640720976970303148098075436659782477503948613873228149497805636148170992015934720108840114066249348958170792521365569540959625325006388055601879768006844175665128067323976956067598731318772436455590163514762476966379522021923484266137611191787888562053117579849038793046323171087917719880327288674960506049088459272204085592217609003687957654331148007196365956551599619481417905237201912623670214118461959055037130826277653490902170165758503628497672038688969286914391316387383516104419669438770151148829509114399576669938526300625234107270426737184180503964993382416869822686554294713682619319351390952428423076248337487679579015148868169952670654108833303417560931106686426028642719050260031952829845316962779047262384767866189668187363995473012906306080525475180128239388666527332124402437928262114316064762460190358642431850372109189889089991032033323033404325153228879154658522695510442272796172608144286603100883979627525823805169632301052116095281830280229834954212318307062421565452912470751209806305331811791786453797004058184561935305778610857487937767028316016638227521703165328767838672145317746756644260324618097722536946185830347541472630627644579984293438019891233962953273506780685489507932908350399363739551093387631066104782078242174947962817999130926386070246853437879984966616315601727802429914448108376867374972164167922258098915312215571852604416305711932728847161110342723514345265654319448052753134386497724108035680692843629549722341312175532025557797244806279426082011776249281685718433408006269616145536186188187652334478086374116714659711827566660074325253238599766839211685460948245724027886265875669262255411768272837287084717585578704370000079586732938874266926926722006282125520944016419959084514937700868556671094802326865272524245758197513906660660688525079486424248672977855737599789733053193589233637194919653216772179926339979136600948095611021250087518973591080131985252900457755433153285252740500373749661097990293383243782152084651084941517599677843514560149213544427123098543372978401783442170838868035536541624263533985518914486192142022647476804590400748102728344006738970306967568326262429958922833455877458992838054328249479161557763739759931576085455833135378844453660139549594708964560504046144061204173827893459340105264687925646346207813308835245374414851256099822688630740191846763495993966227254263998597618416538270356186589180094521946516652586645786234905174246552531252895030773090105905969032363716989976908724885243272580862908132568387168627349623117822600045063223658513869818841396153927656832271199295920140395050561787069177971724956422690727549450353002834330698133831478639471084732707808061202065256739853356147231203884560975133891441333224023096128194283797157517578168728513140151228504761432643073005183533165857753425470075931151780162916512419055097449804255239786277346307485463610344486951441129064610029320613935993694642918426680585195570776808666180035241076972218691383933346158135526692221077814432263125730673026807196422156994584785801762642227281982707913175675905601397303860015283725013576190195159602306002179022001470865893363234152634352202723852169006682784028138760088256428747716100149927993363532112524727492728506670943808511191961031079941864270365004069076389580633834855129519158185533801393838688913240633779114525976652435326339774026049287824284725522274166103595620793356493596757934973444565694063848267095818950789351351881544006338519796005499349090126363318470839229140291820772997255738961373496800380276694289600990691202824397411073877072263281325596928932434237595317658895668485725224717539077693746633105808971557804614778158202843916381052070931489002822632913349909904131253021209276145299417844412425083873543971431709733154147446154043756797753578597899647244633390213144192066818932685393293578337075078410275814771683635832191568486033830563241916847500635092248703951233114294399553353963323074989764852893211569531960791379175544333425373661008287459707861575952583922214273030180282466672680809908044165516021465012655460843376132714752362055871928685237684246381600737637277200734969136138991849449887032589915569985948458556188493217753739010183049780325442476611463006222508405289371097474990724091694846365826630461908106393875876276600260245269437850504820510569785052296227175503018766451593549476011175376381215680077516139082645499607948566764900659620467498122559251272412815722844416354793092818390405035954260186929863174077531590945472541731843703831173020567796118548859736311624677643575991542480699477794586809622366626071160431707344740304739660460807114820328391098215555766191223496078932329564204873490846893494109124432283969451721201458546643305923828107383214942541150591610728497055241448880235774961361937596471578191135277377784452729168138092391971683245351110131099064533255212146672716642607756588858672810154927782386694031233497842006637224339391228084292406941215855177125762931958979373641940239701768912145332296435271089570280434107772936305217969941914777113588113235624383236510313869629446335969391365327199922767547659423480125113178368496270483244628834405542538058268228869801405558205552710279575240711395623704198334670567833058720715233358225035794730510905820030637395509562656304652753493745853962715292840507447837166943098682797813351189675647993671914970514472750919117271490205313999406418427643560158852573490910537556166810760529253382280414838349011374116843819755281972331089713481302840997117377559118422761527475320448145858474320123102912138167546936136075011963890714548667615394053048516773820606122684293428445745752292442077667394327970644458073423720432656718736719298092737532176769613306412496071120845423299663815120611691980216467663246165725701024535864473024892686757650055762568977623484152492159510005611157567402399600200925806140101945083282408580839861080361023196229052821031835146646955614030197199188574609633923778640883643945299395025034540361992446187519208698390432880485920190456329209388098754505857427355022250801058392400649151353729630940103149902892811884236544914369872906251675614127373856647164077873159828296104487228776333838808433248633095803537653789700296840900249913943437511087146690939279671521298430561129950282177533539619561614272213014203617523231473003003934659184020233488366131968102818160808066937705343271146115403258775177090475950553113821767779984307815363314834763894634124239376682013445900477522229020607013185150359206922436465929388260435011176250151215015295537628251974571381765986186162456089258477536400912709365245462258419469314837150214604486342620256071420869099807554996759489115719420453432515430276145303184431750508744412684065587313658766927872716737768128306094349721926111786697627469309039355739652146666292100392118853305165815598922587252339892615095103506850143555096030514838320815492531847879508643594312638778705986400813678015186245485480750251530039891679560590417136990691506648243154970044391008340862352035547240070544759607520725837306639780716204970848950832548256328507840073077969172166720490795787073664403946461725300769131169683825864489109308302907555037584520979103389375052655045145577920549032889002375646487480795682647832495453367895308303373658217623117677073046667162252087484270839831139283104646387560091244126166124534939840863392533841423234545372239520804694251083977449075248210151473366846170726915003561703325363721643402939110353157818480269021337816176876366055983563172248665439775061315483008758803054528116065390842461428932742276644432997945942718645620717298321874466475142376810703776892916029977550730042152701759715986084151230876740513659389602736318317530530347192865032544883738063819257764109543672902804858848720861792695594193496586060194942233607786453833495793174418967975084668106608534803426894666508913499588155380437893029605924620888172569063345953315277517116856560776158492549537183380938978120214694590255442107307129340750052173321214780242128808232499171884749371472254374585457223011388419963752754515587303548115243742725105545697341794825024660011548926504809976808287209746420257349057363726374206468610904972217940093827531430371260642296762199623347684737228535985922275639446000324127615973875390071046584116624043651353566624181190306082657379864766496933565224827779846166331301005686471587752529542087248057404088685158986875392808319675244834665324560123384099828877119073500680510417906259552805962384026439068570485426616554826718784160874201818092386205470353602813172404993079579715709698422766064944247516362901867812128641928226082826869951055191318089781818162226544708140326111464394982912497979338246544268023077968708518713698295465105972446761587198276585551463470802400364259854044651483270374632449382565524772697875874642090874704248876633060545844164651476073168497011544836950801750886399891147420722799984936462785783355845408137411290863165074713282173850525833029747801645902427086752177313893288348338966780928692641719005390784072229485811701956198069646602407519073022942730682841294703224185532538520349399187558272223898637019591035499852022568536947977618883384671879803712267290464309323245170959767763808772086752264962727787038235587416179422008906315662778918519611963534088552314225040412185684219810831422625419082513572903721518186669724246567870550846904099859873239368653660903807788414651074972869981879606491436809370509051672085689934864900220783612955273725339315231357557012204979152121609281070010499212381558105421614528176746305170977107922288305217317290990914437997663987404222287149596406640654899302238768142549834856870469045030068232809975245347450914858111135324175097693878748667494979508018397092884817524084495596759465202885932673930068979807915860154238991624037546651255919076539546774901074707200571558168357809427195989893864765839079276546662026565328827196288483221656208600332434646931140113471678746338118384659818156034424910811163035039645862204039027690553108219454846071235527429356425747865403919965671324548729503500612012037862525255744900848441743309394902971681326250757758241175822391947619412652450116780036107608007467587036839065570416770077693118545632877056995770161365250291314592439669371375441433955160647824880159045560292188470529562254651638561629693352026250561776035670074217800273882788245265321742109387266680101835914790434845937869715906020077804773287396428938991797959622418040318056441892591438493649497767266486706905553912637472113029164039397870457152852572717383167783186462467259675635492523099888493659480284289750862322119927999677042809370504282535269707011487370139426845675190762589318376928119027142051892299698048975474410230718978032819416611164134084148660872992893861130133441861672233634422894108640561716883957840440410963913619251313586048729751083993250964394656184012213184111655455641648996084125464138030808798747651286283681809178480635549990254362644625131116030682853915229569080240579383392136860520213966597205537790395626236756157154209324330796157393943261730045664078204640880756573027480784625443318776999744131890986057259955815670731383787807806369569948165774096486207510525098626604691110557152711308157351248031133074870247743011530002362421794544504166623292734906915732501385199487312998339982133542534603799128495362587887937383719262084965020696159533766329022265672490647676856197628658316400118661118021954249250238980012523801223986841373584527353018875306000525369005988903523336557037538416810222839726801988107736188980850158624439770701483643765995591242188132135466634817051088097478031692333861185298126540340777078672181238691733355203128604847926096597523135008188637406857255585766507453363549654125072903815530963252977713368506047173885938633582791128402936543677778306003959060287706966181747434073355027942262814071004201379813681870010350669736466278024789932791855669783482421085687530185871316339992248260313803500545709225555216592523005805363468644716433764083336523822130742578142277131663769203354452459066508010203948438021593799439580125701950594612234966932799892984537650849573812541747671190464965300351268389238962359197212055124099416287896374326051936079530576393227339719873518963473878208836686033120514702298308884514477192483870052072056628891974506163711158694034672469934220846280304436106085187917942027985892364834257236717656024896160936758436298636721881811588786468298388705839834413095288487150831979517971578187701459621919555179222527493632508377779429500205857249273530248564324837882928457368556698137814237855213175611797028800379878205822871950992569823287687373486320606127110807169475191743347535192420076119186645613301020804327763608368475015918122541318025097139558671166400434162154880989593335716517938910960720779475600587638542046989203821340166781884777923734781258234053405191767580492943451149678952092646598487794460935356953140739131401229518663309515721648561309842250688789423497255786570124320108903008440505904233528062648206674494812118348238517058680414343918264085641959005551984746879591133387656470498783322944296714914025618880346097668468115609967719881574577241547144027014292329130134664649967535303113469587133222362641449387196434056547238108698230816408378788554926432188365608088537488029477763879475938168827249179274366059315248833512405229015564727616736222531482181438807327463060471122095278080450023619768517649653482506646084103601744053526856520508756196410715817679549719404723434713383398039146111489707129182504101038218073699538934339318406223978428431752848792413310690178302360927095778747992406045237164704239200245126731447154632904755520460752356861544456867895928809955646209716158035110169671046845064438928911522571745869969052906013968999011103049052273119899788874250299601429851887009255981335657683638496040946594390766227782491039160302592924924883011329285878539120412671419499338714588650983285373740567701525228865544822140333429682843396582115244507780548672700322332622343112524469680106632957057402893194059786280908186336401809983603216259357743481240394165637707352958989490534725922318449288141185645044314429966682198385274438433587503953686048652672520683252281669190068487472748046344875594051137391901876701594107711895394268388108653267415806667426643296655844462847013334488677825084317364475991651898239792032302537950160815761656423147454968375273119952106067439524005836051498822281047353267867576136075631154151968265571344698311065794876923176073931661632606795328400827993962873200861533211328852482641532730488795173764227767841618219288848408933333133874069956950011661952563128921668564967240522892882272550162077000985623741281130717827868270720194156393108929163549782963261670259472528537320942766756812963092614144479802768183336111465329531215245116166214456058904262578520480483567798382845150086450775886326095044287044672784511655160227444595345249049851780905478280837178557707656074308471239571292894038016400132335322057037398432390958354285062016345214024707442613001001270415455867469373942962299622703209801901505961444029072515064731249129862735530352618223011544452256958256184375257711963311922921309433519585097307680745265648486336364711807923492550335679535710077703057034012384251218114285080193379946626382663565393746450631848266259285819844353381749139947397999956496983058487882760176922365117047637786739729982906747455878288182988619777835482340001642850344506403487590280193265851334756410159266374876370893400002823938816585952344224769347539186196125517427910225576707702572113520023659317696635243600767740844058813293747810255197774100378454599695542274747048656040981795162307243681737799248674989557047279336119124453735998738888733211596058721628986947114320917025451645393194603881272660441516269195212147943466993814305426342459720283423817377708363214328822485989425515972774139625081376316373532481981613333446078728629132892695037273575559066999915673329886106155129573348680509806794817162059850225351774508618852640454778737281156549680889021679687730372952501587401014712861053553621035832162157713072364651338882776420478363449669947665044255764703852978306368109212397765918355925570203955819267521633259811144764557231542047026932219470641011887287795804826093053376249829242298006116369047519834108442279709490167737417595636259792636501478753434400488066969104801697104553928051667203314624328451804680522169957657161714734418706850563746116816754467479714144358801103967408409266574422228130999393063069855281197188122363489949578986786028787643961306586476224272623953142016674036377456523054333267961372286308290131044419765675813985025408689572129700552838359868438356269540757139840197065094989633629708848181632192161333051793702399358533043706229633270321232099758395078927758691473609780409546082059535014819264514891218747524630071703656764481885538997348638666635597363570619565974602709074020618249290061658734993669731380064561983191937417047391319199203242361998992496781945028485551105820461750594878098992867612883174161877736446570943642707152959573363879026583588801618732553125117393815043664812815110876373105936993806738097003690099780826892821080081113241291779372699376993591632576568449001286331477622558758466008691537531644257260839605224148125374297831902312873259695320803268161589706138052015080344543843884470906542630710702197116413115200383374741506077405106718268565625422237634688152723036185495120252240008161699010905666963972012334584992287784948645098442535837084969836872301610896941541878066431120686667365213778762066916955225987714970466095257768105922945646360216148864791894488014835674515503336720626353777697752562283992462768275772307547666496580186637414465931254100713030610345787071273538602173768782574914381061200440124614503859299781678244430778079032178491134166544445233302196122115152205515443008571279579390845729528966840411091825145068422658047866196268710482202552882461782646059181344104421885709469938080847187936912158129823425577757278199082670681510180692383100342515613808321716006572446403516316717445523312725344166566442446071144575984488563926423449558877862548788509447778766591505489837284395941882175236869417640737206609645418362321325753461670643132220502526458736101452643076681514720355377975997267705972702863610452369080161359492385805126316843449479092987462554844920732660638044140452041875893154073515221186227597754346077630309459552755003122029388399556769258920285855029209867758467487646605497953192158015159682984453652369013592131984397686776588874040208542479539383305104140725272996970038772346351233156262423863725755772458905452715170094285884363991196165321642367417775574194194187523169084325045164713011991516951015650395854018435137058988589804985211572679600942709435521374796794960315215221617459599076209535362589428063219352158931479479851250900602852236501436114878702384981514904520900157003222485285340216939749312687571509663022224040923791410912055580389003245691907277676906294724857820938718256624929438294466112437685916030937082873571031773782100153967499806461834064056777548749130298390310540076994538403635434096206105657487888789500672755503098604050299733645855873655589336334701777081421981671156402647360673479234607291549070407541424608808702780543294955885163548688089593755763208805010135260417861641242555461747851788317943128699830512940313862461007791432265135960362610380349531294847034926964688636842457264172765036445601181089357787227467584908356443770390623030856361812955165042726641427479750429454287211801245309640190340303024249806097534923630080973768023922207172335106741946743851206757113457392289112745012009158764490340638454662696113904833001792929106914451549842035099749515162487674574406414780383125286622832959569058186319195638466719657643479398517390237089741787241336001620707805481481335405767888341318579581618688316994350546678776208935436701276087583183079320187315807429759474423943675136719864268473066564481991734191316007159790294304304056984419606409531149928441861145925686465699634334654075613439365649059797563378329677911391785017233965222122638279521550809657210601959730814017108840293103118445054641960125399140465747546433741949172309319158104905793683447577369994361834426311462770589563380729899184286599495123481453768979078773349696530014685574152787505256585562139871970042896483078186676916953624091523871027435840369473787276331732850488493767542711510960824789594446551609151523021578745593337933787313757101492147812334283611622792164618241575524166337615232799577648147320442874902450373025923818195489299486587850271062267221157593404036434901311468517000234827667738606161413439257066430039421249609300909216160825775887481822670693752754288691417613685774607076780267577179909001651988441133526804863597785167844549031799179785549880775999799836457912596296571173309712576549204403404945827343427541842513694826903539058025570836783471843598877518252375109977976544443255830048140391680078286432000095292860115356436511521374445445148251884262392606508341420702748690285433892315219138799162522909393326353686851869607910529176617433327854789681266078436057012924417801250085358689265522143180396131980999752105115153526868432648064444966383983441343531811007485799504125260804978658647013893579940161968364232046272739497964513148068268580551209638978665682580034353572564139756738005579042812433537784008675779659137572150585959816627374326606801379386191888483275216124426858398948521232568091085473380070341687140447678999729277381434486894948955194486928323797446201098183401735676742532984940635766732185584659600904432870010577887131107882693247794119151304040695822026620511764265711878724395364530757487234091916896119333790748015575951786407558232764334548929064524721644129706787190042553029407787433340125124461188259702759391077686226969786999278717328765306165808272517347837033775039445040238521639534433923238416986990525973685152115062269828367103111485649857878246807728004325507850639103929662332324673695950764100411584930401418525279320603092128437491850188778515520357248653400021544597024164026936589606975935451123688992416056681566135779914412579527767323608267108781965862851517306553216094866749628992696082684317093206713589017887022910135941336260134870769830803254787636938564376190796664564221924243171797656995955199334973513078989669896900683080644060766501413510239711847798635728580694422912782090787679753978981056839926319889962544070843446361768789848665966245179567946840952220742107815148810175359003280857389429311641453250519179545497642673804254800764621987971609014611456927684853669331059063666320741329837344200926843783286874385378713865814721638290689185826024265580919882163235572548834521128207515307341813789480466952041313149412987342181451595659499915687397790153921631593723963883633158365520798468437566751776064869958708882758770012012858011694027225837202036519788371226642996209752517166596046256318837665403360409377960831211530149923555737432709777580525239962111687914765705302146338904632036634410802634611918481960132719646886378802623900231150030991630526421264112981709057934069523953398735622935986707894649586719094702310897534113979240026785335509221021417032779323497574882572020852790440936029444368372785582018193055548389194997292448726783178455720145005920035988075015092987915321779553517473155138637602267637098309895889818918219672507026267843570321859733184934093220011052732236951253230356881989041018020360722887957525946724672143310639811533684053419999435042060932356927912880753940490158810016642577278936781686336455246929030791802563328023954543412182955776388172872566183111697055168731343503417251389279701541059527784562383890005263112473022481942246643349213032136054853176198079926575351851466871418060727416418018328449089528038026125113765381141493334765643154577729842798761602061360340581218317657060645649787076866663152411028472012806069135212445746227554121611230253775029217392240477727648996436259240566173406279942715096687942871556566960106387232081927789896487527048863898282324019039594390421515091909782863312479045386656382210258440923009048585136015887257340706499376228424013676456127543664535493058500405866043213979074548586394583239943549036963964431289831447782983118478733074375188031970568543652622412629476239785750500124683464748581816201825518279422812433097225826429927727148625287316438123111450216604190849322644155814083529530944684608404043625349006013961198684668473479248456386237949416463359207961275682089154971875206114860216695718475197871084369494024333793497382472852168604275124081344776381451586517247226762937422046474931213488564664506676203605773429242591426225311183855620710514347687258191584830833211769416616531144170784118601434859182226350765034353290974852632182269200492879380960670202110811537763356148735616124240321332689770131386778527753730379924949788324234857039234852179482004241243941213295994246270704653947354934141762142038153213524576127850792901379257071173973839421502275161881942587719210520736970503515599400922049134322027992283145320330707162726926264438694879210812810661042212224275856117424426785747303242116352572645081457092729022900547830016432324307200107971390895826176769522773703948193223500076569477966883093526883318096076740746819851010538839156398282852928223423767747291075425538078661094013895763211836983969423995288616825008097948560373146076795302918506768444773303777248143494183073517657084771448679085575553758739656118571798420388719646049327641090706553873481047866580100492544953785068295158518410750598883642490618687564934327247877289974651150643987708970552133142542139552585504830773303936426294865218986796411285810175433995867449525161257654474855893238909642745824750429238736783140441271794869616454292850770162666719599530458882811497828213610822797757852423744648260367362688208860841438938273612425686079270297654875553394466063538044023174587865823630113395417654051401590765161111935819109605329259682537241668376612395030507071560012935661085230979837621661960307281104337305136283355941901233913170862115491453591006917206408478730499146447902829217646510006988265512729044254585989115085481239462398625603847453968422051997116568879911340839584277771689698412869778975402849131574980127578691806099946761691787566782645673402717200981130959546056218244926207874485767945805419966585108021852905889428809096276653202747271292656826676064620252555359908262679840877239013225370677848043342531881289749805681494591964183163582793350565999305765974569897001331529223490936199333708986072023084108217360259790245098432029072435842469475864218860564423640340377769423888908809786562486771176686183412336292688870985700114551036964646697500041358721752873517770219839442367753300059576001808138544629674282051646621512226116265864739966588522169023291943368483109764500383116384610788875154720255052344931337353936585912339931566197077726922045578353276058163509766365993020219037478432808536967247622486956331136684051481141085864196206032260369193183487540194731522053096714692728661075498473194044717450002987692781034897718766715776354843600640333221300638577093407329115323323868116155374471811682342847294987435779206974518529514898957892416705967334369729626500755726852702618953417068104782286704557208061564568790246404967143155349864220251201154696009177687357441081841912356361254683894866544346301431154784674673563862648120854249302439447558045451225845017340941535526082645350188980713716952921547768982437944430219745726908553169121845505611603183015017417256286445991773635675148438287166608554006024874712090553867917399072421109232225438146820673124619751173346701828883870864978393327810783232399062309481976275564425821275121074787034766176272129304569133659450086002208143661428068315997683756275659753332122591888017421804087869986383461294457749774217254761365129402628796313564200533373091978875128696141475001382195681552428079005564311643691210553192116672420907638036873418722435152888598583405080454811936956680855716533761042217007252112898532360833785682573443184377732919382394934865018353102419122779053152860314660116306995548598412022081701084576630520416990319310301866296060219199783601789033373376097498029479764780634794694107799041740762763229506290842697350823949565608464527435707543648797007231270180928667108706959455911735715414890193332184110161627718188831692182721532269286172209099136588939283033929209811418671351999356058445849146412509773045640376883242000550599068512199724496662450154068368109873357101163527506991058099579847062497674344606420813495203148470035090434352652005253748760972320931005494888116988751731760928564273620219978276075338059304574322286581168619493603775442351333465515850321125265432475473096925207739990823728769643348835042508935900391768096932832366009111801168222418742211221208324148753981337883219816240415848674293924890736524994497547189819855496510186819936779247068025424600126867754284328124815997400913512543488296698727286327378413357804711692433190153135466455482618817586025991562253360878104713589159386076880819308936832797819615857209864394459249786943870686319913163307057202438538318584594760606426031051739054855062708867989282436150471413528070355431024384360636251655820888321859807874480292094547136962500585764954826954361508171843607490273399880352816259727150756743615276317819282849552822441579172435571650709903128759048512655315554474409491884530830198795769146151249327330240629016160987497925904592147310161751781715546938582099962021805429060978659494009913933586263139288957010743393056438455171647757686841636698017460325177060940825420161367118874794517941531710629250208530667355678266652670347893571859102068875547796454294631881210610822507512529271123822960900579040582146357165176650419596475842929747201275211597540868494815386799725484838339938034165843315462140872353694015463710104846898439889226926708900583804534990416888869042303943819595765423839514908068959534245985007971290033484955991694561683630659034777792346550911898379798042089748684922406591366266359341757712257873998326641957311005861919744606464068206657235964649818262385707692529828006926785203071893340384762819066193819395160375726318429539671778000630868189682769762474254252804399499350339939028843595488995082098431195722852076718503862659011252904884072335426035600156715191282412388695881610976078418141400632773958975598744274941529822406558491226479955262407943813906813613827808082263497770641029329272957199660795678539953760094986708280282593257244185724774518730728445155688529798080950835818921037012695695135996569739668116914913483867885815599322782051248205589867698554041694133906845649077559413817427685733447575550922298491958868537310536052776319268887994692949012475058422058707989158299813909544506048743906786151929542162509707265241654197636114970489769984593389239218468525374626190680982655899759533983513665705383205273171057046482128937734323317197363356013350655293263190866816394254923590453933946842980298123508442538088569824715159547273551034504675198914237123258862533544520973942950725572013157058279142892243778110389895815947287824057313800755286899445464973866530922073339591631310999773757956192017913866355366903259511355972796287730801751699299323176807083968848129022971581917338665957770704715928732617195355326643690074670559482457450392476825700025921078115613787950537494064231702271899214158120514488555647007617995297534908547568895151939140778938271615647586758314066624589950337192492564086059334749601408422033142722659253540229264526335324260912010176738440723238836821848024381137470910282889757190047435921746186729053265178055016002448008923176384820500804932520763396150308247742327545297445333173048512354818658843699691888624596342661074160791743061903972479652230467577997855030093871875935012282494585010548313695490079684446181843834886796419028819736425432508829991678279621714693075324464419849086752838932851746795980615276641266606901379657889762805599705791665068162412041461272495123849930748250261733896917135802187150796486457958385834238013069025739816731189225913827383490853416842008684130069845960669363823619506953843102070751077817755344146703848268675205676060416722062955439645267670847488453319790107572644056129013474149005786088229485823584868865961217931391757663327325565531854847738942123381455765340718051754117540280718872816580485267130402779466565757651637190421176313239367583761905583570213309902177706900387878370489145113667213433306362945459572032349037684920545399925484731896726582637671655627355917614074704976708171823265480726508584456273635579810758670514920851473499595547281402566171473198890527539654268410276869727750597789748424201675534754904864224641488824176250163631364272842419636722946785499090176002163361095774514893321075887558936395171503968061160396939061600201278650779336674345952842191995309352748732496250827493242243807052850054696746414412707165727212672227534752463105146602091134232501644625487744802925736873275397477549962335993417854186746314927121003652496865160986194365984672689813831688514538405445511850866045581630611122134026861219641863218506392221012669858213069439696869440670926414622442601472255197716085444977326028620830218473009642357337662015651267639517461656534254676678573209123298331599405630027943589025334504758765580784118181968015222411129956655280254406629031864890091464605885246390202790055834947024713143703968533893682153149555754708420447655522651610000077290925325440933688336998894395676122305979817630881193184485289450824960327232436652881613957693448937867305564298376549065766656871538637211545128946096357577848255776651194553356480669068535070254218232309576773213697535171754567934121343157888824858901024323089076687766252302995974917044131030259624754683303613831009781922594239322184806606255337236876823209470023340089660722055897012741967552302097999140054151162038718272277893001142677434344428867968153709536687500150786672252795763755363180754012409382774993814257512458291243781956110680344937992780764752691444291721607980791454845273990199088668402366712087010630851272416315800067333243625794404219027781778139153490722244925026418572859176303063009767145355811649675310909842484443429384778190768750100897300455683679868871814119265896088981016273172058102359006673371127872231780144038302742228388633737679809292099860408961443170727772513632376814525701416644381956159159709029350677830316076774196784698016128730864533678660110825806086891902941626063061262971335069821497854256152368282055118027877403360545442328835000008567949653249484278166169995540501424586175286392534260248170410779688327905816128265453576006303656004269993286136833347369706190409522665755771001629368544915597490786160506738853804419295311563018635796902057971776658948784331792546399761495121001828454610577677158310777661522786696224811362498466659188871550182578725001121535742405669623843796902797060037126948066167442582255185767919660862993297052200307374265165379904627466979421047081500547051511552000707906239526413497966855774685445303473209622575627772371877086008542685450538798315066097712179146046892581241059377754454544279934583036981035079784901646039317039903192366487417596882942985685622742200228635445894016104675044359555707273610372378646998444885438508298493007583869158687537963820896961374654683893604934493422713018338083548439637843176419227128735902279139382263764345918508346854284301174243077876782739650553150274103527880350144147322736032133275784577628559251876104316325361024322485152048002709077617190360154079270593255952914338570175841547441996011509530600146368976605532650856159298105877738414379269364204516704585958068589815903871494114293426661662903335756009629929428764738798797230254494515449943579128322470820482710797820923743363767585278676339234621103670585625256872347331490377656709748298520845308212434814289635552874694755110838071101257280159483468537103631062934647188529210646998928931782048225471874331255126679865059544447523951204863496095110338115980790263512391193088894683710862154893680318257643011503995056903770113339044217813212043473976754201037694813248039326802530257083243360367545822557316226890369504982995218604258174499402807815766047337602817718694233490541874948982250834967044881172492196873142185746595893402949260869049954176501708929893496344820093987451324186386953591744729857151905872158303987654753935793797844018529191072498961230770197009356289511497931722142173829159366356833060224578171629618193521582927279150188118967643245042180927424720486520310133086967712549237176584864311739886431809333054608729860416854582148565504865106479719710048876308676845597916977112525725973840648468718127974436974082205952043302445287290354512622845074359167357464199420711055994053483171279612759078404457286562563451980085422541693973938870967148072147568954245876581726911073311014950215932528473420091023560513867834718959498656118086223383805884681529114975467485163175818004936303982059544942740236881044569034992986754657127525831609407346478898998323563698812567318040801950642565986140478515002519142842800200892835125032790672450560469112436503988005187526806871117473395819053269138140831963415300155387800243917157358876005694826779308979173877152719112828948956638724799359001645608159747044052756850420003012059723935836010599056295376644335913467236442644083362925435863829038309469522504937617822029905941573747000266208907789471730150500192702240965108535474526175126468317759164749516441633717668145882917605765049381547159946234078395900118187091913157779333987108502693917542046612451671826883450552874714158975441790868587069099185420767872949341884525344647164812433472012469869975810599836013692631559093876268511931641732862986859862633862176705471795997117885257717441990642313303471339896595412649317766651857597443274255945577908002596544912348944726944198474364565809511791833036529771126747212104801138999118931559775213022203999558076716833430077233447971894724803523728421745953858118850855231428644244325358265879488475850307610349400659285753730278287044982091838826548211641127160377155119024378372494525780728646936619159702689722092821529814063560097811036090630886986816308928252073152198450884114992044188089856204955245445510066381912318537643913346141683625025093550649900898945139546769840183993695327549152356098230857109425290260018988106611053310840765375333000656181364156035517137758471171016178336465343116271871468626822562344316360766878556657844792838834671290900585783453972405831539539731677760341888409319348182913527245021670372234959252475051442562402147214112717296327419486643403721441031428714426116001631910921603326286811123806044263191677571848254608832489368469873709610804150942878205799298774126600833891602426183993133051675865714360746959881759790440625802603946077350293223129477439663072908620317071294768993634864099980040395965774343995043746353158545528597420315519467912035022027275529259245326530370928785911650726080475893252384558558897732496765799078542027453666072483223210878704237636943377002757380087729415062208457009526417462256584952668947183543732549608879021432453589932900760248333438360240437871446761650936520843519350422264380549121474011589087649300596724044659685070265323426512252724971746929126048998638915645271295677661955415200115266432531157634721541404840121808365920529799699949926935271519645355859282684888348552008222436588632725908733316111142407840223047973790379171624825781228534612440459742529581487481332503583219273527964126040205680190824287881662688486651567351811223180954661327850269820787881580703288558448567095179865922141954706879228599298749359247119911855542636979908279413636494704693189706374166426007786791927474623986914979320510938073087365866941917709737060672635781556199307781668957892237840930420335513434289023059706185356774488697117851577855888834041576438142107076790472630891259069456813085579864000328917307984320791174948911817094099915709128807560682858100541218049962941971149633442239127854622112087747534808808495297078951144628893150807381165440282435615013866418165759324950935144917875064528352117403967315581973681133285380329927452648481530438086239703591397051157712839380831991841056853211656906318769559556076730670200762491967279690636534926201621537454755930786858247765374440480889976753578002252244768990198367244978816357716845934776935098827729413194297534579613299145381737660973410526755222750047268287999096811804900572555635103942796009350418948952653249133243390093269722643912410066413152028841240497487078988835793566597982350197246157197439801780995528971192608764960255080858780922144062386636847713582572489717330109606538403928610503826437335609335415220413193974527775068534716446066230901841260901186055492416668351482691748197772564752719518670544190046351252993745063144644962672980385029467181420248516052355431686943059481733017831902897661468314370678661003296525911073565386800425235091528343135648313903418072864275697845668678562675836668213500399437393704655429122526202595864320388097623161507610361651340603222765554347128861360636705889641277578274215161672718912867417645459563743752647376621872656778755076077066444574597413435266995669904183080816516173195066687109999508529244756767897510788958521605679932583365086005157727896091143403582543667159437397203702156872096180755024698700156738166369417818797743669656889734417379796062659410230316386395951703186036224132812518471243340086043917486148649165453272106139052242510208546682895590309053576025710569136346403250275159846152910423418998547549369151766320597268227866459121753678446538528871403352565146303936798088000024320133563256516944669965693652298178538832094111830097483546476790578340008928874493227442829756401324283127994794994752594615242466767883444000740110800073054957975955166639843894883934103659691065357724904616837720098260508295544394283097576617989402247182477161701602127853262638744267735066344701433816371014562960182575281952259542870394118432316004758262610718899894044317181561194146916060198739815337668727891595989537383872524299297272997347261740191132206539457195040641794874895113881971123930943587340150356803205771509681937266483446434093790158708232052509917176178739380252361883274157106649759139453603530341914012805913649327506843811916703095096492057328962045192331577748819990647971216832121449343605254794716663119602565214530763290990921368287985670343155133126138229371925658238689397613776054449044731629475607312252645142993308532732589081092020717645575035248416740133683950745241937768985340366053248097458634968866890842983386345321459915304634972882178136845929878722704957695800054867089239122162696538939794955205263307386803708300043744437707879470056143431191081236297984140324599557592187846810799441154872436721746159258487043872173117107921886316973439966972699852085072460255271534602709873791433818564578105878949960594153262390417897520222616241503698775378560347294098996910564944086919319558773864949016173379425857159389146896522542205822692674965653391018614986374332306784440029864546545382720828755750965439334508580124099600677404141510710766408252780238024159154047370732572495820577274186397748966942326632441529412069618899387788901380188692870480914293133259641374635531211672254434344426907690584525239207742168621581102245670288261759795992784594972391642007136414417894520999070885773063838159193298608220836619707013329444086118091463586655055760425219828814249925084811472663250485009817664146300724101710596684594417352922165897772183789498396550838540984108435598928478388741063724497781116501724211504064344253208802449004441220606671215540948467643469103673340408790032459233128955746009430426745187763438110871845067922391718525580108787206125399245844313633884272224189575368684247946737783674451594006736727587256760050284111882301414099217583171898232524001906180205593235868310758987758462112185449881825465974902560997899952348341477667585610823319929556892267682251133317048272298316126256556058647510006790166146421507937697603336286514592303066028885644549156768790024357309666295589782447510074686185007233455713559568503957330724643371852499117108561191457277702955138352418740375537642007315799266043434986100377936094569647173468807774826931698773745704411303498395845601509310863533676158968369450759712044252047978942422340010382663001096249028821496072086528674769383794350320511680825589686909227657513152458494599785349857858628146820870433799777577911511464178526525730033334607408531833330513287750549203859269915267045345071910743661046207315603991021196582553158791544348751351248140478179636015637759607404763781706883729823947991423757534913560442855477821150376924229697638416241094472446447064247266546269322247885162412941062689455747669003659598784228949485093974007943755004620230629761014102503327734480550967585789883373343541999756238943781250343195499780070418650897533146239746605477689894565757671093827152820429126774343060523648750801828365887385406957415687499484377666587518298951209861776908860135748793653138797076522118112488292518615317013782731584601860779609549907616815218940768072778512500762669233153577852663419472069525578432152608845669903942020402062901142083245754011417321652050860416960238038710730232878008701804110254203801456173989135603663787466544254177793201179184114465480128627116437756471992583269599487871674411283597740005172859346738985119533192605273365461475194776862080948345186322691498841402224931368678343609831497153077739516348492472780126354654509216172430378648949905064025730446339503399844890648468228028196460080785495941489112552429196674722013035063847962208192025245912487406570312268288497719149118749964761981507299072351511019243016391460806231529946795292468631130729771973610919318787348961093340459907332511238772616169337775322482575123536678079439385518325514746233422792111304657328527162328497461683954898208436041084549715148279981820518609715166193605816226590851338592871699625006274006831431348973538265831936009292632791897141811559730191446330340580256133778737404410986955772826232841421332528778124501843142190103493901872773385540880243696027136267827776306001854280441192342730548982692187924736559418150863873434524070797222908948558174774020467864890771421746690444690127809163109626354198409167322250967773508488236480648025859494705819250117360815546725293404478158205320209974295599540150558678030405496132022135714101283988751329144135947709607065699644542736138370930734453051747618701453060377878715720345145907126544977860874840902074104092097217168107373310757936277666526050575811773722430283813075210901946456507989800475531508444045822154105744188520902041404657122430434072672474979968272910348448267410796346660355769283728479839945092031742645955602505762907497750767010413004589911808792314685215304949661417932931934061148888158837005408522383647117341234441725936023649705162405170291200502955230619675098308854278259822201234036176662821280435197747013945900533513758915937172710910874326791546063998053609426410381017716677813883261714158136901870141524207797170173158386463484571453287344769512696728715052600265968632965742857256127272766589520897176099186940915241982823040026844965190202653783776100113351195360963380380026771044048104332860030179944000028743531316765027604230741150671435046351612900548450398828038256994550573107986807089745281636456121353629870988547161551054999757752408454295826615014690509239547330926263706363072430613799319602975495679604878736681202645149178534955285437802776988867615537718885629297463289021570071845741139600550162548180890987266262966234432071825683654626813982103172329942546511804882202472601650351237228505627780704130641838449026653954219829098261691231379830774967325901495504551585431338234691011076353352203507404970747951353260995724501510300358304267621589477377293921196342078539391176692927375570500756724507315122469402588116994173792216428828738138420426129516128287914473761876007678075217440174595323912674972796824022848841603052186721286261585538315612487803775038341654867471865046623932952516445729223659611053999108466982200397055038061946506457850832639436336583956905262952868562573146650133770933679043874322853518997363193046854917520083793135549503161948254139491490135200420334934326471185678991063642817549610007693618454252799723426383442714872049009886946276352920078478952093529536109905856746277820386488524114007156461580074714597942268763809933107866487994978805902358567230348234884827334296145108946045915492688908638830718094508215181224003562544633330148652955619985524139219243664798150578289562739705644627277863741222029864037074676769106689896211785911343808687067847036090758302573946229121021302992226141345953368213398774093595211491433185313478349530649220329516086305772512181621681816613251734070878233952263539362029870896873848231658619466740891659547779253384358230451404165731156289883036672470956642110545723918132347982827437157785303832288007862253545563048583900559345096960387945342948344549604592369749044221504476737411478279529082173069034103379533926339656954160378267645412586845341139150252247407926016019916577887628271776523119962239003776153377363297214031699471634639811215181314183537895661333099008741278416450240576422090863783918017152545254273751304087494428991872848699686336126358119796638985600262028238254832497799507415564960294578271052389948177489601034124050279022443366514790288590655328835080187640890946042226677576893476670720399982895096588331891883615041681110413810585592489250876299656369559869531895601170719400773627183458051873953389857168374518458246448223450817334995100585265513904976603750213429315895162313378832535299515779253291085791665572387827606025477503159263446280334852888647301009094802490856770710810655088965290862912247721510604737810947768413923684806087408537216489423403678021982149826682972454487716981541989662150196983532115449393176674182760468448311199613176521389435081161828693024166681005651736739310864888893251108043015877576455291457761755981025780844679957719360038204392703146636676694709365941876266575899560411824411977694787399489910917091118879600631527551955967616332302744719976574669318392203536043242185250251140716085477615623929774118949404845482190816125366690523447472841107371555712180323237813665588180831515179155233600563792714874188713764641313812625266579617366223021330787521402895374254647871952416410885594525183274939793280546213674759905665345538797295669134042581679383404736276377235841946271591312868985363344774037386035193530484659023550238906289561022552027912200614509378276921842014808621844134358311128835546638076331589182324602995746759173212693067186792969511653366446641771113673667499267615889157570269239773378927797185990111210840582393351800987895070317547460672034417471621447776955328465465358475631665101009775319082644120626102061276412134517762662082104956544165654994723198986007095824894810204565185005718591209368245884062201269961686325733105566889358447941118169859415103591773870398033549168686140078819865690460820186074004733973343170762023835194983013396532694666846333912026720423834936945216078668306508940435991444907928895670699104852507341816201367668696562187670275493502189306691079499555208699245705585221979126484946995923449655422907847087543458759837713991127002114408177065518590642910187595767910817257316517564792314801092595797050576882590326304783160574153268748306873354578752569639189043918990353232720532335253566917629620507276669325082724048824303343385372445461687358974010033092579063618967373736786882652802599584536840189390952499602141949305740175272350768199552162123969680659566550459304321672356411960512520841997555275268410980565548440382737391191248711316121595764557233838220242603763531143209048404200642646585024102083545758378052937420376270938324450951075862959349929418784029256394357944711284458132909226807281248482357116995192021390445477386728273433381352060489638285209741848173036484661301285078170141089190223954318860252546217934953125391877122698222441105501882360350128199247719364770939368152652611189299112263085852987535928444278376860275145852081209025932611431777492403988899467893283812856887922699773722158435981524589707896791238274484907164950127949052912226853152546479646663735634376556895557532229636072010949995355869493682783972893522934180373962350154324978241587550909559941177517663202575885113468542737366960205993974869694974555235681417311556732820052418599359226382368276534174403120969226517518910957650717085467344423501861992507997730715082792624342448145990718707702027270039493230321845280236560956474110114350406930169697098429007776355170585121407320453308629491655813552766481217656916026970733640159642365351677296069638034559384043465903176223593157975354013812664490208499503446439569611512862332096903064118050132026519611531091326762603117596825175388042385328478526874870984865972170701622031096582601516465481978094362764028290089265235320214702433995669694562633276850419816606239362470388683267474553340007183847221921908165093825710044172375929370548332885229992160003894484820536044429859899015034997613513048002621307789938214923381702309666886528965116513302301353347283205831452807354183159053363644152086764263541608656946851358835615487087842439787752149168511903230361950306121028065785369337120190858831034986406976162307412678605127876623384331912689435619720496554561362611028090129211783749353535421931807992483490658917533459552257818351215853306912067058709481760234739888741437009205206079921719344948255964833244843430037965391311494861563980856609731604431221834837983625070890517024188141276570460185651084613794461417013277220891316058511986750968206514154496197433910470518057533329978076370482453217415913936548094895976191575633969495825376041903998938543320131299810521402230587299279498998172219997935836672907542015069776220982422110218168824621445465240436190618173777547464528054198681897274589871948508661676442928556422725301519438562149063305957609009336389159392994534785062220768758601037953547110735630585332672752835995526424226628039494028767480550992776193087054874817601759359203821817353340431876903002075048602924624801809665926371400102142978675094986136176785105776374825657544093390669240827687156340772434076899080501222347827538428963848564183966517092485976245069564104326963181758393819077987492315428693054696328679410325968558768153132902764310379915815473696414451634088723968348631772708955283853301528965440617467767684012412023319534859405326574062732236686698070766405435798156695326370109421109163656324983476172016296577588728502106951850424249036383552681046897162242155471204957239814380457979814218703188576672342706433620959776035090522434935775204690103977665377488702493336379599950648067046303737776418943104506291082994115412034232399561853589903018528821004408540253154981055194453115791059428733625926265095770229795854539337683190765294641748209396169376709149485682432654157266129913926892062721806784570902252702809673079409382317338861110650648430910570641284722350479490483078587631058565706385440032229687250776020678587325264596092460353670406850374082013927503960054764503282921697808405897308278753669553896765565076292005287408059027436285258918740449949324360087409154667029094971198695837586237078464561016835792167187063902040667819716188101326447389972011369670500041356483522997707531521768006807981484795108365717453107625532607594865561434924544546657546943992244012763814221929374846128404609809837139537726641807209812016700975536199943823014235357127094817185813257140802412404172431478619370118913813351024461565100473078281161775137685894384984952799229227591669534702010220687879501874529161434659546291484254617292997524565176131466254226441048126465804283989868186291507696360097304337253987784975129219084465454551987750620755306948277007923689386923751320063555934788824721189818143517601227128126152712798840586332514569748971410337674857194440820033212749645754400724723268959095653401472437844880099650733566582081673299045103805730214017636953554963789333613780337402006681611776830359176386627178185603408093545403764052016621157002918378047108141399617087541420595471231814051542345027885112897696956164030981094820308672569459277224308271933222555624818145869036203866515287899931354195639146683703865041176311093056468292847757355437577799327064257947615244933474716391382827234745681492996896261613606550898095327608079349282382138221491504489924082805867414130933883566035541141968708971129199588892029928940607049941974724618256176991993174756633962198840777407563418784680601085616739987665172185853729987669565160866453594686845586622861077260200438494784212857009756367368305633111690539975531232082312434251530837205339835069720614036522145468314872152718578700255638560668900121890005708649416172848373645876075959302529041410162344602328417632178282141597225492587593592410101253201398159917165009841879973525937951674800374379795486566900065441143519465200559954465132637013079936682163618000123414773609811434019883450954486749820298883117055647717600885395335590507749112937166647461921738112934425819882695450282918354416405862711922529372319725660231552937598512883152706000171381366836051163092360863643389590747681311910935407186860575666954406644829699054775586852336572891509814515421093594512806864389459552182149469419785707207536133402687066708658768830145593155634727182646857444882689209251917475345759624488234362680842951538406101798927307751755277250873612758660871823635140770752778959950300068833419329166389072448232616171692994060815661514052914368065587954649519220149335945607228333409988411427979461181671628683609889477016589320115722710222912102465047039819075081687308655785067441241773497787239507832712650514914096720479561549384315713271985713092055817833751434991615719750851730025326095503883093822852691454657251847906083879296588080448350111750644334031834595525559536918139452655376406931439407141502475262435969795112009508713395307145743911838771044349827209783718032215410629297130894858503295169132511381079143387115755428663531232721985432692246765264381265168304729865682576674991186887770236644546510641337823672223493502465960184173777208595216695669294869146733633476707797515590532978244808493826654780163815631108831502521301553185941204612612844118058710647388805580864245371547839147757946879052968665732744706823289403680628076074977663695537461737247825966494601175819019495758141850131827092438483808864584225487827417355749207219478364363060136208411600682681330975677294680405735950379618853841059772679426376188877960094228329144902016319857040167810286958954016576381544349516048623056151461339488267654518130526690920301122086369451603804069043658832661320673480748814906477083493676391224899127358019869729162455113596662201538030334747933432727145602224964512266703578104553806683039694968871758965254771816452581757748934844587331725979758362241720125236558821721772208418430449142363250514159230013159720453112918550683893638930844633788392622972210354281526247373852217463726300164583469066073251565798517370921069673980044668682278619628467599985166009102554242286013441794466763030252049695484871767802391531136268197924654843074978386593578860376412566591207627955742853922915733615417411704910274841187259409119393387663959784165625755508795259233121208800785461500305601461585174546890276140981470559534262070657292219450380471149250701059358563429538338594293103991171071424077994978338021513188374481346228341631906724347340196825452169741978838972308705322807903453509789254390367219386267342488446058047817930758056500178393222577080906152832783101239383701277123921665706284516759274930219299809855622228821563593607540766916553216452720083890398570831147033353438857753172509018515180907120693893203641786081236190926630673577639403734174520223040725535546944481522033073366063634362910374891891937367872106471904311593587002481742045572066175916341276462644109786308861604450793681334116985563041069556488085075076454776970986198932547996104244051021937607457132332243083974028140098739212167992562896999913909091709256355528972749990885391250423917381223841808672052792033100417544220873271518810283888389315498496058169736534642230602932890542046215943958241493150590919549197951268091948490256790610411404567753483843711452587999024459954805712899921899067190824630798596462085909229988376159906504791268364665557388611169298761786124439038406718663998453079332564040710927385012726525481227904930257328515200901472612036634591251115237584191147859830405362989676403641151142559279221482218496362514056588771258317902935140326615971294508605021081257508750297081625316281323300958178122127192544091381380906826069906403012371060274570873909017292781303847529922743737066028040785490037697905288637233930467714425172823577576426745212183298638903884219332752836541434506761380606330287425431229816867215632294185974102611147309563684310670992431404299597318592695160124647872409898856486949956041493054488278028046446631602556591622816754696455372179464436316482652059334112393210642269505900600638435535461027247759479138614894326515540171272899321510997760088738800471329490453671121302953373022552645542720097458888206046995586558416225921601834655474262755222833063327613589686676936967649737872213105212286769830708664973615568591824829697723833878159406273802522759032164300291682242040834681837366694408650832735297395381076761124224539541044152221283454611084683820499806770202060151263738071944271746263660120568318800605208545150812075200296540534525669674736824759523329175896266509153215524554901263580602612116626955652077347728662374365598006144589668632567420897622960661757628256334743600340314691460991350226772726014282864773464564283582777158813959775906334020213547598320945582310598309260021785459735204611067588538932709311337423256910114876046373688415606469323532002445614262376742516340590701704486323508568633078795502469285625246022294334326682420142993525712335077263670553152075532996128425719832920346171701835612764014844659926459777180911971836274958581276855375620638640612984835861004378447320284154922737102183684552675928765646089038130409677758986415546208326055251424571453911855823860993190068987286232228822438172949109796929080806598313410663083363126364295765014438533282024746161775937899885327701922599987099101048652326224982036461109036370577862058940257389305803080365063646023877400030096321409368987163962615901115667250509791765168705164533097013208094724748932149721264234591085573299807869456285777768953480942864518183968465808274482890820870313730202312720624893506698843699292216577815832367830917708403857870048816475113077003367884687518172630070860926810059101560356819180197035880449099490161599659097227588166722069098704451772638743888185728115010130526622152998208922368879350297212469838652554868471252490707732730649533477933805789058183858004840872669769384712428699542651540019696850963203969591984601914894558005051548295702939883048646985161260429930163980645424796580296089052819234109236164961702336595188615853685103265707063202700236200172555279103020828096165036793217603854598129629072937576595515870153913818821854842960781124662129309031228208036030990878564190483139946717907450493481150583567138908714593572613467241488927516300523228140643963920785147050216458672890232844401757355852698334059871010248408737090445677277218074745306487824337568871886218722594500294290869656736593865135222494479685749748671451114110494638491711373425206751936724001749791657526469728090263688065100496589398844055926278466450201658783374060260335170403958579324806266275862424794238319301055371377494843285679635469090588846413192677647593272538375091915932968840418177191170798048743378368859799125034167851237684796814495030968116442379822088254956925248030584562556246611671924916925396432318892881035125068384137960067471826725161665300100248644541678426735911027180343429531582914791106253898129918469702001490792054199065983911737352085893774070019764060125920411786836615731135494054645421259262036141471950846126391514338327791427724035621856390608510649605620004704933973282957019354447744632698793980462128308128824770076441660971518856953147933915628764463646519867916187509145671710375247390128058975915568476043243534910491072995691486857828753692440780188137146057366552350272221992508892662446590083378489737099611755216846720219644154592150898282189849156119278397633553793549263034228127408508005342711087301003757099723642795528466850505269131482463744872930364873388733623245735404708884115461814368763486347636131669495450734667457210011384124067677863607577404133341326976964074348378418600126344892087362340927225294384817294844491431553428960075979171228806380959424553537971412101285862843846599549671277699856171498856501810530520656811944422277155885100321100063771106472267156181431095625715601527550686971328519625542314705327524006061457559880046664467391097655614722330514664221154191805557889211260250546904814159829543838234780927077500520606177580284967810639421634855654092909741537536604660390823536182350127934793205715591370445003678081841399741583166430905176457059614257360958325486367459617017807323507720263091468601457866179841476190772396160396895680215254250103101226345117080963267907954462430716944819765063285074926287290709000766005874064034710840504667755051821458964787526684546165475145266180249481465949732232874656372842146620769667566157839352309979836160581691982498329798062205894015535260792171685221633928284552646177032683039370330520454238977875522655622919043010944604539896977452720807909600364031411595066107466863233238744892131576575714993381898557596527491819913411576151919174098464331882993447653305864748903058180003604193402896669401177411474290328764909675158881178476461119369003236750084940571923244938065713239168528903538115102067648908345139847842155737503261616729627926400620543672715690660486113985925557912369821795317226067788384028353691039777787345001249134487276290254864533679636769970959598113871169587597898038893168927030937698465750266208871860846986128837588751979233847838189530126850787851018907236830303607634736479719949752950006185420848009267005862939812717273025234274881066299480832768098908530820155288229218944453231744660731175973283934356744622428827312972068100393359663627328839802835388067329169543561914549391648771958297230002867213403801711694517924002401422592240991948707720966560713894987780915992802808395763134160260977388143016005544932764835621882375885329042658850655153982051982454628024959777787690179360424412094764029095153804561390189804225565975217366575702759216391151162864268384915926565074367751186913624921638428047591600883504082578495960428322703629130787980963315401979119400196078299600281569487485934144630065296531380573161532366266532968355184034940565704683862698982618743667935512948242551258868385358711720581463529318414693201913414321211489268036037957833335502151511775665726120748134010520324026231387884814238088755571065413387833118714816570826714005165946506352694078319154430360714937997957670183616619598049612402271765652324004216942628155369281966770917082210428090657194619544413105757624447347870880516326229616955979681271701101197586890689945779179595212130095017884069630281895641750518100568540115334785569683127498396881222285388186136014887070094201140546789442224932212953937000097412795520386953290353977684169516812371578048333421621067067731129880301498506571114837277975633083448909477742821282415117286056858127881967074714471073055441027271053156988157341869000350479844057044852834421549109014733552753874552796895314458619200559874129682183233488368508033722763243581095054873336106279576924772773228953028329820531546149255513777453811321989306057980882048856467427525889332994627039960660710326459240022042915357958101886690963757664721481746099927233609683530567852352076288972259475718057247094474424875388328886425815169162456812062678942530381599853574442688179323136382755593493370420536626100902954576598400888724758888142965779919025833726768540494966733666747029665401683756421893417332740389263833696880937637893841928551254917018614858566974357872232805829868079241460632427676552046390068604256829969700656463563794398010102859699737907808209538644503437683798396481699597326386366851783626494635260464919182650346002348740479900003796266016169357203815759342950572329702072156834944123804010485785264639745064188169156336231642549379455542564453517803574632667048470750718886662088979415246878925608317827092618387033315842632465797167079404185570939103669314756018220835404812149936170100886441907666920482193672878894834140679213294712820530935032601844587749808411841114517039889286116288860206501551827039667003947054789938962746504548393585555331541639773107020549134837568598643563162588408072899264849195273800514523213567531754692718710093445725773500382035614569454198408629292261323178656632785588530707803251014339424734768991011640712365055518908389846060440102966440386585066292920482114303966014445337538162272464476089544106481395038657207882906194723749273552097012996268925386250231051317948992919099045589749386455865100541310213150574479681046775567023259658346239199276762706333712051717973315383009885552790307762573790974708240441371993528259453754780055903694271045931484741586137455600100771064747221912593448253008686436445033618407117740388921496221155233287048983536301979750500768093226792517113441499064273453062221493540590728303613587753521818903121344674263492589947378728792762645945433682196259704508485744869555243928107815126406380151374034810179614763353974693255236268052628237521033128493877615464306215736943087861502941886711252139424323757617883244670251160546020550974818898370576476658231457101677848211624960528010458297369375211703191260233235698631524906298259320728113545584945443484428710687598143555670561998652358441741059054722468504823818859888943528087292929692675638830634769578118852220678289063971209454551414551977509008177756937964042509249159441814756013222658218776492665688199896147632928585937821267521306033304650455733736432958481220098035303390077149824840622271600836660877460039700992778693752657779964631948589863024156380869849722445919645396639256558429176167991199425543514842850717673750794653114509908220240927106244809713497493182166762279819328761508165181216088800682623652957216004949769873253443372787646702562335898175003718341401523237135537395254428323328606826601469861988434925533642881440497120822004716899356350179485982913971966917337339715929364900890653416814820253446465614317559012433582509884021189773687639458370162941915776361842738094860041293258858929912822758202894110541171699065416842395022282342528592124314465188937569532711946116402596460228480172757041409415054994526338224119895781976452463565931644000474144204908088023471201894859595998134640289546540712879016527104776589025988495435388571693374266756785700441187482805846096996441808307808234199261342885476829118737708666378441552151795622426122911509079980104491199049723320050947167250715709358541837710556695574597583098227597270807246198340103526495404225434197889288539111666545349523487548492998330277350507744388717675302142118987320240727889413142625890562037808456374551206466452615295877777568454194572975553205859533622113673338356458668048540093834570427640665636669450624525468957773726320369753930879766262084568333924560584754196838958957553215514480184116357030019781145586010452817404783572505323489383780478383730175409185865577467203473084347833995372719160352334780446472479694498123126708917276643598053688127899127013549198517991664733667805931488861936562686325941981244638744829554570845115131042629104616330659676450088476077124214454124442386384421732838063827720683039946531776249872375090623238863932437919992494310520021866485551916009718558007569040516915759234524779454022245419956807892772754550484474921728447910086562862816550593586102511206836643271032044585505101453210186307676438083841259283829440922728822443976438729381898707687900812290690906049323619831165712874777446347940488301701650370249362043931674241173602256302929766717927362959212504111280816411985719467271665572781802539101525978956776604115794949994416452000186290710228730502941946988488846628587491323078807827983282645719507224176573898413703066720346659565727752747924954698564142640200193386457895682150754985899448560856859730164117945005571406748768183413346647162648089570726143041297955437904890904570343232518149830904169286789930652309032390161161125174273047426743369288149818902400996083587906445450775671578100360378203030575484953941804933128992272219996634504302014931438810998637897013900729535587978774842836395337284194383316222609018201520695378622227287490580187091162136595286470352867698748447480706155091512969076114654936697049044613269689869708683527230036599170334761525697911605130772308721166573051699254644715696113281516862342630890560105419438141024939422001134707676705383132272877725254444736253952594054261484940181767631684786727149659982001459816725400696775753900501747900094805828866426233505142732498725237553966913360797639124728827253606023304722655663916725858509032766817886850009647679566972087800862503516514655448678963870867559705686733173356875846599693068991070303781147922753189755246717379832592429101370957228034032609895874492538266413568260873206177933331109821963431496474791603728783367038037652453162472358676854700877448568843956272272670056374772980772952720875964744740840494329076521139548742286267508517693673370320610653799952636494611802887643676543544521459921565282328077136710698244431726130326399694896587613082604641592387983069171806055745982732910080881331077500441073579046435175871618040616395191377965222168958433858677122433016622176691769831144707046779240401806771997243790347971855737633682785790812564314616146625530142753878771556820992317118484884901029792912842756554849339208144316271184988186453649400867875877311272376939430163835383160346572230599837519133123660687909817993193406593200715008431906730605593686639173636600598538813043806356626348696362665403039879355554588919310807423948137161542678842597911892242894350024474184511509295294348359026411949308345365784447804001119755365867574724787563366446656078300657404531253353276549132188697395230320796303529355493226800986010494754254223228769574362935993004223586785653491069328813444241599737170406513484780706339943899827010149513674857745771563221118800582456137245883001624966604850505567632957054736215060288280466133066367286873558898138527196136437054548625150930363690147529689283155228960789046825643672416788754238234077833932746231318058660102619665861038412773355248428468971157247554325273655675365718230387493562227230561839295877446575767211928872771883367602576258705138832185591872189082502363788131541919752073318985541486744353431396309244735769381451111083646545696621582923075302729544500733409766820782180863352994204630734658334950018242433915957998223241984072199554933251662762606881601788521389983026276493280725398635468864074902291013556679120848653249283220375356095592027663888169821164308374444107208278516691249966811392485993766778924764293507760309407637782856481542060535982746364017365942500996697308784277095245026515590478777404306017607106798880910483203691111316997837538251759727493895764802529403748546491090899400724099284840051672211208709227640263402343993931085691404200069134178604076055393871621399191265727839041028548130270451886720848241758287438251871194330893559498792629311942668068324981171548321660627227602690452556509381279855900026850639259655073181360936319677819057635540086314136360116373385637065716367002452252493682035248247812370610232599465968350403729492972513532832908301822577318358194461691816546165872948709869171217574117050386445175958514180583065556372769329948373187769893840840862793291693837546108366805723232410696396340393072207200041621863861686681132656507669594589214336196602493355890527711504209738594103949100029183032141525545998138278102342039773918464632419731066924454441812859901744819096175625906505758787129097304525883837705965294268334552218592867353512199561963703939618760498714589342501473930083758561219251705411295512060010140805107110175136951632734877060869814371294089230665659447593449659123288967877027782519716904034461731336649386944727757049983213014342330618378184712442325467546170589782291624476886841107121342591976689848283266832441807120345502009301338181016985426831819398633633363991222717936670674110627442462196540027888095413760472300647915856392819116752166997920308019577642317516075653791764522717568372203182570518617424067631727508912401873378270582097498938045579600132746778993207794786000486705992621776364138012952475468715401196911183363591231213175849636945884898410689260414538584130688187908822861662864881158810410469215374542458726575785215040371151360399101223726832783511133983400450132736684083568925499415332905010119749505056273917764035847518523324115588062534584983253983967096572238623687231000602261081598925206891552201071896326127681207588171182203947340676278415406631704081473704567092587642289828123828516835460803492206418278995201622767651548643617796380839124452549891576116181006770938949580147097033394727235124877675811004474005090185169902964425045578084576741892483443839806573934008300596734688353239562505136714638799448078316621214891510522972805866683141951905548640343918682762481655387620323599084921114403710913887100423992967144247290962400670807090845082277929321559183614682963615341454690856523294266482402360038665668544946573042192668693338884365473927320090822881519296712649556718725819204937811045018942742347472183752672950021643850265457234487274708409623684612737189903699035264242736632241538304872881433777236015589263920071093796996164725777573977369573431510638511874010639512195724375602685911391433838581600346146734081682381768756387359079044097845840091137513818235270393626261460514401691097051729507167669594393181955718545963386157033461645622689976928727658240936257312248394987440400769048965448012917625729825720857929109212679859339589259320975455002092737334912126206141943106032228218963743504276591896921094314538965767629875362559793162239158015359910621078441840793702166778741616013934719854257517520026179975791487964426399362985805919603794491301415894992676388514162344721663349676569110890396565353406019109697751346063833342852072830618171536057475844673328661320802746651978061829270162339990072181571385660569803050830052662160124250099041286810166452983765406412998046265842988790693525248702578532675326095192876373086348457053520195777235282794414894781143541983728397640886373707571055249200711467593942684140179849237046774540482157973487638725704113827323614670567062192827190033508998914082174300653059700834274206579361392847406916203544859927415310550262759091838964647138642157790677333292443320521683727504390172211584215374379863467900388629543435622373084268325087787091231065573026203756127562927967758708610422856900302001353299760004201396148008234139007166708525960117607220530310070814317825972307706731410002192819735888726040967523052915140259862627174231993855551111856197050932311907549138203671116238681699758990655275671340289323934329773509551887761782845909467607960850073996814924770345242001442064265107207478113394070576920620556607835934860782204328348151243299277762445782855903295541200042813707038183691994820350241389470185961878170275037794551866814804354910374344353143403970207126809460727608879913440522396182808118748949367820558317519923318453551652028249961397333200483521717029233275039211088009110874790351278945858301022185749896574936181682522109322817369209821097749659615160337943886887365436210527733332982780594105694485782778225783752416829972149738670401969107129043176489984082144114936348411267709248526131051565475778082711591351902139758304231359396981655141852170483162136105096805482863292606970740683673625021669689963626161057822005628866693186114708569133851127937466493592207911261948549953691334834221782616963914282868889635483213853580041106300114970934962964009864427944889860139654260228172895503566667122964730284305510620912836378008629388566970761002096516085231232145114114886572824673313208159174446171753724837385744037292678849226831853445258591462691240531994594228147602608917968769425564338913483429823843316402221012865960674205816488853262840444038374002956105266757270554052093068682176142077423724258387108665842853659413403747156334829825270536555134054284583627890984833797283721327522266914049517791917717860056059729802470525950897980376700601722167581905147135385471278664152358355810698881527977536385457426023669884787293041151426758754416091837531792165311031851741446535090422034225097193635416300826418273602046093619900340441793950415942858504302477787701236942680394580187484826917582482083920018396267021657109649149023938217141220293478951115429637744232391142678862543724287434339969179547817801116434081876017231000909392470864413423259032104517352446506859400323744688077931792384608715050926646209388197606896806655896108836464451459596391483174334781748116368842637098055350290115502225488058699986644776104423040366949767482949454458913837320566137602481138078854441012849811215998856506567915401379664313474643828424760487568962033763356541664154601229785618101329028596620297546195272685352153169906928665313528829843035086759499961372000762725308881727020301428932416182135954231577427817188480649476679086771628052778353431487685169763562261048305619903963218529827589366401068957300555734166675594816576362117180851995103371389830222872696902858638853021167817718256434574369615210822617598454553155698106134071176777361280740306540835130059269059054023630988161782222274337363825435896406466194152473467899892497892342087004151933246330010740874430839487533852095296238629121181831781478972630552894167627804317307847539506343292827257418929423473035401022051660973397872699034768190203300897556339756561943305784682773442227137934984772756097235664056937672478000989046171252849960225785921710068450105291067071022493909528297691106199029103253579259137411497486119860622145559400887285297385494341642889099198115120733370807751171749517324446954819410425636684105027538388148040613411332446734609268473677835616885861110473979442032896025771228862726550257140152877415493006560133235439219333815706934744234996642610942989428657939977275614092450301537701074443891487302726667095812948525566359325628192450596026112404500044662717584778241705421557810380107930911112728130706557792905489922695617373477663578645534790086219866877243876464348193599615245267710322259839118791047227402964555639471887088220174665010785668100121287450683048898369400182210503223611645460356570904161109890721124675050390959992317060555837889033537385488642490526270474590079837111256487205902006254918473061607684129924496720294437632785179413959613341994770562699767938901799581766677248629932771936730573149154068819980645013397869596438840388884782735955229324687361593419938993165705689151298345616173272414799503399515945457299636007790192532678427464797786193434061623431919153320536393603176782551289925490082683765645400416900646611062743124029354129589015529919926226058314185525452126493355308779110563032673149798634634790226919165841256921163617292634149933325598537203789540355129297459828821766643742438533501219811021311328004666067514192700707371731936596705296093988202257678122474060187780211770559671443124032634482411897494246722017555764463293565437484905906715880520739341174457903139098019456284883072799873340484576126968993306743929574460040605131890429091386995401551622433872598062444467490383667066681789487791308408614609335913769471160757180592022185107200565667972154674777937635696685272795560430755585224342925367501611551599663744210645077656056471468419539331658847916533783603924223496841440723806402112172258770274761004958700762302491939253285460540101834014906014274686067639700705309379933447033903109345920390304803999261636143105854320214378714783448124309941249416437067377704255459020457508417803308211195818812537942393437162676017677233366928995867249974633987482099423068079180052477460459692083260278183132932870427456115120776141047270382960353316979274349406099458435063255769769748862934428354391712102567874781352763595113473921823214035089896986520989363438943916923436352686888296240087346221663227638852864753273421833308056721887372139494637579151019145092626614426436732091939798809625591734470188184468843952257619766227368596102009818335375266315291225243177957062745062751303691151783318154514528812987386821674394746532433531384142727921239406582328024818162152914486674505485311236893335903644546033213428557465247195889013508481969419922875367863819575489524166589449541488478803895367299498664888035311222258825744960550207242842216045275263291446560226963157807252315402773737040154177986375444066064357803456931490764956306078807945607795763785350586204517122340366157243515348643655294181373567266494224187113455813741309413804828359294186386173107260793303441101596883715112447525927688349966806414397008499369825143880471821521835456215274755141758821617318274534586144144182387180698560962175833740283827769291114825692423717723056143957536008198046081198014561668176711734829829865701256277095864784979868338840175364167379660794167280325961575649297498358798270360708323890674263592745907621546215279962952204689669998979641773282276772030544166344504509393523861923315275364264233677720150613060295116791323148603544745093285026842360369930004433708014609284122058307976249389521783167121871724308463255393399004010413915408026962723738934608425648980596596192522362025213996694712051333146834750847639984930622320816200911105623007145304909425755934632583278965771564918956074081417319609408809364237276792978395471967677256659044285355780626349887114601839180657340654284294418324228201753527596834692913859276054553361925356407961200513955862106891386148980553652051252763078026712910033040666433097666147717967718232597250917346492613781111006150798138310335214693933915505523079611246489997918557352227930085744622744783292767134070047432984481130605198973002416423102754393490888459092228588671648131068036756551725041006452841688653338704743547427164577366791142520383447247918420421670879580213371159996005535185706987578526002252170446497390245462834879768145146530052445430614211982562792222946031033112904484346784096327442248832696408050694235188322685591276853155195897917501210944896764700944133451516046893346133872789889688887336752097980231039484286278027292720353866523745580019837488846720701998639307182151897179251282490604584367221367974956431373193349047396404084040526665141764703280539617875701005022838068485892035919370171261159678496004310952278026725055696423083905564467009724162491022733091129913949731407450225109025501653060968640850778276641615938403258949110894899854153569115768902222221005392762638072617330476438661790776162454355180286827211894213325198241554539244352767053948918598427489746708960008549378364621544871187087446949094929914052251176923474985433056764639878192694276415296732732158976295464421622030900827827443572278415804687933393236444616418247913767293817629031896921525726130444277523485034225300548707770648393754828935035648499503196216195074200033970985307811273211489980617659049015869629816656171620232327510550705621932027197766237642552882318572274871698275721033527991642921028977067701321942936356943445983725583194827121594557491796549827762116256652646143488014327744890947062049793534256817360208369301955065677551350137860938249964396921383527590478630611564115486505996368878700776184235811188182216049856028641797232326779471539348354028051854431337516734641992931271852777047296545971121313013542172670096543465098115312316883669528169210613356446128694548224113481992974643577861856742934576067034765934319181612325618353122149090539891408940606678274277916557341057177425484997875726779329347549111525959828367821236051761832403143663591131513727477254989907059957639015726795487141470359821448907003722836231157952372739662504462736776339592590896033953729492340183550711347681197115181615361911123509988888286532390785833208083417897807866822625489426685475283797072508827983665398507021702018702759253092915474777649880855798159347291683815632819270484034462904332437169653343197589086204577752675133503754403017114574638811647042715070425422611333497979181670846657860382873922216638405696146821947379758017478538647031234894664382872434517407183130977823183075853383458355253909170020131971729673116868120665212407150343557796870398380228468988207264077127649500223961017262638392162618782339605123812140147991305898545603567809275234106884856812114833239665830109242717658645459310215469011008419848425658051534562496723022193988571720985930187088150884810162155854805434032906370215133014413388725395898761621767083807320487657705526015845278484859281498402426184177792967471957052730023185704293765288269297331904070193590580337413108933243043360325917295201215691716516777967568280287764803419315334757646072187694616755618945878218935642067944056794407131991631126354277940649423847303245883610531018454127355790251243534660398903230636234304589814579503313510460718376257937218705698027756763500486691742050007004579195859509061254629345940980393647005244582021724133739540262799708780060011972641699015716229649106809119413649609472487426687336510744792065031022180090278133801771959656784319533838875928908059075859707267392105845880880738437410810433526027237562167467389154443784693118854218751204164688992350823860805928827289456871869090414257360892329726510376706335899290046581724202700096260352394774673323684939937997038146477946803444520928533724497249863562527198650849814698139144109555810045720774280746577109080681545358906973424356828924693630403236061125776570350538720274109552924465203169107193206387480696591203934923523937636267210805845786485761721762270541669231377019634721831320615629827194049553122229311521567100937980702417090992533217932142983854828881900936238607926596393253472215870447439477473861499432282989333432453908035763468647018897800842664982391196624551852591128789997238614029843011584150511520547010795013910227434357228644970253347366396493164044458850622121780815357105960358802151832168852505402920051650464982922847299637646508249159279289139368241605375487072780616803527852628203417906258409586628070220139840947031699176560489999790660990511687983393859853576678644853751754231967208890744253007586016189039014795455397313858952100871904370468651913349643438900970813936352769733704199984056510628373948842202944693064362491580244587335877884476147311055182202909884417577327109002317956274498155952778664529321167336174854184745513961403482133927970224518964072736698129959058769787987979547800924516041828699421745842632226269226244897108223141536579231205652794074792288380998135101950215926116720773049087853337692537074464065903064831283928084778840744304830411353318444620323805918440854937294347450665355531999972260047600635972115260158619493258070116047178628244889632130641605664155911191240180759797849542506633378827940073300087162736861806752556357373383919689164007254757294620786795922761899551084669086837456269322279624043815987931612110158196611463344643375850778608110510150219173580985255197228403505225134546438499613648725197636806861843576697835121728272979006612744282414526444164589102383149320775943674982847877832878365121444427936154898553299286170972394348653090799163887265977035597699680697478831789202333671489073302928183055910905833231150460426171655149734442973709404177851419972511231579484416861929193531874157181183270883146720491183306058975072784449626398106698529304003963249041940721091271691712348156084956301491401431490791462170551300536473409290150495175036563271795318087583564037210539511065838640430570614457224196434341923897551415876514619208028533655897892879388113841230328483268325644235046530397552763527071751101212200235498626204065264549252527898108953449987635510424378675971587924145124987350354311622086078700839205325097164013209575126557613283297306917458433421580803734471201830020189482555059484184313263384030834057677415358575954540081550083503669082496829314634314583241425120003089542171351292841218945670478580667179549795672441723641976829827719163342392369813124975029482519725655642220154768311276309925066813366866737371291159163625875195748187591474486399319770608925732438661017601894240229462013635331902956487090951741085259848453883756352878904788642100831624496982666956502316267092288773044048438270875030939951857776736529785840144925115674934645706356051617198198670201479900092257027284692822831747016033025704537080309850602438579703046863360348746987383513815771091617882473300826112573156058041042973094114737735461460611692366174705466528332803307235705817204991131274721923694020193793387504300636687431343163655072909509772822359213457410807058157044009539816075167190422471513767601802439416955168617102013025942093187169220420238754222435505431465091519600003816580673378377189833360710298308796700192689904511326633696148932789723568108608301341870327475219271870067074108976287563021083213704936435841057234909426989438482966454766135638920969646527686571681089685818735205476296261034880272310106181715665682944485969029365894654629494414530840105307815244470130718954020675164090083653525915809535298277844394293658523465151723450523292326365103011220707385495466401709422900766708155955791123922386643842134838961952528983810299181195478439591327430240555143680253675887642347752037333233116734804012552237242973086566280815691175176180968727532428245332981690531754819175355989125952606601930769188236240207263776270467885137259936992304736154265805226544843169682089822534532626672717291979093210900114344980098612013128926262570857225336361843197945902448715139233714590329276215914021828861445931221807079728478296080911814383640458842649684590924346182288819555789678171890836733495383041037850306188277004453707545345502700852968026873014784603950857124528041448772917900266067874515072737181976595258164772078848778905181426447751488021882827147907062171764595996200185407608149871159389397420393572806159929191779409672292950467786893242407123402689244552444884906466212684926728197691864394466527653091855050794093811710491591343842235268093546582484235248717704511833307103369546870375463929357225858891552541625861683146092896574855666183364487094680389400511831356221792515497498615583214745008954222035252529924251261104430812168195259161026102475105264372007408860757844378145443740787813050989037488730109100145629946503299324776975569920390032741891696806544407064555762394836864981227247110192987044866313388050629244980787280081767994006765351595792162360665554580692529657160024563997205409604806572194046822205785665923481848226198166752797946361075253074010214541996679116432438302347177353365534546566377207060299111020996991173113057800946405560697504027458820482025487898280151089758420968674280227349468527748511170170570183266762383381313487769161059343963245462942119496066936617734917260472876497567133829330121212766939263256236259603536870812926254797006418435595145468491778579715419714700223383326593155195396003298651139218693450720853569224262053478601021552233090326267217985975527213882800096447056769461639976926208133450470997132653297967607021463196303686550646098355613573942044243320918277182279213238558660197456366015997129395843022554669742441442256875885272095629635878150932404767255708156147499383329900478255154698075379367690042797768883035019345067359337102274571508774059758255126035174385001326793286971996811842598583465918463368259030848273063477834838823163259063424694882594094655763769583539525375162498927821182176109315272969269957992730792784118707746613187185060958124554206224748582895544391775469971919135849742942123649414862672600797715425137748889065530512989703282559196464284638152587028565272856266623966093441282433408855525112703267377594365879747741433361667315714984761141910742649868310869360036334201441463084513301690966912289716226946441258022373114495083532984891261745194556388803104117196744951321710384535360055849080181251958781306590156329394021566076378570176936028953414969400774265344567582877802594115590874238986114468243066629965570533411493778836196692258469373936172140710987110562570285017356787867883612454205386600313878305258211748732216548248428721420198371453049956099298901704823211416418933461565038087425705004229107453191399633336289049482804595854161583573704448505914461805737329758068681876433420415632737827126253136218391005255895589280934568924075982154635695068008338416801256882003906362764515697814666240513376398251210525675470114661206102854344184061277097494793799808531702452342993006902396346573840628474022703304623128147040059823161548250274658906462697373667825833216138414257685959618769230258232569366047790497023034306354386716830104513930090024037272280661125013482933840349873545461630831163724044653478015904408523628722175387147471910542290668684913764802643048891064342726529280329504745287669508073945176926397932251512416894948311456588528063162959447045721090725946654407814710323839479206299905148074802805713948080305466538576370029028480615550720513246091700547918519045319730991204220278821399668186189981694994228719582650877424576420627421864861747353831432222023330950113987623545120071569771044624059530883126773504629432055593510624049025093323138260854259042971089783245589338875866640274144885743372274818865921489402339461719562907400941394730227760880830013261439614395820121847899740049476885640859514933317663298009276492714598647407891790592283091960636079627934901505762376959195043193742072057142454542973585595117050449970856084306138741009088712100735139345602013999474335192640821258007777823419201532037151071546371742784405707604050794715455286197064725081466596287588394995659076607840491034580060012005855598332294329455515123831240971461784920482099995684481728069941530632893219932198835019342087966698905465768429350705503641997993354010968892535566996214847495654925378593095539502299569422270279101558778388184852923279572663118330217336656552140887358093960091902592398805316663624763893100548536555114179287847824205610958589953895021762769449447075374424876382684359906223308451967046335783069311197640444164768164819346658550127906153721899661877274185628472237485381959790192278307819877454139240389773170354228158531397625293019678186645800199818485486426237458176913559049019476447805383586083351849610164234803935239931190713642134620765514232792860529777333859170591769481456861281330199006640547352033537806105582172739129015485950306747889402943005148670601187614263405387889986932041744278576515087148981048575464910219151382759838162459302338491552206600199601056488143801848294528482441464792544821082416867642353520387252636998315572569504218725322517741711776920064818267826336060980212183420746811204380047014281042427277069836457973123213666725221562419069830981915828122099588809819229175137097127576683589197092686884324832321725244693915407537709169410526267714796993737068361952205831073284606587180543467206618596024718772565957925764634961960895916823875860473570157703927932478091799790357776517570101379035201486101194700049127423136049294322830281497856104674292277563545485552181854578795531076861529845864936763860798218018752570192268935819404607391019077479675463126140266275471179847031971172379445622235749967665686139935352384414203084631353701583352967517061698616316394327709105583003550276748219136583251666699043274166520157998408621091100829070124122535840124333249894870240538749321555863104799447425283620027721284091410234753274721548301088049764553361256315822615954793258783476473906164199411066759332837349315834946615583223778789019352107075427069127192934770727556143158055383890156968159633806568609805712779628287131666429209935561559464512889591245846936844328772583059674056851519881203546593346901182999543403727169684612773470574576596200909873497660394418313126125636202013273624552614013547809478900510906226288451984319751013532463789970898235585121552869951954340950752429558161852250926253237627779484078577830348182567128616229032969091130692348565559217358834141001083510665559269201499716174963911804919893550620982783567547130980436511568724609462727656712530543783421247728070666092258358443780758762858515434451135158049710562929993651909835305411391403993001638002774686756945731864339134956027166972445192024111776933975239161805059332940717571425854954008222046464076660098341805418376355308847714671017399252594767413051008889261092903996785766001925717264550206670736223838498306406847188066447090363551438444804131997918918025857003484108971001454273661453366528695105800820576343085283786058222077562085588646267165902720302206961141930272450667239380230120948212597789778726073807440827604083522937924751271644845004984277148365886006017382964575229444120101691370262890303887283964781242121994396968519862474111043008246435837200307172658646464332149669111668458785487015161732864760712754126573546923631901571634743197762650652473588410541986106272291048726587047773691211637527179624201723862225722186389224931075362819505725912053375670041473402114356282255272787643295301404574101112339226308887539548669949197967757697554000213252292891271965506859967926572103510800580225845013790556408821127539135871276426173221068299429689365216733626822651434628871419647359395551985509155198806100368658994049397752153478102338359113634814100535673923119458594828328140283485475738579890473535339873744519279738022809245509380863377856618120287484434457664521289279712289384911018700504803097890626263851083489421700179711686873059365430618261433284497054484282109220927620282322131697141173814626830026175256043326374673202687157094576021903318619593521160143982755367565207317579368203381731629408169395614386914353657593519632766147745697204656267195133702053797182202763756831863535270517160112694263725641776428440407042612871163764066837812953836646071201840273568146263571302158009881494330592481768656620002170877775331409862661049254889721556489826431279339282121058727694683825873019906688038399102672865311153106439995802578635509637684875323620121855283416030977008556624013906868781913542616795080903744608975049448719717294450771523738542960005529857388179147006216208710768622633887695330473320403024768480826516144721498324472685889642914866582635558901183648231451733138362924975323595309178490092753290267473491135283622688153884680999774343412990344818443402211575636861525140828199261714827674739321582784314791198309681215306447471563731209972929018025535478765813604624097957123949008351238165038175641457414049306467017580801539570297699082255479513113578379855942299230895013842297918364364358282797205002607753404087078218921643109823643907225778663378713503319581321930160007693887892610057527639126765842450326324336561947801419632149384466805545991273627755701856235088073790528963340317097767509276095915665158658194732868604604087128298791531796967592072437017554575014121514418509235709250710319318352468537146273833874892244368474852055041484055473324450404720508216239720429028219096188501196249499139340035355012746778716259814324949360803809806204690115216859458638389006285729460521547649473173322540212932689212918046037566407283497275205226811504957704842161179673397997069333020754554028690832363476526763951165839783230261556981947782206149356186284812562478826236645762105493013825453961662667764873477793187858707610858724725199139089193570875891551838526483342202982941587426207014703902101763128237769346240143395121177647783829000367170319200033945082017030047031698065081654362238193734083635987199692736588478574824844984560229048375213143789266302635114614019026215825940912062243544761864954057467003900093830724252653079165451623812675268042937826176746927307507259271564720800281704378990722018877892164308781457115367578884727266720788251204466119972634434680643220333782623079982257747598095882705387556239101847108172446139615489440947577002209632002757354939770959434834629718435825169995540130800434625780165675016556666013213354197061309559929466538670968088495103336795484350746141957018108507517702479545032662664281223633598517519564636108665058022606837358384136704841763848228955416742937228854114804131849629501113548449644734633031459195125950276235122186769683705066545511977013637908052711927855170549998864423544368492397008668675688423772954269986844300872073065732466974740313612203766643812533192580340861420391645720238451217707967023557448152836581694063276001649577427846805294505746028944107706005573342809496778737149329018233308353143857876178360797457011152965224118350407848593246684560339359404252232918948951123983594885164032629060360599506047437223195742454365329990675844993204931340136537245070795371219430462503552763145144942905138531111265324226702153854544600473388633861307186867787796953100944972157116634834280785953039295478327013979272056511062313124336002964594292206093361240569591327727168002690253605827903095284207065787970368105404019843057504626709023696377313821517931872693677093298680974260168348779623837523507768176620765138431193153764526427358707769595109544042693330027681814621842902810127888184255415537209561344058301100294185699269096792811067914993177429911846531414141940732601305602837026358215700859581364145454642681068619522171329957380778833962585217740168984354138650892431637135088031182876618343998785146716618596815671156514399204960865487676738245959270252091310708673112514966744406756592342693303441724460696731372205727300331700752317135359506027476294275097229651257128424996184917899692915886673136235356656683665499108189985209347961041792626254270953481154722694599633998269103398851111375568551320395727549227180222212891169542567261808695475502138633185535843181753163671801849241271739448730073688612548891201094696866395694138026217742305489647933978953310571347876229914978591164929669636316166493311255933314642066839153141356149466366558196654048988182400429003372034179315067631677823954535083424587297067285660244962583597941044882061147833137183019188157587409549702924037249534392709333300628924983746298441845537982893789902507943900392449271116269240625115508807883425901035123542329481537221003908451504271486603912505980174131529486566657492684875798235690215148529627827034328189673487036385665649660868988594807324374982423137756016356445201855117078288633099592018695695343451597293221634091061716405207376546063660773841990505748126615282019910022842620606274516117303438785152813383180667240552311087479025067056562564302328572963130189930987664084422165821285519712151286751815730995956729248591241870720019003283609351590462875467147660705527076153829071343079512536995546122490203789192995805179795734474526228053203872906798027409493701285527474704219018457602469498046058522877193440759470895884958808433804234188829449435423921064897752823793846641110174026947754006129992978443476221532564498164916167951138887790051054272638736104293735475258520135871114331759120245824034959128535007610190291084089588920807765844322975812904365455072920175298456631243909046881486555108671272899884049797612942349076509925646976214595900509682690355155062382710197635253536001991841481072777510298464534916574445871612236172676205157084079480673541718941729963210170871832477054858606161041889823806413922618562810711359079448851538877202037801456745289684565129354326646563806341963267899751450836313651719746700668073040863509819875440057905859510012487521413537899981373241315494827604045939599459093059351222046648650598014757055165291335867165762500591841780133098347076873945642540356350046064609859296072688529708633105380756199970682703132797807556881689188453330426582981443771976366016029042726138809756138087971090644684445227103977800959850364117338308235873321877748844648541649580569821657081628190840676599357385238806241817532716836281482329300675868944764455576286265574914025973816691736091273425788337015027759496679124541314172855052490334702970171230986526372553563887025163964059440050604791695754439675587591509975369191083333649002113384770469128090071259079077931141461158448279181194839098404090276614314475345833091326486072901329630998925010048302489746528106766525281572859387328251260778543170663244188029807666022797276194351210479759265127198531954832813063929749067430606938951155076876508384057140687613385087023799277024329396175526430000908750351774679350411508581792549310055777771960163059818672759527906252995787546042582322626607726702878676560344637239401753337306072484180306640316689003129744544615372493021985163542118381993611103417991592352702973362796029628780807552835390552719628070505462800681938330128547324079228433024910115746572334557989425648158816866107497464290461685237500282458425374567185380646485737195711063389134262328608324706808221843986865616065417936320339134082487173400485405633149533624664394430843845176709383393924717682069649885448512615885115379242272113375036857185743061787678298750501333093579063174387852439665721687238703577473116141079232327764902038866830054243427223484769607150224551256993016261931252573563637708609120279692542274278868624590274271808204946919410209000938220829324274971260702434715371182181914088069672936687716142090258320949292987655703943937408797859831352575916117460857590849954200170101235651076790752662116727328859827299302798960859114592434547834720136517973574308850664016339001830477528864511399371690497502975516409759697670357142741592519863623552442612261797413090539232041658805752287639056250646872327816870625431176445212877118446690778552808617491337123502875345262124190841016709791858318988238439752868560816548513345134159335687262304018736955971908747575342358715265857875650408210509236343105330245127685263857124644551309487198800922912519642406439652626849998748812751515418591241530714296246199147727084487283013492855293492883918085854104006784132509839410300623969408647343928294834941188718716530829715889187801848740991460549183998869191845785212049167440035323870871940578379303702791892688266966322833373023729074609188707682686868326140615961283970045549716613357518080087915910146276136407595204374624782366126503324458450954287523474560711849003255134044921087043027594819548884896952953649558479694574464977218538638821668391730749275275483300054312928310860442697085847956725167640201631198298656421717914472775205111156215258262295953117704889356579511983187878265789104107142195506633464750389905420374815310390587252190093814101199138401902390050501363311370397902948329101427347658320753460741089724409503183179318546328284973481066887856156596850476861074763523033058998892442235821260204360672714412149676595390066030659554381694519654052778047265392485934143436897308382182289789719333525255623290771126391087543361085167457789100858382935051008256088741795568932887842451822113082722914920258648011032113539021869532977320616975175894242166898000064204066094003981930873239048639045247017760721669110788968038659921905481200283062323493545690319715576412175911461818786255520929489271313911562857290222080991591494200472418855190690714819553555541134002480587773930808274483029334469513327945810002368553179528367017325701691007679207207353796760662335481072570172688322585337447733174222744487793338412184374549417333710811511438337438629714614517008965070408197482434431448638860406752937040221798376773569363322334490120635072951569649768560843017706068128982160941902701647711354993328839747907289828618381767325782742680729994096267287760412717805051579857914322893725930559383316033001584680682628788816594945602463754521893637818854256461320318693496522194845902240455436722287364599654403590912155311084545759884179941210207706248455901844203028968670413903293577882786513164089286915715664599826626039537804345827712058467473803574867745155632254007312007784208947785193247497866276020548692922648974612977834186246747366632941079702582560319278205693660436013999546140188112754506779351243357094859950114667360414267114305553417518564690284969678973883662089414065535073144078328469265199883618301045357565821354019384115963192747542799043307877537433503060424044109174627288219397244988628865872985014011373309702163540468018624024667893486427798980110893713934389243223063260325062953777915732234331103742460181921755678639119085765387610476989925290002226698072046962518184254486580478143700432321499136531157287278123861859864703702162459192714574290225589496951916555621937059954511187488534765705117901619300827303886823544447905345258207927335363392378347782114097336579112420476231901655544573452829151793797245227459569742482960749558088733840812630989554458571693407264830287679897205223453773104397229868204847980149214980754306517014338615667817336103791060106720569587334617281270371229766341578814848048053948530307101973445523869523363225613967701054395877700265591339803186552755413563845000766340702942506318262607024608082102423448578397321547452096227503870042355482613259630636760519278558496292232133501848528946385574751968964797149311711290821383539856360510808346195512704288683657217272481905562266461966237247680205710488304041552897785654588577201007257013337460048277672214248446425850331461037916044634429972593808768908179800116494357053499045321385058319865450726113722386731016321527363784932079448384569470823567600808170801544827183651996646729304728930529847629855584289737408808860056030530868063968734316947020563579478017011411600269440097886796988691209325168095784438066316477289198932368580780327048611367834328706100171631090052815654240403058248312018501556381771568169040815763982501978739459101162709431966658965836461457117386700844355530820862723056464527165864947776047182329504941365955873768751205370812990048454177972514663973082347603748732610708494556594790385211987892330316571204556783457457296768357124579863145679538128016232572098829725479492725869805727846939373131914918800238690031442012646572976293374956797602805329630622425634079603812186976259090768489865091707974549113205770110149990571502020186896509818913313041360162361193516784878930778414835665758995599354224033443821276274593461589370497359023433539400739538674658636349197231278961114616834927191385065555757053711726843046346211747528566471572724750708510565749014966519894958625907230972507951501664139140338339101523317798406526396405325530846117649312887682998545800970902916825993072795631480570068544936506317268378661441477720150907272981837770157446529149191731544257911609230326236722363091569000539884724712586166213520852657093367336616260342428271734292178935613075777638715713701980207937402255983708256640545777538458557850438770147742624822747846062819658037157621150523838399997157822389077445810416974094719416737021852269205163641751772975285243242479660928181498335427987766543513661819111462139358090176964720155894178527362772652729472188374536223067580891080967844521306847706887059999340409570473392455092443721115393931109541787401506930105200075424670911152850635281565934417916970499707195528899665902046417691614456521217762439196562687972331175307878007859418056513168619233692487517555567175887999515707851735910521139766466562159133121747510982723415002481856279617978229557412235142063098975109657190648534232046624057358043419296188162804944212442034354988334463663482138740992670028359615963339381184749274219776269866830447223633573573215201257994073878256662705330690813192771642527662248602904639695638317658975559695354534938618495392735967970909551725636021797726633359944631292195066699326675695242383064374722743897375311935578468873817103109576184157927051795005423604750221837154911650853238163634984312544442595355518698965233429279684210379084870711122360549113407641181373593604882288041585780751714437555401998187294604910907049882066072821716409601821131484368194115064480194269163722703372162236972037052380905827484268594090757344978582027961020620615530708056903117996326109268279237560717648352163952156298468356863204093938327596141805090937507054637164530097769587951557995820017797093904713202253254668776371829582608830241838947558182507853902479129957221073085996289062620529942717691009763070616362320760337453991783225129479133584906361041671246257510675968048618824275867258208147611417137914514866583325896719415017561675556443836217561123206291610895410787809314125779619341783840485258731973426404612971566862306205226416612105182238689465382302837978565564013442562041504683107747071307700751199006834093782557146260267323094452147247114365676157950497695006511516306632550537374297261508143864821041423963291549863018873428437973246968610414527345571051376628222750825635082476302703599290815503755899476364819429082664431768166402843115127697960909227208689566152166632644407735563254122762333048163930392870312470303856864741097599815727624553797962685174026960779567361273813810585884363804171290302759022755373193277864548458800950217634886173967000491190555422058440579367007085926933498308508623097283169882799394198126733692494404327769383813455681945426877096959125534207738431586106569873452354765013009908389087667404359428680523356107425455966630859004902414382846379752293229653224365848961491767760265628380586759901759277394871661423110879357004345003149055263004472719012842884860049428644800697299155346696480027930619410726491545411914924167382317599085034878386012257626071285542228591107276904146414835924230211106521548072731181119802921221347627357300024926775847904504124967601540117709646492031435945215455635195399967962425008751440615438757658474990546760138108251952728713538744087788968441753166363216537297386427051875710774996786541297797430697489298202929353927041601058251893682355499258111657644537718898700506434388408730531374495409401787393404412646842636216787469942163481789757514467817614552702632891932318741437289582338452835610736712886687504845560339443088327065074848821320199407492243295198733161110321889624779949123543450496196626593221728115986333589898932871939324294441979311255909220793669660075053107013912285766392825765121357030124373276924545166926765935933370044552578317331829442406601110482179940703496308492413406916695490483684591856823877011790900555562645030424152562294273204519579483575683785893480001231934457176655478875131320752928515146931456378186059015288127540879035146498682330899695288401339379448335679260468065734625666393960106580726841851554437292987666608569316138870936755909369110395925712848091051587933982624688550117090365592794094943103244126573727084344595447629482720575818152656094774760978225446271627142900331946857278634758226474867472606382391631989626396895459518036362895710209460895794923057664396195135263739268855924952131829291943819679402453238339090063048737824853534233530751647671890842511840252743425275313254204313818995427186263801293483966012324298638173827375204010788985655946734053441866494349226586692676136181268204227645991372144095386525704040945953131398820805065028555846887070622036406025827094564904997919025314006211490990056576517208530542873799621620643741162308742165272951889086675057425101982101618980822081188110117429487610591231327814803891543548635531215253283485465727646447504260261334809147067626859681416367089084609397314484604344640042395587203069653737825525815250103960259740281969590818561011353776860416784061722341711738845363281447068311323004399075220720375944062376759316213351553356628947052629372771246062393943086243208283152618046842618287188135198815443873449590056487975216972201035390577131353326724508901723798643640939706081467492182419692883384738571908465545623663785408336779786602175371010754249479877825082498687297102972826394274208800947420633596574250061251172506412119266637199038771318468890683121154277314188034363114494195025306441657972600229702964684024077420791909233543873215512917437257390673080515175120021760279518226941580780974090072628836898759969632303631434346682383597861774882951425629532740815272472645916997819148679912707172234535129243379467796283008638019751964280287599468220695413178421987418001292645486964340523670716159326151441223699676723574458901435926824822326469139746575296822490918920080906445344670726472427511848901151217176834681167886193434168650860414293270379997592795842153274122467724627465340848210242047227455249437752206385558000803452986664799458302744865022157716432271802459947766523359087298021546651257010576304233015832033432622046572011031134634262388178492173389829252983202582920786776649154499802849478822249418191224922130837036549589422878593363408666685352334165796259520074138158148966200656359765835361706515161972898122764785443308060006640210388201342412099099095623495340076519688917056168152680804080055719706856783428753767167100275163425858802599604971226903056715282696387524543129797371927672211056103562730486435389177200887465743294247336565433232596449169950750435593198348360101271531679877891547263718302315750650043848100875482411123296936278844330536718809034359076875156691500872645482861666436980061169890625922675929528679793332885614909938048324827934167114596668143680293063526713060894541480529551216216224163329947630430027070686897492667804246583794808412009975038870104812188613060788144086278392616232417048201102289465034009989789702571796409948037321689516214221651484896947963693352931314030106532115223490831232653473462810515123370373380066804460822885966714156869204704713686731400108466290100439728172270681378625306216052115943330417820306313868708899349041890918165330628918504722189743717631134374422581735743012610703097037487235227477373675732943613199752657025631763579513446339203709814884345214886028051979077007627933540721810942002621283973945060211966278205582184556182787159007705316201804730958402451125904814916904737035792579486152711064820673347047409844137535110342276831548990167877591556296201344892258220015877790342044354686620708862671173457549814202859549072217021543870810389679588884222241732934534869020056000907313338091457718818082864333098307689370811661735069444032267970770697063139185147437632020114778217951601976855108487409497941813486196786529037849967267492871387764979917494733165089660592823799128373589803912588632100471945823270933825783074752993090523150775148895397816006429414652072013131303893130312008246414392207143020860585260865102776412031142471617756415146294100751918143014446941040934783159318614903834087336444941321367854917087206124947206128164235771254729878652384167016141762271179527242194867618788212013325801847640632808966346595616559453588871429154072640679643853611171092360714188945685950582669619370247079381189016298328129068032446291897458417263631700273989613340639925645117520322322906751473093881731208241293121596636792979139335108608828090032764577825769939077671735639868183643643483834553032460835997898447185198221192230863570073676541105305100594556765356316169424115057455281978993748887706465343625971115952379067828790942315546300345030117559496595266164347698410617852552710557294951305946772188795466041894930188945086622174484895865456238030803118275999849104712215884781515017057837110672201545393469230659400558219956043362635812664485806812282490730247851137058243299714018200334315666446864611504462259165941501014100156273664125055262112102297148060602733590302070838742806153407693223993823170576222832386608138842762444182120502549310266350719638017637764530854952262582567774324467284906673095398294615990000467455288865030799196302466632159143230152912890067464634072970087297159988215494242702485512978172054456521129800561753469870375230728769418396568879363407220932303303958726868913400762491180800004611995744211292814141920038821080481919830933883404618435517400999861690677037044800289362128456780830045860699737357050853102105429311174683824304842447560643244283711794803795865042552750078543834731137565833505000200459550343932063633333909523953533814573574101135711469620814862499653101676355599224608129143847576452120220865349929073776724484818677087229301667412417840836796314264690509641492820126311377807969114343580233698748278816183539520438630180380214196880212140231081674531834732168788533160835786647634841531970145409388838262103874240081218349574630317428336590816345632828941025012836893726034245128786632017338407710677877467917026434561796290071320151736159434965959013124128329906814457189426440654778082295419189415025832775715808918906400575924142643933981781011475767272934369404860247494546630787889220780026628197069322915152559350812601903420589350488081148020799962289346390942546868392773047145553263200618909368700834450209536902110882948441431957501734057579786163782238146484546074483138841940216715407042921208170767425176411599213059992354083072644503033228802759609190100644277427462709908986543016453203159875271758631718046825533561030179971559365598277255209274283492179334674619358990383330103273948169996225397388389757941609728892865540014239503277337072785685345365116058265288135436939226589387718210007478555500600078606539204873190077724493204948098591421632367266316412167069591521845385098040428310305599955706186011520705661813042306359017258741306425834691675663382469573037610926811888016233991936409980513782263155274256391388793311434745403690534267065118322326880489540198887860230980059749762030023711206730017027242694956349756402336307535864657785991162469832165622405802164068287056177996503979677419560681214704031714710046504405912110818173884266671826871677841936940549071361140013505387470140176289987015285090293714243455746337175339205547256952748941932118014953419367828875519457681041992359774038988920469287504972921458117215225941362897031008070411438447853267269466867210416595301418782709066104537804036946241246206701297096619460037364642472063435003718726674267509312186693081261973454515949102830875015811977418316142779512262970609938280848800572331023499006604273802594908034678105426217284653915535658237085712095109743094499936495411944876792228834339816986021201081181005886050604582441387034715378970772894312854119111456200845458989757233544829997237821976364897364702149187506246641670890564587299015737824397778730964500308741959911015809423104730969418227334297635407837228292930650561928352719979759497195881823911711584947899950552809533408156853058005885790906075839722153727369692358697295008125633787788102409369014555313320460870353905836422259585046476463339842187801855833219486601999595171477134693096017662630950313330419328978783096974726180973884743986276913721991176919517696249746066754407605593886650997913946617183626371534432157746192157194404683051616547938810283565399954862130887648001918071792214926984887679157274618499056420495081653163503446242230124333863816287919549361351729308884915387348005215470963270675918204364821970921342031903281019510474679844667221809986715059030393306737663889289178446126691996645172060641694927548601172718667905389582769482573700013946910661890805729279133563584131713868986149256996168205925216534247684239384994044666819735888097013622621908806716275699095071124510530096737550881967437590366868148783388039811357655321700303568019017581379556868482112136401590120885040195900800504564226106222575322832932242838218854443924242746866250019741055091304080697635692896717498360849475896714140358960741277830092781611194323167758074124902076975229070226529392737221937049993921143923067256106214758031240588382853620324181323528524042617508364428280068611364430170081179373780917860134871202563325115582611702926644883135971163505643054939984332251837873634179378504001050186036114566551992788482328023582675251546324521945889515926405696294430277676861916024978422471255155165977477369361095313185646276805013844544430532518218189426985761924253307251713613037549042171982027221003440952295655430802156651497436055416686219850753496494179195740643534614909654105387638420182662589894234079522231005331774612783559078532049532503600120966674728291227044403348308719632845101610171662923491341676188602542294180906631908011608550951886043700996562671568707345024351122364665733554653841343135327441503240447141586482550790704810818988982072328219330564618963103901905302805362530385484946979218157348351064334634825094194621891600967667221179496607560663126326701198370976378969351151314886247776098180276827310451156811034989224779342845782140981903104023289006776297655313303907821010191957662201112013794416810723712403066292440483086633773510156186717919001970920016125204280620649078193661693815767716833111858982094847256769251571242501498625612263664817350750318845984389028803760716666352834167275160675030138987978292412845997717098535789506547169784351008012323232179347448418518954426342630695889539467103051189474108501937441423189180843576012526766402012026690924668189952198774877990474760086661658086378554039540629827225098799688480295970741805906920459653665694703695378833007590611560446151449088275154383649512057983362181061610242150126055863931551169530305071988314492079175681202909110373041045225276365693733923091429245120063669443334357916284799995286856039111590328145187274691391094221789792604759756896560083665469063662716543806831179608196902050457229781017699619010017623484246693094949663579318464494214755412881722732130018901686189810737049056966845701956450630729887305751089417818791199050136983614725848333217625986917172376607008118276764393010143233563110511423124390565299407148290728674998502471734865838690348203700502501744560843329247191891814695583552179557125046534299228931047136032350582871062995927804438586096595993976270558820903713798359327162606919964955911527145022193485839268839661380018201767788163939557405824489525713403295428811533419188508623969510223250336650003070316678029834894180545083111617498037079918800195061054888638926500838959663944645885171630112673589500782447853200181735811704637919343817934788191798507213307601769887224249810833236892009910043731021674170042447215220637477790128727436974850035879100263651760226994260635864504911319259183146244732771674575483684500406285572293173637154029564836079934717222487639228888046650858635137569450427674289415834586051382989967705982551924308305841217246506663092406716698814728715235969420528057679599430578510954750584437050902045679008893653849567518857440733943966741515502552111037750541377286082476897262369266536556662397700228892166177226477755836359059762331328628530920659255660413976423551443811356132244144864022044301553543820724534542850178849487098056094558709853908316137597411066392290662545454312019928998532861471812782678658099317787377954673716106219712282181339051183848873788660245717476545496784765881185459900163548855122808134677501948031666102556054814583471593329644982970644426450284296052911298451475489338914871300390667090284749412528165994530249844761503075901802396469602710573755019029827615971844086381965831694953728566989657691134431705525880950884902867541777440451159919055844322473278194242710470736386685993170168015776428778451264289064777106422321325229945251535529057012894199304303524932732735880858999492381288109442627889572407515188967306784173196000277666905846858982521695451346190563681293711962943969259038074219253362623565324121695203345481913551589215104242409262602554621979608871603212439972243291715698801833751277016080152194748597106256580451261942716279491085698711228079858437933459021630012150468733771532968261486118475480473177843882198060522853116483806336366243794592041601295157036803800501798246657702965143262521284311572145228469956184662760376830639532215988679389563785465880481825619480610454582848773482267645414453563568242892633049244036324298737981269462574050410012807783081697352149239524266375977436209612655474155445728710929189436283107739931095883971695619613904653852806168768146333060758583580683506858562630181656130167578913250128209620171629351687406306040424143913921238023910013112904162274202022205080814799781434218748281674700657861502344046181718515619951460940571492248701640071638410873273090764748197048452170258888365328551407564874889291556551047747298790164404555727883141328931469381441697315455158689093287726919672798304473940727301250211312263797087473818346878438780568047340155856434138934221199054117534077043716276019488499902842521949619525335166678182962941124771920545574208463294708732900288414559037707852650634068319208256182508609355999562631508959481339246020522531711029729116210675524110803107491014693199544560659603749886551552614387832750152768434796890951007710122585079720380488410588304987488707681850193720408126788127824147533921316590243831679290745023934012645933316057849885257941496143403239394459478882319686463052133294741612781142163884272093022766914213193149555655478371085160673993754385813353376652985042426855713682991774617630455937716271549877710522444964561869909629780418733675515653290014961080378745391814222761699550441483272200286274603772037356758902882420674706493953119002939816700489447245658602823685080415232709761232377862956399720562890473393051928811801358307232115907698599119077571245433277654995053818582301115064989208512589828950376457692207285300193568578183386977640440520000041699357314271797713887756481561699840104819623072729481680784775032730699647723295408196343889609013604810597865414466636099636293776722153382279935432847674429568214294282794586521054454885117521302747423759338233153472810406785679436220080726683007011774407306810364280700716250814295800255721037472355960981523503193634274262305961421380449999890574393418285258758302499096796761148666826735757161980740207717744456567646538327571981853264473257372854616400816684313319040874143283237074467531879250874596215907083762861946490857573689314316850664291027651543957210218944964229508105069438804305790681036639794817746440161810450227257463994978995033171768533178155020194739067112614522861050070537407381995802264681198890703723248053301118744994243368298020655578063142040626884927969395791848538853872708354386938054776562213267627320612189744554728574325285423346421496572862008439113439336706120353171729723397128452016131503151271557815714430219586537486998781353968533711880190544605290780496776701040521591398882836504072284829938829944204290086306426642087654411264404357988240525607352548693117293040010506537596026648306921426745958677798118548238791260036093432443180988141301765127684336522008158331044016018250004325619483426569673922882783271034607418847029356565729251841295907046891000119818021631799184517268097617793322147535278680669108119894512825734190776811471974479866875672610418245929961801506720879443292122765836987421048710738786809289810682139566322486838275757655166306916416584542151770691831905965760519335939666186707617859671678259167114744527674537498121361063149058758047686226032554982896312758619194921843810130223778583943338286535930309000381103964665830068289065025866825653529197296917135488772065706825212082466247311237707588261754657177663023396512641716260283708732202378770251680534384861627370260566911966860845235535258188094008688810691268216372073662887807971649323471621164713462251974336872248745896040641933887297979089202935696706392578487234359351154457667617315793436495935376876127197540122567900678623168543145509594342366396364418537267499855773697808502328452043934526348775324025946721856753488718684563483259785575807924826416350733313733608556213489095344107086694614285885888907769762540082692704524182909158912054328504860898259360724087435294269110067671767409260908718873511238796436483567488170666052032231987148328905279340588148194521597613415041354014164997563991795569963438086590149128459213520145869494641835463971081113984843753090761000908381205436413735407608491686203697061858131134036683371143104517367804170794677651807310617909314306159985842713331716317578835213770807582103291114013828674804928250812703166942485878932903801972772639235448102274784624601038803549238594817307525507605306669175762917054396967197757730818534241475395276864108950353070285731550636991423236166592664312827487136781882712152939962999736424666828048765983198780056270172266984365594040940776583642849803373981436900753258450238575894541441132206013890513106654502442802260722959420210318290823140288954424031594008769925154622409659611044445951543188354116543382738169314231144897966743702198913803314306355282033343163448884644267373498844466616810483650444410185781317415886579730024110265872336726045141481463825403903750200923494543873549788073767237496375550968765297490042290398051232978428494708650943731498305707124123319876390362851843690372689241975816105181789530568597581733939556233383590943936792264663687324128350110026582123315590454952664625249939942013720812343319548165192802599536827313578410825652014238921937788852632860157983364994580967345749743688029650650316070867462436809235598058632368768995472885490747823370657067447415467199695235580195879178593797031972974709675748836758516421410799564285826299942183057810200675335655465508419299001621023480910047800779590785912308073014041699150916208808272774965241495280120491112895345560211479562600933641230888784132926743566631455993227256115815506371535158284484358348286359044149613472889527694772559361035160659541810705935524825880562722109396051466413210521562261219209255669917168489411449696529756066431325159543973570624788922384606542330384978763909341979003202383475257983000954660400674391720725314983838171159975696811701441520133309386709594026314057783279294391749054870853662873713738576854740371856097670516978393062591016713048791041869738624178839898147022116834057012503854507172395867159695434329300094413049446664486105955378046247338600363442472352776651607875889839940218321328450944149000303677099434945312722836974003306935641538123261102791683206756108665230609732777194565049201937244447406692130457145433492911597378802139601776470775323334881645282488839318073649420969272884916790855613987228751951655560438341272574390235261443641025557915265506428650726126287792137873970238054932251497358236200787328067509076629385499803832457118675203978596846512821536651262013122393823025787980146538266031111401756131697794733279506552296409966596812791826715407293926662820415514977683201230361844233479612298116062302424302983964276080378834806325159795306628266422694984219073335422872175604916434502732984162975850989046937951852268122778014290954278762304734836198232262723169776890116189891985454959064277761565371263299366995367764372561920903873672242976047189324587796504660683923961019823758803095749068013199372374905424449603142597581358135835064475823035951097673642021816383004982106557007145432222029279722345637939618401015134747171626066318117228958409334465621494897168665790171216494019793806665779633526204026654138064527398968174099014637102534084494722661458534361838989568252282036320794518956458942632757287444042038374998620365856641791145550509923283799932611742748773811338581854062109682678466256323540818702327824775775493915982639463088461339383254248458537492633607306078455966288302055921321442813441565195569904498082251441003641672981866634645483739182647171034886513076343917166223381461698234328118746116621708402108381896548418558297200541073447207768288221274313563635285810069808535680333336135928721687609747472868704997732385765450209537471753118831520850088954230909529604653247849537755137312614502149793370200426113771569759607279610633065196321629423494133280258515624877736922493368451204580209646148179726363178967410469101752712074042034811001040373876735374017235160958140825624804927650322502882864916969717762291694058001349114251016539598035547939495376750894992414685818900466577035232225581209365083446376047987429792666350197706823637353187813100397373418157168051067452788043343593090568082298961767783446409322403901430854460872756799976043082143131324708737087614175521099579620482646604418286837779598052512414173545647257657184665760885392997335582056525692247477047378688381314846540232901050641343376985424586584484907918387455146928471940851252173671385496431386094142639401503949802637521347836385125000800622955312815093258251215502769347921856679368514985267202006396238820123359794007707595829030434827228182421019742132405277610315597471571236571638764429441139246750315049881226230568603440193068317594565668643121134831468981272733561386587250032417764920800559229432619226850352189935193408760145729631234627592929741361377083661094372352869632664757074360814371534592619170702189292692560531424492363732782368455460768081242130684391021893887381140049996677274604815986623646414785474905081920260512431130307974634656456727478520527438029669537110933546959728985908547424802852064774567486950824195685799876101110988153793267643520438790703630590585953545783530774885249785494172895300057643899257439939676645369284592884424321717341750864595271919197935487562324824938277067822240959537755056507622735547552546716237698000752584188260706546941577306983005583261027695366610689641340968900538942306470302384372542006429421699197829297182951100929026764075586989585111179693987589156023576075282229368389946592214268379552001710779390954910237975614396672133550182517150414361927837447288734904846353771622709138346273601003839677795731302174755777780899135265842867008214344907176432224341876723176958309754028472324081937886678153237884552467765406356295217495276891740386567890229588973528157171850462624816313895781113548476351945062785043498048837441872894193412814915412536474764127594632709747471924517022272206007593959333122259201007720013720826936695007480098558005053663863650782007339013558122692794373019545945505631252373820149983481589657586198127415084709807987791179283377297593169223733693509276313209775213057445235844329728086794666809920125790234457884681862429151920236038761506006359810501980752319971953178369742433746851301438675429111116882326682288537845751885911251115360123379545141182025645164211941889708141519715565095670140921328623184194979677670845902711287244780299535793857292935152478173498386305228320972763341822123054903441363058992689445745518143381914756170609208744651207980724141782879005510099372390345471020493680259351014885651002315299432585957250662543334634733710496956565247959020628089733354470401037618497489688096944870201104172105767439866932589508059201383686371861819743098844673851931276568069300682935517434547221787705810407206678764931787173166413645148779017644429506553374248523152122093592776375281696090716886262721054428430829916593239655375473657253077532486436936164494900051879317117239818182093209851385313372514822791594293704110886207890413892341320674115121151265572500445986030032913857210970588523329047997103134500722503866382414802248702982251141664433757474322705311329878858264251667043643708563777751851589841591023202591590245507076739093755747161486930083154064765954543541840256205934766808699275570992705433451866807875551124385571588958839566956646964658882977634516373648300586825329936317744796346998900343050622241772999488272621802194949486238854253492646883190008167019794382635462895144423303678755926735333822669363355517135258214210484299068803309440831798800848973486243548152381697714938329940797407649613156420940237977994539050738836230447337549861531704134202514525150604253402602227551079591119894642604850786595934674109768482840410186609211522557743251737239597979131949187342456248967760649783568681814293482015135413136714367794287512651143402598111165971726701685007249053915410587039427074808376229510463367477128739477976606827541519712069728092267335530276256097949136762647679373045147881078135004112461349697055083121661451798847230517307273784137575684427894307444164299121090888169087681786602309438525489295618757879985431321969194980232657332019751907052879863728607757845653748180039600825530245241405714530760584341724427031936828071253708851793627239440629923869061581026425747019026252407503683751223209152509674189740043190704999854257745758357227453209902523492783718056679740026113397867251782263529116646718233412181213240208802012847622747757916017124869823770516136943797810792987103225195278469360569915367720390808457925024770637048923102358206677623514061277685231112380729021781786086915114282963940598811564131929602941322925180973012897204764683316574188273668789090721116911103869102066689329744345144468317413765346970253539970158822246244930618732077321420210268083719747310529726676875191064257891969267267686245736062828960956646214547166522210934176374821991200222626675859877868389793972480054182169945878777405767915529321004534912184137748438657952053726743872720943845258984041944400930387734768575293935452177777624082693989142285285612581248754369116787447945755034778810638587568252528325863116596808432196417314462801764406500188493801891062718952850336393934635995274945881146274655837812662873313060930083798845267417239812886686873800824371407072157935932559800194990206811898819047595817253845367576663524481450446455670666080838181348931981607907550151586511467000145858642043225035134649649019306072681855441593434886677919327624061385295272649926105122879502068801626563945680903797040432684080261525185856096982970962190064660235373045586672508189053663056302771037832121113443937017362203592794189535106623624030671334892447548528752520285515470528950961979361996756733568992573825869451207788730756548774281030798780515753793090945986445493006572764356396469505404780781966124155862035779922193025548219900502815398799490678344829004587599218684702313080019612654057306884237644147464846160324030697456797582147255290003637157100782179115853718849743311342666489253817229035232375152899642908619243008204422846241710838382538241589206003022065627512737898012178068864097119745704470376289935214668498390984367012220443802844784215865195210172335904937490304388838634175921592481470666931342550327791804020459690503279210913426440666035696430537069779461840670437617570625315637996443935894471406220217660145928628608351516447847039469094661595891951877129422921774626652005320957139941504356825661667411646324641162698162934607960398528209834393341777936874739094654212057461401216901792647752987320299466495776401711353772360175705221591725633275434611538160922188480040658387928246379547012610592132296674873726887224562901411234271605848172519409119095697531967743792288710550058885680291665716753948469023767340450199056308877658909584188344416336277641374289913406367878702706378431125970997193474948760567512533283523608023334960094143932592058162666866254692905208159390366964446847538383588141894376010507108777976995025955620957540148580560780642595885055588463890800525487134805717886917461537551103627226268488770663218747842038117192841790832473557155003191447429529173955279136046178069421659719908724282318625182119389825736662971700551137603338628722885374053890738108075511474527763164523925994817519601558057261622222871961037454119751295931658075952606061717376257989119064906217909395809936872359264727901527375098996937485074717319735765197532593841761416030049968883678482227309451454830976177033746021594089231524543938774291207755800583835577510709805874393793520337548633015081910675854774212585482056010154965362267257022010334904147405101032650271278812312470568072150067212928385373421248005066161471610552695233364171211528381142158327860849300543362724765403976534288670276911559883022946871548136273498964211024508842749124433684439489382284404873912323989762185413491270321589403127399932484639375599591076117195135053983758913339322804273165118593437218333923972572351804079505423397518171533585302058035479458899845674892849645588007392320587035752026110776740792879136884990562735271868809097150018558841594154804903319264753498590746705646808952286692797291879392362802479632724856798765774595814900456171689616592825179199196646147815122120452615936423573411570403069700241066136385980194351455251393468054396880423221170707193728552016180258769527688797705976304633074740680958207772026748182155442996878488064647424624873033503586710638258305478660172435495568884015965533415065819678016056284331613279368041615539213435580130872431175893330342206244299790090121372813681902245628851838700753221618386531142095516973491908108230344385660692936987894813100633553907531961755101712010721913887843916155996349780626092858224241947039287192235029176232891119673154533112822710475132973472969065028488801021673153690731215895744445110696191722182167687217020548018035922037903741896204055271218859760078571471646711133385368360243979450535944258639571516570801917876106141915382068400549866890097120600865628608819169242646819741267249873000822170996061195091733259049445765591650672775164781879779878811172804881247280592226582135439050558936157770588271080927765845556052696848067784236485889004040428943801469608101856206511604750518853486673298682602188921554142203324458063259581178404779192102851393732953409515450700879506633305361617244064915510544431589940583646328298970827618336751838483129424934491567235663280547973902841186115222575812852777893599866509351220975079945230102323457747794771461506874986040623283686737416129230248336577697110203640967843792701237870812410898003305388651012102268759337244654530821286290923361441029037733693315728186482224777813139372986467932524881157989247695322339211582379024233575749137153221411464750637531706870370951281866967365931941191124578746482097142093194658773116294845166391352739147007521791439095415370051786549209439153733348923355456348285556042746800247668255446201738061849362400691392232263730269450682425744319469650735305770470051831566832568330939944041047369028810832546444278747271385967609663090061529740767533988140294099380837179712076134753442090948645079587378667983887114405067332827595503115708507935289217795031313038778554324733730608361660566587268725039202151074399595043863130070018353311340211108139335101576449983036234858733814087132314369595888806596281800992982802945002142270548502685915126650634356661074490365942618444055578366926943954867900104053079044392541613072321522599443911431588613726209046206365695218816507454896460239968764810217178085404414815264044089078264977636840481621980375554495224068929322327650281243625370200082415369033458218470026074323698280871524238084785769179263462340433479002313769142090682421185386605808643831169835389548019195767230098998956795495316483270832422030289558175258604882943075745995758938374856556675562436801234425848205484345653211976963207240489157683734813351850867801207976947065540985548555739034620696812065262467952200049512502568411364371148702022080482667019436827467303846506933157496484872258245997673226761964845368008509228098489684518947681777067933172462652209482980259358426829681001048990541504880446675815569746226959610335761266555353538032025736241509009510223309325126721492252952612018685551127613783203740221681494633177628746267598528767494989371894847664815605712607165815103940115937583004283319156696232508891996575238926783358502585263934797408963419954183558452675011417385851386552817401664498368394779193249965342865616701207272863759725577073143726869908447112036605113911518671055817623023882817210353004549235791853049793235598836470431763247627306042786438366087183745457589317864857610191771082452992041379679436691546062278928613136748015374872100662145137172277304510094220509989313331131326480990133339060905429031211541761277805706457724437416976257672622338798513761583362902604864272824214327836328572793987526913251224498299749625469255054272614879486451230676478253872587015167706685228957908004690513068217031763179431995704311902816453641050823288740795893554482996109912259051520047328294753799026746373435224394787867373695633545088026589890410001399701371955907473125626427857112580406539683342919590644273382812055762887303666549459530165969651641949181186222209859199327390190972112877246032106546038635319994395113513633021303717200630136085975599991889851438261128210541986524289923590480987633266788028088707956215664732199656038047606403351742847038576412158603213080336249833848857428061777518937392756250498310838003564739379378972585802050975067954475497538825770404342827239373462658745675832303376409507247035237563506058574255003324883975714538857049929715735199712520589387486810248500529415376849101538424855563238097785150717036035911947154693780975091218388313627666341211601965211744335415932676370879621720135900790959694197222721688074256081349209166887816239506587970632567993341433658992429240064542454031487778654043885968987434391559124513913408129943986451898499786441880653098964817678447484148078437224352357047528809412719727570996962742678243429487263418186305910056847768426805254106141236868565769975013272841636680151722558558544635342692076361790383318325758509590031909597445650918027052397983596564874759247061223755783442564586420213654987726917002292015810346873587991298318468343835798150639282977316609486838188223872137717695969837367762091920730486583296369930319061685073801888279832551339378793483368796679414942069010116498217210175990874483486921717547580509618607639983755582228230720722359782577019162145352022523302447638275579585674681847730174241311694281534631368499323216458836595069603538346008921975421109612315652665429205917048912936232664580967775085218059944883924895362117225837747434321097916504524301195272082254471953499340465521269100347105860699554312568501225734678264704027452862741366306805820960016414840749969476932551809908880781826739485299624698033647952191847348813655950123824728049241674783166586255261929961801607324712985641657625526965340533001588523143046974832856602610904108359065233200977685537135535001361667639441461364942443817279695403926807105456887322079722454692757535994195030021244605737991377928645770119293132212192423640927615625638006643741985860498430804075731292533844110936351901314448709404500176340116338333399222341938739788794462319832827569031564236136017625624778895114431598823141654000542815741000966422574853899470032722087645857103504080772878089617914541249067284487971466564081577867159020757161885945702376632576891376692340257354608196909457462715672564886659008954684550481811134330202272539093549059714046876776480618138398767452188915358549749805787498594127894386954548837918746769553358596152203436316740664654896262654925141021467818828937143254522003781077250809808108908047503625157607146230835246508313322710475521533869262526268895026873132554925076928096666890110289972671898206019430412317111679479821551550144027418334840143609424292366371107358775248339056036039650090851296690462452765316232151549879850069060913773777488772965770699363373036252306558885164610113431097795678845229402634668485671598163514416922735853898103536659255015083778990044153223413543052226868414896392231118652147556023113256917166713010460689139201813610252806216683142272865551083223881585765231583752002449298257952559193159943548521213085392864678805694208115075710940345761963924215960469968339054330082157001050112888753908858923943692161487062334681086254314682678183744370358839696892967981817364801875593045388793956246157719543941840308969615911387404729012437097482509896762850894450024780333300653475317876234768492513443484883906528638223181786999862866150228213726180289812306357083695723662467495863412692754345485849284775788932394188756662115575659050067008009012624102589795438538807013346782422755691857689201000606305954689292680051467399491231537671398921894798853545825244654686107601107779329925372808310728011180144076267317838823216787356394295632699179630477445344533725024717800666525231374295915919469305583931032361285003030796616537754492643137132685688831074720213976445164286058552352788186703111507594064649102704995825035732477236149048111384000341551295519431028109832823416597594141402212282802811467164809481108571785194123714075885443847860969875240416225031816570002477338968595196590485925866252774410689284044948170961231122452780462030249092659546923680663111068642429506458068586768472350741562365462610579071875927595867246528890934824228537188194758608207286982262540100637894567231766981203033695517872767455880975799047206629162795171264639756587190413564857948783572289229870561216335048310966005629363883255339044863962393545216805112094944918595235483003227488300675091280217427470770415180533601255850749216731517313426317941103872963493289872804186418453462181281172608513448545061037892235993145594042513556158035216230509262184996633482812750065395167919879742052769183726131774510872082425517979312001687405198844484323139260721768319272662693152879161480464328053809591752583623536641059739129443382822184240274132492959627825287344774375085444829967133763350641236212415548995873784127017240177779293542724868303841472171473056779538602376403341420483547828903487595869134136944854764841832634716811052836431175172300578562627525425747778973118295534560350626820265326830086089989872537391606188541310986364985771224123749410993955483580137782475716434863720041351113325117062977531867012341487892604273721254326335642262967204242177036906285698005580480245306051354970524548959395308524201686560889538132008107494543341933156304136205808307456842847191414649993712821264516899021037506717706014020379677032656121594652866120473245080710949194824028775445494376324108168667264942106582213223376702637038124979301876838187797656917736164894694313498113114406116478168631483009898672484810388879486991623344101744280714832914668818603037210225289534532341802179935484990934390771263005202162760140006700685527622814026961583697483698982419998366594422916260256384159135794930491497216338087527390565103246603949478276162702444101298874962300145105133154145076205029126410393099092301734466464362643568019686679567604707830434975475362059017575561298399218014408081885785491961902204917920047277638413065835775618693064167037471715130715575609962298166301622139816901399490756349736237641940382254033070643197546060908077116959999174949826857882107814659964630582955640521664123539644569381162677155854768318952541161382724574635098075422672974529293860657990414929326910616173113447161717275990246920468181984772637704810657501108292399385123863291242320913502701643592204507368881975285854560084009494827488393394083360982827840069643282583181848847534087996436078414955414612733171497470516764641524829048420057610956274427247093761643103311759761454841091653495291906665193202357465956168643542393153872056625598086036908048137609662009643220191074404705151340994062072607058103506888194468931879776530318754248632900798127495831553706374530857317512317016720918880012198887679364997014155056437689041393298352543070011865136797569694827844635186581033323744239064660586294310621138497829254181887508986320198729686882908749690208358242570208838589878503533228601561989287322049798370255876367093530429304094495749295930934965689077798474809451412530569730877194642863033423800996111592544523157826060536891428785573860854167522845963375292747252868504170269598233728532155527976329857334152594250387041562212969756734881168165019952001272710577895185677443674504769752960777202326862977463334454456662755410783425432211097247798146181463397325436669081173184301982924285261899001124124762429238961871647878657030239846237022286203018109890705050554733544421803457941290404397684169438373036315554120931005560598200156142650450076308469979152183261537600921281680372730238513458529305183137918506202239064619756326581096881333553417639296712849621439827088674492409165728923732212605802798204053540989016973905040655588411270211592883382827994154789616051463592009129482803099612254147742545524745320311004954930342342008473272659714586565209884113882954729842317821315671358362213152225977271009307838846945722522798309491502352771352363640402956234630137789890277763142162680757682736346035834853624667683355512158369087883345043823931479494904600714994061731944389057106587098609417834631588929435311466205001039576470578466670705141999169052916501067354812207776016033426575341851549249498646660665150897315876863040340736633861165157938836198296120707914502502286226530428010154464338265046893764266645628313172214681136145791593353753740898734068298521536063993852741532033646933638855510204952925856000548613529527233767361130901865753357941759632348009116636751368131077741893513339438859156214854016094563138943318905994993539034241468239944029985479081793982009940110981797597425005117704749094985701104675476172907855863933078220377019783396031377431877275082761744418245887294372731838486772975122182901418178963892384299024036219665637604102661353463471243890688610052803177994707238212226899217463395007651969083094914648448136682413216300371344496549236948771153082200648593956137497782726247859325684931400276701380559016888785618856015519291747990923654352913995376051870550743171268616690807502159158196701582099659663171907343805195837817287405894592925018806696752851882591488331629039597535337220388318571498883804041973354878727503196358556493179231638735247979016655872516702789195018174564532862027429657583126175271238914012786484896425296554596878660251688709241135277485814710247499929488443943234839243539732958701745478845820836897489671242421711723904272137769104658626505332263283555861139222545035332313924343060155958813838510863489603062129167570654780524559845149950029862421466859199982424244031271188630601045729547772128097473716211961411081521718700560011733796842006661732778938355704313879073206315259138389217450003776843868553720852126866338956214137008606636663194700534155906561908555542490558118065297885706271275776425158684563827639567671459236840334432797111242276221298728504332368113610025308531237703750085238725013732715964009329963135308674449927962618817770980145407043153700994124792807680181691754904483434577517574953486835813395083984382568554342102783509185327525892680919838842783850310562096836441865080325095973165561737256323729350410299802720019404100867124510465702060125624014183731731950220942402297980021780589703483271345754623198107690644174755310124128189012085144317577717067953224390753811691365191142775051700853018331025665373532455902136589998025306921887599750349011753778966656633702491169369057243371221779710504794671265234261506672606628258518316441426605167660218890329805528897565816425681799025239460770367812888577602044270818626242111348323449393425120891177792983885970139111153488131235167798267569570904659683806642430877101505437097864893802818409291139419195489378373659841225642160554522230244651321240129026165776898129578484793739904964460717472353562717975095036525311177313700461240298929403653102758116696217462076728309321344166088867489011388533048627815874912126484272792964823662684024248320535486869351778380025625107946123485899945274021626293349092512902345124307928893184679813967008882522792602377413959816336740197707370774503993146531513288356853074283604529540220175911208656365325954432725488145843457708025836816990029331733125356693219371009552486777786393613372096405131812054751543987625363926629703895787822652585753112955392855443434528034185776841903619083952552890823358673587361889547061673545716699543937568653828244056105799548424878957924672441116373205142929950296385044151531747866377160106036012751665055822349858339384581093031574435602517783982343101810077338403629204080488261518890941148437541920377454160742238850677801549520476434595060867891551723260634705985112726458977372385830584246635431693931165501961217258301188400587838639295260992875381913273531913183094665672191660707300573033172629058880251885060459581077743623607967645497266716540599865999603890973856458035387990101248119671076787346325115531766289744567228685597833280757960407158522564666039094975564737944892738371157216172069364438178454364636427454373639256423190539946119073891378972146741595103856891276340684165754074404536471128524020395023930606154367555582747640521845158202099402539934078614888116158238379128850109266000140497512711553165260461369807881345618150816101316227333751680692758847994720144353993265180200398613352811354283179950027382692169395418721406811534249700327578631769737847518364502013419999598865923515844642591539136650463264136618573597076296074249810483677872427197014660438950532559224552397777171251054772561661481963520688498698608716281441856077874076697911726347364814495311114130440804373181867274520805184872373557393411242082727161871090703456593078140186569657942860161918387364655365232992782746071935064306212578880836932569290612972055029637494449027783162712147635344275386074128092523051420798460770870962165628244025628850384999779458290268758080912144182412464025923290814389752368351270910069572125675923369594927114080108290767621748308076571141441668870399407073890982696837968175618108346535903904413433158990174115355953947853306140070206893111260505870457266746706815717238696979570596924375213745684155900211719378068829929647210132767397463081013746375426587990316043007611098387350186253463608388508272405958565787331668842696984054731758407259228630870091789260730017292137410898179863374734157097177804956468219123666806275732523521752093805046448375463597217734716199401471497665406246177452164224396099762745169890435715937717195428821355590589183934561944991933145849753030961791116890068191432457937089825846842659300786297684874970025860597612290377655030128253757429156753822320922270235256115244641947463613732445629125229001963697935018691385933572842320613969113838828430004793564164125232383805197022739309884118828596036711646339982212307143959128491687367777699715243795459636850245118126632993545248138964014415816230221759796304014545652316213347564515418629282115230929814288126849844324384434810947744344987029587333200548855605400759471977369477694235230147474755625484895140643127321053985177159003224102127461675205625151549230695438197149862421394972237596650757631797932962543095215143226837488263555054756858925441174857358171858475011180367840921321986249357066837756431208813289566578344890517648720594425077713936189969661094721742880181163040792504907052571317346354174321737970299887532099214242077796144653514103200443823170080418160359406754963726450796573260977471987928408874745102498956857276499204771673332403737053200935197487963868118985852699624389841360529684804814377243995826391427206984082762153965942257102483374768610144911920068596830108686594666223148928959341227940003551857724178596581585110877885447843313524198280921207563422135951107230923971784590354549899082671399256270727239609736693129930436302919654659821599359135839290623517632958461300503514991484337022876556829614931401799815471715580644471743732000376477535905650701913234009791055569776671573588639395421329516307620344665945853406683438828127104023067346594776440609249806804922683896255632806966932149664432629108622345963109489104807575435103229635608919760413353435244670929478966041876742832146453918352843373960602520305438558963712444522237947937594550023764503203696573433978641065912386165859538130180727635369383649626445077107664971260978273830604523450537437908022136751279719146313668190025593197389126645025187271792149996441839690981408795243548406345347225343431910701616681629641451348063960152682496700933933865693162525717959611225824463168731570595980251642037760957033410476902525607825785645912666282807641428818879066003262172084628714071629210850066473647170251804068706770798067534169505609202775490135653508202789274863881814078154467337736642491090062364976567497047240952786075939856070753042501100701895515225327579409770209743642054981623341202181617237958107112322633350385967655608397241970426032672192852823405855472261078122008770549276844392081474286142823031700899796497454236558392485671684465885048949377219279067530687539034719841177127439037707128729177952065356246432973437943668192351549432613794479080581372212109984894641566728092173205650136630237506912557757641011293467767982345970153362667787706829866457378148617311754069736174016486413999625945070254183138321919793837869570005604928599411500497700652399683189793673062890150979895088610262445996683600340233007997272205028408777655738705205655064575887375510955475530317969074838591426309354984893426225134363205437918746903166269553620584562646985515037030327993880487321952161385381988746611650842396248474616208901812982181109246523583213408697415176377834819925581362996944602555110218514766823048927803566068345632704332381570053817208863763703562830717353922442146420261265491956648396547408568524993451701979675184891917388830554067187397742193216404454023507958418477930825571194724667999117086299217813795432151815971055404799612267623760726995232213956781050257120243683726442327962973377033612614936533001218799730073115035194883353568527925590156724981637780821107429038816489903739640123031948938717094991403141578179175128509824254227762902485442940095356054384743727616132843689175572907751767891139911117031490769182756995048976408382787891746434074598444945814622071533687633099748017058053294642426395265313664116949673870968334927137126165759340282891471413815127127271092427310357065843775327204781813413966178662553262220819381995128112116369807580881406854230994131197714585231401447405908813330895309564950543727609556906387068370625923112883243574915263662519382499365918312777502835840589724106780583856409378327562418930438007249759068548741747377366513756134472251854077259388111852506582632921792106222862325399597958875313775228940114565471447208220888642749198501925870979443818439823189936744088844856356768828850343606743916272760788464580874961793439041847814438828149709763197354973009322608994487124758573964053326379312085100590828680860664989962769326204260640027475964049151902436649144739542323374791083158468475746437422790737623957707085759317235762999253650511663681901188736175943273475709627495669505776950933943134459988898836809618369075112934758688174843626071737678245840218476400861300379376445109488990976625800041119371270444506778823449904079739840152244280925081598419020831950255309058709578684791287441699491612590549070931566158956524962262331990098180583100945567443203168793210428331633923146934468318704301509769570782178339711160700448834634860595132982251475234256975669973131275775757821735645905094743974744623688541530879288893518991215172554986342222745708637203644145587327706611634136873101277164517300163590770026266299222711027689705965158854471731415032184498724255504820495818140462879203935638911726600083376852378746062311433790291091386989135784321262697006813081782576153519215370597996604130225721354419254011230578777960521543983094380532624749769764041718717505535499126134933602094998122191298462763460403138086850620594421610166945184023120889998230127052223321065478123099611027013436504277641688172363896553772668175177867773385322220379251291117663342130960073150301095265431902921363851022107036549608967451829318556713060721169182418671083804682570150064879938060506606246823920259736174192665786882079477727079701197505873342317007772689054095447840876081862754164785305217209767618428216799502181011538672065527801815576152361998165641542020395532304251982656922684883798946563500163682821836095018574588101334813162019389785145950948425088899873853706809848562373049818916144642115371842550983314129380429582990428799507734420624156825827462549710366806264819081791885321404014323578270859592459421243985570978597611832927115410411933582282620713242579829810828308684670879953123450905935350869962730090608670660176230624738839691847126358979332049531366025972620317628837326516416602621419634327872673077496578649076765013991141445802539576978216406059708160890293400613512999657637430104926300479749014110445461879539309355951986546245843547387299784557316920663075336123194089119986658271400030953997113874555643676918286402984156486174067192779401609543012311838829331289414401311019376148721328953113117461658664621491068159735160811017003501611291945631088745333332483403936201850447089617782169156226239595508815929620604448285540676194204143727678545159338317799354799343038933434207495240513453909051019214664816943144650084194866200708071988851264408390800701678786822837825547307844925437839204671361772953340328548411071533583122269745008044485705988286321968516052424517663694501393275725888190340685400898980829621215112575839000963135447952418780707204061506116767230782723981351449173274271343327225799710603623361346692634384286369716438315252378943918982311318396500112291970836182902078657343903369084520365950627282032017916471360537729076002786673280928941488250014708920042331824480910613805179912882884271008552366095425804503240851572023953113607229301180526881301398938737024770011565228738674576384276155080249365369087635736577222797150328262966396832592603131865098102798687224471788603947239917156207828399054262652519471599970949764312494614717942372809075792801460491402683636281624775645185713507781313260057041702809049097286498370445750889061072256213831460750112288617469392732026186203636725773223615786939342071424696596688911732257779815984383248080737882646494071807761260054646009509652942930985537977082557353936441834105021267062829070660740396547546497891382821468639967934981845047247327551897798664703540814612084618022761807122913847568810041432414031166493804501577646726287872450600315082584749958350881269149798221844394301657118654790830572274457136082601791156334243898007359447351958044810488886552632042793314682130008077004181248078063535255742613253441208368339679056434149963017137356888490193318034191445260767388879633334037974596650862316895674495653961008596148397801711469811919420129483950115233977296551020751056673711791867431015619796061036618473031974829768438701220392215064117635759328500023057613427265639391097905056892332431332007964188830199301962607593085690739374764977138151058057858291218527182914356855674306390011734869620351908283128147200266421354880754333846289182490062634458565120651421537102410163279709096668476940401284222733860535824870325201631659608767683665926673021217238318423588277230338003510366010432794214039889657846711983128613149859136130478653063810448206644097990138227027039433085280052757317141327731438019269699556498235737887962351103299487678548336990440396445050228235248736372427372747384877061042138104375598167491205427009764020985936191061494752787695459179061300751132752266224777811588817574684326676999672171618123989224403189817196406076216030943699416475175414618470322713966846132761500047995919903775477310465016322240388346873105766404960415867648310878708550572866577993525516471629278300412543187077508348018024546739209141061200225345543796917401522972107515770985523142189077222952502589175902813096007061287918461242585880460553462046665304306587553207198167798827111515841143243039822997406173958961687273916528995087298071331342611496650029623314783181970619137138233781047771665578428253906406369928432668020118669136212746501961339468887383094835625097938325977253534112788036628552208464863856866054594543734497338943352706393259707896701689764301423074773068532619461543225192562245725710218815109043893371458496312995703375678575967621496646039742524546248232157942034259694563583636344450288908414010919458528947083084188496709787742477963965849192540171631126567350852608464622127577428424101135129689524995114081587054263661816608946449746171602528273046899955907386720219264932050994921271741423849436977428635320648281901039089872705283610132561085927379222567724551294902256593086319181920070974779091361800539472840114084982719919254848694418372032870474201512547027484548427530444459547980773342493554014784246025317463237041847543891522006099519533848350020007187134782642374744952476637275089159891576350186515991083858004916054399214453589296751540116761937417412391404385827283332252191957949192277885852698174703616519583873336711182661721601065509604856102629430169665161592811766025624065388560860586897837947015944108200197894486058849587874635157418446512912640109406168484612886385493512828358256082048676867110801219701357371383740829835586858919167833949401663682556102955452591394725367792091165377379813899862450639408771087077083348784764593859447749014964587069389370151649415512228883289017370475782082265235774907212841239474799244073924459412451979155719323606747428193436994778153716921786435486408377608920072907605588653531539278387913401684322145700204456331908773870823805997842591413514033752774068539645694610599190799200213261568152441132489157300936014850175183454058238523307848047793363666169503423516004420100015658405447350725336830086809976738645141613205368375594255212519779994175515254805730367550754299073566358573375488162346935279301985707571008795997521762767691642820974343684439241060000773685094417716991040930625776400857031817285598745861484903874013352380455643626040203112799333584728036342019696976719564330641608822019013525719171433219464075457443646381742777531113534924471415021676221249531616721479610243637420920766590124915301917494337114218488200447206771044648076688201882414109390431929921039408835710376354230877119961900752189509906183027929281120184396023030213947033850291924400411533562847766484681636654984898796245421177095279918182656591124099931556624432037623578509473681298984303909041570498447957884857876004886381209722286914245922851991945423207098136293684726025941974546267033644184800105127310605945826471533035046495217903501608662396001790730415574201678075419784427414717256741198784354189001633123771008352567711734458849979652236880757026845679113951532069894607575323528748093677370241322647861102207779026286009141820163447731449156646019722913885405665921963018007434036401816909536928313073063962510402620639766873592265226138581321874843065796378879291228811820788014275495367284992855041366123993448176684098784067119939741388779983957219686723053770006655978403271767160841713096294442115697016883531948353290563493387480932160843437360998105503055335297666644515286359784473941927415563205369633676617960811635577104349719637263499547645173839373554941793947809385907673941193661143112692653767788930518344430520291828919537065076343445662779842322356634036231125697603597117802495844591360491696008112089266565782601568740607675582468013836636139500056404953517348499680256320578240837965055617191572743053327519970307219719658684049492443476336275648683708405515262050547787756058522310382789081776050474647117693010879121865134563516754811731071609255167253316429662287155198160776856493710925375413649333312636211173411915743054450664443628685440815555141079548784507541196186905471497122570729706133812907630735150175248904603733931037493810128241682380571720436734566280335115128928229490192898162757280036915063730343526501257256458912035240246604718589880990880378008497748542878578729589224005994881819467638950635615788560402447850741366632029135925546941674447580568893856845146343695608796908295857343874102189113798067319825945361757479075690720788204277121179537487004232424191949508089490818978727199010460233732004930421578121673427520574184625986119372155450832399228383615586613386679846551555573019092682996451854409735391903477451489553769976827540810504571506392367198465725969818738077924285861603942041117901857793412438503980887601629824006473510597649096593414066195054596220721423675099442314307509984053683457134008258073751419402148638975020527756037401686500447217620828442902105019537919962226276272076083417514577625905409917943336380405732414495440852003760236048195885926481740560687451767984834592014655349530708098529343782197683278758579763102207348104868876317070362495346938133698731566163739103458684597398512317117162329007119096290330212825776512117637890537736916358802528856677317025728017428649278980507883752539262960392889756708118415906476181497610297840489622277405425951210442166789860137644364894295929401863858058977776908604341400951848389241923391776628234521669017386181096880183887135007846156456958068038684622959630310741847560234877412516677448440554668630338353721918635904572367786600572191265561200449539831013463002372838189411300891151985638054127493734297280161266746717784293134067042005339249390016760946203138895253584219124299844298178963362842623353240643197446424661942560177011077164656265535340541693862730977247920773828364840469092046869824191575475626197897526714358924183381874283170097357970830261865743528571443274172800577255743456797304083987733165799504473889369948745530516263801682114094251555466886920592420653925903328245843862035359554756239931673571194844512464896194197619306730315874215373869866205340684252613413038056849499151202771839162277300700948462295339569493769039152499812480978200088937538493196696658571693751499144196373251930678677689272301872548255829817210789798780466402991302444648666931949479015674171575559370331915175838718162111337796635837443948825848458764271015217212248308585965687078028698726003843622733668034776650106571938642181226815119682034971981135760319577827014927589439858629506549044625426137319165575485280725062908842190665477871215383718891204765608901887177604654649500363548211990600276580400544959960490561200028389664177020593580165108624288475653350014496917695251005023164385619125896172860509339150795876639024573514253292279110145701276270693798221667081890331475865030104274997106255751762775826154078145912925645150389901720613784172587351380040953977149977946263201306875960251314289296219211248438902722108777938325421466776461771356112933655000741740827755620410367239331401061222038796734946974613781008483995471131515231217118773443001706401382375211038977439586301162337353419071757993474151958221006246588763711662132360653111863206944958927701575147115071170892624824359610009294459810845286603261184196896298129823992901253832681487192972410733214883414533939987208509392134326664680696967710287702554674910820384946737328246467694875714889366438427441268850367987298010368697124735668477363704411481221657512597877600498479602056912092523033382275126343310768714034529491810047699974080860604213161014433090262779332604306689435370730004816647550907139007619480190932593977189116833165235732501084347857304180239836267300699836174693347110970846954267584437783759974391686475321721532939716600898013653371072806925042240072486597021598227456203652330521273187856274369637021579913736406944666249979480739935512746511536909967811481586677810272469640008532884561472668090790697967040225134244121571216756859573009231564885490222372426227470425550470954821912143115201223354667779853456360251845885882390144386655847038600401876130632844326290420942981080047490560682265323850706339276027055049850127804783539813675106568856337024988241773747850805703884159216056859396930584960475153595026873090804291301260594275833083794983418501076373889329293026656190620444127062551594269197608665498352974159775886114877860813376027777091178801417921561079286000623648498954050140772993189850314730004296424894785009679935815032892748770776700552463061895902733458691732303372343025775181515360379544692167483448094208789008918830367944730238687022177670540431353941216356473130554538662412948227325238903153076008908491430395419415148135424291858016490858620041279724676627507768348020364442704544266106183808782398622931885852666262884785691001753751122662687710855198755119065835086679349584686373215375939259658414247345456156198574477401083411935529960618466376309163195575478650192245593519201752926171608888535281396798472519219634424022273505809707079392112233144956024210501081696666729587761241707520120882368152512611428046249314623323418033961895831258251516622611153909255663575924273100807842832852504139776372074138016407194848530270224895893069190674074935857683672161402666503883601617218041135236218010943938366132886951746948840407327120498838469786355920552743885649645566199824356043965448408178242481434007328032429310717438284324842147772522980301981140102707301665472817392603443098415776575286665128685582776480476610890105266842622729697798777176645967385516953980717361021452560609953375705766785698537752866516823867951025268122560141302075596160842188165695518370997184471448960230562383937019562728520804176412862646940464754283887329764477094275590140580843339089712030587252144021993416120293484689117558184679306097077930866536894736472346057342158848181800780487061009808505673908385316000847524748987099148099180828923124195689900393112927332057386888085028782280890616812025838370611663873653078407065566131292949231508829252175374611601851768446117260774878592188485169359433517059423070013023639599704606138915934711339344387051125867028388590242096893793138750506184291360729287673123727909029272246816276281715280356168430567606452477964979435152784080792431896041156068563414971999531181752902225086478634442065490907589758648824309684019921703110818271178333608638960630655077077557179675189382228231646045439000046772284077660078410149016658592713079582123588780196273542020076238192726747289628180060026156662309405783139672887239575339198422853896433098288897143845848499155864911674949938701460075364393169689821941509310182595408423486835548238686877100236648685283688718392456283329808086053423430353666988544427423471667355815023997700417358502582094958715350456968259336526204869783678830477057414077645667894755260082321416584704114088462984601142707140668930344667445699303643846322720691696629972902319751758524718142159092935863846714371661589583176307615159277688625395449462513205827601180112610412494734292794453394444094132991757257793360918750765296116448434376738652830783269578029890237751286691238903303998595686832552176509898940829711967478742575707125424702464636565482499262732014890729906100286854741915493647438123476846505607421330674608168249918351534067790751749680946565835212364591972656870136995729546337622613792534808583826592919002420952823547183066404363948789699643174872498942374155386251132977804492007496524855388654749027028276250593466910870025851587961493421518931105783615359569133179992245136876300982269948350803046322923579934509682444166100382008839061480186850359190473166682709757060577981957667711178874611742109680581218631165738562254102012504405072810821428847209227173424133044483151801592843743360193851251977267233692174937409249847470220606142135225481070467996180405927270754681551998279973143650734800737514445778020118759771124722295371504336311035117982173814791185982566268737832500057865748222957675940907386275555587091479794541497037544267409828813326748308063724741997076580080750516733344891920240504316261238125845792951789403616749340180894063638517541775601292312489677755709851747376564357786922162888941087182208631011074901400003704668395397556200240509638317496110164893967869759557478113094623260459027082900272555677111792660160244105373472013069824834525362052142997107301318013904534983307176438609605306256944088934566810208667900094794330975345709565910483807698081432295157499496323517009836434354081069366337181630252512210207327807715845556901750265191219464496273524198332594318433366056581165815606018819662954598119926866894265092411793752343796810810771324686473021685111436604033063473507233159037365713956139388144917767411731613040808942830592669062256810397543013101680662951334871543283769549089619645180765946460818525477375290456969312120756078727076148304998088578639415940243600119619169245784196744330253701656061258924837412726320664075884064713414104905637770532444065341654368005640114123657895726355804137351787574409279098193848460643532623129906403334648305632977628145260602858779306112398609766326353994336388091649336008153635452409854786940838324733558137481135756963105231942830917181533837109184719430212611105853226106828354408960619215947419020210271367284063568318327093891140900290651725120994961253091242551549327656118197934344598872683991734542684057923180415116973488628484707543426638450012111431570585358874641255529473717563961833901250446874895090326294689899906564774506177775173364258767985545123999704904297647056159947039224893849244111275621794724741386570728519706711027608510069327748006389589382460254479211036665857097579336149453257233000713154809947491929904264812768439379651460807428506049070931238094993988885475219518212311518703006368562150260146195948065337900336546221102013507654048273825980097359287282576857973987211513751286975817026279478215940985947898798553377038709107679890604442774888544474146907803938179787559467898921941967764904713838556438973743684994843592291506686664404361214759692534696204657235393520952937423249042539167248883581022898804032054377098387684325867674319497481560714204517086373623887205808933782957161410586758650132248606842127895031187406530862128133191596279371404779643445489090004113671971094211758047306045304572703773438325029863897442747260587044738621143838760465812156699568660584028274574503582790188152490065298048746568321798086896596309604517818288122318144562786117488901706571276903923237610488621189995122959516172470352588481160918796296769263361044056208900744693935034008832310786616857883117204928001054760693430112375313258748056487870981027628047665340561263427315679974051567844632988755166010935394109716470613860887876842832801452755951663669853347769906086268328897224048755431614126046821812282821107826417951080280685731459073790185229932444231461049987221930607613199037810479271274216505912534357762589661025359313845613412176487527586094620301935171020551453984140040419801167503471666655692706140847168759936231174706851338864753320219574733011570765809322081506886630528969736368008990516391776371436702987091116450392185668118446621453157221223364724382853534857515862002538525895958472801146695547335795164957261078684763340365270634268478305819528975140041827393189409228004941951222251110095723808810270470224413051751669702516799808117233935911900426699097463377214612230978463589212799984626851285587421249712986238065618523797049731694784897184489865239991619339177946337076151184987164601290084024768432832227441312967404425864525142855981353643224058088987647188949958227454553989341995904046090855655702351103103363606579677874026268975479227601489095867920862239047549283060115511290108383193695294180812480327082067514923237426256207238090970387499610803024230654859883846492488291858692671420027922187444995797442402570947449106653533188548446374653752815438709414172391632749918357804398308715351294186547349462318079314503004850576489904113230343311581376695446718459217102732189762365031704124839177005934254884479938471413209356572714720533213866353348221513875400641643067059974217423798910746379512795373859270239901238339939548066497620823796837851990346874033105009534346406842015399484906893710090202483749533728081789372549583827805453909451666938476852779541329005500451927841794821104720161093751132084272004748217256737045867333833936606813132101575048134112202928892652686564261203443289615660790651807911925009855923068943384628995686903311424212389044154630938691617997015359798899032539815306155206302823944026936872008243795563750215801018432217375372870950182644209914725378335634866992751299562676530433367370335344227633383348805752729418233016265172184118557346715251441268267221606684249361183915083768999545758995018317621601789967788444710133361043638688134007939093976024642513992851128746922516731859616590399071704728539553619707198827057982007525104781097765694142284211865116116812067535523309890528746397509893506091607804817926274012689540770870792176914846777953142023416542506926127210769053183630222287359476917553490718959572229265590044589702442978765844342969905074323137244130793758928300392735445729254276544124224602852157828739399168675186296623815826854923128503652559426509044063637337262225786176793688135808285108178748883873628514859143580566606827033306859291967781017065228028675878115345045632254724283440701158207757400092056953313516973750001340278539930434077379839173265428948081779917237856776960409856627437730609466671342022496342225139063959074360949507317234535280976076710551176213396327703089090518851588348822488315172422868430291351507124507678930982144515076483367755260659772419813737948052219767774296419693330991244966646681396097980307071455844592877392331036409818732160363722699251874863863126427786152771064987182794375791229511683066580556125934734161629046995514243547322672270850997160853290408275867903539450073959090962748005253998799722137212632135599168083570294938744414326220980923496585214332919158664890543963405779268059340638751710116599866991337049910050115257598811802760644301396134529584249328355896937132002713189505595972252223665281812060291096224273297461592405710373444862915215868542374444857304515846768666463761563833962048749635709728264432362722883140107312920323190233130548238992612055238556514801014306222026708382507050168140350125598942965557722271729034685848660981848604018544956038249331259562293047942955107949974436118251501840579371027549115718946680477505120569978299850777923899752798942998020870106342942884865449759609672815222489365914736107389233293837798197615926863519667324491816773459580864075955231973988515231434427013607072923475799285293330986460767914987771611050639078836337527863091280956543709739372910257330581790421045736099737687751646242163620828326035009951194797014005877679937017436689140325712984799820833597783131667088856072702293470610879337739320176041756013743391640661641204769263437902961702471709968109675107761327984424952769864684773440891421225791408180417666827564027726404005267138420870406988382929675854452489656381288183736871813745118612059771916344547239238558183680855351348356020323893631416909006006695451278095957183874381512474541857111263302646301799649446793226722861667569488048040974034332034013775089883289241935560588401128579095384215137718154297782093654360308878289338510685442274743676987102193603557363070298290584059995219317878297435000633537683774387698257156758306477830144248861426750736308619764370589023320915443090772027928424224349253355444509671425429832063796054344234613894390596317806827725586359428411060851681238847786795248828494503934410326071122978635223845091648426290833716106776430555267911101905852642582501213537962959693686828146386233878839365634752649554795792803307962605724477586796430759302465715394742904627607475764978617927889731908247773710420589260078625686401933673470050288020885353781828716961094067709397380320895862267610695980941979871720512661309611460176820235192704125071778011930964113652445326419603492093217541634026243403840106466874606512728622729251169760478967120120740211292421195953659187433251730111699040936451176086504633733246262769936876023433759098548543137815548940582459730448334560456937517968178660196817715819545472084186409523260114340722596676018758945230538994295806010367745260855753833038853884351350700404923523175857269118998856173585463417888292010767420203546995801962688434059764300356696178518161016571798753757296201447292227700268864962692580991908444632514371617791895267341488498622490434451322755628203016826111920833026327986391437578795793800876598595350026839753032301891676006679676888829366683689926456455356245342014670945404882191984640705323888802869326343121303584434274055555614378212330012762333068188345557815606731541327858671706539376376161841741005154453620908074595580197013435648479227290286716531847750363028416677238230650081428482980434275419100351717317758563916050044946860796478889972181002737295687426286481019936277089567310867025646601913806786697495591893911585764037479622719409013652241247047812866580076098058850966794693663500442335479733463027286265386042917153112486687885521770557600371417067923917463445643116048812791102324035162620364867333711432860862462548986496390080492708049173625049158376249066516195468898495565361830158756178420683173213453734454236783573614931783073961007212244162370964752347758068932938322665688942493860854224023049424861648561964616479857740510069322642652594014376053982168351117473640079620105768239208422318949792012541145731622838907459394789571714322207206226111154457769479669715724440497930869668702106368083150024864367849054361660298001265022739982058957013204690414692376495949037892612814980325739664685256173931377250624104987602483932536277220992849030316293384754124356197961637335151450804833096193899740187213087407863700790564563513917590115313636945063575176518985585777173269531555765944820000762932246722100633283009754623652673768286970347989768539300628064112894401844512815415911975748018991507095630255335495858028572456023952137001476373281854626915732524106635249486570997639125514200255601173589498426874642958081619895198993208534942230600362579583563310546086768259654300616519661837635153288102851509252966997982748517444247458462257121800592138588221877517547638234382487667258829124161274587315492949791926478319477920821868511246931915526283545935940726939035944211444076652407773665192974668185992676176376280763701816946803126125748701619693315933215373158496452340015902920854103383197317826900754542821624508676165767577080511043996098961850400035722452137323741790201516602992266964584677201064622998078847079288721087696788017402613679050428658933505958779362896393834961867075594360809130623835198912174737727402676357531485118270669631360776274284072785211540758909747764600839076393794638071023686125510465582584530108427707671853213148172105788169911915102372736015791800906258624195557487725625988514205582170325844861028750819204775848547308138753327078639574964443068187210392164203730726814263487696113432885464343792402378434488022609965285627780290561493068684791069079185136645623142192112960902472862591872283311662616987459990136224937786618059994395613808838966101869389589250857319368104297988762102897099562613068388461359092163623526450092887882955991038593064114978077432492510601136683523465528102057306430358786574967387227213893225443544784549513741151238133580603415358171358664493439005566349989099984156532227403586649242396247512146455073694484668828462547787712117163794542067392456271345701588770490560327442581931854004250924479928686150175929718811710235121759672215153318908806213935194162805257072429279515056354037031526801245058069105193009358332862521581266043477007623109399884116752231411429981971224146620708146668279784848051901564453358206474767985149494027480999604436060277373831594431584970969347206490260450582167205156853139657279238742019476855133584727135371550781176122756927965408776549230052543183846696954412570400149335836644191969640861796554713214129581624671360554444679946884412401241733985890311420708786290935871761452492182988128898563101351394571688878324310574531925083308568175355181048974290580177295696534548940371320796346157444201673580950730338515041026541589556293520431840412303348580385763659782513926894798394625945511257764945500562477106275272482293764605374376164850120753449522084679920197174888370524889404190471760251074237158150159579788254820914146073714173467219382755639041176409910076737044911882805366030644498979223581975023677586374115834342953157064614284883681944794504239050771429117301510271804603575733052792491134189526192680337043596460046717107859075327700097557670180520058165908814382576349133283347214036336059452961429045916020749305780165457149520982370513419272943551740542838636742342842755253026372395327129242059963931896484823425100695547008019444177597119999151088276723744700113063379548453260045492511054788746672973164849026941502619222966414014133470813401287074778536401122746549526072122068660410131100248948704693575590050106350174846945320185747959785674156215374674799077896932607873321087226570197382097656835069118287718474954824541922089450804593840688033519846924723747141421873727300616991286196036661485251532169743283864101970135875970377330795755108488147338563443148657996940891481930930985580069160334179358330374417712597942805677200996937457057407400723842387803707356445523659391644325915366731224925378230387707024638062457135933627196014102740286388307730457655014224461849786883557514552705954871198683190905717115956967098413362521198767421640271645960247752716545710092881681714233559828880144155659337986627619301639572196780408138006071891732440816906554059646602198540524537675396576197454356675789273697316582677540270821966690041921247828879196414719613383180613623496909730604276219612718902962353356232761697477574017987644733487291453255112419122467136624516864789485169397301111792534126091136438204523645893777813383788797666421594140666136227682096716214954427943254278313610467999190137151403779347011350291969072299461819206659008479753842637925924107581249246929746120537429709028323680513690553174490948867895308047970809448378371795997614866101374411733774865351990141768781386518735190704319019142535383817870249767769870825053268252460305395785157871288819144341134985228853455394532104755070422949280349942924155648807267998163890625421207503708613074921143237829384293576366635832957551067520281191123614064033375022977209802094227283105782133986549237064051030029989827897868644033133502779830198310113340998698467859176308900608895653878367539704860014267592536037815442675856022337659832496988015970332614636319932628792656315099985712615776599522463984207320321505512751986521018044682796377603090732468511018774145426439348342711781494251318991395274054330274475873023732695371231285023666235209483470834603973682730774444776538788752293896358502410931204185005700858748392629528957126223636741334537255068589127648012791156289712397598107300791580944109727472746696376452113197836257345804933300336823470508873687660265114489250996089163403049594132389278123056805910117148713606316479259222584849032776148491454432665306009005502967667701674509400900512620602293173958769731803042617139339202979618503566141963817096881968127861365118243287745917223609148250550031686974488920516125915667024226859754803217981405101662140350445318922088379639751380940596735114056999659456412366329934254797455285508948902244202460861546149745186543402812363326266959940551989566218155038572904850574263451218445393591418954169944508030729311945091293207200665375669830948762897329944849830939330996805817692462110502451980722522360823824785568519538117121924035966712322371399005314100683858766024101676080200776439469855097093397795106824065331783588400810115931696776601937446226670479035692229926969438840927914324726130078709779031137298581048106774525023035830200315206716601143263693037394608135862570033238371671246877572209309937825820439149431249296043670909963385794315697012363443623790000385808803664167196265734728410489932444774894181990753097780714191183403566671565621632018094326685500868996529092325797072575847891436929534020490075402096256158360374684532297992705327681791024677058557726312365160366662986421726075150353273397565463150350203151315218803327509009172500389897309238695417002298504027414854021890333424452270873546944191715168106097873612767618400487196258051768159433530501710758928177817430723965287452440919897396604832788657177822096448157579529246769149051247179191386570029480290719030381125293930216176456703710068293395747075014340724389689437437100764310022181186297293628701309704228505925138251374003872798485858857950388578833358504026738765417278747551516369974294409744193359766467111606051956233012444613059921071004946834757835603679411841849421678726657560984361102871714885576582749599517476027796456355681206321723670326907635961041216555881369343317509923196418321415780372783774890643115688139187716976331759336535479859663684280591717284843063592937062959217692714215128569359688235239000554485150484177239100553846131566800300171270930376085125619768075836477519228550966747792617250531588879569579034937146587564072263978221121898394749539911108875188459984730104006479251687277678377116237897748039286463098209842347485261204624625055677505526012924084665351619024742598361114210870722893141726807583810309047221655026694258613912702192428483445756334769167671057057621362573470050095354448607431966150024564984982981184319769804028895049245318019600761482286387646305234481154737171655971400320447019217795621898588461416999654496331109686606495546525173434856831210951609119540846075660918264487389125902880014042097194266362509585817843344925492093969256117901924522056928852268367363513150877948620582397093235940747946423250925551775203842058052921323606929674437758534890346312169601918968360748410729797153401279919877815918644479173491108621624754753778322009154144086258628290280297080747484596194601497650990638769080372983486714822726101102447810674834208925019828767979035987696006831895104887316575148008153713658863806571930857124065957817923923784535296479684171313012191854469436254569428262666659963920901689583334914441731300273582154594030560495438198306142622367163400437993366500879205668921068461361001240439528548128720755518093839162762775594079946567283173422848351948046926862760245140662394879640854465067161969444011462420493744239903910873390351031113145812683780053157119310632079077194695352666530226140867606540225906518238263670617556982579706575545679520556390508118401212125213549781143172840315705862136561105666187652746882112294697358989427248885089583433223902641334457319670836042465460055400657427768038859377179052067294318788971578489593619244014336156755943264860613775659208782377316279503782573515015591400532403266851555229587643154647418085535073925137908548037552242161098570513927132381264658819972638721448218399986651433841751389679288941316400018703043733655978378438765768565277072321815469519621383364022575397719074117433096752870837350158769979236590688871076185861605888759488726207686728955575168308119159286217590608438955643711120596514194091288207930878093365824042631255061744232599136475663785807508932547734643642306234077162735147356085183014592975394372807949803691163806693720257785527641975942758781213133567504735432158973288134947739269268336386612576669121531537870292069257750417527897025605823058057397191666611934095722464363744149590449090490584185706116002729386691851431989464108408119546836662057820235034769897510221327971067021415797355907128286203535144931908000235485374799088600482995513848978201976543135834993729446158806864355757349418445347382741172345804137546332147799415465436957545612456865700403780862264182239001987826064244830306446991771815930570362197406518174693628880005883038036545822354949914229865676925486724092342619617300316895414059527268620869287158107176583648780430844032996886505543391371599126741911112052961184037300148699125365514733001938166564561136181439957761243820727280537669226439481433714884332153225601603673456801996694627893423421726237530378830853337906711115503957105876330260678143945338709975661776959343806871533415583641223956919610679041317345768004635655083479287086756262404419027774323290207840315266620828520490741168545802397258360348776917877047388858307482490296362052346453899668622009857517883453359074973768001379313646087865198920564402239666993092065698932760376685059951542059955108739296832798641054827182599381656288628098862672169784064910595684349506010295648217078798146027642150194191765027952304943701198904149373356206300215935321371487483993473347098310203651581093992475898147924623761745343582449276821666439613158975822112039668242358890360612321099889362082865036520141886832849801120961418928488573814638610176368723239395317962104720183387668022004227245783490786863124043121447168749022549132819178729243316480124055477903855586637538681336923706398449232988441833631915629412968258503458005314099142017144503430369735005095354627125716766050934843104218306540221513349836467401480287920165469042907940699670326274591966035253588934628656970073267965961844026644290292268012208543295824961333879206262803487582543937910418581653234801342228614377272412845031849010059755420365051355216264154395646477123135869084752169362972304342471498636075503003045724617101061725946643679637973295005967362323165839652972614324867757247047267778360586171022395466169803903371387716567307864943273573129627310983715703411022898957645513259618689881002898784066477819871709351902290921412172388396775107151870997719186084555722296239503492583854987868998536406602375838115252732694820963145852886820302385826513615683757697567648638489232858383761076495842612710262994114296101948462817729906810414494520641885038045934306776845954460083046068599732592096328189208030128620906639031156005418829199033755452777143022145818557987059889516070204619282886285616913211362426646819856996903577716982419529913026960082876294545773010263931300521329051513716255876305349106539960633565051358155252526437862091494056817607359231290652749740452804445244435965913129485023735836127411834277617584832238163236633093170645876114775920476001859057136709337079375153053586317879582826090638944835969783582534370696929364936520474469339431448116661731081483525334115098318527287210325925466325045542869741560496069721994712444430960150346379571674315605431488652352967303256893918304211357437693018068568549368464912974126526611892751500903420410989202510890543273493328811784497855677116986645623407008103380451517434347254792760859247136143605030894877700909234650297062869262150055262089344983762201654567422180098721870858994065199880775298656510412755399246154253123836062638466795411847906340000697083705016680986332920615210738096303280577994237711547941031935627188711076014789056283160413939971442078417518802566387598064119351414460077660642443743820032743578945959148841611261336083867441806745492839220281771253292926461738961339009138507926743125783488648499401319673234174572560457387179931663644666629629598337816718725401072639370089213927166433708946588798342515662926955224872928235145516269522643427919872902279553203819201403049922588062110931872711107317927303976750166104938331034064347297652288127854886020781975736655060478041264666917080127369413852409201714606252537013804814266054159717340799268622929120924195984496669323092022992461556833815302957207104624831315777764042897419183306658846600781954430076761770891756657297041194408993940110903367028344715448811843834009110777280822240959375911704105185663982070826168238991934868328034554827142461546973535268540824988531323840294406954302985850073612787719491647704758947854967739183321541783769834036340300646786755823938076044795406639927183482672887489648616320725316636024760093239471510027875461552384213528918787024927816211239757769213880534437378157951690545617187256559436246847592789539823999733846264321571169496276358747426775198709575198448915341842608159281287824612532263983321154415430424065739661413273163721537449742171643719784039779116785414617026281130539376187315443515675506206582635826310036632547797213251200170264493714724080474665869961645625273410661560304864859761277323994395420726685773101073319921321660067540694591599578429067985599939048451426345436014804979876126804353252664845016618871637585962222880507207928797515397127096731611656261487776720086078058170706951326063416725674342256169755181850629791858499758668551267579404756561949369794164161596468615245235405875148657201282294088073951011293920934521571813752453685446038244729910618737402425263201218911590655347864890093294584232050969407402785448379335892494051818856255324365225475682421640948708685486616218947814173952905650274712376804218085739998897580410321970462791350430144493470872284256898904688793760924785972500758422097125007727286265561255986337024521428220549073087865835350382064292456355350422320103271326780554187666104045476621807143452747119243397783627556482411101766670493557121401996530128013725551366470155206654925891103466327679037828301959339816981619236647211286854536712875995121069486472182771586476672703648291155599045051421763904244686415960810949486277461746444581016601158830660615928993387817260535084778546233339659357393022443615584733718775200929114411244870866041521346284866757595462849720436457414616368418318885930915146487634956766829145073117113521780099981051166181793840084331128248989187390666467789451388176418863585597252505796497810679878766532475296369285294145767719493320943507360409850737393210683972809238586426154835438380943782839639520223168699675065026386684925090995195481241660565593815208410215961487455732031932548466117219968506556820191686026557898662366314413832476351947110673292287960736812534106709197106051058730441267510583622600092284785123020845396823989410294221588510196209177856577547876555518979786452057016331860981160390160508699650346446150989847507648343529269537176319744451978714696492204766876412860142985434292496743763536224546736109305932486850557477242550051630889838810921293619475452821119128083250088834485555969846189112866434280449336471536638410195769386023048126889545788207318847333203019378944770060058707479932893371016013181621901787352402074560018962413319977463677109388077735435321737772456466197984560941316347553430232283519477285316539526067654165813170385240882353236046101525657146726416639945983559273775000185770153127151931295273607196524270338411854868048755674692540361015104251638640894837857800237255169627937918282300945348030601241358127637933046363976688468622896078531632612966078959002024005569851372813645790390997522997227847819151635539437293946388275374927316511705598393482635103804750481987119579671313674009235566607013939733141478494246629293570194184609872705895920353566664375648369842567043442431386896579899432084389875169692236577793668812471458852641896570202635071967083880990558608930798222366453855328077739453195025200880586622668579865615541864177796853893458353771264599994906692882837874154746371403157757740802043276363230356597076683151295900241709386211212006245519296773875132693242991146959966033799493513134588025672840809529479580882189763978457815956673353802923492869496738395845077604697535393239943732912231619478556519895083473286602472790487608845122841422313813481034998682653726177335742792057909270852280044889833183322358227125520861676677592834176824826228471769640908834759235034782361940866732104210259041276622451640360011320343421229797504204901435590362090727186808786376007547464181248894984582849598943103360728158235792040273273941747316899425461532634321131391339798910406196574437570058724252981507670178822293247396015804500693477772141000960580420287294787756685802758478613968818793054514556609305881175107561271731004295695654514758097261984400495164104651078494869711286799923319836409322668882712703706739989985173710245497793470053325216013199120980240520616873851457090197738301338627893388031534926000204618262026458146451779154530503469464451207387425239602590107411805606752948403420468724718406834975343666912156303599534065035227435411846168728104899076986599220738257453804289836037693061670684015323522367787643845496585013798309297663121071676035314448755030383238733923944198595450503768590407729390000337310616428935659766379486000006603329686647236091512282560225279010480815458229167821856945401184836890376093848960722902038680093088533320033523384749830486941793556912680988664770626333762109867049167361297985101232832830890100893679183246301948991922040562632531289836350789290196453504544744740826390279240588474937676777939957335642029611717872690310155131953042492493206789627723105909826767381871577697626171816866171149714676364924119861211219239646748081243966058175508717288367173998639714127516560051570764532018451303704727309365831092693290585872101169000333144225318844160127602603576431161044907214621507976403481770355106649435060555242024539882713670143669644798434849300609884564880951177907412919241175152071830255362608321628237251566102833776628995419660735995984285848105909440668950025221537420427549970206065446933119546808867605866022214398285841702227105605591048798833693704395360240647176666011708795490331689138799174574769875993300759948398606984653590696132681242620009085467645372499557166778291526122284132597758190348482790758198710419841090984232070216222666783503163369462874958891134144617636921559284300789309914337508069016332952085027519245190348740876784008272759894189408221623880753706031064606600386285618030847094882337412289506497007444439057302631379351133921945073480991720443172485634022290106020151489454299969470869872442158665761087858285220167877368053571529054854733821441732567648282547538910290372228594437780327653326786670355092178149923254602596215356899431580884202768651885041530828417250307173890845110604540633897257402307724751354131822905899962573530725930814334106413708694093446005670166487627913402221482544294803749488877225066277442678424836566768818764649144104154152241109467701042740065237866962555961104194696664629898610659860926776009974336769593126129064124848685130740380967802051473196994865293889886677297827955142944781427447388081553741641865770337429265767561427491932312727468085258450832091434102331430347293608754953961454335773669542657026192000065092866392196989818488204883001659343508661794980060239655764668250071014293324965739406709343006546897404138701268241257261657128934966720609548990228756955928797367118681567111791646018779942948644881495831323255228426999764033138611308888390702456401171236750351782624557192063755240585069290869550798718543632345493240528459485627017461958983842295997509800700208706009587939808132197380934464089052451007749811972934534844787793109896399637211472108963089899560738466014639692889126618712354472963924910763341182722377065238077598420160862925548916352004807489105083966544953339923770351416179857244644497762737275629242718386085383132400380173784843393716580184140692579802242887722904792546796125466879863240955384070671842780149802996420822468552663881912079870204982223513198519979250162564302387023363413564205406850881983407893905538773908562248070941234115573426200398331642265673805937297057711425221882928338762229362783577888830624363932500388136435285013076490947737217170277088984003284973356991386066456672813858837846204516514667040153515729543941946508834294592086948331411936316059757361340497557916365468603225253333397983083487602547025529069408555267330835505035810369294654694201289282915094500957154927460861177222535770544110286603042595370889230126179599850213214361096531246581799092104635651237314231899576570695429197842578069840712082244399691383010713779041069159593049601680329802187345398826953084501973369192358136370984001747250202770956960639378482456766861651212313654889259408575811500190424103677270519971065662534824499463000927141880481524312440752586353532999809928165439602731292277788930729153803566921443621005879766565858340324797780746333726726293123732374982819410990915403642622164088910668112287990768428669587394908886717481812530621749030096322652339031623700981350815056705119710157305157222063359587044502941321761198991431363428520910671954277103700502412688608740025116871969112326747070830544156987487105506618048463171931931726922671127088560160665567416447990998613520086802335888456462595751107229239802016234330830198191855481365921960589157961818638477184210045229028396190181391109001782544589200621941675653552664130682940306091071398256676051341000704352282236185675284085847885501728321183585412156315514612946822942552354205787123716043970089484207349616861251490590452232648014841632651143938369839566262138717009836731082749077270207536132218973489825821849697945925923507316767100010295354033826810333034623295818129235613924641088358179304589904378822369335391062423444801673674694677264147735292803774403885836415139684654647131082790986919645767341435981506173578767140471944050064015535821606156825045380093872636345550116074118856543317951070275070658443914470270279478604272782952319875958534087045171675098689137598474587664256988383323942317963724567957109404022488742198089675687670437309025162452084969687006806965579239145831723464055872107147026913374044770214693879754440033293746340514524235419511787877265788015295315560141266521774900491714878377243943572924086597193184189697579950884306300398096749091231305139602264328279074203774609616590673055352722967785168842103270378678321971810109235719184910120147081157708393978510027530257523278904785546186128249332809302412888594084619708907219078341948788400936042106064733290988539861383551489195144110939461243640439007813472564181749348607220581832080359547454382832406280303648487729419690810371319116188819724358688521463917231189058260479234036028158576893163495268759044877365609467312426694035974151631405201114611581062472077121010729790716829750435925736354898928191729597529782346393425682731105548042709633024117290366966545596711252665251221004543501648968091173904123221337362464411402045063669439721927923681473000174740098768574990156007160575555265410879695348542111407519078615236208778340123112763512885182053703561532937827502621557225489385515657420812803443064396026251622648656658489360702838478989516509455636842470149523313035760198811843496273980431557892474444605912153106229456142939104149624466718965910880110831848985894562879304122867403078323875793089007723443669694660282557504232242045341572038789906282003930080374690880306596679564443470383346850821413314674463902456304396023159850928292089083559142555335074536334458808933672971018268877974141771217138960100920388538830975988980067468462166469437734211759596403614567233482754688325512112488809388698351287066996360728781034873995368181793564432432055949080074412005181672636608457769261974041617304163880313235804202872248675057389641328880292989067193801367421041046330006946490677358532578254928706759581100206051876898720903508852474417196031671303414410351123859773933885811370849754222196687883123205190005136213759823501716141642569548751787668412389553701096430599693058702142002218089317239593648234407198682546188588898507623328424248482679538105981891248917023287240939845877872020742649736534106833554255429227242267297786934211487161763574464643619678575266662321712482210027602392892050189611672826312670433646714293624656490911065442738877237502568076569178893913265696849980316715793385054117805207215592925484797149896421530344825409100179517359990807497882270057530623697953985293042635264105451805389610046263392714959936098277073543649174514447604467243926859452649114815996593880919734211988742337143238358486462343264037407221104152264911612425803655873100262612907917980571690808146311544422010611427987451801882409480756684036896525112856379515763753785798885515892670314633666583378235664950680884809591847857253059780925245916012060515744214351762869617977751589377928289134969952007772175903300583794229171258298927049266548789371613520249427569221950381275666369717711946393917349055353524552587363635693503902652884283907900250092137321350457342746103048991470370430100904745583307347694245581191951268135004538708221256170827055233538911489103575473035593272273816695789046294517651287397773346092223547613976314981456290373544500224159188927893205534331845873997116411751890491712000281123084531285042968415698402244232219590362090081081478042093433366162841006963409596275262555085185690287895037407908470020942278732583100309528268856527570988315707921054523848832629991814244266410659808195134482515360605955313579175344150660124597535299062089811640002988167548776072790466269185868565438363484019954432033153058906117753794967621573032201023461682443680287100155426822664185418893757023560010851896062436812358873346169877634696799087960399911549407339179010333778524971083384425020349632248934326740446753452820589027773509400294498499766080458147309440114819624598364191879604971357796082922574695293982200143712109339200084048097621786237356542873499759629388528513073711330095740108810609568190738909964402911351674194930177368009829580234678563745542930606688311961710096514776703482078508496905251845398474436633451736384909815203404081336243580147745496264015062621808793211837814011470919239864029152987048047873391618414068173865395973833597716554856293541189017419556746544303948882850252307135297574795179889475021521334359246805302547233463033705835941105729113940568517589597867929572616847040081445825352558491468873186063006111234242280481611501984239489977751323974935808085078545306416010825490895346468171446265034701236632293163734633925651578763688307224062071453849496394976462858647175227085700054926663862469824567206941698164124579641353593272074918028295396966553108495646015267612742993659509901231947400641051799013755897499430400036490676847897497606831569950621890115219227945632553308315096886502614337173521121374313589346887074142708957445389169561872950687204488774028316528074979894367034531816423735853426736870038951927519641298408715785089165722507937047541667584785537914666564230180280718372164086485994890147530072709768388196674388895667424432419312041077387701515904306435728835735081240707712925772711233540796032612919943615923190042135366293677791106796204347820395788396345690819823630104680917933409567298518453681302786938432158260342215747662026512457950462397143576261585518497174150610870768470227479002804005402924579762042391758742106909209157126165656261212509800478543562409775692301897731156687545654110683710666715309239319477791853668342258184578858087573838189943254403748139047310281254034033642971116607619730436873990869910984636271358840615713749092985219784269634780491997412749670884429810331849633999782045261307201340968914685903737309621291771975442116374990617865684346348434426676175749780376970334025162741088055355797536585124087964807949622059765197136525882866460937344051628715077342663150108153508144241425653580195411832382621249373585865121782617950867620636870358601335687502737962025728855461676000405577169940543163250333715731684790776387044907082222867492699903430703773368497937165428790748468501153436773255897709420942264964664518182825010330866620202177556684112649718831536148921798628194163193494324340070300144365894295160218844945686473587259655098212710511911770257671262733926184929298471934780521345096039490013314743781045473642815954173328866882856318531694462274052035526508056926758139682309076145620048652545935206786991529187701528341068694774355980266140110140342022115623698068780399082948899332617507131872474760404372341427692315267538957426307720603252300972575433627907478443751399528792563534351587037990708504371603171833119879023379486965501798967155671432504450827516461614807101033836096838308998241523478975422368122182432492187896131900088469246443781855820498198419710458892375914444777110575752705761079842975119177849738525427257918113206328545335413006559173548436391027017074184500729412145946783283325814733101034411988531506586382401029531015015762767657491434064065230036557773983708803746805473651994813206096335380323352654233504562477001809133152961810147867760479348756816801792937548353613271778110950469049110783519832772660288658505885565738487232056421172155009573130468242877195358883436521443978108474377679912609814085702380357312653005949616120533810376528860772793007053802290909338539420554649567383272765162409364260360695733397723270049147327730204601667864019328169839888422903294076277647723494831284291949402068114392569142502152830132901160121655642077310145136610516821635123875096133862704350601018358039522856402590239566476300831905332141900152049541730435294298932296329851871809232584790008275820369877088195091319562654253672413083675587244655664315837404234611771367513259219961852545460021117423731431154874367480146438886182475632449343647675937216401695095462306048403692274180043882782858609617229838196018542929974663223768639998858958747982198738527483259149915428417279373008882616385501837999015978967475882396595597732034164005700365435750855472316866721565469768891174808824493494435821075291300646451222900200987805100874557450848947040203763283095121047479600971798691769632412264229371735779362624283524427568340895293938222497836328820512940398487988139038116430835244403884776869505807617592812233957876931457781318818220011335760027804008985715049737788528095397360715726361622418261986695217793449627123093344628516364117707872691221340860908048461256431211341796265214480806224994709161390196512387249577906463646733839455828532442977431401986944260568537962890937949811457995427571392856169203544429497190982669967331222004357326251245568786059648751051514362586155937087615661032620800022960827510738964836395196976939732444910219817358376187028377600895065445496302626129085497567885373228423826744414841746582102802030935107525478914462216235620178978007389855836954750028408392570960934398196796755308491220009144865793793753624321193281505667927686070642057488051432199194479226931726306186821377688103696511417796410588419786373356966309209947534552439801948277035333983770038771354613392463339152769262002430658519342408480402744674327879636393575298108879642983097114644734112277166770726146694321241226095922269774878046627434675067366572430147201885572485770335094222138142642325836058059288609740064261221784730611291914562778921486947020778382802766602188697816663282629596201783629194752415461133415270989528697747276904272062218544186434035710030008538993673685037920857476156345367072884932743571619102328421797385937881321775773580380246794261917364890374859007534607544899701652251172332089263932207880009544558143067344355192836981815203970194117310478248416377954852193447043607258993771623283488241173701164235372941846339613545851661891613940693582530751729945903824464048936406965046641921002243556408030655394466462379639412245835262404673574174041919307524504677122460505404272539746643744694519604242692786454909812756281845673916408250782506076666329496703215017891037423388147417442667866887975085193040452590510856473626833097023377996240386841223430948682989366521521476817227895600831664304762057551527578524599817925398912333208657170394397394569345395935013615190565237547025160029711274550484600178827962692169514958975637454146918750206977379715799481479577708581040855564624698543016842905511243855073114515672291490449535136950151860281145964770719156425437920343215319103878036957803642939007229392459265186528757288334024450917462478586004830751344232263974571774903389381521699554121198929769529519845421224475323221938568910418416420276582011284185685867446378568724560276441652168805530128622191837469148495211777922081315617725411434090827164913370560953430206324282592866203709948604006503625623230656803021661887582176268001954585246103390632531344859402467012985870821178004759099307276569203623282043764056339168685813679235976953492798473542337277798144476370441644576875956496102199837777387942096809074708662570229246626726647063553079323701639298391950469496577942055890456227814624704978270171651052954706931577232576762485003330742465149700231640173751611302664298217687519658914250208091076123145517872006818993782425210509938867203141526558020357695801634865412087585908147432887749343069539480514550479212144742103055085334749140775834197246135067879754099650944362078706000020732306746546494914125032275083908848574665777089909798218659718088248204611501059198127451315139396157285040797851899652340286347155190197454659504777896158326153397629698085308994177364108054264738816348048689839849518655517184794464757253533405089758094354219855413909562399336041009976073225578128757078157132405876295613109329895991584360141953953401043620918349375847095182610114844705597953357137776481545888954399497693294409450759367228593285315108009555558252422840260258796267487497821485491904919153025533021337799819003134096539202514445123861403872330728703896650261604483255253613447917484402404948474319552693448846244789181913479564708257700679484784045832244665281760345930808253230006284436046048726028606528094666189665321635108427241078369980813190852857716391471201538965969740815988546518944088400363519507515835882710900605724829239733569307817088442532739296875862005491440738976426687442433421085637148855452094696284507389783505862738991757457422284265292806783316387927036514643100446215752050119421045324429183384801534887091698329828018154268619527860023246114379078879654264517223489914274461181100577041164211120440063954978871523081835036402557235743897683046856297030273812005719017850231133142677028005308374397761710225174162043465517582342638669757731844480173097172089341095533583771207470078861732464399133176384675856574791006551811006759161347924902325283624042581518318475271620893549088785167571640613300517751477921199095866872016206931842394614661498374750044455863764931923472956819315344534539443539092732399392186874781089922686000483904974574221925499314127759931470036926003116575028392411447701494680578869481923268383376069696800735794866641177042772920681561868521051160682570563938175797627198580159637817785195510777789899104832912340888698335788506013038065232467660703948358927786496733564453771055358697418364075919949301543541161846764565298466624610856963255617325500989935384950459611830786618914557469984461759380144011668295428015957106111517766390792849224834386007521117837298107448906663717663769450326783924364139564441394601301455385396454826950496592323202523623383862763394886968305862069852228187280104562255847307332439682847231983021877548925339144116027346900705146983704933666405335538400704646934980678083631569461667786393974433629208708922058288408677827523423226606229808816149482609072428170967370798591923059385767202272324426881070044233633682429066329288415708116915279538702349547283470673069068295170238035764338744754116011904741027581970607938054391094529282087229671037293218817217834040617980794854555795246092410316261272581871947211324008317891593982086836482519812182913453812329094111576051129935009723839330782411417098521328552320015008296681580757226529003585063249984779933899166482562485894922416352666799224232480106899357791186590598373174455768928068137342627363953172499668042982810210710109007860131302480027441405552469376367656044972513200818670946865373444706769234105852162224238019895113297848367198607171144828213965980020711618358166792734077831980706259765137849884106661667467859605381815265489096478849669529174102709250431151822558736287376246895033681276920269391359698879305415145856402600501797907982643005253945686012506985813824819611701582605850262983968547690805290807265298883472174576819797612051742490788639968252563780276660252559198350991456309855910403838145048041516128134449129915575054418296684216914839016078312724765741361252941835931178845195409352138229212737038049646792417168716932476117008618995009636835380642441601625132446509846291884636561413553761056636204178302275835494583722705316743914839559652085671500442887856675538750764236726985051180539097314343049348587441573639939112399255458754390229286727825066111184875827484308774263330394945210435373622722850583597452786411928726804533323335567432747445536462034228171167439672067724675960318516511689212121337274043442670956121396954800511471856466102846618174752635588744951306239530109233725976999452402278802998326717066354625330246546203903655706334140761532515457992622209348467810171388093005095685896092603417978253476263740337147250678255556677597794147752141663092253072933343723907014139385744878715502022127213092979836095368345376848294569910073995897623412588783803234712076739852867274484540308439150615094038779825388137116418926346272026550260863592828151759989941230694013766931608982703768448976880702199591943903736399648081694323916401967222361474390390125851009669793621792100152181276988505943213354289494443454136547916748129739186879222119431364143001882925689560870497687350854594719353709182819556577656070238743153885879784605226379995093080585095532648212636313249583269559092241042458277487727421319721812247583913011945866041281447982643297044767290404252170624183164241774320009162482361612218947426018119256459388229482134550503740379692887075821106005562256032813803766127489988020805568860728481213451181796990231380469898285744754167643206212938103664005165825143353484688952573498636835536942904526927982125561718110237308250881437860048407018341457342179313011626505773329047419271910503091083781083717803266908606200283289565292353943745498913678389561925714563894509159082483982881085352012768857075198221177887085712288886484444100359099456623886996471091591873080564494193227590405287914446020700284756980342805513662688551655098831541362918931330433050109340705210061671507578508744392035992289330352994150124716895588052450800876684873463150593173555443322240816454721491880258920105874659361430670153813964294452209035092217216678166211280762316900794334470637629153738377233151930179424506734228010440887678219081103244891911995844349871987842729070289768949163656433318276131177738466939773635537602457208184544402889860017434960823521977183379239742856123591921521299765475688098217073015584751834744009452792157517307185774048711090263012234832416975076510098791731530940480662416940147477839630333231089182454549066818898253955498348460009172023292796520690300714319654515088077248849636045462640889416474333219996730462454245053533523049468406069747765145671971124466426721961913529797030385964218082174173460417109001616071999208524793450070730901156085204343199322672958096680570248251453143891240573684480807265870768717470030548531488776824152019512799671409148814679686797967370875268279591419437337374580732495479173303819721814347579573191429332791804621037840543009277643503984091043866654819426361989528411618691826425075245504354441397871808736559267521049031887070925859253120471891853691610747340528349463479513572113470521843629332308681164725074900568048108387727597273996985609529133762648220964021999168894999467470007072887178633061186323716181304816574554018548264589231652251911291137318641378931398719426761390131824610563958158477251535238398536831330845665907049266720100781551247790452542867290249530025139263746770391150835228733061527954891999743714778034133577066369304442042533384521962499286127277740424391692902926107685156354472537394082781250455662988056746087294066247951412045320861636124955479067371716951819657818951187957919736128376189879991722380364386076993335169562105629920425605647805800324664171225691612098776607629626183717219703587948892012897953887694040035617184037247805591538590442907708627475584733839255674978709502328792893183610862218328601514940771802585953837301918279309140542047022623911534218100425459318715352473216372765601334296680569935607399536091308451850343442475174058543492802054514251214800934391969904467482429961191227466017692612328610337112545845853328449823721420598457812256282327647153162159674138511947450795604854405643518823145178188767057844391346088793500903798683632958800944718794896485961547291318667756778807441745817050497680204870270455084310171617494328803079212444774956019053252060255283992602754846029642202433775764375262110506830920440885823455416553140916176195587820916884051894022685449377707801810897354291363045507066757577566212642373494974675347276369935247171633151597700044468210673043745859071439237902473823570888788545667488566724094333607609034590021565614124784388203619223845036333840649596957785173731281491358005284172574601729864500140141657071651902777289890982918704786533510989399198327248758970814689697236158719384030177439991713331068099303810244605756069680176272598892782838917540041307856782104263175116727867153321454351618219661875206627811764073040578276629913241672265359824099322183558894460361330680940767920969893895144348602296633865943340436387801919433315276061906220443254515753652763593961318294730684657527626959218158771842220627357552109261922347338994287626223193777901541225215965023486377462304813468654334975333886481944576863910054112979904977971154154791324471534028679584456191386411392218089693023839483121212202782530369623470001131954806156127826262747587998199145738341272487253670538441866726685260372563964006937881333843495016717765283965449843738458564323187352869369502914341721985424721549250650810163353211994632934478068102467125106139110714346665246505375656531692873618399188824724895235759468005390635070215496909282088164235207319782531810277118692709252489285842029623063878198751228520834336701566387279215706939021314755870468590060270811574956493796813683995496088932747005639688378499851461810573370124449828157561513399478269308611965817602607596852203556151122187355339017125651365879500532584925312788466445603964615479903765756633900455221178610874002517798263457730309825630773296384344950341099187159613529572265475501559076051931719641972017902773837306271273563354309582557853526805453697327091728480693520811202119585815644843855724198781577241930882663049289742111892754876613253907981940928291783187786713631584590919669840753349983579009546376968530307830286119946527944108388928125371742518502142997582647567062206244062929718619583939092413388076942989332554659127491658488611237358760304919952868715527754802348743042519947818913150053974989368793943202819080776334668465452419692966958887676058872865345734837086124881277265933098416496700653212857523778719719701343151382159632849236420428967597857449349065143130694139365138217320992409369215932597850016422022587177008284815431289845801825267388935278333653093500783361517215658187895862391440297595400259655484768120651118907372629733928030516653914315151741580145956457316950099318360424422429069473039692872650348607881974215811229258975212214442034968903858582066035873262927928385463193409677596958656986153504319717335257157349906594512713672337664589427389857146013013541876031310224860987418523389192684192607786011240771571546945996567815025832490956999075199225170249460375837664906444046982033712092311664295641174354943996968454074084273258720151991556108450844329461786312858603414583163611021715371409918535979181318396198772331831089392392751769702152576669548068805580458815050865358319415179532402691309631266963653252024665098503306226804185530293494512711961552452843073723850324715030863282237335840965721491829208741280053376223619016054537597386008737228563262740427665903196244990120033631803841057916568501181680678183197438086782365614210871442836322068165915666262157074160555947451223426399595837535823311835390628405666695903736802877414214784066476782967512610380243574514416457356675725690791241972735396238224935411751157745449582894253674282086036432357456698760109688538708951318698771897889644657014272100928925157400159348575250188039025721505359496503888205737619435219919732417152841973343406522375119532762674897716780965608109957144496088966287614603373183933533584144428065626471827412233482944085737677623894355728904731059847571651328474364174260177563811548346325074634371930791896088238691887006220889305165323040091549316464413736361662370345718879088362624535302068969062754482242170081762000162217607234936035076453088787872860552563860259578423676054266315551548258741433855159783639650741732572647271355601987691476406714998842235196100604691487801760643231541667589244350481928216477720162192586891472270143638596078794918933104944961385484576309658550193198410203875676571085720084455702181969873595398314954246604296404191922900175485533976077313864285232969791127209170895021740300769574466146774905122838020225965388473126013605056353286443833418865473621933661525206032986686909270246688603098420368587660451645283990236087063528919189641978804496476751625052730292650193060547604389560689149139302268120775327556749654361813998821706980207112015595784951009994081139726143732923114904250130570721912879623135396488205615023573636601457537538901109297144364052471427064186746316771960244958003033091403490075966285571759991032852002182252514117350520035257084081081942519717473415731091316196046076418914542453566034536209411936079048727071333464197830413147277315205624024376511831622830407276726268417695237921566833539195244392087448448457401547052843079445413248417182914085059619336517559654004437025699310945183803897534513485546227931477335467224293586961094156176399515598818919625809385521896059483669488788625242989638377900373313918210794341912535012459749753515778606774014056052613046755860623372397528923916449978847065611954374445256076301005817845865886269062775897060704302468174387581533103597618740691819533421380368704460042815794458249442424347461387908983720593581349819116729474131007970474794960506781324551539268346586808601897921934620562019459489810922140193085472925326685865676282446446198788965478607683101601720578851057538751992512518175581637130505808934788773765391708612539996912712804783057936481393431742665433481058677662437012706044760513385807357496260259895105322555215336281213141486793726801328471977167648728792904866674941337746998663424446104505167754776207803291178052575200076019559470402043322297688420717078988055590694973933412483043263124466197854666860128952778720479773172906107449334208429071909275442770008492673008776962229763725161608431903893104085153960140252641874652272199745380443897760820925466800552695066477378403128092349021687414616532974149424564027348250874270299946980356592067842211778580785593895545745404935504966655246250145238335769298237611183445134113036667888268188964650717421562282864242107913527995585699607245417880690351847288248373743646743519592017966782289696247375205849701183414818911626329813915460296356773217708907882850779309799106670561887140026360611132900177856933976187145206383175504654356363608604686561913951586819253211805848685014484682269142687917810296368294664943658448705163698463475741060947420238876599651595840421527588134384889254684276588909203097736440436837821958399279973969592574994198797894535672520491096731421447280987487213618542961230544116054159119962341112627029731196836949782335380204572378619473512927957858529229452910587212949132354235411987200735588531824604629005929640460045735805243479131415100556891411468561197666240999008287516156390672719301814102599221140468320700496814669005761852301492652696860516729255734656866721845436501980706933748272673626581556031277546943970890356465814539533453757765467179678579743241125155729710117125217724542054800448786074402283495458395551399423224586785072944383866307907291457626195062259550648478550632672685800148525015923709853850492247014131312113486930982277602552112825668011822549529694544802813217230960247975130340583242358957017683822737068186281256961262408971422628387897392543630315468869539121631459996007389627267745455644293762846573653812634127801032440381502980655672302647055036474308264218479055557252942422049972482164827316208507555635988993010339076726353708418368989611766584629634430837621164131643511310051633727239450833380062652541902945468873491395430446241122057131975679808390357667274171723448621152658972705256904410866299611877864918921316135784095867923382269971775163607346878142735943106955300503536982860682961463692417378352759384567561603313353526371161971272239691805782801098268332174724572035623718204449890833613809984962986600878540686814673628748954775186703332484857928108274075325577180130273930729644529050672917217986530416933042693210579680965445954792808328139124117953130104194968847122235328370795151906858741819775533811032681639904923921576637161815490424548983502834965139263888946509342128034221940836962214364400441513031708453822432630090004586306768172349860462907865847687204261859855596096565985726714896324422970123755401899567555741627037695986036238882321002165675983709481281733651728634704162242626335877519505525673139308227902569893391959608089536376399850520810711377072155764810083351571139934518699494483233880186052568145184625247343135844281952213957466414728041471030588016485056930672938969582381288587931516193627597437708547121444821945875311327936342317738119863021192664136287701471422535929187640519129550883791452218379358610853291665022638282495679952854199525892251275667763193857196282274754711653604960467058598139931846425321734754489154097274012252204724794168930196889305825882720378580929736397905652906791415428449324512794643028270273162474246124123112882424552552423442313648336403953905460190262479756407741476209327934956987258192863683383797511647002248260523736243221049080010379693180501002615393225618730317438671169460110151314127174421738065545249135717620478016531293017914032159102498754699504939404701905272850307921399394992118316254333651365186700827429295542143444182319731894472039241060765108128703484589811121164265735517576845107454640310963608867551717516951666122754468421933152967103151487245352673808200022020340917663926398513988144650605367018086720491765595109160608222235322156462652325647603723927161019245792890387163480594461267036430225002425634792654832485156935985421804882849107536118300021611717558312118463324130887373188400149274381473356086201974143990394019038533449723803001432183832066359885486667199129020718032524113152114358703628519658246591265639887275060863487263417343176189161582323205496555607382614841223237803125781552543540939847713105064730335521513073104767319032635394160505958193434762182717710260119352308926706829952492762520754892845781742940743562079145716452040645019555055032177458296017342703240205842753137141795940708392367876907255351967000705459499353476955002412560131737967322855134957872476319849795063685894149657496232096853329546774877165794883801713212610414848939409685489717319189713470038330589336277839002198108372149626289448075343252474360664396564001641295656947417949278602052126924437330737057795556092661419227078169098370003542166931037515920635063162721881186823988089593455957661408047291451906204817805344048697369360320179450919818471044519911817758262091649890780324373006839419636962655396034340717609142192232021640575117834662875409990984474638134080919052103464399156404553410974230510205509730894069058579687915721333574585233716511916065303102753647414820319328112455461444748139051589749984407355063818336398417046853220097027158966138105568566265921798396911988272019997733574577720356871330394805984094736453570003288011130498402734731324099961582001461101328818845709493185925127383132292689060732199289187212097090455519518516789087620357999367083314011331732910007008299944297170451869781817498886885783456004360128787654928209763312703044596975156661564005893532769994600374849743555415280889890791368489443617141023285550597100638728255710036462441019579592668484048709684388367638056369886861647417897417350695967360631387054647458336976075029239336709944968017911183651526133951864994639301448439923760099759710467057133233258364151906639838506811117251007460850178688620041043865448219510478565041763578987598746099694509690653608976957011013764926225715491565818157274870783428233603188395020703388977713213639752552919223650393086857359607494250242732379248103411765050434255092177125266615757584430953104891727075354969855481655486917283023859619628558903019920233286914985042616850166220441217678719072425099740160107675225898155144024780932140053768594545579960916223970063053368583490429277987067723837199195341022155095028883725864701578954030226786919055499460237087599064050937574160987092055201872444928494318721225112256831844848135958032142788990327128671433043758462832188980906673380535849521248640588710816691347216720965409411235310263074949858548445083702022557380744624495322306613219809572416970008806372806274810307632786947010141590634220871219077086676606982854427125660683181970815630625821253876104017886965471561353629802432203497561371644153734902296268847809383512439474119832220349111015415537150933306812546359953057213789814247294777367411587939375528436639652780010615424608289153975242176814149272084353098972614112100114484186736842795176308755037767182796566311975871353393552367078599741459649560704979616559328488248847437336281280802263770724718893229167135696043908123083960237285108566676638849163329821614374484154045590662160792894909068099726271291340804096484979787734752163402370613077202966458804138875370575156246320613792683385950767893617588239178263912151648439060435029826690169508314362908810619422859308490624966120131553130630868614220465850218755299761237247930528211592863153026957194965586766519290671272899780903091556325245943224436224608324232622125334965973111388098167526506971246065114263441162948977300769749250486681007772350187592241336552659148470206654388664552731927357867509035992388420717221641153664760418874302116491102667666132668271218949794845500766410917426153783169163262151985384720572439978564716380883502978014976033879657695233605667661138780275033706347384860225130875450714363674550872778498593128574247411255188008674987040199604027796817197217954709932644776506248752279439139415851700093455340447123109432059055229412576647329358845612364112693612649975528256002671519724211845927054987507498691199942884046742610961713185503955108813108128330563705372905398593083150144123122359655874199157406357681019261345655973417777419252289669748640166917604121861167379617175417073237764998385752698192681993091777603669834210121853144312904446714990695144895601485734841840097888957937855564716304698347598967239940674358198005522143414724602144659053495219190635412069590621336633891236552379763141778914290240836752466341010114714526125619440838768859650641802849709286027527566946230464812256693129971455107846899124065878359789826701166198699670280881827567700997591463593453857996228904448907751367538946714916639143162243815088623940867201106089217190986711864959721074609980278574861225551225892792764108195228467206212482132251443478544193664859013971706575101156583092237607063659339789493305969305414545223554338125265094850889637714838324992460347427529841226654553530252390717139279826330882295159887801765770184303259749612676403591421542557950414770695759607746519412275000514829815366781273028019909488194695015642181577892787770874259065227873496691544473748713160036332460044211014551264163369616542107840961378081982604797731725752731679501386929943154389000397523728432565414945066236594988773902754410038941120355195917163195132658386949993477879499793964574658261432668273044302133951374048776326877648318237792079199442699827199958249380366249136783865365309578434803481525971991388491942095876237312108939808357060132062516531649162236349397962484834744289130466234487104898305413634631389400642652165924583117193698867494963734055491038796843408372300970121739525364655483276503610249306388722304693889121476935249301439507157404929610082259207073945507986903790162033673884041593951853820836004432188485612946591715958349498078882617226992366813683987651573243823182395266547088703664069201984874951206823975120908148008077457630757156203251865517192606692594932577732618338351775280645600854675695996247067199828601254975746177807185113297981293148017316753076005046930524447121940697952593948275430983997996034059320926915188718185565924874850249644401714050451160683633764097359538727928068571008825489417245089546255181351349306791730905050896837572291922585604937994813205693967163108047362979999495332520601286391311371526135966484217873156320079463396200544759389658628798594528460590974859036129616759002406698227725388777629023872340074243584786081417985636901319810504356801137454331573074942026016239886911211014035842810385565784284708678670707501990189261411707336959551103544228964679097185938676112274160982400977995165574665761331551712405838122763407195517865001724625340122608396111249191830533668634000234162596295010794744402468190979962511597265620926009888496944164853457149488349105566140129564758777140695722371884028573943239497078471613059853258274739689257553768364736783601922326126766181799028184617027278762514231654669017114055044739894360396451502065558414597644944235841787422208156200327746573363949995595685807073682025679761553187745481902677339060351679745036162529889867476184700136492665490532415134213823623284891017747384717332865043451067701476126566390192753663836276994799012808093386001085782029869227216481782545093656043669701448581900597045330435829007093732883182331739549844305543344863282838261944155112665594475641170065530672528311961556312800932265323027038869055832705918476045971224698307003947843543927557020975511313615882809231880049396928729125821103172969839806431757996144755926944490422199833463654971663106678687312494324259586021311951828326409012917676076973661465700045845358681835203787135588901618510925324642127271288558402424306958164455859805083349676119961005231277828101414392461506124259474356330052487995610158029173192647321716203024235507079677276168588652788829938822148937711234170599311829438981472892196676361098079610738400335738927579357699822812105119432535732137289388867087871060746550152884621841798291757977252857240597878972872883223659595813537816120844592981832671085776158262908946948249939050352295570440623509807765093760104973750652546380005046443964310817881457962408305297059242869090173748949581268465992592484609973941838651950874138243619544823671805838015345890094578582739022166019694115370218023287168474454633950328899296513626514491560289112537172560787610378297672528594018043207458618963999395754219951539277023123521375619720805418645937341106179197074747536215458845017856454398546082606697234688061820493654027685923576520426176461082869995480279639585031225609244272603447727358163425929851728156014825312080723266577913530987939477063722473085829422264194651739069038590276016463798799953090520361867752548175549016738843134548170866872255395370873771322160098281046035039415107527143786229200214103907578658052835338173049949729739208839776468648176113603558982058304140634322460067086455425513027708540892189817525696493181564725786633880562031311432627771455865044716692433151114897651071431920460700441275590195296739969875989890747072003240332516659760475849278078825378450286780072437831950714256821634639506728877890857348833741534593668447949609576776985786421374854207686916560429437282796112341566351658442650356402965430956122487621413794929376074390114655509235224875176189424559789365088270695198221728127775362664795112361808674899975759379919993627443778749000461001953275652543714433590916436549170740912680168172490555560754820024065480283927514636468066380060052223883987375098235649742510677001652945639058303608870139646981127040743472574940388376385049618305936024981854204017566483433159613978419699362204250494627623037204801275111020448413321399455627816930903119034524391446021713896625551009464681737561582589158050882026398640112671885682823722841327817926971934106960454306582999462125803972786184731341454902686365534093419419426381461060353563348812852188737657275165579871084350334338423873506798408935275409244012340711274587027179002541639761354768569915141008968455264160612026966614629038097429889019922783893586203911144183826146408851181991077211758570351186485041653575842488832590357313359385130654046053988523294791406984330086076420407423518164870683810352623361671282837169687249745355895825448525983943819264364426677436289680385864047121280619411471906834663776265715940656850859156735081844332999775224697981060434309255458668282728795808199587994025964363731687094809144659792780590144599022392564171570174852930166162090113518523982695505522368583086140361367763387830190852200385089164335139481705357729893970832635886931749689674860121028022429911942234355491145346083537255170451673743081409350948007146421321058616383237800079983819435352265648000094098703275794226028500719152309986983767338662557916427480017685157521064953085195466660417961963680599148954694868514840410301042252537135905072488459808720317383897462115090338789482965035707782478170698801090536232194474458980705159265715540781019306913092258849504163266749737727414923372796712369960851390626863309948602942974260740052047508775097852678789852328582824724857390313548290991046374251911102062862964851448118588836648248275326198791580996572272835989487039414025869892919752008805652283624563747610064504227800167231708330201620768982644004697464661128901463644341591076212139902710328300723383823663584250640262593456958519342481698149536642128784819573993666076718060470439691236346344894600262895621553901349152693537077331238620168686709687836979058995441477407147560896351767294693594489969623041898533568982898191218728282526887809251675623469539512802212270877308543070750649833381766601119152080464692715562465896663836007602227298204699011225476547812028259810876138831262858287089330358300124141470685091624827114428713702354017046043535108646642544429283837017064516195021415170942530799007870352644699463701514883137211598101722614409305211105314293673176885905821454279418940246996878836274074531062455440625950074304206183462748081164075185305315074610165758480609078690487241859164840949188745337560613122632119033424221619399900671798737366411885110697121616249164776792990713406967333630119455124537530823374164708219736009600242794742334440310992657274404995148957364151932238409454747310508547990825918007386808509450664105419601571924131089886379427930722153749083100311165672532045978950389766210407811275499274652597592827370122658642417511235630871759041809310683503516567810736999594222996977853797280984621475147478211190405496987699448022481632597421668565190009448663269107146370012781853144544737578140238455729473963110763672554503448928623047288042710355242337031212402420405465129064724372578318333432281514807542447609795327174520794578319240953226919908867657187411042823059895968870008085457411563601312895700470029908561084334579685458382458333308725563186327409174269379733847897705222357343863641334512592829958532568789238389249420556720381057685422784654009399463842659640023308446292576465817943302520471825734238452145862494955973722745278262942344278469495535276093110913266677683331862151746687297760461774778093802520691053291980907516581879858377027443695482652623474563093992399905617086085561821361718329018827269608308940005357425981984602826694656205439896058604651779630380829620938239695727982605007634321902006644473441577482404796644321531896420158762456133116340506009812640624182127248143457482313315184428971658966194030594606454968990339543666415583350412270907426906999120894681254720608278717224518182810298607540224851731526804359150401831157541593157937619507629822500518673545806654986620683363628599057832682387279342193198693879834099733278467429716515301856418334395569811637998560382119466146179088487803586144392569893777624164539467408544096420266336641510499118940077467399073809527157604627959031080410468507187385602272640578165164208679251857442616896548633460105968872053991988671136129284084444484822807880992273978132800634059776635002792850408496708844601932600770254258376243576769856443703555141335326425695036820043280381661105053126823645359662463376265576527914129304064499951110955430373056037665989524198546546647819554263557861450059106804034261404641839648871435840789802591183726137082177257343920311685256323665055546033885516895703598417306115244832258633980632030787175479074405264847466299690614874004473531331113140371395815244516814380448981720974311238404485574305517924750605591614088755949553255075990741551906100158027291700032169757369164613102831506173819288944597343830719619028410428222416643050863126775613541879841872416675599603521570975216613177483656839744839020048089950879916365832542630772495401950837621562755344734615295734931337483984665847534432599869238921715354077991605353505893724426565962253080156788167136301802435729027422056434363948381905616871151937616639186946349514340613765531074202007199455702465573114172947084321655242123769092232680185307999143036992984154045425941247671167000299197130987258173390323744523203914015494412579463059012781813262176637423361820092948636922950442862264237705774460266572489934404114164177030931600106686453409706201581796902884184852724681779414905409632479318933039734245407348429547243803016422764360219296670107881059253476224877350269059833869421655812197942251843120985000021865096136058763564946092635707588968042465039200604113488415945895195336165333036922832729267538456065396927534189158807835344657278759703488475248657792249222928834298327899813109220666852248215174196670626309456010935018773744473139476786857377757075713991011197424947674232939164879818356546840811440694279589622009627503110746575220464407830155699852133174471235549959693998808777279474561578611116210052692422286678197615277657500147101894750405923306441934674892192345649505967861131270279804255042784231776146907375264135945005408985397158165040800510832306288568008246900907819755454437098260628119529493912820367685894514447993152210221624466192386550887893507234712380866228631659711170725547666914574398139152810629648511112819007607912929279586195536220146482105780949234644366404794860404045032447244557999297699046832118897329731413040831642857722246485925516569455687314599215944537083005715738952414822831618596453795210884701250477707467313444909316752454357693590083681521347823726432382253821648483310192929560415942485634297663054827612858304653477399541927566811135740560434283899856520939740755874228792852726072910175380366658013802959785670897008673597313160656558888575027648167769055729127561900821035451028924821350185148009541283816586684174418540194033696061126005843186427212021009162237965504446170223161735181499713451012998513183796890378058739577523548855754741873538179961834094483908637550362615903325786935131303760288379684915149109146960270281124654127135773003952624119938473567853574326266579080025768249153733633072976217845072662699400691521162543697456671022062980824839110113994812440588536443413186879146224190465008683817461551146280081545486318682269553753841650560983830873444471213244175806197527980610398430959734449784558031466978641775035905029841247488494337208115550428685379654966380889978876801555954160746716167156290115537345002652063836212386953579822321939220168253661329998030816056513896866015453780547613901851106370646179534247381768052946656651030124156931277499503929056449483131953917927496401046875956744039195468140473077748006256404208645777375703004619065224140122711204653158715560086581826556079920955470192742761923438911600558102708688074543428915774631712257720232215898482234520110551222972057065148608353061749999270882264005041055146458548421783402336871444305418323287228195418850013019458231683836468383870185170456281331411439713405586789676852642898198423001019207825034660513946115073138478682113166665296983894587675194635862633845540891803764860538919229636041860036282580297483816708134132240723930727319374639622378877677930464941623405161553336971484420699992120012638997330863248613015366454173938204269362533969579191491410991690684856757756702923400791034092951765960254494444516519043939049771083496903080356275375890111781570093146494695963228296677915459397943967932390511213723481521339609019313618601744389410150571239206370316855318515552151053529423604663968086975808159876337398590182435827086322344486142176436997507594649032348462134626230566501307127441895859250872898266459278952492188644867058976633332117687361752358649108130495077963207153465421419897569551068438903082692475938896671454075181662399140565150410835883810122525028682292053527644713111516462461245707377847239358982180203891500793410319148928278851880762787113376939636377866088413982200002842614380134684193034791459346647155298473535998841812751412631050826602404493733505852109575701939697657093330342535180490953179269801952515376939265116296304742409263441957877368746333478105901127602913624470121549737538177947818397481677741687975964273629434084908449586684014834885862360182462608249890952338186741018375191214192175286074443288441303632374124095213296247564787781580326812924831631683537545095251667458268638501062939676627891208592477672189556116655396996667432949287790214560861457858658979285929504245107203376278707517881057220509197412303001489854132282535346025607234868056673393932222355561987200487225325353925760271919780127609423854540712162556640794289557965086975493846254280427752326069577653640641288550190563240575930060694756022037335087296621123154340019808577331101346715463149680478622363314134796710126456072377501458618733726439106431679763866498311251203960914273472709398376589194557366401650443205831284025506710206432266753549754857020444028192402838440052449064627692955988987028164966137023341854362004562656241467672396807668214652467358047986101495670822826860815805241106331454301313679825171167395396105744409923672757973758082270207914855361164167872956315271701630408824552034929253276992738100161344100580760350854445331773469530505562924038649347076278597400108559978310832859792737425830548635085167120683608350450530183874808289987284427140869131235580213057228541160138200005018313774002281977107989691485524748394387792129929092360757694588342192166551975256795251567195441588555119720680794328986184119224551291461021212511927047876490402465978695774938438425344817249190292793675098324091108910076989323152345531201751208193666293647741755343190162937842214813934379416493991690182625128643168442078385018361947643409704508578263487665149447528144492298870420512591663669305220643822617838882696282900281867905944669483798691410552735896352676523932165740420654163295844177504694061063729092778608350098061627446670378578530110147748291800722085922623920179967282618914403047418258584569534769316886151095669803741267172211083513767369690784290110684650546800949255990919286372683480006673986301320798032960403766260094370733023831212710650829827278545273012390093291414812347067593632899084638434360063878744934086655902639786237466541991824892506305105581280586796330814413398357492752456494647850913837069848046131013352115432405572198987364466150263843991499226023507156455645774276453416478237008905529015721276001947182578095374475920293735445570726540778595970834962432702943801916952030373431552899503077823824116778915568394705155183545617369731311552229450586010427022799141355119171527359598659896775996457787790522936018329418167173615999819248395869761551213541923543131281419505644576735772620697894645165055199821075110918816913968728408185324789720139298566297874711109257207853011765877023712437851211495021628108986155726665058491770356491579067904078344615745832627594044275612788905623175009615510101615964077405136449561798653926783052716650504437752095649733172895102424899699807842135157626481722536419392282330129832806956911476736071803723104197568783536117435266660182118203432590596495156513959353346938999841194828034015339569908054760817611756345500315581354254888883967442233372156139113165221737628765733483487276748204547889659854638565664370442660048879171021669157782488808768337739026220218546262728345181481972288037506644886989320610510408544521508927781258813585303546496848929850740109165360880636752967516628563279618225451399507889452441377173156760685392481444365708484296281648345664121787138543309810030068044164326744326053972171274785322767365062363924939842823786971406085830366055653044556872362341328188508529867918859225274294502016578597066399441078447279752788395705641645513997703862232909522890583614873588391989308021930835644551600047682842645624917191297948354598260294945980906107853289823954534620872859707610245467858549416916893454394402118633343904395134411876941735083582480750750677750596290750318848624113018195241499266019733447570021514296248731730575263240133361262862235434146656026813965592047440020465157404482487323955112934513230182564859594544363351838719684497100338590860377815443057551634199911398939302271434932318920162779963914793016941890163290087134003107925366389344943267367654595393074759334035375406681970310997826607334624832440571254281085783662500283264699758949507666126764136176127440102836760980932775749213036449423327349233247789653408509514253056448774767616133168044937131085884271616801381936732647430119635160817697885480266571369513215437906566779035877013234708971409205851918445098920306665722468139490815446416300124135345879817977004956679992600875500416442352270238409380826249689631865412287996956465313850626488730500647166007677914881845670610921514096417513338126267499886573820724353452869968687732165222824789863298362170463522721312278523193708010939973116807320734342807378255654232793020370608498043803292685510299413468332618762448460530850635623899159267948362145532838726339120665479848116714210889648308081640907545321447532532015185054229680490378378077074692289939473255812266828080630424492866916418391440657012342962692419749464004952814674179635077003100000710064181844113608362369788079382005312106843121810113428433996668420654714485631256020806642739915067933821167928375777970964092529660543989163601525662226514601208243487906763208251094086834320670593440170191197370456218288897883331012775646403900560828741105075046249400205306797563208007364182461689718074578487120342762276930900724683493657472409759083000360753359213133674303876087881800067485573184329814296556497738829884346955489989340021809246312973643755333785027921333161480937142256056829968531867232109847419853269677196506044611493478656417050853547514754266977745951473272618214190091118229792501674409897691660442444247871803394040070709953656762127481744994333991141401033283695794938473191277938492164457332346693444089721748646411496935059763119641457853052138100936070295358327211081917248577612576760055272454536762889878585203252091825014149444109765725548039237458445551595921608700721332023710250816670482903915972046257949963223785873059010084767284442849494778334227968454778085374664000432057338975849444441272467561756079780225682836307357334023321675392317738700227070467138519599628581804324526894797446439201627074958633603319419091256442116414731101540756961035468830467721196887429273791393859455172005601280050393266156944297900449812894115291254700997394447987502819738091550524615126409779805658422250298088282920031567210669902151758648704664221019563863072481975069614685265901610129029670524319893137240126595147868371422256367628467796748633681430712444141457661413512810111982705700042845492226918380521413025518493079021061240949098509166320442940483848157567522416647912103051921244893662365510013710024195377554837119462610434284544444031925717673232523549473464746248604168570592709078394898386268047096293798234541192192396751592401582148923451170575670901936632521706677452346267731656373469886579747855820118717885836500420448407847954424051204505319291787533774868232313924683340358815602899697533308570658070901536497134844612705856451504697935774801492632893192264558372475892829507663132940338078582265670252788052917091507273277437516330425980613899873935409400334629607050523235702834333807063224307302385802751167228817113633907975236035507794024859456561402981683451862353945971832862334569584674941633920786205396447987884026843252176228728619654541575712801891867790307375185076799439189289458716338980193552676142519262545686307252947370578481392843178309543237734869763167932029529976543770746475954122670778253360065386678611268384049231642635486107788755996748387709825335815561992918672811768757638823267676914473666579673334878075731625088260341225945833377604360992902922715522305563083605830052398666819892208505882138180457619083549105532217857232127546579962904405089503898378341115888717607312435637739717008750792367051623519575553909573265054599409764295333224039461739497055408970948041413626257040140928048037598984395196543167827070491517960940951826032672337470068859181969067101343908018810602802858803646279437933610759078053220192034120741967566784018497320570062442547953693621305796062920229884693704334744864728367008776845801581197951621978197592021997525346218872437187005363686601696763321734259151254602827022221529599455345338666060685357312342985716094075062069665085951856555062019024922533753276045277737699196070222197198662528816479699920354531901520977300066274349384192054197793653926772983799124081009832953112240489285036744923900866811428989554388013605162621491155457322697811153715578583716990553130366068889907550993771268646440407293265759206527600813551528524409380605725207406306451659464657322781709854950517889009554715337799214911614613099400918088172783533185560897253070606615222003533965907262175430535371270582965068761224391581879653124668912757764082636999829764845238535587689083257635819439445020203296018421626319556759676246978190209316249203117506005170338159733362728680387274240335301460489575607833092773148336802730877091581699051448822347423730331735337211337388829402100996468237707409385430029661291205432073272650410408604787620477373046446215862138598361679891334678969816056631645492350763575370015725420832529167960099950471151138480949779630878118969920310602323910089889924237215752615484237386424010562478363565360066127583582960668558535108099692810597935574244980670260657103353984806900385882597720468292307927914948763785074876695117851080398034207004722327884964387760344936200489484329814915438853878348718253153308235511240627953214631029587298419345671154507012312310534678740036574578470323118729250627242700603021937722877929413990178391945915849491095668561650450564444771403414768645533375461680598966658545873809969077538639831897223870315463517161869166726480345373166759767831813893739550376488742372996582470294117464443475049112000282866345609887906956682107010969517880273222561917344719542640499039427152161241810066084526918996215363961584528222224668229978212182973141322198101487662926118679559878622965019262153055137667679277935377660062091703650960817640251657660579753820186002453212551493373088398007290334846199489533432373903604806934240229182963067440712203060643186278193400064146422316307522126150671834200003712335951222449821602610639335201544110599031045960528459349039320475679426890078371751021086006655506549857028920572001006763184040846420517349081554326262036180419866347439890342538418111854420227686037134839134749246056456721019512131652339532388362486947441430798028518084434296438102128299109804619368608000727019328817999970026193360695044062903021412086989642035441188778654709435620251109337804847586391699446260996263426954304164999313923475432398645818917346085307100048668761999314430038223365442655296742772775337958628222174707275068635759083496123607186070152136725286974172652613940818358260204662182138635003574491892307721584377757864066443196239450801458086587844445188538438511429162313308101347813920725566271205655990005846911707113462108136700305649114292039991447634330247015144888095676693875581814073228229935922970127473663784252762803878407785710194650339108114718614577625532484118957986980048910604524963119611137652713811211762422678829189291081867757627313990982847490574249889571949939623448723823273183606463629933845910056822859245869054233597425081567783974310933465766202706006960153515092368432293326872490951958953405356087321563519521909089114268321494034185618968568328067542188246827979530858510115650310248389532007684900356808461089857221795690143330162153873163284325313567518644439531758370383182249567887636005732158476714234302919462100785789601792098960765428220472173167439746901919557009674629212095502941168756266746189753225792557072388496307405734974131579118172315490350119219446046108458015743193083711184472038411381595830829710924693068138684138370382012060586841293845369785548247930574087317529828023651834083755531309700747569684791749404577979717268972406715324743795760586830209100900082131509405894589749282816955228084092303899753896661056475162609163946646261925780067465799079561491189684664244507829371945955951880945560242141354291161470432682603380787419067120164010990729023057652901913977988354855053370257044350968632138721780940682518020752530275742021916224238771343506941463599701302962634655592353594848223778051520647021210679845486864494728159959427799188828891525012003001353548769898427843475784043414876539190090865221664630512878047985250653441818996720909298221203529561943410754317013562684855591590698585320344199768287139364719755161466175899714926903984019813892297109236892239596967528455910245896885558509238012380057247549772170253483196981516257918794802815029210555213945803815653597177297460898569433895187748463022839739347539322646362763650753089691405371454535200475495700988070434961065473444492950230891764820725793915529185833354070042568682561318016306344471023444327945699933848477022972460895913535891011433501386262262419551131104366900475650347654709515622331708042260205684119379452381405516824181252970562487718021280159416153407992477934313543067280106537822440478902803803922613794657520113283370917766518150398402209671722088802913346959206965424777383347641261689888999775141857443491588933472479449670851063514311563033751627088010012135854650213939094089130140646553544909939040866326352071663926957845897224396138033954303840148089908660893571886962152880510973239851359503627930885612642168804844696375606594916031944697396094255380089215738239519184587595980451905609459532734138694830652752145248142072762615776152696303714410132212085788042878392157308412973986295882376033472966070095558411174759510029691550156284023874919045269816598932079834213110505502321547244895140475291307538726872968109997368486184304737346630059645387680705277870814467128646049638794635060366496113803481200426556653088389802279010287969935359616088009507263838771315359937156751865048701232114032784794918225562681876834862755547124792256382794184284339965038932242302817963516610277798918202249391031366325095118475803292401967479347250820291590889980486011565176717012795836504248975334947404128966300810122973701677459591801186488884686405630771799511362731551644997061255640707959460471512466229551015140642104944884959305957749413978266602870096055248142784359604701879242762795890101986592102253194328919016473506050859602898381214958296982111864258392355876291009215772736525259992378013637730322586247207143420560226357299354072775865807642528168926618698288204298943514484022886610748204555321580090191133623976370334943310279824601496811694439340427539418510294802937604775206743941581987599975478167685398242190399491885115607547041281062870271389734881265063019750522498293501086246106227908327065185443302671690463161367044931086636518128036073296176422623446455751489012682981192989918450346543257107948812693046419806843780847979360663372111535142848130655357727066080242081073099681916381844089988486825949175559908897970578743106642192359485567793547407429903425910531507069750471044493561500813487707742151914068811432286388729686647474519660448720379116421294422182984409289216646598275279498872005370053351399039419838725554901583829586611257514454193127936683143220859871939517919686391711340228742732301258446870220041419698115185045776135002930519709781738800234152702088766046889535302615702205745921827562211649632119340342772263470884674360414833701405022286145597435109401132045584896717877408331695613813220976417943605210015287690060497149277791048254465410123618386100209475358647655357924567190464845804900038482133962242288895930964265494382209824910933187532590074123692089903011473948751957545680905216858870644271429934509968055233577755613610477732459038953861226356814368833367518176685272386927193925993356325401326873421061763431031468381862174814504334946468476835842047750462751007386678866356879978608625447522938562856616049280386614438922308438283216819472766659731717892238123897102691538226222681385939602647619069821905007909226316715900501848369192904789881345569129501509464669378044228249122288901023035772579315301680052121023636497219512693353232132721947438655057920053004996338029604678585244857684541506001010369135107674106933445460054912544056835360960653856408720910649921118445380755161899374170858814612043342210873968302300042483571328630811354054141656394731414702831792300244449656766840441538700385942123477892230624572683483512719117971299518598258282567234559544187476261111884543730989612397665008463092202123502285921435435696085727263592194617391085628830427451341014995754003860006780014160732411559024495014479638336558093035691736698843330004467452984495250849559697086859645189763099650455086079274832564201073850895293889036320984450849403395429124504199190920982370206110865889887171447257096464853416095841653704120569102878008259484409178096636138197353479102894978290378076080410747866853226701768536903597829851720031804661480969871774956753768964065899201871512180827574567631440267229093704255380739219713196743346843705750742474593241733498791083295430997092451520381120155746112651597411681056899102501947171575662019570254219922380548072788732309918152030621312976994645294117112507239692343379349493110790420874383635933393041940918605294058834512040580768389630970319894148996394987767144797407430267578966408897282303679302935330003384887201772137954087194344727725604989446560135341184981020769598549998051733395941934190461512173089381473279460007245965634914845859896806134002411097716547254016926437866714364918202550529373758266604482963773810958876104338355114043647426469162784765022377336399806386659289024751057107601135524161271439378278174389325407169816947982097168429199632453010889636943023900415661477747241956404397098857271197947492569401825943380308663544183837335386485442046017791631321837831652037270305165761000789620542552808816768267435654983666263314731370998156368057020663148527736455020533454059152533785405695519312979700725405066959757171605802445399848810799186076618408000369941794866136478185884443921154089912201948493844943227206115820651228554411333273956839659203169937067550533636563624854223379221835608344383321427094262912738360669768433064638365637776292960561553487395973684277290359632310816915837884809227954716682636142545621731983672974151607224232596549167422849082106405692712707785655794407693994950551266828714775148887061664229394908512030756501238157576548275193918265937785385832010175680308670169484493115681629120453206544941621529706730873222041150406795858096349712689319627101631559774560204586628540668552159731554414158703107309915363842536698896308852946617342337027286410129852557666815988144052214564081920007787145713212844928463745884863712130746457278174035870190376124577489001357015536296592344737693103043728122755348109753881176224433541100380107896866579249260597901724849697832839190942269917950124012604541557072760734769914898670094653821163215726123992032300953960643968807848296916329917834892703061980791093547777324224230696812835986456874204215220282544098837750083228129756471735894738558026955714310913570558278261256266073236313017161666996667986354923959142551821638910700419911590264990472753981600762112951508753206835799136216408777525462884600158775740955043197482635969030190387697082284259194941623379980133769534920444572536132911882304608103214734840979266657377414613261725648918078359206233873336744959005225057538962573633130708742670755401744786656324671037459423279880200350165787825357150026268596545504841558672446103525542195777344741592112543499036149185519969121018995664606309219326425894183831114027048602211034703363467795751970164578128238239728637721454744977176127840613173547320841610005886858525001879113320779672329259695508993405852510455661088332305884104909512665780088905115320686839322079164069202661688581361929635647394102732680840368714592359063452080877085397297691743304541319767627058434454124406113894800155592170893663165762675475412687861623670325954111393494749490648270657802570485516719071931516003455202310227918658779774177122490179132884242711827210506994230275337923680697672017551586551043847012581477609023839525688944648092678496558756003162169757911305397177974309746080377619832357281960343818371558775510380069495603370913054293752856913405547784563475505563697263734976820144105162181521762878279380607830905785659570315251264910295277874158934909961516720526774765451687390673143706440278680880431661052563217791160382259157964267577757019814992583687388989481067243735613278933510276915374281523661338286195547581291724402573012600921814239045982404566378228348686511006730757233679902213722567602742039984247806844800897804683664042864378604605110389815098939125224351840181792915695149376067959700672355274674509975108594948919551261069757484957118228885115057768054216455461443041290723996231038477784702510385954557082476780823300928015064043362199703425891817587189883742107916232946991023228352734229475145766179370012611431541472457891442976747071633903807225121582702281531943133756906401667499712795117646826538102056086231264042419300196994219849338687861370033746508842304265423123068515831222892307871268980890278500241347721207288653042018851261586041153551920208296339999728745589575645299561766188703219666199655561243828950918854260875413867353781805217521969174693760106950170627986224330156199554480734005389774143737417173476275783460475588774844147975363785108594200422802094146807353057193107878705080543921437277274222759155484123822513957837154039947658490658264683107341001428537294258597689000993561204467103062409105480698250266449399941276588759765118943316325208307330965507874898816729804383927807333440317346985164978389060656667253889825795876046552449744230508772602746712426852146888196664132693201430316928463911853891802149523345749912014532244720462619465500398929551333269309571968086763736231722525910147059190826444437755037197221718952167360791399399430902067526077743522513501995576268037630771941680799213831830620875551537771373894384120341732477735446414783740125009463727897578914812231416552495340111373082985102568405884083871777527271978139597985596569034862570086277730055681381564448414362122137346142816623537552657558958967815584426740529024255582773493935952990326839510085201751536774996558298191049518852754039174045944656567203137988632101358899166108720306115846901069113481616588266249807931422137135386133842384917923397215934463873931772989391610869894412660263126034076568464283493281534258679323501131666206494064670877404886200150232835498813685764544410638093710449597932873176189500614556563434657882695674465528641403430603143060189492055380653900781364329503081611938856911162514504465329942419442335182576553474808478618824394504713389880601064364313136958389507563666567110010285556254510260677300389554340636127569732247850165106365071065364461221780641665993955416870670528816116995390760613834351039777231565916847515064823121474984678823811805287102840669098733192784730148229803951459424078478871763946912724429771973194787918761330847624450259956004400637044318186982632040616594208327845275941728577119574301577109130117762086202269501308895844500144610689609525405847375800379719473196924988419346899712309213390747438069979589840429642626437717711384009295220464293146115577380190584162332647732260865016254664849114841760085890551176457573658951147648652015547677771373346483171660858684251697145959306174288533687945676714873765732051565091002156854415221637893998408618240991380797319877398249127625618064962581251345896941619075353537026390967524592815109809992495914625139855604138356882519295498949866632782143523911940106195306245404667164833099075551328408007142062798945800869068650223756217798889464273871170553993980622935987091092359447268317503747101694606005140903521444531574785231515632718083365769121803185356466409646298371882939644705492643945630108673770256751367991729262082960621263578747247994539419844784025176245140166284524093080570714496816042684349056366826504064739065204133907687914088616565554206655906958565171412966025226627497312029555379996749377170847212206650747402138215900625236695974572315877501488531037510322166897858396753112060652630026364281757191364750370989160183211263057873550733154955875206576903681372226032562003889823413781951271356920302567454341586578796202082377295519962216222434952541603815321067595020628254308280271490878594318892589275488169190683659210097594879354412176004711202560960749135526312145747389539042921004459328372320408606599960870286384930468905383885583559708011347986371174065428005998579677111891944802856055811285358264678129791659041746276259552797552249025766404051624076897885788329159133087461886298510028120051181298402646279620485009878248033084308979788443308444632026067639712746195580673410228415238613350284634082050067536218937941512913165256634790067452248306469524236234061472138441617392030829892069689568129266291298402208463299368428111414191362705597339555886054762266716869252801275376705699311420963266769004268180194180339573955253046943104677461953745077717361545516690281240674775580977749734252969279456243076202377102430418077585676882344726770968194327658335294900980694005245787814208169630594830897271731608614189725150348744862356302870600183312465333079622915851738651254311658169249551592476638480243654110403006879297678364595845753995599084101497116138995377506138285687189140357221536518930265117080904481818870565986157591327781392983971752604352451756049181709622626279238989715229052085149251969105925596499639890717556519462718218480372080438236522270413025358742793438233481695639878554864381677274632013607460526363000506213611537263508619639563570746535170008629825910336206343085524389371982508739366912810550327432336709967350025847026403779511314183698329492273870707626919055261454904201766691659563408528079559017139378592828701236545028350672572417568092026173599880939298879986258055500748892463988702322448843392302340305815473597074150626038887297213361281849054479240205206731898607828783068416322577556340883154554171798856017511485794490127046052572981404011205100008610200709015468190936433491872469623018132283640377241650229309207372632542280044936747872835459296114366355085411770420319777511812535719405371279822237397917534488085524214117018586500103768477067637005382726116661906125587449890918744281437206488091905545306374840010224816062060637959366831373042603368743071899699807631861922549108693600020718392253909785879817350469208556105877749802250412971890212169816798151604029821265144489059757060975097573977862840239045644363227653211794442608574896523450676529574746865879270074881056231314890511088094806890610877775473540472009944035136286746580836058395870852968421734269677129465219127661019366914370862185632418415586688617035285773747714789971062589565824477967677916175167243904847896353600642666150733344288144248022268719078286285231392029199513618082564469753440909543283894719226091497536098553359819366490035668475086626963248208581998657841334890947025224876061975753620631569583230565958948289247227973077578161334975346057995282196196902897946236736446969116410727190529332655323592278167877642533448771816190799389160574805722571461845150615685146382624706426409890390352978273135387255780795226915550094382750978788487747586223753146063240331851727402124012585174662137990204022252640532810926645304206841008021569470606725502629222861418880241412173991799969765955061530199264074025593376849156388829947180534525997367975520396462711722552454753882649291611379499170339167392196966301578429097508077945015886590120059792487071046026056910868518325692310149644932959683962257282109471644138721865757692301638593846299972435025458421022810698823991371000811999024314745656627050272509797300451051156365888941123508316935755109993481535251534861273757129685060021717887515367603052886385080172159183374104202423165359784069455450190883544954028814405426428985264276689715697587531768447633503075172869018664246702987191108363284457283623214844642337194110926865504631271904310333389746240785873298615174451894128615761061381054214692163696316848950136420483821888760667174448087472190313236469948803113081341853951941275061922631001160334148079283482973048974279375970718785441882444843744732765908882344379817047871069207598292240695931124352632321381329550312241911760795986147437498270093219423127771847421018585456200472570168776322697483506081405296532645425218982232335269000017699378361099668129908681783242864976623548968527343387484909958235057445786693433206094281281682916325553086614902440044043128481347245154066537747136084438085976684685662417452364441933810341125578301847891084071796199478198543106031855097973047110804023655117963131329564711710583339444777794497590644970810282987298781084668864974244350521128647476687962721080927515139156193542391981239980678907584111779163410430952465853469813087790600973672358975252012400990651423530300767420224796631095498544912198360491173017013927844821285513823956814630589904172145842081999719236003644143250603792635595430217272332307065194031636021998227186821027780820215960725451018622786549750425826343311491641680042712400365942861748312242444411757266304440609190432459930557676650479230963804698988382304024008794157259966631926852525828380356977383851515756776789676296749337363902253308978386443516301140511206571736172151533096619214879738802768431128681367955187366294469861228711216497745372874740171993001230673139413551978689727886863741109981970062564103071768501960288988200150251332198191165275374432632598602089021586616497978923417193669683562737546583783465019251239613000355229212016158956308229288210857635757447403491366489850321974754943510029968481938468997988631755552372613078678129189410934422398059708482314179095082537363459267792742576251433329235116511579692580757702392506652538833269242417044283614504742352161415095887138156823728336225522223983802275513414997034546843070099331906947997214498449293247697125353443104576742395964710465255907357018811608615512763347489246927202656896298222836597239646958724326588367188453612402629178107506781514541293913191040623530913639200459737260134636156195397092508432348498691859739164559775115491962784738664697446452461340602339115258391841059973206223588186846015006448958493365163880301770292097926875886125220792636350150414581510621630093985671039623426350868621451373204385641910552968913085415535263920103331504071334966591342315964647695694994822082414086222587199203049550798724817783635884892449023449665764393460058441717865577120772651870021431926021170291857806456751483693432726661392412837729997292403868589108925611986689575952792834760001348407854344358744355297207786394166125239949603351475212495833110643023673650268733228810978638509750786156560304547038548832787064198281655931189310121996293388803340280284723832625311154834495199984058038189431050133868953931646140766132768791309416145617611531460465275521789494313227390122873884376476743034342965464167821551398243439133326584091926749086889677115784025399282421214953599686183283945658789404365280943537974732673208322474720067700042043111411361915369818371336996757538128967367074265125213911435625182639001230674419212765821840020743343427355375641759588586044449123837019138055731881119467102459762112277622777413546303990417260936035428674248022956632017637568265833639442827278949730263069165565463899655777264478380039292779738196634638894346123293105545884448002881135751695333063010296856416710403934459900799124222586317113959104819769196986308694728208947236960689466310475420960065244659999006789277829114512159352793105308560294650153170255117060416616149102281952710265194771288668235718122453383795059831700372022991041585944266540844374745208575653923353234886259064412684060900846926502937158236725865142540626703964044681810359801671172213497558515544579777814509942763062817454571058770596983402044018908276779804831583013799371387728676177690253865450689854498446651190381512549393635710601037562894034744063659284331672680811004644533675579028646870752179958473084366302431786623023623994697658627197387805731235937833429260994535115321704708664306420833504462086155582579253695617286289630628303110282982335180848726233428248553828227884200610195214989356763023842743476449298104934489452771599320147747092675197554052560621667002726311770955124911678351914772313039290101468275430218275580651060491077537481919185981279461281439896092354028050626819261246967113956692064206637225830267843705393147860975432297441317749184859333379417575316363351763713594619497825356945950197119370088735745345324893471615379172827615388235397527260270443858806756958056483271801684990454901360056571283993455236710262829037495651832906275003493126582387268255703796235951068270595010255008891962157983947044262999010445068473508963418940396293284646575978543821557852461706708404584746483994055538842482726750866452648868356310902189185753043486529352250051577977609560368488015822786029295530904429335968542752290297590164449736712001768455168606053262271978020128285769676969550075280499775857862789604631733497947292757017722342986434292979821743158000837958578559236684288707570562397581030611762345120515280081469972497931248308654426570125308171733364440936452375856990329294682566570388463314848812887834344326128453143604496007014101930704777414652010414418610960573283045930518772360558277581005977932939978743759715835320285224431054142733106137544514057929073110171098166488785769801791704969886471393754549524488464760444217229593004689383851883328426178534833002050832230677905045057104514315176176752104080697686798122184426597207479264809167718591536288946020703596691067509030766878227112663124986290987738214851757789109431708931810447606542567092161413270607920561996919864240028930630873278700395401520562777760853561497637746335176677827575012358460524465241615715778735935628700898938354032522911632935083188187698133988795766979500220841853904299818793707703310698856484708511835615472297645129793514820052006271650376180701819188083595541142497430289316969248599883551976580512882532760189853142369656171169855001946435553134300743338430690058971733621253416139729632109860652622097645567749260716299607666574187992586538859270277391838711432048032632711879528575209807982034463108227366164324594402231025489427793927174445688344019743328453199328618718058090382958742007361320645801730620611582273726359836680899014577612072000378099650353224946838163640169271313020822435575149022765715365303113282861323897391762124028251738901047680613218316398613919268757059110949802087900727302213100063050211541396686647349814784349721616922421077187663891481613130311059942074695563146373897913948024432758596572824251503597171339316978686824396258680100503534582105048064818776687600739751544544934237873274200299821435671036120339004602308816910527748534956513147348488355369972023826723933304223437859842403479544019325099624703061173644191599255244504916277355579433231654861071141143952904822753503796124826493976274926907591132410231551483133616767479227763939635737137053848346425181572857852691800614849055541685470176341528519871407897915630938192524387668137399326530147272398126686331674055125815917767615602804187417679520406337057241889842756260652560376187324016496564908259818553396733503868925659604470033968354271180361243249730314847850717116203792801347059037717713102628882015185698087410667836864170634891507627214304254548557730570940508578735533275671006723734656311510899317290751022047121373647690733127614739229697085454979029988091451509096196536543435435511980392751016807040034676932765189472588257802478324979191095908733675727747836997303218123956720828975041882079403586430558347545106716702619998074931437774249229853784574125016020464272837542619129850593945341943161216506506865821020808545611499337217241266911351621340943638883414122170716724780491041974588717881024528873011547287776744112222022259261003133599508934553381852146039044129917105571911625962833623403166247691042951265849491657821879549473344239008007138130141779454809901207249055400417717550993654222569402929613211049610311804673903470192028582066943902659888413516853758295162896714393356148687131563424298695103661704787943758680251797990403416682679549480531597724184436365599950582211879646614719508701940140024942033238345742806154422249950722648350032920205693506740502005476054829377948062130270679048765962959588423436252469897435485124293771400584740849620400994254925119911666336660943695924858297045650422396902023614420512106248477362038294243850867237469432088130855133471670505732231540991108014456568111336592787204665555553649062886130775013174656260786599883092816233198094066009509557383376614028322941393737755955140900687800886799502282494677939562786383436119877310863737724823095547694481265525773567985197490626273189543802999958862160141328532190201033154429325380692413469513528193489933259944943998528463158858124137160136613991435040295019001842168806818840422611942480327953129285073242166943246146383462581180511397456810805864362639706143577989101426469842251392248555672740023418169486080100904537657163286211223256775743565558400576999695443010600557693979131008271122070955602855404016469283765891341265467319746386144919335900012367437577708743601030795301673589523637070058547156902387507800731168138730461512867335772994195437661655297127543894396789920751505773939033131591811446518541379978824451126358416868108455025969477172939089377771697819583641556291456540887068278920480303348342617116170220308084991123673622711189434766722835993623788641924745319595718890814474272960583451460572588314929273731518261888302959829394708896929779263404482784470144031450821648113647019021425813737088574633036320438789234938725056167382170070854751116853928276272614761016654918387678919534266427773002035131599323496596159754620410454883068914687550897123329582022560400057814669628194479459595517464968853246437944393547420486173898987506028480938413692600512639499812811156315910944587237685232061674685585046200702323410876993681930740332297363895368724927964831455572382103375458517134427817529960460334663588406052428618855605072370160013579030151998124955979553926373185380356076793906492374209185110396360309928060061556367718635456555675317181850485867882014240441004849877016401049821582201303232277393114196619209131697826284440996673572457273684989596547317633598246988035992782774808019852331651364438621094405604099447236891802312839451174733370931554655390373430184755625362052677062236862690518601907708019166616630169629420353707135828603831534686450636495864624120892920302863516074737914000658573963158527120576998474395541091822651041608622445989791115973723559461441152705351215734057728552785627347243966014206107400330280893854351440505712855593182455162477984083060150631112695854550040939757404909023741063339682924917937238372325943457527000279726465702686890654975586065582342890228929736541790927226679557600884550453928772822839572905706491399931275851782161329354315888746843921382880092000760681189209243560011883309025720335120050327326284889472254343336435826914367374662163393823306974525296730614880561480983392756964093347349738659026270037726455534663674428446670021218200218068311779445414871321894477667657787712808656763138862248385416704814428255046570088426305855909945886937678243543416704950102911795879524533398890678849624531931605538755533802696482096659541197830169570879954894355295165770798335303911886985347961105817664086320531792432014766876027004205501502908429331932606374622998052048398182717712667792536332114035504715226069639526139217186946260992300333675900022929678596823689101839359039162302511834278729049687591857513177401474245231591883493322525376684720323980643921194467370932299941991622154765342087706537966939402607823337304130639828739170010294314662162214230485079651595460393136553689813622115802194470767621508153957341797465462958388905267501478921141442058823500599819314649900058050192350057705978794781612483279386469109022393918582355222993867153311071176592821957810485123165040680302166282421945944977212557456110590123131730817407149597959899984710490786997360799969854755981395785446958263460579060352755953340584354306284224656419535112819099097980654869387433965055213255396632388260525742643791056822755455282453296127793146281342269216462896294392446921651050561389900987075898728491426379778178728685659155633896760736132357246112555744260958310860776691610484565835721504199777996599309111434337004602654587944205712725133833761905612078833047203090420649560804096801687681714394485531266958060847795214627499543195543099631427122480613554720076293588399580672493738217082917549509885271191767458882332763461412872301192227860818399534100467952396870702375356675704198114657135275042224906490109891103369117326724665484790267945450717054134964266166668836893317366798080501998683580328237194656715684154745980384077401622484152721973322923130292510374560785430289911168036716335404927517374813483885311229542170468283867496890352834184112298475232991101744884148003031585028194181257173344580841779596527933840666194176498220525615221518145155481455187177910241903034218050895499599634333538379105962948620665596828686314637581824891577842238059922215676244440214581308787049883616650433767394725550951264176497483540186275131412955571387287714840803255130085905879162264621845023628159127844267064349205338630573012599682808780915911338668815292296144882063065468079468597229732733988300909059631470405588737356101433918218512300615542169127250408133502352568120069837901139701471518408779890790227506104154855931370458822269815412901912203932156257736589060851692695127113060556909220300455078632630999264990822682284001848697737761134453494923631596765476258996816342761783296460572670905140253290219753988747989251120120247672667832597515845207465773942396022523625671538646294199579617297469186452460320374661471070678151128156557313763535440719011027320443765455387554182502225299140656867082435097551728820575826192752934814268397419580184265407126156799591613792106797569294561565744041548462562287632933557720721883756102299789260029283027290899593355865019948344924607616986751258089289735672537319391618542438772443120507847135391147844499107493475353198537331027362498374766111288788761799913540402290249817681847761261865093836032839197640378818143408809293354713649609570110622665815004865755190585659544729856373496617204936611898131408322759506479055131155013997740173148787830178484781350952281261868369960646369604940614615381791374937068125930056619309892933815877465854845184809161274311987736441307551088390779233564603845365466433864692155828087702762159321721310027026660718727506404869381552407489100426537565181737817413625364321931170727576910703705964601815789807205579677412399090612780953610741568781755686255122572445821616186652354372663626882303452832707893557850830553759891000969374334653928460205544115843820175593758181501567483567903448846651768732580972656243804041146347045628992757186436034438882524586530566364657424175821924112591902121612928072891822870817938825881351131024390199579670300232683563468955759614644559130014641915086268673548757961707532934258139179718100667036587130006054240424038778704565810527859368585499765602976436849300807613541655828354188014773072388868619395644765478529925781979128582113159534117885332066194733079577934753465884480701099733915975832021354169645279497063184732652606016674394146257152037845098329434915218456052531489998371363883710803156640434858714054972603572855924861888388255333886098081641427450131080486730063203217044895083280816547679525328080385502141425180462656974863583298247455152168808173177954385137729718056010050339217542281642875346497201607728216823293819801558052852033174447664473182856096353426029811297669979993054974518957450773160783190081813712142275755870742297609613882127446552690541802975577576942915452787756601868509925838892906745608209248321360447441611533263821972328562398685192865259121560261156659462622129244810474981386594859822362940377224585617151700691419275718585858246746146369771971572962951274121018100171934555527184911742096387428096236566966782274234138019749607011322158324265564736135473971318999609590854952015542880898519063113906579560409749245818385031160744272972089098598918081703618739884935238959889863316242036961185062445281927179549018279850761661315701249896313887998800391264870955243562616074314819659338579913802374588195481798876111650211009032340566158491433811096304455684370958394875384689274412778415326056071632268580296738845536391651738665401384111591915922352368844929006348435048454314913464894422977784004012717066139412260430229338180987559425685802828167872784720255264495154430572180811766335424186185232578580326030400885700249317823610851732850608252130939627313038424382275454617970277303873259055229378369758974207835639050859901327747363405318720071472463235346395156734701635975413668774742620927984751683673310894936095478425734784884030176257411059035142269536641187037336991148135889255433788460426012851714685173845370813773558744537263141254360824114556889316387574104336549726609424268952875619313776194384656009837758820110287138165715061159708026768472172864950623469023874347366264188746687931656194714248980184281367093936686411991118384455495584287142170634678876524299528965680907493409790342790786339688526800780949680611293277477345192421780651760251482639748469251269438202084480575750050504086774970484724842884038401462026483372731813106741867785180198907588021668680878319534644172976721317493042759634795332869400962477882422169787268353273552445360781700267269012945697304586910562387851715137973537373150576132318371828959628351011112687833798919179119970963750415117603413625907486362047322159375029129793480640440135019070736978918187688665681290375208142357451019682270851906737466030683139988480234943987722861742384255813618864749010290738986761453206039738187176855664419554396959013712475319621449225412751077479183513706249756826433110410380273988757855731988629343945295241936398573616474041964055566010882031107845935527461983949035860623596951196046082121257511778890509201951424372817873069440899262430573483261574178170335714351530483155177976439870446486367416505323671409207341726440197210519564976405270725353574894570291063269445709171926384517951479977155642021477002620946633420673897982553811482156521703107006435358740392405843222711472926067644673437968216885853967844339196737364226381101570474085933767161813068605920886390865068470147796643537380502761005514545603246582826197449359303223695533960304247743845592938626200326005208276579594727682348568104504962759159364543902055582404849130682393236025103705700436355878133187439274094034071162308107657363458732704668995630609167795631191568701083600912330911876373235779951219267029726991692978807075985953329794336887712819518349137461030860643633990711301491957575862600612190578501317246054048630730948028734429520651282286976109098710507094403008743894411509902018973505264908988091241161111425813683424858815474469636662320691187600193088187401287997241441274664434327289869274027595518835204171636043874125224996711166213882423458154836605744380466159007084856306142262038376537579052977824024785072630894733172583312152336972954563289173493667875157580703178023253588966177500757320971991841035230281134720006845067695306419148296270210916892961901521538458270486223582558782964066632974868580768041272051867958380298615304361099927024699287019676299610285182132959108160926847469273073143200193262786233977224369948210810046721855817742069880741411619980000140835482539991555494503889007370206289326707453802426963513280314586454468319284830251646750692942080770129832892037622436949707819561375555721152445826415157750733078174954648054229147849389155151446381624737497498564825769474591502317196938092391973868558103700927434224326244991231793175195525224057512374242466758849505710971833274971072665914546500317894987899476881500944122947528867794609583213153075563608963849399878300773216747927978900841639675336112486922464227319815411433054778824910687854565512781671853593553253744672853927350775629245722485513631502464895743948047777341942350778120280391097762270083998694327694252787768284313633052581414815407872626823944990906343097535155541560122334939662601731491109168213710923858182040598852556607422389692674196351972110507623430259557179162235361094506921113324423739762688068139807208523171058237650648655747096573058819072176925492194594203968291661722638646415020372037986604366723562494630528436961267677688502697709976746724861013839542530012415451630749008865455272547921530581315020993339335715594574617781816227878450219340228579578809156788688865609122242703156228566226698856179251570372411430984980996480538092303289783520014436935732956162008845880347624622315396219482821198997262840045037770359528211518603835979400150185151796745954489386674377832245861294635620532718319798900736467140966348083351042992375060807862091603586820989896980612454039235936729178164458972850879287888151551989326551221539269978043995456030225768014040689360057414092200655204524748324563811731977874979620751018138992126434093589269756355465925234572516588989267505368579854816602995515755990740705468039331229711359726980402326026596358897582726402195331947986434404677009311589892979730306506933195001749403728163161728244725502799704782711051668421024159959846967941915004840099188688462561998922944782766954064455038931232181222341572947967696915603006912846815541171242629732077147162121848772590680355749001512262205769023829113361258407407737038345384583142728927244489667621254672790210145875589297322668206189796048249040458605927829486911760457994788618573988000611072356975646742252673174938366884756046359185303474217998518059749500353338859183296746153552535012835808058167525003188660430640027785746455282047477538682214828235174694075736344726150992000676598286246360267429284609901791592485673583574074248815547768652837730209496948217856948289168973057056182075619690772465312482971100759425087010592941108632243734394159344824759996168586794313565140468620916894760676934661538522365660376441594812739920527719647327255231004884076694463264179076312189255007404875527907837521545054216534113281548668096518320557994942671438560344882131312112217190656617929722847371960184772511460088159585914361465131643558566142850914209068006067738081349925447932408056311836763846665803904612116559866190674424475771468604215942976552246948866958466957708213003974543421461550000059122360046681167944335437740851620913372981906944258368500261143852401795738915724339762802622361501626247864800626649491525595538364751962878033261646390339222438578051214694001918554779018637751656610809646284430254525970750295956235376292364169658933727149928737118415616445384400872840615018946689057949026688742668432566195680634695066802735183277288453888549894197988887187472851085264983007495985988817246638089359316104889032053534853618186733174529448669754346123854265766887166423807059189027813204179980902237281539816523873484417705103817642614090726511374211953935519532040876722815687528041729934526026296055154783306627745578203641524252248894293459960558936274412694407183638823878383628782362581402862297881922955520802189020616570036343847444587750316401429942619627293667901427638085278799240522104628890222479428332883856441512897912002523357886640738445676546767147095297056912645690197761032017800664598848614579381738789960055472076694979209025133969950601487713655193469634257002510643553995159513885935570180177039258483570357978938273727935814085346943694409277736832225929746367758744869489586518417780188623914952351079965294055799235177538112018236863685068751646454974777479634905614978083322919959306061925963361567141842980482621264014017897122748200901891158064204985838357350647238700470295116164492636148556215941322798089596560083290187947177293498636642775062287493149010644008232616763216512742490407280172424822086341154433310238594462598432716461303801493122490651143682947544407440505646194993115339721200096610981475978472980861375268171985270513039451426594880614525573864370341513105290845042617772019016418449525141184093497265992099108824586130157766596616990432721249098787278761289374515295744196957673709768779447846835145244505778050019759021533110115983604957709631866207157562473729684510984808913259035686337251299047688229382737159552047365323667259554746048680471769039683604376483786068157604597702817092662749197194779431386050515773144159274656399641744083161562576181942233374440800238104843263578252403596703416838096657920214330243282906789726955255666244675163311453104171108969573081682829507646260345265627094156504895196890406558228503022354333511019558152061221815850287999740715407849237271575774478002037367420278521245644851317009093931412584100411884850219645377018937466124995276796687200672653736788855923475815575433996722094226289640850204824274173961961365961145518052479563803644120219212025865407031467238138684494427675548823295599068032299659893048724267464545056909048741957632114020156952731148594605501501929407853006714942376740272690320166964090408107714491528167110100244047780952315068891210496808993411626704776601076884413971254514975146122614997388673907623392834854598588340002218866970174874737479004588514924095822377341949999827376661703818858643387066223875317112891991854544700577875488692040190320129623611689769166255211935585529744006191446019554985415396027214488977455091226387744062518469901223429432188965266975951766782609191468229454331018288670251744539828851912883424163630587627501864796537778420572039717341175102590960678792636374891532718062268406244520429146745210683354442956940155119346409588904839466917696046484178833476674640688050350128043357767781890455184532844457316779713864629019596285892249222391944022091850221622625458646336267819266099892667948417742317359800800591185872699176748751967490595684296580237425573235998888635647127426663919078587554937160448366178490184387821800206514778807721760810962181520885742503651973880674593120097533841594902845986447877548314984177999408405997362552226327579967391733849964281276477318345498989929673123275193097793326095002033287780011046709028223243064779476452798923969647474680684817704757468790554151387765915345010523789701066199906299481427078391876306907743546840933450753784516707487615563185295449471222079952659730826421981812396697687615227893127459053019844461354328408570292015140401563177594895306942191793401311489683938719845015815709422803253587959632925650747322151085694640856533512623878483251180583288515682811870527134252156071230412563594434899071120300814555449379745371339453762319540245068949256111985511090828981714097089659437880126480398982004154043241447846545027645536911056075649130436587087687363560497039011495774082513643835073984210310166359138725991900503729046179884884678914859431711951940227083428451318095353623943661878469770708751891460318574539367164828973362599185848284785803933123369076493799854944725985546329477913669950757468347116053087136275130346076045946398541156876283693820342924061108103709733050213817013777875886886935675089969062056595379645293663520467214368694054687367155880680194451051820033879321127498310656639526289111447079918074818808164580024032746538694899561377799066164571028764705583700862355645623633483505318668003293266681904207721866348491494833896551694406634931521636447975101546061846321228216351013402816849379542938984360227569293320303669323077180097500096323357193161748759546801687037629025987984444914309190905876281024404082492804878996269306438350716810088836643024692259544647384217216772794226882308694616222272328194320667706388999831300326596358494130752854751576459763535352465329506952149656636272505849296943695690597224859218555604522225849285552904152826862240380398084698776561627466189897730310540617878049563095952633237356490000940544429738037673906026306501717968803464960516555864961981074515930319863385799699664284401508178752762217931321258905856856548485542475224035547848156105790821580192105557271118449137890586462997977367238891261240777354605153033993616812148029946493590374617327593027528343233356678020752045406915309003321819607915395613725898400118788098458164547231342503955277786139030815143896515094263258385001832180975240125372696358371249216242496894108296869277863957081807524138491249346227602015348334520264255594857567602611006067835246367568158481094320498695268340528395847865276993442554159119523591452041908163549016508767738297160815192230272892288506040272512413842176635360373637395419965310753093673981087988733290989726310640098519452293734633867256997829819079104938052976786623908613570267020896540845641748906086524029363560724603217152775302067340122107087593532131149711633865926883235995335463851572756983062509642839695269738097617736134098147465428725763789458174906867412513097939272518225477087994976725524428187066283130608824643288179257080834842798835735313755486761065241971762026774949121704057737758295131303606825568837052767597774114714857910682794567509439705989440295311077737443047574030197404211481841978154380955463857993565873132888689516401218134282714895506630623365772714174483029143112821009637500788884414706521449268957370437951657738488435518092692163905403306286774366014422026891094213495299684650159586793177167561277829958751227683426388212592179266894608589093461269517053326685802116754942179333925100365763870934456922867138764419309929852618098292123360011444734893147246022471139257539032034032548946732278786483054047699522384334490737641794913392696434188320014049238731858286989611328004225442032919168560196534403884517025830155120212130228156502094432993490671329705450831746538530748020281792302695341999322333618890790094169327211695370796613538721548713154947883032711222460853970205001233481129418796868725785019815536809444061527935731720802260353593908602973766079713993354599635742087548853780512923568310078766052963540591206348608039267099781493602506338045733360138812120419162194764924933196360390550105006374701652122434262527987927932474396005973974477338659133337347956322977122446184486794995661817404350444479930161915230641421128567262711628939213036049190915307242724376000130419969989813900724427561188967237849032999208178026693288923403951725439536860156164006149708488356379027409862536207624647732726074467957124943282636169645164244799434458103624345174731511815134412793935207166699958482047972520405130594692985807068648866579586814279593424775893143218348360388903731006493768343895543836024772622199600940583390367187790016863507699178449590903230499260955202203303855994753346174507075947996088278794730387786850280551518885158477879647978852882031889609136514523689794771237826606222939214188161727549671044844698525362774637924734068991882361547650041978171015047601413733644187105570253429518151945764933048095249330518968248685457087713441541782506621050141383360121710388792444133743783945166807566416448456991694621926563943879042265839941184133472324329774321649283353665248111801008881858962066561735313486703085479726581560822242722734157887025355754805782742960819562468971808158536903938780258940248514617888962391479639352693102191028871359267028314441410318701134205074656924266813916292726492945981107240495232628513687953447056849389904178392177224727856079411036592939245482771169402596449894596626971459247410194837077674021665488605024786290754834636201797697435865989233129239116190508668775721378784473619398617039604167595001312840897617187909890582730202639541920080329749764464711580481649667364920692477562597977944308604652015387591426174162400726375935496488928746809768135898367574595141515968458634770423494574451191033230838135680067790697535443834149951134932965066383395276051532711862379783959852347145479194903613823837625297016423350172614049152125751318018047499702617164697009053240592489881406667772037650879890045033477449567415919074768052624284684637694165681350161968370292819992991606792023709401873553503106160656794119318338414097935914296985910165591852822852324818368386212677735735771306780232628680603163758854337658809651089117301676333630007098211106498004846105383776482155449992791675863749101090202092109568115251812285796879880763653254852136945199673568928482785815123756828482541663552305744426912891695201513413394327695572375549820357839813054081096083132814671292793384952525597727820439251412100317456771891722195520186735637741036304557487526525683014696614323146222938089992107347829530987961576847635287568710935722378372865416113101762573050508360850693324760625985524973709174613989202349859711466195192622120766273405216497775199707269288510759367083548073225465957193975858115049282160371526475162693563634112258697460048153335625933969512240167494519990882521552062522637751393706732040045719613212736935723606944500149219304087610125251636200774217336943696263688185941535558223532178802620277025032329130756047020253241308166373338926846579162628259560158058186891760244294160517609721565342755514197034157237733003748793439943916014500893988769840872690372149951579704831409515148711463427969863718291337452419113564278285165469358421876520767693370769863242467024519790313375393750743490307937802767518497189104647198528127825546394949911874830667698765258306172102354843442770766958864336407317550213955539290217987344040872661789705295438928316834185370996593734591883490731409590822940663420602075749502940094994906460832360377526147833511711401887213369189528200134435630829153063600881779600113866671420253179186180060499236797159072267691458342238853696400571229105724334731228754269205567635017443524558626724679022271769739755798318816742576486030827819120746388740525117049725989209896970608371107510806767878521839759158241954558809076452223873733142342200489943582572968830742192280845957271386604796477296050388566566247353855804244604011522488391824716930655424744825373134961327915133943395584605245736020326184422340664048349879310863707763454528647040326886784900088420406904111400573859924521049811161333821822142771219060815917664314960191076299840377227017672766845855507307249282018517471055791952818009589374828022082056911032316210958668944914469695715725666046193068975991704283004032117651222038548789842853122346929197832730794554544117298235790709399883074837125765096592412266591990396986413179381243610212889670129287032797675787575383405190432642346317375861636837172028076364574809343158800441132829167186028414566616922810649695588709501606118467801199656703008290208918084839779437100088813892710036863919748079393811126855408366275519196088619188363911353351430968210219045318618927640744283834431759371074564373227047799379947319066574649397859731968293778981707666442858920711563472864957779114940719181576403954290708766254245060090814121086417241770486325026973444394376735189517827565355312490096528381248600314499589830474544541958504855614453829416507993420162096880805350737420946901317907879325414748312945515938068983275122061265680373664880284320991862051423498122337075233153002695234152010728720757687706994222751482481836163566534528955452521581465330675848520866289484113860812279749647813017835823375244241631492418419432443067769860100331434287580133085994020602390529607015476840174122534476348449273597471992263038193643930243141302266588628758619923647112524507087750206608416789474735017449509111074591156634823562348884650774976031185423138909386287646963561900504427739941954254598986337535431302018382905120118250050315730687517289973654352489870850645849717275123702119475500443304399706518718419140971336281629779413395766300863916811915315864461154106296962001933913950634112734226259701810462216261769713667436975268653682138358670804866131544019069946905757757351182647898565065801805193928902751452100986898204445728344275488865494145846762472614487947772502772918650899024013862563600002498935961899931151420234254383990169822228969838740854212440573854796867022514103488831003863426014862117638051401941641746570585483324082357354221465639032122309689752691784428818085892855124750036149413597978562610176793312145423734302791086366646106632997770535943366762233856340407311685149547763067461082948961914207539745505425431017400390656888197882819345507068527361432879707671243231028045570128908479330642813765319248808784649907325789905521645877247099300622724504737395188781522058587158279342009516740168328755870236939433711512497160887711797616221206957297022207764593711469106058465660988854026907727127597643644677569182389040831273354584116765792347184710223663219183459456447348927243965206700545394175851623107375026506879060814365510067388745797097561784955540766832422259358565229358962017008764525208256884821264976027325738829776850630757412836705515578642445674189497816213669968058429504543012809572031159514038476210628010885161995888582362388988672489838979801516711602956658531501299194577636196776886674361281330276634217685749645701529116922471873870430288971266065840465161882615006900425914047895586967221486300946561589331172780032723630180711972397888099764799061272941433807563409114052075420382460458813305918819668822042106946238393433336173050740696916707762432270424072379487811777883334572687296931128776576532172583999067153366810195226360646340265064270946874125647814615135663984307964288390427737655593264311377883648176921335488934688559531498391431618113399711909799130432487351929318904321143280729238528022281960163965102993672860467585060827922772198927184547808029364943911297642834458485287423476242307714412805646228054431891946581010654439874588232116067141606788371965061370665162268974472323296030262483985059024380417755151593882281698997000214511949840775661270244692219058879463461725396924136164748012175406906046451084291254413443443426979989655333387316643461284380319159759455214668129998986111532104958841738801307430260214197936062705801429948907915706445025306682745063534449718398520878584685593063461838230749134116617609538023305268555280390308909315309996582007608501400545993474721154924654965773175746377029520960218955192602790001668429725662877944154934575287629514379187860682166011824865581620687990787218575439603881049389757224527809241079802985038697686533659295147385492998761186085602738887516172294095631196494509045367562091765965389549536138191575314784026638327643258446484493721382505220717883673360847806577774525573950006966548753374333742268213624926306999423748667027948798112185395645033953234244738273072604062997062157867920598740264462457183044660070085371621175753279718012444631637933264876133992116131309431453297170869155488290114743206460086208932148325789297847805049876028514471503345686661242924071706935302750028994780585140830816636605652047917182504559428594707238835620718683327742037656912345421820833643200877273641600318091649886335422435585742551782814638384977528381160817371963577630830163877682327208840700181348113595063033244790911088215799802353431313174302814271116319631272342078665546565231755581990833742157729325337156077569022039337128731275757688831798016110838763795078221589811673831846414789214711282059775861200866550911423625420618914389783690251347965318085367236941945861796467331697885213476578928786921366972217912915403337644276511793048287872715017426415615227926591764790145564747417451514346031815852673012360428841755257405421185377647354278692377289889912810806322165402622333936157658100541214548877966518636902010572998068389246750122784066983661809039243221272469355790215716187660881218167204397650091650987487132694309588875154439733475258631493174202252586455726459492301469876852111722155815013729745546972234111534786462627105113180877160490316361782819084259374756377855649081952481121487397019307180133027442164765618474002404691556597054810231348301268603605150646975370452601048980545287945982197984337219972371772608861952246396282863409885561386218010420765777601963405435059724674592337330938719214969119752888709584299913898161322153397736826365088425107684658906938349035915497330976198228414954228102964876382986788750101666636062241228779664758563221044136886963167239969288578078369938141068570765143217345653717713604635172189502261311456304121688611038133256540732361877601265669338091817334714412716219422085388109925784880268535292623003073587331001230306558489978429757650118635048497069023970562367455741774819714022682247933432220979101019882749293265821223146305665015724502524330952242673422720653838841179341845725942373054384727944695687485054588376524691466401855963941202853718768171105137764752389031035177013790120492484992025064869683008321670593913506633582086132463962290232073289451654011197686547080991297413993579215452621882267996574628172749592098832870337253992049342401951038979674051133479476976468676127102967622155078769112793896805228080745672203354994342547826169584281855770011273382477537378865323818397603314032001781957873954187942863870847419103617828346405402029862429544706848875458554948972708265433409713683659527086458116576270697817486330756155162290950904249647188289370969692546025433969203864233148033558326828836556614976652552986925330880027591449088936766729736705852050666080812720051180812686640922211056183471579294733204691539481648669340746463261666155218351258935396257891135050093547570303201941666048947449264488286482621393014197652976567146271450735007661253888288850474685097322460372199289773566704883675138686904398055607452667577446040083871986400116640389071618507356086795274669229184269960437996304035999377321473030596797172395921808200989914704589076376979295272527319282155574951222694810016446608083979938428706600008697498131906985056614182544179106602242320633685764456595140255565909099095694719090756130066038220587327808246852896632803061391800288943781863431209737513258037233717772107368258428911785796052256725520621321348313857632022595580735820620928255870752655499878132353050582470605728763046593449880180095812106083202642779662917502099322874032833987803513978496868165236334850159295943786995606379606795558245367633079285400438501261059174439723957538009661598338602517545446790460613807368531277851882588213057465119443086560185420429752728664313686688119647618809226278258541253206302238651665302298363747404939986231515894848910084718713499838180247635399598606212619080679705359776823355547007403545165077226912825785271375150513995366258755021697144498911602006907846861239915415240800795352752511528348106863215013442858856646753643586989797778181282539665846033828088953485099992664163308315691411404743673929793735447789187271870330069160998513853220358349813523872960979980142786811510850364676280110735834465048504912918493170838657441501954818225448874670732379274646759113837415227444042944419329286086761688244301232357021478664062035269948842128255609889076575590112377027151800727153458143658409709825535885579599525404526538669217100170052441925066518404904586938570840768822807223987429217273168049193040727515832280442549426257878635444158247308614330101272601013519271554695545636966376354062583855836427319437213853843833114936190144849447287835811110366961329687339276392523679999817188256747683489065856410865464835560653699630192223735110280041836483833376163591861791484794422788076742375135853641422398601395105559059635914951329034497308329562742585565827345875179503845694624466044298056653428647128201724665925504044125644237313406194268799107470109360471115322615592875771503374642086255757375304483919303402124687001254816756376460061747489768238049861337979678475520589739067044924862313043206849375582974812797532065270209042803795696209024534055338499328976267019431060964821685218545275715052018402606618062868473601350097534149843626316747936262211345215962765179504650965617155331285789304175935938065964748780282317151927556942072877053017082731061793703618423492255222609116005008751433616280605912217156647100049234980365912616922801223955064883525100683313433143685371758271405098120991106815407172193861153072470998343348463328621975807908856904744470579443251548080936178078589337353764038153776180513458264675407213005429998645432363710997092209831980589372584095834352546880154268248765063541289066491001802275994853533831550640848220390810966178828902418468919462377637346018723283991158098519970175704661010887797722498984367896727362708572759711725116049661369421838010366119298380338938576712879609272182493528581938540418867625146818028340074143629300802705692427624588039527977973232398415698909843268644903896731673659084011191617661830597756359265387572837167912525145735059574379227837672052572239251645172049893699880316541637121075651983369935707318063566707421004420433446716869132641072745383225910377380976647295960424332289718402155997326865011170082032662827618475364123862118167207987778047602720182538531483501761760595257653561002108260289678414647644701983557694583824437093515179827380485738627992068527759021980831449565139757829229131688697588796291567493701025951017536677896676750265674993926992871130801740595422370420272405990574340666380044954132481849418297833249165267396537456735638843576653248220058361057755936036787826529341849966817355220709271945203767651787953609218085295526805395887906843656368376475639668219663133608729079578923676323146112826852205761615606269199762270188999941925171223099596805748127957927458544730931212391176975753358885701658489217950592511414719297987162689399267351606038854097759676780129025567880903871521262366301460362184731702687198903481680338044831234012495639344996754577799710296552564922674330694078435532299392641076648206414035746286408188998729414825133475853004937584177118569283530849046387048069827618510825204750446300249332821210595319482323680803542822034600162158596322735506739800302840431427745609453214013180326738145312452994684589640407733692799280210336791915095128992989044753108510799139287710372240105794393538799007075586124239947795121371760741570290535404089644306366534648657098372290194805892011713831207561421468044345651624612883820923190334993737520521034903275371615144759976144121465190570087665989699327748104859248752542705019521886919727560725920131975895297074686609117666186966503908653075057748381780669893981514530395891356642488547583211049639062998901125579016228575952200273151366781519082394599002607035361116295031635839595910428595759862495739011425636274581810005339463615554303770753892688109508765808571222942707012937592465626817954335164505798076340345644008985796955070001601450982138206172529386216924690874770637355376834068410961737219958233515272757216632406647439123787249208796613122641519893493737970004864906063250557264808412404546908660189124323905833336651629670965115440255561659647063132672274071654577831636767185152695374723484637829520367304048744680710797820449891184655106845482764430420815235618268426045824618083866026293296795416708328131956021743870376095373066043278630103237302157466357503480594333704703632046020557826549958706787362709216805524794958102535550239304889960060567766945358655837326201942398266950426527725120396754349971298441294578114264158532075832219969049611714187322749186340874571452622956790608200631451286835176835225768236998342758916983164502556341370715605833400582841744268731057173681337112024268132094841949058788882355712019832880870557004021740239532676190934714498011472746501256317109091952960122509819937476041200610747067987586584608000390336684488574721750756373402484682007889912846842357106775728225697222742259166941656279840398577527056102782244006651910877500552879727526954769456101727250674499096205644379355418939170027566775767906197590713465816467794993717362509494355443567644605148392142002394178302797643079310216123112195952500454242060291297293974086947552650517411631212506831244656535188323697812781637899160251391751928934287087235354280683413744821743830018555270804252419780052808048246249611448192899513698063208035729380663591138190860615079697134464857188385820756925251114614943997034478306375459925607290570499874028648035249464954379741400807472427193705540552289026837768340514684943340090918045219246662176469497412703187506465696124776536652534355572378889181667638945272490262340360800473818585628037809847704170956295201260783954484100593957706733786525878146969848255482500961093524275012349149067646650479086047387831340661476521241315141449429628898445840401898593074938337605756544654381059267140627289925760982558165663199143108633055058084997585284049974014077075532544248281707143474315099631529024422219322254251581854234629770814151297401149634153000830771793223279683402582915059234939618399750620855362220011694361456045359387131469135130349873360360898501306226941977421403785455402248284251329377740808012612680936299140616835678177679052693116724699629254831169177724183752936869514205727653133251999402299675787517408443147690664381073660517540139935927315019983097430205344464732133442418148915162301352197429309866890050676949321333937202984640616813092364906854742060109696389363534187055073395085267661861194193284630430440252245092518514478643613058999402987389637602941394772208680767436581820015105838740007309110836860726241642882908729413989238918388299203742026632564740937043908676296780609979801488016460534011326816532722690562393006569414573149552283764116677449024133020465984190199008794247477558890442583558893951433155691919157379214457231505609583079738565252282639236034085866334677618835105623224006112209358829158192552438808013167616236246860990143375429090381584306385939776008935342231891170394914937363148560530700601206685541807471285097618066327638645127364810532403033671373805097269527559931279290578682657335641251152790592998884935442439884477172958654164991189393707011129740590259138903404900893813050799149538397393970522306665683837951234840008967935902021491892661520121140092658005828180185403546035190524184597239912549017787633461234191883535786340315357769524668035657696370953729091049899683773603791880005171727808355315475814226124280352615274186746801291492345728727920664691876605739769668724834802231739833969780495030163019598493545245261836837435957868215928457134605178688726689146790555993323460429511842924410055923113387103579416707176946633409949482440879332201339280987584000402248417599430202590857058314453000579317856822236208849089086897877954583294194194304305832513058577017909311927426398160203279520110742349756382662948110987940191689521707166638527824272976441530243050010293942948961976149779946782527291531840680981552473656600537693428809726307790575582365620626018372986692410521168776160775861553112302059842586094331154180860986631040387096908392389526263874484035420551834771778502423503758642532083503778767770917879236511553839930131779893122612341440485992579342183851826031917320946190921928599352468420726528873995158089568646489175157244710603217854520510329598309863461846862255604476605623046934704514255845643450722289093052659119486348112940233302931816966488570680121418596449946526647075360939376103225054753394244950681514643960214550001731836422668344776323926754099176635822905298008119399370584963188280005529065737200310300915981975328683064313013275017004599458569558831495362261104827689170974949895209777258801123271399861443572037815477526895848667075345730974277588618509708959118189201456826031456366179856922740094851647407998606539088619310326515141401685645661172699710902312915101899925580139686767781883456486960332298640027663996693050489479834330009361361265799372244908167202719657201814554849081788964654390722301514933636724449367395042604772420957263765581068424034211699042763472564941241021346100077562943251099644427294187360810933059097655920027841423954218371394447676962116651727110908082941579023288514399837418566074848713498295243763778363472575686723084352937238597960053408162361685246344301324940134733153823387799257228207106179440057729091865245212547572361691489982312702217719562793590934696413385719339783447531584993212633765603402522094315944387359766772533751370721779128110117896451423866674951674776656431451027045972674626812668788126327918729426651700087573807551057558523282969337919243471450234160448866174023800937030132904609513919226424870470506821644654422701517813464631438018613780240836907964741773971905407844485361618814149460019194551171727116722925076874205288431440562931033992204014767359071136585881464583518983052662084438195373322119106772933638815470529488507565743670185214087157256320708668784705639630515428298522249537791068529248392212711009954384209618267792473217344428080284335523560306840386902003573446819983639606062559036312184221324417278845590990404162938464745895369594850309010722633298389705378851353141010960110820600115724612628432379737907295536383288711729786559650271113570500234666259865520109632596034775061990123993578399850685646314755586425661143845097903659718418599425242259460395395385248128964120807741238615173287289075834033243788498029405160847474640227079436752738398718968650569495774506820610533020982441694279105069380484573408990852153569915444440583457607466373332046634799256407547036395855721000143607343782204408497254501643312089654236694142424601877763290972251800213167158180833510372283074879539230253668567869161107193990194190032515047292760227087858248100831547176170954158175780752184383800577107976948510050302968054526619720096077983009332247711393106680583973359853400892562193545627016447374549431827831024747340142962886728008278377271578746639765756364192482710497466088160395594659727534137846605959792109999863128069748760666225090895523023170375511432005387373206848328609574905575900510423380038604044242217135866352489178329468839179231383034334137786246634566144043879428377639918849520183073381293252300713028848025416720923470883998096937813558154336288204306929078653203203842696335281526440335303687382934049286649423882810919871548286507873387530160414233897963987950245588514960816627195975730349884885277647888056927074705227156631479996051952654147010659631573160836484268100676242700182637419216761430242962782903992264299268381104937143634242468831155621931661451796635804097600416409093049845812170300100732417908410343313816629036640941594401338590018668177166648335354875409693014645576540133722538144361079774202228541385114147939198842209291092169220911639066098992015420851432209374212583983837221891072116491612432488930505003171790956257017425046145307827548349683697917162547907377049519926525536357746500140869485483184143114867448971322838428041592160112203409257008745495791351557723608011656956358512286363758499000767435411474768959892795005063730197192896681813562068435719181710309962996949161814512312139441318774158968440548976953689935339984480935807090719952078819254093846675254454765230629963990210616176621124936187937098593054866948136295171181489975092131761280373708386017299088722166818958880348838225228913644101828862146188499331338767838647165999981866789021667709518211961048747227495672242130437162289228431957711832408391311639878494572217909334079034491951954508077023993413483195879562464675726603759303018821603075858389577435977207988552527172522309455857379442296561842116734382665802322162155224198286280161020321610393373426198113712990572732277543122078230933914832889778088536906127015386077786176890837878610403996219071865747115309856856427321938333111859814735238448126074547159003293041700115270570699359763642274738174241641365355433741802997232299210945349696019885523212210011128833809660780967986513076305753537605010526046063797626112794754179677979910208513606062114231361678350877103126403992098794133933351262887429817632812194777714320076948440275397765084964887251060548467433042335610654178366270006164079372087669310231458754824548521150333412677263291036053850577654552374336291987947497146427988742467556903454858599067380136803732822136969620731988359264131803422801410793213701978561352810235674096477293759220203432027458257765849668957812335198637551605432101540798349832597459791840238242092300624367913378341897907582875702398804590968728041831612457519059849135362586345087375046799984260824900667686386189578532350783752578632123435514919916673269220930590454005480861918980925103851608057459461437089709912035954384525207059836523849373849695866897803700048706886016372462129250798580169308233482644738096248874997891973818537076388508205644549209751218856360151841700902214002184310285960771450203462475985192201094857003795236537254210568974643812872419792289899325355513540985676522064115894064254896974387580772169967568329057448440211289909373644907467377358824477104341396716474468378042161166066071664610117553902745792165023815072045098427959862301539576051597660146847636846870769108477496081816406297255374673710640787952491425252408432169187221655421617580425163472504401199337447588374423256049741671160195543542153450181588344870069656767089048491295051428956437327659586525379111725959533403150808084405183995732968395177049750751331423074587521513195980563395759459274806715214515586383303720560260945485183628478284537375408323379367264019448220834906991052089866144915721805124053193396881769633840395161067535166034558766802268094936027276376632005574912953157808727073837104192317283833007739437768347368765217536330882226560921195623413860742955207812219147383569326221710609907498884999252754894862966274449488862797564189518739379847844928775275954958865979215477966506916388290272074569660845033075898277264791494148104719573380943015487324858324908996922045896126459433098944704811515894064091567162498058116948892173294072173380865256282865677656204529209867677726135029598526544380443076704376217733024128542933887790172310214261891696254278813769100482627270275592005712385232775212820997985974057659988735219086492195866677667726732052471347094624542988902262843193455668524023387046846974076914154111678219338815109679126522269727677764997109538471286925280890630052893077216470469385684785447062524536443087895626059611281179817809352747909123298826957203897396950890191298410798888944534481784537737226875647833084226667804175168506470848257105447795961161137614409557552463190600311891404875454453126121465122770858003073046398932141076025684288941338836604524373013574037759749752279963135389773757844705457640428971106092114073043217738566503089825895088040365296926918461896247694055776975439392905849852740139321276922598765746897540662607960291849101094331393630456939145426955052658505457583460251881479063438723756420971781704354460456551876351415325670524204357088702061394276584192398157897936168031888931503237668971908984656020757623652747684642618674101407979169523193374284782322191593757391084706394799356687065519246106719575124556468548936178011090604136451278132116979608434335193706756199925525700467796027470817057478065448000691835637544627123581929494343373944815518362693502876745496540742253439355643808210341641401270502146504728580482506232090478814100797493594301678447333304602168212092375296450033747681052110739142366622775430577392139024404999450640589246858643976399761395389104877929711971571138072087616626061742757208572157354813929879039510201074463482876107732183831030275030433942763008563865855443387049044219240581906279798443147910476229621416152404846151763499016054188088322308704262671679953203840225722413461155578077628975215832446056050074355184863563969804891827172786267950118922880684751567037914199839762197831729962290019352612333710030622389011063987082662612779049729211704004517758674363054846024122166186912068959752442132038721924719659288178316638526824068888923592444786314247745930691050227646471412949598662161048396490915017716884084379072306046586724139409630052671388005985417574114064120633183408762297284054087188008782621265560157724931131056864993977429325429321777980831001326221468169277635885689031438787456024459303793281355604191974669813956558465709530072105514764052901159868161265408021490828563843657169675069329452428276247906708187550524654496517003991915155873138536777118922221397516150987371577616239049598252109021823443817645007586345043479840828335399648094650013040224673622662933460704006433620387278564727728613371468853127757118456968369389432476413916857810258499991426601742005732997272569243965271852358280046753401205843668868873796155717913942610793496252092300027829244952826831821916129531821934858861197093487321999884573736292438073182516429454407102127307785805245363904691613590638122506154209055154738510189627931464521299704059896116225758366012321841483287063000340287887970715005076466433021696846406754230593623634700254175219682929940138589562227743706432999340088058432004503148359265454671528958798947569434947659156714944955417628040037428270602945729479378697380334527451223496827214302944505076068925818429312984173701413805401636878316515033572092347127072165101086216230958626242937635928497634726484278731561173636824543597246914719700417603486790032158165721495054388832529581637952833146555126532930301771018860703281436966604409852765575695581268847566885103013100596540878866367009943318054120081179565835426256611813685189357217343840919109274820748239842612723636442474806535852232137691357768629591139303996434054823896833886331067752268217186746488731655989674452508375397794811378096303977689619988466010538483943220650767314578806321197660321990112408618874620605363454166538542702865635449256101423323132018409671066908664571046898580730954431859496907436951605529124712359774360792311419994156898021456494233249869567852959902812959071346315854338334192278743273149237241978623591754362844180954435980827606903446084642932020187757603662794847860324634757249113307568194158910384056446946988006108812654834449111416064441662813044995847094707971807778620997210065391457523083067569644642247251207643642694697339515728976306227909918034743103251651375524771380237541693758922559577434692458161171831428702578962906639253163267606436872322357726549333148125214814855274238823638859374187483703302220119309240260491600061453567885014296503239766379070746328667215996972403174206161598037500863980291940745650871461122727180380729862779535521605321465524769711301403657356313771308621543781184756172566593988773434067546314803745425383617176695840068422490267251768083588628440096266925595920086588388815377623458986736512778729468106173695765106494757066261654954078492124722424879580915878306224838877972051493237901931652118130890927482178685466479857972172710751050835516740036449148899471540188677858217094482017428683657790047406282607045597743387056552043564039319018451918665653230448601068327666165355063915463700766290194439563416196713639851035217329685221204063866594637901543949428037494998321930115125028511220173962897330998323308649428304230670297182259302017792860653564624555410351549125665250518189987144641988829810102640727312149944935130951397099189826381315871874739875300814446309659057700424167401732582692055920200183407735171148314782854341003732088891714999008441066189522100906758605303031751600381191775083529773616007985941318668974747235409198042068723807440726884179251923456732159263872133174399115702088385784513562158294912388165484664452207494456326588710750933961109764684166170773497234897426520117204998216433409344577915624594919321078091503209308588570066181106957756324119245135482555434090882909473421802559825417009457294570373990001136321825240325558280653873168327406607031387683366556760031412711933925116174881720165854221684927684265315287154006500586306434502420076511530195021601923684546763788480989830214702060351824163347035621229845949792442015014868170767996712086786481629747503552387237236013256054230633301017296060052928574360371308200889305643909365096173015979622059359932477801876180899979452710109420536340111363955048163353414643556724394789955934972285410842255387188008726583231197833604203648253850473754609632446467111426394520395662273231262199997063855121075233360749775174479387182130382128022736182978371747446519885439823094737598803075587013155883535940704384037722879413879133671376752460489160779523383473004764893214202010069886582909742274245721615189268451841969644350155508266813388907129125930814550913963117207636063343236930147793958762199134732033568959635126345339076841963574953964864704863353954782396475908918080972052405770224314008672253851411591903933974727663060715022811259068672813034729252973849294355243031917496286829957238690482648325807559078254586432327295177731987175384212019289017777328128138175833925123899773086657345444868345860612934801887060450467581170241621743187330358969898468761197171749184754477557691130240757786199541184180842181612524440220427763629329256774799162792246081170081402465205695535775873174444899519035375386363139576277767058874823144377978514021081786631973427054612363277256021519604258680995812694605054953394166203980459877314105736311390370640275324098014314947431188820360997935970775217337421506805781218256527999725991954351470772826987837978324651077549093646296590225038257105854727126326732292358958401411535086064585532609505485106223044120785948247824609542065427412126488850385542130155303757726570349740318507019796652691471029310892271596774779936634332416623492975322537131011852103559379617619853306648773953696088191441235268705402845527334757632281231824301936370071472339421347353265475411268666015468266859965975800643925775010261646052856564377389094121972229731127497465239064056929555091383508772798297191989572028778400720627503490370622360023408182564188226139837431287217430283147079280407695402372933504325266430284456993083398422075486127789670253546324497973139910759902721596454146906270709355279321784557276642266252286993682100844847113231817677767677278659415671931423425256145606918362569068774197330703729859063832858972689713208073812487352192272703700396453682419959493716287170064185020290874778555728784607983921750706231636162899699203292478382755794677500449938191101267100418953093776213298652472388203069028349445173165745189853147255987305123366457982298744399682454313664070990115311880242872433867943194388305712213774907451205647078722918190585465569734663292950914911952864074676357381194524424603412405560514969906547870966033848216531924648525684516392626445409124983899520482099455039620361348401399217371641389470447066759455728087349850672067225915211795425921456509740640746505121547234581863279909710230092920297534881183630756735330523863325430578957672240630116100383648235835737464617274399888709094507334736270565210027809644155265727403836126723007345550222815873896888116811038165678636073936158434267438337621468932803999919891125531861941286626747306075835238260061742930011775307218652057254140190370281590938359942443833679654146092687879540110203425010846271129472310803510787510211849263868973051743846032106471068077513766168412361924205034116054270812740704031102741535652860101931673679775916396921878297094532547574327198641220587622433431836395107750069929453199098006280121363598293378657826338075762047721607445749206860528919289320688337531764716586935549190553791611713664712511577278260965140916715702534553718324357579844105064623079301106901127594480362923262853138451353293053396263487381429291844020030345940301808015524901989473691987723946092663597446897828501470459590951077061368100750230363325528850412540480383471303992099630766385657146134147886590758243681460851766393456623008447637245580674078909144539935066366338524838457143329495686404901086262937000316133181278324133336320940322984650701844317082383482371199597465222047531473709675854680676536762584590865482055838275718396599166616550540879056267825590002261983750451006727473803017529489986566778210886235166533369617682018689738960970605834673207847948907695848701031961367921836668672686463971718397532257585451285079594479959974266310095078404168388757168789432809955398373034428736000866304172342814856239273330056832635514633486533354512216267087859657892469602518127551617975953718759325387299066261081709320210190601828059716364289550491677234551038579278681936075279945838304515868038719482075481513438517977789506641839557218226697143338637764322929801745338865834785588858044098261632816956888720438993305976769392156035344421328478618234383754307849932531000606528777804875505504902988567240500812646993783999783277834869296089200883972091598436618859573979331536134873939084970837359417623467475892620437015948244675399091718112757429233854680406535963367390485190042533161380844860339488797970368160014394127728702779098446865284924329272000013160329996448655062436805665998765012154342998789365228190045854495804445763298783982831063624360505181236863768096789681418577179725078144724449289377759795050677437857552028860908527126003778295481511116523885754760200801025764565820872926549397782868301621703680052229207947431318739920145210646879495921014490069817565594159619490509883478865896237034417659903931450730396056812785570332347204355194599908158484837537573516326605629050603344233418610637949718478243903103068898556869987197108819109159493117014543046026468313792980925229828384318038259095309895372206412145003521761794505780247432254853830072896245059605090079934178931619262552541245257522924110385750211696073580872172204670232628044202440663644905953848682174365723107137461383804636901925889303781468812097941567766870333037646962657916922004343673070916889426426928591050138080972548504111177699820005906427054450830529613505912062923176638988919551154571406957380146182929009063986780092218247131278018808576210741786324256066938840595237255686410747140382473443220751949788128363180407935923960419363598934610627758985209410382049361776121561555460328582246026741395549550961274439463628682871806919444409427411652550353074694228214055899232175020598319626104615712577603099089965475407631883121498179109983626922398113889292259387107592294973568208638089352640931056731345058543313998336626201501927194273456929182440295329957295807829075633930880728662544666020378393652887292258659487291888565326515490321797547835404508624754266009349897036005105553941657807695014022404679655543114643458873028433944271072336976015282864201585499647386444407019467336616633043125047534633197914210932594129203377150113617680853242036715429370799685282491676921631009332274701931870240665597840053683157704077086313709662550979042701993925124163516185448948057075862170357646879776174885568657348700200053725827922142139513565874224102321730373559625225427381371339486636380564272449157287697468240921333846013490178522176048437389074200368333038210541568995503692175273226814530018770781686824542756226141382173313077671960218781682462807926868123920436176588893810568990933232063981931181851818787307420529127401221195351009921067125916583572677599643751566447429084117178472035613715097716476096225620823720344434460207537890387973182273089195007648731452400722584810649568133793112357579359742738242921164977358216449856402032348221007865679974209888436723995718336312974413978732948013230673417967780130375173410206146208832614443289276021974445954134088476993686508786324746858176953522209733849212119454965341863221670769279770694542667841229210739993465291887174954390388832506853099364386562095329975343729735700119082642740034515617208081396634109424878465014149222623907199035002925254845463404293463911571860691569781401840896782934479106665394532417757645389249831341119230454216688017256510514798798739398882093653880131367360111142136162362920754168884585539920359228452740654264260453130379638759911655445543243644143500608260162990339720303108638662271334859313756098396271047127349174041578233312803223579650353834530457774969472602436385248843550935228629419235999301881636132949951680043692000126887733061202733724197556593571638593639148221063803540881777991654241783951596907971226564350025181175579483129097047459777254501170869876501864804269804034544033073896091799943817053084358613902226405204554020160219953643463869271940511365265874284880876593993942928199176204285586062454100664393759277862353554619902326817956580370659372297138549821946301428396725642811651402469866010020357212693082505941383024461421733949114033612630887142063350345792734435437236659257895596317543226950644706413574030093500673992352418108023948805061413263388531003109489153279695547770046202825879028352537885265979053859622366594461837441205154881840581320104081181345148864433414172066165198224294262533894859880195538849703969602040509047109754462753610557734802479020276622739517797213473750838149797812349982483834633997227874450691405876177659989662013950918183376920482382132397757789370344074013792025292728442692952914570740778409535111026586912876466361367909201108667172220783974135118736263747235233997480253588681718567817712636505947901377775262876641631047390626716415516071617785360802942761000050245005672075020252691655650805901511483859382048560544170613458166001047033432907202267425097499176257235667461030530187309996413475441828401431609906257167806857423410512735489185008650353472461455021832335916131384859402761419649210490863465945710192544767562461486310898999062787343561927845364144488330121479104167484583635549886173142200025273129565514753593880410140356445816653410307518552664255949294994459234605884185941864603343321622527366098818135639104613056307058811326599089382413591933290612991012558093672971513781426926362101657601938899086187347323275958040488525129461876121105463395386799233937304506676040478676020492738271937901542675001215808902704234981500408393958904269477689029644128333067998063641926791026862668618431971593387362508536584252549117704395031383697381844682042426148650067914873605660280463877213904726252352116618253410904272878426250446773784617581149035682235125141518802546855352110207156606282161297433021729172042234667466798694114136697679297573957953844815339048140453023074262914188081548671635401109339927822375205807360220007883716401125435660493734036657493876886172510103544781077874825748364904374172065326549987407136473593674445321034978947730815348630594513557373470091160821206874938997262822881707342534224655113721986347386090454421190047703797889373524891771992338839568027789158904663322308516930129181885557028969449306012479941830216158553482114728393318097588180641794613346574037835137907625045559597399773248727631446344475867930282743271591305319478033439162587903456591128170426095382375672706271391034986862964270715866913217721636055683439633780721612578350572859127746043771115159051132035284516883121015915245042989706303005880280419853565942306494024853564426292345037245163388435673887833078385652355668971903561554905824659718306961289639258684173513995400557151638380173063421349422267081337609569395752153056217505629109612130101290140317963968392867035287883869434765223739772937610163441255308219120633213022897315284157662929141472434158067745184391162704969027003753077308184633770388272921352080720163681151991959823452988082144229138911206815047152748171144823829723355874624191277008736403894386590642451916799370366313224445140156929547912676334098241939123841249422691726503114871739109621172432799597968105809940801551619246805579011548560116311029408764704500887551308043080147655705208954767331431502596164906853149488258391661469504357610817685287666144845794653555581585911725727953955299981023163405987444379904994892097392053707521125596668503012197210515129140087374526929584380184079928094284036682266921939665153541599513835842541078525473794937986976822297615610495601791500303987187971288116472305869159797128318094564814403716214254100322520563363867886187394253178003300277803515936591523021748958420658147205383041667443045351710447740440151341900617401051250453120929147972617796753063447907675162322475311989963437841605480680880190712280333791262014626636169852638782965356312954630802881864568375413672439132744234425804289698705477414989689118191425810986282172259559850880337441601177999359568084384800834469593851914887083517600762939065016166377220756089892307079460983235734819039844999562589432841754054724344120236087536796668256863687967025936557734204050686912801811539112927014936736430465377954942712821207927307243333269848955122109351797920989920962151230609460129994159575641719301682847510562121312461317968005325882764484863025746356652934669974136445893599744872644762815380012647891876705757039659816642070615887456991990238909963859919078044344531442618427552422803238758440665322841482205588679965804506334601162705065174510120898103299444926331743483347703610714209647962048865768771787083959023471948136399645768625440109146325636646396180073752922916814544722914092768036199579815717614311962393016102783507164260025649522844127263047174838927125195705200454977380288980435296481268578695626168788944079573499728306123729935168511075439039828183157536455395994112039786621986794839027549570908186562970305741104867225653182236855035747390200596086214875066475717388496267129244915650391689104696329163399867840233787740470811301654800772322892118691024001800857809635570590073667195947940799376466796671977376224630016229204581921637396224018093083068204951846830730521546648427837262723154251298181040447010108432197585928239163740175389320861224809030975565837164524291725528423254357943737947601829389900117491643704984549987651805338473510328079230651711980947394107863602768695369107013089088529368485968838906362150876716394434161690649830517319096505045306940308821911544270106476083498030909304022739999421760725771295094503295874028742496418978317813408318450588225036708689588646099122218042572488688456799311551078515771658312155598706998248055821754566161474357528357273647715279312154131322206571670940956130336352692485082220392275404280763824138845635199133829123871933127411671085443666155856058392291300386948357150766318503926310492628146960700327166386757438732302746620297023694215942708450492635758797035287330326408643661624186006622557017691922180067879488770277123209983239886857556840261204162103366253686106490242875929985549956242532615538349955638270071648977210935594285537046625215378272666702792020438422810116098913457353734615748575851682914111450838881349373360056687088906885796163203926759168837875292717773510572505451453039332216155428061404913523230136697909140951253121747253070868359263597476153637827891008376355076652611606846167072632719496040787788328521324134780262971260693795739106788268934099512738477274138479101829064044582680981713028709470196672868762341073353434601639180297457713544092685687129936391043707657693564561381726126634804948618707039093090331112098285803020511039973275781673201135239813718140621523342270677379284472147076147586487590329614094436863564469815814421573971742862798438293534583365425860400272741869272017643993527544516704072124060959013139389142114632705103284805464793922255637938593326769996248504957421375925685431157720299914264571907020003112041274554822437824578752816306153786427733849768019484759465928903706538500148166809989597009580525283665829256077133046078175866187588465165079896202278270677905839873195137167733022950684899647061944632225158561891791286920815529188900112429127046735360911884450253502970845937308205661327705062275525854517873308540367853138444379227526184746482636701978183243758530318510939554945577434133216901359393767616941498831678074403435610587857049525903871849793620250709320532738409249288344087151592475961040272209596533578837454283784389118322767672856193270700385022664035475632321952507392887013180186681495718281508912309298428541923779124350761203437480581583430767863941702045203855894779110342333252766152854360270439224377829228649027521815047630849924366877436775283924318724382219285058858270970182801211449878979396116561857531088434811732233107308237033402836011932567515475354898281920383485186526957177557556034184581660117238116705432325056908922186868580527270633554439164127063639718750717655280942850068314761516043601397483621986836864638578894262535480642662595593977600482841901499262872902000628771397754195539753036014955040051015942759619520109854228056416011845009877139518021059292999936246615033995006658416171069283320067708955066986742024317281827273289743339816710108189947015504012133428952566575291804347579589138469420759768047294100197655686231444655144895416279246991749817380062858891599470781215255885994128271083486331584420877478280682165873780780310189124593440005502510501288431276349362438227217902216849020497737869043346589913564293973106985068321293249932804815644087358374619403034624058095824603990338829321120021505812845375491487403699995052833275248169306017972127220092688910913669722277445245100546882789617946309358833684121888997289624702020172167634356909842714977868806374534650658750011508963227336266521060064688022568185425439777338204751646592526052773939291645819094364806157211680367921612066978490290046211258485393777293942856132018065224377374813675697975455276399191209175467031198420649532370707837852886605015592517055341696089913230929146435110898969578283669383746531423515320043711263866160068294218566813641421713961854050775952581534877293127966799823351063454653652175872031495952955544355520318839587457810021145820359671173109956163785195186541602281482220252052439017378518999226994361892979655804395290566416781545165115203017262730713631598531200813209879659422680455709105842138977571651949078560087005800399059690729896956846060959718284486149341679894605070558316425055583853425406790960456319415594614698346279744644118651030109344227130948888601910752744805212289423498156755592222603911455442500710635326343612888227112514678438569866992383197619950427518673359702125405286217210891470039174187337491288108323170642412832259537654058004397480567744231736190020490412667360064610327877115040105316552899722422259302255406004598539665319327684963616183966062729617097640805428388676035533597430722479294908254664498227329741730697254976298412827925989751104553983128191617663766144488704878745619609290876306948702648112346196035557661596154204585584384358206178374978296365323696297861755956973637628526053042537330187467141757262009110217002129788279406888274401388115827505721564792442183098189547144367067621403181443940056465998475910576867992395079991535690581802979684459931328760955733120947049084042862245246409528331738788167819278956100611391161455927999219190974171431859140200796582504767609936321765177270043739868979886032977802138258632298216998221023778082991164269879556859829262103691744227167565593955670815606334579790569444001082230346228412757883861043159700180995920406490661133159873656037007980636343430503422382673682826964857583372411163695522030061696860681628542832105676498045399675891741690809733213361420943904247724899394856940022553611453205578582748100455568821576463798171732335316570741591982376855888988694131331547651868109491958068962608790334178609317703860538692260538578018447153233589906119587214868328648855031977318547392790405420853421308304380490921147463710971940607572176297408505953518519376931274240362103089833723688178069315313616897527963471524644151418850874412428931781957753352053286537049095866571443716612219187291262260467947240509641128025983213866219981892762969917749244241355407124581076750461247915975875971462597921532227473078189535219262457131939147976322205183302014673492292364793314954255188835290225320524409389593586640458235428721377770907404531315640149837451106394190304917308209102225062501270836890033097708779906513667587760557262138780994410568822461825690887733934815906894709911369191832399058744516734341208745297824022228328382188331956151340914737828185959698170835425355209822025342317969057213329351203171651824058961196336451383625862234229765657255965587048343650268310043839368712128396293306918377393533178666446404203037514677961249010363949510312591432303203522488815522837796602177440819418232310915356603223035303406466408229745240794436462954848473754558852722670542318944463373408064828143790472078563663931629887898295293137479799448050283168176218758951993938083950964923287848617694963434924792657433020781607252520248244307660167795218915418876322396698154874992352698221333408138406286850020816064511958452577743476919988656677419950078847656209627943039646622709920782416817093562278085862595215684137012781740039773743629927127863555294283416119353085135054741873282106969186544603532146146929932710591177825033449455226977930507813562060440228059062240614949640141647557577611000615337456737051628473311451336020609247828996090014127692176691989027301164220527571931422741683750310618760052557565610748019680941090606888859731633118474901620338367759504186900586557666786941776241204765423095618740957332027480945204145906083128969932219911438789176650054981195725014779866173643501920282976646007350558684179253216300245739380738446606168837227333566443991562470322240450676412628008058672271423955100423800184563168300349381302923117260695596068668583595863459386933137915448278100931320249914351127020408677746345196988534640174986666370739672943210509954998453383521283948733030182597817886824622274239538047230024623251010725607268471974549617604973017932396174401786496924962010642102714668421191786105333002941265663280081696102008841497860256208056442951361143800020238292847714004399247500853492855805525981207204070982357171994918774067431302881800543976047138971641432613442541298616032927490165069868638966841626025847300961997016187007763586795938200677013927547057777300489659369854272261809521819543110779977138831035780400673573821800488080912428513459995298900190345400243002638373794735355262900171874902703750019520620842950913357297872314499878451127262607743332057442144331471523747159693116082983770685164574789011161940060194128765802388076993282188065818911924305692973252893357614139111697706235309979390175156992547960647901421347784548726674431835815821125630720407465123010997340481467335096843944750741890128677804610565090766001759072890581722697212900827977202620009871964786101503334775248937809391926585878942696785607106225992832173936077737837984502141618045491227809371385150338997211948803883012413859047946253310890030874994415466686594919393480831738994667403875786370697864088915579822552907461607501734719083999793506661324938928144718858612011288709102428663056698575547013957946163296757349089291212968168236413747122022323565304045048207592942660576207315951620411331260272479713229642444085933412738289928929525522700334700126334062190117524031633498557588732086728889052333346438230638822901651307583974572246002958209125478638805697197186360147176263385553562867009606532404231827153974793176000795157588943655736184583062702764750826273197280931923106976029921776402329801406594079153332924685470718871712638112254776335710083595636588823612512490590958464232957188444895415805829810247231464264410641463169468865959099631123196542093867301033368823792190360634905007378783634766545354808445328271108863382274351608776911174985045762085246661595465709187707344246207603412095972993688282398674518821775291473604355016504613079341685733347137400298002812424810829628129596340497801692082197549427446288482645682224157689102088162980912418464061033177432356955222253216776010491896964145998662232094691868916116761158156916486801726497307176026512233083301855686058355963906729789897321296531172641441381348648083426199075303547982776145169890660402591931643166998503787042145636103664186921714758263192322004600004880387060260702976239278508446261733707706157728685390981568009070281911672550797552017998701409890754323546956796701815383125507649713534684167094399975587926872400305167432129861433713426373350242978337320930944284941656950758915754448228376328014158996050200111919906102967557180453092199330492880679348715859607100259803553449128369707484054849133096909999860914834904844972560120257627760160803831779317587491753686632124156664703088926978006156657766405783643690793168538953429362413279827936662296271247436192869050449400171403497496756598483342686937860330324447780862391334431264662399678504243985840637111788998147425663121038105441618918422366985003765069565585952097648564986957352233572498686732518211823424423787053495948451370852066412344648032050647760043772039949368419525623952555265492054826502482276824655417575083149294775840499509197481882028859199705364930074830466978896020820746372329647562406191221694863067841657137593815670715623655964113650250597340855957665602195887900510170547287111227123889201331623194141671032085899687865303066052451019144657184016700823628605164661888733396316536962838065912263613344423798013630900744859677219399334358434930026551404414173127776169513271518176183911633719226565618503984027439194779093034538508215199274698139526987641595074329472502714277570932892327076743863215333070481745405142172528578211857853185264558852892725532951298356500008672628799679592187238871960555793972069965954998689509767526180280667822243327031840801001884100727731447059083776575410968614030736331779020862341383422220651842985323270743004803960217403898073631876034457926487045190734732154497877022832455393258539315677854943790773591693898713025589667101525723541811584003383438276315172722304448814195208469183754237343563057077682717841930577098561772434697140202672621004555654463490737876506341001786445721258779923641083945490724267349745240216321533939372138073615450972253612949954543790203452070589083378607749740314207954736812155520348318350171405618643563849326321778347572842663072860831363233890983704943760360525716354124227295361009871398968039747329664367513237608388483867757171610744336268294300011361403484240580581178024445135837268083961680018819251877965360207930879903751994758520115771416865954710653401608478780491191690143535577132911295936615286858409855463984541135748226037910897948779330804425813150813016822952673144064346318597884558178479489523839381781291551235774277377775048711405375453262694665435199073176216579112210736178240136426246310489963846131949045854435344085315520837520091999548040124095629068627509805401278683127513021882868083680851268918793866600894160666900001506411429056297860732469461375684736633038902186740388461927793832547407176074697796754153807559538304287751907323418997825675742498701367707082912761734545725908373636714049583608178336271977331283893041501936345321066272727827898011382282311008966124651673592760338205899278343532325687638235054709606346282208984265697527785646162178029647726475848068829064351121412041306324346018147769830089466092853177065757068309303487839789149784520041400044641849492375501192825931638727272581580637049906365263078980966331287487565953697903956021748415715803461078004165084368947011398490686974311956170725481993091419418382487279391622816063118155181573678649461418041045948221608603544983391590086512351567669154700067255035487875014486536465076465571865196348465862030954149119680551152349556576495997811838746796666155808171189399380915939248880237096418411766070808139944383019634565943210608168604739107045892859972866188092399299666001702758874106159876746131412049135145135471297136670082898882098385353686212541457845114438386092173265670764876170042069333655835914169203479724185064366631008521424399823815170306583137829781693441878025114538184589549639825321324199881250806540714398125405302887440472515033957610212974166337606682948720963704114287117228054597958690716939440060133411336058581995912263086077766542239985884261351992456432724296764435585439835692023227012289847728963555913611044914292754938000168176801762252740398804927625081785560890107167734061615751440573245629395992711791476012446448463593309522573952942271332339784692298963480201506372350112470791576212717900611733631528482654781302478430642457456084158659341885635628304547392529303462672705250215912151013286764038732776597607722263752069067115023913762988963105471625703866386038139767426904960222704156237927939884446396539027565656937280509499302830708521326185023341894001158048337854559701333021657125876246914450780574697211088259406518062517491891692934032816878062045747526824215822480427214239991611031450711465330002959448076924493394174201733215046432845961467194726650195503515392650197832906451685052199335978131204387309793175190071943379091485317639307247433291496288060845862981692036312701890633376571150816469020560871707961051564531266896299105631242386086875535327043367084606120588866822384616647065037827421782730403988486925083852694163582125482759561854252012049761794530791150583410604341155278586385727731153353151739039381503108181526711317260167450884667777966296533841213784562985294412121457754872616504532128960931179361179299593992826067630067626582165604884127346112957524387194053310817834182130154435132861606551553021671546308095675525329136309150223490509411893471524221190213631771807779664579916804791533221406167530879159705118361311277702572405222904881654250826169821412697992921620378312535225899033121716977309313491574822494456415526526533201682047363971161728872253717753308682245932042879666312103407180937183514566910622919436221102377927434424935635867875830384101428942748616749111346252479687759519604196777029385348239510954367281823649720587767975029236186426486992734972228005756672246819962271963377199305527699861763174544443860277924956036041632622117795567131055823283954625494081630428754426984920617120016728497147202250193139032053618305895721013058569391064547557837092325622448626897315650866920600266584199931655906631337284138745706369649528977395208357236478564858465764284008276570648110049861363203446350397673375165258102504310235223752620982934453099568330568666711080659616519862775302675386240722210407043184875732699261641462971125974730913296691031799376244144803159541183371116476105799548977587693016188355361782470138223846406395200742909558899320404149476260802516716282201934396511965504215386751561849138511567528663796747070373301926330933110799624049412114997753396117795394583048874389500719054156808508219635861686601432573382136221527563452459960070801758644191010095500921544667832973605178908727808587978357635353608133034710600402375702264164332315976916815164333147013225917356457788465895404412399741274433554679583548618486083195796260457485820215247518865551402563082801835769061239059212181988299508952656858566059338696213876661266853432921057290942536854297680782129240847580318873748489896523893872613414371271161148322469135043986973816981798453838315744120803130433070154032065090493882183150513548264184042072215345244810061187712881408403493307885985445691292953195093307745716203403275653884380872611659595335696687660302240232836306056235778479156551612666857338421203008813300212305355541372679783865593081015052206017126604634353601668682796712774562673092260088529930631727480120169144135540521781953684374362237741362206123508807578923172897708442843878693263967483513537909477764684586351727473312302726661968384493178942153149613111302596497148386657365047900382681985008370803880514824369245619131660496188929600689445388217695854235532386726433409325100553843880415444568716695168109538424281944763082796654038334779818890553652316907980935549298224187844631184909878186790635205488913407074192048263597894758472752501910026930710989877443235074159112188593781693802858764352915686328668324186985048144097962987667525132312773983877895871433692316881254794494815058653460106020494402095029308163505382686940095576672091219978995919573952928991635383480431331327207002622443974526738124703037697644412007900366582574192915901016397981099718394673548437806433590027921819173029598235805015774891504921659304522906149924796571136146857578013160330511223272277881705169825978781867816686947537357185408829551762245217855977927302102653307565354611241279166355165492234041946363123576756469965673467040627638911363917402654186896077808851658058055067505666403820955427700077802874931639648082454258791467235524735799414881858889918007482761615527086491801298767364035038442024698628513153829528753056093854936470504645336205746724332328482861524817199499669588419530768502131424915982911250710684979385356503729892695319767196195013881790117824472880465082318811474426824134829952957647916747986982139864482547816587031225549581975217170979706052596558208660473532983977620169872890260365257259945565916009233715312595572378043060255583036926180667748949353376628341108204497069925815655724804711341252694246315098215860369610685437252024816744989276239322540987782550845481426619405310729251387285007520907825902268552655370540972022681394117306801422262239289763684785329917963523121764267084390588162064127466864502365148199343672327154689361396003289168568124515813583115242663848409075245516310105178176710979550446027458753028548156268356198658136597116443630832171940299019320205716564645731355999940421967290415797728640985363617467383536704724144168787324520109565604571866919803694949960435290769551042639998591644013026069655994385039909533062954300372168526829272775819524714727364561623959643944727513070932646255890143528317913031064228617176532021731908686200564603577768251877486368977332889500886222856846285692064222997605942571281301741397676530188209093842222085814412752646460288423578548365576457548358021179006760334675208068330287459904920943777058502574759524645595408901598531430098512207741254206232361100432038886365511623246004761835588527675290965874472168693250913211107694340434063640128379259860420590679706633751696128754617562843960631012531901585875417490894381157141219353468185825768417379265085361745367712140099011869473227698415827182957324647002203335891252623509494020808282871295753511542572133570154315535016750732011635210296275092647040415745180225250750691630305843095319193589987931933690931157548019802476506263210930432552829438416935902344479061499749071775218714259815374589687658376768977115780118451000873122378220700567690693343017619689274672993035311800891732397782577620322443013929346328879751520407131218690210133314173967856331167644107287107412768467726493489362656741616724881445455908307427328253858376406819211172834350882081685690792165106582458352888190134621436676486713535207288859751850451165439883984538545115430225331625769711220727668768831058945666764735951915383018824804999337186354959834091201557673653725024444234686957119509612204468042691687581838683112427268926529449543220577417987770163702286975579105160827396112583977177347012129917295218294537741164296734317254609107602801074925396774978047891685140396780693829555426297933651394157411968695523133755845235107559976189718250180664778884314276344493666234874677852778922852135279245315395257695547103224524746815391158276021915590695131602009330142308879485630937587990774554883681554006878827639560021327563055983522987470130284515894301615643046764167746457597905945238434458252670740260802767085979452026695188404067690228732479250113927402590729198333073723652795993060344062042119620519439669030275543786063631489536078499552090075824429680360905448985890812585756113201105303336586279958558697196314502340447727383145950543602241514620862478253935046117159885995910104078867509245205937398842434372349860341513941145694048881261595302120636639792607265116339979565894435310380601392532941341683721141024376964237142151584783601787491870941101165782093466054334674511903013038573004012279558022007817125886801075878598334450109421381078171573768269798644188811413275791407105089018824337269400970698055950531756992338116705227690905735411864141627287838051569008676560445524762742709701568165024135144837890736587891862646211008285892128039624204353425658024181223569898136802886444106912524384042375466868599711013535845222541901642814073919721044461860033781987958683728981483159803062698396951609944581456936529925270017715734596203364365326874787285664408021602189239710930981835904928492985214907332628334625970475699374081085766285428951375611898034115594967275652908746195844205769707075358991578701450464740116993847671321153044343627602142157145937556057392621082682866823771424581015090286092199271542647024603692610434778136052564846294170022394832098810839125080988588583888398126200589478750520228867122507044831983709983720382909124373737449417531519683642006314865667245977377503100220285162870340271968770092718931256296495361334710800939784898725136580875724460597175074498932350937904583954156251431254976998060063045499484125267849391281736627160355163099354540091193721183054754431023687768895556682547040134381481131751701235012059371961251089814478402607018750754877534971429385253809140533161046959907742410300892555497163980866114795835216249684208826744319932839832043982714997352295395950192022867470279390961806157851151306223864468756335528425864795738425917271330289892063349489664516034578066745371840228802426036941478813974772646222385157970985347760142046423750752819801249653501085091597606331261549338382343323458601152560568570485099047704758721808226222447328542615236996623041273949157241040249332808210950736898502150988637479089071803962668283414608595765433281497037150730199964918257823237183764357968229643442529873077459887906185329727669826207484220632125939172591307430382008831323559413847220694400277270531518867840288189576903790089741159503076447747558113975973093305107946738517847173351500254102688311732193737068069545079790690024855678497593998402440993533135406844964995683514406456591069034515001316793169662640131108449816452373194341668040117485901876697418819617613497294445059763748706346222618869149589077872967517574160864681514246298106008614561102553876990454227683227469771077356178558377868740474698273558896954118487133958229598479507802417461402699123319105630439306098835488781993513520234403849681529923133691364391663317350269777911622855720913377807938517356084829597920110306384961911426667721945846586699978897111874661321369458915462321115426882801481586228869839603776118419201021157752375599811710177715686034004623715546316186417459350358301553444132027652869125606622516348236014854317214645517451168984113981641120931556877320038004073616873893134047244184057481473853265429004814322904898883977528143246242972925113767642650215490109685304619163376377186559051591125259030093818533050317470876032107609524793518878752317824502223546845152413499296574172635824219704435775206491585540950819374156190865381232252390197560458322937550364745614632315547460771436321412006310746279526237891823619606048324260646015471228401116553363268103068858689403925006327958960284756605252965886553233569784275946110791413401238965101803328354413304044177855823993546172389432269662701348148519232729473898920381647919957191893017356373612388722801096078385818125149198446302903617504997388968620595992461716897227970709834007628297647730294585312283372487935017783609357429481968626281627990800686778519884208796577614128891320087735910013514011313169515399408788626846861487379199414561723420690749857159236001859436117076012117031566940463240157174817479919726830061907728324022491452668887239401378993506799681793595674024107658840017474854814701512357338096784809359286950055947872563989717421264299857304553108657329708428494525596551974565482842406117617825168625422977459138519366943737864880919830453665931542680638167300818146439100226523863372281008910883855564560286537146181267249719164847699628400336583554953917038707633600104776982560139125056356238508367058009467751512844733126995466259022688088168925526949832263951112297834330818174307686927678470722349271295549839924417758725731015980404179310622512641339666579135015838030307805442300687458346855399950310191386326225707820638540587991448954960748812616555980730942927481802581910521221341635257145072071746531795099628098093373522879130710544135102009469095551243164709698186796919884433764190545527495688180382028690139641595265420140483750461723155734592434124835805711453520691915493879925804192864824780684253546861076155227815363217064377739146862320933107432435653431035260337286005110682819564047333055004127751597594635179792991063864669298088098481940133740630959378510409254737005407102099621845768250090214582510568860028464320115833719911711418668042731532963147981351940580759158493997452707334787064802580432067664724210333471679686534214819296387039837611895908911862197286314734628158797155259056069158190034902068193569865242593737549628352659218121284158059119424907699419701373520759081132909019638017804659285119066364215572069125870752921405332091713529780039332459187671625861999707764834025780525938210064766926097111902524601154367855474980325044152391607122916446461222445951372744177896247682939536485584905481872152282885492410482582482759574550901147453830175266174985293963531002678548656845091458059064624128400309030022451330383000651058913887189151559358963278426611623205534112193259221092266605097286712862101276955147166738713312742607376707462994069434945373988743840828132231685828814647521827670840817012410977079593778455068148452860968451651101133038576218932291878796525195816149012990684556255297990129672254907151016751578520322079863273721002909577711190811945658826516660073210341127032999213508555517979938210004233395263693902462759436702803029417484591160864402513018154628819990962914009986827324139117803944297186519853353812325913059946285020562226980527149292507637363519446456254991995517762847863383254201060791697443631505798783078362897499544709033805975495017010337578454979915849759613439194629566973587991222239839326373943383709846423119931793619330850839303499489477633427239975395562903973827130695529681325237510827675810443868288440399759920855496584975104618296772023185590147442520310157630116573816514321659523246325827431653555745633772069265978190628437642006967291286935068919287114123399156824679060413754527047167134280530889976233697912614910483891253630425272446458497067566352257018918403008619361522520445782209917547381931646022565755043359175712564976381918799408139016055805761441490058409586721044376782185419944665016324087381216695188480048129293020076099753286387668270001710852934253334833148000581251482747949250174733455456781728867089176178684860051030049196125818268795308009531203607203561253251218858303389493473678031464536698969158144892161997083810433396658334054538557100508906791857703925019388545939152749601845978157809992282251684191436800685423933349209962075034142365485416734855986742866287655204160375496103346550364834096376579235720389897520739081816336219283763008303557171772061730206864332282959143070411242892263378565923210163735115782422044231989793534652453873735696432379466298875488591401328623273280921076770286100659060891336148034411744487071921780144844657295891850580702634112771259059892513302403676564666915695009464409614170666023245715164113227714255045018558363746607071332011021770946770884952226557159779766410601921957024712342795251621388314741188558981760350990372377198766814385134083670086833424020679588979696496658544443034448374112182217420424140526121989120311731170787147061537831509305026038993034615486208468749763848299201398707721862079800699861765027824797345347830218168226568385756996959433899557678238748714785591893417716720200777126107226681437831824905992170629507059258259265468459851468743048328891351752696240136770025935474709953755030769969619905543890939906479612272869480632899161258465845586611506687864437897224027157591402723899008073083322563011307064809902910369606656538601664720413486481390307118033670857752240640666487358030031782595068071247437484162405066803893464473269102137844163469122558605623419326599167358201748775094416846336300060096732557210783921753414557336061741899255448240957442693608550932775093327134242517204737273694685454094001636229749534815180480544714745271689054165635153246873359443438868604722173049514059844962641854285337336920028952177046488188391402706429202538655011702131640086626668044894805674462357206938181878531370961488031270182074880920736701566080836458813905085463144422806175924245963241733363469559119580744157750832821754872330217623999086423289655795153776412629772983461112887277632518590766335149107663661763361684809032524950406175774466648718313355573035917725615327922808779631440960728911095539321892625424918990739436974676771869980997236573576072382505547989364238756542784301636101096285979669737669810189176489295123473367316066084091561912377710937232372815183521300472355912837583186974181016439027038315869460848168417480389371240583324560187862888321448732337313338447850409133699630585759034934516668863974316008874878065029704903262850042469697823827636820252481195534121723957987216878327570935997559416832758274055867320825596558439005787294763342263017354655266699258330565212972288509434033969673937214958658292334222808430131929384206677674924536760724808259927298596004295255637766686977045943449990803172349578086863658739309462421103421242787206968074557580415262070733755077499147749787566431218117714688841301978455071109693876904337978288014785415079957426327238337835625323400729927107461706672136302828889774797643020431357833349272424656023973442928191100079395132741300710274364511981447892988773606486812834281727315049812641408628762030474540461585553847852340765028871332834138664642229848036229764501089976471776319127558632716220630605323564020283602014479625637109732021926505708758413838863156398420949657076160653198910416783523513549889694229610035061770877558255217439523811208972488450320570958743637103483454257043348049577729229977598426909368047631396705260559817549046580545689187223835162335865627736178526034974111730828130263493628206333843271922754457335255951640020103756706081340458151037444104569925094922361815160213172054196311815443859431602151414519146272441901715439085572784567988405604472662723495810074838126948064938652528212498117391696628876518975935008392045234164372182854264917202527516946423265825112232589848845859256615375240785268706606113631728693565890519707307451794289730961367128003981317830384797465706749867916507360721879506063297291240494610727999201216163351650676531676535557490032817584705222409173010096931143334881353682142892661030938553416108189100018773234969169692664201777175091263829358237442023718225283743418957698243711618998793849141270964536673876687602579961678643213194153425874177028194877555738079046629305401426074783504300380591319004765568821353361190045160156749158532435124435327883817829094997096807705977417105608122549900985600866498925488565756624951139615661853429223317225829835478370433173760433516198801849106930225564259489188541674027272128426671706745231605890720106828410238909990431914728235680736041573571492250670814030086486077158766865947165209835980557983819984056009028235538031150973160500418408309484397251118070211465971164798058509083395724490238452856833194870483431436058516135306090331483948405770711516412005076725443538319232792819600408971749833813128498040977500753724995279951962925959235167425769646270490105125062021920823174148325082015778600795178013587099475303735470816222116276519272736856017201428231981056286665366722465862352020125754026657705314164833230818469750452110135015098906203711226535780097035419732496244861719304648946547675400966531343740069234059515736319871503414102101007042283377932001649649600863280734291193319812582809000830135312018193546921518342538107846279993653715885680327705046902853467219976629850289898546409773788373720711065192415187045947680513709302723760743216416507022441009208014931880993194697483862266739819799969268016086071905746684379649439140757993233427072476898979994289399351534818027866249677953107524376381355978109284808724835377880737637289752489695344292916245624727177854830846978908937741364331638558291722437809607236353979361748569643890161931855663463800960087034500244282599243423672936023827796422743553580564828179884102710157978445518190594405829442516172515080337841361859543968914584492240147517660238902666258820061127313871104012666276450239539880706410064854771202098941053368803132488983635177642711347885966236901947062016816887055075599284271632961539218265990668374882513311608398448776869248542691923045705104602883872159363329381971192897207732947668343096715884691885798964824487628103791420506653927357017575112651045873867946697753934283637710647917932206145710821703880061627295850604944562682656329927147680267480035979469404756257243511453207872440778276910124057826451810105162244503265405269797217954885802947084472839726004568778775875397819206550887826785211595088817590193793739233469076816320068839947715153726652552276089670694399364364854418750341191379215080987670501090570188019891030407466488678135311986442619217069959496262635336506270381428293398328145596710454044843829630070314663349479533969680847084819413438879894535445419261708494159732261215452785989299083212413815700028232677106918458784550969346400063022185289790247058117262139916309457653923711136494503174655558073992914595375440011647965870527983550176985449339537886069004516880932644690412351000258944290525165262983989232963883136224418409123791498213616815946741260574916315644683810999626658872831417575419870849747921771972461627524198248596189208523623949706935894091433469201955983139681458664350147595272745144640117750917822584274282329566463309866926168064491874674652766174525843442953664587308644197302682730138087193816420704074834762596369186157120329271120295659173560719288862807349966451527456005792923301279624689991505512135044298268837115578705516207875482926688358629435690465186405565670955455963904125312887772445054922599180515204104038084852049396273208035578648338288676135104880042828869352045077603138089849033156774789700215128169358571579860281769122201182728538325811316546175741200762352644951341549826906637616738855257338702594495593140537010736964822690969138496663975973897284056948615233246285255868411987909541158386839008058572233226896740476489526968121088135429539385776279182946367626558900000448098822070690154689131220394977797714965418050383064380491100188328371470922478756038982655853608147768487235344218682484389848762755525383248263325092011812682023997935305274701228458149818735161399498669246189343243057596118275221994347708575394420873869109175976773295801274303103238538743293521642931139831927398279638563109618752919801710978182248047220609657573399883849111624554788558293278696239349291783407706157481667628703597025038060880149267563579475649334713746399377988848562048895118076937232858522724546290617809985025243208308276080313269565137882191858600459861382247355042447779217461073682316279164108286478503554228429659320502715156659077525045312152810385869884896585007303746772252449142443337924641458727550594571770669068612977929986678191658468256614566678862564337051853007563550062223782058782495704993420722550142001270428072645758319843874931423945196488292261105542852339306426248486312642897154543562266976268942568293740394545494754510553562826546137524487349320939026418911680079508281688800962415219942283379752097253750742878503203467175027474809017004911468059589066163666805643971119429035161608380095924071966321079052378115328175347245509058324991128283570133973174627951155196324691439263716948230054203285340579693250958508860465165938411801843066995183275064674154354526392767431965417388265251630044780972700761200673790553171171681135454715409905380429637108024485333145705420327335294084706400519553673640597194643462152538428479480358737525414943936342286039528821321323859233638268445417597766997447185252230462615457176886087874604602601976792573960979694258870702272306738301053646819284206237353214318203010990249877566257416296935605244382900040554366317471178209550128489497531010459603879053268145314416988587971552587736389806659348338845681735819886596401282392948001079754589479027371922234873307189929169137801851465533318056569614975091165185795695027044833003020307851807036816349654103549641745761425883392375964659781752007722582579100888250339858234760761383376972220758483973142958366395865689860954001891650801482719775511993149749218682199674366941058583967307675240429836694990027514809848004318792859644398944998103210689911402532789942868577241685306034626377619763254278829242820213925005951762672924404517337267258716544949879957494536787760101773323138432572195651911133249661475652543357168428668604193841433434131395003117443679561575990229357337139096880321869376048506994529019447585953946657686781631661673902223834669149784658946688870863611185788837593657666333518009813643681644057567977130732206626300197245863861361900313335603046285159491994709307030232593068646422625132451027706408592175719126095903743561653677333978985283798613889924574021434522740398274530946593854629119152415089871634560882131242916303164692053437228850326316388161833305635830026815855329937606973546542093199201369131213838453576181545281475962283099685973929415544461418961356922778308601017883745999902215012457866323557619983369609701602428089883208564561237499355362402855000640406050117887101835941554306064221383024900189403095796797964167991052452695077502197352083375431661064564975402125179305671011768629138860099955328182286035965203715965990333808493051018460194759249058672103840501751953425435200214914978398973574762734171867239281925150654556496124307735755750225050822207458929367486652961863410470453858558757133049395432652535968120158949731997747389937785266048761902288098595098825126089442566514601910048743936496933077149556978463162179574627503683007670361179609287756934050820666116755046025577689725620272939877269770262828230052324292228226643430987214533923021200466097854967036605072008453304505691228426394534608971879016871977491820726769048914657360518091845755988211431483225144078484332435803814749094292549242384720242938786192153779227336399706230108989882954740327179885277943817329691866231581985737809435219151089574808332244442459626307924149224954161464350770390469851667056166319015361547810310387067123100450990455050034489714194426314970219965439865250944591290969713913802630056383395917230806108538417046029579611719299815985421190515792341973244082828958474783316052516162393699443343406757749957674544016542166236776607168501327738659195099578765450721068459860864121241051208047359195297432181741095664033703687651660806490030573567907314705557657478696357315653665755975576823131802939369133409678443957514289445409777144534057956130223755390667762533862825472295737403698159638329730566855440543538793392182738142695529379160746673114661206195079931479844862247060887406703012475360579988163158910106235540207571189768856234665900126631119764141362109969289550898651110772436782177956871387632141416965007932606085178104902162598594788625014520855989448279610486866918606375650603155375743935996568218936412053822218527301399646795235194855052623423689303727456203681212077242586242730908388267165830562947902979139170343062940997615364679215658556610761427002406757213903968897026292106804312123558610874870641421198830239515173513780205496735031470348842727994213960091977094528624953141155903410864458078721879216929046189052414090566830522637855229597902398611864262373870215533561834731864539917039247200097811141310831303834836342886069025568074288325523417255806508606059544706951948165447018297157386718932952910553774487476249776779694304893672250551189270425921968207989338288728044775371060009663123805989671754919081344601774902942041130509958508128537975928152762592938259214505968401739079848140024611584064436496944873926967895069708537531938372348134120216024085408826207341626962263497924002984035557218327649352903459149043165725916077651367427495175062042927707977644543675888915650041765423455113043909022828185954144292825315046863943016559681978990301616840902921946707520067724298920478460126174712993443453174203790495502665606546110418896352072040817014646209523411132227791325187615420123361476539183740961272549503661138936908327622213319377621686758766573236682122629362830534845549339773917664025486261808417136590922300729759435096714386681236328711405833714538748810503384078380664842556165511975458666448058329088982936688782081422950381019649111420882461796856948461843330819101338182088789425549768618551271281362786558598552430417216101844573928335379192623376846661612607839422869181295751922487152283429923258726203971497870535489340377629595568140164453966387031588726604529420786528985308942883374964113325171634002067582202349777639666761096442224095635681201788101155878219553197376910836532943989810740035131522110929444738575502110577928302668125856753415673072433689821838372095946491627542295386309644406524370540365490014286101346090305737262559469168778620439098082114934965675395839264887835348055453877480400160985000204985196587915522965878391528512648884163148133740225808194166740561322783836295925112556612860014722491962248804610843007815015526679239006975370400919293174190936224656664875123193291128018113351940674990359854731385462821544250080173094670053469064969150278163323248468537858069466746329588009150867851606541052231583994358150823900919396779394899189111372863201798215263560409747763986260115994485670542773448767398409255366188968201482111290245172266873130710113363866200804753209839823132820929054641069514408603639068595436495207872599820053716620212593342451879035146144020784938940147221834121086023597876696416119747911521308473223961559518561728761393499204578701673876778120480216351182274000268229648018339736969771139242936008198500874161585526427786812968351514300572281970816778202937835935772199651028178303325887527990787519547093482992475489253510129974295144567900594563916996233518324800896936545179392448121978717682318304925639458413474246698322816632048540546006288572576984952702479025135834842628535688621511375331087705041395634744672466615600027739637808182104744090565846018477251460800605520815168881781140194939846064328303704640848857999097319333382318120423966670067982547247059221074559095258888465107430634882393214818411646983171646690540422667342234222497460738552449910375169949303859550314140522074498860140517136550063858439270367439611552199219988306417507442871062225507332383163456973438611538637698961932001322884493784476773669689795639173018173470031587075209108361691270640777899721030704426413910578423748879147143728147494635664438090447591527975896257330413401887701449696209833430959760565387694725693688887079857102700844718582429149956845265268268489254346216874624672438366433286405317750778502368255555252284641299449412930026533521273689420651946003718972126965871461807766744737465026605992202693629158259115884718500299351654134719919636657777236451650895804722253710804056035853174273075462638277500560369121995710959116452432351000006682477774428403758381721422693752862267257285214222497543449389931372286677928999706361397478719091551627351803049546442890102774569543143515694602249340948220326761428834333696406395628082208578000504047394356454359747551108686913448620669798312109117652765268024159860263688133922768154862972124226878943791872458851584576730812319671854275101213020571841854311810886720293009570704999294992371505238021616960769489140476783762749134237817894571380329055214075515395963949360048098729887913324634975789409329925178931153705034195994711103484927636460530685736667059527252346034205400982164840176071360086690673603684994489374124073205980480223863321386666549695778246779612448652035724748196435355168705535610291732702824974002362905505482169910104890800206427673969673632837143709071118046014775202139204663489847519907341985066287698685176536103671062212603756677598972929901836979202215972970804968022074733407816965135581228894830345428129781684700711307799049499878223172158390011838467621726566355612912548107226980881813779164414532053046603887107017089628227615703763434589478569875183694984169251554338555159397889462628781916664915208067758764745709051491405116159895786061808590111653014656470766298377507261026322773050699777633809120273264088681353810384662731027109959218440107169896759281238240191932959734428710034573489110397829172176318894986074724642858178488640838695252432478794461432224876519316182134376651399193452045414205132337223162410971167612821325315160094148736170043325998809079726117336896308263336227269706084528218160446529951536368951834978237574694938059494433817937223459829772599462225670400517241238576164486085612200121811153522599039868417061391121859242046796122906969836580961725850979610485290364339505307392594769987094250928876448372491449045524176517260734386630180403986797601469629703446210227197424328874906364760201368360919762131770322053642825270384460628916038824551026564915994832994362102536058175903952536540573506001599496799647780759806745960401597634271799513227112155202550288782961102855737857730836320596378105598150002725594223124232401176743226824097135317530100682836032404847188715304405196955267320346144382673508822803402810947400478656762516129697508717751890678166409708512283353419343017439274218298222788431183976620664886026166110113915380750386416002322735642779766682326913985075236626680131949376109258749364675721422622674396863211635812907858858096430922319659880175701284803792640254298889601306426406289572950441453516908814099640424535015805161427026582708944983913352411360810265972738481516521197740242552877051217012749034127794184840341460413527065741448330045865561977507097727567970066030468678257108607822666213756899897321067161179724480992821601705853290010388204692173472238121398353094100694565617655954713237306561054690059679695120298729615767816550214197888997462006323949759239338242483058811231641524109063254252041068377968675806523240317406830704574229918672192329854193358834502943211873014295311409825983039697203011203651563443968891268495241170582298887572884744476681606074651364815805899902919630493608726545025598080731934561505330531390250462462444666942691312030789205387457885153156530051658870229385748747206290686701794460533464192587016982141110279560877054064320166203285985636271766545650967070809596369249207655054337343111710973286582776610257550249915851435472232154556720040657935515825664961110251527510473277526737231507895845405717723230831445976637729924688062633427771854889498958104091217148830470750200757120697147891911837688145032269060646100934324485239328630778927180549245191190252963218862519306402753999928918014887665442252869079356664232847305179651303208745580706568376002129902633808678124751729312056036559149148687176591122208900927629908919392432816998115795203753910481684485846791359856906202762266531980692319223270366952159476931145370840421909455697522329865123287212914307260499229011093095654533900974038307939764636014804512295965620965307993856599932109841716316404785157038024005488043172361908203634322214674158544185297403153691756510863832409626886529304042113734664962139522397275949685910104737580001575932348602636743590426589143209050737628694817884625215364650467085790572586969628905213601864849397594467153105962566108027974779130787647646333661708528048227060289201399820787698385463793829613133219072724710676459109787517289079411429357366099694330887890290113822958343522832041413468725316459507492990413718180956774952984051237432049769134389778202078845280930744381119169536804920332739434856257935660401554384861624415328572751745202123800218750907037604676226002799569521405188920377617414446006128222847999180702446263207231095752355990061768174644603304334086318852572843359431359323032797282504916098005460729303480990062044635155069153199819117014053926494028547328281500770141977975027055204162234437229253299830654809336067170502378309927865556893027792773572005426440565465832453210616860375049349820587194128882793234856779855242434026972462140019692907062662919954343699457219366179401405418357167326936724692963264234055074189562759412788055021785160404474620982553330760206409287449810531145641840453037045576265564489166329999186886005361087372533800955875821607933458086484389285043276561470058205209339550192019128497871341167531374203009084835711046717252960496782596031098975639685263281664061092386838548484741387064058824707313006055289165986323728977316330974113758649762144013889785830581392841305467060771897178137232105554388444238712581402236279042409293494336708136675653554851798558164404674402216866652865723943261209229571304130387999375899556368108215173344810814404705042703386790635794440328473376686814238317413256499843391757676223536890876890031658250852929596976433516206788702480742431756184697308686356119549333284769431462419831856402089771796569042255364455963341987446664443706610358179369660636342456229868380776966581250603337143730579879136592240848649403442145393608577310163081845342382274267218719674049354901299183190937399787228334187833225786397583101567178825192150356093061991967381157149870861336653566114914186422793971983075178497386792160125427776993414913442519393051590864423612948283062762501677111711611379100659474613435373097037303417655476745550014794984749664563397309345519657397636388850398267778286921368664857122595427783692365080393663696334304608951272194097354288124426183551034625600763659265644593167314454885735135638696743245410533337079473135075382663398389291528654511814303259404401727853284844546264049742011075530095065657419836067711091826641774238818174050165609907168745498557361960808481579503944556283823846488558610434045577554547488870674190192579768673009380941636759828472335573720246989895160219315698440852291041204329302087722383265320479662624281192579305146619860413017423858299328931386385954388997946203091583110672961080136771496838728236376669980184437048943995859868166851084510197501118648405113489404079577386228177747054225404928902849897412879039232933323694381991987828669409099255826302572814274790782989205119999681414182086820838914412713142907599234835612545524383577074328678700381806531411815848133621803018012815693570012099409125288894780025548051045316622838519041003260419223362817177446274959714209370042392236360422047365641905001553259227665849196591606640814720169032341903398163324904496794978145877378389247880814148345094170137554580654058736948565111856848754920331037879436455921104312030726915000045107744036387372585031470334505182815361451218211807588969266716831237616285274835858053406643586001150569115714071732918525553916821608245210585574154008890761862220067490457977291949626465350352705706707470718942219502629830793856540317273659974373403741324532277767607826479737106976102090466764229571897037438979028076812958619477555755896414173062965035903825261168271418774930594206960356620169473890461812925929929066029630738638841073088838166235658851369710371036946136982198507647073882622374356131351029415370415064982951622265713529585544173097588941421717030715404045004745077632148639956070974130356911669663579411530842089825806105151723224029400317885734659966613116409788623700065323671059570899782250559127401912057518570234657887894611081683086045239432434324822712441631271791239257695181415076469948295226777946828513461799759175560211959707027429507552700549387180436067277619233932177983454667029110922625590978212742392686907470169954750914476768980151568067493322648529908045991829908199224123650845424190099385303396927392744667531734669327851449639482355430099780780666197642684141940623121782091779941255410112402388115074814464722155717829989337040703915117289883711437656471027797251376919539647150553271643446332895146108570378638832559736189713045886841133530545313399656159750613792842943769519872387068794397810768633594039687457674785238052264242833223343313639690465339726224710064868556720210620964747123111197996578761366667711195347680797946864607676609797502159594729782801506711695260831487329417242967847514846760011765635444159276554184336568404887431163761612236939944921765686633948587340859269144372259609240006789393167366934720009654635459081913233757280455893079503964235807916499019141109283770934951341491970299810551708819136967497909102857430357221133846087764575772765249441898437045519232916203962567822008686071458957983110223691682101754844552538128988338241698306561712855070634277432337538016972971092350504994609101600089608785124124798759924772717990187019558785627989799551981028818874646893099889642427848747072877126234920029281914901230203372497466235871498699928419912840187805946498767571781456180269440904387048435157271943928563730382693706240319021430174287707439317249854900532942812581690293259562791827922842070961761350586321135517873144384903066574954382728993236790164869608069631816060324123197422116802424087706863759285389233553650440382812496247272290637882344112718431904109888834023630569393381710256525386432992096698592942485669756996726091055538561277014944192728179343933335768523878846022122592997079077883322068405626422305796363219007843605057190638480788693795548302686283254843359168970097032189338015299274679272423072169950991925409934718446942275269710291226717398783194330388223911388775060842673779232783096185635737338004971432070044141128554760479181178847930666159284088851663416766808963787246645317434198569464639306224146218514079050793156020055374586846866375703596875503185963273465524043070814219381424997724429359540111687446389316071868676429064769519302444920818815885032191029673897932191334275199808306056883713795576330951017796515316033510371825024282393878111839790365521995784254872378392846250098043644683334027219186540316692299516853306637282465138872561009821470944439029002155642376676399446572415639861875371024733424763615268922817954826285563590692402438390184258960387878539038123282052817586588336697877349099983985346014683648933694569753442600699177817121072590494697593247449741797976294046921038139135129431980874361448417365178221938162099834250398865159300496061926042268154745058822606285159678600498250228861555343364902094050060396381130398405768624204216162720027857759149547470143801969807344767332439399230572478659672432554032710634729667035709886915284252261350612944164204118113741216002608945081329346547807078677089445416910865482707200785640631530751199912614744830626015791891762946294820957929606807476071255976340758373804340103366367876894863599890521773247356868932849565640425117110172473324600218600591503844029482838497694052573797736831268347458761235481757208142019639238162206366702359813198668882668973939636029026028462768167736336252090409147363569612105952899378814102084702610869665052762664963974505015478619446466275788570212133041786477181322090515005280849391178520908854752847575738680335758380054985155071747499097339640032655111185039894744904203748641207333618645594834076915548968224570411612357064196622994622497260475421661655361527922743786601975010085612937408039861798734808690142106093381114860999725135236548903964827561076073900884340987429316383251032274879210767239967202060110217390444445090401265090959108375139184072886789194673822900271833091269841056872401734427202211207059775713855924359433417748280669337180628031555639489603795732866296102631076868330731802245336283045441882501603936438250341044890306839651789884076810225778418819440056131182325099596948658757343050421604343238579688066091711653158000271995785267895179943995705668316184425615195625206639833445691970619848471916940489660942433695336951314478630326393450823624159132531351465652521111796892611505031899683775324125098661787731548513593119119195554651830230969197430866483251952750059379876786587783792694881953995693851121658767376855215070084609188993767950609835474348099605008487308948125361420940923170083624820926385862151228359770453206017260200959755581856456042217129776334631262857745575469669380801226169635077026817328043709956490407048132251220416632637412233851714913613675938476858333981762421819574549468700049516300498963625726124780878394674430943514813331166703528102070048583629498677877235322246256230629923528318719568907627312558407261390484985973754687732325842586578914485985273787591448464416592541940560321966301151554051257994874379625151049019678623750266994696548906800524836694304782617152560884940898257363539813538407072103942164609244743208514495628840866509811889229828594820999007879266030092938273989832995910479811622173084173410245412094180866157540442060290290028432963244609749148347464603703429208239790475238798085214116642360779407738037704364656413046318431116890648163061207080180872067591902341360046983552418419398247430965101890070803717294948752285859146165064770675644915738698690547076764761329875302117504522499242492538208270706781992428328817364971550611674757977416624051708094236623518582730919571895956475482818436559296083805163908050102826801162039300568573799206865726743845009541889935202386906821883045808825699752288953719510456499179246959988880669248433520936927812422222492845256213582784427316874570272177189182166567902028174882795497764195868021616367777433559734847574767549281555542549110338374781189199529107177714268490459556529642177580622792795689180416033451947580165218003073220970179275550744703441455766649012904121424195299143968103825383754044548435203765871093832785686210346527480912404257316265996891230770755559660539356971648826011833799458626171162796514809792925218931015321456858640546420333765443012319336469307310680744365268955604059176595310311414084241003000273642721364434826363911862494319315286225412759119836610369387920905508963647207924735034925366822754437662210116200176001587774273024066494895922288140220322819143913552067705762570732105204931094168066556122126645999950024822373668142694821877357789985982224226662089667738221765044921941176975910111421242317511838242033450800181826107655457623087118976787604576167207200763868710230742067335140032365796749601318053128821426940694926587063957896772757757707923071519531382445646126279532742787691803716084662112081259909460993028972301504704774512630478274842222630135279119855981159391536141980082404637083475048799130753761857371787937463017411979578226407627729427661108627305148222819509099932675086103294967905282655474698098108626645441487823535073631496739704183953761780922159863968688521323299371138169500943929540945154234364047657157851922270772618872746566234921292973874274708405223992500364043883687761115082644475684969493380906733764255197975108824070775994640222327085236814755756450815869797437726472808663855294690553176462053886045746246999259978472451871047984243837055392554032803974999259779831481099436158156616342628722116062811305583355986305017100080593473157884572275239364827711894153796297152106794231402535615760791550540751500765949759404818614634935131830329304792341969425397465948810508480757825601410291455105520258951282042732645616651227788140349797654840016709707319622591040812998671425428587955962493831977957529107066245168188590279046447840140286920210042458759867396536268147046565497709959029386590846167510500005146650093449132051191678885010362748033771591507586851845918052189168158959535291257787350669354336747667850911001123385868909943627726495714856351743033637501556843579298162947852444759484043121438958865568610244842833144042783780509897115210612189436377888221398949794329277344151489996724182965285941478532771189125810074929609437324375786368984173809656861223337435974707347903022841611337639985340703356526920515328167028471065781802594907868265027522968207135905768990317544190909681699854354719954219526918803801988281271494418638184886847185835148107104506794210411508564440856266652355939983655120216139849550402688847368779409791015375200356047616330851478159037886616859633253704263007021777586574112449751070223400995148881279197464676877681000919692647245261817637198739387225521574873385042855511271713533990416345572474103077766920612731543410993945200471618208789443796416922075845921638566989463453572111419680499524829235588428903872649069885973147637984794202338964981452638093647645442654891254175818351572854670836356632490941207220309751465546664061985814744822953359648149684390292384636702753943366514298471546363336376632730362076956203311448310695425668740905791739606307776464782710785615618922355542886203720141599699111122851826926787809586196705108587853657739254651267334508143632774338237200622895154892968203037138770983612225368515193112405188536604636016247158206489803480520966075366501895072652684159201135635047114953640964653151658302599287599209334656099336242858588311913438157212448822351496862826262858409019209063448701541056601077734460324171900922230071640403071281340296137062931979645397775094174880335765584484200117186484811039161592075665864007380902450190444583111897531430423301630363852994086440726712238508414622282804946115558756567238560667828713091132471439352116356431040266559787347613446077444910339162262505364435582657721421405761792920460450613575056110200344282642384701491358769113106889070597934382665276279971362586404948152402549761759341995100429765327181630969335467055238352492783226199411369257685617536554102256592506510050916371664354665973588725515751553178953048827629407215380631082222689700618472273390590116388395963873020723737803364224773192780540023971006028639745121390975596399821657405495628931817571026000710305839260601731032834704689192294662569497241985712873436835550386874624912319927974794430925563882261860681845753374878628074957393633619159973952074352414432330619438927236805139635750323319297336563640103240369129328438661682895874439647470435318806021656465050275942381451984853696819881453715699671193659758959730470736681031519913678327556649642364774747771384571526463423366681534001935459387432093464543121246837248163506962194449968468492301890829960757998985701890779181969179408109069015470812267097754311863669855106715517038522674661961082175138081106846759998298545088951643140541285988060541278341438386071283691138101130488769342881527856404086009531943890332078584474949152061162163049555985591177837646072520393690576654397182660679374400290213301133400981277541955203466793368988191131362599191631802230829845776171762895041556063214814721275355705192733854812323937118767668622634487295221397021753116151509930716345202373397049946952048248636330449424524224946813035814166662453702772606956650932756810338563460572619747002194495964608692113596572160514049463905661807127970247629452379112118911668565374921935061915059600561564345368759396829505584523107558626347837715717889088434975873343779245660121388383227532722436402864940278272706962575085301526593189863183832033454798642050956828657183472096944732602066437408199165275514673443841162289967073976037775234489540228831787354796156372017947756253103357357205719196800264562772200532738271815150880988769394629625562402213010188365032281713467478591062272015234572050615365904276482193814005523344503751191028353075597367467627587551279503499458914745115846742438164394210335933717407031513718293361519112238210228253403411239104732201797374195706436890493309215832445669964455960389763113929227877444190218965991582500483676925823267658815277496854154688183628936725719867059326763517451761384576472726655589876583664539279452348558244545649827431128677190106316906681319583643324595191748270523816400901326869494555199560390955179516495124355397849819102580323944632064743470468035050526090782937494634973922589571846036999765674312125747212354771716676128981749244889757239157142819652130739792963475120540301944750210733647694125117885113349970148212142353273263962336014589288948060307773626425938626635440746318663837022879683413721021020414184584016501870849190993041385536722057087286414520000975654122699649836817582739008092760315405428449893031160285691206089562675193683247191978724584275687010205613264216486039496444259331688293161834666659849546633529527860763842981711391125011097630107228789718164845309219550078637607277367498430442366019785022122340604162638719209627481283506056830481853031959133885001650138710585626116684953567728339881918576788022394671448878761382966826252930094972166856920256058881915489123153687744623875861060181422197633023506386271823150404009007592254112570827581284786454113427850330001563470509781496473627427462944110158836539489873636962212751381388105056734413608433340794302369237537739359752764314809478955550871669657249505150370817225998169925161116362247169578773378823781434806676736816574452219825812966831490014668797369072389294954183083170588330283055725629312874727528966983315156937063722364986001797234624036351396133442307535990977031200815284291409327551655009096125259989902796257741939539637248666537932494388740328275130440124581690612134091530653515525609402415421099258792085074300377947019727869541126546017822609988656522807719319979978445313352214830207874548698922601192365782971082321579662553340988872713836531250796504332367966018695835968530483280951283130584035399109795774359591669202911784648489250149713473797172623218288023280852153462220354257770720140080669817896261988490729386174354006997012048799231520533707604560356671719702595113980574686509489144337126223880836132237245292696572380495906080459175669292341303627925164525640361636018917367974107230644618496809727281521119158250576841407285894781953181525793496849181608779700947649623190551486191857472607012481675713652130633778492786486313827793895153072275393681140611071347957477486756099573253084673337800125611977917107620968182531163889739182656189893916319657053464586317299811609859013581144072767064207764907788408848341283914567397993040115240467558188358160190847848020359555278357951912678441604780446103232630655520079570668825214445548359969905118255391125939580432614227855820822789109077661812668652401910425883320858728187880595954986898663979561609915983749999772942286317058499088945415740206582772162275993697106950640669154323071106075829520642090106404811838683581087992166854665357661705820040060347021996370093795474139475175137297620421626576231245645397144449775234787485996297701498514861655286452696560801405829164201188644237867701244667159157034316525445587132477831126355712892191385643079616795003313406463141045967221961459603488148670150778865070820556258127948593488573537811857154445845244169778450398350965865075035068542795546670512346020617310244499546766098578841020130565053120940872621025271410056671679678730690912411511878639741617414393891001638716863966126535579624082324608812500113882330959826201543084075797445924538620811258184661744932579437969261628001954622747702602193463544836770437636478701980229240914705815452611745394623736746679214344195028848448919246672043182633046418202870465702361967800468584409500947212350593910496719133511264949323988018516846419350075374229827564710097967130915404895474866776157919547722587244335325216371488680843388446479903636871949183934009546737552751394852987129909909183506333841387359659501315006713139083158122878445543885949795132881809130200645595710711772073442606714401624936750667247653412210758547250973062999648941820370944813506484969506890336491029696152184354383162849407545178985569275900389478234540608327922430681824642232550330994682023530799847260227124251428940643428342143730567700420467939658407271485945764656494199497331907033743714250464873399243209694000094459437550968304354565661450519901935160181779955580379343148936556055623926710368648011396051408213315601571921859947642770555926496165612661760942677938610847328560337955850964470548476403755849748657478201645391781283018732290748048008674390265756504994604604041836450577584450284236500017872499223197125798620538576599629148423335577745661937112888470314862256993912673528362960836107419882736564409429415617824134314931353255571337583500602670905972137839769891432614744111551713941868078949845936168764110550156517826448265680944991434114127330266219094161631382581782060114896095377339423189898048286449301488898455060433116923487103614084296922712338932164246625992116264753666245617395564454320137032129396450573439967580958709394733652471993034313730694496557640980703519923216835205252475086126976915463107036545659979369294741035555231959000913317017548694105095391484018706689319081032546454411912624141872820521362706094843469958107716971009987580194830832969639404093530922949994545923185895684444727153021985436126122462488959538895781007816709488851312463027921400799316156855787357849258684095554153213675613321973160376744967443069043871023558384950410187541197440019346053108411317515455982486460038160993674100604189205626554051066358951017985425766554046385043478101544631507879755364415301345218388109169963139355011301508786013207256924326797102420494865606782817578720290096403729468236227051914985632093788943555269571518611906598565025680838254775601767152332199045947651210291263807611547888352402670248908631265406174615616089130783762825611761882251946977812743059183634025891833235127315363426224094332570725041822549479137940397583784926275574740220634618828032194518214733233251426454841211275983820345001101402327416800132966806939180696257645844231526657746346031294489542837220839753551664555771695830929163442391836260834818543326807203640616791843298143812227984025393670530305199052993012630258213363013355786141909991224581380867129761526187883182130524559671663977006285909408298488842143157744147878689207452090430078626102068381658639990618664096198680793303839363077203730990254384795022232545679466492983962912735881860156085405191810893194591194780899352617355343342360000333626586413773939048885134421944638749495575621323730037767883290511711487979182830879623878409690278401039465649560623519640781787321019456571858158597419111467553266465364327643901764204048187827919063208310713732522282873275924564485977897592488358733277409177542523385743205369535120982063993571090882895169970327933082802608316471687812434668477737816846781310706318836988891648838335890128251236964905318635872130007626859877883685138333743502679703435438479584839597469366235493602650271795349106711651151294271841321832192211105472291092771010031524574425105418443097824912110312143423530024194758901464514890924834590385058247104862775906141123484158440030317124001761320767746930132415119199622332740131258493251042507749163319256052611381439769225466410100628628317509750979279518890911505230214389071308045422406360856386666766393510551777099458446759292514412217533187674115751569086983157864969198356846588188114587614301978468315493043704226002936880072965168386168920990360474753328840300784294554970758244538722020378959981468337725236184017999583717114356907938824097807748897632271759944635779829537138389429157523800112710694042336812204021894862395294065114571032766514859157429847730403553845467603194328592161060973676113048171191385652180281163709894805208302172352401816011133537097983047280988293139194932166438878967311081906508153553752349356771718859290879373279686638207601746032525413879723422188886850460080992842247847817741223349682345458909832879123070758656482978572145939445357558819770587630013961589899199602208759331680473620861644111580529911761538873377250337489886803130023669094051615181021824048185181884908717217087181072110079021921734190599734055690575916646828687033463954329746328471547832288603424604278816906939330586863460941597878188000298785917241549805503877765443014808467884266523935703285470946221159991973368285915264085799616216723105864439078866539083667441128001807699317359284739312526091124436853785902736004247072859072206631427449613728648525312280093649849870359667462899003078595219415479010460552848107073950396947377532644678357218359242986476228641379521931155595206739112805450647598735551387980899756636952923178160267169597248063164620980509267458297961465434822505230672231886925954548717700862446935505176966540405238734823394749465647314725225745290905871391347212387159704819963085286884572423376530502981938013961010732832501096151507819128048182606759371817456459435669290276005450786964226379056646410955154239836972396739974936975556781120445047320414493084709822053773893597502020716409199596048638492910858110603139890009800815320735009304404983952016352806403369997184448876107267167801686378151613224819214455958574694533445227897434510784793669907489091246713273223588968403609876265584926725322714160910194662438929772375311670311078265741290077474623613928169300823022664073882570693642707699539012248655993114686441144936338844655760027380945729127954766452750247953202929173900305760456517444316229342626149620674496922996316768470485598997658623977143191372713586949218869876016573989895493872968370701506638825349387544537415192260216406846566675436988898560272098051891663263013882060628237190288833293611805139387739660332883814325010381718321509431840990373306332282359255031138306334926833573098161760197375138860203261792730304987144066048751823381563938428269230690781413655066973839133289409956109737592446733522137393184341770121448798591625742758390090836828116953891429479564051409497243186425516319061458641600110031184406203862684143546185711882142788061425887034852816355706928646443726804410061229983500630658886087324919280514410763547211470482222499148377477434445841438467566635806373204163034532393283749858793151241288247131832544103727792535498354408944340074335572268652821554771139430258790989881945660178629399860835606816846483774312229430243265678043693047736876861127048730993034144812820735534903422169854027165100432351742273589615807399220163646591117555202017197060950549619816512719156401758678755696629357008231911653573587906426919416835324777835633430825816277041285399570943655942352397963348425468293616403210644988153386596027909323600263027425217007461950378441533053928226193813607826619153853024993240061746112347074906901542354069975533527928055529883829424797526791391411673632287684827092062574767137045829872765363876543263740136815069078706826334927635737225971290927143465367592682800663221224614585856403442334928468571065653809350886193403359433584355562236818568176513524262335379946968102595653674795106849569537248599228254963628353435635155785840361148997448166482563849021820768003608235868686145810990852370325714313602020428491457194316544426358226064333968518385952335737769374204948354700465815810788343499109134287114831737597513182117097539743451378454006614980836971238376851481685051247591155528231729459999740449608863608067515079949128941225336928502946014231118972386962668063914475625142716419683850919995910119157595934385349837405784035301617512532694518121441103401198135330767167399174950955600519245249497900260884073082970567959813074142846388336452253316325346420707573596405277827266711391951356187243166206652551770876507481926886422455396573832581888613284745354069960793270205172735203283765529289835832733163970449305232767002260827564258760761936313321992454937199092481555095542233766269097469440860999818242079730172909924664176899134957027541254336330164711048112350218960333956831151651043050148651144602976426515461493046002376269960936241962137138298463833033894791247465865097624811392346875011883715466259819114490885766369433151095176394296891254844914981015133574193210941882696994532326402326703599678553377165914898684667631153164719931973399521656012538075980459424991507931875245716309398421143380150625649214516590624863584613670341104026152492052241782713020374550344128270582104040192801318725754780512908108328521616830428568941025930752275039803373578707058087179597505414916150857811382463174044238334469318251314167732457765843959567144065411634864806397990432521108127481725593275964632579317765914317273519301139961485698444724199442107043998382923687915499724959338128432097760374316572916595170456817587297035218422877454841192195275887537599736621001945446339374429655648682887198633547004393961641653078624013428255340151196624861343249456696832501142523653948590331786008935918407755313858947837517618539774172419237815029953613818061222412053555747972118517879328090269051166678088797593602276844644171833532480113642852509185396134902636148480168016585819824858933311937167516905179569606695723599048497564449248121004746298726277097642442147796610257480263311816839583956230744315282191135860038437055667983539798801429061002986541802900118155864506060584931037517694568594263111959745845173713443868444739113587512749006949483522232639027983780061922216688230110232758742568500593565991529049666451746325931778497048062833149575144188982939944271529278661530236895478220136123961526505634560338532453826919432569615778402184469759906542330955113543566808697967851470713835927159038238728100751841685728517511970538644551754731040049827880542025327772038037869211577958998953755416986894383982821594713511645312241720199743587363447171410598366465931597736511799327287767542851858781146005828281195893229457489619766556897059664875070503689733530827476952290001504278240973596686241980277816727716574513029767691187510389094910063886871455501444863871708440466040867119045645811966994735087190930716978245376959103305661043916654003339058272105994561957989673510817998216242979015128550086805590196544421873939764944975876549041756388288518277539219119171798757070420287857977326461409296855884823778246043503084331523592446072415537950045829736167745980447401235809616501027491672284525233219182688123851711039760655818754824936899788966319386452991784114228088809196929131145373739694778982085056437480376604527890399981427362057345413650970134845812750530777233278528770628199896322789362029236307467849710941016348387025815317796708823775340853023821728627005624560453496852753877292170546080694278155719899247528344234900561528671504168498115913437236628156611019535963790879113420855399031595452881730067825777233835090933195936536068908821407749045233462585277493647057820768736648729086722100888197451335018768471720952404444757786371259390735539915127415661477299304969676226481623291982610582550193843447111416852236465069124978900937222324341347016026989257654246868984781500417835584655895245938277341354802081630661752203762191781943337265644967580159066970706654475709246532407491414488735374488279580852677237295811725946533982760537656268750351918414479454872617999154727471734042784272466693919580451947877025615396763204306688194220714809890468221114144847672932709943831184667269045646224138960186335637289199792242459234007039753520594145282487300127056382482072288935866603647207772978035634728108922245002375298425867305544140189513428294102913575550446129159532505520315919862710737444074197641165677869628667789187801971606941003928921263532743634496185389791164996816704181902002035544423861005785846467891222998452067345954390756119042106214455382583409586165856980805710276080305690590953493398951933858319104087138893882920258186609830007427375666755016320811363746190804816433326307006279560557295924381619167149278577647569922797290784294384856834814901751178505732386971130073380061828823337470681792000518169622620267411391802183929079466886815924183186772303952014794243468531866376206867500574849927498841078614234946360749689812740092058283313696122622348521503896644713603696499370125275768611113078326043919049846144737171559253071291921870385260599086096327775517201394366951691976472250767087320750278714811166112619712161425313531697495284802540506360946702914421375721381322067668479651422906718408195572772382086777278639628365915988068574677655842550913645271787321756647511678559745852920875120373807155801227893508116294671462149921402628514427745617207825027918106173970767673215042163315564069788003006487879502793959455266336598915326339535225857762384022816756455058276921522175173251330871173656247276400541570885191801523969562108510058518014488389028627497588892886032500966086334072817722480945310065536616025039321016221921863943736780051507236812563343902059077035885187263406559320307569612073464751794224710561595629417287160808497039150244169809645609506787938779698673146124161949243722444240045661062554659589263315817562103389535143880466549988614968319457068908788838900706272552762460702199578965014751682279332621590566307013464151669201067297210352705170115323820033958783848548030999165142114059505977341749686889601898056123940990284137171120096103648971538012653820952127173692697753084619970715804892301514972101310357484564918344846532972024412865579114697308169055081936423670215664626656102422779009709216882599374700943290775153488307825189837371849308997400766992172998091393575638085501386148698858809898293115181762198827717894600183089277231576123352436342495024913037422408275535843320215799670845195266667578223768715886036575499750337301065966518534914278664537819938067227929929433641059407056530934528140867966666481798896198983169562746407377013415731186868119393352055167947969445644716528926172999818453039077991383797160168259850226474483598878065102881484756937515444519096664614139085858637132353668429047721451221092671582958361521498042218211952356729959525967081938020324156428926673997712873505234134177562174856162825025451027143000046748600683092484517025451093976902165686296441038860875575923514856018991403590613661059806690222863487186962243188877290694414125897515874927098366005804294264515150253058945565886814053279613274070115187716889673692350479993182974662351296704532509837887953238140109437876642817224893574103597959461567928799472080188223477217183884254905352132761203634346336131624709444612231791789760232439473010980039656473253904475803063358896578436911731375956425503145783151438488706624977624101484036782377823479048131718104215732156599798686454402543487344167248600760343197263275040456558738370268142870830574174813294764479628747024996592738843638236228514619775168495204433856489004419797717796476326722472849026942924362429640770077781209603974835011434938362020968514474595420376477185379116966818185366530352313701523554226648555073417923910219628985991443468892694928241527534254532696605670639820485230971463251389628619631808818334477650927948571891343505437434851661951249980934294975823516263014018922174490145501730974460670565318772798241826679042644535623195581577878391529716490652521514590401412701220096626245223334697307129030004180983502754220971195232089239001646107668309489628589081058865495392823607694437626899618307303709383277204426676587866651449153087842647326122950298732387903021307877714134582214898786451503984964035743382746302989379571438826449015444545926175388861527462983814334378567186196601639913439248374061154667649572832564579657980669981261093169653686089612067279247866880978944374966283677673952708589128999013125122863746404303955953997061758279106026771246615788717784932717134341227092089449864369018530299340269809567971629927930716469508548068028585553102899883813602724435521070356288161693367083334978789026614521179236948884057007275970375406677335957993568525896140880695237859438087361738262226045296970943025948338966312275781426359054474734158710841442221111439269379820047727487623140197693142434878541365095393313214654272262755883453427674896272720347302014231391214921966193507902138087738366961582652569340102366089177914678210981778706603720543912703472824684742092879435980376876353110907330247169545797313099757563480006357334025604155374801155116182712852618126110920020213628234936685175562233351217594211580838459920099588246117603633100770279496087496744943680923369354928590070454893901673378165135382856661474139083059314518011304612004918781214680657157662942352453262095051533782696250300194746607953343511821461697051792782763174187534700102470582896692035593392062419271399316039060164448169744109457383466955055135589737115320074394303352553480986929478908431945125465910448863525598557485902751888669884189496792926920166155719462294329450372959091985108276710353947640852806331241767188021236622580119382510773217645584127355448852205803453360323587184395930332031049325317077104182562250100874507265681325117224885440441743141983554310346997158916696595272624470712808130875522270884337091031150897380857603268109728411804816192427106084802061485128628522466860813246648874108928085248265426249283239513982862569777398071394824841853587943900427187651123433736126733806676114048805779302079584368424971053071799478285707097432532231474635571052163281871109431064382144595255643732558382420634730256678683578585890119740212926458947966471581578799878768348241484202386474521455699570826244238318873783827394295872538305271183765561435078723274377001725347438925252108031480062741435005109650538031036014326400061788131243018257249098659430384577093967211597540651013419018102323700713169117179469676455268062158990889245114181360802458943670191458046047222676766566566758963070576030449884450168169829607762395582373571995223585617518227910982114149973479957537589729836022979581182022029550445342775107732629441314050353893860637015371836658186746748333569231663691622865130925248658942403142271156966593792058066767558382625057587264518122304177649234583052110694506155390467904898997563765124121564579109618261796514359908780807065994605373414281372085628696928071491426709872372460223430265144663978060730264259124912620393289329649166374801552656364172347433507911571505845303894933228007032171668357553574084549836250007203973040522782630820568527601012129014553848357109109618094778690925721612832801217278962682604155654264681197715676800672893374844004621865565078500527969882766528292638569931621880001267771288970744652005487633663006730122903289282176981153800496264549454875910216320444083670665421491723883306160672967264618677087286834692822145968644632706265828980746830279666258584373690352229956530439171055809529513180203362708967299714356165271281793685146653778128401996672650767902033416932214848899641221092152125067130985503491577791759471219525190627907843945539026710910904338083476033841434347047519579591037171761546857903356904277978169185623710939695935661069950087243501367160073802616034827617441759233647929569317510844074195998327579175833581209395208811561542706580731968079619891649919161243256082840260388592865720068620868095370456869492976351894774850897639589434756235993982788583298626926273085354630550364306042518891265221590545016234652947834082671844481827334629470454319226879947575265363085587999179901663772844716757924817813269307876262190947150258462914667066224080425669164474938196394729216005835714750723835264685766962781035703754948355584840660581960083861442876375077660848169584932415713969759260286037364185098227216912376633992898931478476387309275343055326852822881820590635814592265559352444715043853797217067699926997156184497679299638991267930982071198971192247159306098517552497542788783097837231428955369417965359106277130502072419723489078116056396195935013283312680010956700218831121600271725023137423174256208966883109007835975219437268749495658364573642107566284775232012813666239896240095095397704824754772403718187554531719688688721863791253766321889615779039878813118053476377993849849529262906211295126932978351287593616128778467379901977607592947283635381303649163928047859577285430627975740094000223205479629297052894233837704203958176941615062197535126272230638374120354291422199858396700472702435274007471030400172989623781283171352587899600376988403858955958566282474140367092388458261456210896282623970243747740092901708127906932419180020567841032033607284146363062603349812780484928062221291724734984674982069645847110082664292925397224777403801265111097228646680780994405291959350371590538147934123471787795176876570132281871661929080823632426667747335656524525878355550095706680507403416876287906877669453525751560783051908826457877575619537153579859803266399305550372614397574631263769968825360118612384083255608508769794647393337912289258534267183471143103270564263007018556004872396346864497659576867567922652948328064571868046764926551529107844669667289644266639834740274615170929676515969696590474696197651511076946180822609409960565191673595344620455612446916548332919477878872098604777048672970829514524865075466196361413914864168910081663680628935831694251044038222553138223112416710968982814833947467846514324149047985573064060405056805351453717076019670431365182426703985890271741858451722463405284795185932787598098713737433231573159407204576814108191465601138464636132368886055449969164680931136416725478628646474628510428336836889095736455138547703862703474289512700790375797623002574852338603862246249436033976432441290475089419320888103348331193364123694753562492309805311856641551548147717884992487879247696247140212953863957525252365963514906098805908691541588713057299230775184020653285873952211157605852373780025006618490941172641686371234555152299215025121152719594351935807814291527392609313775754869184751606477498158439678717171273419917167541718826500635233638268967529213269128094534358319493466985838043227194730363933543769221221569801453677631128767272824698165569369471346037264739699396482543387071923344904854981939782405440706115412965144518978208654491288689976578233255767000156855609370660981942698198363986621908368660055420014169194637771711050054578799954191321927552957811187356987571593518718458750702452927090675646623436430444614306833064355892173222344091335188198997021476000934338324239814780458182909738110381695277003986289428946936624677373892511639178918831863558390821263741070038751938353322047469843272389032811071777833965452527611184163400062840910105590476361428405370103943779269691099641037107258286857828552857942010972549911420239583204645171451822809245102255679166614552937335693923956209251254093430308055841271035403470649878562473331846732317631639040678673936511582998221517617638776087661651190359711090576846723627837663959158628544874897524144589916663325322141799740711762569884593639291207385889733028384910597260114300457970172808161769039089247214995356889058407506617189871847096250340757296352791679250491349049239947516899395558519965248431070006716128965411829066892881484218953384188421064288275324698917728486436100798638368443594160438274810508751198454741469254935665889897707732442500598770479214848498380034953023399707516520094677479574915289892626164667088861222146227922434277357406442159133620743643073331280654084423024458923505969612967670508345903854339495617490544356183350331728961251054330801618900293045778089330173648390611836991798534310816653172037150750814868664683433814895659685160847898026593832430478353550732569680125491612738576133403765485533111156992869440644252646937361414546410869686430378744017354081292310689303129017923331227572681845101175715188537444822508528671018707485560557084348255089503146493263030612777034932109843347649065429686174685091466765910864159080904300241843463868342701912347644895520124558018522012540005311710306384432761253383034488567423922031368973852149164193989781480252899588681292305341696478557314372027559491702403203640066655909407225533421778005708676104861953906651475107490641622431956018943253331030765049868917292287294274771444231651599719063261569333282801338495575790744367449190437019499465972824234245440042065694342356386811684840672873603064196288627228811711596079665974969195628036084946630369208049535600382359259397619233514510907850786504117087286267614004109489490114237915831065626350760383760747589122606123685217858355144484591271418005314091710679068639254107964063616884254636452151310728503416380965106559858154323107247558573836928115992447381578108065822250740950230386160016190321421729096951081828384301439650825045707937924280655108277093610184352714673627327457901340213207037360241382162435237426842903291241916118621002928437168494226862190537696171035622514836457126240233417719007817061963658089121878617717358996351657038068304314587697286925065257758114501500236325366735787142779937036122206689385430811412328095864843381661320286064210393573888454612267450690499389395450089317682016308757725029166050405878908162289486948985882509451187464636903507479966535752185162737436924070692774167193406910250115587896303431425564782011066834232500025424458838990252224809062761203295828174450725181178577864249703115675328389727117342729457115752080363934757682481205660993913749433559430488898902816056489547390390231545905165001300995991446061999821068528612112195061496612666169729656870309949598897807917813021817073319755656058593482699776148746687575552484888363741700504375911699173395534844236705676351846556573641319213394988781844747124248654297475709784257985944453119461340113273230952744414494835540628318490536092459113592898856389906133766272368470327307952097014118069915929492018978542477340867976211167501385114172875414399263196592805383226027642627711336829767893468871741017719053227380222187629938844208888169037517078378677012255169977075807535436499051106603407664954928726714849602239051044227817120314892504145573206032460639198730163618139650590696938858306044780344524932099014299656543159159955202561029188633679506053263406852606043821758377146399831827278985936072011435723479330579146128058894886032992733911543643024713472084663334975744596714432340958868767804126476481674001578055149303734728384652463756619825355087253346008850718142227074794978914243754146504638981340725796224996377616856415486085331953960059966202401215392753136238669815951953181754854954103871355702348548695330777049830340659806980960629335155345719995183435908937221268525007070679571500964024200543405226344164976958330625895348884957523050849132479507281223749107852850520336212966761050929518027136099239142096754473240237465678373865539427573204611040199665868586368013793366609129756232942093685743949791784238686809062249267247808818576822487998370123945692436035913381980159545616525240524537695179381093914645598311057041320938288089440871867402386362380422069623685594427506038382244675315257611345744004967557997136694206998525131194935616266512852482752429794678059824547975968876112277969558246077495627832726181626205054912550026463941125606805013876426965434072431794003897152059526584125111763853364265566510010622318047718160729708972371238902320292097523589849725589176697641529140565390347094586968078537360983741573290240231425819618702729322468081481554235340216664091535396750940354519876343692814624384984544482095559809297142339350994174759514981053988328734866841363497512597178577682106277025190665796194690506136595364175585988437855933193240233798502018992764772230156591707200564539795823811520345186141579056215563255596894811930588767965930150487123083525857225228999668883972416719288490851482490089385900500106464173845247732188675885013748634870899505974491822689008335839318889001430846343546752999039805859464112947234282312268126720057228257894502098877270810594005073397823977009017028838461074525002592781850375875917484209500832140007596006916716495200233844080694164586420946879857523724613468066965846301752808729495247256755977017573318395962460821575531167233925071872922264024369100249840668159900198009261571813873848916930045056839630726652770642653020648982522632393333901989973442860296289732552584675922176479522973922933571424291464094484518112841264019783715288329892478910776215943112955749858393205412179307084629512085634324768469225728231582267409324661722651100634906911159993892067319863526263532543440500829796215292795164606903441007054657753026900827294292031161193985052308380979410521845872699765117381908698484601870998216759092014373972830805093010923631087456629759144172958690405794922560399336225197213921512809502066195098624339318984675611934705436679231464080092597325125913327827418189345453922316726969269335614078685948976078874314309600126696661498800601794873694151683196091048617232269533868979387767512672946184011903746479783493359954009113864444346961767453329785865001394166069890164001516337281312319223263951978120940287725623984509871516175781539498123877719899786139963124740100423132759053968603354406195602310003280575332692864569592553330912771000789481295765873358719641800244911958861354952182630350903025451263895079272607626561546260193681048997596021225640385699446419626131864629121422834496806098325622171896089804240253324430782761329991628342634085397772490787391964428950487540980540483919855321665472568658208517934886463334876104378751043345815205718258439197468496751795283942391754120073927888660387024573470009135425309424960235273796273233454152083712232405705851363289329092003057639360549216649278208638844369375088059831996728671455150735175863628347193507030501897197241363918192306545994908596210939749543874075702557682346201947464006421786422508330877505936902879730444076112379222543695875886465411953017519753689988186521670455382241045104719521766512339641471092260457229812641834955715846843945190364630039193311789103851392053236212867515584776022952736847265307778154846460536684585282580130569925834291504065336247155688440449020240619560287191048394834523614864694100499762824105336535415054181772973343944619013865790844929682832637252561005338908767315547007670337429750982089631932808492513936584679580285716250412445840339791462933792136527809692119481812677711204933177457991533224159240654131473340763506529588184811757628507847703458619901796834623427433415071910301315108253816508201945735318924517952412307565324946294581342178624296748782049279418356718648261831149416021847649611936055833262824843332850453712047250131705597779169678002040856674978678682259351798326005959328490879859132431690767214170953693829143132683232279954288426502860315002209329372257053163925286411394534277931708890898888748921488918974615916682674551078463794331698572790356970839675753380916175204576562207668795528848020319358494978009405134793800448900846157403583988859362446402407321925637671561060642169268508146762548529970207284150771095355228069371461566700492634489581987336345074808456881118277554466804466652018140505365231911098976330131202987787656714203927563703475141462705767376251904628384920897697797856956030608214532332465300165899182348218051145666919006180246011150794715763496888917881734693922366103530772931525854434054894179944452266707373276635603281877084751493588643125411765320055369781084358796012309714975078994092850245106910910692704250655949625917117636258469699566230237157263588350890949215220703699115907660684445202949229287654208863946877818892579828991878091303446986571640096880371590128708736105358950715803571791992992204363233659323069179663235486388672338255358080010207054692820275435525895239653830916422349461805601314408135589563167490768415483104229466458171825834693441783742904884871704439480223293590039099082713873536239657190125017607042124893571155377508247702924079569784310080095206930145887628974258639590384397772282617571565827329709125746365254132433696720348504595961605718734542699907656532709847047031666046482467702218733265177366260439147588613967586181183655718939103691233409478015801168558355975066713669521913978178650105789749768149830471308061108317776639162369991630391176531932151464366378732257518842087401731476913817558756903732930689135775708271391738113813215236580452575950232798086460087894868682836914230118506743820652353047916920561367941135432352261693607927701423986645897614473903092281118830230478365681193474950137064793375845582318299620925646993791589036294682949518889470340640376465173463302291985427334150295450740081899479386358958969530805785839654924955282911262373618428719803982236420310659718052980217883459278289894099101948377976590374061820911918750813591904513846146377246443332653763169257893999895526397315169378564779041781586669667967814473419002502005470634609959232796675466102398456601433160673646931728670696573351362560266945110420725521220010791859849167840279314870964833095177046500065252751589785370202806220865080472096968107656424170047738382991968562724422153822167459961484122643625527881749401729891120131524501151987456368883908980528796625179938342313192054367726173362115410008582901611700581231388135139595234407513992469258940353247380569068892803456007206113131505954061561883982858778592930545387759682613352868373337216242990888253560272500462998169692381746247227056557771688016158331926399092540370365165273103701888319745719093620483733739662271223112877613563829637751222434538666749155716113144400602412346804897180333440049826960320020458853944306280497222019367284695202256229396001154339505138940793645594537320024117215505059424600902354718847572016553551739186484184919689895952071647326646582361805904105549263503754098828350127972258425857805366947921640052974029172525552757818981303391382367997998831091168664121385590885234911238642433356723728286490341689772413241593510366207863120346260901480991084872308026146873979597226352517334210233496623867310745794270126724745650167008585428153179882652317378865585026853075325194163743614038445358255115554939737536019588683942369360487794794803354848632417043339608373426989742474280852308488098243139346492470305167221541099198659599289944078021546660001149640725007145709769433364568887530125129876615423143151857110274888261030359846902939874866649403482650209862211509993802050331400793257582771556469632001139501335801146648312361841281104240282534960672956087055556812768022984917060144641433007097457431174804994868676343618449579644359777664931509731448351394095788722971328885871276654095297560226694457971288736745933191076339602144715499899725413317038202056143378752195723238010447846315738489935643059857798888957273287218199588807016492775041314158996394397428234162902487398290130957619452965182397502941047129037952842233399770929308692138261504385700796923349252303769338038057039589318668923385824961524189277711336098334380166377252340186664361090505747316205803768775369264959906747301800689644488237620404126253101524341081598166993895250346873949572146032344631533835395898526193038494056230726947645770102008859034912891729543059675324778998725509233812775891214447889033985216332957889148905486459594377191244969262989797468439944912681988503264530979488986901462300712820558540606077014719160339955933746890068376424833512547360804727388329326384587285521715895172844972173920332321995384386037466594663241448732385697163791609961642165928659389394266066428055711866314042686183126841820367008339571949769958088329613121741400649647405649797614360101886742829153523496688400913589545528871202535757391392712485449447555443001586776448842763643382132900517366578377184767262010487625608176830482075963176656641489257229673896614522936315561156268426485381130447078972568450142297997876089070867493767273078577084694663969570153157494899609915058159886476908905027100885829520580847741660165149238231595505838188744328451882701192589854990357649979638659936779101991490178356036455732556785471615853206694709445955278104743268215987284419894312904298369010565407442665078152435173774051757371667993322132512783579605720247604201871892692469677338334482182491556168356456810908003985270554640770352210314701656601963616521716058197936004500128844006941923875752943778278287388571513965429085890814637276158570968390055032325941766674726714789351283475571989004624182515219026867323845439385756834531062534104044100906516368581742734890082240871603906592749770785980103456326655336803083617229258482372135111854340850224464637043901572200539178695666217151003103890157556525862007768441749741894946046890486656598920427848350599194403195358498448509438562154238535493390697924744392585966635962170882516951454499888229953451526270698827296739570643698831502599433447834700570370276549970390428863900890861575262039521620964653148699723294027125603197533520426886088791880855916622309689100751065571761945040424175461220121442965772505007243410173046953569130307277411535981223067555609030217153489305726483759454147498600979347759618525505945906371341284372166155499063183687154060038004876051001447426990208339431567062016135250612535477905535569282381833267404561076802054965959280066627212536547806950938006573227031454327561449130201504718134022776495146797194083197454035422896954505134702547097232383452910424382452034524239733848011044101812145366939744353277372818763040329071161733303166901114413801669775119983146530117151159820559173907952617909157651171670251065769172005019172270716663150921257791322288788243827011325383472049908602793059125207037858268362371091827089625859316235572911450154098535043736536460689526822619132895984943798946103567940480311063679365405869513527165680016159817742470447426500274871171203152349606181931083824049956256838671511623632642566586401568843551278629380279877845783293570588860998625541566782007670423931418462160163739343939743212307635502551758501855516481262604795211296687913004374508806532057408503295998750318745484914350188866301352924338304081659096611323278435996949373126868650968110177735717921959767882306658811303702296629095688970376508962762192394323806333705801322335343072910006350447772683479377212864204529128466251306701706060674991362685262833164583398225041821132712848497761996370218175033466080395623984347994354102878422876974411983693376467732465945552446492207344266767957497733498570590703442143833910830976508046345229497697242230391796780961427008580526180008619723974296528187923616939681933352762547195967729053655320459794609466267578150383088324450341512222108223553495928383918596584784185542686838099361860652694037796581017222517543583866135457426242835084672578169780568595715303069461819409360584815718289903682618251279589816054796059730425223070526372679062849090185255629178276704832581768718463818495562625027151860350720445653666278338389147151208367733187912882437120829740790874894031458220627341164834327948866338260226534110112004639844107136772414279531179691750344848457245160385669885810522923063364788863429088447890347797595150911162291710576330386718051436986825561287999483305968270135667015169913032323752126815224501763826612370651785305248986936459223007571959407685108543270113995257587576882305765498972648355115004612161117182045489830340014545683525707511443365588087817906373569979661609682593118339617973215257567444824179688277050617881065413919934467265726222477844676044777766981322277544690180824592130761441852559403463680089442792199599835010729742142896878667813605911002457039459282185148671751591672662523543990834103135328196541791834684054237890652603022685710764354989960062047405025354165339569754230064601758831677393858399022955045602471095035115118020524983676680618801352424155113579886669064086294620600002081990984775421000022713378485203860553592485658581113762914410487513270597438278349787729762242567417627974044554723401465361337353084869682925570928340370166480559643438499765324582333471033476751058808926650597329182086985055147371169784868056943559395704415470561537317473021102995037970935971702889535480322627843098847535662120522519551183480098334016619772631816790595989797759675485800661752250037612505461359146400579601601518339590064279542206372229508276781353345910439142837271013288106909447565775485327056215785211588640441278709762412630912416973206703825993039997102768253321003016926711664196103734107977967082576704386538766335602831424246762388780974109163328038037801313295678371742423606925958059497330166676886032861563050827287539658765637366441637614337015251374918265745500721786815455424173023010903712793531734921292555058256532109201876462112795133351815834782175195870358313993125578321129243852508921790942282763722945876644451784259868828079645228581699335545604229681888333917572201009887693309526987339900905118428048462136820604540468077029622633431720939564302490230840679032237855877797631706170562083638702187442027145086534560882132579339314576820477684975938038416528835390782415965360438455665748903893629039941512782251719515644039301546848621258390327015095845950729565016750764762841076277959223664137839288646086596852872591742168232236974972748237352840415920203926193314802246602829867956150745760047402038900621172929142054123593023029489493408567907748295963305921290747602006680796887916320366559357129725698718510847724404767578812806856972693048688951027963575469882637008931572009087354969984618350481428973649922100575802742014894491850162352022981274040307325211701459441862550248718441265088192765587071870871118911840228293189973013443435235913049145213092691201806634565099212205879400067525995782579742998102095157187032875812579108178102747813818102388729701884941751336666872820225985068176206605270756046727146760809192259838803725719685507545728588447844319566825147760392033425446567826749529278556801598247385306972015553024848795117754800211671035197980116712697519024078669590607622805295370200296340095181628660147282352928796893449970865418282088194098615368157024623875911013122258708150541585802930935745902037101518409413079131854924316655955526732828131216303164963108242962401801859085399433324825955169876561457142990622775774735958535810676832010535949158123376265505462837929614760487436984930730571717625677469023227137096966453944918267858561208666567367962417922534316726315961675596235760791126401396606357513793185869023691959749574333468609518295343662541335416779898981622513632287483670513674293390197535541374685731692278512510963635403954158777828228881295267528473303607617238971861407798346772453190831734483353100119039990989070455890502296779749819980998122208003346715642311440011024533245432744880828738622362691081140727504635972407688636855290296734094638562474177763836246719686532767645581484534326038063591915660041606697551162880599249469266610106589845072345795724621402909226760716729586172446130933444276844592206665474471886989321190788427147601962056109638338270979576219019510103988518496267444238459681079622249722161770423014562510804475384193911607408270463549369942119452036716779534271043170793486909546203904194906604612624004733461746982120587792643228001089661654131238466278199241886021691158588716724108364696062560185344371350697414839278474897953640099160878011288028801282459626957280305660086110942317922143953535282018896155838772209239914547448952371451355703209425352486748384776113237930751279615072843782405454179017455926109304112181830067169864081400261381727021078982409845433830647233957347167499530306360264375474175986943221302593139678694453949542441929445252774168996823983958037994035683450419756650546686185937499151417323495614588536542863363601390100482473911383473646456030337498423873344199377720758540693348241987830814062629794697123447746102880282934954950568368820454672727545496957191701848991549029781112344038342256176534150047434336534375758990262703391249988458908906838352838733408716481642007781828429836833756251178399305387623318742736362024039546095255058686143032903080542644649777289161550672517840718003010609961155031114210116797734820793310441769726195999727892124648698261186907870370779124592098990025060374151696811929317214839353792117743690423874881461006079547446675726544170680097826632624260168069738170516171876677420660492807073782565379035252577746335653829203597064115814083123617443780456689022002127988626069587266932579786871224082061441266117426932268728350795793924313205308817812536563311899683607218364450416524859466358955549041888500699298781688895524836746154664239166044764216460636516434223032700215119026746383270460008822585907798419636925655239021473086923547365548466986806875249271920256066068376622650121433678036677723635799409451627695501295409338948532639114931771040435660999660417237380606732536017137825661439221838085180875004941308595653223215719436156813815586389336087053442496727580883744596203196883597053321751433093552238654486127291763199027029259830485970092139029011720337563746293064714945609358507452456996872835232632674738316857706786931392535146263749971587120262804195704184626241952102287257234262263319074666755161218626992083712599636004561389828346643772885840885938491042738634172998782720572523150394818114666418183766376962036637272638328001945717847051209846343535407322351416086707019914059294939153229815283405157113292006686349329248783382718949859114676584908529078472531554211415904357855615356649056506144615642383168268664754816435594431322596946731515925096998557480443311596766496746571497084473019516726856427429070946737534211892090563604834538289901870602609798472789671567436944237662900581344313149357076614596685681649349802088448957441305113024853494177850971474781348069669279918110364727463186731886714756567967945268990968044726405302574967713268548895525016475185206867256067923888219794005863768131981644266759457618771369162618285753662079937744325922434723720667730429140196153974556461907923145180152055474249717197537454037592451996145558510980144789063627443798371018082416119971623869792808925465880680871832243931470983366969972235890146214965429025089800866330573879615872901462325362789445240746606289442800952334760499183354024791379695388052258541839547565376577252020075235498661089330387285925326213332135211734683918953033614562178243918027176474442942989316999897692529645921089606251626275050364244177978945479883266376661826162891643929412226857616359886823064651673843514119398845711925329607516921876201256629914217459172108988736380784498953075898865053541309112718627938896048678061807500913460679960126463307509769988868931508943016662565626417846522118739331114935363881519158667591501700343072314628681400480648535808086340822381433029676982405956445410351093853314225397005744912265140293691819783221546756957113608298599921920503086378647577922179175620709798355058543956676193704493737414120612969993102153254522141465595599757465111094541813475041032044816349818416992688104309916528519724869716718760928738859489415412841166356252436090275642911738509478748308503862662346448926501937253399250907279635035317626766632806771872391733998379301699099077575387029179660138518517494202148844932267105695415495248710702830066546868034079162063644464384362387884528180860830687281706400471660090344024865719434137973668271933978072200178287366284872255685682418559491833262006202964360027717163293767790050608517608252797352983970243421002021164546406978958631689809670587752548645025783309433881199392140570252760027030309426630407671650752976348241104563042526606826903476994379279410376074366659024427478506315156958351732043103913825471607096047212861266197661455600343630173048076440669404579191399614985354023272064948455563265401587406414359520202291275271685137147774658834146722176833864098098709966488407514563838057042289466912831893401624297694665244034818053869422701135238806685630939204359068542137243447121802676868830973566862179866183663088378474394998002040179495328468039808641786039077221240384804327280079820799253831058770389635593711449111257557971049053839538390187692358071222738322821586407228301349890042682720112682278473961395419947620374126753794663649112369918775112132789725111273052860219443289743989442654072124902212427426683624068117658056170560427106279159804521545978924920159183747570259100479219480615534627798669044138082397838104645409724963347156424874163919578278675332594129212055645940560462982071378141611682742478432646034337886193579688838954393987993264619211996101117141173659123472501400337779665520403774762019611545156190747001476917277105839014948169934694895004525962910897010548503600433195468015561617063437724786627877709625684601680612498767693414871670672019431057518861322862027782788704181568577199043685479008933439019589982049914182069165069668838828927702342000813145880970084840141025834724242717196163822506593555334384011193667929131717607174529991475697565918242141738283851110595667207126741346154777576424698460426149535824108448636031190337236706357540699187015385571668805266829926125677360921844106779367192935040442893304531350665483301658226826655705977779287561214582946614317902638087575047555196612620333778744824332835918183684334110485153317001890749322135555288322950590428856251962824268220125466494147458584874899334413028594753138140712144764672266709975502414344343181166196498215703881047057519282869261458229140100156804765198712707332106688855400743566003477441935893539574058126587804016937338455356416187343958268056838894409185758992262351339382370440254123337966996932094746563645310704820310127756468332249541958432010822659313773806599309165793529273038489199416922441737234881023618925572127987764758431518355703777858671478669814925885547867980737846052956853586483877536581280638157471896934945893971063425356578165988520089858423234580629832356851048912830475242210981147844230123206277982865383247536516799294138221860928516207009594445561592294931898617803165859969966536896140352942641085873662411171182748474571274176330639930307440341713347504155551771390096659246995048379938990773839185964257836139824847540669148020279730357371445287015976308275394975786540537474956006617571939594901199198343440014329062847327929093652592327559026143162317779497926452277211436455513698978772664427306085464131027562573826576710496789044778130956275204890820861899578307254179419822373607067306370069382367177417810044858630362258907164001892105164601282487987745263277788689123707873637262448632134191058337368331165599694879168031182145089098711936580685827642257719966596039539516902298288892428223746020689031979986060150930281420767916791119589652300418127892003423176078327739242254989416102010757716114868534600397596447664102699092159165238433344046804836198353563955378803513883988439964477077366157908348948511545942830393933774224556979435674132130214683746923234732484770284752306394139084146429991531091403331605469547118760365505855993724383601059363538008557935769554320625506740316660411435887408865640899119963583641136486281401950832004622027661839385234659870229096439521713785282310673937655543414860150202702329660361429179963127661165711633884894290196549542770246840781225053543261262641865601382785563463732677808312591217198210524545805422069584380121153232343003205884659608983039638573278509609768677477874631748068484621013982287870209787787627665822661294447765583395103177389683965584379043722711808503363783301389189280705313883357398987979461430622347580654415083690084578776267370397083036428587821909079989573477983995263172506005961187492640542165058963343237928940755388511179342094611849910712418294545379617423111039263925309925569010326086565492105606357417798430374244995291022769291755776864470437350332612907821659068948206245224398715112479201588954894178235414038145082494634605332329284477502019541554273783634995092892808130815731962012889057014916742300603957542958826429732760723720854558796180484427893533911737243924820739634861207169523010028572650103200018373230747793502637663088004666169513414701511010581071361839787976382606831488556929475028321421008129357290694644986710328559652128260861743835940591759939452079777513669479330536386191186527319314475640427430374064761949606903347450834954131704319315910871446256902148452736701503430275362438323776205093234654064234600462741560668450395463881711960934183823192104252261697447077733498278727181335033441945038127377193446862955708834394639130454923978190409912934290946933636838905324129275016405263799595005182086085154234958195785877235706375970579774532934342721777275919696021131153706537659754787967135442707830992802104939747566950323950750930571548772092755655074017297389442124593188211254760694979761653235743054298963642464764383659532533155774304054588673888221957367517058244503288789723472063241148927052749038408899903899565581112034500031256761574387483444856326616550506984481080592402229263773329327258401138975165529950344441191295658229918348864849388511671808577171449040140835412019063148683167681785737968746626156030498114591979638016925228344730108712918729852289075247836418868569936291344998666445435711946672155692006502857553657610602926809572905978381616629152073976438758749155274715152577062515238433632112505144804254870728667911869120269673878370185003908720188748984323906155416558892172639200708933293540817681029975067401447224612808816812979633912417282796088907298184870024808593779456979697531389882766196488194014139112706524513770264732241128268177016597887979710318004499392319885514498236912636701369978038640803191541692063692953217429521328029868433871666179018745753548604113044269184275774217289858704470200274802648321688930812512580612747683699948519253655920536036668118056998507765970096011539343300087779142496799883001880430915719640294248686627120431867869453534036666655354811387015040921952572807275962349848050948081896812971498001089354284528648754352120967365073902192122432587306582781410638465298201859941292004244413273633479085821853050371848408583532136980043610159806002169693648472955715648624966218329651247939459922111805638793468950748815268026987673138480975424262077566857181218934534959287019297211913917664229375778974913667099717212125150253405532594635570284583394863884633449466222465992329639874959589224428687408854791280393654327182411469208605959639408603354064968014732773410440465553394079697356741267066440724344694734927183384933113745282822381008747104822620556738849714276989380345861476440345876033501813491192648478527613752165389662227626982659409536107325676117777730942815482884421885099027985370549524300489402341486544391052496795053699008444039799588611629949730385717872379714736697038559271553386855536588573710684518197470164967129834590469071068238678873560105711934550518797683348316107286950993446483320539663948271728453735846706025281182407281931360670227226991567864665528843367526731977676021849667212514391585634575658316993725017247267875836780161891938635592290952699494183796941000741180973898345068559660738199146658114030983161006666084697127609459057382330643469229572247521330193221024252102416708864344169945677256453122084549973023691301566756498517446659977983888542223877212914040817804398677610914382354270136234111645412004985945190882405000095239375223016830910224551856161496633486199411458022658112971678336207988437263657716041489710677096403011329828163920014301842543503236016300395618706312127004852140743190339493702744845532083930917369519749311875210041126363830575545425812656240712350911265187953301272877363789509765579492763475464238202254423162522515632666197217120964007625826740651376844572592298827334397717179947154412729003201384241407755438508645535435882561700567937809325364886256566873187555403043963881969142241234697365739086014464639107331725970011360663728926611482319599323904542364185045412983001824242761436439742602999098006289810591389859926090639537328465608257108301401194850783030804089546027532866969931781120519408776942685980752713973419358944016477597872568019989009174688209872390488179793079211942248603831103703484616859956427546816168512245343945349189057907917372222219507343378570229386212046451058148064873806798034302851780333107486148684240082238804253832349909163688342682290034868800512205746898186345591895787159076133047259321487845551673972552763734356447642003419244807663377930738202356422933072815003484712574702328978249197641342248328630318514504676494311846920311471805879878912698203751686112539245735054380115247671663951859213401347545628971993106531317212119568208646124500365661975736909382449475292763055412781482008610106211245856295009528011161863887658846495600838197425418750494700473269886421195167775363263402408798850108561173095622257458713722801562657809888826058584719086154442150615150898445780611195700880560448247077954947199856826293265890508816393338617388472325995918804553557311024839524188194411127236902580303157896424675718648862622135712299789945216798228432567265077743236536993406864031216711123642812042052123722470534389692685126122969979963214193163013581094840904175436773804939880053035581192284111031639261481716497295129604294148016616699895153335015726425590416323678858539007154065847544807095471159100246175477665807229309941068500908836975921474819456889980689960484624158589756178542157245291722219648275736074783887429473950631057223470848567074984219492442749792961418347328320807714542074304747344294994094731668487710310514777718771166745490909147571979008011902115471535212025912102705759358706853275786933700477534935100660388469693911815457991836130150192237697780012170694047634178613538858521602689393979333966205599210363497496574807807153537421771181126800815446184018819931988164814633392467202703744168846289782850567792523567471958157704630235143440959784868864061246111621696342561291294384293335497605705105874523882490861178899276830490863946181439480403859942407185679213736040314982679484590612979238218278768784040012594232996246371655266498982088411435743308261871054669181193408630240909343547499585102096637378874570633544420263608189878952909723916304448576597525747117202619573223552840508559637756372922931950935431568366394387525729434884494531470655137312475412139091554538781172222439100322554058464719977805586869392892716653018316598812868112163374690796562590684300066626687772179781154497533178108473761547933180619307838240501003657568120882071382617742507472928283642016278975796666257394704738766205474277339951656872895660338383075873306929925250817605726340621362129388809869061317479859230238505127063502742643927666299814276154936213751753416547084540089502720381527062405118465029831495073920134440441932514544913275559781644614227007242804199518026148466751624797079182943527574706515871598987122096051300917696521613194374250856277262102986160987737942564239358215476270565334837139637957708601109952130309828390181753476069243279721036522369053244030874665377941606786965154584278571433205238020930430188638194313503581183080029561505311527586405171153503082549382793326590681427614758445452678399173625579025076877335199817166737706023431382653033851539703309866202860263788988599209655850982911684735095541641836124994292562451304451400982295100012746327924507764310724098829279492253226198988190568228886737749340286326286967917738339505354331690148969485088679163647040826182240498414480470138295671660135584747361055703940378695589647452452727591585948130540411750034861254036285588476214976395996875031317647469287259677185377354961910979342702089072878646175743466796265452041332600925448164700512441542846936105370384839520075458591025266539530400236847954394478032650622880756627789000379320113624358039521384585961250345576035435255680579023204787046911259659597066156457082028720811253065450546032690768173273425923011398192459688983929921669382614849778682814066911976459464598352849325105111326773548657233792718139857130181537883757781505912231727511869160378690705893531176299192542573546655736256266291838291896543773851438192584655863295252535353452213815971685893518478107551213925473935922457751989967548742085353451976236603409835537573732355497071202388409577041593187921073910702119206824627534562960462606083830536306166293096885419243242688620155824003825820271919590813613767300358990263164406831350409474010667334242498346375772602370414741923630837258368953095864039576373710600544344690473446157153563713026436921484872185982822878653607321883842501943319535235335960069624067679579897275292785345783794143329390252932534121614601221241799087133287438718828794151845141676232902005879254625016664908571608683787834092046707091861693559352427653193364227981972027310346805802854962489830424484104543579652429508584834692848622669674908057698809315449618333433882976073201805196828457857435084570723414029842726009928821337261547893715200385164382338541306890198706209000293764561648004085901973403323882404798505482519879775621482941169767607318117212936738261869275700877862962280779313803167840955222471904572150279491635913543665613162252570893822227381919369621137147448215183572024832440280658350140986723038293472947104646523207417478224065410759746458884803784160431770462544018104464106005603803997155301763816482316564932800303881612328109806731087425629750383336734002309611488768132353123968925231290463237330210077956172456721390927440530549749090118209082789372098481643148446429940501364823144630543714227481211983581902292583884007395917294278041847888333092083476234839892540874947744174829637745412643252618860710059532931396165305528025980729172387047899416814053541049009740954038154648593712116653514865175463511040598955317526854924266968635833780211796726019530792539474962183636898282499245599839808272922361008622924850248225899928498813571739364731216023784881302516611802029666765798797519783684811183225615280779550318652826058890871826015187017023636349718316047732683703433086886158207976734892455587218495106714183112290102785817017214899501742312966481623231505276478351202347016029483964840866274637027937863625339448868278691104099324172734743650655525531417534398513117370962254014562611364369695047700055530148957306068030982457519159038353850364205274333740604285628313788160929879429740458152259596385550089897538213841666378919754414241010410313899294313224411457056398477062495083755759574908348137357377705237260791590097139560415542258596244141022233826398406987085774334058018931331470369372442512748966795334389502572592596466427469070494920081823657466514344424472784584430375335647092408666521913699016535340579361545450252091910253442870850835602275847883363361028193092784450770565835283374136062296725810642888994942698708431287312623355898213953246392101983096670915479909027290289485927605760548408405215722692394276687751948075924936713925272274023026912234833889504386796299190539756911236932024183378508893711582918731608112376985742925414914278859733625509588463137048122846889673219436517923163901659735535714023042103950910889480951092376678798157429108398161683276943527257605434873315756531701532288339962283167141372569894251333644924131728379931175622763092592016883766349265423970377880410339194787761741462639498196259565163782560819831330356627025469677263360145684277016497057425716788840060901679202481277320166765105932913542327415707180281529211463543289914911871082979081941606935580634761174445829637638535954726936317808342842139321518226008688238887122146372136406833606474241720659679855840781554961119724663686885833319606973312589315481281840790071466529548383942116326521744777645910715341372234209247935632888326832464202140119179484108143699351097535000479501624401103226703911436269029995894573246180695190757419962846781058588034805325238856420198132822451749641643014183914129370090893377365170365411699152434381939115944073665718951306445869930622184076732259736098663921914287692040445136013027693152369899135444481412556449084531012749816766345704833890068455962990611962270132177537446075039982416738561398233176085729492398934080554357983728329735096838496253452655059409695059488540061910570313173196274213547369925796551028569582256151392354395943420405987893021321831593158038181382825262469873090847845010954445170356402282895053909909252795556504249634124704507164947221398724363407214158580015422683274240286192242710269065964082647021633351540635871822168602843172433770589270787546778761230685427036007839053256336634272989500968804342923128129235543844160609597592479838770539085428555563654529487744366857413236923965455745950229288107229028293264387952681485566929466336132233517773236435456213301340454959902222185621711285318952260169647108524466590594674469248617880723796166683414101124379319562832880146472585487284714219741636343005856972765774935206403958442129794294087649118659996617995885641947941278789146927111352527413552479414767590846503627398566175107838797787577820434578574912151346837805283566961514332961054101745610690837851946268972636749190078200370134113540912559982241771098601157824978513459755669079745887272059006790268676022659758309995497119010874951486329209338755738082331943709926846274183713821845704526608166170967930289999173308744050784912439297746440544092952486591930527697518534771599074683818921334017636718118465314014569310452769779707279273356068286084819025241437471171325796809228308218793073094473791956564276223125775312697405958801265111514621579364659061715835049910663546168250320855228033129609144926464320341874362055145111422432581515452657898488207212084746031830076405244707777928619859869137590112635693048223517816095181628353263834466618252820083211735981318882884881276747939989704408939927074919271572970503500158907232268679631391704501930248854681112759127819030090424989650558401394239272577930139166996287651988879042828322470757715080432434670727063787657427183148976846431367362313456567961138730583102373521199677982170678777054990370851739144966691639902579649489533057359125009172646456184269660964158092533414491372465293302244128350112984826277490163760980200116159427328434236729710360096645404260574491037889864166841439550046733314285647679705089443757409545300719061935656775827088557640120359986874791680913293511172110327765715155366627077964904489555350536295037112456975785292638042360983545910306333654797798633784230075213678263866979839152417686375235829978649992083631754645395368158346934546080872913834445637304541512975188089918904130653948095530837113816582132517640460934616550012698023692581991579747646467342653276171582701423512974701564738702955353559000566012763288673973785695561895185696929502856754032264115784833829725666920859773187841658999468976240324000077781385478981461401251082554131423308763164351548048462400535550921190192895145466932059806302125654277308390713929260064875553755338544083067283992437143677150584692511526337946088833708778661174279429935206638310536988000218620989887583702582828289984053861761509670668458200671044554142592246456820911584118293148255070248040753403631659369304284115915566853686143436580928757377806716247874679810354283581487594181609993929858621382411106324412104802932074999473035460960984706838187021366709920327310154777638745542406695383319259599055085798667819847081265117360077183554238442884899811850708396825716811996118897873101484866004159634767583259503021644832858328158759161806809489695546077351359513400603064242036252390281711981210690382350907461513632879334959649015977667546630519298100954696971627633361026374394294729250575133529904945545696724058618515580214511214485152931235935045549069836467046542431661885543371409296150365423227259348143861506689689111192479488245499003775374152671769391306259993506981164846116885679376086836663200705956451386594244654221690399775033128983783276082822671502814078450967613613768344980854414814761827425868502816927933224788044899623594305577030008177859198788792814478296422831643867752216023863220756688218231665535078045157740393001320127781291096291582539050519016301403669021114925356449116330885666778077922617795615649540940041029567002418777400571881319994193661204812391424975538704466526789075787781542647806889305911800472327979733613806663499462853337101450929384576101843663920420149516239027875797334698767668303454326081935077819164278029111281544561321614673912344811951899201666387703964687838388625261294013632430475753706901822547820691807866850559386904590368685609436431087279770013557330987313345480888761920066343881351537916850553137008255435941880040052315117645183557544248310905316939517647607521553418940227814169692301932445572434895508526719989876792091669686797132417801151429169288900722006189824268230144396438789851491521230749663151302373480234807572604163669026026550794840298174178810442613654185117807097993039343808537844962074551912814695314759588053664348353951388772673184862752657777996765910773377810892341984432644458344566414149201511732685759280759643756991712503341037360431319110310756121638234151890204222105080980980441813531060045071882881110176806886246452139040348435566366006849366620617506084008423754787737758553567721484366960203403093315060427657260128849318345799180346152866836634494887063522802607815226808159779396277735463224731128597741028888213825837100276889489854782611039274771427785930811253177768139750902764668897914782340456899993972249618767355890553373844443059658867959719631502233539297225850386742531622935224572831830418587334320417387965567832976885353994326334920702125563106948058592105476592456647366519561428693953261095561792582262225563953466062717407597248529285532759202833300418492672006624547268209864599401579405710020025264950208508576766314666361717822118995296658811899651458292201363744019907080030614266544739448378109287743045663469960376520779810303734595806338514597673817848794691072752532585190693434190625226110547152870214116867168078170329314990715115135880553560018065038466401949227942073257185105315260102184419934190703005965513486844464724986390119274781764960593676464014180572097262782155168323223273961847471547661737501890746893760309037210594705559826092895584876215293499254123597135560626204299933278004122746884184268663272973179238412169720235719214987822610457424289334792620135266159838318854780293779244056434016921088865990459857465175512072759393330168001992530298007696182106057643814911194082268829683195552920330294617178338622597963690908599854415515639507501132008005222924266651630568873663815186863570997341558671909303840554403234871024884608240159544058629328960582175722640915224023225713172825433597543906288880537952081352278387548015092599933604065925057042452308657030254013088143817568411181806354961147745609149276035595270385973082037383289830971450741081024201598573120252260253322384142307740688297475306445928403598346439469104920084762381114303230151883220166596678646443350219380812722590754301604958266516278882316476514409124532894053174495143035937178647932751667625159420797502627249121361814136666275741251268437918911635567086387079772464809488496029127623752878112275543605938150493641159075356086191778613049525966326490120185659793553117565330145828135450996477983162215135359311514245667288373215025287237371027148990272452732224233767263117712562114605876583802922136365379196657734898939197250216526299630304629415380378061134282858434875662539579553201001545205926640148023609896316328940235732229657723711121709783948141829076664637263411590407450872457554092845142642528799250636393127589626395159958015800809090005800322054001796471156757894255479860639792004645483597665933166416934234627546118460793062324428890330582664035789550346782420447321401742869365866448789598540912803555662410946338659150976658242082070016079549143544216782808742237583968205853411595688976224993696421795684090376477830663208625906402555926706733271145001858106231859732364362121055920911569358809915045716019061762474696416947686036321041048612596851157090278084159805608514957278089851066146073221583017424556281310140821373043200561657019796964883585044789696071911222773074569986655936866507825203514251682679624162397532060099664200996440248793843405110570831117837040690443023944312967630474254786564392259391796461611593548859575997923112000408729565995317222585757609217596419380086888013168920800805802907449317825077729829510655294489469329099161599193649948279311177141360039357608868250932428755218545197818158915125725069961619216672125497175229798157268692073920612182948643869037274718708722047511437676604249348773083399812365849481024670413929675806630328340957904942638134514366533168636618159332689843151303204848849369889281795477519017863619736585749433562092681891403128019089366942419717677257285056731392955467113419683565240647965922772254824359405499940992514270112469542137753683690141933307701245129720827066884347922860069771793255014786154698238850143728161571394925264699787612662366759496047645355892071041404916720532423011990103428445060544275041774042096776604695564733043739187319825456700554170293929573455002959081537377922666736106954468680908595944141329604918949551698337073985382684469300455735071398843896763836535060951831155175094017120707808645190096701569114997320450194435491766868847739073409358948460899741387446584422960824104761987748802692134142396247009836217748811536802768279714947157762397307746326785488728195528951396517919044487409174884934630025183334325444131641107232878653206563985500888199834796882388128083230333277602228609721092984956993530812824220233244733610277706744455904599619387595763285518244118026293045512817159833921907335604342678517530094131266714639542062590084869414333788015022868868995020485450794757667559898736323572125764217473695134868431412408557539219438783305643501083576963742154295487099743699940890532787185496712649251994292999273735626543340087239302357049141607951389213790648390575471254255244884156824976526950286912324979896439480826745635188109739172448689149417289070503772399947298015142267760753960225457917762344805761707271872786518610939332203881899240535286921167086834301569453964311666603605883029486674000782853037126995943664032465645696945220393827994119466554567127025491055343673583150210020223782567507693769208638152857417217853231936503693674204761777593992298976847996924858923602090205809772092167223134739362161909985783093830430049728595199644856082926036380733379027506360786942270222378311387356994969562731920411643882886869911664318188325120785968027152149357347004738962464464727703592743138044844672134607689887838178638039321529447979688336196425489337240690923248652017042980501768539939562054038586009211323631867138892428158918825430206664364224542117487764239886020169146352153493780929922464866928785539940298725725107289432280862497989883762311967794341987484798932514758773356309494447930123082959369243170320521543651676795309720674253799172918357824517588115465456156925159815199441516124025697059026392796613774312214666810797068604118927891253082044287265934952686784459526750161205950251813628771965148471775986698198375430780343419168427246662306966262280518815664950650736342222457818773409570126914305661525066931218313701824170622853085590005124325919266349477046509193589077706418735970861417432990802571151458084125416257244527158024755565847345300617831481553445900475675441861560133409722828309884140141165206589822705141027868998205817925133891765449189105346213651560896000335625380686017981957200828948026849242881673990693842502232191997665867759204356060044176653896106287585700549633855116593800007509663566005792502359908424826188350117962445699656668581144678420157901408136436910568924309340901966368851431726552145973916469350048830452160932119829621236569310224424867966355746957004886729675672670880171696533328379123113026188952557989675604480095834339163695235088710745366798230619855495215405838508681112637899522810188008176221270924364581674345877707407498607620063423482768774745570588610203660297895088620388974748879373704708435834021332347816307315495616529867235301430086740278525214276038265898817849613433871399208064637063827181007676774031521216170451263129308857174203222024349538083652235244677492898891024587963843139148668906285474429769205300336656085973248462869447028892046152352282104390831646121881266100337558322524696323754309877653063246661010887902017346576845313543203630692438427282727430394823169677207200073190283644876370653900361610402631665300571469383039921380587801245105349108884013531584679834137190024490198960144817839921663814278507606122820052871648733762043936712997939554763136564454337696692425087274581984265617148947111558194914790003132839060723808020964150796181340164987851228491715962968483907355557645648119332751002030695346096592232113529353673719517611976796707580501451569979857568293939914243491186331144482345249454983613412054152663774858621662359249529145024855267886391551139369325847438607136663755730275252753244006962908145000819364390609242993798656977912809122063696712168289966940041998222851217948605835165414457646296282037336816372795845363130560661043884676172406118908198365940078765030279935669351687572151540995426672035945539730724370677102278725427330851701186049494344737362880488416774023588039265956028990363442369243097347965466407087170317327731165007534957223870446355063471174296400924854290517114880940046590556399276626128125949576643818238175371928445767908575743437757947122880889781080916913963790576840904729986564361996223645418005523083104955137219900410006816842346246662877863784991889681984837367776137407810100672626885673525653384456501370045800297677819380335571929658016545952405498214473338099048775316184766002376657460509749069416884468773714101681672406463021708680981328836393448523530959213351612550144125053510075211786102833714635673512061555198727917974251459446907084961541573588770614352592082682758374287623482239503907576187673368493903957335222872116477604028835660386981322773154918853765553606471402951928891059493799963889715768879120620214750700943606807594260521092669127700015494795763862082853201943021793860824596716419481289327295236162490945408311151312899820311434211629428165133329338449678235622038994638810772165182605295983421728706473810903817329966558615818958048236407084820593524588534940087575673768084137569483228802495353120828642132894210566353311804597581465108019448436189066960252550493547896975610815071899278360287448592895085174296709001941651339645626544730438101654826034690027113942939245072853170783078324143323452007160594496748056275102865248504865965548216745775185542381116568986505426066452609321375720118642130505506054708399605340009139318221793283910943880560614964185660658835083822839373255417769812939019731332704034605566172132039155788971642494892225599042950683207810349744008529839432748196606151118106181194088600249530600049866149092005456429475426449343734304166964118942454319036347896601719209827642698219024266134203142051954354201056434620434587775988615904587331208058465316060574141170068767752604985293886131603468008705692479191278974043522313882688193031922185020579882840541101297699756384437533080805492399937750493251022731861837874997486151280202289417572446128877298343680129827954271199845291886013454893871019742955837192653790496451323621943786057621291086919606817383289538098394027679556017881072016568364112024290344286938050279007819762351916851909774706839249245853435874283553225340907439840994152565908006809275980474273681032382428728963201007481882171480088568156861506517050564673378742006719791169103408673548826013018663142623878329149276286334497919462130695109941587902252362750232824949374205464785292179974875676364323037495828733537860663895821565119660121040551483209740022579898144711700880425183706420902665789573394128660288682407927496038657437743758958984776238704912961308613748269713377534051348164439165864210204147350647372020640198021654408351902680820280676209634085654025979135697135751107038091846002480839497314556134355374600415418462317074021431059856234584487075101798834830898624930956914377847865564417187506717107362887543621746984953439318332296731777470156476142670085553097601398786471345998146831075471084450525137118719274800697614783795376438308095433538194853497372220961143564939279718157302849664739625892006949773279356186230046870556551488962644840434395860540490321644555712904980878155579513519819831569673842310555636859440928297346184097474977718539250926633052825294717991100215574076478555353623691257804135008081112245611352328154665740584468525164167388206517828605748894117917498970422652080544011650583884223072539859203997170050309813339102548434806814039158471871113725730567511396958902903762533636812060050521263501361808791304575384070200660797593734776129033140886531301638489073144181447798437694894214947370329031630627594834853132919097454300824669810282612403127480192861300094643319446427679515081165711124596532604870367864365929012557683396862071755758685963091282617971663830179968118516774916264875758542006420004040193265434441820334981462742364401410075875246330995554145024385768809427506400588731392478443316047197348225918674012590616723752456081926897554155370402216894750294917509245050342122324787597447071545153127498504934147238577224037841265748795564278561718678979356389108928184481567011031934555545038329033224798666062470179101567576749449172153938986742597939012333664756729777781722200318913518349061901319812933792972981584285079930108603149156444629212239913210673986399947917719470876376033925809814279663291621893869760477632926107297644268450711967977233594646508709161401779879450234692986666426657838452480054790571964894429061063735273258342273652676921666307573715521032130802279552694213715306039695536354762949024234137292035844409866250813735763681757878537399291060512328492275540286962969905098515902777055305962229632810658941697170919260519633772000642579111404494246370027401086846174763975663547768445023042798829116901812954866004088477008714012939672693096552224965793744401209058692872023509740957004396172770244340789770293532301130221197662654256928515155150066467095847864973144451572878133366371914317010397810294285095924901649597209910356874026413663830544543020245527020129997684495785414638498189966427841937201697374203763114973334495982282350903641242770702621682772146271238996950626978697785437611350177293454525691879534804603226124263985613154707048936362557437013159607349096085448998297044533640639642943740289295513944149122393976369951979093825276237182572180164695845929536996133217651496925195474030995215652502362328965305811593546383987449128917811812032985214796812657305998739128440118809243311378542481549583873389811386179099910721887596054288407296751678807934563048287465308022982937221706669900496161474388226384156761112364513753456615214957485566407368794727052705724289187005049616633468441100800757087189234162957060979196143373264171732749899887569384271456130742344022994377743239421560517597339957694767669428214582042529058077815791590692777181622962015616315722531013757662012119982048940041217669460413111567751656111590478334792055004364536357711109700836408956132448013863504494865403447554796039486344026456113216422310335258471137188993393355505241280047635975177647707833095762448141082068348591956553218666172696818779155640880569574866986507025899281563351488793059807397668824347457181030847257058558521990942900166189967500951568328201293301039184123472989107984723349167702816832046639689381277415333866447049363392095337348301959986161055502500491136141526529051065492106916317895379592940893562197514805094210613606442836867798200572656076925741649185553172289565771452653828812278406845045281172256236246248763520551951327424692557495318255605516837496304309932111022944763840044589342608043795143552336519561924076330988164036397445761160310953344044287942666598684451360918277990670850707466555961764890140699088347416123546839646485348029455418411046210715915393490049521288633400974098972478351481992136763050107214780410902694362664478582500336185625969106354441730576413604923409734390489370835505340878351302131418259284482544102397027908034082704571998061547632738912239230725641787176824372301214688847596186909701703334193285218732082119381568338620136388623030830501989152710042527602728808333967615569501923460355095426978709531609154545489253188931011656703472439996063453081631519996404766210065111180433571521531174491313308280668559148381011491186084980754767581245964060522404306153871541388948281630079405667298494470189866892997829628519551126212629356386809312362524360668157783221214346557970790631121913188426191434113331693297280284864278977513270755283364095705617784108641901013721007165961791129760983586182412576698261543023786269508384574486686763869018164690465306501648753344503986629342359443230536070993343203359416138425385591984347771272870383960537203465057281197086739617726852127768043757897975773445352693949253806060518823860625273705605514226287723953686366909208254302003073296438436671757381871729794656187161368235468931113060469688178839000514347777639200547701811349597820614225527026685073733062143743852390308716450917786016526873942290357612535760359211728738686285912110704608452430572237931446860658355933996187760886749104344120349007264201217034182479819832735981558843255490417716190538553377832484383508734860981208809516671955955461005007971951773043924659347310757223281208997435971791976348403860487617380066512424961245896992595541972409285565319933309645492198942960579546965541755035941632297928295362105380768394071380812309414405674071876530761884446604494500672339950685389892957893472572237023513290909686787746910884847919160899936146334894776326430062330010316577355445535129906487238823193581036423107204841397104750964676809626519206916116368922885829748034888301860360328835790433141265405776340531154084546431058340159044016083646737583963988580914984225608305558967929515516498221477962461561497605331984840064901005663951242825541414626117375433422855373238367561349934709354255802994529520982221439745717239753070097952263334477548012416213131606428165152249660400557564562703416285453997380256578983082412562375624687749867730400532188462126109237078859011494475900182997967024770027283313000412842349980744871027135195554371635018144188389315600039347130809551755382085989492260091822056836911748686831886520869914916265450610486609787765863140695711704457591694461188284651080518934073855056144350390049238750782031988884777598528037222279755267168061465465127692703439838587791327710566541600899425434646606566398894093536181579052909428001719115301736450575729321806697018816599995491897175334094338583714588114410074358265989394717069919350307178730445284190050979888977053929930396934942946140617422209400468766394011425759295168087501463455579357153026701421205163062334106016507312269977641283667270382782717570154368362022742143955435403016811363788938489479193514303759114601491749368202630377456905834382402227692515499330461323658518762583968911272700731293988710721059462320850354035714399130574250731711466803747929064626677632711472884783080658538498921021439019398992218185835173678039783731056132627577749675894781599091809467136455077249441974758447425296353007427594038243506805604607221197853083604800242501201140707425187119825726555558553786231791516934768968993397530716292028055998835915274774837720847637268775778204069599232530517363866200810570033966467472423750926396001318622076953543680890516435402950465028850571382905866435012416562388188330427276065748215858858018873727631767540363946633564303722929410277672747133654074507277038485549870676393641395386161307381527435371703966877706443922661832937774205944521941577101613792261548931344033163268446170536443958700592464943911558825399176836864891256798561384891571150589465454049855935609855048522587700329879882109798775589645828159170753708370427553808072007958738618959247606084672130284740622666810602888079830871551595079287869765589666959344494048519398813520387564175222346958831837070185790718923603399277471366341170533453326779858381700743359873542096414385699045615254362494806119448648710563942541719074359975571409522217775792868751233844151806885976927147304548200998892444470844919037308385125036909941965119655918099458112561795518143236098051505885061728483495664928475863790583418017586371717799443031047617359361379686577798222094152483490650761749917589822106372358943442849601515166410888296040541338889574559751907549270747249870230420444918406110067871857202668799350470792551382714446217878854061573056926981916876196721079329869598402416417289533881073310216010575846219639839965753392077137890028519079691824726524476989416377999123085805881080303526678400465049321479902245877348814702166465432633329694524377089004075398892273251935766181525851091462793723878309997314754320942523116802634727700377088200343807219786957322487744471089757391732759857966466368323587387443462117691159282190498516151443569276103181297525094434397634828952707087080795213066526791126057366854618569062971774771807131746377645489210997413063417586956382028962561453930605500430519740709231668187182190386348967262213615839614613684384215311061974367171450774545486380136912590089915203733691770656734144325409040802153028632879725281127224639960031447337144658530899928858981247597743822636328441928184413478393490472787713531816351837410672448020295516624459276540176332617544597167096704946335946380122678966956153842996666156594805840396197146037491076032368708127110303526426660522729509012835135123948934983742984094856593540598540482609244957771539086849671984764719681403713143798796160509751112849732833186071348722188645225463314285520356917154311661665217189768514674996818605237906262540983241075413253901462562784708215206775545917983049260963178287815919826996045928583579946084720884134284860908633121568814133311563792343514804927424909241208675324681793985203978818058335927927014488540545938948273725658387656170256895066405935791411576831781496997155047343629596515846890162901973568605669367162076075102512074470780032223064635320107071990936285320689425696548234950854249710061963045503846118252129560022291589451302189560981871503219757284346114763028564958112690747046498936627285578243439481642055024351709476526495361239704574119069217261948553206529432275250419249557866400629405614513555118820846530220309868244770088966837808523143095721027322146653856428116061094592754787585248385167198021227533898254586256635461563624781655998258418225913220957341937912050939152639542457861279045385892277513344880398116904720544239224074695557973694776677507965699469043726578777240677544835486548780804615030276094619946842090183563092197214428732791901389646423998958794237675780207817808730389766875716322907266076989438150577024935850708957528772395263809407959046393422191878142105889952811257990949800191181087464473501376777840917295891174757740949794409357889641595724619152289284882110225598933111561423428467664903857792887727322450793654460912437604188170931620153607634233387298442898581728332189234100243601125334530312914049377985810032484087970470274670488005263010412064375982694717072999118284580048545784510757154174790308458611810972953548291511567273064987052310617324699174364737487092041892349008825539366764413727667250418685977342337604261872063882975536485541745056722005267478974870254841714302372836090158413761159198917179169721170951941159782763591434978669351898537406445561224824008123189950787050424172528346218677866716886880581802128865355664211783331629407289819732678770801095067189150825438276699959320992998557955946076466772101048687767615538019243543932992728512161193412087082499390677168594958835863728548705265082594008236628009926145459108306086106307561439766590857117814215430823289547044817320793694588865951062121014975225448630983129087390507075961591624919709930910986864570998808194386379480643899344470035288314512240463872638127744118335747590811382357386692285135010178281972645420766643229426212174556838408905545375741286987389669706116448541313186794548206949736477921536842746421174112990703867210339111826116077241605587259689860809440869619938436473459789719055101422870886946409558049835634699045532231116335627305554362661493956424226781225212475386765380498439121348017307988929335319704992818222729429477120974004552013300034482750463876231433672073501542527526287677712119745154701373073090338469958531935973075745843075728873878625868192581310165274120365777905758661069473975713493856569078380165442829377530761174641386043768284831903578603610090662980986093387130814747096924875145361802733202118873292198762211904550749632905943511936129824687367047270849892859896817252663678855204899594104567401717230309040944928799512383435097601659832500267380500230259108558110015402258535652016149069475499435765802083908995115176080207787363089310767440633139521014434302116560328256971278859293298612248147884261004194477053870497451643660475392343350742989336877358051694608684760794303959473540218703497198445055370353408189566623963622681435918569712264087979762900081226172849637675763952347798989518588323226591635389922881172442267577707664261604208385051564511964481257410043819854547982967071270026084427020770714382862779252873827081785422403456208197612209946600801047424886676148451829005818619568037506493453238021758494608165628364990342236134679527102061644161096844774699101682026132241202857839393416794964482407646042174014782125917575105800653239693321782584516598298910704112068979797692848250205483210606242998867549402737069113152074332149255518415106927482877225228585821286749605323173537412515378706501851109220170271346974812003694775303279615101354104199747243606485214709287595620144527373320593164894103166844492225613126257255930697578641548937776916793853621587232061193057422965360988967247343708349520237830941394230045825056620930292193590330141585966788974353282149924470442231021740385772027439255630010458850399133650446139160443779812630157233223414246892091468450676761138063634868219333822014585998913847245072498628275849209292223828324059399080302220789987975546168449454824303821201409014530549291221688307747009142263299100245388070811961497993076029488304604092743777742898905641399879632902269666659805898258307841364405066781787862680846547633461693806904777442246478964992296407468421510921223297236731059629037688041873130665778291123506868773748292363559908833648499955995413902338556965723853052281370819821322688554025516084099610692303497511054667064753095342784683018048479311078984623123138274049334039497114419952210525094061799699941116804419203616095783811842881370685662504631062348442916542654979782161643864980414752850422861179147612089898990826159505560372353945200112369621066513919131033342403972708875751192566459501886150804590881284333698129342627327652861402472462662239925868627725836736186782768134788730167453062812989164374001438911699520424451832872134772106637594429680574398639833155976881108911238887335194274978583049583758051286964512504963759789225975324335092344532452745295002784154906778336733900976743804763360136271573852251762624361673998116336347177629106413555107335851220917316665932152939036353604964133580623159314582470113502573285494734709753025608200017407514623053286912669095411750677271438273374479693985437287687052495611099518465821436922359296931817910253025706377302133906204650658319172046536177864016386622575453171562836070363932947576279314861664943399341248476691709451868582304015184874177642710545646008460012583571806391549370178380874014357756322253041357607462409608668333313974444218639372534783870309147117684376254678365869868478085504427755418424634546312536819606691580335332614371563037683926990103025501511285656467717390120876625870840448879368648742091419094430066249807302908585353202589639104975279003165255547544277347668518719653582157125422472205201248730899601017465028069561897104278663911407256838525018916870084766440009044728912725463194783919034815172370127528188724611529322520088229522469306232291868792247057363556484329173599830972950660774803504693026378603192526321958810131468543754179932394918620804695041900185418099584495395888070927463630233497202876026737577188639285023012295777734818811426943998935319018006670821021237863043009929173565511402952551994258533220587882179117228046112017019304786187351580632467058547055592847869036782102949122999813280015443075565662716963711085497897323857980547928859170289023831126252811341962714422875080381116450920988077049495592124957323673643294269863488216718418302661203984254556251545499108671334419262574769213574212819331630247441260208107581396404893395890069474626126916605638675055678438379230716291349132812165928718030385652272132590014947693521599414760157452650784781826116703317542994273751807893175511707645594621519188279024777420902664865927327352670666096205408323194241427319561860422229657635202510619517369515537366119749526235265887799733809867987115157476138883924903415757620595373926299774875188462461498548894181056108671261989438459122465087882238182742112732524394904251654648139129504811791192299649622845886128409705360591417779693154661113002953219834470362025688542594639860584348695427144618757762842090391513959596827484663447324007774284754331268489833029325478776567370413446885572331792898506215993140924125348482007433220317562904767217414532712638772719896197762863925140378096365498436807877845274379021406114872000432138477181267804659353932220801529335867554015152496683152342863196506938991284820059239173797366776056986742290990446600669631347517370348357855975647844005983121559268965185292616575210189021556824433965123530691164505358131245237267718044936421662577268881415954937760554518376619697334368209690531325136483094143626223044704947431106228139474221226226694950319694128956882711231852991795925377291742135826263586654104028227385036876324072825950926298319064656252664463094165326644176774732234515444241688334146481468691030274555750667924218093890922102677489728012454365235495829901830760768643367597727543343863269165987862346434656563825086495641755707044333010836193991950004517685615508972427128052362279780949368530090371307519762218597394820482362827673606658550700282464756577222666383605771559172271471396891768306819478107335775267483383627667031707941921281354858667072658155307892611978965112672285595116450953932418155513236819719006770693490310488589033312396092919040168436732532795666742107453737603936847053223624804677925991768934137161299352820384256320024706145427342641145687885553321507841006199676134364350348729820532381068869727723787264697513066781163200196044380684845383035559561549482228441357290760330902388368921115540661309712644769077526631464354164636276823195264595693874297059683467567790170771251960526182586137153204112182970237637643708694630219727473140820171717376058904779363635329900934717818296150176319002213170985747547025724280736405118695904027713909958470695598979383220860231852518285367402820724342795578953456074300931635054884954164990237831074469425868083253161872501123266326958918206404835843563697186944127583253392917333764876742255922369202809491989374054515110989582730846270488606292938928471275743912599588930937396031018164208976961930444558614051658210868929853637781918360006254038904788575862341074860316506269195655610234422820136882997719896632101847532880788559901087682842085527784850239253937505252048362078052064278910679608230301074243907919661129608928664212635825043584210464072054233621377649646131671837859312847347225551153892454404576116295972400941518291188812883559085330643875537409579603994382466309877205443539300085306971731452803681992799501403445051945283151766265139101277237641294738837812476029682020577746967305996995660047036271747519460660362704600695922115413831926268287111821256176293932964668674606296008749780549765033809718868413590656807620548087942308785752408576965606604811617578389000819271600205433740467531473045405937916259368510372902715637449488944903973578654284374827435836710872229070865401432937102718291451223451734015071659785195027795268120305651854560121363937575423500273569810470217531953696837303750003996295259451679698773430168548000445820834342175291335411498194572122525477965829812030024648578744884590227066725860269917569739921179116878421952749822585190270325405763895089053280168551122882045809979956195589206356984680248279990612224594183717508942410405217571396619060014582116479297661896007761191149951469375815775764664365795028108443915600268291097486195136177147178045121245280383258635115014104468142387779908839042741063108885347294100601895189874999209573684824808128933791260481308786912475090644805568109572593236021458092185801003392666455042297246586658718880245288072956888586345455164839873605615211227554940275111482274807189612367968356372964029538611234692454229612018804003066161800020256285490216360635581829787085559480236255330694562124626515169727090815108473880291768792884405393587969818744981682595540782014775430323560160087921300067261937998489281691089564581930401243843909750697311082674411368898269462470013031886557010823949922672384916352686035193484839941061295427787708856168531121981183165888796342212436147193363978821296002699860317204303180400926707445183765493642362155240508078460239046898327148822880792907800920572563804882897586649849917721853365283772939840547100452522099291937761129147398961789688921448164762230459552249369152070470425593636184833970080601305857393268385808323906313476300834898662416255216735309291370228625519723513500915943822684535500142528596629067307845042066908653855089524010466310948465759969307809737807748585413199850946106685428763823721584701743344627600057435152523099343124029593248379892025363947357130362788513142829032162254960879407349653733746994007459158879683918577505590876832713837037712157497739520907779813557936269126182399760493331072890433180652097284057519857462718669718657934730766206121513058498808403713567195833505354092243947862614325582885054427866213470629470106407728685834887274085577029264734664028155509992836195227062677612722347065956992201460658808863987569882487867726446593682206445318340709220207485463743596237012407876622375154378810889658511876948954652781209643683855898533655974483612921046511908065710152671129759847014044792247891945804638577949244004690776069593116094645091854897339783550627129076463080841351486651035231653385917574312415436339222982188154204002246056239848167715137974149310123535199977893088650981341700612641065079626010664990990697588171310926833135276029279442140645423802566428771576712330688532589018623149742497840318052631546250555164254958080455756107639423356834994154586029109242073113837721923147552961458354775420252778064302481073816477714550395660822502328976592087462271881586067137565585113546163298733963883457418377425194257309539363937296714131645431185699081721794326855239158052377234717333111337977440604523029130058665907749645204516023054107629504854949608057258811555841766275515807605728608071745303139940742384122565820541603710774824852141940531051526360147948248753568703917074340511889736925207249017171773201371056824350909186026720910751658875720194890698829682537858294727672246308584427149145708913615138160939078251964413234466972551441297824280585183064605249772651784975446075495555557035438633300689578808515336703244483397137414626824949263739762971321451863753980381245396651813522903487549568793074184540348737747163575091334569085926340628234365983680794984279296245313531030258661472110507209012899967973666586818197030520026103529438840763825424851876541821398521695348154668165719272477841095090774529943788276129698687159162482177208602844835303237410536530990388340495267816590136760975733757957405176633076912530978508383941362910572327352288475954483403750844197848638290513756278941085939827054332214016734355076344831234960971550149112918014523112005411445333149781610973630591305207184742383103295093763719229852688457009335648451102780149921735220729197057249236544624935012378655526579107829830085680439516834301839389023591072424441349613883420773738396160754957412506475306877776442289423308010271026650493778603155650510420220830176521173705774797754734708222550567225731559469005633354427296385485109572695013930562573610117391606067182746085406767062805760686705126739572688312966451790109900582984319964447830913562513099676436591841508659410727179822667178265638140076674706112615370096990559956886304670774350294757773272469522914937038022389945826387951049029827000686480753024041251018172323598370666315822619404134589872390812194641943929979615246010728758242296277168765131489351425828085749135184934717068079391793259248815260453104339956423045214129344647462029666630276983190891568901221098406494550690955676753803880123804191073237826795933772032127651524808545529555450285317302700719922199356070629068602914949168636286632283887263926300284999064084349050479896396281528464022210097701965324537330154150617383149459643246170619690243461854530026101997639713482143348602082044456791307225122440228552761975204985527469532747044847361729135570793823279579857866397795090377071084343014512971915433300633867601210889995017296713104424819804951014519979584852855469888378261391368542067129118718496038500264611272661834701255938960966187628268649427309454188158758245683924697744297962905016134973908413601875192381684612795026684924537553947369089479238139104156214138498220755508337018534118963498512555043997219911730232380631969826691993706659938399225302912166832892366438173965230255829869716496789944710864067025330179087043670121826518757023446869048498471172971508994322195342930152618149288493985904522320734848459170967733507207657849465733865522249765135469295313738904823051317631268725337916672131018210842294627077562997927569668691269067539043013149190008232097465527575320238729123786270825588039265009813194491542901749117556296268954037663343881726782025598484767068920861721658784299628164115243591115398130726729110212581113286214979376606947889752217413685718061974942803807061017416709293407671663809217446954313754996665332534562449869144184962113456655994162580060046409410031213145470686119424018665260840916761590242583830841776170363493441400658059310064037631100904561039859571365123441978221009850859466789122741693886688053589499614568643652375470599689634408108962733412081423492377577537973830623303373676580078086128550718530831479170371875171401670679976301340709056831884379482769240110555802866994967693657944406207409994920407725313098441863891352046137438638950740895812933137745853257457035048875605019093877861823446348676839942656946437216411767850606875862964012063239519443336117288607250307485190401892424645847033923185215652701045376495494989453214502715172402913670937607045748224910357696138031465063960543484460828740308559767736789603136670978217228831797175412193331674307690523501983492206851742070087433624318213964284753857287571548523127733875404292067542932201262445070289163877453185661050741886051591164493843396487466909885026808149749245375567228874508354027418255263844365609285181928856738011156702795794014974246541501196092599975582596823597961610078705163224289344241710275140836840339509573412381262572837132548996471434838013327881990683897665032445047653365543623577571905572197348480632463821382474064492139747848524373791740445551460188997012180733594327722870310223524960243303198188294562258786472922776891868954491140703184035008828254321824193823813032628463329148184519904016102991040518939906262311463718963334519634388253501038796890280371370606573786187765310484693058626969807405787841920779130565501519276095970524409962363151654094799028235292260975838673478907081771964055269550427907691663142299189377494099815447068294627782194734768633808245812697254709282276053619596463140329937708931384175418156522302806080895064176238345616104656619561443272007891473445169353517667189065231937168792774327021443733027595939328327790191214735934952531125960947556430655822920789272369891366802234751253384688193763712950367323114965201605884474461693620018628494610087209796213901353907022096479279004948921795127077393364100332370544808835572660126456670155991186987900931326411503488884018215706566664587820739006861758822267747537649418820391614410861413824241467073272721205606127539333784522153566441828491615527132349734338022842300584968262284521967115584828481711046785221450151646073654060859433310588726375861385996722814074662615274630635811659528053003984794560494454756007209877328268130627660954910912512024617338527409119384489687073518266944970086756406114228179683424565177373986341508494646269737956806562817335103970399147447653881596838316449305228893402027650327746235342160614214431472222949456389919414478062578111980973873439948232155578599519351720410216776949412598058978660897081372726299567001535750838407005710709748016020373516239984151026743867482857341469253216868844213256869197613666653751389917340168203483144165795298132910824203552549619290427532131278864711861376275403868264088868305681279867260326473033559029850738046775323154650517293894902910371244170536595216864594836628872386423111822859196610687810997018727655040382055679799219812525095961567915606429772014195667073844698093350901398950281400133293304982836066884724765082826412465541128415256102576498407942514353199720455765593648725346246918081600632110709282017084991975942426869312174497269979925730740294514288367262170848983628383269436826429825569591271913706527262053256982423589681495128073229853539510887790238375443113148521945154796920531950371252683930494426125458611078328917756610072923864661422771142820998112757305957485246782007600615964412070359761276680987822975656474694591229307196485589313876431631457154181183283262697097017169420182389243417467794042388265158677369170349567174225153262105932418455862405820515203043540146267967525703177888775597045022119969858526279668558587720029533577362045233811554400371673934244501238373856203837902331261981559278057378206584012213056127955648684966804112947807816952835861650878530808621240268934281059781123597175282046802342354302581852973322015186544031301982767100240263799623447839247764727764794970854666355755865125913714735139414811912432532545536165743607686730044675981175011011084789407381713542115480359384313480812309778415074449209021741462194822924954047249191776739951113676482723805938224913838565786841354345115485744255208087470915091124473084419778368807252094561260623888603343909456917844929157188580132621574129157941982286314074237838538263895268193260409631743623024038697796219627776575064303921452796476325463365123737505191614289483087742339906494312866209881398564491914606814111660172685809300031799808708126682181470793063016220100004975840880305824847567868017889759055450974068014184778303898359223483160040467004596528951061296596986896479877597067957027271586972007633418621742560689049197721968712421743110314184780500049174916067267967387831623156455008508039202626042238194932760222008901181833486129451386050892447476044281637707095078209479661437468295637441012713080021174771032102274569089379205663646867580250342535992526062067877963785770573368649734017963339036587761556959375227855215344856659905250636035420798859276363317102115036165464699026932486999535191052942067020736540368337269684774036395777762841478742912113405250136275131152842171371051187435545969240326460745750550800129529505055201645794019604794372969370411027210864024251903670733065433735598457026473431843426866567683081390757597771816406886683688645249081136488430086326660150100997771643494669253672177912304722419228257633227135500173030474762609320698756427702642335608754788385300253547901583056064418149014446787953888195917601801632268152886382454150027731599247954915347761177492786755083228672429192937851430815513427666842799114776225123173923501912803648774870124054161928749224803359432727014649736848173781567496280157055935973784431820281767427654345653638901991803998286166266043059979766543456194277100859964902292502249622106531794126147580198315585304445011998868930925721240601460953489950644890301510057843729166955653159585173993370079957309493130675432142811269466334492652797988365828474115530224354672323939925383117796453072748799794558210526772843164419950084361478858939568199485913132899037455414360309154765900484712573668579044299510080353024414737429440807116768369195381041166123463331674263618444786090508986104454257692095134326046321738820829534656189371757546542610183697642671530935347707760085060320822878585782949433104690200095186153709611489294577815646812817273333178359203208505697214117244994168796770227155907571518424541023298743150862658686350995897453113506107603519170072110850297727054884714755056210160836950994132383544120705289473220215522915655459871137826917722428496703540508146492764099690799479263920984814006047758713953089715937123363095613061833465785492708201349377255672986802176598948107070375616524319818380323078837419031158390265138997330499451826674669037131327963542854186148424883782298646145257307814857659018865055280311919145912848546817831220534316674302656730500077154262844980173848157910088442383688488672793789260398836651849624633032001311396927786288126338785352810883986999767449598224724275481416619543719486566209877638488003648050362592589875756998833997055068325141960336278515069950872733913561711154666908902706603400954644496437610144096082939533915543504269613240986885636177732815272570650428075328437864564219686510013233572517563439312614023818037588111065384913389176105889433690482137114757997303740370021792960582081898131983936519899694171963470522506041588742931490580015633336684720524480527888227996996429168121435789252270015937806669237391018247901977665928848769477053010310091114382959521353621383126881948500467290137408577851640093478434773587051247241926704862292919678172970760863557448161446147289030886577134737476861750042203152716633209887262590280256236205715780368899692382839606458817112817766405259136058599705959348944551228722625661083528773581556409554725140421157858879018532103588197320948254405622939093396807742312764790584662914521472156764117126397951882029083021259272514911087384353531693303395036242007329108459302539061090218753703364600933058244782427001434728988439979024224168073866099564124205178985122886505368431124639557844819793650675313589217230383012555283105796141141190745897996676376854471076396530290090216717295495740351434742432513596872864074281752230342644011287207893637837470723666155187802214445897017608053980726164023642831772918118117672203297907936609026542513788899845841365139415192427422068114545063683900090270758330440809603263364585269450734219503744972352723802642786976317830063480788926044663667927346795058688260076280918543167984456738956625197964955647279943683737966493347918385258736732768033240766197138779764078621041656625866742646854027899941875477778015058954712903553321996359880845332906031766217216199199254926596319762759026433729147151114771571113421006046805329955156933730137171651466274315221586122397219369943546421096349055457606981525369261724544860537490362412695003242209337189937456490496185071086184179693876939782342421221391580080791634162423896770655227402549155950424954681744273431122518827741727532201918794828908224055805385489051263404176076832943051146188694062666461273030986131358685133343354057106468485403916859920312055536863810327676681851623097759743126234693990806852262069289401656211462226458745602636251952747861492986554668665963305908795773635483374945888445764650891915983276608554881059010572503805114978163075683682961234111149885885973146712536898860881036398423245172808176356310133584720936319430763310535907815664920390725172692028991844792961238228611220474913000716997247154158158947961212499423975933412505277034824938321826467138496780301060781215449161005829572641915298941628695651333917152593836841638736387305646864564031909516323944817699508136318700792959885532984156055577956441519702773835701367483926722328891376401843005846531049630313278199955844251928136143872983068822793857696388071431629339899532708234805073463182955146781876636741338866394028740154786066009459360493868004760149255667992027921220381663728176210005247218912250370076522881406697378270990701607550409777425739158400313761314374701098374969044046746399494293009305104801272416618981191408926676230936571603405205334355967497535697963534708045921821112432435111011849663833747317596903998263118859496271392357391783650119682638142946178083728741352891276146882324207238575329846490582259640339219726927465322257270457867781218052277857662089819768455045477559272615121072364986962653857909197225696953595526087091942123346189622078158227628906729104851384684746399821367224352329824320135743825664904197506915059792010339206204379136214002221438517163977866207213446604230470249703866599742855023216890228036109342057503901171058543830317755805110420564657336630650450287612552435456196707447310419289920313340616003106941843458077515714102638702439823878899756539663551796771255809090537357137926776316994281366059899955805818363764042911600650856608773378591295382483141414717741703133974719208244118956886360831155986839995164772832026718298770258639958833268558698126538762801837289461513324549430100638025866325232075314870947586517705564862522312323440099131142266850996889296894961009300116124320336872930023952424328921279371171066825830908701338593461016081454669230832001316645850768020573779642559139269358679700090799185096494125838698794902157854429310192303768278666889260090284522645391309697731022306876108863360322800837059278177183208303190098738400833470376371740217251342862209837050840103158983984600395122780690368749770707233970452133772402509271083525464807567151684828309840253433117587135621181235839102438314456994164383679621155567633255114046237087976775984647456180501200037980244762356164176027151355885590824024681739780591994784672605876821435574785489451163992636125246018292999283486569550074964587099469008931144672214822617350746840436399692958628649163600776752618223773528156023979765488205369540060476049756599144597405314200296624030510521977599706847139554713415156161529792765105585032094027296874209574986612039986477986651997728469135564364021842855646489036207612801571969459087653774670590003295989000317797494943702197930779764978472433261378089064033312512294029611172050073974316444369526592618324537808849681775268222903944956601482164396999355343596743252327631504902669821570375915432435465583777573563244738249554454792829908232840932521763181717913657231712287023120015136437676780903671278320996272668138567803941633790750864348629663137095967331833830483572808574393794997811579816948655170013123771788789692044877880340510270896622660311906103556531325000749256809299557272463757252598761571260354841470235633691268916860478599971624360226369572847603906991355063901240323768205584570436367129832152462465456922749704137535693233844408934292288756527866855895457034433820552564074293448940828449556653464348513409244982517947738442824145282815476022347828260367882858470653868916161386005869215584847090921263193219345904284948996968390934879286166352017647849684033140111600813177419558987409101669891476763885329267503595778440237805346500519188312291261454551267789528944215440912768764552256635813695898575217392139227643555067899745225930671051137900445767032731235496368097986238609661375573460390698825919630096946412572008803220215936837444598008946622552758623584565420593981655398811643869590487971134731442411088329657787379440151157298619998346867136698962479241423208204746223392302199152664213476377171663974845133493890371742706595812247631014608334003304408971948021508071504999420804876760517652249797158062285507853615927162092868815772330218132008955223202133213036922863851637700251116725624629377522681961345707151906020585621423059885508357866225651419097138101218666050299492277447374473572301578304960228529781469202054355958730382894852481014745813528457678023394327586466023589585692852888336702516524136480063641483533875379266978806186201191877046162630486954870772650698080823722482575187808360882958615558355744168180361637146337736889514319651408734442642924660239985925699600109244351624189556803717223659359144044774634178510617645472627734871808230341140160285957506160122489856073467694213307578915256447365097261977290762538512327295667756351142224790754430508760253103372245473480970782631644614618635310957414705876902012187839921526079260672312286811715458877987678369738117324261734910557179536929036167541634516298468729515458139645798209394667478585900622071484085158396708695435965966203565184779423311804101645075499271160135265522426029250626340127185907720573785270453340594683854537808349373591128760672370106021121063104375289364139800128506968565626173709015518428582454557311476296292820494536255326792114168608098883535156171330506275856007758047519258435432876894782065952166323893093817067450721227546040406400024007458616861520882753869861988699061446067136816379508091056980484505623070651200427620713387036393805832938499855881870692771378562285583269303297522213167569419687877917203940063245216367281626262392031361876031771026436798585754018801314643634326639445202613525346459324937408534061872607446849174088481387064569836176659843825741225587354124651676582505579599604367247764206905725748558319094206542742629452053984362294379551305415993825170028091668367476082622424701269296213210501959737203105678519402355091657866285739031981113621159795462272653788143790084691685786242744456735791790457704612142134209823950854210982664615277485968182672279604794699988370888854753840007395449594101685587134968967598130070353442365886262179717552437565212904071556005568331855670697847601820910936431573217348082835664735463975986197559522965212321227506577886111809853422337017352126674429453940513076129170366112177963003674290045246086914876729989099535709304303227569147948425951142599409524695665745912380453657060198849290624517143977793146256657756358219194802439863186210555990814254507191377532225858623180654783666190240642258283505875220686438277645701841493344415320630507413373300085844600953667977365875615911486318436671878516251461257212293015993808726934511509912368420529549657507256920294691963191541866257169731882580060253434458103439310757705476628613994095236115562995334405774998483327754072796274115836654652328778234804816683266561381579733305799304768255391775293536445424284338773808578627588184701442900782252335065774631913080712267105081600748753186326642108428725146362723464919154618983505306881493136161350669822820360808655977876151490955788116802157881981454613522517706585210977480600370364013972428969797907798353731001085895584005096655005995920586020412592495400373812985650201479658450939812141576578894806999282343643506383420163768872676515993693875610292909876482638435650008367124709325730392853791800297526598487621237126616477590758670589503369777632113702682834956313621108202855869053064049681409500912157508661514869986786934765656540341520567151330404908029344119263221739459477069405840404885451217000425700365836234814438768184335684331289303606555332448948213408848159253701546034880459575922481748776707273002106206476980333993284947054179802556836016774787069401547811604917395004439948381310209938439902459724859687670518352362389689129915013890920372345907413307574885847391539417798146641035845176392424536185778234594037849917643702769667777989665823188480495710287872788725864444279107775949364279131825536207819849500699166448237860881048584121494960360819737173572154808034075301853387361458961314900412557406120740562837915041468378696720320103356565004928279841861310132413739523713252415425380808963774112715300175401506312380578639806000479662508545051833172709987919903944545391709838097586749312092227454261392303944660216174532988694256833592745957137546013677337755618360338416222116658962047677924914086998120986130911018546378074318338110263288220446181884486044332614064033145089701712277701880894080026442351861605542670951943462093551191131344411668427220845597219850297690581415786641825237508159807592239342749256841677783097140948258348947184362411353269290332037268892116561889726530196501376729385458453447627643998309916527257635080785011884078183216679366082310405398742249263148738473258128092896295608665311840518474301873244041875275828442700814698833129619416587740417368234149128754259953458652399617597689879639328018523831877972283661144539259450509740359855176146234014680707041233763712881904116462177453461601386785943681165533673694159047683294658128905934472262100272603784357726262568254642480183990261689406164017526740109640451112203500721675326878439048896454933629924938019175526188704596171607206628714565980052137615213412507663066877688224505829833114603489420946827633319981694787324544266929310227175777538339154161948770001428755344171424344469360331461692585164501713094031268013361739540390749580986652725416260243586083636915174514866588660238552952135402535168724660855574580664949203118836044481419006835808199299466523133256527744993952623197221975530054329177266954101272401150408881515907743689106410837988043693980852569572984284884005515812855630742918795183057036461816343609717914429106712201538622503758401630850970097776222141813110467296450596752086080009526870167449462293557459059973948451063512775967946175115478955511155714637078113692263262771515096788504820560968340536832068670892552032747688886480501435542499513999372175645095628250773772236819892130298161617969955779220495862068098982319930982654667295307327303493840869810148376856511095664806068344865549929908480677720447918957345843719959189202467402891192582585342067929078806844560205111186210925464705630849510460623881360030439824358984096839960227377461805293723120341424092089321027339817108082860912991061847269140331619963879247737574889982794842807704242780177709524843860449963202892683932994389601275218924944509957587608847833568667639765067982030810373953108401881313884895527052268123600485992181369282694443973805940784055962321492831017664283527314934334014237802417048144430128317501605007286172469526754865845446877460288286812849645941108847833613357970129525912825276796902493196697860612904782943719886958909733800982913871240133740560234046683366965050642047821591340612127591543203651220256747319895699125482412677062945036292167687525757498085537631546189558349992224011055458890674497575803725625052594003908031527598406899979971042222900014419560536984322154738534946088931925865879140524788943783442153850170753538194716909651652047438502452426623518802638724161663734644330689886535926712023593580205279655075232649102372042618583554385323329424624999738387714403155669546766456855880766338880487374051420126361789838557915599230417389134112943453096373384162661266904600299856427461437969521613730597630975888205795270838278165544732434147540845367722713942350712423916708219258409537514398849742544316703560725509773891997818772426110449264731753992381626802439491115081309451833818217287432411519617349883218454738752637367084839625022100597213591853461102717154130510739866907807837478270258876282562117135161325038473963967685501991630654297009347680848093755142979750324272820857749181437094481839791389280565397522563057480531449549584367876972913069992598577099879212686116736209312162024598981005734455872493038845457257593043184071143773621420753843924351549932474020954186357590668673854709015012200863984333764520386811335976444589395375429688445321014188285358477371407839059926698086888820376118312402112088784931816929314888922740614152205908466811390787224493232857064119779195772227042582239359692664317846578979630927739553868343799957334491812596227220953118947413345070614785510061397025341527303068177697959225011390532164352923149988867880445328302519265768164377547993722492908465657171767007045469928512855554011133194369078302965409042379041097752844910367039444499362567314916898060489451584015885502006568081595322815574012945013593709959818942593193369989347598290386243866923157592002819900800503492613550676454550055871373794987729606418445711879204158469638012382856603441376488979466120874992436616672574512905305782048690933537742300407579932079115554789822146608508637232951663079447012817917045675323269318569072304265462125184775757261081862328400631098934176020140070603129536516952601865631094790920371847616444414042333042911128688200848416036511435280918269377777090932405531037292583556421445744412187650249629526722276574471824211885826733886403496094076365598910614941583012546312861374282609768553547725621861525214419011004443488464468980382884361444191098281253281759547094630901819219125600851130631339775993772357567005636427491536592597589676532875956016969310490581734708787700553450839332063120795177476359924317128669992827913793667339045643033486356376842416420428360972330756971504018961236928971102328993443001892652645196238239646957645743262621445799956040858109913001992022067507530697834959416848690368382478838184750463938682783976548280325150459843635878253027338953868975427826776950493671956353802135007722988225504115734981435117618044636910200878966532052395825919013513477064204497911542527501476967523253914594276181173661179011737125865661780377355782516978245745287117813305499556079346331406812739029969436046428184487628888477213187623077958210015610790799356162880856632406187866176255260043275660535244525049665578258354771979276736782706681617600870591909513414653432936936118351353429442473677539309770131573817765415517065793940899831474084928147799385293566695922164902336323639659728356264427622731028507925465510518172233544756371689834291922675483586296871768393715334259117857692037162554675570628679234311374061910086668956633181803030694818787463317278756334314929927568566384894554480073536924882004645810012682011745770433238756196607383964233588907288510891777775173610446059156926822730360897821833664062060078131752814126264568153409679884885611052149710730314810054608027158228609618407342387229857833797357990137421309961637046912080493356225213798853801299266819047491612518707208355739593190881610731462512569390317170482759183510552823351525425470881415542727049420373750525620868498023636382836250814552190158291901272015991896938309088457121583433977637575192416131684803830196487867920530099302003793883003298169041588713792948717647184961794449784302226356888716735781919508705512070682209939097132918701056015964831287515091244829657794515889703746402348270383271919198061885984473886724214161234493473330586353584534916384628468611560435723297034802883177880534415074329577798932473638923478864094229112668961694374755692364509195685230337734176363871784085027924861319544980259745011853032832184754601414111851801744395594537738053199149564307023270180659574160744893693259485140147043287277630257449509862717648697301029568898232286685686655022808244026748875792908753204065337181969554451509195037608043694681095136779634934702135267432124291201151899653554847473514401379625953415213388221578828110889822582382521484170300232025823876040334039892423785264446256262874811445068207864555282542576576722430072005135918251152892948402091637204798084234830978751262116363377700917605322954126824321023367977109483122952783626491950721158657162662269494585301192523150690266487024348582756274758568207153465658631227587023280459197868690316456631513439044722932122951365167743458345186371383039372355890154617356656582780714837817568159267898868481688750451820786448300703671125344096398079837083881143774374833919158578952137810422798141241752028468204839736263359709518793523353693866763607872452117426152039201453938804317998711231939517512947673889352699895181114463178271608244664702877607364417039055860046685883312069324189827674498385974785585200726168658368934074991154770554395410940401837853180241358636937268116589406434828384351620868729011600300377312919093362256845758445599117375732336597762479314101890212647006548033725508808168492372811636544774004754387085676019094335538861446450456202940523753010515637742194189401205148407593381942681452203604596994710988611613286363646706418723702686595693094781689289002227148787067596262850653118289307077243046318745728008162351310547667154645076320254938643666061184021790509003554645499444784962112094305670211307849701928535089732682221156229297462379528785212260317758032010024530434063898293545625085378988506537964744767966962318206404379606466040815427805894779730901338430611116181648194632604605397330790747343755307815936364467484973558062911653559826460668118692061342372237575438578245276025371575751715461583135630916271301080511381415161371686012831137828868765823384657735412150451108246266196336172689932771911663940962442739186663540324935998444426411458503335485906783550595430727402097325852949557858276631778108429120670387021889913181598462267075021119924780328281590244432440822804336640587388363808480834427482179926795163942815635367591196894987639192417604579305929722417316962412937039507190358889340282603474316955773483127036152597299997327496356120112952831963245192486140047056519892315644629633602554855924165554416432015863835675048318342053893585281449669338144581935115392983566332153171150852297808539547971405361995825418115649708263798335396639018277767522228867702509395362814530501694534500074429716572717341839583064981993667092730093753268163518435499021006881479360318294635948576198869218105806707115253266260051287515423555688917999203279283341944842603863079184955162678639994764889016105353542600159505298562641434837334318358616418537972943656916077103302130088615741222700551716839287864049299387425186315060144375785771479772321134165023677510633056193768583411173309715801726070603683240276660217702921110234726043252301551212447001691126189262653962697391335542329111695346820880633818811617771054277362175698242917888927405110732194460049259405241797508126222197731504058384146973375248757251205260447038141907531882495175271447359182012024443647870476368777528100539741726019878600810191691543454310378788714411816385289777797289818527889192152789766102727020188815106822321843537972914813147911935740813514532235907769742403832761898920604837714612577071757079984089052046417610364597041999112474659177756473967095107294868074154343197145266458434457541419898894832002555290772938729763620742885663595507323243833766767486283187525757176384921903526006072377238448656944300676459339840147206086292392536305366374970055735027440252039504193087561247898751193071594896093945341072519080516445441305872828476674138714975184855727937926586203311129376825142963187929234630385415646421453757590685154344301234740408670357950856062222165275948466985158521466667991301730104442584534524317962646052653592550678107966640625146221109693808961197213607176476493265858044784108846225181076060156608993004195571011080415397052403529335920090733274343851170215694914408929548207005732684560309101998869080399806727304844009351081556027091764662117446458683758176975536844602248454936736461741930005558763142882189345044133895442736416889314673709697697463607145158611339847639119212229322827462850405691556503669864574054235192842132710189601675684966712959082139571697011770705655167873051417244379359622751286682814157287143541418743166783429065254671586724553899705860039690292690466839529379409281797883449014996504343964666704496042772789468249422619704226985020861634794422634361906571436136098207870411663088608914803240510956009427743533189959024482021164681955155231012535218815961233567342740070450908582042056283387389198443075848624619233444730091640624776768416220433417169295477044363114067412577812292190699923285766513616365170482099814427352291189944427199554694002457848895846464612448341230323639286317446649468838200922507107525170401304341404024834138663923767347955261010751462964867908771847235032277209063907768405924705971699156867336450244885063785652480247500873072245049072784421911729377662408926250850148029499387967990049307817916229105643386754812877507613307649288614845753474819897413143291701658354263247594397115235273633615536940341226023073766011112794562516050077902961377528349136197579374338258995996807536627039301256236065309631254622013946660808063601446374939195901028679527308660286478381096828233987911149929497406467016805112844367975593989443086662314049941977802283718336151012058098755651624248084399247235277635146330409903215274228443163119008738112613580887112125773306851479899263848135565246149604692401692916213843993730046092733777358317782567124605691797253619933430412905351489017572675383858171164391288358837111936518923791305478437790664368639571347701145405641414442307230389628548056129410909570092765978181939978614687259824479553738318192721119322740162277631233895264628122808229699872531057454748426474773796483267064879881928652728199994236788276503638086421431281856270363622860409688257523022519630311626140247393195614169262639663454140187586861733623170794490226365630949263140851657617897352294469075202984653591774878837154901378613006121400442414811090174539790302794216722301620237813851982935334905746407318777135771849596690819783837239144870185227876287650197946968204868945011836348226276251551671957556176775329696997193296070477438265404849927418227801233881682908973339941251365706070354602118765127036524432569830590560873266844128904900432277292710233118306217644137210808856280538332980105225008554597459644178264528149036204927147128503468627789092698208118739668879214322914790544695535252899805643051990833802041092390059879788910675116999319786808882185486702431685819786889888719656113965326353416948460898443484157863040024967840034427035112550738321334122476591881977568996051881832521945703958977675870173821553817504062733204234908150036502000440890239567634980992486278213862083100415113935253595481770563741368992620126720281131119529379388520289981433050950951328034211702630153063145895258706358562510913474340934551733341144072136775839948637539899652279594852549516713054684027167214150978733746196968911143528974536567529072021962616786050577392822655290249278031587047406450631774195922546623742087080562147569267888137308018640849187528128497343728940854214654850696867706278535099996908159774022299014074138249549640623900643407285228486365782880578735025621669384765436605569388866988544286455863410269057379394729035593880109869720083949689853390755983328877298870150212600943956778465451618057739174549871314911578775286130408719240595237135665171872551114413610794206937916951518478624422370553623433340169736820791593073552707745563979356246992855356648830507113594185781394917413771777217389313123677644675836206937006989796083954241192482765957052042315798611283644576766606413621969808267881578839856008118411337548358697979078540411778248951262323532670795910767971191994398392005115217395000464226443969682032063730512452756551859061233104337080455927313763800637132144476360453476208862288432000320551066909725926499420693568294223014187716589242372812496552832495884980387877971351479447220630825214035116368145546012224161184481133382201841020843765004923024611792785892474869629583847909364814040512856509014072503937492478564937614331183450579723633133095972759114180587990448233685204871291709157611071545366203000342754709895178632589997436637573305318944998559387278614406480047636899880893305397947022956739779059257641242925003653657695221993890676960927408863853599096995374208643820609722228820026310187227887205898957730947639542507558017882948695060083786265065614735137688426744314278219624424019480407285139794952776536530426266556657276125766212025315852682645265678064148059644453608428054080229791084896180253339548979250885828080561387642335621397703550151151070216660876860985347067606567685085654235479043838853509971814468417973412872945783535309460666038433168085479269339394783908697944672401996132853667192094759633597080048771028466060122382318508981684216648828325943822643664531836121420992028878982798809027823248776242254256341352317126918638390637122904136992008026318540483060247753249035961731307819336917067278664609463662363056656958608601047149415449309008335183272365708741209663010320571325143152902841481924132120589332788440126307703814777441090130144627686611258812590097997660585021458430351631072757511460754992253871517752513372782156477988512138645422298838913552197839626954714629846317004729063130603365939833573162662679798218178745112415443667413112943737902391012041995495679425910081826704868136847117933347939314528160700562681507376248965753338637105491811157450808632219707883092539172578554658495350337716149976285127856999639298911346595195706961900846623593956768948074234107447523073321555483171746926434316654922141370933648272971682882564356676866916015224952353747991490412330377287242683450176976921546725352037508478799049442161129656751769360906387675717596880304853809723250317912417180565930038711006610269100146304097074487936908749732962897048262663941504106909676716144878883513653770114297258566170999286960700450576467656110912735487940821212188769773095714950400832198049694689607859677756919553906690378984313050998311482354404596940746590370553966594300755892371811009960781224407449608097501434279736459622418901697861663865806873221146224916654302546445981371644422320399208758654908250109652449663610411856961392868310293289206166818533989063933865024325980470996467135943019848819506073341237692442159678969615083875047373104195197605873823391134785086934949785136177139723165264607974142033760272179800024609383970463924714401615317301097285469660171463965222743963665318797887528252470298630531710186214492916935301888593298420534800611701391840260032963433949194367460037218838405511641779739006905781593681864495378781517051591295090591331118795810323948085911427825711939828016858829582389483162709611015276932128941598122671120285793579124278727615386025464761424202060903262436818139294430223695649922179247717807012984090010255466726904215814948560332518094532812616073859390319551537133244588238247221051049541885002088982813703900492097468398726718711684698511771739143188797192499464268588140714956277853403551021920844858175122881193222436959174666081677304216702490676752930002304750015272249881994956090972376015493883192443756899527607788019766565344144840997720790670958845636200948291750310595512969307759225539962043992038150756015350281816719658459259425431967226700872407320008189154842796010640718258737518246932533850876038910675942979942680581471942104784139795840421701246346848378928512185341620561602693484235253023737161698631823086460603774749797456563567034604198445711864214078637089599199409738058036201698946218261233485538099111289119321952962378000986660831921337635706302311423593297041213129829196989255944051333731290446253473803919764493911933709246595869904399107955246303994949782633829510463482162019738471086565453643534600085883179710553822057249731434048216931021385016770073460534159640363985344263099283957724541457446637293499430827959437004844428873674862205654078594846058866767726199753174879281973212115878925513106226825011634976984604104030273715782378533779938597673379869288107242360253931022227553738167619334396537751425056863580987565291501708272004297932429920661886944114789823640630092286096572582309970491846489370868278878431678767878632537363613152005368224264359386166544552354831104300156886915402787255787498977668068375366148236676484984405480294880408954233079472215144439878445569623265588827355686510420488075762757870232699502491416455788983566343267967677490776720376239189050487165457456736983979617922285762757839339432173518402111921304723854800797646082245815287982150764678976919255699509102998054436453944852517226514608534346489506410495482198912130571272025572267291493178824782834066550119062856989023161134832636534745083352477040881190081417410338194719449644620970524481125264778160816394777495132328272441100303670419172522039138961888816382608586260071659156211437685935849347737062772896088125347583181084698665782917686433860309992593031880405339449495198435738148679950787188315374739632228593825690921445958042863709161970288826792251606640110041306097222944522306459079524144192206059366140858588511312249498026402369599744569548769014669471509560517697025489457221149202617032944160884046807379347007003130611487000631820090178878798227291581425929980632802080548263169836529700617021604221652954034442275890860226610070441225597668114398781822011820468598743917051531672521865012349803641920092167935001923762382983739357844840827014483291128375496332642496375237116461132340985568121161033606905432612038050133398144011592255451472326003758520843701675809160325602032915355907084848004013565882710123852136628533306026880647449429269884020410698369421589473953400235734008693439885021592521991174019245351975384048184924466451217719044468547214836102978977862324685500040504348687773842182099233115605623893726901886795613637806480760398563759214597522755932622070719792077761522260571252015408052459480270396274588068999182304960692167758508544283341666670197452920460446608597782371257683577987839082781898690458153454577191644505063548453192498303675649774371101256190101760094542615095961707775484495372935088347148729167188568010777085272674343013781179227045182665752287946587770636891974760783873419544765132145424762360064269626172417019270715475895515624413902553938556996574643940197000897206440169796921688294883908369577092488139719940689300384499706894169791355799719082327407660998830634270844546109277359703378344182550945101265962503008172990496544816943515929894093825492041435048882040773358194484588912542794816605974262448218055330945716445292999398101108442926818193586733031214779769392087267267814580770018249118124286299859185017097353864506920004949573784686306796963748572360768433495279883223384174967664341638332455479000549045337147173146767716709524435236746399692359320985735439468720196739946353749138479072705507001423565765709015888140621898042084800179105615849826586896653691450385461518963969170311783984438185056911036849765376673618472586292924072598393197844948365374673732352173494152153589795005073773141989939746496498696245191556020182846947216717455009045591427742975148664378952219696627929395462192933397653375139848064346617707473032368564600815636247350561688592495511670029211165088913464165059451340438685100683885979449342537775203541168943886693938995568567169272031353717713288049345084474145250036310257914363339564843246870378255867068403688347323962435992713554229152564990099852193071197248117135590888305675544216888966728276818695114265084016081547645714404657523794429401597945558854949162470593513345252853371101765246329094801475996180079658559632017713550049490643814161133814663072358620579831040613166879318154775636473194604653570354880812883200166727136517348703348525191733038315619252070095059251251771409011849451814004131703637289735665504725783657489053015722804747208253548837701831065729831950790901423377285025156971905753590045886372251415678629169017339893712300924322129401729085689229389516343304370174517838341380096006865233784040097251418551520277429305460479924905138965178226325850235936178703008336453178759571172368048434274616549848395354021585802750364767302046321451024641692311974751013658874010806008147297690693748172590540363072826096227433076905814417165189347457932114426638486790187694576815614563189450032379925955650542003465819925368272197268123376549244105000479134427512867380580285329156871569326518427633094377504754402279051529139892636832184171164464033616730323739699000485429308856651254469814529240074912926611437595586477228034495394144680506818420639507903162721184950266920240744326374566050153622293957771420102331932758837292898673655653229301836318744898756115127942790559918602668230135686230585622191391829521380485294782472510714996704509628400254766216513859904555231696984727151396228091641150075307357381026883250211468945220706903596586322661709328295873995428179200777647671266314689318666120024315533096211044189938100964244956212558834998612361281876212979557765914476101488713267927120823987252302888194354945556965287990412531825261728810277445808184036507934976711685506086419206090033225612835988122353930483691483837600301494669536593870546940785827499387609624064590158392335789978499277297671751272489717603685079444988336220855624933324701065379721297958688645952871017176264642067299635720262751618282424852958970877008667287879847448266320055012626415407088044188874272375434581979787327199378208294720252675072085174828257621276078745042666348598503862165705473233052127473593585003409964810280778847848102135146097468886299065570566109243210349854286108974374966655021791171797820984085347533901024624319213674168636506904887434466535797042528175408723193068412789004291412340075438432229410153087462799933655683468107893233094907492395409655421511296203273341152478001266847415879316053888453312027564540519466990573763835301558896449525539869445360474213331486678278495892993051683021230932603728592829548598574576524339637542028538518353440969901728306838424431892276032700196813381652148467075529110771493206459897926260080327292590424981713708650612159924585803283471309675413896747055737075673332274854312565547892073766197560270406151393986739229633135680145943419294395653208738341284652946975363097396235163589390489961402321668871516257554078664280574869027823926921101613866007880605719972890913996487787326126109971192774889274619376954106878428486796094220124973297169412513795423434499636257269796943609371927897468354805831742108514837932296420151522262407926418965532149494846110286186836940816784603507537749600034632160488145703452553017194412965514704906494614754836934647306564276567470254489370569167544771719078554934116304240259654328949561906548603132017875026622720376701318220540405974699369008825841758801891728169154808864273321087764400040880895763584593042146224292022681891134524771720006188356743748936683486435880649815095388506432456581321730517761741752886397115698714445111316753189812191106126028491926752119275830097787415614252509058634513417721171938322646214297407715906901408060958181854591080226646342793122142090682179250948259039451287161386341380515698918498959011496487133737153019172107609990562816588558094062834259062440134254207417744976730291625612460796799207448092782402353994481611200281683813656987173573746393286288321108541108269717205553038567759270616606594804303801267986090434879715413081039964934569938986767593543826406769852040075742240733523968581612409554147776093417015568280376339583720542522751315233425016128837799699003916092130868153148287820795399767367495088581303903537543729302900150784667649811992115796108430026859645599995835373255235615600115050323780787315728531187157109906880421500870068544379059745766603853630608275927992314122354139176900052551445341347856254861890404293716241255989603262659894660141879261445891383127808218109706711055609694082627484240131273112266909778631028878830462686980920505818265950485016201703878465073820321695495419902886610954851628744972003052349879324476388627700887231342518296327888115163666100325779460849960180277812262450418003482746471381194537938433557219864317610362456106179887288658168210602632540746386221406417598051906823695732239679947615493316971577836641177448732967969584801736806529063734470240087231712753878065486213362682681009985420354187872460468236608744189426274694404001237140031250314500807994011550019022633932773849075837424063614778074529388934293695396696556946989820432783949678431859541137866595791186966678704684373000242661333989681729428368605214765971148041556536915491871503375050092602910894225222233440491186549934487918178577946317505455440979133659923813217686224479460376189660295361701872968664465277416145446429494796000588748016080186986096086491563745969453689264015078456489774973585914848322157713172405150590703427052395580921007518661983072678657631550182680241132188971788496767736869281206890467069695309818523019796105326505971309869876750079858142857796382192719551329476323691422769550989553744939122349120862473699173952921906753453452972894267594323439306210570199856459521215192625614151469417380258883598917219576894356309260431185666375450923990244622655100080022385071306543461699682068765262528721689924713839616748735297153017452048668138197273838131326063702049833099027421434494103757198537561490871510576060206530211987885385457312039670836466639593858949389860140128851882738195981986627875121416962154423189367827902843479185999082392986794649433755353763987542612898670683538242161241061451758542479747418093562898012204408966035084617621389491198460174558632059985464371068739309045982996035053779272961451375257875424332457911441332022843764103045799682566179011270259353569450172648932816106594620218946370808027909683439973940485651217477165743978774940258362299601212014158303716809213148161708474318757975476113921699202341061414939516489777640379301594115843683787923323382087203363285769552944875424996261675794477370868092609304658998005366839963456819458351962364413488418645800315047899451909873243898911642179176634320440294081986827008119690653386885601974323744261756198679411996966175301209863338156813277313300175512499756926035258372997155352420938328732919491034727025672445945821672743548013866908928640517535151111513488163956969857200362390961377693925244879840590473477425616871006661519465551194436667034985123897780237358453158750016592169257963392670428746361228449956645965990767274318632878572736569424698506061461058336270283760331774667040777197749261671663174414166401654750803742896584211228862279070951354402467208751204200178111450976664570924711094463129759553941924605871777269139212667020621947862733867017766939441202028029832829836234659246675044319806711807816219532865889030998637984899055777358057790009190204883574267941272796831199517549320115000205583874453796902782000951757425939259501098132906158522836253102826812440929652097047954487463572987156746137251509499962927069712942231759987962600377738543552583143000814939640837840214286834330542300633115102469631596832262622281470063179763512451099670554024789869120060747755257308987910613379699804509157798281027258819724221439077543555234346122878220185482615436379679980512562994556882186853148231297331315905898943302033713601570994203115834970882317155635772507406820478811190058208720285991055966705702699722673167270661638972868808526463503665791475345239130507743010245408720303434319119636451832116238630951194660200999166060262658879598912433696300235062544092027184516802071541270897280764034346746063131762601128165326682798560165108295665330423134987656407233047775140341984682947938903119113071041568430078787451552501821041787305983495519134697235885095908560615653662680005752250315198834437893834591261654864772166368439195148836362745395387965413929836831472926350602365592793173775800967529859107167023179900939492353854212700947062861313797109063086483992571792744200469794430974112583982608633766322527961639493039874437590459693780985788716711006119183982328390563411159607836288868960021438961671701534959977895757543347499714967966756133340341375272113160886942149468725487426558526263644879670014713930000217045328783003934838936873643444376423278037336350541378253158347252071532830190113853122592651001894688458994565895619821624228814662067712067896155014496505223993960328298620181787083624854172943889599259009828653839749488977840910412494685121003944695487356993656804421152883602836678460928729516392488144329053997485263718152770874545206090225456535978081797794288889755548646754577093734998423812784716694956286569813432907686763300403722949183780105933204851188955941715845887442337325928221330497428794539795935790851433959308138056768134119516832748407530865802371368149088444405373142668551435030266310262983575667503355826289796516608794718184527225707902400578335167572245541214719854820602831842251820800041426466386786362094917651174068397549288705426057117939030759797151109299478286485847327935692990384413438157095314940359428017204700241425087645363395559616994456301088711953994904749629058666541832493957756512624037559422273693984234220750033028220304261092161955999307093467334227624224152683565792426856245478257701428657011490335059862238841341209575265151207525985901341555824195195573953470073461767971037810439561030994525322125505185884997718457932267053504292451012076228980471709349560305542685175545962817780357133959916715991928783475562685399067301186596809289402878051358286819533623957252264342817532498427198863498638146224935158020768569301613150433505790851774978095911718534417247954491209001817469573412493543128756263492679879986138788361811239722612250786031881008999460059390556135147418734017255215502504570676295393113153860017030351047178983061083180138478090873027087040181005280975248222375412837295000163966154347461863621554492808334396293438505805399108549892997631592417637266336666438720299408102427583532602190716431574234651731355218396848323034684804827772374352305724962059130818858906879362897424974955940622584215091576268317864381255520290541734457837180117575100653696378931874078078434235914032405878102608928804605833667559796253879869428222222087301956555869947377975997927416447369052823021390039456480239085714677066999434705998303949059243929033521246167841140299475735832763275132557963091060482792540277097916496101820159431343858436009950045116842607362691063543281772907914190892109360644019451676192507552909011010709340053244032226343458032569655083860838782036300004800869955278761457309505890721413009620468789800748019881686396445177298279631193241823144888761299142142423165697886522877288054363109789578369869808531643103063123055495695931734339423884980385926293970485577459355806440415868825811766486810772360008661477677945883946136180926120067749652151632237594596266911091931471531999752183733629525958935425916330008892979447164124234198940159689524264359327413356064902817283304040201372963152120199148330634897026370628874692250954062979127028623036917456552142909205138756781979893567691688086294741927127175842033176084533623775651900571528494990407535274623126962551633271792645491003060045274137816998779296715497634179939891939535465842481229728058018740786232537160686948721541791695014072108861068501858241092054761382213344825287822382512458911054346029477190163673269994851632279240876150941091666735153445229756858471266587145038839689280875391981524585153005596210834789219827805486537484622798180563926920986460760929217845961777426708124481398306876102351400466800020858137038637734672657507206182674453959747686283589015880332396311953413589405733254721058524633806346842954053541847407096187477929601767878061591220220082186261033757331820255004678785406867398399160746534234822684951079198816311427485236202233741952289980362251171582406133730328355011606939428406799886924142949193317219943776196728873034501201728158259598643816117139600500282095634888464222230952690910199688222760236698263659733686891144040989085030031361891945557159236904401733495433599931188430108236733371822740544098202429419397947789279385875614389611801172991391946366767138571113747712466542953898798611934099488880395081427913846324233391873833114845900956679063736477574756360687731763921915585207550766757078872720498023563611045708893955664314657639080949463989416447203888983037451776097462269948291545517708897200425468021772381356416579144086561372072201611915915868147777855539306559301404839119694710170210155241953740368526742435830422805700446513307829373878180957937915525551762250598023051273468921924877487925542349402630958374578099813078611790023572896895438474225301264500532399511737610317233370494264610388391890759716179541034130643099590091258288828993586852523015132361065933119346888121876781076964136035201506232454392604691393852730048678674040155755111353531002108359277438221080800497974791404003313193389253289337422950031706118484568716865890197012779775960564286250903879464456949151590384165567080129332566360402376182069709273784805698253472648002814377263328645796457983925019526242541735249051430316254786729890637225320395406611157977481539159674421947602270468773113591626379012219040988351510262123093501722455726898503172937692648603987372217098403986337245312934617375701132431634598185329839448834682865061734110614114712448366509481306369344699243284256448601488761604958732576818367522488945425164630506974299380421989690632153857080327418079066682608511399466605806962316513394236438838683164645286175401425612223669336061521122306436483778646535044899721145514652459402963684238112401909191037095230064889626114763261319179239403473145836517265985754668765297590925349182768706993091908517833542637933756811306686827799671633929755423570423424568464322477861534173991465973845659454045757555415191702998450273554371089461101828733887222256975278831515856636890549875798715416611076573599470168297651921926035280478562891462768571078405024932002705269016922968343821647625935654104845467365079200327697079405371043624904993395310038648890884387588183169087340434184361690595881587289760986661365574485675719033679266976924827427389602178196819255094100613604888481900531435076708836972738222374545273922105419850439650741221997989868117400459817698559477518353454372305831067683021351912703503731689870431110623388429282280989366791556259659550703149033423478433551750756290764682615211215815304351599764516230712928270574595871394068916679220417550858095909711903029698559563848528168986123366920817031292742077169200670396997673258350159722146937087851915595305009377953788644106247033913443655345134014360900471593783215901087465635799565983139248657563553977637830696126444980496157619243755671316757847053937862447685254940554225083657046279763041533312937119478429317599223353428554917598692582727280109266106149237838315573444696705251034734085176001878023554253194666945669930753971341374310058197517798607241751872039860066018742727163141773360322718541449656271683774943646236707720854914642703370104604574897989600377437065638087673231022026691457363920406624706697973128494675538098193389106166539252602104387454836593032429061364695241781929363325247329936619227432442006936575278952904141021833298977347526617789326772577387569945254842913931014697849463863353511130067283083250793538444652826706464187997683710572173506850048634045289445223552566269659674755513272019374346905141504040526209757551212478902734989477737995878023823537875459319865394751718865149424980656926266678977413930120328903382865817519764902200780988577241308313166651755491620315183285886232395654976781694268231604067328998183036413155029052021768993220840299534558817557178667237904718686515527593950146646610367757451811972477534418747342479779486871410256782877593156269304728661674671712106135695458504305335166401016093374860977019093282471509341660719572343569515121573239967040639185395827486703345738134299245155196713466008367878619924621684936075095558748724432006227866683145575743121301305886405716333412462105152912106625381584860538345559652120668825890488081712008293142079594015707164932428116651971509810362842785780013744606858361862739392407700745335199024316785214839652188636474664646933167333790876704267329223799732554326593837688275029487554447660183320846854323003035767918737997342559122848817793067246789726333382703135897968211204349595958935660219979848398136873743809125694044805536806187862099845525175020712767541676670052402807159509888767158935010078130043869355269187287536090692272677173933284007646944984760716574808847511520751602288439149870907300598258963098909703277538521293007346833204129860082480772984115937247937630152781825397881365117078429914678250574599609803109164766343044657850429169690371828231832416225040278565768345254020507159752821153235703095300909623416598951348700721870518049318170841445757239807763332262715105302267995735593393060191768359986646967403406642898109910908797246865087878730430679446261290439596553597067105384811313977244621262366909451714586706285368886693886665289896954288766916345984273023747871147621051254876865195707072729700809535703614769386621730384088856419523777955424053967368189200382877267801394740769953182610584001185547823091441700638410623271392777124909388404074071577859984708228894842204673215020177570630003869590627812562444159308705070643845603565052771847022227490896555360859132596408376902368056838998815985371812634192047223545605891966049598794479498790065045164935313264313245614927828064821716190315891539394152777646200842260817680838365972658080594830392397286722920836631430114556378241683887924528222723411529012927365185536840349175205759459339027130222057054451575310217677445582353295109625211582004470913997545625408639919157502463908756633304709075959905492083547037225283426405110219366705339892453281883319410252631614206252213085341842403648178995823676503715291302631872320174929192875912684516587118668972097628632694473931150504963446935315601138143471430123253307669025049730957093906015742855372010729094781640907170837005918148829689570361893572166811122586967852575971548192631567031250083576425027132526599807484548157909022195491510340270361722322349526621366485479249276106017208713735026231195196174967450532605610637139451251947531775969026942706340105154792204352179659903823876512561917464186195276346121535003428027360026852263225772084353974294755637344542225800245092024841287936570231054736149846109883106741487593600516233014017262913351441231377292815022714302353253162853443744910620701661005047828291164169995180593952553441254775847118230327488854262672768924323420278190184146110801278185935287581949089887176664589400445142121303154802034660083325156047818537803557952118967964716352287414824666798552147422884334151617826926911798535928743190307165753305469325711663060077645851962333957141867165405878460397199143451508709595103052743612665969096856412780588694605092262792921879195829550099320113040383138085319296309113543643974081954505437353629790435983370761693111433646489848096775085433168798315462489417293605416857900648796962940741022109563854751293757464085583120165068166691486348411120032811887505615016041151525144676902052252230408159712188878888900714234973804591060644011618541309091795416858013224784362871096364623575298107147740996727206470471290380138615050577747229694781961314687194676406367221704974644960233115499437014516178610589814241629811245655960144401307528699908957633796767301579573116469663266211983434694846504324598037546064282658280755817191460677435770912394353309190160543663679061621998108029036620558498737354623883736920001657846414225546553015358972483040592343556817030271963812944622271785232184024655918469919896355580601855054132595340063763882928324236539957476542017348306488502449950771817951881529238394240815593670786601288716038650426714024543241375527779732833811332278758091923042189505368415442870003283694430866192379026093275903557290114076984163404253485815569875588938960368935867758429510360767849246982593249595286147256958023746207009729760513696033951425746713806837797548256902208344134129038318624987282244037990827308923750145804912293517908271208075456330427930112433775004720965621602945995355781727338002280618113606326956667559606616322597105386391358882057241156928786060204680820868424960844897227411794401321150550626009508793142479534136344454722949097455915640836797392520451257831424332208471782282183200637028734330186961704443797702294869256223493349622662455202273304188107615962145101692889113521260035628494467056643798301936552677559378970029039790941110497850649031963724010249868467570029594295232066718221487666926019258213515311181913539502360899009657450990773465577607104600216548694419772879160002588919800022473915006569412927068444216100608942600402940376991999271713091156390840635660672499671989296377147454690231023702327814731761945591083354008859929441032189111382106980129459679482445912994151289452532728667108839693629420817207059457644881416817551277115254774088054004775750544421833701108199641257686575315238244473584534510365686728849044311114434749890482705272284678133601486889449489292514674995526332424114988097780282205114351246922571233512099514593048363793774626337383659714077462094727865383122830999723130252227614033709851133791310396025617955397888257340682456217799951380573323857060976014088570912946363553385948342563703686680484537979321329026667522855198972259468611029170033356230765000958166966115653793500239154056825412738089947963948993234435920458257515952500009499806399619154268569129358674391937402507815152967216209612851350851929786155965996630935431703073525799100918619761846618848990400124860159393331970939334777623680454613500519824066167142946775243021893512062493032622184162029231885222755346430098819206310121388616639947687565785014433192890391185640001824890753964099199952331213866057614824415008971634743895499971202770737857795855572537024159268781632679069673159836356999295990187269666388345969997944091040489262754602244837648850383035250301462092546822334904887027577520649714511343866341057599236550221952077036443279769271439376755706832536728659054841998460467130435693159322394976294477520659083776919537917861466084433069469837890894574820177749552209449598812493560108910527658681997657914975741785318706816493752683803299407671476071088265445962400483565835555229156481794665419410686062827339334532785129175991659867072434493584189696096783087756373077203932721596509443861285593864920344480891564815532115119923189299510030593380752975945274261419245580564597634717145213748020498572089189538286739451108534223989466253370523863260041329674450371727271873981258953607272280017383062421480950113593760927605405619722463863218144643668816870578088911993028419327704954873249912223344249717362465196577335422241238294660938031523834593176274770046474719603109959455410625776081541892596916493731579748524559043312885994995138028319631500014222819294416961011391205490439869836203589253901319301849505739650583526472617279473682013969106256316381837168443415021101731748280024876429513968639530390401172790132965810320930097755873962729513359513881590318671230973255272140352533298597772325129001880237194222209494817899098009383462335487161313167498986803523522160599098248556240505365102266652071476678504613972347597785214191515234548678209149427713588461945255468612379496150581384299959853081624945231996503664903274289439857375397505713862146633103635084204514629081730945545819690800524578280492587331696375633175940702251983134691597659022583278652317362317459410293417845846776872884427747987276937274882542949401010030161850098249161389254263131099893331154610763916152460336352096029008065983422993801648869795809367911179795423804618761642332569986246758894598086058993047036658715154804291631066411639640092959413135642259499947873133337372774562327036805772580174825422398851941577489331910520520810056381784619945178009850884466826498124072277713757316665650154195600233332374876837745121222014484799287768537686748717737013813759316508210594634071453675908822103538126985546253870426722296856216115928687794151834163204318926492958009272953588917843226582915325881424648019747273833858654606845979720795970574807307351341489332049161014552820826002946741874569034881547761310966056449569625063420905634826187334056081845616327643545206138939084496361015764857947023710990424250431826930365583682401479374670447839921438898534363811969702124715257109491857641545623221164355606244434903378000731156683782577332837036601491931369548146463553373603929621310844130963796570786634643076268083970422757072939982550902664260946348171305556566158743071246231182872031506423822354746601168247974212516609433057723439377034707066322550352359019446338647777872237372116490880704491072577280757371893693002451243666446521229340690481253131124144157019211929735077810678959701923123142543417316312321233698344069632233570433584602799239950550721248976592140737184580835880872360823144412078514152728477744286964244738419699358546226905082152201503618045590380999248744531172979565235300100000675764575194017515546792733956216554911442462154100241816277305288359371291847063439764503548063303697789434212597682177804495256405733228515233847393289874040673962512150762795950318294683470252365589459518796185905236279152375727388127490745020182325259152555517159153456644879167848030468467111754703292342624416252760246413905112276150766628987583572407600716130424039625978125401948878604389200571308638300067179698592093679263613228514220518540305924050361984521235476809927388665437754665410107419902273569216355615434650757219770526471697244759486383248494735289000560393375525188139665650860150883129522275756782656406225689782217022566167540361454284769222517298793048418192079581969902469455446688974705894783659355860535903133070761318363396235895633769578661600669137258693880630905840625562620381179143676277611793753836158319962643213055748940584913767213583131924709254953595176802018104555553837839800314464072628693902569895275800055015376115877333168680977505098535841982331523769111723548366507734843120204599514943283796429843573973603575529310167011553658397994406631241943188349354163456206169973087571018251202959218408806994585797347043340998749651083471319216206198596999283655461138144533720996508496999734729926010027493836394544649405158404754778915717779860162556065523648729289492762761214715595410310435313944794355435350158182193451325956157032796956530735241611879515503551173153204737984228382094996622482786502468964060570068550766954970511399326674083456945902789641229771229906501183601392845514646143316603359852261903471196990436004566777518704374353273179291967352793782740374269832473238426695280897650033246525073998306430167062404485108311561476090387812794847199995875349315582746590693501986812003760788166860527212408727013406909008109655848195007028588777730996277080951718001879553979437744665857178339434682439480698456667396761877247616441948397074343951791191156869968687579307549933069970054755786203145901797538195058722380420819896185459518368238760277646412620000694934929361982872924705596432091020157550911080900872565157476355104818513418997422737118835121713068577556062337535703830910015225679985119635165649435608129464874267657848991940664038447162498778936781651250161934480672252578359583875715160716490818580157602899837964671720550935579572867072726629280559873741940177744344682690691007432266905306606330376165522527271179212893950825365107170643804605755211596387074427003268430963625687872098530902259845025769132130728383837059469064294037991544346797865963142371562490809855912043850538199465658222457151194593153986180276664446579638008032133036425074268374145050839221410566775168943082659403279084991967572784647401466647064169594176551871113660848781921588365893693541434979356118512998278770343573438814562701035755679595623550997448176339574512913892266114308771368665990711478387919176177780823883238962160116615531574613262353119688468297353636283498913816094734950574732164579421029039827764758039805234681486395581818128139533647791766025940230845074804584178650375395903251524686733793611060898214010226288677281219769270473058830995268507579357932941049204910699237118254833238256997232333650524568151358370150888822674285845504141231196950498431277155059535752012114695035580919626777100451403632119261330164669620037107802447761245816093500473502115888458722422765637451209868888760954157395488592921055707401041423169828444304160282319517595478670143412237233242884355807891855129503305073287120281735304664640258447134337086616873822373978209352326725271939037477455260389177848713468571889564417177478332867819610146293785318752161583321024178087505583209276554698312331089048401595272051565930824850180960694612942441513387082902371711781825099395194384089715145670643710697109483046956603463547004089903336914317520773265668703343320845794988594079302246121850087630531111286808987421866802137875093368489791169567797676343929512632357855622913261337977091882309414903051864202928800042432980405001153206801690178795449588144044215387732090503288500362336322842054408425012977247767622960795707157043659588994470126126057930729555688279265404664063016992868338337718616833368536113767282440848696169745579807011355643021465235891361926386504062219703205087240985524464302545607890967150740706352296552443938761806721834345920718979659322627390507505344285860995309291158209345923275097016372518448454070190627599238029658295646325057596031097553597904465223001940177170988863588733337337297096623555370376516065610894668828742038364902253296200760019796969157655126257291854482473581323845880558531604100083736387693719830799077987941021575598299094378896039069746447735367386585583482231318610985037813561657964013644622020077623104953904967456271858831195472155253420584095895714738802421314674314033907635344110396963195718137833761700801581102482069600288452264975047726222183887344239842436003650858802940931131982544052122993260823671850410400919090527546170983676011705665972912463366234124715997046245467754418656302599123847191869663822978753147305434847601769267729918396320190331631203972037190969148593665316541437158095004860331703249768282368061360969673740818299486525281055213792765300104412458520979377771726859516242402600888559869985732292428447514247224192201517015550771042910748795139553575611066151825365602494872406107990865679469630128372842444059106213526735697746865195730192226914758533678610817710262117070775000509526291500294601257288199652040648268978854934405452719115227071556233955209844834219546162060077665336927767821558869794586935888963806594959952099303395062263346216043281460345247200459403845714332425433039090034390937356014715164762758975508511138294624431136550345483639716327273950574080085833602969466784686693104943150373283213052232650557657650372966141827758555962200952261195736131451688161071928241388801933093577938142885391937309770705888735544227149341395448280823019959442443487583806213637116610331100303140836579779028237236295231079481932125162947582125634638352434797593745058697466949306175884584502369820053688916113325341318878929301208525959988257235550808249163893968488006686216440591389516688985266535596086168049459412809477054177608256779992130362240416766701311336722729337224654404784737104944851624916755453061472055584743464029042196355614656694602353883959807775990984494660124615967489377638296344016170079527867447345646517844889574897547842589414851356300865958353091713728083410479708230393311369846960314720990631800973145432575245817811022359818502723504410517638215842092659546559182635272825739096927293275754821561459678029101164436915856041776621814127121164772250990682546338701196516595366748639679050795660501887925922549707336547050414074700827301916123815924929600375530443115222409439310457581557708931367552301537094632705629459004069122210493645128407260468114207530749330021431530151913597150606387319436738721027401949587000660473713239978875159083641668031653222482736310834187788777842120930824744071825914773615889899503493136635438174703529891035086496168712751558937994655151428192303618352986547656993371351530673998675123818596028154662185459957202117119002589631710698778191533006714091519380238920447427755388946149734398092460245474722786044633090376502162808508932716145324999461077215685932194876141231268050003060447498148057247733639063292117959651483276766363756593540703362401011049683998996703922441305803359221256829506586462224098947900008673187997145858609215673727212157573144675415544564973873239508240043512595214616360308526337514423113172478099196137695145543889147134202517076571175995849056460080468503555795131396243612283086075346398452556795381225431893266829494365040569928663726813344296683301361042304629568004451374902317106384349878380968471126510393075232262221924760076680363270202188960898652325502917024691081858137786460830465129477566293695543982128751914620711706135060210229106678443833212724732595997646116205275946613954923502830801320624401339442279732300420894541285537364766276107381759399967009594435817489072892560201427504921016740495026701558190652676891216837388739208070627880977262156520516287106551848067155787165805337291343916749214409969613940926792503586793842864315465785280252029383973405863487283532589247896780654570846393756526754373582194836089340461288769576599088776388739553579380203060728057223533819276100618095002097944081037234925603154334280579296125314450421548778046293061964904303969653590419695993489275584837922937752079528739412243793625825258312171790372361798645934667327941526128138177983285439303783755368187659823394206217812897832876045500577525739612750193627802245653763452503933051295160797264955025651329355672495738932467767285150624666637066548602059221041080275042182217461851942083191533024961432224425601303622413323731576228384506643347696694265862242309757171023825618244794278193782412224260335401976759068431613629114104870539725488162079284641267158696974025777360535718515155524632845091928169929062976640917467452723466036061905735732484871120374875486241640647820357629155169379323741365998745320434602240239236127500924574053534565356463374347673490954039420632167252305023627402166826939521302912173386745667980910904027321806678066562104991563944626930524689989702012549647456128654243076677472900396130176732958694944465008828390692457991328663195541335155232981151627319094152105614721358671908458933408853280608120704880898760692362988192926637644157737606452419084081120875898292478714183530065939648304432764679631918731538038812025302377342731786868302357144505359162164341806963834934139832917572514740586349248582409511134026172542254438970050491610810943793948146836027775682075484142750803080836617145117929436943584701103901754406092587026094912038590686489657701321042001801688655872101365267030278908281505093367805405611130796325226751183405249397363433973310827835984025335378852219620835613461849455150067272985299960127090927477552201615830769559856912917265527811837410791829521991335531721091879172949194384976320974564859473528264427760697102190142681605865790310948501660233303452609771707007872243530903070878270416465235334900103163579886284318608892757136605156763984529803924117648763987733134677147912282258559927972338613993689424295215711674063003928465611415443881353319316117103750211399604254413394173748466966486590680496142789833707879162515244700366885375320064119704442915972621447870570788466427226479810504734836150745570074481143156293798798323139142070829075899902126517862814576087795954445499099516600555024801253411628758840754688899818123158166509827362918387279546931502602851675120864291406088608620256633060323562391730400619854395668169188831014497338525007623203164157476284214119896111519007310835271655300734075929336602644773058430388169485742139686954187552191479796376597002807030374602277778510357263790341045334703282090764583105663385286346663883131784785405312118282148864808065753989920511191756346058969855222953927304915985731717519560484179055893455546641507450412288853662094784234322518224075767864267726494693805892720017798253798855284816582695504570207697410568589212771695711107777076324270348070586159450873413634361522559793038782022940794323588122367515818231039684853217903010131007897756082648227603725959952498055745355512772398210756109200715806624574182967786292284677670296400270099038795018517082099304114092229332948515171766735895214425536419396852979167126287757294541578260627709802299148007516695694740963081228140091831635601382391803533317832775283591033994910203634756084109812886261825974471367844564258963021554587033381078004019338285540795371659216672526116962774489904228770439221963281972152385864925835904894118309265261506671013007023352885961677923843924860018882044905230147643317510387296866707025018727779554240097505131853951591135420066066365436239552137351822580070384683391689825994926109022826842605746171659963800558676871397232478452983981978259441058379297861089789849876379510992215701214695493378648796777481131552239348031784768466565141617660240223384313277970228257901146360015089922980284317501628538451603423171606645440553509538958477276254417817247485828806362300769050180748628335967215346275774768794117745619516028384741998190776838824826647827497887851376914390353732570904344885063111967097107024334257444509347944964310813246260170847598789223102904596225017910453522999465278520920674217187142091657623849133853234631053433374790926554749253843864684357747293267729355149359364759433698973642538002461192467351829790119534202964820488105131559446644096093546394291053439158266486591373901170889279929907000009839003682845656465742707839573857141450577000717112308641381369819687904880173090260657617484707999861461609942791057299542077586615796388148453818321577938618293455768614426486289940345778274692005664704541421514964785772754024831801571138395843797752906194974378722809222661507632743933696979640943725741885489328357845739989302058488838234170525065643521367106325398146310858834637751431078611145908889847441385223040286180720021534520581123347003487510290048797589937397661981877792332148304945253365347927741071376373559792516369111556039609452870240439116929243599807837397666656760993157991342530599131011832088070967029509078927117086336180579558801351204982871114283526531617436813489178187727151816687546069528539486653931489768001578757640454392491198814700031810648463778873277901540623741048182863369763751123094189590760853856025170502284805681161157874537438731757234776254404863739820110279035256379356923578407169861703725585895279682552276735845945596283321998719754170776225274153261336196750970236207873203537205032497944841814343538977459963481475664145324378591866949472279930038319931236919208527850809798235739989815593328776887102589627729154673796880001350213198523933562910606624508245876610432362534500378769028563853788049519337108565564229491793982812896654923709239961451016835288729469117018657203623052548409983117780763271077096207431689883261796284736742202779911684835008779723019434112759103751304627125539730700548818953449923452598119241619543913877577988834472365858450342783841760469946819771182317885833345891022652493429409507108647396599007883077416323567806472118899424970939220524735394439135020853158127055359055963233571354116793058150167462360483656646347304719964383231002917378991223516418597995667364195881646702411173510892741909600220448289774824680215669771281454333282820310109384203100674916542758131411118801541414808864489899538090253268488542075963917300636572291283123288073837932232967706494847424446945534280278824053874203794780002688997730899217614107921634442899859866109262643351317720169657638862431287283380514040572111541579233747081652381675443719634960340738196071219083231779774327436781290754088100203554005457922251107849073091853329495054707261357063080485700916086086764933152759227085049846252127389340810401741653583013844927385399858854185005421091660640420135966680770434727240443916649103878869120275422197291592505015495946388376236842800730507882763155701690707093517674173458050811042264167631095844540755401627497478464525518068685387538428421600460056372307864875358898818091351563172478655019421583344162497481130898365763875435378680405021536252119293795642447362815335551109971779214466786599576761521251447613149776546932242997560324402137112824167305310160646419778214578693774827935420217418602531553863469664581084032883491321905251769748220446400089651772791328720938654833629574714845869169156401719780990104013178470841871021756231503472294745265404938516065455956912461166466205154328935177392761744743742984600552825629981614256567723731053969352138001508390994422974713623748041968882814734204643581319718350727034652758271957646776376010675885123192047791118458545098349555091265659238801201488515219839967205407169779424853946895741061544862738715395349103864801317466807348234567484963515180928918223263905769792483240814731236238658077576730823349081820259622506902698199721740336992353920819777807717852089705806595551662783819421533869834262195807465181286801276985765767049540410173961469099163725701003949158890285079320524121545318124068236355048654035504557036456265393744534191476472469963560166274301382907912107470401762550211423345815946566160358877947750349473528271552400989741963141878200164909342956347009506291850454702962412047960905434857436592593446949883151002110531568254629334145498311165602662098131331316331538897874119031513649997228822125145220949362167418990176589139256082279213539363084303995035938476559973793596133999449434450542353249171334119791968334795811771727539214731544187681915077424632674984625096304060318226281169527237119144180282143634989645293716626569117570846251654441191777721171430670977656281368282115485684193126752396983779809241348126624640527378116850312923417761149130105684649680653787089078723704746617088007486707318327515134035616366697237375294392174837639287517732102867956330925647855933097198774761126104441906374608206017190200124566082036942484088168542009483539663410032541659147696110220852768096886284737458439114428944174262837540367345030981729310202435554418668374175520731904330067317688560250203266304666883733599113185402388210284323240397865722486610067675069907240569030450850708487365848000359991697162226783828462033642492309789617055081111727074040546213187889695449585128964344526234090406015822515384828810031740827471940627965258090290765301982233502268609953724373049141435806238737720053383479612746177570050558795319013069380859569996293705604166478824045389944289616333972954989821702610205381204576124549116726522501653888224918232888205013939686528789296704239268364403004189722682060338649162693921458866995808867840207933487404559796362520922491690468123619098270844936275154919907697660696102797236989259082140093823557360949001535326342438780005095823905337233802682107194932557427116605844220940026175056739381275321565626773090998015789236750090160277029328494197697148641900740542732141224906069529053286226759908057069365832922617783787804527413479100875883162614271708610422902125683580260338033159683160310682417370224992871419267917255568398238979824004234691964172028776690239789966116693039498224023153852892676110667989752524252518326275959773982565577187499535144128522484329811245506512202431980873176819290454882918982635615289146418589722938201299596540927436505052259242193793471902637488957969407333382637995696771332101021412209298940001507420904152458245624485711009719243045667645283344522759652085645541844514764315051313859529884910608989483589730542765108416887400667785203110827971426732027516780469583387429053112286520350044478774127450521282689149397578339103133685679410272812432566761820765528840576837473203429577319675486134686080426792992546995862554239949033450246031507790328218495925824439893729987448242699790848913460377723388093410589177085318067580448878005028116639859551491470466827149275735127029157051167916772548841084314080481994182535094943327187769099675314153221491676931963166306949125497790718128824610789973832484793216993242104956878785000339417470950056362120628370539218972706776436387361556398628911925302534553764062542974790887906884381193262941519381293242825492751371673802616179554429175315405084671405402728817097681475515963185133115475871593103120623185904952288500599023804016736203746715073944647797586051374502788787995889652579231205827470304476813259939284457786521035999179764259090977678084253069763175952360012378919816381502437356234122950699677186773801940055582228199433363051968786464077114425369018457811012695875015669333267490520082836113644152770353083152235631600966181499889361653971089647212210387472572201049742774177908871560191928141688697297633045575362920769893560854442151216045246765380208570538735397688300787217262670610199135547354361499130968692925163020058621201818277526382551041161771816945993281341805888283765674699544129567518722828469911424740307251904870988892067766617515293204575508425026944752857750550219941239717635123120879483858277606987727895283598390412938324874636843750813962849164096283023622562181144659901683216924181165485191279617239939362059224030057790095850433890308438902099271151971315831403003673477164660024064467908298291850265026617607737111254086453281160024226025233294006222952404798057957893810427887757702242939199066345902109891449596488286430888509477786225247021467229852757980350511613092186678074049224874453906475738816716375461224051578915775303998382004463016826325888225437768345624608489167463430257495629294827098837351191517750414861128111269187235189342561338080022074203819683247943121817079781424539740727641045965671322546344547281512003286063233631800113033352291285318481024507546932086964687925468451898978852882354494517213374707080085841904693301972494687965651477724701129707635594535657845812527222035953654887202759257098834750411936832446275977042432125279076733358601739165144594628329266508736222989595613496256914844021140766498298916032383518207538717665334620709381031683644113192164441448625435972479994020963608013280865111766146520330263018439944388131199399710747118755228617925127578794616996203671354658010494971574075176998036048116456427581274094157730958391681813508952812928895755878793891771029001914252343503240470547873660350152791756240848696304925822202074228236732817852050106322678292543492172399540225990851556351195080591500295336008098446613018999581661105253448366706411267350840648029813700238182941699507621201992170772339384309882754453462987417299793004351423790795611977450481451624044754898310737560124724995499358471558526576289871394722100260185469241522858224830770864569043518866698223036411484941962164185943362663076195333991023941461428336216254184784994184802715010434218810439573032747149071759590155631651428699257032875237438306718907837143573571683642891063891461264051856930822816940602999652818030058470052952047991904391685975571332973406014439901240429790625750542826486654991298492430536994064048539205643807127698873748046126247758915258952086820811730799238438820941957551182385256800039369383823987827356644975679541475948122782089778637304743292381965291811933624319512882131933764044917053212981235211678792129686060866219822892742719887280225207177390692810426377772533402900877056521547392766574082965732124214105364202925957354494939087096069296017547948518303381317187115990566726058429027522794353248990026017416278923887385741963744630516675703984017550850936701893539411402860432792866044479308756136408825342538160924640652221657759108659338276289684564589896247614625777930301878658327770566378911230137114458052039863996436177470196652473786643288359288074791213907339584381908384425349063215318806523894657274492800266783663815434897402184986742749494242897986774413064886133766763583174783633171272355543556430206327325683850629294966002591912861915528174307747950524865465625252695901584398320024249531651476756014347293813662739014707216321143259513360717796351831458003723718792037613468098502449911799711328646134164748104851698136056264851370009710348608526658045662758954232327476965828231845177482155851010849172689594207087244244874689373802334999667953912454845906109273369414149548066280473924839736623541363856927884564459938586678354227519599026386402959556496444709545507922345794584873562637707972369984153671862505069648102895675797264752296046734122931641099495456370917035157383897780302699178764794487992803977629601676050447827558733090755214112812501647728878327067941553343583101548217332946146338921560493348453382260214700893875918172700876515241926576649149124411472376536906983648738553730462195874856072016665201028742895407415612490012922836052177339033831498472754123535979620177507915458464571033158890643346853473765553512345319887419097122444537156997599022733602077425141522288520179195035630916403428079999319080590996842436534354292428681788304627171088704099381761516110235719004298549614428925841908384054292147665471164180326059514035220479891432574403846839652961070216698675749199016181756691619407500517964467701939100202579972962890486516744228739634730955589308582272879417597625117266484718333167530592784650616978753024411614945137151744269099949261511604347081419258259502977647438034246725225804960469808012730200651743318723904731972976148249756049859889035916130033223601528796842239976387881386244936218399163938084743855861294079016917043806779635451616760274965022879835538576320242635618430475229962138686600093056315021928567197482328062551640988149086713431950867219917197828047989971234036249728519529146454472277003461455815971912082109582584566043477342442145123475413937150132983739501495868794909970817459900804239846805722020666122221614361744300660590591878271569886598627870061005411953716787062256096323511367564228772842706009558236238308654051759382036768901018869781380084737216163035680826781646757756744421325751772415751627443531185272108034038387035401994637445970481108402892299250606062679050151450421025322311944112300298897789212591584447558314023532113310076693755482568477659237583910185145079467423117501639039574938429145079792285490713267118335153586848401048652277811536392510458141363380124686625961541016133935989816362947839411530970433932934538394624441169218490641925921676026288894098478091043179154271656378992026153873395632421321980421264764395525410567585586360045754252274898411092088504280602971953297827122514988364417393078730157519431293707515320169005913772834120178538921406991741446594976782438852790909410612053847752277852221757074521223049811779935841079362953964554089248915764089119087523503971345393497400772008266282478845306332991463183258729703175924066585752484414303627797742053842231405788691233082928875945091986122651845164573871949264522949508828808189232302488239952586210650088961429045644901103522512225044403631444450112583215293625770424451707975695524395556048983379742243522894157180694343095187955448373711213088157718192984263326175261986786139899494828759964079926162449946450293046729703085726861265054257680750585558937700324372935520732245705586117969618593976632450413567533941742953120808998796401491232015454167762713481735860561532716376545980851581258297646165926604309621548209893474121145840802666946253095225553546325473187854975023229497907925262307160769977766618399219757149950967451451798620074734905193172993422731976294047419946141885002520353338441946967386327095030753739893283276693905809550825467697220560925667694278569880473674407267216010928347813261449180248187034624365217925051688204594769581022614661465854182316793506825474385354439892042186289335399030885210005519525233765626714703957756451359188933949896677086364887812989337924423332309953082089740474286184904831599223894164894404473716412843957517812772755124521110919001817901649145535499215646421041254715156850101136145213796150522040828476488686816556702425105031540995990962825591339144305511486599224224310927624419429627147963488187176933635546691136678323561292782969361564211115017787826513404418380773500048142991482972307573368715131368157159625873079836141863226510462934905039689285273003705816639453582525500969374712874669762026444361450143457739928422764182626668812457481508341935210297380986182868686755070450828291756049364883453889335948800867515040247270576916171272988081687509505813503084878829872602441544890773459127711817024470666627719987317521051925127012074688275822248702536138309511111537325068243573377278174712583970691602225496250134994581668539007047037715031823209556722456418160470212047331856482273082883559679048321272072854863848364895864367720357872977432944811077893654265792417653302691752538788010371672612235603412514531914052381414198274996450695428856910546741456486373672754051960405405202327938784515632770060186616050594723648060986348117993588509028393804508106141185683899037196888946100032779159205320135065032670630838889379484554054421078336661103945021081669433351586825101752513066740474525462072298689526304801337352678231523906088065934364220862802265542465853869874541772973672804708867208600259892535186609630901738733493003176603500679416555219732645901347774112969508942431810269990792031622626210094051727503086498393175238546342933124846908227521630292390240121348906502642993668615946823776137964896126440310125213471535607253210706927310548408200344860189585585428062062567560352909738062004235915051016659971000399371708278702653967244563354567706289596749714860914447197393930799928727962949663438508244595371604856077832169816971482737162688778783513954843582599668047501803258652838727213372389387504702330619537851605209387580102799801945232104805876345104871903321946417265358094572056266323858978386096778341779102594510060506117527247805461792802529055263923674444478832911307724875444219273432399828525574556100957968823759123264323052812031228218926330043825351087154263435786637487019565665723411904741956773460843453841957804287680227380055626443754591088605205139866759242286869158200716421265258375358369258173579903304381421255862606757121675101615025374953751862109764297880689107810344909100441940687320146297115765381857166922014501057653776635782556761249584876475650861323011567439417657960650343086260972864503758946340335539808262425078735346178957488850533415215520369239305508904121902958935153445310151646593897211499945335434186146931513062497894802376935686969017785826853770260070407735228121586206328690993824677266781310062976967165134414171187082302741769305239018031102235798482216927104791618602672807078624045126691511088252610188597236745156276423105210172163651256530905675714122582560244941164413238418318166639233081946473459214260421016711653715603716780061594021933803890714769056472039470471099004404064696877287455323211326027512266368905162996358271307278906631818264839128288751981342838919245779553633727054883132325445405540349402286739215567673917418308772289461841020302228377890673383227924701171582297968907956306498695090512937194542818797170314376792328729013858566553744578090135892294101842708057497856658664241540937897065879490986372920130302208576207968279588873260914978596438943557143866024953920335317576333458948146272626898622507884327331174652336173915084027850399534835816970987737642843464761323651409287508645211076035795530762553823037330001475063887508708925150608428673039172687953788999843851806921556212608180237183567508552769236619455416770767529451865531793027167058173133475836451691383978557703027282317870361790127619988278320384815317314297745575599992823927643879896022130320425758285076482914680881525113354757129956999315194019519624928063743110357337838442261215143057233707644439309756031668435817416566353615723102491068573187094544633008923098506734377943359249785580131913055326638834475554614948933126402547468606603138271953493117160683747294907738781541748358050553084372128870461520138327833976100450446337424017692242710646298284889951917949482787996289661012525784152310184317959511337977311047327280770267689817214885390511660173450228987548021241370913967757160411260797131196525849313843999961642098716869649525838244234947104727628023810362923863545865408027502309974265994958920156737067835233684717932948777164422428041196449528212087596597452677622562946998927030199522203819305744723549419226106689726775937368477519428652051480809774217634726306438545708816703488198889539397616264876524468546699605898066387723160098100569875157801558830625014573092587316275744017568021738090545772189401355659201399053485989702284831170156921077444689055013787645784658658341171349470226626938131094608506621153869062912223415861140097877384720799087085792111372992145185734441127887301114660252925422318499617283003745199647886341200182686422286046035450835695460506791412467827128148426061816268702402771285946389357445560912281888256296656914076773542907741176191524566793824187284597193396362302452459609386130142300520519140991575048275237411026003329659852566162848336494805537269341455173298722121419737068408559221886367604660370758596629615317827500369937993692163782157175893417231295317448092307972530884190185942792366338242954031877125860201569983179404143453316523471296691640543021464612631113540625858722697698869127285585491464244343458221875886123748836805984712886587422959059573275717953435450699313406648873062087526852265919735891844165009345993756148575791592931512650962318926220176536594897640943463702925931699894545585988904795269863275226628573311056919676877428970720910986599415281318898857473892711843785943007868275028722431080423812088375715983261470287906884961732779138151625260540817395077419813891767735777450301020142120860399305092714286624032640799596644628704840872151888750971027726071317322061348937520628662625421959435956377057038457807212753711256502370895102310078510154731282249557484165550789990100196558544927760920789434633888478628741883538601913079496464958459822649473521165993721296005117671945794098248098702936646441952083983739502791326230382970825827248942256413598755938730583576862556694297370187543129892247684648364832355359201957740746550049334412142727244214624042019401317267771582607578606445123614391644143135236795242797193603907695524317349525519848463707029010222516400320505630400941233357485374964318152455954488788842308225788244361823496183573513255382435199416002455873729713248705018188331094740835221736015993928751446027629954821135555216673813784818011042593126452851259712493841928521571771719999854939430743214160353233399259402725839547423126653208939966283354175739476456181845491140408087437906447926632719795090980231264479088734135637624477661692216240792715169993831959145328568506543104099859565787388502617800695462379729042871424681661321078122785743126834481175961484017432610054958528751463463688377058100696007937897070603607178701552694131140191273684208815683152530401077386001159522652759256052264009510881402455556601439679407479424553833716188624117292659182847193844235481633696789968217143689763265041644926431291115810854671551466260509419176967842479071841242512053601335834845897737021293838205686586801696209684073041481517702902070802846473476822563142559038644667328950250979922335772149995274017654331775817028768167270301822117843679820040682192264436176088593347089740070192812712313195611011456505258973692150110018004295673673800252905950238431043985593460931559648907861203874824426645006243874358299281359681823381544046100438757378224984090222513780037140431542242707838909539612197553993079224934407399729580961943925676102337769972826659779318819973827524153889618172623778639801114808085813450234234015275469280439921804127989328912279377090990433115365036801409558963278941069399072092568135781539410052064318989126422856682891829875883413001097550710523424693061833016589327074873061794000645267058918393783380201092540255453301625170970793319560623116246972657235986871361648353194019526138188686682491470543981067170533611252686850337003914288817049135342871980143168027353296243417512660651712229057285599929735779360581652745247043753202033831257805959194419455262924810699045056330477640183249403783322949227552420883839902738502605745154897878652241875324875075983252785337721303719681405240859451180692271465959296698898947892014245673370911972834551519141444795896501152813384526255323002612562346402503330789755014312275633664558315029484045379428900516764328003158704894637075605097193995058026426499605991841413681793268497769852018330972783469284534389428662145137023825471383111221038575437686602010902546751857353378266966963266443383182012069110078468000407128028219915688678131828404107503696472035489584768939134874144101495147757719238922755989854157249410755376977048872648660866187112823820342157665614703384536262079079136853434752832760838325890547809182212477577010890628128521911130115737338950922404181548839203598775477478587918317310829654441376632462034118669745776761310654146457934248216315746880836592664819101056619925050043372519834302479977529315809748832903159283487963647921865711084465641286143005335890508058276111539223369044172150462452230517613770521335080953982545456841952840433549651822151047380973445902910218155979407247212248724658168984287629005977865484805893841458324411938282796601589394578891215494066349708458712853486030961485144379080768371236237943478627428459979986509041810706989063173328284177157009952004761914298042438601378454866460182478762134243470757787470395892657025871851038461999341154579455728020503127342277997174548497284540282250537407672365277589673934081598021128623980576544619175978917116500926648117481863854873756576269734240856982560446028220158169921295219828434054945269969955443980514516019245496437686267223186663895364579719781457718960139505527485263581145610341629595385928413506824303249589714273613901553702004684415306805457573294198765545986359182366035795438838943051346119702359985703081547334174589609199315347687449785397481391175127747630791269435247041042335936983845355464562694616963552761374241454034422426462386506751498440266260271323518784887359838417667478716101578374930228461421929387361488465724161849978983656045162832476853206371942670730249247221955132988409374452017336956740407777015281741056902703314580366438233749536677484286621803859550129664561046164644340266597246820606147027075126484350719091072661422986787644721748090918899981608896580370400838203234337943286448405120348489876793905416268698123098986698431161243898357502783269625298557532970061505391171226197778280644603019615286418295201403454383380631349217426412777234413555590169181368957695325646722947820682768928425208719146183269797803759015703669170600551349130700909853803265244801265346751800113601113509470215277529889905614313837633894895368461684401544101778648467806437856180654471955778068914190063309086635750593926335874003694486959709740500151746657037632548497761064932331500052656980837616312196801575252757065277535042733910960709821315685142561306037345827088357068558962270267153550026009837580082617302934317262629579513394831556520115559176367854240266801488497657333280182381361379409877526683995925170881270067325906694561558320015396428650987761416851843735730093183307574473731212121723430030353791385595321850784188725556770654903034375555714868447473514490725396595036620389773937531559462685185073787665700198302259482521356134980531765158889714039963399453781524317127844678132679399015132832152764823290904553736935434892263812005267828471458133523622262561382139092155872706672160732924890142078004025073839443763435479833753843902641224184580475204684383233138985466342701180827599514854959056123034707259753818254058880008783953079479739629612361975439539142658441932864842951691872102195284994727527969123797534491110381236812976748680780714737774468104547435936022700185871690299564731163132086415327432235173449053035783204720475098787044920669183502970340536278145010165653346354923640713827505762181631124076688915693789741600105397572114286037717229236531162661346962165850285097433717479003503056321936373811881612218380507964215146120909685867344490421102813611597291742620938717187393720908454053419959382277873449019612078094293556412488043546077200886670187860867730836948033301893251549805388473608471961505012234906882571933065159306940507554182169292387886482564526953084569639363990039717332980652857067386633968309146334897282817227868110005294836988758059540567302021146462009514046763448793112127466020249700197785255465388828407034440314706750413617669207889157825660557362909828596714415748705664463735427738968890204977693476602487988344891619036400903032367392808537128478459165674513277712255101025540401653254217059925098667608439252436170347347834240062837609622664121848352680459752979061750630391349793545793825104154591084820862487303900566874485981996237712219627525396790045103757709276644424327446214215258174247012127174889683214573935994744885710453038114463992461324098487436176547023629079972230110176236913049980743500834751783148072501697061185727530865985460896428117939639483882338446272206413963577624202507662337181238719359532694012886318139637835292297503924376823714698976947100263812251325446187718137696559269666566454335907987912996679316157851785886902320448010921027068458799036119307042666299919726921588424365871581987217200992090889474037271778410779736084843022197247901214060528282087088392017442595627357419673330206983076437822830176421961365251362585109877685635782085241739597116451846575456482885167639193749062873721341527437724085804349003868872392892209172579689441030911174920749807331063908024167162076134733872852431792329774502027789359853493456244049913613479465002564579372803879346579921409061672101076969801077135308146659910391284239012232270471546256857833219353146665028680614344293790230503349103867819771267896329206391143081288431595657362411089131206907852243546913911615977170928258681278519455475308265097731261136581408648456174400108522079512156557709346665566690284365151354492667666450394182748826669830661904194992876360877585762117172830132271953115917734863214189214969070898528375992639128907285837008708621115877579834709567991338158989611551823679897063213865077781797590761409318356706475495901398500437174022105239201968445549429519723123521538017727351834151707408979074372923170539211024426614615122026041788067945827259701563208564889264849864916955848899654638149300318334286565737580338124042271529421518699400952227906330311563819667705304242308766843100219444718602154088375567505964464585399614051892736492367846981924885588825738305930143906170405939034612309129132716811036563207190653152841023725991175772202422727441918909838610772115244693866855381900275377399855089675604066979344076942061536050283865404865572736644453340858486254717627112010781475194205501268068669907498195266991377578596739224268368721822434480861662630741769959891867840381424969815987712696776959524073913073593851636283807345308616800474832783753494870202828353364133706313736757557344964148952405840355711479594211646810275935968671780107544967254229021049761888489835389658366258020056367973707539055384618301783409987973855880135670521714127741558662367006588630227596341747210264699620390524268446509836587944969833391741874514518113818538929204787825431805301376677869794320479475417894429652532398338539576907234179281695179695730282887859318357253148117434017742298171811272815907819449013695065127852029178169783809944231889277358843196169924779950618661009718390731647248442522642258849637430297909824146054364205016895519320866384502269084912216237259895237759448728620006926532414764828809041268066130549591661995416029033313211273749662646101796157506942788563961962999677558932781122023075466760519805198434064415989454098309984846987803121154166951627079594731154175985124391250774233700021350860725368149912611099729534902640348836080008263909456412877652118760175875346486893905872093012224559902963534271127793623298475935193982256271858260247758392849832844576760550305535296858725282920849043865865725354033787994006842291610929951559019269725706744606638629327540860010003208383265902412492298004656676456562786427069733596287116909889342849255904503126844841114191625305654021762065233158697080608848904654588876404080452786707613792327353616182242723411673306451814990476089299141745591817924982260931186360177106505997804232102494719376826760956763497397179830560830327269691887349632620230496503872243172015152221214541344726942493346921427677536797478971852571929013354943245510164322952569722272330025471970265381094464717601618847341321905483188407952915527783518149336921584471572349483534235063635863445942104763899355720796673902401197055390329537865187920422608276081514071892356719072012312896274644557801308114623559803427092633251601277877602999162985055144309650219131142203550809707446948736944127784872161011598355185742535782572609488863998119147877783994014307866605841234414582143206623829278442564339841475611415597203067204390433368534974922197979738568779197139653333156724657269121619609585521619835353117341281253876675906953614390368282693447176092115449253287045678072315421918545547096145527498042000530678971393627932683674502647239040809639330288052910220067542788340867685166214491249841865444785947107246382155526500815949578343611794589891513442940503598675585178398128997747514161381859698204339256744257067483514002586721685734216136864027662314550021586097599580052091141877322871309289275073464199353738031724726972384570833980754789965743238628314342840560609893142907603219141796393195484068537170730375512055366970390688286248870169586278196667678015478823825168965721511001955163777359105949625644757719349756966308782893745868854545918080303538590931593679822808190428533841738905480962795493101067953182715587347594847940030732385034564348906814535725565438375414948198627981366875559676296561068606306063461431354503052204650341251470852437962567991547934319279564392258930804127290425077522182784830661756416234812678135647771591332890561439279577762201854851410476861625673956719458372764776245299190714632316901768955336444793504273647806620117369435020143724490696499132601535046006446261862599550131766438491376150418116414833156334685251992798069191328697935276290460261575280809725539396740796465670314994229224985085340469674605804348296626745426524505260735528827127995669329098569257848024374719098650175969354773440138127107959046605506943179893064675553690780912389230698322709293839944468643656157431732378264719788512533072704779068756607017197250899073121757933760963139954251355657619680717748736206589671036923627111571482018349854079477626272973263349774390635840044239523256957230310609644268256257708232056130867917804637107246189514622924615808571009340310766590162852411878698142213130789773537205636408957150477361809390759226678513288013659294735829493402968011964425520556462569879545843162528524879045474945542651812843608669879377263108684921743297869723159731693460995486060343444853003523804163716882314014560948035248272147298659375420414507963305251439479129292472435508551432308406059330165523147376870601027229169497428230677962150337989480509847963547187377001298161020935611452363468025427742645020990699512068185564669540738979307199252581500834759984466816349015975271023346151146771662009638701821106903022517659682049873082416541582858343865427262448316073668862512319009028216098988477055230651034869345660080122283531932941877283409187295821217703112623825145183672990186745478251025540784205564476920094682682105329441262618187682148107427987848704039963988510233699491222544592325194355553333133561199728439089998237050693437861600486658679087152096376636785620874400128072712901913109055168789796997202406068472035719357693887986200633511171523898621997536483633602217997464772554501229719936236616371298714682614623283806837656495978196754925442736594158763621554183196052783248867981921781263806055542837896516873732714796690177603227504135496063111344232896229445908634295312801900357122020609218553707834856349127783740146444774618901533300406340507706731773818163903312830010485520007779328699363170319267206089141351324050334655230161206745983410017783087058465723392066583080932999186357123335199186875451076859110246645057543709229542398178852280238141320018817873285887158674358814381174212976756502692139380884685493553147996459338549534368418492132146575111786442859478468737024349666631391431708408737855197483139135814380550508081989990572237669786412920204817477181253868596702113507512480218730849329046449704372885866940274243384659185588248512817658465161608672349356423573246071740648697874747583310565190424718548612862592280556756591865500671848450534491717783466032126663607288589426703911961345984442049002559298147555524124061530994931876338491254899292918814401594545452506419062869076366475972006919675815122283994944974557419590221076237956443838247952577652065156915615273484370139063811261576676840091761835289054634826253334446750464463016838108675239201795467737409905832682447938289959598360919243585221480906932284523846900974445109152617979684443648656129849107779437194426354690693372621915194663899921081507330337122704624033055732390885003172693152613996967470297522688639001077496310243549229068337421775001211778396948668951515557599515562449683247344519853649925387690598976015104821465766217213311329060344188431130165858250838524964345906248836143386226899116367151644541207502350575943406537393776590329657228085765270330266852169033466632072838307873896520487358967457911299384603790049461180684032632451335227337051179157823449540546736161326995313543408462975201651420175267210213830417896931832050527099114836485810168593058240813450968493915448482100262263986165217890295162215533135088716063785664495563300005733364493299844762852072543358616236293685497863830195135199366608117932235034878645995889208723694095791415104207511216999110680455949086666319747347391462080399253280504140765452111654545709924115352338807822488190625747770901204568393003760532993710668655729914293072265058503863308976321950340215418475849305083933477328294962888366655399199067578220699448192429143872466516586356667758689836471504957083860377498129276922434610315656573503646189413313920632193008486397142671794870750363415597394922789140584230444306360084252861369419961964818226653775186969081032779131071581120069775122736748022111653609278334689346757519081707421281246045993274992555998450654876697910282934465651748775757864541907450038450041213627806045036860356161766796999033852994962822822751702568342896785795111111334359762585158172882431687400939190660763855444753463332824551509523306649346240426566469720160540331877261566985584672177349611236488516423585348602426042319980985557961621615871505916128657087285546831757879174694409790056972542207963325700657310176459929747499119796704575940838819086466982703606651266737553037042802486528765272028556303077427204499958769329170353501815916537530754181328865105155307584956928890891051249160902979959251255751423615247835814735237950155265840054271507548595876010088142823250474779699324515693311302110873963712176992458809239911536715496731263683716973706187343456065605353950395811646662726907056350506858525040478779600844820615359450187224496742318410798635468404376612191074211374803438119923708147439590878020705904806201942305878319307949211059295601617132207002078847243310810725668403509610705840291608457325197032743951360237105042392385126227675767033494515423266675265442793875339470215582618872745349560355546031451926131651965519218569336565105325347215799417254238585520638535984262574930009884346477111514530543705649448005274513662243972942780857313328113835875097011017544086500472696131377522104538774921492711582355573256438204174907851330999632493778784811925163713464272581613691801988780522354938588994884808581720182068042946273840043925810749742584376510170632111074772208317077506455952106937305256198179171407387126043507997291852723841124508185348256074909401312184455998626257959311698111103482671307680614704943500767741657154033997104433371176518454584517302181001444679954877785109345514480987495673690126478823547060843549927742729874138274105915102100100126730769320789627434183941599142144211920834848154747237863139018374561778586621177252229121778058520263565118069294483039952584091959372439288997822856614987441565195199033841695198602215187234879713725090025117699218891044532256220332136111925723715795258143818594746515375089738614741004769360554003884759324951659206456612312819999656841993609381335045826098269370865112374663278215275379506766429848913983556017282296857642692695114837037879364801570422981171526298564178870516404495175258566539562651355758248026998300619930215249444341686185042809752639343242478387165773658128221243199603505689250560522782758293060802598838277312221477129603425638275804696869372747923752803441156963574125938892938068496121295932080667280801224281454293492852443770020957662666208405462127594435409534935525288532076620623157019848081331107279580849077943243645812681307237415263100031170505463238867019666962620260078053736624124846978594123432794901959870448993980072363027445844547440294489558177297298070039465851440138091428856659364774200835890522508949827426954849790896703611997705166456601744971602095381405302092720769761705625314594064389765137877529844185565098302339420696926178353192766145097742035812052891743678281416891494080563084943789910249868557862028722849934579236122079942288761464167841589390572872815086945914506676026631478396074837911213640116435226993627673851034005930372051886719015631070713654670094923476152093997179339402249874117368879432102304258055080703320524411096548810461050011477992281091159450598371565947182631180450549838255507730216605931225002355041684492129507190094322484742437981079508462267727437443689933530707517952899488231704673918448066221872119333516350194001030623521490791220384199474792144059331486127805969616909571438585349987969099177473962471973996558564266131287447751979990766081027542761645156800176620374820010341847938297744287865842021725615389515440982280573856196864933975266022081753479146660995681393520784809852130836573524519951145945681861819724283979165188587129373152158804190430649548626928136334016193295173966876683558364028717339725221029293837322910465989756167517540879235285116264914423858480303454060153114276881084486087849635889339904507075837705202353745276776161899828208819151140061983734197168929081668532008127732691672080605172895378726777807218251127871712986526536382953106119761908028727394119238514299906566030624118455248214537776179573752449084341321528665437315258334724288528136664991294888118911020907109779868705883890557858773103491006713055824732653650425508060457774256057059132334727418050350007900373914185407247251710565297521127981847586061592389898082601164593334320245003282923068251745168369132029894988416578549452996014891190189285023646995990201714504068347523532675037790513912649942737423268783402601121142340377892896485305495357325195547664794328805633419955934694605329097989400796592692355992600969886292040324317500468027350487714097940006181228274233492780916353192147930876589117383265217189322315665077168781861984167783229313775386527884441078747575058402981123136857494855034838174992871394933754392703805272416094264643907977567331368474603749271856792486297540910501743287488897031914987893296165273655678329002302192740917234684714833864906774798868000482068683414555724280366697614770047030095402821179641045608199171201626082576086552992818677944135743396811399958625152474344407656462451951437993565529137145565302805294793911371876627587285281271927967376469393444426538765013350607256589658246626820683902510845031875397871142469735771070917294879429160823474703328631980099020652343980353130354113406218917594022892607551780899016629625946313552755201860013471373817280983304706496643750494331493932093407502443135783117466800629551329430070664422166494756332033697541186328724153874382666303954110966787602010856315448909746669302035950121776074358150152488334153785019401949515553017626320557183907185747258403280273080652853625051274878725517150479594520172866976645534759008413870297707486847739369815202386382814853866590512874899798398284441739234695171070961195044203364837700254070364354207065318055792862498302275571230480076431742658561658355558135943917511522052742245145179296581699027617807598600045884818006474127431442428587831994345519782539219242013182840526112062414433856639766927948927441964645580233336328108655734977577166213725285039675758590805365324509278999849169311092625154742493198304704827889462388850034563014459510402786374714122516640878838089682937163251012170099849199594666844246783607145731462696439161048453878756348853161954074985558019708846568915880479552535498771594594047251385664530554589224554905665798103924068449072852200365028217896489579250325702985486222070755523574878809087884661607867921791497012664260521887142260481213368999058170030873939795156627979305723468624123559438218657665812780204429332564192472761909431444584084211469624351801733681024877989870469311313324876200560824752556943451033279904663861223139263072245130432413983928809117442007212408775300334426929187698454116259287869470125899770902964703850123922937096894595872500744260163676520672824696882133258981271518950456972279391099847241373282144500217873761714553195266543551644117688668937836261129076579164102261301719560286801764664661109214378632622556600802018256840160389393872832546743483381644742940310440883957122620772931374805680203144102710068612917316794559552708684596170028516700046785701183067425446115292363532128468051628781855388757222791872830204583635298632261461945389518662565162983553285964252032676479946839146651157963331246591288555476466959666432633327094592364078333194117862754034859715429495782900766841290319267086184825974265804433342320989107964813647631521466819867404014452364122674475037476991534865382634783506063518878637106862428528199282391597173924835726815961639065922294176968086405961090891626265365853233933096879380178961045419473724098823407287919682624203432620171427280040519391207047063519859480549320967482855128816828805486835106530916174902770854890665190982633040346510863161112618897988825805770044451983798647683486650394383111058404807109197400144893360211925114318314340181136531511654635918247834992699692112675871226587302667534961536180656287948416045993017940136431270798281086018228124730097621415578518324526407315530903966541756538674613856440070152582592710318434020183189809490069119225836548048497684323662029479299467553355269349016644258303335307766386906778556025300884671693386958085852316724048357020537126473336609510842773427387321651348306456181307253863139465256343560824521605083801569623016338134846773921608008027190865813385746816552425653274728962500305637811749134093529944121252637125570152167764732863761980758740800111818085893721451274239795688099091284190807105048202029326010184474644932259463913335324615510172661699153977829563002711999453584991446968455971884358500455344201337417521674424024288218887018051236929473217843308154477907362216963507557341672749873724648011979461281045058477188677392086503685059821261572703572350994574620782225286907686658889599340302403801583122209839368870014167776461579527031818476034632950934489383023351858977380683120794342650020197635868540160227579290701023989231721829722310638032117625421569066309158790390390371635142609427278290091658211305675043537002341289409178297452855266832626024484511982856713580389153850930390002983840800146085786821803593769756380667008014167885443868826795985456146231325538108804362840526398801899951584691354425192251531498058366688135304915438019340302470683823539926750033199080247540482569565520304976882475578013245414123358031253087131834084673142877208736674855834218269907144883570570768458623911806235089081483148912040149426486233148832340715389975194887706783414025643148157938141438141552432224199632077492580837494001035546360603938119921668945673397666610974886076156882790413380273484375270950844373838595512514734059593145849114757305653007887158831500525438770074411183760375352903083400706190249885315639749256914444442393179045827602406271228533053391784937224540029961220371431106574354745587292845595906434591916986467491877239191509854952244759628386540796972051479337709373365434693276435600827642275896522798667161240007604824992503517843912236276782526824761812989696612280160979295509773595874714292060531757045101235574878334544729191717270683212260456967251764620254057423981318595681058265232886832514867858523963596778193945065729257419698903575110321077181775031296574168044084746884946548509265665070714403880214179462239825955042496377451459174182449960558921980833345555781948351091915121819377665989788520159805279064296870383453514307227874784623105878038774733400099386105112457557179704420964906548780061303609135927132949058602392165590522285002803460813693131839585018425670344342937045032091136363142647816921713599458393293087971078284182719232508057895018731257870603636579079814040458944123876762153898200457247455286975947270120919567533021634039403971798522553724828676089257781577981398100757772925999559841932559507512915915909915338079684196477992488694290066286471288582663885586033545322977487185899735593590343468899759334908367146118222300121947614767472705644305363162013450893225370378482400974124587676736304438005408983178315767327700107262475725439699134046757987188137062300027600296286256071264513284490515205144953387805520571549235473761823239015629787706139456566304130645409043223375432259446968655462790818073242157630227936286223321652586789366491472204433911217018172383503082161845186626899321014189993741495891071592507737604023878234638869320434763295698803374447506954732194735353926045206992150919996278221697301254964271078865995482353620060442884158028971341362192435603902096936756941422553135996878284318173681314949884441085726369170728243050227321882216574121945671633368195864182010160422343931943678442569448082022654920797446008121990701302021190314465327986727422367517874390898411583102924300629090713434085026060066705981872635175315823928235871596426565631189722512665836180887817006288817527610202176527607099652546613405131130639696969951237351752852231716600566300241383815271089812034139353174777933768003484401275437361209799366181521716899803261809279657370391739620583346934282870831839041515284778609942440250975421932011037792324118202129468996548644678119387672473066237964472301896959331045086580291513874066532839226399294905572144625088695314717770580146821496431484095117270111324533107524267316575846740029256670557292707216286894313449283005039710902792748575228370036875364920697341332989840396330838159499992764600673618655393452952952483553610910868176702344160498155800798622231140371989158996941963121013086878963980973755412731491545741825632294304481594665200743647787598180252394246077490344364732789530546069292651589229312789836193850767671969727665183576384486116135060390416958121157942128018084169733977930497138771738534070522499335044722637162665777703975799465926404619262270462242288639070742690874187291916449416551940249548228953182600584624535961098431821583034723205787605876517526593454125496705202365802890059789515822975891108656834731668877048945150020285612605271175268766852072472575795409064557969709146766161675906757929732611452011420607271271041807104744968911163964230974152425103378318850299815641516692039260235904536977719683340472910477574685614494450605499246738502387203281015613294471241707736560840617942296964879618706229580722560637809963483080048529675774309745500920254242162343602669209943722955578586708442904507693587390197329615715691202326290926006080834976924642739958566651918843978474330043123000531404051566828522664985296040831194130480320562628559810868537100074409222956623313079443138713299850034706771701337683731217530584819358056209328175466041664884449188990652521183917896553930177153939533997705948051427683446397745250594267198383863380793335650040524369759580501037569422295049815718129641601565854933272279777353232948520415164725306267093245712629616734677136778619343481416773637626412241968599353635469711599679930934641066099093407522465168307667587406168105812260905533217623744848614393906591282362712311157565689483318912893338885013646790924429803990121353124714550418413474826814325160743680582766220651651956381610581445488112576776016605451976838840360853031685504458092213078878402459789635876170492301827566951759717985436236412578619484711766073580510678848699265739621485605006246386035210340085833009270221626212780310722735976192156936087775844003788036466538056567499666409984805769388006173419565563067014488017853290234050342908999835373597554185758713551905703267027456237475087392744738261346794268789883531121519439446852831033211387538525213042447458803826474853752961840249728465475641817717336563584899025244434173593889790095566663117697645626076912473760490171108361948466341784897015231830321115627625066883619865926489569036555863700825537810089508749489915122116076441423557654033033268881282998789240797969753845202153763833646284946765754346168458262595792533050330133744296485857981969377530891074072751193879322593159656772681820116826337452954448852566161291523606891773588548445181464343102796139676827350616249899157217242030073288277116689311315425600324652612505867216007188296836858335537583910633382027545276956703342797415168820705689547309067017679861039614340801377483129709165158544410718885405422332393181313837365437679127118739971991640790435531221031689608855176960788274647390508789015220992132234892590887046770447455833149827875029250486650084122080958028243831118569517395869423410306620775163437586739875987173364042733939903405521788267445027369859077051051440671982242788941157412554164527185004273589816745315401565464181311008206308525106075239998121636264536320538746821023719884259699416149358301486217650402456352147003674295492933002934570205189469795227809864834411771994189762269396128038846315705680016520471942791891706241328606180005631096961217968881296361616663650356667508829170979663673069856730875291431813507117613302197060723399445621414639602862538303167262072642458720128306996777645327307745362192936416521002912844133189595023748296182735923336325599388941359196702526693374557994781304832487491061572999060429651108984433217256408457588599513338564772320939298457306253580475381089833423228189540123104437378097575065230466838130946803954487030234267381808878032969615449860595855779253536768525644935249566133446343983119829918084608069344825950242458375032961875468263260078105126683379289456257313558787754639308723369781067189786791381242942281722714096317577408905965614586961557650793871137884150646085772596290572231925677920159971760099053175312541348628406880738874654186724390581090936825116442028776187253220990128048683233299772202462493793257724054380269345204645919778909910403996185892106852983558424377654718264118036074593185037213605412968702805894768214043827264590358796663714079776640844644850214005136143839807193544038848711229928300239072442155586279602036827703548665043923051876417604066429908360531139290911812919980242726047701861997004819689490815433789572382582101699583772798996486039795854396580300800686651853594785085634033834803355300284914340448550306865357112023996641291660006013233740730303518135511036565705109812639862326921292127751720097145916876852691937529368341031536132512054765955554193645719636227565896395273847444235366310807773886856557615516961025345387912542203804682283082764580279989137155338840761199101862505454074596962252616235400195607815529934099353008702175599883380205860675199013898126521169643288322114025103804576918168030187260723536135484537866745428250521417645953721572355224039412823783123019572069981814305646050911879683644697945291636949544356333917647299419432695107626161511529176794985389620386697671655773302582508972730311574480535317518349511022740560557560369332152522701454525850889525391453265990770538461322431348843145670183528521657333108339894365315993621918286654974175159838709714497705870953950243817710470748728959612874241166218849640821235353257268647597235712168877828552741192134550604799835036662567803005056625796137013698205746228249695120146164519317629265650427554242132943432543640031218142320060185953079062326722446560675271480257529575383564320948140371493666345354974941651465245693171245996406908393806674927028938374673510012006382953220578436379518848251387703563735325011177542097688248431082341648340262487456271553001198044426570870516077291954337254492516015324891025143605352604679997208998227266649692642853820335746340108292630897672823976630776206118458131817612124256992887915635313030428216805072480721830909759427790588480940891792958731124283649514836470412990025301932380572235712011769350667291205176271764101933293263815417434076370617774374939915233496650076289649721512720543224299990711852522474617720540135474511612815786091047723707301880262581562341468352991573152758864589519643688320288636816998848628080413901443488635187644298976218104107463495934622124409663842617973245877093851227670854750343654921393712752676515760924229298729388858349705906609127189926646374761909738693097177921318455796732584565673610056449783730936836004985408415969412868090961065193343572276014338143040570376972483922851917497947448117227462554618606175899456584645836404185619856493837878885912327302006910678499996587505171456084815930053759241409172644864959064822219035291946894413256841099650974707694786419136362752224475039331720785897677119168307314844522427319779356308261567534606718207460934727431659823629189721169815512818502974296340035515747960016386243272671689677980382343218913102185327823524018461192081553874264324584651122001843491144966240922671658789204126397293714221104606273556426437573888671649421947322588116738410636484465734375888367920576462356811298868952667665952296432966942871946949230142153402599439041887314732207799571294554215947651969078414832007819607517669453203004506050723495479426198460654978759571419158180697929879751981579145654038348013911955579396921406342949205887929061292536069153092378586623591020633432427815587674316939118262823878161511702975984077910948904061976925314841538106924853479423125703772808730814694488081381768354422199541224859623031211885363732324978739402366163191560623561417232467148270696571044099384045842635187219460105868198827773389663856973154380388601268175251050220019751110406925399350764238009329749190688350211883729834333294604718739100258412747360362005036293503575035875151101828456353841760868673049298730463627184306180810453293226291523608215259575438576120615988463766622516477107675255147109789320877595653213130150162049299030729268073756966261184186553475852936791333954461717930129545205329260865543636154683985617200148815731603357779236418961027816814848307739188621178026708176190812039165777863282682079047392648051281136148270856183451222950835751352851555861499879436760433980210946515235766656838338806372489441585731929955676561458072625597931037606486340622574200383925321528698768532908861559352859141194978964751157381124357256141503163124355498525533750626946347812946072390119349164048009840805638747443495920746565805400792471427183717278823323826945678319847821451127358998600614685435613574364573863035443161783493781022762766185500250708685832107586381710019820517106799089442019704596571198215881444412726467160026757559828867565615115837968468987497590587566898803449104977816262013108679104105786615923859538814723776071362160858830026599405494231430317317473704795749930635964479762126437815762483744764781158527853907310955524711172587833132356120537691047054935739487330069752939972241363239708503941169401890744878938116358940064636629345150770945506324290361534799890599737621086581175437336868895088151957076402504824761958910358476201597918706634200434578804378025387415729364748572164613482898709945380921334140270558866600049399912469863988227721652108514816287090794702261278362641449083127314421101451770129813497035240955781090173875629347475442038342457408158967852430221587861438876711190035876407745658103277144554995795247960259757227193444982454525170657254353050628689908763352258813323666724369711842426470967528058183710101806982430321884135538319404485910750088753588590619100014422865631592405189081500557644395527331686337651386646603488342550590938648164651173864923840449868350910134872581955602002532986574325891153171226097379483364462099003659690338335582937981837625267055505912366786701058916340795420596981262980908855561062084287021950583324791645903728479987051413483852973805386137212148994284478288901200158714581770221206143769346935119470342867266663467471905275441158274779455163630079639484039057574824680981674054614368707892123196046429423830791542580216400487393662848457182787123207933835835765603644752943466891023037956881296108572197987483356048339237305467300231683254076652283891572339241229967929976366497600761139602735283404055136047396993493869405199973805445542386434725428798974774516975885349875773766571567740846086021785271704623868113459465921740031986325747927867957903920258434065147274223389601028037815572999329935331811285426473789966594456419285259644615507014153958750617346091068860019594097785499365995396929671109306009114254843792478305127139177380713005389727996406020829029474511842486886550820346050513814327883232259214049498454219211168772977297043619249773246646934255755721990314044535491584719900520620028766932796705146873517693312874307304823764473779527781693559670535344070683634239016770703129501705076490232014509345724097875114009671115191095246165931862017039649736781481680351477952912887883262637149601085171634359628946301915555413519462811939274094295448914114908191289294966238262949057736781914362169679789545831336902829924697360348121813235745275933044215761388660502910564044600956012983425881953754453745016019450671950907077007372358083989552085603774709488576554748269569322340323641117306607164113471260409359874819709923379337163754387853949487151477788045174758959185208303193553044397354964260590517971030232437536458822112450592170752569704402488640832007729305798615007270428753899987406674495960855420069469934139741144238716176951885803483388745066952817125179125501729643831812399712285784422325688688050670969095217560470949579082217392830992103060664788185984672305618738386545075766368108326731076526136662062081108201071095480742801798975690816368147047560877681335618341224519552712238154993744924676212617182811746308232299893940701472510402746323177645362490826992269769508381481592969126625890015448454840799638587159989267001543796856022547141682135195580115086763504189469725109337567672613098963503600863719071770750263277635016052703692501338647778768306863338520914765052543951283269159321828884287693226722022794384296808626827956297304427419744267103975524181135541535114470630926865358930472596334198857167721716498448909348651879179181963348348375239547289762598723290497052704569545500908796772321079179294112039759642259886876394962044142801309954636506626019501593599700980931325067815566976072982068608356050216260951652393163173875525126673809480124488352574691891384915264011658574068460650945862495306333835901118514029145837949834575703449169018938720858272013060425802700271100440828721833297405239650938947394706213672169911447994521763287376436597563825940310984511377138967087438226503072955408198812072674975756884332442793876193836639333810855715534488002756482694532508053240178788283259881191434861361241698764071527588470103926854101329206778791789781223766684256307538014300759362100648272642709875790770546202521961641623626057492037201794584183340143607861422920821827463243798505735693005100558584114497317518231037930492706781858828584913029441828434738296395434187008407531314854112555260896510611294961523274953721030299202747378623071388792134367663172475992758985389929046470928330309823518203188149369739355929657763684520159135546437160824918622318096737811101262583269937669759868051043129452656998763251375937143660392627340970825420753167571567071023810480643400279983465720944046819119953344666879362187086927482702468147493807237223496500360617925397929488133818405242708738144391382097840454556616879784468570870088894627427202062617515082771785453681075440905905034401042873103648968707925831906493976413096826061970014989801809940975867953684449970212074147321243910681162281362597196950612379896099445963367781859846338713877008835419326825505000184922349271432069713986699599768363745699419165303409898174024991158786747817166364118582684910861656105953013994785848894265301137646886447214869623077092109796921581912924681342779853111442472207024916719312904908293315569377171796307855871228114538719140692696519171200004589223489315411588948563198234546064804836426591249600492613965284817533370014138738111581919046681703101483897192528008998778723278639632227470991369620737678587783651468401417370443887291004713785121701722366207489748698485910337476862214121166436049542675554460513426268587244655476748202783609842895321447935444313033870615307367888006930726035676665403235829164098074349532394150235651977871702126583190062669988449030148825454827459863635997119399928731688723018064936351144023112820389749719113363045415165984176368731292679558838867638989246063997054746505089120105914148658872031076076852480796509730440899123663629293428951273123273771686250370741413273785102702431320373864650163522615274998171266422552362785505621350231190736562462878961035960773035720201740819711653537487399750666369398081033844704428348051401760443393059754118152393660222295205264397609289421410227543230407831466965631333973998823834602213480504894468865333324158786589133845818484229692032422600778678861708033979710434628009826296133881370962518369917462707235364410190643951504789667743140443148996242228722140310227848542701531168896282408950493981229033137125249935366053841071243679461279159498820656285003260617537413745357895436551322920916258525392902805834332002556227733481596570170449747145663415793730990022698888401459012872772636113205263839122228558113814700875105041827669745428057624456663460918395480037106300144254335232486985167382611798791869364740751247743259371570741586891734938129914213301812799878237282991122289241235720113148097397347181415879917765884567113281374151501964387480873170683657599630538744663040614653016738640276947396492970396005415327719306392360151330335391021073576512251667366905648483985671539530383172519553564659259326066268251840063746249409247934412070479782690512589395458056760462468204517374573448106518932026517436387247883288571817199186843516993420047528777423254525567480537070654650954262763638919864334473248198785146566566069244438189677672220682891629331887408765759748756167853101874016660703332293325968670016157360989356554028393011702194253445022134784071958746155213575476430658878380498148043282273400865175665128844202841365118266565625235344292489591444494486105005265498352258366764048364547577167321017635859539066445765787064944573428490988978291803374670995570157143405229441670541696506864571448267549775498510979758435362353481360943166063466797179462703916159816180525238597231646161982258547089632588569176726516140279174203569663406076680906950440581659311965109400943181023561677484413203233418926211651164361706178706847754714802008334020805275389633491647272722699029362889623776176898996677463333419175466560206252270419764669747273174840560912343277673626822743353926045634128708029018412062286132387624086559615721483181263964452094751787584782487093839674981473217893145514273124530308664111147253143860401653045104160356124116573778113901672308836152408335947401009599010727755331440674008739721448438294155303715050641854025240106524259178668314978084337276782083947211185462726269200826899760183566024185599611198489506258787039242551526040107760561121654250505680987692935473688258738539878246236827076407122901169867618835453917349828941796222999026524482140263051592157261472246885885711438722263428660035902054350592090578188361991499779956212369120321934767042875220538756185431692719717673703768294718753535169307112239554472460457321937164796192202300287486885834402387687967615445447044460437191799878159397232120100672097746598450198666826610918349881209093167799320762628362216710302477834473369420283456517523963619064918381432715468852408168409954571372858749169644076626185838042453988370946803545568938759183722082176619310450752355721903150510651515794900643826639827500010428306148997122857776705664964689209000633457031965130677767715820763305973681520468249069553193294332800963197196752920251759444934657261562374406416605679997215390941869678097654850654630607316647782973837830020615211783237605522304139561946464256683689546480315253850699142406656043694489827488633881525298279257399647809969569186669764994492933198761621102599803364352734446387679111549936781635772815327750019400045964851937414766068595918018387680492157702347455592723313305537202288502769238809607663439307259631092080041627810550020060061058362615373097155652386551203281680774535598428278359743324093553628969676591769101764099047884562113380343350335161276474261103417284510366066456276115875762921799078676336346897870056686236977045944533090345157978694632803023885152623540989167091628084701527204276246732597734861349010069970103761949256569524842994781141172734502315672931593483400314593370327319656365033951133441142099141767979288781253431184283943791522992300694715741664194127765141553919074558988775707160369092103253313252914886667653054504026283146360836590569790839528855145510787539823512786873540301533397002691964721340801086375396452029156072126393590515201123986087140569472462539404743887130658248324285171410835494974072923942932205316493051421166941431595603818666737342948110809653210167960944408843729213272181704628375397200069571894735538989956378992030077278928424470169791595792334309340255378717553694012602458502738975460781748015747940029347576951639099370921167284871461478055780939316350860012638141008923166759662586266604321324861464816571977819222133227859561041930581488469062276519184404869615648809097066069718615578738155077441020881172892619164798137796541183456936640436878286961466699230842939349045084820646160768328918338738713538120835291580971353948133249619437923513998633445361734423852768705861052519538022407815456181281484423832106741054809857835939978024265122099944455839008170868926101774500962831559185332034055358104103737075158116323088937760464305452907910711667828993976623408460777790030227005882147631074553823256794675799334575445032946876062129636541347181906183021651019230165970394963240744148729957165967731405840133134859054543071568379541589909120612141651145350428941987454387513751332625286619029264286881228672196347770400971207174905142451779061384926395716278102905426465298378587858641314600037585802337773050821946650046318894455687178944525033907766363902491041005818437731567511469219673679140703543977183675228833569726909049523150608422139323428763123166361332396591675473513833569436896176508941246073661033142300415969349507340008823017838016851096874610770604291454229469680254841742064283413043171667180975893339309372545792337834288708895136784660743144557630438801594319377725529489097699772987171355103873907820164600832125367109632660637336694925225494757398544325018275535374065550044590098462634867093823592493202401929170792194628581274154357028808003010105631479618277325649348752467327096593104072211799724766902636128529234089180532579772914604639791447047464373305897836786408678971204517106029457890808201719722628774801418554701695131977964295439446359179059874743551030489677943485686778846578402931815437410945417459718843955414688345302565281054214574045580552918563675491764088754656494454216734992489385229153400185779062041722992747858720582174093996637171881974315960981150156724567355681199357651849319345364404435683801641593425000982415170139873974304744103075036501796507122217109578034959355490374382572335924954403525361641328570033816544216365520926484480327011601545171529765995471484953956759791054107533288407494672831323414931838426047702507927844945545313298934239549152925919117032333343198928744482280112262760073023742227361536800884571507655530361798529238107232570043681273981163486304369065003008703537332997918046461635821974075953072705035294548243705402579006325727858915283047355377538205820103646384811176124714293801091641940349147774012182260559285359726821495076065750514471700460952630106038218299757727022472220073019871212546442664405402690646942395267418328522238723819267260812425166090263342734378076873733521197205811690266788386868281661359708650411549900436662453232962701805028885521899107047098725818965744365084920097144398667852333069366332120000976729576617016281020537006345277084753060723002420798358181019913894986458404716700092886193219772686876474426879034464945269936388001481110726432957445954619229873965888472467393082482118149826586007998792458221651502487405891479735311412947293749793288913478518066984147798249027940143206078117459680666692469800716080166245946749074684157467479911885761076245173726761402950233169936795324085630417273375724866781198592900428986102384438788318979910443935642486239374041345119165456928920421492131577222123169449031571609144059473164404300962478081667992463427331833700953809777852649820500980158783343739881905880860442472585358785954462350143486437359996109409273708857419782817172224150134905950566276824490475516269625494169876035430628918863766738068168778252815112758204700556484194895291217385824543696882975985116754675670875263711321613179341275325142206537815214091336755740761896696790216228218371794259472921139166156751995435075312645851650969510345625675508688269841572888596744308054504360473334039987303384841393958107697164244745415798041174248800483433111851594426732809209714387781562600737520654570682150491096551896034882273289219002244144628611754992775621007798953805325845643728961902415003367180302031984666991570421438708368782450581655811647444444234842507222163175695119995620424588432970197682924354967393530257344950084123957889010348104429401097630250457610364210373899206357102338224708873664111549405480819518097423211725109512901793441709240706191537079567119942356823064856256973617697887453217418558795796878149798225448613964299428764704780099797519018477600715247502462785605799026943909911393488518228627272406945822005435866070499523458554004808311656761933550766611946681360825958438995767930115884324445082899780629101214087897778894591495678678873515105517189718161267473544818735728186558780865701614401600906422648325370943938037493018894722500321750602306222371346310322157105410989814305708003002101653645774727554713174556274563672507637728194371336460711175862909163890356101713141685730931901782750553142446892316939343907969896173402328014608364522760128061195690428393874001997750860881199444526011423497379695866251886477959856580019662175456374731430130884308092798193811297809184025761978147214714370761432362937604046883720389396858680254105731015748630472288874863755772047342592577605557768915033751460767806784883700802033598237705774090630209996728226580154674795218443576022418306497982187599157553348514572622867459318616395817347674104063144033477141957115199092110544607543089316086224672620032207038080735396244991264655589208645978466205651249235066220352823292393515836549647268006116222925946465920425934493765068123543984300798814825044085532868510164069094385605387161755986457204635258813290382749891046032499141281176801696082468766242008027795340550938300804120564125471648247337555592518247849303196596126326121059872332897058311407287583332852170883608988952730291365892257057173536274528856813462236508829413045072024924520218069998998026342767661422295147872071858017045578583561290036401153153848803526616827022768632848125971935683035486272901422813173118050126439426815383804074848739225471946959904357157033900201619734577187589688609650424552528285032772695593429499669514271539842047842395170582091879245468128403338255895954778188876673184449191587458576014842867752410975391566150303660030936690798829661059275275835287074750717354804619113909986554904271145363260771213422337362894200302606550714574509720730197757507863130511136914083594104840342524439143603155136052390623205188091602283026107007388028701092887539667848099044811199958743757715293328315003826745388345576753976421865871935312532178560295712037328868673339660555900402353024750362220803807234350734044110663687234828773756731795358657513426951797426724357053885124379620354876952097575444318048230781295518906574717597713588865876446135567255949452113700556483484550771923235099616398883864863604307433796203240200903396510938585949528208989291857372180601454579961861187082054599782387665776413998664652931567727962256376291328419848622552366736508513897959384373953057516653211775540828107710644513125851362465735869925130613600900841532417398525967149030351037478716804454953008848244851256764176695599787322729286229782376182778393136276966847489572085931986185760982884094274921613293201637526609123039765823407114468116244131658366521292006918021924020175216087343491066994533277015009908567092810886856238734949348950049111363066444282484595912899671446456239196631601218835016354485125636834625421065695276033291661679358179980449219842952449987269558502301567888544661759665237858902409519784918675406037915771366561347273308722154942136890536836320319399768984559242813784269468661478995676283503588728134357435917297749392559532781426673061447742816039908261318927484425116420912660059715373474424319669709695448243354576986405286759452784369233296445694641538984177511315196693980235824488468763653328995350494740225219896917900900250107401247869434928613910525150897220731276182616278595790294717755831166753149245303949714823043069961440302414492999092663295020563362602318865120456182714864390548530800754973138232687818848352844453366248449433808942276305210650685522541427115851295321711109134137959972824502809230785076350932329603614141232700883820947332900636313586685915499958143284384105352230414538934093583410177035488364941190829334513799324036801077854690320900698234627927654948340352390784981293612011272565913499672881566339781290023964142227963022178394969436445486405494513665827515296501351312289483169695718825811921845221216710820310214754094259489491600755474683248499413502502486068640923219631420158259091559537301529785900834479998770286802866225873109000784914265434820127213064720131306659224776570260229362321422732829975228266898114753902372176380711888092018708842763364971935319961107006353286219572693607116312027768992835083558138252576501029210725060064134246513552605542311956156162541616062262007481881425195587559209856828988286325782576110271999932917212214040817427415486637906631502576855915688564872959137160467314084291458306693094759016187170955149511258615258952096257638612833766289276421950050509502840947887237682813482351786840936460302613779145511112598525484679178026913339463003848060777038090910249114312530203502379579013279049623902019964820528494065311406963444986578172936298641182409297533651930573301369356135363650707140307533275035882423332607911685991785847908007640936560546851908030189448632616241632756513013274411661793059262307358335722558149342295587395021721849788716292677278505780703556024167028907911431032715979622364286024578425071700000506951473549486213610685991138050935487142641525156917607559884278880468104683126461162433444585791658491186732880996482982764134433405231829478959200195811778921054993897984091018466586040912927331980973968286830705107486306113117157373473361005473444168069783317082083970967701815033613589640241386090423125178888049796308429379647440124263191716196813664626578694796832584101757710130720928069003843817065661644190722183671005409652436064164760771937714998582264021260317340189835863899124194367568392356623701143094777760933097374799372016392010971474071695389638774818667616768792311471526841907359735643166439101332020371126123367408152556430250268103918118428674493874916920813033474584935541315116140067348136288446768390644528875633840451246746100503698209116222741681865888625408395717983542039667806448630699342215878089450238259394255560229514374288843713955540403453118517159631236526143924441306912496041614149068650544372062214419807995152363426597344049344455760530491698050955911414450113631356499177682393433782379556380941372043305841179361276587174922602206269746002825803235843642487272814473903735339927197295559373528562830284752997328087474958327202290813327519761892686327365835631306563052336694306444631196287783368763276779477070451254322658802753137003168239092718000125044576053873593141065995071917463654099636688579504952126151533814841468306818915904156310098241806020299318564497613013947969402231992696454437902038219236691008934956961363434419863386562971990200863093107281763552505688305328330958556053238483409096266240881409243353828815868407322439351189229772267125074815359043647662893618412518137529403924539130949788484970050015061224325414766301677241341702840222864548520358108799651027298475179123284137661019196877496391204128970411446928448025198238232208373987039221375518378822670807697186909969823604619016945208634859051853040738699234380222494013423435291759682048497506608432634942314302142042591566855163536942842975389839235351921836716214264526382351293071287991123719761791210979110531088064476535599717730292541338490663203903742662512984285386336305185447253914817280386366434472396397153258180980423353717381218640012001985802377693180166722689433066811187629019752957259088264832966115650404996346703648598284785178168126781061795175541325663635094255002676286120509651582761666590462191918034416783423078130624621835865475048867974941198107773986931248325668811075691166227753852591892726454207399746283654899851545262517251942995118470523117401656315571374373043949355337339947526657681723486072998744713123102027179577940811879155860261386207557333759657450523196128392322882384743548334791940004612380560189715122178352733228341567434546249717232439944686964458091155887057760113915635457023075127587002255571932919095540007106816035086309592494670412660635586299963317518855565269049267473071954164727498109268907642826420255888814751470548951648311864058512127294540142870774041659310559826144441148033483987697137098772796188651813608598977724842684697678914129977378246420416480670202477862586646303555954607099610737086700228836004183125526919591601669680445682231074712992025149769329205724586561520591907581490060585004813168805369753297556841039051437326547191033543991646780097973498565611016874230927866132060790784340369378806272821424255401263476829238645444943606345327583793712080868814314494246933214588622464391624502375356643117865026869455838092124800133167866768698318839912807783405504037339745968127426154471219310807373704147687787623327492403999231215708967378052837315885390631047134821905575768767235321324074567685802895199382682368268876964036081424765054180686177961067816446064348810163065289097665174054004921435602243310232851023259578636477933558067722627009356902021521807040012687085308503193843893965607691455017744241742679231919896516391649703845795684216833601843111393203885606086040616693307701714143719149227777761762394031604996507037696767930714940051879271790448160721692892426621347230806072308149146980085262061458606017398610133688942306380082388918567700021278736595444146678057208939766249047457503954817294513587070841259878246572493396060976391309588087266122761151139177158883377826754334073252488764213687495860282968404850335386459893769874448836354913394672916889909582545703214117262483843168738196718504225755486778723123855916922724677777031264728024648884498839343801499579960196703676353434267137429601134174222169937198504563316667051850381492182991105034394791330304373722285308729035495260965316075334889015977048269687075574130239244302481109253723405073574947685990646951792085073496536235276138007594550571894207590270941493272997577688685822247993909800397814598282143703928254647502292933904237385226540333721259292134573271246254975711890801890783073712686541573018094551596467277552584556282202107781163368891940220262961421990900892937874952178334228960970590655846025212071589344699196465044342879150944391797581312812536727072057201214106410670134227493466598581903751895472300587471581172147396991902613955826425736608858327555510873995771554249868833913087492503943794442946562456559184685835416134781696696027054433330211799329605939323709862551809091037507267898815886549889762614432912600976181854229908647683287893512511297953122583591947722702885953583939704721777158743018243536873838329226000643638737766442551301383663062445085520506952698493822279007422483098900500792433364935584219636850427394018445865264444793663455532793514099899411039697934849727536275657380726319621152076289198003220990758856244266798662988487460930350386039935637879035992495828693274453760625921892635091495659745577055708352402938117610474051738029902660643933279243342855396407977463473798349106000297243606145627759427983399278719329018389501089205427614880664066494904847710181221088825445290294427294022611015650044744930313485931886333404096318607439625963611255808126520521843194148424672756031456808707875216977616680326109898220093347595057390801974623516097862703234166005463819692115821607767484635000141437874138262649166393887925880845442806216381579479731760970456967923253516209510363480253349156373542574858824171140281918892019230683513186656647315574515565458244295970724631774805739726897916944863032031742030512595593521363405068615482372416578070105887749047569437295467104894034451295700587214458957975230217875230315086411099916290933781733620853100267330591490791843152255795651234790910155021257350332207368926179744067454212379801690389668329537981326869689491011582281656834166831148034343681492412961598718498518846567044398412119896124368219219988436658982829223097806447077819578580759502592536657443924887301768142584709952805663489603549082701639170248467713406706361652916460827771022722942074209889686862278889374435797598877598665190031805451897458273080769144179926925085520787645050504354696515213298942138088640416628337529784914374555460650806852839298394042526845782180171551465580683716910657282905185356344082198290977577181610456397663472507635758656125462328229115833634712087298004553195324891453735643579437747037646683438015176189145027637195956952533504389889773300696974228999914987719562465955318798465405640227556239869250543919546671972390852838334955494068597061402299603681552502731795832254729727871651054519547172337774009617117617855890520711511846432815597147404321718576132019440119999797053767952983668585226221921246958855709307671058869997826583277455927228843993463460867472198585644818440893682866869434044229351079969411035191616419169876169596941168015113504497522848400993649694122741311942890830261893027792532335408127294008756898801965842064176723690018278111650310841341387456581165086670580346745668109397288250770758928253872317468525309512069295820579452443853665138651824712333612632474835450078523999374928471483939185809135944437539134384553363930233195389599082911535303999026203581346797433222698525359869677771576537510679374375612875604371242724802809732525551143580940550038920550947928458356561811207241044713450219504934933177457993913963290449562422442104040362366664746152272611001642100995024277901274439076861367656941901409949645860930853173728289955460269116976314548721541891874506841183571968071226618988627929238013861143130421800769921439987641815661416375348906434048161509232749702039182931104239428212237654587734152831752170369236316366930153209030972507131110311374063116224661492447957111520315743514999733932174616985967253853748887398438544469013862289199421391681135822782788689564475325204630841751774836269124601913945489026291383742287953276754882310130666037802331408106175708932245065102493783731607866786900381826706259090631539426441410938795996995451508967390895675022152772507195202860969841001801264048322588563249379001833847126366536344367788622170859436203109430332558773013949696444072481719494546291402758898970796622806064881979555142184833466962631731796432491663540911678682387713081908717335938777521544656822502256900979110818203381405476086832082160714008602697919851694221589547226095360111142179742127554734110529370396607755673027812484187378793356986337288858170151240487137893324373705035847418237866932206699910170546603044079532304843252642390292987010965996292367777206282468970242755620095358441501142696053801390201027416229355743690154313695903808520989778693252537547097940771241101769115741320964143778211065431016842876739093318392653651979109831144246861556704849124802871002363798339314012845630674202620170488555712239583790924325030291837774412529898312795854075475948142259012376204705912180159994102093645966994885338655572284258837222369732989624470940738596733737202188242502390586015455464861445778563079746858269605392981215766249920918994892198015753161570067826020733982628988707946500601896181989683996891495644897774130691040353134471372639829694206272937171949656805574451174105969696698691217424953828515802367705846610383304872428618934066175641695164685612256215589281010744491289511655473063131061617356905311718854055312320854905342868308276514429304119549286484648119482331355296714502398031612891117327741977388252354919575408140092317882295120918990989745512960534359719765089562625360012073538139398386751460922575714899185948425494137627072944910984927285838322079589503319617290175748057932080334329308537422323873384371403230478213200238556960856554469355885654132745017276350396843659540350263668151001873015990310897886405415046286525355986551377429570500526686850820112218966013889992182085820600552109567709997411641267358562440565739918392082642038194999959074909487529026079480122615045817014499743493682687393648991271504769678139909476340297985063832377232047962274857612666592120588088577942514882950692709286158438637226562590631060232476699539614793067830898318382918858948496502655545233167599050009245009403737245275417501871138146597270421422886269538290594121675262550720649274458166574599600810621694939112740693352700373472544192785298007595093637246525141583980449726760793146569685743434419916987370504836618104076884921241282115299785915851119080532977831229169092757753310173828473253008460526450376935590294915907329751475515943288526187246527722332121675822812233515498045104532111442111951819880084026632407080906501935559279001883259511086480802892462335100542038488343476536491484202842869779812327099875364180318568722475316142776883666292629223097752190866600003275134789481991827633085026291513094898078458877803436820301034348559740590172928163743372787949456455307315339052878977248196257751633153176919143373354541091771710276849642558198135109322988952797016436233784370409516700786050265032334405994875211665794378470906148752724235800500456934835648061959653785209514432296913263308178273311667028650302419013576919484720537980232451008730215689789572340815215165890311922207731667826126185750521234649628489361558020551103087530372136644745626586916047295417187014234930536559253588978411753008355592791679072370537804976812455765996281121842996606646123690119635523726402013075186084002715313825738921197225154824539926334235533972201670235070482578624086131250801348322446081418680901244350576729897776254862362511808424427330587657118930530953555647754251409708582437779481351676637523466182948709377889850741110070515100107473956523845220280789277467495705656737478234156018660173546309401900680475600596226153269087704407423337786112432488816488510646396939133194158588614695407382622339227774785048176434934590610617599022467875713486575887779559485646572663636922175591983750417512912592966334134049887990758310911708255483524516819295743571341049112707298233726342752565971813754716252081333741128469297889135049981475736564394233404649199964158878494479633423080570292233947966508984481312299660460036668948313935665191749234654795121877199497850374836875489420312089178898057605587512593175137123802284598768116643179155584506400682493038728947296417427796776011917871910615534884793912694720828084865042436275507749525060442558044304095128391090652081732789812087322396269865699982016255524785948119467762643889537245517423384126552177685059811265119773965786862471855556003069602480667489312546295468087591979483671712474433418593370413175085125341314384717714819556507132490978788087256382366616502837070484407882732047324533266851979684864927233985975156719395048953322641946118672643767427279832599753141132950957125020447152098240651115029605006422915545443207434706290213865502619768829481247209406439811651298087835030432154023394862786612407544405296993944448223720743953579261655259612613031968756174423702806406357922811541816270618379310873740492994384432995275715521013052306250670649356088362343339244914266960001796978075337183149464245729798313147355355933230223691282474543173062722221653582707354968682531891076538147216476355283490770014209709184835755378361736622772009997189717486565396861854469513008222457056385475160744466724803025212814226232437469914351511554739269954543363577299212098104501249049140047313771444818802796304888437291710565930749298499522868712316417224862403542456480068458763330324814295853933685023834726592381744925207193876833718703446518653816177946672374511406268420121405355705987666393108162403831760587989960508735109607109426441354991556471483539155477399849314896017270213906344226904689092421934465973173797454797862923861687203403344956000196968437671760082737854341937301795249073369866424609069023190179939322101936763803184222708574614813693106647607684413617368805171304142288697241297123749870469749462091049408756711083907474998079005544251244431297044147647767334400345258561045502149005729048414601763239256577898506314427318972214221628976617752278801300093285535887317570191590441605164428439375483443194089715197057104401848478584412031442321069170654860917808278353291916010262020222890695541938249064358650840179567446009740046514226396277524237799259255645691835332905609035461116426551492002487785576623977603827868910725313215412479243477395160973327070430957821174811794771718139320804482938054611721069754925269693958484816240980231378055186496241812191616379598126886944086614209338058493012422676528169867696163951622404713370843437063888024436165884320922656705618585181913660931660783722799649618666684948683581433650658249341227136517806979763815219971830654068670671714162218829925019034301850333242883211800146798388608778905061762888203250990834360896501167890657405762129395456246671557192325564331373515506849447351761054598554452460447941444741428158046431704753333260147358664683015543562098280201239894533107781558224790010805799991540974570951334705675180090091657922054418004760993634878939557083345668404156009314311169014064040714192882910572810721432570667674847529326765594870651294174351741655367960982173451917980648682437312997989985501346123441115644723346038942652660287014868071655942214885430764477753927775593277744465384453320450781731513525849773435391268345280391670960736734178231920068964578110716326137753876927873209039383305420826953694663705650317813898028034430026684970039242168600822793750837864700796883314930207970025168845613063541966358842974092902335874510114417759840612291696813450017940757413921883999399623769624334662473261947432553236103127619213156167930902751619562436110599747331750801107592475816213086580201253697728042541793020153298686654194577705932591801859375738815762229145357229507433113372480877481692933949854363249568459171129160500836897721116171839202779834696331295583992760219009834918069293711361765299775039104836999581683121338167364346632341434983496399834592747241971379411002499875277540256326351236729336124656675427067962290585801491565676237147812804517842913639104713274681402176274773281660317740382772247006956928754448370886094830700980402644425391249028751136933770719148222675096253709532826550191609199204081042755856556577622403043341714628568941707769833064852500187490990430339886126797569113063853795890906007934257313318345369877262479709583585880093019161475453170651650793224186867069565020233311573717727648576524843626720885472676283572027735569016841338113751837180908990934749157331421526225490080298265486899540809154847879326256933266674603592753217628259855829760435110911109729151603384310976404689258310714254540712553424817383015088283835393533586347939684374975084403051798956640063743327775558149936324621291089461883488251439893458645735997794532399731696842797492256265131649645444605673205268809339042498859947600592015019383693991895422546842767394955895112419796843419160918166990831065928397370027465230193757941518883296300573686968511102403987878348587324480240804119242499272160139074676451938028101163917249725952423029430452967454518795359371154117148282769670552011300832386303632382457031348407039107396327787671169336402337971710495761327314874139387613394104412742464820357032230426658271234427556979806891827966669313580707665547462296464333624719199044615114843675257666522289228494524321248801423125618512547826672516010513005735130787903999489926998390338221956237234204388407507072510294570399845250076377564632867516417311935788569637918444960235727859757455936543990023222177874639219958322349393746961684761976500462467269189959161656664668744221026166583256778014118176025608685000677423763145371760931863741072834183929375197872448077059874378228490221712019143134757507898985628308741452688784620561215271084916857613378853112534448856560956524837397346854792608045325533198728528151297755725096292572760536716504929567260118055805671510412112776464058512033162238980741249906242819405382554070316610435637637432382249214193195482921071238187722652114543112457404566902374872604527630635704914773070700518745269830222472419481060084369276197426463362270281546595092551591685819621371491484240433089519961221628884626370799788360159866949713095477020225695152959073139946344730306720075618219725763852533478077219560177642964922852718305281705384763994429464847083106697484564280019405296834076294275167506894956380822770735394414781057964082811359401641126625160604593537613091860583352079137675150170688538192843493765298279912377962785765814834071906841389477478218479461386256710349510300223633529840927828359541094345530589585552055217425489951583468046218285567739412522054457983727734648539747898073649310694489641662150890349122823082288442774281100587518262702061456903479392202622227165945912520284719564153168495509734442345958420596695993529521252500272624026346586561640332003696941770908361948404660575065592499729430766246054579042423910607382210176125564082179750272377301443249934367287708559474532649850613977824549732142511136476817858199816387579794515606357468798710599909299571111593165211755646618837311026502790114913107561834364394277344228342490442501365490519234280249729620744813989573242284812725986138569372312491363845160243701617700892511283218813357243837147147499575834034465825684126053014085010439422459588703452923403192668751314763380173922943160462218384406820674489638727946039712096668137117473801350324167400135781943411001446992272352504771073957304379908288544337610540216459960895258467793857301395927255581061353682947082648530398043357236501610688340423561298133665247567179644554004327965881588475309886064643058597122810524651823886611614528366770728161922459748828106555629007935274113149241962648005833600840986484432073813689928039466366634096161237462529864557641760408358331087347614895247551986594084654845896998483995754181740429361486280478873954064296474304889615314104345088810602273566394379795640077740859782259323239910611345847548508224903103337089098116440215655535992704389430176387772982551635334024478971888328042954186771402480803911098306322887928837320410021354471765130440901509966981319090807574893197236110333682534664109592407270905111399199989500658987929477407796071201266290841900313852631869380707490078181000083141311348011869340309025120232146911350173715022134886858718100159512009146365762821754231195552491342348568919284704386320378060028894317038460067774173311314139487964033370916175878975629427042906107276279322876150321170865399807557258872342248187311236193973762153653371905692466641744538574478616437779119886621977423082762514321590012639180511716908933915291116119498370906237760951286397164467621044682236456414856318074828108114940356184162501587098073407397797572152252017096647760821918641154378492814160863571155500419401929347496920050361445265241915623746445097782347406655330996568676389853862447074706415751481570734126977806502708520856752352206085234044850092587258943935541019367060071505091046329904281086446083896517911525653864095907492696300697606089599418469621977280671854988136250624224797876211712097835809858345888563178652949468439928972845354993145492200264463645897016231230714637924185431118482285242685435813060526095047062362396572022287934906927076128877403940572255330138993661889135213866897876776610325773803832282009673255927893662223002144483674030247844332808952593158107516279563686863751044898405690373621926929152656839127869859653630190913953199073631569990024625369246778468645653221262093363867173175365809714926132579454857995698086249388496701339657594088816794718646029883037464220365690871110412484359589168731602399926678768975180903901407953368614748422985851246495050940180609724627880803706305401193467370561787466598285697777207099510870994766626730796048684672236543079896692934412397094114181521660788214922459429558614385970894940776412913158725056462827330050338420290041233793466965654333101883844556393756361029272202622608957840211056525329492001850354731079977305374798871795152331653568464420828690914481444560221716553343656693909780519271548331189889203888258589034855499039568999474452988258237724653309924353784721150929434421414087326585712311950420788626543872556184204010492392183834596401371678199747737946878459846743494969917163770640316734940838985434223303851957551409062141554952873304034096428813287726537551138870969294023055656217192535450068173521633248096924182849010926723614452482599967314343314939505366345757364339801681442722556357485820292048359467402535755728476062833233614704691179943692996102723340370205342426060006649021020692189003753173809757958146581022753861560262783252288133500999145540595128693200820504811611052827732819065873157359649340990183069640849045844102263880216468896650728283584511918957701879083464952795006361228050080598086713653475677495888176988900514018676556805878068096054164965869392030219754704163118340982640472574378802706122180629697465084475637561098982683000516899504332191769929916807763943256975281473632391811917326354158519955622010719244521079840043857296620060670531696498625610347449541923501650384442536898382817418780405263006095219804982026919638612953274877921167174236032115142695559507944917363816966004069735289761738965402083275902955760504700976440653306975510595876560238175658926184272490526105944724327244577786981576922349414934586312139939048672637653874659954573255392530645977011991370605214427238826160256969280501497655695065477784186662705073400432331488768481874028965497788039211496025295949354067746969702220463977357105545726642318991332063030760071678738909335339306390594402889138254525527650771033274825944622452583951205189621860469767236320413442675678493466105407661157332741127556845138576423007147596472285788084304212056722710902878150152085910368160597555434578218198186457072815562965179469351419177128077572475673800276895609780185838384075627924259029751195363978084468509296320148441558605914978682773942755047527876225769991288117477093938556370878071593144746151296682212833873497346667469105623567124068590885125206463066387309717651647943540381810114561681985123301395328909680443222767236256699413313028669342271322673192740609987505454839988052306252681591601100936896879503559138307023346427599106180106921335083439959625068703118824310005647566045328248691362375073127339439821355809399480127080514453119827060061724299731667522678604119157121967720058321473483400080195796925227304446363930924479699169941140940005837961628251184051536403913975336101700314476113553392169672268906744372957816406409602588980811209287111274566203785636293119468089384095177020297213610585272035477669981426441438550665575978304332514099769529349258906278897969138629825153195541792679345576290960402994243814118896889809612086297642913357984931893584904635449661309845944982652680414379734438309333386794449054708395270697544615092350605951521279369777095101672610316826527899873935824950073663354300604066035387138704274500583452222858129788869462058301562330601897397584191316264874851805299041728151332374895575904094663718174847402603774621991444263775731920412030355502027523683433900349283133945313072996835057597631923513114988535478166124564114659632933606476413253264145841454076262275205040765929944048385126391587851218682286716981395781343824434082880573797264818843730954712742744399663064075632182719278543612649835876585827514228888929960300339940859419925733810678054588127557091648006109478002071554687956868337259122056642499980532959026997170837554596475893037022279289405493671791411667647055897992208469732459126306538596520324765263624085558506206164098974737854734805925575939454972151293554974487196456398165718520762667283588489068976981266859408452539728482246064321904218589707219848968286507653973855512879138487266262798300774917021754225137262155842064698989747443151867167384474408306326250387738077437407824067026993692411370092299651696959697356774215819732376595832195383208705904568052797427725642659230915131201012897439108033802181795020054703940100130037090728199710285162479266531245146999687015695865248087764299542159478191971291587172498212599639314426378919903182484248799097602669391807546989217783762401398597389626398159387960642458093876875146175294074045511797652658032152943763937425278235791633566948211896656830144230511929855372091062900715098852766407156765488129215063675713859123332811678143087516051815988097073194642092496992678667030623549545132785903798879258475796864897033005324885894149122272409596407405988979801159012824217051925557192331188550124677980315648463145259848432956612832626489382882255734109127453914929881212252919969499125154076826373322453029344908072055721498715249216567928411843209434134041857503034742879484464051664696732143879594752106386465705341514854187355624116205684666665648978801709563911947559282202340016246747998823146930972057333386807335761835206247047974644854591904093519313924090612383360319466832504403707076805835892536353993485553163828296464571121781173212963006022524597130342244036205785445952583842462262878812213027799185962557604177332820079098026394957931075706281241118492869676992221777640261206661194732634877519249608975641531276170609202827607062596271984300549244017536043307766699347253675641641736639387313262840124568362357515941586958572236411837171076855150532085098366795319574384350008209042048525995989607488800228931165753746057424779341391869126088377119718601927749358372783088041836508905960107912201485836295429785432061269984193439480419353506956766975300707974698772737865655112382327378619763603994241869240891785882426805338056662271831717429763904954698031090264898902836615446429706001522590040077630932242278115699305736447762706657801975357948148222408796034626319255479550419240024484232211858019799653341620171076186250562339780944019658219990494506851679745220024749408767539554328219658227155284061580465893556258635928952257951755606462008347803945133576802198382315143993316619601149981825311357359043191614109874978453545914369822401819966755638449361740766048080214951919165908543469915102899353645268499585292938067814160657895133789020280052135642229543341789571586207827315796713878339375757761577476955004312342932257179552870818835719450739329056913989816968788025539720138177219968987268862415426581242069631831471294793276978503000591937967669445242652544449304772773002464570224765212721128272125504609839695310617375038727959768495443434676868959329414470280033277381200232076981193140346523211254043682541876297834970848683764760154173769919437035667478532152027472411677312858686025027139169553542925894500450199574150862063540473246171627768094301473571622021781452553765247285166094842142377204998510525027676463245286610172056829961711794033569132406313471762433617881636981350851781995070541470318934858422959552112421431908972265810416028290865079048361323850208063582515144907970279755911930998974827516974750595751129924812004452268493726410060797101660377980892602825614619201504320919666476712759974633276964054573681251854640709413519092700304896772549890742770652914630029215072991118256864815962041288695347471097181654345741682995486772580865535113614913564743212381538994602921365734384192700211346371877644916520538967752652950031520236805285376987968544905169879611227876778475771779725663221739046060598857842368433101059183005984293281789286290451700883405342773751499446767639230351426647123366299929598916436861528789720148475947857614561573679773668805277592225223330199224850040537870731338054605981932705876768911316327434389197577089149677507771303582475565628124532541061710930111186737679628191482497443716429119923991741628447559055686449579375615126860591350640234499749728394384132777012384920281170874407550568226675826033374718775316964197139369134490633067529139823194495692760957396416408190359928693468368234564151904854908118504476039540119141135983520697333213960330695514272674420001206446619861864659776813896902791984177167339553554902827793912879550078843519859726282758865845388083205526490523429682507198994996706877896226163350081435407964980692522914715723117022514493900475973501799559789112894479931146050921489868016437882434052443330291837201629382733927168713122043817388153842758367585678857574322779378343654942375244932563838310934969372390887318168225068916647442746697569575332369098605519014312443201717199192264177304014438802288319938586944253451099373700142447776528030035862926580751627376364041413216174377300328106561117150467705592891041953584676998841556005290964065165631665270893685478718047883778340632883917595267387909773850106399308081825297457474948851103737236868148250670998976850679408129319037073404523800949432697743048217038558376628026044728440739506368152477202333931066313296792177349249308256415385539675462638919627250410828992329259046802546179574186025241986020286706717096735500322155228733627968747598251922893226513749342995163152016093262538357842106421465956890550914410728860301396564950754350249858027068021413464831948527704521416086102339183732705658179025173558516444481241996806719033132534670289468160919572128385002662072932458185935828144292769395876791069914388855382971179240505771370159152819500800124991042181363766282670703171231241732734090920290418311840967304480042069983402272739766902538250267850655271410057969218299576118631349597154998840495108366482237795840842240747658168866501715481390508613209043724642791156020371083023635105566996907438087824244905110480553820288759612182002131985853585607375872868554307641799579441773679463271971304012091955859957452705295642529170614510698838188361223855311957517312733438977269869366815590004299954643452592145484458277341421208580732247334609677284867421777602186059355002330136136711413157713114623444073556373634138594565555400856401646892376391709387239206367889695177237350526250673934452959101102342019879258657211792965472312554375278142035909338850658090669718741714418997626591464717352938907184294982763046607179412600243167483596446689883796275494424603220890966059863702852981876216400586419646028066293821737474848786700426848452390456015397182130860060754234501533286289198595982725675115869624631776888011518298257505190603376408252568816124499345909171732836875470945689115829217549187894979156091206136821192243291381885695729422599658117090848022411171201160130238154051060592048156480691807422306164491397140702350444162679171937378740314531591367374768613553606559135663196335358291068360737193321684564598592799532092325410902615909634009855243705927263508877990301152731758213780154004039556505488760229797398021823690900105359396542075315402827835821824575827787144295137639707953134164421991609543617755297322564644581361272774740237717588676421709498928924347820836163946382651368308171139882313812787460069456901011913745245625423755145029201625136194438344863655554814980431639788527991812929623296869482563741945066293949434567626040235801950819745598307859869415767870190435967701535148173025741933359625285561744377355541317830466189669052988124557340472234161876833069888478211995061539837735231024326982258458411191421427639606339724639943554566118026180309719915324604720191479845592613852226220690894497952297342287560033324208661510925732489567146529825502496053053094126670623147713668965808293150410121472664001058773078790649464990019224639404453077055150172986562571250272665263875961460999415769234964611608738931228009039749968249996370575862817520393447156328743697554770972845689632663296947524722778670761655565229997378465654480379039936338777444316501473254657765814397306138575597581439454366813131170529104814659324755541212690552697308757656211043622739575985053556565363710527110470685115048716498957947558812959438588442513269569090891401824364238373645709577156700320716128566818922096609684210332979805641341380715562876194222610415070603138094200180749096090956759100622751270478929416305354094609150359917956339064670472811669171320527570165512507042137939421003006993718674041894838246035099189108804899680970293759053201426658118849450108993477227135680558974295265639071789325221275672805007800756211879743565845368720425704924273022576752925560310301576518548336204057071408831251125474865712973549176841241647962137623883361763177202112525759353354371943916775203607615774856555681907647392726059146535843411099868718260847149172831674327875757103459085731676452783006230350517370411233735412347278548981057850124000852116881118742016256186383371220817484754239919668829365626440063621406718784082252149149988998974605514574644809255438420981966242828026448931910776796316008027910520572160622619022318400846752834261625429673812830967814208836525427305771240438944978139890505515688503112627951089905184900521558048151575903155774815286924741108290880857489944279040179471562447712087973948443091385926715175597587874002181797122791403340108109188057357038906039822376102681128840229480931597010510118282424452850785962620786007579346938518728714470937915378925759988375057009148845328264527786298071648151558536795358635213417112508779751896593786144573803319066035780897834945383170318226513592618677803125463245174801103976138073469502814586258593856236647656098837558211621084134872392172644441550363939518614806309340636833103921744607609535388295379366079103627935133327233728802969740235032369703532721445570571639518414419219736792776607740975355004800073060690962364600643008827643489233034420143567805573575069066153400853195340880709652161400230909901575803449427023622540888459638195608869192443750905350248720357773461535122965923005064538905142385323585320563146824333304271974914009347552050035248666345690611453050711419784369199254761617577835383716948559323223706011425013329970418465264032415610976025101440327495110804338949226745592528845555361843593940474546364010041696031122286551159300312832002173580313344054762867452107078861220597490196648666757296129063318519040606237729596183525338820494982732287789976381828216550156561320921588608290849184192177629405877750691072631268838229802844841842878850845887752706594528964309163648916746432511059790862357766462724299977159988610533627663933033766848185513365848153497595494414827471604504313004949001580554018880008325731534819381420445446747210697838948910224627535202001956129269208605909880816383436970382886538002815797195122878958554342322543879666474655241757250916642366654525211316462118647734899352820708870987168084432959989520810046292556937983984745203919819857589581234135733793658212959741750612888281345382039879352108513737958886388789636652561008207343120420786048379689485466538265767839140270589932873568936792939229046920322748050078017008515196816311131590105903496873319578469957080952525830704278086398826160847612751579968488632442913879844905014413819016835399433350425773373361386820941812207292350439281141864517643423019321731078419553186738358266985152733672375296944835453206551301563924557731443503394870295669165351044533620899390423497567581952309666941053862892100269506848305067581172464136066163486257226774841766492954108647031125929399830686152781043683369727938155112779216516929398084127386718496358128194361442574066711308650684048740007047251320699602958798114375070742185695490829948112633857422892298718087539160601859735981158497910043294976735998047071758666179937336568373335263465172013954258823956069167662355511742538359680657767486171718234838498123786111409110488238828472786873490690725904825590623390571043927870350872280044588852031995441454426519063515294407867778931533726438659824894746744257087722037474817173665750393212442962418342771217371089029870895507857714316311362514729285667602312736664648460304213212417527641149081449512324328731279475079227647672869968197233084161356999275424047275043349582037707165311891409680401606241681546527148184138544860207709198039706254186175596251060852047672270363381570599504827797381916871041783464567974901518899508932612983828245715480746206632165238838348962485499392843034330452900665174726727725329717752371452468360127748433756824537418298428721970901079410879151324021745586942797369561068787681424265198882231125576475065653401164575490799366328567983113259310271046830148921497556541232788213165095716023786928513619661840314066850904275944183566162875116203671566193945620781860303693355084033307615299518046040958523207257117227505674679142373384256211567283944334584425474685197650941765458701576173143888579594234353233827077517161549669714326330404115244230212477060779786826507917678942304914999253405583908676665548966507237885859930437034969113462221876368584093659910442885696687591393315047063536527433896444485217729979252433505376567447459903056559205506524574921240013531432723595916319287774820728227127006822567360644835553696172280025905459014454614661288047433411836141521360502124957812437352174480043408058166862817284056923511826296779653390173034462651673657025379808502336346631578222553276704421098645391082697104792942389196059160327292796283314172119005467540548115648081789526714195934069673521262115997582568238565740005686322462624977640640415109474192437555815117155527755846214192112366719619418139275455883268265050996594639336400811823702538479057023859054396855177883818192291411851489982210488825112730969778228782044260529782585333527995977596073287227098684318402868974011367674060805995020866130347425498705319909606868073084738812196394114605021330209994887293979214428698599463200812541259362426013590192634019064526493173330537454800665180458380582688191714804723632701036647127427035940677357703504807019575017429216739351722553940256038091062281916976434824918809804471450543871180057179878127899427057827393415279678063514334257764203492295778590184845576606044046965753535349337535459700343979371159427677547798883082888573567267036429799599905493018478842576660534932907912816997854817308418814425862756803494339293545278845223948221302076089889655686376461063821926849218007640051362298977762242559908055461091445788337453788135318637505191511309310741385472758599223505731955668401171799770848993960959714913775511108125376280818327482344430119240096322765617729634832354043022798412505970697616132630200327270451649485406943529895358410835110319796470971534131603132376712764634365946233191226365941556929111495716229658102977509006427631923259991257189892637971362574591761233685366745246871477408080797303868113444650847333500665926672235251593486403272747430649230619236004439410351564492593558439797817317401029626318357604078419383240853596120937491317064762478264243437384198528572107230804020749417199524577400781346607081268624810658110050332296191639399378022138099565103534481848961439448852935343539078586560792821906817309193966491931889499862626651907947671597303161637638085807839705560095836268228256505915942368112565134381284307840284556014237799752396031679126698659952969028037455171560043429763173836112807540247539839759369263925426689032068548000264349411272639354115054776504954994231399844466813803382636256971398684711610539399507484278570787745504111171310302706397173173871993097832172746847058041425767835056132650322092176947766495047145879494511961897954394665047374697434164243896312445154154964954165172401712073360645282446696450227647605488781230539840404936138708565354931845139175042307242747937347135543632374827221584051566570305549361427196348148039066469441474381649133864264539433120684208958239297113581273586816604428979430091935308390500772548779397219136257783198799732592802987022525486928838165914119356320563509068288721271503680914727894579876573211267951529952449052071903973130156349745107260985104321202816079326959204754598516432859827137969046159910942703904634813548106663395988205745807924856007994728041459949123357339711749683531395805785712840773176443218570099211515631488494944142945675581151589859782317017253264224345594261625505942369975184312677376854296841157217959328913644445180812213429419069697370045223749508403696516017639416979683780373859380536198279396128519603369300971222839895419719339158276156819084905673902145331714493397970902062363111769439377447819414011676678174095826728101403204996001570393228702255907267202210166067892811082512198329012862869448272539048917748173453181720244607761469408232802510932861798360182606755669275856041428634141281754476195279073504841752593621367144870752575557606497070163742974122467811143532816459793602193569738078866139506131017633083180286617192633599377474596569148251510148838708435559247351842005240768407051207924949801343518726242231898139409755815524937905087849416015113897705465934041169599536052195227376783098376325519474290881265297834194338198661071754735602405208743319658012458737559138577671160279848644348788764499879625594495548140984495623456382698557939667010111359631666132977763301719447805934419573404047104805297069316889443246979972117845211347745395253152563012810923344307994321355875651823207813392124080370710904581375260736074443668715115944533060761206009383228567197752211060103805813979945828740486800103020300680440876332456123432500518096366143789818496520277738448519194669761063519289535336047648579067633402464123454165168815419937148225898081836962128998909047367603804460654128068988131608066876573151971157045414881881154479997467362937752310128992913477185859783923706785657273885402113176896517444668889682447767354553387449873798580856489973088369563977430489066200128814440090082445433300565766828206411444681036517852186917795255939216013975724432158529032616835289042754144686291696279946796052495484028688785325693365846472629753008844947442905112450623835247903247218992433605930551338858698156846548233354361248364816730114928462184116248206289422724095332426657727307866946883046765277769819558007288495871844882322903457331020592234570813626325248960474874683747370227201376806152901302166566888719262127435728534101271975744984104613735415163385529220922233432826262427738460743864213670089141714550331565989387806675909046165406686072035844933265176324579627724283723811638434619160316880963075157596777127995557072114458100342367118326732325794049846603665535638177660431042339248083270430683480135526874680992675496699334297450046329141294942438097041557248735800966166827581090215967456354379599842328725682415105056319883814276413629367688475178628435834132246037672848521095365382978030097236029928367597124807885744353646294852554591990534361562529571223874103338713500867138571981848127442264874051536263027567292218883299036383343974499967132256008001604003084044740811400864695123803868908059866912941391207054765509774810000479696311384713222814373215411330969915656348437620090928926395122916722058656148191825972686423980846623693007968559754522851102532750814815704611919663834096180501491930048161240629097681101312358392873543066442819467853028209933226794981984569917857904621897141222864362203350177352333568097289833421246342394196128623005084287061106619289064104920756048482858712208412589485755800335813844276076928800627699551680535849397719046840420373827121460399067185477530915604153371832516240375632294515265650401018729011128438047800465665838917315949391000322773557911918695541725444897244411481235088768100280828625583261856099464809162850658086835075843050782957893680930953910700226911677092589409679465520311266246436447121012420352615152904258008212597438518078201885552690926581772240664088500945531626711266442537673442056245299703210979730698546226480206755921857346358721667132437239899517456890044454176453863279889779580308970678210800589589345062689671299363601537903793367113406244972998892006487793885603776472117142733984627081767839315895920818636767651712897056542055324429850461240919795313914416341259127000979905903978389267445883173078923668729430050912716323153866937146309941475716863074296634371183925110755743653161201878189307311154419972537094050393359546217323559509658410501336249843355306044477911432596779560565961490261319260289507381688337969298870244079473530106432166345257258519712631386964162157415356559020705492804563569519819001953712396082668894665405069895837788277911756805112272887726655656406414809274743870756802747293450452310114089546307123679711366767623437601753537876107232125744198412038790717573685426514035500137390040757877256449274753036096280123156963268333731014920515245926171248677813669986436021724016635928012692665323616483416198872452802691899377150809064700470065077168538800788352494385704471926632417715048516525829735813542770057946623534910659402676977905212776093119985769360425114578240267392612512834318553429699739117869273286699223111486761424666347656979040074180050557261092457112566733192164336464082918863568207895425017193998189234132860889549637796317990303272597913358639413014676727569410411569381556424936638257720159384152848035460084471890503182444839224631678165809004062175532233293021919167928781067766359297092612421201841568746002575378000611604932291265404396682305049275176511493508414292253328228233153737835844752769281161449869028125574419488990724084017930781604702604063186227689812187762822418346382263232722775293313277324197599106691867191650231034319026828309358535860833412129050835386175232944560733194767530509050276836203849188866960479653045871550463821993548835970121969337536000792957939691606450024641384029363267378413333290914830159441292572498324543728464538660263595482146547780318842526004373367310349250798152819995361271115173733515317439285089064537467913286637294196942642279785361250369013410700616169850719314941798308695489664982251774001402107895529752987895769361287160992895259050415355440203938678020453180184067608161231189260883226452751774812921605182194843491985153306810690995614086888305591513697018995340692771310050537879025274153594376394058697402840537035687212549108154387593405783656109614797167969590678385968703043768602894030818516673695541452759902012241934137523706456429095500217909101806043531329826285550464558993811147542892148012763336462558428338666515145574502851939574368383168011449196966708248740785527899282893717289388518563315305813582228277944978332884005249104797287814128421677952902550448367891759576528500299241270774125727825622263675355647115519787318651366788001394772867717600940545937420378882850282988630958013407878973930031998121500838066600707141929979884969190137177983973496501633756170909539196518268880238137832003022462941258746102426377211995640191614787554825234560483224961600344908829839589272194632026657637108516640575624205826549490583767933850721505038556307173116729816190599713866664300955947340499371285014634552407727479652081161055004954540108366366179872176697027241627937345871329111322875063016414400725293862728477212991943477647978816580340770071056968736271229221678934004683709872390286562616054501109694957239800922408349915711344592670993402449683248638254733290195065981174724022563805332840548413051178352993417682468086017254144058640587871645291528859776028249482944019544197860001023347217998788672394582953345180782867783359029203076318774699385470384537833417262146388710317243803786865406146387474343812565086774565256755166463267014685256096402286885494714789752191768830879489700748583901436174930487314131139094826805937894546703719036034201916975562717022925944310899094381731747772868917830965624563904733194952792049729637571299628860988723570324813261438753155245420997028428976749527971006828346737738992493819621210406547526709893158818906202844963315734523583337110847046537593307488695573447741716228668563184682339605727851489576176361692458037064283419099146404798471404846786358498725365544079169989806161615413056086648995442134089373216676611619362142757723054191566653317011763282019204302739666982314499044488215375806998457637395291600588283766419105950484143782654570805905068469608958927793364783634695867292534065031190887626713314781874164569649624353361972287839067612925219104255939046079814167863704203040873534436425416484771651760293976061481594463338570155849580678874578017011493395587132048430766722914080655182408790571569240546992133472906184217174104114523154585827551343190050283430913212553454624261950958483005286986702408966637376296507240964559078309995442648524394957761133497464625997795576323918844885886685144839478402853328469263953057818383072809555239083692780947290418915961112675174993139885247342186124292298927241102048290647012861302035522779396149145487673484957713369806799734872401756923061393871421728637255063268068362320112794929387555508804712298915612648138886896713791447615815360979804067495034727845307798489146423973891938261839450320002251220675788151889218293945775499621904775534105471344106680034915248598944628122884678852475633092547379500024630757972062905541492381514134580770683658895854068542612085622559943238606618652250578598973252592839555315229108305021458119808555685485559706573860347139770250776170093890394733585902300117726596678432097245993338748391088406874911011254624433912924236619482069925918122675149474306732874747921249243876846550487614841787799852105852481958817584340666502408516735354723156191259006729078295672320134017574298842631081204708061647608532316739508456012091819606352787568958256469860571259537693166259193536604197128812814426237014616876487856747691970944285044221122255389224663722005803699266648798069472613133009089247941097749560708722404975189646373297456913881434462264425531001568759377689430714081709170211366902593106733219192734778767839637089479298095743633396833241814685706661543088094251801121883738459701078549080536377724827685238771374175580523100973451286043310158913280107862866036445425220994198547045610512394329049334130237902758002513598198503255309284423746473838224121664060782280131591791883382463734619485533567735703607737757275831502960477337159919787308446068299941132269102940824904112744225503869746636037324588840857972975262933942517582401299808086531620765724255242003639220802232203534005721603384717016626637797457318780186232915085323882218129521081366046138704373701937936965338519905630967024174996237292450248776848665859401431355019045347908692385705652241134580968009117792479769009639577249211708535515389431355113253328839928915713764805712387546457924742381949888290718789722448992403444959011736148916273834213648508005165462907963593990682982679965877226316537026278234940472440845069838374666928213044653311894852593176453400186793261285558686611185607101987296541248520735879793004779763125399010785060464727654315902628204227792733200312747382171909497964129507081974073054647892646516883720760591446986564884511323396960950472646132903845777628136160224537620543348944606671763369791435860495017648508374044542883071891740761769856077880512046583820154263894936647049779803225204535347999972093599735916245978829624240794236641501779930549915003659156904319958352450007910065397491059224168115060008791093230528154340205179455439216621617443761115733309989039065553251546823109944461144241718745025300319717731385775241091167642007193777311425411808964891390530402301756306104211849250720478773978296101092574718293914247121274077029480463687686656974898758130614339082787859045673071233976252114451582296289403123379212284894594855882948633672564014074595056157766937045826787952380211387733040174995980830581931635884534126015971770852745503780422127650128891510601208284773824972491587697070875901929558418951992279347578983276107486785213661943418961877800157201673192877197098684564025296173938545521397525680293314882743821170031891519124407260581189253613901660991398842030935719815234290336356473452687587666253534584847839686923279589404742744476578041324831868688061190956222419906397072748352176748741380545172186860031800987601084967295183915343867581826280520887571720461912326101079823866919839468118823350635017994738672644968179104043621281623835144834336049011655318765131191180310480446526132700949568105197521227877676724544394302933750970874145434515011311177505496405935356385223826455342675584009493715242248438047587660850867052752451433761877453923931233742140972552333538208962562720093249584582933542078804377458679810781712518792743830448957552021910619796606565010030693777079790940605502382005962798841728211536051345736602224476108586816711974439307922261525048989350701710236894197256068196889412135543949610948360910653280001893464524346763691336054031217298021639955414174023976663649968706927032047105026665308856121421729624377666777824275722144681593286424072787354854708156690442354683169641522854803923727917643137171296159815909961400162792492198182266635213734190178136928836084810300928564785401161619077929858979686772889856022761592278840122900100585020173870563041260601102951731092391088305818033041982023789103230721213010954104995591628474806901425475717722488648915291836467305752238844024185877468412622805123895812173101806966273791933526763283540770280409108612167331283691344919858483889877014123590658942401051285616067471069091180487673797661592547939382296951112526981315124666464544949428741305918755704667224653053019215871963293355562575046982955546909782033949194614063686292906959528177846362182208550434991967902993552575003426179079622902212581755339419128632437099406214914658344094591878958695874975520980348067421017110165486192662323864812346316352801317099305537754158438680454076927426149871252386877278433061180247423780693952556275359688097322366275748583168513725556492938160653345249967498809650828126587251258809395973395871886343701721340191788890925655938208154699202469059434616302114669362727830052437930521580392527804729612496355838206537035860292229895411299777183340775773642087779008745853920593331067830943371800335851557210257140209822531384255985198410903871095911092606812485815955382571864101253581042095941353328650985698876986733929731023897098427902856106205667585000183837646580968327702493479997128648697050238167558419861652075220929809270331750139429461079040142198629396528430484072729577608039248962692792017323523170746655021703479261710834934375714702790994606110241540956269636548968390442216110790668845541530990562210574488622130886968694556390043245581028642515436013146306735898415405893293393988518142200985735715458572754407620714004752164423064762242729815921823021476359515904502641574732472864225946561359569178865558566864359221744489509280518987971651942430024920078075511180506984731947594444089331401177137946468910714832963475419898510590383970366370568587629575267440047858047508823634657057336575412675920186865015012112617126119978696006680570674771432723987003160882827446945992633388480385161158154673454870951665305496849104897852152219608965323028476106249647947217823111002721995471479942426534556420900332077342540973718497845865203808853756740616334944930990159484487874435068585028266762734361179827539198153722411467705060437623776022600816926130077273288877716314168720294700909829995653107934399414221525556747999949723309734814430558028847892793955779486537324265473769233973354503104179786622947899881519747508831448628932137048721455184648815696905267276735427620767680591914002851079700270710797832561688302635039905006891843675485644433734559523458041660862331463649927358079228841001578009822493707806231123786190432197397218909035696345811098671850531348678944164402110611983498409829611469255241573605312909575675745699218223258305477076424118081001429729882195205236534782767517279510979971732359809875134762520385924956623839117908472693294143593900999541521648975727072474627073311784719619758184268687067942543814610807138731984792346938710610083353491713557706388848739683848716317498473241681996293944721387353575506215363106197738100030969735338091782865550790964740159789659948846454268943426082557694826295377549494634891543330618343565710863993549010018508369185017949158096966002564409908729058195540600073124918737173960434676119821135943425986081881920818332150691183968088236216415578683292270140894008853131149618669008745697639034547646984856623915690798597124200375130022348449012541082594802492865766882615987906628104719021711510299488300624369572947743909268648872483364691996790698001481927336065046152462332533050122437311790471349162577456688319562459653858659955717610807130114409665418131594300698098483267849413614603594274679574647638724170382565077110737491828775268529471414345918652152398546707856660476665009267364040355806463988660094763052979387364556321257306951617173758122998273089229068812434261955614460033718960890504065641282279212925644021519925423911750884628721586539694746734276296246769048595611890924268806667408096610469961028132020161218635229670589576710451539606999277060470626445379582352573745318649242344037186309188645765622571667552100330219160395079809548784194258481539753030130535523885293960282902557155440311722358876282909003617697340712684824197174359817183593977869591122196637569157502606891087854015440936520831107406492262201065090421457095199546535124544447685990834719958232185258264150100704374487530900078747738455073271278822208544816591738815537616090038897030919383459882923187174634562479688015325194995813641260789667628503832356618166049713147941601833698821181979613797462798738927934635245138195714385515021595998362835740982580176834442804686810984128395358420416460053911081719054031466648441551102248902652638703108345606987849131067064229944291364943367046844937262194183890412800880215564676110590076653374741092070875411846988496128894560044438386590374546095734109959174716495493135640919187910207315103734846444651108500691180308532776984002198183716226782701994800241178568280810958465362244102988718402796092415314073449089474912891460826799850780270328742230105048395789800393104858002543076206824849331476769799957875748364397652187954606711627983558094398412100839868030246635589998275561495105793270918174351857754237299559671739169088636897378714816646863611744958987791151433161272777814316659135667774066160299247227862608499771971146988559867516824170785082360931218371203151058129938845001346348439043038199906638862985622274157512201396452323262416824036791362935959982575857721576283423503491268739305394194949167115659512970146382553954362018004504963646726881856292761575962755871426970126216486393198921958376914610685126483597912794278942682258569045281865391190602712901092126345737316013936252107676658462722716442702007631086359668660985237436183637422995462898039336166217826010542454990897898001072660624637025554550626930601568277126618189261411031290017559545951756157618292593614866952644483454092248619003472734830077374360512343382899107189797238668912103303900944201862293497050334048470768309233782930099015803406530307465194780243945788672828459300775309611932402124019526091138063260589268081430148112440218257864444019158581256320391358210665195612111434551857832981961866631399024189913488435898144770952212917271544415651713228057413169656713755830083773273408172385671416128401371373402504580713092869026639680671269336662020988689514328096125412813179172617364057143504885333386277323616481954937993789889580153671166741594578784857632954374431110191359878984883878689058207830218651161667684326248184647195837709684178802851909268809395132896809313720927656221870561144070102191967171632395586039616172850271637403480941025355141969733465901699110822258260506663529767966386269007601809319418205365818350027752182079673899624079025158355101862613943008625766169860802061935656664038408023191953399434067611269331668643526069819234693587968980785693021658114700277647623509895483549690094440203450754427092334500038103044777396230568114224503591328723689778918081588077721264634599172574073192788929875516195551139194103512540363598948014092830975550891730268133858757739455429978438857441763531601195001621306016144884843002829923538537015518113168964606271385636565922500799934209970334546134613972397627599678575463817201961240569324465135511497350915889384485480050207940649971413586839747726624109512703095455048152860330140044587533420865162568834739068524581539301033061896195288358136055828395394342286139835582484380806749848190837259519819191132786054889597151572460821511021780643407442854991332338071308456351150802499508266817613093859667721810162270276532685503628870790839654281820186675866683436834011400128890330312182347781220315784668695994631248176739457061473670028069617241432881478011439777022867255335526219432596860919265991296054073151047984894027334690325193831508105854334978179945402630935069670771097527689626006461625451920573283189066606530743752073367430209085032741490281645808313162300731657223390041357607390316939251455044882422607211167251805842113440339632531574438728548872642295711463520660452387602820799029484861863260622175577109186752503711486096663464837019080020362724553398538392828530191563087111537647954686829190463182376184702966518582441789818810214173321674986883493648911378258879736820963997418488979327345996473762919053669245294426465724829238241383250701554236746660731955944128451169408389682830170724598889635562882538681204177950034478481884719545850109390826074202424215046418392078463387274587433185211993009181219408197206560770068622586113715644491048065621807120523211695286070426633975817621821665927012542270664633868448755535919357326659497136372889957105445421511482281269646896049495738834264180744937772165721899688377472221792740522957362614305342135017423363505929535375022992192371496998682923386212483088404078520514920123022398254723536052034084214764380439140824016563639204167691813422275158617139677657403441578002703700480066265269112414886499726268514617523717869126011932700011737006080804253622075278223923061704267479473530446234101131072001479824079424542406389224169363591584698684866600442776682845303473640528449012376833178869443874516273106894131988788227248556748960915240591090462408362117240318192070633383207262993794258418779202206166831096549119002679986862329095080455573295599597372407408542672920609315023882446089347957202745267400835341882900119208387089824792872844647367150448274662621086666473579097598750019024878808867190362243395088239171913907632835446696719799112389985259983251796954676653210732277676918554730869715231376048106887294671812377100697273876054346942911241666208190742707252317812606657903588212867008237432656313897000305517697327202084340806400286350823636411331260744673389726468762558914668999767253682324313684222939240402042803018059728204716450729927115999565684237922217900289912294754861953922554181738295942548475920318995112063931076624072103062295200218148501257084813238264095131080033413908590216292203809641489441573883180271487352924322215009760974881329267155941999503758076185514004214632709451786363694557639789258345248028455967404496885183722568682903757285972251651961933468378607556417804469293407647572350761894790942878918187966117457754034563457980337034791158851019569819710244238697994179079663035662527744605179626509151387190227013672967761121870336258231403399286942484997929242051513186269628478502202435281321215547139580396606261481009037938299576186130349517188853561178210677471805530868925158790849029886794913574645642506115233340047535265367683052876785826729266201313039725786262794338871777468190502164715357466582250637153625776730935616614079649299176501987482901944518676519443351978816088147920793143187491235442052680256728498776071853484934742532629769480362328480874936960235239831894569215822333428032453910384043843429066782925116951429862671590001853046879759953811274512880433889048989577151501010435935629943188370350245330026771484133234884079193547535157720271947183352876747850541552678689296721682715104320377315838366410573240661484232097365894932692668149068068315350695655173858156721456254068616006440264147534002101209828968675581744734633174085182496023379458364238962065891868777820963722201755360902116513653060530664767502498584292259537387140882821870858088529089267917752501717900845817125137196705558887435804520761857227421296779896227200387919848010249544395002830682217404526108294219912310104950232221300771093619388904362287559326808081970062309689342966994958578548603635502434963501868209732269805540191364643675675965302205754552565121408342461066246564689687172612706246966675644932486988285664472203601584078828630874234607147107353996642221126633770052052516368794504304013579599669691357915996553474580891964612411257108759176515509515199705617638633056975097081106615650970060440192719205447122220632566663308364786638721192765875326248332985357834962516217346647744092480010230750661705397206221356974524878293723095672640054603519908138731779595260632783072528840375178594292147630541425386414720617527317964101492554507638279069813605683049121983780493067617715643734314278603365134985423140509302909511564018011359371469367101008490102590092192283175630237894574422363395764219550226467178311397628673668422378626542383779130534636207220804773101245144670969929843762602291031629252613840937357605486378457314835339662414012873768264283884861590416671565346838471933069745500843210412425641693329093186688010968709667521670631856795458420934758295590909534687080696180508000319370214785071498086021146157534650792501092534191689540045669374991633660802824016120328984710724523013050959140940824345416352107292114189541383411655279082620326457307048291923991229453335574759140913908810040896122973969752331370418252318988714880329630498611449227973223387065632779767686783041514352560181499786638329626053298005743487896317124108096333418520782074251721702394816421037302653659567001354072072401608929088837074575403531426600868314806760447210375948471264020451674256752428998742774906112288785745478426580673799627287885700978810480732572613372045220984133131671798110789427041155763162146840465112013484182873920222014901288240612327467707127710601311276239571273104299997257083355306105244562895180648684973849819071098024383137250490080969580864719053378609990699460444104163642156143992066188601965705779880316445724053238403692261075677618626490836936454868533952954702013270149242390552267873924349507721613248838445953398917780373280851446106651052458523258582615329745859513037322070036063479310450939868568874471591709847532334061962755853540670004886423171113915606897133252678445757054814532323831363251987210685101101457698770383306790777108494852561710206248574867717823614835346898566781963302541057336695037216242719612840647303968994081353408710671412389589980619704219775523623001497802382829684375275830400498464979215220828797145659896338299839140892437426795408667446302368010519510001827038178299288274244725888968530966382277406881640472764074950172348251902384116617802032435692848203630375120083942215523140834955325977304570584211227079906693263164486027833707468684947291282040132421253930330321810997912746558776431935052865682780306279251231803956182007394606009213114303076469439917774396055844907948917687054385292315516422133618764805728944198378215578680602402780712438383884590799489916478536571273440690455088079743536576572567078767411962047726566560185705186773472714209813543544342143488345483286955268417354798008969682259969186358322414397408794010296617331459752145688461006151440349516195895174553483419296849415840236401272612387494094414727517148551170088986028872083914030297619741734688517757747237961611388037997664429603214008372300774554022296439913202443774206602539131211799900798121767216967183213200600623732122863639350679223477598477630301358487372748866965494129098656524459510596076058963452966733645225796773072878723675841009028201908124446782897233661133727189194140581397257167335552118882069967141516140087127202257818906754200576102543303489054767988901575154044628524957406299433816262486253983387039496751028424390197645367330613249881992331172356328910005283968826475972368669055533072263060972324204043232465232858538044684511204230529978304512691460935783687553235200667107354000890361872770002121845105119758810765343613438165975396106265104447948212665966094650054691214517644893253739972547763262038347287385228630914451415853648725666436532521132187333107738848152122914334334643149729986379667051938941709091974939945519497035707800810622606402014972409371130040961938478515825139643967856920881449866619741970836229725518602759914209210613063821253943081713686561152700663152737562027427793484724402364977664888432156951025912447595216581462747050044690781902964303312647933386118528200991937767385588906638742408982664189489947514332051536152427498548977332832041491998983313373887156472168918853053301254482996438700321643861572750863239879302775936721476924175782781040559874300730259994631083134892647468324989211899632450988422736691634305874610222457769344215368933809389882355245771159315899719282779919301607072444621181769172826276197917167803793818874032531211016149826233976373085718774685218632932375569345708959753781828918819934929684823188028213204992590185772247982103383422501129629586922993382460878865161410059379636584395229381694009686354561242320834945329022735388957333575954531003985757505482168056886502491331538300630278457304335112588039017443517982669818562061295620972327261541193308972736105025011982908823724316157881822140269153911011292898966659896883860880487834662741300993054794222179832234131073147133556989100441340427783895459793806580588249654296026526435623739075244646672192520374250388810563982516203353856648985379734257094441025634141585625804540261807294068380236946242301345366639146230376621645607566025043799987872494925306931566864308176607682548312372880422268853404676827110119656342186748080233710228825414401213567820839245625772222948233408221913651840641780099068750387020870140664631945060700993255985794607013646408961920851816433197983150106870128864667233325303828138381409661065611663690247139386386475652688215201459367305635929123929371444810837436829934100902123136682602068634924130022832937721966994228152988476257147094767950925145569578081816389681694743664525126129353607208333962044144134323340258962829747311098523154574482966440963050300655704936279278120176623100380194781009366395515812400688597239808703992677212523716144944019876532112986246322650679433483469516213135085180829177677302724596059003428624913208991417314704206000739332240929431873391521783334241932482614102929414496017895524621231527127557702113985314743394156116214078833384417893833246184504741453821830756999750763251135146927966933112461880677209788553820168911775893075766109214688775866826428810076477429571436182110094636622267583978878839131534211615986976473507665914726698438311152749236477354463741643255114060662293262366914555479198613386838908917866261424686242155677887645410799243354148473732826442226428080696730037769635480549986374403283573380457795268909900920321025654119163185696434558602977979870342894371890936344745554536784217529195396535016559737025515027862888096196879800926410282521548580318983441852512868738013255911860201862994288170762969397353313657027368402956959346489492436282551897897601155160578680279749633003652281755490927283958903147129084525946683376921257264374147118353931347354776298661359034873168930226261679890568313323398395082736111499747412794741316442513147774993313229586675701409374118955171274409773236256896444614106665733847895872424288826035419066802219889991277118894403969752847869974767218380684830641910769370045044904436059616860941823593399567944035777762262026140294402513814582759476003431232305863355125324722233878149822630031766184127415956591293836807601981952203576025438902922077795662077907350392044860872046764528574162975575971516750301411773902017427581648477569635922356172265562531190202118713409070669883174890339337338579724158529549261019249402356001302700909416701799802107446556624339341950387300683952823844223667994456191649610096897006247177378198346841703393269810831759370562892703825507867756205261303231260028837697444210550799947836715562020854150081645967834845147658060379460561166792589021893491648232956141323069104316995642072791062926064531798489444738934109827909560442389971211005777138615243242101176079874959594385143595127414407280752027426262739593815086245851564066151442105730178352978049711883721797676180374833008044887874428454289980082326593748698113546018794344146143204867129064002023601252807894758804683931745487365373386252422829772795203166902952200868926481057192708317935235784718267366069200398809674496788303838434048324218558795967147304326402660530818281096186265213224083205510958024741536741271830193753550814997873398067558846990283338592348387710040270636435687989661556856012613702106523172955369128265516941881956275948376568974847415337806742952169220736945880027846423622621129277379497450874003038032892600764571273939788197612452281310070586634345099269377184644864290347032447880719598771528770696250978366481672892906892646453212764291770784150796140985747348364018033345001400454855434000813027190420550055531305517603589141640506627845753043686344459165935188756196016175839232389406022156006245083552193142049953478084623682505106834577133577530438858843666604803972827420738432777201008646940944757126291957358115106934741640895194970391464082191967392673665600298169581813221918550092314772949844444273732584743872240255021163180256986677119294393559418068430200901793880882776512649011200479148766474478036985028932673634639951625374020580948687913569150348158576738524575745779624991592199570281369713589581300593977390094347244481004711928986044163564479037941778792345359662160319418312515576235963772486524227507657351180565628995617294664217251787912381448374885478127762090258639220948630436053516178220937540453168391424790918153462127787279215931192219063488081388746971039765544818426165862517568016644716814076428471940329476888702580740668703699639541745051644342050897653907866791029805791073245254129178687931876639375002378351842476939120202273672062175432917779728307574279199523765492779167013341591030083223824015268967781706340551696683474559539517300258164921677797888660864514960106048354559162354001214889182455186636397333441777716713031405476219460121161975385678792727942556340966672918891763614527187683686147198782456137215220203782446003995434409568239353225402551970698014700532602063036188183306936353805210319686005052052003059945310599897744683378554346665487252626837802677785269475539648766784015171222793636421820611420383134224803188596592033425139642951863120869639945328153002681099275941761960775131774409563430645815514249875442040068619295545928832952864739367451501889449798432937508922833650764581670518320059424461891831930571980882558899005499415302411746100585229501844247726985194035381235289383827453734212120570567056627660275607003384403184858351696077537677554257298377214770352622036930799635907912549552464514846161924652158918889403970760938443825013332650621885221571714265552250212952514060188465962611839431584848729568838364632141906951171403552874639784432479032051232561471596011480668756340156710319788727499385933407287493212529956610160233046533315806144303237572829265597656234771194333236411994825953671893512771909014049896760689369716027340731459568397449260441903658873215897089912150562677097452494350860209973045874061864212697835724133133608046021808899988716237970398043437945033665342869014874423620333801630386036576021605669326352802265764951545007618337194851484136331754809030060446603527925305114280390647500634276859307925862213347825354553692674872028615593673759233591306780226450475962363726995584600856245555776703040180692633033024052087480784782513752129250873577609827382333993605612819561048060985732420570335423817576796457744265215982467954475376302008993370837033375888794444026089764776312976948802402309798460276675467663863996798547855378473550241093800940926619817137460575513907282012305617314736636048991452655324055609267034521157551597909015335407305240752591910841848797476709621581852092921393820003383860361106267012219136962591118602164898497066203156181809043114809114053556463326655196100197817697379618185108559857844919130587337442681353085704036172843565047998138154840562017950858976422876554825544451975269975089393317678742672132687911796322129477282835599611896433525814351470120560471953680932836799661752590312370972160999383408744458013219867231491340694812000868088599246092969287399526153461978628651621017643731433935936326777604679101630458817408282965985137263304027765894169650930723746274537994741292708403102022212984816332861667783058862202012894139196581919084806664453654472221653708760418916432607045660605431707793588847330336329811679736933583289846869716894867270411068203134323108968953764139257261764610482330640818256168312278410595488141372619622110552525075772421202580693000543327937500371842412347759681600833145748968337003425404161088553968252580093040881590761151906679225217432808606838210938306253385988449249002848152826115573991074680608127665276567901331115627792819669962445952944421894836960402518813449217552813478119195548543261406977658576907147899228438324242280411759470573276479465766135719087806214752401880594911171765674582522720427130429387863736349508358987068123411143538611997476342689311353627087448179267040054035641028081578441896804771102879713780588547913724655239999817419865885809804218317578220504721740855178805232465602978664800394522738561652882143502171586561101448334688728981321427190992104679700779120553897428159172100697438432197152538114967011806528077571812870153203669012284437160696129912200502615400040699990637761919637961886202984078541412754592419248280578559680485065720526927813436211873432556500523384380429431588858982618045432221464857272922034464976622707598476341205096552689174604461514416381502995914967877169466586818728019366600410120524325879767898085345742622015888408224769128911506118727206424216603761635304292898438699298282792214185851781351074671239326879433872507443258175656682372880863256556286894690210257397824128706082603578114961471317898058857479126430355502832546554200748335482343328744056991595661820344925347730766278633075274940560643293656069198345702188444302066937207955098566986853530030817386654714883788043624763782848118256525366737162464696668791862522653342620467806832217195157412321131503153847901883322633353568715003114390387922354952314674879272364253512001318619997700433158723937468756409157181277400980921730324542162609543231422559397578413015730994036080250211351013357096952407955335320098137611131717925109912706920030030658005711377654943725196784097149235272098829655885414886601247488049045322949170902536838757021528719968733303838987014122281654191341226782374409400346820028541279462866242878319990721537384049211715739555208882351276136659489201979081954681613840416231192966049558099681811520678584205927019064548848830440155721164554014843256926838827289840215105926371098439540328664381483199188668885621381572383644367570854800280239184977766047540043801553935258076051087881797112937029441289693748929606266718924076203756673831387050971649631047033917509735785013397725943114338771051453639443595318843431513877310806364853977054255627071202475124625039809861161716229088347115351821581502280931635492770176201220837201576057178234358383655842422801627899614944178825977423684039670804919711911619871795915155225202664006290790530872365108054416334558252063486447106512093816357755791886927919047399899956820896279917733109337238303331252765665849624164473663385953408072430401654741027837286796093281651277866400221480606047660006403841039520220267156687635281603682702399881743268686543439571723766598308539106499309323813441517435174276136576371611362288949606996435743653452717412164189899973556692588372185687187789839579253589265168472343352383928945441411321819791216347938709024065053102237970968982923260132919568563853468168135958667105842631872560591577073062290623561223996072881767606900101126437154820017979093113622573856955621184514350921892768424217977737781629028631621313469108662893412158471086767576236143674936327972299255477596521123993304440316673585907304326806810443942432359907074084317221171047723408798573508625461767750512217305201070079981894400001793885486654064357100527616796434100580814382730723147227301174276876419058636566915930813275248489539188598870640646427040787540610860066558410669205788554953735535308714436654663981367572074866133677257016850090163623417426765510090145531150169777706359311893703993504222052852770001307529899548484412768378144793436976241725996604787488590671836603331104946240333462750481772157378201038350278641785356084392787115590359117276329367142801387058690278079288613020627963714958259061468702033386803059825464419019384584366429114998141162638765022971941529514724652108858430929194682727366917625386706950721780341737089915595722716185200853061239746268800119609454571638841001003659818829594122164305580200399600007013931322947275321991237070658547675522134526496263130031621470958203893341816203584020966511608994153320675732377861177008747045657512189981729382387466145371247111682918103086582684412441967182610992086609696340001517952441750926827372438166431061402565091212673120662817013745206598940982268633683402577738806474088184417589777746361401273267204739345682361418078185837894364240130251898764295523851465216324757145669412681879828409162291772472668587991664313831811751591681791540553809234487462376792971964460848242861929348304045833339174688472143558496284767618261827411645974038805113649621618165806075730472073771610077742859385363846758571622562117242497313282964668633594991509761922555466747735527596169195479421206415919706161360166049505942648627753514339157152608000447106729753358689974685724823851978190655521865927491072741716253818643428379227253542030025002140124020516274642510084162663783041061248908156904903429688954978689648068238376976602698280084684688910809087663354858508320300643624686297537731980008347361561650766683769145214895752148594971209244963387214722982362154339937231874225502779410914322259984625838688641110214571301805979090690297880846388982579526851827417738842835235532110938471792434836785292418450646348365301968783092341745250847984767322742748771696034005596582895619753910530823967250454114619542555452243053245528464363853557514131793306603402280280704096198590583090816587481386857067323410729536410884658338321508563298089093599044512051922969510887020740990121735824873984809599756510383365768893516457423227431071132120385292281322158934217724165639370942073681133948347130217653525185643620995985171899897985427049819579274356073999509671606557332255625144500550606304687989071672523411271146454764392146398553692310903857234736892757557610551548327747941662993323686115755055283587827208018206456505275625782649947751766234002147490410665885643868633423167727590309717662270103601030480116369373859200083625110047562064737799732225760122932743326215325702876596593471665638527751598190741101148261538171028146691294670157835400500066137526821933905980583248703200283052585113523481421913635004013161195175137261751239439480601409006828666516485428976557547353725189813708433644118731827660938415822006305996267229412798439662440562330237321397820603189490190242035723258521126567174973781543143878913277304535096297657480743492597126856737949076583629058249331900293384411968865949604419377550505479114934437069418713149150275632280847256871537746666075608490959324246736710090102223960397552297407927330684801663520151150942148923426438075088704126199698657347538033648674014289470053602451986504242746609231473601622072054876024258867429773997155280091537986910353626173109662855291483785963236818756715577113542057670404409851931211095142622639798045572251534352636155631014704457493236420334247432530115253326225176599759411753455472719992303309393363141841058199374455496785459820546824345739883508834445270814565227226805016253709792146935134521293919120269520124463032378733468324304937904327150716350840212396323190405544592977319785783022605763066814613564466415796042014163399530343001688962871496698370553781176255207965263902124700377515634610830896644416027164750932407509213867886525135401699580490360843671491853415417866387833026278709195189999352841536469106322658264232129191513871679304661130066060441049293059150771863139739924983405037599245108645426102384902375953733162639885205282298888611866831216341549793757476907777059669802972853829010164644154670245351640941328316208611318208119476995694075182376511505622316412675506904755340370184452519314652808861524090136843994208684179576552227767420373930929547335900668654181102823329783159186248652984587482535488833620474720844584828752981294454425104491398030191258686272423423882554004440666713322946998553737396859944543673913188245722192299833296175852389275461305613586454534947585226058030591457921181315666279260533462088291845708455048575194885259020650886127058168324645022903230539660111158920695341123686827046563566932902330094673539720722373209584025321273082416207040015679712535556298293252288562612751574781311121913783402801420322672318671284486218139043369899648229638945556736775798371046414822604056057593051700939334188061251372989981976244882447005807194179696969223849778240465811198323459792717823005827090943912704986138797319236491783437445436144738847220784020844217195138859402994724076792661600670416902962068251022285672283196635704445637318540944336323305145258281331427971589311903644713293105402623282977128246438113601771521264503775031697964758318693897516264584766411087245887280997700528099055364834280646006757845494903201187665864134370815438129582125737582183922107702014530808922372829053289683092028189753427239038700135944935235798240501446470613821205824055936671923495228211677459590031455464542889990419347465786928079455407686226484954389485596553188911992298464536338279677645898567131481108924147391188039319994344889040642342321910522238578806216592313694128673519380788169539487943149226227531539451080222523427217282973293913998798102713006749339264870530852047879372270252235619656500459104399743935748215249632162137615738910503965717692711769021337944684020850238963429124789807494780026823819582028684164070880193650076806551838770394496244069512216989622054937254551272084313311214232310349427568630795304657622244590468003926017041559401817202511362458238962742485167195343717033266428038911781932619026430100552746548195132562542365507976666067705510136902998597272804775574193309286179321711485363218514847931423936907497620793553763912652942645171483144913396105819243513210143254344841431888451654340638887683821914332137045193649813077812477906009916143167831386927043209890559514990911425425332896089307205060622005872654515588919909772026996304848348922445658253560399792556071399522349005825869794298101554225060131231978987950444386573592639982482829977625477962593479994377630496279633993388626686885823342327209409096013396169271218651616216927149298187345439337201686791835665601091184354360400580421898812743217897334363241657366423172471733442612606834565795224626543271694457310223162644997381459654719459858806969854063463921932522186087687403702258851695069814086916671715540470192508985017458137308248432440720390424312184126621542695069935173721395568567315863542193087958931067405392631603192270286302609226774079623663214645967756050016470668155524014271194632263477357146111092685424821110421160725645892802123839458590427278428102806281784717757284728561851311654253788193578341177911512833518713759586777209253890142368890004322662638681161476773066875956030739254671609048745547172419623993040369423008542870095209463631508038640912589958363617218356330645961812155617073456544332195608737011678741659029089109424718224407025157951711106764444530536268275914767143551494160328109249336285501978641790907148571304136242747756638347629583645795485884301886035348972617583965158727745025984242671433110784694484811518599192669965532344935973433118715753749091535911257913363865359905979684066287820247595283565727166420785880913108599091880483084447845511618642654869276189215595524522133847203994415765721831275712975434064807036599082205923214003684308033702668967405825344092977060752528675264099667169194734578534447258006990390244975324244089005407192838686904046902618346081132799201586706231317698584276294055823638837844423503621748566766314411884672101878651970299342599412829526460448546998230928044858452410625332033656511693107152569143717154146567700733384581310046516013219101288346304046111580765292213658674538522144784462954562530087858433489196268597417921263729304382905120155047556025861219742128989426701995171999486208219603297792908267679927102034617553344635808444094443333566983257183592581089075590554490237891164513003433723399280227943786388827315181297430660055599370109915708412861422214831279822415998311580980439348178402092407932946322186485713576147735150344988967421128467342508245373624096952147831526622417906186023724890232035035813918277514253655388974471537173117935705954076479813999576435212427500572606231089015177330082952406204325654219421360597511024057272786425914671281493613965859238715604985794117615869642026657316362589285233662622284745635490284757388963640707573367181792073829125032267288067334020876377764581044659151906815809576028579627647225720302325348328882735948965419409765651592002247883731263156767325368722594215044068722550600880869385327560524861418853616887434970034299391955622888910762139656732569947881986488404522085838073610828488618165258395475502330905934809404462112678042385771265803931243037875873316729319917942458133017747762300273139141587699719596548952296036429700595380412282341261271291262194141053015951845816055833252738544581561625034978679154570861689331638793946169107780629783727376892889017679575419407802495896896065994269299097055871399582412270615075918974348444889294735675197692498264122049025294962412511717665635786043521218270382260354368228305344285949965746011636955771202610447862584026537795191918552130077267106684996948741106311576511345272003868172644543091165054129117176224167650460514502033634038209436448669635679042328905225023111754870691535801421121125706372268207030144176285758665434083976509140250526229688306062115273537392736053412588950152458123339446555951482859053345600325828312914202711080962896902712421343724256304261800139649226492089712622188915839125314958824636484001438785596794940336087198160550834262964878758375867529571724069583724002566569248127348756260003503421243252011359209994484058357343538582311143906530997337067752151517256321498136475276805202938663767359576888628506886209048583001803823343173621985011528273684317603214032248616111003391082812736499156756476435166854771439290631049538528697796265827624925145728631767202084342357270771692791327732437892957242099255514230783393058749507194449406821819466723708673390617966962494278661028214775253509001204984695708908199572683215809621513782430397298867578189524305976678309733858161546576359989118957971393325947220517518792945100864703820185187859720937758903243017875362366292630896726028492772929624919168635871387876368783550591738866659095680432094567781928243653941893673583982541202648149703093003739082445358323223104723378213934207499782321260595852443165479213777049487856779913807576818747535385101637967332852782864867628659320212839680109135300731411020480959771493917623046118559130028842799424358917885209087125376863670568816812895629372682027528461747324476072790721515042868284872687258051952549844363043800281932528940223510064157496333648305423544306332244276260275695836895598917168171386042589427130308649852621994510137672903697912482788795965492635759557910075920660451705275478546681963387964369791918990671045873962677467436916644724748763070144091323425696526112230368521839417699749786594183422260292370884609446242347813185545435898165674266639899480098805398182770161777384279003975955005068100776209408177210684740916802120880840980080427162273855588793339562266768064144231131226334342915439475210122845346255339522025099681418853130109934317325884976973285424168490901395535047949546416369258527237587610219042044236924578387904347237302828266167469814848221052686112035247036430254389238553042441569421753182021640503233610152903596192176430465119494204319035901353889693072902211209591269907499707467338692635493975639003119848942295916249763987073232983885866647498544421165341233324206648036252255696143915362889755248550900590924787284063299547718167666452655910818630950611706783600459298695336771676570719439580893526527943121105013583716704191293455210986007920642792474902066502946209186650912240592026557859698164468122272465632891021791748804759686138261266483285837188244884565501020687292973002553235312316994555791903812949539197214346305948037675410869919432296223093268631491662663049004177091282799859369283269061475453506299185712501560494480646247093198708654339142632450373744900156844155904727678702641808424498680953020515284327798915797945578224448900135092401750366364565185190348016978059429591779978153865296164450207045115313255246056554032249155456881467240548340172333314281605211042660001738420264992706386116269812253745812720977418025910810838115552344064797985952598948466636591013042631496297208390563311166050921538009972549211043735588188243016632502325069172642881891856400168587092322454739502501619514999557100597152069049134898009635242944902064264626064597589012115582636235189929900959206321696878602150607977226018222462420055147800318409432996292544501020866782903805153465277533218178551349537714940654390549628285523700545957360263581450434460593081534741439284023110091824464613670633570917504800598000808745739063742815232088340694370911487058421394102611842972137096127182731966760257100833893604881779836700518234039949311983056596971732636066892079516708214394726294717042980363617612333683331621810256515845878735881158790848394585703014055731044825309346729123795946211653441054451721974487579778386027450546814742358489961172977694171324960623927564611013222462647236238090579050363090686811477586001177177808831492142450883263532964657913148328817946438830584543744438417377075339531928427819001412960443425466472298981472444287625787491792682701150709016537119663254753888934428933618941503790009317928047877920488329223118867212183538711116141069004154024649135228685862262183168800683991368271612656436074719710246478378453308380168027410036253923300691029648534011137505645672112191396061781198617781288810255461962779698587269538348065374260390026701100623833206277256141506275973455569955041913393892844092593812589808321324124810029055990360753375510631362557806184248650492231027927295652280524473146531197689322839021232862574043169181839485220916988085057719612972534372263223612199580474220613707286151955744044471912029295520427714342309116279835995909135848965200470805690156948421398417533324829796251971460179383217616235605441482987287024063706212766286772657818091908771244472015728445203806345118090911792426108390393743663347840484519002088172482254848038813527626554513060014281135739446681969798845018316667917837301866571435304277367796655728650404910198718324759344957433643454511066580790456377319517376928818364548459039506101818685830858584589775675998653327063535810362345541975259467831920130257788854877176576107199976899235217367270459519519209065014108020654494646584049222196947652760169874187749166573254560913046963329917175183018335947708367725040986725391161171399694262574307880527667050018068928863580151658025437084092032227095134795349820585631752608915020962898822690410880169454882772585615077664169037932065574993049079477741847894385927379026831674350894252381986954610016318395645133176460154917556203544673652344502709153284519250500369607463737145013552751252560422954163929550868803002357016417626018812377852705262345521451661974636417534826110813995872345694028837338050817170577521375728042680626460073434210367468683865972292358651475128728805844257952279965459762135760531801840010374566592592731880009464113359655332117195908299658093048279077502181646909894287719359632494511833369370644278900872480324996762975449296364226699931906713582284680040355101793914247124985304373618603874699912833548858815981743690752640471562372019012837844829442520950073453837686341837866215607585509478504578239505100814712076222212040607459184037835835969410674384023605714661414304180399266649259475543904515623081088882923998671457059233992528443808067119501617336212682882887235438946419336397426269337537825551104317891391917398360537091049061646597359411727604227818717956767307756606069601743235562209509384847659690276867973969336387327364759961420374708489585635371736551112551859023641974919910551461363208174720033587058826285261779759103345046406675837489282603061419449748119546676012999170985298581578617001781368308519965243666413859571401319956056368458054765860226067301754088627938437525729832822236880731223111111339795973722783349353581395187104037226295361945963611218521691604897574428945580917549321744961411620509602663884764570571466501793240366430565304367802501053766900931497427006593985585983813616652632235156968963667420011126928157581592656580173356166010411970574734748375507694742592895227025840794966621941872741376316476533012513282342743285626091008126291084637925746074602267185548621779674657890023049613299928065995853303573036050872661656394344006108634705198465349798057845357557163606532592288641435807084401386872722008272165822027476335201640477189719078535178375338843103846565656988183990159247460255708858212850200816552201027424098640629703463585671420647262774745201232262044054661729824504729372366151581957918543326166106297883209937257781343925995094706685730928221973307093455465205438124585856195507849680102917936058209663308461156733219352223430934903387069753683176880897986307541196332055291873061317514036157634803715092190233308636914558103220285995362101072476768792196858057508961208074585434532719783311946590864370911128301333729228260923033848833888764431056787946236668221579548689456819098583509276296355015406073757147505419669326620055688993238445395306796257513132742312161428385537966704990998244887261967010799672692042851888556500050002126866577786495819816070438377470702757561575461381403657512492939358109146923254158015177722412943919337538496508505427496089062691447855802177683492201582072271237996021566790247068625214805284300985094858386251927615990188137009459967393916901907092144968242762447496681650345237276759741415805266050623283355116626658113246651296254467033701496287564629661408108344535304339620469373426348140666401059383354414215126837666156150908529291967026378696143036565437765711265477641759672063318569672164722349060612611370198946860128831100201048395580366347899052008574319778541100452680778845590288469882695319373246345128869528878215475155643558840474580819207755854966514984226798467755876353149782434645132748567243753560585157769023774764922620553342216239978216420313634088342094682406997395547188447506578202580170390177348961787596765720814557881989305043417499908429221339487413377223944081133194634205443146295332916177114158966553380680609092573328742840739875456172796248093792953413156659068630282908176949207338289746076604455709925169185222070609102978756204512342095378034568021448205145945711646306491704389161442397717194253223877387413994108569947457189810286107869888221118250946979300220252691617327217765147232495699654798492920703446361073828369941782391391785550243172833137413889858870376513570963474859475557861570810994716932629236316369352236650820392031435368114803621086032651403931167616607308789559544024633270552465000590224658536318454476659129038822746119179142093832965604725261586024763933710455403570591178987044767088863883233860833581068263903682590258075896229858221935412518934774470107846284006327412196578951721180941394878783247517093689695232033215161082979089805248998541057483734015950240316315693507870850808296606498223048316135641300358328817795481862009788884661495578139249285106132008272742204323914007316109727388363342474267173957442237095155011129408682687150721197469498654184673273457265122138948002725491388828878677993253264245528470804776140290465445336144564334710194108935661183715289700381243560290420721888070642451309880526000666663974280743105755077695494970840912718514964024576569433899569828298795686717702666499828055700271917753924844802386652367950187731504819668707752478533674158010986273195799712902881704885348451943449237599716409456496166014611956239702951078881310427029915081269282380850816756080228024035005090344071332008416310942913778471759215939265262523240199569970793384644089224017216318449999123020334478547470616607605629428452145458830343344313817362455668010823494340536738085161645838100100240817278491635006918151001906489793186763275326624483177318756448409275575689334506731250160960246611416935698406208748773411852472831801693506182155362832745918444090122872796239716916574689341714398364582148393789088542484957561685312357286070164512470457917410687892439867298347759665459319029070081569688065928137504587089043888147958599224193588008401252835292306142144904646571850451350391711788808714906736758620680750365040978461822652394236553370539336613274404127980989302428007655599810811595893561484486239102803645198540289094128714315448953710324950954084473742212976039529916352347942433170240177699977274078141500126880092519257040447260301355328565595300231799259436636883403838836179357082121313527243414005036255830183449546032254685229764235035315652100746801164920665762135417459698826501317022408405404518688449277030076544498168997229722321806963068433634199055491396764256860927615281864689891692281106257062304605588271356780007772238774294714324199175081607219508450462029798551368852778068939393294521777889127855191960763994956337209764304176660912100489207312782846396995282408520412499193469757598813999607069957475197898223288879390025532960075965500409554499993529581160646358913905208426452161750157008690163384075856267279131102530244967926103293837530977752802854181354554341334925559143986313160701043654075217607766723625168573180968172265651859205003067053620830013855896763756266526108253653882086317030613427731025913509571555314114627984956327871459858607931308309317778520909447049837487543724631490460675987807033857613438879274748548800584156170348078635088740726247682998784780313030852173073371882574164092996442379346721815434896189021624033357653000146455486505473222245861884413552236830351143952291935940863126730413411655252529630637334517946878939211053943556681574008629649977423721195210411953759826004080750784154907840195496836745778664781299654730222090143156581429728979045474144031741545034883641416901179986889357869541699591380472691959271239389254880826038803258692821832993558524787532129978518456251252849668522746780323555714133851191889618575753339714302595630061983614046117124979541947831563913271234394937381132360354231102097235652444844723104374595204703061709064013318266951233431374327380735509669004271675770658507227535143471008848179864893276683785945537550150932495275850223299016238496294313375519700223992115044809177917917337042689248650919799733925440580390757238922026378202084373945200760150522299406147767972446015890191143213332252203555294242657738221638142053528909720323441368730138053574322592955733550094491692060314085742231944277062201838373403874311192456205725931320534025218498841656991172285644503195418789903278105647289048102481463500102686394844720446497594625840394112465831958574509088789057182012680207440885423327234937204642378103955755095749362078159571958951051713517964255982195507691690920835514889896605154423746591908174644202942122504521858758817527105201139990231124020156534468245955043447338351528754259015407458991344347097327068138208618940592169972665414675978291824175643272058338980986510893398677632193280297256638571949154967865306537126274599492429476022837338023560795904363300255854283323221550254545472433114357829356695144185309503447186377457378452798180536020424806799867536390229189572847064885336331024815306240066931418419129072622324746921096219632709482782945299880862468756731020694283014036134012299599892518236869260314172579738309990207052909602387573695274439371819104688676349778220369214543495245239480022911399274580209817085425848624477085385580601451196080181890610047272583615248260553087866452982769138242386904584656386138340690231194561141399611776511907352602845904289689194016539784735056136599474561766583815697174044981423483650338875780803808083935673764034479756087592956834282718194751137075806720004177867567086692658582974038224499085112114143660151896545114294956586103689440916297493777848065012992675631023979876119539227419481220663208773068989756524805703752710198613031828852208107829109330137157454986493853946785833311901561499614070559388006557644115384209472237819560309782558377164227771286987360535575428499985318183846679137392883722524866822115662344286026605088044523884102286159233147530429401517209676828176887301334551602373186687933453725271351308096991347694682763384211268448425996241786865518195623071624215524646406293770591607080407883427242219576011266259975339651887188988464609864649541331356677162329898238253435994304583204355649860624522319396429344043484192205443433594422403031009419843955023561724530865459702960220823090545173526482329161624559017869643761243407553840500852990881714633458535194037707456119076697549453645761912711233824199392650175968085911092683763144295918757033273851199123367023653789592327088376923351666777469356931374605183378211806644965841168701472959528282469483990030271164861856538192040803182606035268295461301758843156297320273842995084540113219565689608696028246687136770142514683402521033143578543209938223749149851346105607441946223757740077243512400345796464907523122763397343557047998391573439157697072399452309648628632328097308229050232357289776880085727422560007769091180637459134855939893385692840150681375157994252003571103798075204843397023066846922804522953325947111405076516070044183560414576078018670138453225250212390569254650235720988997611641659029586724973719760508869246495067307879738780785045731236883884238129044859703997367526038472355902854185821055160749831790380666044457045314476731838663504016379290536774680057674844466016976745110699198878038520055685134923440455398724392001182065836984133166158325643493654558194560097698835329073638372003303345951638531182217218925045581291793429787978564934601566092042489865653615103017593173165098676237499608289049824564932646964401827973075685161278439157162178962567251942587924315058367411589757122472033533905857613054122312938472280421085921061417643066479878929029722057835932654922225303737040913219723252401770445445761469390105552439231650307018418630276576649278258433557664022394896006134842961209330814481970025321653303091704394742911567573705272739600846223458458345331754727242185193088143741948158568264447883764454933712934142402148604360230185693715900998494108527762972617030883778502202655244028116109021643623163510514029649565158641133280411830198146272194118998892859010480574669999509670282635721376378431244259577882834471293394824649394141252632413462349030600123885728700235097480713510806917245338350798400053547788420883683527668428141514677852247079577840086255805413184844806086628476500080604738776610159707321414011151873463195188038945822552695289509167190454877341642022371076088614521293287858448548542887526058846592387495073145231269828348578649794374717844153670281679932557547062685808966962542649321018954271684265552228801629444595201117028746341588070228362178777641401126456434683467153752567730255010259040504679083407388305653588232871107636615649637053037395872598770932622230488951993524408313838306407490134527096673773705867107616785625305018529460062615712075847464963941333809242304707042344148580604960151504045436114036341305764141850379407036584582587910511796928721769502108625131889680762509925929240239279988783728760660272521849897941780477280462696852129546321308920459869333546423612727941221312451636582882805765418203314606198562519131167827061448107765708377829627179921244084934355421952948228465566839780213033592766187007460734847728532229395390638129263447710621967517149411336320085759067470133460811091773498042507557422193090446755537375713504059125460410406980835890748587956373477919164911000697327337173149266347890711403207101661985633553984371774503356237487334099152632825873036301314175622778732382195424631706274089339434983700594747011038752226959306004381578139690569531172097430435303397070648652376311380882728144555751534713242615686627138060771695161580725421682697463351669110013866228421650380268594531270340988501308423417563196391199002032556305146536335386821058866623898043591943748830737631073822182896070447637673208814215077133027411086166723359317544075615531932106749896227784176447896772788146573443279271198000394409257600996858893125663503042327999861679316049771063168977938840209088698732117142779735194814255920358767710054050720621600553776345549083249808517859762589313413601217923380743584639588926298742541051389783938033987859091773722202274724921188591827554895850159666027567057364458490295830321369260700014414885123510955459926568185375082126725239972540087187727195213123182533272604580081446669073463344324707722634443542566680810043597021718566740254415074181198527902053130865825633673996553675641590819981091570224078176173068319293114703396994784813154814277108132990273295657919439737065409371760955669745187059516955294148113134233040322041766614879734983493324853503494545750006462022025431536116283658057373480052682102044908884678735067929040878619540875360240945389941853456653931251545348309510269629750804789483549190058928205971247149110124443331667377116822578909896884742095015875149710012614331572892598098211650813524292620667361181761715922346606228708099534975916452913580382858264735469440332710601116893411290860821840913348366888723362664929702196969244784951039846573780121970494031921065318215546486098584798186990908114183933729454597541356957207110406920597448872407410922619023801729548417263738712266030511460120665523812629757215218800253611804395300925729848102836934912726851512858535568095151967137275728765136889640141465908301906565123251021413621462053417305047909550667802441876753443814383453313726297378903052170535530568211215863606122643312245750203216155297363760543216594568646102791146335234063101085834048085840436524785715322283632813096151778468090255133849670356193910867506642848495464812966790364401838194965842690993653868632619836609469413858673473467839348132827573884426069422378717849842394907523857775449460661199268061511472968516245701440057142297989063968509539927025470727445626113085659830313933853997150470463902348793830747505161261630619799912940714285538283079621357320813923700942727266436667064596611254503457564209197856922167066007859342913127895121682267187768432749996680838337910996508527671556384115910093402309572008391857774374975514430071549955459080773655630556276480864048956893448936288767945499818766574659309970715589774973124077129843160052828986779004381755906978405758971546513694142265902863686961722856085098323717843167301092726017046204101325483312108654660094207096417738961995645123752302336922210242111166218067387685188524569433991468421557725318582308379981310894648455582643503392300728005580956016874331506240293264005468654560842063910725836607521083116776890624028957459742595175367961039999184768357754844196878078560538111712486377304682277813845519959189477382495088531168258263795840543899972871841190329987982428910373108098348955352129908913549043257252823146347124303063768679609087801058732538448740563580457823648688401152520991367507318294534880338750171672798170658379814327249777134363592308765829502372412821510219681363848809366084303760984524502080162652982912317430093733711923104137877854651546699827279416595503370910802907634185681720641493928499843305621495714684104576328936050917133854672627255314959710034930252813017300957663969202303809451089818767578282012231044890480739111225391162400744793315611189056003918830885471905933482442606264809440902348245545645865599516972496958695835630667281892460389741092227390468566362888463426346089337615921786698574145386474901900619312709819449796828230148347848673198281676243183629615614130392038273611225326653708333251805298354959712714410228065090847954362241130335796040840305532473921743210930390685454846855358188480973603181170421524606952384483843716051941354290676329957172614398988021291242013067162714197278845785291898353033233555827935706949425605399815707606649463502771616952968441307138695023159249122750858245200913916176915097046242746436179811467240508187559671714323991855647167893162994801785899703618737802269051584447167901353055178556672017103596096112906456623387805700093319177152058758525410118868456859318899381987622720267423519365099062672954439633418738035918188536186424390592074138513157262874437048309364921001576288686005671631598223403929049691532827766888748628975310854371932154645586212922301868530953968479032895383822622016358086138001216899413132094120107536223776192862734096530882366780834777683420807585411222508770243446218389344495318527580634018371539513995546401241095442405488057099017165197977739588454976780233021198145803990067329540429739014323599851006333796208183900264003769891026278325828572891441275442031310146137422021990053828345682693153151378586852817999364792056452580960798369245986393963050577993561710246803902763126026112495150976109375848972140036406074838920684920205717641123949704312168904213056204208911634374743291402558232111593069177999151535391836849737513298762283212244560930968094822407773422937325160495847079822302922238090498066148703690959650620671996083753262486984171123224084503635977352309949884106994406268181516969579730581863604835263097196738926696171129214004604116856122751816777004934055243474505328280928848155759055752738654566252998097490196396127365877859985330061591489148344417535440353796447635301192065537867945560125908669412249034531625678323440648777855183863792365602891786440669551594847753578878958407853678529878813549600919144755054619332728892564928855864210610945708531921611026917599006149851153760202139507252561419262557421628861909294774092872213701311527253689809348954178309868577100753954837391541362942552398372198780989413605009998994934880096662193524549673574311519692953618606340382718942549587778595596360819839906690792384140442368926942785789752537844324482947660514208073619777685018182943580044756022673186069113298294532716374098222155056213381362649402124310000275938895208192833495547079656082375793933923862872095729610665347474080637520390405109079773940008930034479344500697005969417136521528285457018675292026337843867137500942074802485109123923925497472010749553766548454584616630213252574604375533328642025431761527973765619096038419989976335819104671278817821182578827928580752450120054366900438158883867658714265396672392227017516456726110864110383640904372045244805499201346743659448473963348828485092072702204124787805864035661264416107578829363038032819907318991075659183236126040088764924109279896380980787400522211057914779971829584410746171354046710967531259264038539949014872881026997313162668458604694148070795283894426136347829694844159238587361355468122295704001907871461640180453159050716328743925440689852976436132549245513523053149188911587601866925981601082624937580240104721147167521345285658020982042532901139462563980588795739943725711344852662992634999752571480550174996597051870402371595459326223398119237039047062232942943119758687343323754943455092546827423142544070825349037661003120268024719421983631314609855136516483934521886675587327695085228731127893944986888339986541929457250518249210462167032298571827128936378368560248675742187196954524351508217846041825990053403673753090432240684919752674295614527051957883232968827733353073782214376453905789592312148999682901019637634444263445510685089220558074586112485115544984169790091675606532260702468662382781046491025641561371762657029401518371358004215034799355952089026196324374173258243903432592240251692369413646459381076993908714583474806058115914368740702370487102538429588476978075421656470205586749063445863246637468820998862797790201888447446782344414620134064593767372761274552150751129973877637374958781044132643752785248920570849809603705844553404159792188289841318490425747749436939966753947684102075339990512289421181476208887073066980628023483209963035442852902903766538856569538566836261633231749555849595769795148588289255622492143316231660578244259356354808399268023534295367476149271139442896187461706571051477507425710240649777454420377645764866266495793691858553651849775619558508563778818308710551955169954721042011534266975965912082892564243763359998280556231971432440076778508452842444247376552790044044737701381697402485461186407572640080918346548257382549022401394515871206794654130802337789006916500795860823266884084414856906239697956804671702015253930175259692630717847737310740417633737107018678387202517723147117664025758498003389009880031181089096122169685684165136419318104457863285729739994935851787496349105919643402634561275948487171449812016940042361844075018903558723112080376588870493486447780113864078205462699170201462043230791652968948884886007307877613473762822951156817388873782605628603249348592460462668584850766956078982699942588884191740765674230898270007790772160344016677194965174684641252254147759233268773885847782861461208255017483405004637499665637694762560809632089097538314139261449795930592477368020613357682042530607459554775800335520337056863454588510363972177776767106836862658707931699203314104255493981385472878490518430083316977380892086886405326512548488829736310055937799391610210959781087196450638474204028354295116989095614284735347464463832650163066507800736766720332775962026626440003965333621762303925997417509034024888910938671574495996405098183439186323887489460388252940505789001240469414683842706465174168747656024036453342129763129807413308382345225510953168659502524407198618732248922672055235228296361514285525511219520535538561833293598092194150630819500790118777491892549909192870885576540551367190432716066743817605467746430639589479791086644174477375274920175054550639157295181241225808726382487342761068712230889570837816605613885924994884616923499546146164934337017532534764757542483714647780834598496763410545956763860504166285847986250480179667535759908716064507834788579954771215484052928052728719644400561611274751701455338371054396482914994349860656526983372918415303087032095063263889148375104340226975496573386057543536277309690700179399261134187048753988246856981265765472817282506230919014040330121959981256198061338136255618834520471842685846145797445511298540059641877011967809238094614766965894729639036704883252583987447450814027865532673602617158302805808938929168489666768437412245281045583344415684272608048240646302866601917173392781435166416812209252626487785519781176748220701583758169183953401684507353044524892813242312515353615063094510897340248359849627181912505451973248624689150699353674368256083155824735497641521506950618277673089984839975490296520364332501492144635559941131931003694238216158241736049066580623524622252072193743829491439764215371148585654753462260409474976587935027647262660798732345316228910877898934930280324996050427685461385673155211562964402912840593327398865594775847620047024620639662256493356683242896892574301519292275544450408123295421091439135175547179288067200627327161525105151779732520629262775898398412429438852579477878856779773319016482746042926574440660292410485427247459584578943929045861476611934244199591419090766423928540558062135641172464334231704518905210175601924856842371932907968831430676074470293329626120494345362580116745437273639076862343324603433883663623141557130151968917038045182600844242745937495408547219245438498720449435912847943891705392700259775174406883495595670733334917296135858213377414044153453546437238263178828863194586095899663545180559813079037358200024690790094353410833207618795664236687178494327191386080926686703082756204712219445685899786638755137122296051800815898644247949066159053866097198701426057907208938046246168594391993544237663702925707876445741505738623911219617782355844615329120159956508884473854630258405616732633824588486362927550274762438905146342665940978618323195559426004869186596230152659391796362931458908374948401760805574604137882459192200525715835978608020728120337008510270451661988383698050514068439494939959690970949718160206989908023596303587196180827625685420087941671174346233587006630475854812687408417032670419970093816651954655591547568346179995643555519499645836013483870896369190774693353417924439820962955234605135384025026172156660690199798992877272632802363990884726585281336020402357578375648812869628643658301824587406591080306716929188228277245377886020999823953087754349626897459966001522360037669846487880565903116176045709414720573960639317595300575631612929192365574620065676048006084906321769675333655221970149565538531584487460231364427342984892465189444953502416789998689957181387647083589572286767255692033751601639000941043565868153070037811414255839477102677210269734566648738817930816559971112964093024852037383113692739452739604900815708321376973859827133881184539917587264600727410069867569218170934989219903651904245502836413366688587188518011833548854305431060316241665122416215898021784003223137466362026613035326360796020159630110534425367531737720585812844554932999503826552874212749492549268468345414741996563484172091361314329886384844821965489331311677560521841918442409675922258535362691679165810266770593811641874084134000253015615555085169733264647736255378325225928996273152507010187020180268782051837458722006345493290704476952502283672751009029627893565077559721530710722042533571135613845439299762475143904553878272159310783762481191926795183236863348772723190001148026656868750778604893063782943803112901454224001305643048999487998194850101048126964541891796861738474300226909723336442355808249354966131471566724211896005550430081598116409201793507786167026715534861536689888070332673823530709300178708246635890779809944910658385412880438719277747684795349703404814580109205201962384940322294329497951862148999838207752188353959723504265739744390692563065314247787946871060613982520622938318849744932837223720640079067181966708950235507025904919146124187680891724483098758979376475072684478126154262537857601798051676381720886661792081665436575292266339149315136118227368947221365457036520956338567868895053746776759062142976867349835395967512719154316053584455021444883339714507157114947189787648777840527651665046660547023629719266853943524307057142679622868187577235951014922062483072219365187925755638037946536869016319687149898031032659488374025951434944380977329261123630246672086675158693998288508469653177479885592659314912736268781434282682657637391346646530677109332114040950372008946297792772020015782070066373748310765262018591499187671620312207890452353674405194187993967735750361340938533358652173394643892278653600936497308989266820822455443478171806645929496531576452669409572627825031291285271655876503365016193246819096422660538625288644557143179118551681326670551834022944054706481546779308001279777298691996801594224349801290355299790818158781135586020881763790608140241190714808314099551049875049600496893630010959799248364922246411630664090156364700265168015352769016131594620921177003968828462427629731561694562747698678964684564201526427932606825884194453992849994327634824858409182353212242671098544632832640831741810036739851530594728211188113970291576429094381456376870613578527515788284395577994161161909932602254747263549882635811478341325145073467487340336558716473521574114600262212022653678460330832223638843423166061275932811831627328780964914534264586965398367005374981253899400601942199133103322629189104918302901101701438400396995539635715314976848763633452351007562780131501978135188080435083009874360518019367777902263243454332475871082980294142468683095927511074164776097227873881948320761457711637464321287680926485017009778950246953219212333387163910796152919731576183610419550250074767711088736190650604837368431836463773749576491058619496997249311708495289788385465337572997773506811196445331955927636360726007552582033755497080887831310809134197775053865977325125705324524113994581033040963432355580078539059385792317235822567386241434095476815265233979527494429266322185997084715347763824671109122205232250852116331694325398458122247188155103048657361300797513131692832016590962150748097500353085457000442670945435630038125020802431268598639349705678163530965497752873504962079066871276084323614970692960128601490970044279304323217512265873323991077672450803898514715436036710700325421648250862361274428718036699583718715902249963759561064080042743798666107016377428548131250424343286541436167200642342777514985599232507329694446190685334527727589536131046726286956718057668515738309563684619528070339236470131718583029643015193920585232972623744979047792722891010850648781972561003729064432376140786545736982604959573484029227335069207627774693850321092730810085586095485095854185389477490354538610632331907480002205739906613218847466650484671071857163570238045855294402156746137995832826847197325248470354325664504634725986082831563447870712268973965548201425000390521051008374994523532246521353008710481218192663540226057202946604116566149703110527834175925467174932613146940863627624455264543156408451121104251838361130865644706766975163108098745603821749251786633048881164496640611475228250475331974660499163821226660254357415577054890797472414814258633512012143253122886495253080943956289569852223274605935906951357607145810258258295610976306597652243316276755185115316343054698053174932356155492748868536800115749254731379374366007715863979128492195413007492807745887461519248798618939244578958593359736854995634207499985779754954385684299979200646458205869643573654220172451534815133008573944027696692212810217511799033162362774277778209667133565582920095915717399869881660377418817660993079833556858400171392216416345828665473248293927887703974378702560970685842672140739198762771511897935209262226654907814527143860615548437275933865188440588811046617913193743341060168962594361286005451633709672568730181764745768583138263618713683996013893018850251430318666500959874546541020213374509932099901308045459779288624226459290430726626663970797644323905918863051925301708821051375074050855494176802262804440865454973781328035932987432908213239050211746441192024671420208309155090625303623045443773136053430812606324178439690749257786060018673731109996006173244869713072058152229252679283924121097886053726857415968703867243654504097652861483014361697058217782964755350560413470752998576773227919296971079786795657771944740358843914555226779381413278433649428957963277094043578164235166885079712976342338650139166898898744207362607520186735529825041730566574499566007611134801176566943938222129787317955573914087859337327751219433524219863597672966905852779480982822605605081468380069511601468456318450428258694476608733813983899256368162843653389322766693049299462891976414387203771084032121227926891651630252625769990673773038452144017107132304102330715947762502415653152796475507587065648316899507953468968649548303630827398353971515698913562338525747900875338883927288660010214891897315397223553419638611559393764616040702972337446307224468995115685885952284083086205288161934406585969494434673214146537583055802125175376203763734018764610185569707477893668911637524691768817855109307735104991977999298164471632163975752137540259658348698269607608085568454462361189023928816428474445509342710862473366969879398199061983072688470071322665483114561355762569806389515225236394135575630040299398889128333438460649312877230207661026089452802641687587738280162461240414219703338634722350696605089115603875995604092119455638061380719383367576123590485467108550874617207071575953926195672869528214244898915187081736225621447319458077041842302142892011119069669466426139730305892724440054051253257460719669235216203362587412677678513934184186311951863316973521344084595286473205645049552061280480597128367717635590212305795747981030931792662219017824641401124391977379874682375260632307390283412606041577993951338856699796479752320415355453657374298236141497866077507782805410297584971211536419839661790708321762175804395370902710224387379940219282391527879305482041281959748960536377289980141716049206472404358984666603377786378163096662593924766384646197497701608406891070843063325077241213150098779267819725032010185650762389339191429306875686797329658270676792195722287962435978004550721052123016278530768021004302738472089073453825745935346720891531489636882780860250096361909265197868005872644206331399521926079063764591574191139474063738543442222990219784312433727399343106829870847720707449547977510127899284760015132687636666847671312207361570228734868135404699624977924729755246297989140874805698226579493430690749353587700602874449542861392393976817812667322460670083683783874762316792547177652936871098741550801278278854571998121590420362881094129216120788858436617851859761561056326866212453399923137505955146547664845556252186486399729251849077723741751369914908845708739360971695552448758258968674167150038896251923685224652159040495907330612818352212229297449202371087754811500293269697978510179518684652420559278883808804142381947397951000578558528739953646824970631511845016601253349659987891977845411553496407144173824032193286378807672611450823781008304936249448450515673891947187284327712290930619773756642387567555544672821147870733525315882472867690508956216071367330482127240736826856253184401234670665598227122998766320876092211647748123811754008382007889209490057469493859105438342037353343914357689068723287428589120900943501397096602887484981163089871311577813317564289859424618245248386883811045766126744135517266066640462148017063442097058749787544791049419945406197365133502167306128639214419636689398951660235351889343730312838330336288924563097005033274043942344976485870973543555637639479724246956394748386941848674588605977189272292178107423481389578928179371519748120472889982085046204562354258565884720611068771447407635621294121328465920008388684885648739648268133357156891498675093048768862194704313794924004432974087380776927945754480804931713584632795427428553871299517174325107204307125204495335149610918443046293350651700123135937292062808449433012998499393555765120443953211192601342279406564066366523240582262056729377473972417101209880215305260436912182991815098730653963510910111758723603136500414929259229268403991490495023200606888788668250543036752215058241964873915132538721914853532201615280616584875105933401959065821668208499706102740003469721900918887387813731875850663284540101775113915290692128216702229373809148964175474136636062000075351406682936096082389388549209865639024629267344679303421210728869671888473810261517724668767077711681054911631069249200243536137893126355883892100250102753081043632820611712663250681462323252209924828521009995849376101964804733518197772966773840042284393828055709790379385730551852970175932157017509489699121782850488476197339703858947689439656781734089063407945036246359087587722317306573576997819489832830337732461923614263365645019693195006287736654350007204663348527539485926575009436461594881996637446771389554839271806014487351973904015350691715434235883457298164290325346982016320066783155890199893437720358831023165740418986436186316057867371638310959187995224313465735962647471701609094606103070848960143489369363156542837141620976705950772793526096384060015746376581708182785347892405308378417694413229134047336802837507114956322138296709595922071049776457323085971404762669110689212773605666807140349943089463379285631631561262580977957325450466404987121497052834147484986098248413273705735678526850779628180618390235582213210085190863023116573103924734084083053894553025505723183783662830993939387380980769253241274214487201609043153260120218095097756572114617409955501692359287566431770856447117263256263687614172037241475815718480637192868345521072107838349239431791975368551201687473843433416216835370098115335118745298043964040346464479983777113286216944246680933917336699822266889688091109309243947008581433094981365284012022434732496557406174366001691003888324089874522979679884161072656300927869888282296148915744087611413250617102788686788607614936680369962479974265747819499927601232766837996429780168281803164539852498120830520289173841134251945098387036590661131719085910526284355789120139553669220425159300646406959564594777101629487126322881665503506695284501662845332138643983668100590435270228688075268624384401657335533764468786552920481197922647699191510811241823449857575328636071689263610418866477166073770479169761015978697491127484856483930214831432517447491379004452746808684664495450595068033455918376845818256136032446550021994037372890241197164244306107474071219557401146096346776583843003226342521887688167445952370112864883746862820320385807046622422488984691762329693144142472861451913051722502246665133544167085588418582208553273070425323905520859136517367956384204467038170735777433702969706769756721594865553471608509823286726162366336574932422738641654635397117423925646470665609720307208728694777179267206417451574348603798648909843821583237533804415670952598938581030891640411479533864226627758299881148515782087226256231447908472561912647878904229776366482939881804771421416235530435277736458729514699942547846791319731257696154466793840866067925753272398840343333879669714699306006421315309748023592277148592535409194711049736950943461870151888300835340862878082588886065213588394813691341286326611156380086825440184382651753129039551065917505752871431262521600836865507700366688601987527609960930779398883898141415340354788313175006307860751473482153620679981664516612993992059701844186554509554550898343458415349090389981954484598110662694984474136013080732909710839746502446902019743552860084540991586343549568580133104450062757816807330169587543156731066108284291921410266764061310657465297049826420608984545164150000757744621812412690691251831742832787198158107600470321730655929458163385489019713281579337369760489766784149355199522108201881814335163413353462640789050232777021488940498905490354747999491683273367830697713462547003237253416666301136441958759281345997249554743726596576720974865531028119734620599666140964675754133516113874365646512124092756383470480066160177685236282517333034860292189709859004604236096898936438402401159420472659902367492637641934529077601969317812598599675241844132897013049466866658318444239113782283141400458893112827561931509637390668519256143485938497222618229457874950215341199543561576672318744415989636442362399597333456494320614943957650616423468826087135073833392844816435677984297335958069281720719739390472501158805575044894003561445454598624279664347422313042975318765496249042976026393595643325233972984852149363022978756858517242966760841372860960060088716438996619826044972603502985530394654864794302785082159348744684132623554457535829871023673662051922431473697274538737119574003472485645273652079167504470063576501094339316794505618950511346277078265451455582756461217775897088431564360590525744410775001259869251741325361164043086334314402534484780409874910765717140876575434760036574291797860461441340557124119949308214587240919481698162915607177071985485239642383474035170282895207039142279233627299517524071261570819247422176242741150267493162186729732716464794369406951318044132376205350901433617177278923935964442807935414600902574147236740515912024752025607095587223221890044242644624871394574869857543127033393107782442452846302543674095930895977129894427767959122083019192276912505824168205622301657722737328742949942956778036621993233401119332835596590268990001096371326920853153366422763310177273069157222116992940917935279148293755441624506166744467595104844543167900332176333729942348721699048575468316182317720219502171138757307509182631580788684547374140197462417137490450903638989226539280534238906656499131110522272746113855017808318115301014024643064681024728965105106242661744164331018487133213268529899122617973804819387641968818366494816078588694347898046731420355074034148902077735545992342249854085040649452622665330141824344590038214464378066778184707413736089031672650389245672027668730841062113087287461143392314948640959626604373175480124450092616170145373655948842391603282690755678236568088772131288605544703506059029796557701336175590207999859261136116615895450974286605475291034014961074216584208365510843612629844213637904726260409692696074142090885176347055978412960082898676353493065691667958134925641687588279546572023050565487464135632521433040731946698928473810303786199838898697983705095564422922051080982959091459783365450981132888023147878449247722935975360312838981105667515694332525515354488819158907712604894169930087834157936694133919295966190444160726718993617968355134512043199227879466027270198850109194678090137772210503000442996459630459003315731986571029592509369310713019131659165389791077125483150817609425302827724738031513803954522511627486812850846968796062797475488175547554614341754408448907438890368758925856029040756827565125188991789222395400367490286965094401339002957987750045203029290163361450787819997421436265783380295277254426110656143208953687853218804353237376925591829047304543776586100120525926945285077814910067965413897224007452161623502487735657743123216769793641138495033016181475727615318001063610592529669257935662568188372119204323991893575848220571527708413447099050001665338245890443738674852826178258082310534541494321361805434738167486336883972571679466919445278217724338523337469434811310709869219326385913197136536702378591528848363198782752846818305090272906166616240886728369212969987974177668484331079211634966714964348336147828311917965627032518205125801428033403532481775162620062013789362099312688253277171793201570314187839887010172446043603652148656286628500432649753553146048342740495184551376440736357353399732545810423095235010526254220344883479612186791976180292961064514234191888816797782466440848705391917300250724685314698882535865351902654265235187393839658625238070424585627751902617556735547892393176103094789313844607814982329871669042878824629677250554892134843843506228065553328278851224081258762663134903998185880365786620167734285363529093741681587204169690864766178066592654658234708337049233525267069754746414529648136589420321466006081717257526236006688477568914981416830340066880848762420567473682709695524910621960704874505584959483692467612562716362691568749459459867951234123137830650119609682754810472275861200642089813189412163449322459549943086886504138721223684557651273624669662094518809614656122370507922056101360083625011014591205943277358555707421761723274756780401294949392654410904482627627014561111109453789333703512949038446535154566537562446734754947626106482536652374448164056121907738748247302997395687909057875481191455905478848721762964534738408538678896151974306809102232139464913720700594735693889755474878514633536286905202150882207040841643462218985255653652745690629720962122037532808487565508828418528568133147258182372101738682247966657934712880090713461174755032992821440898209117732539370070387950347626002448505912716939232598788147756763945846458761804233148369045831196759825180407032404309680344985820367988675361990551111015088706246156544001744838905967694647976356667889641020993766495303915708364179385581029902266242147663667539738200538790366744792687432327521724158573136282374962736341306839596376268483588804428506183887891260505615242108483803576155694036663143102349696722098804810481395953006554567683322438768919387141727814132392326935939282404134300673630146272552263921209193320906037378147839618745318231915554165631731168783520977419868714447468404270741985707015996014096926428735879296411163866918125388490936232372027835645202127360943388631727465165110610419736072973948443039134460480059587833671815358738032304376022408653111465539339828646820639658954334313064136218702404967368647411907199282435092952187285613417607259431426393205490819498350017824382350114755386847136295014052153605304247085891921677740420995060014869527062988311893397941837362455206765595242497064812186105607848629389987102245724257048797883150814930575768283478183151697404964721652383711418525136512420327438869610486211567284314668531778496630812552657832672438445615556073253796865859626492458936302516978246719451700821009224702852322280783549529029875502289345375499735107676746745580637389521764943356860421924226317173524453796190683822679598473893241198540046757831589215698124433905427179132522089888466590939254668328710064631878338630079979951761115124950495531848352791441255157016446098911706504660566228739988446922873271968323468146077304577958344071247813714212904503279761337884825385722126687689301711622912813858310057183636866472687221662217554325187590818147588097675594808365309987731055489587369736180579544734425216991392394764814772247567065052371318414264566603625912422784247872589753870634647264935224621250861966143714763623221753111218419968474914151969381582906821033315137125415735107693998642945862440084685582865413039294473743898863086776482172004079132073061840197191435747801534326454435693391642173593092600199405949436564866516075678940046221718434796172813051775580804157034452031884313839829203217510398429991900511600629847842139999619246558361972320504390959756324904738230654803589987366308138166791346866644394262290807649796267560450807217349324421597837082239419434147769702361836745320974575866996052104429994029105739703611879198481510380486380086608062371151940917532304602705479435882654922348561808785129325001904839610742519089553780579535927051644563499805395343595915939093826495093502852347559771247329772662459740710831841500842835262533042184192676187454901438336574848269275869839010660434819414862275947043910355118566876230115024870113509373808564059275479131365879330544726686498714060705737544219015796992640365847455213171814483511817611185925322508560466008787488825532670346298214453405256857758581638167911391426910034888353899442274482258597424852492266573474651258204296470261514428344463368637691505043763107348059353358147667664188421166123690856038509372818491704453626178874797855231924494126723903737927461049575804438778368426767328566885281718790063782029831147397291463457746711331254204389922297972000147845642415376122379320361595961048461618803041718983676486770295177825484561433844057807213394795670515656097549027674353541488514656492073532792638734500954391227663235656917782505742179242986173261669861052172460681933245850171418569867202338327548286260121924328853855053103218384817993945780166883496279835035107687457746888922548049800568491290665713177075608659124693218837820066794633653850693486243049123572166390064702708090966782129789173886106217257517259399630930158748638279965144566452627069871198158977431543423577458022282395577746663946668517570107647010620478916503402983547358937299728554330167277846552805453604453178869691347421591611280619601487369269013483582105987993655474800896982345924191040779863071582702677996966981634118824035702992562357746247975490624774905543945910901341505111799284511183442469850928754910424181617219274644077494949508649959930902682747419589821083084712674363342418935916104897770577485641289041279799237943952707837398861635597828859634722452532110699474890779106038792978808645446001737755152561569929993284140383506561043150772020359142681520261279957437014375522392447497636038109834231475080257039224523849556769348886984023831669901099179508591337467509706969958480468440920695333524129187422363125272805903367306690148328494588418231705574362817787962281548967513160125699751490680566798210100333332254905259368943388521658916316299657417569451494604527485736537439461272325119278785752682107366134152318040063647063657667060164349896931534493399904102810744152178173110434093876662756581493653588111755672494807774072733960971955477830717610985225484735606805033961454299165360847859753787421609725586702976357656159593772236708145256196078627333992588175709770815068251741499882904665014552158155040344681633150394469432782164191172813467578127971289520284204533587554159648977489210470346337764560488153184143625629222077370647795752874954045683341521533747167313672374613876939969278274746769980748554192854818004740405351958379609789152516636230476239454996563335137261694748453058384164483029938808156167775320801226015344604635177432551077001626328595440515225981010992540092777217994594612082871118955622051034163266233034910823405828401024374570785557630603731956762312438410152521413547953769974053116624650776179491854827838857566004806298664296646690816863481948234110695704410172211360948934385724709853111271119837594568346977174394281929910684733013853560578982410218054702740019928585318351500792338221761109201549205176097651316989541342381251926476118949741876512040138902997474169012537444395787162709573990654039017630094783101241879401466212372165589666061271417417915127291394086994807956691921782337378800093039595859738563788821278369780487963265433432839529881387839996772606064620061410809332096601665907601713675624367460630690297374077070894478508726221697494891166140963062564723600366168730910018125548073004804723966749796539911157671473178119109563527044232287422983429556691016057392302078296976073306110398042754374458262895708218781734443575856413351464091913983657798518509204666169999874201230251615121054459132393074531512904362177051071736647360896175556311472325773453827472288484654867905201397648273031744516194983660900287728108852239976363176688698849187502297909879243620914738244773585056257172241963424121130460610790162842843203142505254070866662557794305164657103882978048646831902704713467626673242546818692740230185822343465404158582808476163651837578132742010061281239755564805450454913209835945927488367260627938525671339474645321170063609353846377922027462567338620254036633598215693094595102517121711099073787106769630855183030994395509043771353847114270413966954764571574807480404596586933313953870868413414883933645882702914853763470057205166781916788990998790150583882544989877043419170392496156448425673817290031430611028439009742904680476390400362634939673885493725508795326871473699559386151465353772010550341350104594371920868860169140884979460791655149568259631332620937379123504116701467423554895536668506627326598359214683710194599909098928499550793839775504185024720409355504426039246261225233402744663368038718244791827625782505131662343160159156955467991692198150123914372858633731847403462397737725327408245439834754597377282372199412784749044561683671200635164960663281812016642562943835305507234871210439254263312310182329752362637558264458232464024355967292178858317101902790200077857380639041734007422330479883753575486224036835457097719000184683128557308402442188154920091931665106426443765448978734259019586630453323203118274398606271460069438324766748991722078423785674090038481486480657349897509694904744735899666584745410893256603094152972297167341913816574131419189958774038694880846406985894075038387806472642062729316645906169121845048774366074814546995890234822488134612289206347373148410415506381383483239312170692761716548653013050888889582906148632770277473827804539607406899307018056531551627689658504985385816759722396226278434033112615127198235660207001514272891466267284742086973296287231429048354145658278478842920121128143132819504187153200612101332190678749058779536541611589417934509244412436548855513655902522802432904268359871588105647503598629048924155004335411301218754230381066736322234206398394691045040372031243164414903301207000657561298501720895529008391559617008718704752846658424209018413829665325136942883153572466035731644281720069091180236249533318295953419516304826305888867161607585616838064033477290261153137524432111775366552933297709042011003657830472118160033252017867554434043902432883131118750908659981338857467832421594117094080301866761917682195172784615714175599033790334651828281160533210819131735393385431781073666477497647381357803994320903872736578153448085129088609054235888648150528852419941513313821101961358347088921908132330525714476124056814892456643924420992958907867405008252966165695240119597352434775282063789192682087153006232926192744768995585191460208454344931101625690134237811446145739668430425718599121581234377327308302075590190126015676182965297653506588354224731660116315422775589326380230728068014011184123477403067117476074278139248160238274852495181939025994321764617643167974655528057281518620703549272597598583378710645001044671298232255918197519063460451046621098226407356448838857003430751827095912190086272216864190181564468117081415071168799415780524463160988160046791256644922998243142866720905901307208787355674323266439743079566239458605052457674034114501696666650362138502446710343028623440143147020504494364819460375471215353246450596076613743308676019759517289089355811864855688712772207616307957414772481866065644471618539772096838202825410725965181088388334260140861546743993997404124819323226845749435064620107038591318362716566103312376012252827810850789063111660545228176593656303398329833458886721069564724284120011729284782229150216548591895175156794980296317545737808936079359224285210809991280985683322872688432877477747764153602580770296575676551657468385163191617954309606494075776698959732576156553018017619077399151889295401785623936564373066883229188585366653274521982515878096719229069620675321566223673060793541020626767486239075931785415600942807633318334078596197744242731812918552680517389889509889892625418987031074165060705432063496329592526199074392401621276941738180853425429503572167810627759203661976484278196151955954785979403105705264927504775966908000075267119106136761091175544932810525102940264700642957700246167466020447752035501095512390688369450137502052500238459039168740464311215631447585247260666155119057495730534695786422406115054159604068369367292640386741914685842954606171818485576067832590675454639692938310861135902986711197121888938348150390901824448747604216225511300699565910492163072599596737295283302206651168385685505489830363942794057264784495724571470138180608979857255167619968758708629474303180018397335177546561221093301423733589519799454876820645257276210044540284979847889715811806151377156084071623290100523659619470086609905313312378380638574423154915053015980754268728229276925390052179486286504397108729406222714243657928100527351662640226002301146688782462143999001389162246221679552481798781218857257697724582989363499518270059522253080952260665019396462037894426048271362914755977364172779373044435910842622267544694877008138449425467851112319212102748459665684987866918400673700007444480183100932511082058854565382198270140776890809721510714300742832002414052996401790721351943103582344414949978306695811421845613190833930893866661129150146433321695586942263256888582733297873935218173050707973121672078884588141220460186020991614469267813477432374566749553351026989899493996573058684760068073360747039797365483254749617309387558815238920688212150812314066669243065966722966647211833055832987330230171959082226177206410564475435062665180152924182580913587933503462129808937807838957140234318043021983901131523635121366499538049046001608683980206054883638642804848926896758063395063264447848311797844703930106273317305428833162181882889760473382577067393442486067128005552761399260043376305814603156770793906845065524834552824301791620280640044328480778159287017223790455989688896309841799444684119861591126655306625824661543802196818880107139079059192849809962245298492207767516560443472820536070050533879384481499660657860271914723012139816369596016919479371466041844867892466940880841405728223943102930567608708015709521528153014609909094712496686760475594865101005630328885295999727345433673384745916331010957274133173415515767035119025005070706738880392303243782902733461106015846172731883350947616116265634960547504847627421499923867784343259829766757743847754638339684195647566233859015441493629488009095308403596624411547798565559710171704385629145477925941527316943509717386343204101195802524767650222578364185432308610174171603888524904287483067487325855831841620345117697078738140185890844328697876231186659958620500213345777167937257594728697178212700474351293968125714138215011358593894095958425236267041793082924874119953934240511596085146068451138879559665596557524838789216949198624865540422585339113831689387074680438288709633701832266019012385714307328961226410429562168865140444330175902317624231559751390303028141632390871709945800425918158333064488284777195100765497074283855480111071937583405655810455844373910500109369268685030562702329544216586910271652441280617563823465255733479871948453313398346868662825886908579214641473714922965618289601476374495055205154021172672461934781952954138997951087963949155320815299565734204453982009816587112479364290957608742753412965455745727495928343865573899406783545862666763920166017682736044199016022132322255868100300247382103433592566867732983850497484335483457603488787910365138314568446693933876457907790610211866332402904138049814708404358278642936858478927328146459636589053361031031707058912496479094412863872682533836948781823467665784938353703088137383900660759265279916612545766867508527472903671836781528137047170986598775457038227516898164415903765369950223031459978727378036411647135111047998029136270526960758944624779134281145076735608732324851467369932792175236559375467102265581347818868415413276822459233621954149071082776925258021722648719404559732643989888580706781050815977226150831096398021399101306349689285042034826976129421428572125409111852057541800043570117429874370087654370210309868947785740609254297248982623686992544964845045697353016564659281721906074078190399257709218067306568412615064608431049836926959642527252647445212288474807068781268993969507872384791028765892403298055634527816315475854975038372868287103239582046278190008405395858881261122717532194253182362667891787398020403827784359331747093081673785584974385370992817805434831183303549478738333952135315864183842929388566973401062338233579958490467838043865129402132306669064611550753408774611187076723058814224433265833358596274104236128752381957401378496027468075565020759200741378290149622378698447672180432755947688676053990837929335059710645957951148447637321248538372618948199348907240369806185228643252769427630285184518491612208328961941499620681560651231192726706089373795551020738810493798779318400030765656237611611265526696045446230561317056451127274719390089729746808455006812749970327459787427354193593289535816854360711926263386615719194463117154097014530274530072813945321952784680690682765549571013210178555627537616104107547864414521930318993943500851508373207933012379255007927835370308512876427032077985388142850227643302315021214268431452209007846970600219022194878956472838373887300332725979231306580190228126446709907077805194760892305918687386069887944956910145144451849094302234183475260380784403426144305265864318824340340480659003569878909112917035986172026103727996986802614729098474533937393702522548183191610159058045764207394140238645266356355938298385529088876488225242051656313487175370330499033558145711843563866552248663168880751340731102315051814041569175222248019812320474975379224175454389737333116915864252050023911018769970695445131080160129797821600986443164625622644825582782354266608288742113101911897862536613065551185887244321893030002472443504165958987543177737992972966634200042087180613251830036007995778280383910840949940762864133428679713147042368106351047946137056580812901970460226981791374443415107810109091639208620507026487589231377661692237872487151883251440807882267432607239423968478411254553076613699562834625114047519391912556203453574077265561550394807873491178788896143766484344434136180473656232687914660116428137748824096972217129115938019556104389819119721444486522670659526187130968210518766647531792236404684586728826444970278182617905574791733688455907915862494492951776327717868477386054570937242647751677721343712419620239610170083053233153419708324698266833241729201991791899310857394572585751672147097465918234212352537295947056516009860727328206485167750243755790703582910890256649143108559377193251736416188767951791686848676352386401034421061001564284483487865663635758983623234354212069429036023102659969407904577427798167353415937201177712808636250786983783915578964102292138656493833762266252639381967450544363596170154767195148405192918565569906900354620544122446344491695868435158201666838501934977841744944328936953926730438157467825021276980729251660185178766441226999800192741053727881693916378674439530859158731629801549749824996493528732181145245607311066397168125192506116521230827804357690361087140942469474493760428554680300794828454724993551971538548071971703458206254278718481361018741865589042723912516509321049877352810214306588955702364857963686991381568581525036293669335990345783515088182417164047382297278247216219540640747296457391675305684847067352966965778828655404368578778493371002973606463314131772658674399561440513948673405509107672903920732137906654504348787171793592274358076605071597811748401657408540634113442479488742658055202991608466731221429532986437759531758796452490783293513423619938761857517299689545755153243209927809070844752736521827504715171561523909506584881548306114575947686979865751808468461225497940553843033417248273077065975423718451469686151047760688283525439422307042023554611963644699049224755854246477128677019735282957456502620245773884999208741521908131456402776382367291243934907556593517928899198892794122294819116032199426716200939411154891821850009436193072956321547280198299640939145584852623237969053856367205980081456569395244933260636579608750958780639884724167441024477788369125850818935766345522831958363190472862233229349997306389413110348221750775170819085667375383321330034413477584330228937308581484475897763428087481618091577786940038281301666869705055735240711863667387050629352727034900430802992181092259619280875456996862157424649956417253512392173923695263189657568435135945911912859055642508140106653779748042858557978282353526329192689735909892088337070291575905677772671220090481953046690239229032243486948984543481032636202165659486313279087044761634096193044514422641681083638330128882796054841577345029096581764488409994629955631126801325802143905977205834433855915333035415055632245754903063301379576543354276787743256861085574123337709385365005101198970824504524918966897278837832553554577866691684223661788139335116600930553845835121543460376171483418958531563726505770080258295865249414868976001266742079677558294165347307207669823216695477010736400057273965480133983586577491131896446602992522520266029866242702401006037092476533740425129065279204181525190705348264830888848549898094737559347100626113592136303696008761052311402231662895397426923348183181331107556786790669354840263734997318896042271055736312464326309898995771360341324642190827606632737415239656965923182120621549120242707562866337175517727745639230963899715734459120047723545830628561936748005094064088486138665650131326753393594529158207206768815760960738256398982052289398382882437310383726299332925464234273676629072946717863784703034768734048274053284661461067700284868879699508517815714646196910974957036023812405964932628162686835911342995833487259614243235896485852569480821661542638290484765090947510171381771867230643501960489076400187244140557721416342218742936081675791775065770432993307706049996226166094609504036226569687940800206566029413272526057239487361832339496165749623509447052830690498539865392987168752704857517523448398935186182105939286565346269122220991419640808669897120664167841269812296780679142855232336063167558044766279231196721484356511142052056119825404923649670109491508886949883758658937392386473139337936493283837861740329758258265050218055994395392223570617543382050457392580821518782568642096631515213696180893214803848511423353729976439525468128742184613728587404730853363945630125350578376204546218995966084270729553349582349273854477439402613430410518038292513835679013852115696021826327587817633173543128877676357507952856742057517218873808430583830407617442098449144783358713676700790821620438117095475478147091545202430921674020867120962865764413362222801227178048722217315801138782498900797395999507666652996483905943526867317914952093222752836851070111939812263688147501108704377633029359063918388915920110906494195679242302643790436838369526800005015475517408799233599359761211055257187172031385076983555608988527508404942367617326700332316393585437539154112350611745073961949060790556416641701749103618941516040052294976728361214753444024870860218972523435206516025219287517699832306456274870821434295310431106458586205474536694952511439323265110690371012636040299876244445294494069991403734255488755566062851707337605499860139241409439887359058716291628372597111706987893714922431516128400574202767079632475499215661821117552962607630135454874949602273826911929025800741732169863097926551577110780323078046167735507969720260849133570684208219065718308923571085987968554880047592177359876218659756832876924307746381761732979652288709258795811151844438080861477340743665409813327860176464844022068070188787776779330324029493973024384821221361284953464678597095872213568951205873964854172580398519705538103368872120351546391979050841663556946054677789921968136043939237580859122334620232036994457534539074107506509215208888568176639453907152247300848121034221077284543992049844569557808145339700073266028437664556896482483949828153872935030858948528758081604057856295217289730394324923454431129096678558249070901782170395159751734410124622397623835235041711761081515179819272620123656912050724263217368077663585467233749010471522130467674065483499251989987425473892415204881825474850187080843674587002486460555888115368010481827708022966272972386259525341138684977967366610462152491039741197286266588127301676031989776686072137732484239521870745474193529538593866834871567279662397110040880435766227592321974990725453818060422853745405538287494014128091261981401421480567025070699524856312460804720040419312714939493040317731183894156045974959691128807527770601415173057571439430860434183502640285948890686743580345414378216142224447376622419672554858329978688908606550043906927151165475602650467992738458330709041557322142954721134318761972768042451426193903814654593528846959362219401057366702873339947168339696391924491339751536424980501101476563540749882740053776178408918135802625941293717946709543072037168231926761501697343643354709295681564558501134730623585546311442870428178413809079041140857747853318818124770238708733075119313470716824906517340908312162409479925215289624705775393722949685466462028517439382334358230989796617550863301397045789307198517165836219703468663676749685499806165240277149060814728066720846921832713328971700371231504253524408284837430443485364732684769337206740246512245407713119401272685626938059992201578847696485504202105082217519993014700665177536433399564558846021238269763297202881088896606745200699828650070157330655884068856144557082334528367879645434102353970782464793944199224567795178417508874416550475188406314084042259774078516457550052468056665433902684307963281286462755495474012081214373920863721236079956586432140805936999375633874829271860431782017750635272291778213725999805719937547515367500312606790764268561612270224916188243140242421650996448184006782236512221228454633411835363842291184030213340721122504682935107635479626054009138716592713851162504548739368062613571185681308776386087645920580886743293976882888288531327505489106331800838444091381674664161906271092558575290582596709704822965254910927685435347464748977738293215243429876981867675062723520047197580406418490219698951807935548910082373731830497986748079722352511348083020914284178335760494247786282834740561582060928757300694850938736628698910042599707952841879514724405910108404562222564254312953823682739193847046263064636572644242372968962343698856398146294996696550395706797302701389660601308043680758598849866194845803199015026887645624864973785222705226809299623858568127805298706319713694191211071603419410925475359224755079369357951144590494698209359191490218650972839836507311745427603651780318457830376462798777403077428360842306935202907171677376690945960967223390091951224374099426310645564731767838234326504361652827818146955364764264329211960894311925064762732361461665948835181878332492317931347185079410928731147138673775292319415932924495851486852459850747155304240323713672200499895400606472023302061535279998857693504408768541600827163652309455359430737148491434948550776061747409150979178075961406798791259330870084038803960362789865068602434920225383110585061714332450480503167122297850994880975594922126940115910447610384924449272821422128589138555160547639031086740108736179527670522742437598221224934352770276670021098884180532430750185426593485456228574859422798967037096472861582146688976821212446325958124334893011154013908584791067220318858595637339607342565084033949503872709098962251253372004094035415499654231763914328710968758260678518236383322944213029323599461911823841684623049027825540831207381509148573185652705355504202265375212288947560279977092925661575745800219899720168901532992281812951432471325953782806628271399186736494882957183735187689242877341916603704104893863263970874496557313441778424963646846755413249665612557671222360037316166907658570695116981280922850335993212486951468805735298185036045625007139586173640960870910463287485219281399791467303037604545171423265650262508141888260776055001070853455238844593213906918836832647764206289441215046329614413084132565160381862221550061818037908786282257256306374690610722766540840615928422154932137878655464231663350520120333705586391078424671706688604939521643495944192960332219057756268289596895983098528446235971036167448804747012864552116523087444943917725272827385045697473922026721824322054497121573127818832332185305546279062191169291924319138162438904566412180965884675278454074973006078423234388600044762954797698416811552442462229413020749866315279357611672504629439826197808492896461024805365915686060533275613084496443358150590496596652069401943100062616792348285736019621188554602868732792391346154608831638759036128610181763198002597013356706750365130984091221358315163297506445201042920627474828073786198167915418731396064372962028765962416071192254104090313601829282732753508483675495040532486735506515074505992088624735190063702334322069352505098113169087319684005389015822273232743001397520517095035769068962237907887229887530016948193982825639680145068909815167636720902206918818483713003248893254713936542128826991315206982029936567394111904949851593271245596491973034857105874224348032089970686240473398817762300107627410085523873815471570397235586304011144913529662554573910078335402152665561919513411661816067093082060360537450549371224192675088434667418674214138070674903970912490166611400065779182407620421818998945185512423280769762138791501032056073123408485718157000640527518809551828339981060045596170163407065363486280625703034490265777554530223786866634650705607644498027274405148629407188076775931992435817339079863245045500661023344623699536177112461082932524929823839772348478671897268143765071613268715154823791866123541306592836357461023947517825075001612636095829493512337999011022465055888626624379478033517324581077920148210138612870609680997703162467107167015159802733921072199506743598977165123613175042834283866883453045716048056853912412710313972305876055199629804446860844023566840340098527557985554405361878958285499334047452429001934611274490158111868721175954731047183951765982617760420151780001966693003442301291279491797632300197057950181344891154884093122978696291721264927821251900776459254434687192103823444482391367585162921549465399382674261908934244675136780967078110023238795337233728678872631189563784842686104216094406486322077353551375209930045953156407732987533099782464194274242298633598825915097584488405621661353999112757842825860701103018492842268014192636938518396715203163371624429761927599636840558553289527919649434040467505722806729972274228677682021309666054337597572985267758668977310663995029768775648879234131396347454666591437031372125300163937684798146400332643786515979584134248210294036465786763500088039284232806968546188122175644161431529674271144958240028812918720423676147414127428044857326624790729320786652733413395445191676110854815028108410277501289911150074681757389723097572129721390756595774573270807342452808897778728789519004997811681938552060045853703526544568201251868780063738895220656402977128289884763157251842685773267158319895149476150243129022508348815328684602815707710766883907328818757512595287452899143577175320977839064382386706467438959843974598417341151611228768155487805278349633584243420602758981654982666450074031075622154680793316340785991646754644075461894530141711563512485091361060546937664695267359302807701967585908102018372593210015996994524255872709926229237285935656004667732921921426964905519643330992663249426484264270746561562263446661983400144849131268180207272505455411437987300999691936732162017019226397830585007529146712501895348596060472085087671205647358425426149800628750259403461441141427745402463555104648238567931218472721089299087285502893764206515961851295876910726646618208139066910710234703609756945441381377741312812572232217781013931268531153054560517308285358767896744740486469268611127503460536424206848089932837624454542482656360139768901250354392719418174801401363528917910036109857233542367169240289318174686645362137755748191585270472038453686735465714666384917834282310661061591157774636752801137771628054942925775963675120087411832960808656468445878387547046990007441352343274565344088126119319522903587301003822346400403104281837828640737628364397678862744705749804380802783924781920253922878236748485084484437259725187684907648698728194968215097181407849239037524344031447676927464091537503399275144801152583315014994165985227854963604097644608631889587034280498354769092109808807823312648765651874297542461807247108509600124798776498452421757454584885211584459454946067035315287700176950096611846607528628714803711285110465007365533687297771718701080114389641709847321596073804931507861981332552127366776127820004949663230194007808690096757841611694711724525091653119453189072532443290035969254789286994671954572775163495903267089087900982467660328144557505660398935361499034995000188632847812080125059164007751990403406708241783349131059368040697852859018422070893748753215437977167035040775349752871682549749746054418825474313476793841585142620585268600429285270500455312994465302101428374232245236494757194487573182414665022180019303524466834463929164682390696182699529708056435635937756515949320873047456238462850571117041350569512697550412578335275225747701254316217245745309550441788200592999395073143596668807600328893206968206129723615447467509448532732913104527200572844167302590940921596452288033572546531861256879546202013574374282047824977030927928806599113954685223609735102387612852246980499803993569143813935115519083039180952898810974000645620578693395747793112801613393832107614385719296162140722108411859534922488740345679806327684975163171909250925294941415774092689082451988248992846671818622175605160486211785025921283206817096585549536688600329818517920055484159971612977108339492566815679781886890327066568478112795495001540951864083039683755395352913592739683681735749672510646759305451980712029577426481819578714124690589686064486805170882772012352881075140689601290523624867636378217705229887311134682914821561026171290983486476092895396154601087396875229246840067024924214336865075495485818552381788382054602962177229075016941050538114267001953240939983103320784835947573984455547033419600362604585752829808126324609369830591510437615937064134936861287934058788305227095543754082319164383883049592427895158921235679448786715926076706907428409798588334082483463045562622017478930746823367518723462790423197106716817007396649653529429840885004663510244125313725621769279381441449491229864050332346779523953827931908057829880868413699369056432350111755171711408883179902673313642708346585972066381068860079181892555924362808267504487167255279693018202733588097562279247700768532870060682223710754561310084845306942744115019822367629953008679499467353394345911528769844174322207224013878677185151682870338023360829070597105513351492150079250737486201668467658585054896305000190915322415548582886781769220954690684042078397666556358960213333296331716590343534353036933704498985790278816053317159099554459796559552905629659409716504276118524595040641294632702408764242555091857712612246542718822895121262990098642004721914297773127858250404504366326575777477029529200303048862484125073850816502694695955122904689342667820357477497727209181907113728012446986269983262206243606284646102419327379671435237692860839820259265368717694601689619211186580291785736434444332583047823889929018710153679335164292515137691226200525135184557759080020778624393953595403202447307296704760608463263946987459104113037585484679736093846869648602644953799443103343044959350299269789731616388415566523646503696936192429939518878724486897027932320166029680910348457828534385300309994320078395404684519403354121437864425174119029539633018219724724846948493022721720855824027058635065634220111656334336031454251992073267624707851037324049942308303047938850820531820285887763908796917086449843626896507041588568900949664476037047648083244942232911697483253068966692560443082500897768445505918601008647581955103863238722265932475733381773023031000963341283994220441936908622612881870427318091077325611195096870419695070385860843968908173007086464585209514801853228604103175697667681175085955669152984393215025697189536811762475604016594303257206493336357845402636774859010324237343296702694673281430819829295847059579085945578507410883954673047567364840544798680046802336244625747378536621875773718216694821718940021077547738578184398997640269735229805464807629276037600803768421681292362394817769947528284693148211703370535370172771594635148412381016076847435277029406423098271255003593502539846269462504785251079826316546970997771909293908884213968748505248883404340244408693574423778966015631873036141803131423172613293497417272499502645858743814776693938395650222183894317212342892398213052989725987821110010189026536717051971679463101564633273952658468187406448556331367463729515660265398260217348502461861931936317136321533753145516674246346076934272394987571721402452860410109124265164393525456142969723493170376899304622732133885432352014245806009887756818103581661365581241027856949643039190047805134979689881969702300810068929189453080705920284165256010939862845183664583885310448811207749461258079978980607406005598097891519880932175463699802033156642688396918201231119584958580469427957286237705150949576170042649614951720025909841135796716807304948635235748299883895357166261002358151811976805348939909788025152628127491169182242301653810739390013919975486122855404583467274765580574769674127609282427064272192087352538764317242969874410942302617603855689116102858563821738206966510108668034003203148113027939847065857788679221413900123250649759333417567333950882119551317226275615316743398122830235350019723724259275713190035622184494830692313563494418669224415996744859114685273687948730436534134546808537805093548300826666679017301824829276759802541778121666521887631692101154942205758605559436577154286792740819993357693847728699980371701451696098458913204108976977376998602837446496074013010451521151468842077269546470436948406660350357949695299553037834733352611505840992401318362766390506422562298045846840088555128119781439762216854057511629534328047308488798757162552506191803702760032318604026361765034872073149519775103154278411011682505146618519072442098690600193510717347487842676605360697526702024294629132474502724401463373099174709634632220002566605105930079128885908933380421139288808602944722452906924695993182727363686218112027761318455762325861033271805564934884539106674623222725397539340185578954819481130282738527080527398990002487086717775373549928225672096794289882359824679218869303680854252510943673037423526771053806019563056721501873903662295761948978679189472555289421273185038281626283945033426276109547877328753623925257224920306089735711741207727356790635367280214682959948613333171440980490294944339953823250911465409139771072006658191030502041795167696646215246064102110553509273653350951397980027616793750365336708222424093436112608415291461670039882512678610178783849724076246953958562576028410934341746765089081981091835266455330199626763666934530614504977165073727239754098661707242023716557771791221217858975773885717629182486772439135837044873420295137388345137146253368956330946548924178687687801137418324081974415284253698138860610759182568570050187945704163342856954192607135645955717966953262891029772902960755738543589561979270468539483909667444925513646958903743699533508037059824787747642753378388922830190658525528932455916459158170885710143927439174805527687358484567099833154709302309319865207045714952566491712204745875063988572779251955458967261611012649035543023292089413789097369023813933235453839490730644970145305916668627086147271681881988065753302165417641342735306329803621681311110752805710743069993511658871942825106756326731676143553595763000796673643809654120430836534040955491011977622457138782003151035677368961072138948456268518252670338675624346709382767172714525699838482355342109864416798974258882930505062212234524782894693147081919480855503686273978528136686372920335554303311508432996960551568806157115250005569746294407033354544275243412746100604436955308456436347208552522781075846876481033099735861202687991876979208187100261296699672995309969570511415745404244899082474682620823638859946556416743123414939234252166614153851712175885273389523957108434004019365904546341863439218957342156458486818923044867457515960128408592585106412148787230450047320811491862355504581664031682820707540914239548683774300183255550805334360829435222980716912182369349568553312235244037295490302607598162505465654897850347180616455107655614421992169762768135407455435011895577666985317823331500496564249326909865514168355426572620334400194231435911349788232152542678769179791964652382592822075163204096148684709675015877717675355664149488627254727918226974378937794256259803598734334706849034163245664328286613917407095218582547491840235452723036224788849482732359938090120439927157271622318077872365359752552644097220296923337868193266157582256802908856231968950666588092023177222677086817410952192232496396878362291987539868649932523260815104012107401775662294251672818501110048129619675717992273602494074627483567866675909766423357898319138755805709888192742105429441593954353297992082539183469225026572728131388121030312235790537517553937340228760292914727950153249978809350934936516133776686734218580347768526216800731388713556633608226198797208779141985484036559475500221323727991608312355663265644886174931354667387213461648528082812260627002639292781034571618956054283746741139795681313618992600607598789044706419373243170833982834699569442970382361510438396741436630563446469985459236868495720579211751223612212047936484326871333126039559919980380607690010000941408894959399959125943247665687905999596163710040487127720914546676795213758347203814074210672688061711539510232329834468795196376786233634950281156608109681932199180623680774527662346714933956469855860891601114148820206812648186214916965860145789990404900170074039866800540873874671895273953497083609530827708164760384413797068395771693754989691905138459112332807399739150544068503090575368553291744194049436615442604912267444138456546605934880303381276058045240615297670010362158717629423693773816266919213910914158062312553720398640276077982557387401065745636183141764255651811392519908788469970912785780568256571874067168941437215417443515215782286025266122382422441621699482318286851250091243188639143751775018111654062324076816474736313013340253932849002333323675429549748273130103040227011590635226044425478900922541163752334141504701396726564640930593726219603744278299154204702239178432895935047789714646129471736442065957079820828471105251336072214433156140515548448813975685716655446776479395316014916384764218993214810635493185766749129374977292133547545158054434631781017433248284323151324154738693916511183808954557784911081624996674988204903597299574562256451894949312842601252163322993698601930897630043771827104991458811176972129901097621213812623069680712662348941920225976801584415616513731256416274712043347241262789863357178196002616835045340079257120548229721570000466530812681376200213950740900016816047672018022828630020151871953870224008808819218653425782170412619099007807068744189660794221991339842778430805553195145432387135072732637080371307453346607658664178647335297628771436197635880667995470471734086730487457700601574641446887388749985188528193654465389844787667865219641986212678703344197709557949283835653103621249598804767255319388470903443281436556304965649286276530105903843264916780150682842946245708544318433506363936194174022920691518404807005605265855983938177183145737914545967562369479125092770947677602325876215845559449412187513496990089979818814538653410428609407243806455253705476799384057716444515232504210807431660652517861158813811929892134177760052866920174108130989144712929994480926571770821182179138388234462391621369823568307573440471502112922669984844674169926963710847563969260265352755426172294495266693070893619082018765782520164429792102482838802895465716567461668835144590576551256542374919745710623233680004756491179093302178946834128033567668840753982047296846975668885354944894916088715529181841422322120340256058646409607423827064987103801343895153461193270211929191984768524199462893112210426977445307372391229718050934008275165996881641632701243339250239905974694317104087848118121845382277313780711821476666264815414481859838509283877387300879561081404219656137823895525929229619681644406290235733990833524627949056266113212118197728712190763346625043587482043218127365485421269525708821374498099052384258119235880758233014875116369028265544648804865676322905528836610082696450225936803955372564735828676837760845029633047938542868998303773470589896695753411491914218993933644249732570269059081727741283931296686737227355788386032060319943258176643446219930956592662580308509568114787881189814138913928026714012239986392706885130993033393315460780292393800586543474010668009563812529892910367196118379539896497202202796979129269708624914889217431290724604428349218696314743894347068159885555901296978626875916341841055322283551110432781458777849983329660334320658295076896158745863459495972613648610042594118281104167650491290811889367040073412006714649714533348032689717679252252874586726636383706100812125032623430035960863818738290903363758626062924668798265007422308662334590173596937416530111480482061268061043394626572616160162000281856023418955530261501337407662755075722764898332948825928746428040191055058875499980656209483354228525798106123131800632555713421195118547718658374670768407226451913576649707650562289670059584732334216733703300323877814820986542420214248287305370072046485671283702960545137207442971078461305095659792630580969766894404806752310730912067649533102684196616410388250509007712327063013714468803706210739978398346429987023086661564890613720216773729724186076072210738204564102431525845098747371422642823533736904969963766879136537488867291665046831747818968393476028707166294783356758540704086382040807886346505252030485530458410093642166392708819079196017579559033115529842315698086927802900422078072455469585271844140246881149882174919940144105525555062251936730419298872369571317657764150947856547693186916262673052988821161488760932927230841193623241952839588677728419145358336308768171202047542104991878061025895736891676583223861578118495511607377720815600660213010465555631072870213592459624126918089678527497551633253119600531300173870179586904706910617606047280691688088367673845295591349653032031022249017653785502015567629146264490766577843065279024548504335704424139069049059701386064214246025960062846108460111343404617546744496198431904315971243780624112722032595269260864070358543542913202776276612930899025336168555430275151866014536513138350122981376835959531867899264364759483030141296294628641328800023984943725505781815843220768638696871379963880878706775550534685153019948898420747571481209217054597206659806982455157932512992526637366500325336316592962692417207949575155718473515292044795046277084930362282878904983307225329749985173220360520617652888235612713221314174654064206354715244815259196657553640512344167146528621043711054407465893098319511601349417014407631446984464264825250714437036169858689787754339575015601405022374291439360227003890571022987616916503452904952470022034615794561924339684035446772290600683775686765066121322378056223879978461118108867420809380112552274816931599109429489767457204389131662315606028458180310496076233183162171556307200179618218654593250487788576638018570836940145784534116425329812645296527783538827003468500075259227664831648019506458136914194655083577323326863843395509321650153495663164298019062888277570187164886289443520024840364881699634435339472763563621503401522886098564303578667852376734591620216106297218252707427599590103238063404502061247556462463144221287034261095143942655623196728673529921057601129602128662014868046331869016943247020370228024472327838176084501531450524906136878009823275362076346564076338629766983785512420473746212205270730792442882114320603163369381545514779888101659777070109394703186639457742446882358467998767432276541137458128396119283829867043251770973989733180777727424832404002676608370975502275226936740285666922845963010044594116439074417670535465266473030878603828920789735491087676064218456361603305081179905968346746870518315897259758380303045072906263002018014317829794022545822582135550398371195131118392560169356683238826447958181192198598239712448525626760998907087965949832486214170935822078183807912976255550647307532897191124655095230581208517514146945941296734040787553197532593711827754556677973698161840915189413693051074457591858601271590528470462995425281272240291899717068488716957990477908182954746000489908894864213878219225247142048006268877815483612409144471962378424144933925033199364958109792305718229025795660410964204059136153487557243217534354538421780606876069427159030007874358244734150067008979742145352467290007618118967649271049945037768929323294451942986288970633498510402612474876874755476014029662952929918647590098942947877411478301838965154235256766626806400435568655082804628859755502864051268360356991387997947974123732930487234182587844292894420880172964579341104208844017934004251359938873387653685208134930240893049706989948196250022365873498712698185705445979170661584339851225384440149374265107821665615523619376740001759673398862441376530842331976004671698534575110347035667242504656663426609006576652256046707814013415412577273601271690339732080483327965254475194644714045948523778905710260570834531629590255710164051086867563442460444192832913616503691473297049537576810947859804854431295005481536265174855373659978557372386302101741122760458273379100238046955687140826055353579480993995298147222157230063440907922730145420169782494702793654127023349084349878825268227881310139544725985352203966891631147885789855463238187910996250588388396806444091260512829078091791336979655641363414290676271916726459957686582210550148008941305385055491389182571559513056819887698010419395956807399351640175184127639551862840961369628409902440738774925116998730005472683001643216673090022987874395174847120694967421879559805884984660754226149552205327045517223491788334910186590779367192818184473530896229998155580727430823380782871238370441131598482453657139247812470014423849475015632109356540488125436083672224611307628914304397573800541219753881361094175018455015169662343518076455947604283498359263493884447115938901618392127691202434318538939278254516226415545112453071204644086102648699295523518531906620612583061079819829873774674079968724863092104290147995050979342524384464568678494237021724834431807235024076074646493743211371530881528088112158785708041301044275573459505122464147681419845556330730139784781275078852556994115093334072176866553827576445434769335674651336979614088462041307844046546970441819678830168799896463468666380200773030395609031195100137277584911437170534018507444888007787365075812908790831173207935016208164911142789407839835767422785804935528285238649364266536145069010466556823867384511761744422317127146368237620399124980269306640340582574758426799320728238459879535189607995259125972722162857092304860373535424316642255794997590478835945593789216653216867067040181780884509385794934703441592990173001404473360288855840601869066663369120762019466679780509609679303852171260534066843285311157153715070405075660008220855065801189589427102951817440016264613357501259028487171121809740115302843663993881414281200464634178349914789340899850793594130955569400838482799306655067683995410720696373830263887154797302970857853793557373520367401117550346915103085692142123556765891454634038778116351542783099909679853699323290268783761440474250999223383624854365002566856286247964017303243544158254947340937648400241486778085277852215391061590547562994136098967407692984943377793898754519522762820364069362134665867218928567840891045626723089832821556523733219001476863496242305455985436154565400111846009965556369794898447008364348128887583922749420930249531088651864439468778079561304624756096148704261114275946612605656036292785459842005217197637888155440349142743257036386323784189224823908740048214911254800178591286409725325567892760491978782030356155977810515002063644546049905377390522521761331376012228195932708410968416709815393372259812728554555979052781598944179532267517049190604923074927085098927535377791163355974460700832504312575312863889514862307271349363314409172875628737449266913168650837247393742044516112971471659945707198077410533258749703276339231499124191038143086230406477437331161997082824082057152975416860066686757800221211148397664592503694813720627797189035714700617180150408761493079467013433671639563501282841298038473920036313643699117784435287094862536944259487645176024489142259898217227885537694694609289665336532096354326577428777621165266308132669098193185548439818398030735395584713193576444403990469791183894892432890650632221666921476516222301637471226866985646232995318351786079726246116906654079934481156766279046488731946803249951139720762343249855744745130624423727114055010194713489878226967421316367051458731247565418585089244046939761124981804022364178942391266273996120419181546383853756576793139892882139104880830055189007737428485040920699435664628416735743297062676697172791774059579268190698930030324038328372822912420476770701637374576615190125378087390687549077806944679475720915134020394626639368189682294638160845369373198157690023849339162738207993304466030200870800875329893224404501784287972746868439108557440674662964762127904411592675784024976990603625235815121240986771266083428472080220103091607985313429165067409247438827321674319982799355642189989151194058239614030064193239799764324902818720229896145050860034341163583448228279953025135877929348920063980991198664251730620552065504295651886881464935686284497938733971394043510243866327428538349019113868166828483466654123956685417675003269422047312816837537508511675066254707904207192919631929235466299336485191591273047020496385658476437794354466058892831334879600334603746106725008036139850683643592851015018832285967742718747633814426882745520153520302066500511704792221795381512066207949707107867626561308999920072073830332792572279141337257747084614255093245253287895039595462371009496899801014489509491763625240805533360581900100867407174571461116863769174893806782952153972301011076947142048327904581478710800745048893847987248736153467280220250796386683675250261464462931310794789660460353605243122620237311131444369467963638597305526651520253411215999925614612625616064706138230761911078580210750552421986937839179425259586868130733323202431284005113033314422182495589165347151842365863226652881376087000210131820172255459180824812237331369631128363827889963842134546104353252797462807356677611499174899246773464903503550808457978447374912102045318714298646606377168920583966560915451305799263569874340102428337098847355838190178672218428617419354912832984290977976185779029544487010161234297210823829896454058041143263795562922816302346060333326474242966509597401887703615637359934646790913157517252279794729139017848618234546929903450067851706895298516864008963788468042796748784347156320980257427127121997737916287347087567676367971742955576430397080979279333323986595704563049223743485707372610757522500084974328016926947581790590634225186609885959132312501412979325100984540907903302246005478596134923326152419596075912172265471067336855218745223612219915130682675882191924143740392327298352658015313081103753249646533117312239101456335116931813486229862968594682414345529359209766207200401150629435423741039356715740809407176146685557183072410507495250250241188983532993758138405480179043668739088995143706344753819417930650947770856060994350031764388588554973737106312050451739473079133002006487554064587100662413867113842362798238600664942650563338921635033668415241455696584642963672485888931834734065048585976296701698418281803000121691568045999944887762993892659729236873335395217148051330110074521810857885292853697925386865720661554414573231327781651130838114710066114458885364497036399376612144476447739957881676567526762422160166460437466291313168616078077672779107854041190199338239505296261365694343762585680647582451036968406280178645040767941383988685002770749970557987115269582223644147971393215170266485082670378175185067268530555252598672077761674250609305899047340794250896205641700502637133284193747732822923910755599345436544628135706813166088255411123156594847410134687728674058966989364323566611376709856283062024175068669816035112238851709532031911539465736396511103670271625159401753722863233313371456316202457996013927722120481576063268099221084665151739507434416554331428252759656502053885720539650690575287557069641432149488863565663663300407902209686227115637849081651205501785490034976271732367114240606520051808704219093990446686408062813088796552690350874028587203307948724287427812689945376990170416275129297308955053959189455546367804842790307043874520616744468581361243623406165506365027031515881421477649295450804341858762289370555906750496209714937975798303728672085422014967977013886069845678677552906586916323076373300328147675888979260588226677964185224813513460119408848590321795554055689926191356056620714265364345459282802963065948375797626888010913203005792293190055476463387069785249924827761029590376625027422453966402356709190315550813884968270991441660028622973834055806138046903489820519393886050539379072865712216277752717265928055435412085714329292222478714963860985854804284950473888098030677381460919654487354992690071033322189413418077822692059609695936895292095534883717472106793040070119836028625591988991273772418492756088223997920543455793134675000248900966769441754783639337058147798030894775632640663753850977269709095702050019730918527874243723946359112415685469963069565686235395844581458799157716055892152739740779435755750575449441186905732774090197127552659468524594621233667284225499329604218559198819098518407524118649560116311693275493292437544088659043709697643118926206646303195362944531254396625107921564071093780541124139548313520263381212760701915652968218753908372225088678546940894550925227306398245491121039193652105219271117912304132057502933616454918876464050539188095901623775462278137417739406547736854627381971806876878702467987082680341562815891579375858472121427488546202126059366721250667086975834010343080562538171260838346351138533891731868623939829426576361918847056184809415450484695740919582024229469495838965987049886709312367293548085154015710861463782225262485409609441721963524256447959555631626597707940462385607953552887154536377918950060545681201770365551265226643893279991952441409329938246754111785004138574214878802160811880442142370275650450998272240811575596358214927687122570664025507349075203462990470601403174338088175492032752857885550194810941820869360946568494277138859006312799609531791941506910605704054423332911356338424743950925723928258900704421582166582518168592865341660285419358918572763987719187249644721527752483547827600834424131582689089680839458886384493995345417965456691618707360356538536811998060238530552074287522183065259685018784254907074311185643422959969700757376314947029478874603995855160685138846479817012306421920005979706950616275971296311719503377273259686451611497418536982334908836918426765019721035444105834850445858257351286483169860119237263155912842804519633640700176460010412312051061993468930366625776336423919716324560108417964723566517110520846339973980199944130578106670932493899882454253368560724628030553743113529684924251241575071349790388889589572030843029146311590333070151829887960183431397826278260991599867275216511194878085370491973919836761545258156392716011687296046022741892544936437254560238859323081220494037825012070538274299817354365776319301745020547562566674144207298472871324731447532157047867657158619987309863132033668043285947024763330095451388832183116160712439845180099269419538649938010195043789354122851162230346460888663276267558667912454769225320318293330221154622284882966862738647798888130490090094586883921709312899898310261656359537031167976834667693478320698382815082729387810746810729538066437741011635371093722078389233455378721422379766555776988895561019718189237052371891263238829696524911016686601251306774986950793944000522515160954201500179541329860246214211364010908710145467807358960403095323322949551485442791292362952728027656285871449180599868160926346408816646769227334492330905036865623486343151979891395610240874557414547620666417523329361317114496265879240636927768331784753548667469383537852651651926356825474068747016915623281946953641329471667175707466825514670223076409978585590518803933379639171145769568264825504648339364290578456982232004775809567128527067710997819197285436721326609723565410702247317755955180868979437796396427272569982392424914683626510980978312675181994092504949224241710714490279216947351220971674465130599336414580596243080843246980675947341848097879322664325378868675993283797037546215190210048622031025600924881721272779050534920232983218334150262950843425217365941476220459034812763930881317730829680621618610745033935497302420142046103310431300517306706457226924087095793578113562563400941037170498632810248732751483257174040279039893786451337249470788045426252827814277268483361445261211196183995647028901034018006387443635903436998224765170449325333249591893100406144558202313777435141338836823587642402744696407842614297834331881360038454066278205520333847676695311117520418269953662331877617968242260669554409759280241495243123337228294079647780073444990802043163592998319171967200945078864432930070617322981826083919816840418625848332008876525551391403061992573243417955322975639413562641070723516978862958385403813142876805693054722140762281748177195173042442599937957305037252528822895065028283202533207483305108484488143844990392423610818603539564193089735573879389299314707928338795889131722349884355178966108089050841679634649604724482590956816948644324462761238857057434815505544460719188471113897283953381916374669613204506308691911668446312494687084825564561207511089781198404999840400952825394656432762968232639765913082838713801839339209004975644747663387857411352802366027037992917808483451655685301230495930766917010756039374346215427006929968357599673882300803042827390207755893320605304328567876258674146635546583062698142839952305437398911575714765243477803563315961362481842034242626132931511777413847799576104138689293342131079788065568154946258560764558527260834371652330231054943712336363665935948432103026625727308050947674949806334704553482469740203347006492455866372695220572950315148781103795073778021874686061174303705124469900232448336208141194205660686140971694259451659228822215616170185811919561415242589698193793762356785342024181132077456461698451836429601839600912647176981305704735359068511473014623474507682366620895104329371207512338491827370134723561750138272840050238974271574938765106131312091907462466733728620965033989627548144117176115915426595014352933651000774194814707922957370481550545908975063490540507086181231630322244888371116667002080457837708873194911137381839730381960046757034202457014256340215624753713221956370094166517677919057354871612571311800729471668632791701848788558935793718415809867603370683846069362347758386198626846113286739765224526804449188084894182915770820831285038701966777547189032549365911592396475241140327569321839224709095640275831196325753098291763454893442054406044253319839066788387049390676354578629736652001964011414924576492433998739735554843299704266584162096311052034601699785074592595820932087776229464220128060456479566457983515818037289344268456602679322664060852927705010896939686148369551736331784864508686833852913549344361291351016733631454692914984039255252958848877954703829250475316295705404608071612499506613273800742646878188484865222539353630108354814533348435667924129087749654158419141247297626052437169536606285336151935428956428050256482297925961640839289135041651837621674960908061368614546621617822486018751978512298824594354357435122479358028214998686706168178479575140355157442550358535005737052779844964378796962700859258616425361882703418214171669688013422442718367448477406365825670828998714745152020652914830811109851274698306629619495614678679525574246340812395396159037857226580668454695374249613355966353516114098817061145089796515328442036906970180239441892443446146999500317020941709297881561678419750791080440339149142480075298780438018398507341170215425310798279183027342400588665442229102766595298125252001749889417987120592542943693215705094295023183332276621586502178599593636355500619283316629915499056871295910662325967583335401219690301843836883087078087389620195840177722346265064276977194282066714982261936936336926710023086393475364784796225339975452727932214224061193709248690198061561340615925638051189273111602749686750010153940592688547340967499568534155647759046416308460172803167069707454226975095940162849274723539189168732420896919651033985585274904984010989387794913514205749690503000765325962328551629871416995172024930947248031615674330379495335548166583663330082399099501348241314763601795539093544082604479884925792329352035540883811650566900598859881115420579177033125357826523662738529549818831499739010557294796165564642525640865242011634032735692067404149669167960227132448269595675048884787023774412504076929018913463406544646839013418472270328379141871856308259023228279099585685879869125028849578780872876525292945837677515389571435399104570570610033823707874301961141667318435937673977482312312885119768123907820388952094510588684496010825820483336296707951943969161517742341103277075034569214933785243181988050133833132339268440722651912212383010313092571192305064092034187235735957938544558837372927607465221232736359170651631178474409497724408505100392086044869548641147899326526047158286124738009347340192873434387875622462461129106997167714510216183810160628749006220941258661329595522233387475536901538440843878901983116283765987840257735725001138023295058865793669988025223268395952533231095016238964398694014737724030050339380088165648036770931762750049373633551801773991112783771602736134439728605579915370965956983570476373056113681773674264033986005577245126205702059813077400506698721313825344590853757689765991099912897271624511406073034399505469204407931623913477929665186402984056278103101656366889696135512274310283522306050088330572215309852799007218006441332608387881122227373833622940298172354708999905494295316808264705827391802646725540401472123118083458022972501878239741773784028915770974010091500906874651949982345952279282205776269005750466795056810782206460142937303716647218886674851095017025779605500857141356457142718028404843964509693574309676389823379380507428487230019812403586581029195113939894734653606639763513889112009943394229882290244512426938827792554211755964665857917690599419095779698377330415089042156172432186873882792723107100222299569552018916789440882702253701333713633266555045085730904896101327459304581474499166105150519287222206304084224649131177067306128936306854904173236278534050815842506463604699182102817284887610129456763196312862409146149870408147322347947750981835399299855223924372214876346703888314227120020574308890174798307059731901843891603752945197773893813464853125005014306811583206916849346631225432508574274644755900407816562417661268889052788698993159536941446027608285931521729988643200168596415206452493666357943838156301982804227972345227595411168795516339020144910004425727141592012137283104642009101665854544279213740301699833224691525709528778965229394124827122076677538300271790552977168706091120370691751499450127843381341535943427393715757578441573879781417739812845539915399582643469982700988799636039643807651584834041966895283069992091636198567007205460194893962781777385131699671584573978151225119580646618764971701381866297542148942098479261597472128462922991441753045656914584568592165920738165709179881452483150536101322986003717648309259729608476989127919274329867857973180317409142936056342944991009875058944694230936450143132017935235468970548371673889402532037390184471423885709386566673953069211989542809667996021907897173274164306693206136861250303470260956490863439054983004726499697936607963898175600848881483516994944884127807682117982108116473314888095042554953237217326418716395240170525062228663016876715321773409508679426315242970720481014169814572366230782815755235873254770640464518278324220749590639381775978801926221822556235506609781241382146886123701957013471795948536002195025128483687534663262015848631655209871038716060135151247831676719311167129622330646821195063345543659114679182606285030174716521919861876153002899699524133813863853167067930712183739725476636719998987240277553302930314271133724999697432054175297416870708334169298698734052546555836099602266214794436789201014677128413086807826288009441409129858641473548625874503949037077518971377128881013771979413820384044154491024631097265398118444393325302756972416967806949228513165883884965577108843470158625380585557377954686943366924166651011282694693317958250266795520029829788303910868012633111131610722211852763741458337087345301217087089911228526265588219787151058819642022077032808970096863017731156131003763560939264430071581990176051430700549959757541475208405382954982875877881990081950537379500740525511315859440868597522964125768569857388219625151947704253332559809530658035799662422894865544469830238932269163943492719661244215557076024420988925244999280671409476871610231516159802792331478880323297857404641939933398051954428373581686278570319999855122683719908067712533012540532274915654777064251913162653710716130732169375705474077338185237422268080923985924510912168249104239862549196232237207591967959690870165812698986296026663751182816166131469538372157636968286146919737832737752754050746724121486695029289434532042852379944630699007480183319897336655825499900088972068214260242583823312058376253702052601700775809575120576206658242374299060664630080099836502324461012183315847092774465647225438135014270318370664218363348561510543778982075585379092471745129762335840115827283486450783594448522159631901979324524427301493995964142834339734333983481451911692870142147371144171960434417726782831069009878177194792486283065308949249911543157868600049285265634440767593207858487152901983267804385494956049396562859975982261818369447959923585224928983330097419333567142495546553664761208714429918762833283073623765533188388118762612926119142677510439238720759761823864780572675202862037996227397049323148135480496168897855463078230763413659805485978284797057169873306810957375534513822682481067995354970693359324223008762892909858574389317354285947080081146925117945370147048714044166099116923723391025154871814051860362005750425599743291471959015762977219476589968556795010508945129206781212989121118409998209974398064560913570297035970428783797385658898506595641495928523641798734373355635102956109701260648109184016746901535153172077384815341080844957982595307052644120295913452050350562483259134317713700224899690108296288152347562381500133601366018353880795597821292664708112375416088086129175474768361581152815956358631186880452120661250913902226114215788419408286980683513451756651370041172814662254901347683938619881347699670817303340529354479973234348889334229868961677789959220517619495775279653706912827907384691497572414450345440163065778055965484863417877133194249546375019797768049126133150531411665024255539728675236541479079728672791335417665847943038057294568531297342037847945737871381969616677282987894925928546705559530006128760443889075448078283035653730384510461032154944624822362633768997236850647235337051892792834404344568122874865051509783528274945085027634056866393748381118528872277912214381841514266342823053542136107477253843505982328797180484170954621666688916394061819804849325709293045902193176731344971891406473874025442531559851075295418700294732504097964195142360300366615388306832360831446583977632813043128883578133310393884374347749918411684894747218668400323261237222289855541378009698088134932319867805459164091436987809766353159467005393545109768947844300492407960486704969289840687393767926934104275610798371781470660866888042969929152305681010728292079813700968462042414565508656970105562948217742890089834813913386701694191640410279464037568520203879859749289203905073966763010698132725488811647092131439023783477928709097809153832809875395937212033478979483990940233549073753778722833850792710997900467594709867620253071423391970426803099730341727090943744058972898638815854903377818112943998023104453212809797289379619417095027658133832976087938430376672543495206568133169971405989898050333092458092425997983753855552147819569754263895199596654252224638806877548344477742957959963629982499895626331517701431931938669228701503178417991727284646540520010956992995801790449823022934416537983530339486929213692092806305589634817551964104282198674572413540654094534366579133444293838748323471612423765044570023161612515336333123304120937772872029832003169155550937476098126645604206162934577326492701647438456963880134155522414840941256677167459948762199664536614241746345380665550940359914258973429803433127892371749716252585786850918439201096278514839641423886203380886633657774384849576762414520257611270472863928588866216381819677615593458618892251827388752630266043886762906028196905220400556715486265406494521991337069130427636974258947721988242441630745736159218863647187589372274168629269374265052305994795820145648229702383925177755854987520751591578732941349150269249335777709512657838813281819060424510762241727360115556706001706041864300199105448399048903957989233921799822396746626449274030617245342999479435281700206205441170377350954953053770921112654236833962947502119859852373178305294875377241208918527052837455595613819493512140889809459110466098782316594978517592246307287107403569425610476989149426819218797178530284980736800384824044303158923006433609937432823482866578603755978012233420302038860523277343253754019622729737688836735120441313899716099895284199739675304185541365725189295148600060916672556293319647442902239916925142352256464682862453756298750760785762402073372738623323984450025385922116870491695226107559917994593417033895655754186087088382881380098810868225694278147177840613308677881047849401613321098099382777596170259442042199342039916535497532269923099717349436448417712860823471332402644166758014643896053696009622433256652861367496204466316692875527853999213293155266985926562672294051230808938027813510247611002231165889836141363186012800877850099303151788890367830803573741322542759073761880694603988108709218061460064083482222681718748798894205196757511794801171873092546481965464283606323991211292886823165831185348056067115660497590138190778711381356526981017718049095144329995057905054399299843954302795241222950068126170200104467802780227032872824998176658273898053282268277204953064941256903369446009953878018623362326088524842857360475750614831403229093277743513579609483065086624888486198803426013980092150813563446354325268733354817665063899148842959355037385019486089210953313676120380143328504803656476983885438635064707712815272352593541954433218593163867536549103778984852570876645482622590256348261692859528401834197381310747358934211283643248186197268605929467007085496270949042734641154061428724956135991768600040146308823847953842512506799237041457470310165482323849502284973200616738916097130256339046779239046161763482915480064045819053074135590527252384342510516689599953786493641387972673448508341966188381762095287797093878874978286359282436561833684938545991334954886041009761738833892044900251629301872803467298821433493205460345496884702098794542232660740010226018804635116014488361836513181425461264477191456149196296481704559218977866338541550266722394964524400131969617090043891815364673783186491660618933224382437388846241120486400345712182767265418008797529143071030950304776332021491117869626572332397556383386313787967530702446005281698905831418555940588994492144925390335549345353181067980742813882887803940655036415239598671928055388864428655119860665236939591208988912210000835412787971813654235590556998142492790190054677494163719736681359097226675380114029576955299230851623259590384836215755700426156684219611704227777685513507098753003389982366765559037200713535749587036901629438274575320504257058101123512668080176064744835230096086312938984132895961923769960867074627830302627296940786628381137383469371753297717039863530286362999254836488551308494755763314362295176740195920522772364524050287679430321499024772449938015130553261896621528627972316678214760085466801055895492266263372729126597210515478141168501315892549443951542577863050096404320225176303860679193317271999852083696957984099333439058703391309481446363913225132383339156454436129238908216112717946816365508341583077955147220360220686146965820890184114733388188972737264877857441980948401806995267668193183375099672095901118652848117803062249884354532837770190063831080546388068376719012635068555010998170999515324345234132547049493886604327337960561216111219679076116513470689744455862133363873535847094221294660525171436963363674077816568273582932905844368873420954723509882827748361121091498969501994186751229232349391538892155195885531755690056199382684623311251849755881359318689284935050560064218971852392134988158993017376439954599578805570267133148562761278386943427838381954615028804820595428951997861424800800806274674739295334295059329957399977345424749799254351007116474555312693448835080154655670994428480128530643687361155504828482965217696521860163163407183439161658204798722032255383918541100088133804454750901924585413410168691780778412992575971448288451677156016323755117102844918354021929493070711136198670123771085945648943655795078439755661398692594011789640336503661913724395140304631549387419564282219297275961576687380468076606984849142126462936579716379666477872165378679487130012889707745206791817093602053485370116941675315179052884131829368585304923428282039001609204059972108351797259039729222854740549899870190211061356161960977653725148565999495683547245976617448668116983992536715851781127358523304103115333692254349896127148608876305943033590062659759786107877905297941028779872052373721007280118212868963717422983181825166803690417207873531596321494062193627442001398938664334851095186600407916899059194261879660871569315100193506652367961527891189191520951851979616450098007779988091772448109780558124335850018711692810203191487527286524975432556211992023709651771325894702853420703672973366357053745331625458340448425127314330929088612388445669711641050701595481063879705074434362924300548131613051449794253137469979914000912710888576067178671644807419560326962408339902104566012362617147689965800533705999372086924386136459525678571414968007680972657371444867168633472860873372675159095842471354704869100754809282302128509437626282076292791384170506812360251569856819922238643496015571707005896550364548434813764605572924894537292236612906747077117967416221732479311441748485960942994942780604841005838150202338328403728826479071798345910575011587171588969230561131188227713734794794621625566190157937017783855903479056173027231695899899646703417219252634400871537972433066449892501024201531618472392265268757162326278815071960072476613477223146583207027717830350975869765042336858273483298569040394815644735152296197718414876751943834587891449526740719871699497227716845943812160589303624154642319026537837964718443838771071683338458607043616880782217020657514301362871414956704241311146269187020562946928748852100822911898286827719150939553171946459601480460400118866948057636025277462882677174246076869843335545930621130106393603624792420615038617559638413200030523660793823281551488458369063204492975998712915663716195616041500019758363490040522060689212217676463265057164444233076411115663352747279927827297062087955339134700702676466902811768697449787227627268364793429829953609155729223932399710861601422406614489964060114370073554209102388403990170629874191764833543707312934144306962024752173270506752593567223693629970887045451019207476879070802871848523848558660604331776253206390661857736025425862588842837905969011423398472064808240504056033568019699786655775533199325530065224359189994401217610337342359358632004273009930529758812248652209720065123676859211135965852263734436971976441013063766552285154811852957760700902717218418037993922566389160032415272900960823886173039836618310577406746442315135373477549291547197016292574640625149593108691440593774734746436906653200015375284545739062063520061041612837351633456647428400883210807823682844191115988513410869277561367956745493212653301074098838800809991507827205004777680883716552360211974970491454576932855486921180417770008519704950895732045117731491209667409657701450422241140012419857704696812863588481980998729661283387300830841428105460746205185979937035575988609951000442743803443720990318388465159680410453309241795445681505692374007847601041704188722012223103536702080341084389143956034868330300435095399682663754601061859010075149554866391421428154465192866178104081419852421275810665553196992047829309144672902413233113876918438395151006172285231063379216636811921102518814831936131127644534553692225146869357740381195718380837380871979301338065693828893049701486796483676210077785926691541056062851680474298942938251982899150318523410534674149695006310261458631832223056311908293565803700619582040266248677367992482038880143621596246888219847337101577523863636777156131014199154458299323529285180835249633141174397463026945049385113541814467131912080000992396302288280946211351794745052402203858256522444521735083753886308634821478671752730835637069028660608943291052292487316108746559196171375496686487040707828301248297766055257782859935851435222532263862833163285814907573341395799595790044703833172644732543359536563292603060372075454503236099362387617020634495239591190080471818213870145276837579719614859347771534921422957863631703218640360403624395328361437534600751908239660002320139234660524088384712554117198688971515340998637078766798148731034438926397036344711272852014237068758577082307436886441302969545628992779905474414269185815413310949998054525510745427311372340971897762574341280158565798373590443570811050413104329221204699849058607266794949492360112450000265418364752943366617983567089102612056664246856952694348521758632713033866741780906149276523016414629480943277225051318882957594652248252473153510225089025474748212433567457295566808624009804415892829812121164837353809577792444593814478711900003342374339161671681954558429849626290950360830530356446685592336657576316131865695093987638301123833115650608007391204546446110586701093414141872036513994004890292169387675013769453839184597178807266586684348123218577477586621013047663189855440874707885543341418476013622593663926209594999949107256139381698619189509055902987038702112516761551478559759268387816022362639563246640452065412721838124683330542096101905243267088277577291852347736942826291748503452099768665873636634666902765914151378691820405917938350602199879309235574361390905641328521764954089942483941498225575524810685819055236060691766672666764590751405627701475894737182717871116234603770812895534008457798338299880270359695963853468663798397646887135757456312831823095864718115356484658114970921067432241719771244201743527156195486595510154357257799902214921400360882796988158670184249399271630424206144768691708247015348789057275058766344406555465022649454413224089136539043023300787853404737609852140837189705152719931374893851121062491109345569279713844263819437720805314414951182783451071367297874007493007716366640811164123271424582533827364802158185855754251417668635607923922292750024663362405827583935831911756705166448246095811318883990800661839839552311827856490558396507886266852859227179974209028549178511761376850169296573094998299770527366236116159329971635811244216907367147098176425125822857201103542902643030148010261214970190762151651074117992166748309604103590557812529012836875326170402239070995497100700409693594252015181659491128373750680059114896822265003651909542480616796409139281386307768779603956949727642519061748996114549792976136707704153071187900488963215332659661847039400914212752924012849410791208186454038156119280628152329820509784138563568994303178565476427814313124621790027778592799476206869525883202511711924133064374172874499261012551456234419629328049196007041583210507574700416024739568252064765803975540225869600091213055850211993244496359039579285140354855927926262255697587876334890736492023843883590975409421551031558458985699366295462856188170947918468471961478687735509085802069422732325406963936416119055248562827082168900880439421179417018590091805712339507151484166326380896103811563131830186668152729060262228278075850430226101667262277204078942579935935068802369730289761913295032608485579625330565167233539106405075458747293277631230168598257677871972443644400854167819583669815701535705744900498535697435703443477477451880382765090472793691895900784443438245946368095535273160659438732373512565903345853662765793442613566100984100915305207951262818970795801277347901925550978213153925955875327056365804482359843280260468541694263445599946778310525019855045493331635079079962710502999192744918782889992712043885798488420283057212430123270741851834742859921037490292022664224544420941723741867590577456868073860482611967219155248249503512030043637850961914324655360190482836720783965233144939554741465081576746264120562439043458807374197970232040703712187267849171747539406995718107162808709581956721214702356020290759673930451045995518581573863642947026469781684658552408445458991085019696037712882594617027706849098571936185962499244352516663103936847645151391918012466679647520193764967800536708291981868182722242226307116899315816925557287477987739173307110423504074325725919391128335800516847734174656956817244112500092611578662837019186094917435071683084478661436147268004178035802645165836672310057142225552788486978641341565425581165414904590282474017759699916967126937901312881920145625032778197414328387032131640580119082782903034833764763588448796622605617096141890085648343269726271976988151644578967947117525834561420654638653347202529962197083186647764333303219702437337149227563686895291540583471927211461505522748994723858705681581640661424270394863852155154120557142346395666892817984772011713581076938453827220824630998990818612935205058070086887464692894394232517599030490818608407630992858936179741783530891062629290817969687429750128031654927986861147645372886854415025209303162016461326650142426750857949244026578425884286239749550160173748687874214246053136141142905042650094957333448265173284464315440078018928777753617173196538048659611143101393596461555432015608894779031656798364012578548970124480957738435221324002254588164306809703551899037954052918161789400361708141800016430958208049977142744526105142076427665936748579513032420194606131274282703675312533269805373301121176658360323893405585224165427802142843552963110091337342196485376636503335925729210862937518076432585067888835414819071152647154218359137376184819036397660599443216114211329618614461491628049002594336478690068580111918069112930024644455856397307052316464546451487243898119618957286849610355495661689447875527884887609907046434643262568889211534697020327818010125867336684101707679379345543053246339716676310075292577287504249223221252074813419566972080072338783555122049463154452859130578051427127523749733734815802846795271344875508785073543337723322153936606517725200168784518680798607267071144643373372983868577868118839567502906851443190903836841592448846379857392500258033625595863319101574572699341410654444181390608691233366041808726478182183520950633606051019057849610892198397312951869884308862590956035328543145414717432868751105429958255736518751559017207751217565151455995043021602207362813207674234914894111841068080946270251791953970780675041625525252577962608931130500219762020521356319660318213654226031880044550492035248749588981829277789056477072396544809155297234705858542293790787751759750083246974318345941597633895386397233758193898460394496363199269740645221723701731684542344113460170836771994081824970084700022742681748264696504438958122710999100480405895577128211317711132282009723276162659986240496419259510415419534298000331857703213240069214490979551203091206191235508008365141126410928654378902539493962492641536615238967759676334195552019337884867119557503027786566233477212352639602933643535706886089431012507676326012213934242412790182054820967173635778310615534646517246439561497074538094435480596953740929527385600160420509093120274499732641089490589271381919813928255239143004002674301427903100342741477900650760477903936819227275033895519327744030813519563914392642509006425709639945438874228023964076667663093833761776093974579926343197755996530826581182791367751571088781924018889775099414255962270516220064151129624433716062402938409693516040511465196342073339058288606670756553792039199184765784372392380430594102260213607508243229289248681526613188350356283852566433849052705150940379142753861528753867380424624558830946812461932277541170120479922503886029728885518408636986180705850437610990470200252085828611830100577628811011984389545483995682238673320448215737180610309211302316858823426485661368609999376617690684574155566706152705320184553674024846893149745646900444374963407794483362218094581890854071126394751797037582593169846650209676991955038728646687234710456612286863856202150360431230720308902735205598145271113814682323858507526841715137153215541272857034017515289039884504075549210363997464332673623676076596108712001480327609774028921200044578187626355122883294221773957053984755038668245709349551600516545429445242785730644931181414911737070987882416492338433630995203599965933655259798222591880509247924492813222339538087074310260166382892764140361898602303567184307288050798692269447123537586132310676220755126977966567918837966375623160281310605122537611170222219500618174297744246722010231524298572161756187322645586631984506472177205026862255521471307704996374422360833827509263651620472543435529839290796116480876317364275827284998762098390407679195792164023520923913016796449761393717047885084764346549270175203453530601626362842392698616606585969676980803874527348902274654675951390616523176292147759055553663671123719940345042009072869818810450852275581650293386446655156438000998941089089105338361663231017808829864500124474361527812873497825095019737970159158815693357495874272260213468530686305620300050005475590400485906371379803187526179978189125430858100209220528728167084543023405321259551596749293672483218003530202506524007560830128281275169778277462503688795160467039681869601045011637608059288967395593322559444311655463194325876287940836621270032456870883622655115782462981122347435165529948817838706059591339717313443986750820237159389222905260383717604616718827290057135007063536167273387200652243726592004656822228978630472362576223317332175522544910710563269838918000691023286740752591494461933800177894790890393331320591868741541368428389311991356466231878602045673573845384873677927040602396120631522172214693792500219950474726906034280984518885541954583995526567180917125363558934543967490404549689507384182494670738165773988428646732762176438004717635896157011845922927154963767360716881648554964174783772869337287314758724803237778671741283209198818865880564327439808194721729203355161082922898489072138358501209124884240321173098974439489678763728310968507275995024159939574184500260243929115204705907411364958958461172817641648737935181311146314301693292301792317716812060654856797105758472929949774974598598695456595343657585019800794010842579933333004819617861065161736274168859352171051560553620284898618357765122634341747811240320224246127542168418218120914685713637109297204298211519595415699144158166692164020854361428449533126168573927152333448667857756028463765763060126722263516875630754065939273472969196921309515713105349705620594274382201140119446963604373611655030222286618094342022612548811543171227892545981336138970177590692114051898550533213700241643305804529762950127803893605264858482998995754839212962040214966354526705145723086861863489108516438425847090564441143050737382985060620563961793620561388020772100492443899776555508507129416888809216521528494520696428407726158482603132655651245988633635100804498969891028737185646585449116891438923691031401417003676916604304363489252669039883329287579970199446329263436903319269422114849690438536605093672717005501888762212816661237344534870930900458790215118444990424610788759659090591561946809884997796021678526216048851627204315828132617271483127881687979103368171143115453270732709687586031905349251415737639035886825251505474813580536166359724017612566584483234051507609691460809882802486043665704211590243455980416902408350487823144146377965551442677147463309922559825801748699589415326540358576039816148469161610560383046676887459103693885817632328323175901132885001863046415207939065140156061109386915433669015543476904935749280949735704543016898618100325095315657736339978780023488808757745341337304252679718778429351679067671570928352918619670659497792620805626068728580195099673173701722322580514925194521814519087231835596497909011222625032448554115790712634229232165993703287515852910124168533348749604930541628272820145185896861238321858935848402639921337866577327747282294634809575107394295949441477267520874022977792780723992693351051326736275950804045306331716092283645141984670121152231095101291175505546204792093657035143478169952684830018376786981086256157422534721035282850736714968253759875521845893134665425212971266604201081164098973122378199479036726098242771375383370732153002006371175792163619296797890569674024283157091470481397396932175820338323159422110661171860821682033235180708486573596233464270295035828435019059161787269802450700417526635688447128858153434714725661026923512067949547370082582748777370531412044213935173641805088416654075181789345736402634002671945990630780519174257235289824239435226531459644850661826300666157202980830384771727078018465432088368499597575637897608860421166205303200836059543790970672536623883589786885213150975995373096397196368298222478139179875364869150456112171151737610984320159973221004774285352599947167011945775944443791614535510002961531952385247658979266034749629216832454223019092746440382630895905545726622633006021552402916501317534071676441282193861558291001648888546387194137192394999916202874859336968858856256381807231918794592877434432505436997428084320092680942683217134647954993908976578964054816727951871510953754121783474689696600699335268528598488930384079776182926788540661064230536246386987663352016643907147499469366553461431081533143282385398224133254306771714582392197604113229206232431467110236272603532094500398901471843931588945624266070029183867888345857387172014107075905876510856202592687838483878759924402909321606693303011406908947339039119363490986631159405053883262907851087346143078222670749529233985590740951727648637189425455968622206896327660299917216623752311179188734281489862402478792588674354549010230143620268817133366627553350658213715545402767475936691772734337664420674101881239984438498346734684214553848097073337961704037403415089569487795593864414217485951479785132096617640421670759733436807835428811576121602102879951369695699170377333571160916651694345496137093876491187034534681853121797543552593220932674176344920927249485282780904219511754965414884680206177655180106698176855477887669454848968714166018543110240138062054537539802406375924833322310851892511531629333383269445707775203712858963733818784037082905868539590394974769835053148999687312068333994869343039268565028354129076907304925915488848288158822283540625188550552479812915833918137304708603374026785003799491407834517142644312406055531706936715744403070609236420971881971863455693241583493100295503695555523195425487828604143946755296389008093213969214523481123249746316370208235928060272879285287510878599029657821339234608649348231635029673555455754464499173511263183196712065916788010188935957690562361658256093855494786049400549989656890362735760837399771752717033721543794228987124999324008661574568629647270760572203030935738896845715172072296286433080922899097412047749708703031653080035412801466232295885976561122039160199327127045864542787592704699822064963359666414869059277544965880933564123399034073180373405456425496941291752302335987338790304413090640030088510819295780754434527825269343072536567929416690079728811282533306509723073376436224884637575918149738889636714580774645002630117798112371481966121147916285724489251602289349699989896549962524915914549887008537144868508225995885635833782311518135030002729884523382634978727781301163077435250698591703567073458572394652370730236022571759761202225560538046072446976016650282289507173872122502624231966036020072617995756379788983682454377917225376882045562981025842960507559625074567260381664142657115055639435618479970567412579098094968984326397821173409331450140839078474176712742511040426487458815681272876629629133484692370818496623723373759709919945315363247149303244963035015276576419459941870229323683104083289219224517299729616765881082214169292629159468508983249966379622596226452469152306361609309042098866358768315112755216673900650758587545119922546604308632574396246374357413852465887984641556569323744439765222422196607533505690346224467636149151836253749256446838159011826151691374290177199569019615290376046699884487155316642465664017058907363662115482122742707440774977240870483231291723998237875517806823029225634910060911303484465859866338153616850536438897001965868522978101935118299722107097595983332690190399985458659978421888435780569879824602380580310906885449699347955647200724828549745117677754371339619806496335717254138181984437392999133170005854930140213541599329059544791703597624337297399736141083735448192978960833059605778747742403795551533528373180661811530415733852520394409129388295091042463934599873539516542865921114300918753191497146237831268428451317453092988005302411029959486750893434734485964613227775739696844520114843460070869052891235968758606062311565247776972667597057999470744038636167116093893032992399752940038915781441160251512271025509055920827653279252919298308718177437742506954457719341172235587412903550208733863744071730526493161919757467360826738127457809241846779720618198796300529066151505920909685041184115493585875735425363875118516322388620291369454250163724843460478872592519341657578023411513743307236406329248377631112628665342062757861720029101157873912362621900028545645332909971995151992659953174197715079280512440091926108433821657974421080940892008410079997621560456495204681054064109300116258979864483735244703047901713047897958084349678328739840539180410404190682114780385756978748258642380462961103056411564263122329987569221739548932105171667901923480208425312496051074314091242213007314411211170972966961842645108318383662007881799752391584028540565650084477936553768340036823097643777395441336382908102542491847762983056594274837194924223372223184418219229032286961309148851735808262947207485756469158423794729971616256119279566806317817258384895367154742337263029801184606153295797273155555421431225435146602807745308862589659678941963915658488354560801828339626536630368122562005026391124647856001391651228193174915522287519562817746487394631159343030642232804036056084375179123958268025661650194031082452336924649818326829089961306794887393624622321541102297746915173592076684919147501189297205154568102440632498461184194371890753334117768528282869899204305908865831855636781090857702997069466518902191964790819980356265539704126902926187431097430943298073801613381886420575652027922529328217129971311639438233003333710707859913729380882332237380231819175997157993207154094602910455279963700881264741023575949967883561529800524972522295091815768011366091918921160195385104076481292452392581047753752170312317769515542276157628623458970509637995446270991903855788188241616486785660418218121717055324953613953784749732758172267434051001668515887898287096549473757703684556533723014224132661282222096182247079454502818288628559868233022762256724588219543940337521736410326983788358193790340528881654371267050936679747438501720412872325855576161024679418489467621173861571107284161276123620163115629666001936500445232242932667871979912148370806921004120287714928461772576701558980318216560743700891492289308813554035077146785893943722342371392099223393356707749324961513389104350578266156218491286796876471187694272467295606415557578399575867380541906903899247375640912937970161706081023949392163816451927050428584880386397922961696669989895365466332900347284505243076088656325693970078176245844155447987857954743451398973063958744244503862697317190738286047637038336308865179683041975332182657852692121213068783661621052573109532240859675434690777685219220146241928193916677200318559204128637100281736331593606060980217983409090164090467664696805166283035697083977017145236657755728882366155300688732803332117911643123273555928868905890286330947898945515998150060934317008641544789420852926825849312770451203284792886530761519322774931442542587904257110786584645124829669247204819674027634368253728547128854911473562790187767669224052215304568034574661350433065606666610853637211406106835475738811610030685559859433493912620213819438383489602712176424429597728426949871522084757551460908100968317164699009550626441028320383461659770575142426361220258275507942375553690655444964593388129409087897230460793073406836951335092690168562265604850389902831321330630328159298337082848680766359433790859763595890458820379934573817331182290657144132498006662857299680293675418045224314879708107461065209470051125147087189113344178631937213956146408634709653770541825419967046478706040319397594242051212350800319407692702469850273428280527356294897985934347879213220743035886462265851666907079735277493592607720118783192645247036077419341775115325438909654652648278045450435469997896598119240490060200438318393339568926678394669011032028225677147217129674533630010283361660539813771761549220060243662433271083578475295981316669712919179112769545774631966657261605738925247492393929788143900274148934045389270989067085602666519308426241184687870990327455099050525692595111438811987774323767431058535636310467615001228990688812167587709296263636189720859209287278319532327484930149640115109873838531302980871459659540206446524781672916737521194467555720877442466880383029874287303950004498631007899588249081564037553883282511740828722754560434462714578573902865998964210088559987234637810675425224034673346447482745994647654268212465994362901856550089635889790629677667113727651882910314076387293030803833777764120027714302320337876152372387383062603005284516461329724541439401240581302063527990465620927767141081141472802573079729003309502724907794134136344707569115508689053833831224975787835042608989339182698159223916000268673507213746099908743533172052132090297538253426444127278899620649463789569764368067004483376610194236502834473730960563105889123556230564946626796044988158030776103340632102821942575713662007377464567515723950608344041463606255881124836153701540892327961787617730698666570021959720090754542493976571073126095586736354767505275191745528992691063899913231785522624333558894894870745870109292942461381167888874898870535612648613351449408911837230761551336820111283357073620561449348389971096703887048778904574479772014345085260218407118514502770675071122776512043460893700517669108249355430456881246093270146987582020762513579273731864060379975417601479312994057880981239377133051578910013704000293996988365161512773627291658456683448190607644541901999728736192083266134890669263511669811902262157963442191343167354698124750243470105844216079483546726028467586368815215304499029952078938874147657252781612285458587180473914634179251384684940820778097252114410357348746754593362654556717821240788549166587120673107705111818964412135410206492412168060793680445515623110981908350097282489045362914693829318672779745612929083662646176717563576606393914808822639526632001504900513800674097866982407400109730697307010050710902826754090469244601678222587074662298025921443408099756556447365736714430091841517988370396259294970331339037962740277926729987704964553359347040225976261881925846411400626142054045348757979158765900857140406763723670986974818704515314864901020293474412279243275615953633184482972687118860772741942054652292330742984895352889628461617327705283867459633847184749101973420291199323725476926656916137045543746533785581384496444774813115987650749156452984680650562525849886818011801220554622503463129196918973705102772700377381433902888440116696502740540736642840591426606247548740406658324020315202576277549960351789836762513522406091971908252100412889860670106140910994473752042290335280494456144571316421977764610417000764342569678027682212860539451994104323028981241454874401153543516777493470089088577274672010895929954578827023378714548102184436721291504508682792921713599974666193147550065236123147028314524286466305046833201265761714833724387928854943002608171453712692523603359792020739216911569057090685917177925748118897539766775061276257986923864082140576265735952087160936783103481573575374185096013259845376079360627203793235547270657204119582574940637469840578287696998888261952313250964511344002010816595234660338554401122181014793912109975012075135168815883361930475761321673815004586605603577221938820257997498709151378529486773048923625424788887880893589690732964511396683701705494387171780440277573815239929081189581393999281744099902916483167441984223302071491483205714137352635257106634738414156542579779941430923637933854363338790994324233357842826145169078169039718020844245867246923228006079257098147549926952497819745922347768351373507412231421697348810712149179848571162227242291321690178817005640714752434301667737448400422326570960466028525599514373058536320081736491155011163991132497902093582297837638919194345243779068612640474210212610145714962480481724164019615454610436799875520891217994288017172462286053486210791386778658407523600109535667978701286962522746434242170432362716305826441280037575511914352060844223465447857221226318745775502691787737555174911475255814853652965706155445066985632041044280340742566331942853280032948982917091771980014035750621488492653496259100158768891390680162424194606689561343326520414089290675085549358296912145878718307873045383147597062319967667590547923137011994991479810774844828680891248134584923513807211323823932017115966165673159315596248978884289913223558442121454296697868734639742717208741443262026442072788902463374677140047893656574953381064880505607574049298146712510364906165793652803320098799955363800465815109115647282996143773718139232303300609092596966388877451698273705687348964199548754213981021167249779444442638255749595819133007565989164898924251619544427098968550564383381349752751045324259683067120130448958230312830150284582329057070599388479607135180769345110313813834513397044965563154299816017871827132490371842371665866118908821076651620615602622269435505306863441681030712358615170058945061407361032316525985502644320302776976812176279475125136523711730315211128425317301777234456491088683722364056089665379072226701458506081386852349079975887742141921012012690673312629309297113543918190906209940630399823762250281319347917408621783244968683381010128634096628569933079603836452759007395973274047660163418487722193340450629386872962911429843856492715451449338874678310576950783853037971992988289436719506621149383157321917126820812599056051689620477192595509510830010298262062309269007633294375852250464704326455577126131164236827919922553466053090434339128701697174828062147630032914116618609850526033723720970311385183179608125672484886358513733773541780560446393547882403919653405318228673834969202270491818207358714152883451628516768103414509086840049856517240576761515483214238175246133757739476881598632236970336741746164380861032222441290397617232080936850872254797904075762235082571116415620813871088420826183267070326200820323742065017797361284183943980476175352894863513002948901937871243966307103842157161914144767867204647474015792055768116364058020881697574576877969194997741318660445264905164189790152116935680415970912656280125715255566183854281904320772172107488676354241277162438671371908226369334164278918720274011270458496034350126384534884424094180443108297438044117322112304956000637822940962375749465036964366394945606433875438852398031338721843496674700240660926233243812449302404760397583314359864275992886516027158606606094613976444942212386369176778931562192597843350856719807915766147722866131103289850311997019426621920865915510884042396765197616555084383385684056148109430477351464693835293871448218124619065009945154673834148985240707093389224256963080411439341639810384070537558468774347016408327520528790202693050494259215673559515781805878824791714768154378699455769911346909425235456717400862307209322071221542818946847725555331045016931943959721587620310858855848351413635499341851161425439388143381503664496122208810175316281746231514050868101763430510934868605010189654276123021833460126546251331575316838569954182281790118187837462428451317112588905917015417329701107340952552553091849106308611379686327902349962598670042660729857757157048888849776685646670843136842167123584166460480250418719973927497662726647329639071784639864590777291230052199445900060631111596274901068218120607383469707929588039078423348359181867769504804457168346230917694895000844428701430776986873651392168289354833188608723163964069484640652223086993732213809517510400835621421899487956795693954818879157872212568909258257573185935354517712081852990797479594145648556997388845323780455140092643831243465001455578490258861376173271381314731051879112918150569021838276223383578150142729800098342752344164518068150596748535921713320076839878781641518053079061234506893047863190355673360025221905296454175181861303673975218600816669865576051545484191014796869904508419229243444435514489149990374811668039262759997888902890824636383309784428358099482747902940134633919783152919741413654381702201992421202070914504327716098788840447980007346731444606700238940004668381751397061418439054365811741189806384129670261855633075149826041021644205450960112570482795169544014457433837557611701627189871456907306844760881355266159793494956158729290274604137233067072630072883501615838338646731008067011933638208074072627803665167541882631971181844315645296485405549052963824273571678978836655614373893105907220633689751557837844243980762106590241733212095806837320461727885497115126276303023905544854260126770460981560773784820105565429220381659547722465356222785673646350912244982650115018572557337638540835189114026049044344156368373940235963969620081787079879137479421847721659691229335419708693221047192193848563819571335828326976503967723281755223520877900207129802016605661521545257822940698094803208653558601897818371534187973455219292523215421835082521974121300884841836686202737600146667625605465633309245873071582340789542797270612419588316314958061412394840568112036132113274844556370830915013358369303141128383609443753285200939834615168685760110230135042714971513705796148108345804522966670796560997907023101261430292578063076814258675525579404102875555481598220289212285996589752626837526558908430631285638260782583550076890824818733316913991471020927247221744934969109014381801497631967681463110113247922561819244947609306198014166644634908400955112786835613323338635604304006392330892761440611495026068994783212945533535730113188838327096021990792704520810727672439960666901810347964883662349963200071035960197857754283170540175188879440509698529034628564899970004727573041219945803991676685841095388641088465068079699027731866088017016968678661472257252924212899116886546425350867854520282802287715837897090680416995829250662777649310020878733456322285526969180605554874294290715657734025023155498166194080132868431286499276804743645578371019893781124138537109069698764956552057639653978035839751075216567480825267989784129280810123510260570693719072949020043021659864282323898111355698950700541893115102778549188502242602947816431140064985922439628815518344927062599002695946341454980194955571646016192798747442688020121520527870089927199217972775655204165081878963755136377236764297568690104018424566128401367503793558211147095194554587604537054049926808137531235100024513167875855964889298259148057062874945795366366597822371142151210994140276240049971111340999278831370461540943836726612895920793945612148044740024739064208186170002590899333713662762752188658693586497651581161139287968242141683447845696058892286664368027816748078053120226573260219666059865478257313874501856426780265037204445132542143540807851654006652446985998680011125098610164840089565105401985609283696320017504104363381947400514790367734372090428848024826535381612304968548784888871943985031007998552801690887388024252842599785109379704078949276184664794329116067231710682138500598438118171494492312881446616365410245960661303086240717157886905915961856531141521460615100305754251442293382838936206690310841063329535719428127011886163096458532661562172192587219779735035423637241180328153350923642698016992735154883209281218328875124686023809691998025558423209887663591557918508682848262621138950964608127396528182644494665864365047380654026954746468762073577254989958742087233938991159676790548244161245144911714765965832693170566937809054564123857042803121788807958057017399998561057448642388908250694744098460752237953499464650187045308175450066893395890508948138590307077620130931368788542570678191955658104921387444200186776765058189646944984758078468860516922487108549755389337608506894074143462705023207570669079656493972383395966403476151750453332365941021602216641865335500454504197119390717649629790097099748827552767629825612268922436554906095659626577440132493926139809393361335604121278256684319826817886001595075108588390707991749177196060574565136648840188367887750612932828106299425220462146947752495510604789519092931760433843186400554153424446056478757842218211136602260041755847325452638580184607613155403674914731041309686454870865873039036408516525240141938698412784527301860959978914975874114089546068016433190980610183862882256651799934850729905570033402950418588664114483292765892124628603731414696395033714391938522836463519255824396198556128419645728469581342569236278798737054905696091334347206981909102159869530797672284373550287682846068025952043681346803638871342841961686913187551627878809736022840309121482504029102969864272281870022406942669818567856240206789247616420269647613414455505963533410870669909985604853496371435325294631766056918495664840556582509763790939787551363447454919092081245616831861921355919172130544042179007285609588175291386762742381458726235497168132068868209384026806271426073319273616182179130917101472913791436535746005908299227180766269975826490006896823425887372811071226429750765646270301250817585607830463550648677609799968408739832793850984354793056299058207098361403993407662899914900922066822346218924655814384972016513644750581871179186433945132878405121196552643865925237085796530428471134266336655734776146599953428713764562793311339019487572467083169746291920285181567830243494953192042347770025948998702192295675992033545696051009768407167248461169332001208892162076687236716684421035264434888087425818591474737918291299183157174685561878258136269517142125199698307389915575760918027512462145875115363676839911425259469537230772996759069258586169086506629369313220868166840433227208817387511160235962501578204705191549474462619926204280989786979540331689633473728147605523464417305136894330758391773922853469331019146352315302341313233099091263808628877937472425299811270486805333719857254263125776522482136769661389487212323952414799065775146299336633097298801968395126271877374350261595908486347286142770406730156578205029931415311881381157888343321525005784402713063557147402688651803514058526885490188665734262742264238252218873893567030740108501801691009129201860461765393000252360459163807038783136900525456033340392803557431060201779292378454625202679275413829294302058782973325331258603913026474257446893662117379929148917198411517490163346475586945254814985845254589061245627741519999897221700648611889039113289891516698114094887187082127435878010315035880799115693345977986237731964489750631402636079156287307994717172754709287078356819603024621167829141420296049896350204492633579142917404667290182969405353999292474713498691504736959458547387557418860529333523598203910157893545191042865392151657101469117026908156685307463364335531814418523947366074383762748118956148909503866918966190250040803276920050507606763376042152370247450222403846461063183384910825953859918565381509916970737880103745998540905658650312372906037750920574793835498211707532558388880839662478298901851140048335694817349115068876454854452488110828864830522733530609539604639021301635557959654552542977436822454526781807130228333489584735309348403221200809286479355305493169221958823422021902120260526085652672132461585062518299608608216995357427395128326633161294503338394131455207629846656772578434611634591967574496680209773485460489288847848909519902183286994238720304992038500696724921464989459553928045693653753456370519971139037059066797367169394045178319675315108635144432996551706691379883072747063851927683153586105978120215416591195170700435550749061328663592343236145813153086414308403332894530344547633155189276310030629002787703530150829987099603474256691973033784986632259561741761401830691994874137976548882572113535561956046599330712661029700640864849350130122151413211725663941258831417902541763018029379441366342098487982798906206241555669230224832292998975060575936253272839136485426279470675565165370865013724626778443419977508486492378572755686792275442489055473052354150407169980155954596433468505519326660134263119766121924909389943083155455943458034539736909258708172907514860894306239380830918061284431164004752512124914192116279985777526718662439674617635493897120695310951860439036925735684040188638897667224874653661301776423413286980061147117471495474629873378054717023330390672616943278895566069376177127242342126381240647957198154432529090125914187107772582333785972598103675009611136390985738390923156701645810973516792855105017887990934060728710043412512850679616368672130437189314750306003815957685012890609245681171062322103217745867912802553074120763669312171255131523708374850755774261938500302495925721083050356765202777322162483234662301101197972790886614467610342470884286929008672251019659422298050238887098651946426376853848800893483956341697512631981823405725529070403954138750326506784746893875019289539750911360939308897306470411189143474041026558373279051380847171300089189019036115843474711411695211281180880989786465458712070202322733780090515580154556680724698592639420863168220643603632693180180989319036103363542067866583691016104539001478470701048344207720490177765898534653349861389653361796979913038397847288651902813731097296909349401427167204064565762372897860315022865058212107109356678296165955294584571889649268285650174807867040383454269896295985677453938610544736219707593042994442338959797084395982576979876983671606068082371723862514031782649643964389191877578550031351682941389554034498360739264082780147058204365777158849341781535101593522946219688988095931005731276894921344872125941600975009612795736427100102320614148233428161359940425319295833149791221472913300576601792080966764087234510584576866369091611714029667161093035500375620597744354875955626610449478042998578170468344360889617312177434399493538855070033644641821683575698491839912995245856714807726613157389838211832747868639912823540203424988969963580258214582388913572672737384184840437879877893981114326834515089368982946178067810775521987879206876245089800270014688936731238722262745616795828222807626011034207014868075026761115952927423367500191841545783252530366273820392408219246433245964587583962861550606664742574521347866702144064928364947347438835393067090497616374955352446963782188618772912677938972344999856948657067437102224523480381417630175098110845886188003692976107856726766006026860446222243144842220982233645440875510867615193936823445869821505563098790568064899449815594531937748969166597958695488287361894165686352604698776434344780248424357132031990199558545348226727231600767714782586226877656767046696687341315351068381174648210929874580943546154213724410658055028776283199833523904085568430371509188409834226165335410998608224753921758271760031624566412686839638907907609438716484360500178191813722415915967547666297360489736614291054852891892275556393346186601715754799120938642568273970170173678328641441509017804707016686126364316213891956711444143530511983621454694944894442432352885822394359667953376081011187245217736964145914026109398824945205573352940885954312952832413272598440452013087407032538364557492852403936243252461395122921141532187865398434101083095795084159225494270891717416625363103937348972317013021986345713627503406062226262309193524691247284548567961092870731787618001974815567537668800942042620449829030262022737779976277965043306926810303371020346821035464156624851321640368992726801640012018959484767007582181492121923704003368671315198063389738400162147176062169618473415649644944196656522246552848688360796819971102673499218811031853603547852832737864244031669667394120126547525563423792219438636805427418162934227830702034444159476758776771792800400351204526487344849825874425179046212432721428203497356177106658874375916205930579417786581054102083862432951718474166780978146723236597750331342863927876008809971014163878070798011097966181660954461636058552538861410230477259621071425975321655150698562325983135527228238934506954760586248776625900807957867937184656009918693190626147849024766611580365963890949416344391883109188929942709920047486920392858404405866187470663105898355034223270221832396720140421503248019888217585590761191097519977139469133573660480691905233081610222189451849332364082230754685575211715811923770138124340506373859799569286386597999627447207708372830335178513150103974463423661641538380464581918408693672222005100749682581254315299939802398027440475588827347463882083978068893210446041088037840148643702381263001805656559346724715407542791966428598389857366452814278911836751744974599672026470360099084395464998432575305069680073170073967828137751900016076629145094584272456950891956560392791256583155823918394094443405959501573646068989127990626125756005275626860905114559765982443637992257247379436548596499946775656896720346174888346518370051950607615067257714327996592311890482317345379174263446413799570594387839255625682950399003124681518875924529977153531025565366986565837652614212203889603787169617879573530552889313592029750408013822108190928390131743447220737594854579615745561145136731377446864302212873530927609455383359706379754132501864065863868088929593411770274686567436618417152856325653492297137922152513257989839247923284926445029263312639965246570846775246632008870497176574552581690081070513111183193141403242565184018199679426779077550632261734196291786450445479516917758748103784935837976993014290311678172333009997618211820193658601145034895481372585451992313148333419848695130394335864053482736814422285306914865735038606706761064521110971269278449425812456590249780608347800112810136866948512545542460522756438249772104779802123049981240802101929878571125331140046173614536357389880767686421949682930119247535925209742348506073939982398415521681704676549813370363501412622703246806100799137776262152477133210555480692588697561562013541409626125771682942722194287453975548099088689499824299121888117212949620634816545047206296259785484539495860084101112338571128354737728284666294712446453023350908604038388208798317611284993351045861130165481590095266821841627270926090897779124197480634186905883927468225160267483525799187914240435119182637444436477013312132700669397605380220228676580252094463272203655912539227506300168112471368275415518805810344247929425536207979014311173869828113058914118771891109432679562641957311991826017961696342662781878785510298897158133131958733840055784813303213762839368634319983200667948060773261722209700010862320393792144587026721472853165948707087829645260323171069547853055828159158426949169626725864316099545708990068261157798119701195177999421347111392028610268566888162864470219744939158574054579894233627270156341660936755358236846645177384655988853815225665966240584628877577164810508358269512628727226328026525825299654605643602660993126682728819785141531407558018176338273852067518003767343411557798463980937890514623505275914005461164149757783100728797727882625055623022500656658087855910896657396783742486073068466030450087252830494119303548544153890444727133781428088504394500029261439496677582582429958332228006221377625461358458451270800549786474647305116863267550543116711026070953471766930672724802169645415709590696354452750335444496679955096004195543190001280039725413603881292691168884608801176412448828231675353109982953732062161251612604803577725202601930500208786073442353620825233185376309620975833047649675277111473524833111672616078007708785492489740636282753982529564908195868103899017725156611171652083686999391128645514479305491848429284823010706411134420339026984169042460208019433676279654447984059174296085877018553919275358882161846373334188976057264193669541136124612124604272340384042843006475230190907384139936680783856845302364726322848292972380624654886936674441546061588802566884231980280789786745637033940911433836653838436471662012660007988920931912252740568004295676235660080116759261209296639129322000570433902236153964663345365626634426427475808135098304018657147310168566986845620128803780805206580683443246673889997298075066911947444860061996110219820737040018203470526495067380455864209201005298774133156387157661186955279031305781602310456417310203240156071300794299417107319333732581645140659602607151866424661008002423362387588589781630198119353820165415015448753030273170107358977232052302608899669771643362113004947529327889772241236215737955114239237701316907121462021719727317011847401991426474820812684954021049812721173094812262429981932270648333199327218825986003326883050123152376810409715028047555441435646260078005866011981792239625590962481079652164480358374609368592348640995706385676466304330806209196720109334833348519154285221062943006470431404153640296128415602988764537119398125921711150177002424846494934556113882756786470828745273436666022177437231448700886156477474711124519175560712101497176135705669811868195647467121797978812032125428365091569460107793940240013714597197339062552527136910036940599913916531194993355896365666835053261146769236980896410821934278724777644791439700842837337065164579014671797385475908388429255354942121607614772697045739886552409106713944428253037139839080931725934650681480090355866417413942186344532849236628903773035795386225126750386172715623758138777159590021223004172555021918324589316775720449349820660660438224706427136243926657771389492952027608414566834014752882919540073747096196713057126046812278656969875446507929853906993589377433807569440558250595163826095618627463399305267633393650147677194422330491824302225655845842597152674075018472726515955204333153508888757683864085928526276855415035402673443352583318144961324395936138801579230124102561136260092977576724815814671015587178416598111150217328586030937957977022957787762657959300070923006652784402543291947564550490217079897611584783098162145780628651314945045695708250640060544429787338267012066951001909719013142590846920599749676463639782211528983601165131413872626459698328312571343596681810718820059078682559490964533678898386698806403908950131323056348021520275415619616070285343792838028030839755638063454881382635624052949283366801402637770790033452148913140658783019192876992963265195741880334881879457965161172926267885951751815136118862793084450818918237756538667543131515127782478176456420342852021620351216619018680058585540848274611221163672440022299961453876605498863960463262730800850493304798441466577184402214905162633686386285671512389690066165776866646585717427161819944119163810901841028061768692551530432748022610564503105304497842811833993856341382525563830441994678196549587271131083356095338405802626510802852749640136293672074958691793087208722231593905759669937653905190571321341264818703512203630110150834605865074193760399835055876739330985159719044266979805363363626973510794065489874800058149841645492965490085400515446661612535009529638988376881861127703163167460214063767726435769235339234065868171824846067900557054583350911438453679289154432727131010124368428306441725151237899245727449840182361210314243729344138538272526021836084523024113356896112200741883461571252535312148337535708374218056914665662260999783852003387230079732413150806821571739876218866311979245113368320815729173086837131095729670510594548721176252201168397047985216201120500651806869748903531795924933704949550210040868997223060148313265373941444082786816114758869703736892913582053020434353466271819892635331840439342084825604990958014939117588842089571257485575265697069763115598888163631712979192460163120860303109211001492585186009431030464524552815428132829737629787197406746816532200269619959804961721322959984903661198869610405657155787655603712727577732026076861404951525851647451418262883172479803944073526331964823371339678211289049830527326781879498672338366509353056183910281351987404786246005330630154310931253243062649029916820767609525229043134649131015338771728484661513814864269685945193861798698138452399256290559517952354290605921468404421279400528998621145632070335174902325070047687178042048981943156862895284819621026967693438458466274292832962896641814719349010184236523982043398627004735848636951821532343313045998144654626773390689449114019342717198853389557509233970775958335615754135581567098887150669532320954305471868699964043215265578548517936449664022109071001954416121781998640997760043641475903783951864367266752866653645327387152117940160340915875289446762852081456290444891995600169084255148139742356659464261771683981690666196352491193426361126132909852219286989212434830882704196344813008719346781475876478045172606174963017819703518415404096474784009086038450895591656650900136552128252983642463132630594759044061332722335564130197535417538438438828566580928604219688836477633201999311079564447555402272093565743747603918140494650297388521901255704983414709485633480420823179603481488767812463976238594058504760436066872190449161000018259478873817877617594873899159445438270074525133008142979637008276901114804402271636423073075747576530612596425827066941591343807190509487500554059670065743843454184572075191995455128995810170946941111662658553655379879991631135241067311119597696140350040399041729344331880041575249072211572281046306368060761368084964623299242146680368594558158970579437094959688238572926336480117532160970460330217326727499441687262039027272920453030876145549222744057964792259613026324642293429873468897481993354991623947153299459070955881418333863969227400540895906290704192336502704251346745238545070715674151300978168285177129142116731530012596948260850316128448117697542147624714035199749681351477881067304213802630133382543772071734188330758822852164765229460521633206082838127285808130294252257836288737231597951038768687630903955595433185360991889173261470005819212170512746188348153772431161924257094320442226083887382756083420627449326957500470956645890944393425814312080655449399643328434150614593059078623680180444495667885175193793440589087225310351161355896213333360818024260324405263577292997960886569802602557662779467760605421174094413561574134256514957672217862249422046146911900024261044674533114699960442192743651673754191383689372206301220989097747920055322178894527665089621052464782607793967636778844838513311736524876457323540485269307307796045942779460226173187840832437780482290183411954910064490253722688851954784451603573905927676545598314741197606342850387491557434139865035880844735806649710054200274762950953327825509583832123859204314720870833860971397542630577916507588672088654454684685429962541378563515077929796305444792834068355271983082898658301276592956762512282114301289420894996084861320709036710615987282728251443876458989256520745555503060558004424609845394728242888328830170273198976741595002605709221488857357201315912085502226001795905049679123224898998670316004477680431070219671084983449270047341710303024784861545129721154579762259161433228650626898854759503585426450295031485665006932490410325236867753469881529470831205720693144017763451549909307027170095874258060962771442887406612678271907728311590315935807115672461525119060295730048419171708624612169484971376676395147202377041961880308177589673110084559313457545844111260726766163788277047442427872592841928157761062764167759047227377551878331219675832995746922602565954794486907719814373502672108953439210053872001359970846920389799293033724766514813111436229642437577253261526366661102725307269235516337958718393817243811029094349104771182751058338500511075411135721715427769977892513799887158144204552053176017568521261444792084530436325315906903011759706693140921247431905786525704927991374622586237710676175308893707444567594452357618583630705283729977666636779215665318168689728983280289340215823880144278963048508136376637654171109706798197916552926686417416601772894605498633865117287866750537037164923114923829614249902227538772680543952747806619115667371736250360049093612637044748641201862775763683638253536148938575612845714421987690771120823184269170446492135237970690660182561178557021519826519999820625086646070589051391995977492804610264239909169477534962962870668678766894377252459737997887863973752554474160965281917268176885205600934174365514456581269722197693247951633845036490921583159679133585125740242964433408632894191400188388602832179969890674866714946028088831753988801275408383628916709459329226593663358399588559244687453612238749287598603215851357466918395313541624536172387850297751745531360147010800717658475990781563441899918080040808054031636038383736967846134068444258582066742476540988643513984203868378048012733387483284102793000601920714201315827127942798118807202550507548825799619395088816377284482625753340227662318770066614350414207953373746460138005017923491823991850956205715614769873364738766639324889291214127390412818080777847169053916113310693923964971360917892977522260109101121797247882059352064985593290062922058242498648018983319554826922675885043617712059327138199424628389678430083482638639712746660909419824719411811163162436909162085213135724862450548229631643286064589891146409520127572422221004856601257394579747088499303618279418738227067954765710142399079476543501428234355056654304520328705198254826382167898444067425529753447662636937112872381357781200360103943298247171086339824497930275557601078267348747290441348491681089997392880793286068957251872147569152206074857820472968690213897512004808885549035408667917215644855061152398899044620337754690652919030546369814657512636079721135731146884964961871279895939508751535919087340903829571754914514842863838379582909739312017853456352526313001276172569922851955826883277030562360716837850265466007255534171536539089914729380333933380080857709393216850636202853231442138475704871333909422720365637586190816580072718363304443821920252795678319660392502306143973453786695632041669877770468880131601830502028408696427389493174156315532848156701734804365906790118936808023391102142518051182385769792333389875971436122822375960858384253769384689768909357459144232437598553760399545284997721669933097301666369754318449322452653354253163386478527464706504740371459897474041089079747655135679781610968025342558382058477123183791909729291227666247069959819526873270768796283551077254185353163229741881775703141011310970450672149365270854941213353780810633885222088481875860011397519131131352112943550056627176234899752855787874413925286263846307396787769286857796594254184383614430277705116817683688605654954583874375530724651867144071864415492876077014931292844302226953488848163141260814242141699065134114686510291882147236665588698400628187361431437773762745366656448560152672305254328608675074009267042842730107050543131049480361355174626879471649727774898728715446789142306567923981273658112827201191484081067723233790228319993527640475023891768369572805952567021032503577312221254016772289942255232500001419157647897683601592150987743890887826247324968984486732005158979055207868680930076022516593467081340179653202606174063169074958711468921081589018680066631912851006940689865461822351143279399918255602443000131736420270597635995403020705560774872523965210849142341406657259279684106007159295193736331595370836654818885735181587259890009429097668463628079514779267302483744578297872822124561599978771047080323769642815581359867000422979426884365136751516726218979902368565552655853046962779218058810071034116919636938024374454559138311602013718522610045537887035466129816755917540356586044630138549348714895718069887320687870590231348232421240721648113136145996972615462414355331553592762171233948370224060249014607025274199750878918152246231745203841748371731597727016675680077624837109128506681196820699083050644275220602766545919125747378948704369322427511403522438880151998221328894318868944364218800504847775985829467525803550262658257902655708963561463365199658951362693989398367147872005071086980223890473517312434276994837111619088738796244295509096844139360393039348894195728545571489778167410041612529642015083877698900362723012399324635997291108494554667707396776973704515174262758108194297636405498845231018860582171992740397476203404129521149843808409598310099246585429796174109363993815834357009348903762710914665041735744663916848544596397067891715000654406603863270276286665132103125603120504997760623054237601999632697437330829369465186928147895710571315290446060510931942562026961578566973710244410844256872492575724354514332475098529362484151301131530031912551757505027735113145049282042279186076703642518858042097362417212084621003144521524876766567132396012077926199100278782346043990879882485171132497226565721503273543306982369005168809932408726402454971091428096017723530362167392279235832819531948887235157156552567765793428797544945558650485709478960532077091096397940066373634801160494432815892291627680884463314367928016443169068126255599447059086046374043263749883257786027633190452864672658843966161950844559655877219345352840449333267238765215301489468240064734171093068392546299281485634019251154968616322871601873325069742358612992175556783987324224171645466058694925601018630500280740722244532032667120282678741471820357454585010713025889841030637766637457022955851606349324226846931758067848583078762886109790044143435082482229719253341743968448492468254154793088296098814564016909362218770049887217076089499924161667806849589197414106967773753353237901088973922978903589332397466177114328096963918274564895058828290587009461152762629872048111040862773860976102679343728519377749865988252301537750663479118983638077649870870161735486608805055777119355810057192010868380882101880138745492058217943131507359141486652962044180312011531365427105030821242362521173385334700304253687878582991214607158953759739512332445000144628770212107862432496315964271119564642625516976141727485403220334524171206115420817036949039175462462627439601489017879848786663788525513552611798108415475404191382496106262611467581782124296736817490971397523368079766163164780942640603892259514005331859643733141705138003903982131772793614247621718103652513330412608664261849247026360786028104949803868870162491159583619824194640342911938253641144422136151151860627885137808911188190062240759062137631965073346627416455687236545219046139486650850979029112327642077786153980938611581900430464080121415837741094282169947856282807395293094269249643903426956371602149008575065611693610522831523558037709922086097460899348871768634906090618660183369525391972607427574264947703467013655742373460761890578680560399802167827448798739160346791157231997780770558835072040441374414464016305163253067902220779637160638298020984924982215125557468872857037444226505762572889958134827223120397220535865485133194863042667467052414942620407530285656498850830125928246355966745383643595012046545772854455149067714643182182218716025348185982063054613993902483683379801403089352038281367339975197113510438159257280079982608786702972997768904978679842512733269779178636639187604434544088111474421172861849428911150075107450279632430431768902729792026644031268552374295779187340936439950704513575732290328033703261193470132245875880799235726231565069048559572093906948474500741437538217518409564538649734800082538693875473577814330151916809871533769120959629733347654672523814454042962114632647374525007122618984890956234368546289316581039509093496103404704354188802506717421782899281636292582993848063429505420646455928029957465243246518095529739829869226590216539818111817282813599183130393514596486684557469949072026180486748951150205501678071440415954831299757512054142655659477865870128496647942692410691426941169270797100523037921974984079111341497904799183705900598843413183230113108371704264611361333620752650475570683710459991098162094117219795226827849933306140847332828699609326468149013156955439681579233995418581920115940975837233858742890814018820214810729232060801590448176212522950250401844438456358878866562930699840691956119611450528942301792980390684224325858554810221604073331339388962878125051453741117735232839916108610680920605969106371660362704229810710992895397538056739232294916710618519913007894153815032808520479479324406481155804355899289126301902502709864168345799117024431317889850607044838143207383737566047911885430184382939630218218569720387600406594739924734350626141313322964482603164465573983656172652063119266074333949456752469712591112099725015602516663967687854862778452368163890443276713103829291817576513561079984663462091446864210264070775510095741514281106550563924967662215011758735232288737950062615161316339896687709295445215462699968801056800120536241943465335548044139500322034715239566019265415926888031145026316667746713630941338882696469455329783680191373888539423779281539790166832547856762308938995899384394137159127897063398027935321930866819679409974636811806172628078094929338084149543389293498261283902938589861116802741442451628152313027197253356969704202819609846250997357478906293166800214169932472646413626643838065724475400965039664921959739124256929135829177202815531075257014200785913871013473752415487906723951400486772051848741358321376099975176811061064570826924244528051238567386188971528191700812876930604312503505174143637646654220915989641669627319655970628470971152262802964775759787685410070583455568485019649685935017079877133263366267945637762751284933512390598807294613959382982291024086618117286216254829438361191607292315602391532418834597352064525547269028749649617072082078076758940917592932905723058112237849008904690256405640207226910142954073712068118742769872333968367107579811090618985070901275629572488375640549390604470602809578731996891467152407005286034719033902123852223798165407453259240050819254895533877636363227706947650243944146206460702715220704278354079034060151071286625904956584569434405769506725232811642024404865882181616263370859825152832204993190466510467893728294779556770975874779095149754940460074235199345023403080419281147964983437967411740344620047752321369895142227447477926790281456767191611599506696581550228606669237719528834270609405846431073615601443536943964576631847495614711215468941944779347917348082249574210047781240050771712513179529958569920398716923253503743036016662178660376307390650226499896734213493606848167247125693846176302341548141337380062013141381541417590844171969560478036813403879201016600595827146709405672617481306841419233357579257264923027534343677397295556793075698014549151851787067988229443142553659426435126286210505569353964733985574478886994173946122023088028902848263551735224497887304767816218680595871662103539503579259349157207218494909696132747516647925386159992896114527123979391076616723726244421801624019692729065339984802639041331035025000531511122000012818430257656958401472621038140516727847825892580242313955876733271720399868543205670045581157639442656540768936662119623792548481462292685570940012598053701898730147067877652536984135752658207157060892256727197280333883614780631392043836002699109510488958724157834499757371032739781808548056544584981375309800314964880482356964311716083012093372876887000786476444993984681503866441138194590703046508673258444743988482996973997280437035389721305332559733899130201209845865723785888410860366356754312493508316716000789386692301362729346265535774742406257931575237680888924222371389757886503580674222479760474419533737586598803875593381237190168390618624813501878912894783023764548476650770532274806407285464185514361924270069645808632296120473839250275078684043296472153113162451123907271576363972468832914804128668773915288805070519516168252284284212937794383382082138734996145445232611390935974742638593747418460592938418112973388604160348703236928536249415789739607709088843350069095899347174910688074948789685956878224181242489928300695595112780632477822383309495075633758549016533080157275411230339910611193972103023530114955417793379510772037635486471673686643068183179165080064722760220287632091707570296426696153550573376291671673531380063815129348597019898300968607291305729700900564638191130893887801782891223907900830210389285715587691840130974881146752600162903945325436111867910694475413341085693964281314770648014919915468197750441249557772701579641490918452789652670378449564199292734692258250642133957860140833833349103671057791558916935512468699239441838167169962243000442020391908039262077079450922896900165399574626273108493818738201159421368427388236835669988043275949938773263521834487781185911685447374223795591436965748101218305196324898322310333322134297037654420091168472326414713314389263795109516710509010142376723049897836610943194556037007572230259853448468188515776022991849181071487777483312696979595897868014993670227814730919998447220228914226596371947372529705908304577513230854535851220358857648876732328995483165960191588801264587467568740369771703288001676422272209118286993615946618993717325143148842547696650792246558779593353195682455289768668599693804293049060756952648588612185544742560594703056841946183182039154185277407169750208417566187691514830125055923802478257369346612302323391484304600986609266750062516380595336577531613900620613523883501757650711124787551561142786784407533357055026748177527307349402263020443094325297229984376360637314008314188937278892059415981241612388939339672123040451697977974940727749009969947782125111959558093489869775641985227685848733614171223105069331582501116891814261375129696439738918931336568585314665796251332975999650684506116424042313477053414837283737814081851135749836668858238398031578007631275844421521750366139937856937558462282350785830136636093967954187979710342379344997907542559046888880676237496908166554412321719211458083557475878172736025524549917158461781158255207700337352063333660795573256578764010955465974663046031544886706532079154551297539636632616339525834342080657856989954615436423479005555410976586896994129874624434968924189201441613441114073365693892829200286270025243123546759310742629837181069449414882391388750726062555806039529722501516942335621302108005111108073572848621007166717997974243242921195533427202651194113289345191373152196956380934173948742508323653558691597228773885947362710764361166322633740752472677359824907760838900609882915839958435010342194569700475972969465881577255088780858388352255208249805364079623192012594858245989964060996685456178317515737497485722126159820326188509078246645576182752116407651075394470950526165514217017809188559385778290644161572347997337038537899298379710736609277925868627208054362003694857442396448334761243661259990220956854344322959684337321501779820996066911190469170907012280784993665774175419177225644903180775453495913399040424578925685491874150260363038380093007606004708026491670953756055973004617289896453042524042925264146804320367561861469370261887938178518787407885538035057769685547908034441417774889726261932540449121498433899799560243484845494774019308557075320878763048597498377765414776881949608730881333236377472679048686023065421313687803543350488377695665538406633270181714427082362087298988494428548920855804479958224926455713414016237554627839237175556782396932037008225369343172897022859870640126278677906142818986030109758192723961098389488510318437361865346637846887233754515207746146100187700151262376337136365384778968093278191456252345626787209648720605726516150279590660538283387911289208431351800495490441324801300086878662690560126870665119755563883253806795580925363721743837903849342251164823657257668950843601368663288628625513376969686904837993341370411715670070646769003951914735311292991605545047909430011123200364027279189071501114176207426729846133987503838149986926265942112805622090527729606226652889969263489349147756030505878081038389100203714675044074364773061343669630550853223610437301293228403054683786319756976363559653858823534597112391321059136157354603757180260236019497374087597255378712923600739380508501586405951367629836842944873840995245516751670111247157611264419918367146347349571628143694063286767061510128248688349709366169521328618061645857507717414850862981790154220150632451683846091350500755383440925351378173054400240987584872550608829471927123424303300504798993352851345748265192550925217965437050237911180719780642603736928065800483353679180498469935674375978311782506147381638985933633318204143992961935091550903340462059731747989754348595029180278974189111020060062378836096339861100021605705014927947428140434044146659283219544472919201233571032648395572856363676277394359384811917115798922286240229641056676583063020002791380460904764422360438579541902339566346341001318911524126005749827670229511662952999345956114872605358599597066644731451323380123169656457572785489429929808259348086727259638828752766182003789043387532667159820117806087864811098495300136065793470726568964742719777728114308620462197405072883643442205852908622779923639944745391870337187926040538248076236049003257271752071694358714825585510737953707048490955243690232329476566425162686860744079362803802900666322076196908085888773330440779005327787716313360838344220899382446376159387479783762922061911218758618126836970729741501631239129597370011151707228630152354862643432618968187960118769552582297249361524955073982335556846197477150965455622856426182507842267362492104392656385398183756965762970616963336224979846459356898058022227606831350095134864765296198032410716281338240279735047583253506914430625425517737919023159900035651101617604189602197159356464231332270219413117372960395983616485192416460400736294384534331879479236022337037794038284126839319453147843213849868008447207357549066401730126959481074207791029179452072830313157558552159523817911465914374778676718837665775712750123855611013977746694342200301213051034346993354474418517508832146427163519086763791559490285600735935248142306349469126953932680463126670778661689471514963725606986403261651610084794110386944582871046524971323888266219925900995300884329338654453613222167242650636618399307092797750500052712618670696235817032926855293015767124194485193909320363030351766971736228170275040610559482081578199314506876566147207441160065059268055379626544220970383365284553539092209674919393900365283046787811675831742344373245612753973708899816370661781833104979995259214099077192907774051846806201951842235341001085306996658679682436241076845441690288736772406527729549269677260536378140760478072860180395806212760009611047105549304445186307755305965645451907712601333609972667325461850981038089108840655684179405610262156847315613802763120871166876086884482528634550616422471597967423515740222100888843097110244542044413912079460448419273115607904919732448981209235579534471406690881848980656335244024985293836964700381397030514645942381892273260964759064921125721239031186953789400052712427852477000531168822059311396660635353935486207599551100930073355963524749203944813353605337134107099930584053012180252123110717069549410113738950131123403782002942494329963791472112470619758007460505323761250889454547744384176185826743052650035582355750995448192199507796242691438414207963362372599430581929075258181865153356574124992016072875367843755516234256771638069822920460154509360116657106818435776915349446693689032314478597459771665375767314086554871168842788782541407108812143029205402970254581674260823663879943772055047382981374471199741758230387443642309918919866212913819179521668341655626723556778465552518000355031926672157878173245238876101547134410087047171191995084688081454081154539808321557255535194505995115422217984304739464849364854810816057359790446690080551295650451508670863344934436154645556905421740749363695118971810208403873080745569244954209564977805137224331904847332052206040141418321979474087531196270750847528048273205952423808353277094355538378889613086127063827629711372026212225985698105391677001724498636673469790900610987548348411166891548756558235249084308485994152855398831462587229746707952451560044934408189701168400981663139585435986377652856924526454335292070704925414698745527311413821382842321232592227192559893838041838317768808835839809184871206826496016124917791264513229444820294066330511032585456421466101012503668203955390585152336136906610867735336050372378043979789902078041269692100038457916284227035121123459001288432111375047090520709520052888265397796479699860331888733825045325084374329040391838270219063180251124375796058340901206643235058626792717582934347602193010694039417632882490206161355734357938538050403953343672328818139339306602971258824121178940841106727081896422379753563374499101963745692518024330945466582160426905488573046741208942445799176138061425041674795754127641855526043280887256545205023073670998827845398028064432124322649866300376731850968629260686629759511250048316648486696857055756834597697820809452193124087466910864103142938925023201180721169174027469504196052972060709066644775667125442101893185967459207599349183067124045461196159698253499680214130510539692607776973516680287166478152033311008454820980592558348954422572229205531822720667668817166752753184798573052156722707422910257565338854755385759618927173910786824611808663880703107979874764283001964995744160779932658804239174310236445393843864347225348928204342167307633053480463129922194069995539330309198563985938108142087437501842105911280624904519225504119210817043598911284434382619188236566832371784225851936682406609247299071823818968085926078307865568007636657076034150593448992583988930669183305695263214071639882550972038524959864745409719372463082104851115795059005558723513078381371268382973094562782461866872963328844892750421013706829825801590867660096413918230324456532839250379052383674610367883586513820479764612726191351290192576059002875384581354394858035644453086972815419413870113039335300734917576148315830614597318985837101206920709511074939129173404853252206038021071296335689544340587456986888476406649818125942369149807158720831877608242357644641353560445942101979697176687359017972637064669287754547256590956031203431741860999576700073316016072106818583798852143625668461146332349204155291403703368204688974259151567037631392702883671213623328179977981011150238728823919551301031002164345266408684347185282119937793435204633979528102675556595510329301416517432942529970112470618384230562707959143488752448331536366991943642722473279914598742377171935228942907067819526317760630787947626556940884981588695470855181822424117589428297364590859818471974424816693357327822819630114261075563390565281321426519970937634458339353023433031189065559835491362363390585463049886030412962381134521922595048384429993374336569540928745725312042806978140065233666692600192513334035081495814294916968594527669615907319334371496807804663778013272069979589746617339791648210398867152474137850726444671400373045671069282936874968490042193951514735042987372454473955097304919122262757161431737712570614104762001721131095462149576855625730516551183536311994779868944905429141946842120724727706002241642323568797345735484659666512239749822645369342145000638690854442948030161197953206252231300671761569823663895888177223113238865223006488643953366598361702117954807744670128127773093636719163953569236270608234469953718536857371141212100402336093759163151963755837926877314479160268977815126074544766665603902354915972112575403371589385209014504811768879247887700110991364949873525449577662107589251460118885212352191490549325027856236348256391460055949918132544783027113904440082635840058996715532195043505110008816807930283599568666564116779865704235465838822607592503359169582972927785993069964512444977489970439848626913405531913805635420474152695657454496675658278769040379713683547074962595031622314500018462558314368212796293938365695457889684066173005909491849256006185970912081636330806527740144740385531902956868839250954102925003415296277271334752002622811153018304586557778780063246405067635555731850599592923663767488186146066373088287575715446018248261799700895869479811415961513422651606289150195767833635372762470620344378056506099796109295175119881674150396783418394914988377527859482510584910476653756657350744018165570367292422008711957903753100925865945721377854492052026998740043999534514050453821270748998865683255260408501515112235728972191128691644512334319809953370417933884066838083730756539810958184204536970220331524068781640478367167100177642908617358035494808803430221823060478376238142987941872277537211243605517451206021176004572194993323072816346607129524952003524217489690396267146303671492550945688462777622617896436812121673057743037654157576579939197098935345358688849226744794529196846070233118469726979517183707353672725912109503358597264097803627718546567593888324031481432339276194107416000606464643761640709659726979320411039551623493705264002547128483565679289929141785665610585226184316132086689875018839604346954554441288886557635119123241710590230367466521641258062376993063644797981700826776370889989973889443872520978362964205569776178359714040759981368103523605299956388452830547707788738993462651354310251447939715034796017138638678638204596339863510462709530975162745884553735543542111767893645835607640154505075964638803353082684873163072204468493938615659994673032412590558371592427058535566974982486450685918437043344005754850510138793701463355537825145481627606045221609481154058420136519106032838110917916586432737450090323467071904653674308083976334128112013951334164046658967191025468669502603326252332624065843591949951795598267207681736267455028803822507169340302431382519770632426623388574559700954532329318498100066791937385452868180796350733506945411822601024971030665016475394093957426123967550858617550348409372489114275823333739023154842689109873801237738525677633304994604118195482077576739386920369385875180774509325224290490335363219508210850055623808960497248679626412832381091015874002010642577552155837869025387307474111348932084762057634678163551148151489976807716509852547482851650442404987796617994853125144031360380201662092517692271682275265087081805634185005995316237363263886568762564656305739112784366283530731655725358749609090571919991055291153335018276765697494801968681727136136021965551272289431336711251783200972075904216419314307041074307603602022571195776366342900773622947388741586956546086418225828167798343600614059713032895566461809930688210247282662045335720675951721531552824994067366661522855269272030043452440252107602016873862194839810647771489045599729892640553346699590344739286550928247301874668695349081780830695566254690197642223041037115138924221871984805759719774016316163590792832183552013976613762031772020974782210530794556165621747051869274196880686656974336687742753501698862675250385463217614840505137464191131588544843584789916829809403728100538623313954187685862981344564813367985938412824453352771691767481506827803094660324997809490939741031898631886312548970672010165522472151939958731584793499363435772583460708254090221987547458505079607737260294704453939660566604654547584683855880547517478538080420746912692829652662002733920775305005346204861131022794078216293797720053056599372190384141133081663702577412175902857107238290790780595212688907171331610450912185302271195995019565245518663725168926582139272849529983947918693808870321444492532145066874228451328776712512613991165779451503365727096231532282244154212844588578419592952837776836041412694477403818774741858444167539489718151514995082675714588763211122118420054181668573838806278232164657239375560903154119361374527987573821969811744827155941079196485794215813092541793036761143521988709271038029445238726840851180971448465784200037349044072321940653521269074081804069380079501634099898023203428384530961532598373090285917610537174637266887834502118624615659014147062467902082404580943193598552020743494558353404605049437360859751095879172631507742534032702595210601192358412745070230194838210877217408902638413976627646607270642902260898213410078327693952669645080966774657317646083452686091998502322519980596000097145465709287141748575249203403972742225936335925455190419918337444543760807316628955160297471564032817880854187800291073405460896325514858514177070228742700289428606054438540297827331710908257023403647344738139721238252705570748818084995625990014354004456191229767418303568884341430751940304841766718803388043772920465279582973748348175222549998809452235666467455110726248307091033188765805860290652659969548396038697847655014563265615316315123305586261682199461726021875165850375923663728567061778864057252977328732064398985958655366757548926160960705049806644639286866370549025438201940273826802096910236868530498574848453288585419085020021418321160439044894524428592555384725489896437635660030734808590311270985309977020312122052288866811445744758155063058279204532475020239643644061628044242179107856308591246542956765286016232853604468136543183695922254862954441168931019517848215824681001671302176905282013731072980567622731684964598019018586435522704137266783290500718130741005245837367294029522864775629308074844313312131731232962585372382997204034052962227051869497951402482025448114574182763619715520418891290991199461802252994312804163295288018748754950430827325268585256592640880445706629231383616819466000822796272671571438042943039510510578749397145003221076401000787446574769713237441514037166722897251054358770177396102785093895147963438602279152191549028810558194044048480234876219919969243684438953141808548803681901532670364016685129335187234016396677826789369979420815934328388968759535124779025472913641798050799478805364419771419483307389396077649336761624595381699327557658460561572395358962304948250808198620653152850725908332333696371107301752707685893374783174227720346275526280608542479054316836161124569022561812341780681337582989139459294355488099009726653413365625539274648563965406099136959462640922053030724448753268435291728900824102648221690380010451056001684843225036384525359610883408735738950380775799183038799424797469323516673858990786536976414549703545953799128680287112975921933650467918588565969786114400992075941691531140105347794612572987469154876690381808584925562122359655966496754341699498593024323871337951380840565796808674240701869061285517694230420861296534819148203241493110217759119165017903264205232937849840964776065037331634386872626170149063260691268771958117034910636556880604555410541214420521532136539889634609525709559514815492069483850475293470002070000411762603217059975819926400367239245913602610247947083180689616687524817925395771626493993124774468424983277280089625337994319134939858731327043240139439254955646386280473293855608657919428457447852198832892169453427150239078541121790866944808815875607558889035373963640277180183926284688257919148974761294645038018771450832195070807431706445517969075657955015196233272958713358297794129419295104040058393004915629350218542538107848429965488332963460702958602950167913475398671604597800295400601385988112138818650169238828042355955738621857758083158168178001777631508047188519438773948435310753478235612618780180978027439317032524708256301701919046703163586834474069453074824848425755456461880022576065243954118410799837533485482408589057935888148320915109364900205680142336452517191169582031230055005947439352471958207117001970482752479597230591096684524842109702607980809896245004755464235186714878406906371728992893425980016991190419990741150706627558843742537851710729129300824261387015634271546987133272300664833013981932623705905137676043233427335667822188872565314853820720107875419728817566855388933334224457808197631820541252139335150964572702460739445890523976673075446937560063865629332706438457022306413533237017794973677671148820600412372767624557783811076908494279176693272695050392613911306465479648821523777717965748032291329311952113716432779367600012995102924204482338355854118132393936896723235209307487435299648848379884197355448269934458193536485881195686284389838061303347362191270279615706105670084910820083230791835657985888854240547510892457563540154707324919881690761266317362356436372741751923453591652401650579267004639557807269177887911750463776959900876840563911349706453035683824482239334407503535214893225031280349610757626696624427692287628009127068618578529836765086135184124911814550679479580946493380552055828547681371726090356688650729539941622631076236294420166247001598634322147798873878105923559148206556296277582353448486875813899609565661374936778832863927048128591509283147935858424842114639537944340238549014752683450677770201277985996601987517931171379965958974272779840379258307893036623042737312888519215461954733696247935174328054683848630738841140022009694423052707918722828244931426018277443458958185965737400075549086413553436183698036749831792026338493874518950741912226690991286461141292654842479102429811207438399815002325629162963522122476567233149848150240118492105785861867792395284668698844341795282545643793272383429833792701012952117149791572905027453630656580336327524383680588415541415142350062065260997818313206846320569179819526971110868050762546690147270890875852416703154785969641571628999726513534634270004916630751761080655625434291337495699512451237642007230676813052649268018967276554849138295414383963005279383083903597220329957008888184898758735915778003849087318455862897081865808373592824599525478832255800225234301623697391771576177834155473423333526510230838379059516519043511909075262901408586441726046530366882323119978251946441956741510383550898532114907490875503209835599105558345848073397909281202411471942665160165290177004582450220099781048331897485004150166328928987772034195701632892524021785268886521211736281479652391724641949885095362336466147318273068141964726275979900093928584382292793247708817050119820102986170004765668545152077441570530005415814778599005417560451896019219340475927309315173837686266351505479634839149875275096548577439319331484663209308504477164867913873467728939698031980793792338806872662361071250069728976351983320970461797481284338458013166911444476691637267144715968671894720950316636660248095847029513266014814739337713265780004253643902394215895875055621851498719934180080574370767534441498944629592779643962842055668638155998327252102573325093369345405861752494258955827161262948659647166226176916156694254759642453198660131753941698469188726382818767184205850742057100947825742958206308592356529420000906698323414903441894586876621434773487512005865399544107895874420619013444255486318021638508282183746461220872233540251679030152849633560290363386093129041149542538242065251363697308945494947299136260534609092383702761795132825583881114808439997529929004304401216410643795950004851089470983639770453937057951513554077996544627382871613354340722595105099216767434296057895033373124303879101073260852564593419961175099489306544258969296579079556455271852544312227498773058477396643820506932990423415884387597274545592597130274429424277230845615828851914964512532748379730010524548166043082081872600998461776542117797353445789368377990351763943399647179321295008631890192319968913211415143802766114021616458787567093996668921775613912885940113286501869584684810229843277556796697121373612314885164837926211560215115775301896125664281110197441689801021202722263218240426620703197884214353479973488906404091056784362829889635138889299922115361777575210549383130938898905647172743600123039524885171663265987415468081882535016844757436965863550812540493189841151815675374750598835439726582800790684411376337799295122110514149469013567865299340030048433437146100390208305158655068045783133375006886862812667470195659482737927672959336811628723599290350781438365460452157390794549625389579831742472150729412884537166742904860069840489595104820885433039786043002169555149881657054313372172295015189593734088509675676950363715306404564351903253217440379969569754367592290483954684887253138560709202170764530904147474644527197945721910222076993141918392245594583038039321937056190094634187663222996910624122803515438949835806387273261013395896613074122698438722596325925730746341490443925939564553303775257383074775110850272545380620339058654110916023673676622098611160445779855733767690819110028866999769002470906439798624030058717743508635928722360281727265080237754804614744189627903248247144641443713289929784907598352995348386292762066430415917638719559550545214901884108071362902291575879703979809790977181710996570493911553096391110177753507110054520083720975966252948492912583669169129447539043763259837146255316397771009248997658421772058187234974163521310014465637792742591173895736572711692883205220378085392127250615512938981039942793851241180121693453797067719081673392350623815354533049500573161191084577336672845649313634022549922338359545636107803842758022109482688053572903707596875270724117563707787537169303960839626519708964681584204024440890820224291112793377475425861850659809240970400594540920143479544707313222267851528717407334802074946699822035754052994173494616683347330253632366293930196653571464014898694253108173277299283656103488925247022405509420577872533457203858407431391759652467175521377190977265442175670491682464674024952346358690257007945045441772740814554357421634939657669256718392497810047204886531527564025871461989349159521449132009507979886448662513671935359752709888981032618633448045703644408647870961875970467844186302454194503049130077213754488485779407400612297511472885625074387298789453343550446334755128555824635251308317002589128776156384443464112317556419764382491194173149135934686769056000782107469049122082344335201280041722171055331611867074993972821970756244170018975513613552804771754677912075147258253776796330911307216157805548907852821394485252204363376347048915924208235868551364153474105824564456777978327824353017579132490171702133800956342190164566311992935128539024266270839314983479653640321169846696591050078465019641872952996255214613562203677027414537369693120327846007113922840863959235365434664017992050230960229643247176441122854843301131220310865294750955309679673506398989952978524757244860352937117299925562927281771041961050934261254517368515008829786983773121667199166548439603803580551143727135368293725590613413755284662221528754502671770806956087902790424590246294133068559269042337651335783034469073068680804524691955001921242985991651296659595506005709768599611779976004722988775499133179756294971258753547863809134814920832041469930169082897623677343728581678328727492372713991037024739434273102556401574270231480547937245403216053425777268456580286050949612552651609887920081297857694784412126135313154660847559746754986003971963692533546143742148880486364784534143315389687200426659977050632842741700454053341801671573596168895916390293065618045196629921284529294463169679299824628978658923514205338667532240569230178180710144502422260388426497962622225884471786245125976440676585780063814656266074087950769356725836512754942595451564442591095026001528806920980201789677093372685551102119313892027245890834167593743425466558622773184812617454279421651932730590836140992827973637398500178594103563477129668544400183440601831196637290812838496895094629494732782143265141809457199114455617396904057964610633182707923179125457977985140170399370438549293565788614190868137031939825585391052886466818391836257564835674907382797478207914364312906979552808207270935375015904345475817682793996460741131793511192085964974837588839965731055926405787574191877445735501500084226335978557914939576063268061882298734799496697560662388003064164290080852467383564176849831989043252964127175884702801450178935841976141755012631822750800512184089756211942904779965936296857030552292545291074435024319794614955339900149489131487383655867460857310294078594469288571807366244870638424204206440594684884069303442673936350917797373394784941579390138658277489982308588295029209967093277132601817946405598544586514072021662173687019612976908771052313034300827898337433794734990362512353064268724021067564122883520577550853211898457268023833472494707445510008079222437198254970756686321876604556002115822091451098654492229641159602114577105608183651816847700954586081814058024634459053951475899403273881496223570687311771760033361454559771671051846425118678685620035966734763459938440219795630164365874245013093890228384177780038775248540911828925161297928240883365049853477214974233163624845146299697365565021687226884994224575521453394640834289745962086690494929632181786964825867769806043392413695464625504039701661709664361411006633047594892249861119925905830743289837027436434255019492829722625332248785548700413344547332941191747438308780516083833631745819313430873576927185951192229122763082491517541840060047449634799650233167572141254074497764765002178673672482986263173933557975692181415605630021942678209786085369106066688302196282898191347210774633129006453199332915251712784916921718559396978540598692478434554843192636323289276666543004570767923915955419939348733011996370135980577685035064002166671262039862108460854838555048823489060183669238220519962951850830247920317901007706716010859241332435305940068129644263268364668475399368234175510052349334537164573600476288463754837857429295389072808200168531742263280401616569913519946639358337453216018299238410278613534713281674344398355080787009378602617310984517293236424624976714401901614143048828724447273971435089806219220516033183483608285588697069389348251432474812777201962062457442920843790543851373575427758807591595835209092249125088623786527622907176810857166471785500993107018627512170099108962914781861576397689608529088136570300537482815404037958123399012156699040958233283449602525031450115920610461921300807753246631364204927684612073241021012140159639820981832845837881905428927219459409862985792624241184492089411872997709318664923234807386276552508426189005795226211890232995071673015489960024311810016386025871478650528557048462456016447501925258627281775387131318474864151544059735797439639344285977999780651599147888369722395295603421859128922267822553631184251479239886898539421051596838837656697599892110175572173742208978781163177580993883246746508923369109881192413739676309841042338387817441159268196872920641547688232353189950172579917646389330863922112184439932142717828825684495188063759584760283461201605704651680594846682550100688255589715045264373316454208667887407415313081913035292375476643087594582233184775254560017144089410722463116813023596486034302788874826385382985232926702044575716496672842496793773823342766270730901208831500296857034569674507422914870820985158493642499322205329361561259648472955434679392545873557792437493546480354595551532729109945255497499603473957389496296315757929605567373125461538977989159654801038013656910681132025113394903873368436599691033480333707409720712126613548921507220968185353474771689513112273424542187611997789152426020120287237524604586118536417306463804782512223488154024440184282633218906415743184641451122913893524208357395831030419766681528809489930284929270644711568909276888857197225054107030473039399628440990004189428772268476362061482868909451735132461520171284949140868244982214567285370596778076265229567015170685025759839748384184992593169565567219091658730256404781859434537048750454836995505374615474591138365302675638493558402250408473961138017242508218640421508696245120964855877311090192412346278066302149000021791617386536981378397604149070080312676494799728720765018368606183144935457000249512539712538184844956908105183544227178921029979721176548107481255167839202250622771072895132456144802000118017769245799869602879131285833548360381560590763179936490994440001737387923077011310815203851460596102611725106123635187349482091531590623705776605480152934479679562030229880108116194619347573506028276781369186172934994816998544236211177341165952849275594581793359878553204531103824024158817278473238300013933604018205670615270414776440876501438205410676720248448699439666739560643361154326591024018128225245595113667788766786606604101781852761971114434162738472298352289374346428040375967452435980139701782982019402021165237778645670245403845129440066305826444630709383803847804690685911004946650907542370666147092723181989706574773052825527091623250966334431570140481038308850541235444298224327152023240642555754227081225671359635319236286553911822243536660921648260190387332324187079249319646722438521474464682610851524272673980391439605630971037042027822823900457741484859796532455700197220941252853558076169497739996561730667007494679778178784428902589374828156044528622733239246075234864744840079707613629407473910427190824987044422190895961026058045791716375182959231135571845956759054853163621205644277180890391003933992220567584505635898355256006751892161632761337498974848937894303474156667816335405577765703766050325204603044679232419709995321292436763800977202664746677913295218664188286642502467149607971566792315761093094195247833233854706599986515038138919508363726377161774938681078374319329643694734025575971488616647001967953778835440142267354645193811404414185522866187490081174141682734457191046171241242212998782917873404214047752533673218348319975101545512718908700130676881780895565888034445305984143857056959247987947453304209014401316963477310079666678811925807711941759246472503915010912954581831475814501917480335100408673137525260095429709026554053592383560369243932633723704546311025796027451524173218424826052750358331327557637213996314593496357615368566882081395997763929553162107166846440974803701008184344854911361240293181890225651205541249770148086486036585987824188152793660963129886525315783520575942481227361750285479939116967649308903075303873306754163184849189109974633162212273395496633207067165989141088063484129688308540040036881345781207243786650867689284813433690854469042022717666612480723110175089369761213696324415801344039439330791863802225425537593393524338557310866847541062671364046008043138802683325716940784330731402886153144850258658492593216924755427364323364291525537488986296137907890918895067115441278857750644641887166608642417470632258678569651415114463416155739538351686646724202390977516467614506473460819485602123959057534291876175708067690177981707456692972712979396392205055534524547037987131358712299649112243926583936361152333961947785025592491187329993017076320371947005266774402394281217525012365522883434575452397232398581703363357341948807358829873340430852929317701993869188018022120833964000941182022608455658471279327629153500674764495950097824536942380153819334102302545564662443066569039692439853014132750145119919827076726374125621166806507986706201964099162078582670818599867397794040806806642150056597483358691345036725607124786342848717259110569009558277982436528947839124795434906204267911502915149832505218342302066019150629924099570429666794498622275190793506335694495151402986933818319087333810697523202744123323757925833171287107426639690123155198762360644956403986772416985453898051238528120439195004978779576279160678567088440899572886559290142640084591366977856753454797463840983336614617403338110358980430387181051145770226538987826441036468734609756358382977121218878834860949479864722273758536593519139308432665556752379015054363090683028197185751957529180622416632574434530539585559713959286274658922521966883365378701748425441008293914344165567157258598407129120179334626898066175427444936611240651434661866045557100609196618083734696546605086801378229472760029519998654549849776525532147768501675399560563610671429393788756362546265640819105996913144318029096690546786933415279248242769412590786704057820815813354459413104109352804567441272682597542994773247284135826340016851011590210152623619511232691991286095248616803703767432099401789557050225335136306655328604990479823776349420685854664644080240284264444233635607107135337943279026974574845842288290423809935056738628754495239521188330704028522720116519814391643351359850730071710676936709638560128412929069654005075651912401196820660489230660514310017589492388408734069130857840777017271601868067158216400403735071126891960613909000888091570485960896472171752425347253656196034626571871865357301550700271319239304943354017748452836349910635864566616219743200851115251836406066132594276299738665320527526956377472608272801339083810307285384924238261846224525070053440859393921057957871114007485501521964597232606960141626592984885380526298868230095903256606530661305015527431389100792503851409416798854188954527037276381673139821549679538634665172115226226061740090895909388322123474317115868798344791271310233796221419184873665458615925772759170160801818555288019026916292176607974492836057477636505599618281147541326333802251824562206274456971455553939742520485158841908974994562607347613607984809314529414693015594235813222703004543113211146563526044119395650221547154288475630747269246901123985560330122373013751678104816358992702537081676226685872923638424189338617399015177397143571161113371472984788141665047656820027205097152102534296346215926017430183494109100997397325511671805512192378592162111955891327136881827851786935085575894296980009269153512366592364429775245129686042321651320450678340945851229166931344706627312376983184245501664014892942909779471212394478238454377150968719411955794761318927681774247906847376408686364426806001524851963741835450125798058187004597513913974539029028574130072654191876896646497499411600436331557997920651106117613244131138499567067799443411847938814457429764601857541089824127915935562653408592022349551014579635432334719828303521054495589040611357766840136802991030757447048917790050387471422234620470487105984962678901849593156945782434642433949210809602373913706301044538819528597083228410250586031298230324991834291907557394946007469494924864076460898238204485650867927935794820576755422509023013314506148569756781881979760978603094543532938344787618337992202789396458954604386471552937488975716334027229426004952813766498112392102650407585508465800463832774575144652882190666361824746516150773691287644248183021180599253909726229088373525938745631464643508040014173993967802430128867363982785830302990457807092767509100902998415016771756052399251445297352307950105600929296846590970969932917095963027380971049209632428981342795503522763742773537403947644454101110583226241873773338886234291650547984243585241137367871658959084493928553449192738141006567221870610991236531787901093287785741964478870494109375341870524184708701465134003257499790001559565925165941235455756001732923832759693148025396160935635257173417991291258444004831246041106331268250159231360504365474324417588962890179186765869504771379166757812975661950538370902127231657845282183180408967880741877892493035843074163966704522991048809975631078590602711150823975569328077141935850914658584212612625772629485110979212647426590228063847825973814060166323514901649050578064970935402536328582330809711989515037168207835061861869485412316267523758967789105260781293552337209864386825665654294494361255129276351383349708719498183044915227347407214191082123973782032979787796106482521868393760786035607419952340756207654991012402027001033809919062776381826729545556648057657284785944178661667884491244909692630569545567573522574007883602201966555346711056848408964207744610178450236598165840882423317493496478249477605281941808895117141805831122927696956859513866615084810064837344013074720659936123897394435012853464571205903241628587602785211088968292746180881340285350646542701248854729779766384968197147372427183428529596497491397126185462368493359170224274769789915995717373483897643824762738879089320648379034592659045773346349368817303693091519125531553457531184147272962489613295559729828331557455409245637979242512179289963645621965266043026418814552018323826962888001240431185711002064625817642332547121535825509098566537219277991289704254068583004871037805044697469798128785118311209127137862280479669515419604349371615197790316660801701111043666679127163722297796408688561068538021972568465604305694742846640080244319587393591872170383957358302617880174509480303744188855899169463134297302019924409952867486803166725045253450514867500338378607719171641797858599554381545063677129517991663691404154108521623172314260432118742329524763293977652818417971802729203769354323109667689032301431472098480919695621391014246384464902379229637961875952848561688840473962971753430637955084401718795074650444780466404952139150032660944832055663906595275791304801275693701024046303380432936863119454178074925693097926315413331984003679217025702079845396377100863594872478760562154958874014720338174835815042778007091597258525182017933750785060725291268729044240405702731096023915046371141245453901033441302378241402776225034710522882571458950443276320860278735485832221582525604379458863253965709583620757721316013270071509413690338028413411696557491627776321437272646422467038883198149294687844246057456722602888079152084313612067586577353939483941929793234831856626970125725638514071309159955492301049660226570476639983705022236705043830342811298651924379554832048932260917595933792895592972043330996762309649768453666842558012245990669046583925671291307272076266928153176377028258362167309811810601418051148178315937517030940669660551343557755088073865641380346387019267226908544929430888550982091016122295800905490630652099502280983376531231364658299679016986091530277818428905669765706779526002096096971903158165341288522209243256789927360568176597920143879101894809686208904527679095702196126978614036008141366806808226396240565694613246612899290615488528171012928223227400151626646970674807102654656924677076703145956584120430826066280211952901603463304387709983495694891682598604306640996486033785793650048506896296590300688118337871118281743427425635023542819158000115456194538918702350913283590026516733758367212621681645752677129130929078924979214878304234140742103328884549532807517789135415729105271915904381808213054929244407565037168646209469962983948736571032054786282904197143143327118628579117216696008602742657691574752005139839131070980851714034646130860868715277837008866790639698628581914444361903623246854750371419728859425370130540493671737603679587901602652245480863056552290209355960262644797590394699529404028614470204229883294939141612699053177113209904317832884999425867123547803460447482965358154949652283794649183790145120574096424583874155489931321019525858565726592789949168811994984101326690434366961883113499040293453567499055940029047157470834787357485076368352409525769730364947668203871195495924226008081540355708126460952864996701252490229544225416969475804170293260006142316037926557449845057423568418011546650892583504260183462114139469734868603545141179542359649281962431707153238476812997438171652340233258210441531754964951330952775765821482210222617162610272281614983103132570275854292022284573132243068711422544296576793185590399592261179225471281312333671743978389936569871660613323818987284302650163004408263224771548137391938435973742477621721276781484645448668885328559530159597007430395384372901412171972275019502216928967911519266954244933518717862092374478169867957216383776824917116373727387083307297829300169018494498719165713795453698766581739636761483071141788029404106945420343486982150068472736441395511764532890113456452540429185798788081740040968371803116753639968573123573554312008159478723203393747062040522136445898239451274660590023852870791560556636433573798109426607566383532738515222946799756029461121102947038119828438645185084001814013203680241737999237772619871250304309989846945964152631096574226096399731208556121130146749228052511025855834205661294064072300833300282637715863807978932875462290543636340389164873412910709355442247657574873456559890082500481831461069468504333005111833773507293793342324789280699859991608326023498480372059331598479956712555582728953712656354728746596806918299003467274902589470469853270965107973656225848987370421795793139315104303449532709809042827123063343107978334333391316261439784510579217653031782419178014869414836085159768438007401932582410095923804444822703607881529891048803721391388966593860256495777506731311448995500828009551542991721905062791221683077471555020008212596835826980158244304663588864084645854148136001845605760634116047862698343385868189966240589175205640606093532869968263941888758946458870576025527905147910182615731162887873823001247035151373270630663013193890727241860450891805221903191067806246377269004180130447429620789276104613627953301329221888073190459065098872084652406868571789877567648730618095188177162765525044408817819344740237493279774889927718225684752182814040034986875463316696475336475311483524961248300681171416390981811476732855488257361041229608982437374875965577508838899724556711365826675364928585566891386253994624629262993914719357633956640073322768377647546204979270388276142545028779287129070922290219496021717879328657976048007699828066942611106354680853495641438539791824413856338177663282911631851075387590123362423466959396773296578480086419773772000738098082029333653232186726506032520934968347164617423305031210115205318112611141321617701337439974203710904911321196281907399090197272073868241251729379865954384790440377177186217571447441996638932138326812780606023898078789592071170047340166982228557639255382508141478673262524707192652015479903365383937123792892220863497889408006258546752618102479959302716228240001295541928587385558613767171449275911946427725265347561565894331560926195507757955148649803878937021460831543490630498719316319591471903675274331421330032602883866164404322512999136347469064281697055103003517698854829005545364082395563238045136453608327047033644851597725886523215647134674249253519312660583654278667944479991940061695031907853153403162217969275806179316688071786009854050324291770216576765561817750419490444680084149833108390791592531578060023343863312260600721892141192408333018382498876658974260430114814597533830807183660191954463332094675837539071782490332502134056730922819777696848596596721837353634516390214648139557682507343731862304488292662183444379707006079674972609143084384533746925588804540813580802233174710133358130922784802913986290738368257399924297753294228709858686314583822878986129006558661744801745983612593908963207097590978689527538662379989546233681278431183833166104313694199950324253416036260353693322278671462954162520285352550096292656214946459364243289153536012575687985468123990206117567972302843899493161254231933873396538594682795830697517141921618150192277331875280054312580735216018782831122096997811100941359933754689794811606789373015729514330827742633455376481300526783810856423133790920749438783784879849227298223171813753496691473908498825109427112644847786342046187617910880769632577318904382330073618923719568804605549915441924588827471084003884717519461382680402143580993959232890947746594924823842517259802158849058118773890373497992998984925364896123043268639995889510782953844141566613308808507009916195010929776658462606017444719299041168700314904939104113216361719033829213411487755830025145930683597658592571006957424196410004954607715654569547657070552196708830104613421303068170042209496711573050143866169487121665210997927512778547241984374436584998367902926408515766403210079723720577757892798243568498163660413798302570213594146670146819956994230938031858556910812526817679824699576060991757011502504940596773519838917868144615310085028934394931339949625491435278908266092218802376708227103621591668760186609727831004597487161815589740247551657322365254063420921428855991449993500555439716884341398074263617565373516653757325301597079091454803734785949833739430829424460516188428030430754258447983300350058941764578952538730709613231987189800151534148559723677990635170330513185351437439443226239065195680532100843721516178831465109460439644657689104908491838662151854787966609207396338947285040285770446098247805450727729574358525532839934392118369774198881491611568679360136919252020772260768462129372133359293193651032563868813409976209607038694444480722335468151851532781358550376200166465505836237824735268015074814715031512202655483010408160739399287580358917801795100082478435700178292415867114374953951271008615015003408340247154827182092741480131763158942787403200949917414033634911565331703323900027265239217341176084227022611897975899981275689143267156231269911279561147468840035788834340183075492180824790433381850907305308818358391459137007569992427080798625787597250498422219600587883302777073037900756839808279546365608554190980259758196104257651389830037061335430642997586742541861638224486827935185553863550349953585336352072529010286799312245843916423724462145149384225553194604317002843673305685430948995286689777344141267254643424795001409196604535367385172107318886495163037241493620248371200857091724414482749799559995936201630405180887824246141140318377791489121743917609748701247567146707967089206977481477339713294139405584194818684028564337566282647781900340877271008143711081062146117794624929586865806369926156846893449297137724477322777502300961686771251954466484410256007436808585744401751800841712745597245165022237106567766976080016595581902768919623062293845448967498243435011096787133143241305522651158126391426999521494823475688895448276529580623557542500637066644085726947608058756036004296157033757909696494599941153880679740386723265122338030876114943703240647505685389384119395993792249145922843320092470556180768645995096883387755309480849560008059093025142825853148476112665528211797317108010200924810504361473158096005121460544524202036540948202101802984320440178678944112068410337559942703325229272107131421648880482379894322413432016827446033080918339888020583169314926940470910269699743535981815429402245210261687339052883839054512627671642416202688943794808183948956671665030007914924568495496387366582493134400285010391262033551603817936659793110327086190527461735410123263354712245232174206966866494564433026723988562073601535183003521670919659922564764023338578121461549270295854972511954744364312793640606937442523527000085176802302821774389350832116676219605937685244306591709608341682486580203810521376988566445373383242995125504049666762581377807777868450346422878902683495312846041377475314751821252429674458893353972512247371918098696405205980252541600681577117328777983851534378209946505899222111334950913680477500607401022413548683291493938329062708632013746644265616895847258362977630024834687812496509320897282621464710433990425983691101980290842131507047690290432142360839505294036253907703202738828760391955589398971446331057709194687130755515220885011640400666200759354514292594717378701093536681183053621719499132941700403240353926997246569396457312860745068399230191632419686911155778229541027038531488403148637941586358650643601232493515160278393592650405778189889739355805411658477286673424463728110938923865159512796779917018797850581613909504396485158116457937263524830353887687410929360470850858335572895923456616794026833866674278423739444611714223098305834629682996725882572947657325153161299097438122545024312526475131018407590666937587892336833657439148533440350132243363992608740833892127628814591476245835177286634750230411229856049779960212759553352980251926474236400982675361991074952867348411302972592742276265959953387003811037077631472724463050264398306343075066983722211721952137732213830295987352202977828630928626367384238751301560496331870195865243992820903193924747820416928563650378300578023984605072981017088767614616491924286672683077938572881191971485440063379464362490997062017967015713958370960983389769558563868225976130302810370335313581474596185563106132278015813602795047077329236335219322392158893675406805739264018367425343985621649876125356396950380323735908723902177027335694153863280643906755948474144633009540897885781631025233732690514441312692890193099468083437371630771806895089664659748710631499214683345245435277890532633804036142584972573927981922428802278151465609481637485718745286649844573987907401736652789975016893179262496713997639560741337294074264327360833537357543987379640931032627405927059193900522578135597723214389492030986455535107246355715297947821547934647388768944830807716440657139593778966618118739317350954396654538081639675283335958485839580722481858325219231408466840281143374705089674644104693672711966385318446865295084012164769547703807238138396407057002757749201285459220327562574495563859307729805465192096818159764240163633317581437473422590521329645388500272955152526415557869101679635864711083753215577252734172329110968832247390699029053921401705727822200705512958122601476523919861851165732676245409797589676274522023086217356965353260490981355522060953090896323340152127959292728274629772408523709277008027041024925873920008186046655069246826216148682567286191179052962887840508770186328604024473215713455251434656788329118970360786613141686522886652002949864552910342916401393876267184259861990723883889481584425598592296357589798544178897514860546524337606934685987013768598867543277787959921500253876220474028197265858522401816603648530148917519757296701351033478425384581132118387112291838996390227094483323347279910119958911578988560244534660604235854421315433465727445516532366314790186820040259949279744538922533837951780111222181175794329434625423172130645550186862299596109570946646203702914661160207814917985680808368775201944083260055730144928418937486309477267737671641984956535051072640535169582682308730518826448401489470672311587969283495094419363072284445932411682957993632506772003793061413992241867616855355111425872230567345936362090865992999231137075959642456877990113842376607242343844466976236889305468237905045636125511888206824559338976309451316533241729275054821509854686400048100064895976186199954868539058563430202959891017753808103156666565595558523449839794197852003121669208047794833749697330864401882728016291031773989585545145233526782822630456262785042518770576991231360689882443836109616054244675798992568997057641735429423705848352976183497265918383949749568765782550529498311949603843086893441521018712640292043306682058963791632014749364840861536517392906413337583216775072144632911009234200773809854146180906610640622116906439906957392552100897472043055172479582857936954825677404094570935097720324087625309217743389997389640254764011422754390990481358737057340245683730758120141773460829851378113706972987487528524558651698706530363461004782150046724564640640869830766820715187579067469906931276114108864390568311578028916490762817982553226147009441672087387137539276993571589763172689926645697818592538357318376156313444948993173638910736265101369229716699108614321741170686467044468804588623984489427328202315951750583269830558261848740801686045526107906697288369523457015939270345944406969517626723593774010663891787314988344831943759280948821962488181246305439099758800022981451057513017105123776498004044575053441177266656194155197033292185621675152189994990163190991211392750142163484511470913821406721238115267822687285870457163720107431786341205626137496805094515122095473691797262733667988814492735346017519125705612177573093082571450437281833186850084987892354530819713815602889210797561585704693812768971797360054878674809485451262124020949650662828590884964724520070454787373430108719798011677736610521458621699734772892254355133631036270801710652828238709134144160739826936520716671104442305404595911487516587238713474624510363349687920984407388131072012473546324162994269713793007090713737971012896937940331479694272713352539212671119523871134164771505306036563564768504511895887221571948563739715733635004086554261973098400826546220848019032528981383899098839176569243703975948480147996014782302950098779729988657535883775982090181938016917962373029224670641160535704333018548390555456002415807591656126219269341564426041998684321334791750655216287129550029929962468580166388167569178717222645138943857887285890351828272442124707994449926989029086225571084139822388700104184011204046912574986419237366083414218546000768473164640520533936936368253496680794429709507069088284737854655330845480081777314795289498726755530884125559101567157623922222585085952892734937831640008664590330596199455203117558194829666909465411537461477647086497005225659071762351206433451542493726200618955374969946487191958826593511036019123438896645705289426933583681804421174406955252426990618957965376433844231314603072869216175105243469185392481168566584347172405393128465208350934844518161259192672394240549172256672304695847346252434223779227736007435834426983166465211608827208414932170246465422744958640165851659921182078980292426289081250032164433514206184554480313900051478696759490321510632240790082404344902582793394970275636804981556859614776936381018450825136470015442336840302594690407930646920969829704691442733226829824625597650305822584311262122351349318862131866767593974506105912230655479807727191283540050670327231071029911610807296608469832681988200024291568880498967600392620543595117387540310751779324954920732859366627419318123947372311602123259764989588040114053502035945175413348735482591302236583519139691244309445695369874811224177469277393572691048935075065151382084606250686890277958182845999216041464019938404692973693782763224298529574139423719635718384815722639725374024513548564514151384710771652321119439422070607300715986749744254205239577757180848369673994680480770266463003444008673519069175923637953992875009583074008832492999594386722954642804705516180063325732911553316851463970340691783623384585191108089430211828546779775493378662094587499142079472113594677426949818666845860197364248568849414748771111050175643478231633956893109669068312773892435516883058656160653734839475368274860825744133625246142354669476700859405257334897916834521763279141727855491840895195566035636742269353078523388868165679851690112247770465253634394275926174979526647766306367210905300272314479416049973076234709144100678307868370916852900538714490416717476263690959409594400784775857740719894840395361767557617584099128511601130691486438308575007165768451790992774109662812049403151764294248608428381487491942067217139627624348604057464755849847754261663209506922460817555003513898465492561304899334158146185302735670811617145937904018468167257062275366143069484057988681921240365983436096827158709233701086903207073505738974758870699075625839403706036604254503162810241626519406745051224635457359427936053011530742423947740319360040125698524722682288716474632463508499447655513895786763180645567122005406847678749932439080276196475023317396738449513824056329806227553835124558341408059197802120837418095818976379267174515165285813680138473701264269975782829418494559727913147855489228213908032297326389990704623726168688505135436861216091197155614908830754293895837989567392216752213474338784530753229161625255385227600987576276490373593672954192221968154558374793368043625354850754027718731448386577977320867586164009520728507521850903778067464877034860650188288925186605117739318403782871644026424610364978140948269500939012276826676221781916343010260009951114021855108818174098678933318308002831092404770050929510295519381419501861713236133248014004369663753637443786066507509795576759174181416253412798397130375646262547750386658687336295898013859589490354778931664549108365814762437065054288985077694271475067391550882578465083440195199017905374496169748364694174989351946014376935020212113351290272719700347817794678261871407048224612060167122961108297064137610042990662118690882100156649910274721828384421387969886677974290378785090031995533232314045026825963275444918268889958078858700323516751326478697726585949816725627481557386404142901321662747570172341520156083810132632524897041913078083505063219901982766675160450683562983011082864337083648651361776251994513330616202171022525220086914649757075125146118038186504898415990208213901074757550599629914202089898180549435320197200322049982890830609532027821451238773620783404798208903419492912183557789356783716152644305266223912941315778111204345357848300866084107539789759178131918396033090631938265024981020310682262173131317630920864499599638075895235007546186617704541448874798951160339931218836330838492204353998942811301275333187659518803956354204829873762226422866221416138594091462749092477822359248763050958274800033142105257157811938432943305966841266618195536746143471196900931846545460604781644369033147292574188397887437208736938626275781470284298595961386348489783217957510322459088561585474424105155086164092294640132140554743614734948472023531453338674465068571583504427236333973263175230486526697386152403055434479280421551416948802345761399376183747365124398905189764567987847837449048076093618313443019137999909836905760784611682833908705438482066803611228914766745540930630829383413703086836058193230480796761983842195831570586680834216546571311470483204767880308828605040327005267483006187018986298584767847956580914366239888883533204722730099696793691910909094813302933584071655608364269420121562913940128119119434245973502009281238220992068531718034317540140383397526256763089895364893568081362878660791312017817523208256337210159567197947907877688902490171390841009179728394809827517414134604048544967581219066568921132452320070454678135432385222380009711127631876297985481985081401699633437050670650457956379879664171987275408344943104543205597989941055687271589208431137734173787904621474830754061580724312612830498806255404701970423032802629226561725468503922790924452501277808331394393813758604464997846601080871718124609887032413404274752423488927714743345171771540002005883757447457357605666643193360662461698885524019622489345554445075504196178127699488179031490201025359594972623802700722982281517723063522565709241595621160569562527728490109937961763137053991782951112666165405337748686525098658812945871693640877345560267187978620637571158594777431013315980780728553057633365882007981343680340697976004940364496198344326246081191814896104617821153423734695299542792957508641135351319484783008630902767112644673815959378770164503475814718104633729827289529760004117494767848115209803291960520826475451022478418574617608751770314158843419032070458141231992525702216411222846544708734307448118745354032760405696064943943492477165726734208528337665022822197932346078329420689622937796072197093579758861359808325416061029708912972455082894104077037845757049780688114941120788301961261299786456084172523150893470311235125622061613276716472397970940240024882777826015905009091732314132450391038055499223796709632412318926954793266792895553281819033564282447704100948664482720510542982132124597911250130843830982777131566150175916108785344678864500447348287479361170743555107989041026978633672655302633927986573512787475493174981097312547458689227831578622501711149192759039132042106257004905107021261072003360041800953833218046853690781005866232420530220998797445085507436327678919210287856851155496849609968461063285210944943753691404443666744456726070283965498491500113582917917147873705564054391934867102830660782124959969000091848562587880698318451029199999182645930814114843359964400437339384802399116575213822596601995184421571635673492003887630008748924303751979629844416274699166456006947466366905921555341353096376634641135363294924978559159536090265343485745419141419239330897950275000283614520235736418208776971524154215191527339930241767814950208673577985204969634489360372005353207535273104441066598503161017470244526070791518166623976511536820113023853991986450399243791717888076415940123095323868282594130920185223812636042563046877192025339039890415427948321374143088309329034907182280969586747161621054795328877252870633318953639241664418367698927961424216705386353199575714952999688251801761399599163391047496994867206906790695654813234813668858003536108865101991250614658831090527879961989917978529168701326351113048720215147113534863940237636063207583092006521417563550323232492939929333655128045014360217661247600620113909341313556648605292217515250175298382713717780725859028501644987275764128692526710025828200912296075988724804363208705892152634635323161896155410492241488771744612067487619635632561099564799646876067958604397278036617356474050934439181568632065370480668359323754013091383090550844498844977258572409314400893104540910701813393258790572311510243503443456752277694833430626109602083839316473950096077185474133060504888195840444565329243014144984601973810919727837294711617808013138013242905881805641993271930633280751146983185851184661533915600388023032385856949282993551204507813618225459577284703265164894863734235284256851367106642913281496533436838891969239273201648129738493048733917096535910441487090927734276546673530770408534090721672135587531354364560102329863494260225462821278052391190591422055163576554614581518772383082864849153167522802744655971379174014267908650454846135308672991729226886769486321172829208500417106820162283946037655273580110834105300444606378123402136347024679194651218449591018642626157523412751031614467171992546883005698781718263723058427739282666392503805264622472703267531899757000493631916920912190001005920768437683616073167326613755061375801635130810535479736335807440300213136731677848999228921576329886211069607242734734009113959411136976407934402815623530382695430362864250024449188057466894065571249249775629135472350671067011913783867167535051698265400633078882667459230513352536010784145671377861789054973313916809584567385742066161854670077489191360488681820597115206007338337641164834603572685750208020927893911321124345310003211621181450927413191377578454148627008169462237093332461840036369825341835164299401887429728047123641287398086610123929884412545109955425640385205240547194393004242030258824399234637245669753000979725611657834202715864972114716470879607018245389959317153061049208166586913861503803269493842536770444577638916940745083364605863865023732446715691319553915656404352303643475496899019485526818692956846151574409631683551124347274772419927274482446711201265013673128385967876513918031083154630278752939467132367167550358970716745921174698675512482398291196777426964373944216179073177630278398437998516174684093396676664089894460317598698397607838878258896986886023160422712309130589283188396656949237124304126364890142533914433536014972544964871751845628991284372588937611766041361876497847990416791796841674234469000371037873880774896654670877908443924719675689025690705872217590076022408669226875550564217765201006244988270263790665112202594655123031344133387815577185244183949414510766328421938949946098018603319700485687475823267986997817707441259353805965813529890064346278163911911826242368937235562534242847779762821993339310329802279391585851788386107011432136468765485552973454576568267706681668971356001725394167211461843420324477413873949802693522103466216790871140111289869170380412851615828610057465070700677438395735536337898057914826852618938260195931019855694060492846682438555748366527123413921489234697870476581507899611630648421368383002761954083253753289631317704507913128683599344532983904186898945116950013888672649706036983128510599708934152271048182790150645746285290824828536991109067420639130417374950642347640363771480366198258348039653781245600652338157926720080092382786397003285189214873047693575874740337359720548958107623014731450291798679713020088205647723782747720148176479088871110440690498870825617348629543876759340410936832805538959821962902783946008596933563883667531514718305275519024985892728981663818812799481892555725734980121279009066815429830702443676774449119968534209845552251372664392052705029524666284863030578258875984361213996009297787194428258727608363942500648135998833602853420660197103284814748780400176508449299406646341945458471069207727912339353235175566944626305264113464225528946133264463397094048794476433131309301676266233089934192778288559701427204526413533467657208188452451983511190560251692194228385966462196561238192913090172636549278833603707313852140641117576938527834156723631991587371445822783653572441501376540815906130175945247994649397431465671635331427327594633075478403701883346630410630122343520080394438098860190434239325730336723148574156797896040589246601606581848379743349434615907125560904613095239326444033956972783993859690104555094681238586112973536523445111581145553805067463036519126234447721059164218798747930020892938716444531862898919673760549366619566743722587226995476039626533153233882497229586511304301529673279622588078275491878599157207151646226710295568227201493606100550522974004573150897991756513490496387761540856037861870975987603583806480122611800086704048810539286244502618553816114162476788452259318065109765148916377319588017415741910837246208171067540245521423535764996705896745430591261605400478421914131088971356364223574671448137645751906135660594160866220119481920849327659624107118693921580516030263102272684948244545298021239290055585344817388748081246802945549735028849348585590976580761398137027946443452661379074158820916996860218094449295846342388101102996952162174979037818498914118483291271328936178924636557425451236202810512036650744908305204158693901832822068445574261807776504426272485929176469099458775115475158917587927601299034777876385357426763737934808628861181020420565216171381779062014792469943075305490288998258416002738896839714410823932171478520808420533856051709920501954564993872776242449702803815515972095377145668019401673412209812235526238008710318306001855261180785824568638450741621422786893709059413766670990186453754440684818044361357583092369935005332280673071972512755168060742261813349248142481673262957531974659509063972334849006724334018307634202607305201328247810178968104901444979108114956198938683524561305351975477512405163748048701520198637767075013624529499556044523130861340346756138987736623986907283882466144307674632905032531221871859048044935271981565933139837147987781559287043777724051453966148948986054683037263240524760983054111072918923039609994073752557928973288203274848244722302868831843118137464036836466646001868428613907171679403809655498467036000080442384490062988619445827953513652397846225347014483154335335518977678781770375868244268082891320317370280599800757379991370555778576266126799845010685516114727208189835588603179318208221657699940954071893526020555940204622219971284411328941921782727832179456796884424539014996964948767189597144563977627691010076590911479053610143844430858061384079626108066547228689131266143001589153621764086422535543297291701020014135449085594193975399691132790646253540486892102771043698280113590803455276914312619857411599197900888651518550678492686395997941307020637766289689309567290322170564412594127754427019006696455449233933541262005251052557384736218374269115981688243672372717526151991805734183232387198888338568238758494904723204913049727837749065084783328987363066672156934164558876381211079498618499522049272248898121388521321877464685966135625119348406540188406285284372329807934320746426476568494696827437258801375808780668470337495376067555826464255750945557718232482145503784412330274275227705647948100435927949222267311053772098919566639606377996348773592761392396566562147019133456368304663902763503208281662474000840821167300606978499405980863513937992578052624471355810173377649234635342385910019446680872720150765279934930254286708285969871180256689743353256943240796460746630991396614701992737949187209822756807231935860995326727325259270674039427293788513567811732474263576609046077483161621104472323216014940651943564002945571648128243555632546571810776469390767792440736461309635431650157885119133733371571037216353140108576429890118927804566203472777479347895946884621073264792256625524394992544982182487544277340717577981225494258776672751318053462012951532150428829126023852418831541720316712881505790902350897172053897859261458206961930625250046925970712610709591851384637489435295898558632566399379040095102429616124615387798163850819825556085542934015573472932596156701683916659130218728572022418440286946728586640796303700639259535233152277910546031482399749570846407715295599590233119061748401569405906082080241508528059022510138337751982190169831304466853436607605652161967308702795669522027783254015537415056962704167442516882701983677070988072465226305657240138134598127691764143656414052041626031542562498498788703609666061954713147991942956593462806789006793788161028892496455238100522257226221832284181159106422031207332895103369511305117726031679004243747808436329082099948971410952704652524580310763007072288700049984891235126400108055483456060399296738678128326623073075085502161612530446234007647450152460065981344909383843611177000963923474378577997751338222096923111657297412963368668747719188023959850455649315820331531409192224285933283025051343478240849596734107743119409672044744191627574477542228418271021744143599472778633703721162626335988371666721110465050891720420615304455862595061008109860553389384549045866759036976307017149258381954220432851005686130228730116221572833071564570667603596096412536355473442538047932028952490713939319735840279965835319166761196934037729784133934114302642887247048489761628787162939513930363782434807748686937776904123041518961441955844529062547249344261173394038240598919470029484521267521024090207744239014648986041268208588056873722390010274204278208136032972388698987311907647745212597720662772788479471299086391720320279857004113328924764014343230938468451615207710119330685666680274653691984296410169358077596544302462125662200209654092898253682371353856355356737181466035771865050072632993518544319727359216572409657123830684211051744352307850327486653665471743890818529443041151072065751329635410589756660583794436978464409896292172161843326902032477572076268836592956361452895284302795280507337529784016906023172980803324422643654442672164181372446516920853842771689145605994679691728631597571501352361399802729898594409493684279961213115166216736672310376651551833830933254025948766866329931064752825162919933820964205494678064847900409438586779575444419460805692593656228804043204917878620193791089621347036409168884306270252208529614774767036387420191258867699101779748793147173272925063408436418590449672465999482850526852627694154427818352775271895355646639896155774217426434640491644258329601996536245151275119089639935992294125563897625319462665143526547183024004608859206480129404092315137363863655366917436044393646280756292709935312336109464146502932096013602682570707174346422238408063759229995815780409784674179685083391496628384375553716399188720048367477627929610786119760943007246204725784297460634992976409222542494027959003991109319217904612653652349361261640275008181222548361504978055044358298600728663416306719792816444335863398833094522433923615547588641940012813035142736867145923155682081828450430885977721385690329724398799709002892967888280314382646143540055529499736354399080307290614178008050505182905127168516310917830318635236275274867573484244099488988663602749806820699182044044180347331229613934713001188267645130984201253151691652849599279283467725208482067783174977290560954571999170935435588184318146251599738467325555091499784203511673867385774031190887952239624599197375584951471998354722267084623912392980305370932434255205867174529093139344072687996065397690954729804862824141556592785094767974953945541164962918387770029693810668243136379615260924064735256580982238191770673768175226004526977192408035496847796366065619892187408105431695610052610118733112664102869786870336443846817444193489641554846389041628937748736236415002876275566632699816034409144314885713535096408542758470156579935164917996155813986070005767753303493478921081778988300020570096049083391561323079664807205166163023683548179591726069400876453501913586998936435603391089481710087066094015316585556696209791070832411393052260789261998344534892442498963196043683088427907295463844993906542766693562085942496594187837695615923655808317290851868747652137518282449122431497292877616823693959966289495027280978064909868930280839329238885603530231608498211826197834794529941035775435095473710825609097585463417965769403442658820497540475879292321878958045769038107814121716405211202284595475302654953381186004796981624904147244853386478662337654449155446948626466479308389867957068501620477913519883008720913485683521196046051949823955878679918905414330034295303079799389999817254502151011733825939011289372535143550089056930251083155286814964712995517601876948753804943344663887865868296185488401168571159658208077108154099236188129959439617317704400901438194898431024585895970923787640648147886808434827181884763006234023644005840571025079991346563182244286826165367208904139170142286286208210691061854733394689160654227668770788945430345998717461056817183319325457117318369390473935140300610423376488785709847488918171563885021216381610339262541530232839007928307996905430003014556080271283718423333345913755254731362762062533519320435733878402242946002277672676224501605534757707269277755588922810154506331138000473947309691204844719479070133116819689832531892390150870702539973481260081031012777909521132130738281934524055704659101469432993206299135470736403663023860139329976682659475418426819948624280442866213912544809571424801308594564911016827144909705371019420749635793914561618774353880627208020263823868080875671002701674211124608698330972632257673275137534070271926881945332986286014860036535948045800365631587610226192878456587215915585595712572384094942994366335739034776004658124619666691357504134682986352161369034602650057301813972841648419428343251513728779816651212259512921748292903320331511643145351701480617681548734042522954027588470578527503022059243529361677963345102736031702763080659769367515437679459406111564528101665226281464171052013181887558087835582016510201998843638249956460621574683866414376011452667246343443343293792840437768223348272558851308554394166774170478894963346240501625857812363915749411765866154802699070512116395143245815263914425663872771936533780161589535970513497616739256632132737922611454134011131125281751637064736337681020248866592413344494086965685971195426184631514611445409967470922770098567665986194959393516935377945096547606050752684846717226880431837345977904997885236662535487814655064299396661443665440306494133687426155376131463963535844406086591157970210029310806391865228202327383359305860900586849848668376586153998158540028679967271866275886429708692005976788179138598902053481448177487864568748033845647710988532622743663508292001470209523408819128969109229465814202261144788368127876150902899899760537525631970490949156259001615025106736651133816566105085709382170843490286365124736689976007792746117442000485549983872702563908528280997255961598009823014756525882789159865521788642463097525237287404434268696727739980721301893975919884605312139982523787868682533599679739849990409863766200776233323950692930948636581201220687909727255311162161304385560549706950618093248604160388304453915960500479680984589650495291800008736091615348456760331340118120860320844790183467598348985366866092884236752119297885432426550829894617938452276459782496016461352195887904445848503342285716554714850189888550898380184003516048731930185856001135278937239938629336061270464975706409890845779655081127947979910610756136174654033177455345571964405700030495503745725841882332936604330103031431575874917746728481964876152712620109115559727408638611955381191270595097321026167602296448214172434786416083745698265755392783640985807438062136585964416036739838711109756965535680754499510825632436103325147302805809962027427134179064013898640538121072175442174966373606504386726696339341296815388861281078581693680695617318555847411703712197399784602013274305960282369132261101812280998832961334936846159117016512119256070061691222130882296889909337483533158536279624382487332198281990001096047236175354626587145119948130572592895519577825767526831860244710333724626871271600549673009897841434152292805122792820153604104625212035342173921506332346704504540626539255045078499104874145882855355408852088189384333647601198245446046606994550498336906139275727161361371227456722062963341307807680166367483644115381146799989966040966377148076069853368925466142997504946341682536050526989551903137575482315871226749098543221279749602745435872020371324541614348780709980982759170002161445729810008718822972270767556008828468999480018942673373920242522280690454607512803113354675018558168886644379162879022435846049565270438498372184708919900677920157092947838416290838344450489511935349873527907602455396318260872951812475715056052994885262901407322498473191061294311426393118763998058539377236036426539102380887870559128451834528960462825374316136184246077399237187396755895203069334276312198808085303225209545441810274670843610594557179182238798303889112657389147807898019877550943015779305326011484661159442408007311933520114607553044601215492935647360828146939496317435575944682126702633579479807677789688452311618310112510500403221827176743188452901961987644597268651843428566666441803091596912908066604482500787865624986930867621553002369394454755069613663517939854048749072509993172727553098478891401695321792982514601716395142120557088226353196487803961141958352521254552111455293819442021954702578343470073808869510107801468958793083023434407232664334218426484457864302059438527374519971120964768463015113928755000106483697067807776990182791186668447547134742405265799822606597640899353758878669692847091945033111558134413848918285390746380691599089604433679245730870972793655443097972656490715984663428182461565404524457870486026367859432051603678613318847661926658570930178808561879815661900832953622308668639108308294990506428103705223763685775959521123662515152830661520146298815799053666843195476646159634009665325197863577168662019986284064257116675616584954484422917156424745846351206350207904061986029030592049639135703740440830797302718462628542306954610814741473194543611099038608203850665234342721199041200486078417939531528032228254722257010723415948582908592673003799797918350726351589581152922523385509119709514945320055945577368081089819465785761162339626924091163007594694177233147091132854445477434766767201295228591809967721207134839155109678402274852834295396510435107937438554208414957810449245125256468950017437856690807395481244896623162497506048390675367718432057359545117011459355895105301598851986470142896339004990568308956683149966148594168248913147693035939054105220770121576914410816398626582106251281192628474047209497369814189121785466067437871686523318227087394953415495560792818957314758772598996454593488622335493471718804459277908482819025727172938062681541697065686791634738992597416048319693168623884327090912291242178381513642083592378903666968276795878585883123304761340748530419721087340863176580867162280833854529121367050511816397588961584159861911306855976317722946731488236816964157002978928641020267870780993589020970320834787065274517883402297516623643963807327788724271956307105904403251907961245707807858122962512245370055116560704455681027042672137461721013073192827504003541628932050437249701758275889897155988143327329712004027768038072644213864208864636096353775391807639771565555096191977232236962243367619893732210344886518417727999947245239692012608523700504308843908995847997971564239579709148526052746424640786084681275637993209266065422625249065880740989603915267313475273657594606904345621720688633893374104374172848711501896024442146628682007860306527045588016723469304740749285619558462755551772727791551581887897895146506580322026193515985914069998943937738151634037334669065816867930301539090406100812011454875847182572556762878791418224276007914653418728138707828805041389650244345122256556379625772761766380841090527929748092444536467859904354422770866683332563116683116288162808640801793777832015454441414948149106873207341755120925319417111832448697092217405337711211414533329410331072647222996998941883229401132771734770773976341058686672969380922723448542158505218048977376044445094756157118173453605127007480480307427232780834558243931964545639175041382210168716573499089492094386403062012485861325434676277192525614258953175272216530665395505905851543821401944369137414309223390128706044752227529856436213715513842643081956697299105515548459329304384716365737581178567769047876764190172845880032541698464776555697563215855943059384694281390639917421034605658077515355556263776474893245604479687294844034230501324990484881400354970162000031660026395448901112481986395566835152087267408524614291088319136103318862276940927016498404250866593634589941094496138551456594460730257919787385945640063896326753078392777937814171100798732763712622268839915200070385617295630338670182912296022873606014883917117964934696693117371777889875652585892811642092583986376117133933443806219169767186750635597512346904138450368496218875113062335338165335032192019648880592605772988027073891094566070355959456593005199319126868776022746408477737712801606133456528338641336411613726749165218970966808776522736793174617519342601852119099473789137829808933602359542314730761249291670514061346915730841259468321184623760309429369923200793374386513128132040412485027404650225874287586954197379087335836254849304097721673197276503421265450277424030557315947384626612438842336958695092365601754618098824584275901990541641054572476842143657268607706062930627592634302492734937277800790889169532190123686516123598993000521269274708694253074507884553739876303866275972490539010351144171841965417146971407074072741940138772728073578419656024692487346936020087056811839032919504643651487811396209537046039617010773514971556713851848903349921853364557916058609837192720391520665119924052389942261363075954796917513047814169311539021458618566757465212919406049918420965886386172701471547709794676588529155239425258634886017111903837324252931179829305768247932092386548247773848189314053804747330350865288739309663713258321246771028944314964739644802465000002675876944121416078237872601761101490980587607054971292688293293283615032985891496891092492956157186376656196462662216937857855507043221133402377290969802645987203419879227419170044703729376377704340530828696882082327156973823420242378921171008834385641315377874029534862806261282505680217713816060226109522771900578476879363905559171938348919894855647805133465454495872639386069863883466933447539618217022649821955969688123583927494673129982266734706396176816713689029848280398169538751269361181668300613344624884972980778767960329367835555872094529153946202332180259695872934261520579587348096470928663003104737723990916978909728151137111726452275381462020277426428977659468088415742435816021559689605809085705711394060307899647832281353820709650271006763619705468056221752984792924593326274983486648618850117857319607369761406429232351138545144604225586910767474362384523349476516431560153583864364739348320998232295337680648948025250424761818851152652053492791209622814105997578063113656130630895184467841405932902481877798805196774076973680512733651632700518557890423869666610479002852734241091064737737376829829841030413910386980075553028421106482613772173414495492264198469160963835765002453560748699912466463187683029161060973781032218480414582837324729659635727449379678486775686440498789648819492846947175692771592911732486693406939023552230569319375779286312335919406059904599663730945373154724785936842680760827377647520011806067761938067203941637764256236078378377707344801852784194738287736060688515939507779297059513113768671722550086169363681344389612665644490104193079990883457268553386562057373890206209803146475386627940225825294407463258579332062880077519357250798329358142206405010631026706186734816493306780856925913730135723283668984653583721881122916094763526868846601765138161677015986560280829724740031611940586734167549171335226242078023711922618633505218487933523900115063450407539816849305450666117558995014383037278210591144260776706500386003949215772363788994024944646852220933373815219037364725784768706977213791815608343149276163078426041621377124758067971398434030021908682708243790473136679818627474654375874050580060258601146936921605136319008505905606482662748644072269459691846026162867108424254587217928598261315580970210872055064887596728093706689123763464488892346849111687558403528626760604138501187154783240386232190261353852641724261027657771346745076422230133642042199262048731316265909180064353904900400933021734524199186597635049978914865874440923819262176411973599586553791713846609779533402312715615500855397532883033475309145877412255563875674604227332443938117949272583263451046971599260965437577711801850979817408325027107309422926052664972417401422893171752059525800361994926265184026395046576502835842177082443923792570274706833912263537723736082186957293858030401136160104607376470259486073440906137620202979663885552076550541236034309981039895484050313798103024970685415671252342252149572921704634236519923218237700279786031265611911449288189789969974032105125657429856647993439678661324225787786074590665024523308452025164292423218781969723719257887912076800692781602101800113137533027443968337287161358424437573383933346554494579314456695875760358368876593392535367199810022958197602295025801556447539405537437049433936068147426457627865270087314998522778557400016064956516099708955563964663829641662007007401502471355063465533069382899703990325500087507306002066596281428562735695961609335288743787229044133491810054886493235444479254503229803900011414578020349572585451262879099815351457902637312248876918350092959986050597719515004447678865010423833229296195958974916654709463488412693283631862852776318477906922699336492000349192794051178717059620356586001757594150637741509055968346779119539181686188851785718203424332187155703220723934989557728403770377155520811788235092282547044050431756051842698692533431329936163554050649919618688770603760345043121943235374655929276459098864840873728661688298895574267186681707492808190795653329282793083757804873704847064041668754557005477417234722586865289524088999506097931687817428388865386681335021658627283223068304610189572283708750636729677068485927299438582761221542655708278098260129005244864968599515773828834686412242953457612421031706077446137624476520046357091529657161014665579881072368684407140667259205953331918711196924922099044502241388344859268231726203933871360946153516375721819808369033280153503826372891467145001193332267726171873083341163902199567723819114409157545086581785668542115875416821885732811782422744994335025845147621195602384818949952365788415077599383890341066308237456395043500514943453755749087399016524339317524920431317605727856732898975426742692816507740075593351730563157914874664005592009749261890281759852373971141690604600348823228521197648620964446214012254912070062005492639383651318813338195765518352703117997531403019310006136556060268704733254119495109843110270121357169566269806298058648191578184444250695439954331956389790587247431297061462673567324941598667526614409970680147253444522465029262380212770291056318706993761223772947120983531053197778558618919800975774129071925256757663577807317261105072500111525624335226684366203875847740583784198739875172185666316151116856223150521174464633685243987886830424310162398590248127647795040111631882678763612901467073871739414666847710584123599285252505271788002683516911182632957634923110528725492568455143257178191366217855696020471348134473902139493625483038045996379106866379450188758315346618814742518264597737643444683772839500836906849149381861978624088834587256227864812391724386409859006061106415312446705676854100668223673365256216264476200240754490574891660805561041687906909347207360818247045331842058517914727934107961600494164367570470343145339551639879735422226445178982992859915029757899002119420801256325450861401844326067074859756518312606607264756853526234480562774735041060455620395566275518667860290028053401964752150851789141878798321817041430225092069370091340163888933881174306565109465814394020319260622257686268006022900927724918224385910996091441042133334805700124832966230288661390110204248082242083463558769612887836955750146680730511343206250606871540661219427223850672082721107143009271525175267990950300450508822459573852443143311188284791555550595408272223152472112601469033942755953089165392623960396129079963821318890587664485860971653622107841829226900182728156480879912660452988798737924716077686809521385344883376852936193682361649861152150434072935475177635459708928062745006087481415698411000988032554795943851525149896539765121617256578909041337493219923125395423950517577897325764714094642299537014271653716305049451637028929614205315971628997350491815388041962800393412307486835664680589158342728873942382259211758035816593949569815663764461121910627716483125884875776679270169655874871300760475722345019306105695604914836581607849703904413011428858951114495632600395274154668961560648178750242334091998794583579335331762965249189354705319413943541693330133300574669731564317648944513155741855042764811552691964796573721610722149552035863556788633950828986584724987331969864256690047249390627199388871482012446158287291914435810730984908738656991174866178125355562309183615099004844465948944194834110635361917820895901546851775105490807048015918116739642140109096378276591734210970447733810505643608729331455826769319800139445387939120319717949335733426559397496678472554468912407575081568130965617143526716733092185378874133986005367669617971861979100536073707810556267578766070374783762783729241518154820446109642719891707602334437638839922140329572588639026871134790996961772854854154633681529023844124184675843877861469663443125729193119547178431968312237905068225783061151881200809141981924858245919657687359780844399277121231975007346219841804698174016299966531654620668970821032945869471137231884414268668541153595288855787398591924187514485481913984352116659924814862133822389422581175623374251863843999175979084075148906870337390999944510392508836024571116738012999746509754499568639270849194860906392037996917130076116837007842399450526849196873378600263405196404067066022745668141278996442618617205399068756516739511630365646783009733530660172425091553339258529494690557467793675713666989302896494146283598871568142694385920006613048113577529104575385976935353549180630180384589663483701375537010652946606361747248181005317152800337689858154346841527606756499424834376994919297257408870462457163040601018786470106382734647942333378584531946840689604102752305644173568760578749819440341636263061779296636491433302645893014345253882262475098486646176222491415605537815423699677898339582979734922119336619633565055664279169433143146179596515755395368890306601178537840529608762601722645488317168542364280707017157642923993617805939128987844801164081268924829494378056097660567864085567969396939598373445280914525137350737771961981156663725470010762030521948237672160687265956319336209917462408132190292294833668987900799937397401509278026352944281180985995664232822885307840429501785749870954913270398824798783036836460439785744079173913457502041377243948581041738400469530488963080415317838353933237039024887023994602632077796201420762036434970843991423031426807978695618098723449084033540141394303878825638723094101784943699303651877438069205539008477367761268924891632074335900246424100285392348328275682007553276683080779473810594735155856543471615302460132867168061360244275237510395310565139364614813054372912091325847009133485400385876760307097318424737596339515519500080858389273892389955357673273914547633482939717182923034132297116367346871809897181294772204783783619909588921667051208229057386361616190980076040604980283167280800575003256134206102720039889628995702096958890319941419076401494136795211294696523511027373357081254921854956661647828762107460733462488558671830542479980287696000304543899523365049077129545561438236068250555814039797241641119298481666626786092001101202241099453086992963158500237630722263070414350205575747303360515335008314677470607286367806367148095160758742042064775588451910443313143648351601877104152997917854934811336480140125016926336024394807106329499490790863842948031943436957922266976027087369296027750659406277967141967304713410841574862844819173022455485597744093434079570416015829720970918171477755287186194404373580816795360505167936612761817211288787778100344919079755187965408490581162145977800212338305440228522576129641470590336631316464985263879121350778797438319452172794378148023662954444312146011107929438031836111955899689945825921712286419594959881260552133046407939980202686578643810931025942821066406794571535445393853845579937289091205236824074141475094464248887020196689283950257083431317271104549541230561618772644210757560899216275277900058151843737823505516394243136495660336590913665658911385025556219745147623617939770953170577452031658567691076112615386085398444688991602681553409669100676024527832764292815769357794436530328878658925532846525060086864595577279535904829088489259570888794264459578944593159590427718441652087220231261253796809170314963846602644092272768302434521257848412565965751406664279264743181488471080662007901973869670218403240150996675845474170660718772292927605230943909348442065312608790735928241582729655317150997297391069989902729663582193581659009662622048708863679195822916952648948733818461328519375149844662415624572594940924797058309637910382596271264858075073932096039013691341461144460312040288405674321344045414708268233999689281104680623059660958680666750016231511527994098507783324756672951087711610626131743507621379923494399831778358873971677582754955483843819201574127500527365702406500991125814007653539178440486579848918276876643455469594929396780674305653879314277296488618537438962423708378237264698262371676607878642786706189001980652730302169148994492014989955014510148079490778904347920306444947541255471779742579875302536919175943938280395424768314268126870376836174825192204310616872680936239554161481105604196907016489782591395593611634876485609238702071755543268292523639780076586341586912918775382470440690525757305476735863551076715313711280748219277982508666399345635314268807746562437613570437981055948360173835030963364324222903088333517145277418820808265371909862470040715597073733054707612247351478035762111507510862234485919001691740554848187763448754272521966965234690912600208829461856063494818918057084387600531488997808498860519074514288416294927586617721973054118124451856031959927638618699119717391146889872152979931677730789865104163786767676215046024416673753255765165715086998317801999786035643417339741836946787936466240022630393010584036317012814974756239400283333025564857426345261268386896845067363655467851264040357490021106189668316270723158787336039739949013812320821334195295648784210116921604398245875021148792411101760114021444721999360655980020931900284844304417549247801075572203677994431306486068710129090513919436895899990731624491049131404817103810257128169665988534245023413166603676401130984424726237530174800367077691963526681419222582154956730511015199111481520135926327770060869915301079201833728885255324760443046672174046635674266717517163812558907383496900820087159193484962734729230700763763384405500110759258966917711653580197722426815425516477709184799153018579582561449188324257522476972599624132474181848041968760384869925737053027538062064352632666159211959099308819863950094677239562899837068720407272667575712276533257677780752631930744467248675639454837712004277787356822211018865896130549073592441623257881940955064818138944811053656131072163764081348475974030332333723323940185267215546733583709278399307853588141194628054067046144690825919432294934663551682590258223664174024715507171919544402960885935958074862058697973375487082735189446193579377430723976115649376683289853007969412587373476768915442416185980682742312226002715847790971661023513058208971081522200307567982732326663334818223577441193573189778809466005023676095187675811625234567881542075321812091241842930561758254920000452067500958989194853563084344328516811759531638128362524016570888824119095517981287151493964406056417164721654413252454567314228731375118819969494624064354388529834560816317855282591621347566929481253152723601067985586296588001681346696208016652147042350004048932265693528004769155534563113455174185177000932631233910921097257180666940528422581767649098652862385622867757538046053006330128525725134640837191623169752573018806404945060935362003214653976030384649350383071036460626820570022242280752495177611405766348692487419132341817081517844687157727094742236585785844168780560428755185941224471443875278977257997511325710571813328126880043446257426066212137068666331761850525014038195843983656630103924172625672876784601350034603128376471858069114286842718895751637116461379539849942174736465094100012713380249849028085636771232943790237887715207498720319765277559927875566428080027215264234921514009611332320784213672123877104161923995694635729308766492969781717641534110112820109239024763158288379979362047203051019118185771488155902854037334529038142067951093589830855530874291322221812304369325543724029145889461514424949801248606150474275811755586166813685097685030003986025307951017996561244792525098976647021383221771653089046373519677072179038797689194390640240775374206989519656574476347597130645934972755619122821267133305347247878082377773995652228838433100410996163741366045533234381283531862864539801375588644079149499457311493115502416851970475330328809741643206458012745657136192980517668271113809942366140513218883794148466804590307410912514565884586631018856414651670299050844569033633103712419034780972800731477271841521587772886351489061173871271974967280839799592975721560862064211128316480435435828965763482074903426119495497736118512237514199790473064073930826964375246501483250457006020331244810930072281170915268729933269411062779481766052547054510148553118085123893111184380175572441801763132322134365840351471453850769208294076360518492502302943056610326187939561262629209912634289972052183503749360316004738236410579991911616529853342465061946051708846935808414242826935250951081783276273912476774348575979728817907970715052672913222985476042972370897800923408470943550406884401277154249638219091231484026919620403987425720934194504358884095067832273426684056220392590985565480882821797899677095077629892179177173904317088534372198148477165014235664396694546228036093978328989350636884249989564855690530907072469817403633559843653931340255398859938047307455271536561951882452413997374455380937050828944627844736837319485058791498287224996892211441182216044932708995341429682156078076417841924971140912923580832179065012323967012356528727243232721724141880898254264024496102965741059926781985249893693957064271544973243831832069161522606205762283287290778946826121458637350949513515774885075392178138500854939008932307608102220502742684436242772391349241670569519566205607629212257238947133847469591747613864480200192737793621381199528259690550784585056402917609523013381192654778622542385972266947554378789957349759024868581321579540076291615067775422599861174829434211763132466741173780444566905131393686615232740058080680910574892034173409162465264520047292737682713630059612229633791087085065441680870734382171438417352838616805567511157720812357477327062589691471634325011262020584317129454501193071618067744317077716818749461151777367066552454199377435117172335233943348056298818053133409006710705662372756940711271844450332474859868440654291055444642186904510283137705288832023545645996394261225922196474243817293488041141591935087082963082860720294912743856147671028168144820026212057219149384785712364449296425635198888711829822352920913938969869715276680073195005986873750428526797896633162296961407340904182910684383574673080540169277719624474875724059576564475450121961539227452954006767369084039875490662954779457155082849461079034101475755614121911682372427473828801921739783246857725718848667758362329867487857629655945313147602542767268636642398232267889401418472927978977388148997332828853799956978543640455746540552335620558120501062981952644168468804070633673699512679236662538035007044737866627373946970071582865265396997637922303450298534924886892504987491004131591732385116217014481182394429669808236890456618141759535711066662424059653157612285200138902070885838162322461509003909632499198947874420098198879551537543557304159030680253218171388437185127757506978303225612910584758322472529548355112433545099361413899471894344578654938312731469726601777033371010268764766713089375391763969086105526833718573397471545178264014713279470478372764873600591099439951663628179844686207516943594801539470912952987290511666399757458356804133439688144426978038356399244257929624209001400047021655313770392052993876756526338742474650257270553592613253999054369171873877776957111933577896548007564340584831808721243682440144265709724741949743767864396898961717211211120553952548037537672117039847777663600203873907666010587015395742128541167564041302929520841561371205109713422054169032678863338661435632130358054493294679421979993399846458665647210456097721159506927274091272892055944185845526249106291992830767642347119272627487537428167403997362493324213498502745446651205407751530356219995412631440673816104842886862286127110323975300879807167559119620771974517163503913038027942463640301824491720845917895931341000004074089955174712806532732064677272439069169268375574648438000886857424273210217307307685830293098527157581100147751768638190878584970521324690116076710228771930313572900672139775359964921623449374801337401885088372947073848861977541750616333609131520353701821769625075571316217999735255117551403110712526974461842818854290219428166288279129788646348940882608356663399683511790977607023859248019392140030756524195169073471196563541778316221435862620249067544376404880966346286218616528100081642264840831102900510132238803609101807616677227517497707269872601456327012792259922764843439089256417978035209268872244431042471135222896740823487578023382166427635649886318802724297279833528330465830770582969962913277192976496117637512893823000216937431120777659575534938086271003276573808805424867949787622582660955324403704571194715107741455196163845543266802604862891716711430125305380557238359244372405620414959671441171365696277223614650887665454680879605549210288874231289139504545632664907968756191614421586913809841856102403872454695547685938435733102627377347546918132002383339411090190417033630642834404145010191500851654519291406402866282033359915223543434657250325134082401150377445100956802376564061005670439884233635116017132408279623019705056013498986905581233350326820983083319261494482753791574932085524981628155943627350641982589161367315941673223026112257057915799131482725237109146806799061775358507649318199558622930658636056939946501447384767793678280658330698711321493809912845768405849491028966697268444781414107044921191343140335205999417678816995424747129429863007718772073997345300639963652998149742294452634939961966351779607151231925087436094600942299177229167525699193580387594446683241473564840260373543996752953311236101015064364875256069949440330625961401954607034970759740446251013702404594255454639808376773328269488016479160694517016923463229897437223149830363967842112956051369487121471347176341532270143061060124411821080886822341994834155528871038586557824646314514287240881710569925754932444128119222599108460099624299112521818825469251127198939507336860463641714664867256211217946123870152206770827620574569901939718630481519583220881162225982935746549685416100503878315986883915148137616005630082240499346329874715776070534133691037414232348681476179404721326777696955417931583335516140804558060306163722123051857428344128748551929729180882209944356205749452121471928961579054074101414411510602483297126687518181622369098648354697091685228968721037810186327922473591822059169283285980936792139523936394187033364366358888490048954840197057493813727320201038126553033053973360005101485762045511544791626677432080788648356917415120956907898801778399364094156586492731106034361179268580802397994222371693606500912035092333634229151978270640587759970687206724988295272941630088555632457784216719669843971755352583594654320441947345344492600490591821746807411080768420435006684548694104726180717948126482688096210413118472004531285965911500592032859454603451603288669494175075566127890540778227731761482491371837083800504771253951809891614464226938899212821927625973285892729226620506513875934826425152906707690610330818961813241194079869802120922647638009399993953775956065451108902024487837243903056868145014658925571096780417171014405425605003125723712248628592090616399674313515571844655700393410923099889097000401756073634217870981025841866421157164974653118087773473216610031560367524955602247094914248853010120942016295090105012502198619694747945042938835891676740840404516029090773892523836846204262780100667292622317074012018330774431733413685657725704428110482672310810242520529277420096887583369344703606931193908480938128794913671713407943924593971977702107694239727681668430904886010818986868748028407511906651579044682824320619139189135357252001766715093144563581516943034560479612662962214463703509355613914000385866064951351066840477092608895506221965714469419969898317567227875992984498833320854889196271413746292223584842579501741942706179246807309510518848111210225383353795725303530109162361953585924771978822528216026567533596669645817392482285304587674746493085284673602923481657350771328466891592195008852110110721917630514800687724433482835233837507274882580911324761201383558665251197367225868243011233056294622224329158578962660763229105351898523256824554506089542132469124046188364958860449997354014803481650222617978307341515284857859395683022620228437425395878822220016273732396147077652998234515358623213714692331938655415670864797423357095064744641178284279268680867587850201283710178530485600043553776303497801460256746037405972523164211332993338487250857391295745004338740288656072746065112265373804587441914826150503847425774301541083213225416733170499397029250188991705698305672122274299588831526692775160327297843642200867616090869792144823809538082716048929292150420965264080137977853990627560381469737355765714696761279322090800523664162972023202463730030567787695667420614327289265032161895033501094595905584745208496523364738780627828599637556819783375652304705279683129760407917029886411332423784829475232856211241349146842585294762918796254259516156707876261690790195138633490952385760843163376868331105741191673870442167357064597357549441414393881288876090972578323734254136478109185240560012760957123432268073917798660829193424084775948399843828470522630639714519305333628841963197615769966654634141474403437681047585336066949513255797523602599823281316422610593409391630389270005894203360290995674026485596638501926069298391963700503220872894104044504944945895308340823431776799770800488043647571904567979428674070998836591275847903190346687450961018894941200297196245248380343677383277532589160116058271307529506665047954516280357805147503912602009417454428380967379121223147979752494460095317811948917042293271925584945827605623897696944511909697389764709788578152607029483501412785659300537322237926424470625296084020528045494722943622324941818438573668664983632211096501972959041763009950126254789538955791810862488716009256832244465458671644802736550054050334468298278458070505597945437838598213657611046529194216092924861845580446824575055782753281703675605272344747245407481772264751292153825715602428520937962868059043176511796727070146991350277412761350072831770048488455919126339623041526638260241120677611901092055299482091997684377818589793382731407154706439788181014579288785097274812824159420839941192777602465403286962485382688418994483847701616752568908653134794554819335061558406767172840914071420457892988827890687920653087629076689824970949595085886860441527940300815148867248521766175697517529201528801882550141109382658608358462741469544135282398179559844342351292341621598900245758623873075704285516036452875137614943404878148341702728433049989786839442879318212308548639344865255050784085019403224867661864506129500204814662682366458048942493176397889767885556150023121061543454530155672408584122993866088553211151372478769544744483019341469050101054299491609707157394871625416494069506787083107179865737166774303852379771776394254095811054498464649279771670924076620227082687326341695617981304771632531156056362385191147880633692232146303305859088158831406770925208401702550011769485249570755086306328004664485898131840683887358228957669572457498300469364480488830131228065860684403368935267293772921749086520859444510094176438117583154769356460404492779796740682628915094098963207027283305238214284538364357001798568907739840588488914435840289549788938703115879902123924181692735417368399919201116678431478156026254100708357977744432524280297586174869098771914769003316446358591680307160062430556209473679182331291958427811217578219766940911469648760330125216263503769921810407218445480938065713469917493980155905056073178412257295095612382286272533612326707505487891098336166886900773850471445187059433046138886908181362407693362611389771927875890715945610200278225800267488332825401476608553850854965921897503177065631982133424133830815012380318917155468015715459507840654634106101723784717225339839953175687520310206172541421807379274908869824272943444825717149273691597287289116887791565191830098589179286238936364936234695601378109059087478575738150640095745079107304546113056570025589468771208871040666590629663759021182745645677597137426229619168859852007160276962569708359692477781386598016102559332887436510374696035000911648445812705075670879297624740726072860630991143205566913254673344712372036335242321142123859276762398071921109623232819850767074760039444969012517988589479767330524218419618404049870051332522032951434339172775751093703629002715950707422881638135649127767527452009429691421376430498670884694616054496466728133141722533941442742951167858090422230933443522237269452227509642115321328724037826910970023502349205038330611413685865640204854577824226706329990856705206747731433737608584843871820563695183906354593336567570170336150716130590328208637162669281498844243617313608552768523495537620893439637766421418836528194148840081186615945812481780041248801996615004059253093628661594056926642790858743735645732804140779408918871506673803946213926856440249826932470118074628474747598068789207886265663646483895309367716079757773119590267294007534746946918247924443937642965941434106484525303583448191058991902781579616499438828172069550581401688433173336022050758014371189659705076225144243224326859444900741920917375045093272135858292132890777114042936104682257182253686847053215939751867121799059581391803716144264877629331559998853133253101902129976535339877514072187555994702491984969045728799832297986317621114671528492396612751143511623311800059714210634014776667170908663009531117330893861157677629140344628413001787232864163285020780885780050643021229810978161715853376896777563496827630975604962053050948688704368388415469320377120016943298603093471803571454530515983040491859735243367565043908132460274983412790957607978490307197067209033322376726334902970509308080111458434221457647042939372817397617321980661642271397486374001032356731230523707430457278143019391006990032604923408298252914321843845131266773248793278778129376926888957790873471365431079073169104961918003372307304409005743488262135000783203619379840426878709354993931619142482680253060167412254830287742118976073074074360527281648646753467675413529052017710246682551202519082463928367192599647116881433001278523881686674433422435050755529630655594646261838204686655861639992792247355555407064561132932570836409650408703070355144324766644643265756440136575444453869669169203398583991257398075599357005888727734553614811888033113461742361277574464180727432335250589567742736802600509174950301943454489953092397630122529742288570642318215298896261972881469766135791521485326382858615876240228981462336582480697614708130779128804270325421682217758426296580415842435297443648798473522757094749005060641799782816745439453684625368718963964157253558541973449039535390333479508680424546057845336409300786422777269960605591290196336880135194108743041513592383472800016710646992826722504373835218311082246242613452431045515800347236286485328712877400305211338847535416594793619219668227392362137002480089622213267445799465396050290334845505685349949664287641070525459644309779625208889275111340831953793283637831274831757489600969141652816398472833676542501256348028885730996068834049112051719437756146300527652997989702170214715252381726179025894041664995355806074283067004310790016562700982295441793703860658188039041515660630639533208449055936387236498130153818006640237482668032930608437028315656069975840760802632651547032017014172124314004296309326350006736514792810414183415553001330877121847577885779152755252271698222195311566224662033205208202972289670844819546528832869681776134390647201392273528869159988477103539087209426323293052495514693325461893947516271383681271139700059106992736768292328293972170832779040520478936604452447202643215376238730134465057789925467207922750355213477296273726357134084388633394358815352911768551228817482503096884281269672990028363294286905996744665083380612447253947756422552413040867958652778409903767674648414911882194030933753477425679354684796992296146145779910173567601212722806740239132345646758361641243877096060758962899315670579055404987454709846729975291740947764896077941864135173361137304135712401484604976280042637911793975015312572113193665479932789991155737986154099397671856582474945152314906318993808168731032038399438755171951572526294071983298974250522450131470375165951937777867103515627330443054483623961419720954557999621699848500156036242529095390648361323559399788685635038010595684084587845570051568511319064344167057831620195318527963326599178337443023858443199543871319501556449587926521159324678089383338090482674004443951917411673553395497262759228968803738080473453871818558141413205747727561419796010237794793937756809261469266225460773160917539515690060250793695252171183967821202785844364665110954965638098685715354602792281617209535396091582252543181545971294888582395946020305927917143810376175109723256494771607728884002804136099491429446437561767037927105580406608350899735483015650153789642286080384717117381469833674448094644674651109209064436727324822785892805840417295395625496589471503147915809374304761564268200415689223730238125402633035402545714531960641902658792372811803146927321377243925680470339855375885929614010975429553383307926622750379661581635629041084748299042875652635245039608801470619239536362512104881008421180813272023736846841178076585150405184555227796199722990212062607533516811852455143733724203572055584431242499677716450914925530135884772258412997630813762891412140938128524373901676750682280962507339731304971051004569215084145537381090774173135219485790731718954928627755790965526358021564437082595547174687158693271549098140471205406918294304628931975723909796174781434610210888793144818688515465364812347339379927341346486619750109564338487180432675629460068400166643775293000717756825379214772965604224058601035659575539643553737433902094209540753957832107643502663200098099326067288716993266349040408004648287067044948020966530146027935965874707934266734255654614935358731712868864577714537011217312677728875266829991224772903927668111769295764394935303367266292621907326601021003145662374089116660117280248348778046144587079271787068597729097117900770291215740243471217412472913108900602534858452328021384487700661361959875761023317974750387783260928310531419494954864593576961609364019792974570874424483962477130216353088250532297911116064940111091805156201973958187742845869896772992803754339449738802501743292992098304585340156643473043859812286122696401858088224679799998000674329477555549787752417631969437560950166010143781923855376627049501241955318234203379666467634408022981831369561741456025126317749664321543073360364708875708425490797607445306482261753968897892202828185001401262401742772597974440301447667842521048249683118471502782465816629773030166591356626072075386340774214276151553127675066912141265574593241188557653992112473236693617101447842726374020945736201108879794564918383713143568698149076893124480989156481344486242798160838317994531228002704803419093228395717615982648309394730468758750665954761474062813756175812609228790538763561146116267431255366380331419347617966663988738723979537765997044005944261194940330645513005757428093796031258011863722826203898742475299724422498412911419222423650427290820393162783090113025922628465767723576459010838587911889951057450838005269843155044074359553967954109437661943926644455915415974399099896542380365838004480026747106158263697133187042116955931193747464407729857384968958218753768860425393021873195060990036956153151014422815816313205332843685662128970214345212707710320879492992909740664297918998550532713779071367256286876412665515283555367665908204481875849331510508315994079266198395984746337668794656032478744344435484312721472915032950278736397322978311568451588053669410801970356030244916375313875369859718995254028491705153319471411941769550992891889732233518686144611594642598412121859789967010894138671708849275489801264637946578643307954011604133696754029283630379475210415702730080365413572347967706684209275195261368147302888658554656175630069131147918343395455415953900974111593951227054732456286101200791444646006868407441647355072558638873535833121368850173941357885912340308566603223017066866524437556217879219083869513232625504686390278914375199228026164469799376160704873520877028392038666125233631363830643168835447358658952785009383553264651840698141087865234930690625221062506488563772168656197611753322194571558018956419922320966799110039849061004152119458982000850402542183534322596052665901236267434795706338652339936134360299136839974381122035259392910530670253616655957570202674094327723586624642258222631473278762095100289337743241345003234487457633550081034002665750491086197691972520075323660809378851643088428583105111301898053051048152835408120135527422089128402661005903321445287756158459426631892468733193695800103039113133936258986405620495357380383720892417116093621248775553492857158856763351783722847735339896539439038365324804300470868836142928856894625719555254550919898706801128120487120608628831183515756958695401210394990753780058144424306530173151485252171316331943463503724774203890571073985488043079275825760193513477093149619798872677897276987557386136562901670849491860196612980141027974301361104636208348736378585211303228504383578228674382223398213862657453778291901041893697024991127363968898465157215981316903996493305421804008042679541382531623658242148543101410225690433396837829776542286786977334873350333677224433152986873116656527025726461204850132962079315237572189416120888936018256650024623331649023658441108542833804262888186184823361243061197302601097242468063899215608368568370814469655154301800656308787651036562909753580189816385740571062199564824513504381128910066928939641170087716378417539560269476704531337967236337664581218156216915213725704987531554333040984608734936958417424987386709214414747370714767995398873515722606847253563387744316599419748822670537610903004086145246167927701093360599366220531619400852203257767580783344867032503360080368364142163516601597733377737056459386936353110858657891580853885929311925730220001032408377290273279796859469918023136933499727614752340767438669884152122565972504511305460197294396766210330780613385416734005662761765634295188321293158680144982291304359403409344625068551866121404486054991340813513400554983612452189438380620159106781832446250563381251961347116893151658122975558806852347832616554218146389286396757957586160629994581819434202401569081191652512487045948186289113907430119717802614744845587959559719635245451629000246143180663746189245654294957859611024801635605148287520256494946660185998538767564961341303810860211772734129564170349162827276124675468851738342285175715356138566163254695035443026068324369689393084376145910136531297157437132944155558834332234429370243183855853634582124245390039458776107652200606894030001345256103737289812366261038012411086881980764968770920672885643713152236100938287536001499147686367868425700564277644168082340857882690601038382080264527317313882352342705725048637577935315484645214718855206263645856792947506960798590312807227526614128288260012585076742843383514843718968676925137698464422113263087201723057815135755098589339422561727837994603985605942474997147786571630333921049360913703795206043966377944872838274218000204663969990853468694055125438553397115548824932289254179938979266549045052894884054564266096793624547519337279359056621410188067451694986658413514408377436918915638276201424697813825795305884794657836138289873945479418237405584273451609128672383161427654155097125363507197007184991104251502705161286464771547616114195670395861908114379302516071937383165021323394036416648721204837080451125279729265863126546342084236475652340797443489169811644906019152388503559899832989428019255354829729830861851063923942424549881123693685599011934928380264003879255524321420468249663601888925854461837997590586361646152476279444158996134668371094179429891102113375236159063999951203733527937436052349931449985781344596039058089596311899111320347392644062420076597933077712728756945124584103843679306191378703350261418031310916589249025656653269389542580312648534026092168309062136018256967024218581956679389302854492543302553875173067063077659139860228980477454148611948896226844579027601451485304704180732845531603851645734065999610845489047231274583976071620821229884879924266702775788416869891550944202913628426545918755615224129192430506050044418180209933953960759473915387094548884016240306937586428671217420082299511553834811716671870516870870740110920625033320183914106410044261243964314073234548593635742477477746589105417562650735174521876178630876951048162742880452671462562022625263035084458268623276683777695364744570387438067861992605125044051975835800075987863008519128158752335476627732283129719978342883839319901749443076796704692536885435658075743166996445737109168983247977668241091931325274640785324503866540885049909497758654521853281266868091582985386387669034920391511981324154415007284325078482979542278254216063815969224188166886444540738347012155388751485906857692553049536780077184241706627384146428769402478391033454712549492741950680575795053855309482747709956777351462262733399788917851496848249165032935473439800811936231264186298446929991268034823765175978080981047148222607578856385136585577967148345432054972232880759621872051259748468833902533469737955554589315131384573579302530814347104442176912253501722945720062772844415230743177839761989494485902244187867426558605022645653140546312224555701128644408901813624587552858110916483294182632886244495778760559215081496288540240204663440430548011905972760217854192776795220946503161016290881687528340784385012849058838130162853451062508899104130529870844026802974098253821164475946358349930115868982475486596291416172662513114322605595174137348736599103380528611582908962225880668290820646131851335087563640305629790410935612646576666135650913674019488678242493418052895233755334950271564905131286141587690343362151103988183645383102368864297570270910298094205573014077106278196712401755604202140308925087198816270111623684217058053485904716236638359673335192646431582535544577905464705505591058672726493384278697142557183892431388202425097186021426697764459590667922921831441410089674716588749875327652766750861652543063515887868006079616925003589146877243175860797227612201842449170443016071648430998912101498970100404914661632884974445120846129885420506627384576416812851191749785896906911925233421486721125289624602286241455877378590876623796091407204082900048746121302445445456263608847264578214148639677102861544522835022429133308946951958840668057944840226844724256852309495768413763472702516555325947197082380156552411377871627043418998232402909388283503766547990613336141492608656757553589093071760303572739685144372059403974685708148685895032765018301630894961085497859934543570965388839238720324752585202394094835876393702818239256786093256125770361668928149388017574374641757911351575665941459878880218680502432144409675418385125869098634787255212004881533511841565033827453408945766689176299493211512525279199813130100182400416977512191501024667005424175479885424271828802254862382620442079885001975263627202704951836086462421280567525052279061981665597069520605037746751290094540283814361537475954800754187132620680587932226455806791496455908452336095955626695187754880514182922497896540013493091382225099214615534570577398407582545423594729901889509649562154128281796401599182235429508198340127741132222251113384419366759240570703957926604313337850042071427830780880300110209885696314481969325508694275339171471722394670190808565399758067548213320244435993922757899728425417441446634679696318619214211395321399961323054085226588932274646217858974140326905276983820632505001751991929121963318563834511543345441000347691951015656379899862444943942623729883995370575353748226246990272334432238189960203610652414367304709368084250030326722488985279000127486697929730855538483778152033619738888860133355395819865648497321744798544105428867862123018457814124931137655932445877449647047987747418296120522718283437384320495872552038561046421815491663546179655022788830381435588073254353684562303087584331861361782794349634002061251360364574983020475996156699466916590798593154117755081098633578641514765536738139388790128872523560746839835536115954589927121560741187999249001510366642403268238615390077136227269553604098798628141537642551038289651949102543119640966827085368997685582703173920143564695791169266163972014235073040897355782472355649970630629520847342909623439977043758298571880093691434596638046255844521198173745742514424131982523516235013375520567896185126556696023464968899038347910806207904632611874482573265363419595096529153464725045617745839878647537531946801470476479908458039106223844203351778890501652085617573630689380076206600841384357150801033226192113482941965376058990460284219004272753597676014857986444752820808537063076181048139763746230863924407633270830902615564273047793761556787152513683043297882705808066449891031750624998258142340196787860836812751069785233883137464502159518461319503406088648842311610099702010129281432849908347283222254529104118902298262017367095152493513316268664852502216133350851910284356145234253130565817057195420136428985664351515714805670804616314909902534114780746350919754877652257631243639890646946583206959483588094571039260440167255296216064287801330863738575280850397045834544190677713327159496958130175783161125503755860765824274821930114552551994974356633252376898337038838349447738145145806428614097930253737569559907549617755192191326816090187413691868464492158899189586460339836395064877822977197892494063531716875656986522149065118741078704080174512495754276980440610405431129766425314572863745775015949745803399402751196839754426053302950196909059392184141081395458688089142224001015714797873504088519468416413058529559340743019234493965060739398419913961842776317566532709311673435387694832071818142393756087818655689278985717788825510295877467717346126140473944272009472217173391725958590787528231783495923775686641981023002754761730953128959171217681360062139330253320672004367385241416919847905001748162522850851526022600562130593795722010391230112835190115876032671094480947557720547030128450347230660115535996102256487381970566317638459396279175723819579769022661699449824524089612309065742272683618059622169356831231437412432550945614112926240576070555738935541272632494678164309653273446023337305092880144003202532173571926063933001952924001471997950775091452528516425645049550735305257989575723367711254453529860914071602474585538092058480823780973069188085214488745032422171418209747782058714886749452647446036521961113574152549127029021821482494382031557603829429615477092229713431063940196840487498851412861579471729808607357057768930889286604913110993460934038164082050000746522876733544281249565978481332208562080214446829397216950187831477851824228552995673066795396489292074357552759953146661601964146429137972227506521507874157844385328599744747228451966559235651602357796064958721572518153391769185207991270590510842103876083782656277161460547505936640070545150523233991457416871376759059062321918648936094382088380833662570983281855505967436931612694039499130998740821650557240934624423260173957958227335269007355591012836041583049750403265109956430572026352890768651060626972482936278875897665201939209378514162457362160596786795456733387364913414021655001039389145810614833932265591919072246461952630947613041421784860119765323716877038691646139127327589350322702616938816213560701083952683984717008147352871947726889695545475651768275467059991533385830463670620908070719485744310126334856683009081324584287355281857974245732810489437575974851981526403429922673313149041209489417686291463585812285909390400329045143844049229782200710817416561231865903169390892965354830305249250507525140080151822212228591854153569144574208984626888523683580799406068768118405772660174425153257574522699076426666060090264972514547613772835575689716468060482022944119042915185686390967560591911033395410934618823019552155957859109448352938011573360883617296805804794101881766490097764777935310434110569210538160765058433265381478280237316342319157339167855520151851696697291676183451135245956199293651888063944585793637198784603198038027068831879552509649765038636975290721243719956793285605576704979165014007717278800703998767368224105033394997605730108552835582070671046252400116287214278320358878974596402619678275667075392487959178970295994111975820998985561695947238660886128188728397211818083681913222168167563606040225906853088965272240221996356617206004918110334488754836939363358563038198445803005509203202658868575052594554369405023895361668844792849043185802453083485829716648131021952602955480699505533199663282473434910391363851476720768754810122625457278553448471154709082769439373663430259904285891964762210091214181312352836720955797462791191201637685975637123004915520510071761147031852173259259764655534943523435343033959975542454263920414935356605300497395198448915310314423456134799653333156815033788457640337317973454385706316578003346370645187279531248546597222165123873828215588817068270817579628795710492986016237313920638164470826196044074484515945098345508675529018234298896470241173684873061588585361129077917466466883169906665209823329111367850077848753900990867901851415052320915595859686664034944479772237471946602926898338141357342025240597953559897746562709227561171402967894169324382813397200975346067723604000213521392904235458234183456514542867272238129167589976045520491014547239538895582275065074714331410594535980246573720503828420443373582898792146921716358982244126659115535003097734571788848524842930503051439993170897981395226547345283760320994766674515317669228416642752090394790065449895449370735246968509248187987009043974060996019677627631478428742139735442692383569346557453227344446091591565053136706851972125268704688522816568616166314665198250594439957713107376727483042040649584260591505625841193736121070171259121589062404123173379223364171475879710193545526250002568109056600367075351630565036111753105413139250293455912256002254159054737752950499334932820886166069300718222555251300831650397874364217425461128116325643654378672560968093191059814403162383970329408153524693664299120105997404674698259351951988680375310077796794201350293460396684363900565836507399327950425916230321356465129110593826412158116998680910391800589015093428294655892852511976984323176496664768048290572287318151323742784745666382569250604755674023905440357825182163704585566644219622570860966210167905778530495863030623922805309808372079848025822533671267111885023781386247555159146635403866684663585764187356394168697510715065587002204461827158592103211707124544424010875632715030638229794964965694344699901117509949014058120961643402902145644264622106650133417607165048944016669233610456469014241204300871512423603259927725608698744658544047100097127669408761608345487723950783435781295669716843679842580451738205289821455290042050894575115977313157261347039348979175320110891521529357543396286196439985505686488644465174265528573556267851478802696134605664370485144537087498330685603386278292901907088920815039937702460086426730082040556680719300105408809202738279330464127045410169100650370647571236254046791139724435697326791667357324836550028487218231266484919600537840038252546437631702043113937273250492030177790703078947240386975384632617055057419958942761523201287232866886406971043908124525034084482987075854090381962305543162307527028745549838251859756991015558108629235602549713077716834353309185898274253568407360182139750804086184744840951060555556543441523829757858823383516690208638764979262596435108418948987876054427444188223874976197502031852089890182599404031201154752960251013664079542582147770811551810008639306417912959691766613607385557078662290564412069647344883459170746349828440860560295162447619547881892458788306953840849992357145739788776487115580767166444667379377731959803182366203445426256224622628382251301186972936664659665811812235066367190416391576290039655412965974246498028725971260811536200621950917236810476397648881134734485553351012076275723645739479930605106253033003505425363288909921449819617894730898563080077037496542784407919025359384868269566630542552649158494464684909618889770838363224583490247327051389820615183138230949489224679927621771477151142966206639046457185700511858175547289821912418059202043253783554751045904359942387755494460900087846026049781104547607571327752394360546593796165274206121487867281130534260470170141821439720165648699607005378384449875055743570674698442806894889933364712722273519195123635408887492134097704206587084339946026915654576204228623252112031678194204229275301500586660102933369905871125916743773530407518357280343837533362040395300836121895374108519340138455673614261141133841209284412150584460452415947964506186681814376013974131203901093258613798590725746120838989084862274992972863711086384001440249029925417234589811820802587553327270079178050722133925397809928347875120310551466739940205772264792973762199122896064832276931226392843973254701357941975786637912759485463235143604474180627883134896195744610410125873845219722137489126824671831899402909980543102811464732966387682112371489652049782597196755195287753504702986943331352796349805882604563377102809735093605466448285966749975858679038763782966606742124245307446976922933635138630227473423247690507838258361831261371762786271638280176738250275038786424796346122122694603476794998203560130954305449202886727952171599209439822531720786964686884659191787939092971179268795915486206900622104517676209929194951514010081912133787371943567618484521699801047451402391602027892088365927061526742487356866806533968121127805422552132064934312800339962103452353247772787662482050655698012696216196809614040187934799675400432799130652412829450891754415281612063293858232398899572588055334019280140655473209436094859929511446074633070467847940794462554232910029403648452298199625564850867056503733011497804723787916092880647190854638835879875544343380750326604280454257655543406363381775695343741715718125986227841311820937296345718319153245245432752434653259655599985308549773517920209201851533993821468581777419229555895248722595378117786613642686326752600607802916745823685863249273511991209631265134626016052601473825346426057616378017589068594502155501577523775105892577509699968584602243537598425658292756933308117802668655316915837872477622799410815006117447201366075121752347315015819385426598429286084233642067061723493620804792244144600240513256601001609357472538060582212125452886691597354532733858617379420004320663353041163846027436981277969760039939488766319616837653110643136606369627381616635877133147842483982286362223425130056273572935205362298558762540967434254700737543391370360821270800347936825218379433287977258175101907837124269160109048825087588183357117535568640715330791483121700745697221303495347345165164694562044209835992950684398934479858263851804421542432927170104404531691263859792314874413652386665325182331977900619831375099331203921998223642878198270584247497054575276406889123022982140995246115566948219069922203526997927398201498323319807752655495579539878175031834889997992291699964139694079110971646962209964629278251285843988701823228363414030827197444467422460855840970834265681989208247597630947269380913758065487863516283806752510813312249903106488720519761136558301907705435256989253943141216499873674221157509300832982360133792602519601602411415272173708534336586318071809027002432826697705905455725448704327577419661290527893832657930269226518245602496372859522821529764508982765216316602532765865611503920124077497204157965077329022180125509586656718774806478662332444206124606626548316701433631058116367181667532557540183542671732553157244208513508344568935137228736273738843492162281480598143330160600449294383964080062068780754196172668697248179282018079095792869324529046202057871421870587421887360267751812927507185421535056568945719279547558498698408166352133196569443574038830363189039136922026787376141945794994643198979483619559915058437551031795914083797517960809193608807658177035326864054465463787912927332715282253860442300856931939285496693609951103813753958693580228860239109149664014046399785207988594796858400963866531205207898197018298982927908838986205997168525620029186848765683621249254098969583910491181168749966046580843186189750992011603319750967065497739402028615728810824828617354885168361849851951488079482224226539157177425838790180488264260319778623198713128729281317388579466569043092579386715073754720612236337831849407519359771470683035301809141736827302237024464361362899081403948116726277657869432626135415707301251521548187699459509127038361112559410454054090288692004861883770742761063208272298129224894035891341437705993214648551785840815260865166960728758179326488390532580966084024414274928628047810551637889358099984093587116947489968538808934300147226570967474306030814750014988331104743662294344216837810207688470758563777285077048149370617051773903210143421694972299283441733331910390925918475693306130280264581252754987198532157223513706741087290860084983935174586680220948615646525929219083514820258842768952993660261366552658527979239426354088549171213768398969626602712936717087617195353413664536982436337558756419994921847275401912152614823988711340379934509384135938644581683817306683247460584772994726852893307094916529609655514605444373282228609131105953807593901629610062847149093234833682812843084920761533356455867082394591908890068483571466016321452387547568695206207712788563414139509265857726757836518528222090911315494478973122945787306950056155254946496764148963972720142399836772871437841943752858598761918624041562798100292503072196106651575698956852571131955430184543027658115145580947299304238295746661761240666413483611918914720596414934640847195930760202567827603359825731966646633839626642387420227934830209985870314446090563888098060715463792493491466827872814714695509872793608632997450721448877120092126522169337454231217699915738210111042513594621941553887848830228304053755549554516655290158823277773462248861851839921919237203086192199951887656558425900952999275981122191578472022342724325064135945240532657317659362177065855742223718564176542001136272587583518282556004657692989226872256265489032311005263733966053877696673644879779612038775370625857812212219347868381140238456065915283710904415757458510773891087149576251107538647910127584656871303288335644826984132747767286197798770821959820850875095332254882010951277325975931227507672501292002275494694022813282384877883855414319622713660244677498922754605236711377797091110082776484745722876337673929853594540790943990185934272830464696512481626102502030137631332310877337733371368927009041012817723131016492783585453185051024611034354080834361421832556109955752847920951685902484204080288865798888594518101671763878757108145157715519723334532598307975584113639781706382722214925234130262139084204628842059597951440648405517490554098780652923553360378902768263506503018405793612550408024436468652974720228097509855674583470134724186716785702796454012284460353423895725710038447505055211150595050559806689020439428280871509843666500797725853186960919903556396418362203436877022705044882268270563219628853633227935766565749620289840367378518865590353915140242149042070578369701933714221281052294450131204523091077970406286934460115932433560235456279786118857335806813336035169127481275244777324768978782578277311523728047460630483106731152805208920599779575074413838579357038902330490385075320274423193140048749341751309999962420605389244899614562546135771265118154930576092135761393866084181689177832014070982975410364740385301079889326532054024136156841073921996948280252259033188544521723094377401746898857768852063480703680332076650552414440657283187443676101872992025807828723095680372033925136836025175433127336472344369375048163273216538588357862480839797675557687269056758946075255524877121460582917712446212873064592308439555542419477864771016097677304587669877474184088430111508965994785199370779451055981995628659806854729051647885119593316407916531125612262047735376773880972186034125166548330178797145541971659762221184645697687433123458403788558101766607527849847175002680286630833948807824935148818153612880213125637038126521105932395296728614565422989708612653856091654218718524861850981840704169763704285804360006711932712406162567219127444718451280424850381447025292347616625012695731664069984459523630772566780497858663291449225663125647238315114546983451614538677525999989741346575743274697534789304606316161493015195565496837221826873023360823507424968503939284218711771857975441973233923092135253483141728256313382376782763452438809712886217171955354481348115166148531183879126615969612101777424458255230436994792618691012665936631624065784862163625024297224483257074855780975167502313057176397094090877174566251707941058820008312308182764353458016930225765079274677970298529332254885184050937441776309382696438427563820753696829641839493496451402928637702854451648568594748126308786431635143745690387694420493125097704471767005959184502214855207961434904668658099595285745255267898358039069578678546215325206746655886438852356754529419273593110565321203353207858476682781965483944429025779141461445410045643271129724426858666368557988773662826995152151863673062141390734069433528773170966975162873207374383016402360646865794535310669486511754120944379429334824454880574024957308667398930525245532953634653304961308279713592270331508327030183002178616717592460887665693527166836752738712798292319057744135149319833560540821397534829152306511880106549465985440047097545633230199951005128474961775715046003070428117020592200821565207076800537090158429964126708980096493237605955460635550159780132900033124943130685671026585007694831749744247232388410787239447161848333717351660650783028553665924179709811563940398179305433798282785417374047042434858325619600356715112451031217545131544314381611281730819072215685397248643879063311344642319922468251875763252720650232858144166737480076513537596803515511226144123647166876430510821151405214661866720083446702271404349214487073786321996808466726953362987200274856433642295071567650700573980956425863545246512256313329103020146507862516760671302573002972026033855849914059729823555104851134154173182150004771282747256088999398111554125457499100959119454117446421411562139736494365338610540946865679898822695189598767207770729223322620760771402622585933208846624214313376419582978679155643143688157262461625269670782248407365556406100305626917625051247087284092119544277596495078095489391397365144900003549945663626353263662526840725292497369886874310510298639271706452452750522363626684104563092408930810605753135008728363539370750744979936568259343694527801813458045383468019147597684824537108319314304044890691132822726611605746011727340151443138465411861963994564994634707522671898934446366065426721141430248845148502954730699199141304747218852679672475344905339968635561187599907331740614027704904474774203389993460377441991361410065968341990390019945289930424837553849943903502757974386179349084875395951878831884717708192361371292937694903090557198851711663896973036620742658230620755711374185798050392442405953598547544142382314583690840942095936831473940447116919251225699699789505654216316723047563581206698618107910687401998852719121928859444510510234894786005322692486092327019393660989283267484001715491039956474344515922792632685258054416690262150061633973691269061828592419059269207623116725797035596714244139867656271244435793569702438574369184862587425756054195684750320435662643824220926808968120922929706273897388330290488802314015828514182388946500459114641399401559557912112193067964387396029389672305269475564426871622406181036325711871589037863975035050027743125751816536596537955027791258653148104980820688564938765564780016595362744255512539354710984881422877071867835093577299351048594074990881366155296677203477835310293050103692746444743653853987348356620637467954460997888992810442051583855449230084153573863837615711952511838745843507081635118911587240457693477924332093100094208146830355144429654613730330432607734310840177997279503080026875438594532942669091783785152797058490297954754780714227044322420857230550654063909481372239200958507238353099272225730160925167492307439839910706171416062779267949121370680739686597909971502925121418733354607080946353031308263484956900476970480981233514379634752523185227952518946316746555291828806395592539422377939031275631329900032818643147208303375117038725104188479991065736873557926925039405630774379183998433315777712356139483734735469741608785144999545763773415861360909349029597680714800938728351118861563503914416427136613550265886450071821526611914167862344810388627085465235056631633373369869257965972583676425095452660203699038154968765326772528079740743742600960173315783674199188435457811823493500651456692359305431370511894184425347822149002417625023271355537174762294650348458957806859725170962845944501404474938966042879077817086854378088972560077986063796950198891836933259393149516666232058434472515954484522210770266672809070511284450674880249041348211922403636804878841380812660663460096414099520439901182934295752809068679892481509805222902638118200753907892078206851770715611069791445756899297776162219045995968925182339899725004621084458366539544665114002814895823148196303110065493980417706795187207591238439193005437394037845433925344995326188980430265294215036420877353283780560059784693071328802138079636616379699341841148236691277109804413169054495575453674356563377670651165855486111987662937598689142849026689287052493304290246523050214000815544674328294395114061236878248230876183068960121414544903244640940551120389969498302483158627661431863771545163515175886072527536304349213928223152240640669920733092997842257499535468114813009658300420822110978294854368863948589375364950334155992111481975746451272752470496301926020038033865582250421832786860836515033961370118760174966358282280798621271589676839249286086478389148174063458083729110832374614789975602454582656191878990014841112289625236469667671033808180176280039553511491790228770417044231039011202624588326106432609929128728299370299221849429457674814179896201990967949246186137393308275228939412090794933444569665259800980373476476260395630135704455466929716958748509945851337166059033727543820348024631865451007220947718054118687192979156420127921939590260439739400740808352740861023362006821841177397521916215956109318216030490326111096402379365717870548806295167341083841789364153982280283433443360533624322524238642993207996266069940905557578085035887159127910234705732976168990919662929234243789664736850730968046226941772990137371261793352692419260337491420597545421588469818722986202670325956526868503235018540400304427114815432542047456679596061018771456239500603784847277546242519223878073077390127599532374061578426708372327718279394839475388497678200634606323842437888131925192306625132809916718290320770875148914007525724319674934099352047047797507709095403566206156785603522536567598561695887657028827134050244530687357609300083952342524540039233396219946199575616240722136632322835833480869295347568053528121213370000037557762345907406187311490354684130520274327699376171707072617863823735976495440290821932039846002877472013823827615286465694136793514587008095984284202399472953478472237225123369087817963982025555412769686141332497137249143532979753111442476033188095864076231490079384384645355768069776028070784314442846335862545016852159018119932745677963773935144051031400364360861935341294762893595090283719110687301642460697747537064212052893201752703068102762409056915270129149622693615718642238891069354229110951343721031250375399880953826763158947699123967269105916252983720924730762717690938693125802338012909808690962247627672390657393669814520875350827894030112447307745032260535600516514038093780617817835962971271273238009329723859838059071409715706910868317079421777569589649498260191186388010942844019097801245832582509092132770457604650851850290501298220900613780734077192430077549060411458727654079544641007350788840728513406743539946063975615511918432467157355536941778443799791166659271358189533100790093588955300382888377977091823100751929662860335320112479528625218961645782327282377823061970898925919237714400845096951313355756712656080926702401859096028248913200956816552855013336116152468299940712791718174237379368071734796968937275195453373383768660625246452393179421822115119605222349992466998622561101835022688701043111797382954447356173913958865430309469436769043665224822273331399694795041699822581402242318870530714572621877981565399164740120575603488978701494901219269988268778929743832715362621909351771309392509537185798472159521343321039509555861944853810360235128743644892329989297951447911729891505408942492894339009544184622208291967811015146512208115714430571533868576374542828124847115036204652309339424789496943423396435062581129287083543846369959729563943877037732272670780316528377586213030702981334226566697436967300563752184635126218429475328851423734666269711829941938215246304936129332271046755286112015093264264878314938093031183607232930921884397383546914517294880970007119124620115644691310235109064541272346097655654647808152337650786449231967433894737197604855595163152201445239364842962669717616003008862533178677482975404861575468284789947877112245404796441140223248275109533459432793891393361498814460764087557666656516849967907073136097179955746255535819870597282622054283475860207022723678122009807388584534965037988947876736925884632503535301410627703877213708988109423308211286487001557618566326822517625689492105048898093194836012590478522814150496693361589977051532549599715729737908855080028965546872151179457858283383807672104797818559495820125888754336153533716601849486683168053311024565000553514618440675376307802328748365506862590503263105663184166711540124736185414361053870499047164308031154422172046745338637280603193762547571763999567690845655185295057404434270946988013596071584528503580879408829989960572857130129304218474374304585849981713507132608886666928441365401633301219897532845950385214337054342008414701945278247342127003791410244381905864226889398656364910925548801760944750516151704090385808937679448847428996316683204474264274548736204403006140506970044358825334992567634796598855601885458678118721921493411686303825418132458194206258995410466974982511268969224178558315092928982013237439484104111311638631847370364712188364835510589635990949552003090327797801636554228178854217376809371396822382817392666516247009877042762347121070809408903633608442320843711118420829047608194209449395795959724420151587137290819511738847939096767284022714837513729781263934686967144319108956904594499180683204534477197210232102088713019203187144461006954894770399379958133206358147714513349077090698767902968282252522868495666485223009312751271022188934935801489991962546520523976252166787854157073479835879738683131578350377427024806063966333333896139419633910697727080580756237263382404099436825248106555201711856983594712568159274156847083816381938772634769941757196056994494507589324341355135776878760476312123025842767218669231149664793740173367889212888547403087346142311822070603898113219299746254645319500998108035888274801685234207992071276152550685750467746548196118999183809923493152698709205185355455318859285131416596156672606539067215983501136177221166355003566749824286876970118907432729322790751100003103029854225166805720590428034402888814073713420148463340101114797807670849763995843274169794905197225841271140257524763805611736286500653406976335349413367415793368133157518183689669186992202904674102082280636787156413069470057603271071632261638971415272930180423566267565869077900822064720405688987212314406021117078944763661846521812363345617729995340295649441348457887251811915329380644927846506844576853051757883820055068820416986944977859798922742608330534821165057447653766794795705584122398275821375404396858529442385101394648944041001383494872025768772008328601539189101577077233264337579682953443691029618198136888709931945461058290812418397910126167995414066878246702411553002096353515888536192413868932103176120770082871288584052409439907647734510641536094099110112121350571866642189815370697509820896491285781383072378434076713085821574218878322582474359974550359521404596391212545932444668770844508981996614839769322020710549385725810533795622406625683240523806853268193006485920546655206894381236880653254145966346861747326163800853266459532062759057970751566051135152029069021958153809229181074120104940721669585691181561893899491170002994245220394869644082415468895100790869152042824779740885709900728634553391752068575100514140679713157636631069122998711311955478160362808073905522735914945642137053903764074820033118247151759574075505193268529576347464731378137047574735533847288376612871298895004510760006254329865827689372189207664975651919209898702190820405289035433667641915052961336294432238484314345313847911633477483190712137300870465011456481410925250519128736026037085670319657786361355095149414901771763450918992032665848802902225086833994111196953347687947308822675079940055088652358441505419080804943101193095470897287419674378254748828714033371644334262145986654458349285415432998421702239323427348100286817325626601020865910361360981252738862736941900765741505723071987130104990748315293129562087182819514920397998688093386815164442709187103319980833693315636396339504365366337086418204763374296703789418216049439966719270806619356921238934548022919591921268968748531993519501202897970138527505784212408598981498860062792249899504753215413032064913915120944505877191745256504337224340828839537694703732388434666705822513992368401415158604646636092793001101265730744366171960450874911500685952719206354434208486077935498440835865871929456400482939500221232129770796943199699971391944111247455859003862807508065144439251871695518450919853577198490878529467272802839210374884403899791335891514097113711580060458129992009477166626350038539946909211696807483054874695414592508313208872790347597495836543348694246754921405825364617855553220992632026631187275893998385751544738981439898490651701682758120196191475431965133576836608393197445906660486963427309367406237409519810490539229655045623492142878756802512456760246568401236098725262871843097707057958451432309507063803672884325396657882039809345690191861046698440366558609932841498748315945949027106066399753253346177183599523745427943807208136687860655142917208578561653474129733560510294681129360425630721307347958212726859808529070159020162655128951835494246228632448800057664484969916800941077414170124244884311075566153808302779579635410552097362847203857307322259673853250563403699044809529619152100502580569938175507794270996424225034683296227754520900584917184897196947483683162374384869810198132169115595036385048442272949533181798116451880133717655392459399751968851849442632234628056510761790256354138270513149605812842456716328803932394867062601358404621193784695945492899858475107704759001144276617777772018623077140531699360994507291624328173604048116404112430004485215544703607933368640187415241638797271813089724055233834125032520206877763484304149263965516918846165288763498859818425963411323385644411887024694677605103485629107118869770667367777108617556418413185667027981608896651603289190835591232869553277386600378809128921908418683310202523592206200141460957098762795482841168759720261265422972562633875617362103777229981290225136799052359265224245525111352868336074551156052503307299481615844897294048368600310275136855878870098815876515892424080842247013855646070380532514507599017524035759002517809145422435893069252172331799071763256610718164963768105742966701481553207695605514456185306453230794113988938280437900334632179359086318565882132177336286268478519680032103918118981182966591611207437823500345839357670456286678765032606822492300521901427691675573774853475799917006562780296113356663453942388488855031837859269874586210456080471679181328661541567478620684512273605427173958366504172875226706159954326681403341657633694362426934661325636457335903378539924354708771997305333332292368316342216938094131697855158499404719322471374469675338477972884117712026106724277430783210806012159261616724387611158450731769177484553673890186206066676579012424205969468458741726955362457670555592575800283779702880989974674559559764270275569976431048610738290978329201834440704261390635790563771620577349185014066310855686308196165378913492129105456031253811566110582148795421314156187528074225802705242531103842125289925210406814490870257575684393427158605489115956494304589981516511725570112195247181832672018783250230996627944745229670287157756508789382444733457088268842536453273596486377439490211955451621780777418544442645773105450250462343981290244966351007536495261696547581473966722138326274936068973973488017313641815965746277645617193913020334690363993233427942163827010177844083284200341893196939089863689142205538842513064437428607746348581607212618321130171156482287245037292844835437392009977034062680516774567621822585362325284519523817734663518478512248606148720934135050788063645925403141665541785814380099625889282549566347858383562409866921269135801669774224092459291846322350345409234827475638580768730665152744918520671996103398730640073257577719540464529836668427800654239818948896222754864536465496984605280875810554583989431883781463504535156450182092755510581524924994087935405889506568324607022056793054761026270415943885753770797332608684870503797312230081565900296518567464539397991761771093184129442497210258108492193512355429837487000891943911815381477989183588578518620935123350652542007245890563705357753599681422555699928659114688297827492447326030830375182743199898035381579157071808040827858598238030685281231475023126115142717147254092943705412122570950268822353109386653437675087800838094102209180620221833149721432163133182582853983304055928786722956718328450761307751322767074134111840040751461760005278783163239492060241918837430944065357344771915924222644871023868114416744540171717384571453387730978690558178028926345419837373520489364278857623652394646506645632900173943416334750047490166446203588388701242819004009677552096188802137202602230734283790927954254232463846474311827026585764037116081638157783210620247927085087325740641697194253160827180751189229335925874539393764434127954627274423603482426645000194786296081707881396801069011560405760525729336135020996062746705658503705378827223751245037684317203025269022578168521750784527941861153963151497926574735359623575476007132754450585022862118579026636988591911133644549984056011045479823597219755808482219588743074578209385875593460525692181155886310565448409955965549484282731127721267391264039631889243863678167253328863873753205277508501237494319233213712393186362035942660642999115934955746391728898903959892742548267676448257491606036760752798699758380031953949212886231790191035421152688239759436964553908515874068749176628942038652223859361691693983441877753857255536261793353544155045608568702688567885753305059400024363098898434482218205284971585113998345148821949098308444053020192695814352987528382395124477386219560294909938711807453418864464670944945496453269686866063759816303940532116599731485015876435068632728284887612439104029584264805746030993598890339328822224951743224122687980796997752101415228196671839752243719065439589706038702810618548674330295160445675684533749774687703589414260459867075478032835212589306630112759665052345779108963167758351525881372811156390859752381502433245094808148288773370165491422318462088330357579085305419019039719076589906057749591936737485830825252815444210643055503173902618598506488176469546513739631367573587090267969876489911115711364413614474127681952966074187420103930501981128985444288438968892046259986016127128126780514727143658782787040620555935395031274829226565775034947600771340256664703083207796366590492335801615506061561975564763194120014809397523907720711324753298436437226009203445206576512966229732118324464225156030575776009179858153597460819505922823254597495486093521797273645996713905677895346330027395014513579634668246292776464356096096607174304106633312996509428606726979751665466208008205137253288493615165588312301372487771246426213640189556783398397358910089321194542197969840090063542604028457101179407328847632867671899450416015940170639589526932604343074283720659590258849757580296225536185952545054063952489062375771406315713276460423239280635722792246619868385314485888966695599318419638514646057926384965221270521752078221790887979547513001769478578250517722188880099635243650399352233784494611583214601127264647443561425896455202623325734607570205269483954388374875487594776587002659829927727000566674443877109228520608782024403679192688021026170837502339601182357062570990530933285996526588338906320428096909072549803074628200639397328547055971250124920098157291971966661250140741842473038500978047804656153670147256445248766838283148899935822390152410095952741278678807034338370770488531355011680149452421707797954050853505861698321454023585149529761895307101191430319834092250190654426541717162557996576264822676561249459645821830143078032115457784357852076844801066682550568300793272834772823945612077478868318574538427752928974962070967256238611661007897202385440328594284492596563068761412962839770646248238184120074351587830732006009916383253832007692916767411051798441455801484539079853795310950611728624817453120593941346911308007663666204042136449770398105470196172085803237329057211156958015115912772766034911497741296326303959935792633445307204160369302915201696030139212097624071894268513983678523800484221847156717739495288556893100239661271530221732325248387966469660429257791092201403002450374538028814285247464566446698685552386140820303177811884321110188934363745872587202439416045078437282724564598794416863494049942153519497992327104709691413044120394981586695153490747308338549097008067930998060102510423579198846350295922016862549454751388541619652897116696242870967941597013116962433245761577539250382742533413499497256169365183660409447188513447884978873402176204163726428421525467263595546674302290346709364336159384691545922179964949742319273803094368108531236851517688988992115971124323620975972731074793664090540294359882903679451334562288046936310022277242383302254421116191838434701899804721389837094584841492173430491286324273985616499155067860964861438513232885133789046804741007539931714672151150865782591446752249520844813524027807935478760435155150283155468978390440238792446274331609461621045101995140343670190878894341057583541944548869107961680956901990115633365823239598904217716027192904352895698540249306441655910583250102387760900829354969517613268019030760408028242575611234145117223851365823346887223194471973324415071972478182557553336632135427270748539934116846065576170809335309646135999902107117529597270074787987661092155374298280383000776606315474213962389550462025908074461215767108033947451314860623422871322701183587483547539347407030708582947193716994643570408020234838015976776001219794314952440375461676131503426670032477710549012356447378990002872198974376685050121868044969319100609915338901127069782060701944150617154528804094478555689200493971647501956700773817963034534249741796293497609988498156501645273457354972964712808255031810547209019787658418925801864918432965424603144800823235865509985911125436397284537738771140914022516302320571760763178015494400806725974471821027655365102257654887925344628448909012360326344156953547576099875488263212763926343904031945548762265661002045446958192780499423299454721579433619229277050297720676039066993355844517822522908461692630549641134496146682529021664167230142176981712014046769527146440379042620359086875873080377963003570248894468249202238544972015191785200126575751809445937797010801085991125392033382799431871190181299408207388013121643233865976554241167321388126644668461772192494282125112307025556793870974260975932711122504280165856805350421100032340945015457979262253657940204682050711578733118220072027960791094777687993503587323927706486809914316742284475786104189250080698159783913393903113946873862838854584289298830899712397741369667895817725451746841856398498248098484313123677843307198344190466130463274693430925394737667245337186246631823115347420508997329697760204358691694292161212806571020032843549021737709176454108254557292560983826814051051549616986888853358235849220135283035185915259968933546155174104950889994608027450568914519885336995332476365158636619252812969197598890978107946261314875253177934609716554988861838887372981743124685340860210530045607322117335050476775588467569414307993483963571966856721543799979176414625950737397225659622424145249052150609124630417188464611600079649577293448804226225208393777361491609848797594587170604248232473716180462700680522980244866544851568519168992194069454171140320673312978056601608503665462031730634425771982211148031302825725619256506812206321290620086476376481535763215451177034063764945264978029670078956704528509818485538164805153221744337026217228998078300635596548744607184365112225084299946773022963254423643510431602820212813744313255246146091001379313188720725021914962510147096533637234673802199792956280757581522756200277676717008235943214931330482422024696025210095107029087206707006917170094146866034624726952967283590121223509201129042690078748229346641474494510974883033929209897149338170893760415437650025389459459956397149964549276620678165187074184733625889434508579835268707485014974812831790561368485826077301034183910076671719703772158200923159151505730078039989463197476009328719262174327684719942187023131577671342739648811390717253866736683142856614314455776708390450764515876164622704151592816346491528868402400005093665157841383799510115672410982404453837187481714384879711284853028259487565497635807695959718813144003457344574965828820758943993056873754037748530481260811417845258810004339883780267942230883658462682988121697234530426048233778192851164851720870460937045918359735904083139030223564184149493694401027303045952591654414525337149382553979028605404036666265558466842448286713278388086169984056264584909858477784432749484090767344959160406887452466708110854952304841729502878223673345961561191621176438850006384668808784371129347613117999552572684808558824979508586921605588163529955015041907333608956145664500701779356317988688113962105432199528210756226441776839570397476957863967639724007747114285405344189068967485760904885900744717288906339712186820200109969284947584145208984557818990083787744390174533755233456645692643192961300663289269701698343146925349718687785051407810585920682213382561370273801420123611835083487177904971595030529779487997642935222613490867569791988297444952894241197062795658060072168284556732609024295358992748507469558700980044166854124851858595475966814937334485511663131856369219409870624406103345355156790325668879728007367615577587808867483662250183550092660546470965663663078988623467190905093056313634959335853355297803470075421572852428612640280935965682235465656962132043904486256954666705023967510352656423860900388448023295258977592786029730750535052243106494922226069175676959876067575671551965483673496808342444328589796542296934067656652010561859452666507175536837792355885343029346201927478197910918996336676001186304069847697208712884117646102209760752530884113664651270447615284457991914942824188697243174421407432857241416813595817428411699643628716414024824037909296907233147578964838328978148886868518875109297237407036678116720272296947328137785716342677613707709462041743351060021219646132700794447695587423386014427190497515674373017171625190040759690841844285472025962497651279880089213519595861962644582371073926669913070606706436075205760102880991479827759106081339887770717282166938963259215393677898808678633905650709230230746685774880673516857548705649982045023097084392171215469290046146796875113881473078139116169708379641463222264915103637003181754514267759079714023861747677407528881919817049356692093461601177801631841745277633582546677418493272626133905061185885101433363443400830516953423486080264852058964592926156776732155067380342746465588060179222026215132488339636919603961641820261735762844241888254999949971602022853564316549043500349614419637547825258500836614204057546827811667834706434836263044591211640606313516326389712887612871308194367667588048462692492487266447354972856986077776377653957021608628822913327436462416310613976784120196003731956281622588899682292853664286364578255635878287208471382327756075119826674661646894870729318425258804607427356799338040053070122622782588304750923721877213428046212674743697477208235184953807745455277328006821251136460287950057325268095060000377193564097640840765568926998986670321222046321421741282448054660502508481670781000909285103831129091194680396483100461368500620362505550957083222970039523556777599007911380457461480120896942099743012775782430466258517160189261224709333564400038083288472857030681179332779923043564331350723880690016489907249649173748935626571904008384033370857155741928048601563555788707367088427759253218961407023491137272592842519235762194937996394854363879722335120075416978757176004098673751801441422751480085344823504818658208220014274502435944519722333492220337171383112825304333300861930539141454782526845756325922495985438876826595722078708391204976768000195155832528981219868593014301117578315132002774413500261328806268541721672138471767212937574754254929168538104542105172643860657985128444747038078398994868349110868290554903591930908878626830847570051568127561783647448663689856522398966321475957302550153428143752046692288444356183327887303996826257330152200118196066042553284441303520401582063201472447465129047204457822265827008746216827181912211830187811931337618140899390013244154684170780586047129188088361522456358881795098063609070716092156498346063978820189259498302599911773949068691152975043188255412871889346860976747604931763161152030163128568953452107672290167706545719960767831212516521275953630753050566076479768632447188584810840175611502753568846205428169783092213059421180674023525589745559716873972128537279558728231592263325004109590646930687359120122024752174575450418254392229748351096524746965774397956553999623745794543598410645010102893704164458882545898009192920277529386128822057622215451952342457352834210749591316649204538603717138318649700986267595133392003856140411349817738724855567816065388572672225411778703327942567140951067604030063878019043203051269709328491464115599352114528383594009059246286130280883174441352763186510302408384130033938146801468157110243176947234070699455222915397186544203906157390304383245894977807329320670241220251954115198176299498168875112881681042012423777068421227297893458251016501393283677008853727528901690146782876062881650520797159776619277468418460209153981845753702290828382755624279831661125013651821857300771475996612075851364263171160076298651911404603226633774211738885293096181004607618465912279695950036520891153585740457857244385035363753351926619839084612774196957902954159556098639869468170845955732313592297967762827001429387048129844457359468491343484206386376819920361994536542565678037793534888225542611440685267676228753111552345889002547763067585678398484406370769405714302818951525677696369651470679802565974423212150776203052682843590887306800124537857262995319723231333995277611664450127660040354310200971899226536688439937172092701524999100532509953590103642070404397224382471651261219105323835548873154966989558400856928342864872902725652515806847482301022612586215703496397149513358469395899510765666676539259263943510443038619343401558287635920706627479743095192200123098522096208719107130145710032697220236813964870544687185299086265404622014662450885313628748576340515458430852645287111427343761259426422487234110371607539551859255452763833479884651672091275790483342329553391676256314294322340060147012574760409617325746361464523591770727995513137467873416685386628222275121882128947529570288019383025554002756689824453001666292371293765916566007020862247755822479983025215950286944173033887647652186936455662223715776267658914022991789820755439678827806219088132415634686451630850535407978074801064706331646044541881230384230480383827448584113800915906917960621635690206409362283730138024637003570950961156459323675700340358525921201798242491006845109565306483482633085974334107228067836948737574740611891382368274899764908454538701978261721131727594349918608350494473343115473795225456899532235300896418255439292531737088796880975939958022040793488860457514654708648138292642504162403505000356172774992279020172213736857394176897538170227897802147804975197474667422863975298917696224601773792237708262901778229452702142293654320454174423493782824946372253039026929066402138994072298887410416137699602285755051628922279379304995280093108581168292678238505549469399840542007825725462072054776889833643524745626883176216509718185284218936802227502701099530846436945906484862049488977748651082044226281892119737903595123784369494080402764731408688166008042299723232826220319285289673209201572935643785908902128597929436239094541757828392115261455978194895578817717787485713991941241275735779353700274474660718128491282360598707424807616429083386878156264713159495417027846824903633562915505998437777375420408059409624406826873370321025872635000717698274147380526757833375809262508983155471449999943040667653250689897873976584344089632020535436030720725879146284450311086781922769405744089813346061128565272751777580945138426284266869879935886591168852307495045108372567512197400897068218088962370679918050488295543304302370993871471220040712288813836781953237355674519246847793576222134457528969447340875727099154744357906477789237839088711928919646010986932829884440778368272065423315453703871255725848569330686606539927340694915683872613247332907790647877095946264049779724357007654258027792036939529775107901317016810763667765707537556908156072579148877496770165459737992995025018123806328266636013570172000355964291798318352428962476413872769739902881013186094105689880003597156005477304327098791933987436795333929270186430899686773301086129024772815847797397423774853353218302629943269894924939788020897629517380794663738348274295429664755920474116646997495511332218656015678422927790981847367677965429221405955191959892625248264616673073877600124505773788795252820805357038074796000863807601579160762132618833717748863282611896505277674305366887207054396999661627877978362701819260846872397831286934240423909091509102482761502985688168175949774871348365917047984442603685182871359499026781330507180352185724014816547680861250873262154116715469215399894668850243462690738441952304515935493309727561483830462269137622502483777582334818702390218814901424009080396411993408218714503935778768769542770340278612420283552285881271721615896632497396244926290176577853947273975659678781992082727215052860482016577951402528588401158382675304594703942094478106948897834445892436046641200035662608189725738536498092006423339192678473408449347185352851746650238302503342381240668925006866347642726988310640596663502173752251844190482815417461132689341418038450934633406178687062815066953270245178297278212763954583385277501185797465745933827620494478878632936173163701198575291655669810804140414654701590164457630655271766870662793682427370664205329554762113648020868563415037002174386775136259552494267637741703563508317028662227908117057205352866677125943010746282772537964144764243459519092003920638413485954330505894728961691037616028548858663999352697099403710545920806381375716280296343060266071934305560446727773663954975553247469340574443155225931948500983797240297910452948276891665868401044704248584530795525600003022931281009766560232163449464463811368170107766851626103578596881133030390323011071493190945085402163171724936295408970121705244735822534684586657379430735014843246764773883515938013252266568800481059100507335282938686414724998745243533849388734599702738581413014689210697449433376066813479153914306361132240798978659903032687376277709537951455667921420039225013399452555090490986621871912842070372159836384261988743093586805218043350337718133859093308186293433589062420962686449464614178968486873426734947448738461706748465651113371898889936474053744007750656690926826489198344945963141767100696715848706247504722835093878046565933154391658730517372022061087563674859002731044797798698909301674776813526166506603809330452358486878600982266181066720224681525783181713628400352206066728010525664105541097411710691135784912519865124101431785425277837910331481847309133433818547059093398015562093335535547655228074087201177848776357473114245342646471100766012076148047952824746349042716921533369732227629092728180257651852697111325216711572543625383893856112634509781729181320406015400963976498022060945579367894623154009775876490989552506309073060009446235981149450230512671215996256255329856239561494204746326346927293006419365880161492420121721506529218826437035076186356350637266855453057297761585577171683217095282845207466062648642409197828628170917451155999249050466157905621693190839095648110550561636078650914617518513156407122157682946181340779649464496982255771366340327298798306143019199530527910650006797883437471987898402969754517234051792678586773513649087322757722252304933571492378165409294547891533408133320716669693510051964871484810043564281718409454047897159796729428347973588959920711721935747854423353877009159927546552790950096039189069143506804549155241680821974254963240287104086682237165617377679423389000655987999325183722314794987127681777065442410822332488657110849824008493313700781727776205538500130121957330771555282350839770095387063482303540355123058971452281301539955940453757429342990176686464700976623124697263691847186359126001472743713877233746886726986812365053922746279406018736833734135320560092236733774577861667130440348392532069315283946023377386489749515042351329816770313717113799642153821313199818800342495497559330783326681562598925274532819689973560208903279555253175597250414999248556838328954086856173935954637909605318118074981996508282421531702426262055380878835769496808386625600345721526677027917765340793662969582378333785449964258534728150304823027267129769665270271070748146539206791420500501117699544707253816930996754488525733666138589876001021402757031058617815900063160400705771219606309049603600323327723488916376729418235658279202682083651041233400131138712347755608732063764854414976653080921067622226120993057689223081188565299026650425536779143083260509342041873022474500802745511392949070236727831917383760704440298124247350448524529620818434436508494820060205104480312351429390300547606795895645439923515539694885348058553299623022229947130142836314969721540304920225152537568314394969363885249924552795893761811617266180218727825203821088041139114768132396190996422120212809013459273735901148071613164973589736169400274598090820270672119201488169245293191929252637800582842912265194979404873652224281907688939350944005238412309681980286781811905314021929887976837885402587231080887189390278858842277638095750160071362267676058877849884413015200906084318568973858105639330908235147893140854965439000238372806663828894202342314561601788391053606975196015602386438593032471771382171804730512348237735570474310850474612374955021500970305052786743549360504622596540485776904770480307722765319233708627829609079837118796778352142813942453783034482196658783596334708650801144763574364314770872902876623683837197180767570137154074742389822328182788608272172822614830989922400889047412540025083279144209794481407793799567563582607398331900146841106721108551933840932540162910143933996982182241917412361340973998604374871827624231401775956213563775803203041571029715039346090945141121457593681388968409485621307216944617380313767104815428087437198373062302602062731726394384325330091672467972440183528432256552957005866713297078349266958423826568623407723072673220020914478189879333993457457496709960425837899394238576146817116042128627613057904366995908805282784470885752775055299673142438888650059474345995574880361851571426844151053408305138327190159948973030268608505024040658765562843637350020825603924694850619228572839724927552506973720418517865706579480156174483560092370944282469987856677912441860490677414745390801157579803720396521128705020280661182622255678832013890958981531180323659689251186183552621681879274568857349459610975833124319250395235288742712830108260630119591195742339978946668415662451226728964837871563865286989859178947261236517913928079738883097006451801011552202239682079947307327565954026669443028223430018138733279210582358906448913050478173020865078932170063827663279412666898760379941180357477280363931572671463518567851648624630162385770877088731213654283175835842504285956752702481711760750276891677663226185856708761117595655481201549196230500150472682210318268532506184816529315681783098654551937319915766645130451040599874172007560007736060109460225663178181769014524096446436597773508346336584172708564600617870232215319343867982343378721031689209887888239124400116965711463164547731637415769901377091802008106762065238078023859718790025365416764092998185482712639890000648708776838284402255893851821456074281139424873728065779800719243240740246979348071931830074823354800500227019842868174515390298642709167990835349334493148602301932043068578143757053312314812084827222352099401458485544150924151604148482606332083503628018020838120263643889341230935202864762566483618357795835958055272330046048676685597326219345641525743650515215460736564093518406059839137023424181747068552034100037234433665814902740742185955058971251827486172711391218355698875927128253959561995576974828411405618522565683685587519402803097907995563135597074911938372151078117251109726894267145776361892919724640560312811970397957691651966658516065478503711997907542720911785738135279344754357812150724550644718252849272689719367379436744061629755789174965837169147358821402941869881494396883256608856754786406114388561942188145491284820963809263760305305659225058007923211655903568646608002997855314682698007231032622092640625513944918613610562993419337377160928710096824628725910597343473920288547071343405778950608036771226459847156767101706897985824647179030164720758510228357391290919161607699370617898343118685782216286355503080306360009133198482600981113269015323941611384886315261292844610096242141597093785322482648628541600894263805239831336075079656785779802342158868857137446883889659605682181664529978251688071646627986451330540870534334489876584907209506064508445002221552204671712523542522730627258644357969017672472980677056598040815297338279034060555142944028582688889678968055644751739209989140108136962173569911297880617530271801677407542607754403680936289773383067829108377100278625676128370297732685470090439400044095970865655032619545902905646942477037305506361989938439509145992727546810647324076205177608001299864068232591014404378408959873377159739968886630659962301442846686862265414948440407916266689500573310790982406617741368442467416795680071219278109650152575572356046142344473294743665748558972834222711929218032026942943898861797359385104863500003106734277181027330773562471267522820105386257380595832413884654062073900619310085620850415853605272303737463328573063438840397173421090721667416743479450806754590967249742932831166866122251348895434358880555599604083473569430887251813520383666773606471242521030457217245497472155561971845170491556746311716607834648503877776753116613085041727910959649813959572115930611868324542121976615680775587030659502594270112901246242651481858281133244570236338490670426200669963211970379062115132331397721783574464746942667153292998925882974878053373447629588426256619243487029830839577564773513535503636180729782222502347052914887759461926741717942363059274382888925796039497318517536588800750520931410542673138111994375225195248478070596951920233596753337908993635293256058934515073353381559634316825964130047600864623677381681713032768540458568695846904397274847795777446090762327759912940745321243045223371402973212406794348767502684237677459619503808695681614088237877561688136845643080987912765038229905332267939543672188569715325611308974445161446989984403210609768106649382004879040842870441166486342711321588698971801720952251519703130485848766941742452035265667919083315945048054575112368242873409422774911383417223998338448111854838871674088867667276196796928810345144399339506940272692009948510769716368843226452776749485677065846148721375829670458960677097284538960708687349733342539254709028260456297245509577961303505306286246247179843189143549225803955648163476647611396972149620845283562143313110386307448819148206485401258422831772589398640167648091943887179313713006062999889510083463180962313780695490427284402178982580616457323803956823707172360872752734554799044935243187027968166760685573099601407707875263003661816173763704626794399744770733470199459200345930396512392207388959925698550846605958864545543858750573134406279747107366132039675852688635046710338241020006592110050356205867474442205776593115124944600671669426401638784944197114096250957431690211730359273363548023683607415301195227925832051058378466466608410407805620952720517086369648930302817891181201644442394990028451820289807092726639844105422065124689900260063741811567693433716775215534624283558988998579292421859729586243321151933395609139620071456856307610686784212055955823475088417723285507994507282026744997735160781726091040233650486463571384483536181965565515728518295639891959184977728494897942450929870460455554281236500294853616779972610421232826326119133902492665605367830726794277418369956511428450320476739686203440309573680895164190259874813896084524687200037886541877431151393952716814662359226979613542115480702601368943917853355918154666919087052408570319526796018867278789028383918689445561489690542897839653271190433291544163787205406190320619790211531493419631078256367928183080637647212243687021770630034379254048988230859283076078990992961433336654691309562160718567710959510551554737754112651125985274332538965295932767944244047890502011060215249358523725373488874207897247346269330952120547299223308662951295633283603842706598657111774774216457684499944843913313671114158774145341234730718863546354773715251534321531817176880632135670077330290308401141831393756796657173090114572652758343228031507984584594676685612235195005867679196482148170860849395720847293919911378740064367320983156397592627948157983807786362946396779159783433799510689207651809870550464294915834328676281030976183813684315511258588264684833452739026742099172026844462373726256548745393681572018403374828109292168816137414528914594272861948273459111281722255489635061843703997799006847611693523487140623350362242195815410545521704134865591258253499633944797255413640088061088186833412790828868503016984127817154672099306491568123743934903627212926143320559115853377040291912195092996689005929432832321623396887024186550146689170568770432852208523538942159367085476591176869586365636052766594846003244143949486464074801613004626926659339831093208244158032951734410228195116918386435545848761022422496043312943342072808256688212919587207208631904971638140049405296786082384141150630827196615897502596865299679240955238305301714138888334983318019360838543814862278868384825697775435752528293552298606310004964607256946051709762161794358166578717623266127220934748615352698704500366126252493003417935887557070987407139160998426082861336603593182032904247959095744152126198150777251414685360763059098829203245623729870462733321877943052110426153129436315667175342510407003418924818129751295864737252815292944182066943320531106914051512171368533817656102520960049847015668756751449375851757674213255564851767220785669982686481041470499631604970971906580909286358503288646551730541217398875329518924862711590719319974390518617588424320213346177186029879176536730487705108351613292119111920991523720614344312052553230282025630312412398575176518259826840701702243119319893127285818654583252535494253493109498422145228561171415696693857057989690517579414088922185159543081812608522846330829758279089757273799292543673545733701221829049879086225407912246997207368313443781834730610613983936535751509903740642409394363213704228530206345527722249860925887082867034428210961624116564843214008245137839277008923419871722160389949868454469319171040172616364492002914539112046818864699182553653541954242082408800933197009226600363289074866546669035802268359219307203719853706870254743687986922677876215599530734314834852415123783794233952482791154342592051596756750287786625871785826035987524726256263934672722613581648828890054803716371527428610378607550207567161871911306488010887158335836703050278746873226191300331876966063548956266523417885066417306464981036127698975801115298080569072332030655880552371094744671002260438895891881972421449284890951549378139505951694150811952236781709695626912574182449057838839142555721525249716131429876990793251267791889761490017027830356372647617489479549585169529032600650407428015937604664945101954114832161319246778859984550024578849224300896717277007776440564560767968000386247403051463446621328304998488717159623212635664663675124795463794755233682483078145367317403982866837639257863244666094547588990602772158339899183056501183877117167849206171496846829913372242204329465119159715008191113085519697598516553461513773786387447843787393513627727192451020782996260678162094372924924375530104923229431032268296430102991415018428270340376610474577670936866517973862511948554556964858987830504676551137605281983811813395528790382149423823114258865453954105666874016073923336598495781764253736113904565616783284325740687620342101944728961906386482625820213001605922699140293604834814241146114746408448218409700948327391360782687834130778879228752446841116738215724700864167616975031880076838340503155390438936752435175545775008721874647247134381167450549191375644029001439757726352565215736494222821379502348725866356753900190252173810983971607416391711050706596291272386281119725540939649685156492584651418859785623553279047435875207120547788090431603613048134056137841449445554172960056498427072095374668251423067185239434591893470236108606163286611054543165190228742074037772963011764170653574870625588563654482272444579682278541059317044789102683795734276527467453869938452613552184741757608924088042956046381044911234228697280603030162605080197045566717399675563451705439474057586366296747849410427519955700723426709156351956542485236828986862837517537647192008134618422479021860993565422042840697932351018582272908851302888441282828341306780710016367743693101151226442714430220966249009762304867555425735700845818006344703298994122412625087429288470354561760246071775018297443414945008528024593114945254418206439150721770709920113107525795421561174195887985082238504143491761625731961363697658162047319084747048550722064098325947965177909013677378888578680642495958738733908220007725158449765875167900735075115509249388068551495221311828749610247297591738374306761559034377711153385713264282022989814645372054249184799519044032234035375126296603621931083363035211181498201471447053172868229568185519224049236096709510588513792731606450317063890569924238584756228355230797664314698068456703966130848924307135207881102061749925885121715369248720818817662748659127028397651211050168009832340108076336823911491125108764248070158821451194992410307002646211143648594293165449917074761341893578999412146156593882067782711725761285641622777365935103758308452430665925475645673978724177946642889788497052219337002395289285733457353617364709950885805585607692035296117061105803074002424926571249076727547326015859142930851024584709908375370767450289247522857343257839265530435206370425820715158679444294119141292876446569099644854282704440641829026710584719122290279034805080786100626951888999360996398314713177687307630855629353181233744972731781674134900608694650991652092799753810362079229860988096689449767776419917036873982874194518680888192650484334216508569389324655682421342134754236619929156497669890679666891872070631232184108737583260012386478869390936071090890180893694281888326065987708284809349280327884354383280720280289690955857114751979014250810975167008525054055431511115981033507442480839185372214287484868767437573346430005007590233927373372094911995667078077454666133930875778989864210177451610538964048855685868725737448877282803056623912144337646929981711188633680333091862679503125754629348914879154069001107277022790569862966847218013993823585535814315757666196122057827551211775044597434056848150569476527263157810642288366030362174461897008609119545054941252516492058093322395310220705992664470622782123367931802355929836442503269040357624222671835197859181953657351720577677206797360544113974983736699267432168757098037560551475017438129481357703000120102084521291057497947596918362639050199444039658834012438126086731164266684059536912858598523378791531944512900950218985955187636500302479739137743868673560636150747319512115366892783391477545033299632454276440268548227458847601652100880859204121791128501734624747771493496944118548109768421264422568997693683239591067760885079370919719319233858482712745874220997922329960654734263510389254037970915438516473976020120295425712341798697092869740137730597496697823087577267781607287518792563010585326727119776932504092364722261980165052650962797841942857465279863715374407515609847474102588660116889818219895596489535425157949946641118743118740939742783841560784148345235106366547780056932308527228314402898792933700831467559371845330797853077921681362552939609017229817414700016829664246784329967558502098773802991628025182552763483165705957932290751059771021592906117743327900072563857674871795721599111283565748672168296502730072473370429415603065205636848710046972524617327826071512654231894528523462459115834793940022880530703622259497404471999195975607726785802302696443014679627464872811800625027512175894139623145662341877726277760029127119888867101681374374857336702412140915194789853851461634477992431616228723835519513857856442468172110995006885145044556652958900309054041755111785473219757522353776966237440155940595445480208552650983612866238409897790922585998653471378075977976319544906517494147318664553973063649505554826577332968927789306975616624306790063110329856949214873849658160176884721361768457957911012721191636360946561559049972283399931895090016134309350353950734363673829891148753649172050761559049604708331777096098124337061311886174338955791157775863996093957127824970544034696799784368249167475979550631149104689160971481164776827492350373247017835180413784381773421497964816800936172585427946124078561154974993443159276331355999872605032041063532000318873396534266201879739470583540709920794446398729332630955221111520980886036307385789893712981812759169291638530215060450578914521071763405858773030591686720668898473833708609454791373675406151142856445906123536370592943863775823532457029303821102572612308941952613073101189530006506621596633300078037805885457769673668949619136545185142100247960848615464577965832327479057573093892540761670617963140590477362690001202102440266861837431914215807654232264615486048198445451931862701751342531498901823838705801566768354272802325520673175235744217287670012528404512005714633562051175141947699652582459672116787445548553452148592405301336690279793351814583960695119961131697172785258786873886858325420134920236926372206321321646370415006502974160402786364625844835650427558106299662742003444132974009345123860914310347409771452114685072754937114808865674935272617820652736916895003344772758890061699032536748771814463600913349560284829369348668397647661003102636837036633366939816196582629751766492947654087273694741405032381715680200931560867233750988277942910143993719560449574363150401378539493066674515812869862058102942445273158688634011665327793268627429913520844440914087205935327134196257871777592024670433458662320458671742388306281795924481307261778721207565678187606230784205997470055926488895271678957247568593767022837489550584567923800731202852845259062861155141018590741306011873332385405143803038412176484282586266231682224866305648169244451386156199505275995132253541243937618464694229224068931804493656688483239387944533676985894189683295102919718111500042174508899080132552134505494732862369728837893697858371086654454257474888501754235550988064822070355036454613692980385243548887790489687018526618959641521226283420037902402831495316398196939100778738614483768456494084410374797994738175181663946216802780013373552616361911428822553304861366006053302204238613094596311243253346013601760430242068589150014850098385983160680262955793469543029656979611795099664729368784339726046059135881666113540575568594171888358247058621820380688523164901320984224132628758024604040822907650475755361983956197555234469812638054723011733010653504214660344643646435325031228780575123063280042953760577309208286810183111838686037467041800743390850692608132076488914410760390135652601737257988418238045825062160106049109086957772878620650182557127657932591708765345657829822943556485862705935739430588676207831975854879760302827863356824250945500743370399747129527932404200826927806234599863274943384681777479695738945403547449261335329593025539296320171897482897222411185968342548257071273847549363935301924826115054887529319503524282865071332839770671528691148264681862616495481774203616130179880109221769504267378229267603560161623955828278459853301379084572244450558335831786653568353633611466593298426112293334467400840167934647479681763430640003263320737054655131544596360094450045521283586422573747606507773790636231327898294855414367185533784347904935729686514302703388444602995526890941203492563714077786138007437642308584828573181735628829786744703776613832094950151362965979627459076517560492529620470728907764335844382412828453079124789389817852209832507660490724064280632494398376953409103036729196574355156684401917002144409441087750022538173979582047244482405515705445353892240335470396222819069642824794724198859706608402154589281232250514007954927489596939002614917859320900173258947486028585278725910468628207346541370846531905188454024884142357687882077508209318616482208909044578652955566695563904045160107898935972589635794630860997292868581074199803044047432447383988654828011338355080303866227282539290778016446578207811364638224867700513522991029862852106353022657698546998382736463032336961937752999620111982238973631186118320919327973549612047274213852827742174087111089392741110300249226115802943483163776978027952788201593411001199846641159609472236676881159833893450792990332736619476785318581181390553230023931977225604448772745378970971043125543383317048035893405317633176634884139030489381402097694278979388910087724869807134101022386234467260889244741664624949973594949137485953056152681772140358728560066001101530343024271153256081464531080629477680278951004906834977456876419687775526162139534258187126776758862453593529520186979632642744378374505810173142177600478586908270373450467175158456218003055404278076781965960874073265393540618290443102182585689588804388929858679729469890317891726130966515978395748310141285473386658346125913353062766603641333181992474409101074349542557724727673387553198527743752898558643323841777364101762494433053461940899690755444532588050181762396180645539499506951458503860600539771456130245495544210493837338753227234408404503254125860725153526088903720535891444834540345951115668150764539525663613645307123797016445632798393476679741430579408363866176835650995951605100004810901908950463954945530756146498007150521632744536115705296000695949968406151273547410905999964369110824247382082114712447122743950840762037738430544745001046163567165513093479597387137933503317363875679826703395425168319852106623961171230363527672087528600131486891354041211003166667294635278959993521353864088715671201178312270116053752094255767427159073688557168083852096622904491436410389529032957682118837734878298565229737502894473190391974872728875419605032149937430111601349862648198313032673314288512759516217949978541467041500490577267402426609571880538957511854758529032334809909270860838562326877557883833611509904550923031104468486398059707568963259987742401769222136995315570242911665090699031698989663515953000168304222107981518130845815799244703719783733971745838501523851658581334005776886620768644602917086006008230654053062674306811380013173040071812436033404544555523052441026029897074774491848464080339056797119305136596258757492439317063831675561716433569056067242862224387166173966448250204783695594944134036298651600979387787040093623888124465611683155320375590869317098583345835910019899837900619815458554022968297608691884936060932115028299017454169952087590321996140053823084624914333272577298956709188666009977691033430425834201163931592421490483686449238128642201901786479943659908497299549428798408720315787273463013288099156354115802287650842822122061826690143699059894047348411098861862321708505426824316382911699641209132419507000597037352901900654192794106066604455186811080516923719202161817229415578278592032910381652323155078968282645327004890352619120705966601142354520883580832188171225281858186364008158795419702083367555912292341394869458350446025518098763864384334020631451695860211615749046348776561206927883052073520913919566964400608972680531307982016002109504501064611942263324391910506539269643062926188495809340792356368081773368614164485396066509299152806771191342238013145973531082835342403242944220349870167313691016580875603403679795214468062746867517011587355476939714880220748486839210749043221255576882687375013813578625815814821934338948940623045217051972810536317305854856125225160130897999353870226459544887818083551747032982881836530955510039106708989942334979325217627944072753313254448221979147326758108493031416538517011196005476047314483132500267780349111013989998199134990590682615900437349876644529408634988509655337317122920275550676756711475233364492484942337093858397703265252938520622125054159508178766765240484617707432093879610175931139114483476825780518048189727096105062452017626451311113397414617282919861259914421063710407925511180663809371919984910762439673131451551899221718769530223498341593387961201383833127204641475474907036614387386985526781022377220398723650542018085631724112950602889505079621101094802584034771851337429387144061839961986983232077310886881267008144944833395954010557318323325652294747837469421188360963860033136611667463312265712981439235795672907196884518352009085445656453842390753015866217588702749897377676822497711436246937063227738045273250412749673895477248888031019740111227322214835563234088085681495408208119991666816424831577056873294041033272136508288603070034821962238794923989160895783257641987368136122498614629194048539007924705224790942551468591332500937155583140973559006543559530570554812130169378644362361949015326607694693783268902656811181202033970046326761527949846659530886370764441801660994007343826180153084050928463280890162569020387743809257275622851447300029457167919536577547056511150702522694901194822194972752178315937171485216353372647818860317381807400962625211077167182771274899142661915446373763824222354075073659934728844301530027998916203080727326931218004628135313957546325200075028820904407338887513174286626885187750238000380585608530718147282150353882975690744087164540176800572157165804106701617655704742673675864768130145417412821023047245096466487317001733725941016265985226893334184496229011250292106508983430888385398310650769469006608263048631566072589629719528013602388982056058781157133068557933792901772011466688215472076082453080315894201249493652201993027753200040923402815736625500809953605530076800997737546769932268775137785442552105529443732593294890747572206613145585636781018281374404416879397849126140170012576570028008098484875991919620152534216338550145886498288900828380313411283619828525053103791551531254282298664868956111206397405384743543929934442323374240670489576551381331716524909514680306147858341964858424196035159381651211672337624709313899913452416225557921019001511262932571571819360823533093591681817758930798591611167668859354376962094528858235195203060874925933993578795943939703614412251947605790920834765339865807347004716489437759047232869471211458903231608330850123356678716620022326192512584152759639180415870776213132136350752716774118718916029414571581749760775999452220563840978135128953445880232773759151009759968158884743759999202598458819259057115722058954878966889741591501537914414431304695849119407298569061437376033234095811155178662285669410661802928908372604676541602020728310208129283934390361741833376752349281767057832249925977799390563276402919182486804940807751179163328590465896184956201525164973435439973592084868247478306612909216300693296591479855098080213693157895822122451144189776717280217328163045893186595209422709629127582709332355402515486120405251116077374421721915220177885630816813599034279946615387594182498350832639891639024673451371719454983341068568124604428066222788389214233190057882405989852937538240842329065812425290189057603960114508893224852006516289836426245977231749865731882633053448656529911353325622924274008125007866486815561581055888055289223795292283546403139592207099502824793918091241360603033419923132124879146118751440921605116611651184397732794472674019509646287892057098251077737413868658082262993246062772761142406372388437399339118257635804696041762717278450672874783406619949259646058679638329624312194286202984717643845784127428873484191478707173049741946254408831747583822540671613104567208055971471278386802293374007599265664252998509474636423736123461574382156256124568760445999420227542684690135424157550653860103323840594045899054947380608889212655885423103049336199026485703559772052063921677629897204958554323767280118801010085771254864788403285006605959753169454310471652842714985344862341999798999219529235186041906674686532525382313028680827320708093717424857221677849873728377198762459694678527107297024877315979818633259071461427251070272272689471448952834907524832948931597960106233299601369145334100999830403070709952145846808672429330950633694165379153774580367636878942286483128407143076735877985214005288152602729765435785140463498206038138167586757271801286147554906037599831810544640422205759829812982018522787486645950439560241924037593916938561774221107680796062667339409673510454901173191519988148896572431825842474442925408168938189141839113437919581140183357925623167918332971872059998278951639046526448169881194560009287817820400278018775288870589103948569119457546756056430285751863322109306003955807501135254898199861503942046607562389380016358247570092311801336723115856341097158950118984923091460191434247839614886708335054759368974315225320689872650019193489458646361292338281822237665571858137405357853287356952369620962814436593225789779602672142886585286505231003888904163429516250483290305956688493824730046518475129543663002166953768773697790721282724426005669981336776753845558477628117378410134837376858232308497075238079149588985218995541735344757628370626576236145966097051344235027081431089593210325460535728646239567843113554478721415604410313663784139001201556169168136816131431357957918298968771824254238849281120631129632483010637786584475668171141621919498924303392204824154557896299576706450114427433657939774599500908095640524970475415785305897633076704252224690622756958915975597686831536347421714041350041078774850615826206704541766507973389498773335668155422807626095788959640661963889215380713906524598369657282049647384053181367296752382130498637785362289912653428642467713838928779438127721853234775755740379242093574200059795657561366001351119087975501508562561984553488905402156777827661681903639534907763329584837248571747513404344137644499562246217481539193006368097456207268434584099772164575577261494294076496515844366853305071881391598800750114101366174268536839347739969858404650567677884904538893156024525284329211592886320862222442691478670096507464593727854814362392264120533155555032542072586099990760753986762237605585105696945508921324221524122908786189446314993723940442009948571321671999655820840488639773600966168260208203854769299463617232438222875624617936947430581108314064595058211179080684231866847145099678299459008241601659349640723598202038006121669600397454993087377901741338790922551828919792515750656598660415726348812372629044294874450836532816730041212690814931416540195112374920674656293607606102034060350285875430807169195790294872232640559533567283011942674207088529110869011474821978613573441908258705030473370700639440846743810392354549851515367792540877748411170587083331638474340716135857043325025944440719267077147037371823012191475096143532040125814975412027443793242894122350367421457473522364106530198170472412573265253718012618339535420096644398873024172877831039552825569508246311634480535943264074609540929392755315912039592686504942619573718182922315873957784473802285623572623602730514286530198833799051660697882104351775626776841562307433396677705820470890387602055915626292976313985768605242880497916576489767365950638442802171460888532817862067202003521827598072037596853370580293935768841901463343599604277572700422167203658143557004764970217538095290170686463076799161101679507808969983990392853223751337561610145670328351958737095896479738648395191982834388756733122480180551546517006723146945815288112979462477801816136204526594301832642959000902989857867467660877407017563271034222217698725809428075673070176948129327286141659582224375106371915758106797830758185076241102639321675677494274181503114690300998778210783964782500122207593851997767391714273401079262331365854213193800683873299225829296463203982260928156572321214264130697890753867675152052231741546211823654753707303494553972256935095621326505451844283917960004279558400179774759300341385183988470435774972061291849584199951200408172471341043949292100545366886357414959446904263461346023794428820532331541166343792668541166558020139598940208605868188884284480364696495664884002076669146712645948774543944031646596532379529952977989396349427328656528284037536518130113511063773352616968755630466393763808986677141887912335976839159060773106265555565416647925024805757456943708857650018877601037151000297638166111343761518920105946926748605281652243635228180629026374999038323845566095037614279431384370330695111775426475451107565646031574329827150555300287076486134698087012826300814367680064320778930692305475433158608390707067022719125106559314032774176934505157202260627382571312228558373808526231593605001810612787248989594054226813026842929015569751299664670480455610413891683789443462028959201659497478222882577151850299743296478735830915431007827261767707929516073468232174754524135483195351423841652097023259363458009698423256997275165185195797454409715994184791664356316170517148881477418228847640104164214533539564609626737157659751592735445922687132208445469853028132990196964718581543844688153000623952509874002605144173005687129127012804308980619399430495096065529866209505729212294685744315242783277000480279888504116190401751384361360893560598063490229382234407439258338304727453332778212921530806635859267832952744834818815148945108785965062720520374727861577243417467278598261410409129949562624352770842746790470638700267813618126407506381588460519777619643863552990958148554560101259171754814896570766895833674538259336070442867228719105174067613455599413287671684996051220087152429050814499663254293618830535429661716767093832645878386230984541255621321256378339055770494596602357578116073359451089178279752275176358496454326565058060531123726853986978959188569436869296462091676539054790596434718516183669016709123167035658442527284175988411923640632938503953259681033325789979082023969502930632719442080677593428528397371440375303534220238785531235106727099809830047884596793960211987786376053237468084476859868639129091178847963748307712365387074745495254147052750110014001270457077927790003341724334883819536608388579196539015285110776811037599653699481289382595405141059394767676805745756337959943427478306643862775957239036001260630534307631945137450890934812526089645342064622277536743064198756285496243194372700994611365311841225279089292500375091586011518428289781289955336528890755791152277913331167995817005446537085658328916038735635884832915850022629585357066993778618389589524760971224278315873627813224434722865987929743695830153185725518544674485384181020544841957919111509255545307475714193829525649232112983037687043443934840398912372992927217306891526021867104651355361288095625873130298472554448220195259304073833686386460689325587839785566219051150576050690449362655636753617166146512929327275396401401791339393618551977711813977744630252675893331001627047501867173963276050288977765506142759762547967477368892149707355967661418677648009591474659679390327065996832880414128128159492139931913444631346902952245435814068125997602697806403437380489784201145757494747617633426468771175057477538059337333540647589718511010695090461784418611398924098837261313928534249639872949011522673784339673256764533026209010087561600705776047361338701676117552949434868788026372301257188480413391110189506823030628136481432167399847283633936968551196474606097193062326659136398843358654474816278462164615841977296164901955629480178607254729639421671675268775190217949392344625372009313180442197138225627330249156252190197206611006477604093068662248014081231742704378903322830717952753552948962020357350673892452093522916456514751636485588787639659403710487095075247424661442931843049146378373418807463245843520488527426617533013133356649905292426998840284399223405178592295221205507861045313714968542228930941038970256941877126241486500663793958831464102551665359559155223485704331625742953668909250011809070395066833001731641805273263386644851638461065038346709848083593060697366798655335660775235030900159734610945535545769593010140458762561977896526206913618497872753677674374750344419093909022880951038222022712940323289173122054170467950231691093155516095985523459827108321096462783102008685825537031810100950079063746309743287049399240464938382516339100978677219757914870076669336075479783624320831488693172365387010089436345140936760365391063844027027389439679256997235828804931412424811162571270758720172707623778301479092580372533828286879467472882709727156975474646217151299551489132205843756868967070017112059907384576592645235644676264196801638225663263365766017585456452515512146892816645960075486948869982532298410156529989155318214926786943306411830208278293691428850549654151608898715210400374133425204400782906700493755828811809865063801670232809189423301951970145271689702084340902541742695186330615471643355219418381714689543402378244441359036722357807547659874368010866368923276000556674877338403520466599309629913974957595930022892000320974964670716316712795991681319163399970200046017262360198087516016068544001676796563677249397428773202498798045264013080160982101844612811597575829417961507434174168888501599827267579157706042134345500366683008254144221154296326020749629125089698824838053481749991061247176784516976928685420205053920979657746449590852140145267285863951188623362916300440758960434839424461469548495959537697379595460334255030354631919067888249975015778217985302762593711533541551395363252040989226833597288139302653760502476656938441340653010538152594533279128910243844150709383143411560686798854820016291833340495535358143237131554019864169539865173836326835337843650902655518737420645981043210513992615667867449718893908288971686521773756394914942070865999706724037527520134938450632642871643353647396489269125508671597998161420015061579862110809784566174713200655567472064811743872086387332230095406035582646657478451798384085855728829267932195651237884276654345315404156613803937120797015373943317405194654820503850438677447878373500958537052770324954905572218590742611555919353977460170285552909081275401868568243021025095535264072808422189614747580089338561739054499312689509403645960323395812837142784023599713904713320663093465952269252794171340040679923117664248711164918590351329028968284949902447118654180577626895091160481279504634343117748367987331942769435627951007024164806093071591768083807738478983817778529083397252823265053561718929419650101100876133615249250554838319915163904308172885396492490539725320305742882070842697455523399684474725416070594305478338085767293381611763592105410869651502550172664181506857875306872292534513034431998013714316047881491167829146910736538991210541779452166161200833027999491226976016061673431232139790975632143160672585151075901555983553244585867434138904561716386081550905579530008856148413395436495128950672390347837669559276568140524874503759311340603562789974832135905526636381808884723666667155755539252313091269139371920897214813780317266472450973665432893964254756696367043339291997671104599813491323955874695844736645055342621547327656744527054795711313000667240722287549017157396805557341398743678565468679788793166791558365308987757829091152789070608578331162327726890330308666872526750870243067109769049441475734776624652090153224834841720127900152917098983088014686066456642783859402716287226283267315706201296874016036318791776878632191665526063002492279351048797396607480578579931616647899996915140252556499112938486835836167721314210009774801255427657431235640264600147893423529971440845334677560568946148392205983566036411195057170134537933875239780276593417457045600204572609463747805074164330530538538636972084328115922405435572917154844573217492892842915903752470481421430988504994699587979471680839323160663488414859278791033595086738318366925961102784395007656159008383927097691033212091734268463571268833035378434796347588141894750976465761695399315182427362290443924103272038022260416172915247117689810822455462486440612128064970225422471204827153591108896363235908787652450430137805917903551980182579166119643273333327153099683393707957891925100412291230824018844600370039486688784815385026204516363926447624339867254176663534672667255152750227176839823696984556000048828550738639527012739480977349293331117625127512908219954589453212893178152126744992397575159551349145663494002662732906303602305826487418751342601398036360615764675030582134054352456234651245213621453461668091889302326977988291062857757787138361274192312885794753383802536359636948395216687329653759840343364481421360304003104701525069300842403974885925412207926424369503466837649575420352758866751982747184882841037162161575564422369415703860326037224407235232792337858256890135457075297988200343420919822420436241517794681998995723370338673941418959153911817601274969735653202634803670789171716599853785674500721594567635434451676364527594478868699382291639732435389710545911517016039785801912245054673134112124044789446257202544731995417318436444501054266045258456052348641013583273888162221804753133589047650016747380490321730413758351119431088533302364217552948965143677462847700406422091100660199928995711458636080240715877916440475006562909841729145731309823842586565856190395840988969293467331866902118953973504324720530473025269571783621567081251645682518643241499047002233623626000965898683961836924458042501362619640218246397019759222403253341200979573324536877739623799929343810438320119158004216048483642599335246300272497787410191199515586033343573635547594147039746960790880166835986554527093027998543035377357486946989829776912661715721243917364121662515158261135280816964162865210154632488934343056883029805071838351744899193518185061311793349521151223773134528767686988440126502423729568006484344821313561074329403968200343262895955347143424638711620416693451775353439334865123092138597983102035901964760521033226936760159887146261779650957263267374176406797803526474321893998667505343363083505728752000955576925286306835503855283719774173600123501831953901152179862820871643087919079831628221197325277839400522901530995477322828427352221704043015177822975988232870345836511530358334058509900888533565645339808922718061575996375222387438881715640331822310239343642254306854853609948036073003792515340767819039343580137028201412144283692149465974934617604018396566294514240245394067596432549426114750005753629788639533175157415724836476314253031277750231084813881707680897408830777733113656388116329135778034209736693974102541320756558523476587438975543386191395476309977521006305322152965612350279514895229172150440795204241407910587724374483987389262566989142618609144627935241485326665748851640842922139218829409155611618847319586482540006854040933668409779431500505352349015655894326697573219946286533413437389739333842676641783059382735239319375527933231843086802169106548322982745253667002610493167054417691513845385292860476921027541606312164113367608392581092776890744248074503919373733716143462392235549672648138292616398019653840029400097537409332373893635993188640373550461619177397357336595450640270236706282579252985447349726358922512608342287119077811509388578909563575506701578260999599258414573429297278627576976701465606271462054641654595499891911604557953771548143440213855781414769426135490359559058437562593490150202698743634886864140704331188674696084397417843570372179742244389370018445318358041391405636298291231634070786241525340090198318185394572182177917480762082009681702695309593938218712396919748126591326460440044194938561321644539404192434196227761470523103883343663371639087743868420818648882781824591052149785713367574490444992776486216702279676501638155540992886322288255412685414613124991924920314245241754123950900128830343874586995227610221947108356532546743238019312570091699462255681591150772434130517828723369048497699490656529459348330679857108594608246422956358452673479386878612662761584655292696348160057140278321942048592222738922234573609114074838533204088991639483601251849340412918937489007727367359081571842397424311948307492157614747493790844976961795298939411345916127308090334623326863440131350762479838349103141554702481930890250287364039861915451807145488316989306438378892138428699535570012120138805759191894287798692068936127000068341438885978377712980736430160427332031682998420635263792001341373169356214223233548738433408448008115623358937921340460049066975553930163627946850737326432097432352161000149588941777983234287654263915991876038948221790823040358939704639085605318629972430498930601036388732795249498368106170818484064144886469967295046219114267059377326251654381911234365494099092561575079862005155804740994571004657300128930982642184845483262751209606812112785316615571544504842595723691531641963924760076766947900228243133421371493794023820137770355318762554773778796088519616811472744863073218989323485921039493346345924819218368230420797116855990394095405095270732646857315911464228733076265579348395878784823727452365314217437406038774759624112550082381168966400281570317564495278805032914099984390285764579202474798310461103511060991164450239397757525254354030768693278557475538054176258234227495595339508501919552704699493097645802275025496053964297372200317892722271045490257595744340558234269989965881853903266180772850006578778143473214964687344028438628647594025846857235957446233261739269852052955500754033908341145573722836375436063315646647638330382172634244895214283795440470372725737790758676717659861642986219589476864394323464157514372000079453972824531951284796032988223453141628795292012279560180281393388986005843396329356844222518412892471422623620145520553269604032406598887433094120773501657917588427588044483667903092509476204304357648718914286094815116087352953574205798492313695641475863405476122922154274552569844596502578884521451704891326973692855069774926316853412286847443322647183235405858556766792259035586901408631547353661429857204159401953818723777440325175190300821498741339933658310441799600552015679412656929538719217479996373445051845356272037821035327954601808462553290448034302955120061857043590139595135684000680586823580335604877993694456116760840583021457929709032131837129278947012009752884134780754926773806817337896227790492721316439531121651112077433824955884190022702454684815783012900640140067546766072743342950778033948206727498096643510760548755621698909738061186764424748500888393948192687979734589421121146819973599001814423160367103142242730915271666915455905585915428420010688479972684735886694867992729414352312622335702352550296210974177970137109567402489218408824993738386487145092008445120339278709392214506730790426220534644091975125598494399001062236510237459150640199360629153326652542628714726759571732979849586562597981487012276152268097456044137325644346436927298904481021566044794648071392559478973264449254687307244077554697202691355524516699381722708323061290293150964456778289670114061341048303394892176039455548293727661942759685687844103009963488483414793807276209205216672336906616588012954903231799565986952402791808129033348006650423423531307731258987739669564771001692143578030223192213834233006568720609170201778947755873317578707206344307593043883769230920389565892352048465162131257675843974001000265214891703503860229557123536127153715549342655565026761007108958750885325982521082854380383297022609182336074697012640012289194228250272436746050949279256203473782841432920108142701957767038593631088837712423092238623670955336179576122896463765204977277770234725113496342093879203627787666490830474987326659999067981773715662083252187307558407958247443744466242082223056599013401192612883938265360293616907337087258476492193225464653154726868781286886041844779630065064757765540080477246027232743173970193869004544772291423313226143777160143021507266927277793812285207298762608641439629135287941624091883231622819968917434764725481547721737153315789448784086029714331307644932899742500984048274095535447312496136081626207547222851701057921984336040383177957327947836265616926294806474186427151654572274123282420011666722997373084605717535383976286469770526628619456543975301662007756124618191913671136059588259627223453326716141538464712823854106581037783406661016796166528685789123506939822456669985464954542716353473867679890012289978902345630944855982275499183512659738317938436005093845938963702394314148975467997857820995514916392827350415240408324266644398140607383339181705046425606053836232657166938303781356536545695669378631086910510670450472281413216663809266013535543350852879913262727452310317249358619677804901466914084120724773382338162643437231574218928232592708981079798311919273261964901048802715438138122799793209246974109040024290200512736279492659031288361998107782792085936992758918381624121610847697015761442123264519971093985714230996724106799018359899461085852599464254663179479834393779785823647694398088731812025165987379214413360212362474935691079271355542709733571518188891103565809541867623020098119622526357661600204561574571163142027154441226777439499180970784082917076356200559481671333711026429705437190405924488696035266875404968333136691659474980437905999708375002796052447268306653750453010402600550230129515200413790737238009645916604732238485541548316715015612977918496752125537231656449213097308603019454458073492312346818068651683656005838807032281633401300884012955471909459210751779567531802107681407862856326381724157671965393429521777791345547825166458288638404846669215297905508267521007736964688460881532928189584341836468489526504430343589804770837942095477925535091021887530626756841759984309427822348849740272378355566059557448075908524787223596146020294810618032739320532701187387556454141506350720145664246876402397288888275354543968408800310365941546080707492463965806170653067745570019184753922062311237386128976474927130464398317503308762474287889893696276006644707131160260375565712625750025188157331068244723486107057962221750729299224599368480393896735130708385773624383333786739342896894572052378515459264721552989309625715236916012124950272934607005032228618763738146631706279585501357409198509589413676634261628278421377355008349554738376436910907899205996115296745462545118762625217944506452092305277926173050840022372389159483572179948817329073022780425358925429512964346823718994291289091172753154668594613251401835363268203925399178464893728927366202666829194900576513593911346262183766449917618960555717953473920467206475680214159333756754958272606474458695443303461965909658602158691459793485301909912636372106575329470702021744470346386901998232873686213809094441835381880609059720581208087876363150379522699226631896890772052917057529218520784253791834140965330680836523863251012237868110778143765800131200292299921277218312275749513422457151258768354656266018307578601264313349586766085697490967383564379591886327587347467700060632828285148583491650061321898130713972101111989402205401237708203552652519532400952170765524357716498687192523825140288031835289702253569291764590384569190147489447509200898906725056095560893700717751114615235065283308933805126858384716534292547082486838300109741309226193073535088606378585304878910282413687019139906050488008202995650815978345659114791191739119339460982640955325719620640509523942514559441798550981989050362194242452754249744302791129377957793362932901544062676147987543400458156098998212553891764049844088725997483629365241879249784564853502686595565067264069394581855558159319317592228551656149825901831988166661235628543387655198295502724256345738284443074306176637359141682001302097815378749790385442938029567628841716627645971640843756335021147148351261996750611339661773985085319886397140228458587678244125855110329574695032255649297324030670181219064434439553310638334994019855682781295903214127430125011607007343724926622482414157108501165930598144385758402441590451861913657211427804257870806910880378943115637341277643376874983230152077199665464661647794853868472181894434151391085497577906016084325859281113011804448399767177286211017934622842980861214073468655259539940550609296601350935214416020960938295123660414451470660384453746660303320465605515805927225496831976156451320953774973297235274915441569715439383316394587378933187768744850989587669023719386346932713530152526994282685214411137711527913311914133751249993450416742937415855955723385004511570243711764577691971470834588672287179586092844473458334092619714330087433689791613136723509622926698965174556884266556905487582409632970864250848140674177560413725518114528689758626721596654488746474823150540702402059780977111738668071051813807908871822961977811905827119041477981002552062277876359346192382917425869555679995344596072315763756252773196801770315742920516361430258019852897939152809487652733407166705887222923638125096777576215896020529337323636833085218633714630692486820608357873259913068935197439412300051151232660174835433622698391908403937753346455043669208841332731902864625080938020725714291102083674999418061333029146195133956274578031050572722993721900946928812702764769096287838069284501189468561855318117373404347545388259247017869116741702669277216579324799259052204280013337847077886380487288513603901868975311948113912991316858675730840103279699010765602189076784964847726838648283830251924242985965163335012403836346056431136696793789025668228196182681420468590252059364311885801082965251230692773547575488777357548179159634599030899793300178702106228833600751342599546764877673996082813890315834280735923743908571996104892046694371531041559864789057152198660231832620189536154043960668854836082207648931653473517037284084838749590324062063196742987023408844507807367625499671502713563539397679776728607068192926377563499300623289961524100575914989458892387051746142858130739185388126394748096895051846038246174231140898673263696970249673046154278445468245273394659414317212254123704889857127319435343192130830160247341671424227109356766774231735170498634905678925711132210712706290700923281436759610114942848327639415497165988454902878631051610560972831646228923556975605543887089542732389450152848115042676996947304847453995225523679337029125387845341311226343424636064097935521351293068931781009818786956735634518248784247685526741431781964823347207777344820761042354100858005139731664352829010738452309624143929871097775286971320316359893648788128010734265689532252540318660334517764544589730934879032746859400484502972222701028059670706077296832401946446859602414345821285272438952035195722836321846781873680756216986858333601318569698329408365658330776225810887694757384091240605930349958315942496581414864930209485685827188631031634599349015559589468034002950003087395407889053023372030643013048750431956887386917883982102862641492585907236024711378526817375862658150593322440493799554421576454446937628571886606111108580768641606873305043659127833843085968907624474152922128092295316170221631745092213716271325833409911153233926686654426413818174304165838879094433653539366249606482967849071288205757997892106132170483543881779040216666714615570370116439861195746459457888999715756499692549547180752450557112307813853955002241064239999697774397033304632749827359917018229649217412766338181527835994392438733334250598519467106627303542396017730058079336497862975112460898243114510254114066225818038483696105478181972135503544797120281878213729112499918357823031862733489823897342466696438159186357335881444820333941559854941024944163641938292648572040157235977254710020165995287688545546150787973026288252767395254868854375008117514779508017330900650003553103149740495482253849763032141441129329294455471065411336450437599568261659427388234442117465378919954412892085472563356752144864904217722330333519513904416800666729550142206480352356837417500654975345055301467326684385179675165000938756605036007729575600824762615203227426298046163676645164669461465764986853421589915171986124390936825105816592895169717751985978019556832746636169288783845043167945026781939672739423980586287840859288565790620621177960506575758391067372623776162615716388968163828596272958665117684640992675917922651901776520734398943104408432939875890355847252942196532060336510014820329535498583059025589219315643026598612697477380185019662122168563427144252242166658747770666689893472335020789580718147228266869222137118471814588296621081774821026789319475282397200748916055153588478369356762813202357047056585106828445302480085004041713193935583993917582638807364567341634032557755212828779655605864516350392329731465982985998008389448883988921280965242304409940535875214218454764597625242272222472947887348439191907098724133875615086827848606477462201116142982368590278952027797143165000298505231085586859089750037705949895437625683884906164254955114039326002492439493784264485177191058223559517582550984496727693394956774875894776177969834035611067882676330003783869558739581375755654008528358691318461902756456978626469188343958122041157955248202656472630838821415904644175363881950835026586759299196633778536458344753049957192483126229095867555187465854402860425729018589553092117860053941691629062741527984739319785567432381712404345896120197308508655812995198651481885898705031738785369700275810578459530132038693309191781007120612858830113586037469270712138073155396927614714603919451526026858293972263911852432015254670506669167190637726959225951490892163315114521080250995405694067177443591963822802764234054338284985707686019400606638417281955733409418645419109654818064619104955074312956137078685046079626821011910739118797713495966821680287261771629672672153948813829807297774184702773281081137346959548815247073435531626759201985768583637150355894780485531527370869108026861516884026326306880018975213926530939347252676012139174421067041577131346900661232562307906790108598262458813304562296603826070999942901028428661767503274252452927099509283801374159337523034142150735773394079721570224234278905997280007994409995732523509936621426055397533533918071597441026601937077719540028661013368140745536426430360454933173737779521974051631627118484837122703101356220377266782704399926380550460975872752211816026970876269565620342572233402894419104384457508622225086553800966873388031477537647459220587365548202794492404379244460107596005309165690300102016757879687927681581469071290932039851453699268963602255793279195067016330468967387610023690511049308477772934974468190748611220890727300645322428848018559616157444337911496129979343474155076136521713425614552151516895796474299269415251093703191677786683768592082330165129487427872604660661249377826869578410094602281882190093380406464294893148067195784092574078209925396170556377875864242135981465694737932447943678254041215317997272508503614113602024939698030425801918600179161916298258849748543456039375894043721841979706708461847865317726735750641610710626573722232824715642152106754729566384175690472884233770037303783984144519502505894830693595882854170009590253509064904293122053250442713845233146543551591783775756588828634422852874879154708230015500244567268151892423623216928225155132935911176802264839768491056243141204037191979167798607662177529075714734109644454219900492746848043521040762536544873719186922926448949088908660204279486473535667668655282091903779363601878371771609906369496703791152514664950874662834168385696112672462249715066745863388431275521190304766687664664165109230739783645162884446370943192865592207170685928838720844243725203614657227142236705378071756879431741830191001339163196534767386411652574840200275935801796135276565571269869644126240919243689779752847165894897992298512872727731457300208370468011283058485594609354776800264282843820811236745383370673148420525001606946488650143782854208537662059754864982603617112078058443894615506624773712135495665405762345444078480602260689309529152906429598220319717019239594421354695149958704584917901004980173728815036330625690236420770507484115676272687249628953976943789299774062784408326685150321807256775316205286525131411568727966284083199861245644039602861334171131032743365861675394035654099108659332055132693815172970753395092137057028430163345477809047812856024258897188794084689377880436106715139308901125964963197532101805085470734195566035969724319034163982006848875204848698867719754563263637463826731204328959396673251806446696232741259588814779947994577771381658365112908003179910747462210375415905819769597074903769512018170085457461051459469566756632750363229111002898787475390131284153301025715803843136115109403067666942905797164488431519709037470539904283024407231583016611905888601544855738729085877510632632184282699233890366861258428177293942613838718162113787431235141521501936457905022779167352434627384983861294727293718807281882053952034855664357715605428167164390024681664308286790207947342110740415968510753377787421479588297953850462539493758411301718347059861587732825487349326652555590153907668323741236942138125519804928141258948299981170171926777617039890420040129286238351167615043549777541199461745763111915610680400572675505643179196954050512559353676855293508931488445420349316936758982080356328593594328377563212335469595817031453381852928673559932110280997015874766462621492990635368941023637779573816015439050682891338020361290260619248106841897764634898272225838558422420368549039764353475869155191232322352332908748459603257601402417376516770347325632425275383542717448164829445302128242685320797983012383829085540212835725365079366945361288852228615323982756499816141141872993784872268042079516533911839151613466538419268114565189502865449869514879228593573920963889014277790725058045895012674450954707805125693777995229628263586500439611265060907747450959918203070773282078259466516885135644019015133665542090689313239790403996845603423674120655611709803920029701802579027435777339941542551015614793620227154271667043518499143752077539067869126759912244771934107739786444871174267326093513623603691096451811631976577333317452589609796975350597697146827381485614880590581907355947269006547282766330545843563396775040416611689573799319123731072033802830472151871932995469127124834394785719790101849544831246219262370205609746236658304470357363041107400679392533200385180159765723018909374751627643664604390393500214003215449709290440710020373841058119256389569295750824367767666201403171307459280432868383372509788052025846824877310016403889509306274827018885696308815406057283190973310363712848792253476889448673829417909955649597082129571701213748211180408513386674985906951269667554016654531738264748234223709949056884521908190676008804400508125688710465056197209324833693175996210059481603367701781496761523237836227379923832404010101814262826461901717728562892239718362983785583992055895081394827141527528523130283190299338915655031249415651451825049316262425594983370261997728974733823555591084942660771195392235488320438550419039838631454940223168713284117035643008916216512944002778659760290182186572417988075753121750535034143129286135626257983205188373337571047858649612598338038885674010564570048527163629610306595570902045798652344937670700641233849240315031697421723635205299217939912235996695321642800880595550710306753168365175731550438036813168868084249246763829997081143743233739346105953701880197761861076217511996906578666072579695191068410228276934213076674989998066539120169169246303588540863204265094174783561627936524562904279228838387589268210786589828759611519994480172934990029826098824159972823229840266480510136950830752423401326822474470730475455572541458955806296277192212937144810627737079859180821182510313620059615609925925839000384299575074520794652542848004453367407643250823864870609401119008805931490353137831572716054780873697164132254186355023202086616201684103962636974032890827393589250776702664545741748187310921087955416751222450476589303424453495025146850877009296595151218651771729968308825040802567091518582836587154940951625696594078043300977896019207609666176022282383876107950548394488874669072990119608843975674409579083693367384060456157674703748473058166108416855568357684935895899754714156319756185873223239440869048904696435160226068365588538887582320955338322184819964703579929165400904162269763494749478676570101717145556957251384739291849699941938788519527405382151859377279622755193898159772696261121723601247445842064765166009822073255057301933539532043662332030602456545162518636715096959110590430940775604218014643315433209152575672675347405915274733879890503804151263168314908878721381625185426365366867352116021836112718690129609781189689626623742594262979569605988019860299719607348144702542639780719901549478153143663353387950666701173482137249047889500273020890294193738286931737811428656849283009379932530256747391170357410625107806807924771137997141276534187619846008281468846746072962996780992098294490094047187358967466801071895678355629228229607335623638089085641409453937595199229717002056212513417521552071088796696975732527675133559664281224249888166161931844615209208779048748764146176186176481484863310446737078595036681070589342953950766114989003117675412959083528564331321915364417646801993896669628496424851583991045248211901848929830720758131320482605060653542735507335323924835784212861298627284855003327809326947665598061563191357339407632859737565895839533521167677975087740621180867108914987049585125576988213585082926953119821433560326288996267790360513144418595857916638389862945617350966959849243186982479416557425069770652549808708080768417703883542824321535264492184456746347503573880234711703832695302851660364278913331059004135817288214917819195009954825507017662250628856629162227027135042839996132107756121010463943044382939541626007544911380825055443975301732045137099959290719543110221611960404640940518879338299614458403267564556891144748523742613019259406087733088945098231240160084714199446646044505693765986827893455634548039756635367970998149171130432570337575246602575560380064327854939662144727420648164174271295473912217949618551149245869102361176793913492474966810017183891881384770461170106488265925582254264050214004113613029422692911790320748195871519354485710659601668058264013747052789845743312392922729162473804741285956316017137978945191338287038093437087584079355533518821560904462184579206466127539457450968993904346658243827034564717412591579463625469213917430255825823920525511162689692429818050676083433460496150032026627907386412468791041489176904307096679670959416848172197340808734849390360771936471534752757263846788166982408004558649441215130625993065825248593901003994902450721562993827969544596370247519804150038211423113825146009475165956179246924461027855033851323045676935451767383572392173756194671491434547003217667150309044566474964771771149008474881162828643007330690704312580647484940601918071020088695239611742469232652752477912141946955060327326788184559829613675671619490804854786900750835971921053721395981521533039206626316482517104532080061079311662347178717489671816317405384034419853202700066541953886086874898891223205564346415248331465950602782018761315353009114854030076030758184707638691267982494310587160528401456218651809957256939516670407004766140124676333508869881341734557221940070831105554769828455098137734795486855562323728907335214834883906163930617621797232129501845644693525079101118618508743650005950454188902403177490148531328364379877664103997580351609693916257597865609661055462862924463930051854809594905942925427277521336015343784507646050530172441385606923875207438700576479350044831395898009839959579024941060498686687726628078731712437946518244508182261691368879027242432549517927768667840360320176116197551004002366196161535479627174335595380798270176794885999994077269921533178473326173874867501792216869834337982498744713801443469798762253729205808721531732705557155231142317843571867223781441151143729121553220029575264315727579004041832975776713110157905194118292401488494763819735956361851965589973281233816161516998629848544627913459911651511127536302942496054411088930393372064267687813307492878672417591738849452589960597604875150281934264011595338926933788117742643518091406021119808068307900050835927991083464154200960701422238769539372008300209769719155000555401412705412879779161499647868167430588450694843167309836637510263878548098903855446336120993007665171205007295290826883292980484568004636832976278654229150105436923163276752483944120918292329292671506364890873547386394366326944372044943116638906798577483367034779668629910581326725432555929296043738554326798836559007113880476058992980193919924837877304893327075347371846962042816315465823317453505988593209326932358473761067458296109769293264622512370571807987943631001737150671860295365643568308484507799357275951172681904168584923942074536587231995185965838041605438772383437173045184051659273089840309026741485523772335347950883212887975610138272503818046410671662413742925229989897549200498335235853170923233289098912810429377514686949374941599565581048724822311081139793691301159385030578892753613523086597056083537652639334026909449094719577617279498410341410237296484428983631820642190090750749990462711741689015726533457880481502800448777029679360117222783142079955716145860408443779355871395334593309548425930236442893572043664009520338910312793848932596531216287865526058379082321878789373037345405178067170936490973413359112077439276107339877891192257017710808218106596260382679462950685888930548909162362865233461699954561188987963535222491555098879959989545487137203585293229490130666556387855629374318482567281408272413784152486482900125182551096215652650955653340441242278488123851166757036029196383485968412324154599552578614855690349855428187797613582917696481562909627208199703701764477672389962424678774672342832190967539436741404583843872605903987286704379927524684916532850120925117553187089184413547036065710048080085349338501434018250898020850404518322949520492465374702345103394173866090808326710747684677011031457795362001272336577681887577810025457595168938590297996579544347966827459140156234966917433866633109835585368119419937827027290628386574089411524427113470855010097245747779670705692574885443030203801011297487009763852936261205992735277082273360693896163667094423742969295536630972031355946671097180703362243769105736920594134705045749867519121917532711718486782080853587133322969823098828845686162027146048648788415762725436570229498751217620266229135890455921535212524101287154386487441893429395090162010611476381183386360198107325982263382843100552349597018969907492779111085036257116296387726715295062319476966841903163069796304518178114464296289678308613885264803870766097719556110844034531153581397008430620707843573549342933153857066809315028521607609324652539721241738520492680883830465855173075535565758100631662009167962820513464195800824957792320072248179664646444704927359347436783158597170402252827401242766497541066631597854285781085617569334585283520673951984782826119399620049190688536405904271729942928492722858624332894462661028808609348089202261359883741490077180177218661889454303068600471659487890074725439771351213623126172170911992327534333205332965243040946605462282321414639174849519435320452073879056577592902793725866191051066071997098069041437373325870731297105642503570452028948973570446839100877901718365012847118855271581176597602582034222807366991597058099338138691506036565917483906946742215582878808542231141976892940911255727148197046062118614061526591882682780219790606831664874268246707961693564287544985961168093110581763945854124734213424353325119208569515630138642268602364878491610603387207257089297836676540194752153631229275992450389897199188794808432192025663962469095572752226383768980139767355565209281553351079223384376440644166428098129561059664250807678679769605448181811864418351209934942246777633933695966544400866747640996852074773912462653421480364374569185900252365490074969282849474699910239194034335305985743604255400354743367138095036438677458792529073998585612272205066157834507525437671757258977793113662022557347058658953653990279870276239646699275714843809158948927419863261100474677837062493633325765387490691052189304852540363602819392558036215815599769319529275956317363963908335299822743425751340281927465888774777211765875448387550387295457103510235540876919957464678327438670966357579904065542215905289425096050155802691836754172726047555104615473721069994813302410283220236832464458932663152658975956621599031975240860863025798971128987554265183616007128635787259078217349255739831513557357879368635704148913312339842498476569472618754791788952021133834854016553222226017194589409957206618535586511991923407751602261760052920859486488671423626929784954596683152613457526091212515126607893344763659198030463159444500469235677072999469336533298758021682439595525604065062637657655986129365429839459468107526690747243691858625592198227121330184815644937377647411611099369440575628426624561931206816516415100578876417898920650163972285669316347034203828760927836226312936006159280660655493300224199930785967741183629735849220308413462279135397224146308811250194237533250303920753840072682612562744255881056952895663122867511221898925156787014166532015512784101689271082899408277447410336867753718225771720284706694767627963893746543829246380319899217317601482718474521222819802571066451201220669028371963174988103206351551926413150554686113302589865400165989465763582034403353080192038932333379124127895406269006738645777145347596776743324390058202154893241353426667901542734667462439070205391269387130954512687748467008288804936354229574995387056012409261147286187337515638830785860515710159955486948453569975072958096317727090954598287518949050711669015146128645117541561296902308861316391468963329474301178907502535437619681345788612436492219617352862234382213728780738026156758766268341691666599179398202550123489727561611742414269277430786575447449759277371281690908078539275050323542693614923966911307837492503055238870714031334876732689893705133116360940180648453282041925937897826799845996513067461451344523499672874635132135783004127449580528597393305398856248964154936246463417240920529570033491244704103555743782083291988850719835000273561308900231737194997860461723263673932340426189903411740478368513176873722378766829756903458330623296054071932084759080922500042802074583252260773745823121160939450318751644200557603825403630168053624607824443337564733753382305925641247461355285636748245826646676748334913817689899362306747155616537321458584430667699823044449746572373290654799887368128800875248540576043352308909312461419057806612933735304523503693545739617688581614301790209648833072879477406946176742846229795458097072976240534787894382868368267280863743952208516870082064290555279363643778856127803844367066553252971257932135257215187095928153057471669701243053901915852841310108820239596703279881578854306917736115862845004423779055401343989686571475820879547103452027259479154450899517538491564237608490744848020886058607780463452036121450753031782109387003344739326612147469241967909146635706839977658722133402937851526892696561885316039774371203591776320921441552871446204087824688368715429576542186481425985903261524661448530040327027562069055065563619009296443819043474240405731746856183884154590068257500745836331843710070408318539939358134738533949602813317181607007052783139999083046570383835303090836089783129988721968154424305300891106694118052352807335814905586536485888051432505709959497285484515461192039969955949396057292303411826932993393775808005973737120311863909676142376271791299009426331729201730549542811738491537873216056317691529194553569646575922783924970387494653957627578357066261824377846234835408581805113137500404416861073876565124621215303591454209089646017429337014521231766579883447887460633472312979241651447483910026064184686233992524177372564252309815657784835216321764950405885711621182760586037603395539294567829836749577184934983217417600490605947972087536689295754779980589027145360805982239279389877310022675048036482760792575819294891910565410789525114092121668084459500308563895191057488940564628437981123709408141393807512251469111232354293341735557007264021897169325710039612844876703180742478554549664045128107118073629092994778986851293865680089090373888571617862273084957751899834491523634209924476989545326857024444948787687036409561693934646558253585721587600499236743769257426402055451922947193615067039621357295385646807900020432136245720221410083885778719086630593283947028947437139813051790622195997973259306915404799859995783500151808431116857408037632405074243391951699378815762142225380048075254649318908469362846414802065304670059027012769577264683064630657088243632207792887735031496888184073687373594288709471601523579294552562142997912616692698129283674145522506234344113373066432099326446839222208946403024430214081780482367345552449743062421763375625593962187644931296035128174603165384302823343603843401700100567308567747533805018300307165837057832992602659179345108268236877711718771988395518134348628315847266424631294358709414021278139049061566196299446527344112018645738742255126864863619212027860734017879811798713476683450305619141929801674956190017705339152028125773072590119725206765935401906068319335016006887059342741212198697562948434849838400187952987414671216226846562541770002026414525745213760330044505468581247733998268053130603599612430645140082013971856297660939823507150963033045060500859149157559385583409202120510870191823391632951281889758968297236631942851476958119165006029117486071688790595855590206444948860849942901202483625363928728851068999374927347734632784260469693609399708165840222138720332335813334007478164515173212290853229072608503931945646014888106201941896615475203877524963512391236212519316886178468070010724140417048192927856071971744182164827485794090887518462539880609918774719619388711185260191485680763699476689581191179473349663731476378632791808519341206735682916667800415035581765573170676503489462507158260715795214776430325340813267050456776237047680951219486487821682720467238029372296385527629008442810980187303059828431094461249990282558584565252117755378143631744020331500341487846988875463573965164578739423458376569870500113427504320871777589501754333795691988629368004210935944167302162960729094791712196149745626134983901530722065528916720171517076855986518450848516502811743658349453078983434390875726561729786354922094194450965421052474506881354522350722774678771681627217392168866982892794727968603074107306338966703085865403376619809096506370934033871898011500199730661473172466990937031522725766649362257576924201316689394231105479661529981291955030355206519712993038954273171224950205873648410360554612496556608593771370308670982041334634745036786450167039585774930312592211173711760998645824909983571807310995102564662609248730102874574643346750426368057666958607005128735983158886171146341970535479935894999064719889695101964231078694399106941214100424691334209508132759385601934632242418835162210587333756033833822154102919182473168988002034358655539051393912282975149434980312885395878963584912209460169270274749240312145441054154909141648707500683192172109882830805555482458237824214659666395734574575957411748067269977729897874651392802509293308776444384085852740600152470348348131739160395975241275738703456639218377483860199119429155675496308781214017404018484938508539793221133733219980124701716092402501563829163496610011205364480682466424798744451312501137636598861487865908152679827916264963077110343696110106501704899475122231360094597367871825429584775885282261105704432552084640794877969420107012493877671833028130603969739494386652464003116631052875322709413239679366174973329799143447740977438542721444000152386043083544113535776105891241218681246027593672316885794799371014075738340414062920346096635974800840785437337304087988387689255598412690362841717085670492626676671201319389807008805471904582739051042447894421125849276603292759081855925870766416840089160549621104533560521108014383731316887233895012163207660934408462613959012038575447754802462536098412929733989783942001764461162691396773912013598129356820562103028093668343855586069118476899954063584652661499470499285299815248176332038183938846829604971320752712708198165507354828151705557128722826113782578234372493835429746158270110490644329445313982387109804168926592630344546599154632487920388026835764947465686359583200107046384139195537483243991230178339574288882542358689223774773712945511506735626595696706911251668396064954578755410040526586628880857974614826701751060558455980360378403103807438165607802110280799751785653160837501438927673447342531031994335596895800946645809850764408415321075086017602981387780953940775654984852039260776748430692226978991419699346682783664473953493084837212350610991849650941092739218616003832631406707587263003285540224088156293753036174019613903219105293551527733509435314502154662547405761989394371825320315589584661475678699418334868991767242422613104386217533396816936053683592261637009508394269075465774594067016390799715624113357017613367068910370057399291492972743044944107016347577048727396093613972298394038675892916320732316741119833704490485448848863113282535611504656399201631616424059018218736616216779089421792390841157902332429910091006203855221138256522457360215949915484470291103715620056220870296460963409243626927184290696970852125046960005072296247483736174579294237237618082689222232370388997254365756518225295197827853258352126133079596443684727059782483916537871483685076197457243668437931607126037173845249657377001249618012463948037309650044530933885748750956551872520687050898355841137669469757752668867362178235339200602095041989773479601876957916245593997120798837824106990119676714843561021144000087488545971559371508941357776875074593550719297790763658008524253168196579259045503769892533127620569873313606793932751090828157451789936588628946527988251778956559553499793837850991466023260281707871176199999639763927445467302060849446231931616008687894615990179617281161671449102069922353692611462445472971078118798245391035940313284689618549185180460145628470310368583776398476298852324132041022098523234173075244321528397061493414593055763536153621682195313732297890660760532203033070068865700874899406174183819082340246184111020374314147093410865728307313885343974718329571372275668495397077946947502368690123376113428674144532455240728802111954241090963334166255601137737667451597451641916110234618494777478157925582292856465273986402172787927892523475922928451260828773005967127545936384528237931863476884926725445001117796390058555069073522420970839933756753270061062823039115117328466716054552909818709108264108471785807648357121942101041172200873824293534743678953231435383640453217180081115710752503290510180279092443809369799361659845637799337373484537783225795918704510871284349778738645287327601860266279430820586310746343400107198137036721484794803190481947973759195244009415817851388297181353747163223396001370351092438450244701588089570980508277537646977785032676590911582263611002516128894782714331959781249654204279880648845451037425170157786502953673941717462241026501138960192829697042510259347880722497709554448400262722313591801493573291713084354364377149708848796711058169323350913646837384302053114091296769891967783976201969698581510656676026222923361118926436286934748866052204375327971860261474947862144282735814583736632330901125901112991409494077226416080268624702520018920322297991877931855585838749184093301272896183086468903061913325259287950357636081991217110273043986653857901410344593119159667821050646824215558417073354239996140055100833044589691733540608135055627658024947447453280864061288691383658252055182184836276519936809591295323189038614905586185667996168911274080333914481934132196569655350993233063130598728450056775095057341309680801605180059497969120301500621200854492506965304546004360458598341111040319572291992662407938104772585635252856353431533791754234343503945852243227118308973751394431358451474974553360009950071295310456052752091106305229592858136783909448628281261183050546700654460594880046322651232075861604627799110120526654472109047611195393051944441075750502287435953887987377660648803148612958245861000548080690359990313733028062622466271990860403367148581256345494253962723397681879615476579079625578287499694884613565498205276382115459435496021825284396058792012181748256143037597630088842439486361343403182837382756871265749802580838284458860996289344276023287116241780760207249885018032474271874208067427395784714350968763869873285841315857765321088342095835002916746033205483740404991421023876855855037946854974640100458576640791918893027999307570566180812685639780269035135561963123848492611515985828779544908369299009000429647446264992179732544730255227495978210917835513793878708359936043982605756427717223427932509127277810492936727752988793069199774456198758996232733786516813545792361640344353382260694149990514573020604286562996975025130302791882142893926426536980311040646959915637543048329464488298311061260012067176104816599958003878155288794292877037250195966408118193531332787235432991616834324184143739669967842713087428487991034540658794665180039050723216559222431710123939379450069038885791627374904034565242576231128402175590581647368174493341985390000025788541084041657940679293446942414975975191788940050522951406376988419930700997265904655921410975175625666178478162927170041163883119831109706534093467332758206217016761611614443047069991304096826632330584377345860837746788975453948674392480734641905270369171005141942068786071251193254421985785254866895007315045646962358931484733165834343237270394014723962080719990104329384889779857190050655228697853070345352129324984056147995219323036618509731187455559853541622908368195721883834117543766487504328097872737482601478690653265476697489503951754541105181522537074286379529961784272372223785960824165324876520149299218537324405505995394197076586663741110773626946754917261737215090016566394794627396043735410969917136642428770171771436779343355035531158450038783811054105286848125408330946955062167489654567380031366422122732103870873000065476167244060221350435351940835046177666414116100991093763651835605637617836401635289288081351323213924386845090115300688078466364046600014969257719160669782503686719199916448222188839390109718657960008163226357844667638132266911786962021912609545175688677036231834130603423751589536485551912882995756589779907117872070758082483560441535894113866246957438267637448804008169873600504362728382472420801098400694177430465176038854444642413484939677728690320348701236151972110455966515414376793123552900317586515008102193801678781424143232444717384365726573567583450536414940799825712922855946182196153371167107168582660499912065376132584488897482984419605286566889459065396849193463530018482448992913582290218772998107348879265720117901783829153835874652539660178354255827210364727948788377133496185863487016917298659677500674439485246534658362184719523186311229347233546148865695434725060933792414216681203522601864575225632069236007538884328293523474787643312297761343052864620906908024329483661321087919298099441245743649226374120089829818264641517764428381983602394467325703152816863051796275467634088991083436091656697006493442486568606535188882292572410470398512838094989294871585184620120349256177383286373553267481627461636413144934575935217199144808198468563742314693657412907437359326781561413179400076612393188611540894678505513249714573650067631174832038771804309174958249429852581816222603253504422079236081833775232241509211027291599926480061287493092739961573368103573897837726843058151068941985202207763683822386661863414173140108132433483639064036446265006321577355205379964722969661232078482120660039713449968673430416403658445492437472575579203449723789221111730268760292623895915470416279363529192419187138613737508695759893344544960328603569188889253377763853374255229335263758393406681543785409509748339305525844878283791213581963740786914563643461192761624129766096556225143082463886169166280403084545910434560270686252506548334782347540307113720413784073911506666493265872420188540925772202506674325990883205424655024374616147265325299711589831711645759543842023267608682270601528552048193641916624636575202220294149760586346777865862934557836560768855815760777727561663642967140347437755948646541942196645532932432362612547709084440772567514716908431025826458725081240501921179165642351174320282230661513307104587001872936091513576384822850036872765599272585158018761396155412400941875182338330003417126205899834512985593679718103106131192628509353431752699640942025817038215975864485969170886597290633313869741887770346106373470158997552108839223651845180609098843472889968961165475479254921213812216786161649001699286502970473404850529117816956925343201316074349743698336388257955926850603090987608021312932915288071022859051036184287287929040423028915310314402946100019969746314813086408730237450024261579107660201522544666109963965936981010799823799365801996040509836884190767084878173412913530205422184328497375712903720632228367533066022099341931635527227644730618618640954242943777922492301360988672618829713315683888626183443519263322539958751222893270398277798148036164281114531743556717712899645400920424095377511042762690145346015110335192133869522186637788942871865512452129645539128067124396769483735196116010751206222844742287481839400146650529314788543202413887886272861653199683240892797140039198894249237862443190358719341127678144727372423241326938345199988750859701803203943997152922486360064205890658898773065416395284124356113563817946960762399641653254438807968067702072768965939978104906607569357332938457136023813732021109874240772332691923370550534984327636879976056975246436687652321064278521478325931696487691803670371312720044798601916931348538390563617804465190260139750544520538747733322603458256519528508431059704907373160730425712684375871937566828597299118262092412120035566534480597438108593410661940877663920753369849085901843321991230513015689253998321262363514704109186138347743469794484431063369123832694860469743188085045105259541662300935764558909863504858214554940806538838445651342290442536550184407295662339836345117218476855903456412728876458223454010810523075153978629269338655180339482511001772840905360915641743887539908133859721567461213691422817988081557587808519021435611143430898257080346533492093604166941549191730088956861474381178168411387461720313920150849262286216646257382476226161894319919813122866832216606632629413386233766378624595681609600117876858395543131026723340367182335797159604200828569136809959398775317627757167168536089513310263305727295266036369356127111465258673363174193151121389129228042372765062390054425302273032128523957639624577961028498561830953832293729570646233144681149459819787315593042972920091441818608862937772812698228207159254993240999920950677646473224117222795800990311745364132091720419537285895125263035491823354784644427186407150197557728976055837799393713356185328951755455628407113432151030811457069916074626792608634068622739357107253431182278428501854942200839315460396108986317568214321173151634451076646862382729974646889564285267520261256403028236307264562479409608146774700944299253947584097341239541201093603779012599824709852722225928196848806133516040539146609852766968390411914880172310021768263208305208849973319800706205286754483199892850461884333648132582181092488068580793849963163874405447519176353915504874032729222771088287537558621317634439101131824880827246703924861238496427695184357470719526133791925464187234358686405938079298291342412655247581882298586973724339320491568304966679530170822214292517346526650049943775154288984411520546804215212045044904138900159455663902408514684833930440833129366127736878452077120019254454447708788195627025219085636767278043764703698871386771138680771589429851236533497031337954040746602971895045077404157065086984043849484193271788413984152066080525501510656587490513060810694834691611587763162776494470087865045212306984660302133131942045176390106179269506787756793830555058078180202498734279052691182869135569638573882808548748552677705733205002295876571493610260385893291353512714840775159384730155545433216719519522315802958098521121648830508520286966722556572910425208372009907493032143580607053631407950073579743176250160126721376720323733978097679634358972490264755927692401737157514838235959738842471310524819787217118730811703017109123730058781564518808049786837881944217362819800681188074457925644974517281654699384322019032132615766681001872406675656205845722895175796813376657237368741837822979847798583140336448987809000618632836519272887601463861642540982940411579191016145733734120541441212642508916441814815894557589805523398543802232599993074229120425534234682065506217333143034878006363959583568578177120377703440315855254898965740772088879934896120845666704834423404948590797437272820863481264407780074735677309370325260728463323945844263709093901328296308639165053889716683374085619571603352884729796199856463267617593602947723794412146373792672594150205647623199321425706047006778258456055031465550545990995028299566145102814574675036722342410400955969691734147151362706598539518096299309644375625143142306810046256430082296531308531933880099484210370299694401787357483335140254227306175636763564919864072728747924810124447817511619215047368456083728147323332135621902612844519492361582589857087622990261587931544173731073400680371293423613589697069472028073615635276074054046065136665064184172777166996221012495101883065421922733275559001313944524727810444529692795641084496556520516367164099773333723775177252242737321387092161063391939666725682496568935427827189603819438158040704407859782386280464431884891737250507500256892023862642805440676094544604308643017087713029115476473090784222146543318094432359015485174876986141711827023519089870704899426115193264941788049752362635640992220035457893224235681815261203049008136110525986251574763886649880611334097163599841601563364491844132877320041886236608832763955699797853736688652050592718034378569581263908291273266355076935950149423268997798757540286694920680635284312007368756901556645791597994654162601680408330683231965739541926642520544179670026212844537777058597954251904646884160461446830951787672154777288887532892189111503857245562181414661002024501609837168145432154221620025551502735968885148380983997372444969200374243832952226168255653808064632374581841689492569624545237358045617429505426649666037843793375815422004172551537247275549092304594444056075602460751438242454288915311052037580027585094363334744775671009895818425931584226026961819027144928371727458544002854957240612990237501659292303212173675086369603761790711271361285299004535908483208529709202164062002655852287726278806207362195190686752368128848581166859898155929803516959691769008117611540345298875912193680493155318231715897486221001781177146410623790262884608474361387484917653360991119560693933914316468814233659607004798179562263338938256973254219762629425707957967629717812766606244258180333564745203653627054998486661333643002000509119412420556103690918479084821149061669681507814809685092582728631703875998996939562494078472212340856213705901125419649395206952029643037174896737903236751819739449987654933687907412318717577127009524180165485991549643026936297134722239997521047899684511425133545104777100806218840747292315126453111996881948483175132106261838173841200621445821533320489029168504298943313419490298104939661601762481180963451801318649884565088303174616642879315171391617362270585653880851047484974602301896265199792709695580267604171831989823558625248333433100434946687189800937416614049371961815128887624922666929590735411186324364391703182733247749360032715055930152333004748973834081303863238009345280451366668282372506302392556443196348945397275129783810636813610620602964094046752378719197439182826827642367264112666035320900956713778159137817247969060235600621242625723427426790242340398517154947074457052862651668615975012659061883165329336450890535238843092978637479442315534656883384563533190236333604392601193839789319220988927333682976308994371852920986324574059793617485953013205370460443062897471868663220351513958261104440954999820341054849867530071984587537930788825658261338603855390259999133309132033302801918647887812602422751249148161696090239318587240819204718919554871940068726460562428330523107199407796697787896033332480012836527531724340651671136518211212943072324610747724580113311063122342233758297251432322802054375425822379103692781252951457572794221314279153566031240720086251432907448591490270881536914736667714882918718254873195626586264267912406038948407740107513587578321033232113837931457577921244672561317176618100668583322543665504101054494860664264562275781064064725734091068744333682070271969985669855136843382511712241338133491996625551752433547913135004300290882888587392850246086077740495748874536914869981184745614033107942876668881120947290422580427645184049370890535894341110576963665473220561987530616965031194270037139721592857982081107157534340627648948508635443158162588776098291234296845214651075449698658311629123610323848951477328053173917078605762828225623436629082547781313108295835506310931311365816423405760434978148260917971509646192011837437701351018566109596298401797282626637063913819045414832333403487345748244796791342931283436633742562985939266126017605595729922996655095625605332697056132625614056132539545128850577459123677133759082969041126749411507452062151426556593732515726798959296533957084816678478142771436562705723922090763735653265306395231700497428556481637176843011057704623455261154071274306276133415117011694918820263356907308781014737994412472945376624673773321680916478272175525262210065058745594698844758752471601107450299241189131981026373400196537687584208454216872421590627804072601144639806287864907323939105630790841830505784939277449863488225968618103970208703158515927586310321578429285015504489632316962681496326180868067678158389132905524799701057034211437910362614582292792387124924684976189675011791827140518012889928460892674394798896983793034482531051946880977634871490616101015281448321636713440076005414407551636247639730442723030256082319447604143353765336420383192134460518190904954516649076179365751356643296769833713415626417823151497308551682845286122103814200952463908701780187373565297529333531290562586168782078702351514404696089544847295716067221469618736249421146155489553232528840306133218353835441595205697815874943738601919900787928793881937048137893881060880071042099926839960261515697077175529944508062251729368916386389071981352523775953654698464148267039956448009790722051649124193924616088771477960657001511285256109103607177926248740436577634138691247346424432006402871407851464993862698903989083316224452012598008207795801148279593112528696772695826249931820692676471326039619481185170048806011648700084510845628410368315279381022510980861191357479035132434698886500544742163973351587623942151362316605409572124308330153940914692421320181298216665902979222048771828041455392035216498047737155893776672624635062975640422246851104918459012798410974962211851924925865124704430168694192728657623156393355075723157457768598289970810892777695165865639612633491819328069209876948556191462272029875955316337780281036222911427060841032345543855309711803379218645044542322158556689723485454792924278344827801453961895006586784023007494942518961831792592701610232011541290597728186264565576828170670677815937288508842510452929636315014036409097673738495192588893511703816785284606680752458889573534468874217769925918529778250027435993447876915733230810158147168069681379597123889203298093308897126745269713580307343364611981605368183051795608688970105570529083589511135746197403282374775610325317614855071662224719394881326756846915822259691755934977414114004357207987888380039229709194997957477460656794760697949656420666225340096924666293564163824756545305141351589966832912338748881947739853109060804829230344779283160512060133464392807850911602685060796241458337449087746591140666516016210127754029013672395157721831116387773425242564056114719633678163030231960829342754333535099453048366600701534236150830607497421766392798750281755880791463750195520973797852328066501553701826105684537485498233723098502066256165484207138660655317211476636365949494171902404837360275422093322337191281425558384794726005187027858215877388711993585338504674484115589796431161049225839011942439723291679745056172456900727215050348050789030847198496237935334046547203466835227701858538850445048370360424737244563910725340350708614044869535751848998555028254251120455075015574846086982523564179074055805534269680122985723217856728874743244044804769647325965337670929405868164816217114756083314175487978077156845934981113814116548598331986102646433094143106360903236978363296020496961367479543327766999653762796974784006152668624690154636780165941830042792764202987898474177225130125865040881914765909376187424936041633339639620032548151917257266677488768147764267036293692708987493275762815949671054275248314249330619345777988298345189428682367505894248338127976046286940877739619739494938534065334021195205210313321919600829177424661163468055764048938175965486947313465237338318404320404043227332968457648413824405968800132584324806469225417960473600304440358122975146061001272473941995761105026194361389172983822786154590283682065733352440382020168095585653789531093832786382671658306930143096432540568201991285234878472730975182082435220235517977192485152513582998715798963746551270658960059643759019345521527575444865557685725651668039724939140248139080708391674678888208333793309989103303893794327327268168831445361703691941206365165241708955885124890639645446364081746270976240428808687775751670964605165676173614834374395449478569747522044610533695297288082035570575655412937004359164261811717102220031592263070684459096523709718190188458934803026796742447668490320156751914599433644195953929615124558778984532774676963629446614935400968363121906520037806281079453592262563388180542903319234048235880099489507340563092999903057439426544466235435481707454398267802233877298736128358351384966968877735446593012881274834397821831894193760157020191765513540739413199839163288477410037241813469965197284252840207339831918138265199941999143199640048857291227174230346812550837924049902796419680346788769569997153327440293549914767282135822432530773500692782587002774269543236382191582356444529695302244916371202454421865226493695067111528538124365573094561794994766626749590804030661624856607061449391633626843877153386048587571134135209760880936086652239513031073573305711366169028611347375509602417017694374411318295389261131689011011549659015525304797911915460618949069389676195987013286752974389492937695840689949650095883054202075028993110009651639304108229807416363682520068347112726059113969705001940583322556145409099944924416969612854287870779935993989111104305865224000158114532047134547095327405170573109356160502982719126876209252631507614779874293655154872338840941402106982332556333090069930574841806376897193017210189900515868601119748261646287508252172653192919260583793100067327323074292704301795766613064599432144597824968840080372978225395769106130340885485813006456947561814810039279940852890732643805516606409951952393948191056731905309462320798280465714501980677112339257560062698198809968292255994290328055946152884929469584868144832918282538772109033031349555466756705008974611648590991887098327936820317598394397831131412155922430064581801438587381508451158217006383449566761956471922162558698273498621397294837051613251687754425813672217711515780978715107881055548135802581515718812125456819385004879627655285133392552611514542447743412257027735333688473102229914698449841801374731387662577141355634448577666879189466298900554492822972662219512385585955415776855169884376180257393962092841744247393407737661388419871794931364294389720197261259841472799445574648877114338028385307664717227742115118654745419677109173495414516767221911330350732413227762269770630921484429693659185709395268083445601530168966256741651291185643711639964030409328576654351839951166846225367061124861603459036935939642086832951308950122492332399161422564421008337322728172002418935006134891933963247007584463709285942640065592936048041610148519031765302176885801658656108922915466078992032849013743865704653042623043236371397381576248113016440811306926252427177349090479720262762948943376935777331838556600613281182156165980356796812526840480921607035328139270724336332852486741922720598139673841817316513217727260587836568404998997185090572471715215536166506220673295148863340845470656953530341297128714286806977108466947522133856374497900179851616862666446051745703589014693694881629198025271205842976837715514316020192439530013725432841969305930824937324141235480828741096836579953454056599498310548062387294700231319331024164014139400428003358600791895467666347187276342969710329500579998433619818011593193871028889920617119073666102559366941118752555965256366028742846363877943132727715052136462495018118238361315321835245360238461560925163008959073482715606172295241569777718738034454049777715191946630580440466680130676135737776253368520252070314801062488467399125602451161990732934337771393191126404893111902350573464761356068194248893783482062339557775714307993299681586803496882460131528584238416774849327434056297340062119498303218880926828942259923857429918755197255509878230648382898487834566207510646938651854891376075426320172202876739434204578078886400429700329009168714352119292903451967252505386796397640546258095566738558863692495985085119638812131960972351927564402325859139405981476370392604213704450510529928631728298183109565582653533392755710009338211404936472084209962129289176306902113894855459900662148103375280895665903954998045853504625116398257713815415619482294445191672315259190272058426770919321681508843581525124104650470737442777656466189881519325782272300636926554953920393732532602620055605168609334308002041661267587619243271201297197530794345971724675248770420774718765318983362691933801652394206376927646298242797501888076859678151595928730219332165108413091184387589741015876675166040814243696194392609024914642880951706446853244104459951820777248692293437236992149072342371515463572784770702311255931136413521872444712394915653420583672511610833113991248014914755192026541626405778956279580105081270273619010859847104722072665656954259303830006113886900550580699939686099520900712279351871052785453863481734795764019560909001449772019373840097880863912502049749845127730022301151305069192904778157081130971867307323327076092145750539802130125685603619332571240779576371673667378523801493734645766666002270442964332374738382370558590844333275232372449327091341052507355915357837940333511807393661246325533106213477386545882029173045279437023992661242183757951374770824064864962248630796486510044790944606857081563607572164786910640177376079865927741495251350959152224189577564869957329862627679918925120112417683976503794717370840673721122996536008894594997171352492820217775723803029441343891713859870502622374780826241838192050074225511369394347259147841724521883368631435034325552766557984006195282188261566822320665789983745883750502380721462876076887053026539283227019857510799399376730253651986691493304218282465703629329097637781889539873594517443288662529285009270267374589116531624893975835491222299796041975998859255334693457469130541174604680434805467191356546236952211073761516022822179461672821550002834451690475652130942582978848560913736164838234491607154018531862083533527425655793931367421693328396982268959504485520385534932876319430670362643145805143077769558032709438603617446202056220030745958890177617578210749596149916005718618533248396698506626746583514723372928848856030722769495638886919818431643550348902107101273162568254709291087241814399116877281696029575142665743002102990203687566928224184267481349556509572442853067450575436215447049494150711542145276514780633020877064263884119363215821701441926243738106884099841549987293170680646761867096976864420968687808141321978191890385093323014862167779959844523903777202720659915176635201327078515782727933792740812559700409061550597895490626902622938386186336192628589202181595690076031470053464343389166198915694467920087274001098196534850994229383353620981979937028959600059388216083898596124755632108526331828538819166683410339816782043404511682456896584814214529360080641702238142457247773008348070851179789769290276486454290602323887993920810763106218648774737088445193330036895754213349866594441318300150867319129786400785566578190949542854437142702756258784521911974219718838212482792664245183426109851155688662614299669023466113524193959769611662017524236897548841019978359116077259233993789314803167740898365352939628975548843167969610304460291643928353738605371550473709479712013458122394422345630887319119848419723944541493570349181572733569209309383192182523191852240539965378019404780564649080587569217105771528364863766756211785449189137680172469545669991458050964434239934652871241959013147137085071668541817067843652114821381031363722028842503877246309006514661986657068152126554291132880179916080408512332326524285292915231921303571607232098783160260044095355402184053281239093472831095628231441376353396246038339354860284842974107320391628387858596708978639016489297169929725805576386863856545032836250790950313158518314496133783746797258355658867766241354208112842032998599394028676307626823507585930101137732007651171977259260121493299950293100692548026799624982402572427497267168852936878508976075391420832234339723375890515766683295043458957230443819701224516536653554370620596490001473999790691342393780466138790555334386091992525664581101469982619856790288928795701171784193229119920259585615210282055796512846470050737597714906370798147849029850265867502361325615670068438261688063002447109266344195468317645426653090677145031260640763464533401646610760841956660611730881594526927721471998651197838521304304688484259687577435385709823911050018762487084819487295817094935897185618379954208896290826576125652269617269676831334087827141069600387526319366738211795685589958992701535159056854949405572948450464071437620864608261479820737158626060591522302901934310637267189273969062040799695853556212609778678607029884554117950848153364916770826501594224764880482473495954818371487741693882377478343011935657916618118605820444058481136262219807285587992008721249925635703572950055119254922819539886657555787146356213211945602504819240129363754689664518298302912797948366727370717960272358938038181997347161720875589911237306920026899851511136306654986058994684189627084699346943122765956240170558088814975954337455429422926259974222974353149366399960152413870110688739041441238160729597654102641848906390017046676220064138187980686608137742228708500092388199811378451726237260922307039742328249744055780177964641841875496344738950715575557040971014739413783587603113702449983485233935676698985809341170239710779360683492876581626530930336752320229731050099513652555438124382311944458821862808728697615105386655446952486483527157075593990861664935631278720311074920204360981837715569504467860402438692967115743950138385203542072163714180740469368921157889443164344458152909269538065277486167337538881976073918240738337223587131564435698562798541495618252179428596819539210238697673663726052378111784959438451923154653849305989599914349728256260469055667021625103287515015575241901652416086542189097990827221621504785952994421449829220893399248842207427108863386423785895937180237954224839474964486181077412841334969131080149708510887935679523862083775917464828205077776513156438424912180073755171273241797869941539952727050532757261855523911469248182510354522419793764616711427607524070675224762517509770078723769960660466627429934133073583811488724822391473601585939867686102021695126557321260485168338983528098578363873964193952466566288916970937249937722349095853665694790112784933601908487960937033698734247065019910440119027088274228886721859548738458561361456110347245792493295609917708930594914732459597262479458669367354113963531587118039036609019891461478401684733090849508853324416718897523298628457408868955523468354214757846738813441489735719663053968769887072702090790506460284772164427479025206258855850829472043821208768975880069026744219335839499209395464794631382356928984076723878578442194677250708963671129651617561262566786336811410569048456339720954756380800922001869566034525741476477087953243105040298895002405123995654781887167327725664904026720203561471093737402124140201151550776472847979242982382692314467213473081440944973748800059814595659661691097371891826170796069823614703767263165809018038022746812437862833506179424840350242003665942585887780206942765636729529833539823861738981777220033852639688537453805273265739924895691582454770069225571258416477721972224645786134180198599687236915990662883618156512337944739117575511704414658546728343623458715289881430367110318202223702168597210579115758501210835989500623406998771676977231557997843936234753439563547253153232198034875585173209679128955947766359027450268943978523664885049887233819774057106822252675333096500044528795117594001291499184535124247143570865409114133641328484054179462362986800196829681456739228069674641147034459275921829896150469815034061894726302993171558773182921416054085610406091683806669211216044045690459420791480475992477200341080318376034879523765615763938203912631032443164176590444843714116318187320898246926436960422008861915562828995468701641801978046358419323759064049077100786789126015481126913537123439018305900761169856498841503476880512446482199745952888563702754738146982371857480624084942472141654946870995105445768649211832078069260550342263072761919045454668589344916284746631331265035772965318603130321430125471788985601533106092322994498212238216886229598339606833821616236032674704517404003488469243591694843846823909358222476643571096091081065523847793523532358021259609227793221541367981212029187675510323321856470775728162922493335859725820607329053653689912156006759726767111668952574552591979360418650022708444124443132518933117402657205460183359593232175152716211839591827447192313298058219909432447140628778391081883555605222790041144239012991591244188791357883116297160667816647967863410436176016650634444684140955209691891496329359934297431859234364245896518650846296937924745577477002913252329163186246958501511472110605557835574448043768656843634467410616721193359239975630130069596210295649740202970668817082990688105660788560606872749350145775614618749133304425654411010864944595155823517166511358925288690555607923696493953224108299360010772452416648667682962834135775609037620590103913391981504185818300174986422369035424277635143340203433397587596685231033791405524212361445070355826489520140860386723763540680763031286779862397992595213433417554422190817439963248303878547476838002494357388163078532742974604398269636986150712973149057500888643137137536954640108657888209631635315684620847062901807551807680546904308322666948766751401035632973193496472281440194969039286093530338686644924591137616695463710875937063454714260901694659664087672996176037080034811678903396132932477737075079155010122453721991757948637613524087943749699932503479015386892347074180737830758122242086928678468787438568090608335340116723151502759178107939484810551448218032172741033577295183646485412049677654989181509150781380934448970723638626603208006703010059386124233230944539636240670557151328289002764635701561859657589724620638091877420321914223910418522280142750948080840122968785111920467457625042766448696010937283718915237208009208315638232533002920635427664751465796354262856606129626363858676013142865168986690159113212084696401735906125960961887635355661352253060727213412072127152197770365792156375657138455320798024794831235432427598901413161010152298951916135954956504845101890636070177322755534486127652742212376059403125435388941996708951023835832877124922535988356713282259908647147564506531196375728840809047540937210540062884411803118157526479767759240386708817922565996181429575089382820238001414352312033817199692387498876719957205569984338970826501741334843914256387932852214938647975063222395539191073348048795716769689171879811039246262949832779280435936115187294825517765198081996237288636978683200305517514378914859321043121332368828332401367123684811455174807580177784542489096177542833013734334946199330760622757287812480914345911185282744100212899238518985656111168940463408236597771636641445127068758864501717641488744504515554017260607400174457288282195782192401803760953252674778454469208199303733746224546076186646784294332231095880227291307390194273350896183960810105136606425108081576044017122903259256266020044805817861998984551989451622631693740118242169154226119415838944209290806580369553462876059264893603227041914425055767541123543868586130888784107887349278964756935987960015174303979517104213026547555815723381862307604606853833825505252948582564158259283059307277568478494556683586178737785550100012453633964198325836191839156281963628390472596062292036573443363222325798293422558690029826515436211513462785999475360656625097093845276821383314160579449473156274551191659326663367308417391994863589111808427681243290844407322152260744634853074148926698130061728474277992470274602133039567055818860530775291608851855427263797442295746376193174185399417446108344884399535304253063408767394272400879232151762825200158395480831802718922249943521296477135527156342435075229847017421463849070617487567976972038032818906809339913772197214980150212483559743106994139582055036350537932113848543249599869104275354400744205042552810829813691918760927509370742266267310023707310570365790339886270199666491301356605286902421186718039113891923682355652564088073892118114846825228335761883803112130281911573390161835696516958806007229372854374957471853140415441527373815601652374663908380663272988505271186254760999193299271769787663293372136856080887211209404186364454858396555333928829964060285888349618342874390511071787033149017903719607838280532646567498976330447058600484214517579004469093650332792213043032336718091040871199273892606748851881671647376143138141047699789961811900447561911443135875208981788273222456534739052377259405180268257269686606024217850204768143004886237218836714959934028438833548067052814661291271209323715572503004080304768868865407033194390172380505610178871911173974724444022072002907261425111150836586214958954048567362458598908057093747982930834638229890067534094109256365140393605064806160929086112231828871691666987938756412274460830271104301820829118885173123967814099858006185105881430872528231381758501554496057061996522717867069424618894987930635015426625030783047154420490199079386968558467328640275622296220672709957391156217615930047350225952355030855234081719017706815068537462597155844387749142777690158127414178349429943563513896291651448023830463037220203279747066702197947520542428217133700987353024624805069984328647439226131332186723257646300061362613195746404133516568095959970320788478105733464069400158980455613401448309842439524527880850823961535467599492302079315686247499074028125711343179721081154088791175529004298126820679103808604330427995720451605330805677894156787193967633348558448980597651976043012919622025873953360861269299851427531989790106814025969518886616241993815089059511863960785825764538159400206297956154121523736953537336342644705733489133864659470178055769542392866043725119102925842683923988892508733803192553146853332459852797060163598202330815996403774727807291303935087996650811184663813803435448279300301754932311343436062508160019267569361345367337024458953695812626454213451272083114454816795497264911477774637164485726665824853973814315973635259473746001793624609717400826147373699218790618213754563475315839199286979697693640221062765152550722432252562024370486587335699438363716222536730276512729015268399121758555562584537510200995875419332724849141594528437618699951843324465005105761378182388505043280463774747780813286463917427169870040276512653270633988865206016286234891941813757720653054686097115311983287759763706093129285259581759680456413015313137629998568567388128792922252379606909245051263776236518117484623134722823546714843694349605517649023311689727966388034181061359588528995749379008715563660993290587704443640917802404487360552676864167761056538915346350106580779718235237644571228275592943392824399660593003453338097735015910773200479586228561863051368976560535086833981611132918411362336669312297096976363765595997206749356714278890829445104289185162491053048070727526199631830729300912170096209072816596218054669019882617442141632865679203034872818915228012850136300688384087029120594402123018253531796567943786625493530309422442847597958152453533736341519964959454247001543024244072514182085861896369914359694897440688813885465583430847455122186479957653381919855777602173663364421399082302840515452420932163079700746045031357287774835655260034417367101668970301756705754982922213779178543667933148911919567077725272168866734301053673794634126978316829633155883468465334118508948269840562536892761045883923523460247672126405536137274298003824747613642890298921728071336643075070194106758557281615088386312081201487406704189500491354120452304268675532020879455675717553808500136317943363040752074134468486126710704859325190649055514105014768933183961795153991203834884046070675145542286752165414211722320517349502017284335745312490412254392929508968603772968633840800912505014555804366353969935262129722179189260926825687213802516257496836354698714147397038904165878952568311149699047904489594226174927461678200989520421836922805074283428172834828629123223731310928840212920927975494169011370339285207570284705866361610741712901099049742590688493156458504793448058793705899171904889064133816843741332328397266860680804277958807721652016382946328048370217298709465210193146287942768680806187494494940888438741640641809501436849195102485440493208257851685296343887503905559300634464780406089940611443137504949110522244790108059757302895840585856007506891619623110637854471925600863348092034401496024723780249005987856625585522407415358304356991335592991134820570559863712576339788466178775663212776851706215865660905425575542527964036993338895715021383260916226424242456666963235042896033836821544035490033145449406801878756355253099712381656196510133012414222056996913608648328422085902526971598655424847630201582502112570597679885833572920487105100595911271702932956147584325963721650626821751440059675285347673186502038241766552191579086255938202720651720881875546249334300689635147167746895103467427114588783952781415357727815464293383591097065553366181766578618442014586090279451950698123003601091698604676092179306131188919997518494837282255424448855129440092275887183044587265260568774649795320875784916184144260940215767501278217662981319667408003435971837807857146189138461567803323252732505247757328033064223804162689416908187177604123473343162066567830168911900126598157013680490745761245488739239027581255271658918888873620721658400889600455169545973126567934888845057827517607363719847527793951757671475916718649394832340452193994122006003524701243743877853329767453458433957406584537529022135979906000054991642830695811958226688689150133008239075725939897461147758238537440608237343435164590579314746807401687366310595719330437691140299172938892150688728698407834429192808511294479168944401293985071359170152168519605080575522451807969776848313616586066103655941058291810591831621386995257005521768934445051697821383800338551245080183135939043655949684110391358713307334444895704420236627538147497393768980785611336838041382246895831727799948104934804048184277876067350301328808577285822190381698753312825344084021012192584329579897757319121791488902555845740040954013564855829785102951146526462729084827817196808872474265956614440681838046125714663485739237168628316491554231472211051268676238222794472585699307486666091820938635099536559598475171143157394098897820113052694409763899975683449948980440097008701458326777608655898326765019126738775050578644434485201482399115583118215752248081910770390141847635802236519282523531720267575720056322048642307748654345749213264271390712915163217104535493298925205566912171236329303530446508867158697638952229688896651714434136473132996089338656255158622603502233529115618801939222967577261489613325094417051930685940143877762682734574794376425704941478937386125617529124539461222739021092302263552903358628474382140076389407562522848794400074291096786358516305871282202728306813400701270022210607235236507202755918396928832088920947752759840648069413623667417500473492172024922842073752148361778321795129800325522782027676754676863433627078829341084998300849177122170681740168604102850575502811258239477295154564086797645788198829836066933115778214759537420087333932489797732554395980929938058980296132662412114205459934350725840455207327444811837422507518868078562058616618765288359080781895400280205441940512663468974636359796115153961166614596539958467468705696226176517022538706797677859472784180430582657482920846891031408402386042901117943661635214789274446250223398550486511103161802357743659287518900331819130100148607721241312782749301143698260334065622236236332689629627262999819847197507660287784307261166539398847863570812863789716713961543468932172259506408752722366902993044999063401117211918609048407363261830089509455676052564143451006570153967145784490278574995904098618757719453807380132347685722975960261799753479013765021493496695292295304251840824885687098181033499551067581356483944641768101571588323199741738311473964298373631280835636722249970185050715019825751905114092951237779329269138227459535463494192254749513125034808440412018286563232770093312010793393481083228132150796282907932459822000596992265885636096949518753057831312177473525857552501393832716610918514277073559714847375476640704973370270974104228082433937577049279553686617100769328553944785568452860039568438321378443504410438076922092761176160649106204132304809232773338699646133834885019750460240242662997852199128676602445881117622910305767130552139862188687844183086838134320921597878431899823510099755045622836701037071118055887129162794683532866898493285285085564538100118590043294654711843724656607297827500080025385792011494380705700827268377158973929806215874968062122878719109997784699742202306688100435869372432213504219053170862449732359709414525462763841043749545984164565998480921549788314832434964736053966463127039992045662406382031596544472599159675301967297946755715558952317451256906819427233998486808086874741897153539748143832059267932540538584079121642704107985717304318703180756953725939554896063731547706760665262979151035442767420807158302722541963120383259191670785124592857991542039802912701634356698855999333095495566890634329941444127491515177480951373194726799461035644011478284805492698499458100275418696468088355002760875960626548406303991947446724280006923242084428956992491235937553406919379363563934026800892674984636076012607977155223078171573008375387809836876082543570173350987698096442047275975691895082708611496491265823841908659298917274685399574424822545930940254356516119979044498454612768395522506470530260268659865069605595560908042284459110845148973939164853221005662725825666575673700314057109965075179214912002098202888573200742965745273634925410433508772170137724216054200384165934904095638429139932851868917110692959665985292344742750844310277809607890595979697388834116980617703965416082107111624906674968550811309136521238399441642381176799288335336579443003222929432715963380836747126601020604014685159697258627539161993455840921021176284056464262782489085363582818533955812913316698991223123353745604264050060820612038013097404849295289579490817218171263809568598374197681219746221640219098295021167969859762222426010450440028878982708336650389538856800195467889074725265644947479350051398074394954536196616122754550001048792762540877547892082892210197329612159278361536179060732182303960394811372105428129067935709709121736422842771024922578289733811534216311643649231690438791316820878693380733427573626954474278597221928984229663456888446323559407571389291830121021033824378723665685278298088591975348314356511438615132990119395246282207531698349744373189128925141571118628941534305042971328032899746593583645615404983893410107299471971728775081276236819332625129501168747682761904432372673758894324593818980609938322682218405128702921539966700609271452486438156887486471094879577886166481816281510525393703342463511179262177600493121524571905904632986792864104195199741358436588646755540601516125740416238848701074904914554928826780643330574990637752639698812668171641088528773303749331453433001825364421888033869302538526088178162160401629525108199166381546652214451901478269677431180597938926816346725285104661478888655260090029158293002377323880477926155452126690382468258198513734151685999532195606547758738541248294649431790909716417234461590228906528678025064846747306385774576313924680475047853698352490251586243888572373820267680273489560123621026015487473714351403149561487634125289593313727836701392380402760460277227264976897328262088685555085661334509521019557800215211197887010816810782759470031770307458194462402046011095733225565214410613190716711472709830356057198275691308115655695136796159213118485267297589971768970790522690474248301009198177713983347862291552013145515857375025173414942567064328701416155680005275923736565677462892968891704304402143659943353489000422949823326619018060549569522181785400491699058415531661092041822058286287893789909904088413924591598988628345471328276728947784148229853671540374474932178274934429294408311825866112757442191274161607900541124786908449804549599667156027011919025471512864279134456678396413817234897037721965944676575985257262011265526380704494179936892601048301545039802320780255410975777066058033008266576163272141335329456263298216829743876815551127973158606210158742029730431164194870166402674437220342965379754668381880432492968847561036041094866861850592049718489495286295515438163519212618171670105376547936141799233501253837228695915012751053028574583046884162684846246770895968130479478989007297568044140141864855456490201258771271357089058014668278614550459168118315659463806954547932949565032520721275247287054110760283871100841372613154036496053676635419513852433975518034758367639328175807103702051933113245673707518811384843904644109916727384792323689664888770121564876258976275358202703880625872709070863526996062435401627978928282246287911030193349906356804117666567882450895014155437550177039755917486578804574559099361301034785862319425104494177694651292502055603554850442401959192980347464668877852751201489150394385517518549289795177741957157322107046636086297769954445029194982124864991625920866459633639198054521363067987571618007704673746178655016048621725929181983038681624495657468574458832495015735356716068094645928375958869563977919167506742020492055161010743619120545676164558038174636865320292715621341941853382258260426394653520749659807832464377250396539929117022626556301213470008190486894079630970315257487832854825819149316008064026530772274798942943772675460490485371751434067492651316871638167364274677495749842748403512089692429426512678030637474422480785914177749030863622827256218246055657040322797351522642566444562061880920765897775634088522351108746148312516058020107157850726828856968882905892711573234119440550335665882063755082400978128429881395721561420957563664403074473103125552136958141635156851390660745950582054135920370253932686012351646669210750165802101419813162656240493833989966211502108781846936498220888279476876768054356165409618833529660568983984086251512489889912218978796514888597519685969278682160092367530668904180003141533441758804884920831417130564568374544700763311814134027911209275966743313183426803039916198329310506134728157385965304815567341823020144022508142465933927599946934926388984895214827161049849993094105020035847331899195841946538369369332246991825625051843427468211289665103177417483086180681348489683348276664698016266685191697897232691321869700920561396982980406677763285827174853759698968820898205475069763519256249965880802840685607060621946673955376609784628836809779420349382518577761186373310905627332563961439384631445423063329834179177488779205517487171061874985813797786531072029658176719301874417014247794215533173863075469208900925450821821857591661597198406995926791041616601772274528654262474532294859967728487902257377478735996655284899835130364963508031346943977514169095381206573706766086114880485820427057074146658581313687515681510376641942091450649732252663639777750717320048784110840785372996385066306847253687029595906788900088837386808537741660277866086021555685672825367314654283741816139401441739031061369093252707690021759669187549624386099516554127828867236497860451598832220200450575827422153588040386007808731746027407896661627082772697047616285802580794289415403390553853649384911124430947893674394860145354377956027215959856285040538639466572733536732729579826522705408013957238686669726735197893785199149205142053749447972482212724646452355358183493164191024410928430665174473776456330062850804550413531084842941404016609493348033043870862821588555416360406062321420306402246127293001434604698582426218837543870485973090119511048246891321991294091736999743066539772020034686274360988742418500538566090365528381544827520312882454413847309676837881941052194379193051861657533066453522276044052645528060872496702072357937627903088097101652075960634145743426060555155285680036210916706712184607441485673993903993984308026666822857429810404039742043222414745608554820503401844849557266016909811494381779103944462743521389338314721941071971046795396135055893926297701940526923000866394303688993511662791178905014965339840918551603477379528451315730786378178550460568009440632170522693799838810282712887676078613916756429983882954606481366666008284080408289009791271895752680172602974741208135445648587517812864211626881263810585541301472491159287937898888007230861164636061433435575639162467437186834512630889163760236070787803212399121299752913005748561157057695337665222714968458635635579147326609193776758480227609874029392298547100545043074346130509136317783939186830394956686475103364763686355458593394594994263179190618995193259549193065467418644329381472848175712665211018579988380135767265683519161415191964139375134323074854817814799246558279052981954945868082213963790873012001619126010825022046437512029781826646274427847719306643541520549961228068200938939701228124589771052968485804523615424268945837036488882003202533444220359229080583305335744677284839544118694153257567287589545955278811400405893343094710228315657495021011306014355961025419981750297895488542713577567991863858363865962739425782252105222795512129788202114547563788140993340642147482938787706967763953531697690047370945934266850409704444359438211315901133590751781027697048717292291329947516492910096032324883726361062883497572848241429696478930829554290086904378494435198916216680717905747060798182405166851029098412612385939722814722765166664472785976935188876212985310345574558656754000642894757350916967679189723254515192406426665833924010407806686170763789239793643204690011534442701824458146414994539930457167932385365855839234323681150326569627415787000308248776186958714939418353814680411314068286619511145686793246010135226619419292417734615665537824683963132736468963883897475550482266675501368000433255361773929330285862738503300064391642265796311331993034367645147561094688832363670479164332345681617098270074542135939674216181866373254555293148604658206572326032205971929351568615786924163561502814143721725698027797067000320054858619304997037753908097160397456418596536392100360015991121263372537535210458156736585424545970290822778078719185611977176238944810437149483759676207175875031000842006063229017107090640596423216400419575296626778657975706075311926068411206193652634214792114426918053818058355911393427616885845401170199285785182392227335179732786007304110435491473252038484141559644375408866857194945272322688797300123395247344098244906836194405119784684406460092685622605860764481868626852079146938028427167842519458880130883155648856048212276977457426026081879268438552383377816218710146413583989715392039952298010216949272928405863978673830998467253424152384514157012865116507667318358157768281534464958394365584636712979300458768146297797288984517925364641141294020824776425167157910830984314684619602464187176270834643020831801459788438372415783473017154765891654532305872111918188878315944142446915858706593676914586631609317012807680496191440026404718807079712017525997778353001418106501559131578068843724119046284921709699989117055855363464478410796326512456060884886711386569215762747919567099233207138739413997223929163999847054184283996633287967062061114481894953958165492380024056903932483222568425896593193723053048008599479837762649310496323903904743307862538833227583800339224883170884295653011305536494764193382951362548545269958302119525005034091398223061211869978632696432405581831987450720037445807341817998956584436812271198881983655860705074966179873881989868862773950432057840562014236194853257771220879498182260668294385894074915821404696260804320676881644281263379602780915299559565178558526051829195322940628846471028370250481545174416382532525508244480418763768540390701527105354114800815089295394910949829860423061392103076646390946094981404184264156636104983217949652361825008390472247531550907066757076474574045801852189603830299712986039966634983475948297481089908247982603968019703720454829815357267498358852625033637160391449062096815381187458094222801066620901032472072082827038776459161555710275110516604689695833942203737468415807348903661377878610079330831277830696698308288365234146983247409482729081907353698465919121393160466312671826194489260623538185739042686348813511609145217376285584787743153097237910423185457403148686928189798113462727200419634118841888899794922565281849955302641196908474700478542577318110926000697438921346687347882380117375202243900505502345179101349465326525659016429206536449644113831483012116006164652459905128018055154887253824356068937552364534747925736929350789292801689578995446556384936070225144149825370791624116618166341226109523440961284429185152068699033085008452361748274132078267726345369617452720976354705137177299147097717073019302412975417979954078555424501839555607718329798589099053690585291676028300918220555248716432936158155795229786657881798745958984050492261514282516530635960073383236543907259461416267211536765958275276598364143096779788016374583741743382475849218531544908790951142344811977876006780623633181669956420361300982101888373246450120619085341999497453640541007506739435764574200102257800248228426759902736389789547344959997778932074750543322182138540965584614479314510806423159955587285010703260842946138906616563685692433736804853274079823038237395152999803805642618039854602362049821243529187830866407357607770514554240984019830730597819109321713186780445821271432464217322028484623192383124466106830631860301383741078274579275093251982173351483319953622714941266459027977979225156859347449544715814154455261919477670558288032366473744451542893057098865255382042437306666706494777479336322316297980856584713464901160321873731867739040623757425498668649705633830909693124176586778466897216296140956025230203032892763567061711102272314459520360728009826083825010950668148569936169632402797156539035867418252075662132060439503349956792121124458270111891591539984585630954266703253293266955299265994219951141026873327879809538876000815751697595691398675084886246534007117507856303776684322682321634328214366976094991948505862208307661725105677613262346184894230621228364301573022521353762365517839075008366352280519234239883061272060625371059908880901730065980525494473817272783425907934270652332876812289379068825100459611867482313800549412769853698714268147042510041029441271425275233648478160377378837474062522636244511740732612197775225520226104861452381015442024390290609563689156108840151761512968056988312871639518203753328930146651134649501214670608860363386203285273497440339097106913503956010506581900365911675734639242535714246574498114391107399133643161157024823381253619653155744945106087321427026551159419760512342768671409229902296293806594676325475160217060893961270670445273569232178706968059463612624347839967015981027895232151847153452827238355109618029592133420337995381123226375009576980791463181952883555364856258814135654686181077661741931585883430509391440638517400163572358744564307353380830836874721099236887793467603882754877967868412446749771820888567632540214500546098406526906561140879884094078466024843284292185619260006589989023168888557733538620280332781585145356146864693875179377311911186854135242069172463905924613733631882295509273342080422766020794535534512497908972916801134314922450481468109529550374541985789288277743785055255914759996015600703459831472345258546768875962260948343420254810416795154370978063671740422846380066332132413820723055806897019901751622266334550466323964899313612222929981734191164119889041573746499586715834529091817814806029616116643819646397957006750760245512865397831532519147963961475452106868558362229080101260420199296602919143428501085742391877297222079412131220100968192605108835536432943071449336830283421542282703927669389672100479701969988349509914394755541928895983963071259024028661429238313403296352561697697491311486709593366817624262507609742649402671897679244292602549483983365304326479084445475594046008043561059155733701191902238237800440808705667661823130638326051394581687663175751790910144239712187617538240037106943338043187991841032711607387649826933151370843969745316972321219007050924190296624860375475092878098637564846712315978154579578908075307321772814618129203040158257089647880874755878795326924221892489583060980350636105651295067920376656616016651527663210749210548404232745281890764424752011516211860096839632102351664606782657939377221874646232223455160824781823032283054148806632457138877594210292970897791092220584948506041206127999345509918594192143165008803367631760216564219046255746605910307996246726677962171909038766746556758088667395195397293032267566549336028036348633475979082570804855781486057927432724976871501965903651609237910490340566962699347522327189103190852938479554088787004809874096076733778102147022114101455821949216669933140391044140403365620071017507164647824744427628780831741691033001154393820761817879658669850595237969440129653496617729338983324527866626486040019880738177039670848057827296230476849379249084425558655545073742133838900336630715294567765293005119745472591213104228030827955106830838542436669581626274939015178072423458820436172291083377172850612744393208623273814355406100047691096804437609009149204398178459363752551763368974371906109408388030294606558436252198426955828639698753936536365664037139686699448847462135741611853408229378644111593127372866627248992665166231537586566050737262416292986353852431681660709308441635513214918696024181946678305692402002692378474249360212135737484553336327803777027995792391258547793726922280343296865826883354475893359794131680783733079194273134245276869949593731006190932479920358912708577873616324152231651986828269544028601623549037939473275863355873414246916112874095946959992975392148443765044711806521225285155882299702286701023169115592004737692887608382046523898795508515103900228951999845131426440730088092933685117842751201326071458390749608209008008497175724867098929208271345966209461746235980951911422142433673091003174144404883821439851536624418000304294882123856500905097058914634097826667364356277056411594267362810262140633463620895323622512515101401649037773056775755255415003810176093004285562005967008419654250968705700883562863943411711333034156040756351633173699457707443241570202091543223790147978327697335157849548475956319011920294052105396963479468029587868233936380417877379077517008024476440882250400529042961283609279074585691562768394865295326315970588568511640842108450177878035811287596160021627390932436258051441555711634123376741887638193129160055784993056880757044803249424118844709659337389776556591058588365788478433166157339508276468917797498417040947914062555991305357380373552331086222213259883478589763560186627311864190511647685263626684267460490821710492550946831392472172618892169809661901578328175105851585897706361895200850928722488352866470789058948047932624843850665996138693029348402409025227844705347610096903743574859522772322508189773252523506102740145168244656564275166484579649981970478867973511748193683056908743705657295976497053221468888398357982328556031788168281972605002832421134857519924530029276999031931217389839816122612193861041956899274388421394460518132812512570859101384671856121436804496436923884085204189529791841215702323286818527437120524518712355715182963500677795767853124300329155972340564010297090228225313800540287699131983248519132177758138951957597128041550775986911829441572034608255507427004196088063491198707529896089831128340855986259577795840108778378002936493846255816089877612675103354045102967084980599845998709849600662643742997687759050227571015544662423766250262970781272572753922703664681466450334261669031687081111668322876146402139452201761312914469414740928770766707493454507653754140072965103044591428633361947851562058560166751942252793374112522690852754250164949314133524663247894373616886098855555157577037003475016405661164819896622957254865192070616399329526107282226233219961141176873264188539900483104704772223847724560869740488801455920614350661389783008939402927952754761992247909192022195234977307229853211872921314736585237178917092446298129066848082428119062628423582065854134492198300575212784132047778132239225203325491494753971120966175058188799073434877910165081831433138554550545219889147699782847249152435913139652771418888452713129649790337594955411464830995632605384017867727592941410406883267775367302185365018634492027612079413271298062361748558002236427041963116463202380989587808851833931255459537987101087886909729409240882540874594529158687938451052167346341043573569263404256836168570912023738578370903767700952827050476447118932267175407980513038893102703611342124094049074505245857880602739799888750598368020868738927519400487679771872084263824355099132169562351166035546376835680399316496516100233736795797429482702174616810006451764081818579773757221856801944769435936303258108632899133873283215062473855176893848900259881399940849878181443733799114633626134751067816655353807898455127468578954577844354178761384111492533797233406004766198298896581796018644631224393329652003243401569057479480803739749246128565768929094297287864810745247569578403100169489554224384638736557795189648198225345444164867998666838327690301174372842727286815790422092692441436415028662656648447146322342040103673974734904249539916976814485303668811602951623804421411652172424275946392406689061749703603502084664544287060570573098604250829743734337806476396622828767057428556691401157155138747721790832964554793491655774465800694029611415502434109724566160467437270378732805409177534985872140415180737837596593318434201305158493731668494481731893130919295589347581918629065454967556850813805019616260879386882132409726586824792595723976416344136298421831863166961318911864040256210925847939362326511339770639143682482656093634475802207298762655686136906465648336096806743564898466367409996099790745441667520732463983498303709418418189555776307988582378902897800515704787342005355363870152061291226265939630695855861386836235010626429972712229898631302258291016740739886561735680906443489674732041271445506463915361257840722301953053980667297511877496971024709981946751300265055321020932232792134291081965885912348886994923211480775153649325669055920690385839703456796469682332757568604797217126708608352121564493173068065305837747585619382621254434735972652852499712713314148226539027236186611439962604717990115332044277487454542063701538385532409488142709164037838783819511784939927293664187777951527807546560147006877018805822012973847261642517820435988500086654667465840580733787357996433751081010998517593250865364928227687544818975986689167786992048402493889906488221414070366848394379770370946378012865426690329602332826209804439048067018988307820019436301435432169212521921113814391105587859455960333046647419606392566143001705621495236523096446107596649848882070664582864015763325582608625059392297261352733466727808712142932175070587590999422813063695938327551346237712024921020757420109786135430826009755529463083730163273663336581212004659539486209673364917317615193352506259574235946802765887598575216498008286821916759190348634859640738019349933784017626080668362843752554539571547851109631866598456400860535527076993232207195199393845961255059247842081489435329767082849094926480525630703546175100645531851429842734204954990716409893846595471085376158286356114466086158220974803099192334788504329544794373593805251611151611087465268407202056601839846934233397086031045822696149364917253175563973515549012987173075611596154890145559645021143846657749417474210688967690665396780426662780226062913925954734368191805726233086464614093038579761008007332879676786944763234480016397462965758830153193300643619596828963768049593223049335613836411771295508556412524471999036407111246812726309181207037358980380131553286931702881604222710536907517825968692236802843145996758691211118585098850699201262942141990428413740532789545150911856606547745284926603974333342387516701052326453733116459430378220441260711614192544576458443028523584630793352650868922545786947337959190453547101547094166368036767826719712591443488545814376823688378853286413608657302000139034017385717456162337867760716533003518407585476187952189990640157587479603510307883731461558244369733776902152950797899186158306702548495051675910998656670443785918578284807780994135294884201313366897215907573792654879974316311352305352574526822120326381911544191214803979851514105423179509205313723482616216304287656462794293844178639232908738875193191230611174710287747118919208459957374008404342624271103938183556170214519021797704569169245533498228092917399264471275800872751176731683362803682412646547390375439405118386252040569655095427738277755160876680263708858142783392899526363192499431634648376045771228500255587079403837813821941146831440467704407538301316760901586922563855407775106178133361940105039558169544946179070229640069731949188970869823695058128790772029252490087811034074775639160625008504954102350357462551231114922020411972828760453485053570933761843171730140226208044959901121261581133171149398596320999769561889932591748778873919336985204433689587762958725014808033746199551385796198276977590123935139040561022233941640325648608960752076939230879328623664197614713085135755046677206328977307655151701501581933421047201286554369494784555870810473118433585417365146554365626645522080446782366541066142383410547512870318386230868979934592679063263901520930037413033368289073048208120869939833250532342470751639027704318602136112834785550944720186507129214240253314489517517811438248348398506757682189486880838990122117253614933157164651358754378622357679367485061836474430764896619621386294756093094111532289788209545359067386164395144367491384480070314198931726473626234732738913779864057868181221705693809862180820587046439546185158623332619519013736304833306305905703939548988414069415635762594519274317966007810542579808523053219408265714010134231034083107963780585674111775901466128854604893689156622696883187442178077493226592219614818164549092519207482337020428513520308805605748852452276569805567070251324640454144373695907404380896903976426173638461887289770421981131101718895728033321517427863030306734792585646005019141703177634599232935967447718230576185454370565362165768179138028535195964313574342045437934057093682183652367696771088254532322314997209419635456779144012449174221221889968155316050146372576616317238071071920489168147839459924969152368443807981037690146738340409893246913029222315679545912115035425775117661015947488726003863038592019846532564956935386703491288871713215333300243679644657389439488760516533247743810062473433184378779839584882111944486273131571587686676816973007626327525229177617797021882429935843594932752438106300389994021697236208201642630697671622952342967780530705391098266488042548217263169292461720964479410542540541405799855935430201531628399769069421717392814049079265653653547209420322059206584113595441027063385876831242566275537936422015011759876588262987603004421153210082384872724796954069839319127316168983606451007035836741958109543792698870510104775669428243125190849791444269385127611190342529646637619861928218881852124331958185131958900480235061127420536318036556227555089006368720036694590801915450351496855894350359310144814531687075382226788771426481046835014887639268900023676978009240357698691734786516940564761758830020972471824509544174282049379003023197602445478140380406158347337004125467289170554394930196328069926929437965157610877402835718459795243490670446091496253198212994575188087041873340330354231653553555304535800750563715203281272840898993981558569824636073830359743169546631614647144966233139806072273116406458522105080454418089885021878226838259497144224963395018849686523653309971941763614131641596704637211974868877993074151641136380946031100652599673429286642931808425471187552622536256433137653263405687611082984523572112562668108899588550149509657942870205083765494408728680793153539697335593220756933977849997207476601249364306545667762184641021677858886909810174433256949254299314468288020429486331965493045032783611956510063818587272926880820329993598308167351794843342974734724947595475252840106521499444055781140925195930483274596646859673871389597285720060909518372937338198985430219571090423875757680729803799079285158737434097963966118447618910459339105595260846344813887062453071676246007725516741986106949336677533983353501183850674914376432891233369043659966928975742947494360559962817679759371353308674547774595830621751286316632365496608870208785329920279615747498704061690068785858554835442833111883660222525774840534854178322778180519375616067611762050459544405234331439058279803386470667296218723026251918320817215804241864050617616771485607352415960040512504617966884344172798819281148924603388149678060351735511238764229558771938530151067840568439849378658575456076160890232165669495060882490598663199289389261734572543945887771391996857380082640853390799449539224191449471357957454726894070554370733885813853322807708201406754058461414859182433518624429202089307938331042525577831822965531830049884265757460240335562664229453272014677219839457227719364856439648477970657853097819199361702136407135567870911020830507827070826904986164442869536894589978020320819861195645476131605792905018284093146615353718258942310056081874732112540513028593255281855637380924596206465291824861537876325135573911689300752739694228649475295845425708104914813292378398031384545018230025613080109671575204286698285953637518189935148593414565945405780839783547106612007066777723404883499414093200142966729318028600990232972533709635740337470790624940073886668263532967106158404579437242069131524580229476336707396692582320168094048129254861527175911621666877364479825398442833790692976848131444916485283821096422610929855947097796283296855488485250746883205046915566966785589169022740195361651064380926383311083261980055389839873756332559568518505993707108656937936829318916277899099648152825178571823311359470170280236462679873919215573702243385192173622460829055715438202144746890478310357590993296295516145299293494795194765168976188676474877876323871418300522490898647678598975402767395894039621073895530478413973790626002812235190165823434149465147059415348455362498468036271855510775817264585039720697420344342672456069700189764601645144733454761031745921396799120928913429079367526877742592022099645931964410430739599466401654572176016599437199658805733100634204244080040603143219049462131244510655192005148959090015961070268175370492044242705569393785728359438831137820832158134390462178687339923594696458853787699894147035560594822482292052660199827876304917644702716759788334714186040514910326056657547024561932575325402250600825126665135861378360927781500354400984621603840560694519693044671856556218039925382481149743624215041838678476609482404884059700725660748786144417549287883872170029801901659172758701072201442719522013469861914249356585946213880019892930482308136614397054712093080535020066052817908985801821158772175573267611339662787048407736520058878564365398053339981126613788623051308298701500165150242139833776446110889218333893168489020794454662433549667210827457784333991083745302118150092681659513701835628257637741102626443490059569025568919856314191781706576392035248367797857034654959763370672555343701141771085357780456988974284801950616980429287359524479652812089851577630023818262562165204991963779978561401898297707685363803164669744253509751817749044324209565470076985464753703430778934142596654308829685955733399003720639434780033401143644465356138601854563802764616479794367845960545358859934734306422533671643649789337554439187514131142473043534641363342647485415594380751505443581871791772007295361057413142813332193091515560088399617278551681127482742723285873988033384398728851064651741164713491106915086528494402236945877324265303852758359353868406255063630728694858616014991515098654127895224850924195815262449148784109331259693214193532232698946692859696175199393096731076988840024154327680397679252208660957140458794910315504343835023280056332502058995331926611607256187475580917784019389544540203509628148377813314309871975065995693162918823248899395559454319838507211074236927052447955262093549885553780386214700650725194378692793516161650172973963421268066932170762161329243521331499285809063091538941424052861415291897763981370082065125737184888120654021526958800918079932570118664803378745025051721306480467498176427926757582655115061114860839587884489449140510822930063633828522159829592526443352137031836904227901255122049551177083952041383180526527030343653886881744578180602287296419627859650639748777399828959842578738962080467452767001789165041416774688723092407939468941793179900090436349710554321691997477626961309700776316643797566899413421220633287108399249122949811413514540211839723270564726034301674115922729436691442143692901314863820881473930711331477244218010552942337409305417969891952810194831754514034333927046642116834278391303014329509178991085737674465809001055224949461202684458347418007479479079184776418271397057189778681259382053205291284710123854627605737368241726766010258781757937230802149214210201264861744652752595273734612348046830549397044960495410971497953776527880733771181326926950571182008510980812467892327570367290758689463064566677527931534692200730231313180739046321398601876363638420645618829992159497141289122838824526625626680924420309238046761410054612657256121717322654531434939076353036291787233221579839995850851990414011067850145800508880948840772258107146816536956114944267114078724916753392016023272190483148372842445228541951806545436016115805738684072219698771233512182807098701393614233890425873391134794082620728024615505688484978280813812749682500020320947597530119597510989553995496153352726137687732903049331965644940142311710316491920565823954020057026013312355045981362329472288112503798771597353403023728309941359202767035829688814086078268416650782962640300187617440628170689410243082947139974806246269735606545566717585021926300288328455375347166941718931510954220266986106479614827589277669445436105285882092345282257593414928647518925188697818518487602723751432627839016035077919331817143491099739840896156654929166236046236053253741847958740535401108425916254615900251586652118267331749351370122481367724297618141682382920677300565771344054451660880545804356370125639322000168217557813064879763947180934610889665400300288762009604764372971365808062671541233188781980505004686215418108849036504332854835517902261701459922659854691434872654599939165956983572841816704072711337870085013945516712196348391682496019690130006653453848336354318950834059454124511768477072757441667791421953940398938417204292914310232200042419566313610118336671298410732556732548736011406310967933647008628927400055359709958507156871149664884286620077030784482466847197792038799038560382877204857844231746161507139484361213876584680075843664193838970534197088620534629685768927033606953097093328496238028249413171814516914253681455551719789634257822724768249220937996265739284431442227748770237042275432133964617518240840229797950466690403437385548848858762792055243018884914877173088282505198191412334977791030931947242178253532137115819197199478206058949712078028456818883008568285449249560028462722658380307128654868915389739415930333258903116722448703277272257898265489455412723460502548764923723850742649695952560959536451134878459508306121079398432271286078953728883950885068414723717568301696481404187569650742445171876716954197267999677129082687533797690943492232452839919093013022781152294106409861673255343155572973762516543149544887752034795110399761575001884733037525162705432719856946684168273011462886083872023941707220150544514119203546663778092101798955015851406436392578231549786792550278933332205365048141144657417826459429357087158178261060659989161443713844718089873633561463178901173936871089620461120483649127951372964513695079490816309233138393714642000310837600737551294876981658480305530823071789521186164569867194885152380757984146048983045308529581680698870710182771397376099514690588145731193180547113139282683504346834200720177720825068129680985307420218351303954589670714124508091293294233979958922453394017339388411201129451563526584956299126634044099011272587196292380022765406837300638446574756582044247384890908499977482246336830022537241306352989082599364115822708721036120017025490077174655042663117245944395740820232271242884244565933340525596795030646206550706243132478157532544633188444992023264739228651283847744439786512414661406807106432672137417631734009382446279597343217149802827555824131104585217005443145024216595608429632607693853077411311144914204065179291581448211309366764503223136796673004474662960195195066043962738934869274077484496053993277868773016705591661796947548125311986325271314482036622265084671759757664364360425964283159752304854141834022590624273070531386374441190413811958616597950265780046762163808407869001658352847598819859544807137362407281964939936408916801182607387063469999145846560932437726902739859895673371048415435612841878410191229021021608494345648386129955457249732852951836050381463647996594889704974484351863895779321978453627521687680571181722155324419255909966736181729445277875412004508723540153324771561023767527456464728959226280762262832475007527504030664456743341978206255766972606550835851922400502790361020095408095263719398128547845913170361017785801945170537398133115450507885044425306008072360717885705392053293739391696458343465617171465936998263940865773400377145800937375210295432313095452534040514562034990261498851440388622057113866389505402776589557148701736120406788472445955893295443063918469170278047461493848519099588180876265507511777861570771674782908341101405169289414144511870721626183230644230927809705727390128611396387746845313335884799168067416679300335670285955318659018160239409057747876925197280100659505363719061636576780069049653649759568963269503513024005807591065060088766849027525519005767151542178342163290578861829298757515101062446432102029813221036559192974017743379087998102419884542317155568740989974984163161683772601723074447387934992866025815145273790348609358091730341488723954042758595227456017112097171647773906499449697569577860186579887546831289478351361888531645390122616404794516569784721407274635638620932311148800186999675830832913361862764327267171936959472583055566052698461745993312829142251338183925446185139604311908496592045646637806998665651529123811118526693610757005475650723908051329069194522420141826894267354923741799661174569950663825787667877043635057307715340857250770168311655324088750601514211060943100814317270643251606672201034065134634804241748666979346440540416550698644077702395483187137217340815934472469045424429579395192902462606469870909968806767757800280812123055865593906733335572092859344835568895401800343406153830382622588031801763169390271524504152206367921457204320595059367821473283783660875220704306358342649139567943490716015024209031289459678766304052112232869970112400850097075359509101898983771675491090127980042860909956918792911338867763754452056075826855611715676574228364176292241309179554949644701998339570267827484313905244902195795136062392321208074479219362150546581323336830225496933113598962913511993824593957952339950887658903209304366718123672780068891469933553580395560956507415230737310929228901590002860912276808833052374050297204659671716945752526128691138912502931237411024848873176345559642450924473675881024535472494383301004022652773398661797114849600298731119211870510697917978716372033575618630485717289482290953369547246749351502501417985244718513952282084327683732707756237437936837622829894902334026380612908700033707076870605263379020298174122455913935103111499440396484886876582481883000688763583520310586316150142692992496255144822380020413687458080737932268213509773415946909458557034192661516294896152366708100084933996024209469736006402239327752461673030651501584527099532564546810771942816240061302577024835558239507016038700160816054588224414412431858056673322088634435500789941035254054092230228617293159325626236219362814654887169108055323044491221512416173131995374147210030766019907651117374232198970517705525049754386716124678983841682783765913949486743499669327690134106958968392628874786613616439114131004605531421921873967572222499072473818799068790922890036200995374624474197520041475271041393100883932672592961776837621337699837811657221608849597910617521623510717513714395001772372818388407261182186065982449976147852886145706948975012910713001009430893894064576560670636027962532907294876714993586495977761671995573733981080694309507425357241344204554535224011741493581969170837142371729654864519341511661211493341135271884403243845886365321394562833470967261611223470912575731716903946325639277696489249194935514231245247363210904262098919380380349594504853587058191977111315911857028399278654191764179842026908720877627842848952165538061039036389451723731137441828355604265221448908925249982168053721279126186594339513250509647309684025258314143751582437488992744103832584387040341578718351765817518660521832448756795883428841619804522130456446142395289394831559802960378808495339442595486386067508343645941984223942597249822309317897349141635205479898842151011007002634007300400249347822509665887440865526899931819774663968971510275122925245006346115197548926565479269313313949431739260035627522364756562099896345988087650444172870138044212179252904486801372307557384817511427267233511308913729780253619565419537900287739129538942071779470999433956031543694518668093720187342691138940122895417673778902637876897261274222577917146376355204173419213569268563030213658655661132552661974879495729811775379889955974325059186958359243218897778089896700508792466308355102294642647845520884191255053613727228969234923048952479297628979407627914476570783005037809391425488911426085119510248130254814447188516636892510361735663274292141336929740075571593032086374978533923190015741045053233876038289480480410334658556581519779469288537814096050074541180360022705542292563025409894698422693105775026180368194516755322854642411632697570778701343708487015077638918175646824474093741762698167710007387411398919761861339578555442589912556488380992790458842397027423616981234609409579629687290039706135078148226484838695609092398901149230902191125543196158107684391637227856216303324370211393876290582885469887242838250863897945289026292475497223331325216331601068528696840459932869807190689367682473228728193064923501004043004766304988459654181263012323806046777110928179738642061224097375732414608505392431987171025570774601886362502631645971223705683259659791227847635268464980725273061129249106368812968229364450210484271014108475946341844699660441924623612400562068269973297435700813419010371711450692986326188911171575597762588047298651674916278841091819943875043733276819230055666258545830138010127997816645611412906877336760496438756443740170516951252600874409847559929103686866148065150482857418744599205199825029192883288157558342221676034733519612307262682323626030106750031582844274669501530075431011638937916557186108438453268375076762615144899080171508930196360381011451283643831815152788695731156901489185124970253118004845043207397944837712027624141036315196562749361185398676014444918075915339970433665045441077815872202585279204551882737335622602210268690555160910999480952848617526168529209575596250928714138891619997666980199324734373647129790489580636908630761087210036454832176357306509562609046651593836224345122190145667072177684309379720492840496865762035959654651766536307435247342411183522851462819918383383381858676385322063344375489238776998674249814690445067885031277168572497250381295293616098534808540579355331294254984505601613991937617980601579609059116489940198782550689258159232644654644688847017716367964982345995873336035458997414120417748315323422980025880789176656595638654745337657130098552790153634735988250783836536094767710659040704372345985533531006432790459616201578092826195132429138749435208880997791452096400331111671642292297737323733151043126026651794376986320813306014579694689929051205572880856931674508502908736491660673225601306976616719681565449806512556257240447535265273869863416068781903179921051881124094649288641384542788622238759909293805807434972450407744175311075686738208827346964199930092228600383193569731380967425048251649206789869083227448608011336654284720112546261757507003821241627515327880920591612916847219767483174237719710236692783526900520495121500508963944739180276338788579604465145060607935510176426938981796284994462510677528946750331013753868071707611523763347022537493702555298350740023574190052758352922292804271574360558877530272674800443902665225807792054641327236709464331654272179448155737905371899272366925886803881654612618464930666107988782583433648608045153507367120293770623442889571561035059428761560578080136707039551254845090870421585185212231875610085087191884531024316602137662334043494594619635080070234076137958443944883361795819142318190214538940589317046918771541930432908376194998621409705273417244256590012044412892448986119034946362056008829940651331542555776039833084098738226165702976319593036989981062155025261399755652365985249341095241966479931128549138567255059735414985794175552337518175820129232518704901593782472080251263455203026220700483351969852673385276657446157275707975864716370527893425892011798309637900824839679676184383850803903733079519106357239737503060735039248601263767525794277295112928190046686081706466004079855738828184790308235944345211661446550255462661509137412124163927076892054694243121961994330535452342513833658066321507957828864764141714652461305656776595695596638111864508334966464549623988227307215236768671604536579439013561936656827730750430710403232959779898916600358789733079524616575919686678260171312089953209439959196063006629845869481120448643291090028000027214413262539401568826958801252577480473918847632851156480053723110211552837667127356226094828148035857174676260494484057355616862954343395987116841608293366249095337586867710806835024878543012399360025025623434016336265518140499451930773897072635416606567329192926555107889644857862479421087722654342403388025463307018382489600548297488680786982974377015384009463463534447233892133972417054121652757006811335437913267976169485162690144248400284229995467860059515992536604242479414356625814660580480856326490804894983814266988538745306163979704441412702516691181993521086972552259961918010457221637818919289629987794854184621334385432912574771616934907006445094803476155557980159394693223981703502290062567569671128315924457564339431410684510755606129528333059621504353274326615663488187541988238072558125965265809059134135424559348853814050695876616463875360115645571409777824176274537255705362964504812259263977280380747632872156103351637079321554286577669222643078347862588641542992162605331500039552865970449931680743326039932568697351236742666721982512997188504418503332837929135977604400795957367955986008650924523489740798952030277672154320350027152126984592703190973731938893858194661297065921919358111955981813402506552666721178235776451365056072899136269065148998624121558962108608706213234333488268271793480355023477793362705657196779796282056082197841025778041008393853674501735763192857804423433056652268903361076729613616344067273957546520340555866749236901083140390959500996401132554394837740097182907345115511264150655993668832390732572607594472254092424621205228001316735467426769629213242559353440851591124130854694232500897630444904125638481154429981254071871948912762729761356826438388432652446415242027799777717473301966595873935254011002108936519942380346902692564012180423790732357474622207145857048913678518542126725440476246211689669476946405855516315556569269557621390508254195330230232164706408715679122573061540793554640841572519121290852863619151032785966581516367226310157831532143235065093608647024719590278849742665975914594073243452071108433927481549725369384294524910306025970878583565619500724711706436505573712179824284805582083022101814968822839512155783308752123922126101272826736456314338518746453559947702462134946814998890381518706068306854910215994659869471392313959559286349233326744219399254393956432532111235976714443328513099372269763604498357683409550403386686608909558588305222205356177580305917299602651349702291738372630186464753289241024943595073479094614654989281811383008806931771451273736982218786503083672041955937314846835888316264901314898535692576834384455150772959376225776974976477246239988447920993269837108445345280938398312621292344414993071628509815382222256580454555400471190822951034399698847764937979657033563944104089240673541960405335976067169368830650276551965553481674419016236763937725581462054597114090345815531950516191963466647203211417531761797906531139805684076287778948284392033733723591921058836430215638139624057226053480989786217285757710537653493636332891699814660537779901670690768975298585355530610130754174815757253519839592238252538511010735009678976638194495182808610984181174001016081591444598617683580407298121658891712530105675574703706501948657344427711865578932583113562634080821719786307858416209498128247921541037798956481971505955317591430220850125648092791111277054164457730169259611775021781233356586794649199394888042846236181677843122635095477280223311779551457525529386158362955216666817352333990868395239197454073845646492334790140101502948134474896186371767129243175425752718334016103933673799513656529477592072203195538370792099475067660898469743071393414004599718953561571165491983942490654541606801083057048793459702785844050407592775820342217842324418374124214840610678150343590699801705241391331847707041949815550840831528330590993343114278075051128276696411666658720473450335275622996477880897332115769186085987429534075620173126786504945030825763049443088312862764378206961102117759275478909292847740474159970077257625915026685772118857198676737016458183498051719422495322231997092525679865212994950398088023487552128653592257649404958809943743634983466674860183386641928654228224472590295823399978940220609895467090404504983738335643159890589826021251383686412735958019815387734488672073929668046365944505430030230229515429422664627772026567752958107437615520075298707195164645281125943629493522316210270250433104736773772446069112805497358321681671530551180498123756245800057072757089750868154715072918590653327235045378444611102226589176234414391333470877465400238418094802540412262085778896925185183028518544310725728481662098131006087216601741693874461115754345332315095914213066753380678570958721531809918756554060724261711592842055342647860413220378777846476589658528121014604205182416492784003189060455651362353381744254027106858563136051858441277416493717719942517483784282143570941257607152976678483003946086490462676765596786739851651496038139365014576598405069357085202276755430737793046131435836116625480854103891756561097565942846948811710566158171632661288481316781029081658042608640433791286994540608618296045515108718629716154105680285919877267267943857514160173558315695276183858072770400533664874017819681613078909304823439129132878456213142159466458257158168568536626977734796750005183468849760156494540977723777857843986985289777049007788157982112323377772722040825302771906996121242919385779000954129617436828121746304317914934703380011555408843668122147414541403973480575757244054537269638527484529337062423967419575159816110975605025903674262978355726492169009331328308015300492412010534854282430946805964396114446754685948389999393518187685020673319900247233310857030145966863184626796557011304724865261801753763977579795760619253218751956951591089988405837326001862888748093152175177520841258022852653699582442517771905341448430453678747000591133030714250508599073112788969625808850326646825144258675121000763385657021019921689484360031835205346758179129105481385199260835905907573482812325049739708359045344855329248938298958033727188515520214879244508156795115525603525667284876980684905038101198569918635462751281261557258718322092581566326289479430921018463959779820399285669068843636642929646689372671367393952995341429257184389132881662487440870682948912066579081974676337360473467742953450770145167554866997233318082643107199600805249648112727642659383932570328026377516043770144502938030599318243564073225183297205551397289993816127345440173412266890364177422911233737168954888377708568159400298450400799000821773418514648919407850120910285972461034836778032392957552507235581914266933247325967805335288418011530009246727723787586522645388901312987176239422696734752076961523149556922892110764639815155277684698228338710958629871627062871641573324606871825021917124383988301110844702891484046559035550651431233647509995124543740516929710551995558350775956425954866967804089168018431177340448071055709477208486302358034407782386028320896728832580050933174834212219229616861214036712103600357377512292629498190470357395019271100069819525871473893695313569111712356437776361353305919810720864423213970201025023539900253902501124465672323469481660811602217647562971819802153392496876628772181820363936415779698751102302158108146262712644216529003073013084975226242409750955345287675735808170924011100994406293916813612636861857727687409480656940667053191702229162512166171402040556535353953777087860397515160691999217438597669242631979206934122971007123000199268472349012562717724106271332045409086673600063575098285911311297922557759477139053889934467535543993240364373729600934680179967539675564201078589303987798243328546157758281487621249398516499374160092448703733127273048520685932849199048802789589566462024648985940206930083981247073287902119136584851807194076169156893516454195328284877134461562865149736316972665686243085399668429468618374143435721629261596397430335198602653634002747594810776074855968309855237360775665172965418613016985759913393463299675432966973513640291028846399135895734900093252704250191182285594013864990844747952182161221549570861366366129910029725776446974939549832001382522668730537417843505775975343114442497884355419907020530278236600741943896957753484606760903243066120005343944104693861687369762903567968403796033517394792669160729606476413612539857519648089703330695055832020429877193404283101287833112173938891108486611985543997800908738372996313429507680069060762791975896454356774169796072564548614345885467934766128039480216755544304325265083671286869382281087637122348131708822288083795118047384896599578864366909314225055009177384318730995840120352015294154326540071033328751474469473763500330076097536667258159009930567947673322596353583385144106893489643489265399870749575360160588235269119974120954098081818837217572878683000400835367813008010910455786424028235854150175410171828592303160951034935689046952031105362018171084208925075441655490342896223405644352550722752128357969661903327117705279040757833995472094515796006668236786163965080013812546286104545078826732094733736349929350023157134453588684635660259357604798401274742289758271167027855719438952232966330474474382270932453927398763757529888494886493868516455949992865495385369639257387351210486067449493671852778557111238145505656723645645200382844790171715583218567007164392690898530287767276705260624013053620358677923980678408026438592313864408758651209597859728665290382961890797732043206833250707793794522964386754570725459488448257937494446308148473467554907617054805881673019269290394501494461080942281398625044590407682607680086214993395118644672995527180377822010099947240678439191081022537572293576661777127821709600709666053465767587611848851133136166817540811512437717453982127369115234208561189123025335292053730706867456131506802937486016481989306724769121724829515552980681917207005139526906230913359443316197807517968947524931045000433002640071487242021401662037598941536104048308404890638684547815242154190445612696485364471093252728426625718919771595448110272630996766055843627858396475888210737896658023979384835680098999296472945967138929282923966940196908372738858256649894359039825120340881712812651880971086698504325774113851496249422542606619630437617076403945015840891192103108656451965077317232591911293527730295102519084484220762004509234739943878347737680169609950781161725806053494437838048342178469626054168729262236654960090318209670148275897683727131135502270960966566234734575635356797740955209776336934651511955593627009021005379826826873207235357337455830722186976722229679103339257386398969482379794264352077811113481943297872369079093116850118892831915773908488783723291082301803703677231597330247998773078749647164789941021770109364156453864785156711623087591424235023886678377260229045720555437497818467002562367567966247892474918852142615062367006837151988160471001392376493229226258460194727403492004553423154969173913265558449695259620641089083447395763257958183282631000257740757822473537123117402104613778617850421956845353213744546197208733701282554326826441646171297802227349999705909902654127388985143986500570679442476113543547412795217253446915707158665820193453749128273220747175542418705824335826671932915090559520268523338560791248895821673469931662001841296564647691769055432074071314454756855766896699283173644118702703215768368589642028337316836169349478745224043505210760546293775987726992201389725692543695568646774521603844196086671422244423587309024056397010543660403859351286752486279266759420482863601051680791316946655612798347305176559151670174578804482567173692382516218255927610987046794521066558991403904233530877326866665587445309100772749747863493102581232608027230473272806668137661394707525082556346899321431134287451624434739705836823763070510611237458077417538890669304046974698384426706561112476434024804127438128254757067148825475310474086835570277142517594822123416664181554745854371191390084766845822758725734027010621083323202626942394034389933353852277438061976123147256452931167145232072429407397942073843587008401894533362419535574196461630359913648675572173124292334784901978451720792838658148076967358011647851279289738201876019722768559702083669186537990434247587329059088110189050090033693658170807895446832963932948402347830765895514630369264342049243410802673743913379399903753616803110275289904864152863513874703129198907007282055772192711461462649764856109878329934734364593887328165628605455793723091511576208790654832947173244785989132674208592019291302553241769613447492093302003069635581338996031094792860269027082133250869444178512617062780839290365008427663803648112686134673217431447918834494381558029349223698543641114354015800141915470247263906260666555034440295378305612363609257688240594095937068866106458520088337439767729248098970461221852886950241008884448904438966081790090048154701260583138033479251201736646917465097242443402094934031716471163246122896106562804512166069728354569251770388856093656574017311895566660895821097944767724449494548224420090258853142926527627576937330898599102320743771612098181094514926760793585445693626872789900922967167458090223893586782609847610474390809911578999527577604649680631730294293866893665456500902364054027294368594807222739581874648650861950678745726441685293141550186620335508106776808691833320802267983991139969458443405210828330134092788225566391551381003132022450874589565859888304165787645439062196974824652866674670347189595324102874361405476821337404100583284029762199641070247506378277274838811049988439006584472494590472750324947704862567570278414955852170908515891780560656523187806577802810486677208512432637708790971760065789615165247695993167648622376854305030600056480112167800093337973317735872392197896442296452145612596887524091669081265463655577251463165784632576829640264413960793384904560629296139129759594003777106834483116337606160072697729027721323873501607344630169304210818162663267618962435703104282243340198095138701595038713639052250423188292814632823304089268715396845694492934419618710325987801662603625137974975295217844809520434181548791531096278968620584597013223132097895936804619615935043383311964897433149004255056696361922148857656333556572398786146752257826320077006972277741904251009880626604804003678105403771102114242252190550611304165592129234677180430433546889985465068212698420422345223583384404596046525289342125758381361872259572591385785073132105618049509906663360138620281759242247742964141323710402508119162752043560146137744830190148790885174409190642385305063945304457300788353445534031697565883100228819659049911371808042311897960089637502699137423428740359161988793745617755198104388536660945820049528302625018677341963405775408585272938738091109925710728090130433510356663245087925792310544917048071143577672890677052903678217975856601228001068168959583934131816710946220714527994974560713252220176978722971396493382794000210923271867300433540540203007451538520074672772725779265797310316213573576234699305316302452159424763322444827892382215980646980099677356361836091642954552367518455210131851409089092187469462852134454266698710612336711342761310054134178953911581618448637115607637414364059287219967351103976736371052759495305072143463931063256367194631910348091328529760243959859856968855642948092914715847191470642281187649307840961629842635119816049333222568903649085376988322669012618457134630541159738427487635425688994127987567970930683236281610770704938810324096305750620931273817332779503924669702584923576567833676047173689775022181175732605317576168942604808778111613975500184346815661008393978055542815588856482613130623813765120991624656942472260867136612687627989812157106889930794802969578971456424707503109499910555131854701232274164019392677609237675220998747686306693679457569737043358812296481304817685263819763420789540597105210137610360507025619997680774292016114608149393390925885686334296169750959381099738768764900251031073369832214509307713312431807412787979897395022662245993107902561242577266308480067253608351386114356772023308483937670066023649257600276446139500569066915049636013877141099331677261423831557536160522588924957027310746007430495863153118209238578506142187503709876954984235897730124050891416306952278121838527531002988215399931197977180994931458097544300121499550399550170073689138046222009723477329991562487040667978997739383305649294701981423981375937212825526830729379505976780314472013843797211115035593074808622593848982524452798685008606249959394898453620969051510444721498927540408814713960859344213207462031011222801982501671434432265736253478704756759730500279644051028738864596108751656463730010339678301031803436379571134661100620348898430796192226855548531120904988399942257767885041722298470757272838397813919126962544268352027929791632964274876486846070172428194873140637143766922401023915319431627149603490824037550342441762966463714304051094171641792451995204869203249027516014789062246496481555452706416522070926573874027639536736993731878267098324762370740894457598975620644016976706858123866016687750262774966310834400969312023614531429403078808690816368689105584323155771773048671979757427738416773918870733443618231236225574623339984663803600250316772951096043472887317423615854376710977576050072539094415503821386990857987214665919488290343614147624051148187858921306290658572482477394411920264227408039131574106879486904642704174499865584849222518900220764048466851450095825732569785472555982141159033731886039950367555989737520650088530958179486890958742555483551656259463348588039429268123741651121800909635963873607604202497679421252729594164724521889932980491812532894701702880790493901958757388668824131929786781787449264883716762843476474921800555427973234723014441393987661110310839149284919471425222324531005847757084507715389271396273429330558219264576561935072584378456862775069839075334318034287949139424495037912144177773994229638870911425432938241847289032888816240608141180350875765809744744716936846132750403290093549898961441297453710988389973992550134431155958512347000144942819712366420264759433102634780059684578633497832950071848095534868503002475244754087590259327242237238328788564859177596704686358841423124373563624556595709760997168123098960824470779378476491739895120707436347868570476303869078436856803821810483569057833910053192333823242523009157854354110007475049177106868595311413349379996707385893329995732353298574507908872817234705479550458218314454062259792891086791339399249239769958202546724793514209479448173845597318474133716171818188211220290491316721119366423171126400088958844157209662576418997776462642012852005510422509906760633527946328034612295889434920310140041118728595620200225605322324302735914348699451361334697363629543220392477784075857105949224619167540568553287406073193069255184172918165515934060292469434147104716939720619753290793808163248163777980616581789808977638447945936047841867044018691188170724180230945805451504152283905492951206665097230464097552527227955584304323151306888859473463837665096924770298864154275388296749578002373056089051171383453399156668281496003330531667697995206039230973322481351498965222988601884711144761987636868535423275239711229635294652878476526322325633799303826725455081094416638138670949266789404753565448914895316493687940587217739479387334545838427242723758686199645442455544249738866653613568923524272499554526522486896301693181105850337134220425498613688762159959401309559104569843439691564599109175450443491498559381281890986746302821435391479917496014598738716038215578747478303660977402783441112378640887963062740312049143649357849205442836127013311346124468162952405715495538118006575897703203104252846061078259295183833207406947745030633960565174288418950796892011427986562403648345802781486299918745330118476266347820639956922775758914752878194694009755477165727617214429967620640576944211624859795256105027736135788433057697914182150277546507965489508073850382836323601309892248263982534497829022047873284521162032456715262102210945703988188641507751226153014543237504572497619771929560155232476607595330363583947489548920847303188748551109125448623397540969630677166782144609030736446810982635947566515917928572101245510433884373859636256189809077535816506774270385565025252301918032589752753162278688841870088125180099519994021276844144874301928653657390032239127088357307039657746526370648713218493060850508539206180903282003808426438334047117274531092447880982593116045748567712583251622789586079605082299148946101099686942306604827450901582461649386382599484298279211880459618630025474033283398149095696891635393584811701050489424019648764263703533956616294086743021139289713799580460513680354713148603157808364847409703582007500910203792164532914124271889970801064006211129470170023692977765126341836375935799138587821644715092310725533729791845945292986933344467313232998714987608287924258372062440743700441467488520927604317390345762373622025662364125598638381426196391843475563462682756219462421830537186293393887952557766748121739754891067853384583528662474344013998921546676281478539791643837957709956093769571228157208564299818294493157509308114571957976161960437084944988375992762787873782664298285594384463299788735991004318462922750250433876783880848927642348188387767939229930679521428857836585673767508214030805192225091585711592823933087346272228059611572680068728028429172651857936729768116338430680936250996071381654397631903696534166770002500387888650630194469268473262091221817812332242578905924810269491094585109617805373182555163902831228369157776019171094888575335138576547438377216599224050966553483152832813051547293695745813237819239747721000785250657668445739386596460384118772338271955918109910525159903632313544236980147257229643553895588464717915664789070121562955558810593581382194964282455203921362114193834555168458162128248441226854733083623897657987244349531887280611596033043192947363886358530356232488629019996516113179373991395088649079489046205019474315979400997593495852386069499870288190729810670708728853646432013077970314770349445915638258107134773022784780949228057671110733413851108041600252772492842918560042167684113176928166975342528047913906033744586742447848217039323921772809337173386150701934984233685495815957220037166108889792432481467997964841668396674537239435384090749304937861885244357026147760733370538808236474571736003677050590584400090462233595061728393140207918018188105305867826071486107649817250592728833769614248577879867733571843833655599620344419777873663297006364360730616027513922431376905522872563921409570364645818259196427238707274784291606355635009212503867084489814993712349833882181874090989157740610970709931800397021534701352934607853001765088556379437751542791723963730269463254605359132487465903705304304266754097363367274440064853295095955952421549539146173909442263449476806634034083316079235005086436352874056532236917457291709166406902757819161416671769759006628274317053076720864334174071019445096438203588456554617555804625762095833754849328630052134668736339564706936675386624604197029542871554368984572065140523349220676101538576691406501381556686200622142148612788786455238487255818167449477110663514682147008700789302166537615130244577659587548500387541430181304243955206073370071902761412025311520888998815847237549162592699102380334512556581080161494169813695747834815389326877892346035355671223732758129345598158045305017414255650143914010808621028105263096825048098090230234113044588018960454125945550762650201290248396310581329801597952934988514845810936737225646453724480347322367306196983030649156510695833718313189555314840967620909348348139093960433264444831733676806293575177274171009301715124329504408124949073183589513302223739946105342292353936966007736523272021986165288464665406875414641783813098003862416995706020137728413800973255245673799852559867616257246829253279773540480260705619758567636247784987316533491822072597224418204709291345728113426957293798167697854142081757432391167220724178383444433397373682743571947940850906241237686128098015761025142400521017560384637584839498691795068298142812830476561261635568936225594380920008643436451492572374681295035383035350343901974191282926912605013169303754818917602530056775272303663956483619440961885516596090093370401951870146368451914916171816697776845554828791355195048648665802672520244255918526271835692666321651643497426532565961195299335207453795052077802097765400738382770366832656405844804962379834900853350696746149645929743100011711686756964741880445982020287140096432215724647811394445536946586317008642178805454942328291092353198385687894038653083243119033237798286366270866199982596179121867256154659466771886499553904778360076473768140875810455968006786412508949309537210058853199350072730142390815702270209880389771302510553851654769555755218675958396650440492031075520352463928746696560859530258623053242805323671489710859631557902906669305305440021529374595581908748109837376580384868106166061878096254249409275406767970334221791297101004553957381922976359420497552801734865839930113508581432200899808315177197225844016207656572597072301374707717903884062517545982145011065504834683037084781326190921052812325742956642414864224980388076330641978977682078398017426449823889126803734680615529958003422663137046620841680365729056817169914143235572100210570414210297149935962000389138301997553464962869912939106131708732386045088519530788851144806477951758040250345190996290789964480840051709628937873729239335121517148899823133357406465163155872856018367067344184953524158855080713769483108452175538259980310580422163349235259671863167920743498561765684678286548517733348137349458852080200576892406940623853940981370609885585491622416040168779259214855555964947446686394616979942972399843958371509806810747043089498027417457713188984505699925552233347080648584997006994460563626863725016113849448801478378414881681157367628628603417516643281272519112274408635070052443447517054425299110325384331777834584337695236028150979034722440588126387631526278858851398045197108473452453321162119071550311652044378426201434096843253907893147778252281151304392173483643090594915730481701241967668364447762531917185038347817317635809066851527575550313967055115714980064940444667809775649095480410999040985069311982331849996385268229832840412743088264979133420923176947013112996949591859425042838192662925848117739130662090883986056766033052437017000182605615997354917645158887175305988157119727501742470103322724571300214061521252557134683835824338044193863183521110951746024885362362765954039580418975205692027636324372442333022343694549218435975927700354306458791865286184769000351091628083760950933838844380166444099806429953207612391368327237064349600698744407325941684667059477793423030899136367576913527851247289048924285742500702891377846553088971231899578269379672700400514251618100388485401226682880993015120189369025404627959413482946889568913645411904134723297651910183792492285200609092310795757290249048720999459238468147204443161373016755896318501175445523439157646381972447558097035818324017793944954022492577381924720987613407236606662753898654889573237253778246554875716898816829071882925719237610550359393460352269045676212015488605606826814904523026844832188767836236377293930121665885259787260842800251365006948053634159098960950752359188524550908345310750319654914855241854904831102193357510093737244105857871783166859114522594512958700830326800489121327335013508711123115627486650071736889506717117909660773683653612864882039963346306560008681826371497649142495660080929583679304916524088969169964689742655328208876582153458566882038122145451437910331129261164498994489877226265007896795286895005015982320637922026809761834763964443150186469827518056439851681297369301823301283674720560237136482874192011538232191425500032512745003493570040767943208190294652999223494353414155414925013511870833233228251088845247585806855204173437042902733371813684088808405464149667005313402630029281763314412401225738561437768497088778733509543061611073231311194751254297502265625279004096695451174007610298325777489846710536553496230298700299721913713599066030491118801200768711341677423133227019142552476624969620163024007826365405350874956989274327872610227925457244421771684926435688616040861096992129573941753191659036315522171429170266228811092879385012929863034616909308663346457604984466442720004914596028270717413267412569323657289529684891374427535306088904046171672650127771629998968436923834567340633973369921109551053047767161259974925214860777453676954864829009266234124905713811615937561821442792124548040677122252112142669281026320612523716671048939747606964779880402946392377262258328824273463987017409700671681325618142419505476851573969683140161217628492321965159453219896804321619779294310590876428564017329453905495197822334578405930451748543314993848520594384066708300854019578658344633734630779612410309826060669069148388072715830505969146843676341051214744775724808935860466833553775656536383164046023808524833846396583337717403369248890890863986604166346290913581517914440048482414141592005883427670192355782687539161601740197291858819421123537018337300300558737272098916144727658972061897796709958705264608282118061401280538324837586781205720184822270126410606596699850237239753212290278794773976878709759460468444104291195798379365230910271094935668102673596515979827495070425753136150620604015129570492121240126657586443614655649057465369325997723189839983738735686201563494049587122460590790593002798255973646576148720537813863196767888558259662530228344908928233539551308932717997653502710164526848752111501541217247738114923432825451085620966459469042387687054400346144622816954314543821341735953678957046504862194912770175703074639825822825070982173490492581769505127571396998201815732292784095598993903968394490555138954332592581183552962130879523441291414518109829206741412141460630752036438990200112230629214662512019383522745850505009771601608911934058403115742066512842016486766266001503664331454104357574652796097291922737607810801548105759699289827954936300705527770948751731244185010941504767378192593993771874516195298331788076770307804471539135225498950420539269682667698387820373208220856364786012790703659833983661200476959239801790584520579120298322474417836399123732016305579939822254708151743446680208915966308448290104281300655162413173811929841483447139613839417998421099465373001893089131612655882342827610575992067737467642348855750340480041073212840734412739973048255989482513753773656522664454328462178515779966495654674728797232649317382191430089767952595277720449080188167028951143881598576396125331542418421148338862333865223244917750106912731480613757369022957266806284211313629898024891447938595575687126638767325934602150760284253838124031507711324223034727621648797804229088684704964265190364114039467794924783944480399637485348161747597426076106534532668063983092589727691701583201831308975076436703736167846606149078919709000842328235056769098202213719358516811926746948534896167778663153236769183187832998769824976521121839578197310438977193257151487502405947545649801699354349799297525139556660405051740681484803666637221671080645739902613030307711407589403627525207663877995222087634575880270901179832610440182409585988855182401479658295703316290180881792928449901126873718870736041196841038355705334879143359589706081767710859388330009104290839160834555120755556437859904958754729855923486300643369339489828608348587137313297708016457732589525467906615317261227909358782502563258168919835985703939820866557130075159985776015216207807734457460975933020622325187528738001922755780388154644088596573964661026916850870640448809713193153491215432101960314052686907730247201817636050271203123254844865559296296374953434265662379336004932433638032791394494993292878185394949383020745919577506165448123265682448694612550994983738512345448279683525448825316787118122094673509866287712432384686581502307759654956257025303653179813286057693933764107247411932970436888953995931980632135500178688292778243934361740294765146252959994839653370786515919448500217984023231101717896953548608381643679483149437879863524870518045318773292582264912093102123413806214719537283930265269182500540061625934438726625842036944761245540615074817483793240047814292787404101102823011916199441103313502535126771478888913447571683322452405818518632866049951354836156514015648873401353810046133977005135704398618165501268819232238421996032745467218080370191824721986561998739283418245743505285469903786022988438242259025353706352257269688016964740735377522068493268967054375570903687192136790215919672593242996789126022748489693163017267897107650016775388946462635956801305008797564517174725703203831776887946269198685366005377284013758580895805459841169599745315197707586370299691577452914909254882535036179921339958786900018767356092821352853408318318324872617165137449687943970769002645851173966377620281794788655002745755107828249205676921239575037881196535022022752523310743555497628403272841332874221646260635903965857225013198521744584809627449526484931028466103111359095991197365538199018824950771518350553164201467418212502656130358161530319514839128002801841460785410146847620637451875096812957877550579949025333655855030950956818234876460705243757875135298825394830368206791431073036940967874786701262113401999648659976536561911234659729594055423625890186534313010885184822111904426487558328042603127391269904546762508555510758847636985256325020099224522676839527259726606657661338420702124218001434669878162611655463017999487975448618730894824174974457906088288271111624558608829544754084760088182428057308719755795795047839323170978413848910703712963752428389234009133091609395097409944016873390599061718849412373023579096204194455206024758975824315541988387102327908877558276857976943443680106669456046106362836611351623083341562004279488488619241520412807908750161796517669158603659947053507971643448148990727019610675281156021375298294541870248757870032588152679306560777944666440315620383955555798868604346028777482533290369025714123636410968432195056117780260648073818351339269796946899849837757213988254648899300630581913664928355185937680864345499740462194631113014517887271250464582662582886317912091105920347837106831934229649146956760121486950626762464247407524830424042347596536632060129264453579484493567277863442258292292313212873083865022033532402004740093637416641469422574753836134473653534334742199804114212751433538799301078067584744209128230618730620716134785724917939800572247143249370097304229174883612197571799850409677650799219107458579283822835143496213801280844216916399985413000488012978053046752333176993958838322703967612660670425802925557597515487101475541337299565497447309315577715191866440063340648378566036861964697759993076679056087690652007946679012248365344445590103592246110245361545456055671765783168141634686682812960956732272659052361708862336437592778918473783253285219233628900994619557545346000091519402721502756940605611539158988355504724367328713581033969696009685754171882885389193883688804465660265809684914108022040243874339169593771420384653533572994751062004344419870420134895290807404394396708702656189747451108437151689927839447021991913448708447427021370452284856935418367086087636097083506632534185839560693711777641480651504007805783814968586821725021322657520537036231222235833282227247024257428521366090963913299837621869135985750676290059311634600713596655817781901029127806997858090282848247338698491930105119929188524582111221563760171330739251167752474650643969370232164799989959395312634964269078346764646494700412919442202013057090968666294361835864409075493841191877298532290998880476243406804942111707941640987929878705908779600057625717843985261298670251359945709193575408052647454479314029545610820568082445625140354857438719272361968740261699500011164650064648933703761144347206700804299592259285190125028909797033410501079078370103727754362740124308841587037906682267131616187378673486679229293291855946974223964017133340234179259844009085294312573014357388738911745755171573013676855882633557324966356020345336419663161750342950453932239066034197050949179678080000852997819263761400706341005099031216174745189502503860274940248027808697933433546950849084446707720066900554168313643421068746611002834858266141863742463297743281124609976267659890053793583540461099788787170007996668902910165063975342523038167057768588241221119773944327988612185119597785562327513811919152838668645716339504944429987781727314899235553360467395778915245573808324217916529295197908570957305174458440570191851776302350925681451904062631593060468671033875829717628255675465241552600494239317882866629507784093000865555294771464411291566743196464133685093500089255579020921814089088917174195465848432576529087955017071963310831856725773572916033018863172101490367797166317650704937940669142286749945028731896813532852871800062304645828968474332293947728755425645369676819612902576311586619783240089277361159274288103086445050759281476308033236827723225932791579423099934600818563398691707837872114157578555624344877277202830595428402342885670154584763178004238712022602426183642461018804421892493932824937797178894487874077060305136554852885887016522055732357999651441802346524797588375157474683555981592900120831610833900346419919694738618387847864039135937799050313663900213985602991816565960768610553813514447838053612833241557829258798301180795942556360471391055334605328499122074698497919355725712512044781224784866157697343992292207010029546984119179556630852266200364793529398132239452872382756496510771832797836219121963439239384265143046724330749283054197564116900990465301786828369124451956022080211751221912983913472673446276698907259026985111202221181419057013780294852450654407549232448476095233417943267180767427733869125352117929092999467995459893216235443872886442955458317505787405168860097473647385960186759952872559845390135984264509892675294328852679500927179632788713031918580736095681080042286852854318344451913408364928844921972052304192482073533369437250811004843562587031675799910485844893104034522236553875078144695652059441586709562547847671305291220784150271439763664633651464477960742334263886830754130140922807064234758411606546506948723017960741133449147940922777799147002865565822319884207347727707994559977420360226606659817692696734232401865160179472026142189192816690219850471055826062651602875221030799394508252818015416483862505584379865430676986335141101887753780771488005544816858535468511798724683421461065096448795974587707269127051655506583973422618680772733436670513434814604801772391886150446772051417631778586121676905776771074369708203890820734326488151314203885248644306282256708552202333019516187660886026928738840892233238524939255309359859307021726903406064456557734640560885406061688525575208819876250547936153302615921310437212281424770471218855692058648921827624012161850330576324235894038470168748943962347341621003479090356596048999000493521727040016956718037302523882267633527392997024243441690713271192954469502636004237388401410145563783543824116662512585012854126885411301037914963728530168181093489168621253443239328978954407932365230778929607293768324795653283534826603675173818891547220711307661038286727753520228876265972314933520530561482273211569488306313801854577695854034359327183455901264292100849220765783050611041173677086215237397703696173001514148761458684694269858693683277202193924157670510811730150567872315643328741324979801806891931969014347423439757989393153456280452185298108421644864860381394071719251028291443856700952326252784736629072001612123081102681893145764469489473364592369932637092381754230730842298272667298841900076738367061737258748662419741905054786615875146161404364638367973226406512690156394518222479139433120578215188539965293777423659089753130154755395426496038710016707432904984321665745353258327321344036032017648483085626541853710137490500326242222665678582422368174135450675806974637133461493007142635638428140638693638421358913169440672122779669930661127416089105377191483863799592345578324717994328245975632225837916307771318398799132738584097844650590667958011265983102296333179705030331062074918790009984953390203572923333600770586506578388742093286197480222502613703422465514864739972418663245071354951877368881880194843366823426076202769626610987235503158748940890186529541366847649264596104743341183139365575845419575005668038731032641913607757119021378654334964257398672298202575458290262130464941926075020188816505489643809012056905072053291020286017317933200410072288951729506471855307953654066509326978588528536100951775562884782211400324184028205451277427516899507252244401366002850602141687415791681651034563747726013110348794240926365697867940819802931320017216927432737722224936565230370882094588400523884506556991436799040046481987679000665257494194404181711472540608534886873985915089589353205615290771060075482302882647721449170488657947780876750013052990098972002911828112827288087142941168857548661282947379343736667650948878935769218020994686072230655640219791861360250979989480126450072567474787637347201066556829965343029136990628174239539252547340257699124895883998433044657938948157899376097973856219644748168765775225994816731298981832775547651882426264707123749144656797140152497132464794536709314432694627805887828556342564240081299418021670452754354651500103656665932227819475501013303775586563400463085308635657236515858089695449761691547982961802573006812280735430933288240000888065543352095221228624617387555730003208945088573357231980244096169052225154918136079820291147829887120771725492629171889259930679548466938761222893783693566224455741621538411973474460676123885424840461490476935525605604915466841743551206636959205976642661155344715351882264298630957652031034587359855428607162049190986198121445854830508038289440019517314531753764857293414864449004193938869445812950253548379331307261521309805463805077411102140594889695110899482474173434647566724280633008070880153491114995025989488449813254385698912238904546893730639160960772182040141705744636950956676811034427806269522639632529458757098406106608395557536304062258119003974593954277792990459080529826336689820282477575194044642711781789310801189842968087958262381174835642430477505090769803442512135956850908599054878930354846809072744819290120706339832403987729466006821683834235366064001165011343217973203810603086096621034908888133235659013996490512216842059334123979812311146960098352765824381240498964593260787122754533541549977853737033331919405281750632770744466455515228163831713610249353545203108764849436029818039976408230630136663035888336996993935398828346307016508622238690561989750797847599712317630795425137458002354149275759811747074809885677130067564883395170632211675996572812951167209676476768344960029563831809196883417465559709235758036815119450058276870346289049161021402666438437517733414324991366623346873258606629781857952573935936810819248163628453076147973336399754283448971952395620368426112955795166229557948407542477219279229205156799364359452018796625561116987938385706160752521852190802862006387308950881610789035569038465095163648668574021998433931513713762386011037331474190147602376924997624941661209568145837998734729773302622117310035670713128479108149752895263453206193610951496376739868464422921910882879963143879675787037648762931257867210340636881523939292462342793237617148547140387863485799348846101529238139144150794017528332575358782729724724838465821435748367290899670669712896857794192505722936912591420279785117093359060362794848269732622595227338392998154888422791329972796597861977206984729600412552109670830034745238234611376017052188353473595390597596349608395260435369233964072317529797074719850982934674526864304079560842074074584176439525017275976935945887066536099438096854298679260179204331171500828810683072949643490696837168171349960948494997936503399040563192350735341217016676595446814402396452575578714869662451444668134614204236735966355895148527134234538505237407582313195722858977856798172700068189945572223989304360049609806152594220003453347672527787455475991740789236434450406293866733480362956406581007953615493171085122650740585333570123300956472774525798799724042681065303822933427643920925506287950900029590658986392509926813792944167060900032874194382608304604885755507600133446817080903593447478884994061365108491109786300860818140098226389405012294033727295044038164571383694354289713750178653095140912940363942563635809043023773417295459186530949504900285855074261598290311881675779103291375120166488391894334582426825727544960154757072469705975136038890209670922838538686996164732919313336535767954239471622336490259476561668886326207022026742635392535319945732873575405391667947010670844620594633930221771961869192357753674715438565045085378523419718248680549462866659463901808593057872072072803230755568920453950260878912391544442632549222890010223508377781455480075649062083543049332655965037417656108791876729295947729230785260500512402836604967188021314094949868866934113829766821624517551792836195949100481370385426748327395234260784039137232723030330937117684233257854778295545579303977305284025266626429765965851303490683320034160586596093845822288152461232569031521755889678420320558879158771037674863441756492475917280902297441937676826311235493198324147352958584971353420065462961638358620035986077143676776767104043880108018403761382263407836256407121766323613438370133365265256906417605363806628348236835294560592109563396933585592121763440651382898680096803095765026665616837217293612827040200931207872243968694434301366467095389973344763589385571790841154291172600087500067015945151687060003707847533353638676671584902888984896568896996346835773139888699817052464204349160727154359865946912527419190259683480546859952608694365279472839753910618683992814602729282207628903236222513941886016457563186529930033261019849771886742140626378328306555882280725767330331002245245815744310915312372407253546841943318003247384469291721243053017886425429090454914886897072530499586389519688410897769983256772418745826685431080869622035253801628858145554169333236003474695306421187974965786804694922590261786008140320600525209171550026238158588356504095837518566991640108396577097717549585395543086587075372230633056582622628542000209038949526280427500249991410371501324385719875213362108937081097404020996641390774392499335092387320381866432566371984862389799339855985955777659150743069462749051834253734110061723662580783836284133673530446447987131032870499460892007165728063883052244693026501569561437218399249857627352366842258428586388000251315708640437456424095584231246812582406303257280433129941877198536172650144911487073729123007714739935806254991540981641584531211568992056661417516301721735478267862921960093814486129987486291437106138182079225217596927867388308547167722140119606643473920304376761097437184493334400203214598424394054758324722552153368903219200675430138329078107095633755929168528677648064286346677002662179895436716399220690712392723249185078037797406935919684589300194160897000041680017882653742276220033554497016614567458803033375466191245119177514552507407745221123736421683321589167467636400123244623493514317998602516921487595748099835622402080840874871638331141542706517549657698682311503031788558153014004576025783971890255611813369699427930346830719827472255706304898613591930709807696464852335317640468588290393993716472565958432984123598588251456870554917968645730441413139807865296053302964775228949843576014417580862777888739377289221574313353095380500474313684966449831737882935651627107524795564245958266132182665726333681272352280156511206135844856350970659633378323396905491606242838661749896611215013242218942292492638321563877777296498526513619856333335349407057961613593343028313736531228668863610526552935023254842726230588159445927368679314431028710234568406549145340936453932524836098465275673105929405508872421208348873451959915561590769100239599744523681649388586042651083498540201695111776887611642411600585510288656561332439281125510031214134030298818434788007985620109060801502475188003958323495107155418095936297092092055274292281888032745552800394053695426957035560582289427988839013047103585049925138140125267834163954408083351861789683730254471284463826988124580955788476831983240035999644516134668412730927161688085529752862600164474935977909760372216540917540340487976446883324419862157898403520020528170168225070014070124384387138459862855432471026696666978164159419276623956564287531721760865673678843183644462412866334243896849202113782811291814427950615055443466551158059608509615288839543981159000226270814218939926779299709156386261219842626919415550898241082654806347735559097800892211383437310870461819324097461786386161725956010794215291321255261220038943566773785132218218208530895672783156243562416856950011798122750657009092348795279294108468325326602805492370441197505860363651924723754114034412651840983496197738946505844736629665493160856348103609320276263154514228117807371064344345243961597018152126476339435371398901466955809301396021631197865012848516943061177015211573854780714490754980292387545520542778046810498206411730469499006950638607348310479987924342279426431816151927818191994528859008349654292909775944509690412360642663255132061405402280526687363904775157309275474977001848049348188002865526064843449380289576338516683907418022724950329036602996177270014757360396006250026894275240090542583346670376698400118543629854740316111002137143648232464799179799293186070611693278517872480870418262606424216864446038112612827886468033853446315518791503309745397482093199904798003116783167159690659030069852541893636294846418530620009883405111467900020824824501080190673132671129914350098620017564067314376198963776846601248836356304492523153103372195984613123272212800402574035252000891062762381447392743114844064839137394979356524968344099375458743583921600592604820459356622604127718655028653545259896840491111854235749003974447562961826117391541079416575412411155000064139650090088649714257707474094832023775637985283893340995685979809988894108831934844913789307170665778867070212087199785624430767196572721964263988230285396591323209287474294172348988310441710535122488012206187053958976969733293610812947525976280020461264229840384495892358403255468739997512143677255852266298477730911933865419960036041131202766272348463130198587741642039954890511307905812777314956126543847363488681631598541737147145203298602022042569305152417626561880723954056180245870271370468227003043580209807997640796230165521597956016427772409767070240860047783779578387455953505639961179541613175937334837066923050846281876090394911810042501178208940765364307263492053473230892110521681884553431760705039219449878528489237733649080392986409698045485554602622677445119384163693283564408803285688748360668694486092721130020056728387709858238233949333903114184873343694191599739529326799673547324081434307308094948044147477337034186473369269579603218606506150443812686045920868387438075281758339390678411496916579972180583162372226584351443104464364995509536394975832188719081179667189039768459014451247628799219600218764522127364123531681773785563178360534550356348565315231323643620310425475323522650866229919989765739507119322700872766138275059190045676925163331813620591467198239482781520544194603985637927388355080668968098850787421559053269429815153264398492818649621849726276074507533644184775899681358217575305455355563557570366000657337914827365905507554266283208211087692767142082357682130363427536659114823214313389058965361384673282273019446505773914715190570113583811474340845233450976906046990887960329319024055054602209354994359154132734216853429012580286882220402363686645010461260805942364141729788157576492294434466806151570091073194231794659345097068377732222530521943068469708104557517397990906897894678893189049207162071087775791301330412100387472907429391410424271683900328184476072635015375359124734113143295361330939479105871816635169752003606944334538408269346427344769583356040855548629783383535274002864508603429051461655163785600432679427798523590760981757116750105366135603614183361494913315461953705209419620024344813593424040501160373268666672467273629247179120451116539178767342439556271951841957929402234450699414163509769173697597877987850411213634089278105735433488452433865254958282082042462435447709492396788862147667442958042319841217793914682386017236867490223878791168394001755421662103733812381259023015599025519819742083961958687499166519231996181235769207929244817713813197708549155265580919624664550164951622553869628149750291215239670384767741325300112194740446997875687132811869996468657083217071056228586261967059084516327544878662217209425614091345794840599656133812135778976393568282932886247840921213206157768443150212912230625405335591141290296022626171479233408615951454525873480313213560736589995847793218247680545524323817810262067998079385595803031104475255733191882592678298874581002292529868799371096765740029276665752292096711258109721163890107051344441959354830864385539231181409604484571559104642007163176689135309820413246476611800103171518793534119080982958451150794890852826154317815214565827871056505588867228459673718500420710097774416915278565188174567713876054885154324485761066591681891033605381318208878008237013220326990053039560281715375746295248459360174717230850350317702160790209673145149086335463645835458645965535795207871716886635257801970327390394726265134789769479005601178070656610253920103142715345312571145884905343470789589528876023931873865337375124675517193226842811350323365519670574497265576912157830245628172083466327650739200639524071850743455658030111182452044031241768020544559029530619141145589183915150415666828283679535260368876933745194651372170687556892882222587763062212786705818246887339772254551815905596940544556492768488294132370159181410887222569601062062301376859590849008718887154452285638876588966030143714162914887056989935292495807670015817433555929070468551894621894910523837968586328819392441107510778166545230529210996395338059553470874515096317019222692652447284324398315556765151088053061481301118063528487674957061132031417431774237859044799477611420498031895664726896816170670084873603884687371762489646777717537518928864890132305080770177640784110651268044662539615480810981712556079716810876013196047864307660990824579007482136141177580781614524924581486446975253706476487213880150401720565187496428517633092025439372817427249547962161435276855601846295242600646879832521065504803940739502743390966573019238349241505641255651554890537932111684168934959552025312162812757993453431432360808247372140566882578564821089567246935584191265318416258161368877059701228249726510811054221113794963152330088755108484296176310817665919280673229304696156866437160695819566592032450666237425992355616064242356212000488914357842386945360483780184183662203097850682653215303160090175761869506851558285612254855760737492914676292261766375759220541132368745361930752822926288973308537127402846055347632135959133183334671961530018465995626857723978382563496601607245621826950687485782169078520980652460593203650942634377978710819493687726532632927207565661281817481361597075469088099975198915528480941931537316706268831278303028817602697364964883458429723564312774595504812700468387859958309873154272345052739686952895085420930138490464384357588174334624119871726001599251257190092579034232252803656300724677899905618260396962947321670928727146303848134959815310776954256753869659162112783241286998415039836279096161368981135204998606272554350326731025096732716513402273854764062505191920044820070624413500154945355185798497899701077028365700147934766659699174449379725167127663916317670956242016142507953659875714964933355385739352714822021186478696785263668187459336164058438551179499855465322315811566028872188449301130461305685525245201569068337972124328781474809951710373406075314465851746955988135475487821100550609708813937395939868461582099681532306798719668819684105671200609707614752139064003876470443643688012448221710884174084421822524066406459752453718043829473183824168974918060189335659314478909359951937260378386529197782705901536737619957861537262678217905754799022089272526526003246818248973885849339756671890121529066357751348956329906564838170822211817422053835011857565319421821119888080419105099943839277404427618704582470802836772940445099611798443364415852150205037457504153959028531883356493804410892892235436932463785975898434212328375984387318055645007949453421673175110821144534792709570549713576563421230373046334339372654769201074327040450448964610762177692243552476602056143859645762800499714915605008779492275747189191902599040228257823468847117516166115276821847190031787103429399688953796573276726473377729141113932428229493679601346050765441491300511024606531038169146463856420635255574279552436926755991063019450538972263496075312327750046863688104783362598913502132255444209819803151669715403925432748241828307556784770165999940612431478454652882167624326094675747244844375840409856965946369139095425844322209772994247212708057280377475963526510002925850777530242394057486176076715079396916282688604930973086098162842397957539729806959580430057955968747582594446807443501108618701203082604745369568574681101793504357788415770493972125260032403718740178320697301382166030258405192616201509330258452814242877926744679222692301957393568723837150839954745500620714391963637894978478482705981254899943464661799064905446486364272917476931107789960776736685575388071079094856376571113530862051605224302581687584417728266456176413052820465158931180669769105346483729951578517331814989071033886461971039271400627844654614536831102127191891954749745353914690679293109485543958600784458026837656528436483020220798508715068482911194888004110020311882580880214720587688255203798866058045095089352262681541120088025645379251411167674847466285889698356283165017328384213317168421209403049316802794900496093838220846692391846657134160327436544917533928508468795192350850176977843295645597894974362576635984002482985580590275074722313825325007349391395906039619700102561771107678121521396266900957591177124766243017857462563285347173565501440761314269467261662089122575347650657977214420215884578535378329015920995017399809386915592498251031132111483871431055342789102713798055770023059931233600443522544611631528404294025902940068159601641542980231024006021773350163176564099645007757182455596054867844316202663010430566685692667645853090014816142929446262693913315521764517831809238371560835846054935044043192730750959598537176878516162016786947690726856154329503926917016790676427771538830447085504341086995833277625195352925116364469374820367779730041985529309405421494984663822761584580987928891384345229334236744003181441937016820247011400418070464882090335326364648564141164814163095352642374216748860344041730584791729335526946357026738345918260009471148946215778837076732601102085869274444860767386884906947864363001665962785507215181822121168456561530967824478338911853673622730134399152726572880420107089059986807055659164754122841448729117041650540794809871749940114106311230832311807419357812534359156602609829979542055109909538003685941208758088790478129516027352908036291811774306371424775623973728573957926690670849671728814934224977040020278817929732486884054244990235333637853031788985928287949328053791607989690105729892942774879961622578167843787187037099575872853604812523935413792689402327140568353903599148997428665708513895389532819883618889118341847836907340720000974598632300751608658300343361949087581737692898397846634372489523753000617873928216234429782883228450087435930190834690250623214997554840585562618590075029663165568547323053063707567723182666134099594214992235670093166518784345402891583725658510694505647337612702882772545965600215169672663140884948975522535056136687741647002371175248277954909476990290674303848325158257100088420138992122358027646213478485919189454975894287088880977649913279186451847400173580819527765477743692994287297789153817055093677906566909644455713590576736979960013595368736388253145071027652957097528948444690336556503991684464261231970029627956623519143964012797681959296065618292312793626337618341317793161884220908694842932606811574852293035095555869457045370010400705180547064361549991183627094798593223326993786362777840081864935111144879440740232355535253237325680399321404016972546266471064418230189379258366421216634178273963372890605216318929806062685406628203416700722421042851977649741333408735057460536105181717064869419249368128955786206132210876661368990626718935273504110304700470440445635874300061830064935425272249843772624189789936904501366124956015503834635469403412110767139192959240756508698038468144945847462620005073316815582020530684967370468262135270300066542916897412779992258568006482545782124319323495442299697952485678474416022711571074557739675683311186616625490651201072610908416948120601950988693968680876169592744020163049931772888559477875461876009278915382281783255540977453801786234460630928931054829866465670954388990414913140037346380459454986897949602026632778033496146502341310263209635273604881906439695251328874429388573847009460183464770786983222079662364112943388627246293048691433835605677211847695738486802629561252286089834346093979989348424605000682915625203594789832407170884739708242478912176498358580600409010605208189056934881800812444258226509306821903548500480775434834850054497721118944696430434161779926643430305098924269205431904323699881193655330450304220357394414300329998961107441091153387934168350173369832721645487000365235394716375648007915906118860384719602094308993828086981106884222921194969583766151430892473208141747337405857848383428030865727295972043327130760717962219347139365211071570994008376478078263752645619444911997133936720722127842007573502346436723556902946738457941726246926668440762218610519570959009283797499597585865890689775208351808644950156209539810413043263594872770418550487498391596095503772651062479497255170859376961610001122732888046768508666826529519444587483169709652741802275806428216893336587516995306719035812789084373351818971113751757681126380395898134020297471204523108057997060929676334292455843715295197863457498278776550641628462186622572543756265419298581909204081571599158042544452819537297446462737013486928771426855567623000390637269749434672652053887326460699095586755533928256190482389210526055883113322482526403128695134325278719234762917575580813849154986225256354402377217898349829421400711536324600158345240888384029277548151517854168523486207799348506343109818969322912352122872381492448556895758619860280055596546013441995700277479592348667619031255482000063563492294480769121004478344849383086494658793152443020094712595297939663386283276937529087308952654703518384937582143722596153501757017742463019962170518067531365812186682079931143130422568511984045238905213861295832226319237143253912754813416249785584368954630542762732599397692396597916966359677860927451027259725215393437348081959138021968961736511710617921286620020275270871140263506014649684403084218124325115350204373686685607536835506513862322051240421314004169877034155123463059317829048922347232075423642410547482776622145082129444231704149582616779853066012532878913416208490371523349702225554645692067950453634310239176000720698700824932769051262382526363316965598966644032588639482743578173474507083460807425205206792498175995550448819862222359466432202182618808968050947293311702898498972475010756004988909282525650979858654617750537897332696259528362491113242282183603012123530101847178743882988891804884274357604582594918592412764676329883578937627050118232806839171398719350351292634937176885655365644079976233673910168513977192116537782632109513937822415805850151210354026478256052192925068677478174663095249806228491764751569167999869241796758480288445683800310797678904337721242714533857822073443709680306415768422919761134065340993287304136791248474851272904799911095636606978388392009911109082008647662361322406231260894342933918801021388436782615843776775974191495947420146838525820009390721026677416459361572261025483254492838931544158306259677023984246756190462162723583984802443917817325977315677021944059664284485688774981396299662358436428387906675509613742682334664063838821031911031814640950808952387141816953028814021153501547921483075243306631325824567976573821836037607791487836998852597899273836611443557953300819748931347256620156813827372483555411512358147107996106093068157349740958275875870644335271466205063961327674867068541746910682737202250324910494069410484569535609850563631791907821843910918482961181624457698757517445207986890416893976267546213755590328121600753571760749544472592621339429370212141629983078596323526582068962612398266358229678162949825954985928553488561315353995720527800948929282793705562926602461777917877587500868417222975891674904031856426871089125949453940051685151583586616950883070111579462954782400644049861716309927684103409054561388757371957021632549301605328487493673115430640558633171206693468849080880587487996552667033957926182862451549429152531392287078383125087520613980112729576252262096387031790816738950421119819843959275979054810881248450729386383234603060084551935300077741583106047227876040364161003996447796137942782286226105317949597328409219042732042019422839154410337284497695157438194818722470384021040578902013107772033102968789503034794108614485830688438144146276341470662563781153059308711491623065800730765389351314956919224252201861108330175067108373613454611324003817140677388380557401416238105518705625640527633231392386257587221915006416233927358401745887531249751060364820313259390844687884710339999550167390136783695558459246762482023397150686453353111472553522831876863470870848192062908071164241253740996364957627284915884587868809842268611484491713450037133798371996736690890418302665607418699470953640214130455960956452241489099762452722284052902645722660547586580347113228439224301971842524929317934981444809874252395582739517187406529743230379833383817357080121285093054811422668824704922984388317903170108537320316291708565166257375660216317707285110862079504509504013704599593591146355368543384060298795576852513976083640539509475041776997434718954010266980335302324043633192524640069555884923776226982500715969086332368895627733663937441998016821427689277506122724003888134091745325101697974878279528048132466623547420973479711331377998486474545379512798556433462466727484252438387557561256359383274501982280460820720581987489771848279501528531019792251491447006344271419715782778459999669899961277318486365965172602346473009966949076772439151192128641035400439598044982912914851645341478145476538643228948010686144759820755025183536651970814091317391630864593374218387057933451391051792545678003000274235696169908064441871576301236158331427707356259516628736056961019598897898153725509497908562693979381474165983551899890148003277882640812420122612894672305853453535192002170819296173639430642362238537439295764925300580674398097679498742040124216433645500606637759004804365950729193670345080008830539152346106997735088521425803364649550830549590319296470228129427863332564192978726697325102455374222139088050632172010878048832223618292602413686706005972728774485653490554316999167489368732475515155043271439063647971163817729421023845179965084700787622361698713320372851013925727612233241305220224913706708591161853070335472186135541593584384960667375820052370501865286213867936196646516332493465852985706310250246114322382207815417654292677627788904504910966508589290669944419874896885212768619837542926956739106913568658613428520163721885625295140590836919833182753058017802004805704605141521138143760396025115291869100578258127626693921363980563732508395238007171884399501011019296266689668194924643732627879166673182510627532722517489319769726305181795366235668545136641470699543153508795822063330164607040450434641449962141184064648396967473077036005180039891482162733490423117588399519044481930487947951786969685178065096375429869691594174557091482992766715677249561293218453969232175383651293822889899669196606142574508651929202583598892772257087217624449573184256665925252916477718347472677998022138879505872872759941600656128233252416871042945705950038094138844134238204390455823958513231359168062802789387773651460060619826934038089449685257238861528316139479377091032417056150287096596449043139982406376459154625514830259711558017427367748323826441544526142566995272298986291197289816093946746693796905517972459913955351491585157928717864656481988540890108680634929071126303792095706537143382947901004955719574169490314252803852869019749212992446735483559609657628126367643208145954991305664969288245692954001672964890746003902897382448565473117432093270687216333289480591956339458988054555405202239696035830505500304482393388505475657614210948096032166153532210386227228048444939196193413768979750512068414117368779160041916261340749313145523741822292766281001987061427821244524345054112723339975976590199965367252763881957880367328224321888403814730259105737986557536314781579928854533780447429408427260192850915401305292775786108847160859274950171933692985397193537845759969166823530901758169715689229284340540385637601984793759508640063749369087473067514447397574271467552463902140235281456939531411001352989733735866803643983008826410550755983239955662661714270951103177826486480659476964003455941901691177094098385412691971679152938079727384669371664695488728606442110172519453610603426030653104301803603498854426252757972828938135664007086234525430778635669796570959306577534862226134272634659301200171690112083817479385612550197654298198350686030017205398089039506133269724389993340494004375950354164246318243011974434435336848017729014996199804694531379851668017200630078099981879470507741184714816882776472919912348396221800458179089429747598352170749152685683845339253510617916392993770502593524974440865565557047525018228253026431334420296604844840261433644167870830075336330084048754998062641973425582796812243751018339040138663879148916766953607984236905732837475338729230708897037140850374886134139689092448003421980247122604283115821658070387319522760122863225170064848038874560430985907085870680391643579869520299667263544946903095357869293072717666341377546806404110744478008913428134978422429545684345070139385232736453080870540126127157145716981575290836978363238539620120291190171340114856558206999691034738831177720199049602319617980779478434291481304709973917727536534271866078759137164596960938643134215659424790740689005648430908833709837218020206221572061256098874232214290926446552626448501942306550055071183168361395333480376933238528690305984766588498606585379075398503477554428778437265982672274480988753002143054903187788890671274946304696326855986510831320410459065031893880110637667681291380597780873496917586822853991383332695524699353735621880432747765227781743076218225653131912450658806339873230039317835488553849975215912445437716578311658934226565065752722415796209642106737049150066955477943327857352211189835633398711841854525743885182780368673996304859759291741741056123810634046348745967630035378731694982672114541866605093476057568628425601645048462660968320482124174435968718091286995618443288064032790018428940202884709928722953209746580525714649553886721462523571990598299689115885909264248214883352214209493635113624064225841508353572785866653457710000097504653397337248021721044564129605745639473438230379365050761403510611014955010778183307265865539967993302328904101507200574300793239190274547889975207187719719554140841398220892220025615247850543415131018778699787600776928614383879483073814550563540747686502741210318161604938911451884010487330207990515117234337898121085958092097666492577379579014972282946641690516504998985924637469555550098464205869843306434661535700640744827911176171616269246519279855942991186236858152616357257617867781479066125937506755332755121314589534737708319381662034758768847002450091184472023104946935024317863528011640314026565337106856363615466566082062759506169201046671877677931563348853430925262247728347799008627777110691592868871047896455217229002802045538095153614175038200127377534814227061043707914099490499769164123739065080060279881869623255665583598287674761314957004030814087869028412520559506181881201374949697060175153031774085281558192891339159998152810111319660982426457640691193848693656399628457682108886507247316331294440084095445994745650019981342521043143732312430232004415878408742366066360586789374398712599819154307341055558822127050506540127522805174445163717876001301560438131876785138760381637061783918110432421284046075920109332083401779262978987735299612610596198198477186354029926888801389681114743272597057992900423971447500598348787300693244953561953048658143835973616406378140384257382458954350590987356956706048405556301037470836919992796945676918482820764747471113345229624399376918535706931310826941770328694519190319782057737634362276917068053081659064926430867630448826344788642537319061499460858356149070973090345447841386578469019856110558142537485265157963285428013272970880706175679840105695222309569890773466615084381363226672812344056815677316871608143801867825680040622954951251733407197228643864004259267026206939739288474027872419617535635742788071648448147304305402225748317694418962505950139627901696598347183323888593797555745194893850594488108393212358151063513751256636939670822150152478666280207329573662747081197256641802674064039891648712337243309784724752627327072859695650597100331940513263833311008438602168230137333445988262438548319371069474026859302078147666654279471225007160513361161157742732864026801575692291930885379506550136267810826916219419062888557226126553440836911312228790981232589583354963938908240208069968904166509899913552747283774556499408605567472774592007331227835414061820966793626682041751497911090594493450528999601619928969232604341341002166643029713183045838827754601356420353997918808334541100664536421585150043541112274739657233945564552734689551932692537262149737711981584942748458398041381788640486393330145536724627195908401056723106681895852944014963989798041422984589532784330291498878249183728430246476263133989541131603595962353235901616736131992908460306618737537380407630317859781440831332637738247066682530164375640005347365936274800829979490633726078085356211512495205879235168960724047898891932448886951104315544319996532029076181089651228244986220231648552954304363408139423789069325403307365864228920715286145215361670344421499592911483060384324303202440077662160143836698180271507536808729652855828942139618808916199178538790236858954747975094104785465885174721879045466776412717439477816617130171531532898471913208707665389449907384332388456892375446472881794075803765648744294498181217440649704883750308893127956896457777337977934511249295226572381578399856543377738140379223997372499046765195451505217713097828340481447069429103063984501488711435754921640222555038607272135321312016047318126429553277299325580014256277580405881643295260798464776583170847827073824899429789892346016560410394363029718580958269238562369986239603732373070071497265097782959196057301285252295210771568169062336187934337031196169980526033230769538106351832914878181089541329080055247203194060156663269741022477519041206754357943666830332301552187043758899230420042428417487222443754884157811324196529545345214069794185547813373667161410951803581059886048368522762300372733860461869642971217976367888084390185495189959400415222797109025457372287394211437287754637342433857682394863563712739620362402475771963995750982952051469091054852048601231123900906286406198443155952887096591190341959262254336076493011846103725334718772260661517323638481741812393443912198655550853046284429167096556266727218146333598731365098665807394385414218178838645827807478546249161811574964334713585383599394520711018161998576291512122273811243458183441219768018445056774271849138417733283968857246693879607839399989679059772007536350259050973386371315533094493051437748680924091487244600463220971086408189297974403359268710745864827177530345681304544068778911903128282914608529041419141665915961208711480660420916887803465309335356864820866852801604010673251641510720243003861798006756446659552292990678187054641878459767763816340078963900886876604624116750803575494850417340466280359554435456782279668855018131040453092411805284274468232460044092080675619563479553185182292877301095142914964817321813874837680362560918042328942172395904159225495892978217615077242021348283876779288673377206091972114629125248687142500144488952711464507990801566512701907112621892047909520934975061982258369930739349267108612094542224473341742842075564411044198128547844500528200903841226235591298788955608663838906587939858328000492008753549978481576827991496804397089085208475672835141465064986955721648647833502476204518009024308315970428603315965157094908327669518910602617216351672499557469522879164545972665003039516199656699584749037944725810139905216692170665861404711151745111910074754821786354210769322644838364269507593691574549202124828962775683850973826029473132797862753396266468386007781707732047970715319103836317380800017515517151746682788310206620226819108827380278428702540261194385590255679434993567264597556238367782469084390769875893300937808495385921010222246178743299944789930577039243798229870639274134102532744339937080893187816003562154721732376591757867463613318590611532930533441545804769570335832696171103743868455280356558893810262381445645687063154148725906802382682756614809264106074771549310672761813336557218844249587442841179958557407397534927607143162027183773888744998345380710596776429465244642527958883698315867101525313206604081643538786118238802269304430434838747537394996210263210492268728362201590057087292671222686661582007105776596727510476593504218094725840511549600272077798386480255320273872066212089226573182967330189389541462023191650670456750536084184426800106930313815859807563707713447435537807211023336490039398194412488613459071923987036374863127834376247440249004823361710005433883197973113460192871587934819856484588138645391436151486862495711549700440063273439767394577152904935018806645743510933451855244915301930307743477856309612872876176440869809820861296224402284623765333233439067076219993894875749829703821289739260238580656348021737795285656444795698078504269158609432660866540565772931283295764667754737548915652119826367291042588360442096608026296814200086162791141445052103353194288923719636485070866281570930477462070603762728815006812871058098476895236502199830649110154184625737032290382636226540265276787342326563423706042096195441215978261360402010757702992530719218326941935120941828415285234029948835420584691160148598454574232945948554089638805405831387632618015201745794617130924411119966864451540014503002170755238459862424634562979611682289414740835437683983277955762352833112766553846712499674777516660786171047256782263485509243088790920187380450745651517465239028404542208293229837443090147755959537797372701681950759749377334053200621116547295514531716544196750538307855945029748532619809665088892952767144339104269840126470297519773131544475173786723509259867690293793891834844836567884356574398007573406839082943722363142176293741948725979050740154877473405382740542352076230394096158170038179301422980378341421125940503648111775770240912276830628574202505698431056107768364565316191742014308130796004385953900205832095361826737199607702092228394801172600339236055788038785524494040448804881601407832979558901551901441471803372658057793360705039336540058683964454430997548148497506121835120266478258692132122592272640803517756896445330887478919374508947127451260580255116151966107671302483030778781578518930886147595416581433213100586448702376070508773361651279210273319740787575734711712246989280356929887885354948178244790695738322784725659554207011450106325762984558583123730860252176218621405596629379880950654148469905342475042603555148782514421860568762482984666652506225368854000726836520607638090443165440515284584391112647971584615623274008876274035400974481720364146425844808263951350458087289683973883764207579519803230476918839627193366676481566744603884942828035458205032262606956506618291552655761252882473963807786582737989693938830276403440211458300538388433706495892874970544818193365651063537121947808331971050025788063853756200099896123916634413646652331578957274379074038616811542465946037821445229284391467615974878359092570529176367703986533494806512194409370477707527520811649504942751572652713629163519376000026476244466961159890491251325146624204891860288468403045538956010592521112593536303761335904005882968372721046189429924984782249679863403621023211190828918369413461868603506086964311370880599792263897266343637049813153161845517841464698308777127300048651340281751734487071948530994793926851988099079997661551980777567820743307766076412315039748974530050524113063505554496831392511573476508502080000268960586502953065037721100730832168679398948433407465698870946910971750427926599522287611155215994848353413402400082298030049732336776002220059702151323490402006750137703686663648902199824540367138830081862483875764435222411074844403101467002616705701127231208351337135248340472016572319035627068874646065617604790986096610784488085315120994960051641668131408099774055121753562579264279124380838749467514671570324486758737814917268133641327682940744604089415366671802612873159246995588379632717494396898004036695803456818083280476331056153294651222357572901102665271810950483266839573847033885851318995364800023240296026361468757360099264325031847180629299159943199368001432740442043766336309390978211650737002768615245891316209725996274397224286666812304848487426703824266372405718556035076743101470071666550122547047848486767042989024957337784844087846911264234664662272147180545405237895562752270261268118016069539274006914573488819111053030334731163882057730088972303402769357376571827819641636895582153170425119189485758272776604391960697800325891765774414300323391527954353446745473086268855046055706111681949327963440041174920715750658717459062138652552725578996654713348298411750877576053011439370036984840529802014482263701210111937551058654277413967313174816870817004790401730517650715228994885795287860220039949810515276088945992113175935540179433816292092557508382091198720535672011909661379172198970404409318212155420198639722876218677993950782819727591690910228292930702009795139528132853570740805882127126537854678274512388984649085451490251664297642602367277876503392226189067023084803657941516125112829517193099507043014403953357268067757676126764369649916413381943154953557881703376882648237706400522887853745671637029800780476027106139935376184770278015784029403777075816211417040749961246379609359561069689262652306463031937249389970692390502025524864873304907798197641488513476386286272979680628924491656519143113129485129888638431106199604263235766078318273981994612718450635331450237179972444108126953956479453642218794023031698013137393140773228549170255644704481698750197245497721726993147021547580659382835054994277958280093010302303120152405109764360269746647313027606176714894119680726993902334913011592524748640590668424947110413470946803056435393417681422205268425188392728006070285920742517430276765634547274343014720015101016028482883660929024768897550121033101945337622206153674773149401680306680540607237644790617259785722276355210869836562958448280470724702178778545134293108094860751833328730210276293153786081043469675677023829056879691053877586865309820037528868147489991538300537419623548417939260608872504771981585306853037908610700544912604526619741282144869265652061355486058074701949408766501162187506913200467321686057897187515706738638331777128100852595445784932468138583730349548715686880145436560080206541118898431452281894188038908153476271130839084626995967760266385813890969587143736034219268078458281122211749906886691947341845650143658473793240868716851599727624974291733867851227901494137360039261391494597796089194744132762224125259913703729845281387246108874718219300682162316733465734175767692100895500355201731453382757097574594219339313363615441621233969301152444997421296452922806173362921473443769243842517560962452462120656644988824702494290779328642289993692804453865288216977141265488725641118583499512708138629532986975507630664415085079642745377357324714923110291518475327847854618318019581560048048239911904948747845340989631960636469929749761461538558291962275037800072395716107659526027754357839113710991094844972392384058865356587393398259764515227417263619009703223634660500806089560243287548292296053836906517310383183606665372714637099747642453145036764955809222609538802169107042023705146947891086389939812413121833463688792980823212772742759309362578436584060853440905583510934917598145007316183207656080609539637020987227810590987456955004409740624171744270646125779217919188948933037293162579211393530014067167393455142271671843069254946646285311346979164992697158877734480949690340746085696533722929761039910863629941862422950944405444952102517450704931015593501674073614476939188882986408802513568787736622458553437128381020747384149658159388132379705057409754919946737771800341109489891510178185297672109753361891302064365812207418686322000395753679146664362204744543334565596439536283215739588050564058645904590468966514868108927615888669062089591887489486015342937626604163888572214501991580866900187371935533126148739000737083493378024545395927197061486673719984508101513019968524259060956364439195882381033028009635651354950681043850440855950340620425858603089778838109474977583814724365312971982479699001613185838269461454282727092083905503962827492161856045904001289628375987233617716928889661313540479970843718908975680213233245399776993557464351786942847528686026036867466149128954135243642382541675587256170358489631802024096948145571068131140404548073543331060301866290025778052507217781332627883960029877937292613535089691307457854958593494585161931791509698639713448957702766841111560334059985482275879733393296307123293094830382633052250766165157543760109713717175343474687884949337766629036198411680373734262902993671117484303553757959926220377145757509629927856725104501677646595907435721802027800438898252692677403533853239606152653640545503490531320085468242380131253833736310010100566976301620921855981022197016010187369332157185813880185954323962430864768475764364177047377365226290688093237494740210417083653025047624350843361022486195656144397293865309589490122965619036309953666401695369784913326639393142384665268155455850880305902342743243720184504790764567989293050043532826476320734181128618172638198752480225032152952969059561571937627979942322064935509576092456456316529112866404906376906378104013722767855489952955076100982249730589682161455978630425528462844803878308150760450049258602585956726694451020623254880443090349572852010232805683955994133977079487669209466262325755683022620949419230753235955875306636485871128173953279582303595697047928816038126067363504311588719622155653260574322196214662353159212910649455105976400580791553191039658411063341185052075129870159346118117189944667377245356873327279790450812553668716415418371261743514374931794493347615321683618785704027948974674808460712094499065051573534533343565307321330723066990509868090341025982972042780176162490078819386288064200051194032652166030005179139531373919318553798210324728483804583257784950712957813434525813515672474521588350484412919874759857016948165275792767466481838444982890427103944792730466521695133362695289836174258204751872523218981428966201702896060549792815055105869063433610239754840358125907882637168390039786717651604571100595102787614458700553640761885903808612369177066826314218178118389107628212870215853416078058925283130165000344338462061886742340166018217976629490356997038552070339041186467046938151095763778304704950388045957257391848071442426856861553317025633043273693413232682591712789881712459521087729124924552438224810601494069487911698441203395581522313837015416692168647466123958818696949122159673173257334018276303595282609595307625109896099802864733445671042983808612528161545121198833845613346261642166914915607057250958616790881035683287058747940079688329241943666044554112995210417792266187811511079945877674316957490651912423814579569453083629720500441154435385610512101732259602240552422522946817637901049606134167468136553456146180911902432212485606908631143721349530346948328525524161532470581995318776040620375685481123819665613433485416863102657276069785526269220975357541413067250014708305136323924974175704142174262023322650621455868090527930225474363102283657821744175321556803119008352314786080450598915730048261363481672220616385525359156157892315238407941442029340157240997780180690833220079474575239064328523579463895666289536789668418867495413728690235105898125560107096944985570991263113982111843171703976361461599084325518969600984389898440341519840034406088273859801911615349616489197037711495161741843745920394448236491147614185928076388054290263129916408701869213332210683526831912696369999234733132290845394927926482790802469539052874509181530231790758539194165772199251833036666957762134580168124039124081439075422291315655462237416415736727671513862587985737969467267320820910698855978929833143908383421062857372314088536191261717377684659032169857877431271356758721282144258141806279188297477643277450725332100736191388730495523841409934330934273765613763233183975001091576419636520032004070468643399415845935176761985373791236325096671120202034095060656445081033987401282659063796028712497561217257164011950136215876681796980615155172625348300785248615443063737040882311349154371576129511042330273185166114037106881641383647708765474435784150097196504537313585649609334821134542750863170942368863946092767274218401439749207111100471431744912903109698677527309180944576197980524582159821865637185021537808558027988038567695240001770255142761545610290876031346349535647317100576013897482192750465179087895556969404010647745708092376562674583309006928535256946533082469040626437318202432797276317793085899362165125956284462801831717849795763586139957193079893459930385328585404888094033545784909444112515466187062506222604014653342540796624805279371717058819487935985631353831167918104583203234011594058906711451211753982847885986234356446111089704325317087143069060197945107001645436938617218595878897577768238517892017816249821611311542926518905389774171169539310959914790847557346864245731215977083175498679158875285485445193711161111305711117083659249440814119692074068831422367366045882366129010043620325079520450515593220262346524370657627788592505786403358244640586185874295018477339344235127547534699811860541582753763709898823998692084550461479960410711978824160265496212565030871931303025147381326615843059006217181845606990670259792453809341768579533583465489701765397054545456482174938679892829826001987051847620628708906582533390785656234006334893007553922901357809923561390806012147174776550856624667237697521640383766734767900047119756006882034894211601061356024972074593355118108805347293895332156006683529460886108851276010564249366775974344374490819334850023087857546917828633250084010174952885766058259036883738623615149899042934784619206080255839819337536383352337977817592551056456286043525923407550795617748516151109522931059016412366664015012551413015570471790897060183549541351659859331310043382749726044807784431418256312689381305250085476254306088321361413301481832029181981747431738299066221859696422976575089614087669751273904065062251171893621995718965239897718674965072819314079224599820834408070477216177324338892214104146452345918161297109316393670006566588096914320310103062673494846595437885859618005698245901915010348297974428958472124632502492033665419381053362374894101252236852482292174944298600312604461596046943835888366023948009941658757324665910094451881715259211288187856229212693935760471005959962564344533820109237299430949037925943387586228474317403570472678702437456588420939766006691382047848418852628293708357350238343008877768337522406362733032693564574051574755535190479483644743418190899646752332699974369102210524774780943430988724757816566963805183175841695722180723816071286870142059765646690136684815841408915047751553924831807720635329612843694481687418038988063597434163070372578966146393798877061883434528306218349800128218743186738024021606331669438349535824948447659508860479802147032293162781305999498432451339122065494439040967150558907930811164966713050930974851758680201103220359660844455668223188263442357382595481759660444894604890239547905518332349344488750714025063401421550705376866861922507419200366213670789044029127755064944676124940581245141930216649276845619789921560336514594417394032881720740608191047371735950564775918645414487567436001929351915514595692870874113708328133597291770624056114713753462410817299487027974178413044739048907249387848892043232994397627294756026508757384193680828084717647373274675981035699481175578630762869564805878036328744089345040713006236676158150480538367482730013885191237358906658538923476570855334109459548649583290321294953667814631287873506210454613091407174184664180150554235754080616921205792453204052040179838996495135408558609601730148295723282427085521304931893546216891599779677455741720439429006408188017225599693087269487168216572720738979742207387630570646534426842037206019037963082251890721473256292808070618744310937418600427833624516560851468484809766516259494249323177701768488084874717246803841401551815627993301029181011519432484932702379850477451184831992453488096757370908769234145686916838252008718411950166117681804338763688347608697072673374153393092555610533189053703905019855239414060009161525942831867102503582600437867158112072705808918380906727193041607249791052419717851113833164094300174801373793200418965676253419996093034994074023108571038326002640054459345540592709793990695599064388783893833920802234645694739048229113189600821641635251725337125188961324165678092312920741068533394778910110212894637743589481736071351856325379087631100891034631347750619471292611011573421366372888108963324015770148631702224344453125968812392434051836189040262249511478203096537983798802194428655438524232536123518350848350668849511893588707236541336507727188558148607440495557811860188461695838802430033684530260194064478348332514363568592339528137927019148600965529378097484984452243320936388533840264332600310422534660007034807320680297093217307847224394502956152716554630793059297216930263351455925442453060798744842195060709165148844017812322452849492019163469380880294921559183243248172760666019881465409704050866222684932402985221731653674513901050137857282089925914213508596859091277273201096510981688682459336136047492274081235951131726004528009181317787494753359799351235049857244312293565679413604483803839075492983840351958089104440518516723442021803248722617255564797651687951568954390995630372021227734093816798085977854156053110287865008135452052074451172926090545774166156698000808348349927928590004037649018356467444196141578607566364993520287405682244496676314290894604751226131435039405978316383856449603158424741058002530081040030979792271767712824092535765444178590130011005367051482966566363707211679408743002475035058189333409414969606707975709896489799781294433138241312728523585670788527053164640454520852597051812085281913991227061045095332636023773372135798757600371145840646293010524101495603822533303734723597931857652910871986709581771628176595936313106974791508829099395681815599428198188669405982286564585536991440927949293996464929246629277782037642242240647866499201683343546977269626209876700654287629818165566700635461352036523311406019388971277404785144269850131295334111565583526326043352602916742748098958344630383518721829062526202709032813961498666034117529524445213057901804035319641522620481312182885050834713735766666241392812286056690291454993856686355657301661391702413659465519111823202334937361585768980856220376666026868361246036296433403683009903117618597690234525725673206844832692128306553876546697788498202482942369508357718502293061135824428720780238494900978797596855800675179321866694628325802818281487180790041551619956434997345789083865617455403548138036263252805312256173303040441169902789340225152127435068232686028871728151910425504202739580929703981709306301312410643005551339650628060940290304931078160246722764344480213527644431730067286870916129375038155905968080060321312589046069336914020659169749293537727135956802420054476936621324051264904755015582686123209259408352218359104141413651610157609407394912398125815489179483228753232647465377825683371291236699402342044787177475259798130362011941808327976905981498299534082292833044458779349063066371391194809973033969279012596381802580901397297932160283358583648768620746490436463143854436955071435338780404095700503885466704675871421123183478137929342437039356665127541400050105176085868875130460310048532601472365643972853712373650472158622730321345593123994338143014492967670121364867969185801179413272306507448901693074368371404095964537258830004196496586471816347928465100545928263386441633992613901201501013400624333602646660937548548239076733064789462345247350319126495564879375303603818073494462748948502503437911567893789620413328128867288680203443998704736299690822543144628725774913814463975814883753067962396226176257587613156379493282655015228281361024942122499330671206115922958553806879547455875037830567267670494520589447669268521343336482978929706173955183433562876484285942579854021697309874677750230898718192800650308628973934031616036625539437208569874179543512949885376098493598418488291120724066563153275956082949317343217280357214549076361923342792441502734194812362813797839764802211655955413243382875772279606375668535780115797866061404662552173712418104134077870395924249908490571376410750084190049782477397658586545280970139364073861453083410728145557784730164516279266243527377438956064343112537093708484755727869936434163942721265891130906843085802837165865453848260783895168529705254488703719065221512474528690743092141555523691357159931799080101289367407108846037597281796741889837280438623504134873199757505951017660348961575342529408483588452492754952754720315823823957538285588944653324268379510969225906031763736977889257979108227786591666808193417221957439132133536093902457594689267102338853365882672717407081747863381504805773103842522276438076123809535074857657433053589474574018987635172768896687010248404120986410168754163198203919535230026135302329746538925093150876020799587108686066485999015020485713401677943196680733331390370404963410276795625103951553146990901945237850400529164403868705568441354156314651100882267247248475884431708602014467691691985429047270110125369300531805702341926030317705337958911802367256025958541118995721433022835017783777604553579070662246027003303891277066627937193049691586625655084413876455230896228235793472810823756859504689268455292897555691898766650087407629191707351412405000462516746938460575848788217205194508959917765060234433510002221824964074308467119470307679772922205113110195879983294422787727849474749334856735129009385707954791495152316815514598271026185406896694873667115772642547474696770131221345273481763286669159673081802617443370998385485478419367894917448095190843280421792844425687671473815668551776363403712897809367992489242152840190609973777466575707851786167754501484934746182506164998586691420822156305393420167163862989264268326845449704110290830546983767670582794007556930833977743990135955557276836797734972505965208075013779705503535139049484110938036888231628337326291356194426019436003086135656701402922485454930448537329551332590061179189675155172792022893430010542453646330354919340717278863331285878789110349743986402427995653952414551101086817784202875669132894623469393665323481455320275982916070148183425962425975010815876794005812923441554814504207367474013779909220130333502546316364515179868283289053366807037360454686296766130741445673769650058922888451537418265162357012859227423688015610804511645513181136290107751714098989605608620074667896179179273477399314525402043185834152150537776770603421236026592927575016162687212883392482748905295977709152696672708710370411165251563403733002669075900036028214609544199113641391250367348699595495060327317693363895126465351661927075353383886945218250218797940430775136541108110013565427032201675432879217469248369030968272011739560013960522817517755771025663277990104837850811402468222933039283177312291710292598960504591254026010064979619371145167634658208171881447765639344315766098097647910806103188348452373005586558007026539337785509473267195316669131990589014297093467891175482093708156713102913694305142681286986194069999412683477597165681276688072707654078656383566790260970329479337473579390651776136840867152086636546178730235848605010739492274216748564217538675411666771750286614647846081855756998814039925828060992166382906782769358976167558432981298525486428632884925250309932359474139296711467578337284560537981026959648201116479693670537191909492702693367618284061195251908414853168270294921604638202067440088980947286567918164825946344267759834154079550825839773970166707604234453097855817624073263843908777403336515474538509836309049717359332391282436827425262212077997065698182237395433894661371085442568188771006783845791370890114185305439500910008713213058394048903719482103371296269204936146290324792940894797517928957128884855620716929938991816162640288105849522802204986817134226323800198512413804674183223860591614002071199312368448509307685883084847953271496113280493086693336930398729104690834824458896040514229945272331447217972418157706274383966573046002554424725910671869141686508285676471358718907322528352054559957939249709518223953458799587712256746382229438631138367943843329199385853460474625254132631012119852733912382191137335129248575449211082800746769218820527894340257057287153799139626925437321866581191680128367020526456949642903121407425058664455467489498103057857199804117775229171787945063498241352179848453424498284403796167500404786302234019190520267938827858081584380069833519891738346494489191473902032012938428338892590158905126127833907733776658745778671878050243697900651466382041553169455657934098600317226869019863279525458917842351205796135796016048431944029051399159132856359240896378203944410291811875386719665264521690395764990387776492217843853960559384509285613969467581743088027276335859973416621904963732708788540711538974181886960555196936665204869742178623082617560622183262743468064723027520476595699635238382921808861953244789811693393789826278252592005455766138465346931267040632314771321716091354697481133397058807624008460590407470525238296693254006172261701012673703710573266524831718641460769013404814666545140281985841941226883770892109417331321947606410959236181952262213042712160227355380361858300919950217128731399037983945643167310428066776992630042883721587475418620509916669611087830685471859017153312620142824975798479399304766367713446551259795379464822232640381622981890768634937013009497639104568160054458209644806365295999616577764087152240421024399394025258837455240328648223466139171783119370068094730097856994893184603478405369606232215594561415284590112569494841606785222397075133770898419673558295910303622947216200486788354682979915241723771450511465108060356697089015020769353512658274196227730546851027942781943865801562210755030511037477869301719455516358164302675681774669157761498701587927820416087487457516801208240078945533622697343770965411572201297814316780755778530874547202395612745512475586913754616830145248512609874029067387709516300826737038748020077427330993394658316655498234291500873059601458743500566581166805460343884930222283508041728442692440746373612195469778464994118623528433426714457024678341692794362034530784073228744588810205826060449629326398893469306702294698329233405305255665298632310035167966971341779571835317249378224195751945279971561602571861846134373421537931544461368641143091199593551561489266623716706235679020550709406021914868333054910000145709772695944855235326171091110320889133249654425214842325211651097161888733386824655734433844859280412441409193456709308033802140042576769591448039205943592334015818947908151552144209827860339520085532220751947114506355424021119071135905365968344101967320993767292673688618219888034972405690064601279574628112007429756938889970522386893065023079541243272990749426404876261921381144994510863486111987848751601471660693686739928455479801471117494820756982220137420449620459534682044950603784385778201952928369144242071421816593708819501432135532795778244649337868178611815540058589603055878500238543987886318040622956015293612773320950371845651829831173875152735526790772908663277193307643235530810552090682304638133322049478343277429351854450302145377213193429625770003126464934922818760407587762522569862656818960573109456883060603697682336285849916405761504027590418979177021176761781996126163547124567540228927405576698901080229862361890710424958668855117653667062703645675278790556440621400355738802585593485623525662858891374759328017176504964755702327356358596885728699952268230864687194288365031533949463837077756714282844928112280199520463541313748396869271239928923507579558244776151327702088236067610762741627345163869055726878457165916433892488951092851732003328578327267838266059756480407547654257185309745406938211285026618762543961097452776784254021787866994311850703275345604954914646369267021712102589503705904414207584086305289374665106849107681112397827585549503907870535138519104514180547752210320692617595995742150788457493017440902360432438656527389251977783797351168111101828409707761455553455956491174203244507402349389832641812123002534884526145548819034940232529869051512603904575241584899467850207736129721470456419037771658645167429176025047754754433303803472231432038835910379888634620505657989037707290605855202993937477105446637541703890818213372912614150086891279978192212063647736020435947704184499204019759219384551349574614175430882815484620120743221759987288860121923917341005177189354905947254644836850306982465848965327587840032491231371499803266793770764354683723605581596769386960865060255284231635238741538613491680559203516185064888444293034358542642767808302345511603600392706075435060060407972993732925306164633548186302956759907413839715915001130163643920763869710386541700498790485295557558814306133063405882640377385393535001821788060558651528450289876746609650468153001883376328823197218870087273364623492257061216059007630151892335320731932788627996262965064553316293583396028611224735521878930720718016742451133785910923282399430591771319144010610998743355349127046013038819854351255640799011960759084658456352216150972256760551030425259234021266543088726638878658851836819975116448650367637782246548407272059832108572401471393382542978044790131540153605816291213046418252765334435365775646161058274529842469710609209013463306774983709687517802652758351256878430368530463358810877372595573377498682855738910418353457904947958557823494516429557147447642890460386134822119171775321590457012355167334291183077071334111519258299254620315935693349008144719090322685152400579463158437216253014168512216333791636008974402160186860872703747364372552750404023240254344364581457962081392343962443686344160752288207719993764525670429239691696149456762262288728483718170656346078787866631627281110314623625496565236731109823664646540972332706222309224130297614402903660698516499546697771325283012600426450913772656927699878280418836269931271254329424087355890140330385174681707018558571103979370128765225879882968069084257023257084028261884663530517401390263669378681551007377298256283790161858844647730233696301362845223490546128505879415748925722165619087127464658603128894418606050577339523049021039677692090525951459837086340807600498190662950676250171427283219089542918612015308178577231063482714815727344193282600869793981504101599019984813086404978042005024622463417511315380394462342269205781823569913652913105846391249622791889274147067266392115388333352285562989363772404468774933019638088307043961556871688450172167113916380979457260749904069231871016134940674578932558567843504733402901788355640701424272412225623061859930650403152777768452085918259949789531093861740462535981542758319981490114060681314462317451667350927595248747497622069903489559495198848533784122638658466614089652415836230978208675668950341642219373590165290048278190269892964672445970343661485060216194606088087507147357015068629315397035100687248536740356283279831943513009158635762740553998392097273659581131321367906791527994146496870650169604612480098167305832521717207683428078784836899454899534699136778806043609674565416553676112004349452668608430386210891502390623578775012624205034593043740410775811428487285781694570790786484497793656502906095811744578551571442432339881183764505235586510865714146685438650238677828284889798783180725756497913985400892453753188155955996214845842424855176518358455252063975359627453948282719579025408534806470641485089565754005723105422176591634004609765821527340884805605740096705160003591246732198666126469908070245019047263270535236540275569798427466204817889560947243822916486617301460716295571292916877110789655607159990476047663789034441088676761325805473582377054564608740443404687652776118078415359329312886216733630072083375428590075655432770431915623411592876707773746502854642260794132282542977181792307191521911625770419860601435547224992198528208948355434732122411169921468727530424311735465947417859928881206861750210524831954466073563396433394984547814997596224357666597822367164864813254605800034473673807179683631200617397913262003515778812311332994539975487423144439566809415376068628984212543148732534743645082023591670145434406343380879554664497838518293687156290420196194237123460800466369280076060456787928451331650268329824401053503497005459172774846045099807064237727138537361835836524092440357396645040108714973918820702354378305168147553576866931797559592801005082149225466952320578990378280986231952002082512688509100913001816090266009086341656641331374323244718093041335505459538444132751933394423758275363703604099840256322422040933921942378623767672427027914154556773180535679965562004493978760344038025045645419368237998212529674403570301440742960219362974256931215288831189341705399190407872901734082275666404852136615508768788287053859011084171397443267829558418403754090535750100081396461543983131936506886600284454899659520600741492220259140047926694804020785578059303442544861889038844211716352352115358742731291839719804319791921903168847840002497089564094281677928614078424266824223937699877113820084481599440726170527412076182848177268766095687549296655364865440017446304597711024532471282232573937290488477709273987388407489532786419848924677819709566356604451418249842149255111108795031064937701385356378328552454566945207599495747797935627351406783533593947047683661070577197772730348499817059436924893521828363330620813126723307392807098083276623148892887839892054447659340562126865075616444597378141866458816315731692347045258007323510156049074589717938167399543685080399762266745350370265343938280895076258495021045297330085681526280078711393011730502556419116438864546581369299680346099562494132371410158691852746770735562943576332417210557988115229163773269961742499034663367870722771723462466137410493339766031172461021935172161861199674567982628315303584841389521279474168140936912827668270959713482045425817103131810445080648570781581603417604261599874199078780936343201302625642788997175609805132363376250090217352114619643745504937743993255801583768519082269169576895895637655358777953650059005870456704300290842436975318219624182121729615288378288556203711255397591133317914631709505643227303356327194706741750343346015319582137683533249088418761828232476485734415299790288942946661451677349095680559168978210791225116100510394212405250783089727746597357924754333146393718095099815376432759384672214927618135913087743954553019424707726613971282665700355827205608164201291557110567083934681538101002523992149468769100637211471766545692189992060648894425906481877558808120891300988183790526878981094726921797509698565609798961816246505358138918217537750914614617873371372248938758120937646075336601028594217776098948409952288101886548901866694514590127536839316698978324242683410989329397600545818769998916780640652973207334715457080849668886930451983129505916630783636578555834522598115320225567652666479505742269797564783473456578940402792869190739819993304194302148459505765786238504470757941951959647607064403699618366570552299488337840750649329018464663451893921142487652121133461148475763740620576786887563858835248335546994100150830262536149907084745546790054334566842923487794508472309717258742308793474793576053242417217605376349921045889882301203605941529960819511847527072765547983842385889734002754240759122577804369859591065149915024335799845413929661049248723169746873233561596908246281515809844539762224796567374002898330781834750478672964396885020507084049354250021218248438258990439982093623304492425085706857127472256187788956294034295410485022920300436280641755763522137480316062484201148218838284176102811216761620650633258739615560353344995535360556513696638000757171180999942827912148932454530864697633985886932330055081117981784874942211444870561776028417598227993530728053373872577952785044735344966501883542507193573802436868972523187732027618474047226134759832264564813194061592998319141337424873460369487404203758072927594833877632062541904698460997156092325535415798185545111710579846743282824875603831016160338959267714697308323089084138130601569449461233505896834074875221627943605434972426304966942882723714538588256501858203092944849742965548145800450986302942311606142562529600562709364923567165669783975377980655398787454092214269241538303824930840002531339366501508898182809258985385073986959517926906076278474868168180229963010733367675158472648842234715898447195047409024661180500392588325323947974997506055809103667261519499254217284794410211985651705226692409110488379421433954590488464413987362958093267777236017112871694654939826784134068476281564158769012358988125697540550423065493204956596876699271260245208409721189951353251144874138936849686491245680379624037553426771036545751840294887107353476404062029497355974971430678155968449961298912307357698875383536113444949982894845206908567154678592013106716122565585931684621726628220455775723188140927194226125223431304039019442072070466325840890173550134002912568235333927237561860873818363166133112256484737243386421818986058098441177283982630369524111572657792424187298944807081551293735438917919999436925314678004985235182740681058560984909275450234427439185280877961295056533304340747404323750100826986511678798617732918131995480092786434208890754813218780640429131675666513147224343141218972108856896858380881295153483194920102209862266138551343241192074886151474209013168715486118420994647796569267623435965754899565698141626526154252038218320376298019780496744798246516984946413490143130979004997930596481129481303594390803280425805254372235995394267535591480189095244948357185038951139873247566805392758440462294477054092168595000629529937432186293512659055881856086995081140778370760822886754188088292939056523362924540320211540787119057521393670405268497135873269953639747219021452105955453064300929024815989164442908980677748805789621849072421112081241873634946562139419309858127025554562496432544529610742234888592659216295251765503487433658642380423259362088152824984478068510871708013507668713400152284673698143044182358389022808722446069056159218487722900775622404430600456792351224408636363981775910797875956146807387359840200751634338100155666015172304707741680379452848205068505956593881955370491446669941641541353397278635877220791655889076118500457348107529902496816984885846765462621997698133848859160302712877161199670787414213300167007241296930183622870811552386407226690542913704546255076886992745629107779630806912440480049570894570148373186126634656216005621351505978346058011660937513083874983352475938211784710695462343148429235576931542351411016277693031972493017992736268648615072514023399540140971996851188003955311534184412111166043295529938675865434778902802139493443260044961033869969733725586946714310644281430622457220027163117019776307413571796058494890765261331075279360846747630045081971877085485724864331284043017915235823733882059442709694862480720619103223466362395271341992832204272281814140175599433275071929776997942611444925303105816839250135485387536390866720161327629241243666153836599855942288846816902720349532878837617484324179833428715661431220180413227272335185796591428407185505744934610202124987572303591043047004655163491877221552033042069107508615816433889979047476807891458981668116906357404020409619002174225557098521641783104628170280639737652052096599452219063857976052210338027185223537715866858439037380924086870981424991553533198389300575230870018385409052485288034680730466518789915497812629142079861240290907886773896426245470314072623456373216204329957350946849672329071688355369370419665512759747932796804956062608785440740279897782324574415952613168950500536977983344933185664081162489633614444407433892648113638998599783032511989762739575938621956195956847796322342211465730943817302318738708022828802670652567365195739123479580643278205354870187195646606511307513638044628871345295639130007896064081787228476676448876420315957816710435533969196537492756659410630435432100739939190203871879245416017776412184502278540928214085509440345259869879492338488121407281546344656540403435923777483988759633125957728093791034844487514782146191623369767044458355907575354374435081810871131590603703211800822691157913679279973521135808668374619264427704937878538527420669277441654527853425930306454048309432842187484725691883212026172830264977081071930893080475804831030842606766752181326164161353659948481709832000791321419334412465982702921601459153184601146464139557884283977337598790011175158858453644426272057488264081679468687651971672741754429436383503450331237072976824266431671108800458330475806722302601010448363614336244271064318915437684825197619091530466397077526443267635978507170664244891904271865154463197692532240300577997232964883271354977876683727277134022072935737037067129748023776653525876258768773867178350463786493892365850426616462464966872254392438122732467850823351845364804676053463808431774108531374292408080817117022064654531527821569062470718391677489037551715001412796551831774998741797779644080232745864177400467450678503334524241352122485616637546946702749152064201801072934420400220935307817989651566459357269251282619209147140881055791592291466858463325868207083321358539201316177057637434794982857022293284855293468000867415317600617203652922193522851358330045449665209379573681078707106213858497284465086255096803454858869866746460872027925082792374206793436293119559012269736879470379131628711619457371328097544023367246498706841498429152861868574804904327010383133755842282930586301554617206792313296992940791535611950736936040422498009077989560774628568784320549023166136104299679453562056384376207434241537830798051618956165474161338520715934860785007003550311221016889250134400882801788725233706727465716923264651934434621950856088437805267436906487571244838324470555298857682800256318655339836015268221532584208672555931310164615999074689127803466985070749266191392540946149842104222638348109254538321739113047016555548531496192941115773631381192855677463966970910908496134409168730616390539145128911992127806394680064404689065880957398240474333754145494102675670276895868045689999607211863883928142730165515514708488870060031522084533086687633535136517143750368948408093646277005846620338050575432936361971339158366594256641790561599022094433385193898334782844937684382262114027623359399937219731910650070290633178201838220826121671223419343719854428737039565350828231600257118471335671281912520364975372350671106654979525217922109098513010874722873961036571489598590436641197810953670890226204866689793142140925626207104439411861713051686382778691024071257685798236360730561063064385038358922475995529480465156538985037721457336741760330781414521895520783481333715772224176796972819470821524571148718442881393655856565199018647037687814236022806400557007212960579172154260017670137413306239139596083188974047603022114701835516363626857816735460327479722785186527793072076370321679118583359443139825571296389232079900647234408326504370269728974299709690726406968989889898548108207619494413614228470679544020524181889645728022921454116884276756018697522935768302865554982349181963977801925905510094630352861741620460628885690358151819853234093545543106409061738449213882527422194666873460764987041035204435097467734151594783997625222056690524222648263338771569555776963926977454425539422295520203933809914413616159875270421259348303845305812020609600156258561451004130868361313743190523968043566666757022672075922657146520892170015050318633928753440757996190344800461357385644604733592596197244387893963965967727870829302612791982906745782968727445474840488204235753549373923859077141577447833725299280137857537424715384831238434606813004737919055575730148518989352883203812513715734439347346420061766480760615508396185135937258966791552976141342489105563021806283513724431116398530649545749342472834626545069883301227066247199901143802043421624900487089829153765356586523872985200783279544061921927605721481258666381359255749821858477772459873695788414387397159841586213270029418143783341441534168453853335940872211056387190495222340563600251207736867166239401783899358576576331429194501041430303408855608940858215501009260364402507098544528383702045859228209912887811749245858035238044016597341595100028899707836918984490955164347034781622452217702885533788221338359710694269737985034235188690155032326676042842258150312732124257168578556366065189639167049817927863496280767051714129655584141943581149594867418437513696182762354369561997481850218472917231785323499431365647534928264043992799691198316685819962472274375579677670544312144584001282112183055812262125111645452262465786579786580717200345456320874893629916250012142663793370180642160931440177424326740703169087311262048218827711680274098535523215491484347004434011398588563666530513776155787995617445648953227740603544497026911014762741395269286449399751796981328197131113887572303813813581273019370192124382353660222532172875767784719274262219121546727554016278648384151973150701832066194621527278056744570589326144536989921109249531538861513306561661344142293116035064045004184773173208596303824725662000953285447541827671486715735184415248397817249358215791144758038686410777032623229106599827032332250398781816133532526643623754680567079023985987811831708508916322359034531486987869148430936871634252303619363718340592012592051222948668067665588749694952652804610850715875007464246757217765876503754595203201595845278612845406263757290309754829942312272110872758272371561680200167074712472819537632929206171200821223816881417696973382960340447197778563976260661281694863034555064778325616714302997618884710025461195571343325787385912027076307365650993138370202863555520667031385051140317034123221274569220578319705015203038137771579522846243643760914372560525363118285790858348749086357046734937072950137000466202593182805441009130504307151323787551917044985973268276849312184922953667567661566092602132146773336362151901215694531746000520614379648963440553454106079833593190159451925208395557242212262591754055879221394582353645230983799911633548737768438348831861436143527265739953495848821867910991183166233223677416071655760948654504913163365372043001093215104830934384385421749396063028684781115484752190383836144031629101152926107841750334766407458870796207054212079695675155108677122906980835949416329077558101951764928574658218066958373384369428976174979094230126240751208012717706417859877321865791949715324257599863350372598982811064801996087549248184138659933778492923236144931344992368660320865038703853093716219848066599151123731351508353155564435590312637600336930309679566412490833986009122850186551697407211938594093198295323374376429281978274192132391627427204622473833818349428737737826357695787680187212847116174916124514714850637724505062600241858611727073142891986301864961085106958126834212573007870688596692962652550408812214993977877018172175675720255158454474628103153186681544838828078473570494551518302220140001290426657638992153876865941704682912078925264729071301283790617934588664720325352650535845782847021464057973419231370466846488726365966347100185118081411025583918069044167686864109373770759659701194096209939186304752959570649356271718463357794669216635364081494108358780930447086466338047399018857566157210814605886587709320968680692072625206016922930107080802722097152109529504315215642622797801593186438277379688514899024178698050264359619366989743533145761570607383136929921661891203505284709736643521483749069643256951484287508198363477592283244859284314940224149178207303673591873564320322314571883416200958083997173510117324808329948309593747725336698824271416479680687221536325245607384815236840943744521703856491899723260635464366914254167235073187733086738013877256065113021024820566455902535845838463373207376445323267583224792115403393013317042370906540387975963912687518753695751299639208180111079421313337971255692892894446646219072352748345243558310822294873786700747476766813362925291477751656055628342920370031452080516464989307126667331281252068755326261504578860112604892041680934981763435029111734581624844563568238572332597557864361541340207262028664265491235984251303996725711103994062269012301362677896302919092753712020398918751825103543553637784761248106677930700952896297056143448171178303604567880254441089090694851387165420382635491638392370740504926420325384727383471350964828622738514433119217771372380895111963207842320578426599370713513768320563975936267172623465578205831413663892903520380676856334146384305093394891735797956770045343877338237046664780582680082581281337386413454576442995697896750867565271153334703071509505002158586031359579691587008965794943207260431156289071013123310730963419963057707535190036933060388774242294881295665882548182687559544042927413724819752679090116474017081234342593114390768271373377006266242020025198361961768693656192768883839176146247785698819074031293066696902664954715770701230973881265066720420915987296582591178966360410707327182757614208733819729741726373353033918387129300256916710984896946515024256703655770284644297162144547030433797272409902483726702871832779897444000306521504837742428619163631213810448031337678595104946195358473141059864149905476828451465189658188755677512841610692812292942450206338736355283378036080279651836788756562510780445175886301794111750767860932769400514370275760780449361406942261413945936799939858101864062494401539646725863181079861730473300231498450606171368105584466833118382285213949457531366863730320251758603943781591553750158607633479992509716355031712284726212380101507752391072080641387729287566795428476107303302355112008117471698410302757828432813724497021948111421538762164849284089895875021925464660350033660442228169989438620814622929834897399367173891262077330323084058352073386563426981453144439040448483381246280556067407552672074791584400620201843329024294827376351003088787430699572313619577350881590040593782716603815737601553175261337410729803197122684879382099137435853479913423136903331671897833083498662362108855554632321633652495420035910755064263963690390533470475412632090160177361836089571906305743395466253448576925591532355408724785887133385593927430205041037948795940607263972895681065674798321088702594793115841479258169043181115573341949988381491700834528353131227079771613680467243490391567546437168749376442742551254162036241315570041131798871586237052400605677156137735962200859493282668748314651625168846045705974404126048602123722391145442445853776476153406403119632930329336590381557768855111608941904052701923923353933710686714842673175390204874144454479781763487016326964108159470568106754417696362538140664335365427432159486613658442708474337897357466614435336370963171949457710258751210096608425864150902479487810601211923414055098825021376075374096601144726924396972961512709362437912931233834176910676921880163649660094669869491760882644515368852857802469813288765496000361266010169283236225541599186067512443877657814308659524498463187335865954431756489425277519413229790665399377780251397614994034583083099742978914943048526858333783060330041811017056670988153175752238386873761870093578625295282614843020702138187305719142560694919827343332824528016273866428787205988591991042957664846243645764482538712197776895087932795819729099665160333180377826404225539646675346778783725966985226793693109135511314036108325120698617729398511256927342569471151882412797306878335123719614607996851436630860528836609272939407991437791387506111232719768535056250138725380052539396560525085618687200508401916046462217835361676516137344446024130038298337403594511566784705552190143578640085640416561180404329098965712589714331300281315441702189448263979161152173727859731155987402165814790326342997678042779072630097996419997207066027641785666131665410649730436495908391091784083199784796104918295505002725148149709873085526111299987685421337073518776912569685793429550218771841172094178320077682041481025838590771929112841495324629494422296404128145015071649929943831574340895325145539658569925081394235214182028926309767908989541551028589425416549306525001672934579483610035360774963409787266744714590594096495758452920265058958710388443026958420519608516339864834268889405712026141168516805763742691259096397234164982288687939239997732070800222233325959860676313341253567943443041099556399231140668515654779652046870450021655780213769311527639044615760886729714572166968836497220462361853262371334542858619529487521263915148071480635116997309683171262898084105910305766161071443738605149832870485508575389548121924175406024730726023123793347858605175782660270527367912414947617075891952884679188521931791392538440562142106271752553243254998733040965071781303071689228046258577353855410979199588923713453384044663663343300939619717726806907789340946228084970467993645009456982226767985069260394104329161287696821497716865436898302448701504672766715618921054598690653923545651633309834633044893024558441624241204517586825506517235834521390342219497350582373022458310294868351018708003788688636018552499165839339184238174477000366830514369063775475371329191463047603128904017817881850560808234043002053359907585345715699867317318197872535980177013797194304678149819531799575940101774442233409548765796672378091799213128210122662974818042373411401690285541786586605044574450781897542912338288935596347416770432668601310347417618749228404487639783025648765116283477589793851867987345826235263942849097144313355737698108477099153444492669373321105547899377241615996610505651597849933545402667194163185850173841500909505585952607006340280106113593553901351687933143146957086424468851033468078724088751793454190306627288977112905340557690396648621631219377803375749737147487206149581230184951133447385607241537418343328660500625667391095946640295231671326800395817820540635907693073564753182438840888906730219152978655262711482643343846496194536903804238076891635655641694535894556055637987530252710191001313843091424191306920502380775149853904302301927933297489296017844499095824359002157643294597336629860779501304292472606390885802044617253480894138333926394571681052367634838827418653114325535279675271019752004786760901608625944390176644187946548618753051286646603621783136122757898326672339788751034003785813625463626150882370052898844012719778315345877675465564035609802788970615609331033309953181142953198417296777292331947349881112019215896210212192373302530714146117036659795581067762423865994504802432338266477821050351139088388793653703372611199789787084017547512414102272356855634798585524320929287365153126987252690551611468126690444276833326160174740523192105367217802125661316487420852008766101234460962262436420972986836007759696593471721013812015474864509059053783572335292804295907202855076881101308944277842003621909019555549932121295163413109134672495141366193471313925228457693127618869013572506431341079594327966633475370046819327214299998255399451306365569233776163380962646777682547255757877497726082076851062502189969152242720587541127347072801397675830466424728745609810279147328454170946713354787662988291071977977993727765278724188986584688959666942124690353489187607848222944839308816828827733741768390329334208347418312345074906565355170074178140106367088358643855413734576781365044047242644998217985930657980109611990743327176049531837256291443414446224707179167172254421130409505076665868616700255676752946477359803500637577348782955886867430272030821983085129424392760980741123507573485049802766911566037415749612010827335263948591650721989291961768408598049408603984872263448527648621697732515232131014172146926921357639157407494917040989026616323751606878631035510730405753358579505338217488606612411092019595894280457534625936098744373758894675285628678647968625731838854126910282722675697997740708697806977043334810653063823978293813867495873670680732813161981755059693302058886424066178970906144967087159122995217328976571356007282710481400542033641700382098701662330223137807883011280639074437107172979581514098591565650303822610248135870504827121300993918403184466107126304029894269527093860885885274458012402960276200996312611611399294521923373882928950362419263109749631155110253299257580827733046627451341214647867494393140572527295731524978926658275926818167709690760329476259502669480574516922442016821314132253546508920183614815513423118277881184738909459299430430217875932905330708060461870578456191233995794289694636878928881737798078024734106173405247380180158653143629624292376906699367174680432801919434833972984074796059511507637444635654004822885863195052602570702557319320146017806436450511067951938405529547060926688425695802805592516669856490071891952586049201759322624574726801009970721505173700181390870635983825936836087363390040706270163325752358425486253006504166177411903686905163550156162580350080146609772086326840818525596521589640132855423310067563571869053837909542804497737485314416094841847529404233938372329454500419445878707373584819010485884973903536572333162837080462805942652944814417976646217832506236026554745130850250554318560857088006701115797302405336544395291236092085460692457249921495193591734050272892093114637643938147895413458250349714779893449111867434935183056111045204999645281948907979977103985994879172926721819783046818308679636190993508444526957425695757391938011768328540793613081541400815795232097372561963936291874981761046164886625466782089526782791138533296287261663515599941432439691488892088835815470153775222090429314056323718647574227307163609663675355217758117422581861714231828522562707655220000266930744157431195443493397321736898061081736964672436564232455311588558512816020060474863155785355486255014005553076040264739660878019891736762196431982555297115456152927712905925647604377045415384954271473704534840183774515775964750634740708001835160626166601268983255170235431618666284667944559773970109660265995098293543077160618415427575761896194316028852745199581438983789286523947467569873381829376847868788250054133443563402914944481779385612008376811914879070720846526484413371774441809207756463942697550975453773709699150068353137356252383700761739147122692875416344793339984613009655952768583784302511417018228591728525711027713176923620092420716339837295032102458207894841894347963393275235484800578546701821718837481125356581000370299986138753692323361408584542991310370501479852753745567983481020098098779364155442805853453349162812549615346846412849610332100419340177942906212360334139041730246939469485961215967260449626568577450356739454977483420376192974075260627599227552792288990321451221751628322792334254611502388907898753186183483325001309690943366612854514657648766504889469237472539462936618765270013833642943661156446889757747973534471291730398979000561637976854797781029445256502900031403404437303017627448913248794396341357203142953390907224288147782163881514950207875005272624258951851966574571185624653841285310044628438160349149131246389903837923010971202421301919859030219827764453517592154302617566845392732285512772351828526077700029287839167811941505342915430177110470262606705652979370223913596906522208474692309088343845056115102166013099666139095380125234831509433193480359395551073516918298242678587321401990539417659585689719478819243358058072582457682270499019909542066993370393675790470929916635809396035955087401269669822271421882244542299062212655906599703363549999958684094621394386296614672178191031424710393439033306090329597287881418738253377659216425014760493783691656566114408053980953871570828167394925179904819544081259573281979065456525231362844685326748479655206233704727887672410055163614026712583144173508641683559105833244838009101233850635719793594912174749034529549262841738417282736818082380410467470815965349399041980171276312393836109379460910994546194968527532667189836027495901475779925120354812874844703344924240179348396331731296919787837256786961128014958955642439681790222177002242540011203543802637623217342735514964531901908109430891146595427289893992732898319124386167403731517072165654618468836019743735173670835417048419447596562857235510950021487608351937477758008747859292108387185132450209660757393481538188170988385779367409827811825224615961963785677656066464031436731501523049928398110186003944109788086317501314315416143040842603984431698545477504830866593683301248390875453540389237945177043965411619855238600244367769379998096645768931236184852723174806599342772099479258675584570987542214030162662552072699559456563699213335492705116539568910800166737765622309773749591054483852301114879894583023300383155142716334984057710221613839441416062331324583376607497272573155736935963908492483689060010025687397988386210985370307973176156231523806792115774364990249420962481345880457470927447813878114010121480741667031718998769099789479665409137517519319003090619413226082558264123109977721084642140779533247695427817669166515433541793482479763982413233024157660346335634704075243907695880535174203569428786149070053976215962770055267952851576110248793117314870021347610302818352421995625926144349155476182138013126271134311289785580102226239593133930172961325604289392485421173289230468275841912883238006951730848696867077207005891850253319922163903045096886896598653337686501893225669740352893979100055327155344455220380872153695338005363687740998649894598966306934122760551364369838781423193191776512600955607146890428985229885007836259487386070733572860938878523955817848558365018782788677627672851423300536306804437889011048874606439305253785362746506419220478548088856809265417424879141118162956462538741671072106628650028552466933904297358777545604226763554118449444493634646860647703320282110062336677549091760969094699164051178989757532249701696955665997420207876056301990868553554558941704020282865090958443018697158744266364842372724706767648801480585296705316865010727457939741641857674218699435934363618148567129522559292199967989453419020331706610052094830214809567282013643193746629176270424167015340328558014401131680902639762074965208459222438259536409240940188566207027910100804093318699651706756990066818323766960560753130591187133474475716635202583334740762746256167784337471954465558583502849494366169129524578458392497134318186258124786484960678191730035923708729461177993548281536973176251034631087379714288060538716485716606646955025341462389104689981532423068259708747812832196943239726183999752857957555652509189451843400526099627365782344045046240344842606423318460475031382825241751844740361393004341501736024401991421771781213246528488694590730559639035495889770313796426396343164779869963965481181150648804351307918793820514818288613185640534295764210064386546884246863328026450966056201549503392578596085464513892373046372798923351507430198323203641934055349121575261773258559856675550310223262749216091961513789623217296718879152061374631063185610599803679026337351875889169794996696910282521190605465891146216385877772376621269706112854561404097731242323048660321639705948086928778236341590010879107717766450900574481222090100174569241557307131724267664945992327144860232277711117391105968976195579971323104648641551015746271321486758333488282665629204473504923151141284382743354068918735355966952396114346408398259539046361283514533190899947059862305358160879392977013330836293971658777811424057267208800201709702874909558810949489249822439468087782740929569572096620861644110824318051131633181841026282823881548162354205535725099885746498349783003927326084369800008378401904874369820818306089787166515433913739653963896283020656749403774055776026014510559934300202312478353257051728387734551630824296636934886618417447511762634147433561939877772760156512043714141863916982415664877873142043648967184006900994971059909980911971368691638090691697495199969027748965465458176000910045687641082006337087287820902441482218387560776496694293584933725276731804849226886761650259501883875254720017163460259066918507436535566998110628949097650061004207802683267232142022546800625750155709854547696777050056109644409150106391685469020123025784454605133148277270128957887497817412785695417248087774338725523381266471560563247983554050625599045037311234003709812291496266030217401305986633817322420725640510942059298454818608899283886747358287243011927712948831767953887749407747290830594551441175287748307548942731743917936012420162974053749262761657865657200233888829127972277947402300702131529005189723732616006131430207530681969625664993330734440172610478036006899329065754044676799254012401278215383784773654445821099982043833295611022421780804713880838691699441279228745389683245290296325351135465846857248637391527890546296046146308287161009868569506111439725458781399150279669845860706445440646395873588315825733823074142921568103518049299129848114526954515884227116056466243028413647063869231222793585241804442861018776491704154746721212193599561949751434096198569526481635484664003725108063563804560062461372790589340895525257966489653008549545523007924833438518481589111676758525875177494299325855404775691320918487660682583594159265900278954722093144479097367331668388981149654677182591154585924173840497871832302140092293804980171770439234791132677641036946304683665854887134496590796047922668378898561855788572181598268426695838305797914947850500959338398789921622984086042682724649150373016653205972582646104812922367449210002293900252193095032907816348772016135296104379451715241598607424297769229896055790071843365549769550201015507381205847762688536406438184930480291591854882949410474261488268298505487040636103304313319312325669696007862454034800592593185612464103986682908019968925519883212066587204929301259280087623909565684807887576244658131044044878468522771626790199063375859360745481430380370526849954564152264347631349184115857044969336694578337714862687134341664111932174299496345168162243711908163851562729081684618684347467343096491531234820999466651844630927284580884319836050089476570807349810487860663376180069269602170539064792589346665063136746318943095244213047909040381519492148778230969559350393646479583875983980182299539141721782434458436951548011382041307734097836875035072385641746912558515864518634481234798601280409203233092786601404013394611488289219111319552968030538324701432356557008339166859981321187728633508089779002615818878156989532682150685185492363106183415106486170013925529966250537187446263251351682870448761749900695657268299150672020903619320962908479423108813282992004539366107825750498976551657636383304929864635657455126032232256131520214400635062383999154739378646845258373951995110190805694138584957592024325985258229523247619061447088277414456763745141762663002474709955849736803540094306875979164089704344146115687719760656929291942927979780295344454764543869608569529058786708839027916112565257198046221792229019066404205629899708126390341769482093633432060315133775522550159354859083466999388170409789731756636413609757134178174737037179475302287672186639883308889485047331121077070975423947904771606493109805227151337722571625046547989016002793216404668627252507971294258598031166457203051171796760182686144836588911946851478700461014231636857453064798801802926342244549326483262545097867251861679422880443275865929926147675661611846442620457955590450209353293163114442117882944664974369269199190720683107404989410951851818726372594380649148506359473039111860877170518559353717920324817141794063883524513565277442917792344686807233631545996563197367163492883253424295659200685645943886259983271129425713400536036422001215831358989950453133027390383990255094996386542751780027693206486515165528648603523229395050265164168316544002855092616710589811235209636084648779439546828976438405987182815224506823347033205705737797308415695435496488778121588926804525765851679681624521477907618065227138194601211523439697342061268712082284461272665485040300148289447880158628336113221270964637157912062840175170496912292905297454948481371327126511273124956529560075607773940329968669604393694269836103654012452667053853595950869605876218090747939745818927084087723284473538640288858164499779697679607602097708062650093926240243341098977751571950446565661897265203028751184833033854272587939782938203278986664485293129912077358278180079462807273676750366853259192972917428123600285763313313147161083502318920774776693820128268879801599015242233282172535922917794257219303979045846191308473276754401384724962467507060850129139516946319934149112085416201668113962726658072355154251647775185709601307463649117060998218530065102674706291476544851372027296670952996176822919773871378210213059755528584903949482574691791979031099791680128431739008868551627670295840466368236804137585442590466884524512193616283077397501714390633500383755256090528087188227782913435576292924203748728435578755208892464354627343561750445360600078320143181439883563804389047452787547969448342974715813162500085198742578740134481053504923686491324803023127717986833801911229956056323981522841955308633619184826059930630030466882825826354264447655754514877078602583467737810395706961163210972442013004085710040291413525972232469974387917710603452046631160137314869228001283580199964329678560691699304436078315818641666090997055996093913233113222116527057798438477763654191838148940548488189372944455141325381311493872786155022424689568729528281062336820496014231813511207082863992344926985693405630757118811069717649882448330302795305834765422083446538293724862716015838669806528742642308148046034174525057143598229577407395462699611304271364356826648998357714895193048234157057517575658273371490899932635696963284190457973509485318162422770074792307443497217531592281090945080052825294637349585444437121840609546708110704858199603138502516109012836120749080122730053901499589231116804863530388613899096630512352394299978755689404147405046686414271315723749425792202249039826239138359249894144441621481539638702119046087669754227045241423243549163030430038005068753136824399121977471768673503944652156808045982446698998632564881623426198840288089035392559294659319870847053130712053259205140526876567302314960653062588369893440763116367904510519363667726507141541052232486548910487312055488207510394310104655471269335832971837622310921193995637134486724639464672724752084763221311277599681074528461515492337806052732771657949061517193508553134433022015482916564733431094746629010301946600369740345683212196215675242787589612167901298471324507981973236934026904753773817494429895043052952659348437902197997562912574912600777418781601061652830953412152223184872354902199120125166559417105662547611202998614498614866323480381570410949460146439890320859033953308299729019245598110113522223856470446941021222087604262326869179591690987291513714957324077424812298994514048594675584763005836994204167013201879587139590043038983784528012525132280126892337378751322952622514238858115610320706461509788354268299050746071627444768194634669655389950958298396446452024641147754500906990945260454771713815162781832619122854859977707345630865879077638436652307123184180863583516027972971257313591108846877575876807952068136191339244394297755521553583586439619664369727045873354200498050271899636733658903276996226087530690884685692069019167681942872717790320448005252614783984382557418888209987117925481174812558417782471566448554848383619441754010788677548427729308437778825592530586951053296057847606449006217373065643393043838485588471852597237330083888005866154907639708273277717654431222285761261887789700675588857220186603764552549566784109187647656489928639945014474532821859043908427746402619046659401540116808509012998048622015650525467028807401615371726073826205603361174445424548933492606449202696165507116367045410650883224499953389589663154980863918681850076464357630202507338370706488211546794339387213590161345008077913284969826502398671166401269427024471030485845585688028270863851598865684764374084048110207964007861852057461360159240685791217890426576653169852807648801211146082402632021228667455331176750669442730925426733045336706059507316977409718873149081153348647795412336868134938995648891475205104274874804697661959535648307454345127897105103803505048885804336010930803549665740918688786903219144888016055294654951204040725074466190884079148518769699901250690242566015455244698875111289397861181530091131294015726684749687054282416933328814281480662157004474339445835398763098191625567532998794415670791694752493656562184554200026951753705552500615598395880425068650846029342176998258080644181619120581203738092904234090255645345570118816746694788905661976438942300357011807780445657636460809494485484577065997050808437033415862529416785592162707964544482919418718241873806755518526787084774295260471787060146256240833162817868616958654400119197529635144291248745023625482211627368786953220350409512781174027817318397610543320562282740871472278994023441176931693602713664925442653455024084861659322531286379986414349284741249101451189618109010597874882728811275330737852398158277794365542517366144949069764096215766895771729178693124212503161374191544480827688957720941299922252789905765269942779568725101592433755086503033137724517739224895759749203927700568537917267154631005707769229758683005926697709412069533884810705441114261607116873182524322438645278644016380690692885020651886974381411868623934847046349790852235473925831772220297672305913184118900617347911311498050023430849233257388718183171207598865367151077060229726061007644102672042031316125319522161436674022712482086504379420859941289901150994230164823365787762811644534201150566469751082849710078252312418893391330663645513144516022416102025020145592139844172185868333045234354140330138822942150847962099163322599417071866575617199195248316453942874817247360644704547688114085603392631270869505287961499376280178744377830592640963163743967804955834413420826584647678762022832405011211788471307524428781556160642452021372290461783032003065446434254145377430449924878660931220809106344499576552529334518340326116838128238499901299098798643226550744330884302637003861661334958237447383508526969029050416118170473093989253088606127581559789620742480637470970797499155523910069253566483600824458455354586092247040745459221526864422121108029820362016262791311858259971392589297747331065864820571770754109385773632070455417322536475140039565906244620372028916784631751033394054211971958132937979010714614951662526259729968266938105749201757666070271129495674148620830988107651301843847934592620573219909149326016941280440647294529332770948573333546211403200877076882391467627665489986406966583976527839287588238552667971303406341125833764756331283811946346099704122451958215689430337931319115366868262120608607750576302754963144658277975753305973909529938464508284105267396117899554389287272897701866922915039909900334405910008321234219492029028845587743681301154455252471053634091143522120451575010747331938617834395337322025487574623015770549773350648298601765532388807100891890188943197916300811302393604587980925089372252711187534494173828897225254461915079316818880453431171713815452394008954175158842757834147778543905143289740045239341219320470518873404709596333443192668515905021121258676007808361312943786665314303643696038569900824235146381393191381981136158041990667892005752235830897925440183917129130686288996435401101772226956470207136139900615111476127785431851863720957056327598077327413521963304091908416870704698624893152920835971179224843106068938739238936207555459055096951032173826495556557809842267462489872172904097090580590613763814848996473999651050722768043942769335300525812244007012538167005869085710168211308010116128499479860927136176408841452318573265397948351642821714912943686386111192810263521172197909190816031938705759379932063374715725507667884986566945435438517710257137152211129463062812639371447232191952478682564744202141719720004662218619929674573670339549111303359273332931295244334429611678700186520971164845336331992310767597742898541057200854968921600935371614000178208633153277834939734669061833785971904614709609978693203698824938634657779688038084059902210671459903232639925415440617751478954310868990341990251632043032025405249938280923925337371876629448018133822938795939795070300028108176377147939320165773136139580675632203743632608471680846190919450877170688037977064409533111560953895661637725270349750025368590503591171742605618490783261998670399710598834484437873124052253271616701471390840376178427017741332047809189534274412305793594433266578928886629090072699182131740026991265627701598763934092547196935672656215877655132166235136449882286327123853515564254251260485920246404757792733499240192177130807620124414950023576420289229333865498384234125620171772619494502691525787243696051004073073980135360114060149660295022933074021266643715317765973311039989018791210045190142421986206064337817873664808953596640656917414681769213960005360931258263391456575476086940938593564045804485027533233826422142733772481511012315024609167738951490801946805013754181362235927187982693356799654996694125798815001535360862627548982269296754715766311264081731554964279209620931984319368645213607993366657513187328607070509572919208637403259447117701633905727398105507259788835048631107608910266308614723116713290783996301324255132070488196145653279733282021316382622904135002170204811728765260100143917379396179661451710001102999539534779356044738151243713768545406971960015722216281500128563958222757741206191194911100663288226727617044002401535720460586797587551953793229873803881483602709314222717824071315344954973034612211534519911626624249512934206411750885751985981086510143569514165357858067673809606703215919143303024273253848701301416350509158672123792993186386113383963985043993390956429508739982388756357948817807307255697595239052302281865609468172757926636493399431908097412974014241214352221822119538103615537185738426581257549415057265050738827270405389925632240071530853755308275975275628026081798804033627544842224983236334909738191587939257975793805204719353262194336492471835702941238048726559312829766717139212308004204406915284032989289623302252390621187519615867047361466119855473481701007137982222300965101652890676602102542600136200659347644917232351126075876123898951112043053145524989285230857298219187273709808820058182153934389199269460645248247902497798286157932774027563059072796931225507847547663994084317045133551776388812105251015896443555711703610257078610720718289986628607869130630869808385252193798265161340276981931744135327741002535050340901347643354107849891218569223977036347098110805226446971580967305450666199450368498457856627102353797426554517114578602128266517742443989128911720460669109480227571483954464394352736880306571961019004786724405185543441955905195538454754898974748698465744253971121626682761110524800411090219496713848339623749373606010171353343208136846199369535180505838524700128577344590162079187842111037672731460905309133370589549293436808005963351206194824376023329408144248276337942161866511975394426504108872623391694515343546314591041620996912767102864828441880497095223259038669431983418379227872946772846727045013580747702694610313925210031999537783865967543406351797464216598119133108246364487064135989217145974997894933220226414576700431991806517504563019268361590565400516612003487405847090632343660712032438981445055546867616584146953078929930372593309351354970530813578456760112734562418507182127701988026090574266197283487395116143245796900002075761259314338632400123655241811128101854394054383856238321044917408401648829522139424318178600824112009373634111458241799872747925067362860257925422268608338436804874993327551197704371733859233076315323358153845436420343407211754578396427077255481239561742487219042527451441979503210856944485088887861863214919641537559648624332506931185051525070061751301022678810192270382921052314896150591876046227600830212066088001884885018370985540989382223235802061018198272437490089171651618056653166465753179385105506777179590105544972732208746282052713411493079864584103854407309455862226017155747376252923767340854367079693837811805179202903588762079457603771444631736547147299441736867020272875961456537100192591385040143450843875278573128249743563624868129030424889425054029660393740318931559440565186555737413340094730854959413682593774317637247225627372792537415193445282810251147482506603946199474363354455289379720310797012851774197233746075565288462908118234094163177549199575128246924564774415152653528778871664929793790292779262113465900730639049060225332957682696079041099587433649372680283073999116053795305767584033971941258570612677365565204678055858447970213946410863466939971245343987873387086825340996071320169117262461980705881347304741341872329241716651847150391079279893355911137644596076163914899071133781681517808885479700464022916253006650201411833191840590512138717142999111229409591884871200245237057235781730640313786436502370164024100354712505706791240051642973860242649014677217102169820215252071285046768583149729833403392433073504342607951413892735832959229207784409051984982258757638667811042549549642676815487494058843325674566453269892932906769006541857043156936202242437955952332125856838513382611671692861401108997800358752200342436703983890307077091554336698890953640791460145271931294657204110083656486603725837722453849140158209155731139690155971157807506658498452241656692532420200922437391592484881998163612286068833504428229362571045543458920141826010056162125521655440690443585878270784114750045742221990401917670639437727694440846917602630593222248631014080946317371718667246006239440234730708258085340834585418575440812801224431354757343335949056871016879559501562071764804901349182181177178246694727568591477207759915926933529444575262900221778264285969598615761455361729080447844475184368257491964700436214004585854729787304463721449556869123577499696843460396317613896490435110013860667153452871855240301840867097918564393966142867477078836893944023993473022637121230006381201157146651068995987459408327763832149293932039581361316314084530138043191843578307781793932839284380262276520941907263242609661330949531676141110608360526742381276656820920727117497886400891167203717817045462817715586476639112940207676131049884342059602462610716510585644088424179542611853965675227834040415788576513060351904776765442020084693444911772101677948200290738252428306761490427388054546721521913350837185561101817202158160876080523467989859879600120881169142871780831592786628383221095984976921460826286002135937252375731020566459848281254797575450855732108461924584185631436345520900134578302318199483401963038461126138358113670456619883953289052097497113103691334490347702682232332452538017688142510689598409391275181548583287165610398979670020565654371914265974604372784539001992458056928818569597599845177194666770662366351408096924756224162837334342873901219406282927163944203033978402896965144689769466012509101541215014269284930481603547189799856498408077450464227261203432878541493049650069482341606767663294029183655188397888025861301079809352548851510269693135561531053124619838490691489790806375894222402466334722888304732795481407496308596507741630037810821579180074173045548914159388991860373997534698336111355189616403024212729921520636047257392299177470336028087627413251019569817325169081894903340986226211226162184401223313067502846064703768721270919789166702288104155498866991350610527853140918229587788363349990704805917590149275271107964001884584965519972762484378396232116841420393152484008003782148826287666485294305578918990450913805867649303243508389855920834132171516913770521711014087716215686834510855292631636496453538790115634174995518524122080947282982749992467033254585345994177212737554251010045175680427585962865918691678571028788843256469899693614363191781372201604196441637169069972147110422914379312605858549824687890543921333852592485143424926289706910474087620286213740879223797886789652590273892496984282027668238251043739273321257258615580290088580066671937831374493199047358201352389681421018363194933544588219702621199705382030892369094573742818319619543910730736708671189204929547754112138748005459485400463018293148275935273955114726127118362351787549696413019439090143343765927643253718217734202913399646771668947728633721873515725230356921890720219459316694409412791585990970204179289626545057892700909029211572729116943081354406375229131373405636333482274115161140318004427860441828037692795997847941432525349277956690445556018176655035692674766677192916745182235681210365981284044002415112964748394148135329278911813442553085647936187685323507213215016203496155884070518067333537959977333777164689677865314815231790148769516667980617636323114359097896624484401153398623332026640177073621368439281502432086845311136868625283480588642310399155948479661134419819922253409693274303086640539381644821586341165733189101386793182385284684033020773513134421249930611593876447590453226006470682981974385769262193103025904470181369450014299109571843264049750148147358467911113924855854948913446110019375459933482913410393928914571166030928351999654111884316663702015888033278923515937112847300300464818411880573471819385311686460125224103725523348757090529811247396589939574073616340593291583027947108416526647468527528271695912147223104185212681838110446162714388576545048606627242222390624386908343958444147146290743640463159489457067131289097317286411206906869497945600621728293667309786427123982642004820960808783672282686866093225789795376566114611316220434455481596632322227261901798486142908639631354093567831795525252564095449675292425440733099019974434147194879043866604908075278734990319912601753823468608779732086864497017382620112193646426030840755768236535256101850186664667336867407610079736228866174394938356716282841245511368366205091684971599121493466090270256127839339237209774938558587894391679942093821348459028757881647263853612199102225882479559546893946647095223497128417768724286424112409855382741805213014818215559867687962127793504301917580095644303141789604524598674523962925237322807400653902712971633451203697598720884174788108562581410333762822212824187450087321291483420632308695306136290311856739179084359599032828873362612433944406526629847507277042234261890278460763498460983803867990603932127101113821322203299007796097115324105337317767443248706387332280894112122055150537427052541860337280862868661515760745829788861322206863858105581652587541705344924217978863226043580540494007349571586640025971470797153201236012370624451812724997682307021697140042830487564249711555437881045122728381819796796727703459852429945775776925914133008997616762127091180209161858463111957488754375628567235676311278756961583778307066341471388542579269967680216270541289796259239565112824907909696224772203410923915431886262672372224708246015694831524884895718738418209266828203858164288664319554954529817498164481301818859297572017796751206347352859818968207782157126291416482778708873368108431035966732168838608542407365260468863201960776171357558854012198207578372567219292680282638770184530432417069003536309846716398657950425560824144617396721795188036534875632663638952499541878499780815535684203057998948569167214939378749779297450003295826555700999773757709433537666671222822781598875146410839862112214578819688818174441667807420377645918110753158449450555870115544109069748514884968848901585622574728244870989340018730361494939871194636909548625912913271055497143711642639525232327826767479735920635035893162024713108024844864164855597083381710144605733037613172145875417128412617539592029738818434204404784407306077119025306381817350413553256739240844690836292734574713067325069861753994937818994193669892281928337434449494304614785105199917320680407211866764953325957457977795533946192074948274073607799899366596496454306894008278382807817090380442486686939664796599940739689331431968704677269158567011462097319248850644646087254660948371110872396578476015892972643659674020928023643188824145360213407097537413434491117672851599154262567559673673226622923316777076696966848451803657919700707416201969735668613756963254629249951708730466976756124576562373027143236775995447349278450832188408254476188607466157583516131948460300448997545325944013271021296995300540033098807680111844165571772582561322264758638796257015325670939032703857561536326461596151780663602095958319278702796051771831112582807980705914157890396735320660334679881744116598578656034551152640560711649677330498025154437449834690892710497536780748297631892971131812298800090822418928502786151820816493833034862210679971240366271435171556809348477101932353873117874314889178441380245886456881979169847230570824352588310422587633802073789786814467242615206098030290410413394101053659009362698125121062706614658301420510341432739333159004449892577841416409930859464672254579058713735450458963237859203119054306972503036023072033678689920933557944945792914725072166805062363807262829579203887450236786925287557873350765586112867468137660197110242867819614895409989410909663426431280672650166058547614701949809953836180116304817650624328375301958071750115362588103126808846962259941098206906758112665958870136816197787729023104359979574630465053856297517515989614267385190017997484288743324168662428411992455722865542861908470096140347390953518775555367259117527633792044721666963954987581334812960140168637927555009332183467286582137780117386263521840660478893412838022744569759580519562623513108660177921033847213254098452194897523207288085796496377627317617881829315655520430495142968705114755605267730486485871207414511640459471601396180969527493849082462012518441818719569998107040774447440243999958976952600267623309657599848204446943563292853865541674360971080591200902034075751672705524320817256750362477161337113563649888424298379299855025695703444441940660256264208861953775954953041333790805551374391137948669975895058075560944302979860136781839324022701538920468235985001296306796401386815067730053415958770537164146628038946320582553214552634996390577428872918279081937274590872574207250342264281251415607275335031767931731162590161094833192826040081836969171816173072843049937183809217355725520752245065339484780360941687169327833965399978628699579011628095040717499814274472802550325815065703063435493697836891939674365388474732738915176415650083299733642844999833637342901337302969676558654994710035397059204909859570409396037340412869597242527423017891132564728335918648964794992280495709871092643476533879936621248424369142898756824219666075965106014883545990357529214623248169544288232363017830901307264857118768184467762184175334055945208956246468013102056055231950273986865017503032700728401515343939282935923368020649306755890756712646436963629677181773007223659449288384244007452855351290007416219694974440916220852450955099401020853723158080930881784736069048535657045841007972862200259073345966798386595205799641058998460217228995427685036922001342991658228285904555469640109076481035299767459013386184145226809104546723456256538893884112549957258141821524863407497105481315481955969482555700134019403615083694146272467373450434934466595626549862446559471411736174684535015213179224780261833996383775686810417515282920196824920308981675955026244615555084463312548326582740363948676951809004799496193840519911928475986933976658531621425864969864292635360832389119280544523287580338945906506457041053419342107682514962319960182482641212522448012044546941617116178974850699528965680411092325901956082642407588041675579397902899275615070308213839318288601905848451027720749637120783180549296208994673069572168171619999026223995340541163760035307112215929504672424197161167795974664391153204711039767317665619115127862994423794359280477304297216053761450801276004632170234713002032886729739081332270081612117965371212572773629824317325859460065224287076729862257183452648803084587416095783718161455952571876619848674218152634370305362608874640589015153673657565963516780002721358888963388001521745138462551814232168997090110377122555531275526221144639837978265345340147825330990505799613932168677578407499878582345678610348122982504745889357248420389738541217433744328504067927827116670476661170968013846900361108817118208156428647758373381398268408363579079173397901735352261854844542634836231179970259551462044563863155303156252257692134962402576118107702017043160395237093186554147124502653251671275553145608204326435696120475179791286544241957062329761295648277267026107211920409065360194677013447129588727439108090203261095151217883831718065631291886713447204645129957993618579241150990514926513367827122547965239323252383626669158145289942216943578033288468062510073957660231884594600965210557279907544657301634173055322193880048702436138293417639212292905162739846860213584022511114487260198241080345026599806646711183855280045861658332118383415268092944021196330410861581124026824285474173079318447589076097439946087709196899839364671449860266071008031516349176225867448510311446895320696372394054571456253686047928811537095928859509530093590696193656141429147461475157575400583997334289091023850908009123069917335117392426825206163030456456627468518904943071184110791796316070595357060057835493726287271572602961038030720265293171993342881731119074573109227140268779341266717727099722268625296475799360382761729293377109828300237847695452203567613641143560468992958817374384773537119356495479181311795211494294631180145766454355549862589256214637803115155850297993728596793909562445818453790320706672742621965097246159271620489928750664813833320866303633394443727085621402004264050501047502121246799191914454008797619130532006941598834808179989201775552004056090571882324938377115173297446906821488973532461084003738913424131625615674959171569113864870326281609263417966575506151336740710992519695299378347056970620922489320839152787869572217805850107038287280362004263303484922922942319410888691544376047904375316646607101370612140819249911634346893871720357746971379972668138657790425818437434211850930121607442500892345421832619155031507184026909103963983256502977032366305380163796286769438240600755897655798355951501391139626406529193673969018574053452402614850733337331878108118615822391583711986355310104095884398408282156019412052154859413891599954994274343757359005465816492028870933417713161034069337017347667068745647761182336578680440805377980626010296785542084604888873471151514245375556058270800141093327665146205939644466483848385211674352604605181639155048287790099210093060394982546866608835476927324315836072751813384874786233753124824037598335723007962205086351107756697997090982957070016542195263313286960440468301573630173835310059594433359234164457119712176006079640362302833398002508465850943186851602289121338670735801718863788308866902639601410070043977243786479904202944706292986447896790381156590023072243786501383134773969375002139925260479291717834422351117129462046970874316614084258635696135856730278936895870962942333587988269974275707141272211963230558195714588739836280095142006391618139777138662699593946881473482817480879614574274123495364308351392459935486006374215946129119028910674138528394400221159248607812038262541881785808506482167452372719374646475218823114352612785528413726788273911500082243570884914050943170858928376694063956895245338254498885549547163294122906261148172563884517294833090805669416841048168996575273381521461104018809180100576574576398067278747798916200026944927181459273902187104471358461516207302767669887054604008525342508165741761713992564575465607517991313738917293080430663903392206965256318511878940233144999907591974320568053261520318566881880869949284844151988692318270623257913591648482039388132753589292683610747188591741455791187911237484326044956035439019140519659812705672048228760552104085538489184751670483946391345037596578915336158270392604785918302603871666580792781225686527731805751067133205217242861319508785615845095375207472798121672558064307809335386003443571756542440276513686266678859079835949384050591127611265457302532559148678657356345399183437636968874879202368997722148676020164938140601453948302940964098541758799258411279573809844872806280667817616394543019530738923457550970711927935622356361148915659078765493505082931717999335903175248323003116149852474194991813797077763356534693258358607252849793839095571938418446343435815046810434370307870988627498573792163884274687860861250582266990281933026186730302472556479256057482785000710285309535227074916346230570627195949225472827178577394926472211256994567115871387608595000420186245995742791624079229802014146080367513639766682041130838982199860294346414617103426841157140734330785980109721997507309803368432306279958319719548912220313865797409932128696242515713802672312069384835726482758859278188070125081872586157303120159249805356719013944980742707583543117798714482317856162827600785322432762996605665953742559555055436152954817832151703111950700807066891827155575220436943968118905693414887894952239944598204233405000125241341486942488596403443411342093898577710783846539079006103576121846643345942402998493671246803179905590278291404499152906062633759650405188837882036900642584025601323539887711337617751277190426472729730732916365170590525817203582487797373122289606203438262167857172850504224256315267617393952297068845036937062268987020745554786197583761763629263189356215821281481204734584571926862637756803412351894031487476464772190642631752868991492819328208439443117311138378107929812833199552897097519495732493722586753109896715907581077617842030712387440843919121864875709471321803815365631610249928521348500017219820838985278330301402943641623713917566181747428153006247912287661687351421304038353402369811649743985985986352596314773083720811895932653693921494919127871149636603738274244633574505779234834231701004213402063493612264930901682357097600231005195440457330973497093557591757312048830561735498894314197387733023961054738210673319451901153625890669889559477774670197841233604593878140208916789806572618895175756955097252420605354028167659142038915406102663385548471016452709588710938148563127730571991764731752636192554629674448725106596698330446477239516083416466840333200266811145263883343692664726817809788028783218766978249601628037152109286353958347386482953570838052350561396859413753941547839138280430053814316525665916615460301505112182951082706167281190646242181559893794857226466961528816622873767026251024677428612599516376101403053721416298149000482936670488843778645004949770846351232606256271222833027238235328556702610211543480115851477654679398213947735254618034373044312223908810524222524604489173626641119224623233572117272316029558100911737205980298335099419016918314032913299107307863888645011451375000370776071644978591511547833412780550851730381428064361467971092873698233518585919902589305548580422348579644903058233056097633205316815660463639811304811122847424859830681550173076421413850015004227658227329002105930555143603320248508172456344493565225333130360122776138757336522658325703277041884701171420066974776266251597400955068613674981193747837788471450543035035455277580052449151842155722603273717937902472311519952395230189698862968925006010678697666172004334688493424086006783527761374930431997718523367435529001209558194134823284684026943427253114922337906311665284456289753743341633282673606919291401027975537547651185179952534724921296969454488161939358284778760135304705666414242140988907129004445302681668746542733318306102030831736319175286086319387357502275737281703886532798233375251188944225424912951082396824282021642663190330231189205811969898667050521606913502431593232178472924646271147970854344705539806551122156497411178034860085865087288465731718778201890992045669746147574586386502873822062241114725734157086149031325794359081902305742841780097060748783933238420947703303405186144024435495374627912987983644281438390624494107027498824239967392763230086443391258043617709554871713908379249865960765977463526203240235188556779859988328473338077880511887140907004577135184973296501043630662461606053057783540555406590534456175346185494025393943496839580531448244268109757545407778075008207044856633842758193126671594314986396296285543464564502894720431294718019842554959389754970906879880791920132340522405265753596553773240263601703191965428793218260082105691674930491461371217617244066190970088233434717384503672940550711371519928482503109159928632918974524861663671600153954508851095379857860944504159414721713657506421329566073535379640653869214340638223278963474499025125535024043689913663214040232071391680323323702881529508768369533082467290353179760719448337349917838228388294686104504686123038711507971212424741612546559480552699514772215396436300186326931544477631517546358032334488170007499889186819615873908069224526971546455156831395824071871901955823449417581703899388817489529245516671439645529347844871363424339437986745038701609922450581947949276368241922792934634818870921036188357832919721558851969153155348758204374783974660720975500376984456933692543348177118688291925336816581356790648308660577822576362291691090136760265674910419614241351749635267543845237989350523159595031767587826149522528228418760295939035261974478484984319779687807925150117670942159613296394990235993972635853273384087943078023411128851823280119397174315777924049005120533707975433031118291483049936029613838043172942196160722907741161623391024277589788751955421351485127195126839078150481052506717694012969515639429459718743765561636699156875526276265822517567492336310165087036858026857692705119725819757150881539644398666025658552723841893060737257887599879631909618577497771898491347256866304059303201890301912312322591706164169643221629945731079778236959851229771148061878089770757719287292829236673032583035618116026024633040797410296973489812043944201231996957223265695369352926381493594328339899802034634022939595139908751248182264690940445265090704452083473313054566694083206324884487619544968376973669842145041754813936951158711499951152224283337799438106028097130776586935635505183780477192449631196606745198582592698188108197553619771066879571456695746033319547440452037998578793931337013108630963408832520462920450936498198850743006945178492807070706162384702073042963590281075793573117056539605823712197491635306485644267909871376232719675609917401792397685901259623577828587512201343266916902290374333403157366948457235495372532849047568948812904921064867646841953670305746874539781079812433561974297978198298133817091016239863506294170787893459293650580240118585983819249821943467753115576678466665998941888819131829645835414548456527530844490941002703318419717395419958994581992384716374962887601179110495607259151565809366112282336331731642483150436570390107486704713755447303279123821959170557250783971055770628914600240728490613732638235326030067630767123684683983258873999885785736523832805537511842826701504210813801409809137304521468291026009808396623964887236909852189822587924270456946115756579015580952306446053623017648514386465313275291797059789124585784446174184267111158587302990793818973910267903292684881903951039539439209290033656127853301449425781337916650619452717920818692817102555835789608385561836248965332237871366657792733583260027153833548897812104032118422502565984966197918306442929014014461253112491906421101538913516325062293272203386088806607261259447055464756060098211176157466151443048417149499354775698141910483736935418268703865316069722641159569501004261630462359964249767006466657405939268688729081298443431383792083664167700002203355242014357109374925615958660065753772157579186748396682930065504078743639036144789946749590928065239643876177708232826473688012020556728111232628385967528774824988017262937375843186695376857275760576291548290461238343016977471773810366219928688919557033283180693219849557922410129836652183074809164908620191192229570502446607686785988443505201344565939879471131301652144305070291221746365552239162089118895327198326172946977276422895318695425715519839914471990747136605822501828549200170982436191833880994941829044281797191422118252304345331436028375505714191852664405935527219244435960604067733739446386733948676129507680352814455381513602443737089714323584167906037383237612741530872938265369633425345116703342600293664490396803052565061904152462369021577640983908574482648963187523309410377637562331752817895804122701903010719168480449083451937670936026389850063965693301878107508876843754424313885997648232241532040065702673816746531143450079673772186413555916471508562032039436321228906058646461225312043577432403797079389971942814175808501090266544945979563420625535522039965850336733232369063869370059349184375912085646727508922236797678602758050714335551253634358683387953400179946768731073461819928665494235357327493354479159511089473046863303194564621386647766713156652034296137999095172690164032569974719230525869523406926667447629039625888670302162990436757987531576501300435282811262387646109191385654855653370177156332297580660699519860650713261434919161354284954022902471108061033125680409848628792931369779539749006495610329083979737883827944294575212438785518153713218721164509055464130743047652393093356129378837263924399701589183863790535832734461702980354673843639591790048701325945397429880866460059016887222944493762683076993158250053609903689515975784124615103623972619229719686265867529518972925323912197836769391970381097568805340189792115938514083118025003518862899468035128854711800605732783948095193740573701493493692267513666631639273651318031302269696415746947874999970674176570153495935988971202769441351920751899415101581246229251641022388083921087711688168982128729281544048544333538655199326562841181522160893421562391483124770536234452777492194346868350159261437463535900628928388501398778542933653349217147532894972863329300789270144439238433304493399366926468648428428997146851469917450962300312031111278722957597647929693116868436276879528467691381576417824829672756380107529581590632916485817430219157808880016749682876974338724212401401174217421366831364823426791403272979536976486115064035683427348554330919893172311245417847701239624139134770389552534670804974429459695261257859805515935963456959192061676191571179002632187620593950738562563226499803015958178732378775534981548176507789687159940558127666006036225411510631457934881763030297863211052443962698368050421764979603997367013316580028338328802027630143480060135202204485375412707913138629444030816503473329630179078528349743329588735629950035447410622020955048238410565341387863583632356812083234959906386938067886532332933002057771562066214148355171126715228620690606773196862786902090787179560937325428246888041563070728064956205229328476454635621756589320208711708654693526553844963566504836774049578770854698134051128473005488832552773370664281120217299471732975861741783735403158681859560855516696755989896470888323357528071691943644877962839967289022598594326576318790233726745352285015337342584783850204908912494337886456319861214733381467816158038137723399436468303429903996938973586677171713071330866438624892954553046002672291280642570042288987244734636620067015600693132577931483872656062691844421244588008652173648526411925052311966722395814652017539326676374017925368195821773123150498654562541334213087017695682170273739868261759074477567229931909579890988486104489927179603708857136013515675614399513846191675237395357231271936413609086605288179381295119068130122349624984043783078510981559909384945610929072235684969241025825891366710260379274639687313561712272620533351712573488142676188660209616667460967403035021453917257255885630531559274785233923365879510922444324002616176563342603793218890119906928733182385893655898028551031161860702102247537811433954189968928606177736748959652766686616481502570743473719921920961126045840767874764687378385713367927644929074931210425301485447434500484302807112951141062530206330722025584735574951620366158805564780917272110753347602420990010685792898222124278791139765828578940771137725104934742651089689200440338502341535383627838335540210236438143173953366655532475289025479173410552830916960596223027660632866623074727752542770412374774087739447749286721181729164858183625985647339972102409853439196264324950819679632746258290752272370105567628615218654719644631593360324879735610820510943541367112737924489460006041398145641301110663488580264145346338159086348976057420008233868798768834763276899769295688289650793496135700254551036202430663405772607971728345044026424173339810279441224029189379752634392309402045549651698363681773815122774937716205265990964570687223806883495753031682414044643284148383134712213228970492907137057774535675923665120363729689165827917550816547934849870560934664618461846131714679591851065309221355439381456608682012543767661816167903494645685664569597330127678113388535101583171669987234138026762058580469230647859273013647677119025105801626366690187019886996023371334277049430082920945706618520015690875960765633373041052329499623520336143086406817536339717677328487303468946771668307459385957656003745803202016540828895403836524969451132503126592982389280441616698386789225280834327994955872896854679209094875286591887202188126575204742696924469603154066549335401643061711192938753616351709234862361220223376104469175129045782791903889581891242028637925028232515695735436400624213735936360767683851717241652557823468301725376138123812220178247764755252465626444979855589888270019263077318289592743720000439216299657422976455519684346708011084692623234435928761957002472999962015673332142123886698733886727488495479846541256717211816590510703576777889919982076450236161516554718951682877025589910199006825308081398570702219989531814758377502283889765505558898261692907931267691927435735629078935123842523203450348134538639954442569235016453903196837651979059778514334994213996653530523277457783516629637241368527073213578515624378646444628044796958184864497757151891165577844255357547316269722189117484254060617614421265380581068058212739197914716438400925166407441265274960547628594901291122451930862650177173442149243159037608647407636406547332226555543573977517637885734086939120826887937990377668507946865951326442930421929570747485790947483414025493327839739626907731334009186107227167955266996811259312498556661251806592479755289359604063498923730703799923231592162323194451770535946578193210985017468574916082516723558326956821502915236035298102238513703615241213269239501248153219825407465722157996690560888830068772802906150291481143132591128027535436378071225910434193383110722673066660700283897710471680254781028148040209070542778983147209538230086831945369137445132095394294669087864700985700375494219317680868342717367994678641356360535468461533779332578730225111186502869992573171861134656177843149862994767463832336962264910370438451791701554307663678367946179621381089571288189077593440077942488444183949237681103514942155788007178059080593160935644439738815479230628115899817267878487673146098489244061550273929876687097479227493025557008149614159486388529208893026896770017613459464383845563923431088606629530673136855854865412408831288367724953176005167800627523838243557699683459515711557166929894041676118817608985582669611508533112754451803061150037260088722771949798440578888694793364163124059949513353769971277179694006260485333996279045166243372394379531623522832686236338252038459529483737828920294545903560342039351688747599011484223462666364921262451549244559436641845577307695907245854885146241680762300226493217828428086919245782465692478298112515366848927673572753667673240380621613153038670447825615251941433613785595222871451645826866239359731336379832747728138443812528448127950360290748620653817941528322311220894010747979387241083540645747293130319931454935574618746870663354287771583839711831623976357291425534289587168936287873621388094052638350806126066479317963030509732295469998366100958190624519778559319570207025097034049402274421048506120759482712599706207698704915986679142659136220769844936378398165904700693782802092087000568649981741890695587827555212081167795330097258111541423444556122091354238422772819927578817688890325354282336501601357434115767379735755237601742375922318036893519777606227180691876292881086556313480647276265762877477598053076814985152756529179985415963476300299945984795966340305360335702315783970754916676740443344748129855799652695662889979344864591297343706835416995909171487121482345316235623248312956023809218182141620573042996848869650635491932375678469089752573937247383679625288041923766381524789683499647884312142592501711389306336034143675938674930048939970825636474558149858518429367793328530852088425417683170687889674638415974392642446137250006174377537632969508653678061930875375615526022276728116416196830710107102225384452064865276926842108374136938684535630135796796581386820901235681546636280773670155582695413773952584106753634375543732814227404015693524017308544598256115166459087817180659993962674898991265877643049267954890270013400397212184661409231088541491419180985132232356281508308952872953372289405817498790243340555574597810259772949262565302732906683993126551309798417403080912935651716398342617807990626550397942849000429073119314137105843908751290324491442603349040226048141391535357093922037594538601340903480483595545206772299014923733805032429483960583785369472784193897470489745045088147526135331780494088502057855102632031582034929103873291283045383037407980741733242475254532283574793232549658907984497615973289336760166153033678583895331386517824004189184377840991052300558119978300721566594394142947374326269563666145414109318723488255023989954668071325524424692865594695988641769098266656972885255150241899544627612039932851465004397958275550554699292541961809517286551913714794911468676612061340469076008755800226126521123987574625680231900939965440270959448731742762243143873420701187560316189672301905132514723183654111581650876316337012491452602027881299343420391290851710242714852841648084981104735192555550742281272023497372160782272151039259373539957876566914522260739611742002151034511990481437881712834485040058908498496033681829917984424548231567003381268137810003350023754615129665602574224589096269801094413795970769865940359594606624816430475596155664913028591806388968810267309300380626769526409082274814974760843665674102110884482113095572528124286438714690061664097744218221887528945706431994944647873177770097033483779793543115459666320468659056041031280627340919441002241002526558291037697958799198646441614640789140038364608128703765763024211837840684811766598340661010373145398386225043352639658258938500434733092575672091364739527431896280902516611098888312249243914727370824390901572502517948474543207705727810683215997174190822755092001189782644572010957442350119775042672979035198221075680141961078212186074638197974974519859403959959611702451676696814923451514358606677377166779554234640695826056556702078017326026733829175504710827268453728803027994961510705223187367486610181760566146965955534675447593424965761314888972284481091177633097118041616188453330607471175125355368583072127016389714254449249505366806539208623511615205703985580938579276489938267658148891647358675013167598484093377155368945437824064718626663747652725610218346216403502852315517047367945441308949037301284167219008348987632870253866956438397630338043614978925872879191884197397596051570194046749533162300865367356983544477949072121668630254734947828742080807513713013457122844202419254558572775475295670082573568633921687902577742739664845660998875932774247255242585511545313897390819327568352935155869246249038093635939647863138582815099175622934200485004735164568670312905125325531975943822652320055637356745022866582597957850456319135465439223853103242365963053466607971797617582878616012882326073164593017029962545193263123096931230576854414443204638450930861470271897397806222300102809604119014714534090737855916836926769653048273960365715629624482212973521010081666562840515143248794388886426482786378166790836266736503613043160641184458036086136509096420267060262326674273745816123661392616095658214431877710943981259741180587383530718252111697349516849822166647018678912690910470813405317733149745535019133905451810808353713631702839240235534823001702058840205026629393015783601441167170229778524010726570201262980356177895834405999356056195485657237142795700788327968654144459735558422697768845489383226301058426398163072690645454336043962386127367893245023063293309183289020153837201837668785827136466200173443477474410605149692659980208410230037866958587033891249436662383715638404495038238832415463569700857363621930628936887796929920498212607058856656516312254669902982691606752179053401385480139412754398459789861655329092527216213325272940049350923999616387417264959395516782813922318153416519122900870692587578720569658707787704595256370985178342870045036355055140513150558459906331297871861235960170822376517946039518797341695746866742157746271860885651368829454132198311111840111757167539359686006448538796862219477633410737305931667531471519032869110541383137729863245199844512605799912491569733022258064093714819740106332179267725030956555225507291551979922047602937196447581211403079833253259111169227970184838482593888811901003896883666273358753374713694466076002541010606974143529837238595453569306889392018719544696218411984458363599013704819475001743978616392894658737764625986484953936420304621413667514853873726258037555445561524458774579912784888782615916847988458875099420375921047154671157497977383307342925403570761120593090853322460456736884506137957627116892384156526932039387268313792826921862343347198565274197915191053414430792759575770715573525646211418088882583191474511099440475972607281680883933034482049213145214715762276933850623632181543983249497379303578188642221070194115884646106405320254897557011838012432474421163382810884250454056065685854537609144652306208316976448106992916515546536302184728524028062637950684721904944891039824760987782620428569513183559118065370148428247103243916826401318822130915089918702890568633147269041122384469645664476490907652688011866742429752753670095015059970328529207610606174129525550638151409091148237935741265518809131754187135326392274505996207723046030336634366494233427136009150072199237299338489629019403773749928341965977026686754559434598412568554349877261316402247922509766315284187663567610967509961234737141160023426590570738386504867696281140304643999638370055970224993846081749375993496442907181223578240004411393436039124891722973584429864978419295595567699432046636008001796385845914441763157002247592479280504538732468597063998795288753080880227136649177600143063848355038180746526427929969130575850649924547522857119457831146327800626501586213678614031743686784643353066163519807633839714147889456832856424540868045611918882242291498035868175000271101014004914093156760431443076810076704944856672736864592380683706180441101639631446822643906838600195031264832365568410486243962407538570596816521013690881392815469281272672722551857394722311204377799173826188514513420388265490423788059519042281336889802197144970523752313869895597138295039488698334809969187411832672470175344494786533859218170860758892744513517620691980714292950360790408672369193957175662999479154369560192303219297603699593201747358320346591652716713761720785781951701849160000969796585877348287303210168329380497290421166517064670920378589688990599904780558989583888597624657515811495377477548129457829321959832703427822037848566929509113095818696312521085746012627694752345896488752472820522473154673276439612583546193505535870666735502636586440215096470280998761970735303641227468959666718401236409417008566796769989845056619757779545368362896685080703579264840025747907634323114900215887945576069463835232068259403327263339326005353669870640510348405157739851118309374913537469961692342103954451799330782860485889845181335111123172976769881768867662165530416115168384188950155382723933043080350963469252112051190820959491643836507503859966940723353615796163207544004847171427612825854658477197956019498907617928130912093595306692435493862208085364359185992889059083878144649887192043148977294487616417229880741481098181419187101994912457235495835899104891429828561495251208733552970145267071099631749715797990685767421270269636395017623435211932899890438610893675034759179278002248509084169710663093708989925279171316995805407978747190083793677203749172363619438516973942499959231165307686650975858536434594633649318779638858387772695088261095278439463678195908244054479321691482959082602941025810456526286400224929048090773241122389574942407797608349897594726085032314678386481562230481067458276513440202302564217127592002143498114501012608332250187883001962415734620266803148843370099282577495022406147932636401165346565751353152030940225093882936799679972490435245417689933961326942527024810653609239785680096849184917780410429729579285491864284945050358811785669932010122815158128500999045840768953308331844715240706776357647872454199883529725830983690036904074533634022986194406563113227874462214171461776120053802757609144062003973639655564173496698514722238733559905941930082609157540283360513734539998140198671668234137577699119220135425603346921364357534140782633260953223382641773446815898592241617847499126375658005063840172504748690147190289032323511971270533930410154178294090827880189695427492004518791644489949051025681268652717777282173169505657815589189104186319390247264628431056995170664165372476685754092012871290996229148713116461233045598643868471373437915305184313859867849164441455014680224645946340808752037564231168535971726094723358984490562796325989089013340619482275801921911673101296389044145883947520104888815389356446072108408149001534236983879981669557627701932374661557665200150110612840348487315120837905160080619575744390060849719716194878351124115715717395383248197643287861369503536709115067638596558398943462279006781149200025039646070648599361003576465175908227249242219118578467747429974893903543863375681958286080841625113080865578619041489493617627501884772576418764374213289412478139501896991778007702568276238060643223235429911375325155027122961842070811773502445302630940453419827024790238105044513600736120363987974307065557073933133889556128917045341143723708379798200482465741398463784565040607115717792032914970650260179521482016953287033296235215405052171698167736679677508994388650219955701061238165414086108455432835211828427510219059804111565340134411017311696206767666146397013543513748425708285880913929033316288588584059586629239846481690566712163752075960095276390222852390052545561092381987482704350628786912442637415221386240788917128929885562928984221363091333082894197266396486241939730547579830465831510002628219910594182629863544856928941986962825100268841325287728635360465063648820986579912702532904432077901720403180454326172079561240754203202498840138469168568394695070531844077729360444011920783648057988279232549339056668325925993817560197066249821405204092260776767399614419020089025334353316757089665424111188045418869774419006225898106650352620954117931291092467477482342299780165167842722197510319121783228458244096507337037631604753020933971707787834435734946599828780184165040943217008333966239747048590723399875823930185339899800112264702353642390649129005162847171027141582424507021529438276219551265226379415083444195311249399879666179129678560790802239893826747354916751519369971471615822482177723692046621346060889267284685977644748532197753036838343058809355378965197796483927680754596905832342289810972109040069721651012027385859439698066958818399515180910138350357986169313315523947182625024140400077369676085966759267250959147902011203516398486311363216896128340812288569379557486889286772642775579608534900049258994884570552859701348651312329292658023589088418148114488434369759054623467928721904368109310067676348551708090692000199247561140847327597461143542220344830694082154342624295092809389593903118258212598594234977099539936317461459570106778832527475189400188550309404127354255501982642377162383228015840507548474875745721872815385359915780337139591119981270869040364479685537628111943513556728644529404563169331078125123696469522063260692369216507574727233368904729136843319561339244776014331015572943295636803373234371469235633662952954180674628516533927904135216952886631833363984977806718670334066301080601979612544871286551065508699849004804780412282804218560038548131455736910947656608843846100674580140377899435164838520288403654694863035338319810384733683206540642495846564599012507763871223675662053555395232014620057603721762573494314854755330809083575095456151613439707604817610664139872059696871152488194758022551081334939352606472140037069023066087761593489950302614876813608205245254858631841544711409029755267096031478395709280912996963940580054250415387346952735131492359630347784563869960554230694026908691799051861959585632643959215667066655628711113933998463226039285046494185913744685762109212574906598393818552589329300557750156969046757913015769758549165738161657787272312734686051001782617541313741232187549832088739152156889541157589766146186336194314747995539723959317803150475024489592937263467044206852678763705170976136559663869277162551743996198607385774357689788436384737900159611846537589406233243921642351477080071852676138565175875413364680616827938684105506439536281941746644938588888357826198247900460853009476466544069120191300346850724881995972508888645628662004586991929860175949360168497773814058683495691088308404843069241819423210154520714937115878482943676690968133720489386567646034960719018066125554419723412170624002822274837771018989526739815668864113545808021895633826762872349474570417968086581213074261232308541222384378840496519569352944309229643708043465621481596090618034714497632373926300877222756178807198600590522061525532261890519079116898151364666365771893680884568079803166058203946218216769579521280442706790883675316992963622308563794686367976990079264559936040633460151255409742425726638177254399476901834842639376419110351135159454197883747276644218235931965515666247624648687555608560004730230076634658653685285794231244362418628458683207076693710071339386068933541152571122565463750435538533750694482833453838194280793688542254511833082473308134193703967448533926736343529666425563834558260358796875604125257609045282953715087440461167675796844926737549262142481256978180577771157965418190119899803086216731881348310140207219620662202887387927004657634501884119011077942068295794890975046154899552625053191005166158659073934834296594591246531356595814212654377663124285161032681361018257422020444590742127302680285275230701176838399065589248759615540310674574311181248530625167943181380002754500055203466910406933173039978407981998929641437232467002894256131631149696004408099870250378457978649805783938234679354354649709960988162101328627141048996274622840429800444343082938066352781304105217548354165218084008455682301081554234513559651933120566219569101989685136709986772309468716654361633084328719686002838057508165467268407314576667555504079695766238755417224339538531873661635684706533057391706950244644870424929731615728865656536727069401574850158579253442659574581686486112400453447345472561172327647176923607349525201612864058979903814708691528697687580156203178885635212719310848570619345693630133687104297649963442082567067651242340735788291102480912967055271361016422613942901252501811678822161286062420552525439097188637639494254373474921331539855307821732635119985485242464751724722387069171680553074550979898947779176817285767250229350608515590980190615815548485614328029331348326285971055536759861410424531054716073796905615336042619853317678186495573995964740102799860418798388678227774524013489160176402740435953082813440778601603881111588688094663201491542958425827941367225745295709143422950076089875830091877692066040241240580431758332729100426450596841701616636805039180350777854548589931504271353854595862698108432581651598989103098564976800935319614568961220911198274783996180144924091161520983558732048787820732206323624636250199065478596490928541091093579950947373340313168168476165095056921221544396938390756516990079706404659419219280477925037191649426549764201062546657626913856219938837852886669431390419946390326780311461795839966528629093600837396702883355990554858965006600630608937845212086900009957569565976570107645808216868587695901572113392368071836415595258473756793503482757449067249181350017708003530100389903746492391152495820050852517082936247507837432528149089766945197517057127748921431411166596275866563986824429813032411316390623300359920726997948893006675366439817976308607979552575359395373474201704618552112442327716148601940161491588188456486574789655235568088503717793127568710149942538098384245024336755190501601614791675649411790137970402670978849577149602146361679137602984589709098004308625742390667631602422097486547009436295008002100154598368856621016302814212644691923396393535868472868567165692795505427569792625205813136804840147296595248926887136671944322892027912969145937112504021016124519408920923331581749588447763052764003066653045259553540693915487166309170388816603075546895011981904826231991543779309158772233025987367825520250626333824633019259769853786284061407323625881214620848629035308873443380178348776727664923372608310234499107905701730271373946081900320896435847682549463805328577885181737574799298214300730654668191566849350183817607972891276672312486875173944508389647470334635236684743288433333452961837988377107527789062351556430354582523442374668918676012231074889882210594311606554524296583849136408715498079444698453563998578815132167102713622579431888171169318136520702906167123486623298748090061239321650618431064738875206622365555103256154980042355529260672791443628604270738052680967941422114921847444859341290308693431616389838048605349031147645612100506008791771183338376534191984189960858276067057993194336365290850021492564035986886527281977449500780779201888628523615660423149596917677640239906261079293858528042797404059541282669237691494128803784257485388305658717155223642501810382279622714659523143967829923824418499415300600548799971194512489889352923431807520793260353008670622151149949176842777964631553619436839860527748245877990367303416742746505570462078646565916397308110299173960493901035952208662205350909425714049232167366492659185326865831750079294354722161501430651618654461260177295115116421468165890034599748510357251376820020792465730030920347622662342347253503285176403527885091556623890710925142519667101861481349004194190195757547190048939487622019242892988445068992896049436763282146207167849865986626222818831130927051911642823228966908685558362582895284075342875863751881446911574333506011009677606153447954509252780192883408895377349903312492946043796170170334681329832896469551691501807614687479312702739895503448863797076872262961329683313642052381695271467540435383317455219190880608428154001832862558336885645137925262400377802575024572760173953254693774636442009560542379951649690956755373315793390677880488368278577180297803874235392656500311835356545407696840998144149574554463925179576255759725180965440390014631516332978494298183413637721216689193380347340164874029614011377728131195263486820608316883570477209973665331971290085658408467260897704954788722892278448026492520337130708591435550489860880477672257440425333138162415387748003608959965194262487947783795459886155904112343252717062810692239083063133345507156360002713229322810447143000564680776125059954654565693705179620259223470887969138484988959727502362986760338113215200449454419273098318431851205985854009023408085077096911004696766366139709588234587927542732934366489127384361355319848401455623969580321332835273536953594228891264823943419120110234981469097843153353482626855371784449147098073916743772834579666030208776080995445214627863789687841250728153305003191809926658320268760329759516931248485030280557797704105006550340927543149998057605664829547462982313925691405220080604790507633252208620413641538915486626999833063326980112370507630419274632317525649446175070424761960483326370738065255414756642575232657110125760842809968838488469392702161156048684910865455125452123887097182275810578983174578061531163838423015434111698742882630131668041154885292689589863351201704238902165621226375618091564447925096232582625364370952067318076018603596385735230794042924411729057241779744567643981609226804861622207616744838766409832372834546694827479709211626375329583242948084609141987620385585004594519702141841412116796286335380011966305825439141998411710855410960869439739269636744544547887374820855065847528592386203693569972429921530853389304860616472231304950205969902742887360839041654704352515449691730087159352929976257430379837015902016265667881366618142466335204516039816664079291631721293816497670783344733321798806943965849978297740280376793544746834104823276652530427440693052451386653122261408402252068964808304660476275616585781358069561444031817262414309050256011058447755277857898074111266738792882860144588685666162876734675721465787293302128827873937102755749076576806341129707506520297567124137521616248478804472527557585829986864774731184578641249045655153112632299308183394695788477792000387033118750309761455471407626701023843633336818483428136095405498621971405916803250690264289267336299866355122587390617431204276545873784023258211304021414133906516180324800436346860032635209640724014896679326531022173615261966362204998164962568323312996568866381448138461617887505532583796634748738868277768526171125302271416695045749738446062223157437393935587636274589147375500151309486224060590623426671503927867381061360112898103957505708301764793687145948394294410992753296494447978213951445021574438903471143911217692391023658530774430231585598762350280766279607736582374633119113747026731528511607666681631140367717613306246274802421765915146125931308948599738608184762671122489584527196267269794995801977129418537408911254715105726570998607014549474616199488933309669411815078670932385037288221201880798232916024740618812777137902731213113948650388084374706975050805908062856472652243355400762388527761084398819674045537326153913759064835890992098366135440208057466411181180095102449127866898132184629269859547301130833291466620380664448501096737209332520151955683673281951403802885700745404070968134553264660403225523240440187211532968437574590730583570043825598618456522762063053140696354430972657816457493700792195695306531764415692578856586780314536966908322091007962313080843406866181158666757236268574788222599181662378204285538135262342455059777116519355363357079398575903660682147238310992532623338246879147504168711394354554052978024706398356078117372048232704727285866838842840586244508955447708600168871917317054831754184097810620738468824008649521684998992610698126996206804812961308600047660922859076175501726689683831971917052131659511668162790436094354688303746322618613525523978716867226180715445903461134186403009405810778841019769846460906125606718979825764799536846736265773566636581029690341337330478029909915606642561792765344541844559580753132176981581292974736613316434486749864782699571250145871853235625896908214652619161839657014381109496146047959646245138555284471679029880852750524067424587282582718043213666198669217460831943336810468290991637459649890718435019799072167671742949654639671140251223186207421296211122656126176546012730586121971989235158951195562243892321305475946600050233375913825302057604443572500657701715149270706277076882793500029556206494509658550245330006028884139963694903282464690110482646194535727424629180432336879464527247668560943288344175409517819671788659643489918025577663175869853012458759588380961970749957859483291353441754200051317812044664258765397645617425093606730946391089971740068628487867759656634993978940482692321599321932589956727321629747414103835540667524150617307976274768010951695318440360212609750243170855613036074532685772234016021659605984750306348647791936556014054066443621565391400600388180168399469609904459771610814035318082090932891642038333742930586529505654852035049315271556463221930566528003565509923882145133237807861249349476370293479940268015804253393193404127657096237070191012931788601955253593775821050411043061990481236747533548230034804038740394774950540552538346930250301934677687373778352766939481355637611077532733322192020052586685826801829753732716882156233758822782463383486431187997455212063729820316419797012485712928283803037699152935597790760290778900416129983403765174843029271771225834522505821657845805579705867521119658995298117893402002756238912885972149832605277121736389972839375677204108436442974382424854429634391465085427184460230971186358764837572200623080983616629663417266257271087843007757180199100742544998668611497376396887932525312809210172125243181241452260464180069320032344596849075657378462711062960278483386388447492584088544135945068028568811852358810118616786900142681737911493568192949817483078178708317949176707865383942839111198212237673054801845489245506095345303837164887588724374819141766302262300473170916842504123913774994375433515867152279746473032891479753153495943394963699210602995416191509050525935459334373623239491007132284118055096631621883566807378045289111028834090587048642963281143057910270154323620667157048218967900276123298701469131759927845114199725256609946724268150412981156859162772054305268753847128862106029583021154139315789511926779338586822061649034740971339221228576487215591248968331496839412505434997703263262189887190592374511992477548861415742661745246285561960798018079780559806595204853000490261881751664113178457674730283234057289863738073087658300294471266619895628564948283556443872767433464408778233414699418621867939047001093313133118080779731946163256531863854026520063147947858318219888684160994893016024100422460888694248828666385149909651046403278215302782491385302246759426880377682233234783851960380389795405480950758171948457842565187911982093865154988913171786270424268976726585856482425357029232057283491606973852463859477163360670248900984722335594122399049170756133280635173057370269751706550693459976791109941962713582064243024822175112711148015202376059489605544986838259596141169371004566213753266725296596116613846512011733207426631935012468744542023807006014464068266323577359715543743910614840952138136012117643142728076954641755139673987231035139061839338676937448723083173770932886664832372435645995239818259581603483781443722465935303910337254155483337307192004786320746524613098564813395746128661392223386920947986510098042328234252540427656767035726100213209354037703095990983728027376821046756813660586519434822265750697496089239742863610572031223929405329470672029312684023426143356091861888444391827254555065665900238471066453343404722663369137880415135382726673453396629646089379723017877403373165752900152606787125582979351070733060904728149305267356567506772454097312233515634427575425959130739879843182174019093446548641468354073144843386482359815728574830076203019008282321901432117754058516672460622772421798594215271059861563048665077112263487049959236263022329299692048189198570985463436461636415394526863686986122013954487343437832087808007863366313407366499437823617198160136584929804330037683258728677253905072711592153430925387953040584446639272465032977912653861091884531021221871006226823924482439771977376773490597672060323422073204888620512098751726423174637182916262732104152055224274431491318754878993238365196158814378572348804279459659778281837901620481885400692913230532785042810047803662332896452394625498977086700517326080774838128010256294458414993986506243645175326336267336121025971236910980454860143535455964237188992693228269071488018515001339539686882110949729637043735831062942017643184950474261848117764844918693994722994621786408919296693588045895627716489464606328541172224758096886926270070320862812433946664242485899991221886856765619921850289821897992157744171852052657945685138337993391491755408868857680767203514841092319726932320695386423513800597156317005694238636759654994494510533975738403807307175059432468315481360346264751635443130210604864736755518981314375239561511922997703606297950055134416425629312749000533796514762428491385657846565021239199445050501534336646077808188222758472852708312731919040026802959982747910127529543643968349989944284671079526724616858573937598726497058621435239983700605508953298449002011771238381943043995077629888852208922738369679030736939493605232289616395545857798382665677590411756829192438994751695086615514961337855070010198628685126510485767731039766852475095188124447634121432393757664870406587191164401487017415585074346643402867673230003812730723465215069249500253381277973098275290002197419209258960160557930573702295436562012219753213360594504697373067290311615337332431575110280048664290967279627504785704732002646293605328663385987099745118602001745709582707297898480937074809352080818779482491615434853133971733322299008722121727249703436663174079092755097361942009502733290996247690478122170924911244879977475567616834490136955299790284768422665845471709651068079263815583366760910554762435003365438657138234469291551840740838256397951560002172322636659880921788839624294373039908165970472395943485978885791533469859495884423182352461792901611921787243395155003278380211574057025374891527730586302366868737037156824408378884580649732185015574345481633092664958544896380556474045323342597951699903576668392848111487052780157445074020896112226270808050533431082105463312356100754411326833087458203230579128975162371446053598700094523506702741747884432443137059041264477871110311077557803788954713982838046263028325496569873753185136534868527448252418435032073285131370298810476383164508266866582166130645961239327919522474054241249252195856089063365195854710427179813379669653683267150103107384339417765199113649509977260836339365392559088083117506438667207202529353179783171502796313275996582073470447785297477154759839512810717630425678573180046829900370091986778293811341610090364838943606571070943169513544717765566315425731751926726328047868626474350864082612955539245494902083697867277155569078463312624201085219163385547065023393516226162053695431401075992696539033771325613061612507930694119832225017407202878607714697883069076768252816941157962160197374706224168310406288099690717011953066837575639376873863392970463513402194088641672295784564488441831978062794484343725008755938876971548555065020525978819305017201585650696089942401528993522886652488232840976937671174752564727563340715018458802406898351920705829505705074693966151713429386917862967775155248428228501570279697635942733009064913536650067916032634959574292905624065983212386721971663458399671490529921601951192265368118865661159532444403637784032696361186642706179348319154678711420350865743846893768301535938404329782587645735351078861971063287244906132427558981256390816612776127470482339739985247185508225600003370055190062995750310540534632683954360557498256099507304835253946005523818763023027159772861497866574491516845408651650521189187370322339993466794364666657660644950242278073448876862872075075976819629485272248984839755102946396484283887262954100046384317808539938199597797011908616858318341259181672175350060310340884992696561407764073264966437292750289041828983880119005178699142837505339150916960226395833729900332441677695698568990561419988525408660511763434174560823854687163324223363622854456468899072612605479637865668789101543059583641010143219602114939908571964518949275548370969917784795278620942341706845594124161383074949464639007628455751603379200215516800041945442907463848223656414011129508363656399123042989930244389816855448488221893814272084816574472270113718674220877697460391780734771424328708512397553343761038594872339995576089881565404436746814045504501202334732691056256093219385651987403549420932511531315946543758630842121438854104561092584988561756661073892698016886332392668979240485090845039404924397084412786166689142237029329104382748810129680300470089686815401307769591208602819713205941978394716702809802540912966501155807333113101274771986870703957925262837712246350280496169327231540548389733393670126821810193801553751556061043654805745354922653181613342774345324732023695940293329142277895606135281650767164986278362350342892102574487982826824502213638193795421494861210222748316704776622122721601323987316355556877543254577559544497077620966989878131008874206255711930847582939936337718637307177285173615905551603500846131687811957082530661218667870500873532767193630262375059272891842664611712210770726614468980095010184636179255922664365069107156207068140524429640356804339784439743113083862580015219000267909729430533088559415472536934218551992853535258094777479885481053353348548600478960624362824676723728272189824823972361525097041337911003131449075088837318724443463132438213210231150968186860492396072114740442999258835724541300369820700051563821398366479467871784887065364685509492520114408148843350502961728294346454219511886690226521320034795283492475790367020152811890794423307914934560710532559333833416382837852160023614219973918736336964594826979345903381879768037857375450679858734714742520941385002023651700605829841514619274063370123308210011276298275417611144026424331698304573055746505132174476717744700420035484554531862691722539964126435916035619489303370547237485339547260349450491804269753619246506130588418475758124984240365318233461871603341521447454264990827208535852341326744305887521429742529786109959615895634812963405213281877007159798922667487780316288203581931126127680408325892661519447216732078628502214419858834658086658054632920744973869450501761017307712799235236627172594782745994444173799508912094430516345777043172350401474354702594870151861023142217104577738195622960033455157823492897021144657103210027416093055126994399515173041394583917781817672774032455164055317339348976333616832711031714390207714879666073719747242699138823916825581935866719548246464534383738518935564673110772519824791624850176535461635224298063984290681834726115892350960568256922693075965528785104978008485834495673751561772352149598484807106016193062922215674066310742710448377833322783561932040607752123408870449875029161239380890253627333601350244591317326727689867949451664728607460955334210870072320528994849800113797765049080786085544542846993872454734650677777532736247156229798245111845271474653062402246346780948277113803882577108055412427270612815220669946396505306683027505906510568642984963766269215088158661513775326399236269921694012859512437327303604395586688064963034405677184237538147161701646133843385545829383246789254816967682355873992854122611715124306554548803745810323532432787937262005128466301171805334789097413935626674560825076215998037289624066914113879243314680076834234931083240778917892157355781132611853342019754770705817924839207150931347000797445263228157219982230071233645332394179525350491866839155488072481802601964780106630648660736818993564440085634414249187460258287701532378765982522824765492792382597038607235786485337793121309779476829018376570283252229415512828154679673749366374112219876599575821420062437279364986661737175632032619569781195743832891292898720287059042588151973188214282539364186336132204477288402441231880292388219401009469497038754018570978226215669176652320230358209748796030649846220164297201032314763500557377947068693053786842719130005189965466251366357188747901871300212349260043266045116582467213951558202084557090019531848502143583598671986283644314905664534137280451225673446726099036045138108926677578473886203044866000072468934037544375591024289816398989347403687820418581252749486316819227765770343273180550003228397684500885655490576471698605333466565370802390025135846662783229606261648749395890641452793448987426761903648532333946114343085788978896773957231766164342584447322928906537747196543927008505574763613623935321950426399111061910050063913984596003377907252929272571549948262312705377972510274292033669116830956364726371937764627414845790700133144815641143715166487539595407156133352309435999214387914725683442369632064725466659854094368670098212988402676155217355182046210987259024990476758453100364391964179794612065971769601044333171671958528377385356564541410233101524461308657408127644209115982120314696795097370772356546896342546605444296198237751144532807733428578538237663605621929414356105288384136951747054234658121904997229067197362775555488880930724405315899327630830188452444944224609451740514283081467218319823051121289863069811460375158183652501721495374207338064721741691080825123029913834136609883026789604551811734093757233807488532898272844176876865329293156174634125979073167870147391819558346788781628161269268937531106591177426485358889387041266142671466444923602380077652061332369229287595169275701068797382644096023473553545071834160574918425442792266652577900561185812630415441927501680993270795666909560356875832942222654864848728134933435980190448310299199741330537943496589713050525573501726745940392029578619362919276230616962030430827316726883491121712866176039113919498296096746756044703388252961053580050024508415823278853109920867463655694519812299872377054070249692424564958815621862150242549110613325604088288988731846207903884887294806298600637682022014562290646446316017239380235085815417119201004162031089418352028437006564768242835406139623343843986365623558155643998941538633175005956736497658311668991734651606411660738839816529984660308597616021109684585040326804202718023572520544449507908110529540833432027633212358605808270841168521888938451622884426981391623798267895230339847440736121991647142807391361207424076810888683900634561337906240342302636325948518387294260051141103666433452823262933816161492385583105352811324313784817336970253389684418541116005409773187018762785315910195178459850353829923177337542532296599614052222160048877454543973846249683124417643883337166836658832138565031866837846149775637324518730811428904149603504401109958309948771714328772060172124727201413680382280345875747393607226254995333772789289561465548675700993460632582164140089036714992639035103846279340444878247618836418296912070509605314439807345685130438275192022609151345019569593290522081688833359237444317081568921244690108895917079678017831065364452024535957422616658127043752946180566841612841445750359424065147483397333303479803085229900297280403819028483375876188012781812924124903907898796644137428434103577160751713141419009682521360937727110049859194734260116568030946192863446081507509674218975301000077100612600007817608046243007720977245219742159933299045062548730066143995965430484586005216641859727541991956653344503427795613991556180824070199851246269132003490118132924234309144163878723111508348355280074807048502199123426179368844928475314450175836651503291398196042329200755301522303872599886917095453774787885903116460294454356473605861053100744687533544421003810478251274824503607783229918669669459396386638813447204183278376764602258993959005619946395776179481799603586634512040585883207554382388502992109555468530936180014736688989463071991903990448410798168403942968948905700739112689979284482878494019696191045445362018820965744914751902785750391751021189914738576963967019372526994946285329679346291458424405280557630916080868260926211598089159814948163401206019475722318498183392169053205228960334435506615227872389775489978204633190963660046548443460966963767475175425926434057735494585810021718446955402511643046267353172186766296949055314558451116132404272711334850596875524843905892250278081537867851007569876341721889946795099932683347441035877935441137964545272501740288727964605326615839245926401409028195516836545721632156338223108651644269041178048874548466273132876591936737347594593272520710772393464092099200265166681007568154712873320121025967126396630628463250674730503484970557458820609179700145114512857338304011814177217605370969499466030089360994621124310014337262973678964758764484402303500342404965261930953152541466586648385256006150507485898602713626065747946602814780123515305249730283700127806555311202386034020606769683596473700037756825585819739782356942303868029595025813413882900809724873750565959867925558481501315017070675608235030162746865854575936392788575134400067602884266875025713458451989786948524815593119032010200817178748131158357103907265482920708530661503745948090250190941748535283016899230641145412195396858032301679358049584029625825972016920217434928148839888253226486371456365339351206409132573579480685466214224669937764030473703480564750141495140895145669988707265798437099232271067723759222253263756092471892427720305704619960762347295531644773712931807197389128328125375416357284145493231396689273247118833438787828537897289895313681039323350289912214342142039569202353037171504163674104752228048001149918912270824272836535908537675590575753403015786940739630938361265900516461397594270948681219960263566242883099829995170362821080170300763129185973157613947610468481519663288405863562538046294530830091580652667675618480908661890923216646797983067452302134430342131793638721262874053606339676472656515021953315308111692712511645763245753671687495503587782022026909189762668635889573384332531935773060448928868506307458859093808916737545842765944921207553639273567713017621439330322009266698126849895977598450331424927460741700998843796186212689205343870175520970001826415475386081479257911473868557350666635310214565969151174990858706190788411958072667142600837982258719358550920420348986983237538131135247050008687193695151505067562072546105965022028161607896999686131851121252268135607092697239238829795089720561669297265426553346495224011353666498213657331590675026333971518436450702725263995565942282168856247686403604369218207835433347127684077288733996060221153247141576559282683614960863818394892071255355502506242879217992960681480541607655320597663038272466279892286652477735757338475080170000995357184826478356141177726062152100925698552514083116099769270422281160574256610783027990906862924345680866084611142930431530036125257820061542856208470370759570771782886304468549886586630993530924393058005671172120846959997014401800074839395008032142210217837302895502140817707693384574897267978340021542129457777043310451639946454388324096590495762638886971052241812995532651153971358960376010458279324162599696243315902284506857950422413002406827478907668420494791095879947073544743164511359570334151391159064189259974390503805735329879176518054401424518902958476875599813208754195363532408813895077903177959370466833136806471949507888178139621431236677090402084174515134135378719119664959226232906787307409574505516712631596477468010145919695494691726745884566157854393728575562327782090934673638007199129688392157263270821626160282356592884494884849257851641992648209674258844214170248067555132476268089236770402733850197032770270859744499088138066478916493716071664733057434340470461371816016271476211937704760824831318582720322158321869069743109471196408864036725485090775709710778678995335425099831513287006360557535864717340669076593707787382122813284788608338475408655946658585058422447851222154182215096366983630732181929556492872736017363226416548171942560526947775553657183375627560636192309529651863577438582443093582882644086733478245727274170813538825222400764093003499761901035762457366019186658363227125608815692722067750585690788633809401828327916022790029502289579189390589198372348056697475255018383053220693988342301390948054922716168139385683119252978162341698189488700685982330979770763859084331491311194458536896275269250329726702991513141109455535835717483501909171071874603691568402678081219620886100734922333438578016682577312795708093972549644726411827369304918804903558132421250198856344365538780231390562377358046487595386637734761260285146925268306177260093849636023025254025284407708438680526924095332816031066597781493207215867200559230378392330381893018159487484666383811397034614637867313370625125829831778908201799345918565747758680543097979625715293922418177609689912155758593440537658600044918017900207496611871223854456138537968948195381560687293957428500981436544626575130768328723156455786964172123144782428793902399937065698961626817311448743572202886632912335768288931178215402190828296860802642950798053375304361551001853358984302559572609065478211542553376163690846867187337482502986442023203238210621917417531726907787197138600394213786688076840661141038369352381806707618430020885864872674255226277096376067132990862002176624735475315767246689770327825387671083652351712639668528061358487183741833990362826574764972117150310502970982765212507404176399397242906103183263754871783464159803318478772259589046247204350262726164238975262506875516705293790322760024852811642003075221994934220482152380000497419498307834507307673590581877179585025657851674360012226452871414285691859752559949425255367252949614876232540351848701274829711726003051148109001636465599997176893378003370545682740243253001472209548053706974524844232230805910426338088951330262409422549247360740811870086716428968961073045802710662947079436400401773489722779381484879966581946688052242726919257759491793479219865418670475861452565413812948339309047272363415809207652216965439272848592256986189648911135208772989491552965093051517220464289706128794939540049957250708306329653945894176005904233677583377175943431855675566817481710313284302545344774003633010694051292303633928141917529512965169560891867505221532095707312346161484985449804321754951124310845682786104179658916669325338379115886323720015356203641685327160662562583939535271095069839625143472504840647878500908378622263682337618729781959341779856937880387827759141956742667617801260699167813805139276749326216964133526654999634557477615310294059131759972244453227332744208337247488659560678256657528792804197940507952905862822666857449631141469033034778299559470057995699477008929746894807563918131523024843887013410408089296296579420338294707760834688021480340993099171766154332152504067626027052039638193969692022170631874092539551245662478628538003883958702993267262390404247334734449061507753219599633887916818286978965488746048355069839139814162263095067880306694281761152975426943616973546710754059343742619155197367709122587045915504952469385752222153788315350294653165710915636518952601542407797503398602907494380805446666613414168754843859686652763257997624628134985356908739142291025709029740330691706360824663612840165259031047314800855234127839722446481401526412797606919824001315427179387064886555714089271346313420120354877040322194018768853414906498143827198251690496873313464391215154555348208180390503177458011548163537344825512541129616810497817390898864612732744699972182013961084177980499513812414894860072416049365070117681411740992345822858548630440508439618358492269347418935998864601012861865217074101986543271759943987251123139118422675184185167611985691780219257810601924468868020276738284401750909585027348200421815988631206674532579748128364744026458401306034868196037309549045376065322547563429891510611191324704677584955880741333747319810233519012594441012953651352811065679682333846658426872949537854273402161885653529994434974577738381141436277188021159259210054135448608850373677332844208904689089677537706433861105245643574674456776321252882227076723659042447856209563784674015053974132662572428655611179037550349839025743085757570709635611754809421840272281276789057801011857518036184212829301210690383580565590055050833396365292600302689812331531705354623127192447738867670460592642991439835577177012052614332938545484002616971518616167837458682135953902882508297160286063241675850734486783183164312748128088726857433559704788738533546078975619585534740097982783738733421802110808357851246629927091472128040313372604062794783222119696549765645100123473357473801462849357214796904239724214383265160616856617641047742960050249110907718107426878573568709258637931227974453514105657176681908544248442288256289626237317255817200049709210195440866009762818909700170541037077188920585269128914061671120891453064229300667438645180243434365568854936536378192897554522878063730113472467810342584384034418197230606514729513709140223093759912335452854401036974800923429718607093745857988680952163823910080381313663857113113469385535836965611864241832954412098433194394019112664955952916485619587289669786860244004436113612038617188903077442970653873209103985491374252048571616161626238882267004623273440912515847898822196665293060086028814127422857875604727260994307690533074058795491244077634830573164081796226860449581648256719518806216746670112949969102502617679644718523698955469836761698283107128925728558166682351790252346249635169192939540667244903854649635429048981328294993007079472282449448832463811553892563909203818619733426677910460871191409686836986967003124086919610857828170136030535165931124278737392725039134124488523176636770253288292536590157969539068719395865689362256575678204090904787275865765387512967650230241639186973579473873232800714286605924008147858369093943513710421698944549602788388584307242124328867119328271310327338175042517623947692452597435413323013602560948803412490884819876598390764547397790335965519854962237968113949159969021197595800677299625256425402450035002004913615202273257143469692127557024295453988974730414690762213626998324181851684630797156971523334985226203772756158117681629871795578023957011141825106349480027037208106570563841006677094898799607589079780891834448287188388336655648265649419914554523611449564676115133343415095700323302993637772509387730060061836028173473778160137079525407082890365416181639517647085184181039591284362241491389782275441809961904530504020954917470277512954091307930024220496147499694508427948645363989580360954687537448540356140538711552422186275663273513122398021619078744193933503620685671125101332376201852394678159591366486099004262530253987553341796141729749768825749062078274585717752406576497894718090661767238769697867788592746184697299547093540594416026989155068028194773847477337992543831559783938778466141676942927337266426246247703920559579899403905539266136529760445362262106495100450724755733843108439593429426995756940835696546703092816649714874524524888943104342270549818235300798447307686314558358461368422782892125285519761994236121788910586097665204855558880419691529006098841118286992964253230178793605297698750733538287041985199805648608021081178324762605425396384529175947259237350168725033709437556766386662055456577909017129535865928721716162799578114917613423618568080298932539799491249908138872205459533008362583738721767590450520750076033319142887240688870596916698751189084615148409358688309056923281934325503134122324146357129669229748125052735832102125905629580084967794581538698700198368798404711966943117899633761375196142754173470226225301972381015143922281774687554633155080923853402449574371890715326910313383000311593219673445972620549988822257106246811894131924076700592951772612065093584053148046076435730286663019361078585928033028559356158839738971041598057754845162089072763639010537248190324274139681324337568764674935807246974478662811912405340796303359600636253997850961360594112376810300948431101978764851598297849049981688222544991771589054867949786119156342145838578750520654353799745833818770611151935969492997008502041316951329202905143609895722688487178955012482697894297754162067325540598768868083958541239279391605498571539079349223632520780785672835192873652851588903626443837842829639635307636466889877927655369466744385476837837962982900919867664774166455727987724907871458919676051509293096366593219994881259061704550387592121606365871135952098183677490946399979460907899401379714335727737541691535093651237970816405884524496756423734506973564207574491404819797237922937361996746398099549476102436778863137197819696208875928022237568802155266078247233782374146990624034179498724326748173400593991590714783297302298399228250122217981486514145034524616932712082067897152482853517695093033671789786639003678257247491859600622672595884676407024214574850473081967950871625934723319024947080463974947326810945442295114275691833451299872822559548577717366899584617633246312295799463440163058181750976381395383528348492345572202894804559937779085979206907261672474349191876425869621665341019190657169695978275995636993623156172194070734789675435583887511636719026830338318192058269666091817246364970299563640238859595898757428712800259128344930516356248547009244397573179029217997768204602615765642343081269629310564329957330697134105022303493870366454130011228307022638881362768970400401679935357723883387578034922183924808291572352912948929031869379492708653515585618997264623668563126939541365472958360881565136170445870289648547962322168426044779971050781852694285369989568213968407147624697386187665331831663455610363775221908604083940581666122369987924236495833204934252493117688015842803530194428903477932660118289810933892233583537647616733268653095790177942295515764258941232607938450665514399852337922606464095170583516509292836645073613768533010348247885748988522937173855293980364431729942058345275197654207432431504722641813131055218906143573630378516235338072754724343840002708632429022255421644784143167240716063518114851436187424874514862329258423090547130197889897635559779959608167365830363300667561208690797882256889517029024940584508765891101743396214157356389369893545163457537328201592187227333856163542902926491324118650053432008333511104374455790407826579721416610330543762423952881941448487556181750298726396150795096081956782340656075156781058240173571018705473264462380379831279577637831807930661359075881114296237715804556506464598279727881822542106843186080391400612816721875915273579860235859529174784815048524440208640334802672553555850144338405771402576252029010039054124297283722649397736440736627755535744059102270612243881062577563211601541447155646595637864931230109157528396870125626860438009526918312979884938346974222833209805253329669416776975936179093548983989298964577268163034847270907921886099604443419716296938406750096168040372788604073588956357853322907804311154872928058200235903195031961304646549409091645276413812815319481019852274439202808283193103180626336815323241682751406120321868515074146119719825232581007109032369356156725828187322569779220598034596640804549629500037456522205877258051112650191843606900243173272993378624601937704165655202449338871722138068339413530011223152679407936103699501609368767203766561841133286388867038601618125579242032863952277890356909239621414710699138056052374523670944890392408605242719815642238351655186042486701352801509627873168137370129032766246343124212681705705582059110839491595124952392939849654263247848823307694235408989391023952023794048937076959835181387824999574119127170262393811815148584101046948514517398833321280325623376092412286408463937307361443769400942282479865680210781897931028559336715627330337283327777216052414410136768275810682322021690619122272611552218569961042991599157133561482719479153157791846231882403840681759721578698822361405172612412039740970676397736412603905101491071402180337178636550175482879401192988418479675482919853318239264882587257696222354892198930367819883098438026929027455323336448869489679442807124495755752238303933320230398530841916743228917091492590074842144292879548908695737114971919375237777240568333449354228905619727406207704795669094809926197878386561670591845384730768033281548199840945818427088165482001335781886802738892031874515430197540806778350769569229219761376821577535527445237593032270620466781113304648962355270374025143961694244556575065192289400093110952722794544916254370383360015884829646859839029866457399415409095660859741233245266773283351862945394598129780967971097096475392563962414535320146864371211805768207630703056051955985536085711238845405943700379529128368663969554936713767514949591463638867109133456407546725191579778420746278199482333144416411990648245381189111972919102474964563340649010374380635453002688866795670353772512413874141211078047361148267981568307010552881203501170843659695342022512555000540806956648220046613033646665578948148821244294391171598919039897836868885484563304332644021074511248666826283687917108971612586390964122036419077775505700675598445058690261951114851307282950953853298322276639972484776938793054513307417932382311536725535880743083632499785441182849234181370774484864873235076509590846536579962353245313895822981323537401348179441312761818642547698361691398505685019046892105148646402944755590658966916024818871914196812317465211153110651770962249481324193521118974209045172067578052523154005637245185067311142233360377533122675250554826001284634731889817617471033231552535294833105269442852327266312950500696729261028546956983043157703870831123326447415763293314985879403081457437125001662654128989003095302165966670997772198451140022767265415792909738143836068981246956462863704940624665201474855044643915938907928887743499254748748664599276264994511167015154749543260442089893936135525617574877304512315248999748399450744881260274151938954944169657732673076741250675028055283889580538735736884038710863529207513989348772041510117000072692690238173671708344419703560588695479341824253402926529412036829289507301484399857911099020275313473487248040814901981588581043013064791844681093641266779212537038581818585655796521618386272747662190722507046139855888804814955987727286136960368015095102010861046441579431143390113224882043191136207585978848727322822214143031450450406669181772193536572217634029795346794693891688471837285340368143951211276042410309649138930344025600383835233229030335398108189804076256343310541457276093408146745202144322425224254482254388513824088681475841680679144086379374674771138379622316821492105129503777943176328795182596348692798611760202242020938326901997151032292350035177139942232822188930124022839468315175993921424227458291739290878569609363801194319066020257982742748218916472128496947040508066418806826486937260639928189960717608677811263534913560034357135105444606612835493906268104753442263695563579662689567440450326414688069522898802150398129281299690200818656378798529494201007225174211192821428904256850641953189698481617092479322489797592618276971218591728885652956451922803179466850322609158974942632943090431436732006510095851975331264072438281864787952241107392854351762191031565356891162908884447940436057194305637705613320237166107985887818190887809391005037050291924233474524041827416650224175866965056414577074910367066781806108844385486906105157492766497845020104432934106514203953008790906651250406989956238611198818064975947217172130567994337644927159682426781172064474228044997127436827872533285400635070662716191360327558176186393794174111240724770927093985642048901653916471934829479748183139907142716466868452957026485638968411148432202159165942716890000930553250993423161711509650769410293336391720459470882627446658125208607118905925334010804406063770099964634450190082651105393833558034932472278462155453084512448987637986487708157287916704118610511253306173437312171361349250527174852865098884066751122018685984180467115063646770279385728582987439967327754598082481120803540690095198504335111205305561622245116559397533543434124575772463833537393511466316252309756167932282067060671839618253769287106509617572288894542708048675882621476339328908276871431935220976838900749526583327188645965713903781566295453029799367675983281222412452301088029108824159186558343612106994677345204290820674812921140510718472518669779951450088435657803780782706336761313905937141182311534669088160370599803152552977375076317828944047977424709115745769104646956520982228099426735459993531955717175389188893714498264852186080347492774670278096571646319713909862959956996042934577356699299565788856131603700620847077351830320627967881355423954740080534809619561152662205926979127928591531145454621321904161443649195043457520385698181413325077653767976912586834523508943350881402811968460170987642500830388011092337316794433070016400027523468750733540495063598021103751195865836813421431281653564978698659439992886816485720351133789884503353843570076945681313151332123764692079378663216682929444294859319469050333667472144559971135902689362087087929584810153566973014498691700342868147999927590226356538459046981536628257411835370938332437110836202877029477517284178754693237890828688242489546266768371920490793476658133847167190470589237411805843993421156258078224360382888245400763532635535671213969519173280633010241855206351295364982143071282318172972575951181611936061466306266411643080882582443099216743067637099839070370084990152072905098776091740598006720875494876287237355332157516436950796699927545173336058948617561036199080888605709035884984131223662189831623921470066657307422334410429867707218829193393967426168196961217108074085604257288460714028056497741918168163323942354460193365127395266943819564092401284067412497615262624158335466777659575698804938775338885572997798007056509671908126244430559124302533252468066024399241319438424305089668116099233760138487657765926838682617643294066677501248342644750382805225048250115811964595033846635173994898011110454882903334216470945110021545503962880219645388741132708335499488879543287909105297664861739148280597835810578674256000001599667404969744364131637981432811052354897231817546317447539604129990567100752374459017172885707757576235805245143173545089314245979648288986178308786082330518108685283564292302394549873060920818379205132799469366703245336907389609374120540960540472458211213222271887582510696111383242636046908523162816834528352642830562296177987105975634861340218147946573752812790380289308258064896346300178287313379770387812129936127868796450445679601455056852810366875658068875976091771394405721762657675285836543369885844073520068775096179938264761979923682992272527595895139159761616145312072314522826973387805608901525000425568878284518938221882188663585976464317195920690829787550818820311969837667139943266379797279551884365767595198793015476939873209435831315956382159247030834884275169155186779106220203473043141989829253316341376885969052664196562677133304196775013528823761128844532734534388908506761014896306445599652124979789615087336767698898184913324518908006621095291920913241776845345392038049824490080437319425809243389840896076267536233419287243093376115008359313190298821573453118326919271172657040417369783368958147398854509210627342178070920195719995011855524948514109916182967750352923210186250131491365236817321397667091865376551445241144945599609623133110955677946693762527151027780883931048787950538314752993434637176117645333675601401770951873886201347637686947439351959596712217568171768534869374326063544060393676509796590373252922845349526725638545089556861376646943248552705558951134531547858219437420742369027049745190345072704953258260425974432436932205119292812697212850572369202056878747073524198734976902313846120017723389109926412648151805164609954621984867484376983217989030325234536768215674881328438776629533042068731817938692209032916196927387728409494300513780534083594652960635377688882636956200698303076387908186730317016369450652321664082105944094336338974756896221050008383369995253644049087665393578853908199457451841700290266608261315451558800426064814668335414157622760299918649767967066348681608270968583443248257002055092570447874400209310366240486374688006897016384550238223737371798808340858453411397558843034895145361867654359393615695330023136058813425822961704664256626213627309379404122731951607603851466790073364337708948309132671576486448176015433790523230375700702833827552947153029480685723717598024412395579446452038665301766677798432859217934086521953180658736078774205799678233807241802278326106838083718757352292385464379799154788523032404460822063105182335243913254930563651502448137538274167969383686446706462025420111640147711410571191644291856046731500268587900563669396714836840348791527017608470596077220261824736014465020053113611744067565739589935725947883459344831530259078084160745319365113694366641439398835915263827143408736113676702263678329548291505300689939157900125949705434582433058564998530156226767616485637800144283254135402896810361782162510207443428857225386943716214695951497689888581908108499803568551359758635083201347108703663328918224035522001247841437259723070230686204762069540061331027216530583499418898523927155953694996827352213571189119507729757015782154420745136329161128218937382731773106037887801071359594937687163084809360349562603884438536137632826817078008107306290308579003848839548309166245680457031922890161492307842307702242766944747830083368967209641897312746265991225192446934898536347044706535063873696957860790987114312196990018468376955257950942388633222214845252355288598504009621692981800560772460411781681367964947663102983992486522718308008595984908859369329683947223461009695482652844769459196932240521812422547255862262629196135669871921516373359921776800453396491714337874734689525077796182009617749920187631192268095889386249063846851177685069765476851979964388525679747044026029523693015511628540601392020321676221251003938615178440661201281395229491322426223449950128052818448628246377730882881300124613876448101736319870254046960573594379701245285629178468994653514884791821056575765214896474785119951184036995852530710158865580353812885443693819893224641953021391719802992861607402315089602717377888479431219172515274379726774468330975763951338576595930999282599117124584526191079363403981554444133699900383620273003888797509023949750221690916299454885070975124336415079206431399763387185572562663797627457052511775524814934764291772334628112781847622718616135645927501344413575038290849587654224982191667884984623041164875639040497709848429128029869158501491335758042980391324307981591416009589785683023190351942992406948716778912740883183122508562288030344501514830706995273689058877026432137696497778416512862530979232393530474792326184465896510592863132724797389787227036752435917824369382389220755221931235895024236080291837369174112557446005958803807633539813325824246973741993855381635821910155396680370072627107908848559481595912007665136857518218697732358507907663542930202445047108040154083306746446259834564113717674975975225764163088499232452024748184795622374312046483979714110430367703593520770601211594858369092073147928222465070205054320537053811099136778757907431613982791798095128498453972803709143695146828230645174512656819284443598941754010299493594198809317147751126606161708151324615606005409010980200147377707476598876533787873291755440133415029836309714899764055196150788074589394907008880840931253461384930328113420225630667504979762479059100190064045034679228021215108080390913861530491262403463259975054053940550256088035720584933858128476085121434730932846392793561883802253161418358130432437645707311992422670743695654633558886751636871540687782167552407355180702257512042073039477973312007744723119961248894897263331252741088337492915946617701950157154080889265936176992693992259045274564268817042816613191519644870052393772081352443286512307698211425652564097846047411919368413714544091348383574033784048790111343598026518251287920921703955053949341793138142273055829485748389114372741095353440864086989634418436336548364066792802839886597811205342430986782311322366669713538140456159280406856242186435611924180219733526974855567683209030008590297722037043019675409500557707185530590637702368294490560873144066148853286309727309398480706004095308017998969296202708100796577202871459545369362074747276699493209237550073826705217214993053246606850826296762927572052497805308230662839525405667538686674149939750907234184765301576948529385543569037514938762894457405372416354584236979848033014128434444637320543996445754907418805206930479642172341220904200381902535887070127778368794644136134692817970144061338887952964394213305472935944135532992427175908202245193301738259159264946493281537842918886637681041082501105099893288927313374248036517612120183090871010661459274455621835788574502840958037370199267948196883972643468025985990912267467094117045635120551715587068285310223878967200839024173485533033955352113871420766234869397300787489341929673117036226796051882384282642404804373295154861215964231166789658428314043618388880949804510976827499744578814283930855770821499834984908069959909602677739144459399491313102429806266911328796453002161777936490484293414326874331663178794228614805936923617383513350270195541281874810869280081537178072495838227922406989116810398798689723283965757186144672874712438614982241544748029657312870744515260835850087010235474681865069843944005340395978790775281940797049502469297284800914118863242200072743979711753792832791398381486737524563678810805367019135052211507593290918462557735365884626335705755803164983600408462314530867354029304412263849751020786181833292801569289850656415039282498265590072770567062869437238112057709845793100067450142208906981649874441124732739329252571395253067530099034366643730497547313442974712793561007759510005147363357697737809086407669085044517522506908719644315972184822866209780652850425843201577231034722134129514982179344258143498930145010360118554403292073046225834469376277874819428790342097179295925503101593011281717164601110949328820705165111409746339418666398319167314730241117765500380279570968446057786519104132895780977799402918640740253300508465321785305491425924788639457902751266832016409716470148219993745336293001383041936246459384947409328336880104625009722847751980129521633147800045166188305134053450927746455407709592798912640559459049824252929684403767405992259536658370185518394991794062890801697275777096942100536066194000062427176962661547133835758982673567682315832294394348899799762774294950924343573468962704312683440781036171937784286881076882071167936425880969547564013697490873021649726397934903714439350856568445989544923896614983500567153897871559734668535730485073445139680335012245332405966521201191149726491364388562984700887006996236820671011550743073620716126633542777535832298162442057878668406025686773674613985105624635659244327026719911154219675325704303895813115216839562228236687275209378213418856407125883496139941996042044293320623658883218010613359768545267649448476685121931227502798403889846000901659971599757119430004891942619255243945409960497455102625742356943404812858382388126531631086435635232048791672773876569128967420006809269846970894551111568373486923864115170377295588150537372480601031952424569553402498267384721549726133267923325507014717950894419252595412500205759131328132876559879647687828302855831932680999915731231354117555581874293936744593422967522929707053281742329116709192241641017331727766592410028304122651519618648894367710991880228867333370981185135392562300115115605360657006570258946802039134458405073897345966315464023337719876716527521402977775398336561599277375966039813950999632693417294045521312136663426387994965635638689495699750473532172533069936019946487504586687989735550470005713282948078946052446668558413635164991420531428480233208419825343893197703634045366531439057455039437887718944837536697084760588812369298021940526269429518031533462320903519594583717825458546628280818452757554799618759912049186730915152632218116479755156073260631871753822874053389640412660943565990622166336385987925599558100603287641352283015734428939388403536651153367444955675897670685457671199262453670113743927454695021022002836239711151926769293475474163702857990548312473566258977169326613398619485009899283032894945298387319944014276672218848127164024339589248675293548262364514194714826801785560310866130652207799421177212881815922460541402189634428896687320233076182449096669805714466718852244771067001820115338525256249334450969181261573949732736372170674559000492073850766885325782672800020012581193421287269113499301174390281944227327309489148990359499578599756247210434000578852553914502238697140586786521302526924161903509007931545291777651952786301856253983806162603322215195905219885719397599004066732449157766651686129253999140896591149154963381371545483569548524194790029326716724297607272752835320670881989220680201525172987391896251363228633417865689479351684903597428215270857490847339573230068340203183591807881558365474999944735318198425300161508154672821019231557741482854198227766941637539950361208622472921978539206674723257578445936048165863921040814334424800893786150033238284067687076877245213085071181557578633577660111236422744698717907080586409492550630551884198003834364258936308775816996383801514011941538608995714625229096247821891167934497598099721785505579790921502195114662688499020475453870903488226344612473888164460863359018988103154180341309637655395945483775945553398849596466513155273156613269035250753637312169478482775469377930735789973457868221400009728852666507394718782826290831280954806534324398185099892936696112318857080498479744237780689181578323319846244989290974318826955730926641493895955573987146461327535490731109273746368730467924194053840236453157673987127857146285033147007099333286872233062803839755901509765205822105342578650897627163423183858923026692756220219256695100685109346658597918541486115095262075606532535153269063405195150529063117202961049404797156809225709386297768890454541174295509174732143155037904972180704801480738472237904478760410828052758460141989081110826699045347058386066140354632455144905949932691005542583786539704958658293975238102692660802188966981652378987377278534896729328910234863436094860570867409367139928605586943014636886159100125602323889490832311210935833110346925114408762357755022953878714629802696815035268097135861463194637905060478446910447033440535341983652708811822176364065835821472822513083374813248932477349772875975275928993477420945588093913340145529821302956036431345093488264937696759826094844819838527864858881426399605645248537387106539615265023439345773943453333371528143879132795207885060717829325433681054061312026300777835502692228295643721127866662193303407834712358388511103803868889125494727083385169782070494794737912714560787132682724842594629401853402602450722793609038281837466053412929654748841006656442838347185457354932564527410170173523496165919769521649357714484000009285376345979627025354597793682841333449281370368776116177497114151719136591021607521068570167544223368723252303714736533002845683396595771827427462268142176028336732563270108416488517604016515727580265589112704135657439397621153265581435649720377093775872914128274051205793677805040655981203326618234261133877826496288865260618040344155147659277230882547400197344915705032866667534185093752936465872023707504426710535023413524822364368113280955135091259638762294839255039069077476056007451227355776217701608538448816677728082010881927593341520870483562402534566611385851661097735345155643697278795198014297626653172624890737926075370999572858824073351928217947760686418417204658187031284605630501432606707589983763879815846744014154013786297882823478313668368300503099697613461568087126654000504309617730427833742415746904843901138391637302374132246409381818851839157475775929628599762589281278845645078843274873580440424924460692702942587272286312917057092883704551273585071314570361700210946382396776836478859706358922664104622503824804516664953764490735966878042991146497710980024318922530180752409835951953412010183038694171696849984228970682091739808278212017330789833854425091952921351263422278912454985792820862407124250063189188683230220720539887971420861012052242792821020401451725599863688207066046248498744265289649811424001269929518364972941545842263519344006952452798816512393017443975430750650580110728916141585909472540494601977940733281067193356914692814021300822249963915783849857584065469283911111955966895943718478860585475874858782547739576968058446159788215584628797144875045684803301785730520098091206632549832947817991414549068613494355447935827399190977305256666406448643058137404309255423443890608645759391460955320471451633062341086130949937454891303194144985833584195666412235328787768773153243099879609655606897282781669272920149557367277330429298082516525623931315505262121291661675915881801034819463272931875004833457753108000734844833500380173707051508723968191069469802862623295145447466140463902572543055040965310735346546897434349287874534266976787947895303061523231472024956137498352397669333241716233874346241885606419383119334027892242278110480000615898543355144168242970118975527614097909511840121078919370819074744520396551143683548329231152030324307366235839062470925655536889337147098880307432662136554016518255967541157524767717795272870831903240157446943985636232693252343282712293692623879182753510388334059821487153581629742354790240865908626103012140051137687150357227258222069729029647295143200766371242713194081155004665682916254429970308707568826276081996245905335795969860203278564751217874850127733218614921856137621057811463756924147798807215685646992745503279057458274787790886736776297195861470745705109931646261681635953566319823400275213750792077298782844897937443787686742532699636185015270810369144584920792330388487718279504524987204523485456101776694695820494474659170127694748411236067064158389384654598544519589714827317078521607484701387632628407356154104445121576718495695903918712440095976021656556860195191703806665218529091444391238211378677700822441422441193703190322514881447400266690453106141857593171794044140899541527663631055572014373250266802186552263295446297571192706325066806372831331221419183450330073936857682385767680223816283083946813090877586327089876660262995203855289876192553248082727953422974647558252420409182356517826781200010602064673345042033321408819369536443968259034338487945764751467719826649114383816288350812751129237069140637851281693451540397822475681195835346785786596980303502459768323898963168354061947856621409521563179217209818486267583684494978568901586956852265416870377694077908963940478597654451093699686108965391662881244997442488644040996746883601031905401689923598552566001194768587410356041578851938905546632051771405267331901124613420228082836677687157271293211878800098349733071192960904846688862268715487581329819614124515299739871515765559840273302227413083110070808081731251114298472473082950246502603740820030240933977305431566564029290458074314072588187922435922425018809947652299674878146214380140555411078575484255796520309845151156425083148830302987306206187465172119713173306682264929253310305699045379190916142168867730754892405374945291745909833551584234144084631487955836119693970531133988425911452755061685073765969009290778341101556137786266073014731414723131996336399441007169150554706310639715823646438942376848602472922457817765150020189578245691416099776965433762416279506359977372457771374907441705328122508405999172030503396101836592717327013121404094753655950993555051153905029789098066748834854256264500620693684331315556268007213903682109275993321115575777032646518688293566902392751592141543187051649509174516173611477368185594296649117487835037056937613558168281560527225063989764807768635702297642597140647275371054640056434158804888059341911645550720212873650153127660766768931352163940264754926150419285243266398720354213873999919661216673909512091194671415423673271485303733412385040799334736575628368154216080482931911988368710170004255563786321171920986797887744954533461526582137576881931017105639675394624962814283433263398098862306889611839296496392640041168351054466949061386934647367566254049889736286528583994349963660824468486278477585457402922860121942893000657631391762372969349586877011911959970044703264666158958466313336426928064697070845219530090349047688650658913906708016199605612547911405240105252424446658158492822567368129237275680822716243941860758477365540542789331520893450202145088076476205917319420018232850126151851327052902298966603240985266208873843902814227317211226323206621713956236832111989845677167922955476281787456253149443203818439472320627677836378467468786219981080936268995068105903858904249408467575653155961012877866940091403647908791848014761236007757414204796804393847273541074364752833511120173325224228278180860250707334102941564744527573528342105525883113518616057745829116432471907718313771155395776858598342466956448271114130951361566241407548524191899204269444802671312326283403605118931049686270560984806637910849347884788439442241209588135141478249987818750600538660810495704086342529155179930278644423399090520365464101420125977855927936432903422862958518678181215263680460058934064431043831526701906013295351328423713242649083256549238521424297265346610112033453145526416354293012821667514539561895400852848875933601889978620101520286058348295561797018956493158581497118636895892942493482003186540675402216207380447278343058139433250048103081493188870889779154562367896060028825680308828240260714949960424729645112230208272587351124989960286181757619970645133674198441567613701074033527590677464173130739724776111269243301772016855456667307965671846471955406107737385911201718487185885416537837181240406734865368793109798795498819505684613918264413446249787993881571770489140759148740844344276135357902248289413873322033909359281143165430848707959109394277642984004544704118515429062520509372769261183388472617216127088483976235904949976983050062890299502885743816870256890087012445607982326105639800879288023200956435501144794300780914886839497833565294993380405976708034936589080989563417122582993266923157808155907459213170436547141546583200238724798393125403079001925125720014090984155639476012089317944670475995682276607864572989835505658363795448738714386742341591507956609442506663646466824658627172516192666055560454589321391248395195916837029005086300323989027633814465515163974848486588452493724933740096337876658479549042771216133351257962885433895616156591341180583595836353696730190691862727594971868268250952347162237288010528876337246504272443574533565510007593938019527096557316096998941982777035737928890328428353115416683608797879899359655797980584754559849176801793508370484541450623621540778392499690385140196289935575180431465561975646649526910823567794453526047867202626415091562057139331830931666067342503918645356106952118951132885308224693281885012290323216350127050435656549332545566060784880439588741735009148469415333509215266616577528231473982168126456917994809370462448330992667754923029576337506393736236033530201666704680958450668322684876516662642673134030772913741516962123067081332341950653782509416128660408112196200895111077426926566767761215728348263436560427294738108290244689385802161901760072930855358230481958437705376991988307150633444356913200934349953383713562169945614735452085937345164314655875768820943541568991925408269458256867824470926491338804880035794277067435607080112037923589529855145087789113823089768067116992650478937103924402684488512404035504479444281684259046022227434852719590710689046990302895194345106275348829816893373063386366553593329761434169725885088910958221119000963388579483890419539611124049951767646770474796856980746467630376520211501384668828171560063629562313272408989313780720885305701145824751119441359474309808950359216996232234975083872571822351540029482626282508113869601646593250709562866489000887731203920246908858409996653387124360253147586743068757822177223608870754435827419860364432279330752613263918301956738529607485182218933530526358841117117809699562222630571599711424067532929413224705872301118056617063604000204882959782259553533552116502093971344287639465870516067212151886687698705199028966428933944635767197609395026463378353420169266632765946579904360365483415167220484981041852492206518144609150835255855802791341338757047876867809191845205535445219023999987323961890840049508216118626932915124778438778498009570204743244770917672880386195288775861975335562502019610032469286652013521594041693467577695189411390697328248340077435769269466214036236847236295432712903398824898432610336773709936360691302588049921345898145385409059829677041193166483924539732187268682539888876196098803939527142338154026340562969381659626609645436241534562073011775490150097776411172424081694489164810097131247334839689144912719642945786229073215757957123945365819524072566435429189234284064106112672102305607198744790167632413136985554585441658332407125074565806687150116843212688926910225267264771613109918109561036491334532983192178065047549299446690772015152700738617330923011912098727527741518443494888855078462757924741210616277332477159760659526507934882726367500290244183769071948767952690180279824471567654217516653952074716307140747533259260559036144453024538709155858933163925859487984346359540016783968836878223948556090528027624397280547179275720165460362145180689600265850905023766013353758987970272713873673666025464715762917607280806508454907755564332103242431468222359980197119121645094757261435783618205411564070341202059981075550589358757142576678348433404683895514590817170960387938107205157002235453084918904904737090361841694150474855042634916380407332835175629897232611347112076514757721488422630468832125561716308194341652910201960585987165772028250582864553692724655144460285973286373930783985874558736734733051245558031203757227025464371282924389360599434963531071765547728962375022817275508338356712795023620379135534577166147093301734542971450472655624548078151497408516589086313168805287268044048773023031265813933260187238935844308743528187082728261361577620369184656842718366187755791365123540531072209607178356174313725699870974390269109607157491012781558181059365878792398451649627771545179793873736719790439408924464572859770429059894295424419359737704407837019772386113354987783777581567769207988251723709999969829575943212572117706814108314914816960662414948081224826812665038288865953413552587715351662163607728313582508318400364881523363732586918478048344589268674239333152226304943945156867601709758139723852128681780563015048843625975528231413220882078015270804694801582362555977473979466429973653734699287072117435539017625594902301528786467044541573457415117241479990622323750477274854843218169181966084950774777040966992174674366813643303374746716998833447142812929352831900866468258444911910901797930768354380992225117382649960652527212605657720583664474897129851622147491402628922215023792687073702282505646927230720622191353311905246450601454761486969168721198613991363810831889557569341107532939327805559442621526449004526489424990728926122320740534871267906462189301707954425134822924599169562256785049593476576140221353552375706944149749645831182442014776500232855477072264611252982417192105742037021892001673782635077369587350517298488731488822459689694008284398007138004390349451986352360298616586850068609514837752693708149497607669770964107790686254958656790123501288661920073721566623515852954993890082678497116570983154600993411967327877404728036616904250921365981398452000324251201428876814574945756097112442213913742403313869006364805043197178144212555869145057357727686965441409283186521074648385573002469103551698092244737703484256624759616043759864961467002608838934250451659401657678316440975060703982181754324163763766372812284777128041852910086987750543826596110141614293915440973404889429371817002481512627934230405163977792380138544533701947209269594322536306086377515285949046148656752153097818502048110216589585268165574795422077577910893523742405079499204186041267279526699891751244244270099597850413097473190304009706756981919176499880124750218020740033501818801697353809134279402044479214034394031399205206199699621984979806744042868228221943792470263987673270596080437420897498138866537935833314103112598937305698145049221216528166828763113015501360894813120938341471378453634900046534455497228846154530932588822051603545636814287595445680728424182980335301169510399827724399707541639122005250903166913696636589854543818473888698380960502504270295047132677063810247411792662253163931993322062697357956079138210194993783822083086548834601310514367126714982826980688830628152776129564027791357589585727148823526954925283365724820828899503657358114416876257749951275055304442695350614052268885576721750180133660073337794446633120977251081192287833338329947514297072446850401352200790022833952486974226543600601578826410798496364615724648107575225354290885123616052257453640581017373028450126795476722972357312663263402139619293700889898641828886427887430343262879179260836707195816030635189573944932437285563102871045539322186845675903178877217107858997482982080720156281141041867968321880517510127165892550519800227608438444817234299920426366899793614238867892808656457537348888901936716091280813758186005013140349031607361362202610034046262359767931704303763055459464453256151421860940213072028524724316130444804300936558188873720622534782009844838042487478372220686105469959664319974919836297233415565429391636202647546154476082013568250234036332870713960225836540833720721127255030444227818528254204914671693265174571313919928958295449773361124016740440209593094067186218895557578279065518241299659023361638078581334108700288723957444508372890552471461849735591539230879320943622109899281052432825506405269238128536713718277606485577100788721682871780900286801461521454950651394336013773659546619008914835847632466166195315190353631910434844391930401102211854589162705202033972836366843216147784991284025645011361119713244498372494194570397408396086048131744537758269307352641738361191784425293594976527890140385595690232647375197595604816431304262371986910953982361835123900788741554423136073641927124602422256567612287191269855763831015076436988054451597900507605344180930913185548627558551462818031528209375349072011698133459640190505567456208410786250738049957683661022270628858506329282418411779069127020232394040547482229156736648864824137782180573265455601665082078975333277860413542701358894407724048952878079597045786264746332298718287443037042108146912573144082966355558964582937615262449099652350333910868932297736829850155079808210031142794015063218331250068261103750722319973585592030917898681140123750311400573436395013065699409123981279116536883401446432739034253539994292763549103891231255756398476254141027745775519447261442847060868666319989252650026123570359876721835094488450294103507851350041544021147033670976380629681058229113599693237364961924647910925143684921380760618820197626682388818095602528528535357729351889996459053800576300807884536396070753055821896978258759731547778528803851178545115920385169817039894220600525025015510946546681182910578686995118269302392448038419961574049483320093525552327204615040980333347873414852705186311580462033351833087697775812247113009115938080031022390975805353730782443579379819255079810348783872509934419442058381275375720661718261586998932326332239053174367702667218438768910695219210595989947653065829143879218859599291422210997281761977186473717678975220071444162955657351943988952717887927648743142261262332765648780783183501066675280891587119743966198359751442583702052820849406046315922874138041604870069336171469310258948013617498970759108609004778683143518210909748493384175071528526821503651948730630454597802094637670911915543120515337695597407518230109313129638973202012831199756719566053681054355063992236540407613433964580147465312230160628500442504399734139021951925490343409380468320147775774246856073890594620527613797749804086193604510544084887173484782526185680018188865262374563872480994925941550207677006003863864203208945991392918454036105256466027888888781549991130063003523429588344682208170107576280988321723272685941764555598041217470878105158646944427688289110254981500212940518303036315704449360605316856491691938812015265831389842736477784305592788105577651069999939192229309179611434009190244731585578501161264552392020606768847740087110563298480116328703604072298874290856040260327766930578650233200916585772806254087004470535292180460442228754935369620670369241386063539394287715974923844797221514553315768252931108564225911116188519185856957247751824630938829405391443327817420717064019509335261785116000329434745378755168825862262825403176657753120872013145823815820990479052106135452276034258630942155818595613812155547889657457371721709806207301960639544936960453955148941070154789551639620277948469967525079852088651543748345203560024663317361143596168670646711740228204770275643207596219722679215924949118320713120044513097126955883998494632410669550705503311767493870289818837194663899871360373260232695678344892425605192132740560021289073264992314091357865867816286804827383797686600182636148751894851212930729928101706318587003868313317641709379908246007132415267217316850174881610233105206924704684280469187681925184710395340578681588028299122336926991867887505325176027201428897912243189203418286391601930829027786137709625946566793117711018948311691510828488186960236652549121489221181386544374304032729279853782693327036387715843700708537600531009051704911618942359724494418452598043455873435010271071305420682911929179462153725888438788098215421928666613565871522795797419576329386030849976409763726439505525278249122686772968493337902898565346320817320844382872490930302843080879106147495554689630105267700066112991529361238388787421573882966323647670636653328833305710207839378596735550019398174404388081447121583295984488524430761948402074031089247982131080194642271816503461047327877317206362509787897275212943873763024124937946578512454553361495853264305803828508248376555570349329634944415979234636281174658147953441377305950334227138214798297123606741953405056004846985918408547539052653164341787544242732085447906951140001683468199387257540024323589546289567861204662837410569156075025761774033232207216129546917084731141202847952800328124128388156958853891090101424717028318223161354765265677581100609688080214384088062292741026250507761202518082327540397553729220464426780039702200464478782127047865912883316758472557431358949791920399366700221142037186231196370518459864179122900784052510838723753575820606363122846727584582054615331556497955954271328033430738215821023149674309507893828198653346161197940680529493632580052328636325847674513128519078959168634584449395669962891234955891191211726714290222358255906476354545044726687360796829608334208682055188531683865621936537435333558881163159798932943097884106530345410857803985693417213097298932424262499400570847386564193191380849748574654179897470976508419313144058309338781646518304642073633765658651520417295424194327724157719768601344395811369610929345791957471163962261997322303997703887450914655315390135172066908144047710306185561287514075903551487934802041543203526751880891222504274265440847822901781286108395064586126544773262166345663284581834756164162751068242080467109226435694378954184642341958425324830803203894796258587882255079308501661436343216544016568637166212051893725952275707365731777134327530439829952227303376444586751958401653512807631095335326550523974198572236829900183483512310581087233875255589939475264321260964131012327504545523779266698740750947030891718505970945378864688824775188430079911242019632968015937847587263095556770151254767867384453610681475400666924963563043991595816095231169760084182506684855448882189204746599694196921012866559111752336460228448292964547799389585957727444300195922716383238570119782592236250350821541545482215686696698668279218259169278491802028012805083897309553252637634852937052799296742334091644215713197926650644159948990474140984770500090359503648631001348561557257813732606881570910532944201649976263259280923839978714195871152699000361870559905172528038545499018890575136515679078133886672874306564759758109625377461117019082381692572116379052256423571181220407651494111457622696691121502049421946571222562740445797729654336780105130394099154642836897141544739497132407682920897179770860530274236170528849461397514787539957150597921128628262819600557098319519021835597112229752136872380556077915773224658940171701585949617452943498017463863960486260830139587434259291006967445489242053868558516456343960395450233052943476446380584803295184023747180457376803847531449215107545164062499469850455035606539101414148110209894315995174916079414544180312863334388681355068208655957738647950725112900599972545646641995938354755618902571706441369271190923645100244915945972384420746828896912254564607109524931467166491700377019914442309395284419060105192317949977580626435648044290795666934517736716047122910847203395471679353511995285873989191781084933329821768737718349641742711273398397904931977413202879246310181625129684993662388809224644929694249345113594775249187595550178211907683169880264146170114584525363966651559056806375906147039248139957951569234430467204391305873274569928036134250794405413548802057214753091342243597371426106942050937270128012444210988787316800295158460147153608568362382137719580080337704158786162234017272480063762665921054621868141121345409749190848592264321934762929577884537932335394007971492023417050044434436656590896522013096226131229961867347151668012537008441998088454623986027019945746722679393117610252156222562430134696433149910819101932495761997867127627190700485472103253123105709500823165226726866665762437610513159018960116913588229317904589694183042848464976307197732829420186825505243933287888471716783105120606238513488255162797189108443699504108808879504178364605137296525005739879932311229320762036141494539743170203836389126945028823447974103826234432535528453236990010809362151401457888246830126443079207532795969996508432027134177921876444129930880026814961585271528255586771009490449586908646560011924431600076455625587876070368375459237814253318960481684503299592778682846505119141222460327912986142660987140249732383433520814578393237916110887508809254379404454817155216788737188420171846624155238521952526369365680552177697672463162430614951904616218604128973896752035466292226317366848857369911608680331778677180324022719835841921456216407150345579886658849711637264094212901486736338311344796109753199780125743987020532057834454497780903655228501354085259967706713776676458946052385177992351705592081935583550005223101887034207294456824237615402948885283735441726349274983471142722037156941039944851238102246036782716744602958817797294898069852628417260922575842622430854300165175883624184681910200927290849829330293292542088907288499115022465208803761170601170098835221425098583742058627901249740859662955674684068410740986417359109591383777198153530152624560818547033023393245398563335720197421571362267900759128931342345605605947977923992121316893273390612447935038788336737124620356441454380105984283108792970906514507262063323238202286902804431253803901754735242459775439514356694447843041941448344759410355902067617648617827311010941688140320962051465305917020156212355738473437492413113691629225796674681872577801447580197786094794574398670137401855331667898996469607600412570218996909118797908953286167255055105008419267151446592987419155083821891963661549940412618308846694185613008233792591180108761872156973793759379035535829687287973172117201014468731773086965632535830255982743021913351563329840354871949319069873576163232013318598421947552512237739697715833842163473755720640769258670406713866116194794532043393151388937745598788720423376251711336259137111869477491437550855595857561358875181298460755461699896694702981140627214893062883547948491288897136537619140085868579436801680717383975972329646064195635115132607899344122859906434446270576286757733410475132017333976337888033156413445251260111162688862122895515412306224690268604388168450630368915472753763617940604036725655938673568849214965732203259770464140573273745097497526457138781538311523244600042743667263967111852204478563725671377774051673772960049970664385234901712353316457714903505679579797858229191964477768140458897981892559962031141716589189560098230292038086172656085676239688942011545570344493182744102984270719498604952656322534278961481693044666802347239488622111805248976823586456908239796424873322562457973537149703053593907193949522133940258597762137673469337003612302609938654096441219002483255136861266223107193358491111242709971955124776958572797917656665260217125072172484182170369071222768232062063632043715586769447229054515691442677687407734936660773018612012149449014412455247994719730538382523750633128807843222999206910939571749767188738905533914922077659962080003318940712151615490128602275826405150074550962835973109806452658515480189925192417878154905643338494298694290154102864479685470101623471591727169445449224509037285799521356896896874710294695429217885586885400797039197504213173143878441410914143128468239922570498424630749527052405718522698200075191191165112221520915461029083475401532892092112512742104990555251126129137137290542322599891559516064519098417344981715229953275868800884156299979871796495787791787004471406141463932351512819351578172904659476105206746425630284441237255357728833006892399493672898193670051273162314261993764920203051507266338333813986345700523947342400551644091664754538872573913364296023895678003862572174914624895291893656764500861721750535702249759980451610510760997426826066917535797610422662678011683484955827395204914717065734511831995717819598308208737935822454516942372113424589204578559180709572064394014359327849884029693758020803855381774507378097449572607623414115048459005867902372970382030329913146211055423205479959554498133953338436009165194770570954541984234552699399706940734024824924468300210227748257291532383505816608014448224990811899169077043243282193350477885212048879128020668023616851742513830489876447171704451031959420476993456869721417742228069814904584352154007599513600836512747129770325674858099472271990563714201372087796129410310056373562521232741324003299822688574415323880995259232047277894704727192423763138435386178784811340157138739995588548711226231167591121838543466678189588708523458903664536291662453316460738481611481651324708270389618638037153571154060478744563752446720350255695963159813451748188760598160693123740703022288163161657627459209574787506108242347525803937631725524078050378697804218751714276323780949305723211486119746714293351589840385182019214128028755991861449880502528405265717487189682416319449515422244400777033173944481742529533248867132370390751694146158698139947410849818959656149412580012985439265340118460027799132932756771978229107438294193777581371242323877949297552117477547486612726824270568854045502262575068208277718604306625869449073042060158810376696723937339293095666976175984339422944038518039105566938234228162777789323083508826239282360381473667348575090509881458495473839815539023879656755531816363655910710933331277318214459446286954562652376768392959590086620824472829798172002892270057262006308383338960126053608810009830230969195265691332511389911496271570696447723166961509859984671684591040909472102583401631861119178136080442510722811295226828148048525332810156891771528920069364801767214030028700873512017249168265811800071640530931523713562325415003440270929997229587533627182846979401092896619277344964317145886397635808879308763451008264568642488380658127606597681978853331185138559864247031191893942185786851238108936667383225417381639321554967477369156790479199958876477694256005286080554022963284145144017044666653857810438185692266230375602486379923608946033292373093332412888364840199098054490878085155832999364589964507972427844689892475917851374080245771196644020186378406294973783618006873756453733022761538467658432054037923795641752764130050438802436122298699081059465379717941063136998835743136416080155733540229092289876215797959699803446538387376721654676205380767634974039049731439589613146414976035278488760988685336012085363788624924879627326538614648408790541429690381494754262349592970009122420018789935617178521555284222737510740780779323028702766847468602222347434495371970368822350005605244802675348821376180438747979351633027241086127950525438455599702426741687079131052696057219357299423981540270855527348213514815678260880168109003753590452345749926683101471202218131057230988510100369596390846168813598240496056154650632509240221948397392839973343915955808335964342128477718481726311671469260180538515826696401051816452787787574869916334411152347784427375206964830887103697143882105620849858765835689056402573199791522705304922279194304761539577606460392299976447350960104240386528896107062893727086394836621612777425835427056304181857963642006967146576150473604133435713544197997490156858436294488141234515476705320837993698973133644416573719164663256833085653979182528542180076938527202582816541171442801306258558600124551031526132133124289655408082272103021191359385986373117733093124803194147130518772863653520622233380508455670062284505005089514145984971756983428071978873182460365683701370080299388513223326387694690131932025943878822877410959353469553782120649549217071115147734615018516180487417725708980234232932056092447360962250110711596059973038078582421883496896729480069245190295467040572625536738491505512869291359936169809067435372799434665843562512202957092368550848849782983711453633753882532109437921675324595109913668644942068744823424753609676111500363457816321277705484364639333065761881640850575541816251127076207956063693212855048232777989031793928619686356486054580763386095710114947320711247614295761897351830842028419405733920786184468953068477353764841774189022296609222848167425478274373783448010868918100252451441076882298038312380173530952331790961052159607120325505335489511633162963634751274745743310346660187651068291846602432169770663431765511096412193762235725219885030738551214581374180137429088684717963129624917569171103056628805699488430722132456376071216704739801659240703000163241092122126331810581085990867558187662291106829203155191130237043745475519482604071886215395481078920718240816437001191678801324961507297096908039252981006783740169551075778109700779312247995903308659518017109680383845405209923803041019930850819737453536801073143320280513523342890244961349585669622245071654836639419102174404541505736612477050507434408700900510975994287390436201512293706902033856289110571748627803835544248940971699750182152730622533943950251998456679486676003459591519306294859416164688034303868698198725938442995040537771059752485738923105151757756458416183484323567860225939565284546882172185796331565670535785040928436892743996595660642736904889825656834765657350527308962381775574892555911389093985762639593437100091637750987435733186085599061360890622021302041839252394509213805854021725748224950104858621210312814822128157126055466030439726899979783937271060252777412977193845254822432708277145573724070627814575310470586398217410326980813049503398054507477724809707151117865882391644518902083328560088638354148099326014011866582764805984221845925794127728664746670930761883636697631079657109860758509833084324017765889048609925864945364243443943100980350558141392622490395407395573482215072494759915670724391949858829427689786851155475655312611997912652500439110550380623438481037599413038823428803720515137264161665790738319665085603075403292293420036034279009800781786115218855559015206496027150769727193988382803704490955658970127561525042781153379458216699777194133016031991041133545743363212668184679703323345244939257703335744885465770651866306824266282092977804712874806288348309423098122481662203237596189000039173092303233537328381838241738509617281572920521325298751050348379100940727082963146311564483155042902889842903891689757399136711514408344769781209106581799011192924641202946507332414137098007001477283761642490914363150513628356458516677844266850523153612506829241781429003585482847062637308442237102425900848154357034696712818474510602584043625701369269867228455420154137035249008901932421579457916160807850491420184721495670880959570789463960733313173412909142991499685811770718361672566019724406827093968178012797321305803830012531422542710744933832631211602857098627163776207618534513100298164512700798539988228148780760875578402324254901676301401900133915731207751247993365954420871967805307995313134366142065441364713391855661680917685348292623964770502008235848920214770620221684289036157861687017187342043851682364614962905016760243539709137641199037707727038826475504828987765158066831361193337150343489119823742679389648997242857467159654143266942323249537046784853728481124179304329383886752929370012641353560940376286740411285628064088375103685067637181163725535541315488085727055706847664446183646928146507805428172692721622363790666828181494481570922696075153790596713471700677680191636209665181532585534049337604981855902288520474615210802140168458307580207097442704701856123704483832127446410059296803644454750558864922336342338438578016907360239806851833294454680583853526933199417028067184519224659031600692122133645675029735594707362012406058491776272562079112768619682939210770621127397791148348631985312252411915500256407490881935860951849472431195630396789551589547362894027301804053718642663782566384389314564979134017114304765588738799707899957759202829833154810923994564326353003645937699858601499213149485390421972000454313382271339228477656352902459533279439657026536910165490119294439089696797344247458569971793030136993054382618155452318224408055009623121252519689485853066688185103562844600089261249052887887600291840832535930070679619929602921500530119830703319056968984635935885979879336654067277817119743888907916412325039536144267587117025308562139047029191559855094874710946681951866835655237908740725092015261885776348082929987553419184646499570991707415370704562978860380467309688737131097758571880500240263868459081331842652431307483601375640544573389351588110610085720670910607457547596424268781490883087967590329824007335229547013267295967333396796394980349554626838588165824436285534747724665982893910608638414958476639068105407065252777403632973299301895944812849058490471951022208751121033721755532910559539387616860675038537428181509000964348180163356469838414329499445326628211823955465448976223179147106880588622390058547029523042102104925998087078737575016428276412690481474949040834241397329119313536951322399869060686936830280233124499999387024299108723106708812434175493342093634624374012620133207947319392681012997127742459246051491193625295238201445656910062311569588736842810855200658147562153158743495860864886837049950459510869935580043148407613511761076280379368397170836324852196229569001451919258936388429475612843342742711598109453999756762867320000569919041012527336408351690726582306462234307149843064539608375492184597178124188499379355742163916960580006396670910271516750873090669861329652419279561185855973726515681863429765898171676376693271408564126972429658540333418824977283088469940907504138738102926240812105054246008952411549392925624254595919491472969365721055316517203975773050683617218659947101008124397373490125927488172621194504235775144412783883928366442738058927934942047005402264143353894316701556803849983192997710766732345036392662420123549674382228207927411620474156694583011129782868886867732330345509323344466489093828889995743251116525492757982944521791056742220641743227184328368225629502529391406901116842291888155739721926198358140798035411801780062837806523705843723671437048095350179557787558596819207604955536491138940280708858533290309512105558352888645098800096342558481072087321300925328261780844691283311427417930565354778535014180288594480704538709080125903426928031684981723586240974993317455207430987889846557643374020106275697365373749903595486556398080876788682773602645233446899712069344942101776005376921200578067116746498498471907622019894601859691874383417554173034336932018140000054570288742002101143179446114442708792673821701892829981825229260026140657671316179861337497931320803210079910178347177859261792567203526890902429977076677346791629921274591423588008036705872626944724915742525604923932169752760316212776469695095753819780603782675777657617445240779313894157963445027222088201448112555938253714126953690422618892081902403443567988139382014203625258366447213642115971420331547450620842533358751666983530680927704132408395058187041022153465910206254890728978580134627630724283130156960292970195379824160073459082379112253161879226364847780390728178380137527327127587248744057741791419323594272417118397654026607937784012545452151516781411687987558454916101651259008558609538054708012404497551107416580955609674297535285229242169943218236441390822564602214291193782399552014192541522571297042557144786216208036296405117852018114329513721272772898895845006860872433135590405793941342180684523600323320534998072747898818549607788430983290572583144179596617819388794705086569428388212357875753703674831679331960256423537150223584257856513761874043087109146643599196851531990932539036523387401288402631724843830263438834919581400691424893731253171210883051294556181728656330798478723819414602530497194481726224212141771926740385216664062496264727747174892646422990570820787861894912426674407331745298228062937865286106059125520361858830465787213720713021246137080150077380758532060845327976649884559406113311372032091643974578582240277071492426161539892519162557544999123847414013959491072997331361190509446698460160677597950656995875140491582979676447590190022487617274074403207384014753544038501640629605188387351859730830189857556274588666809741830584862703728091746152009568688570069561791873847208651772186479966014008837676484401888645983927183841110629303720943663518440502381837276326467233738332486888468521332637099393270356416586432901687847636683638039400118472873787262968081619056248852272371576539118364408058627600243479049196083710366076033413362288575755289427530337619023041225122498635207442407215902542392611153688428674952349763788061806908658244017610754839582178291506724930028657951954242451469609579399789890200159452718211398341004006767839914016258702842065137868416400272736308103778199602588576305966575513911178490955019062212663004932879609662181395198854770276619284265862465475857087092422747576202449623102665175608369997766768338145517508181293058510894482948992912331950538456075560929983320042494536848641515122051230893787916616575996010880190927930122786768814358798493844951581592730824426922746849560864834437556707903377236180728650213354575573002302163870335594599046714106141513918252169086669979352987749700023166916422959576131643529856920875231803166007793986763461321676082995889017626921135991721430834960958216332617259603943286201475406877165545786456449214598910376783415125291998022194605580551746097381453686511981259995108186077113348627043726412476565361747628532636815930361052039407222496889334525641500731700473456729941140806176526945750118178776797429354695619289683123119073989034483322517628223177447808363975455460192426366066224271243572449700564811835238404115228461211067897372479928227453372670599753493316597944127626034683541587642401284555748316504796554023020548425214999265239009867272187157235162215448761214107219478412286961275378165825971218235056776205763109238946879790838952252161968000259532203228406255926049922110418596909708831493259372102387540175107737818325145647485165846334152636396920858175870903171926097371868570963356665045370182461176976757650773074177736427904730377841563389567229588760194996999370260272232907104833851379064088669017155252704437711012252476400464163094871516721766517836665900446128497371671475184998858632518885284429448506457386201173333227393199377366294359400507214347184987137119854860090568532603027730195490873068713541315124044345010065834276823292441886880548461293857894604288390156144029655422651887567770857247140171159222063467888189394154382346200185708429236786698414829892061258797695515339622243889363140399769453764320045550949685509428637167096988858249256680316148764740437184175931376434120403783833714784523623056958803627740078173394408951665486006161027707298904109401508231345742164100245458285194947675427330056179390433290584501690850516709061120406687090695480623035449378498194320470078678516661924407464651807202781653928591147052318188961664409291252859950393565794101730766592391379475146319266878998685154371297775729507306190144186187460347296169027283469747977329430271598946904711538105419011461399504198663002473193881320086893488703120645909841395997736094138997810076634366108014593085852180150518346162161744631806317192788270994035161418486065123799337727307347203947271488258429639583778915773470267838697071805834143067623876976061619136547964460792349674477697530429946410944432744919669025818856811185417000389808581339165749690213042087248371865931160190813812973630211015607772103527146552027358686418326973407756619400688980571433272928287710561205038635351569163773746707011721328456470111951460385518441238963934694794726772592229856622760115228165825314292068134624916969712845344504420155796109786204291695121098838819457414057869777180592923619600558072534820692143572051667290105254588654851693503277475533363750316501509594808164017114671819266299797737964728273898164550039976591109921609346906417464600001577257049464594469303954673481649084191838168467964596525327951172251726373113698281288118696566776763833749243714458657303798303099312929957624378543669921312211140509538743644285443091593755281550038359962256791939990004653699707494005214200554135684382708118518386202367707649686471461450093705656105443592779668276598061108053592745172595355463763754982462558105382305142822444155197208854024678252679459637092337702440070544495136192447727033876629140214620747749450334353167459887452304943107884689219107111282108726806257854079984302264038629090650140754082176875964419787267449375543913064518693352310625483186214408633986372726072760729842042099444250756813036952917700004744562939961149663860419088231744949576610930728722477746423935334355664545195439155131391958930986029612883552397671737566385503714042051720037586957680419482106216935731011505888470896574289050715495801990099365389106035481340549382451588045839138539521298199950431157145224979662378749366734580290468094728574166952588813774086440391073267721883980174936799709308044358711413679182913051545154124953029488224898809265540308571559601217473002754499618219882976752240694675806448662471270948953246636377340877112364363235593518508233647870375489924013745894440207893918386536913613705852736069462802520715113052885765399355745962333574647360480540646050858289014450388361443605558220890342995970788663849506984092763395127949787726579113074210312562290726626477234842910347790014459179590881193386803240399725807088289146459944771566948687160254053129994246084899325394006155551537571626892617446152859414511355746285451876402322128558949912259319749195817685393684994826976443172456112773252035415883659449613298631628926492069917620439782370972526769955751774421152416785681341647564613381965243640249958711206586614230965393290590159025929902490962539847261152298307558559902451533160606690523061019478754760559476013149994424205655002524914211857053524840766795054666996084585638024173930091233188778166556713875071092927434558098545413489736284415850246665069389909788543160393236566601558712541611993744399090520915407328234649467876969302055632335352577174691003646139466485731108665149339051906398895124564379723682030520912992654782704107370188199429189498893813952045591050908651579278711365332100326024983470509818141160458316478968825270023702364681537633480676270734648580051069810802727485417413099174480650969309343005638227650246685622847940649334116729117365486667112134920487489861575446569307053540040853879881180108621219663773940521250009006929999982371168041651597781276060564689666761972526202675108441111017761402923141403801793414568542493071110288813887542919067194248400111896136537584902277399824012702530088603846126799633828160306693876197303035901505073692253969766674257587033417734108322815394589344869286540762143277563400040205702049360531710997177737027920452009294278351979096601384042714893045207847281628332751673426277659524348094023134326426127479919261309842754572925129177498067387650651594617998222432691068384186834139500462743644442018678448847842263845268061247546877497631946025202209817912304015124795252618090515755177725453033424406604886418885915080162944786220209215751553341887490779996858563928112129319287776452836474993780843373859393622562394440846340721714001058754601275874381309920183835436974705250728741736926626437152286665152110700373130545489908555015006110004787773003018131555303467613156320895006902464333042460397857681057833873962605594520328412926580791130719299027028007951395116149071970521831342728133350430891169738711568387858397609430592493484023398158562553367042052308740690125305376446484021886689646752357256948504813423946064791886756657537770180110682264571847894806598316590091654430725329943804288449619894179868907935986211871158769084381046841161257014721501704077524659425275604519560306175390674615333828186604631171203199563939936478892872521304877752731663042967550516858330946602413485186294460884654931069127176728844742124799210942933078953923586135681629869712155429195136966205126606083423045763998949172591404672384910890434460154425228187413115032748427979663365072622428341605034499316937785182653769642810202837768175306448487362489844713126717722190479555493663494982900714887928749609663321428591013348279080660813076833926960148194859644852426182572545115599570116440509758624789842615069439798853170105958025708045608079006963147873718543263863009167694107591849310946842413923384399446647183203280870817634206983207101945904720113424866230999706930919766713750291073300840329896133418624645779515056899641704912391220569334335340094127648254705818479358985017083580460448118365200172396140078192138437597007445091721770086578047747776648152370707530178830398152336708147256615435913102916904044998404395546800596370960668971338939257747386035948774231727791665921097695227167027860141904253145730820607270130884628248697717105889352151406577485695856101385552083691904278143935641106028255813214766679363514892364697325995321560647015212241070857209601882134410938916501607144872767482190490004624342416269858845984720083669943147473181484856696888089197315907414505901463455969759530455840201776038588584180137704435081361976877657807481862249024280459658085939192168026311537441162831126581011949451126246362446861219664643373817381797148411266334295231428140473667833995521724818223674735513775424000416143505587137201262565276946282363621940726266652715663250447829762868942135063012520877842268653959756258182740915849885418097735246463628350195739877708726237115411762349482801279079258594213348626554562612794953026483720476091498104857155717464245551690117716346067174984170536517478700964050269833534588170768185411376225201246905717302575829571077283789429846609686147201542104752293948512978647248587737593828408535526180388354915822737398252050974865494256081309371079537232295435960113334792842100748307788662170543039072061196399795721764093632247439142539915509896138359526138081466019818281904131360380579205406392883397403706900330070283699030500192432218579026329302624170036534061240575509804485312523981560525654517495084462200614044007188254838103451211600109797951704546932561106380422039227197943844841614813283179111296782158495482158635584874314832877339957369755907653859453270187945033370896626362912158595046012864849344220571733911808771803600003790356258419397952498537253932338597058816265499489533700137948033045805483515286733878730645423616528765245009742640573829585540317671585592820178356320580891431406774934250972958423168428730043626605268268336681615334397242871716765237682813769630008904481762897040934125294878167340721641829687840018336611501122551569374670358339001974855556670213999346639117373320010618706872808818778848906411650642871565035129132326863642977139866671097293890814287267318507916280194848189256245990553092559044839615865111034548756545988350123800000221441921978282602396236947010938583122103020899696785689598362824870078686172207771986249928940158600815061340988328946583194121225139400086096678072320520994257080660623403409265847423601702381483004465543026658994135783445660777938800501605547576173611649977270521413677781451909160639620320885714020106553372514465044719166662086348568102912858073498415929274213395278614669541413978981733490163952018539362435406138398376961383260334833521965048096107697710878142328464377923886158576262843033666564274545086015919445954157364773090394510990681794186577717359078193064138729665426823361220601413223442084804285833301651632633021366788985371132767306196126938567198390797053339143578919741452678825479714505455667852945742233018547798737408463840459235972656863968662535902001423466483088101773396857671741359303998920990062150239909549475131764581764836107836950786231783649313416875315167334946364432610933382103358243184015971423543478204253540140876193290716324370875355431616326041884031239146936654325362827166007217093711560770283464687424099331470690613070050317422773267740567345919488808007775323343507729439797587415881859873756095446040475803303114314030832376582155694567400617069249133387913602192424975686756053630680620919766169219442750186766975854094571768326398379382897618289484725175558372431361682225402653049686608571846505918928978318504944593401909690321029412964667795612817461273354858897147937928950751530572739620184343586806949333261219865699703607804805315613893439358900294646759541035750194113911843935873724160253904586983509390588836155444264525180737877466248792800680677840972746180728355404856892755032279543603801782782804308036654978845486106148157267896520448220071962924262138655727641663322211347071389996055654924885652521252417494703832425515496167414446177301110523304812513314419359762249013081945857149713668667013891163675649840038991322331072389037282710200382320637660180646763966944188865767238194261989332461104354372921775183499035543693253256096697007474926382836789742221542247141305310370892912767735455906097363101234990182633076968725648524467530307653103270040269457644709325608410539297925774331449265082270913201535117321230871550037243940073905200155077956066986628330016318401285604038902882542309091127184866192532343389868688051830494985508768702677443952325929936058903473450173540423015496341772612035795556727024643136001177552790659366017168737991745994204754336897611842136033096004270138351295532126000509548268721404438149371449448970835628235867140245727221932793486795099605275345540061974155893089826690859645060151613398161560363638163092004355763009963883389064245904715121158527446372129323256450838963246048635983204408276588774603471407887364279202348857993940463009125008455761638884786475381387170878571054962193696579675070460423288125251576355305373728355289275267485020120056743746718217286165884076305755857542875063369261504231341498333283523177833093926539410526277050793534584622280157515260579869902658359341830916878843247526410474508126124562307890742542944572208986988060339139779382202824812195241338673920686190072510753485525435842590632549483726732083703489509595682209172971073196715824047541561522436733492109541590018332169212273275214305469941393030760387988025442349727543985469990477772911701851851528541082765262162839033572347068218324834516866071208958657804743981380488520022708321195843060663126593166324326601966086531897984762850882950033471782433423448751319877983057498840444544840766609665200797290287714062138338971171546141006724739519129344242931801114565831062470745640620009712831928078678004984404583937227320460227916033699170295022779475227656032527513312578167685965803073796066071479409062549804480057497450861552446976127238365618902879134071704004837548107270618577019972320596796298243696306827007212647294073548420514077885083273030331264868963661055845092003988883813089213543168332025340315100282349659342111563004676691428100217273667524496252187935660127968586991712382275196514930479489173791280011155497658073321399851400658565204802331927945789040600740115875355998390290811018161709803548727340049375124173247068548192438742543548357738205767320371328789094075578826264877237500604581372426028594746351950976382229156303926164649617651857134146534099923132912801923783309053630031352460157285337447059302450491311597132591728010204806788803787223736393670626029315623825371118308476115595093971638872846216335744446705961051863423501005868257809149988288821716615937669208239701509218541625174584384962010525822402051387785104356803007661646247482321541055954337814574862130197005141674226725613518662511505963460736527025854786612103520514575637192125859115651660294169033422651540428646066527490212205309981964449035527850642045226707588648588135851837406287421052735805677897394333642262254442734386076690899431816306169206900675297734395414488253739012935184893006907009217649860489648444310675093077287079695678621766915728690256247013638284612520268784319214375230734297943546779618970046732280137105696780828159281445051361272593180257480924575043697154412749656977190270242568289225935031526326795902141177749424675081443003306606917995342704067155216100348838045391312380916820742107464852660763295387883148012908342186795217976659076851096996258695630801109797377088734377763307901602581213722083552421007470928347556520450645952832985404486495151911349336343614592239194940522858719507619585181691818702536517829408778897068919499153954700531954566490568531748997587001136897686545296655077466385447029264208647535588559437979700479326806836708286089650041480442696640362942399617147687524985727515383506325149411168287322559258218649861552844323444037667975072220203167128972608020693693791030396606523208590854566602148219483217683602919257730782071112868632998122053106416775072356059248360565211834274912894536960183945854331914498392842423204855156126569885734148058955496949067391591221254538111618730428315593107842092735069276030506699885786508324873755685245774088027612479925665776330464073396533357992563049174612456505829381861123367485905230724177203344988054536620789084737509685630905513899337875893702474896048352094601393121825132150779713108749764844404937229112057626519393450926436858994171153137408880741845173038722352505323760592017769787677546905503920902191714453559879806046866264194171211367481043661221097587630843740849072826471629818353516914212702400840726448926067543220081742299493515555308512265213465261232222507331658280145269465123861199252765239331216321856566989224147032108344710600208042162835665676826713210985230502248312789965460105770957406281999443265153150952874934150067119089294145722559192488724153725826029241630800399187749673945663002431109438534723790143836743089795178581456894957024610629372016167905305536791555329092366392679722225896184733857491932652816879822441892835217596794776940737597707780503698590316491889482819402509649345818378320808810805427260759487438035654803146321288445955840655846221547655966524331440969995410258400315365829720904085403291119146128430718305251739665465319147658890596727077165377472574916650570570597584614848627549202041803311597421033616295966835212369807175425653670581182320233600737503039457373258117880747599059566474147009487581149009711287329106746224786380917823529357322856222755396765137649659373825881181569463714395872337310238295127329951686703849011545071487797911611022297331814212694061411472141810916642152147812960358784368850206616194652168954139233968464970056935203113081294576246796388259702763277555296402946477086640781991849567954520837492169663838734386867969943225077677804536521016533956201159526245145223199833379288812532626706261137419353004890007253466777777871470970577254019392644188713141778448272644871696036304508877259784663584737970590652776594551141588459929116802659972489616612936136179551391169876174481543798773008453398122072541805705260912614713027022501534892795003990384293928106508046549589378410929151279558014565210015388903169915296363770897579267728673951447333396234649840463199184332219570552257537369672430779867032007575847222690919120244635295071523562983195441601158327294602453114589385269152322548017781800014104608242845901476370020254242587701578043087345404082684858686972655215257462869771409817945601786083919490828197801721035856911139849397371698044391908496161096452164923487214133355240490883043915026684046725640479296519960161020571770936119897958981110483287150827263423450054689775134361054180267899074535546630598232199185440734224298475725452119752971883435259348654997736263227969018460423578409747240952234303135126272469045349270374271718352980247040109433216686523614973589065591823992040345904591362153256902697625116719416317891554107815503158020720823790367909487865107250669769033194499223760017821011243531445919841895768959743117726216718871431664460785596762348883804302645120556206031506376564920007345409321944759105934819544354667238653769300555864434510707829763786260220004466623750333452906330782745352757220583383842498302322006765834305793491437195221558591373523393212347875411035530331423836945210938079929764687131309894452750258274028236692683709083686234143430053777087449138646339444547591308601421167278295549287110761757452039082233211066912922138438203898076078605873349208916883586109081869193354523272121379742063720241025985872187912585769499576246512606607607878420054887071466013746203276415810599077629913593260504364907504190350096313287884231008479383291254093235197422640954547050431523939047129525699641643030470822388114328851887382030632307531947945287054332022206041079418189117371141988768772647515913270732418535121543034517240883321211363684418939079513407749486210585637385013025144778040699280480579159656158901125065014451579504603793127049839943959324493040839003782778382526575945900931143900909111313812637706473451869485798949632688137372768358940181501135823152932245983767649653479603046068359150881112822761297008115501318619419654843076721604665606562924406456030676000824353759908516739793121878665043517820378713066098544565595824196206550870531104935507233145982151987669557682809617046715525174572856360431045105633680414823512881003682905126800756014946361580622152238019348337533484027567098820689606375086338889159733927960023711182928104190194797447778712391456965949216185412932297238790727464426842695119718370710667076250878369145150049710022888600971870799522686530990016201663758776532426784062255750069635192671534949911899355320352282214230771981351113511516905187049309182179308404178039020785904727893146441221630514005026928362904855955348774464386207604792876192866727236166977067032432386228299598197306042368344781530759890591011602619547259502250659181697753977529693469289067244184692059710090297996975563669511993747527278272861594076177376274685800619940688830575905537854273738701356617191807796202321459333865350909217963523896815939578385048302638403871055985319130365600870624100144415924606099176723058595296223110023746161334557577803476442185187331307934008769330514907036258710612559478276817065934029556658099350394887576486722022371681592695390527044445435000281110971381288726910807245386943070776379404216160645485145012048752157067227169258729233492374700100615974931849772424806347013840576454805352624254068535211809448739648751539736116538386478372731275484369987430237927272112269220760914649139951751746417554808935743859019718928001310451941253806309888207655615134749734148402491365300190223235091970418973124259014405950587339171868433481384490349613354215281473624697791772541439222155757324818438866514087411363212667835424332762639416521530464484396642721176401200671124757259156704732960800383835850339277648343642636755222421781662794996295494529255094848117838910087599526303666150053494847633270135241354917309123063751866817191642302936297637479296363397620130100852091935040520017845009824500400619229981921733179850840604697270376274023100937423137166923579849583483545836590463172985213410825203323868814409391495321060202276028793893238225120707284220226008865449129053229148377682424963809821679549422007266180283131002865564708018374128222107269148505084432018396055467334601390293343153100369230815589202504332069585835772776009263830399160737423303550254378215147863095347110963010945742378038466627930759777731187169059602537796196503443772526880224397975488685999976104407131556485955187672308797664933042331693651137559543987794439131173012988427731076435769562068563708158095798389305792827787329113497038517472765181660087479590457627572616413109384094556328700232952656515786044781597538557071999490304998195446613579299118858071312634531943730108696765010938666785378977975033873873878678028597782437663935891229353081176946135083903169452288712117594524188282918749612875144323033948758663711445861990546477446159553570316349405662878887408526826186258780944891789072728454829113834959750646410303117997687591675038803405847304158840076860947878781968708852985208145047004430153456183154553567936400306191525767201213368472590901543670858926315130798514648922274836926568615659045145511961698477984237758903783552385927286646308618529382962785662512760150420427627963930726406165485753275305441610414206248568684134163018627900591947494081591385680517293464571973027367746326811812712674613177084806494519135012525690371629006325275983744193727271553060306310857228400716817880665934775054678214911766260022176849634856148822494064013570698575940908980558882203018887048738018954929366141300070024492727142877712564519360194494693448531157764184804416021107503389488666626941869860506308234626638516129808529443506159519369082808898126182405596505672437685698680995809589012434581025341696116290668187603350402135575312922476022199367951284768965198445498523312452654969667675908812193803739350981141145409454026261629083013727202494687171759784429243326463907289617259361322786650756032765149686040531563215141907576459240682780050660095685398128204184657986634449994611393801637207820206952484460420589261553595911248927564098392590686436678552006802704513556291174714949965306227074814741029097833477504050337661729925857651516524523190385554407170252900664664393811942643229786053543607591895354817105796511701556947832114533276652900188955782977111850843891937892024567471650992812275876610950841120360501814307623059585996377138290506711633468618119255627921046108646662387201957197664115825864908311641565777270519025204093366046296885793046428380621773469167032737025429978683573491455045173386361610383092567488959139165836382755685488049632753765675436903363253431793365705730514991617631658211058828029669192635599749522799802813438797935852222993385262892750181054564389302614053976627617765104484959155158526423005155232777252704236149772958965088343618732678147293154457181124175578578625491754529994912419124479230890610866305686211993974591156360302026065091188939379326419957055816973389798931419171063923710296198886399329053797207222924571094424144866880124468058398467960299553344266257711454821401684703034871211282622254240447771184766227391830462400600005930116969400695101956563382443011598303652570942737311925446338779536439662164800704530735160496441678820601484969338476237736270307479106196191712507149145255122107999709673485751150593534086292126743894854738474376728415391884387340884890954912133624576460973522631284291883928258519052996957706030218352542058971522195172138452225397451152179020546011360093610898525125941135685869582829552664648965239422441849780798556667932662633970490353871025809642490800132274363391351483046267046858920410415565800324004037712870054031623523136500613653473091280593797778771899307967202914542886431713725662091557040062657879557247021164693390467932010810529668518703932370430462200799712683479858617774862847562808792169001410899760279294595833147766041143847071210617889666007479520299500440790963337511304876139129230753426132255262279151428961116527487361440673040291550443139794027590743741003509931766437873146484905253029868643220709502845803066289518399074687675277938742955222698973160187850275915659178200096996818215868705760990258058425033864751129554166843234047159168327447718957660241778389513245788698953673410825943365199638512577607686601156942984174695810534579821643057354836262075914822384779968201153954914424521761254492233763166509212528312914875686496168182948416252444999977163409923249627387318341905221559986464631671889236299964960905904596431922457386787907415714853507648896900129405684742548312967627775139820073462580114289144949515210124912346207076877459521406608756160561500212296981659974214775824006042736129672568654193800372264785943084364373452497419724005496882181640308578394883835865112282169456276622119279764122343350380212498921113867622706888453065578185244297446362899735698673883695704722345173440389915761321302330917094977013309741377427165066769923328171250188612295683664277667315676317486952092215167311939577143967672794727097646965326800857641645841501198353190431549234547228722756297102422701024796852126766922182218841538529066223038723114132484408600663051765122507025273235465175117552286729332513766282831098650890188617808113874328141268653089356103220381976124733982379282605999110885227120310221053937589978657048761966375847135452754852327073046298402600051344103920082157608412145518737318610879280314696209533032220327949113020275538249398896734456066745795046386713991942337002399671013068344223995819133432337830328153380242180261667912909165949878339530927159923117579528922656703163635841823525153515852370407989964908074164139086029462519765397147128792955943562540888791790696701280892820359339033767584888081832721242003476523535007046798381425690151738662946471783018394969664474927097580562487543011835993557394652418591892713768638482689437734132115655450452214114014622100262404907505797899903922015492683672856651127931707740879822006009533875847969641873243112930831892148681982656758017075719323011916679326929487164370771935878678133025792101487156517233588984694116159904283182195658664242006490394523598501309026186718548865198003897984736424109618939361839687906297498965751361191972101857083415726716961864793508101886558561003344806411973965355974114176138360074408287644425138097495782172553126376766185356073756303299741778039039619252013193843071812103066331296085586782793131955763989315505369931854987103266161750047025650124897571808283758069121922523057987439963165090969215362205439428241371326748148604246362245466417541425132770030978785796067227051774252559955747605703355425857910894060870285121490314837684012703227173091716531939976839596673939606625433962926356189925177807157763747116669604294181168252243139172461735497817352450046137929874568451742263409655591330703932592082596189918141383809606626038302530630189658328065425795910429981809541217465945399742755865619345613212845511645523134415157638586913636106420100025017630177789335696313382544029685256247859835790602060969610815865236490857825523298120847105952763747906893575294413950127705716142307645242250802169060153448585335557237368367581573449409186584076138968276999473272265495918080109988923623769937977984761531192292137356512814839196904156412516141559267804600862783459161156859479227258539046566282644199732909560342639401721433055759513252778198129422573557486912474775423837170322203399631125359863857970480478353342860527126590187089804927780855574804241454983692356633823819795836441389085405936808864912857234832375514967962862686043341923581633568480609235143676534922934883671962888307112943920053168998728449572373504200226599301557371354368645774595476996264835027251921468322666537464756118724570468507371391177772758258209744411875654182454729076488380950199958572880754161877134363573654653036637884362166073517009945965077973756777098232514185368768295123133043124870566513394706346831595410159936306017177728113091612923503297591617695128569150848482138646349391989557945944321711335710792094815345749452466961052147241568853637170357459214139097884393300447628511641035075219308330673467935627699772944959812820624329855507943251533547055536272804402429873524745367174729630289878951492360111029230480731521297812289602008828977494033738169748139501972012453779840786909873411921889294118324794890345890852660207945247190333591223085613548915143581669056638448794044422262933843123588945616869731826220763617449010292279802647372033362046712495422696683358441642872818457014341692085519962504734533980337101124028894438798130331859084442555470424248723367642247676046200204247284892159521235496244528652687465981888844000025505906635857837025407372514269207791603343777366774127725890264436490179831710982556900755562650455422963515381871394254926408313162107376890084232694656728535486460697116354778376941205454559144520959330087905180683572047457025241347643669864257613750274614380084237794773291172443209114398470757917407606306036004283123651951807009457966526895970082408647033770217470131420211443606401493950016085236355759954962133698458229774255608672329222216159419638044305478802670489536692306891665922161003538833304237098664664996635022427043008792756994985400794404507193872620876961266842199244400855198943014244863528244228737578466640152409067638395316828577182049527684439025896782271876903732828294040072385792186509290621169378414128274011321323058047505612339454487006618369160313370110946039050853999124857516205528192663786232213158740276967002688466701613947277122033911291556670767542293792037125998150244313577211275148695797711931813261615633399717196849149045312726071511146779787451418289808081025330299673877113697235662395317703003568326370418491424862237695038097408077541930648673110338186939333084487787690513451614427007516254486112603498483654333550270922065982422514128909014494370844613281762194280491449825117302839857975967170323313419509977570872443880936764938897816553031229708822887513432958617364252259640997425263935771115409112015100786126516068793311983838895882314646422676573699047667954592217197868642207082549055754633065274338583872712144085946470233739300567896178108317564896355879813226177772074076147991053955164956207430658032910739145711177287208262807554485786103575062376892283237067664276664697215090837391560497796242501689667894051876818902886922247919362841609873965515628508798631242083709727191290675386963898909999431931894099961329336345662862996517994381714705617192365775448326357959386616784637768430435991183546052769944199765889204655934342163866381427487503952573459516317947681987070423149377024634852150254367339569902092800425498662521175141298611924102931451761445141193011271669377978031548389551132258336753612400690065409268207519508669812872930448339126590106899192724550844036361580459959336854780571136718761820089424706151309637790193600229523678947480404871259434915195757434225287608810955804841774725749275841943314206745099878953567354351091995604268045605057398670747795411373820580086795886275012270599645864363172770573752795942529505870781363012064263140363213267587116175786785508441056947507865802252002507354050930849842448040573403740664901090900606694583967470152615853834095309406098019818019690774866272753239653679811972655628159803765749931559384480229247334734313148114954141567627536993741610552024747937386060608085618463679097857141275062176644927326866509903263615281829345539075543430597465506213135959042735295221763702218430623161539282941664080427997703885434595213640798279276616072334503632669498249228857128656245965829811157667161767459687887521246819599947664847535552714904081081990453826905225506221103204877356237892786705902100089662619294693058238349901051601219449023595056656067155269883949037187726118664648391176315890431537218930792535048280251213470761123886334374013523141400339456959206506376329737162678992486325125393562149424783031769191025641369544053710664938559522043945397724253233702906065184850363134090987212447418912435056488465897648856954398313163614727868166064011273904631599701785368497060248752213970030329405221477700374037956777362344235421411847875097506424805157106902082317597587305348296429873295641772738850333698145583269938378190553189301533560260539891834059399989536583449358046003754972984497168394580564175716608780505319391123570032548175642407533550692328314865161110276717849199763627005605914816354393238872302783285947542877082141993801269501636540984518862477008039814265182551532076758270751295528435765766501601790794158969894195022668704601644902096178188577384628999706708070992370053198279147851062028504629546192711091578918250609218574005276032222209930346982716642703389197968414223854042275658235181166823256089133887327190074837276887607207221867740421393455144985402668006308585339738943773943205448821132029590510159147302705170562860150982426479436477938264892235376995393427618366031792256893549157048150161719525716353247445898459249692233685482190083352911203403194292576369592880080976731881774151455315207873071144303861233722866441900985871961339488908511530003781622568029508658964170026043693665525722336198575444513238803209142831182841456585642848647426283525777205976569620720108142097091212696446635800918904896702814259025658478743629814168651117637146867527251994906679712054006449461971503589860679756167365505793350033516940325759161122323166487576840311797740535752669057947885825149214127347385139086873817174028743090442185337022263788788012567697785774969979463683036122291494498482779537586155386788614673467213432044605613547117414416886526290667860513717041188981023647469905996781073981772648215883946042548091792008176036777502301280281853874228169654168835994065591483391598556699010318414385382230756743464633372757026669615688361723108086100602941535629648766494486351440410137687473021223607920101956423746089821240976548650294164795459536262623582504152505716804495125932144972626532637277811823111400383143746364424738454167507968834225008288859921858611897804202145560890967316941894334066014865168298218864534874635945358112035571356957005198910752043478677878066364244131123362495080539902209596892494177421852932179952369594024698787616924201655215773524968692128358762079247257489787202727501655697109507744630024248252770292969220403086697718801433158630166220433757934719514393179954442426610707890234897400727586663751340665581389169381324842186597232010470634796789784683718257734113599987709863001840342571116123582580264703830350306720199576119840262958579020328432529387108603236035950067899823061429514125438231791628885807582947236711593090023925364850884688918635087419923208836972318564659194591303499685477501111234699866257781172081871889877042052983937186889841975899226925041446638086809331234345365396973868981516196722950767531386412818747721480355305312801029383027722879270937395665853128012100357146402011588695337624917480094712345987111548298539455157626604595223960661559013117751515562712282433477190270356777546024334050278847934193183889352725874192824377071728380335529235695261961850490428831085286139921964642911702289571602766861346439232978113176023736887527517320914388614278985701814540059642939528852575975179982262047193262497424806399165103963551465615051992023595545377566677471201817256099680857415117348628984584528137824774450656507725566919130957914439931591372222996556528864398165096160819663061011167470837010241761751619237751075261712964854024322633098925111011707331866834212122500107909127489321054334069893113672168228658270369660214962454719110982690160588650843090655407787494972318208114417879019422995124961515180773068684983038810097138996507105589934911660737446591525597316714311492790948939733285185538801541686646568810328813011220779161988431364017971659026473726706767601724624262079652884876332597824800613396130350303540889574697749474441720063979018335595885964256534326596186511649162106149164642110103977918848065823546079080857939352962534329579189490387370947559620683426438393217689191791630622008556984386775723534710391172417932946884252350280635647828042258268882662748773968122079503310123883091118540488353343205742923990558118140840227246129972854711562806629441639233604874160296333555104220583759863923809523093416766438146059439210276002204768608508778064861225668920685386115548154870276647809646858193018816220765966625621457778956161260614932414738752896292058378569482826781717909612922237480582169020727460053322018123227876338239700074355090308206489162026850095557263133815925606003813843452055956323089775943969728458526437600740073407513471860693379696455512370142661035182214677783209583609529703566551392581746728857743016611278455858426140165161222705716454356086210392258343457886298960817101416433968940474448152747474405235961567569477235946113555395931780440872216129852798565190977481506289650155712421578732922825656262430166005569710155572500261781547866575015901966242501759424648787037369499664800272007182862269240101378133422943873964225155784788222228885794506341983850053985222515471403767647083366068613035951553650209637454310315478378160408094270228657931226545323899120774269228377431016545392141123615568125930282077643456752544563586072678086043493169314412613771449038143506048021149477656597028747296329524930543413575175551930573803582719310851726446455520074716214001082156515960627825488399245701301303269790508412837930518234138585544347520257579764284730687688294019529782958427316003499686198728468399936198767375891584132952792641858585123493784675451462522597222209931564065103005293649343202351629314973177727643423091627646992996078866707129627045315548895643329362685980693313413141352343313457306808887805942470088076847807241199025945023379806015675076555128242788184385693258928235226442308768517007535348959459578661131134683117693811207528013847232696159747698917091006406510767621601785809529126893886965448276452545299680110266444292729267648531740320848044187555422295695102334589188026754007897033105982131046951383075389250130923440456657636306666525985971324940845138987722880509029884780170603283073879186658678219631281588672893059195486502198523960751491276114900217473138292219180112301983837471266578654543562939364853972879965808725985777882339268108951677306009314508390904100183177746042943836073278371048361012792778242770192844059685848330919088600956808157249871214251429494465414042868995707421879406044183403022670316556170598845895408922802377255993357796284912621039779802866433560515873202343441318511438866307408383380564756584937982374052911639915971203112046930592733270697452755121090467123757200015323722453185191110184642754331196693812390261865549615765182022556831630324667923233590219301726949121132648879951211570471432091080446147325393192794081175673712369594522014979905901612692336452234846049869700624809565685476248142455954648065651441737384304479613233726934393230265281482027292336027506684569490781364900505728082944602709472898372660987423721812439415542816028130257236967754966332841636396053878048238482580285564058655426604657093915495052424494152306473069033937734014258038833211453281080420737496855205292347762218559177505859998145500873759749432644125382212656800225337375460543483756810699403603520430688525076300779286464226144232644244530666685569940181928520807590540521402153730550759900273790520354032739611232148884363677360245396692043469680988944220888361393139844896788031888964726689715328723207048970073083587437723425869820500107192496484099869510005902237520917977124876210180637492054675613401689396298890128189178647852567054468177193037738118411878187195871250181253629135607861519475875886827449709414741042429485281725248727931310508388983476690127971036549994194920156650573375093872712602041809632582254962421245579807692831788885151269748413752861608337141047039583210148374786270714223898079952048299831008548058546478361378343387775364011476354802854362393678763127426279476784821423206558464189120186774051815355615489529572317068299216000877759124781527563441512126328665369515857245610323987764668192236065178800130552245953523157441150237706781253231028236428675455103400142245989717835702677639378624019343718014619677559685470554861393768122969488129461233511149649986505547780199518015210060493386010568543878465960930877518482020892511877125107543356305425667269759276950192240314830641040359366986264012053484422178807853160957544321810515324514196261474828932486920819725978625290933539489005363479319032861150110429220389471269260862434690257657239273855269169346768124988036784026726936399475151139529815056874019202730829407369240110862814240015244628053408139904281729533725413582902300440669116433242100675504579404663222069379805182117660654829448699490266936604568702220508125904128290486458321128801547018581645102330387748738152170367130016978273250368437544988302551110024556894088434161096509845048780359864398900447927355293027355511807412913553150160335234518186745376536724184900254224429723093077187836362664211581958739090740949717122000259945187546939523265149238927928593875228514165649382301504442667181132408381092006309548505964090142881981756822091840831733682009189810420232716689051839452173920557275517360661187740892753054308470390868912430066620595608133080648787244609270346560472414121029597352346944855958372657666738449535250541922388540243232342361794103288969939310707245133084379744937090174021365136780904882834669243962782555977321146470378555406282790540163304216908167424981668515762136350616640942168271971270193156494281205250968458493036986050156633162878588786180050637624628860892009901350588511314395809612701531544729526528017582739955673921187863002286634054855109452547364840981704885401498195067182787539565368272284082275999706872722716054035132228419172441222428444237028358315972022582036923951355618756523297425045729515561486398310890218105305252272173897355426169978349131477941989180126161615359584475512871410849742387080403476730105408307088099787566953266330852274737415697458122866085787645492921506492661251081629332068966670774389898956294716709844500080111452460918071902006997702512375928304948806513974090197011792404249607722005438282942186301193811779727916080717710661780425329559259473241963026446031096094715063161095458488825938095556766020390702566141150271039016889727677694979371451452813943852284943792736185565649500677000247906295188029476943809517515732594986683228642764061151174840079471250406829351797463432016663596925069228009900767519377462552277405801781977455446397815111132030273914699954479378932616146567054795677658345858154448043303602708186711629409883643779799954559041903362532848438536661511393151168939991746180472674501171276281492504538415804852823374639056748015058911026396183531800949141262500513738902007551938507307241737095074708874780191768686543998114577598304308085640785354871855335014393674604088653382584151097238978630021451253836970950949188703811590348101778716430939890023563923542927586760263701789902685703958177921938627738065013246182755712249639595854489457358674747631181501658116839954634167460002580144565930698763300695013397328104687384564747276598721584272554744365419254196848922633039678230639650690956455896472049159219508182350761761004172429057864347107949907905272296061906676070917771540242528878848011861189659425455659215986093601437045246238250088725394396650275601549308677731063769514931225355922563309318811072292376335201431362374430281681919051935156165044379372808411624808900987735842948226796406830470026338146771006167575040363777340562375311575596728544231675843804921160641149089789581740121815766334729993569323570466607215175556227887383700339465246718446804054000281365292940355456453669025269215335411823787316297193399489282623353611684066205618152724259343718138348164459398877789542116545291129204908902112107079254573680504722668759803252600382526560325175757336114572311198805395501814533313949514142082242397211652074098898271617726610422157250817889339477775440510924774230072908736139785980833979618749023617275296101518091856085951759849008258620314255212214352881799407009846768679482540981282462865763345086175651324859144360493404531368375733941002879776223837319118334002856230458834695718547682428999959231001248292626253298270853240464332701968659358560871951887215775247305381986412498413100817950706899944001270947565722132667517098727364249473544510631393880825618076951838179676470600017626702250954491438992671799013040731574804672264565388007740652866941406806891020203457896982947885630430523844184142208735077796298149044541449395295952520089380671808184507315175262673693467636594450237279698271209410856213266961088050517394410052647888652596456311055117172221690069482066241861980852203262264196641165385714048335693533564833531823992862355155053957310505168293481919435245566864764099622655693805818354037823313567636176007394512646925308160191390391101734826938445467386902092557717264696017588910708076756249639065631699720165367957213534470876283800135965799949111339215144974799116100691386226445539366595444756494583855448302775439755266091425703589082165963983685016247097751178699527117889069261569151028529614469633719855024308448352011062885915164499400892030314340426392631156832986175670942700595659322291734571313472616833746131279583069134399448862310227896258535644837605874441243334718581145947468125743310634264927534066942306535614264001457205673369383450966447206003795469577634109695797301301618798029502229887429799993050922215032952986448032971799612516414321501804854775701336514389756172619089425268854017906634296620430817862268890418691141779966619283300002085210898500722361587277118261437258641175063979344997859943532546764737167798349566721589427480129864184225484246524908842819298208235373758155369276011977119017515532074037412390954341129898733022374573056670719683778205036065628042442002705894966271878070241626674540458941489530390939011467230711087085348684563712797929312676971375912364236627327654186647956428515519345288001538450378518765960758823934537854513127909183566123530121422915713561537244002559519997319546985320977589484687677401652900590958923994253762847849871393540990825872916245386876817379256511856906612944830143340729751715686897900293907406290634644688859799073178911471857301082504958637772200852904437188714126264291628386191230431785664327696932521128685449480541530667844463826434080326696871472651765179989707890642557642671950017122054852334779792996089258021920399520131288385913322258787139925360920013038057858637674189498940901155451815805277795252250500561070890662747306466190330937129962217662915252108880730888951837688574239607089808091607152467624069128177719393813230573497147297868184436101065998062043700798142213022512629373647942258619934353279743653279687619267420252919950072018737617834905009266105276532698411647791561733268958505578486066304528945040577027837466969376387702517703192417281079521571909047402401439692848814421677743454569443460433353911030188730206471764916451692224918874664454615960723137297863556494115544056470145777654139473328933474226579386600185497154002756051553148553417618220279652585134831195022557368275854226783242167460272564455646973361690810049610782680567234111617630763267620460033772091222722223781858322707933034636551719850079935415144129436983168521635914447169294654359381751701726217218637940629068784836963629075818688252085436873513360033953822625699203851244432199364666437147310630284708815375061425134462331756329140877824114836304571721342693740543224977113608315498001114490830763046243965210518264415673550098633152194366967871528764167106563034919599675438906769627306076980332023994948473758240329039285385452760646470261025208916906114353185819735941104505043469049358206868460970327775754312523269207264638644446041042833594027270505343268113121305157092830277648288858385934833682067216448093395668884969804906744436528751421051025313936161390881526048156964458102429161502660443707974572238708240545512909010693010645180835111646251967659651683881867934764566630058310814360261144213135412761677934075974649942388543830999152885699797284504963087658104612469222153632633189218260747042640771471946189719810330220527280199884153764500635096749308040646118967857868856790948574557728207098316551018925348741291881821837996113342790621893283799262046018553587039808751616242035146040035335993785378866768570549830664374566609789455424901107850532340944497007568543593955921111135254789659053355387727585130826613446340184898182740811762565526336732802017928660002215977661666110931146229971298015497604334594663279422597236489229820977670387898905166928645673574647844048536533848126379085197346174407846967823444084344913593947107962117387114616159238660953401830434401145560983675260365663745512977366899258758756111641815271540954517565918282664002806095738567646004984670605841103822018553319826916236296872284166830411107558044287183931314654023061451538378402095381642232665855024763836686458888657144595999547712994524892385587446598138131306466629388224703912963397946320862240674820212831738278754648950768207911609003195570468612266919671643276010270962254065571830470897777602584292770914814254533963506926255938430199956945724004783316318806536072857072267592479274188432028660920165267068591445530747188085853620195115480260950367702531705023189623075349586389399385258870135006630604446154995322055040316939549921038538087270529246883316670228435695339541144439515953258951443206255261492537769312050538766749750620792724541565004194132425618127662706426140035852510469418162996205578947672192129184737890221845831608758244334964658486335368016325867899967286427402129065637437855922701442968793695448029953994315747152639617776273688702519510435186173126479195906246956177530173637989173719741526034630617452305787456003189220384073242368019053706740950937323493400825740230668967374566257840178753839138209471641096457375595979856673938580260725202701105268673422237583565942945521692562491893971311628451876967713261167242875106356390764406095331841805656851205325899783635996401368579989761332474898844222806894626797856508552391043643616731596259228195775686323549365829674428337237496108874257607840309989213665546160105000364552096166615402296060238678343531429721413494079232978802811851536987611737284105654422268296873951107382769828042410399536029449671773412419734444192197000741491091201857611469669115054795850300580174019286741724656135282862220244814763353045140336204237461365040599933916694080874327890573964451514793717854288230361994636359209976845015633647397592198390964162374062734557868187919892425868699175719991183706895483879775107235044965040201068509639378358090805840638281549190231119719050663975219519853048613274150017402261191819328154390336058221585210705022048138298640626693771050930349721620790261546133823538573996611244056395639363912104496167201379999774286907546898019636691876337580301151445780576075001357961247332347680396446672764244029171198630196282091312708745619785731873919866617164205425175586424899101928697586819311409108682238195454485694218294002085232797392737193253771304904823132327862403296661988291612431970925765745707614489128800122409461044926331685728020890687081910236141180978094027453691654084983880639059669152384122604388505691109771563683717964289840815477430863974090284153566162891207504610328111415511163701791859427983897386020476977220849130707389161628024300133714213146251254178460560220079232019352947528191784321829422275256377200349280085514842979336942228075625839507358124757191184375884574250875504999445379029934769083051248988925997539658588911021798308293264485765513921539795513673375715860802702128613668710296227184726953491569784941575130317365493701775359492128529548464469192677983803795394388340225576430950033553468493608946648166921704948236876427693259974427385123750248118088880258295319984689416069708235753286512780182629163635107329134589665518507842519302437373167341536122526286985224607162880316758416368697701365966423679908701782151809513898478829182585371374103658987146457177638504555153484121426509556200306402964206781022072713494764922080787221055581741128882794555146811411063469451424387614813408949159128586584500516177968020601498240350150509117109415996251261723163955015500343834280414964808326449740865673469587202023595973602401145461273501548242983428265327264074568057961251541084711873510109082673425814350285039974054970999460136080668200548335842688947015630091980356750078169934426313444817543312338646486057305031886387864644568016450907703624409339063120860792012173099420643379380201914571834480761980585543831794151370171306045931726482815999329524261512996655915385249203971499825263843198628263190105411198269389049148488441498090677999158647617940071644545780555721969262133626645156797908759241350018448191621693317757739258769240422447417071420327560322285299990633885692767958240867538894979156313135916919125082779378343265750535865739751423501343420476798527037449440976479852866516296620510077694555914144611091372845311640676379394165837748901752386082973210120739289357685539267780276479142629614546399042025559153034412616928974681014955166707131026439230774669205287677936083832706222067202700331450601242692494024899140902180411474247453976667478099549483886928883158452289114143459852587618857384537262801127111905142812804700045275132980694325184726242795212461827080757672076601213520308168140856695100749021885026778680213409956307740247047430126860494621456223739143593786222632193021367969208667841611188466435430852783466778304832697002539379038633862505237135418105698951360392890286296975610100832625609054765477969101627973736533918917484982642935069546360196841006970749168146368021456571742788856814097810019958126587754025795157775240392024995348116134985002758992405902606933549437647868176837694477925059335504259192548154950733696711620732375698411844272574181475605948391964958637342084553697184090325266970514381680040372646234562505102834119874663009115456315861474116131972247159381083547304416518413241234482700026685156366169860992124651603762025551478901657634067722948615673382765286880056298333630957465384782221386622680221112442559281126105412930070296310649765978718813373285408644753177017248262686261566727577204581400601933108403296991468405258068404459762135457324563830003924933478769825132671783757424138083612991571056206269594355284980262878204506426525505020616038401075445060096133211474716049894603359656666661300794102348294962565935145995596651520559932789132583454258559533870152181044291608412575978686603373174378188720968694923744612801055944267343215961114730669868132737882364436513824602356292005794255244310648401812897647616889616752735971634381896257395967580589589751605587082195139156366959357312268202564139362718046484968812401356682689886247942477083177714707186761390678849918803870625136591062601158120537982009337501669624988902469629164304915789358721467294245882789997165580301595426575390870584439057017469555660581803534407406382816732503391637836823338083311537379159771000788006330318252726306079364718742117505127787888448369993859268909086424372195434294237802762185858882042739723151830955688768260833366573945677739938156106348167632264897379888592776865802072770720071715367876665558244455933080892512456679482464948783468273420282877365276939236668899381095441086054884902707095948640010803391021276186451972770674024735349208303596874145553416515944744758659800062962174816621491150202409035624735647829127719094443809278740767143850849294589392845464490499811930515532254951461893653909210804798452690278811822977287164569945428333121817242016323064233786093126588922394640718548897190896837402444332634285511803558994560906111633141905299840562736573523617395151132461643635038485062845590162828396902278947381690064171073939322594923412836565219341972077146209869456223628666644362312080940522542094529875933232225339532361991501603283046350953910086229236928027503913170314088302927530160917504598817361267219693463178919434792384377642188823836178575052983133854158690524098734952425224628353494540813206001208873571524830626409584267564022184657475179601029976849522432824108950325312262510712545615500759982402620056929771431433538100278623473528697347786956529629438885560941267114780918876237900826097092425364632042886130485341034283191299041869647186588206275662954145399864738718767914817398203143914343060359037714798480921730632873362566527556658509865533832468568210234235725188744387410908401151237654309645076592739873448051019561989707474824870743217567402351729492905717156409088530405282322017674480640943700277953483822056538152238458731975396704980226297348590881912832249973080450732017697907058532799190033702961388310907527448370168466703771325182798327096454149694704024661957053405083027313435965054976805379857818526702621977548338999378099129656455345463135740990940668982375116242683746027291167306819052738526227388331603280001262482404614437674741956272135790547850938178459519587623186853151265305517080594694840026304081545642612355001664264152580152564207535228643684765618055794175021527137281506002567388072114135081140305928957151859154911246866582833991000216814361427962082711074130172990120701968459239311634420098624849010592276740909181428242432606077125304697332065043004356122801136021706952891813847051977365952104677710822860362163931824529804795967584320699981820615408497601133062497210316718291375092615131142296478113579230986466793631971961666803514748982450737314976712753671143431825787603171029045454418955668898757411757304052727883676436897077019734509376141128888854528103081937177674997831728389896614004335605218482650570474604929721444502366100581937658663607136772879357678241084588579217727807283837288219094179338591593878113310977774023168931003401093959064204024617908378631973648469390750310011329096544785195280535010360840689198431626314208775030928174353566065883778750812659385404506633810686434967286945934819188521773774878828269312791490578071378243780915644831709939531229321692180449995238796567296700359421353048500199810469454140046439263206523296193608326991801584166258791840535339825269993759849104296067684963093573397056182965885222368944256244810432989599166056477113162353693417882622915833374591750622508570655778100324565531288961502203626967011238018464236969447001761761478945688768006938875884303038662796048851475795046112190920251297915565975520942006038560761930463082989870246580565315843605142934842045147265546940424131824045350321680624658709483314412607842359365635247261044998111560868929725021988392239707175038403830448966920300656000326934566160553407208027103347968276830257484497940662765547057762102985568524899389949835854481582727965786670167668056952886196297497149725821640765665696727061884965754439700289685991485911960684732732055427252485438444995717874812678183630362663270615747411316287286766912949796784756229078130232397900425108261047111544177966191003564113933275722330775604240070369945892969533090919557753308734914662327225197373621745888484083303339662946542801128223602387983246279331005016223671535899017478382827881972811828288664154491504675693305159642048921412858192911232746349684426848155135221219373797241735690302905533351206759073190674762257525340124124728482346627596166606191992071024688387211319362304174661967227663609593100183088023232061011128825266513945456338256422274594738705992293426536564887702798942632381958615278966056102156198267055197584327835513994068030613869866242633032073820656931655208158245782146265672470882265115045527399818190876692870424276460165811204742633471029150034908663890273293008558137026095472625924541378333906704509348952747537634932649115573105391121758261603834352429114881724493445500675666753025746983931386053073278857222962976187422749132164916125853944403108115685792259295735768316404108263614532481912944627326197260962837280059101679574218912381565054108065703491741653166572027815363446363248187933766764716646702579997092143442459800500572614059161149805236586363795534321507057896195116883711226132514695133816265278987625357999370656325162571778240639635339117254169629532662692893607275018281053534686316873386309061495725146436012615603078361724799107706594178058609789302978531410379909426827403176145097004571511667452027907617729633857125881953040178153613017341796988292258254733869215424595746712416304403249965738558387704418673382625896221370674191842309693132869573325921725117521098504038219756483355741055081597488967524529162252901940378459889477479569321671621631431012224278559533737654487037204812421483388585873967043517653449944680489982042268984188353598023293789519658824913406307513824901667061861331431712281413926695450097304855336992255936444043416407641538951433371091178500563263145808879525757080840338940409420348394008988787103370769963135610643898741009797906621432299363436252532684093768027181624896692066933971598277640634330730928850007297590380224367483884883162323825459122707936997399972733953106730715728071745237552653946591336539824774073215548737218542840564445461378332087929272497170462545813197953862154460984953894420767293900174941542908373547867541346158767537546152546902613271471708476337500204668905152169198989914682339778650499685300650335727089898787868054389670103725013721656886415244207543018441129269322416878975386430197948610316829036729737665945722021349277562275720175357688447108554974936350367676165797397457152219586620574011156625476068701838357044896990506590222016220080735456464682102195764734959543155723539658408995384311534824582900454867523066110309722858150011658678614204447897498060655186287467255712975818513984969913981242262259442498981850483890410107239658077257332033124784556459218070500410454972491998550744349161553780173176304169432641751393252434968982118941288358608028797046557599582502670874669803616523660367526920968480595503693934504209808950866782171523091294303786181896916393795354304984456348137138044064850012265074343617076473634186308197169840736337283958619253817211475807980611003728763037492664632866707723791847540896962194890841556906865780567372813996998262363157256488508864006914077775643903650730294002734332013123150923112943874768205653701646423231379105724343606374860771321493412373589385717672804363500477883378222112645921991135314496205949521149229191939639058606275233710861662518396703339866045872713570289825179735852118998284625073241973616391773514005288086180978575690955882350367382600792895462967537433731302648590229249708145039744378077709611292231195737985024515200804805130897903418889067535025690486021860397079415090100347121851414547185339079991202968824526137621474807669696463065746386290712982898792156891364854243608914964571545105801815351868570113047636168048704416277043771629000297438795711339426047038861221463898817811772473231068040995640353929003493547518474892084414134582987134322077195680916987724872878123965380309949524064915720534274745594862865718602861761603243979101943946283228532304202589081741274526418936865936693154597660491050542051266780175433213999198206647292330575115396488455229299272951547953622011150086712097918643926388165516353775782395169431532464709018272225084094231475049824578866901245151532543530100709179701861706330528118045110978955477087649101656165114291181650007857842150386349374907352879661150049824803929251591991878615384003947351159200778494974542062374376856003777048274866731793677448542953424198006303284362301374740644909480876283787350223159336448039580930725435770914594695467117684986415822006247187562594084381602682068162281398134823009395051934760053510008255282960169748006176336889451899960186875963318174441248392360702840696493884523461007886110422153608887301868959514844664055240230358170325281890538171676662960792785438569933347338171982296767656664033914267988773273083408640041509510665042720693326209986842508891549484329083966962055100139487066121446040123275283646084321013520170828759762899981923544254158037999688656094484763604211317884298806500953164457483051411165311078611121403873810439144386739787310682278529403510682918946215794078679391649363120253910207083314314516598944219676697915340523314672838834901508085298354873587087109249932251895741035803879545656849340821796427406650554209992129469284321161560737212475916515217456339800180463881431891524838733678656317815848743847721932194823371747149327714777045312066046740749232573797626817941041709122583949626260739058563085993161012886061671014804655886657815182137953650107131450408133573210101408517198976692963173236789092596316487435082069849440152367443787270926472731758913430064023813366621562058342512214996162589030185030719944695939310416937105565508739585557997461265130007831414191195642600466906431890370715404343860913905062507471564252798547638865424314415945602048180475020329200504431286642779264455088775188926369161538281846845422468562226881547021148434339352163202099523720253317115285602912786548077155568488644163863881071582596016153602576942492518348802786867125479432585981583421428277094875846221501339164111036632555873792824258406034108035156825033180287867022343920320925230309191449263753478488597645539202180473904199153561378939493580859632285655529441404149477468450619206259663427742744048078009397065531591079159237571831076832921683329300278325896568381620140976765347069971513410294019818483061811560422780942957731627278701681811014133007195372556233667855344347203389693129361121547533707230530200182955623859202814353547463979972290348690698579984351409606866346699462942183493950756000999353837059713300368780026050350003119018556719112915502550346797295548334572924498023103498516282831792621008047512088781995436427574179089870729598224855641176996223545819703315213719368855790317404242040852347191768856473635183222361372144924448695456847405330086571140892384574320027294566332236433061552995049852703371433976815309511582828041302482334707486734113511385123421652654721430351432937103564105850994801359857040602899449981710640467321042105852751952345033736340983220322913837834405685552864100004042550465596290530829998350395377295884649250669172745909852762911965466854535969000050865686756633069287502898642763702512673226948931667603791907612061884670856651509690265297448827166314790198172306051525059380051677903545753992991797680395232932438179071469792449788066491285049593155695824934225321105464286985648348060796301267528343007905877220367560834563761646205169416710023159494195736493891951690878647146549139673648848820983943180727166632129910325355414949905943231003595087986349071506991913443785678033261960188265456506814715755544078621016750993087018047953969994232993678107524945452213235563165664465902465752938713290350582409828698971107066641963495745472865966163164434317337778685094923375664071577561396538632198156543409531099991545386126107340426648631414689249780286999175549810330109448649561030442560504203495310538200928294875720231223785077613527152491528145454413987940778917675909285473537305325131633501828839951239467945010322808639092944519744303626772566065558106239037761638447124958052261040393956157588391379233700863727750275431362392302877589171916379886175863844195246214892415803461118554334511983610077902994332562683560201840564237224256430126326169490981939890675148842732068091533157013045087620458333963918431221046714624139978814415850138593406310057919889059127306913820535898114947890026579023420951617085200298571469458511427909084667005222149370278129897592495579460392183803769021625916202081659693602564261577584040319363537730475603168213913364115365429487321229360501192550799835947698361020223029813014041157448177990606628586889261587334624651051528206179476782141502030513189784093271923860369449844162553529202024472470672936433888174721450928077759917891503009332813020013835989067873271992262973496767771002870453495321600841207032146719074583567003371270866732465974197960561019826115872949932498582667126056549391217476522466900382896277213517368656749983414993973127631962242649975930378153558001443468632619376260560513669840166593454227098200275743451867903215108460569251856714574473101843957665508576387323209004969759084246767883451852729601122729739658222562588964220467957096357030279930374123121203713400415473790840404843579589598820641600783074770314364632141997095948829489979687317654870432794304184052790247961882355246421040059471940397016454665515899139422194561073156596990727500424682746740774744439217528533978926183077015220265827027966513192512475738144066817872042060857983054938003427294602315936603285251653559035884445592322694123982491613061439262343184037271386235030746223330045287036983309669623355057426489051288197830492462718701040990853065531654270021236283020454637886716639880937129287827986854467566846971360577450060250042435158555040199292438662529225723815469980776090216952337371097616577682961727062240111280351251519471653654562161121042647541195518384782807685696502168287328116179812069750622236776389349135719207148417576462069945774134603950642136351470019381359382731236967441503135876881415289284798371514872066539373027937029552736277955920076660900707709240320180314316999705328860424364422808654704271952859578875027679389568992293880770248224743276226272679381382923998090783689005169132311543202182694861450671136545874932095287678054766555543152078577507642288290398834464870788650104197457811486460673172592526360977929014591014851354885409028296011502526502592435672942033083079262678802171291112575166879625500242090242800591976412812299638758887361373057480269213381103220774727321043881469217780472014207804065071895576544364152917690581637706831959774389384422585818353217759000628946703514664007140925894856733145133329915455740537353020473893579054492302278550932509438016903533421864405110882807892366464040107551245529712868526731834300464954958335669975185434636437896554838877411777053443831870231049219792497203615559805018020978756475178568540532771669905734292126043391046819334177070560560036923698863844828825322120151757960342889859642743079159579638484648746418124027173140855169468898309840925528350371314224449694552322852123949166774384193140918153234725467848736410368024854026749672135604395584792678812505880805763634205893767457605627748385474511522498712926880623330104578462140444997153593903135291232789268007584776040417458594335792043652283396377336356608450775248625272824721988320191713605635504388612686269569751226307372201118122590041425674460924769691097745795247608784429959910483450663397454131012309201692839620231609856758751870753108844081281417658853038407068812902337913676899848216872902040233761484564752229998468345255175516346466440344977241749714298199363144995755277563220500385261561209897841756829129062490979508116572269510093197875588656916897271129274080257617029183797223398893363125942331379083651651276948793705774987160037272954746916075378963976974788251792801565223501336431249943167643266259117948724556230096825916157570296775689657941627804893987328355402309789666968799405544517499832130929249848753976060668793794710133003608538475051050196241732312584497890508074620150475045506027501321740943052147266430387665527180547795515390693014375111794903129260875738245724905589728599148519390609659951620945802500626977055775731298037680214992933451574196579806324802812957661867900637686134542854554508789443885127020404738435929875333469715453650471597481095176412052240893064482752326055739979190559013756948310581619224241206692415783965731867767660421796135547966251627542740406837688251533157545752116177297860313654598989351075381179527044472786900947005710432339866096858720971982508261611121231766568142939173875620451328951572052565789834208095748563671114837174124924537178992476068337473179386173550019479834303106915805981009009332281955746693250355935647834529043390508359650334775439517813540431763633458497210079281977734391590483754879055987748165987762952210461988141617552185971391337369209105704940879913165188258057425190559123306008870661902617462126552511651606974278147794369684744486932999985397866059877843498456266342596259421583907306239842927165673719401870188408642805575506348646481081055150547460712886078579914608840952503705026634671829527255174664761881237989461654097465831890156280342217805598975662476829618305233630363638556609921951430846386491278326275972411737907704274887121320977277850153812901554508782099161695780332557576113386801751917270079481099740777141149582442929722664785305205844110322067496926471987211544257933661228157653730837277475439689793235634892001528057882064133179836845826044095472067265089995968231979127265492729122042215366515630575368356561126654728225938762319616899619111205037166719944898505253002120064872846681663733006272885324073430955345985777442499501502329754282711038606119806417799347623657603878978314212712459406227749787343806793152606150884463953826876375047085752704079320365224101505005328257133367358029766886616624366677629247359419495677884202797112243519287330344009544335834036306092945878931055652989169180626740472458140644188302754641659230847355120786423949506855552397831589691593851435014905290148032906798641783910058783987675943064977580967204153039105734038103536923114434180741107562807753618342881338287583747759565023884554903153648326567836093020992330492927654972703993146243234720425438237635563520434644726739866643366430551610862179667126399160934223718568713237216578566470096992471611214623065095867777135415469802925783549574005489799351664899936448069537633981919108583678719479931867262404572357528867815239822219467756667229836783165650162231954324320490073235076431815083657188692281859430263086455281653389600855456226401472916118429927378335061830005131384592818149761580850982194162330115614235020601729189146349782901634842673120665011406950946141518293078404095741066802955908035216367982926347701148369924108701632535546657871063394016348416772983601959795576558815380087773948728382283734747209674633885941250400379530318327171983102787751193858059314345748707769715361812467352563466650131343636090367346394179639228485475257007047124009662940660829347150344475590960431201777467583203573051227337313526805633930548423783571907535722089275683821296185229658594769692649328345697631154097728889609405490079263224279901825011862918702469395768393612647023172860610216554862636552355792455477532064578634506694048708278031251173624691535534977306237732177567146228238594921854568212040170760312598292479893113522333424149523358810922422030444802417500370212245381395029894905664967602315391265912232895489338200666645528029143167647862200804480850424416956459591759149627334133674777709098895254143057513630762046364692949624407886827085713734693751830317939301497800479087997945808105196475762472333063015334675080768833237222135304581047585873913807229157993674573919604006212424380670537793160362676992670248096528648577778675865443495706274416132440647905393722980463056044208375904885532736004836323612239553478386472446766926593953971078492006447494732479145864887895824133043962517041385429636328021343267668268129939848527677724725300413226684297948919948418961714822382271867601709244015233252954723130886340217400546599765243816489685944861302765729715306069587883174082701190040629708837342530244980669753197759040500451446436342381393410393875670418090367042848783785017188221517065982323296638850813242186931837941607678929446324840111556008379354711746243243436076839115376744056711157557696836358039111030388757101881044904415057950200223818960044610261238142945940326010428176090914273700614050220186632100029932588377842699412114172680925639875058839300248641983379625145822821003760316484855283743593167921175417720461339541249442208174933391732619822292952049027074307876604859342986993774473452093428363589820781678892176143495058215933173047882749229923312438958197651012791823636163711129815222051390795174540479679153808754845860238499142930147118475415720709145707785458356253030847664298082541118243665548220690939495232699733380643517308964012273430873066726469062131071471570313578590388023196243450594903670084166817291251666450038751698975675209185337811414312284865473416554756596028018882153202765323861246599536652308312627741276576368941250052090311753718779019144822231721383530818165569189991325790067213040737282043902077179987473767031982222426396668827053860584076347894685322400091515591206017892230174732716505367162603395137817039740316038243975950623106210293895299130437704558638984592532293967706481354453780321976472387499128165956707045532876338136954268491847142263264062850556806311220156147988925311588368102309744848378843119297163432813396759047271378347870940161072953351787792086024347436601112029925847564331745336448866591091902057352928702610242329006456236476990586149175056394477686502718277208955032941670938647474923969741544224685592925817033408986460777066853104548380044366485811738498422142655032291754480719491812922538713497689688513710628731449703845488874741573111124377920236196150684697230817762285940796606987413340722881734908895409369366268749444864887586569852969941033974494325227564986483718660749713043347993152216869357593605575430360509786066690608140494330096690044767954174461417522907201332496294349246701111029096976223443775870006989896627414516579764559289278515026515849277671031397226082133444683775393826491459758380290558359180165220317604143656057708131765969862902885259842642779890624481215956965725821316488225979075811288951875221493202583111343577914087182778565013766944912554987087354175350819127398474911731211757806796265520233174894512700244334330375091173345386166473812827771293288624393245922612430953735471355756318969257643607005563888530977167710267925928861145828237066426952057959133155559676821644590670435842094590474357904460655328123216659827381750135442781427123464757058040081991747295597616625292774491967180553816692714905837314580488866287832200206458337728951394027555624868248414702070210235838473609287004044324236791187231358126554601436569497294919413144329129991484303279897344438213121663282309560835001618958674778743895137770712891626780758226296227710943189878998955237726417195390683954673127352302802746213638858909923608834196059885536089453733771739214150771034355588131568934831327087776306672303068203754603142708487740852144402006753195699938913797155361477802293834789322751650720600997990678766942657392682884331039371230231667756337150730227167547742599843702866267294972744538761651335520385117840013989691048306441897045878092339824077853671748535682908814765942064651563717063774931521174379900124490140456204010634166919797917904331620890390935349462081926635018856102861538262576174168707749400090854515456540376983025839174009462582750922721696221961405313413151067290008256818389258725786691248429308807612511749271592934077647584124195015703973101295622701081820978466531155740960396342531629983016835645046221796608587998506341189967223147066076602313856694751543896879174760509378752038312107562093823118411401519466781626085212418927452000391319672001149793776466004282999548595928593178653156624196227257232837949619630644878954459115746920491485978035316718283422851645771049783213539186554031103576955601197432426397781638542758486185695456333662867649777043110975660208282484711380827292007169945972657384607014010089454984666044602818874345587905153301286661203712118422240433494652822129101493307323399077272046276510785397613853978763313849103220502827267375611615322183322609774067765302387178429281571544356667771178654886164660549400126273394277461757049598002117360449755755470080856043866019338677719397412217865484514621636878368691585253189610801357446464455677198951251177594889358865523496341873053740886220860886603170050164868431722228665697917461237685235548658814015221123688613946318960969958646546038055159652406287948167727211379117823484306621396738485059801136227071096709838813157053072690865281986366152294557977135440283598440105393544970692369575427023867770542894428882071298093424293606876168060379073087900221260313785011811341280735256182608391944050918754713279749242443791361927314373439804384411525059728516447949185779861544729831847768441032137124610683180663349625684814830762788235142838856453229101845528855286827303123789833600352386869052741775244079555860656058311904130844204808294996481147868833373184893891203905830619386838808890283632058294915975823004367528304961671339295571944815600744905784851409142615675760970781663267765817234520569110615902775526043414338079615414244242475722797275176483967373126583432413634927843014580787455434732155364054434347870674353057045417677567133755943575121608384206018302703980996248492593925807341994839250632154219323891050450675499679036334510087358149432295014774500164663224867321095849692739577162363239234116515677156050306233985787904085230087974217180101831419966047392133071664828104194281929536370009838872309233312556308981310722149565893626420984924928328432434282028274198077337221814618919767024327626866370135722022819888788978279510151772387208078120430576926357777309571533029811450601027814847510104447909531915280693736070457593983077161743063103004734666318209997109905426424792371081450990445945082220400405565019726742905761016750844516245143968006221388915921447876191781333674603499273868919081737579964644019531436384629739485123898340757918344471715736652900789756281150356786036674209885093964614868704086330362970306448551899708722963917741029808968377096811795998887788554541703539425148168520967674587854390875539078514568242448149392864562777637329738918279955427226757010359734175851027077589830996796704722669342473598416003801906206252525170676987668087561821372465411978563835053455616513681175736501462993384854181668299929340550340464627908906979307034377809033471330165525562024581437330149622804221509671595124026524622482951641450623990462825465237118684496684183576670568382447487987007410319043438444933068097737571879273207798457911095212469557289727438188987009070063634117517636588541576328285342241025011400466563417326229815811890602937569291072388055138226562817332501125496090647525930034670365637586145002487781286925828639677136463810266108438193013396569703620446141005588209459698911102434555096007863499494767526080222278091673118372007168174986647779961939855131770273020289679033431798504004347571790521569759001626279457083565693396597501313980327126797231705659434788108483456816250436515093688256846308396776155000611110000112716957800733586670750381770105160313675026515947411296313725851567720943153546085897385479879373795164656470560626756264341528078691399605907324187103212565919215215098013043536870409401518785908177484538426466380031028105920020167218716208385127109359555734107450181178951580492402158111233519048103505649499572704094566980097334387263023417153238474924568627201105122776445087829473845931084208123533671598898237979914086342010378282283550985832098065476091750774515124037079775943225794421864535957740601216195937918531976473377078451305151099555694053004055321257227209961731919491199571196013940134866426005866351650760612827385421207026920699448962794262124589721940407267454427276597100220717286481754569817914887806622889275649833216459227447150627474417711375121542725973102502758441786189294724905875818601230736442188240709696715131414222241761890230516512912390389986178532452317024406349436584072299681861950712913929550232505426548847518282425483712671068109158680549339016519547460149001834483047854874887799869348665467146582586917202171878885234718970468373105386131765881954046543131279060145003706981966053553058364790748640959217801284237230122297849909633830406386462077678200103394008169930962068665558755942066242469792590152074483616169028706649285286183686755470372809492833940750617815543634436417356330175574209123602403366827500931573085981255675306384868319721098579730534084051164584058870830085573736189534137311661254126522910000716483123233035529028565791003147523200324007319393839368568875419333936396725329416962817980652242824795805638864362263650264268482731308693805513566157455142566132959864492433527469396671428785059555756075905448098358777707727610423970589067783953083458073070618270246831608754384082544668524048919327892906846919771597660729144352362309265425442440085223264236431668680685360136576302929936590724465747129194517039046511155148991955944882447902840809742951325675494916007139700907400522373476255246458962203139868870947603635165446538027318891978486081829007841583294640234212523201419890441810908883523167188656888284329268455790626990777766011258541423331000198302379262723055809895739875321086475656542857181256001764757664349382244190647256417627794310678323223585287080153277012219316099727227284383855944809456786929569689512193533407505013189033873811711200628586021918966724168683180318504823681988385591068677426432451627389016535573040104761509090226063938219030307218726579958446059967548520120332996995012766747545149021055105674105532014565469198146895001907432840842298112459335114001125962979965692592484461439322617973288434084759987816986542699249260049177013735121392757021901123129089575703283949892847066274602717226793105272232945771469035776845100428608888926411298933530322495068283523979679569067852871188623412869317589484065185174874318022161562395922921152953139879385224822079784821248388976074017816771744756513730173467791122849928418693213195054168241835861596606704419416203380109804627242722023434828844494950086775665833352855292974317141373754529099865727960539722988687242240679083790565410916687161153401392234119659561056811425501305789094862600344760658819156892672038323053532562883193663880148784848747165055263471925498242289355356953736710223273754691426262118187483127478214445103286243160412687068447751389013225346855718272017645298554638570045180061911729199064704350056699356171941021103276074034485882961553062587370384486963005401424823974376035147479468609078400286437066791267056233456988791623586818224104453831923628406998767793001223195096426433464327968509065699475648118054866932220875281373387663033197423841001945749802376791864553188118782085783326909663559936081083406378153584327563698341569082135260276660953593598020765231245514699430877626446323136942509631136550857421923957766879766014351267638413372601586108062730939085240970373729091334328048095676007943426034675930491360624415434956483905310299685953160591204878438009352464196004012013180281014207092212162789922731781046031452521717141594594101317825674410314289363815801295857325920176239759779303786132559977324967908259125731709266210161695558964695660538537096067477178592473968081796899663307181887449342882176876733333381834950859811854976915900081680249380997330799641582395060599151798596222063064159070822344337309022951578484137372609272221289833938393220721433498694113447546575982956163797132137924416426188682529557719075312092590141808817174615774588071657072047260383232985434574793997107398281347402230162675483678797289908084550038519743766546528324456457927481336420082336007650303326223350480933778497766530559669195060599671516713931388230891114539430513999575463610856012883675439799343019035328026456037772200332273702261142410060179934164128223193906089107124720945482063648892071234571028004897765275360001637765920041966362640235117632958457621450588430389607146947448257725393260307236396162802509497587435724423501287343777781141505004809038548365783622092290552711371268149602723656208963256258759665685933420566659125201715591168875492417159817238303124617570888541923889596387986864386148773390274254195159581089338870349258171576081433146178968468336347576258113503940969013038529615364190861980126533286669779164013834934934468044370047379615700076171156982575268057484103677787304550914394573976884817648613417004137318363121109800625729261853546805907468779833590435893392859417136391797323608837222647711598092094887655392761039295580767960994974798207744373143864813532636659827758461708221603111331101543748572094562514317986558578992624846383168084137081167685427730658377925033085876140852200061828396547962006484573373940671257287209847644086088301379516130861564685861051475159323777432495776260506524447375572476634184586127386067665215727611455086860183434493673316771105855549850773079020300160666335776656789959961872158151413827042962701523504329325236231635023887048939234798092803204070097204622980730933737605643495606252976406939744067848631737650606684595472092879146889133473940942190154091777428843443585888962121201707177174081354935705309086944969225036941936695239770082168193589655863259326305943524795778422754232602726030380784267533636884313821718025913931570180316811092554289143749743556510494206792967705163548664716862957565454428126668861774869454476480019836506932524306416124734074473766936031541826948878018962278175885695684974374471823742336732155663105203982930664415036542944123970580102361452422200353418126528185256051968389772254254976925675719051656244366543423636039166953669729839663292428389846691256178728171701232680885356424482519079317806997219583851025785157036048940393950338293796125534552117652917415777604217739451893195999199613790622072695957318186309475529886323021579805343340254274951719316560003394968339538889333016178660136823246905255359300683554067942714032084624966982661666599518828613703216708576176753571691617844063704133190662037929464799170245148976524695999654618268279310344526941241132052321632667264190699568481879275890913892655845087387479264530004830985626322356399980237602080186299068942879195013772067369153504616271922912134704160643343518078223643858468409584362858442084773826217493995770676394224941172538779409974195132851999922324591569839821251388031867076129412177662270172792329522502261664767618458777123106879389116215040713531757176397497128460414488169014564227505517919088026451856048183421468824379599300053150833892094284495239499398856031748224283928039513735210905466990197592260355652412460752477843260458883666366938400180521586230689849665014987132958166021494454868258094499514346901686636205322324758336279901864468606005749976769653119945007175842189429087305780540331035105309053677611898130884642438271259807768232251356936458117068957395289396177231723428167096906240117083404977560133812783541517405051148435820360980793414693730035913086204145725099633349960948759960242199134319015578673134173373052317206473313982752065468762582071480392245248546108835493204682277493285099025155866906712442074337669967080584858706926142128975360995420905012429650491795763288326277617716770793244590052755921553332817277324833369741928575225331882522584995065101951607234737970797687667980401368441286689937602454545048769692925168000887028474774996734657669993544008715086471615893573543511992420047878144449156464097354266470185446890240078738951445178027284262210361684053295814601769813876750258656844333817194195635154522121800954522283197283452951420187945106400294824569239646616931418572981324683486397891817787835616274737068041994069955389664425884174334170643836266415948485120338205099747999983393304041839253071644907176467130250968740892794472915506626649132909585305945519364150832626685064787958765715630187638657138595288990191565266369731066313706156371865316842419066409050088649645690464390127696591660245494165501729092511174609524996639044707327592185769383507748565294628302849724775848490045118750350861869581578236265897186784901283584502081921413046586674393497197969558948006472991510863348420455603222727186393517449453005076737395014026598160627389024452540248089359413201457401652915630890072034112484905887548780388005227210003352487962464291001124888463630495896240435469477983402144853320345639574232116810447363062748306295985761590298763070044258776958899364738283955356325484587775657283909571532605673579333534126322010778603709931959295442746676366268582033117287311993505774350166354579196701798170763567465553840234027021800340093795287038744966288594147313533316636171321424218306834337557307684745350244344478708681870316565572930046146610443162780144200172265243596481575523329992951228021400070524610953508040499026896019152914887930989351162723181834872095904437957822317251779735522840956297550862808949905994292413812866969713575477121609029159273930059111273638187778664095405350211247644908325601788339814949234775531826872017989651711392299202691924548406984839451668801252175772157825919117576130439715017859862064975689677603826650735038856138865071681721212122752041784373566489802399451232350746018684942673584953309729431010323919434195360784039394624429006777030012115527925666726954795544988916540064054357840618525597636577513750235857130088666240082722052383233569767055763144427949121367712420114105160755362371192637891786476385864340555657403620311238580907029508246892633610830757674442422277036482266676003960438919746164467051514352281839327746323744260316965732701582934399759219725965455712251171075341303200937777452934057474055368632809971611315129725797049151224361682829799088416346400814479628219419351521756405035849600775596271798307136724928230360998199823486952432544640690707119660268338674192884032099796701856792432766478186724200309689358311100192001759974172079312414569813121852211615751763651107836286164998208356150961474888507298742779996492550082313928925485217360633688928155440186212337685585727364419256139145337942082748781036496966066701770207527034434073762340254273875816010235623617162293131826568212991005661820980545900950859174410584038246682109967904776358787313788710244133845026177116534856781233906293733039093474947067918944411977168372386316728810380717805370492846720022298127609430956859526291157345006741754886171046167899358377330263006528314696860496205798579614219076534888720708715126141194665168446890032772909803171205833536702588840476701605971011828468292344874437532822189004939696474634125368394041205468380174896055299003874052425038728579111325606545007006202411077156881082148344076906547872173767048407100603389531669714276269779018610308123932138174590693884606102958993648159697423972257357210285073772965218513423729151653984275887742526918021595933048580375311351129182477755249057909641633662091814339130858477953448847328533909413534423099119275844173077736045934881142256273980348181459267488605591772997185595978157729438402968454022271607016888313836462544798585229761112245138008778878722409185604825575533271233911111777105688263492785961184193903236827348094582585382377204156495354619598434505298778755524348133720832030538810049550576554835968010697019435607087278845243869739139658180190118211257521731768365446766741098283305207798042273103435562992058707072949191153268421703711562309788948347728074899986404447894112671226754368876267722094437095044144241902482221776683203578477972603470954681485415808084410880668857606984996037699829224728862191641711116796032909246785957902482752401418666573772379960435928674143982597943012795443033984320603325222602775339147199884153250375552051831585454876723578138294995488289458964095118001402423109584247774895290973717145919183630241905255314519647267922796947341467472639794970104119667654473823111522013367798904678360841958824213602544018490255599713110821649282920416591541340144772034850090579528920040566505322735765771080088126591013099910563717219921870514954731777177988101174440482613559938741355498515573835547623754087419692153862439789105156736210543397590949237914177424015700925002356907373614216696639471457016569408975876468132911535895220261260229259224768110227579136984617065571283180992415240437527281779622468730488466971846483267118518773091147864394502856598489659083515174992143905361703922463602144149988649328382226226781470879321353984278478123905870580404185236338658440037470079703191060707971388300676959050737432329276072632787783370495729426976286058374494634258042481009167653380022330602992571834014746415347884941744042242410992118726714961406210812029441414301782367963440587175104898456626006438161514923121848422118976441739444008575214964656600064051860453363822172852695046608330362359419274150625431797940506530467649227628625009129069705273842448072746172514350828438544105837651830985805915109489680504451872706681963170230519813183851887016226388110869562339596708075742443673909699765588154622649879656040867279715158493588983889771170361649173390502747739929283301132273125665292333291575620546323139862793378223630950550664010130741022934954561930544082590087088081445910299451437458685830257712851591522613895303545657040837611777476030180217456905155301378669287090189613126344253507141910493117421403857449617046665088469889956630283270050778019711159536246209407750515101220832280984876665237444395771264681280931876706257864418539186217562517193742727631921303909816842225877554516886309673931592524979609241695628944064155606385059089255426719515050776668298401043348426617377134701711532195275911871947657169660690943715566701234417470104414894770082554482106594794890826818065539647808644651151208020620177073314596674193165612526275526265340456236171096939262905134977733370438182952064363316822948673917750258293858194696824977479260850169323149140786691792475585310838629260959375990465439936604170132722837653757467738524945891786943376224966829920010911041580218023672095509375202286290653572773710151237411000034948538446703703240755924489949977099255656651328826733443764669301304266565439122620796026687975098120779192767796296643217775419962341116714738509322194310148188901935292758225274351774701440258955401005294504250743741033117314309126653517298146517071490867200372720925706664846408781974370518473386906033876842969550589702354950653550173713328008025315467198024672371889593652029116948805516669445067536941504700878552704935982940499944789527296964158354947263611845489785487903518760947281256203856430159961179918229602610178569566350563576860396124243321680078134117136236751848987444820167738234128960664666900212908055793209394923986673402982505454187320230332991646667218796262513393876501152640418768102605618679734179582081547774848631539801930916269187901430805330917181049213671876071784110875312770935758089684802288249850402100323276904830263983524029391414750919081012045507241467913218876048673200485616946254180717258071693400795976511028421800350310450160266023803638958010842730768522326356493464945327253793645888130029109263235822051381301812705609190220173915105657713444459816786647143393096851018872810956804313221166821210392348765144962415745270365848158555516637592105349260294332965006803193649656370480963246753364926539804599541893384894891939153310015622584016935877273184308704951382601057643423885233919029014285774038903152699885356456049359454707967160427571588444085666793613805922004599651577100348928908511769591612199571492734106119230022497816935079460143046039463779122755118646022069030328264356960897068457641279641677011845527597448264021225785816117711761619941636673611039221161502296610358984637451252028911936836823223465739932499198372958667018354725137383100581308106694658200426617213873390974092911653025868520332231185093142169890760158349507914958461801894574466127981733759842346203604281978204292952799543029332953846002492321808002232221726974223834604799476112614685941315912615290838790782149707947871317136556512756266103925060062806433918371412256486395184567053888746327871098783533231991864497586378825884283545426641678184616463282753964465748344083934982224746935726071963490465047238965045593451480363018204679859461593883856021159688938996830863112725411231686969885779730059164547754513853307247602762295063692478971286201093629976038720879693895948805035231405614470609823670875525924625878915987831853557546308101217265463488464831419889314274998738745780111154194942581900947097983861088239362779842304515578557946292405075460800025472376684782086821760738877186581980699999899128250375529090683736910830978063669091966962206441461181574405842290590226980400393581515948818952992399313241388270706709023708555386713959786716189216557015790300676780446796706649138582960136251390249485858593743490704876541029885352554558494464290131695942331619518815831227542128935204826843208932581715529801136894490398964909774580560701801670833738197145206906517100643885444726595365416924761136370881021525657899063240598818707994574792076463776281301588156895830575824687289634269899341914831023719851995084121022359924599089060938299513316524709982513599787313538807745166580583697404008604931989275292878211491223120668062682487565042066672482637083393953080084326517026702058251084261121571740037794184262545173173643154168792741291696283708419662511615492146386972753121609660876712711713490042067029992182424050051728062194117135709041474723159706605953914608638260243780592748498785548967231585783673795091871535509241954478452524078513364031585606393854410860632265125370637615759269417188358633417655235692798677563231780336695955502697930642835077948747234203220950240242129448188665202743821371568083943419578314522298983615660679721633214668380278018098587501164796370934992839829885813175373036951828323749977784484841361611678720672415610963612362644654776111993769860819736501182722129364959397065073529207115253878826440030321796038168818117318882530367570731996884277185716882513320540268232847205419100634912508160107885704543208819153372905424448921356150897867335183047057491588349151161525486262808775154135325236977355144898803500368967053489233042996558446424578148528193860767231886001142110472590257674373544279562792041346499066405787436246187572005036042106837070094377387804654298174329095741459291140791947823719125929658174434310239347430837243515315420082371647179500921230294258435807895593673540391639796754754932255103599784827580910526560312780856089404586785739059712231446857414521117735016539113495265199242036661891044608177354209044812576424184377312128188465724628668814640865272553438702994335371044567133626885735263398983101095528050897831856392532965852037857925532560090380495970498162480445342437630639232863820707443036799905805881288017543298925528030337995163710422037941030303494620613732962353647072309436825812123331747636771593611250136317125510105730677074440264779513083418617240579968666931799846481658733033051291906514332664475087993623096537456478002027786127638682073085901350176992165869450217787426980099695947064954865079790949698828514907716579797292414969591864543905258888858851228038133731429737553379650323685162869220195643421451085087162024373855951486060775384313049868318799289324603946273706363859832729198259667178365671039428111640653810510613979615670427439998912937507552085639796059450000839129718412085066071498942464599387519377339227945334469622800543172331137960349174679417161252804372356782219186073794096963814548547244738765217503963224654501200567258002424497830288754019915031351984561166600498728782262274150403921246469304730622825324541964099913642739910017083047279689727910975396741934463039113026781124818089581870516866739198636174387401466512393801404068505037674317461809192133292056641048839307628118721608716700800583579076541112404721697519313773578825800939303869868246291053763530398110226056135497918380504613260127668816926206238396765233259882947616638386422565760665037087147117456091558860543724129886767614307914969961697338510958527021543086465162983943169817177995145846735347217708875902110246772653830543705957837967368182538622160440690905383938532787978449891549468044484056324700552023174580128240728442101001174970958333284579356211823735242201382231117567090392253866154887637927845559267466976185301698593048478074682028464937516308124751773770431421429755571368176267072953129607399511404283777426626978797322573164012479980984680634918466056640941770336361513224940424086498306002033425178163838072645020714506562196810815330490066574568110777633086418213444412549470570091051338190279934773063335615164598520146152147260179746998959470462212606357818191730332697160217154417319707637090699102283704593198622091146050285438980816559994581567500568017761231759501614751357028140004192566317504861968321778422623150846808982033300107922666764375031555545313909504203556459395719936314834439537697305132567098647732127214560566387921349752950665744479125326809833072427593203796378210867798911300291320295649854205860539014243776836875018801361063917358531271466921531693833544586042822078332486287936082328037991655550292301803604435336293408249583263374231094596110715930422842730285353035632853810590102275239996517164551747301499609092115127742081193277820249236994367723890951105446302618651428391919356790765218176539465455810473985398665227646717001533613642089920177584770363554077172544923775640344367306902943471329097009053373073665453838210429355948312458588647907926568039428185858155276477550956001263968590810688590965668268860495937747768634424308600942543288808224970064228134005759518587190583274208567567367420628365054772934554351642874815416454686189461967927850775307808842938381576122732780047500529501694397182324574755365914493751499609128063012887173795538813996890927226605748854119931473058707469785481586040883373594164922018232922020813905281474290872184908489487028404810703044511151232837587743156870465694062990333475663533997273247966405220287767859867492809288743355373684803821447872122222369288095731652623587365529353430458050799597116476420565097823067959971751088952413275285269006733759704162757870307703988378570050917642628280586239060950866382267317976604423115356969297990089930249776611100319648474416113958751895982349000095566813007573816435300941400684125077129456406299132584401888088801796334513566256091633702501139777668431580854766933138749360668692752025077627487473267288911802089494110529048549899411386255955396861131550783339945537491050151965606645423587129688812491563352890641749648632734050795682818693487365238269081710336660651161743696562435068628818494622196598576579673729514716057557712326442548905410351245646927031171815285651459142195988464955631750876759422108286619792746625022032406534970907510957938065785728062263063453039275866899419020118623374963750771862355840692649652590886900413194689279307477869547347096984949172037994585442180276095915495791089776460023571440350664955665151229380159594756187313174294749029047218195286986334616226363002642622716971051894826020433768258797935195989205821902898080481538942545359022570641634663290625411935489439991893596017495446095397619390936802181232732303383945865304212102475642764323246561393109633098550824582870521568876788006568024879152488869211063294828578545023571929995446639492557792575951375897862322110955027870927725314751939420909119894379945279167747807247253838347542146248715234427604110296032269299091260651609454223318574640760920872654137104812505991776631104451597081131864424180048731589314118888055341094456873406862420512264846716273695559504638719077298359369618484304731099814968208485912668614659660079232148765931896582161122093110447137965618961314951063002257369435229529403856520221243472035759173323448039838139047207128295618981805845379654156768214308025471196249408823423362149399259619227688691151887353946430729267722605422272875523407265531373578650989507385031827447233158769369662809820856685998260168082140220714375002594574062954762268770378492758313989056558878750179334130797539153302870620804402545644721382768689507678859697966733173268839828348654578363822189273462639576096508649455809645216034028145894934385022485922603663146311611487421944083730178825784743572154379352801876219913860368873487159818406047646565800512519384253184142941009357550860155806143433436211861301963360346526929761584661782909914174983356833737575978314109496153283940599123348159504142665584661604433467788371884518396915437813814551174726271025345866921111836943356104800458976759136565244600100685750945556477006508019564724887087292645323892883075221204855966722014247152550723790396992697775893337506013562971411011992751255432595994586481045524456834907702709279326873199276448075714938201390604389179994467168910623651323068857604800213816553317449249546167189858510833507727117146481625435112615000459889716484703495479777062159357949172067521518874171251085397946467378226358642606216011688912595225811369622401369610824476183776184801921111311336755671505375889044186543012710392793785601035584040103490297769923558876298486826281019790744284598795987254441189731298945832655458389084014751232566234630227530744122561560359622654918248877489414510324842165446562788228500762333485694818147556922226258904764153390686280399562823519558495388278002528272896134540674689324155535160196969169566739411670725249540692312565365757502642895688546839133820745924512716751450132508258756306020432811399402914812196291224309994542733503466544148566957971919684179773402947405068380996637388067063421302412707683084003392982380774202682325009418342197229785536918230471150182811726033755185855680035558038227930326272130568905653603724712691216839246460785569766148859974733941726025506245863806121828318417795730572992253894746526858344978642219075595118330625310891305100187406038421351014766657102870495645174766200459365595839319275071070820707423193504253061918407345964412984536808668846556530062383365200809653146669734547584925480850536084667524513610378716799149892322433793903968455466414455404019623464075895905827757374341114798423065191709004586853097639816462841976198114010576060753013556256537031775641553431215800535461299859778200981580984405557724602559377344277814029075837553710947021138245494907469887160620461690241168014707966265171287513073498922575631163088767034902903784906959659889081623798730666069517525686223198928538491907169877199583892405594378823866035430799268299108133266617071069688182889369535157452527042490116613601687674334125963323395531253621943387478796451125455946910327514117183405940958508398624267759392450824268724044872351858331116129671190932761001896599922463351848310549571765584459042742196743776147466778106168789009425229442383757317743141988228590169325461254533043868711750647429922132331076097999163689917507933567956416196292559436370793547741026118428016934303021639016880607585624176783152512286668624442677327898159481007517108046644403208833558773925998753345434596231040431268858803615970762020653888594188668420755247240502502432593216685047476397481827941474426722222891094132599891831087650699092417392613496682934177457552741108592598414330522602453770380856136778798792277303870347452027235456908786986908250061833731168438942093966731936770791771268553886647222923489559908484350741970008001254324008886569633794252224498328333794574153497544693565429039936294809996931677440059319527666451201112712471951925284425320027213772718245940343238949351087619876857102555688580432360206389495675303607691084334882274332230503374491568419939411267509392771176118593765061117295251368601955176286152290670580125875595068174579000097677606060687864340483604858248336867721399379182462364052492910300512198820704849650227903971349703813843277038375156802228834983984841181914623208336163231819825015703183944524477342022640738709406365641331308301662780576607665158565207122371428703640548116791503464932389248095225428439687286670240723713964252484141538585240566958400321949397122134935636437708584881130021857086993845601854020773414179550876696949457645662279001571433308596142243595105450150639759751735336695163226035925119123540050254272141653813151098930339063513484548691613700885957189576578785191216943667040956397759708053849708053508074706854375226848653472357175885674057143063946321696029800140836361244678316267410744531672015270008218044995934156773995535329075432613862576065516308356288398267688187817241709426117124067707345985201688355010784085818766697420605561281874098700925524486184029897509160603377799249239303611028559285722268358660001817801085773094595373406920086738669447701050869531449299716358460172945163978633123207751354860017611426107523403242238291542597983680716991762936109560850807184745359910969240047862695537269714539435138135773427309546472252817161878370586676537373316371377819365773876494861170241626175955982236301789743390060585997141823811313942666681292078793254026961683454576465273317153280258341044151694209372250415320910581407759693587284475071368027033275823115770525007777889106417432606286599603244981558411755019895603278547666828146378600132059717885498767291813923110785985334996784687213700070221241561627141396919572189740275382774766784541876592624855025928082805912195630720372459412259642702687449398633013916713024003099044603114388583263589063538545025592360540291377029674489943141803144300203154768084386343757257118173903488823957422785011991643205797436255457159374580214118804122387964547118714726212177099208089684680446288160632401496831057377797476096279103382824641222571166327930179910048171105660254521700023542635367400776520528946619377028999423198318863628313220102812744570946160558606216563318494213110824154664276656710170293864493490183407146245113798658586592593088811473650119483931443383612617109492147419199410711885303239181465220558200641234208637577892990549220957781354366558055400156495745550826104342637850102150849582601407039708957053136652043007416494981047737878741517474088457857897768841540495120899175513882374128859266415456249494334931135028738492904671423549176148644528341736236172898280581728158010161153064264837942600610625527246257086003505207865833856824100723527806644646369217741684750721022811308377650035878067273454270709440297125070411278101502153636670219361990163328926336334514125039068012020935503793092912980410048895412561477107935743320004110722896423233899220285448706962127284777371754785180063174293058201860882688868621299786547209294086047219230216359645154407674728591336870168173738331708628875404142870050330450179475185010029166951408895384978638903126544850946257508998097854432886598024863742165497573784510448457553760487841104700111858962887301497509841620024676251284966103595249617740344520489428121975964944972082157827550308587497807063010482672520675801780560803947760286990440890990379464906161168857854428403026400634218211971723090603020562241376107684548975123951756233070840149040194562763121489148899814663416534972813388160407524510182076070178748381320015938140360066823632081097095746741446947385436683585197830486379074954935660486565201462649683917543202365819149505725212888679406402306942463049633806439423979068395587789076545231156430037871755625280851717266173511437387847602433386797041868158971900592199224242283046686107524214206807343801698795516474529468786457423410375919297658339002043929377066749140130242277213041698407270717913343348289010210777141610240613928636783922456391294155551584075049640057748894094549264350792521078437832432740298380747106997487939185422398326864642597497260693910370382059580948760768342162422527114137124785333423354562399221105633859097808868895373270614735987449002803424602282575369574399892013659215577647845814604936173084703291424750862548963495870346538226827113269084084318893117685807162821558290141312585086852585285556184364789423576016190371379811558221784175283725012704687212088191288408975645422303343750777067933552462087717844788778507934106852866361037469591327622593578433810138757179957769852498426234899752121346197259967518832237796383396777514436217549970014297014885537531138150556850497974628386960678939758149322544940900069990857100974680716690905911650249691771734154072087923933495059427850732097080425428576025171790775784186747870477818313992516347632836375985222440655069472120300632729666074044260610979135374626798724101374832064763086383359674641268491321265301706801101347289808098458933523167201420536194726978582641331907262398051644652925522454156594085784840630192989398667074481728927056450523020681314641551202277754686674140089574880591901803154418445808336780877929801421936493674155211478586784879236675873714653399923969762324743130643210384444890664397638347494873956482301185930140529295766669188506088831815655777728326926756062672243891886987066604110927093296495158553395454511335364713519259760102183416158105196638483801182208919154444911890127865841809181391356283972202842197557180175927719826925571672688025753461074215204032687304502211608262695488763859962421427800893893688911809007710274245393938364339628397486401280343492236990569775112385164641259906460443877224863556045285853043573060307440407810858729877664474408576644819756388962181849943716366321002761351243716710913376612700136007065587633189635215799068125357704805667296901400427327784459743223480525745219163478905916711909174245414923966163923186511071592559940398140387940371542715973341088821291473014982420767578532282476685256409363739048657097189268483565269421629613446315685218315023086421565869574824641747923296351458744461101423550538423733863569901492796558383998340259717362487280987199875861084924636861923092379062936582001683875310869448836516421061163285939558398718409345515845736516044386017465409781159960936942897717322963153184319358856869644327085562264703159401715131276343613758113425580746167893145199156208202383162243867670696075120460188575049626812193740511896237895212048202084549919540854670384766292276076419968746786906117045373341531191933813081503577341570697503973506359792084280771953214367665445131960366398682474079263611789133829846570758491585521559490875832187846633072927607008199985434356875915246213310055404731913207052840905026493447977077755111292266884522972462611707231237363874353059227229690822925441107389577042860592198555658228491185590236965095185000088662980744843162712268648611538397270311255283485796844024322574678082684499152938265936318850948300870129293229644743687995224883135746784247979352886591149864456692099935353202535476908729549758878690019263484641232341004923340627660785196831182856865833612656253337593108860891234265211174011053844706203667095773192451369852433351759582349561761459560522271122166941874796088665289902271630520558899799646277860874924434506920600076080898559020189933375396397896091912124508335379035131094947303206143485568186279370813306390022609720146736626637520867274541115944666149825535377533180058677181407079594728273305941194039635466989665256111910619391736116833978464792309214647205258151062279353801889360708180268937646680218327044202294110888533337117864589754867021854021869230334390827540707169119822011345646571863333671452960142532521138664358487953846106290359490124782724767764039764026542788884835860855146618025051098749444739425739352202631792742151527233388954779288937863760478518817274856856793081975045054199811632719946504820743778343021075942913042986269105827563748034265077622414652792687180506969830920738869142339914392939546718661363443061562107677644906850192503685742611535558185340682811619213669216417207496434704533364190862200194130375548853681578913095110007444009422560687558973333841526395086116245280464695326417524177999202455383602611772175299980661222524075010865312278508765140544348578428009926033270145321397234670208588604968375008581955870803249300119683748341875306631714504482129977992045732615321888471473309334743023865608645171192835239136807733531096299812037482807288743528497646414753103956690760370896137825399452178798472069929808384629216817592464183464861497786080419663874244927259492816538180455332061415374623359964994884466084033037568719539457090999345144622185972549032539279471805813013573413709477499030092201911476286695996736642141619133847030814169590445800732064403110354574272327658945397169041688844616717545643568808788132494488890725924201878024522076727006191793150677625373324082082413630218866953230775929013406395304077623020107991956006052756867119990314262457278282559402632011541539578614568149318600413849155855079098014618658921356955997759677273267864121444239806956819268581315538876056273605306935340906362618880724764410840938124322572208890555090693960794829665363568692808113304175670479395281716071631867305885842599257496053067624194855427209152945107325565100243317066590532344055785512317153711404255269358561340106792288285659485919204149691304707174118687299096711394985715175990316244039731117037465231222626547210903936404119555397054072619123133700743075879484450210971903371382637749570502218185413675852331237357696260843805782979976605379776411829209017925603940500493597289796090863627837667460998770191572290254053902510403429540487844411314355711954340082251174080079582360223802650098482258269003015908574156706244111856582370000465762097689326034697597478651794874467643071646424798603706388419695628111203671482424765389763514574021355948333151376101260545097534063469175657247198602073023639782408686145954339095869801837974763338210668723014996973866827601574345740094430969442488341134133406296767605956295376413691183664053554458915394448056221058272360517873130431090066727573669059008175297575378921637578329499779419073379029067763437753784147306715320975903570954024828283218290990740396584554068168262691620480972612504215330297337425723820837505439883020168023975596554521545170845912185656544591779157417176723062902547673291515302923408654706355019654259277191800222177646280208219475847730114690362613264375328548356592308444681932523373573749274927620407912407324346279678076729301737127658388044597464740803893229954065511880221858237528486804414402906466076162240114286018927561279920864316855372588333276563768943303226126540849882977607573421239597189468838819399075709965271665493483989014363409412855339256950460266846756207309507346925745347733074518362495423859709899462175944401943265618285220936728783110190003274527159082190230132195151602162513462936106940376742084517024537352676295536369629215056181355065104327333801787146462511106266207740653949768709270128265674696757762087169270917029896297096324718180316963712143375216045602031048976857397969500620511564865777657250476817289169787238607262805967413156496721699681037428963646493550348136760420499795309536647279510721488488228171382721271168154453804550830876638562730945910557422748660131439604220494742933864906576588474872767446604744117524841995070203636552649171185967209103714297541921417045848148174023927896110241523803234840917274030560794192819882754396889362371146591158208263222936046531913521701251333083248343561012744528381017332336205048187670796929586728908652512339732158842758199745262251757817988950877448923873806244120067145416538419635120519846501134429608778849529657560632700617931115243183409139665408584706718394463258131103451016247852580453607085279951294448298364083110227423730988730128348463442347697053952372175145828810005530076151567959134201888685238956757314849926934036157867518778065668327428464045087211753930302294441439865094253736837980905692020057969569187173774590874183360595755210765870489237773263270122692957600100846838682951507586222625544616183132496228392434001205773906233616133349187174133802427334867390325371956077298453210794644847248789363136641198654653201651627535884574827282454459273977476385225132316450535072365736790106885054070349414350446502629902225846929419247339049551850589682508764782875564174206122737740658897381978598891247995612765940699756176283086750455194328073843279620634702091032270333944638739067741221456405841439228087809860230069893645995488628774821902731320211898090618216355789590217945288298900488122469029222732317869744774765794520107034726203352358573780781419418581526846774540211847536814849159608044834771610708278864710036157693979829015688141523918210154111689307238143240300621977371357123801358379993503208861041056678988528604433739515541423321041050287491532318034818462280704610372216384115988471762129586418855444711930587851256840729426491115580088677625064650890705412601486137628944106349152572730322142463648442167684355500563686661332247396426902080735445309130735382941039182448385504868349149164712064879186151166833012599022100979055658187924132067825595086912599766882617995321031366223036769229661597280958801467583652575943337086045348618984328375901765610479440059788906520703812062141165440972004030776342990039467872633058180842878378292107799589037285831375152198882912466481187935386165794263753182110822860553213198705897489959034265471355935568250859824056191864649255836821846429707392029240210366620420994450397327546527942481962918153796293761312942363784694301743752993175024795019833195218945547042553241777491981481403389703853723928248088189455765170057731874680044428983638559091355795276939486471863928821162171199628662066671223134351644734410938969662943521646576407499153981874903850527626965546626602322865600828921324552040589551745208869625877537611604718515140416691804099251410972996836396806274693033662734558296702476838922659820239539413454536351748084922498114262967178799859594300356719468266525930742195518712583936012480581192153099052887997722272124944346261412819326679880587417491497461435379152467939405697696239521690227021269068355448513996648900690588486466534834696469184303219877549839802191129945383100693424647328168616685058709387666365947059863661087400930705818696770469071385450311178183648023527131072806262411899849216239979223152067478658997437394765542281800177688013885157252071076669651671521923191600094786260647127252481186681703067948371659337572667972222557534462582870080658438551880646182654683301155399683243267034903637438563906298810686289276996312915340040599337873773607183256283169695807938071721650233076060868447556071104138329161644112271323318881625161023571152616867821501932300734749707911063333919706843928412343908158444143142469459911490961779793357988401157986274623506596513602997215035458178413532108372152932380263922559977434132352318347921901296615255914678728880375490808674106314696264920969637076932216983773337255143339545435249923822229331642073688941110590613965854383506399985231286151759747221099716196806571130625843695433627492872888098659707045592015749990193669184899406877868312008608872401333216275619549790281348200713717755935668614607864941863724193453735041939928194265696789082587046843226777615403806954588589248756795003421180586219978903266765099845076555374969585392251367807244350980857250772924663439230688077079914910799278311987916035471372378224425512859335834892552852102162688319899850272394447965209164350031007212258298517050570587337907167994956915076438745606199668055496354763260398101196609998674381411053592122409222510027314781047430883675021472648116786153858980936264877305297259958280132505610182677996398577643263984210275847516996865843226524877529228393227035213511219766271372225403527744914259232383865874104570477624988187638289336649542414974764643901367504017846974340182690954629657046584235142778530748361939255325907866576226104796302213076754890106299890379389343927964902814196395406810672995428141617145764319102470926328985540046631045537592657387984593205531247685532720710058886103782078639086264534047289373324495814111727472491342691112464276699988726549018530585869714055463420495056512303021773354545268256174953542911646290478282676935739523747198524060153191692059189947990385191608941372915780632337735576142285725647926360309756280192439734074340827265545879747505856506256519855766280584277209878151239767689469066259029075551197779822232015762802170483691468923844379421726620316916662117448566859950577071181064176879553493804663116146091270928210290844653420606449875084756778501744678391667219317506355073658662426104274119303651189966371914037576109715688712108674018923262028886695604563027980568301706027516269992503173219844906470582319766614343082933485338659996171857254216623521950494020911610639985845086139667341253890591270280827299389020431307508362275242080202530438448833742119689954322359405794955634248313002713845558615769125037399172796017449809103804422729953286558133340683220914066999848335934283163698873772436511582103769272509624703496605549878104956027369219368629598759468547360449061680118289201761976289311018542606877844307836389765762782633554998771568080459494329425588315686227933596368754447446359980725588862994714712266976782906226854681580732721907533210617157165398701481552972587957221416469469541869802353426808517273545874462697835865955001431163825556090913524941843513727576794101856631059493512030049327946910426583349501365018923416886537271618985821300786755169334422722943916540734088269087297531626765798159900481875271640876829942519999156767285339507091487529807850539400474818049717126155703919171442261146084941521783952007470565807899046738298273358504199900168072277506211728103207997213619075761994557387038819971601603912253124562992633861007190740652674642063062352460677517932037067259377241702205953003448131290462681246353815351324981349608372757729423897787834412161103923300005163823136198335054503299036542015622364069414591761885041342568708502560488711211183739118796525179577703632635133157968240079660559150443817167175043850546197657462076844735900561083766505354707078983965023879923700751161054915719976357551035917494420518505520845304768279662835272477445805139847470165939422819374467066383250296288318875148360511870384478706786452060794695625691049767239047645529992336254368563260390315867869950532499552269912448791088639626736810807650076725896292514614972598609328816938244756905352561266677268636634228137174822709230229533303634210861605845790913343101864834896880167658515166376024469528565529654573799662684026309025398880630655344144948758760912454969742483300047587010567080657280596284184844058700221001633659742615608016195381397098174250427259406879873485037554331314140871151213410659862960026088469429796445461430202222378543092501013045115094265893495759308608254108966824023430931856968994695341262563809997706604174033223411090642370762376950091355346576958289419113962653827414797336466305023438504335448236935154020742381715837808088194676951328122681631773661265730233208028792471090692543772984318415529449415132802799113151469029160292603733985407323671900956552274235761526680102637343505049377416574575882810138048669891061148020170864114457859543957160366243533924880736377017209922694556127492325755993827734364879406907857051923061284704012393392729823888766645452867361416221999427623881657533021384035926788798140386963559212947121399355013811646499163203926431547204140298146579278282675167560718368995611353419092061932543577485265233404912645255218825310623551920391434164355346486291451358824231049550543069918303391307843343806573994067906102205994519960558274966777318283180248379772180825133895412435632288991857114931783558322840064474776354283935758089355393393514013852646915031971708624915058081455022675216621104471759490271331273510854388307219840070160714449685593194943392145388803009289229481005172129580728740034209162210913688156051244363679806783215739493935003810509060566327863304776244001131472246317397559727562819870146835782654241514544111623966887684347767067091123205240358718642901892011313510221489999048699847550936674174608486855213969874997766027039411670537060847853197623735206565847816544580786760231658020605115143295487946376006715753790613931926685131061709159448211514675625338999958307826210214683629511488923103220679415642029599499693706078368873726694154194334957519567803392745490125080424664949695031834934790044501344082132756829525098391063876455181912094672917378189429297885369482303429156667701729552276063083954264309271179912824071634943849583858496318393109271542611912913101455235369378113526804211060040971394335948465504212590706149299870884468469861750369847364180788572231546704938149170419786803293695377809158278805174815274730957040624896549514807141894294242250713032610626687159731388934706182570260152546674086477327977869305967259202777926947612817495787107095030987490246545129773815557580689899841985434662077208360017626757293688769782413359993016822074739849158317383955267910827880806878811374734841239457750050375432602149657978547998213117461303325319421769010031037689471363410284180269109470237225730657519301201489251806575391822541563813716633106161014927175533079060782865773205394087323594113360572868309899432317721279032484380680308193478627570818758613084099638355620880316687691909379031584536495581967700990183785264776961755144850192507514535971101612859524741080667941335245240503528937662144202193202958661367668055015350800345559675828593149644070903820825012371238612966559078591486971095133533256529467095355850037150358570403370184505861390596859979324261383594355899730291594924460027286525584949358149150055760485602498622738209564039175461349602623557057957418937696786687205931341320345416333199677561097617741546982181218056635446534143203808123554245864491873594482252853277792011692894674372565602438070515863059464204013009420612017938203929513077922573938410972823587290902887073353689426954091612284436049799491763911516134325958969303207652941264792256319327884795571507768306039810093386791262434736423289315696911823637102128152564510626288067799737423637761170293777218483618018399108716024289813323518597877273675253434485019481727712851557707802619036316722152920138860037875157392294170578940413342548155344372271786196434523775083732259202623569141626666754859805008799008480238793538563392378711215933716261158571234304573406519512678100068728952639586007578713310392590409304444161720478766481130933363420195839416193963715832352856264179410200615589824483804591213610059995497302231692681464109920469405319064193880770195179010470845340271895737488542786393078852453456315975051338493705490872053218807793992378014916057077560975880918505306592959301456909254682483301271850926134024383804373037713314887034115650757117979207432044784214974634982235779387948016868625921752419155012109939728889650219447298803178025474547127373022474366602468338153401036801571710331857771181412477008756637277325357892695718237168431836432823378144265255838322911053894886392575160893636937622992418403931126194109844969740199688482130501594949805576882274612479743564206432894101344153746401745215218349514726276190893622386147402046259629172342707279815329962626749741874300086490317391012072588088269123946194386086174204157880080178252935385628603226146229300634325303587835975679810039574723313255009536468449816595114360007837601881079520103412558342211711179019261883668653613604930901499658186055506481488992462898584795505761201734294817971747004369157100577975464784314788370393463155593194652153769386859457118436831417627744334451903902904826096344652214634574861910411270921361690828447137243766931769463145322635265157632355859390013371788257025238141651674518340090725366090938050150533868197340785960967244320820254624605450254544189621816947774773262744952764774651295406307576318935128492922456472707631150846184420096588300081041069390590359776379232053439441783848410313408552307051110768204526065891946513071781457442497582760520864795924383203693194902297427110969564198561336630198154807577661532118462012326798386281285745689939902121638298256349296403111974438335927233818576722432179736854202833586285348598453030500839572905070390148767962149744302543258306952850853035694167213026405698527096189661805288920287859588317130667288288429730833220709787284526503672629425673470568789052567673522894104252010504184184464036708101446785769872512287485984911248694399608007492687265731825225976861254361812019173602640646279694830362305640096888244949806933424580632813093353173032757563324759529648254802064874103982839887204009701241886482299753096029416724813671759649520414617071607625068010825967020631701376285644680519427308300925499654246339098468789990639671962681505374201536187626298094624666256864544741766102229490227291769464606376219182447514094922299145380451272469400682345897524357882923707059688236461430147969564608142162272437290300589562722668822205052377916588567329858537423296983233516196859632514768282462792958186321801573351451853133468334567138187889333165582563958369470650873799202733879425903415153775286171121650530768009788773349126580804201485165287720877988611331573689261634338801844038027189753451829541224427718033592983883314019762431168864506855650374724231370434654643437476763682856806567439511446358993182276876090768064594342958084057492377233197361643689501294661088109584461442825342466687622569553298549935145695853678264243055050366543309360759665568690060277083625170632905111485232848060410610261506303518388283583936177628142092544773589654125555463576118258400722759094169610352303256437126601521264751065025156722585913466915190182733185253952660130467051021602757228704134017282206255432459998776264555305867228947396270479221700935990506664684473577625110362453272716434344864949889583619683200847582757753535883826127988939028164845338251363909357004405968772104497997603797183165525852904292292082883783870359327413094843300417695787408403823782409614764927323582039133422993366362540359349382975647268839058559369172118087734019241297376144932022636436038063000776070036535489310243391434034856069060445653368698851817192879077138104053642795236036089993159280643556183914211248905265726846252550619072637625443476759137680976240582779613549459180768804474244537652070173760240291270699181478162284210825828260641035827322842769684177116280490716815575814992159877897122967911804263824505539726068544004151311593684601633597423702634829559622505529837520570748040045933153703301096589979373183437413344124346603852435658194525530556559444256164083750514104899084704094848955589957885886939862205905781061459907064196560527282571702967932418643877435287995526754937923927685583571151415999385267033496877266424506348070368937355654117054955284834911359279605394460717265430417182036583735635462336111960928475597966223045340157195988681816345734505864924975143821217397606551013553549927252082752975242319111016772344823014251405115878101222980623825929215832139200315474231163340403956186934019134545971012091994236145645898055494918552476424311917190042210491555559400096637457501624751531636133244623758278559693132830962211240423098343115169489923938272586366040240509070667646385856702826731366694096051407569211656151629148759035428973385859953994444652023388012942846473538869713620978904859169601671556937606005159705214058922959665891353507398807070093741145061189762782169115065009273954911761661832238351814335728171763308574209961430007885708264499415231876981762057069914204752926796090696843895427753433237705312977726336449563521478669710130346340658662348864758905576329547903115975497853447311047639923411018233593552148503108014344066638571053430518494490771869540049553749947215563356213849357513272851765529210292411387834782698421908666723231494730036466685607514902190355706598688183811376047690770277390694427176989099266427799347639561684265185304220169621227291129340515487720072891030518793658310678349867953077874171805554566175363751265023308370224417217904305758507564484000647993659349630782456305067120951182560174013249868252163043218754419835554606288841985791462091225579064247595287830562468892610072807797031562693325427684697548469162811338091736929732299927212907159257038490033595440729001743506900173189120137098607492623225778693698846627378492008963759901514808058313851313181333217264266377897481302934858645490600478646974658898924689980358329831428591070659889374548631121052539690196932641337750497735429886389686680083947196939776217318880022238970584487594442511868415259032331353819004854291936087389608343188681759898480328421874955071675902491939388249909075683553393664352140205680330205003154776384462063407686416435649953323145871068979286102735181685326499783024612077188839576989190235292687261783064779552567879235504720292406020410124736059051962962027879525035480697158535203371128694291159038440034089870110016238283335165401111753348950762345660888353056490173258179072823058628325405699765009700716053674220183233812441648001226434698169436405618950177266113450487870410854771852738208793822329354832147066481175187343419988213114406282136722275457572295244890635014039366867271800366672334886196321129760952246824956317262752159211186602382990754748165357154913981758732967202280631422924103188170346666994377624366802832146797468926417197239268946702531929479298080667480028180576166908276485729945955589478700009918020879734267717803596012690273255359039138987917127361893817819969073885966630419211914122593099344069310912517046225502778254076639515124351107681074502569711524231350539443406319733064190249329784867527064470081462746004212437407432164406746042887864918540807184721588180436143942084874576901131430977613057629070085897007175972025714133004650191795928037093321222744804802887776937024852112622622704216134275236838747197095492319363040184020414859843858851319517152732704972740584952691560925395917849710865650041157966224633804179116923599456097005584838362506330487600294169428251930221641815459125951411747118931139394338176606377047632124115838147952244483832401435623282678678182295219597050330654128834521643308757478277410727152301804062845147596185481137425389731743826325237501724587727521050884754549998988123398150335942604295734870101283782073468881101165801097600309550742428056135632221777505126452784836893011938215846727871301203612267675168765218084479970404634332218906606655002956429358283613337382160142662735719458219987007445493933055800319176185384395412670917733302964173959232377361329685881706282952690641293800282501852862066123982974062898360387094058171669466601002524844182652304745712149065106408226096813016108338416011068377419760856675612547594663762128114982751407136644221993330618527184983566353729509390589894659497667217850207999538568586399429127988765473379460544017938594145021512840917026561859127650859371419202932143241882309333718614067354897483032036254543671530269492335510197388894347292047123157016075525101960630172289833546264191612441068554857888235855974991486846370533230781947699340034607927429908800688293305597154017747166238471082986042173374601144018711956699318926907056685006305716428563322716650481289472512419777620852510354344783133649267467372894884394476029527769139113009807218717547784120007231827860931279274081118639764831873835070119939948734160787610351771900038511017549543977405707874346144793822030102371297606135439329648138400101023905555874692092104251191797361392710355307161573351492256890333741710238968032426256761714039628855178612330761573076321897757537612652944426607677812350492818423671794817709762770676570282163772779190302490465473162624686335709227284859482284422517560674813333074633944292456141315260460919517663274015284926476553431261877835880037386666703158778314957582431756092077688694430327523265724359447818568056961634958228642566406622503905122998975464656702146168238973208922208832024335225835006172010816627105263024089740902165186664805175387840071278570880053438839270678190555888736873120184306874365245018028649369254086616096729368967330070278071962107049091704588001375434451242625516404045403977428442386638013115673666820858676939180788102765488474432810852194851254657697943279972719191578775176091712731266120249541794174558008718640315955519102310491082290074943321535692625881170671986098919026335032782812123301473014015299805268189149904224406041888294819392956142102405487296602077817883912756862764797616537210615591842178904192426373991971151554044532774440120168410753717439289815962714824964128133372647901136462248467299293794674436841480410903586632147257935804494290191726132237458594032872794392670378259493860020613322175891081907166099850680956849156830990704403960861598761002919483328390522932080461883111825844252207610809465187052192806050661747556048147082892269434098625940323126520928456063862745394749285014587983822323368102722567676560358955339053923616358095703620247158953132691449920018953501909149952902967933253865778508225247069498425267880327820100868232667205329219087548529137415674617587415591299145458663780951424979518049900883692318515302138831171042724571642586258464630303496473386206784218655817951626117185437673193556873523474483724413674422599696450159278577253753397166417316133250510278045817616379825576757081947431179837932957363761506781023173527186351532751535175880271243596958901208697201159168289702951503681101087693616176861065432783973310314453140076759342430525288440667889956259246339909718303155177435074205387851310589500927645777788693592327582651868208182008033311870780765481389340692936138003552082720690135456972811325350489431056413971751249418540558567336002106400422790070344681706903553532667813682013351376353443048055637695412022829976148899032232420342949980173373653658643279173299409352941091370001718654951379049874269839461547624252922187997742138460471606291926471580379058084291473665788205626361899269299955586845516724521838607304731491123924244334376194767049620502525016621021369372239051702691345063838076289459601908233844478277013380119783659584180640003823078260873521318142323805918649072393412540668913940365202351730047639239403491500167475462781532944077609965341621257204157046510477857374468321933551763708448083372546293304763481288685383435199591117280825750244163214481731148952567362004277185048233626796486487270233843664261262493763241692912850066876728781587671535130640100195944291592295258731432044318466787360332322920568834798518175264299485960472959847596476780036915663535874222863769881505553656495543421124127862602548612360492146139786456665874587542181000048762797544748994132567947975681075476948559995396764319365616097159228240597360176331964173742706562363967322842232334001757437799028559753700155671093196525375923850410794883475430956980397885430428603831198890989443178125294654273645625910931803401267338340627169151475716705620645252837643060801727591667186381968238766439374842082697858335165588585726433250302155114169420830030314267572442782568535659718424797979638271871576714970483772076797290688710647433345089237150754615208456083259969904897145769517477977941782684458038423448903901445479598530726384073413121800384458211907683393451018541411136145437630498965459030937309098668676190821984134325572023181327932781815073024605947178701472788057257414137119749038960314567106415491407958144865801865162389358691871119544363316076829168224871757005731550265560257534467968622097952152241019226850176604538089243089583553625475504701619427716506480308300369960126791739905825586598654787901137609714703310964169695880054793208935302015115988301464514430574056745945697359055876846306458845980493026866819602366910513352410001447453813381106990857166827107130021495256877837703844916277338566734576864482184429111039463726909771954959717329346048627247723345817260817612332289368480645270529659883533022717861223178440775734782157903116164117167670726952670117563802896733018868622923412317298990903942002197776536747593449059343101362190739288407517884462739048838950471482975211054474035585277034391238138900844345433514897995247935066995603524986660235477496697125225352244642030363512435508671659139873438984944152312592172795782970938054127446168920607788930053261772885687502174296858772872554814437973294832766431470290881514777896248386629733380511417500794160390530357770913296142622663695640457890389791421859643877986119279534496831736531644937459511198940517001147114588746250231648283296469716010944753156017999438851876738006598433679988402700344903334995727741851753163113182758116649985760986903439219401793633340224260319310664308809812897506813986415053314167259378069355447078332391367770828821448077632020975872096448628378935584984552954385524347120027350823295596813875344646304588192320502339455537439380024211401221036364295967078167940618718976759848915388514865246413362945720654706159013486466323658915913575936305017877344715434483915880195608062537867212812864117079766469235161201506969323742153845434164265799507451777327531234062413500898181067758791782366587240049581468424355752265696598385516365373600544571916023975834500817749371982246342829343243388162357874683592614705991360347178958498263624941777846419873493146150192932225560903114891110185716492776927723424006088678424213751677573186076457117590965858181180912510489593454954363797216676834891697813687941906846096355880402663256800869303656396249232094183024674595515780754875239721059476335969879300208496247788324104281168054580485006139275270499490881288716697655566446884620654059474278906223192564410072939175684402587904161697670400172248385685895202138650218258981473420623253238421393582135613464291488681143219304563929838290062472990630341260651716776357160442831321885109758037943588713306224574383334290686462833328602946797718056471750892234098511034000709887471818281569268249603689875302703682322045179529814695341501346973458741740045720162717945002462101883722307891736542053486205056983642937236485477460731353911212435820846016458908831523562031146644175254182142083444409764782462626354952908274099068238261518331159538160269358283695449420531357978584482127269308761626712726600047383981272763709151617523725123987489484087561851076439897296980978665523930843534283458516192228646388545376511485359545622649278522088403233606862928396230418224643413345411535754277964400932004238788134134628001559918414333363203919995485325394185835756645795245998988616422380237570505513648386295383614057791325622493613477363939147869302664813858785344782578380865986792220182568523867110687758899968261017646643286797322612108290658848105637011109616014729298483171321103224961942940982365589887666960257903220741958585901741663471568687040099770549257713442669902102458110931523104134480828819845050990351750578725560129247132154201094388932411016971665813649847661099027644599839313867642180900099123026942761333452301676197251903444854875874021389358541420744464860089646890163508691506169420725761213521838434314669020759690050948983013375190883720469671861456769987808715817134344797013097170350930580902203438773146127829603036372285793588187940379582276211476277099236138408560954275250905831422999830079380691756017690627548410176683166137523189970473704174982917996682078199139938272844637776650268150590352295608674422423495728496508931087937847696489716674680975752945675502201946955684658389882825401356810110803456071609719522483685420887656379561052390616670437143142505278022379083566841969399263754959311324291984360412973048150119266445545060416094893968177230986175956321363873454596982894937255482465328254048899137203914625042048850317400024683207234496219925439383522715325725873090286773007924677290727085425828534826374157663575958676092355710030689973514603824979876600715976735633458095704341251334377371442855270939000744981549991238758192319767257213626633017811898407283745790005225630470076024698912304331557830919380049004244188825403130450450289449181547537272323874362892833272525209169400501547326431872302779856854208696470028115917171482509062022743875810252320040269705963832285156208873596589673910100563423669700762159321799367413495695189019074495557058214257796462409660647149555661540096790935105912896610717371141708936492145888964805180431708089662388796347167693782253705524398820908466328276302892433168968700644973715502767476540098046126320190816624969301602077488777428211015691397548399614729612397144939862453415789058435729201858662923088959353036369535124267023555936266487752211014770508820960605012555254081089720626977106013062346057293594540323607351321027570246998151062077180339461739804505163474508716858168320280103432133009382376885044203485808612811529401748049645512518798933204287056295266374454804157237236655719716302039364321190134690229155081781840510418186592125901627568818299453931723453169495714241250480639955905659610681929615824965525710862659333649716185871589324224770299758522600693619728716848257145286192909520750677020189976610947728944502117005368517893166119147787558005277400388892715639913261123756435767189364809370439315427216008539789808087566283741026985489026489918855946592536471308082564130415494569741404927649408428266560490552409340127260503655925170279822733607586835509444395774598408233938588844512400776666825279755514730362138194028692549110819442613547891365233285425228916713739713484291229435954701145547096139729561704521633317307403689550742533317105336451535951015281549326290533674542442345620356116059064948384065226552071929985023512579547990394225316201148110731661431865365118924365013377638790349224085590524143281688824030516812101126146331854510595453026028908756298949549371363334095821333334824825574523390199821777901497868528715210362405859106060934331262678727133329095956400606016956577622370429985422115043786017717684981986995974727690710636232393864715312119063240800385345370702509422631426191352398339879640001225350264513533534911876063064032077071424285634241314817823284792150286205654490595880675100356417950904355026746056755907114194543444702425920087439596276810259582650040474318918898503801694999741321946063313681537035874465528232888899816272553980263359197198947526214012830562171036061029876023764226589960301159520546851031459763658129412220030928402607285451418957636130051094304381513349532845967842506662433413475327858422172631451272193064098038197705201139703219735501801092093766976212318238352983700773072901865248789643593197071680562633125642829847334181291773235785152119200934829966978277221759615297563759939870958773149607636226511338889190878592624085875320671959679593916658753516392291289549599264588387990477919631860988110471784750717308353526191845811740923342178303487926442627645388632324380906304238180506062846681966333293560206336017230038090739065939196114996319867589269284377855586358203754819472245038788505882781395621110821273039871160605026074358949392892321059468667466722309846897598383229067677354874501411013484228493629168522232934924472407827664033053602979244393758215636887085240333764139891928298479521078517132374788437243573813086484505736135941913074235280410532500569288957357528389925612370484258911276976373724678994447136423660998392554846204377856254962736425722626595936478447595419213750204249609648777641839595493892678217708212796420503081569089566675274935595094993230840305554805519183330083546817898818636309362253557831655040269985009780508212099607421550131254910148502019471219553697681990115583026262876866661278738354830232192165179283486807547844460367068212691070034361633193104678981880898339430258698897863033832524373139528783286882268368410168665248166724987436921105867550757885518450871919908963857181188823162661728407411524413318107896338530645363734506242527352266349571943735692978402685419929388836784391198693513562678165101039782014529079035293867032324479242409057090879942534982141624959091317094906112239669179831511332364161032584433796192079492985036389148514076807260071073039672440255375395066610467402068955418225963615195364427488306929865092500054084977331626286112781790401387185064384867791298570794539533977838216270029516791277151024865811663098591098039733071016007465898184433920079305640485471316321172878552649671963946349072414132697805014578453550970466307524434433706258060349322336009329264211916858554463017950735775859048482165030591620671236367462919639532835524379552309178451581640856659946642014162690258623281224604943926197408590336817434118451979404406783639945862347531073466666777841119017694268396907505563488126283050199226754684754152967712037595567590604898410731773751974632501354721317128848510892443062958074355328551664792404979182745159682689875263103227015302141674476975212648900954678657832359968523744178360427366624601224176344028311727523404233594181054633358377451226128700301318145554382161940530421674097457219663143773321504809314197930796832334495114587181035466127155634884752330553955743135758960047963432039767972376016719540848044392285669217718405469059682842790557417995953863112211282757387992169587119240627628217995041680737236021862580803227637204319244709827869458176455767982255420522424300758327242776181313015544663393643650207818411821300358417761388614353783046329465873130412444727975072159279666046347516510983564254978367016675541506159604201121810082850111392965396362340752224181726116804553757084331608924606960784116665478507375016918015588444702107731462930501577214841357427623939042353007544978361611713101153964426389510877015191307498025019539417171913382777349754321252343397336919731612889395471613021594668301743281757758391494562114105534643699009243012694144339820488476420470914999782568826453014340435901748689663500917269991164472645978735877022044133326238434913292085014749625504629123612952225334822666001563128349628138707394757013211209030292164223360140508824621679572235098846403969520254483220904312849532073528906430531528653028187721314425924529411383578992741082697687239306024776432069781814498000081853246935779278622163308003611181665452457850319470891997608353976454324717027014174255251215162369544163403134347986274590574505938017273645279084832057957659147156336276955580093530058945428532553819116752474364053780050991378370507825011132971910688305602542122643163725086615450286365432022230589351322908615484757659216879685487168006431428261931287820296445759435137765522020328494408759009790234520466728681450211486214298412852681967220719862321740482753822598465171528389394192610479395297927362598416281846556490594472831965264122240014458276466624099188056313324774905537178725879911418328980679033096010870860236219721564488639956047506392030098050872601425345355982787308704598298904748571872783421828651799804648450920702250673847345682838978746508837750378366864582903658980771778629226664138051314375378147517969639210197869448775802100012854518398011268932756045202006004219460019720928824723261549949514523067332227844243853181636635161301856253296521781049348238090971339791346699893054407384038479880870225869700713157268612939325997464536763782342378397924462167091125207377922957549014686207361958583575567766085594322777484663452102638121438678811399285358448623242315434849294817240300913157782859671217319728508632492349797398363767364030079478878485178375979450296610558278387676753408124161323767593704974293289492324909003069397281033129028035365145478310056727052457084319636678030618641547350640269511827952906955775346346971960084015219319514422338404027484828314134246481689261274740043126365049590954654606505593062880061011377335794511005914973746674107521858285680658083717370328319708902473493674018666008485947360395920170207832020122648344755609994059225223424408649779565457053358945569459900975435961958955006407350995659021693734652174484532437638138158558917942496492100225792007762716036334554512097899340231294047241122559650085251427212358084248131940831750056423698142270346240510040599228862716965662517166967794166556131138103676279719840213407524225532852314560795902763291955386373263444313120291553359490393263163618385281312253945306858527082783585969173597255802446001570014154872094800430974656668104977244776284617279613022035472686789076973801129001244828534881580342892180140960269830582919517869356359579354562483107987399505530988450723840940839645960331921384502556093227517552109495772928547540487961692629283886345437482947142871408227844438867224010644575178976974609177221822316126928036566381500752713706907016667692208145374075578527323832871257824484247153831985636821273610355960000558264433205233925661465439574251388805809557936135704638167548612363435635133621454517867837133646996535944953595219721267280516035284832580157082022201495899414480378453926631820641512301170789175134036948985589433444411989811839331055217477692759712479864103208629663238765659424612272747893283437045949203319310648538745364480550623691258570950239497967196357201908195696383317222745914926304269711359374963994157613801329072022329858932578784656750634288586064638458355396271806742716836188820062780560532624234331424628327536606168460618784937173669098775109088487345942927757409328229771754307041467404609703427523901733004853263715484818524762910280327947194405060826215584947354767375800396178405064984024502831137260987500175731318268735402438579360247782292838266390831817548150947163543323084524575912839348585009539057791012459835165123834210104979897746279431153913027593834216683840728514129152772441066846052628430624220381576379453730297668463605577397663290974266193449421512860950016223353969147634155218945153458621198567029903798796247973428980548089680154297983675737986511638726658388032676102720971785390327552972925294194272704725359396282790546638834912521347177606576798989047760834702178346077892823261154186547237976508176305984922872874544853470113171073394019935615011444461515110564551432521539318317743306347341784783390505407995516071525251945286311421853604354074684958953505296386845860854803922398643074403955612292065306550612857667000814877038196897705734797902341755485902529838726937529805336647135654073083987451170189837813365676079043858056384156425138300225931766192718246284211720764352304911525170713867676751193670583794984029761781161821985181708573041298510651952334744950227148385590027527419664855581277028524681925999615941869740445028621164827862074728019956053176541755784835945495663299596982523350269170538719395636872555046266705604276524579609331696770307227227511151947178568090852015292338479746951240757311367986337741658901729789097331910386312046566420025488344822523238663546411482614312670134397508141742887425615180124269433127383789175604069241114866155706658037804776226748530701269283006189780397342827390611860674861083104500244852024008251772816229576784586094970047479740055205907482828725938857604604066098175483696988486313242055332082641624456451168891257080548827563422067744350076484941850646229819737776063199219072944779474464898882128182721997573121267744874999328503968391308307523443753285368128935002049236081096655716320831345355340209301202130905579142632228529620722753771624364622114126119242445614255570525884656916225761877136679355998152949195760074398219644578781201212936875491262685821306368237675885799248084685588259663732347408573352961268361468471868537241606493724176206983544325317478745555984009724921349561850956368219434645378360470494509406345264178909724769684617821034360595085783966014472046728255085509218906300642463673712294295258298669037488921666896789166137843305583553343968202639031344502010129368770744179944728411427227248224496631103816547264299764622551228901426585169546679346185606430505400037479824483066485888294927512637401903126938089973716532484201735648825214337376601525290988889961711964696175001606469085901366393280917502844616657519219221715589164960931464702423929993709443668208957580421941104918450232618882981733306359869518316646013666918593946446268315955506220047689892432456914102517593594497141981719342495501088256798200932710612078305376470999435758394199460787307644963898286222107900462239781561226061671824660915751624452898052255681436635084237539751040516769147021967752065958990086282416591278551082833740472541447503324232196417711898205585677249928971534805913688343876448622039342631800813461005904236168143075670069242673453306336784403034494456714109130473533133349875567191159264683719628825019020179558015851946945087405261840557179455145702134288816059134777010130575186263071083076660263249610288207612617034571405738480916107614909485137745781426084328572071630481456734975114205673857430460076209147376541436039043721924135619174213231346661626644648056979445244958975570195698124473742301547713324370615507872423729559850120087811354599999120953228421574556913971044812267827351090052232873855164015333265003802819577631891040314928563950631632374559391856020878165028393015715552811358832448694125772314496394167430045233653676875568277675621914732350156782709410230397740843231891131949748641054530588227548056706518638174021346529402015443564042335994946005131243461771158559288831413117255665220157623273551760353261564189618273325311721298675673476132468145117495843752682292933421592014739117636303519016311498953689237482816890256254663070333137570920579518527123202702387399052647050095408021504076436997926959055134857845696333225614975109470225567572648278147839772941260965670213882382177087099666212761053449127257505933140055134135105256001050474587729713164304605878757867966284847179285460264651932793623773007851939822159405543420583157122731750774754370418366963395536887599208615628966139511366965060633720199230483334242678162992406124039159011779339584562376884686568829644781723910610062340648892657575239730450604995994340784740465181932964443428160744271159988789457873759552680986692602877059219856004546593936370844731787519385670466738738808881886603091546408411655113224621072290810390739011352213205351165154917580829742636132750394564201927668596637031382352260578373586503860269534638157334440600942273127751057205719674393688820342539857702381245835747505524001252479712040381020922179367248909746895631187846398641773207387968716924293787042377369520428650632673170520233090062034274684143533539177472595053872652699900625287447609885970424575445518302576037463928417177789814412865509853679891653742710084051612249808209249934685162763836481043679882617168434059214651633052222614416741004545939833280848707395206184784091685117262004759302575718463750439962189066595502912348443944837488659839223412654670534623630042621565296265343120168039644260801729697858458394666753783036051988795769647316718416298311550019449137324928328636659697089608408829202329186094329941518892757457555574847139407946920897567494658845491201518405908930721218405906650006066687416514449159503702127451633519839202606241511139786779955267846984156343048581577045890761286635893645454688097665422247779967660960669662450132885474345790569735804733458257383917326194534542762900289993994977569282214728640957641959296412067114015068260905227760858045733177412992384622729738673207591823084969410917247450508029101987198451233919368982855295974924870079611336146975419998887635330606258291996162596908769417089491951519818275586488841029720426056368671024470895562543170298454970174962257167271952310590343109618983752243665344922132850194193581033231795230248234950544131037079970699702790474338378941443510691763515852121263822132915759206765252420587221011054607573700015980161034365627014198686327041979942494693587453664366769580924568371490045699734520435504140416722037564041239906645879633630701112418142275041755562732433397333313110027154358091156553121886850826746678983184587322363360519007095983988822392590561480391439256563726555045279704263530395224570764431802862038552022763482969947575002887902169173021442235884887909744548073782354123801729229860897924541362934827304182116860304177125983780770154828926910102236944678606912480028879657655882011108336920952080907660865426994714332690195115594633659075303998075608003631729278824066416520588869979229412973179394297813176260358304175251755640097781675557903154492985081092961517871129843563185357033070426720783859947844711099746834105020579602825571519566542650809785853921806049146853458491606591598515749839237437695458416545396119900155120807721168007699438760468691787118486947685461404553798020462238579935016001097128138372482340195266558468424404532970893544402665802791348418259539506253522142405433199277771774823350633333124368901633497961928937333281185538886436161752432896137358922389632813892391072795875754664105713563048872307548105442063930406464284276274527468976605547947556928445262026419953433306339445233787107564665349474541305710573337640584377755619074876354591317919234554999187105451564960790726615192161241473334639113896797529758595479981146124700046034720894008838590515264514413801156135250276226676317660850325134658478099225843355909229603161955812525459871240792151278603087093485320943278122252615582468518623629922309066048322016878954072336444181365260276645293942970907677864202161163191032055029865118717963707132555205992021799007656408154014062347663071861328252227552528324873755405652818083560806538246090259240791154694166941976008014933034589466428010679370134725420034713977350687917121630011801504396431623888488075053187573818377172530812559252850297503253074580462331568285843687224140447713788523795929846613453836792894980727289731634369809727910181473698097218746649482068748533265657543419489923605332652599118501645220195590901290695261140511262536636255030580339379743521743209367422641428959486980488384656582317142044070483789936572619981725158333659185628670423304490752644503001207149856795695660227166685523657040571534641544983267174449978260495822321222016712021647835202695667580288964027323294743542065745769979948072509114109943690472350568337463175688253211101188558733447986380681711568986903089977062462915327279966256761691698073126828936611445085294652250707680682291582791965045076290842487710513468114699423869988193467761032297164772459554679622723268219886456353056892304015699019684199445296661081586452868426202800091754292593611894229066823776510144111745935840239932839631680771893136352060241316430255193289819595441042769549121928105825331700217194313694527686892714876149607258308378267574119820126331825993752304397432331699905568240941284054535313291782939789521799508616494351900969918882532538683843870682412416567503066495328688216127970191677266491997446197437542614154618187551538944204488850683343984098169431973012568423316806650026017882934497700374789694976962052838404353429774787259161209761627773385160260136978203434080205713603382238763067643573603359526826204076541819703331511672887834051590944849400267541785906187168114324751910667162638311097957061192545471880173477966143857501960198576713818034316218363056125716202527205347064287225311312827943807610970406285448569747220094978510307928658310655324580505477052215496133214665108425303732699791027010045336329635736198077741524447105076713416594314930629047136747244338136626698032498214724145898548456717491035590140170374755361615256303251392214587932060542413337024641524694615885073087284955046995615078429297029366677848879618586490420813788296089735472703218697932834845135098014135709324147232419613581722184513713337755607239302466886604423373549725714414594552256687036491034023150826777328233539074665999339513326031490502267364208203379712376194252537406394770538292390038085685184470544794771942017500078899397249532582858492914660743741860744139307532228548391154614512926433375885781054491923794381158876691170271966609542747752122304054928879935677928682211776345590055513143347219079298631045706085210666421397798399398371631556990737212331884956968878537129850457337912922901049032517850337218666315238011425407518995951034899162824346808443723816090733258772218596401468116140161720420315752115599904659929263419748788873518914917166160938300516515417761919770942487050388108684437102254627678127063807837048927552586599356055102316494606487913851731141592596437487489570541053565840233737539101823138131357046186694002357593072300179411690712897576286831334922399460354696049779639215077432679876997521892093801655779185357735338731539232370623643702666926794215689134596154189239912107861536495404284652256593643997854836104204554590960571720275243953717157953108977965905776225782844267397484933321870359092443815244729767528213001960259689562104327402860205966247071576192622185752884376515818094299150646494998931506791387992971705050406125444173313544144504705251039383338414221468410097206412163386946037366818740799776063495422928752540964073905405359741584615297671623390420683636449707261592521303798876682331407624163373079993560811070061637710961634395875233980942928796084938914193570768499532706937952113657035447870092241006730640272268188079968620463613864400328486548890888826555741331297700401670728905034184828258869521287249463495597112566542681369740712588297184493994422321692192691702483707345839233635579763250256289158692563806152316183101353742046443186240933470553934958044013654684517764480206959157676966946430223186686423929066339625265279991096216569779447516913712604530525943770793745956094124089222792143205108109023527255652243675152413365478637674545665949468434527542059182704794264736685087798506256474403698444778345123955377529373880727611292711195658980652195551861967104906452212088475495663768576813426871141437207201073841257039261323384904283267813684579361045318757296735552481271183940174067506370716379103811915841699739629742640664727340696490899621705169481769916867597734371343217562182873731949143223894986227528373427233549809861611942099119565356380346928448900996690385968731864616374095581196852772440196758715374312612275335495090358544425751105629698704683370055042402039581973193032885024502824655448819700143934898800770125378095124420833564071919673046654445242899670578079904180890872278719448632958403674914722670400789577034822266192891160436072111470753970983353744585488836711822893947837254940850309083443749112350991264192712222182715444533122099216815278868248083532097288780978122890562296344065209853496571738631056461606499949670197079136409804919452668682060690386653216531855777431099701864291683170408710216126038487866035845619903672650039620398516222773551758475563464693325488336274895097672139819793851306702620463949681661397661105290464533606290127330272740862535689260284460304257722846843347426613917104542254416426778831549173066644592756141172112250577934693845597953747069498116030824467423685810792548326586330080252905769450786262837692430317165473832993629525610471998363995816438542566857349035554938718501454719393743943908023265448105890390949290044293305981579239245582212306340876817282073284552971346774153460465348382753202723976144091237694293577482785441019804523012155801568047069862855041637439136975907899225438744025350365396463702484271913193311307347802368880629416278393882458329321524541091052713734858376886641807830826706631215578456771409369297618336339399262137005683438575079837224940996417885373596933580374424952342179086553018606007226765506824549783556347567793005397201364655076565824628727812609151108282870095694160611774060967750761563050941693105113012594818341000651033212321196966580684283282187073583847801550299686433262458887650802565011039735888904644650248149494767807313225985869529448433308359628910625681856465668214981370780644978887179091337954377969217945048011167610748600539474574427175233038297762756942597495843040632365060781757067633721296277735940848129410892791181075548150607127093839225268530646534227239758825189150686621964832487131742778688819967604585083063853459693485649637201872438279647689171698932396844332888650225269124606842446850267266644583539437748307779314111405452892389067171650688373460788516812853587924816932330213240886718243616707693940802584887956612561821555457242826871032209503321650034129326787319457771287458810155470703710024804202181221075621995225462899396627635511479874240740535474749005221051739178394173353628409490610015175695314654401777125339874153246468490265631531194469288220420279150823015067981273770631065662487928475394966386587928323360957800453147143456804874881015321186346606603465648081467273609151674957014183426941844746730456762896568951133792257892571653693467287202628566667313031770816520075896325184120141222285700935394082356119118515850442226712219753123493639182068932930190544812016975287936236874985772496661044247841404595589354590002097941729828233883074258164992445163608655053249613088248523380013827432537670569391895725615799985306691367670744041556868521847214155471115481749417621655881127100884505801546495150496160739543735298099886404818221798416004631303731667148673163881810533396403504850792284875137932695550277030031368389873640768841696015551247665974460401014338700659343790315359238517162914255770673974937636110478016362794976619249480530613041140431800403837449924149784433293557055839124088526209318665360959383746501544553528828421061761099580967943914140666128016915694513168106160772135841640786035832110440415008994998267258494361835677874483212067360010013082654666112345984703555932129860586024641495205561245345688074377415937711949522029621552235506991049477651045454027951275789847178026528837216366356234023363533619788912636139598552367302646567413712438090355066935737989203698384853678326388849765615820743463767309368394116221375793328480807211080769080664609775417377764356558236407206828888195492451919937067686749178806416155363161005203028716706670466027638611799342792798435311186496830226733369411174954051596390946254342018791709806471066467535006282219850816041417749595821371806924829467693006881256415941127864061800044452095524367198428631390820968344610164643128850692128907337372701571431490704511647672192047957534038813307114989989814362419190494573268368039872619669966489583652166655858132236240167564133295611396774551317260888302145071246159498650185857345939548345817596183524473718727888490210241954011476295327545941789789997133159196352311358179237499704681774500832547314130134449017650254090240859836481663239657689297872831084175597688211610391816244825883042106813377278158349159412198672267589821572946909787214248862486469963896296527737445639594414471197146886751692498241926227752145932988128364046577159897885051853653662527155124843614771989694800610560650259319788192338631129814829511711988408464774429447095577230712103968082834152865179732146360523473434405857323908844928093572434279509123406481487810470031777356910092504088166929842529809470116396202867347674980997439616607960423885719479874671522733685174009553533617872017556799175473433507589984888094167581591935665408073724629236920156528804669014924931401716041322832347421596421204277917301240797621681146124717850334904710894061595950451052165866699408645906811871863236255557513937029293752912083396988211397320988349410646552801279473403808093958108808332976452339341918427168154748105304669145695780615505436736912122073905563164814094143090447026315777221166749419359362207828557977421016496813743805911473620136225123943387325552107278400365004733039161316623525742047920687181967432709308562455858568670135111028951634078848731474645335310880393611610978596865243743133432907143794753781037565901602847680466045517063000280973947238369619147303774473617340605807558127184918985145072650885816617246919409441600930905183679833766911846563275448060311601217934334354818654751636164771304475532562371200287520643336307620899339088475436396981928370688999893286255193405935971253699116194662756248975737300264416614309234730712374774286856180782167617758288327196829256388533343592730857239488304253335723140025205200573283541999006478903120345030106039116979328848033586786157257083072543038633042612836229130717433975399477638188487433026817859088328431750612209546131848672536573897485010926233862699591789762986928279552812211369972679301533796773890547504012328583427961287902064784265121404810700946136694415926899743479177529511125684923422767005363386916555894691480569346503311908456723448745871922844224450363369710690332552796725888486361883724824127047733175366733072310434090719514623035624992223373085162148396678449944764062409373036716675798308366895971161099281132209358935002170217539015970734256041841454756005423981468715594789022302504980241795709234296386846206771155351169487763136107764001995884215613104732733835658520427515355994215223327890069328837857237539802974924738253532548665503369247168405035548401154518398061500216918957428643466490362588623146550774279431704074333619277783293298521892516411994870144079691514177490383494347205566045360998756757570572321124455425459185806418198082259785296841381191958698535503429196030845802716861845597394429222694069165643809686640984922394841019741627186097982549321501196461366970901977601351239172919747947847464312833810967893090384310234780403377763510145526575820064407859037969733272638028978024950211340528006323436018447469896790421814199272487368106275781071839077918275016760975941168363062155591550391410980864396601608673701235065305542374539090538405440791390630028120721206287686264373180689017169711975228918685603680333479917362402801846188113054436292717451759679325706170108637733099136057629610325725503197875435783053084898912084381204079286345879413105824191640524029117629428521064889531916198328363969948772433226626732543255803873163717506383255141117594026035377039169995510495856253453375157281155573158223925796491364736991293975784798503102359760631260166923359413040033439563554685171343713321075670387115631336287443587818226242316379861346156052743275251461931291606435144197547763167609101301722016003378847123455240321453236415764290300761625755065576511414582797407720772447401715186828548186470591371258157647830638318179717508225872311836960783412184867207323128486034711192779452462732770855755051035922574258975850624358527066478114257172104094005655294983980744002446011567053205616494236003413100384143127646904895841934402434010791982744164248113832139049741753907051556725332025910201815727255176375168547620192126885392752395800360250474806010211606420817750127101028289895743017490874665398854549453112385098653292495120269641842580776742853441537442058920866520361275738703095076062080953554283236822303312702248200371292186454816836020975883029217435873257448651263987854723176109623795352498966539331416238944199299321295254422599516559853895380569047171427581748744434437007830770147510705074351424512855963171173129679116371474443326315493485859868580439618358788439326557613939481308840931574603553774648043893248316324089314058932319033736450374081277763165269925983030418829070177254648398661904492866004863975950458700329888936993519740479466554556829898096004473320614432639542475234576405902393977027413323819106947121748262782383463782253902514621527720547028786251982927824653199951838100704801463133297279138953247966545095580005929490261406417713666168719340304408579537902036511054853751831260846851713397959201752097148257810106681903956261800710767769072866947231749446481585874068740785808977992398202618840633334020343810455832802567716294567936711308535365021674944702693586458462755447394831336352404705593140501889554861153269093260462846205125288193087026104037943283266980283039393562994208204352213806588791695370722399887614317458289428492930460431008430774632105587086432641577102177520391593404751259085543387568725952573211385612690840136882913522049229962568611459588418290651927108575275159951263562677394466873772502123623837808036148043322156681657916544533312944834622476881610622837013696521509144083671135672729411676191539264736628817294530393711941711730500275925003633739700392647519841892733029670649836478847318305106635270850513738374797504031754033038059199393205144357060232476581006205363474011757907365685229422962992107317068232575054359803761673541999492765152513389642249334177892223659297040071286113742907308594762477613265065473783661720157759698778620132775340123301098410444096298853790505899891207741461874823149713190449630683146714818523349862416099447856479127239576842864592074650697846721345882161909649023607157049291478202248562856928835851215453456739374285983226553418070813844738844502101159221140308648678666304176683531826854883992782318278376624571393710412867559640222142813513881996652265568782619565145072411572043246836000173025886725792976922819391691532029601652689661900012118618941102934246571387602500629632287896762576870534214894610367089024761195118752530574324723715698204594635894782753590202036689031425905811903555750711340911473213246895213393383705677026556233180977146603596939416439642926656808060366958620776183631456345645919230233784395355258071399284243788732229632149462083086025769129410590842300162485794734129694524588321053873775470152265657011120900792972902581474805195958118774918984949477898113445844466018746865800393889915862259293416446331926161256835182840616179236250442953090629243116837181256931392364118274033579166889575370610382166715115825011491910892367555452139123937782056569942229266063024335799799666839592464441693640663553306731322656084772256175389797471486890762377469038423947548016750319213235455700081014601375176842911580425232393141355550525802968765075627404335503390361656851755386864437783943833548052932342978753757880329300459355667230380513670008865399269765766067619891403503585523725340271516406972836734431780566247034502889490030078313701504200243391578612919466596248860235726713301631201781442530149493871056711129363880557590392917414706264872038816256702975969235838269375901924927765596540467951359644872010316063810084854143666434758566482146250052500404121734874360590520948893498672296287146470120633369908329519593424699689731397198063925805110534093853629581984240951294834891369170793185635237160909942347532558154173159642860925203575320511250715433912950251279415506494141143745485789232820992387874842133690146526366386564363355971910364311181216660184484237979832236490388305126260752799304193865943916824217176140514167212353997940838420697512066273482136622258739671206680895616303500904966453635549518604111356126846762328434193154166887725315952413416652057735968796049224595892676333490406701250056773287013990926096954612657449218155721541209039897626860452475425684162120612103059608151319015866612007987503645440338208004592175035552793924832411300454408186674507674170739532626144283379008243395556853155990888718043644066407560476230696371335961697492111737466702414738369599074757686410336957688391713328028222560630632557356020024991564652062759801051517606579653806550804542630777915105007870621705657658834921530895150861616926599443762472188918122903024031858351977163658969814514722287164167177428463279034680303216837382549530727341996345239499313739095185237901872719429640615188066427819309021840071053484095140681483859315096882461828225921355375042903356606201415496394029843724562713350372473988441124636380754358016511843904123220788195813053882185476157304803419869018590235212202177746345945448951195112125434053045388977353603279123859022453951357700903251355125149213736765229692010415539228126105230444280636039220546726331043634939600244886556061652168489545296599507684519386092708582815631141010491133909023876561228752504495153546669616458918482515238882432158087133036882190196931169431333238398882377797720046847681970871898646575899273683072034242902508461479917895882680463233700711698118777896993955372681472188023453959676498966694291534604653034644214261450663708848821384827904519872087451214226176631147928711352654312285495617776900001790239997577041261183208417398095125891449892545479622780193205853436035077301029843130531132450471255969662561689994854791309762530136725404489234060841120378181307401247067612072815417668579577018687153649614711945212763547328036097976546147457372512058782145375518034032715019505367975938819442063061103565041261184290073762515173955658513107543566107620476698920765118205822622949405573175508284134363589616266706286628403102579093631648149856503938400276205917542108000999222400939830951334585901216730887716906001325330977446142964775853500563868147519296450620693400839375571506947821993381166897125319035392282448896216563926678313992662316352344057883694071928792600640794971106559672959482037462848123679836926343576743655864984997775992307372795667486368353267369778516231114580648024600000058834385014295724877782576696833411226650045820400158860986935597047409430084346196583889995347904298867489655663808062672944347832106046195460274780340923631562933799737178442714708642102415960963080866263857301742227974752313730135704998605839945121964352781722274239363982432624534547697005794094495437040074921339032565495002826100758694022870657174203654479451881428842048576403704294697973620115944320529718076299957981069255347543337956909935271674023138722722272358420718775184469718890504052658616636847092001420955804443989660731343337964943885790148343046915020574893138684871103680670201554930135742219266471012708698864504072200230172363130144089333623615489201846770016897572361491887719350199262559331210727067045313404358282885584590975361306477519322664924309975688295020205967439011492252552065710196263433296091352212680211192700374481448307008430647265336786074642583711507044952235871935025734786009643471062954967414519848644598437571919632321973483248655548098432039195108145426769552258924962454687909383750603433870201294944333349129266469387288543548334721928241936396084484784426087808494049320589433386854390567849153929731631105168414392458675011935197797560282623551472559410863257835058693356310959526803016987756128567576848686499767012191436715607092686335572271816005003693586933200373808109703805481769747990131781294544196463155469181983319459167644548652272411732905873657784369900786623841014324170706104469416074266617986579577111206614583336768680549252195551026943144070474982315695646497800973958567003847635182561954044708981806145462623072353932882972035386292249720154993558620086690754399695895737811298166394660579067176234196119144750550991259137605497937185183543521613064336590783767192628418028580999681129838289902307652778923166292445973253046862264147058352279462022708965526548328187207863219184942715123338832158057804273612403106291684599063938201308827904715815926035089990335485008391109219387844080216595660247928921236257780304395945035214836661387701280418770488083958943355268825896251864180115973716713390367482940481401365711365995888245690625623630255139064000782016540402379788347557178255676149977635102436469316156132276291403220633464533203795188041613928713160869005242719174580906562901740127177152807512685675985120194312249330430147661414253791131470245952902078857830658094738961277605351113489842157598819782879231204142381557146070926449582182014624605670880851939125501180360479456290860275393579247250379136656601124091112147104710348802248926069097380251867865874705298699720772805809614769627747832860636425922047044394856703022657157806791834932092501383491032674721306602590408614834975226778861383856873436299756830396547170116735056663277584771453785719690198370802796847902932086724818627555652006711959669472032581355555447634762020811251961275039603770629888342705724232852690393375316026855456480359114686671528415896778175934783017838798646903307784587769437306670935921351129863909073562894152363385149445648909686174138955284204020588543365658423260514464712773392879999490076083555894126879921732631097568658894412770559605897963503981284316423980607859702678217591573422556458180267173763007981439122178653988039573989430753688635587638499719777717349415042880638968736553278027187744630915172771864293765254976100670231464859789554279780163022073763827013102727935070180673872532270198315070901290575495216040222400102739386713219860242107119875804428262311528338178218978098561402668418812496565540066484797429795395161697765273618790999096213645537170499327770605012506284311911505559634109668556865706052560023842879841074929761233634064528362020009708003712685723858532360492553098409260934452614098599696420425289205701400551985708259309996100917502011127353139430037525612565219544154073108544976831812206449576077010931766743866119785518181374386280132340063553284726443991763911562885283603285182596399808607617654746752607072360879981742684417385482701570523946173361504315892046422807898252909424784339606636760242717368373769558588406013302132350394999907989498076933798328222534189239193848733333535764668166911514334307617751462986892038321497532966549995097993251176676354080542421321915602951663314950609995002088544897908359450266446404178875257687795991581764521540195851227198658135342000781438382722938389540425872691862029928055071764710418502961399809550375308148126523338976824514487549447354157691490454271403565514929219089258377258168967854257482094048109046151410021971816600305843986887964416880922337567540069581191348131470143048251877299163150880927444435217616054349343917336669462660134562213714403736987751594625047249369293042679673248850793313277931224868320107049892939752115498231724146604250249189774872413797698574675217263842662203226837994857300977598475903082494214400908449224318621182499442302292645393565310968805982164039774564848993720125824632533729083172846013857358845076251893800152578601613926294596980116824360143790216338852937599968576837700148840867854946153423731087753970694056150809811552548636148579342376244889527203223984259845690369580362321376522453007344725172542864796890142692679369277620909965756337472886961298239391086414525248635296565257309011894340595923290467456685294704479623183599533760150698221651777765153976376989254141052793159028199417415798695776108511265553468622913813625138382877257868380466239603904652901743207309213364824765808277486783377945212526205769663083138705956369736021290136056850076609720807314802608227973798254485670976229227244108890546583335840429459209146552760509937672824158283279705253226793927237742413515185489661248520343350667585371852169978052850812296126033301254052568655650902810789580242618836185492734746968797884565224549766200580549710298181727875846448708519894080556077227007694695330579266705256305701490561693768440943332000774471155023354775415733482256326118847485275906854501812059918826966306892348682041064494774622910763499885718387139498264818440670560224012288751281408378041856921429028950254332136601213792099589888625038474213914587186861888355295192372025029541944183727882816647153147513824315138216908284990683468477979593970468036166956631082006232367901316472691182764699433885874316553433372415026734507199798980541365876576525930173606008433645156906076438478548962689811240186860023529577044300420361285526136689819848073131806186447851597217389126732951803187727378164305960092402468551643841288661296230673004517333603165541108604704878402406907366232315499785978525671610440684983406630739376239351350996061701633894033805633038024781783207229707165915386545197454612499532584499357518815468908632484206382301226947925267004602185281846346272621302093426813539385401346276748476849275216366333479376368345004961972969732515824700885481386770040753130482703213203364135907798074425624128197639892629545911649226981030616784925937219042312869929392851238562191592883219270716293007052709734794740643482219595069078121850109034128787616835386918642395122282647588281274582878202998392052845677911394207700956485639395636263397851218575494875311436155132558239808661000067043935083656804361772671131451984031659111439633324814078371498251408869298390031534661000697173742039964995633203359737045635877486409345712320839801396183823559986649184755921696456778710128674145544498999053749151012130588798870895669722474950142871333125464006071068585203821371569317154957093263417629174113287809154583664555638637135722606503888856003247864123452719673816582854238137114299210053292974550277465127623617367234076680704563694065807456221222150259039887378713119120347599663225167222454576154719119987080903865471702623146541011312620607700133570004877472734890151324366285624944337784510964386535701227580454596881757436581584945065806049324492936484650761233384322060729898125826743397402939851265203752559994604429270913790122779787454780776480782751841403941131889688679983214359637290135763430135668622878431281031305284643093552339954570703370578895242017964163652968206895158002573178038810479240224120929814747086092207088082379426523199029597360873237666722119046449979002120028232835588882119550063878337734988585981608756419715058549241298482767479206614354828146604967357531649441972603357289206842733899489931897457117073011783993408921886748523661858747855783406393906258334444007084127493349917848702175461688478802534753221317066210178208627558218915617576984935920723657200887532239095018919186225054525749748522394039799988446909140069963641244796528055826076551217873009669809538190847458281335762545906335726444823838763983862314156446134955008462249787438503772744471968900120483717575983753006097639186058557410775622355768965025694657693787857954776510271929863725573298249593083702706499694096691084413724942420749648407884357663338452197154139136889643811380476697410688770280487771085673719677434474561227134899634020363690251769617105136070304598732996389576339763478991246008936040164576773438819762072119850400591676807815711826049299385192126674225371544634670742140397211451621591583170268601903109842689373310064903744026862670650463289287638218127070524732457118654362962255736403571217182130441042866399126395422455609464152111957386924557333364316093792014956380592831562260871477190752105980898161729349839018778254190171003796428940024507782009959073794738965714722222320638506631684540619056828712467673348487220702152401393370370067050344563174844671429447848598275713282195198468845410863493465178095994834032345350297450826878259273897141965787025117155029460510391331272975235002949647812898360833142299900580974124792322602228273882973172901471458108628697921592568840130108206496266051051950510727549958523771624434007037132989572219891475672134260822610854496368573647503366214351279841550150776214277836657058708767361398340228087374039336038310074678573155191071438684179145617600135685732471617324474974628033062100538805144437547148632156691941186703329835278155516374889456610942580701030912716050555144250701223154130938942490725828126374188016828808009153476909889735052811953169107533472712101694693605542982450735848835731253269359382329886589037406774728499021630015337990286859733165774272758360168919789552470365309542680451240045672217379145107066905298863987892318308225183034512684355536411837855421582267003319627105084948633069159210997091333800336289471934384897685524599003635963901139967883803865601717388374574453387494292682594150638510478887791943096984469344391874909013385192195050458768471260917745808222060727069656363098321144984308390520304515679478726765684463949450789492605800787005343912782178088048505565662398493145023748902756367009855509770319432146721175495517572763640298948821508347870457699443530071072570908049329191405309429550859402542245399329953274293023478550771492435283403824224175467486921637822733083759616932049354455447963615614347276380375385997564633627871958528118090070392242660780748878414799281132791438677887111899464630927851047598957682095391052467580494578604758642324439040008265304271990639764643266485230163821073160510713745538016060590646293764385133311258214571718619303275198626184492689201031102184721728800949575827684951205167337842786476110433656952173745310274628353788194183395742218957050285989517177526704807093819568052460094559438414233463234105798045077065766701716341782658929616157262288893839396379573644919322706154854545967812840715815495269290251567618435770436568229457701885200698622465643260227231282004256852893926568837281023437691615377501149164490702871476267173380092895615713609704448078431163591122135699465275438027997392193129897445061687285863418018238398981119069091389743046121218675824889666401886155503975668332782125556965729702909456724522320323332951151703033372206368306237712723518927510866031763284087157375723485742071042594236737733572315582685415568944018871241045356660756210198119670478602633383323205101189048537597230726726389775500892680027647914680168266121418150686420049816390104751156784707298071621129307025649519582339686534216191846609220004865891129042748332132202953653184366892344021475297053368551070313240438547397187545340582872535455696275225269618079127798819894784329493252663981174597225557217518509515127225013699888257078813438746746522897150783845879296846003711368190706511748435660462201200209905964992886506192681489990397962716228990965043335564699561143128886064206953729283618250162511369264154487084427095798564444826288126640559818158937570896810826792970669881452214340697640977831981659880770814231966949815230382848400458340351713826765263223968029786455570672920063408128757819848170244237253577552270110470357889122524089217903056283753845732914405227170098299540596851705017220125608679360114023473173984968861346851985178024716480295389329425962219551687702837595643706685995784474083427010512500372992228707791572751491650838686441617259078236273795472425365584886673340578699401333050867115534395275582201418446398440926097739557165435328888498099162404512793186399683058827002145364786079059527403471655630288581149299278145326727665537886460993615117809544087752716576451104906900693515613727533003301523083329879599618036071678119550461469864974236576613588603253945672840632103463820215772261147283383953368080626653877024182623684195412768328444296082765992213055945546131028436781022569370884948944916321765408365840977897502792643964130106497536836738676938331880816491690314008624327112056033727554557350197583330314095918099354506397301619576550682123597306783712238602307555390757689133282120951636279882463610451616662796942556564606595452776670018025592573144302643175070542280837740263476902045241793936100523705751276277027831057299143885785621311461749612527503911662635419541821699901295689803377606534704966556128671991888050465359964421933361543393696270932150868133983437682283063926826970720132961930736206173881839027116743057663017937949679720453970946253710276807560518780427988878467206514804192585585627517893547906838149302701664629565543439799542562910368342537082273776132685867148878820110314839210856379229372812165834027946694649222851223316280965916938608534945490208303012197212993515283659712643464887903981298274651066898867154316445827021685960917916155550429040994657730412960019047732333377500916656457280092435442568893252645834462930828569815907070822841240619501926525305952378714770515905936707590430480417254976376989618017659786007064069667349061928506950045708081675736157366403337967213971419960934677637403161745034767444203150222240929988342179794452366652824349736271286076184468185050054526190640700359108884286680660919602435862661364038105530291079695555789638585229379391444207519893775499570809025788128135652570765115266985052572206810075643367966932639073858737543282199009264266756294639314928543604607945628489365760110836645963785225821186200083933424121276295277429791275984879788320064402021267901769746022322293608045551083063250085280203214972746915669052368876953456458245480423716206575443450544869268879919302483717765699575148938367581073061198165798285189061041534982159240781420993062035988752781381150033608768958783154679323114423896695007830582187836036616489808869260215084297400950302995083366512392309336766845428687788621827551062185520251260635731910143192516222796413186273875217035772098587627209742482761012597498222339412006611326711740978674955419280430928446657281553745107839924598354699033724411197713796476324588152401014101216052586534309326348587558789878553701539535329993540979356404471226549840172535421043229495020409297307110711235767363759910625435857289249006417438458227479389443872658888339114870872087445349399490143398186276288198302573263645595381918848838788222198294315526360073072326463742176510535421443153144576946117177483009907634882979599172722343214805517977769934368599996011028865581354057545366052545601141092172786112404981838065063016825516503359580823159935267455199805336140247828941612785702053090892730646305112683272648442730844535729524410137383216379422796018118803655894916978755574565931364130511056049524624761977716405814107907563308775455027874902722256142592375056055033066831621536229453131549046095921886490813427736043924768729295849493655673659586643604828268802478271479461824326277265622973303169959618307417652484193956825133442627024954155761266087006239535815695916753829038350569363109493139802508968027335828119312065404982699775405178875629453278762751741849683527813378861703570515831845259913277902326017967656066041070395768695300303716249281443884328441134907310396317714938181638001325267358217745954750314654845849934109939844318497567812726326171830699854553158780199491916399048927350048815319686136902282207704160856294790620660116397130061059154783243555448749237064295999809714877072892282810787815117070640889368197320600021358472742512434135633130160688069484620455542522071789009604061314111390963463591315500983741906355496714989447234423910450689555873458552569366422489423237544464542826642306134255074256777055690979232766917747622146810972073891551125968319595571240487416256799110586377305384930845684281182859890485088549036946492907040954676396741729593986549389193598971719780236647739367098053853874692248958659566355715211660998437740324318186879609967236683557381499768239483820847493808942824197447873228483756031145834600937529711481045050057957313176218670583897434278720652454810388507518120201215365039988083957006810029211396764991955810682263534098643743937356472166248857181848198622370923495661855107370580890058833618335491572202721857149858025533242188696241253430823467411841328965916450505970756894795732107279725782820625754731906972098561746359632129312926433773737473892042851537228325004295230367265145387590914443567218269085113047753002692968250231235830041053060152666568981244957760782106204205700969408829918960534919367644327096951265600580598266608282483352333032676510611287933256083893845952864908523231197949261320596531769159235707874526648092620821603727152953749616783330667846013308488198995172913741929659235043112718684868751883405577299648297297943689499852055098582749803967321707341873710864593859205640336872172187990982780176836420037782932885368930254551384556764946497919526407264584145072599731167637124631251840139482394827002609935359306240951164593446271071381048496502676446832932499649716682036326622098862248371079550688986640682533717691776071819988768261106901946061890016228447476859779715562850266767461821222810171750265446275819784879831101298355294168470691114795358033136911479910866295294373228621770748937815337713658699031741968627181572361841157028326368050617271418431518167570194491308178544767436320136206375518862865784212190565750488838130555489534252997111723419297806047350998141496926242087103757975455465860041790451211318708200080250866074285317508205115442782407806585803755473169414147694745663578688037102041901165053119014491968061305880924586762996033663913268510658219752976121601028619979871122656288705693258923722714357215920268360731530405927168358331536012564733355065256719655679150371464559742125483446560631061073563297921031343419880278861504641166521938001781616141299081932232282924890283026934458898509172925582008163253529942659768436112451412839090344384666110046007055758300057450959635804963012402924105183284209990925235184647374755789077407642608469528085509967926298217850628912472247555139154111508107785787343518828169562849738044613455878141832731434228458650018859368891921772454807148179672403661987363709610310937370451398686438411526271568044966769110471217110025119413673650520122387906837756526113647246124698692509675801034654244407236070020145668122844006623678083366811327650312963007881966239993160438926251711234095727265555747178347419086675271756453501474862671959112270740247865558971609417502234688178887484950620414721706431836662233125450073720770205379727881204440711630905596937754112367817622395947436285196781846208612066084728211092876465648899946139456582103682516367125216877437366026534623961500091749071415224093953338751260615243780690527278682565273757933752203953008297554071268078444444286442737511757803550685931269781707571633538035548224562526381210942175082158301348326526847688225699227284420538403821771338870594274702603911368624869327683801271366791119076449443072121670626478523966273994196578832048608791467554522544460735345956966886808017089859610329340354732253473706072842654394663945983576739300739067932768939440277164964899527114841632484212177150474422546640257035394840906788962670744225240495736302506132741867112850921914634503482719881991274354631203482931514283702612859344694430440375839795148512773157678671654199990144571210977558726706226227893303273990771855923072955082104554960635931789701267583929805328698871208921112283415764257362151554653813537679253929649551958308168439692713005561536154283489661791339664004665575996861209974554599460600642338591040703224395949211059502385634715614620581831983342255825203198937627756296113140573268245556991086607905089688657703533053327295197905269614208707654441428980950401470867765431765367867466380729075617387717578896355250117168710898515817817255814205292123871041521755974716985089198438707271547002358569935783552026852942205989892159362612415947635797525814396132737508932567999551680617924585853121568805635704114857239261712223855134888669936345928134891866561513714963583408103016278616847935080370071680923888256079155941125382792778501533064637042680220252236095681269178409862794409983539854321897399024863104069965288690029547521901780236635815428371715956814431183907231653971941670787842686491756868681055607309914290096687945938264234105993595039871608330932011530979798449581093304933948437419087287081877586617705996249315876985613372659440490564241516608116001480782597297341468907342367941057720763206843126833512521260021368597677054102124137025797281457094382015483294561322859137353071653491225320278648447461548646279238725735747102613009716427011187222491498365352295435166320233435463722834712107859432399477191731924382075486806222454027646725759505989743600375619145482000156463683165955765347799644570396997305522134462391259004755216018262820010262564075675224706779681251323188629567708567588508927038145180349390620560529008027399913534761525677961695903945314187721157942051872430977941602317861374949329641131694056175734519891289938611531006685871297043666809277915482072154116134373356929457655085675215714103705802323883244508179901497044276874407290342386707668793510040485139807535687376042242889317858850119722674642025997387879317704651719632963898581553336144714371269115358621951488504080203891027566172901307423116853362500358790290319322463852939906596251190826567266725839837242883148967509060883202682709604630395369669672185251107073366754196527017708467676634515660329255690070334470461577039120567519718839698310242674005441352490718007909291390863519755298940179419862593433340861424090252679591722245427160147896197949977882120712221060352433440976304863392081357412652502628316093555374242048707622359431387165536376021346155517899935763091467340105074818888244057102120904079324359031025220025275236144597721290363213189048975571461097627009032591044403843216024292227888571958928880578583046650729838318327025619528446887453110518809435259679836803770386374117571594524107870457232582450158270261287518445984939364718382553214773036269976631829229214752251584934929232203075447868652761318881109191697566568064762280949447185696264917450852033807288234199638749360163609061526053424072443682291480456990351497532072582806153671627224502766818551542048587535378639741296485391159033644920063460163510166750412421914877618627225207160309745428969458901018934716146677902873489510149385933625770685501729515806202153003546566874924556751128339156621903832493833687000158126161364534435743711697757120287282223169357791596597120097650404350755209950810288009636644061159798489371842420455293895239085909416200817703864283277595542873638573796352070305051429027765631741697003413234548146395948602298441876392669055210757110175189101545587891567481087292236792433369647908962062695043522942513592299258355881766047352630520345267210973118517948516414120030115049875831559585709432762699923356436907485957950296622313092612602215642097335294344435823949133131197039516280895237930578481791356813782090519106821034970918746216983707425882439826673616719899787620753572125669603206853190738248268443037444718905021714248141717609227225083202046935906864905967694019603407059855542186611425793474746906687534703595860991033187022095161259165534804468855484170233336760891272600257052384508165589729599005163505891713487364374009357731642828032658088208707537808943209095425127450055801067183275644784719519419877030980405782799689863621993671464676516046408112052133833751796542563238484754231809129201719965848185546382848796029740904290892772643945684978426916757201932740341239505769086243198944707843632756057415051292527497910929925755068912244665991629645879875834540044936368982232160877459151354598347553374007318542807682291328045394907938341643915269214005288664446995942566881356949345914084803072505248006618863587571333397237395755545636464428079379395435202473703801266679706386284065935738917379717086309118017976233813057251200198955085624215816971779912005853259311753955699601172625229581200440888352106678937643130546571456908662191309434495459034085925834523371474468765440177466969158320240749749707458983745152617559511613480201898978954280783207537444726664502443009194977304033993597966294783463130604078211760073578529448043100516783082572116808141135097054580868560244868779147707127218132571389975159605893003001469308061926451488113800670652665856608192962803984363727355556106117152040640570302372646844893230902435546925239478400133872596229534552128287710809095259866714614522574604787182538447753319363900271096825408197038313724218993610094327537933254142811437767085560892649286755930873025139249125155446068635124888066725804198375317196552054546005335064675535376150221809240465816362240432380669892585458841781657221313111788630147685244171554368239722777286340126136460502540762335307382598967617908246177091317410479343107478866276490136495481112349184378433206896008445171860836895213090520746724655704485181252714276110368095769169759568041820330247193481834868390110055547565272373832899780224493839096777592547353220203437423552966241209526010583893467204142846593021186130593403195081824270447832640867211569103885840372993937472757881497101626454726218997690561199605300240334035945638959603965563827134413017026096965643955488889387624414166952897082562114001938704075860679415589517774803691890299704184078613054057064518257356375163590325378268387273393585820603849666181158266661320068155229547270239409815561501381471529292600935666453957105934731093676682996440635120107238503572407455226746900886226298939362536322804686448556934522823074658056453091149732884317147900015414085815652469482786458728447017465910787363247281645223412244460945171583445966261778723895375444748804158440324793782614212464334185096835364108466997628548890936309460849453668501583016680820375065726067203120731476694159023438983516102366692692441981248657433632901584149960904333634528450790800338614514823242542363328799683893841085597994750308101270920157059039188729215017208715385171376762205250416488715238672697143678954302930177906201091497949223732903835330562021891816001619384447684654367522611426811372437233538056020635993588596261850664258193798381261928309311000086038760804586979471163272787037960931599704505474995920678889620493159726800780437515045253725525440317174230392334369563706355762830719609124749403598225361710105953725969284070177547788875265616847787937138834552175554711006239797974194312457791308515060145689011024922983325291138743269648568074424505823973813138987981392322408271399727640711507571293338494481213016679553252266581238861982762219298280067778486608664765665107750661487234547372799811974878691325471502682969712374222883736086898649993541885997801537103634283789379533350520799786895638572931582107738383423531849930266086276027504215930652619362653406209809347520113890046079039325164388751189653303706478187400099234027202878905944363108621918315177119573353690468938506095316947602567792425434954203514123963813948072448557981163031548975388044185069429090495123316293889706994085300711954522068632855275583615354983675537418866276833181766192872916567502361892807909043709976846642433723286963971517706413253952879388359186998802555482873858990194427674211526160849802849834882691120692083207240374858626508617844325162980287417089467120560178986463416680504868316538566031508583253696414240665617531323810334526278941684580197786769320985880062406553507168749715105625287643426973842102116216404766209126888439229881741266499810642601104280835861364686181935938368340577295437101043885981862744266509958674549091875241366571302781904457046552815010025313390558706333839762952690849998562297464391935226469020082793847765245858952298193516220978473449079456617043409991217549159506694402878698542999214185705265661375101705171038853386063154496233557951244184715080247207961013699785785619627981684104553961451831798760319414342814464500343881780114810318330544755026403387827498574438547111576906889260011779782618571616919993373185743212196123247844331905199220714610437023898845137630612819631424422574036144623856552445170005122039712593591104349341587719738432597280413737461395614386817663168359973409386079871363898290170916380376800792200714992655094340075296772830426640093604738848625271692351788556796029818352181485852037125424868342974593634135931345702313316330231848309850181069001168464580330338185913661565555419873614741338471137267536239215856630511982594271558807801554753863133859818818639273736031675111795243356170625256223170114528755311286845612902724851083394079155173320900320508323694496242652857876900052512832908485201182701139861606385066376820497428518551248638047225641204747056039047913148530284529267413177902413987759879430809902347307196666844335436822691105754990700393074303052677822143655735721986078357260269822611677739074456945357544759978199468179883547853625964145545963467200085657973625129441098294930826943764292712780784782931849921834353628989215218804994070769491777161429676980547425740855718951608864560612509829379382573208700088922642871898997841009674582572947319723628100693311998651090628381811679927195001867545615703570377922511016580078270458440740031311403508015448862611269198581754291269118098726600232338670931554346330713477730373559447547117549158852202079272092689183208966918607591595056178429846303400098995269216123224202333959687001739415958913003937895272038935055865502086909362106761723559180471130024407555891460070655032499268895758492444683651451207672883620636794501303173040545347590496998653664504462665520800696441992463056541224069132637069295489129268590582298401743849413853846272219201483261394163121106918050306315450135617154934092159518397675843481851532028463030707145962080162793209571408540891277788130376930668763367367459236468047552485391295934311698304277530016322473670023295203300698335200783885565330235508663729981277206797495499006506663362410046757424763902265091591549897828605565716082173902501883284429484158755579162109672421519649157926726748902675215212304131725245995364664404659764722896847074948994917128954378083423989059883479045920658032801152824888340638808476243672504317127494666930203686533566835744213302000268444705619404040641375979399492230202741981960800797354902947282380225400475033736331130308077377137451562937636219394876341236564448283473675540658622843888296690659535530051130746365299212693416126472001801157128048935082578656226928128607011721582529337906822997870872663975649591868439704136028932459586728129959576027294353652506622871192172799259170276101120292646896164177625113675258678421112349606169887594381844375995417407098655399099121300359881779105125008124305311558282177941668353190259041985994563533096441424825466204776482503461211840138581824481293205621475388524033435137124950501329257251595447632256332053711832931678751125598528679606474308231639205593136352731204636094623429811266607190495995796305658860841752478300340216454111672283078446749646986239034276973671409241315485352651064376102053742896174340783779066890288000535585723751532022374728126397547764460819920554394913791723933532848595562310499232696051534064033147979363935872498033236394415188458947985203647780900502378976072719496688055568547582439052652725916075003708013804684598201790813460850904782763171670657898029007644567890843340079275206133108777157176034608589973622016047794676099239929741827696369189945938975409038850585499233928141528206103900573156998571566688139662737137155492015985933588052783845882523060205821767786416043253721631483021831148247440385519396814617563236771627689647759637535526043403093024968049381777908972533917196530920132381506714917072641400762526698051326672632305005342977584971359423585968779864094328056675480868620532754076103559383612268163528696182331018465736566004911469294319625034048839137876366164343232459803675211093300179057073092548386291447240227285895959848072801553284043862776282494028311335397268094079128163417355738629923117017744783558585231615431731090574461983146054286198477083974962198782493352028917652117372605049140144642768239752266608890415392095684023724276513489523930233578511376555180585844746873304773837467721706162278967579869194278449196438897625340897378409139834395286897581114442192696716105514715466072518298126770410699364708387980418722441428951407003544420171699274040819107060763208302691035511646542032370133320949672844440956629526390942368478719779737245123499018820074843956631282783469106492368585298814248229554973035926108932087598022570344095553919519308973841274531656218396308573448103410244743814036908490972206278573227299836667248894334084024927656838203148087375189068473689352222664159985964592525938833088604658647435893676860143059600527777210719630421685287768071542266542000985358973386110769997345929097538216716028329221205737800696377380157585040643018154052666344529465929420399537200773089778942190346146817143004839360941280567411273618755968544338735979915939029756841453483716373324661447680012280416196508299586426117709518164953414440374002302535696484588626994550633481947368017553301714377876335577569304567535727070138989898939036331802083363504425800236821142955913190258979227504676246268323797654840513205932096651772992306821547612210331092684945994686020279700282425318985914752065318862125462631711971460228481130093963746453446792030788434528037261104021338085953209298579058232617203643827792943386278175168615952819097231571416094221940666201086928669000670212352058077065116108156352285023936225375243452585008531556596445923350656909884023142280833792694803525099542520945607323040177859268728809270223237825962958286598210919795151293122518579924219177110295172604203654000951227106534765500932589274853185842273245901370730153696069277686366502945918390145925092018640189664706874452740027010441911224004492138232167648785734652998213281497971817165309229521221462482415403313968473350032672856131993601401573374860648620801277985686152620220121417061067336917130068404164089422758081182672400958100790007691938532141368664555292265121285766014701630683243998698816976184351711812322735424653260577028442547499025679021038867018222972953440540460185231996799979466095002211951990301470929408246557429886467849433613482877313091395833173118000851818420611211896431017660885098593185280352582687014509640573724118596814715699846853349182003292443970492864593805781671616982863973123664417679311650539545142330292571379336803775323645489808800944902755626482072297194268109891590532189881479773781984956446142807878043864604205572061139459743854763516250793483346459603885186698528884732031647153741439228411856862154584051670591371446259221545660499866803828468002065449281110055354483272969661618850336396055661977147525666672299442746099965276141794393897664809648795163690231699735062252691453638405027096209538116514354344501319930335558183886432462756419735931583979408106281473236359351090834371217479715769426447953022456118600207804501814903885426098136340183709237377973410816519859686711269141680100015103530274051825333113855890656159809571735090291303939991044506942798227001526555830384347716643224202857067752380626208497094141528374592627426908992992038540262287139392730271772241045947177497123760901376260633327173699440970317732445461435578519900508921173377135134166679140614840560162003746191074727257519718562778563296629642418009628029044528070174718356914292309913057426179567925401572681342273697609527064170518712656794759814787766234749522490461792179478894393057433068880347621437303257821091277616064360213606533948544390317385986318531195269459810475149095444165525175615996382966406919084356506975762691674859297647183473177615174132420850982098682845642108928896173336070504937275506381372797000423814701349415666941791621443678713069463932912883584871210522609287100551474041455119031906021204675932821842880419674833095555003135655402379971885234563361578196087880505541780869954812020893171766284410198896567374984531934175874344220204156137704655260966581566693504685868863660690505068898181346950531978955842114702666773278440748301282658319225792478072658202524084659008162034639254627383377125508524184811257262497101875949754882468836427837426355533828381680749741760861127180519585033319670068506300950045799732458970744443586378863778890154318080349503596409129677285947439868966604509275533939129780251658954028538909364363635337165265464605729104126385058107437802848395128660436073428299347276335044465255121675792830493517454768441976661379428527082723182776330485014783372489450602650523102501467234628991773769850411773615834459594405820862918661797635367442812925102171963213642739253874618700661025120359384681007976517712864434636867943621474042032772282576671159270144634275236670426409887532714555813686596518845538469137684401716745795207272043257360603397625618948749609662116917360836216474809040091854617023999552271490146707310234174585894076110448919874375141702155547343221794621100769787035359370218689289893375909877983845321610984013953968293400499350375118514083000969334920984458368039600482353643676682199635181810857581015312136756590833045586582371540387954259806788454427284605056704822983643872683338296325628376855839980546181695947864642459124296764608079557147807592321729452405032139216561038119445101984714577688619683082711105041580430518532735911175930354538451489494850763786988072056280430479133613733762533268471701515452599361424246982885336210282815917745222824995830581253373374969027317801677187326817447003642631204707206047720803852602208188198576962911759261525174328833059221419792797282438690858594050188231438120500155688828806743022635068675625890288308644676646299998917494689182177098569886626604995812492538620548626413246802217139206663479518666696080650694190501120529277903950851786476718597208577017411505125600409518920955536069482951959919375790176618108404151931519613637755757558139084367932693038520923093919505127184999444682506691174707278773004123621159517077429822850866289330330986855993512486241416090129045880392355751526312539660290737722428038246999690716038078303469406399855995906394518368878634740832187881185766151670818494623309197960612724238987115090859280548867043977048028812835054301905947944862551760579827599328150192561609405161177721897980406016869871667008674260352642178384944275350155378260050730281362258104134107595615773585488512267028727355420973127053177231662304065104578836579247198058603349865399108158858088522568969578631490527565791080902707513329389018479719152053809163236090554543421763285688468879582896774788261028597993313665886648967992237870793240962392386474724469244697911677320150948331554006692245233042570142013557304529075084992498470240169326037057595446947660402620120481613384821794258798266676598351382846103148008295767902065935265025670149147283137509330089014991612090528568241651561869368914734054158476710210890014811201239830013858420622116253048137358565294661690622767958345199800143405933786870913879833932365573864429283334799050445940096550938727643729644679679502540791077199096795201355536028888007956827984133020761761618284435969839645161890341757488960838923728680718757585669440056847037000820720679566454593610218537801740250169628217986586574177779843888693520442820255413485145905013972038533914903238106754924772353755655946191840762711977017078758215369957747991694832725222911625872843071692594918586777390988562231539502897843365075925681844467309103544288155653516160159629688823075682505772991471107156949238199223701361208183980177122171944931978556186292096731755744247930125641758910432190604368086697169196188483471069972236583522220780961868072086009028902286808950035367895887077666347273628414812104886897536436281117050794306534628699745756671558367023465380482578455524804772243057136695348477189511003507387522144080080418870292825803536157250705586659607056086408572528807180846186698525816939100346286216525382992986618210972875709447703266805258360135241539768665082096139196322952672259112506002577031249621563530162285358646449762718004046918057645165151206992378928844494010387707713816153886695933574450163814151774806082975681035844298804934074165810685196008044570188523616912547310084069615096641513213832828862873027051476570221786214097013589930106783086068457742053166479103907372951972552363218513028329404529348838494567950556241653756796662832430749680157590948316458470465420894712457414709540416436678492313376520561563480420809823834699669440598297515805653426605951970493029175943344486532633075177577335287117836912893391261759896672362713911668513191794687733577893144100069269114453925848017049420102061642633319469085093710139559176378311918292705209456518126645643237053876726353842813074656748674334300237911348113729337790830809296142232902991767943882197518723221178341809233994383406943304457044386546911475536245585139219938525352135169088572448813241808023554842109719919290876377022100999180735703806237173818969313179338566286291795778461700688349915910159598656656088533927607203293083857949285469569228747647888166333896050999666851381575699416347238177113604618846877674811574049125549356166486336002506566078911076027522716001123971911263252940873481831947689183835260265333890533629125754830010576988010778459755407019338544590301869603733032267748011739316986018922775454691583457038020551900761542176223391642582222911716799983494163676841975301146313562476695477301170020843375327756792609318051090949403420100655506755463593583670999193653235437197601557349360739008302700835389013353351864438201499912990496771329425291958657012761358936265590806678971137458309436526289526262635504198028737423684626608680656494486390046154247314594344318147723919024105104990326172878181243581251251106238716406668431268652636331681370021631741211929925156668291563677598240722223733736739086976698160197158401322541611530118695808763418725124775123972185382604349648672740029601227810830334257168253646033678515361510781407268095619913658194715547376144555461782290269120534443655665494765862058517179945262769283992587574393037226832913779748911596709888380728579313856307734438295702547744187649679833423646462736027384874259696488500849096284701529870825703822309342749399802923916659151535566899309010484438397520081666532085498447514037117213637612644784399108258662334030347632687796933491810962852367047954823320627021898480068204250633122461052963349964196247970723757149825947918225016325113214159557658271875020483913403069336570338116211589544801094330077578784721485393787937402865015236576285236589280482959034819846309541318468408581457739419278870552159324587134796444652611916823253913921251366304222877505663561835224892313143648453243405774024091965508736398610926461462780389832627050514731868727816818491397574611790572417672550496190451840204349368624832977562975319145312377214566211195376074568722002099031408170863176514033918393785230540191416708590772252108636709392364670392172779272966699394226409592534230438116461032848841986118706819465300836300512603587284971416292330858732357492797273731506297736725537218559872230837039986587011718813067547805969879140561450098527890516074429343715783443223662475646618735824577391044975368540503716658000906358955859546693818986413032080201677939860638771876520809725478212850428076236899312909341855416591074295091641122869755649990488128020793431401693477042709744496520654483014981706519845336834123483252609410027280754134187614646572423452531966016415490809438411120444978239363495924619008047000824743824534821870974936027798139894943208772259186331180840870070144905557276157658878735884263897958947109677615084033000915067423914584034460559159060958528710253998599632911321221597585818285263745332093315601581268844876366637335483523497759964526452947996385227977588359226866537102536450647010690593536226761485428137954395385609716533417759610166718255825818103907372351272347980178016883166801759721710337640319288169183078257726665286415362006025408978280797526698955544567408859927271958299832893942644884013313234598672787779011066576311818107331780320418490261780248231604566665899112212087100536811996130890743537284729373627885413775739173084162411333511108852376846870423388210522188298260615396525649746228209473812630615492527111657295318231932392537256194305792699502632290719174980314321796142292211780886639415981925513404938226367434586365302141483381402804944113979241602977319791726192272411845908117470756480500246390755924020649709884774030363899956492515955928160479946645756476111314367778084984008535822286654565749871484772952222987845471271575595320787983550493245315578085318714361024185297903628544795348173551413992976819612117708152887211542406073689219458616411850350272535531127368628130610992889945819599188587407911895251555812847278240132445534190990703323845826149117413498424867815673264243227736845110873343986309655309350025752982293021977199660515794707148236958921782716294945330507104972028356871689495820499998389352750080677909265740408699771441277140259600285364946152932729685950680727849204127364486224649750284455886814408960653640224803860681455672718631064708369037612389244304086990801334833404187015531428712410411408806037044280578152347953936583499503530702749818545311891553820289009753400840256432364547127684372584157212769161122579116862449961800985471511190586675129974245868085847740305278133624822038786449695310023665770120599935013440069411344001065137995100990775409583771675292541925519579072836832508402610402320441861024593296476547499216335414087629880329073253740660855147181994753256743826463751942785865602162335814675434624831304760604511618457680381623750135163226289690957400179342367525470845374541872045207461882080349291283973953727421014602071591370884956494880447754204625618370911948583577948805362763488816324526649314880966029044655588386023513451347337740808321102692437612322219756833770064436500356822825396218987579116932306455707155931547555510042548577108248575128327212304953304813919331627142813894812680873693170375326031415296619515351826855973419690484102343311961558323350622117441360933050953351695287658285437289688971430349519736831503009569969531359103536194318990958867430773515724663229912137981684129509414793367703065261122858201719319297989040144008647345991416643286708911813282085869886597654948027641587816067074648996226824042284984675346614277406928639648756636098697449695047422537065286924344640433598525467974277090782353780177985095159723549428648727715110197499721847348173805607475357081923780274427609051636236215702274714195996579803429805994494750096739972208201162562236778998320882106817594209660074250301760002333619252034331860663705444563983175242041600609860911506579236574744721485197757732446295879433415867560600092679891887816405335464070453550599463832989649809107727777645516876961183450820118770239536610240724516991476847557958911010063684387835058324706265226130791847080125818916855194951661452985874330637870994372802667177490570941491571620781847602276892105551246559496008748981583661813356328452070135369762989129669335587833159287175777318558423546527186084894934233514402456039919135439906954870941540283246367147114713516840557422445014893493551636445130044891683351386538553380537380409057635272011595381248497062182954554376123269671481928634895427266605576014477680327883042848527474322698419573195020710373788418376413347213889829293226432806734735889178262287269559836431743155647648616669585435428088666694411980849981710242326518299898653869484069000223262911479678135931846093437119807132958723108019553927837154948513993926303613669202816114015040493795255073670347702253801390915530500623932030419930676576623654636558506712930999969136484146981271837793146373105022242474547835801468834298542846468785314187094174034443010180551593738812591855346688940228724064684155253008507797024391713212453823884066727837014312800456815867751146695069130348024433788348012779483921729892950009052752298910117830411557855699911283804887012119293146493653697009696434782490378227988962034471774031436732874090450342548129349222549908483332930705058050713138965446547617278649675286926970885213093596055668145263919358013940795945143336345733885636981489471090655458099564098815383779157411972535648146457327893281547662441314186357759543823420888071038824380035037448123283582293512254467820798961825297081683731371103812353118772023246313177318715178854154140382680197104434000449144257327453384409414258946059204821363666089647735506151707102482946998884999548874740404583572239576530086281921890836149700796932186987730707107609403803481671346874790614062391912346546334106935088745263824679153112042060505379356246493922332969262190684226531294805304508278248469703724388856773217607701632217351187838491889476982968055290106285574216863244102961247525849436071918023361561868857133467948080391413411240964210651070269304033129639164393172645077254964883854728485270462019883009560455864037505738156355825414990527639574507326402954112091229560741496699067956337330294150983980189279832002079179136003053242040529604745364716795196502903228629408226703828569562943626240838155966313289749474089196394007175647523590641165272468429664287698319046106595763021916303420029848128829486242599209565729838673819116325325709907016161329379738218884102388543343549257477647537833301668391608992417439110748953753952167794191055656424253136296421965271249891439144224201014865600947101835644740699018081230019506496023435674037564981042912621781850216990745537704914833378896519296342800086216655309960667467942765591236887718286113113706490909873266229900786223705519853599586521452469945106721692516328237321866424427893132799488771830297139456695255387567191470931075606184464809670472702266360517903291223766221491904210117157818319170475412207001406486790551502746185605283898894973905906562292868458788808328244788637571690720282073522588129483709218827670406782002337834692548236954751510774638249761015293956205369690295815926322661227444457218641303498417496629092388025914760821058443286620052318407688704294998149679067484068056680121032368776415067360108541457419923118597657363451026838393114916195394789082105487707319182608507464768550453504299467556070155979306336219569178716396679149035783586056824564025862246999603522279412238697603180081665556523390515053909826740598988882385091720772231005039747797083705044054647921426862313948387030644071124329384109120013511177936070275884715117566083655885621375199971746776075471241486906267656499352310494086486676854158306640236032690655031287090867030230034768380797757134902008077275171847505878178806246916110525833427543994301322991748024731413747041454127192674313258844018124852551594166178431960864338410097310225534010896557649448320802040463293906172703337832136116429228883741340610137316643387535099548741014330302079643352849164613994141221082505164554116237901737072842633150734608735081089228364196492794102088566523757443601717266487816933250817749356773675517315033661308478270792456894404961562582562202842327102407723411732023642956738629019920206964172770702383667241291792287591826596877459460045968657598802436938422075356332250134915688234659367665684300846337555015180056320808434385554055136879634640825615261395894245053781577111625677240039376163685846559320134551305883494853001091052727477875227383506618073768462679808939836975769166607900936232080582282482091281774822409492307685056186014522935627818105701492708487694676413493566320381018060679743969154907614373638179057461008098843766601376766107953296489735135406808436271698836669309913185393612171710189575815468123318614965528122334834509649731972949370436145543949428369908839368485942260757937678035849551156388675209513702932604825805852010896045861660200614855944526448215113657724125177897789679900263348915823706174330511381645349867706736127073171896383106939259509033488276781934286065668857244860691588815431406044600273954062641784588003932934234326928833780910356622231505478702826464495499275355109338663457326035057432045265532455248223922507581580661912323132098677486069757323098765456881369670482919808736962820717961904059079004581567780684112142980671248627007006910686642492762697251147265953480598605105760490852752397830418865000749110971122046012192075108758725561032888227857744703787605227216991138849030673060024442854582579166738344326183838896857345521871504701854140204792219061910243629369253904390929274721206917528526297143869056322718492521107269052047837704658555851984734072414681745269365670313950294790557018895952769085496604033114154356676873957600707799098044904209451541269809998204362583470043035139099472273375892168479860748444528315145081436713707451440719103731580474685008014310713841673206719666965139003681743237273961087488932036876931883597566386852364515059290554444723400511563194955827518960734350335115682849110730157290249185489968413889955268011922697587023410893742911571605035153654613819463421318846936478814098513619451037089639066771451329478086950030468604398788151349036438790041126447007619798276627255150214063742544972983242595095722592877549837263658517926926082622145087821453515760864878818593473719930050785642442620211821009490373044153643423753729610953143862667784808533426373584932264520853893507310012470534161409891886733487769431996151979974946563940607752025390011510823054230368644304348713820431846398794466200825142221275374049141071944299795376237648571891088778070407764141361072104371529374731215250168002998281629418367193765556658828599268906901744092435172221169802012558187579869560092014338685249101348245613939300712103244760544999451585312108481113538719700401066866568560362570247270329072667871855783825741254720872749158540303836833561950486478939052243478959904204440113584222884010071328989307389578885657243042197944595489298754143291198476837506429061510864887299302298703379201350029461028763084973382937820638103089815455664495194412840935509494606455490429860230515136479826973322468024607721555682915338008793428758237615977225162527313369876654445686893256666934638495950378351008809332990434769460640451998835265518409830819722010236433133808053977747382672894400746634109115040317164832990953082722708209848455571782335361368614669487955884956857377928072147383979329266115322513475984696611710374312348299985192406033924116208758700099423126790128730913448647429237463950185055534982637151650739272881641376990096182732244449468599216940498325957491622762250498948389933662963056626572070481208143185234007640676831176978861868752571230456951289783119219043385135750011171220683150274162817450327443199339790651846852834672520873020435390596607707457067066229016858867209187703941169406679033155892419445657846632858253818701251232245987053131089200218085765754042264703807871348817403525230154062933159771444268547309795380095015785312612144205805747846160166436952410599316660864868484828205299053830992947702163518463227744348759005141493989805591630042245675503370038826658827129963147309061465031920999649421980886046687169001521292460380096282240222895857801646136764814149467466001929748056968468285760493844311190193283088019161167610550339568693485937614703334021508682995343455692174549028214502622526379633552515243232658351063368858315705894386799541457549310052429718150098381106297751580529830020336384378079579902924948246867940522907455332635086214793106945188378764223821075789172280997043566782507722010272593861377219878353325037889243647070103443383424564349711908617921799390943715605674216625013626875160186434373159470520061541644906135123628206090520516515440085943523491726499433409428576062435631228057497635059374713981596375706830314130970949228130646220214347833265461110441190004217649480813390692660118558007464574964674414372358120128307664122803850323185267153126425513340232994861388862065302009585797061414883735645089315409260953510303401101102649137700182021548133340386565920013269485165578624475433517224032353264940751184566291643641445299195637501145978993224898937014882950395635135749475146127887555975907236441664449908663970745702363786796696239356137053148069302070117901393594935062600248716033026471401395967082217797943623669692881285311343084886685020681206289936788193568046997185593849733124663435630314992482408604254511410432492373173175812823435160071624164323711257402486657841046336301992994676909154092596327847086515462873221872308962906421946780778525380055632950585975026334760657523822135925288738460148669486057604635590755730209925459741764129378194267946421843823900803950388163393996576307748187808263935144071114787754984717567082461482618986625685220740717546119516518712496490728985846470274678309809748985072772539996737417988584111907415802432975911951129200870324850387675792372027090498714369418259120027262089753989388301730836080543553243297055764937409520096718121243476539159119044695666119981627173302151419406647504126423756220106755535667806576238674162215203882173618866421012662093761996129261418671062363291734898851087613607553832468352132896445247490803504325335102105255734489995429743756788530437367975766952517439283913633604133477563334270890810201440876130250681420667624379323067315086775737972342500758360948736850685172458760670850177730216645063640302991093524603498716156167893089018076919360698012884529068512528034902557741841786755315705259164486406492770417823245514705360963982584991456411023828942748669765810774584107439227254152819888456645239269672210247010024402824126299180582964565106828877873754088401665805115044280683129903716809559993163178239886526533476287559503492020468649927600741264366963948497732918157851943303769375801201911906355026439602295247062481423280282940130215808935565391877947623490492229959592404340658896803786263049088065865749912805472161436202331147603230021940999125261109739350347260031336670649093049324417852614213969660312042329657237749857817191652082413010224983613917926783770949060191130846328692097563644224277518391231513004242942343541369065508512971698732010939306341818188306476438183872143698718310352961947935792091268345259934795493765691270938633166785652477922888134625788781827841326166211809200137775188618836951805042493817862047368245528717328616082226109012627779384890358805638612786126073557812825443468053094499658697615515137913504826186875684283134676860490867747140863508361314177490289196439432417912143974329733355023404964258817713160859216101484317296799900268613762687504645170619656841073337946705962174146011661274787659763057370461222669942870837549776979507341652039792477018938120262519628108060412350571685265077449856334313495673688380658867374314486252216152119549789627952634594041265710696723311460277555453973489886143985049109704118716021311320584754106285385881571256568559703787751198007418749158569077725454175032223045714252899312160428046668298914163784462301914747822499460624982234896160041467181704724220972456176759893328449672127422328559644427838172544491227829701716681125165352018541129808872630915373651341745112760045109898959204811308914214353593873098683984184413674783219846980077392165170701570415800913555041986910630545099455154345028752691637346394221778179619213804386614299780083080867052284742628725117521307487744002129080561379412653801182769958539805561848125998804339098756954147138494305864123971119128218814806253938926731300765494806447451276999021744865585532991157036632362187066499024748625920989865351766701918922976928590865829283455601217004964438537514136704259309408505157353859261853830629348765515379467682760516882071517441782372018851893466594303714646215702809260308041989930204214074415177342504006075675023011372980985800183323073159510520890501272101862028159786655426081975893598219866611314061427178911158248975503699879721329148338511488764199560062509767094474850175381820949946050112593701711281739963098603947952410713153031493111211981439722654324452135112878311893124823897904118170855055020149669362830047957671826408283239884066943334722929239443483060984836223852431196961460028824313238716628412652847099912271309157604087163510468273535824278840836627014986657635988785360046312417730900540510805512201861435701485468793323390629869539210189305473959528570438715771115864921922069656020870803454482452062092520738925790984510574657770900390532270619889298004880368458028675053799452313580975220285975991248795383896737086344805787196620284388495921519263579601775992001120493853344469454648584159656208019239559040116178381957289137493305819274107063908623875222820057516426587768376170549872090062966605330550687297047155070097063552407339374375072198127138658937514797608942039866328311060103766596446856584439323146474013704542637455368444832617706307493307456917914585596839435635120716420876119971894359859856379702799928505462271128919485850430288323193629695967942652957196022284567793768516874053743853712880492796396499797370212305883819820653807862319537579795445330847646154761356742823109091027727871971812344572554624076329832179229586524284403338598641566250150669873222502758479866377109551577915342234877731014260718881843228384603847780832391721825977256060625316648669571285895341991878644302839524917818393505406561514354760781107243978483723109282622243912673627450552464426513645731611475517653153689818513856448897109511915616667645021068701327602393280245977529116214201046939889681208221357439099118480652477344560578550175899039225848168277164570792533284866798772050703024649331433096392725924448200478359281355046734261691984569095440103411878978949184220730776627415831502237334455919221008333546137938038684333572142766572376739630822952588984247427955657183088227540172114592740429435408148219632194893838042176767054836296203688890476587978027038863194477741094057239056945662811092915781821623986453979768964312887011258055872554275579543972721155448582718488761999153296530296121819063929232799356387829702591568557971572185498929028327426753359121159842701529112929103855360653897479512228117796226194322649411967132263174134930075421380088754775722833049847987147336248384499123432425157884142366727509073399636965882646749641359587944190842569308412742193180581066856683559730004066096093582476830842188426623929744191164300848890622108670130468663081770278598811786015258392428731752327854868618097961739910039794099534036725360537526690445421025612147591494160673644061094606471372556352694838355173973347242485148610683029100829122409344768429894234190316816845585374631639280079095412588691761805615489394962884752928526260168374661791140426617056749980205035088766244992032007345586168395129091623538846644373331072058595741474682767756575807010087206185435006815693560021985985302153873455817686034228368283226635343874372385176831079119168155742906606038683896796851424512393175339714967528811190892058449521659313189720872470803906484141125230857971233578887588308668002102208260240873940709925546102787651474584989264055028695994010525682749995310686761711772126222848918355179971141643458453179825387491312351066405660309191178781178270902839723599882550095568061368397088186221527170845160328740694901820315189332665710889421191358570610502585770731799120027202898012295032012403721181896434157738291535352769943949711582116688859938484679294400473700073225070606950792121755191391347646263024691383617416142471977693959748352189662167852732463869573262125807031906777286048794317290594882792213752282051534259842111070669217923664870860313958094706273468885365867880802675354637622040033194241011910815214362583781667764191043093338438748173258786720893829176358672162518645896328371142666073430302525809910347834568730373213973911619987656353656007191993533095255830301483546879225791185846136810381757321179612677642470368233733526124206469751690185250485199988423208927204353372927839490952946953443805715522590587471067601245670642349911772661041910437743785255442456929057223338770360024911547508292633514393887479756248677511800221770432766479248696037365904569864683078471303237107818395549624990654954931305383764987452610081524446394136101952631495575021458031891442161896583320526209636282131184742320254825152113198995699325938949232473913106564670560832488738539574888658874967310150763433197901015814917195575931197399798181193834254717964719487008972989852866110297788384989635740887090090957736829617870373736716250326525356720078861005889774887827129532787298421983669048575811559968609101471823023111705837556513339972687500764678793315909310204729485836179130400411540449401762787539509624869424503091226337901648090384430904923790021261383245720486607728733000334291180959955052463444209515801929041435161997316463331432511564689037545774036135248940538355995080666003175448250767592395839948054136687077055990989692477984199227301129471729326598972434705872866324419002288655564223646985080243245069070414807598718621725253277566085689741143352265945175391554077267073987154583554347367138858966409846697103901505001226792183334746856623149838801476386513907807474239627134169571128388582318246315908884817981981369622754348857132942707118140633808553493269163957440638778258927409716892194881090868073165515477066353659386798232740265196983966079498700757112197371196704338519486681158564579357804020592128764312577942263282202928521228396054938466957416731075300979820352951917261823077153584365772520666993241305826356185400305012270193751690306183608219655838717607764479024726578839845092085188756196637643114646964594369592687597557490247761150188606930703010238969484633891206458743723555498797059153213231570527410982852182283960996421747713715542318880868219646009177154405868379076748717855419109364245178816340351622569540776661616903726370508634348010599341132663338467901960516316405420004624958498473533917583348719747401079391722714782028615209614419771962297674654497653243559955399633448119969587433391265691388900926200355619172983877069885151132719352969823128681796361640327452977422930519113748626874278431111998057876667221217789474758447798121420356003920997939278662717002099258940298443899282972374634441799602879535701977752945864579021338009390466888660547609275526958627777836554509705617414852039209081813545931505119447096033817410822977923890112262002288311762062534048407405435886358382375003381079868925603016705318364137502971686848683417921948548560827428511528237237431160964161226574547040144744677627923407388522871667801933146524581086172337240991311970111336515507589747216551555399924132134495164560688217230636828997617246849791898372274664884365289715555219454134591356963236795551720694419470957056291724613424447108359274253978062189667975350517703878185285107237958737158040234319794245472596694672534734606483017538857394268183351938307022013472703143524398696313395512384651099002015393517656674668680040476167330966768667350823992298707478141642113657587848550979130847522855875393944398434742308148991934874631945496232137612545174544600855852944751368753469357231159088629384078235718557866626201745286744487269689798638756062259207243167923305273868156470605778819374367222009739707807104974305658477855342752298926320746978415499534518500569560580310655322419983324765641918028851504910798106995261283395751020217075928752403457099493092584578438301435833148531403094549421821354213149803288725946346586943526759121835503312861040069273713360336317738316605310582202626607938670708916584595825727445425732447865559849608957841406891507078535923581558289474962251722012745131615958338364783408296510703548918516693675234715114898956856652280504965537590105606891135113013336503333155616170436662899212190753994943841729837125418658819560524024905697934706183273512332136163006636936898906134435774981865762490375610528732071615999294867605968988624385419514230426480518745505224359347470485993216941548387140889173202111690014825445789803710402847423860965674429014528534238540145249124405331300872474791235542275311030149748218964728248650815748548178270441080750154858240267311496191098512739824402506459819191449715665520168198465902795253249050810639429281599698886900040385080956398320632728999146784034238824991384960214501156307219042857007208151128737382300408473653362845661744414739855454368029478119223241284490468473332941649972592701659850584208251257135693669288490992831085853472791890634157548251566386004841695391557330253392203025511021178214087272388636031156122738296439863538062748218348329192783626088829529088529571604551853413354441853739579551873735626272138657819109880637677210300150229087165496560033011513005874079713899469599424841436559059748945219668370615974526952405541024575756286670379591581695987573226074310588550642981321976845577051056684114876832811804822821743976929442381116240168463886107525363384068477458893598702935501713494120175981783824030049813216045562973604281063020356828739113092216795920526814764436751385013297785510589669976910318014497747178054701935617320006980476337213257756977992990164173327048080228878972629057781962160812699259459665130935580540704993257873051969344920393596270376666313240684152260277553517618183443463297245438555786596024159458157013040602501740575732582100137484021670893509179336679376516488846021397137466215842018885242121479674799161688752232482209391633999098429193348877800485019668575362585853629096947988148158020456452569979503777670904637509676116080993610706842572634442766546891757536144750765091853775566234160910434409321813387661360752715361424675776408487733518620388381375157366419651733311604882882273664338908402453988788017862971260648989478361190499037188933318240407859949547354966236987373606481102305683066216653500909574239755895873915272465869094116370060865815245368265268357966175088034972337922512175209031359150697347963449068664406574177642092284451232621906400665978760540609318829935493969407820202622758100245047065369887864397221159138392408410900253980650800103872826310852346806600172002486309393937656378144754772584563825838253189145751608980193760036764746404159664025059166052973170218265114822732857198583274051040363274401989404867458060968907820517103347842742628180089317782459031369948086650549993958689078611017901223656555251707167992738711307873352420973315684310245853315763563735144625334672804944460668156120935758882176145522491812436749234111168634590406510539793693986330631945248401558961194085845654259335344005720142913140162295237813126030723184097637523470132178705251305355582622043383970588862655093148353440428365422825344044806206696952176508888052529686319637810612814840902898253799398654415833791510048953333137449944596532929275208462087423946082361172294858644068986289430001554342964020255686570995979639030506508287956152473412521241242460492212273973505528813516884521328717060514974195920353003412704342292722753749859691777906390213353781323213882931291428084770666984465901576695791193647291742607960104817450318892387138715825168140463401578925041663283063647087928905990523063912875942893567259736258931073310249563663512586435673179563123605701554403803774932910986500727006228865995587692299699229054748427352798583166774565416657100317792202121351072595499004303585286580606125817926448865315933675919930295098230335587488971722435653271715396375325582896573490228624342812968285148695386673974259776468499828049033929245608605690240734817820653386650167747846392273311093341186492718063521085106203593727343554027646613838170143426022803693316008885658644728137763401736742744066732016187318958078708907475566288506181741900818088337090923896241251035905642300140135352678910015015834082832051041744157358389297625886058237146745068861259658967210722766626902456447473835715514574138279103214523474403817649619298051125303709181377719450382405149799874240429848813762432281370751588779887991084101997428487486251542855096113428791915318261152989474571827057022607952933651495608305917659726759759550537376399483579506532622729195214590906799392194462531818924907514292932418201925606799641754167417084557771535191812532299984724260049578042844349070281953147750479704535646270802212064080908060125488174234222716276809070169724482641679247215084191651139311010638270092470123490222947671733288436271777960971864728240078754208411725998114024847290827262651705547398966261611810529241125083083007388201626681537074636483630877281771085531155596833441560649562957674090888092515616811707572595447472072867255768364595303170195678928035035552043821152889343225527750369863128942136825568633895284395527827443426842801004048389235777735533191536281461880468275430076802311795659244103923682790885651790812864241849648329678119830478221800956649032689216999144604565103412188721758901043197363244909301360347893321974949773790896214210059403359550840879584501098366258083626172841357744181154886303943083340939013734279536713437456293053052078995154384852432826336724788853161135829299845802154104717918677864309953142579137589548212992964348715967991309444798721335280146933701699376977734295224566544313159871226389029959161070141276282470566438577899663738606718219213984505944422195221215983628275718268036198148469048341124401050536260894655420495850200171860694693250178330420892931218454765317268503059631114718881028585826374252022774025704767499141817339657273698008953783045978547309939065054257873505893662891970461531743927068686625556642859223468597240818885495476130628806353808631275059409986673926306835692718945391403276757907984546821125168186554874105367583834985754965360520339148621615259027564834552136995639964622644930025567911355078438997157820162065821528981526809101457602458002562805513344254576628621088572945352696815642191452785670693606503652598484557249949767141927631052887893233935436710291503327375158212873789310042734714964221052616588560361132809465118128354534942030366508495365633735398775593419411006058552377579213576525565695852226273648319384604394462817449347390394533554623390547186305721049679153213738050211547447450518876996166246209128126677747099000892596285020250154832265448776217573053136417021292031671796118837739901198843569852600769489608156699716639392995918324783565008874291910974321704468754048430580906243201336741126905259520004041074430008008752891820993196922908800997312545274464864275857858703438387690996123656292824612880678878632204597011576614187966309041975622230560766462661827756103489119915865187777427449623158964278543144441439734517247263645955293198917490456983290442659739128555145936115874146237918093145767319461384295322037578201483782631225394348294827855204981075897374214138707341001903808297214268148846649912976315627616258723301664426719346313723498768585123123917166851607295425373085894978931281528251332953702614358091148143444037534985242238589097253798037137947460487083715704263843500562612131489035541548593153330635478667616793793459685893542570968424953823104592749483755528184473819802737084852966644207550145273655123711230637120231264398547133037708969472572296035122973869526873310092297521435257333946251705735694402008282293984958840672819237739895707402546901934033725215296129578716707780534237137958103244647208859350111341998750840245547441776823582515348202904604584898351922956806449936672336802904112266466187129651608549780154743303307001312041924353661553143599729291156611241397536900027747686361453888527419204993640812033507633005596819430267530221798370781244660558324038131394642229871864531033021461116641098812350526029250342493569745109609993982500696695529115748657605937933202232208287846590664981576351723201622972876979225877126061545996745562186432041018320882816742862986671962277256721400375364341394930010722680725658998178451491125479986630489327870299152306032116962655103870135348427105732926247334393902704476577919717246565582169321507297206729078658839950261660995014106026493673876472916842399385611671565774171270982397627417505226563461944732778497563920427234567534175016882935140992878949229285612801888249765795553436900208982862623619326502616423948497809285248981213777387574323526675176260440832970444609104366737459069716682947341646663177442292207804258428267357658933703305660503401859043775788568085569904849969377077908710415300466126472817877375819254006694488367601299754751407831260259788183222271087444456223730059900427528644709555465932905931883766368756718501840992398446042778190652744200104954732962230295188284132323740288541568547853494488907231799519877915675334844343470057757679340946179836305823994116231736442225690176718855312915427471713007867024292045136179848827750567669989963133913256969302194945902640724530197397679408519280003535306712540997709549644836670225912662878689388714410044984387353059217837299302147181295576554379683103856884668582837091891450362344172708404045797637764504962206439840905279891069174062512278764109399462870268528497638512970337859807501906967218761681545317981219611140728847837896792771057306860958330703977434817904217543938906623163854667984699856869743992090194719803735541198734392549316514001316244787956419947391070290530469658584078412797738936225212046149716813067219671405786330218505740159635529123409474162734437242751338922026097274736387943535687182170958646324138448831977891669234206483974366637068166503316662951797165760065223891746823941851713070308762900856868527318066407927235020119642802340731629435905762623565741678330092956047755261229054247738452395390255075431385290610184565509766907893613246281845503359295803739528942873934190845486849963224790851225900210661334009978399633189027214316238635644226350249877270552404529854871274413645569652164951258894073468112870912317094600096699088254968567412620208354166530378261164274474539477223725683127286812081458987079118254358268425680575591569097606443824180023994496787790995893524136725805985158212701144993122780997259645081594590552085811376756153749723201616066265888855238304588143053805899744125248890470799251182610012526134769607701582178463199781746570183908356248181360588089978429987312199314962645874628146845892693801673921379250276921859506161612304387674990493450060018554186012585842129406296225113581841146573558768273401390805016236491642711030688558762243042152806894688843203506549576804530672318253987235031482458523751723618210611577269938524179203247366658914134338072939262748955030325833839245651890551989309925797384115216957664164645925797007470878574683954178597453500710003178237550863825134950473027487194961244177065178832973913890739791135931398800721524654909929977879463091888730276391145219668331753612936937570445796886117707255673088896026905447966106902745568036416512120113039067510109016916826992945375338694507953896075674513303992515184637541565412113398168058824544588524516718846463496108722498953101134384292933249638936614982067623170816676609480307883911174965899573732909466645304774235991962538146978585698777091035071750450114727752741082365878512851028533917374854945127801189598272937288081537101826506152430890099938553649982562039538680951788708365617802007796734930264490760653507491576264435171510469741783493228441735461620141281944446506916025803668537275378229081292203374121629700250837384539249511850695728080083854929516629418731180117837108794423149772265604925373428070439022859959441185598680081723248636887365197364662852098589884880428251800510954285978608136145823901383826770816825019075119915149989643393549392710823349319469632160239953154439900360582488411925484801764758928378101742184805975436092452743775076532440926343353841296869250854350248772387374844133156208643120900897312766503774853404935987794437383608205580048470189371662414294631904630048246996977037262614091893929445478754287707555429590958225753973840044854172052043133197468577778911028074702995175742800832514962201176863066724937998863805884978634653127952701624777769983789202497589682325214225358711248643001352012638774855722710770200385500074032243725251967285890139409496253005790258279097015697970636855020907140722749496817389221045272271048697331692853001630470683940154283878358351857582232455091896632388175461606498507923762065100838868031034023508319113420976577442377664323785046514999559963161248487397458541107586936031485860080261297497717644032798675964794936003133501977107038354951253356450488740755761016660495989253041350229428922225619652615882171109735721132693168126605261360150246988997099577763726206062554940544812290565468738095540309490293665711134398697235508549910376023431319278315789568086530433307578116235489537036177604405879264986638776549508504173483553690021939153599198255762352635148634865030956259436319717707898196385040530920173521623408760267928234982769775269512273043551726104234104665853412597016493671348290282497627808000295946531261476236177539153481979679371859014814405531200643738718551000521366788044187905579690221158210549793691318974490166189121319187445368589047722009822073256403172978813057359680025882030372906147212442299338579501662647179559517848363101368473602929000632960749127991936208764206260992848170352346861320939919984337125617549050272170409310774886150832118448933539526762531774914444825498940554053264466580789722080541117952527228373191616736224970627065033868712069533428062771194751518138403720565189181461806271876787360681157145196080429776153207267481170224823566478525659900711899766674034409111717530836041563086554253720744760190596734104579181873575871964208218015241715788285999659544277135206380492982641539349154811084722020317062543530072629046808958717104885693197564791509148512625013131097708173632822106323935111478128959007981476640329501442425697955685978075294426300610876189501705864869027799215663690179587254194659785787443147058364446803022402391653676007453602789561902898020139018926574669080244661102302838709058286316096812816523501352054267862632897861739403465488533777121388522561753939105097235318346404283969706520406274732081088076133146938094282501305320944788629554270021377599515452098552365483088433501359312096236299265781915811932048983014502749783159064842591194734601812548195363562518392733457233821607763377739278274548061741279904482487090208964138254770059603868146726328460415303659295895977600010819691918713773218535076528049314408085213848191190207988459182406674024556957261319046582862312635085846818223082685060454167552592467415367821989597831831350318284305791737588545139570591455758630414842064202609900800382453307581583972768854350513208739921117556339323299490811185902719471526092380811582310314330260280948595881685780516260565093347051130024751215635705930444838491884417577882706835129308433495795731616752565424850135370450508042259593406210836096710507440607079181426214682978676215154676403788331898632997083991892940224801284780215254176541069966938908966689529780844163325011501739482733649055820176201132408301028234135202724907491576862780295180847598899804947833999229718961993484633516993874730933945311529609766980973513629811814817455020554042028588334994358637157926110015284277396477243145337214315905844833194894364967430702481242427958496733855870728335602300303358469845788292323699843359258917302109703562193177243737926996404335512817110016684767809328384538428668736311235668025145367579517562169510394906740763746202828140520395068556788792347145414680343618889772520836304670192835229582377687499274716302168347483772123413398351822870115127874748465858442983906125662922862132412687973290872833576618110731118062754622483900486270336591948589415882924839278134926495822876754461000543094106856991580241121747300318174717740353681403479334527296825519331335658404194741085010274990173343609193372976474249764564511376334901907527751859389811470189264587766810524477734862215916978442648063492032700232725233889847133253657188679903353492439418846259751956420500965142538790715641397342989269589026071138965386390192124035500339313508381523100222472806840198048338302802607697012456836760237328736480242074464759799189069285807721638687858547203691845984549413324109998294134369975428423080284248854640120872450519629720059062801280363264850143117747335105241836984177579086927005240682964760518339735677803078988990598323243803882793229294713124288964928389331325840728503564283571486437796657493922885868761648093736682146599974213871580302669057436039511985894996224143310295735389992318420646690616928913362744920282840037501000701778414045063195211025669106908563366744289442675005381252280215787970148963734799261311727263827758984551427445969200803024470143895552426640003111607081539082966484775370990124182948371875224534981260229090228589050977746777933752449521186280652826866692940192407375916361300759243184660548086477674864940453781159019747044104054513243262549225277795536085327704260489386088105444620132108158889525721757634048738164044434419432329592798684536588565708421400506157410824675247290611907323452160563866470437319339461348988092474778119864812329873025157484580699128031487442961240435861960175045225083107208079722555871527681484787360341704427254256894070056955771021429354398620860845925500115412444941727638739340731719316214968108427777300453233291607677888431295401718309830134273603298793600990091751443999360761716546938910464351671708543728525706544983504677180302176065456565061956033444332336680217994286734595882123021487432371903534961015592773709296662255938110991841070453365909148318410043748245481324837895492074396643819140484139883650032379094241286572153760500305958387299658042493717238643439712459849377579665493506579676405757760238323012024959618170885603232310511925874202662292256140703992471088464046846876994661509074683322817381959366129003184848516053904807520226023237314902091626599106102829046589597695461504919566469005716276513242147903483953814576393737771050102215975391146639022220466142312975294777649626335284336576256147826157022967179450453942937606487006286186409629475128934882484362533444980878206875859087406115708260717405806513321018071910603833327454144544441525936039801227849895213861207784383851441048426802340328841100764088233579447221438104136757633977507677029805214441587503037417708372188343308358125254189275367154067650984918938799885520470867107068236808666315213818468770610077441716227412354892850467312164221709196283096748393878851808269111047379618585791099281807324690139082519666072083834121092136832766358865133966854366554087740335061842895858477109205253616537569924542885918160399603957235530746363052277435109813692909606296635703168930589571320735904342953474489877502321488534144251641238315452540447331858405745601716747920353784642666485059744615864302517205661325275322603328764823996311441636287567632431090396235033966867190267190429690131579783806536463409956706982060534974238024419906555111667113000826297574005632435692269324405622454652098959782863155779215022027914238289432926531777458242041772830779251094856594521375838840206050612941535879156396953711366697276086757030352901685730791742946302524408530234876985340326338534450701593255786932041881892421607962653160982516598566365685738446077382375770081635600073127831363482111500987386939696880630177865388616914078099339750103323485143582289412761649573168495905007699633566853015808064959564088494243453824084706427511734047788583330434431802279824943829540901816480755590102639674140874105234106681491526045300146011835949164085795326574208042183672564375096733559828247378150416383194180960815013688352811143452529369780844555118157931687903119188598608375494934270575612314848910851743497142210349617415106109783029772699552828634261529778701317863025601587556898097636498183091943259913800044133815470375358749920505591270789700012089317862386250638095186703249445982706522676354111995224205564928523470105615045329953228619757948639658203253380530875258855077245490427559178179932505833032432516894973849056446164507804848879659402335735554043782018299313784278659200386479461180756946062743047914325798204728320227520616623352176849224426029259084241245871986282897895942654885559322913209163122132367040981182599658234893238866446315921675510183471442077485699191293416395695744571928261140862083609110694000408120521900096813942407297534037873927537611023946938570850061892309075993344676316382194637197037706752268930815734231464999444545126035408558760662243281960809939407460147359271314280131823796065858979795858120626255515662355346479015339562629864380472777584920286542919147218249720827215203490177519947109971339920950322404830550713862099942152531734114043796803793485053550558055307536128057567701300671632352155748354153716561277895089407618430423608867589808776842063598983325573973680593401479845178816354267381033700780169457487934261402603795572085570769687399601292032492688390014725886403712382519090371821833495299531031494874648723392615198316412231118116951331624653478337933692810089897930732900587028444066331059801232999629542961165118548773623391734105544471875980557315244208046632057011186248659754908444882220563688955415958098906731735012680137354622751017612281817048140227079628187470965944139844191918922805171445280553724871646246569691185709260760044020280832369609303386938681898689820255879393493128122538274203494882894972873286577205360141946144769758760669768440730121896923967564103594500214575007194990511565093201753498587076424064544920398363975491235304987508718737060223693915156492442930012878569650105821378751269816489604563954196027399967935648575114980345444399112734313145749979732745782036460764920508079695255665224933617950796824895333632685066676117926406078529396745793304593971520582783372477488685605350945314526859879055160801147134168059636308989079443317337659299934429839501427029087067676540887424591543367872643625393420686956106351165980772048066268551590851909360685907830777113521284938454639244144006040443583761645069989005170614044562612435733873426998242439533652516082723360515656694079351963152805556810980601110675553322590835587128732570892186373304919415749575267168878856509507300835962557017773080450913377043118235186357705249784632145461935123076763208622885146751396148871544789815046533215596185996154061001509104774348087228517894784919063995076110257458366660924681103296541437421417757588325270104646866329853104000757385538580966604863380438802504530505401153205495155919985768942425349865864298710984861622292498124084298891673966468333426468032619493887437201184575463048937998324353677870350242008224197060692499861537180316398359600904089116797974979017149822100758304565855596962025741543265287029082914240850248065178367716995944470864263280557710050232250323277785840598325820968868968121731289959563285475160629462734660806243742949091117727365806192195517185234858718976970701142881852245802868718593759944237278598739075171127805593741180731605938086767899702043687301176485794265340858745816054862264125767181036161308209783243115723117350194700062175017137492286321183200753052877234227607697508688419134558285737615868356875055329221067313048231494097143174205114050930228400111751103028370064983134341954675995369403996635412027880971964450694736168097726229731390697261843584589779615310320516945708004459804921707117872870047445738374605072719952270421384260843137594149572222610486075477447031431905779200379656456248896366360456668498132220169686947113342659462794974518702048982003449273001097110272018159655918389775047812469181737861367947800172943180336678090359230928718675801009737057611283046864480816885393169524875546359165897000216306876289746362033274329706653927848747903228786252823649740067953080432149437370434614104129393348976663607321103549587888733250439934390107244419528364055537416404733623850624183877314877411581339077716434713703146730113841558391480571775109145331883127510124910080027478004944795794533516426595549067674402210053908329186376487824880176537338074364516675587337767341520225969189788322980154053595272734782436763075703489035050123824095825016297493588748540160253845949903453393347171930245735298625196871501232827015313536860342838320621888685313095175768644460172899644621947042236690531789123091082551793948345861263117676689427774856261727337764293082519474599425202219646166265024284798803606652664658131816693605080451985976073628208778997504667393127504638770715886053602167070580100528317158506983564210659990922126261479745243962468524624334794577261979805923867051860894393452137931537477249645889332597066836301642709789636884875829066024044674651538237813530522697811530743871549453233078735415899536001455455829192220936082239282131033899712806680892593815212081203011749414841575456897097628225816580235949333173673101754729717288283779711515852922391996672497822631141185661523403849714354789172479214467299808549550127779410694089402426406532259633851167362522906844730843013896299700543783915473497766592853020802291062302978772972743360146555131881684509837424115280879672529183610544304837020178661369009655265842411018947590712461293357012492578052645233476020224008681906767143207177212188154640212564210460895552605217526473932718724729015918728673198832127380457995448863818823116840100835233951030914657243421641183801486283182457695089300492636749839132449675180645350226189120353933358213981669436869229825691342570532855477230077686510711173999791349050074910490999083973859360246517717865196185165144652673240413090716626621226263501849176152541215427567040794332262055280292563715090691810881973917874450972783223746508474191445991981681249989652385319834863428807768083561794057947663802990405339563232811930930199138212277836868765826207080414358736377317829075149285524153908352257382354004755648517647133383698524380423019475196597738933350584471445880996642821264346707050963494972767422641240484630608691362357830675874811937239996268936191370742945341888263179545276693448955744233147802701357395025759362241761708481785929953557481615304707518327652792904432472489097519959567562124924767171504878758643051876016601613150119575186902133127766436946401365869241492544430277409119458573739226084807986885045912407705874740805732701962100023675863365836420293025296581507244419862779633770887919955905563688856713874266216289010584524231448338580618179296178909650107860134891029741489778108603470366239221642700491037238231104358576016197284009964310441154257213392508960216860889771096499686642252523541862924524044587252550220370547828291426392439375975560279204185150160730233448716798377714339929728168651615494721417413124665970577916836534301207258707502653128602101195360132307129571925775197727582698611965215044113682453692605359174376650988982264665559042152715766238047651716285436680804214759377782247668418751333496230010579400005585347989032938002364154292540958587419633689703661678937848887738440866480234425236821743005663319848266781462903038815825221187933450277477852869583618072733444407106553488094934264984062930881844421424952680126738706978089042972042365982206002816498291585867149038070611309989444701352737335314231478513754815197620844508295647501230681833459151330785251493946630550462142280252972014067326451667431320214100710187692603719611728767032206772964813822390296036150893976805464396642507331411200169067203513906310249551709599070807419899546407729777186682977613127926795342306191236467670596871199625005539608245093951568300097913886313605497500142856649770476472943536287553843165487717665759926941379682682029554775110356815327278275423859187279548884337102283471372003426087554476531477282378027727484855342076932692930031801644133764292147361375304922816864974279856146258267983144788625890436715679269795197892129699004258892949046472049983080396808550247495745245517554088889132462118469621638520538804329620388049766950793798016928143442804526310201993907942196851834968282551273472440431843298239426697956657291853773804074570221066325922616220476994749203406016683919729352122693079654113195315535615948915174597517927243435365187380374971098374616779560565070746472671572018478196357915847691601821877585706318971928019189583584938416675131832416902793482684907474433745865586874958141531952130477927495142999665181963873545155445171015310351546537467834814682012564740932561077768522101995592372996674767588475645857775646818261121087766429113236354963694318715290227874456405879805636205079779757042388581777283952561136254484898958873182290676512570918859243332787627118492454671197750589473925657790619487252899976985148392447026374621211754840996787536497666826754642672996992473119767580220700672267879970744281049810412874523575391772685422133857272943338029210824475967430132189281694679201512085159681588867361854510377929701055015315919327493397674938844753671663613543374722833862187906157015782520212749472270944683878322714612086892994881969893835833694482473179191632798733381914868833782780195211571904195661874128122410814450593244239385326786820301500619085175099026717628709651903797371687276753724811319186675389603235142444729488702726079562695405677342268038971022587114565617692401794942630969702995146400843783996979511606545974949249837057315929121894215011095081024589891858985946893844671441389250749206898874440605695765681926020886338920444885253131531433855544209160513971990005265836267001046624521297585468882464185032885504375546954057980415108079128321898435137668109737590920071946338249104825276771374159363311436325145190060581607157970159834787635115487190652947321313159244945171815734683553127897728415992341022788392907959400810127930120888058151717423315315728637556406819950431493301111003144871936481198679071361126291123514196747198035399339803730287840535917260142666182607857835568852361389735633821004389539041663971471397289458767972340009694461414423868253480722800922722301532533194534654023890577014069818941676699889714310411579835918013158192900811101075493404798949210294187218264677058050873356393211108324459419455666578652885898815359458661282412185366422860069687971160613443711566725498071089133477222127270379907350496409403188011247556814278711309914085094242529833524998414127641484959778198008251870328437584753771990849503202609287282385337290631585524736254978057119521345538583307192970432079866095968295389709410533567963164128265863087057846828699371776165379944770779516911832555540444144836551147555357348514129374713556960534354029482659613502674594886392566159633006981326414411936622377033234902474930382732825801817367889132859346857167008820260207146865193574947863825805611645087619783405512808866522577946837745399272772585881023252804761017229401499888558231265150009250673663870612311311725449572264705939617627231519918869193624052010298323225977860934443078324762778479241384754375878093094507358363085157743079692540339804289970801570023556532293489105827182942176117574348327261561890373937905326688272384015407658769344144812371795770284086601710373287179308860768224621222762291763595802780888199321383976199341965037749269161743523026660808030829481680929010651277338658923681205122145149798207710208858576013546404679272825391492228825255460648741471821561060981689013598882654662830008365404623290364125608084035913692068274985605867860375831437293759023218830278109243506129974142808363737013566275784833880467161219669743006231013151570281901574731479029323917544014666994321738942771917098537905262430684503132323167983515330983702558021771069135054015644644096035161926219198411408936029021491407189414187870761630956130317664099066705018144118969308712458575968967914697437454871220767137218555502015376331191303822055595150497585549912464538248737656746410447938623632348580164005684435027097988366200165422420055770568249151542050952794964982397055095869394667538349856602348895327767832710145990373398512442669092873151851964588572022339694185865351736578669339811553143579917718047350594891651339020507314474749944874693852040866791608549344191936597471745443046323995759706213425304599731676197971576735299312623928848905867957949824707173917738689947995278025850030465324117374497386035356261803936150124035556274269776710409782768132998418800303100550272518137711747741251441634768319134034199790866118326570665676919699674594398738770266212061276076808355086796083312484187693279313498514994175552392982629504959769874474851053009659100374631350182066509901404733869254535582213696124506217167246888249426451169571313822831458117722157125099910715425281285513436025912333882262375038848721886279992379062183549595045116730011375161323130045603771816978724096257837559065549582920980579347632500912186217858356235602419237688886886742991083785446608966263467781676387350655290657677846075417926378591803051607638015940286530102577947859903977954254201803928473713196115708273894318864043022820663304553080877036180836121447207340170449237929428839563702312283976515466165512697301247881232669050375074020154129930389230904906569818506199420525729355598630233271463138667357995045966454424870931213845575604288245182029088904348804779888702763177226115370037541671586355982674015368277747715048594931130691302607666992288591757175259271951719646906405677059993108057252974881233222647674960323587782792638645454773065208817295628257310367441175657174019599454917980952973306978631266008944041621079260913661645976758780220260421861629254575830210724212580770165086302682532756293567935676897733530809824208481921986746975359395682779697840495064003292004229952036007202514083149864768831925560747496325972291597776671225334546085735882145674531597348043010939673992491257181647247230492460889302160035833853448945328988107075982279722083710579215695633601861869629601054155180135685579218604264688579387794059596964885671893400702495734026109738970773234181289448675553474711961741563235168362148096079801646786675978262723629089458439840865803332393387025093249876468841078628171247122581519087351217881048585982298938726226296173955109155242100165383050912407187069871340569476964166436666537661522305622929212367840006270614113544674911024547045845563367101336943479058961346327195607278683628278167165618935283840633317937922359991641898414054863460846207796600475595528985448802564879813786015237092233452525079965933801143931667588033025284460452962214959204624433285579521414370424612895994596447744600153632109660081080188155661312070332759311006430827318807778839953023880967118605300549009151827553793550013556639342714427948274390149269142469806473696819784865752821396564893701618414973028939197460724908701986696948601550900485479715218527065272970055406599513823392908992792320677958693069308647290939432945247605500095326595596682022363329015422215341106114438205888622777003344077688233752091490035636306735667379592269041320480903883803660014626715520788745383777634364484008907776651854074664895690118932738328179262864259818148687094824192072070423058889745783427285838611359949146103846474534460635889633321796066301860556884063509716462032928542690213448910202238603004885617405549048119105198288111579153335949173233534522730603271927985907913990918042522887141516192569393730247884861626867849496674290223081128601232879897963962497302083988292585065601123021530635413283547349138515663890142157716975198261843340793696977568614818885963395238581649518636798698820267401600717985582075034879844686647236103966060971816660736086035574136773367570351111904119793288844557026909311392492699149370291608548065196205802852305169914792341644746448729601611482629710394126614715474934411127409428014258465478909291497279173099935950377854159902586483617527895740183489565077717506145682368898179626129871326835435771535621036606350829006373886672943960147887528080907363171725604593470016313258572966846706963838325422448300332391781560408519753790679385145445724731169274827292296230401134851815786600165662069137491689706124211015370102595280111348966316698152597920781166568423609126887477852264517253024731730215238291311936983968614642413513573816485007372340677203803348081098318631824268434285852906292944983178496942973797447273080262131794241997293466557772528901865723496546426780453502019086760118372033453083645844874327292112469567973101704120704713341118510458753779507084773445816612629804023780842647473319137530137191767940752471477341883012212571171782352721036044786619351914991760261635347011654415657579376253235412651691321664492442145367272030450208943829194939299726610567525386118910798878403189318081216477595625846653159936393539731220223446047942592814326564796682322610948154450233508188337503090413340437924476951355886572350130820564353555117838413823107339159539601901890782157165099341706152689982886222168442567197327976558349381324679420713271510065174306565821129516978042651426515553749926045873688421659828402631410436891296567600475075171269073744981584680148835440374801081426294682788811626250058372996847025785709868365839997980952960330681664725353471715775220513952840958440150407405620934604300814344510364521211020767700270773592944178952922126787743856367780758370565748123837794344001618354534164603482879886154204506729400921180648026881556845423275816667100124277629075931028778105263671363349189767689388673484871554616812210638256222590662271910232545646835756410884763061442959129361442058600914677472251348842136586896865587946698292554893486451938564435441934046518486475913442230990583777452826714944051037618784907115749931058089885871401623847805260175075037517381964245912505139037387135062041099183271526040192452623613740040116725825580233195317935105269176271946019436757018392989538028260028900477932981872475077865639156371415855660830854956082554430265428231830257447988717137104276205343178933072750039038476117827094780932573170592353242493837201637494306549977675790458042162683284494987298438147853055200831206697989006080847311215843444756133930858997116406564052248637923213118445856918262256414677871670252387937977107066497811846313850306429284853500716675734920047698428017586345260993279569061258744250972730738523805476140505758993043685018907096468089768461623452800573447610720249763527966546839865172999624647030686294304248176394117599699141269012206442847234248466888529416861186425762505289460271404283703992157378516461360279990276120015585536681947958792161709171723132548683763674187360026958729803434658730914481233412753883078173578840235747362111859018076586697486601541017949033442744343934864460398104819697920260837769409719922844208194635901438088310042588387755277643775373792345148068877681901903528888321951890312973991706816797284791994738116687627840831454649510095635545920224394672425857928107598239569640191279986329586799005425459011766582367544821619828870736974784773798924439451482303522873909448414388220650972398094134407691010792349767460714993311654685671544449799744180546295102642328128652096511390540632807893766653089741068226717349146055972268965420980464061298303140640576166377897676154185650455917418186093184921069574444044678640511957690880923207859921865948335081284908742315195220682011919553608065679029077639428226428183564005110539302077974818941923531172673235500349201487648093408332923095184422614418393751086587887154012133059656304159131277487092615298121424957130160525212490497230085878848383063287901451493417498801931603197500694404119172077629395107481334856365852543832763895785875209240709094434993262194542270340802159048628381585850517678255691646972457432971680642421982496749420527939426812706000739835851561538775896824266345230617609213145752824832813350001307899407032487070471931750481777979367088593756446249678274082885871879028120881751442988515212182161029261220213174827177790570065393968007070256956540008703055887796257952882493636089962330521245037006445440208609944187102882682765165830999494719652459847718687440420615901436977079682280912167870886369879335922485090717419901770807258414649984649226516981179927126767527208179592220870711163503809741381512009023809712366833400038844523827204979134728035484358922809276227735537006792709855502397653916769657262632339380421877001121276002680525069629611135812757334624647336062425355791514597687158079070151579148904693399513338228468688785554334574421330531613058767000565266444926179385546476325959372073614869427361121320883479383186446192823057251232542367474288931966246865510383935635818902787575755553454444000317619290031654980574614578481012378146787075579334388443445284978820562985735938902862696295864436077229181472042712366134937611279096206631482112815709416380599215253424550904076824825097205500372709485354908578163961268050117302055148990654788544743183603767663802919595489756618642699909090137540874799228547935533055731132691953710172505472306582241727971867581021975780037061851168516959610061590363176303186339335883143695206009145201922932103946454737538437535220934895087391518088054443136654954291470126334065943256152172232597941670258442466400378337263250721069170977095754821276341088827004087309639925592855147764202487012256075256754723708102218461594304917651729726015368807784453856493153118572334905197092354019453750221424873585359975651455984742573900545575012441452904483302440745618681516035333577552015493348421360002959417710219417533504141251989567754492521673601391128564942723589566127902688613182427145834106481668089910983537010339753770710333805943789601362835709569925029134216903399540067744854839613879844191374383626838861999942709535913564056195964168378309075352647622148215572197895779839715993945271379746668877437801249637121711480740941189916483979055365038176707329617377235898041741212725471060422187697093316342988076592829692384121418708921761441889162904318658843273104933431637194509699747543457099691758896927919597711748983016414823636675795619454264180797142156054038185329827474785378516524415993406678202933919704176003731490692254035274643367262161464935988977883586423784370778089236312675532551983392487229220339625925123865316023387151803972987911649270629577348748036456224360121479735521567788921850250811686232532156209791183450951022013115497851969355115094336277351519638062402227004217576301899596073465314168655656148947506572927526876053070979617486580890046866564424623037559014448114062744998230108163740366817620560078125600055832126174712775609356536656057254179317142814199580748629810810221301537008572633344781291905384762293620851193084532411637726132963319665740595765572559357291136368727059646809889195274140465598014503753853664474887374170871411485590182305192771260309195616379013983484248993689227360269968734847586909107382303456770644982179582363621498122290052741809546956990096458667843391673089190346710304172946893757094631178558545520388893742021519134322715020146592455191772534579608474471840872275925839154932701418783484372387352062807338416788447267961458705414875636592360330818847581551483121789049432611090872137084234723563252147066773909317233582778839322156939981688588733114550189477469102096464776999457634638145383552619168974565628491925004269978050769784052465002357492041349143310466239938627599317134978465577246061433001110830255597381798292689245212465278268620319078685897225368471443764552437246796963185580432058345114822165921412776098536991718760661970501635100784929856309826913421594219759198507549406983681561222624774806523490383889470890901164492827049757140571377751210815400927202246280998961765236036001401630101569033412428784254073288660985925504962367860691170926479503661188825953884830882938374942239046740260856950164912289782880029159863061767464473126440624902928664676651448064439054024564772478273560705491405102460710143607370493516677635251345577197364061540269186904330333698685279827853978780456133543198020915690181020484830678218968143604997945888671668712820761243672339825649578589553577018502613350772832798647073323901437332039720319466309696775559294732671679002998110217432953478042563181592614853804151325264513922392879292247870819728274113005390243879764041053060162422467850777310862482719545713146125086024932605789431873347558562213638747798885408392517670478767028799582187195126321476607728221850221946168847015873381985229752052251356074726147897360802765877102663082888192076151021588151228258081343988072781479524830043612248970816561805939702974365662194520496033882148099816686997370648889438862238484651497952679835315832816730427531187586691239927758795047569168936391269971001158939471977788902046604170293124154821002054977297031030692283148487451534479103034540537427902272238961241511936707267473604656881673187982246111359632690461506281617594776888373515294113428044131231426003572717604623229560541404487193770787385938406514945367174195714773702070214984220637133272811756100706898378031743934577249850824387008781775853956696065937480219728834563597629963872368489177733140425132544492111940337793728763491236655190637087894682563551032215590551120741193672989255362981012667542790785397615133337954052005423883727037119749593441132835151025307756844793719140332116088529164281146517477775316285389181120338007845180436464575017531110342089452508404631068950364546273837693213229803182172474261845243360354376363688052971678430639773103690518972682394623455981492694410636941291074829821918186267210226051009776342319022598129471517996697340747409931071530404607393095570811116972864537242270995021116890328954665428923232170158316397296356125490371029917494094495037981471417368319034565510051595119201846430483238252152765322339581554723283285140140427533133699303843147532713765486091290544531701863032181077007295368412545610619124858241192702426288596846807901578181665996027707281995763539781040751659115338161522226266101757627182290193725672561795306163665927089844890794499912501444920922351665758639679319360956949447851996883743158078427459228765857470434746848834625091415429487430242395379256061678721833414278111078720627631444548737285023223617095022853462251776884145800349891597332188915523992106561495725979606501608483677411711790262548951336747042842568536116180345687630645863679823572948744281058372453228140075512430058160439633502749299809716213869576698383317277116895984478854009694795849960021383390301175113611903844871143652004830160349241720007859205084366799388729117575907216047561652877123549482231006567563389680544083077425010463242018365283822408858166679537413501243964002995622655670880066657043313460442513252810601990885115825677784551076648246505489311191091490319750355520084574955071289390054046784021226643492600949816729494380475696248170351602656696274463440702990589715087063920836426195355134262677721763584773449838632980723853557618190996551078460268095778993315589230160111170270889282811933291467299135244705971628442808486216873775026036719364224006395723027692263413690695421470045255980378301734752942672765676723047536660433465929327534827796820689549090014661781038762165319421207430671987287574290240906372644543102335767568729851484847285761795537813869951854399866071994401853738928282167178194716552753647124433010205471224879857965790244611681211874532415065067924727772254253170923330264096290722946581453707684962700930661054578343644934234163035700020446078251931836679225477457208363425093100624416435648477220143509651891734050699365687193718269358778427560103201858676396839138564967611782868132179103029478743531948771522564310452679213968098314792028843894020883125908171970065717812227936480234995246839455065825209945769462562757814355499713892843876338325618465570756386757938309123377797377057561331999513723874242081821365356654030643983562318116403945430768723823449596519151631696212907679175122665715570103201426842831424245477951996053523161711487170607385061147981173109613088856694514911173913658756484571079296910454407810516725438648036631343652705129094480787487487167850297163110355677935778369692399940947521643408059497468485467903568271271621654666600438221310189519879746545982400932513827378885414996837072891564268740796544750959925235385767691978968672502562756017061278315616312890634152178954364280062270428471916396772654434663276928564057948619462054083260667364045764569032048578878723448086862402363347166273046569697394700781152190764345408632371917818830375490365290190207410377974424519218218421205828251981740468138586881777037193533671885311831865706621773348776111604438541570421388773170350654211510878261170911085363687330971649841892762277793202307503986670022766048311460623143700194080265507253445385302915470378098640799671871887055234256582776586330983337060071073028602751198946459499737489054904599681067741814198355398600406114302142833733921928621183999899613384369886942548842909782249308759537654640786318952496567143652845417031722833106918500871712832462093890892295000824984011510716804035500222912556836291998244167207172806233564868475376039107767234459161638450094448487445748042005173981369878398993058184440546064130781206732748507842305727796153643750423997587411193527134095103900287404734473601102652632258046037789270013723616275700523172518654406845953327253563019989830901438957358611547360592622049538113749289668400849096853406422820223554869342562731134850578916825473579482655070213310137144012607827421360830368672991005001759893033003903039038948288142882425125721632625175987632796205582945835717076518066216801687462956568434480029005913607669255343379542771540119563660856222287335015790741588513985567481300528964753319548440243066486599432273617249369050304372227573809335032136978234868975763690769014421002398738736012690394336124190003868659088060618566047979567488008173568860148099918566049088123336013223691378565931298546242515192450311535598686948545568429306097404512192658171696496386510147483853208084053134971079601678221133896220843720760128584849685516269237968867499752886443002537034254949177342931670285744573260320847436817508617004128415760984298378132152394505833294071266126186574357351456839509108703181182128479785505889958751245124882058420512172824585341545103812936610755107308689478586899665537667625134092155930159182805994562380193704712949434639889950642034600681642221405477526337514387150079264801594324871427616718436913296477811480481255391136951256320179240954638387374221844911450850406521874777251185568692244128105927067983304149392015810487968686079020497023862675793139419234922426695049293840483182206280438436662345906376256179941543182662176654992172461009055827057451879388093318492266714409794857646165177471589642229681568177155067020298989206893164379032052442653154555686874151241251000448683971550259308350851022111827290651379127169701473130125619748559224558596358784743908874518491390720092091931964187746274317124997977380932008076898274024343702592191692306161728591550570034015585002781533792178296778821915950390021074099892394635927511687143464521772953675366255940135984305354456901516429835991774011937697586742125117222811816866561857968937477626305045333386101181404367239495475377448359299487993986097128475554204229903959821787642385121363790788881729944704113077643490748279049615758100439273195591229065204383323665168768159538204433483616721110895578130302605989941181344131551596452270907620329951679560278513438544492288321070654349809982468590503592831626280170559881408143058636917025043387315530656718976681668944490041523412533169920479205075305026742424060695466144260859489143219956698224106744336689775308057524948593242850007101605566724228898983803905335011005232528333285646665013982379294493873092105122292992750352249441318834534952967220108189200457173520082167710315409864055823167189873550426138707841114513391933060887330308957901001419635469700116874444787058807614614465397118587071599676383636403712395715321094628138405159041698722231564488536040143871519871438510298608716002247072917041265721404808141527943709059281048269199085869272531659040764858691271870879869779762566028316171823606835904261848057514637613946958998316843847876381802389953671097747874339678157858730739941058481422910616417865278858807743607974968165124443001547762247580615084032608691017724588187209890206466684231673260571605797098913755028919957550616563307791234817767251841066148661103551471007079621129310662838660927083662322560440781226528037223658689836681495383133200446364885316342270183765262653056123931933762303117639941565095258911624908478753284491507540825451302081894143984649605518631589450127920569261390548622631498911117210028029428176583443532270280215915326647129246865092278541165055667506124038676160457038638915185403307433424359148823769704189603659980191352471150563246389229239476082440445362084891921675705027906666633501046104243873755087917481408994860123124881750060558065526524666627195513698984562274941172490085132926625377594052172555726326355203363022822522747895892775366058297614943315940410223589233889780379456743572575636425860225795231711633226309963082804205251561197899210308832902099197084324502643476072823017056008180364450635517251340716112244133457032056204691284425655381157473553116008768109091693627157982810912000025328042273329819580259741593153515358142280615606759701015024816521371213941748398975450215079675664947445993152929583028846536198269062097652633093083080633872142748420882487819899129691727096013549421291150982484487236997641856259507328467960515639289516318756345388311019218815152079861118553246163187273400347723180313954533684765197795877866989905863834511398459641011722411769231780357230429207792075850305632485557750560759177640622010717326327506070101431073695505845844482934937903175315566679535335440023894810338051539958566328020062054977068158279600435055058924198899113508310893956279880489418072719595322638406668544666537231797706033560947097185635332166662790489716141292580181524870314454965577717148538516490070573479162220872043375298560077506363283760313088261050494119418332570354272167622758062891673236585599725291321631950204914026623655999629410139407783222972665986200912413999187963623978029803569966834979211236019002611712191485999258650839296915520601928828700907709047042140988746089113520129682518976995632788069865048526313644453784863460996410937626699763848894650381759937086317800536690951276045516087422517654406063913691271698140802625490424022664488103684935343824312386520051968365207247064129454155078156556906178404241227128257596252910302927501362172912358487643555849575669468903868187654611009382353319964983729511930185100030727048518438361514327101311935936239424899074213181881916385253391245997232848733208248290711134306596596746261802143991416357879672983361823871480821243692824858630193003416241536041247821021790565163721016726150900450228652268555402390422791449646877390779122119147499671588432464719075876871639543195777544955029452132448400489480059188078571102625023038962162169698321361783904426364614801017465837271839440508697435031121450387341726746931073292287845999487146872087702548272954331250195067749998998104273184539874515981622004947338080858185270050888178074399150656588640029127976384670435034424299529586511621755664321004767253865983097701280464573125388856010508186699913373472250046228259849203096181862582326534343865285808467821794027233522616943090781792496733864946373533232708711517238369866624156367953902390534852064210759438736691345974937425280792163896795806172529115167530419070031039476302287577550946719810475805484697583996416180887807662921201729291190147271402032501490121465283696119848881596688583721344185582586987848971740301547949841402194521364509279448729041863054903411456542427990134707280779037886260842735849123697113539054121484539631902074956850124928452264584565697332467161953304302778547927038695912034711465187184437806621795157185010462061531429616094370439749359899207360862228185612141238516319050225052940682243251464817907850472864443342479215368325894268007902952986756389577143082940396867676096804466918592020087151999223785773394911176745727733136657770213914126295535616801820173227185149958006797612995697351873664237735770768537791486322277073680028331418523637359558176571907877487481592736802550571053619126265440373844141355664433353425388245505343056347558481444788531042053672211524466310306830927719273260255156004118171917183502763605271719987158902273171731202832426947447245234101667186614784506482772881252009005731461240314838651251715227374752074788738402962308282115707916379728439093253759300295859443399351832984862294047324637879561578964786231303771760377937671674951867425792298569148330492300640873798997653468176384860206854462564661450872907091487903501293013625339416444614830909329091993961197002843019971053560523015907516469756916924928734367631186477934288968371309447897268116044846397286962293500630558224872624333409305869729331716652391334445873528516798373421541902265847538479986709440705652445029694053528087618170112196353245686878454251931663006030260874940331622415988919989325402733345158348196363890161247462430436128172142011288671792916101796807769562716457453997326222585418145736061221433829156567698324487671500183142600260705896002963934914655638202598910406149730036723397539102051071436952408605106764255169588079046507645902349296855711383039565349438241262527911485719094994612184995384977255020494614567453600519782233405439636607782108959062312052931586775232308561235679205890561122567616875351929767413640333786771062939523055654595510156990684382346000786094838674163184663291209606341977132064706668325309709522417538371521156741208731678640458204905426677425295078977612333248116979069936161162582645526267105017350700588468838497942418871909854110931342058436622090724456905390051662350224865413477179436453053740127807478669265785446057662558984197400855502277535184415973711873065166543570756229185043758573008504712899174902593838623436900065976110212123084134498973913780701310547244186733040375120185090465420479468447818216609585923962223031538605627680456716268172275084342441852861984984508656006669653582423147948444800876389790927048941499875174011066022876244526685018147836897373717945096064506725418731524335812617276303235156095332984196488415816918226130079112138645227199636277920713763289084166981225502893563538230650912711459951888901928477288913712292615543765302289854084884179895292963664620839946050978464025800569471871569931730440609748783546078619015573150607516806950730281199585903910100400845741340746837112069362230992065692501575280588893809729685857766124185283594889542638124274976652482571919186906893611196778364882172078169116081274060710573545569048095928677799445235484664091836436833580475605908409823950394923837834064105598035223473380374853671720479150260025752832505496065392646376372330554954159065388524326677229166403404500605091354159534680103556712450639121940939237070299507420637182332956769859684028323759763191300540723509600167972172045211439440081410898765619025022189516300917141798518805820852031893450205150192654203177351329626131056388534343853104570916046836581483057195259464179401835621527553020638821871015318004438471858014880730364890542977557522327349431989879015583330725094524393378449849115224375061114667282271397875813427977493038816466216965860612403449077727872091920174762253825728885274353331024159974857124525896563332576747502815369709254167762340794867766897506973870283972386082644879434164791379717381770001258783760036859125089491746971223593596513416190566862057468233688674760207409629328973582830138681779573636212632128939692549768526566177068692235176506950932864303327278741659875519756838257197691677906655167748267782714624865864280890848729041725880970766295291524641391617950718624977687448854507644514322673714875923508520655326997904156738735516924573120783795242338441106707571122193673583512623528106407204041992749211711988061440606329786779945579464332034340919961637588194690386254118769904356197423734195356266337623118905152361092525766679260827996754935649486349419187305219463319859929438017870772311428804444031093269054384159191513554468558343445027882027247069112499624467289928739521376802729475841335043220147961170153539587272234947972365023205185007992354016866702216167121705381981596484989445588785519827930573429722688982768104863072487991484699907978706351581576923554660616880105254206060156788735702517428636457789584906094181630705079822006652164278976276950903243399430484061915818645032649549563227353921911470441889399998161267101799982472166268212309634101643086594450971635743700441083304569171426223763034642099952394656098796475258177296113732611889330176756196371112936409654021647730612340946146602192757791752410044209528568096703497312909326785478865970098357287650958236135542361628162874867396056941741515329203303654986583679656898394989776458828623099264625645425379730841490652269592022043416519073781856050863722075488690128326937033533753221454810845426443024030089375455782889908957745983702969132210641910913312002759734535547141296812814344473271593463974239417033438114827502163442260199518355686408323617777380782038035098996921842345321780326735836850988851659992213692633346926141394571553321719246166225150578574600090318585940509173777555734465780447717070968507281420745550420391363594361191564415854702744667583505387869462945381234031067949855710136184910172864627355041819487655428590937919640082796582862718974182588554822240314848974497378731827806787460537762566711482780126298474953848481170592308709114065186574557063337109238092086343005979765955997453034920526848739613216769744129133556387877691462238829499605362432642389227430294046117830296659969713907087667012628381847199298470493290216911242540664370729197987725512018544090721676014940145624187949686049853391631321186092108536525565447906499616048521180118542271437743110244635287831221225632697758220103024681080658018905080715419180196893469767725312356536832393206192948599089243160565873773011988008336773838637553696799747083984213919258235143328085114871749232177918979249428598062304014768475696729341946190425678025184797152126016783590145694081944950785851484805219321936846002496756670761911284015912832857870861459447759373560110214703267480688254997977261172036070131086362251676049084621570992796809816819716769113425957415120251655680712186581980780645862286060373385980237798436804318507213724340685626832320611557683609739627718539145229694864654162495166931252381797244291042425224015054682414303532220623774248882751055242026090670265209283191603202817078506116888870699260163191611779376607428310364027596756049160552809160521002166140391588269516256610202135627367752262898146232928707543222188460856315694196409181869302008373688509538892214032110479395692874699753506076663653199203409625194394266422393118810594725913625074200802240002096244567891355730061348905114361020998448262430380851542631564975304648760813205074524567593262276277201807810779730792974899174756654770863119366090822378246634846895128633426531422394380187070519672060082164371263037845546950755015513431101217846158432754257874206048943736672184564894979458820256612747755034105923358670687865020852476394127275238507989928399932148550281494036028833445692573880434976914908194477041163810361090709762850584791669371539871805043535490427287741962604769348676223861678785882775141664437685654328987670614390756259808088191170580866542826166162537035342440801532967948546221895864370927491503800346715104893539057559935087519663609216037438940663676617357413202931599542395093738605956986416808042600741241843271220744762023936185335937340310536274736893055643443090185271359274659524702316020301558567639892497221771689092654358747518856743652809690364183736611627253985147112648848402447633415873150074013137826748096345268832080969325211624353733407375704011986444358566530258588590550761323502707818644064311660969476569800853395234475030928344017793666740265220836581422078669858246250063175700869405585280786112194677565205590649424756624622880021029190346622663367323563888355462328185989034973625468841938196067241642673005204368900679560828778682011507208370436671000941412157642298733740529385805802550842089064392636976732027769545449592393992568162984203049791516347489234835324874103430871616247129290099895662610659780903959249266352585075155270049266517097993210269828657562361699054491534537479671392818184186330218211242836602144944913327518489814322503787796612088218775345877642176463536584723598146489289329348429026303493763846767439954729817650567029373192157631580564945256519941836751299658336341435052836502261091911126085078158059890761064311277287440315996969162139057464596199265490542261854556382089656010762396171787067057417034466196165479387337339832726434255127861582433234114766285113237738040468249653242174836848923752592866781856873013793329422855489004671068220657853217967357723604645901554019111538632192408253005767274807745886774838528316968838380023783066650870214248635908732487463289503798849046561411960953162356787973214754849855013415469730520214279404208319660033111368247353502232200156910652649753912092469116324530007397196360300882674799227848029552201283907243010711639644463630888938714633205587530214630519373080658973216214082672075294356581911917639236702487922955798944591928838480320793054849708514186037428160373882434257980842183134037227646638668162336329088682174238591879807420134076334203398284054078919154170552506775699437220779405258227004600180955905648139339501544810023165804956506393590130034894947261913201064920521712106841127397043320944661549889318236400371964509220982383127806408316474317507245312775335709132006378585513815291208924370658875931489910197488250858005218591538494053913543860338448462129083004357717725648943135824150515913714297521675442514007859447887361632174288364589403629140387381872344117223830742334109305413720142688011252242241644978388524681201449556428565527118478628717555939024970987115526578554641989346908753242728728858962869408993493571156770430490458712384168386405109544885417183930480519941896902607923765924163813627405376050323243308615436065543748288041566593224731907475620491006719493130919608562026975135679521433890925428226956357567824300576743732615218272708071808955201233195517381425935237034770948494440190583854461467388372969959270471886412703578204655719217073121499797070360093342037925374157546579605335011783306872816617962599430529539093312608845453067642840398897876624481786930945794358718341442460168136158658828475088913866132568784634477326593896601171183214023093820855281470801159709996163073399131350567716062419991554889627552179396056550304888749497111231594270468296224316995728588860759868462668964817916550353003452580702480723469278843055631884679776160155892766408151998563977787573327321394452648095177367466839709490065877180079520239154474545770620821459954703084877143502502003981667333402124786680742670318923684699199045888419567601448925649172741266708270677401231001113815366730029919532279037364824990572285355088344115129761005315888044120770295410601493266016036276496074923702411928314558475861330902303945470427410213910446948520619339292979681759906855078000376321486749072195610719032507967465396944557321412858876598690132159763802099360204156368779919376494419384203790177274473176776723990799454920733641756082870634348674153401204857464050857218465136774951932150132869251897722788734313295908063135796797122735539821649090445876233834188641545592002468087894704060289983461223248018881258421595548200434219061451885604855900139199824998958805727541129993224287001999587545717734377940996165018259593426304625476098490497645399128974117192341542254028544885517683017690253734984690822539644362606318877161732943475748428638815037916148494966716624144053039719475182170423740810647690011774494195734179711481696115446828049142347875134210510622937687737118241724946328664861676992526146804571227040803690547636782273510187691691726813667844330490139943084675379970421722379282243731236386172508717879038562039650439258894335110261565595944690621153012089028277105100659742337884131657978957229608521857353747230661129177513544262661389076745066804565780062786783962267010010757367102457963738916531478996706441291411406770587476672939230677103738043580302129287257897416879765442014517076251236407054198602928141069874301367969102509202498450962220420972490403301479691246058084005033641996131457312561664751688910067950181375459558598993068629546299444137077320784962472421494418614317738481762518936650697917179030299969776969799706949582234821024496575332149522909799139723404459693096553257630394552098686796517489799646706644023251930648486419496859438644717087599752907489880902259556501536474071746126838125885151206974511920786895673128814285596980470142070213982952547172083684112022428967467433165267231395430061112786855381035974247226303995869641932700869382812604054413705857921953325433126995331812498181792242583945535319305849628365045851736908262674833650100794851281817437831395072633912857400806580005007269606481419108046030034509315917017299089938638211698712575476659710389059899151688804764121576769898143607081432163518068401916355063756879954855344956015162649165206924712767875407527230400329000065628553409052735103067587932771388146691772063527510630681648653141628339793007718800551349169880141719105236735822092019984539281467817388040332111956775364399271772850437030462070131159737675690368881981030391849154768836873798043421954521328677252824503347195766844835823342652334316845925675911506981280531423492934769815321538207306577999898418653702071245278193413696848788974131172278553498182874222385112112251249072101011999836603653228117077507478978333270062610652692912580811946086813701872509292743294128940147741889196500842888951339025894145019797291588605361639891020169642222683428465696103038875317615904471643409748077447634874810409045284361098216568384138391770091057952991690516437696599707306970604234871577071091968420304169827937335182235570196311581565255153667920487005794797148429270728442138865627451381447546892645483759985042275672470402063400785302531827271655930213773817426508945831511573978423228372536695526120851123683505940342902733194885992515632699815296046371899210971109737370823090483615081764108408190397829965538534519426684483553683724908590965452972986532488256430657622383901479817375323927313618456414166117145422566735023112925476787336498286556549595767492269636135337592560764010036734444521388868898301706638224096325393851218583493563096815744319829558942927057578821292222441090998170737719522806506083626013481320580000417070187979514456657902555810955512677469440898730179784204484296290604296822462599573200623854388296569307485942730576851762931526453018314070598175521584241561828998675218606877211927557708845068431430300439289997238329887225173728774369112636060269055011626043369005445418095729758912232895180372797516046050945512930758522815035986586060106298919629289772252667252790126439431990800118248594355483337255504362304155470820479312552843038307321727373113483714736992551244685222431074102992008945421069534257168949384320146917428468710626980466061779197441678412288507778222559420270834728102302581205283014549077462806239359544827280844949174455729305975612064514129175489071413801378902966841027943492060726183579116104629058361662140172953802755380299539971236841657714124032049461487975059709902328601043753356849025364166575639395098216513239450730405495641605840240481570362094290669926202598211387876452759582101885106905734598467489128564784992203270079618802573886936938208480027483784597972601661198801425605822407772599463859589201427895229614150599906297498631558289930969431672158651796231391153570572047783746939817846092549232492633555009254973854190543017015460478733584251186141986059011213042712256069218156175283822796789293374945275185346762821072093064539941957807381320039510752993656243301067480975339539479763130224585812562035089177732462697891718060257802654260803181342222037211520976539676726003739396549843019996779000248957672664655114660054205450086087140151996653402327820022001555861680147932466792158853654126671743661257602493928667737188462378051550777939471193232690510102636926851194561599504740788167574340873762367602435473497963179296478777634319093091952773781078448379070601573704090222293216339788347554249032776036412637071044252683016564835099788623625894690341373948136915091211032259782826831451782397230579140679501047124424142343573714387080437872122238444996424228760969757075284227787313705083062033517315456303107994721169387475242159962345180372217615514405078974666139464371848173101065779312906667189373137162618124098246193049526192963229099566655161368128402074500746554796896739741880159950256295167712037172120214649937838595054773852614223161584470336077672140023161942324970732752742323935468173048216422483944086175908664158029925627373261776266604328393725015576518194877754212234957179141268681778149714953137272940903858576610826441816635393937005679519029506234777435963469425250416926652235873228101407226103962849099607674654558203450261654169924455783588316911398994658315826403920109208370768282948671785663817672044838145519797338226374743952971788928856299179340404444314561906040441547827560974546474988065065768613283646114776941201455731425692665204095260127194740927396832659858917936444169457551184872578747477857972686158718896140263399525531212688831022746148528682819845283615866294616552670001189726993506255681323784126275466585769650858884839062383492867397045098855313136826638943346533983489988247053950619630892824398976582097241562885975548953128176654599926540242443588011860640578324828830299575218685840558938135201880472914063490574823894169812692960286560769906650935920679362371973120013959158269671241272199562324877341841543698209958935815749707924659542943733440444063454254767570888143216925910975519087919870891720160808990962324116501038305971792609115904277771070563109012209791839491043176447376201171972265139499743186146844771475283443888861541588867085785315407398746339647877822073997958516229969808378205519764160460898405097430718180244034157063968073988290329246014202149299219658802597986534835574367218835734120308012846086290326145497767304684940738524414742554281459694145823184907774917450521215442406798824195184755804813966776807678404225246729767862508403619270848710274957763939572873953875073337249835298916973130469895159182327419795967052001164281224945871849451341244458957256153849965716402329485181119098694686679914877664943223978146260471539033587342563166727095875006567291612017775137816327565743464102528075667582627562621888864275676612405342308355655835328243798081738486007051143146455574095619966184978332574395949838953509537687783799973273513754262257722029450388565409536985392239522753280690304220049618822263068309938321794489499365683977758300861108938741358320499275970790459231058422478973216318822887506289115810730654589048349285549134726339975911680561956624352887008769298713241143889336305600480232971777352771030758372329618060676799727110116531073210772584632984735729866738885051831993460593379854375234904982160651502599235876477405622255359915337036441065301174859726708239215879444939895941722146080603113260626168415213497049470274983630616030391887388794850934488434155651181309387825375077959298617234349437324128850027251067379625167003651613805550879377892359910954938325474781386981187478338829588606159370581569799331843699159770582188442263803144001331089348625315211103663664690151632626775273511629163385382848875706285271023619790407170147644500520804627329818393609524674910212152165935319875112737003920521575211513607472991766852042125173065504475085992462070212380691188212859930382398303031727982182635234933524511760546983449986027361706803500996148711604446312807310676143902260869868001102177323924279475093317378241379011612093891117006189325130895770769230099829908328678094038715236123117179541014974165687475819927896368952696045369104909875478565504163350211630886515044618313214038216674288408033353080300516386529242067305456665570449654420281336908912064873266655296599205242063918462781105938605731746687243800275383921326310959899350712684722060037225844048956259250018800231564624506193175490612865806902095606761077538775907579850817279579926217326175329636489150917557231704190628416642773267236956391938034039768087174267680140916249606711250613191907155893981086224569496892694489774511612090713642595796719852049369149212952022108855742699262055736673899986536383142387146595436026858740166464922796074161300745449611652415519375579260890298091416823349337318533258122700326750503185377072099309915176372173511732519375457949451670905177282773142126502950137501770902067441690043366256073116652617259682904975610330292233316931600067205900671056420108032656017823579533072383958727449620044993423279644006294403076332172292475971762849480004678947252903207847769024958513503795392723877006292280118681709285893913217219372423831660374160244445189237611847409838316843707458277149263077187661241802981222009766107814236738495709901719700807182702743100414901362847795944780244444894644214013494068099733730937064726653794314191633925769506861532358957190419048566380987371316814180392644518661407028090554966659122029311146785635452635331155478818720034340410592598718420188083028979729393019263379200534274011346846007527025490371938340554647908322247168089656271816799167576030358668702861098742572229114468079156334142902165992261309714228845987952400289041760703281468025389179386593964951320158745925521617157200344739071753290039880377875556811555047572948311474738194383904281754509821764510392449551868951340207755155987871329764539916383067976380813661602145361801137277709541167458722394514680217992228919282823227591312099701236501398270157348926210150064441886386892437772011149101029189702258627746081503382336670976535193619101913390195862109369758421102704389017825553109293673532390425047740358921459771210485641261122908846580709762582164411091161598992643096622580693088005597857922324560143515595315685147701393586541638633084516195500382409098900985558372135409219556109461521802931135046485364609775345453877139740285395154539280852685362373644179414086997183000346405197356473449187545046111118652823170508729563896076985448354610691309708905820063182933492822174985794321069924244425451589881207216410530592054649304020329085105016503599238732859856674012609556921239489110280413841485755293433286198861193735815394910319639827603536835262447836684155776317718426491386279302216484636021573088704334055574213502510466679644398697948038439210582877358315996226669671471046010640848109308271443670659792175155048599798978502817671669046553667868986468078382946210876864849022082954347639314480741185772997333248010473403986622392112975159287949766069982859990607597390802259214915073154895042583638089809401692735341853175765227914802905732813415831819583649473057836048719238301008180593518761611811403249750852503124816376358181951591094675473187293905945056876992874251647939560108859815938183083123686151475043757519974546962207388060335181648939520093279877085134702865461865947153893750365967269326021765400068596321877330650764569018998316604556170426708261069207227185218014000654511725785990320391888290020851483155503325117577505575900889280548144620640925594594935647683795425192305195065224890829901557329872319455112363169827178079844787297420637683188954595459199536274395158777681751411348550216856379292524417377608528373522421721055555056352258107949597468118944093615607434791191647375878877591426648994049318701951453269708413003854308841672272501105309571919012280864299956423386924280774536413627158481038358213322530565856907514263065958479599421582207559200187023720052101950785096956680533024925944382669408862569705815279082015538218394691557846820900619080289753512757867295287923409819339211567116568095287457839823937530214444755931681529189521539482679070807482153939860270565992324616242907275527532660728000653161859790680918536298964290854261508286908471083303405392863385568142980195171600729501308235140784376346952983646181318246742290273664144173750293583772959526054834971564928474970474935264941768884921747121180959444110025179177933594421402937777984187816780381968880645743695434592044475792490940287492411031311594423721807820351469462191395400156636782292470309245588338018538706925498320338514685120577861287411179339879990149982986904960841937467752524590612968152964274853035039710978472918880511116343546268930840552191912075317185650118112197077277748462398840465381971723427610358923542167609567318214633109941949278411119408584513600196637345257380287514510229552873980930001240948398566786112483291732727496726070087699813104086429710509733130130057556226447499184693199387721486741921179037924128543938275726659640938377096251458158135236248802363722185130377613475494331957657309232715101583186474869708872692999041590183357016206314853264073191603595479307377640366123092090003230641880518870329748086220540327582206934792842893483463366577308596123422437289357934325094284568628608442067236856358262668374435794495658508013073257117809145958463408837799630648301348650891727241414065080602890409943244523920947234718113933668864139844840865564091188223051076043199229387497478242228991437597940201533827289830226128212046786033246007056541809042996072151044250433999472685881643913074027822951591790160858658719090117311202750154722012918757073965041290936088693014694972564682043778048509703505888691288541498218920103108488720667076732774291650493501653468680310623211724860103651862265364216296338111614592662364075415349353696121333701789657720858231944966210381343221660974856778881044411129645783230209180701443150870252114956903283716749589298238471531041823190114511754003329059987518628621706689018358806389270135387585676832605875920861780772910654517114832630741948522228366577881560585822990512920347383516357283216008605468431719679421708860809586076860457266433370998589229915578049100041702016783697303273344084098395162494868240914879640456467368917343006469603561449248911303253228637119534428504598105176756928472587929809523279474062719601233248316783565753799711379342685244244795147095077249775241591086261561773785741468927154949746111306658356957491193329425920637677037712082942141507210531671883058306774023191150648987585139082042178876326382253372215706264754366998910817616446102264838637498981629997329401533156188893132957282489837765637844445892289370934177701343127077181443195588668440681549355994846237946686790595072300081480480230485374537907512049054158286325044449155469910199180535870187988067528368403726652850575305603792867310344259548284190066342432401283658021755636645537867719381764894042139571219250010524891677495987613055646712882233387663726448965793652045812421493387455785127416805274781045419627023621127009893551728391675662658969493355425800022133284685574209027447749336221321187611534945503077528498491142878434188105523785834941522561642158356225112892172127126443985860726613035293427593866412695143945372186493467889516014071472584152479983785533344242583537962899577499004896565806687897711564372532187340508289692973699130475277936914035859060068963398378525358536101382785916551946445622817020980562409846186414231846369303907714831543520367045909696065392201831468743063070458557797012076680479361409959186736374965329719821415678569798559742938217864291719938367573354672496118988208315665759498938671221264046295518057645411278146978659198821610504009399234339941250462096710053438311917091054477181076132248612554538868993397672790796854178573638541055108595314414591854053185468137392496240086107492090482202364981577055399609717849292192311071529194959275292935134622921815553727122370042976635741117793713403631509676331224374857367525030616076664827575403443329804600896922691430476683725221972679398159568515697742489264530218830668078424682603027710203517271024207432805083272316254749993720465434588767300663327209021650917644804308196259791930940063724133947369392140296669723276092891250557039220989359944388748325789862448667907423972029466974331169324145810502502695451755378730807858561622032492357931017443629432532730972044042775034375102049219344767196002195664967106631085439626838680365557518354186622085889672292484812418921014728901781669082085426537297822854465496359315329173169508358588866124897378612049096119433752989872286963954284757262503021834981204440173227816523582518136586878822255332261627520380912330877236623054946696447820860902045095420268801754671043104595555102961531899396442905983881882287219944277459396036445583650650559039337567593646565575114406579865971488372446353544538244129920247423712973956562464531612360483560310061811129126616290112653381474258923683222106270482822732393525717591704638937132502016033480344640625305548945543115664676326826311877212825811541059744289393281804953908860193404248046671871251907866584249576142646772156769936282697634670471751649307977231148224583456074234553530814468335582312204492392569743302346678452012722905083084097333225310318794316293080843448113495475049552718769290500983204660717934687081975841710420265086298960120294612699388843461814540161248741788092417080198097502700307785191190719577727547749643918411222218405943914813904533006882160720459496912400662769069824227087370935063107854442682308289013413734248217258920510595053024929634348579075774178376721030978679217445828662572860098591800560305748995265872523569065242107683186044949416705489194466211740233671434964452659770186779536089659792475274152780325285626736245378372277857479964460272704963672500633233055355988336669974637211417018085046637130649207264849770435970281151286901135498704896197721046046283957886347320172700296730028571892887359495089659133027308233848696913600748892395041300872534266726920916976257231647149927281807462541158714717553640578931614091968999535698546480709561870868873588724283870526194867681175787723682871364276334119861987800524568465991454604421078598263860151165476903028256248423324574729221052445524973793190887011090152662602358800555340145900380637314116875159140575479413912018143024999726835318429136158492806974702222060898820079615810373235909818708256992880643588451290030312699489477010374576142499715225512051151839747411572448620811927715408788600192780502247644627434717262551037131822805403462328120795137993042640154757650038081534023049989501067396915054400826462905207039150781639090547647608400420638462224047050524138407216739059759669836340495813664151234178587870420832792699925311609409777562421521925757481668136127041196626767846282847469457062753422595711014940540046671997371245447919349656331168858680669205624067933458920530537459774047089021573189289596942682314767938628248740555453444831172650896232086253551002746074575941976094955709133936771429262589366304263403918660782053640601272163102133322951798685075365017879758200634356143297917398172411666004968996543948007435709938213358655541860265224938324767431715823466787663075129423905882088053064333148168562103244273359384499755749522484610748282639294877048425667088682966238919027226800435409410676773081365030465100345358907394038088768299038546820879581896965215518112430561728955561685010769681059731250135799169254070543773204420867432410645769709446221743181001040043801040999514780060818171541059448264721907459455068698930924030307519795192801061781875861503265445570239515859129703245757492420458006358129129603407058075971339205976070919079880872997638089560565791416800128354844091353867300560001074697610236328657559564447709223047471374147518144701635902026088078305024254155153878482766704361363674183854885827741778206919272093983438938775530376925462022350413952505700506303547869818883805061900673850826823828565539265063700183601748141134529872224213493952381343172957180851873079843902821315489994950006486179796506015310745670369487764657942097391168332023927550503082097565833361770639737115308940933303419369049370781665454181227803686183264940940558303687600097364871775434813505985388724573449165253370546783491971863044035853081237252604198115298081686754318576350698077204252241040943107837412118028067921969063937538952129168839737826002967014804816021541420075141294225031676862060334675756292710642721476499532855999505374783277295706175809032005296318646360123482369873954049549436205281002195590287295385796327980374519459496889374412747423999728311976123577078732783536615771549994105314749854435128407418343732588857233576011658540662546689009958202707677032193116354901815794111016535135217206738715984426543992860399169095559744558006413688734049728248076969213138218268266505370739390906754063021133345154983433164248663082668712865540939255717163102254296075477435286683087901418657439263234748399084170597600337374243786413586101619297574966621978812899968689513003906010432055461914344956780567937862315111632842939286732052932038712756802913654048048968756529778423445786713112199663056056931736469527757588850614547610203256807557103518268575506601034407697138416245851865441274977893363764888502672385712733604847730463927293641895570920474089807175020953733916052332816233496336121030521033403211098282904080795025919877452401683666030794260122066469284252438252422155165244436350690570936539745032813032222516997837531572338477285035925176243248437262724814454881594129458332391790759919236293837800876555167377198817495760620111344334251594768853384799898582321895849685151668038460102879232769132072441805683671710691640678419666037286369453572332209339092426693906737774116904484933061049894365670390777341709787122551390151228880727125592652997332505210611438838519203232058546008383175853049239594447342419434585383185060735023614329465836216098932955208805772795308845508704732772748642208918348623945935714605774677658749500274968742478903265273918171089036970599283664947922562894233386653957141353596729460423139598861801817311525822601241526293311328536773352147982729068044949841068873321873816489100886178195916794973312862729820720368138369089209678716338307094952805119356993890515045565668464618070772931469348802562474129868464810945369157530906221487099774620104195247164053055953316249934324882365368469399301608987159808173820829187885566915627347328440546831384408051010855351531692960160916543737543897734284829714534494431589639042434774992653770811011733824166121068674169374247299061215506750245790701087843374209081412664850574298983459161016055230612875344539995684076982221331265852494231011909744614580708966028661479576208425474380129266599213716100339370883784949663703352001377797608122034298368543327821544896842140549122819204222989633362763332744559887584752305985543957170972066786524707847511388766254722974253867181142998473777986144745887951902068562724715898118025270863343281951285907455432278305454047524696001376484418696988903606080166149026191988287576488378488336614910629677823886954352826543120476992363559701203023496778775558662396256675579141428958832600626391652457199707957420484034673290879873257352719347632681500669725171577084550777986062160713620909509671081466608982954874285777715352603754769547568297589460094144572876624440628190160490320500933335587562886055736990206781409682154177855803690482922334895079575409550654902015601318306925989955286877124713053124829761415763296164862478735597588995215888687102683380139978409106562372970747755085658611719272030437438153436950534141653665118903081516358715060346304778163632994595658856922539301174554202047239005253686507630739755615974642159101812716995517869511188148963572088847642879510361808249610876598214145708231449620754398043068992057023925996492048386885385836090494868670546018400305906326039962039194218785120931273726003064989686385891967337691211893176802460589701301979794895144122197851751071408861507506283442446073210293297151245447739592999823267784504198392087313017492468085823124318010486236764666380290541014681579825251841234962317280687038228149362849917698009101013763757086289866529008518654606031606062765507647887686611658236826370032118442657049892340819814175554879537500177544752126495082662502915796119175427144799595752497226755097445554070344651745729193742964727833367989614303726424384328383067510563964729691709411090255181610032341486616553252881622828697376601802632189896884964685508316325496309419808895770186947714066984301635270244975001999792079441996641637842266531262170939525485215589580759646176535620780628249786538107121783103375901310526951395835238015635819266879579742876215055114921282065424502427290909423738195315058485041362512437968305680050864886856238073125870146530826281790810982277978771422032028136190138816114421344793910740328781445567156924845917060200314475763612630569660184847375727106105373782317723662819057579614090890927010434714450058138486522916408402391655404336468465749008336352182042457618085105579384009248419379346661985610503851474474140565573834231977736525970934993989406016513955144238819354577227888305764958202814320010290595780065587441791065273516203016576202914906319436479090742836618647408852506955590324083106769528380205299884067810756934865528756778750857033133415343567857129642471389139897138667234689152237873959988129939251584696659010122506114840608739639336442538166163450461757686452201376933327460745233759305285061367880902076715041770614882611342130092428678847848357837423729415189831992409357945411349104184054243027103669551959830716734797148474802572876304446020758313524463823826676627104456800861801807101061055979069637224596727619135213522056212285283949769061442842844174625594081433553848921628227814747560827657921074530068411965753689452385991254107793035047002813208079757274797889580352004622883522275117545561583472693783616796271382372664368174837963824717397533737350942825012554260131650244577539142628203513330319597238541934148303436746244460841140943480532895748515350417844051141548526466150895424624210764232209193181447587505038458485088377605221794590377241023202493131719599384609524122971561062242726313964094977328077481179088182814854075204042542249636804532288009174026208979667266077796966258852450040516950721863976136218322030927579667812307914018611120513494300743332070844683302607684211633483588558305743161993927419372448182882049925918050891417847320264601556283699160669326884423775045424837623631676323915253929011010623772707303577485305669733283363098957386720917897147000107099632794141685119933567448034100822158553561314805380829484186915542703146295215053733106868521083099735077719170853157596076975021380449781969090649926504474062778328325245461620905689107189912292807605633248878705950171437411811078875175174480549490528283724628157174203098278894086672130058461823947728296709223132456978750662502107632719413145461109228496044237909349463993350131479102378497703471614498485595489308334867639667065108604874051193299383094965151427188441493938095410422225269569805134390126433047542712349577023848920293739303397082528197873882103700151909657746228980579366055506510125549931693988053691255972447263663572558608707873688055125226974345085856949220947353142668170142661756691952697971340625342586742715047258576668263820561188635776186578541977078840165250445858749780004418767420768549342965210202234395111352194908540676652400590113050817139638672418244435921790906247497336929624750126583840373432257056810569470547416422514559149644347142408618448556157188087259214450010794798868015639336956579400709580950578930595324596585532978977458464512524739012374026253739031791223214048538242493391294106221364243274315262422814806044810921706764958585331626098331187717327661910638698786003739788848776313844363442621962907005839200390863872658257662607302613996201283473986040633414670187289156170691559407986270728519147267094341834739814155278363129467689918547799641904224108987984517413016541553466216767772486683372759527911324751132885522635519869717955197530649845602019199614517294695170368587939270909328097896380909088640445900780755612555921276117111506213876769096083286056878218043772824500412795837190213944732848633242468409926858667914405081190554259046276518810430219449434299758397414521908688902328491234834592249032183554447931052889943592299351949812067767321009631073988049463245853215422015456234305043993303018473330569216737301032534559650245322313593278440907440823991878021773901483227832059433904297724734318875694619535502780893038244267997498765416895368357433362116929740455876526913095790185261097068299394404324790094957296887698606390153821081907850078379752938837396926671883322051252459387044886231873837809121206275802541329079497245243645513382819898388301648999335399036000595140886272526570832992538797582956860875368293620888277843161598406697328225782237424548588636636179084429343720014761633741272807089774066787408964888528012092304634820917240773481232341040460775327089274571170332489993051190119403326568959113754657917163542822490549962839913836199804592396695088800887147424177686568736937019267114286171122382496402345423159213270237353402831658135880070304503874772441818867579861809833163634664046061558833961911265286068363841244115858107502158545849018546524176606904873471063471765023712064026721364918933872749077134035954798851469791638114786866607281225915458481518858030190003983358393500681388751761261369348243603239880788920937635218815761952195249432132220811902182910900778477688585720651166032849344429116605758165401971894155394831761289769014855464002358565527728103334859364965228505276408690239520006013910298499154569335172463002836737623958717159967287749922079380204497021775085316127242246248536178149829203323073556771053226337992704132065008512344215949284832708315729662587689193306261663747612272950091807478096078949756530215115743177270434929904103978196267278588384220548346726474709838115949073382756480861614171515729479389124616149273561413684186044382724553775838383898585330895829198964968274742380245538574947999689728544963527088886986616392978241233141191101346875151404901022336922015683685989095398538672941350926317489900079771286940337875444451223620383452951727421384362359358189689609167519638824013864717617771845820264605317028647313137634354007191497343406359990058074580333276280580165514631407303704793359378814798845832770006312807830376807674206160587796734473371559873911661607424282023050510343158153966270775745648103673318642194370448954998408244708211164147997570949736165653016434388450371187926977804341539848250316844022271825572843801574871077807909612306075286391990080594010662328708664273416731864685689522033510972097624523639873654803188750471454751065147344015777858771490642198071043254787938261123394545384954655745888638143745251117025136875830617215454560849026843572611373540942024333011387611386415311258245739825052905332755729667905233433990065518082939441424980670999400404009693120890230312200067418361757917055102985906879924505449493056837186127619993955988314148834385379190014583449908176501079158172910375446318679901415780199761114656463741930275309289964170915767417288777544623044902830491387160950303454798492507619201085282436263165417306867770252251347293488239337425578805967029820157743202783737526683756339630466956297670217148090958916770413916194370052115829765927774233827978599723558852556650754998048909801707690818750078836891480134364032239208339891421325319693224478844111623671307924336951503963760625111919472695583894767238608402271129948639667649883888319108143298854166192276301362897055235365573633255854352060574921354488297366438758823115405342216166525216601424430765764683914190699654705133694877398734045559201990080846564140664591644213878099094549567341773141465750394382812140540231977218470819417670651442498096449133139134929808700395693066602223645215689940369104941000577420247295798507275975072179356267557369681969433318152179662379497573982267930605919202236236611387255627099035825563743355249839312481881849707503083740226791832589584332514713776229379249870139895556686921813166081461245668304139902916780302843729438139045618784360856222962230705426521911752998815334164609801409722166859612376898849765325430165226201950562798036243970794546125662091465241289945125008868239503141151480908545513545182496948273927820859521085341233625391266555665449474868177562584192226035381061897356392520944879248529828514823436445450300541253355499850960913344330218921377191398537713256715024521209202784862034550420979224758030033730129116831372810907497566280889233631958210744131856115166695186930958824456464792472971612373743608693150611495890028700965219015298302802178701034456522797540801880768219420466574957358842583659414201360608222771606855567522219688472481599787889027954766168542230949566262360625401987346971454599919383037972302997853040525265229810410072581789689526840427880804966299442151619732564626845545354032430228550152869953201351824139426281549279528455373983554023745064400425681876552504312284268562319115676636458740037546364087786419777287335186856635927489761410337920956499562679652264555020933911207276180103698094582895785598508503333711407962526660058166359361106921979230964358537486091198793869713180406037837750275415839794950136103934590142514077759473870214866056655531122884603176578196496774303623283959907317596815510167657362248011304243025132441243761559740373645931443831449331990540065670800887768253166967679762843226658547186234935320215723127164250754730947049290315402564858208227030711558872200012008265560095561063229347684282753181751575940682470908636180345722269095830248976791383782576416997848354149874963130117562428672283740699377336181486645098179436693826281973316726196538173628050181395078308057247571220201898085784052752849393919793348397139448911135469326733293775505315543986035070143139591514557726400611350838957767117408316899696103745093124363751881057190058896888674398250497264688836702176609738319907880417934305927707901467006457518253762953737508307712363374978207191826292783493638703094264748572356044448122129059208163063631265375701922233420003933015007967787051877547383193362707227092779157927752907534283023797163289481626940258157609429861206945819060116492050142716088394670339000685360526484518576006625414770367468642345633747682882483241057083719258265020600239194566643098490933700420588601605207454796050685411159862882764350133241145780174763947017547099174021236956354648387039111266008957988595813206853061857224920934899988653983395448533085077469817438064470826310319822806116138185883663828396104498658956204541690466628622470547661074411439523048630294015286280973850693565340344824708366858338397489108800751136109837896570270358943345890707437491502710777559779352121680358796270866704778887787727400311583988033618005391660357860903247449797031353870674386972491838023243204555341314763653548557639685971837588103834801827434985253944272713951564276975505337581652250118753864306136252494768434017722585261923356247629450098522248250753863572388927124936542336721036199439432739929804596775518330652380820228421108183731209063518283603276436675891055428357112800249785542379008087964041827969233614651385690121405754811013668718479468221683717036490560801566585657924009712793191791485518234014998226948133869431871526275195690584458885968128381242314602919954245192124447636853904189663084371223754575086170817302269723299478240009978647673790775970799894306329525228837463305729705469309640397004591481290665535155127269855117841941468136498920623033972813420505883247552908675873770551094572902866184253462167481189329048593860351478464546997052015000524738276667606448453063334166316122104622680399149698679478864925562322112624112327801247862890277816278036876965419570922728782592479268122089114157367900029976551966145474211455499785783798222467496982810899342550489301628230670122012708311393682646515509968155361449399129125880060050073095932655750211855711671163863346581257968507514994274784251831786472650836313415616733605822107527121786689740788720174090516843528332712495695931242955895296513807813224468083685522681100753113607887281812418353093191534541495496288831641951457403393053010851211602965535038632601400275986881646228213799814330387874797360945094405910574731474864644878983697681238463975015226903809467803033765699303863576912430797623722615896114669802484560360024952417934195510616508063193299701545178590283962192044424176978606755430782283269658880693989058057091563867386326875581488834294345692075091302650801090121697829505260791415117908441258136264979760899961966278800921151512273786547258670207372816989606543570458816637556876663420480635871476257410800995904854993212487546184507388639895522497249562046111410603788790800965130128574809837664712112383561206496863527747090687188676243581514545392266445069352425694747596445284292614433428392902479395528551071366317255347506541782026773673359049733365425040445674071030488028484187646644180670295003425523428674608374158031769444148686637857559865729499767833229248143860005893699321267005262684579095338205862762873470452267778128509838637487294927851771286947343603654077541399496564823541784356963567959732624503860747871726321038191115408907928065580430131817676481328035464951640182648715910773432714062531710516300729561847420253472854408316247027816092866785225156752691117852017587512810118584591157704556892570601096471528087120088020811449159922077084157313979178723035918908093327036606467073370500144175860368265396472642450535534196642162529441371382982476479625943231468920245717669515428877202682710771765770080674183208292445481138746198606998671599663569723624302200729553390102284515529076097242090343128362694830364779800014906669400560762810698115843317678020924980577106063326272427808010170561942952826666061202238890402861489709227512672371187623243174719093113097148739967437393918646048593482147672176039197545752446439807810595427081664015929842248927153097562936130371568232914853794325522585236434775508209591609723993459987664914298807280662574574070422140651165452161857768111573233169643514286973437497272191352552324525701581987673870702688433717813549953776135310189622147981115645536292711147922223055831694233431159357135795860434930172945974660177201865307447021318930519728270154504092823936782042573868938107233831066862859354759265171411240470738980379343338469020783129963379638858157728883495949537465710345472101773076381444805238314581170217224571171223361884069442673156252475380007355768883138719031617869175188149412099542661857875758703631669536353804310051878132025826260737679266471379621503033303737422925884575693868007480023763512856884493677753844028874693273762254117554142742848120863740948986533055019916388099903655300266703025022949748383632022930717692876042234592855012249947093286947796014337125285113653417716189466261533152527795920754761226243287578958460879141872975047956990907819753784314194213709739663816206209529184984970865017563677084860416606704723771302728596946811812209361356476335121521261548402394331263889062383514971957560455812566378290564444551845676251911643408748312602077394496712267957842748553873055685666240616621318597428764170619535810965730379208995258870170942341679984654898188895371887239503674788421344597810266927518681993560864517626024977058022524444320642128757564521328987130441863525185705887924133844910601044937914943892604645468134693624022582012542851524731955124761461230851463895263628959701559486719020701456189644685538314089516602791636062219646293332722375354094487007421702062662861783954787977489035412397345169943709713931104316132951998738976754982376592523145249419754632029418527204586533068783249585320257633384312584495339645643813949282610771819123858452133521557036414966135587829236575611451572908764528832129351430784308623617907054138219153237920834408168356339664044064379168558016388736887766288029428057907840686271035411025619241620354094312654629604835288067347921360330468269242129949648047264387366632016532133000540561685125952247841518085246213909390191220756100957577599182690067282796066135343180486339847445195677553193658982867896282861335606736009303330351867833748788607453847403955726830063130956400506144397923259265546781248626981224778781507919001708513640882058257533220562551687948450516812564563467555870554422133534223174934251564915163991642659196538524166075445110384883506453485394041593342219596064139865159089839060065922467252171360551165385537409135501824134652725017917851108945090288709990303204185263316532055661074204930003103325334136085874514232211157021657995955624403783642369153106797657113985521712205339221393346391036584851932424538043562106494645494795687021856330351030556244468557584567925700778901423579959732781176389250088758742034965820085579862371099039201926768357279985615439999906526732779859973095607442763273023849058171254280117310332732637785477595362144684073928209781328660051812179865252336310622883378345676454788378396857039209565582009015550062956210571007728242997443489053148674264008888688557149353883315296908582386422097690471712630223330162823785695287886877906316050511658903586316500139141178282335297109262869055796006563735916496765794355822209023577666235767122936913701099974498726426472339158785834710405191224991281602481478099895181002970474708216271232896677056227764883843046004910376479960842955911213531476021807137361535618381971407963335574966753459722302373457870408101839767435371531240212995120841470940297535863691153647415289857855908531808884091698406776727759687597886178482778117896893793754621927741881191871269822267420431075405933088704401708591651959775258322541569725866351785591468068582902711483458556850536727697934270520870377140209137532791223562270746996236385457619516831500256573711403390000909235387390876983013299243390128527463817402934574291823071602405992257592136736187718214743741533057296144031835676428227427023161580086902495548083901396997533259478289161679904273989496429565905738168105229632476943369147011649248844959877005434929505177120630069934100891696956694091112291896609256646712463643557049440106049581578256940782075516729972059314959791643356905002607111825681261580649888550191306675975839244275575616357298839491671987015102891520896139869252843570570869103535088148869413131316933750424545738654103200473486952729813128346690035913609261988438708329295204146328441907417664004315008622176854120150097289147001217754765156779726365501402802041328635227542993532488987310693218831720816004386773218148279665459543375588633561361560854091581900728618247857128769707178304701344547520865520650651844066623555718220972027416185917761822218097254143976199503626090689491769338942330009530423783476177164733999302840272857546763539670443259056785877905628037913908235583782429320679448143728878892261511022393376860269051846445334123632594109885428346230709224752057075461879795326006388280351250633113742096927092501302165891857961606934551920547055723939980551101739109276511523694530199471602552892133473097211151387023055292609623660389925876436955246802348682259547709996485815972892345933957320617025587602463167574799665285385488929147422578979805939967303599876107647274815245414762631045879814781419608922798898438364099992449719613069733352436552981818136162079521784777743063525330208920310832946129336265251667386031300221891923597837608144563826785973714824749063674826989659159457351333973574988371249417471589576799818474976444470454950103821073458663847386038180534838580427111340373475786232427964322155855057368158435105879543498076959690161644623070456621610241793551535307336433894549397696920886620954599023712324877879578999236631231959074075314637063271138470294850564628334285426286516291206740231018762643337970829342602175525673667296213450876995394365576289829807505956252494776543111286875062492493883727166086801381573550295333685196433994407498645712426782835965258642732480087890929353529279553250526578203623385126951206156510240376124316040129355443543079147144523865500578351324886321573648329365788473936922717035054590638791065415073084866121055676634057883212229918695671349978974630237969440708718024609251083516375021496222713662705204313061325942831133609199330920217539937506892864672001941761829962119228053527194633656753184942233647201925813867119981329321894189626503239066280816547634551645519607423012347340418870756303609887796556799594102253618816888168705675310075978884191620915051301594102610323131274887698581146809461686095026903354011219734407269543072029050364007466257000795894952975417226021135796477897815986014546649647286450446562733915528463750200329432264517827281922752955676072469557203479867631087566689215372128286700498538029860368628879094412875564581639029651504116540231345443564822893019416791777046307693798683701185498571860309933503120985074401900933625106412618393210703620017037644364871262647405767361629668693551820733537053636779583403414656541727500908859431387916405237405262758361441208500910749952780977981591588868293022159628708427903017067038027862391176782548799966869008546962519743852849563286889976808793198657911203702971542642668163409312030670221496449165871437486289345901062724974138459974585104875170341537404789436316123118473173930245474416683376220864690228767843804305150942738085220857954763505052524731743992438183763540229370763176897592378829139533108175710363006382717599357665583350216744758981134034101295515332113448516495839408459163642811895223111991428185369567269774366035545707186878223957874887221491472167815611885178338097493029261578499362309006049339682618831364666119758655912883075594936859218291700828809036097782303051249636746086436318669371890295350417402327253980023342907524264235669442359988060765823449028040877576634627782087536481776840314605722505260896760986281609891187501396072165924776047418068866444168317181426117982643285461975869979611295465960326315477130592801979766000115833058700680254205472298480587143705219188614219503257650303981466457744308541100606949503168228618990163151876096627227001813361656232155509765754685038435936649336977834761301540289463218181076860907969380499946383112134979232230818573156307058478071041335609450206428070821591331348817412645733890134277890705481131961566476985657209610350802737680205427555811032483652996222091121343011629473091966553223399955399488839884038449501626832791156586998510146560027905029392810318777166769646392706019855930116470428396765489537037012977501083802659771253147783391552026159430098284171935800085563220806611442755652525680375845580125741598626392192637472947131052290113546031811987247671257530823192213406288140204974698912841064525621384581071437533033250721606741318420182568285278394718896962810652801285466317432853262255655428501579233906056239119027363151427329105271926974024739266561281513641414803216519771004850654555219954816015699910777254597955074654333197138669522408465130175704230703653269209173436283495470119213780203991971482696422230510587943411267629782541170719044906652264779925730433242989212048607050401755005733896597596183215585832014687887724131289213544050280784917979410513542692231860024680521334900394753735179366935198778212952484579832803053384342829448619939615071923688604191381495842221188737543677802494728063974877030836972079835699581382107441353759416435162854054986066777822452537156091657497324553224091433018592324961730168485631018759798095638988612656752145809828755750887482902308355079936147346157800638038999541664524829264203737393056707928755424067081754352349859462428580826470806077782783694814817605203724935865898866189667720588944617564784159581445857515755475412800096447882953171652440871902931161085871760710860068128887260193827297621313850892419922390189907279194521566405343840678493390873912303159910998044043247416152577441860202532594346376538460399785851789924832649933842872743486800334872041343397424647315208099528388767331902154555999389118065245732225525365467945528968877776752166559002968729418249981935725789773368136762395757946636001505142408727887786402564014929435105160374120489662131233949700987978037185970320001661785739953465081298685036089509121130533115758020065930146666376797725055878089979844420860198920658431026250025448455399005336798233584999980076487042883456080083193753601082341439056370872679850947686901004124698384343926776100453523473548924194361574472604986054490956224425730762359217555235475854188183226129646679635438562512809817914014581271463842869845919250632408986434846032109403860841417790441041567278798054444944184908638851876724920273621922463148067206684550589019818745301357395425350202212745169953514983010480777828467630037682908963205381926356604314721931167615017181782890961104319130792599399292670083269932822940112071109708141627971504048520119314780284059895422508472934236170172332681964792376425596345413151148801295284041152816814995522479154836708833762917326610521315846375780466120531048739476763472223109378510175087677407082250546630003842402977455603280948149270933592668497515077320201120822762428543364471950256787472405286851383573122321728019472044439678741091969019687416535211603461564339214154765676202675588895654155143639811319401239178598993084039793374410427442698192997347852479844665350649383595439715282702214453949498440377019219741098975964763139459337920877077683937272385087862080422313467967606388672931910839768444744824353688494744890464617703531215460864367022084501534189082557476950232984878647667519901284617830568802625483691625575153371734603982467273392562293458939491021017211478741843059944974870200146636643859924077955207513863297503596597818198598225481400122386780888848850024121401775904882731752784206068926721037359279632624460657370431992357476644803588529412581821350046661638282194479058840568242591527231135741845603448805593809517414432970625713866612602902026951747522638919800688551869121918278779405197227561428682859872371182884124480926539405703284479250179657456092661603132010301581075596339058616650577129056581113521620468337690585956613983064353548080634179554021817140079082546634605944782449017391576701018490685743777480712880751905108930632507764530967493283024023143402502786852865767267268361222347824985540290944768629109008574347235036496538623724645225434328072454795988727093090033096364005102938689118467528499630498425997683352209431772028411962358869994299853092505746174965316292950355982558628156016120503645596166519203918580952887228929038123309378867365585652713834528052567904960142467347890347276958815943841190085602341699312907910450160623314311711179949484317700269390420483195133595397589157816315221086225390626787053344939880044318508523652942083782196445030633711474487244038910659786856896040707079332852027608647762619588019791510320038712896714528388055123558872266605262755979379440830966491064753656441412288470378462523383149913068595440037753751868809058961911779552739650620489611263289399737681908521491722996703065985094235455587667397880444751993625748241570622201770261999317500536226602994724533158098993286697141646580913892268807860073809238539927680720555741038205422433736225654813340968514645029159061391259141387282502841048290441903650063445641888907870485142488397662239702401806907941618411186065906873508009205787109440586041183727136556402687419478288459176584158681107165302212057554652439060581186298967840532821300164512635915647289005054587873321406381542752672662876988663122000869718388170787014156133973487813782367807410857230751383730386078706133529174594445164137054944089701226158975494683985251885784894129444287115305965278394294493936315830898718837922523669020821839491542388536429050462801696473272348213129069431156017565183986730804310807265779350468384953961502678905623565660139538302416846726498482637124647304665804002776774829889069763615208203680790457179053495457858956648511515588933015854703476977803571506360715146517416145757963886898942328744265865597570708799188347093506928166727750778781506871143071701241738689906733871826815165216011091171289153819433833979547209735988950225759529847177026752282863647801051175550584421715949757082999631773953088963938857646337472277908040520830554930208185392217512253256454848714222681564846702674764729146705226816668194404184620205624734382125336094833562368177102267529550256910057416913263728391210147203817265723562435634184114499025188474609317291397111829974750100043109892646643266670131397177010686643715690807109798280720821012613567522618819081506266773374839016933074671473189581127716474827707676684108383603225384146257018307675733033017920795791742225336297559815402996508059866165792460015855684186364979954513463401058581059509818954698294908365746823156066959338548712081500242010350300065693650096539675209911315897928081778790182742608357103823680480158788715739429372573523077078250456106004768874778320201494655561569942245929487028023890401088885107060480360539960092351337097528146430014867001935364220773010750720966600698329476822228469734631185619612890095441617297752011139378043876001613306098096844484012224973082176284511790985776032357015753759412379173754789161395186346962076179867326996698445299115318088898473860876464248563809970138430071809015481157837044877352576957935399907889046159569665150430641910590551709996900363253431550041774973351663400929548563148823755387654929982579832003162749023646746121378871952000751118156694717445790013373670667286792509155877879160741754117696154777184387493268502361210031322636656774076957430650030579316508911431752251885859055892242314087027263659601547617068006999885975860946464634400272517265457329976349379944627717203636098114845088715904461332326182524472948970943265226909851308053514372877084830840318042288411965761825614026231691031975206763810149530148671230693407226999076203099597446822627973166065129920721973148223177598206182379581665616526005778316583553414538405001571745854895059377627284667338132847481442755620038714253686429019034822764709918468094559890354701774970081888216636742367585978683841614760811163490999035562004319995351503214624127168310790414466796001412480914279015376773050529906184343681776048725943891711189018096251270233114888984323272809368491428001275773985611529732969006550956853436680559428566899826944203561020065885014349667296824708265035285213780107006350359602431902299469116432826722180374369553913574250223119765122958816932814625022329202741451413533645318712670832229776170017802924260951211596470154737333432566421083825350783978238915915349428404276171203393390271977862941117568071700147065575042911199658952776772769107431939935389230891751771750907339636695190615173237868670411679797495543675564905935644989292514831406589914807814857226117817398775912813984970083696622303444907751541977205754485818719494080582176229903174183267202006549814796200943338075221688938257505012754068452561084465473687019742650294102252283875755890452235040391741855503601354700940139788160705401216645183701553233179918357644187506812067925581058818466878104446583630583807352075834138218373879436182455117868150378820863080806171870156740681484770311269618488191390548411022518851978567801751915750731021203875826540539369050687732357578800694701450633549452108411084575368399174732845450040865018848302292369521810823469386262448521369410618303731840656055639948045795762233929567029381015613788174546849170598749964413000286592445460305753817474958259906788985849624797383728062131958006360531993172940708652734397659167781770545523552497869841382131688793295119261879684298987719776842950911949984008218617295206174253127818317955552459276470746354870110024578666006526952720742874759314108476998485905385195830668770506148484719227447406845766288925366891998272607377957358367594549184104432100824098665174430701297374140101756769864144104778221592334953789029406627038254586160982805465756070617937465015487077140047494915645117500749181351176250675709789824132482816218549624577912683795557740122207075017814789892798401409965492949881185286269673983035769757528419374551957241734163795564972912339305755991631378571752220563413327706162936580603896608742831272780982026694169090816545976636995203187179537863749690597719392933103988717606667173423339387142688076317018802836549485364113363167112255525193140552187022980378528772271692704522568868401831089600195412630746973152051229025890612090831547226499155632469484726804076256139017007011921824255173648114260038833511638538659428166946143844704309664751699044951406869432396018627963247014187925881771705585758920058613991512315811746060378445490541806710671278776077063140968229469990617627833991163897492875227173981293681527392409267979568306483945751337352515281671675294468202053749546171943566336512867749749811476995137129053704414299833392434612215384955600396092752119796242824762508126093778691241416675436002734177308580173667151723549408075103736605306008233918348316072862225052691774797907835800737444380115665686596761077303941388260776388947529569453652609071422221732702313660732573569992546066226940440004630115138231375497259126995346409829628773694167851922897954690802432570111635912772490935670621605853073509879648443633870357691686270816106860071902981033423633188069618160936742704123925118513981409078057841880242957997859412769614176802219381006131518113653973047871614190556206128326376043498383687245180020366773042429938816296064514740601520743621905828912096189583845177116438090865438761203079531444277522198703185172719992907894661471361658935526212235608843050980572487386604144616259061250443842477690280280862809768700484440711658361257498256641957750134573704284430828191349221197137564631278200777744180174148685880083677661659610024459384358285572490095960199026572103766255543723325237418924086526920719975388342237923334665906172801583221968691008222736546691303694367593975058330820200867593235648913530307153503273859964144672824853955370947897010290022095327858167613873294996859805473430240591159741917286207986210839548529926857471411752069677676118546786055896039846465065993473925821678905264353248871913336597215320741767207620109135399162583530828508272211089937904265707313173690068997329587253827758180516224557088349898192455830039707766540714421550307725048170354434853398747958102407967202614577997716082732571883018692974837755533079547664397107943144032925337834747669716083793492162664350005425991970853332990204759853037906342015135188357261639192018519935200325937082753527074113284121122650702601096969304556174801041789182087199549144191004483659022587796624732493358551648092458441123140847769756759943264854044094464911449706041403086020581810651903746017547718601069173657500063650709602082934725045789961972446633135263346359519388388678774436981076640853605242699880592669234057748838146114309253714528629663493530650325230320574376277816463408591662242075049278097122793994566205107738770532810636429690210956529688297355187239305734188321472850248656580623252695326520861881285218999959790115001824761713461668550237935721432844186550435248825416225883696026697819061048432220714226538063422084688139551390116279904650010337835880577164228939015529096818550142291056152975259690360393724680776059339782743950528512642368218560858074298695117572599474081211261368234365934048570868366619474287094655736653398493436177500330583878557741303029868599078117385807073417126034643088465700105205754576140160590679508281822819741232024894368689270251890494132432379800624336108218282125962188990119726225145148590408729825858105993841170423696676267186898840046126369463358414187138183740933076609700743291958018298153319249662843559150759623946802700218891424848897846103668803331016041220563922868401191496996839330467005189208969945447200848945924889185486371584863161114304844160031560485248652994136106092317773991529075865179514349694884555715668310894448100846751410978626560000012322806712748250134650622321062108384096757707147754659120862465741028876636152591281857839213519176509552237552054810940541962132756520469636833032903233364253870696067974810758657476018509468185328994214721229441985138303657208369717039933055746448454915039477548929121812937387678850352715202295893622831416751577107184917932193314459891285010994951860616951673840101970877245395451080291565372598685613181730143556175193928692905880189018791838074008176155728475242056206023030617354522598930888419890670932078666619549733172697318750061391410212872475613118742738468574208478823236403115672054332154615044879731106479268746024173492314570527307167242019501316476961004666306856606233807032774836772417584260688377268642751616267859799379038586144955436003924362091753822833655981062901669288614487582727606100438611877786479225252260190573219720975239274329677133291253730302514980781469939045413570400669786929767516954207702159310334687622436816393242986676179239787551931007885568608012112890929489540683698182300307578177771566013338883970556293434679289684600758306618692166638105762027076111702995018384546421167621503918391483006494566407554828581934014821912531114886446831144358647006253042480637570158285010819366651971789590457134264527911996815198504171969564600394367974433474255068874556802130280057028930887132790144461022017722842489559759543683465170839641863916805524919321587259803889507032309759949458335406461475787553734230793035460584397430124516661275759136448091279516984638666212306170708077418755951375972886334418879098476323632078937267671328769230696818564499276273915555677524341020555439806485817324726146653521585689560431650221998304755274817309368821476441848758373960551291858580200186083631283863016204212257221139393355984343444020471571338339032308596936382039383150882439198855345346417817926519011976048827309630674834404958741380277230838238865692710051580079890161453966621272119372162062215608118149920046873905728590979512705763812839510177798605687381196033592646821563173101391745869332089768505172894170781087221606891036706741158823855518045875785876685098411876322163595917941716898902283825951474985380780885757810016703575021587127006148652507962050566989168171296845470611365534026576126263548715258857094793349296084100563706300932771401900505479252727494471630242030840948021874677617518502207945038977274139390105778121993959166925178971150660913483952271496995109098649316969955834891860320439964447626571737256833014184152249049627095680406358856967869572425913971428964572031652864498067027459628463595303659301761791537305279752456244042410570011447503126405748457337874625916215884704444195262739591180767650585687864912411672723409827000179796995267303256836256261413848012950868015812021300426499725897031314040876902862510009894257825914132927702485000240985910210214871820174105148707657531907351549417410445336838301932836245069749254900104421830052870590280279661059300873699034458792070310153363521303166657360384881600568500773426255366026499616623706398759158180523375367898144949904000693321978641836353882323355502106186311044296935437352005511419099143652155275621863974806386490034568077612615186539728357692417169356277805735373093335535282667417594277212827937941723045749802041928765625780177066087776766735799624900763221029383010346712937841967097457285861180392871547572766911462614513608920700248243251150843045984957605432356411379577897507816450562013084586386349737895684179456431257841710791279913548787994446017280222627827858114217193309946888200147242334935367714367759605153281700042572560901066261895380714109149994966096584578196286116616610165999841826945006326587178175560888844604751939063101925617478724608085910493724296135938082750029030200177506134503703940874539224134293535686147220214587376736372895214618647665502588761913723357690715220675985209784996022132265681542056325131124245988068815481360028131193649868577070323812886805770253042378820634577517786470460025556500105376373864824328367105272857420177168476704804988130527114526736646063893958947459717266381642390592334266990135472253671805481520515893697646873132198823639446862886705058042712959431226402240335617304771435863510408871915755559825112974196543811839554967906006032694209781335548822940178282697285288567712143559626725310403620276303941291802200706220912939035894909785266276028712557200304972068915677226850590418790570502365571041006603386272186523830238318479494627331269401194042803566449664306334157485326661679995269399844631209907421503970786177656844737917671082069979087907472932080327321759507522885282360792340921412297155592248705669308084341980191652953012669698917569156601675803359728496435450753008721876589047433371494872663833750636776736231558054492064235609087999415093034488498842017598907226827285877127480990261417336804974718467174177692338591947528508752236428993885162962092203146473866483460652777894410710987888975883899353666964534047244611645518003821813615648403299845225754203145924337574646675114228236403393512149681318017835550261128668921907604955858899928529756564560497513748287512906390655519480583359524722793943885275762397087450683455109257572228018953420768417535055146833873406692788352548652788451932823722602517007289383551055892666651199647568971451792748713493030800233114656051024923279982653957521310765626846050101785874539566267796591444773586119428233510701300322959365645735258262116199229362019529825032528179869534319491863952970339129298979951913163642992028874631481550907614076564194397417064580433328687859605258411440012840690266682024975577394122622226322385965671544760029557320916759295908161212198016192903298308606789955194677898360996712501977459981810879841785031500327460443458732153945161496365433955777714101644372187422475134693874450363744159475053756453424007531905022099126962958289810775496103313503573922141041998753917800602725649046466130323400085052648638169273879082899620477267034817578997762296760743941233929196625795921525109802648973150982855918372988651197592122578322590024006042074930694016330790446293471658708472797310041919321500627471936352957246292667158959241783059350797845896855864491589156163949138939259524218228131852816439430004959119298403091433527540029316307047681167520671992144349261961790020251263929700098387671541398292065766311538600779651412485389587070599564686466984241764907228998012312391527188136585328508373523779616259323023604245066031504980078583144321578905607943406046144713832898932904922913588770333851829365254293936623363719491965312935436449091176582897457329108900989516319965524101214703898948014649142157960533004536735476202077948394320268731672350510718907535325618753229147323699450118431572225358545761549671976925187236800550696046587198480572044567234925394826404331967091237059765490215784411662804706178495196364936897920780705902090387726068119424594040310645146666367303312141030954497413901014458452776236141692597476022437983985828681445840028980014355988586967351578623261634444022385463089723955269513823057372093469897943788592565407643609493230476179526848485276153286055536593675998300432989641209039936350143992615698861990821833819303294552830879663979091327232936795727117799234792219909090800856516978586851461637156603578537172445854226885493678321778199757237234471128985360272792714791376862544138460595367676599768272026428353762488485835210393701910909328644293853577193214057794668241501142595620357382767077224086090533403069863558106994275860684112482786619231690543926335760826908011227075561964524748532305707441242253879663815203914558167611853684932745877073871742779267212603609382853070634162452026189023846276743808400763293861025650792377873840486551207697321347508140435280925799691272727524699713559424473112199618007721620243370831465709675813080444186511498641327022635411894987583884042329839965886446293788317168421954251247875766946538511974821320832046821277452010032550497452727462653058242278638409232591953348558461063856782262965618823177734318608985681298485784278028284297796391880149830082445655049678611468893954936897557456027307662662954571651994184018751934855688769665167535863526669251616089817882388930899197016604860657072881940927279540340725144407004439038739544884136799845947749194942179818535638184433192323808332416472074238023709866991900704466860686497786399830038284525330210012904439837873657684592354658222092552776433504689838783627336296330953949220417442262311345498025905136177009497162935866132461616214249921842951274506522444048377221165816782848970538729001036306680038296947985174499958861504576431549170177257937887564748479588587314761180696386251561875337558000304771529750962736517988456729038633809947056458913846406296122363436955391668629901048579943085049169187293498565691896206581874859336630848224551109745019631259377238259836775584696472094448953043688375235011471034359341459153219338294443841550249823313947643270761685624107623069579653136004669402978392197878395345269415580291673164746526171966559737169617810627728565606616877380273030871556266109285734685794835875601546720090820031794529321971691517105293396173198348806448855025338679312944115769367482085721763682024005558232660066976641383779891729949936346639609152182741718229297467697935521601011193864647681498680384013873737854321100823230453092904373085683302029003437658858285967022123547125050162504332538731004539100951961082461438645044113553047745096809261525392139676270292671949431932053506135005672816509847568509810632587269831159028262129485982326078179834970757982759250257388602318001017111948587348468360126577453516005838326258949936635505902734156534950236178832391800208391382144398061300598666933825270381981604234542245494874757378255788204663320615378642561640061306522436846114224509493962541630423464679665315607324697480477340413263229216755683378098503926432192923945250976915958744180286628624889578834055607475181213747192121095682976842816968211179372409287969395403039852783738371388349194137291731946787255792648402656446437214003504508234970577850428203375229619019335149651502946155872838580109774364853951895276373736723964157036409659052950535982154007749702987628144234057294263063278715996017616259903129353735963781938020420968753340785645381993006237966251230194339454126309363680138990501470962282561562376067658925524868567740116241971211756853364054894488486725360334502025558661753313788047838630535131057832924533447680943543130859126756992869295194838299475431812608715570631178477730739803978084924277596836364385258969946790095360705948577787310246502293373860493283870811743093923491147249233155042554877884838689678528344826114470188582793050756093975578731983595087908010793243737884411961799603959426048971613250679323642672729427684118815344551213193832990853477391161689144585405070849388345362075583533696896052049806562114066495545506665125871847042300882978902082899817338033066035002397736399489727834014500003416687849848319495606201083290184161295949560211945091345812560656433505869442343992693171163683316112416633286537962838384381272002983322583273663190569927077531670355297681865904829837658680460791315676244488808572369437154936862628935451659805185153121431483851362487967913865194582188509285440312915644548717921119773405666582277192369438078167114587088634623758068085660238086465210177910476669889974957118334758693340624291125242703750627244477285498784042618971769658964035599321154891151134628105610474013986566897710438879517267531616647248300044865484187109929196956999161086333875905322353496786933333961919941261262763404479353684932714154694288327073310146855536003255663981663076731715040528728331273948700639716920338603273998759377319026702960165951668752244014720562163802747613079270288407272087965432892299854679648589401209087273606470950561408705902275621951116023483150395324459453003758678637244626549197413068751950596727131543961684435795390863442946223171217601551789900168351544013992366145696772468295088362546073618346832182973522930651212450183405925574092896113669610286327084501752791258786599241027110604286266570527545604590207647934164646373161641187399486680053754734211656551251511140411543183069162101678876775666651359013326473584094478069052449600188279567720516538290032612689312954352922403541049399812388226063328979278792134353324276953024600462496270229823804236863040585161553964846394807814237620116994105057108964203130415877065436149285692511988641849280151891991686344999313803498010346259917938071490265719984444372156513283321134820106633919398944476871458485137081897351247086746386510366118487986611734215974831308705127906099808041142138770613788005815236666660962514776165094087027121763736699291056918703098549717654767864082505182791122617928654032042847431576609915816932218038980888460238465881710144733921827264285796504173430928712889502828812251412702352221703409868413655604806891705312185092926667744715511988751453742420265795566751071753911765681298380559806868538859788152030324863033013908835036306628274536104416798936479371561338136690009075574128732110905017750740220430411056884992434660055997390846901001001101316387172403550651062664870226318698578810944131259261447247733012361247822652884046297337650487798126646702582658889355702521215687641789057721276496482296960411067189073482711794355930701220818051217889278433277607204498593802966251363509810165687117234418833130977869467179605587894102303330437402791450766689777840894684454676002407590024611092433780972858076977559545841644591539373020715538549825069598653154542285471827985002124679336389852729548612567203066181626695971720311746447423903344328372448260633662575484175526469521812266862346943883448530969514379971190929076354998173371124380762046554952564757207280852269162767174626436816694581403300982094476460248555138204754392233384642889720200942437863426288371309686382720408225017187261834441888653127878426223355643153067181436501869422503096464270410240022862094734769934711338733042097699921384895679171266152223545055131538618913543970213814719225109917367691960950779748274294500442040421343228272951532612391710132150196534945506275195923993035769785340705127581793095349484924671186655773396479009024052695617473144839484828420909470856277496438299639081658395462193497502793968741744420509604345922176163055413325953860612054529667882118362678995264562380214068066756983312847337272856378569389271153138638852681213504200181304008871740141464615831086977085458832482205625785816961535111008094157917575189025080052964750660249995453580910536895363497544675477611242101559959979300042726895412494058590505503401195709601944569161458521115593321503444644288817261600468629843181648206797989267438769233924847396862793196658429446675446831735351484891746580428791726793898643326380825617849286984635598818916090659835956188599555709915433136000813201343791695452106388480496361204628971697406321891293269460583537895196646952199783483457526919183919577501259221843941993050213571415875190810914590440422247220645659492431910393281856527265666243912768358489871176503735240401791911899016068222588898447065645807652743217298409896778412986344307117546121852729371315213262990711029702414318049274273863579373935404243506061595571651233482748099139732102289602364801451297653919594974505450703176521695247409666319599170205527938813741155419761335998268194610523720580225990316158015294877087323660618461751326934822899008303481714430012394909044675903988824827072330703862488819425835203465216738876634454256646486748483858074402489099400804944372336079502696793905120590527195731103360052091672466799375525176272473017826605544194679244960029636830545122837366221342789611927892677766070651778669722304716619052367954333078621527709223386974075495308875816860457403201694226236335689048946528400240291883487031227179209676626898530738910025024875467195249054335882265480366349419141831720894592009007369083437045894526173577770819109706682564245973113691244716178369906075881996612948416856976780422981583630452958479551824527030286279033478728326681227324435785233418531752097770153912165446305682188799539222459384583511153043268446101401230217262332398260725392587771921784667828463065337977580071711345945147049084132977071800074520290406365838340397264874492783950816372790568838452058641823150424832604357414188641720770761209828736989205347006875760944411303908434405594682540563091581302118753386738781197832179947986981758665938819615013198836748353010099390833405826185447389576087096527278294912385787836079720112050836891171952441214498631636499437487226853371448272150837034570454939133247953172059481603010557092603246494031400624195743854450249519903548634278414967800227927013337784274343581548456597361470713386640849969041463591258072343093889955571869936421129702219434791460301124574474910940553339820448343205221907155943477287637008707033986860377217121653956354929880983097024865755256412561009534559500399015444816882444509417973323312390029627968562254466365506133267940128552952849269271859426832562578604581882175606208315554814471701635046886274589443913649697043668841448193513717287130407034221955166014328258120752835466937702139531604575527341124665237322760107653840910247129636509375829849396854960264309253921977937356646509737162607249752841573195925747293811284704061078886050791965641393198569675271309321983962944433626445046576621709667580374219904421954673681980607096764901940483507973748672059753283729632553337391373342144243091142528263724326603539423095110397692536451846540683200276190513960199542946635394272893567640509344285460051780534393549645637228449265190706453688197668627352709287946378955820894121807800636048473555153630480478712151712155023381093985392407995893799021172072510377670956872186448372989405622357737556818780522041079050726499456232539982552974948801758115743817952510754547975646197808239006593542722877122921355035030835357890624470622624757722154539585987240092447288658514221677373028730764848969939280621308124556476662232133816852349525467947080792809411211673037931320727301744879385263767191319070424215592254692218060144391258444566565707580521315328883036169870729048338500078838631929377780412724187547627738502430505693080007461544242419194660803898083160482914780073112841703769837580272276278236746548374107621582615937456286455446763605146204078403754122350456181651540560075661769986836942363163586481319728028436533278170145399159061310648396937797708130400057503168196482708795952258438289464468356111285853780618299687368529243008812326207140873113411575000948637683332649258119586010823580582078434639486655691302617547932015961865122287651759576563111597747213518551785884028519529787124025000347973308477414568340010202226116244615334528079859577438974652689028925510145963389643202844692052076215572971689136024116778384287992608442700780139591367961523454812422511672810211476506624215028246744413722351688678401702043433325153673061122970156709026986478789923757182160300953420048981654302759056832870399618130203540724480704253116765222005321124877631512885407974530250733167652927085678947352246588976107380708185400371758877980619938330958523779805152243965689243785891855143140261886067006827401037609183115627692572744874737135733083635286024317492363231972809951441484380108521277658591486111539521316906361151675692320440673863994430362446069068356425631694245373661509407393836087485184302315993105575927012980040917372987588182413746692410420312520911057135182141036758408445414328889475459490037710359042089097332919447505197622698949184662725780145847616149948478171924278513435412647611517544942252205913255149656826061928045897540574418004261003268225538197426360960982159100176989880099249944252716757594648743784439259959659547897071090848396650855239175154919507686875121162174957421142548903621932161709445125874048449346741331486785858094720700876976742283596028399406984566113642491659575202015307880741246765690739352789169082113314480630046808299145293470018309194614785349960671246536135979343504581266928639315777774514845383548216191910975953380596544183360843839853364677590487921944403613937384048696704291458041474481299153720628177728951237754713285744968218041277638070665846629248665618142346756811210665391770042528790241534528139748682406159627007531885830238224792396046348630019452221585255372349735687572605875842267671605060893708702797414454547279112512479520337896700036760543725060827631348652366976857556995260760096756481165009086804279813425587495023331230912652374458197768810150324984998607614084478549454318857502107175997913004291616721339070562566378723843813627408271575964222277486710957020593232624626454342650075703207300082855079756837780797065075217071484149106570647008279506798140211577964818390199018379147273130496160247151525866794426503248547466963284658049274998210308298227231540891410190697207878139360411916616612294570853293169326855261814771700824550004480669525530810675702900907254514403316702576738260980958721608064496220595160602084539215510967950957970553240382882684999291327380549899370227789969696265068565741220142488545477161455967051898590491763000879304927585008351024404555066780393576251396159753965305935765300552464972261732983704217060189648196409864913280576889306982663693212758429525232233279222674246480548555894195514800021078467115180490605841030832685740277972834864839466879472387810149980017643784737654502940531778000827864849412659165552224547403868494802063370819358647816072406802746620067837271297979934510083778641156875370664109982098211540372518895933446679474568920937237882925453377996804104403205497966859719935581228610725545290338510797886802350962492930386548507346782825009913239658676691766652954175209958186562174708331785728621761399491108056206974030904840781141064586179254833311858320539512763670288916693380090721110626241757960947450955523300294555001849470981677627085648217230587806180372395708052201901712939160838284456363548976774001727672127811497638253966285178794785729099794398011583484117789276729163783379949327132359347980937838164911870468655857021559751351293811298514211483834526990057733782604867942236043322730161980802018869547106682877244283815906014685408388791745135520210894626865612835755511712482466014233169178530680323563152531995062638803637880946298647798956576321107736964794825418062154541724716469596488448303034928035367373628758793206470148130528782184466309463164579624491758309284184940553518824887512229477772986565822848054715865489345954193363375590365227023670009760421499401019442561833066823969696654255020020213510685304210178697421084465006448190596361455826728944239824041583313608699762820452748298584204683662886909764635105020751131922170649062579239635959533846901311136023093566746191476917117222350746044281300585126226380806054259488495718878820304798079427952757064834330925589476913471841276481920573109476779851750149326450067971140802583607192671648431311261531880713643896140598846521714512962572850075439287313564713926413088269052451020482095362020235495239667983854939473567365268917494149295683207816625197520721226874762476769506575677178411497813234866773895588483855436181279362726903115283182211730691771949829127282162232913358278508595921885464365328321534198150487644666302793516325580414744848580060982229247681896516902261317795448533601005956124926753359384459529707986589503570605667538218182062762263515639746187123164916008104045839619841882939486771376636260039855626524295023286198264306587751582856649086830470148929010015785290551677113357099146444554886776839052047194854371098474514525378892713231919486477210212574325846672556806531191006849399089855569130050971069105757961030016028231901964631848867911901852512236701325120252055115641918855816513314424050781940543468946909280605014851872182448306142365950399694057925887631135672781179499906196200438021507551680760196273919733468489958271891251976332239006626149878581527056721076260517955754632726390509236026791641994578612135619514832903967301527838979538060342536330681759216157800977603120060908750953948331382240919344628173570329826769022291204264639537638322743629407084033338373992000057659556270040964243480733333791584022997651183107528323114335266012870907866838680522773310154011785279410064510747902744371252085814645721061255347468264906264478626589152457425045150934522821320374651202005718321411777618575348618536308002515288825577939930285491354102650216180298840792272737109996584494407894942587333782096995652479970913065473913054710831640447047420902628355534196317051885589172786211572221311180406671258048994706450572645331611796317191278004103020752658611124474637523125457169334530615554804717749367098994626907324384378349801923024433190213706625931167520486282015078869252823782885893032874709066545672480075987435335967515876699649057395307078419174190393403556015157272957075822925624552071972656065791420939132047683457992671499682345620611948061393417900564670354746509581656046646584056649833635615897834962922830665105813878542907856768587469601794542300324973053086018252760060514202107994337412609354315573564432636354732372314872693127754173831030338361811972842542485281999256767129361474551018621562263160064033278137965617820930970722919469461727966601817541812572476044302034796580897407885808680680672881809615530861466427141506130458434824335834529126612789504490005677590527227468522900703482544265928693198700468405582680353170718816622882312350198984707327895939767772853074789300085659119610339851311827167591044323542687883194776366061063231289689261822727287583658124349806774573367081616782257129030413354190545546071360018988652389602016886916223337020387985109812874440365324418910961719575610875742164809341716116242860218545760192507052793861595479085909802173918083381915167521770555860027176783681246179028210145887479776511676551031256365059294105775569038592568485969062842763755270391355092618074267404788527739702371275393849430129663935929988072627880265380455134018093692259359155953869344698223452520038165109005080690389412790067353547067752959157988891113265399724481001992557405216885279917818587369865417242054882425386303849040784650097871568722982967151760531004937110968534987960034341170743795944487683084846719234712226972608329209989146106004998918385785495100276492288533998627054907002223894072408811594359932870797734399456716416224155690372601925143428568816272805572233281661645994975212802642708845719555101295689071610448073854302226604592715121211178765642116208605955571278856698284134490132298234295207656021172631053195752013942489159647183628093694007878862988029740622921937221329433293155363840406853064861418518811109051896946908042606140219185390317557217994670720580018651635890981635252158527540967637482451275713841490592469763410322111811054083780728559641157324907423878919580624026564396658618425583252753544908420995093886349453137600887762571734916096957475473589236278511121290454274784472180656797115763631944156345431561419363872193296945678839322895703881990106763037343503859371725456297038596571577099337913461321843424410788000154113253232876843007538346432909875386046538791554218095275516729902608979822713651925772235187349306269405513392402992156863280192016076969097473158784108079204835955222509373048742324959390444934398515456819960086090516268660691551634923623263037760091127635693556174213047031703363969173111121779759270283892171692039235477239206978404120147304136714047892901569086264908120442182382611283867514486566438229173603725539621609564991416821392741957896050835061198536156391883406008316525921897653260330845904531701536352853842306571140524408472123392292626585736486794599551523870930521732233863743539255966684255521681599754607883946473910420155405821471947221556203193434404424231843751348124647558866492105629461027758226928151537493094474527691158357530730668603084940179913393305082787508786731644063297793566777152803060578755076338722250386687323684480707768512528730107231906581092669073723757480158805424441137511344919684408579972547693218492987370535957464510815276193490561277532164235785181040419793428728420484089641696556894952115978968536404622646302665075459752958179398700768725041272034229070911479667857304957806233392238601409198408816923247642615972853069298559379647453119765484895196212537866961221458311486431534881022437926301473930372804917862406763059034460497088563191618698293287474505897241252899638734721188678936563385228300328393517142262448181630381330270244793435868555613547441068488503395357692330969820372971191077925339307375544939643051255207299307124784554709087467780833006428896478322678752713457490127585074314764881087314129606099407496234732796569036592678059197110375484091548489563672963839896801893352110228766125934854185253546228035009561978760903901551743705353174675271504765046903163969878579804564363556560301943305888302340481285246583403870594716015819249687271911220561613647148082844955877064931248928049193790889098060064906805119430511369109303523607979616667686403536301431518743091988518966465972104127539644578543621570528657660042564477745359384158119196318704780836375901746689723127895642159777967317850480044235408126077792455662307089536044673051497574025735947622285718799531151130771414259607575139455327537130284095220246772019431343088263020246190912430286629507906914959067386781237356019994915914794517183042074759021408469844006219777624697694624047102365729724665309665378428428390529724712704796106083182648935943337889711294662770802095626498363730251920261250948321677974389350501420156568345602580623163364490143635054934139823662511728969877102793386438130246479989395862261343601874034958261443078112851852381354545953076204764624184095307126967124946218932052615868941287436371756402545236548937439223864007439342100230628779135915442772991526911566489198914379561998433823334671740167115096191640800794541089309493917262298727789828984549148577248396069573969407763177153717869798268021999907278997660045307762982811909881827641977175910766103728886080685167577785985319764443607662779329220618546960724499583224645555381156670331671442513268782731557298834174469632062337594812873015901574030321158379271496078093636173052082222935381634135644637901509874242478837163648098278248011383092941460094936669726635175733801616345390092529788419984443985555568185159242453849068923509965798016606320319999397077132401109557533635502724492376558237194825611922762782779823494856155839627656621684906734686776495796051831669715228098387092440580312082122180410942731622087602477024880910591063429123411508612015927490054034420105215180773507929027738141107529529161732498045539547760499015896205613534015668649022726984437618650268718085488379848698722555567646648643472530684395826427726357374985245324717913175077791825933306467302245774100277856215434092716749779994558952817769100572855480432062384431150755542346707110052075632974163926438555550618762826725709989342256776676781258349109003004559508664214031698450836123726249229989633076706756081871848939289824145667541979490571090550329966268584446646142662742789276401257592577352566046410853138784389825867005712325379637052554649943701042602610753658093552884603775896607792971785270996196521662837545753267457467740960987930544806554137116126023800713448264900059145024670839593645608485798586902138555503839656874538056464908940377171192277466963734947959652746590517336518170873233857065660070214191995315593566842118564365266989839856291746751301083428255725194055327179861648087218461150438730483327546929242287441821598465524462682469218942179010370860424985199430707137436263363792743236823333991771701744728161208068137217884928251263405820757233283021134380305380625034980202085061501207893960787851182082123198047125241582840973931253600774157045080200546199677321754668414440575605606270836016341498811913506437371404058239842206515955652807513251548179188968599996503329559224824126514698734622023016574221725071366786063919751443508878717449269780723663302100708119612732664360738426685759658306346524591084099075175431143478674360959770047562729655047919756653596286400347456210708081920402808221327098185391469790925679455282509331512052357880018904209653697988171463113672928910445176048390992069128719966864841510803170977750042190401263479281352738069572525635414129544362815463815270330109965656034926653708680299503645629928406507488650308737611511944912205993735658172098864119913867986823596223495511787953844091890986252733234468796473189447769532197552513087499616866692630154473622496314256743746229674721701677078046944178398756576176394933820331800700891629741208209543662364309358549637093391116703578176310887778154773480480473877299467142902767604644836383945573975594475888930332672273403364996445846134517767030290889058483477808006379697335630988407099967336225955076083535434478686299414868689979984844627941512292417628506037135923812661259142471221385413555946937287900566453044402769799955570044589472723038713294186190876879612184624985531633048527619988255048207420554972144426177980983442435887431808884636378307112250209811484370761259332289512967754466809798063794754392734301671816094059894827931501176035482311840817410716971848056381959537675586437711860568923026803308838769090492221372825711712847630741829326511133848535168205300772350046519073810965119759190706580415289769027482806867036497156876301342890468820634903392257800107889924640084591268643885932898068785802295973867352387706489891290262652367875228335191013021347467725223420627999995399657822455425941986649345037288802883096666435865348939869050145554230932411123467111821760570870788614782718494781350176107331940647650752447052100569686271375206627365628987161122899441254249330660111387978961352774606458777006148209797264236633383499923133593346559494992755260805694123195481768834405393028896262939312205569704297511550154608394076076104926149090937601156754711023554646170925854016016862547212671848429550907946334790184312628385246590297465730648708718207191125844166619368097453264393076527201899799350477186440345764597554812679810061349577940751512738127332355224917745836501307350480704788834160130727648644423595525998998292478572347241372830539211022968671221384517322558213464179049255987051739397254689647981389774192798198312564851446733106096847019135592303525838593876213176336886396262301292683747897293637607517628512619940252220198654760835855456404622413469918513039119440452296685381619484108342460089532749122772539118570929603357081764989480114251227514267452854781690856124065578629938667283310252331743396381403127066597936097668531042428374878385228355835405304841463051332271401164442407996425311450911501525438895496737706806673824682237810851328159281702434275687757946817172813526316108134190234635557131613495970446897962476321568663864574413758400813293993290201140272837257619201666980284942505934376582391882578957904720893106260889381670787943979004362907973453678690837693663271185709283871163995264342861505062133652872814308226260541820555943059847703745343940124782072894830337155266422478454591010023767830708205815866544181722163984512354677615475782875848185102406058632219435359281378321053999518073922683156258808862498051861418860663508003016506688557176955755138071351876957716336523392688743418079033052888914002150409764879929406092989484508897257706975125652632098496006085349120782352558630445900686938637615168703329980853705780031557941094794859923365943746137416434971646441113633205057046419685650413632453842633928971974266444021423358559054629438972965581777761674737054162219026833356760469949216667895779858865628649648164754584746138656263011408320841868729339085559932033606751337685126564794021271121350579350368868534174663472547977069692965705092054486809026339709093064285407003702298623559474793568047667673699394127092490718283349243557920132626542206695090823689766812742643684638826275281083638901007465256107747145651311218874316521387110171729298949667018397201309426015469477117839219436309903653513089081856605326831791888139832265887682212780994147420811966437976067784808034083712252674256879082745579614625153283581825607895564249912075800002426625474700320477270969933803647982442459660752409740108670471448906090379845644824286333109212095424098950184806328373629569834792836780060417702984906199089182478661758335523191064229284762201431825160010004168655336998210386337314594970186018735943637064982108120677508036795125682453325077179711349566597529080397612164377644569711814669737944910421746069100478301079725515036723548792958496387251238466437458880910274184121036742543385832777847652202625149843007637919731900878713067509475318083225999763571025544672218987612713781662173948783448386315582840166072066984552720230552215292589907065654638748860801885010726242421284917921643481414388042353486869593613893059471344186295349187598938333081882383878775531382876354963026293003010294630118807683390738276433344319328997425921273322861909115236256275952263690398332779347931083147943652343992326747661938943853694012457500281612596467822568266071142547250371068059041354051542854465721086480937534602351897274713789670778733632606706689985210288371514070602526469477595570592724631826328417175885800367548661739904127242788024307309567762480755147200656193226772293806950785617943242537736543996588443030990256467694365158016593072819095493636553023118733984968328420577873486952847347007596633870921489251807897539052700830583992218435631326780667635818624167063961926631338413662712955094133963689884029260403815370454316781080113589999864885430022579238633370406898209997690324576628233718935105344972221670692883071713831841281939590408110180738183365410130472725470201406925886982918297240340789216228917027502711504645350862459018587439040170838665699351307500160366735836863298386253793062663088346192702579262803976525375680620623991009543584241566192862519279468593633770956248959321958891407521028233576263010690412543002110596357852428729633863503101861759507849404584229780086578230752615128449283068440992945754605501610417428092954213234563253637538230223932451218273383566155868017621471656351491021169743474323337994517826871646328176943732690473978558123101739465807803286285279491643416241963520420200335141248098802999385053195356731191723786770142716246442644423136442133209190534274849486952145671970123638452822830087984686379219333332550249696317879228500627979039161163736292592004560537331153993159955525206849305090200743908811210936552615526495375043368608230002628217618795332152002566456133390339128854898048811079237407787301859721983909351999461838472978296460514469012234417226118287580402104713797879375874065043290935897221542954110367125528885361974684720298955583071793037543984015075316767512195199661327169518506159096087853670864453565089762792132576332008412470850862467915624251403362207129126417041621423921738782643462125537956143218722831355738385247798140892288785258198447241104273875315466311950216596480040584699550987654260550942350999570149869478911938805831411049296989996117807451901004781890065049574497843847650486107296291119617028000386522160952028371861029458726203164494992528239686034679341641557156248430496933885141638347954142548866822277616133395764120716003642648292398171103487915532676404177079869642161118374115867052499921608322053993082272501169814216134024695013953427987353562029521408905139255044796848512115053434270850877042575367271698240116082312189005870094301252996555065663627616908435695503601559908792410890418407878497085904113446113244160288282310870216811664079622032420435618098009106956590621874920596850572000759605660941370414953446544083458726975703989399004479287311828815629973887355336539018681241210893569471050112927878361772202846051786766819176696764061129526396808534211334653741948064656429080201061181884626794836919655470062732598131833017036506173617839458782782162354648826526912017545764547015478046839446012403522519086883671979876050145702968872745512809137302382499435178333385202184654529856565535038776320555618703366301001337802011818503442833347926508273338320243475771498606540149186287156071335484625027594935486505394614924914423668113315413767667500043320324942374454353372784223322008393638345521459667399250814264830231515567302052672538538820927817537446842136887731475614912558276698444419257219822277178310205399552124041279390875185418992862539000698941134495421285555343366039742968237834989175091639423832682550587040193088247491234770306833620654282466123363460839670381128347929572091030319284245401619195385547529836487259523246558657115404293101555886369755603682768490328090993204597106551527254338527099400199115202918614659198088176858262296545072823171465094183392664878177821890717040910620351886406219915495454719483583555063276111816429847576015609238798880386155399458775619895471980198602535498047473946264779729649464849083434431085438736165404412705739626319465875665900470994266677154706791219490527018788271136284886056623910276198923416560911506323289560617566572500964607013581857622963246580513359739623502315665764489888166058482487988294386982427041186087250096204483210447144163238957066312615102287915614946615608169216487323677303223373391463139334046535918623416998794204642888212914021446300556563845743079307208124101317849232788663155239709606924412286708476883437860619304296357226462616536179177995678002253863297838151331482733472879629338570480716328852727623202091994757971720347418097350085526134602257794213677466831228498069206407345349007981613220881854432309935674558347903799942406001355721181234521309077333818135555427986323046445807054406292167126146970687900089420994243047814238393985206664317874840553335896512992865159834666644338518510177931638356902788357856025023202079218454083486772430906951323885482976318915165309995408265758479304173336650655202765596855567806265415410440997373390941862773321416612417918740099451794928912454441410939479244479643833939012250642219117837439103998945021613993054044768292183919042822667831791753175878094441635209015850594953546805640981597303610032830126233721424449929548540782769152763974747322019796955145649741516341693748297691032844912856737103353276208622391682231280555050193128204384034204444386390005527766660675097553778774385436893061538637938512541311264096244282994040108138266995337312225631889147984226924831286840623152250989396487120152060226494894217422245750172697380946276093883639676570690124105955731720383894476929175894155550595327324205126670310383711014832425258524238095370870492185729333784148445059993193072629118166246708677839860633567464807624394370013305733141088087212833284579416585293325221765577210125819937734220578126556601547679711353544476013591256077279878152730639087072505797812525305934504470541401768497833377502522933582805601176855999011710935478604903793375865726985198472676442257532748120957284481630341851802169400577402964029125368889500957623498325693398778515763801479551005683483567250313362278518801476540327006981085842052447686009716289557314947796308764029910857405698584815033032042681783259064240437444775648799063652315213133756108725625714350314867117510779986080105543826403374084407787982950508548953461455285794635609654000500043995300140133852019670983899266137994585408016056201937577859617836375152466700518938170366444644218360769318962968480699982363390280392677778523381183802655851361972555080575710281987077799916767593899810815545690022603022937723334925813426478983660950809450369169169555041735778757215468935266393440729141321531197421686964351575546603773565947029961263999306509145473763734045312142526822222436842240120587245280368685109332967754770973874512752540634719261384814251510013324516089169086164247750841960293116261541391868149580977728715690086021120208469051987823769524881797354357887785418108096832640921015041081541772198024841957469559619164662101244727724634943450894029530749937842721382696453352739450211774166512650302435972149736789365039200963780751516326155347343334913014993197200544826262439776399483761587596641205026192935927414318356003757277822221368507118690364627677875702787210787962543984593277729690133077947711777294631404449462750523315645448124427934576917398488508478706115904472425936109660373453052030995250117081323052038862985450416543117927587116032600647131775850606719435312425762012448316688810297234792675433263897057797916999349148847017514939412647827287857047303412861556779524530173335524451127694002310732139378009988499137661906448168095917587023933279388146386336805203627049001997358865883867318269890113444376931799311280776441117864185150146510113946876144533121072585567786328045205610038340524094184098241597156093227120795099082719521966311833784570168003911859332177126921087435244812633168282858125294787931616028405760071443870853053243270598883592816297280725913024743888942369141067086639307718979712844994492868273388762431596067193774342578230724197826870775641562507922185005428431858449301585403754040856237953421293347798220864879845676608424934062646537011084616752521969388412244153179095583348779512646328196160143775764864196428983952371738724038390306563847694934545235444692875254468886480569205333076748724833512160637402106890647304219476385354120886086305366361665361111000738885897759703772466942004948612148671507929219837784650635516900126309977838219558157542872402080299129376073669314432733988103420056601068579425670687760872844957695756334971672843525477013021236014387881901127662821379818761613042371234857148617948207692563491815710781990776696072238073798898651700555595754021696551169771858054249706483079332400920540782985636256566197294619001971020406302775740093619721510303462691487310416682154259736666825506925986500949219571699845345071104148214000412396365913699727361730028925228444450235762858503617194711631779217719832250602928545132091182062069122415272184392784194042434295161428812734088258124921143638696830272886564462092415674071556261032251224096608752592076856337777798118166701416022123326834761206219596447851890907824542894996051027416797178463909630694141365172693541197883565168482520267434383510795019834957760752655431459323773704179727401066434644006646280002162180821931198282601645787708311269337615569039114133158817447579181271715624713962334489459630699984782326724044653086399319461938222963198746090436633285870427614416049312350679851661372308303678802489751431811566145135221739592585624295232636264743331492058335891120547036119962846439550808303207109287555148998257814596537711430712637699085265960081224243299005590572840047654611832062081626988985037696140182592644952802208680368467227442428177288755092097519731342950630927145662885287600163473504498804612599714087801801061691446918943481929048214901407524170737125213318113363924156250600250637311694043644293189230125724897833859381147881514539520043837104948621951539743381309069829032055710738022061557875601877084329538670021905354115156066561865725730407015585939231737037344495672651993531549215122989096452869822817110647776440546701314585585383058965561919955217665709483546574440374618736928681710314357332511741230872504583441182528075308122745312791177195605442097323197691360568097980225034270469654436659139113230461613361285593437351544851288904967702634267212975775635262665384094178055359125217280197083013358058505974730466453916590017619222523244844940379721225242350966838498308310440575785566365424878521362503847864071712482561149654156566172839631357754949696070206936132217879477878265857510767126158240234555565464812827759034115566636433603997813470695201243590649112125230915570685754494306235583084930592920410634819858909750504478120419017234983442171389145056978612556142593792464090477157607740851816442371073653687165193682043550210199407718352967729595631213672786036673357560716679604714410829614152537187496077281312859788927419747127618044976724105926997687244774145057216580434936232604856332744384174040771554211942871751037812734815817671553947356695162245268197629240904964878722468065995115072159854637095357790703011495594709707744695277925245272658433052507145913061140778285541127818023419589480495850587306174245290429914101265696073951606310867781560274733348967618898867739730295129009228306663908998275737661910842639228641534574788050424558824335417558487962004630307157823499315130156657038675108920377841533051394016041951680725620668966259459663333203716230345890168338714660102928675719863743389671565997265203159016440436465199042384562880268396748354134214551963984619741910959459509481680636926026078278669346850672169635602365580218898625693738202447215238300339603187686719226514941855795102650738859338210308394361834635842520648765911983245346199580708617402893604617001789790616459042467620203688904019552828657513731914876436521991398799832551047754753197508063094227175240907796242965544028827658172605457859102975404926159422281564152264400626245256723183293906924307792928713760720950508145914285397328316948284373102144018793544153124402837475919182792150364671753149983089229255470490329500572204974005330173006438909591533844442434294235272423409741237489889355534022254566422393615116538160881272601389637120128507732491869823280530814463119587372036727730062192551077388038953613948831813735392167075399536960721455920143925640504860605727438517578590296976227454084478493523615321814972492248205547952979298229744646149621677349858408074099985970204062693740264751724523044424941265296614843274274415680535780846421580392730605360511376216144206192353461043552498969883706431954888169572399499006554290171464612301755688783180818640052877317408860583679226213954012918427420732046625394086180556501950348558052217763209759768084230490635404258469503255528922736579149167386250027890080410520626222170838501709258206021632753968844745580563674224423664625219996443695016363052280834601711766776919631237656209392480925234780235009720499411006120059840569870112066303278826231359502966882891212635918722460306622057514187351043836484989655690244954618638387389433573578770556138611617381245872022612557409300649889912669361827867785787356439068290449839219970013424245677594647466053925248874538991808271670165574376953814804255219020573831667749195697874769392434561580479629408817757212185878077782631772648903427268689815239580969796249189433146380457327208683785594727302574134776666015868476559352820942352595982589386243806581357000154911846646537565487762780270517440873443039763276825053277734228713899566465977259138037514243506769380973892641258115348630257589727377949535548119174996697852899572505582743096408945007004002819263831641734610525882606970542104942088186394523116223961621615014580787896676637042493108963727353250371779737382628925293232943903409976713134337514777234580961770170689859382869716907865553246671829390605044054007320382182809584766481891659906145751379486932988377596629440266215261775233388364613354809635832813595464204359943456411468858685224385265065282924475171629895906797150299027545282863657118449625222038037514070329324379816656953032334042506076911550713218645642493944408718910584694767622852476621147083627204754729733645099359311252691520937174414407892823031523133545050573828384105744411628755343643808267622371137749932825946274205591374204402043252373624681270349323030765602086296001572991181664353790834292821340915882443200398831791366929793097377155660320067725931123542159470799195339297682225180473755984656810792732392744896504476993785262628552659313316797477119007287265476949635578454910671860455625991775352658263606885026993939409586581285119122204272556681382895510157264146298880167211095893552612623223526064024021466505003356192522018476687244203324998936555811012427592330511554932766628466118859513183723322808245854443938742597942362086042955722315875365472432820424068123285055127739377671648360693548776070435993302092309132633425261453265218200244092534132668056388253800976841115328775895426384453419906360173811103061107086866944414402379633973870017091091040916129684805170121527123066766008051274787532397558922845702436217806920050248611691529104765397667799000476037382960802404525316359565083297860247248817185978931458429765171890154430647269979329896490617886742308585642447262502519647460227137146470020608095566096314255307028524422851881342396742041553957219813998588759457974056907892100061633105298387328246395627558042574580893769121148697050900892929674973936723105181503904491405528608809257697455247577933091078508779071482840456329813690057541854217030305055406032268430529320969721088365649412716158859243315480718663707843265862831921783300405014376606929701591657726106683381011478817077856980127257307641566902573460229159773012543026899762375944275693256906750531014295990827599366073784439975645716754626991996883778469829194246173049162042458703726109313111151869284606242532389353908870650028375869420679379844216139543632275072034173030203098646266703978873146112367819606118440634458878514919381927404720812888101778877223769302753944516896727544463589426057691613891856719500129222826267142192978227091072476975442824056429731950157124392014787244129805665073431052081204518005554550114891091137562974200347465368606981070934554081188270385130813116347880463423800291718028364484748720847779408625151205072938400793999171235074794438252888963101845797252267522017020398119866585376117355737363522368061266247173080054767352582866306952388273416676671153767133402949766280478063856781408184081123540070626697572009534742251899460010256662996282289466322493473252869836689385426572741514840987206625282554017040845300796810454280393457313157167116369388949448522738801784078466994806978764422008109183497820638641703600887952014208502780471762914107525863478317355013925356823074943560277849778046268001509818391047778933065324762275503413569021007765586716725801859015488118452196543528217361525753041241304221917885446934332792747790225477351411287036398981542625729220990722297646453468123351822369885230820804199410227437732263268302051206550544727126493541512499090862536036263071125076350071812871624493961732876403431991325783685322906867799087760244187672632781226526359228553135986874082181951302603914288317704729812778631278666181864907712781801840554029710842114412676124801322898676267178218036037492275765098631599979191124637296484412173922334162776356957503658766163213382440570578762335904946609062709449845458630707584513231704129506264458052850118090222478345686345784562092512203599654730027765588935680461743772774899081920846823410722217380868029552539709020738518090157032270064829937255811232848307133891305108773046495980630362439818070859183894625804073463175307559343346768519083882853128680710954590711756375142967991444882595197076232156354616432236006396027178725593624731739755656601253056853660892095885627441495087565240646466837153573428020846263882360114602531391298616352677552866702269628815501071511085432746271698870211801009536181827034804205525217011568316787685817423941904474690321208984920745044168296242621378237489642153352582656087709687234155656232812211080987653310922276926954663403222914638203632872576868402837625721489511897306135217959566660206847946309123582605766614513299380746502222013201837893250733293668607985237865942450494893574501378055791077799645447530394415490653862777289120831401303855647206034413899853354271779606091162355297366946687329383147067992540066813779089826935007446970227440567333842896879347290981474877808957284659273605179170725591523995544390680040558997031916176245018788846821675837257293559717785980444879995827850014725977193666349290526858825522903183109667582059207847088470578823998545021422664308330779573755515985463176024041218336198301827408995138438537551770479187453179434843890661326240914221693713353081430695565431032320067237222721003528612290107952883352915523752064981185964092019034854228787872353501930177735673059461752017768044717112769911050166856131149365086878287015952895313703090579151212908674263914350563547044678032856521698619219305019780572988865918944701963038311465023349062842136832016325888503540685852402491583132521869550953012911075723037854527953305633295773547350300013366942061636437139974054326936139391034820977885942362265289177867928943493930558671642693194488003371687456714124043075599746387845157027271938611211036546535608038566454571995400154500116920999116418258598946319528680340304467123771304883324647541163047220276321358721854254964437411748988116184698075769142962500967135154973436769135483113768717117468794169140505618883271282076125300610532073360766152248196539529526580675396264546124685477173997162600368901926550924332694037638231731097427148742333528763282165594252660925818815624640157968894041217998294096136551199165994977271182424802241007457743621520267231909757708036998133463950911461019792543978581569751715324166482373307438820513895877187034455562814903990375074238292056898600988632555883060415055930164683473088120259151453574348013919324602507678907682343171153103633746447338139044011848348778605800776564050365187734485577771077248594198221444846346731588333880000813653767218677074745370130575864636132321315568392239798708666468373062912504708018220528681984707510843065346236846591952175589611824002244343000062450427147957011726389787038256616409022708334504866993953525780292947877273162280144074791510433811118972316724031797190782133272073359757790305952717790435414142004990416859579941207078025283286953148461616134729040904916472125941093951576649844147140453188658912520429535263772162414585867165301374641215851167448675395634408234554377038718891577219809875007086475626149392882682166824928107856786498185736468249547223309097907062650794148761674717217651703045820452447043907492481606631172876957579452660963697722060815674098807300455259629454227082730777753213045098237443613867689718850797317145358301089236268881056411780374944908473390065544158295035744959928496946237594258433614108586876729069492304118644684027211112279641254841273940872862225595302432138289747200566360797031049731850083331101487150177745823323756740365374199402335384277317754093453270735498227274274564192772834333670007933988010596652545470476420950541881476382749816288844228198934394588493281004983163151405379525362318582036507629312320546842379877480636542423825861125583333126198479614105223320273407180222935834483190986906723175998890372975458627502662107830008985173780664482671116690585090224402915684966100282860115427933823812032477004502682438973855175236019226048524251053157600069588193118815573290383668935838143479616202014221358745459547308689092285613068457440438010030355272559946702577406769709164113105860483642904097016653305012033973082648475038887011424502809929136111922583527244518815693359772025312487340768736740559771040713335225238296814847895577481874999620127248326240802153102216356378497307672012368647510510930552924049944080219920538019655224874948834743892138182483069412028720878943761996236304509730057112029394329628144471392370301250738567114163265195162310951098999454971844660352936999803402765247886571850122068059743088490200567947614593505962523174582696927693230378659567782112284667699810870902032444473181371006683582329188004438647960004345945371803971953247229343887909682668812499368033580159707392424512703299597798315141884694941150820475281653899155435953048094837215017910610985419857156537685574772967324767068689183549949002903006298605504459713609935981984394822435314745236527024758366788929379675129123467387691847819564856841421418313976896612721107261989548287309677710088414062096442390203550877322463704986457090958685721741348628598262151957044510712556501657806928069025504735805003372594834036022821616225222874238418514437840862917506385874891909924881315439252999624179347287729047791436743273247065207295796520887257942896797757908806116825617466875110390370016110466076413355499711416117681285227671811360150178232629197515377854654684642549830275176105846166958070590015260400975530219740261204594019220450752748003240272329674784834041738588003048959796189897075199231632666577228874089352140691887452439609467614119914065216693224016122580030630279388301861545308589325420959060687023972297312581949106555629131332491877836968438553985341618094205980483170102126533423589278954059658002137015989023079262270709359024972531401225090189489966666707970665242820049385531756303117475599282695911999179066258167151487269305322412615473239171864509533396463142010355804127454935497279904675272744173658444273484448218001454965977702822803400130369322489477554814886265753770626387732752014773039278821111083265226227544238611749496340848609796850772397331529135491692569091368217588329598942714418677106241932216978480543067205596871850422815721296204699227739715918997293825488218246813869876772697831077914495401118679969228474575882149028975694006033571800795668516430891674035003593197332376075881476468034341168898913865318843909034793308674067993867194389378350280539252931424680590239020681602231924289104044296378027888067835003787135344827698241344018278562778713451867903142692759644381832940526019746582966445490373570867882236305669322187753810152466032399837840975705681702755885517882769648495195859167436576638404777873771918051500629350310023667935453787668673636322303779643719515143809728739099865925864962522330476440589310015685294490408361956941154634544691471299907069250076566280585558523617082402129519182953528427573973065260906076063557737501715957818539662019594674232589726256701574061749840186576012634068542745411798834196343823548738084905491202428606917224050342806663688100231334865197913425460287860776004513487834207210277832845926897356257896190239870517710591705797734502309038133597942747815278768198492331905124933135422789300308791803882725157206028491782083055771150499055441801619820143319444984248970647883493979940904666585552776319940179074953408411838659622751769629664594927423074747295230556622570496146692715545011520621205047232883075885825051457584588770598229166263814813837162822556708234992681190121841946717378249792311369683817573206269668585894750290673005527051578144840461431671091744596112929596840191554839387533374877484717457712885482996472485449832899495486968658700082506723555748905151242777304304961192053660735067800849768740575937960043020893255922069071028006331775725028883910802821463010569657736158683751423555233897133804794336635906106624893002374146433352590716047164048169277038574740159780555206657775686175652252286023095015753786308267141301071864669280753308269228196513472613415022845189082147079990459088907887191667917849197935004118151970470499206413167213629456199870036243068497991286230720385195240628005589953954627567015530832800745049495359438660270416281536085916666206444535991877920536752172191905892963935730411629320024274460829850145759380595199764486136237222499735361602892552789462901621873112092505748706052638802008250478107171958339121074871776763705839412193277152799483180027764249952222082421864831553584334440570106132173630819627259787267523971128344702418315336836864279187703000970751824248373632439685458623339689077839411008448992069569364117155207078771692149802504114769205185227311091943163171222998141122574080345189672625455457083695381058284682647126707275542275609657850811110527516739726316341426591531082827261212679389335658749742016896023885349743908181053498253233452444469010638579556262007799124216915244447186271486930420959983208573753300525543481946039438351023066641574019732146371203099933198318375714252336987471665131956472210446789482927051761994752730201562969512939551474103251772397293850732438114802843249649991649258859297638794816834992781506436393971800271698809401471946311698612154642193524521907729675579752228263270057170789200659387121567173377033431242197123994947841136069536598975002289081997199400918155474691359482366173197901110685983162021942813834026407343938483402136456939600579321857283979885890836815552987433323133558678529936236743557265757215370542760710163992202520409613345673971157904826328335414617036213657992610013970775717279237237251899729429199095421289851284937828077531430032102628940458123856674096551983921737978029772355494885025175380296227104119540530063969751083365858551202837839355089773422044993584452456269887346178802989644879685085526337185566926974386871118900243598992199615273637591240945003593120776517863122688826932831414788768670254250808572104125630208287550069845894323567075021191016579548390843189842061923532489149728508883711832935489198143448333963412175482113075113871894182760727977874449496816557556530803185837548826596214288724478393690717019211693784441725758063516377071619163405203305327955368697336837154822660610836861890273551883872352867148680866617112057401627115898532063455736468673198753286260258842994500530079180051417446410269630180923173873849618294545480594102366776072792501469867977180247431502951319860130891404029817202746571134446928444859364226326425682701917343381905583450513928167391362812821429228855991893948813216162374515992311287610356218680945620863536896226999809750703740866820970433729073872578630210594269270753384008088361446969221005760624040710147470350999737648284222400569080684684892705753796386822537747611284939400902654283882972816080607918574104195391358348167242576796973589587686291610941608676069630200033265442831975047736085345405747870335004315496914465387665992602755862944205089372045373963717675691441964719778099330761546553970986297565046659743246520062090310716076344623976269658408620153036631405735934203554983294204849186490847713926070676368057623303848251434892549582001407515389009616026702578097008163259988910166422750827377567681714364156712249741455067402514366581717521169400332919932025605572315817855534164020985833221665991176401553823465120887719443507452408651741597373405918122325715568625815060154232078310120973776420954579056681390998374324206492572004559357366190229834770854423409178159897516027240043514269590679487837751570335683666105939569973444479382476534142689024933703726125598622773224782263469380813922378235864584702913636021030764185950535056350942004068609117140757096834239522187610363180376901461767197857234013244433118468274621322263124218082843484405517685723292805805217746821181893220034738458628099882562037869333829802111433462410813196234344192063475700207870671782586648308133189600562927672735629716610605027343189807547280162862572457377906152092786027798005446437256791491538576171705359345218874353342480434025939251920075370727725923875214945065003781661665435213359334597924048953220120953769683687433163557255724154897973252441500491935113772216844280404621953195926082789309500943104483555834601238305555513676573206894937585495163840185006162917667590565118610981914479763168049381176364605285233960082512747524177547955465125322827071727165140074498372594930731465243293065275221808694121419763438854946358929177426147607088838400636503221133504760297112746049456300631111897846215460051788714410947885105226417891215733685190296923074044966626319614652566952743067141995353646787615228086094925543295504810214327405719226679100158619806325149255616289212448073550384470102366542996285365607700630849138076254263397147395736924118820967546002776683191967229712919029992838390157845033042408476886097075158671508181796252363508594983791972742152567516298789682830972372542084780946771472635837433521680473248218833790553006802321088452941918760575285718260340986244492918043916158450933311081394316159791200735219608268184787223849153101723741183988272117690564287546736818296002963559976653467146780793534291384825103204543012158382218030653518624987011404630254005716391048551513792917470916731556173912013442389264075067208931265271103697395808501324685541842261223601408609814954545628986219420675831729214793902462108144352243962287458992769848421611873597371937458295518825675924266601080730412661410502806590802730085208316440457567766245596277629452578609040448200311249842340693092689064213762642101916963685712868987934348637545286419351950493939575912737176940559820716874251182912277670098529665540312415830832986258859527653914549568401365581764769377137906942729062260732923072433631314229288141006875394042705484538369560440171983685543154648181349831608528471261520602922898286714572152941108757529394473616299233578458253992633681204287917600681321581900023473672486536590745072336724193545265764731461690277409257980633004703988446913999138919721601263188189830221443735309232542918932382740332941719820461257065993069387389303037710975393319536576883058954181510485950840354492603971642064584039501474553576312566084081548023328065452575899132246113499251215074169658166329817942612386601632298363593023286119776228230098321625694276129026692901068504488161808088044871230542586664083375213122067855448119291141406419651784407516567522885405894710371811339201929422398460757056868696828600524787247240246671669848272444027547684746427989123046872960688822423175273507753999127172886390180105957064822047787583556370119756442954584342765598363606136862092749360781526351999113265306021608615594310225354747351716855845192712930518441304479893411114626136482641802420667817625491016836702290475568094730359597462423364057609410509628723207980693678083393350143413562851808405434224606286282050076921524803253283297987245933407752451180399192934420275897332274029861850301365947667840965813014303371725858768008204380553601627513662347248130314459458785677797863483130033402884394409712393784977763190513071657836336553591214047042729282221490298445897923276268318269512053960899453273031043725135861568753067053370462068959435725953117888163191489216741750425960312783646011500090010563904888565947630343069385942281999127902478538317009187075935670093718933850065848856770277956083961124521325784679450133994978661758893776014999703497708447347392614460969719293974439072166447471644492141893483847234626940541829940904285013913415689070341530628307095532131627795852863445444681225412978424016588489940790930022497334224475217702782726162913868938011224485146985920237323238181387823316895702817985279148457268056563190480693250866893666571175209793028215414571130792078194796379627380875740577284441136811584566858155768536219554575897534785462816947794426786669662631190520545235885872529648042827085588274913811222877735020665283974485210190282999350290656804607321845006396907800463746058395290481066354571414506032294774095283135326043476428204551356480058933054713045978947501679711943513568221439773816298966645272613719162845804318082674042495207374501814928764837422096671228924182788300794197054824470991686084087674908189519802117176636374307499284157809399119893962577200895437406216415105725763489870015485521691778938448984005336560112515254516065793922201254858750337692081527926068727591655691524695169753144657250347005355519217585052490773232902201336481135019436419103388278808876436415579696855574158035159042487782043798501524866462146602397345850394338225038019989819021807543964921688757635384898702827758992839116403699442989459425350189372048716905981637541930351441059610059747668767587065464255702857756753699264975613010392242632791429376762618357513905479741145071077218546812812421700791150431907183591578026111040478186052739230977490000420964860595776664844506996903757496126625676066758639309817424507640778460895881235021466044291322478227358542683166765552339711004372456961806240659137169300669386324512013712841394108108470605454908324366329525228835284053181847388204858071582678375429507421634896003768912855040491848652972047925777878499601706952766546580199324498007021330624215721989129374950216325448099756713188251773639771096482092765077815063603911504691296427069509888485225892001609016294626702202489241764464266248539870832293086624908158208241116091836829074295785147288822253733007771439590334789740401002420432447651694546627370912352577006822957465744154589722123507166065822769560206080597462244634633688666786782238267249770994305483981740058692997140210644570303481328083086521729340645392811142582136810599624670809532192173447214411469471771997312026266202198121293362953972210285705198821968621669311765246136463061056260264010103704736773134174311735192329630549550995668959874539021463889014721129270690037043312897786115143380987594795308980391571547671097434417763329556896243048277760757291422899029092412520050495001039280840910117058925854275471470151133172193959337830564112585160990738297215669048148087701517451295086789523679403659545099398406155342073040548394446806641648789478909165491929243936524907311694139376448800863836873703305415775367685388951316860612245464128503290094303841881500871257439053648176239634605301761853713911978862008253118881605669004199795825426156383968821545134019927438248303304845235153123648931488458677490290679419329093164021736064819643320075631133578275074536644481038289676817969787693283566364816516677490258238590885920543305966905890894041628294456867777196378254585994283075674443558029006973790920730395799109701257442973001246085275993157212544819273833543403715667346789647776921976631646012532207688784263315066245459923104696686407683426646701971301645562810676952245392540516612510849404389406915548462081014082499572086093119411851149637104198246780667395804120617046560994763829435023356175456021868655812571605417825125183404266737080124340392071977114386663250067869540029576467613860074732815136582424265716713293264063928242796398092100423601317066007675979893514479453090816735539838110364893607232626581222753110413552773442527250728482768501648406773670379373638886063803619477604559564316001034677503935304825043142796706984710549133763905151616306180618314602722925416210596191430976110389557820982282232797304985249691254019935501774518953125915089466076682853117775341947493265014265886131843751277666079766184745350864460635056888240559392733397333504378241496535653840856514328178830619758697536775197966439059026161992135222270868294606430954585496660996351976424055864446326238539398934613599871240222866117913856057841788938035226023467893224258925904351554777976222109349960698133742662831280018285741828195017761627548413933826609137003023390270026196813679208035585293652125766011681650801208389902350634591967534170314921332753025067454101245532471563022777137371555135847055084568073856747649350226959986573007681769402372020551864210041910544655883291216182649567750624106062936557032403562994417393235624907755315869518302684430050433922194706921857224339172244002340454340327865836151520416315057374220937560835446444502410146886183063987380809655898705978754771354034236843313590273717484981566168857815303133553384025801590163108313481866425815887381245958537430727909392559491493836906025171538358776901215079363731424018496469289687586019098518379369230290317169956928863264887784748705969329927845108716816658140195262550082553267139751701903088335713087099898748875582664618509286472347078272649455758654705571620473670923716863329041069333481550506840217026805314281311709241791878656272593828600911934861290999458593203743331577786504159428902647372869867278462875511225487121465206612309465452029969266896311028587641846387232360499627648750230237565290556523910649145261557669848523859260689729944822341133589046244170033906334410712283389481303378713345506643870859468675469218467463860675976850418670625398694692044565490444671240978738051362373545774953860453625777872005502776867395804519929595884050177690069881434818480986708524793014939599459463628764741244497771082943998230158089465245009643071139097703464235623147893466257815292917791775042807895310808892200250041947125966539421514987183552116562814816352364589675470462051295109583664271066039883509953437500471703054736782766138642168444510321572758658688928856306116253607049843339521344620014132136919612791632808373584309459861652363615285907760665480678964367581220890385509631505656497818724843210370661017915292769083730150273201883454231510463086832081381720071676580758646999169849279753930077600170910965647596050216186871101236016875968303599270055743787483264846814137367352013478074478646729826653482526719708084528874080028812643564721082690146790088954617834804246173249872484276499464781415858801633527134149623210079216821746591137178535203206389684515413149353159858349468369363100505509620915572309546567631815548390971195166412106734050540839958976644300983014808867266591625602728530517078508066819572788486064954808843704882444186390431675659770075424637384313345167909014711377784440267860897472283971886479248842285858398026645164716053461848893286052909700302808818994714844074875867729192695821387235290159653996859643640987639137555619495354128786260634008687412365729249452663632668696901859129013414173607558145396579795478154232585911137135362374187342953717400592308036462769857705251085862603846630323431620894131045032296572205200497595325649752029773814135882678045912864559056116628836987442949843811637492287577922704823862242607528513005849501018961289695072393036395769743674309227801349324787985308565350428142971314705520002782960796588766451323052725300304683275454493305917365432342830611559391889391920491545286550491485759394401525341369374848732093187453371527372490932047345546942721505931761947723015562921582962342311293577085021479690377967298696075254132228147585639583767046135626081005683468887884808561615386696191019599049170530353939602361886625632545148166323827844370875724266265017766677904444907565311636360053017675956515711654254738173343929603606970242909554853001600507061896110130894612661994697562891806474981944085377217707182946330623569297365120571763247496675263524481791653082120759234165270408955586047226470162630519863246631987011885711955083207762209121268440012914017115401198819666716905813648493628836497724662686979469563714505404855855533803541376508883245742047188830583606423176319615311856532764612469624793348025368188423634309851317787445072711207992705608397660310339505682430990714083381888320083112940700312616721325288085890928451066278972363881660305152527622988229335884055808711082370107230278010444893296197422419899972827424314361651853884512371380140421273767967034349720725591092123808357062319063740323398296534710240435838078734561935557319830896648957310753307467780085229277268085554295794987917823434570092241274884239792552917374955206502691946776725610907340600916580465486640969203153705334160932049603597426223074267985076831769802521305420561740206324634145961841971611631609627303961075036806223172102669315638024481879951418587672629180862939494950177219905810797806974373057552489114882814886127730808503429962130038443006826872821031076365920889910216958281008451427294157884033256171524634820410518747808537958503113240119827810681863445189084307647722019568932365378771588249214453602324118121241389211455276683352911708995047600956862181697496234882335258270892897991252657359380016535770859472856659167182541953827132040421646744337985962265246289667857696045083857154384437505273965745475927804001119356549345788151491684675488251946657463858615483849122733745060561816818491375798138753060974000866644501195771523166505851196625803310948314503692991055928165140075348540873675308390113381639743218371587068995810572847695116528090215500552453643942548498655249220626228711844295490557093251802875182335793389632887152160486839770107944793938105496489704928551688880447677527192758070420897022406411872939744398637615961619744652914380654084595127029962661458516082578015021225444923662172751007186455029214556884304997550560978964124685658554559742464478609489911512719208563045759381504683220758814729831047335400107853648377090038815534175041804242217805275289334336472242035823694194894678334752481839971864598383163471229395001233766714798919925244890076812361818745630472580101808986701949112365450377538634556702651906772786986727124825565161753472935160775174935696110960802758792140118514784305724588892130554177128998329412219271391049042960961001012208751890212684117374677124734904481295206902526689321895505811848513851154496431494559223150568185983490272195812635538016425423812779818010981563423833105816145752449187732294720713136455028984385683310157289667952177968653215512803244393409061730629299930055187128767072516215259908461112618432754831000911503319342960374306013001014511725583663644816113892771985265800029307321051653060216974468970791728893847473117126495087362608142359039658641616820442469299353280095060773611860357836653036135231034394160356798755798138389079757807643907656115139502848511885622063245379203013581178385241734311018817328075831749372575436422722071446133597793511012360827200596882854462516288807357861094404078878115989421868743697642541924464622761044500171355093259059169626622254431565974807696539491656672840267621465201192827812221281276891158923110435122318638313716780960330718956189592742800796553772053950451541090781995267034939098199403777304081468108238321607866058893505173957807068286904453850796279389105724473781298330990745276363816033002811940561985033034689458208703225182577749081690393598295018103479400419911729120808553964538391197662633518579563683415894725180812528335354361224887578248557903232508765056147338690616550618689870283200628632033338592277572195446061410545476601244412533442069289480220493697431989105149752551521294280303796611957759474837774957140740785600777046280043587789958596948666866121379232113453658205950114026058264105322280135106027611227395981638033241245699672959163151829465400081698167431646942054707152217999651438408693715430944684985298003859994163937415584854012865052718349209240540170273213539792338885062176625705096265804015817753272511266345865502437176581888171634626060600141681102315104097257546351518220566556176648527253530512119063333881497325023777513802732283914422739314197876394173304223661476946571936086786197075718645930254998608699196293921945295833954322053462623527907266809649427062079270664769485363741353569439204840362394967036660769483033174294672480352592319170390849693000953967121782378473423506207914185920682595554625690968675351295001818467142004002749449518020021270278654476820266967772925030055835008668555059416304573995067652998363484823520763661904301346927687513088117129419308588766664930493101660763491626219068365132351503190999086753646944203660613855302585776405750935151281819320557701077038973004305807237888296820492579763614784658449162669388988572839244081274718463654246910544671801408897657712959840318519005269788446964353467152518100442340267981146453631868962513205608140505165697613437862444035208255220680186533117005303058688481762088743843508730769050753400561544855743962203345438489743795477497881435897041688222375648721736722455676603097922875258447384023837386083425156820117245054883995734767410649042206183596642457273205006368284854558293457677038512434641090196302435181793970525779059834743238496622132821841774003793440690326545244602181136677063507722995101979430840956842248812911434278116352820613599109878428369906792536757774158493209996531463380473299316792153301985643344839233333230233320596680924217193010506010645623907317140854357545219848238030691039872617395898757133090738716459341629437315825681751439207799995268168588022786484602370485847345248202065078196061511369426042593768667940883900412472930744271506871362264064035875639277523822397512699275629409608262941372473250759435612053701543539149464816149337070491170618193564066521813956881048534358256306909053873828595694526935408702245154845820227481327940466605843815711016187014316900463372200806423281326659397500322119374301500882725546972674710326915164322554602203301539167987375628412845445083883320200041980404427786411878748018340543275363901114379977418141689368869268585959696414637281354436256313649250672986168464479962531793057580168789170784518419925475385797669370088434050753855907347872156392089461532289949533604384860425493452633557883279125804244508406512205445351262656176737292213569366839109131541356461417994544950955192961428580033538957347021550969566813886341966581356739917265448786915087865935152166934405322299148016777687617188500386269921408831538066497561263153423782253900188549594557585429101008700531342880548341928989369785047648378490190024499135158919137581365198300655452179811976387572300772152832537905865542064492683803411446705221075681435552129848991786948943195498506295947071361251033620429857205585947485208812824124010656543997596256989585215656340936292164913767421130097982787428860039432970159908236459427344462787703633690970768174023033699844968272137995657121929794610625157026100946961518233885538111197429157094717030557567629836809021690549507517730623655142517643460555830146187985511753538599138049327216825090345716346340667908879432363956839508888122277734432231856149939830461407589851507137359261649182312985650574127658959317459049166979681898693294732398922055057060646771910389547616208202100080600606107661245222020587248724739845702793511866814456455886980800339782071473879974690291641358295842358817454938964651748994778690281365315783281558335365161721405077644519234521241386875240127483338191172551750721958619720399656596895105335538946577719941180766534336001815878493746243653254237135296960152376453637151979653144813971825854339970771750346524931909448497616445269168062491488848567969452851818221807625938122670786808004039293611830926513918660775963373320464277518114679796375154215467650693438958971325574477126524131779870077170612581832254309490910937141626176333078941176483877368381575531120562828673828675101893620691415278146717234850620012550876031918686221487655055825779739086464113248532189657924157897340320812825030832925276078156054278430019424138483903226703828147568564993304945470534021578277390905199311788723913010059542305677132757627750826547999358287891883419074514242310410595408273469346070781344025672771896006885558216747499863801641831807514571015726758850701855611530220106612207012322336392625442107004699146802253735475939350567032278973327345340522309418142162793905738552789355140273025152219302252071943665751713146351440732759206596651236380274913023800574151049530375251700298748004416193260286223421188427677847541153363231753110278892024890440045575477193058108457743856519340278412780616989629608017023261118681186792835831255010752482558579315156344997163077499257878555669849174193641918706132640243982633919846319613038315810385888539491464126992734999834941098084388765009963682904215496298193586261816133816289241768691462941789089306515384892380714023124921787627986648513079857733733886679479714762342688257027847392907388055997684318318482424140240613621406214934628113445945645592716249060290624251170494536735324292617452256706924555851814784077816940255901690645682829489971717502966932657633046713946394390461987924642731787642165864328986907112926766105726078488581299728249685552663946427934424885277386880356517428156494596858587324365519979248197718503664898483204696042436053293926253847170527283166930963698501143025960004610277467152923081162689270293195804509967678393247911129975825464173653745057803227280932640031981399788667345385446788493290153752950264158436729455093282557137716493006125997691370075884768339891754714729982286276901366940959189050818566775611033222177964113677185414550419999043011817303741156596070338100968911319378633616866827786217857092899240783565992707690610191599605511568940016393496037862887123944931528358178141903902961968645709905450832593135211968232342092490858149452885275062915214771713342940197789859608782294101736227712754016258309173299231633918800576481877949828543184794567430742078208678608441988719676066694258239620976366688722775512756169333486574535167096790721297232096953773113616174207824247127498896139142274091678965387365694074633315905188458985576688202422836771696392155936550568597240108334094895563308414972162675444767283243486276127167401334880597316389286236172231397809709562397685366547425213949430270432847426873923251172987652462952979122561236961855956679617482391406013528686499778796769892291911089823517466230190959145166596823199120902750362878900125873556583534053433330719949233899552884424019050743750185933655790096522367260070739407183872051870576408186370957952462507199638946795566368121682784947125526979148686691133506090099818150134909881823970386265844186924953172433340236754192117346182334924846908122849599981220069873496054814355861697078693522338131704351207051107812010942021003703943736446681796829672475504114289129968703706074647372262044109370916899087062523087298501778751640283647507370418184526449075825543903637873140565362901435129764502932275570447508574941349510716579188619562875327031981626111000181626838269781654970956515227876729647993833890434315762107183090930025036389271518888306407843912120604552016312374137830763627678304630497698551131867883070615904060327930368571459481329858731934474779600429870170888898146567251019210473709563012906017475442102980862827726033724959179177855859912079273793940966053209568045665620596948695582369320485838874566615561678160581200983487296916672297267286688065241855438111552257215183041503634240474370006842885620443451851967166119719227000913645673086233944349458513806126588745169171510753698278722000950601199924220024419498211364999590045628331453336101745173112879893428808316981665835803843943544294408348489293819416846646757541629478449373590857006275511382964778544466894437805976776202230026247392166173189210770043211110177420792425313568123444907484637834314595981328976740086970545359277238135710408330853161789131361254288901138419886213956832510219534214179957910154372581329997341550445036577124813450708807013027983426012360957906414424870554443887825643356216866800199990427208821063761785470911529671466094743173224761637292125757071101097885367665398345657158532795762498150271220755117310184466450297813193644422956281952400573494557202972554724100340354351069935162479566757137644814512204796175893598051341900901726441951382014132895737050191667181758746925915456504425980444568009487343522420299060657354758387317721866709045914819829306288887460772312323643135502776480879794805141197172661859840524661409210596069818750167909999322498043533795396016698553375917916990655679686237864476316608770735513249798023383089656850476946110189591273299499504329462756530724329464823573805443134195427209456906362559125162932900717402692959019771849551642048831470126180895966410703619622932172987117602098177572653584569539898002934904679055573623585689915801078345200142809098437758353583791411921359479218159470978350530424940682116756015511287545732879926521398339437976346364134038854503726210779552172693375668191882827264101035095947325418442137079680214329167490683852122981502494362042214709035962446234956095039968529349363839365819398569213714283867656565373194576479784580010374595994931352950559727484775970518512555828152781193692373094376105179771144809079862004511707432843834602406796103709807562316079485073453616430464065394267831254843765732483045869382793049861699319574506133254636959797320263125561013208608838032222222256148140794479923154622792692904561474415935295132008874254502801843792592364065290711308187668918949690328947402662258932173091145868968118886114622809675941682141514208243151136937771419632377957618934585040858332845443683971774098116868823090546703005852361533817184142835299395609060404560725543678081188539355463175776317092501554370120859536736593856909602338032066074030367638651681504833124925492954988631814432782224180797531807396296235749751361623173798497701909755596400840249240289837753858503896407520995577722017672608853987175349903091878741533976768008537375782120772357333869182650714824762278386339056383996862846536375428447420909612287980500549251531764046318863777712121640232061968063804680061042262911575621329176259567479534819848445179745620290790480739779141174001478712873185185558502076292916702602778905729770167864688623273538614558800476319932140783001800994712648949237906550339981624734424914128131085116582929462054784856969948076927160684923470644594791855150680042321218248559812120402070078516437184623102140964627650721017950802609489329998504544402267403695487055544788333648500694582936875944473266579079125667552523966849351026918861794919234994066127374419076292755059684382932833518262216674605318451831696897617732257094229150559619366492415359849366668047356636603734114979164967234932805028838917458313154804209536691314562907066120207759514460279032913303655122772484681023492206925964769489885593364992271167136618284177614092950490062305293868422576254376427096883979608019850015641784817371259250372491843935128428428975591099467820458126227659762646405399924649401008709538821010940282735212851788662293091143449808851893434331932521960679396088902695975680662243292980998713929784267523392524292429808944969715456026514296718925549502797113538210993272703489576728257773637283775232261244751278402584295405531306780255516293583497128874489260064536431041233203009857197768393790937172582516305640058998695718899312865480444545400142956877720246139626424719744509199811911463384967415202490323815189973280543808046903043945610175636798061074697681039514722819661514918864508544306075945289466964373841480239676039747978734973646569152782784404689367647559426119728343187426416667977617363082510730526064887814607672919361365541259981520715083202572758248773274119054529765860810198822425136708203102008907297253344703274231692611609998399420695293080953086804095783572396473123225411882686107145857541640282021656171193500721540564761137475618204324938185521090901848728592877194849216259370374408450107093059164623356629330253353920123030454036867299630583093091986817458215501739875859354576339183309952982444107322402817854307257583363147905723142925069969458441168245907965748425822416839983513703668287879062807283656308079095800799067509680869044570378683930269622046670379142786653359928308981943983363729757376737898612902549926108413885758582017150451669889478761981786643717285067874967394652688612303632003811485596229926421754089200060518930283566113437643414138010731922782188232596722532002994432630192462272742143353625649223872179258179726126923445501281003689941953714411048780551837710706190044974228153928654172881165333297958642957684926095096725741919671749472105718916429804060068437790745461373178295773055792991020228139902778537508597332346382070227405103067422176048129623275246802908775911941162311709027822301306005174682404856966283772820194871720927377154982970864918557114557244681493401423144250322140946698901278891770361251481543827129224416814597656463822543670152739658999995675520220816005250404984860253485447320961214315550475863313291921986222310652132641586501653316675215234864688946713206225260810547802911992188754902301617848255901656146085245952655079606931948724332033708606083297758149636581327226153431510582682852367894121409258215222733233954564380165846349422040490648862737056652362907887347265801348167518478616654742369199609260036908518235845086270934831442928576482462507136024398362781090618383255837555362538890468566411781309893102395604468900037334214170870220484099722664402117942414349730930777482846320887487310566228758187673615828239823182661393756839475291258160924887880312512394618480113937488265357016844644282423418029868648189891805070632795983773335413391865689002586066733047852744895073534076428084966252975077476529768020484397329348553034524548661280390397025202627480125967518712218377565404737315178816220400195354092035756505872656367405855368759458878651158938491172495361377398828082869023902704259825019568408365966619554610920708767763760070186308519710090289904643819899378050294672716061127165766315231926470114116012641201843545988108621845580540097165357324108821167676656780722071663595541208754658830479580846624745683170785313434381712079188034305563451504547884494315369492676517237951659930150727087733117859118339823452245769629724522479192793679282691381655471966059635259633208111876860939633185226193746804894448409546137853415964561487748170941311864932399179451625332164297488243339778550684640092105004357746246972623225150063600253549790961426755670787580776700135433277931369036800049472314751662168826838823446802119403932673171900723230459831127627040977425582230436968418781185127241422105075885117282409856864748166039294975028911673298770040072065055406268680028263319299966831703394981544006011371855096930566538924175295876749482867668461954891319763111899862622504833767987980507109904869240986571352682561586226234049251873530377752611444934879589900729801013950452184861897013385580921912118696713771050746818260989505385410326522511319880901801977416451377011341459869210197825489297798330424503771628328242722586210499423105398470161544614175850867475014036311822235016172072034200974452755425144322667929461760960940753892429441055988492128832703745549641416124719702035049704398449474283419267689994109417956258035701547293607473571992392540630387340176522157285835055512321712584079611441164520356350729365640479827227927518179311560872113400266615686598956369513609078713129536006404293783141630280748679970227161148387755478388051829183510855604891672653640925294420825917558466773742263743897474021296834806486866084829111677314547169359653401003734453856926521733878165979306121796755330939799969011105450056681947824093214075914202130121969045648115321954755565364993839756720190464290146313192095389503230804104650070365987310183019872198775832958021714356479461646729027332746388860390426004026685194553375571525345835850966552305002633312400673547933732944533132927933118277524254045848278755056083437846649119932380624970614520359607517987086447543268212059278397078998211254673731375430395612954082694827264411932871673231830887015942594125574970090822792834657823538443826109112712365857680435888273809618647290359390404783466208681347167966148750622930470650573482089861221316375456781036139068721072448786213547028871774252169822264401189664834549170388698279455207359445402327085149981959225718774455724385904112732293890844344192833938244094350444314115503015003316198954947715161161503070509909694825520491192828174272532053019584477899137193808579801274500483917484587674926439608104454041310119002476566250890599790187488234113587861726750660373454568054536577289132498245200967387870808723496535333362458152830208842369316887202938535246332700717658950585096079018392773062025094889608120141426048678495935814327336531656582225229822014644132532190608178174345146600175546986495249042615396432096423695119371924654520113179562074224230807502810390339310418924006430604959888927759266054462757432155070268066857350595405869386488523954957969349625704638799877540636983102306973058444696311109792268839749386479073334455273429004460144151338466676508933980961405542310792091837133512122923169512687178845714383202735381863663964687389465391578880990170120190272379250002558191434141496347903295326170403512864020304206402712079769267599763671193876553183873803481796684117071512429914559424837449485591512846856110287391332135759031508753398323364186986626901085868613725338872918555040385356269712758506242262054791426176052851676441352208774980803795843916096097132579944714888903073861360200646601130530033289835624400870159942150688601405369577104581018313001513990797215437070466519093640981512824751226394986269412003126410854710066036946690322976233479286975225280318578643858349820839591925510576901700519134764952925345755516419084846498878234493802544395710938197473454648098836262612605165973004678247727120056408226488964166664833327929726830288568351605937899884378544242971541972950551849279075390472723136358959146822885127112441714499027209712676576028490164409429151298278852588163334630314183121331348037973813349056964584842541691035338469527363374271873301265119866938123482419510834265694284520755848186262946023185305637673746032658441210023019321540542223077501467099277593170519310626953510619733100147182651675064131389285842592407461477366732119275636391447446520876063819123958327026048379408851759849918968515989738832785992443306148222737310039809979411258018099918004087579425501078707792718913727836156954194016632253438471200756877376138014155321147679895363508371389435770024396906365477792191842552781650574209725851535627852391956907341676281246827372904196573707415309056317746066566584547913691499905984980620608751943649888283795760832438037263077719415999397497397312308813758572605069000937585521929069529139568983409629191191654786026478910601724955512423871319000262805509255297643236109286450907948103701326707260106849008614517648667959575021991674507969791465467300658710693119717788574475880401157385360732388673197599132081217904232779095344823130685606583279552698694869416111161079684362521323708505173257185488149581692784807445540014173285417670314813404345100745911970247507337741258450759096152771374094521444219811100736023820184340939539737151621649371375875885521512472758539436633758564893362151858623949190457412056139644295789005643230013268806857824998509707962057736721626188323677582079563931216623245732510445468594470550005637102166679959227033599670751041398146873997002066108828126632907751713713528531378664631889688529981465005844842726265975031771016127053505704536191735454651158703584888475758357233793237207913933355811885336095221316969552281411688299815040361840097841107053213604867735518187714955805723759726562199342276745562243923259211371415125565648605643375000771567114587738743047083075495141190071107823882139190008573902238862860413588087199087551859661794832793353854159682496373469396370524084758172128659498313681718162489831002438039131309358618236479626775647580684960273489439330848235236721635153360048644895299586420772314183772487849612278302826343939123898463317257540912126360573300925255256409923669709176508034322094445804137944457539218611037685139368507944399766496485311364998122636815004395452616890771877016151913231662727933077013593168339457656153385901303799112068992821806908789631675945253621214913560134135449615707423897244176645081159706152246407689772761298391764751826479751645189091707469834233887098091870880617509975814277788363049738398396240420101677501128205716138370697647495917435794866091836537821695238800038963503857349181533593169466429972845376628803474257687591627781758186471835179250548761822908851790561792582638438955442529357196816935176805172921343755159707640263419380379189824224264404849518774435019192329851725556541528735752519270097342259569006491835875414086220438298340416926486810792384356525492743849237581135017307162605982517724044374250708161292672241099846631202383786790459301697986796527545972569911157251147347250054471389647533473549304823420347324463182845937431988804945781380249704761066097106398242083892125461525036460580060584924215715098564807162688812143460713155432360066959809577510297160664811834044859884385715221371685222185243631348783737319694036829993017663646235452394003916863707907016110214530036901221661625578160659628705595173944554157098727884946453372031671740474795877551117016709873502006555964763723882446685568619050721137540153118827469295780872379265996801990101960044981676453816304134937015515753809458442099171786043406871206768899421236263320722305966653926701803410307420075760584798757075515987924741941183985331988469096886502576110579768233697704072417632015553948032378999498602735577039534849154560354380976558187158104693435418977138084520216385901336424268923006980236644165811859605580074383265695739073056193900405298493798115118678792801877705555933951558547897659171371646243486230019397301940150932761415013258802884029913736437882080681711123002229767222688199345953303856611631937131767436756691270432622094125293444541805857545530668224748487189850095352424157629993031562565699385975938146368482419903960449412870288048739673016568909262700864896255145477137622685060315696196951406856722967056492788390647865179686914738774204290071737377266446391123288282817211947203005272014923182255326971795407850539909755323487934198596255390154230223394279787564807692668212523553285945589410617996357826550653466737140600934314888738249208436085002018461445136952733560357894654925101657185931175564348316609038822511580239754318941677112149251358675730712896869680966412557854925466375823349818788233434077648280583524983837659841931137359429381021104558622260372073260312140626660645013659405736402087029658172333302733753219178968433696605577242287355948924295602749919695029676648287322594596281771740681486466561270591480376123069193162390162749778319592970237488401850293440990898887795472859868936677584725047362538644719745683531458467085479638289700965204899055671318659042319731043061110111986841928650356640482070698782013861962393963377382102179189757869645964476450701036333082255340651451442452677370453391710242230074608006083602115887115606929162835474890242633766687536979846076936897505475496705829794438923185048235820797678793845318911280120045889233561093597851146195290046775994380204172959588100060614828196646088039302635499879862569068157399709756586919152163708987275589025474848835960190087668056352548759543914095521585748388241973799727845612373654569946963313024181483023927103473817873515604460832010004766530183731171532349300606089878401139605908381644874778469760101537903376635451668518955042851745502367413810017273119044349280627103059492736575450541654061218021596410118016977124899445827810337383084596297301022699332280460458033741820864797325240113941309321656119533719322625928780768063810300897086875895804876041257697060909837152628663529924475056480030939759904529148328821048980990437419654592804156330630790724521790860299918910846831700967248814798219935783876745612758180131518711665225955912055822327961435212165823265936630057433821626226411664931097959501832912907007592380092067100944933765194465429210934614351202062247385965893416718678271843151551566452487366833181833642224603049962652215320618294499384759687173533394913288990632064224351594238526788455981786738061437021689698767921127746384848720926192335063862630051461673862152528248648254395855733001812294630979133568526740901572705172711344028422615314981195537399687244732661313870413571919469467469595283953024764146033158582672558209099560632657126906345127141177331014328117225518437441118642153401718882889246639927113020086547027312189475128043037313703910557455250150968236928974504688433805824224739148029126833896993959519819022781793210923614224503334097993613145831529751030119165116690376078030865174525342820552019352157504378130690231556704270563083219554941292945141947278742208717546430330910188848819657427903377784926923911012370434560345532522410633076600022849388043708886770358263669824722365612866245089437968833862255571420857333599783054027861042336789365378448186140762407208438335598306746225775283850432109352156320285461721658996737615175494169927262438400088949857387438189012391205119994956028730295297577944880982094542593157069930507245876059476662514542973059723022681632127451554575358900245055688902847007566310224536459812000047643525814839672145772330176851706908760563807305634536799988607559727305476123154094025333427229105151391189520085652821286104164032955411443700455871578970942133519146074437902122051947257797547501420841942762392434959357529170680886485031622395888356434121292967212950942905678909825539764160950272857876427453624560927868307875466582594054311742510010726073675635287372179150954921191642292444919427547679046297569628979312758242015955840242494578585508826115798471694167771894553246454491284798138544767978411593960752979822859961179172339033943664687177296800474897907853270549131318139328179871551112515002617574060931732535914434125498748223553348023899388526790420224470236267927422898780605071663230272291152802097794311466293560217434641256891624802104954732566901143520453925019000601091469812560725941823341585393568343930379964396448226013192557700188950034629460465772312459282664121349118514189892448616232136306874507110321437921043975486694476681050515108280920412224044257517965905301907185621488578429504728795229962970384726156961947174576499891329060397575273032216603366129761601727965023765916813302709964688379616147523847115460727842748818883127489418851326756442630776864227169014840258292276338205442855484200593188277268886795122346522451246660337149911362691979012672726163747096565112361914833973777200402847665066710667372381322727247626180110538827118988527293321893183726743451922243382781713094850500932340133660732703410926409912584082773756948235680442671408872260361482535452661390671996107528669695716583549013982660721475529883874092369059551536353147679468798743007182298762554551408179796106790176253234746090487448859707513693253136980131623803950380935628896799490277149157744692279005452009262807712532139980233949558850549090106823626903787472864054915366093709676480904284716099120154525981070461834711962377178404071313314810958024673195650294067324156155034077200786137559377637390588778572589952669329964662558006639964794091867961898083851200593706408050523574064668624880329233201979523485036214204621428018018915079817913052549131116949150714105374303695393954501581888432863376714229564208866735124019790388607449542507357172829104369944617152024143905075298295559943905749151957035854489164102459605943068454124561211220698822204227129124697045364574587610470729698256177701832912854677617806428693792310848975200005410803072023821217182013851576839126730746176394433273163153786137316677353742480376468165645842964815122362976022752014952552267036859000578489076246583336407697934868116307878389538886209791371479837108306247675786129898129360205713794853830349951029067228120107885183033715988558885247875592953976528850743280471017074716498733964908980585693954894041497684062863608031139306613492099618321586977201825923408429947064224438280884775707750770365680218583941422013159970438873541312052516336609664439788716945198685254224816347242494180364881433540711322000013346890094599962693152532904034880392213924086134871754526668020718405136747184991199956651750478496453447137755672534405259469519639923371884156062869715729525668939096042728794605210984970515860352196765715057768798031153589378047293321726993446339887279764086648378886923454146820243902842133489542252451342634296949265532043712751309494599382659173946350900512228968471745579636448844082663025313036738943719894292488026777183551457989690505316478856321317806192082898038665120309311089685303796817061886446657584127362454378844024765553628818868242716830760946680020106996214391795255351653059050812623180549998666223737679944341083237303153440667015087396662912929211113826916441692517532730293885996003638713168934870437067870026158020623709631766098950154465163169720649119129115429115651883218138015840470535752470632663723341245454759474889195964501551433813594359802718153372449704010449195560992987105246503983548919872799844659579278463237104037069845787392534912084652245404678620519132436071412857660740024561393186420117645669647676504964918774543523302309202053688622042520028901439715361640994307547880942374270261443977682430808639493559954720632224611676562464716475256768110938320998699199354579758067916842475422191094580841942690785687380050755343199736793365436252286995676429115919241407380172872113810618303980342241581694048331853945451776126852214179437794136159488480851267634909454484642003108975942279339319885137714726330399013479384499479121859183323860262454927001195735670121829864080371100702306187226666382854365334095096729191974322627176613788975210471421118720936736277835749557481250679188130676887926004650988654063251088625830687507749293786531930320379209297189935123690979111505561824553596150214288854731784065002540591937541762466839738684518234007426163207399039324467375428432983730652171384672183255150894417867650084015326764670197115849278356590725653717742925161916564882923794571494890880360839407688051659553601482555681972324946228497953077430578551600327841321560663741916348925571422359010080462560667395378122029646107736180277969680591171189073377417296221670488840278019205622400002923926894973427259132086617094514162759172554671303290989643268071252799004782847873485067029311311701189170022301912127726639403020090090497599040026361887016026334594288884188899776305346635474598362708931370068323425491238645285152430458531262346220803094593532195518952842524601481447254329573233088244923074064477879308771825689946803722366821727508251839375322080232884685631409898789205677857769352704739846491789327288431091510581767825992116789558386037919804801937935737194351938877893540383961503431892946020046632808677419680161025022753256032696199010642725623507722938353376045444643224400035332923861426316375800097455746146642321998187281044473624282179629680739066152942669463741338058341428922887551299393509683518748825733037936362682130421082986737694182947264084432278885869306515983017592479274562212849221070576738973078815248847430096819443284526905564152851792447799625329774559866957299995415525502565952686490703635748446098656098482713081117402675634534259026300449928993992323692862905969432127852583695365941618934877825106077149708011076062712580913198589450858331609923319637076323498172598667130563264971571237363623422577592086411758073147574526502045213814265001599447520253126004202891851005058500829550282740873056799461149256662660217613392799934823039298652293521017864477610353559065049347378763564534414196249558923082091289788909367774982241247401284590005167326224142595732891882416433705708279470393797634915466440661099179285518268107564998451348195003431170592443521749046127167782069920185590534851681415855156539370445059295559283899404813487153157890830933448949504218179788695485866888576927843144398443372734813402143298332849053446458794960308331668387039509509995882039465258621307205015918048177678890458810022101013240935738787736061532080789469451485329962692081699358446864615346965381129786621365868234394095798043304310044505260040572625704424482321738589775651261899564969621173865178419426368536968701993305155243570328985662138610328369726243122625330750422443079733618370739659892580256289547622637893239316815985792313656082600644693825848735285179303660069622151934353318519003469598802635380975283530439297644163743789639216135032709784289595632813948286279987384459514685367779903477656345649463189078038054332085638060368380803709731863513421803245498517497923947403302446372604024602313161042184165694535022850533909583222581936038022708357542758839899010024632322203763329176953623992581751396703945583795162892696032925015205677183177330166292978871796873118235807502259401193506462185135664951570142799143276356231220676627612721922342008224477597410128937616025185745793573003637237641109686811835552185008638782864482605078693686118245345480563780239000000168417616767779686795505753733932942407356695811589722886667731175822512053141352053584780035802042320026012245881512401839065973218671960702246592061233255927470782563753358710651264477326790592941868596108983073300332819985380950037855381988642789311097086608692669058038579352471212085417110291569302047608048721344680778147409931308216686079725988594868182220341006788907016032828885944860995440810120172842788665768001900302621657723438724301069707078662523304328464977156262641556344550897437437905354822238106223590172079959604538454674218162760170529592636260242348176620682238512112096091872736431163015366788516086175424448241113393792292087726476512654530918934741732172071018110759995089825871132722203801382567342088307839594050691067173642497937806674572891846424041866271131876795205140887230522557721534366369808354873418064636253795632274822783651275293078309631118274845451104948519336051845807969358808528990685215956394801540629703365667229106134110081651699977207350732151858087039956445049243534245892293332739348814283876033272617402945014115649848326838109225125711985154786587266985762154184027815224284684746080206893303509836641078422186005812790418047477748832075960634820095382893921588772754933053932631721138860377532823302597592436357941545532448640023451696304468052502745323054272292103599625483236037993106170845891601300917342378289136244451469180571354770227348963124897940547699499331816155465120985730501077722969668431912255857858168083638523134866845733187144791339944559028507706218665533478617538477538882283541941819223869128825433725312939662923320712021068731001073573868476132652104896362295186084983257634719676135392141773468701134078455324898290136852521293668183434989323781742243405962832488255260735721266919881189956376455625063476773438474272624007710556781454882202065581182753649571766620464348505092656109098417735264659291534271004085767069243236570030547582990991897942688167226292711790094810665374832809003810221465058053565598409711174783058610586008165038810885403874287584167169103203385355140312265291678872392447386283526662391911456010027993052832589095967734159494749417307834819153533981726952428417131768356593376505012000826979833345294112590323574769899839718878348245958618663023077634638366140239793691435129768718849299481708763392531434292933706723811945773545427017037798554198815583540305211992837411762359448987674767866440313041925945477113757278005350442141828232398198341259874263931380848872751638632607951612469144026226526897501162339528547627376968771278334400127790434027086386987075359415507070696789899516428027095928344631310494987684781331421874565008564786125210005631139015517327103434330320062713512388993637014407901382672704670165548346053877235134287226353395372221465973902701502232437803107429699300491348442242948311797320012328208977881934787808717121275031585318625435054157185036175660480276866604002605593673883060499174477903992163415026764138303874216547010541314398089855080320667708949648479547872189253740869465987557245476689349805245881434536501949772403067157194795418991616210887764740808169088330141553558118907349426501814358141373736926106609598770934024613571810382355791037954398879043854289638787430266290857994288934187198946808240181357488836072010865244995481829756108012391793139835971291083368518672932121403805109524219811759198140463703778411664148837175304053814061752400163463890481124463174221358066791624020033508773551928224435864101876212913800546633962506983006526354548557410807973094248998735544277490568812914502461947191565345216784058307915169084087408413962829990793672856331240362391770676536094204334914768639743145050618767378603069114203321770927335536839923944592145336873734252370397918481673366361149185831194134172870877557160644098818397589725581384274220314364537370692336537503869843448783996287825528094356541682327947318632169618790987065926432068360430212382261874567566269955011242994719682886689523965411705480291718901126633904861901061626530260328322829656640494639515353693132543151495775544128047443847475881074250398733022786967832126959711901688645281063442985506420965299058847235257948328967599226773919928043862916534694902154937098365188468811207685191901327195020765106090652319173890508642161438784622679603942303777629062702793911823354226643940095972136750395396175375830987664393357614820129931247355537158630426248086298396008663964396305581109729621114990472659049711801765690736437736625445225721153714373558638595161253609734435843863884387548012032115379535523863675984025269245390532750920215550327752528528551790476763282050160152191111783290492358357188081461304830748818424702545914891689960032579874815963991563408824214247843407461964007635797296833293427199454027744413786848669578348904480762693831493881000351473318070515642542526841509504930044944927911317220008490466777464436463266279149335355364997025836070321240571116160156912762008592204621792213341227943602590485610087685865030443662718485601821015470380062981677163100759662438000308517497308246877206707878655838697734357595479065218053512553301499439376516218736937018519328038596536680325642420272321023916720707841401856177279612533569353242120336430235873965103880665283080726300688999143679982008025498816897195459316145379413292836640864828416036312142841792856091975541986831115618271424460207487461558244899484786098414382069394341283521432405745719094094887866267117719546548348258299003921241036697250114301271072686032481405860195851846658981380722041514862207348759502502361139546133507217224579873300940835387707852043579429000742828777318452534507736831663271609786619376218348089092455191684657764107858868108286614403891368877234446826307905708744870898773899413891652349031624976738629592606954889372775626181280673023675704979712340515605964021425890648048850915084604507761574678065870599313474889354899878054228850484831052795048636070654787333088920532054571329143844232540096451385046126834945349002879103772043789031025169330385904065506163158838229922586735821694908746661110429630029437796755929743101925582789035245587204846564199714723469140894525730981769411718730541757310084898009518332601160733254929056479507655004558098916196460855024598445521501515655062372017417644239847294676849581852516281284539477661148308340833203787225752626250339416454493843505024426478203987718530350833209841097999899124131929759993340958699146014873792743809951830824475598269028515984033826384393188802927894884068929037713448663122458936862261803167031293401742414082420896120802853417599079621594244425358994577725586256176781857594107910489895582093950451528184485634497777344437715288232890329913040642767169789955892336256575635150385642679624608640966049039974525934896506401047257700111893657729066688088401862456662809156308169744581153562610090827518960878086359146747794215972942158288546893297797100291585870301501600185254067181299183906377285538002927339040706818888368593662599712116525508598436144549598510214066686731700656863900572670171110255052577366747186183550328173526805454449194477344931495072625291762109917785886033551647312031420787479132020375571011344716584485209058378623185099668574371481175674716140760481517432869007412559414129122858603078397183284416945682555601935388075692093054653915641338566734381408365989871183363448184493851425993076300809551653634448681846201717149004395592345637353780231234832199599308261525887530229774538349703760287116748696817887088148556543084727200820165973162675530310527783557667247605380644336058768998272584641160621669169904977477346477686211246153526239844711872979884960736745568077614061935872485771525041322622083509450343698868258829640592507810817602836816034657077118873558143766323944189055774614081522562136484142112094098090900872633521545865448936199009290828866170194405018808739501701423926517449574928964847770345681257006156136291068323671077593894536410062186483582105982981914318234546237042428661812714718511925939611339632247085820942506294057061908278182223813588161462917068739317630313844018935813914691127777790140472825397893974513714191219167546317437037070978552328149847353471957172916457781870172483382127415066915604107058357313132943093969752771484618442916839528050991492039239255080095057427898266646093704698817959557332813012157720199531727286401535592926401450231206497206395963923022962336191661461353461868382890903289860629872288568300277778985252570120502358444944211673571470514715458422544553260411155892291235174208868101799429080611863370393869807667722057562364225561333313321854492732445984416018729294208476996914451212062616200076883327136564723869531978242064198629310020310714953842077218461203675108109119073812294743641868320915170729778353145806298776543554221211979300736766798466756636953317211829587682165555174499806085928102566454031541339613052905945579454878125378332449003960101991150837354856416583186218441553093965031985058208602711776792603568930966973824666734255932063746630801442775394522188171010771503415158561326507186372863112349573748821946087093034270990668452075276850284425507121741172231523210840188125564313189421066227956506924300083199390469980767518247883924918465066162508494645982673148001161077879337655482065937733264316056481216561802564120159803365004995697059175487370041255919952965560269462713657629358154608399159483091386725505914876065121682030090480618731976027055175553025141337298154450446304373322476258278749157844492764189055840874790311902803813312315215918973052336041069345232571716237175820188424432583857055963874065748274187065686343324699346796989485952280087679117569459776099287875416255539617628693611287762947596467736254588575655676643067117071736430786184463251741464953964439029433767706349164263249145675960573581622680696464675428433639193673127641206233835979529925825182317974243312362961669709714316795779142936748196222631811636527088441730067761141243165640929655672709636818641194287025543567186121720502167461730557180500191035558800764637017931891834146028780522169329933461937357291062372440071095599857957094244465526245075091062815786373709111361724528335172986672368084014422431250118746205176234704956349629910651695763769077227028728669676902809106248257804454025958445193755028350386342215821370445846692077112941753182571970901900577364082012919461646245897548979606576828409004976404312705300746832480691599608384459767117358500351725554187464253873398770459109851395884402827817209131870128372070283156901469255002585638265616300190716721177552456476485203712593556496207222617405749549573617688513397968735969308206923367701873391566448394881784061494624584662319521619372488443403622792034311913945037012521470073856311072052573683926156641203162695500947331267217134431075270246625268255307719395714068393183937719492664462342008659934325799708778305807188840442933954155550400363746509359748004890462621022251974583322138099055083454437108397316425939817122070304360513884078514867368006618576437130140726404817864407727290848357844764058033726978672105789330903574108003701142095153191317173558116025664904829245563458606282116743924538252941888840801713275522950353228625551878838970682887700217417417036709771497709364958118936621005447839642208065869232386499217317358128827120120892954600585107742927822248801805935089570442655533867309348985882158217030300093894289408283809827031746893724383035525322754078192678386731496335438376139648976365062558340295985623370044829952097408345647492886199339404432188938023624878976952115289832264220587653627371105649131089936267151563150520836009838109557510118631133067106130030646287679226871979138600280636914947453594176724421622039947178171283518251256389503749283433833402316644414883772352448960447711753728615574367099400326338779983139692072253301472454947242803803539654355778443666118652654373000912643649920943671669832965847007216630341279551303466418677338811271748901547227058897385524494052593382653232198446689039524257551422799912827024074004572171841804472259293839121708348053635682822239509566944292202577790572499165166328898142076647206827999928257616837677511665933317748471888531592273987479501993755038593947170384458620025470917088858877646756556852873850312499819689110385644002659845624449119643061993506207265558674575215908778821759247191105410291728455530178605509850097364052708138204781899147141995101768910136839757774381681423612796311941488595520487682203880059773211616965747108090503389613076042953420622048444535672339491025457594914678167274238792931867821303239227658483158859947158906947746457440488412902849348206817058539398157029212449105144061167818825549190153236887383648453387259462744671040454525257824934444419696912848744562168556089401823780343008203672782033661435742428605372592583292529202340820349280821096111111915743343980966583512667129208634648674590484083373041254910083250839533819217274386913895454212851485432617402857728402544416647330363233384894935613393582902592659741009940678878937414984648736776874140908195011443243802320318364798524743805205494639592444242831186232703110000922244430330757472997350816738923367861046658665206360203902031800144386155275459553243964665768542333136692466700467023443428309687185660556521739494941794399154743099364072687765224228216144834930306253477572373678302482636846664974537715998677264300580977078389944498000271268678888274917400631839892360967996023151665329802071457114434593501236785275044035513829848292911227201548723893057462922681298721851448494044035121739017814201765991884564146087892226842814441079760930908475168546031417505121513135623382487243618077818082787498678344287098888154881098713028961498732868296765766267492880904509988843141871318304746227208640408048718417450074025193744268222812821648854461282871975119022162338002897656812566202770143016379256058988222609165801343392984574139073618446589086991408573862233822840328857431224157658369526401052978060220461235742973347329536467625124070998619515311867403288851279340411278812999991170664877175058347345573744997338888957872604498346747980451887683120423229745060522303633346090104179335429128424337908776284661813749189227922455510117386759377866934163667035193827118124534065230571737456221492243727013805207985143675279468990418671465024189466766858229695194465845985057569108024593179388432804450899436153130020957801521106529316726234766933570507694897878014482458268311867599130445104074579825057195468315352051116000033481282412118309498961614126340699282239632379223575492424199812868173976560296915292859127561337338817692456178693364554440790766105707275667351235932842106731417514147477424521363090757760529132179167381016572140558843271947740354875300506672525162883500396536228372065134976280992731286999131366079836565285476900392542386137509583759467919429553238644217319685698024579681805708489559944185073917081843912284640110626156614672428210517372763294426379038437870681855133144570045621040800489772206359844169353392714458562798578316639547294383787523516934592648613296003617184020521092919664662350773613457410139880121515672512841340323793088382281949075278665144399763629542487993206016999378229475648954105090483911256526808953985374806387779635172968434647511406457028385827605233549435516063728716607388395114173339903075063645110967326683904384693406385549734568169384667996553608440469932409348055956765446244070906475901304261822873509729858765995122941444228539513666799349903124546141667969045877800475389048442549169696119389557826358527007159730356867966325881247454045161229220385774196431738919065732246626393235564769859431381030064999556426214698992087389445905562293025874262255552075343686493676981425412941852360597776518875512456370306963793846072241275665540955217624570683848935219067222463340803425854932698081107500672728480532125989463968878881538729657478375622529475551842765262274169497163637829407414612304915008951349533130093006727288059730010334680539782937245040312224534182487331322656082835349305421156402102043156765026312009775643983222685893204935882311976548905115822888308384433694222966378473252432823564760460202258933691275988042152746657824076951386446732601327889700108166321089966735665920154185639281841679141539544697791835510020478047947298499306477773947368990529598329979291940280434516180924680089717684837519566510161623494019949903081841730682422029694987833458809852248841359085400012134431494237783006586868314147398465980187851065410445307303568115530786141300393626421338763230223480799004077126236095682819065796065807354950613263118852008279714395225766626516851059790611035083261747179045080228238197340460416349612538182162059366395149256505369523900575764107047007754589806341948506199585094502189790115273372133091453794938281551600198431926767611444990617373513230952004463737671818050464075826171835449058704224356955107487672965606033436221153716751684660183791646628529637827458336753932323969132789501529628849036637313456122639425966455694578180420583893343180006085157939593548982138699838698860858479794646825280483557556821571214089610847606490079276769931822908254880592383145098079306167342267936740409121855654607996955687055172155465012380485890466601989454504263250556830538100999787395348408992992121541895630379895012402498933820149681433459201120270729819676153648001644684203804343760543148399035912193719239700078104167842163948694991755942497774535030150214594420252769703412039945435200020044487266040076502584920050301461384712927096446467516398869443068139294125386058729595372625271180200792919267984940907606768894549452217558227627776885265600450869555447406681842657371094158944168015509176787148776382071842909969043120578112252446561819928439788933756680685245249972709371066450053448078815132886629038835011630192398197312342739784888418737325696213705825289763055291743445679305618664204688727980737405384543246523095179689152572092808068265764491655975560350076654671470557687356492337713750854541286057516251002864318413503512469083961343704975571841586948795244878476191745486964922958225829929874620399224819333218765438856855461221772524014881117996795787009285176553623275675176033483225209660420212507769707915867578120933322900961524904440520438193638926280433620146438041505570920934571546588570435713221251420785649665525754682203702145718629359474637614402136378104601275219747070958680542061254474277069479377655599028635270964254061872148876760788700570626557969261258206521876838310926567812603649433814306950962000699330969239218878522936460751951776594324399668377669167328334387523857827258368712624986127826989477413956481789570437419305816061365176053710791242519700785810733849756631168218426575533627988645488772729276621853908745000919619118713370983747520374973883706428868921545355700943763316132180745209077296397848583870853196200528644054725240443314002719470524645433492805841768945678051204999581010909509848872113959711296632289729618900573703999935283490150635033001391705130341293140754016561172546527073557004297835574666777811056657676934734893318233260644131445821661691946447498861963728817503314422303102746824222131349907310160522547249013328302425478573880849172726421924441806221669068800511430954764440300478215470518148734842470906206549712777993981132225960958356075155864583022742079818191883579623680754718020158381850497365652808729681218391942263622128722866261455196912216263571270832805266559317335661421040527146837098021260831119651073216888252892588557876491503428441730374523981943008929470035000706540087810802973226412152791274530884497181184177700672640376085212824728489167546805234908811339769622442516181009760269254312432164410067801598095811784730377875644297449852354268349071796223362082022066091595327711765818239175111117710442615632972392742271092186995238841833030924399784447042401153681273960107104270555278552295252570781035639504316436605119507611247141892776521739866877180242797332623453102441726389045334350689469210490539659540137116279397298028787728727557465633395985419323256583794008288337936719520731187035423045470249227309393600501010325240907485653146475182270246824963937718541348403590033784808194228225595608745905751270098075738181235008720678230978115681182593153311704787356222036156080652288236293313688518285708372909017769473361299323119342278817622279995088653620631622424380821515229082107995842569508478881022251743173176321294144366173369320889663292514562533098042637817933437215239886402991103473232742838024096495953737045797455158317800502534745030810663155444432141961406761437766433678886975510468721960680833856853217113259155092620674585903577610007731397094912029941443241192315717247987564396470614272116978823988562705778511430168890706261530882577097900963964629949784243763677771338461115800205190684874416602905355312026019256610434615253040416684715704313591226534368595432642135756420931323257644009138127323171450709498742662150178687187294897836440492647999154430619134701499498928203737120838906749026177127360423652133780629637864984025289348749360877927019894614304228134537011942095357223008936176449883913427506159076053296367563046825857866750789561313853288396768845335410420408772883646119857120291249177456098219484880079463736400277973152663054704595010865887743301884745896891310370942462874107989439876440439503718527781271520865903978689687821543520317323536983877759769920555006353535596569798739358702925394192349217552563445024845149858586482367425486238659065216183006565317450887758096544238732935662380620365297499833803741574574389537149340187728536894838567369724193905693145350256664578704142039308849575388028296058694169274743693537074436063706592828187743596251019956055807288648598005624244787249006218651753709522491030331693282999695218991701333949581229121351285986900071152824524393370483352853940374823104483725620777701998439421222184930653721906421509894461214096443889582939388943354405024247431456948915850851325196985090088318643674533660260064208136282834893906558164382018974775749325449253409531750112006403762216712557182607839383712917919439616948540367152188497949404894121677345899375905698407773753260931515824623320896096562543838098354009798853436938557444134824257580845267056359804843058865219358304924479725167497433048732763304168523260843405788914036207372721759119209132238241312226496088552861455611004729298607537955838794654817776940781085850931263768143555552176626928664457946369004828279617481778097497059377066013279610832811337276347131290167744450116067621913599208967685968769889806965412927009488070795584310724239781490146645327802523896983880977371826752822632590643046771530080432487911018734805402333599398014833855442046159056669128498044080521406423764148126530893898020817238709838744955540260283800736446239219232278430732384434148938917186956439982399183602522053668216808853164727424935884317920837746890634554069243561045979672100628083518145330671492208363699224034854203283301146189615955738232913865572812492716922907238520384820120957318099494627204436498784343768189966655866093198679643158825657803728599467940524345602050537922033411217754532841401006079557738477953717841734242252814488777530178445366002293962603877468997151421126642770793045832159357617087698908891717709149368396868708852710975938908581613013645383984485898605361312319976216593399992538979592397379745210941701885088293332349240447139123495490646550721581311287873088046009141163590879781111284872308391166301857847714945913438355286687199905741980687503313764264514716589338576184214501311175908060217321603732551334654373173610172572828284559235716247363145030366823318203493326606395864040031980018158486066810228194084903883215870068339179042283055386426358871026206530792289622324927148907157520352697505467022321196310487688764028197458408550432839779661299966724314386024308423790990014216881484818743301925878700592567141932897441861818570928177320510055333985349252607811841309410910641097255301491616700872432464081685366349346703990823128810042691603603517560911374099382952267895985119511471053950842037032230931606916993857205085486842963842684441343810740856823392932714197636591103031366523503680176924843517598978641139490181937612774241258668463231803555494761656032734437599900949016938519912768573938807363769616504627441128758572141426334225984771590035038510893736873223763137538894265808754139927838242549469909040706780730019421109122190165757845077813012129422879924618123287354361299162000569714935719690310997181900747031320260050559606702103581841727305141875109791820256597335718382752654308961701152075738540070983658208810666813971161688818361078162675702070023689708724569834365709875197208464188814827909701227799993662383948053113654383042027869473057463917750018222011935085536003772625994903894423759103782620629105547854518588289529130005427453499613502186351948147464969016217707176981408350839188933230094326311148120466363252528323478678034024289347461127132420690640761039390878583154102537009172665852679889869495485864750702346863197214890160294881071753027658333803930008205600429554148343701344595883996560096738895302772088016785731002610861373855569184125452595788109966600046936513379147530684631455994438859848716764618836357723479775162613108656292658946578747085695904204558296020979635095710675665320635072086737938113433829551612369254451076435066464129315160689414534322016928281739210306663237839554216824033645489587556278431941695156248804272682042489698101527020895169795866433542959777496068995612794777508829824759898269047779075882306144572607585370088376848787778311213577150402427929404114246324050249567595423651418289541857799172200820648252859932061289946434910087626649712273120179141229015730846972903835849986153540910240538022953702003107374711176314499674240276784061087151776549400432422032320960518108684153106403224455470912685729245268742990640540821375164716094149938652256165331552809054463065045540690896811934895782444419280397092321465551614661581642534533228944602778689645855771633196819222374719775603384120803884643168206157439066031553371893035388657921818820206971881264353182970664637961308444581525480821234646403316218671476591741045993873736799393581769439109088032769369017698044213977535534778628007453363109849679490980459637597857265673029029134354118339720693507259655926150201824968842007904204501628502124972132344462198155913878786503861458474736154379800335000185837504379139138903509979442892224535615420459810685434699294682034688213552425000725836317999902637475677568824452977659390110616910133647766019603669142052792060798537901464918525943317981284258822813552089744037512628835989636909775068652150117066029586109576045635438290333864073711787587761991436498681432222817912472441163113683001912419352887254005503183580646953522327716689568341932998365518989348270468320092784420095875383540299727706081069838585021858421300079301048263051555617065896110420295411810780661105130885046416455428863851663755252009496533484724164945630117388419712636555186896101455317509955424492849743914346383149087565710376790902952282764356355086809272110114367777300329548036162203973713498625592591509647701319626862217650891005302967863096938846335789861259332360506489966276476125807782830310000159427743660910726500366299206861540630019122076424430741384270496626097192750638198513565031883780391690327556322528618973869108145207739577030243008767563961366950682948156240645399092907421030798546526444350207652740416093296468998869169956623144405474256382186375263416024744566629222260190982954914653000293838017741178964380945283311214595325538953080830767450327951417041175623839711848139359280419436759453613496293050022546307058937263194773011317726229274053626531528041457745993038132586205070403659291026792342659002336424027026521144317583241136914245761399323754880789993172844371448313031928037208840060209679060516180746280038829317895530710142461697114339618626137943669706536560863239784024733553638508313901269188267539720971939653128126614208341247817186500236872689496055253403161506469107886350539703291595080012591269013642735951917124825519230672649788936268621768512321361199072401246276862729425281553213751676822460382918648963051578522553262101373142736913104795652852130499334244620936445506239423549777551173886610151736034366766568871003208136554846469198046477839439413180292744686740825009062317833232749850738455449783251133224516625086517709944946809570449394293642218319495983302172018784092454038546749903101662589917455032792617697308930068340415263941260903108211082852716960513653099993027203006292512030956689011118202637775321690367443470279355540304909559152739648326034142024574511970157950356890329307785777250794458868721945519520224278487289676574476134786845843865437820520854449574414439950487241989671432817844113954805527750144906937768914584661478200446164265153034627140602657961193730785017237724524230320476172103674836081921987314213745115145513988523636075973344260280150533808791432864987619719484122116883793538468215474986627241259671959685086204858486902045267941234182301726770863021350087762359886664993867712177935522437492892820977685295765271861456649126344662476237600163645815246156684121773320832740291099293532406249877917790671801116147442769861947924215153828184943845192376939836823589876146039572715463069980099052959562833093146313660894875405981608201723689844275476084276973524334498350689086704776077188989378157912476493372738153944662679018722952336175655299014418812632298976441081536628352695058921146941690554571537962578814941568047309601489732360988276802765550795931423063879112444521712392370060686244686685092081891753699804309110102519596060436884105260690235283538764607282387789933062464576622285554857919047305310786387082621081441862516238419270388548414188450284403667000578965435336578179288734771069830726025723278243431712519203654585249245785566871187022993565333481227842010556263320395732970992234962205714253889904640977280431987572111411212774097968876773090382468760780870371333518454622069629599880657001058256849862801563391780713093536874183354037886845933625230638449309602491911489812232733241822893150720080370950366904538591328336093355196100023804105377097751637450250188977909747224594988743547877829331550861284035379577780993058837866289975912579259469421574181946669244136546140355880272437106401598752127038073804891404241496683784980332329697195648803060145069620371559026613948592524183811188860861655240618658447173163450054651711546042058735700074199403782483522598949584598647967689770665846088227401447231113169593211425434817238715504669322984294447947336048401575861420575125661128840061270396382536282979296054496612674631192748512903100284099623673113969612083113488561156670349376321791053803842760575085697417388077071101641716467265828278469402452363158632882600211612665754404527365494513545701539597820301507450577273123446478288593981009668232839398349824558062293919283265445471791327376006976630749660029261129251232961695641377669232077276204958079235271161100637532364757802625388733743064243122154178850189440447004573899654846668781731587666737752611841158511067487675736621032791165881709773374281027446603299341774225776610439350115318305549399303018083437840321344666523914115780646822120826455750486901987591376527658812360391515428538872580185183617505662938934823371541933300645923148606455433231404361465721048563117879828409149717851182723824285979054829878713654609135378636258209241573743805849485163530330230170971705315749264524171845118424661796301668202485817290518882818554758745717399624397482499277684699528758974233180723491961254567161485131471203845314780314442935985220890815170569100236502380199987720233859983118641883588550199417004850349975254849674165713702621490614542481159822104375156171860951270020869081361141555573155245247780689383665234729246796173657020385286028508053546271209230923433593694213468849968747578009453369548513805625862141671760615015423972823352285337428010691859267266454973900866851964296426903244039478141774397448243064206921467087767107143313993631292136094976669590541448102530357362305718020535760348743388264754464626419468483715597704831818354006846765664365460244095900098442251839438378581670833827620846824376993610052736384885320852007906609993230513216298300630911402216620447205639945540129940640949891986839460897240564611536193653693926108640776785774386932723900066077809667775954243298128688350760798643009892762394163773860056669754194413815948431480217886931742920614244341059211708705359922466701296478855683701862544105968605862243380497575418814903772437567347820549016847619751989618042163584823081101402156445926163814243208369510666397772306737368202494429966808939905268837932582456280778901246879756225187298584748897978102687126897595945744671135210147462167025899259243802472807172259525100353828222124239271675020706623704445712969526936788662812469545316570455831537697413164760090474809125227971523461702046957740882107130340370748037451700729742740757120548564904491409530236327682782447863904543365284537660310619202901404110021251134606785919271834436166248765080757725216059863866131914568355640282665147312716923875158387663301752013333807790537607065119518499661198078322704135463636109303187273536298162174723195059174521838605790257707085446793332816020304962676009341577981149101047769673446610636843566470740623272147464520377566955386240340036659938351154302751010061478623093343296497111650304857975274545528475569533306312471800907314905151835065819936850755214904720642113219445081130072993870443501755966088027843417890049144490444922550375269694960062699346310993398545205406868835133396496877895998671763524920118674099832964044525800170222432185151223737919302776549910835008945186156649264848347641614572664762784041054134349547879889859338645030826501639901667864666811240313720436704867328958894711896450552046337010417064684322352757882755296331899065378665835537567534298620628023288901918992828602951999773222683364240574686047612042964830568460381669013177036277279510224582267536240191780727714154650983060969622003672990244665548913157118242574345896582452033855382283351552998856759456862545620429241667128045539012106830939063496755058424927947201894716680845238374154012703699719486749483022816155301120934616448841835790211644743719256089382538805113614127547828854275032927252865766568684641474952387060080303279340753577627913031121959881859365136415908336691592621178565029294195858048797723894107851071728515761013100091455027487461535600165236013144989764487102112186560530649396905279172029545546541772772684969248623180259215555851803391020739319119428543269332853804089525780654434619354940748033102740040866868313265692258771689264508449140956599372777152461532453179164262572286299655416426943485499904278865835594198655643431948794173300303151583445423924782552003012429676550333058537092624237552574120424901969047192484889824674413240209072184946216893851650775840012776034381898698739716887359117141105973839514466869325316346412477040397803676455046503875701268484070115218154611859118709240155562211593683956727009353208183735163271023967657046355655054047768431006210879473168361133695896310940915003697510072484567547595327189201126049313259497123424392829486246989031735941523974213388440439888782818720116569367331418088729788187697767200255940353325372500671601144913127151193170181383099294597457567261007500267322450953974573598433395844355427044424027923447129390319216296374217554768755453327770559528651802517748409178215556082157496386506553946851977959398883352516159237166336460040947971813930522304703982297106995182277276819394478934521789360745667929618411279432903590520962557337914743435896009006101934899763833609707879339337536217393722436433048367479024348619573257102227854249073655225380349632935157520089524773322266900244458699955912922744885282068658361576792656855628830401478785431136604043128659642994936237411562525827800714913729330879786366347230586528626123452617259699679243389243053417671603166373743241424916683232016025393405886553442599176988871873000291220975784912213194462861895520734556174917192844434349268836942229582521195803845696394144665003531124639865243408939679910977087645658339833934816596526483930714152073415780236315380719912001578527298405427992102838985724406184590943667610930207878922656768716291519957790994170117752816588984572337639111105389898993334245782954498543159399089501550855321967885156604594554310684440362440451934617029313853330349926939204439088167630785852671056336053184425926321329069278268730896384508756905608464866978017858358440355714227136498942606538852607610572697810086472780642797235213660413626254074465560028146826235635479227360279658881898192438432170142245938587459510723996287923959974005491253812279474862563736551697770853356013882676865343166450447534184765930492814766885098308487712023419673065680689844556053932554769621248484271331945052000865882850960200177211030114769026476505931310877042216659431902584686691714123759446767212480075160866388462512551921850668437775018698597155354857731244182639076781229896193136293920665223052342489880018561501879839136788093344041854251090303876981091885791132090836122162620720073345396131947568215193924569020511212086212787724236361046444336143011968453529188156902632891173444136804097419390300002313262204991503874125023714499086163837945178776620720293056069761192845513660060638563756804760261598701155405207663956926185714307905726578366983365378773122236946616291000804147591006975123371239775470350237138248484689397615578696095936925092977473017854199238831399584104809925465054100853773321114437308699690184442349169276009999028277009955990556764502899861454560070174565514784941598792925324561591054595249314048124981206869989138833623033530426487327610664159028424187714301216273680066888179930708200429244361758514091934469244887104817636096053583526727179631346156881362729234119924271529434872382961353684343864367131265012590614066839902164772734725634203524959899128630393136716308779454108627986330355375234256598444813241300253121065494543138355567931229495635127979372517188411147990035390998396217425736845825542579789139289793206728194827775435268290212427063899601678980413749587353469005731233681795509353934732981624874094296524158686346277833097066659391252383033387936827557369296047713439985485998911018593112620304349184668099767481521595972558006981841526636024257730512585630945208752487254453922641331691574962790177702907763227480095714734970107838039211478976087368944345971291014347674325368064152953493841020641272663908872509533306424665979567589589809739466677787556479109322305557760068259397932130816923941513357628868747951537941837180352151718225843799286416991635649232961213951217526691588567345454788794391963681806940358602019220420807597941403925159788698601464806922089248580405590092871544564513273606951662465987848035835349081477524305484273811596118206521259329558243426092862464933971768506388357316001187442419016442351372091295985573944408461213182901466166782266673149609756533485828874103946863948315024857465087755205110895594727250880409622146535203315063942764610650393149798965616365471849139947769468902093825073966758901903481972160830556519715489320090762874063948687511282989753079658314982885908042530326671922305040095123118059987455590340681426451252593919037366481382874052715017559059313972820782896531339260030685972369939334948239391365179431824229511371423207659874880348692835306435709745965560316094554689461796663945713315628165813595842578927687110702135503883970160093409273022771205113441255137705353480185516549799260021781663650738509000593632719991563315356886440608660122572857782978312144577187197402125056118827657678009431495972076024105361337067480717478518978091401382584871097285467921637592012046294136248368457240565288905383554354726871575658329788211735972879153712356480753064570948633648026138682052797311163296629483381512546742356649738387208716107372091894873146536248001252312811176543062809227040288539167422689374579343926766663518792245865126909389517673525576626095228675514965752397119950100257485922336199965418672798978508745539901660166003020694792095369055341526859896094579271919656739158631027534737221158809705593519561493343510260303560488834361813901248610363127981870770870966049621034504835039688420131056027201788028931959868158303879179090060005155342165714919773694056130228752726101411054402101759193609035291621864554183827644244210381869961352858871679578195830722146366241525388345617580429294014851995890950479000508830410925413964577035585637237310566543631388359782648480215897975995622115775826478290601555360289517908098989557917809847909973319694818253560757240703397066874730710960976224799190476054958569686323008741552595132139864255894684015396798861654454921507119699945226964214816616747642639286101413823956552786484443337181341456651123305581618482698572095322422213743310996034276617805056326780224313652438688077001850669856067551674358735755554488623379734336208458976906144274491448222211267579674814419396428416013096296344284648833260047200715835503397735221335482047282161925027868705201098657973130576554252281644043628232114914116778761761899984304223668963408587305492780956963821528863151943004964757896907441116841811930738856937222021763045042793719158619904216158229113264619079899579718249129621388139815289715388480351987580553617846569304756664330678415199726216291386979239440206234478498130093501861325323589392561187926792211814549579740480947344956734243007493080240828366595838630183116954673433101140061703480093370179069872514492857740391062546581021112637042593496265165753651850166889761194340142684601447094345207072564756448204717402464898227111992425489795154037701696205132172337846876293090336624720754549919112697151722964815961986007551584922870125229962714446783552344584479627945060590244989547396681199183829929087622867202144546070124620445355811191504648910196175047098851670050376948914614595618101292930649863644140036209047263391739292800445966468434029358104039091606653474446050472955201979628964394790973944315247656654082836557688431744379942917096817197795541260262836565718869622514910421087473200939177298856433100601231817482726752721683490527044838104871108193017591147575733122562063565480677399559587528814873764908827268212309494776787748333937671596010312863925739860834937343520297925297301588688642294486618073744472379918876751510065485011174916263364279981836625862845693083488344694382901745208406277928432826684959219870961473695983411333595877937104103667971826212423213147605401300994011573812073432364224958485919460747177409965246490514890051206271689083369416367540848557515569883533166790107379288169643614535843283358091700383654192680621398419269022552001308208788159684967239528061698438530874666537475892938965670681864978549705085790049782275440989640392061063583911788268066087159543359445573570787596204345705943313402278880213896949061439004456987838929044923263149530673131740005050546383213028277247843706178687584641143209884397613975092508590028199705669343886909355625239803536395608450647571229641628799838384752486725245096537067428337731989204903977609280209473478781177227805957909500247090978170710267613305335415489781824629000157038890030854937888515097865620938924505379755726106788327709262293141644651284522342617478361774300156971946255999267575296720769020728192581309275942579921839241511756924847206576524723115846415631147050908903890155894950301853112997887189061940479503011500414588734589425808734509599663750309392070202105479550488612093214848168601771211431318687348070460409730648980711526483668859698580537695211164711650828999572056681537688774246065268616854271404987343359937663839143822655850575171141310979991955732400492460112246090852085273083903631999759141814038333760037059483514441777353795178341280363039998884743316100328667001932447694067412834907586158212768799505151542469956682815608299319856843226831284775005016987332721201053041893127701568576308478875410689368125343242604442230103831565859687649399966859237102979164117559796256896083529198922471667166271011546242328035765188290979009874691743453294994606269202144720214440114629222958641516965109700858856097014301480146816078074478428140734509065468180391013160248034079044208511345783473640985539577772353014531637893194095913700577530626099975622059462153780319814194831661751921530169559912401099676792891734800967641457279732112245310626718116287038750566120220455544335697813299978097435044154532043970612595337753353745270698488751997826017630099989538204672084372740052037367179095727800477570614315620926104315358151812175835005983146947360431825063880680760219021882413932336677551379452263744228713912404368627666554458933943473624432129548754110341981302803237055854591333855836299923105382640014182069840225901466465846543079096661473949732695317663673269196588976339108850130257098857391311739226223936567280899825198676118900842417307998337083584024091341214914417763746862567428162034996619749267002490403935012792853597622994379811957588835642176764053577394308385283824579244861018775994571706530197045873615474487259422828119493032883920280184492185115325859808728105045767206388803023842532977851227982631114032113001432646786240732030330124150495467482209998483287795563175560457452751521593092644004336338852039867675581500876456875503879060568513369902009091820504604688056316469838911735273935392758236113880257822273762931082174907478900958238199362245329756562541437859714374818543331809027087209185313923968950828295122366651299335561403856445025314034652396869187506676760093615150941485004281715842804435991532783898005763049761246655939496459291696296657375936577755179573879743153561748565185122941925167553723052330779524066928075998073583434569133959031590511725770006825195910664075168602178100411714775293247664495532914569334496369026941156623302229427878017340488593046068615609614155856321322209505743157882663916530672030731651350605291066960708992094517968111448193806208681924519577038625461777840697110150133495511719323977787107925290922702686463292490233330153491372902252160327163601532323595859458170764759547803912451122629219795335174286689386351031329665014245416290655202628553333125761786379077360063404901757553219844166411415259080324138823329655414731067156393358865111623923672816022890128812100888443650262119135138814818859721516416967128790458154861329886210915820099980167452560584636064308209983361224122969538364609343051900508681126954820532420579760121610918662745676439949719115659776067064943474364682118796422588569824100453272599804811883670818861203878289612111734363490074057870428103893905789034654343992531666968445036720863079076835395187032833625437225844601681613792327214358331913318128043422948368191357798184422500424533100791822791811296325791805578465467993893224866101291151587232439176494773950611055526702463914196697609617769730725018207014994151122960549265932530131974765507873010795083763528858509489377420800241342466421676426701789398539755864412461068529828465284134953678882376294965077117371284435188227190243437663471091022292020935351384860842615100559314572951541871788856014875824893100220183971571912229486113620278514375410688680334206958220422739348283508382420991493355981795820705528764229950929171045115626715750053791671601680962071538049111297255933021026313887031049735234016050492039671485462682905451992538093034925708012238630521366435685875131458234536548313996249886860202895305660423569660991626134004877869399624816969277743748024982366089517079588133632784090766605984372940576024266732561668797415336744082850476550879710255828406768483291172498843523613153504574602968314855113259987383770937352410278730653419705717968434603720355417754369387408180777871419044122311508101912354022556858447671431556135671126783732610840879372771681871288297614888603221718337648266266547979837330253474525137275902165629196876797591337060141049277741641300472378667608301817285510940678775457028129017215627124917684101405032685944986975842234796762983066747208001966888948084300853715211837987203512719216505733356583115405302092414483084090398446508336535438832570714987365164370484911848745902680246604637310138099013030711205939789377377188703335410143525883600481973842500115497080892518329983204037726710508986556494869594386952970718208638230199873068864772437600321252483498386868402436165961083979138983137623752230869357895200890134870462457161662427568107654915017514010158387572553623408278437021707498010396299434805923162628279317391885192484799338868488888410450144861696622687506217643220759143011237690724491030258568836280217678048137014670834791063698492963834470108245948867409532874319797216907540105948532775767061816527258416575904388979158805137006742973151333708128401597770125163465829116786143329794154327045282494623835722991997283838439027727073543678073107216434818435704812650776224150929909418839125551461197703621171120992456612896229985312824518922539273092532761118533435905021696820991572132313141859932427796469401633620426715402026710451971781179868445318956420975135757462164157662290458751193839709948306843970031976793685322253194818178980393266707720377826576057113854482905355904147471318620389916234757181654363475737226311386755717916361554890781297937041431907702565370996451919404044421157833489355325672347028266432578091244144736372349288691079763610360040471009319770855884370483613034352211395319142731259587350072475272698811097104047264223984396070045308442519832161285278578990576706312543801832381558740623222460756734441892374226605502270157020196153858459900948308298697395770215744833745432118591258518557221855999682559938851915586419685010817404144858808327638723703216779753518300049662211843948523193899892353458468801112071998352396147304876500928271656015405138435202384275318745063047082831539940874884603196487686045359026716185389310792283894201037895629784783236716051959263383769334724389696584330738244720781524362318760897179320702040025497741957592062172527684299429406957804759185100574831059561557160670797396161688313399846123271636566247409709621611270783743123080315882238247708990786998616232125400023239879584895829783398297183996134791424634476110759074779796740127109930492105887258800067555905331285933920092187251680273910839571123645014763764297470656841267025261604262879778845346344668016312452427179617924345878271886585039846766417229901141309245710695399542001555260493894601485675699497441836305124510001061857784330309968088371026505892039648885827945786790534913761141985657562058285688259773833773739007566357069604281247552861476666332278404221389455552851431619095410780811692086932740192232117208424980171888755534694608880020847732706391677444134935225784671237234627229664327131088381849687869373900848161234000739293421381824426552795506887201480067529739595644790742924884859000864751112465038026444722344622409021216985220359586513216109347686497319275508056502342066089434292385656133694800379517538449791679426345458902443739424766705549177325268798794697519943688737634260332642813963200178434555688294762148317966536917882639052610279072098084650368952970645884519901867076686292946966183289408588092347710566046195945676170663484710416413533980369390994903496097820781986078175344759581108265720906632950073858706551763578979570493510223579363945567154302821514172535047989720275097082848959200480461197460882918291882784907193053726751874689944813775134796441112859620636934928913069370498293221629031906163654962807884350736276599372586989363729470774992822407376542830339072247612672090605753401210186016505057639385668518149194752004141706373615725647903595057747601704444690067713405931282046844144654797156854463685956512466959681302478810754507562554237456674622284091945753567225435999588813254389444437342020911701203954108312112299712008643945781122057053238885804000476327228803513027395300000069953181966059029028037036254585065190194052368843313344747936756139954503226751597371505096777907741520151269902234326988565038549174256861696145695175680880479163836562728728270443061378358865809592355972649378875963675493932870406469611336304951037801527684762924977836370065984747373040843736408071007876431157848092993465775453310219100935862419115041249062176022852108067364052610962421567106945628695186623857235407798375640300025466278882707928051186993326997839966398714615959232482352927835031892803999898966800678224667172630306785958631040513209484029089177171660617179670046161144403628056518737123968213031606726032020681148537290668954829657932012308883953610222974628301673663663340780543358206065819135884158353930287287508295058638784259114259906640481504694686192980492649123859436259220950448906122315866563949356451061288146509295392072245600756913017167094550369567368637048551719831864929033443493603132752902665636817474003799562536311846297255541472370774962354708309784257979821083488891489321018530258853521046437903655715774322888553275250675049160146200964425022155714191899648787344071308182176366935410333556806981781029442043516210556522684880197992865792565019868418475300926118800124793238656353024882366651261656439050270937835148037849713119591507122968145131824298782006047685553909164147610079016401487631245636606353031348003364478710628638006930299903468657026199222561937706120808945486345114241608354485858138236886401495146520093231371162990751774094774746440542529382294203032193286301918855779451778004414190044356060794095743678800806836432394129756086469727205843682975161893102782831425816822284115344442562511444605947048914025003276889824970741158769569591870387341900649232153015894587996102767820071371485423046057922583372556541127113912997397549588702583591552540325254611044764775524372689935438340693360615968780738306001127707755417201842910744185963955730735540939607860651971970578809602314930276115398576233063948368543893894984445270742694323662321638114320784254699681653525481951051056887426302888789756573943660154272571132209442100179449695267286118606781865921829237667790069193713581552000029558978206768279120992709115144132823272234765084905252827643034756437054264289952125980153145298786001446706837758425248292911869526656772854023751791468809048118036633702684670229608480330045442220639674279999554717944214268359203673219967568198737119498943141907480331580869488988205649270341038857036798658579925635954184441737373919075545933041030289274251876157434176192960497000698274123813579044984638359618267437361456878596430193545164382326490686771061442833889759345515392038873332043461449090900096607337639284880263403068646251655730086987789266636199882472367738918781555722947733148450522682473827936874039547158517143431018790210909358485052396847282009781911902962095874227036204433445332031750633210892454777412344638594268550859810352080610489797151897589364271469382103988129771109043397291816070856169020898638247308073869128015079520737947963321262802939323595224916446808699644404971461860515162516462997042132252294285260696372060001953340170102537767605316687384103951425613344565011084115388702624200750050705722991009826941945073072022173762316610991308789158364510812303805775386918790020810260890685138570142585908245398232841384702785027022066674787386437370671965385125100465809460843321977340461629011656610242305980390811155442268897995045602513773147725637400878777518357991011891047600677325875655713521824363914307752125961453298349329992175750925538121934679590445008387143023474969612445398082735719698668662177709797818314480711664999052408838795848143368620515026710328654163764637844511005750573901297149673152149369694975719615954861941326851064844686546082845529213048126137958054633038620675421153561364125953823125772328780768452066706756697393650412663557368507446306614036054193850500803661768092503777735737695085057005775231640951353294389521823069124156677973320737821055890911730933527035223863782229925223557058414864270583402910523996075005559755106636366584213225406861633572522219354628759526631783880365536716815040625159943462201049752311810640505389842296480321389711361758709811200808102772718695278920008964266751135339281605059879244028220237971098110808245379775861009561960677542790567468526059567294412402094437537341876183664936102286498752718430885154757453233287083673784279852796729791849547445930664546351964983660785048399236153131988983774043056603710091468011463428665607356860210048479502339131105862571221406509964025124535565795693727847207716429551148516618148620043664874089548814426379134314600491359044918668330850826729431964831424264743148733469111058924031205229892959153298901433620226479338810026195093640045986745223416426969241754212263498473151811915615109144066105789266653167777093476711193911803453664915652989540018924499546440694411428062203260830768935519699577800684308285168511624470326420025086022743547313511686176549704649045342668757464209115122062419661594453310302887600045516339169549084582182986533501160343051049640141617722738218733431133315440969767209586649105737449879176134724565444897446825642520256261198743970185120919684528715481026931336140419613340346890357017613561662967175209722002775833499231342591394476116175129331651213902600710412920198286074643555881663318609364134606349767137320964469866755176140609588608946464082849244589353877565519387038940468602271062443059013173224601996773168806474323050560885752847695967025534193873495148119929748864644922283340880431566434838230940622594126889443118080832870844573887036192225946169552801580756504823272066680902863124422292979219586353415861557893834580401043400841103130419018892932964085417349927996253372107264232315495094554014916041318179286548767916355247161483159695902375614584956157832073861933151887039597965859296807255189738758672585143462953591587771757437507653461062968357650244917075326184134508256407191008144503241869513746371015584515374694216622377491488075741480086014350406368362656413635281620739795025139648508350736356391306988804387787313868109949654754566265521315378012893690292641350872586754953743484603538863735237856800446172955048226429601376795865169509906919092555005674250731023037093049952540424128437023738993785910158769058587071121781517582095548401087280833780636565727703235783607997291235992143180684336712615750881470103333704871880693209153354866622319435627167217709893962815912224248358965056646955764674889556412357895359330652322616557982467126514770920947620250552233747331831395109997115898047858916898233993123797553508264712896051794902711921526397738587759046624507150885024418962513169218421007033928439527043996605546807760759115020172136617163628540093775898289043492622057416027998140955099991553505249583322190353238705042923065929408195328470190368100145200758211004492471929259321953850376386946621911339852691300475008937692475824563337021435024046859282250008950107170343674973138226074417972326530100312866066190759445373593864687858394727664470129819402584107840000476619893062225777878695894340490826631477921232882550497373466158617516122383453974480960575921093554540842042832008064839955627187144942188253858694373871386421340138792618121101266392342433468973901527145036920373522368992347845936254112819384652860991426084382719948512754570530757197512238018890319313120599353818881481697945166550110572141200296106195303381435152889056373640581674398772993282446941213365989749986867473322215228735298427266770380157614774918293390915803437807644532189452186814515967751437488226257984639447482455304620044006623954168897320315342877341019378361936171195047430641152302610697189547079581233509856391867483591188412650053988220350221652656373853541797291944717705828535871382032912385358326712855957913879411365959147542687712232316932940690815840262948535334445044236869445079211078296162964523771469037329279814730272093027553180105538543774975641582108229434973827991939247405711400525691833749694965154710464990732466839847524156998581984808542015388771517217412585351964359787903332695733439524368338450974555718388329603519754083625115430068793689739400187810293892625922901020727969663870379292770937687741920438816555752683406340808329324443010119774821523724830909367602594293961555875252462707865383512708616151326500661087343200978473315069538760009044628786531778171621302151500507405153700825480160523938932996091254330123234909600827309769375890018236178583288510153213552522311688550586524236390460408937055607242701116198590712923645893115574431237696422021865564762029335398218440833378414232793819542617349986885862227493330468577287257228536128604389746478256084085740962510611800318917749706426984053145268658986516520888155194624260778495428961779432988246888008762720961497199026661877260309350880790047820464360743540403744849871912609724762236516616188949510692961947357733565290926400012069152962927025077742753163481099958643663497655295344624791539979621434010414519146869337031157511468962379275276748791229348803826322886411119284327269467581626274902500137700429142476929775429594706532790764758867540855633609744308074789961270239185605411401117281007730467167489228602790431343177430320045628728981433801786893993710402873213777275243382859989039023071460487049586239132942420419424278751169236747329826721888651739342435662969610580436577406382600952558620240087158008600238199851606829339788865124449928517125475012085418592631886960925128108388587218602039915972660135678291524574207452338397848891840335145613023142073788906601520263370582200672269715328790997215917303233179122633100464430271935666201168676656293941865950343278639518131095723833382593754947752265994125376230700775707853253748674076711526533778730211412488922744661443771426269510217986930228119844408793171942450766426018141268071125683745820008497688768603413772977920603624166187845831095347151467716595750205122504658354552065619185719718926717427958665224720722766990664557857019811571558147078631272649922339475301896186806220832373855546800349854044153977730874934324320422302824187340848027454403909276889566958774520022553066649620446423376168189050228806229149918294377326595441402271701726099166325131113768596431242897905965984139688831615212342482561673012702622170166515345705353608016423988496799915502200850076255058178197304508162496257636524418042436940451407841405282813674578528438041680637495089449844544368588859703064099086875377991474652315385067172333230646473606588906130992469930352900900705801326771297670780059668489628079190996156776163367535580249002056728355948923853911496373944415637919578018023956777036169853277034798755377834870013612345790621069895939759641432952405916925318914047329213528599499472589401471756871868007793616717828758163113172415223456283441075838267486279024027301036004910797372520157606719993847298540943576645109767900601535445356288372193534583393735668390868318350731244689302898234941745726079339170663583325023462408305867700028271088211831880396975037392384229698636227361826939691922755048651595086749166841980081517414587414190468365306626031353161258501977115519844530071165444238361695666613421968855857846888651082354904752658732323943023416214530009595242341681495267284842790716070479050192360595186751054845610397935418507876467983213741247142257881608898541216464991230885819936042130034110003891624342111380493725939138260611297651088852337784311414368048143446402540535519331234478230316493208929320598201874186325717245557519360393137388935726104800403924239497954089712796868545563228226730138581924718773139837299533226349531645506205142421256445196386504519909545967390555606723463838787199665728957505747160842149570733766815360412610640485646864932529314855068358829717557057406274377967683230433710960196451070954894809916240328463829412406025722929223192452357291883615957602614274191494720680339993489112093631348637017518602084538676151454775686414851028503611755879233950418336277746941169693124633510493712312830975090765991794317178450948472639341072849411694721392867756075646774077254145999489000324283732719665482984322247602592225137433269752352290153246829520358549370206384333726198063262379321075256162731384403917099378365612087918946142706140375340073743675754321569900275472533768732277872184578513015184875152206467954235343421376308952460612964234509305456923321701049938400280814468722886097115739535706438949251447533476659942506853958371542851477531231857369861381127611383476233599449232156128198223678680628335789791112056820932301816164187252354154500163845746293056459059001851593963904068060819150297377176843963912485783968064983992475872128847873227618093796365976146142965676257244513538269643340795985218144993111497827674317198844768965110151142160554846986076645966484525027664228141861425517937790822516893774458835912366973285952320056705466310136963952224761927096604981021310837315529603239664235567428758075635529603275664606411738820914286530075571386656836976406585975397696659240561186075770547298886191808308492190483477052836653681964068356044434447319874529524251957114149012554049653941108987658329326762424223099795826093711260805697833326975742221415057457958459063077211422163777766695777683478388342822854602431521989100095395285706105134417549475663776724339499946881184974567447719922861162693024768343633656370634980317386290940211511516496131881065153194285546962179075947500673880896436148707092809678788770346807673269443356811615082435551513796220052664242697929301936229181451911108239714871019699158259883444832323032113067368192581485816261240993647609599325649007433355468622817497435698494285683688056213640092011547049370928652129123398876598481312032155604826529566795386083667399716284728967877036307129944110917195423245379316817011249964057874663754047381018774764981639264978725631302371849723768879717297360345664652121053040614163164049984288489729511758048764638963958168881578457792299449366268698935508783657486744524481838770600088181116949309772563732852152119620476341378830130079478706726651730599569930083454989425684827524321612548367947103618508142232645181295150516943227227836168043461217161648166655612942763605312631218293292231104305486713951112506713346394476225376390721466232919372188964897276272022468887833945484221496330542651077421652717760157240094841496965589145902738819375783532026861805578395044828377014724209178130622897062233033648497561256450518679912473248404673099284771904863823287896522051260852098237831153174888012487005632819884313553603062865231786385717992741398670956019104019483261009042074384837136844209637906732955713636325214528125341778534319358064213369817218335817913468646081847632491475327827804666207254020954606747125872529442351251642428590026189260636873872060926272267710779861580181776161244309873456845443011079604311264544801742324567726052592056396372216688283743308458720725474408089217716672363338196146350217958653957553853445365269171593655940290187962266107180670870742052243183550260177948326636295845774518555797361168741170637505642910983021523408757355293684973366450494963747828266024126300315074609504339707948311985612932393886374016555419580939708876904307621176731415408462979289322752114517570557709609128826919403028449055434167602987507105280136577585928241593207331997129618621591792623995718637388190738747801735363821408644766515132625399746111840791085599657759579077726076749765217543044723575028505812935178515897710435762398293267389832485086955904585424456983834751055975208370704346132897468599165350631780327418401140472248036989091563420307507180743850080052560502501841392631420382841656878799466844271101501656394034161233302073425922130743707137116729526580391243043834329374560078469212858936612994789391682395512116249288246481852137476821610682278415140458028763175061755108140845744528203024684879043777938422522085892196505255898782429817485570773271271216189288967733649195953467350070303416798863299038665692858202269050411816058246734200710740308406534431546280023371713352290460625637277978214426050329903792622358117433028128285071060189976008764898731505606866863283210956154856300514269301030497497799588023130311910729262185989468359395888780858403354343840970733926467457893554437872535830628993733203342465855037645379972693150310498098536248949359705108666404201185474996437189333497832815561694648206932671174394731808631788685329425749095085457164717319491878076589936603563578568651740237121829726155164047124502202703316339473182179713579996198989505247413731873598413386500824035708626868176559031894877642574241490407501191863380873706146981939448734829353100007239294338623469331686442924503193564591582515350956164480730655670422247314378957810560621515210234600369213047658428256431057793031712413887603789451684369414449289067474818531948537524417010617950902457847460852473078385073026467380351046253096695967257967362574457651592312036913634677951902718206732144021261468215723177597886913867509438399894824711221018924701340686810335756661896897941342642978686685548420222929457431699676065740642654419749195905809873356123663811910580019756948730203491124905159523246327633733003043917415809057009887668180782859109136207268013101917828209626965046953577248604086290905219041183138170061710749147685279842904156610340677273117154104749309893688585357848947163873500727087472383009544303811790670374316144343647433703969706748226026188814098718616332354460099538939420251793367298619526725455300259335002526088841826078058059493066980111793115562732380097956968192985198319972433705541262291287283135231377391201483853726787481591225732931493729138689677774386573555907073936315697898632386760112960610700870013930482905859461618303103496521771271239046942916336817704525113928637003245508522625030778039531631037101368398553710873177123558666330379355411134842031802679487536204077144790160667583981448535961147284657422120546711342936859075793028232232230602385051391515713147931765969595432359541572569743903438055398461096164250893741035744999259721783382602119146835092882458965266651596000843085272670926744735717317614942753036318619313755450032986624783458994611706048018224084482526850646460848847998595628381457987329652515964851679684305877783686914024844296381252057597529613140813536372298641590542593541703174974612468459750300368093966170156021144616471748204910185741110001832127993457691461931750570514019464964667309407150358037007503419859795794745154822397580631345385388657557875449142759997478399257925895909347396253606369723599580867185447073995766473443237711723020553600963701731277352096034984836021523036790503721124332535961475752683303912769819848202000857473294603035136947746880985492523185387368394948524131087538623910268576194300214506116660585078189466029939462800745734263952345920450131605461221746640393059120009426595341760378445560648969482388882172133648440141216921439293752089471320167071676498240969366828630198968394759795262663139489110062965598383854194289442523675581207895652172808870834811847128198358889731120138566614737330197799849839835451894048326082389488556181016444899336733521803291788142210069679350850329433734886069420970941183605286274012873323016415397923727291727205743155814152287945695313670313932814800280953163670187502136406369435114591493747589353986629613531753077836389079451454932847217222134445184403313490601912860803442652953277472094013043794217369851743062189368931463015491421358640840794478507481240305512351333156718057413853815569613821351240131277981758461964828198160242780739603477109561179733544249152810911933747041251469369234300627726623314728849550048958301547094979555708474174587067470449518871853283728877288608412669054177420155750288832931558938472479722787757139807533117227890713465600376817969485891618589005505864499646082781325484092723698241202681834177347266688015975030155689303271514310930624473161008926900103030922168300230652054039011730268143503183473367017643174928228232786013552853977701091580461809601565294805213978415053587085036558068598304650313287209246781481506628102987594798902381757400806309839190343241713193490611294519843600501087840799569962056915530633883195908147553154152836299707240815723785542672660290159757204016471084443458053579479889309719791449248182435806536057979113186691736722389709986994443750387621008930694148095663146283210463882601800260010768779968611291018813105766743430642711659085050223398095160248505979729298782083961654526566149941060425163548732861848924842635324540996804370582462740882408250273800760064595551812677189773849015740897538057211194963102681159532670014659088353065510017256348563213621457805745967707955642749842853591125820807624041269313419586553181134227031752649783312395500834159429401396256376383970325997893533289204254191638749290259268073042377205197253795524232293649486260050743114664666763989544315481668057028849105163392806017206173023518560331731408276202157915275341292407439294981340825008501383002420592469567812820712396459256084571290260782565259290788923783794395701878958909121523550227076242261106263623301420472292854097939747771501951310261051201721422141563263302500455222930766653262040833014328335375581004998564760733611954021472994176217094307417319125164440999293501261537517693354419609214724583716662777577680254659432539972133229901538841624521238611788521953789865671585806005536743236376207491354642595241496840861975657536072975613706931682079620518016029851366518747053497672389995525606243957720577332299460151085494499044827475629823697832632605971385332695279513754889035890821427681686107182733745086041376602827048785108379106872047128034577283790948008129523768275956645826432628362515272022158499817079051113755694700712430402717564572454053383550886539327614455187291321463949257144817239569625119840434727132422594259904199888837663001928705803593797190717460616058004528414705150898316108322468482466209730529489242775729878225101703573031437573891429408147864788293231124710390133098063736280712225260184699907584745468205858063996604074113021235232073249394202945152578834104880240453321232170662089632435830007696279899223985589619623964943078025576280277913541757856170586052569072107330231184636164323950345863415778688305504937802646744487874921928096784730040472622913498466237024519517855251734957802982272596317787226151016494729402211961935608609876216110113172411473864341501917265459695113846533613011982912543084866769504227180291957350940878020724451066238930548510764733051868715937226500538960297317666972996779882663455995617707333637954588985749942302805032736161783437428354853186591472184544960694172019110983708642374199465171414420892523701217541261138409428209976067341958979233518008534700470870139553631339355343713035859319683173853802643356888080318711884656093749117162093833957520377782093870192603698461935117479285338932130201520672817410524025581329632562927091184045034646695516542354307882544300754079717308236273320423195192597858186888729436351896961613096194880037377691855134769191115865520107746079338580092143658836586946171064560274894096468827879268900178233307268681040261677750646292032040482304493663420152283002333200092157236423960223770664532020838262517991321969111493464962372637582085155249512126472201030588449483244964851985926219002763718336156866269318539146220776723255887301573979422377073900613583057322489171443173649589911600424165307691619060980070069217909637542075952492563145634447689335612476533738541115571020871756869020563267396409663615586503366900852813728489947042093379539418046742346949215302231893606109980937443219835318667132549218516147499556343403933123811962321586273496169147857192087894537645873311257430227671805362692469311230580841582538479979855019853677203440126699381294144038155733779838026784415630307474189815403096398622166812433919084624122140886430370691932513566895815688420507326941215568127873358530879535212579389957293807180122346046233536578366213942968634179274191071056071335520021842984862309028826123920529978170692023869610483508386731349055522112804364348717810028548903435223237615962544242848572922233590074499029666708422019513676300975228737063246356517440850651443941916008975913807190698764536688089168241668491282936192608198707997283668968873615502403065896744652374279471035591764925181252330385609848699796314337289921873121166778160580118588812743634587527969191616724853130007001110037023422043912595863865923945350149201785710980439011235946384263630447955227047860832400658880442751626376798764029706845259204001365139866977182049588185418162123834619109072722361527597925791912196606113724701318668833031773570386633267922347829927281891864882169131405800806781158732121348241879818528278628485540272636618216920923632262153716104692459515368214934815038416836589165619680720710056338237468754815721370698041528956612919322311325135899253063335243868252460315781971443582232265832331723848175874596629512758998032209806347319360924371760206202209826981843536679242506884493734605064109968063573483233020502859537438238929990352948018624145963898171496651974127580494473913961000298682835700141510857718285250002411737851645797610263299012945651016554257575603563571148229920361180852946296769813815371947556336401579946501262090380090595215952057412819417818200330733382843983829338048616494683669257196865715593230433336401566782056034067638669165853415750623892479373695373535150594851519223773425377601978164141787496959717343930861763002043050771337502103267191835520234469424069206630988487337557714027193280614359175233549921155006484051814153450133660249317191605686606981094865830613217728987628445202224321031914024678148659325516165019162429235283833849630872503674423662033347775118902600699506437658768764700098912238442923381725273618299848759384434260764712639704059001371756116819630827097168206797343161546640728609546224920271055441284821918764090327139452146338313327741222492592905072520981239698290985810788543536395471478389435620828599853181886449264751953973527897804510509306641680995103326302617429945737623715336058383415376799019740581469813949339367046511639610558191384523277758615465070519331446448768411848711245077290017148116204847484079042681758688822047177352566310976250848515804782289571237374981987176784446400200196235115801864856825148884712903738750881598020494125772314868353902253666883939838083117714367199911286051611213496987760293708184869461820324866399829656305701182264992153899593947662327119917011826348226784389328648315299152719164398075717578215117082991876393520503002448573403982530602145322295513531966612065500309306632784592346839463322946878238037388720187974730327035284037625973592536633531489965654924878297580329130228746177443706186772568549734781720131629650579076567233931116339408026598882139621220951585095598622807299762467439099627108710265548117929157270868471759174233275838510704057941838170885466818984570619092377732266888057197674595077397581939236923785181709271700232898967169387677557599609397011592990423069717607689946363448355896877112573631107756598985203434584117409557964010138034374191617492236337327186628505023890132601746876778198073250962170509712632104223670242184219466145342461064829357879973513137728384602853997878315535486646251608636417788964786456293883941534898165230292979784562760558640226952147384124835481371266152320579939986334058137494510420795547485081731770968935558859522775122701693219894485410699999015796182779345367462741527730458827568716697492366412480811572431308545504104231839545898097055861462685886773242249905358159712327539217468058983109214296709009794125846614074387788766364493519276615762322051419653945978981972398854356067498139481772875433053574062765379829425019812263718681000709683419828929696425634866052121339677743040663131067757034761590183405972723629539498492512419598134804060427585117085161010002765957004887602086514844617987435251554039612534708136910930962174549269718600571271506958596557357783508331886481783097652148927763092263564003686752419086252818862694587831447557107245029725343468898258784997142060071162093641152140479177664002526808090503749369819428297259484308914504534917983017223851289821049661350519620555565199716942408207290460868843674637989783802671676819001461507306927121773840871255994600223300913278347635565751404104048275042658672870376666147085082234802162059697002406236450077351231306528230751237407486021025639426198646284637910938149929735149280330110755399330207212529430790338099036980067057459660726631886357016264653039650107118900348226990299722289386608730513917511640990484410031897744804785208211130841302392321402768803482790562006339009989729723046942946741888419152618145786358081505656031656745996682757372821553115199153782801410845814222495878494358467816054515883892404144104540181789229273633420254246847154273268029099557555680764224929823451708381041646624845268279781535716821571251313756677553019048113128347172439866405944502625408921953394231131606554694094255587604048088236532199901365099911809799681738017989028422447310398280680280847331371661388615926461419042964247102631197410067961901545339135002767665276163422935020461632643246506675276073632773120691205328669503552402826025865882442577121654119610639305531781767544628756248854334492436100901980786448955844256541313760537108754020608410329040174166486196020013009166956021930020194366907721724568231812389518584222226620270421887819636304500002831127204834225187758692637945687431673251995047073332250105079545906642483735182508489973947257168150062437932724806558845614211973076507158502881224868592698286277689555163362086688230119829468688782795702240009950401572622278502411176627116416867621975589407121619113238585688920174343234970635647064271545415839257918551625086739832249472199622275952941248624344962036128086354243574662640335939960650367635955246774463112893190167930518618291501393489036649001653522377702937674363800299016427577665019075470033935677175907543655012110603492344038018453276513817428282227753849032259234321636159153627329048646838826853259235021956785298550440469234801754051264737489525259002626501329329879901495180649485617032625379149493605527983014020374591398850877638142227026483129563000570237086999025551000465730157214671981927382808428832634384646094082750760678268910147171395997269752130462146122271066326489776178120643295162311078005256535636925280187882387916489787227345978399157107815597956396546809954458827860997801677746158682258833404899111617808377614092200286509511907472483486613460317049107740603588783780904503159208321072914923894049564763281464050272601220703804324600064990730897571353651286768118551379521685976176413477769974565076722243496868131673769870549135898956991590028592121252445912538917550105568879919359100843724026100254211801787174985396261166887217479829061144454261011338596766614779741169823619310880169079550835184091943439693372183568284332423680091956231750201515044393811168862510741283476642905511740503852545764022502001389530152714639220860583763218099761338696043938977747304255917259078507372469660215728386732458873147685277130189660316199992528493298539932294347510880129374443804170570106956904161203887513236059336693479094138876501309367620838323370956841452527060609370712804103250326720486726855884584711294076848048174801535486735927896445438002942332749191016905497381929333893409544135861530455981302027256046240362099719161019475762456335975799700469820267146720261762217373196092538327197255312479226389437528757994010807046746345891889143108967841524157312184305269867121379743125226489267077948232833954651986512008360907893430162471815289310684918004662801366675258877948936715142038630874274000167097232279744193294977805895843754204749593297902530762066517545054843988429389935820011647545454004013715529476071378386859478631399732953422985039761841405343480860189677202036509794640964902635303479177131553451499849943514688398055890006620434246725748395432409121812979889991647255529143887528041415968367704394640922946317719554255724644197789967411862402462784467891806794915317571399519374773549921656367921104938894785734615173874197448328622234130365482725445032531697320030720093578687290493806078123680847423335411563356793594926808118828397954382223479515230054441495388435187098734891907174607887529954276179592300329438595876204161853123916501609295897012964519097647823459140455704704707938586708525363202468179032484424737454232104168233885169393797113872924788508975562243157506721571546385457554782442121413479241469350263881403019539578409783356205205367671385661564664478101530140284002620568690807381085269104373264656521607693087064780860702822777383270086687694706757171207037881802204052070863649485057818969956192559002498430040444764532764459990735737686907096988661454722186226761072810998330094392978084945003302843039382469107144787865428603774087406999017763606583694735035145310373780179244207416340111792753162010796947814894715850110641378790772643532609720252502046010800636500500325963225308864404999510602309487486936941175209703683471911068210300581960915532407966248740644990765989769697430898776820155950059216066300802367207150171913842177275857581770327564322449450808296698081672562833695598802717170974268157005043457807682997391180132699974763827150661811665089182171242270089584832462629292240975181634030651318352781092649412847526321540336768169528511485036946597794809318378448762566772798277376036080296810682624269406550020414799410145548588409895778850551891721790909363487951479810992922184545378950813264041452676899276059319524076718935638119713485322393882725393151455269124136074240683770713959720804845679108473278872226303961408695866982188261695412169019068471441614268605982802480515335722287603012290893480032957681106653923849450014672731553898894215804044685551689695842505938358719724352820170712096528582984079709692814512815255343505612447279790393316829950140897694629764356709903757093141125142872825639450767909685843071037336805444813287032661908048088992112091589312318453765583975288613645002267055883704516445553228875124944118742749588738766621801917884394438517933280566078436188316822261107847895092538689247799052827631086254987012439838530873035631760703697525090576227022140353368499221242678722352817202147653953572833331923471330472258222443823973700830054172278813124332719039538610609825062054143092953649223320514888006213923906515206285932684236331943796320925207425031381102262016345522997759413627855456375704189308698949456774254553278961539653554829164990967708697564139967884971427238837621782538155999979062197175793109897725434961546259595478462637572425075613306460503394501352389413861448710505990335662768062717964088767406377028904376417671387858060808180862126503061354876501226891338240127088220508200777131778928384531210443614471434080318727457757186224296770261668878983888378224518892090473650821156455546445809316776607432245087441678782216488768189000479403070939213890545773029479268118681849033940134313550134375177798381426642191330569638020494776224840303299411901663419043192181317782315262734148534392768992787187063069235954853799467484478404305420962904171271057611343541756964021496013502336192970649660385811595741204851909868897948161090168912227515723750504618089950772624981070412975936089886536377372615639764015460402043052884474107835061512093614667460721211954493916621174877647364396541761281893062326170624758130617104026913974308507139247458405204227380710169581866100599785882790153131182204275452129847300458911118050795530466259473388675109728611794816738888918972157972368099043814453998673950993067009849036343961075569316356714033625803314417411457424380745758926822077978441344194228547810020776513921416430760062952121958856650668998643289225799708224095145002374214485936562960365020884968209005114323494970160360740505137312624489079627033377728903223269569115272950742630989763403431035277568309296526715177873416618901363241615377867601133745387188624320046205996087699783234761127706738352471343159096127318329695922380958628464761622561528883320610160544118784069664069500555714908674729126097295647626761749701577666012174554461851496322565388477392443075792549393226158979478735543081162118253907459136483985745572716507857080039025738089343489720178727877317342928387809086550573311239986088250728519812205449928457894681064822737614768951582430460380447482115436747784407809026529909499151357342657774747163106442946979785400439802309063153652310430654806094627146870778695811780713651609436756953007762368099077958113763128900986237673048845322114737342873575706610592616791412696188136946710454177104290663762100427283983529562392390231425188024623136549403671437190828369833311180302927825568598501589058218732403035540443909507351794482903417140901945855981044202864574376880898913186724119860014563066712726017279061836535444881297241702007068575369934205535101403350558682954170048609351318507024635226611880180418239366223670478273404752501913893495858845925940329401518089998022105044501664053856689162758118655046902958390045585557622058640692287185399810504268820832443431067560772504155829116286817291405229030796735022786195951595581922728318616273831457068474966566069671207322665141516470541242205556487773550923953756170463504752344395616291945801478737189433913747686445993016278431281085378011782608640817086093011692647300707894221852419336005888503892485770427654268759857727040193756638142572283687316542273016791683809849058645569720818844720368846606657372621740849550455644450690982909716755747176834381619140300408373642897203895250379380747397702399065595167320234665756502953213183368143888098567275204322052757240024444503664164448909490009757990621764138554726308499188642355420875579544170116181759635839341214877304456686734166223309896096981720142985522344540275273332119121912701840329937257664342278485256244781016223705021526462497094775148726770421076502792129422466236851327147378459807300107359735585207294056483041917987588077950586821866196789381398150119219804185413279522113245973561737904476143262910311011549347666712039408436049820791300335951014789256541232996357671290615487472317163095645818315812893474420093230047927698167732338348417761246163256415280194709568690294581988950228421128394192461378956825294732055622592950232215183442942839621748391427390851135437935862322692032299801802257486922739010609159256239062639314530183129532148462380301286818066398230754511989306217911164150454676120873684591995959852086614278111156090767567776302266046869314904287491769693769082628267932351907857865277421675654554522544501487343996963298855773991121819597740440940670002139660246982650234049250621694630080240854903561691941300939335491038430782256978339697568534953606646379463439788289397067864988520317216055007860677739874925477526727195160136117618601535446485765809451975514263805148141107859960063155440328569316741844622791480006390797990218657160919893710682159790985852166144029120684521067599898930834850128144426794428613739814556403053142073498554612964194792601767571541061345558983379998989026121099981792072062345389750446096088239692966974480908743744086698864722925556895777484047003453891840663825859664534791817082944288268981751129178603044727181361342569608207838637042948325896922290871181258885245179712151052065649762708851400073765594182109404463717985668224025565898523916619090741552587237281482928293815786303785046506698189045731593846786277806390527724194866603801030813620925461362227886513857493648605999106623360185853987933892437818349749457355165825337157819806825589458137633903206875823284815256222886066573860380617584327572209458714567799054134912128720124836047326233359448259285323627800955012794164764676206956143187090162937400016831514999666555014892298051245387028694751285515287713323662251206360874873207027439129972399330286190364591261197125555377361188870407663503721604921059616403577361926386276378353496921879450886974343822955010807939100828938663058810209875510141840388497034395068906525077787237377060399528080818663396299161427705581173495620565868196096747744255148815332022365446650629088835829270274972481785204368196400919743586719120432251451683490057841318122355894920102803069244903462892837896877694594411073303070786422596886097374079928468676851134094450941410802627733776320144605193216054342603532815592168463749981426305199885360574225989118166725492105331121567319631374564059897726202770665719843302585678209424135166242101265351843861381293687584617205684216408968875732905409627219395562085150563227316240508971697982775479013690066527428512814650360593107603705852488709372142305421826039377619680324419614798722028884969179536528511428811521561514333045691012069287230744462622531710317142523834819588812898308293318460198741613621678858905751367632181072021072493652765354903331575132870527695571416174989922716417011470311532364648952841913931405655042212043697293211990817735321584619422480591592456761599739098304610481645731501285933950301308110696673612795425779146985862125256428235178837729281247793639327853177772391268135313183615969249763365204220818496915517292608442422469879155826759433196229800786559763501895940215964538547052831506180593939601984094968719872311344432378958524609179697589384281331573804016977440177283999781096192453775791507274464340792837045163152514859028274815000635629980736316673310675863048122864677359142709482527973113699187342487536077415325533695877650565409755439481281449826551113995051911546652898849882119380376132444476942045138696401950589554955915224341319660120164696087150177799567559407730022822390659459193036625793893001440283043305787212706037886793839457028903298520018226556899709598307424572119819875750888325380843518517551853063518773322367102492165847554883205548812214372393114708647430412382916958863647816611903851168217341232033113687424269387432739844536798753536894135456986060159160917192367134746806612313622105680430454265703242154531634703439840957231328471788208397465152927178026480439763539638075662934828192406849052076966172585820570353563377228084399375209815394673394018292420915485414009120200497003182642429375083679762101750047246061617274597448973006460057991082511595872464459212787415368474390276323953565109064430441470676242452687132060883868911441310081613325717728916500390927837917448627576880084481578125418350284348671542345572534975472580754977095826468657166359227947631511632799169084783987304169315995077474204912989979269929034447323831537006981090964247509917173400609483110485388649553691704809959950793480659657459872702900385821110494675777126859267309099380317947282850013107274088915334166680285902099918100117157333684762047906600062793845610518031661754706162202174691408501342153846278840201773267118412990482486660146085713790473395152076347130750355536431849797744540571500385934221563727011581912167672440922936103192988952952854390463487560977906569499700491992585038569922141284924390831515573455449234095728588573223674636166161540086172922599978001506375988128091946312502642560764225914190769161742334414720425530951046516695742304193236358338996489681265072442724112741042409857495718006424057160113025853183647907291379069223416037329908327194772849466997201735090756598043871413923526563926422007751184061125236994904161722970681884200359776262965684945710899097879855522435342576555947554611715311140297912110412225141993771379832627358308780652246888486242287055665778590302677985201160560477754862636171618949907803461026242392631781485485266372907116434792731819975868646402143006854411748077555962465067047399485511151761317663659737357420571603927495859022170512782024749567322632139112266913602064634477906454456577979526764994223634240055365005910343605989534096040233760315639831257968229552624471863227284982384444749416684643973477973518781301424501081554585667824196642136724812092560865052813516349670271573188974146469493476225311609422435845666706634927628746459099431830415173914101644520743967557139728922936955124740590455185228745918039723070644426800633270149045834457751494074333759553586284554897369237435017060297562993964217215461316491106810287166484612602467649935831821785045839041800875618414194250908745604804568612438904559151842498862604682278225434473983874349140256605464753612069089674397483861895413693009888038180934494739794578426096549608595257430618220912640244997891262736142247580877698380496194450863668991667070499008441490029011256831135559975962708637815019364925234132264312655928894874611896462807909167154502967016203931288630277132740199693673082457020548812332045734591087601737978586895313194602774207560990307266265467526332184051972557771371640549500840232687609773951464820928179469688983747920988817874863944504261441931888889944975135277780458530157571433510737570544797651420668051671758007649477354023237242421936492482363090694270496692926910092422356721919700857371153837967716899180783535776057318455173233884744811839212724695111284485515243071782612784905565288288322851727882970018227013260045447000580817057897809644533107683309194121500988375611271905191319581457282167926354839080413796283504282016961967518671947952682638888128344303205976197129646294975086508112926778316894695835225481087657819300561569189191807990870128802143407194273367850116587175209548439031827811260927777032852840808820968623833203269487790348220057301297373927760178160513896513201784590961456317739851622186722227286382203479096832146368177217777696902625496060259031220753296281768470508140328797730543809385025152453748795840639028828502478438608129163725216164554479867009514519155869092015684665981394053566955099286790575533931044450746403403907496223979793277102532714784231758761309378687332239762197224849443356152915369287572227224619737532835064685692234606422500580706668014624807157455767521139112954624772249701820474672951476169533003539398687044873691680839633902446645870068777466059833512443252081966486450484166492692294333000372538363429635271624665035904736190621659390567293176356599949038736215053629197900556833488850270569928758915604495518182494538917951516795152139612431615261465113444958826295380975479590707876082489512766195309440668837763515489668223472556530202795829871966768375400808817106726419709567744627926987416926366336217990235856036775409731265267972569558505493105695513643095709393216282291170777431642584276893384081648400006120961899852199741497232688802422748971280615249827900583375329097054107652965128208236125889429378758248394854442526088350724328498780117353993750798723702551361694803329444661300464974841556204647535405610146729497782904591866403103935741923702577598186218815071990122892460490646815268086747132284021917063563314218488583407005145319478438316464627523892164876291947623139221076419957019316062559149258489798487593277605354138832179435052942677626257035897693536957871923010488034214719688050295837527665056065452717887402202957652406691708030849493768660125313590036379757909817904609119416433741547368317328550273167125909306582848213252119467101189267232173114089240135028808483539193661162911974253168764333862539734432049739760019423149276600210319927119234578219525469873531171790404045804714705779220081712835816424146021969202229007553913385905166549079906732841267691228681922322473675486799079286291803065786647472557398070591616887897379917902718112306578515788117200977037200608501109131396989158752691741764207860281988271472315126404551564650978840761619863996183699149992215576308422159312040438910301218683755660782469636040782229550848194246777927806251254036083489693993812953566930580734571024432358259190985163222804367528123034499916142147309991985966347740379924191162047496945964946892527733938030436073963078201891994965833296053500011892366790312809281305652407952263310813036504279771774604059153291605768906875364129766344581141168529506964302986632167361708246355918648575832819625661221602932890971874464325128794959013336809385097591579653864647611749872843880494291656158007770835478535996967574260814183995008360244639186844405486324255005694256300215370975790651773251477412142946268051716333492568255910527059360604082432390526054508816259902180047299124294615497867818876171433377910062478288183946709252932028506670579412107509020361668751344057487459604378908109000581409504355797073898719560048993164985593218216867080389573876244441235393127812452029333066811871969200507741035243161448045904592210661519027019657083718182676985294095574518063530410183920467744335871643138442070172774108297964479225794471789796796615102993664545335628116632540275553249703951033367322098099910171420296085039052160116684932412831967900979217451309609218942504839719872567823091914477142216613747089861354452646759794183524125631199078231489071140528305507448122996017028804610795553592842805265596341183459806244154642312217455358722459296285291131107707913119515116474605415125596057875886815591771563015476878303464526575516149893165165896232428604781786580550435028363995705892697376790935583145879567096277417088501886833209672702878396662795354658912728137916833096795234475031102033965488240798625555842869995093119158843135340824612557110380318361451041574314961912080372604510392472071774934617749670489891689953101042919244161805377084152845282912896212956264261933491960754543206974101870925159779073854441713101212430085534709842891803917281398001204137207004834653676105703012975134053815785098337411584984170870414235345888694683751087948962644207466282022623851024018538175678502643174669307655068441204648488809533261839967670797833082370833195854432209567561712104341843649820957302302684234272369812258273671184002497124131934022191304778571685817277791457864675058771802882976010240502577851310183602212396077895866077513726232219384664773482345619023202968346517537817393734286297459673617714789446762493995053097585562847893786720913824156130230609834841544063247320101122299900599279645623132472381948010096414703544552241492106258520812300126756041652310615404305117571568442574755752732200025139924215460036408986905725890153378148842708188800640335159233098646375281529196213155565089673266822455958939443433693597190769670822456998461675415699455307862315937770108168914177050852800568006544068901634996874178121547573759743352032764649711314894444042946221109808388866244858015591812607493921170323076820696730107738419739758333584945284092751405832047325351880226677086480461957297614546287636838687640235686641920008031230933693942395227271409677816739959039606036939164600977604467131178088884990923750716974000432323574561882332370458732907963011688350138022015725417789979300367258003374216419615035789152101221831031661444086973896397523864910399898217986878260522157663274380024719658775198897485465366181791292357953092622899183183605417313096234569266480938010153395087989898219188113599346161868856512433881506887107241370764485576920141413407172347280497093120454665767661679338844214515552192116841322574238080157535939911225504505514968935342489765919692855364832182683220516436388591603084696806432119566185732004974179790510459392682478457954541043716835918990040694963410014578243631342822067182916270261424267979958443173486213424869398036136921168191800294073761509876534875395140824326172783664435162699117946234127994221336147480822023412837295955534649899711324272378432197805908927501189212656305774116659027519032969875479682499148534228435658700509532252580595623892906523542413232877683728991200005228109079215758570894533880373112728649593656524836350871463659510478327959122299803885989415066879237266136154286860361071898632469230829006479334184421262460567921527322049364540526386227017512443776162521735932466257376012408784217216039847851543870984109981127992438460936103218830323940432579612787292012759558912848192805591924785050994316676969327370921695702281229543902544984841656815416150419461809817479518109321168247951404995634670457968139878177223856140252665249265219554917796711252037076853947649125040124652917023838186934050501163748702019537757093369987980844401637855526488199133785524887889700555202591657836193406474969258358572284309229115488535442013486272433105408928283632179667866347355740428736948730741532359633143232776856196565529487980052785827277378177865453284440506991759839734711697091018800547761662088193286238377061951134011128614502273579880823156512111517022955206945361299205938511599925446560140161652559502192879667135413659776234549185538137902308660194083096669114672859740485035543077299064747230542695690076868366770124234305930494509284985845121061432530078949410273164302304017443853491641636157372182233210822677978287401218071664201127973464191863932858347854866252902945923304546289768589728742632702905524510634467078455272987949360973674885999911304719809746412156145121787842818068827110940841575347192777429581041567484889873774930883006880801719107228060210867628327000489866126277299225436005481714255003983944475198039679811760944112310186823774601675423028521414243722882606970022559369128741947011373403399854506179132464827157597525072179496248082938034730729114166018202224481651549878829689169269143715571616449100575270466503281486677904706489490204176767327075399722853913221006038356443515825930867941044377725905794326606333861882781044950108023168031913308969488220155032467414746431833305652818006758892211135528570666401732058089788695826875201643652849046197203460351604097275007295286979885559584235508030802778828545115252499584217439948275757638090237699239630741872754132049190753228627892251924663735896049232311601452446793593330427570302110228533603975953323485987350347536986782006833313786994099549765867372085551658767292488798466672925001005944121475132858427858351464168290512383866387896257307822187567890078744213166568034376022551797246051589855561672219445523305878600834895760781522696101388312417049798130639817594513872652030035535940488167669540372768918261693591341097687491859157854774078150932270214777824832685271962829054028945461481941563807464231733668784221275450473448066629348841557870096328420701182077781624125162598761013130718662724828591943754008021145467684128248410096288172899245961092037796305561758738950615575595639530651228988371933357002561187158974743207282936283629417450515433752950209773694071677082642309994790185869207380874784504024295046029372067676352174013466721373834739535033923509325702219315025906175426067859814238863061881161103086844933139423436011702072796968061565877851385583471952063025884085105407328468881326857068780261806186334548499674939894240554724163418533391142371427440633809450549442754404048035966052599261718093582066227779802277594486150150951590740904917122273858735440293009601670054240335325163439266994244492526404785265970693426080904208197264299641084916620217627487591876198508671214404160504148621113521007339017460077923342900921108184339349459903499758003340848102399854368602065400736584805410302477538035734055763222947358054657800950036133172072890646788043489890850012517930165728645097121166354819900433748426131797107973907491906784325034525149151617854899087389768065427988774761495384553791064580170764146657969229695270340496709052680540492387968313872466143027338033978694697081808324924750496351140783304015428044296929394576317222918896374490714781475436394484821289631367290192119677246523101339125739476401942860167278455155686961738533621433132914777649724129520374974863354253278309726990465966531933930308477425529960332196006187013075328675793007098504441733741933144132852956925054924205874697747044770295031987830817515962099750299910976406611552264484710991299798022088631956751055740261157839697263408208542964386363020264979104038446888659838967511247412716350060503933438384952958824518810769462927539141600029784216703959631092370452414139647563828737328121160532948516153521578412773043446324788020353260509782577888526642351884031507591474400656344765958193833245951564210278711499657522732957342482465123145010728818395335649286832197191596882202672028266244439483256271118719640255878308435998926602193001151808099812606928168205017579401722177629225978868727792158994681254292027665175156670504233249261539406226239403027557984659958864799039007050118069223856552407070744042278834992487781318100034936310403862077803636277915822886707716663260332915453989242541484487181441163087405055448973274859690205343297490480352138978444451209946701910709162090748954195836791202198583401282582340045049335369386977485174258770024722068749578633716459936997982034849113683462301852535585749917651735287232690402362808925642219409604555124422762024344976373564859859427490332111985493681221218460614772899315393632350498215130804652734519028865670449217771893036994600833907756642521815943568911705942918006818864501111893022039516034351375078367549126406304878913577177786703538097242040131246668240613093278805249176937157605915199738722240452400583853583248818981266361468695732793402724346655990140260209527945738121769314227681319042446698879495363737207635776511865938013625918047772728525407576159688744043156132362981687117394612532676035524726042009365525451975701556333047842512270368901293206042360441156364803100558439240898575962576153410837572469142733160215636172797345110914681185838175055963339893522853500221916250647450607578352594467885834561459239564396191567504433858317465664347549655585751516952188925222184019270877490580275840776675693008723035742055331460208597399439004712620078239405108338278166288068561008205975483181236696062131233094269856202524618331846940852972459016737346550173844449301036575611939856958413435425983585439203491804607829078586225757982175762323040662070464947111340777059430875260943926413482400039470747627210154164801176489415781070128858138176737141812597094674765564162009300428851994280419451801868114610224086222065855920255023869326266783684276456152575658482364290041639727227107750920638951081168730645118241784231028419312118453937875808441679529585160053817319124588980961687913263531098164594630804645791022871125670118599983656085865964097276490476334062825608896595239949942467840594256475029188333736512496502646771776839630518322308322953202153606879393333223002645156618747801333669556848981654324840319773332838269386470440734221285427044183758787535665611702968467001914453070473710464628305433721171374067627249090321552293522946729523828023599945240286724901167645690575398220953778152269437445970658261533811465649288380560917072490232088073829132266377059325780832871241534011205019630467000883958460805846368295943951669794941941610288460642857289660179366221386017208549813803876733702022523189877537605818789588447378244588603450095375497153566483487113589052212065210858909764115632688191523980774152915667227045841432278980130308765366427112726666141393192868673445848135108739986341616118052495346976283351275056976785834645211320004830382043465292208831510237887264055136991820221222514146097541651097514659403178035179414885938206777852811910219124800766793175851291995977288877923175025081503842094466380102891434750376279764979203995067885364265011123573248623151507236557394014444307180206057870504738512358954653762015672999151883547166000379447816197623325881166331656760354870863896376995996789122458205760266301521872438358809947154622079488392744817940191496576899416714098994980861967062694284426420007671833785436280442454068139619206738195604140967113533382322294843780749876479495521948171484261032376496746760893477947698977629248710374125341698879924564045445228256698955007947022869957976385783547705598944540258509542573155818029000254713531178623147481780727031590468655531110447962476374091240698429501660271138711852281535655148953415463974742806345556704873672131193660489643901872249552077969848393381147220057891214606639780318594218777085078296456341163342977703754406937687674969225395895849398930088032019998497980866401554311349478894456479236992481297900074397970106487102081884118655223153181837163710499025106324236124802554714100245536803163259406848689884042855348824682200065189120297968726815438274023336601957960670415819971531915184635102013786222677825204792774482232183623066985247563477855607268596389087737516279310948465342774427985077896630057599229351083735001045150430118697472223521993054661424926007954232979352352834275272981892241335229569631038247525302370454990133142080974597868754286497222728822801662095113530585829320970920528494419487894863073883799346865809256650738054775157131945179912550612738961779211555815692871643868800779270512730291002738354000248720790552760087507566820050323649950782946077761175337343938890143205756548355869580697396515473563626154295884038562859680648149310261215475950875234809741942151888083652881271239442663611655096291464434377018282704327919053434195592518121798014608805133358633102275783715676556331137449841432661904802765739414569918032648879922496560234294866603204812106633724599757930672979556782857113675808198914835862857566542855658514356572357686418347774377471412443625295773740716893886385139821781104851950277416959803568391206516152049837151464649223776142715276771313281008536208681611709353777845922709195280272215694004961563218316120427900403151641021590014564188659368821889583172056353584000256319958239298578222576142377964015064100697384017933053533868144865066459207374366343498733238832285859071312040967028922038775270091773100943396286058151249867142267060097470947803417688387032826939409452444523241673599500138056236933709446140734673763966690125003518307832047519206687981897706795033246132355700371467638370257139295404682198846882550594348203847457499016629571260862356239165786804401727374289313658875342389252566539509032523751054843616234453212222888745391871239171326745586759949525165613008738139331949967333780157647305047158056979406816019541879375983121333652241928968228760934846737508977810309621034896787916900215685172151933865439276629747112586858143572905581367771898678306408993292299115736486046695664127878264059488778812551532821315290605685261381707445627719247816442446186178617856637597391227297577997597752830100316370497258601557393123116438281933216703083919528891774654277675905062872195691743948559106904295528366914439777235444846568562290148465886616134882471184700762583280875861581264364547628501129496355757898823970395425085595659773930416933884821807438482977338366801674401943811793309092339564328352183717131171922887897586710348638873567767181284139725333167019723766131838998960889393472724199308237124677696649881638886597934181470050524269737759178526292857646020447888506936407492420362623934648658163162102410945034758805669474128673958372683367295661253911493071011314559014157014666538627371815062236041491938719366666913691598179623744262732033083702761277990094025753996358695631863468030888844318713444924190236256848276004082607145841547045679471335677208472837220760424667581007442122745573195481364837990807727140622399267405008365664606468237059369211986905008262315789897506138024278087936100558298008607189883529309629128565080232164464822826968606122743341111184318989962122615429826464851796876327401919036521447739556244095863884284368376926610879392685151250855760476130878270663307395578979979418459830177512442391160204523296367433055762806899338069995789442826808204265863464167263448706949186049536956197304728611825698719030383428302489169827176196074314411294827653176479959510312776153326995490037150593383365854082004879919661648791345841238824017972903077695230200751920052390053976999559020843097357517240334573973819672845276442068649592433269466256238790267372637749918367849072186501905636269744988162599317262562458725517771797955772174735710957467156703865317688470210662103671954062084975920177819142819466024895853686164756666981999653444644170216099275604967379655210223649240240791925716996094176641397250778925481851676825583037265309984092889928417100392740077321250624640499002179609951131196218358661558503935000671058363933120536315158793448933782388224725599356216293202297367244523933506371025548773106732720473336426312246943704000256087978365842521068303299291127467954803316924916536133868965025677036866039505413758987493861623432576854796380906154762271197851978366505233618909611538624649607871214810624843632571980081491379056224324448041482582431966024680536004733892382782314613260146836223984000512826233272893854500033221859609930702619485897195996680203026843117305940246073604351561074654274464836088229561422499488632029753734510364839015066601797660256335233518768842199329274420346481022123014849092680148481642488386439341012546470118340559115223007597543286385771520241855049718692385666561857793735484871908882202506233451787290954208736756025926404018988025992941960988442829652373420586830027958880759826789493902550179450864822772457370319977713125066310064161148785869008472249693678874765307087089651366821080314574416893762304454924462285748865689755577497392984511264495811062233124612193220560387974422111540346585036055423668576346110613206858564016821667853558907618616173924030721151604140086800965023008952739685476100497667431305220309222161770337194497979083049878862188077643258815657194831852984213427301416184932437859129833276335983021480373228240892630576282698778247801376880127572891345937339724087596341563498345257563388098815116879541129351936823570232597788529037784266167679460003099161026688611486000286753636966217366613658774578556323486966034012828732362845364663372532806502098784788363021916217954542592397856696590861151832376976133402435071089796651085828207201048910219495561122021076480216601752672678881990509836452557549836461598728100688329455811997394409371281360589973128990117194337573790550499092163257841583107976935983652050446931995912498377609407736186952359168096914224110217636895015870155410254244448299226835799906702869458925913246435587716482193691427391709744261539451076273734614409851606668391812324744279841830713956696509007739454838712063752779478078674034528202258636854921665600043915385957380412421907836300853202648987386991533506130486391016148236137408051892200486706458626679376460757814738412486849368874727714044186709797226909761477558794208891815547721955318717877509094114559718823782596217907458970765516762212940025124523445291531539516768002578038938546167533770208242612790129381823649932639461118332209200819115424954149431954351770607672444216083567266610386639095109873236178952057625673471168586149458053796488685290020254400901701523888839478567648613846540796807045247905234714016033575711952558774907657850399498977964829044389395098134501774663960365083390942456245816757129168425395513130534925232398633437152289702913787796776264922927797734985901776662811896933980991102903714514793142506868176052666892745771792462924807640330293632278958201448139505952744272350909720953282216829346392979293698640803527992518833053100381787343192948825758038937982919143010802564495498027236378683802670840562094309494778914003092429877530860774545088389808095241366520400448719923386114147367907946596560776513194853853900763336265756258433973036936563344535945056981065698887667890418407996554483701960029493713634569226867101068959005041953701311899506851797450458639443211173994052669791216914836466305083677523861031004808227093892355478657617507893358134663374456909674793852488224193205647545126866201605344782800763251403918679398429026804174827841526265031808825794968254689356726797601967690581514188524173492947800759051859564974271839973525244662853369526136046056516786720612562614270768299855444059851076680129686911067198595320131051484664082907034013962004260451743443345488942422183748908688213598388567637292362248276428488782374375772433768359899474121929593056317255955997787181931751588419966791198684065296340788170671777242247838574914884923121683160888917014929430300736187184371185643776627748674724681644805173912171331785711577824512508697230648274162278572251683871056211447669603601027327261589698379363890809197940071439505229184153061026065018287798792557753646842005553637954970610635235666313316073809714923126834214525359303272029972768138139015456471410259844093660659717495161040655545474350037083995907339970080935871903290034662909189666662081770298799028306992554489957221582693248909230416314192174643492283505907086029812144714628207522582879050881597245547739127290552959418338449981276394635522212513476633878157517838695456089299788895162037291610610382348947662305401426256497678276235521211676412041910225613418074883787603021061504774093273429061739806051961466807495267943331824788060197435436903837105422453503843025852013681580681569760571605909420829013484098245545152251428894012940751461671148694807482120323182071575955484516785315048480230329646507127440387428974790205144282135424711051641393557242045554376583963853524938166728181366455446518235123633200013918662489212807753496890139318451329357106037558865333136446304449468687777934269856058716222619251680983733688700145036687605361936130278015427512430712124905137359718382735014944780354715807078024376861580295496682387636425567591075266845888107029440830776470152042069104911582853379752500305682263567605825614651108934693535181134612572689833625341761293825162486245113699055067371353542763837817201426145595649543681565664607120737095866914752964916180895417558843140009487155672663108047229020445550646671081201068470807678013333243714881315790083049854448664773163029402107278737512664347108117150351101813945277515158793549375522942369643815218092585573045508182518196705174835001249125798082588416021783553135740835802161993987339180888582218739635147954188551809037940899302748378718272995804716001333563316755716496681081312022183565009591866388624539806347572206817548908104309043467994044375317321980660958669194037655586962075172224905024308611214380242155035910931953555211394287028496707867010840173782011611037723118683348686256892959155864760956685636880983339932415694060140188865334941154784652064009054308910790183583670243213597357361218246538433390470815957129329778180311711380412132803238074247936852283424480170888176943258224239843535987826328537861911525544109761970732576705494416063163157762027195903078189113643135338664201598743557016746337561900142495156167024652210024914685892213648295447100666476235791228833382320425689318129802927830487379168232060136747683676015820724883753502181358892676672500296368107161349663135448489814532589198362890430411652344509185241152646261673405952319942677196088368074310054447655269117849096450309076532839111296478385000501893484036188378609422533644910346733131920451809160133990046556908678497735782226542608915832673972857910424484657542921623725561798173360232319828389014815018476732111066010915650805157941474896698272871291344052122650115986658135591881938158305955976152475386251047356481846098783288779601579689808828427059531382197255856274619638723626655679145133053644600746570127516548465720490970573505742176708361477083092965022864108016455721749388599509372516177233607904622750531584765472606588774896276136268288948145669483181614088225095241070747519823645522489895286833044542072821519854646290873477121265259445677404099612172659273101502170621414109966538580797375142511747763930849571918405491916379659932065318224754513163887571030195330987605609909757506978664924307807491797798436771341823830398339977025774402310455856373214717570573253712497361826566473906473873261124960788154832946540800004076856141693187382967578873809693829335014675769364088906486930305909303066243785520093263868400964929284038723287185468872643720905692121475056671308846802341247538854679117300538724927618019664136900312685017204402862130596696173166087924794981647410919177622576706894401821637822595484666320138787022996864085292066305120105723519762588043667714525481111274776408035059651537497836793863741809842096128021759222883717627110983952328759590478411698133097793201975287111621274654485960425966228344610189332582849890676981267405836835953289506454972486289384844491703163719607327678872328042353607636162305620370407452973178926011930514210153739706739151740685342561138241666632093926928656912586646839377291148952342517577298936685647836908500187954960707247356713682074439502352138680990321435822345440087818116270314934120997410295669683649815281333363284628094547832856907078727599921050900245701646031810035267147671177178746400925149066780232703467148108236560569074407040738868830968015328595076846639314595602987830846235281046862066533247410418799758806750849234387323663040656846155917174625203761781866488850924693814399491293502042395368091164024440428713729766902187022167115895100603452929313451882462431775158587002916223993429207360621140300414376057000753156150111239289203488238075002863670591587572792245924649457994284846757965498129458300940130312579049997581298859670040412806180193322959912696582331623466443259788123898762650801807386905122913197288783470717144405617411591966267581795980902681319929073886223778155071714909688113005280299919894938312326221895588385410529137548037942760340599551475374158597250405088176671658587721435603046595393633765843337501105947860262964681266212620357554915527239069982914953118161843391537057670559003872408750298499879061896628780493470680509089582942371698097611200230846668418551457940232288340919694152004497364424173152457780200872802311726415752100218736378628488233178828711330479411561392909400366938676701199743306519018350551316744819307308808023992444295492374673760081067200893686346849084876092196970726590952179861272120967131153672312737739891046253422658968787889848142843615632540845972685704546214486216660274399373603674093288905659447547733038606473819465476407563450856344993447069165953260092129062081419741822390175784372007511122563183377634093894421085390159815027661653168125470736049363708140218261814967870918005389424996133321237858137732662687500562872158605369063436656992231597166552024934768908026357855104535158533394069572073292741520794077907630878975521720720417562015136885201614449251469087201625067319393251197827539905761177632744029035240800590915796907975024350834583411960908888959339317477344874067771313842407594335465095648628546373829892915884502551935189616160027306039804298742619895352129511353542009051484553953433011033817102064195262111026205582190853874905460659052325015289782707314997393241014661479905540770659803752234255344199734310642761022628046078558114861985621154126230720772725026670646706281675382227297061654306899217841387647337887072440276061992423725665406227362150520986825029175920688541444956039698086390668139506716237783585781005935888905080616528735448999735747155453605331607312118984200933615123188825987779678752836854691884544879612008173820980797396544127803539448561027959041333741241125047012390588237915140574949254893385693212118653975358840056347743407770978320622406664732148680504840314184834599018742208045030970726338192809863656869685323466606053190051966976093155019237130313520387110726468000495486074902914639834855355417764309331870664046388361633075293827896374921598192535969680710532380057036524342348864800742208374014559650448439467980630826752340224971662594732026637843581224003522313688869662485813513770550807551956524702287197019777690455246235985049029077387668081279973988886534358537045967667543088397479078429693054633817414487727946414894815991155495516189782617356045290497366812240134961164865001166006710933516525903804814267412183869740849373071928602667376564585879313629262240111436865911102818007074053070866739677247748177665611530103046095631172612291950022353605241631786012904957598585932897575695882414587189329104956702955913128954168439830122067795884107801787811149358132776745859085061319169211494211429154402271599301028073665243049351276745135381289923770831484228901156290860502659682616679675862111013810933549682381766529822342716123720107027579739600659124547446088266159522166762263601009859265057762064238347261604751058037980323722779511441256965830964120204300542358288358882615160646328418428128411323190451228683095024631413036654325817531756342150865001623994898314949664782374324948067874276479924931547635960722118283996672874828401698242974119901367424187352593855069158261023716065847127888212466507357340385763318911039861250323596472878885169731095931872111423450824674243232361076227975745258006623637740457847137585879925741521935454307099630102977039946572370225116320158771886347683744173741398193904206669826236343082294749165008697880878635295447207768426800994883290627125053169559017769562862788155697537854382263242379486466660196893075399996239316519663235805626298142329738984532145628960487225449208092143951021448697346740917773820437483583075091784355357931453134189168813952437461649279586020283079980187647563703891444035987510839600721644960740076748674637107050934649987237396691219152425438750125180837533361824848664103280763769357277854022658945746171265770840193084537100135049559984213118310822669330864377732772779214400287822571844633315885460350411726262684347421981549128670648988096902423856721465230547516210892894600892054247968623813900143606015312009148164236977954182398726141637314156593861587320839274338870302764238949350884235939351990294641112058649566570948921660147158347202764992395106013300925498958725676935446567889255628595633661160937911179690568974298266277863625694072171666870854531310792230004239623385463436316477750834399218312933298167505066859322083851642016519703245790987064906045324164897549911252283076997941529390225996811168070002168416288715362021748863137910603874190130094104591097448586872814633151460273527782326455014181209015343045291172674503135690479847505236553861452532905957436777381152560827923251423973061185914478664474441401687331230462359694051859977722029444984547972190735988053457273253714405562566868090811201846031640270958206420450468444326195876055053634135080420063730186502986680904756058140665783514037700437857307555091026583884314956785360696938846813318557844192821191581271530143633395137403173556170504223628981114924913368925271774292495408811348022489630247204740422714410362270495156080690671972619776070533302690009006041548379754452227066438132097538648580165726501376735207401611223218226507370543503624216901909583590100630213553872269974306268147861233017697450650292046713592975136898403346680089896866692165260434053399840409651761973541285643049372305617386615971947641942321955985981438006259381978617111188262255192325348122853920999238069472468329217580796131916639785730041200096607884504147253429084636024964876754058409286876620591241518299137985595959640268303715813125618336209182174722416827934967598020893536197967919528209606700886536264404320568583305416784717093460437192962045122220664398528684229782429781970285025467144106985579910839135701939618024746654752599158085590913263475669536798551727399234118231365216690872527436591958985726151686101303280334679542521269740542529402694905002226777074462453832978473135685731099248207006898492377464724190192828222628495616327274467209410936820628389630868069463246334967372508862564845763312752220904344239359266393300388759079631182126575112732098198223510692214567931169805441455583035041827383851788766119151718424843189708818425769869007808873404718816242084943580529288096868635395605213783011206171645037552504457808244536329297305302915006921846902807436875601916014022133270611192818347999688743417740992347258112437714831038119562221245117601960046554751691461666969543756128833284659554569380396075806243330884967876132275467247428256653948352730159923508576382807183025638841717410546883978034531056520436230085584380586637429151980578513860204547262975695258193418677655539349393676982200713300090271907468500342845731590093282341799985155622529360903391692914340130370162132141167700726649012802213644767624538039990706254874045567494136685888479482489330073321170269302151237210340921837531486299601111496931832169946537405374845972622110110973264182049991280185825077403899156254993494230119824044611383756735836491420230248315517327315777423213893467324768743944288495547786681910268389477832524582734298849755522314282743323197698791829032204572394739216310178537761892751569309031586498741132586670034915878246890032784995889458244157176160507640200063889843004011633522679677630735286621415803036763790388133876709540789245541511408323022873146260957129296943821397026217499688671847072692473807323594815598321659955436669879436890354663232736166981605993254957631671718653178981489307387641575378412434233083548264629684049781442209446334397942534009815564913521428834850023372625151926568141302137894386091073964156672218569023070704507306160282939910710190626121285729826329781447518726129247585446048245761862203008715181741919099007110337413851951662386635202868042125867256441673448068796255271182812367178758428973126523083421901505875922154130131933736982454788908428153368754666563263320833175591527585052637498576352879158998923422597746465732698910795693613761553511031526571994344592924526300502876522628532969526303680019742839884618829932557884901886017356173272674412570057647583449677890317339138358842779165328030148892128853601250800405247105849963793037344379632253769674535795832533550860467928947951114043540776043061035620906926253245278572781249963078452702038269963155725057326245629485135122113950346872705560536907890160086621687131773888719303869398079576522079252214260630485916021594182478752068679136313078367616784350408404827886239016461127179551877293693597041096045483534302380334242156372471480413704320194800585105462483862032579496177507623403615237915690427232239951657083658157424235913939079451736534895486502556104321836367174946363956468422036251596274559409400074966835046471321041564980239877061797450295630968440749613434510486080489493822581186691427086307443797068935060549615908232321388770038312032531659306252648898106822316424133889389976479124161937300124076534177677445797608026468027495674736156257324645668052926605565192067279689568083140826018738958730347222601673276964170527103930212944089935527415812260297517935010565875599956802143074057196338802268336042420545579483247915416214013632132145128276119825847274862415115211983789679113409051951392716904040446426752612524599372112664911180760000187202105914776260722888083293030595849517013859298707701673001036574389101025286580443477375403153630795439005627248235082607584549422317972026400235441388798897302907664106539409445122911739903914964010310410834045912237743237664903312091358717818305055340866402225764230937053821709208631057175696216796720934565069452950644580299415753459533941240421919974184711088867626362628519462986055617385261128220862850503697961433851452778439671409882669623088385069726771020525944764445374229043210825677944799669173736565290850599377751506701473653142097298576398582242482536740606803884597882940970160992230610555931098266458457955828019786260880138361258293336165059254068942351998630154973019611959149366010345511637764404252213576872532974690087446780597749082924171434146126793522240022329719338873603055985790406145807148215465734132361268565778749798845593289209991460808959956063440228882900867010612317151676870269053673374630796983170407514415524024449449646374250621475093178018964236839336532123078105087362141781944126876417140447369692277482252196153964511828148472122354607536689549294399802270261062886608618768290691985612010622928182846145271236011757673923778658102080571389682262674508696370746314097159353708630825323409078760297872269088785507117525724162531825249071450959057453343408735713881003107222648581948592467735956973034439868364551903061335294188341780284224640928787886051027182274781991541654066868710701666922427696000024478392707921980464998263929370291650871179007423216433023240272970050486211893799164191132820801605143923021876563462052304804424229391809821239256504136271566243439441830695203057298921035289990865182184363799641914037371013831662581695714411358447666078146816516729014824112102226527487517444602127985624090981344877278099755800314978658951744066084448311797786057794756828293682803033022680950349851701148341624768481521623048572443125955270309992084418777291104682831929031725111303243503987766423498444411223219895382248298353075270780968873005096395569088305678305659719018657548374121828506115421806131931924939951849974111683103307755465833071351315949527216177275797105159906306427377627168759044920060823714004403115962187077830614897348559242146388936220459468330938760390192327784117877879754946454616555341401792365897483314296607525700538822613235446244651536456165841955302442815569037357966936681647037668031127060075725199345410019134590977001820688466751218797538748517275889845770913888994996427527391172352464987623690509841953024194230994494833697137606016546793906615188546357829054208294194708858884035674875543557408419810664194916143340012387115983945632029700120568775968015099785909950001783637883063416121284646515810515349310665509691034573911375524153738517258336675541925401926965602310420547932546161666692334907806138902119065868266351852210416735907219026480202762397989363714575423422428919454247721891686236672607883117201357595545342189201580014881608696677333366196132273905766991078116139622602329501051082363507546009557045524953681623575581133208108841835979494189503670846028942238028658228372457859352117557292653573284521076374908308058212523025045839790626706324566830549902345079308988624517042913818953328385026593242500686625792065282712365212031752263489602225307341158927631537501246057307384086434523627512287607835234026120233366391744349875383111723345057294670007597393426360291477723599306731090486993242547939001085214710967500190951610741689104539868271183447813894243874415848569922999032105353374393126569725699860175399325139630800715986805117837813119011523744403406382428873284974040132858267919096790058009451953552894551641686660128478391127266742763547319663459756371060386389129799962600149167250630681224006190322520466073959161726821858581507384122749723638706691810275278299829372732994319792834750784737339323664182692031788599323221189987900320244447796274254059630890953496263305811073722436070244356570463514962804631473688863425678931894811817950090917527604460751406809912695866411063493219958001697278469289711032184046493068128732289152674675307742361841744984269977747639386676832388102320191767655634218471857465295727399831185314178380486099968518248960624678963466425071263784041432995727713463068460055396388863270427690394096321511304078312250544017132324280371245573181231258096137282160956279550797214126521101956869796506470350428341511677922029920460151949335800977197365537311608621057535902057150286410937425145142857614767019095853872550000258187928931838790648972804216925785222688668863601831374398864587450236101440167884384392747754954742802436477070798593324480513923705828238901761593282704210905987648880249909122047246343535079744968192245056194570116220182923814421765519765682799423887587406275629814821992211557652629848244596317157761785378867758793492390664833171120657814160492963367792413595297087112660153744511891738521908234675262507824489253499736004606570376360525475075421411308028700126394021208175586776278243772477858136957455163477319030057456646363918424136789769122732440294694707477460141712251350498330499902776187280598272232443428609625341888430265761350585558725708131628396303452840140553742269560251626088204577622671619895513475309134924763004603697016963364329983116623001590662302695272278814403815486574463346752590736396609704670158035266922296732997857985291879567621540180238933156165059127042378327471070293177436954627185994715412197226764523045609910752647598529447874172175843122391475584227736420992405582358459014373857545758303482449436284853898289471923452892495902478317125563191456331376360638553002359980245636032887634085135138670628755485317524509116758675372510121408510070988655133961316794204224360848565048790741214302896447211557359259769174491503813479732651851454867383488196642027804857192635965375232562486087341870410056020241291808390236050769609520726998454536788598915948927757450406366587334449541397658045560454184810136607491947336502733526259427466862457177398042918601799076318794394430312786759478030662475514267371395828190808781853424731961637403426673372352942520953390585732086376872257308579999737298352499442604642789958663166662483749724371923918328480447557417869999682699490339913442625869530843514659645068635919031509228811805485584677074616329457772139479920066842006402119531961442420716099557586409060995699552169027670909364749539719196032869455533123520558514512081110104866994911587419628693720476126723876705749069981207368091114067661229526660388853850745803345577510715442516283843975475653136410460373395889953004624548472889452403445402475053994774549409756705538236080969770685423235911098817338744701966334262574069164095528432702502122036009957580815448990818179535289208712195230762152092137472138800085806740209699536634677737850376408761115321835140924922719934405894013930329608500269527680258284857362948644853501568920906680153091578206271090519853572924623045937558359561494959017272931171041866243085498232338476890060171434431255219513861705674716886384221541880146298547454735824371542931860037178359161931719141524623186349961438968525320165724427504569228811215246580764547309387374669197312345814338269089185847819565138302391397840454896100232998949293332926320152498858727439630072864872064207436143592286046470175272011485077238250887745787450493748709257168486702354223695611301597320631082808962081148029194577515237581197615758421433373068938812944344040677772501653824540503559871620759459023733477107916507133570770869270960985649283366214761013463267910996304504160720145239701170818808094020533066011821219510415474003946996010020627715328111742285143567315340106657229662458541304568750809244670104463390697192287165662320219997587718875773301008169638990949129705226507525215934362813281731254437279257281431077295629493605228086919220518619786932694423813169814608971342939398607586622397577683357865183599331895965391762599884353291657847659597545390382487121069198793043327112624463932021958328400988757085812624019248492895738644278378198239974170219550577491276864679216214786870910058173818535981776427827781493361336115350050386267141745401097783419474354944741196162400854015112150632023847226053810514902511811673051244943387776495373485481926605038052680717825171346263868101467448273362735688137517861220195430898162612136583475022289496733774642267449882226011373466595584989201925347224966356990989171602917096912711664150878552480379260537176666520720158600804235674082382309354576065369284070441221657107939743539899040049349910905140863925251143330911118687552336546768968648462705527913465785496500634611713507983473099482192465711498111129124424695336344753315648828017829012148755460932885019834222165742703302113100477555354920069108988122311543464594726397851499659489557181382750523937586121254852391508181985668307540281874711757089001566356322934639354106881965483965319509914804880699582017142452796059263462411372650355103516341694712493774312629090148295853926054560465295480872492881443776210972907117187044060445059519785389232130013936707945664769834436296601286396880272142425692378570979314451500708685915347913228457760597032682155030539936954471238668490000771501705418585848118879085789904281227592447791076771873366482032006138434530145022524115469936744759185871661015638635253309236036901067020885183370425134333780674231830029995563460376265746331289707563668403605032614700144069588369525653562547564478415822805336689069851924430641673971989544791899219028921804032264809101951666490254039134042665251243538001155564780056757031106655236453994785925682410514226942012283123652527435139578181944176995585919075305639647279731634952663963051537742258431395051116607275400721624416553234477266093100685336368242251459648241082469356014342572788611728144173524359977492590315475173015219071418621064828714389596411078625484422582639733982647875545142519607359281882604379415992776848851304580899127195687779826002024567904989372803286655172204041952877859436986937889190939382837708396612261584853466380914313172878324837161010161634773278629559255218205297103876343688035098777362005392362002051769343125879946005104848378265070018538400305683282330776400348100479969868054584333426449192253325214718495308176122926916099204061729462140124549179756107946931985913373897907486516844727619872433418716944084174808484281463749408743838932682122386915019499828007658566582846845462540692212047486639136749512367570749739589500561625288597721514673542757831875729898554722371564987837063853875659579819709015203766602077739881228243516058532730782745523512949518547471846533525171378050227400829412001810222206530660187179195234041845405840580454908814961604827926910394396796111752269921188750339476537572392585797444822725899884503861780952028833389317102760357136558716390684570504533506861311957442890071396106196728147113528247633219825896904198272489147581598415290630904898356461384995311786549447210470303457501135256121716419039929807828066992343561970669459250261333415173112360017063121969903450904180034184518850062836455795416844336042047639106183743234225756444610174059678180706854340648649263042588472909420910578947788912146968573851309783571752165194774661477023571227805160579462240074937367714089218549619855508365047855715336644015999604266234584995044185980653340539760438890872270761745563595173731560222667806978134748236754319137006602246711343946134301332169895905512615831079469958669350094732852544790792600847843426985496629648324747800622043467830899428218923802750658026706873271400702839276075320171346787930883088147551194442340316534796735851804983845433317431556261635916221801659482596752419274680350109755867303425623385381052421151939155009075274049678808599551609220461586992289470032665432795292252469033295565996142196852562583329487139621963815885103444667628648625863260114082542658207592778674895217003514859475800494540870356636027788655610792881550192781957338646479428531049562225067029492413404287341273699749029642868153701213471103979473770344367766964456559109096338899723464491512731798084344725058773188005289841940860091006533104195462810829287139152352503197851464234724035826134853451044853449591922586529784499242797881660433144488637266175641012729923329477202458184314496264287879505321660724755146312464127417794668396806448157628882849113236788935304791853560206029034676420144346824765884897638493868145305123522159134080748990351460027581164931321251051954442340276203551589095438631415463246393834462225689384752284419345498796614596720934383173309679348477875406899203606553244209416625649655438429956826936452247668417222090962111149133554114701409699457629454114375162043010702120618764205967720854511564066990430818476294034659444611562410555302721511218699187229177029687118892499369185321976547567674874630684718216858821372935070579734785927222348322305577230060648526469287957266910476130976717507867097057980896226616239969161757163150615906914787614017762221491454510617411217405640448476122930517922529935665087362954999030107465192351401708385307366930118200480465291956526276675213428614536248466852126234677963691120466866452062787263718820580089921365523193709053022639702060186452410443988004298183159175149509616258394242265972096770662944395033453267578634262201000529469289315107519135701525420409170641537678988950389469729734896233009144418385942329699875746282507196480254902008051313200907270182544111611718077661113813568900254667787129140560182644507717514527499871550413233187432830160037808214041607213685501532473540769554338502549416602388683028137370541276937176961628280192251114800790311021061651869781633821588963589686450459500428939739778915383731218916216364063466825596825957799608625145252880388877013324690174191448523269375503512634640444220375052815792715082767604855759130555658501506819240152467244668240720636353820969412316962039132346616876719712308013381791303437445989366723944126870035196829820364524062139785234195764714531487583544760734873924645758502022065355848753912523760993355263023121284470691648807093837949541211393090944096502701179839045695978249092886253507381450576634021607245726195313261303607909433137998845487642258101931172071261776550694819500656470336355639194429952245801273439750257613593247386275668622329067479807547420394993102262085381614278836050342461529661675075190318913192650567109677884019518533004973406683669002154424766628275220993478081919321967120497083565553681980890196815671206174743786315801762022088812305841312940900312602270016308175057163186715073685953807722674953663442132939692711124701897427303578082693088069314619946595756083200869030713320442165801058046024733758064237625284071308699945927544438444849381128557960073741347794661206638101355800711953370504259478644196805983947730139197506992250068997945239797858939281343129068796385431991914892569416705570865965341641553757618776052023949515787679758146389947668828695831944928661694207915726835669831453678795322063568941947627259718750064102001620594162639986218388097809674141141018073097367674820445841115563179154805965066735295771652702724192020370998979149266466978022694477269698354033343837951349074240466111010037720743788102917625879804950995254635286384502096757472861686920519619464745193879675597253409713515981634067150206658868561175304578187742521922280414819905886572744860145486752385233354637694963685248411876213707246785477593642323364943241178700194260301810283019261555413124176271614831582255990460706369418866493141015509345494696383959982621926925398796134316620664253860292644715475911919973151623256913460716806508990980994600897147407637535471561974096210186391532503413677412190146337551479921049671419724681539962053679001293008224023853254537242973657647364368313219610050450945791704429740549343604118054264595356688656738224486449765240762386463160635072280379430316464970126033506658807945122572609749941203977942184537207616464973042079577774684280929285013233542780661036320640771316646287390296576453436026730076251223348361768413897998946022774824898438281684921763486816129901152167117497681849145235759090882311387098459952038586134007955149153178187722513416357548350128458537157828210811311808944917999037170979029538443996300993740044190928810209388683697219470133029030267137318820309671508927912609020408563871203818414928487528533662176344939095450574850392154704089523109263604757077809076651770542727800836100450449275282206592684793500259253015986801996182691025655206294198470395955966427248097296612362213315106779763967237030624755025270996523063746103312515916906685006848403809081511271779777522947332272898591488117994589251147298124393612365048068113442017346484203391865450906990026037488932842487794849385258003048257335118395965253386526200412333595927895163916864343468512285320681688282494463641344907933910709801281019286688186650169907192206340028470750394089216385770690517456279969202871812156576204183282715623995908319778781413971192950715226346787708585460031277480179085507985582175000347189219735620831764921278787642025062372248036530950288191688428072205145447012945366070353740699208657992187391711656768303768969957369782386919773104171838796782200100733141052205555238548852866401843381027055436597486020022644972243998189357322901319660489769573472516440022960332240178051918600467811417774498702553614743209575205621350356386421536015094332996604356586603135524164459301980645673065183406727074458874453648496980844246938993233952364536604867547781720606524560210256786830717738637088541897507266433608661057706874134837079989845033959144267915567472922911605828807935923832374120249838668228933691087798564382079193080317565852093334872690267847932927208592581875200898700952760621801809454072642907064235073592673853527348157224530044851698807295090961945414828647580759628714125929174488718264231349129510574330074524509164445389438332360866318654059466106323976060186485200663508873479134772521560134609255231915329246096222351064078997188321553185723162642384506995823082720726445425439931282170174990537122336614490958875134223519355726688001485814136878929514758575547158212651393296268752602533857383771544088767409947901187421552537467254572952991528357831767777139166859844450329967244339236975449130400206128954796007389994116970029498067179659818606817955631115714251725018430089202274212589815651405248723218694721383024137999126491932069330951826090920416468359194942491922029512864918409524337211070751274681111845785240781135310901263813129726005584716942909143443422123693170614249863434166631736506378010592212738010571446445996054239162202038562525541073477150873002677233104701671694916161241621850348895479453943248215229935823036041407971542580907771431035032886371396985669345145475607123429809477357035998369238244507283869387580924602813237754344485615385742768106774798412415215381487344687271178298350331474565866942579733253543965815863894785332156580887741316153751353567436553255913620748527097907858627523368138020183355879370860936251840770630967073134139771404428366507690924108507253876765163841280455513248315197726676033763502468877194438988184551720303123903902960955209790127984337961362985350905658596244268351145240715298640047564874871011049642603184597103126477197323007174928475572474064147850030568929749427216746601051686410953609002688009922131327841056541294690865483570272100552860731522854120482869436385348354054691195803982955334883284683268391848914027320523143144170882584956354455914906783935248018848222149944371810154299227355525157102613103470611972092801869837140243846664367447653552016052661494737603825453236922455873238468708756513361509344996213658287138823652241348311213738597194136107045625493453904822858640283010519093150910214237772552971907854128970368342481616317030523893293820638722158076618445169893232253328947088040495962629217015147930143422008321180832755330098104724169634910095733192217692677580538966697701992032073720746592994977818928003067616243449245122430005234157837458796760795514323114384526210207591978087895713855799174332030589333971801378341102525520610821493885159308674325575917773194604787699354174825768610014960414679816898296923922200603131194900176458166643143067931444369272344457358039799964004276454152377670847928794392853927502577608179407487852733743404472138225617055945359900420733423447859759109918424783941191175047670619689193205761263122903413462145247780684161318800073955604691007831066168458925321268668337575606484309124380480225439529369774991104737800923158923624138464944098539063721528028222362199750542427021359793515653692803746446870630722185676900985899906780477293523476975653395838662007653436580459945044105784904732371707216500811865877529038044265175012894391743978686118253871640799805826163462247797655881726957775551643813470612227785967106474580262556433316916834640755109005790296027961842173271780597418266925185950943531096141859878544450885743525049022912711096538900055551283294446398330872736962198145043319707628067061679231518373708251612551191040069139182314827213019416938340391340046321017686352336423834942744247593012942274179087083267532121218649103397305242475980026806331139732149307211156316157102212544466407968593764859508680994498943766952276128255825745920428750604118201746342349944803535145187213695042550824420762914814365028540581265019731420269346144614512894586602351116829326744448629871154804921651229679873237819331810365374910931993274563484449690347645646374439759608770058093887467609369463604631470060238656511245600272220169290009774008432583900445634593855365808832617025145888408511505764443460802444459818248369525295346774007645696041170002714509380515423935183352219693359401592385829676587651697243399938115710878018448232948354217070787261543820996965870266276138491499516902430291686420872683962502136892023520151428964297579727509902082849002180017343598885945165485552665466056256004449847572689237090780911235185618364053694855935276518046212788535089453798816811523313067792926991035120369105401511064058680479050804260585172295605279717971165868911505687484753943792225162457389850157672755067600985054808812953252158895853485310836328897342302341184297517044364785365773605075054275682367155172522578373436113194235106999975272859492766221409845301147874752912855149437956163248137451559161427550287710136831500177134061586585400537132962781109277802507253439185765129762302036304560792950275603005365408036827962050015032585415982364956280611840421789095175072355913531219280457541266182559449285985950321356847561764197680879195396952106757212480511897655650324990918654946839255635897626572264405615118610526955963093122945003360606861070941924810891149067410090034042095265195182044618677017884287741553578577368976186424090643502283448227197625813749763267623229108004005861016354723743637288440635971892297794209501365066264546322670083046320669856988860568170031426440974900453674502474046575919214113688544394763735266619452112076071195643078600983903229947080143503434733676100777615440983343876339934617604249042198491716549355618660894208591324842829844800593338042886584487528572158683159438721727526907326904780820843662223752282957279551379357593857480802255066350308056245391703344547976448849887113686264990028964606207219065592154328475565478943180388686833230394455593604353253203096914088205274171113416570751864884555038420218780509891346002610935604305519836378032037956398392763135868654740681407603260822370133514610643814677595706477232721704181988944951363171715976198646050624104134888302226480113736918970224912821543857313345724589202736728441040979684522916779716166592875389677400416355887410680108373732013945693371771666216505907524349160458506289764499012295661789242535927594297891813213030708750512233553386994299400258459765964699689975991325894279473673568529518469721498736767082278154070239277581917620737025920707565379564010089714269054810320000805445671850741333674777254899577074777460522017756238050455050213732318689373506904443728896943756481461106661325962779648418140919362941338254636639571550237865170091250831318355435982854367571782444220618970327661606946956529223298413146416720009905543946840817103013346925855588190638343843931084007060056214764853291834330056298820419852878547665540624596964075714595652293955541227807311786244186559458761151816068157745470502147241084455484467378469200030432474623300349837860451968046622860428022326319642407272372804994260634183290448845986942917956965122729810536840261129780909856118250943923216953815336984650135058743355962120273998913762697281630786391221410844539116338939334790718702853529360139803964892605150489249674936372272980415331631340430617061786014704708365157594149878103519169625055993567157375266161545906053767305017877498373795156269270772918664270356295413876378411385059310317050868834761089633800187300012776626168931255027802631644432452583428913912626538095422860046899532830469090265554152250158533858471410035401993579911048044705725130196496967437427638059860759751923585427847015539938687767687756238390023297942256663652884407701113053520688472646098773057961805041724957477719636105701169762956576111557234183006241234942534238897317949699857860175276892942914862221595168292200872182903345156664370782186911920623325978037438795222689817173242010432674658890693105936618679349063312553660878745138440880143873443292639819138489716787736002722581551687413295218953743802694265815749621632786875206561589057198642257216021680887898297464084225203018378077415285409068857412000767740923524923612970531078362008567759142864065736146698940048173118768145393492794480776788440285564491071758789165165237115986348541147990476588222464545253343432692612961381375164118708111510973752427871896273695734199700718727963500733428737078765879951139158785556519102121304788168482377166793358407015675241752162164787891451752192556141264901592441686265887248223912906361550357609635122123339450148301744151388303455433275841996829409830715116858075773048441007359835858220617810590167035700483589140811571525931222772008756114435544011892525945421373022760089437173100684455835435295750691603707498199165788370712916021808141743277976527741199190645215032143432331493462630646381141502718067328121589990234652211666461347633263490016535206131410065882979530932801405216611448554872913254437163628716259634537376297377783834539936539914636908169904814513563993548088884597950538150702588467158604297899285194015424296985716583130841719355879603948647150459496683819174409544768214835007177549215674534474732388500405667229273300241836526843867290163213758298504370979790515932941862226079312577534463351126251905532770825728087321210841968014458806994924265375076160949646744778428605339938146615321375623546445354146876884937553508506782199351041257910617667963045024826973918428765339037063302574198699484236152253945535718821495584795999665512357962853834899119931929891317051169518787352533805159668127079371071908811234729927585931841441176233078258691490325884866715326309894980461765756970347653863187654871858300450889936263062104230181804515197935158378837818756821827545118262191269576502899020906035464519862721591252880379259426625623473936715650921109171659284147035783074834150510876194933682531289414427568720838614675584101576444050741135452346806467348039014156883371358251082938505448723907588824404078106225527265344389221476969907648282623173647984835968521786476632899092418081302023425965924469666402126682757084321363814195475498821751164538845067094551109199670987823846355349913535027719763282424449106592905591015722046099066679431969646285111795705650955782917452995331778888889073231845617272505159491461578947627372298365409907287373826077722017198192430301298981516748637789647438713039451645365686496486257616486024873605465422670176350317549297536339807049575606971200496098108322298659394587135158104556784022836952419290888980155703691683931919821975495207556052146962970901548689524155640245888819744504224995848039263079344751521487558381850388003790281850205259251075221045967359121766555418652366377775529601422615434913080307134210446486451651356354849492371839200813757281425185535918831924623497753131716324978181089136730045973273524119749828662851817117163398764115794766360763575197223312989025160222765020900628550161485156927693796468222744629883505625840078669667936967902741813280671370905023621003682988365393333004049305847138065821455619548370593240442725105393641795154663893765689452751545006851384230798639285195141054785588751182639964851686969626606705787711955596043776224929950903248904761279556029121623646227529105755051004852605468161822592270808151722804910893668414024569347507948360501775348687222725614219364135311180966205957678835408351240877379785149665517478934328768966529865012706877305387068449866243828950363310436941822406907189562842437064750033318310300824081378878568709532617260436372604736090203861845625215286952960099702623875519093412307241054797421320499547262444306185626953780348532125941220011958472122328418271671325990060209652923227154228735518085652435883831553643076171771197285899486768498904866498413043576386966741175551822610881357874758728734282547099680499786414915790910683503921147953551036614294269846997449956248050023957939037915133118269526765730500909572060374804259785001526176590891026961822966107567793871525763014586622248523244322807046281218683452498415193805488177478809545942563223016880075975935626305738813032477368608913827090053226298102436804072017688514992698458307822973320355018377936735827226871642486671450770582596132817383117037286329888825263875364614844400337494310575076383014699233631585156507336221474358605554791612467424172542506752095160688262809662870980413717562847475461988397068041516224884550022342179678102270224975242900001676753656393436984448715316435743566987677082005314399435915724262131669264202099467992673297960828198883917509619461257484627285546186143489796388823760638717407440921856903219393298582150397467488006159563543492304880493253999803630871699411433978243714774308580717174512516497950090768788212669255607384539660896247500746944427485406462774810065744272795448128629793160096739746645068603817720426572538582629860440031726493983029792902799560853029692671590699328695416153298111527398052272105209394857824286282709058881084996052691250387321989646404035143276705763280930962293882700519452347284377785392704251956134646280775400841644702540946824621803989275790220971385157113911281603116260393844975769514280374903279175963464496565933769629930133581018352309840424158054589785772915748839943912922048506219568824342570494106183768625340270350276591351523235011931870126902784316280338162720920761968115314539499370256792926341245840119074963092779634062657866392927710378056074122592519298281421794906123447567551863386586376093207647728135843250028425540103888939056521306695948171122743732551477720707386187813719371610275203324258327241718669152002828518757755577275681075381494197854607175548816942368635358058304958477903600349191455436376665559389713365744641902189732409375122179392787223147255969803340528833040193169347717279121286763874781287206199057093568685267766212846049404399218290033624624426481534343503072914185523331862193853990004502463835064365969818658542848240810064910462057136921481953017289770262705504983376772769103205303775076126298784834677811031908593315482431973763148668672002449137634819461645611431442384398160522465527355536311653914243397714274419838024959256776934975057042669946554987075583807299057013344443147387381760765549810998176307856442781707879082517214800425536982383602645419240238724648706633621421973634051542640627393319039213489981280674768613494798558096569016706118858359794025244000735771262109146061753276344621952059721868846535555312374423826153122208558375062684839997005044693186296949393139424185667402565358240459218375339999037648452518268667855168208971318862746577309307595229111987065832552874842887615725384339658643405843495077838806932023504757474193188082439123038091650848357080727331290991152807646805588355734632768779160302178448755291623237801993315746256863960635446259389038814589089749016999117077540938832519511667345480284968867932445712605368663801907627485374374235458192656861834031759511553480690881989903281024753966848034740452429548451310697310894500969244015375051053671816594091477060081367028656202651551948713252656856880385830235239247699967164456675163959679246192680386577509348360766386514488915256904835047885783723257646420898999066686224876792063087047869026727944813263522163150294849267028515789490687097968619953370662148580988258093755025170528953862433003205102802205007683771319202073372588275206744922276407167668496690164250147613224679322325989393627546438009317894073669698992825477723613481402008219024927600289493211410099611699177567446002212795478720668927014877626612943480352206318513818799916769516383320014210955645575666260745473548308263923869355829559970993225403053715378337093623901569353851634128426613214685240632814164545104972147882585977786876634723761210950939022046132947382659702334864317744542997950090662391719366602423991890223338703304058532250655534117545844787918043476343120578302752951063403872448819923152785417601458938811677975490815841510102578582441913875215177009292341453531510499483199615693147166886941995683647370266777181525627464183112572571362442780181400471126823486223282551883080829031932179572639441609876563555456906568476449576345088364214632200483554294061654488221481151472702674707683519268309427896461664287520832849569858411385290190829751359660893172710862826777779264833555559700229127212973378989130627877596870992114249636469548755099645122751505479245286802509433666691681904477496230544844115335665955598330014573215362933697935045748737221283751363035444811842794955492369029595030661797986914445688996670214486148464878513010722343149971219700768418963784922612009988444677692950787341468469472524878296281949779335248404399858147865697375729986708297929370974734516029924964972503473386974711040223277869760790875612186366696700638720910542276745241872074046345387009027985438036426947306900800572936938129582696282564687494604451911840599535978606991642382866590220615792041700929277677439293408012880023501112703827078141294965060764883533883595801965938158486993265732881090032611624604307800258874941463812769616778115769144083937706829891448216730501554548301727336368532079217789159175080975802208259916391540101229052956947573845194231544437848943585133602795097463932510504034409706351608668199724322504544417154214744297391252537277401067158712379165168056578257650260750659993751980833272083114418490744606183579318520603540771672943863038506477422679864834202823914844052646599859514978137803118421199614609978972249097253981183655640907287966627751577316448681727564495459899797679405845736872413132188557575691402075817351670914652164542143529530015256604945189833233292173963808860015001495263923866195300983222180972295436850193414513110762520766309908639958407083462833875357734123975361579510090671936271007605435910360394888165312605341373476927661776404794509977342794531473231485507002251209819377329944545797849181689747686228601924158418976102049421329075485870200420621712937535856424608482496492473797627102981428128698161805658431215937850903862721792077741229468556870549527623003628089218820295427087512221214910171455754966214652228482268819881278196467970584071707421563927236135666057716969415336794656175038521980545680141451539864633014062958302826562411907888750929922381478815551669432946703120589861773247126611493359362728971920318997885792721244469187804895301963248822591922426783936221566806590950064214713117200531129506678089120769779741259886706376023567113683649500086308257127343431290962428835325774305912347157472907083558627826474364503776108583731142160284272524922547760743371169177958571739225554354330385018484268868461051758800525798757921529916738921780905219612554441059260090098532389053502668047195633226022230668537746032838149294377353326543300136850279486433100228909765758727118100206238053046662182125167955225528851659461441036292578994917951402573656448866166013104443968714475491335108543134505935507340048863071673588037888863728228750081335192096408989180870154198358279298035320544170105977266675134940752174008178071840618138661650894802720178998328158405194756286379339024192040113503159770996041962442360111081363740236049346704156426370520580395916157195710536017185601280002055289794861153206536719019867689478645538618772867784885591750601219870758341188394514975565920118289850874270689413266716174768010146143719020592263927674292327743899963256412417730019868547306017474095521146686301288728504599703486957626586690138859278683349532990352304906087771254544586276987248442363418200320576661739855981483736265956721274150530212778682303918374532871808918590290058642531817003423451706087270243565809131829273422522177761682052315917073910558878991104544690316436667159453566538679940347233971698738493495998368020743234970245352359729488492417988145648526701003030924248269068475942827068310526101380681162383601768612567860822023081175469622249535607047996151600025923131612326320585563882168397383040586741074122475187178267516530039584397806709674919406252706215094421961417349931768956316244656214971419499162219354191480883893225593871383529847480598440974729359742853607240807039557238684172569504146522322065171700991273149822635987046898355902628129536321611568500832682685645754960130561650911111453394314409490946906904169424273262727726216176775302006047264922285484431924619154703824146873125687165324638619484689517677243542063240714196444180306200391987148230080952206146621054279131808419186089671625335085073667768613884985329050762081892554517427112887986004020403879930383208201903295949217124640779123171757198181391146313625086350153432586920197450023044186697125445437232070387190265108617585421153454408633738828042774202304792993404902394826655951147692486819520790940834299383139479937279038250717793630019930144399094347464446759724792137533801816435070081080987596155559265923948145892751048245277471030919334776511611292002591813645707501583753222235792050231059923404122228747662413722186125729946385408795806346386965326755720880290057151001776228821240850920793535121314996552642997429093679191397917172309371000638206164003106040977319344356592142558652624112611220776673977107218998216673071224327214365342257806780588732311787093965604422414664870115140697085221817481890982651843126981698402552646479646616996724370549970427876391567819863370339293594111465088861903945576701540372672827856461402403315109446761551535290045468859170231242378408271346954263952704049805346859155576475057388092792666357643424196379838437771298152468037261911588982062478683141443299517858970064036734007425391403306742125330795156780947218897161329674366112479497733409164246578911062239174886634164782446813128890538373816421584755370630533712338801336459049817873007146790795349011890950888521997510683337818127545096025241470438253408403855272777685208031563896527585007052981417825467481288477169498736664350959881599077658944975977814356889870451184480435097940602294604322101057739092176040435745819989945819407077307623798522793235084116096233810595515506514284422579911083431145059526284200891513445943890544716447097747266835578929313001569898205335751117204956176054418965864120271163588990475594021356509512531294942920756350737701053813625289715834321683589923576165588995765297696029521188825856645029694510765386646860591636510199979877522461487473128082756467587872640101584842894288902544577669241847618634879302123040409463736652197264764754691473108078057798302340338849250826169357851106251263226591791441230281709015843732837116240918607875922890975487930051768448516766990381469812282048458721945689877385008233701738383626778133080511833368010040269138889254918589450348239327597540904789119157713712273040572665145483231786452399564010450195680582551845818527579212315677127999063406752111223152689851784320974867558213886536020789370257284082707631465671383172197015615577350166547981990327465190730661273536075842637497258282051935579790839217932135841250034935995572025806095695193472708758290635593152295228851132505124225452916351841713464505589631515967848908701296005729604326860312470549627173705625110915701448306579216418129386028848266717214432158541261926199112249004511920611358689208772805155956870665438767070805146756244194340134630937906612010772590417988287354913218157068069929672835553253628989822411369329363049739330945101929488675025163462349426592753676376692975279810014181999278836423485860705827434580792053482105149380806837823920932520113133335564973147471599259900834288653364429616713695626753611780617669390116553304115447643110253197176405944313264503752420601186526040386604650788934847091585004341958182861339447271886647986480251316251718289919723691952329481523881862913191316826590438649277734241146527001339164387664639078053944504805272705996711476655007929820113514632240933243247982730953224585150398241029749017824569867058228994753047817102288939105470071314323796046055464078787686255326333900395930189780005336677674452517477038431264635894728663280426226296394185363278576567681014002047655634211283364592492665455733813093945059984930872138122986130140946548704001576204590845114057475514411589529413313934317276312506703526001638492011176984690089443119064097534256218699984179346358807642165461591635765931732631039521350138797190576978598181923945011294444061031513841148723203041580194373311987439476642235405784043632878552203338308983326165063530343244474645022720301497417912885383289573827304560222843957433787558717649057697723698623964933154866862878151229076942538795459950535085697396259377640535929842797438444372981262658857096456816928440972243758718232706328466400552006701749272973376392729146276002325157963654396673852267543690100320345201107481257247352307504620453958953883015282398492658671767679400623052903930798275871266192096816332014551787378796604939912793795485855249226925822294102705238321671438348613498750373099219132785697808941013245155126817326107988010593929897284193904137858531504071564496476251780333377219507422073550893331455818848714389292847983929435310859565822645435271955977631135416021861672129919990648930555317669393821372405928488801287020040156439696355288903949973772088827042516305302442277177229376199472304317430110676345229966803363868992177744348150714764335191504416596156573824826870756507961791792838180400416408833668310658695565235556060925353386920524599191973746664775526165923591252844449479213744573785257318403939236261130742459653746568554417934617047320936498651338748316506499794861548789444585422328869960167891002349928929088755739967783070195076587136214485286885691414223525495183534006365656771799847734425296531972835197350993282610415357487508957285136878940288828417132713697450328566895591221452385298611221575123382685878873959309059842770816506396899495419567161404203591979762014593306597021053750071944382756839094765976088940113178686553539852243016642662293494082483305033592206674327808726854102912457998113501743593086352876057061824275777936252258195118508053468568284043458004388620823778140679924952679681005705980323741045832852096601561727701287612038443065948996375483283846840217200381525284991065451101868908390930658973466792935532239091818825603597392686055377424662268280339112999474852392240639330407538258376742927604303534843035894455118296426405803063819408480192413845766811720703922055136667700262248101181213668235013601058977482098791852509807536041147900320324884205068435306068997072954066888049486112072735566902646587385819143583784392492674568467129547169227771161981653294616768424111994561960644899688615226028962647362731443797584827664316487753694871485276011895834827199056802411939554690183363186523846011967376846384196341552449517344609771271816913226873349675285212109124634708329851522954195402085916890179254646806866921711177151798199162837176800599009792496177932972676275023736452402989415142034112187648373313934122441659261706397406740555874168879414824801372387340001599260692647336438062987284995062921355803582494804217421702273726299694667681119091605853515389930717597063097003532718433986955451528077576253945728113295750289019983074295119701055686865980047303316923423357399561863026630663964025272091730782978690917904322651014803233462872368014971277787122146919923335667296704394102434079033743541732739678054853952294384113553203198721047764682227303992292853435908623434880804883129093519067553213127789799525690731592753064265402470744518871727060031954178578922230523096324114557989670628038818340163930004621770692338158838472253364115783310277423230359185655334760682769124854166739796297942386991668944511906323293115309238822047114458156069603637459244856903187466461316203411868901916431907325969589401375404607789831550240240485408583620939098004488236879035131304273116051288516880552941217295598105734215109351683551655533545022401166326121146374336502439222255670436387724349958259608764991256225917706422958939562129774086573490553243549073903245807031306523689925885473089181479664891869136707213484989812459433435528295094612808350847281793223727952470537711174971727171963391123232731417337341678637038671205698717247479977111747236380253373514833358703580862040807023860988703011971279038314378032166311347674846844667512440246130811558609701592824122407015627875153017884783739355046037523556328135425034340921405304829499221401557671284168021450729092563989913258061628187130359327896826582832775326782509786837423626249550649808326018065094847031853858891910785593877531648373423331705089317839653395566738179254626186145843284315255795440351569533952699067414177063501288245914617956035058729644575121204952891919419653937552905985660280858009897293079692268194428094263022215336796626665777227654928113466126469153473923318694128589103604291762725951088301744004567920036679179685183234983621437066249270616064917612678426531327392806563914805582854405725798513280846553001622327610830349838731492702234762024580682456564044159099476821773472433211537219049942161236149357357959437602377768872589307801171445926474926724531849012276898726866659786290787069097290818208761342890644731324550887111461426493343987060302141648030492740329919580936681689948210892122384216744771087869839205475359274182911557965155737550737117321527813608479326975979163201526745673146738106919210542206459100844374961958810420441683613525126176705728387890514481671143729439922012275416994817121628388639640157960922188375630329524025036308610612243154361850620001709537407848984235876403180410812504498718694132187875815008673415025758510602399541714232913029648565647146453335305024685951563552012335514128059892244028957106522059121869879664498350574378387562474989573281174854455279688286057965145274672920189765553579520333280065304817822171986770455109995185374082827720708573490490572692268527582498273577907745979940684761768230231053301279767423411939912258568368740730307646284507578515700164707754432069294774841756501691551388070908676328615638717113837004586025217760660469996742108098395093991816532645378950544218042979700858019183371907899827056434742124034257830805261192325627531661277901619921122418187989561563389001726686781703236879989870450455999964011567443051393946765319096553586529624677969834593185912274691566899236656064009320523793556143261974346141361658761345219616503300157380773777809212297984720741362083305500448855308736127041309290019239264165190428081632633771994201257660573249811044257538457529223454946994773715285071024217629280821100671280378794860244394410411644994018760191290178405469257645399858787513191614574109992981100593632860320069669725571362537145171423706984988279950252104690765650815184299751283881959197226073045560614240018873025974223744259193325032989011724918737064431477109400157372844114113117275891855015390366974250757409309592586053430029886655148152400498457073463007525371063233115773089117962208270154019943790242793318855035083885629597654878806879028090265739029765867363523335709248354187097836363774789091674864308125552634486972345767562699427000167764833194928670912949909628138532231239206526513462605078092032629582361547099978054662346857374868305177780270861209128016796430031822421313194798945446228069607464934802949005697971047150540606174044587902614087377921637426410984008721964444224159315334398413383890939553565934647064656066372198845145565184633431079551112373539762334801794719469535412357315405652105526794028686415127435712972466560361512773864441862119267717162533338452773267444114103937545412368837627873199648851706555828787584215021441741705962821913479233193783652255565924361158208811426209038099866550816696386011494438811133842172638715688157687971761489192057491112061576536857905650485177661665177645215593488656080431304956727325877282420334371571656521295100160314212389244340914299275101046628442743048720865286625489305425292015333360222144749405534906298155438414954607677373658536816624680986991406309547891151073308801909688385028793288192892789636402226246808269809683529031289261776190301210012377110377584166198796286271959566109758981902561955276576649189635157803959573928024016941474002882111882565093836842710722453160370504418320085218631113861119547887051159718071202821956041549235155656713636743514125003394234288739506292845268982371127666126647026942342268478404897423566371008624012639361921069523022927740924631537045811786465512965458673284911878831683795490524067889739465565324587231910638735843456116269454315345919952316528824094572388942893912698447031061871398639615839470838786024330559865936587565177511859098234315959403897780244273309919175317586608264190047049075344021714716370303610570057752328887934937990353130598282030185960133886928277137819125644185936447391101395654419471113836129754087823374492925205203935863443491857526117107132141427206365002522439167230016335183451954114210508118661650236377791258289925591780006395733780392318016225294283200807169081446151334279786195809998145051529930476808025841860953742227544679955215321753256444681877464487553073454859651036560738914700322235282824638764257790263220975228450032689363096647985561348077519160077792014970691126227349215516601250538760608820278621730458763774069747450139951150992705658257178735792751842048593926076345654944579804588581198424832409904179471123382136150190200417852458372337606110283712477042145507805657384194310399226173323084679140690094111147277509855818964051898139026524676356878808201744744399291372090368180214137543943174620190778125030233935721443734324195102650123879226419649111443936288066584740452061344535520726715568233850279963618684403151067506048512138063466640637397374321565147068246484762375756568115342215738884409348704320929374992838271463942473298522504816466869497151724133103244902244643103334431098038108935314960668747066946745220519213824596748891900064097840691154399412657136889465412088920551177762000970980167096603125522502061999503568982164844746260554964760484475221090380229951609518499120794678211802750911299579181787423060696994549980127841046391810059560638828195872641803563392702776866617440621226373024466598475215978080591303343604744908382940878535536694025488072704235021347628140481651644421739367586335357684515088561660966770505815829833381388087914335000377301753864138771120566728222531333894058236509415064207589368793680915289567550944990294423084838477134109656361765329939557493826292903815530068535162820457102440786485203121158615387481909645896081308306517276710952707580879038480711561912755833496779456725677400582085632536929353225736081401035492457510767258386611950705793613034781969593171299644422404092211995992863475429192733069297587711673280717955654708612774133890729958965531134107499336045136630451566178023213930066019492919748849504617190653482673022798187824642751911051348044554484165896737467213402823649401725178049638613235131529047164236319032677574913968985851018782334764836606633736965641051509710847291018067613955437833647042059117795993605109258528331195115266635879879240271660355599348874911400209041239135727383664901814268986588498835213010062944097840967957443372121129988285136378651231790722545639675355915391059636607793626727516240573598336927308453010862882232437613227878326990584607167074727941087086186459043197434356325054630256969737346187189729899505239079383358385203999291904590222091923922643946579499839119965581884261188325275962012273796781140156324151146031242979602431785348780264929649766681042403638388714210625218895545160131773451431012175666928837890410137384211868968665731196441139084519150218316776731681843471876939746826338485873282043470969086023666150076566925553387795878490717632555974964553955032220071276512972265339974928752801220691322691927802222055486207269583918596063942189106012523562590816068780407010651819067555576310339666037061750278336105776429451584451657277890443679444830851419045747238080590297579302985777865520132327316842580544450664908820008049583442594903307849205267697573961177722387081456891223234705203317636211332791865398554148502031414112062565343143988420777919908300491819281123206050245770646755315355607668580709795087638044434931603284886027952835028338607137368703102035604636489883852537870358389588107998089964794784816571503102909860832399794342932182917858186220516376417405398248524596744570649861818810055303295241235397250440949197660482276144826106000942790010635610710007038071293329474615860219294783372088177801205193564028340997115335350224303230351462623930279385028238947046053597096009357415796366733143070004144186590619835255408544455303665879095573668575872525825205592944360003364138673916440211685836366313968283380244684194994586734064814183116865379345493987212477535770273663743111797541457284672463272333015010667030608357085460626826120511891569185603927454619491969883740634488752919576465815465289902567943869281432664093900025850128051909953982863743819388920205655420474590155191092945263695591863780103615613417801184119309799587328724152812414502779051764891181450406608626933338975293836577633452189865960105768359761797824388809335221942453091177199944665880816560219002289930925116417438032873371183432809159249953856286572968492390035350295881086097744531473790518523941427293798686016660288005986093242303869097937405516550203398764907690692059079430155131582582285725591695291767136603490653384080748707370596374841588181373988424370472644662939468636555002957630740010548371137984814202482177164443712992152270851871396489820642721570693376602175283428281704673731920723078393004530904454395532709118214198259004831510056026965142621386052621032002742759689539326413955549441862481703581398701912374108018683847607126186164904317239729183200412853725863528287771752974841838145282235840137878296996185601234231702009011008312369715412036555072026172861164333972530088141177426745912392941015965249925060528146706887004970317112867814086311617708720842210846289255345431162369185119769031534288642965210697585643335160903862845942724776798531434191867242306506928101950326923227429039464814979837438791483361521469698924888731585938140495553873995459835800173701793330364173496905505923462169478514345513590411575303763773346795567478103350030864983868000199601371615112516533767165353000642482564595922933776264135144788475467624212431051492390687341440464658176781559166996369590194507303740525872921068114282640547317470596624516108722704026368872950590756493713780593803587087501097316253789739047252417027062919995071118115853495323711132522823609016926233465728342879011081969147965034262643297856303424117640263866727889193447136228564609960402926152887960842143202424714927884265814019048092227156281716274306057624050385154717827101233611761913621988744839362289956298551586353843773506135047466733249797824967233591980616771122884890982164948936454157244236140270857966826554361244481057774496412064585423149807176168747599854502188210434584524034377404157905322026997970042363946296628981985706887308221220942304940384690353324093182012515376101135477075513807122505651972551714408795124030826324682715143721945266939990438095091486247646315156275823832638196889810144246188097824724676112763806586813248509570973277012849436138867809904538657460784423930991431082587315773116935552867986485987881008106268255104951711766945420042736255262084603705526120064922674532948229454804234684364096662322311323172909852739072122725810514304825751065899612501137236006124271937854488141375997924405271398538001749479105892888025169524577551699841805814985294326394762237968027391222785080882585517019627672811580548152095551538233785193086746989140124441272755217699240566803465280609211733724910383862066413020324075160572021309413855597530879394895176769505581763317954708321351773132238443460542713664245191745387619044860183164334582795257700829603052552041259320942068002639172692454689923150830429740636616845861422978323822590471313419468583611707490271198740075672489373082309973477301163462222500679114400039543388140776688176677362035888083541269054220972582144871395599116598820238863748080152566113729858549898644434842299607993800191545977836732913511958387553794160628444448584910669564533930763936119760172469659481614128450332034817985757441189227851303029105711001503516890314093387749206444086002646901460523716402496535085102524725887081946246521933980831226018055779716097287498542972786820085905281776657877860099834189107148850681675189599785039298996224353927372524621534180199880326240159279691608064914855718562030728425984849856247990497900032417578187528983334115443628264965307839042894221305926730337271492289892987094338688672004536668167874931084368486155296366548786206411992237850344651820680200540444727855736945690909362444698026971718698771018031591404853468257618184488520464295884883060918195841000425675433941245244121797440508127933334865886088592998578964848460870129447396955795927234589910439177614954421371525920143269828601911639681868112717747385913971697782442750865088687458174899125670643736237297929073068073614781834219482976910815796672041097376880902485284965320729591077094749595008229837614588574038729001386481436134967809920315814424046097176590631557809731448930251232342209252644611157332790531845744535137382669870191549351457930288727178287666564736001510963872891565494344800395454590506632402905971642935934034972727394930567739073185150990887538451620227625198133391157019282675095258109632026281016661128098070335610543703478923023556041716326249323335139819331887310451456066241661249717966416640565005239585750425801095630113042700807827932688358554513649871067920813007530494560921831149962202239441393596374841269555914142735082444657699381905628881023628766489037436141713379180449272212751118112563914527295291584243014200886802670547406398194011246986858149451306640578705579576412101124807351389177934391167638231410169146573332304042897454903827903397366388716552245077900834000839739806570393879392070484542326358999726177149891634714783809831037681241891656274512593269277921636989150590407134591673709374055585536405111579034724013398267722222169934280087284663080657860517842646618135396086337606485165917882742214280154595845168795527554954830265110515904945040766346145401833645716590074688412424735125868207208444576132276196587636427564528395208588924385564549190756707461780647760193868525934567506375326879353587125166882853138600860515187484617420183096093146735013061176329216576805692868616968619639852124749043463026628761513379153882862586813232053039070429088495402536641306485304199545554672524358158226397195304050499390426310722755080248376616047751520746555199983788177869021555133801047962354742274705465572924829652044777840098992416650637247625700641067649091443986668650896306444761455438459076183251018046513969871089465007939517068594388756668213629044488502476389087693653923757232300947945899662039909314641245432945439423894371622215508644002380405184118225659419296046368783537474577965574271113772629156836951504919910770758044683695064468142453564918832814662800055317201065770606484440230938441949115764677459962413800499397850925235089525872888799507632588797901803899943869077088406059715453136259745289853473930846756006834729352230193527875741192882460969740186613519584869620893002304897795180166836699286281572883946468381833719748153296639128811774605170799109166284411190863276681895311201380709509101133627249816762743441980650086305475065625960028151340521104306199338780548010840824432009454474413346206096630643682074322904184252797596992201436987978572684290058007943500377392079720187043645499275301501182743248770280060543429682582928612300222165648422729368336335623534507333097158324861142479113263837830069872526898411967751513711027632212641984662267274802998746731222981924229173578416050573209991202985112987872259006801248295309541783988105894029742877867703104750385223151746745754067445883047442903157373100030717125023741018682613899724703999807200961359387369543471907844334266589738820470365476191133090130382732741989018151827502601007802018252800443501741466849452575701854103630836312418470085470182008001847290538777974544118185543378145928363925169866036764051543849730417767206226525889584290248440540077250287523796963822356196548729358849695388252294591496799358821351208258558447571655249248776028580516042205245902127815999840856558569261140382403709923963736343415994356252395108114946798644756115494989063864271985843412856936728707043813823570655127208974867577873555299504204765185157269796684919522682467978627072437494248703983929406743597070250190886264560372628009746440806622617029441519269447149222473144683630736059900936023198379113496590595885532185654453421202958860728969664059825700752667234857624192331193860556620759596646774558926022569822652752807345166404232807784469009271141275411704501706125123463696080283151030950370925492185117559207024866119533296369859671637022247853456168909816736385686225707099685572909576665178225202105958768700522783806471000745879344008695312844307364654851095698675112456030218467385439187964488975795370269690792765315332183328342790248401767926459442650876125979043826955260207405539302514524014723949061142446058716383329125553338284673492128478648727475683589121047798749317730068143594178762468217586979425529044049500238578956716099067071964891862294135964016833020446150881217855366598546199504200423673854207373733365321306402489002313515572357720167695709169526150310473935927428367523564010536965443888210829307414272712989912624880411117249611962369214082892579338751108388301236203042479600905447671359401976646339054089187282807642004783488483870083901548280052535104651445043235963914879207773457995364692231914289804033649491482114882664804380888981577547035262701841262234235920250389346457419736606464144333832614199780971215710584622474486129981425436279341215375292065990791708544077349077489713113718073535116321089308983227969326768834563319976448810709179974358068251063309984818212024269548571567683334681201016034936802775748924178071267745630581384574504608915064455329182695542288806254181375508748343083062034627549809725729095699586747298898063101471591128189316508667251784414171839210801631258323081925910862101778900697052744471727744890966168731408019840599378526786098826856663862710923627008430540986702921359606751702333250437461889653588243177126153449279190496869343828325702889007077440351347528365878435792879198422061810690529495082458710123907490308309299611629573525145005747309129100219963232074631644066227773522981473334615459174250645770257579617389163693405447348309101403702188504062156975449724111436638968130200541524065928517629955856932553297100292562884679629132231486660136276700840433743973985945748016546336578935625783635060283153337418741626069063503937844893688195349010914026820460773560717394651063627904948476575463819744729638386685788592257781962354337076844666389550388441143253671039889434385767162710630174730710512434911045259045523191383028161702891601088869601766229349259261308329146620697784974264496437858593964909480658327567697910841373635819136866336071932397986671395477557367826491778542817194101610955430157101490888045856387392813774442558843000442784422404684039886459483012968433102420710506247927249422560943237173566629956936793399146005350679583843138358875842497038380163625015988151233314466380467251825133797868386496340691959096803092595243327669406908438601463097157102641423760721663984044976569838076970778051806770334665045089428705556245926967059137584478817320289981515082506106928507292262119947615553130548194450486756134739952615510294377497672726470890864751113558307243201090409665805533934234066722926977648843460858965644644054756703652960704220861730900446541083839561454109754559885139663731262625871844135785382775849069607616765767048427308382063882876627992901674116231480025330088860727919160871510732343060815696026568388337538395990068259881267045920655433300598315876676074055867675445579654085221864978011036864029648326062266785316997539182982757194545174700800684641149258728305820620505046492417609299990600077311548711405350453307918085721339059694923805973666037312906197657214780298849202351711790871100618162455733712616531299707080160327218133133159967765887468086961133102746907365222295331765048552171112328206682905677531110671890873651733493263980899539755202776353110743366800447659637528727637839800022897228048938576054018104893877744137208780669612912472641469116767346043358766656326407707334611174946069908369849374174184262815138954007133005858385436311745011097079202300812380914210846993502117399395843420621437470576033544340555259275862895401949328953914018558609796936086056339779880196613831713942872522753274629644074347850623534911721117873328124820632912566229193668748251931096687130793252414141393546366841913040653676899919416413315660907807238384857510997202881674823831854489915281511629696990167413063196160344644048780438284793667960549823985010165724581091661750493270260183748446567497730798191444013791896781282786692793641103761472780989404116804602414163777895864100336300350527851544836732535207147541673558595796019010607590950659850870964403294379335443013492512365590569213162707177559012123875984008273113692061340587922172294435023139976617731417463292888315767585436991000804547081160889019976377671784770696551773002318095275601199336050804737955809268753998864396975661408096804385440259672684139325723512728763606059621093656601775394611242335427303386747930200651803281175008265536358997472928696271741857541947160688810321248458139869434551029206780046762304533019715672071032047033611593419976841581812345247204672007639405799084629910697758495875537533220137846979662185345826060076954297199300957273060522828955307984039936677383566516091616394646839972298647691090991080638142695745311678931443468444370488737908598643753005746313250827163030649997286618406840087990472715764672900246017220357130472360477340007745125557103253040854549797670831333324217966601731343495665397475775125548834629407983285966506680443895285895473519673175561664783335282806886202839371991080819969230095078276787430268902257558630312136752359977230825694025302187669105041453546261100126588704601614888244365015649442634257889287670118303555888430150808979856436512490235652010346563938637808090251673097525930683281878014909442249892629887771120650734712324081125789105968416036715368463174055183090573002917445582009329664317239041257602142057175198264905480734362694801970212430079724145488520329778153858058060867818355260197189029484770969306343874864532468855165124655885080703483498785674447490612760417562403582364258835422570503913695197688684638939477594752150807681170204417207099054467516687515307442512185795674221575875096291723130912525937546792567021364822066689343653750705331547423602082152419276370793590430915831841414759502385719442477273504225901610912719376007296466225145957953173234591336489512358071409573986474347799168504594059658437016413898772793718787112325748814956625471315381909111805023821106506030400969143824523352853211973001838837845361342644651964112422017929199149663557676101935829676280951316271224780028867413488989558388309033207522275247305002089566604050018787120047146866324011976445284662094754522674028392066692573506022118857109386496683778829283034921934384692899477659226647702431369870632665869183093238575410931793738127929827447530952651098916890314935364965489248552400940273682044719255776584840431377898619220454816263456963643223014019843622137867916346758772131381660080987109583842945296230456406627716360713545026062305117112717821741379698624759600209025302467434904828401884898606645745071269339430798752406716193708919026943738583944526397242592732248709511841952951408225739439787119088939415939607957793038768356855682937283345760835765763278286183000771841544219327595284866513606643035811060263658937753968045839535860734972767179869007768942239318267086117687040185437038988216213978808241892739090096824933933223884271750413550224149326586210697338763288159093522060381074016300755579359248117382257153974238429079119281764580880840054974743740852203499750585018521112800868287863135330434014575138093478594480484853140252982002290839634414616112950141889122924926240714742264002946990514499011132952071115181671656163990791792634921206662991343177429681680179311084735990672075627927111409871332396553566494086286667748314726922370881494395373251899159237667823378873607531192482770955988747457908583017881665105209823029219566682885104307762542202317352665301764586478572367045207014599862328868815862922731909598313320472804786053774056864313584459119665593977531194080848765998398568118498443141473670001227849534515057442937437623158105511335383835815107119327229716444871473087149112704614790125885818246144874902044085850009196583310256374438313478772613990646999426917127206783843653743119955920576172620782793804099856736843787216672762903942368992256569760151084919032766799673993755859489142738236265797179233782153738082416695547812530448424253601524588433513526621934133546630763611768583114204046935928135942969467912461687788564173748582902315367522781323085381383651821504362362024561170419646264735522601182333732084450806509037908518907012123094556177746052588794026968079808631042173425176447847158410500236361477462522058987249359436332691093211941962119226708268711923220972470706278160575759660401476897883210927310710377609029800437121916241900521154379503539417587147882776578636043817763582885758062388090526290823929922871203806740297896972690564148587388573700710376292403602390056740125576687768813094748515709072263382918627520533880404297659512948387384732659289276193711423870218599801907320409972937361758585739904532832167608375319288415531671370007745232107556625268102910310928230835049120362527015121482175403820029894844345847287531992936024628984200924937233227774509603477187187512636799338189307601704656519670283942254313016967101495261965100487541567895256425034780786307895269364622019893941383154200041047053557116450941278673882587007241786661297924865615990204566141725839294729128154637551034767214897471537436565298962463838692859172907595207165477819122684477037800885058654030853810776413079425981188878724311802004134601743572982887045663393614433765487473072521601889655116182051272612596071561279569580633261218447969319184934691157791598472645468132143311963241349893069084593540866060757680533965718938399818059394324616258844842521169322180349578436252910774578230769309820890294871494683712810878233802967365494632927703408157253005494230988737254782063184435267965592792072576288717437281208176304198948522739186037462882673644908680622201234131755081264794886580535301319644518279306650482334513833567661583125878011560951619114342242562254232837162574109432156970484328894161372487958336950051552071475601695109994514576151958418365292823509143243566546461707699122020489764692016425220238672034366905246077498677659691150099918931984124929907631765739925139802687246386449842791792968142340334684464095320145596933807147152579331994743310823863833580307662884854865505907756287339773446230637491552918271187227795512901514385391868262119041408448559676266097236114117853620520525653099815223336792109159675481772998483457364521397478845867728297368757026138449179044302270716901154186215325315303720553066621326954590338149645497441012201686074809579936581350518192610943526230988610064517057483372709621886648298940923135193966950784923988054387786376455416912353954521384297002214646776895384787541454531863765910774325046703489548750423697317959730979453432259721401769867939982279360136239007813503456261150835258916076333797757619189442962196765511421834166660073934755010951052831815585077159746097065037982821925987592150344342313419182711177503149976478358828928718036774199831514607773460424959210074509643861198834360470471612562670382081148293482442237181776337016005954779708504781653536778528474359195490923219328429228407403458226887354061270982322072439332246680807700250214877845809861861230463840627589430676284020060021207251810350045510326742831564708165140811520216384423621393031640195131524090509557041968507884483277104223079548510719969686716872437197682829282374105033554497081805532374171009213634120602201728604619206210545257771869978729078018835676687315749543281413417550987411224406708446948953635210155876357464901127686816617139441191570197002606827639207963168500606756476890503983541682240853351972705243973765807227754700060353640145395544691197590707503480813616323984573687532805416382464824005507897728033699831604271254580284150263539666001626740546999659276273011295765682626359776681832743092569458883715592523719731391605603893602489284062069345314035512598298839806724475566063626570116131673682870651371891346877331662994920297007749631351132658433277414850408186851776495778311901775028769698907168224552669915784744008536111180072525395355315903467225669666297626678631230377627969151992224910909597448853897610483891647334566174659721231540901233186288838534233559410965837851332487723858924744714873684566687446735476663805245713241949192208292494893904585611557197085189700771486325794898039721702739859301107469614156345094598620567983773493280734976521860311937747249719455044911854949686876037785470354177901177787223691135644611682268908480676392357714913250742887088997731355191513336237754131477691576353126779606694737726994542936879696341081764009268496012019994389453960967972142019468539809885479629215522533557902623718813283584543342264491855453941678397454478370964936973498685838379583936165847772765298198092521274955273580393661437277325489921741486814664009821202253600465738249315540631114161158219439644043626331754481988003611793801166350640372469231104701586359661300393702930786675118731392534473374123833490744307004018522691483188181147424215255150679728661255072491721682523459613218178893752534801567543762532820362311434694159523885546416276396124310584682768610360913262333064546776625193763665207012489526134368491893892149648379640651523919277053928364282647537209348838588866964292499023893536994069848566424831615805921286403270015096279859595929830441949036958383506808046049464335780317178142810129330135175002449317098553037102697981378590241063771289857889428157572237773346489687477796614854335393538718431586481060610862758847425889216457764020640442507398153777803685323557535007073712895157174665914744578967190053421219599696757134322125584698463192743394402075155147499999830234737100043742930867717758308780772667476289324248103947039474588565679825219749828294518427496050055469642610385416049596825115684566393008579934481924409403956617619555266081819733043162230538692962102667648562531172173978264937790832367941430694143562633132308084077960773281741311682466790832159934094748570056365850469102731115918156142228191150719338231382267803533575561947232455347493324470373681526711528275345629944744459779044692555261078049995788555511744730772723034125834923210201566629831796803138851826644167211560874235134023348659990130335927438198605281721766388368513359017235524950910104760729728428023566760735174203242151870921092062657589722668758099676309165173594022457075687142160750731805964657942377104696104369576057252666558864945070238557766046849505069108458438462061655270348794352839111547810473724613870360574919728975117325535581319846496393025465802518793040366910184870860716612035919015219482727416502762432399253047638523265763908527298713217553916707564972877544845048262659080966386835412162780718834303235582118681042685989831313811490968474277592301254849321470632418994067574920448798564517240628869230627821981579951724422420540952314424784685012199919139137341760816325599204997898028017679901439546455582939448105922090015098475307308901448334828696814081176892180985138238642699249685361343717503847905179659569635372127464999236553903406398437968699803450743214660627103153560371420549589448353310594103865586923224214743070851688277124152360182495351779395541450750712807107019213309831343716720622241055784039793218199120660726416301560242816641637158462306427118310098409163367705134058517774739456077643770014403599634453663667383539321014124024708731182812399900401857960470326553271529492498697943798459343320067855221477544558675818257426911048382977066608822698446588593434251122766732539469781799337998012103666876769834643774882883270264731769675467129886150746560724813328168364200595746396651762374390243596089136665788857550015808577588843146997959415922537275143076652284125343863825208033525788141344167636866280116433798450923643856941706917048595341279798047938506787909762096510760007121774476698506916527397579192559441167615321967437898036596013266535978854079657322747848391142444494632822045000122808852155536686724586120912445108361505259929018158169164630414341729696985426823325401453388860871424992538384424962656677925981429420505711297447179365606555030588406209093432925078333117614735616221897855393536699249260124494101343176931462887416808733494924702003832353790814990834622687140394255831326861584011403612685618078702055474788985016718644210745341834340694797528342827692402439225281409553889983424843580235055606480539390603002030292848280281548352748681628701922636887661295478683376583609370552972725998717490928261236659246045185362514012700848872258938856664097317153525126976258110118715589319984089853917658482842866497580659747009334849631211261234572727463322761511712118783580632859510172035107955741604775759093136864023486640605766018794488844881917134784690655637400213388089707477368417905151790793176244603745266952617650526599642601755314922307272276213649408768121456229099332817316916110345427670597882179632746634487076501447971642141322483046873388286889739803431695422788007298453575725362709215192638512943792167913385627401055934978253476034621651962944937197905462552184596064808127796854791930153118398693444021413865092852500624691289981515755076776883644577713117155744296286799184577985153361346945010623062222179146687829116709013938987008370468755564972247329759840445569199684808554749366821748496153430585777286543820768394684420166205091555692781035082052207399396211826498229163027550635733781412158644475787648853584087203290346949521247475942002384452615984458285877470798943774088960974762787226161824515571199730157670721897739631677726667212056397564324953063084680212126927186757204378771486001143732187577862690185716777600551313013674359093762968242050485600211125445167685877302921538129552605504443270232538128218642649113429143586193818141696718435871633961689237900962076455287951145600927843928651002798756339239904116742155669001438720073001763554286882765266822589986389955054618802428916715655258616634289872274889358764455889360702299184091991831654530435596768285434624993173581214173974125662647764119978766079098139988981039955218108532196034658426409575370453222297438473856155012312860230536318304230641719346066711112658117169139213786008232882093831373109777643148219020737718451026009814811783226774359015208461497729720905062993472981552978717035202733193187478316052437520811466869304325680264165260677107607707180880514702405621886623380604035262251977174903660524700237770234227711529903522255251690202373827568297104220510517702351290810346354173030233320590067635200834973675850531558621986589031837902553575177196413512643438223086542927871353883532846625388435006944535950097332744288972213819818943699401895971770590210161612952373479535231377670080869689579305114326725060140517565477856255396655201414967848758487529984264798702495701317645526748108990651634345604101886506796391211085671333393883788198727034728774191032478685958794241515104717176663160010198131364073535534865634238411807398694831469036704533069547932219708670575045817158683181555845435008292275157199377939410137600166424702928279232882461837396456635031014893581159639221268134078503117904082558442638586245327549856345215015392627907655630719557594514584648774098257586234512017518447286083472669221419389047865974704341024299728074848570859579880243225710994386237608407178248028639899218005673379364865221924773353309015273159868804393709008195314873618804379391947102667854808288606787522073277066723609145800106509425766576352959469594361269322898077008267499860617464730113171269692700514756342437173283612602240286210382516775667016017685890127840233530440523882159709854655498492328594826088896046638553760903130347699861247011684178154513225678791285079228987561080003431548608156136335025400182072928333892793163834641794430028205090809380277073746318375331751493412678869703083346089783540811104204789534739853698782476489224385922095912178245394587883944037835032921309959581461583971324198693786837075678807529802378856475402526641311422459012043364174897100978123362837472639106214007677844242359215391509853362587183884828349466934364985710633476658966199210195247349190604920962858134026065738997755899432649034975354201478176905568854471745165143783988741063590239029472840317518843735154924290702004706284410799427687093712612939280595949261382203573370050274042195499375423450518641806669532273401192166959132891530941011241379629230773312167805601734895086724876175804607508116696825397204512458480490813962720350135215308082945736148303364621730306590054525958752954608549832208827172766619807535029721274969034453602485428235297400584735976118653403141842678139796958870037924689318792620172183053782789049687219238842785454219123633791643558627153595759344409254980362767569220882422546964357998767315280790301595698517883386537026323817155717392027147535995572211551362159541162531385160512816680077964987766252640703801376803767785311684690528690218126906487752417041547051590648864310314116677511020794429638147015251285518891124018564630493241456252591313281534913897248794056343879524126201348374020816873607136111389069005926287764079967841221062276076676800945910464144823556626402193617867373580180326719352106264032510902000861656613224944004500753391776163534748793700011554757484036192801863758942394239599636328539443838596372987488334565161140842263018397575358224515776324342825184132468111740974811759049546084778385090735430271456995651625228802509839701820148902101154746456306312988872223939954952806469118128594080874516631507981154369039976979690525167727959557622662497137555701586219451511744526490696007089836343941450067446868422993124726556371756931432170966988509222491688573499404427504182031009916468962161710312641146365131800962077576885626677664535284795425890499176631977234296855570504672714848754991052845925667941432076021992766887460464165738151479507520564064131115216211073091828056009292179957667162447550487719113726508053965588928320873069427189439216239339579462064265121361647899256051716701576841272401579985233435610015932817443959178426886831982917585135334241616910128427913482907319962930234863337322100634413282224405808514160332625808194123907362391044664418911443587837862031522696346863772835898399808545281400785442772694479973179926168211799912787095590278938201420894011422066303769476532714343924373008143050105356787965361293596078230750331348755511259068036347184606771843104226964035497657151008858289011502792539404683492532254627380101962701994150324716700881787698369193765844981633942121179529000922087680186080753914124795494304532253801896721171938096918838201831097924043681586922793510590658511388620577004759372323609682871499268940364147741223719795276010278797985321275936500697865164940131260863753815789942476416370813790014715998965766367139119623824806991221475816631238540253326780481705602893776560282161369427060582293777031681190851911593900783593797781109311572934263322228443615226895751852953279320599253408076565701801089765304186834029496248096355925194043138762684143467730017174795406184872104604595076123628484810026483007037282680139659634785057723763028521624950201057465051676002560856831475183146440153607800727626933968019950399060575015515865082661508575422732486179997035257281476594898693770171428037284154587627226117203182258065426204249049128462537013319492465588529155812804148297964091119151034600850040706150369259366847219503822507020448466945635428357255762637787901895973767588586141636937999490739183091078770665668696440473230010513750612820906809299719919533312937523404608734850411668916328139601095477074243300227980275771899339805040058773865079097047540576823672761859411901908944429945444763102440206726552513756532870118362582290207693021276419063550765242087565329813212177998449546078956824092118928761566620043676458684176048912077928054134850675140412287722194023707875395233185516298712290573024630421050433792713910791641817092191171983802989214898791511715695710020521651793944967912871850657737165295870064224160737207393564749472378197212524456545637291304751177238148238311053615048341515480407819050648891069060980891048779344567188723921575524719209244015378760670028910558859578196370567448107398506065612464768085217534338904136325422477073138751019549794819154010911906096382407632972971580888072412374031383689862529013227322308775446734715412769091695477841496230235543291631911200624418339019702861194918883650544034213722577844724806028132676233800350586747363942737990959906049904817830783469657425828062730461261183516830736893171883179753137387595133709641441856066254812455264139218321157976994066283133573411551395095226476952728346163170609332499594739285517828901937164838934686056016400918721583519381948909290633784990430609157217337376795731468729491635989703352885455027920151536636002688599693273632623002571630224048180358625932052821913979768675817394035552979810732817992200122068485708243863288673025277810781392758902154552856389891533455028063459023214567843864989361867463426260047566373636491572392559621353609460136836932757607803138685656623719492884807094684534524460305650918356027210857997395773303472763790234309478841758437877059803577764095007936965035991293944192838158142360130064251294752112510269423666836144944581730155063514492051463882762814066510119918797260770853925452931319461853725561730381920775647649466514960632116506737196686512807610279153402542307797565398534443139055698472825667905209098275243219136129658554821137272435215496612657097929550016483394108648411125342970581119457241662240567261050231680124790051116401179614751452050343175935611876799269719870172203932585333953348829819194461220360732817216054973326785676649601856119162539764659422754719979515347774808065038455519855855862462593379974229251370376466819647710134581259048797668694301698144865313006964509905574691219238376880535078826427624549148440792805731616640382785746476789285335351953185687422967586853590866892675541388888875201924811866798720898924422596518738691905769408865607675789450405579257930245937147914425414314823854232356449326675429102993633074795626487253831721226088779384113399680502562685602853494661658980834390184650898615937156904424025087113139578071438819590296493821523434880251906679909486680932735639645793480807473407664589485069296075445992573543078564088933338640820480513311236808269680895685561210063527651814843941226953073013637693968169438725684004055607850500498194640253657204574150574786893672168542633487623080323568107711429702120754825209182567942993853260367146513289369614480412356890150350173113398024178542509511108586137852906640498330670267805452149901702178354053176683878392999704198467255746644012742704926671863493521011561512184427158999815881310289853611669617912314713711719945815251804923385710025271015614653508900844897787623509508219955485620476031619678816402674468594043302657302991370856434031340753817732804896997444682691734533704530362764699120542487061621797247105168295196348817759638829718891914338512138597545181343619328206797419049281361794574294141922001333467328625539454342410166200884041293028795315022597987820207268234691491420531396563834488320564483666052356759759381518199945364425470521329419129770176641044168783056758921303060940339664674641665423812156187139017202446695312596919916232522543627827159707688570986808125612173119731281976513848214433943320815109210369591861254938199464884823912775853524573810611045658663621522422115016672244885712846393219269853918176557796893850861888838140273639232474723066894465532457214096400643088824404807514287730122863615637895817999930823071623465893740368711891773647713900433555945136359619358455943842934602590595259432199469465025112524244158223209135031753831922606573632004401011154024570480761102512825750162057557995289905766818567513225876640291182610938242114545435639206805711061464549246865988898959950755727707321428071284181723550364097027718718622891659907716095363260032313214151955982220292352946529230161121293170376759142323300707534735657507419330908803011252902875785066109828323893228291089481326663952148258013107979731093327408576137661734542117555441902662623942315637807890085753385635250787919407403473537219172747941626633366230904111076918437584504655755441087826116388553807956638296583846676659042634138510866898175285359261066648969071654828917280053788440444081607047960615428729959322679280717918151545685330239702605257461157934820601235985318767841589300972519708389157857667914155884870278142224710370041123527709497701166451829653576858863799164692881878896897193857485739455591561077494245973193785155985670575222476692967974515252698558805879521654982438873741072681354690165482279383923452442612125499888974256131504296210389522917145118259762832264518392624838194181264311605647817540972656736509558323261177269315547941042692714305210774228363360979478597234377248417031607659425818040206869657022896738546206627512563822220659662633590209994400409521617296760900904050543035829881212865026398933857352542288871119206905037611025870117219614249364189020164740536445749193277805511762816641171094799039812674298225661170717902834473565111262732331518991459748141376638618833652543729203114165183919787655003252831664728570656226607558210006297718744515542519943073967097306288192763930746429634189595508612839596859001622661855014105490440757780162370276773250093246514598728542151743421939338823040440029061704824736166474727685356606317981411560839687895581174607469160940635368118820168870726157697840315434684787760363785095504580572905106829899781815207048156148664521216368359177754903962004959391354091236710848232341250894754111275517967886139258849092748854036918189260812637651253306444019170802228031123270847272192476015201961158769296289380971475071169999245994258979679802899080844280358120882641620664994679783077507278635010704252241090273055038463619774086016321285207507100343573552752826466340814456178429353942432469375545228484232129802161439567583294417503960055720412620987576285733635710596226242884263576940861772420572103049244088692971504278205530157487904367141152743610778801578903467163534128377970386525612437724384591432833475689106572274027353167300188881506743227645527494810358844022229044098261038748037253829325061121541447314443656904311909829549212502592677136196896682393972636762478821740479384502829090261087237256512125622721235526928073551606607812877167458828430067669668932652121526719611625143891928138114468886857955290365909168709569021319322096539953316523594260036099361712762158008492448798143869345748565397202190642756924466384499545049278963476854817297525379757159618454818615220589028617810623903130970851214786596475533743504559526005540492977810260891208916495536885830113869689415089780076126399646208227408587139321379720576350939448446656215899563171650152290588117833474459304669508438596546903026391564643181525229975890260448056375113631697459162252911905986018656320803752131771020424726738309130506306117593164635496809342418972296394748258265170443752946376241221459717024437006411615092757775206351153411153714012194027386212079319985715177368545941858223699110566608566236593547858128267077246289884303653889535709021833985812796180256648356068074767721549162340885206534078569964333228512916026902105435839186999652459467458085118356659511629727002421683861262894022509556368087177902370007725578706208909632900579576136919338210458397940092629149911863047422909919011707360270530722251220483681626471724640633408495587565307671687562852128299157336373835095875237777855480460144981482129501247191367986644227778356059325967862135008539103525965167186433958205215793134902052711805749633721042244516051512311099652565304346659620687059334285685553630440317908770790793594263572849373369994000507613212380106706797765195831659086117119750452395755753625167774213098027788979368575405531111711729783495781883084446826578242263023170965686378691823439796302661437631278571475348089640873816349300973741544753262190428789473886193082351690996027197628791996822695105198174136410129724589901361956815983985661883921513177926560036713636763154771484413716518755908381273269231177500614335100499883346969542418844856459638947976734594037216329792465688764198035280474734891952418417010997053328755005221830159635233406939890611586180077496895399872700525966806770780323354826266765597733435525819298102690789148845230227034278258956022731435914294584719363917023536605186872248042635266067316967908078573031449411350700976670227193853302630561665167556568496020434917098562335806407301354817460339931888006271240207198564406785219033545835824654166398258536386398985509419843827494972924715935343474197035636944068743878580918954736928683893420062620327626039965792830511097781270402330241209931116785133584887881535325847989419781323518709938718307819025643014282676881486939713278206838167231809602136852452425154969238424803533962544794704291696893609546976533762469031539813150739956274790058624708204774709647745382618470349181880994934687571743171891224620369564820844196406782113982576980053322892811037476321310263771422072567254524889672718182649764659052977331503358358288206108953141126065229688784708481378172090698909977697718013292660669029891082811446108144672151789570672726458467819603258250968689643556896429708015699641621085884361023698838868116227765661601567502180346729119977087159673560413518668477865533361698744625566849698943357297473166596018954215123192033028616930358906449736007781774938884939213895757135101793568721043998277883522667160688448841264273426203064238146801944623424982496308381588794413351296290346278462477953636662356587062651290326185541702254220399681213300206432919476177903272718428032606795759643510680691461350073675229446402291382025352939270412949502810606857553525587355087796315810671754129337453513463412359631304110318704960617117651715640918044343203136767862069099843670125607644806899095604879038452579677499227675482955375770039440854040990487191767029449244487158155331251444755923238203998231163366542650297329168962193100416860354502632180680153150951291493209001798071533669203677758911078656304828873274361385211560705903708632076905310561483306603145263317627432451817912431978278042014998883443033307189324184437394506465736090010607920291141475422958939193970657965398405902125781007832528184266655900630402979398861778662706747799779739279294848210010902042293495237826777867684703443399386226310463607687742358358538447805238235436721685428540284908949417024353282820201580592587631163281504904322080008196715434768436865765148543107784560023778573173248266095605243091135945193420822999128914935850220769663935573056767397185669674077942037278876833702050574847948219755107337485528120784709621621266494565109461997047138776337025723954725426425502627380462419400678320749740213024480034304905653244986852874731689202737500622985792523210544588744143080991817930261215792433818313410655714014029122702911042162676866209665109599278001441377524746390599410163448212497978891469585721668195048241553233166688408228618123360467628643699010756970846455469996580809677776162689632346766162990867779011793678391364910912149121653998944502832604590385071250075165909162443448549021378082839596002895677153292559164229948314801712784718281785041286983201438156143751245467903757128806843854887429267973494237246186430515831153547317591498193838679070811034678187003857932992124213001429783006224502560920451975961550556065653531251844452232353878243119099098710737104223518894819203350319290397998266367328206263561561638517309110419749600569231019905681632952437602792719509109763129308735282420703976142952754171185564456833895061822815172128173216474656737541148255914766576641874985989984054701440651101981260673586454291154434459172458776081482452693201828167422026808861263316536409356190165514104287719037269720383724843648106968977458872093214864342663838099437736339568598106540336254207594652254770912547180275188016753719189475383260404665490339940613388442006648820870762338781122231320356356927316339880326563590650921675091827534401139812843756967575931881162198725902652107577308511480972918268966392118102169447398690650274676935497139489522928146819921528047470573741265994539602456491662727675607448968294945869578868059782360038276437179367264805723722921440613519949730649683117906516414465253906667995388608642210437890250203094550835092153629301043615010534934388537300718325543841577286459743639025950790692579420583207455266191950355867607271271560040213713595736653647561035413810528863944871889658478550726167507740062016543380276530847231070024446388779223606135361726787346745399413682656059634553128060239327177751907443211855637918888225829124883400227560052526109227228875808716144907276028898281367087169293794356985088575407861891923495806977530915138863633632962483894218583806282639636316775400135828277153905601054942016313600188070825247364564322577401753292542786281625301847964940044898365707645325778405378054876095122860117152664699122070556075290676908240662220815038830428128905394624187451273159683754881249291222377539300315218622335396055949254504264292702896993916433415628328147087198576748521857584662138844565869483894092727130422455518343929961170348772805388890568179287846825977804507682246682360067805169073921111612417534092067901441538229605956560471350475783499796581027936587014475860271244132762671173307288685889419238165680234917428983518153086137791303849298451905845929345605165709313285824218050653751633236187249667277235972189751030389779514956888118911407222245392976883922580293454647556722295875161661837812071854961061452575895451347060662964931272253932788933810826978989100092360280781380734631046482569924480024214403305774601918904317841456844116416361630264949797170133085496841839170990357620287638659204873855674294107254466952189455273426434064774848168618949206662608472102198978222650181884658244552818841294333415607925902692307556302973577681990140011888556841374848487326769649093040095129057934975281300367948399234388043918400169507043011866788638903682930683239036378007890929295119850104501378285646199168094020279783457301688604516649109808234789509720717334768097471592321916004974094748760137842938693294589149145745969528350497024648353463673375220636075301697956113130223628587568280138218183775060653095671738186411622039601337481874904265022776650247069240440455798600751661871957868525452044312441392903940612201873679223362854771661159624778480662839007709981764817147739396463897139658508958470727469005687991262498806711939440665588653476481500642984177905956513446944636950674513145395422027930363175289506136793698412245366360493803779261008943842044563307205255846072376527698813464382340879466394455300026853867335975415653959235479816171589571032062125117409175812984606896582377887253416514321172343425733656978839635970573834691012355968024513662085241062719071313090790824698898897367943904885877190461877808570608199836924299846110073024103859182124618222859704753084018217185908277514676724526129828716764299094836783716620275320584843574770934048978010460678785012232609319815889953330272538119393919249453829351705338181631862328447571849230619028892017348828836336667781047978974172619310613895234403180507012520872098700477318692593657887664265013220804977795861567234106831993564362670359842972802769399497071656888151217546571648500457235541566696536265372852480742534971925586166062872817185113089256635771545010913043769818566705747763363535368792406931713940849326813549431909058216414236377176479985894148592186968589420394236480633059577074653575005286109195658140522253280444649203286479285935327990109567399485172515888621033205369972497048213629994157856602019714688417452180774140073037993584603811738014486378454276310477292410715180958793337701798321147668988401125890039289753687570505156040792889152294996933462976830691176732500676480082495906769637901784612110479286360593627534429371695538775781217974449127723969478355375249174110170061010114425275509809052081856607369292912669510021174052244603274797356231734559173833173353214031260052620252366476334997598047296124726722350952829224822908500498642674373871517641692053780370157336507615470916372332974014697514968575219676480995457396720468369381429944616134129389464861293759198096065158977711927089479408723983365726979962654568007606125465526423514093847095498348315834172852424568448113657816967161466663513103777004725719149269403775348185639293820378125346645320709485372815693407669506767676542869206151936187656141521354042656024591471275364001516579385468292459009385359888871836350487298735135305135101895961798062092733331770703606122858805820437031160273467141104459870102066495674328312083464824044737451445646516358703847243091776249182452454599275212388881676558676410453698972592024100096183381788349081383845015596018688904307453370961868662861818269356743113604148117733680782193421182038090775241377998690246952868598025636043752662077487964113172612592413242444099323758967450558279181492599927745834237366023061956448691801115709128247983065342869673794904100992144824146551624413934181179925700399721423993531407993330422442424332760269746853087491423425172878339181284599457975700316617959797798901661423957573063806261529269840282080919516989909431986732531090458300657598650238626992473853987129625682381090294113601424102358008643605253218986680105556697005513494030911002399469967443363493423115702716459953161749490567194495451378190626730114137053160684360664182824031787453003144737428616739315838724296029813726698289419678345850600715625404744063468075405797218966150192717972356343737380529629357648193694943136900877151229817414413604658667847434097798010024276775351544836896188892919970142589325516744333417569046693325915097206313078393232625723803576050421325487777292907049964227321170666545587306308159291007655879978835088134811379339206033932087969443997419767591621533720431508232140329458897744569428171805912154359856409873861357143391822854670012549961427594625692708231383600692159029065649675777055981374346900190962157751873511711670805737690448668994762120744080741401531571991683649962836591096914001846672314335729326751442102740277332303637413992227197678019666742686846228860992403083294254353378748316377156697635714271914174304439255385154083921899187874789646777282141325312896930435749247769983568489364126611049717658417895898143649105845902732858805805834316057885199155084757211547186061615023984654369207503797231765894678736146843047181488732674970429036810991336516969842201905340072486528112077948486268802406345156988545054542772855863947584243682178262116384556231035873238444600444220235146986589917792530827319311095746522048558766523312296953098550574136068256054203733169364297155827484161655310803668098062111927224344813607503077698759735370997602608355918768072164454638478516268069590030856642164198808335682986233222316251660588718945227212831121982580000152155390175184233442070098644138676867365750791169036527702898440403213288364043782948900602158444440639596557883601992255656155435714555652586132906885392814351298984368956297792167018067360326940036633844586084855006040566063613233665513307498128805857452866494879477622558005222154247547930915485636106477036350669308876332921017351719541080035005794077746253353368156735696869379013740974452360779971883919090323140577694851806791700549205097093697031650461104548483346773459605735795640923752523762501153011773155539062058304277058342232004441068491311930690985231168070624909341159276584303770155475209573050155177691152000185517951723534488977870134263374234369964581724952645781264494056164063350342150618061088043070230584587470205343598054626373955173067374901249922668083898518455654223272375683818069635616028948345020415101501673261827890417309841106545698323420136592347524617500757607653195031834899058163419797159136490889492066219194271046711948520507179008267049406515437468525123087972034319235574465632422015898758717882267456209194977998768894279011714084951157916902932944979638018991051545668338038211294364042346444924667990086884923976608154059468464810397537150215761454244413593159301193638675075720780610900041106705110228229624695458121804192003439957049534254576651247730704601452336359065462559537974047609852165971271039061117902070651555205168545349128479676355520382369984741402633097852471375535554602482178539728568437054056812587991865085830801110309692989554033903071995808518874135599098432511664703248756740238817499155330238611650335790555546710469928895967713709650089822884597334066838946679767405310700030871813635618101265692098016404214314500910261709438579253781594769564766576736327303513504019555525425723158182540743190428018525437459506286806344174615402311674064375571127473184305118183260304474792497057057841502533853558165817473451376723270267577010832325120192058336461910056679864221927135658376549104393253617890632599264568819262896861140765041729435416446413174766426672230366855589272654817325464900770412298768286710054725300858701584642706017165209483624020346933476920827564310784749707080707237147000308718965521064007286099749622814744073023690726865020007657824548495413678358324456576310972738451206503532291639007455701535972548624038685090904804220270621034207272811937045370240529320871219067015958464954318800514021397969317221935496764732746008167933653693083329352841308495909067642133041796889336980288128054098525691494428557700973310933854630572794903945078250138805640036534423914262419054804072745673081359840585651464868963989634090241777775747844259496300457903563401392892777514095448472383069199712234022163572578104016146915790284594176569921352808636630130782381653737367910568559303576137307640611446979596092442902681538751764560737230423329622396852615036921595136978056269692611774338068633118461498775174070348787243531482627745065547010565420188462805264132242775161233999539669131630647791022287491465955344886357940445202814307788991183859626597502223828771920419851072978991252451927311982455108435512959466696535302122008241404331391516888112790563439617646900656327977528400064391924912818990935207355868152730446101838674180033097318283912017010234232491378975909004310872949297676079175698451811623176122156826904286863788192883902629448000927846742237941713221933872214712782213761883987586359597677768190357777196783967547538966729657228494689653581950555327251352870610498431717578051781850992609570111508306019459053542196918907232167382518675138098568009376883950455009926272741143759472758021806752893155889688985678965278237831390091951806296788170554472327329414827358849180181843445473598753113411840449620599865018938782750165450996443967307969186471428559246942087971420974750690540729998453273245985700673248549558807900190965758046612709882124792363622057057358575310723443877591359558325263821840911068207513221991807167865825279522176322963936704361262668417245160540544515495631766843141188970429319932043781263091000996618632036840461149179138241635485123452616580997920155736393066400785833187732945431075115342542270960667687593785381851839720865757530592027826526285983856490191371530303828750973036475755489693763027694294737947554115364720520841831974229968889958985949194781274772646766663419979067011273476533166674695086299355529742151660535702490811526446349405893534018127508518534363189424120513252795879942374891064805674203693887672485376840067655913934162631264944203548060065360280363602839210988475954617462296726510067818990311508002277374212025427653743312361683462182926791239481339837039740985188206951004279534782977496270214916386552584987820000578458479640717821957698496549401807695423965718864477433740141789013860949143769468566411255869587015065032535454406891620996892477348266435945715595505190112259507598962399370639290986658974857800480628072878435077981597133624217850423761594273422732674356071781877864615403347834030180044937243524792710457109145109018896740559585387815901302689407977453057332403347574232642397078232015142327052678103697813909257489645434303413801504409437936069961161590045352677807217397129921030382647139032582168282643523816642533834504967074918112343077537713384773474329713852650524975243567889267662304172872629502955945720892670503454094317826541701836542942914691607643431591764909604006979584982270842592065721866618451713032565280731706372825417796222472084125848587846574103326812793398458315375531282473607873263479938219986687084469835096812800457891783928841308368097637401660605997302490211256647769239387217709642552145140450782113940017937450166856583833319638384325389101310890645151741696394985106952583742140083925807183021564893289741050326230776473945305022508388259456041446835896363054197026745594125897404811973176199454722234999669365711992025105225417257561613836183873306438943777734596736017634402882626050839941777708309752006599991439122673829266598088996796058016474708968980334716232652089833250310028747427732347405547721843598777674977605304097102592631338628045395217355105835324167801136075407888045124521427728218623356908143791712652634865945709618224098530342244265327656430195132919833732707232209801100423661130426072849627313575125952435662997735115389402989065556052594516186238795181136718431915365860699267368059690659657897359644258573868756063905609540574944664879964350458162845646643897562514746679552159006202615201443147043408002377673484676697198488303531468704463849705678597195487868922130135426718472636809883803187875436460350683054722467645221024773917347795529252536088744986585403996520221972880485586191821837405692861149723179343867946476865757075410532762080217477542643537345861905517472194368177974439230284043733311719390732341086959045891660858076312600055826945275590863755342269271849163409905494679317672708346174548822939476643925176913185802052751399014470669551573522932783029546979983296819804478243777516909544594704870959410339867625085802220835271491526697977979813347366591093921229194676609410153106035627474291295072101727392174964177083392210014515906447857229354100379582518020587991845952614164670763199444387679030735566727395239337318039320206952601893940485580942488422101252719046005295662902040166287052209896569337309523978993365615089702614533846033615710980326437196324593853261181949745425913782530034526511261830601022303406397763807013179893909002822024153663112097555400403735911015257501006953295058720078910555188438808819434882221615312049354102644506069180782125685584246622812370241873494928432457790830300285166275073460811741748189204669742353110166858132089829802742105992195047177537298974995429628649977527880117251273660822425716673184818543278010887086010964779419870784042185309840130113440093858869311516223267127405884336181200280529990643864554255281760597401271939127558436177400540942423904506074522374716166874730595582842837869622390202923244108052131102274611992532591228570766929555064494335383037070052025856892758627530374238949662198137506214411982753483073076232527503421102130372771946260231160156653811534038920524721185424321808630340432379250434584659733547527422643722877410563925626984965777610651300190020977999157450049368714993040785608599140183125855369841913371693788175930686360796487906907324462916465649038611822894547146664094021043816999629589787110225413912544591683556041662881804966563575624858332913526640567581911612456643294856877220509409753464657042335377679543125724215556749136738074241463579890692019890117935020629678699825925354232698668140489089548514664830614306580953036250346596410402385173327468609397365398646449721195894948866389537132778646977138956932602587029932701418879975977631324424496191366315887383776736513019544456085429331569323416213280105856680243358061558940702180357145817852961186028602613780442236750962207004030241173479713609445362154727698514286337812544729802296838192834596622397802594872998523080665288973148128005751492404718563515426231880712399094471571107573181172534846615559185221032628064326321883685215653562494469787873105281455882002661402600529472157380448000437667428100691368592339721721476922820291887349011324243794234696346609700636635413910489865463897702959429441682428195551620994019609842612189507445574870736887820378623628424255414990527476553470235087984905255007174285966427969836879710792432830551995964965804396350243572432065060696245684224969421891625403773403150719714302598035601066572253872960036833182588196114560885915664669374941747154521520756465810965076031222175217664167135821989013071335010304015770736871582754425773361359129332649204781387375145813161601031893837797504859898460841718798512505014673016360549017365739260201024613032649078074773437555869159007429417497369360876608555741389884196334070136245870838778455768076683705034983389627514129210556623504099524590055623825635003080345782186364158253096087228486821850423444583988867670024500277990025480142920758964820212278016516555085398287724713018498518885446254078894705954793218976053769428975839798814897314823043879795871036982877964432321951454379236256162589329178508355124356909731203863730579318573454608564444796347317529023685238903821888492216841382691728304929339318346048206964453527459617904102550378608475284199968142573701165840310439022574719665237287009383062832438792134714268895644895641638259571622075856737784964697575396186090564789919319597045174173003242944678091538161821859999844204359851075590946812553034130310429794139542103471154453453788145646360538084471951711840722572292457100939401443244865721710309885241499958924335132523865045739785984843292666068582759575349405211900756896181846599944553995936404976074736226245762188475849786053799067879734039019943509167311141252403234824879791512044598052847061674336108323747463812441284257788397346026675161414926564262297787430497254935761464648294068240232596859927936364428875497463712669045977879908498052154760397664100007374949124270303635370249721529631911230024823994742641345184985505623742702313975297839708081845590676275110172073098457248520922972485403724469174385218624077853022730353803231719965577368599802700922114913178807276481369562979338489937559509627792267322739394606815002225765733646414284985389047634860677283725790723595526062924983345172804096713513892358241832012830315847667195561591855093940320915974569242568006779091015316413779718890002376983000477863314329426645504308424864629511334349855937073924513744421803412918888243563750592273109851179158163883387923461497539896226948844746834567359445689756192558308944766501193386925038180399745368121844699452138151963965275762854853465486005577865680910222671819400218354069494718539893384158150569474578779663276841042484488270246207290730825126454203597757170391361505312913939649901687255608459966063845506833464390246205817040049288315049509011186489360769569106196076895589941808734107195515839046352990553011744275709566230668218214369522151686189789568887865895168463197947464962017104115186143447990464467074266571826356483570085227189923319869874704484277505218010936235005542337691966121481326389484961433225027824979624521992447044466654980252289803296935981211006598439501544338409875162881732919840705707879593358375928571394691263824933389718068360184187255355830778299076939085785349673632076915688123994615635029778157390052124782841991184595784349285259170308174981519673617465971469395260354780112251917346584187251992174392778979103288378390925899641307134549496435138431454014934845155863919335995144491823156801891248250506642974567699336086718496260392330122862265635279008253491089026347405590354667888288889570608293278704869010547374806227365975978196213685527123681457919552810825991773983595444058316678260235519150538025647603841078344664910111663057426510994771627092978559934457043025310263792744111916859752265726958706009934264725685702173442105900681558444629682931702269985179361244992874378381786907754262498922046605342226179195578518842191258679865209746110889277656217523518802299332077108130101949640914771271491765417443701304668729096787438983408434505183540841815399652924535455280513298553029826145136231961455712531549507510783981049454240272108933739494880144354822749094653372638195364143793787274006428254591289363362074257781506483310145290436587069124250371263532834917804744669698703272975226926563755852838704376254046003459624479373761093429393184847208208450804599950520328887097949100831736228697744287933157123417957169652290298420964649427744817897410529821666317027719224036015956787670408972409763006825563879216435016820275402474302240008808188090611723352833874146713012337081363143270972037524653576860737369245516281067738870349296440977618786941546498571706629532444314397023566395500164556598452483729671536474048263630394949685120983096857535204223037876266363086684389202539107526364727610688022136084424247684591709931455870111438087845371242757897804243287808854060358017777905481081512107044247595744992218553102074245036574818024254832750483747273274106899818180276048321146988336567389995879281707957002791444835990902170496408789600555842017426768825010923533022077519255078526388773704834655840476326954489882615756187026267497814724932050075623515060949764988338020815918107960282064904458003892078157828377415600849839635850831770142515806464892304883803947359649891595516224599419480299293157201454181619398614077086298706997741287625336746495265242156883639506814281595496596985125855417139988751785380485344357001703375139221766661904812714032599435407703685024569100908362024360107362176173462273432972439280077072936144283881316935210181477699443901571805624402270414507484461105379737398313071220085665729119643154994262770205861339592423551066421069309720879632940544020167755639693580667455356319139343713682754465201983938830091204015503890436566706053553853939901211003328543832904291219447146933888341874123474458254932804354790464337225629525193571822395547526153635003976076967512845328434799010602006647789336019287997643372222248722591241130187822093574520606001817868943843990021625360905040615787522878171292404677990514712264890715567721787759919325228288415709563696781922974282142281189490170232125319117365365104065098803681666825655061407892423464897440457819743645965477801975108049843680844922342029632298476820744624846050338581203248914710958391826230279103221458809939982591084009499257126279673441257977538481641292757362340729870095694142513943065003413123772861550990685844958058336799928982385510814116509192590862506032647162132206327628000483649808624468047606994824290378880659647213899280194578474975286907197334304420910900157283086325292678232582283999225159391253634743369193139977356470749552719627824441335762787395378903472665937584937056996606478450707700389295423693090917290415761219779517998080830663548530260589985124015114895509909709335178535548084859096126087366306057577046243449074232391381442217433049178190677648807761689312066566104602285720127713718467062496747134389542213856931310610879855325867687993036322319058024158832275199583905517994659766400009708011274289571778932141211214499773426384222080035444323563413935618808452837404817199071353330211393269733531264409051585035428237312876709995651770521988939712324526152580543960520220893328175813176160133384667205069967857178396944613792072980781027694516997389426963496203313402967945519433820645065984169613238283541796525908923150375269355626229939339491365921080123046807939590969875367415942804342764219401901915324504920365366118454992430507601453206034412988454220332784584339916990837955564032605255916343172215024202471558025576302722374632373490454038877971712187900812530680924087225505072360417486211218335032789560740040855386347456531094764189015730569135240866326450391977705294327291654592796023170752789903563834724813562135471552164180432692204299555133095177278314299367535894459316032898520863456443979424210415358711372784993922685334211820374668783897047177590324328038984968724919920325283806219331694625014435691589748158619572045846219584397290788136028973572680785590854234817863139067603617467233585207933690703031503400968789272809678743503096686385270744300085356642121539077466566051664588091690061628968907594303830423016503422793006088823900517131287771561552860392662201491233889511671686632545852307190036017294091432731694608426352428995033060275940461593332121263534607867406132423186193117073833460982340458741228192136833535319053273446126823904320193138671528548914183072332354435147362739036423431390379102767863518717871087900778027516738932465781156492269299077593437352407263856940523624986860191058654178782953409296216674347295920367364425660105955873374955880852112875973816023368803229087304784464529836346811569419394576306373448378719761440527935666632895106568118572682230107042579914276917018995942719273784807266685729081744823186095168566784589934490403817862692922782288419592427316707019137273715845740611937953106977608249932491819698900261963216511574859438453802412849284261098324142715522054014230172815848510039515709236594113359834201770980667673880097011648198519452918549488790813057211710157197235165472700033384859839027546547015886474780316260726493275784973501664084255751106461693638900674069751921338140420488134916919976860407790912592446464388409469543998304488988862502451121257877201799873639420574647359332783999816938581385106763041119251437465633056829065937743860525728193180517687795747799162712113200406288070034550864211097342412355873455517973943916755224338649966355761011165748141605751521050135326018364842323984044350216262383378767327455012020655404553353061404143388301010816351037557165870288637414657898922842487836598892980499377186282134791054390834262796964765057102475324700140664834192636830433187795533256044523383791575562768519199377222545514913681943285717073348666450944249418968288721589638082212306235541461344217861347305171184953278490253309645138457724048258501300471739781290127931096945160655713564818859007497898117216173204810373990271384207487253997560205085823292727971714710494404173839186101243070417012312250312573027072472259940124936566903941323866160467751227026559811462302862740080650790204154564007066609355714336118984816639195658919398205446189419241141445561088235489651561761761242553669480840491594475828704322497732826520308526055320160315710046199676360065068604967774231914038486670708942007621726412507277550527908928545485924272557172736947388725566762193752907791334253435280047337110489453706772084627917901335237970166306000345140999534951764309371811336065686185292107460418895956483516797316120151717681066180098086633573203274473939323767456746137237923794882359266956778969440096754272888874985421644082146322280439209485666680008403068826005094677543147552783775937049973650783161277126323020944359867532737092262449436096199596520974319494843794829337389701531080708695870970884576346185633696699813869216427944921667442218242365075614768098360267976964061871285336703556775687465526934297458303949440341583909626924990646209644379769102753178564986097657536387275330367048726733415278838162099868714811040515969977710605591050039256970198407231411571115582766454856116030176467973294023073696448480610315575550565500640928327993560569886630517632114937765377504095035898660934287599827559586944259719287604888297074830136143184156636034677860474927409669649864342679879720085472620915536711922800269909149977319926286098396537292766033310831921971461803362867110423804954443166646975695574988241691398226905367823465505246956963757926415848460758563243552775345768120788255747140746532267441761000820369396775421995361446020186879274787133318992551121783403477492676462212263966812255852092625998861582370258502659469164077161522411791463426667914285403543158965018375985240175249566137574499175748808810674415716287661460146002530419244377358789586362333227591428044146248417789376877525022051320120711501376482880946288651328285153581416980889050127991809918558322747767489979470074435821538979496559732900517298066407721080748809486287064024359820575589776458692707939975464857787946608276330645919617566158568039492782795214478527478156816723081810866965747782709697005670497557210367378406889659286803863504254754639670318315961549964833500074276751292793808734557156377388543380907299585797547710977689466514646964307382702166312034244958784699679619629402956135477781067235557905816716473493510494028877905196878657386538739847527685709313845382047229805080947829546364941461715626105564402513756256265096615182701116647747976680905681828425936509459546346604588130425328965983743657031383336723895638320487828742849882275417063234102108783710776848308024033224153757520927058581035212986653816569647313500831985530595464731188823077927009427125384488366805200384847269917979901858716171985875866127481626674203161768036689569116023943815084544628037447910258740948111669194757540606196947184798409507026491942909292992831588571784744236316982879642069448753618987279918268270546720037174415119370534004274666528267366673150496782849209390897454416275971182970459794407036633092777278709742343009417539891689074170011064706054060429081373299017825143485811684543132866212110445811281095355413814100496691947167899267328590609355876614292775962650448970944298101900740842231600124867763375090725975463110475841959359314446402253196055403645663221761880283773196041014412752493265076921771608910747760005600621705772488910142741554689049827532884065057895206756437874657721483190235238317140485524389672824785495292563117532960352992512666869189692105764936835039119237571396219807178158342188254986829798732668997200386744729084469830620787452561261587075459121700541688166171040503223141754218682401293007325182079508874339236690218437371728287603081519874100442761223266260775642796657915110649443298676503540999453045973327905845081277747591663563917381890827091601669294123930470655794576496830131655027880843636335398929600519501864401161199177862220560296875726867384123837270299606856874306868989298102069098164348082576446757419818190551170170211724682472451839536727456913917209214312624046823684985350159460529108971039150767561726887287970112192089397524638618071409462790421380295697588130235451863178179501386565499066417411734942521598775136455843447812011850879858939694261445233515350375434351032833371889859773138628060112074987759400741227149872748719894629834037293995069510970768702572241571050371199298869828183176432087909948083493712897407609505799652975678305900826564803035956049133397992583206185828811629894270023639909217875194099787780973527250494916828373369659165727840580496598936205439000028876780524876340783093070899725156003573432047200772145351159128072778339345187962616228739306408877791838820928768901979155280302049637953891625618920336178534497093488940409360684005601156439101881393472378419597881654595996861940257009352221410881844705155804936625284135827237014976153329125224889631363180688857585962222601345076973467863457891025279312716929055143554852371913472396389982463692523643145621868683241931704137911582044713823083597268012783973453525406126194507806455742311418059032744610084388485393210058249167627079191868499722845846427312994547104570880250362527109140383596581169087951689703303378441993120352487221609370229668364813819767694169835003094948400717346087935087082039010408991710856877019081615848872513889696103463065616138410735093272741393554313456060117442146070550852516046931466746087591195107891007873672070399177613928722231355245567347022542349607345385075903758422944067977025103113194577058126428474073161706132024149036633653311194207051078416215564985163033793377107190181381024545377131307362598441903935219264179085392031709422905474934349148564141927451314159451644785296290054823953492328130994505212106012115920137438362158543801718021518854986558683243466020207108049541067621434871571740562954576207032175000096854073104011586863284208092938620690127980372046888186067472417980493899253366102112241406937151183700239217475657678878536995358578472903539851366311516205858047166666730575247589673271723679600401115770664656866866809082117936314685063342712808053410710869177283060320852906978894554251897107708651976679082101644119282289440047882103446232192779080667481085479523319466750086959239531730971338781240497083949287895364157273501978671733575312032473096198472763351181674954656404741267600069055094253687316190149852475936005406011334695753617998229020440449940606334851661528141292473533757046329511462584796447359693430917490114775498288201185378596973462506998361688979395115592270663578923233306267448522833295487475403622972951414082211264213723069251550191197188380127825013616356262100377348770555383159391409980862138129355500265946703582037279223750602834523507502968876763188259904033788210028481687136829248925246286356722649765538534098535513792679578826484479436932490603156908396673669913014270053057989906497371832770573060415164163916694344442935003771029527115366004839290271285376088190215066626780341377552671765704946816274861699511653882048424870951783634928083914295740653644418844022851773413326199380659959402127018245761550375603069422557453734107976093284437014299189347060366277799163169677318048977985584795996239582645502912265296975551068155861260797165032060153521497837545704359789818218879860364502597588248328097428551938835102129573815499908183167670820113639015346875118756309370195962163674064282753639749528773267429897750958812412866239209408327223037787956661567415402587011547104086817541199220988834691957912809112399636329455080275567414396942839790608397898235852225551688505842876290543749733676024652830682764742407369891098193771650087290694494593204126268397152715453393961961544828394075628019037364243124047333903182901310041593925127542983179849131018008826945051251049369315928656838229399619187059496126431100517299138277046833088743162008268924000226000566600538651992825448869312624087019169009385612128736316460959567110115764156980614549493400860277261560228987684190201043400339122680988097145802490662891500721084174080307967863872999530712843387110108935143425399347837257465428442445769547707630482306272725015949785475351940129405254631731772586902053601526191131694214317400945972795639697392060331068804110430857395826944039919122142142546046833083947479286281343941424419465208927364500304572990704509161558997803830169293471907341170507100137762335801789515074271267977237239912708258969221518178653940088427590079118117958130682986574680731932499928484416656348791286397889517521038625800615290659412159351929874312495230109777898768445463203823632411382943315787180918656226502430402006777241618348103946564815388774457989840320483948345019052696546112089078610946689894509393556759035637168446490596364585859179533139757678204460022337483682113835099870247214376820145168101029001623396592278095247193777117643283129173631621133474297846115599051431898903362026678431489393731207621859635980693667288049949593542235211516133452211819322891736704858724775598112681117130001730193859355193418026811673549034151983733600841494702630213115326598573721531885714698098885517600300316750365863440385050576572929591717145309445161388776963461983971095195775169201725394295540709656669979806629978903812805828162434881203477748102675822409172730639407102396884980298293798498499429312389276774465103589741960664181361737157864049401678942948259270608578342830802707341246731473027042326800454621052620675091339993263618484666885546814595871174420234224099217431893501840691512327014587154437649582898514781441414286874125200707758373152051874553786886362570870268444663838772498473629827885476473306638712002011684881503340568989538012992890324525623339870534066297085518067067797135235154104292476689097492343872626203420271863739602021285707715843310783090743029125577229532472981009664623746070043695217392127147409156782725247686628721217632392107104086334350635323441231049955443447927422356777711095040050781521478738744198155807536406187932861928262376778045355204653296526135814821415624137363567618406947222382143234394128158424583520035756427057315161057384182165619910102539141187815901850993334553242991608775269204323791598670994836945556915840962653399491150876767196654605821261444067481472149874761059174873097876031176409644938397594174960890955095609165558681317391819779276697871798947998486308129231218281620658576050359416120367360646501693815444171207546927859415042209600822037838492921480416145147757579747686744671836215004383849277817677583803919004756760498162774131118744525812569465827020920324971753508171942610232186734216414640414946653335350641081192487161903140544811888388226535304438213212529233795807861394793746092251284374566222987688125979327568746401472851389884047316964486926454092901767683060443450334641494424921294278377626937373559124187521444673652154746858387424213451035889386199979606625113828383003957101114840416378229592669807595375322131305205538533887774000645102729694614863869371661832081973965818466122280382328749679393207446660159989762172329799182217338826794144764259077725259072923302705831111602031471895214740886821799561346108077015518796926000974066974428142049198889485464816832332036533015947557068320323646340980188725682871074770253146944365762705185623272674532420846418510953052037025196907607760666680131875031387422885009190895795985361266897874497075000955589505597556016637300460630413550016056427361868683149108033624011971155613833212082599785392279026911606635061985707227090726803420517462577663349215736809295182800144977920783139839515033261367014522810073238754488095147764600132793946259743210248619997388821039138266385180083472405057450755842234089942797810842135439998684411523325826423900551299822671809009681794089470100381132503575757296765233650260698592485255912014198490335039213769709541773330066904967635886255398931736569869630965671759901978214432672599786728203519845122221618442353236135841761385995183970002064304672280444356507776515818957349523765123106165693349641591098877823842449180981407284554330949449023181956255660285685371677926726224677446912289465630772894613647434092022929607352329280603673064784956747144963671958997744096840297250553709282123736844251836035399059478991829060221544755892139744344054008581460408027640547455060140599606596385859136576377364731141001903235417662978054659999055815871199657410274447210812942860385345673256697237689379346911823130440520702712202647304187061877937832035344440175980361442772434559274409014860850514509444535457553729075005137674332555708836412687287513735772497598910667387537289701267322319036557950945573810369193872267958199204695028910983330426952857221698508690453827655859986919291177713262024787766144574755526136672411742027110908669722805348810312085897563112949924018772727399157487828940904786415740393417395937995386647418137792035535197244901181090147313337654043865045217586789843633775817518659562632177067278853894139118999001947649030763951545794172959058444698649285199194790878686854892557558281829180390727916649337199505855270615261076549240377701212154773056730627725411924107188672293562556326080190177922071305654894540381860397632397187603215472269436337592099411067068775735447373954661553024888406965427273558666445810647995014075012979970647191119280023563022843647733225917876282231088229631894611165971259312169728689984560774288154783046120672665114916997133732206816582797684607814270730626992484768211250085931404210020599919352425056701884557853986025430255059441043151501384314831546846473183955823371381861020455795186946518774489102160497234483053814416463675789404161879004455996070911532398117164307967612427027875014872007047200363906334816841563250842987247319753920010884962934711917211966642534745441673144948994055402345144419507744201841377421877338616263079321073220026367633970450403758188958780555048804327094874329484707180368928161306038944301338966426125052468220709647502599945059184561745124829881648368674431510180813465443693415348820026137887149641559175882473529778636654795420097631786108777552509983207314077565377616705263226937797470675125353140201316105719875941880439334112169966018065359754897668603465165839153505689685737288417114244985651990636446720333264257090363457563342715448436364965873505124313867631781814468855116518984283159522331679468774004135199265643578118364825634270672114416649922320363524679689232850469991626702584497079250070044204210864648209003578306183237484518781650572167212796352630994996579025922856536043032659255479672155153759497678874984917299261623909497144916032053178801976356953271480739564270370420212184618143652880893191899549019960771529165218588041563723162683612264124681957114775319706771750802692529056119725614350394590118691227014469304874675569192334631645058499866833123601582186517642176524274886457488729559408131989582175984020649763262098726063955372087817043415732662939728059606887309046645893703511160290987152805091188021741464218216962169109945731982657110175923139452867613566289111909928258205961450498305632857242341978998075422890826927695705667725196656437808266072948513550401059733417471729062672548623985988474275999383437989540203596060607571369868187159808429322623451220959989946280791540697992530247449907443223378427516739254239562756076453999839573938952678449192097602684569157192293293845549704006728998615384987343549250493463553716509791963197337426960171036937413551328602577343987007560029476050852454511087483221869404037429782955817090013066691382046340715438262872019272447999358051683799019202812045457875041454872427879783034646550487032261819237044766250675438271730369988963412852369237424209394436511786890161301993558298060390841643699107776625846138386336244644224278079963025956864655710797641543208308296435558463015898043648509508415002677128623834016869464348854687668597870577198494896412691525460873821135255443389990566921391987093323305007832683388512495265771088329185976777924219557201167650977873384096278733725110627930591002372313847140273362547337484340023203115176883294420716005943900691970808145699272969643021579700028482927348856798338681202975420471899823014670891046302086449461945725495527284017846085889059464256146490277363156527202307314000349776908243889377929723522201042161685703990184335965970054066252153025774389169622302761738456755691964019914678142542992833835374803519357217484323732404574493914207715736513542115160720852880150216130787598125435699320600768392342769475632975860307502728489308690236659032559869618143512474438252153987408551655193962565955667368483581498979461787413344236534956421930497378776943036815731366631260461550485355218184037659286998944862425015390196164300299528186847287989707132194156027594270999103651276977657673443634523398580648627329483021854754283276197663905899757498859211441413017079990333956446556698955770105334259851908191298353597633843229551236602741684969985795403244318404745842523892703087501288423196109768821325639338687552426872144869860373187699423988192206233207010885031662125778223263658427951417297863802791126566668734204814627552416339872902743061644254370107465940721059465052083650312357018345776082874474259487095474193507442806105173718729417809495724009456067210787154715499769590089797999766010584787493584571264917130961968643043526509521678466687456362865633321532868637010715803059441774792360991141865503971437169907946172308524960704046323012395692822630055633249071565006444016843614667221579361658493641094499639493776536186367460857006721511000986616516986652852285811718179563976616123647572905321170172637934254711305602105345729368449805594895722733254865845253793956247947927000864516290610874681364055502027393012627634144406268337030277981016353566855531863670166814591942507251359059596562111134819749967252500360848595088595615589100859908055853985228617290378996842652184367551468864883582896046133029888288798852300728500215688218781205674773640243682616817498655505692460779469630271399623279864883490676197435048737184047662366068095183566615543894223724050886569923112390912728732144420663071230944135772370002167863788213239140119173494825858064030534830653208693793251130616931231835132567716412089841637275863027342014322733580125091620377846832199685500939676237036881260964424468728128723828383096367749032952999942758511353738563009953584600737150789966878165049180725951941473463447187739042304562600036697649699732365937695434075510926204449196108496866927821364865565499964535497541164260302361369018239770656112396089966531100690677964079883965118397452934119722529152020788160530614881730240094124221298833150031737206931309090416626468125619999870352671826496091441580720935100976947997712572763504121524959679487284679539843403290392786236852120994217603405795396540319829340444231414395685002515125377770131333774920084960969582141147256345793318738068902295684337594715415993129185722371344002915324666056235257879797487826047729696612186483710798858059517884513950535346665365109912741189388112590199551668809778878047108927191616254135356263483023646730128206664004201464675019086205122234517352283775020919069732978029713565048808976754791744562114888328679929862174249753704366973785462113502448290845119371511549248825609809399456772053440431454606232266118310548348506861405490645207879179956322988784344535522024644542141565740572297028288354248258037537579112893169006245020493170460609097162670170759153171355873641161688455902852751697692960443262490925774314351312806421090112861114372677342709320261688440510969652988947471780159123735270932215461213442612310888202643893977135562091506696635255384465315206056667930057128755411950139200757545923021240314494291864078870513868030157765714159370362978820589242099629129974512944628059314601207839388505992483035122602993334821946301855378856177816574412044880900156643741778646256459821268468050172170580621069974565754844056650370276699605213341423787152830863693999971616975461409141173864551146020326928539653438703694343807463560425132196610538736607785749873052853343165761946720570951396974003911224165927180521680903621989647424927642747710617790468640946169730715777176649990906095099094412378125865261499919693652355668513535840163465060723115991378286661447661161508311859444039746664098761940338266052189906969895938520771261326348551968997584112806879959152955357655246489727398033616800352330059574036132923481549340390618684248885448262911818470008075564947130770287420820468098227480716488485913361283368644269629613176114317798959034600636369732866891698589250355648457754313348091979171427240599407805785500061259485057425379173689278187466780534386101960265722495746600115255063426643119873699176802199604587988099647767258805739560702016480410149588031047023858386421973696354533051299247741253195426227147721363241381953887639937511471303235996190653076801057942525218671453280235716188200035317077148801880707651258052851909326187474691873196476610489186764410574056047543159029847980229301332819653836751931399848243887344787649047501444843727077193509749715224634339199485388328569960295456563760617405521423185300187093890266520752287939381711640711517000409028626314425314648303866596859089674298858660828306278024710670297124464737579122869145321859370171486582314637155934190454489868556307892668096149044439894504320729385662359325606278298504744729187589270277414093370042420688038011019707541476178600029531807062582961904170010950272370962552377558587164569064020801590212139035124330176666979802292954917310439205902807791421938074740417055442680301446186197891740978858233814413057495157152559155304192837467541625179690093489166469415615600253660173841554671219024853012694742738306133201391327604952351567829198207413691686243013782787719684429781476033196684020624084887915106753010403921610690417413933000452109012214416452055436997646656204078715395710253084955912896806226684861127370378603091352609755870532489629255137190250468706359968078076200057298055344955448627608604369082185124716232879519081404111317068416890760664189900874989815525335208071954643279891098986662949007437927948670994518792713647385451558150854267427576925651613848028427665371978310155575302512108245497413674127790043148939648047600924494537941862405186560942267898825203085741831172307562733633243065083910043579959321734254555430795872362669094660410664061648577102832458018159690451970182243772317519582242187370590664301111029066690966901497297008158316167124048863409141226628824590241995631301654251610535291338364615373588359493820842296412940563802134635376504337628070087691319298661797257856347579012014062299160434843078777114185258364480615440366874875799093657775226911359408916275306349127062882666603939117639690840520312868312801560054388990481894076518094106049070988366779771306289303951820188969891347278086038874001995686713835843869878804177758751759419453955921040317956185577226255980625701415150321666764018062245054928729213531649858425626850467014862949965104465443981955515300156328942293077748152258140299208111640621219547078028277291296676963092208655604539251528530046906294878931436923041156406281532279021232459497799897854527281121646088849579844505014597067320029804617313037312942097502591064470545311730479244456054764467090233291652820298098398273906346729263306626687877341758652757469428711314164426729031391524136847977841757604001519096222523301420793025225348800186156315099943475150515360394661698861847086913735829920942411612454496079848044738894697290719785546656140022134508378683567248680098608290236702402625940844559923691611962561553686229099159988902528378444825359097941227482110664365047607681437070617111856632296478407237940688131624525014959960672516252941426352851578688372153937399782353583075860045741907026616568622837638258217743014894673127172785617672195902154922445147111077230796254957945660496545130390814999070039082007323365791944695422588601334400927902595872043526429396554626558717846406180045770716958282105774797991966936904084653076183975588387019676942818112989684310647465854152498815786654315162886413287221307510523209894408563293565807720655072430987411031669911852781141397568457048810719650099224056170130434321797960752188879745871365508429222952866506759647732515701377452741533036859180553613120245588364333970479792551238690273660618042294921912900027101042492226393666499719150540579173131855385440848525534537829578581110525855988748809494647901661810672141688528667212577142981360962137558534728725656316385087564004606844572804747579331968316562684331719306250045797198384491025449558613216661394581860670863439613850979597816512639657557155638454398816704993032596092018575231227993426836163281818722724009149023646795730688820620603227808667530971085685132880341931827456030290036121579403771901807899363041958971454615545403587873721487155293330207105226852345841056396136887022594269507189849717280156774081565039793157350890780671642048542122746900537197260218211312234796531385351646683781604506604045659618042695401869445179722145660934443736222147949679924410181160353039193739942215331154585611186642257373518918545762355258457664912460438948918494358310859953898875715990346196905355767809224816458772455453294700452721366370513162623723778893827053684632761367709447554253949567255270838982515091792893203987968738543760139223332939040002245377394477989254672927050043727049244695199596870892719148785356859388205758431634255927346891528335272202932417397567878813439397735761143358696236114846912998652464582960448154392211541018950312143029996005724393266405933286920763045439540172585890017737468174546950577232679644155224658500922523862309919404957791434564270595234266409896739613530652259415785367889273422960352986984599049954896876844721039386762730397872035386594397208177529826686682909985975407302723420597278338703018587439321988997716271066775551576568029866746883252953673204226514172387880400049000354640376148310797517688329535453740678657369906291066782328292557572597150104799833513667113776342911790030261366489758920532356511682401539809363503826207838383494734599000987612689496832421660921657119734124033713761102613368980833149331201451408927730120126135512982512880091955251974530030736231628468213229998943000758198591099960479678667328480383258305401908892862363700691215110798427167732205052386536667978750946307716605012345478524925062299715059782186163667364278916943316967057514238028897058596960865955988097772552695476942306675004291474362591890077050867027449196538485206326994297205657344658316464501392380449964218378900664171896047592851605190897917498879838739797013278696621330462203035354683439038391142575607277147214070056283508297064079714805212601727922538075678040333456711938095866508219979374275026136223173909966544845689046858495794430526445843406532824704284054009888434936869160134049565315853320529162817807056402577559522310200226750095252796842000830585434271955573884753467445832584220565542730769149551374853382516295730757924924347717773007220411441453826702694117594770408215152619099902578413179717476064553106849646119608303228953366192039565964699541979056593884086348210935263601983661728805811862083701188481246075876785604759396805055170838546711511844427160936597914936586571884121228833493662127906998145781909834864531489179629293213346259321585002638646390943482739403776049792350410565824964518009169917451859548256017268975556439312493706499904094729514898930858782191399609009288314780031606109638762945297522512415757513828432994278354205700281783275637776519840309693060810838729774173926627702843477218498712559974143487149281423145952024392430695030119612025930660132347550940563262767531506575445264973841823441142604680760510393438184229151113724243240827605977322891044371987058610996195053834338889424431228796188935220323595918828241586283117839985109089770934928989489405475507831591748921853069580971464698272449974247855989844037986830257705373209727510858195133811367914382424411316784924423664209236942521996477362310859520600157668257134551372822192534020366075790355296957700253117396455782449914340711519388403563470819697315586106371024747347494013925434875102310808505317776593796557593083930129217865377941570973287597025728622710827980887690068751971761707756288641368349477442611189946323753713685970478483104799985619056821196205126545109051810377805149547990369562252185975889241687219912918003169782343402592895540032906256669683046892987200045175887099266853841712865505623781170742219858284058258712668216797802550731774003876703267935286595718676913890993197327874250534953562825672605869296536493928981467076672903242117300494087883579775331331675433382986596936309867567134239045083951085870782789425239568072269555773536662784933788282386070248120268984008438577577999035206786983452106925425661008952298447850004492961947759642072949238823455206386182120743976042625657918651294045097837137661334006769615646671167004288866547277103262429133078420346766043670711284880792517105925040857201320222666478238014807695234125693415710933147496448864076789957048896524102918465606781865277302113538739141406809262004811198282263905557276042364628614752943364819636947854139501758618795261192769371363242428560781351949201795544648379854137364735030261230015263139473022391063435008200268769180179238299831829603237610630929051370357405356082801809811637816485600130402824728986690148233028190759635766255971564504168736694950641181495530689345597710873030906940428247416771178888219405248913531292874131669637906130910149042168816322669831451028189060693781751403318987904448711087830475075740262048804881664480132223545081710312540749279090378187100800836098450117331840491614730278748397602088420881417869487547608812553338381167435299325465685336238329369206453433628868837839566638453288363038275083040290759900385862894206922396786993196962620795693482251586019801445085029390792256382273265753314214033149277018569051414160311954264919201418414265017369985566857026206864293558007969324360350277128993797418539110013297549943763443541969987864666311838023851044916032340311188319327357432496361490315000740981985584168181682549930867428444054122982996819796757799619695922491600257582127008140278255938031615783957612129944153359298046661858475543985185684982224461185358808609332665835172809598320776936885110525153609242509271812852284186114823145897161308410329189989562806247894124532845736809927113538643749973810211922210527541446286275366526865842221751993088524822106307874782332323137476876679999063904318224577291341279605692341561677311980346934861241635735276687778597511398835250525532472886980412493006923666115907779442340292849165185628652585986294040414947640220991727171424521868332065173011194880797664610075501480447743873325403101328500682907236056099713798542848348504071307582710517074728803256323630817847142294853208001617349178025221394437453406971864124971684476441009250972363010489017553475455318198689746354584705068877563691781224910606964269929419839539945788360976249465000324706758617953517690174464859748502576290898432254819625033047472980480731287954941530142588815326840987052289695199734731531354438335067231040871532625863879573182804509261083262284325140075347044013633771222896385653040386494235362369559121177698296232889996143343307802879911623281710789513381438899814778198937205457820660470888823055467316005007798811836131923177288112733400431856600684492504954329031657520009224831553722421054223650178331117420173347879907314684573861919926414309332689480004505147154441007266043538656339960560809435525188888922058662094759565280033276995432243205497303619582942873758812200652248248977823432625217807265963711371200998147946786494004106737042252139544180648490960446062055279783177620851246340691641567585383603009266144920132660580486309600743204418532782876318716753233137947503414662403590851823149351865230184034488688543330788296843166931043208407743075252604723057017410286028033181963787847914253763709380852694978389972277187780110674840630802834134838577093621182143922430921337299471712276324279320036007340101144652150876212824011315214896635153689760106458797597177608127640963585115418500745067176796206689415704723799027813294657647669499927476548474712400329264160468973743135522180732050389783105084292273988804673993726972825250325898114297697349639662165699420641753911234700821000883807015174621522211665763065993624641965739038826486417039437073337196779721793813749195608206233461076453421517837732810259038647963194770041108055796655786593111873003563265444456047868370448344719452801124742926441204950172114493785214682967260170375186136084329030132393547193736892675161128096193115068486987853455816450572748161601320060524026465147354914522877540345381535301222446793527684877060869761791831182715461565952638945218793386956618373510574365707285478529161741569246741454552943600301470038029450700634784891739214713557184080922245438336505111185146314967886366421715077745538106135889535289129920374211192781406189493370767874917543872262771403188588676600083614654839471185910121930198340402451062713154569181612484964107732659130747327578859886314366315743353346475995147906538249822483505504908031033301530853254102956056588475666395975315838514565614387650616987039926618872842888942226837328600741469610275459980854877637395342311495621696433116089178001745722299468905788984275383131482180199859149815286712277453741634351901327573363793537457592710750204399305049746348193419693331662454018677999616110676291105343164474121882569871604408333995537141510050345126389422011737351316204695345801401594766126761660616415381524818658695419061859807515213935719621329519745768577033424773477765001509178641148946694848820751050028390779089208365324429995050951872332902476436601645821762002123538713285658824295196972984499540579060868636504381985730534564532740143250544431211228777796046131161540242832092233743189001947098782649165843525658211903881595870622366812299668745115420888679611286005481771403021700258460765262600684923855088876582371637118225091993813195215169465063708363682313733170726942420991406920403397892418903081110947077936482799690106268709135289079822343159341550216938448098998509591386287853313562709812299138204696184394065362006099248146472460908979093153749959100138794674218368051252722025294785701895861702380938362729798912476413556282862186948580750787535826773634812068398958683248168934588047954178678694221198159565965372484601811225853126747758779876098057196227663489454367230230928181988737614070110094770244176217936530420108043000322606996919077394019173484066267261502315527564464757757995159508726041747471063412920644279591221062659020643119313771307301624662583295882791798654690337814483610339678197340191495268863104773593264255032795256595974409889019310161507457937380704735363429462784391226162841722626254838812625714018499242167626841176592756629787075105269458885649514997619502480781706202118766486623619881474769153075509292717564552308436575432270769216446974311681535399818005136441125945724454136579935984257424590119058715232090947491264431610526491380219810747308827864537411254097214419568407541144251858713413487205089968080840739057895278648822013296135398658987945916404576371843873174596702011436664079922678253547983655730713588916117272433596068702746897054558495449638902769304536786322470827050187180942112224767562891817631713761974625905704682706122956703814067152745776440020249598741333037358602873340742570371758098445981381565332822934422770118948744164335491255977422232692023133628440604106104375261422845663557407101628399326848816557700240285963491366607889401226514980514611951359406692313558098297770259229484437311887494075584173908552921993672408962809988311192191249199634531178442804099203871447824550838282202517164553261913128228463795519516472395141425507711499809626634180770894324054390947868214787073689937967195493409453048956837064009674179016126845476592922910515173997269685010608531843261725508883188488968124935873361104985490835902166083225428025400247828911845620090050304726514395366082900780125893332567516463439296237400577247182318189336386488233068177261330084017547055318323358311377404494663532234249254006249159556253727912749711945503070732007560567100277534928161308028949092815376345264354035014166975292705334043900231920070587508202008708109758153450466614596866842953593127937019533914499206317438333418241055955061507835139815559866435161614123582606302220226977977397627388970246761510279577782430954437289137482910376589446952380001651790422095195723219233972105575777593407052935670224857801476126161893675577821189341799571374499947633690658164402944419190787136553018138519559070035884041214120827056558343069570937681883578258285752566078092339082395363231047812099071868321271011654888668684179354032460686120739292781635035838612220726736964729190898371546298031170957798301785633315218521373454638183863511705203042007872684912689501846069795434044723333244160142770291820740029404600790700682945116454049414747305047581733010945958856496885090819572912998292542257377582853522579457902878740494794966244883169748451472881323040625411445036366698127377078702207567298232587696866991523373814013097181111231672683489915553646719569459388549876276322825187531512300923501059703198086050398882358184821883856226826926814452390993361278592320802773801333102519023851279972018910633043877688393609161780283559778660708155491192555045248640651717078413971700357861546517378881171956531443988947803785384407624258956946376453254312878584804962238245192962572645539096675979922078587543322170731710663345350890768592901592736795728290519292379653849859801949598518617538427183339441114266862418693979985599377616524289033452800859723978983447344136821761245270623149361143867658631447421660328999207282260974499258158243916385535144076611238444298325193010716515045368559852629106614955843904209737227473061201109288235927765667539323497912197681159003354674775864760278196100046737796113699400562238756023036704813330366829964929253602894481023438043809671509858660633851292958185815325136285073381710047625995703197617863502048225449086452615235553140424180510237782193932053665927467825871210543944704352812647031366134337325233763855643010502140276257154499460819517056527181303632397068634271263057950076254938913030759649166014266112457574114099364334017164941282195360055430165676062325521816102475056716451226248264911411614000627671318804057261209873001717579254529393597345980777846389913864378150867975880268611059751545910071392768806902778728545485242530628631283243429727330009746996986382290495143820521469610322169105873438362438696026668555200398095273796919625714264573017550594922145877494842584872041392628678374594003649828067195219520782546405410706297879178204308153614263941188698183711513470651497615761437153069820069912672415937577314609135255182975451141096476876002468146085316252788467239789633454736231351925719590274395561086041388664837180483725427611344432589658081847491327871378155932403252296778304931222575198728382439740115724603145367464281715923306501097105597218358400969102726447044186568911522076655331249034903306545962296560771246398249867796469960948730514171470569696481731552953751211854642806150904631456231118591240183211086043446715977903453151116875416784357981117321266934643777264096553865295594446431956851158986746278713888752316960636303207838230119175620343198129592754940793498560105788197787113217143959632425992404926546120793947043318526140132077490123743457339483256725543422006088361718419694926510414969099633949585368095618087255398216892300048780850840984966559711948693185080037218318279631558904228629262793199768372283932283834994221845168925284020829161477664475475023165398448786241360646546717702722766982741400012362712512194067766324595556690532467265275752213093273693884897782143218736465086265604887935154033351700664489509226890511969661774762462159925691997041488966565828164637595408341658499806770255190172341375398474846940396238025860216154960829906813558014201594011585870555845388681066834010000540229720947537857360941326357409125014548750657770879752137448152312573877519774074935236862295182058479052080650828551553236140727771661175264021011573568210978164131862177278687429353002996841883691584894798986140765111637925665443462960499646508773351680991696823281837506263647445820532778729897287371878153831055565025087098476947460373679937512353828741425530583702970658453652263128212492807779849659938108513799212559547707666168269669881086976130114524456826878051402065194501390322576334321740835478880772626357418359959944889885745649965520649325367717751962933703806573321167771853204046558545124062272224691065851866234240741326834566050582977133968549958760598353630506862282863370899727789079692779859892259011310961990239405349802448789252627566495689994725260674824367945659605031187207233960900960260762926470841984414819991902113391425286908707140955225807785833839996469409727875738348402801686215015779191812168150694378396743808634190082083856157514835601682597184995230838819505441320568549617134710262333770845116300485582955081719914817141806215952360791628701595846758463220848010747244630424448328163944377871480460310237851122293283704076223199647507190149462935388424406431442537129484423025194899341853576643182743084880941337223659329929266577516262615995432626232752956484556663379448856100924135460303681700540450397029333050205994745437098220904858695468240912636598827817110135469659352589309110634368475272952673232912672484244235871845636312470279097872078320226984377877933970585812152188416625551258742339223632853917950398071878893382551034867666973084036336499546981868237067411888471104543083940597274455218755473132432832527580662770914046485491832710906406355701712732059393446118850709244866176325759111200429498502774751391044771517461618551014238159002783472216671933865885661345151734910734974547087581830554670427670860281050330040771646106534872753704314570176243332992229012226160446094960354952299569472625647720999348737819465068125124775959867151878668334119286977753343852042395953326255569790272844456564198661607721371308205058135488776788641262254489584057802214285141437020933628240027619511906547260889980708192378523889957897281316073424246970726550279373629284564628732162098459936653696990355646294482285031010325844341804418961436233018717366360316009378366903419469022888561196327437346723274711170967149581133762724748190637061148589071392277816981235655524208604151740868369484823914147926040698320547959077157952201111755560611337406880322443375749226986930591583884825764313621276184711484257605947812363542759942781986978625561235153036602726465910975993917102762686107974644380029944438106508225052211658994303441347802565981561811595154928179949704193458529484348509714214926638836447600981865280931376149405784266406893891781092783164840720189590433562893184776992321620863053945962734778977522903438253026913110009372009101268202296628442437254326887350472916445835731682641053888352916548472163323813434296729717661310861962744184455427457240985355257535633921918402346339323040339365054758759886470341704957441027681963359654790194332684864738547911603462906741598621173094348292008465237415676820713174605839775873429140851791642419952850206691394764292633344065375752242757271973104743713884401600999747247833304056388602063239048480172120082229038805532575823641988198930880682300862462819630134908829481406759500017761988375748618189620349101035799087629629064185628822223197265614070511681549692317457686328416665393603188226816441412780841000088345259661490741203257558449962779315071178701103633746588232536863192030051027635586053951596806266846513279440094486063519389851594765018705646875739364491816051838381174545869723495974399114535756111339566727773550043496814186223859895099818729454906357987900640017071603747430731971462247383928994520414263539892959168188513175856795130190011603179572708795878695837092983829106715009307214008969335387693286206303298096779470694535238095202262546942422131779453849370455149671731751992770102855789969048061936137987461332139785712171441412995438406602468061412804533401053386443878052889890337148302791706555656753882159513618332524451579918124508355964979064288400875905902314468886456909202408283727123518244548537717593683501824267376900493352060520764628986216632006008372166843549214543072175779327956099456229102224861140400134039990250754206169751750202412265081522635759206385459899452238823913977494980430141520334871390747997448158010849971080363550489186774991132629948286740529724182832433703343138452084968740802518037160446798675847269704619049181094761766578561387923139476061738724585657126384495115337934087442152293631260048754667916436305924413084237003635246088414156857064556959298184428443659022524051160922223158032669859335711917412564325952481521913007997338985164252364601727844913001720876316955319795630223307224864190925099218762224281673621901782179981147084010008173330230609090416466308502736884873795529172560552350495388436801417576866911612071969039614134070114360300015405155449401497022661575393151522799858008494175624678015044359962075324924108258979741593758685699244951666833836153559125087086879926829327241467785190084243300015850173988617392074509190298046692988029018886272441750285842217507322035267663281883527093742029020159154462421833730995018244482691114220885956836852072466483148361927580338696829085232689785181255827903883246468525523556424042515595070465940161539668885901698055736523086643702635471539789742536321949713060572244005811773959270257542879540264772905495254093730052252040698439130514228952458692171605634979247859392005971197611565957201970926815375083828545748502721240407725336611327226783771862528420777345190940872744291868344200336500730916120904750535557730827825195971817729569668078984981066219348839334299839495897653271593566319272348755050956096522288361216994719299911533999966710909339015904732939018188252885508887400757282570559905886207689462140170963110638150659462936965593815059114580561176905605458213673089474935775336194255195917559641367198278490268566715585221616107707117466003403715299629686492815931637767277235894677696855435770586805703053010131246849739861301847080948434327841076507171606934970665428423604413952380326398925918826251401764484893382596722103655516276007501726052027188396244991540853314448611820217390761380701540895234603780260052367382289508574707208109960225753376131641129040050733571610038093609683024371086950463885403107664506366564190397067608064099463992293897632779431619822718995954245104210350441629095316898477083594071639647352410423591001181996023450732424980428642852055919370977562374777841882439522564050204192178772008241788271757672470195081608093647869345379587846071386733342299233337747269678421799755328101490578523064918299193687653747553393456326309844136869641445413057864330203850573098365034946817618652815877239333629355893495347125910349990443072195116795805257460682842381271180488162355053726999054037166378166082639513565382243443674386963672939420501379452079872329159546753365082859720788465267169225890857764426145052614608195443260800277042051915399087720725303520878668958956129656028998677108210199446561980136818516877394102141336193031485630909351012468547338068488151940527471654157548328853291717623189453301044271920635677723681116526362299523520369878089938227644526823446412598412329195032112754371921321075654400299804529667379323832129986143637062901526002298681911806853872043702878288396704781017101325042066501063784853425807746411175916201109748427802908079612923399126143643026081820771381937807578601390266784566730682464342891418557996276046464472494010540550396121423251963768303487065636318369018894316024652374477782081170754537426798460186062692233759563299727084740067720259816523599826049087261809585566628833641410945564427273679219827594646297528655428117132372608458975118217535677862281428696956953967099275623869590438119537706477806780588994962286920156513964943133177870109500198917340851023976415722007860409110588006609081439055067514279904497894749512918027575119831526976369422929155790052719451781083171127914723591820111651021914807483971872760843702785367644904021241972137140437322132278525331721586909935887957255646150691714888192303597731921480136250266239446038927849209890649418060835461611108845676267040929021951338852457988426286128737448664149616100378553423769674440422515441760812889271175768858318967784371786006965083723379919240762943756365061024452059304963036467434415681572934572394399285062746736380691423700070231676370017866005942537413104677489030163367758045789749700726293554836211791221965080448987434603814628118188280548172450395050606148684661846090381177478167732329298271754078081679094371218884978561598010895417890132083319152865345062821901874236543588139743872303153092569726142323950041192398945771249757051222696772024679192503970097414587007721693737078135340404875226807479858032673775959870679261947741189791367777831828447026759793024832422018794714522935074262694343951941381762441827617011358724477768618144509837163089468178795347748409656743694738001721380300255088414979797973861645955976275948143832766129259486467168175113848568952432840742929835047513736815055166198053379306161955911535516620474959376530738918182439215123629654491239087337684560781060622508655729111534598480802645189325669187670591495201820876196609583271285521109237227125742456001950416985528163903206559524171940665760443422317646934182302957481917998017569937545406876184566451536952128776205356166517693297655286545381060028138331077506190107323276068277175950745464445300338662922154092092738305757372423336874668177032315576937760345483828598278980244946318385164204709216288301173360440783274719368939279176361578184250913953300723365172490264796799372114663033068276088124439830078941317097026187683782186673167761197825892896591715933682458037133468080854890742667240167751798844700121319407061980774484703436705090162254733826978098044678178099857406383119662554980656883912906823773940915758212668687615317549921168586788855318500873951658773407388207652812905828347408920732317405670568089777756882226323001494476012888434995478269434563983584864623450084612202114590932804520259212388712154175385977851562268391968972623910191690685686293919598579803946656017697623316959222826798570758342517423631908221815000184567754952393428984553755552524989553387701693953597443059296411669425780366955519599878155838694358623689010775361695944065170817832347016547360025040785307901996191393066999534681852127454369505219588253067192557272224385485847381953463165678195109965338018842797074678466992584842331253469377047236869979455902480345531508886385621662135677237399592735707888152187224506022114206200049505780947549494619161218509297857247572364493927815712515901682858783262421046077690584003045836304413967926777487922986247199837507243088552046296433143054144293957477337388243443553258945545718441979379015831384128964064301415492851994188766223712280641939334618830371896961972049846840926679181376247744098906250535691936267195813095971038887959092455382942949115610051281077372355879818761481453022032619547962816133880552246578764826867164215114178254417927627136148017039850713467929989017546130975653058559839061096712814547952015387157221982961309983955937824005932948014945559048808687215739345000995230453704484622612124476743114064241385434260084378667226685091061766723997855319594730162795105185822955556822839796786259877129711101465912968741547027351952780997784589772035320350069797217155239408049844058511736799302266372494244865534486625578349453619097188191564550036957608878703594381426791925403617570996280357231748867733284805933491063447118032540700664317886798905885039745128968008421916893040250512804346646389702750666696580404705465794948773978149620776120700026751084977167972238137162964635060489402826818963999190398535353435124743249777770383328853177621962313304169987110561216858878009045665273259545076583970617751344061781140405219364660991660407029704076306655482414014187698875559590414417426673344978748324953948074023435140888869014961106562794967149538743364012181585928316012690854814588823550632621290218272916324053098041012604948845197428063663705756940152481427672910940422338829544149516318490930833735818706881874922168616435066300516046358930343315907618330228947068663045426587567192913440718935508052527286314997007791722935042607877596588020522086250131854362660281892265997171291315945072455224773555129358926151858864959782516385658689955163834543426205070147663807890037149035395343065111953241972539564571361192692249961244761805529409053570204384052532172736157292117389009755173694422023830999326782067292002007099794781166547399245016769399565879864643264730307410386389485313588230793183067003880951201584186289333064883603171514164152228328042379553207975012412862278416894749477001085274737217111038916859516268321774783586742074080668824356488652124307916379131771249207409228389141968355314184581693585025248227482902125734740367889043276898883890745200858898721504298025722710843176083327958468556482388642859991550488995350120908379939345689578719287774403818355734694532710257019759776377932039637144371150805283860192905499992397306557729282799655124343836291414560042007175400840860521126727603628401244771115839371584719694761541854891074978361381466359784173903019640344716966401745949626149301018188871928450974751782782564093969483128292360696228154400364308995814414326191012807543443469370123831228575271460420230255491272550352243153782560403423079678759843028159968601154466361913647729455956178518348959787550983085140514854390762506074141840409242195231606346934540173296805733399287570040315558781009431658596541605963192241386812259284467997950718066585875620997896946356187367003227074670043051520345822523010438555252194474805108154086317973356295933118176280688412347236949557221738243858834699775442951522766786806022796043217300348149771561925169434250580508934713998165701818941913982723483377219764420668106073597339379572105005078381184783058508305351670610002205868296998571240986636612023102639004872920255413481612238143643362767660809184588263855117604442240920959534884391663140490514464015363501252025542801407557509523169650712117032410706200314780003907388594744578418119844936974698833957801654099186109090033055645386602533317853262065734701474238083356429083156441258094476863350858168514582500007967975413776460900354421352395418578042159687876577824096609246505797827081100099835424594856031247233121523745459985960792166480764410464501709885066582180578669353632693711682526569977226317660608456501625836887790034642799645472449365438441387659160131040999845117464236886401495152934609991057066850712796346184377052044343154494289545763223890563809874849453529519921197855282684378982889531831637531554983011744739597303327566808413747366632574672038494240353078088620243732717642525070127970652282550866559213162823266535835039354838652233682196058481291051636779928571889480348847478676796347625837312736219337023692425928606047453882298463195685507274270411333497815230160576692430134693007565192898779757992615337371462099817202143659158728315797037973246561449622698760633390403775368819975525814858196077237710241041606169630256656248245608494022665104239972181690132887819264478872195749273545997691143685548926872384584322333779693775985144642116450922065201141027361617302837249903074711183545552981229352293953185177606430051779508887652990447648556560871405288784519946755681169912643191724902860196512036486796092791984775980674940877887732264651578899140290653775203146836673659697272776351464109571743936024135764873291502783692720991531326455641096947119328944377335891449714300236133427372983574989545068082646573505953512194930780867105342001980404615187569759891656493391127353771560461116255583245710011797933233907674268000521112954198127235587142841807132492760378790722928507934860272077641447198170723572482415548387412057296523678375217757946300924279328478575222589092330318456692876594991245295828939718271185862735624134361710619849253848007226119241452267581189435089463794329633668903755315002752285297883102982932873429339058765443626837508943863655707853245851550045290641876710065688532575775952284026152884709370260163585476540928815749016876587020406035132456301853133235717257423103066431013554377691343171691860499979807325168351176410075936637648343175142646968122531793718305718803851569865519371930188649529059440790372031514426469121327922591478122180129401060816258003451123526376198639628242316243871570981016395207679062673864399702489465228380590414547957422665193275185998274673001813735710698662205961445372841482160478666914814205817198409955050614042999828569713262647125410160050985234076297306351858647722969383074459646356792622387124404237199806754117956350671623675593320433972209780215911975823006989733452062430356623598831603568905800523902170547960188274265314548825036826475052814855839174835584873181842208418114031570954830885788129119390627014605658478330958004168589741502598273268757041686741435002634642531007559625827169177009432776611287645602471054001124266380913270936961905355548434116818015322154105720877182871781611139030390277293677080042098905564171161936637468198392110758184994919804366632583417043876691924779194613906288149829658777582820557837393763209726905333615513788567714115485149055248294089290257855107759912593981049208460240386846197644729649023487984908437373429672706844866676741672210524925612922174681917031889413466335869637636575387617519413760332285108405362987215438853078701679691013111768379261100931199798851564450096050099634458918560392674500628179063474270734234676954473829773459467478893490233558935090163621057818318836109166884132162700133309040182919323224777151139456791056017618460067224965263232878236357682689939332715402358132102164323931827613816034362255638868849446381677451172891557752563848336691482149750376659297886529796993724470087788608938798232681217744510979945819803798039170859020053924868620928427893017890505721386686887451828319972659580565791060561640006717194619748289949220759396222325686821053407920394314393905478020945238601852591182823685827568632546752111929658332939975944966563556220003027154348955294338610311175337697793356485745254724132465224814689830807253498882996363667045135881266638677289650530264184066685980941479304358550691178650584755114709199981437592102855490250875128211181777435571671318774086744412199377527203505890835811823375214487735051805826475264805249983054692221163707264801742129572039128091668407893167377223879856120239093745580634649423371920284553345840960492159335281993521844338042226610072124666804545932061916581581066779590362177729635869803245518185670846030741796344507039951636190511911760180463290730321618346558735167849811677994385697608734364479546035302617434339293409042537034660463842951059175957673147134280017911234423540936187743567991205379806597762966181699263573576936891567178601081657217143509724862772882172255600414649833391020410721953279581577836678718469210037593794596935914043992441877988254613528694972127384716711627381800511630363022556984425388499799161406841113130101474165051623106026600492403948822196306907357117938282481950295439701688448528210403372102861981462140996711654073185219112181489559599268653502918531324324212086298661798809248621614896416843303465887139482610838945820037555565618678088046848800592868194032651045951967396796735352452911672727048716448202281430782523379054251318107936690584326628537080009398453861220123977016425981732801568828190230132062845655579386159363709842528219549890922521302018536386079670731275462663631103564956086909957622407454796690010039041441121686619703175442776502614776539710000453075832186916890169478818920579862377541508481923835572711299748917927518430396935124290938395407546683630269380422551892518481489872582251345425519171898351069784261447490260226050118782991580540028129635299505959833210685855327218041744038154418170005702524449204635343971163725126573846858525541271162119989249494031939131570917145066384354075239142806946839829572570299552505572259606042939314955324002463021889546664113797990733842946559611069074878448923521926013091200776467524216182477768857075312208613108195105373412951330103291864743433634581340434211024940920254868043762269870747822154051348549591768757266619596120415982333326301188756599832914927119596308125305213432786505157634007406428285942837313508863163485696933867929521841413104596089934069927111014711244551692864519409092004691222387738779670758813436482868886824664296854379718385916403632277351495897010654228555276621454348911649924677437727048868726710595541489907938413101781080857730820673045014043272027565921700989204165370547767171899471007808269643893634398796919282114670572531971604746673681927283229942040237905597099103632485794332503418653622746774292263458039830072584002629020691827485822503828457042901856054007447532466119876984117211307718643624491916853290418276615927323370281228799694483969364952711695593710741810658782233095551796641870612081346850482071534003342787591968258124685565292274726371764124138453540941416714013911265700371467907680235002194595046652701124341842790217445869420091044018087092343222126240691774597031180729323939247739679546206010556447264404350889005690254022133724036377158907968933097128407893915834231533499740483286817879850796232136277209859682544060627201062839651031775122895542990161875951433626462359895478426960607128499799005918464517678232947034515955058417963502515012694518686231671862552321256538218734549555786897301345083889316402779024770785487634365623931083615908096469582520938507311152828243349089316346754135310167274376333372310872541922456326612514628702778645059914104255294386887660936259953162248449605513389947643750370837892394402264866001532274095360826471876103617470562652651790398755664428784598771596866944490384414045631312080901084846502791217932530966781523971971195820847704084805081838884063694156660844788569429675313384677331397553719747431111216542457251053725842344483207194680531774053074515508349708544064749361207943578962118187516503274831082011873291620630515715355008125340299069961799213333988064711102591977030736333617688165477986688912549842502167292730284031500871037918776858305674163218490934570511212250915377783282648215933696287007820243009555469568115569981001341608858698170405179899278305016129911103787677464683447607474204646805899351305564197656272614424043989353282026204866321034006867359121288795479223719876527832840489568271063485135305732499644458121672121925491369829460454889849740980600374882734631631538782082707803434450579856217296866564952018619232333854590793817922359647569669247150882233271057659239419271536146699072733719443619164980771849714849147990246689681237606293314320460297801947954605408455865426770035634132642970719891979618758580563414765162173317964004160476094143296386997921982016490339926473338513123532634369901478479881378703752714372838421178236978883838151966281604327527950108965924825910232248801297735884639049924073494245109701225813849349725532998706902449688205575852798965786680894479350367945779233502270215633029329590412232043642320389922880643792917167701122303579196432768198605801471727879576259501727806087396624432557279468795049620583713246931381220121845706205759644534835900963994323075146695733717633412825246130790013321601621864509533827320784906063596452571427315991341867317972342768843397640044528864182709203606809027857469834848872094800295437216796538252266259030241688845096775643285412498650349874558960057063252846895462559484222257282916314331664133293094591948928346159483667567022112831841979152749135592518986600555713929103565636187392910385193585862797196289523312598231491939058518462426799479485679016174883389851867240130206858346715499372990894796808795132182668190450231641725689064935361704899820858552250762841103842076509904850769187403653409435266854414729000778038686834109242291284037884862079625981530291708839105074206748734144375528101137620892282167414009660413856915289001562357830981361766222505796790778476726969771958918668755020203074557923198706173030417171968150237904124461522105571756525191300494410452908026011972169305414748931426478410803086238218929112422341508398587007483284601073404352746552610872465561755872222147275351480580455488518632575416145809757287299596418296921795456863453477784888745127961229733386005296384148521557474328762057722785355940294073418796917142479346480553009907463937183599771396288778367164053452899618519678384078562373901323856133498173347993652444397774185768851338922528374337669639820578184611732372892434803729863993366764638804989498974470048520638543232143393409905812202430583952555820613694830894566159526377509592969335043826948301076568068133085081059873820701546787484328966558954277858862762725853933878781493082632418145828837460008622293676896651427755685739251821186115124515258588338600557398426489754009168210226558082491509237383701432252712218871021624081191642396470106965047695952980522157719962543034914827108829353455124741465117284637625268168059423917730793927101293606902799640700090427728494296372927844582103282557085012480496899335419873597830099775832172910731624743099477419396619804495098242369485697969179116745310501185807250797533603159680522290970257319064546799325695246467421059567674683886013746331195329435417294446834931352911767655804473892257982554985789216948406755600450441122252248243511512443805421325123484180113845051020944083348258381190504061140005790998656169793984418777938833738560319603234939448704805750858361868017638480296820948093605250499594090206785905541811964764865537030746638514784737498870714451085590294533218543606659283208139845967721057605481409013922480367932301750652593882235333573189438980569005014734679007631494975368927633471470202059749475976629893200163994707188643735458291078440069212370605461127663620143786831807850213796193041204853372857830317612175439157507524649565653563399108252556011487953885851451311504589718750370393144864572633466816526062619895205637352270211493793869599431233977148166511044594467686361233194718882015444935841324437628237006019025802210716306735459558080193120308291852460031835196385382356908681290345456821342365798690270909574367779341032458711036921477795343525272780686929548953944021186804107496591496845819844882179492115798950397591858150456614546144064153263572034447601513466961235166521924230740224338605889802297743620806190286881454688460141859199032413599680159864054218758526690815320757853292931387050325471590467264632023628731234066528357574873839326520939824803582111405319941972203934960807235935855530498089544799651770748797941612321095886604811950590689039021745432637975653398611557901192608683752606580175821955809186865413857880362486546894016393508909765269448409424052036995692547676097012593440686403334540524721162724810646500914338377499186685293992401369376385481210946150202430237723249479893204869640223670694907188971820440628567825259881733793562403361667724293213267602742938037888902552711641331963724913323353798580477678649030808240940391778664880291500043794754805547235669051366907111822122472709631162900316230230144152286376618951301641572455449333527950912245141122638134951115153826081645728718635051867276333305145504402101635852106790274449177071869536860783800398035497454609838227167655629237318610756946625509850508547551635125472206958280960209478231652526977830914085443984172752028763378268833643530467086672350508233020863868650225887221235749679637001384833931224656291204825796787288520537315060341538234155664812945043852391873022930341479091862868642016455508663484470149234505128266200287237738691242785918669736879115775725297175073886529868488957733240036443279219303798805003095568936189049091262009890474157957339319945990165693419644628346016627630839877729002182896461660901578106658154865629288760923814297055778311581286429445231841041994230090982109539942746459207700952946966232363096984363855838307429116544711080845460789248977980284766325299156806020692892439973443460000990772667611693663976923262441975188922309007208868985525136128410540962300527943070559272243204999307982674770207054838530343591093391691158610753360538771032472133738899371554597407293072251814430732123419834624554180788114392861733118217211682055692727727196911338756355643874654671822762678182507111072836200639769997025459349031884786440599848999831268343286907983424249581404332541967559433275753958916231165617859936105138655706547279556850041689639534495664934281379965957889514843707761180334002636351011421445009873574639824885928550577090783169686255685071454135605831560021366745294919560333732150940926547236214346761922494712369299056828467217239275338948455736111831352219334441597920878999289110070716687507046430851945270444326963014725311296089815678841811881305493243590409964987383308339207744574901930778391787517835370047982921979528126381759393000727601710185698608903483821771420241629087923579824940069916916263379411106419314511249988343602742883826606415720924004778045835947106287319836843405226452808742909218602792602445638377075213066492035255343105032572593837200925289712380364581166200530758885781964689006589051683416440142787015637023278314289990737896740130712894029899176929303459232989249224468343747475476089374833428132350642089266736997082702006638269673021457618727270476319704233155963631494962453303270099498668286531258176684378107802484705887206133810774978592152765701676688411281902185040676881626457180539360797381253862378224745717303520670460079529687087228476491372467265878704759404744693272040387816147575592065499961215288292654171933089039978931374007048768875325966318064180958864182554595655804896369242340489998730901125488064773692326362463447616031928801016055986790358790233555508322637714123438546661134429346358410876780818815248173754953075940811606813032758818361598298898494657659465135314717533894995587991860518113161939916008452953250954871058146968352152316791268883221552534324256978478738361276080621197422720667345833729899498178789891642122351311124249308983178085016480041133464836018952702556140826844546390253821502681754625547913603582312556383466718344317768991370290797669595568620684530679704319563762962031780454571478471503281988900416232661225319362502977390845574832980061499379388676106111503466965155731288592133862122964418612709239044679717948365192520846631485394859943920065925108064341243370713902989539862660019480922489564415951575313832859380248812709473425876569860140904475690612469303420365300810803444762147333365540721266054926914042428243215206848678078577171768435838303593847161081448680303225824570128519508948783055636584950134069029708135897550592862472067480046322488133874352352196311805631944656012936776389682803224987912557371256834671957997925840597506629680745696393654722455996400491885582923548343019291620011944239094955590347321408150264094710274314614070014538745978037113496113672512725520599164013344346016468527374368829773689798533804441491825132110712522887411570674310647307441321705909461133903288837680635953929790978438183676042979804577570580691118226045638630513143526488418143309321328245716945915278697085938114530218038644765736576654553795490124086412725170926570565374423916016705369132036583859228389844446487975458907397675923472207029057714035221794543458194236856748123068026250790443574319823103192579481579487341176568579758460880363781732292934197604247786277389700248684347710014828409809336569198019487134633950168552021593964217949174658097702481069643905712939984004733913291189738160383714083994923864126783976481404588561663289074468054895351287153656237341354019313764877241372482143560444542917948793696736467920640485579611759249029793425465243453390416510499675788916399180161353097046182429547909935090993486056294463325267061383826094262345238349385250649204519726496518265672669988374351006861206203236685509608014385354147887735638399735587085750827728912450191439444122270733526369358049314232330647663077318423329218279736296671308940407735510977041751013612431556670886443140842556639610175330042457529821985066278119829959572427094666561190455032138113782814782768944668455337567854022400664535497387400050389840677310653794981438607482524575346149331592805783772361159634657844160046236349521685545831404306939589937736494313286591875703888211941973101767454678855519253098144636761139390287676285019296353988515856726147376784646063563771877409778344124705699758662806384163458928955979387413765770946299095998457257140589846399287679441842267411297889452692631824250469155775143958004130631582998555960501147885774423085681327124578139528567199180781295904108474921737499388809540396132651393872249179751058585930760364718962672887303984946546229589161018624112511250903011511867369020584409595374905073356513771189637597979450443932290755110424621375950020701098719332576723725164404215916724436881080156184022478045333806166524356671669203628371152390746761952477975874309326344822943543091647092160218708920036791995165972487758599445865092324016387459375182116850142993194915696345481682545223909949705275848342698815480734129271060325884568993495600301752925631207053569813655893028862151915387412282532273266983050084616951840590755205061811929434523668334256808263180995843018641871775242633539879081136319622665806704840722664019313475288690919900485707684624100915580200898821655041366453103106997503141679794372407716644634625360712063725346795551909482320302684052986124214474124988343198463817339464842123463497182917465336548583099076036601706769899925324113131577393175857657865500275114741170562501341430790604676696295488124195439128027171567218238593486993429410221299342691080027061723152375744009595087225463498169500890708136096082786488898054474936873793466597659097127693587955164886244461754829069553789583008574614822844711793715869215447138486990024370493774617942813208094973143203148576416523372529382739530267978103007392404809253496041701142503006581505705733372266772401871634084590583435392096204921921238703013008143450383763586497115962770818594625584654253757435319681143501115519520372589957970720899033644638236036695381939539438299071258232734445798362631258466535821361470681267879026230357428692588675390481317426643221923546437913818345276925721899529470183579502036864452218443993433283394837445837232015130808972776661968701830905740152110317169051520284943995926247353119148305914798963345052113215101424713617129589129681675830652300406413788428403349391503672086054432341959439611413715362799408175085021428754329244012226214784672482856536549139291542210218004702877540814510816074804628916810158695016616880104369582213867662862924340823649600796302772315812542905147789063857831358790294570874390164831851274655488512688989199325035057741372350871650405640831787051435468006953562987327889919572331011530211445841089420250104694723633768435458688521402125402476547466592428569284470884824696017879852754659691345920482213343849452865026083067140505200397069063812623579173399474067212463761439903674560601669542876393515448920887525154670602507336262347938023903625632640233122027160383059368886064437741925235480612893459532549410438351793585755267809897910550296353690088829742060412069937389684816606826080391148467852671445570318376117053598506854176565663256776903276997232559492675040232303154462349276150258856632332953120272345747880319262438690444051952951373730052882119020994364932189395776895085155742445903162708874608377746678302931355504038238902354546593874405904790229078012078465263575619192402715661064248673992153734411696314056957745599319509847355599048373331021460110317584302825137747574445029602599114425985810420928286213011339893997127461197908315413053213047595535137315502663405975271278004776015088970975447855969934502722711067308144047700919695316690033819674757386993255935681535590386024580895471438275990807491877296149816295634706972347132946224114790473714256235471077355153937852636787928528795992636652892785032391571117080929200022879575184850134185298050066412359602642908171880227357661096833995064375133780134982163744666866561812107213465975130902399641604161627084297062624663951685669968890737448687516068331910454744556658449416416741399983801156103177219149611982296341075918155176260627784394272473474666599024307580330748816252305570687730326346839027866859675135698694084587563531214983695726985075370822168011167015217185236773535403028988176640499057561863982899324626598610809862537669784872944941224478038320358826586163637408937461727982399753764899126400575177217505039283543896227213037478295729264896963125901302558132376279552459009357378058359842833268920754030080849230718062716253020086419463161403905163641760152559859995227572051590413859369981241517359265586243469661235974669139666531738490045327273440352572131799111154059534934205150287928567800573151449505276302532755769199060302275673649254761387392592380319772399533707417269797352659088112150893527317002521749276715791360899645125823149488725597134659826789269417180552036014159628239139788495408488000473456498315334092097603582671476574105818286392698292296459809388428734208749125105912734412405073753829664435927828929641585775636634043475118857665219002191731352556942257835452890804052352215972925654195452001577297251607522761234689857600088595499317042395225244847809501267172637781869594156628833164598833715780289587085090707833700499105055931846834532716549449633819287459009928635905339370881077150694095598048507954732698248299283201457932124955093467181392530170061277821681585115457035452691252336304889262076231990694709087112194630357387040857864747371308181075469115853239122956328968472640067761620418834101903202654381932381535124589047066017052025666592982697460150831501413333167637602519879693350702002010013897808149299906730780976684550435982963499088316765402657979391788657146977181882221826388715133901571559807481689266579272874387435598704604769204160062201264534590458082775342581731702726756064319048532246782662678910834729545808682967568508700475573601826741248296203771994548994676772724821831740767566011159140799849733979451382080144318327734099772180574098778655040874114807891060728333099097077202864177184475382893654254170386832516007800252752681865163177116536240923249171225357153977691568513651629975065141582689970174648406617093850042053413643026702704050246301055983124343614465407703551662660494851121196544995222933092240749428783658551150243330190206660112733001597486526419843995601253993939335122558607211716123133783796765744806849824274443446366747104239328813997070180532231397615848526877052222706489655459140111077288958696039964269172883104973782170488400683370827495459202761099441336083282768420650483417816689311266903374384276283367232680920666790369187327511386349817746797886897468684977448940040694257211185907102791519418582108411305837340219342857692130771422172010938836985110097061459191394947248829001288480371484999581434517041837247812802644272463632623689892429028153052196072704671946448123633055821464687548620834664845240681247266306343722722269801489510025415869315337539692142180951274192942709102785773931532036431205454983374542236399838510842809567883190168421281546103871651288887442481083592948605915011688267725824322171564042588876709399153799356099846071769456319986770305417861808028330040700556436303525228715751659299125305429601418042761969096781211228551040732853569121611778905740630007553039847381399276187955288366341690591131347280041136692040971448991053539351162046718265125052953706379157883504923646277923699544276446960688205211073942897855413036851941023366931037177219035142923411813240232130860865725623803235675208139944930124619485075659340172081468240506467457152004838263455917893272422443172998614176777235083680081522393735431103370385193906073021254708361216253536763346632660270807926711988857757945021497714122364701722127741179657498900515109642868387882688919401642829409726216397868149257390361777181236763814389711873765947205310005943063004698368259692665924205088963845482522492687628055604628271360344594676519454196564887611359144388290577261884745948973124297595981441655489858327127017111616253813439691553039842068427301071673525066165605283616109493269437870784776285659274745475210561826274170718134622888920003784462139002635822736388333980539750381277838455236114256411900095385287717653914332341187107205354752846043792890580249886496919922777189552005685451171518990913929653674950770225759433569699716479452306257313795578656122064231235228294166745730554004128793264567115287480634902240431692970486247052905264360572033308780152985740932502198571125783129291828474142238036493514053757321062221970960534911172794195333277593708068344142883939161819197286662156191577268642956067828813240870320877080147959471662045500713147506585345464587652842819511512812149351282972592231254121937465193132339753063577779821461723829989823733154785043017610229343726220160249765185401285792803456288677955281541755335829523540546783863407087522323398783305138175990605253731058054716045420965651740146558338203736314628244034382238841129322933402371358235059932765324635884719194062790033697123204884118109243088240943474731781136933072658158028845528049604489878878935369608123728373905895526569434279224567839244300733391973280151665662282003649063285899423987193094841146974056558202566077875140307876984958384150849601954046351871983183593520055180496811245441701843508654433487945509363367081972934327615532910753222284506296866245375338650404096475160957962563491277766462485614044217638414854049401433274393899685379264711081330972046300260826788864923892917597913815288196140743754018402006818671119309255000308277137436680063854262170794329635232698877022923875869204087767599105799008359522845516006285246296438832532682666524988310864087261925425024141949009939214095497335686236238055491302591740306327704004540749292000730200966339248009577275796536691227872483129971826027957888989694904427640941708675824323371397411028954143342524486781106185019203738125971797034234368915231217057456732721426590512234966128630470573685100200998720267066921123701701102614145926673054683428926701852223319639790431850338177655526432628179942630233033940267265443115324152537008863649463167660063629600458418894828999604994317848735732070773411857683175929662369716764120335714827410381760432156363062179629417312519421600980027288545493089755051464130344332997874098991273770782031973266245751376529956237789157014878080001199389996542409256829761525377071915820990292961138396232342520497294833455414363488890243504709281486273160359717790903094037238379341995385799363326153115141582451203684251702376352994226237284654589618011032872467424654982041172026606948966730911984520149033409884766912117512407803814088983498164912895278793477570112201052674425584598900497734809537565066042553250465925735565979872222129282922876095508569941355454306701270897608703457031961004896614909267821799096031085363474634823138753504350798993802571133900024218642621219400328026351836614427785707972840122278705875096126085568001453949364551458335014053824229575844572745685688560301220753464211914832494787709333482187185181331431151788765083864986058743889322022351958087670016376048174811977722258677984013229617099222949835786483126259030014789488814320516192319414480841272684711396256551290351714190961312471568361159690273170489877887339109273665634669706304767768691411475811043020003972849580888722222005040318679936292213351838627802667388647488628949932629565937246915564346820238553064058374663676051244701381212656673538007921948284323389319419391127590869942761183823151213435139501082131636553234266078128407337931630345667659436935981531997012468809438718007658372525041175202602622487964378632785204221979527258761675932955663742179737741393919241617346158329601843008007437031623513769323873500704222240543840349612414602773045977601532246430074544106084362671742425716802803434732276515071277656902736167852810419100052685023768373370751988266058517623112565521008327078377873125678389663549503950734478650066808491310171561760097947089826213187790904370176027297478972862655090877686342870715394667476156712839842065899606799772022906977321812389703032244976200480815242535161301765740288369983391124165279161861896904644690058374418549908926418179493392652111180933576782797117570449086828157012976947930773115713537317557754937850572583752778933872672903659822813597905519757950865404140223672099110873669866699399299933879512289179306418173635206828919249384864360005982896364416884334292856677834366687436246657304877449538397375386831583694870846247559170576280240309756065128346565072945144972087796679072318392732389836887974064557449406263127918790488549458360258055965784940879012512693345092531278651537867796300287083470272094590956801485590037582074292256818595360540247133364471382174575575994133210917312630246421774040295704431085226905324405472761896959851845973268192350512671888623889739356658707859914788312289813481631512492982418291676537166309434075826872087183574543671839505940196523238148870193773676126288366965756697728415665966919913441095179699354170763563049440928547319750476963116117731345504011131993421738754306703460199142887518842878254662693130592601792274627868966106067801687524922084480800131769495056541323599628930500272128418837452665442715294047295619010777970654823163181864797578835316995454005225902769173340467447677184258424575764641781602827412715684706579262746808675085608208076149951851658057861364206741402291837789932773136455190657628518691826839473716779258193908781396537327311674772470351838289750135666838456716799512012901307549527925445027073270585523057322844915620248104323950533612293170656452195748113586512788870346650443364445453405306641529406035895733411022936650596454040938942144372965941098366344454539488575373136936961992937511842216000069748012612280929630840125435823487076942648084178026919049946344509778943097778402010353996949247149007415158552071582767409179895466649031001104468129379732287862843295742875486547207854281033981967009299249206330888817038162383398053267944830933223788042564882694388636485917533931804974520118054753587597404346883304327725440932937433520569869441801631252360254365117893343010803335156051185001308224349933132049084712945611038996997344229587881352254243969121556061327022423758362462291320257065796091356917082149504769354936120309845816561663199670152608160770519041786223738389256389130102594737506181896216772813263298959548809949349863489605507154666910543813550139675874239751269502775778353016862213178934981971803150706929399427011553340855965134363094495044691268922601843536435015441459776557819550965722077244230115495427179723834723118688449082239639970165730877398824794584164112621439147599910565866143968518146894356201488794897957671595611201528130500264073125115705629895957463922832729412743881084423540994099520048476927364116876406206084477532130092717393490924546802200522098966780035681158925502966569987162699724863732836818707612356954136809409058831112227640974785300856890829159711103683324212606982409297590741143939867130089635606813383690785428587929531813840284097520160727176685594055491499189861577476481744696918804467359035660176810828537602700243409611303311486142210899828791201505929475939958481290519034438764782075926315900589560117751440458631082557467983132835584915216461046101605181228398128492532048885958894161550562823113127540447721918781685129827668395089086137598620554755394896528384354576587369375989677987963170215169691545308269287027040676955680981020235039181465527061884675533459082448812317116197883087612054912925250532321939832408431078489645870141741840053397370772590439536772869459569720284502769108053725784962088869762800202096709041268691913598609504820946279558995720503559711467455699126973851852011562301436567127630595716636184596645172100537574630042091206938985450221648318286962509586971315505812026701791400316443109864685464840019054639407801066472440629601795764449999436786901473080583197686047109228645557665877386631525335945311847237705184544641252479296712368673156571468717438505134596416693559388832474901399485468813531985808361915170608576493605286169008766264283480685586119564016932876383325628412394685165635100278485235998472790598660870307686791558691059347267334163263728767701090136887659705372256117118798953296370385283169275371821388744510543064481830592672520065659051073875953510806296732817010320562407891251257668005939728080750169889950752825450816653015635664589473711008551273425688220549904101341997765780248118169406624971762964777096148191148924497352363836500709606431022977385823600793468394909249720424863418661898236152147643840332038195164733492556759215478175965731268766165613359651520131425187633215818003738024603935886199113059924340608158888918188225315770584128064645360558704019165738027840741708243470163781654696147550057893756617723767429995539567241039728431684675344912745649160830245197208463186058768178012810307532766014838820962896856557018290066791796844883014695549647984037447374996671275337834876837832404048683965418177491762305743067281980350822405692995524642392053310568796046968940090807898280746063286294296551564720201863027882519070928103828378809092109719346706772712509012465509210588753120177687865824705447661974776903985505063307077539755448816992441644597483648458290059102494745498315057010998167571153811296036708489516245993462593063130112185323383517520873597685289331237450120383525978569645801525210815839035302141067278028452914291503951247786719569527116541716220927001999767518198747690268943682780143213654385786634384175467257051071053763669861096868063797349050680589421848017221773782462997587289116985051512782413252785824632581311914009057322621059672563794559897773266640044090357401302919641521474259211298219488178430905999586279929327645719356264133416095131034621893930027272541095628088370438804153030192874683048017018965972620593134494389965101859201493051779145740101451375691166763161549831507576711394964150538728187339145309275697451973407501600095176264664970167436671943119093624206890683904196507458878530148672962101042153517425867804533561716940972416739356917724494090025298616077013868405833683129433427653318798743275819978550999070175987312164228497267351264547592718004778045543036051385600652555316173621918253617277285077804421338708416480703456598809157570631790205381908675181471550652675948843348578663178168635299810174668663228471656790569572317073767484544713129079966112163438532189296537398586385722636844729977460221633769631308334068396664504444965076370887532110497347446863147890842762759567854196342942058099816765391131756851462534026844069498918337699038283045493037407577535945859157296943010548646027623798213099958846298674388093579775163692934361020148695436899287326562799332263904030866812674483848903003340259549704623021124968620536868247402275044199277555730647458477019939665173577669762925453404486170967951060811576309151758203986894897636756395320375812405943168006237558550683954055004933392748465611420704707015532548579384215964701609174858419283019673303721150332032946471732454315817092246322982454043558943997045134773242680290151654823264600169940823142902900160792953681480322131458251684043191601811565133045093403406320055616606263681032266909273631307048874754861912078112689182637533981950485947105604002849328956097540896123481377100188078203227242167308428457871275033582742735515859372104901176159353683248561321984214936990545094679382365031499706717851139558413163934757079693788395548466013706994363110926782187519507624594611407062381051993671267958697279292126694369398250467146389320670610314400860026057800682092640130560438067509720750044988214378355119528438589356383057387116212314867478490317602245511634084477982642629657814651014334242256796851078851257670527454309210528755724491529366559460169991722948338114955854029595677212748823741216092868837877402449763706299846577272224526820792195748930671277710826695882625414956996214077976780469019111579997213598477963233279410708831438903378236815304024286011826982433715008912983752066602536095867738035285377614846696294215795530196932071774312004608706919227307753980776833340419379902771670548565788150623699734555971410299559811717483070591980974989584646328075603646133478377203215654774575853851940638510232401883350826234995754814303044355927546439742171431862779042830255816885659386476040209587238927049988846674913796999790305772982611874832514217056036442221599905507024265522873024802533193815837091771733724010401051296328849703642376807621625639377319405971189451260216194947852109247974077273220079254386022991899770669239280745711132791672234796643262104943196082687289966688185449656756282018383644384427121090867248607705665282058871946762291325686633138726574008533177736347110752286877956811476807812650315981106937989455005336305871842923711692361476695241522795269718711889037894942837153840061511308798315953369289665677952858479469194640359436035938948454766440722611145927238871300515501666010131712907648837723461178837003473271526492127662707928236099907783546530886175225129805242387782836186437894417809767442582260239090497755648345706988729939595275261010280505952613392776968242011411343572538685759208164451732573185866993559112045705308007876403671126569103136498634155681272787145760576053471009370617792122596754702345245947329184710146632209482647939068875709226692067733157491799056150837279082760151216137334880248506946770152226959926870352739045060592754236464164418495873551753224411339548709522205862387370740250760100397422206274626427996470988101037288996689952004696112544503697287687602238412089615220775885641264402744864656649909936980860537725637497897946722746084034821340280427554450410550560388354395861265689507345442825606903464936299251719235064692313130841219866572895935906660750632955038849315638052992374515797298182166916112956346212065202044461778627329068641395449457281937621686492001044088379431562879061949873342864008718326956232707528204775376048418571418415990808521355201460165754583346087484140177184275854293393762798959770367817322569534607325557547291119921942385453996183037921526825741114058678420635101506243391496420228142719727915555560265174972743130267701171184033020808026053838700127664081741071794063390332843400423685979865948341862262425043990163580431012330752082973287572406130544439190609334628872515998498590532718059417422150150425762022113744982277955104011463532736826098968512852494522424583580227564426057947508979091224971928720728851962018850835615825713294051774501625977637294344225257169401533414293065922081066776694266441017785415759669076411304077412926511003032635587583110379798614339608114420850542041545625723234441242294898243837880969661981320892298739386547916320807406094266086595122467812200977803826967641730381629359559006474136067140789488852076169092518345913331260831744569017253700104555863646427606868727615223800826823648225999461463885357893478808464202797435001110001178873316350441132678049375400050785239550652769364957987026402423193479353926070439791522207110709378905265310068587126205935995440649814845601713322306688134007026842331024130397984395022544287243109510074935850401207866418481649202726193694775355530320649934388084555918672201248494330710063140164236305623210588783310323564418093489019343498332663989495733321445758668565816938183766250741423035062861362181606872221152486926500947798296842547256915172246823358463954199657996619114324200823384859373175309805139842932867363842404545678568742933954774353302700066938685531631301120070557862843402263723778177818584827340806804103758716489417954714969412487431261472995127427287218990089371641650871699293547591084713012062051051639119854957653345802696673412771756322931198622358431788776741910444143719454571176913792160005175794207701167839068513899905983851915533336501224801066264258405479001915937260328857471848565425165377875708595601786426207330688779215210925314021325922310759689726038285891618074915254036228659819262802770664723719848940594868047250788066987697437023839578218063129645017037807667928570003788923951194074207089978428349257796432026545903811413325702821011065619390673426323444261339496123770159971921952741983571488774763377077365488228153726703104953667236147305099256736812910466292951799826194342973625618447078910699585046766786359185050858473167757951536912732827881097879590696906132871227087847640983151594157550008466784672110218102374967038635756670809259526629168532540380873431871407702995282757498234385701263812417072774093693845014761787731098676419305981633013761438881519886360438680897362592970356894236518074584235759411085477991981798168864530025707371977770035340067664702979172446282333061228409717237051812020602425094289816098337359813606578115490447683802462511791592374679113255368240172307734158906551478707175662749904072828707739899121586030220507070303109710580644326638352907764799428045053754921262670053456895885310597808052823322297654717917461433594959371907811388810288752545163772384707489341908902950185578466374965038688221421747970560696205948576477408842369512320336095055940141042023194569476432545882667090674416360884404490379525038755984099533836003681392177742948923393412390835903547815632659781530060650928597602893081053953192983400922925524622930589746558320876000733706462895128905462325996568577153537932557028889751048914534121322046792630185630267218795702006658838701236542200700777140448443097869545668374129130892029024585212266174745095645713623268095756269844799130583867734353970400071590761956740274880028276490469308408115509724325122169723868483799110698884601313741045302680466603316270668866657386932253920655119183361828753488026534829089305877616121095790308678182395261255546913744698989605510451753273384807958159772982376429056630706554442868332017548850184111499193916963823233084233657428503280789976217242324135822966985695444268929816522299226978030950944685221606786223861323307684392381324946702179259412766239308977996836958205163735913929669832940376213265290451146920554671550880210738629364892319370512560871557401068203816765425100471803066249566229160840374320514383014541812894230684774549443649030711753504312577194512231553820874467088384742617878517987280324672364857548999916258983824630397945729945206282884876075855169686219320626929447794843597689860187427539335136643036474506982376752849411069632777592704573013219178062165712414619385869902988276321058924782417641603707147203587206868714468048816146199932338016492534405199050290021483137437377095148739514590551511106564367752665786016375637645775004731270010895003837664814184116785598930216555126100468634049682840978664443597981569920416670948635987512323477872660970299877070108753146056954269206466332725731002548978662540403697745569241195232809965011337823548075844877316433709172695831242304609486225883175092346099393785186465161533967904597005008789510985968661732109938415534369083360530427380799282718837335937962885666656509846293656374166614694847307064671542542195306244414637712026356316514500045020408992811954294531412836638338529989804831129464407130068537585346165258602635564880702333460093641218290330732415263143662294770367390771745519698280927641386261782510792806281821927097501759272016296209389288763668031874944619290745423631527844428199875647677152119345424728940081783945495786399145133868771978503332375802460630635584371039045226570924659095426348035620704229931564819986031147487957989090877306590353254380079508179713062457925428872159372873078236566217950024598974744056252149816469971390023852484119670188076028074811846041382041841042182187350021707430622003799739590948652426691771055570302239328775839232460284878801937350765340017012011998742159894430502155473371376382213895684855913597160999352174131497536335298060584445322945173494279109855454442074515731839050876739677732151980677355443618657265145293676852143888514377300842234900701662898517107040287903566456470863057181903652100581276744371786920677066257174135977136418302094413786394968435598421126751963661558577943696453201681115999181490530826128426125556318726356098810760073349679076910487505352266292204432793351193835012448685024101096614568607852718267053814289834565414971473577996268177299697477922147510110733371411643194728568478966224714310449111890965380441795653536721025134698867181071002346516630878259318571707426902973333897395884286499021754894978311488180364527210412398424190760514828259980574724997615629389595978950936719531634330621762503649699114298852698929276633391923374772610443808572961083078637288911879505503977750299116562549382450474712767548460983613848320126470142522330364381009029801417641715100332541991106446139885234166353818200404523070042444187406264786554606160634021303155796790515143580596138083616093779488216749089717646701635706367719377341659816153758555140004703699317824826546781344332422304101925014024065152091097635747293736319139541111163002288592156324941757929638742496116075384916210077780604629830317422971312502869035115330370926740986501836035295702537012417437317063951051196962826942851096715662816342790060882363978836617369420400507558242153924166576711409868415241418131198745423443087083555025827483534985808158171245554881924161466685951895873913033949180501742514531909347432114024799009516388955974492924596487977400418538426477241374082326366355186104325283880081956833367859339352032027448679790503170750002096327897532993447049108616018295370485289921525302819925669257418259264318439539653750693843784694986014354286743658645084530822461225239389971433412519750476002693531490638528105660651145229545401029794940190843726761012604567759768324586857681689383826939785312201202098109762540410594587566159945248866452950813057038118055474330156131890078946020609237532065889983114900897240299647629159639795058855944278972380239503338721586270189294341262669122992461820801165643716696380124536201653161712666535990409163655613990745503238437237039658189883020109830863901309905647010980562791640104225356084120813776874045096642267553667325638064256245051694050593531132181951518330307484605571640411392252585584356070693525556141050043327278819288554730680941366511238833521026557212407148477812130892909730011183296207394627008608998825908547854522847650766807186646280390409428887171463950126543830890895135521550313330111224723618963804036590577451893522627392225111563030551492160819201709511732186057847696454240841051350754733432650064047040456495163556572412380461305150195215826790256548159477805420839264674373514894018979103019995200503327377951738753730892182117047096253468784178231993997113603762490027167810607369311047258799066583559435835080271140523726402926906732784830005838537497808445333579568987965608409304272657687588170285396779631037763678809018293817121182183487450900541847898538839250923568298686750897781882948757644160672791400090768392488918225848006707698678654418424414232737255683434984972766433064466055026012126190104093102035915205564695109002479683678425783274029387341800950621769099817676560639857624469481714976987177394591398855676628366718212200432577057266245732102631018304905154515154360192665054649497734291575236205111936700232103938351827730561827877183313393044579832483431551506414824208621087312463212198414722993929178865273819505400066152443374167112210861107432571948918919823538612269313161960839724481119628218979473619010340526201981751761217554288186304606312830560350893079281136848195321737323635273582848013062459353633325753740651143601295442004974301609814322476723680552574939544165660537908728591582054133186131850071264240482298660441248448964589299772319724806758224410171805148208685514590258010547204236619504704190603432165916923201669487658778204309329719072035906621304721885066457226827236731536320849011153445875453494812766786456065070041782599198419498856680712262262011404109235278672477718457427002730671965806221676257557902480014088750059909514926535838009280619200055352201345072373184905708328473038799013344746830668386987328572723452429265327594265553183598521846739289609700045460340240997430241729730198283746326469296566627559004960997985073139355919909514456872687221459784779329532871038619561747632926411712434281752902442639554058188517285688165002546536423935364668867493163915496998869080321202596727549747040851008044497936419781603115283323157943560872388836471582505567281441898842864227135212377909004424279749144266973241499166934063093777680199561416560434119882469908660532470116034563310842056773637913548977486024633603616589356274342905560181112011009180156139124351358413742719886054008675766843361179385648605206268932471815469383891215093847821882743150161754841167762581748098538306686382126262834664427153089839341054599204841704336636640972479406751621535701744831763462556057863976261533246084389539696648049688106088071270953108133233019865129076825527660562454562572979426787080684236223388499943856890145299195259175423579982977762129773877250003101785425092418916028193583564613171182464382577913141356086567920319888093908624683005851490988701391912281279718358103784740806145449503800375442488204480885971722139526849515389972770701756894457207169270700132184094515860399663415382985712669060878598027352926260737856852858797111791835010036505704992247501721118357220069464539690156462818316328956429617872373345147964644113380247138598679054122910172437364674511183374800762654392839894002616739866880586284135589518557502534793214742244956857994975605191335287595999609368406883583570513132184983014604199220694100881824852826804503551009998343371276200453220021238940542570026645125857894759232068843274246975041313228036232485433140482089494086910874777477512781373861839523929818770697832168208108339480696052213389392360572324202907264530626316528516561399843853468579667109296898604196029334108624741956340091819927917638789840049383069052494304072255871688691844695377757993238327321925661433242014007808891155356655746480429186420794795469123457563333729313101038025201160257482604463735377061606578438091813510639754980386154767293039686376184150699411224853380017382541784878800698818294244224970558543157954618463865301135591063123206921681748402180452143808422610058674796784759785875726265830518518670591896568165478426499125901824657814197163627021636343312961448584409659455736944466528322794846856684096882678101887329698827196374382096549762951862577490116058310092530359295756710491578438318762075300605002705512380796302875345541330825267308731703914015895047233187878638664130678440952695355635500393107824718822166522820509663585519105968605603352858170285877637933895317494473723478493716991820759116904043266993862441992266320419669901480423687443459186432318427289232826463055421960084043639702618881974631801768531882423333083458399831352674821157805600776524862429170764008799320626529828035864909903148548274888879762326881071001930842928225361733949105351543034207212006452412309881236234354112183563940128277029021478234133564341520019942996166422253558597344152975081756854240026023350949073083113369655484983512681216826160979698362353427891276128049997765291109893372166332381018067080278489249730630058512690224956161673224456321468679350989140286624944268225854052992425553152921324433948819950701890737952306062150822355408615113564220415658748696589392164937910623324639574548222311631841378387746431057621914421240804628100554550199006159284645593315575331519392803137638480661374136332845566341775298140026784818380825611123388901424259421080165253248493327772563436446736120993395179417147380729641384182270416901565666987072301568737913542333523127597049875860615806492231354050499026334831374463213296025909389636484984011990394641622659941357919175605080182635343109277089356473274802445003737543460348320309630727936002570165908264498999810957785331391348910303896372060603093828435465247431191836509476935291877424807825015384244359086213555522250409631831490360019403723092756232045860616751661311810733089102270157124425140429626246521675407713587995287316765142052835032792059999980368892172138955625265617739483333228258370566566519701222243402878717763067948469737389977904503746193405327828858501308435414533912027366376101046589985149484201084275087471838892784989486732134314292780570628510824858991790883753514350773999160604348079215610628944850365086067625722699644083739855754898013071237049688106904433899027914700625595206894403084131682022073644070627094644738047563626208257698157627166564563280699288047968649693197505708697720100944584742981755762200441268378769949819466347097342710037096380155919115672531988668568350230961382165742400762208803335607725629825713447110537810260132865192667334318843589557969466709553670712735424795111876560524516504380827752497965589988588468027873198122141036719903120375756188412720153749150835887839352303228055695766831114031645908696958870248037957959793209613006414079245865995864928585962824794626821480842415234419094808127940573896741432299605527595330710097906245057255744169147679941697172626891799499323606245997875884421295671237144347962153315783960242520884251711094201639787471369363649575974524117522615234477532315894294418603372931719330869464171158520408895986183306629674347042977679132002283115929644079851045259721890466019490629520299154642884424553554518447297343072194539900575194814767849015442144537142368767053825929331872195301597277408522182812828757547552086914882335773247161484821360801704097777737902179431235869494614608847035841474640131467721443162522456989985232845414505161198530913044995799526669169284948175150019681293110218021723319672623927861525796772560545659197042542660763250843214309030226139413829999196736292416270301182687677417639279641594418167942917143835054533783035504145587490731255454359682290145970507558375445056874633047714716808610970617957096334088203887900085177265082225189000896945988649937124230152208860942714577150526033428224529011738344081777668957476033135417441014936654373734103829786296184417532854201423975453447172927992934578469130029508688732333934862743876518227117895259965346651894992278729397772768016996206977154707907027831773724957418846009361327394499569321218197571014714042375490456859810955968533952952122461226461700906775633374989771170063388929567978005699860296922911620942491983363494755508702083075393178513200219518530841772131054293278402631677739449407753635544527808753270705277287750113261703950460276545236574169834639248947355743587025594579431966676191367305816103056237427526309317257116187682547647455639680374333881291541274533694204166050581233035658170347068567277790136608285901987265928870594939131805880526433771455098400213873546565639435044290054628361229930439745467838815818548327714946691548201338552698801050944077043062310516080940538878936778841193049517525698105710215806895604707695089910215053648301510254077737597875875109347167310345080157265965721844019063131881061843413383157076514958249233366706581866646730395219011949016268768742064203975048613584374390764191881556375462269135775046786266265356787767414357072368716171532463152182953114371903027739302890051593362460457640258188539308810892828777827809817550981371215363130248287973022783509771475831915174336177314607155038270152476091255671068434461786432279192683665181883826524536740715484939633799781632055378793428967923640190949000421371640896613458183123427210486409257881210830636196737948453500026480983412500864924425580333477145747457010796644365863410658609224368051969655356702470344034235360928058181950947778293475900716029916957127686858733809461714154305615753169240706530135144087168326327019522010217388316370590928057423738011782509878739705556384064279435245270598158048304918659927999942127734467722683865149303387527493637504179575903186743532528333953737847973869309575712427648762001933294826428746686638288634525742004336464266709629267901902875445906818606758820733034493067176033313734792188308287869341426705780902887399669914365090589638934499033171550987512791210049089908607752071195704657895099888263113328074197124198396639745654968571946373103315067263284078705567604127077109053603833422598846420672068456112011726326259060483502984261904207254576134035306463341764928601603210493643560318016295658674461580673931296483612704882773541566576745962080913030076818103482966405460463009035140877325844399605497298010031693831618999280566646045060661852366932149314907583961708071974726670210268846435790252770229779029623979748734574635192023031336627847975244563390583611926734010181873644638849167520881090506226321803163445619113194512890173275921983798630332581018679091436158473475391883732749333086032284428303057725972765348295966714837165470862464735668247947210596950402848566525924262713489824331498362926516239218993903297956211221338553596302559047352583188256058029411349976944629185132966731371627295937793543650208630712595468487015845124697155508810934115063289779490140530431674820303215137483485711341160849401389293245761892189130044548042778933045665123073516492032521673866047059622113021729827949080403987330192353790296335838240841182737572638124392499363112181287861457429309986666096662927675561628859128884701364114369942145703511150898804919926429160015274973722803141916549525775914255473133679537825964160737813246958231290265651457585241259835797325936769886861785817986945876470566893213621316412062361047980676061708585460469194461496269831279704109225063532123027901549693107365437807350051537680493958524960110784365988262369632889103524899890869455375841051209473190261302201283157789168124506047028048495888247058329333702700791879138170222314234296271667994998353888474190599299887998660278370190587542115461885913762380642735320760329184048422634034625336734559026182706206981554499757757002509139205277020436400064549486415070533838695554169565958827951222766160636464602485238033789540068632931537459065093839860477739291894685761200972617474627862857324164463786162101465537102771249595408916801327248540526530715225385232325578440301716218149273286540623446259515900660206694496421108855113547052682925478923534218520416897281914537056185447846206950574144276926517904933066069228302697714164580397891104519764063525408894532910377471580484028464478873354159101534571875956547193606941895109535529309600432214148568316010773202567926801658957440621751609290475693175013667780528833389019139511471022448572617292450132070553467025387733615738075836355081494300903530927064347442355944178250806078901857166279694985048522527674165045387867805485002870353173568459640355470613126825829575514696705566547497346101449790530028017511817704101358304918974447433337278313602509901992049142996304885139741944698936694550711962331991469572102618560610487042281382667197266446850695544350275800518979607664604886173220765855728439290205975913837148752183542011418987757111673244357545578565580265842072567217468872110485400259678998804502713561310876639660546733081677828138549385881689883644708874287548430979820172221815879993635502279524271281177453986342665697552073999989384160610576886333326586610044847459487053882701171533011148331547539659831243577335087452912722417153985699831214777028213167233979155133248620414576932191973066314323810841486196379199022740513113177605824639096766886728410407694760864259201780232165712425808931142716482290854278791654517186127261848858261800736940366844114297526578728214125096362608710456883135182276011923203100393017646207748918304180707764397647080480114242171441085306549206778731336447305721583632453092772171397122757735220641994722245554429171085682587433082224275572293288750842106649582551942471770674625582578562116453607651656056059823992503754052500970688138823532078330712804563979932294339598636747014675172832477944738378487845559838238641263208257526043092451974527301531528630836325721941332742796032875912429057939267927327799834795927251080322067882732991303639928079438928291720031276023356332752129653116112119571198842778217781783471257843722931416421380804181202109471649662875739573075612714547653222076862113995388411826775795142345215338969886359572127586355257628319195296208685221051817557417891605305554299548995310774473694137996183456320477333328632519129727848351165100860282281478206903429575126718935792603930222958091828414724766403444374263400489779780733090278255652165039656736061307389285877687153247317296580473415105507002425178646640497083724347597937168181034768607133780218359094846462493653142804714890375273341750521762067047411580059004281838245684410844839057291459587193454474269654789716026850913973094593582491310299330750209624726318146406631979306908742108276131768026199689053889539678139205349339616048897917089403092890624462228447595753978385896520060483061760133334592709951419153688818636730268950768181343157438822371622877989796194264557922884416034994970278266779190677494723013529632400680115114780062312356259934457584776575824230789453958783349941422452513815669765183318980967294909987020075404644641286612897709616609457175943728001363270315370267463146893827774346253944634518521066292160576777835580957759935337089973311936605912423466288127794733843586444750925505594664224814091377072344891478333113111213719514379097317800841110922987929952480024028802494195564388739316799939707039491690307485613039084833733113430862242918734475078385257351245790208553843050140441878608772428054386501871911324836691455881203222720984927740099482323795413278275450560225773994478232991040973123717642620055072338486456193731657825623028440542682138450993075568264570896385842930609079129481734263348246194587417617994472608513243025817904639417109480960360004949366036150007749770338853827944139438947552280239409797524870677334423504872396155634270430924064804881492287090916246183491021884817915676967464885222204142441653127480405066222359478780032057246019200256040945921543927910822908874880927245307143020696806529691215282033538218689884941113570389655401016651100749144620320529819109354433291461454273772914068522613787542460577723055373414578055965144697168108807771110018465148166915536350741075508889303614842002651426189804224529537484669932177392056765809506779523838718695056547545577973091206344959464668934961837862909723045446764269090914396228125086369018745819099993106198172658889178267899527367350664465644015947145903638473586275906527003748827693431228794374490151320160480297449537481199473142276934420609690428460700194253800201677254385673281044837870705813202065318530198839445700612199018620737904796348813503146917624857808901180212344654735056745762382519060647364612127262904275967286859282034398796585248408242880507858572940801899605956743306506930600635706721823205992956362218360623679684153485625910813031790903877391334331789959947241923534300736805490522507467311145473842358089829123434893483889462442634336806704783884026630112198417009926089521390814160521264304298537266835643720879037982958502001699274651405375958490832185510927647280579129637251343509430815113170486681446776439220554460758192715601653699707094854891877385885005418914749364372943892415603631628328620806139435898077987565662416133317942150437505899035602403884249774433969262762627909393761117874897686926418870372066044979860452164622984903264160512382648032927212114544671469009464970547939702312340105407620544709123622526903489288735614167416889041833882484492015076608737400247295299016800488388355383099182157955259565810734105136498106427619237324835903151285663617265083312814096096146399256068075770577577373046535997774091413750492891994034633969655850442352439730093900884029791017710687956789810969475057214475433879154866823163921213690579050831921934683535777251421944315294080277258259086794536777873551317057578515527991356808749643697280520477656547632288348886181229687214967926054514319363184360989569697076037665474595765610375055000197728490987549549814492063368359371567466869854775168397702922620794532283216141201121880276293356646240268884860809312292039952325779305159459298608701702327295504896985081310848703636108684198059975233445134656618509769573894825922153584217345883563630954157919259836596786707780651427180799752352323287905669612996571755551895850757755816764649440179601552493485979851809564054487188898207629370484820529022440104405250969771529268286564978203317088218806861298833111370453553099158715640986588168074499823909582634330226353632477732374519378662671199261411909403553715811370253467890993846017525676508670594668047511807978552599962520110330251817015669459519746676647847644896671770841099285740346052530147227865148321276478449814375819426922998031586020221542747936723337328798557376359322161061473700769316626801373385817358011628811495365045777609796608452866668435808778902028733905644017458061230357626453926642495822598428337873250917918641273356939875680877270212322628647911296470479877411506197578779598666738676887289671093090121712575189987874424997167181402646297291160441878908248025726762501466366971457013391229396397792938665108997614344428171670355589342443667271777915597081928344406896986291885783591933370378362417767141261862097087221076461660219127303526383455999387002162344706155113095681319175398811513968249964414524434954026139034509965470752772936363550226233049990598170399027034037512008204370970549745453034220104706315418274425140397701639061211772912275966464438835864337701993297426575057611086030198347219669765237043683683923578872400854754476650245042630778086884275115475596612191957493674397862711289787281492169869455974392510348961457980913048306734971362180749842397367875998872727343552178509063606020830082353024732558237797487805277602255679914496257775885958382166759010716637502753594043480107660994374584170468853371187168334836012870438803797694455734347214194831992989968241809140310987226842136879322415310800946284316646832958884836713634896603312680867977802083508802128119576745138052045340155625908351398033396282090522071807963844052758770716706008290093833886075969190868831345251131702606463166031594878833661512537115743287849097052561461646444355050681752623275326025084932806177535377064116739900365206426319002740470483326345892374851178882103555761390629308701020878515102338283456561344714044058132282753565761499385874842945006831726401139282408555209358220555389867606957284654019634696484165661197620283719546634684372597997959820309922647390463552372164360033311963824707838172769592219232633001894483856036893660478512803199702497869989583041152298511192890024846792409162341470874517879264522403960270297173640037389962501602020579839847242031992875977549942316432266431194904691449101008214850601108907995040153819710473618036844352700296989671048112963381814513109855015144707258145676920675112941049411819330697097341885814378246936247157093659847803180057628253043206445586157093386665484216195159339143021322595159576430479528938079360773254702630677767021457074952676420596067220804470513484167706047864531318231571437920444108735470079134256004095266233404996572276644938363831299451318748813633869237139149974354426059299137330014612369702179624952145902080299560632641677534941127532727700780224027567510900505603263347622916912061878848697693086305320322157608514545278545037639426855310504528401018941594464336239778038104179879407723277666318114694236223970993085290144597367336008139211785208317838886590364322174038629605054275531817799059081360702437734376309628503407118021675213061373431935197648453233610932882853368670148661683050402807378322421297210512569764633619724767145357154596862094479520925116872434435456158221260715555203634961010897669219161483593016123970975601324726841004027971343034901813977249596662431333353580506959560449314449982711439774536291105889203752264966332860174780094375540752924127503448377977232872802273009899074964254428098700491628394466217691747271478472181064013282563022653492618953063634500698297139465390802285050248305938257317612011058052444943234620564534874797233084964869635937428296107802903286103456479304890997053229072266243322234438315409411089750069912864364663993331864295666358764868018763159262337874783073420290767441761640623673824492560773731912800807244585354474436924741303606268323031077763947273320582336365216866946449424977038772430233654180755454222673525126546127560156053474533594517444387559205285256850915576025990534845141531524959988717701151388195969396822088538978958897778906028668109127802657469087185166841180125623122553316185328022712182700619327782271484313001635196153510751404311110491976110760955302137449768846305492710141188116434743521573291497549427700371097802272722614243241489088430583683972541630938212911570088236378587334773797927749030041217038959745656915041344989922780505428795111827049061482194506315005962888086553124043362368365898491668648896786405314146864467509935684542231180471696382224649033457332507002951486144519633904289931643327332718617301313969563927450698501639317371788598324235683109943914651784484521723141685025522792555152797694754398569436231388090076196496558611967755950327341256308280906546695987443215308527088407311187157226318869975609603319296415618916401243338266601583495385639107400997538236027134777411893426653860882679141372500691708813421476277770120468553496389944302550020422513380488648355512875830389008695990415825061677594835416990728457314066552114985210297114622639856032313709267132737204152069794960659880967895559582702821290172320873574470283169057989349791127448312274740484935849911358111686944434703740643739378745230600602175877461933554220091483685625224541986480630017436857923161183509048594636729532172716112493100571441270259933647008210236868987960140459361218891700875528006866672790955516337777911543053812314324324556861641607835354483549471357738074582735848140184775838444140903531097482896102727533132949771825753814174247042094522028282226689669945233550044554891975439212031949813994450415007024307203322285186423343450372183235118319925438999628063556359613422842889722396213985325383561070224311895583181203339291129493777033647628805569151781614458851933073264111989649226449578609033159551275417943425800336958512857226227103862936438935918319396904948758889663898954603501835301644363033076400671412696810678262719150406378482912841130868224273728627103205713546416128116698344790972161922410739208762658847169842762165296171881196711236714783609455284335696211310184834483615362191347925513725206949126237013142502837003655456823903737714564021642250462076760251284645666154134196268791286955258717130724677381577976823832007663069806203885139993144964413344493777523714408064417551489408410883989464761434774741157042085348048090586491299330594437111571021727095333460003454367564124094593553949165707224674988009083965783933555568401289468759818005045524935734235198792563063829703899019727775573624545540334787047074422038390324159864881204934776877203928926089724505758841721760957535171397557885007730054816308327133174702257477124680812415431225606091190675310612616054408319284107638328288887855742492241289232471387661959486589021968032406695232540636655052012538747040285344620725610958474293632144207482760387923866503840545831768502965348734469146577996063901768871643176386565733802135023097141918096427028494323206749233141085599488259695677062865903007455245576863212448851348865862017533083788207512991534811701713441877053336900326942934749513849923980530929165210025261130917126069288792895016299258154720917568348396103075200987529063829162470420209987944546134876867173994042160294068757545406405941132688014436120844218907962906257610801415697297309277930326547417569696701909155614155825138041218089066088609082317058051906413241749556719166965379793703885321910782677939072055898276880303030800950069494893934309743788680946662361401660017578562174095423302713638392208562832342814205680367075550942399725533626511979845095496840736464595001549606659361629555550358321989460226801290208791571327443949792744337568683250214191381319134088345928177986406511276675339040197189719888501442380981968772507646217172572972280920381788350780845428362697410286396419407453938094832136955677814382685499573246933655586582938146899382441523390621393263430898853280208810629985356386376705133258960369716353853397615399916083625399409281705370682114901392274919163467967700174161028471587975779278362319857861882301150883728896435519270808635345226864258126997709918102075831206538201956897068322923184766235830811490053861723880369240472477732408038534872204063649897613799482514357944608255707627424384228813332250836116262766427504651565438425523277269736719868481989520848784685354767495438679512253710300156453744653397787418950974521975255935980277505380753028144901318424796489276297197240358164915836994728820439488083696115345912793945653112799805658351202549699742355593621969289760447873266677179447281808782476010275618711945315569942553347212267934353329311219238116031961370500647715091161257507072949876966949561427987312403972453791430675802433793215184024576055418086505208965994713367934150131362522510566822006668952320350966852975863758856382574705480037981403792781932750829245344868082155256413784162625556822257702469901858969421516860816568882890999661409769038686532210471842280584031121294744002695013549204323738709406055538358891783518767215916431125371278805256063891844844907537693718132724384002918661624985147469526818190317846843681507355887805054621667751714453457702538917346356896775219945298142313025534908096878535166444249048834712332528967389937999780792854418656310981314875996160430813181905816264503314611285007805373395866607079697527702630070244423138092198221390465185453682748370642202265298251094086993626754315355685341871606619204687980566016007913532153376514411060225595776771600912006215865096411637737597190675103977310784326402538551053097384708434765427607091450999950972076860624213156275167521752567679684350934900012250283359102550132640498350329912677155255971478512645045473245701565140233265283544313354164577687531719944198330677146426654055517970385540999703378689429084528751358239840169430944162465395953114405220497948389118530582339311880023470840390732893865848852032419725843292010338655182239974028238119546282614902925580434004342100650341423628036570122350352000858951587364175412606208517179566805748250531028256389255740666809357925813743055371788967394814530041055021155529438867089195668597453667457754445626190805919882575604581069265791260674706132625796969581616024232042788331649355588532417275910375335729227161325879226801156479592835080614904528837024130873355570972065161402781484909219191102377290413644338498462230709947096487168172944607442420751717845976315933532758919625999310585651972193518874053648947236142693849711541805632560432515727750899163840768297463139807838735569156945669539227702765518579909220597872811590661148257578849063590213491459290775378670512185328929736663361607374530114475562746459617780238619930794400386182663977171598595795579023924406602315660522987782977596536791509060308216689076460567624806021751248354710001240435566206974044557817631191025500197524188719795969667096872926679611378219590476041237837658527017104212155769210860129639861633226657202526695000246081055107246354281974048378217120843886170177900364301292436902620528908530675183699070061465137699922999265079254594062979954017189349830756687506036378712653022984525195428809541865773024833793542315906581158468661433841103006104903316645794313612805130804591795243673317035499955653493312710317483803288374415675498337744598149674777529235387932846346612040730389499408678621649787475001982489067273466272023577622563615216895143558633303204474380810677551128121915177761136352928979279138235868180993182816486768314434384742678263218007571355356551599041206178019554276823872420345986876502987445703912644753071913620446494814219110394245231620335649844247029443984795875776569661680673826625282222708767974481250023559161633085935327452924570251208725372729326784712893025643808507095974255093057948073213552062111794310833414161488691475325507524390328699758851516820442994284720146444603276725744626998873453783969398528695809772464993620971519263899264586170289836594946133406821709453444945032569773147425921685799439662765518067418424361512418896148094044302003030728787962572068870242150153677870226739443283262153709275089517755537408271295703257764302399364165085222627090629692509178352344849657128378713202929170647341012093546221080296130017610625519504745204864664211511017966940147425936488109585190918135548084011125044902117648277693056651037611245409573461488108208458072647344563883315856776749089956881766455411823566399796012098488133169874520236056427186530826620514459430780087045049972955342301302126676220636913892628890806694094015815232315485164850864798958390996203564418359870460255253775029214468749133392215174020542405470563679851548138109510040434307061305851231352268678217918295912434803517373023600541714139874953318681545050123841348482113647362820034608592445037261517247928442891829939080311486539924860395649961215802182956930933460530005666357194319198217632891298708641232925277116617518806200671772564593822534707834145051257880627825677859787490271319824988181528514874560578273349788808543528707067235630732237544253013698692069146060802574417262246145056878229112094816441512440911234303843698163429634026279984858580548094634736092912445377518518436993809414420656980939514390676092880534751830079967417474836808448319049591910278160197848636712250814957621758744283941613071975030613443765373187988767847599328507164885098154377802288598954024004145174513047484457358002123000964235546568603570913292908700428277574485616749932859105245920529063380870997300543695018150988753538014365773003088818161939948864369281853569051675949232623143504911777873868613860889104343784296789549696894295327774613024281752796275710042138501738297034459151604888910208125571775457709013573231367223022160078884987918784839029223615575343150773782640752901595964695044251473265048734940170727261626677743356475938421620080251702678914642838329619540706621786958703910279159192001351828956987413032082279472613574678264226298377659234976545119205385900514859580228232344745918378566994893658272585875997419038866206721821584749493171087863188283572100593784603954174334373958802911257946189484657932282010348108804245541504400262373334893508878926545862903564038138892061731743096171593051822273399194416772693488318636950087845293239348819712738798792835862695886390222316447345563403474201199903561109897676092950962644279953004533646279374606288960741733515846155314387523998097981689105249093236828764235118192029669073350256250180229043614215631633052429768816554612113294355725063076608643187227167364704908383696580150597629285838052521702501992670525870105272619919648382646033127557760018461887615489804484691240263568678775542350019455203128892284037725470518542836454511611225722871707796387589942187307667475937041983524824481427707314683974178471733433128608104911822231560673005511363935348210173964515505665554155564595336205121207916327254437371340896872764924188839544228593827933631313022515794745798275632999598429611632700525669717580423877657056675541379840888071753861990100924958451127185180559951032123466029593716636550102519875823380829870472409093330293550627754849158118882366800873447200441477103009982277023806386583303093786810043595524384889582063506771819135088087033060027924915613066735491191021851766385056226957003414415406574121905269771545869055327227693789384875062857668443540260760065441441245892087921711871137329356238736016900032046045226403483775307477970571163429716518472251299276652765379202537411961748854928124269488293757612474784325475587987877619983756258030552616559052942935226064222429522944764583376249945922189456041232572409014011914487469049371714312549186677417048848774365173549125516622459248747834478502328359708894695607450541082414292037487068170207065612216136902893360060118293141227685139335410157024574152785970421939006119008333140752570377759192527283779734712124606875056755414810525159973347298985491495181097762819105297640273156373742556252125567738849526500499387953735616784861885514620105625081408378641900483262827956647069736528154702101131585355938862410454250430214811567593980231449429523853872814456743385033670242388875886540966650006246293641701533930274390810802844212989907459217850434780928120415172242895273362351531581937547119383529422266816446182764823279070940387244760845572990514131440190986743703765126506904953869076977135000962619625098216876908781845349807105960466741108401217603013995994474380212811300954638697560085757482185195037323775095096941302577354380626320382890495633378304186047817857312808631469484237261054047646026118668554503955343565313473236962188386443835305903794607165516701727941165451848484740407476657805689613488166167931438751428049827949042776902837714872121841792094062323963177688276506148472331909158059316388825437933452894336076389677961820089565476296324664991639132458515125757655616999105104410337795871798276170542962457138502924135091947883998056640379719643230892720142300813102707127535264619653259389391592286703387987441203071076080449442847427217761615063189593243965388022954738946620070453730514472032610912997485193686372137675135674524441185342224304316234821754532661811411117023098488075686456510678490919624680425183863529489739904727803622081448954966121487586912260423783886306606121360635366996840273399954986934689678171860782465713015405722199040434066946667519631685558230848476627565918703897267021872647701115282949469698072512194265944503317524855318249010492235041751886363249098054581697280018834824654581501810826607867570080441522968679510807915962757616181039954697515529758015783630943789056525261866951412414365453489364057950349121101563726444215506155485322492660660895027892252635067481890556529272302631076873666696212320261484778497726728348856173686919398166402534746155620243087755464415890803944263027249511991597871260193316189287927233449035561416465636427667447452620486963931907041799319088456624456752786877338094933303296806827586900132731525351418814467787386118705003523535957338806514432900308186748038044384318327142142028239339734800758144016955059054217625902695310937561215157302337977250150545518641129709303366010686871541677666740375127822910773922386776333164374562068522356734366141586387379927791115577273998963317219000946569212597443121434862302469471618270725899939864040470356478832280682761204550823586971239838682600067239811756934622424190428184717663696927688631855352228778932397775473803550652251897887707837673218778881838468175005409183576479018304188104477196615893143444658005027632336318683508997817296089188988469851795952370381064228790305703062916408900245843560347452084700208060871882597501037166259696352087014346724096346968839900242500794979441118329521664600381675460654448816160827231060738610337697875769773480367106970979559616741744472347931968319072046132473342375699063014831534694111616837648498583744659882789799010202922100821770897547575085431355002301088039532947620100010334468856614908492899781280159982455685761465457320486938793414820382636106820971372159476810934966127868569856554220909237718551769837117711874970261231818788630838395349841597097541379168571929933262992662559219654109750467706737002109062607975037474484438098958867207292134216725305963747612180053425098327001271171326950067295776901062441485517319363683576695887348342134960762614325441606183613197633244713812601894285122830453780178047115118255263587014597146136353119723071851324504525479951869940237406722173931221422210058074233921579027906965547169263060280196348339518227291173706553717472201827008416749202623378317125569477131633794249396282209855911765343930568198133846628549484838125795178622917785150579930839966147198626730902437467191380344280744527133422967076304597426363743584235560708182142188371619034169307019573640764877336218349321139431680758458885930768455051659790484098151707006218808990984154054241822236399518576970759854139413891002088750851834031171241356961801462154740214691100262097106968931728525429929214747800165865040990575565516365081033661906236820520123253493701888732771958766426535579775347724845128390970344123674687925461864505630679591571213591876637798637093148722156181872114849694427829699276326633764686857789313524497707406742532229166469735004368533697498679466993828766638292278447038747857874847470469813964456509865869447542756347527178821594980760598119688079647321610921834529823710951965050574896060769495688948866656038006693392003047830864945626098767590255363077698395232965436534228128053289814569140747947379173954032952830747835557685091098928899612301460202179782720844335295671308587449527436056531463717593420981940052423326853309819921483310435095438888515809217533930676731821364541705765776745967611326959284205954706558538753565596296964134670997982900294600045302914989276144459348660727968302812214681975736004574051729142937712268305020337665000627747683490749196413683495059526166877841053038155866119110537502389500434532111163774805552857963243613864744312314586605565893186654155564836401415423906501260984658897796129882826336022723963775769950823667818980413462357149765833515469026054834593775282579664642507158996842255095497984015601451609424708177329402539083227216857367228445753762040155158691498271747294389920869595529976177395414331686692068539591596292701128605925168915008229883320818677932622571806458105676994872719114185698122387552880296332142627830958620526021068179417140159436482406039673674888582370499367999226538955989462116227112783323978291314876602424842401309285029561595015782009810824735191254564117107507788423672776688506904232301653053824904836993694586593731713487783419199997823765310210813806077285955001965158043268630512592814501293451466718367373201713049982090191042208909015142564419797783223037593306821254997742867315776431529055988193750868574141194756760610270152907135221185749067846503010127868768946606310883526141541522069146431393311794856329129958460054136949790596118382737685345515532350233331500481762459660637996549946230684276823988360230000251594658564769000962968102651287899946779376853968846481097326318612679856495513416970751156189310078519393967843939925448227367531570971474458023450733583018017497766520495152456698438441207253469926534963288874066263823992861841395844072890006474122617147194257597054709598033182435915734305864086335498450365407141844907803859897407297302702287887749934984335094903645867492786846397732450622148255298256947932639784158681661780849975871843597455425531574993347623475440486373207649490362485372547913637512574542419026919851502257973455396503835658466551079816599724129226795938378377049268364282977716112400061900761105947498183688252638028900505798172262669434571584284208048337300495792342216238003251005113973038116406539301235579380887203500312518044310325124776327444096967238016957149000981175072064982461534898388876430018161265959359182819999434676271627494569692753466424659276058362380084912826169483521969090381126024262745057447864817933058556221076706153507501156038127612062297190485642452919522433825863190864814927519494081452398587187596154437186695558428981214196425114772391170436983105277598014878235135658056738757672405749145239940971946400777989207377034756080649308835991230632098174472507502204764549750373693876847899467585823126419781323015700804460534825235834088764904992096271856116659946752174786785275150762390651855138416470295175117832296445899033189031191281253835510279324005138458655102803364713842522285815108208772081443694884486292877551524450783384668377443907208000279191155870982927255907906205840769775165303391258124765793464898264437990518476297097455566552142995263791460901399259414705305631848201257670785949800231755751295295875091831875643475433358498092800178363464344445574122933863504351020235437894256453876876926797397332443728600528971347632477549868555943592582314166822617182353282727622422464951931793253568967476727819675348635256290512078027998910160684409692316654914141061284996936230829259916827904104484180185150651145382381229553347064086459847221853757634827044539638986507712893048111558861777986219286566267328248363006059487308382804058460690855757132105127188479327794411851903390600879989541043033967555502514714857872808272895528232840546632165057090875376503453703061494698574102680850388739038331750852600937166342884022166461434119320150950268517001272883932483841505287580119412247893605344377175776435115299909891880234343553926214258054758284133539831258932820958089266201438032122142603346517374958455169387975467008444309892063305599506862733149376256789276507801396052577024852349145306227016188342833299679501619841141253460107927511353128796767508045022170038235491750200456522726652636707205468633453261687341387456011158507351078679208980599922036523849952338219717892845282020848693250350621964091872499765915086890654229371770169176081051444090868102684604146984171930543585295194785972930689210698419150998168402051293059026836454844283940252936068699885221464902832712921647471316026810067890546584851814395196552589809067906718009397454113877957866530863786554346403811345654039962454962628589293876402361798406725623576399393025852294086543815462469415493590303620269306732315416181486114862402714571162499041812976588356903383004470527350467718302329162641796008320331491005809004473403928195928300820887357150161860999373732588710658402675579720266788752805421264348787413780914512885444683392156377038211540101436319479278549976507756690104208575622726603481052825595673518962967521570153180518428829327903194938279035793512010690135299889562193099992103326626523231678318429957132206450591541342080248735401622892666948055754644198344186381424197621917342093162977683585616675391929111393716993007343006475298989731613099048994436821035474758523846697812811271947472244511013929067849281533453652643211500961503846256826075663263072769649568644594683674812546529526971428077845889280422837559291602642972684993420790800540266379099766533138585089465002497009192939405018510602145513054342849957256726059604738123307901295097481708120359026432188902216625927516480535954901365773530668742749857269278118102628594266562801011105024916288933881893494636412236020191957036298242370541391990434135442637829373355776921262353555566834223980176865224341652460628001012362019816221658913266724506652630758108786554300139578918873088865807221793364654235889296989103929557620433532410358873443583203122340144900431493711093350253219920897322763451156021065260977020732781285449322103868186189288974069928378213319538929124667794816197064647507040663177966752550309749428055081697629868446224966111592633462847490480641272461091543432897096181253130068218156309609199178069912981914908649360246996383006495718605541140588478802490491989444376696849188051342675008380659897991431792790886997467779777612570917675265155842834081495502595733230117634649319739794820566616175706550394798531256394180911576078626245736968877681112007797022177896856575386804630845935072776898909608476200885603570979757885764107200950490547135050313915340297044666681702777231065065786437498427624437764098325718189351454229893006249231415411450522568476969239347912093625867733887812734152448606329410836588243651284647121242334104276959505796818932129291195977016618042807873338113634650259129259745533781963552528056696605381331479694394542654709187650689542737232607588292472304975491805711824538287967405706653754520667318947629008380803127063891752554349127570600543442549797756735936615471822511496759190689879189886580904909314602185116036823190156816404075476493941007514504789212413051132612331171459913080975732934226585612700891295992037927171671383026934649418149777028270962906680280414560174116922580693903571508451360647088850274792198449282797429653080148208335454678694343796040874385407407865105607880849129510270371672151706760359746515316940183628208824066006614211020042726157498903157748083593999618721156820097755345318106146770183288624524155747558559253786094934358652805126618207299502087613523357679181670423002012038423402309975600837128351829292431959394178533609823228732414802195919912307809504895355834505150559710453286952856424331861072845941856606164033106582740094864949091439471543975067635522919191531211404648121029154215363178855757519125406186858299026793559451482615686029869339099784725144442811446252262185380911921555630146666639350176154569909932232482567306244987973979454524249076306498661760353186544573557080502145047293462945674055664265147346088730489324092764310705356836717621110662524569375247757816155003201961103341807223206877811999134647638497335195233071437476944404345384657448190655921815143148514006517069593999235488141251379004303287979051631242106094469848796227605791385576894651752381467866996956472904415495817165174449984378997344751784094738352666818649927500525695293217236223511237804280202785713829060696472983945427739145140999240012558673263469630181620803209201435683326069516889113633311510056917122450381301540939736558722520406289200528174063341352636910724056510750988106325915424879656236308861636860622978643497495893989989398031001906035953971228438188681996756646763267317746129291345518502187043134894632402073697424038085855519717007601419878498156062283866757902531180224755133965927047127800721637515844727435376325994473714386286467126122195239503077825429182327485244333424244588467338241555691428380848268276344674911425045154118816180039022317613319362889544417166756772844956211936266739732474619295493303553649949906632934792829701204982295038157131034744265390915835250807997290438248550016037390455271220306598500586924540142606596366494172244947532955521303417932123585647735238164250636318664723127060268212643736540697151613157791987765288309211970098065245768840564085940215798097487896795678767208800908586645398707927741871930549760656897435233714664145402658729418727781141752988738135756916365456532737064020902101070197509227656729044571157740841901068959131312231979281298282891446973370512364857217044446507105653664752527705208313328280409431947338623331470304074098699249302970163681949403186062531172106325647479500047974229532762668532419422249200867919964555715407303767725637223241533016639773845744355242075805372641835746074627874535474339138945028904107817650129763942868290743154062947004495003504130396614328052853688839445001554415553076194375391518642282893506100506732522201437451952723494857312857206559779735210516569140983191030552195704564440223248347616108017937367513609433424810451630840773790944100756058172976626120748775937963600632818591400436938952124028881755331120006200529158793389380828410296155497992652227993461147587386981132028347226132531308934574950682292103745134742320146015077934712828422914788936503111629269218912366135577800711093534034415250150703109361698364554938959210466518976297299712451814977107104183148831333294755458486406934795007119465594558769087103703451156616794308398644652720998523507485206002724960229805514836376079771542997139046739024687509771841537843189576796443385435061501224956324380356042068099138345610232000039578170490193630335201828298151801553453407481551367750529546032293531034838324531658406670846124209479057435846563761090041283338374273421785393680606001188300917387901307718268017121382264006934262644950887035870762440369614241288701833656715359375037816233999526943620301589152747709700059166600044137857588583715004040820148483187706759957123867523383878601383902261583393969197262693294568358523957558579948505036816983779997973672933447210386710516138716221560214508117180024039712941950019581427737062130909504332747368298590659688666879566450758575218234952814758115657358764956655148008812460360203312032510457947588997304104687734134758896119972057824186347217954647117166201278483248671947504061471619020812177503952771058358988403574506946274082425963184986392007312576214253307631008506902150133678378017502032927653042501943094576951925735896268121127766665637411345334074316618404546114862559969675198153799159216004191045057932759672324235286203641070695048104267826700583568401268623717229463453185993915321940045171495642748938953627403758239728605291102709333390239400240457737829721809228707508629585519979477150076651248872859495778322225550745885267453472260973006574104628530802915096716480986909320238345863661178066158881158740565216881743766840913373112773334336660286091151391950842578062119148159324391644812540887405529143901009112700849396139372227160031868030620283694985094048870712714000127646176187506112880500944835865221165956612298837903379945857856589285342934421249604649150217312408768884854902616863643922122596330356979752749581512059014018809579884716644800526975647320092573261693254263994868047747802286875065496452997318764671602354818827132579944234310825003254282458681649567740089488195167853482898324547667325970987889970333996424306427547532037246775556459221724439160066146134324670116056287613472546513696540382669802885041757995173481297619370615435621229732559823881568476384771538570352046225111048077343552394527246091196572185652867226432119284898652167757845009559024016936270182797838216669825490647410646435492605885269280021436136647493468683764709169848296289663392256165372516298602599919725451571438307724887694563052698733363742450096794990605629214758058378795653305084409315724485557480090764310412561409929922743826211562654441954530536165041612537963596299621050624322976623171365680358211947707485061088459616930811681181219363645299881926003095610045705914540561248274164010364854745903253818510485540884308369645033532739632106587659319955435508454295236800704045813040515724956936017048445026363246349658586952283542059964144419769603331127237757775576333774223543099138677966652029318594983890326332531155961911148958240849648989480721039141487659250380694909517835167026396776411097243825594236814528148113232743756135353217763826161478916273713820713893152168594658934375777194532852847788845294030351937797648741773518746573953609556177807002560310896652270473608547198516968240671682131975145179218479018663109446839938687858591276342431384764424790124013185437008184292595276770058756523929865986652995224380352362990587388125246499512056472398972569804233562202203420105591737478193695646705328344931049185767668090663113807299866944255349700242904086414313771306521635594623630487026431577016976443974373402250532595033962429556004342878716107459821404602873809117467340704297015612923542959677306934274752859848759542461041847316044368254391799620003374600724646128584830202325123278207071029962793909431319812235601396126818669242758406987999742436783650163079320593062739309271131751366218623916396677626879704192302751968101572447083044392241230791248361135372316422872777175221046426539969878652578698605472379519738459642604361920244310828227642785061256381922845952373909329556114313007556462720066067753142022350280217043986977041271233824974577834723043190928649953138722289637931445413219244739181742846352966991259018591998196477131676461990291926583285997876761163759804071868658678721063811215611352662847412263575366267406647096991085283336301256206235900066157997570194323284585252783150931815148175522066487531369835419076990935553121676514607939444699768700775721871972296869134326532715276980821699587400947042268761969457087702190739410605794981378214305884473896760317869580947394880360395344505462441078674412240364933464324763193039322729923596761879297045170357373020229921936963344220675899689838999839379663666666186370565882158739340842280001163705039644975309293903770104379164157954688850292025323354092715845289741699341414649337251910030150634990177409549440760985799200549922046872972988058114725516874705141723870733726985155485467751499803453847556840860609340336756024700581945225180369706684686030045754093531492464591552460794544474685328065934282344496070788350563464963633248485919986630798422741283880707866978466530614222077056115697243554533519361540006689778144015326808151792305287626449718764339866249518518258689565640679681344793252888834429859516429822156904303369917385629302904140740974961884223331624586628351942986351200800052041776234263930798128382118448426774758549964600003805724582702344153929492612690460836720777250768476738783266683714295625794845245340372686290195135131938879216945874116103423822502832451644576821870721310724440310995272376952362737895384616618760644707714047237212598288924694317618045658862947595876905220750691074952246404592485212363442640972484051759597498852473876057040600668806979384556250940711916188647051945372303865622533924597238119295215835292505402777318048486185494127583580566780929265613157581592456111620759269436338985118010513437870628275546130207890229097708546783197569866363665870628028210579303526994886942908697225527168829549378379706712822430181385021576155204491104261736634224561391322314140119832492501129212783464723276714098768594678830861497460910777745698767708071853763753202943874126787366772375809215995955319818899898825081575514325183358704330546823777489580533602702246800270837740816873081844945125115309940516849771067658002509848124371035398881008406340410245232677174794972103480394675027954417387695276214891879274063651730662083980245016855816307522099244511497650094011649470574556150483889583810425616606217653285241998103982947636759078856603909626183714830042508364618258516766761510909733401218152411727650135967147091041869657146293572242139177178182921315211210983043484529149100031420416216332606311645123718632431289480578704860722955359691207380008532365761854595966748762227054886853581537961452308883440686993091289965976663845773459718636454261044820728347592097576848729867888557536833634069258148025099148277218968641787456661691742262165106945713130618104918487801936618400125724253790669187327029269200708229776761098327810545828345955147327098219175979200683825540000906488817411390418785031522424931733766726502172198418622045985897827177945986326906732410644265405901510944853886250308608150588788436036531649932109139192472081240227274214783461472652448167609613246721850427346474624855999161032230952613210879995896442907776889693171156418255413620995808003115196294376466936343740402022843802109588882853492402873228524911467261725627763839388588395679934175833960258959824746375769471436839336926231040601106350192287713961436090664930649573863703391990592755080519373512361837634487650372650878275073034553104931983079129440463663955483031997689156780926129833261804191620798865940917450896238226575061081490502047398268581041840186282666711892735764154344953524658054489499862715220283634558074241737466673231065309526862422237037602505490948722933315163263122170171645283271961845863506156082235990850355090030787501492731522925529105164875839895212057399630627221581861479238782388377199008682269344755053604599562443888524822615128695760706297149536417324831860602896238917701225982725267777534187491954921633656563892236061269855439620559316745497898018824419856073433746693334897212817600544546234336855839631207046896120834164074339058357838925587116062719101904060984879398745187364574448285670079145951830130125745324489182636425332537365669381745854209167242091525844740762106664278871608921734248265086071522675607041654515544926033105201247102994778958766804104081984575323415817729330745999218907535377531490108065021261975227074394390757642001317945663922213495482842277230868098924836234385681052398277021367562768414387455443075852345576038126389094111236185730413808372491719872253598526618607084364778916246765499576816551723533034246310447080898086458670297133375094958601617213441162247709796054828169326429962465317585383999111393886411207619347125885585188397963726228768643872399341758397193654842071187931204461357289107000690112782259702100861636275286522091271361265314533289302720674024434250892062182350178147071537997952908540981900596421845543797539610782185603196381745156316585862625941974318890112437243346629109604367834660898461916039730032771512679891967793655624214183703585782908541952239745995403560777048754863319550747056097581940365282542602336655157774150466563821553409878005574871734979038461409129067415289512317847430067966983443975988036409112353000295211277710071256708701485959498094896977013178797683952294852028778321619072400848142516376476693162333011970804654161875065615342659558252156940429134960967838977683130479600683890347988699744431445239375647525448371788150924172905137092397129991959668691645991782698878491093416892480695334751089995775174278292184623715534399966518146007387943039731005019616180147328471692464120736694952186378898856888355800599195919900932314263867239521304313790207215874990325655242685995240443322655271689802117848337919581183891359282008935300556583795662609051412915468731222926078661177322625529310242363102547750859267689942827598836732282064418092572841050932712154251067381661487527788313070879035776088026765738270654128682373026736083940914841390984134497394535122722004500776386604723096619953065160911760804035608459797115356247116056256092815753463028740695124906007310530493009429349369656693763845904850719515118695996955984591388968718019275903322740184001600536803653679730743571674094414245742197543008250176931821319902507385228645531545863504292450715718652200806377459280334915514605043356301575909338303945510037631281654289278712780872232633466577904545506933425664330964003849651441104943414276607836090858573292210530907226726927714900594655974831423391286600313114147655349685609989657150864841900137610125112496992170074383854973640726702355902778217122840415499921827634018267904452502069404903024188804781942946091921226457977448649409916055182064283914570498749173340962611971963940066589613112593444931428578369973355055842398441250460181342823343334670401984099658358888603631971405029713249140123016835865073790270518940776947410931122265458188526824839243236993674953735256059220289111401417614675456584864301924320885641268968412715848398578314078118804614192091498784680266172283817987447292539090974641383793401540687867075177718656122171558337876880084593161871717802597202206948099421611762319425605655278251873887100978373910056541217250179806899652017261499425722629133292928741513363018349566802568137221297577144698236218501366414304884940028645394847841654388441450946706833447907909411572321271989199260647875370098771992952657272393982600828300968755858992666429280375700393651963725903659764227853486459384246704622014712631877432667973899235071498122826222170624235333671850410651339822003386149846957170720125213676523162353471083007687297305421889158794342617146344119213569634548283303030738699334681479707907452266502849269995976995387124008823906635198952754923646991160957481819341891937229569802151869865402205077317533670412008691291753478591897057820877024092195952087206935316952023815138345874172466493591291078054376078998132488423263018934328035677687484445046354545306473735982705647646205512874760038206625462442973923963814567540784738563504007856184966066694591189658750959022473548007842089363345428503061502109405147023168292167106837620155137245521038196703024863727602506122008764570546544765679551548712798587036001838160575083008235836985114073659125415435079952089661971612316640290274579907759149917063835379382746280177284123850182622671946129650342152089101265413115863718892432170135094748775777830604889268681735412721954405161704099969309989937885496667818039146882029616699593835287047269321147565866709120641199556416057276073077186169251604106789169828850977834863274710518537265434146741965113428121058043884720552202181157347886791190714484649682302486963598641819997871395140760297863924482657549865842526722083358321746878921837934795562180560007075129102442659825307086557196172719672292921267458837972336005227020934698462491642953605558997903372195713777655404877426653585874624281157110883771286315554145430673231415045105649670458171883345346599801137250966088370246342390402022184438829984942169944605410653129086335823422081715975148077397363626689231216088813001382827057934214812203864974331965752661172305200402512708552814475783173789076260576033823224116731964551749716824331579094573780533568404023663118029280919215662759204122930256636423937772257700077631240532601109752417832797835661317974361375221673023402757172341333266476614271856162398273981254552492927466025626311636744548639203242281354696123462785728667144202976897338677809276287085786331855598333466495742270690291580475837054751139166204268965961002395086330326793940043890074355844397068839715508939159904890652078334970832704207529551470045893815832354728988313202907503909884592854236073548076187762558066415713767453621290947044054294334170107490843243432749682014215574852093019723120576666658540475980111700143360357020507662779605424146266809960842218882594125898120740511040488663914561742335091477343350507402839585611878876011887352832745302352930657361883329655588836136712339039355906870936902927929838197865094954581116169631446187752768621235302958037273990937228174662075497320398139605306590240754279212929981341928085233345202502536464491078546636310914827336442030612204943775487886462702581152222721512910243007630973296632369567837826592090924368018164681951802833558244420913137876273050545715760477420587801804404745729150594394028695041348605136832004253555375380256357950613411111596704049540016613086462521623819957570404584821408416636304703197034063964738379362149855356648860516299370427171512485771060401218458697136151938154824398614731055030706428914192215371896458927007809749402699377346429021511252298536750154460574596555043562005022671759089498002022305144087113653676605765500517502551995406428034768693931367733068009925478531230034159523105403840971677976700786084410212751459335494144547203927871068200240199923746461144200043910052990414747160845664228049492239455397866350285059760640050042093206704192925328345199588458499212745345791450233743895146087533223352678547795396663827985731588841440945588338573552950979772411833337423141436805655335257567398053663283112218072180374046078869232588822688260008782696489954624036304504703237276544462208828514099972872119947649017123133101719212594707015716440713897781202356210607966997830096853232040705800806518007687477633745474944642836202774321552086051132093413395595005232642567440799412572712983532613777813710181766801596443973331854128317754026638898211693994811541958638834157240550611674215307186878760314727429782413893175946826766111677106915756557437044004190283993327809469738836175784307446518374910140968315614984059982357074827680702301983947939034278305998594368151191498341750606078358408561492455394290809783554373637122759658573161889444337503438666778253581006370221242018425867145092127013906737344704847389269035844339803113504366859071625645124663882431931366327500028917252118816740537024944595532977375626859252014451062123905115140710229637783530430761325381210326542190873730628962656251849941084028296403811265739305646716753795427725432193584904282855500359122319562401659988758497345529324391039174255111140253365931921234754794594721588916371396322956207806278664342980594930271192386741247594788910415773210706241370593805050307212817724533105124776374592082321350356214730763193874758490952564469490364244433827538232251474551133446269243737241081728862071980191703077741951817584516493417116412555639527532967767148371734440850569697019794909513983514350092687095276240182402643424869233673367139052623394632551266424311269575699859809120279924882053697547121316859476378349037809624499784220975157998447678225331795014793046214365132640242607361032144001525162498698274813555130011240696198797892341194997296446693465338712056539367200170328683652067395972954848883656186622779987969049358187246253114784816782339276349797117930374976225402823698357308907972102551271249867225670597929403765161565866562358834211467256659150936861856073400453860915663818748514890505168715163791267506431222733181968579707727987046480285438351907086615815255103623567299837270336255063301952052719547635270225174864266940091604343761181424126187860336522446283732058854953660882918215601766791277308752808233225190402271300895367267719279024359963132356087286373019228658185835747204411470590492177861021170615204050598329867332070762088891538992919038534344900720356494453924462155056166656839632346524982147254744582902706406478479689931605325363253074791760880308676772708145876421961588925640868102340543244760616786521215331560538911459933983759600654081194619999816554304865738469444395973959935032753371126936920948823515244142496341382011621324750977185256008778689162884823346463870572035326473642540234569543479134126394293286841960491293632470634118368810407957119486446831321896531144949235174870479784233954498153652771170790842484678366679305023832294498756730638854784794212871642855813333726959550754539386845726652224500766828330365707117513097540390635465682809696531891332075777175547153928269788366717971294054085985174232077534068779478470628848123292856018629156671798202611686031355063978566058783912632331955600978897385558071153519133294400836584002726299464779739221370627955351885206143046133108846190308939665962813706191027581867110913850881050175735962540226167473885143313796931092793740654311940016211468405776004573262389673834045833999872112565692415383713384674098742856722170040538960633383629010878122788375093530641950631580116028404662974962816534161310803829953129274471355197277084239244895026660524700532382187637154497820835070305663159530240487825087275879312996309674194361418404385710959608151404338745332251174294716378272830599219150394801140823516482449455635683593187632653111911088677006816585646320602488189285996142803133563914827795165857994398366013300811231003615232995728622237106345770675710434738010480632542015218725378379766759433998416437180105589619998969412254237241506294146250632775822285598970410287861517632696458263775784638103383289715277239597974055180486929337460676864314198575805967982085401276522313396844910756230123829959007607466847565703635105567229481088094952078398625028448771591611586868831932646446963381287693455317784947760720409513320312577092320826596197767712995555013333345442507165388601267287984614972373038727632596809441949381764967663469466308379120873192312526104829288975761310526345354618721989981647432647589293176068198685083472647916779968998229875689597539808543006481187670988216750927887224778716643421742973401690895543057800341331646416107369015617369952466444894726572859248113699239764715873412297449341267572394612415268147041156902324037974990636180989213742136017890821167979681793292274061134294296609818297497831755877552212567254504683151518862954024066057468742387402625135493711857327760511219446760981089697010362593184659222411617089373287954171319286162673505202017713657756850116965605770409889429186893328599262584225341528328892180509196190517628718326490057477365512213182321692910777035711010769261832958513926553579545300778708857847733488044155026238134305521365758533628820785345706012207597665803025451846183682944499577481550609524856102527720861050297237816621780414540640327318275800737093465909507433426594757227684123729783128398293290345643368609373781977928123926283810005646932585062466392924422993175952523094835275992044810432652688814838481133488957026190189133370890441302948313051348225091376079361917499403357582491620188236803216638574106599173592128731603657479668593229199692405667977428920478554402481014594043746985239314207383862936681926810292417807380053539592471444334962519394046382084669316727352426945695751051831689533323576522512037060815584167309908338866602723215611386419436767833969706879427972889826675135819013713557834573969167723602038602150955904061604865262968141639703716408101909614215080373933611398697818051197358552654298395293868187771645450286923847955291137790887960450854011493104449931679840310464890654782858610922698829894736036493114289170459405603332168100886844386888362457519400281865465912129900307950872133051715900081093988354217689392003459230569474348906260353905070043456338784408189498747635103626636016991616762910315381899425745296788557484779914228834667678989871165470708337942322213369850617817427011877334204830116043487708159973276048202228239571454343452389894378040933713065691099035389052914247424543536230023333672465293139126916878117923212284349139817258189528290202522678964872683150889722111984088578261061272581070690943672802688108242440854083093038070224071813297603259215191789810426450531169170882906755992616212447578877552833311232174729947093730809531460911263566406228976628681931914067528015456762844211694952647479625832521632024532386955955621753636629060550154528825102968605776414455926268900969663780224246091091781496436441647524268573403795726113767879541712304903212281442947470281656502092440551321085149250621224271414350240848815988368557965924244982812207653161241803525590589912692246826884841782653177757094695425466983674800097437739336110488155809568980159494426614092643607371136293486435376587609412522041106783190860409946040514097623089393855751096108833979715377052236282160674388560015437187370860767126651136030205413365400197174365092862970517978701067606983038025458488573519826200059822736595619344667926860519804419917730453046648564576106190169696185356360147056542785923498411022510135016095487256244817019646923167362595811767488868365112043742082339289294731696524056213521556842383184017744418054269117866305961422179767235649371458486856460909454042853088620093023400827053805249415508609070426489930751084146709282405443184305219755835046018229795688555277504632702084664364482761864734009595501307443091807765079656749371216460399080325431894583632643377314319861986886616023853769620077906386448534242915171886531962431673701946235881487976072245632164130165334946481418579286763736988965745071856341396308637830950267274385820233880757502052385983384578906469593356597759029488824474867127999813382641570842624129879956146856633599391327699445363014005127214999224202904324382134346559016539104047217477044296108618492880721640582463359152874230812501967892168205117764972336759478282953931103715923096231731443364477734941935487919165592436444806036853714527394562355002629246303884092792890349989340967057549635463114505620979782550908929536581755794344298920058580971263957661908152099733923683796847142872679017878881154340991409518259279841343820673038899212454571001523081595506509175486419234518567538742749650731322532326652569295734612924379350752991200119638773419520266309665656097781668425439072993503371545514930480397820220032382664044279800828835371755895369394779532780275559895669872055201497955630132296934283426828649888961412871296430598118884484450956524681117957770562440802304031386768064608047736065195565858775646850287336750393899763784792438851138541375673085550885952889160394866935643970465132301376181335295232438968323151941088317276114002157393453153804161480366346044681207618297129809229939437502555695027613756463415286225919658916117202266851762405265563044925442329582504983351211744642971703860844489169908627261904710924184438599510337215681430761435969118300055710307950153610849528099156550585947056954660149500835424326349328416392306658573401661858542564283885942425842350661716250627652348459354610701092764079120679064633481017814570859435259626101737916871201395428379895552075657974416466373703328571341868797243009551555505158482627092889191323015719596217727643695873180202668657633109737687603201810308991397414098354450027814010173223615150959422009407665066442384593925437317906420676801121717148327346095917698476311492966632433923463621685891501836714109064843731007958330689696318246777601463842921332300095610101036249122091313702492663848076969131412822233445095837009483369315523038883850305764154809675470385717327210022143256921916682696557112440719396385848292220390418584988241736083067927025629056177237730944772037076096000076130397564357333811802934306072782860673368591721839729689761485164225729556496255836744719161719140491146655497631372289573566567265773156639378084544260176913326562462078387148122911739306356610995835936637156816799804920758791201333620708044498036414660268959890581014724591075639172464569607270609066425652205978856184543185072959614425798434044582372159121364968881347993122466604554080081602388733702633298048273533568430152284969156985196013763794301332517382851212801465116599551188034299982191258336938604289840416161680689630937293399307176297501575447012711332301587884007919597249593183757214424538455130455938899569401101226704263592838378164818498909988312083321870504770240285402755581042063441395513074447559292483964459862178359427378578932013564065868859822232967682004237468720784583128822009284175134712100850081785286025477917444534429870450189278122112995490584370505851369388411811308723088879550627294205051170823348551057320657906183998835848258879991469494799250551704114470844511243698765516958795414971025411824869222581776048176555758045109980620091302050773315783737722953002456344645775272767769034264628143858995252751866748019922486371490009655072875537440649420486485838822742843153752660081480426454924975692778872272004719707310949266409221518830993769220248202832377202171807630957936115922586957942988803543876079585281032089843100376985517200482215920148785440785803024598572636941920319650717488349748660645679047456146669314833850541639321358252607044382500338699950870339050633696986616559529936213669872063434079315174855801475193891919496424832599098461237872222966077060427211175904134509370471026320397259909263678567428913122222747534908892289798586836452577670170114333643756992160153795658950503188079140078619927705880326275339883029531506926232156537017191587719188985286902959755236874542680285874611105637769677326945281185801775890650575723059832685173406625506039386021973756099221829335338351392495388974631121174353292393909882800777807282171659536349561129284440913320085518553189389224745453593417174279667960702647181765972749478117509368845943997052957251582091868055344802515422229447381706502299017010083089960331367487600872884775990076829100383120259087647607142002999774223880299926329665857511965686186734355540584788400673685525795066328656620200082324569162895520455654338598597487078187353378913875604103610947998041626323646538813716256745623139746791438156441968310181394695016598516688159974745859269243929796205064623513730750269900093545235392486290517691645005822372231294418449741472721537186268408423059292915826510948328018962248125004253930073136465866350085943297029391453188581065911541545304197612150251276568039040994493431107122996213513805325042960081200590636878323389457263439925288494237954012766597449430702612294000481750885063765883080711347045237568944905264868470181838990202663720155402515612172370603566927026075432240065528955542042667655520256256934933281057993391681487380132477888895418060136888102873611076950508122980402573759459621921246872930575177758365276362022232449405143395107579057453279936800551757484317349157874042734630834481476545587564296270513688579826191683969529325006806706142386676034904170078769907843621598936293443674107192466419830593593862113632126166163677727325555290483856039360680638582138961492878656967768893166487131005120537753371875122166402649398999275969210327252456969927241968671783116050999267856874157260575434600487245183300360802588724751761522638016774125490912126454751998464127624585534710902820955198321254176978851526578398757246829325300291028096661720549766963649224415459221709406922172445404429903891307409729617923486878358546531133369524467143149552968252166524803196507157288110710841318278874987504095073788521358107947034074234351949329072477382916377217812145272084487884608647456488379585759581995620129917636260986080007055605271299719539227123985655174598235663513592051287474143182035477881337674156512063299812329526057430047694746427966670847858805940171507474890702136594051280615555339071141754889482585477226982276464193319051157959047449581806042070307210450805704012182547934354823433998335494321188728972765594209928054490844927229002447475913967278115133393340736914484855444183277910965034412108230678155893714599880129093822010636926792013418633188876085501030280933534197863244297587182547747787278369750364096468430673495076767157362881802736725667691308592519644575309575350500799449956867250987895976730380240558759763078051853020932625423724456235048110558948710055736520598401201792917740845712672861038521488473313519976947529502321997429424356349698768248484999340686311605680236055704183747989719285353355790978675465756999316038588634578947785020720857286139093302809695398379578419787767158407714955071121390059469681580290251547059138796183930449661447241024352316789102797075066314092466497073047998487840916005932470254830291049563336367770941564966116914533167462539693189888069323558839019127962183312246635536685457848991285940609059301266944327892896387002707157301490190705497455467176506268593093005659112037391436974907150281210983508083113463081380611933797254891180044586551077993885240485586000366684601478349575870030010287193856679221296412764958667554098483683667473002644972087544956269129383840805319836567327180845975319740408175440154648979877415070978687971448626667025192143354978906475451647414147514846006816288146704156999435035904948608142620285206295311666377834851270473798779361223995573596791478803618961505043384774225647729286740304091814850315774090251928445160496718604796673123675744225709878404597566311768964576001769884505917590876969327589762447989958392919748895496149833553819931571872271272351829066901855371170937887200460822651333578528061140466875005504554285973731035641054124190755465999711192195837927727573424712066639304888339633482616304313888869284346013459402079934019706672278707509444642762305540592152090721095179222306058728162225581636234088644284910085499230153234518346858027151667501469893002646898357455192611047807296737734624678477480862580484820124808489024002067938774941302067537945183935848482823952606086503150586156060033673031320829289795816789816899132575980240665195317536461668426533057527368852319297723756812668614752037474255409695783993390797787363198212292051291253786148859600497518202897745470884113393470185982206588226154737201435494967265682129188206713064135078987558049430382453376506925846041357250426262205424455904657392056737406156118891738141476823170025494306076366532538750308675008795000020963672464493872477178724749022112241544559533820214335721782995624382687506383954389529832897665789534784291133266807090679354341332686560071646250108161710145169515843182315925840245197320294406679057168221962851730778293814083414378073663726119561089173842868214560665851718298399297742301073376491651132613933984603379610554160986415894911491130078555306076099623972003027376971652028984466093554154737808382053372504664430476462527704297638755848895606497962931716803413467042576262944588568933301832372209318516621615307200625009595255891501048032912958393603470198876886867838467781659694792471652211916392291877602735957646570339686187834289147644398649808331951217715027195999682644067521908347400075682899124871034110697711180157030260653484977349448708302990983915639763405031197848269766634114740974675270847064895295244968693077444918117847396143646712955066045773025201069436397803889444009994931321357831544108005330698015218326663457031921601692908686751463869922164226116922208343417868539652045679738452138892557756796123624112986890331584399754103398168632959317708023051887469611247084583410628210461071813569264812549654093294739653704777855230255282738257125671081755833558645613467198981117952225919815679903725945814630887784600353530507713628582097042499229453234128314402113561140180352380787207765380081867031872343108508089954239855491879265341316501483543888410709797719218411155001103498432426974150136798376217122969911832268602981410284779985973702079529807359872931462256564471692563156540798118073331169196296343050808492706947463445229937847849564695797644639890492786863787418082950439934600937062455904389821621107967901772946798067774109994962210795525713769561087248311172003713818861087078834904998619307076254328916849396234660563190584482165100496841414443011846090443115390095588674338987507556316535627358299731984043371461479046534313143875351824957669177012616336554402745790294382655879408990281368577902470544165420242521639682434192529841576931838363373950595479840953510982466661703021642022348407695818813322730264948439389277799650972288474718559029758018259788534419179928867252858680696480158171331894979781760274153091506503830617086094542573984109489101013710076047099637671579335273115038481827257964164746153046413295418859011726438333425312189583820103039721151590691708478372583315334938554951676890396092428098203793862650002318122898962450373445160722275685083221382771788207719540093950299115254408808603204084502111486172190009430240192289026992132805408411581416253166658233157258207632116561416817948384484280510310286229629308133260789270425682072973336815297813567881112850564679424145720511796498627842681321357004003073292986057462667552451602652166791254513385878749806588121714089606002295315215171134147321109173891512495994811110207221315051687681978268909904187361643015021594790075529542340720591496322822889919183210949546520238895475925736542187386584274500870856104436126604687379480340502517712494182012244994581990431960108178369218132930284400621430385563844619267479744303455154832925150796840373544026941533212912555025661955411895575099464152135116379348239984860330946892075384028626069294961357665053407422316936123524017935817179465582592343659200680146983594532885817284806354571734973360097711490137056866415617681681176120910923860158834281372050217028277884052444188057123414776811208219806803862152329523834561815224636420013403038637349020585718804740485653096489918262670596614879701234231350596138743457708355211620932487090089692487705853558239551415773473831210016433866421634925784965020792423427907011901030902840319238929733464852047127055760977494177146494128291381367451434478109235053807027170522955536029045285914615920178104225919775291911787087704427210879116201336883928201947980703565898665773318413928925722734130246453524429175428116717099168696795159172490168894673033078269569582531492257813752047030207773889062856264618362740765275315349708037623856291949677945447348101532069498185467605219441233644686619952489973550203078984428618218039110002643238858653915718537578594592743028074925888625560839614020869684325453608527465131830250004365990574813953587920360892629791227745712065686831270152955370175376883627867521521659062873414131730226212806927067324500233190795196619864983885290315546565980742701137230128221742243437574095609729058545973322486444842057214049128063848729091399006159711967984665229981963869044403819334127006547435176987883458564133697088521086158027195664419596789437819340417194410698612711452722599124383952750974135427682245374166601654131385855885864940173176896611604995965229166246353072247082303088660141264409693956835478447325658100813238824367409972491971127691327382454160636301562589852460328126063959920293553572810046958692758802835302106899757072679937654673204332240645704230603519522170005849375076953540928728917596947041794936870936621644071981068515898940665722727540100146093550845399187134137260695736654172736664963073097712299891516239978354075240756545874349553510296955136801601755249837026722735835417990266074288732078430153258250927769589368508212586406820218454977716250604796859259155570759247298391118332333556664397389474835756638232360725258118186404525186654454912882453526167232663272668375608923559521341865958654638421778995270754691437046268678316194980095582650493427278291315387515236282330480355841281015783478174571204293467977361672633271582590612793834864652107272518927095295783594360688225741164550089412997645173069742003485835326441467977276274335856675105475120402878418732817863089208942680440374621693036669409277116276457925751187922232316513705384353698569657030840320871319424909760491479597646528743895534538272284520416778672922705319278407693421097722975408248570141562843856214473207853363239604717839895750942012128736819652136105187316159545487755929531884881670520235700425470368193725602596967661349563831463543368290278115531853271943308800571954403600976487820725397879817189793217502272393845771644847879808521222257363745134210489763146082928894224327069809415828724843994420852342080320643408471755885558307262155316996508605791966243171098280095159191617775406075654205252804500370245352884822586167341046358656136791948812790772240097511552664336781803376726526769134447610536189856071422361755027362230259406488958678869916812672356115510896320316911405982526816885344082090706960956715888575961459974458416624998044572115363864594050032173339159294551610563974837077083954510778807669776060180375447407383929967150781589485586485255283586860070648020635433332120066317410750112862879141369640792244283106842925576104836646201141671915737228028247332442147713863347047809099254007185549958210260092235188984675061872761474515626274305996586691825923051333821906070901544099009561131663845109975881548433433934670179887858382837905913696564472484366036891387363129526347709602460274743168185535613701608894207835318782464611594733776820147123798284965029511571766726441290716488528543501814876826850244259939543530751157706722704096278878615231585799766942445849704092184865511617416087287709628232140283195936864533186525962750705670703818926355201712866827080598527209768043902153835382848557242947856082400270278770959978707819862099157409220697981844820145513047832408980262287943740989586977192609416975079011300770456980237118467136882213436250002781312481701898356788591560866127092346155065160951972296242241994506619443953346179693665061388195068870442033114463227653430277781995528818573563014825468688973925381814312332656561985149006725708124347523361900965567894418162486045771615230490727412132363639006733696392202202443551186189270353997232290486554510434554726241887851032319267067436728168602391086940428414444225352129837714303630961342853829340274545242105691099643548162478223474735457823947115560839376800652531260688772639528992840727308545681444342837361567036425267511896649211950862085597483898161571891192608872610979349452120091398755216755114691814958711476747021261383262367659243007600975585523247248651242567175486278797709685185596525390041644521895007585105476184189826891124689576508270708557418399660148644382059615698401812076074739958987285779269058059176238058813050255341716096013773149783389396132559595637919638538528845407688382275809857562331441522620967602705987676882808011048332852098611229062666381792940179912849033959835380052095455742927358656560604403743298140401719188992574719602131066217506994254741912838117733829268179232289497563747981373611603095993168093941008747291424609574856948067030908250354099219061798739083779457498100410836102057711216656440749355711823002044076655338109247402545812177089407134784953643085615139409028103402651785569000247708372012527023038280235546673424673528714605764940099508868763464405257388191528380003837376079999550717175981850047325387396073733773952384557715677063772028327964408592075131093288858775549805594520895394128983008978538284297967841009467325825750123665365330693871298265349378854832242751409095966955502580733887112176371202241837391314170909067576178027345686844385210295740558243679144636059991539652878879041272260139492022249069020070642644548120531463650408668250320971894801093891224576061114660936701091566378417603337887559753207856156962698738906364666189458279474232719357048764991057477020926634862129942466128229408503462920431021964915843723923722653137180990034759125679728286838831892962141562294804058427054661946993030524879866438027348640530257597394368803403171560669645772700742320467099197853612470035457945599689869293863262955421934377146026347064724660180491854459546833540894438274747902425947402254931973852844054022818317843636887478272865691756174814888117183280260716096631872831613473533346694447224891649641586250906543889523017518109434334948360827457238531315102557379881979883820698887463123270880795913750680880953315687985564872550613505484433837577060024276314355895008442909379957187939361841752492615188297702070668727578536267522694142725904451540668516076919119404742749164066084051736430224019295854500783963251879936449753167488220950586708851547651985296816623857319601020297491765130548822332406892636955714419512215247558661370820790199801083122292217250229824137579740068295833714158896901014301141368194675429167541051336572259048626929222934010564071620876533367721585038115285055725310936451612104075820581240898357445501018299862234833808687929868103575858918625702959934464296348189457902965303955537129943967012211186568777956890777687538553762581184992596648233254356682929981627497699590528390113729298044470784234308614897096607878868411852224812317842586396144223423335692850347591631641397191770142640695816556327803030759174742272846817456615232191524234136983971956085708088067098561352185915955323274173264943184776690446679678555658639300268859124642401052276839244175894777613498916514690593360416432329449057657040716980080287600335254344602264197124463817696656429683511513757789859328072666904168875903063909470890075870968342807355453890040526961232334031404604064605503545203458989542060532694086591331725390618715572161148477519517078921226928975217154045978430998457381432399708722126382135134359259942959901578889871158052041007713812935810224476785225175910649020943083703211938829429398256481922996492327769008046418616408016333963891733741606607840313286997961117866406266933465801953578335029548436787969522051719240031161201581338666907789749670041055020114627705501325865927040491404759253183514721822022591427736030579832618192581791817713052988295737715918375250059754805961047215489246107728517616647591846554395629012540726376157010927672418869575329632743101204976715625657333290937408527965870745028308223993737687839433444011212260402189672811854552366152810049142778353102052693692591493751642506126078662059692109811282894456381829369262428823197928647000196971661507880485222453212275024824758998180856592139184538943414307102343263067459325395583712253807145518946240890604382144705291476222695113433351427780566598252344912696648855630403872285499441514108674171408650153232679997063487298249168711671987666222037173570182368888907687810201110688136137245058713612890219545389458273507636526009546907836096123506969306887236404721657809597582073768530246566331898751658148612957089184922192443207044386854338910150809297026033349327871026763129862724411767766143074308539552937043197374387632605747945542759380937640381414281945854590588649012720242522993704527158358279917879981875947546626578762150711468495928832865022070187153169452716860217378787465798553813268073456458846553323217206706050176952712127158552998389338745586396340455324445825377988967766927195693164072397624986781633760159052476651022237462573269721049161177862042621311870372146542215849998172719279560904522310029908770724469761546111864435122549518545811828322125540909694895487816636386549298410236826727759556448092367560307619831594950801530075987386281224156347053838420234979395991279691232347637559394999156171773303673783068436543657219800295856597698484160098774512234319773453687557686379700835016807978893649566443303384235836008002387936274710811039875416942149708450031362667816056332457796219066818725392985702296898195918181925374471622105687829607045305256181971196189422168246688523409359581675100143470729085591388792821544929432470411333022357646358209510301615160048029032386023260519380573565707595344971247162089157241189386834552223302223760518571389539230241429890903167140071244734215349773349985984166765646951869753627210814024969552271744901755033557136872608450201662703379677381120363346921418261519979602502555132426127610068449222335915938598185128645870869511611417901502369874457945127805248045207243572829144924160438009884609041795388531350304669157620447672794678095996938268866400518785539804489562467728616057175645283324705529718002571282437252657214460222155150528017243708619372083233956129546613792714228229443262906093724594377199566781738107075892121965056652864111494705898410667841633658890694654437267950059616595052674154478788237570477916237467519372639177093937221022338342140666963713293007499900616959390158914635932198476543908033821184443266008710227581127023938758599791531817882850569956999311898578334207317833415078088117604017467659025850231125257835249701893416347985318410459722015293370572237978481417875239896115477220430023675098651077843936521065277693530462698150143765126250460058701996404382375091523713624709540769054896212484159021840220238353432148881054092041932191118400433851305453343823923671092011618666206580113612541752520699954765944526719506525055073614087887265298919183403247773585014981660642558717557706859187325069729934228128773672653925896564152152941207225320944330606375220260491952407991783902460204577223158145759344354725641488915540197390340261965570908516527007537771039573206864452530444170149369899520190571062842240788753837091454920262658883652460461414389589303855503094777576086035713393002364912071026908420946756300100331407364469368232545607751042518957349379300351002937869841551472318755634709981542625288655424850259176329769560477258198837869428838471983923640139554295025571161565177838787861333768543286013937310417345043184873477410310809598843527038678070384778867640229069660361478620064329699006555751954348552339093764430069749194527263442703681013707949636129859643292332963932808700863087332235286474510209338034234098896110444751501929134666495128187312497230330750597123455796536720931861523299709010118387758322767081840336926549008609460404515153403709567055982603641673329856020455933336200331708902175886425618223450571592988990992894248948420332323843235973692463806469730992817649740933801415080446483338083972831322313729052183259307629802330593376870403340655440073960539909914682651363144388987464863438336969084949085764103592097447691687242259197295751123614414063050454323503100621171145111570049576064490547703032574995221254511026986208790342443843056754935767017265698345767198309637628152446560967056249945291915998835016554086869008037960894505738079162191767046011174506964669289656592220075305340575314100545660396263138077723994343461901624940483492011467022165164224797045583904833012068312660329001600687277030997993763177689815907588444518483748177097686934277732647716357389714213496777521644570813562613290894513110130490113636695638084116244937703332571446990719864028397906181778588193180535286242909632924961975271498372318225909856520667347302934711882052976010682479394435666255014938755484176079558333673055761100038858449140199221677768145245056626552021064880585168882332086579746327859367584810248886578275290384348616975027730724941683042264871403169587052480133295655051639100374470665550826562994657038887673309916213936971110555228475628016874345941272764255098559867737674109056854556502799986274244464808656181448942028866591643281226249897124256534673694353957375467964310314145665159632133179076606845481455394502872110299312950981159717504287102240260793585714687474131138826086461360669227208121738461795979689170877498724995323612445293846043600456922184689987563387136261072723394600092634072510020721051212490173504054467754520205119651386843828491136160000556242114422991175101109548747951481890425715017778880103809443246129373165049844306785447400018460698828283112737380671820759128545652829116767338582907855500763137722054160276021644024597583274735477940000264285892065052038570057244817405007172156798471470954093107766053901777367832650207251664629455047221378231166364196461407678146509302518669037356940968579270532457139188245509076348340515371981219047963630964956525768555684977999115239378964304059255737175055658853543013656622940741186904035667532677467946200778322874812439447787812568920082970850248110165105404236792493782768295717380569780582333306389904371430822239576738641480111864635328904911788989498718228652791733165257577412686517917905229955171018925217966534274509831135369154808250323146812037915306579330867050880374988315824347876324842611791716071494155164900461661638697512518279633639419936161413455522065052271479405949249259172689665562321005458524950008835257365975880773530019918177446957092596616458994184770154325276194271394780567477337047569852225453041087391487596347972697939370625767465884206936982487355808829721568204773842370964757615106916320327550098361904656210022165678512817922301474254719886021659865399509333330352067134552846041168813092978227208594713717964255277579269201420488393159202382275214991929435593715925729401549930907723955178569660326897607168358404459073144147745055097379128739439085561016140301404267133482153230577555974036695212714767181252583213920186585387650217810038171838889765503453585849986906749178333240203119622720354110529900630552690188857913063268452508778007727671775930283644495904310802554040124848790892328961331141062383379192820934235281012382637884141774728249088193690746601878160814522649952590594117109719812064728501946263801564383777374728642129376882843952007320644339825501025921083415014967633703656314239122712107340710079663216720754401811853484624504704402522024309564676522495415276701716128092611492353341731074785025634082115156507597284168056893015108804127676754756528127783692076419844884331824003627379957656426741772189140703768010514647654565608656172872951920579578207979509056506522190258043669128448332570520914711257283449596621088454742719102399373176668549989205247672900451258923130759140418583717336196547573488453693332192393498540166702706508243980117066192652622653317544448677005274394219558180831492676564626869409537426545918512040387743504727692203080414421755324827284368228413685184508397707260133348396530701699270406676399000137139584157495324625474548628506815285963504696282594143910416368075142236565137181779005820384135637163921529182693839183303362561423076855111330416584364946343732045477248716666962351612928198645751633906639078916383128392247831300563938171061139895434608239436474220260554486315979659615657964689811495231067302299693289359357749578978371227991490958450456561291759164817694723172886702904118505133969953411255460605105861817239976967854503260517424001370717049152776792544680901900346676753312931350986913856581271853319804931124177513002053803490516362888662013063218740726593131444683336859319532015374596804526272614332890772707294599325460783247790637346741706057150371332634690737364613026312671452227398285094398186521826713006417542873778513906150900584896744732596404355091920300830772021226138505807877470503570224839568154942586381700268240392812547777913895382874111759880417403623328534603646388796987368374449722309331885410266634616442852157297654697936871494324489457912268652454896402816539306017631522877017269611301954906148525033218706479836667380057774148341879476131613121304540688410645555913937210440323109908358047945005498259217523008442830004771765067506284566024233922283564781485962864225286842333106744856512602557573254921177628432876425341319100659292313315446563889485871701376467487860486663715646797736455509380157933925505799373903213448826106802011303222925113433886484928715019314407213389701277455994366110931949490610527059639227410425511444302432957044065324720873901114216052602426777396793159451400547019532701046793940509347529928955109815139801618800249299042508434331095947750945496703665906428677423683491922542298626850136667599529197203992867902228058274084957122661589877838616063793932964294995551214517327897849224053912151323414465576992314559112912170265796572882350226541695096880927655603590830976764969480225399591990337347123801245226879838889371630151807016222845381805844508357158474699599386921668351914918986388780087433399678861867305991667455292441530553845870145896718713455836642445057292425677023379848809065344829307122034342892065047908144007862002194123670831940200734863830974735236240494393597380086630666945543257993436996704384177109401230644592892517919800005526552360445355848594133289730614861502940334821084230708892343364722504440543307866648786215801294963236475255744470286912244887379791185296736928166555440984848746938370919534034693918625378855317853325239367350586763062894115783414474450823019750722825568188181164645999724532948493448399778195920625872812591321133736215916039313966340226177112017683675196277639830873152577330808245153716618013755133607580994379544897798544602961841453985238557322928958579175302572375722112920327560499193849219408426443412429526009242387763782869525373673564977102803166914902408254848006632755060965759009007532205103432072850486697119149281815862472654310260889563625265822419652461640744272501134235802476391965072314084180434992061864155632975465674646021075333280398941508835538147688712939599122969390363919396490255919890178923860064228198206556263348012063616814454168055718132000255304422371691869416879756320497309248447887558882789601347941055185296816000392381846523427241910522112043265192186257899944468187134515396960532380132416592279443736315265075194096738067764145769972267225542519417798979043096817035398830305618609804653068011113643288346331249643333695108227442659533558578126319728780369382116791716383919460973757761625008794428346554351595913618345065897789637267537104733561172439576452407249472658129713484055030144581496747706925863485943437190926727935511588871316593254836612121624064341572684023651124663007713382363273519288794674728066313998871238476888873475017757885075724324627466006750749346355420353466397847518777140768067419754562213947323711172178845719448151460436632027192627195047580127447860581425722427969518498156599213707090081268966697112995330544062585059208499147218071154695185379971363263449736227385329084144172058897011085882154123232320385365730914224121573668332347494641948547801673807687080016249129877866096372259835046775173491299883010318563759400343266948471839918504395431251184280700209316216630073229610167921291972073307422885629969772889623735233156631152096494604681989291984574041637858559233223622312135476877797573114734816348284991919704841392596396873439563687614009351762777150173367807444873540441366500433707873780464411694966581943524972296523936244660254039857120200280287827422441080082612491221774505054414644820624658720468794115043511031915800616544453140345012435989011849887304394314118037674172079396535112945479960377903748108363711704798086065112247875572722525939189886756916687679426191398255061187254769436277178159045760390191927497609699253693488683644783792577298689065687019687364764330878108108521228422167474681215074289513770714319082579132775757800679694146187414707146215438324762892817232779881638885988742027569909154071786881488363663513081545081984017375927504325341173550226692644928643003162886650773899569063099970453523660027482384429438868878505752960898968209426178313822163762488634508285773623123288800295728262429407407952612994774942785841400546248090972288273524162780336474323685400873660434112465327352648963920790486186220871179224940418522228594542252277815187898615087321670460342044503193295132259573311521039660330142092415365905307656641903809711982693616825952411986408112876937852737455873171743814013899413411384250652630412647428481660655324181274872794900265203584197706257161200561119447332031940474135453966594739855491634631097176888021446199038941993080309383334198412944068262940556290007128759243814080425433021324183658386599741229622662386617837301736226995416719507948804530716016963828754247048441680043519598714336051533778987265188658785358815828118632031141649359522398810287570429096744995159463615673234922475723770805006928109665460382368522703605417237041411966472484942776835508291002025536724456532549015105360184327793390085313301723735975874763124276036406211609509652199812722893707264830238069190936599592908498846728863537445792493612455520484348681011294262648548727521174842243981262041805876459814800656293715112834686815316496522709895151193676445435785144466716463819305258443941739692662770050519918652851028073902369647469744249518562515992114885896117981687337237042455169392758772330880344302769725599262280800091591210327646102200699685335899584386634647891796746435680464021226087748810706414581833396468793793779107363731888540266600060044789010062722717524382791689094486262299821327230135403440055698314027023760153375262284746272872221959745741082820090816797356042176282893889243393802311912355647318485742285941450733998141613264272619855921279223757512220494526740253606111032768279093529803669422813511658047396833341831077850363823281457892370354061408860658625334882463962779047505380674885241469584211384992153718012589631327493558421748338691798742784802889564712686116326742414581350628959173358612092208131689734085481100817541852691722193707948088085797585425836544067736597522546369175187507375284198653811607197651014773062389895069600383005940644930195416433775132239904959055533669146140724701630629597405015599391156672645797115625469192571771632839375802012912457318725783352953618334409511274946632281225201970134809674734263925692967495302773742791261884938562050833895437697079470190466417053619851805833387423827252622666084648265148964534781093763432216418266380056462457876765702201300620732752828519674254885398794245128102476595250869912318632797824365857695758482957064918288498227837544130761892503399743834448343594644261258646727544195076471424997079812178111798830052324619867384632379197642627799118012658483074335446468044310181592442084809681650839928825712602521332513832860547640641350190212060910897195769059037685087598606402808377280105776332157410293101607670921876757052964021348637692838403225537559364495016626005412470027210317209770910916230957252464392763568330414585728263519180754949677987998576453111120524606737037402075317919679344821890090420404160741318918545091169687270418654109460935274431812708201232841854265344542045037041479083343576757177144279722594920729074031975623405150992975509871304044803159678266911034227332860658603391934336758141207310954580200203438658706354976841362444996217672456804269033761066256934245514069036121726402911521355307045483359897214289706244408433367893620631611088421624636986964635437204881029698263994241936690966352327570305820086164048643811877557178294066567673940052514845319328043415517325474956145401332618343528953677724385583572402100447715549140584689553880681487630810663992293551852591291844587622864980213032166553381633926305230473423518788906269695111280743303357238909914111042930349453730714450185267194411573282287822473900871724617161291343339003725647916551074131018196877693677310323206770596835144130787018118794473559876829741582695062037461161925416224299570599842055235512062560462157843971414236910449803696684829025529493046215378186789769266239736265074430518006633120807097963890682007671047887605716712486786735408221081327069483970918546305800835338086029606107535213129892672011645721676120372146605620845253349669543052979711539118890584899551271402637560823642551818612484027527902339670667756172491784714968686499747074573681545340156945919163506512462863135705123910795666070806872626239871531000909806720152262526180794270907991262563765538292738265725837631618058058884664930972726707656886879539398271924755287818900200521804963982273665949270367429692084990644131289516693028587701604614042436213689974938882540353815053337069697364608430939400909473389374356645397850917803680603150780393911608232977151032711539984572479320072212964585992841348914201066384295124855091335842230041529240795321965738164091866530728795283454913503571038429318145155409690285971966148539534844668778109361942350964869769375543534449902734764344093849376171956858317922941648231386844886481629026396900091017036079314375829808429695003178649968114577571855070652371383986996064415623847401733525143518760315982102035914669959714616244960238787139495349047651773042780255955035180850728142234906516671735359002192815250003793510210138160851551479455607970634086691388223060226272200665882897138080295616777677646717243351911821583896520025990140724346576244473457666388001503675827014359135184967336665929938251622232809610322783330505588371578066613102795425512151610999381102961168908247285735962425335995750541189809168804085327168005052302028638926664951974873506409436812276040521339095723180846319136001121492517775834057359578074148190609267773686808350378546442170901681484507810682176574386188503525413540682315068230622045788714623101789017230133579117289072708950787642974260248647658465519515244830866890480360159782210335038577495656803368573863546233178689967950520228878467785031684800840610898542670253334089773199386398801384070552766976528035608707257155659833289765614274952027572573316277490358103824977421229195296297360429597523185528564605074798778926882627170711012050831106426892038145995997639101270973436920648790095678891934169680930483416751439036062046297281059932235419669339486695477954259772559265339714168560941411127693514193654084925489625873769850034982044732294937082033532834088350762109183199458268920861824764541400437368875847570473444439750549247065471627725492304553229636890911552582855635707420458176975762723158283327264528441223254962033376044245150476878460198178791111779554514113574539504496491011609081449378124121523578528139241812849543759049846031256711269095359766729210311275625129042967942488879075362769840926741080834827668918054142443498688001532406598243766635832167310335549012499053562086620497824724942209244378900801261673834297479801308801525747391144526699383413977209923578835462197212815929781025099341548205679733653929316132424752830440511292983971464574924154810566961612012788263568714097191368487672632325539700313823716651655949289153826033468687165991225963819802135371421330838686957561077684981464334586510929820841452597966654543747270704896812298988409583180532839658239810701519522844190313219887092567219148410480325051306376946480252851518516052092790591021019872749998782931292395224186487731925297526201531414180623293355500629940904333739170202297227335140535487290760285634915894460785098419571006421974147221051131341936360267226660554673803406779438118734478516841543934018646407730697977063579747480370737257626696078755129197141081198651235265629765204942823580910817467792277077387073555867225712154447614843933669397829370847871946071016859770422587872449694025485019619984086711155392286608982533267896815384722768460656241512575869916405718403653309630538611032328558416014736801980966908296165822625462306575029760207750406492139224721140648705609072297691303329582038295075723370597215205556548505367986622578747713477148317595085597350216162016554462048705809162924261988864055768563202686141142640575552867844770963251540375515721978673793887684950687075103977195076644102311209375123856207445858693791977558584268787967336733437016696015854879041502195500377989460166735124826737726593302770474361492199435456919092819129516899119993189398954817665791411686755313272772589354141411919072475673622845523954648815673363912029208930670239711105881229916882934206281952786128014701392594060924195973965837927418935440569170720325293503750231623330396518585681591648798061009902460531073122667043357287795582785846207788803337415252241907454832372078188322175355262209771230994083778155295029425612638282959219460964635191379449205298761524015961742773323801699655324786614263066742691043219503653958249503976565748276620806314478531344071143534401735753634523753344400997745788117576144146968377351812757245752727524722290147121963637312324208454038516608772271356310435928758810086201976721701491083688168203998776159621262297980210363366231516072756950995907143276047389865898971795538037651035804382262058903878570496797347981079390839917531805075418447872092730628652048198709076170899102222083182856518512742905266300516738716105986094914323830084763434336516307379204115762445562087074742114064314230199535078396288657849675287225123377560715503128705932175037624695368802598610954205194049036196998617658126636481310392766948029541546762662027154243430150565753907946791668135463422787738816976504247841872610522181506829846249348512820799692315584178749829344925640858139520303050159718461989609445053141341432112905732347760116981786750472145221146978538779068641156611612294138139737710570823017461420968199856256923666054110650074184993638934823947780934745491030345293430728216371156879208687946233888522892082557574633982724843229558113911252255494645738476632892741501381846740843234600841658174796443186331963358399869312766378441907938044250319518802496307763583522528611424911538323426930434011394692853788027797003189292889959861813882896576915233454791342332661206041764815806739330979639304540731646645370075295596189566089150375458241693280502017525186384474368986094131349536593534256211814300493583057580079733893265798441265426533490184714702420815841077427275217428979147915515864941882488970798721694469346154799548906917919195553760436490728326775218500669523815234249589725252364300701696920492288767087767520331982734991649394607046027017733301929982398974876778416803237901265263482649272334291605005550103099272807985223103373668353443696212092569374284881242415896514967280560894891005428279514705369903432158073044657711660315948672568059132683637347883582245145085395612667952416944063867408580265580212248123232347509974661620730528152600980740258798390970600700784587608482714051062494001146334712901262208840651043149736538334296363128807250939675385084821375638299358697025486121879208116463809862116383363872565751063087557673330975583783990392740013988155749921268238586031737352027085958635322966500902268112254235756139523200733879288196115928026027907890505918497200973768984051293878121414830760898378876770909164014687378873378025129309911978702143779081589524204569337474076887632780419129240134669314651059572402934045657937766285599258119990231620463079788114408517737146844572013805888850751213004318382816440169874723426426306862286170675651377365087379688354905379793860408079286739168649800634199614530029681956898942589167076589578630890864432907078698204512770109663392026942882064668172704446324758393783367471368248339101223167717580793996446140590988333154276425856563899904674334764568547338221474263841869920103765155173615645915075805776562896219876993546407107334970718849143666562611961576047312429569732182411641960047336363870743444284821084840430936586655140896549746870582031309972110220885319491395173368189366990982232841693186340070940785511447781304909080752733529288453040402645001843438597661251383117968208295612424987188769367246699603248485828121602056834908545933393371259984082822916344226649889120716369955783798534914699869959761470822996804096259007332710375456182673423923508816371458259541321898092345095954030624747471243384979014959820949833817968516638490348788380645333795089086558261343997150979383966433662188044470900184120527729890715727761688606265466529907294490887735246544407313369410067529771168175601358641751132498805636123625888738297522774624098680323462148834297115939932619445360617410064337676350404853241639814772020957487978250543422274799864107430333453509890864263585630571127075693124691671253075286535013857854928325133629889249181724739531735762384038130122667180972398991722163357754064962162741999342118373650780781181090702976510133178289059211056870070048302864452441637903686695338541019210338194531394487736123134907696662767821139776630151122315341074476700025531323295561268109975767976525968988538572367249290547045646832511568299444693990391405928378938283800462205787401845236183518604393680952747812107774223373524980386081737697758189854377805255277264032786386890661002250452589494957626100578682418755002660802305630161355835013464028751200674487620315178171340159031077828417517082760701649269722296840727962150748941088467290284141140169742198867076961601149639562582461164404071231438049549827539483898220148956302356174651673020146114801843472893400612016705117264657872473639017202550241973249962784091607045383219741548911632170550486736660745475544723630114611883978265905694103294092673811145223957081152918670360589485085970409180685172649661560141991038532019664022827045500932613934213073965574579100520496067920310246254522337089313612414309346207227589942650144947625058196209925535043392024156960599608261384146083182895455912815846453339005252677142241971379852252030661740688952690002554420908950402642847672597972311950322265608715882853804068414949645005510436722909310278531795219660991859934816959778723630559104732624765648684983399284397498934270686998479583582404143966559498160091094024747016044667521401338800322883507533819649579202448332254402605388590924550354220722665215091120745995207886819275351874693461900971153977363985401349047844456531741203510202133145592456331779407627380223210390236375984712479642637455612473477195462541120022157461919051510135802869516733034660879090764676096538265441553971212981367489950128166505670074280702534184400015419037087518819285767088265399521900181280455241238063261264402542311145048211097793069946591918350392868330662810240960470210313594894418202110571186200254675803294195745181161048323011032721197319320145641120804034686749492214411373022642202219876002710631489447776179246381944803131984136973875972458291419978677873132158166808966389790774371122987735530288212597543706015766102639721735438697319682610536757227719241622432225504586643958398149100211619255528951790344190009990592557190382337944878431557794291754287759367780987398782308472738638316867273582199205235306106599472974745723565152473233708017626471418192502666752488028332586999069829163782285977221204679354954724132011734189132858565422866230267584757804860505480345985182103162469501791684549777645836337277694642895952060760237475631663869944105048904165231098132149600766487271709049636472809750574439782465108284146845095938283401051767028054535986548510175819823995098284418856617361272366891504255468640507924184936772468197659833828684908149771865661359943821091044268321593830876912849564371166122075793294114858996794739392072313157623079652565236350404498613087857932608559131433659388953075042347935439299681849612636172330853033401959872549480994829696037070036184225204812090627656879147741513035236294809400023224545624717056758711939965357371362572721272903225099921347813858800131701074790674364498164295679410059695150651106167209453376962938310506295128763138764913547974035701393531624184852678458172803875003556495437423611541109250766779462408656231410729943413988888416805853264486618536561493025198830633239232258757916400715876361400769250956394440660842692145032931879040044033709909472079259726894289219293085760031439212361311118281279439187716681609511459136732670969727080975447533811658571936802524449567293194012757888986146058578498677955597443367944362540629661439738612622002393469065353941119741779728306430018250454725792242618989971462875122123389744731131262777023634518228969830492484765982602725898923057719638715625183878997249571475060198315251228604027247946002368707076995111648402337391721336299195513389310552391384172959281727352543168364792442808399984813752551612146448851902722882697865430795965354767938201389409204109102794689943372054805558365561173252301983921167424075335555414453499188766733854914232374059842736898567364676587741926548698048439975838083816093361648810797994193957405436728893230996254164689460897799966885424132830146292593509412321298815320945711156617977789968081114053152873587682954198598135051319131372275814044375951740927831013702532502890319391325776137038289739053740043718555689325488223209896759244931008103623356688438519546240036757328906083165950390617404852642134324913311594654137216740120751659707076471328122813523730429555325267529295329703986262875665974552701718880161487842074683060520219629379108750217356258427978942684130832261762564096298985848039249717300245714886353592011753023811256525841516603562353781225287856579968300509639756840022315235413182885226463697036557127146370818523241680001309800092502858737161725704178938881849386018296336214676762018848594025162173411941894755425377796361488554046591426690475181366294087959454359291338817430536604162081774127766654764604560913325426969718678195143362738937560113731527775213998188655733020376358946166969737967310882696029782531657853308702677112378989604131112941107917062978460534202647350670507039423768792248949647311478306514529375249952138295997657781672690378707739799791608952000881183058781567113264810752391523000319358784674931793867193486531533936610363994079237920844401184716341724221860360241885758851667595085030304673105110317702645144523084889573293791050091443242017222587677417357497260356495847483700055331785903460741854577022837505386849609604152735636656757305622667670744805492836773002713254136195806453816866296242213036744857098890371149280349693475778278875909007044654218493545862787706720827366512305674398865580879328323552012493199959840867170149167981709825151312521322351948263051146061574100452755795017951407699034577696365276160022000682174019654365207300155414028064420944206964637756650493127214716253037480314135987274258257430288131428310725567264478656627220034418176446214957869613400160240987429121899395075575743077001368290323597082187157335209312555471486936338338375955085481119288535400724091577938963168208148762569520304137090746937602620638405764726381274922114814266695129281614488310074051406489351434813195202592514975570558010387261815190933978623022413015164436489142732037575967648173282565415802996389548739994746358100544312285251630669584832894650222929820794235822405604315988281807048057786652663790499774164675455310836702023645063653716206373125585419476380108142080508322336239072405702797140911429490696216456925653347036262559742318430323012389523091099858267339800249701810949974872266288758310855965981622400409690099338658396925099711713711834170452146662160876520528470473947599536112081497694807233947162596334081591403174608758289285961145973905262909042877141015300385017854296781712607328690242965321450042358061307724214387604419580590054881508279628882324406502718112383183163776972179213115569639927409788375855588298845416126502937571693091197742576250203675626982852089261918009076376736864786170468930399350706430902555204604383725379034508834194511281742539614766178894681987064473032250092051360696831697065506990775313591279600427689485943553758914177533082940251480781917976147023757077768651438024717311555656847895128370698338603132930497801238834340334605024875289797893166169770444102883218173692962452928010046570945137106078663630194954165026567269627132772578817003370175497674793240764507531825288226263944441736522441968886715388134138896732652518930066441170093739914859560725986809064261983897642211053250616746677000005356917097491892819388160125742904839135008936025791991525855903776067118675598372540061464684658167604335178226052607214437949712411348534529977145894253046426132251828921754177086648377781563884813539251174610566549598914539471657785525797851412596697939184116547913315089540454885633426406662401492889298387456213004368365859366817762234585412493432016190068576034949399875786651104675980058368420620164899421508439060916852303329883021165797618922320017370709848263055596432209024429938741494964128210051758737699445586945706157028980117091008124081416796542149617416658845584731098990229898699119247298414366768596172451927535429189708947761382090627351897317218967939705311677842663621587211499323093141484185133705124354811935970382826472279121434968973682409292474682003695842893494911065647684942781767876220376668586788683588130144731159959607411331615214352983067783001141156884744423783314780923392031753766958036570863452607826785578021055627905078387580978036643919126866906064862299273071983219364017194472309672026253227978853483854339770185716211409414643818110698941971771054616483208322175350263874887984006036730352110416114773317362400337321098953631000628353487737883414844590943943848173740571745589000725341566025431085308012168606645058294082992809102961267820167224395257774015243980117446671357517212229273249030535885252257543949282608929760851936719818920513863763990060711161307526099636579625650180572365502477104424271471104878016152786364531286084710728903591211602589751428564183060122575215243028278342710055347114631096574125436185251584119908315633525681674445094804530470096850104685911161791476404453291998472798218542926578867319961127305970028705864893935275854068119681320262180866679022071668811926938600753605266961186018030342940541849526550027693636586702920252142920398344172750451014255774269684842475722394219692706345016640264352455044818422470068844554342423801949024042659910362921571009623072700394339598916511686937322190803030087016821198426613161210491569559670795018128128054337130829012095063173669166867190075923082167974117431457148793540271550580833320996026366868874119265730013686778904910965311285328561023260335295843441375981124830570135679516774627085298263723792445829341551292609032519415072291966695586305941857782494851423607661946776085846687923464725967251701204390592466850767140769903588036842057891559140931692120987969860340429805109981083711291274718659257361696478551549710709596648076703863400458449843004347127870411863542739230834264879710762837733264224190031510148158277827794469723779537378664670437001439142884679560932447426467826684979510093605997965443677181563208872901958469007005971646095893523513098138196149141457239923449062032232326069500768257413510018242999871724799844400757920053825186422953915599310993253257482435316604220564569179568534880875975207477127155751150655967764834360241826941336797018008910814765423801631329117033057368299024310651001055037026430422119661209478833395382036978940374652747547613633062507651385914257737416291577378562213835708078824812839400779673531187755438505044666859615365441707137690363986549896562897931325427855638113484683184125933868180870219115019029463304435833615179403424801866700238280629088426495023878690890638804242375133657730986953427986562109342768564399334612723993467788753480976077972813053368558785512481774508519726390374319574848734346407086369013695915079558936979955359743083640693591227306478697441334496991355900239660994333526022801281980982953536550986560209860018653451256315032106164646189474655558069821112048514251360048595955840121792368345538830170076946860669528261738956865138704840701492033189510700883807360379982022314306961336135981118895466725029861304401717956018606301020615069626835674964257958002144201316412548138064550657906009515609959779859011046989701476439449172393209080042705120915321303729876183784567536367510815048367218326509741643421704961662595613427345953323437057115645095069945652207729526397057881377598132352036339031933891661824212468884466505507745700843417703657434846341923344071199188780504637116278567863622956206740913786257726507546333248744079737104307900762088245613945603434600459555569180054454880213216983582709154299795492034173672836108251567535096347220812838823618989403406876022276195858639856730166343935371271734871481119445890326414807986627804650941812004982002086964931503349964169689143700207569812952509189284805675433746136853246093112230551144176898732175331917491506391890693809014859757783424458635435913643568908223804211621081057289587883397089711480825551121379133499534579107943668947668796583781916098010891365931168046786936924218735898155682846347796221712410879460336510372108242231446497556158050070903261887909903113141422681722198995734244535472108998535262098062255206900816343673907302448281591248888571428042211675814509618636245351572107506152905568817929537773690590047653879478031599244509365336654742906588399740770082356079983003145693402160568389118681736662299622886628038115795644175670063569290928161903965238170383984275496589008550067644664636997589648154328116722600432980432066461870560486051516243144082566680306313627713141915195865240121235123023029367450362872847329150140652632470818663676881320431153055715724151714850628590546105444147955057005152858415787812550517446398491343757681132545004665525320979674903287791546949998062668279829556720263129530516610900127055131010307144384883274707608696273777672630336434771167118930909287408537502930167171186834032283130134500218717979225051173804761870413304002533387079625624675811128950955849026835122360676786604587535202318180968447954736927918370271136803505701339149449885621857899452909525168425470209797331874033002859560464664829228433068102628423421391928062864978093474820543397355084898538006184731185854340078799687751432114218328309367675069834353877079591761142497757059746481960800141262472579496896590204967112778183168956287939505965687980931889228030685163943611423811606627070858702087265951372622752957360496781648789022367287788345061444235552805079156618444486383156775749487878905304892831401753141834544398530515758438844248533816045296267560645523942364061963097890388083330728929098937893015773145623921014175842611095597275927759561253846392473240069258409192569472122202432009044541343773416607380250866111984481362789342494383130927331956156956707486972696269454316436050056884268730050882818535923202590349282380668565664602164149219238668203284360015670757135958284627271237082379921193421346941519836343832101997292582543639371797700806031135300454061811029327520509818830100267889736652705551631921112488025009128153550644918478316698681179615420060428016638989077649946203933826275250277306495320037557290631231679812511547532586241146530305541421093604805980880653894361743108525612064283006297067021642609481684369506979722049483123156078271177400853010682124810943674564681450708112884960346076172833296310109109212296514019173056786347844231692175518629896599545958195737401527120482050953357285852130136388007326308106790039663763225421259187530519066221773939960698794447967538278875355486978154577647683344068064733162578325554995647132008601635076793505760829921331544685554723097028461357762148192168185408638617488881487660402885702143635904022712867971594275437692819911590824459588445419405685424783743685301824663746325328967888897186899758544075695733405830812538151319813832133096476799887675008586569088431526466485834845365224256179547850268402449557895832040743865598580203552071767245298243075891473094410835225150655193359103099318072734067134860070640116116595454492789842984767072172857868412515861565029055280121967006024346095526808720789270365072838917202220297438754790455468240973114275640172753729368316092177087084625928846780073645089655606195741755964863439559838562348637458887403045045286754548150462381286538745655782895475697594048521810789587347710198627698471497163588883274432628826196994579799627207994757165937522839870172707022343162196989348737363404050443131657214944883889046349062883498700649250966705232488891720701755171684390908666688004697568134467220813268372740343886987322078962475084133882842231504307518577410687509333476550835142020953011361683047679541498894327534158093024191104748224868712347304086321648742446020617651102440203130303259509048862177210825544787150172304359562185798941549730652236862573511138826454034858637404658318665656935267659940673503504295849570319978753778673334947276493882333411487261044795729583517393297448653844488109890312579411659993863505451212467631991059951941829796865876581285558427107859564930244151377138846330549995759544246107350199203951528519449636071321496528592043368220415783181637070743677534597463968513066852521347111839208187320436974428114920783830930074158249451942206711432340363938168212924926959104505255698848487299743751646940926443903426751151398249508874211543786594671775702970730826527167530042004728747727379241311330208866319292415841335336504948589351102439089594868666962430715590043559083129913932069839794388405317362224269115141467256297714385472967259592442066069988047774958042809697054005561847942654247379997065597523058919005289794342895746609096371999862739276366552672260805210160668130325500114644308670668132074738831603517472617828745295496943881865183882225267334297400169771542293191759884956328106440813621159962176475812618553026293563360693494200312055194199994251815904853074998141361133655226336384990197081829205163106946200968780187338576291906637273320663868491104877123070821481263170290345542574821146944474495415832175228331045305919731738396311106194403089713513502333706206955456615435059360648803663271547508683783626349795612649462407628555063708888170609178058398651352702056593554099550150230745889696166951261833927101084980423463864837058654430594368321079601887308467743928921549505638031478353258266391902447272301783643655882162195230168673649472006450184923421736744010726664525646858082645558214257846132024858872470376172521788146633682231640998946589014932214383278033782135682064616959774352041195194473785151714397520626703156682005491578137681887470099055829557801563220346249058584995358443817734676227476099798879254283774218504425969055550076464001341648033580457249598491641281886092090366770757683528198042738673516868348450897787569946625758968281261066724823683506147483485944304448971492359688490362468983614845666456918478456469136573815947164951065705643716019477356607400254093802511277877141410094709904472197239267035904222901694178458742931995011430500763004098538470614070083939218044206699495643966543680371129062660223436421860573858435545923289273295191456197015444879319687920993485450820082015326984444564923214488024320039108449210904109349347857978008502665323989006174094826792906752718567489151898256684070631984605575466860565487343444282755360285377104047461560440655935428144410324411164011945876712919465739285719636362054283869096838462850070850568399049574215644387878394551415204066624612018572433583358488626850624022173792979621795338699194389153548580301019278578889293225435279761350643536625709859521679016171236991647739202892355463967598094842894436600224926704107916301305777075597437349384324952508414811692445975908627937510088267778693847827624986754756735759823137534624706787688513794922218720590664471389062864758613385534741194866101124590541292779704490331575041870191995776997923974623953438325472534234199633724152766139039736362114540389089177717096325652552913876720650445184487336491754838304448663828413418347748571082299164363522831161821488002728765514802194807078344634986194969300257832964582585672988279564626209222902615237565088521279761177816738606527143470573816062893017286045116591887799953893185821780765441984368914009600177476975048398325018200615376108364209487077660310139454462485818121854508658162022055412866657466263164886061138636514048141272841146619754159053995420861784029116347926871267807444875288966331416271428518875888396002520500296799838204157225750012339017628063371506422503209808004768682347717599498481356584324770791151055146291201444306358937857954931301355495177291622001481166903046454218951700291978450404714943144334825948389551656412178645108646595253268164464275222548678940040843220158184168838154247721130986078955810145630851547154504535319080592259710620147436086236677317634400261893570361138029502652781328426314482507800014557017751633547047613341669537823792689438087100639747236433139327338629578655642214721782281675338729535587890634007560764141999968293172603435952953806594496727601647142375520057727737801218564969378331642325212275196623741913815065961593238294457688524539771475129485689440588503445636003437079480098856529771310768456521415837012081308878255321188010521152945941577425870811452298835825544074733355463637813274746825880671452134311628015245930565045134478820402655122064401107034426209522477895140565853234909151766228940264402379013166654442103233115045708607136559202678008982999483597964979773055993830535858594100548677319346645978474930555298435815434799021855764632071145363620186543288676011074989526812824111099661815426230890438014587872093889067569248629956749103757804916990193864608841827979704589254262160551929636235980619856428062170469642841566777461894513181431343425397458124054432336372058490078138490998831056923187070023051356228980086275959944856711894219405606643140914379232721188577139706237572572444788836922305438491169345296415615638982754120361214856785103766290854967333023505473224113814623650180551489914393126476666811595060343335109934567767752337759130005082026435029648236346588123125599940507101056898529774910759960235094053206830019535101826049433338241888949104800769878448664974373833598635280037719806066105875227190439022522143500417711520599232538895522360460721477613212023842482515340858898857346187842735683867147392284844769069320716736212194356032276479079989493401482187138169628028202114993288629340590286174721220870937359134013845065476925614559174424167459255543022940758306553052408394590130169786379705591516701367476479062347860971743858961817284900431829122128387336967547236261507921902103357289754426997221257911672428425344218882309052746855660650314448851485284195602879972053385061914147434626417744290527900907070225731550477279267527397622777791331046503280336213751319187984896432351119725415109950268371310439832933165946424451928717581894779533418858173970128274895024711888666104526301485097177356198760397426252641643157990742453447535733947390134250006054188782827749017311847459178590664329039661317487332876603586010379825344932731404939230154028697914423158137233767219193871034201474301307805537586230884678163766958069674900934610612176749294379128933433006157440907222904481196805283216505339610393399773698990983030641520494794250862943489741231419637412487143940124278528230309992534424432614542290077795712717564616569961460667692820967286433937309603934801016797338269849500305895610033107670412800113204272152775997249209501149194952663268205897618014020831534261299320560800870388960578256931651337930806148101318334611813783191428553313983330600383496161232305540702402838708247586743699049473739879543532609428968782834707568648321321537298425939042748790594550369347429569691818523201623882013958830483436509430400284555029488121385535779975257251598009601712165111611537526110237182363014191995396634345425281000612205238858147940537430905530796179815816689608099314666899201917784295198912280711163806721877993679487247101236506702733377862364037901043615039096220004659609171349377452382852025419807709067575686333475544661691669337642984841692152087716292947506156289708612369632190992809043564991810752313078325327961852024786243977932207188755430847096455531870126511774916080973919915429505684230349335662657093683332676126250012140300678070539163984093087628014716087167625666517479142856133369366796551886858669114259870997265522437297531868324908755656966613066490971170594695829795450014925291889094771189229992076322395171699903047675833191398196075778077954401972238907489302274981445252561266732037415058946584083150216718199285892966409594070279932884955887161013958992085559900319773916320355785023656500980371772615900533321611156941068407108019850798337909699592895699518989498451907917016701048918919735620266502428259725886034000830802060072957181756518497053853677462617110928898822616743160673922082042141713769050163781692405965747856090762581760577099199917942779723406246558872099273106879424753050110104699270872592458425914082936578078771573493228951126430789153422484700670830849733736644827654737343064477691562152290655167002020315608688834512646482136400142684826221667901470435744269924460742031898917496337778322095872015481957755369593470864184706304269753532754497690188602494301518177766681292382599328533845948030729495129427508334046245145066068559801798688570606862291017108109903693005548504583689239158304031632598888463064095144824166029794759543969078200223877604231436135558320075861054955882349536971791767139031202301124909504489073541160475745292836908363004254234966577735262667820774837380438959934681731298165317458812897005137130204904931918541392170866797797638552647653907173774825210590895197184753168988919029477605112659461516282067398690848580038659076815060826765470505329282139185632945053776374825912264982724834955774878998369259533115990384443511884615969270672824780456072089954394944408943667370652081711964788726997760865328222042714874992708184398169492891546144685321834714780652438321822149084328352479964252902078378593228118785295130034067299492736842840607406763140054261644162746824944992769498824946862772646324831515988463557326809741514759921712433028102906492858440227717226344144584805876341922459603769557999991249728457668212556235597662395619614282866147543017329221724048658214066676181878618970029002806746651961838512378772407092324645917153494894131008353668438473164535118553469784876647158899704550478180635644799622251341469507999358861365771426747070106824330398378768849815485176587960243541563895320173609121523255344514738501178128553537056821373622999514488001576924558465982905670563971493647671050012579140414768025181366718835728206128153423638127418836362484704999751131766610099661156928370757500591061424380505745474739583232978492728937731755606371899467809331455042006164974339764842594384774793802647914002847798243970686697299886207747504518839090892440038018905167574268267343595014039215157718650386513328016783297909191210881546470402722136471897688524202400914799759033064737524660318997432297069939261526261746444328754874562307077025566041213155571680898103864553283904568778447210898609583069175167428936719830001814831306156599628668431585937988230874580972293164618968695215409487489905121609215033346615537138147808489570928603676363215918866566090087919594496839203486956557543063537438000264009112772347515535271572312629721257753802114298271321327931307398065725015716975036148912666908692299176413033314014590866905403073263267026863401137284346105103732145330604719887361893413791850339800207497009857369717879143354784968489635430999333266026142289052275158396382555289100094812595414392761843287479434431871162316520482361381890273385935551751697066786657357178496396200719700392355567118264533729737577248608815848132619325857014229264516521555783453989466735310433484293488603772344917311788584031679549163452354050095548776336769576807568112832031744709878842634905654731459746790345304201758734160499657748410437053996323095430283494411568803526996799406549987994667617032748123325002687650581928939075146835273144095949501031391256842632480545935966979019246692899978340083411991264237369093076044752350074049838664624803572121085186159839753877616825613677661549820303205872131238721338876649134882641386620098205566971162130123057197966501922678989862866836821198465349105339698074252085114966899227224208676853925759588260666614828322662550634457895296773332871764259641144525227748671205415164628362138023682646028606644268282083580808451359899858814431303220060681518835751352703984126639894841737246884544166364614323355320900638172538527457254345450481293735884771527758924082748959459186113632355352171032545424061651671363632704607998357933358339966203318775034986780328382744577106609351675285164564408309566657144423489248469119653764621837985748581324972120754589050381525063174862022597728234079770509652251330639563605019230898726964320538569653645438241037256875931390180629477227167958429687702423503490083382133522232907347843798155173395320807829130791623834402243812344372760471585600150929034210220758935930526290064947606050955645256425927391268479695445932615733987686535847638013387284893685372728530167640325869358530168745828771431611516484068713792087918783097682482976892757526256045063285005983673201154867270895494979107777668326860074726759036565923855545848104402144636440685869326715568262120387856317287257070219444981803612323495558557954049421496282860678793944613448749660524878583924919732334903573555547133978426557073439853014583605354463671041579097742543869855066477607676848245934067495480817944348520702531577886505194648781651424092552822865487805288620707489433155705286440117188540745910766772117819739936729496344974842007787534116052272958157681739874797354358539028820535312822053013117848425457575725915621879841074226514011203676655458630098512729020398556003533357708587904779510155006821749248459909148983852275825414029240497379219147834898926139198102552609821658305350683838665075961825066549721800902202289059293681710858482838850343513149560073509345838509765207437925969101966010524914147427934577216080737585452133738348762643306722557224894039847569788567426241934948385401783998207220361664315445988070976186500127461910167882818480521175181433392556453099574865164037327166483976190454780382742266915396673596163861572111079563935375632623730797441981139331833940288152706448765661882780881565449410010799657431777996945666752005160241022724587064988011498573746415260953394111029225718732435885834364080042289288005017007366472370910192078129826182098873610768614586642027549101065687094524463241565820233654848444417248644862383127772439977376824427174208896976161510890923249273936833420915334053779641532721356443939570260342180598533520976317756896767018927057935306648521048970634635498439538586225321762303455649823792577811598681249084387723959667763742657268925316487124833534651831509335402058396790809830140284903119855812679651270725020715622002397394859062186436700631181814217190269918553675828234288257968978471724353421425422017351652567862818785749891839542232938938269440323843075717904676789894172098688493548466723290178085035352906895937182222720573860863996089696667209564549269087307873778086940096191058499407665465298670225067846097522359163967584394153268178217531300665972855505066358674689147039775249002130167132767585040520876149755905306513130583077749750721355225282274186218775615051859459632135154859672757448285876799144043168504505580344821814263771202656886802648902021656399522609863924313203538778445382784499468566562143104944917550397007972247816115477711130874385779219442471719443958291598726020387585541734498566605771903413734202359446693501254126909507796936775759030460222290746053229261292249682769962376552413884040613018299818140749462359814080126291715494592121615163974290382169198348286218049568633820821547469867492354567080246821496140657817781003339074981223888998370933486517668404744108668379152622090799434134902035684885377240660352789726863671585593774097755019808972410576851802406046786325959296095569405768475899847877093729125606764418527074985096356499739171501597352117724178992817067724891122091706881883391787251351110370581223435199403772223666621696240963352760338275495733071298155668084600076184538167821583768929577170292277495973756792391889044847299796386380562962546905413518528173511265108256585776171400764950251817268517274382901394069130530870089416844806634066539724639112030567610765991266698221495068761458600522654355708947325061508126886569014606038320574998502818097088874073641339956741318259131558926038607185479213726624514831741958896258903913096140369187113308770946086122300137999362121022714828147382310302881554155293323327727981370156892358670232243192443487173084822170248842859694022742838891095068576327456147610942328475869803089303595028634922948012751373129027850471421176024431072041774526396571291788373152080283747687774792529207214650470606434741770111291734584521639575709418559936144087412901386322695658077368825832766729042526623035292926757944838713957451399658137179772203447001946010951328645263416171092052210762642228582715351608976832519675167790273107410927453973648545281776812194092716562122976818956179834423313563374816003185767742303942316702399232199192810359466983633335241517849975420192154943384097616050857075149083904633549245568348190891956437203520433010905717564377489849489532299166150741093835227706252072036863169540431391567550567963763307636361145984017977258030067651961989934237560693253920173400700467034787996793368200494425654460487467366412816955053578158985892232286625065066788862954131649689204965457766826482644966719999177400778576091148332846491247339008171024020471794212654648719910547285954708560798047591499090176100832438973830984556945570028762764034488134416390290405221874116533056912142395975947848044079034144051650569729804663249819925809988100146048145619782194258680745588466781821796595409052495526412685664752217649908975367363523520118866513376094651485730620918740604511546128135337074545439610571548735900835632219958598026921898678867741025476784354299903932125308070707399239900450684605653341682743728164759130961953192205578221388232318816687651965403892090658928418458965468794415325733226604639770831631569378527153044494748104715655114960804602558443252937941290555294872218382756171031627557141346270459748319336733432346444999530748808478404024272269476080256855641953398772604814825587346622015124897505616283423357677917302162544753436920096724814278779206074387889992664532028326753575049328743130714028130443444372777775491831061118868052934393274269413940375612096082271606300225763668053665632961457761718328042532865845962954092592534084589094487529669307333108958302513013298729196434916933131810085474622119003626095399750065934364249867503341426103626916064756038149986802258357780092113457147825800435123906626585126809937195700580262298888718381834052343857246493162166756280802374319676122658829606575868478193711705410115298579575661410249217946050428833311475899275828730797314792572844502921640498272972952470528779060078875323223675998212664047124058366744524617012550808680815743672261014362708373407317436356509544663521853496478585590055805522162878756321226382401657839037893098149756490357830448103286740941521309281424385894989288386855370297535416280945344844812278304838093769717948919555807539009157218747933632724614391667532845748567336358310404193565159260519748710615907125500072633037150503002286832554982059133919431470184967435365645334204635453161125575985785491170142672480302839897759936127689579119215303890005974258678570473552468672642991243418246384482441548316580898758446939596194451195022827292958886778631088806924473743275804759851139606104531231293398797987790386033575316367999156869744470404195320611039275282782666854332792346416638241715943872689705213748145647203818380809909895647391875934781875026677738777614810852547263891819252172599867208970460146647132875043489018873206136242842545421942586135571494007854083304055797740214121261054074514468371899018692081037314030888736055955935060941875459539300350726762311851269979282255024891489357914088790937716413612005601746077288341047015592109961833680345425822223830061026259947918564631791406929680806549106396088070120141653268665136030394029135794625738072478365559072729546693695132664635703481835292577779450136699040847281141963810366645501471637110932502151466594928292420662924409268925423712285282235189768351923206126084695763285025631168934622226901134434903471883796987814501363191326588227530701112277824168942617443892412200272489426992121271628599631733201837651554268830732568046830385995280749607212568921061460475744345301809134407055089981609856116628329491481244762272391131988755443574154400211128631662597577278592830074571955671809081238080501532434763229370200177637056912159510873494120735581495111769943670798971046163425174944676777010236396179880588060741120561905458094191491212250150708732535971429325088111546532291539565657048422013151015477268953057222894978121327963135345312281199089293331385970716569511183480819431615588529194668972599059161929563497145089188649594942888108013306265720415022870972471298850526764340913485559564343145122380668202668278405381913940693697237856207948821972513880363057647563462609617748366567110470741807924449349427120878069717860026342119168805095045654920997101125006073242896164379421075565737707481218944459064564401018224708129579236449732393051852891041064549845795417625595508552839926499124118668490937108042264476733492026411473268414173281095369313442042455099721859327665075475918236893731008158297923794028305968823026951939428492257712588564685897862971786955467914276831856484522919304327487713695907858445740073070185157713310799194964563637678368050663940753745335781842502036695729560191605742140534809088903112278644612414475919910805007902447981518085638399828292717868692886761660648114104930930544074261031688597885275689623333782812147350483416853179722934169849024791636262440400660902527915627637470598728172486130186434594534433518051198568413434829774958506752597768273731847974109809242084168444094610764795837470355278604240452007284011339316288002659268852271339402574237943199692003340096610817517754906952778887173716730916827704500602972701274526814781856672210920797547780870048850252553248056164015489525921599003558827253713040159145533385833251768917601272095139298265160663302165219542285315149940620132315204591298311141106146408105524182775830705689340234428097372118617673853298235905081161039379828620886112025086143824532744079834182198816990787590612210588574280308736932836769521737644884905336762338982872503975429713313958551054127733399888821219444474468946133679380568114661366535469466380295750574225766034137429649999398078963884961136564689275299956247065084374626137222480662782195635412072350078494737576997480744212636158746114998823361118260951578841347570615297608308966104457280573241410374658812062541684035810271178099032634309021548299739902052134292289513873763834549576386922626705110150150904292249801585423144385464763807618928390519292392961648783232804626342993560435711661073668096106347698848520064124404447249070479425522073647062785350226938818142481920848668202375147256624363266663037607122732956215123143505370485640381693219520870326658487314582371249676400366374397805938229265501325124279770896799186414245904298328523560583735272948373047035310983985432134434126435672949980430709544077657347814035749183081959868233067426078820378505812298969471566883352747782875520837094693305617197729847856878126854519890812561293268225828176522695496705558845705680667909344399125926048857520963813236523800316084319611081737283298178697178936369734010169357782396779382827413056546440452924332637815468816904611389076143513499392192781308734015307705672239951058545473855952192946854844531416604892979673358564394403216745991453619205064116138644908624342156845996442998786067548573946181249782249795198937415796102223470507136922748072436209344288315830401405738638731995348131033803288031789535813485804749995157411110536357612135925349662245066777554054186025354421251194371659289163781643635307553602561529904188640025192155189012465923989983107829723654914524752164528646319096231692655085355207867120276280450026507208555015775822873360889234685785595581806760267968781320021736696643875589109608143238933761332186755199147024044865597694649060622331369610989396575458043726132268906449067138547327487181065564674623190754113821794401201252526293054068002281298106189243739235544255811531938339643636734870161466923241962485168037670717671117373270722578749057132023955084721577808768782499339331105634537266119585765933843155943061763927198011855529035196984717969130131805753196674116241936804783015787168603126896395536115936468240003861772756898071951121841957354392712713169957011763165582479453880976460565073855629673826248979722226847584644475276499500708060179109130886564258571022806359791582731263429812651960083152567600757570070646904363884163365793482301897507294828564106601262805169142109026644993000426829061943896947198769806357182837374039957909912424946444485385092765341213545463134287805994277628642627616948917363965089193065405203576808613619830364662069499163691392812895637212026452553810412100546658283197173838840160175789110142400063071995210454818317687762220795538484652457381709395371113172448996281000078133952571633091873155377218090236132366063354849768842729183391124775227921263416844569207817431825466526456905082195994669441410851608936793169892883912131452543929139293072467593740220893734499105239262103471071807097038840779184746827549838418633325666427682225305957118861848699601031589307082727665747829295824249040007221779793838638324873597277212531490708362845655650416076926636620189864491025726829309221032175476423786454117071204955707645099214191606445645978526563593841094011489948112061780544780998121623365199876685499504986736835111883612498373350736741620376071746093530709408338757906912999504132082362753346808247436643905416177566017596107728375428332917500353520114234686771648724624469382293606060537129324933833929638835175154764224699368671736011596049541355518299196718349271962169988787144170540955689744495804078971436688832975975677645635687768916543526589228811454426119949981844083135944570399252009693077401027166069498530076171372456944964996636974825616000052953209981907956421879687207043912562905876519812003702427505386868036123172861398245302935983108721895579688792091701053423345993398248047711377915481441340823430059441673832455588355564778343694803026020935600168966171783082536434787717291385158826483578180243909072048491772667751571525790924929563054515075510983138360479612189289486961998881555753244185446185104650006037997452108776316507258753025003540078282855672650077845600149352508755525980589638367502321232608957622733407850720807973415717248672193987325951481981464500135536700400856647207389076832638393876683744658593483157696368484615213171757186919349009683796656301986072615647337427443544514974544756364009569335584670717865617212567550758521444653942369416601599036331042355600553718816597027565518861078135445658740211873145628053513510370074091299800620343602636431976171958013126698601982946047908518366767526489425497104159129491027821566170400434738839152777802943410520166114606695790049677921652970675633041906239659333280506423024461140905953838389897182195909875927287678479794099707051275012445500089854829138442302617687613227065124529960550566035658936936280842641868441880712420087980035047208445027948587301415149847746626841761573680264000820992780304706650919961933433832603403904256891409164368624454259733634605675547387074409927109734211091889774949471624436213588431167927645637215654577675339289280721601495750586155859057529439272800103713479680245979685617689669422421278659969913328003388154531094555923689751304410756136895616742778971522702101422170799066589424889689736629496300677956183683214079867834367686167715383444515353574935513747358447788708459971861481782966601879319212847249990308258155334525102449153415790916162474684109736748777183888927335694605266039603691726482001016583243008817613770718910002274936526718890141730590815731717851069373508824740036577218305950710601858349331070475031363396028445141155569411779694612233587064794491513291135478936123127959374896505665678013988187414248003297884492624196256171315684428327609581596895765778565912032607574688028495109764108483612248409916496872934468142687224248916490570314574726699958448942441742924494940886855778584186947965864553240837070557866825135683715294787473583113780041521030995649989759272987004998464308881724804829272920674064760262596510820121965927393250633967913727195854044143872464309831633756115930719170535665222094700587363236065169090019777176125421816459781349750833858875967633464116075493814991332855910129661191402359761853165906495566267664766444057228965116802919325398803859178831526713123465694575000158586526428138996279379071117837556258066888731731750406717503198983986748847714158294212494362947681115423216768915453065859692205354682721002768322277192198500223355102129286535364628402899443695366466289272439598382321851944226408144894963577535570472979040779544434541549116562063240216509448188375295638144319893926146087454608940707912371715772684500640052891423720124039993343472051558848553508817097082178873119145791635866411738718234512615326578976585253893686699261653342999612986589660056630941966033516798135409547227154713439359306321875485624897383382563511846888418259883534661396324907478092971494132256339552191569455988847894174266462666024129034652422689463713980213382266501220354364761586557843003630174704077776211692117935614277737409578581876135544615850435900341112637722768720658664754532767281243953978861666332987893022058918069931265958817998651568567910723615660609750062035020840795167174477951996819790957323111072098750764790512600990981214817532382456208295700727366227739221887556831988979962746250875273773017226596022569334796533270260586986810034080942493828462230201723840992589997098571421508978448879309098841492144118400462454392469142026986798625687319170421985637361188176244075685038787124450201642698756670599242833862484998703047361761652369033559068594598035876659792178125887564514862557019862928858006257398736963653816184595143537505877572843328472794551390341178121898622950078035758992781624567226755449852035638824333431905998939650958243672771428245656217330326842086572298402149232917621696164731004125855353320998644739368380337247867250679407041439622712071052916889743921837648143038956786857864918351851885937136870386561395921524490299388109815253604035859839981723121368738782423260611488351953047662305617825860833754026920617391418602301051364731769710352000187560259599803821546048553794976955549551303233382827467857609195348941027468969446007692985516968087053513572074639712592171286034095590923258880055466494031352452320989722032910146874545195312805204257278378152451846414859826804370212220714077483143275865397690546718656003725085864375240764013824633960960057918896592541358645355600405687069974090822883146771776209602291981329536337036002790858496978303166871368125138142052944344174810005163935368350142011949185853802923178896316486797393427331749665217951592051313332130072184341238408939641469091774849779208672046620957672775083096505301973928661424819831935423056688994717241482015439757011304544216948806317724856430359742958647680449873885380316628254762549272588196012890414326055699569528114837118671842919016592784655363038933031105648040615903746413125135814185030989276670122996598536097608533266462370396947692654273024729280403991404293163381626451467658762337620492720144614143662086492307972060350799358687898340122905926924023899473304235423808109058117912151703433389212879257056231432100567661019410891877116183006741594603709836293576330947633142905995901840515857637034880704898171816977350862736669782268252613725292995855864035013378600907646788301462686890286867615433732918859951013197549707972990509166985120048118267986420672201106921727850120328677828342010980993950489939041872653020517939332846779462327394838773798686326940608506734758463308622636085333714826249391743972608532331600683174087798146236993416676519651485265312023228805453073679418244628598341745278261265659038868884965408049048495972177402771612112241702976936860360682473521016204533073921930660959311546569927150705619164769495259164738358397323172399546746224044709361204190307602633046181884034960676793660402408348448639982028285746700017082157976711629219157973677625196295223680357091088243799995281022587651036845558520399768678642455136707248374633795622166262252962217859266974600612814247583757227780457749451342790182888133328528160441541708906108541372156220013464290622021771335275193725189127372482925153950158302083490532912403654663630373024683731026794485337620880547340758574170601646223626768222992278135838452519413437028940783950996866659489890441559565562496975947003181507209585050788880494728167645298479399994647203021758415468702502723961900937594397122031460865909937639742713317304273254079052191785283296889602388675551700921801723698248552473356580369179447293297066791272827957757970032935441372798066817949950924942337469404917751600026487021635443644939683886170681051249626867567512298143602327258913478295698481363715008077387863229101943857090993554173643580938058255619217991904058061476500959320782587479392492299888606327052844597878569590361502150930640427111034187410299038654121380541244743046873593210506092109723478543939524513369952749330009107142277406208950928504416354660776194607030016572092710270746760914783586814788705654731333797631361931259982524370204942983632843497110784077448073678741422073198845496416279374503912698809559195815807434735289497904765542506831145814525927992357711232859279536218949590496556691013547378563127903001164779463563786966264288663824158768031852343788303825559272003439310952819954717850702828028565526827591778673554839095408781700723895832927806399367059019494840590540946432134495433154502560642350707869691509325276085803132236287886781828306614504087554318313383846143314751720539034669566573123555105799671089573518062140155570827640905265090873521315595869086465203731773226423309013527194952601802019906356399842033600574469061540821176267144819505169888299796747769389617617407427973449194126171523682914943124075346673167561195895412543215408177064334925890772175986253485506955737246318493294225246746688343998206731311485028075888179328701555853780651576759876137433382385052181628405652907026622941998604050325103655630878864747583182215530489740521488735852459395071024556326412627003539276197920272627262794625216552523038872726832497731122073000747242308051336414590268234756113536884077814586958388509414816901577656725910149671326229843113033267969313761193517095509934555683184621175222043412776802455959828783092091049531774611080576569739680062558416174935428346304281204989716744026475875457859855397045834560016157114904033283084489460773870076051865706742478171646533603647043985356356263344680936629632136998412863075131605674168035244691478943555350550189515117667866661455208336474879291725865890927382755741517268945727067461016339548287404690756329773496458057222807725163610007526177359378791306673160281344704648480308690456573014810430960562448929686550187749611365408665257858102405284883815228798240823173472832889684782558667417559975163240976579956352638205239149499611435526959189061116983876258832349973547642986971849486437783980166016913923956214047455175966284614959901684904680814116703663731908987363970142500434635286821283612269002624826756872074068083742443877334726148183047193590802679154621524943133980365553095337370821289166561552874925343635864496418679493938746163755524997578893775422974138063530814852674613125927738346058714919570490728476620689219301070305210097538989691709696222943525376609305821927955399397311615302102730575766866749578386055163394687217261119274100024641542935311258108685846209278168376154685551258637328935596135111713475375963959466548888003795961625199459602740114152485763167932377950562555585146972501824131772274629530523121076055212637509900688916723841922021217261094974950746677466413339171858945470973156833149515239985281206604465974427355832944713793952101683024078321442878049376319988678151606367338938449888211245121680361195968316159930599275202148299618259441677021999354671894228566966581552476175678985607457567733496693595447511182262402805584619209919080080962103206468050253345463519081639223004864010012127107054803874876081086886812135315243290488610621621120924615847470792834827648906074941324624263553830513582263418565164247688748823630682014649550324484512388222205741750893345261820360376991475544999448309466770648814170860827265801452884775523398659324786078877186110281143225050765402552472562756158497517085639097225149970567245197653799579603434840303925841888982100723901585514478023746293034744297107638002930494141829805706974027685143661736188473722321225808961743146621456624025991296811860548825748959070894025033923080037360090144251028022595593406845616279387090111945478971038120999475206297080002988862195140606854822386482731728392484381844025216274016696274811890345466229061592988447714286057790981508620562043124873261335486260393012626217341814467662075665317388325138423765166630775302624401987618352693043182064772801975195878420305896183245685214609242426408389660833577685000130712990439611905746980729672673224620490413982283376064540586021762698642867511410051264923480336656553738370546472684462148571113064698966679561102609942934156942184197865882107315436462578899949688233929687593125474607263698773934385126895240600608258154612495260254204597334567489943222073619988916673836338420866730559989462462026989602424583983614394124716842846654642959855967629585932849405073077274789538603826959723438688819288620611371325448487107480163617999376652090630138818555532442781939951725674331887814119418376726157938114692031264104297497593666500802929080257694540387400394243105960367547722350617594152193070893879096663693532140319481414438922643794362084304692804496781083298685440881258640426830381755224924609247434401295719603111600399327048625576357526688397046749287548266245475365414666472121766005807958500671696766473302377070321272765139818841991234634569307446351256795291421856942110281482246939832764535699600160861646560439305831421242345211252258923398273016866299615587885420347617602970935191267526785828982224389019727384695452736406206711584934167900596786020431869003403113918126596939372236063897477204075226505390817722585854544901604863916040404227714057068485347770016586288091374412783954644637026981238107615834650600510190751416918990360672922129033550027677641268596026413146498898061721029838538680426083065111264628987541680176918774769082686208509060901519995384972571380174697300854183244875832835286195207038930225843825573805472909161882964553764393097451335128152542249659710426594320826610585256097420918226080854700592158213158563206378287750782286148489034088828144442547554415511171231689281954141732423804132804179418484406096883547273127026827416931459894946156766191766792997679985248663405265035543033907563118109921201761153247069886097140647337637011585729204974529450432240839799277799862045329975848395621103943488683026940480267331675186557714885429118160131849863888955902120896643342696604062951862655867773932543653228752855410891075808488390402611715858773587030828947577636464377930945181980626665520094844068857990668515834179745256590218205631017179296921427951984046335493079919169329865861195587261776312735391286949762702551795889446381313283598186449427265719850036797333997568851127769822102962290586808675095341432216015916064520696216813449750252192869496231031413763593582672010926066781249897198140388694002448267786873933785073275594543495565719182094453600998584094742888475545897107978114817299790532621114243711196936634296368437375660438691707341257023453819363272392812938678154559218077421928808089204616900564564627550899987164522758330112303858042422580470469535878701094354707970457789804960334106878253089947525524602943069491029403311782440242927045868064228997589400296201518213060946552750746471852545197878878123180743151020972482938318904674252923010151931347646742336756047487776879202204051658877014929928530604885345636970317494746472295174019170625232373773156800421507820157079236235027982957905626095223005912387120179371484947799828692489504985247234756182409337181441309304334902458952964573625620090155235905888026717271180872520978127812950811743037846688854870635071964780679346093167975215752628922358546788612484711841717962453734939581846311547316524441938688811278420535907285603871138035459977873557319350721284686303465382915627528482099094664343098491514250619872275845418298234506297748455134618271019024914959722497825520716785917857723926279927917993622288694437775585343221917154801956903344762925458400674273283464369256348506606435918148731569269447222109822071549568516843033267802435553388725718416604421265676963161262472373006390502338258572270675513890789758971014639697439641759048048101413078061573907440261190767862046311826837641817640450782628323987636768571634613532671051214556501104958932078483241230016081655668936560011891198024884525093597524781162905282817452958067940353059480295598326047965012542339985258124237840758198253206637483359954661141950916104601113996274893371615570550862239206814032541552960637356634391474937331332664505702953001536816271104873986056654020766193458699831864090344032429809318441435677156838366377265211667092974653430265449379254983174474846204168255749412445471904765843350684095872982330304815410884020410689242413931726482830093133845479724685974128770442347334056202345956594680209111360136752599112281681454280547005937566103896846442682496347717438442546799307984216350197986834553293628478642444170238021196153683035357172262533940076845766554916883820565275823663193079210408981623082258844750357192600836864930856343286516588650207504010022986657304013179904938998602836188283943322537616378207735418892350971944887010201290115327686568869307379107851569774202479136942024510922549261114219691003627415565170507924933843869805678631583086775301132173082675680844083599352396550364327403847859672328638447446923421651814710764241209606937758576249821243726218361660599095410549134144917187696995204156314219718211968453241624782476689067586433064589931583878343351325292435757614148823521904167757145422101517117964441160353821870628970782988892909428632525756058405363548709501657540593328223839020683870559649717836937170454500276942684447226049033620475536729628295190167139901404326838232177381790872259605283778393187333188264975048421018212519997765833825990263440596024331488349514978501119645040570407849039074104929192654225428460049453465286164999542177367885197678586804791325389333432352072668004871801499257167444447280176410660277962873282913142305874782307328207106029615726503740366026142610317594645375445375027889324071502257442971376951383806640677990723195682962322200061430814066746839044794289703235431910057115049622737084615921657579288374534823494620590990809936989817853068013446084883556595458427504873576041334525433581123433425939287342439270290634044508140304855384460945123968293187624357014891510374737354934298614466831554047169751153255765822967417510435431670584812345952628060531932449406281899323426740486133652527098292175598705577077401468628522044879386769385982262122662597554274258242434651992285049893466790269620884158473887877402532415161997910366249816343199421018945087690364035307338216322431899899187167430978970049262203503131720778288921525114994403096732082326850175622679958725947755123933024081095835806577815698193630555028163560080448851128079014633776125206234299327620427858736906411304998666121356755494166334460961499220880667392840319490206088962726930084529786218425063530288858501992923512238139801685485953920367389847940723700318443531422266065000596686201904581401985379172578756293028600919806872592058656604283905010236787056855082929236658357879453490735411426313670610056919041282654698405411338085259958964169606161275139052311775184026198717410472902272641192105072297446188296002966579303039756303051643144631616898970139993881367009247768286317550000227941504246177838587184068443618172729584118221133372543705221467226763319063301139973437277775505515887637377510212534608020810179093148850446840717266194363190687853219179514505304776004046822147439674133742048903103564661875684718084604828771032024679515845834908839998961642543686606529188213610883300870828229850841014564877640077802128465585532581156698786486093971046204903079195996853892755555327183501452515010381922251600805426146313064897377083843185973867744293826188922146190441616948055260486458088574551528758723289450035760581248900165917922258732673034411271522337384945269198242941314274981228687448272972161308050165196435065161351845105247258156474055626677416816173432246501026555238510584268438034319703233868331822728371459945898868722122727450366527803649670283385825882396927127928600889208207372231665897209229376893904629822394214850996083228790982292837284591481573303352577137153926144315794900652266007957789500323405767445431132541435959570426110578794210801704874722998675236923071302706034504982554457930994267601510778584129001157261514656660554864736551649844717906169184864523136249769807944393951885583020151490034730779226704013868691685057120320724758733036691322229311247353605032320284159164383958018488767236807379452593577836141201833442433122847150889056591219259343346817618579216867225394494234547289409505383718613818165682976430466852542845366614379743101972556697253509227766880669550114919821475125166557351963141712460885616311956378075340929545664415037231830165687672696032034264873708456621257469427244104617097067197816800545099657468555740738994816440812660784942870508370502643791199288449851617441874164261694153731774018451934189186522905839230986495106770469314900934363512755664384518612587261549989589530173378337725228526691241541892104290526791021034386613452250409221676539740341449226467578064353319273259206365419449043257807045814184647345834575053123479522081027804787717664057678127922693938913864622743572609597440770937013919937442885235227539419960996002048707854737076633096553819058369937722620229026031953711042871391338283342482872441544314708858263688884597853308551315430899007915036166699959600289386652038513774003989118805956858022445950344145470276056126042399785681875537769454315554722564665781219931437866016225032680500523586025353060525900202334489223475592066438614526726194787729318259497038256203544766056279055212454389670383214122122308394068909526764896880386228299168512945246841323388308272974444862713264178216764634177132340574316209738169418642513770105427884468746581657491494365226544669652463890202686421779304749857736190348813209692690117019461948964693797601540205252946890429946547322088140278494371776056459475938433491683960379924850222848018936758663505424063096394679138617021458059693772838653379962075857305506076435569538426170859747857120211978274139027392372699941321969950869490841245571295637412916035606729901785928301838556218562196663823166850848102215669074084539120852836417071922219994842904934185134579562655335251796793158427857152422699935494847709536832275656619569264309511186765351874480195343407609555708960882934469853117398296029249508721528568750779202748363377994474283499857878920815064497027101857597142724189334257813047220578524935584910546574378108129180123147212965422563412552397358506424145928554851019354351482844688514048466554595405349882701293908839504397124629104014763584527127234001008269825062648643234638630266640495501661703107128907770538906121017618647308817676252968392236747928968710531448156166284977153106757830061233715585177592844694038666884559327463260809707172938359656316227769654086425187705654504616003130734189923346137232033305726696621777030834747849098866930601454796185876618328870905849498027764999282357499662204185210935245603632090250308510805419845386962912916387740307073044437877634943933916459178060247781277893135548648952791788337904600829428910791608557097644278989534027488268312144327043352744782039646942952745858382790322996815835816932658663487447271246535538007483296874418503981221633037137564364225670151462021290760806946606542228966214767042289482395894709513742624685210623584026025884559990350855112615828908659386016822192047317779726799286033294590213471520807115036674125801653949388256581077629635114262243146517417654913965751334861749260145640086129402382158552301631849779500681539228476734493834894455792819715840522975963905633700282844355089745166190934522552555481888832299377243096688557350710254163371491299769478193064799391612743523857531481809336460784844357743438216301928967042684582564257823700922901918477992385751093811993476823992966728289898649408406149045474101123534319979838388430785251562432506830733765202749299209737598200562069747116116912728322482632600801190288210034980399052193226770061839770969075445193621350357852801114784330303574588777863597240955710939210458946609929422984513237288467509332333006412702431690444552037109776858182804602288724347304300173495074923338719387296686891715559085587457764502982815473614168190245771835766341986357569281696439475535950396594250377266748042360378727257534830711639365847819580493047713859946788870538159844293332791788880399023918009327846957935471298638622928453923409192202711545193355794334118237301205104729377243163426608856159651798034000090307875486454844635874722352809228230184268700541259048783381655263322605694054557190885347288554976282566760209481379823989059054777902050574840027112275571774939335024753207824236582365915488225348900919766339248831450718008695708506526649350785424543564681984242766027800749063088170456387667734093522414936283080949026527155037217304211787211922459931112926673133947908124516821842190374593178491859435187328455918780157784897852375827691622151649280026182479818381473667623822153261475561665060719738451176728676641112108907941060512140647173086049491821578737484077984645129520533908820517270794561455102106016511407119462046113241734556245927733143478448283196193461499416704315979182262718568882876455852849189542261438987606567629867039844786266652847141117120856469300931275799765884998593092764443548928997565753303789015360987281183811153140805256310095174705208735432896358000053533681415117306024911520664357167056642726701629302611583967838301988156854784753675563065579007311563879906179884255347869513118318158679755072936975919116975970814604759707490626893064960234561027486356835716592805494094284853995036555978253256431152929027171845247614191570449916087343689705372018542154318662851132011576117716599311561433701327839904582021220588970060380323852214813484314540397101493741987231497357104119627080510158681759115247007680905886471858254101894456091238946447072701387339220844538719285594876529186435457805042530798820464301272438174768818298438571734180972298157380230230178054890226438662377421642285884685005999616696414630434562164832600085070053086409727573873786125476905787343224548971027572907590362442306516573850979267573325494474672854533845847661487992921103793877172353147703328680167908651865270517516062877284578005355716425956081128550074888223125965635048889980126880593323295080408052454075229248136539847785869198547133715970435614543125657465685574457559747242817336758003524731833601577608083533757905150924969667479742027491039749098883269231746180294741594853675932275713080758295268946915229892663401436346795514999914714262211977018226931169526799304578361519198944205796798276689551962596655520549847811943245896046225688594719729226938119122791718492270669038155244038127784252339225396780158718512552484942998850885760024147847803418552937798844489635682334757676551338380252378668051585302157103296421971564141383800007416533088531553565976963645618751995482013817072405697045548662462325714506231970220467516724174926316829947031924489665734953626622937123273080532162888532977474675438233208148896209739071114196779060662599995791115119012538116289646297543022559439973184314605842629785103062338447186167615560788614192008992079481928142237409520027857053082311367787083188742120626419442181378802848419607350685884774489146863990115077700337203584622819048512307961895685707745793605125317145502984104396704420420170575558852708890393698586815452608047080355321238418422799843569738584425338745858150468231333286994955856086531871053122244124400325848862112635971311381986351711798943234436913333031457535027577495761630506040382112355914716156344316570372029660890152351498673397938822590682737514465499605230823428427763738046896414764358401114338337450789987984944949990627131342022216447518451419179433516347916590028354711251603220634175494304373857852530003633320448644698938049132585691938959398882327903943652021235214310215806898592037594991436797069584286437128993803579123458339644540068931514866039218872177546970714793220815260822604915952341475085461160543106029915649365901318021899738604180721948616813113487317131473548197036566461407343259847811672969198881924727666140247274955975348241214818958308505469001888389320350579621727988935048042204809415221355805296866216599094274468486498205274561546727443718463863280691125016451144935976183366905881305729129101103854689210148290017328111652138586272314341296443332181805833832505743416697582574265105340159220905990029084735096332444293120787243745545847088174287941237383253017232488906279403218821037347417103503445626140379978515760060083140047647811559960038972895486181087169497107483493239892690285199285202297000460180341573721391134264617072646562635416581097384135444259925323338965559534422819495400154000995183404883029152744899011721997555555895335671158758755368946575181019598298208550306303606224157698982740372876630148072486694659364986130840730601639587490410989193067523918548388751047242267566211342684356517655443920604111036312540837943923216706112063705725908361857486577868479529952675095299936935343445632909828587188743887183714729612183736101147367718894943957497650710404137074353349962485233561123348923367227506886003145990262841244010363881326196816273102877675519568637660652312678910337224256462149811307846583016503396005062007637933587139120624002900377062927621997008878595291996997300251874976625504295858087818131911983714672327284919076239767892764490153946706303553316847850179176835779778196436560964418094909704474213904035827939370618958162026792369650610192075783926330575947050993850952706881229983143372448990015060276117473623580263820037435947811251582606707673797068340609133176269251601598730412605310103087235234143532737514839165025177246169369078034313064358761902098990404691345340294132849132498692231396306701549176425696307141059818032307239261533842261647463142415916209752108173703133979408535878629877024042816246868352943123069395583333726829108974552001554221707060994588928465589095395888967665495341019927613597686807626529601399277676906326787510162004856212830828890817293603811560133364279687399905433025897654203723027295016619869522626871764084630169287061357598735770776623941835662246881270382687939389016083250842552532522749386679862667942046513975522967096608337180012522593725293559560410222911319510579224786010272791093830694231129626165852975172512436776699237543879668349101131792664642611813530889872379596106750592575630559436583313636576975639674458714568974770997494242258187385913162700390694860946731306913846361320081426562768216715364666897549689569063657180039016674018010283968239002789811637508494038071917885485342569370099439557725743357921365700346800568473227545202019465340178080644761011143051396954070525741560465557795840260774762892446605101708299721357004458450633030782272288485911830046642972814771233446389205109662357384520868212267381195045701412042222710978402072425521709440482019825209091544597743968588925750230104837551317488046258921141373259876309239228155645068463263105829272668537255828556682557508513886565938864072431205403863852831441212707973935052611972221209803808624605600620135536319173047106481041060093587658760166341960596463393968911858019429495076522063141272126653084416866666663254875566644329446647083030646864068662743477071654114659078625835190182536358445825781469849927335648229251220650499488553250126220125002928488518205225595617008179734859238013022234992609518864475728976930886771260726769389777332142963248607054369898822737858189911093499876180628586538380281553071260032770842759847803007128974365944445326660284740307656208663595208074978635454051160908908415981602459850898561313130290717322670821531026139587199483094072458735129189539797341520496291633454798210526053548564897925220832339766435025716319393311294199894310494720382445386195764306507419633923887148701017060749822709602094722134183538634800712414731786268366502166030939318432125542319694138230488674579480962235813368992063005240529608864067435246790288122629686455503358715515948128284471995052595509360900315754960756108506416137276214895471348831688051229214404501003096552791426040076328656176629315835024118733923147611652204259323656538680943088064528117833849649639695747092963582609259838516433094175026609313325301235699335749952953832510183350193103594038561606013020982892878049068598025071885924413486685776253815554367813327858371704380477200863909072856154669374011138972117778358464148363124833477050442814624263976351684286879995899158054674820551871041296030056016678083888695981539260669096195331796699737485114692654649423597693284589198208967132324445577038174653726944662451039878457926415997341661175501523011295465848258455932372596576690569676378374995629501426168807362915361578939369455453131676048508147313148917567545418200223067169852653437270496332194725879167975364121683965790909266989337686629593536463489094660143994246358882525603748757044291470465017882591344407362105562534234838163059290654612130762214916645697530701374034417766244791685057240538019895030628197384370218057530333810313423134164315014165418184821194218216536242099067634647696563844163490337027488570042143689791891242440460974456397864931182383989968919602269160985683065538062590432140922294531533427351333765282285599546690721159957408123044538323708061235072344481376443635834894297580907895808790910066538473965043475713974473805326657748528484986972425091716044761221603442845192546147770325303966320094189123757846456725726631560647417205651472288758008085682584761371378337018018426735374960557537091121053699729315154620754507059570758086791632652801266874973872366462487942388294694260859290491167219119918299861602745047474456973384476844059996429263603485244547386063932796521100641441405892228523081533352306655532013045673897892893402408522286146017809866560457047650535318510935566752239534803735757277161672234818696223263013326940870004630518114854738983423675753707871394172901322918264287152297113933041518926043813556293849585526257839500653009663757242692213970888539630117212820363056867900226679691041669023458618311104178969675634477513746143707415681939405752679392685453741808098076876795025273548897005008403295537410131578339695962078769808192052286041157057113589569075907704993770420051566294942767995712641237793684970346332243245635588660472243794876595967128235258154243931947905194519232945589132419357051303130768794397094304490506491427482345493627912807116340525549220282424951640950393544961027781993634052043051912600621730125986814428959151153286725054741501809016309255232007880390559633569553897423762228232288969069437572378081783437091662558667739504694650188850395566638011869898473478676018325677381743442651801921574595580086063631956897868383407419613262160891759610937888018045749079925743270534901214622805700632483703228244138198137778240030946786355123731727426703721844424832743086293362912269249863530002305444726437055709761642318049315427187190995454166041882365513328639799338705843766923654501613437903631877605551035764365490387623812228373974384888062516365630258019904771293210498581751578155332535740765988426227033109835024048685266928398657780278979534164642067526611614382631550304650803411804584109270283323609455655396956514721716815655181971550778576978604971513590455651245792585202548484557428908103790314610145095974421493578726695743403901259967419052782448106430622302283017418539062699128365780006542442775865554204305146630930103089830097798391081659374409410027364254215939968802700263287317413235417671233090219180777271793346663854456285111453065741217156338473195397524813777724541618681869438849853333738843336016039750891083884882298562830018742423217745299732419668655940595496029255758641695395807563541322003076209000838019646072746729537025896508299464116397750354463641305950890496031708683864935407153421586408311179040794451039264847901186535965992146884055084385388026017490237077526054327032560655387159388856157368022724999604941635195323668405346872979072418215733603044797935633145303579108659302335337493991350183846262423182857380195528110595994092567961608926682910579816175555805857751753396882284596313739431133382243304051165010496443092704571836917073235034827818471937780874870015894433270358131561221447570137915657947304674665342596780273120728475595445753420697019568337694621123816465775290789275724813953968583684615794213364966595106027086893102517678322860017431431744533318411430974104703361202624504233682944729991991276051031831452970637846538253660383317691661993310218252770105859226971181500109788830073056848486463703903005961068377453018737312115078781927555647939816775326723794054230670744762526083604304721544627992312228906631438273223281136971472431351525760962281311176122087527110068990784964242462879322050930975085316910949537602474616670025853587252580311733415259975112558250583288300314411563232262967169736067725883325741849267608263718536227649490006000280846342866709023793494596066115533875183621659022273741558112578741032122596836134952655164840795808456910410679021358852498476338702545257547901772253826692946922523673280646755311811278654958234257841134272940087832917982121225180592134980763646434386234599224663000650602437959570993637655042121522742376411393298830977358432546357763785722229648659035172079002092104190559475626170331558073960058842723285094933196319653249002546578746272973725900179563720136137046070931876926971965236905142231676290264196413962442369280910569917499624331652893245324151996168337597241038225807254511395965420703628485753628797917956059770712965307158654801423730629664218848126494338188945023192761671417755081042238443425590726636677613120569134825479300967352853931870988676460293885971119181094092609076671684200635366873543464188874927681510192055456099769034026114259674318800944204217570841811582901283712772266080706905791606239545301009014004524679680988054244782053734312409044317862809532158768791694486524521899972073830464887411160793442486272940655577271793310358369294747865668125071809835107991592036797947632400245260855464594842114468810719209634452822117921003751831012956645729550571329245972160537460063429788159603705036664367008952950949430050251080775091230277455327452759100634035094858599387413017579808077719806125670725425390063797792947335768667439871366431898702092224117064470102903659042178929265808603341727443854269447788286043849650897244852111020683309990936904379168665487887339524578590335002822240055765905015121343933672759576857984906483147403165383207245254907545096515202449967653265779593054279341089472568083625786917504136140444262519013898327792809403486415486219650554520088897841459856166421293579632271491897074851947291058655616452744041259142544649302688182813012099236406757541291914419233628690679956357073900704987727457443550855192882299673279243260311893458653164447783019564682170990636853274127717135631420235580887321721311801373354403058554369684603328826581538696090130068347277605416240430530223093264894694731762642408080181367835972270800223098808185499274134291905927991525055398451310067412188024233289834013913625364022332988030142217223805392712070711178644732793466441547130843076982443121813735070776045826104319751350242120755973811384440643843640581438937733994643812994224540672539225779760835903895176325498008570587027329344518992468393528176002691924645453369310041552261302750048599198828502327541126265675296610639624332204136271511029454223528620842069513136586513864557962899806925440153124327058987262650338712945879639933105994051306233532462749923569558139698310153354588923127457371014001518339382807062130714594720068675738906201601624713117067962842995208629929601176016645052903733678220280222369803770331810833918622538897704265466533874113306990084171271159187189962928909424092321460898937872361929434482720256544050266355848629275326898453156687022650564161935297884669531259253409679370522415558430145273303294424592862827124430470333057828450666838725912667498601534003034523572221433942115281789979248060284054741415156005318918414861496899619381915824176664645795600419819968257607105250547337966067583922815752692977068137709880526376719171756358799907163289442241411185679243539488757688559452761342924173132551175136945217094386908519353118499707331883166539272824405767236302646699752273254298799015293452909378113515152062640007846618921610731198874687184797856526181216226919192632090254053659214170206913222303278546345321256713302357925813533854705485908440817609565817042781793007629943336479454250713792208155678603718870708677277333842562382746606039173304265085934775187236575483559574192775489836993944397356428594200594227275277208675298979285962630217960544309173959974458448417626088788255314407489812798288499435614702615789804176221555006668058014761655257084641667291173968800967654802046232031264208819969000390678517910855371385090163637110197634081911585951563376271070425771711402853425315827671132456739634383774433452670325088980242048243812653703509409239806055469477099965248253456263104430856614933053265058873007658565146454696786757428306833281543002711552973525666759717019257844187549196674596605643050213388344537188412056801398400309651107536334899585266849994914965523290781072622013543234095442478241999666671211902325182764425287860790540814789306519563934263796911374508639630591706158350498207577350170299975189143295592183201997220772263116817606025950664248658353053746680867200394405674087344997643351467121251570361491946698368564837549692815782179490593009707737342422424756113593254561510677941118315063643455609272161988190038141259069050791238402475817036176886672254110213053053222573137479513875391873526513881402567625931568470278963588026866821723639383619823185389926906674027345979355094166535707100908053948068415961564252577993910717479849192928361246655701082045688326730275143435588154738137757159440058462676933930315311981979745845129358430171855389399049142632407452423796212782772601684719788650127809566928692210409102746487030596552088266895251510108708882033123452680594904240833208430275295768343318438104188520158873353485954238207941488542408307189044911497546569164573304683839515941593723037145956248808613048116024299606087731736928208344321869313202500396998622701153305575771140159597133727050709597482250532613757625315008771162904172626682621638496907018783897336309047173968702179788071191009317881742410820756040950694248406782208587203801372686473554346831130186095628567875201777767818611750201306100065847817592168465054807669541281460069200650915479554990506320654143588099064897920517325941675865225955497985586084188780012974712113390987233848113079424106794138091970165726700932702985230427366104172556728811636211267515797583182895828795486142063555273117195637541091039496001055371692907294367272733790126202136655656302022836862324923495574941723510324830387992764660494214466211498842209139628664252387432793085556590723199164236053911016442763319170543321630281153454604692019578331886766248139207024077882191560874537915615024120747245011060746720185532474528602123307935955265034901618611818438148686393316136539380125948754040918749052149373957753633448879591753487920470357730249669157966905625845072082630811748396546953471596231758851509921898907045581274960600401634813396421813342869318556882169413887740246983247510532592404012397793575979603814056827690294586301617356652630987681123625444043034368262874466935915769737392426111644033007689361828838409757170395168175580602778654236673016238479449683773283621100118246472478360882746324811925440462196632012565556712791964657016510436456858954872703151507332562315679162985482421649073949122660880138521862530347184572345173026708368634263823197321376564589083219810667056559062496730228972743172784518261344050031481508424319763929201811147743023729223818084325702757506850640032018806525828484644442754086176053316179507487301886275231592417675185890074425739117137138515694043609729326000255663252943820153761228654663385401561801103869272967707015116675518146257375712878823736099563282310662323170705934680548271133607427874348483507197257058389450379266194619338188809872910107469027262699603781415428605179393952675862655144663851638046113700788196460777161690669415590418710404314622292174137551102247547866458962091427167406548908519093263444176405569174131940149736349069835505553039040907196981096666318963013104803858366710211892477555890907515207810483738884048024339828729988882377786491491158718380434765280885571046555836695754208000842337986014263418484764178627510936287207549136911622356725359302546760935750590230373462629986325292867888604602530098213859757187621208529874767762677855531646633904458170560058680942799298463123369705284346198908161360427579818399544612391939857251931386260794259563729289762097343276546134311502583825158403285960766731401976486337630073250255654084325415068182943738428575643716275535523105464090916284902830477199410305549088740940415504608702482847535300041186614802405048215048474066344940372473413719696745499792830462193434131528819136543208397869600348521690214629480948592906415046646672273890854441608218789565014709457834280205981473181237544797848333602668719561131313211949518829395633289839657459371243250648223975817970723133211084865781636148208190634019583202053808396747036989915640623201479016565363688468717993351087248749481925780972564948677043838407110915440512778197755559920582092893011939214322594003723241185787392769450969768331519417350354502648016982304689289835735135622044546709333691213470957752644744009780567841104129477403952593496804354129656677193467208972090397699915993553730988291322229768846153829046647328720894221549876710834028167090730443483374136269387450328983893033663498052892083256925984746205593866445650679829889162208169645899311624135549349600926763560001832729487948549388959030818135472362449857238650034326376058359848651477623979197561391223029987006857946219738039328080079320328376422204129255507165617208800795948498911037503699335818123404820792836022082651841522529724325171438965242304622703066305402790423474479632940360058204209752191998726547512793451105970376538834458255748069774125161449548274466871602409337284526118173964830285370769477169440193296656325191598021974264208101226600762354031210092468055698143526008739645717205216723235498183874771948267150817518194825165769977127062023980614290664692043454545931695661619642301850758177840058725205342215625753172701040583784820664327185664987685456503876185492486055070081836822448560823810008199177825667925614055960216950771374040335695572209534373604238501302596570138624661806223900865714281611853107060226925897678392135329092355569624386365838929036057130816036461896064621961133834701412489976087373438865387915369648489092461491344068173321766568474388336200942536133827403081481915445943368225786261717321210684991513770968061018837255012080249958469444803423021722961526330083730881467226717872926772001826849665108240712569838294499310754498212431009925525506116325703414042298359692296869966297056912788173394494742039414822863058283765968898518230111263691464868606817232754669373086947028349429851894440054038251322195846494798429836442344907108805349506123633145855660022890196549058111352265823038046532204694758824767698647044437361558110841733552364780556226759208191547482984192302417319758481170431629681804988818037529064152903724161970521022192928590954783101954383671039012965397692838304411302809560079216228984279523944122915306187055416178448303324214932200630458313199038085608325036885746038874053446612995136246569846903940704113043684562755947863976063409026063793836751851862812824901623927892658147595171112298660640271541950291498209364145356822641576590048273028120170435659021426360963659319146492342778403790505820192325847314097445134244625845599124366251280857119049361529902034860019926261914817454480858020467682681411878055775651580594241054233287340108565463543922596596703767437870708175017745094941002862318328330621908376084907559650709114725825321338929721357618634476175194775229069293490111843038933051118766534168330031775548024067507905032852365041022925271156935190891192062609746109209213461009360207037415505419941638104203919353139072606666808622118288248628766587901787442422854468687302906820536527620949431487321424947633304896331858355286457849780652061772203834919379942305066535782720974868518017352585519287030964674084914403904801532067967926666610926247550647944591062957749781830088060342515390952886149311488106929531852153018082641251088304566811542445909692775210842039661732019455381854033085165462477212120932126514072341009365116387239742664343875693679370273741195454350652986392774663850178130495085469655659475114999157645407922786367687856371044841824282624377092592325059814826402893148469617508534872985286885145829504385215567281804137662892823693635050684112197201055171343761177491442313699948797622750682988041276279307259830452039999195210958673974219581571996590877782685056050223648927313114828732127991443577521336338704400491858209863107117046093818040869709898349415680043610625323820134183717782267656605832596338971130762418464626394577338617660290866969030490344654487335859293031511927226389736219953816312256344192605140489823807838747810442389201248048330493083154852085463112972329758020012095909042431372424120053640533300622661737496430913643360860345486245276198303922775527689201350711963347435499788474777860950027223929653664670654862939803667682263940151601576963858207867506777696664697999990709039202376958436039378802706250547490133861352213881127289554785231665256920900517173328555040983066038039353257021877760749663482734570474675652205451162229426135664157916102554728135658669795574589766551155383313057543366998736483210715771131124258756278150807022089661688771099160637394330270189979553313236198089110629602906907031455358262632569937202733387808256994094771362660120946234330321186749056370827814292385250391519583462116470799646154506022002905852761325027061394203845036795798315983021283830648886609306859313651068516886495640382932414553844845081995605088529613231289081158364749780771788003385109958969084135479233893751195729055508956304698265453835869729513054698801118878453140559993409500012540934411609267625066480295147198161242919926594844450709832399047948404857674083610351077521964446283807498834459918117810201931783851910258763828364638717427972403161185695025146995745482045241297134230107531829847054689412714991241123121950923539572845303950292267750193863998849031198988950559435364416720686930945234243893074574062538651984944374085064296603159997118151445168899524784291515899061529374123460376299193488078740873614414462687564260509482327506950682851322849219465420701199421502148743348710810120107110976019767068805897419998198802634565256781551713856605793027886568965874864596588783116178552501590926593178376145378413610661731063115136588076836023857616946484170558276644445408060061164655835285604609730569683582848556672918700762893022143519823639020128182712875994131817714358503678383710863071696740235954153794272822766487286712744073470902225932483696518065756591850477400078527293400296101024383136203935324071700488702749121923577049262969854012967585114906326905666655901088096505434023490645196241995331255887626096860089742217625676218635797262383100926137919006595166593783323916548222181343921690529441879767699498412896409250926047482026886241640141970429407064537159529939713909415142103500367070305759269161523894500889607170466609462283179393372832571222040078071753409429104060954296672221316941618961923881288172124651852589355951511709467050577801815699973763948793139395922738741424289266272795559651829031425845984088643842226413618025262408653906698845152388641456995536291911583620904321843774715634362788908047794535030980281261079287285558585554232148208961361591463713768599166483201976535322587648083013663670335461156570355455155931277834597009071949288001364108771000249477612651254823665802490616976167965169475081500989746265258092224546740316436104018021221764326840119381718670054344238203118659134404221893416129359731201273171339902851986853867028723588895325916075427376637387049570600329670882916556566947002303644337433630568517064372235759868846907121614057576827269212319418233654927113518256883423086005526046971382439537701922271091876256049562376663531821313316824745048928756813220666562421570566629921970954794831210205582820251388175257372981410243208861676279443332213499661223125903636085331925328353157899729705671984488435248763403478072578425100929680770076134456055465948410080460162883480986584390676551307998882145637149822652761036464888904331235027899875628293182748777586209088319815471574538414528305246597272880000827486924671703087697466666253597737114499230318926764380368134700224660669035819869228395653928906868386281653630528602454735301922817002666643453474830071572825655510382230108855310186926963227757639996746732156860493754510522542599172562153592029262654664489824567151817762495558923509235731074774589346672708264021666204586304557039094572382891001431976590559655928416307481155029732447284246523927814645463423551799731985143785027251450648474289050661131478504680383177362224721063935354911909680478427951398645186187638624368457705207411263311550560137589335134361891852165696652366237039953766101332319263184965169946387913380471208514162278330501637607387520024750190617862994796439390291476760513079299931641576815413936042731838502229222106224572724926347735303791544169930936621731840537828365823146990480694030663915936623216564516896130129492220818243166219460811577665699735259465079570351351281680813034198028247914937473554827248048401320409695083198954313697916046825629744091888677982583798832973146848622167100219014889323187833223144713609407369956836928256116889386929659799277044077708332305273954777424186878597214523958589269953193816929280173806710586154708536542962008520111791141917419299653117692793218781097927180037754529486316063730706366969358431091926626640178720433977423271232566369669660361150381495179083778222285319955628599589878933345188086566667266486961607740061114995618873551289877339057040470144584324941610230940902894355922871305598711833765233446972284750115761686262235444091998941153679728821738918354651446339069464066004379341129246957564793263303781502314225593527776513148074479472752344740649116749708096544941107444311482213613901434183142547529761242489991816088740793165198432272371235827608564851239885181458590208795112910848396110807938529232527426179923737081595640990066939759432844360925429728935032162909684335850915830345763535794574818839094800223077795151219828022644166901963690130018704063916543531544654447788268901242907970998171626527208735963546627552226153989423229059755451641781885410693243608081345472667381182679262374527102182679084333887344424632925776904959201377145860767624653535457543075899254237975461333669418158350894617763400039262793473889443772889802164712250113274834259612007680066476337508057141285856746234204865966527400418448225379121171312540961484513520643664354702605614731969703592541349913033838894664034519170800946137127550958507377408415806781666634914393660703682952094257670702311263345872284432278175665245456929667687807181744272122423643539184807492385782475742253997740716418083207798350410946657806664869248849519518596143550977104541740734804549495602246951466596815184701864374088157348481894933519928085053973405411382392476156239065522295587753077332034268916081205025827786762768370756492889945402241222053151903458617754974328763658472989706154707216654954414324611759569741623270622260609677350829000118104019319970123507305514974966564067621731703974309402686687132723179350776825602631801260460873375415333729353343664110814444883646165136199022381627330958281597535667064990866430202099153879294200706382429181224366542502195775642417124933332530729365169332287385855393965070795765039289163263483167138216037474184826737912648777630785763599348649921530658478589648523974077429134110292884706432228242577951071848977518830245361950922466390972821376467367887952102292322924046868026457244184192592895753975049020744304763710825343025111198382552483610229840962371146110269930095760106501806767426261179057716009290201386538547633586591369542648924056811902442860840778735326588180970705004067906338374865062887583150536517172969734638254439835025149957339755642057121127656044553315971457928859220739616138834186502805831004185634897461269189729574181343963909150894537823274098629913862384771112059227381913086876922182720502127365530144827606820362497782186298435150830345433846409092288433528554447870817751102109670474705673146951689438166025367286248491096861655490055332943616862648941131084452172696241269884606653946827718413270575285857474077529788946307856899921512103474525526631734848179996289065336304676218153034932321848253825069613461378174366128891030408011727754131250079118518341640803092837704905858658590118549135780401131323576623786725751381773520946097143003066373319329393413143367519181593621275241531140445303436035101365126343082022598797769989070559521952834883843574231702551814477207008645663280648459045403198388079631335415432442023587603630155613419343145743577120498198964680198227191049450653687302551360552698633737347838142175283845933126643375236578352455518480923590191493451154382352164223029018365955142285047799330072005696797273583557559209475871849349882693565304993290484458877717541158976476330123639539668168791697677941956762481870644708934421463260217070216733336074432376321773608044222127726629744021766437154735397189223787782997178114065230637376943645846389070723231777325924038342716267044706747759468600789829254349256855110143958305620378679555333169296510529518242125914705725630220776896537650730999527492475499142772257383795074671628438490192792793969923081182511213527608957242564275956666472745801335659326999595950749690441305256631676523944443033412845556293188456004563814562481302896788126257108648904339101677137633764830247938316475746789863794884782399417047452934890974276556068148975428246083885598976617762379784752480277779289973962058067749157798922077353569492987505347609236315011138819806124755045987690224094801756189943878307709111082965055180403637999434824076046298977219509311816984171628687246315898518010302424596510937353985052245061458063416078052251692443800982667889464333307280658258334907023665443568326112708451570876832789785709989832246859172387999876726583038443249075363495133151642110800647384537327987934287308153275612652227131100245769079665308557992080930013995805307148501467368085699791874946544625857501418918061038584462899458481113381995035550940626193854000446189474459367899358385514139441194423448518327705725641718149035813663354369709031181694800460776499800216937453598074918987083102528184944697468556977920402580622435569539144489457643688941112081742061249451343019353334831088137920833690383344495853782362531153139765216849597801673488062597419756769786665073923294251200614338105619845038858015007040338423089574601548601716464343177556078024657723016901585340442872961386369405427577365948190849084229172070545440912895894441259577679802104218006676579208456734613267554841621994453781940221074468087430889714638048222146857684542251014948821401852162012800487304597027543151033618705565920454343625412603948919182666467498227243384194341318406542492436872544006928430957469776682870126896521470160112204869965295538631645252561183042498549165809465077252364949874688627705323524628027592937772601661849413237613375231871913324741669414787237916183243630579387578552131939540943812299868520577234482910078343436124699815343464812996794852658060426608962169227287899941110292034115287475110743946177608014586605424293714274889208708446412725207393570614151946612984235496446007046621427570695104297608256420952857840137894784194028457971343708396605824891063090189079476110245587832007096266382060053511388898185143870397639187624402555317526413006500922910977287828531373715820527470451273001896114627230410057074704486507793191657872612921538930840723696072206963892694565962255644546530012972988173146729740220004814877756006813564353396733620356573517291783329720743847378772304433606541483685471732586075096161126054534692430636758666085541267897782047634385909062127195815569675103266209422196914512013557422539476488439988689205231637281542973599981305526820433190491257974396598411840284780769003261801780306692709349273429313516567681585919539078772629778342066695668077193532958655257975036938167071414736545664078426018576049113014087961647552875728407725661721910893858689110888548503008881807477426243593401667647170690934592869309616667693386158749337593316543640249752344648857149050142127618587419502666213629190104113706942118057630965221187084968947203483594984546485231184645014432294467681422593461462691668390946002520058754295704472803934586661738180958673956106186357332142128806448658390166666314801756968527312883567535036002666584340867940047525770185882583477487264885817448560414758225345081536776214409260809149228985236771872908074668734634260505242988431000066398234806185828015017735118511257259475707932864926352341611943776973316100787805872697104066732295225956037331249903466172419151868261100093216880330354640869270176530968938158641046869277448177676882101790225100374720321481789014600327489869551231597431167047004671751694848105145068864746916835430890272578256542149426253885861186065574631379380237150097022381920074788326799164827461263248632307739381268076283941128712114354705312768326149501723447038907663992319346908466951203128213864450710048112404336128826087078295978539311841589433441580623947389256236838507437399812248284368539423435423589207886329419772242001725827294588744467319681642748354665542490498326405762417006121315377862838419879137060092111929301417934878475924936445723567799334583523833941192708394049924534894273606330324909451209746377237001928713730912461778741736932037761892151502144644545758314836979879314443897060826793868447485473350733166512194478730815163320921418124560534522048734922002805588134945210944100912508601711392480107578037650127022067035289683605851821610966487793610350125321995098359458457969731282503917311084745274468314473010799829869662377301528627917471760556404279035880796070917856535480151291641735850866806685605313973832012227204800894817045641662865820552323091710388040869461435633060332955278913118758263615009177875696693986705557508287394220856869482261933290874115523447579251335516803700041759135645258700545427411613325285777498086939379630079909124343545137003289369186346536571672385829844989602919245524365944636738680854389954795282929952836240258967720210199995011541350642404052486468024265304450442131040014165591377776824711560335892402194808811842203541065094124340666427938109760407915377121853817818352463662766924251719265820252639636626309666197194117438964518550185334315415922460725984536264465121387868277016532438144948565207150925478755468200538280344730204178955122645937973878726677240974896479610268854654130633898393997663960421014865220799247458195407026999325579263201410030900033807200892981980684438536273977069097922707679875897376268431592502827777339561983250636575085093858470472407103132051575508645599393185615001810303971246575901431107843517166076905540922487083057874693289811068800782956651525694814426655642946667827112686118401373126789010441018531434813236852029261867745061036461146398584705881852208055913426774434929558465766793265285647076860225676267162744373347730992320956716941418592505516041867390185431039812170453027848292257559026820217439908523220032296524370859420093184023007668538873795378414674888786973521857515371816234356719784100894688464114362208201721627905225691705869000684316919127267140557278971355971583838544029558004267156498708832455852238800524443757052356346028175973066062039964376454785119699537406714988324882222225791687243078915539157048235452111300839215170305512593315780219857952296656869898462535461511944642575616619088938385453834143399149521309677416559586056705264313121125378498126282838246273752425388970108428968592540952922433702105736787389342898109570053020340893044668765853731584515837146159870781013451769758421514406110650321796595557445635334870434507812827080338897085765579980139796778323613280477444076237108770572172624041950728557511068788889637072853568767029320965601321070561319067751589049786871362906769736759506867010643660409832562321049951503269401999309446977371101002704860183010527592942314424920739273559648892666991459954630863317302609369308610375527944337496262802157849953410108487139671739260432581774655138486135441516367203488610189621186280477129633558714800180176358387657505125595511537299825330687764113639456183354437593521556309943890133302411465505578651904081971362250286942054174998072286786377966570523374412054556617807421682644084828620029650670560074326990477739819932119663033251802647421951950282439879779328778008182210717315138454141453020497582256288342994084855846544828322320812576386961769135901075472698763422877531548140373993963799880916144963579385787761301857006232674418065569689769511722045567144941914634158895191146288750247375974681185871986615874080740186272509432659687329233883079874321465720435418022503781778098473511172615179032869899734972987163647452106117226684541967073670455962072770130406120278055796624980771070313466137924053362716397750513195679235647692504239187822788038465385762927094315100866870976500983539777172431977632570922648871632322842516893946135658198046423262427926293130508750901715307842457168957041860115981349746866148896187147836855201691465052359464930552534087979067722096996655643946380189435902702724781540254327829578902240460473773625980741940254314769794057072789728642344869071879126286171413960512822917793705506627375213258479261427215038546860352719230002318863738849245280802563088386986408988989797544370598446070809571084062513224127797025446766815001687331677895929004717965532183180716502350890205370646011962592485327075747133808964944528960246157424974768422509976691847250959380292730874477462474120974325789526632439777663337867464973558786678760810896447680332558997261434796113148629343829030592160241048737605182738133288608531729544653297076379645324728025918781482430918236794450409010496667098056876027133530018386380201449684212878447843194594691196454622014889649721194545006221917795049205999000003019214877295313345575349695141078644770447786127338446272030170670000454041792387886378601600890010081120144525434286955407491376246203559842614890574903091327560125229760799466780717559703464094133206929023764808557032450445870115778297923481534487492932857079907452247977770732347575507332160724298317497179332468693783834606509995327937300234818040665856491124445561768104253877137688642571291198391034569109959090874298048559190087103740403089756995597898747534006920799170843544102301268882938072489116292437910052335225035770526470196982478541665501921469046628691995337181742122482624140589671858328032943610452870829872018853036836195353324923596642130091597852307200206720775943363646207845626181019197366888415852165497069414521691859477642665457768985447905529246255688731761167702513813170584750728775258425721632913717785519504278159111871484803501259372971456417312951330625061519081948559584117469362084372405935552801826089796791322827182736375116341304909732347835349971506416864940144014360571233520090581067459560698494987620450450609982565745123622721983091423321238061230362938203957198507044259706394462625290433494238585646970080340829458788570273066676865819394925391436390254043320273702801047433210794088623372694384794738933946993302852980551419992708158838060201739468254170367806688473584400663786426160561083200279665886808870720016265355545804763309670041172351908187017660818223063676118107869815069160448866249819603797727970944281731906356748123049647489479657252153205662660446855439276973982660562088927379152462796984499523185221345072097792938187439879408875774520198255564466939295997965744054680071377449609172945368583113316308680722488255943090236763759473069397672270755921428847824168114264700477123353339167005015963299335051672232225417241636244719545000534556732959638341765844604772346946055617974365201610338034644751393415168416852802619329108187833539388005383629833458010848553801816394289627409105648247476564931427430109883099912515699835660482890380923003010885099450080812148808998558317831615313410980480880126518121261605496630617217757635354630753962351517521442892085428790773869821340622803547370336392330655298199943896270014519154102240467913418880870183571027487184170413797395569541973082065371010413096544712236163525769212463731410131534042192692841522244653872619729032919000128823365129565514656898107883137501569609258831949289671204273302098535114629474044216355436747229861639550118730309386069571160228428559282265931636908473443858512215078515593412487003297336059469012103180935668237516036245274445821511784689771016798948360973330653071498324127760061392551177194164869456926046442799627898031804912461593222124623865048304187306933802494163982042161168039904318076092144727297574440329122402289376839552242354970795229339585633322954206902837269939700572068037359101773731430588356511310513733813162350364801923826389879470498488550033695807477948499224895712675110079924187895461170311219381975430128111875049544502644636566554044359726638678207165015233691963475955270175715512514754635264428724657753443676389205203366302441078297809341485503742839980150265429333822526484153498641788503293486364272815038120653671923852918822911558954631444327118915686070142734855605757657647084579053775298629826645291180522786978317107204249552778582713036490576734776006620431518460951032869486871899990683723474992044440495801792703953969625833891568853447865351958618359749613055819746076479661191735292974137387299402163311164819929142461308016071822400757220147535366373992389996330162387941674787599967340737644484143300360097721958585840685047956765590427055070569897832810736528312725901328975465886225756551235736202482220576354455406457427961471105674586453835472991984819047517140931909040381810445247701184342789075019012179220053867534814715333296791037928541624395827321548940267961437449683503945364873231029584198344363984111217644104517876989568934642754197378353850247479839663980774492799769564141440594135372721338529212943143284140453359548365712027909230157128057763379200037532042747539230096722763696848275259417276707550985796942320994575214744854698802466740965368034516972616895003858548393495515934607617578056997607204907805427685498345512332996400200414958978202957100081384680077169781231895604120689018916914638473559929556693793801911060445371426581761658721662838342238158655378402651724667913010766376269561487565941631111993854294273448450359271556301799302244095685677401577818643685243418620006480235514827007913478204202943363115519553074695880510496547168783775440492282822510726386737603188271434522439791238996129924258412221762124652429093333637812452199272325820601680990110456202903825293392046108684697634226658103353853607570556092049390862814359266005187330069992264235590024008026806363602523393332243446730451778150790107626959648207871167686527427827486703666240878390727949078574308250759853234509381974954550488238162377091034605328354659623100321352919053027276811945130048790879866613617505500395181892450426464238472167375192966293706564222068717812161907910217280774347705023452051370527807000026367705574443353326611907512051161311936717661193792561750624337822572441782040415780454432649262121752657880647786719371182342976606639132544378791671759796067385247673588745649557193309856515166806027079038845091775170941394657960664569144178810432520273626917699963973717125079974964438380132022152585493584492597913735355557919913780689553589444876356797596714514407581514533367256570319116694552984362505632233906825369057376077941751891685593125850937931875809688647249648099328781296289499544568584187440179377530090749055645868035872215617724588889177106846101582877036031000834467826538334541092927608170038101615832697789489728707060011551094670142202760039623432506768030352806208149088766525130586957394661020734852331653474666467384444854007099197682572593218104909568728095849330548635512838516373730460245228309057866230781995179355291830733654050272313670623033810126189110279957132293905241588747205517195318978718258744635840491219047123095124759601923420021666152249207424638332526013874957130101069534830210136537812967015292788025444498616857991978850873044313997561218804011952911781536675942430723251270241377020212695915663953391498236670520418870243754342018536009293234210556752825618917852110725573170419810406734022906235683025191435781861072608309953006887648771765703341155598097932462314756776170908533911739166757028663010616370975359426692267640050375150775196385146306799895242260258347745810708139253105456681637779878178747271236280833525506614554458297704905749075673868451991472800256634372471961809786059481202093147724533529156610522535497452236127724851889498333402088637236447072270677359160567766106057550820975360023854668681021552968880356255204989433084478773419848650028014417788064098440687964147783362678961257751749970939137287569420782336419311667161836167730654560199220605997142516578676492175505695293916994221640675825159883283860312188824264367473263230239213787781727908167803134213422061414758082013468480135757050679318601273059796564359595036781527964310948027747039923385703332438002700263524073005829380919235351726481610566530073410667374090576221845501010729922353136894722508976241632739114032117164298830216321776193675233821324961805011151769416890636699245632889511632647957009691458497843231545585738605297167805646576222743213773720850757625940877687030243166567034504855887642478153952986012029833818634530247641167703856621419214458452568285351005724790066085095004026634052215496674668431805635084007890086245401490679235356515830237978483342245234539315796467957644194667469579853474179907262509055968495722048695399050525065954625112928318404585122366188526092359734188812812604249845088423770434480528839177348536477507075273915876205451844292417998272653800712653879163323860836759671328053747131864335161164957302273345521998343585684172653346213377833029726312185786627256597022237291755838324299868531725281808334144415230011814244407899137587112082889455984010678823785886011214784224394775959189812780686428954269557562689142233715949379226998542517938389744212197387723603583769088382405467874496491694713465810077377935560733971413769961476973573290994677029853534266311887156201378749765197960692565771153789453997744998819339447426185605320805027111292916319918820919133917835139538029620551551243603508036149457325438987608769546673685847887310297166031344706101542918592434747176996384230209832567090564594684181954430367619184149469178369508411350153245832956587905060131577542835826827348702929972598613320761986415792728221656324722809441496929414181288718174770703984029682550638705480036232636391779352025624304349586879490352299943371068936170921455827681315869535063941606147429181892049196978746363246084735786703239662104562500256219694887080601160796127196205985552898136868430368663195164043242965983310365974894495804262811348621415407817923914375103572028777592995205323098593020893373329260767112280868823102889840551785849159377462275376305392563483420128875388576379894953018165901013319490957211591974271819490029185407466990794668984929339918341214317698552534397078514647839756163189010421105212732699578207421597053484158567907424570360795526735397618390233347197778642066536157258533646895367725659106752646220764068149682317557729942214008719692304810812732323319341296564413208822262328897934540415035266962407888857986970571834111125238297840369285757947729182942368940894657367176097259833632753196149970631343122601423734381738267340173572295020975825488553428997638035325815593096214755706811155382626338232093024845321173186565925893892934247392107017328331820796668680606588029861754697832822833572284937412578227558528706129479753607593373666816764480956071719205617323421970090296142159564778336336876138928291354331345889067324297823829702267804399159196332919722381216210270336683775629815223116108046939335106595919912653959670421489655389098535759665237812404933300866082194673323804322330253950376546303723076867696721761556563343450160149610505551726481043263884988546085879342817243643259446808882738409777703044879861181050522006098103598551382809941464183339303359146869440848715654535660209822581360265472153461999181395214721148024398952718405706927719583433004407373964054485699177289116920086941098334915298128448398449063598737443248155297802878786020216108944001367342399730919938633319824086403923460237983215232762463204466116519992712826398947831313114466048948794788247949373682597233529928157760903336902456468880275330201862212072441187881567454930267462524908548019094548174485821282814986249218105261528574268286607921615055554726484652502602600284777675828500086617192376119065750242966625784823578410488234768363769660936233756432186480588263733766286921518713515634211345275661849539812546163328067159269840397186822733480451907549142908320719860779671535692816423087286114016114579123343623773016261022809172939640270262063642726020239057819746696861077888111978018564258245785832017897507972868280533794421693807252822237200576854419991051200718947221271675296320785902194555435475212010720044432029751473692842912152878136564627854911474722421562275491281534946543320439198751942100773546432214222442257476208230272935337212297652788731898583293903954245362681043985942354558297449140779953890049336327529153639002586461132699470639290186629919645980644060862418735493453623209729406261164543469964980891796120352127196849440495390099883971811101904652550307824865473239825861462336860925391724075513713025435649362767374299531752853783392522276249732349249172160659618893009428625613008657753573404823672021642498506960658142900709184597164507719397684216364503752445901731402479617102174952682421474883708832133927953189408750473045249190313452873396434541007688797637482510331552514134928562732952731747478541494706355844815353750781901982406380915790765138167798393523009521875363019264184297358037016804230483695990214868171746734699361682253487726211911564411468045636287104786308635589770923386006251963163541420138453238325278992092402192422230488852195538943799280987572812399193033004855413923526477434920863694197589238875500543846677743561947170753088657979909783780946873753689700358184680878832701304269829748665657064451727899593727222488370095694508314516990484015815391754941688773040302376083316877045380470691412699418706526328361769894721337306819294241980591499020128965939909259852979652928927051732707449013262939804998897570570759291155734650849194637090680195679633382576765763330874445443430712923135541758586400225595869971276872828334693344552074619214591511149674010659453497725251138667479981976241709008564361899952243575594457340446189022043469847156995803456258824637637966303942584028129602342142542444831698924470298239343228954101740068796109453020193454302613031530967210447324516569516198296770720763607266372808630295963076519930356671983871424360283351659789897724366210113750744818681811326830479003553805823904397601080806033108434356380731956232095939375561209884491992502302485255043545617940452886655120427820902712259486866676236530828283842952388955125647340142411702036061734639548020564373267322051498663933666076058389279411041282727414266536129449304382213411620245627666133111392970874161011152975039350110337838560974606248319942678983126488448887922019232093996216869322474269690827672801860610934030505279846656520795428134748115524383944451303827031810293389942522441896140818031801518259803567967533046703151430138947181844491948995511473263974743053085283186511457924940140697953977541035643353497676722052088914543050910279659264531296820271395002500799775212505651506049773628762939278684205235078617245984560343550962795484737130563861753202307680882026686512208059483246796901513068007531458852632782880182661804349049143427616001623181842519058366184911139943805979895215689576151424229802741517516676204571704873527854990439342873541504992767796936323416646844999435277143355437904112936798824510934293473515019041720543662024668358284744038950031870535085726305931398408239889654665129140435115436808761598295471366127340390363303830516640897862083987506260894386049962476865976373448154983029150767257971755542709886283001295018196633750393881864208849045656494147315506589963714849298226892729965985734930319621690402794728627837771632083574303382297830091794551396661959333101314365499707751403757325750301517254976171152875919838495077717137544442954666401989486352405145252362867935429375699341448719883585527145712870065254857605200032897366092740223040033045571443409228831128211251637006044713767828190604708575185913449117073866830506553341738263831012433104711513449240933442275439224907846551229070067870927705053206026394439051336159114692580755539695503732771838411975808163799415389880806673780444115383321146004138808462069593554471539875512026585359527854379674903371260232645355421952122452261464461535392117755239104251095665753522348117525750423056004737646429905738305153614818686265717256136344311128251822264080803480546324851840404256918125664847274638230830070075193283888707543491692166073220783930054368062292194932781064849331575166728515661755747361361641622983320070422033012370849846542834522821937753040122315263186984198010905376333520682464431720693759329714393477448873652454331571209763098844665906188740091637563204725939225654115271507368698589980397505182991828947053967828967033117856341441703957714443130119964371653096845589172703296845281637754545694826198054783796346827777879570640033271801280749587808649726099867426931701683704159115293682878319381215402782973374472032463057194823047332508777238434814688015725140008717401276014691030561890297381753426292096698027164854978037965040789638739029526051400620277048107685124280423704520109415226785787075322682297754203626966815897655598469543174515202085661674095976968738436191793441436043588557387747497943907317637295351109421308626191214965201155441127189401071383495743536882071776153489787111449643581408488790746038414251925437300168645268026931782700265653775492620350382814905163921363495185422947605372729249739319087532887878311487480146895743294560183912638605464259770062200512866786313952908373556895523711197252070930736643030842639556577521477764511362320183986451055156751751241261091699026695812487882109536214798211372591314608832121089539238008594867586885810745714577828750742729344560819691743588392754466255429050513162410357180429022668574531901476475470690135838852393696382104594228713900696897828998319599535916068865572090555127984055061116618903651006747277774167700050523884998380180984137270212137532567912315707078149957479331765462652036878093432699368220757065124962803734602645086649377679834168203395292563556542946104531014834561117511141508090455130355801751978946391942774327478907212275698026442923923336461709655596726508406270606831021840702723643677524882936020501651069319244091717876701273886456789124505438463045177726071896853943612260669019642380113171240852119601653086880287820414103287652455178518972939626451036608059501478780027588722618055018284405792555238005558644061754884135977010588981949633037044413544551642902867716191261663416058946054642685551365084427684124607700188905679376859256429438556425055406893704898231924645586120731071139023493656251526930614737756739325045869686842872732167488182215248986076363985795806810356272471671816189235858098462612565788318915210086061649042378094180182887144090278884587036803967100947555870500380204126354507114808143979519166874169686697305594112082467967148477809589995058020484601845714547722695093248523906723063073044692026099324491056203281886172544491770996662923112656497083351499796041672269604891099198788038790431514150636995555311870086178846075424780666718263175283948721626400316768806100945174756731359253967413326391761969740743404009578155167862357560521893975563961560865723326139409545137650924508791813341781586345591955128890888045138627422142645910103171244893531392753101129133412199497620837725529526556469444782500118167444119253077246163435118656660110375029240053176834898712610474050505152976244210958648970326295619946351657200612428789607574604245464430906833314266501918407909513085742939430205979230525044279957191025510136314059868110994031663171322514320975946876665151141249006768502739754400339686401764111368715320893855524619728589226516230541268963630274274868978930924462826363548203304288733109006090212028486103683354053259275415657971544629714032430661430403198353328782990284652822336614998047240824854801948821483596282281060826200341830944161700284098117256238815077045607309820398200413018114723563956761153075084040919061104764166032763016018340945245530940867581177164931246575337146691720561945220907907412494290852703627003132225383249666533244702471426275304720282527617333686149195401714759911298359028631951015513821491748396201155683739704547341252821481194056933724334137392371881130960971074211851082813317543335651555725475835930835341342441293534040333595806946649797099999324436500192440143191129044997920408055328547795890970264116214356279665859128866120141268965790321768881849063928054471811531587193078978399730132932484625354645278579900523893065165085144364269288422007574898023606653821797705620507753535775652723742203243027769088881087881131198382966346646367821640899732366403430270788220824770148575838410898307637844609014495798941699547689173872866041742838530002007923430043738848541390102741909076497947452829598403684438463622991697191927765591555275634319555946756419416397335357304096323223517727298421576837602005192812884953043433971148622040634681929240711113428438410971483355266441824239521684603933451458051643837545498251704927406411136477403193762143030732788562056079091125825056589302417918116458617373748868025399419136567104776507163208659277021990242481153192615442315282467466254709772157009325532684294998316835098945990843010058933203824075147170624731370452154897991091138855154248971396469124629926175744717479766408099566690376713950414339322286346910186047067763057972522746276927689694610963549085662695762658063477416401490318911573920602037891705034452294109610625785906743561749710402360458473036866586961778245062252358482726377840644930932087575629770292396012635100027064176664851444228655825126965598885553676854956458978235467172998121310809738456286894136202070730835510214029391983220298553759599071049452902328462711945303967365557147091591006304918889046635703936238835645158332054433128717946310120112287586826775590895823715971223626792297833702023887957979958059514949308594188006503375665585154570960992848158761514564207611362942774506849655700370693838030075468005387380977413738046017916671835871962684078846102703596614838793332862174779469888027707744249466356177337970925755464154008877409640200004417258404745251869127183229769427174463949288075165239667801839670838560179887562250898046909556704950560628603315380295521998924392954730252516647958624169453642225572268612998454032582937815119448755332684546252577272938383624026418567861550057002989073015339213370220451818963949450844164365422845522264786238858190703201493420382948447315151963994007380480308838489495247043721343296813593447404235218983982197526742797381559612023608889347752773553103898570653338014832848611885783783653273378310896886095895258672829561324874565282795612368457944519460701343663960993113752732283547926858409282884074968524041492406353240758655481252333475171568918180454953515361412994111596496848895732305057738226902213938812334769127904679642473266061071701209033755908291712112636446459922030019358835949390522028564271913142827824335898458549653902153735748663112259877120269006525868252942895443295831205294661752211603957862876047328147404353063842933092584711707464077597104404237204778760668175009555433771925864525216818550909252203582913211562223133436307748411081148415735335761035839700873084916410234121549279018366078210056325983920585036921999058958675800937842080726192104403440164379543400479595267043791978079868720366673800450325826358619189715353214312563541825951765682994133811388311884064778290902391559077043714643805357387202733097581751744488567927633741970397446555098007457997174617198314525739860272013520325399003055768668526284165440301054164298863347292431625953284898129732133348897608883338113914904264084845354529655052033731297728666047135229069201299058325187693106460957686093164476315937592366184595285656060023896925568302279644136746836102890915740687425222956872115758065742955175810632489963393047769045409909021138603832646730118405029468550952578563904962306439642635965093098413735053385777827364466200575982350738864236128587425733568605267154309907242852292288953290098347438473135939863630102990923143664425225683549761358601603693222638570763740009857263776307173092780099656585098973451431629092777119569580762186706339631791354957061956436911911952115969833696753647797765480993025541945370847301901407616883129757192132305657657447459833803474212167230382532384047562603232746640828850563272191294696314028097677554517789603080197739747709634066090284789622594454088348173738424759136410378544635838945004041321023983225473785520153916494669240517529137931291065765611327618494987254886309097958974574200612696472838390525192001967821994020473170584162310932647627682039321830266809222306817422004733715682834044889701054494497878372734119427725998915012537001298058205032605747875188275602270411624473081732411389752538219809174891702913270412005914284355282271440937199441617783616103941793862075559296343412811920688921146441845837479444332758454450704235137774780178902338436447297606442245782462856816380686434035063473651964042469921570117221021468065603862617739274538324246332348849684094210935076179464440634076423669833391928089939124589742625317441588144643208100136271352459144201138200223038566986469560135050441057325302436690138700446174881906088584181820365081730341973090249248474644054381262843352880679822049495317852249804344490569573340263128360271691150860091511736451555970113606100938575515267310153394491572992701560148319499981006229954974828057696622479339420237770952356349554456966818139028961073852040724911812508400361909875266373906240300692885288159314909153231407013763698011426010664197446280604314342150183962838723582684047533090544139693791733405113017372096426368634940223660208189561790383282968422473637446344960765224574546705957218705905798524700289719782710045562062330075239083627499095786252683828868768461900400293975214306868097429068074844835281996651155223158934462303673965606965473202580881111379692318140995939127051020546542005708451759736564872767657686084329757256603816289418086663952476872209015947413633746210628800422155611645719817108128670721911990537975789698538388066384339822277614058110259778497797161543626046666275090459738167205858962753687607017316819375667111709518775526140030488481129234579021882779759941912523015869929555147697984322270525679862363379628879045833499358809338453817076824350556715186973034993129269714638626550032680600315463434133596643853901035327043440490647600320193718380415121625793858372647632119288679486924347271853018135606874859814771918895289038620733933327377222363262488435732198385178651014630624225610789681954429167098608043275707130149099081958783495937388448393524808864487836526189808567402874206249363829178627656928456728317494665119337983952192315476573977905626065533329788000798437735290624506621026054582301149368934026430343269097402212793745223121412758568222515200970847800680180515244242373346319424073825598275580332356690954521783840288125551732662715670441399999405650400223687577149954542495548458920893799699189396242467709123405409323166704981789470748521285692056015949197263126883687174464414068529848075158174516474455793449164673053535023569147748297627306734155727448322334313022987099024214298161763674752033002772585821071128841776919109996579493051289424310303427223428443699986925455956209318340961062612571497062294335883215845507287466822152341013870742238511582922409594925947401796149495069876081657554654829157833812067965553100133959001712303079911147522462182501771723741020133089830009324249220961636469429429694252157113912906002083849579590575312992582574815322839250921785555967440969426129492822213939231830661476847501144735868077949482408420635607435004640648877353792516542162111416519962941353346571758670569426762943892408189651813947257535666247242835637939630089633773979856085639735355790038685453844221378911251183093241791218927112520774413261771023745042935865730740746299198087434096354598390531061569645888353174781899309473563803539980478435115997487169695107900885356984077424977832097481312699236057324507247244744113514611959239750613131849426689424583310985833562607750493646635005357493757234517472438292874291023771688680906492199802440623581747190455260382248657655279992061247399297129577198001569540534582969605651541815578195194965634082061159298669137664392919181581256545113696487095529546786019303931017171813744585657450039027976660564154596873414055501725469430586279002221369421052044994119616050841665598820637979328009952177239381493019936885366074511371465115884275576654337201266785503042295216736599363423473567293487277648866790116658663134624884221595713143929287289753416012413906886023160108332946289679307249605459875495422330182135064713580302862230234691476737895631705131103898347598941857032847498431334064372797297700677451804152190808846196994441195580031000845087754882096429693745007606329076817025312361155755284993414136512703795959462357801504602526629158607049257011995044711159294422417518990247477824313998728046074213486406949024823453180173231947043591754074133322334870905245383674852883303288771371047391540698032963058392730624860623936797216771580684976685969751230747201365963412266237494624089368516087330102127020374017788447102771719660216630714477837104711057656194289094219091197647460165299936566638716049998051684654676978793637475073196774771018261346171076850375187054031975300216478177120863358874630991350092706294607321747823497579514268226229734261293331616817873525602349376338689737919374587344103797219064333203350339293304641184981314513162061598213819386766440116715473883271468447345454203310144791358326905850000457656428994203213972950492169186539939136897981077715618903565328877638559231048743369140966398836978322427636444338184828484176301779062908132123930161655225384090632448870834248515872338680560973639351690369951124728713018677901180548417742600361137684177532803335656211227399904854310365379126857200572596966706562216721477801394355192254968129339517569417699850645282032194755755173350943877098719670038209774427855814904087426317389220550617301035657371535186124978000039393267667162539999907490832886151505172052124191622439667413522437823088191734886810772114009565650908468213143384804936959544195642361759173123983196003131475011952482009801246941798639699758974731134126876178425518529224692594910918186046427549759154371126380774386338149907363346285371879126917339906527417616034991013568685973522566353061341206340258267187049511994524485053332245968497221744560379069943813228089604912407356566881441213646495867103722249579284715113750832720626490233248778953597783894253385659825053803574062892989544588771429608969484629516479089142875351713385170314662355822211933277833627589155527715828042715194173582825629640299847104999463257552537583756994135940596237888435277499499424959619283124215804343019468297448207464963865454664339209213218157002472701390745905750573800070928575921471329663058221519536609102228984065731333140604680174088621945573648049138525733463613354210520316323596729027723532341172717896762862736501572620964299046979271581756754399310370993107270329209161457371426399813179446103671859325638610948691631995376801409092326079820927952276264771116370085065243685710403904617390577491230320117514821423110346101550998824710223629084475492079174403823754995912151652186754053056526544916117466142538827926886915540862012303388861402800544526756779292008393728036238353482655372569597055088074062769315186440791043405028945089752445183033733676338033552354331237419198774499627150971307106072517560717472080435073150333414498793385429204277239066294418448493049852688339326951652950551273828311759847535543611575281065736392272674841689324038200234895591594744435660702003239862666599265420073238426250190202634029112985619008538383055968484225542200341471435594891426730246355216565637740939824373584355857028778860758722325788826327485087819773520121574080170169842894283253984594886470466451072223141636037185142728072947284478086358976309755815911316435379413342954088251612481578825204918482565389167823802314042702184095843123081627491493745289146433487579787636953005538704675448525838713809001644454776876346704869307128828725147246965091504207871165343902454265922297225954141677898601606006407901532814743636164744284192887147344753548803749311734167352242153914997467588505102538808793416118168141432069969259815398534464852855801378684366608328900744218355254084303292090833707588572550382324247269252916066780965073891965557903827909079435148738042282241810893559959172781297606019893893018146586619961657088034839034606420840707566292766052719177133356592279828953758385663844285002537615597356047875247078900711534730336902381028840467942084590325935296579983122200213297060060604093591185461255251489309688401845551752996340370817848894574235498753790361617402998702737583897164184398656805122969430665963347245314604398924099052816009874845687384338470053475585563202787900038917956636120082688446798952574922441784481652068826733709800974796293477429691546704388427239414849052647602579245546144707498433961818662721631101832985224844478666971549156515939446041630331084269378270559000113786642728302075537110248975467562932439033506384711717157202701409799569164130069783087389953609407955158024444988323800089667102002548089784801613370141127523704733969092437655970610159342609678939035511751181611903209042322778565709079359954163238903905692949148534806929018794866948750771414651978333446750246001795092182463724482179205072798470604012393758105515880977893062761831284261958621073812522722446670659227347327952180052555643933805558512483825547410299902267713701479565885503929937325744763605498545813511566723135072534449156599020273611670472797544339650041656731296847430870676477740819626548409306013151724671993800588665998618047283257401215840638898705082031399126230525408927975887307907157925178915956833482878056349603663541499284794482924190131739551046071136209351348309846733621311629583351304240771315154144543024667730231862143133283252655150857410858915088563247690940547178785853911915136336146429537972394157401680682245974707875552079473716951968151441489626088026453720630914813646243173764861015866148821848619509064921157804435272106583283776645866399976659354494163156107702687094577147815426321470357174074846750984370649033061530405225821427645458420674821382559418017719707161593156673958927537715867408853199774265958862006319870340897020661740571246055194083972462951060569539402169595441829052542862299705195065013648894555250233431414626685744430368887058645049903593332979067421017481584811604008086565079507473444216340812973452953631145250526318844170315999494045649510359893916324507462812326616941925116325773925516230579434803909855706482366552654592130535130568632858923382923590830868917881513315512742890272175980977591224285483101109939506622499583394312235403593785992724595800347644118762711827036603431492285881093265877178245519626134626889876278219542532550661391672798952804145981356689697085042873740054774394237189485030190904417226838910315101358539209330425930982346312438298810989393373538300337536914533198056534037373151844517568407263477265213473684817054765294654849107174119231040080013441116889808695088014385856691771022308420150628663807492978670298680887702630942041286528001791413432131475615883731051259335213155133711646124764002992339996847102916563599040373829817795394604215409610674532980906728542239537564095197063766475335304669206850191352265457616443222527487011712572504175534652226301385636312571976031077212684227580301394206200931043252159977757143244380182271570330819097919665285738852811273701303556197467935939273764503844315731232940544284134331436858739276333540133879602729185927035447897546265070966275735977368431151171651875651918569149551447862953685082887117990838825307508540201196865023049341750579040845296776865119963873476523289379333072070619783563626408072525824417966862530084098680017065504647637844287354060602245575861939763608787841377495322410387099543632485834867170165268608709032438338515855475207149264739237142366321195208873986162370924271082731082409933160484284607568565233131691273341313507378307110104676324398268310525040235698951382334487981048608654518479161307414403212189567144775502838171100370235108524143553812134233606099696130221903546848490340083711758344059374035992515293294760865967194121621224589111556123835819530751359554581106180014230592906840429084528151082575288293800105150617299002619222205179901332962011258789323582111550382241396692269013770555191360093591943699271126950635292307261792048211242872156042798421354075518150715697537340148848906429276253065174900579066162006046033969754094070641687848088846617282786278848118121255575196547751646293288062190316920529450913030368431755514662506046465754379141389170657311497503158285932291538824717158279116625554698857375163080605680496134140177445737484505495189200625748739220393244588042619838626502846982720371736536011167214451529510282201435638609382569948022565893796048294577555918764536756246466878473064724057870103496688931808996810627088313439939083588690054680832582790850242827563347798886009709938671727961612497882201587748277303656602605948751646819724004288951197863710639283075313318633684844138989189274761061271146177603179895573668094438537835639662031960469922698335551981950407802850782311432561374543433427025332750176593751910227868947727477147758461729216725630168698652295741406096130983792407312283375330043065061502202027533140044285164842843220204666582418019750611673863409005516706705694834714647519552959989921775465530844991251283016507844962668916322684562071020953636538330406923130231758158959673170756625280158418053418584471617635697847543662639408284342321984884615331498594372741222928139279368056031559966546727309215112377947362813874789024215422421187985364386369518254358942395831372414184579127700212186043071862786503705951896389766602070417367305720146292357196136998965576695078070700177647410262522626791939442605237318410373632091797901415530045341618896758375813577643459951260902282277205907519240565045394085513358317705985031755817834287726577591590092944432754283485142247162387758190297567196239910311323236737583920730766781174310374905276556000491933697720752478162546741188869575500957628058107155181330801413539513733267103084775762769369541619264503925464301695490911624129935114301362259811600632369190019529597985890506474512950768954481192028741555733735509574708707846843093571032115678679031632612626473917553899862258376742474004029135360370862516290854179310225268245439406273769980804843385650216737028551579193502724839444821586596752218173321356542770048579912291679308816219720125880290594386722093682375198332516780243735779838632935984684552776563514991361323590726129609803454930396714639166801631591228438371939734370287895287152822934683814147060094879047616565479462120928441598114174490572574186336968755515541151978220850267327824245667141396593237484318040673831424997378132409595337206996704339866377596622069611938526096545538437980136017632718948147781322375971867092754687529938339145185772636845837384726410369265967812319140489672756843199817707710500975741563265356081197640127055496784311954363281672680039796596099189516417349416792253541840467405177611075359443090736775961862520735177471848144368969125109961884103287112446984187396865223093278659586015922579170923810723385723754137774079615561449648765093205779609246959065472652181244806322926903504208107810102610456219913852321570027326767618153651993965467291332548399755611660496916777440997336908895767289086668425311016006723191228069471628492861534838369393917932009320934955837633678480488755071744169733506513766264800936580200201194030240662580575725168670912448549121392986237774324921281732332211676988443392616453492026742551603745337953832785992847791828676648033004325945445714330377872294032468361085663177329880969603046635842691355522785099393666919422081412156393405582838942579891372608948075945179440220794719044463267843363088899927431999870772036495844134977245540068287333251479407914065897180253466024885065896238225773311781489731046568817241908597073986583193300082857790841917677813283962313517409251144081637917351020721600136803727090913542770964256363479465287717076829512700775621819546200787962892729429761017041301586567230168165358199750509416859984920048615665857737956382945488764052413195447380516619471810429711597930926789412384876073966941254067620416974908549479448701979911441510603463738459847689962009689564015241019087176599908728118422220566310553317391418447232911371927505191232783206314935019528953150452276035882603998131355831942099589961696203501757788593409327394264621320334715545530285265849554395279227434591827261494716228769890794460024901344479840556978719902177697624049327596430680681552645212341654058521211647756439196540130609081439450076424817053513841767135264195002053240148411046423060444665337431818577758856079127332819231141289999676046793528197239047853894165403046895062879230576121769812229878559425393823252023986045621141788360524538423184480847387558004304020403679686144203369387506805440277578119020938804443080025707990844948673419223754376700288605090564121819786318948132366402556050484757900032509938070015218786357586553314433529098546251470337054164908442163297495275232639900984864304933409990546953803023282312594681135381607574319808665217934229135777369721009942211705341041556450518946602392689751593402319148600704936931081993850430882075585988847074023153978289663676275725336302238050097325650532644777636608670896937649656267756486340504077954891403961179211003152715701359073042459739468187311602852616455831588156677818482308430866886195146130626810076446464124673748715242566123333048106305181008452600923198048286487919689147139411009054448106542154809519802670577406565347467978734208578503063293500594732722777565688377304769238820921366855913415367019242260974836784290145886229231325361621611006124344484029210113421974447451015697095553882119208960868815177991302794069263355504171045204833977018622110183588660271813052162431749175720002387479551275559168125843013023168358278180864765104552635088801953870561373665745650700218618590824372096402285755258463900421031787048754033955178980941702370893437220111296214408245144337924891522060811260225737607945903960625167334452822692484410767341723356870063302096220363481510010767706981566436132762308798329100394482542656833322235111346874892384143597916022574323170782640644032097497177310599516841386964777404795336422180554234486666868836916126440846680907554627445571774286287592543771415357984114501294634195199196308737475649174050759301455981768681964740419895454245077619089355845857764688972836026175898368283978187932247441279241994488477646048921786888693826938629949140998922263606171995762452189725193557272213741979033141164595292336246698207657521514778837745684830699130072408971400297858234439981359939686269369230111499272895251520339961001996035444361878759798662125109948716652360510183172867056610677545905981141746108211313964022586022683495180843896231078302954601513589461557749404203023734436059189672469903599391005199589505911976360907698366297379433982927366961194505685489023356763586959463132982086303235133927310606386087494969616245321522450610194907261697199110907594068741028401655761735352277742859271023721905079011368953355356866816694846638438342664342479583315964293145528622177457224409885256447647085367143634299714995754626796901876041324899361105604688988342906126130642398950586697013177170436977212544652584605541525157339099771069330957648487203302666344878192443567526142603544406518034767852317643003638270559677059124403582381504952753337725397338535557365319266489862307200318250370207235642238441238985353506381724587370831070072846493076854644024037419433501520236615700226962428562524763264942927781293707947523367775454231777380322864316050262780657779806440231708061812037953652597010825121905205111876584912195578312484387665096647110540399632108451243849780587333956791596084564114898857121190582283215783232230010039466316512461786655157142087728273878440178623291271845849368649449437619739083057066918092186801238663087886460893666776270426178648198219858044772824930182184266345820599451333042229726747385192180586599189678329528163002773300874007917295785162464367177850964379617740612615846617838932401701992214271455277330506466216861483695611273997145851035957312118651773501439830443835195418731778530130991759484346109427661297522600514262185279714761112249143821087234758325383401408843162585672218124063155880057607880513490835347743120151424774038072944118703354216398214280376866041631600448039860070379966485232278741612408797900073925966016740173129899535795223002662217300590138795786945887727078920967714968929634901567321699527750954572697673765386018472112971446438078379611858555003039488962842494123301496763332024740625956225031949904550919912708056947532218783025686504152163622044194782471114449971735503777504575588099805601974283214781978152888865459011339906991146935568965603959427109168862691521544579451178183417514812552354532370095566523804410211926165367662143268218878606270344918863506209412299746894710462737223603920830192898227615351847063590230617649617326948184444488636763366699331742318479836499809139528223353018787476723122042548017815862579655497422342112092962439492188704689939696886350367227706331743742618223974630646971982832161967014727504956287278441888844274097117533210371793223302594360416604104999395085611165771741942044371524562474378346888669076942805035149324550874390200657053341378491821912907846040674541881389050336923197304894050685325598778439112159699110059652681750709359939219889523209378619960619291062260211754176522404638371581115469543856205297736899885703482873620155042918587632604467689258462721887722560097997050483892280151568610682553306440209244449201343103684728153607038222001198491513861171916991868528702736038469873921062178977220429401547675752135835857427098935794912198857193959931824516741567059826675528461671928091164999774812289552153501229434154119631957761829080153404672631913205675198346125311574538337317406035113271411602253016759924022618523354487046227307035836470260772082297297112163745210317598626441258157792234732849485279933505003743395122701527389089977704538032021035081777194771678671749811568351490802708816047315604054237993419132625821865269641721760331392347695767187131919271316319437567706180019170000074482482751223807845781531527706677764364429649583347981481257359559601740049154966779652013889570927277732402461083328189437762294637364872905531547377658055085691693856630634945687507232689948721283664563092332591323338638430468660924203370382852734528817685862766715484465692063080682563359443611425083641341384886589717868364042135466262229847127748448798661011590258966091889939430365232859456101769085387318580592989782478995324600393464350829857603235995676219567700773569505717696807035336771242636996715686281039641239174822011338123537017764002592952329731509411828517487869452299313832266828449733428578364251574490536892566700434342293723612691661881578279159852284724074506301701839858066474996590114491280293032400835231087375573618740635749621709902353785417577559920474126575186420974611718098323126973347657507907516541723065142481743638046932648169654345587806874075105075470022323924991990888783477692025008867502816993460572058845863306606745410518442814975293312970736318243302652909576122809092917911971563597092739926513204103966291533553577160091262056966869740817445583830552742172872772335796758531887500225148492728736584564408033383280763526328512141103016773568782876463058457094820696284809220533946579010887971459875525663382178727866344911314846612693668892366484309346178943666615624190339580864694437343920116940587513889851275720899773668986526191752338045732710796594889935715476913618839383736799942851591455458404625292919091455860009380020570951585962842344387005065276406665125241182506367033576877899292796587436112022224373291463228202994923702464200133166722170278766458623263952204754611289722124387541887806160016635842083546866576764024795114622477945661225830225713311019701265462813178030861567464566895779322579711677074340399075744689276859998087703966436311979356109394182803473881153025032726826261493297891410309677623480775129717987945255755776705991567689002089711379240617195051114023109450831755554886020874624238840342806458294541327514619245559505065692076456180119784069874411055158591987387985036013963759100179362935110850311757342905401202591515893255207098532978763687058182863556752935712776686327502701221208004967781206225757554107546607640554442167740050607603336233706999459253105011272368949452691582273817664343463957012252996521665002421057788972705069594212441536284326971772337868082090894745732439278011611638165409744171754360685284726547282268232491551079742812859776532135206446350483243956205806054411465686571091832575007791392516468514067214470601347107770649136390903699598416258597763837671331364495747970258369661919753640168115623141873773598308783119255387314284817618814162228432238828838760042713107550546615256253544545775348870426479906399721817421233343678090178671399870303650926524887544479241587741914854452975620719725976710523096804468603717909565457345362215712775692555916778527944628063002571444101276731854235876032060288381867167047820318047286061785516499782781004419071357485785348708970829012341200614678124358831347503912656003312961845306798022450350791122013017868683288356685604027283160996195581693656211382172059323498502554694505186515901552072308474942599181577587124731333188009691421017888400360587897621051918829347340101021354558950168710220219503172797644479797956229282406085788671073595832369830003416571369816152975748348573011643001888344105795274881815676423738814131534527291999488804267306612058947573843019893203020035338731389610623925588284896331948295472608970910647324914491236550825991622704392302834891061884043754537582938492412320874959854297960900464285259299924728467452804477985280351364781774552469853692494574210455471979614294440239355554555172968191549445312500677174247141470680080755353338981773632585494789757411715108135764091188100263837318564169462729311389580209455182770542548842743085945542820837153820616376435388674174950948170544959026806886870859175331046324322019973430728759128472385425209143411066173934525811311340056151244122717137955606911489548526783936812137361085362832807559112498336453430400598964331858672664656032021379646580784458329928595535481388130840884109019609926636282405984818614104363616513137944370776968411761929221436699875316767715580711448368330545041493393118681650670531036339374050254439153818313107018515964135417571376184192330567139341980679384542793435872716203778847802729166832786142888020949123749372462936102045591453413373625138890609471157223694953610438641527551943071841818431073223952588611891325544277934982341886007446785853059672333816314869143368065168867370012820920534026761408313553672482347581503705395972134602995079392989863796582381744572839521392340980849947148501441086496651077673821419122182036965909416535528483773380813316669714490781581014986211108905653291534307606548794915834841761039791840126907407550230511795579818226741978440434919693100159175350045694023763324184001941280349529025519735022970105616502038941537414232654512048407956921357692993859345316942806181626158459575758891949520981047871816956244673367214816549268121974007662745370845093779648462171500157107875683990125405896769899183292742606408233606983394945344361564757576417081717499830953017923398505639188185921215736739736780165570480845240012590639729062638308468594053537137583778119143706631288696017308635035230579969050683125973768822644580575546667216624968207404581645399300015463092309726374014147299432065261564149668096937779335935857217907831805110815236971600860381393601498907097226130318580816981774322912560022574230589174580396846028518889402742459924480437056665000366821707011923561247335439127831959105610672349883436800455558205032887112217548695895187394170656314250679982993592376532352107736007185756097186340380747249183433647712338074376451002213045218330448467258673227101637267268588754367649640461076397139759953559385797438125213359339142568768796673933879981710874395555154714841884883153235967333266219105370172245655338852623373782871293061283768157009640189196652504717222972687356202814554564886543803835692532948229048264741654613132873736781553849345545880100114422799740123276711707005846643720533186643243056853540112550926349709721338021242983357198906518130787666944979557648277404139099805364086768889873237887945179889331438328197163671667637049563024205232824618423888799428405238814774816125826953156978902664158502552378187770836737447728824397237034467088655435863268597927111604530221520972425167429273030683324652841828379691365160778916003836716584821276556840320709880567768811238320707596415485767891753486820351844668819506465405442446616834786430716198797447017302068091242604137348178829831089607566119993672374729795168776866794823542293355697917911054735660972664380548387541667119392543264266093719461690155072108830957943952752141997603919584696868939526517305927585250499672759288282004251501502864928774321755126191041062800846949977143756656061319198009782793543265425074806357612213068736628271950548774112153706734648499585388800238025411378559995107755208569345947068023087949353166927805805502223222784694327421525125885293534274983049459297439460768513580022026843757032273926103270373057892787461834135795993208041418845888413795697352858825117729896757287373663460942209598610478446505114895671851060203566815536738712519774370706119752209735849505181378396856968763257286310738225858235749632213315117785358072876800811234710999074594676244123871285095572898104556261810255213611585170337779449329945220185680173040937970635862196568079850480308907271348471760060622471989988570239779210094236902497690857602164834233770164840377794116455003224796373450441855698490940458867006568365101333001423748891405895147857886331996141991836516896509316894946495103974512709004357308263292916555939954255849482258026030172990861004068310441802097095390641104049998357193517491852303229519944949344443703753946876524035939161104032299984409200255611483949480137543091317663923032334343840284493461305236422112222425039635661100861643670882194260378988327730140286640086309911573029421798518285104624354820907155238305452183103750984395047731254625247668791472412849993372854920268763052601565585491471753682639510831536230168802798990572198861578005383757333148641353586790261818456876576940426372675501208615779116897142844157688739049998693794667640454629309184607060181259143683800606614702497445545482653253917441415862601953634088213422917622602177680591148843852875006641593133062475505447958066377624173771149434202309084653410915001058217171592128766774110886993509641605737442423533860530582336443314110688634584642066594480266117299443100150501337197092794305490974914870981224189779654394478652557641434988915204576278276130698845405070228533200637876551157639344403581411224343804700257178011301663003194970962440668583299983705768031519289048634946272574806845851063754658463039535582593790084534777953862951832704480848005099139281605457704128434958285200154839080923964873168153327325619997912517020767638291176642337751073813950700759157457656640682338068299663162930686228900617579125084467093688936636248377403878254776283740269601807922632337976433032999177591345306116023775506232331228405198591892948717105770972374136387939183859219526071899199225026549424006974511521995985655658068359053714330603290299300404505519541418065838649268310686173734427586754435186925184217108445524328488811624675299602748877934176074087053412008659229411080896026471827818743272677347782632178215136896486031554343753042874969307996439637609950706229771588174799783552162627744638936279902684471313849731506314121129303765673977996185102651699841710924963713877069345250278770707454002305107612558499515411695193258597170152715353795663283525886514335179293600118596339950116807568762589423372974981991637868805934560035415985994717656369112094631274633625778547989754636067700409861292856851186500201332463940072209782616199888055074620029973512830957251777002383378183085694164303449840992690470034897033600067546580256327041195436997591402851116495070315003298468765555256460680558306708312209031323632156236267856121610401881430301990366048677815902150614754683169926550262203228560621284114395473280398082684405108167124576902381265057344522592356230435152113265547780801421671743377229657532356185502348118336098878387206709300897820810136939609963604349576116416411611132874028023218966648350303778719874322811419083208984952753068410201567938936144883559709420199214555999982059128752879700551547883319039152448305173395403140708112078875181277483054747579135246511733237132781540134999340418014122852779427517799082777952239693821738139491905952723874533618158275114437472978732727599873316521571839671377699359738019844060342961145882957240995441658586905854268912641616867249300608764140817545991060816897933236264323785371878062688481601820684001906036602534754120793042962792370842131205717186762076790399691421250102187228290386302187112345773293258727962291737380330090215344378638406840911524902339423551395661938635242483727635812281341100377271983919315722340444344006364076870590066183323545885388185322661397437685595235582260692700058761469709279360390177523676733366965969956426127533808764155752975955822353671237787185483005884774544427693705291036514468713070243014198016434136818360048538497190289829997182245689288354807231426740921610090031422085628112238970840137949667578696053898166474824857452865534354026292083513541616688950966414341208095656287432417189045560207504679022735684697560813881185104227351556545123179942256425220942212565717279319077699654688583602151989067198749474303212411600620389518636738381980111760209836689448369418063087499969226859557538132452697185645650704941794085754335985684551685231875961659612727594495693827624914785445944149456841145574619312043987995942094974720548483705287255570779640291366494771349478462123115758452861333645211625256224725197413156384763750309391422416401658348775518114984505608014297367342969761339320639514676448527523747411917439135879359143585408821064265696371190175063842105062158386803001887365147915876728753755280471429971047833545102071703647036988673422047140685422579221434258221525255498071027023962884854259134773282153361596427205243266352396168161447307028430594920094519964408409372027983290866868552951139123243481423061881058577679769906213710966991455862032671068556752874188824631090553902445994031325885145750155944529552639250999723806982616992338847848541825179518653119490381489275214899563048963044946485960043775264385675228478936765710285103391719829667215955937781022771924692280128641872273382093703386170293990075158862564837125751045469463839608674721115727826535536818654622212053487653157115139718927572930763357274589404782002901309081492926235232998211078802178410506331914112047973347643047047848397399350387729517352519044941043219654772269898376320950965900522153723407609794022508259102998897791575987650035670988110509393581922779346284549163308023941266122265156112024607312514548896585909727975323667357601564470252342793069925886531838507376215109046520983622008951935192729615179015066656128091755987916801397179127100008021314534992852855013501701395120730125047944320657815989975105806987466081026784757989986901960189753386790736901824747543696621541669439026841674888952878706471838405653181602710064580013982800444945053644556920383813483651564208689564193698087438354649507853525355863139131724326811213285185044713669327406561212716431320512359103102499241569856599498626161024595674027291872294587669636353660621444072658202240714036911149366395847059128674398434236944084979517987901037761874878215218733670689207107829700952171362880626452396088634342195670541694989518783599446066368158439043319131969415948113257466036518800155479198348092498309628030427793761726001717153363848710095432629843740736712465084415675767618008649000664633225488993793040099071593006819338474045341398120496981403893859948444414135600249942795774028053733780686586800780651634421020213123844178344941930133735763378797552887671397780836324139892515060330809725275368924424525799864858974717618138865438809104202091227657246123814255618243943652757197694849975915594332542808574362790339494699946176741774596175318283297140786841153497092826945436470065143119910757530279379006262940785102189013047329425558816437495941577190903931568097344517202783393117199573309473854545338189971459784139805754140161121211443859642904498395457003501858048883614110796534376248062174156215964199453997726649469971295835920407706010798416800570305010958500138341356193140194551913508834132345549219185491211921535515129478848490188948820519910881253511221744454869835137010798056118274345885345766056168894996627058739065458006937945721645906880249189168235578075523182418218468899223197086089241329582101855567103744525385066604790883904937514897629480240970053274285929393898920637890541531391349369553672587968965443420850223553859878101229035960811640170568304921832849248687220631775413138861285520530657692663506511985160133406359264354323445853361972066610943516749631241117542699293797842875449156784915513023267376725414540568339046746277361272940072158748304702638796257973686491012641931775621674986192304754015828276819275042946082180645833445266246487574343612808011523229108675610937186244038422364837451775229721492287137783061737347135516809575885834656989551865101721965363478221007847664963358616707459346564524163772838380661762003279282930181372037045638397703699501874631071027508520452121529349341010189394347881001892080182563638626583987004927720923943447439892360994323679703870181855414304166548882136249459437768505782550767373233944959926720450535559992165111363809059792818371566659013092132346279488711340133470524654961751785538798522451785027237966666938391922442343998860120078532071379590099947285007574077751629353598248513539032886329813209157812102790229848556793899359808390248533573075545191966664016258385734140499025338857856877963713909951262877918351450596921301367975747534150916567055957088415930672765580335095328099448038361767647120794542589973291830027427187496238453775299474625702838280404175007550700682812841384092644321695136066312584772481957971703856300125067608355122133946427298876720667409763102571945039406442154933378927895410680960142338215914498139437728270312674482948621015881811585036996058611356179526842340047670673489254833682090254706679032194054073558164333202600980420673726961526866138520785719269494205084762736250341855611376832328370947815168051551848398808772228894967790109448584906566295474773135272903264751409336275749368371317532387584365426138608106505470794933497078781469015142276391627238827748175387204063766078771409686716766257537526248703594197686373875699325859176200989142999730427168401950877008139849453475771172062590081631467919600917650186597217952012730977408604476046511587901928900972120041995184338751245293061892367297036204416431208720441450517730038757742288713943166956374083805077724339378883431823171552943876335198790682209072134724994878323172969923035229862998328253983781004707761821632527625546783593553003004301058819763313569317335904409716321185468237754758127683254694104375887758683142400819431819312546200830024746363058367393203871278009362249801512363373476309224403417351284234098392349968816431451436944143340371598349562161385631438714432100563101933200989646988345557434802882450373882541906893512312632793933726328971962052394860743134115509630629245998113547678351849382017815203365833437444450145059084780125833472677181258724036921156741785534493148041000449127382859206038932448214411634928664225749328953290843792527852881994554933359752996291563008097481654998662071828698331777451509401106556938977831550858459473172378883828058739662877108172869155276176783682493927925143373129728600441270865380348704991405673776809501971817682279378606033293930000851242739529853623654676721290332761242309550625849057232790993213968100564871267695674629011953528784533972968898562338826027540733870637751136501071717581169006180234618539930552547244703951559571984100595752324144244188037663586956870833333151814436591603430436582570624290958812560197160149543866293289422016384076052068985396000127031272202721660305737231613009869918156966066925563908265343986541246080260277436440012283175341139436310503211084805141767095788391435633882777371306147785404543803207753516556165428534066014193182783897640073257943730026293870239455507851001820944793927787374369141286152494314156261982263605688016000616138624053995678226378708977290355926283188941986400514271499811316877030208916327873290214442204001039968588888848328844014040481826031201296596867443593264369149070337564813127348957095678644304945339738001661519507724085550554082818773236692038211897802008248938530686100175702343213914254329652789077304935878929270180383127272111991322070063669172936805794160420330714612783392054594174655212622447547845732539833910972910054817085170402252470240359893263178351889326812801030932225092217647921895410344927990396369604322268520884921661565282104228143769401213509251582461793084415189445099044164889856160689064610395085443383029462924230844299541756797374714315424934401020071605465538350813442135053716227101110241641939753448124552854621767844235537746911667105748542386653715120106848387424281615488494793298796337750404056132758162184595620586728818226854017142991169953004636169958121283893009221442270916871900669679358805650685859465222329987792777338281914495112642452868289060491495276914568153019438005320744189605862301407841289464870723784543361399661272298676155769387992118659357093843415410833372140410921855855342937151001437291370320167182461603483276253162208332397673829472343608319551213673930031047736867801348229883875041707516587601865061137601440281814674407675007716358672871771228586885283226069403702297361563083604065489352653648902711184754461815231580670855913734500644981238119140637166983191775747379883601606945393788281547605428497734309201539948813458372894829747022974585715574096955366683945205013654392156728912656094832602021311691987302429273895717540563571578264227568550163744194951001010072918996791031463031477841907731191847144275299396150838453898384380440234442455256315561982489160377987488847160176693322890413564118128783097068106173384724640266214674937098351514685519260955625590622666542236070592811406439319717814738058430281113997552910847943199299514890556908994564960507717356311010845178632952272803044333370751629533487381053618290455170469667036589335979528376468751833335061663079744503476672632897376189068729778912006248499126352070530359595994357863985744536909424034112233557513794127771144742262244692649286437193292564416110172452067123327152796290564595976325521620072915247002475513418454107816612445197182304256311864835326304498694383949623877349250226573005837294390442159325925635647350407694056612289796564064743309950190418663773255290924808041542479505956921829618931518493374477852306748384973705038756909013554733386512231303301113532516619981297568042675751260130808557645144362470283115763611329447026212616455961384826951486824032979186667982205448333135389350417672280652853838216339267366739672957468930561910203821197448086622606094298466658320933138161694193659561965303580084866918949126752828919787799171750503308308037792468741600742773029571436359955652160771440339605192833005118410600655459725388604003748202818538041328419274064021918294578113785585972920290032014613814500944924745614817705428567031667038971887469069410745700672076320911091936682396742187323301303678022922618930090339937160808832575289696596656512140315028140624193388867612848476413693391172554905966985522033869605811536532841005038884461412482098289365695228792046528768953312047011640398392177719640097383106192390169112823018978362828078789227667756278863200366260557527323479117556377048643310826358853869502190868340816534486415438499599393406467576535134288812534489394686551546480775325057786381195759830555631394338710134406955311007991674338358423792443867416625550510101782307625438227665288060996852549646325664598403810757179668405185509830709257868871338410342497474129668985370316972670509906789267773624081931765189445797884788199996817909566663164862980709311424010208001114408114119343592815278150137021038648483669973345093452201408069278373143327701755304450815518394429848219271829378799183531856039631610024034244226185301535994225557687880308007984043487267230089809624016195666286269900869989665175094000670300564437417500893476397783976458309757184334613756732247174108616723588364288730322260434000690192479910645346753111690844694747956175439323095356948436693411422503169217124797437160070763804829147233037817272478291841311188792094144213926094544742857119888237883708359888107934458053962687191577160086309286525819973225386818568352696271823367398104958945455379900956329890000343423320493942814377018559220984995319383162723000178150347191851438286203915646161533537877744557991236005130608352358605517149491007278512954195184102744556224709532750824528784395599284898584391056579987438971106002921559202834933323919004172486201141142481326327698881114906269381247918267289293083757675423671549322147844766596783554142825221943829346462399204761131451988729978692156315913256403723024236309914793159876981409255616903606747591865609772044545403212955544869352989641602651483472845096728265317816532345640661717435209708307576160388955077633370481108702523106749955014181155042735389485388843877833270304403276650557402991484210271044230919973378200628402446413219722839054125707841925135927961977508036510062579969789682316061953031606134603005930679699548522205422076819517276463964078824387890181346319278329529591757616836522328340549462557635263687658732133727859675541798138291525463344009291448791867519457787339146321059994275100936357052437665545639618849458279244978186459734007857518506473651094477500344649395283071176201420889864271876388826113083614101668036450879247114360128197465299515816286931971097202765927849243100423020725370737940336002864345602511752601723630621802554096354628437332042861579066273164325336492484363134132477323337624099892392733662976986049787887368561084578198271873434184677862564858669711014975248799324822504926773678739706754284982720245549246633916013295624981395645690835978579204664237263053130404443213769503044700313007702609778212238650758664869830646843189243716177084909790013725465440501035816042998989919212699994615515180226786341684258592910700211687552850716669972033630560417860443097694091543135949432053481203900498334358740313309728648270027013373630814834679705302486340507400852374739720248502654354191099754497021432478108205484264054418826803725607646175603298465188791857778470865414402601744276652306340699849351360441121883835609396409193925585598938322096230606061633023183203209935153687625669536696341588825208305134922465728125068841129941152194087377451505122398533534546248456289389116082151767286633785744304070494565484831835231187619837570220742809037521275689956559796394459790342565610841236475940679876455552204068039361939675220645073990481734509952148047407286382080585308208397948346562213309268649746133458292738603767922223681099920755953049061907640296926401552516632228101088819312688243565322639306981602682137228667571121198268056000101989340915311548791104827277521430089042206633049937233365848745226648219549560885811937827139173600382412850634421204379157942879168702791963050923622780089090090184858599314923867370386915054993574721941747058638296934084783963772157638470074882469287592643665953791369346832910457080237676683258394190956693886034615618468804653458181964180962095551849412838944925322431920233048402539956971472233350807730815435009046673212790606497051960697505684656007704118175457530932178441683614348976142301067683488345066296493724337606547326145525234785755165471171496094995799221565027543568197678575355974518960053790550427551409421759896961401093320242156910774853008284069255162785686993378702275357764661112490580183215375324227997781960518192139414136602350028657785211020403038327192305130939181603802975259174457564522707814238600934142245015227350369869408939325410721950295949127034514515058006586887509704543998991008959566200569124469173851155118743371264457355330453244595103199203502703435999959387450361395013125561903341576522245340868592194862262333884815611534382594277823158168460987236825083425091134365130852504563984885741676010097593324308536849570061659618646500373901589831779669339854321402405007709875406449420481525923167582268102520194222367195568738144451646050993235368007698666653685594823317493403554651182974572260597397632743705621078727559089259109446296065005000114309113633812965253965127893337031949218485243867242020961462376992631661053815854396658572370531612333722582040920769592923406617562388888147831907813631121224539120964104604611437289886790114100827878990277388374053276934965765766266353024463721952147191964077622599804482630531895272702427593213403313219694250218305224159757808210196993053398788140229188872005201920863647174375425603728471442226912937333868348880104013727543973576033745341141655854154283883740031190881406204492253822258892300142119598666113728498135607620186927226431683971150379274570686476668851877802418769905043705150123630998040259732980697509170273035151680172494057706704912094465262677654756700972374843158218447173577042944337580260800566587366276349928490729615894951167666607463272869114966963516151967534135455768003533181950934009500170029047452513523349764610797707354920447737844920546768201223179055961563769866157142805268590193484032346542128851019585621736291735308504090472377944638048042855827447280679342099286493499007943369548767976533674167862620727714752764565568324242545737580577106033828855154906387986116983813925587718903010506511490106195492668480099121061970562013761437743511637028591294290760735555762807656378795666133428909015354718298154533185647794973964128022708054076104266378781411682194792164415685640237590960217213246112993776926137554602392530461339505709750759875820539026181718426509811180466934645045635963915665826177956465816599669353173442554152558272456033736234367796926112370311054137132378333521430781196698047933772819043511314439639204904664755706540648739142338027715100167797617995027511049305133281735226742043602459104281794139044712990811100017832038790297413190731230893029762330512284325782285609711765714025876117715792741021667319772826020048047568730071917755857552192587829417940138395341434387384622872040423316429868405439102203204841136931337364302926805238216623797788760469088149074873821267845147920299372234077544794831873611458997512912096993543854615731780581139318126059644174646595724602457733810557104776668192735776029979518979085381012678240958149675391065794185097298384020074375990604150508791334219262109344783958236105643965644213032832090368977117434527561041207573778436535860163281306344344973255771772304973227560043586640260342061438116370729238484497744869493647488923034846164939728075516953299166623025123098403535552552576830852921473582043698352569048646095683799679528014919889249704200712656239090710496848872005342932284380636117201375368807544935459036659845536298919223757318592442196359641018864690918100709433680309365573178362737543628536311076205934255321857900216599037391473923873952673175313430357908611359452826275437863370139725771760852689496801844349669236271840509428063699603245688581158648858739442904875786042334272181735185266603928076582134134968879436091961062006207148438469710367748268493834263422279509812527182378090172593920770037413098346953259835018042526221560075120555511038745575552674118080897194383671572302463922285590489986532714678598926444279995437213514271252989979167080508719288617272359143183302840555078482187797328924875842879475657975430386255982457684137659327491086566392038658928887376154466711646582405268809254068036228380222974630945335359201983045976003734113499027816887949601334451000844566609793398099611112856423828501150873308462772728581417249445778549639955951389019341297973477472341983741509143950166695014532763840611885270343421346069719246213646786849467335804604759113323863519523164838263901175502755215183898848043980656264252900353593380772114657161147853562317609214946867246492209442281078852727933613273581595038701789543765336244115308694023752489852580762046126441469395506342231476114764994780968339101447104825543668606385510647342185138615842241388456352868227387022579752274109142547096756250459346994667128124611837760844496677234977215076388906245226411682492100592841723354312230394952715648992625289144252548047571947514654068158008058800428281090242028701083503024646406509968403856125416089705496659858020624883537276933430295307647320656007375347918411314978613631464437484976382752833918746386715396051850321133613620972432009951429168810151840801169454272235311261718977625009642170609023461319788765901811794488755048737055212992662224684643574858828505228873082763756575236093545167247491040243702227249029698754744673245515003754528333443490414753922718216675815362390737049631018767269159766971973001154305933419704085449194650267901817501776780731879366851083128352560992235532722693771800624494940230430731350100677056520718001673352477448939684934075145693922982483891544071934756862580374129314766906274689880378165604724532414827099022609491449502376368021925964339265645038610431860849264966600031110982142031977786521757669606881410171137228905190584123671163063936873932980983742439659934852623835858122613218459147092599829806259695549123332398727793016141621991512500957251095554335843117545615357094260188290790239664589839836606925173770133521097868425565986586897414032978150339060467874232837805240577023893086197713639430187094392432929381174666786187587183351054383049116342938822447890916443156060741153857993221877966357305308452272679311167034415992169239077090964749742000937880067297240856323061643084567854252316227808167897015295537120859863489577662704188638470441589773545042663340454986660534790429931271820770614322023217018357687426919548705522146362098422257471265842693725514160344475716262595003618926794618717767583752115893225156720980159926069412151200892991463944824653489929477867567052472325134690886064079798370664103211137341722117761749503219937272675165926133413985249446058153430876673445577928863799829389195415646258014814893174240585754543197250097370545485440029864546058076151911072747504720710167542851525355391703318883206268160058072432796640729677582158148860681225495914912959637225788581315821361550892814732229162861500348861302363132125611949899001053260621013330767918116280899979082356861130567467171409817084363254592451189770866091482418862587305351007338566611877507967899252471112252356223167033626597426086330156914604939322239933889144168497590917852603630892113451227143641379382880649867071964266258528273206644511335947020586175623769499649413316542804584276148031070091352775160323084963764738539646919525380228369361277939341692319053069192534777972568511132531523573317943830816677457170309460441259579540895946393621543149538509788490749555280082530850462769364493441162208948421832269574549932614030259010773359227056690433865701329448038091891332345470553157964367193306021060092618418040051888797286018926510133277518888514248955052985696762814253932633260409927791922898543925273151929151836212254834190670390632311449600005792566459006237210546544621445859364517997643009493944067984742319153445268824560019938278986468346737231430725135705464883288707398375971422784076853656759407903465694599625774713626363924135301849271859054644901210728235985144408654490567206466500720600658946689882860560482416105034466157990794191715445927520654362690634688835696198264145465047141066798893667837441306512767951102360269898750271990072043968615398703056555366493333004759523715939546837419675358097993143392502743960819862409855573389534342795944350913476233682332856452764710171450904197240047106042414665240874541158320800387034878883461545911251128057002984152005675653669542280824119495840188357635108068324202366942660411970160294839776929669811139753496293085490271779793899519411857696364634421296646142824534345778867922772417161172983509522940116789150055405951262106585910275908185472488279706798360811514460000197243169609275272075569433656863006512074171959563529017250996452944035384165968380882932161097278634362601244698194577456195223014586448588450663301905531044173878226649834294636972738873329073729609431125203652722878458695765689165634943657062820696429877561853175392739801822210167253715972795057903929308823997703327931611122271281327599328203001760955088063793873038171886279357771960975850303273398532036969426899831448249356459928384192668796637954584220953088225418211834133531250910255440616870838258676588954776707749219853494198087432515400353341031820933789104504129372583016629779539451564845763402252187390896130299108406779162917584431977507363203297918976388139204188630836684919233817135109966325071298295754992122714844591786564587420175603893331791703151060034742300817086955533662464034663148758872513143241943848602449308525036214689527461350346668308225950364646109496798498685902690016403642440463428221130172886256144250793044843382741477020937815447022797373969978265137554633860513843106210789478265701875778285903607180534749471586479819463712162091956558015622410313375476864967027820529541119806638867156404810005173022403245234476183752516888282296825280175318062507547830513965962178920603005723674448680129473729269103417475246880968194533085887044986749015655753615266747672527430321017725491419780734629400401888501257188583746671885205209031595622843352683825716979736349285283911836919748091211995658286443946861633438612144060643188611014475673245366641235630442775060587213401171604168160878301718076515684912457908889412846898811113000269472626278360570255349006188399547727689148536413203421908886731120114910646080402435343730923070464928078437045511416953343606925716670459608136443593563353325158969406554467225441632281755604280856041823072966776517352990158369091257021833433663749280343524809316529224199232375438010850952976411945529521911753055293787658102361339425894988065796055816354066550374183909465324716287152655437010032697020272611580323422915006270627353976429886240453206114238523306933758506026520595543235921258771407669161272792790385181741439887608691051371520065004007371352589130766340869385785301627107371978804766040976038891667025484063121150009848839713987790829086214890192201407459403575298938771719101151159858910432567576513535871544239298440857080630245786592884146069621508533383882257795954927976623614211714094126133932502349925062574940081262731700885616102199406999750973766296094894808976172790868525037146754076876316024306506025751321954305939586018797998618174663644195982205474161380141409076462986913395185514663965885116309434020042219637255636013837916435047784391716747785638746757145743408970497534220229042566479660678391379182736090842771269404089764858120282927766253583244497522964046432527361181032806191250695747152432163028039109374326309089680536163561439908752569426639368093267936782401238573380064927194174290558018389297425446372064862319520483526993729653155057034599080932930869852677756109139433732592314535725318958546492706946325691029615909943128027032711805887369574632905465916032339812651015834778278613560387384982934485669597801501886350441105934064931589474984217556712930925394253366656050198188541993283885659723851792755965673454057786996965454653994118836520036836330764064600170503193387980799733713901748549719956940703255693720097206172218629821092264317319663452309094933923329283074274844581452108166672310896729612743402876312246991417058832744928560471650268864036737808441218897467912439984015900690344243619284027800274201946825082250567886355090112049991513936948252648724855671643096187887585700337749319734644302291393603293236376922512842686819365628056847518505319610485707714927954459452614258917591225857760818582447625986634230920933577041525395802876626606697934822163325522625693158224785794184805858489145973974213741710769956000883908547659926719142601802897513829721187378266288235960652506774158423909069571920467875816190862093101220667561775173135968156374973133557346273250574887754281563903737931371718644830695648086777558736008830060718196943413827926945294847990304627270884909337575565165809321912867093636319863208650612150570759126298653205054296095021290296285642135703598346741909932687361213967235071688233750893842671385532774842538378578066250874395666060829610619605364862738414811432764974551835952624765539948332427308649625839347163309971603470264258713412256783760396050793989382519918320152124761116513435512105810624199654297502214387251519868942851224013099557217721010495200130553408817419804922322822554904320421412535914868429806834808622406863482137722683538964025192528849835062710372704477786371525919275883430457054617568999947917697865007803002812315608017849280334987690791972376301902927282368265830689810224097247110536160286894552953243761014182707708993213178783617988762056681332203160492874101624810242477172180506073172971695030145045731347300093369801452321541821913326288974233848867272145380218209623573067076509546922079064272990743333082813924831044421946454329765927509688198396691017184542496910533887588844900128259413303332024864482277403409440475232495910550522583187036332463173680147164980885291094408179822082401196414204437504130929507698233491475153738829271494506871864610518487543244612324475369698329016429458598132762322858330521046637551538024541638740292271368959309042822253798902215366238287106154771284583021184384962880674491363450890294350684825974638285463317731060530806343185234260779493951840388096907379949204943654997356907754061843020402209887228034485415513763184867047110888059696634539702061987955912394160012768505116350396390390663070760921740950858552891402329808916612326156433819470617083597795822917557149251992445734772536050779805838638487733265785132425411578637727581130589134265681245309758167049442133913946597254135172496143627566280398151681426114437879550409199519522830540798195073463248547281648473761467222888595480586769137662438530625814353057810194742345294813867381035882834175430698890478647129318062449904531317402789520853448554999491645281198952128937584107292013887827931085928015168516653021300839178309609490247204706760561899484827587391989758357106155682702559866805551714659099508241085576354039061675648422953947455361924773213286399452843910093236811860350561717039973058328180063577676636387767169777464548574956817661003506628194637437031230068061909081981983307707199659088512782901411854481532725137145560253371003835872965762884924035327194159035133959222082601217875878671499979335659609280496618997048502712549600860395806459377256917139538273900018936041880635096987361212889754692878796178881122353124452133711976636844720808219706440753169801099036748854388659187807077393418693105755741744932309076470037082954703387637498241522159996759775313155725573355587374393436475879280555894319447556872018185671654508233261979238112068585811061269659106737109716091665103244914527331411637544842314756635358030887149595037115993572635619787273713941930734421767713829007246168644445763639293361136677026830923982456040688544490001377214346904191993296298323775638776863363853982255366124892181221184816234318388613073949931263312484749202296842550855477876849908318962180873335124884923337510020897527636351023888201466901691567827273767261584292891079028483808242762733340128465757374351913378670417900161663637428370137295318998324048846424794897545749304847890053297701985170255102303786779620708650677903409712313734169529016526968795552356891082336350837525267936172076043840450230946066215031634789842722316598567379222199350589782111987261030088038488938132514136127948166301246305715393361896202209127580778856004008011357308236020063004370580038213001785456938291810433712142637793355854570600328724794531618296232979344248763839269651089488737370846612408078577006924225155411267655722107465631859588220390307329470338789671920786655613488724222397632665543511153708428390466798612013403353811239952882580389329669949152331628194326240673048427755680456283794678539359439114718850163560308418935770224880965396533374723034137044323397219603226292209615300009709879894262813347516899339764428475572950150682965039388624145807327004863848905805590030633595780316880125876728109812711191464494810433488868472508000415449099948442684406923375188966309592493085963215112639671932302510337074092279244657506692468255727322076351263926335846196253101974526295239962231163942515942267100290342759251456479287521380915859406249336382256703421606562967526346723424780329885421621478969090634743641198873558771436692173964563859208630937282442672992015392716794123152047545620293377247770081372230001136849805127776532281119911350213290818741596185180135942511041184352602022396050838682848745097451802584080254375577129559748598452200699083867023962141248918269560173497565180688595962778613128744902205082314212734528720768501655651676553636613394808233514681621793599505985291247485151319200788043486835767507288741727990292964922991141456168359224647124821544649209470401366721286820790602075657499966782636971567188229788455948215486340994558125937843125659272616812038328584016816393465176331834604750784651542373592884147114255954805518007454561376717068111824875009113000187546194223895918699303220685153774140792820140244583554672867268024549013116552810663025008395578187434432850208592945782057436021811068812270500808757942434052201696281862366277218462816221311031948876887882941612725687446097549927844413751829748113141689735311966447534727583387609478595267311023256463968535577604526216213381049556502162802540192586493396531754257336828726435931133078565534955131596403678730151723453765066333581865295282580706381952298491696635570235720421220370308469547501591021845492170257432837331238044877598012860451798418002001606589862144699364248889214213750462327592677052642152607754914721155763054880944956529616518217141916957459738369260481876289437060464680978063879732689340289956868573561540672225330355440990836132724565053918377327106971581043086878054218644164532586974206358814521218571343947349752090492438763673028760822613601839687892594842575441646213678423535778224699938907396031171694457420441663845630013296144368755435633456451986713753796522164955048475416753573145706659773574971578345367927059356599940583699040441365789614962074050506849240932207983779479878645253860772487724856935472324183456673264800198549909886159612157918057170518323266100474355263670935367208964012517853412076659377886776059698546402599087850519093655127180949431813042678574802705237904241747719979979499226068441033624684372183429864905888002887244469940233625325212813463670550964339590386029337507612263864366981987879240748761772149991417682073294472528179208648589794679069561703188507216625032356167793919597456762558013821837408085327201099332990434906904593265397143437859296674995998347946731782596855916529687512151229338287058250357052408664854311592381725238039262121426688762991192556395745501437327544881797475666424828535043143731401467155434565782289070176826472760309559268685804377035367948065749771372154294868309350707430831070987522054155094661234363987956433403429483962764208582595435836899638251439159255963753380644480559880734290493036227685080934608746570662682109733680165639350552078608960052252633818270192444247676409566966887387876732356863347794906954102589404694850277844411215228814095790481541405633325867026547589800462462903846752245589159691553626692901185897196280701635206617597502580777180422583238961876663794436269403865902079532108516216910094023369356177069884583549323113792414444593024629578219836040814606418697632983861328194896623141849062629926443445114126771152335414619079355568320816553865352751732986884684528745954211777139081617786580180332353219279292587961834518778471955237572058406811747899261103706535807090364573510623485681011013171931605840884185191728851926730853637983528359466965485871094521768275689416750431939864543403449541194279957163723194573698502309482073417568689287646160193887358011798543806659902838718767421709974915077992277213291991168584657780548167454953698714554571757170992095840294804264171617296968809076658178045178024641551546832625795257514746285032635825966606836847118535354605854536222382678221915092448711346882340057522959085004196943811017197684104297251042527215514170524598513643345919603030179795095450168090797200416642270591225733553068368328667787727393851738605682083849657386052160536710566048316123005919288314678915869549638671661394699618787948163922178828602893560965012431316633965708817554705930972512631772256834708872259033043878739447483164173375375191339037595367262596253307805937076074137424868590837021197812749797393710653437629981182657113208952097640548085210217036028807690604811448422340471960543743227281403496103952895714908618042084187273235191468116419152311208177752563161594462056453967001426840496282644315855445589486994375070053859841876483423373633697920742580458025187237402279582830196362794566665568376609588123491898684003524320844780591778305877411149620202333051097688020561949759679415329058639291200280205852485297378489671791634146549428472341745402761365572868662359750105486459019582657080401105456257472517256219207844475693220613343698863260187661195832189615568350629484744676647102289812109217208867053076544070113624890619957645284774329353637236697415704556494996441272905241991279721122113675333263011850918178750925220362456734874444255334411919119487190734384368007796225298807469259119431399362338909042324238655644185379608025090795408424167108187706575331289140289017643030154732380689695061904716267591590136808898121735991551010904017334486270760523828453945526128512472673460415494271556724165635525512277112539810719581722880161318826037033574280526620401304749974747446397458825159008010764688886067137736698093898802228625714675671578088788537615491288855101627769949696146436704871835374891073970102984758112018016000565248658801837406050577211929307070587213091479558076886203641505122700308675174131579672280808590824955087266909837232160595410947282888291822722028633772969331568287040706046734407821476107744860198729288790570680186702355525135296059175187932767610937750762470619747767526763535188699487776054138929502241610176342442641998063898576042541198791337909164708136057013542292799305089363287827549055351277528091183492475943726720768429437700680080640754996849702632131258789784959395286417702335100861721255882741897212288043374786968976638418319352654106639482069973014246732466444743879239119989344021072725054520881431968055817457932709225705412682680620078327950813907252814983863853173868186193817537750270033794538672368178458189629375914758603081426472984402499564763355839804451232255078831733044621961331048538526317677919877878127181144126950534649903874462278327463783467891163346169765585765113822376913535923775353321050099069288580795548711500546231570740670834261139514008088028395553413949965956161348239959446245375781082747545393075237269791369326499703469587196065441627109959897567758523926636036136067768919495182336342113475983330234080497587484108331864589546630157001280550808633325137234162610010351008521124548019699399149752464846464842211410077666190449688140571447511590253994870400255743949191142536956460429106819939867654279479147739929164656892958691134142955083099996269413675950636309671328582159446069130492579845177779461356232997863447302784090126927614844800712973507699693508089997672605051853285676231591595008082068909900588844156536332239778086768042288935498552454498919586686232672838172874971596198730413214007907132886963498618454358723244953548599730947460020171985073695181103480256616947486882479289765558482366027642481073740331455633825424879674440944916751140152023997386983514075159042994918049992867510528868319104692333878992281556951772255846690078035509373408725265026339905366939094024354142859280405808944516353733635371909717566085532059821833333508830512027132669580377146641752292202845954803920301883533924416714555639658755169821180332994280938400742574013018175648215754832582871131376890323727052799728493355184549140539346357990761649589648235220096440652209095606356092477348791268914106084063383219671753396041431371426055165065194785583678121408184116789969382836144728061400018231072420773703567893426990537767466908857070525747454690316123094509753889873296444376985484519940366286245193739938069439637188904815050169610071922851577447866004090406215428124508074707549062868913911221702754514073880422474153155723920449174288159543351274689484810187281380267435066749150835781189758959334078785135158790214714037424737575770058218432336823676216773929384986415389257635734256986140478061989592885103912310749518049614530243691782058552533174646364618011273990884648601541522685028470280592748442733958427693452876381637835103625974291423521029719862642133374321584352026364635984550196573118592932093049018419231981426101554972299652868132983669752091772278290780904920428329578171557093527238943882958634421532417670794246172588141228068248462418376521858540975133125765216578013631330915256069646311116060608621813167080787262948714991617023325358177046119967099915107244485489411296026054079951555491897615081241155154599537852732873166821147743176463470076128108791627177053048982339583290663728636606280459584018288870358898241110959956176419113431652145429599332314997618488008099805392822247615166104067189345230660225878372784043483151890766953627868902980405360612645994507783812229069305564167822607463398670939699808987920390607207342670229960922403067749546663619944102085844427882560600926529349307688648206465388437457290549159144416386505824707024051154151025944570311660852087225302409196319337853285338824502251938147102839223630330333968504408875101822157902510263570539231755633008050620279101571130846599003765105641454616415577985636160562858983832421619123441911394969443112857570912790342023011211127138931489193057033992701978094361143179142453259373798371580734232521377977435724900525112872831155640739728374211320312286812238667915893525291810427892027488352581239700641453988302031105834544683716034238608160785481639759308093951657872174222941934731938619491034808538071978697411179822535897292420054433365987195532569717156201880150437123848057396020315342568569024058728040487534828912325727775062601529618582787287857699170953833488130106641924792814650934865435096126179243059927109459220440249489065631317129682123343172721881175645520011815046863005240516308421219171415327404844242387437685250138998031021077695995295515585073403891832699782222396250914369764862691353564690996752346358950604174860194984460452682264898145758185698761946491253636508703704749931163886932930311863717423486849559316146055624131949335055313495813157605125309955289929807954597165803047072386829130689788236539884884424500183461001702868619779236315453536604370005309995445606042429029464261495027856508774843715549148765834198796821331895882348666122143523139019061007839093784959419363466690783269960385316174919763829908318608397646841111491578693703490770554001787019031451985488429230336801413215061087699667794349890595669090601899129253720058540208366615620715372939901638713474017743444958449138501083523085472174898471627895265288676075473517543993891336278944738230230145789104014609912428812034552082728693909236105982314776892551032017768481347175908323194681998495384117305249742235370230139953809457572578918048230349723402534972236064188071899875930950638587727236470849182472325880084288931726355466717322821031913802661389543322671644185995492287388042899125978952914531595935719968319248423080126389078769580921467242555345389967076796281904564707670373626693993016054494991062413495160272352754301517529507923994856763666663685882234978334169785690371788949311999404868167299825827162244508717294743968209403312553796568362333226966332557240982234194633565617048158623353905507178131777040042395982572282660233998357679273556165002880656113393002188608152047177158292566767099073293437097260888386592848877412114066451638880529905681203624077060051905489391433036987654799476133320203016487288431018976035673973294101948893003076865986356787209941735481045613311543368101133532274131874177580150840294976783341328577446645434076595680663013869220561516167231989567203197715739194038936969609916636312548149718557018185901346504859062383055737351036270994449635224818867663201245732096807269090323798277314923015791188614999447092004147143085523876971176663164290007498444010148521926463187967566616734197693860068659784308966555157007914557501852171519094033131387112606307507512458169285350234570748908709633816677977846086074326044470659733676989369720914059183660078601212505125231234688875866035523635277792963412020052799798965578160060077683349901134657580186233500812405782275853418678919642982979915583079714303312034516044179431522615815610130518856577411076698272763053805454839295898403870000172343571070715684850192960236014362834570269578173008465890926536752115385661105369143578216448854236531942130753604009632292972011470233438272773359926014278016559081731493838526614812118039508019445680132540116648467382103390460212013413319213944389599280874109519626779233534509259865156563199265113833192768221542911260891137436794892552754787983489607546040872763907194997643477887353807420493085502361879544322536485401702172503441890630361182476368554942181666157107489981690076410171095060192848556070937788340140720766259924050014108682548142670221552286631153078439749500913606846640272572800465767955508133123110714976884423902630438902387653802418669696260574859874763237083825446334988528021464957616903688534706803944148390487186001187568403744234645531623974994574254046782302963356199443402521687301436918294284875194084593138089894793367647390722278702612730088412461929342920569959835743463584460150036206044195828429356607261597956202269298793163603744134023459131639034636303783536364319169071964320321489428626062919124424579348689849777417463822289471090539775386342493315112368770187622776519887890278000956917800521016303760396968510549273340927866326093326222671768235357580632397629314614487958979118796618429783620614611092303044664977750765588069730409441748205604541672117218651331507778251527043642668907896604119045919687226158829728443640335806190984820670384355708166557614272744755494141909831516183943548347769415437215623254333161703077258257848983519752972180560892237434268334425979156513879208257124499844652112749132087916754774202126312759285226686506353572691172299286629649085567206144645257057485604247372776716600741253684218638115387967229447630970804094917868886913508883408889076487282149615659647431118496702369236869851170935772377123684383178966811581402160489195802779373898701259691238233171709535433336514465118389708483732659343965267264974164194755469187840459795726006012810942702540359887573351038114626817604272686124736752439610090531467908307632400637187373115099982151577397219961122513104388018057399476826069370129198364225027872740289279804477140078059979435924573698526481212044787608398621701478634573012904769092505099540061116884178783169848772616237193871869602906549396708499050778493211763225763089930941623000553146169233801555232418702009710549965141537405547779031192695836135549989054960592468026515719559076972265933225423657688090255943663195244501147594287969057433376717200636151483037414310063184204518388647759418132225744444411564327901850867269528133519627747228513353363700878788247256328732420610218084935994523259596174814985641324884791271212175363608562079453153628742287874208431906842692546666079335930680083768243098583227903893112325484035601364500516502680972806098220776670275259055015533501627721771225453555751155609120590966332807168342118201547165928770302198085464193103176591616726895498751336123479981540308819786042279458282152986175790370788904343805089234473697835917269519162296284621648809193748335049693739962087328564775769534200741447032093798894632198991691405061077138504043966345699814643379936940296608821271008881540881311593346841766438236038929007652622201909186073299076048421223707174335002021374796043130995930986894760519560591532405255778952570187259624780513714263431771598625379995376824957899560311046251783686566339407413082900293844280333832393549053468251861113105622578514530897285780655520372439535287186058690587151063264794308347915160026916524823967061534036156940337634602398529512288949745855816547656274665898790426461180546921927587937809246089777609161539758328394734954155207541472414905845857547509063694856004467778432393591256964968826449842680961750796607078079878252557746863524023134341548452585698582973256653852949743208803650234869633353075165520871237858150060563169036374562325199347430243944368530483369125229237690967330496006571688749967777761423939354513077071154097656815383219949776327322503163605372604879172647532605295779354728944202174904823305349118217400943437658734684875958687498711564889889759167748874241465624269839702381631619312127280059550589324839932589787240380515526564876669426259616754672646564631208748576128572217802254575483752418406018921973415411376739896184232875505234444820338831088869509248678930085912681929452436977995018657502442243391660047940550525928980127218489383846594282845768187424561256469046219417563355919769680685803866052719924370331516182122925186776531543162165844222439935805189711180840086366888714076314810706806678282289530668424585652376672862927275203448807493468471976193077261733307018866847104995915873824267443667686085352688539987354715286916467651966620185961125929151537437358229573295624464790990140325022943144847652117690277344150683537591035176966971117638491885778690645269781962833269699058668755582992640480212252472632638026618862783942089394877150138255337924055389276201503008820185086980667401559979675901629542529044516988871243367950803256527412157531356287227623707548329403130747774637614439964155457941760027491846203339420366799750846746619357770881895639717033152648410786899484626841615829806727606759042537234356998346659023430051718118691766878289684795390317952409579908515748151325348953544307095852383735301257554178556341566029212825807370018463212064761948040306523233001812248796129197252459248366657556053040505095380069398436009145936833575555269198999569550872698067901286104072545793683276149033151581645913229948809055289688298015651711505129234160156916586699496561439985066996383789487554528733335753293934304848650491497254253833476809329189848863342022190651453817104164281549440624750856075677961531908595992092007184426735300669542078601347391092825117175973830041974725669857645467735738290526815958831150252627615515014919077866953837082052520662888620425803235888268726042246478840716462219746088237888640979784214019146860165361456706632281654949430796701569083758537693937507728188926215536881447641354189674953940325913968261100520547137211444340315313624225820050658677482919053210821714516894119029689452526062942991961246542258640532449812780199535344081997993536195116511994286276215073831304422646853495123340025362606364023194927243351954293711506251082934985740315455525569900316443102827482583796133890721497359882715894298028553049737385765869462824850628969167217595284706339757454927835313252766163702932038060448316462373616227781765001190986815926984391708419571482695372539618596643538280626962449099402166575728815310540483399416042176173017275152979061808821894990374391993359765653471324188592179647628920316115929480315385173218619384658563066666874333812434541453556478127754550998167619107110794413876209828493219588833255414435470222420147536505250920685599590191735074913125364647841095516964869890998181104733363660507416092551424396062870900122440972854969110380738429871162973943947174172752561550746789796134935614208590616306844572222853925344502858783912250566643036659963987418933709788912079072010404905723637026317481961856981228642340916596409249279501335895148821720338819351996363668279934999189158616672529487571831231060526764488258022704136683591884348551866146032669154624204639926058234271354547500785800507415732198252226832097810697327648911719449761081081956121321353001191052460143185034139427981727154941989303027853211020686566014835130891179110291701354944171651039690357645950954992854609581702852050777250601103542937092404932682020089286613880048126345921440014770197312460676082140360600101106059474518138324315058399108647057286965901528435866423916128311333294478699819926442425871668419763274412495078600593719199862677224184589707702496768038520858559873934046380725903833266171062174889826568286652657263017390634224714496797394556329507302492760601452843672086949250194707555898173226066254323177219539398981341760083089911657593782754696484952882037068492696116009739684460086961070583820290684388916694726609809142162299211638364429346436359374941184407150651968007738255762006281816894104357771257988892216192940078017648509222459441358215087297615989780199560329500603353824028658469140646303325470921925542286436207108625376037706593323293586689349495813293443065921153483095878958220145677837882380581745020494725273144759410918296632387671398614327008898652422743460409669434951421684890518153829031271748527487862752644656249652618075044431219658436865429457771957612638024753785018742670269626162090787503726632351794490236335954654020309073854730857610857651562534874481990938509321666771162891711189417142160552443710531477273717190591434290636413526540595565319804432031820352866493066673882243732302255651022601691128446886236307646016366700362953201309965714652687131044206569083377290075976737919142082483654776486336948627861609617011553657887900088333511474599097613807815390820649159511327819642583831372998745353745204798966735987344260391097947802762177145969901349574491329831254933294998725932760003659238319569570185969067829969206101603853489466414966683354202459575674540988146144031447627556616061171542532559308803561529362452000221925024916263672448370999418335689696854815404787043279857165863138978893612350609726563524284685171239378139026073142013781366915172436312073159121097131059608039264789347249816416702366235477259589719764127545396656187338068654154910605511186603530408076784022599722461816696330427791147776652432189803877517487916921911226294278474975604961225595089125002158391892468725525788520240261224276995790944640734283366134405842441922985634874615435246106339489421596445953379616658908304830005423746011493905977854541304363571960594597760806930976677178196418843900154129156935437306338654891119478825790772909387929216477601737961676671300191081563507735651838089911228435811899694599177356170624918726938019800411505210593542264188695122048775482415637971990855276558045889749985496107702656323802526917918421279792757322469449119186992967222958479623642219489477655288863944318596578611978119849982761829194211472449163347938845815315032960152735406995910929360366279970988395689126369502030641326793353819789137799296833868998461472218898136381294708421453272264146685866965648387128872579720595215384082306334252603647671300965071129804740932079242654302688018826627313564834265888880785918443557914806377228567078812161226090931213526491538151300843337612034594208319833028166669968612096255305922492075330883357392415309923106115706306549786482696419016311731729776460303682675083388469152232591273012819511239038507441213903449946520983049713685959015430024903684034457802390752660719106246253138966860601828052200630251551135464106947288948296576455463507324932763515884289416604606155269604514741404430180338034260869148755698004040267838624068549182128705095670505281741511538713605361927278089634350943616897013947469143571453968421589642187456381485186409362254555122295781397156864514429244025754309505893964452713928974864003253034306344991065880845354403839483680936883687642089357045180371057164594212256302776594213338681493618303195459719798559138559063613214278557355714516527903686940218823099479337214589454791708841673454710760556909720290318763199606677508226190664247283092344396843185469855211553380020527716486000345453430145280990226682964649156587291789423430143487269251058668941927132228303899647948673465793958244403693920188136591165464073290784161691541512434580154554046894538524047762188014581146542367738163562731545553123894552099778075040512734282880706421400982979016544932397047411440215137747435077495663356522374973313431449037618060799828300081178014273310918678878901832357379542870391150070258959209670193683335729239680015975563975057219371332371452986088149549825551165516650687193911419468415749167463934389823490202805678706208740710480628648345902862336121193907270715871331942318296987009775746558007305245804033959257753402598863455417364639080923335224919637618722037500550624351919569712612012514789555668276849763098787412096463279801986686543021499648253345220321202319238619492296329593602251386631814503835018043083265595016545114793430641352094715007640205775307683874447710999609509737009879823741084214053815519781105554738085658186187081159127118603932915439259502000067269824297085119459504275819241502945159019786895327244131858475454585443260752693664449216381171810015412562838260552343314967329710408888682635667387752780897722852637420308999834847370127290999271015282448965605831692756152017723294028215135260939416390605309656971321187320853312697233708943994291332213941987341332624940282354284736884986896856731943596399653792175834994389720549281293866468445710719245031035058176637703225871106166486992681158266392051202304083768267891726649119346812224475638776536664844720005362412602420444802632724119273167771712255340714063896514400287914298016657720335848686655396817529473076816862137844211295214903738542885260520616285275443396837328880925321350483357694277175664821026429818404408690918665106796742940197453543044919265072481585668380371440120008915777297791500882078152583526936739379977161483113677512132203886747010041172249921428236689202342834565836904993421364211391892405914657600743964896442003057147987071103018072630540558952927891555776215478403700740064491110120002964694347851564974711299363264410343843906576720084277805532875221292312279388703588182875501041394369711376514394956208970027890680756808298768606654421092516897099967749788405716399070576940024656569362941197267514348343052791518449631259809212277043953655499881023663749358489602210929464432955737598913517976202458735176200180749949067859329088260836134021592573105605628589140976728946284212205514222314072400806696765204619762552496941355812465240541565129543639655211485368136711719788550042691542781919600234234041444818103604956379477714851820713249711489323810449263967240116262688775552353181008933770992211338204978823051959490140337914120882365347499307499503572948303343090077375267836276161176595782837311669439550216484736269761321559789817687942177650955455355394334198464987028785143487554784056087185693555854745031406815161373440714597642625325889020446299963010924371693328773654835595938138241595005295636403262615815784616384541245535678373792569193849269644001425667542915162041993009929474268621816888665619059041536114549983873163467639943819604763614360498464933378222126124488520687566791684820383475278559700728637268758034149429788300864473896744922673350016402387296688566833650467585915745163433574348372338332098781438889179247043398298426215279380548303956450574628638290472800059108453622689424450229936219280325052214651222804773884581443376959964235918965993567650691763024610706631494570577112392080518479270837047737033555480838052577389295796676080829267536580923925601997077823681727507651956125279584430638831033151325697126706011144931322473589540641679037974577264600495381028839378048799769144246039964556585575222784680895242455405036758167688497911957942786134593444786479876635081476330814740899661071335586940744851720519009938543804543412272232215534725441114430955224023303472947426357620318283730732971300163857966241272729294722274589172859937553384258085153155384667787847476511786980544703984389427678066360980359047345674781053835786130048464224115308486637501329314134159113335707816063322979647770354442193678336016182791190093477044016561136061194389813524062031558999696155737416070839335099105578794314356468982562955658339352822190213961955000342908208523327984667088116802947004783781757267511396663193922197834851954246994685404139289705443707756978778829313903561736387765696683948771945851757305274235591731502450320869084920011482396361950762911097912319380767192124026086488875146194560344938491209090415941509490795069068636475607737421921822770619032253428470851752480433873452307738714452654078099338797370773641311056656370465823729038494058839418150773933878032655749129152245244543503273394511555003448686364625627298205929316339929782685056589245660807179717818734104838357903409668529589467832420947615525258112624860293591218374396869034165515988380319592514735523479094449233604910805134955200888820585234147647658555432295393052197506115070880362262333983631635696272598240459632820246296859151842617172538262824701518024934356157388370833695761359497789340811284987986271345401579866591922137023643039658544900359816173193501292629494765614582144712292531269113879840282911944742933665000589367258102046759269851082365340314281634094920578469295819744889240875586722527662223149072219612079691786525664359082075664001645517807819975312750488493050855023738375432382709026542314471332785684554539465686168567367824932111592215316333489139196333998058267648345753245168266831367777313194991318038974156791464238675584299035688889844349521296180622310057861033923869207359924686271438221720244658319949557988654540963834593005845187227491087491911717239680986109050879973283708599242873990697849520377039301519548184466949546530376880719880004064007081693489722756819901686145578355838156429306609329493714036644085238909414159542064260155370824885015831729018005168585432720742608112751344910514350111936190662651087623646872221293467651043158017232306910508589058185376997867717289160675900480202098266527838379359126235468300275013413193064579446210637704731570699765731560380351257778943617191576686477120771912029656873148365147678241388885620806259535887273081411474944653513142203637962381115082740577273915071383348769583368650049045679351692213469228999778905105036664173030803731908286539593756085390112434266544067893465828822656264142687137186029304862723376315749476661689018505517720255424940478943220792742562663602078173294695860962804416559040185867845072408157228524827926267417659836606280898795258888727549793190910638761508049020750497021523330686431835141494041310532721880384702943246330678923981141270316433307877408764156324464433318186217126338372463971744856135158307953385563476243501046177603752011315734774081308025726910274193368916491233218053793225563805499947568651655840957952839797068356764456567438587927410205391929267527861076109947106511020237189739330795288062756888867019369367214913864347656271006919328874712599989596336723700221232610726759343458700536619040192505099460242463658607492854871375538680840096241396366445442115564640983940977487016293273269274954540907382970400068141383552904908264486691960928450239437633871639539478515683736917753275998360735037372118498419353554908811739653430209193816714950838328227109270328710581251855573685221643699907838719830034022366460905805450496404786255191367657874996021436652294793306053763272391384593575663546175064573090088043236931225748187405992776982287905501806699994373916399336086441563326408527863414386179292628210631401671917913956609022546576191229117115693947221327137642553201304189300738661105407509688355433803972318835801277764788429913901368064304575728946328997991678866818299069516151069427805815080375355787439549063090000260735409756966636108145935431065107616091141426098207173332539311359542634115631417414251782929505419627664585849538482351198391152590996763543885664175767655661939625274731968060226504204330728729367385845506271857279154251173926996156282273972048244971138473476049323316756088958441335443174919528448464865815432048302665708298342546212896756899219508614424092068178308563422595043412384128375466116608721509575283467226496296273596198897754247629684263426885645706760649277016958544996543260269991158502101672120817563771867303859546514507041184007502898945035768306956991355999314191244981466016033277602019029682551065431144693353412262586925798988843162415403766788243679862098968101596184702086926421643655727140615398169415409877876629012455277815724824918025437590634630578323636053756574446383099873044740119116146696238575880101478973221985129196759845074732793858208393089774584681455238732427376265642403717657153741681993113883317782646245826723407523190679573976570447371980294693529009755102646834308672826398474625877145770796372210516936771532118916057182985467692968803049553763823262273100693430218718325076236981722167921663136027520438622826341250535881609427344496737406612513300481502567107314303368467039830079993161314997131361184090580628471644237831227441630239091718949113079461641138102126761122108317625198149288810998296708904980587912386362136426324574295001219289825431409466368556743166109787758380755095141622441395945813141328240565161680241883083156675008394107876276237216286194110194380646719889560476322504155351598938676028558645977654457984073391068009398692157502993741611162768939431960844550018826340031011313291520897605710431837744450837082367050251764245868059381176979898920751401378702975710634286277287446932944202976769624963110122303701132565648126848855133670068690640375904852926964689782951199494227332981201485175876438355815070827229482183349551047518326151899181352199608128678017364911851341713717433270632997777747385991682709011433948662529846121488855121135067477089477833503836131347522655877351799013469612093134782537445628739692182764781266846073461153364141655783698268848261831610232015917379996747431698001110385777783312716251978565266746158084154580523005685332672171320157330894574173827616602791266611915778135292103124828816538908874404664876155165796750992618403898824621373451828416883613042861512789682105372164374595582810368645318047241750560507672847230748104941141241122756755184434138698396741031174641424603918026827021027392260481141721026233375604358409736506077300592389730356076150642313467056056836423086993848376049806030987889559419462448291201882973799706988444714537312459752725060031887385853495037259486161759381700379380119426113697100559302031739016047629632012461488108582377527676536407653349041738934212794402234090218735064042004024661675442369335117769208038928214919994601893924716489099345829774672264597401448335411631218702425986100893533778400659337674052391641997838058023250808057950427302467607800691297513015131514375068581964791318791060831454745337720437278749614286989645207850245049415381728773612789341980409315473472748197353976820358243732556093331323045116455180531949178947988407142741786709294346673087674638184497738640060895864758772306158798428776372699057113646876423385965440479652823943949259065919440363790555467392109500944510848364877391886708311831757086831979019052530652056632239782833932277193128684918112486520046787901896342547122380011570527207726472135142578130375144711267081449285362521960173290466378401582860904147920151459741542009684911256115184784461091862170598916876668395918766720611991076368731726026301813629843415924630906851228704453448272655580644863967690870958836836806211023308188606576913545800610968244915276204324365688496990321598418445292778968532580378514719362634147458480751710098380834268437999494599077435142376506194314030404611712483241659161756595390248169940740549888847394978897163486346842840266219755691441114493284298295332157062335249585500522965388378716658641411361162359272814224142121664777903211200372803748060680925143155900039556579859276730809821915603477208030736147441425231482029479801984882467230227951111996503403330527150958948223785319112393483492236149989529587873557840432548496043399939486430130237504998691740806968603136794509417607097212723509654592280287421853660358817326247453759201146528660122004552006921575782301309666373263635653217941909829248732337781871116461608983021026937545597048092911716627195754978495925140257655601150134260170644772795150960635785720596161102232545007009609787965037600251985023527377286421811102962200616694837913327996007581305342921132243950963781451719279348221588852808953174309133094295324328712895170645206080898859644814349360280761443037224663830335343126231637669942253232968036470781409407778911523874351762044793398384494839592949213113306914818929360573203366386534902967175114085804370406566999020768716514491189035623307966374116012898791538767873731002887042849286113609822922991727770797552996563029864821299349056955571302549715959288288627653620244066039868646827780076365962330413158502252966016085021530558359145947805450692921794012965835378916827166698192347131086999757338129131433155743060844749335228248093295584808108260564456254426945800896759661858493212693185941671906262023463908657866794577667592972742641821290599280189622890276161295528850061050686030050244814039980285306891753813121045952278412186317864389575148359578846866159750364120886128349612646207667174135864929905084835058098054196385461607614720882304912602159336868255576857609356749381301390288939419751042127609389277049530078136450624380732174050398605349917991848385739280510201267185655963646570179879802272203166780163054050620440974502453141776327153914945766566512124432417948151277359398003516339507480493098403688589068411087506145180916529558968000491273624401875723800436256774788530340034063462103381694384825597729451615335231604174492744220604115707168484273950867394564203530440380644909503279446092228355026397010281289828014554057772254013488722282804049516973318140792554227209687510569117607718813528728199592236472458274729213868859288682138341269732573765771600917769870647530694888782957221551472970687407923544547913684192834761556502149580082019858780843097348631438471337186955350241506826128489262528339321863374532578400816727559076356741345525070498990739483482821391640403185591640260672939588732142045758315618411975072272489285854114798461153297060727368849087521749272389503261200578094668325607528668071735916292795470818017418663465819031761049780953634971523639001206922744793367124916800834954693199062966112346694799192258334744987004588494056894889005526158504095369990379645154886389949297286778262255941063230496507328125248058409139322555554486691946373377751923158266514456679833701581567790489349446611525211577912441642349556207607019944717491333472875583818983223180514321800982608166697157328871168350732203997964441490052415967434204736664349190418159396106349374525439878574852181555224100792672153820389715932598791749387804365181878083580366012399209731032111370573798454012339929057344779118314570235637907832442177059821513688190545838069060273835212944064676113543607643035012962413197914192021921476028594590317772678235169246271479502554966554856567801128488058348607610222587720693074494448190857464690774910384554661684310043539802044413948586136217393773701431394490686375884991325328708420642020040734498449857944034572217140301136062480125586214523045841426135058293189962245458958576002766011997016753895808179570916052149946966118354529489231906565244853208443809785992162861579122052645601990970466025300486407864836706751967594044753780177350524956353856267739932069839638034134271963861907745056538442477244798408763162537923291781415543114960682284791985447634360441623058321293730793743671880505621482566562206082145395474460595335148596535602525210084714676177392138026776255693189926084052634050094896912192118930471313346846307395279841108374888805336424333844519498952646626360007685283007176584629008262128652296590409794062890484751448871731873978452473874734623339546072384177831528967165092428779848514187370608734107164845003473728893700863793000054170608342857510649485705819721583322222135938927129036497184963828343616941045800312989799559433635919999646822425711197367862184632274107086667038127950988923387404611925895457247865530609274392424246508654953281282693233559274591869821065468331428100688104876196113210935611986122948763516502598828636085025335568218805647641026827776967896400311348919791430582804551482713893650618567731535874326609024326056341802592232644523839464497322258186396990369603610917878476122361622036307824788670352186158971694207892944169205887188720780336199987436947386388200962901512362983461279862498507654442942986308123853394576655073626077919268563699771884891872336363123224812794391693701984784321749574892787228867546743627930089182746509794344538030084342133772942058009757856729332116849119106083611994113167042297203424776229088548026039447501669118964755502705208319835529889471224798389778628839929264257327208828066307552987093463928701829393501655136853802642076338969411247566265643723892179107657588502276401366185533585409803789953714648182313032954968915633912166630770141217647324296395600922358618197674551115862117633587713033210263044966885662940831096002542083416856666528790574783946418479661412800909908067983117043836395456399671237717464083086567859045236172932690797944201943211042681211676947234382522517931663794478423603100903346844973292180072227795644603244931653757331643660126949728647081984412923979157021394244106075112923214063893714754529267889136821199748346647248024203777453945946223547885100907303505746338271250763856808693798568086493837810985091143948227190950398078298933994558121026256717657729807135415071674673337927253852190325450604012769613433866573638752744539718241999921237118173549615356627309955559228454946325852939524645468660663603620427332855254888226868284356135474888269065609927404178530496789653267743200377551338948939336631956368346895720029444354496051842446081558413382042009009075810517918444939924090114952579414302281925864663666239949270008116879427855493113668415265062718511542679308864797785044341572028212592377404459244063443386061034542189562952072185636199233008764744974926149926039716276883823038661678877992184480793893794258228829078331619814993460343547925952787939891310652966785771385075707888474237876106007251346461530418614978735914395820703166284705405259057531679861296832646415156269388789060386494730248382816967210227196396401445848754226029162288071666734334753018996846567471272996567668044299143708437297137771348659725377394784548808827148599956633435718004680723728709963282403636995928300851917042041087025734681083196532550468193385947436498822356095743484906589301728253239263435594097027748632623660829220998930452568333483220574819081577633803116996490544407870086455882305152713902924554277004437719476627218011282182645589399827431128956981022187172629132048641401085487459171254552682351708806575367140870465075835221713468905186749464556953163329832382101266603673188697876368038931078232291598352557100486616751769731433244067676780124812060260171844740042945482396636861078101588869652598408511094274782105822506245127998293889533603749808599239068961501805984988774445642960208613827172653874826677961967707458096642362728724318845928127040773471027548948041484476869395957848829722976654688803251513673523012689461197240367599754577777440213255484818835298658670382017833561817258500556829338855727639895102387200084935996243614795189541781935314041134543983438480470953884106534237452884539543913371039485958839147910044465512959156127428375205928046763797862473563597861262739449310846823712981093895153457571754287170006469935534098695461751259753413312597865430362735211517587146580619876342047180216233700910871820574712587391306521223210199799864977885584720934368302359706109852509058530831265888112753020937551629551906731266248531076732468600187869284882661070996612700136850978985053338009337496221082239827462437908252346840850364103626566131876619600058644276261726562363371377947796666427695822236282293388510973091312654944015004166573725879201693371622147934971793418395179413771874840612481242916332280638410327647130447347268655419397577265101927695342810708771000901342423301249087445579301222390887870589887981350760212684998856340019579953524756129238809673430953568283514675692858035335023042488149451868557412148916903041484493642432389348089797519547141027249587735074627641882867065795013224730590365080920057399332859301936390134756190533907664371407452598130277386101996701953625546710046516286050736740367724375729392273725495564415162372004690395402693370250653011388293277213109436336000800230042055144294867182133383912634674258769681136514311501986664875564100051361442691032203186143591945742905900757115553219072552306606727064592311389266424827963454158299427935112803770265457484365000901135932135523160391283001979098622506221908061729522825582661409834710200518864287228114849308576282082443385635477767107816529084949757289922940235542373528926977191389162569783947573799110379496275645342824166880545387444624623306547018848792855727031460149852952202384098868403287807032467886805477060476407705684445583365104872724840482023258344667202712126973755751104239072356985111403120689617819039315919991029207775728867304705444897151632679676848796192735141827398226613396907606590013693332629909051776436418097354838239993847409474700644916629386717247092901579839562507926373176690047572518219700985272406228948249461130576303458180715481819041707762929360678146610089468126722789106168770362859285692787257587709401075626293507476589726071595815681400732210715315924967621424893231513057309026229191130627813007194608279303895680969206487789861724159054393078847641445494107049466474668109688016599528606217447352643769472681536027656907295267291125161949407413725806042044858891458867027079835694622968012618392912024830948417007416062503428616826662421159962025563464996848675322118007276945610949655148608854870218027436804724600255969657437033372701598338082103893143243149966554168982776232486394304093417363367359751712325691572668524796212825190360083125307218126578094121231571355645219877949918158191526674026296966157936517004626144147748868527606315175030515438954198595674763984134609343554709985602108833876197805108642964693287306967122094986638900348612271078379559987238965693552155599367457839258492257318797771095016675986497835810931649728025218692596728620470349271305362372209133632453981045995889163095471073960985888613427350287418342139404235277004304240808369655458534902521729097499113014372802019833123068774703886198324838737021440157450806033680004195097956853543938107938032322569245399913926382149044288693191014927579182220986094576976606135471945772333942884761798134332794911001657240715564336270899950150316302699199682433016964046447292815242461483252732041513564163680594618509222453088871158607227913909417497879075246579214735207429251096650323123816423151795761676204101998506569284914228005610500344720189876251730131749823292103096242436080487966382136885688711586608017537287567027524213102680858621803972733066140016663525393270358181059773091601871375719052085834865781883436432538626071131866361818772097756707809481616502281634972418931286259278403769685937316939738658615136430399298045571453076732861626234414507948315816884638015721675220676614086770967235891875889477193109254732597928000656858865694610929235309168889399851898610488003043436150791416964954553738484820090830339427883899220956572231086309509029095007221921937478684949362098815191702814867392746996015347660918163081413163133800356375027669174937282843891788236988763396445631930552024758687675753535422889547800206345910476401110640367235918955210571285431642723541249024724966339665361045128473890042810883362752039064318183656639581673843931147202388815879652517166631867913322506178902799470373746155076580314457401574697678027501623806743504404231861365833960540131150329020630863412562079622389959369654775465550448507800183336162670535512976774697402194771765769371811446721151835210234889836604070542411155773176875446376110139077790941621527231561469892875685168277654476773373679172218386037639466427475065711412937251210984623626390413367479040483737139317034127933076707694236771590381596908954985165799092316910203544623410158987569440338095646795761352928030728544527847526555203456503635373821956551314038823428824745864228676872484125620443392397433145918131879377865294772182884957483686632885280903325009722791768625036682049728621635500936497520923599354044422232113876912310169849541098729866383559288016049583708538114312016464610605761811656971236197605996191251298817963361930172097071081162349682740829828047449320258536361727193695156949554873785564162122303042809545307847995636620304002950693453597516435070537732738783765687986821292793014177612307474011416637736967583949899482221068118984013731800619157265100995005094300313719262707435867371826128383240484655168918247548688327815479893393870383304139085442722356506283431808176475074701994414638199461045282353356029237459449851889385711276432010528219617637354263723978157839548539158855159164303355572978711476355431785309464285909149089272116076680906865155768858972823255712437280483441682712603327148961361145471610777632514798776659365030612322383562307287401050272704966383625866524880663938113861338965211609805690907504116520241959733023570182398612395932627079169010309989241821300571595911010273121641448021568871399693135721210475548014460630740429635076097803316934274762259830571818811423400100684106478713209562120684042849339913980795351593552390734548544673564692132641992156944049140744021193077125893100553734600677735063035544838260298797850885174018775143758532799235714636040585279826448745307374784056468066973892947767481566192378927909735361779162040342834423744838476084770791335546647756356044602380357118645323245888418307064729392079755612139640654742421423067923924525640213678494386166456010013377617578077534569465037835621739092368427280472824594286528586254615837544419630057750200844212299624388371439339014205473063320170557107832480278753236942785320204436314940244628992754989434354381238148206085844832613829530004363702593371599485810304373172423965334246402479729827035357129008924810673383229381274339891783577250142177275235119729683388278980743535788604104549139627520672219004761030487792053379468928279008038054649377168017754867376930370026976425562987043304936558928645253965163957998578072131307036137787756207093054670426584213308063285491239548021841703625868953371253709349437929458586084503854430902185519402180549808998085804708423857410952286931499925519204498451934094286505830601073106710985324181178570297004109318844400198686667128246461184236704673961966848719261820121990466163726484747812061941198895128579335777468375744850387844375065233650911324932357798560408254358505357482230067013766238822160804880749162813726090415776320412891478569632693068815238996363683697809212875423683089293246934685374147387703214024944335664008775332338853324036987222362885996622952318583844481580782027530440403252192824356764041482365844498820219621299564739181266014516035808592912815623717198035122898225992805341518932022046460785129565358034059892788399555772842327782839776891151913923114906051564194632354302780626596374769280571579388567648307661791065164319438832951062303426204032643119756391297508431524139275873176916522268870141523332150344957842610349621355143608425298214482550747128442529763196450864329867800635510021496637256641189907231809515034328595546756321930308695407256309032721431223778138083003009894274204647969236821133374750668238024288879105503412050147703711292973024880982417949918671327284925553381532732213325229113893235514116876193774844223746585134391486577940634567853336703789782865448569899364384661701173885977143114149085074015082521409184081762019685182728628311947244432773113654106824025851779786918049314829219002506726832959854133629745372440299856248145001952246363261694836753668706812232879029938368547730600901495108804745238652457689564907600023951410179593735249922059715014741720568544133741110003693437214753383718141671314479690439692788072110123041212238717922911872873496747329945332528769578479800926807860976222399509480775165803203864185945856984547695807961798719284452472386958647885637348052951797286804310630581686293034283606432525608087528691053183366482583490977290302369964840807037748351120077754658038183790578084462994815387377120456805188910967729545461437868162814463268970337871785318259821722249240026781183101946418542397874123562205896397863559600657702031355818199437242201430251047740881764869346115820593116341617014037841700146929362560863680640660581025936890961246932821652472713837415606542119214435651263377499307927952921953552150136579591453775942593064868459501303329696926515222917391081523325134787961583234534066457310412030705505492422857282802023308274967197732076205591002403878927962869180018314368546735076737763229746756745021813201969498434976676381909067038803897483713428022229480228103130224153523422979473204596184968783263460150528597506352782231965347991765307497355445768869691794797230985643733349433491142312487843693071252187074308538758759841053047072143426335134382592174072651108728793367029417794963122124017550264640712683668522608211175854127432977932222252335637175848817064111325515532114518767443770666493169117362704038838600439398645584002889445947615220996670706007439159519823399429069094854048752455625487447883949705769555760628137657038681836128160782534757667724173789732834230901762754562866448832203469480413334651951698548954466716798370022001113639087246422916822907576504435635500179504620019556422116988346539773457387386236078080007560906818988447123428037115954687422757122420445733950050692156233810714726704581683404796727943000104283984343282555120978809536633604501159648905672148973878884473174309837214600094850278634279641845097283283409017923165935398334654505032767493815025874585730797727220839086691208945204120529897035003823129159522932027771708223594183096704895001960279985604901098901229857937666987199705136560689188629782499610888116875096138371990329496832993930381611340551848398157301326107107957296818283401346491244588072062495332545732122163423095266576978361205282796342438489252535503654529843226431819906443606746032505504775203898161448719499964218088584290444629212486414859059118386147594513247721195399524089282959317624447305424855164046668090784910202417023899695996778613555206631996623466538069427540638752617551996084073470542840874104190293488735050234838485601541074420210225225889938934646777039620628065586626760904765695793666844017094111497590971891434774736084094680364442016836261503012890602976292593002302636812666344257723285669206775224018456611035812541351437554243390829702240017815160618653013357114163858124647288156008798301160528665641282812661142891705577734648550328269444595112047546950182231788208593936788699117588633886153977519842604415938830985004314915312177651798288884034837584303221485793127301029381506337393215617483071576800342632228225817948045554563308475669098484573415623528201827814777769582671143418745558363440092010580700088698863839276910414731050637994856305373131824573578239602473630154951458992081486684756131833637900903042426386885098663081398753336738692509304617348986962781459255389449011299136218287820623889295191828060371083232480562993565336485682530536523493665758259177228360867127116059167829377526802674205201337137844984378941269368797838397182989669625246656950593498492113285552396429665947015040725020545779551607216320268749466446673368277009180995428936171128668121886298847182095300922715157781391729609285440321475822012550953604207230456031367911336640350828826279036389375889761030029470314365422437195246762123432209845448587417719672142959747036886228888837760606270455759935758256428795809665712360884909906353077144790757072345134919852476338155430080964342881998573393335405402819611034730447749571188541989356002837947540568633316690560085100006672349258633991934851043829698417088987752093520806655501829560534286832706355714524399593863187154336992000029651426638829256446434665901839793996123393148379369729035500220755562202989984709779589182980562046243101656539423349606221388028817665330007639581639132723595618874223464539333638189316835931727215056009693544919022900907286903881342927802017704035455478737617524431597791758693138550382371836527007944191902419671172188441559213923819652787939243394703835122397414352188007288393497728962494257326361714518412827048736424102002283048816453009048748592446630103449549154981791002304915412737391607011487714296768511526502313948015894272996396757023522099305261967353436623542807442294896944942021117922158075144261853749912890698450748832832803158614621044909971567014031790750905374805398509878155353690416183091726404114627320780835276606209291831662028537605152661846511558392719365886362291299886837073357196060472072468322737755276930128020735253329475145235207072228294810697200234399631720590477040674283672264007218453056080384681479609886156005843596069218077424172690902750394057955127283184804201233811547392354713040551327115968738538022612213600300878519327177560145634915470946701780003180204656293061835053931670952344987285074046581394155883818057531756887128032566303185410799242163338232961957515095164880122491424897732002311631606925589980238800111550565668111317672313321136970132028039861063818969841591030185908365725408090750559829185237411640277097788961129813159028574034933396031755721739222227349608232421919107314435534963856922761088801255953726050685234597013059161119629582766913308546865879823334177320736012063450303648657687166782843236089024437059372006391607970015316614974369938389525220634867040448485703839114800247480607523065013261773519564351543313347836173424589417045994282395133960450039469286270228580334545886963250018641699174788324066625349951341796321894587907994378327702040861781640232125083435349011169577080415934765462499472006342868686438559034440123198224924219092129126619199416185236578698088327503561497498171499982343037054317178334877546264324740619682247036991895133273123870709536678327792858660326871009564507073191795225809569184553936827914527239359048219796213509728848715494640420191770884434579378254169249858880049969936896384779486300683969851681063402126226083925873376627149958186225381617122099468545020163335545596224580467414601522414253367604989306467945891027668319625547519836218212699777383578475680489674444198930367223857081880661340986146681387751031153015065767067385493415348484477906841470088794253925343291022373283519275884874823641560449652913956059724378439646541333247917398155060765330186941269109006382412974691666261878905727196212083584646830540783716700679102562917878967691165561547812398831215101532231029614353586202213246478249576907899874575465854382922435588974126399926522230735866091221558357644289273902042244470848251960286541040163119853447302070284188716964708090311587445861899849390323481029480342629280869461663807434891863556780467433674051275304756490343861698051553749471942329694197488094912851856538016081307977067368715361734011499884137355111354629883543343002933613405715066307802044249734705982122257895075482824698339437145088016228600608415071839412274111655035243370623579269113940274116947332213709211045814437647917384567983161410488193313371070255308837911082551464453847840052196019364886787545906470398541610935324562074595230415816614299506555660214830607476555738477777452515591150724895484862733970676368309772373513317836761803110284854469309434818445808384455952942647536417115259728682364933410862033012905204903130619298613172327128800666460503537493070826476428561260465049277609501237089643375117101986640303520959992877462423821042658651043431376861575828026469293719361273097898757610009691484667269242046673232622257475960578058189395895159028471911555225731101754542513494826368470313949590026061129544807096189752406045970076698336762596843754833827195321873735363930244295886213121092414528684044931221356177373593799950212741304306598903442517012173993337388838094379748812756413094942903539929381772072451684808802046729702830500539619252503543043872906803276119513012500340293879853063431383957698410532220587789362869097628590352861301326598164142673465843004194376823401442310205721431724099567174792198225766244290991361960167496309248760158200471494486048121072446502644900282353503725614375587664470251954365998179361015282182704055434292348586501241980835367125191330895539683022583111073902405834483306504949934678713866991915458411633228342993055418255402285404808517973981089537224386260024271552056730443817901483127019295590717158541782631839914234232152456987691441544448454201263355815830418711734041299346435425010927577281365225419592244454337060718194674920746830192272616589515866978777157630450567741058635394278986490367151615405413388751073368989786918272131488493115950034504880239166967512317130286389254640625373488606271394820874137431619727219719998580814207583088839761293082230337535092348683969875697736710628742448306646557460621932073911289673981025288383866180402184992585504962057501372971830503718043996551701569894926753327723698729569783090106989380215379147930458754693279115513447882425046811370797379189180227160350402710478990084375017224621293388513208669529834150926054187158909180283146760491718118568438422623005227478048685402274354313873666828300352817044936113576069221597866323619191156166636831893968714993991790972921591595907690890141536758696841014232288431202642404721556023065497599598217168891370826233809688472919482221426401476408354933053138583829673867249494886797508309513173826622743641718788138197397291473217062373809013216912887939844514577223902999822189297003471324854747560025421170637648159752250696672399566514350781769267793735548241322587285515106838888029321724880293145848872969335038704765101904968261858262140073155935119649483617533406469122263645415701481911023645747986054927175304593085969786899135414405410452097825281423346856836606961182085864401438749190726339787317086132585249634382142130837160181957631555641731526022719918419171577206481728120331361781118334165214080760540695753007934035199606417316907290705332646513372272432322089767400002020936695074038206206187872579619335763936267988222780705458246607319388943245542248582175467114883963563828776055402446230198099617271276134216653106396835347517414020867334058114098458706467650057163770875781960938644407518374994409920933708129437320171527342515386741906756010159294235652710961332346873152741184059005465577431261193802462467697297500264662764577445558103198055759438440994601947399543172416829825009838753142212171330414095917335047517890065696918639662700623922928317949576832207735829006952180581470476943325103743328411671992156606779879921439470459307049019041486802593970022796312561832318206966291493063649378120945681748947741655391218533491320383822111637448154814711405883861409397197308264868604442601933567619284976542549375038255196893885764197031809526738373796834447780087759493884981127903937727823505336904283524202486380741078793262983354900408487360782175091110764259428205999466171314218706616147765017004641147985184316765542425680124693227768330413409314999325049601576535369080766679925196318864367181733282819068027346557200517308467866184226559926056125488361366082601645416387490132954081490227234088819743070457910096994456687748540014448083173196549458696041574002140022971944872792118525218663631130859974440268229474921394161775788826648801842375781598249197879730618492112529823156421613503229242286189318881666307334358705115020465197630598385388927517180438653792210614502973198543496654013653970297517919198123761442982264072322370600369571013141604693038729564195230862108656663496176328438028132035361366779552758486650204010660092689106666852096944917009635860523074486236117766639089009757205050907981837222216842662819975085803316342516762198699554118772031984237318914347333027800454070158245103749091758021143776099898123000501006255289361751716810492279719683491735487146256299414621951028929883379671257908261787781426093626927874582420383405666731818930583249887305986132531392425388375690911469656295346258140399719171222147189723791134808579342841785416261274450125623235658887356807306442525202814084409889499563337184334775074688818374848907453519337610983494307442365998073248325194829392177368067981292621106424276680370129569292321196060965720159813527394462893321202166834901996048971726591812298112785867570326072047158049244950630266140532665197739466949171963448000038523431212494820926133866626305934931500039227677968866616549220737770679500919717471481984350080237456847306292908179182629690381188151759942911808869306500515760772347643633216996115202059346158011275032944547248221775110063202478786110586089198576153934610716092727123963016856577465137319158298962723866021001632010108618703775781177884143201121019754721440330445477334420642204292531173440591698402584214788869477756591537898314233475006510763729603374730307013914871139483980294250526920150999078606470015552768683415465952008982762290976258089872730936394212839717371103000058586892420884610993203302903170582262892107449715838361881406311484134809043701102438448816455768521064462324369834158214620057927237442500094134029223774830152456167702593214669358083098020061267909548411812921025280200579719815552202970595024518175897333536344955259914679391276148295146856871948030533121887649660996865528371037397393044492638328141090300275302517960496721969390458049136727308383689103344547517789013973435756732591988595828274061121471685637749823698187966018907362358817228694321373799662913450127787551393896682488642751650431673142875812271124040897691849048873778883959222344289184062110745720910454031085055949721981691504427179275374896902529046436903483884225546796449046612140457152936718237574817560632957900157688057725024397366082653190060882834036105471566750374740642524850436277281290901423471222052517705941955310207771400779718660328292434293733369318869181657488720007688601935400434092611941221855127991992679543596343285859373185843396112764953442284207393723112172197805456679903652692588505454871765632734391337043669687879332792974910725641733577434055856474920583030663595035883031832397527935638368599901086711274344579736530284665611140766619529114354205574760766368001055204169039047210280559284930164985000710180079161141005556576364048852812985722924552207454743407848202635406465047967763040107644191102793394291173813925790273518596391798818914467352862707453052028561338462262894168278997917822819212597397844936278985467268795731814018158267262942357091309176609942828428798335596698751962289033441103256975049477812817095995863981961883768147198644216632124332283682676301433447198683006055366910116431498909954952821346782575632733743885797874476738302534867280067008171295952884901936125387173059287114010543358376745898342936427078466862244310996645926600494233366276179239784360037172786367960118573107456631688871147909197625387560212522203431295329355927533037999461599648615625466924302272452253588553582391207445585041518042341523083546279573278178215169414089435681918910426577495265680112694252557901182263859109063543045277529420107231872572704634458549104560131239949533376617057355799227915115682425056470895464814633801605064911543224580813515645191675200987107557332405866426549247915987035560634168827995099642143441055482666273821073326130365747724193001944661884578760909063403628076435371902177993685645352698334750637077375760849752470448094775577248390681823313596741641751438370953806089146685648864103038005485877468360020558514276319974006760880478148189497689398307116480060705104016421365942950170236929181782267236554162021608559888316890473878665320679815317676327909022028730107165207290948277519113572764747508482810890204940003616095300104902786347749018212465861875989036864397407519719271098395659078179347972627413829690461196491362634142866618107725262494049119308558069718051661018842195630824803564828311249991327733347249784154311442464151125759190484496549536356279677843812386482428436877718996843481342152436338681100376860451947567324299051814906019319879082590049757171583731035704305915247562523916252937730483406338237499379192668313105597987310256373211431388233609545926040686409393994824611234192400155002176421087124119380085331698319351772130398874772814402891014157727978122038051114311533066184565119151695619105630909343885138714810432884011884719042639475802617322210253104884821134530758864513277403703875552774435623660449896802220236722423746965033961260275777679045660284174036801294458695144914494694600945469612773480226786249840973757756032502623598286032531950380886534482877773960953520880686692001155134998807341950892504735939895118324493399457577889570628143132305565606690144216947278925895675887449623125092410474562319493818398900243779026648686207612133950931457473914720847958863523470720158381323569012540879943021424519162147791842175795351086657866884591324404714947497943959703881347723030978712911701033512467518056507019049916953702135586047439367947959846396904788125350224221331622402024326597198168289917123728870802550911252912282751293459187257216306423897136271948008465961582378180986540526612242146738692166866336045328009293470391367395529126069867798540358847759149746010046836227879671628808213986951149993776307694306542415545694769229321614804165029111006419765646147472412757015331325392292023190501783159445817311942913653811994555004347809861376594519910324808542544279032561160021170210774986484653681353148423554904765393811186385362489951134494199999610353147186871123020703856048648627668310158180276383358438648655633034447962505462478066630639037197944997048531660074800212829157121920380615398809541408024414478687702555357898290217489815231534285615809531762538080982374857949196163463019730818325834673107989567420376930225668150119421406171437820778838465660192087496446301066516410526278074270802046785522485156137130463317532388213905265227650652238751190115413746688090760342114914531243429544709340978321165004905870997646609031079937468795608424085263717125094683740648943723210056733291619463368999097269850762757707083725876127953627808833533747601767472048226636069315042918879522503545280729592561659005495497699833618915470119308169922731941587091696096864402321339537663961092073931197027487490833484518045557649324750552537086642658469364541051221650040432894603519295031512606228181433702037387551937086492053284049920791338950312477234490724586881942280619880735120957127706450057569220305826834885478929539752950178173098044223009772375515664757851379577394082089578636897735793262443772795588983367220930831345985729788286591256003046405851307946168614757373639420670608522929543211120437216991808387653397875253511690249084249060584223632606689880003447551895689804490626023951008973732537596224163876645784103146548465961978793907360941789392082443809810223464300253270910843919823447464283313851547861405296288790443268515117842063007218325329303427515869583255615842058251799441837970908232821400617076899737982250117330195349923723460044884439965367999116641974204571799574933049302544488865793996726074782970731080208131007804974994919109620121162449666520205691529451154392630597003808529162780695614165550878442129823978967886554190482085876199911834003460963824019329859916209508752537318398219843493057923035214475253666492644350767485113758320049733609634535728523923101357833428005132327424883248884165601737351415449432524305992097109372934567905791085498348751231409624868134595984844401729626689118889193672039238881451670107883465857785268883995869813174379494754374250753248413945183251689063999428674133734894344170106331116794383860830465471432424869464881883434669337145491979913460412972680894478473786499817994946265784990421941979350712624963583162866965205645789951591251142343198871105502324168255382854061532621238808192659127534228850507150503695219068530826814596826005042475116454586724872442747372236472576267394424931722196506952338520012069246937381481463266495420403151684621878398585035117557658865803158187359145875359733025349064198839845008061322059185047039808531137638489783865800189989586788945559169591663774956616482136606861259729430511117646525693067464211002467503520089352079145607614791984343224664680955644375423758377484428945063390489603153608113689838354509400815604325122456627427419619246933220462872516430950905552382298678546937463839931772004702535578294164767497075229412437094880914029964255580550091642574663489739511207786955286495770091272282744103417953496916356657094281796615169316964891596350753338454371755951557499958053421884032770793446585130677579126719758656561279528616411127902355827993383255681505777004577965469969420510184939293834770981840988908588645752129639845499445417169532258731673806437819086321294774245270164138787574338311107962205355345914841809137179913470625916706775092056712353371212424976238768607203458013101196566831873337588684678193152476231212332720968523042890306373980084101282030730611208580070793104668375029742042504620571859271747677051795071558123699891155374006355591179788026355574212131400236047929811513894719528376121618652815832314438752970219093178518251167605207963355531663184180283529815101364845470359418900073157747608980393770721993060948123392782575719687221539357315461459242019039881869050515504474377524307389245315949146280748182439673095556084578569576404068585173279185058297809917162934152039279331169479816133045340558735030143243569611903000792678972520010110477732712984228910414797820110676595059015075332092554160295674092414433704050027893789015337908010709234016534352087939924793483904538264663531868948200915551142803997077638410154280513797627789176654976442735915124848514639418205209488232187533547041604589085709720519054954756075217865037843427644253379873881842157506289766656116796055039001480095835360958312220816543240720373311133437005328830167528175744014695766707171434034073433702971209259520987713536486604315997844165738922163351835105335988508276491667067475552767461212899874319766255085866265204799341178575471036230326138818677976922523903173229802297077190343546107240414437538240628764722529619712950773901546778147058379671306548917752301985950259569980423696320665779720526704085718064645913507155259232935190701499986849467771678119212802608518917147455253904443362147075914221779265566200145907689988087638244662757649203834568738049280665695828412916411479798937210526701121939224740101151891171561484520457744112965268676357216140089487480246557936361603701949224524420262653336626986525091882965856461967524497559382993772825993530008228288974992045413795112143719223160610303952379266255345164888138402530706901599323795247516180914952704592373178870856477684062677676968502289721015840428285323476097458708165433673978591871128291863395574120070467098826142241903471645709034309911716688665194353259818756693218502349260462043428801236142058031772440752995561904145027505098467921083845276113025938543179621273100666642147838756891501565732279473076660081330082382597396161282062686436480713553127213483049608571252677960989734020488117974918214225761252157885315603081109172798427396994737253834368619677719985101959625672217828583596365096489711527512263675544131501421751238582778062311538315028410162644449898778367924583410210662023730892096560223073404526426412994777211081894938809415083427230335577095067975061192327968990190420245862874273832653506704708491741847647023458599671129134913475430609202212199303293921058556739513532134741697631188316389567399805729790073765275682665577811593642331382125086913676664316429001133250012210338905477745008836131805658334514353175988490129597789617653781057662833796018576780072492876168448018328111402198866494562998447971408045462310050980981207505334842473911977282244855515588827988457515501317435291511693896565365241420634370947089880954362947040016749162539292737455191157397129182681181162098592271346415887399073796869094298920121575788655307253442823254399696187492335756456414852012141859876674698331089950993413031451768648368501304037014224551535553208869005963449557537130938602477630765041715650567358698160574737028589749677325327623954607833075488894963516685273373251503405962853744201563659777472154755004670092438716532475055312290528968468776776996932199374504401802202352393682110834317895445216491606634971129133962163812679338729902931160205952771373444201072125966295476131490423166728419369941715442819458314273055904421085008287665930120853126786650869401839022975661038212333435044066691413338305091251383162795231224277349944593659862081929340978115745310080613666491129540322509424150343478390763048815992660828131535808443832918663684243477966028086504589756731895914360564411631333094425024688821392308037017244072092839376233859805125387865791678348607542914614355229188117875910304308756895962112426094928320324657609369916983846675594718095680339237684872549685613356844911216528986479303480815992513832585628879809763883439758624900288904067667645543799790623001925573346574474446457658573432558671545943756212239162361100963582994194905105781518135385041174775578166602454744472533976160294655046997695921962440009918053651870963353845900780165601120155859667759824493123511544900963652768732462259189486989885019378101647188933438560248831583425326341027055845395265925057473541681269346290772919478114983927063655868828504897122030978259426222776889488731512252407796433933479895657310029083031751530619852297599447385141073281465398678536584684232583763012563056461568585270321605623564561319954432821274498633121102996903436991595912924597132306507430577088188599199216309068307200717330813027835968499075422237993918463265529243397002321462661788283407478210126242463337550150190064378318404381866134687075951807829528865677171541101046939983354213320656144973304756392138312101955895172306960486980888312065626797567635957386585048044782974834789620082889545618925339521121725876294335232892957592349290069182888182226104029843887402847946491938313529932867845662167107009125428342700672569400956674263208364922786824991240895623443727529483851979806781790134202353744554202332704510367916432587362601139148967449993285435127317061097007639546411411349115596675509652305303233279662905689953812468755860523218547090527656548090089441371046691339091739002439199958559742449389398378765469275182852159818522912770218692245204464174748402808191877481832381429743544101975491656949339050869073220594575191178383353620462012121394098163884233288694127348938739918385418184233398110606333105505929935106208337891973949503306076721288316128532242531230191456957160330742298737917684027934570305668780524223736588982458785216336709106098802816949669848968648359531878903588802046000886766189898176738095724681841159387962128251103100772170194645436482620857504498276395080803700002029994453481348935445534394409133606361096685561597131485590826889613851485671164194495976503130317290562347870191475559386199342129943608311742923117750239136024452814779538015092275038166928040465250988092332715720126193508649544124201537838722631707409437167328368757319065210444469526534108837926757962627876414064636434629988674449736827324740465619287376942843496511862892598587729445397185912108615328770144533446318853449424072622532609523212676869587936582439285173826511301390827369480825621663687526158566826528944251094528115899814685740251647366171075915691539535129738778876510368516706768147272561298683279937836769402678751824563807564154101389560827457687490365748038734209489988477285482436270622078803548111652897284163974716247765526038561053602345400565061589372255046076743900793246166475871982494626221706581056358755192074479936404333828483786905573998112511914193850279008847664072503997221461216891676240001889538981060947937423496174844746221614476423780856255447172176964492057173809469757156749490384123321834445294223411387929598579296566127757975233704206182836542589412469952606391643643709560551532690167124894387034046729419550992116288020958428031612717159879531058396110722226217826851993710956024093663211528628130636509677448978062845802900808613178659347304270766691642056410035634242505964086281445784337084446043838710548427187583831373967406091378504517676781211965166577637578380150252389254294612159067536444422366077751076290370515182830065343486338763094338513535570731541630054884185794795153910904958055694239602129369804967905906365430515509838119252392685020968986825373730003598130347806113381060167962959005754264756374909406145721845856022660122172508397548020641903171695014613520481574628712897212256854048110288278359021826577215724229193238170536238169819540303580617670381945499830807288946896872342948696361815940449185511996234223959418087632536994072556942619611882920591167148989449580189343675106655424681319151677129341631628151757425596199761325420917575198009241159464525239855487710730965122601706205584607468717592376124633901932626145391103340323673861466652666071994075456172362914503426341989594024120075444748704595439919917655627355065382956991688813549943804582620684959534639409068644435535696888463805413225695648867339837385169898416511934997912315635226331212954860385030714393472634040843623377673773216006376813182105021240024915914007620619219341978224354990061160363285650461570906357896500053010648693948656412616067488156718011495326976918494519909409192291409904883226048146951191805066065915808892620908263219556292590844149263072725117511519459919649304921299507420638867274333963298660495198039785247389949526150450760925981890870745369151995441214348363203497271864572877120543745583118912520130428776193593406815436358514540100754717138488549069601115985506042944745002930962720935253984048158558407260245011229228372994643525389611780284543814567955703074176824546890679672825449395454205509739796870377955435361370046449200822186090969139851741166716334116925960797058769633800691564177535791458971382361311374813044002649816173684766870823099999059632803559793898007713995438092697660540729452071539724513028674475336844036034954915134109842345689263733478761085785621732282056504616684650199684697446712599243807989051631714717129127124790364981328669682582935682322904587208859228236330991054111424094257271003309975043067328095352039285594000770005487873046828683784243990477503691640914771070954883038322890439866933092661592903606163031157774769908101400393324724290430655919676467914061234709099983179103991402784799799723946308524429620512435397680906472912055674422068849423032671110254615566092956414128639074316486568986144344391140549856458782521223661393677989453450049336049673462032631506249889410238071979408995198328445600354234265845912992204135233881989518780833663703052639936069032536727831774846235520399303792079316963430727621976064044674567307733649241328004785653027882469021234165172393063747719602367664663192478973359833899856530643245624279663758895422023761456494968239625601900864343703709719615728092172261232415693435766240235963737184306261370029391822975726114854274557930269841611347561269607363184111597661893958740221625613879453564568549514620637366719634070657690362527883093618821711326407444544242729294112290174354281808754306065656753754993256774572403834413191696551096660879201214353999725918306696618744991136000792697846958526612338087035424682108623468174721013650660807511720536346926412443652187945748083235283011611341011600500071176757161312513282341665921228834797189008703549836135919417875743985505038034758038153185781637757683165186426824541151289449976846695457992436140380486069148132758389856576747739563824952836046309683875400755618512155006281366468750870616093736176098970977214605498892925620574354579905996030411185732975256482682243099773974521269292913762777556531671015915128448007861570837533911889712888870455484209302288712141706455331313452074277299302132669821129231087945305396255144745667528501480781844448281614067201897289780572536948831487359991699737132277285560366742620034106459824923166827796965276735312519356160881470111496523600419188694809460702303826747086524566300057598671353024081441006561924131289248663590264820222344781652061331991859453559512735035460150377051753828431066456627131093542976373331687720035830931971472515466751514592973073436542209211501883356270795632029707927326957760408455277434973413194425068324404098465292434823619923848115225787879942615056888659782883202593421334913189372074045204358796025834936716457631947155453569094294099191099143506627891395503176392473676000411100402303168229287623962611379310194262646164223119405252005931283980351785414887481561285011288214812833578290323063190946877875859624877559465997091827171162904561313431040901977856576670736035418125370793407073264421061823385133879528374402354749905885725145454342528616635011155346494992634517599676037374907766289384168837438737374970466351466259080967265866490794103310582535608673850842325738757828057084184921580151003406032344676082888735845767683076674229827022363306267642954306317784101173599314481613765850962956221516769729975715904504345936193234093281371981825044497574085860615975979692282289041162619243569960170139381468777324347675096137703307142581831179503566492091500412622470059691587159232761969570417416284345687094980437040303636008095181592380581017250507438715127229297820423403128388409564859172277476269362396209099042026119949045545159553128620793583935897968119189719422030330209882539619807121739521056104442777368556147716667802202965842828023186167278331815460018845398057062130881249676115903680554323149475875390509149850315421812695411374622518310068803185499494538555404989577947708056442287002317120540036416661721236461080474400471059961651577416726185885291919405223335719947250617890929052848815336168656262914556464568602629342216164871259985307000125059028476622534134077825106355669140319819089606713388344274193214402421227085178411903102177147257474144936706535139547453541020627080923518593986408488250585014415296705389344061135234147252732883618851258170140460525758584343320646711790218069211983328659432718326768522671967711518570511387703775041567976283932438366898244355067936322652707364614441554323398885897783766104427591493348698272860522814618424225617190763500193561163280780019797112156403579097135744057429269340458895766692364953209738393344482338225481591364527777935269601115912936367446439395420716243238445879698710770034492478120747348160725071472928805335806075475359253970384395877439880215450168539016350282152048936962129017740475277303691627707887505054734476144285130994376927677155128447201684887932084574439203556351108885380099594686977215627047550776899342406557093218823198608637666198415924267895607229024189106395460993563556777283808989758859425071110424456248930393555432736357693381119066920293390373625274523898411697899568103869365632907595552393559471128936333048143086731451710312249043130862707738287373327278617116091121864886482470274336817142508478146031937644469061313869756986776959515099300453199080824775487670588412251247865098091734145874814918815603140225540941715224276504426021551400117324702617815555609327930153890311373664082313369789590035563469055220804037392701477747011825572826819633992733593881812517928097901476907118817840055153797768390925264440360016607446285630349659240089347799773198837509911226297339687078966360433164389865064095389782616049328671080099843384816789931330953002589050884352346216963289838472078573275099520189550499693988048108743189242003303406591529021355452480224651709237258169613616971484558786505056036631297313558891976472822477838431907076944487981253707375422412043041902478519325249867000492034561039573973835717000271370685699254961709743110129663653250147406012466411716403057093940967026072666911936396313299685558928416035879486568401341398320007211748936440222079890768930223143892365231983789798096441510912750705479744264639743086971691347440877999593180285057520481759964284738607037902405248729985250223201393162452346195441341309820398211908644081861181640533857234193194539664467735371882879461610862912357742751354088934129543512017099555276400742461780935989634595463563153744418539379337147870377456461536762140891153861070592224528586797689003583169715685924564708414509231856021427314910726353825193093628354623425941312200842383860602902262716605248577322873788120072562810303096748618416103589156686067353945543703760064326700841794938964792208008507221092866328686124281175053444857029190258983363549994057264375514766642814396775251870947487937273765387944265286037404028221705954830175732191150593221304601598076381494891936572916771313926829085607050844641624052619561219129725255919990554257599174915751163979858046358117453514612216477002936273083100135629158771127978242319662975675604594473842079392336681979662566552042450968609270971755935261435333469513306380757740388542230648624105785562827960270181988419698777264578218490989014505067538361545431028485429959351583511374052526905340214796051867785819833215693862396299954983759306951521445720309006906737537158154980484498975511725061446004734467200070304873750085049889022008448968366495674553078716096759940529612297842005011736709733678370483760594700829000211916202380601849392203459803595302780754754025182671596943646206629610713660338948905000823736646322540378031049503743455754670372823043127182460897851544306350016155126712410486879640448853345672209390364666465822936657018580082220376004077995865443409352996306120067095749149925698501890120041790173913413601347606367934555752120065698436419672228135825424169709488469356584596177084646377199039520778032988699394977283103408166205087641683827980960014950118377837724460216925326679321459581257389857247923924938665986488941424722309923630703948935846807835823894149903537255412852572910643343009031151986030003790132123204287083382445536253114940015842736474783569849336364157824066236117902009086806584202284309469160637462326006332898277259263976293184135446338016253402378537274818629119780175485315532829407573995534151873293659930265515248094550469570243669357462822730043090700931692735112610730822952218416689620153479620890475731509448980814196728190050072499420596652655741112801157588317506345455108734710010065667018877932117616529020990601751719245946543884304213694255619536685143158975434760764162737999064541383498413825666477286279565560886221923147747414509779660186610103807108485595493149550056537156044137918864041428625344360043927730501464454955225580222186916249573471648230366040144427512085610588242951016476921957925236580504571637532731660545119445206781219872475768917882993159584795735664239907292527357929562657085190427146550469441306720283314346697915537411206548063530544686517547355047981158458435153827818405473865776969015407278809883833269476076476225102124091196175274156205545353722432484423131279421326299682836205911886927336910051733778618325068858848678377973496544794462694154588591463065962331642915569826702207539736244912274093403661718662294026952270688525079386533405542468928844466372444900443155268242379188890647217093120484710841921052648048819519305173377520438415820899687567941082726059686950149876868207343724828585264667977065399814854891101758242358772451655605386400641455420085185418033001876083121100311760160366115289516483896783453287520394871912680954594045024527284547450581687970229489603225780177918263568109129239328421857684893002716481748783971079969234538079524803580326773332224451779482081213795950585183548140826187096878015651167169500838675101744024275971176816146808777681862100714313096064774177316392730421710607949495646288092784469427664653101844814404147358302628219100598655628249671823969239632204341520908804347871802905460895428013142497714695028633614121041494431478315949285099024861297927543999731096565032692681335992303033472783788643712536397906348711240094025997669525128744184155838740504350269622475221313201143351888399936462936866918312049960916482049061854047902276699776406629039016439696855363928574676936312843365403758330369257933773324100047385286985937111167980585585836882641882273335598510507734168307097965614914998143470699028634868800661498447217221347733628490590150187614262218331613382278935565668367057211102288035285102930430197296578027784650782113502200743109526005934010568102881997523392416215935728597861650108523919887045663734217989521323353691759291309438379135581190841346909416512193134148829791461563630200756024767732688023320066005343397959141589326754746006407328985236169784576254328845733056750552846487911910155757813150888196756671862573798862280941190458580164088823892339338039288042043637200972841368084396530018429555301616565327955703621326734029783871729972330824397680880574924626500779624259162339004662717372098373039183035121941254034642109172863696019392882275038912561630845496703616184010910595122699611437787718841643323456053393034696003740748152805282194630802928257284522683074217192549631314434088666720696553692734093656323630357627117386377717383169445686202392820330580928636039760957087165935762085341533393662923298483174444901028420526368259062680095472340013106876579472308488618219260041175720631515690144117878007976337887972434331379614229016384842659844394253246106837628933651883907121137097059596815517126613318375118024488606909673912368923523271723411603801839553360348237789778775852445818183639365897321252249716094862826811649669969103578003304093883318015518116290766163335883996665231659986828865776595116773276335066621652385580150486834880779617244658787506433155641176599823087095669531804777929675640444972196828203942765628075118310195840725890998650389520575180228530927858587347926953664736946399353127853452991904251239505405587922588230035336431791488391636226023963786226992414875417292439439479742970542330298574038561013664055782462597816883702731452442787434042092897693234488319464795763743597400547661714350920105840349332849244146347033842021657551517216912977397817517965961722661438568863995855819488985014467528614314955204964766170125516817272972332577583191077666213156396659860323915894036162986062175425774759783287675329689422295623055361902736203990047358727343789820685005381680778802258514224976482892548648083612274591023365462804196529640707174097574566510306214671814681230007110068689746693632608907048506561503951354736585699075729768348903791699403365768134509278778701084348970089412034922681408158208669344952233307452650336450166639877507645704556448359697844075608735910446136217953079055657127811260809120328438333472618029157110594521990249543880681029957691042476405402644140194914966417839483279214048837235875749427149366077551320719558038293203429480698619542965034514988655304275251191506666809208781628340380089987825009587784365426287185880141438492648356714538396473974297776932481373052442148931039028489183489515284013205606129605482707466603107661135451657630508597606079003219570060040082824939644895281398746299226963784762480134365403927717676900711787117578700319285376272905964391473198000750232419585695926595240818482156772729143322636284850918718951407393977520245621448896590061082239491230579287127966879943527307724119318401742755343354556401677567704705791591989823764418312423791701181422691208735862218033160734105373020990981438472228625026281834075881012019443023208076930440839655499843414445968940427825602939564783517586846897219750955737979158883704567603609894128256201996314941967734973925520910759098084124942345643049147629014240138413573302422089108949179378062657017979721267339756239605208832704556292909451395746575847367398256897161377200466604068100105133918916123096094695148229933810541699544163407716721716416907926567951474692097384392393314728178225682429244912384391008894951522468538068322713881534726277278227449716487623641889586021472875799862154225523409600017321504407426418339356193822489591318657334309065157900579496850207777333177253251176960627196262182464293237071177352487964637044726631845254834573968998041559632255950063056927135325688787722532996512510414211356155324628904592775436614404364877737910189194868382539088969427154916518786976866811273199836160961202829143120803311474179981122696179125664292105307487307972714297832089426762944490813031877990183952075261887833004282035171210781826383412460046785041672395779138017763963629859280034020857612126375950723404922073995543420078241185570915562280847297272818538423881975313451533007896976696544140711361767443215111409094987226282316340687265558800144926892965497282317941433826879728305595933544795757321751251051999422387739528147335671607783286321697237923829044456906013563172823871426208281645030961997789388624329828294449066925218584313263451779225733047211952984691451860545792676698758315896620207984024355296720470501020714173219226045443045330079062155091969500367587884440232569359816927025213503834473110224815035552047632727645090992464308824076744251261854180612819662102150297098690079704171352438107900346682863967583430399270764591734613805460194203639510198630796889696025108111006774984634837616581468547943103187228235267031019604382901166619116779632760783379917559176861595087032172311233448215539683593600267576570678312568912818599401564087835024020059815573469607981363030889360176751883107961320923669866619057972164885025263979556358897801103187229217880532562118579899379656238798238246389919647753240721568331634881808536141808294563126230167938651609281123032175575404057741953910377059867811347003853721852824955213629915868365681290821598249835063160578066485062254484074705784843869490430541392381787724961063035941949556311382512603710022074602019834615216114587925089651046046941345562792893288810840239345403188524274057261649291241457787573105335629962402640217753708620939571179378948880400658587865031617039106817562388546189121541029167151153806541118932284333286774810939053407836458666333346190029196616548492751611527662634173676767676906456594519076906415237862007608688377483358026838739850577761028126444587110230586175036884590387870357683811230841387921918566031156817049914176839508977115649357317187452397289748647764574323168693767798746848878001146636903999056246674650175246991947284301683444669137471440232889045730876733922774429036340202483798583904408980061031519024678996618066818222748257120244478388238302458567219607589287124911015716235806627784063751246065669430955896967926958607505482483977576975962868064380555511455916205228477012536901765380534722851002975166126903562413277558790894834385804627123309311215592535223438573576648457954895887898240874737712550913755287847798930050466832182219249857579535086131013865071772425661046858910992248612260458722154709304619044171488521219884915598007700296673863493432315172497846938280238211176892125617416054966334070523953991615193722003703980680796440165325002256189214731437704460612520841673872254953712549617559975636533009293836479603166067265315216690040525939862389638946755642332454667323362414202256879256446041428538207903517809366654321175699355427259705872824225965106217867257326232314750016486428440232411410159853915877650408327712529579851579412949598558255770546339683236730176744492608631650235965707645632837695720752669468442646973787861853149467921523764257151650690596116024868073760311846753829039248736432441193979214682223456073617833334504777998790227921242471017733054910060392317279682449040400699642338021820807138376942378303035156383616777927448375051143003727504364776438733875966982905885421316773251142279952483094064838745742770720738096643869454983159118761531518702716316238391125401117609703764162309379104829161937760136028639805864750060454320876244152533347365283399215507297702493261624412151250159502517225368833671584629809058486340818248982118190471167789677588559466690810260128971025581869703611992303191085193899546093030105917099560531750642578232385038842249069851194476303199454015651949533253564135359085968511099710047420352507130734875167181515763284000950614941816541067416984165440995799811016433047752285993740137500732786128099032644649430202776499108796618039718955392711289989427957772673931300631966084160646056544889240497524761065648376053791444170280409220914071825303567141471025502984286235934203794798264013589849002887990562529192945396210212824591270982246776307551943868255954162188568684288159805306776635210808290008767764583645530506696902382895904269399565702659961688077769925191387274856629746398298082812866850790953561364116276999664281203056922458079496836183493227697003803355009635973770485746764898229644271496945321718342534499567637687525748864765748909655843132877049524895606293417790476487456799127009993381864163404110626064302726771593557324565621169720078678989246537168170295190617471555994033165349812196199196131247660357615170411366185073035696481800488849630379599259832128656448262163878065146627421657949539549772557553456547370422452931609858264229003901634103182522623555345664817087724291556915179148508746584372833699272550450757648943368444870372000946646807624092886187117121369447878868486067145573127488155823694962554561234699284502538691855316665215438751345672486619554632976951996500713062045839147164423589203767715271507445408880644010099949396823357542884048778276676937557320754963016715919472425040456422567226196037465964518795723147239256723968380774444787305224745918846761445454182260657072189558222989068472715765676199833349827773634462228485807479940460362748382048808717166397584201208091261789626069260773897500312301100838794063327438703676874573396151206197747785005466512278463277756508474367359068482285183228775027953323901270311078891474947178561355378468958714366703791731953640244274629391692850702625722921394343188395080908952202032514348897545166406114257595183347541678242415141452097825482709392721337678526830055388372627851397630920009052445086911976542742877364914948214395318829378506603967000811296006207788930256535842622622017207444974157894263957973113482982587622685258852157474273633266819569607049883278716385303627784115296033879414909165493228983107918837985262083822688787938366596149249673811005538730424618099515165050559203239759954051292824093184031141768531147446559534917723839899735558192767855808070483612716160467030724142208567311683306959741474325722693811925519847170001863956899395714901276212159212029593850155995324037964884958747210453352620785507206470503224397944930681267521117699203134808738717831420485896940592059658622959621442018720401458808699112193484217971741504175425651292625037021727242192734464244364585074002486927229107055810967491361164187732887673270475966998930154452106860954949293847317604464179158938735946382891196508714256647895114394632515154369381189185699079458859367930329994094584158198018747550611285803290988547160902853883485473836469801816884857725075198868183195479527762692990018131936663669101580552433498162328976090651800554023232836518057846436324465828023991605809750976017325899048378301677153214584458000953583376911591470601469159158775080954434011156415087168921614411602377315735200913257957705338781526595331876776397789249550837048862390865833966924078683649154113497309737533697649164171401311316288377495589100351080691489631519024330537878973317383242295588301379477403055333353652623145236052823600960108021695229123700071995397927955066974121442690920144387146484607574462991889475267643897107524385572547525741923395646665232174747431448180964248991410704243421389008071042479833207872259137497742584031665263802481274243524041063942623697390596941421613534140331870300541394489560953469498744727696524100862248106331775661553182174880573174957196193312965078754034969056828470910602778336416115324254655381165914303305119100496783085174000788803138288019742532338731004885896626744619468526310931028180094298205821760120579581694472568570088026539920222092935454765581890703681783270447829319112380550589620086839686235245497525987373723665307429338595995611272424076646893683358215145949600253222999719137028340455985713272412322850543140470276455978872715717989751067506842785059294629552144658233719950762782474579448778808521366926102866295590581080562780165319868922596361879175302862228358504046559605855362974538420962497026603299182762036822138260937263737204699002349440128963932226679626068973574262804390474305418546740839936756625425964385981102594449324846404696969062491461041091398630138265109479236043652165154865820188654599110905494460014362792082378241915016855497852822672156978904570717280097674955152579662332317570521894383859775090637475860084836659734286054194114730257764502492017307164504022139730530490889771036440240665873631393437603097958364240660434240353826333997810764735645117774852087833877978583048104700039640488394102553353042187238705791139399563560638585441777896821166362028425571389136431821203646032645629771852531218736285503616265727561017448452592223752964133853086919133397353324412121512761134425246300975281157067235405133616910941644884654779139557956200190429034046647778950307703143764874849344903541828079141962968880354764247688819689484158153417387026679635335099489594572068066946111881930459741828862011442393821524841222921764112448137584970809282648205018166716739031460740604130340862736011290470276749586411594984603352169420473832412228597979809387664587520091161527668996191014136046593954091283756317049528478134223622780506287006229519096278712154275822966761037904160556171745135997862062360679439813153111269111544141522124931122855374376410044881258669959882785356764097644576742996988608284303851429097012585617450654418091481776684695757927352039185194474963742719053580186888758164275995248022113794176164069923631914734645781755157329648820426372128898153479410982329257652733059529108015946525618385483836520796725220950843344049628214562248046824559914063055130108756793291259284729014535348694849787989659130052032976745725618294083722276791410439796272232303814984802931366698254541874404894447206254285492861168941627346371794573830946651229262564843941253843204031886336608163271199013950437884364349507373216995921691219971258938317864801990607871419917025337447218033664012239114750838181545672821378162345462448836619000462701135703882866906518303627547062824813973443150252838934996967462329900434009858357920293823395915306486269026592221219006826843734456451996175852372784127964395548724615013432272441925478305716407085791381226222302734716221741732959010643998611045317424445582364434320749049696603581147807360639043616682295729830968744149236205948306725661521672155933511799460769734471055440988415804754947964579096828794753123232123859680590450539161893142740854174312590731306294770469116456049075615435373697300951776628864317736685557473628729919816564632178076616860332500216976996697323172491151635586374753663819223959028956470936616591641669594408194058514191814715491679309501367690329473141631641281119526123843403433607106287393054865592061078743794423901110944631246322067467032870791665138959240582649297774256549231537913878247962514411825176250017088127640548140126129149703588661105769961882066438932786668094411797773950045210888375558495666837932117109652606950424307770237651674319601060617157615742441785300441402274411012204533518468262384952836874554930246578218488544181737857629079890880895765173967431214829357907173916982957274397422173348722529078008917858079332092705518055406113890079240405701491250658905609106161185680552327060572720160060062634801516113543393751635801309494011385174668906820285373238488866421571573091073267628485892197645531464235575844453745619798979632151484545523847737091129057950927747183372286535823181632662735974508617312665521553070176664276189524746559636365286499368312518130992230094448295151883478214406593561727930807287153038274316423798721395582933944159308996662790265689348998482648185126551559107048063541775815803225760735002037317427465018748939141756719707018508609241594184742942127789444832362482264251353651767119255878170819514957837783303378204243371657008716207064599655621079382253748020246822917733809386493200807724279544842576657537052472864553227423616380240488509244098406586278097819732598584483939147494523717815368795261079995449037793259023759691256898372699270320179494206138579257326042807262979870585282257509403169696857605360622805260514946883229680235884482444090409189854521743138359110277713408609864176484741708778469680733936412119876372653255197587499788784170860772122968862823946897270835459893759252397014659197392128339389374494026160482057635918539195582490785282221620422272028004726366276764677142738784402507836034925739321172939082137638222322381447624239246330123076397933858810147427713373791026217599391268229531602539070525016037935209847490221964495474255456018519796547151694711648882231366533500093798734783958476045620203695171933816724549940299341139980385772770215893406492425739133673024150579593444863533267241655673550605103173059634139160008226983856083271665629969030478363924518921775419776112783481088610843115588785242876984366169862573539968242948562905265664564505460986904798041908071002340652359029719163422023514657171239065434300711169002450798537860584960836224305619300660484896393032872152342138791377318771667659261618994608011243481006991696264452956429015444102069921599095271564943733138892167259506405994375984933318378781555114715239883669315363452569898970344381358374275010680197293973352037218792678017541399303653113613888395057425256982333770006749981729756862545117774418332214902961999921811906182864684670342099290788040379254918784584351949350965644670493391175152704321310994275816564793705065660661809295303535547611069628515817433600219904979888687543828777420564779305268171847698737164947030653317525413916792287795723713197462188387563989651934052784218893314289111982601327477717786679439571159972191050532003870055808538103596550704738904989519267329930042673018345608381176814777608649923002317527999277832582437436949525448732993924573854895313958768475157637308548778873477025783447899253095714262602954013279228322833369872551075161996617198537413291258497591584759227681421129517584848380517677706084370815244733876455447751343248566762479203586455175756762830815589680993713886447049318714598028850106401140730327957608692890025995217474164898504104394667737850669947138503590714526838617228170263113398377340116585759375693418092652333509754573717419938755666549089962654137893978478534003206734325168410516139342192923063357259721760739487511135833087979272934785713037038640295017101356986250682515515169963162361887656297244055430075496110680720765714328755779444300714544567719269040106478599983227275096117260346195700711374681901381473235267787692138188214369789420660924589866006785367433939163924198549080753803709253406658192031644576489223868050321517936425103888562872126887797694141733480518018108466637417876011431058473605527187279031969395110692343413705867351990943911153260006403884746016899896703399919187156927027735017064658302245222180133404786480284758601220885588690857747612528726220813847661869574032562369502847684061428489336798903327309780582803300054788142542936821132346514664673169135880837864478517206118757798696973098029770607125441445086399316722686952024062609503144967426480218323114905473461068153912197098527187884739226702015507782342005859558368944388825949536270327712851189740852793190753340693395016581065782080373209363011685070073720933512339448571597305411613978057758918878875194868800723264438661004139603296968082564828045051760901683885907449241151320274274212623839632835871042832535181622540387146784699503703217074222583775173075991472983514586707023241850732376267522977866378455214992171590023713774540052882954314694477025979544875450539741822952819403687591617379692207506332556640537650801429639819900525700028028060227656837694952267048544330463480972426922281823732228988745258914768585404925693301376287210988018893366733604085830734805891973323379805527350636510887570780898049316930667151595132348442173594391238285335118991007826839049792300775537966900002088227847604610038834449818178576842240501140748673587500074261829402373975976510334718241256614247370105579542003211946717482318677700706058326692726092284107262083195532496757288057734415758926317185668917953066745726078043887031372478670964120787006894059209614822661333143601960734877253776399563566773549341304951499089820353430759951600660719187639298900339632347944236798529331113300408769747894997926105898005186648113379207037193828179258600972864511828538949873570499067537606833861093196560581057872226215024731123974883135587799978037614402383595092358518315872268540976969327676740917847574980809733982318698699114570022435171654045646521066438612757087336423869900349460867935209042977591149530335219781457892100492234488652401634127018326734759386478043438484748982254468387599188606852931072500451638113236110971278145638815462085355231123809762616591889970173334020758476058658641381254167863288793147457651734627185871651127207895174889875990836786887703698258801269346519962996929649456199679229969809975655374001641090016629362831009299283112819580661288610281689180700375965988011940667380043259647727229893577637218535073755553702664060856112604669325735271021937135234185189537930293591913258308774201741011669836550834313764325241607609489521656671609875170462963355040703458085876613770923542501706013477541073734060720694585044729169065944238684091736507351935794527166267161285935983818955209116567798350506182440536882588342328789983765948076502958169627552578108661566410702140066430409005248825648258694497758625454751760206036207268816357433735846810078990347804342726545408424551146260393361794916395460877072100791533527100962964771525392175234931368960177389548611472399633509455417230776419514655410576260416935346395766174369328451303210538676919710759551752024997451165356406695171271019156181400209922334532252229196327579511756904103546694678346603477019661038726624761872947672820297530052121215169641553239753451049287717855938087564650850181056451805969022607885935671605732312493355630821700859505764678843735795692751188822590693699400615408411681300270549668080741583444611696741918625804314746453239152518803718504287143650274310597516833000583671523068018271228741794507216880711210193641578463050881990326089998377250063135351759561283278193600625636018326583754999732390327224596228797294350864745366830553721276152537111171704819285188697022671118551996527062724357185845979295538597708641409054598336866921504527856345483070451136152784840073422561888573578991934373203210005797031987303129347563682830462670371529427531446099606944565361679603336770545034991597300420083426150122425796332731627162028033314081274386751005518517836739998174464911356039639391972707109322783725313191566518561984031130512413287745230236011355810929307777293423203698513538298677805339445322121421107559060680483984552001945509081302338928569027019093956885486488080612163260487048932148915124771709996752451571248842621121981621896786524406212571824530777950444718291591235895232758788939121100104432814072245185903682709144762619230981628329394160706480553725444115156645790985563911104076077816108121955089497992133382306779511545488903184940985910400780355482337858198301917666898537944220580809468009482218655397306975520055140618243399596782507991906479887750606982688452195668019480014356541358298893600705587183640607102080651827364268100152769147934586247462394211181821812414869881768514777618155423669361093540724938816246543856848387715630256786206284428611993223477107820658320525619010542695757109044703903752327423081572730967083425918052877355106498515678072548123115057127253665423613654709585690774722415237747042650806790409899870601244934786451687587521591023218302710660586563758342126455309885849180961684340057083873670885890411414782115650980557633915424935445215947920268910876388226921892779265490180584907446537508565679615206470891244478742096562052523987819324220954587686240808192716667910465767608625976036984369513925191882762804272572655960592786854723335113250593428604655511065559468542522403682308584903197498009267031556171148677640047043859095900084857660273378079653635553636065884855851947197715727297688379614963643843976460121404890974040738787318857011604573188871237696831695085037451860744195970950179735043915287787220304442734142369597823512666977050735044051190043202083055970388731686350436534121438336333417927344454962614511144733378874092696567618767010675679073679301171220183050384501027185809234483421183629689493094225252423642334056052829745714058338651468746772554058724879002137842091252211454472266100550485249011931948337586295441518557104970554600018555366844333335750595490293238346656183584489565539199684153142409960510197928601099317016794014220340265621097786747640251189231896899115509806252044126775008885125040105997405910540748870524979320855247957137807149338668617621304481933629840656809744944219877295872072195839723155895372141957342980455770572843476267354256240003678916425180440926974649105658553162370798265090211681403683123168541882705241662891116299418269421992538791906560461418780681640327491145598321538358428088566003013905407433683282647177364359566636246894051022435127082621342121383463216264778020888239648004989880947452586782676257943140468288526551994227824082362583006490691089329429474490106856663527230609903458038038552293041108659767132207016746547837563359554253792262711536955135696980194052360730695845351280216668655162127579465068324371571865611311548449570040975305577563114706408167772927334510465192289926550006064954713835291792222095958128539834560006139739139451706322251282639231434642721583934700270384375127104347311469541684995093541997115849333772924994158960116370226287216401657302593674669109270162666644544168039424952491962543801867090506328800921099651831456001461963052206024966422956192821723518480119236883654000054628634974403087679327640125214822867115631147298771046289858812877312727924132543438136579892007468574801623921018664373767884449658059277154846724333008057704416015189598174474247404556555410226482428168308742033409518934441902657846324742568920221392191955880054780904285329962241518213573789261530228357244496318713268004212929629165007395863155887251665614332400236047964084464491422992633730606488645664100186039131514873028715787774794310834744269052415037660590267735741272616717500026838639057171060912759452613114911202227368533984515960807076705589135250533620079929558089090362885569582017843009342542166651090764671883647893150353506138766387114515315268411469932629626700917217652548203617566632354578217698015650114378082869700203359451036607281307216315837983654775879666289884464240592558611568431814760736197535691714167954603346858733564227501051224527705275331801966729087514193765735682180908968044334833114337285616602777562938012221226529694968389169649092220441317521545710565698289075179562679389289697381227630237429741260462482000550579358703373791483749434150574403978978746756426757356899348743338156235483304098525862942968241311155602922601983620103493390461589088431873934079485423871395178225285391271749288536311621469532364471559519190483705850086400916628598111192274657793147109504224871218270155747332154285231997799480146298718982984934397620155690260400920418301188618347692183116819406697723663538969447177954854712777816684154362402171033110625700477978908623527532523403260916826823545824874993539807035622615350504640931940617888204075475869088709694011138109443951746423990561747120751007920499593466140496818762310725422748236854918818234502063421690427459295541086127945855060178962127259439253832457837467701147696100013206051657976537107661395240301081868407434402555886074011156730626038677749200007178073396617677793331602656083822123499520615704223517197830399739963821023968262402772605142191938534429255173808606650497423557805140799521926063200673845260350763179940174824725018949979169104534559855983804819016755584639019098044297702929356316062759460587128511863640623994088528572641932689711549281321671955566989316857301936799772565902323855986503664908663069149831463414957270097988751264415881517620718648688461130721500357635003477979213323095746904299037679141876955802211907852043845740451377367486291677160612422438028056997843451650492172244113056222265292015165576647026868707842709487157459384600646656664721273993444463548665136654928291078831802707880648452001093049892084148017029676839376887923162576286327787723456864763255086766500841807128913340657139866099330759156226190158561838951616809950012956937566037265187065800828419567086541654724485007623728730314069206021556209878425853031125908345533854163092942763638785883826479273334426194396952550827160015827931809336344843304081359296850140865076895742663716718061892331643098945901691537909561739634387392594640945826608076538461579899450800092589173723548606454483585874864984918647307986217139302961672094669831103134046564263387636121194326011218669665821894409034676089199043932801211016081365038881314054007363461434422520108762676233334423817280013388677480720340544420257760460202878711457443022471461328157280712975703142326373644305249100715499059037300845734786269820129969800596657942360933167055465185089014557405908668451710224396257645585857997099866896598005979560206109458909146647562532386018831961732677041756813598355262839424155140850705995685381980403338870078582348812557098467513244809783764635760462775378511910415795976605185906123368473979503440737902093467372041101082941821077087109402462682728258969070137561829462409285834579134866629973307736854729600792907013947750130058023514139300535075295607437714706913700928601742593311125708176403637830083840303201573676236201542242983441215269353449656415363849974175380915752106682032840742014343073653734160590935595766587312152009488985439560206345429340053056682210172649086459251576805984218302748728794321178450960158889326871261471408438669199132531906673047319644611137365686573638642642665387140882790170443044514020422024943103713567315922477855867388760631037827087447270919737505158279027555117266626693688024163515861843061858366074994329912854087873526915964379517723890434882855484247224018348871399537484836704194823410929750721990563025897810530510355403095047700885303603044643183364712972201928584570484699884445398205703105259135140522048052072114068090009498146427347627127475402887130547279582822561988627072984998920983624022765057673202849322965916402594955582951984046262980522208810188240643790651855766692943542658211009480222334070794124478785248372115940829325107263032381503838980061674113911702061682066760593934509838476756242239636149474737348025316267762664200332586079040207708320466724221980079679368350501175704292132749072079029142095861090633379276321861049505684190980576230853952817598054031193751343633100120613441673797061419461599285914866997567242416255474786724448633622227444772899441661994665300336031429205144316919409767121844670637131459940993056468439740779420811309513825227803131725499968827722017882288357078301481843281710911232283664477044602315369949281875556016367774148415759737302582764239295661283145719072807730582074803307408355346459010688522399704331922333084433021276235309329859501458391901100184989817952862341074976900303229010277191459476257389825610118575952453717371172629304359523763449596248786671103180900292021691995437506962294543719887970867919808889395114674610979108894410926925956501632490361045712822007541215792596145114182136637149068896966260560840852382846283775696784047398620239429368212755765275335762313941418796214106482316635676511125458524115876864754797254919431275326680862505848671787974642245694428530068812626080738188807801733777474972582336511076928800183956861387901679449296416843759304705165347127677510355663977254356988094173195143277992281721767835658508334846662439404493690274960022420203096239302211287481317767034338579701504543519845874026031786716146608203544734061529321114241106259951701523884390368439888541426418778587957317547500070063308768590653269708192104344365754522942714178297692802772490500758549672679588577608619168128222844971976494640589925185010077721945009135437764716085026555653698636722387161900575399542427522191412739866424580950173292130036246305674499187252444692190061380199135215482633119331807471249494626348359142052528002318423346737235173674438456412677206087310265021057095948564654854165845294912150102412514203466394595790280841226974326544654987856674367313690719858066928896024020460777751902242544195936297229337104277849765279454196080492980123514853714697066882502615727897742232976146034943441149596855000844742636963073774485255406705495625901560881502876412822945959643537611947534750815793472813124274591494201521128608564923760060010468212487083723757189754226880550159966509623544949542219375998136225351427174698787753597891122299414054668854409598679682392552702310336726951931396668718718430040753474339142390516319063189939786681290005544686413240347394374476215011201371557575306180203755737552251037068568807281933083300313129436624019575105333121004584531385242802781101400187004825857431995012225777722073569071825193216364824527524046135352102529709253484399758377900132678297597466160563819313434196726683859622649315890544263972994693408389680541057869316675477177602185543742999495962414268331717680015622841472506442054802386011393708106277691191430813880405309111977761420350749227577182410064128636073367116187313505785664598530954950222857559832236151134833506667739462568591733759470514481892876127163408501169422386031959643707640996744466934742237230738740940969819976578069149375039912533591478576855063021172275830714953131493974054148935919249134688571214986279084118818085780581417184127446013184123322007245873888962349360100167228247738380119758190567562826425374099918238156443154788424752600338666167110181674239404838108994648303988301184008427309237345836694226133113766248115912355821549150086056211827027353261852845577256244717657665462801458777056476283434876098429454014227390553854885071052489456156671258840060603794981607510824574842451749340530534984363144781630612329018046803594566103096228034187132315521801034347657288698329687427631972919050768999406333032468085104413764208384471000945159806440007109124621321868862101987827016073744915526574111997563109626418737479899618324720398050013043661225300935404281132142920478160733173961918305832604871480724244069814583119764209467137142338339833604671058233832571549879113679006397581335594688576735640083586698249041383569144349431082526034671535943091934131197359495057135432730046968911858828106974967620637269624906872628445448808627491786702741296346502371990793057984152829520248194189689051904957889584141947473153158840914144020955148873448463649848156573308509733872359029639391321876615140226355731400144095156571785211466750828637996331817842936130101780139912245605732217206605190648455156781986015232188797021018803544287267531058778457193815157080336101136589122012141927129341892205306476292684487237463937812886048549513319106696119269919535841484589619562329138999423493264532959816320226744985622392237267534826334975773831904207877685698612087407977625149562620484102757343687691706909558617774453626709268517196903948314057499488335785205680739502942843154579729897019052634039633635163549664323217101949575302498555832688480473360240005570126879270951488902437184733400191943748238620001552004199648352888726516044780112951480770466655969842207754688601054801654473342375170090514332956009766913852158985961390739334773448070161152879336735198603268368769302560652844917662800503460237395380524903374063856460661589671054895604188018798844156674053642974814493078364669544252429158831354182554690858808399883447550193513317137987691594960589136646222413572434682823648016856898135287614714058473769033216932060808051291357924185688264032412553107069949158847843384834847098859044628698680941623329495872929652285320656785687107902906493535539769067081205786197604381081244870957877786513874688168749600985943051247798432508136803037509271276598157382543994151281690152389981233709603022144547387891225062100175689681184830106269378221870871577263541609736989860982645642067968498080858770717925840108326806332691127304160109449131047136763434934398177609885311389759755916194956548891565589229497955630933730094441016001053884725884586450851554628192198019983891229906010042690220181405891910675142639077902424471553388344787398045572154797773860386702097414370975005042907886826897855618238974801035515723003352389530222064385082253798726135162378151608048837777859273254075294590317217497671157702469314425228091138063640249733388417765847146936025420378562855409632182569170837084404318030105810164760524986138812227151383076202220482202622360797057701051175643315233102633854214342211587241409887786133860701347549414881677806352977384960027049319406526975968343536140516548662581627188859626464381378976271395324387390985130466691283758004625152415908046071347478559215794039740814704002641671457447316943855389260907025072181104139675296388660652929453434060600618969835097153009405362132858094467715657201325604942158954239375690351601310826125576188795931038622247188440532667824799067373358575969641615806442578844709682873825341008786333253551449052694337575020228232434866194836141252384351680058211886580150474524456603186939212398421216310373423494817496427137702367663150043379120573279093486143963757238514732413353430802240317785198238245252055604011172454149155611829235861173274545303241143111425878481122630282360730508565233960493219412750456553192834257766871979120949774359589606452793320513032446609431120065656314154094067523540505944413037818018788805809235623995683456754759962764568890717929067656014007313447761691484570491432510627874105225273430097616058150829154471370655465617853383742050170079225381191701245791591986146737166286896616306192966772906761452329797373249472209502181035561078445464075763639212257831354068962546226266811765249402735729234285639345968613073177801896813181389816057022712655223271753250661600385632739964006912815504139404124779313174292928775061282261398479385687286427960499232564943637096885452293137867061893362522701529128681099807401449979802721376301555950976840481248142158323869538610206237192843047319960606900782303786075882889117666190252884878852414063608066310271954938941456068790945728071407812265479383707946183510903800047017836445183824596414001185678590754771077434985803628332084572887582011262591488770678913665424663467662700542427850696254937516897912791674789163631806313481252965324688584091967212172456073655890380032548678452132825793351975509407660764199954617564019170857683880470083776897441693314175245094252251454251846150834573430504577177095362883065830602014125325825491321707604609203653534926115373239113280538709560091366919264544838591683249945263538688135574432627346384382922401057893831093208142221572966742390422917381235011472439010692644155377455499108135276810798734563921361146625554003966960941190499094814515722732772529602587949966624191426860177514437888647908360734790747693142369693553259757659452836090059153567505604100234484269056525882160584915775772954957382960177302682063165809346172946582676500065428436703153640361694721238442951072281639743152489234958081071205052629380569992759153362675596776237239359391659861389530472586978251223135892325216651182406153390104309780874392839721907359374213202720494360508772124536729469838992016828736661363915128329215269053454317787244415254334860416881757487861977773271931333502150329314893718572852881796155632309821332528382687934881680496600534966449322044174985580535431752477522140949986272678970279409512075909661341475156617484607914814301320363947905164591544723798047167178328325164047464856797764843862249990457102962889375658091682067534365553112991327973330227642467077497730731761969840150282316371966925913525723250207533549989409565216277242149594494484681959793278700218398402474771746044863639898099415299869141720296810523483535425506496120938402659602950126905755331995285818480137695431056408204136070286665812158290782183444596188442892300314453309985711472354564931318575132374293100833863242439742405584509251904720418993160821777248499884214148969567343010247538588666257228964903672071478763888933810313867745061755543673785998272080797284913941101303897966778686172711521570078176032783207045337616271453815493893665499942870229460294881494051104397622130402232864635914287653317046994448180235382978147511878071310674531599175088428224875682101270823319392757465056437649425566685170998954935497899880209504327223425570359029716300410969035897655889534997265625974148546632652817953843259166417962757685317982513689707732869636171881833551570271212886775772995611093558831735041640922783756407791323690532776376641932041286502924954338058513582421517944872171075925254654127574549531590951815958891600153535681840578556996306711084862246086604068810653198136745452891097753993117407546492916022354886416007142826754685644606479907769579421860814807547126273231402031828393397749493040572970038245448237531176814163299841458400104701090140150487263162392274256323171589807947805724105706352028570433649785265276503546918942592749965846811224441894766206893664187358793398774851980029082962495169740250632703353249031360837282760138900312809736576180183681743189757777854656183731148053707957822415123874130468840416428686605538127096910407522990177480341566788346165378379537061531698460356578614297998709057017908746935621296823542816990399287681269962717356113775027234184583601486522067951859339353120432208816480570081924292570321692579647768196725145130058155148222711181185979439129242665588465880573484430461035198562099118121633235685990913241332337217350214170250653424257106139496621378650142501719612289934922887330193475445983406286350041402271862370119003244598640542012641248871317625776354306745533921762819274657385565160089318331232725295553237314316058808807319875236193460888827738605092062323078133736313301818523407801538904371370415208898862972761126885120385491076797272214332875050151916144958286491280024685071721459436569797225573952087255612351520634185210940214135541245547429242971981889822758230969573084402753636640893792436013729458188674718134853423453837065462709148839262191219128106010929861311993873322991133856394857524240406973054787803957849934544753615781289967992083260434933746828385991766037867965469491029674214797137112251040483213429572214122752798787106279696733347260306482081365724288440652810280241822502734164183062434583605808642583654237340246904498543767132345786988582384743823517185856998205716231491472041408585530335492852585486275157660609987809104783250388295702258646133496569388377458835705447693569747463511347081205810441366064955901512601095311070663879925636459373683395735658430463829953943769654423808313784822047075819789955032981537598399724914921174615241379819732001732802960669278406059304923813958884145599627236054938095059704436360214848834596604035598942002381287059961222159470405003902372274357225888538535543341993005336289596714944642370044583645113625447778541648686431924748121783378351037476442853729350697926019672608489120238439849318409605858736611188396000640193866511645251299344653244486799372921134913465102940944773198362467851210259533647906973084904414368194770695166990366363164961951087318942502144861475835292440330895659265555996423900646672311878738643903107136773077052619539517994645063556622656115697268528324390458097132070714888162793111109433827331942554336945891804415143927502893382195718632282795191886436222648465133164820854145890589611113531584158919751656654372874737802101583630004156463964988699660543051786899339838269131018989547591386764463665562604742670499237184987202741539196421168190070354395761007699735282104147819705944942884386967079356198830761644459475862059181872565070249466109052256892954876731146483056651225898754108419705146718629425673283316354247817255271033141206953578208625450320098800976192066705933679545698864605076875250538024422554751986788577244557717216250630974767295091707334858672047020519180775456486923804162910736713340791874985599131641408401763075023204785087059271530843001131079533198028133392623173095135495666360868875832497580419282047180053382137855209058729712357990478375700317709316400311760855902045630297717529899415258213882801068122957411594690626245483511238399705473722912342372595824825335329167273625960377708201132073169166694169394846681180300355645136433236934996223721855692224648248304507496286770210735658247556500602293684025666243587250501540515980094393542972357266517357607845302358368782131267614001418440891855426707110101835104699609522555359691625372057391754160002880820883186368199124621595098079642482788354820132875217716871336255342914032087898369235302454437886043153231156637324928178362449290184199829873464536569045030771960814022018525197448700247896486671644806976643192963073425299165143394736055113505320376721710947003508297914672892863563065630570764824773305041516119312236402325404708235395266035178807638833970294066046979415191935507562791560130336737127522345662494859862363631035224089803525999069681574110086800802707717351042460609989888380617568665233821408172799007212573066313013324864179429198962748040452873548638076855544395595358001938632266004331969881292799303988105072692551083365276203340678874419063522884309611491687060264425671977791187884627847484285926556268308855067686139999357474098084044943196388596475671165679022906554032931187878152331993847849609918388298319262254795869114206164297723733515751568989353633145858530094937575184042958302746172497121541368397109493198329233050619765403090332377000389682254490170362566920921724006432654628161341384664742922518314303194566747604544935755812263886369463330623869759990544512761704468640936205694766555902873686793319563202458522037448170506827558731890782570897841462226648150095109491029193283572112581241876484619525220881977178269951962204552184761506501807702766363108977368604763075324996445912550233176551164914244213615583136802089061908983861518211233413324439435224865740876258407629429467988226689592553518852011167530759268864368514014434218355906974148727299676473003730890145536828740180014428982075920332080611962450018327721927440526058772965482204648330898659773819819648831637762563140706172684285133464983388541383947773659835494312586049169698799679304202889780333584477398833816658850955783105798416515514989829238501896415217537275468672708067939987645955405709818414663838815892268006467454118318342610806515350770781958432746353171413735689648617807971779260482529305230250926627494395765467665127899653588341165374419009412313392593936432895692305657714505460670534912694100532942969114782202686104765202702410375608413261605257360544506354220802981735225676043846187115078499625066988369697981805107485447698263891270304915017032901754701628107771875590313416128165568529363388424612081475312614682768661587874664405445312751064568906074298906423705068484359705467990395640820228995816647389008170243321118868293535243298235223697833395925678075505564435015142378586737287960298930837904173338973947992627826486265732676687705908394901221631218628264158620815265409193171389078455305764457727666441958249111591055256383486708628876745013411801874084394655990840095048447527612159530012214094083994294379944220039799714698828283418738763699452848122829670895432026760381598612545775197726657100334984274391024216005428618516261605861401077314113396658310017524884921014200738132086122769419662209377193998392717562861140311262890418140616871570498630625802100219900489922081978885274088081795076974884263987182527349531806243346845538794602704066218527280094343994459441781013968553754440849961008542260785624571370893157802990880691446547596037600508141727931178965728455955633435004387299042896718664628791630460882350984732571663611149280097572252300336418026431277887259013321118516630553924682758675844775300187247328283899989350853120857510622915466746473397576847582369713724631943025388349805538431639119939200530545554534995645289096799903737585334531818645500740225538716377742632422622708500663398033428558448376059793494670632182502165280335277151247350482684402557280435528584975325687450203846445376906466599886907680795899591333271119317942194294058535328133367398945660916503727162913023492494599200817326378610013141305144954108018406671055053614830077728736751823026502454717965797299884892494834540145297507207200219972062631735221228913504154234245789854337839121640263108237008843936313489847996607831169753716063978667756573492997746284479371506107470181171369315892399595563536777320455540379157629135876310582193538641988839763594698324231360056073024257384849175783771904822484543659184919499259041287601319351716317783098960056425887741226301291945092587525454454428904038027512034426351039241826687590121374037027215919886618147716939344017593757460016046643148020085865730918822043946258042252384631928328290825031593594281038039631687721363751775348034157393870394397570456445437139698750378065473468724623083001142358921794540910602576429991031116139256234172556011703528661030211008333935529932329779217079182160634285775927215281849939046613613260702705117341593963041005343288410895321177729957652936306158827201739385587554561742056210177377992164830054603219658530440131117414858921470751126464672233860673603841741935899440494241711561339152830659127449222834852218701399148973061514340249623291567012152156477100399277061593929457817566606189279751921256264786930489426057921581046918880001440659577117098268114461615468330815639161827828544278850509154132654523746908912422524100898210757133365230285700013892167101001549089605226011490598926701837993962218433458633335743370434299244436581505160054688587812992678900737790889323577279364907239718074070516388442383687108566672888136145211845728433583634711159777414235254474632119583228052781266495414037581988514867140208042998021503601167491729052722843366532102273791019087207939769913949466949692102159147488768670473563605459524707601583332174035849010591867249439247555179221260541309766671034657654280790118148410846860353214003879863781007409631492237494681711307479646651456419441493568997566602172364527813588136277461176562530988164393252599644631868284691785180414340915062105220620919306451110334398480020706139982211208964386550905987130311519120110104995860711479937811808386349675684857083041601347141981295454142816113608742954100255888744183305924546318606557182375077869744232780832982829265311302929361351697850145203369250330929799423617009361334937036276051654925462986389012637425193782270138022034739683689285660793488687977675350891924049321370786837908627141271019286244569188547998074239507436878585813561819780213731901184523297534464551667540288301174298833526095510922761215451155020715797131223205715083527957166346385796246676681498366740046901708746356965181210124253575301302519453882578400740290954779161981166936494241493866338379435861611351525414701096201505664160574746670910412401293767698499339906917549530618901106753713645143594893502084031364945064628897139403279045318491576601932973747429272891082810360894378050378687275239907913036536677561294439663049134719585909705654583976886666288032034088689104743932291541540355073330838092968189545227772713200152774322045426348391636752782067348003121078079856139358996269799427729588583375582986138319443483282041375286297592581307248082950493933846470810574823484321628901284996359480346729960817457079540055046819555374588254644589344779922690419900618778477501513968269083078564524575682363019477285021440790847186780232001274253248026202978199468534183966140629250687872907601690597818815460326929734181276280229580042179331681516387713103328669110877833990501521360609547813247347933515589482049172781395386414330344405992134477850063352651664728187542400852859159700410464507354916125601764650389770423445156123532760653106122642035405473888277537480741363923060552821351535187198205631565250931979055298604250822145736529275792557369993783319542684689252103204793809295051930878145674269491186044366360696979278637994677772453335958039651128721359843013042065811827395552943512731437607793558335637064194756160918377355073734162372151772944059738790810136147045715341662587473447702967310750259390872266098325900529067257216511372165795824561795050072585214508694744419980904830425283551639722845325617011150505204585459279566803564129424085926169550516114464280760451608147380728066562429324832868397065244896491290759465835031789764784622557014943401364746517553853206883453369312367356689904148871411811379073580082138190177455738324457739018011365196044511518717194085132643643219814374630609250841478508682083752472294505227964909210464341311076514979242932778447827160704329282523380767542484007742866389168537774646611632401849895167278968428049991905602485810457184637101698507596994199572634504559382203391223818671682277729073102792717316412669260313459042958123002914259150708012173077530390085212973690168745485503407920233766536371606066221674443887053203530624665257435565408092935432074011332345636549255434387547798475536550422706529614270183378759790066759669191063753375624440589598572728351720503427802610380653859038069745215784148271139741513130050319795598924124045597158295521776655872003835369316516471470830338806661372586272966661239613170074544932167883837516268669875317915029402840875503231743220734147847222284289985199296180898326691520424795258632382170135746637656437397371358970978735156456182997122911497998489964598101697253499518799381244578866630578700712359494599350922323391564059810573016731651118908365897473495926737203707071764451411356504308137270000991980252474939706591881806981565299448891065038212246572137350666707529914703306711829218590807886655794165759461896568590958356492783653715684229555736631011947891849538684559371440444139803330588789861076811415677253959352268964293955692745460228452454397791709146391689425013369871752877816370390284066792954774249491870604686154139386388554109921899032880940216161676595555260974982085448869261201146066247668711774628966538429918857255953989696665220164646784281973659668016064593869018239602387990454627356630391481771221780788652327508860828155770232898280310659279371113132341702376057314150717471534139929455006963573199220547000727866839758586089497892741231135045802707138427332840684425193894701534521998322765386346606000686918467510470232102205746222366707104521301103596289842111141029150745638887341363320193044003707450917369298397811702264939176589519638534338226512178018963770178970513389509562301439414638224668044497061508086222356073816886571713352271118084380252635307426051888500483510536996399305563681731353216996947473186877889314882085322358977635338434239625626182317895944653234223384628239343779337027698503483466747006522783961932167149546837575638609968970644186838851449867017166029294913630805262509794086876271377344147553403186863039480903921705270223967226638550362493972165109253180457689489622063000108911920879139905682290221946874962705655273916255962176077828428653674006538174683852144637743850827435406880092955574085466561350601869881317155968711852812314101800128854879609714690569556866951925023850208850558371226574142364285192704108193409986367848679206307544689275632380370146906199396468655971717331617456146051481203337111613946480543488765672543184093165130883608719141486070833454127072404975416048853114573422208341629964560476414312775988552275606195275229759508157705945974614124183367829727543342239949711636893922694126072635183163122073389549966801489670639875583028745397170381114444685023791260350225680485516017668166111863248034868945643000536936759151044166630121606051568178033519610695008498671268312213224019123607721664822077504045525959216603174336665819707785532759670048301764077241207165685782257291946978576972524570859341594954524527922561809939699019788701059001033446442332834064127996402163799754560541895513754664459606332959790238179631691059053889972452161054500082575927313180235690055576006090119157326726695827614456512950200119366108753948754954260158005854774618930922159980955003775705306337598916507530851905041262241532410390454124055749197990388857884330299318311206183534731798651713077928346574647990848026229179128863746113177158198544324857259495951477971148839145651967112619917409254009008553560202343503284241053386542509151794486992050521902108895882045149718716858026591727581959237149228280262407946433996971885290866869923318694253915619723963323722083677429779532666570257308460835945227657716865475914177673000068018319074939007509324750596251129735998923497056382614910738563546476962385499645664626568203924193094376630201115045176204000702291648072141632401799167344469406720846963262287414212803839925396820393545278571113796933090035759352732176934144426288371557440277139115276460145796754040084671074682243281972429072021261056633795062369265489549681674866835325823196672329241906645265474503368987474555039857133659386563077555603841219326817801134781021243799877955292178094117260877646284543099863934482221062819167597551360752092344528691398638044260466926961336360499780421747541476330287802680988454196731785297849481080372252064523424634106296507689714237306279380887805413407273982317871945667269209089326227529495114247660788750910166966695404092084541151424449109653465315733403789541405548984891939112480829857630857631498351203175060855391811197831824465711884464112373034174437969116150790194746944575776154523134983758929074679429390588361821082395127705575811489655474242882346097792419902130370743480842413414927682405357864321606622086748068083091703764685372714787041420908077211878736810536453109116723013673494139116939781749406490984896439806757464919672890025588121398094759965892630383981619190835346738612791857575877336336840937981221141012958819650289717164662571021827657585761678769217213727220292919231050231218558130866329388293101214441849848355478070025044418191367164971555940950625978711866005902668447907911252972900830487190632789494146737707222682137140103983788366023429822858324779275060748483159778284842925633818900851119996111829059115224811249450748368625938094944196096606548358641955778146072155337363222607856806008191118120207462313030733234474164858608511825123796424901436599123750348927568128970798295342888016011080958839849597996805086900608839507194976692134005301074387060190803679946794845541964066159347614700042500245239824029142453124618031874715593668480140863190159938647008060749362865617390228670908243453593310501254035962348151043270202882345915940851205638553788288480152191942270625951369057207218691532134596380021180500565969152945231727969515808760440979850294751239053900734185055953722350352903969679138520607944308086879167530135142329295283680035366488511668078264696573342132167758828496223742324184080154562508695595155332674518161091001657093709554857510414336693485535405466203071734402966270252729786566781465710832737329835098667156909808639775551183654112744282161490552399793265093025655499482660925593183446343447285915021581961105419812682119063449385213108513297671484986520261424199804624250700911714043627915999158716488258080722435655654441372641707605866691957755798655024544934522741312094071970095564757912455828024652279832797049052224572769978216773741917000465079208109450151327724596949145087430978116556997837913903294647317979915003332993850883885118140316991547520932796908964829878543371914660500800653360848387992401495885364478956552196006213556870320801361382374328242531716862298454267454802318326825555780482368647149750244537429458269728431965910809886614047989438717365600051666130806956016951106682881931638578159589775949170386678676821241943330072287008062418927004720169439173693297315941027117052447910816985309204371971641508704937251891013991984513009042445648128745086093325628028862471933678470966004560634385150924582374989138753701979376797786767651053943423342540830185239573338147915433824756872998419265580215932101353070004675502298587411632778233953064942596420986730286972478070582542414745413694311672494222330493997257693378557173520646799095626696838679578167064473485165467188575835432869689280623845991754105785995840797825983642591497027659170368709778102914923574583734978620247093351347848869456796730124311000113980623089531877634395484092580366126445011996156285545646658824665395165359552993284315346292628589714712160769112071610734094400991386390492369022648327489648225873295561283852843287798144118733328679848313528988174445696814782366430138911605126039444524583279353296810556691495447031645595350047811467581592630010422276411778468768530229067179314368747757022294779514447187145417488701975942783377010459890415870242508606837971069859262307972722565419715790423629353653490280821351562878941167467218994752463360559412043815224550686760733149021452532980298011248774183793813695212040910498738726877719610096593248213024858049622265601229974686153318266935955832733425765937033918078107092867296503728400777170306187445061802646280506072658576656282473263699253611966480142615633445327897891230822502185146264954239846376194899256967604816670755227592342894599189174728118559383554113985654877636707407960780898876211191392511784819450831432636664915126896805412889074201089469546850690441490699046928456816634791816642191387573425306412210114745783231942920541682750258905092258126306156251320260877411072449564817880017478446657524258054976548297505410091399105642953249319705471995978606616236422311219237382380520859420060211532238749999946344751562519925841917795769247869216725252828642039088846781735613002401353260497827245241803274278683108644276032234421263053836775721726168833557984271494346434913618236159086267626803184780999947457054963687936195242412760309556785857930402566935589165009361619695774380691558947259438088395520947855708898846718767721711734741290539428308604487268608746948997445588579551774819270165824714422987900732443548224945872154177322263106430982877905660301403542861761015076253086496057904871081980294867125631155817313043778196646861946055070338893988428271335637112249022509352918422788091317349733712138594386762848161412593771304213681452431924856581234843905134938581321039439402280091985598677571985263223604870640586737314369729631763616575189346048575130824249534042983358581661724047754990937585355592594182870385776413884314146938070311164238416967830868348246665367577075476669776691959158475254409945604225850427310206142662569780603237254407209512947283633734487141058197876072316314214088394746040108592966859573380788130254993941719846523280592313602193105386729275113751202793078864618127959460764783648062168810606307420590616446786557821316912110573874611113414008760324720221060295882756334748722603418113068813144825355724354873231096309324289372288754441462356910117395531350065099567632104552811938684366965799248054334816475043607808534519462120969754550768758510102335041713412432490384725961090136699679217108487472873529284227533245142722032622994254287560360283667133929837048075782389251869377051414605302833372755698392095663266144505700366619748549317551521126579814427064890601387993778150976412330987506986943773743944961446832327868878322046575893039883504664258471187162304687496856973539630330299759805936621519740095827403815649463803862097641372322141523683539059087020880004277960122689903721882856085475153836440947006233891018702162750908672681667025788990293293987376939950488222137831465407623945724585619842768331554999673876341802630052304025323039370492816094460323793857032479712555742370812661453830441518070249444243191557288503738896961982802137970644880877635416916183416373666056857096814101323162834528276814025124507149616017227446350791372917908979234455487391164872713528483409782271510191833308579579359369364106725757391352471485423489754433856662924918967680799429889530580557620627242471030826938303896818379796789650469823203946768523612454953082288644916321488525534966854908721969353287029515521281628587260352646525347677040336017858703624588589551055325043108819279060608299743402646719487287979927413767774175794027621058175576143939648369450281123164285898641425491772761261222919532912344824134520888249283481569001558028159850540512301061992320888103244036616223788029368928354425164192465452100977918641849599205895453325727342561145402741336739681776689882682024351750894250120603195060618861846957929079818564832054208152054160495910052935267056769880036604754239498229962182743362715245345608475684848825978961724580459280842332297009034276772535883483698450907292972961501617184873307750543297790754276859355696155816855587705510792350748843687403054566806762355610726036202364977088109226191954809517090368557193086712881780488393536228407530094525027194180991607173308720214130842741308310512599871576550404082193888100786990058812072725424043246532211162887469544577229385790965462725764040034259487594646553103836318550651653029812348641143123566999987156062360047548012551579381687682683941352792031918946411802298675117542636711238045896518452804550265335127989553046449548000455972993859961144530588916097861891896126006503254139603312295042755255461943311361015788976206655054250805148143753377292390104066265091915350591798337903119160982880735395794521228407809248168992277143414863692013114144434117580028765942664530066750985365112320551132567585373972201347984982323568715096537141300625699282550956447999285886478556963640090099413300947410468043800505157234713933505388605690261080282253432692810144333241275165195583380278250114938734432594836368276717150351856780811233979195054608328990821004360929598198508773887242712308135023603326002001575057271810816024953708656013915923292180021310319803233772417459473267412194591292230930769521101988634474505758012144606915144298174218513518343561219668677726854896661486644758680020730484028208944711473070603875087613343531602308695041281052033328347827329596650096719723187995577826897373421752532453964888101831817063749808293644427648557739958830790256154715717925993964030439750086618207670638433427434968234922020726748450154700726713054035264915137388301104188177457609796891514238127624388055941234985730281285081814677174709727240942561799673987364237248849123525985101078710854638103899118690214446364946056972546219475085788078399977448530002810440004186358740598460150539169225870459749508593321256902005189226201776975808709829047187043816627628678103715358163130996179927576699770005427558155367407186453658116239480441148776661031463300920566206439942982117974552317979970703651682897202202164885466950806265160965858006779043547501455209872986239707787739304868711215028607755038991148294595773498122423815734962635486771373403173973857079497186998474426348042326597071738860938205746717034035925188590627568672920607337448673604228972932089974335100522487633252030032812135098875992452358132419376974218354925200486409728329726464125028354466652589913849036820591820358051602107190103885468390220986883701933694493566090695110866494000972065875726961858039091679900734999656180656111309261573150199217723684175405040196198095343162371895256123919275060858811862507473842549200261210530285130872233079962198171781134466242866013205550570348749627807002305690217042315942823957924073904408815916133169204945527337731230388198042917493170738897553599070401182978780996734375975941275052227680157297065238612284834175982901894623959031379208732653829118779196738578418434890522416251106704734863198800650363127369331740782109597444672912793976471086228577665602616020878956483666078122931447715129327609793906395358118621433445661481575783710660594534984141270242336746652495667938994933834352619495782744019397311626303327533463977187118082692424386355859202987842328223303216442003861404503760787999944324092166255058809782426983843796853392413627319408851554841792031580141412910698265499457615433778298685479644679874117248731192576576865754924422534352356468887255204064685306242380408541884891732461627807842419287923203098233768464042503924881835934200832183213201364844573070716635323348168719080539281666652785559623847886124162772828770817504245349017694758745663630067712311412895760432285407549033641162689678028027579583934930065123702238657728205117820668908955302481920758958658837945002542495966425832242910219413179780748241030982756729994955165280696724342694355688726711511325456397118314395790012513987319029545320061787988600342944885512372545024990533867925400017818781113443350585213099513731126480357476782727711393958943409637153597295688428357395327872986124168090523065858526235038335673948447015747974912155875629729787036749240416189875532387065465557652535675977951937393933025937602931547529653403419073431710220268423180083380384355910778315841621638707456840159212192599219545812161392204290762895548787216392505436543944925979410006624922786592710499965009370649544014442658547107351984343534145873798622342830679058516379568891578403825843245574594261970559916603364148035112101606315144191178081272844623880524074188608166486163412647987368614243220064744932439737962160416467674067352878333790010046861339628938198765756338579326446313347492983080293411305617829648267981887197979624878324683040384753166884520771900855607407246886868179328063965510663102970945665935219401884179554799986594315480076767619165357467534675614618421453835430011824111651073517188649780080733015769654183540738536197220688518969555310630372861840326109205717788516956253866011835906927033864080582377324387758683698750813835624527498334652007777635248111904446112017334884246530198627476321355585145990699577071729707076515918058745027100146949150447638847189682194720416687699602982816104279178420562179414983474382479377425710501183894321400094113336527249442388922160550005526230609091140789092880068597147057450790083710443837719585060620109053587597666783723501360870910280990577329209927435253092187046268225416488688813609069995398159234676187132526979855463340631647095451003750027110412573464098617566519899887609198624773395805794735965296571265025358495436325559026982938216834577341809950869736864916494966705666026197352653975885967635594591340958426943977132720289843273184515189376985880128931865602863329926097127837191627274267477942759401144366659023155895818464031908377881432568755794238926922141985160373483747148031465418669161961389110011792350328204539224496903028968878031610693386920981288188912251631561737579541128502792212819940092988692822966502055176499697764143398649382714518378088995170222002037442228393548112498190104136328582152672420008005517725710865487117181539451097948877219029573519168472929095913149344128938763448630800805459150726172581536948143427562283741438135357069860617895919219696810019629200461735549261469669811040380184892573978875373831006610180747653663580795066727887138336617465383780593046139363919382238290765108731573062884822179239457960105167256070895573927780318905141124692788563525261571344196470885498349340695499582060227616845627099799145972188936642492118179610096441093267787512215585016444388605141558464467853265483982064089927586044704440044115964762320636555806068305916698613339392711784681295111281849173477902945206350698816625007223014313370851658976263127021336466233781468560968342288458934465888141734317856467118315451454963527347289440956599681229013919908378321610288907958303069021529338474843362645040594608990621512541928822893942373728794649916999042505228324153549881762937396118513725301661703703266518471505600960416066819612818426670680749427227051952885056753040375617491568544152410205770918506670798211061203781113636989195094340190657608680574608905485096373900763773048024682522399112313172695402399817281533293331128316188315159901852632819910025253768294676860468669180902515088092768206342464762633954687814033756035740151355002233582860827522999994837259315597484269735872893014633461562242810122591944215989441575826211483770539343506173473903970359571809402368770064038396016807572891755843557259398020029044304514238359795877444030963529854830799552688170608117176320106895777525362884973154817739012730818665351438873236018781237788215088279893255636775443932525936733511195218065139131874983104376492626491591635648670541474274981141213538088642639937455441467603158526245501359049939690084995773599420738252551060123331775081336742164167440429199484399386608297091790417475286126643175748143199029629145605156098645183633166093286499273841766840426008200820800948922650812300503015730620263227444386830215694493132955458615710324785345094955518153618853642744447226835870006820563386561527879272599567591036383659354216452305234529793299575216167481668775230910844143294825069618915776807300419623974830570168754031567300804580231333010982117808896450025540399313841079759659489001247564549422287826634315257043390650025878685955954915034791405279435034450245551908648744801859639260476191518744403033659499998639486965163073978301165383860689445928293367204576623844768164668467318954089144015121186971005371179875813691156976667158642896470746216848671401769676428275216490768115773584041486704154158334065625456263043239945449858706855248725653544094931334069774178987289404560537436558788672349247330942749400225803374603216256025661313986910512125876683448865580603754344568698003752961829576316053276129272254318811091942976081263363022930531464316517483549709814175198226407805929755615770844235479632633967378297693128601817502776048437585398155108030970215024595982262729300411866726883069882167375951044047881921011686944894930857761461482178308605469154096165691893376707656453511397268112619559580853697779560538799055162022329233352024277728432607862931565768346720119419644585451378625203058369381788138041891779758649785745141151658502857955966920162380822540310131389619928019013767485793723040367625529699952108028894712370194553177550278194598943162374440839097779990911267749938300880487642442261960896033690373786983185304171010051016974536354745485812345259940941239499359164806647081868295400866407964756369515673509238627321149663671384882693195881680997808203650553814636590389992810013448208357783304328362869216465130758066843483526452473751501914985392949137260966856395157499164992789021905894917181138735003138505599018508478798055043823439745163320966422518964554418591201852529496800188235171394166464301413746965861530271734329846183246622803516373557803621794746740194160359151717299635173604261205971714740043707526049467050712752953918323481137775420166432450704344877468623479322901502770060926798189704054691544002574291839617738272394000392394819885873633774982302512020006319491331145045918739528157568378215457776003317464936390491766004868909921279484211493254271833194455285515360794762868556942935850928771054858127107311048173280908535125690896994571491338525749749974594244994601371937897793790954023832942895500730176141070526723446485354734738780391820318288410380043801677013721357716500484497891793909528336132095620152352973655008647577744863290272659755500020492456017851371692894652808981146378271526299571726516331459078488109417331747974950281166897935616309672374178337277583767039938260772646826794550613523996469479591383713103915159197861122264725595682518195257657907796635731390744966698387578561696897144181998531726029828541706292848169786983708135085890436007967473447849325715125461268598886094017335832169169008400798736505695828838246236863615222190042429896592731577287112061609751334326778704671551913750732123378217873830641105926715167841710441475035566312912275674286891868722616193262034893627064621775706872490922492085787532947001666570652133787406064708242859825060655594283524615306442780902928791372794726937229156907679438361826792126363989356632710576514354115640916331868855989739942650034448779367475878207513761547227119725008795618372188573567617464797872952591766810374542175406197104180659841373659892420270235750971537058848440022205683403057085475456638477359625405058985105434252935806944459041554882673606005980499146647900617080995563705782440325633557369262136674744499576567472911798672441127962345797899271252719527250017434355577089180270856363502668047668428939522108754086739574334034762710135710679383242802434892857588827696861790652481673722049592063625038231335403712041144583365755413541638265705623972790780030386247635442883265843235215481107836695581911556620420165030230398177136081973251869237958732180365530871114811446110013206070071866381124617368881940968129944006513958034525072196996890144887389859002938128590834402599750719139721197879092092748452429914730849123206013677242132301842730006007445976570685822821833717610077602351387969848017439687171284620242565107668552140253296897853100112998223808189395847984868242967273889372416930479507258295612352407495524725906897105159985667155576640259852646073788066357439483403542672921542017934598051082904630439719819097049067329610934724356034579936487637569921825215683723446113265609998562481467123143788084080622713193551005626673670987977404930870352459833751571125865865790217583869472179774860598935004887975824730997029719717032078696111142367323473892258710389315282132299561176630298911744410095279779017130316682205767116354691352416606752302321078699691640496171669638991906419896896378742258007672300787316186936235255695925000536968421254833950392045619324420632139823109273140711097437930854806337981797382097325807275772265155077116188703720753099572702752915439371724384575567550896605430246058053192447614437732023046702235647943039791526499229352943134840823065269739373607235109615135118428523266591468917127082180744148007431129413363947055346785053117455701481080119171262260114963886602128065375165771757889696716236803281726498484936973481274305597182448528147750519552641554444909687974870927541773171407935229084983648713993063611516813117947687248502304959259600842782964827828198245595773937142771402304583798742067630213200554056098021916873498626794849992003669492729603521937039181559937419222586630296778639931943233777719748553592439940557836955593835983868147631017064450307323193099358466758745140287813306702363964040665195824743223436353493677174651890613828472694356026020169778402287091687211100606327650295628289564909835206469740580619944393116021025370418561038889694395711248513490166159051958768325662286554123335860817513242889104182991140268501577782222118673558617515911719039010323091690842021313678469647131759097966970021236868325650063812002390248329319480433956719665729897508235203000831984890415234950152041439705234204849622750189850693163480667012588289889868933019851986093293842404228033281625519889246448743705948584510814120176240187315302498227615013214456402684903635550151600862965668674524769015852938285106059691909203171162118007736136230495820222103177392883049366095100667215416054222920721891749827812686936283749115997378601223819661735249625129877934307300481189263636235848963555557010211361488072254697378324074863245649349984151482702265899678196783098755359540110640084916988030479464366419199311107614076926422032894480551874866584953257217778404180103843128160326815469509877781407437539816161373771944168458651481391042152499684087146919854391145137485684395009086993523848138158886760700388367025167303770254027561630600221580058514654544711976743962733586377375540335708579281445905716623997209824417447087541942385325558583935496648415760531620482566578942025301551436061164105296880798479326366092353878812178235872848199145624308589724778724596565811399854320033605473462088057313351766644920051358294786626710021352165053262464195912548517466592829975787362348667072256331028367165816388680873463468426239987187163650755898250772735794742515252414311798528207055258188025280600741420199874369435899839287787391963564993553129787750189933069522904269284391736211595121689447650439356685032020875199110747780391944166562402569499899519435478600749755527825968473581334450741007831340886525151969395665187333842984033420551716015200888871750628524138928154734426250140246722404164179818944313897397043463299977188923729045571327739172942965827433386725044405237767275036082453369139324556927248008075497887857676526001372521239485080737176933866632823491266167926306971156350078089369925353708619856707194020198403114243011746558611569135186520482048470188333858703337566904524244265888514821060550465749569882750638051125745252621267481959021946689756441816982510400240404483388249462068716161186557124679521803734649429744208091945079028007321679245738007894731234435872244035185648192298911350735490251039277138942950131281101735450149653858020571257665752114783319036204367972937069056649898271312586481637706681009172425198698814778260139611468063950856152661713705469636541635518123687330893895020042776346231278481359421321986502043191432943131045333087691998307079420637487409325241957291705614847560115560578779447670720645004473931782074310132457465853391753768913871006902474755376542838159297608251962465914404139848446973301802840160340417449305079449074137538691192328276691864950563487675312238981168289233803949632732758476516044635416103076439359622717433761812341822886717801284066184566288223037421641954851105149895856405444818002027875226713541202434789236534423867697035268980082260529741151072755843612907557342644545693807979790438252856105254150619655825532795723843494768695165335512410740509374942298843030116136496568354161397266221097993420443823160314004172570771775326081837973734111429685805531739879350039771278367032237528885080942729990413547245668653228635710888356045161988679140465473227699072127464911205223301230449804999316251122932894824329441051974856024585331283135232964953260101595602266320223305849836266755858015883698886651867278474885463322404034371716297411442720318103528996015046311863654280344345500303886251550718245363698065812650566953966798864573912453752113669600427946462414696976593441760021552095785828264727414221166628201912590444468131883203255492551156513467089260072272509351865958884997843162739416838282980112037439069372291914783143320318447470372063673945250324660940844009611603412643242526138752508543480982263743755882817077921829312511673562671611613216153131614400857251959067664513066780744910546106014261349344055269956185483206831643802729099357365028523603842572985894955718960054222309245135943706479096018614015335521426613951876971416056148349353320831546739425561753984339937637112397260304478249073917343518559799718323833818672451494707994696906692810150058946293466219701189692118242062698753144787188107739027271977722973703555826889804651569650769235947049055910498317839040760131330706019683994571471622246642549449758508060544802714173206804315783708458078711633227443488888544821109314310340086394315037800529125196065352435859897969524697266694093629392130555933144562372160985731205477019617296229339979681237287398668365720121898796533193426046441926107368404569376313435663281114343443972504550486174950182291382945746766318476652602801513021894969556144573709231271566763762778514352588798521138154824298948695255203681542527413520298662897983048376898636181373137246291207015723874852053333498148600510958125216436119479291631823478236070549078103165311654330736844507104765980764530451155424822759838743178078072810588964684581218273036485834211862324044455450911867626669735183547898507755012551270978262227014073478821151196977587288823212628274758537196260583448590297223674364172557834687204172546814067167411667155915768482108689331016694997423008120120442303085393576022733038092368698512772915269758938934684707563091541326045499915471454514492999705525144161858239119035726887108476339289907493070407514017009125031739266267590413178169107438881135984893910182151257354008467525914202383178697251577156832846694277788502825350178181400241235751285583315545680610388398263973262798440601901274381759124131746216139113070937022391411867002199682901977084796326014021698429335275971779984000728832256797139039791724855048334296421342837157533502295101931574606370799322115109427299398234935471418550534328892852086246149274159684221096723240825992861082569585729895240601367063129362841938778405084214169387070644382795786151133090609513705201212972661456701076523848211304558538765151922865957208330311097719237071822452429991207860455824654958812926423095619597312612938109112915392637748510343220814023426079096144302290531167091650484988239862606758668929798717306914120136040544150831110323056277462196775746752949935370481770049747727171862457287750244268051074312938096516339287375864902500374645327243442282852193668933232663506606498083410179132126823850376714471118387352426697834386991970603798043881757753464340837723126567052758487122023331825088382340413819253802810965428937980837051531210286057866391074168823698679833681472887074748086248612323331385610862470038018289133765709446427500045727986603630400866030309203111458225752170071213860252375476601458493195866836216587570023559368110347633185680021293401378636600446015495104044557007849953232269337125682343190768646848859316347836158320062567494047825686593045506451195945177660847123224022756564175275696297682632115949273739305609973049804453448706530922435496024651893306434500362479206521634318851246027400443337392448191577669453922429879448649689313454923336262593665847224660992916296469317539372457482820893512842206891006730667732058704923533028636890493438868826743453169253367710982342256473797306728133915322487568691733669324494871195797945988266657469430410636087045534006551086003330683053803051957227126331490940090674892925844526919141739362855971567261897813132964793157134717346575027763961854039461111403959964756248222223206588890445738032869799804896986975024899500001515633501425958158504516042096135337055561567917598012169074612229082889746688238535535065073802261266947590404404682643644345944648379753009310262467468753945693155046621452335730172505499953543556601284731914026313383351814838331237626994849435314919670814560093888579884569341538544854168624734141421729422744149808277044773564576365105073193808209542617412849493373634979367807204644308058174697262365123690896246924785186452703948917469419841467551453914648869297962801734211332778113309756979256641868594002101665857366970652088981428109168800044970083315164610972008969628918602419297058009629797512268225726237618180266086384592457008763645859192238914659056784091487061702332719439896931876384012805314848478356436642020381331918232495228092397658214499184853617337267917878924867068344442588804178914042498686475753322683925205235854235631861630868738131912990422305735595966072078422890337257284582737851491930590246117771589506141445947908157422309803597665313817100934263923200261133041988687310370384920201268976555307785245683759799911707178535092124227795308666295121649645753887863559891775832299347700855473187811577169269255431238102408045622911735616139068849149682105933313033677183899424814738804177018038407922324491341779618886264442940040375369598900373481138700840306736203774260483446783087606408891214296340834296965590352079068598924257717233577301080235788994014711849016375752143162777635589271220055288086187301059579885215004820880183453280753590011808320272209105883129470186304314071855888687102400647001786776527471489534982197742613109164704624470216314280170098826339506298355188329689508667455929492266676749993023335933197853635674799386566099486960504324345874486965349294883573388384983627595873089439812749355940970210405292497992482655964895021779451996441492126998556573279340173658570072727266936366471705911541687217811976146086482250068277070661075138885698017950877208822885338094375898226406823609530294464801789222338714510496980746157949389152865482592532048204557575700277622228882564941109857303845236914339826082500123987229875055237619972732162188277938861380604043860410206236344251701567334010082533803626172984086975348198091340282617109648418626411901946443039261226364840455993313707135981387899422383707453866384769339367118940212055263558779637954421401727769553970503105919701688544985147978202816459431046763569352834862668694254917963290148493041671853848868322451762039398656029670144355179621350295503792061429901013896022573830186510849619145671384671668615241095703570348745818992819207316668586619153911094397799380633953925450183060642289460697095229543371151605644078432156402355585686420456379520332625114354500018610000171314407801071950652665471474672946230835244137648631360337671330454342523693709999344077148133397015989520227046914207579874135291154148732054799485291560993207392085008993104462808579927741037666508609609499694360495573266378250553119651247089205853297294904742846325228073073699786753218845196376828185476337323239796562553604192108350368868810623418077562760454260104786825045399963627028386375913018992338942586868017004500850785039088856474717572716905699086950300926508639106075592746791768317944725424523948204466986036864897406630121739881125684121316026579537738064303057254750493990881915998255504937560522497178547822126036238094481697781003186204529139901456944993796034171760079478791732087224667793895186522995949713465609459872298246836026953321098964255714949363692581843184912264866183361228719041251117112736165849509761922656804387364395237911949651789022438827169107071479370330719759472252250135394608888101750961745202220993308627738245213317957573244788126028518127130336748220222946771194048305615774310366150404146390656258037022119466703937499210061206557432177919717516216021271313086462170996974803944806920807395207219689010629766705083324293547493485227865184427383467822863826552604578508604151117948547251308791681346364895089134774983887369223884567331108308688374085941124946271917641597301720268554773797153605692384385781027563130835611556696306746462899828590458968010371846812970887305430074384637615779572279493629554904156741743235759197840783593821165800696084642831059736221031705970654132841073224018577906662909096977180096137970213277454746142330787463956234099686415310455634331477222246891401797650340115249887972660172442729411104160903947233325044996751319372447635397508526806745773422263965131100302430773116863241610399045386584993639773137086001035827383659938112108887812809210832643612824198952488685456104377912231780182735453558779226912845201977380731013367863920475680902083812961737657399476970529413012194772092455341778803058615865423073777759442071687155807787944303872498715649558253038468334279496837186884224041721682748747006900057069833971445520479196050390419888310250991558678785533162338104085873192717187526094124607270203800732435384926328097827558503230684845818210892123669929889673111559704366510296436781663308950207047137590019981357873531524319739833082333103700958556658213730798246766622393249836033605912680449399405299443689805252862836229678066566489559352926632005084805632753263018921107240954657137200695311028709856458493009998653457295883741273401305478566408606379059859332517671522727788450040273563433605085476603385912976362661996315918168439034379199700582405154406003598039619155677300418572606122939064785295063689334394030661155261640053324985920978968884884029439307450255299007916488176115489333201404686500578536390818538757160337876252204366462279298651213837350661731245355324428866227430108430507206146275347525332778742023674618912659801174921255424032307526329689428544655797007085175550518945700611296483416915202806971352515395495894899910152557338275195118664726659499759953532894281931908160743350539234015241717313711334332517630375600394994171762409854669132981391228469497770809483094264647274905630635724498331080512112689227775437256812325063789009687742462520223424146060253337883213493867195436423120536202833567288751933513744199385352453299196435792549014040241648261436326836631537643145221916674370913608488127545322069669014482680311156579705796363965958781553522667364978501483859584163986581647943914179462405212918025655682955489970148781167358115121735041430160408102628613350077639183405362419073676276093836068355714595305484406856959830714978264853371467289725288620699320656951235422140849455813469930527197379914554196685556546984926244372423506179279055494127888498399144644997465444427725694618098483664192760759527741989199631063622577615548577879267972543717282684029512799945943163963653519121835642738246803917756393099258332259050741937909874094283523904895190486187940192274013914958364311729861778165527348085828154515402145351084439262229480531129322821715510301223843487302218703906155135256285913926977334399704931759825905117090651398121613398947746176922859134433382323880883051717305804445008361793283781438572646994114314320149736777272147152590076099537174859530732765643023149996566742600861489463432023588449107196302003779863198946070181796363621785424936489558214040906552499870451630370218278552829934345309726411018998831850614936717288850567679626464874103574103854120295335662078185248044129856251668695131556713463669243240367847256018191011958235566952362513270807857386856738136813946754219533400140976378062474770248978021377257744266545031097483628850970554296617252607146683050695940155613912294564810728274694582744248372072084360693634363663069214941022358368518894831380447353081317270717017230425140095863871240268364135446988634962895882376720278259952983435484348032265759736321364907488029832617609217869800116601582125094822081618032736912091114821219303034296231979058648826485909872560363506992091963550157630823186427287992473703971067917664093668949802250461424825451741732756559053499174804488862208226500802566239751772571425596062304135630968853045687839994058954571840936773153375763792969482546385265165644239917082797344301367904392500380383995568975573102234311073896023845130791220585194952093553252083398833458671016968567327502566677844681450404912740879689397795430739486011143304208411427540378737254942000250751604484635553072241981442221382210764766408280771917502215251636400816803553997180696949535599006254042279640659307925943619368960938432244573060079411630683765577654275812272128438252952123403072308692937521742604062830098065801021744884695445136950290941530745717902091735104168338489439786084862559510843683895923703243581035196648963647529960685537687463916013177373248420894832711694181357069394797702774926863900272227381351164942513547895078041589598835040654866239350962798030883888477728925773303391952893982197134177960384158454565600665983870076270336887408777706331867240245216367957457064570122126488974294929457662009761586039400724142136188196121647916997617449383876617929617741350479873924026276436851719462030331440363050086382034339898383631982292283140801588464232876613887078306706561314398349138108392284433089292794634704638045189170015764122223344393138165264046465190517780861880415177147781694068427842753128544359530050074556420346633443395879181494190938264841066073371378892339204101601683430754064057641808297262722506513922001110315437358514706682749259297008144240526223058541175051050133363395787182487720922490109190855985000332010669163541667458013176249570431374478628041834368914276059284066508235236738129941849114450867644004270511006266522114836958145051393695936482420726022332345454906045815718028592307395056432190219420329307851654220012865706987489783543941966965622039204888508645665645122482036198436739712956912989886877672838929372247297195687238108801851722967608893991645902699633392510418855012102497807662259295154772270039650845252170018551816793374463651973597346559570831952240747374032736582389639540717275074077559470018776797449602170290988185091102728588646197213399980916864328335539235172476950000689675012764641886151851678389139146229341460862652985917762468792346669670793898557337324560829517528065026556803295603212836522154155549865468857009351163271474781143506582592451989228126973032225178675436775281963654630470125209989458170062689450144777755386179829745592563461405167887186317846832928131281762807410066443598390122511471039748764635250149324151607080265550277123524510824689772749528990908899496540352498186499129567743487608147151153203658158598702546951776956057805451598704896418743415053394110998608485453762914058147798121140997530613400107416160042728976424380665623000393027823125980344762386795405052043764810235522200213719771403238059358046900348185981050536965514316505330087817041591589514855293693492820263212034927489494010067410798194109664371868812239596672914516593671707873787366835577786101106782091360428949874115075202268417068796143204054723037054253825344590137755660461349109287226784436630457173822061426357004147589520878360353750811459201834379868979412440683733986931297699323911237259781895569854914592283006492404935972597827461655274449850314941416011079942581013127294717638250419657501174605349416471383390658156173878683490631160628173456611167852957627018528018134206869062396045318348877502824195217016450393536894507023365238519922029803854858292442007406043056473969235241050081334578167877854150585140514872579488780675591308603118507917306518030586021310613974903803874880740692679299646240693255253955091591411757668553780273703662720093740518476049110767391016077738756937726451618957128337122225376800957428789629124425790565116193430955003411955003909863397491413650689670802058293680407753978570222964310178994528317298302398409836490476846594710322796038779547374074825819022144109771324175276689463660020782714507644217647772014376625070929172759450023920323176581236817508524852649421798457056383339079597256375068763244130529044258906377221178713135259755492198227141057492185132212470954430998274839004018670446260835434765199557861297887244960265472447742147829100001752451900968068477647799787707941936928603226457229262091567689477733531735356396293341238726843921202363253863713880652175623489289189488953404171379576192094198183255887535996063577381064157310689898459639635466685414859080283808782840851095664755041362118528577920660146933573609384904702376254811331459624287554516492212968177781843837693279993707560089052950349811603821999791449788581324160298385618767061248562517875569381986801462046432698712783242241114222900517933667303531782830608113237858892611039741576473606409458717304465378037731730394366490018698948952483868315326937249487264331411211652987052450942550040884461767723127822962438685499099730004837754619949368988999212899432861435956400767039415558426688886165679740883032691790937848115181915696086462569629927702907758753847784411389315413108757085073331681510477926516273805156485525265870562820717602316728424011530684237968522506778290041177510560061310378107543416526972231311121250841788180800337857392496950509171967669448770169542573555513617088404730716509693804580091221808898199780377591068722263730480303436348688147456721903465840404776082809798987287077849399941488998687332439131262988193234068830493524061158273182320577226822447772933254031577227990284552778063778886178127256025235729107783912071159846265776905118556680336010864339881033783849975972221512764468608175634355410283595347768896814806904413282823548861020968630147686237697983652057576461947958898094033312200718871833872997581501530909894357215557867435284646053654358505619899184515263690579907184792111084437916036609724208273190936080664947982249087702805193669323933336032334780322293483698201117803553090120944723203980721397657073466196803687753586374851888753453316397811210153944900716656440936974784783549237754302817414319129653200725717196603550441239867859556607850191371465445111646479685090591343944915159804853914868830169643194429237627637954946699913652697296622417846887759561656548075807780397302644621183796667535078337807338529216661895955800321424612039177159260688148478420804799374512149773125673815960024882982556631077676074690836033338267343916451630143808148684404816353529305983680585926964555033683413452301397649150920411291074260085544961642668170078984280500618419100560353298396523400104099668029229964870188701871313863155631723357662168577611859578580152481090084542140297838228934332147018694176416007431184962546522061583504389727341310710542788584870343295505214456662778292155614514242849707030928981283440455964295162564181413741628964332857255704428905824902835285790935215040270376001446969083245176708416622179292298008968217932974351112236665155445323618304269552286025122905276770483156733510703343907019320180857525939769344151724424681021289758270795856996772309998271109118461303212912625107358425296538971279353581324178494507439257487165758600252186884451957251382701939198977897747671938694147189866061515141616824523514049710357689812432716340019835048175854193319097253315085624619167856657717891800713502219299170378194575210806813626414692556392614534059830174907335949497766145126295212504962948026488326822967522784818085159715754680030200598515975670496993314492268682760277631620538416232821549549298715585623669527013272648660214023568233798386031304062365866030461451383904402148096878084108368525438268797145631516400124462473131776989928997372009614209008299938313979858304184328123496758425267047614563554370882424662886835080547246881487876206727319916385866997019688655920971416845268603614126228311150876175243533552523789394588646503773209985158669591629167642764214951561165446233760911504056397952218859357839585325095931449310906529585634852103479458232421361528409339856337681111438454331761061546039936007677863518734093497451476432750524004074768563130911360539466688247518893712629599613400133684521779042210533263601297909817190305265586335083201130299444693142619503059401503129359749664839811649683570351120898144333910819191938167223284588126976114241451312651877229661668562878706194845950765913360996219316820672617016529107396609493909626964959529870983460473495073911410032332986583408432966871488659583574574989377379012274095275511874149780978130531613246008352519143371624657805264668321661618810893361412021516704726081313625807801529189638285893060161909980442677076444976421250623940870637814514106041148917531167423565972480647202397899160938324014219835745037101883176308565277601837031354253965004823497730392213537842542001467805830457825265094443922898877726243956344795284602304903460939762912983645776654603155063461139929827201059693152882355308635816674685738804389258188584207877950276667723983383477115623860640995128781290656146595707979428330348061678630650131351967106924718789469594887723329046471071469714471907352187785109732186144540955074940945748439313143967684071248056505784134684378061067917928808484393187405624893347699276994258765452894274508269113566933916473064263005644101163531965632458854615357042861695300393270089918249692683353241966995058001009603085125036787312191996621690642102953699252391745333549858981400418473647036236964873083833650086275026527764073245192409798808945417334301625405065130166389322053706910964169906704878396459617693775218975823297926093812090984490269041530428339591100146630609314841868902503627764319636168414675606215886125179830094858656454355776971524373554623152173745907139514419192158211318653313027946071444896381293390593457636299898806167567783073501899762888400015408309156657642200127289722596568339991113712394885399726588366946759822886832897667271562285082692290078352966493941891272990544699513120146789504420543328732167479560723049420912046019530832335664227218471580488835872173950877850400225219929352372053725126624294493964734968554725803676665344356358636157046145173859702742039783302321575903184063119578956851754393027538808176745612891297113951658552328905245431106388089358114491378186366552800766279109156516739453268410600786155599784320161439951676446706510459737772276310137844274887069993046255651764546481646395199622830088983469955080470409598404815386530272027000638994837553122949651513836282024749172715922827294109445642215704998294430230886430076322435515138877896900088506402403175041677230314097734564096684083307082338354684150020293765273031937588556351769926376133066266197732306400385180989716339630489968788649601279315191955161344863699058885909549749118085660861707006901103487625447370849934590649564111734151509140375105346294079882282359254612311504044949156641572652070156816136531918132308966622770194910931619633727631220928018390652263985407224476137269780605132054931253446446905625677445008600835525375687534277042567514913939918875056132440685277913588957275461669763557465113239650099839163545555336292614371963531991973718334166195172067067194916277348594345713756822669862979012820887347624918459323300170191255551379464167551848353242473138012686402151083824417965447294276315030842617933211271438122268654311440552537898816801556936505734228232552813924079184968953749510245083826132446344452383369811248140911239493520991535316115664433918378161634947561347383225256251426364722599294461819824651644388694538409907396225675228813808594080780106903527234416214826466237175359126879533230276024292537583732168549314382854693199959706831292228304771905580559615252187641258289472278878441409520873693620936760651991689550926139447415563169815421496161353250698550958246735550468017230583270212854057613183733463995653290033340637967163202538100711682520106719869993956302592304524527882779484670718182835116022954486322899748233086535829263089179771799566584253686867711461912835357422270979120840605667698716875475304365309814460806501496136742332956466184553715455526512121991066519337415670625577057766149594568658681699206453798161775864239623655566306626902823485681820166775018839916693181918965772781502373235546248695300902460938552889699308860386425570953723061265912296259417981329240210710229905523748281429121529950461798187414716778443311720741726872551303834509991167151850163395239532195618746295214362934297992814396545318919068273787103109450070309012519143263485804269689299561253306390634191005347579853339951394375032376718872938785226740627812030697697361876420215722925640337345930077836592400950744900202058648451423252264945217137564788328874841241986523194738509517706059989501806772448118725939692931612351409473743828037811529660301909744903734330004312130467661392812604060829162984956318222983704180250522288011569994066466684494498954368823218879474411012647226888196025746386585185514846985388058747117800231265608097094759068228787997201121903062833156473785807263433597056334721986986383442735987860293131399819366848993877547722540025922258665478926013729099701034155431751706471234645474657936992626191516587011033134154333075456499922866985197108963418322436281951162079594964535884369613727173989152713178639478646043242133446319338221825293316623483315783685654385489220737578950543151975982513414420351124269301794870156089415868586779073276241948867254580437876444143345332158623215707220036399945024996324098030564762211100598898424203093824902572311824864080466916111916397111206751250769388772826797961133321274941271479256990833724302057269694043291119380446914759339443783518395413579797187265988244215668450934442083757201567462853559686511821768548039037705405026207006519403377722535749304302978149566470306068020965502887652256072918172891533870760082540286268219617356779567054692106727122874100743628966782740997560153707650464311891589362730908199985766613877260809738098766470398565515709302369687857150189635024041647394773799806728103820687005240048846611226470928112524538877418463983624732589168972578768950568515900304919895099048478840758563449583898865066214082860847647572138887407479705021193439265859698250973310583728238493496417105151561820279093015488797033817009675041326571509259894258655429908183951887813036578574043714619429516972359324579764951182123562777686296327246623779414059028439428593176581736143905536918570219616072759627025403447035751401501764828367339062063765110980179720745318282684874334184396833615826408522633222719928666339857252434695970029559944091250594794005955032022119178507262363044136943140572723458780183226033708291848743158497168779383472438041138304730141552768622463485908049017205754678426972352950722136121673474637268135677657240694800968320095981613798478368807497168276647546843444108824299594591616242207769143868186076050473153813278452003254804239030156975318342395705036686216634418755575258339680399993303859349115152916780202644566018691031574533799796813396526378363868120273274585839411191426455665502889093091562008841674460487018729044199179002131984900503373494506280613859003692154780416255716433972135825046874595854288972932693511295590855514454442881400425273113872255569821131479945085370131897004990954670278085705881726673035336329098942838550826194543466689884130626746932343686042328449931288660516806153124729218585321135527408523457825248809101189099735532436750598050921883555084955095109867954682603427012182456635532138346894691123596447101172298028234445787250087783334059209436816003545674890567387859879835497824399447335482866206022502177698876053698028022095015733370424762942897713565082237291104907059760847906359920176765954618609479132937667011208925684558888214276669216927874016575504385153066312661075720370837186778565257694866186907764300665377631471899238687590385437765440235851678764671277258178808711308163183314591919710516935664792637812181944287095997402566171971629335329544156675310421094822877022792928680790465485730788269638071358049102057364949305120493344435442814719865152867144493361536400508482284497802423808633406304618763514559041510943224535021952015096436400220675869117479896272117756382761040053636467227488371329541404494093267597883697831824669091429884985180521758550260564822120361233991702333594444412035485421993522158293479592514313477571173335457979868027321901404167367727051748210930409446513126914283450292298040724401452596867126647627346800295353452857622170868131106433914497066129447276891645518098384288853251525132793380802889726022940768149436485418333926761850835109451512044970876316405810057025949707815812205556587071849688382392309309259929637274804369447691293471973715373737348539813382901217992655037126650501815365907915646367848470370604748874769274646212511550678529653839049775369067685394515863164886306841932639616128126416639537886104559122167659539706678911148810728331560746195232950354882099318416118324290658463578515522732966046595456964695497565489252271627358937760677150979856597374247683382282912599068776290740692611452634035909918023939373965952245665908662404488073452493260145670394537657831051767309052535652242022678997700764849742618409989617581734671399340665791288768926942064589386960867607390838901327706283513922028852283545662496143717372018406806728034586116240959393344768893223859211990988101160101471448659769093864582113037152260509461396824757216507927565855273713372572790883969053184968583725068382655222466583644426820060505949541961782133999692496800255569817931282784089408417113093333785027585182523438313289983229596490307457622049168798934807553659339431366296438267396679702370471755053072464088215244327936531213725265217301576756087537042192446572257466695333671254200332544625053395120988217268088577378590808323455682753433102850371738261495461022642436515837456701912438422868796540464381218069566352292573726055678290625907594696423692883347390045252328548906399638634739541886542611766373253877159795002998981319849215455118738437530825252746830403379391541362478681246596191974250062191321544605411820809055170443465418781119822007991830684705226172572981552181544781930033571534045964633237404676247820846352875250372494844710017197553901895300835609505921311214708290466196446138858003937310444768745980750461219112801827076002169554547222094748800827149409077862587014287877150668808407760284625815691053189702759693115355037785741380218614110485896096979272230918192875450750392305025513117915346348702866686977170330115017395822503357893687732268427784151280518099577443509666160585912323272234587411300789614261655943408560298510620591335383483826991982880353653355541965395902702172915736443034114962053346157493960290305989829821503494754149643346197844378139983329696409068879389543307397329063074216538345125215907314285580407829819302390972746597321934470852368957043014532070289435896822945047496213183329343017766155723013086754776678745216285206494077440114945868300185725885553561710588634033410830236134931802082486438578024450415936849131172094255691721416150622760410242729334698719250020241192727194829798464937887878802935884462742180037397982970223447014916897028655970115129269452429918793533992757009522648053297772560222222145510177178666846685399231522041781922484026498150151817726844766115968575982808260063942779324820299718947228898673412721007145326807487150802247814892414069401864057242325723877684977720316154311375191913361428490265321143689578478787615790441145542449933656654978562272339589799589668979069167470532771936751146949657166714502643826611291890997562704860045020741047969649221193155986824143330298183289229395027568428061220590016135391163306502770962817010910424756250219905887161259236897099969928527372117943491085976975902317324583511148040647173708541705185060946309967763787131256327306355181985976215582321211547180739051880469855954854732753670592878002895240540905948559538102765460166164875336922381259759669335611757230691901506782582272565789915740469141903506696038492464126584327396095043135092234283993375808543220544416877074350988377362173308930808923062346993585707168034700036762503322755628407990235695014284119423936708092889074592546697671022433813680729488897025706591861957714254340349868824017785697602370101603230873046405500835557790443661999897058584842102834200577195827756816966534220725747709439547079347129907645708408565392784675191497873239270134092757535132527424844634503776729975764715098984255031105572548467899886412275915052451595973611399740954537191127636191256939928957667579997575348988580113667573237665195621804689689551074044757019111784138092020903891335672043080233845753994621671051009953866637550948393371194421581085677187620397041427031447033471899769439774685544905001004127454459492443300395694496396997190231676472941657075329852130877500202519889223001438379911011937847788703649967737490101796091632258438647336024036364303249883545397480602242561908888436247812253248678439197072230926978279739379666660869766070169459103860333097138837751991005540103420895655462625899466788190126183272142982153506296076678101731177271184422247501019599736465874840278301248259963877260790618333763719325866654182805353574444067332452468915184216973725850198544957197478312458867361917586196934397423531268837748077158428515955215190637723622832069283895503951138063540549666157370495819304956490044614709367779170475276009227068671802263395270012890265776521440787527829847855393420188735625698684015688885550931873827612175957035820987366910163205353484941712561312115679566754675018135343008884110590607357994303400635680113993128977538152062877660599483790445962422667206025066960889244161981100589320334982941962583292524179531808396669186823248916517781816484726377830903236809514577055246056586955875833620554125513119565435182240399423009845237440293413376328980065628422712357425440602058260256507711877159851998397031740192981891823505315003282592952684154770695420855200534045964883614962656937417179759774251778579602736509193394375362050879612490932218698913504848668892323387577388564267948891137104130442252692198414689087094197564050327131776385849521395338369892567616890913544540503405832105688493983113428167581366764463022354501403315395931358987373572760448637880129853864628329953140639005157354712806835386120507985356044078236456187222329453406161805944106150419128118633968658063740834344901897570145149648322389651465679498428066545779839636770669216629264032356880839333448881392021549541550061593755461362428070854382647585371007883328936189721712194970618833537734797288879913701363460412805148998345610393658288793567016393628400849864963033268924866082986771438883549705847509506982674040327389416034238577843209355417971082425594055268255692828122511725637337561796117611432960318321850490556596609772303196350837544547553444318227323125675492824691663599537451809983441975810713846498382262329857616894369696095410117694954785133512920157869170134182628300169622547011782289470742446922446658762784832520705277001043879484640216409994349759903430553746739628712826278255777336888085818228097168580212589723363649088915129570103735904693042103821665348161806175589509107861231672410249365994434756950446492958404447042445915460209278254648064928884005697487965972259335668691836188568941391092809369653148751134502842424592833034092109106538749763567123507708272127210597154220239595540761783936736878984294543358444160950512901807229197181295287783863101322982604332101664317204554845800908183659441322072746993383125155589209080473818310009608200270976065982518515967298667851760152446898598202808030647076567792729837729085711480643975107342442386887248646754339969726727522702767245515230908638123142330737190777648204701170406967042184286234020206872564971837682151748030526486637435659806055591367891168783151898892435478647244092884667659531726234200991026796914045105005691789122825170052415924804471179410975352463305053228214617662680832293394405271539460954373314430805596247982270120289568899923423746066030042418533046525878946023489661280193577870910628697167832146178722310831158260894960039214110699247538787265204249231647484768877474578073634690477901305899015512025877570421370671202692162182806281420649946840424657182169260847892146038313893505289960300484413110671907034870052662415449656190419292444731303881715378821987023094524770396304074483586906864129934920889356707147770728718438079904776317515477448601340161360588300215033594042615995983583259588334373905396704185656926935200478977859612093958388829268449619794608087038107670171724045483281515145099046326669211810087510650673136630119924511829719994667876820559109403761822425870879457825554564222865722989324831391993747063265014868359180068095603624811412304370381649245938068142383968684898172541388713580161643075163655742372959203830752336172131963044694105517709716390524489867719959768232300182938147150446556884483080524703711236623391294526657578888876754749976860471852414689671357364292100993979758647602703234170576245769713812318601650358690963871810141910890655430194725485023770723119472476789889342400295637997136445929047805039608424235404178492514511122831667910989857150838569790639113625249255706094415715991837018302238181212390599715412343864215910263780329382855542500900028747128395485841729283977795331116529274901137095623755312615138587598485311309869603532060272879861135831639819656346282934833468986839038230687468358985201138554780980210135187649154534288167414906560733088797107808925559767980498733905558894182745897679879779944909319282894510979919402608562843522852298331688719461451709592783398174827973869183014548635373200059999013968308277942527620736562611221954601790043675301481027892237967858648008780232899247200799118262456221074745246870030528619351047884533515755047061970657159279619277861672990934092834122792124797664434553833199855569893335895742984970599136952019933636986078720409895806529481612056617910594805378786426068601734954380778760993667715953184929423393468195243258651758458610173017922895015177556501072809664282641099066856815538851667785956392033976459126422760065808781210861922337757425203476773413776404040904269009400749370981913495615410959463269041886130809792707543564141906964885100032884814502676249478925153196291030061472416239211655157975208523977836580797255070001492751210625506857636948882850856950037204070505738319061924563443912938971268835218322694886415165720436602179028588895800607735655653337225709031096891745351618888415324458907081757976521641777890623848206309680638841474590161000832347583256003213932734619093383181962199949176357032885982681751175691043609625094547664583622123559727200492481586343968381282085922466802192935383103830051193285683444787941988161300587009058901576191123853874819075990343935532756582918892988853931253469946183313756074215970744541908116178673398824695007366655812036551956058767714020692982032788603495268357713669672719461794231192217547827813747053011868049413207069577099656357195033788908684524976499440722114683778837253450845007211579068736277051303037559550838936677016852227150337758755926441883040408415992387672884543496761867713996964498303652477144570488747708231241419852854409223880165095499665871203772161390108606755910710502214645814342681791659897455173543839678809856470809444292214322503913831572657769213889596430231436167408714022928282650280232823046529112466796771818390608419454723349309991445828571992406063853139101799684971943982937813469326522168715728501277375071871317994517896952411899069325331146988285572021693966608936759323087723880323275318449342197563188517547593852140334270888230184263906823523518572791798788285968060820705577666444113270472436239196735159795141203791691020114312637000601717500801961252782216167428949873727957138464860659234805976179977840724699256459360263698731895184311981072683923775877868191060612685957802074787934420334656077982741605155703836432830589882096707509186913939896265545330378259602779246655855528132217983904761899975554867395141826673124899998350472969607873578000104740805130633506949852641781673911993035021108374289960519936008601266382314273905345538338791779663381388873006128032616048200029279280199181084278423184943475337362791810332555153523669834744016723958491472355901553159629611287651916576999358631853022277152043396036892666217190927073276059862126647719203536374011463990594877777688100437025441597357289270706317553299862013934041500479609255648635681994556314476965237592878156947903033878985333196564957499060937283185744490292272740598433813740882106058419822029131248441095907607653020854947578461696389610012521905153145988138595260866229978620393615289049373176183440781435374218237247994944273260570413122745552693913250391456817511482963700900268426844089160056810513674547086343963187347545812548880062166157600572636167527159673213463683736636589994539951801480279861223476877516596456352770332904205710837795925993533347781128809607663920293104962011819066878150718468271072147410822187041610329309739337264296138897990370968307510523300482565153804584826753498022927564926720266554779641554491445481543731419078793705715201157266073899125543352759981727931499977582115165388506878562400328630087584461564254693659376514383071619782796036286270173091921131299727170531839870272593855778139527080195596489356446040486134738531114745913654145611086016064512547941420428384335100782884308970107700628701027671752278838886950049903452351940146982609039752987684233209283857765484802484724822642013657890849470908548349979279300500343343432281726820742573849631265625312673395121728358045077898081048114474818208481152767331417912552898897605910835742418639757897438867922102253964335599549824455606985620960849109742911466525264748443516251793755561493553779176599321945713660654203183474841953996016393743542288481154673584775647122718851542733241816413486926754489199272041856036733917641917772464484013632319662357197913673662646085279728119018805935220697736694980051405460760325777547881652246282504544123480506316774531494320850400353641050419079983845421248565885939282068305525279691155513602166531056798241447841662463193558502116690411000853193403436840999824923589752603382448454336958388501604461880166792129796791775484479916074251439576568069728235896290493534727589360164860639789119540898032677350722515843411662410227996979178108429356149831247701652732908125100971342141860817415291545892725224667428763158573757066490823903015356826449443577058342439737435796694716644668371565266352016274957959432033120816494332869732123082751990743374196003082881131507006406222615226334641275681979557737722205267254677768273908409992096222862802916638251704188096993900107977616514809063129723894862836749069735673208256156023124583134982066410258871915739221628273518041629154405992187139788116555770793720388547284230030098444471917638929036013998371783138043855384179300749484455886535934821116335413876741630075881750543705764998352630408939672101747466751825272109950517433379506346336356755355963143551524010481311844494889405216172561760790758560740420643930287719801605682709988382846617240999132592477778593367075926163909465827509240321210774306039648931749365277661498147190128912331863097590196889855877851750430937403613851830311191029412887583407043312025497015412647518484808573482491202631888235125866497390448622404670909263078085150234494800002894020761025297877809971428020596788107972162857651424738736151685364805623763130048096634309051166981958004670777246598935678690736779091348668514858542766877666824240883980728775945341902694697322265143526930660646581480064334721252702231957888193473212085067050363127471870061937630165025996288621906071125397887772130468949703463028836951153882679170101194870963745564837127369174540041159793068270424843418318138738381595369491990735299534177802613115580745630907726757861567743816317301398574330851009390578895095550495519253153550139313787407764368290834546515527162348776823213909133118014403920654258828173114520144474051849046674320050928215984503450027942982014334651695035989412949543508086701251169279584058658843474576924247715325279445410189543252074166415397755799582596652245836170013148146743837569318760416482911209866281366744781508555302109850413751992304186788075042033118548141735811303092615005223948970007049895258037818110474021568550977405088580879320537661438856326160196326488190527684823790609093108587974229415973066435319214495616458099574391523814078466175833551712979180953295475571656079528115549748049875053736882384150046251942754853942942887792759813157604578408060548036651298051345412672700917482794467062555869619211134859955333614682259410816941444406202361691799612723020390424988414473950198319078985977923505822361765646115215964776946025373186547362844609821130115237575232043188324254187853114417488782748079382835392845218169931354136998002414128220890271872162742571578861129960760889864089027134583024131887909403196254454071504867269823477961489654532030448642473107253524433455260378570411124202491662066326557754017763086264649547611853414418682412254137031674667361941022580473682463963813670941969232573303780831905881894130035154403968251069191349445980700869521567907943467081095659772708079727263831796812200864773342818268637661169420367972827546283016281191329930697533630113438798741367950794791787515785077141287268838513335387049106304108869353600111739742475614299539842637370121750987675456036784532618152987981785714160137409485375725004704892187992857156187442998019007193036029784096813094400966953478552756125010154769691782684735769843301807778414166640061187256431083031160838489909896493262605784743156957650683627414923382051080235220405567781706331942007463787917588877854466678775384155537545823727895868873415165265309566399193155731660772049063512354621449503900826487822080278662512059451343695058967503424906720952944141330673664314865824866651622499601490266328199336844923146015824103127729246541646100835493471085443392202813659465347944186121826744716202264461869182247833781723698207029589133679496866623186995726217473916122658105677611971891547536538953326244186168362433816983252365844378652834851978715027969068077585303344273762043078447770600783468229183774125017226129165942117677397714720014865741439994664611735639435466522472397265397194135634479309593391862159335660141023452693201705591711352189095420737813996734511815139035233446546759932945340472436296412580444587398702900404674564168799096377634608926203100676891391825936684225596571087990147727776185994677915510804560044988491778996981352880229092063152772195516667362122333273423026841268801848444218785717405438923211209538403727829547719134587575949452840635307378113318973575150939079157347268341185474209721916041987968434503839580697265849686424729664920930219849698748404297661880638614057118999958569597065844989420131908808613836582215631848859347849103189354914972839075421836766992293769544270536755652235865934176920126079135078800663962282824640979074702251741382460274690149181222944930752336070156227340601446715411537342511077672105794991691126705885313630594210242602502848643775101890280960068586524397607124342275215109175145168377456064071199421636008294801427425249204791511968190724765703849454906028260015724235575015305074925857195823853824888870762447390574819943632423936295589798945727280329869366238127553161816691258596732803679166390248953379635266439004579950320841766672107638886788823192423043344589848328587731026761396632201413723955325573317238367978116944884260894323584648555927105242645672615008826602259595357115208988816445385426810364694346382331744032581566474004379731890916793840805297982470777367148990311286317334766644131113166388697919903242206015346976935781520891589224188523920351430561075673096973638976090919396306135655761556845062655879104953791124614733382091650511975797667501786194497134448083672135002676890345452594960074427018201042854472722493349406208455572475564059130328263969603541270631213544961987688540459786106534433849704307850853213300510058210963481901150328678109263602928338165267071095195294464921164198809853229572001887031579878516460486276811711163866025696663381033860991468531275554286490457468554056537529508611089031687015983209373627596924581401083357676842707805990235680433992677114766808689621118418986628737326305774531005715537425258055454518874400178671337433672426188414253580378281130008513327768044463298699350721341971171504697322608435636820393340107489245902825027847029998170146027177619487444053850236800272767711408645163183803122982224992599155998146727919790729874307215179712831572463985669242204555489559538149247642488697916992869519053071754438701749658646740127947746139992665085031756062487026530046870573467656479482270940391980551440314518063645971517751397899158039762674626543800679966945334673369112029866312044760393723508788208181542517810784730380553351150618729384711225638582403367045794691886935229811208469836938260642058373526883308705555116310279419036203858476698752702792300853427533127962662676543881920044980449843622565994263588855940155156530348717500623002647202719484622729644499500145121965397228849284924873521939151527985167872602426538855412680918183820445379454551790916920710001431132636710824819978036981719808763105543179981162763390565881618476071541714516069613505875706612245927924423476812450436817362923949173173699745889530873120676565534000245292450825634462325651273825731455794834157272087385256950336724908341958187882073968818030388379373329858198485203695369390409718659785865575381615286011383577833457647370384793929641703745748208520909488715942135829696122564953177927204710709002854006836302651064973466197386466618868399172806307846282207596689102838632697355024708995159119244656580011667986098357581390327919964066839294517745034675800066157381127851767909142775672193874928171286421861969448623102343807318702072151556964169804586682623345585576722362011334669502833961494368183423945406784121274649901239608185868275793372664065931921621345691967422094973568943086688967224827195504550896172712571242929343510481666796505308942896745249215845968698175435898900290386050828245456298263781879317697894165855720923398112715841168410551179387780990610877110394036284061036487439687421015675120040784509922536384160737395769048041733341235600132542319344382050372166318701631573613234626193227974537445168715738504545969558934116820893309660075225010228302392586874560370531946605447152533987502598396519846789472307557165320172695486695709697121632448219711707290290271250446530864894699451897552838025859518424340318432898173590827331363039894034536474542908646201715926070957794874002817786878209690318599043086816109176518984492769690550213365343441411846919252110259854897489515571933689567171432603081591976694299592331832119766204558077628199121103126843058728487696601405185090227308236680088173981287018049142378743369203206025371743628729585166689531465934704261069954945309909462056870932737798734942093649092158554825552632028319929911508115503956723262966783300623805317330836597807528317971479775683779886758893030998936330064184782185558878554702984134143116550949198543941117008638700357757296489341649457254238831870222492937594110128098489080417818050226089830897106314032681777276372340440785007385065737463295764954001137502975700954889232932874122215059316919516955891163691505134661015366312621150366421479881422642085481135281835850464872509302754910298748763648143183469840677739314076726582448998480679764804317719704256509134120680257193483548416305635242497596317048110703653645613904843021650788945323578188759143478361143348016090272089417339198222581144661432224796886221497456252555681352155505487422478928979041655368996171755581148180765847028557429061790037251428892110900924785710213933233900302009249904226897635928426745214527257923337478798528273883216804157950045974986459853084075408927029271291479893452620531862652110159500287456023865953612166719622296984519257977080324217413145827935140978100632091586298619614004509443316756778801630483452549158426204331375921473248933756133930961097449180526650794654747587139350211765959747771541356298589747171418737127816524879270122871505433246908201069381480482219127470179270215605611310660038510252710554156340953263987295618597501665628154812327954381235558358395658224166330729417914162107304478473698787864184996851671651500301616051727079635608281037336182508564759781844100828169853438629086218579626285258818134511956140281780535478963229643019164933931191133075217548308269981880847987680495963640957424566130196603583527938398962924998798845163428675887949175481803281100421122245021758618819581526465061960193457554962031851379756421275016467989817834448612040050248841374637113562995270705324639968687062982651462692553981274339365420041876986822339267493340330237974604985056718660546336884475052916905618849098468907158258800099586881166052928994341862765021832015866350625497313753093003280436093315940688646381099793539546040144949987376521864070691245635728114806753155116896480296374067010286465770881094478139410346805712282407259989658333306616137203949707515669202984127943980295597963431680294407043069463620247472897351346717320987321307580606110136489918239007655220494123705546016097447261615559388349270937822569218311764512639189713140058700380767722832381307513352878942147695088615679194945469301072556667468970000351806332715811822129587766798167441952960579225202143795055540931923219094138241234113927752606351697024798921082858610191985453549281747686231266433606768278172891881297767876314230600737120837472727280683337982664275266135813279832195877634430410151022628390869951310823643233715708050403373880174877404370152215304562504117108007572136459393757258693634252419250483217061591607634795460483784361007934248318820416028111841692269404638992297989458636941992713844899064658599768484603456490629271449318167040663184479221276740513917673375367680082004039029851372783775876779010474770631294838833269024974792711615063599626754509159113895936577902550117213778557975330291236965752142069720172654045678499406947308515359327305603636135954479802855161690890977207184118772803745661679501793098414570020555430350805526825329732222816101811336900062219136851510913659060262362704282380282070254913791566407919016915990337980768505148646839224362124839988727331189990033149331768048859847625675293803910342476711042567970786999685783635144979829308999687110041627326112482471532276128490484628987464903912136924204274947513160484467528877628908405880936102343063100638565789552666978121450906098254295770206700702494924043692490031466798264352552780937563749894373034574330993763350181902387847150237532648486644653904960437738549337438958701291054553702696515839367234685732431336358765873086611205438588943729581172433039741932601387041866744314404457752224877237373528677117728353697190324837453305402731869171085200516057784614164142268786937078822507985860685248715194118523895872341096387375579189219248515917139814612142738184998508741843560239395867833940248957118456259973735524837697907108126822620879843197786688805142444564370251771437159799578196921823648590499676419705616697142594229007934597431387376152868783379701194535697653067289611200713318191797264512678913419818273286429133896483498520665776538940520506428446264889029179397934492201167921317701538107703868360445879501021210229449171441445406185817857180088754495198213000493308036251082076157546882899915646556002509612919587413820977863904395335755035161123289167108001833654471695373020009122071452263211196447213369052117803316081233523198604763286165174211085727184694201313935703975525308931303341669136821401289791848669281707335668341208715857995496986374824885764321581720429188894955472295740159810009541642698152259719301015810928114922721729471551925322939373121080665291348210330087628124277869892484335513364918989143305318273924453585557222657485482314650817947754756373565241668015806797337397065169771263259415397024633779102390150968239013342173552049866753384225433913469043485403566066814055466244199351957907622019641127894075513869049918987415138734738431104238565275328778740815723400988721929624346163896047742519090924842504860583881673399676649740630216935699544432662132077383059287527847181725392512582347429191796878480747540415945643662628122905975302705607365830634490056113617985223061356654573936300476644890438372539939676497106519232960322646578481793695872375790862250092310624037364226708823221673867034963928634587741267957489897832275056561975874559741773230526011744893382639409118132772767049643013142882648843756615688444381414659055369984818385515295275346801619283674277922088192666200339266214358917361447963978109230989078501122899519935720240472210882609549421591035272134031680335857725795150353705278909086475171540382102514788636709193300953220194082935397081342966656556988005045290092441766419136674726143847286252172489900953634528216257266096169276413933568692957734240324604807749469980645268893521337432514078957676073217520128642304890060661524201998238275550437507364583028713021281171448229735186239285225345216815324157245813855287268324975796982979693180423439799098987463060372890409278294113284622189779476921922016528972455255930693271644528776013000308064894886815477675453251028097726415287579158660250413006816077674774870119680422521300668203528321776875448399275596560027340158015702715439827687395288017743462284309523544275864977651766727529563620023710901534024280689211542959680133262252502621592500845411318421361896901249798144520589772703301850908296030620488849472026687736419977298912685038617529776164981716618290758395623673775142040041959671111161868470378447844746390216402108581547205409100712754322001997976483076612980765431904882331484728459218600463839150616384070802864913228513747836845814250715658359116555863827123106201282621788628377544810844954412566396249319846168854105121448336529972148482891521962642579773892979327598935210447850377638445585125840751113379527430346901287628631944313399171717199888339068098496670736252286262791466245365710653073422919110225295026879907383979427420809438312881933114284109918735792659368229033931423508252581435517079458241401949555751843723603147391849582821691242139787015686351957114565735775374103056615828806923712510595772325734992199814651811538379585054020182182685879540899963690704734313274921535009844857707482641405078435929589066439531497935831779216145912359430086389719265108370901371868215996724963323284266392934509751934421554403716007574095680040674047000442995777753541205221219407968220814901911707589463409328870232514711962303298911167018147721318264938347737224040633392092320565820872555783026701018838698334577280733535151366433569907945622849833827191635223770055352827232992278856444633219188044152885629330598604980341669063545026155305049305296430981743080645417058122969356930967348618501040463158082990463873594407644230959726919191653259533555938991722885460427426434861028146966939324928747301793904534878540495727537903736841732343505480249694742143365892697546116195403222396908903289044243713045386054224787640044596013144453894011971305692783764267127451107287207084501927378756135430775572349984022345947771302396664442285840734119585089869408955483894140199409283026186927402459008999267900520103272770126233000679163021831171752792319960358993786523690664734844934600245312971933014161442666461636515807477381993504537251328229515261440319315605076319468767080324607017770851554209648449168438884447754518374075077607383330895376590444828319224388131551283469310498183343848441316406509967842226281004177559307246076394125406687158023038156985416522710123024072972321405230107063072192351813403671478790019239865604934920297218701058958691845595228669281018346073056012900816165353442352600528355736072142568511559002087320005422932640254137382002589487000637634705134745542035839713295379341768134969468154626710454657095247596516437217238350128668168529813076855161494356201334221228609545228370189669459410291245509453420454556122497903992469846407689601553348314916474344942263867153777274516591248499542415869232608796663631285248185571171384127397244806947813140852910020897541972636096490910206893037725753286315624187106231424076289105798942992230673167401533158681008122203123115737413333825014837651062462193717969111277637339372401380747163913562097956973484767241337294640294878084345133627827445238857695473612109462782007946095261375145032077355670641239132638983883834793773772487229405199166399189376340505790088159681799310710194210883511129570392412232475576035922777153460680897531039712841265065065258126125830320831776559105704870842620957926293817940800074395016427575417548958494376129407215332861667015817437097738470216948076063487175854933779573362455619120372125029972511693351718990180109417995337818067181982749702050344985561830500741574958404691705914339963240967176958862908547712398951316926645006135839976239592339765259939506487775597313321125010790952630560869049910642368507420756977393899210510777120831005009361893556697677283935645623607337190776371665558595286107420259202703863820282116496679306832188616421229541911173461522073886988030232252936556066109237786423110581073660011967031925482754574293486524300907488046074938716270438523342970832500654278199909229457118686753520902265998054652531950648170477452874446054298886069853551139609192509829970424867369379132591522121652248906975035148811993756318044980498550404806334961548447599220594601965298262253276248334130722031917963589075349185126000733877802402905718437554760168087557582024019281916128907794429885139106138614599399113537585925410570217683157625120835733556433767954264197892957837483152369549630286162078979645684286719616211693971849607649809353877349194251838660579432415269892237047256271155531295342913175284947361121882906686791090555142263633639191476577713214275802956231594658020879730825732444255982687840248807744118607555851068449344430790367970564326714197287422383600347796305842738517132800487215286083801365362020367171404248782475106911750566184370585958289245064251447902878169901614186281415033993943317219703558313242451063831443614270109389106452776084256649138609818966466926514038750878614323215466903359764282514581015241399880691128776780195465263166297743800069159616428052363480681708005954917009301059237972721524860494823582449024868917882528834635508301715662039327626516755166306462475784023406044819376283026519654852849401005311944059808579467203371317661154116310130244275563805688909265869872170621075015575158380618132294795626492797397696742354941435889774336771566202261567419482020969240019664197279705974132407037042052727317519794224655648722063046832093157113679109191381110859360483924075252851381723389895032673072459815489128055309257757196744473847976933604441664766270094948116111045954705943493566968987525677300281967516461584176519562785122539737982937409236813553189054635976473778710128712557834054110814099046111491663769305650643943191118288959879332063872927380761080561035374114878027558687642153170506412869495053896675679870076259988651004655250207585755976337854774530092402629806618158957357173252155261981684773729243673012159698543093303478499490142852601680663961240800438393819285784445456095484949638115918746594970493730276235789911258326755695771961147238184346456324232763330201023097169223122197661589240675751937685942133951992855220695191448207929241763411093430652649850281200361822209937753097596184589130418093470935767802406767637522502300624493838919874457317260733639806477905786668211201793074881964656819590714669269365025885893870606266983882411918466463640057167502245330363843982734908844594533468559374238032835202694116697470377520358670760405164188673059546614048524830309877001388129513727832542529350792882466834212524013244162010405903422535174580156407486486873925899526888434970722507890115559192748888451045319448715232202920782580309507078518939950056817129982627540373826675387096963929795028666161758202531484398575216407425080997921812844756212147819438348114955674624126600705808685533494533369573466231809860562315556550152112098589920767860676767066940762868600190513764195420788794217266591737370069572273764122186975142589936283618721312112259969900222887976980644544322937370536146958501784169682966524610483936682239833464220891124899865086990467694014354419421985913739997734111532658068614916816612503146485633627132242968603667349592968767008679692454653631702909633351589382175473485308728282979610257688378152834123315189340402743007738229754594542586409505396873857364805075213548709286681022905214558217029777028696742773853409772012070359680725673237807045534204017295988832724046517280924484394239681118627990821504492402175467592779741810892855656855563070622660208410836174486579348533427912967198160396852704072670896730061865799870070972138484639548446126029755074606708676560723950631179047935045978439480800429487915371206557110267228783264293681091777911234331266969169747572671486461998998915067817889357493480749715524130376372899558286369638016919595717060001243598534006857466532988047089889235797039874996562249490600756752593495916315186446019095487740112279979749778122479811953736259220797117897579110362187748611642935888955432937500779352407951173598822556476595424468755559464040214625443300491389874216361117553219947842391727491824280568206844350767775291597937131147372659119251820281862799278279138144163851223254647857743779715423613756541312629584645676878655523313109233555443661741499983802372561899722566074036956216152372451145797617570644665466851453374105059900336290556566405200190076835559731395141397318066728494127728087529017916302842641999631250613209914811226469324627091274025134785205959806862914873511785265364433833762059834174322187198872062093768446155327731491677169488397926129423261091540123180859333937669895457172157366459098294317853892854833506101748206464609886561894402139556079578507959663348807234152195054089632501422739793824573063992240648955522808757751035940689133601378962895460319770152643364586991173206615511723048232434700872639195844154957576593801088187296127328137900164376061266913949306120813447079716190125002676643218704570039517013547139583997664000494754496903019875220621992718804627987745985936419320358332091500675218733589697876681090193334543510524285889031159171852561320732437045452703106154565627141850043413500041458846752101366880178141241739785203163745455609909504092493556408185560706035264317726968579269324596135049658985786881157193541486970863597774468726871511018590835171881173474317004439795757978956757089966880534123925935606655059092338489777317442656211291432771349394039482462130153540149560799763974716815273188225367039033687523909566704357098735321051487574440506438650731097496361459464006250821461954453933669137814843789455839419192142684554764350412666342591607782788096674465797331873399364536417728367520867534489208795911086397946515052653288167809016070874118851506169132820477661048834272126722118964770328187017658732444727292008846907367088792689698785285095779967596040273713528621841884854050420635135915059185778564261253307634380997665026483118757854136455043120762638541971564427029972737122808951489339056125379018397138086009538445430335931337991043122980700255432690964188848478538686605295052202040721714871959647656471611596478151868468011868782518967985550639460325395168049529192557296984647030716721538670273700388818928851875142313394972573084919949165107962631223135976069494665233918111308602193873908499195065262237422255947901181911931566744716417990781186594183234427688201363545941500761343483072540669252006503628036590089752936693904478336369458516925439906346324241659299236878237410960329889646522279781920151384878186810901945465892318982628935235696073424994819268317277351323642659208990106435783440051483103145023035084120923235332490236711211116625425691163661560899562325433022545890224837058444442859995945513021688635220595713726918800175789049549408393001193364468383667732532284384938096770745537964294562821968488315614438348414103463875882085938348960843224654496850899123958862878755386327620991155263840811443939860635958230831091959873000501240991818091515799232579222587182252901380742849917591722628101786217668684443997221522090988908002288628216066726567269303612056270491821156238159732564818974665487053763764692391075244758742873179827179874306817800375831296861828615587044654288696203771221922976786761419952592994418379013324823890304398444160069253648242782223184786455221705246341308961777278066232036033729421243189586190974007768062127469034176364196455151331892585252291872957393477654520091407606106054257928513808983012607457373200484758386566793186645865047331319528557673886725647552174963427745971639644930632426643427983090931924744099500207232951895828434470531701921405382512109141633884405964886335590444711715072214318864273883413468335000992994076732917157425276274986240780579426526020045071458197993632459291466029392298338398373155517364650322804975447941896500648418784224637292928998843448596938106594042817443070861587732729242745574517815808440731408463715012455184695169326807228554296295670264126110523966981772763441472879302649553438456269457648968011294824777640794420937701502502640319015578871552620212317167491817249738769652171129998342105350399164432737106820254431004397805534696813689704132869330452303288217515573248815277258860083501059095241588471588609144818556634102655035399358826591556378312876113646876343945274357252935002503933374610818110478710720577783962666824444661878869058461595868472013526442505282272926121054015565128570212250665566185465297782632184826340684726426068371052365714914355430034012774851989792153924485472394101431998326868386411072423294163116255763043754866655732547344745676212621556857339531044348357609088669459691449938081532032720302893433281877667839651428464520617596972019675757781082631994433545697719838733478197027178408662102879923222331661066000920187923632073468026216046980359418530863368320028670978483701834401955959173193772816072318745353556663955934136039996449211249539211318157588150122181106359197012195372127891631197662030046228006679896452827410512269252746267467014079150184466967955765931534310148693235309230544325316808361291484909134385748075267044161371962190458050263002219273283401904029760079939092455809090809642200900260112379771201911208496710549416311112779830280167279530403115795891363511398516611221402542772477865056867577214803067622416852355690062776362018961544973198988348926330219864049646925453066897900722848878818166209231157721464359567940117561807496880680880251832844378618050738062377568532247137884519690200219809328332887703385363150206318198687870023485921746546930257425834039324367049930600724019095862853209586596004948778382155870848719110277691981388622337552471106756841478807128537545085941901323391220513055875851717825511029152948765039867682026709759213302237282164441358453083408780794792266105324563111280092421774445509847084943710288752391514175521794851833079531772288189484312514114725518677233912512381326154814900164115542463190960591480382794946660571189973353923481593957872287871563598024442410174370378306382873053345576896987513337585946242987002629993437234742011894190642859076688070537464638128093155601918785005781807382493776878943545139380028166452709711582600179028696814904588482477434225939625244400290229587563978894669593808609159264571901143222098084430572224897342618210734911968735986761590483669195169912265595118436309290165153389048274988825682338786496314646995625587378910392533945409630917307719839747061452862703093907838439313564404170650701439796101866667720822426812614702395176574949575429030530659171817875607218429490876842246716560203562554224016960719912850587561363012925347715045257478601746672509674379718435473268022902548789287746217488366422723417311981424628643225813544315382469977486355874831448429913881093888343420475569858416912288268794524526416444332396363391178996746956517449036746021944538541462610939356322655442170288135272824377301421422978269078239313139909876119297978814224082075670064087125415669355935219675352650220369691981020076954975559808095222928092368383723824126254770182089846353502195999170332299092141485712924658799701966277125934681802751284151496892288433107533896311241401543516517110162900662521483454089025796500309720949366884332429295288704756894069083386488272487486942331585309581168048902017607599292809649310779598142517156551162136399412965098776471672084720366915307650363470990065389561795768601745700350799545120590276270947526142102219532229435753509155222214031336110124076295480581615903723028216635596877742694492020383592481591371174176478935723758840725022811683522119021436964495406836510537521715054539990919916087293318016646666443917047313787811797791263336427208185067633912100765363097952685596972452935903917233413064184106185356748651556897614242455640165776502350612000309472517027440695725887341534790070897023132873576709210094699490377025316173625187131926360993896650939627870810272422361656396716917389839809212916102656315138282347125565847447023921677495439678013136141741357515565981374884270848229913295392304748351399133610986913069876866279201074209740112197849974699607899820183005965990973110728901839299909238285418074077455298992467328646271391559975075574028133183999624243409744612542118257155915810897093498570374527360416932960562395397634866782857751750873227648558738723682330816061119838857652313367586307258094977414458651539136674988413459273444054987515344381737185484774428323723759040988905502071475292857326403744475565091691937023809241574270582414608628189284948126891568619312176468810571539861013098503449309378123833635279839573508571640318619376512846552103047253930848486452518288206060519896819635105459614775949933291502099659510299731803316127721013834774779042575491921327810711317757951004669957031327420222371776233453436547042990387695974135605850637378666424285113033581652950897165868256183297005948388739470346504412213929659573883848043755144993050245695898033177710023877293034446684270516005639139342922442436706226241818499919096326506169394650831094107483356280180671395855665259094071018265772547458800581989753553123040712538849296998513867973143519354978345144803541375842447108370063261879560819549995203119747699216127659544941670222356075403697294244955118435478872349540242883370905676745699002673808779645605023637490944746425665031309303558577784804617923540059611330358950385913765944190030359935694939480602941158701207622176696110285004327019729464149705579696417430448890004325029959707533084816151239711008641993494949503474915550834988332882768448124588531980869304973116853555601742861672373872879945357604995741266882437887324754118717223554399723129828571425295281333918887805309412695996268162251122191606320999342015388460320687900912651630454080002858676997794014048870284287774857007623828578129907108226359357449036149727792293571597748194194305321860192234829086627524991574766964468439845308707227760048383769032080281032112650415737138971239468441441578485858851448818798409003348779399831810774199436850140783222384156797659235840412206046248076446772527413308973564650981523364326136294749858435406989856380911947843679615939330419763671951777964254431146846915757477820502150714553846923384051568479558513194046860155747455039309515774107498416283897021348146135277161428189242570909407418045625422478740989617764654363744289082618828676063662809754879590325570148332208302617913763372269724995962462801133251669294604520242056658686598425521609822047802630248100704315688821026949851614562493149426294916989769111597450255741061578031484713504706289411311438662325733977910597975781118566608553240643270597049591535045031581309245236791944364993179035051851795549905458582336987064832880381762463716775220559602977543827679109852101135692984516702448751285315327409828686821862126478016121271500380985928540530715783468399228548890628306505274649367922542153787850682260025826668742650894856172119407425854655501741424660763794914630879510460457117979642337613106023032806096104678189224474785899999294874430070714059192053587029078508931041042759387601877617269390079247609110341515316528551172647474195097697046904953893238519252803027558930180808493893869194423413547338102498379747942276422865994157829899935394660206603777975596873191762491888335140550185839427736999075934897995526900601956769155887186205853583735618005775232921295626901409136016789444731769448741028826941949988648488111308417652779686031577282761392957432684428752338115617404361551308875137759887719981866224897885626999138740668931803826713165594492759523840228243723159300517465112328676244963105209345316984697390478431622575874331281562306582543788088197044765397950380103074279340568074115749016344023170082948155057400342551972790103414196941693072310593850182556100635241448575688473758046176207887097314942937487313021638199025871445732156956547572653384982597503871548486270436257386507074571188509921145277971654291748621726282525250795154483157733868848867713920871328184136185142513638979036058462293732201245712079662328539678859674006665969954644015634577675503982743701115451781772469457056220006980940641254012272399924858142324808805962841806724819735044876701952204257110411971449426645051946719207122262569510816488355253233172074543833988307788701840326918869523119497687517629724222358063478477738937161535378592187451155833333386135309463026337239676856062433314787430781660802318988830156051462246179155520569870929470831847520839760193032072244844458360858055680972127072829116601833373218537962950133777196613906731161314169978456138219102467080894370401787384535926465514392774390731115915389043409748963799880487060171033929094411800811484786780049362577944007376043500365021284461139785680246738239566021585125814863864929170098387527806392330020593941747687471811165208747389863331265382178746297988138612718209579490497258040778443649437548570318581524788941195071726436604798149032670389296230237139073793410877671416651455273218885933513620717649263930266102084362219325668216421672459876380967970260788977365189080229869066490412859914497210671938537176475756633474374525633533691014355539516071886903189485192997364111374386130891780299367998074104562256955478473796848419193161921241167510787578844575085740213942050200009152217627176458911497775672224388148818935499237731938780952653015614789261849144113230798337309475906047077088685439119194611062428037145250219085789139287386939391102961307330637791098973815688159323258515386473731000874108752516992831304175580451845642694336819543678344485296197000500349180037531059383279718159356016439121254866272919606391115067977587595721617626366491549237725955901240569701646718679503186722397108733480463899452429870756708431074010680841091017965693932169320074385973719426892620634069306019623484561191377472049473015666632616961682959687811563674271498135388533743524389709128268823833142669439786576995803732444217003970618775990104415906344371884488871733906587699694236434306905125249002942295804892458005373556273137575353920699820880680716249945704890889857776363258434191141778389850577738104921965308933310704603346354051230596876830522042802930154174654082759842259792547839295140584908457935392408466607093333304670227229934483046729525180045446435204616253006589884534968557107009052105181556699232401275628967189015717811772694566021838659256538182780872881375565941595155799675925671728707318061921758816671033853675319823791816975415187480125340639492732451260977675961713754766097580999195641873831597337768912187842996762509716919946357360776180378900742803173998475399396439019443431783765153944671676551579743959401503073630530882850815996126111641954464817702619500841642883727642430843881433672689201293161375461493211919535012326837129714129644937258676560111601664553181543582312560880020382978609470034000988919383078826995341625385587338013942357349451013083266549706844772222804039999074008577102084189904459098536661906333313923147191052899687331404091816809676874677418687617266310839035089088796798306253175711392234852284654612060122200436942534529394273036736630524052073034705847418452105284818376090484031254030310617291744427996284692326372939730846695864782187523841654146755624760343137291431269588967963221273362688640083398959921365733069645183949980467918532154607870791353222509652726964895046178066370235858598949508015628114093812960479550732212148494768718831514374420703015241153829498847225904616214024395771195097733212248516427603806219156932932054812693183690220000722373487644702340144337636671740475796003102432478477704892177870090067654548905869210918647431191831851695027155572316588359519863092764541150076901919999018961263409712274140874790091437251572608273265368711218000362431946254955640875610115658290405371548766401798223866951886065746050375670251343448867709303415082051074010636338976869370609504813539963244864306186491924364401595107663673032540693337059239027474187544326925542678731348472391473116122819588810447669208317457049696778157168709093181330193078500074081075131786158731357540695921872877166500452607319491858946053995972254673365622022545192639752516437825686255647843829494603024933101106868514281358871439701665295067935329209540149668101074874501890850413260191627932066689072325777539346396607255453000680101604296635607510991405687589035132524850316824661209041806414098588711263538238352315563015701109990001631100540937267180200936606627406636882888542704373274778891037112408484826098205907745058205218576748165224590364546800987909933668181164129474807105577382287844306156287556356366758467831202495691511834320384104676826865060054602189303717739447240287659431222073098108074818727135193884859109543854149423215728848768688062858155512505255738217178334213506346346943293959564857898359657979138961760899118520936966306136621210106325873819328396446599837485322073045285587386257701287110206306016872298028356217703720150216329213455421768259206246530985247548676419271497222645130716194726023098586873790989370896041600744068560284327820015878397761688560652508682563004314163714290815068190484823831918882055023969185468524074786541283356305559951401859041078985746676067675241963173207461307908407843315578478686837268264131102626153734280660749008258314474137743010967437874878608948493029281152343461217217178090923681113228207384961805429652725534290468814118838028879369504061018868818949704010145000748251205184048691751023582879493437253994403801626898250665607229807760288972993008977445486590760832910240675750273919206982338196245180738548975749096625734489395982054368867491495023774232431416639546268650723338165318109504546829736367152277713692050622839389735469593179348719888712482091606826713141893270735350798979675399548630231823234202258445125274239762440271218940972526769662764053783774158863459850068541278414657921843696745230508965778972803388432166146924212727214085368716909765577077009526294524849253682532932782156955055299026446525833405965812427507908309739257453544949370957161072336976968318289862176141216480771130514069670472139496184057847209094406846246224900604810411221944252216214819323851533436041659488380030871270683131605157234328777985461533470038264504271814478230352038077661426065605464755294094457054927282362845301590244698330014668978647259791866964504714727308097169475147708022248079748832285323416210134395208534030133399527708645396932612765365345750995138915545650415816813711688035518790245553136268482068007016748207569091991207265006501340189385696881306893959935510541474624251562865536563289807111438548259352422184971469845510491614214204927318482585183791403176121227481511661661037166586770719111672335272290677283417862478337535995552285680177165347871448037949179917380572189331845876753593019379275980986350020919651019033609199510834891171945179373953047700159799111740574738850221819796093992256528849763130071401704535320904350390696222719052790192956754140950452502524419874919822103942947404035825636727500222938715265579772879285944487035833686022692041879619457460204252317866961090302414526675838832310490544187626148745881018994630522012946724744314108402904692625927518093118699087987479346837748834368007585542085734096512736502552369298840193435657744535775663996145743682086934481660924710692174478634407021661969401535612225161167754198735758801690003728032100770707621862469534588291765159012865811163658835418854270984022856081112310013172727808597210647026318563872834497026924640042804778006992672915202060386084157615452566128602333975380990947698894674731412687984061942117192897148329467515803558328599279140620518783726917508103604355384696894398600885947185628807726207138147844567699233249887001755961502847593814920606835906690554150345896429990785682567313072729480917141785309609058934318389804254672340308332126214664018911965230440714275897124578724263096636582745019202628560152739586560423711491008121385471925144200671057588117518941794120891934271526339435810163878021834501407412886313570067104539665039600738602066606126650259920659857759508710435977708293201830513775240469426316699203069619264400089282786301668214223924254916019755482776844475129264683464140810979331997450366741150995199422378477876332674746447632918651065269318262602835218127436121030836645291538533950449818368580341403019331152801754757600541572281037485202970768601520228484600519315379976213344281671218299247003576347272277801663758131373939720498221742802904968354452386535790951817058260268884090561615537926700850100976472828133617593123218809528151030009150868186776384920432272993669213090731359570298939893001611807498916598288682911641573320366585070184812707486200705349934080575085952886305316120807413320964379873799541201138632221754756115013674023994377463133732524570166180746575305357664286147241067043349823687110722671232363999044404665789566316754361096186731734420685902285885730969473531807923189603597325700571322690837747775646986578542068597675563528731974591556667216584184378973501478110813917277546790051916638753130002455629091640024990438962776201832803637928925283219961185643592653914947682282139099076937430267285198480956087202424564879901154376855812476849757704903854567491503747981355923764298076174564883183287354169604049136791808939164862162592992742577034818347085636859495136802365149770720066260367042774595504471873605478232974731985133115997721947991462423079157514822777712698082212666707704931135324859693330380008134963882776606106178856098760403703161423139120968862084645956139350855513857637283001933510531615726552361308012953675582526133400198167184401937299624945366501496087143618192520247923146184502189257369062651552453249414284441613760059025160754108884357047936622737609185431563383988658124869639935303642898415595511895679514400072297299089926907598381301734766087240090235897518783102719177543802701199596067245932184709371066065623345226755834267234862720334973484932827497708674368538882488673095973751277011496358015910898663311259545179043528768638992967528601913064259218677739552319945500326471944141489464970535954692522641670696882698693295460065481132089971649538036704725973610084874813542552478806425687679765237214728532328726234171901347417864634322184649065756354320554676475659280101621103920670921318728315343649350999982071157157825882105788350093557409315026274403608715420847511206831745751275436164462772466130446969200719975350815447991684337414132950237525731817892604366797561690210002491389606381003224886524626953936936535248858979433668265777499838265564766235018163256475121330913579845704048857756891428908984212619281611058071018585275116934561537970066539751521517587689425126793736359980462776862136913327640935299464263766117220300583739842237798551485725559565068990948424850888154078281636041528277137414301289299345664211693292184710698650857130914134854468514763981530008805431186646567667463201363233410740142340108214117878792814087004569781240468160250349158488194603997610609366521935128541192505147771394406933935283081826643982452423357512194765861480359719082816891016520445849811279257481843045607930362446928182236311025270094592746587680685066695679433143423623248433110610587330359196968931596584655659173866133455225937671333503716560143806837074765833195328071101314363322446410373061160247124336360980892162141068082025646077579955388601547572587542213822717855549288870085429477844911907767904333493743043076318838542223562350515207351611054432349796536438217820430413275441281169455798377565331311301456859525493533722105831487027609948260276499217989164847919106147723394346417817563420724468055278952068983256914834526885332968546541119416464285197664326639259694618169782165121629301364964645274108901309894332215051806717490312102642139193737808249478775695633841624445803339451308530035848821657678851132064447661556708946975189127260322496979726615747481173105024887208403797052511940370999822539173065708128435463258449107562301875551867157080898457090873909978294513006172068236834609397700045531410142902837103237555444878504053254535508135322833267562490790042438750716179962731457091409239007680177382713238323247691760984219010826899809900243861092977204973963291952797180525375984004159495644920023884023776471463802976359928057801909572829128002200744583087811543089458743099755657006408129705808560089694799346205483927205321338684748673237344894251725973850636445032981991898156603976118553755569016575434843773103820495359887323864004180241712008464040464685293191523610771558252198346005152115738106566093693538999922317537300957992108645124650858798905168979935184448156730022987989251551662605366006715434016785424298289674961351180289500509162005244257745132883960991110256348975665486483806736758840873095815020169202714125764041490835696391946576984966902129369482350831290971226902344041809171782313790451559896185884792237509025632483170451575903713625256284104368826824556464266229039409029620486493613768535551302035450158233030469307212285028206004898757774863115231157494430127804078718985276148283855983236232109186962366087996204411505306396878055553611598643348553782067618551447016453843656777048772931024976763511005436356552111896122510547871230712437126321214732964759316709133903237849104985237868203380657198616070447760031440443361276261010698929308183903013634508193229871020678958530737175363084458959958682247262355831609481422276420970447495453096530023946564865724149255183625369895827921231533673983878460124595703250441571254871077196855039480895048454161548721937460017664275802226803769902132459252399376328165232158249222540313912570177460444981683075096544058140201866842516222433137275990631790694806929268598096621721114100853088945269329134672483667963044472727909628350092035770108520588944437099780995754464639739171293254351178198528971252769096118161701413141392156455928297375301874820838074167401258531141413416993166575577676456886904434582817862156664853056171067468264241564364375359687559814955245961626523884241245220250879117533634311377904742646927848235988399416164206733006215797860419905884051804149870882229817071902913585222951691644437193211060706909224570244371149505662584516244108512181376452766201898795840863108449744991220610973702477522508612756180125178272235779020176102348969805927352804782444040845276140593851288870275380792544837723753301012812973788293594878518020728587070619143532931161462754256961837469975927233483196260131949859531418002100933208161599836535839314533932118403657959942047583197295403965444411503786610479746704450842206452976755189714902269522869718891480473788148801730758690595959144078238024664730283267559948345098132539124823031587697239737067302061083265952521255263850610861474386909503730836496207946744169956746571453224332533724631334817527983420533421970661173587183640515154167610616808065533411535983166699319772325096712563339721713226964743079922952553646812261963175782661158557731478487644554733573196750788426200677827410999130088952882377049510162838144876870758677551928773543962629612551383494066186771665662422570853936727544912774777810486181817584970820438284931679103418917542987217415185340078839350980798467697449091276456782010307857791161145554577276839334443185564207239074587835378416033057955682806517931120935572939017606639660876792668651184572325142015256971301351541134973059975828360141483955990649557651601064197119451882942660824252279325502388567855330808455631247694461513113279456662730340545767639123816788089380630935370986617474201672240203912094078213770033084329048559549541187115347233455279112095452235183960676240008419617317885079674451584191153530182640666260341199391332610216949158214995762240930388228318836724420573772201085556109558446587361975442128993719013833340750967991733457093218096538726427884925048712007404047577856276860187110470229878784109562680150701765378075917847474656408477364784095165555799580488756990421876972335239868739467407214040535571416771241766440215834215431300257409368121964294696660493847199761771507546722757354543552587818617540319900677548663403172033423403163047169009547098128607046278737301273952514957773249957697626975229231750496916694280059750313258293040415023189471865017185665509451333158372924389773263348682633957931172175988734981057316512636751510478821839481823197048151135574568139604477502799255141390904123543483081004838521239658913182350041983466795653709661416947579768677147899718098321115422505590854844725449705290803051120462235319454219795000987089724886782823461406867447571841681917215102826297881696505847449125165247920361434428382424709014927709271261172748619273872570254109863513028010517791264412178453240604089855780921674489369388603772957163007197624130222646240111964488515703980567950245831393523999153315374173518746792167144961049656185261318481142272570414392035057711928292894284484998190593675822856402262549749006781381691137053633503237619012901149625389673366568887865540942076137877975970212345954208706078910257116458157190591123429713258581615346866156188485810292767421032947662697238008326320874999279872260463150479090302517081893208048956070247663313492193084910658525677582154551096364915418413881283929872738522159401988155233462726628814731478611852446630564479041455521073870730267653637480674665432984056210397930740239739868485509154630651494540252020201309331742314258043565940031046611641404572457914036707082720324835793645455705090929242818361954405157788273778986715586373666890025285111981517792715564566940661314958090022210458957607213590638618311304711790304957236261561393672143936441233525371368135991424456457506733469280014520221511082708064480530585141176443489672184646037581976189895254131133816233066691323719212948791518984365747805892818778373791258762396241995002626223775136668580132732166172274428720435006926811702364878857634267217725753094044798628076015146439115903837953221291268790394676907626961687511841715786139268094108992692164441039823737619409547319774098355679080373876906334088409957806830274046057629084484189898987140728731305383941935746705391089542879480303276850974550518377332734214944665465761008265291723236504859440516756138570184380856215687363192631688813948664243659173974491394428276757958109006864921985617999501029022450469091494213895748494711936685755597744461067373662343523039284038053447620441118343930786460347811308221619303628780196034082208575974814630360901715602408922091345870657454718948316055984462862409424469178799447953063797236772360409248752599880925787396943627820990042697022818860277236841901410189280349592454383374357445596375723003103215763158675165086603873677471856016239766437538210943637281668042785595425229822752562400861816810385643704554441307150623870445269503659723765046739253384640689025664873718908108865695120915594537841391980037984076319850622946921154461630134361337618243638712994522028596436430643491755209102106584735654083479041734121092312737963933527869261593520989979352751043924375194210271500787853817018743677052749742226289517105262169412299106983959175406488799483072230237973526337863070163638379686686316470402895364720601079244492546287609491753585576568688306168869806755384758986311041560519527521326066726735594608001633216021639423452894592207411287499469674211735146946206547010222893542344293647861039227026898572610673559651175146034339350557251698415126963178487892037471741565144949523415303965881181746047102333026403431526968542992981462187354874032720420564576521285499638900735114611730326403017666051027386324459507711267592156117900465608902930414111866298571824851779420383238322580361843867532774378140658145177225904865660038758105468749280840468027302152879267939862881191456283495405625122887811536684872677615247553701111746411973579148985547499349823524048405662188580225318968966024685361662274917158185131852791588803436828538693071455864078042758431050884832352617505639254627590556588724911781084410948733682585919246299250973576289131030996539215431731452440622969374003668648499211349025991085063736857926786964531698155533151138403620443026033256396266035472234341841687057433132046822507883619663084765953528112654743341126181075816820253300928008879119071076715478730715085716200297565838768588129175185337892438130523782813756833085313219885277389880125770022331766605298358863557259177120490998015029223236296605835179354602438305112274769563532554840029595505277302054577618484361127277584979763285163422098964062367704186532776452715720486975207166414872187626206376478836251676637741372803238914098303743597516568244798312289972220207731581833238874564065987406280885509526493573698020950928102626057197548898833644109773729789508082090745800388710291448564211295365827003868123851172762360838626877171968179416825279638338989547737200416048164544811614024880550931029777254497991909677963606181881825883982817291543648462558073213428476747589895466738680856673605081195610228363353584003965049173205202830674251361151916309304111641072972094354584965340330702063671128078843287014496635516995560649182834433923029000087103965669752528246635361415190523533514297644254327986352994722958018496172747129297142906079743935036192552930155192634246044309159317847620429099796650660409962700646427883682584866260834107213635690505851600009144766001058254403622524357140330947103361759974172001899239657341737478364350368054878343052188879541410328574859024426636811940545744474012668065511557920605947843560839236752198898354797670789471379713452962863261614363377404131687338192856484764585930147116172191163340520912585137412549456030826139560435145996566397276462941618186865903051950644399065618190402859558168262311235843851556411019892191216653342702759848213203273588989138712893503058968200169257738145822766986862737497447106784592468070246038782832657636949000097221885501934875774694743378618568113273368246952238498493262692786612884242493832208692370941304763571484004312925846690072692238371225116103832870365450801244114184871671351313966034025758405351382807195243955718713239423574966947633741081257894338978158637604584426713577052552646395924443947372478767762008871061274103366721905115428421320366726196986610703185130078273697879428385999029734287711706978536238274415366365782695877464703134384877471953729475265365190283680724260805368348724825615505752727234232664836682396185259826837477215874191352568785187963239992532073037402701182211065722252853217331225083749646892163363497013773018457118582177804681433985041803847667256245929772139085751871065265258523844926881250212167927789694864890468570513532014439381480472753856288785149186359268944288086923385496446203033786167267428123017026727941945148812796072299583901545769092997988061547441619235079350515621122194878311713404572761237031961893606640991831906071773558109324708741104852921457430076228991563546322428374364098409999126609706763235995841814580739652063393310744576951991307577994361432559908551331248969984797344895427629407526412574376271959242978052858579439896379397971014441089600687773545020526439935829643574952709287643742133868210003119702693761996021956435655528223493156360061010843535272055584658487359048178398508154931926391777069220946760868204064622548399199422114800711999500141093803443889904819002937071306686223492614941508517972476964358645629541530968128651622529489361282609862359806903406020791798196500406568002808192258392828663940196071061555894182916002544089614764491458583265538637472521354373777838251685608095840861369516897551284424608361481713715841815970130164810926339080008719743003214218886963306396886213325334186734964085273802257953016161132479033406357393855326604633518625715463231219559633436079162878924826947611385061314965815098613368874405427417539199025587608366773781969510648129908292250321218691211194535425406358710477525267194969793171331114196278473277737703313079289767976702956116580183030567373692636174897041380765569180312417908761225083675901410776158384151900129013512442140190600077046057066987187174685410070948379360461598226032640134793765514275586340779507990473845988600599482843663765405650382764061934043840640548420407131706019963886697157787629017506641946314510598913146305268596112033637105659083960959489782261133244091134496912947794560386190587562153871077751199119543461237683263537489515826629839393715687093496760124472146802409034231140971238572051762995150674651607597511235598404098896342484675363873115220120706485488150915726491494515466022069895642227264322961650920907358726501607614574000124715007628591306200953618146392005789732131604327081802078354376015848013644367155464220771074379609895829624266977334346366030063410077749335537598398503880687238051459633226360535659962399207321982042082208365952518260990463287299334592080967402017312167550465923433536843037410191070379743251689245692566366371934306029535453269082625632745565440674733879290034730066325865761200130811690118142028158336281645183073866496335777217864390391813475913859592088473451187900955625441279828245504256439552819236961907450961833296203516649425842707712994211584474258198596255354508868523656797085323027990466731205850021252807891644176703823223583725957249526444300872615039331671666262518282244669136021959100696583152022738536836348182844126073747159226919222154172461615378583243180422473604984938870012366150574576301850287562521306830288254518942016371215389444447902303197557047056105382535478811702077473512054090177234430242847699928422051976421443776525104204361113888339664153079657568210998279387855900100022419410697537888521365333872226551429726519562176111298499480323173124716607518606198099140086958140039948857791554996269199065210945848952620540033165495488165928301986497409979118557948650595806058391890025059951794746564555541245403631903161578681009608224461425892118926396721395846183960751796657748281867246069757111917875376933659625600109371766704047953976792071543769678575373386417102309860207775737573037555115822033803584359824818038418959116471986225865277857062243975382126179238283996389222897334118934475497066444792788471829863931779256055559382169472058577719353223521395360765241037299991403680611272034822652482528981792299834687319978162220249120294522504677431539544770965964103617320304408739879917244538715382164477719738593682615957848162853577802247361498556374314750137651664958761929892251473654668219603970937396638536510518766668245283219558448418673093719459226229778916958244471907290143937259860634921647336400693478236333342126004231986986302392974872634932662479018825315527446033889516537462340976611953695478690883856384097815845345767404359429292517887960635966606701383623782783243794144148766530307125087000538014728831942400705066302851590781183554793466361312325778121660234743935146071734780220391095195265378875681211830326380530477293237553969692718924329792860756562930949214646292690287142307443051104778488951438828715572125964664655035568806875113366726605377850837409547042218246413423409461770120527511205149850993456983979157928125539771314969074376705829033805887215609300593484979760009047644173122685114697538393544213310626870832171065424741554285561330346283739127111456484620220315774436660083249049136442897651097839144889513453946782042829494316578955462317242552041636634520830780110142581701658345694067281808495372062379354274889066811684648011967529265708714163945860243929783465705308831590410181114910609296333904187965622072185693425863931210793977188499195718300197386124528828665101215193698166091983452549559292416412041343536782327305196547575557668144257757730530837618658088244547711759804703503915992513985834142414505866437041924711903181529306473760824621009850233299597530668742710744827010961643973250653929631931079357873783854974910280608447854086697134673098417275163895502183706332792313341661205957536586774378519094336654400837403086715197038518853453772201780473407071247003287288465958516125326834197621064980849162427263749795544962163680225797810285834071942206583157771667763269005696343590280690673770499548097314039474848438090394852474789260461821714162991315346796523671300253199896532556181076440692289846058589753973122182117379048265266024913478400944638375960439333807560885533116240498770045659901396476927455569376683224523153703259130549421361293817354193583360102365716947739208382529697699258942997669753831618646535737287019693482922651434549572160253441312651073672400116487703457690826524749525268914669151392780599724114164995068931164520081808373051847293740168094070574791602783287146574149729470118243673551642316857059522994947395795658271978979296067294775723035748106336131117938047015196181467679943150935542721729027987338974015238696068854772520655565886791352469203737494247011812046343030632926852540655835615812752397208206736487491192932620261103797616485422829439121929173668527287454776043644944047960123800506603674393119586761811749313067914653958871686871585167578165887950122868521811874216000945334994849756169206231703287009294031977721075921655552351912350145994427982201892092503193587291480200377468020885339709743812800181527823605524558652786537899540594033410066189851245766563266300391670366300898927494983965743484982819545258777289934931540572999483116751050258667115127864636642463543856626444354871838992372541086425404216759033463034479486844041373194942898261923625007111619139334129604173699678405859283130647976896966521503973836410762337898109848405366725811275075385433644636859149170814614287172859618659087322489958983061555152345765869914460059825453908944191963613296990330125802586658636369955833781475028492847104629347782628423345162147856100066002467607931797650819566774964817755385677419032828471117411226473134605030507035094003916061071041768366664197541162151737960350030248710007643051729025176417419097254933991590030617077984056684104010753952262866239784721478420994483673384887327729311699740088849982454879366130259590924913126530645909027244511962782956656138558393543816870587949734918979373133426821396743105729470755181967022229220994393405573754987144305550904566529794653266881710577584707400585723530263291087410514964254725410948740388502457665362428879958374362465302141977466814191690442147455990261951442676203124610117018266155422595859463419844037015434170164477095746467905243974996756893614790831553549245608067900396379817886880636481139584651743924615691897743605210676318179357822013059959422669969013434687650097737565907816821439397343864462070730204758327444725169759879360298136980219662230151551800597107619960906271253032639677040232798494662084146166920809435260536525007330580841285122094583642383147035137819547790106085600370544417432069134559576114970068987093029880505632740131649957593531675143477040336242307338352423127232371420949926442783957042488123818429002269378462000248471879766670923029963779629379694128271215699326485724033819797423003962167453831919721961791735244953433128285223581816977552136235575185621954846607853219179807603440434056748663089785590201084832806070821215668626185749202264566072569440713929655619334282318856275402254967456764628876287773926985046108464576176450582390844817718873705035190221409882137490882186710821474461060863121770730963592479939993112510143217538941438222542828029794017739676994935591619040616069814256538585752880181423453719895559392001321710104341397398169722402288752609511964735615682844201769392644362799761614358992046687822235543645667747535692506942717373073145494506047463677159840243526430693735401622390444964423283814619544329652546139480840381229994847998791000000743837694055819395659182757848231450431988656889405278398449812059033378011536146069649395123864729570159726271724415129008617909624926728561422016658412563360309181892215562848733716871566796136555294908033537322991662152875616029931478775340156065626676088894082369485902430415142483088770635734405614342249259577718565185010297005796410658767302866194213828539879880797355589472216632906299188224920025977340596884602629983086944480598920574310761242272992896427782125676132391690245420985242853713787854573837912645679889396520049371186671028443404093718798269716957440220991594912641098245493009695348507966358429654900428935693795043480192873419753670585298765251402925883034035801282283472315027186450331451062265412020774879276717139515334035624374017951639088130021268699661370895345280879329465549427960255803764409292844463183846888479145065711651874966521735729682836131738472677484050887163574745190405942371281402853243323780769767125923721732669546023089734440837374943400875744039546033524095395549910531288071407353808008046044636103440685769787176685540261872386043772179062072458907609649731120267261709119302727800706712598078359734422024327098011678562845229245472297555969780948393320409606911553360998169127293091730559267697820773466478104484462164314841465536938136959728977930584100680747151959775725978836904013418519044683016008614070819109834611452823118119047287161163569134272924174165918991823821343244231477896428663757154700303032701846238457285709205664433197896429924968701760988911701510842949574233058178473455445390135189888442050307192120108856310462670646834320288459042466125683923394534040414446231032332888190083143454523861105280136991145013453097132333441407964092034379675994461012109115346763530210637279749453931957060184071806016284179938370750622921351282478397338828598925027473029324562408482049791309782357052583034725289136866977010229666896240517203396933999979411875563763909104788482967384016343107571688639847919739435707324443003736189233757658939393530531402983994609970525595026358809166548068385985054426293509430709465878917917897869578908030660517081868050324326600018445622718448499354268496497039373478929564984433329490932390916655960364846062316663072506500059152482791425235755159082496830423535077392818205484045503569532663496444074929888866713712544039120336018360071529673357321528196606087233431596706920342728863971418207427117336331192722901719111016985602612264448624444894289154326938843939843174559398390790835797604604369358350824590843957692465000959844404528217456100739680918357376264142059917467832417802181494872823945121478018299851307087322690310799174499174034039419899802087577943025635381924895021346945734205746022716490380867556705797085141964705130130146743839012942129874161301203499577031325805838154816842192757297566350743111460846391152689300593291946077352148588466533183735037966309718233512656594689993959019726139398621440374240893334100033001072240667880077201044557483953933611487019478772314132783633845791378444744651932024620649265135781729216799665925891026685744606530077157956889253524366215048304192074920230635971864175904150611425181462263812228209421296188088368181927532958422567988405646631340602652900560073571984406708392744776312231996606945472750249271443711091006063590653832637531980050786345822441047949802289328715859591876255618166946267743419843441483666805575245311066021442348195821838787702206680946238319226417908267006606673122677630518571749197119424310823385166248542128303226902133047618507204204028715896643157003669149880427187771826461774268181867245452853332578091540837035316396804772486484479381815843626545998480043915641511636146321608580941780722799997311682056951845883021458030283839181356706739750267072206636735305535477471916328946384603181946992873771659948023412808743494862360733832364664653146850647483554429273783595128085258603628104694980505544796027709322889798991647876883239908913689012002521257784733091493435257713659145435366843181440684478149290931655979273162261101474411839773455840744887250198293478246347447658477367951727785125914521066820445449961131010267718840656353039017729032630677631796832001349060476617603592368043398184034394958642492636112303939444889382124333913875766286451547584213897700605036449537544397008285965583637362557546880691752841271578655108735047819368114380602024392664260114044457758346015862928740355692695358850437769636991062619103206390167484008455326947711112267677380804466844036124812714883264058833000949669053482038603998322860099054145539012886809475598171087449970842928144597649759372897053072390085984165999349812342376242117831592990111555312726817652721317377739381911952915607973250459984069870661014132099725226755968965022108299579192772031025812225365183564707969377609515293368304814716765421541935302948025964439211571273895844299276251360781041369269113273657285227212499116504250423222746158714293095657085003044605398253161836864894992153152135369271002562404504816075611487429214965466671726831063036019178934455267633510890941543186154774571330029989896405251336126321363431640562032051665009694639120592290156031118116598461313863841117002304770305408270500615553970486890927662064045655574453567865194086251994983119330062615926485336157938172052098820088255664474624811160085864044502617653679961338624765358766976610618883247721311510536288319835375874817823147801013192570811262790378734078797403233941023245131843478823826696314102074323311105295597505997047581130135941699798062855019068981121133267043341207459225680829893434527201750364739683031138615947298457310553132053172124198072369479179641176512728393337770931485378597219950637501457360247153651661881503105162795543752625374923293689161725585234571138248240256463081284679672200608197372132462419570232927256398955323858184768977172990285555884395032241646423825425381167596548939171014269224500735235147614993081147615794674580058043841187616115145824599722255433885364190544861073563468804620265484026287698453801773265311821096158864403567060328788830582169503221008988211806005483496297843796609367251210339809531672116733760088770073293695582138699538293959545126949894174982292298654192317004346597828095545929278920145318498735223566261041748500953734748648558956356748980749336151058156190802653418831821531963251093204709923318895717808335819138128186575006786283113219257527358467084394622905520215114255977416733786015711326347993274395888963677682030024973918333399893525726833105959565485241926255428040201325809868853448835570856229786941008802099574797590510284428918101394389865590232994264796595556623147823750215752733190980758524736027054488703060710131578975704602248175306097826460375800235467789443467040897454177960359008997036480064811228767208627051834099318263278205800056318324189673357120501566079109627683415727101135476927761098086964616037267296867959470196839379679192577395036562028657179642249523105018005249680141336143014443564207604604605796582538733837042043342784313612244576564640508179961506251559372481869634709775910795153167171912889371628173487905924278670986870593610126835822705609128609313768434471393409029994937516783283796233197506334169225165475090573268693812026530060898125068952695864771989308780407720862166562690516404512763013824908232317216473135876870982917695869213241066141213630143804854760535185632003267970390888744941995120122760398243034265273584274566214077968541073258360061586917928283266778020365625734412490647710065192840331205590894666709077465048135633539249531861223812225209871858731564498774121244432429792923659297444847026588180275240223196935635602128568439530358090648858843037033796737662786999585462990514794405156112790679493988532464386653722449878977815162605426773249061660889236547081774266731424070996106414013696014672876565416899051439684527775182510732560770666062710115288945190720016893553517220815407638392578482608441435782022557899463317358388525560500245877984034851508561801045803720373232100146266166254695423617567875284477695005074982931951888964339935502271057109592670400801727770876152649791974618785426282517802349985140980082756350536536889591025853699958110238200800166113258927508122403719828863712094892393045037939863742166858364220589725185719622094903080170916922571375758775964668062235207528705647303285423566819326822337714354120834637287957491772366057736621379102825461099153421326603040213297355543566517126279761830379072796879491695458899855245591447862004303149807871510484190511300926841290950698371239744107819386208978366705089504010313340388329042852827787007711262136473203026606295296876674597503753770564034179463290354034109471345879408153874477518536947106587432166869555821182885617238490016408186552149091495778303268218169072833987948977792024447017337859324491511797062382161179212227647423165503298241997298068793133586285307365187209772290131042036485000082842950559659328496576154583773854372521775998784292282843475161501223255867571014431821358781718283129262838348430839144584243631775267088775711087969972544621309072564582528057569350294069881048403120565025955579521515675183390423334515212229483454791657642298640829733181458596669738408767105790801730111138222326517408213803559849563171184157794531250551596223778419401751391225605271610609171545192032639560470972831412218041241194830409733557164316594238530627068091954034489704323892215036067643981224782945843751486744053131355047722623130581857082905946953793482129652380182745709434057223167109830241046794813110381292860608329455495959796487063237413286325208862302745083880493419367616256968604467549251943209418047014115925085074115292486372499045161968595477137878619157109178073854952990565331199093969752995959158566341593582842350790375700781250013163388717784834006477978586905434019126413201650433379596531736643481276183780556202968552843776353608372286811993339869595857213444526398305342081912334804134567871820594162723345361210598783328704170895572577066556732422318647592635915587971509152492581513879783875966320375742565235809144659023099625265844272172426687951773156808359969306296159252419402563636419363470358772247768155117064162595515750883662790136613768631617275103050731143493974201773083547409685669323993611519790744732271263725804809956628423164290269199332266403262645104692194069211464081042624340642954512215366980599077389088226182086680727658112807010690894829506757035472021155060696505007398929297045952355487802619155149360097379166265461396603838895657905960621533593382815684998925211805781379194892584263781704499720994910246803212079629263802758164052731525433058699226018286625602478441595615150428239463348856141276408564359631382112956218929762291682440034438443943571456323338804869560214392313079954277345937923090514713437708715704068290224665498416818596452390419346669792388564588422253915291689900374330004814277594965513451808564941731550461551623535302047738382458506277235113438186390380591587799858148194937367340046953650562500809868189106564959133137528812373572560745167591689870581532237255044106997152753831218907518806045977254324132118210472064795842521531739652581654167435724298018813139215908883529954854910785916523215311674378452468276344579096458942426079743009013060270192768496178857316856256699998739746974281098272154976115118622440804667675570665892305295254159871960683265257882772392310334494035070910432214541638522515241817254384993375437601401106545802125026393655870868602909825179291746704825741296326746214411200955769120957915394125045800339659728837456619641106860506126577894802605663353875026814019430322287731325829165212447736142915099749291248520833831692059360155080451719671087852852330649183939923436540458226174984494811956162197492268999286740735070122728312791603635544771444248280490172559347728838156773880851719994517330407467823576338506103174568161888874955000352355585949222995034013315854561589754486448638347273477363508680695531255028784599159769738195705969621983541497849222749909683079266606805971228556607292062285609111378550860078078360216374431958160635610564957752301320958402380080987491582862579928112652492040036116031790366126925768952550695864949177753041109067558147647713491540841245048591070084895190577688554211284598838125828971544009732713678088333331367505832033928062050029462548290288415241805332855128413880129825630623071723783837834788921900121776223475613402835420110520904249122317135340820155807127274596391082335858805950587279209572648234600959812654970015799738539917870588176641699501800733779667664045762240033416831352586844168944697542794442927367080829966891099091409921994358197063251587645338222533007368140948353335911846051485763890798527201920823095832691549047638467672012972706816571527358363136958322897507582431596306837269150955687990964909037517475195274192287349567499938260978620920799607959393404670326718937799258947631340771308549534873385824227373908465197808301845193765322946004824831397344461983965210966619893668650182051396444801889977945857547089601883956506540845850985370801526364692375404077359273974947705542952604848554163575590936405605548735390436132913006255679829057142914973389516978223050373827102398485268730865946228022799513329557321898614641850657129576018384717666452139732257168744785736095913655675315076126079071269722195961766958411295611203863654045753426994433182535838835429527838923789169198339372328935397841999094331338301288434648079461808802371302923772528644645287876742916005830295911870963359706132234825776033689244859383047109111652865180183999324152509195655613395490718205777962631353183138703288733297840055014147716086769545845554308299937721923140317107960097895231301554579295432107647215343067354349423606182746605344090372910568143106746304507169804774199802377858206002637642289031194311442431134357361253781466093723079974056703226840551339477190020121019310397123954640768054737588573574650692633395393097823333830528257429134355738467770081048534537648941558141844448878937696852882747139886000361222169304363012523328166720300139883166524165407070027489136274492323659896148779220290771833693150197954086058964359475232370849662340145428554273581042902280543378668881160679608767081111223555065835025177721754830377329321336590474575868770549645798891713490045237670141048307292390022773476563063741345941502846999004249807369545478512820849877032312543374747204331283874757534662773150320014709880649354415565321777775036160413097498143189241751140050571901312419163610010828037559264253524050050486290923643905095712710550519645880501959558226009306565518428957143041350542140744826745623327310593090251841627499263242402025775874373571138995601030366672746870698251783635635214601117752153725356091296146209552590027292111148021258998144815838880232650635742231892449052625888408779156745660212968413570601286561247061957058949614414558738704809881505212969810260791255693809767657743141689448123052616448344673028312609411667200345203081410330856483758529310245300683232699757703836192957019696575880931402312707490206685942554548659269163764997113372228105043507769708366499053019128184057910780309905096890230604721024122551834598341972185225599382566557034623382952689153006784181076328797879185321495522652979872722833103442857683915075676602391872583706951189667086983335542150327558249956917667557441972814360441865340937900516941668893582833308224177528673691582835780655080138868048705968577554981637970128544465339472374876985017279306303927040577682670201730018718749805584555971891271980308314249575448281606217786630277101707380330548459476478156512439606933401704435164020050327186479782397395325869169562922558183860467982851688549582469710359283664695226014342135611012772026827152963828465154090821440752198825658059875549510674252408046223561393640117737032763255344369263711208465064655341809565737765018509562259313024277923628391207830262718019574941144452113797716729457848379311271937237729816887632816069447735421487812599429436013784353248714068335472841067484175699102401775377963305047064946805987756116172731437512690736403618003212868872280865287994523800253384752375069373881825381101878699653797067266187079130200416971357613926326570580163539490267984568475782600116423897416033411471708191776403927002847476742480338526243210666287605529331830552184497875762760945837706752207055247962260623769583481149917002937228183010150582158948727945120659727077901190948279777012756693176002820923461015697622042111183139922106346148411542377840331706572128643026004644041616865097855380957770994081353617867493496459673469750353245185075143546699129053916066094390303206958597866309213935041629550724903935675804707352591079600336542012025571491298846736798768033370467706523181495328035868375314809702402254405231968282161294338486788147185162056211138956193070116355649010957424198182043289018712109524191647790323070213995494883432931427208351301889387865505064830504061729805168740463760256368208542777780746485993253486885527540446290542212108162968858719845075825057754706487094942900659479559961425706720939044508087941915165047380976465517946573449479623896029975863379123004310010744623919818495257339427880710302691434661058981891574273591026048692755397172253389899402341685049795258532690049736482308285161688772638026915915279324125660233560410299227972781990080470336827268252300296438175652653250958415540222094624144638239831054498379765267196315867532238324319312980809177000685783759493489245009137520429474307781222889783963644094465137724035237636271077158017868677256055947534984629905875945161888099994644141306654276157316949979550734840656124109894196968804261757400722280623664042407112487724853999175555412232146123246930021681494194285442619252430169007505667943255863342657975785238757790084929948164364926559447323706850518098850916098927130703268357227044810288769711581847724388315366291672168747488537673324443163010979308908720149144280695553880836473196684275280865242121858680252180919491875831225448463526453491428739358966168320463763514091998400434636926605825192510926827740801770836365332881214072279617071179011064237476456432699509221097333300928233642499687368499279845357149646515716872231628902635650956758930746573544488228905565026745076518617370494020385596389385604094430640682663217754614927266311060138737229114972022166935587703092073471987896669972427381330047450758627958566502950090372029478468001596553087729543736972832318995105185618071657461573753879616630504449027934212556610778982246872555454217253503621579714088905673335399319641957664881230227118592443964044278468227970701243980655196028406084250523712262363511122686460839541698544618852824189507236571745774714319847846841047847748987908301735082659999950589846322870063245852719547533125665384595416368145539219723593921072591866485350138960892028895632704124282175403303678371695840543820942125817832487082284712869730873991989713038019579981420311168694944534989148304480298359004850127032883504509393189191882002915589155485713207315995514878860368920592729349582778149668500344534406216265031811402606263448865026739638769138082823095748026792593944060399967218274665394172075457996881284436374378301690493825678696708729250286931283827085811692855632377061072723277263537813744523444553512649902782533745465810161205335017790263813346070306405546460040029332582973549928062991379527418396695191510783669355355558599928359967636730136935010803921974982255166484921754696185931458873990443147031416340009436463182173618784873236402892031314610191219506112081942048311562795314301923451773022690913302479272351460555702243026378154380840644103004912467686542951605977452379191155657532870289223842603061241901994762722647646067828600938522563220234386866257976204405960911327834164199711195823095111112855630574158030643810825567814483030013869923197050925050888918659494850098026933077125411412161215793824821293923567658930775609562139751813374370733068542869316733971622397084926246841813475247047318903260930990590467070816799479976890905626592751479251906434503825288242813788014532250566299638776659860786296742805024473271942977383483031161512279634623453108457492588998553727061133210217224617696188999258290986944252079321830338466363596160511824038797061975539389392276447983329718728777695821420726113207179654784949604549078376329712691026010146632464170766437827333332527097554562093917863965533056806636394540973840223772118583083667656516162520226633472548610060060957641646475146738574598127521593644949986435455872841211672149626940375156851878958348687424739347792779126940736479590103856767841070121772793276093086370642431121706809757193899799792765880195779259073464837522760717847025522105849033828437446144159123497877164219095686477507887187603636179340745016227551812583202007979632282316527105290338844750742640460437617948096964175538145693094116571564615225065849922612630831095661381917599618692346203946101386645187496413194804530688827719332399097564474953212248025182230807561458901345805860905769909225446694426983195104339424182582658505759751461958528485286135457244382212108243428936711506187419099761520851037388085052583181666381871237895927991905369572466207679612311687183430561845895553385945933702956511545951815432159303966364869944335609205022457648159294853285357157786502597710450597980839341713239168763738045599275474114771045676448349520898525723683237021606735755925691721986464416515674527994090560278951862531635591963436051071664995893902963809660194123961161589497372298980257879112908146442489911477886018934863741437683176747274269098637900457091095651592705864302878323599572021751808902593292444840588963449692325928096345333312467832659873585920413696054799427024019864625894089746994865202277024393552114934523347680716503734444649664117219153124229433173831175252987520579591017637142137846581791669277747711156558652223957536203813100142540882542074445434053812780536126417467355885414045009316372588695314008051056832327636975379247475419515925306034461238264361869441807909769699533090666135832884825859694706978583083194197617610229010714079100616105631856741676809491696507506582234232139822483553845738865473152006966142987638621940438631620727999327088340078466710932972132748077640729184182693124877723701352497404471182479341631948134778164136733394161977444697929351293983564678035498666927722734158050445805429338740764381799736480581351720178568451496282834049218200604017145093028812126438573476048835487905561066676620518367850740393929214562394363341387430942379374152044813960953551958421693564593398030555266405466021023444670819457117176196865626001622585466827365796158969087895010957781017508517380515437594423698209841494538409747612929974572121336737359256584424374707271610669041614159924600745727864063601021585298260488090555385091407881982826395855918089438671868941952267083295828834836418393417255634230927414756051354582243983304450089037084785494710084268599641788107769160387205507338635113504465012990680189164764988913248365652740756183625897775481454880055242016153472122643348703394099976978524379900269716925289756028769015490625951894475580049771036982332799751669502126908409996743921299867191132334548985549996373009500731407742821002459737450339708956768800735168015738259248087757888434643873317230684788452649661786381725438968971914710070923735804123377342526376729059597310104839752483895207625776950269727452079809153842310044339063565252042277940455759339926062635135727043980026668764579755265921486232491530180480850107929119250522608144189024534974310865043456634229345833163932195714110164778737172844811606711910033681766761165204347642365491436362224726915158613701491864342854033204856366566133739560753663474558793909037068245668847740241837110284518948737543138678271595657712912992458090034954581251505892377421730125500025418839318012997279844446124875442486650203291732867780098029267252712091440951054118130021754596182498512107551694544105361617082488459833568636384063788190176891075226556875734773037884997656951397420823849348443811036900311930364621443186004907224787452680036573554693862994259550562675532256665912687355932209681958211608789380656053090804346576467539689709080658848981373161661226872312138435782401716379244863272380951048293936895795577107151433854869265125152617548443778851390265394022194509200247412385282435571390473582329648825964995997159268151264547937436720447276654342399184157632029351023786341499932227313028914529553747655867281339736029358930610020527916981954207044276556816869377758828152149369753149067644175740546969497319263200940462587477426975359844366393902693675802709823280759447282126504354353597243615222012663948463485746677916406111068824055355923887962282335165966589917286834810788240822680390135192760631886853204474573452269975658898167709456837102502560155191614518841440637462393251892878437084191199872325971867759127975648188405187075041240749547995270954275696879299997521995547132289883268257171889767139676802168715189899529985757455959657723556254843016964012914287854267181238371294995263051692730074253813268593535684338695009266394525992883504037872905338222571099159028094822453643629803992978587749547846447252928781486282581479272837809311504825279515354160036181252709216735081839800577945654637835445594094831364756108168860554364176893768689126390128961008491314883375200163979070546315072723325783596933985747181078979236004295951915053512783660800248069524247762860683495860315668818534876991227198777921786594851217130997089166607392373090356372746288609339177795236789741334416500130835193849673772867764907224819393333664406331003728311831736556825471197847682153199265120395225730117999737982139758406926619984055791837968433550251109015597982671514998818107796701682877102740740873513021367885965754231447129647321124386930885271942962116317967961634709007364107192315669197960448104521052496940829066464767559325733788667864123907831455874817659617663447431071896968542445893749633208801161987368842183685172090431782692833688650994055492772697149484757698076019322723442622116572842235009762188904899629538695699917581074748000487263795940680578259499410687876367005571364799948914713262288065130841907023536400717436005594392997922256910014087922390031889977462355383211000995672820827126664906168262463540051030902093955643725019253252213691980562704917742927736349959637532940476363139855263585063923608947324679519522297327928595448206977031093949045412862461694735456230758643281542905849719158756909959941602571617856097481984371050323935720196814937629258051672519383119430994128257504179100620645394273602492232682506725223616984883396541533025962387292135528605044472420090670433176137848866050803758675016570138799548599165898417341260341368752759175002060814523406105388918520780400369361600785730464709375880593258785087757279913130185167801847357410580522139232886700726556769270111620812613616836567230464800204390746021051824443747023059255910701590986353465192407293977481745118472214219520038584028707727039126666736498646023082284828627610129293412471256291448846636205392365555519747203693431442857021223292205215360855487316641965030923887011355381483893544665290312615408993127944091546049713163034017770349005662688317916162206786408945248695289836733615173461238492851037304230079062687846944770763581371081465310608540372266226025008469505606873251745972845848146773230838869757261362659725474563135136530218350016396857207763087705485095026524142037010297374414418092214930389832945241874040014884088965287604507192174177734807934716121514787613341126318828267316593731886027613368811676174258794704463536427748972955738125532597029922282038918187365956942026826762460277235431961239863950969351342631572160193640479639087742817847363769586195861302826765120010496688280109679045533986536152474954443953090849679790608101162214477428130136584335207352657718116996794041391794588046462029126790069652830158363482871490617305915179864958078414429590506655519096822061972725802656503687433045222458444523188307657792813661373146663913818449243339775124364367624974518768574990511129505441076564143600536695568996962137720240393376645641591975703503061927025112540177358624914322779279170300513887279980581711405320380084326706756383862243977129607566069411254828283247464871530339970915303794427204912498272169737812180357414867098175643650948432824999708924287701005580332249578691441872974684544161478219520520176301699219515670797105576488671573393397085863933212184738493787593720045290699550440564100849448901242181542429801603649632889187537626733017039672419271837132408485060973363625847593734649934356499721517288220229068829744598927850592448335793674763909501123524034079733031277469638542612347859928544426827826079437677021257839655992847621859428931273601211681346865589971102878680202830327113776696124459980843885525996677697023815199061952911838066916481527221485733719329796476022853335327613524759022580974813776197505230315881075962714241881652823011461366922203326695973735037670638414848719615798277215134807846157639351038971970830754291022738668394170713398111101791925449142026837955504659218805958781213579064484917413744414383230670528628899626266141033442634748453003208245536176257546476269534120951943857506879490568021741414155592918449879550915244492841972645331665893463548158401505414389978771151403016744643915593304492995672499323917076097299998143136389286330405996346579035157286706566081759158233221975166384802552603647599829765060891122990380363476140897145986078206344026252289595143519416929882619318260979600573286552465668549943340072791317127412739281845066419168152066001576958593136541197448544750576206905158550972855235465765043335288145779688561241473331491791622002206758638515590804081163998756746733489043999699256198512188193964035814544198507174278955341589383248085906748308646585232890517376185110954015066955282827212784158837117163125253508295203835021174620364718337819289423484316310230584014176162260480769517912607680973754724337467239249776320485726034650311470110614856489550969961517739674734470055957829842868185574242289084386828358704000129238508903652309696739547773207652425338092293102059373070568175795543619954549611720884328112518292811653327811026436857426777341781539969650345384493729981985445024872221488219600394209916163208037321237909787627112987857467039021419860578940511521665329208738714425897180441117029676095036978121766663377595640631806869553645516693300063792611659065401353255330383719846394202437130456960399391200651158400674537058410070850917472865967466566166975762865919375866339261691570145501637132468917576920272132872952747395541323585953757141869531213292404306250119218284982227699343251311486028667901394744167606669980719053015102760878049637254963875541328308646483338870277225788926621298339576031815972900046518963410240640032667156282691123737653110294375769509676033998865333892956268537280482069750841361880308981827406987107527835234944198781228657141104065890039812018180539237072064159162017580701553577018228623865591477055959031886539005066146270217785885416548996704102976958700728497585124861938456186196073679136888726022632789415938421744619538081139484021977996343743957119502400007742465343622368245462320306992078877852906128141581915726997578491917743517280970650509850779637667707812064503350581596058970579607849169945098844354236316088721968479380158051166931828097626838874518686642935949722762070885289880147441593693455463735356946033242150005540714277086032918560429041552642851198082267643099366020454775134746210489136147539725965247002255734143193677029565017095073085100100411796678908406611940295004353765889042773926851587494445558215780496942585161433888389345394632683299212204448275611851684773861161811929110359831716302062895643993905348944627636517025443954697525699710297145541352974095752741373136010604037111430913116153272636784616900628254020662077617940568711730958233963578969968193385090151011977053337488339231262192989767738583996075345185154227965546351510585649356467752240432654110807640352520967695637999248884948688739917309868267839950260793175286442070145939487080834072531938828072007528966496345140597467872005560050489981714160864666359731835002800453690596521509219691951868880942814191695127699013602784669440004474877265092063087903558103713607721736778545921977513131588423429790757869308882896008846494512929882659899600558088938350302008338743999489423270348049137272110533261042596310938891108778437430757621353748829549622345675705352083760055699699992530507188757329932854018035243820535111928512773711528779613249966805365079464176386334444088105605889646540530504821283654747202737844541082600350883652576300755804832832202804372169403787503626521807941608177366121967907896507212707401652653700418403014410593170808465422417801208878354865844026812048615290013832953686289772043542661048060292681824538350853515550405700467782129787631669720146701519580263729294531171693613850013872365976393459121325448830260471579832462082342690398586601925264436083672958006247895850064841009237641738590821088893090608993959191703293168886391181864422979991064747062668479155098320773412869676188962670492997646353632278737067082960544831415684443856238791967325803220160334976246732269795241068665511297514106447397466812519193541940890500062185215221096566172830153257048697083835467995451234161404567527575292472299791403265152093792874598194408832296764734091440015250443838185758988784404235300606329367553569205830711997987093094770016547777898584528874169252672058763614515979950077655436644129539987939602167019603330745222203473723449353338095247462502037616410233882200201112935161259158819564034353812392260677787075174408352973379400756464576080197897960716412835804000159820017274158047503605128185322006216270059396212672082786875663365534858825110776674729043081949356190544792706737015590265886601964751120258984642873163697835210932718625655265843589351206197179328779980811216860731298307269780025145137492288032717266124825370202710158869047307386752713885730428381470937642518383229749529381001496751616414192377917694689545491976606240436652319363647935287509212815533068036724917080228536362538391305362764256575434913925487945827295611536068586363254554755804187036284282755354727820313927716924658959887871544545919306441715684608650667446713904042695257021378559207804933827582026760067418291933224026540133979324724821054137645352685904793522106695088630215087670887997655131515616766279210511160962279499939314008215783012088905671203944173194433281018781561594216839168555676269661856276650487088894188106490919141976707322655888087860386920974155350725270486532894030488575438685261074298717834801273100379734454770451956178908819579797285189745377799228460429164438921885242602781681233091165152579861259553306336489783621928775167026226159999055109308093343357582579978698923074413772958382858902902705768979515767838787828103661483132186187517486132208035937594460726862869266780778383018176022313262490696560585929313711174679284923152018519394829880942597082004002296189822380991725056420648461521994654707498751094736424066450718659177901133934701619183616219693436656585782891213346652530132403542857905585094756863512609397309929361249969384060784216553924976775461051344554764369687288934055599801885776868295947228454391487722520952446365360590247489608311298534202303012829568879253260459786713706083457973629993493558322723936653316609129630411722458750520005841166655582639462723155412970608173578974171218628137375500923396974284943301105206644093276691244285587901954693862305601618868836447946815512782535186124286942273677814009808946513137880943635619597336510257770255990313043449191828477573907155587333114495734997850583690993778661848321267321893827631975328768794072887085428704300443256505171684097301320622132821128066346767422937297023907857350291878453059499526273866751903862447023290683375909859580379226903183429991847821032304940777601732220422961387066395662831596729609086215408687694659651467422496544595744770223889663538675645991680405774882296463106163920574482448994372804644885194712807449384506697039583725275228599778942584547312401469419800469412196755979507058403165965488771525050913954725708115510386744465079690110112239984142073255886797208305120899974106474929541480179274626519177939373370509670296575924009132708266754456251004770054148546519034609975984709159544914187306756676910089300474333261305235598046308477573719093989223739867119732423550530081689401760636916235873016315440759546281713372893807002730211978153356232041235359484636325799831137870956323838423293878907781740437540707387053185480867354915308112142571413481534927702520352491802375433393500122535692500343256432803912809990220567963649502579670002763119667792735208734128991990374854995533948335122544314608067986474128141102182649180031373947887897406004951909760798475653711568358756179085777288611647293765960355724611536660881176480112578173152411137181964774723697339582409103515521126762925801548621599119680370329302975173697420286633818384782299195272998932446491265007626364754579512002673377869694262103338887110131392591483549007926019119501284537909501690166347133273412680483588204377039116250050210594832700742672965422555656520153405961452021113577138167316255823185415764071275920906264144186783051343033751826412039471113871004568578144752957957897533970157925133439944405571781657521156002464278530521628075396320265006685288763676525496239153444178070552332081896015119654101973295090075224795425466159270525924140528064800929245801345033358250946922553417002617324953021219350655160704100295944446941548999796653707420342811190029658424711913478373064808875710883733601417065446658706577269189842626368471765619950418538113887579434495382379854422558691937798057048609451264843596006168253074057672436452012269013890046866776042332249702179998152533555766204386150799321268539976976683591425996755080471508287789009917656428162285852180266144783074658914019959763318452011068244347483954557448011334207079870894282577656664349412594475932473001562213345826795179998491072368242521280671227869414146963159717665069397059459927793224492878132329459047494495091136547481297405876025694599307345092857770466512090462835488073723585115747558515733303326826977518309904027050886155190643482005429238566404125648341860462397314672011862932046877192248520702908082631537179085823928365298852374166095572084415629405139599300095015415538072979158492746247587795958809991431470905718689915745374152089439573283024757230113760810213981727139382824193314862552628622272824156166970757802727985955751363243979996316498529970299956754350133473195209842694034745029512141315748767494260564467441977381973018398572375259759870626514664007747293545495164662025392217526294501489037090139818686265015264961364176737354774758575626480821595335224778882865101756481925863072786769859883536436595725664359907255606563366300420886569217376496781880956736874592298526777121211113538946970028954065815764508572468824113468255003499993924781353575863909759379414343294447019719642751722472814442670282834730636579141151084810664488776917714022807724030364067308400454652065202825872927553579761745358490613888994994636467119554011909804902852834903446160724453016975025793123468031302239694874914126565913255358793609411638234608948710136049679428153716042436700601267149965507502624235051392456996262817661388026110852435409352400476289750068489623635183425167455064678098444651450182513268527934025686891887522371148130389016450584817916330662359631551626818197931616682517117218929370374631267102145778367694438410825093755277565706027770097692495719964631326364240385209803350638332513992575867542904434368636713456111842976201424899289792648034028465846343517823955428287155383222786803307138924177456374714773277333360767895170738443617123400774281407009054267800686172747805714217423487285755224511826074565307696724726901043516052114859857195120713394077059252966044592319261317384436792814172019225033106481351010325204880542336347617087852784110815917981928041685035470142638061458878565088803642846707935119357000012587246850193223540667599722416939424191062979104632759747091352325595753615309499600002919736721292364274833882930748393207071780757273896235378064312988252764371601602212308146653244067754229794695682523028480581914232410279175786964684989104534372155477123337091053975046188968280830068020246207568892497971312773093138488737558048779408304513536429562670537999102727835145068680820514924960431401263371391159422371477791041703265071155762035593904811493326194019671992507979100357110797321820273036403926254154296951267208533306754558557162414093178043999478874113157370248703435803796154624740443985152852225891783465378839687103787353814763677159223714022770292681326725959365923133876263283695664355605853074638482716784580047261725067808559978272020024562601977717417413117294619182374359855701525557738141361913066253091129702057792945784218442773985726904502032398976497637993537700919214905352343173462976928753781662880193475205812624002229130773351025884716048456366744941117096721783021445043727881700301849887521662071570859752850331671542522853717264947969536901329698620434650210327237694535142286922279149901701024831700337732658673602519831542770480544096259518173822188049503579607965555513042642042226926491006056369257917711158075643701684392637789129535260828553639047034368181659599031556298916978593439695196588959225869204133239979897295503026237364027858169436437402019326315302355340662608783304433373361255301548102669136250927983553382963502926534604669911648005660862922684299004286253007370620506203728677616546585212093945349259525086064071158737796429135911034368332756064684137847472857252376657711542405170401090014635083912795810871366239498095343586231676100934421076929555681855558346693308898516649757194928963447704343510085386532951783287073107666508069938553109067653063113795361174194235903115590887973220116281763386873522302502590686081117275992260385729064880283479010520902902882816292427080895606411470673991480154418602376560555122757880714944576353066225695628326224697162462998247581786201598527253239803460984675262112549809861084273822805741590165338686166684867654651465373464782702593678103747997026779795273551627896859223382833465825041314111480474738066772623116386715599117446335067090906481620847478303975380878713187128737058505490534699571075758297318297933496338469111734886008773155601691551100972870460161511572086578314843853191440734926425926687125829701772839623029633749575026553765846423767535455188877958622341946074859746140512664612425707304792860519472040721619377261536961359047819975925449070588065272205148837351862178442366844206713860651542959375233338698620999779502807382222941805951889221811839717828526985867848135619637399376304176847201459339017378706201145810228450769795503007661233205153194666117309525953897933400040787297064570302350542951717920966705543467764359761542087730651576380071589518509606808735246187494463786760327575870411160651217341878454374729997713052378521329710133535132612855474149417872689423935769373264388857702165658043224782656111488257416039558063965498647038441967724809625976296646178140884317146508733119981783434763952097093002098647893015413779578308831805410326706177898913221554562573371555185090738996715926898936281250212239379454682896142697470684661934367264204949754479095345485759146544878053132646196107048933507288503779877662294032580325588835448327986740222487507358435284950393851531526863954634792496840470097809798965157402913572442473419646435735133584692525190122885595228528338719898461236927467913460063066941868594725774667333892064942940276574421050021835903414563591827091923893912093214026909568327087904482619916419235304312082693246041949377259608894661251662594760395249472558767015859773248211327192098760794097965599945658939340064393235585677739689441930935716837812853709614028428085403175544092837657646342183446913458379807760743301227302643242890577082103786301860922800708615599666320117202167254948120641981082958292196167547315007873203814178159157231996195216194187854615121073219740676864959876674881066629570357469210586185855853066538395076867330862798952023042372134242275770305923386548878306372041588608844917448724416613095443889286809098401204150063495226274150451956243179956178397834359034097806673970802478242841866919190786301340763303389997523361363519306779190122836085739662162728544113327097736671612218468396292343834060650404334828200539306372574953165275551243289194181967329619366096000874552049498279790373647657098977290801247781819984408344784674280120588583159336997605985595228107020538721710565534425828110879434737539177395512070710061646036967123954468735134356447404054470122297938854722799497428280305197884440389902707496970455069881454523139383017963606984320639882181036674481767934133887693388185577317794581287264757020603389320407584813484818143435919609636930555852415580807474926589515475322957725982631478852771955740522124158251182111675538357170099159348700091864849075357329371276736117643788735462956784355583319117740141962216189409186480813399909016226083469805904341071173702510373885985446063206059282994246301094220365838093153920177084385835647557280788030384108956652189814593356948108376882346481860361566863876639885707935776295244827464850536728111349921530380684749830598260504054466724411588556544589556532690431126485435880052701058616743696039632183276427134457515731110768307671017435295447954096183924297466227336824412584465463578291836728170253684750449271204328952981661743104577237576513615882277629428811190179113069052396689334217132047980281998248628524061253810236591796643820288775388293949039073136686996546754271228825857324959527535776046035045737113571447214775440517628737766118618255733063916992173471604917359730957821855219569468276212980249355409471178311372417316949401374045918427264547008137873896800020249472294696195417141084133328964560652945006314959938550400593295252033067357139754412078093040586838614558417248898987493889588240911480952046453345547504951296289257817477610378402588132252168187177361578355488140446242022682476062330549831502554622299576984164248498752897523617857273807861280206516586143787959746049395315954764792100924605348757532664219360659573910403832299532858274245355392783447822435058273089732579736489761247009469075938393576240797821364441675270327004134557101296232590515803777125714065564206954000156991235833789899971414923590338607326614750566963571349292891022067006649129965361099462573404707709207950328699485790441668470535595506519327666038352847071375281726010251929263346709454574157703863896960319467560174331105839062764410701189165165374680815672271836448530076932180269450185351370448485314441496423851815860614178845791743148383008020105268549046340378260342920771164181881688064899127887582946371724564844954327827060496886153742939672080871165474647132510470355853493528057974022444879575534222637533743803081104786108297240487107786219506406905476283381223313597863001231234722221800024100347468545132670880441231995544376653296961832469996454793231953821023165389718758930963443564937235905034647472814049720123468669205315281893204629158888690178594788647110913449498043876665039219834011217258785546520935350754379648439780689001870249007484453322063354513127726219654611632282959362184620657297537525236290068144360907574351085618044106713699941557193567716608936782922275485219967292077373703906282470684579312409043351643499297551390999411357542734959059079969385676713611690050012533033706893662547861083900300211322157721214462638289223310694028110721882088074151393427339811479699945686546728125483407392619154495243939621606868068089360033140426517029264511818833963683742877664829095629900744384882633082726174942891694123679731753914947664676060217341456459465497039241901331314509154460481611213449971739140819349812983385795579752238010687984834679531569528206567788804996569436775750290847036863363417985398589654685299067591260264528247495357406934034378438305145140367224502706994353272064142921811725706430932591852825660513496831451170957764336010306500656865260936368372300240137444201677298916998975035271834364165163737711556620598679126235999814886566801868306421159232229404723810492100356750928481731106975908247541484246424395839141580203533498939353832179292758831750584139797024521718370512043938665273129247084763183742423051613176958700507641531484430372011342960548544396253330332833690874435991514818563497487691344155709596523029644371410305911139673716802864225188274293130294253586054238129413849929889050890371694386598585096316767215536337499580999667650050726101821277880585263845433178535181408738460155513336414330467000012048763273445577027349771697870424732978332120944400389537683211325970151082575078506076638059361486410462430717337872965316411082776403895772560675061940942110266710982428169350922469450095500455066053816849764880533203039906647676841389218587396039219191992621973850225542067032094489328204517040812987474764360852162056032421121785348758498686575287495222045812929344794271025178578084178748866407794338992846032000022062394200511329039579018135038279606082227638440060039426681943095357953995999468313372666860555009753716825788976958298335599922889186469819575581143634385122750116474772038403140444736601128877513028134132782433020998910802829140269066739860954210573858671949161954857775652868734143135881882071866392813975532342597906154876000154311928386344779238707004836243937764700269101152200477750386777060821093333317384815007910879681523056463708449406411548901946594346248023018603016748905957879644047398958017087203591304840967390015308591536161032928043531209570133936649707748172575697545884804132719605085611040787283106450677466740251779887007352306947470407321074311150062739604188673934093114616645307526352288168718057016973514735270222590442415092011868945137389736412835367945950392942333204447375182070417884199496665756289020067444953261135128388400448224768751506697912382690556419584139689908007566031930682398536292818856928425400689873432012532144784841256616128782791057717844235340490332768947458508935922059994867629437764853600392245861983901279497202021752729668806388204058744960890900133942028762472632176403380903489887264599939820151393834814235091223586566226222640639758629356937950089976545761290459172928891281561471759835960406091742459604273538731262734584237118435774677073617240433301970604579958185770996076181750314334831063716670455047551166077028841676733496302775239212990071542932190422941084735626055427174448313283116320538803803108878398437855848996712856210584561765672144508445565390132709494768185377067086674586701891014318172337011226963065810791968656952171246745204026518258310887074927685826402683253888876997158949902549718908247657654647482868645651519360413592002193731698308084344588821312111525470476900209288297736283127470619532940670553866493927424694878304603818651807581646178163374433492953536167296614776728409913134528281340866999879484828881586831349340089482813042400393533845484892205098623613455381828114757162821883116966786704248251622635459333463608733912403551300129577883171438923841072455864587507725796180346713197872759318617178665124686605653769148238017171792451374567801574002693120031212544442709984413835419976714378947084746063097640125421194415278312618661664354475274381598871092395964436566582730429359256202871432995311460493016236521811106482630511008532524593889195681020498199383162031451301052386127551023382733702528507113007893588760576539893445234664853523036921483296710266329028300679418163744922746762039807255866778924563947085320457984264155268674873798544206853942647340314956138842287847771634130433547919338600978241971370781362748550599098567093462718284642788266169962247860586537136520325277190397446019048975259434760855990666080639369231789870696543544685961554508750662373866497154894227494326001007684674400099450770566937046453594568246712935569005371048642142860209543378896772941018738958030432768247381561663843989434280643511427464835287268583136283033432306037808674827622302535155842818730485713317936672647407682067590604049780931504930267807682272048940138871258556518667981028747071782104017827018091700032279658892739311484511231935492969003688527387303398543791813577280103361793231234371654236171323369358790358031553934878240769320885101209694665583584139750462467018382457128720423515608745967928515937911278377993354830824504329072391655527617316238468468862171263575822731388130756338091769647202021502368455797175559378455760227719713085075449865342903944638455301710398756065480993422475600576045079737412491518462066925909375271328335781823868713817541879562289708507810570429479021043191631742435091902147495882915646840139399790357997508423522405717968647539374508143880695475477876405380248798715221324451517497640778600526227599903540337488829906973224755022806808334045353871949300647158153655972711967121130222437803319617164096812275238485995646928844175152742410522691549361301957723051158618701810860933318597181129605072101673217710002075805412977967257665570365325686407093858802378663400233411865214088584072560778682560441909827587010702947337618503917679831822611379389972608528833433545786624331333479039931799730526540714934678336775828866018913367016942799437796783694865214691150421690057196436711406697964854312055635533869996819909125625847610227719554835855372484185693674152890784379521758639296294984623180652195341814090867935836494024280262688512390137733858019978057572285440953224377365540852530214594864413320504420819069208869342474618418828659874329537779080324880463475328336423541596728792392174503558576978341865027778412026270581519706009155335644835674743734679587602922529824977041531371843120569076941390122467459700474613179661808727989720564009366909335873331676231740870393827526520701761588801905125218253644751332109251947827454554212530563847638878146113534539518130864296120270437832080924288030250282909795610397281162921365340021605198257782420133788003328172453463105183638804247801735779986100548241847773849365564955217876334534709873836702425780862869297219882623868785248189980211102031841448035965950976831356953492890133740477180238463039346086314224619995844660135448082280959889340269902018996778153448296026546428135882705570003920818952793259004050401532240868072972845081806997841311296320365750418861663316467397891482038054331310960005035132205365399277788597317856010367230331378286584186632265752620295636192125997247210629380899783842125786911449485082357902022171599400942640875261990297614042021367406743950816688328577559679036096315589391769594887835821842689793234179942976013733474531966991455928277387866132924719544478856683700418388429763291436915405480758882768704483966702242267251695103406784815991774562319289950380762095197380015323185095743926302841071327120865119162503237379129816822956928804371627972545498360447334239806002046479270043005429771191179265247052747537840145695104072696528643431715562166998597878113614426052270749127661390138741486694207089057246601262884605673763119856292589743565352525999288002450987693762196354832250397193676889791584295966677089718425099028092191297992836029392351211330895818411135307113050352167001890609764315387789243086069959024313556307617959562497227202428295275143408719832161484479072809095639962083992862859326997865938085550830446794266468326057548815357524100529718484295749970733029164950808332974352348307656646617945490462064445473325638140240993134523150866069699337917534168017261221557361752064309104159159551021557733377480010253142048915841391790344736430724235141495195162672298063608432095832410021528753532763541420296181538982545514344869324461362667756591623669684360749001233850378309975153668260093929154085825736603826239049882879898759787584530186532674743092837410619277961340059904887730820548150871301224925862671104800877402843936484625011015146892104967376076353547035873193865516658218108587673378200778232977727099780789231161510842113275549542849426667024932778953034921631500623880339975870960778616649556426039775807011979711711065787029851132266598409328105199988984879259744415020595060292946869813584759867380953007739233969260243221681320154702744871038575506291910003646327943359876596017640593415606860074148489929922761927439812121149006576273742478348615711966191613159172293511826283709524118151857463411795902966580152477768401366745923029925849555717427229430115078775004316906059563672621058319817152851179832964397456753693972693943899404216501492686629295506299741881889002139045554360444163853820265031066582011834302842754291490717677395535594901996903463435655859876919464860307841643426862218888695087640288089158898157474228082932772820215255027924262269647106193037300624019827308570076200655780288345289341873483876418484448265946135076576234876705886643773539889915418311376640288892494729023199119946973938998770804537250286632945819301181342962918071541479428348036451081727650066543146296122621958171070828160163124291010037557851096206301488707618313487644743583979452436659654341392500924896017618125988338116306391238291979408972351473084300607885398284927499755305695194205903540148208065040901049597460290203562454895319172248285020673290702762451393006918078533448299986926458925962125214456798547777147235807552594311410777709202822706863158795675640266127331833194436689369190994338543428561849891560865354320723862204955508270840930835697161141829892095823517914249399638446001954358965596538435291319383377379594416070176665215823060493151419809985537491794962753867124915133522686199225526983631617129783909570548718281922693737658901867255931955198991994077629348536825808778469787248674390486671471588901450351130434961337547111866369386436078655293399750828273699390490475272557475127525159119780227133097320695069055989136239723512216310286552537601254758399745171852926420345996116499567724007578598389752635876887458459969218719725067077019210464825937692854264492136902259560549335582848057946072936487019404818499017569466283720508549072516373197894303900964802342537996083263511214355962879883186525736916169451822091215343255261877098853702301443151784573001307562996710232013977892124463045874266541988591056308897238312503270703263079520703916337923846174858746818276392611392249895710292147568738828448296899486800396797905691662550667179800714132718634214247099025380803523590835032097158792182031070734294898080749950775693414747110429190113107029525953074507332039669755691724838672789064045394754257972239620735145577897092844589868370085147821124233533646113192598077995009897257393471437009196215372676638166415957972970814261127912672542659412458756318721586606894698819158891942223392364889732569311102554778954160211480700234649015468545671454074149594968381187049288757680050556182910932894246163721394227650196001932590518477648233448477934014980028140244119230253012573917312139301897621506892766891619461779935810640756613847584346163756754775643159531752596166756015691338937826268121986971822308979039386477451923509507270316350318430946717574381359850907321806190950910567214022054051614615006656517979093032017955762154933416944349982816945632847671894218558882381464772506044457449212912185201088709504000553506256293888078515630056668973960556349046929227665531006015669760190174761587612873836437498756645743720206782207789038288485373391523271028856052337116430895713999408714384043001961190297968036446466254567877338330390629798419204726510635658781451377087626551131156153065565171239061314433739118235342931135175240850283471157039690700530176022728251458204708982354952826535317920893308973380732672997190818101040815500505563281132479448685872244589760173392745761363359747509752597297509990091935168570446922497511311185325270662380131485027586067673863032443589736656512180146134379008520255799815860153945641000469143333509931560758217420650546598140882835303335207827732443614359703557214284898758077757854206906955268836196345801911499295409695458797522302104619210957721718047291945036104186347594828837067315327553150288637359661872467964691644832586321410317360673248632745662593744548216782303298123825438252132712250317230492995470136603885240352187469662927880205968973547196198366325010384526470194736173672443600544546976682506245509920162149054677005866525529626683299554087512331909450200378799682007161053477092579142322042722216732907295145160514792502744660038811320777061285210031483877274750086509493302638214945644692786773395250347506036286945722066339232536866587360476249653494217372123307967371953396514299424459540210359093044097629320700513803303910246346151193057663495813479135595702434547779492185802596023296006323869624165978276300290212124040202199260575001114084442711726753943791892711461807233736293204824538827210959022635505086394678170035987341406044157077552670157946692480397555182337895205090572257389080805017008501953674000397133265515225691873850048204441113870761718337512839778053693107611943630885531136433621390957841036754176165476876214027749435289455884657456309929100658957595905869793260598445205882388949274989813458093192901933683732498237515219211067584123878021638558087283513286527630186247359011908034004790164004742261732154020888151806662960889585179883839896717815539632779012246391228263062265838500754772337965582470115487373531984441242841271850739761631965067274873819935667380718584016661518795499016577229109573857211803316166976236634707371191573426212884043910499977448365833242414143532173937605070886810660163656588548774822152409161642712909952880084235077607043129720264527131696779419656206543821991357608215635936758127532041983356315302090440757574924848949890661760761005635587732546562141152667354372976718299016400900727911028714161454895563622988908016511886870935700037297441970993354884491082113929860712174983288288049307221616786881001725327361936970277967308321178818516581414542391690634082466716286918518362442154264329907895071123265226582204959837340059415443504705791717569733591421044783833635096407921746074257997564523606650278960349764832804094283086363291950491972629074826933710871982285180708768828251185279722934881285039536610582740924920281766390803599784251680773520009196317414871132575477108611288078818760927682294681015130451154110865909996665178172384778118214651871048612798140877692381822518898948195665033579348756765176543149161132824797028946865149618770375593777044685084712814017964973008992006327426706670609625471222439244827248387231241681176554183893468795980481078923122651700300822359936961543243509977493886413031256887118234535972889955874582052330829237821319062418943039303450960322995405454603441610001454727617934436235360465954387873210585116147537639902526743720240450128581706917645966519635881184673615004791107217894418420130441401166124950767500996094809159069525257119312599022927126958659310007745191463276903913061106209794487941571815385388939902958588036523607833156628172978439877544739140292485907627667843835193310295768666084123813138344146013320864490355182246166371717049798875121395022312595066550531172769556228024342318287825502799470678294900772653686009216810834902912478920526610965628836051506913877374925072822922998520604665842493692960610964132682739196431542124867053568233652806379979707847190787346202986095678493003824771732800240478656350720528067134025103328664813194963817965729081466764883811610398619356301294350138128646365609585847961150019062570168595411020104855566747768154306730165683484206695572915230995566820007208863521539900414691316443456171083976076560629958348826183816443276106951543998383813435475491669743611718581528917517404353531703740320616786395389121418874552933069785613098827417446555532170911039268909063298573585570277996612908605150976827031036110329582225939609351710987835859896579255425626839811123291044688647935942902394169915987654645134602111160262554503964100460643426191307925451557602392193602664910450812290909824936473336573386570658099325791408287462260081960773369939753629906472535413812518018720194790146471644527212608730700187174352585864132418088308926355310519859149293691338817858748251885648555188193432312138783508566173507246107313432568937920846532900816966299776257768146022252005490444205634292467170604445722123509099118619467932395109268805825214683112569456847605148997450457968340072645324606758166343094285564635062461756371531641617067520049189775441909475311218973371450799799603983038361240969342268656180195140264399312189883735358470268482035459069529930243196402475880068181985712099441564767468929650973987626167628145181352018807607636851857852969260704820824776717921992311219357689468827958137840906417338274860844900513508033988705557282621046456343816022538139427304876792471346143200910492007902124221837495289504127599016444102054850316179534711513326578943931288795547745932240749427707993182867825206268836591776042322889308365559641585523432793011508336569727219775668140949599040898507100534491642247324744279461369116005893039671015112373202935849453341390284847834352474646644348562921238329233631503490341413566356963511437403075332663283149898219097864776330224509305202518576425357824674486661386407756047340988739288189819956553333317167336690711361126078023747038007946769512318200451563320157039363974998676650187809630086457269668638873001722266055539053409914893040414475112917121333763627616596971086044550797073708664934451581107737236525069937519111071767021313020055716366207985079241480700040451745771925091259610969029737572173250832122208728299683258092227240879374502785488197542240509018163506266230151567414827487614849590993821806306159707271938794093470181448668163996250589435289519589037887035755296953469904959324495128161777634182877626452674984755080994094094191554293004361838887820598730793260004959837878834474964970625690540517395378219546503604884611550897264432925404425837841054133834405845628582873300913108666995766539283987721663603844196625381596411796508068476720315183061025481546603128657044097165196462919057186069636294118741208453948115133643409490830806143538419180479786586093181665940960488472038546845500187524426680133883249460110700246962909232072674955754886056452544741985826593115285946669139224543081556557380324686348412558209168597754861986038296931187494873058557522318905220715979509834985033562287071769211012863250752547566384745314994358970571375748678522567248602735017506424647828724522126997083042342768211966590788155768090544760837094904944115971669354535155479961440015343026334347708509363326195491979620752949546496559921329291266752455576530389929421353847509780489128962653690866464609796984750847514374088689904150828138527813294310556469701017218115463238423622061708572161692743884433231822408767001096204656768362515949804805291730245402414989711449290099898583072527873611785523863433335218014079233835849544424908880185991670933034455150621892049838650283451551289076029524416373912384276912669293337913496020061055490511950922600426658331925504685598250840461078287965518376988153399277550918694756589327260432856109537666744836151556455899534921189220538028724615455216530307186394259323915704451559426815049443891911265722240451896172235227344500000632456636879705127516598380955220444154577859793668602234110208150518322337553696643655473677913168491684680726362210886847577001181814548270133965249824313985594897437720953169098703080647039378947493042468987396932850077792890597439456749306986886074528038195596420825666983535621685142734684259989076217715334530286944880459466799533870471823125996740189874046837887151821214271361580136833723473661346511405120205723626762028132388497782580556132175280735126967778130872360688709067088754760769128518263367295385763224365901891394021070300784175492743230232909458996793029186340184528934822547344768674474468698488745323283057906697778565158056085809591790446368439350043681177390105001060581535058191491001104836771311705134007987350599852289614658997623721648316866127490703206615427961422612677537473979068274127798435620204604183899694483571086652595395334526757686748098977800643286504747128796873765179321286038715707291854998542258285213251337030835508111277541706578441566555038825829095809464041437972248700434590643521910904736925701017092367148137392475461344920118279592563884327632768143912535597008306413536786999728385776484744611568150627426019889045520932988980034930084594766054290349113760243862241696219067381047415573006580992597419336069126363060054147088859331525342105404062756232197976418182319720136559534454822794051159463256928267766998806116031630636255863787086428875418164646228003100291200887718352982793507360116755870266411286194541600396413973511174244570344074515517490408403148259583464477365258015054485434454582189906153650218191333269005284930117724238641378256959268168013456484795511233471062176713238007082820907871073332621276566691244104289722971890780455732326718998556771345111830651686468224156159616923766196308895860395386858383932173590289411384354986160995599486432063603619730142624773059267703970583479960904495585536796312209394346167492067299482662117218753354491444216323089547322833446483738296954904329686062410056833784313430401824150579690878695898650843339224659300850971492935492453337441523666634556111702406680316411186610139845352917075437347596445084577232877729403467176217064137629570931200662974405547004687270236125792057054257604235199122116115655116385152670142206171034961674426856767981351100699439952766050522301692758179665933567381326153971797595594026986551693311568921089010594694599885680383052378947751850551239626331533359431142750763075874802282351165885748940036810092690373811714812340555767930568419877297330119587438490795017181737286887262009867526942472492455609084058000237114102189298251053679593536433082537943640530624129147478915871202716516937000429224493749587092941832434634379447390443066867730736336949198456004407655684325974251926389578056322926163667558734024697565527471395526997888124865321173209899337352085357879844632557159316212257369973034970547580535707667335141822370868669657230214263263759187750970037692076136980131216301004588003245467332813339559199709489723287469808976978920736296514252855012645921132711245907772038582960721049233490440063520956350828061695542273904255999420119282020854692477186842113657882497523289083723076775425548001334303848374262533055979203648253213609112622810639660243565664239123369408254363264593335585852471722068637850976222592837644457985265743097236798780319154432232765597219578098892199479971311854300186310860106609855487263566357698608905719596157170742368101167531990555560573809000271609475204823794434334545393595735072037979807625632358119374346105320662081663522027957703120357699267098103812517120037168103231256838454408361895415485993338086448120670093727885620906220811836879699044393228954686821593076188856196903636682200405081345804256966266898718711355192441794250748091263473038926835609863705622059875093627215833181611497285432436668805450983171626405012304699847228224970815258027663270797662814471353692032893931572518682330880520675568348353063646911325032938426421339960383643164369371410289126621200700796506658136350965497659173304747159637766553936260967933591020952085561459316726354629630104414457022351253829497809845360210634101287533080907086166520982934140336295738228730425140006866315327777212564784451544780732843622603199552881279169472521081588039534590775532263786254287259118448332087601980462909789858801703557653567955249867649121244091111425482576145997364716800976715284557427998437220510676556778559793051043356512222709440730405841414164996004026124077752568692888990444180557143990290208738675722326476553772873598096609623408628980487676370604978592279596365883664932126309773983865662532174974600092697288342203123267720712215641649675584336229611573995503452640309862593041596857476502125619583627822384640510503965449249390881562730396085490376027552120569536166588571940579092624447838334265798728696738471046221699151734812431721991769969124730910720415127168273358320274376769656394930028190963262932253297731521665466961196364552272372044072998121851673132358974688369644907585859000483172075730436650517466353165828957072838824411554434624832210233657884282804944774093561987971575938238382994751442574685671788677810067984779193468857693431979654872724038352833708459434288622418172667640337176781650047577605325473317952071500608584584633019188943839509920076726404898993632235975589075511804052171641213850579671111260361634160649605085727774718441053658812085319823456443616253793627833210361750933675671609549456481588114234815877484388224048365549895247809419902628279343172759990953462687376991533261489446728189702360791090878178397441391233333100056351108280768567137418348230718977036863825275901066740255744482699745894720468810042335840745460254169182977293042275316444390083710026632411490802022730360602815195662744199140467586674653240365529528486982011992578938021228525874925314095483980446822196970639472037957801082265006248585382153488483057671412467226351751356357980765596345678932024544873936690252773220267138374765554884032777706855912908355927879442560125807325015992021526171259348795343117934561311603533877258106166380898537525686807942923654490289874870810622067797722644763997820450247309891088327785904038679143395391496507358671706856008023422171302617516721738702290607788982778110644686701360715786872090277062716524765433126291630916351253529322857482233788976994734315148128921181493424976779264365780561162997303785415872238150354378670283337962582239572993396969770453732730142201876681445127235214366295753571350327216653785554333553457762978311315290908599096543145754577732699398255748923929568336977865807778289876945684940500837971917849531290756882215695340266514646035358631649710963793111280827058774236424148046725384919927732646356218209755188610296937389491192217390189053669017695075898153453919142600634765473534628241505861382882418067444868603602806212593836981324993685605283715488772525729190330505236301758213839923629003044734132890153313391267272143908189725250854803959119730357506833406969870349643252383771884665519159000797727978556601699620934806811101987523796683101127968118501393745590975576098613824735064112332190859796248593637500370938428998046621819057384036806646965402420790880501183083161229536171380914563177549919249061871385821487490757927476004451320333045341547728546971090997893084408462462358217718722195079233674883929340242388185522411965562390205586321915593485013604455251584405408910079183204462283491396683361153260693482668427261523454160825631228106459650707557812160206085639156765773980780837353652452756635614514880068988358456224571062736805945010619806006257736405363848840185532474800143165982501965989289659494192969771262390697581849294887639500022059039059451756860464789117586252681242377232314704436262232064713681074150499332787974023922794844346980922208105525154070088596064918208207271845472437238231679376999749285852464438416417568536868401247966891919936776348454094484956635657171674683644444721378297168039740429517974679530943780613209703174903928306272650119722748390335795037000801691997925525948069536309341001936745674840301393638621647156977492716535346979254221487421214426134289827538593463664500462470687121343516966120403568612686284492984345586667982487130727922115244540063505401187300814180868263764148241249048690381913239218527094862300160039710438659597966674682651859283818571730447278656156476493280575520975111376064195672437915603478718545434037381444884354760100898283424561865501975716702905399304359905063731620179880977975362642561162231903403530663333070712975813176035701198751229568897678208966992100810599267433723102481326237317618784143537852519137043668095350230490525245678046190562968593662751504675064175424580992225335377111533499981052432786091172790802750932805850293263788920469992474370270391612944282390762959802193730686899219997356796054269123686485270224996772142963218558244512250506627246921939130949664676138300255318230370581372792838976950402148532828677458907798142249925797558351057179133211835671535527380706866372477252816100955700749106103788963155385349455637637016533829172437486925902145625418786012062435980130284412119163950299095832795785372376263713790373827796855803354423351653071119678941725091812226765453570944973483402713621888096224927054873006893220044849936094955182707222253781113635864430995004660348841768024501568138114073855443841197234607636606313438752545680164244463201366111991667106875015564933068380681160101880698496176571781201018142718992763010351233727096619700494665534509806345305446852676264226074695784139249825001662413775397140204955545861210732319435585315725440052630777020528608485834337742012115309530224924927539091530144933239533388746719628096577776854589270141590743888408050076576126331640770245401910778973466957163179457071003789526485228493323703700006269401482134061959019320449778173022701838625611051630130752946222660885668002557019760356633591762649170462322141524540721233596685251484969863923501984309568628406909590716288857478038814478948828935260029994291871550493424862114164963563568729880090653930710294341557800905241178317858039391867186127450824770997300235864182083668201701365349462669643417443393103568266039956759582719089936889289791556080333323614778589675857000111338078998562437396244894212315772724125596598989594443560538091379416905290988805716465883181658851630738275774363340898331702122413262700801696487759499857795330093250032482741171748880916704454160327315668036279692639553992135072816233050944695691121471843999524700587697829569125292144637138491388162154496014538763778032522905262577202163415714112606687999500287312336685160585300868727081029543228838391305945408104313226799819904287146818790421201532837110516157723871212037209405719123044894988080266443038798390818828275982186257841922274560991417870278989879134587802320403507409850849731022114801267523545271259631196426102772677429103998641687683499572848287237186124957334817081682777031423053980571961645206430172379304157011771279060608450893310357246256125105122642484929362090109043944945864793120188388918865394879085427008834656132411917734730111663534948364286491536311886564529527097196711712070322027046724563294041683227660305043393438218223038204421860328484359971585302024514140594986991221140384202524858639798141235491989499628568642244589445723104330263181234951819561356197624398498386038205935724838741092505610190735532719539931785381669436825132315337832512440051252608836388834542558379189234283986673576696119456821166931761596598920326788579879517008466049767523120461240493205927648872790878059935354307393532393993908393747326656126371807661325896105083050081030889224839546307669625997926486397719191949570152575361200987732675455325690914210669666735230440904691549505843950971652190671124703678090343622906072273468855421771071129666013154994444878933748713959654853101109268506289376864274668658478797083634369149389491407478647694800416586441996748378271508305850481222131902651360794376139247186558449298759848672431239042951175555827766839917754208984772458148689898141595862330086042248249946008398682120339322942478200867162967912691554280802567501358463530150726454821605702916943277165135951064228639806744049422625514535954548747772225265826779440702487999498683324341002871872581309851845270144830981895591696143193140406307707807948577805042252082967857804875699033670318596288378304230980994917987366242945784202003504632820482955446182165855659863890122405836672926497007830330350279161091673329258416194541773172835698073612189671737738832170622765743458333425228423144917791763502262627820322268566547218506591208451104186230016463460208734212351241586946577082054304040375555613099568950869039499107754506671543721699472781812599681148431162345847037640504336931103537170733350741948509827888272513322665949326304333264490576783123171353665504597463151461713036286427059842398659533554421325906380174186610214202336472626775488222214086694852016676545998876518027844744028826692830613717834940582535604536293129696242808798789456313157669668601193033203940175930218811130362384853917297486463882994947446762075663171099099343047980460515125011444924522172556495894328663655479668538770673476432938591078495866961286773592060626460253816429834888871998832016559877128273434605385787610546325947453558790051651007397600676179509039807599836341726445445838207649627532964514265982463621216355018116018120151445550409973601370219189984095819266372122247305699323108290884548470695084775191977144978461233223612567119353510831022991320832635895648528267065851858516003410415497165986002955457910957390652312634761706351873396020528675010148645758433243857452397754538883570831533986690469285240536016233584496322263498927886196433859960688116979837213287687484220378501437680336038655269048114405477105368045732230921096068503242575411367162700457773541362957814875541486742002092292320157047930824684789516271774911022491266045047144336645785092645998621534310449614352290216156199934779318144575569070718595738175193189841716164343852917205030582786250998024935018838925047935142816359732338723332806533048669228923906356999702591684085320306466703102170216882309441524503090321763845248301736766393256067119408040244695601566728567117699401802459389541996022680184028305879277907864279854759419319410114297304778335656183429760447685836074896418026356009251679384868764979310678308777209649101829839273234175489545660341163788653155339416320278565481616126332088614631506720667840349250008655877412950658804840940379100986627514085918086688838860728884783817516212377311826319203372922714758885025077409306344636187079745210031609088103445476238420104712699679606800899640561547813712836553485736507578294673669948644132013489746191992089427240465136545509755709899799806923715404552600964434763173079102227595636660300005521306938069280506295982204484546272867876033505109551643626925550479159260049216733468359271341714941590271776067061809210063597846655804207813255965315733533242878147108231738704413499186100075693239967618076548741895351447864155589087598817863132525651115384533706987853701785712079831852397369908437707082337244499412816766829575787761481947084070333481727098923310010298852993652612300570759155453545936408618141760767662590366930161811395658219396688639993906804879809854977111489581281142099587209103044626819440114717507532485226533933408967646690046347364368678818924869686238111736114385971319448074380514946413936217892369926435983395971107863169480585432006978015195898979461530745706449255068708271548469746062349988403846509690069699147065908972056579915150432391720746233086611549475373048154648331493286736916972716260245852695740507624341472688791415343885468112443289370855185210622647519427104392544902830902622346094646776609326262884922399749882955459305572963623005401363257141185467693779904134358962251181397671752850533978997441210734903482973296004967521933003826381607062346731176870261752964617010434787019990144710411278068526452449032105182137403582055329769836644761523020381965909773531305874747275424026765153269624578396616251698088087670590799117934548261522554308637735326433604581098781733293695425842825970370533974275612648919245342978515146478358491769746593182562656428650415745644322017735608204460795571365766509808201850391371275577723194225737215299572740514738320411116004507706718837706855617471078846745823413657372345714373074614018916376530036593518642059441372200385325098967179283575251656506077844670668779378790847273566859758507446290776018800151541290599866601354087239491873699680994341122848217642745117157220896240289713204489901574796261973835871293560610942411168487338420043709181822372663220545432242608605057031317969593249605726421137881479765892646164204947694230385594776586834734616545006172951268280367547790322458668072132348555292946507983798887332288087216462633490434774286629940950420162053580313866173768747734339663025739867317408886562047112009842808770884695739993557453464801883486145790466676664993128442372721501336407154999846602064983858527522463475664624867941975189414296606990591028541497027366689240885624938096972711103646538422364011112934583483567167506976049963828714041618292259549731177290980251044249734014863326985674402918553438681857601099599430543915244318908520342712114247317231719445469492398321939755745942936218423949332100326363875582924496360635075466684696447495037879378328175602794834650139882133723610299742920977548916251633236906646934104223402272299400917438622039696379108231877212304350141347691916280166174431969117598598180607912427711797008127913570488541321540663028810568056643950890379095981841835373527576010642697869730663688888787878421673272083866983592710004036385989516465936634207263461236452733694562208502170497532967874373798319504724614547962037489444870145270450354261174034592249381464108594592397890523598399879263662946334453480617089931334520922766777202917721133561462624765154943113075879017103595269769528076673504769740782991838337108726885072391994748580748998683839843988353644043284052912873961045442965673333886763958213279446903381646052340648736309303158007883222480643891084260190801873467473217441659272934757126971798539109278885057036418224471196033529127413960511337186939892751911774072082540977360483371098431431227620870092551121627250105014174582761004384559376618905818873685308834331385855969487003780252727619898061445858964023981832715571793900647742322409494992565796996645918196961290812383214371379410647119514561251874066459503109451002414291632373481896362438012062489345148081286080264144231090288631425363014990486472063737701726517349802491047963646858650927419971843662786065703201221508395993053290258282393864494033661050591871400800456369204337439723826539016170146221161604866736197820773229647689371201550133912952197210618087828980920749564217694009850302264460722593955432342395148963334567848572664433166634921176473502789678892728825435838297119256341075012959642393821908719887937001290940299902704293552877221474973155865842986251602151830092541826749264345965805183366549750940279942188233281202501597827074142552347675329675050687083432587592667039535749604872099022358967232868666992690032997628571563347239987946942818722028906867774214678956395962020333895834855986824394062578592478801029982747730030850653395438132525666581178211674514858301747670079260828608372815313692344479824567250910151227562352455759518205418733027968943936421695786247577672794011744562336452553199720294541543478324511242812676584884919559787581230005336715896580867166059095203984075063315810725785783617072502898458220830644265646709667312531159914206603397807349784942269542820977861284120616425967762044915141067914144407862121686184514878265502314126972333309203774236608973657035640196284071613506115438573994282248394863146700149608841593408445808952810506889320566829029406438577942080758188326512736186884517962235525447946055782522539358488111618272213141148974734291025713840069349942207804300900055381534449891639514378430821096916416166491603483296108294067312714284027471508841323618926981478356618104007288227257288800705148314085751953317298128256871563756140173410745265405619147759207761023939676077705347263706294866795252872937728323722797367141445160043693364651436791998482375024701999073746315975050302934639623885473431765551692921995115496271327791774990163268658669519335994685682066068386326337129794044075697525886481825817378412302417500751758346942377109882610737977226094226687625094730876509382571527736749943059511790738252191899816641607706795120578704974463760821769550273928506364376303838125536895192143344966835556945935344669714277419755313287662616636191753745486222041127150824126587621797700620479595485035448442867725864815139585228770793762882086287615874331634961536020695007693412783602148058882319349335080586240175816345799602594214376607787560304021993704942476914234304935848984755170668219372704747735734578664097463615950886743568943617974927279875025181997544273698068698990255612950358389122477873507061046932354853928315207469909680370523948341716121174585961637974073528642193100658267557541012691527194281803924031916920496260032145435422011889956235152550516259279371131988630960147086585947857252915303234899211859302078817985386678670362462648291833927002421898943776102984778883889804862034899943918517932564194210564337346443035021310526109399782330863815767708055612474257722619783320406620355178689046008240090606547554682051757392627647897845811796959146865395430533846411912868069856181818305076390402927298557254728483455704473242793348105013690606445748613294406014002202429380289617851911302680614563178821462582597926825147287036747150944966973152877465677711765902339215496674169855592374137173394183121973334779245851788126652443981072805456041128718868741637286814034802528234443256827215639017250884970244245246477007181204996128445191735137267818292798842354284085540229445415601489900658085159508754015994890853444870498531458430334978972996032650090064465303236670263300003401033937636366232927636389291200663706840702262825761416996011646634347236269416138351820797496397376182480064328652236273967813601317397106750766923048316660413474327728526737234126727480895172957258312727924220980674759200988779341254373516171055737963032249376733226797497636451973448896208104241803954328283212232638688068400424713722832017640531305720005201865346763146273963091015997159382622144328673522949939168917391231949735608529266604059332597883133320454612759193668728765306384369134004170297401689359836486124035298121073138416590898671929969588394498078328438158142547058970172685486089206934253839049074794136121362393496289790795347151615460118282180545393219562940403591891371724582236762931043679464543747884033058647926011533151446956655268242996729145223275925658108004449845974409444880537140229356116916832578201128829805307191741213093100184793528484773800848294070130255932097510820736906269441070163171415445213591490805216148347391890625687342552955875941647361608727901102309983172192658037526674231949200910602874615413022826719172175439152221959022492087983455112749436648916897475403067930004715708621749552790491740916697415209103973045162567264914348765483901245454708171155097890479870996513669097176167907736588774560635471990258797634331460895936629935706066030721897808714616800706120115746253390957292450037070773737838406296236116630058894431385092634247561418567020293553209136222513489077258479279676287399329538404581816076414849524964380431066260611339700181210411246297063630509018482695313800017451008066879694040084616812163675498415361723301352840811613872668580141249083765467399652969247007715603590590156833778228974639206498357653158812930750821511102569877151674612501334291591172583753619351652105874468537281648316179088740579228985326739789291024922842673018730315294380384165180130202295496294787844938440776599192404803038743822886189444287366312785516572755550073445058366990367853802329141495986164526859658192210724342447117135248092966032353372164910481623905543094299565676315177805967052208203003756174422033640944736828774168406066799404836154379396632787887022249459612946974900673497853607663990117653961896310588635354643374518285915353190265209436208567041412513624491692662072951758059209018829040916656601417781937307634774889932672153731446953787330827209814656461863390237167494756560912683271225877688970947180631618259254378608190522610315483451985333385015022381689343250674639042265572211094548954524676827351035935802870229589541591989093375127125683739025441111522901706410092289784192917179543159316154090103858512105634952366554652014004853470651437869139614357669901376888524283611251125592773891514324569599800046055383786267666523104422675922496331025173994338121503001804327896755497859817002111803631276129490566452842003421466745062535824856817209812475360175116720341596753101932911741375469531376186270800818683704665085623229598677430148212821742083634163620954030432871736164090495895131477580008120806046847154617286626038582917496478909166828911711748654676013832840604964417231997953087020942294521475650825370606133049630846898270432545827466521063751904448993907794818086009939537792909533072677841141869499687370253270896682539634572709328801401187303036864117450241363927814574004467134925912764171558609261662470486454804326547316014197628731515985986913936089040894750955992601421451233988053672652862178513866629831622352685411772026417057228089629172801161266877100695768543882244597472733332628725145372142572034659005168542057014075641707238102542423335775918225173766049435253413783199791644174946759076311528927792925637070144708568152502029439687758434752827581972082273072476935213003019641321590413742279952812129230970236649703607320701908169911635996597575766393889350815187939190036350292439922930710397740743100083121555345629215487556336111178179249071343082304982139239012094533243970249158935346741094656870345843983095112429985437167940024663805730506020963558656695868167257964607082894304238332629223125738506797031871228885971119949144957790854640760172009407131463311409108122437578252060179226649607014052242637316400415370251410993354447545247416581509966297491440845749754727000514497034911163074815118293921901876815089783451803436908322949869267266292842033406924184922968932907545953105272412875674536293342104063343221633007802012889596216290930229500584981369458534230836979662483612705745717946203762888418032747742786622737527160226400308793852849243784315525678226760619083618166564729043776228038755939991753808094935423616697135096861574478503830632616313848968497545339983272615954101623304196031694679005027255533473298413127392755500797251598212343186816065895275181802251386943716145771278729946667911414489859637352028459876619495893040783822783729273652684633973439041181914110459228896470172854597117056472297345593663857171526612332715560619452823372161014018920517365584717652565154427143292133572756048851377915347417539494310181750854610261537135577529487241103480250854610302067398744646750955369031140653223132606334726669840996178742487140800264422886532146054387294600766350832338814496907381845748806984906617402726687691156013371695604871481611706926903481500244272023675646657203596854790658473317454735571574447162702475189429383804315269602031899537914430166271426795662655030600304603052202394709329360147098424252690709502854681734946751683641118043621109548521907098968719236857456875044599456132956153269878471363822808623654852532828214669689583540222552033347600258338141406382434561472768955129945686770530374191949562692681207668704524027829453916268380502235603984585922581737914432245459435899628949098269122141136949539862028952384354711469501220678563274786169810459927663896127380028021575773578806389500920901118183475726128235962439040674711178149041892032367950736893294821175007379902598775972454741093364896074494668423164870593210887533230422288356544113251778251982460878702212947823285348269583886693569729938018692378002542073300455103177875373156352192365429330130845532457495022796937373138942008006099184930520746370022873648712599832593736900099336245097268156897483229976077763359799054643210250089599462056054101489203089249969648094919517482756215014386223781053200703252743596633074752224205690942431866909908593604196351489261140093255480759091452362532065782266672422662204177755104044670514337379724273487745741298197752411378403992662709266955321927966690881859504999602957200278652315020181447947967992539476662057892820716764584328142604298630320330830062149247241911987045742751050849121846569476647380353779538991938358764800373176403717048841552004558145698903672523111802089808909435441345350967895985484627183801846176483427439412233841200000181155121151244556600396915201993583641194075185034745620627212920462517100221077204243600844519288442973138818740449299412544751375474579582252294763236886049613232822920520520709674144099914871130401016211850157748766242151909029103222225050666702948071778329957640188376222194951944859155331402431205586565274270035153117962935610745625305977866284995902713164257709916769387858632279093877581746630652128053004854612453596967312499179182800168217987504010268750068449226382005379347526466023759940258379903418936104188103661741682657882513814225030758758184218198123301617445725347727543842496771005491787126253320311838849651888283287307295938020956742694838413612794372056291038262835410384637789088999027342203093739169844796457972380624177441575856276211650663223775307729066043076768965120389454919653825748066391146287531045650832580875025024519758025547371026358452508384485531449409835115397603817506272741967153031021451833336567959004763192728404861103991320427074249763974696739174173357474981359458165817990053892785229480137484866918287048917429955615823245953767603778428069935916745024623233916478193727508840884213850678398791400467447440233816294668895070884979015374280875895131959477585299053695953349231936141554485457774001025663705432677184575459106267991373230159714346208681705726364295030094313660415556069687618038714797536267850071456840948069111001793739202221506227229365412293338396449471625607853689104955004282465125061797516611492132706925617493255989566920443853872362242605930769305169988648158668783973298864213239584470420278593558486517415471622618966726356039383528124994424996487441666655417399738622859459200862289643709073861430611130255185354142252454275668727625989887835232382478127694585561442286293813725575779219579057855842439354164432272835713802104291643526052134592588992477368720275788330075672924462923442053766492856381587579142618691840811225346005938574118435214623406309087220079289326243680226931069210786906215027607116740982021161219280419934927765957036200017763462818602560757953728336023723265512352669733570263174657274947848202042929766489595482732635581269663276358703167068457665775867275358933268413947442851086235344600788038522908097566332714168728219621322625662396715776241987644248369347697345011010753038274496435910594071532049774412155591068132829017231468101286403567395843722351458958998292022401785894886052164449156702325504061394982262406759661623990202469208420594429709131170966346229057463855901082691687936818720480462125891870856647093182845018326297731991797358042716534400741097904802847283855613432192896281864129975391199612889869634850497023650864919509772605572700301257490506597886257162986725116746474328148433392084920043577341352004639776078592422868243677704240745544897560967383372405234960092200038940609820722720243362356460385266839736390910378573171125744542981609313609226919771608896734371914934457601351593456928965129609790274405957323783901868632703275519788637061425181249873937464829436170991424013912169111386880886083123021327177768231029781648552514906217842821410840336845018411231947353553098785795071952907972246167632576765204660551137282057653645992785063817268874470421331754115459287906740921018198239970728222721938005678416537003225523004912195986712753682831465040874111054559493850320628364064110722542996821872869442371218669009015187928046966702935989600869085864366178227397173402942308737261868507451544390945732311837780303922664306305720584453759333666782261034396677576333591859995619723669140287076669794151928138693284727099786684666745757880259248626560633582458805501171896498336779917519421300448262292402202386436326390308410187030220159885956337133438262689990577233419401848796073100550583139040063097156969446077595563193824340020637583607444779081726566039409621352350482886554456461406074669551738462992253311314476099804241603198770258671362115270399707716420640426356265395570260431281934169598253120541181480987414635953118016892717855049553220269815478463687781904292298108230416216791833820633116308484056577594064947981899796442603224946810573223165688359352166423677411992383852389216986158484510231228030195448372592883010155543336459610933589624130476275360090961912740978132506917189488814915364131619648398985019814867812163621773386894272037770716236092151921144670674386686020044869964058396182404431848640691701997791298355098143446475701506701851644661783621601151509601782507651038866508580240634285196642459412651264271462066898310725839980092316578786569324166594267438548137375522065014654792886121677624206018428419095419080879479249763502610038804804836093089840063253307291103083593054826511120854235331076736372568060008630943284489363313405190300679921281570631093161315566245875877509632918120886195730464330607311875892069896809614198748056415544964273616396524442121911175447555260886958713327940989962426413722517872888955888488319542672914404253965992973938208398737779338424869707800808148441728671838995289611467951414694894411420365539272839469904475172301746356406566329944700266315783660527547328336295664372390391011074893781189797776248888479444082520677209586083301580526120495118518149483440121968452315958723613952869040336263764742296248407171025547055654548541045405689392277014949531734684754185569803812128329993421132397886880795936981624184521136381763971401562272886883106359082454068003054929633936168622086933605983948030976875568601324083376176052086115586631221913059159709575874500049482974510088110486363035884118466462582726661479290223891011368927990701362564751346107604400427470474064458799334198893464175032037697050663820712713043172739927372560543427522258476049124039470202768953546662714846806937190029812547810445130724978794152244539849076925111280512867235878489825330726570575799304099459273695932347961718720745889974679985042371435031417446522102032118450223388002478454684570748208668408995098404812713736167509852094206889732621190875832825041177386810458487917106771226408095571651095234472035828265377209259987743237628053167243514067939111441673064805490525555669744046570303272368627796578630926986105889746705456462843020590881413430212260103648039080912279563252868886243434010896346636170630538262271925201850759927122245319516824956380229676354878747617288906242658163642729868201478557920959172472286805914131640843950895270541660268149887331606939559191147953922652855476068847983563459524635297766048617466729812079882514506167211352474389159391883292813177338931882551313158514716578583684550799915352797114520640398234129446935215698911958594496500014687116345747495100257728447874461881166042241863305214603085325334404554715815256031304957465050070309554284419489070490396733103924789587981789376668610688327443438026404730680791421705363056537538906267541343624768006230610983643399193383092977073706231934217618587699166204358115944095386364868870918643682111212489698741393283970070496618471524382371943927038603448143271585109982228105707548552921775986333295760883552545701189204625070585630163118204501011774584672774291974173197653784059783381899312873262287369078259580308051425993378844483331749559848523581847010224680278440747727730137972833780184639306679965909402804496285652771736852351971709778327401583905631970197721102600756776115244688063948216379399561828832685587775958354947202491654198519349186563951712672122931281780273188787741328922748225922917525679759893131295617746603202166510241292107192209757428148445301866181578358654177273225593131016680404627456704277961313307540383161338354096522407991777246820979142310647552147017153081980979180131007239053339851220846186526230800302416757531405240666119879224101267598273034397020633833986708043283180375673952194053921738124866688936438520232237596825620110690259788147473247807877508479725803055259925485345748726624952898268540799962452166021568755796591723802894577325840736107007464740053959435590993583182913464468782596710966136547513592225135685220787275901005632209278558402077142239751767253077445430416259393648096548166539846615620034746863534114874995007523568950452268549138503049508512942328424841043237233686370356821833633609938018265053734145203520553940661909784426557652206893395723349496001528891779609981533726755726534407483935778123344482171780466120574401238320947848858944822195150512602474585622410994173054979504978147102009117538605816804678751762220702862488419176980622386780324895926659847626733518662045925334809944419621319683551280983601325357696724683807288637037903348806274924967266748103336809731485611743604167966623848018975848741633411117744549445042624353804116196129482942396737698206158865293370674283471061461295338897836821639128239859087940537033880108208798505161944951862585545903783435012906694243601183771217029823208706654464313223623598683911212446288777908810770619152081097927663619416704896974520856111981825561113398130658043185419493099152459529289075761519830633273508393604119762164554102091296362339431318804976273078283927010876849545227447085134038992421169647634238404250913650626378234784284075034025114379269642269853598684664711035675833287094320717234469902065563710938072040789105023727547006310153151069662281369330406990437647518839321431585275174241738036928439787138036070171449292348825207001995093660526676665850217408428546081185395608479509241961705453497954765540091374139049588295686731910772233924023781543120880835866370388948901568491549323970774355667648363558932128607137441487457086643239436460826265147699552004142636027098925042587627184570140309198265536473287223045768318732030022556946866976773667036045028652590334468282384238571607518179820645737803457566931487856451322905884801690012240330999554908239110246848298573240042476898457566334708263404420237079757633999728601422517464288682836759928351543636764037429633009016272867813950169683946693613942080844369037364516004381058306309555378411104231351745644748590379938352074364618099361843644079800520921118377580332985909796637176219309526821277951108611277674760926752144696123392928666891657752857332894548990972427194170825423064146235080653522012957484236779814949580482869745765185879339610083193406212037644597356550577206465441220687992615946474672145022055452672148617539849405784507113311154103686907522169406270246829788402753049256929756514870282780921597177149227906268929483347053888458954579447968377606140181174925969460315811181231955534281045295939244741364358944701845513043309425652994618810845073262434216660664630647236753712275361981363715181638029213249272252626558586772413912545403227329396782321079172814648067955762169088675869438883855507249192576529936724430190917976314836808370453637540256775082374401463204376539602956061695493507595517173066004025412651666926417544851849962128596617340734953972473607036967111490497787950834142740690396802702647222493730977290336416444545415349638143820632844758109174908357406329273958471341649501834905014056507822048318893803184431949291087636510820962952557392438720278176403784372292483477917265925758294916321675105403024213492317859345124801840159774904400087696431297848224876845756807914577927043449623162716681572065665210097306632983310467114115100618879146136947389478896672241948780721434309642551639119880476720693446010470295383320587059457398685387575079602451790548478363359435537181829616819064219949998468154564264980292575154651404687445339554093099563889444818846894823998190541610885404496190458476115153652770581657365017567348696797896854356318188398569437178509282320156998838592925293400360540997088479112274724415107934153648446590977279142841770072197161339302160672953327340105298382681895585698039892326837198600129086496195720433976757985830463429307414144456537875228061837865086627861494621478917264474520547238868053566340815310045876004609376055062892116482762780854479100162269857689427212009375445538185881435354421359173848721668700178363865447122676365614061321619412694743703192549762720476777285265314082133972147361823828040390782158686965020173763953635128833087863892662618338348807976605040620628967474316563625847430877696116412996093438600470604578732321161866589150864881419706755568256052172433785866334644430795462503967201307122916018768800933359242635107543198654917546041058229877353682293529615534762091297761378937079244133091855065697499498070284593732333707923719280296735970338073202324860742922914866460793785083807021068964016681257999776530548777698257481921631367710103706122685552318466125242980955217939273312414293240679664332701681735248591844371706718350863689026193143642622574425319290247803478329390866413797894678900994189087915050663148572232214590626715007118399743718791407424511326965439244071777578508824158114661689404418881830645021483926349871352215491099458983824872073722190831287075440325132080227319755811479626219778099478548118400280924667466349685517282665062224489902051765328776772450703932567614442328745274289038723295615372654983346122341341985130801465205119926745534401450757249823031567624862956793184602344683034639922890477273066006928207147416753420360515013498427259374294993289743535538765704044430415426742124850884571852783217738340838164728009716011130719947998028068963705617524097084780575972559989079552494156087039328436619883655261289212240677607754125164606602575391513757830617027329082521838663789547071033457073308639152791220784316763281329668896122264115647393024184043160734330816015782072422315886622096356692408173078382606986714385410051202939719413314174005272378326206216847706934588200519440246220641118509904283808687620545253820272390755910128646836452060662576278816926362522218540046319573850242827390114004239350993747693397393735388771751370036640756823581954160563680620697937366641059129507578010033482268627920620431562601153220183607928000059745900261948826804601321014063771238002485732896166660298034030059435443417126383008611453213073947879343156152856371746070856359047194307875248302592949671646277388118003591955673815481133526999565396971740399955776503534662517948992463701568226790159242390339554822375674212460580220261458411165778998756100167660674909360668857423771539823729080937478680324637183747048005549971389173146328543816096320248342342664996789460833204255430108617074910807392120540725043647116011831238143198972645823346027250403377704275350229033272342231075145768804502016615168856913820853765365327431472417738583723818297903374888792531864959382638492239644322763966284052579540406682608507076982029668936514184015867057676908923233356839448723153392769020853707355050491267946645532057725614240682152359796174817071568889665495520615642095491080870234544629918091931379532313234752400363157809714613952724669724180229034586468215104408829739387760881675714398702282883288982964181718265846112638204530434467072030357810120607955238895256267568200887907601169785938567740539482608709099421888267649736681524521664964870485527821327498896635673721001260797864875396977753898089132110505862627876224993232968081300561870115414717016154768713521007448413269875069016197798777309825269843163955741235426972480127984008073924615201220287053383019422629575681984393236347139299353099953940330052044434048707180482165832875949823835660465783315645820589103421794466894772897428776540373664323427618660919215194320163277575579928788788709333556475376704363594816034382099300222857162054586870725486715911815639763987354731404084551497404078711108920606900970805141645012788740575902735034818479045315971442298137201027392142637510671805317186824710508841799721992885769004963725339135692080493737728260421161670654649510612063869059825821273098047569605221574540201466119744261993947596011087502131190723998264699089029604972255291742337858673540948370228135067079624820517246808902436121849324116707811915533708736107766150830386110781664559702561312632306762413373792733763441331726208875629953205219829928968229537692322223279560316069298637368022729014099812561140606471561005794657475031912881425164002554007306312335317152140098692074780239221758893067283278060055745936521819351624694095755814860148726162453189176240818129036360217861682620779297634129647711323307844954197862028139029738235656477914984805377199010695528243982700175133321240695136914611303525280618472752123287220380210695904442719381515886369291395255548047350824947774014915773365895921145331239488843406025869649082399478289711259563778657214007648961144230994237570318596002793089639615705484488568881362908711552842516411246808749731216888661288009954677809691762711984790587829509574901489579744092512556171506158140170985490676790668174394635631706390329018818536414596499790599117475091249502195772477318070180708091286956864541722682451814177236121518632835272277978184628774634537986383150930640977012836464380993872436523959867667765853735962427835479009223366101386601995072099011092299573748409259369488362237995954437490675162665573223966285259704689818375410324525899022751222657767771054541845834509483325721439508550369565970447705129121559214062510350239911638597074080996915616609383492566077914126646007354088461919383092997005327523073144724007858899228358080225531944373789861225764998256247732232481296016584506181500133634514888730467351104115213901571458809667315068818331087090017590505264558913602504741894837061182244923318013310189442729999028355600027743779806208287929860969259915363280206388847513450997163611099007093486789039017130592348092674129818761320514449022820401141011748178496247230692401532840390004231127940948400107655981322786286656936270579687906581487472091959780759580211989220617443287694972462120797537546584835004915662012289750712173995415024915117372155538011553196585330022432213367690995011026657600936284987467638098792147069940425049329322265962513897987684680045958109192801557272085471896008768356475161476115204624324732272137718940459923039743957724614562111480261054281983172448299263505075436080035712869989981684839426549806888033433133352751192426082045604633488722650979595826995932566551334079308315679315443612914071858086062577270386182733797790183570137884335629862112299829765990579602462865992379586986037078764860129951728328999177929145808645698991649766651324624003864814591934407772937365911980470312516270671655623734882221751149200709603266999848080784772023280076151627499412416617302817939445962898438852930945936369499961125040626255311344280396048197062783908890092834191961036483649540632917595995956139192684484934017068214876525763418737287609078144533201630788827000120319682251876713792141782484671752193638006864769734156472016694109694504226799408481519518806615676837154504591460576142711292028336795064541660663004559514929849214242757821702677738508058017000556097627341693849881274444242351378946793957678988928505567266278982080325680065583482289538296217572318908876129099771693407602550539028708100693554624265596200065113622572329649488658020390735697642406466329991306985485576352143351615364033390896091582248388488105710823618855547256198447646761936346786977772984783834712918362290012354802419318897023436027279042923444631331646930867926407793795927901178545607866924057482413913128169532319271054171110285329672666755732957940322144070329966685713602974585681635306666334894059914798639792557299150114871138909737530819013231713964087985800972493835455378784184584156754268958866477903287494714533761883228924031417302912146846695879728424594519981120355090224359214114882202502945973079761954615222992649645934321448930720673440723176476014428573159925184708248395154670644700923329728679944080952590602405783388333872613684880699751427258526355963830478835467544322571606059321046076968391890006719490118453738949842771034778266460290651351751942491107542890025413318261700442212199553553979637479464494000270169766192776098843607776909126426508429397947258752448307409653684665551612240794418123124348520912276358501485154773127260011667373803198499993908622097024240523139528193790754492055130170624109756546277058374511598906036737660540401230896359556783781769614556112891316216191055110415256287404310783100798051277632431857345658625622686243003545328555700540232539274302142385704371449815984818419562360770123239888174706784872396911401968872479769569424996615180954453105660835417747351699323315784700958544423607309050424240254527078572740661550100393532888630691327973001451218213565795692193758658367164489892502506176407649985064670119481007203014031210534942217307769418847684440829732074051613169249560305419094694636063198262180011045218247618279889141574999596266440839967635305700655238201994624432390034051030968896097157533125040406234852286865493607286089181030722856611940404268289056540192007000067907034263100563617196156891903873366422208483948355229132742305981368039277534496377118863084059494432568309251239805383494654794048196068406592506477151860772442700279967313823222909668769697346927392279318630625732255740567426650542607257173019308014391504569692335094854316050714900674610461614960275046231304276469323283664648736112688427374894371818222867897837458579200971980764197620406706162713694056235987131050193767749946357080169980387742848591457106299128588369414679548791632291807556342638036169066529670788192318538258424773061666637033533589104591296190566430280218343773308105634437914862954146125075704154258192554802764901612070906965371546680472802850600245736096798099414387912405443184476540157271690349532560417256300464483821192025662596479388163883944654917691704114994965895414774528396491268549574024247344989947223350178207347817231591428183248712411144334075278536223817066186374653959469085773486131518194156697323596732811861395410790499516097568562569378480076871303706875298799172682697510157817028081289689130896021776882433152930132312868137975932960608159352785138147995371302088377302344609583916390026160798968724676049242328849525606132440535565795359495121798337431189151006115013708477696856189395757777550411960099074449060164714440115130862365505812586197521891973897625618632825506034600878336938832550830250515452654559708670029206675228397458222193529162985447234442260275607737329530228762426003391150246252566849596617793959674695680062330966547648004822056446934961683104336446289434951089267875955078660342334883396081858400568671448530514317849690387856829543585738317743849138154572558260281997761340066762664974101492955079301830515990466686757654114896293506188088818284346271186202662724335133798974425930536773263496183978674827326269995762054624554004118466709250275898504016252150850948063495576846108050110404601177568076910782569864364428423826879522669907737594857467641559476010076773431676068048423502746662398267419474135879544621627190914646564534024606310215416754644495799311609094666946152798996316365039551214453584553866742721781429409354349141856042889271384175837362871927517745231052896046442474937949964281469314835880585222343391588790756420874996904690308243510852989397272968287975330365392846568853693841825197060671556458839799540088625831526452400304830143507707882488357836576965294377088015820873422549091239328861304070532382514234469438184300717474433691218221041827288940522858020981147839414420181893330748633688066645977148801801024917334016361370144862511476873550601073134215686854088580316023366479542788419856208308149072924708653268498216027864528003528243968213155793588899562207470451277592215788411460751631560057119140046681118289189407828364392113146830071713457358123527106690166175827479623427830745779711870518000722765431484560615839038761262347568022163284251834863584724776087418641365891166624602390939080050308302757478901947062838857869199468111421305282355187271969675800040727755133984634395996629446252319870358563306170486862123794761280177206219170637607636462618618621811666961863546576386833163660710177241980938198912787563555390848801324904971237112215979943340920061336012663468329431182548312950090628883089140303349547180180373835118065818326963812668002172800521094563543055413396554849008022903469796005133556202473524936205915214097332966761936917718317408601554058323225792158785660564240925256057692513536350203940927086619345216400778650042756512583946477479397421612857549182510669776347074949052576020590642792646283871935184832371447919043102356637046496233231601574552870459750601941012605548928103005699502608623597281144323969884814962541378079467433747783350840230425082454518303703767921263791172694718321698793810866035422595879089203794965393639423149329533831147088222257371531873000549183569118124201334786477875704583951657153058555090906206852134401556373261567075130948735541823273803222633968023574561924961608356253363103236546406052235663916640168714194305516130928796789184360088100379601360603111503219445187946229124826622227096278186876567534157057387762512376150189830114287261099389636753565003751377475560624872162408115459097710898918494522965464751158428952281328624142079601073439463052905773154169971257168041051606787590793094145249977983343481272534132114333261783681477850492970788096087157915004389082597846599231171501775670721570143657848229375295055354623987073615538378631439067073218826766165822870513583887969504764279044853706970632095265684542795589319528118846034849749001901747519145100892240776218037057342173395532889923529189174732335271558284018181738209217433490612125259583781495448271362130347659581844876981034980737246239559959946001416951872309203837496518712664470052480368416248989054902028204118274950676225054058926368871591916939434123885661519005789983099664661910519999917085482519537749339487359214363711662237648569252641614395012685254766023934687772784904853387162874800727586115124831501853393775999861254560552097267181662301437736684528197636090363463427306892912771064069268069691721806441518207351227153966396731249298678441958956015072794898853000323408314350960461782615387864220812526878746806475459253584421900768167372657649656548639228047458044231803051222263114142230469688132042722084253391819848210279326918785675913486487869530844766157277055356123840398305985485496026785779889482523670923308677323968764902906864849305853231651381848768280391967229063041607558181515228914861569513292781417053627266912792647047720117692270190183969408142098493298131890139219842630890110656535697662707005286816949860456900408434923538607442646784057965630236791979860054832939946178260479258358851169222344694116505419947639512510653561267649507179309882201957027284049749388967308490768962199895647931177119330873746636231645134971784274962679245872722591902091639163872956137146713170115399950605882523363980604847833106370792718564966966449354650075558028313296055416015629258959787542245527680856857450440119688008727461526846687610577133797923814314946973573166185108719513375022908054129745826243624118774061800677856454089483211021262624114147727841860682756356063012054996983646248286398845325111768928002079768803174861925270477193426547531813059560782891001249861485584214762430604284662800177086181223009890971687234544709998156800924793795520873351730751862124852537167267779603040023636154045926926721288015363427862819906251120052200835702701451394406763509137142546834895406366833047138895363431320694618475105734959559870527756342850858674711418941987399294150686365830875084873219037383854717850798556029007200778720910085712229873478277847254437765249705798421935153443221328213072928168463472350178057664394404879128960229590634166901410318199159157462992828313590922142560945920875287828988288731024322650671014263846708341201470323546526155242703446474811753736820878552793147575483585598079264685113096503646369922211599315613033686938249706550257667743366699540712528219581948758578069099771261619700936396912150860001777196093815710888427353517397830256163629878535491446551383554837007424927049932911790998377168481440781468082918940371246199825755349150417207908997864444604733979321464047961144514395468650751734553223101270048181674768445356585555835910036587265614461303045577711692872178483124676845990760933309765213392436816678881504643862946465437809341101677381065776694899233499213345704258804095651927743885979666796148104319059548607358984961181852374567336466432820809810772207947445588398567266504445286011297238851476865010592926926430919274875930163959763019163018752778308838657661255918138267439424478199927198918918270816980369543410142973414307139276093214524269763367183980833072678824779393707934393880538701766304071007509212160263028525132990632771649469413615569738409796509169952627502176747935266252682970445390927320696044466945295609379922798865072089780077681796412035309103017021407826689674465815652383011218225349762816393612789700103781549398725042236473771552983378639267009304265924650313512191515521227763930644708703501193993725421704649415809176506440947402522715240027152334085824052199492337906313525978088622725704361253415227353096256795533268335045332155527405877099525486364335358275084863085482748769647950243401922023050585859188875157925770481492230429143145394049943894982812844066575256889991444237282572484584485587771613298088769128257873148837898705165849505248124762105803804889560438361620579879059645160866506068835882837988648260190862463984887176493628323905600239130458498930423558086560607394350706629813953808279126742002886019040928037788964589521453445937580590047907914464601150477238333337589973961673187823556031433277334378740096152072164084267514817009783622263599602434342071930994201619270483478636886828232622147304065206676230546731850170912728572475362014687349936143762376596638787863194793633624474108144276387217670168527554351888546334222572933662101625355864105857462144677104744857208161964830984406478990519107778761311723763172220976502081653353330810415988523073217352698293589584340068838989545906502211397194096784704024244956953378296556763019741825390842336722369006108699774460106713487424714356725951025344801057932277652531008845334653132327628436330734149634098142939506721159870108206015090923226851172059376718182371034561733237190982538854437864636411708677827319579560346341589189129230760422531805313846581916478584924937665035534539721592432274111437537649675304760230139375206919411135866719231436799357857140252464848075098966905065485820017450384119624429523229057962600551455828651018405416658593707356718200546458199714970647925695010889021836186764606639157047331100965309738968930317293189557124629630226915508582072411744262396487943940734751572132945331005461785905282623796267424052583773267132373220113737592445845663532599665704340253519370869433030858317469501240988102542196812082294189029964371716970207107796163741901306196618311920651417194948080552820565226606789626054992730877656439539501970528556338178779975667557580206045470281005207423964902597119279762366916015064082202549656349754479225473464859174821650903101407774778772711294888819792510592225905523459872472321729928562767948256083170713216906987002207775033805062706937060618060834939094958280599745068115562041626269066381802807050921129144578986358470255744532751979073015011653115481466704789219997589322818748296039238081005363865382530616662979316176383120989087242095428167002665599807407171254779439337563326900541947065610649676904449324526441178494381145646634519805447209111840821685706789352429598012095644151023604169844089603065420982063936977366629741844985057252165645908088073580457016637368708013806433317416534272520221754778769254010257676044766807235524561075812868138390778179187193290442760660110434869047169637874550522215216885008368352866777215058376150162363675021925666697654984967657835875307484747565553951812386576022797991970887824392346494216938897706832000585501665194016144134927388304568569400047598950157636750975617237389877067100012692423140228552632850685269325623057801892270078220500643940252514182641771733123636037419657792637958763449305798205134585290009364951071931232205061095883983551620795041595477597678807692193639821756585558047426331284805670356099616294382358237973791992172225024846918948392415359556331927715906365597903633366590582554516433639109463749730583506135919312763163850353337567777517658834946805564758258523969388424076322822931699016266492132977205310270946064904137248895815354801913310475688541846230249648554642518157145098774742356053933639836661514062788299275742453500694641594617862801339358541478159755896807094484254379168061642757778184252949022212287810081072087325370732750007788250055274148999764372689040956650752296881538916223493738332694304490737790614603825401566665903976106038304916850112117310193656218445274270943684944706017497931615933401004073378513087570011537514745963982876158236156021084422990780779751972730932255491207550274797797071805449860617259137731598623139925902156743040150905916505557108167302967869440024902210587222938021229597064155598063123749420460825550093462615432742396931360187235585171334845277868862531748834721208570939085845887478551274572353866160730392971778714112730965528535720104079310223580123786994872818627079925921638518760195169362994566385679053023590033551892565828520832127407417797506974548625132480741199715034418681390418838547085296950123573074284750873359796688482384564636009280254365536415082178052700427961729629998378134931298621088111501048143355353071145662626833931353455717080142307118533349161819885281230772224736203675831691453208421591855629545819423832934379156466876075385864227088458291948946982743789988162458801554273057583098494638890121395755236829646939910900200616368075403556446662773941225446678044976555802420639968272682603125427690218811429101890313108267701407943554151233857394462037890160677641513685513145141430877689204005839896314731731934872562474480650201021520813734924068777582424701841956517555307130965883435430774865749525160792966082743894686011384472985015152187791363330017342479210056450171908768434220412018438308782179402861827826884075242760001834077805897318117997344746279134601919457109250879783243598885171833658628762588201946082204573332196971787709548641163503797547076678451110988614387093077768010979532851565750548796752880790039056545027048098317430607249151703882666936701789959132673760729262103249791835495555754836437005377911061678731062589171367840788420070582993367282415946431405709175356655630116290885399131958490779003426016303038840555911000962292060641028707902548474014689058494104539116960219527141697504788759145645600064095818718802339186870927417330388652347764384818344472894119247793178822377697045279286996836909254319838194924175999180570965230855286126536468815681774217684186560472129095010856253677475333199643549206267668907010486304448226438312302910574854591284058758235971130775470366606262287350270336043478598092667135365273800125587956175512669403291234503596151011477618989941844659839336674788845510232146240412016178164337830943710413947057655787733888856899499727708413243826431775462643593343138397875672116237791045179516334959156253491460454744201307253941098480229653932847042388437419211207712587326897599661079955707712404285207150673684814666707129618629110916340235163249354118279502892988341482351493666182072843069766683899842935601387320219109792925964413980677360130089654385131902743489922615614528495654060138346016240451286397422438817375797745577686298079013032732701490026141706916031163689538120526047492773629415001170196690921677755530544983793588489271315611466201303868805854338304599800349355952922789215500405812288210722119446481113472964861274560128756451062212922560654262026082366099415294001536060288287097506957917628369601444610344177142528916782916642573845814991129723071569980069223507223479380553185996224947984840351433412945250225783352962522293251057392946095496536871121809958986433282945667927515853226042879591114506810108977124050655284967159091228697427217503641378129871815503267856629000056390030765133470693644236187696993240312663573688315018690080986620414333953433245764754210530880856518649702552015462725703409209154401702710134005590294505000951080362720275499272318556435767242028737721365842957785922718162785799050504260588798738982397251830050626523311259805186276401144842296295021948367277209479975813387441380553230274349224666332379088284563215580354215588487450944843689448621527014327373081686953741744077889409377899421505186396105986346844391998026486412989161842076786065877452962406334741458126295311431156451053062396389370756714045196842410832331950578353935391458687823857901614056778150200303349720411670337488025352742262340854906270536712637578342849139526992797556406689271217668888360652452396121754445527903879020946251117483556789664628391179305391352064757998004081773515869502284322208973446615334330278471587457067942751573262352066559160670145213874804999233235353119648302590852080364251308841991838753421399617448026858806289648373322382256234701893155126507574646666727449295932021655615202192655201101080079610644146967737837426750397919602735134205476684338834234202593672766734084564734450665893857589962516717304632177699464878422787606894920464702175306751159589761907649735775852412815514065022932063347823258841217304329442642226393881684005880707391748043691370991923053156951096139727502278410316908677901124744369424658297077207605922433860479727657960037187573414032019548570901931395590380819734010895393162131015862917130907771167920065093181066728686680552222800262610113133137776683558848122063232792070576006135746624720897200365488415325249694018063148403557834842208569370946266534320591031184915909194538644914534146427452859089514000831306360972241058092074137870452169642150618272694488765825722699230980628379450734802308877195793962027771927801297075996235055876474901942095208443823020194222381723662306165281918351402609610931266171397080896429295322231182012049784978480969630401393343410359744281328269342921349089734943331069568007121776762383604597353348755294447744157184245733535455494383683505527152443887638261293806817936995391199660286511553845519663519214619680359930501160089516963403875389829320068193639808771436448107600290654297104205562185153358275828803590401783990942756958777268235460649937328275310621413166015627167105891427475261831446517814798292762595225895454834092526663882495793398189512408549900379879987994850146891119497049653683731274845025703174275792716975762361739710297423926118663500910896039802600314972309746151248078229218160517549372365463185399771760801275789306702742309552718369068159069306846609908207891330752043232957406227362617372862701528172882364972974695487864794570652684184354259799415834896577546934856050017411506039184072649760082426753933181874713279121354215574244071624154795830092952954157442713834393114222116985362246493306926646843825499748076426988526585052237330178181259503571673367548454228587800380893454546527897734667732531975660066479920612895713839461436595658959741586274386116791289422296934016807577369009705081652150302033396708169698953723879455221784326756130369618649691784430452958559374356287062348204724336496234165050543285378425365330001075636662166194566109088357393329405362480336430302591832332898097698156450998839508353128715019925127570232619723850036102736931332900660965391149502258001113765655593945520700518292793489813010931353569365669065466456321386133920269559469549548365091969416657120050599101130676581914077175439123230931301670484534188773916404895738056359306952810905946073738239918972299817177273068066992043224300044917967000535161239135584622744367515327633521387231254281152267483504306993180873445956915420415202601607853458912671011196826586771459019715859570567499422172066141162691279055243082764404538057094075980346856647044086360707264082512782965626049959144111923397515632119658403911736586771816103756256095243022103666169174082249251510550360056034500970329790816912501710412119958653322390199460445919001208520810720497379747947765911336749421553269021896947458869640975682947904227427627193048728513111141323485073891610958043929219746962122391298564789917291216580146080412742140776548859216529111359713756623343388980969198776128899940746630577208265908154473135439814861721525287171057707812966477653644134222347595566122331572767274426446091294749594728609239343414099477358105402494236638692787343009040941619577762956855652086827902563954402475722042549965529934854908018430959690104745387530412229445516109456141591701621078712308312889734667012086204627924114583379062736383980558781524351661178851210826412370833340193712264606388522170717822676420595613977410626232948038032782400176950082809935670324717262936513974432121805832391339762839195430278948496560649024109733386537113982491276604682764879534561368387076821355227289667220532049397482108603001814875600199028190288535889238125516927495580073606435345823080007239672061715203007261228424619257394289762236388032913501762039681426065476296719435570116896139620033751069663608425610027010037657826647648926645518158378936010668076168532124100760693152213367046549084021617571748410703864641053390155317769587023959863695066294874379754847041872513153706103919689210964421063701001252068869753130849336969675731031311452333522259880222227256383268819232417611658186976729000739211093991627426405567401425040612497145671316434395327300278604170300544404272086918169346034372658008639484972876919843446520543718472992838179505700095449887143031241405517157593106085637913931082278346812426945089371635250886606646016176534165433573666691953581896245904401834980330700234420673078729698814306490151602395897135846021173335898890269182090512689932196453556567128425639877747110526768489635322927314424905398023660419553986703258230371500329379321279537203605407720118369805688556144275491328576644189555432312774671920994648854859359334074751905529028748352358165690272724120754015629128017581744372895107126369937356531392591624813029045348715098777851100209081685549357234568490233816342498885082549906003327810920052936315106548634634873820457109994492653187648712173472607453415924334559183601633498942017240409946308759962834657095009700158319922728294657174414991120013661253582163243199085564946800617982592900282317885514062035209963538776640014715424202816324550788407564593948328303303198823054913575134596915203028610455462293797066272689393037289666301396183653723139503638600801891586605693371309668008314634416918286720162716445772212930741176456061805310137528264403555488862739258740382314188474084067029546917617457797391100680923735782942343945888013057471906318985761237410356065330046531709049566827771675366363577179316738643859181334867520064889835181024848037594384311557433982839792872281355146621535956443756476241902284886600930214395290778986637297530360514259348268109038944515135030890842433093823117681005490482909238128263730277048006284305564950847036481076735897514283708449268252434047555320140368060692603406987367713093175184333961280029934037446820687034617150736297581610009729353280680019431227239446528217265138158179845441834473763574020451973994016623226201131680226095700085463393205053663825394883347235817875707765778708037199171382032331329242526937119177346175664750488944088448482612487477796736180909805145864411405548945016199630469395272070337786175080367491001568485337802093773751612711780903773739871980343813149726381652359788685123539419524779496779222507255745984094958769862175081220683827185486113143089647671946908609529127399556283519440368515313028377080941658453235608671641211527511452376832209850003779624942876807914740946060023091480410335897581081967933737794097510464345003716121904682324784404578078889388831941046693453853219321744428121354805936539251595407043623841930583889788939311006598241371476295402087199730261646071267210796937290049820411792071788727551395618741497807147232947708146907749073798505389048936517782223669841807555642605518040431448468285926444888584373408932531606852268237742764431291120728614547933488128270495765418085067085598131577603626819713259190806006875203375591349563423435300656329865521570784688523159456953721797115819664164945147811871409277667453671207447225617809254929605838500378325125298646167925502600286460811233633688347352649171992287778125915852763334777660365189023995441848925006838629406032274822354851393710490570985995262485597388103209565766930534872928656710641917370509144133828645897966408798624166499918434305795189853384894864018172916626073363872358483262891680255509820119436028419382300697288322995664411261132201761597758566869777376774439847320242112529909246206592432243102314091583134683290663832543339737213257904276659611194923692806440442496513397155656298457514976432291991020734452925627495678635350269425706167129202632593665521870438264042238091666567055701768059351471237758203003407658311613389574589559116459517757793588891822557252569451494401368432543831250872911035309118104249633592409903841806324164496054561975936678439163222355722824246160976060683958667815696930667872979715225342246327499849383521558948623190218013505001661110395741845969982235500651171342546459831480049099447956941188120226824947074125364875458615236510316769411827158293653229657402550023686165531597495110694343117666070856266861895756153818563807364684923503309503982052741832445407128599511961955163894101569385009941343020577828451494513749051287086563302839694164621781563666647970701266858514210257839169717826651786376928316167925945484585711046536297795180873607269145414425361929215133439867936703347815754584320950968975441751231301351522016836607060093806149093489417040321845499724095987368140755488465070096769149438440804055641182123560883359915050708355562780690267255673922967378447400430706136847006176845849140834577162701674503903157790861799596337585456860973869373928900354393108429051148800216068218157248223766549967731955438106477154615086358678742107621874777629535036363167890466728099304298598389211131628396618512181932327744710145708059426482579217574259149298459231363442628955060017049807191040159831652297600732861540421714727726627258869344455028601786789033931712192236302437737316786820580380761675088171840305846678797955011262835268842959155326957953037967735511911229911532807012664071373147676668376695786589448470963474885169883789826647772711862151381917554512122816100652880662481928742278663894933783853884483419518913629084277535212707506632087530966381809546497788106905629855447490865430539566966885596929906607997140404665653234791267048980677328000354854953541205507741124454819600572934043320873233769108389707567535224564283432614653155857669530846798863085656930857849958319565938511040119231594121520237456290849488115685536255353218389088402305955105963633274059892825732622676255783062345725916165049517376628927452502054894518834091030242140527717017769182753941424240221909138806551183654227237201771190239923200723996025578288953477048215650506688259376837623681849836397664754928640388520173399670410246864280286846006547325127706127188489780147846925102407018325961378898966261422368986617428677517861788543256827384841992700239610068976055855461709316457805953972454385106392468018106675809405695838092942055756880184298352078013327643064520391232879896666285852410456430009389175310917771833727948985983227458820989505626367752229560153607648465158462229130143306206250703199222297079203647506218838275062062956434017279283967095344485576712066197744162427157312565095547410253374943997089629787782103245908235915405110704831937834031237028197978632037354507579510419815541195340036980485365224057761530321739179529982758791606848650100105403192629157123534604275110522395047000020705709940872334363445835379877214642141866850784139143615154359212681455144003198852600255865705443786034393871260493309165006495207496297613293328602775859378173348979764825990559135899713103694870294178057031990020330387761444337605854496475194132316116022105628278936466848774549193780030671860978379431836507763725979785399625101806592544487148792097876892416230023045933203159350008045346325171127809393507519357870732561768297976429233616330500680833095005912050358750398548505812815761040578737137882138345502205600015274507025710262713616103108663884395541332237860703114301357894844924157045305404621371452751307353016681135630619344131255947487580559735014962072421400564976885353748261134737741247179029107838356240394230621748227908299980370012382156948759987500785929513911140640613452932006563268999744697881059049026632947417609218104921494082594520649247822530784288742647696734553281481985320170617172437234885296978077597688298616515449235274320036379307827959295577494932283294195798148984415172926883405166885453398560806651301959560415739919426945565771643405683306700460759646177232437812303238288798443005631672212807635327116732863225937162217030875160488614844924902444804102399959867470318043636872393626427969375778062774872618145303970766275939128305902220078509921000373932029590889239880825269580919777274219375128748490939727599210860155005116278043815567241281541382831069399229858873060335695052805244078448974421681436285592640532093998965018099889594313359066891103397756717546155409145575952747903093522444974993987201169366448476797762812124125929502214004349076489304198082072314906903796827475403789360416289567880867274632339377893072689436234784742011456383181253227774693071469705308285786020840642024513313873030609993227298970006556214245233301437569636628650177583199110046569591380632062981256255876260504985226944057320709553590421072262106217304233312133456375761060544717761472841153623436330627040041828075816959683453871733326377301283028978414924198198945638425551434464116385592857903900442302959246593660824968703441604254047938478036510176894373614762059306447310560680913604889576327449043074666299381605267245218676981268437767413913987986363211043433631131443926334616736745949511879103808559512159170974825608602445049851297340270603635868450263572309090570080693025367122823827196510427203055131606030698627241988580344603906997698351725562014699128371126480464682679106802582344010143010213800494224583549653181239573169796509586103638598587309515840552821711438869259741751574171096900543807752917086318601043940871561098910008310745178510686487931561909786314643941982121254402468344461557161498131500188017911920588653842923790515645038088817568854252073638578533438958432627713324770538974129026456444729737250589758180366846129625408238330171773526999826224805925542945142608881727735747355493177324414832097335069180314853402264762123675321754555457971527166027595276793411752376409492896013853659350554228231161713661193972217933391280584329786620655751860044101734905815653522962129277756240908362841450444612980114510831717124397546173489275285152064664108999979175739740041944110027957757568362189547204752872467531188922521686601859390675983305409042090059021984716949824364764934092595496531733629833338125059447107725179926199966800291832704196303560820517193777057614715207299561796585643194072388779471465518155866432387490040824694354429114442334114546583318081670321829833010988531720893505161871731362484439461060031329904743690712308416062118709071053770781666366158446369099473445998225275759428439968796714127684910216614251883015589664437441661922828161283113620606500090066508612845383660621535535524796009710832929970866476352427520673324731097116567626839126168803625580789278891259461631807406851348602725092781899365593132772270331991804465547276803037237547736028411404455887341225095736195546441928583348070426070042565009111481533440889605580269405773262765263745522928077566589720304192715644015561746499509667971253850749809332335894699761698393440147841036618107411667690681556606639265949339555947249128018565315099730243761654368868038464863254378880340933887452922293050764953470362258007911161351569040598794112817578650469839320381895097153613090552925006810855549690530060571981892421431461837786221009303792931821734188481615321288675529785420599718622366680922957939723834710785485757142427407939447541914132408711676422419242082647156863183671207368181682728926844403818579756179126072710004951939677560742372416194170829201957160945009950957687165306092957579088497819803752606852310708431733754479876120763142503228681734926867383455650532592857493109653813208553511061136959279075096367583908883264611534445698730951764002825207940671877098989356548984116041040371699553708437066892187014669226489184185665324718181773112993899827084846407448572927822683246635007837635933230421331068239921674702424766616596116934618898511690379298892151189522106093717983650908019469014465340015004874059023276350657328514678543506805351988224527609088908864741763068775629352819120303910237648684614624674200593888417564321707662233337671945859997813686901379170256285856333397251908460830740741951835260359015533455102023924091104081271015859396477730457996307592527765281891007334475407212915764935782053929870510634658481903317588489345643756301248866506684942253979126573874973945661924647956811738005596372579706252256791461171071806575944134299152312179423971949691891010787597877913204325740508190031262688718544054802637783376268698296108294616242943030047728080828270171135240015759676123080310926761727830464719208026051895960504715536167369518332954578478831032559912377021300261188391586280152099305657393830499115672405744449662231018050628178920439772252153406764839285391326766264663477204015159892375463218539861322938662174815703734183864071487195817590119084036615080032695449072497732033368631253092463439218771272900869481822612694907632649382606917005157439566915066522810801460972278060104318594769911584210768498224951305863829519162359910811489220963966418220329500150885286771500407883304652610149567208110559996871787772610686541440313436845132195342822828947912740915357876987218474175151103193314761600477218152452899306777666679632885925493621818659902849972306160017514791302532653119938478820071779769574210942107551943844394628012151981470006010069189546588509553222174307622296926962205637802389394004778029645222766308648739635967407700275478746074372371942918502435568280655668053099876497281020449054444303975695603895545825780359585180210591449283356582908458355516961574377783774475544040994952920972405745268620609705559607145204539331037294446931934592747579444265974980355124682033189406256638381094857491672411557061142150915864231033063115903567337598443263015191441013058844731419936937730622879293090449041036336703451911162363721149890692067875025399143031566170515115185297396446365618141748178762090086802402844701427658944671885534693163971187485492624581577359816752835507015262869440087839578279323353431684006261432128641289734890577117744638381856858234731521588062316357097698157095286699560216768285917478238930712147145484692190327715643986329792215348732251364299558564602628043237232233788677811655064038594898054300284867228341914351524819389439031030637212167703331529318039173825260672702187026784445969882308486125807230170423232035294502328028434367791244286297709677786724083532795838314363423175447712693992598212794060586904114753146926118782582465251879800399125708053631094084045513064523243436911344048374110944942627164596050760682028857659980343148463513713069163125636865386771206910854464286312855305472842523673598072753760267714237749115059256136503705921354294675116825157354651972952760379461281119450303709558375304110963713751082224263232302826816869974426527827902251070796912295557895949740207225022120267543388447290311587950625450860116721195663589736027513617340902104038374240237309559974430538097442171644802188241827948605403619342743598539688117122363345423201180095116269307957995874804913970823435173101760194821785187809485514163907492866451481684192643914509044829481142031771073580581683527638105971740068405788797984708719444267352186195870572541549478127746061339723934814730172313435216085820602242025857133671970593967917518049587605590947387267457025275487227295432306105303650642138970235998805321398357012139282635091504863080369260663509168446483308837126609672287873607669863895793453863266811300547116926209509304084329509818614574614963945248293625518702366140805165921098457917325014437312672828295945004354569242860135338430875648475757029023641796684686833992839521975561348416922410381099087744280504424824049123180970444223400161531073493373318851732160094605316268146372824286102904757722709532846212001658552051288272230729112328401901899796987015242866254348106519503498226055058877987613776682098943169653290393031496704875539371796868807800136612143431256498170716568900907320612209067222520652487395242308732836165574903929484734107128116087341335926815282985323112372750438207720805774436442703272454520237635485268240074951196966400505581651073140729264773579231615907625100878045441954583332955168965954145600063099317789493164236900087543420390807029766960829206430926006439965398051544675988059802376566528666269493767119802832119889167995410429117304969148814230429386974655274210508999172649552428836628359600222334491007290432347523800711222254714922140299206977113592809983446010257203938529295428522909234359438834988171558654891131874596095777013294592564487266965731639167125041073496979201206602904531200632085987423436506093434712881646646103848743465848823136740777819156840607696964920439773310268166656211556032341445982434865466189415272054458722681957145374155616141595940365740833636868427942997668197310924417771153562396284034683497518671829838045556928622191755931527811699255439158870359011524480592978297964354169991606724162577638367295737548153783130760007756102451721542552696713099908085023688449313965766725643164882412071981253360485087080785873790156409760363006580577075373320636825794430908695451159426605536852964308084678253257156911186940913532323142516752978436015723752242782075146970334142354194104068134146567121004982528380782235500499946669922726568652671005595525893773426448907708526648053377173793311317649026819911830450863502473519325227097206966893766021815123722001547786683606976797735309643958164840034107562802691311203005985710934582943111835167710316174038698218310741839345237952500447054782303541051846047177651477040092843293057553601199166264201625493396100702920232470771405878451964010185278944464960292605801072525788866072599622011314269643741287932316011381304304141248657765528824502824824019594892598349994501203673577045249881171942694033130324526701700225540522014108847423023791435323997204961672848013630742769729208377229357539315336371008340897727386580545134641981846652826019988851391347629466395277277215839878591980783781915794769723755873379624450084253578412728007667110903212070368383082152190207858841739071533846534720425520219252051803908713262435665695511900777459214708565720212299118868374346793486840942695865215704305271699951621112342288798982251125881231092320309727428176439395639281804497167209867860362889443966021117996990467576300460179910095684707271378168328867555890468337122970240706637659512220847463563520226269651023718695390375542709227225247042658412456637188827043391883369322755429749204735125271885172546287496789487158370773641921799127900217035918376231225666845881559940382721064589207873089983252558797144501560687949659095388174497694836836060378614918540096422861565513787918320037912249799453010723656226596735216341545293179611257542454962754666009785595306606704640660911913707458587341172521410664199745166013028501038639077730060033918366274621962126406691120941858900502735513022875103694664870308603874144083089257166204062434714070168916279164142677439888059317735510583263700080178588551259994563673011193374488340500582987826698672906832842071116626386932874207966750316522610992810727033648018267844976381427319655451136720984634845786072290982799233410156841092571823448070938614289088420125083603988796955922987165324652976748918810555672840903660927948662066706726544058229802212312322492037797783948435170533084974495496721620808043504028643689391634108324585939643167441248624213906828003470962424760279893217501163888473007639531532603497973912399301606474148796339877970521127625310080253166455285650580420831944160384280610631678106859866009434418338355233417907212847131499266477128732396650741243879978851208143938648100885374265281073700676930106726932000418759761611681158622589708957268892396981990594599024407293426368995074628369030567142583028548232414040769533561199757443394452656842583589627700021473582972757487226217035382463124114157594192752184530800832597050470219671575103880348948440649388601291751650959974650393624954777573388162484524868038914211161120745332093523946847621788042935930764129784131785812848015704446026840005780380477819656879763946156819906392518466599836205893360747520570571897356516620146430657740108562864491891710572749190591969303902389771460495568652157902251039599390372237829881519188445765971126690242330604362569365122495533431659359317806090367967778842222426275151233363808292055699237946832383313793830354110834034981668955193022148189305302009175570765444372714192300908949618456523581746632904787201626356500357515301713020998514515899959188881705884200876094406267733912353293751602973799717110304975970500984718372908147877803320761179411914894285379974335657342451358236152150839639464633310325603419158219727839884536702957357398401887562441691669586374457628425098772909779742850987382541502918678967476292585811685821307352237549035303443200241245589817851930740289337950447985726516185836422098195766588922485642558323420540331487735848788725736282089089549617471113332572809532006448172268855651179993334351687840439017264623379626914630576739026683800798357543119698631470293796907058891175750420698868914118356361793531398216080895437993314520091382822296213931739429185397853156236524917253914836143623770346905232335826854097097456341786170538472761788067720220096376172247585763705687349134915688632150763089992368622022042714630356649669275205073094733693531893053514255225341157016471129287378848096613174122415352392895467683275496594431177984093431191584521516158320560639169442916139333928269321626202327623468684546367293208688514734929434616521556715613551249076347774726970456630917455441613109803222564508476011495447515672606976835122919423685290018165920965071529058445204222775917694205191418296170657144120511209872334749939911002571242457653153863454307737203305939461298351733919487687266400068895770748961998694975760478728269127988156805291165448762593658562320776062615998542521006037848823596277497551254373197981768792078502415448355280817712591343380310919649817719554081093403025969361442068176045163447227350015722078168631003166259684370034110056643286273970623622040429570011412567614063728438733043676629911022110274075597816902344376413902491139320033253978591577055579460556635888023906249822281761911763862993825312679349156848121145221601215900718145738320157888743668858540738933299501569933959622982282925139275868856297185200585900481770492459792627232136238126491381113660833602929006203041657483153334791333534758887936683198514466489760500780945065549822001946445156904360357198382616150581652812716186535825788706880385151221354677546085152761083645253890683744289289203195483129987593399583265122897973242813374572958769527541451339747815087061895309092383508923577418313468243683296169269140799501118400743058444361800535205830137147529318268346690587498313206201079323656572058255282391495397836121411960539683392409276704029181597585870290764049502358767430102808150922917750050762893303313026078178773495966287056175048526169948221909252236136009421698515508399074105404277973363326055429833280091370496569728892069486759804316136975692369313176263476443526268458891334581196954673845586588956538144274124671895397407957075278342480745346440152417695577172901827696587333791303995616060355619052899382606887302515552322939783264119294771415496263593619443435372806328023846735959472850971146998807032024892148338528154711442949170334931495835833015810969718350299622981072475153291833791034810996592480085870209942060950871172023463165183028109477544636802265266760577040036489025591503671313245110403240407840286835701513323358167397656641435142580714158725778146763883923564283198382185306029292130446883049698814797405610773624090979611878100644381893869790923589367463750051103929957735810189719556796141246830843092981034802994850232831126141303149940187537850808054373114104407478652285388813121440574151236200790051529533765340198957466307367330551884400087387514139245691652096669648575529247251218477152541894836180837798468333876093108450530379291820383102184445525431658852753772018502876976491142615621392835941445601834563665466099409950296266384819485922427895991138694841603159836233207994138103340231185271555311715284356500525858452034412956530687237066601070259572819642644234313355609417244147534276042965703041993564648994488053600401589262913796562106429703098712464107452106180271796322727994974249712493943764971910978041967107028169540551834829559283542387279246091817125815707391996230488934712058720670369921292693459223118895198964887544942222710863954028445344554837026156795216418962225201996186245031026788505460687146747437038183149232280105120523627564242829520301934371602578392026785184901371716744194624502712452772329619529283909263322034164001820160251322284856940597076917790203664859972117858550337693563340269810734934244693238095084226116724700435337288384265136839225986690144036659027344490395941651684707490681797511908553428391655444770942369619331729263575226579588496797743091757542342734040022048598866672215305868654591427194111055239390835789325048012878011697497781719560922711266983026167050193765931476519665857249666127809195061575237520717523172324247850883902611220785540472273186281503593344546969989149468412769704191799912676379864879590032828098333631275304743698353910443455321130748965546558968457569379426224492962787376923135697110898354454296150163234431512876048311782915934692729552816520768967470125733901229766176188310712670693407722769342345172785784181260857956540099658109068566187181727943436311661350328989218603606264039259642396339708608237451940897338593370244607156586253079802933081339776386420902564154109316168466291065429498956433569088970478644553902457184212738098017403346129039039779169920814826656693670599456436336620835540508119920058515502078625870124188779102743126143354292242624382636154154807238073804969464233054030700396443779106950980182259518105371334790395430429995073067190310992245531266852019885707059436637347066013678714124213546930154293541394799845474005819350779514268751173653877486319997682151913946094692204438101281219171680965056778360664266976074920983724024982192275219617186625929809844311936681917236018935521083335953907330405113816321573691011570919875733108853059102333167555708762477781107941605633331329857614006687517718035240420466465028443827249218881094652698997685024120172985737331364153404463584963037625577452998735953702025300905502314989213594812600842436524640190677342709801839358079463123886600151445393056691904505078889215883103766231897058868097599476404016115292999137103685929534386870175797427490795290217453770322558112992614962961592565125615409685373390064291802713478557209521955122643056026323343000422347437122740306199375292789594303749533169766020430369060109369522125455593481365393025626972417590708273932382791771152588476093178967832017260901527669817329745863459984346747196995134853187117112982261351777053501878978572537448209560473820501279127838940212352771165081668097929655720473193707481893544724426855533616415101849469950826384338879577217906092451613841459856412067138790884054275734933663427582375918532411191748317504217891301911752079861718710973817371005226637435833504052422157900404682282043979905114368871048708110087676745826154679856362285868050338604336102181955405703147879759906475355810649369737312793618273178454544103346707561652914118421133804619205248685553836335676127989020011252984891507833671228489798769442121616822214918183289934711388971160774450723004681146836997661236721471714073701426871221651308601629372685702844201022438908288862255854077560128337220084795143995623531757689872257411280142659981904651618005619659649770255796918777563108942125157482984016479928880886458608016334139057624357059986484985360786132506818575101766556709360470763212252497570882288008957576087806095849820168421602328228304749004489109046495368523295995399576736143179372140272340235541982937760295275904309952306761524788129824188155487194633344078545670957094112381007260044601006278107900860765671791633223651682440448279654682092452889766440834381970990053967370825880932820497474901258866254868884226921293455933388993511653021840756885854002394257925929370885551871937724655880100800280113400503663335125936975009592663644245382080120797522247178016240869209336602122277639366287504822265266784491774766333232850453306819931188584473979051475026231727866440444021186964278389625555111541788245053333184827477925470070838053010767055658248388030877265904708911777440088882800478756679741742445102911136508106589856227066329393422648666818444941331936286844899146550909128679942540396228370992619960863098827151601641193475046058257853539826392601454196972468404674255483539149937524072386099989950553411096559463841787273485404251546649369812778577039492997342568902565966049362223801104834534270709838907737801867460543996506248033196662417378995333891070342348430823402194828715116110481805055096161520162426830549075600821237222959324563586007054690179698628222780660798331164456469279671411106678498580216579116160579466569122116866219518461002697790273570115670289569835550488042151266663539204193269820370552141630031776049413207326785129850863573831203709390896490000863859647902434864158554437425142590537548329300144723683085844944126159401027199174327443136385215159883972471063381589810876698524319855677757543280228202730071243203229943159946880186070601808443011502407523905166008873353582977312947083015293396042513815849204962412369616686198566722621801637238251348026749357263304766588056590514368219993871476461243857863365533964372942859654505124693940142987866980967523549593799069731413931328707205095213268956058237202650200759044646041089364463184409051701812961258857441560661972614128149638681031052224868331351612135942367792832936311261357439171534397036323228359347270043306403892688648667555295430844531114955970960928315551432589257867489111186840876702439779101504300726446208599987613029292590225869331503877570603270593740129991413404920191746950975507632110494524771404695598768657019958306258911482217740411725736953915537900132787577192887601020105541927078726463860431708113462083741178782189263752634631274250300605499678503151940210774346980000068794423904936486005313457416558692950956893944621877516359443045167324545107190014548838513277308891467711078404829946904436457504233200930606674595690869868955698252560566863741449434967447581450684664743622789461849906526298683520281801650854583265497414518822128652632698664536625530423544535575110689459346350611973364772268807641915235431385794597835309503152418372511219716595608700319369212673350801671352187824992381982530115946359580072750797258379149223601095436877603300838216344469591622810924171273741657378293444808749039377841854136133731659581251708663660924235430513477358496652051358065758161226727252018559960586390006475063281887696087944009819580118381319851282722316090690951329584011789729381485772314547544481415298329048995744654555578134896489763405172071470063555756807236014665458303123668764078343677537497166452242960333744297367749184392341728966932306161662045145877898870007264670354794755463914784067628994526632836150412601433913648020486421855647603402384725731659986867955029477241727150790246887746778079825749473623949462914570711626202115462641252360623632177584325883778659157752482598843211278067843461025472238019409376397998270012420583166845335753912206687226201640820413022538819590553134140136870536998853728930588502609063172321195312677991957673798924860407966794839014550727650677690314941057844318020824336020948598058287134600283610867750712619464127912097651478232672967596058408219576771958293577662331885224840176810576001076599548828457767112220783362416078537155492930384918561815977355413206731031537994199880402091909782633015478223321483769639805881247951097847664440063705258016852792127204452516783670771395702783073646118499986171611058849686140743732993822574061389530805513152960694799957656905967197582030457591463503941696898897849376045345504955024398752013962026169335531020548822887776611897331036518708941704457523624130733347426870714295819467287659574561654835652287419010861918162307694799207718753337055927540313592393389637309179945000053482730523915836522427678308155376648643868685794185308130176008661128262636510800604615404450300408240842280794647695214553192531536130193352138886272032992825042297523893929241853859636298127779603408763398996842726024193136283238160190212705030725053468946932218848827156809328781556115508313250935135196366338836459904814413698676884377953527424683627999300307001441889497378181420176378459143602840769459773471940622450350920456779576778254128940308324572867559128345024159197013281337695958145236399651230482514113060387914395264173691798635643511707386051454833411901595438099551277387839803013575388408692786866392928442597273892262778253911643046441542718787780481107634209571699332685274933017020772791794477359173424959257923145288001051309242005284324481412519598009860267806656414306398201795356583261910141762262171120088504815706288708687891902061265194067066307552303904532394677827046499256627226858684008551124827744349367341080681805397252857322759955578773201763934893666731918345712309574417037116866146944813764835028319237511893892588507624387606562502931886984540186129390290530779660746727619029412966960433006227311935499754374677119851921847314488549770998254927861872696138017860992846664052149971344657313517563310734578756784864991185981050925139422869947649115310065908704355293783263857566539082071431709579586480475422358007169826249380764165291871831094875394476373531099661581165301212692256824156722328762501038871472932614998836984448379499950352353801958768235953650528288859554528539468284657709091480818814202275821465321657214479515593583089222932797218458791097430991191045806603246822325176838199594871751758212410825713176852079150433668842912684168684458728423634200922065548424986587510557147396950457949171713103370361783963618948771033239915149509181623999597946303860295078919176178731772965523339857783324249432578039466225289829735912231192703609378708660507549124210126338148662954784932192472154414160320176738953389836105455064809521915693153304305531396822750815577696901834080324818190227860296319297861113011551094690278441128681762063991229524790687100360318129775182868169759362839160319992529415231851425476835164832337808785574978083843601009742383867863724735680160626013615537076554752745097561247587667564023179690730738325394846839914566478752277832170535431182344266545556659716926623574709546584092980635514814125059108004502489077430872210696980466214872744672390349181191161111990294145386701139408400906482061312926584685381953417474983799241857602559284881288022687187091718649994060939732591614510553992964293988284191354774598556742413325527231604510964782249694678693411004846543428426333453814827585087537991750028381982587389310458194245715040581792404369650705970701940465354140046669776114770590860426766174342702669626107021516215181749470293814715188427530748777842480608717311163412162815138964053040487835308400031774185316984608895157832406623110167503184985959888850842494242047191750856961324408615644306946947222343260668144699936571408134115226066945661745499397047343575058727649311235404753909211249486873677146421919404553243291353895585874304550228569010923094113996779987685199452847731679383083904529261583141529303123773606730034944427285374335292164723788098740684508745430866524864204284546644215522358744086815786528792962248207690457281509580371221981888344638814932693263537483204111561571935668986209237369060125112836441745557468005376528184104274140438403406885085869570846456194921690835769081875111655895843322707644604357561834529073377304952200355824438054423540784411504331148884749765189199420914103914598707790952077207263731568338169289159965635328720012154092336639711316310787909711578722209945567406497591208865605143090357268638465985177234004371970634405620609373090400355111519388276867208196064755093530639009142098133441174311683814137257453699497557822457516709334510177096070713175657183481603703850972902943678103570692184402006330155244090448752848741570038205253404554596089049919230529350702133315320647482011738935313916870905479688307142586445068695807957472923876360574173453260563478718737805126240963968477716416372159512533917496170277581125711852045167544187651763936058622759059220231298694921819483305848613426184481455919849129480822090463759085606809803020852177884243560236576269685949413341956090903229220657862077404069896057081477355076081656431640716179572734997416396618361574398390290712036378153545214633515943705862074326456928335541781391910989514613379094021568910808823223149554675892507492229710227487180444822445134935201054321267799963760018967705566519815582193618409608835982513062260772791786753827828885503112602098603505182162520747618692732863527494015937899800608411241618498974702380664586269313450476002524392231526396758092443316927940925562802157134458313429210603011236151683693833284245839134330146744584328601187400892948565824118570868247059809243512088190732674566861326615453667772790940312641864514808055054291746227358556190571058899992015591701488544159127049152461624039271152093603949816548984109914203084427360615181988486698017509501807521449551668997301487432210629408177916822027675165042830000261302581321077020546123357216553171674381257800376695220234708838834278076860912336940325398413967409333508045399648651198991075874534347453183619797452160875077082731232864439685473265401850137942567868338443074559092523185481808782549970278490862536997218942479300910117574656378800905235327698917385836942086392859465143532372816628023299011121412340352412372270668075592262962382875623198299479476187389707148252063545113376964497443740584181059827500751326402462627612675556158685621647183222361511768122197129835387974244701260334958095909610405700444293527182348926794986982476379118343252587838623664125913418641257144010573041601991201121125639841906969944377940016493270704809040721035196452203880353831406413093228024184431063893736937835174157095665289305237813788991632434225030348302188289599797405398052939672760458405833530814668563149982027504586997845392935020081219507358649929716529440595913967960388186157437096618025615275097906776279358920646593831973277056509164787098967421686594430084565163660261888977590044068882935581718013541127232116448281382595989151305001980029417634891895982463674033084142070830470920982134879183584150709464461425080992236017163698186039266489468519979159179157809455925495307460669080247087125676243198281877582891412419443908380751816186169289735050944100862615367834586640426063237736932487489047204016438363756074616739845286649513942011098229677520880624652749579617716201780775454622031011987919899399190365074538029626770118542033870007879859211257281954389145438337721659917527811033445656745153911708796623928721363344018928155969159206006897984078271109164157564553149563635767796769525631873881276570919456057865966000825238132570338032278210027010577498844853037698388324543709606637150795526535006828053846313169921821375739385191392751373182136141841261813999160552714344483799136966162542207352542503454866876047414347517215257047639408092828937294523796980835800416392281758638628290530656546596240043702265745825190079120235741913449777405458085176783916310586463706937438049057741592870692176276368575224645880817406272888431515094705187573449196963772107509629940872004560858451746437408363314566429855542939941606874660864229904369680163011857962069893678443834458113494818616444205756425471582722174584134879673207054255119575713518838425825699094671427954532014767200870702556372209140517435281162493446001797400225069965586239420860886623261949314468347720991074748419008464332168883468123646533520975020645884348093480766463442250012444553171987008545034706165940227492248066100583648057428048215835429754012558544974460462959810205417700740621812055312585609974824543791007588867052614429861141367956478542249172954147712698434241920222838016213682587788757993011744441926992715409738277649052006073279740699766325495407919866109233300169393924873211844742113601061999969640707636170702407112873516398198342572200532074180651917913974848575470888840143271875030269303231407577269278751866920510016019645609699700566630025119031523454979058126495246635218682610518692080186991592911551782764616384544774204302123544537886582928967736100980263667756516805971463630696197235221028594197269373702074608479059943001249455408925129379764480138668614436370855013027095440101177861127561450089676730578033373784753268133804699288935897773711424704529313255164658073683379077975822127591854675785262010702095062606107803242777743525544115133526932909018299420280641516295810417746921376669117381499055865363702193223794372823723486417736018893866243321886062441700443143164094517626651048932340850478444494757426758069075688132980136876837852814698333313249209693055937100022068722794314271093042207029586385126625213832719160690922415999007324443558797336297872181060715651046972560271058206187971055170055604877157570006998161528840859478275355620276374299847794831380584779179592490211693058292854645202250095817752791309524985133764022438356218588185888633795056163545243902335955613364820830556377649697433948837566868603363161997975993303767292061944140950737592279615360298163960812764329700468786334136322092037941276888790622631925201296647661883110687792574761631431371666326768875172899110999402497714104256418961632199888255199615331843886744923729039440628078886342484716914234000914502989489272002156097673440334545519542121433332592760894148973723120221435352623850784147309565468114331295576291906202660201411647219554361304941708871467810186527846901172540986691231405990205243488509681204016618703300043543068946772603947098734823367971517027456807657418694341009796516782103939255963446927165872270903186596747642828744759037673757493194639204315977836847468168658077646321383042666727115830302954255747845240438875399809664574517942672062449485853914477737513780563407451977879250618108224381766092646960316703933074436236372613823104737816036699015550244312454155249034289347770702077024182041836552359028148876397332258958793979169739239901614700510788439347687389884330400061090930279624234246930518289288691592882120978674451474401124895443756672882350726138800317496666979667103669017780292294341038442080251455976150733133554618926133503165853053411893100641286525102080513535934723567260673615890743728390907969961567149552692793100728974327311769548573981799120155042984389580608007750113007242602376829180782979487872140311467998850463911410973350806561699996971768142391073605011633678743597926050702741263043741002201258783538147107147337121598210304899763604840264677828551304247626044608339193778936154823180217372307267374013734565629265835744143688224026548962348814958098522142209406680345425475557865354153494651558490423233135554403305950507115330418323747767267005458649507148612487190425399504978537384968134465698126369240540138850645475882001213795165677782408835044535664167422160091368492015174992871473038385379136559273970933846527373792960045742329786400030919409264788589704555062834988653860412508174568749310404302383032416017480183583597468747012333252162434803319530115906569246318265846826103956571190671873686753430340127729366016599518816430683530007275150641123710536363788320918735673039446888064834956910328543871407842215912515871286563001206503138406375285100497330609353022897458600621482817252372455225660162166817798281480307731817210962697455091236952175030597529073125328644790550785835765602566935029956570080477264628431441993803301660734370122190933490117597741336351743155185077816396738789966579791921654261118347535770225093327688540410518344760434536954116600724783900681332527312934888232386642259828860344405643614512920331078746104051330581986961221331455270873879678363878860523699955515207599837136660413079966709514846135507943880561445603478471128024418246864931420931994580924059930787012062940203718481600952109630435976680349242923632308939645565360176874008038467812095481038070806353752956349665592621713526343158616224228680331144349223613855016090851350940554648316193417115480746820794849353837587681489060626430318236643209967297039576915534573749715745254437359388252006614683675168209270677055155668727825061580554665963437058146117759008647767215218506166538318187275353439111916189026309614554629080610923281070253578219916439537000866698428202298144808338348823070934167654606433397476916961673523375255762812427741381987405359326054084880276846688675639499778639902904487782354181872970877957939824570774886710848015967850939365619037551061490705170360776285584572191635962000241265785816132792221599320606240453635029416899474738232375078867231610122849435264133756885323679340115353815473367599564551953551130573447264898893658034339896703163900136403906624551218955369588614047339250496119063738740094845031784119308811981436937602596121670762363420000013616375623054863200529314002945788513745719798995779022563016748123823220610966601428801521303122965559989534106906425742705205670180486912333456297643975250071041480810444009683101679419538432123017068480696927944467155009330680010630519109950026616973026542382014301702213747928107849818048079352758753991454859093279282911494787549292676384849000490550023715376859967931969933154240446983539341704440079238724433450075210328897377658520149630398507714449661222347626354353380622261666520287931361507521198027499469237722256292726170546396424679293820668647906896617311164147713912592180403809268542860739066781941212410032249035719412942633960688268376066726880280832767111510465248090523479518535217759098174441483817047214792003997225025569375926096906703245418776854263212122365725140454692583209534207832870513137817356937420629279882334747315832131450119220850602964158110968467966480080422174896843826681081949175674538509966167520129046403923455718568958479890476904817449113276398403997633311003259240807162230197660906071478638676335227991749350825425216991890658585944088616046431493665378759868868516304706785601063698553595576499615626408780344362187493670706401730301540986005630155673884287169979791712398319365186405359687596712369977735542950346273424749031170949822879420897828427998563781652420905120281903196841596665865561237362838086081581678018182058590397703098122558605817303251184052402888308886297944900938521543553964797697400718971317362091377799201950080385433703649989364325243511402909117973010985919703670260250461577991917411337309194592390473566222951630997276888454519482870149336787623805293218427223078925137231644551588187695148479047705756417753996638339191938376730724124226320137560743609102225913397321176049273303593379938312488996161391994238889856318047268467240364152915183062692273659862411563892730320976681902772260360634211796936232892035798781682481288563873510060809764193348646044501380138041138558200731637328133363225321757636336234617639439723423416351806982548379053261223234516201159955141766074736397165219997346122524888630495262379076610050026106132345455774922589700914132981638759924634905097807598517495591232830417334182748558785401745411421373604551123248429852757975012870459949154598789463511090131268495617844082165092276615065875393047644815280047858874807241469114958567383528251911226446192192230858054456196100663028117635342945072987976828492930600645781155830412518505550513417204724965960306262765485340872009514536157475621139351966947214382556090948840919924989557272442413649027518858451130795194728275847497977158220846757343376097318284198183921542345984593703282982266325899592556544772237893998652216416760555913769853374763671838095619470857971036838122706219066500274748046870282786099295099548742357956202247987059255146190840600109532873210752578185935981011667921386578888235792520521593636472048278286098558666176240106282544284895095002434586725879391667170597722465689847504429507569693564634579801946438140451920239457529162401613292807206988577123371334642715643365618336718216529995033775334636407500458816951206193446926168229204717841559996359137467085632865308962848246093581112798577833589625731901830097324561909681101853328159947653993097464501234526417133722734943873000007963272250384781915942785790175560986363022051194647116517967751847433434268411770851483334146879301201930966184280298699630556921130459717011893262799450432026888719837169887422933186605268955467267330647150229506345076537502838887531822514743293372088363219503886230993413847343335619112463440699472090866394367277611475346712409237752046923545535868521611192972220312050353810312710462912736473904509896089406456324409149905411730166243419924373556305765555100895485519641487304140179608004532366028125501700024556287650887227198150972565041363088134626386769427748630392077041053591271805138427730623797115677787824542362345025768525247350168226517358608854309868619537747505615237206548551502658599899456739195915081515481475372242040488282198534624759892168600099340047750761414686499891912421771486671200104270137338472046383051587417321827679769727022061559470959281130424697437558328587544199668353764465662388826315238690668085988152359260463031221213383620644564267822355408858823231147093301808431574168758565078128630769778234732233061224374932696339039792781604267012851275514369577487568372216100787442528933683911429670229291781795593349907884102723679790793000803793034840038216829931992746249430500706841799443071837232985993607182834111267627158107237101734922656378753790545470671929129830854196669393163074874850741573580549630933509691737321427021850607104423128184546835551587591909145625196270818832789914348512595511012962697999455937036798088118997291402110496334835565628168828443194513796216334309058685101497355332945012337276909386080650149457632979965433574527616853541881718945842622507205389559951160303535145138864804419090448434469521394401428472212817847429525237418665767650377658377692700172942402132983833992151013120315696962577590285260688293236672164312763315328444597289445139959846612042491127185121387402834693109008261872738856644057951635428003410733810488358370049736443143368862544997095265948811229857540324536233459848761727081346007084380700143659982706440292731845248920219067639422267646970729691357742244849449827431362607990818017929031850249369179694245462429936318383964717254949706994299061260624134432196951920851262440823921980728733302090034635498182923275969753103735441409884648312045653983486309528106687527743378148656865706012929539481305804943550931121040586094572710674590195564268683810846961599692253837731791141818503503398403786290769434783313029804289049958144253456388916521639844682760907100057448597842837203695819214543891716114798783127462916492887537999534624766916499546405852793491885500488666527762313797697439514218347691068052943065563091247364292653362395058957136565574169112957102710786255201955235587343041307044054743325165635532328232817085481509523510531243448743045710755563914752170036595360437738083406140882269278950688651468794780532941248239945998244927290805893434400351265722681798131900944802469681635418020341161117609600857237308336815206830207911870831539404665454099006984715789445909842043676271860759026077172526931123171678487840865954196398539764951778197283613852918039136154457353810055890830332356805116445692376987721839839261632937912639031846057926103190431237300754617754405815331564550795082810307119877331558923885379906628708383995331641141366113848869099011062221770058888501013231655774684335488650699057162870377818762843937105742763018327406245339752257140226853634797161631189124569056595970531582017546940243784224534088012565030339052617927738173907632997918042846348889413684390221964182762231100402008024087661999163102140464850017820488959931994709394158295804753768300561937546656785785634885427511105065019242187936753004966498357620474038330121162012072637392431790691164170330445613589135643863792400169600962406823785722972184431557462306791585814461206680691820307612637613257588491314526999246123665802774598763274670424635928276526098885380904793076603328106563771907837839294117101002530030648100071742891968461309332390681266781369695894084242199932023046139339674871762994907078953731388535265911935988199542366177003327878281411796973164525755354201456188744049381167949291549201444134005015817041444387219891908365789034009483816999101240181464522337683357726527348486967812659022492239789725239451298379394465757343817796924531432680707075846768187999864101408749048806556211362309704495804267227140471998655776236387390859562845659946656908159073916294692757338357264324998439852037376759651536032848556733313410540745930845771882641534123488857209213178096121916150619929973827797506500332965374104628945905786453791136675856903902140511861568780160960687919830148462631091736150054959920780503750701508741588852763309694435920212541011791898160946345620366542462731465054333564296742658405849579236654286639863057337871601343452959664262452537670681636418382665845785863756756873138753704647800141770550957277835783536077955573258478366077203614522413287362064301341000324590608104188683745739007718721867082391944515415665195590047529114061976775391545425959602300492316636035761048672132476053464442270408595875974831262366212145044700216194153379418168970389003659352352561393229877644228014218043232423456992610497116036577601616961081858205171427939430758944884758479660597847356160844238494631298664981666164198908215450736743993424218165052741975520130261085212589827558242829879829532306461536928850156230197794338047669837014950129044736036381330034889134272888502680307408799250899408152384150099342881972595235738905125962465378730439077476239420375061498059879227026684049232376554452543135753287097696137676417694044792943966890924314351145642618914964600512739256963955787526248433663896942020981874861697652548222369703428548980729233803883314130313870336065660432349033245217435154641336937699399043983998726505678096349972655310995751773706105757011821047625335858741161844651106379367258486768552899746325998903381072451368082111342087393958666895694761622128641251096090092599975115693894551579426590121325797588772769462979126414533651843171713561232993857297153679062944840131322326464884663593461738246892590572868167736023915069146784353606142856075281166165777160781698395497251075532516797715443195686727441503372903028254240670514485953775327575887632721310960662107286573975941509215431572816919436152393224230801990882466589325014531861888483294125468846391431557214021169093595136503604380287162087806863879205680117396384566487651086358015181373922058981692075493909175919379535119763444233090519340545807279256633560434134764393571568406013749180376417111895793408766307479896310473666408215393383372697153352372045300513948193254491755569094774732084375579317188380110287985390005212587842168774012203784921864769930553999140934069068946706634953369590289553528870049688138451301490259217979682883825211408407213993249327873661615931385362625574165519578827218223345389440571012198450777119009270198828595947654445153369675286963607810495770376411325817746239957127950736429299736874888042872280048622324300765381303517469128145789752530040020041226974392829179696968206845715882751839735425852849230120920570673561103053080739816685062216786843068845092633064933762156045277119111433154120981967008440718559101273023806355070624410984656196341294098767305997234473890947866978844666578827719501134170684945099976312589644264043050535720068433696248593635438608919861448509091890527581338451928560548398990285921777780699839297750793713529718537381706081387764170839055146947069902161414072503082198396363719962013374740709580466880017000960995749044636949110230812015876130166836266643886490563380998589532128781161849228560408608610857521582108471342882360545714367374393863044635121008121876294094846844709942753324116696943309007328002102045924401218833312188948960690393262928357140268270675499130728949520742677782438543096862131027952374410957750276143120264141104938351086268993817493697434484466203524765400469242187707306671312698570909694692133547228494522995987270426869981475446237245069931077279847007593278343355233983232478543893941134808647044029496452457575111330893388096724261463975053148203468551965624269740112253123865713470404888131731405181991737446909567668759876831047412638837464748842738931943553008446380979609496630133907783970771091805302945986424497658952676343395219242414136382093344164852778817019248055790359411690116915310201902912263596863008044849962272068091488491204384768086742312247964078015315270413367858183981143145514315901308551527208623462785816962898456819729498166152967810548223509983901174425053699850342272160948052657051143100732608534459577573034688049092544953795158773540629083973055663976019508409433873428116964518705889413723222546151438692085286175072464853319667270555214308169284649641419966905226584222026046136830271077563236208411949612279359050406637214710501297119753799257798292376856155918234744698524621611826041467894713579659796705263087706711538957598678093766248558427497488111331287208177580000011012098313774620958983918639735744238729936619523427768538761458085818502799160752941842927838022045245207746732522885449848377297582213916603234352214304511013638527518618885670041387711231747106977155245761108793188800127969372255810379531630526898656439018651909076388263325885371145322723359019888626037492671439971809298429691805107207382944315019033176090387930922893167126714503921863574462389051805075498846989747959049946982490684703339049237894120084233934888401696873064933100739374976004290383486950069470453929910004160524424679654325227576522000556828431181321165720003020445859875805127187970850703507336153983214767984788390957916753929927010497226759749318079736435908115573081846868486839330006562474461409921208626972109326794626196159601413986008918364372250416849089316330686820835883165219351656679880835146025947930833103289270530819413754701521057230967747677116760277937951593394251761215537476280924089120901198970405002273394674841833355813339338505965013190795407101720660903675811613069883964397148022313360014132029472920843586938544607474196496743839555003580420981591398483574260132097486763439107483774914499096904972052615435063556141055737357537381934999123247738997647054492641033830553841732245547156555940181434578397953495073146479883282866270889279863081337962301842340376742613526254245418418668973286294147423678386516909087039948097460710233912692006393819364487660925797890525390489693950725433186838017670277067197489317247181341593263551909888273601708305406511415544268586549150214594637181634385224764579759262914308821383180417305149843903620664413075205870949631848252329023283232252743305054423849745149386920092716863652270812099787160579130447043033259558351943866821669806935899520846740687038789425362398137798517199600064344671362239880623535045847127530134370265639486494426371687700450827962830761626292084802828707358743400350313495935302110900963356085138212337799440391171668341419734326603391252859358656971993983261985504892790027963591910779049981189892626578254317342472051389788572017026946238781662766534161622564263732105548962585651667001040141337275361360006162184758480463648984608237932315644232261552429889773924943490849036927993514403617655268709749098448881815015803698533919931171457543267752088774249383600644805302987372596243990618005514496859519914188765513704024545559194578868314823981334962074344313815040345595552489542818862436025039631459568269030741018210557207534676020117513022520819802092549708728235470450298815234318545386110703831146528369634360240327395593822093145920104376441915525716816861794356198858154749813432379839350450315169090190397081923993527071766480688171692705486091548550897637176592973721596983229449525648433397184773911269983318499667591824885945487294629355391167330374287695596898119808984768730623536010055572353173418710513259706326306375792896142545438927142902704921082270084929174032158987152814811081937933022815726245500914498648979215400471804905817553739546354312845519832359646819925726594072480357414401618326774314330490515685517424132208061639013282719824311158185274357258868440243938181490320145037117366112804434779896425389321666649074880164874480867563037667561458249928979862825503541413185720520777539815036448435459097347442225518419383105019076397864630471537324094650615430617619720774485719647887854843048176685918574704143228491641514038642801058512764335504914151946019439290349491764406953710048168592417564435566353205544879950261099038341711721855706087767808860068090521165728762822998621535229930419137589712213915087085886794471290006126180592031507851028726657549628063503687439529626025053771956732298245984842956485842104348195136481627829177392733590290632726336153046856979793773353516571189565086854433076932959302410537092640773901134084512822324350899411462520393367816963565101405816884780173104243080844792890731469324418752585738985808033192666640471553678320011798574471566039107862558127112130069135469652841417308251618662636141159901283119806927812299753944357491468269763397271546414908530597370539141041745441399870414215806026664581644963670509320275265550494082040943641709064313015964833258091910080310450090163829481630406783519654159344175601988706320954809400659065462716093959284762485677474505425287036584722302234632400257729787143098972052192250734539501693717332189923219117515557396890734486207904326198559593197627436009408831939812201297053215709819634116827955756027084650332806988279794513598317509483028542678455465667359460380988668217784683356871180733433200726145620777104831149984541179586190880355079393788539348301642352779693464291823450510291671870334152481336181574171387277649662395940514228583568383393598891421382683064646344922007754387356786884700075774434503238546656138531444649029940226671399280628742650394539154969679760353368225754522944819023616228068231694852184374001879232642809307369783044856022999224619183003680818166235772174065395787030430087212088724490316164069131340909903492653881172077627288827467432402471104314403904704232511617301707040931846773234579597227889444531426469872212043148717764209102956743282626954379873237397474456483243864736960039696628686441225596476334189629689960081267304082376492956778303570597110025899123286873499252001035850280756736003948883207027257682691863045196299562933846084872790247286440059862866582475659219080286961295158408574095160808313856119059005743130519198464352583069094663335761768665165390499132141125672269330320783241618281846453762386365288091025623702636166918514711501244815267357293178525224249682998996607195794459117986323172979273712820273569347666555712542849361305312718509537989915459095389072503661003326596766893138864160039311770138750104835380088415352938203540836365601503212303014998967141064076749421734326155825124071244829920380053943908720794698598298900644723910379229203564321838455011647689292095545251432486404247874118074093313228902718364039091611659277219397486624062317039082144028541130493271304705131779521919147096290771297133067329157802445714293217207698910864117599600700004486522922117007308349494716166728368915723723599147172675731797600297703860604904763625831590780798011378488403508556918398466666319729170525918221099512140953765380330994033205958694127561374783025841018290102236645282904283473270409608135245743210595205687795029138957323453153539452702949083577126966435648352121955499297518137978655195488406193952993535509432364133207030729089119851605803188828599381321730298164008043297611537507855182530902467500703332592818360302991492200419997179002787814183527522003756641990555764433516423604384547211712685997537397692009272563297960288103571582766328520178072919180501929993792384163133777790588067970365587590930314348281445912923792134773246971336702954152355141477644446456032229852075237474458205253669965717036835771528554895260406486335917407668838659451460906463639624057316054215258075709137572351823972485404155120639245154932059450905612190786132862860523257519508336452686020334210061028582087485101892136348059452225486921234586226307118592604391405578529766098293703406947551042868069626836845324501240523579311041387133693300663057404340320335572091881043608477076278007156856124930929792924391993633507875808227473282628601033604907745252522458724001378227164394726916902438007379279604628838689471176027708488318699321497982575102939829838024884330209371335614174122223699300815428300247870971327321828730328828452120857457777994711382852780565786120364091922098302893985345057230550855578212531159214133789980047389621285674491325330951092308064796738395912975876225096641688373035408204332407873692089001808943726129831175138340208596646744937142957739561359837354090915748140107292321845733007359497166606816278133391134483419950309142721220173745500198780856304221533016162817724612729211851519838135584579295131586132498660976117987863811575035660277998465020631683888650882462124437835360213104363122381017385652875550859839920490335811777760248635172281221098520289313001274505192292866204224913641985865746143268261721796910705534135983577785629843187550786149708179750889545783119823689300036855600027551737671753970008461424955054193036354822042095188787712652054985803818246623326864983569133704240741587991862093730063171020576349185426987588947136136021841917477619041978474501050444332569061706414928032915304862964596324980693615201709737108962994004002240878425511915525957942393585726332815160198541103674764970686846655718722049857276829532829808235080177560755742877625160111634811696518529571183827559653749695597958302468442122761061208309290568164640859408258102295090059260800210268356208256989459115195527382566925581103327243141475607355812723054734629928796219179639026093647240757705443901322702379621169888804184252192568717915719808767735026522965103690445384787918438365852234195763118701511761919605355663753842582848766915011008610680829403941402267162060610012295093786764267233359841660674388425519746319052514428700147174280767172080069929966579157674558297444726540497731876012719103249993340135343690748378662636880574284881291169616386119492032407795424272410171538939521234792325959280571502107797956140057207908705365335658174908427017295139370896630098052345597592293840899957080097359455583085122350542316566030100690188759494062400594498408314790620357025815714590955545524264223446462706991346879812301984740870659541754764367286561154698644611585601322207071981259838623035704243162654206399509484094487495458992476312269430628963830993704033135890446722006840319291596565829928348342749033196075048284050647676831691486864277990402258678857640326541078544364749920417242788843895337365227355500898828102609282932472313324397583501285944462321494712111652418003148182068364002768978836761215754944903095621065817218259581394049009645450880911406574583344034814328862554449006082340163871583240928609293597337842865142016891080554133446069285726743180033277903584132403863007141857841505891159857651114615063861685357469878297873111965553633591236649121260182635294961077306915088796173178211942603597406061206723636812806351497889356345824786885387873651633630261629764555198165554283373931290745917772304035987967070732064013201111997415402163109927503807086410005574977123916197172075141378776614187471343212985136929053227885335765258418922328533241960634799595167846601087893001695356146182186023448012852509995381908850743781420628932092050522441853883544999903775855059094359035070132433123403263799344873583214881578969563578842563946164801564754381662745376975950174988056350353924564524420209995078521384944650915457823252432674213360440325251816802245642424442826730699985958791672979856196602041557138770851794476824390149375837953120065416758215015520585876139883094756425185945042503711935622976132425517181990315052885326866495453888722102930586846725156191706985798861720082727808246178299244842231992096363550538147878190990194627613460493675932385633114856658370720936946140169384396711393056241854401183252965031995221632673457090596252717329548611039252133477625530842220030967945856892098588876030457799539016903368136856053548818327802827554443932643979917270966245306405528103522417247450345896440415221925032876167843817450976821469626371897212819043166794609841955670264836144318284707541591449304266413163065020873997729736049608387894426985315440611236775079976824168713768111391313801132829294570131282626025569317227082252257694938846227639152094061416208739610243883605904906228658863935256798239740422001374545241705246439407305973637986073287664980092421715598955619434449550898355170305795430941709085132707334514285348695916683965682979369240895724522516989283075125349716330178953990684482945477878059611195372154855936871550920505914254431460434260152362969917041038941388000082034481157264044958305707504432723612848955669446613898422291857971872478919610271705443027928603885594440612360867997161684727356425027553117294577495236340978449213096291363716336526961370768613594160936832196572739926801716418903666727491095079745725766934054666263818385960988547475109739052379115569827822200051421350789851718814278614324684778895840664204916934259920868245040816230536157711964320995501660695011475053036524328457439214128633272586821012029595704032266892837682641470795590116868339069462003336019377748336168986958544419409524578826755540397751601693121235295013169432204295816660489276575092890749005160610938190382053649610506990024801201237036468671661010041397900930306374631819283752496116585160607636086073964421800265778744612110722207902421260314855294027921968200823415368522294694563717328777291726971834229830662760983525268679319614821266904065613363881286812741233291278280894557117074814574907857148478750201200226563559671367509999112929390699114363673421916995872510274948831387491478170348711275930588368209884483641091982532206870090008524828742454186245582528944381492548241700870740262376622091525250544868278355458614387895118643293736809545202014051844894510884365261552073723356741966171022597112706786080610838464548502085216355262558768032066685192901704404971397714899189271428009620020136016283623336529857221612596963295812868465562007073220013891116060145984953931294557661027082158108902269133257366970910554760530894034845711503554597418497734651307624755101233573566890090286451507125017633764053355939427091280950574848704972720316590833676576444873514792207929622762858310794624121506940756368184597732941283566402577293693292085422539990595253949386223736734835830998241153435069477030872295627137559213193949044969222188227922059680942984126524244928314483270296477933130927126239868780638649859785159127387377940723582496768504676835494158954561789693398783657026234119650377206168519094453866969562066797641381527954506360181570293633857178503587419135934958417551763613442387481692691775078343383695562891808812276488514321534884036066181912290094383418762426949104310042471307467623816134728414618472798547972666339159077881299234672507161107658830814097765791949154177736069452013547308855779795798973507388823250643886516830362170950011489778766800258817282350147756770100028788749131478558925652250581252930192814079580420047635819743092791189338278999880474570252727631941328861355708228167765550672679233182137990211954988331705524556083232899008528798524969035812175884234371611776360302598347360180461531315402628812109664931346685941782834828597449119023091137792080783889569968717938066773353994444293736610480433267022762250093345532025870780389943295844007340038026845676900440907323226818707311075957473584534230620879631945305925864981249105989336537421130956678847588999853504578459614059728840210697164707959590446528767783906305659132176888126117053687676196685068670070645159780461844987334723388759229047559317500456805885020913230018754440604468370822292318723930823976813244630399500638260881258039276042611287612716464544066311768889969517978574396809871986843097996496718136412327775570445360047040730299095344405381571138359572744828623474656164957118597672698843172128983133757902846237222270489102089373090172225739955774160300423281260928400065382288038948969991380753928968432366946618621102955097687505932367129772142241623687445459653860133507538148352970833890990103074399803216112196432296004056570714061279058974713589215075842020152025747943476271463525354593588524366580645492084156341993457859793163051434422576534735054125987044349114092265081467989459964989819132152978322857087020636542356881738501493598325242735231710428767658821657298783727091837050384421775867047975640446849955038926905494615911690027636060142255195742674698409121465867570312960667191391353750479523074523204903073273133353424303354559473847134991105000986857156616481260982150858646016712142807317942053313764755401810027432925158076540218551388017739356080005565454497815008271446472593049573001618948145538308996420200230377893762279605867037847395874526138757116361221122042020773525104642055212068631835186131226039520880258120822457625755836843727651198050151039724343333633616495524867003241752395484029911554934151244522082371227674989390758478830010980165906864462874816141337595570213296999427141036150829702027486774358732972456952541473619023560853310676879117423762411511694651640869419699418539612642826609038442859906879468253808891997873121192349167713255852699895987373072314263040485736639962719660034979204505488599158418508674029943843688703368626442716064803926897352275789202693578505400371296613350715923582140816892717767934898780853304723981436379009365272734876371185540754425548057300193412250825052404116110599945775735273199960975775709443823290976424501755023571211693123731091679939047249190810087961843865801009716203664031144823853419650519666408622741976790922227950312346281897846055275696876082493351344631854915045351083643210672387924923339766096471690553551818730937921790465463943545413559407886967234748218926539072650605813250199491308901798854040096668307414106858733740640905782403587931704103116346753381832407060302709785540293545112517052253614630068199194837545578469914368358525596389535217317885835462203296588907141717358452717832584986063781603334535752300629631544829157694260421902205115460330096156004836421648377171558413467551971030473352531055532390121608595485251261859138649411777680557504405476888555339609612816165560444222960882124621800789652592885184821693314403485273889720848431329166069630878506493226116167370414730068603701591686595721414035380100690563642571630740370136683358332868255116191619956949960150258563838865641104636643598502049701989706227963422740243780362822054385805325754705601688888966914950062969602779197215073839452535417898063195589663577030908149672152588753347052613932561630576244199931229558623871723995769577364504998992273101516555034650718305996915206638040506013477722258614398961265188902324180300366444378446268115844330679906302514172760168696371332276602250055556588500010177328973754527466155566314098861869428450588240083602196568895288742794922175048313760604441780280432629165771881648934154456679031543150908099355885360371467683176749552800305967023136268617851936146173535809749854897338824755933766295297911215862923935714936183175856320505394474410409479908121932801096617860381914895652288106889137083397960452242468260151028260112841485511086309026242259360068639486571505863681293144274920941532041433593903255926352748764076358874017165753263169577524452305467330143168365155993875601507884804969506584453446782080807040546289079613449035857186018179162414572062154434928285999646971944231610793296901464345371156414510078297872327350281685687093807137821337413361850802302526060749459843969156505969511953866467827858097727601554726320269931672463962225477820389011253576440565811428628856395590261369878835656073382080099034616441845968123969103562560771259923201316463195198270363877815191384889270376806358413152324882417338457305008478494007574895389551256348182099853976401957413705990101565424091463075367549908547812910853546279157340263353204009000461853063881099436049902146145490696344492939740336217309863473743203112276235621834634920531129879088213529712552607316119458095740329616827809561337542837392282320835975274263097780512949392674730640077555264836251149559746332336650685704643611622113374692439908907993379222820303769897036490338614603728728786093084589811312886963555548826964724040696217933189335886394723090854203731099376759944069295365128195137135178667330160833649304906379363506573233856050482650519946006943649087820037729149755788663480365436767268600339002770452337350468817626080704131169662622291532272316501218560044561578674186024218910282712903446292073485051571001844613935205656739052427605882080680131829719716671285352281350862076312439377115997082166956350476922982957962621256719660897887502287033401829955666925626395062605262106498208983398844615079261210219902670529622092295176262884025567291013004998387378305703909346354621817086863249185025703175536087596127001369374228620086087803356594932804209233398586878617395970326148033954881397507759105116329798739460075306553304890418389126024273179288875609702551847904765618285210824951282030959361496279745788154905883597155063209810378466730807839054915933120453765286487549687141380556675979039877097674987025685379904880135809498395485116567174988849583006284188172940018209192475246011329586417792262003774577281208235650965813658905939025920705747279648507002272700229204627174613126510153796905819861590961381125197898915895839974092640597669563563873579782685504190722145128972802150208095230394707364052765871288332323529263198952317714943044467928839117706327169810447921350663962224135755887948467896155275979482095004275789189270250420586874117021021547610859952293402528349238519932619430919364169519273129712990425690064317519117057817737687730133651531066996160208995951084212243400807570512651568447302258299870850117181447052004973098385425560636622182005790797851071320978075839239826660466153630011536472401678230978187629761442640217747621577433644990622239334380612818343789269163055679869455925508749196267220760744982912592959330615610597467795302000346173148921991250339772400799441033552501174215410996873691337705879756507439718883696450581904217992756598796517177106323921539564248024243848213118013516134636733607129057358422755122026854871041840568282024574107480710948450213780025786104281116224003595939599121697250244634715954551416773825052321394588150321270643035497268437711566041045568908753572880670328690440827207517814304212768506060596801188974588310872860340867654490948124771025145823978900041334204304750710232644868009497881685538092161690750129944118354213047032688791074854057380741546128319732934281236200073932533988228194305683373234942194079570006790207197054820995140543744251799580723464883522400702157208260479007127859213459304203025572217466892685921688127618884996083978649950241317101513847585583375951286031363928072028049117313251325848212891465873776853819253728646972942043573274716025317901431172662331991780926232973557912832197001177995412955245080204309377011071001291531708575453678975628232943179522691287026839823819047163807385333876731204633916092794226015064692009529986956644251650703330204203629583654709325567359811910896903483980850546432358142610193153081733838129634144830319541887232483867943211991711737583922741889822976321526280241492454183300724853254095057398119128766005448564087888567089389769459288474507933896246865180525916995923660983605826851451010189304190327183789739439017103467133366278405301298106307395719666061587900112675217177073828179568040758750330520796647393678073682619720856491604648204686592155735124346662600932698883699232497265665020488286187334791582089214395811141871313642492441617661840317373067640345243611194656588490927552193131414980714592302689883896234729595779833563679414619105938815904551187513355977424106879092956593763065625577371146449508241393678357237453577267633464906667092247283102616150643403369074927501038242814391896199814546081769931210310944442781488880638925282598684664406901510940516106226195674171075248868096052844875278839958016185889044794714290615929022483183526974782490365179947593498041927329552771863319592998653714307707138138124739023654769595355160766617034591163257868437216604826191001226863601439364127306560407864006130663682558161153323739302859808184336611198318536271109659704277848344300955608010064188010236126175309588303071758122898800149279891884112407882802439023352371559962144828463101002068222398830174247582603692604447516126118954698267682054317403508418409006099672886642501642150583725311502465683140338234458708956720706528707649337641471826543681968345122700069634394840079391225027071033103161049853223391729122608165676771106652922677745614776669390080305483187055687138137094520584462396762900475412292619506763414862193295292129623443457467809725771243545769661775406897778181293727826209701154556862494437334740841691771327361542211457995659647960443906043939263612020659027165329604070413473792968734750180429109474052680135358768839228248322815682811031634063459817829139591115939674884577020448109378698899759517046439018372644006268168278245278899490562925247284275951927526174284346384898120170296960081679886318485123819001286265057668449599925927027340510081487891954273557872947647796160177426136359054072098772426363228465845777906414503378977805789990142939089730880848604313399352644268235035633049806161232979094965694664175965669946150205085127209753701018824420189627077517689034377114554015133287438006255755069047993334151364307606704402378281798930096064959259116917934256812065315932064234626954401375745158953005063614950789046560908485557703126900087775778791435849295319990307903659532464871621675145426175626321283023905183173230616554636080821611055895345856240128848226537746813778718434961226150989049434617042962504792161952361814388462657767494855700129624370462526888930205506353051300369073361034189661834202755783456663375048444840399225216919725726616707905517583170028903500165459400130666703288555674012242857245185482564530285112447305252299829290155571370439525839813191965855937065798094170674988778036133445240709335913023357796062943007418521196622598177207771023915607904612328982958233479343552973812611567043809922367343448643342858208969448480060896788692879969956245503313114575402010403433048977911714096265254556486595508939578713227904836830501563493755307862294683151119464709063615778102291406682675276675236620939987869771852372264452045483023831972772663044853914980018573745292646904588356840583715407520922774869763036301843769997437455263482563652539191603630736774225703736152486618592862879352896801328570813911679493645678365947905148363706852553721266106683295402278083338703328033183845148406312777413750736556692845262516913430555052942788656260898508692153932082866756887146263920057862531233879900922354306821264771906466611536126400647852010701567559297501256175758673891999090362105141921222666704184826893303142367400033544837982197052813463882303479139730220842092999429138363057987673180676109131430249043341201483722307399931085969031677827830613587891075731173932405731663909683895195385723038384377494820583203333170127312098172838485893982887554099128322841188299573227765625956244492752592722032117922802688913031631011998551500752543821254005632881374965986649471945692341939690356561322274828594901468662891442302517268846199020618342206406207231093742964798088227109554881696094459885706247080209495239106663519111311119800827341925776538732523605650026567959499816436513633388511365553623645996257271313221459366590775943599675366062900582844659743153139001151592452339222338151445806415650340985652194631678321755280976561138131730450622858001342228274616550172127424539448758871044071091284139863504766767579003972232535294269951958820561847667475437261970724269540795921280887670598023760306599771596081954838656586749107361231253186991628530793283391583211413673896227784567776252686781334836664592001721115093761070037577687116485030368818251098862294727730271143706951973066778119153206380695142266770895686671226926823106711574147156407539046626656983599605765778150160972572373426156727623170599029139260267570894884016574656476743798823247846055179341214716909342887409108477318832616674576068904841079728151842610797845859809281224071190443536653675707244915258115388365039500555819647647520338324293869025360001813799001893466205914309898977115806913130171657595736150718925223154963534987060029292796555383538828478930951623835174535541089636217944170295242272732607068576907969660017842581015324816557769554647182577834617474426590854926318303862119516604473911996888940466373409867764744776678858501619626273972193644744458161056145366453781104582962476400283437283339731866590628148592724154764494029682166214665242888362271864519139795256294328414033880360352512897626690717025496978364226397803092223292228780643644741692438968645969530903122846542508057682905106733540963856088419539910438312247449208288739958104513366572410560271533205499036390466426443261156086433386030457185802817464201560275373390160546904967297873401959992121543331783122557950139770766448358664133035116333781231312314798514631699578590308820956765831085929993323428749711110299495869728209249041456284091581503667546197107051081800314815199662473180890850327588577125626729680351111755687993489843150000770309282972043830491465014590769963838998804868365897802381404098637606812479879174195444373836034407760306103819724781581252824979912088442802781417969923253152461174577390488924524773746631694721616067411298309001745235463349857204835257181988679300370313746442231984168145527018608717126837665478161820347797049955448903332347950822267331822774933905548951988277862485426119205589178784434645700558671337178313728142287296857669380844705178716446822165710749820847200705614575820099732398194785612101426296647648559895470739107383902276180438962381692284322741178384619835177777409695606502680834202419443795183563998767358853447561441939722966087856207792468113614888194869745932432499997033806248551401453465951138736129440611870827964269448241347401738482085522864539348005230079019184492001431097946898291758608278873687548313717599635884855796690748160785218072092169122867613613153652297170232640218024652193381919638187341636029140719149032732486692178959270045775155001388807090831392115764235263993277370126471884946559875284257284897805492281761087007131482290535284696176860087910254655870236629152010564467540082696211324252035310580523368927772702085978223562942071729700116425053947304146485181168011290960834338987636624484839385847124658069615285307651939542857758167634929527951395549988049002111912762911660319156086881480664282009657149351622860904108963355938018075984912296944784592203779365906254560620848867095297380560133880711686139458070321391553151895698555128469544893232690200862975785165334734941294437141022075008342562335463334711146925721581327658190044797849727531154870573293629288299734029518806914101384134793056644527584640538457479851330146466623336725824673484619718190022703922456836636512786648646111861717574920015230816712151877731096437581477771639363616321665651041117834534025584215516107531244513444274973674758585685936484551584180802804711182622234389195962018203892085828548212798609194069867774273072355241997084086903995927817998521357756414590883581363531073971977844251726827658406686786524114983052148312487547450213152652994142578309667908753568421565112857077625241744229241588008163785263061317800507658122682264338312281222887115212941529417880928790988577693455163866964929071758911510622566246000929159020772618383771171127389798018999152079926741315567238311239549493704309511843846297403723235090029982642384394212963317011124991592773198691645829591323356009564735553104561722379791767783964003564174096290459055325738138428433051149421805332637401269227462343403246881532614062529168408231917224998767067390433221098798031093491703022234144661593034460134533078406865018307245472072523976369149188228753276165265999887327329334477787702154932562009552922784168231894532712633598676873379229457552349812704370599824915352188108742927595849405526709395581993255231112837359436059324493364451245788839915022285871378238924413423359672009798181482760756638142396430432915518294401563696854592175456184032633237035703040420805473882232236058732222122639940878114194347087972669869292541676753462807175064561383216027216546327019512572116923967252186701991884684483525444256088620368697270604240589117608325817073804176088200899549102089701274189013022892045474332812381737487333957617380733308438281319863414920470420821372177681249114479439849370415713302383691628926346548016015045389179967061261682230458545757160589770450700417459377430133988092194366539092415419985556413797794275779654056903158950072592952997866681951742434273497196421685161688509148545504308277673813745216269689955417887036706715729580467681314640524976226579316024193832600222019600356890858993284245421093886655015528681564361448294721065516234937875326808110398835389513127021460159109896150668076593301135122330452691143645525548480940835652459829854703505467810369878836357714691276531185852956292881988433253214890244787996107240482653615460106298737930075861929898287961285172777220892809132028534937668328319782104323502337814656285140011408803530972064042913149159855186256530221106554911538179430046907809837208807102533455538204014920665186162799866726313095359011461168987050303022230145791470185989846892942356074491012519711083777870044312737621132068125191369922910722375318592197796987104268303519554356940529708044601310764778548395405245813379481809584335465052106716679993997863676307732713597022862697388906165971801027183736594419473240312060224941617280573649631636946524243566733565166374813220231191535092694773973966606577580862092338037114177246786899971310919638319772568908470574080874199988959167053883705679520177898479211099174251138545154907557154544020924408680819423832052918341162623012703927439262022390234420978380378505388795263379126409627548856879242471835639946858226247152633992017828561304082073415241928256195951444711930532923034422019821610577774080888293663731808910041954644893968046038465607044431986487799793144579422556798233139977218390647718420295732394269950011897618376261376138567802475269148199966320474042927536575499707587362609985073007084501178473161513713357206254766373201351454536667320477340156427890518218288017636149645789625064098721607726152558713445541110898154685582336102954706029492175018191332297022651394524528734174878194225729604864088853396761863763384881893670932779376290409333813150018045591919993516686346445166528608068133822405472559638304050372471159631531125345321706398665996007978012098299963707443704435214146311755862672720092889843428455949410908723947221898846004739051023589332559708876917021624529169151321152401394597667758049312348027808406625832291057189535369885488310129539788525898520294163398029583573864707455822101929222044636847557637540676837946992799327757650843156300900587251190762528825598343760951206348030429001852152166382270526568364860125446699987788322934495109273703740168816643000752128038079042230466402786154328751228383150634501182080696122638748459532105688968235175743363733026910125222692068060174671968671438911483065395183084488479255556535427542530418706360938281947723718119751736082054555317611741210922923936244186175434934121076844296801914764971528024937329250932098260561529252423276105294695606617738985550606048347592849578936031898498651449123401442397423249827435754184370826072304693191287260407122825630616478261716483444489342027804156238569976152953533354252235017542118513286618086699072988539060871674210602631285976502420774127372292077547965789271097272811261997468525371689464374788282254295623947813190805042562996353657698930016320533570967032881537704461833562877824699970918934846595057601077645030876526973217642215711097414545651882821702069857749952007946701915632517757741467656908805283356879703473932499981959166986100601999323953367403060147400533349976199152172335649273530832430048299758445864132230987589471548484933261256789556415773406732491895530015122382824421347332814972784478295273586265222471728069617373495418436908791640785141628791473968683877447039892766221868786470463003638696313318205660759004148264193142563139520802407127543808540599797615908393228037848685635027942983793792279078437169269824160583082728689692513317698805338246324550570443639766203340092657662228431647825424022572222507534303985087853711244293900304639042066084249565012770159713897623089715756401048198781478949168719122786640708206067921867598280963249757840441464329451263671952282157170479608684233801014253078506080757281402322372392401736238280031742829115012756769715973718051130004267404451003344332043109595112843626381547295031053359154123584456088063132250719467911919135581362891808398717830230027803232847064106717865602728592600783719437161512701172199773643523589998391581079671173504676364357146705496421379426530084302099929796134347666715087673286769566700212138714908530461786575347804525385437630635927877645570228488867348789041130855894317779267589549928012537459263850278821881810972339405732199801818018046983774703080975474866820828694918038014637012416001644493119729110060349338958055346954309718645933844929500120159015722172920468364464932016402574479743039478568774256497160022074231624164130538304479432811266693295936306802205088076213260414970238563952693620487156931336519535299947716722869045610832174261263154591069436938604329308490899009583230334091900002942742595802529257010967318208446962252044503290062471327454255174350167047226985249874952176671989152759673408281447475206057641521369604580655110571297210464318988374569689527899943267115185586560083084352489656710067450108629053633534552312837470859306869250707083256934622182233954287147833554945649820236595423722078292205971684788345137531609098086378293098842301544402790676368827043225261662033098788456235767731393110943119870191128350194848981157002794443061794011002458478367912605820792794930856203794341851295800885914411346561641107309862940697024661459969046938403824844653094297517630768452280165220839896905758395446204782233939007340089640322832670851411615348350683802431439385771538161257620819139330121955349829744686452789863098834943768364702375096891444080176825557996334236407202517438970273333252350581196000488578073035119914869012301069358059814754350911801346805790353739404848955920379557659970929918243944792014739987122358463421702721021137152270304393734124309097072211651423300484562668949246556921539268477172704844700767947109195489693196887730469022186067222773232855134856169378175559752841876175262914093586904726554366869750829654389444009369634368805261522156758223426124681263647046031773954194077992354596544635252497745837682078947603115098284771862784680154109280391326626571148360327413139184991347733013381132580705433900527598263115828641529791063672986993741208886335711268104191278018401098295996873368774177565658588069685825603540476006016173431217843173730043434655048869291776926899465613210014099355226946907409873966361898142732746186978258789812778122604513700986110908337145333480364367837048181777546106701182922230387867142148246927536700772723100868832022773158691295410456620614011134203686568775429151532172178405041512095284007807914633668013216784841193539425825882213980722342095878507241890856692562148338590015934680509947747290044142154457995159224969051034857374603485603349691337335083526884786642432682441148941649244740683194125465091538619608047845094688957242214427776025775949843114383410226037601699470241259289459177499982976229685960526452723915897144731045577325239522222160919350114404902182656567252480307223582830409464073342502337833268749884344620700291391908014954324256663622257327147356516776994632320051864165561874806237842465304224126746211493087334859949158448243245211368680206167755851598057820749181095041053353941689808023097950317879992413326560979477516640458031074507883370728627559377351816007012708157934229011644282921569810591404559628276220828371468728500346662598847520608393955462205670890915619793077867559699419668476918702017333641304507046449178420355013961695769318544897969666590207352150390132315225755252904530392606127070513524920665302402564070262058532478577076218388020801053702656484697104270004032848027941632593287049931569138614726195817671592533386745698507360031953481465238424988627395728000561592780875819875733964219217162047797181825416399210288013816131548283036888764863050883366031758601295484321494822478459721985300393800089156681765611524839820010458579500204353771899195075801921708805828860328643341648122413295668426639211157287558847227498325337500490751871609217674880367801588790901520905676177666836202103863231049553326283707746214995722908818565023479645034374972774256172326020962756770835841087628970244569119562735175843405263185301161874287873808979218986213779973636189518316164101962599387797722920714834307000780014165151756697603035391292835822386339929570645307757876487146624088243916570434711814889385456590131825859556135447355728689302136067511872808787214606478624721295135681215287961998769545712017537607619908773578243484691063625266964195859347065875585580168354902246633680905350331497012792030675457024004189226863024961788525836881344362940920389077111404132328864823032035841133692830520472939212618932154000705118622343398537323127636456560022288109082581740640280941511031486542241674744641972966982669781186908689587093813145494363023994109868341152759260425220599119478246015724408914409222968442837904161587193649097097986926828246897991575148994174179292470277983434466566327139977749050809098319811149227369591266869149945720544177182027857542301510529734084519903049384098151667047890965016038466266519696933069778903173571016145046201053179588205227735706293891474539961058065512496786230111786603568566466935939890763528038180334380733148088253985076010438325532855005645160502017791901456141322662816775810005164834989228601314721103214326621807776548290717811327249281259476029527781937118406052360026654298921649346445578722533940252598903177305191437902186643458968913098178575159992887240834488668418222924952002528481875021964271342417780971954115987583290907296080540903530131518049275593220400491897717322369426570601266533261222961824938258009994065407612744293317991013864567898204389858290164657555707813625519073776051863214544098641308686438042109034085701279121205359254125203865552792846906845932456099066655043586511436065544561739128906557235008338545853093875125780846993535610884769500893234862306981233172973022578143015311311759457535316689829074624343736336118003799066811995593329932637082308035489462436920736004838295941181493452325945131706621983586889886262855630437060545005933984029217208798499511486039227661535508661061183856190696104613526331310915131753538051027398491991101457152458914507561765389871509395957511309934873188186263893671723889927538805429007632236301791554123193998489025066517162241882790268286430591227780856034367208671815484820682721879543363878325543463686131201854023036056803904317396367043491632919367126189991865682429482820193845743374230874612117801170475693467399593482183513311998777654488841074944226967455440587024852992681447253601939265889849121873176451500519756233123577020352756019855632758309865012756656298385672596184949378242202232334821640196780883577567372512923858013840246869871027635185103482579422114569008564285871364464031585176724090657185506896114352951603916049040051041157679330283600365027753514193292589843479376314154247554019768570223454723680100351187418926576809528390494293794521449779738551252020787260344762241407845122002299826553933881884982096471359651324100603663445587191352411236545000704398825421343881876331700158034278028596654995612205696090358826361006089727800045354430734573922031099938989953046976160842025529769663727664697066367179055484872800434937854789267311577092146010474028471210726853432311028642392884052073223022882570880141080353021848129690196835923318626105539946139267447257363318126757777018839522730425984156774476288557542062647034194575184103852838779272162030137987376190820868378383452230822000962752839065699915453577569922624622064106788812099237499056211362955570706179068025435858762563039525181160790832629111868751572266394194979548852562289679760945915012051559904577543286753250245489474363977925744944239026933608122350155573613045771853438734029141454393525507544216205979832518097120682830364484575690060826983697682624975512212749495525484762402480825214808185765031871480437962506573337404136757364009005424359294820747298401020550120523911525583325185179987970798279507693646918472727462795164879816801137746091047455264098436412303100152022557105305861149424966240560882034758381198311006350462837190302931359605254022207703891845200274497827268865108509371241621830559362296742293464272202732653582080077957448941472364582199762783522006773049547592904496102810270411869172305409649132083723212886944972675558992270217167327801582566188188878789769203164069342178510889670819654866550030590342254247352037552424930806795625580217690464691658253247743992342471334573559628597984340783591036059255165049174936531032542145926355664552528685703083549712133377248879829428572087951973521942612798452173136294878739297699424587773339075228473280950683167112652805089994880037770757526344502084714856580617979452624298830778718198203647085624917132891729848062962101388204999688850737578823008432339094933368818532070510534048500705665329248888517194736275184140123940872037432200708177443093025490870051440552493581668021491614304517275768814718809280115918800927093967351298981110684695467758019602133572407540925504224108366166651114141198336762842662058881914742895554757435616405557606659328638213929829134143811729843996069722601422702560565138261204815890996362277778503872585383358747964650328252696592022148007514582175308865614886126847420203806950798199595015047537653930351472003320416162955724410293101864129135682124744526668700587246661761082215851268196217337576236530256014235868356069003481613952315224097494847756434736386001459064614749594260762181780244967254690005096076543472139003224126284640978960734466600959817868478765341372448887523504236377344577583011920016329227773927748906983059475098423612006838531806331342371152341046680821825585142861865145077520914235380447750818815167910807007402301029010946344560563691329890191240251786082646997814628251676868204803426251616670270591463470218046976403724814593418501257312708420625847214787403838331684646520892185766837971216501197418568653396358017269773018638965067866941063913079791448904877438818425975276540373574003249131883937901210607990411152301499222829931972651059681149941507094744351439017593534954578010873563148069015764475936379933104915000501650219217940086487671669463882890186533113209079460612305409452957111750755366755262915047124295407900086033785019635330810483302180914551625844185705323257146948732208406193816629898078770216606033497616638110916778843091283137523748894651634218566640030561074980576266671926358955048369209792255916063807945332345469594171844826038141743455200144520689345202212616811968700576562125443821576091784706300878854552477430133232791248106544408967613218003913104394158152010527874908405500444966247598632615054257470262920391561302041148742973060046724327150316436158287492011020993272386029813032615121942530006346374275811707593242938739091980108159829606832712186420198037165654477493935492188795934104080011231805323296604946851407334696479023455002940208771502031629340889423564280932670209465262632307864611128249829067489015633855164542587351176287729412585540392335390085154177499274108378707631329950286308414532754850916437436514187735540616246389514026044741214057268886823324087068854067672348236628899275204639116061479458576878235549888423933691268564197345667436111515848522032287933553096833042684204960558030146397502449994492223599421879885620424527078812254626102121688937402812430040390577684712804621867241110724872898253074135029731164133475544559592785298979240664930388115654702431948225664326764120516373179472197172760966110246687759107648327001020476610869919625529178109567699082965523298750358421921211800607279074499935157499762544258087662707926632332150419649728290928701299548810628611260000538569283110070196697978423871641906819191227597676160336161808647507517255310621969069767971447206759649152515073518373262362899396215612623783841567647662685286795724652861160059293255044694499325986167939487061617060889122305224932632790993197848265961033295202480097327249060504177244113619907512880416203493848884325471645809803038245363426689237498336422416738337206183427709736022749413938775504455227919567208139528764503974165561720733977567812280232310369604440273572911124215409145034843766315681328782325725859942709724107595548588976719870014859378268459814582877877383535170554302133007406786755121545169454772264366806620274082985344991092972000848428923920464879570848583285371720058408076285480399492060242714398283876752691205898050990668563404376805735016706326417029755843594056146530557917746268179754134880321465284906214968733628591501492518827000143442111198657109653093320859758063289866023284107455378669352612767176247945302785669219063720380661517915185674372795430512849381651853266114765425694035731382666047825231571955080464144805980378190061962941032464313597026994643345623225082506336440997737342496961385623726560739881797049958851402471054285047456996822616478947728891255067789277446955813896221945529505394882141627042845861991265098592219759484388041119429307632375804818597417509313256369035981883898072227860944009164618788070356450835997412173277177308459169983573687407382319624710592425349250150160667260561532703545639136566978764669440236748181903767007333407705246819136327270905079147093426970123526235509961320911264673411340504135188513891157557921446478080404619040581207587732869008403422391921637214659799730549970440970108698870002598413455863779379148110340621439158924352661895384681446671837771462892244400422554672408151785840052796528348989908247991157074577733931309084824084780788088079467108482024669281755548928067194175692991199893422286979337745048200210659898006932093165440219217179503601484045969162284956775824851110466385952690742211451563043527765751009832190304057728428845569960214895261524405141145596072373868759456610150795337846417441075193797479757935965363080332805806213959195047002587781298175163829443087261748346278569064717850211748593072261289579828570122133699172838292639186731560933511582103079421852199865071630764778655113311271435801270399009386583079622776901850464249617809030793466580153878704568699330373337961246573322347908889188251481548904205716351533487549516743470290152767106597971057411814596477171006883598977329850445088006462850779180848705095464243240389133458242738948435504206639344952437776168269743632840859882274657067565294730832477005897303946339118499824122534445436660237598401427700155605675802321263009043669324871795029553323151188055613925078125932209479872515617422969093362913928144408053201377827683541681852541620611474755513341875462403831819746359133800468448216872182979865677742031955172759601320809082587821166701104227401094461702671404049284474567848603634902907596664428775077553629836012495662120916652466296038156556127208640891128803663993244169104976392991261518360324651196522931394694415952824713817151561718825376645473512270190626057033260702915088875424581902529885514667548519433189285535814457825605516190327941318508168247877066392864766757718743881220659636184914755961766927464982058495081467453963346410241332401932615977885877163364848398743801648875608105495712122658993861646933647450416940472437169622973178735685277140042157358923256403051080980594302421042257182474689060073317410636127638737747375477487834428814208177145547554741381942781973379459766422736167033529310054753581725511191848736110769272667099176658981835228671409458323573084373126087282999672788467828438240277469279521863357699871295355813826218430637621707530706728746255790985483337779428962115582912137842128757521051302298092534780997692624218106827944828929847529438170995132692612155333660063840032584638349570268600185773829313593848514167876005534806607229961578983627173125395185759517232919696885116260598892460472176557915261757945810371795460715847573169950765707026641379978370188768806071304325847223976915420147773972730656926372598056791329028071222616618067333153018155221370252310565440487484295304617584122879612169080480668991366081301443938785106259364222458586810482707075551551939331537732040409499750731806768629536292251631833020054191226971953425617327431416476616257849964759165540476214131365822306243268923225434909114875339153246539911078208737922551521124940527743831070371184281890797806048247935505701681637846701924281166168474327485003877184935936052098269138775988452545545644476395638984268952834419910642786873047246496744919618059031781519397837972563104688669406267981756353749068799951742901248415047907482484300035902398285773370737417557337522028528213166694347423548043619987275129741473893687096728266921138027099014070638962149924567908724191357848312383029789929956287263263974618179442528380793233690099061078342132704838907917334090389662835523753025115529433271699196234001158153769745197626345275934086777639679042479437860216983708385486355631314656727234455537068757082691720618088165488813624911966318778458489254166227083324716409722937360702731247700603142164232989378109903562646463253231269098510188235965308043512442502846608754116776789988824075803112834230559523598652276089426326408476896185102819420762283378302461535698583686645435494201255061353494231221252689844711943014576955375173622938402435732943401251233719867299863122547269847793707615235600027236250757263895178092654697660243399956660679339747065084705641283034985382439750349433278565766426365487570257761083828305539397405040058436122974461665751882389370749135029048976449320106420753818468613514607587169212950673566309220216118524431983255807213483371230366071488579782402190392186218083538421681651294653341114677227027748013371337109339470471267938668108795933743671754764905733955872278858004164492101397848725485297205833383271406490983475972335469720836080923853748715605518488149802252035414152297693674693250039223705338899020463050819239267121598011417543379653145063542214146286492409931258129424265561432496334395676686924932997640096653353940070828362863978095097711496817565158083304318810701280997384538468441572913800037186694800011421883991875873872537101590082899909208654726754851302875003058436609855782190845884966161157202337812407276117495256269516027551188458551398563860290524789585054443309632319476454607999939967950012830182418806265811532606297195977083031174630887188127011893822516329770008048057812461633060299233977717422967596507260561536135576326518130655850111495786790481195338951379707769052880587958311328864986895988368442442041970242757789279150146870579054114836691847546437014067341639336485402768371587864510110937562202248749735479127077687247212839836085007441366161487368368722226063488009553910714814410004660518593641730028163488137537041767254098362397430876954585774017986667106787302998555882991199015366335051572012399958140558327409559200847389897135671587572944090768392643103037913942488533694891472319484330338083488655806238599066186015195485564567274134985325539008919178048931271250911955039075047448578939794384758056208742646393446412529643793470600740376936570885293250232288305340755186880268212641489848581408151503326387050670257637321919099441237613135564396525051121582034289162319282913338296072597070331285692768361454001600099867351198973171861875577783329474007266510034320542859604147875594637483572077231951973532037538988674867689356088383204397584992346920092215907212290320961832194221994001008023289818996997655338784279298212179348834518301688852763938215794781238246647339078602653045558846372116676594159987430586954743153796738354351442154280746848001485062445234381786076349674338790595401151034880401254061633911469480841453016021035062130706107594671561227418500328854712150508515399245416945168099984755836149894145737595655640905114108422257066576299363457569931215932201174626955157962001316469108587869511005468270604348199306380669292184342941235884809904023249616119218313544122683142341450344440588769521352024217532746584319996401726858660636093597385207591808848181725362240200132769788194693186330955627512518866218880975368027549668514422767359599691402435563365408127716586771669307085675660120132071001515331409111364971486968444992950041804653021461236718182930426894418657781854873842094609887821224551725665800295919722283758223298052558747992098488242958390644064584111245409146421184677195533335741817944368462860501485699041672932036410717595645999534423275788785485615923095965720134177447181705843625500458744970671130697635169360680399140390122045171661802664573911331133608361988521259259881327280700961818753249911440459807931551237963769023222161471639794499590088994227019209562361904009103570319764949416712618690788010926416682541359485750709122185292525308910199516802332842836201975978802996991738727782191289967178966078503952678393429735744334950168706445608107857352832994460612290857938079062217173994055571836370291466683071210394011764597920299144691229523305446675227628969544033163832979503862489008939371569891178217656949733208917785027910724065045697472924505402928817628419360206061207439665547699937624464660095556313710799324913142252115882718641720283169536695766067069307688461922662791889892710805110662989653111818293996804702386306139246575704804858936051736568513114867872579556767110192603550732801187983442974877985507393396959695624286795137427817636555226211017304264670605511525467503684090128429300567418304474894700066186266170175099271083844539035127789273711923640980072982659068530199207558830642583185093985251723196472784219239170348629061766548953422184287659507789098510427453650747780642396841387979491200936552569249618528604317304342039321017645187774767265411553005306891734518629956020318541026476342880717851428625022087034361153195552316040744113862466767454873188112412664407857145267451151354308354934155731229672182317621739449271233645873724119409262587774984145514088549809564905005799105297923574193766585967614620890874567434706859217609089637116520034035478317680014958563768539067894324550347429683036292391770951381603103940207147573931706167749311837136632628182135026875847049912554242312280107675934471058067404927458963863228847897477954799257477675528269133847241384359935253981625365700977882994861027681312983715442314541757956312716047376239738927164546720980297498074071715050045967101975803164546734505169640299150829295199645896774496520841893417609720315092185004305546823979279530249142297416346578870620366981338993009091981338849191494432964883900124990593720823417155502748687530212106489010761686621041996963822230257955669192657716156260130559468283005126921292494673713432916601978061614159861862310692222757185399744506068444393746183344623327639695557329967786829114703778828678104388175253921050831715274390755852083756265148326158416101179832020148349266106233944445822595238820193023443512602487962011033787875977570628036666144408661202641529857397883265716982543723176637021367367275441606528943824314980656580695766865241450200938414509981949429394394346123660109119949155081909034442715794074292840972571394568760268542466632441927116350926222734087598605883920014261681925082453946040452887863497469999404226926396304959449618397599468573145310449755617876592880449524012056891113260307867042895465268209554399711581737914158806081728879642267554653562357341723226246484753099566506434895202949822743599219335307118478330079879405598412039362330609240133367479205934399346827699857788072411174554635024837435652374422510364946134413198600828788990551040767416806394417705748017317700350773432610627563810129225015779806493059651204846659257800463674557588702150773872710891202583050897795986418416056240863417707912339695554144980395188193575884112047040339326740954492612284416571312248367972753150086508719678170936365564889239281884048646583327845016788516805596564294098132058519503801936304150113724606582401303695050232053572902088610261801337049543785617142162336085845027694941444044477799311024395609670739912746218328767689246048975630852013630262853030780969740328155560561787647060461405886417908863268692451160916756366490625171112088341510013158008677229820423090118440876405645990381007237665601506463532925031692301968236756065336696673873292443190883514253800110098519155936734808711506559583576130176443644144653533138088669161033304956272032729780574420178302986138036785497587307829111768904194370915031703607375460697990955689420190027869548093269748609291236862437698068043672635903731965466859003302490920501196437170985853319855106949474296347479433321934124284747646432847506143134738408697889939854263941196052551097343418358396548898811468847029806672732982378954691155776310916684871662457246976767816433713877483631402744277291030930761833151517398851053778078278895206754346627042620340288202179426683223145031988081291353242933733614469694967594063918354827829744499528168337527895639889059581949637353748755924631406655879198998522119294515391599507680122511063058635840395115168132931553880459016778427769298954283000063965545769027649508757037396108270199831751380344821728553310347636334991826480618207194096886031094522312568202867994441847889734985056229624493044611937702163328894952796415878212514677937515663362851899117065579581512004280301671088402827364478079703008308884563293364767241603650891130545570881336597076110223493665018666488654448198827939663791420790413226344377670826820875969302323909732714283869814938648104976096012174770063937312992562166469012413831815073164823806791632926661381049992681230729142845744605358097282739342604443180914308511573873561027736556441089394521095788812262842071062813243934627305581323498443372233802371247489931317877843654303461902592706615361028835815926179555879809431316075960059674872866794333150569363826593176288031322604072519834217930504432900899598340327757606484546721179280529022181601460285801568640284648840970310750741500365243355907319333723915107200528597782514237869618547863799545764147965442011685488670262196032738131173977121866767080944105081926108621429288388823608445764203643850122466548036047243686429606326347594262449641623238260294546764476858868240769365129805732032178216656672486371416265380803719035112080021263059140597436991725970184942931394981918507379232534099640384400717245635980080180926327325648254748114828995301797891351856562824957841653990807135430086176091021143183948591169203559044380697542777610316764521190329700364015277389975859406495886886146408464910388935620485989637972034963386085452567753629733515162158823812014431185553888084723664179613413085142376380020019746235488326681310545021993493793440962221952408551706314971361631186287652743101927360573305909495554365242383703210956567762590477954691385585293402287321800556650963840944638015609394884818378362351678891420356594535460628357663164594924917859235627963519652728702593073796322939289216439274028704273381611387487671505119545161036520807289877771531714775822283846076018699149833030371578275571795191672699141050068142880097486199368446644725485078609777891924224792084462117859419550543217814184017393126529374610945908408441304905497044502157630857656657133275883936247892322492256208463863168052670875886987703839818662382474946869105335030048104553842180833492091178493132585374815591587961345248242956192820305389841885573151637579531306269337264050082055286266316471154039268523509466251321697901539344234831828032880937900494273429217528010124521926716930139607058117204851681566633164027716312748429693135782593892667465476042557819285813041434982271599197597144474078671149074698879225992920829377757570628158830468041559532426117812085957312968318804670403247457001982252764303141364655373718951789912653555047684418346330332724460910517422590624914548406307311879571964493903670657209514157419071757901958747984081595240650319952921567027694482967634368646964853814210932368659878134451784963764412100950089173870679511966082822093086419921122788105676557799183222238949612352493123385140255157355562030745207708190119479084694753281343927164364933439526352429806151629695588914161642195490367423099608381330542329664263350813530600831581672969368721956607920511437929861974806133337661338475107797148058397914035303748008867848671177256654162421413844726867835142172661859813935121975687422774411296380846421012689355324755955117511537826889571528993948720258484264281483581134118634277272154210187337810320474698470955009375935349878606687583064907346000947099435164255747398830659784551992216974738005813772434835547975532842076296697953879183144856441780366552513978410688319861397715403354367750183565656924818774239420108046663700323569059015813695574770544222742598884296325047838670362513447865624525939222265116053241517522126273077494620816880564039042446874451172363744819168786118740491711436964623332881159297628753154089103621234379670626214774093042852763864823448831502607882151677500518669327849531570817598163568993614155154250035424170045662106652852943276731416015083234206505317502538431452038518130084253332933353352329729674168156792368994416118271358407655801252017092589707464533196894645185035157040123861037647376837894178286270246195742539551542064740123581046013524945221108324051519828920897908904839608474924748704267733470460243788136650872783330597812081340515943470269750068682265909355402113806229533058247870119409785749267654516974098705540320743803679997131127445369078687145752995092662912944918731585211384521076771743026564537387679073701713786834755199637292995495239895109234666931549285138577754707120601875611898114006787287019223789873340954151613588470078036585436206123396751592730616652479261410655491103592749424821059963494063290429144206736186542757868199887033221291739747485577687708468338309784652841226009896215817448023360185321715239819539776941275416186571702390645625678152338691014492509327290197541311118750347404693916636697905846552292285769171080953169750339070118598518777887203274833416988526273557967140215119553234172971646375596532312423509821198944512490322376400901956276607864501496188552757249457905002271700269866381208585643033729954780344281968159238023512489004674346352700288316286550748861551978528653877267150627057912188513752347414096476885844812819737638126036622198079571777500960396213066107211932418413393227537478601436032076472690392722078506426474275458207183007369597553769150743348892487662457280456734076141511661926577456733320803469548098414046689531930856389969227733601643844116353033712922075291654079994110351177986745713711417967544458119432421919052068485436455920333386641396578393508682146872595968621939615219609005389800948987325596928518888271727505535421643321347670707038878383977483856563707951764132158223913154952912661496038782051248555608380492748752521208657114058458347496971641882990177386716966832627806910506992216025928840939236792241620252679054932599537391480832644656498231397290095150744067344701717748262660768948652707577785539767828218717990195176270245000230244907204884042569632482319900570570448983019821373372656149327273235950058165757917704184886159598144555348984830970182154822448020006167197456867988075025967595844179714242219784386646543402975549923980690991076814629149500665426379102021257964819453953185037688210608173187772770758211895393782476988902217033860555079716317985129464908305126987410963097031918332472693607146739915728025135363230181042555088694444516658762894800975781621954407146063013358476104628346732963461663681387481387047092214496529700761575959942383480762565866788445224016911469130315271061463417386316031518014520846176859051360130703238869094397368819543011742621659110983844936189463138445404513110132723225949005389054191843974887359507974259033217446347045637163602885633452459504734665069697662799186691778510575955150226807098874419875567926733939514779595780273433249583084387553379423105184965515864851563366581633614690188122453975095931453270102531499940142679279598690495560869501797804995311407487687849324647843685894029775624530148544713275069658612174128814349381960719288893129886682527676244688617747297955878847616005327311665524207437182464333889062464394251684552537436247955170341377217832585418460322840448951458904446266244548447430070745458271493230210823859799535554206351263476010545054218846631757896833347444528973595471558805682397645883293590329185069025525548443211973984897956044347470144679386598903627088281401750029323501198818579927673344414403628937642775276108482252285876830643199698597091127514215165461336266494773469217833110965460642537706765150167404390110360338586259091942342584098824772843518964474678245474718960478777440550801410553875360389482273502279235383394493829728033966147515935216682866623975218782927347224025356702393220265171871579934243582578495008591082021960239513092901282066053766509315002319491469577014047060005193626952696705195292118640199013999741360955345026014747584832647595446475255430374562841997876961762607920044149150561430976797024550409220345838622882721874921870498008938614277506888285774876861438220168200817271836761287869275329929822453523863244402166594904445436535798230235558843768937154520135294572644537336218392736272842679725337055039139880180878315555937154146883631714316501922297451228795078249791489695711117258513053278489228373253419887498818047067300015795342640817497691755992705781418944565960417224464014327724675293644696303493782975346007750287075003633224403743351895352550223659815077502933683349449388450666791911083331995086606896337742861574607241267416503134759042564784614204094988350493793598936777210368676478751774754877177794288163246119897817775159772893252210757631785170359366638144824446903462058717215673013498886773354216649424692408891096998040509132768186238525826554434138585798108680450751431178463112870291259421566800475640299418679117718535295748574246946545823597920502889789391005819797097405371014630365708232860326607293303253083913993963547886953473727044129678614135439768095391384009443113258679650747299523563015470225747848703582771725345587132688422185548125263793852416031836586146945612372121830786667749171548702445028843826495092221790052354937946012205239223818315184984480574681817585311927652518419987938099303164736259246064935007363295592952485892354729891666833250341333750959423156447673024681441848479760447500568130232389178628567586318937452451136351397460530839081566764250813865447498175660825856466801885296252151799210487873099539112759477850869970417303180265917497776228044420468955933877395546758947315241656564219803889640057352859290814106511583399912584861265761130009382710204871539394048978530938047787771354930962322584721929741537849926685495315714743420554873234289919626090964298717148870444492282836593032336872613755633592992266025588705070095111431720902825712213916708134561571616230214266913843384113517779366433546049465187905486770141387827114998225685263913644555532067108290267866951320113995640008400165706857593739569856484953323637330076727840087264665851919139119924869131045552607354434331814333718466812874973411217830159352652487233958578427395729139187260249875608918006665493258322749159921730092724180767833531649942970630801399717266813980435550776572022888285617334642573213102294145537765366124750699582109014524425069145005891246329311380518345278511334380806605237372093065859942397807273117113582457858270622267852425531560706207653281724101715041070929528363788905762444218632902410653110350380362257036449205972055568127700120501194509283239213778203086386535299441852182931828448468996607872209973958635446787031659711449442145055508507314934645873125094703806661483127784541186913047824051829731664202545390519534015320715259890108855148752976236615520936489849523621160129279941228330998341146748541135908661348897049688190138368384813284171992035500002506069506017584997561742691002319494016506173823434408386810878456177785820460094938574544029180217069015056245901463784359909797884886927729411677544556457036874317523303610135071990576746899220028833178481455374878425880564936303076254010748145427069007324996793962659771462637719724865820188861059971741343729492377518811153342889433714090390847326844691945764551901565043809478747372016728973869942032173182053974572879717428479287021131334412795057949568352333378020116846126163467372958514334759361375786673785103324539442865252612034054589924196904109284768909284323862132985460463022852018566626838593856772660387601533227239172149544566776778833384524522287596971714684130054108443085895236491033721058452771860605417580080402249095818299337864502083368187384553568625369353940126151659911086040161466946407648002249007378173679998819044520146847157364839589248249295161885528658224530578404376995699791398256593269951585489460630966555668000777038192640058470675920129133185421152188765384177090159081411435031128277169765413193167334414841103242710866837157108868845908117567092431225277890490055764917058846369192022627098083153262203375819541247217739572627664909349946603128840107937571502737613029860779527145446674804875507036474408377478184172625826068598523868081562721321203525807936544096745550108441759907411486113423439767195869157815803609414408719348852207403009018726398428143444158795935521855714511618242822025659971782644259364404045137384103336973000253302702808557140537574404162680998705881427919593256077850710339032657095961730414588177064681583249689424424913791769286397549779135522214918251634995895849067728831224618542694132612920201866938477214043745009128213887605948098686227469177436621329851218198408617956910607719229637458740974753285043840769285798664296574209720320578680316293762412429056475111023402359190285493917011099973472848301530703944832158983952690324880307516495178402985585459807919868373297937556183559451004968586708061840327219167660137176986627398500143672457433471771031718084395553618391301444585758341551550832616768898922659428301675943448246345149364356439460205878668687816169933709222551482289094447607801053742221462919764459815045317522718428237085942096581740901618640540065661915291830680203834027322447807381906676308816420990899934638878387056937210979993692457818355820755904000460440111051702025450647764731221357036788169437376222742887828075292922287555160574048388465161730241732262814057111763557931947099085044088146656547836189916155130572238003163217079631003988655730503407888530077270206023132674766499193858810096177913262542455749186597346294937513405564289397483705842892346366284590180499027705104514614617247899607514576708584070475364093145604185084388994535687258313417721226174055636990441196035019335876210295498706072556609226915043797843930272415165110824709816920871199577431535464256129718853552530010115536279597338343808442296620261681069275984593176030475316993322540093856565893565629393432787128046567024558698058907234501044459009162467873145265790024190216387755156143996634636278086047448242881966178341016308471970431129534234729172157475982739388827557091589799438750611229225339139615390213524820675755060115694489916288258222456248264231201691457804009106836827922859348000910927000200799536725528741055703295731620818264400625857244037988726149357925639921759888952076410046114454818744458627259791203626541884345882218913342736176656860039756223325892540672363472701649908252305316417812414501288074460177756217909146017932997291303786215065766017709194418643088329192365726385393667371442302242523114573194652201865545718087839323463074054514455602903657930417602213084143210346899412809155633415380580264337821896301592143211477393107806368652851113671161001893971469515165433807195765953349419761107633412033546728376353037801161511562587113467560586433011298979640892174760451558163673939878859589026085728182902049481394517772059829415570833440948353792049358042354225511292810620162224420206983141168194145143638493902344528702941938495187683526780987944468911519804305343260243187695794979926294374471368209983850707828743676022125581129586034203244158119771242243899122733694083412995613138255592829494350621344330551158653665380312389380335730529232141459472820141192579615833713107552958101851673392004859391181073882715742840400366154181271157023477837807234645080544862316619530849314598185281478277571677970650574774250739072340564033599413524327838555393864870944050613557025274657996010971376996048396269043245469532408100099519017410134427291783459454842528029709801644969317202536829004821801283406253723641756180020963914072276867685092361127973282826744948607569376086128480667327425633812464535833896461195678509571475079051776347183029195852633045069974578468479128011677128826451744247197533369176980069673066079144295193479967008135383888290737218711750702061381238370961170414646003950355934316360136930834412028445816818893500749456323624018038922686142959040300733609697151390283059084444814323672323114425110705161141352599634602318488411853079355648808389331703275448858050568432275363557918037079657051687018812203042861790405172896148331409587851237362659105746518286607729878539226681520148091838244502726760298035704996191162422544278013306497406573049208774717232004743562197425912595274768840739150216639562610705212831243487555576636945111474830192817660664157015278090150932630424931263505261309240891408695097942163016794331233938924261079703628431233844617040339368561516536723041313931699137599767823406293688383554463183713768986589939100941819110916847682850727414634814421014211828833766125051338216886930933504805479627841483035403848718072299060783375298259730669990866076858138435894234609981010209250984996227730227669636704519965138116272406566091742784667890560942692299613207891300179070140724283905205563382972551835668164162443121293384328686393321610466459228403170651195317118791591602082770587308336531896745885682958418688948035486864448613135112418686514412532214329502077246707674748248617570015548534984826906475542514633049619185617390824213959663766793540079817769518680725512692582567760813249134704473345224580854528860111917091883583899641232425564888199242773218486673950235949777610995118028143294486203339335679267167175309098757580635611426596398795035141095973522886138105678420328199340304851666210602462703695756060527149345632618760156237354221891714035839337759766931690691994489938346557355843523100940507293149185443060898594681147612914881637692521674502134138844772177306690909983854743513920704771145027792490528157667334001073380604970063395356073960858242865465708864749672742903888647094930293108741728919572969093596346339111083880492904183595507268907938083934255002465507932934251050828620117884124867995418643378489122918965377463642559512539988476278037707008314348273831132001124596156890489248781725186276472638095606309627832531133446108490443973043558382595433039802844852711243249293976188250806546527280411398256804519389033406985007144153518163312370446850809329799089028113837040050202540144546925126325924397351113669756689321549200393511827100326944111275693049018531201240250721735026903058654173727368671051632093909689796455367810611824661795106010371915233181166411162687873524620415807562576983672310642902521945810844263174414224119031026382854242117490104075767748550644424523917577826391679657112731703742979598220394650842389992580644919598668097878507108136944950654739624456506836507836551852712401482451427204555838639197802519642172582810570262580022396427283815140272265099487346923495133779344571135895983697860774575121438465749833197321375041647237201871500905653800570556263128652566138175705652465299492813241987668296134483965626995742745196067771613011750689598026100767608084566991126748339485426633485400887349054208184798893547413851887278124375754088510380530909995738828724806022648636360157787472866522381811627709346604704489572500626215126172472326734777161369061115977666997982867315666502201426605474132818643175041715509840933287081599665012420184533635346214491408841029573401017162195978007078911051967134273146217139043460730221614680680586091627794823802454393396425997048755052461972303329249159113001596035349886324273268527796306000230838494373344723322384447880428509276529417198676099919739300119685495166837034519333472912113797308492779033856346596984580979418269645490364122374193348512777838033168141221595421465279587198770670771533687073055681719429953851496039684944989453115811600564751021044727722590416353439853369180731863066858770488779840393206333205851782390988208778550459637225708879562904110971722639540575693011210854787448144485869005400606895459723482354736532594455831462422307194691204871791397128464349716438584771816116282409210551720280491143637402434453487374762736504366348387097770252840399723051072129627746761903811447190978477953922777474565327058384503563604472613258173631545189219016929265335647068174117853024468744205091076664369182233273605005597850344033122206143176488865845952701387385542994744668933009032718530263780050622105335520892290506610444011011060040301468826291794937886135346800768390915225152869582451099715773115351593240866066891632916680390908630377967967924596586467099086498365443169647594056783205068128710680235170207371477093345157840103566552708911832225912760236846259072527392779494102728716347082942949374497618346670155035912523637973359662532601630787974771929964185680377163692938192023995728433724859059438069080029379800520656595003834100303951082250893261831917592773884123900543254925646120070250453149259816715546473969446519908685526943988137924698325833891198517150779174327363438022230677603742222859128586465101549072338962856625657751400638924378785478596801076899475801756457564047006587990981184156058881867726046990417023290867269260333611972932275892225733599212822937391941615773319695499873232657096135264500681494415371577980362806649066276570276542531855200249912178785512676568942874009504823251944974578595470191354859888759031150387576771635897037957116394242676667136107898365594691827137960706644993249578002582837755780541794306768793584392352153316598892678405891879655267591705186980511720066518605364078953199253327192830333249118824844390460855366350681221223971708457719771726312018244313005212639601341507948895118010194294573064425605633399330543032051380637446003343466992029122455124123325845472526350496662641753168709174863509901343890969360297790769124122145974472796287399044082054081191256475715704060415899299507939099472518045598580406918574199863394808646883400710966294063729032214554978814021058572061930044342874870183008238409690319811156651252259819696380329569688113031999926949540342631204568278209580830104399605789513789932963277686537414398032438727325224192788737922813948315849469283546670300299664291235812544560099283390253868764883576921790357061956178402519729896371426999229601633297638897756568297512405925085423230498619924239096227377556575243804022908949461480894258016550970052205296670753644510296271925472926558082667193773373760795987022475337927034535630609504504588717612388017279490576654640288447804562449466065205688492760551095987200047863190536997082712107579260131250088389274079963078134536295808553926594707229271262068853915065730432415756904834945340102423616278048154295043984894212824464979268814780630603408188655177112002605272567993443415250157367385075074224160918925045661968191640648471310372822739676013822005035785376891390210540687796069995598978881567383361491943874739554977612593180406886638193191366530182964141080114390633584764583432581388245322631542147984724583786125266716269360892563333358236815275013517513662162328098876593709924103500949600850470212992748548849822576605444179400108216131135116283311554395077896950440955218643161030962340621069313043656187351224680861391515037573481373236168194602538979089471226594452974565810389008399538194721799514568074523090775551678647194935625248971807247796841151989048093713328029586907866224136762860257743479250459322410339518499486525292009952177345279126476002360012503863203086662613044692311542860784634712585929014850380098881657254029254824490823443268618509412038707349857666520897144756400092452736102240610745791451610305325894365272517234067536127874988433845143363236333441994090496589154975191454559092414645604660789139804829915716595818152775843008908462572848182116358232516243810719277472895586852942416016780191961215689942203745772470143562392039608227257268781545340049702370889481426736189032854565074238373624798477211046856162157675662269190366270630567974090184752777411142162944092100671786407920224328548248827881366675537921072078643935359345471653887407848624863984531618105259600156049361647523756229273497423806316944036352383541337036818661121818639614599172060268269787850937615141684798482652362708530148138937437216804521935802960768549506898617056182227403164796283132355622907050661079633917183919428111811895952966739644838053070697038654708497075007176286669481601447114432846075905493364401446748856464576744903699172041973663750601831219988332197291241519454647094032367989621576789493177876038822081418958447085862797848548921102300011777762889130230431374871509496320514303689954095449754737583424708479927858644171600093725851488304535481311319321972059792473813743650917734094317842033760283125176799664959424361650623359704493637755937943996304721772163472503880254529492181995103086406264103647564953522526763267217088949900948916126321876547408361024061753316090358952913973680161408571435225950607958664180692176670546666349818873553671759313575380828523587820653981534259162151559080774951037857391481729105482821651167620138132049660212942496121448592593080776959905112023017871812179580830858960738041904989414700976973234647943833027777925214163185963160617914784076975109024589994359586914545312136510237115517737980453142993450612043941583346562963240683819749716666193491909337767756825800899529053960713329347362818835776330734162370889815184704945731748861980899164129776842314762220667869802504158449651144633960799740694181521303003442210417722548451283879666161415907635985400164824847955426036076316965355276084677569119541061725796193776495048848896074903483969116010728317428792181698003847699586066937314849483816052652959263943071710029039776380287532650845311641381184836102868177061136891127415173229245896500844416929835071770776836408476777700923063590933765380441772012389599007046618385628718902603698174209185681621720309483984998832490627220651877680254293378772487966732740249769921787643820412978955993700995541916293481830124298569464514109637466193219530894532911345543849778136791738525545088882043521474464361991000321167211968331564340877312733528011711389804923319007159934207348601068665459303261629632481760559852888830523486833549457368374899672923462996664321086100070334748204834753034195755939998033681008279422377648717146727793045467434810733115092724418942679127690796297059643569772302442432471827885672732611635835166727777662787346525903515481034869837307512113357794936077095114090604234380530992759999998719175978071610852524924897088476020476851725811859416827411715986916446232087073704093567977468984524108303793003649225914949931602535465979199883680289661019302576122493972084093735243202179992523536433692998969442854051229064865413782263748763256454431276992166687611922918452207145801193294029910772176751129380523593332913266993224919429427215805741039967380032797090869698615092947151261903636972643828437295901024205991673879581231299062743054129679097329732369676263375457917664560560466253271287440796451695832353695121796277183945156451459939058682704181531162994739208823901212676574949602883362947590456665661032855480238837767931046165781209318788975257373259253173419142504314280126699463662813125960717768685892101768003046967127037648747689904199836702090040073218412011106006949372958453825250433245508909420044878170961813024902872891043003921716830109056150926504987294987336328179853824755027872611522300304844340122504486707750477410146365155771256411162648011385724338449538686772033791868600531282591336364075763057380824708479511789185722511206020607745568471768775524471221812192174001531515360792605510608909332234963066220445478716388318003021308792856098064132162892328248422422254442696441061635162924994279638645811961142774234900208552886277431702125442021532303887884272353728147826288207231596430368149119422783289222450429273773671944707598931606176737147543739589246341111558225992537231846291984875808447865339706886015798151595012317651873596651728176536400480900777626529672010274696566800054038795215278615460158114125665355247718889804784797897576178869337659758693025782763220623631541106162226713782111512178305218346969155788270836258914046607969907376589005432219391380893740821356012057853312230747695356678098365006160860560382078452086471842583618976588123131339623461668721114054226428774830868656530634387780623833674891517222811608774771491364705349548282468397594884039242857208918318975045513012294155581033535631318954036663924335379993574596642311492382158200846721184330860499451856987179797103016527378987759515132607035566222318052689863135703169223409658852579019235449961965997327581100608624222529609278162228020672243683819298567244267058059988752034672098258136019476343259710382936913130253038537982893704074900645352972987711312529090730544183432592237778038271756747163394828650859666003256029381374806374625609144542766984926731061507956480287341887973789700980221656449294025337730421844092598329435875406347223643580818523474690544726451373118204762249972520222096277776941664137587543105268592067712846430879348140373107046267527277861754330236119231755481380573447320946210163464806541728413142077700221588607037945804508293544065156292071024076463079221361036167349405683100026234028046291700650514749200669899072920488667352617695549785188490181508594262604212083394886531368490468587777411581272666126551967550422059726829230203511765569185705966759100131837453717660140869060888388507998667336411253037506969656727557211468533236617676272166935412123770916490741808348612622431140085881710917791880255460888392447939923800085110736707009931701670416430054010719004735456420864487417179055051137200401012458846439030273816142908438556015203517113303472510152778684473175402862757988253446170306343869106034979241217224615639012820183590637938048841046359770630702743221154639389107402155024443145436586484882921171469273173178185199193199912025041254752456202089299473633578478707132393973373993167689284310828899708771596025521340274429165938336037354835616486794677998237672757729310392503338642782367450041052992307154014196571894961487371203281032216063791569845159651171266821450115398769714634198056633479743792539409676978789311997693627734503279540277388971555734360318744797000850272801923733460665442365426746245856684909299991626596713847360804233376911906698692192874770977044920598491968172388913607035958728403861039026214394591636356027615043517761939918061382222990564744502505661823289638784419162237301184674367345600419917843792031158978742179187331611207105465465081229570308952776992045383220065947281898126815880152428924236053757119049854217468384417372304558590253784788536770826548696362985594139971727245483528203091134504153461517773058796077574751196918084585607761816790570560387217357635455701708433579772025936026135869362662608976189056421596389504319557360711169251817166461472599906449596659688206899820958084415049670732471311869927781571184807209231137534341900157279109571751146214922042755972012848639644092802065130900988965107806541699895464499811776580727716172479092138957427812092996482389287436285900997630543615901425493685887037811669517712186072959368756874733672501682093160666534210231972450094990014326718868665146652032938751084220647101744478656057884910439100476820654986895092015140994369226239440737861266035843753470117803667399915150650442599562710490447602516905234410305524802449680461326889845700253091361959816141169760310815496597105477046152927899794933409765313404372130532939004270139936212520153495464956624908340594413818407703594141047339931206828851237069250608949216105759416964215189741095175804126655995070033840832404988976739546805149896132120264228571915540392070391018850273811675134664382570102299091001400626137270930592639213955592917902982901635701560869498514120915962558738870901608974696619801841396107810207659353753975017759985873504173825402591076181004662335678780102851501208001950656193438381441532114096880877759293731979042875384506266789267935418128169356115336561019674020007808148556511508672534707522456254502114266779716530415147318435751182337238461020099520738426342560715757476751525075657577479632711540753172885800491758640056434128497027095019150318435003377799011796750510889639547664849237908602627695522663572896818345094564770492028909224790285492150438255094143171898052820048516297251835365177257473184117045336262586753562161073491111250573846216315537337030660577184491975536038230351041420385213638249045072833804509075327180978285283267612383828213181672771422093272741590326500905540730131270718808596454089683005504674012062174177431106469597522311025699648067408655249381844079857748577073446607343266009151692234148581614873668679412293866660430093055895909160123913025492330275023892971122691203644619066176469153299305760811807431432784703461240549903933262655746379780699789587779489066190460214541499798870497386016632984170291944931260599246689232749873621882419029562465828384077655080446770059883378640977239791298616301132840940899176886004542386055577339978358388949637876493332588875204703258688208252075896990710532147355108363917247581956928665447837533774745124844586512807696825332012522146978303891011033340096131725836852541003239747799409469482457953254942073397529059777878639191491079450096057312429442629193444690986593056602728056524724122240472010429037061146888508124076877648748821781442396910165113330753977119083702439142779238336444256026874283539851804036630270790286738965825313184257128840763410384742706137087684417157883081362815448182643834083610189167346272129957972073298409458906122134073376731882582501334728165483207563194869199709214936543170059228889292409084921394371319539518792640613078220342186814382423457200919026731277761284665609246081717642367973067836840457469385759951151245164678404441491861029976026682842651090478142814804247427168602854411298855489053868243719413799153806410740051876624114284118708020974414063449997180015929318722565223614004451719439233837993259175940581163482170314001925568647421952765351214029467921649313494755307922966298278732455321447265631644489013971854112797515673034770344036127142828107618406376701009101873418718589202212003482252921424831483980638357679193313533216469378062982842857419370930898783655569325953424875654358022427822372732332158910590297127714364678077987050689581633697841806112160971852225232875943214650883096420398102053062868153492112872443203859649310993773618196441130084323364318509428428540108756600796401929114428886352378802657613567856803738975566083182638589011648700256391086302242017516495983392593282999563024821171156493120785189578853270896429687031656335422157307270326782473473444128593386561142255605759976941410469440153614277091091876133430341016836640345791001471764980097942701707457404201313638051715037123409624390880178986306995280162722414223338658679482326332439601820324842301202751231569418256603420064701377430713924785048640844016724359936719605033114255313673066417224401042946332878228717057302447382040815546574943917527143142304826407441581551297632558467134860898618105629864511312317139560501786023823389447131124594924262818385640568409573321299207685639395889018963525612859244840636700637932986563641094781093802998042856275982025870698926520597501186216696333151244148385706719391581047677347583924467325018557631580644685530589613092159490851971996173959937797296870298929082125283008479270681656429829229381988237551146554923962944367387065918483254381608322863874687065893497819446477151177089721330400715180767073572489065580432393622878527929351613977351455386985172349703846546200849498996466954132256571353413164559243071021261463495434770379104290826200210180926314008033199878780472408587021093132752492313094724655133789644188458947908399339212863406808158366317280938206550421061736689789841604608494463836775451281280874956954252359778324331088793049769036648001008605437701103734640624085665336282330250047164510868527576106779361833877932742659215801077773279578239245424240913834339269938131606660946214661462447504234451472797883395732139576421275385514643929792170362509610785869716619000723076451949462108597163377119151289343111289184779092867430429549653087332324582148858594038979705136378250934417713252185302187459741602838254531329509912917334732717963698010333998822287983078153695670626789986625716580247222334105625549961465084351275795245877131917471069354515848329059375080835749156663518692667795491480715693798293359190346818365580345322851125615492060642650712713897111438423257137842807302221162539151159030314865189409590413913657310705968780220689473616187515806545357203331282721040405751448897702483250248741044411116095144150187799328459533247878921391224989377165392805042236473383857215663161543077284607149872604323250985191728507170928550268205394706455541316084085377178998270650183013700321998413679015577629044962042446835798316873287934331239777961445875916480598150912484799792282772450704763137911513416175900405142431787493440845808307261267667684167787548042465905236495903198697228542454981398346827651646843230116111505869764450978566781667404570934762589515811234208480183617378080288175060942216583636127746408691844228657772065044559314325231789291716849932614651103249539965001982301633254910005635308717981226862594575335643507880605846097490100351815412339316014289392833471939412545443404632731494235497388330697802404969076006777069079813103101091442200424218717676030295028433861122551129242203697444910624092248959548678839360517318714298380714537014972718878340908889236821803652054576643486653697977137675250145505338862004378392901974392718714084156850521197604382571402587343911275791094352844769775295298082008512689370209284830598478776656105078487057818614847115594325016925265838382318864340378057052765876438920110476804338066371210000767438626144247605210635803271733531311103220709949241589338455348485797355358755083715542206359684545760018310823159627962978274437989469673489784632621024979120999421207683375244642984777613503129829194574905707591510264017469386556633674206720324830548190970455070750874271423185652093302338382092592705614654333676546826787378233998082810966248335961309930472228128478175205516921294386604470745643066223458422807963653772313295641281226016220676744009605024201197501167266987578331380120477311819442111882772520799961178633854288628599901201403051264141588020647444510257661612329479902358649843282879690670281701570908765974370333791626462834272287044444879084002105945321101448612272010596624934819272143492222911635206896323388405696314914563513368148556881073890453279760828611491463711224366523601410388282328741854060478816419977009364913254832184798164993726355066321123293364325505426064732922173596203909629773490084682347960282630597850866942625033659469112498698150865142924734554546490198447181752775498822377986270350383346297126119391752972467207866679781513152140612017025202180253093850206122235572969232881508589712097302202988686844440571785366412055948441029856829344368753237385583628788270939262306690761321659735150721612094427343570388748726267935645094906961132655596882648623822625532095544354747582661759027822277723713874133559170039961134830894156229096694073867539580324427820654022264909999782622046261156852663276514046548718206852026605370110381256744204655286493441860299226171430599032001413703929750880306871421579077015652715171544655231660814638046885703458526930046834988857493365088769926645299893824564910477898486892107002069705736311905949839768315500682102926385484724442910226284114471290112618182954311055389043386240091926310010918370665768829421438708068613692335406562325540872942863454965214443510646861178561557514802924185786129026304256500919325701053267266208482730592581527082108382316094933850402308090916907540887344573355220111518652646375624436898220500802897299938291069460342917159721987591354584040285357282842296555501745590442660025126733951949392465138559909125280240102246830803159796076412117585795404763907400106156996831905932222155361613298137678670837773383531453921390584425024896769292879322482076023165071094032075078770212562587598263759517652269812912898378506218479075635873268104702296166309199802559431577394195412738369849187313404362662649780204039191402320028596151683307984861784296529472515661858585097165933294867745358928644045271500969815287096410151406010208260171345164639633001987475914896080492707959276354487852576230550690570889172567195312787184166181352017485381363147086544473180018067506555634158407685575458807389351381527721911019404441271094866215770682746721441443286226767267688496558911758384063333641960822440998132484055910985647556795542951094940817428106090567010381678504223374520604314804166391361712565154709518456288799816378938754323152110387977867915775843321688232956415308390787981006218763902649849319074163792839332820363134787082996940053829804869171976880980280104805870123381312602603135626288119439650772248157730964284276214523967252322967545183539988244867783140243184567868544513007738112155659262919856285498821394818494582031757390498138536175139415656498143012584226379861260216876302096942657360691308726354661788765838346896360763848185694907909207844259921156157071997054403239758757015053129325011822187910821141656008117972947823321576631359644619164798614497151645560237198698615456894653564085140858542609935288259493195233159078560278299137934342069348712377754744698851194130231420802254044783521363989911361860815642423068855141783971582140951430381817429145142069510038588147101921832003960732727847313996297211224970120080657258676906151486050825952409151198146338935411531123632947222781228708921402171064969128027577195567926707692970547007566294460247740509099417223199794131902946199252798579558456922598226911628605073813356940402756479733956498514506466587571699296416174151075467113518941310704078236501807440875342146846667566505648019503073268082986930472906722543808716465632803782564461515644667270437038127629489269853793403433765887803208851836010797958336820397923564238130245824538891847953676090441126973482892930969874777701973932292775783793558731766753578080175249728231668429938253845584031175159431359635476732393910034078247492683695598405553591996475421536256234936160177443723161006398459477630132249003482781233675207380498685630214634789339908452990536483163688397853569370893529933183954274320195442919933979783297322560168634730651649322296490668920596395424203368684966687914552923682061903241697165830990470993175071441951525057434106931470953629024910344693622748445543784130818476965858827803733047377351154643210658156268914530003399606388245278919677661160987478545697265199217382917319607974846766399961280893503963192708279532731295198206156330525620082877721999698070753095858560047116807484153441691374965549289421487050333928872026398995120576623834817927624048948888294124161252592019996065762352359365410261026546510577619555282313923679223355560756536641439250141268663009309311581912010882538394188262215577433531620452182052206195124690456606242966714006216109245073917055196451233285072542474595147274234946250910342941013882426127772857782601443762344404890991207147259367135329261475244538114956757373148330689982837259883998154575065652284993915109357382726472491394436605511811885924133468171700353961375916762877068770443847354785507605794956801045433920060000595957990713971141266250292144426197650365264233599297855623112433012693670837728753534155879445504374258950587891256718749126227114539568746777488221498089380071712746106592221659639190688914994042986260656448493690549604120444746889387746725671843257600941711861510470439594105927441308533420723103555591206543878978394912035615468302362350572679077009787720614426999476566516422422079045112340824777660141309847737922840264074721409221866521581621902094140891827064303073539145711714333718527917656328711188932041706537845996133252132527367326034269127378897983614570751115812072384335008416790121249180849510052988472858220690244331502345894984373155847261379665036102871323926805810096455136727297959025617179764475373375061338406366817567239076096746262637897674428637323978077010885459241094779732581773860163956780294010542484988810034419218083145643798705052507316300149671580875677969784811755323908886530091873512812577093356209669769211202025642919447184959960626346793831242580166564540479697036609580743436455344130595309692151038162938267179390422070539947815392637573824460059233015705458355522961057260976987600617721119417713459727506946584959824491739857497129954168922291546410161875682044906156002055318292954640946735176266313664049438864775891759168271392366723039422604301616748349331544092529501236471140753279653229241875475729343845817333064889346492921525087819948603847794538939350335729442180382360513377838271163251915469467779740735543265688896345254409185997605297339545140211440116911473450350043233385378116555569104631742609730611389830689940196379853427704234693349967267812149824508592488218866963339902001522906935516542157916134683572928680213331827305758920840792330551779133598110254559223042164100934063066093234636473465887042169274347218073289850565074243981624533355499785453650587403126577237425070205737704181173123798356202937395888205387592663751266872016490502196616850034398306981139728604645819881960093972312517689644045879170373600604281024060367023894414663899521998642761467266132682685525173838181403859669928965586824856234911903280978130255328598444563687242522003432789830918586763201121625588749870691514455528499178854202553161776867708106922397192115692244598515221967876084089286104124192669298694941820736304972134898726387471672789990998011359804693785302958733736769030359867528716612276035231681675040624504825095223520227052164922456809354106255513135152333387280797822868096287879170183181730099394624055639758328537301720346039071785880529733580062051409205380758056837364321657957149511104288697030696533662025445252330652033468890354508229459181197225596420769822184550267523789902693043374454076871799197746474958255148858659484242316682916343460651089646601320734545304547679558711275695505387273066710376044521562371763806511320833074439073490212296414992837966497961155534028215557600189742060434644708601848904884521642384104451648918487313519278929157096429586409196713748466500185275966493947805634728496942805299742187136861626756028746771616367323079154952530374798130213952363546223337446700634194891239242805545268139483182178198099687512191876598659923986767793244978917510286139177903829465305388595551923583203525042761533528439031026518124484218647565853788565311145791068880738310659288807930205682644678828993405883107963416995248292759270339843057152746251730148577071198875210741256177643056715584764225580168951828582718097090141923013152946391054981884538874944846003057408974810555913837153768278549413754724808671711753661806061927435776271422887285686278701200860510846470888132854240646287384213808205867060554738464269897678616885851866518369444738338464898201555841328448154187223688190028311873843013572871357806661255120161441520683072983388895814503437168406120900743761624779221357166159828719663525114892587964880777569406882297062456400297997328979471805391984099239119976264529920143161256139028099717036100854868587813753237476221857660313500301495209143319177652514868734779511265936478209209332007079896399373796708317118125670286247507780471266250742156674045524141092154883376214012050880230908066478908242810537168204218225823677303309680166936609369735628220392224241835561362814825001079501763738156473634660600597129097737087533748632206745414376867303443614096442563628880327151766081439052479457181814069194567462860156808448402187664949272922885915754685195471797798197484614513712278611424802291459444560099837091665856184016049075442228712860421452340767458107651947043895718609297871908963834468060511580782589656826973571749916903856128023984081071086644660028846531057933737768918482870077354533061891725790623394000551224933021262955274394407541684586017281226156546330239669561710043634549478213831511322862742995493997270198162059606092784796881410817024399884962133807743783452513635476897244096452004031985329541368183737312414861468050393269212587665170660817727141873415587020003132412913634106568881485788479912580365691596041471984968010146607667632746092887137361186670421370580647012495807959151712932719888652358722465599082484921700658715787533204805780726324605134666370319590126090843517764563497085224294619785864805529908541834444836241306361521922599247805586304188852423362180752250243820840787739702003393039316889206532195865969548572006256748157050352854546068999384513966772966440104652241174897213644519879982228471932586464423798818888147362227751390929791059938769799554253009596605436870180064092109866676669475420230136929521119290418307589768554687513488289303200903223481120146236008955120831537814425033282238118930332985229263393016335099504434385681341239197478825973866896769560689289854065868727199040384263431955718037315810147971619818348050746906966051014734725814728391718753034629070178944915993984771667839398929843594423244251888781881309751504802741418288881260086928886633321026003018049153184544300032034309725426983868556937734742426868771251714414436367326160170691878567289206161808118360312019497922348824256794434152846822502904602304770840931002973533968130477872841303674840337092212039317414195681482099659096780501380796692136602169595950754444772789829229604900301950096346042985132971010868089952896201431302271362555726760676840622248541301583972646950084400552088132345090671018753359889386237879993426138127872903633349440987929007850631494757754416941038761660999841861652175990260266732782677364788296084463970526442615850171941044664588454320229895360109294463899967174703895875144200701793339809840179229914857689707555142683146432299775073924179513297334616764007834991251200438603796670320894094958607303147594981026143256743959405146336990169758933049552430375680046608654129855265306295156607887094642435310652366732343638224952238265674998720319374238972111660203694547359774501455385464894595846511491703640274689310594927123239580463913178447386756902954872232543069340049175357526890911123724403283357584636309681316964144469969689715762208252081478374734530687837972926332687961949950473395322473730854995506963485480673554151155110918962265215818809757608636122160283116317273924713513227495656773142632808438893794903011571887832527349136097549668591423614184351806744091959147048923478231608405586887790769201349751479847167268131080489208123916614194222070394132040750356773171643364714502526734616260407476191299807518271769070822099797210426298186722009556124091818665856705318218500356978596493025350772933835195097293405515749081752833927864503088722124703006179120445550528278788487557417333872301574636446213261726119313561645294248348995624914965387102083235876642130291617979084215078460366586750669488668427388777126235864773577141962127766663264506716573619040583319169753888293836636032726725788605303723461696786653708971169318861599388363760875133495780055918542673731048984889605447023666596572190252761630546443812803876637978294222865236576360197963010108057522520609000606268936439172888893808499628271619526009783960910191650727578241929882845343396064364792443552675659573621902977664090992276846243511142772828459170061224490008492231072841572738634111702099852506456420893079273587209039630532037887629099944452491649133289877139560766057094142622308385465670550063242643218136425695370575464291208712104591243253524637289098306356381660918569389510263300900813202760066150006411558528855135680818951657187995593482831322536934439785290305169646843938697840387907166482560916491893090892073737544135521060456835938023197424694479904963917362942084695968358419199531481778590997247870187370722575245481362472089508543158249132829385342186541720985419296115569976274804313240853778932678132037697636342263653274364557817483526737439802992356126436028964162690304646064693624078530368346097543567247148062092727873543315507015909609682748617404501327127343809903802964209466369986365170571383969422459334935502457349235244348984572198388791078082820874354637535561279141401346912785765288254175553576997875694925457160560956203559096513690698873909488485959617545882683847525726777776218104499766000393149878731524029747223508641193934265175125656462485906138513538494779445046188223924829314196811717584352785038528577777003675235514974729676293513901193092285835004163265485269105983029310467699439883842486048338466428192573463219317076775876630333674118955965859131114900802985043098623074164880632487957309854774876796436627612171931418837112653237718888709221931821226501802145439143076353001695858999655741380570626193254265128947257594663240138556301142584837801398664299840294564435691736903119799695689206731665882584571643274428178422956057746329244639165141981570903348869174504413890537517461889529953728906242227039271603089805022826191326379658618595398663179554411682520016719164341343159268262689101541743163460360748336440145684399576621552873136775893988823131699020750929381450324266259979682514615834125646022957508878994534491240258068312176206392092799504649894142813640253337257852896255890230332019753889214760252545838317102375963887413259947795143555818312979037125415518951342943207473111949994945000422116180778393850865402704396294819968034780671312534466848599915373983796509834218985262320542141109444946616040990437790674929843007650304013906474866055084566306003509464268263743852253541340404684990812886288050342133223865307201698529883628609079860083101644305339320289446401900412195133951002601230022370981558548569200959690210988667507007813989026228171571400530889054460833830508686726981455105027440730199909169738666572668497642508863545487019418632300651887288017933910673954846931787571685623224971932082958373382824168953598314956905197233716119535189667022193824631757006129442959679233471072142143291577042452866164117576768586193449150240892371107347015906659620695160759113600252475442694944504844672910064059408629724275316884385130359632248004980037677008903807172735950006483939296322630851493741063263705240782475818442371720579326358433719732752322235662555303871410060481704525461747396594507092980181972050815314806492688479302235396906379671015980426741467383810069876884519492103869655572148743336609927077355311018456211989951179984562397891234149589316051176702781628294874106054769501784945800460811935850514762798025010046670936522828921834027038679305407706669216374387130350032728908759477035989000984753034533747740881215067115145133381029028998946308779169679061546605108813460179479451885035846961136731761830928189969193338981224885819510305417360398989615056983371216037260717114109699962271358944413058394374227006623702698998654245843585013743842364762170244352931701202888249054461892516412807459399978621680909893603172611421652616832406590232489722462433782937500448506188087045930529896324999831949319630269701293082341548844737585223491205567668951532855434033520937615044977574357512948561902563449140216104316244028381490643926280323178386998939851823722283306818788696626080644581437245520467665985708173008510356193200884175017198572222365515171256825936391024282872368560015326174130818144842111928698133254994185338896666448331171355831453467563811822548634256560027168183354160975351160295666281827407661439639254052656474350875142960249707784384464422843795692226251276518060136528204844911466330854340448336197125562637784842274297080342767772391885567031004254299590147086032912523239705578927275124388266658483691593786966298711674069596575098156858712718822938503287943498825524346509201981158917433396738316677397792366387204658235660257837378424032976304856314242198378968804704926520738420956317366106418394022761714576143306336625612638135789659029575185640390604707218610779919862259002847899094851923189724893589265256452592899339144462636711778506431327715355547292396580171225345453615089928563943095400556472962735472111479369733346981243501290258181230187144912386578946770834348295012829839811892649698841759311994683927599199217765987088577863097637389735882478672472266653214642299253305198221338030833839174894295169784687971925703657802729740417634433192020499438868462752998230383346116709428755598467355756848427598711897781090139029219445490182262890669104244813149926789893058029867500120090612729865305904896154985610732611641810443262150347685043737450013339659720198202387704305760039590486225359789235449584579734417091471390215119241082212242986169551284046192038563678991092201641489862271734850429647880812668534553931715736507254346053896595507831314243968041133982081318870962285150553652849592141616219284684663851998214557044927357060160053433737340195287933827924781590432427346397250262268177123057892221493179186873321470383487773025699274264594470500700301472896001070293735790986329060379412207758007503196303305499713459286910440065167910569729790084022053501669721023978142563053898678154972539485925583109459460937276033310347601648235358246214317794987154783736287065146096468381441137122555819457940502814965791853770158001980899669194561951919381045299825338602681116825914351356238921667525526092706959652891242883725655341542939161030186034228377205736201395523445246112351424890499625118187858670832273871594024750980326822465799549877782073379474531227528296282320561838363618332788676181516728940020323744095836167304030593410904778541464789802953645192022849986797828832742241922355486186006046876450697269638585851529634512894442267030329902159983983401646150097708036312889262854275995409615122042432578465901983794553676606173974417288545820774074511051322306665046065648653068234699006258263006976039051614122971757437973639557305463996509434922463115516026931613779440487591146942459318351018681774238555250610364465106956837817622665971944008915352306898143357969805859127279432708868774354241289423751392646586579075372595190660805749231454455457347796206920535941405941919462035935107264348723187324842950543449855889818471615780878551080580277548536328057504732684578976810134211364014378647571246457077827950550365034330343530677272807899663750170183722159508604610911795445334107928217281946421268727926684581864340784513775420046748688498987954154414649526015181426479329239150312908412823022587530473763541418672575132329073101072340477299862545944590292784235464934956083160233746838660048744828036143846349872879892339656433656455182385740784542907613497491351430191515781368334533850935497948459086655355448190541492298933197366202164448838022759664131252164006421484777407934421071903545558257941459772227841985362848293400278394462565869203545251560460620057155342858592406670021880442317212615333372837181584214315087069935716680121009022704515273485233737814467843094917078688668076460497928613618356609052635433571953720122345596663406230911283096323545279445955792235367749907095287565899759076040055225539945785352022246247454688157752819083360313584380395673577543670163391957264269723004698891635264134117338425673692403376712685898520141707438526978454318459828012048060688491439216058053338969652587581000354788390647230486348876976122191074953611508899171971754642203368248802746501683692912295661634878026705777327635123741676685697083296550005032945257629439482154690473779498523870080353166225598683286156471407464605330431908363623100792418866551098488698520493963372106899960695418865287672757163953943402805232879618543199725766470908031377854668367942450212830953399985206644446403936104096205439648178135202506841113938717144108534910067686226335065741033159666661257310667579867603118083047178334411385652083501631730464615878702370571488768775198078120915080094498850493062587725988340905637552570625051085049667561754856812253775038208848007523247471073763683592884652753538382091295627460660367870004719344050703653160929799209909879104802349999127072861323101482888794908020390446411638194388970267973593296854411658248041631400095161861112874488492037111402553167765016961769196603028080819194524079442104176861677982353591670800143421526068234165707617125724877456302100757938031776859628438652534834036689066099574613249694294515174986011441080280640213609034624244462325715928929407125293946035977338960797955328231343813130972945155755331025244546439202771022480396168980236915437105817067034579268648659785534963539739490341671971805744644019411971509293468837417645595934400882551552001609303175690197792482273902566637120044467300375567959873521431936948392966973527505211032209814810005281469632556398610764468615093275150501138037639437897802759237158666661518379654138197265279834810230689464506591322636208231552083372722840769513663011737991439513265613638610327705846153058261156759584703940919811245235176677821011152117654199682576549546295284409928713629322700368482565913661015101354474921128755029466074920011194295433811900970170667244211636510701785698203803052835304029003648487894607749565760620636086935727998075039607370903911393556372084982733308219371256990725546797042330757241009514095853441949469646822185097808552632007376688043580870606129552123469689376923303292373565518568517773452383612977037518848874943340422075712573042598801294077495991248712786509170231349174884768654164032326469932207360288089117356631102756160604972244312672353958439626257476879283365908237484145902385096346978407866873239732846705176017201070274048643132257767110863352861794315309186180544708640925005767091543602773609631229289990573824736784071504759098896769413267257122121931964377469518138565090894270644148886849023802464545497571452200545492075900438457769467474194564561614663966459123811213518432705074052982031937588569151480570847945866058989197319465120965727400072177578867392109295396905986992157834353334900474807415088150365559215276109898194719999063595047207841631637847679153282301005184324700809080133350718303985594921894231498207738529849760649645888246165068452887229769389007700352457207258858668303723838327198559157400003585381415730679548544678800920539346120680843398203542764225951525414246642927880565000292600919121215790325613026547667072697205043628211451822923293816205588578116980615460856446050936273934295105554453308229638085931814288211458787373562285719967581166096458690545520362690756503660059799591099595253051192514964403368483727882739637175636052311845642967409563278427893599860606692472752233214996463689598084696694622134647576202975485427337569230337785952175162581181996210567715173525145893360223690041045720534626889153471203271733673252757256559966394428020783945159944954725872347949875790056830742651424322968056119247004190211467002114426662978414736234473139512521500102603979759681257650071107763016639262746691740679111486006976834290878152340930628805977724087756545206088997244531153388443067464329320837957510189915008742377257765684417541313189025840492892749084796107804234327479034126317805792786785185545764040314088781467804494896771234320027421749170698118848058755102002897813200413256921572173053461468000179423477812426152264515467592613258408404328898855895432028614408370989706206328418325119877278202300574819805975653389770570521579293688605250541909766494418781116011989083174693820002301181238979966845091548938640497134336837378597877039040772317053301862943979261018363690268333660471206488517931147539693060975225143867915960476744131942811251015004754952423674653607639833877246419706064366335290472127678687368999281519522744213103363957015277789408164523384811370918240134035761712647296358030197738392629585973957675246664762476429037308902923979350179475094142780315057920014995127617090691764545310000137346681613324829153448170529690827235423372198663783984302313681117391879361895914469062288008160980399066686971832965798298173932653135777122269638858947975081266525691410614472238048087420422326276142976094615552364327915766384050264537578394113097074289277469342988905402015483970372384511747050116998753535762147904012838589252875671717122609390823687159444900978897801841682745950852338715003670507674946252289304327025564769543129685948110059979446516252154836020792189473848502452718816795982826343912172532794709307796214676934482545776371025997451077419808208678896103862886225788359719750981662741994693470054579162202840785983646911668777781181985955107273509840330091623681603048692527500012227351223330108770567285626111322117449617873747304083869229367015222131630756868165332904274142695694737715275980014250440527440030805937833316895001772153645590815570254964638291080426239499866164056095251379044851513964129137710718838323328768472929369992778927047814109195196356774408011610166621265541080591364429929210846992458999673173924471330973062887240175117158398646399815164034298129094905723672849813869696055763097633200958454574962022275029414302533943132564543726984546427627872957591610476978768851144160411443973400605267132453118854466738983039808956220496588499695661196836819943811283296308881615038899776202521511184656491384428718565528022370855500641779834720021858556321686297076030118428193292634009040041450351354209001065912408144250837065628370762488981701674516308036337234143921863073350087662070890792242535817064276821259675744929434383684478365425790994105996783887436415560591105461816473182913536288290612368803913599169107241791678993477053775455219280997186799379298015224006841078659527494396497664214064970753205176315718554056839572980341241813386451082775139425900394876621925077769452948918378988350477626062088117790482001816798896497093094590551499483071236844731516015988548077664778774017199480549601633883150847207103841368628742813708365910877039529394633306247599434175091065184322359355353135981269344904087713574897259048650238296392822280721740601191740531879238973378439827967814953936969671591388465212211705804695044662723858380739048508967743519564051116231327406555467738070767244283659570161594052142276609178413143408015492751329099538512505564729604310871520770204137578429158271141993991683735346732020904033433740949560423101657635733268002519729169717998922627667723352290999340456290908503143893177843640711528393712561985280106893206992886261543486972933071469350043398318114348416180074279394456798546160849139527824859292587108809460893028937730654081412939365959469343353186177409318752918615539110431170360681386093223014709885466077642799844152699845526750092970351933469427283003032033467011321908103490915924771672856085920116515789521612528260445594817532202535801146715554922460220491335125398035542908349688558210511269318244778351813015211772666296995539619287138232410947425718844399242190291090410483731115493745942163267021222992905369489636863505303222502645705110483431208967626506755732592959183427252197912333852918883323238445772318085545867103439511575297217198136515242609890975849580164289950086878421650844840002040893713599192803081351136844270320825656628395412754150480985543521544468931896165951339697147536608557711483971707242692580423228348628337351108894676642205065798257523486646232881629441264423698520704656074959617137818770821741049373355991288618514635235118440658072270557043857115770463217143016145089674034912064706973563766288415969582264931888406120354732381489548344060533743523633664368987102978445174029433914812592634093796590017332011946838897232343613474777213858522609622091923965933348810087281279840132037277009642559681722277874521505639661247701095975559300070451016257477605316366301446777839913702244665420738651664577725336626063709313328719464527213353708029069660337948420970185635853554540951020868044005050669456023590219570503113629585228844259497778945765574159093396518070103734793464758196810959168928419142889942647881661207106349355215048281072603240072141720914201998212595231691084142605957935757465026378832059929110645424235241435369411445736016282327512176834853708951341653936948704241016987650812830045542746209043263168247288714001864835424965816536217324187658787698614699994109911016526178567044745224370379088344931330784840587710162577829217138793894067152498699557085744336526458210166788801240951734792212791999750674595484597021118910870462806769819768225373058134348677876461882723064871542421510869409173043939416988943189845446622422493459057392491521787719713604005885890543750623971674060491666911538852739785076736099158930904848145724204492527125003759859710424565243276237806780274429777514642398092576237845320100165836810666450990056590419612016403792589198375254080018823165781508690413808499592339942063764386310404490622035613539341353336623442440914117985561667638726598681098340591361481267687757686320991828587472070575897561097575757379197740020512809002821258320169313806494735287172766289654484096581497719765642554192277223731406972860506664543063444547641420123436748815791896044578861025088846503526147101029291800016986669947158134143068467935783251028411485467661340128061880901183075546949682166488580100961751685205650398476695271393684731492075918470307036609214705354331870659594769671269933826405936721382919445360507020123694431707538513582117770124678570394442160301557138225695865437579500639126728975495220237866179052177642923437946968340459644479995124846595353019812229154557352411457642201438161796775445316638487660760602546397636355253707389718618636166319008388456588819351754539222331594224193973510203996228766042067472160796315258874154694106367946505145805169847619944941265445744861923726310215611638394178108785958920983169808248881672073993614394225315799225659993867193445972419109248825386890804053015270263368573888602894332863267770756360535069443897668007542294030214007597773601043007057073793908057521613606896041683202351047751345604695238086810040750031653698158368151518344592516323010613120862004729031230374988712469307719777897561430378135601606448177310179211650235387390992263846709927621392734921452077208809712769182693092607462578601656475503429017300818897468402472099318491164699245491320182187640065520639384126159632716675470854997612700614545681692620437006500443719157855611695290903223003110135418844962438450685746017846099212732100894892177857636013872133806776086781940746206696137735353536891104816028336544834863131280093131182236242884576057128684466276268396565078703604958877355825448659626478121987012964762014706382207408346753885675515074456768697557997474937570397771350112797108880519599461922940918580888950545307199895691775816349691286167672458117347401383245039782339093687289875702609631126529891463935632408604772155244034103832827394712064039480776886107721403809609636027657333424187405329067287682121046897159919404891620363931164215928507647204035453996084555497463287880431522236212340727400771922186679041787083684511324431802737687695550627497628608882728093682041439696239999445914445654574485893835178168236549998767149109438417996388722548352783293670052063251802232160243590268931863854630192355719904106731990617545314757431610148450884508222828500395085199609616371154577372218208438709199959562007888573795836826747963329527680531208672830780979057673078429727459822288500297084755774328276412484004310193512152134946564111652613463345824874596200408325258503934700581281287389569692876059739260945778318004155869584004212054508159774139548436402067011038112328405822661713635734591638809886104372933179821055383260928509816774258247449040265156120092441416987639209072309110012469669822112916530278411213933054114531238535124740170873264120581236062895371034757481162061864279655949066621227764579579023689562486765057403602568109962205410113864236388120878440951682627315564735864168178139130509368969634385013919173125365598771788614295859323991804239338924716597495912513296871017079267724157680792135778174837570693050781442263992080021612593186485224777864863256767799334089873327486126732611423865500285988170698011172162157603612174998660310022990009430028205699055265160321835547389885842979925268231058803873130197331890506597856756176958211545904676048332639096108049727103740024779898710307903254458182486910371709820443183743601975611959976513411342907180765771266205256669931590549231039600310040505436017585674144893612614075977564069097667863036333777724282992698769295045621747192275841150557639064242901048365449497377120194147906248465883672011907318742010127819358039786565579621408685727159772781784579113076882555082976781063975038114617881381373725622292041945634445155131933941864906407755091590122525154011861905780404304558558618785573534188987427662363575850322725106395775975543657133354937722514462930309398292741972225362339579682614071857890327907872875256051072309793954785434569555029113931975433625148758973706760447269174908037003809881224481125330291362292625874200574499063027276367659789059406438819992660281069496519859501354176502445026310435034572431918219111629657995694369739963717807721546604721712462600229064447784904611227730084520691779437000691087292031016055439641068892557536507327407186509367978463995107179044337633659122352690823507149728631704775757639299132800506214388461475796409238670381782672890964588223996524868881649120548548381670801416433759997054246266919994970925565594160058785846825067345853320012139899389411553166192638446793867964026836369347947334245292281372087291140297055659678896979190155497857859035202835101641928374737587180974763048777334488404804771390192585367754609546351717923711565717985752387752054559800025863956280519120590976956072225908458104633710237868593804291719402938812503451780938861946354216373492418444070914335224411294470305783808018355921935731943398550677272838613552489057581398525011027251303018891340015070244792835788232227011397868003514551612144642638522188721371045972267969997454042024762176880386841913188118987466694566718487302350899793607732735121170421681950119532572992277210867129676174367719310541021883758873828094511268452898115268223855075664654695659658842385857549451713700674341693899771652207210250925276004089957950117597791784701947040947108993051538188658477330267648333803089235225400452085741477745829832679848231120772105123264494432152923921879038106164899996711126152862653216198186770556206625994399789325860327151959936819489403659766731127140859528913540339231713112789116137067703812609580201028512569246807900512679885072606348305351570640453165538554271596355052924303822506396055645197888827393879581956254894867552660138866102383275002645881556651754867414761819140621636883286776626188076062636322232322439134022934327106797398667765047909756201437389053942001822373199516592914311089084146663206716700601149307263501347064201211739350451666991433486869707739479301194839317524906073219093468632213233801987338498968539409758960772653233712157139475741926938700018178835652793022470389491021268214244326198411505804234361216322329288061010974195268422304639034906185161568486214948593760339420415911525768046563862609408760910150077154116795730629023361303280076717415019534625808498520404856711863081896797669423139868977013087538636164175435261266561002266090695253513747713478173578342300086607137326131674868725288294214561922393965470689425781116660762569211644785253748341282041400638272552163317660194565658825434567249480536861799401869212011562282651342431398581861991655303007524302850298016394217693183415072618252581606915124872855702935099948774180665167675483244691961793371052048026890272767457468371102622718334552130052506846140858768284948172558456526276333927299251846817603684016434889211387646880189106723506806270459302152774504399674504317447623473088915156521023526597464147340998313901959779043010028541361491407091680228754192122314532435935423564258924939135552015657590393585469171000310794556465478132007961505827372674601698714933694449613075977825291809575452427169729241860680747507770519879985197574540385676097460505287980491055525473872152692368263010049615519432773130204943330010938712349232918097124289386864065817867503242118403407310725439958043553472809689805442950467279803753224359904220031778039692312585023111009020409700382891812161733849159240905855879831018977075125977395984107999992000096960119755416758612184253929815520121720187072553577330329009141356050819135651073882969956121716229089869082484519549019659049084636496431768153927894047938681500498088275917045805487716994446858660317749512312129198638228486165889153165758137518786516896687089755283809488050000516998471055818706044025989757064547185491566891960723542823030910065717786437663127778677378964931852331726616720406129335922585748433156613730653707100933351925821310465417388776195634298007361220889794491993946519225130277821654342780323509418845244171076042376189582843853202108165427926680036229119658793373861060960923631266040832781771599598980904899110436941869144152699333459460645883954162251220297208318836158968393862240798745671662040499059645766045147926804554232402185217121207524206998597391163752154728538376660568092726163535772932964144601174458093223255930738712633300715636456704046456026770106774438341317054454239634926188755758340584344116366978739723973718418883214923487641786670655772316071675387172472420860131414577079937442296081944818856740713635389602991506596175853054630131491761715293248915846753499798788295330045060953938298024151335467016338363833831281732477905036956607275415104276524800828146427545160378531480997889029204103241675013207479149450945920545728832427269336261454338828417424969975575130038503255647484651810980311856320158366463235413898349954957136450003510263462153365956660246201321311212716969417348616150665980680771451625510860554866288571559032261795132133692839249433766837724201264297821117123685948909130605440748788800243954560756537481580668481480266141878662374352597020591228325077951401050477619443983789639974503798896454448447620040778354903888602592650915204702120564631285789638604988363512050383130363410529211622951873049907413830451039341325913613585600015963380886598980774104482918597209506766491003743003342007795930698784914306779363435101102800637773742371628705789139811039198034986251466513892292121138169431899539461303018653705228487848378344559534213337751809275008526031531943764073585729589544451293333636751078490870514162757700161867906227330676008296636454533316624130651165435803820321879985771376859930371333584101709628239160934584427947435099217146001864071640821301927165543034680475841259898561220702644469087286044749461335861095092871034201857344310098516406829213665437185480468383086572503890619138608758810816952352199241183106499470464292720975930961607529089138750619215969560029136971244594952947518405793998903384746298892843693543679145177300381038982101119850259291822074640559454643909291101397207179720398844274290142340320200802600232134125058443852977670728875683317465613244491842410364703886970618827582610794331515492622912293080165350081166503236263658539933717992062688793812570066672433994180610162496744849494790524170801223056023035991619208918092535749121006987974216070699722826172847943663301226921435829384876636604183822563388841305789145641288107748190243452666032098770382348022576930885918369249355077469082134609179999417572415951826009515103499131513852024726760121013530760455323111174029775380423489659176742525697631693849564432062021487126734055989568599678812831670111655816380343927069893296534883779967662445136154211901055486654477944434064681846953807317978639036132837373024112757176562317537817166151422247597468518846654484249546754836963328631092305850984377419351940893123969498975308649526358712077962580302543996501769632002461651723625739451048609271528280021478032559727966688519581259778230995709366011926123065157932923665882436308117970927891291818399171442575445340612477338981528227489756074961687105973215199061512320499020303913268187953779712390962476579997680036703221667129096373104975909976884367137849799425897952579718964402353842233708249079897072899683846905690317852219928121728116841657391168830792048087590012744436676615771966848051612090765188968618731117317313610227440406729297229897832501596043066594032869062305803922551535484772486403785332727904990544113113448333279894738422248243302566398881049251125748421063405536431967645906885502655093455665967580354056532208181412211100262939976700976444882909839098052801831266241430797694093869558367228574788169457532364770753136802795182733452364710271315927328279315394217619938264093767494594865415940919678263471941921767277641783229709600463245649961637906091127246715653097498937031090135738632133111369047106672623040667044490573490006341665017684032025815947390742582540397858865190405231333076515466825021171243877249188416358519083460679944388909735205305412706678902967235135300246486306555942154234525249183605244571424111922072798512987923443429351632949182606083159231646517153730186874049027857136453435031159583685058959615601506465985258585845678833415248681173196157230203860485251928434090077488451916655531940975593715810265322841189218842800652545162749777498804849225209140783726714920304284995633601456153683593601271202827117492405218726626034485891694667452591109466412049787035324827367956135349987926190280239654061447290019600657335800846969060689719726420549029789847090243413422437522874326681939397293302757716370801682236234174247539607296192777320941795860064610078007309687606962817030614165608436166258317437484005865025022914211505950397441701351231722664492358348725817095856600507720368067619932707477466723419687228885710820673244655562369521875443967223770228222287482216824114577857772817844781212841548140736518069544276167625214200303144186123476857895041179656735087501259078304837990420759999727884917160422129450280370767873214079058328227897143744782320710124964923488737863467183144869522341737136148797555753942249649413417124955246077921344993338060106219007230370432311354759344512638874661252919716761350716308603759253614771195736841974365715911490972089235538469863758082195451644876401993302071522424795878546629926915423752058084250290324983768534078806548929841407114083534772338708118917936739100413524399633702948601694627394046073088359919821728791086302771822927810198911817894796966355765146807444338871938546823379122478674643861862668334518375135179670306784336780506118063737940497860834528775642940869481106584672495324623092980409241540197549284844836322309675889037238451335094385483999911071911238142253811605640953305486860237277792695631341829810516700498701456531269111857872733562816933052582789106293073726135716666866289348023712703289305847177948538397816349677172724273385580336816448079143203108521845350772723760672844228420898612040322731768106148685608369549501705809921862765631606457899672758089857868145166200335220409520475937250111610715254303909039698420405251000227646025507295718216841296416149095744045514426987112438824089632885106101050458822161509264384928024519056738577786466129447154093985670022690358315286257400254487428217840322551497841408924324504466464061375211549677324389630055698651820354725137976837279959896651358930960973106594681281366466521973300303471406154367104752580861255343378251313972174561465789418983846142066942247227354394430666878319773117874337882811948699651461136439080894539119123689822314734867396424548226763031437183878387315141666120113502684374666389654042977523491822254148208996260687274757838721464133297405877706047233678909836621464382754656308285731826148785405180027654748380600043755157360644269792899752945124550758716577918369667547212119250601958229043797775030816957002842490844146081436040385626436565482563522460335015911333999561325317179460449542486240521392423864833363885763840381748964710836829637671797791372241222549280147041245354426426363659186756049193343864312587276794260040842533867656621272967586610300510553898144464640473484817882505821042158348328985875249414903325684633148544340170682567273106910196980576680350511686769621040681409861714039030391337239479870807052628322913230989031622593362265938365341871765889947998082396450972432946739160999643435600028952132121374510574386703324711612539461466349679906726697553921990518755795349958267052420133036813349065937752979557111572640750343214783992754815314000620546815830883443105183007337345717184126299032867957603829682682869839807949810275096307452285010701179063563611115990865795714670262327506584571324867671680374998648325742069441924760401843635502152977574184165883467745753296586773906556230979517454602727874473998553442131776553038817863121377998641745588395023136790545298034277987495177510175623145779195999587600724605418936172820830235176488634551843505012815243345984844675003472585446121206811689213085841519498189390244496179486101027502748268524037337441836015583297613078622284722474766627780906729878965713145022731437926310487160936665069547004036644411841408452450690753795121965395230266433138785047140984558493530605213332596440176399612053844694594966643069624191917842145468534547564980456868813237364215634329321379559052480575927765247549274444711098873886912126180664729467871543187929805610886855506653637959523287821264385628064473570923777024727479507225942397524313313504789611250975548522627780259931850180310392130148862528490790891763417045709395234348500279443314529347738030864873370606028417282687561123355141703018971495088260586302066397813598030401765345895214333032957116325737869495477918104077963651882393961853397799537199331487556325762580307104724960480831802105970671227423199916703859119863078764438881729781911996990968701044341859170482623807079976458744020073535052515610446934656332347732740744852444549845982719169241817775538355449603383588647857279703283484785904514634291328118739204603655375622050034625282525361252719523773382279540734484427494938996010770746055777531596625693396044644571775600243252120294233303332919048818709746770031249607605741287914848181232091894078680864181497861459996901723417107573643543223804256278541573380447197917712981649305768725567763148725237397354930117900643342656430252392248829535371878841812603110683368732740868102608087035672708780765232644189955570851611576590242750366190528218236694096735801255826787010934804089207633369339256852794305421542198004084638890389666223182888963520274457874265609578326721891611022796646351515098819382648208129368304927159772062219247074447062514832357716493000455387971977576630758795096473437417422248199772965999395445970768957294336577387187472686286315404956333977506102993397601426710383647991297034887948046193888820963025561948924569360667807953395253179675930389183054540035507116589341950523619695048748178220090696217967035122978338071825641813041511003481205940734980830253335971745624629635473414692850645705808360691324712221171661196071292834445711601486378985823996301623523951677440126466559112193564300852826157726180657754316643009412594951614149378060393335797755434902428124793223916717601613640436763958164129619340130105518932969392401468921910625458295610839578357022767605481834218456342318565211402871261831591993263830187953942313173961259602542287312169436197945705753407578013315045138914812517928150694124214903886365204799560704511859656431575062116194511457333635091192173550895250910472188881847187796018234639129973637733871595336430983714203297427961392681569258903975788840156755919354685084396582687184838233961192658279746822372259257592925097908765137149964045626719113360751578538731353278524944310967608151531686854568166112648412462529804844412698594361032391257921516509407962236921424659414512739272485754020536416582225943199510940254358678177174258184483288805655633055429742345176407388799113172669465770942179628070688330859863076566868143272879021010694476608674593723634197476348879896726400615238992166868748255496314477159535469478638384945706868450310719321653546898323157253950700587618047923113425461497889014990043788104016802269457244519995027244961550158030932665621847672972282745595241427489267995609291883688574713362529610697089862445583622696064813791531271492523034076978017666454150763828359055243206428136904002001261676095494665335897780378262517985170797595551589501342987518693288195146822593066209657334409804759929487329600786906440116854294927335293193887155538354013845778010025182732988715909415799401191954994193982069861190502027532831091221368013728135612131619111599628550981930617899993106778393595632816419019129743472316385181571244170155328960608200871159388599028381608221937534111148423393776799022369800811509126394563825570583438983882775638965495732810910088119855333710759534266259223185033405411679605044707683428735550317578389994647492391871627894119118399338584804294699698356894585639748962664725671131854817557754208762496595608014778574525729958152655916189167970864047272592151107190415509553748267433541772054829784758057341874190802060530305452504846998967070722933440201492627170585011043238033531037877679361043206798847196603105165691956777381998561458066430301565033639368903075406034727153917391987072007206953136520540867339179401791265999249431636708164248584225348116917384410891780238763189576098087661019192962567612116767816071713378753764704216099378877479920013877486029510127295458094715439191489816529772513511742963852530533105331400615991159569455471243227202348397000637395079585640739876833331998413125620737257060425554338865034390360426399163477561501672167689397873396963893130986375353846821550255855329349098180850363039885617706152572895900058409276607808379726281178580011212702563742182411642904388937563843639352849578481221420163360045245912381251327110301494938776241984391766119326633756444205138835419866983016427135083607527258842515251439427189760318882568156027488087721749056026072440204538275133154030787839316518289780732689604258067113505787549717286908043475223838415781684468635307436038190126091034978141454231032217878902451112527429212830823658245459711500506490644562956895303107779651521988205514246894728146010265776512959415744008881769709595202831045909206796023055821742509545434293231816516111168810408761770284517924558859576799772708323146530523701926488891922755249260679185023103664612662451846409378559819865017355669623821084833821567391284300461235543818060339217227540261364540265890398230020312348136120300886346785331599409602270165884950067723468798878567395581318460439494096001322889606622180975591854332381373271075438164046224924383947037504593284753888932059148141266851582141155654063796763902609500499942150233440974288823244962878780223590985408702411630098764213608578427145719579697826864055099792734476810268668969350960758676855330782236022190502128713396279175598219826178070597864501267061282816820804052806220575932038002895603716493841748133997337844071801379965077089794647272478379948175692868444740971909074841108246717541948372256009955767435338874223854601613265586932755075833917364550374924891955247771655794659297054019485769171845999630182430383840039828596743351091662090112932971707067590155986341730736480685115950301468990143466392962540237627723962050936814938677445383750405953845552827317972550675910235919526009570364466411415708334105094764702540733011887204392176658551502544847648724920196846746944555478223925895577295926446383976006178691880908450476502550093951227172424022423428173665926972385146004525495858959343860457389154153748790559804047403069342073687530953298950567448854673367077912423912145529823059489559168812079736196305299345271355115987399902466083809523558952165762222785215835616562854157662958145312968504721568324177214766172156605534467374496608176371666315344445084049488429215907047861250581309441864445714215939554272602500345232020025434976026302054963375858581173587208113917456525275057650399443288905373431007974887976661031010235473946252191121715660135341306716510566705192609338527333587254029282698033785688655139774233867575817364918689752167004803422879582656551196209189913352703012241955497344638406914143971066751927617760081529252052340332252126039114293353568288520723217399797076062744087867405701602780440037221270936828755443418933571033137714426191263001074807676483092610112741321277533399870028878353954279964284784450976872186300585797415301296222893362076509406011527279673470050824618121372797567226491652688092888995936080159467792567639179875577174218335647192412541500266083252628698731607018844699131447856540991443499958099130666601288730034639737394848831332777417858715837746595633001688853301971250294904777380863805967021874477528094038862225986008186956854769761361521248400153481591701866052614159629210423837686578564738733142151431469323039828113859538256486289963923501493547147653866186447787701328661683334057222643901254183983738076817947306270507304619659913564769543657823221676602643460712619714469522733903076838016385133403010838569522312528803877263552324428297569739039152520655558717203836434451881556588298639869237665309943421747361773095562190336336615665843207238560655609198754927816844311232696202059184529676798680926993047785118952678802992251079832671274579869739435434349619419591203528723659756838872545556014955408614121077297654459383938904639686505555824999220961370242459197172069415819482002060150368040921312243762623410512681934990335197229968114372655361702930730489324599979370716477241729688835362608891666573493468997353376652874650929608067323862559445378645409609452309060480904082098098550107856717083862510335191470232564302160249571669588763015735390773463288325258657218871995384694819098395175692735078294237058385817976185692853669222549264902391993995163183329560323117525961345288771508030826650611266689117014775461778245253366057097005449217994210549725818575832370575439973674888587057459207368147865058270200122044197744305370350392105095441428066660387128354281336148903219489648214852155514717898788259490697269134931690699432889089776177518295190159090250632589020240651978607438202767104884315451737513516117934562974009848549195567044330937980060950871482782497678576814413930400141240101222920663016982084770840386048766880758486189480078566594957312350250102261038018569848355388186518149156713752151397352839882516121431283666429676428393095331592946090030736652522679764565738234079960470880500204791628933378677424173044370956605122077713026164655231797579003605678142650628671489230607505366621170613638346400935788098850411605437115056139546152797455162109291620034305947813679157612733112288907695142417699880401509914193530481228414214654025204572810318899545217753241607773450680785845170953157000348064999513257212966536150160518749281291688224780612420759661334087856160413507905344773843773309538050687466514684050851847269685538780158076783610565123041994461498956452107302038425124812879153884730067761530973952084901558710203938715913968601945039283350186396651710191959315770457470261902658544037656134085084005521943000477034304763200110027335748226967569576407658863974428859401265188761448639099782225935197511124172625373347745759982869459694853284983133218191124158456596317494172566742038630361654364099744983545910607851220092764051970117619102726992305807237914583595862343832953669853955543180037338853558907695304713091432094919283844987021557774459905099245003889799841892967730679172255871496865192596744494627850742624947066330753157073372265582613972871016454232924590012003487695488539560083814462025585707312180037375585644286861678431958117243593892006141635145912866073266003477072213288483651452987584831732574590377616607209858176908191487448940613814765933067204948092603294330922207168384936441047453387955106108543882383116525770547703038774383832704336791982671934312962181117462029626639342185044867375593796206927720738276842347928957830592289173517358025433981531946297980649145670512867753152919763610385545528329469847661813555219769921010277350498860079629340341553370564336770436384933896849586203867105109479462666923873432973613094666328702877336558661517709131454342849076312067896676656074929394689880527346279729085234975843653292547744892767403708133711642802353067159054140380464795075266522484376267413643720736639279387863822174601612393861596310426615915942520947765341616729688507487938718928211248078913872696897062495142654732062600662728696273248080823646611323883653160221191789250175240589014282622132024544382778466757830783634316216282485498810241680191350244261661483953716607586932581081225807175870221148884893040123429129273251594134839855174647118967008021045400070541640301611213032465610985348355606687686198234013194549500557667692477707118380844384924645491345181279753690338669407642809126055047718959143225327803174208160523711716082734421116331761142134967997654954023037954235670141744856447338161042332459332052769350677570467569641636144075114426240245884826153868664685016740484268096020938281270686084330658030466272587017140231969869726255561220146477284133258195551087113243106368183176465770479644114808148384030128811587032378633662963287763559178991359598103440277772958383814519466672827092569226760229696906085727335306317311121956600582711134798540807423799148201657359640348900307716969800440745031821470797839515442350383825577384281895425460406536067934017120431485401690661541331028861770014555870791877515527369797931655296497794145405608909946220905342621384702859067770282923915444240422763695171938241448884116999220753073006859218849938824695731097867538031427976632978576356113497885608700180050697906949671769945572736780946749546164938349343612434658268471577957075554692945761000631051230914648286268445918799181150539402649893197291695840947487037616619146475682164539910593994821693863636293713865896985272030296856369414935883553196819312459919701447959826544655448155690465549825009206551425573876693994071220885112217544304848316862339186889386273904108425907048820536511301223143578020695697580793594096736079665805688872705019105304523866806326187525538759253767832221396030567065156961715601190268343086784873164059256560513198659164609844238196524253929380890962073749441326735337258714939263404221379084717153192429425894178705308355946776530334604319403207651130113339965344180489303121149128964956075889398504478249665832828933789110239362151451433405943814651442329196308915358692313247730379653908861865016433059135589290402448120636760706670348250289488704755766425883544625458277960487898025637424834573196943557854423369733469045923267851429074043552278270989759203430849086117535655732385100829586128882310487566073739577055818981131548091328458980851249738892166583525243579685316613410367318272898106048442892304669700026846860071638769791976226638791955532605702994734004854038994717502974024492465722610404026744469387771577941709525447757518048035091160778554306500232745270527870045659200653270767108784874543632749057261495327899773527910716143300146305168430196914457763024000146122627773139415407258347294502920319161626387181093422254444215648593748205907877018515395060194288104588712771359180586199834694229707396885141082902579174233907179232474887688911779641508952178687874655118959758656144862960867401919100069844243116860483094458022071918872411746454143195517684404240115396510182609162591620403840069852919280782847812746065231670453363741526099474788836891941159192946040696637971531221363756146351017311450465876451232017309183820680197347914884099439415248910154097744959917794707099084639949828738575662113121710860135679517167883029250838566283088646203550606998873638572658962677752306501361660519506946969072363792475575067977003261670670839314022628821493634983972094241779721814097596895448965054461664049976012687851282292387923159492917109227923393722999580512251802935279710761129485510997180825733099166398840397018317692322560218520180707554504242747388365844645433682971577107128192458329378914440932050151008465861728579293809716802449040334745630854281664089648045376408924267126094418524574509332352696230790518932898971059753913396917748920341213521563192138439188495654514665740293676913905425495920639158725081754546300412439599285752074200736118072075437743479791626258556643787735913133729544764003533725639099828914211756516531044167720048582745821361361117297658653423087222042102426888198738861878609420172843726733795681443604590742185018636812681320190097352909417099476185364564199200209499181122293060731937665861921188711743722796766183811307234683343053796016256840320289626777701855464893948691671091161774053591868299588155346493171264303685885326584947065615727942788095154696971942544457115743104661430137408362993205360681697110047741752629337344973125168341916080019265285051027773958224760520932584623406849691491910407130310469320937183355599809377343514425466583290977051174937395376307444817347477096465313331211168968314630494869587902843981997337842017173156919457718702665077517504909147014111880631767651195756247665961477232221346978169974364695831063752338915084506251341921834338106926504952702995876265890363562905947104837445565462002207197123624641324715384002273393328249274552548426762101072805962612363399070790285379294070795154100928935131362179588671320774776680255442960664755169909046612890049436907585146152522454579158078183809298881799560681119559581707017627381770587702530821512047847660144033869850769117973450101665363093536341080796121456028996476632446398846335665718132608167250495474026632467346163488016663397740366055776258825286961603065481322066269687021183120279749704337040904104855932077431864735315827394574764299231388822230953933969944842003219979399679798174526017601920612371872611632807744213824482578369676185438405718147095139499594141254262800106825221260162030255805092668885346009703763973025363234352811631997390832015815186966108652706408236261765346224560780418263116562457080292483007953260095774814933764662258092063207877890553038016132041020390743220516513757035572580892090525589855935091880563920509715040962409666152784296841544442552667792084838032402922679385056306886122496104808049881732102653824116381538211151012509184216375523637261271659417641159630361989331231938067424681151477841143034588447657655936042458954962121717264537943753192793361323539299859160208722671790875726697844270577489769591480506191968429415114037751367459397998330058024964867325355372167024947273295307576050119891248801958822674493397085698024202268500051580298724501272267121049795839735457922196661958597757497651796705934256884327521741363341407852252151851701526859924025973019239420112601241568991937590215804507925546995998124335342054081700960754645341609792648465912782937704972231699790086023743092744191189076873416154322096254468931140997477699147394749392179672069949061480958609805053626054628789308892728472386666612177251455815238715067273268285480407874147852803168211706092793250924334198433445740081318365385266539880856421722565585409863552297207278083401766583109654243653538750460238453292221261870645322791601792844395955386974302319931507487701898177833317338345009575881911683668347263576554676463065359292129396464182509733090915626031250208906659880374380923176119850127037071991465665445546829714262263028771532971820280414034381084807301647880298530281304977753530202980065275399474614297166291169858258482581195536124343460105403851942239045799854728124330878859166051398041917383210455908338363163462860844269270250859950976765011683137585494977157971151705449514338967257216551466650405585623399403732109770295538807753523938231340047824715818114146089156680655002439034170094481868787143003680205407287543829033303183754880183713752368576498216272690357009479226457939405438423653293050702282469020751741351776489131187922567348860778020302517379581607967288899182440381785272678626030651451829010572161653034229593781120822039997893144668250908688878736345606007606256653646258286397755358562913985183494892921630338458023768057082302412817848957712681227199386008957222626314137020508732441749664367976188344211765495906158498723935302442064547227046034286471899200568560322552855176569969273369927121049529248358706742779778034241311411937095250674704055908940262358836848387264237590666780755588651313249012621205179674401340868662058561255588215784177522273432679930097633855601105821365982810984054501214450112799652586590564096417058979382206381534463877844100100598181253940197076761849731266819044293600318668389760428606438876312408020407425070165354528220754084974769212416051742610474005109935307035758433439053408647258432121650419948101874326604277959818226594194450220244191237217738930330894069729362742572914353843003515426891290130141204585995778478005621591944610944642591176941235827326765130156669911242205223514655106088629799688642026254241107332282694029130082567640727918219864856756276925020052446850461031720355204204122202959611131660812820669980287885889432306353512902359150908166612858173732168912823177441815033518209657222318643861426206961182388860402385561967862635140953851263776872056420454523933329930995217815437174549306512841314724449976445332789118489025190368691828810890370844846013882812744153678881801699111024579540963131190312425975717254324829676558758740589063903685061984143113355916756166731325716008604733161811225110009743848605394008758768378407894300032906863009037489538370062991736609604378077606469642209381027784501585241352512606241424991390203295502321015108728868384205601636382059177220304852754551873662518064403034295376862297685540206869972367915377364245054910487560620842756104737658285949188073710708531022912694441488305449625515813730245101006512054194847610931562570109869830335603268768014262783324679244662067858015775853240551523409342072406536525519645127370220069958245216370360095925240710364064097735946726890385025960628465204333352316428314767188838539284110652899160253326134690629240211054185880488032250147415935907506233594576893441504119692342959164001910446372381574323455455693047908823125281396186587894882166553549562008736397612769444637550061975945956871302538661665420166937694959101851923871487432206746498022181886741446103797334808662109368925769635304807201877977967516006843983371079196570855725201202688245334181230460558202799358978045910008664445504758598240214160721697619860235448907011260998969523452647943551576191499665204502169955304647122602423747374413656577596866212091979740513628784771679064033638850340365115594806688782473699998919328683868661135080416250803990296273331877391631090041626427541337433820984475616561341514446690200333989668212065400182900562296168542436129736042096453958866033415546557677872682033010123691459866197996347461430171500676161747749150052032826599524100718227354054117793288834178300154316274347109254467811991203598908490378032631051565949441649549058637673496312722916005803132034550336873059498999900818128896835412516030215471595087597779654339334397070241798107518296598832497099232424217394493752781336911407412769893025546368558954963582371043403992073284173155766390107403278402857625995657533990844347328629028309848265827281675353631486063570386563302353980955960308822355994148201409103648584157115864094686678031661481223023227103287232216552573420140355482804982633874380887252278402739049659674797643498543132580694333863987228424276798898891934130425120952424519397316009241897712530798317819216720867545263590707267218217492328046833148093603077808226768641865338010581349083787628758788233653521039244871370225948817274183451357888322670468433963358423624276871299037907672543737394393640708257037374800546811464708133531502372006623004252024038297240368484748172231182554064179137456951860778119715966860989868091019106343102364282550732145150311679866945141072413305289120300306185113230148669535882662738592275695077878465503339192293610318037138760176694010977801580216485631956169872220605856374113173869183317121759471687071336169870427280340496139183928618556940985411607438682013381574214193573558651692617718288896338563978515403591072522248288131612985123945913283556729295567609073628990599320507998980726190302384760506653557679059967056537454796083921185195884291074791374711083680293721923989648677817114272788337680671941704038734596842721508269331031657803925500701419393890843672987287159914795425207072475752252443312099179945628432659963728812178494215995726727182980277292459121659779929821240522900270583698804758360589741514360344674537429706557702022939966502036899164913311634694314166200705366569487694325182856092195096921370992434255436698689608064366165329541384254374044176964647363091746669591901805537167489429698528291063500799181786648158547564428455708453010537239392294232278109737891378649667492780124282478198251615348019644878634234516684730292525663347593365304204888984585528694051309417898062511391169472821032844932899033972248384284419244710841829242317590282640249030296624696955374502809640703281271890449294885924708931853963343829408932960867340253563827501033852124332482596398866072320299514946946067828645239930213281287799271254309857006264299593794971762930495775156268987928785273388665520153717514312253947494708910697310888818825433809118077986680741488601645789717691381267045119522287961052369982040936916147493036437749323461092405489361940874965454575584032830229894911414609316077545798533851785866240432171081700684298684393867311482223610750317341554072440755213809317903268208097816078191294944041820777666181558306200637901223186986886043630359470848208313662205496657532812674245242386011979732292971987412954027610245911424089484971129326736125744527346272909693870139709215013013885686199872946326236937646738523471606701264869392192934781908598338383824292362720002574712168785542003520854075550717517946190644827856085250921410417422849242160817032437646238518599782292054397685744161201277771371056692021249004776904393786405230011454099079223473014195935910100340594570253465723027677793884989710387338150120544790113646838141139322584108370322048269028467792729679520166975017813828469639808064396532501977288842035324831261504842205956863164730883913954621524397374962784461784237386468585115038441044158054225878778811381200403517854254035030654218419472680241172880803992762347641189522819283766298893909441538112163690778734461308236952985891116444959377136181252215735076891626709301005752639380541622312952504466166816127362074887379478086066856172176343052222372323741270233777956245694496988790642776427554622096744311457452730741068948525528623062888855316169042501433860414690758263795643393012653706925184362594523541853157725834881212485885221037317634462997300946034777314066553252186720447495281826071798378349688381958857361018543046314737422974722469362402389442431351113212713367453239324126385489858285500692107570241289547362587478509908373966995217901341302822073558865959088529018467078529586990878544225203488161974074990269572553558908884967291428415666143951774401592463175278496951185843011337189898386987075666616553359635754780364718420847588096791287841180738656612920972443654594718817447609910460949834944918104974672136526823038226846851487551531155952010337093185478088366642479404302132729899954139902685669960864412291014266238944624323011957856168516563644871181693038622437242228818760470011158401121771982953739334651945979860885402617130720412789050792898745889069670584152565744368071106427438054867610597679544953185366962654894823755388030675498326614754771701678261754795587417155538866389354958636929484791442767995114471387762338220868846912068976470140923928354012935412866671272347095478589301469400743098397841698881317065703568773186153815264178610330364189043231151077225414923525877906991833701950790803017442957980484914462393875962642807442893556885879979382624539140814118001312824404785418773181630690613461462144150859062475412795061343391572338604687642798478104190239933128842927135354386886330174474855323131233881627171478485947854519609794173010157905947673932609184476314039318214821775680825558291708946847580352258560597004182097092313488473688664697116484002430486305794062581420937477039913838642787233250327804716488544211988803288371210305011324898232308249555406434971472103110425750745126019795857229648249075085064899790823618866480887680349103746310573833868588666949333274651751316840816317155237608366831318862825693923934098139361192373111987751040116229637534265772880173285060424587423987679231348852869892511524490393447385203605076410542080866048269845894162755024153458707338270535671184642708476203779302178948671018566509338416007576567067048321889824293857217859369634751028203796170548496909902832142055419241169895339223047166315542224418172669448848884778533706035536785105358279643066846995170506214024374243517089019229380490983424394789630360097493749000795775303302517648718028816886684577479917141348383880698106919635644972571726496830762883248192340561087871953502132041793998900932922718316517957824530944721930746897217683910561921134074658299929635322512072089245426545662683450067929445021369486624990358678521924700094660156442869772662873976147764283887161538797699027709810346330690241949195135478274058866101456902111651076633880238363835132626785670545910620122701640322362807603859049900957217071264277262588546395772949247112140697269005723588203709039807879705597980751608156759929155156163322695758840963818352520509297426954343923683829949717878851894953277529369014161887968177528315677769463528499573981466209268410890906576818676298940419157490637939498277788552116118133480381718345848700333515329206117182827401809162744766223409137769149508021673912260828152286776812300531196201658897688515805304509823477088760662740266323513916261391055109676247172480211253482140638002605694850774916530421172043422107355628541729473965491296871289735871823953477648964774168760005372438202580014965618446102593073025839551839291660596744931654348847962875868705041512407061719861032082846633033936810787266304920379670293229251778901106501091598733111573115945406597374435017966341196291338391330739180240205128990425046738905322496507964730172790262552975598181666621013831084154918029377931773996171540728592455105615788490431288548829624261406426759440767258239063549935952289229542019950186225010377366548248276200264010878527161150310029132200046132142303856859705795799298400946965567480803368411753764995119875644851934117767503807588389483194146618689507579153550072832106388260003594539983263419035065719746435520442747361169105794712170782821839441900333825839331861739007590950190518000059199790740675541536712178850529246679676007403341747669678319466842573005926595196929447585606368098727474068810833147229765928073052158914954819925004355565207724749449036725915787917870336761095729787976321144546123295267041051151442650725474501149541392013453767226620698252350621613601443751064655096804330076241286157502203258405491269193612619392554758656288703088411167243623394569593435554795586336036842553816575329573230487997662435660250249890730657019456925495286086508501338991367596296122317602604238848370288112774207553551968332925277491609915324482825394031045134892680347863934594623774187271892453169954601216367360868361924300105228442446271496412696903072440652962540285229435908861718784400002211433384304912422385648536672983272244752216085094245987328954350400143784531572428698547217439656036579962084206186124055071082227298614748789924597435406049211449165879477058758152886827048500311041472568633472672477129323344235020745679126356390075904626700028422634404370803990965139174186101849878708371493328941001879987552744618807412692552397165816694532452061992723992140661644872652991495921203099973274507156099496181655776257223892459826712536667660926502128428023692091501140557508223083904166697359454823021062529126988024688827741355411696168223178913035176121761454209998279136601074437258153903759597591825145153906825406274240292874599573973382392175146023881172568594884887396073944217770320481287373388000372660994720855471996355928758496051096312628415720022819178849674951628109327862002862775938746039547928219089350951779446882667722769871921048363294950783005521642387990008727122346769923446767763838261711126414151992067419021364571939987215067437828457785496609099671321753873823136687700388241468549722004842960915095394118715457709113348211683160364513143950524724988166410839119453602924441906950028152854318443264194338856899277908812569997533358060819127263285364925488148251638415950922844043331294707922764457210214369639494437987355896671137824829068866166678499188493942359514814435952687435925592086832463903528978471227978136395254853150100789782211615085870385768723979067214674759555282163669424636819122597995243926037097913534443244690176453768092233752456184470386982547239428802417852309942065947253901903378965289303637724730652777710779295478958012916793940416489960310603175460921945710700261109410124659455811783712353300512401256048160250606748573435696294665238700389903686590173513382120579307714513630926396870089520820023010156730866640814678355790194995825270410929985476999306801848933991136160709212512318790648069971439877274761886292095666858610619584422956926439578523356349736538321457149134481592200480889030103907059610450779798239180989636838613014605985997389651565213127221695170148338663338077524244716881410980334328096008201004315359635263972301816267347994276708620677663154351518172135145239210930801021805683032390472440854137956425297395741766828316064459286749770496729834579144499442924421734173637895829590473743424598424970080121642702409425647268917084094583145480621789680069655175503435040352531806112097210226713729366630720073711208680269718029890279079107818447298209885100929844224864659984027857020547415880269079715420821696916601307887856423983341028167155597922982707427946336801860934850767643533456397338460740226735775325168856134036886357058274377994997483601687304617103090701064205110845324893892924584762609238873379302342516480931402489695180072830144927111056797812250020421929176826804662322585294743320127932984881800526212994121938266768467131548453219010240091786823481850412813130823109213475234699761381314981400029589758418213628971919955797027657490850156425036508456842395155374997841398675311319108119732827144795282525344174650277127777835073848551553874280869395062016254457364163239859259120988548724126921877483149565019749843334927916377891781055596012824015743049353630727476415599876453756187761563370318304555423799306713182794376033360793369305428696676673791395571234393647493397357426295519662674858763780164491111571159258501960763217099552789199217698946647599775685247490806562202285870971446806200151997435667032793651385290678872929369947465553402774305091652219237410424768683886797481066154712792683365507827160449644722029089353514191193760459184264559323094662429672742332604669581591147668474996213889354824480078128177825751401041625652706741531631163181595681409097367647445962213321101382330811112471196754942926816735173524358646005037065225113457639746298009371538074608779361312819926390831497129599672470230230929980692595354973860516095074873344589342962133448892078894116712653703187559600478372847641127005510759976937736666850430505450944623377842791787074936188141004444790172550597699900309568642572861290320661247725294011218885323874257955728410125471622816735475970547985605925438297300587192598644318856662221713407314510128313746137044355647254836165979544479480065405600052328315469912309371647389502329520062772164944934925812099209595779831648603567044937818169864138251591239824236602529163653484650318229939901531639486652812590668150773769526501003489177354359530784490834519916768222851376232295277963366188346678914003393335867234011571027165769863559796470635076413964709448240291803626443848919781442096204437360489645356478472828529358798012411860611775356019452068350501327094943451288779311103680198211651916330368410669183720208191588274668298052469951594081569986919380056583987447983935527451534496434488649069444310031767425414133721449773406005922003268538812383243018978633446494766667814111864552480196653473316380298866170029159919385023932024065306246302647761039550316845136203097888762617640470329051231043357849938109765208580389051448018749049510008253638775119602431137535399740473473889206997803420517536231135876070624757850764893428717758772144450543776482197812111462423476973363880439892076392978973395050753386246730239431575882993323625376346152862951409660579222490237082967966793850857178010894280916274503461498802498942862912414768150383398738660716172609237778201639007279891725101839853905967430077170976093249494248617451471241563068057462927075090045170953353448849824990652049693168621201664434709112095936838258568532158968224698696235307126743155530063188878639682203393930064041953645330376363339240332665112007581152528878200063995832244133889154364068329952738383158555768398966671322176087293113380605582848499197060494323759753900425275369627504412256449244275866165628075119749229824588975213251259233807460118210880596910145028391837747887310758889512276075813750184029235569476892795797682787480300611922519853827436162295700485246138638309641470433982083759983228953661007164997343105325737988836065885777275766886861280235741078421964067374142933585635484745291900910995713621938008194091700344923456931853304975257248571605928787988805945787936789263105340893414162251050217639086338725818432513606498261530064713689822442570504794708896195056606522215602465505532440908328548458155272302540078390568938646828782038918067826308115567035328852049063938372112254315124292168534206907280869532287175818134962720900627474058573455316332528491718795846146552503948034107240784366119848872386447619981857777500314374495559118931727485291557980204334110925641415088262056818303647744723754860994207416783514496334723747395182597261767868045300435688722166678007907663739824584152658531267250572767681860530494105953086718311754787790909475079848422434546402674358470007337907210357017702172926212761449403512298725090959929272931247448640320241028007206333651601079214004465355719569373812592851120633370976924768685981947012749972543532755009656913599401099285767598224187506916407700602510280660213118461241959265430209291363573331610701125277945196522827901874619374215752195875388499770285127128377610399286897301678992488018658193320995276827737023431021459350716230806675824527083353361218719749032373770600105847006831091859651114069241627595289389351811215283804011592763900376946235586385988916028986243348003550394176821592963312589183933982937316079580869385231704521839344222108722242215267712056087513976720626232980894846193024745304341152614772523882394139866680805305159101245917737093940103929526447764945601081578419221743747306836419388560899246567665891255499513523321308591911399718518018408619793857623189911205575122940073607467045860609629108905486037076273541676234044281129856672488947691747186311866715367782726930791049128559008226680776513248750332111709110403238904951475182531303931520903884366558006384509817010182499188976553522983439421208847306004019841836758291220096005910921829937690673412039715793302457761243816425950429763539722004276840249095968608829891587531874954509302884796025396554943404850223443248308292002295348682954829704972860039421336455188176089962573280362056909628749655349386993460753782096640415702245615350921985477127244926370662873642441796031376922470003755088766535214013312387568327414189974785344979031514612185782590340751831701370075516183590659821983487323114183041873381737953790045064451522542603895418659422174247885024205639538570244344878925167370129131242049188804811164203170930072964760781438251195752631743000600482196593606906435800123248918141974847694666832244265853471260004345286451555562727094814436807168634651689200124204257178877381800059263777765135836377891895629545752980199057182045471947856173370226676370464860069013708658630359415692643821087578423157240334987445118070606983583566072526521867463223334000081905640243582386775880744617606814975836000027560237166889566088274916694643584866432710998699693762743499548485835123807868137332475855535887506385553732123156277171593578613807345305984557989714904889218629746440948646972051753553695687900902160585704018123861534236776914739965981063927758878502086593215154543455116221993374333855183326521251992321386820462812207011031546796776180530311596092151492089452150068623119364721656087398792114311828433474147343438254277094262335010494711021761647384035528663135035610249420817597010727327058238018563995803656780423497474861289320160118320211395378831879554665688890224064362104337119384231346367372107580936457453551223865334961414728729743300481463455210492762858172491314949168673954208455004975899046758379569554907231141170581125726841011219177308092321939330448703061603625304838112112043657737205769502306012646971469592726562944111773200630254829132702899287527881565574408967567263598584010795312818673895034566901532250647688843577101677719802089302027369248799375734649043399125554126614492789385940906855532941750828471403205123511675127080997017437144970347118031074888038557524735818550370111897705828417630971302804886928812162542525985498755271218191934509332529709325873870977775632661569766174849678078037032677115454903841400124724462027388791191301661290811549997822043107859189786990109531323995543950513795493142659669407929852677889002466510323350998711602601729291620503084725820118242047189620454933624329893134315685875831781852408824312100068883048671773794549496448147489972464267132407245124849681581601634896737433475615618528063135068026218683064827233583429368382679123070571130722753826561590000949728890374086824457437889668950200164287271161623811496939707420450451834175672177492620997961193992518956893251697834693780047087891605752554799685249461633043083573953099655169394362245941359414328485977609896429240335649215864604680590807996676928710763685357049884853559393436848705376012880173091108625273403724936215608629313608004607715175392903539746840345224562507116144328805397302847241731156596678507498116858148543919920537716149765616137756624582049844340954579765540211095717238571891248189576217482183229645030667484776715171350700505079215709166371745327600066834675941779234844252534749601896142518735574170221002790642286099872180680378552200430408441842504971606304236042735760017731653343972694238452804750001224324584881882769691816711382021557546584749681789277765376991115904318952769644305558326542673663388945640399487164170701142149069438672922566432814276316573422510924421871028809990535459548454723173461262051193581355314375218377632640816830855189160136068014080287609769162479059487396607853820329903242920017667918436498665113816941905011652461009486742567689147873976696885446518134191368602298052703510689629828941660900698724006374825938260647992563586288440045993670719756439158919747500996171954306374761491183115433681749447705734885454021633246317947323029302040193578073313661991501903950986591725763912992010609667353436560553358263537941475993012602783312685215765461625843067409510387725010124123291031023011282589959415542285971044876654184355704732336029782124333650199149422179493088376124568835763353900388839758692346820482664740672377804099393494151528393273705749118191526472220951401248493928632697187850266872201701448693448110988455721944163458771175005969608672045492614749109015268115702547540772927634514630952464095964097077628192597173339649529763955511258616415598946448707940221069376657198072282329159325522232675338822075267344347191305268645247469794668045044314876888903297619517445693165980126516185804900622833346017696539031177588335445812299976718753674875406016317944984757148646249623940987767861390117448540834823062257890030916522649653848896102563653315694829511497983182946333279871632441304305326945224295973894764835311711159387987429506542009439991905820503932766990867694733147128182271805974348793360686435241259389540694192454207243992896667330651229379092812974695606569740267654647631712422522165637323219582085063506494326944846595500102085723338733694131414767307608833407279197773740557698277397002588482118675192799359347439670508143393360071112870604446469589910956759104692327153178292514737927481071648760111314765085217786398795187024478343501078015780037126838817571965215682967321933218693281984103193755192221759247908934825604793965259731352202162761510738632588138428120056078889100416450463033836736409914153285296406026698392208384676959917699243212261659479806356642934842995200675216046003922442443392071972229692221518601871514407509533900573457771155088971876658681240630814743433374816215214049580918526203868349061841286413618504823388968431519103819190324713659256423918489499824106213349658926717083169967493035281302163493773248177088192785702370521914735254365579783834615964399025105117687662218354738646073706352145855768721780339440341102875906847517790093887165545169417877832957690793869067568333912313887997946601549346493712411419799204518184019841670429454243984363601354313611525837960266591178022730802985873501827357792362863264273731780704661048610423422209814800930179406660956839806589547901627911918101652480853861379290959661073848571384775550431344605290342235479195592156304837519037624927541734289298008200952983176820376659687863957955993805215378689246217518315243400934522311074536498948984233536119317587009251272098739863938733327934551010316345310430281330283339249813190127485910348443939308994985194789405277299737739522731585508003264943094405025864850179556843769752533213506812847012872363196369241983730875481977572095832158251723229578997876892680012459520520945622242852660196188377247237975514466646845252654594762179231813929959833244212972386225460547805632303882502182686093775957833773993838007918039415724574736482562540490417382556201316532796866757569094440510086336167335898602294117581683201794472264503638205165515033653509755867896460433353318071025640156584446348981793380788058568624351141926812503936421373581973285865832329081828445355362662668956966204774918115182436759325015076740987057725418482618775144985103615107579729882179417197530299872358278979044279729668396828219269364197672412416286937222611931787646124897112191356938143213334685392270985898642827968040560377444225515436340532236484607888712182251867263862066299251704959848269490675205777101723247060167570201155671411235811314424850468078572718350557908548822973620269681799310538196899091214116487456290360360212015389580553169354839345284529669351871559556566377454020343981551658439394567112463252668991727171944996495087190540661965250349680311997926212926033276135756033904976239817024619068207498410751474235883186457924877876472400420752002191568174677506417337510372528990357324262355427397778037367146415796810460557957989989738063201763363127632360454278961354479189863843076363845147820952020951810527878552329269831980999656112314344787989997109689844157668223302439370075894942020259803853004739745092992286032312358272469903626999977297409010912539466735388649789515741231903413087683374387321279814940467371827677135428236650720982873227716852037272653414295961481750791640867431099138909350271399523805422049128669523928167026072834854952523072243253650226474490875111972733008447358589851691124456523188464137777729960869314100589323585144239796211357866496791370808127601801386014710451823172107155733114368381500207624925819967013396442199968154236281565214783584236961828560806010072258435259454753491629178293818857061127682946895894647344401341103270899432737454224898499194176029950847172187297099252607834481638909776994103638449700838443877264420039989703148252289924949192049652293183536944955633095309090408661896780922810264030561240794419985575340457594686627069517116145836766855309065785407740034451811330098182641860799761471569068557375866677456049698150783010281326669025548740380446630442639723290795301411654721088504298171030369632818885088572475564336303520196143018196304402566514650722923892583998634783299070674460128227165567916929427040596799239576145401937766578777867123756103779941394547413912017396240841965525882938207354829609547119130106143828113214290490842975342419487645822179014646612474599705394585736133773690488698665809556515610742779902214693993812068355138143724863997068291541748828567620781540276487995719793442037201156996838156081798621159155656136205694327250483246121920352000769290522655271410609688214044249729287676590157160272320503106608044446335811705302106626604590832072325206815265461787039229038399175528920009788813868282722537353906126692785307461529579711846535095272050691908118175335429529170806632521457350325936367130635940968103829285361476397273664471692434773515291965075461867447903121504853376568433862724259661716104011266950931501919000626230276089906224174872465947790757158685237829146144885277021980575071715212256751498772005762196625873328235317409730400747286357235801025525981868107452241022023101171140226260764171951977977176758232353674982562397805147321421353430572396250929986182836592839907767113598693402491262687225442054629642422844456616724813114279144530314665851598882044461959029221374207327535408457493945720907056939046977481744098674042321426552408619506447122793044159086204508548440104990844216841510256541842296080524895767093878809192111738899954375171944995526023856010189259537238049468689395265679128774719606318747321744508815121205540922900656923981971915855815061114732891719856271564088138431995738907285020187593279747707048595755075010299917443171095750986148637427197359823817806695624329248397869152476356171703865898025922408872368968395736940209903376818646403727283309753276786056752595136198437345517862487660355305411182156674796285413715322922833695415984185991198787769957809621477821967262614520543519130515248518765286481201041067540978202760076470666934921925119808906216359299472034244477651122067526691057056903846725948020690126090816006038633462847783416216105668731865006507892246952027245291403055186260942608018375863972414556917770954377817752917954330888595236761462435575995903945617763027270660665510068019651762808255211201949786360912923308279462349182359856480643003538725505796985025924145393347405775656663003773361002849371716250505388423708313136730231586754838464467989696284925325805954645568675762101691790117301560485416959529326848872852620908635010696501255303778854016193068646996480065840422127914315118584713400595964881353978590639855571864665581916737058523719587436789992590050650892070617636822755803772351930608328664484659356996586207377666009051753217895576901685721669777619890705908620734917891012144947224772357762347658514055296162237184950267961328016684526420484706538000322028411907517430504157220392304700578986808571083538172279413223603994868011320408449590560837295939881113167624237178259301381199443253422856917907429355102428557914523927838119063870391492024623125510625507235412527067830025440552070730374134508232505721220890104467393210298137779650320679748470921859961333136882142449099584140270969613415896205123237724659170172328460126780632079694143482934282664182896016595309551690525092599701512796812838647205724330788099721529206371532414308399243056052929922233261595904580903531885889241999373035836133400055816186348314874195372256264347021412080764977802541939853354114760025498353902511506732334876065368065803464540584036316432630142732191001413070527223470782574852478724192421166586636080513352477295581665657979542452564647443316692112824610435584750938349764924710933869057921951122926880478573318405065441794075741275985594245780007850410984034223628331089990002060080409750641722261591972523747607874642630188776631548369087850245950045775855438692033987659238480034841619215049327410963305579472241935122619861985207503131024077042406391951614755856191124182962799835083026450035557602992579294480162700599725733632228403760974288210052386629635552070382572590106133326424756200082831716568181110931489399090463484479513180178957702401144921853560582923091185624268590896190443252022565864791752088905755254865369544834594895734093286404343649179976656856457779842344030816626239658865918436749648790466464161445140317891890626971588951386966750930100593528968369580716294935783821475103201111527568044181543348283720001964868305074141380212675599383276606118828537165784298272993070903147414507952003279851890077995310519107528346176772068430922358040405801554859237892366467921024912474953332263353895963577230181840145503100268877725773864405871914655950485109330792487624687697461016889976134378773261488122591927642822586382822873688308148489530158812154253188872405000296834656934895968092149692851104750868256405932850968298508810475593869142260424485856428650079074109878324060051829783107505509631999512174084714497181709629801844282678129533654168213212785967269032756834030585096611172168637420957176348729988061990521473840833520938564434558602880282009297622850757961038472778445880838244755395531198578791454193194100974461293031351632233293400490251917185903037208141766468271349935748697711455369388379037745444405634315046834864806766089949920152673069593230221680478558394826422075958448777285067819059276144596969408819779610553241761842106988147202684982733528991025314712918390759231648640240101888987421887686841697496081971984088941419763470035692947436874418556698926770075838365487423537729125110513022975696946429835180447993589713154220067322070352752612505475713803728093590734271747223746123035811674011423510783356579372591501061173710254118936759605980844040837083747558314146286215287371496006305512779884029204589231506763437181499804783464257745555162001001991843471592141016628125961885552158342310319800467475487232068407824581805247440013895005455999499017660640615930315258127649159613980766321205521152963038238988634611668685630218947321607414287026702995565144192484654694365382874954467723556066477304778278902530779477585132539769368105835146322349113319873027039103628174004525703120170581955488571357431232222885252784039475938786294317897105491890478940588028635196710008720037455451011298705815668152296058065899217324422205741206050428923428277636503864737314369836268236740475676392915016155489144901949205661430482626388389243250528818340658664202696899496248248715959374040543433385964739522821303034339361859810681627032028609961909752400166090210658608063002530089654849279734475984025240883162629211616548341673995806229607622412260893096501709088431123990243561086069397363208428127454558987742090894305888605724554201275755879515695975103263469966160362303178996831336491157404080748359058867613423670711681138498234859961243467311924573088305447820942931886358857170073900582867928388583875778540209295013224877467332204561806149304017870607862287830911149053626638355319543089556536313649564591884100028784935583765941041126096807623339122409696886387176793060082986247451237391993817913113590818402987816867179342717473702040392008429981052025054826531835542699848917177807107857390510568336459400806251355484327313385846683733790820035575426091176444946613785661255891580397821586502352279782302834905421384723173455807392900080665431268073043457983002434885180506628789328906655446498995769315234201209160568606741982121608774632991998336702070473913737365127008249173565020938074228400531452886739640958788252284631538495274506542906324597367541523597766078438315206144279270112438417553101829173171805219375035057706956055925562288226788498354195640686657650441712160496385079245827062525756634033581788199629337673403841083163041103498408408810781833494068553454731203721326930053845185707418358347296695379494774437333398556899488200830062896388718343496495435708465399116920658626931850762709794278182263550979042140121988894191741046466979020667231484998978165164707174320187825903555222299780841273812316811006975885246026049719394102961406632918915174295429453992108530979528724506795702123602080077579313476411825810476809361899295383636453430538952450687738184935661624773297631067712787297347299177600248721587207452024297702953315117029470987118810312886047681698806439315096871811574561191357427026918700090790309945836449779617755782752312114764181390838924509445905912790118750464291684245139981401895717305577501455660441156316381656540443799418626183609537676295455983146153721840051254651160017862376817944839703558981065064801484079103190268540816441228801090162832265390338976861061161796086097947908937005475210303278643711233651608412330443271322036103303575913871045312771747732325836791933931925490655024081660261040144377188939975971256360880648197935148310005727117631004399293610790551063931256126633003825780450274612637650568263994321299003204223595081593376987233165333850447665567827579669077454183323553143633571623708216370265755172336208732266503108333784505233287007057113677127897136544166554749530385214490280615085260236728775624487346106694193186412268542872131178267554501441703954649475734702932559100569916098048677865172589902044353131506922675382536558955224675727274574493272186994450136904043815277217068958242863077519047009311264921643640621238175024797562410059089840621727456293069234202878234854453407453349878921220269988802678051592372015492527860026455043286058132510725220457729710973676308209314264682889712723499760955702953565573994380433389836806731023734492253164674696340573697244568162465188179852095639030523950568734352691358623700875736584870187703718900714643823280992085796780970991244917859109459760625583691921009687864822490904856673585995403336547240742891546045865336118474513114094883334552342619232431131440292813428508626745363257286326608816129456984623992971349257718764671917917699448890491345513755545265444444084211512669169109747374231228803134722387937058914377989680860032346386761158642738595926772392817338566369954239613199757524593142773145494966258541091829153349371607321578787798285515875051460911222428317912081114624047216299790810739276214259829060328706275789301793288041947005489129101042983204889151547301801999509918105193400828593046201309988341318133257601445909025427060984490814991750374578177111385712452900640596650708474722606583118659232675088995100044020853470406305011548598315121761011700022923835843277105299272113226695061027084996609241538679420717357174681191263994918283744763170335209042450573794951735155039899771489570261255999323625404755923439788053558911141684620071889893603290807899244676732148813230097963234700248291789660904909868072340117992396048342697830973438359900333842131210293585936674170782339717700577740780879767017988437207422860570428436904562861118380295722769666426066011460400608857204942411824260926401949605828666383807763884901758983967355815436079328606874915782933511956941712703653253991204377556247029380704855678128360184967278421332660585512208070895024078876290610985889157879692483634602828684614203112682858711003392112843566918135662465711474257164568275146782893175511581429231488468622227873557698940286513531190021669570956186608824287947651409640597771318747978900291791950050693330293953925126839533652263004396754614156207306176498245887214028465487716676040081523334606764566824910233628383962781066825263224568053052743298632048899934934388736903301104688840271330433420171659967261351844459413870950570236289528471076560143299348593430050096960607669183362668108428111498738720647352973557084194955077844283803613854423688846755396667013332917592364291848781301530163050004103463984600736444638014419605894623388478234173151494804745071301020491575162352949336698025447359808863521987490395411242950414512005740378351421168929082844674645683859050755093495259031991565068776087985747205220313894314818226785483653940884964851388992353463354831697087070035751862180504511235447756763050226586493052993842034031069651489491604178138692728076747391245784744581033630486213483365638647259086277001379141077981794241992672298964941881140620091705538678718839439901448661430152623256298929005294162473868944150178879561088727322811484802366178827062485853435909093133489530178591443381762027380520767211863698433251221376801808167978710312790658977739637404787826443042465848112443244918535119915494919804876879685269471513674652261108123729745580896528928015632054560931525457417573826553401533148010003560753726645959109311468775164034782109452462857203428819444476867368297892263501027253973293781037673996325071768507480823169070504087071199036140576110588046344314010692537630610943870467713024330762924825628894321179441628730052297974703749069779979808860979862398514926521834085454607050147111696698428467083729452576980002972106854116348338935189364567882452234847774925715387494202478078164212581041098282799785574495337810978252499658525220687412903779397060080140235052400349019666982047790790161281701126250350081869458320610474724046366031221923529140573707189203218171736559588958586113404205970088450607914974972172929329119793533182140837832116446957469697948986742514686749947797069220688212123296627060974443842587344981007234822134579120785356589035797523321257515666615534529775041338430712242614523247318548343766826741480525607776363823434730715992740923451705466605929550750296106453299376426535295525240055120581315877856248599698784986703807103920068353124240391828905683594612023276938349536113564228846102321288924338489787541096836407459909795415237949842356267119957033635421607418247135200990250231242823608986189585997259688768473397651061213039597627668709320435445349591396172059006138840851374015048515843947309619395981694878872479767191032758554183460201411571444430526335979004112715680080973521988119069106279960500681030621043349594777439028401455848445171336661804764850980535924878575424684072649170203977785483383622212768964481262729628279827269714297665661902021299694661761537437699823544716991793171824720800914642620479617669107744547268493807429710097886392474028304980381152822331206001701402278018436027235740091371439996269683307221641701840877085610792920681553256552562355656403213401434633711481772094880166686336025948092573193765723021676643858368940442531472047545431978714355087028027654052782839114556900293259502640942263862622650046465942043640116174476305832007502092180063995368150233353438223239720561449066317284002218575601283990034498726349457438005788554963815843892696340496525474014181694462209656333996391456492093231776238458788280710253540095084770703623625573685983988035025213208981476242972524794782708658623924519309087242798921585571050699444084378268611990784479980092475130119314112078201572607829632738492169671217406902430131024683644347293084434780447296301256147120939838657711301296060742390849794329294481407702320294257984535450265789757690158359788585054092050169918899159011553063757543786654992625927302223350347962895072811869149628588507929268487142064701760325444334729333839529683148859426672559593899446476516656965243922745360048111138827058061557366919105362618231949867632279389505620046389855943516806467867520319019539732921591452353884368820441167026718150141155771631709803439530487665177390134053100648008224126083125636091189773317434572540190061364971738985687027090213611002049811737455955118836955294353087287140979185428037826310319675511604254821408439436737475425103046696251221468771990783508404602081756865938739816770868747996961514326390001774937736801442937512874302562373975821092618288624521287140955242190369636382184044221974010057171168501545303760139807112425745896169095021142370543158788965894209599238624296976031550431568710745836048010080877435691884919826414398347677660678232016853231290595046132372989369082729842116732255498458084629932202902865496808540233621589203966762387297683508816983411431897835722228357059786445725349767292959055564829246719889127291986639791697700316745782405574607245333574964378196590101935931136859175292313337093066956228806412246750518668261816425652232223083724820192860480628252651926983299263097696105196031609043206562855804344036477385560036845754666071709899612767850697906604603926571359558477302917356356538650383068139069883966756277594578314613352014212237830698620760014694158623814638777669805740971961867989305513873063587553305344739442151476775471941291620646583921101548303569092410991425232104936659106411820364061057193527430343630564977699724831707227849708177246671562855131658391870797167150387835601725641288871217450508441111769941011223267345857604953176149087832381902911317452545812713772993514077931645328966106262211545352216058088805721414903022632090550236161985021426341716937743133859074321306425668113212806401793901743190216860414520395938701891914791311922762168439913897648446750592495178240172475625234648778882617006893735330131822908077626413072222364849460850461902369202508524576086177957962699672629470264799518453654415039347258783275208605903679368455986347579676887691028215602751324018241675726260409748898404690162661370514281157704404974129783163629589097068602900811222858166262073296880888828638331540414912874604742484468616929386702424321621584125269437250962467125404152846004895279199927720368158751362114461756605297432112518608761052997297307947443946441491042169503925440382268304371537202914892527238729220950494107119952051894696179760851255510180566543548566105700606201045649361988469730487806664593982550732507382650015285896268237159076375290676729161270759168821269053150397129911445653315045810922608143890520630077179855962437619118142791030598800216354016919513273934403627132740987247803053894745303454288721227795379940066653630489289366391005833299042340664313808418718623800393008404300326933716484734683727230696709358303951622818509402184265943478193482484380110809269936529370155397713012597484640912176221373341955413560914109346691667331560291782573977949569009924430694591714273818094786782071487520859303619369328102735007971343303851855314311187645750500993221451514184162735496432455938607125634626686582262292728141057241419354631940689735733327553775247953992152294618610429472796469585341787962493577484328982660983405987105917913954103516534497898920816670617197677094180019103624110991537376125031995940297026081331813187380319579384519606554764062769362480869554768438190275742441526031453681891094971954832604740101015481418430237645128128343540306908775213875931713393948091321955167247243578515441073081530366010639605562262683455720585552974890687317869426546418487864165636780312030324612651217609689892041078650791175242004277591563813650629537634692239051418925875049627437580089442747016770132123709071483367912948600653099362241199489971892065674533169598428859439200984379525429507891240370921962429023087186993452933031003267472414464557795910210359091403736881420737062390603991744419924061990586705404257699609865136272121842945157591751427164189024399253624532598167073686030282432687759054949600086235747063732418852981500460640496160339145131886148819402948366549117561667035019488542584462331889312736375818621659435737019299961132158588481405100748509973281557312070661926537915580450436976500715573434177110136589483918833316234791967182561912590255617866528705303387984909085343843763766075376046330776655584371346813405121620396760134777201843688032370493687900375044531037826166561493126375594265258514072756472705304038164975482297345921582877138769470330312124994016844996083870813478865901742243356005579194779732920757219427341948993412941859497606728551564700512810762205295324543995087071843274154563529754546505240657124732392079570218846379758471031469503675851087622951601138336466986013323624491806156196276352195740444770399797822954969123000054981578091250355290059074289552611438928049251766060530499199629228272812202572328074356354152095405306040772611899657027147764240521845221350074151411481036996549287915094347389156328105463209924905088750065925837451889382946667094472329169007684427727660558451908457248643459749039828236874211441937639839466142590052880346141018911620885940619695000462836504344278427166528540482511460076725567516261733604302916575444036177952513604291474514852028460804478169059849334336264915168357995262650213717285743407404261981551388810176696663066699700591926094503662841413128841379225840571456519558093417157137591545641336906194562734369010000176675126689835725233479353369351727163176411083461416951213058496026109743354751642022737081986800575173320678602811764372080556877891861388855508375112129419490747289080783983646438461161612445600047480463317322825538916629466504061145322925842711388224411944959858697861131158567082641323533613605367964174023403756125623911171903322112593509670686307068889688533917257261909042758084444667991036253294112183643238619424616799705528300528794269734560542901096238597302143712710288691307349523861213400681784900012993128909305418729777174597234261653074888614052324712320984920924664070520353572138919589531494442024801045491949112721791582470764298146863231881110687106358960713046851580774784858550009561888386890814005984151330210434527220090422499677374012366137625874292752399567470049901092260912044972622159455935550579835095062681386563462091690431891784609898973865154552673951346470285999885210842358997843518149566089765343266714533803424661166014760566038957161957486178067764007598928506067699024312970841477773498341612621735236318495234496528239461818575752481333095882165651296928856731389833927228995003865645093030243251173661359163827759770158082480905479727007407125789884519138484281465403736083876280646090925439901025038741463426895549582994331321519490059825250711094865385788266132655120349868582291855627510543547737004254812868384371369030378448682084209920024383170126039372100935589087621279455458197393362724842911095023728104696289405699478743929053728983143553023133841772417789402530780007702183148053091068801723228127748235704597691515635363702562879165119045462333418992118474589733061408385973871479681716660502155348155025351406100151968687186202135140978379403638657848627139113267527079409267222328519705790529122758793511522756245840091436308255551129586489338806376001106151369980976782036449240266498654598293765974635587390171893134305809570344007675273548859062639144416197982271352028761813747648602578094802824339145936884092176576380572443405806566316431908216117249136947360545575233911516222560040110715327479555639019526958442684214493576305079023968535662432097889821395100420460491980524114025484719942703363623175645477824457019456764810416463108153467580396314866407206238322637887929461334066637376227325211902365885379708116622225043138629463632099423287731719677802579296245194871068250133635483120143263397043238861014752885812462399021988550519273427387474529313587528253430490639884584368987209064546314944107344430873398508530353036122764799343022324600532083116275841306601251615399831366852846661129554823870217687421078767305636594681591172591705076523218430929782494083284421262937724370363241644607021554887606072286563131433018685556285176214509310726904450798994379588410108871015585096182943061749599054953605858481122587308009677774868386944762265114764661517171881208907649408928266832252172848808830278609418616695941747173786724905717779997554023061053236313424076140475818934179170061160484810027803060730954401446997155206072713087466174839123947974106269888341881489507235014287496200853807656993870257877081318792016147200255397583217433778984257365023073090258066913602290840965733241466542174346638328281295306659675371012901077391538814136061893968787088200284113260070762713043905534458236044237223352781301423949552996988206836074609944706564125510499991317790840573009702883837997088314074796792094055751057347903811234643482028544665512227656298304657777699907445656111409380281325090626224060104495211162755453851642835447881620206509598270604621359430217717396237249448053156006485788684657100608104523231539026112012962541304977018495324971348406657722095173293338660030401675211438557507956158261608965668700299474253657382672745914939010293748402350831343436319516090107686532578279454860416817152331877343955038037246437491542031866397297906025927259087547483631673252331414965626798343423883703002434609870209059258016092163914407590676639053246197302909355719971073560906524990346773764567387327017915961421544562626002669544566256332877394449053779667717459444501369082541021263981752047344960244494867149723877446347442687478314330676951758072781725657836790877725079664983236185483027486239391124583185289035541675598416628493759499275550331671496669513838307989632565042025317236926538896320909161513399901126247098018142661524939825057888443862487396400606721243877456297995340525678393368389598277576091763027471825449043615695722609424789972423700966271551782604741914473487164262268623746774674451858433772182761300638007256639927444448956533041645496282742701349955756762861707511919823797586867088221895257121940402249830885806463674973356919296017011953978287794001118180616528179043308871386339454994347968715976141612266836809016376162686964712777615595539723428858182138201573487065401971519409560101408105725404886478273700092051658519920103202731463948889564599996257975508450075124233925274834609909319163181239528943439692806776211611707622678765749258187427822062673712869692821866648155183581549946443266677313840338978447131823088239837412190057760573306754212418615260137918353735685506276029356742518840826640116509164903853240144672247252250508360203467603254780007773113860517729815165203370190625091528082848493301753367091990225460185331866952208541957160719013722114256843314803837135313819322091502268509907436885244072458195887218880326844657592039964104707499188473572448593955448606904620486536473201390372171525984731595618800946441114456790580039404009424774155073152232248939175356324829605843590888500214009152566132724721138536350146566409353714846635209931845668468377622281075925052496380115099903183817152899595712272156443349228567292609418058687676812080000664852678932795190055267845979407829706268430712384229774035020158502799431214354307841566893921068139787128830802910528957922660476581781445176748038717370612352787356222965055033898717657371370504477005230833231665118713315598846897380974044318979625938162452793360083733754066181783474600782177429127065176233531377903779280351612420324099927473199920938420262058923949314344205831502502696426995830871573733584087422850829721184801362760634175533070038112838694714903045260866022920320914505090404939889530208716607708486938539591671635066321886885633689019880288815919715586040782334172143238593645474164447207731574824579783769844005925260556067488674110686012864899042814955195990431615724093886770666769849449468240548707654306267269944356987893542993734254901788463515366795871408052062624505646579940633042909982590077244517649758047149333391144931235568581955791049618195524114502468492143473963949003322865974027128258450062926859633326475825486242344966961494544865741415942904043072614132788430811542483243248484043209783975257075978756471766627127683352756309495993881043640103185129588121110162431719586343825799914753716309239434531404480036252137980632775112874589901710892982471928174117896753754525951559188712542374313464750225684354686184849580368828807716879854475667306839448135765187403841999456887788853859992633121239796879225067910072744883523105614433897613398707724950667202418544553069991614980391853457455821456886076990421110301373726873186767579673698020401652384910500031155073442799907741181808000217554847064862580868431674199912999711615811763255116833601612181699994694429760011260216589785479625438693933343605826030115606908331255047456539849558589246792883837603998717603102006614651318576538742140939009752686202502097572979785163885506115230435179310779506369046790340234978045553698399564910611462182575945631812881572958089768723129315023975477010794623013059329216713000040750080781059306195571485299012283338878658182214969373382948432061120930096332257494941086020154988900312310711748504453010687073497009098505254807846718754475435945008059210999664582334322278319058945344292356330381010478350612706841215635080591158719817440738263115940402261646800782787978148494752886608135912370578087410096031670074864126202894310097633421194863368623744742794303334327100142587312053461530958522929932972026900812534810438949785233823214304091402730782577034933014369927599202600429573574588209602571480601790126808969171153793843332013889786332275530042156226502990045308699833433028594935426940112739554829928494824601264985222521018959287489787056653178259039558176297299093436296640144433545046633753394235638881434248193669372939198673712469212091329871764081792005801828097414082152949670692244131305812756579048961668073606689793110701601537828257062830464241378758681501709394940213739687838529617337133080053015799350584996350733135257407625350176467162175308877004765689585958339189516501656118464417078241155747638519336336626574366659465990719787865543571344780807519388417523935505818606747070118882278308565164465738097046825751083971472305485279303150716350472541573212786587740922024637744051137251446649836859952884664455243203777712863313069702572951818674147223338628706716912023878659210425955077169569349391406089722456589501799954929248272097160915986196547057071542831643668144373858708501089994201146015557569871195326284332635207608059097283847391327642130598210890907636664269606928690553363555233025217619503134419551655503105333354295622199720651616373008117899659207070151421682170154734412367818873324413000410598862259020826588271283453182666174542061157219054171031877837393065579714007411069130670077657477231630913026592908456483723733176535362534138886635884381987517244145409942867367353193759283240168109995673092188487276065050113721504245804864659735855178825141628731834689959300990993561508679985585137379734024637246994112712747399343085045178394849135475822859416193752335808351263448668849311910263381900980364847666197318177166601431154827882972638734871777548920602193364335330514604261424458627917407446495813479826821034639852490611028341556262089135709595239705156011631040418230077574364707804870526308041638654260738456703051527065132250485873749060951252007966754933859293726892023795126996668941875186273716772159733856998759334923164595427497516791443952722219458816328767520443721247386888850875731907640020518015242682202923442233636679957971510879365127910828687819604351589124231739833766770559259001662764776167819695772451455855512031414629253750361715934272656104234478608067568734138396091864813076511368674596803552921788696663645018411131681871720997001479721787934399073986830084675147773289846776037119457209533059871159269675221501550212257064083241008104418387844875391299187028885338735131740113634752813327591081046010474680673208519673188123635075907125017739776823433207769493718094136167542490918119540152342210179417264682936634085442550038141287438141953597691128049040752600035621633650381135823623156437359291974153442826218798013979024367186893363394039864990053647779066009228494598964708266964443087556030147911303875525120022602928255152596521046278824849361001262157157092835763747218690621183575777887728137983388306950697620823861970434830317160452772141600875042297173508756616268858284007755497653819901421594712286455551052608366915554110333350115139107289020672665879706153296255131127090934684061242562828783917381305569755760995440509877353623434211026325552689641934438921339639458625341954501893515475177591440419342789051820048570229512617645905220421533047353287568907044838018985637737901511535869753741564991657529171464350380237097947966952702332496289537492567333212776639958411824154508491648716706104339163621015763630023357558138652894088185836472776491445132601008482490719366488264326424722994053806178133387725192655808836928432204755189649378641508566248804383370754950631505522541092553225083308008763056371862650290251994198661184084830521662492170700113574330632841217011173251364221756687922429940065320423135251429793592863990254917162558050889531112506127039230049316327492035343021472786003335072227088239718813771401700677596070650742712368001968118714908763157611880330971940331722267368537985738560698587594352956058948747408416886528115821723344317828712343630526783681444767654371991797389105955947446037975962312100913560532875487118222048298149211368635511703528666934381852365801669109830211455509431177493550634846759072438959098897409982764001482957498287748961543454290050623752204060083749577303084416831005851283261996305621029179058365726013102776503349273361609035935706899207955337685576891162012119703254893605826163759198347965995048940860823011359249681255230204329329221052417687933123895900408541693012364219654410646221384617097807302226444184785724422559348129470200147825312390917385474185636096309004355996901299544031515090090032297989955172194575606028535590062879707483881944135302886979107485202362747902291584059141487311636772900617176930583452993218048129860113533278441410767165806796923769573435536581017705823207949797710275070367482317790342402078881037483647058146485122492772983028331622403944224338667691511577831933889873642102901015899566437391980963928604497938515693100939364855120238599948288783192151540157717124016483268149575018286193657349335597558108770805977090089061650171230294905019972911505990095115704471401214823550337735936866799187764328766652374327007055175149708025015658948983269129149993940439673417553110966169701240577564227380439368775680176670524517994877634184024694248018571921083037197442373351107183314534341476880009504416906603207394729929787820501826027070194820935836205583211570396666076108499074220445689393077517025139230830980851606762706267468396349488058799642156945224831415919050413778951309085038209054727013797212079848531990343010217414882629715076470641359816203941203686663500733998086769796874277716491701735767718228234403691557163579701007446707875835262137182977907770788223548147872555860949682911004383073186682580776349566511433180614783777748163865314012661932345058024820238193032111042173286170272674478883123616940163295593463517013508897168397409294123827260871265488439745407808158901650227428032351720477922647882478185234251841415746200220518652131184270120863589162563123990445468682711021308652108956041797170378366172395367715423340432263512209056781016733309707623463395348084642381646510813512719117066411615139957830854160861581299502625246748529055476718170491683255357474381912456981187477093833665925838315901701047192685825128885423332110491097961332829899360426076469330519778455855748403569430821427140544535178631277774808771206964787944458243145920034941850004821103300856942724063148436103010574553942916885391894656185453735779250090377857975580065285838844812279593703199577496482370561299606922318408998596954352805400965951580705801104187324089011347175502919464764718091847759392453426483880515180856100754353349349136315339088596509626281642855385095234300878520301134728315730820701735269866665105505982513940089153421327968019084502948415473633325576891863742642981443727260466435445532023010136369449969964862956330238481135521979729937515861784187696852851512976343946841300951996846541878555150911964578300475364062534093812469636148768387449857796509702239049749403702326417340919022815146174814252620071635503063463792692586997330347940993299725950342215804375031552609543336747693316568328677523488608479875469343390245538858811021717877831673708070735039031557481646001550330080891184817945008870698722460829039121483437034331073719985228480584392850839311266071332540663860962463163910234818846896232301173800955673862015082349573517510377428049046010721190325768344987342498039326512739161952355672680768771429776680423852811503128293598332041939582965163404764457139184384187767942849712715169974637563928686242118715233352512077921591374947227353016610178678109097965469609409225416773500677836650534589063136009719873433391783126375671829860395698629251432643775494432640060939099069478747042890712597516797199558485120184894223006971985955422914939237218271429580410652014167089845935323007685478195431062417919282318970276949429549012279671887588827886554319590535707974182508862675893112069978886153306659151421199917453074153426052424240377660291318668721605759995418215087625387683238966053411564899120304266875247503042901686212763435539087707547939576050832838976310435594941890177764397339529527394986612518241225107878937375167499388048645171975426079314166763670609734019136711085279879061062319819287372353268554983388112566501863802677826240912071842812576645406291729525354725050916998024259571352942368235717881888886996061764967556697702155038353590546064600790204109878648011942037622171956321302400744181241563954315934706538984382661836430294458995887955386033950524426860095360003981486637471997115369475013816881578166300963236382826088218136974913906799989011650460417391051899683162108159407588508324460446186623441237787433861489194067479068538613119636117970602855626775160896777583226139364434970086569513343998840782016203232691969855870023965905205827322796222258458265553994854090896728018240711071835287984527881037366341186303438285972189546818938523773755322499856863781783541893929585375130316116541442890719414064505798149869208253934410858311028941894616533443582158598950584784260971950065221188176763743937995787431533309464829568696913146950124658583402636452466854975568857265361579563889148032644941263521001683466585920333877409905960568362186850892021466736164344093468091030691636743963825822586625440691810201606845316083971514069394801085285147831865734706746297358479510574111154145527591261755542204847030943087875847404757860920140718131081982818537200511496866186619288715381112647362032738024101376316214192282172129264639935387797443595294934108806257932546523255420954166708931066336616169613689377028989154209194141118210323062878401939123974094147276867598645309196585184275328666810663643261765099073082230337345396322908570486782315451666147743794665757550291699358035658063465637487660693693504930921729011041763579546862038828635586033722249328164892403748166585251185724647868986505799018387508685502212913328216087727887672879704461689022654983210708536249497170726697386675596612876802489390865197001463409993938097812793452317449478272761950950381597457120546264615631889801918286075137366644700776009018248562183122849205304068473301920666501884974749414196580393636339565767058054776121546767148750173118091889852411171708164761414907632610266670748616939166352958742671465474220071108785972510422159807038462165521942901961192406744337029811880851785604580475711921030227018802340887006570731758279542556818280487460710838928676104992695806163867263222566673496088757555697140573351200557062806472410945159060354608565249509367506356931311188057607270852258950712966222704434686467272140984233607771916268510591361600288009150072541595847363670587756700457464143032571963724165511423258347373760885831896666817297507554897489610720532202744461400011642835683855067449616606930554584673624402965006026145798251443437190904011194709455064355455870242890064481991733774933400002502603021292669064638101651161125476720975425726623503299553364364426743160359920560846331744410265531945848697284203738569060762838159266318783849959885096041123317788596965732455569836847378555379774699828432442888544658279118274218015842199349287548299181922409240430196580892400009177470219738822217096509007669496883524619289462618805000355261394845984769113239317649416751001316591232734672307943799261499180780093638883271313858915690915842702294714956905382031973600610688704470710755931745240925819102572826368815795827826056864540891808451943001279636690453851598968100896495845374712145096976963753627745273402078848328368424137404022722038777743307841680676700015162631609875296278678759472316655714648951402007255387193882883668188529433322297261624719775101454256336207477481790129369697374887209910526228715148763049289911621973437329900006693163984458140102463196423116704738116437527358717198220382941568866988405489249132583445454816557829478579162351201525376782150962358487741908631039759766129258741566677933277473916984682412773793398150853254249486612643798345641085056899420312020581090401476595654274705004197978315211492878638884650870621187011553347293295259996998855543350224838618778601693852191687311839003951410605587434312575606703124578551462715233347356053255627301819822716988761064751206848370957079587789161503881759924809642838360045203987450371809479209694144404173686534018829266817692067250367135766525895665898386727654342618907885951666810239607028361667697127943369885583447059971362404867901944286503448548864015889025226102765781353323863927605758123659766263364123316869796661532242843661486032256818314040831207616698623094531811244134609537514613873776850274991686447807514716686802374695649732849483374410914269523351469895046105632866903521860444111898304312936917731848169141648984588117520342350000915113490438200784230055369415492431061725091458697862858898896943322095558269473876448128461458457175363197033434878823041201250918527946780781908504905847409085208524052239327722032987628050930154583274448118532655262788973544451095510136053862554680696271786368227837052285690412132394046789006814410111838063445203487604013091659485499050536103344277869037082722977814860068314046247097710851678370102426332477964444690717933924028689615951815731204169490481479368957517005470756560322241807560384888509941593477467673014317120451647623388554628092646976850472959947648472456825721719478822850373155779027740448705271120635221652151975050347230094363694810987018513271191896970256630490988914807596640809263156274348943393602333369165894330886646031800322474593618147457000436507654604530783022763614198698421773994070513540228386702955551727272227882583485085267899314162469728836469974067877733632293617704249524853955986817691089165764886605858030456366848892653110719091160032481603395504787784891957638157898062143001905068609689130925831523113855087145302180573685772073173076480960075723007596259423442742570853118515954282866110833032824465158749406648540820823433738611668342958068485005574556108008771899568511937857140539436368642909099571579726605980888989457301308703631522673131296860613706386227128398954575206510815999984568866992397185079987395844321793047746568183032618387375899300291650574218656394071121763726220490314618393622913268479187705153991081118518368215553248528733007296530428648406904545062793973605688225640764330660025387448214023202302646977720947234798981995847800340920158762415691599751368081203296041179543517142040324520252463623320043004915848812339903008560032669025188004508359730889233779483737262518472567862538079313632893048487366051419647643503945848422081971678086449124682814921954210278819113036089596836393275639537025434328207819436255324414333759891768979147502115853243702486320256769744963051663943738595799795935232338125078160749467606791558935195772732267568682499380789411687149197994771613572748700761596027231403383322678251332922569038499097718487996722693177958747177668463041406178669976317198721413464615594336508870054970769712863790915863377360249131860130840115851442348785523982327999989885324205410593101732489805217001665461219827340795520500792752369750471029361023298795694268273044593097387946173812743969226936146048494993241941811686717677190500336278502051607498440042140871858328456071448978458830024921434325056544078783025514570354804315458275646338899901293067268980944433775107082330870527446567724862228129269273504141232376325322004971208435162101566140126244298132727045752015471210470071886814416491621074624838446956421024100133833737168185901682784470072446815689405338513628827338293811802827441529850261038427799776040127559141853638468011874874420527946012201319812154131979609677788942899875875165268214879215187360690282669269508828602574564457109513424089915064196437240947808109744754935088499331835840376854314859771608599471138786886607792658023255081415382636362977564393741602489992228873695442495123674134271739935933445795431879128298716680630685590534570528794401961316717687793243825735059868986923124447022272173520852760908262814395135564226161555346228868933089373061634637422004015628775130030688084941941247203977035025508556056106149511596028931299672514950849638770695474586940895004110940120616325287111114920818391289154854764995917010183022300137162159071819559225694061215765238325892475016519866046846439838798657404449721028337383164495602221025194197115247268185514788613444475162017187535893196437140950033490034526729508120604923190994730652115449289703537773960325735566293971823165480300290427495587072584489446956265612945973918462949646733918589807057539588847858499312479131379086685742895821587737230858617001674283826008479140782672127665663603161281506557640935872779305873045541124135711580719882727998700307045720088632238093309747109972834210662902460810052463378461701394159249405072351851125071179611640201663607483823458443371750346841231800144001075075636236798251692468040213972165967678533916742384416683972074746498315823755351433166368055782620820820724909829681287392224505192292434585213470274645215321213822049692612290788590170813315925493744312103494115804279669989183321883160076169409949636329397553831134227992175286664627798766873836834043022179671264563273040468671078418730458766734080544665842003497786743339273107788091112130273167748111383840038403128711527227922193865915594539818203006195226966510214815037021460584902729023474991227051879924719209776184767322929221066607420315623342799736731261684403534643120112374729900339396914647957817539758410649083746601225162114027706138630304009369226193542652856539542106358768401430652816746003215326275574172636594120766375138370256608210802748418671900385020633302037267613668598703671502794121528766553950918549406919725697126878948930434943318677576436940045413932430923615669319735979399426295092858863822510541453871426341129490412009479602569868300959141943998653222316522391859311233470346304363816725307740301263869173402300716486390156424420905846502595790954016413942219487973725754643351405689033705482227011168793481017186474336222307973345771108250116476001595954377348705131929993862680688158671011990145584699582174755615627427602403422474686365301907390177235983976408526945953588259994473213249531657175175282603495722111885104773704342485047938922268239429601970998982194650971401264034245474409926246972190293128743415373697718749912460630474283244082931329630147814669827639221506873393805224094345527178917713409173337827137767199891953093351715653892779437603079217612899000164012146319905767514427684529045130321408070554112913829273433876011442098487385035487203346491135768707367069188065872615978283838218187957425377863909858276074036371833680572581210221549717998714851564323663198608127987598745139261070932174836498354349600631221197567319806502395048955726487340147719210019430314925509132004099727090110302055674542535289802215443044278442422989119409703958430320928344198639074053946774242834430732637362427450803826135199802071154805704164054313446900457755662407758511244660150616160980456585986676795764814063230403755193925161062171499619788309478993826663773934723374520041945208146688551924930648981901135676953131939340715326944945722508634451205493938677638090352817457098657723298920623858488944745804047350025674052605974333019433434678132554742375507016009372676577959102458374569614255175460860866853606025725536741078533189836054648105469616822178074051592840684128363894422819781736125649544452671676010810490821260360998547040139514516316529844467220357185640174227099998078613708084166918127406212611941300521877721892613945749255154060315193190440827230054430511517009347962076601903238871573417404373543859236110042167295275453692308452812705957266233094732324673412072763786857186457526913921211199678540558241657889860584750707036323842972355754263598879122854514167952234760662679728868070227360942822676080384284753748760297165731489635622755661911088782464286338333296342713620854195696727376797190604924477084152943580893463896293714386596454009146696473712269172864773926819826962695147333214082353219179947745982242272781376968261155066480045454905155919776170960120675499006036537747128137164148656047864298814270133573702587106691719460471533146041888013803231896179012712394751886414806472517003230753388166816815077485355690858706495716833933703878264720003122710526390377529591768466710369150564868349540728397945340763452306850320235967219957427707671019011777402179478036633916131945893860284570754209660763845713283407018379192512291930097767097023189517452682069490524378539184286087687116618417714538139410394246139951267036111733919657237079709641600700982344176770988728831523923047912506023873156842324597618731973022302712589159251515479042689159210179654536888222529669987777731165764242866559706562438936868058577630570171641597316232261282156850171018572824870659961529253553122862902670827476764659178505093853118560386514094592235040508764005943211173931742209379099825698757346449281692988294741139649946996204238959983860099478840615594215631184213648611196817242974690622303421068951271501578698502279893575397256005292217063435598246947422002219837273299771282799636271746157216683689504321438734776783708708043621734367360422171514703094613104807848058677810390722856771813433289259230126994287405569554340096830924265143318385140775838523296729395302550736557114461321710573296355164382615292924210341379011540249833334177018870490454093166180520091994931113697193221289598573041375041747309186193463489051237159002004012047559614784043644399189951033021759875792044256032989024765726794960557718991696939983415625639165542187721613797594164189689673662859693423014186777386073525763840190989792087383583585457874218605165037203047306871816833922254693313368547554512058753954344430244734446987849480614531122507567113596641593500291886659404652678159532439441077515924260216866029510133022474356989244368377620203164260461600723534825781771234698872077803340355321426665226960625510565192554310207285269586985845969053559385295090363917761685396807054962031573610048967905718813811388665384538900754920008742632946232548046200101098895456857264418736150941132640962260222624616468780818514002752964685442772898922464988344228217356177441160926411553505294027277047774514484572399739360842463560884428652360752488603909178784493665542714690703558687596639047437697115124213199836100236629226607600770856142612704692096192893404915280727224375826911164996499236618013474967634042856221933110029042346906703623685379085916300346494731257238420303595107014112583460691362205111580422447017731901692583381730301226021281269926315989478908692189796778475957322227685425751490691721316313807215562208152687161670312924117696641421814760843455732837832760260125954477827690043549656050803325365020691981006277449256805766447423576788345232352646358781718892068502590393603747122600889457811690833986818970141513064868939306729674160003350078666453975176091880794619155374004943885359356515703087489652931699442508051503399547335872375323760133815097525154040577379506364852224569039106213449098569587351242158287997305366169604847595456878911199319086534609242688253263001081598878306054232838899784662458957802058626084699024116686392880204958128155627569499850546284481355246789212042375797223406523530616437141798252378842892001927895891542614352790723281406898650342719731471049514811689065213533029090791421785304329089577346734265243605726971808271504818863359496332104578861797091492120958420818923402879081912173937881989171488062147713733119344212103604301852547697050718838244161176870215197299624443731480071448489756700775872107007265069316067200443597396243159851263985914525862930509513740960316947841864070084179462691122828953480386287984254347323978952221541356847662280509330364745614044185222714885335395276798399753842892235325918956682956997551898948001327636121053589632268749274773326970315377019829585346785903034401248019531596028831526794044203752598648431494259601100254991636786790466844407969804280310209010828644165105249119407078802347016937614400890862995170831710215577415119081722397720161426118547080878926103104312570604907286765936026385201272111200798015252769929979621148599556216558323544798358031000695948334794192561506113022073997364131154383189281986344808592462762997638167815238996518356796738257837849306837103943362576042992744258880817298090836956617580756228864285661228096071741279505690551010649394326488223554297742506812142170578493199934649567382014594455259051674954079945253341913211186817167341798929376339006584426538794874968513810295103146584800723594229663594477885835433011823902752517640418160275572619955364816241412485008413042188726063764756177250460412443400177198243494577595186505018662823186365573789927620517934893014819947934662936909765367310030562120521919757579384522213264964772055721844707158700275334931098410496195048485921631259783081064533799791001637262935253843653088024852600544554749615528440227896249439427627608129113661849405257933007236642376246459943772632995096583327801472730120656425672303217313473751042728479953924449902652252270823257361342620468556960562667030459400565484974773705647420792283529775208946797166757477807302703239816070538584275271293289226151922953267778435729456744822511138597748216173371075745925280948876615463080301249865575374207012483831112859873800463406880756949625038023233102308282041793521683201310404982756335064403385639585988751134116198833820344761373278669805727641106456999222340092437960745904241221872451240830211915282404592565443614414863518556271032743295638666546024587830898285290531445636804259641880011952702434026998306573476762739597232411839727470780984667281293343761458452327728599195263381601639201075403043523012886531742529641083068649914566349794532580177685489838161355741936656120565642935403037977098913267553203191431781691951133717673583962876952519192188610884313217428207859919371469012363915067628093981088275125949386536822044857695960319971786720668407127077445409254221219785978617546042796457466211048181312940626523293693033451703592532511165604264579110836897610977149175082484128972097547491040455982328096886342220759322714660949880965524708865731030851825939423133629289231079583061963692194559912177377325037056811427101495462027667723883198112217590272304574983765606294097037872135073350977224632344863664368477679349330343744576367900829222994649857378970791522014395581813577252960151980011597667822999250260178218151132800849967287303773636140247239860090064324456935910676517892195710016841206980093621128651356826132573732529605602734036599415791774420518022440131058445722966742064428250761285018629032781199981757806403267897400121562610475622201274127301555629051040330892364165248003383910168833502952984805094077245327463105974542751932183945871819244043781721009721486529951706466065645312582550937040020867931582691190303720888459451044059372494815192286069144856239614021066408154632553073555987607854056582416507467878276917220939441979810576088772230477401324764142498497251368901818919588133645011118425541312587433304928284885393747310029734965789840023744703091741067253952013804816130035451343179091525369233540634698636295515492783138541324613873062815697729986471615376421586535028347002408194953997321766338546875461196515541476886818933964180473104075379398354636723269845769614647543394146479919766631025511026243106306840687085571232305658773975419480436626422317841837451936501678304494503999391853023559386743925863620856207423822347663347370363769190536456568394693986123442637326839068184878778671876722225386494160796331436991771197839492809973373998007426857567265862387984099105928577262050619714796003021754667414744116821725489368962604999018955208267088461442058374831546892019109220334480976055863761034473388940123607096054038853319465538540438073368662640406030003147922957255157753025180873560344916353196506631372227268974606023481064275624965719264442953524176515777483158639206102991443946238185756274222360766657624539137459872669094758228636863836871415736141623673111006111207788266596373451335213760024316420117256767031801496402651951184587111452902039799961276516560151653069322820217728472081922589119167294690623542679205246678061430086162314295116660864545573434970194503511575636379497187038439062458446792793816624837070960274911472637639126579909351244320701892621716142727740330263823323681228651403080032267269396428776061588724351250667485435410691186693014027786137531924229595748273718516974635576710249909523855176086969368620005023704894312168087584068836796254024747873206015666296589502973983973535353163709193511534590947153393141650292958927125906241444051699435608135769614498924965390663863228417244951232430006731442769746275874074846860302568872265168875463126584912395833577618711227500365734018082383023489182169355221955456676604458828346037083897736162973330384218522728474809205638053677787805451401803483350572047052873262937911863543783867081065642753164996573930048165487789735515275137948169705518347343926708840275536377869684332577070838677549977243034763484988594067003593197430920806729345453162931114266615370473245658652668708880895717043616101091596192609262004169533328381320418320943899648291929375709722920868171587062172916953615124321424771416933217123686510060186779970525399084610213141268425350780007603321159331242691863509701286079564000694449841907253377000787965330174560585433902748287006922990090729193996585192428761114001874912759380117774160849138621375168816959132135825458537587355773101090782701964717854817008042216001221628380633997136803317536308824373221370638709014470179508747882604528066459695316381140808923957900762809347037292291894441780384719521876602700139615162082681746750202977664450766069584414219517048461427832080509091501826522941310250926005246589099567262699193173475428051721892711816699852133596482776866386474367058406614885690539711406949335752785457404949338450857066483144355553949043512842579906591198755142325711594518713014511123705397400079055177122155414846794140568678122354115343380904488143079932183901247799179017455257974703702653324589749413266507427155952850730404148306996830823798325719800640055356163126033895400552159207109313210323694516041646050531618874895528622653790599681956336680690691123079473680350003302690209994819149567716612711885701020560718794480828749242711309066214359244754457578760867061187724914008180391995347772161786702993207581886368206997909519657215261986316587938181585549409547789348466362498301159563630011185580129020090232194022063364375419954803769373115090763723569412752385952129301750967998710453375375472497641636718258680388748445690196791487049947634298571052387730631536721986072087166217644027245786251934341265231051710664577039872517194691248249164136317245581111276476140542947711535752893448407084011358074146919511592116131597225550710323180076765091337733268419997703167319244871099177256079975338086763457014772415376710349468739277720071599592943156084501219186179892625980900583677388538164735310660805934135024490744437784442528454081201059171115796575193715852297547510879267379245766571500863748752773444402077988060765629954488914791225068924105831499744474739420202663611629020131536444590950756062685675151103961378880521771768804211151555777342465498787713055298702956180901600412273453167101584238462347467321763424343973832058864675796527647698724536563621121700539674969096342482502881256962389052322189068883766268276755131443572365922608717206795356362391768893425959734907468184663062680840299750429169799664256451945287136335689233204238334170720359105635958340164035455144006922085410817252216827409035982613029640739154408989133549668316670283719731853232010782142279167612467431622095078516312251423979360750438139379814037193121409261014654643398733473839738330994109864522446730152235760102185809279396802799748064763044917674407503656557412432807741778417637682644067041782052083058831176000054319525586304053144904894155389375772169450673760782355716623100750552713310595085436992480276976418164113368290010430689169190652079878539505895388289236782380682677818854134923632612873017226134559869050659157769291435222492057315386720708058420752515438143941324744794196255826665603058253696917934117720523114653170691803386580198363649172197478027297851176784687063358717951833336813537902531252837586440305973265834242458391322591209171462443569602264076170329085495296998121695044474127279635821088149818533831165999714865644094892804252960388635688455005156280234004018363013618079717717141650646306434399643184334279667516046110171131436040111299520854857224781132881621434000705654049871756657621145828465185899058721062733559443273911613238685175236841666195983714886155352698099427771161025392233408268213936954787054395735927952890782103485102223903069308455021136744814333991323148337122106317952476688687156357297079461043713706955301922634002963802794243000823058215031345879466053844943167530219548705150731905418589492255270436465538576353835222760721537841986751520098819853806160468898982877239899228732275429969932448911262464880476318903461029589954267949050288773971574035612657275391830641631090818213270623780591896095793972907027998836397068487606310438595488472703425012983479535397463706942071849189751529925041555661585954228522626179834545801318354045750932796033946578669103555431817551696642331617535798438340243159914841631373704467474471390304829505629674550019828501359801730854983702343205364810740854813276747818442698852412009858863191643765865245455380969292696760204520793616952757575508803325025816159328571801938439668491053656979831954755406792976639828513935567730932435085294240921114408528527968394959404067776261232176431825499530426766833450958677210490925076461092605337883605718650221341007199397417649017905592890368697591930355206845557748413775126162517593122968250867210084361411284922865210238051613932355450262585161149810171208394695217247798737682288161113282586187692750521741292998350524101943854679020020069695502177621652462794935225059917144713545451730364830897756550331904728063300968413275221195078297376872853869700629033034733496595113818127935090267693741830771817046887728289933181767487898322171650203361556508274499525352563542426315488225419560041267210069084071028127140123079008069509933312786148248737644294590643434203642635812886197219549137328284571235398400641979809840457451569039509375533442397239093217902917588988677276008335676792710798488377988312490296297133211452331039638258894515241750339091738307671576436857522515512907433399753158417416407789822009966424885129093449024033430324391699694522538357061628281797657974219018136367880365608957509679697133224669888456048293456667916938878569376858090532760698495294169471020562565821797221593828644302879418833702828052418271016163948937402214062985595542948031129330823091167906143837332365089908575655763299235326605683079448805339028428782116363558707847489688956915699134550329355814170335710265017977824241824131297346085622292565533459574090316260701073558307395401560252904104808778609137757184068445901766146867853116512630798437138346226302101948176497874890628305400717714631386899978862570605274433537378900048722857761961629140851589939770510880703764652877452368799764443112726881201360523918330387204352592006334254198700586072929315394419482450036274393270716162679551440339713603439020341914045925365261010408490469602088847026039568079935548754315177753254945521945020640410567350274654946455577020608915755259718105018992745653806382061564466239260214893946794923593590506402241289462324323925051813720832154055053484644847883383574693145714306434081162279287919222376756123443374881299961036358613951648165855305052550427768682991807322645452554438828613656242363691045165812425186422060356717031325597979429750975731525471779597448400110800031463572046893518062056723567073890467500987456825127473115543485712762610087531638663587990326807748673260436566993778369225052310310566843755872458395695724084288994396522871890883738496541213487877264899727535973789876054063871896087812032416404643538452455848094807390849819134474324874239300602812716422211282733866806588624512272497696002621404509440937325712006982419219816118839983043563556487407141442024393676698043871287086637779904687399586898382646248986044667572743385896317058803097909038297152486134468635935667481882802820910308429305664368987426414856154322287895499478235586057022381274613743230413543462061668895835640965379126213092169428334721377870554152191624415996397025435568895323907313985000452826905891125867579916578540502176826224866095733517359718938944976013604420838233901558396689630365563503412378831484805507277733308416002896590819469360995210000207859472432853511837844551361039088797997734358258273460498770777320519471329817939141023901435020266130059571345668628776667921991068765212144149916538377659226457342799205781061316270149145500443608881980175563055155847015403587778986244879185565964123538217385715602154800474162944077991759253211105904545755503669306291313802158741751728036923613356748200691959869660938984949344217311960700457937195988040223327433379975059555517236312098642321288817564541150883581181347986008451222184620963284932568952595776646680130528546175650561598854500470641837732929675367811726532647949388908537363781757938251562605557839625803554037603543283793712137924544925002071921895788228162093671525473651890807037740998806440079095592646517409646014759454957906419701202079864901739987238683365508395628497523874874712727046473306941124773506835464933860777956924614202607044100615299568464234661830037464209206935138053390929601943980286027767325700709616135555614993635575840159453680898677048342820548835966823810145333601710036969199600638406072271295006734600341896680971199850185350583374486426241222383449962711379718240448769115906346059932395548693009075657843947550164520891349189673190763485821615092332932783520279745821270037902238623801463205305004448412165679906648020068933542549899142288207068147617778329857517552715900159006646322632838268785531809800638282836305533383392833988842457848262805578474128979217648977068422782206259542715240684527081488077105980208835987808314997211969019706846300369776474134946257091416186428190181287902417105677872894353480173916892194288124009762179844023406187125101585510350308740858898020391810180189570571615719406109359378376945137644794511938062600030814579438121318101737237226230879809294620852959133673797370529391751203624499212758028134608512274437426029970068272746100283377619400697639812156171633937532396003577239166627640180987590252039541858232860989662203322924267167761598146333689084921914850881356709937584734652834971970144315168468289210023398299153303058758958783259292662457171789495559154054029282502384851858656464010878624241347912977493453796964810039757814987309063744951206773899229575956814560459063634836808680167172059331167743298044178696448376251046840284173397010052725593284094143031342963373131531957088613216916662898855334662205304969921001729054407459138712225136639355145919594663232726361860044900380514382846051103976739741835674528353396094576127249862257929851873977109970260934548244869121786933990640310852047546985656771702272696907409089901283185564618146412037028428190583278396219283775464613794990820158555919487584938534805240545946899255120158694987255443793083112869374751427586823982809382863420968929124232762909115784344575885325345698343731626264686150350530143051710727961300868778747107592485676897965610306729723823560266046113003565291647833172601794193751684862135862135286139446281549862791827724032114432655775058090751179952851395330181355621508757442283256369922134123535536984908890045868826811271087447812523100542828074048167290794376239705444161573544127456686156579271346665581415241289373111363231387698273300490890962073510376084970611010509722185964196520388717185343881273544347603680668340509315871697628084528986257166398863540603440433208509263689853278441508082077230554157784576732173910733308268638728673990327684554611172539037935560152556608973465057722626699847553719363477180437148117277269390028585998865101171754070396493534102078281595165580075418229763004243773824527365191968443916379254140883216699697230157364294640030559819880865621394712945675335701958538909351687665263523075757431639684510315027915347247094656400403712533763854218258219232210288142943845902866557983505020032438439647573500179885402343156361092799192465920741365322205317821121296456577340437366548446621235172099890407930858184762755486636169507695447307199999407280344366786948607779332855882435493721800499748884700496240080321724012963306181785139539607380432715494509632721613194760281973007304830796369498282576861942751628265705682406490974998143547321117428596953901258192918672139150806015913791815164160089460478378224522415046576063321701258827716464011776298567176080424820033776104760386969644034126964915088687507761135978848455575172865524928642434303952298331897633010463926110149661765095044731620120028223865195892427344661692439381207240656897643285673697894617240564826197561473911888002644932019504929373723029401134048666096058464715760905331669865444697098631215712837975001720507594898001083274027366164506743622185042281053638565352344626995832803798513816279684625755601961289923618972047904945637018285862195211193700206231166802680217771669399821768723017616396395134143202571823858746352405172139582245060690349523752424438888986211689814834279191093079184248273792726224472283571804940272789286880504526492199693469830473114375356408516919022339706827657257417814654408910184080973578951809776184531893996065147843331581656562086375448867489448105688359757437850661552014394230781707764800785608151962175173723007246052600468696769746212333585376346006265864625212188916776280352362833802482742234326678854462232568512437291431775618794460414736739422507809531003290806818256265889550797662354168654880526747321222732848895165460922883782493548831009521756722334156568724943514430260486647585843949190120509781709779757988364685919229274363903605006548186456809438049233320400100934556447589168312277026043390315476417067127289612645574798559629702971722206277389106486594758129763346960449037357708838870723032338760891814183368701268079729223493818643634181933874455693258963763284938315184771779044994099452134511531815254254499630982874977945882988556902458761857008707474755848806449545586670952972250531174523479541403245339634297819744500561239362182363045303479968090032328089935506027683770975410309427961421950544295452247502587880519786017376610147586832191412291639080586876230293762702080222969292156049530783538417994045319909891537507134132660078909327350803890883253005079895894942994012503549351626409049685907303849654148839045152566977607718187013095622741052468840217848708061528129018571199776616589942526057644546991387921487548317853230373360833213345549063138734908380107258529698917861522543623788577491180402609725149126240587012472382069117896661651325688099596472226697420264878713563236769970135423135991764029853175258673565738308499466277351791482314223222338420985293706866773742912980502244965331373736196162178409764016897206832012736744073451644558553111786229660464121918299241522113299142370922315750104332314768071366769081132675460182433899140960392932745775015062261320416702116250596152528566406222351487544024701098028725464979577573020182572178305723163344350595153801806684040564769459318048963043075862664796362153940446388876888373307369271049617190184938685275118413223556290877051410684316399980153471468604356340906938060953973268012443340748242816715675366895426245502887742066595586252878018601429908882361068087125596301278976871009397661256835914024174091820383929681927625545150683421732050127617581552500574975395187241011021218076224411395379218255919976026677350431727587229744095886413328972363966017837514818994432166285129507193860202129575781528117606532900043311125270959283627844975492019539418029462268351546130085939111536719709771075925098839008303087977345654272204480822691790333443906370759508304776272793610891495663239549024240034686333449909135814450236387785163981788457294592353947744971535206894619399450077738722196131583151371601043896169189318909915433091536421544321568540406573485079141848682399838708052181083922664457782767350796379656952737688628452425215654259017470671347608508945959252818877662692428705630618932957059934826944309320113165404790280000569165867999107801139711740029889799919193732456693115298115448624695616304996394722896193269995149118739434069120884611946751473006756134431454457979439852322991664859456587723633695406652068368003440318935265989601436935148731574414780693612829453915738961026082906018943572315766996110287254534572218445465618537825417187583476768999242849861244377538005757113525108735986617577756794309491730520897395501532575191151964506773063643487131234367359598032356485439375658303648962120279636025399618259900085776795852713085174136881070610538230928548525453395091512859281708854855258959108247692855519343955005133317224263096171891720781987557284245942304696824144912419629825049370463604454157711885207815570961711414216929587582290163734475243179487598214599983917626089666189455952735314917236670305841921194217485065849918665961624471333071463625121330480546049260811978234477791373409060271469660696525835577769402648504033175723650361232436143158437289268905845063199436970234715431971914569958905088860159551434078326669704062388561644855294538569855838015419956041414875053455435719532822435824608520666822722898253297507948889208317500171714318957605535552030385596775144439109178052704795030326131026026374823334743673325383202114337100263477557952454620128936259833375997342284022536943689151953435836628157368050278697037126876296239708041352190405114763940798771751229320868099593418661139475126853705233711194226715427476463619759501278105820116941545248330477152588017478548083919684690886360014389901866459397465816109794448606939326271704248186501848564146801863754076332299451500072585580128710938881821153597002356352604470236884927335868378983324852021478728769229595315852732865834352824617230323592217830876428792705349887068237917478104183489265316961401310878337970169621151819475978457630329287438273578271689861835069616477187921981150832521240831559888316639057334831023605190086433249233475342348739744780154335077837184533391713154528806962580745115549629392821122634218360712002019088451186753474526300446066047962286622848680028311907406210499128868365997150520872631396021661886023980366926610404906144069602018470537594917091595696701926511625612703868761134569258928524670470580567308352882526723159920732436630617789452962899004603458711504350403296611019247399645706795229881413259789714255109570241907879980249459134466542100741265559144380322588161798366665809074019137764315677011995161838875543790280818573487699279456122097674463084782980286797734237943815676615808706180868182812000857390783257305739291538048936340509518613726477417467065805053673734399344901591182971564711752079920500192059783750208023814924211805999979439542659033475115117764023815571553651501647204274537452297872826139648654796333639714123669599681174256084160504870874318510001552618248533777611018560078169228657744596095624782746271855998509941709984121661876523557721367058212126817181034313370012559622113605451341730519105189580919364454534288628808399028302907760760728449827087144991047118233650517396169936455427450566495475173118973307419555604164456686051875574691623001970237344046904620351706505600089536048792166384891980962935157320215167023529065348954943708750190801400548898422285825889092391156134725509297343280119990715243394890887453179614078529844073130840743251752463245872686119270808107396063113460728580264990311451209766162068260754375117788708593384261917649745568267465039529435398400189548008434665373884466004439549129342075967946671256325646039365622975686647281325186672540300457835719079629956289465288757484570388040908427717223324748037492069986465260268365432147896218192509318823821682069864138512100118395293200837369844476981763779783452792508872936961855703942084421892813742207646840190722113216574219674975892228919209808794409611759443365150561760340392678172439091217194793873686403502325107291501207462499127320618892099841201507038665697200441824794379444000669168764755682523252714050061086180258619384817035956128268991122347506863380972569454637341420328255500322211990327729300461462024231368446428977589687498779499862019633537803815417888281552318683831411485321206432020440324327641463970963043881055413390819314895353995156392069990410439813040556473796646721512213812339892480012236741487661822845191649790154287313195667927613084942447105750296992821121594424633476281842310827586902749986761500431899819368220728721286636668428851245288085877346902118323628645025982648509478855758209138978687761550181405903088012921381815070565460604938611254345254953671496898630213374511962410691458066528415809080628825024056805404840218800359082617391739700358383333575187201365570045105710692629819804956732156334807660369561034585136920666562455451249781766118384600276601156868597281558244139265534491982140902848835559285099140785494773584632444018036491564936762767177776704893849705437671066909197978733222090341553660094952192049603301575639838395983010807532326821077009654347046689437057343317739078769824826416651713395593789854520976171946135192971657412436264745334383167360851357769712791102273935595421027208392102873658867805578422162330491710754673561295144541600361317937427922203202007258163607896481763024957482859787139612330558245106177638716574695149235362770922155608274224383856505996433912521836488580318207091274539671464636037544392657484862622472356929121014697263056098511169921325937584790824918913814405312320210612572253925032987443475602595527729756013971850504163650566285087692162470706770268571248877383251916425722882365968738278720356995599037025366664755290851770652078913365027527537056025701728393010891482664482042316541246989109358461377607388899002726116866858775021372361792819448384216677143387789247318605435243953693165315760740958604521452504855772212995277410313744295025624167604107316786988662400120592900229493096732120872501940148920183034581866472218377178081820057652508582212041687675919278377910189861845971864476779957776950613657227915114928178168536364527817714112967220294589958253768101306278177430167259576956822692273364901429095474095221923341845032208681031314632853320446685416257017437738072325200355434622167229208246112700360767707102123436124911090423597406981853269709246000470436429286180094606939208139711278247112038602392857651860640662815675425423440589593242995438827777557498307926329228885294954647315255013182193778771063346982347674278124861560891653736094833873700726121933622082971260648900544910151903318661873814484150740639872128105443915951312846900609170939956848067615298337312248364162815253096183329532865862764269627376849482131119829079534731217408799957071593006162958657974849383211344693923122987163676955380759088907008546498694388764804506375067702407505693427447260683938075843068348675517002684522828559001667359727525851816678253539107034686736801125151325095852342098315154005094014550586126202453025898598043212466401208732462804463411362457156616168164005981175319762946548507173212332049913626875491274607079610725914028988419520843675909674481782405106381510539130314281109992783893104734927732860669188633216649419948351610500288341901808619249024700692650248558966711226942846236245172091478079955132827627746467366650271642627947334132255473123517683025030621815065706412047829541670291505572264673005890074478885095414961128956671157359352396874796719906693971795754803271074045058751394359796288294376326722852209855821303733599037288819718531408900169975291019478178835260948032635481867212697395713641465243840337743223141558636446830368675369377796990244337093495799854611284918256631716740099389375402374450556247853804434360089336252956934576152651574791484783670676118882545163174232045811488930999131795897612775935595244321122739708798281782202605879856445551399726573382391433037156348082858362393069568730518257644812051082162977519303323016621722899244530647376935882190688742064809925416056606929376888329222441997999781908200561047132593509892775428531005403652874157495587351217276034058500629656486774461171348129553917092400651486121450623019050163491068759176221770938551918324971755690710090277364570342449875571126459104829172022520094867211781951310690985898859596592698017540105380755709765811943371930010552898893663587942681661019858676295260766326133695249014080273169857041156609085680256710751289675669688362444886473602346507298810014066902588459897587132728803459268426633012629823209871634544177505707286266513682942112513474873734385505751364101189949059047790317048097788434933139825886891182122683612120257956847929765460429446431450305606314471772606329387152574022754546080517659115935739310084004860156909526374989152260464963867932926121412057488136026984526049455190902423727386477576908801056053579085615551180763969123451875036163925817056576668904370588836485637611584783136791972318778522080694408009137872348812359398646632135347895636276540051464344315144628583423387230871506787761375885384468968439730478070856867734199772101646023948502198504755801490415127243255882128976722907606913021410037913843680468031299635405790769784501637559827769160765861135345543462906978682535094575955138799905902646417297687875951826861596312953808262759719963069667538699193374695922993166251514452387807048421104173201259004124012446591687093424740137187906281197195126191389011510574701454208398296451654135024059253835515548304599334403542419636848394066312094491320452396462906016527645668676893300653820254789632183603089036057150182516411612129774081584138647846139372011279960736719143966626587367636168807811449423784422626904812050161730021209241492385469423646004807339314195729744535054901314499797001862258206044472457379654168055936921589436887288122233273613106102381613019008602741918307492113503949025690123101747112960533863813239824498758195069462017253956470291100393251988529535243328093104044091544029576576861301067842319744824888043664840074207431353492505674274202808432665799281915504117655339545471848844935798141113325742562727775844226493710173674714173709253057380250703953112556988862828690611842515989349111507406114567186284716139418480792318813885771598471934243236796127143662726355138397225933121527216881951028727023251044157138526307344027632567520420936204429249907636963045687292128572202380683201975979385402508030860549711420762683717361605588608237948484909810969167899665482614325673357221462388193742823293239470259076453317425460532172622951572072183794545390189081528963918239146935232765656103562587378842758109022761855238361338039645518912706743374772437747437748548709353728216467214316213885835762724544541672012342260861304992301860284986864701833066388230245253230418077374224745759472357329528485517124921221710710728106936398937046891758540110932821534943031286552892551514739947302276355233141353084786216923387927549752578077347177185218733500157232687880698347954775910860483479077667712915660682701600410920297283711888162596961450794852253338180604757955748826793928676653327356865182236036032427315034805947461296922400414668935793602670127128829387146428596265132737231517070520632751609699529146998425729191542302817538736436352163771543765501241195913618832337323608077183607662398575802246650774418449547925048568788030485387507252677543785116264247929538182174239749112494193375948356724330819190700898043747762788189850471521786122677594995098443812033331159288491863976657897253049046589659228575154714185686395866035770870994339667526002652115599778876564161042342988472393450758281120322047295307993802202036513245111082811828346652998641887737298156557682450364710982901693104326706804231598924393640260129416118170329321179131420152184432109309884534740144023381016137713861414709804004171950568633217710429624478261087694296974812616482655324223880750795004819701642132769893930917034836267235071416401924221939050773738738377283736931670090094475803036674523700086410374982802235137711686001601369196970155043840839285568224471001187495932609743398684304030497890851820070805942420459566057537792945854966330412349460023679269328082116778354814475220861475244438443323529842343423129085179893004568961791467313226432170375047786308071560373835595863174269361390484884544251041720920514560876100363103154443718235342228076115870633645801747656150439442399278614815572074103734334136051888203638222718745186894271324765620547584113618749821379005764161362157667785238217375885101148018282701810253322251597192980220408552352394108408413825837548369515393122584980093346153394820998828805767928614753207376215028863599493725093905965749424448595458385734422746675071192764808118509705805642923043128511451164242586555541540549499705910241672561564542828505749900501158307888386903022724942581400591405024853297453337268630998805052519209627377253961823708927054394844594185301812266422327041045695221771174813740070764275154771009534288408576904365651571608243474090419530257195044002798667192593269211747275467675048854191651208969163660522873251632676769685289013182768467585703668272542178044678072627841947544319307697499071844643260969252837303609657339873340671648709317280629595842745410281786069720885091172555370941292280849148704215821438777160930201383857208045624677623115696580895083924151586209237294013089475289356802386906959363061972618148916322645418570786863511727999755617301026963839755466585667234487924061217049609589570575129629344497854941100071748694058695058545187821344749531868133355906682685554532359977102726527637425367883030264182776363719653892391295913589508986039571915832757855837857928039180732704316840663580857664592106657956432394602397914375780697416278443564379044714421577235269136333097178756836649545840069079341779883344905808514927671527984532856702348125420889730353562210466608355594182233603201859838771081331995647567250478922068876273918943124011520435188419490336431164453745543467351938086029764022408334057355991854079610537788451129218740913137080909264973081618575572490852875975749409871872197129510181631130973785957610876241565824289834443562241178231648772232441300957253159151757703015379546233874157754615291051669482111483255003814787077671549881612882149099195513358674825495738074447979902945291553100020109974473393473276023584122208893714936844800752826752455066641209866158028033667519712394715355170192993751580344048799464942214074530973777699637248856271292667970794813376045469764875032628266409435112734935021847130899563199321536469388381714053581136728421762711637768714904805029068164573940506774015804990111594297547840079535051263296813874545146147280353929859441698488549812493899488639209336803424995907685980796926638595367691844893934539557075897977933804115045654516450693388993634688561868698709001024312714322457818773028670960502266503552202981007913591104685548056281646556551777827284493812691463839357616502284298052109585457440218058559502304211726839261705119624737758412316384442781691954773540865831795681315467290549751047986210735549699839434079440950694308460164667844958345510094480655193863184906633431601345719864627397978195943905722281031680474530013068449959570300744501825537969320248999085101656281117124627931113292465642631106265151724998008749832667235550694418040796733067715611439640198091017814491726476050569266158533726302355120476627937781477811447911483444956311672706402844600298287160234994859542243821282374658781149506259971587872771411156727146003913916904395274672305625795747320154006212369188359520752342448897716356582994397617345266655950945895492882018423885436490062877307036800397259327482222320235142799343848269823267742680589838583856519556413796838871263145511397996280056857494778921135860413742537251359892895084502885490858226248094400034082566019426950797513898314399479114349735064130063243865073913332035572237292201315540797977827549392708052797380060355181095754364738821784285663816829199813948235243521746618272548200770571016655069554257958680378467270127200634201673904666618839852949251837313133382662324590580118618171724950107600086063592443329222410843035950771662109527791223153816232584351816482907037172642061508687104348819364473072986785494082452214963050395557694943392630288596217484926906221667927196008152484998402531600057740113416875227470605545340375767199881924924507613500988833620978891994326465535052237107475368691593498176625498180769232544606140426917853030935400806657682188518992921454826729021905246095358456587876770123985116792192644953600172481099280960084411298951448411252384088231142008177370054703287236231342526499779836653883396025599721924816360565937995193138123391885589642024456217691097851950774822812891337681485329046552156765761490947469073795414653259099654248977120682493375153342199032968651894528089701845276354616653355881362984418218321642404336776466768344538819394020275618494047189263943443967109555741872417434341885366454562144048940022262129778621484249164816736230884774969946946105522190286816375063209824379871992979414804887899602715496787246671525804977655937420527145068027526359609319116750016406798103123872797696997989887381447597601699036257337524694026640142434838480828099257618604099293466331631544915990708915770817529593131995705714694849970395541388260435124844589804664342357759294702569591676626632164815443930608608996060630896685119020324651669678592274757976649138644081632121659678642447420804479719565253359263957975717129610695629341363250053774442011509736202865326699885240950403400223521440695400291463879423236112940832207464749503484219106656449633472236884206476565815626110766157751021948184537218682856245833492380178668310359776624245289866437680802642832765001244382668968451745959696152187900713192717695750694322541394218928778995253576936224324934515569791473083530857223559578730148777885344104042825907287145869915919077835222607290087272602883142615564810831109691464375492930913370576078017133736804717936305890732609187161642434196129272400527002373505302478354245526865019131596416291469606877495621691335427243639152749120269188634356810502558548664050879895678555877005931338970472569662675031681291897700567405113882109270949396321483213989615059347911698909247045579402478168109551380141613432390666692517321453032202364490565527625519283288020149907046294662520259538246627725877102623022188801977664834379728541946327599965792402815402400775465782472853014936664032920624894566476764032048790861174321298580381182891825446537492480574184803827778305656473953578153856796839067986899190380012890583160585067824802838249443853771661670540751782595783758550563371876981046492861816710689491144562447223856210538223883761930530988420837042769682455880683404885726941720517796509885012738669074587893386908772596332025532473455892955804568400076147609028004220017239215499054331662677486406546509395803250086111620066007455461284447828306532338772933758029892787812835439757260776778931847225955541938780325287504246271259274925691954439652162053687190483535606837791712206189217415018481090001969176734995268075262388408515209249362946563797669472485035905490808459672137599791555146676256564208996275820603691094322911768783360675532509986589144817126858288692952288863761377520055098001221594101094007799580123026598999632387229069372977950520702946900971066187546265398178700531128287630188285946268061940271629343691624345513303011105710547303106245305881565312197100341699589554337344777674632210677821575859174936809863071363824722490567064275382931952351281798631762813248397541883788341814450215489755617744341422275388811699255601874682880739890682060002941820879323934820745440392924513127966781707467396711805944945278223406096017471105099665555499390783519580710589907592992987795879767498750139647758547039642918482609657057169243394034197048440104665543097872776237109310225351838591862605247392572705636114577751894015618044327749115018230203129714592625821224874205145513453583515981946647175132432187133586716060686297121134769281330362223654574467661892918977485672389797558936335471769846938808816508891794719030146592225593276256022480497444268712670001259699979134708913281266302852062197635306605597379034652880425893304429408198296610932596182513603797192968717822457422616371451394548876313788363000557714779689467737661681238390736776472955141716483523436378295019218020682332815459652145465187445000567261537310483321843643672099007274145142487073783703784633068072439893445658968178749889731820333273942263507454786698228036381664661386988033970333266336251818096133052660762141249008325063059915277053756881865171698324876934725943570709040974061302137658320336922717466018820645356100528597141116305062046856527948837803831396916456786455837709778804824154271196733438610595802988430166657021541003450632739337923361048495544514490040998024764981951621553694772802924096629023993088903901961882434953480430866291401354146925250626097222110677241859766026578128433361802435369206842076610682284967069801575253495870719515635681706785695711682220731435554578435475539104250842180128891112408356259355442438118014678186739909900343712526568883913108378299207160992953031817167111600953083170510011318806923135019226709116029377663128588619063284506697573595181817805671302856270086179684194791846666690601013600681837627808323307744871622553076874492824150555540069905266148373818110261400015389658317583519990581446696190813670199416036828474541495983440186690569610885140292463717051638651774896278701638215550515677693957179438429175040955337437894549564150815958491848008233032660930444714689212039680320886146944740408964982566132882251206273679471706526423705190897845665137096241348044351046203671878075015758397688105695026418356421933179013707040522186959046908704298443105683314356344279072336432984310526083012802339803227287818316519753486962410218873777887212657363098393298600013395548135111424849032950407267175433765737747668438088858724827105712638174124474238139211572715793433230334146289403159665724381465160565777796362815012928928218637538464159370041045014978769375319943258799674602678059488715997082432434592737619917042178305767249120160430707632111535548330909913391375724564449327829783944074887095780072889512165287552792135807542932464790913949192166151338396225664933616673923615682016141204468658103761383960607793150230930356974349682102741166547543780401312004474341859920677044226844374510471049198806018409806656703243566091310714046323480415504874905282716983964909239857240447074609235217407503481381851903839895017436353110068435865889504763025406915218890341001924205728182692908385015237915845661756166863701400384691163083447690907866780046402298124290259696598419346590899248608742069053013518329229934244416041235951196022459344908824099836216336221547849938325394400136375049107515879634622161869147818652931530238631589078675526353317076060816443010160544042640174369931035502401225266324198817296109020123040825545975624671712845328117376354151836062744370425818552340726983404593851719701530928193923089980486834350235687744226434068488596184688435868402314442869116034160868437537887167751843568020758346566647561169445109247203887533996894351850595452294847985123340000577373194384967540236976671253590677273207820619020788714843700118102441243633786798243388427906626781311811375074869384676304097381751147955678292711166292180051476412517250271602440876739775125888543139069093517741250209435380349511764610935586581452054650150248803960124559790380218026717995967875409033881857020537250259253134655123859538240002403432717317691315172727717544631112765976540269035577982366662687700287543800246611542933768454212387514715044217524291518852863300964053140314295417102786904460162957241144416080490251093262884661575131230357281280665016768141992304689308795062943534689639050673009829015940923228742437731136106507078484343302086877198193698807646782311102707564406587583194092566180326565802041517403739850194909310009686742048685233319969426797674190874004528762339701581609913817493865657833848529265447997372484907790476764384558762458834417465629457396420431060310440263897656757640356726509117263047898919271871818184265183095553246043447894123035471154947962184480570355186112549428277837436225931797735991884092364365819072275438474233267483438984817859174038391789400858043355145970158111940158293037105496330673838296517018357649834456692948078552731679993083478862351696237919028801709001907831541428511530618358680904249771531861351470663385383814527958826006729479005080420847177037966828757218552198807806032120430956181494292447288248848181124555790661882975334627060723759682333491205300927087684668499250470727227613741474546150184048519363737458099573025282252203555490975620403440372662709104537040803972046968313151695401210562268557280598279825080691369253632456628189568439198977706804040143643809653419623626747028554879153529400328984806459102942153308023892204576909892670545234203484774689511048401861910480517336464540636483636243569760527791807571131411875997233235361946002741346513549627414116922805855129983949889247677708826672632319124945959399644863248405370536706088912639247555357269216340515398021700115790621905755817558642492072743154778723663376620198935408179730297422268997967954391524304525112650920538850024362833939061035980344911016644016698566241847864014955643777881918844234084413873962530760486194312785979826178429531524860517829496104867637618600308556646352229628583723773634861409779112837024780086798481627387598522457197685972568621289035383992530775338565564624601145172640497054855193657613810335584767374302142148044469859051954680346271949199122040859189380719545050782709742223911681520421057822052865539825736089641099282130755900343700182757680785674107846120189670493587016670970266731580641443506077026752927711672030684296387811513247082677500836418765506286393117055223414226583892955688397108711450904756153368216713064128184624192465207035448773159607391522211055021437907203027889551284580951583391254079834453787769042866927942560088450611443161030818123968974095510541365211963145933007977867599014133677687835799846648080968280917606921491270595269485616367263755070963769057513073863272184442872023622970820676428622256291693582836492324461188021715678302119918302524145012435574437212091130023807363982553837400333141306903624157446827101191870168184618502876847193823307406805678434068866863108871145431325521257552060966153133938877826983999589514530126281948570860300664890407878531978090561291952410344511321045088391062913433749758857239688240122737243507355340679987187208533780401915888976014458569108633974851863512999592443230744990830158287561012011952291219567195787356812030764568735308073709999321963267404757883071357810321910812712992489103170262488636358462496287927583389213549513685845500629955639283702134311432900140170880189545638055217995345081608593530985237618912378104356729256832866362447385653329026299268035710291821927036314329145500237172516466327368577836132289714483074285195613619631839984458679886293523341703491990724333168810457143718171971498177821217784794233738052684752510680622700089980050252012795521263007313986983920011045394891430203854003657069516209828325485843336343491455883146296137581051181399025447677662057595227884464857637083098390026533681398600738811419038620090396936005587766453896369414786154858680445981945896658793266802800432285352917245518579503648431932444568610924445316938953308160779139296316052175422497586960644225077979138499836713251353205575856873632092660206098421131896412416997066147036084422715715000877713861480029111634164849270775621247729305314955349629714227104953974742092493699752388710116494788983029487284385481532668345305719528294359593111096945947677812861992979087015399407285362701233644129831099924636850731436189908646212961650016922918403071103455269692751297179822778653700836167579821173197193403295046014227431096619082763872313371445853452598766421106112499660298580863568385975723526458871384850001214991149140514115963941907214125379253860332826891422315612860185349566206988634048591509712855055358618938151848633415555047810347571683687168017389148078598370577600885273197025062635242732049109535658434037481909335022986428472678627766187466495511294036691936359807885038195642842414578758453700716326504248770189102391307218109080251274349072430252022450884907464327678193088584154931524024470526047096127545282115999898712491936329843865808393053509248358006458820728572993742849884887012614692020917497753157739140317057588469323094164286782348452473195276879752355595415579180586595544669580930428759798743898239272964741750130891884881929713432768340757159156358578426020105810759134683025078056633791157878362409043347345176927563722786332335357423556017501867298547491754670624559864856956394926203818856605462115626647270707481207945045491678746750924554326406971501706926860229187917487933570557448050021025762635439723867488284844949667085415416397929359611379670334673649104138668642266354248397753175035477457753026833317335000545761682089953533404093570708642905789952197914405625966395377854908682315330477179722758914525104970951070180794056603780906295059660909020353630410347140480091345013761048253254298596406914503355339504547520069806461039918305981059435112869501244157716258775768061995920518619842666275730310597402428830480615976346682581591526100893148359504789646329642855652610413173695187160427021098586824807711723908501164788765962740484580736583146860951578268599866101092522017331916510483901969722773471990091279795572151969064429444272114550182086570294383011150906714508724949287558248276225274653329734925927902104832572178095667139275778849946392822111781912894080786432962816727635302778875735580067932132322624014298314048940235198028398026599742957330992725073666354696962338039390483595171724344028677813161352697980136414969129795714869828423568831167001180642545864151059110329010471904107934949649683547387846137605098301135285415131223748602348788174177822131789837574815280047031459771593900927630210484320313991372035398001343481227192627898150901696001965648458136715383591583631835646994385668245616151874326044938973498986760968770239948038111431516574048299411987287966714409803365167957794941331854967443049945551665633959376858440952640299343399779445870658751093475861051502570661735749028418743017813691251703741740155693338265548214754676375291839209349051871178333943746735252508031981900540414196959655061901177275172175329201714172224134849484826289210707067902966495552605961328856833670395991080286999219645106087591474208627151983480973469686914892019595203082963758035374185308267340855010598153371480757723874375340230926874676020919693447449237016041367116474992194467304789266970740106058510981497010370624114097301980308474137718123033653427363546896453209128302623859885717931454076226080511310899857220114135569616045971987389810221519936629230973412189643673257193472624156800948963385652949569264297365290946381844370654258058104052351035031622090116337335268286768571834262786238715486180297323475453654785558052948489857799107249379634088343587228604049767086414337134926041542848259800322024584409803957894409349630966505457278945518878769898934887015130336413583157687573293168119908048635016455149530479540808338350753116670083508498156769076028951269882542818324094957340470634683174881138134043936459965492251019923916276171040224102494022962588838919141085283997300855715143587045389274289776060850329876032803979977358081531400622370955426819937304733732963655971662073426543291850744047377392836125478954678609829133219054223328101441281203876366831104426524810990789558815748351787888567604277610078038276789600824816875480028657517626212104543198172418816903291884714488452389464365760295176605776143491109249950421740745401355575827321049303667246798130174278624423399798851664675181366445173538488448511442607002671293074400594608631528835259867269109226984939601881255519544470434880067241227068121922750643502098691866437802552727819368261757106311391401665372846857389655578458056917437815459841801103433837428504044402394823669133910736740087276055295708066805787202443386800208568555667498145494573414148639947698146802537345297484701112096705455714802158410785732115826984534971489885531181615681796860370904763809066265791974175897819191188535474333396749544522939207318305753858352927647620579869916596751495775292984925085631692302224111504797924007361750785580164575562870085921928906585657078364298245878771509445722354465727123171159735506261213696034353457206894621764344781958506587058144407937726560679398870643293424983064553399578317339378432678037684377924919042581973650349540022092771236886909709277999060075676600611599469948768130936934794567900263823496405200574425255489336792570735069877745420449151321969859736096736066603921950668420174466061591351695280268731799082332997590731989666386004912080387115939088241368062591759857944724443337160770253700577012358428807083736241204192276375109102580477542071561225052126000644487529577997329668395014524252814344281152944345086981458580125940608650651298934297917157620052082956789561791978438202680477639101888077163049931006333338351578076095974046550498322988548778236919776464696255793895621442313890728998575865528679009336342797951975305910043263403344018614669099372248093038079165786353702194601685300580495429755774353613444459188122851543591950525073053332371851188834596511892963072828095993842360286136935451700010263392910673309772137399044308121660618154713409906364449105195671977780871762732036933861751275342699239795648517870362485908097551042571669727924480836968089375047886716554750208657321275263947158460236686325921580473342741520727890160961115612044070521654718919672929986790505377814444588672457157360873937049565008109780376286713273002975696283231104583167879358739504638108794045748306620227244097716813222838277126911627892196676490136013257421094392786700674828627470357271978789888007498758233305138036625251120375786865302357968281849055850300342874421020161203525564398650929217521186791325186349985436454587525782283860465205585457916861257515854964328199148066997936806233438840483557001392107118993804016707084232083679997844801263500245269254351321108550589329019342797348599472756792463746604437607175473384006879772041972691108271826961801107348203366856592293091704444686131811509643277920818063629542115519136031096287816740729347060681000081240373351090113576146325135745640415523570697095490679966801520115358202398638526679440841692478984068402408704964576093915756458047688323123044436366924953750769774296494721534153106008838629998720682352073236959429815689249319235427837497584504346704785607294188131842940601211094905128696163358798572117047525638412523218281842051496984455288278286744790651472382554737535507462957945080612063883277730674593191675901557477297612759727618366702784193728789633258505982810781351757341943101859979797362168602107443491295901507677883779610866008661253089097143801242613387252084466871885111996565763184128393674042552487473338545041637835817229080600325068718674816685578796178395468131811719162236914537793983778468059556405589562397874052098037324492369434041561325269920361833310790395979751816853906428071651660058377562021622216465110888085044237417362475303411958935755110386993481856357106285355561057273695263475684941750043011521654029989008666736432489649602879774592727931654385198748912444479389174896155915698084689881268035612356213600981735511160472861917795858459910642171050431437359550172004800138624000834241312210440974378711871974958983767000879301811605274333591933587766792445341030517649058979209474489805297708265429868941762981173794206872109177564957465406471264741887202979850302568005571128066357967868003916548113704257117522361972747273915383317172497011883496711513615738958440958109547840113059889990685861528884231141227585220386461553897962704252193358170651477586530480997909867859830527183483858126339054063741498162719706193115175882725205769303115549775634172307416746904242975110614816015177122433239087196083305283133402606329721855181523110290095605055732682830845534336910386637454092509068281709463409155898451385311113577731401549689282272193769983751252052843717372794549779979275140023247093844479228993030159155729425235674605895671934157267878652585117227444778182875688807076715389362474631515791399513429860244168717533667112395643359059468823809393148556246498466348819714377732319541268700267932777326425743291429280682635286828114523231672536442690351304661044382656244893460996273454457340074743873561673761009660565230804674077756472807540295241243622706121811651740757261951924755036697672065225286668352896290685609507329581370478564990489895283214348347530345870932176205953988896108009981900996024301861784680154383494324478043473612780783749897577375166502340607291803500294583511103423742677982819497956183725414365304763962364429030998183843036585463300012552186522489185563532788373185188834107165032296047732328245043100054548510812293232831956979333824365085655336542772515729630043372006222394014589322683439444886266175700021724675718674327650779592033026199979646874536318069491975235294492343156234369589975842315087884623347019626137102512412029857895909162354931581624268879670317354510950940952396478681653296888758162282280735024804938938119778688067444420613331007177862058910877257309144361737119802674897250928815049036233951728431951149982614345308356266974762463256161796532526073594756631023213566670068708099232695094622079278677727337783664836052351480477401132890211486925729044828148665280717498097708706020624069812866211992686037255298726833225382720833155279450652859601431200536387846321521227167065130648625815434915184316597920243368910487726119943824121356468918189406963079677535496383761374561569519227546299514756703409540869090628089747815862415095469689208166010601825732198868566949061289740127203553842540906351951582498663275267837322276623542357919332417903637357577050759233942183256283139852977397672723355361755698659964217213812823965109738100808901523391118095076490464179255629459399032539408810526524804938380735851635047468610550551211373992963415933237268182194197700610560032904647696845685642851558375895089366461209372151734251504809567918328279773224751406679202024148794033381434979068149335035701412089026051570036705413056854184363287528656707463113200889534622081658574249908975039630945219510654591479823324667603829992807673810671490799879807949286681243775471276978745626441156273686259679108498551477496963602073151934705851226039739286569720282541782431841065166772068201982756825451301229462845601483684115255451097415034340017427141375202515570608551164187815140382799630970983652604792737206453642952939616469749381469962040832496047798594668625505305953172320715900361920812118126227960853025334848290208429538099350276284931718947085038474266873398863448850604808837540083468788424084424650989168905979588475578541509362228137918944984952188642947930866991452163540063322569990446930776168888622985225260328654826862887768895437149869158897884266201577736443350345451752918890480784144566856269293202932337381248466960733966118764552422085449924319100938303867723664752334778766330587341179386261462553277770238306217281029470928396226029771522486854854387029109052257734048466884007343359571190572804326218621581160599204257598348689908353810645574506488665559517023482681783470365828736717432140800511783454531402148818681842354560042217940948691413308328069194142195737495654863009380119148736055987621273235262666682655512625840221489682362762037560676130130261726608904273010627546095309170183478499191788377747402384416620876631149516992700708126780561873495000294851712840988930595093341671623629851781505133514157389922987506780468030383554123177341813584702625109127845889499653556325283021618834710128669789866871105362004007354380360491280719894805582404693231361714277474275742021449276436526183963575532059554640810979308171829116406056106356312009060648519032585987621182815812946792227837957968161989842356737796037405185165911102292045664698965183298157270237782221145586347945593346684522987911969463151013196686704326674364803029561013748659686767176985438290287109530750451665759475824563999364090221528323743756273879140436322968411611310894809632143074654962678429874354045828481766331335980867617192562903238758731325390790258180186649274007806950459710231698287892409764687345697047957105100268365195168122561107382672584268110329765171912750756062694936043806001301010196694176680196811533307842894972425128549888052234071632921415361954878549402552508211490338334059941037032875298100088094609447523196643453583327956815513810227476918331304095228917761404660654475296289118602596720093374072663771426588259541814632074181399354814836343605067056815922396047670439908741713705563184716706390989303756393732472129507326057154231596768012114385767450632102973569449581189409030203074211785918313229076925762946820756330017315292126252335402123760592165757226831279509413715142544480410786125997893803139708910855776062785299294235825842106151260566277912308360925732729792229837013604006659881759994638402527031539326945964846834823709508162689045040300714299967002217922667773375785561524074052811730574469647093400174445934076888345653781900019518124185878363561566431780481946677056361539721916553193353555256095147070595911804401779759280093978486840719278549559845261995453533690086987369306739077725537599029169568525033356518697861225377156181113435649289279528570762387639436749224961862245866062683358386672023869043309200918570623036213781285832389496809229330994327118098815425289672794168353406187030079846262197653317586301217066458209048151191470584341520214217046168952456426767996256487261296080992128924321327340495871519933128861975708905463932369246780704503453527513625064060768511962488841511856708049822323701563402171657201350909614244818532968041978869772678601540272482010230999370181022769612508169811648427739734872941781841660333084312881300265905303532763772072505315236329290215107359295715435466531644708847600886646692401083718400596082001548853438471896283671054287026037575669033132867465356375859765700899907193674303351223720579731670814634331901220728297212628017445732563455235692901558824137495236478467869938226090856975142234441780487697965405866649962772128470880069525465860008910154460627248789856734976366107742866637542916762369771950971477552925445951060590736644971958934123866816797987977426511937402036590862320120364395516502400874372481311669085309381464015319319157916759899867467029139702902253895200621238219650436079969152266046578182691579044377710101010876046467757716689052877042390699084819614738788895850489443841199209388451530657518237883995665627211221418842681681483354588874333276564089010552759441082064612675839719050081802019412382555656656726293708428856434975288646621677790750140940137855459507989641156871657931155347004182739456140701629485675171126372484991577680206073270943508049995366164728812379496668226684631381648169464426634604696251527603896588027493802198596860817070788708865549834524507589407694744746668509160537763131285719950042503786407956449994486551151465001633444073787763539732606999117788683739879369265322907743233252618757649828927523141770363201035000198765583500784265477074477082635287820946638042843090088688656214265437166127008724353875342626958166444766903523898803964849598025822445745470643932506016860391612031158636105007778958885670096336804816129851034484790968636158387220269361397216902511850805118848715204690978231533760041705768620287332346231453334214043198057686438199352825459295216863771946540399546497967070976475430604406002570284543520849385555754157913097351460266093430906028790207033306961467769908153310011779117931735621687782091484049831422023169764014061775097006639940844828194727679670344658919914912054956890566912045628007562001092705503588074647721327716896457442694006896424259794512376068940137023763431810086745504646226084929005462978216612037853281939332869616660700197693381052084326404319311257109651510713201192000549424427848464934796220316416015638508412644991305750800024167396031207952605405597933821295670881738738472809229560087371703194469979723074543291329531720560755895665045743843276719881248292446162578260156822003522702052309428303427406868648454351386571758075754684984720534747568676235330703177687406105742920555761566067605520475157241537732426653596915762050125065768112166082221664328972448337418718649179186929367511848433888111478767079019998964268349683649028221415716537009549337263179967351004988191602262632093289504523720258165056737927809625483671409848967863761648513328128497148181615165819614104196352272195802362900245953953958077145226483515681008672784444559651686939830790498556917241933227169147384192267585895318407010647593351371057560291250906467709784571111147666927137649670552909379418226937103442047195475540920102812643522474905766867454578514332460420530552039797073215808949599547816278252206198113691754268333280378322809386529398246017889219588886638129088704440691465832977200613128033464120877277257614235822790209001418676649730820619147495678853858164429430036207466979104331608718299539662028123959461468528925084809888975479430836728574555869267584714033444022943653451548998134247431929336059459092559572076219131505843366034605592732819111899183782421803142353599781173508960641288112464222538644026254764816496711785020170184601744861918003504384172177064380237953673780437637890762929550076527372081917875701577307782970968097180854230176576062029631787137587863003439486477108292777794096101501452661724805220875044118133640775441139131080251139150858107267370541206552995802704398768959173120558680605808781299487530977819676626836484272675701475130052162147593750654740931518991229128326176818019051119174520496790366373472989736788353670303040165924809918405372083123761679228233103821865767224021580594664658807488311261525250426803212787159014036451182650651126741360410965468073268257323263909670537510391674964198888023555114402598531913023157612378247737620430546545130983720160386494503180358359276158651919747389512111478812226700006003053059948954868908480975940170081293250821087183613333281071712983360084732886064629650369842230728656976925209631591753352835190193173493287803576591609047734640875278291159537575260165453575738823004826090867222432715281618587701185503767754772317864240478451462904197539646164550878056217772286604535389731391461033879510108234293298569448866282889221366025127744081525536548240484259987137626529916846243202034443997887236986300053888847738408062277775752873098290936995768871534678875170210520250900168060157008669574851123285294735952913138269469860997251746207455796242482631542368370394616250038091850864108547490819620446703448716493776544677482357932808615585573347360977661058379813394484540334329664989576683030981141943672553922848958833068189132646526028510828267008818695432294474187082096703136278250298085147366494375268605072548742537826784239685241695510272437122508363898084084982562371948637349180241142830553098798331055540745447179540515334947779602974833553095913941856244872586155881180515429664029245008565438055189359469652003944743794212306410920766852431124806330201410167156945215736781961153794265862948289480547056740833977339738430549062350209243833568569520726277018003025972982159297027396525655209805576471536656863731161674843905727660784802111577277279307862331983814025175746100704080943713771019018994840317175735400321373068748842164100551125778397677190126077398951900113977855524410197807370477460594000005416041877309724780634597021845647177414271056374411222383230347952110294164828556689812653580568327326925062070539780380725394034595884041511545834230125805053964310404781759371822657771581854253915764865042535775124569702001357810847814928207361865565063909962173613056683787343229426188824490550008912755312322859531912706683288702927440855516868402375218383754162484050626316493155893407284660197890554452063704425582524151833998456743866634535664660705944464028368146741621541883948584009181185352780319594588322502831076473353900618247081930452023894778513903238228395417704599002615424006520819012314117327051577263366965505373209493629944367267875859702013381055188948961933504387676954306673515609732510251481818486853995721696216414745861634238910336716093035112583081625787926767924412313543900220676544181908387944045930025764949342816893484627848716994106344354219511809074513144343134297568412754421160287328595546051376102199204498408271202060929693613832830108598882080209156937809562901853950899232947497568230355424055538132609147551678766010275690546139541262367110545239020084374404465381918691579956868203400173402056774030099301934224001430783484582314313654734991438929071219140225464536670272792761038606141070493054391318476144962122520854070592247675230638239707244458956069633275785974338131673375310391269967379139539377825426113918434544327688144034051951634826869938664679676380389200311300668549135922042133430663904863469075609839167991695698741839069443289564840693124725933221238070212940558761993586782749010247604423783198447419314628028034176461306558952879223437622966905373602303203191845885310315846795388958025463536546501467332587631383610019470848135488092650682411777681544857869245677310672771829599340451840052612384313413982665879640974755724392939616693653396241016442101071817858176480618543082328329671536102809092463300154796697387947339084643971852972310475707122114645559242586770187647225861695465567063359853828927199371276520851234494043848391981796335683546926205886602920614263948198022545228922641904108067667855543220480966527347789510456897942750607943454594425216286322699020210519653843131781629766801032159971607808433381653782614138060410708393081908919553882619667766472794409525483109499960918904224554804481244719886195918126229448543316072667289898929049342648585793071925080459783392314035820467331675252998257015697995502998615529879796357044456234571838031208389485157110219899391667527586134720671982138420654831521693737080561124421178835680882839017292172320371150936175561073167786569690631749600427043223479786833761713318171670684212356160844259638175695488152992513498238096053903911189340660566832588796942829228754227736778156439855671905265534995730427413292961788517865232393703751124796887172443059544151339072508679769392586640032953813132125402470121432377343009791375069797656373359934815850645134704258677563749636563019514078418146110866567285276673645332319990820084059775651457704673362215705920421132108519608326117888127169877647817002284925239350789349171044584376951132432193550659310648719352232771343947500719094751543246389381744751781753725979034451568278859632075099627326546252501825915633254756045284749211532521771313801184425842304404266847232073109645871020935928998089794704428821040816038254989969077084397569556355486506111318041108735302186847288120688405621495767757816098115393412023011551891651912970746364928131756101374611100635476642375512580231439640935323678162330634004938253811036698008718242443817743714714592608107261316621773238247358243955788072278381704744180166425167793129211337750701111362630071426870818679847404392870872949969503962981683612077044940872321402368396682016257328165203518654627180139913796645010801185142496309893142146026840554729012031114401120334253960718653793205039562295196970117772626499599537381010679756806264411905156887024465437877071955108380612740491145045211685223291007325505308133935099355184917455282198066915702434553064182415541045713359072739756993918098327424171390314550050587855633403999371697592973037495757047879047264177039792538051113333866880553855141444975276329318843576432762610921178744404428568204881692996668306486399646137915181024092002988959889019501352227050811954339289470010488184483553798913417488106411672538251672132468560815437382824515677039974455969528733893325599206291822252433315930924561165917032224531839569336481351011941159702451838102062746792896039154057384688948732952826451881116177261276254794920555940124623310712115865958834547872723033173217234322495897347824936484250795104252105448673424156889691692963990323735663306699635385739768111870366329211791700120582567161580832954217258981140274378231550949001952996638211684777598069542107856248353007582710246859257613077564820962175168706339018658755888545166441811460282165329515906396551347514662773177951178754152981604369720534690188033239717418325639625902758500358928193354689368172933602511781696594204102937538377762533444632979403859368975519642896543319917776319528407596307764776538588713329987933273724798255099216965424559432800526677747477652239713198298346103068650656666285948068063613372914921764795236051396296082292390953251735667430285312481847719849184457446651144026354901147806767356445336125771584334553584008021163153932630360235974115616869727634969259692393724280004987014194337522561204243010963909026655403414896852702998741936378618451200924596866773205767382112841924799963889359712485671437535083073950719042572753777844215517973954277412373837237717739488482835914187802554459708839916541007157410217506887820435214112927422705818743299644489761723918440537044555791469591698124876339613459750827508950087672301007546483402706293339331495934681546777925860016361026042844492412762246973425231807615557688063988642430049184275666062564616597050910604999330959563611105607278406585295281486534956725367488003973349679218247156564228834084618836651146903563588010468262267359719043238773726835867242815738311923658899009128338370913863556267767243206716042175929692070354665669070479809691981687510981374443075463815431966799869361695398850890116294260408403444232049596097348518179422626661690485936511259611943680115024378575547737042556449701627794819292135096875946851069784127234145881328439465367204290974190564024457469815054016848007360124266426533235506132908232651632624713124151138022362731520089981882403907437644818196258397955642178781043192158261951834369433543992819562684381632420867421761600052986049345446302260568693993572224731038050403724691884524067296246249410976192024160868597286085485081841445334092820987709903981744190077238541969675813738361405756038784869436815207695095945574638638608019590246910598218512240688732289274553803855900768481915282118272747455386121848596030874836479507506879480562267574946168714913942199906581729084656080071519738698325944059609791398690428592510663537592552796961476920977362406119378083093682485554097858713576952310853932241409005488514288216028708900851205477475563229245777501785358752367223469503405964994352527488985240516436415643138207050879662447148736862098066264829449522278393007848885450422325976506619263150463599478203726864990436652573182126033645110510242740425899176141387111832578625149702102220685138291563447158202621027008929184610254744801394757115216957619005744927061168298910230305895790304871142171294529141207725957388766080563401214534339936967419315108994143270178268482890326125552659787809718066203142079929914311879214802783678810579946759292485935582491488533216638810689673981585710764144648091810852049554193336469966969851687537804083675480934323047025865356203659975516471981299690668444290868733857048073181836510591097156885332866182277747569799431121321522003480591798003690524960007768205482277378967707249402208818127367454936945488686316204771536447963902986878491925803268111639370222244233078839063447955107390046117332683500808304842011880306664225296513759369051346551624053158916981801350565745793630264613192509531129330283695125137386099417483632625566822248810468318771763901119319899124763145252945511250276577763371817211386966224305995984812458911685889912023979904411107580335072917518426566836795809461863131987986001560640008503104929858835532324845435809270353647934188917962791890577614739773716925194902246492250338336484343441275405354520948777711812166582466846507529538563076901768093829514593949133697974025383890466690904926034014917005849362629743933492659891933745920524318752315368103188136566277770625747058825954501305636827468312204792114174806191922076576006644627501266799464740367107678538170313730776097864577053823855516618519623045096529012408379605800023810250857025930084317767463700630236857826392119300363335014097148762013916201384048521733424209868161886262717034186972648023036066217514313464800767864906980496752613200954454812080173354529637598138831082708276444892957743705173841638839374207363018700166125170352403726408815597172953393490213076343847098641153999875824965000757810877038457228909623081144874185052422557365902851630162165606398037297123731233265323769410014576720807405944366740818341268771166354618180335686824660051281060630576111615278741619249193062561844941745181239768229796724443924437262301117717399953460025039899648670433178382387813992525907176002884408785833183735066834465157380235683994623065900213817481366663491471373803121342633893279882647836417305263365363914555366065855775530904826585685288796848742613426829353960575120891588922265041330821335472011476826934079656585283922236124491324499575263191578100953519004918566348243232979921480862092545004518458979492836566611107039884885673429455189635285120267482274024985009927105493686863483927244291233028245552909309175764746105252925057009525044443594902332998918636123815481332462931738439094503567345187224249367038957111050443113168035608165670543685146481567612855018251389552020726297408267983929478858862477909330470322465820516326476616161433299036182347589325527797374399855768464904918335300818114351690023639565072217194846552742498505611925443733540874176241163620676765749786835198466321808980269549173158679083179182239819703300825637125828994491585851119765356096020935325348791343244962166970902333077515771907874713319532872319948054625521851042781117678935019577118826174983041545779651447106699237972196100167143646138746018472796955463004813019002952176585139119783994720049880270608726647158848606742266466942722390360002694198140456876418192380418805432945378594289889382179674451093776528201273050268100317409069887982062853962102991312615109234964874868177273888144296021628717333878246207940002924201085521219935165235340549233894835976296100254975119051613001028628921235924950520534679358767412696164470820493404056625620806882074643206751428473001948809237521160709958319069177896817504822823487406771102698964665417248904359700294496694302338836245200182305254040129330902646207826910792806198816679332202246930656907227694489509257810388449029118785383010451760217956819282047006382271584397197270634350882182041620926318546078042720478822512432655120396174338166140718350214986799373968720508654765894344012954884682846606884673417938555740213594233373163753970808936909509846158109981606913980647649341145605320021629070405952821572108474243490454477285306516456421707863176252519643773368605121593748313785354196615374615335207136320019844786925967206433059316127496676032880508396394823517276540486445523232242599748100786465183871798266769467693666386172851941539290541883464896402271666669430943214072671887811503297429514049744183689682696642165380081895432646493745073438184935813923715768672349418568365309764465050609919671784517919482698216479482437010344732499095105122231578791162861786734024295382811613507495469179666127776818407044691880436548515539404760815879090715158537703065004247482714042899320087534641234406727149157884598694414417311872064439046889354735830945428044039164489928776381787226869287803082399487550778076819642931555808370994473974083355472048966652511210795554302730838530849792357560415540456982367571494947674553963369268653307138204136180313440483529605718999457286769046282086032888017615505922410589715472399461525286784917320462116893503682332854888110069895540438415067659477340921904025092679826709835788508712386961705284654329628372088297487091637800581042877588914828228932406345712177079007805338414894205509086763161582268009137456167213311436585977812481100515009772415489170967271211899338255274981130038173171882939810255624300043341313325049795297072036007854300801862388105177586240482351975228780069383091397210633023276387859035996745107476068197593651011441582208500729670161995754323520276364882376489435378066898173352892505000903154037856584848029418126993082750306463842173266955313911221704222937512837117430303903794568167975007786860549822549990801700038846151443815976947679445401474242145616072834576481477727782067323223424744407569044263035877924537727859284155737427165866354779668933634852773993664922404429265412929827405044086296757745879147392406630947059628332019664142109364516618081805709174207133947293524116733920214748782767432095417156526109818429344312075144354054440629023784964358715705289133895270769740225154058584483975781748402744177073257062416502417867914513060733742728612199243170434260331453799295699937091604806299041424827309349058696736909246872527368170784122495089422523588549557787106329049690361925847477101683627891535450468376466874912302342080558533775647716440330704816693181539154850247761651340487411607746667825807214472402855417728826030023719402563840928349849143396229777769346469859696006432629062655110080989283198877618799070212437045673659266470183964445049961782689689100904576452568308527909919259397110161345732643968189023673973946652453352909708737400543186845871255015652166228693522342568633524626721334641651231986993111522211927756991593493547047191055192588812932402361261617689746551480151658095619047761885463908012975408308012859972811495377800829493572958257194081389274001731206885886191620664556607922034596175451156634282703120121796624099863032267834044473710226705805426651016212095517433225270502029228373373432413626065297497152375535559367409993649862287955165863877807567674958029800702539764218129392416449376455379999750783622944591758473251875411109323945366083251705798107132224851002544609508780922793675641302690665233587714598120099011616290561260259599273654345780178810607949878666932084695160467665084780510969568600271934878776586119564558481917731569347099038000851345123146909925556101768530725945867040667027637048283286553884365278538052767475457131800435220007473887622459966339483220375083620629584152869576820470417522718950482638849969218722689918177115431703719151591689360995667205734801020306096870397559778825403245299549082523426916831448387320394739892426151783539736689946174798981894830268651337397476242459958191256118492864726102927988890368804757720129041976624338979029905369240323754901644920015777203623948315663494607833237289270195957731691104900803310172605832692321811994977010568694189607341435709143202401323306986106489269959736857651445648070151168006476282311178097405528579019181304075466540304762013590510759927749743360013791043824601215162864149002997453718514737429955582894130371151459375242821593094899185223175846970097887155773161727144062943336022780826616947030604969212687414501656171866030911312401287667725743599627159597232783505367840137410637823687625229500227578447342747386048419705367943362113464517279777484354465486604637483103023033388925606385431877624521535547511580919460443328087422320238339770656579140861752425870804205284501398831444870704923263672981574532557803327445006529345859205313775259497206242258292401139065457358216421325304981110904395832700301748114559452976929424617978113930800918734229059052044966067749565010698491462671932901470195455847969689652455732409701767372587433167911045370472909579585879993279689798233357798785535597421693410893580986383773084874553872876519561557784588029646630022377026954853171439627821622366329288530370937032950383256483321937382384172668656277665299297464335557751765592384882275694999306542599891717498112505980934920949621699987730092050369979671747797245965859973483014177414619937875833801273393783100603748479830657409401567652315130934854064906332011446147235400463013146696822520691388453171036678941093713143736882780449741319307002198427721923411455768014609938146173762900183860120759661581414616818172750196520702020502502616110516289161523255000541035093698780208492756072571010073398630742892804336401591577677607279288542541418265104377349042356486142999883531849505373738096957500155403115713565977007207342356217607342276970136683997846190330161087881326871852452664213939917450461525033283470298084344196588487462416014560725448132352776081056730821861947556794609496878631967364445214862387854144866532551830007394445144097635078663024432445570105231479368828062339580780166421794952534850796691677401644452308630919738873154085413942713356609912426008923354478615437479299756991862653034969464074159529598551248624848141108687957016639095690926459816686295670130504913671979025721045391116896317233375106396424911669842418200265600269405407088390787684274044568466406252689018077850121101632841179814825480504815135743913096898509223717574842171173853470970701670980058204812269138868158327775251262718367891249636913118358304825005976225270125250177478671282589741048665239295502451352737203022449715103249087466470787274243067844974739659403440831112483920609524430409888064272898920731009131932990068704417875253539268453105338157474397799383906184472306538461777687893848405121763830066310562024067628977468703593745961437458464570027568296039727096222701932677762493644690628729958466996289496880697035647170496892244393103359682528854031352314725922780471578251424055087009134766684230612985335343388911384840369944226499022324707086964790802266752404660870822589341439374121220744562345329547615173715958444611596990898005575992654976154457442385812435356411444331720840649235048654714099893643604067461506872554348017520681415780264381333022298419326664140872952619635491002023334283628153003144917389829746616778288288458644224335034790279212441886462630955044453026296029369080589488782899848732571507921817211300286986272744034061903497711557037852508252337055087426807580483865292352651090015193629820112792329904046877439351227546509167783145629899415856637837381300886479920720176280388732370877505846829317508316976585025587538759455083242282066987302881522029002378687310409658224784894918685204822636835743035357074466917484675697203796697672093299871800991023533554738039874763621971953213816015695604932783960914782641155467169553343780804866692949161927133467932563804525111928583743326696571940146276776623538654794097146059673723282754297929673801158441820859723959391539634993676933388346719194937511074310368590192026970216112118506652916269801875727569454425042185322072864754867593328438090976691442681377468466159067246932465601676124989328105063692163730750778651617536505790082730848288991919637165992179170694568659807107836762443715194268338188538295054151745426907783978410264676789179053053820575027752810989542435374052470291592126095897115903500981241518442377480327720907586712133857794274001893455999828162528186574492935538050287808169153699107197915841801185956371536948435881957673149733691184820968725861656002349965591544895007756872417450209157482726136078972519054509428620138853686090244907707151773091740498368206451509229350794937069854498162652632016328043077221804291264190685065664664084705505365107464817705802335096110093220109501342899025256105728281397504151556670638932336098880321034509457203057845834723540978811573223785244191419769590158517689985516076166684398988128447570929380332184974969897393659347277031378204998273998950807970055093212704843308676816778178203435806936922661168285321499165317948955341350049232747044814267049965877451601600727383172223975461294037831569977666840803678696942429384013982920092755392687788684001771454940835082592713877902412818004081268030143948207186376908316752196452164372582957427208453484659131280078683779583031545073303809022533805224258111599033272086748838983029961472418393395951610345733100750758450329609604397625732114290684036837486611523748873713371626672819713097050592650076645397694552868885393721512817068690865160071911058383341100838711022559566749079839796905772983804003643731548559700888008429773887814000530951622437204042229659893394646432822805498175443368369631132133802525843241500818975489654400468696132865854733620516161973665840685325692450843995693741846934594294782807607784832801490530927127710441313113638369060162721090280227342226942550652283089048140109599131706215240161180295516600904926894586345484677181096235584251597524191159261950696364991916150593250867275678036440585645511380179913155651372535187914158348270473422675996399450343658448359040883810531221023907420448156543574287587474982408552208588976075966455945677757486035370163485653530213528419360304112764349105920090368426394984946951176599114457219434869724696992278079135733436277102018790032903892314873271103927515592364745403819318753923076591481654810679580583082338968201422336259613617655466857977668261608176103957316535858676275870320237245016598785456268453205401009821197608594852991518950906996615703484992587810909746188191725767976845260716081538482200926494470318556673576921820341465504882406315341332317278760718785758557527814832648173258287494630094567823843487336867798546124077718454526363672754745445532045420158799755318237751826148534100221821433583351208663313729412862113626791110690508993073812529533461189295700667726834912033122214398078161045694591951777270106208168230754890895920238583252559415950940608633872607692228406813763735198718175000489228784413267026150198200473634980447256191937969157685290584957692337147957643769789930228772868881593584235202948343131872646554273726614923325417452136453700665615755697662839515336662078797943316307740225658660053473846791065908630342104844436556277097764658506322500154312179383440241846137439705576050933178075615870900499298994623747135454039690596834556676106299467093360193093210489273526943627658032982136342777337636077810825584941063844857378324091380020533489208963625360311108636506231929516605463062668223780384622155575252405000981750516790765760057185640168398747888534501919312523966358385275891115520718831077937647209512768696525320333785489244657916845290383577763413697305079055687520292349708845000773049717037352022129841686209027841214400744396886464595739445173734200217284069599722799953365711882642562603192407681659739992373823630736325830564149868210807640195429284130135781985574464030522583929428438327386780270404068265837250681748787708904869455370588576624871487833428124890445861831961235861756537188656300289892993850323207771377414427666124128552527190916119455839210903190924922333910638790761702614924282789697759525390502354299756533233529578942374017834878297986080306438868156283431287904814282553414381049856348041149974975448866124616834387202974523164219515075151805544156176550643167152143877876370923810130595690640116525754244863271066383600127292913464474051508220399514898370328187474412411310973118381995588202669047376114037788534971766545793852107361815100776465947709062987221959966275907773129471525837812409588865198375096175207222595327612416463403886507680859988642799307681169403132354206367372171494902164700241676786858300691472195089581295759038082806727091195045785304261288902611227577009172675808345062985240331319721217173595192871682621973642478502946130287241812109459844073730288577786537387263455448807505130528575287556449535742190978312619232832607729771317919336498180110695386877494461198208386125840503686695322944411569479119140948333984627082138392963000023187272896994131850535216919054205230765616200678212468675755655518233801330069384309672849392079500495869026070603193858260333058602391023788001457519031040695865025116350856282170681377797296377963437897250732527101024393851530926320991248866794301260458230446403175454612401614594504363247306894923985591098230584937911858323618524122382401481775484615736035215153737591195979985337848127745170601235502370833947143782678385058493559023750807805282855422496641461821671713852831974604083373979127123410906950350420998263986635147325214862401318490730173408990777611807589415338794618729618836001152458022862754004144199956280720417420216429724002698285077205303683360497984084756039164215642365444228267357580333570996979058467479382406874259471211848723651804179920512231069454207599034430087000992387291153775787232301441807135871292027596668894510649858596362157696857080735958560038322432805151401865025110591301612788917556363003485595196952056566991905169155589364534638293455331030643929794907947490653471570172658270464483114946855916181261105281450511345196328810377622595298838368407666705891552349889951771944579646257054417604943912991124468872560707510858363721521640750687121524562812964989723529657315189211057525636963002453132354145721879401998828716654017600907681795385314832198490503580634459890196806433467749338031384200804664801324508680676759222754465122301097960333494553755584346896361074992904305167661581017316377491237414218842675440207588045266319161968515204672013117644736468331763120306937694151753238042115253958611297327552350063688894733609250378843307954052831170403925504422806789052016758393505346195055135868423190520298039349657122636401858659132142320047714705901642562405946913710246349544716394757826599011104864748707827177218564830057728377826668565986391154337191711566262713991660724528896114444450950176732608247576292332237413962434399647665181215284983209114475872810578861554309798372456107924518525776922152234432399896272827706885406334780828512946810443139512906408405678048931186349142077909831115329515632153808885714056714014784511114635676139299402903908790444255454707336832327151856699665745408302813027074601079371262379371996416683489585331842944940704732816386935511106581761823822273223282316688717548006571382890488193039609534513142859690991936143853613546576933927203841459814652823885040367253813131098194439545843787928448572191983931709812732698762147859919220302600754166668598182576106075141101598161723672684567969135085674805878638150345954366646189661084504584143571991551973337772376586839291791565501655067861119341802044865990873067405737231155770469175385199566965926489793244414152809658975542863029668723373693241236889744085516364744482291723736801315619117220459585324773865031873759114723128769557054599381473662153629872015762832062219445607406206609549027162875400276009458835506405442658275192822471686826937459347113567331935284166960743507707306380895178516275919443311260186185963304871903280196986082085002708804312584129383017470748999133705291081715186954523375775667513769780530516420216047427291358866446540336772598343573086744817028263474468712109858381815252252083303954235882425624310751528997275470755349892068760427196248117442199129712044932699901548918672113617120366720403540051253258999735144136110403128231167445879519135224303491067450779139568558258392838116590547330909453262327337349471915055017412990274670280607755376720869138782908914607324219380886535168688067435799217005674953348974201492610024245375401216968749317247355723955655722886696765950725839513235757662741754082896940901816077840761400635185801196379378523138788565738585733450532172302430203756832577026011924942377648299189128628897907184822046488745348768502020219226586586556296225008864252302551334009535974991183487627733099674084689978369776556008266062780694143256574785530529416260029295165717178746030033480338086788768042403027500154703198647134013742385631676727324000369878664667795518009565701171544029152106580353302647498905422083051865442940262302847757412035387716084480266212672510421524916526382973714130048382430389943997997552087886740115530334368247630683211877654393878741417461839175124389059814237530449033595640869452309738270922164072369594475392345289223868781689527414624500856332690605257052921648901145577722653497004224003930099982605676630162776767211432416431295503892983197715537767104631107309989879035609816798288205071978557909715719959806560982447123756445147748369243830167470804365469962712131035066093021145037661843044001050520729492207234496568052622206867531813683296430257005729156072160099412878428877476044123149077223571610699680042878151911658189869336133715766718929383319128096185883083603102647145501497831743478342656984738037822054037023238096635043809972599338709272950142702875204303093278877637316309020597004589283071810411744637921785762367979825080367664899627967994642861507484510974395912783486206592686158763412946804019300052103980624146140099907381065881517436125624320912624732857022685964102357820482588564332964803190365819580272772294631872027828856550811761637460269125836451915946108106241471134504119386332577583942888089877154104391155752612061382364428119918377903691880894878691429266646263276007518906814694149334315638283949528586672027330918727428857610339853827800317241241083082194894894839327845749120324950645347298344709382316460844114564343678114708491595361331535261655611819942272051534473300609544557930593353665962015071247119569740852150582626742796439751995942725975952896830963185497187680282304929487731294121738616179367633519067387943956413033823149964715210872947356891325047022125226034923669708968771990844789446986103185106273390442424797240545769400123246614897358774625210302880721029016616498850092098119941891240023911557838779972626722682367343075953779443500589588474686541214251294932124623957921109360612787029660704853664559135781951624783315716730635498523518952813840252331830739158691789866176622969156715712823665178578768444554605687606437623409516434228688256983107350792041557700745668700641812049163760500195139600669886380105906074253202717557392795539636600618315671401113084115054855180503697104214005404913459955491484288368543523756216421011550072770662642866131178080133136445897735587972447043116402689181173555921615231674305901653016026701930978592050879173802396012078600295342594663676375902360953969985303699544816814159827252212426992884080854727121591790940534121843990757543112366824538686209188319460570358466777373086939836838993767447561595639312262906319617016489343344202230362150497075542938191902040472583839478204333231748441302110164694219959406628166073556602101401065492704364879278887506047278967135697333722983391779186599726992709466973170664767628937031133356282847618411903257653627304166048808169085477353743660684556534969192903899475044856825964457961295443925941650272897074447091309839839896268111312804798511675193793063902162852560077058807603973617395605361443423277839456844129631750362801117234872440878142309631127959905017199008052343280093147516429460956389485206710917953437160110270652381080668728313790634546171351219935963733091734306336561878532022606870288540944120143963647015277046166569171848631537213817443364317901777513146411786200997041398688312224925233769850184253493576381949358970050296937087405928328132427506964449059020664347567304285245183241591537843751389406915454559616255298671155758593323580141803723810127621991606766412386767725125757710475977510460018181217516829464587816420500277497036402704485222167996376795781341683108055302658488511854503954375111025980800816943456227924040585797110345619527958291402649833341088644337172654042477783673012857551571230765011372666451385637229563956966338634552382306110137552976585396698056195955046369717428092203283918190897958415585566580486115852705355243623007544142666113148293912642864453628472801876570598544125784328380513369746629310827570562412611876191277775455131119459612097820634373921585655796426300085308051859523188968537982851005361550393994267834665612214712919904564994623222725542474290100592094862335780109784978919384814490483174777852780255521472937991709780590974357788302977810878597449531870148400068837282503610290672114392298064666857002835239039903053606915223939603090782405015950931207096665101190749777651333937781304567844973205411384048055674924926633689063456767779687657949946123716019785301852336077812437871130787627652596244704798486669442915652085704792871425283718641173753913086459383167653079773916085997026120804243404143736211411004833127514642531356843479246532837923091735638459479001221842845706583115862203504581732191196820531544805845259718116376482495739922855269588059285136278876157251026955386973188070991010392769274511687050394729991129071401069769332104324581807757172341385275224729314043371822866350221081159168596519255624722611345073977053454830351780397230111419817704954192687007200899853418739238100351833498038778803487879869878840999111360935859439312798902108016842874086624411972877412539907896847391868241595160899842628412609205153739316160134888338711901565019028061694740453087169076458424218174042833097718836366546900873319758523741929406595818302593802326404323325487303873990437610143890045055444413149880269802167208200968919820280167004699481886994816940242522890933532201810127667067807112116232428198314006390705543649461017327633121649522745087189998106913517088834823505351756768473240043083108486181025281368579322633486744443408415928053502134074831054432230417570958707491113023552307025974719870853972347046529371930563647619490855777796646461406347967268081249106936920178574055547462484022305227111621122839430087094187696629779181214427527788685086156313603036707154146699487150775953544782190646589279565627570136140453460343391596990351981380173446698568623907733084329078377667419819446763152797254412601341299836627453727005407403664353484189369493667425514685291908218572217677002646550775843058056354655242289151232782736545143790583890710866416699882201326620695647744465906601015210262860910076645451337580823719815002738062766638520874273412685841205305169480250895743492362285554820601207954724634927031186276495617436010114028702647277473951151622489804709137452639199985656894595080309301421030183406756417853315569640076842518208911505566706724860500698003805364541819927250165296885357052957016451434555767548690394112288959509315831715673710509763722996050586599675695853999720164904113631802456012651016053810692989686432890720163930238663177843830820565725188796242250195265572326121003325953074248283393277326616876952859705253627993280773756044201515120938292975660207482450779053627672107598894953265715107710535167590402560881699279728371208284275487465165847570015477855336612555943383147032068537939988774765054496826155821393106960621422469064624185007760824192627507251348618156560842003449879326650416956171664147140839149998503285256329769882771596782502640692004663427357310899519636408450777521848666555938518774319250886835461069826618750421460161268471087123966551489993473809842634269083944836839372931105681313559381645260670209497364858267483981531185654726550542761417119275901758147454251205360294624152005684841849917761073346942251994560839645826099268929831837311184356129749531699269421753237293751104603585715842078742855062440969753299289641849732649225210117789688789337651040050873274476248397658755310965964910055047832834018007482034031824409218578241962346098190265342198464941900315953704984259785819168479520907319825489135346416846991763007955355172200310512405489959224762126511277834881796095658599351980067573947997610477311917439753034120727900250911037549470156020734191796765364319686033775500711001090044950510712268676162390834760327571039341519785563693539876672691309654501855461829771508474732468377326449875856318516966099923511059310862195797587683557397840913039694867416686060247328254498582902240443071937793278157928632514184044982973309744869644221740988739986634597832588691868502316753455486031672560633126358690912114370711104948465974837440582882149322457484355755666271486134418970053513025595407138723470551568348247454323080259462687226047610870932877359108259949850500137432388177544980547219448813875885224461032757194957141173510543288488251582375032757088077434319473488431137617241387372418232612580305920528867334035566160714437561367101769131897340213026224191564336181807952524291493287486290580508161046884351504586722517533872943079874571120454849024484847708008698339783626226344280042555116988216403104219572649819191891484130609003104159089004728737175361510594882358403428896609553216751022614531385264123386507564040437151026578922830712307352686995311878054074596518474516580804117278260368139854859271720117718318415358877247793274762697049870369170137494454207903415566123868857280643469108097162349306826062752685166865108393480106355916087037032916790689299709822917112267218479431459277379472228414449782702082620786233575045413716106630786111805092416309128150104537315096845920269322477037955339087404413389186602119564927485682805411693277382560129183366464910192668911341372873704780306773227935766612550375474156044101236531301559419529969246018871902429565524421041496190811864817324763067563929536560995148523569095549483328827704499096994901229687622343608529897737800048520373209088939121588619219420603139066909305763991841482934634177655210884081980945165799587505481896324765412836023199897848668989174837380548544704242922860556594155236408786595247038476897824084897453144072036267640107773037501209567896184341104277083995660920826976860586037234886810410708419638166128413552380284647610207930888295760492684003461661206409320569123735909444390367153026552576545952087685817196656822707915922795959474349256438170955142763187500169096135117539392707566901218645935871247741106736369649483267674727631593275095585811814027830152550460189905490876834144327555600143361481061862382648039499819203766308597501761335307209873558020524222915086422009648156155336583978068293313961671441280972864772013377364035208082501822481889301598183393010239816009566215120778878322838616718329771049079712831432771839033850707925096325410327192572281660202452385822703356015156698589490040156779102464759061332944429880321083500572740205712288973226488365691038001224968899113582746667779465806317090768787171397529396235507568033549585793449922671604145964336833484731797452364302967953950968851075728276612494508974692037870361242220091266936514310722390589908727918109724140939795842560500235648746169834831164330874785967069115867934422301388748554626957041329410823768059918694121839998751114022929680214541940642651291873973239094978892540789447258276974629297673353941635658631373832125734773324951735749575176040999591562320171211482192376086313748617371371107993113933732254581311125683057374672153654953201510183456412064840201536483511167316549502495916778185762404912603729738079082392465969597763248803125349157640589933113123317336677923313143994527081431143594215632419673418579964201387102657502319525642812587217365311373160287872518213380605096994906657085259467561605807540652830696215626205997731791020239401304728570345180018309469679117203404933985942784506973020011731998717972034481270378363483251074550393257416947358166207942336960862109259772181591579083353344985974447647887672503547284365552650956816765091229334456749706702454088130721407743286126430048005390207808716299705869211755201740359627105779020946143642628677262529938907762952052995616223026012612895661963504659627448583726871129990563775356685522980799742343635858626424207905385936890951917139964714319203979298723189988153475953798072872833132658150344821236215363588902764941967914299339809239456624197808514776743422293828359187538122746898108649944944443164226140413297136025343919359268000224686880172701075261212896631415324542899401337836296371996773055398859622623944759289262437721373044720316156868598423886294251677923768833022587674940607418279452919599427019606472889116972809051372170527690676678225913376636073367261022390184556782748877220741747535805041186973110491039238620782007829592123376839859700140326616086341075361816602320281004905856679944673151525488065787990807028196755065873971056124926786305311872378683858204659523555296732112448431131139776695057531458756423993529653713581302678451643494552566289140808089506525462807616683695592372837114476214972159128771741742340464764784667320223779131932255670220246360140026463008765560864346535373186186390761122473301688939099703491972945740969505770676150892757214921009131456363379469743342725879722003578660890163907996539569045253279557068845277841887388585209834937325900114801007429307318772282371352844980231641710547334287246037879806065165425708243891092084990784650700484955088292182274262358009233951522969733125916468819055679016819787977272788616921376419150672224692300715392909348657120381147906094832495137778890326151867675354636911088567457055879396824681215361360538292735240627684411821085665158517380413156610313706370799348472419466797664222220820423344113909867710417172146214428614789673926897535013679590546687630876660146748056432419928578252164098603886595177744112428777425484285634938870739397337517622296984636617125808926729045770320528618589709124924467379593732878324201098992742695752950667659612020445947008528774609043334941570167974536340781247861860022386599199457306073587539626562704079545866082558044330725970228073202534818964746196821718696028832640901417479216429577397959190750929979642280814148321600169670472069714905139051530671766543039157293925959279449644041704950933757603988995279419654313091706736058836685638128393462140575380029050487988886634257610327669125020168339097877200369048875127416576129831265104092112912518911570306978084163642384481448945001659779995207347691594557546542477842857505233480720881113302630656336278668458850594711206067437453656323016743638518510450896669366219960590313400549826783007712349223409479146428143371575025602506462674159026981976426063598268092279023183776252851578430487844577041155738083468634528433050941563483422392985637061220910262608847863382608150262511723376130943555058710632145520125279206833821487793018267952884304854331737751964069729975575095783884119203209391314978558201226369329372947524600251030244455336833960643186621071180780219628967158628272022994493737038611816348606032225934637875462454989402845422898038351918675291214881294073038357725997098197144520000540330591283452811133126535113783460973709950394446535222425434412491730516923196689888231849726339039297039633173872148742229854826915378912332480697676046407447526786905723211561297876526458871315984986319808333512048347875001890526762458105797087656870076615156189280555101008270002117204531165868751785936421797469698852790437386948385774008895780140120210047449399566995691559518513295417280106470310125767930852203629070295237401476317698038931960989680456770961227912115217304972322651893860022567816155289519691784637908395868459489230009947707978881488148313474339808939775429620065724524256174812179571958946575894253397766563695379305190995633112620245843864923642925948876137416009524123837800014098963296939533643402495876967861631194905494213701427408071150401079755035127729095878434519473494084169684612528978515874977495868438769665817587958962538407107906142837321483707726072249131659919017358809223945509349498074800804903911463205979641000720648878607818927269940221556758029653234118412016612360355860041881179853801168882959524319100433299818027268299069731086062694445171719453762625944692431642542601873952639651606050415842979741553835550761407272660617097030243625442650493805789239749137188263874337739928737585658143592733601650629319674728024560450959981470965435186101945529632624549258329005870960946951595357803608904105100919486156825251598362262487055554149749294180632566954100700016921422228397758032463109773151247183477798084704089185666666277175185693757197921332242849313182341925546488160549784056263795016199056618081902906017161908106447279755968064224665908984905055918690378647095954449074519736292472353210327785605402680995087962723608341458254557504401817518271758615892655238638277625938889080038095586283835142064723653582704373596866431105986785388394762803557863949719101198970383447020707509710219639365750593505796270737108365127596667982486108338049935242775360724138262372505881664246947835690914803489818721023831759812491203041212008920877671093236571907783373954003626358159410040685878628371727170470197301031561134286955713498487481869306451774262757806340721412657629158591580051331111970661623106130663067932046124887805961647615471188133171972308827388557103972779464274116755150711454449710310251059316989398013086205174976144577757633502227293040980818368946591087375261398489851024911461245744288443689163687548203496757487051212500623951293470939750991425665332268629971804406325260885787370671571372638290614800530756235550263046097789917356163752852327573261427943962277330207931553397764964011984600832006602333015821648207270860626767594369746791819597477807835035035366729802030957283726413632233249103986127873249987202296044483101770085791798300161545785402960381335745728150269756834122126299963189142579918686425181421715569818991597609899987532110927180273804914330273101448018878127221074527952993529540627898680329914095918306184321495000164262981983578816963682248090505225365485105997675280345978981067596947438827281629001245606375131296494137165159448363872234911656342321720904768051451672247109291956529092967777510280608329187565904125352988298783761648599641376900594900740310658595907038463444270252824527698097194625360056994695799011136108918189959214883582352764255101187700276760004843349873007597926615353458172097907059522370200279556592235982596394396920494077532886738409624765867072203468574699154716586595576612614682886393037422759148649282724023488041099114102650588244557229053458607945676134905184695368139429719471523127973660428568692481832847294310679412528524793819291354828917154794589637066552224081053895635148046793326487667052524928840822580878199340258580248753896476412249957724735763781019814803130275924097582241393184114022136002971684894182737892522311991057394100116384907900157021358461327614669052197598576573605196672522209763049485419890459103855067583007382515004931385821210499003895138205437552390945144896522737563514045623088830535921699080569601513996759182053421899381620962443313296195320230729774410618807589700608450787355834094691811533062664158861638153997851832427931520953117009102777101189778602332789867535141691897141450091365237295440843899085897497176428986363855112795117097048952026832875552047065251890896773815278778159960003323685221637002788867396961678226676380876372657364692922392630062538648155360658912478256520617615127595841033636592681797931552384051392450935595426743795552676679303032201142536864356857560688986382968013153844885620575412410035180082401613106068361822618543764458489439808650103763150183522352284156525254924238318683026727760491259004018171865293553128638825180830447528196760392473946249464277705274744873393642257975776034036982879135576117845274287346923936468764684176611932331038323996446473430414227047777335691213433654211671279613400781408320894737926904765591456739580559331870932737271230874315750638501099805105769131448433984899996731152217348194338031674730161917646828699318094298285811630077835325911820576897124173700650667995159463565352917934142595114323858579886155007694600411325251849064293824228895333640962484104135507925433396860151533564974636828431327339112740428741846948076198627631862421891739575356437360852601622488391001168738071299194256207878006354815500383338242866331514024311656889308649324970023469445306667833330634136576382882191633037108811049990908761709369634217837792375475982804589083214625631450317202747469037889289354673134627062081209638779783061733267991829474642620671516786193401724337627044837057093103541868430820697289896583302799343289871072815322353518503313995375813503162850265015316236652588702512280222649658948710903218084838325339451657559060116967299816799794805269996474839454917726363833370717258783093298598397717242263452037939000980748171260010240181151284026093319240073340183838541342346507532630338291104304891100681958074595642840213453240514769357655858407548043784061988184508488671747551137621584993039462113436618200856923072361303939094192633905360340252441240618135883851504622914270273488430070024875574801211282545566910109332068365312261891206691784887188133840551333266792964408523403744027411863721543625573158045005498438364312097805607879874313515958176650845985397376769261786834605468316680306151878075096010929421893180303681600928747521140437715513848111457923029887435427619463113629228402053805963586958798503268038138250475087845573726340985731320661724110196976761330107971480245503421064515173463495512494653401978015403362978779991678783893518422764396750119097151625493582917372471729353840159859395144264792134544773623563889630230788293827477390448687724018670343949678292944648427561698358864501851253987227373633494204426507540434950850991373817838205614810373906583892579899308134024412928635272333924518958581957519522786390727739687096600993745840923495980788535590883904922274367536838111840776737592422363028245915572138048885416094442206986611131275537607382318049139061884346882318720212776574260805971585011332532812684269246330561154080562748827811029576992172603915097392492180126803534324751216411030802932137721065233631387422522361808810432831675724892500431011051485774048029303581740395153735421992107430585542460509049478345733878708337145564479653396635326141349460902832939005611052771117680322724263228356732389186062871541091709112401329295412058097130935212621841715978490776484696604620580542844119398352686345071671954774089211158702529049205839234400291585462420238314656270418418173231877822299210047216644502468277395175583865026257011196482564768002976342252190833377036501412919489068012049543309700171320873714874036080062656697625931776210500949556483181031624242658745346612799961814529402166247864136717244995943954508929693562583328344923096095014355768322509511285384316872707143502247227091349145766851805832226657286519241667573386332184035071302987360467029759735087386175934104722656063352150254860304006059889950594662121513374347178912479079960645981715794513745898010221060171917361340896342618765608730999042938771664836440188895974115692204203953221017744723955136272043036643733697937209091715948069608544225142000219388400902570254921893619477900336214895828943036786506864709202552494372876514879841868054649936474161314454493595787088788435994158943469208942239922122169852415603274037757742193109247535086533842291781307391256862703262634628130391810941988612152694621975849267980007523371217163719357761933530109923614799445438206447958078174582643191274167953314520260671082848124971157953552823807486135147442523942086223559971819253161724133518998747115367385169161296541883542090762071926363264704706415526055835995146988768725674445153615361375640579135861543904592822613556350238056710545677897929545500089413947745253779815453981602322052051796633993999483918480309822539577496530251537640678189587884827713522380776158025342395653360279161562399283195515124471336152707509023006222159000857776522483949672858552235790994087532266288096410425684350156951059611715847603819474855458994236940058818244694884304438483009301653677641080868717994816511330483219221306658359259018411774602041543601740246580241042751052594076957284302506731850605912476019679542431860627823830808615625135514907178995697380699011073431065140361872255924541001003750690002559831862474751361250706394411139798022944018540591517707450302240024589206268362917790096665117899448717252204194128029601347119694149561490154355825540962364509347763644509336871957256836875179021300587345233378644194948102269758338009898360196730964654868246850860133556133310785950750690659537041244541210800951991937634705515603899137740415168397295087721513072252751499053146100521664215044693388314666241788522637777902290201009032978751727227993095072199472779864229180769657275026644964600902274955739107788508346796195334882765585847456231848631953401504663701436721448461452322027813910344769732639088883349750185014055325204843761710086975391402406993489553889959541381238908480587236528127903015910060553172307329330749566945844790410913696426901639397348730488387122417050183712365819078193577370568408293244286413120899953169862950512218313665701023833771953165613307611330813091583314440757438799216076612538551533640138387908072736697509784342398998883103752390703666077214720658046195332818684124425359815044564470618726209265068537585583548217004026778065472200808991391846309925771269601767334763702193936989416553838388319859355683069487225356627439830102150386451041123475643807312299859719036235419404248851508108621031061832296189610861921860353185892045975600214630356444583666212613519997376311877082926832590213290873390968647998622510009501915050694353138175475817694064746086515457215711501012648697886072790437714322401104787975265382919431248475822006707384596591106835030892729320089069582893553124530245554587936353232513502215079930408040558787901064258035758379714092200112786612538958024176711902034495390276736368179835663931568089943354445803803781581103647161805902793698285687177994075254634612509699145350157942967532071516007441693143889709426916789858570007988011510384080263248939961994993612725338963488268072586644118802072018876541951573758986137816908276649102017777232351413677707317482402258932617096081416123656404666990492689365150320941539169839130389271741688588233653471459806611090507844143477800132325929448891061660956344401333313507326064620871744683788887234893063798055360083895335395864887903950077820020841786332064992685522640347866248413546519382844482028336069862975766361108723625994431993623883828827339802030061351727922314487910258588611391349466788809393360174913391836917841958093007677977416619708564890222674155860739864901682230861763403960825669397107730991720128401712852722406763281611518500927837752415301767060751055103039201510582137014676478263319944062691097162190197061489855678138006170014722412957365444795738021314086096265437886757432139233890854354889799944534298241975773143824199723720679402897855717451129296066087479206361803943274286188891237977360405380266421341614544066909914680437613279792708431104375974033099926064440027358910538171183921840199867176729927096768354411400311178440842161763176383219345399272397699907351737827626964138474134782334655443367836144837834660768898367093204593577473899796578119600587202536820793082289565439748528647669416795183349243743458617922781415605633080404358258162065548660141238433008590634802132530142531122453985238335731750677235344497445453114054364426099674764157332778078353244882065325554540938887898050595083052904893826673341122852760907517936025780091740689949846220974539372067799939135053358529458738788334152586522405403490052398986991781363563795732798596330107646707869188847324165839806465116900773856085587007937458617197029384030113766878119422910999875075852139784222766421774824235097006184913916263656985080675391020706732998012476312938086597499098767683991840840327533384926644407218432781847525465516741603334781960149779271423406550564115563900316211265017935548016065066134167027772078973818420377392744220319080754824211992094922630389113429186320337512271573709059186260499695694354414905982381015119775489603192405101796871723690067354925767852671483195706373822563568350343763659748191955724442082809189023193534646253656096057898831696918116015388503351158567644219725513536040325389926470466638461474017330551196643183359053385321803330790559480372355524550542833267481564307052008461130922280117894210006626563019757681709636173453786180048145618448323276538304018124541233329031848718825526378966695407444032536481358719856040348806525362665670206933792070035614183441671669597002882370433692402871002039209800974994734975213613710336615998977211073868337822689022219138514953129003259015824101523530037687151819522050370978683351108528101700921275521925030333425885016200691480713226752629701208660918721508939747433694646730316378198217761586665145620239047221259249721378650995200345212416860441800427388974187386200346999987075985619611233307653626510281234172083978679232048660299009192423483605400808058531000708073671071807788607515533568908582488970692895830617315121818662629453007787311519263019207362537588162394490921084256636977776434833881020242272598866315714858809433282890983645833364302007943550337938990543802766146851418250138824289038039844053778777430973889752564442155147585700360028839441584174563742309798623981769705873095989945128893425272312383799255763008993806124451632699566839291073539445330601426917442887405069556703117434764855596858748500200546136917215012369830324532001469946261778975429859889480833468410807581009051733186279340196418983557656498719791207016593369970778157523361102791800600636713941335123471852122092149504836433979603879153246061881745064509712884370088653383055648694943467295520305864838975721041768222605880309486030441864972448638378227530495870246857455536990361938830122112953796629994609132082542083394923934419758574001280587486633203729765388620998248862318818515636051766726308495876056234127675331155105056566521219345800931435642924014770304482880106657648826367601833951014007222096276543566090733521102229354015139196719917361095560549291700598202511367490321379126122390889097676945538393573402254898575166628731974754288886246722652603479369702621392663497210142567279349815699974910497450950003374349265063589011267277984173251373545159729857765301685338669822623694244061641399155404786524515110732085135612331279857456023509085591155822442347389426340843108284704244250661149347249219130238079047074382391186837848797075571055090366050462214670189045029643016857662106929468083440099066415803997029113837549032455407866903686827926325453399737402293027913638411179572071523057649868713740441626955483421147717061669904092661606813090413207552017873858419124241095243891464273161274416353831834614694975431834062101521370350856290037248646645195607559822280705122283267101515844941172837832825236891142715965653100546983938018943975195036218860755077130995301047984505482681626888304813410603909160710348419234095638485956391197830207622877893489312400645250948935742165982791257290000024512613380418052307270206823175481938284624649255876852052515125022335182049113334591265669363073219223851985412904727759886809881660054448034101430321231434995083912118723429036193661067729322735468000141178412652547328883623883604502908803420568306412044165190343234765662973504176850066474286207849843012084036693212406270482027313229783530036828226411517432872786251009710629399845801663101247552817984514296063809868550348118101205880603497095538293706347578791383548250633275094700518357118087593379187536465617882297920038420173021255380510990611843927876155259509504769500243768596632742955800053041049668934445738120412578980956898665914451656892943781404365701791359281698130035749133955708693645070091781392263536223728571802840756842357789812869625237072825664128743179920576354429797733093867750253986766311986617536546352590268443674011597185564040353575617206151492428969312522117664081084934274495652893960544698683577397581052370858200433217882646123117877251607374444622479592471563614973581065268471306972937868858942697004154681680759853518335417868515135662397396047760275769258526405581479027019478606924508824448995855079104072787359714709324451310851785309257608985519616838668209955800188880989745304070652181069582540031526222140922009732623932155023907208057134939061655102470396465217695348622708135858677626849827911752882207983668390412356941427880107073309158361291661846147073358871278926073917766283863534020632382827122714086235875844693176681723653938683005647548442366775989649567851755307746623540856243807303034962832566846459152026185841659148305796606980422454599444232359645883370923428250525891378148693455256622924654608552915297699129257688233343671699769492250156461595962470507422310565865657613957351244599211236462930788886279215399741209054064839482381203875623318938204320900549406260624367256562236394384231579246165188451579381521038622705452992358725717905500592208156883112442645083547788560091361801737943817071561470607621832423747037955461152449464482205526183561205040574292360524079223425997231867782657225082253987725773641883349182031891873987005760592054394817986776161570372238961686400789663387215691265395084439553473731328944912711157707111574719972413325357329131201548694489741727379622951261944160051101960016354278923837675204856986639828356256352955065316659322889801794757388511962888959035406560450850696464167136665514080394446516071815411026953864261426753058505963422261626023795994809001783300508830467355986667551586130971516652530143556599092762244417531990082152028624948639060340149318284300357520107119148008687099321016551404520679109992426091485955467172043948107272560546387839692113397900712209876882723646549895382916863211518452798440316136073090213479370943419451199013423074846031777585931967469027924236205420389776822323781875080637403930106496637874794518341872962116664708197938859875280305732768344502368685731626880933671344012519516742581910673489152905215272316306176145973153538361770228163097908879702821140175794172008762559710565328348261257017659376284149395897005607479718087654768480824117814143289686921345987079379159655436087793214715665912616716200657557248342576823880681829097901677805163171672058144017088849420706900925428064893280372777507445258929594517046059465959565829935294023251294564767060544876117646985882298341760017380282826466341515715784485264500728505792852575314997760338869841456357352242545122323003200540886942916179297212494450949329108729088083418502861536704295014781949369931220877485205504300851688203519151602142355817103491931130772862830830445593772498027912805133089798565628251221083699064925682368544413352062964063887259678675643215256393108826634319592752340860469695809128762974539273595849257482022248348318332856264304661138023479637559622548962121560995429916634101844454161628839861924928476417626802591553789299204124664126704491787085428691826075416964699162074904354934053921619513668582628286479730338813210487418195302995105648910276047089272011112148117418340194527737879519717822088525219887113060857226297447334286588263787061208698943142344098017171422739259238884256038570240487029350611819104002166033631241627559481093168420645014715758547000900467298148011766573630512651885811882851715705785912879155955234237968755637863315188448423231944293072698059553205939412959680857303804391084476050567707119633428834284759188911234565481868092032949148901527354961061639413978164522230448925723397800966595620926831941300735439551323106532861650628298779076470292817328320122162806190503952823119956841936972495010323170687027097375366671795955274893129693102015974263926588027400283284464069118574976558176591029722131095996894429316167156073945413544335567671843420381324391584396797800867631218076275385614353966779422087243137301846284706008621639328989914675342312058271319538182257991823738794562344150021948496519584771643893488368825850189439982575439613618447285959276317178603843164765810519377570390440317340480107194986564813703750017612312502159660632666852958696710525742971243140310323465953465743503670965552794644427953842945000302146825187184403385928560832877632048834621613175343215789056760399183436704644926572120428415814984510960983050357619693973748535279631323858195946217150055370653658766024893883579934368019173629975038469393678042465375393671925074603830281766979037158602911360998839009073884487967433360196958916911051175457324897118235281808546833970379679389361351794419349985237548046479753125668569103330699719893905479509083593279473050430660913903199950181815289447023406058777240948685015481009520585810461367910548114078640498183544147412028932238250623085572597265523904224636796287556489594936749030498729193595641108642246859986412541853193362573980869955563760812586148123156843061366981551599724481452361327933697486675436901639342734305444022999637282996359617204384166341299038951206582680135335604196895455978035052069123833417503301694945439239441297602584316088687916439902138325658941794119172999349126946482512010625117015571920562594833247960673769464636318969812896018680248382571821833004391221129190072416069004572596419542019114498327727804496217450591144480778493160578191146149776128521448910211884659483645616247203654515350365434698441619603565085644079759112590892772544247976528080913702200721684490029770003925579196765145029288439488905334643525256004159852754898872797520293855947264992437423171000406100101268644711504084303278435136036067723631421218919298520628965012452739196178850705448191319284555304410645558427366318079839259825358681904995911556840266232320465670971521887085785156125692356301758141124883290107460337048118853972859143848396617860869830516362433033653207618553085815974718917234277703595516153855167833934135094262687243085975372576649105298509717476563991854584569559537385083117985707997722571245949306563703641535291192299582545376438298191965645699333953552443258710318297855702075444855295361706137498365501972573234169131894326081859131910350365394033725829810497876468203600014602267505180298659003962229838062092290546548488233680147404457782559480914506244233910859301056005205265631073720762377516204928659554229260981411044133291202005573342189229871098259429749876261465493427187153692196254784368399026686938301960737306913836939578387777872621322583319764277187541227198064209487763407603786016024229028232844731365847628967455671449139057860111782442626459876223099242793279264607023074659841321366762376970014427196845333645135164815261148040799863411081837235962082759561184131059194550997088820467885496820012192504025921828563596153763965017113513888416695449375098789228882119982999098324562090253540916276038663626984140606778083406929946227190469710322663870072923215825905977459260201221203002691367383799847115015410491913238988524203455173084148260214562475515907882026603837589316373085857049241339990414789884487129556225094785758418030795976641790809749128070982727019505231041038354956526893888054145734235139505361985287222486726942489132996037857683805588782855576113214383581744437031561665758681567824237202888627732546269167903138362011458357824619935892983790396627046720737364962761739181569797155577630342269420699856583262940156394755229469176068263993114976708694105941447934925643111081099819837912214740118051226213106079911037234879961500989343897213776763876766227849128719666224564635163336143184838173629558286359814245774341183173281833939114320608580014271683091207068499973409325521714891362443681047062528834290421892334127065428805077837714539672034702929689590516888030657058517994466539047652650914965100697186425484374903481996782507945644460754803693676444862430763388088751948391514078318015991389042922393424524608831520611492465734849795355274053482092387517385787741428305402336350170943932470231904494181845858134577221229494628978247979520790553039405579465906278789345010046603629157401310379413089310255608612846724204182481331091329427731306453541493280013712166734304296313339936036784170290351069802396023837609520790412202239086512856153983853804968459996574105981937388575463703627008305569639331081822173800131399105945797097302962752053360360882908250940934237246496273197349329579125789502509287269196375014401425518548583553574436595788216771584060954864174994206817717310125578432266191010584754260800992933772002652276987075295755975399903253491998210233442813495070823639191603684892028594314668856190925124963286383135490113626063404973050638396908546598202598322758605182021252402894828960081043472905142236890433280804764963207575036948477688375436759810733780365013270071529009523379852290581195359100123705643461279378973205098078958611254172431935692358325705972354143387091373213904376604829376639755186658369739608209219965184055806791425716036381212397220840402885901026331016402051340879408763416685782859390144341808757666555711950552243408759368961744980800478841100394805277139600420461649334902694091140353713573295444433871252141054449704637262664572301367680130211003375798286480413418570961545112699042553049123796588736545423765765384983378817927257888851953804111728365886680510839177046322289722768595170774469897300560814020502644938868934507026443413270235804539048678749755025365020360374562283761795649846057166948914149411402388482819443592480980501322960202550427473091992966879308197973213218034169117189117384837940010406607615511848358528703026170289662521222717089059846430646125150785959887900605826677150985862224320382591458052474529245942311776342361692625743651039301146103085450199190397349774967306514261369253690351362803910946611712789377877901708166605134405808678769794247874267732884410658725669974604041162865033482554302170789253249280309991322749736799233344917901753440706319903803122395201300780265314149146081491815318338700959065078427294454468732062795949656422894014084249442118669398285601287641167048044300092366890943721027905818488938127820007390344401003863155301779254659048514711906919258828851254868755907681179639421669605037893007670689261003409158354660021446057602866140867130719567941598591177706524802069434620590847394315912445738776744958965287485209388387069050699412783054934503679555043818881273981441059091284225830018835542319548794721683169864763792216740575366892515710900453066160173487429750189311274353126879287738117430176521424616605883775950763232266460058685962475726544210512800280755760326874270768610297136702025056554858721272376663032870142820085191203033041530532590443591184731895896169116904789894466401890022083069957300042587648480967015539094142684967039575256618691961953832225686364846048755731914210475547012860118965999865736693811340564061917310407957562241510416286129497221025299120723772028641674435727803312386782772575450777912789780365318554333423655551926411012571379320243300846097180006157239740233829760632778855019415278280022240061630948855401319239664179825875715874738523359474134104921746275732442662911327975520704745063587445557303653062459652002474483039083711909809073972526321670199211780437928282575385403461319275197938108374506441754859324195437438726981978333658216237918379440342235069276012554634568304956615606784925839158058786495556584194584140797958612249965831301428655504040064088594179549956512173570577595270685927966553787294236449014310052941402753069633657365881384261430430162899054133537967267836014943257839585547791023234481410778063289479490161201452187628939572053955419735438279288332022855645043349628961517409466885819165267927320500506332421824922087854010659666822581169648111771565154285482427174855403511274425575517759196787926458718472354123571235322635613264362255042389100787414552788552116783570331914708544866631933107159620580158384287991858636539370317383545942039003505272655530572428915552188180846977628898010562033181960273017425014566548658364749230950172753181575747209716919091147200282898922580593929942244109922161105275457611005565817070925257595601145455014625733674166319685241914243462528793669013667128848952819802045765545502575567623851070956351474819547564250654104346648517452678012790726594248454276458606732764623220241087536004922492177652901226045460450278162120133348783895671230828127745078485966122634394639845469564039914315843401645133954132236053129772819505874112868916607901768010311398900159457539804521986047762286436635013151194777285681589672927101963658549433735053584798300723705589597781275811264668707605550654105461772407860098667745902061934964759118124556520148843760817718509052821565607382870061236427621500031771839903795437376508709119541436309393384468804204891606163139727139528469807463955827828305008723002380484637108235974461124435170740788807398906473208017693976576148830943379667042681978024566084770865638719498340548534528396250033044330972661169943170587436244471710915045166302778578648053892379727134379878091776084215733453430120301281392966448548741736777499898765854170031941004176223927264451350127301770454650717840479623043290802081798174873995020810273125986232399515583394312933603022199574331721036709971221431038294311327369035757298142562837103340257296485130401836041818072194886992611013966599517545299687172147975840958687471912496411067235012365858971036719202487747799149069717155383821637550650934880424759154439119358806483983468933772115542845296477409209060187771206365995308113808713947615322815487300057189982859513384800704956885197598494035391697462124368433562380305053859816098664148980539013733356614877902097662731723856193568952263126486011481071867465812231470725092405294061538357838749365087190861376298233403351142884880873498489963968575084808064617349307019512645111919179091447881030991950273494966664218877013017265755956542367105224750679425339895433427599996112228626340230971836489036635798642001110062073995574206315444257353806916797752942945620352590947691445272128823171057118084359846059909333250828090311659927461864723680893911579107854372855871270441587090481722216422882493624156694803993473715645300086093915118231705023703559971711286776398302618030679459977111268116611659511138991228128405625314080277152159961539777096253092213137585684448333750198280573308283545583571545010887846590357242181597143870593335269488635996583167493998930933538139918295818866401901776771694169643901799364118277061304212037949325343917028073808165511216159937559537170382557840170459220648585713513462969751589147641971097110067636428820130048334870577591695891883144843334655172037223653234724250850564541394578175239763462583873490940224304273077243139508996843362673261538662948829465979040333970376345038186626583759832370359304865552752062061358068763859944301777086817025995581370070491762292369030512208893184956864209138582588961996280036458893816897984897960252822778106943246577750394894810625312873913761526259806490381321291243961202244702856933956923726840129671108607229324394436899872191315257759701226655884453056442549920559563628469965400419408571140493393935171429349746940954023040843163038897223328409233030783947317909612384818823268050004195207125788784931598253609046412964527869025183941704694371060748000859950107169395334555981525045322925927388651631223807083619352041355122942524608232780558183228716897780860391319821077703048504070981522257235015190603512922567841617114659819184116797456394349548107641045430110197860151441477525122055990960718026778501536806742730699762118665041670896944364933522909239673192938036631981549506141728872056588606212860242634833903217394055510105148632989708806026842396734283747738781349170319662469054703637716566005210235043033186485060834576091605606425549099333576055233917990253587069743307289680782117945335755210569912739655390029455372764388600681570820592480624016084764062431066485719621836219094951791606084135798413559652051916683441735103452372148434914030915376326689371524466408836807360202337222267454237268978143677297959026674326033945799639485032913506384005432822881246528146450004170259317047803690608831179075793986773508373633942124775486255657120724769977724825304151841774853694783257298347658300249390629117065311764525252342142723133749008870393436587545733626574395696897579798782219949340515698914979445491267224911534999371619426752412118377826628868860337282351347634850484759728538767680108923999516795645177302030922464839044962248366434742618374787448056707164477475728221669696816859627859117426164056356536571784315737091922252497276892643229065704167018424569064031932398315483844115562788599079541450218876903296891930584657100671713565357340519499528763139219043132371127119266196771849511132622440467436916349989156749440301586770699614809866331717285045155765673337276261987442236953787567721034678602366266819494137672494355272796197811428485954038197895994715768721956953950335217688304381550215641240107369827741146830469675681177407629103268159232195871742347574867377100576526043978707680744082704796952585002498683868401496550138527920710481295090911133736888728674024464608360403303558064438759737295073102233758780158591986954914154384926041041953851081579128977290119773283035936828256684472508238924925958716921722919834840796027894662345700360675292942406283543290908701986574107050703648384512696821563884028924968786721209871431297201556385279222278429938239947350890595176908516122016999134701894038300380751446593878216817537995704242551553395793838326441127397686011092190733782490296793852781132572255841235095351057108003279730100008331211847538697846327934400796281115270667192030309431389152694998812781368259388140853455015183230514604944258374994262277241764872738964910804226911193976580383959756382254340406011216718580621140902951778637550228935074411521878223891183085697891678285884828628511579980470768009962832810815557111564593565746330151066050515859948252158105159819602856266011807025151201320204874258261199608595991113182485744259813739734926601692880504730684893321904239877421171058019554069424554010152118776353305542814219501885379617775025996126782316420766683292880781490854666308682844210442229752516236948951544704282415347479338845377262898053051796207813927385892644732403190417662248384916274522201418574182720444102813421091943705893973234323940039059729352671655146237785838378995624417570279782405541785579388722657175894767332231024136995686472388431817386147117182042320152511066819828305824660168866623314768063369889714613542877681346387608897171887821188629384010950994512621840309084394245363052936344740187228330304982033143024965104004573883096832587845085517447296269867554411677214623655211876655172611794635893441884219902761162322205209247397774723507995533429701732417354234741630284585693806337647447858041947928859818205635538522124243131180843497523919848294031771378222978735041737217008772374687525163626684852016621493740367911928446663884726617355741776567257799391472990292386445144940258416536861494046045116245134218376929466459198781215288325783259001301263529581082156804090801644683356918741495307810572717097453088830151960077392790702762642243451768699978306778384435364369622766866471337790538788156206255243363859378148013767851799006584866324203194774469197376379566078763873556185376252129728975296471990033025850982196528776465090026024614546047913393489083133535542060490581200859081034381460277444226927907967738837808594403530047018747122231144232906379759717665376096758615304345260707047601555565937990634555409281756273039843881631201622549213209434451452183042081838919517361469937361645340533004855431159332527306971130916728550727742669286711157436383394628185473225014969058697579459688807872911576733285290222664748789590774698799518900368611130759692044414861781289868913024052594531355135221785781046702510251586045728147232840272698487856604760235187780770148355866303503954219061527294374742557650192540893131779443710585439898561328073237243943084693998079527589656481837440940831829832201320096783404356996103028644180734155744698095346061544588296147880565993172419099865639418301128003064222970730277671204590605177761186620964974609706052480462186716722855139064869922788772129894019455856909709428858651133349887495479515364278402565271355360233121756545254263390876778543801050184473475028583338689924416648456347706968214104788803089436880761137228590529023136548007998172168737219069445389296886945609828456459042196925458680892570648172494037530041810770397187106214645071158878671354238678625679623175602857097368486734306759490481340094923594211240391194713389232810086484316541978351158330767236339560980821455098630985587828273131067721768893806947164959634793779694946601346694196787693371452913266762156445124004955278362678409876688531656151916313700774520737914334362479509795580917780464645624279347454320069148722622614470805768742863577682877868666010654735735097494230232146226731356218485652897014884707312077388798876286285529596542269831758305440809708894814689271565671210592076806333183136816416432190533125400090289681957541226219877133640607871601836136991028728592362696735842910506617892106380468792899199792393021087829099052963738199753373511540393918137393316306829496547293466359907168551582211352923833051569294359826236117617917846691527689162144024649635329527986684028048926409748582112143859913026528650585495085460019220370596796370289283630359888171306076737050137316845609805852025956171745602558353345735573215227459915225582629426207914018685913006684424221459183155307230567781238454469849922538464148354165137371319020477379014092952360477522235613427503809076244201855831086357009418589906177759736085994300557822055484549700281202549253194684773415530978612134891264274816849874311478633380020598865723226729763332522509395036464460497243308966084129754136683198818332432556374234986005559970460362927984731978043084018758764487901526567093054097257044223541215542856832631822925789610531287087836475711981838162207239444763985456057580019361577863725834229022907745648603051853007934472279384924774096426285973677857716638591663397254370398743462590036330049814265093796397784583550934652716760157990536009335928137476147359482385902996365419377867340413014663604118286134343899855005064298147424194905699160788386984263600233455149379909308779956646184890505876903845379178256124148876395548420698336059660096606556018519800953599722845768542638518548913648659160716428922746389331411965244455561167122690700831561763153306635752228760131057941882332343470846716280763610997486487522423535793804281032896150007427328202629516261158022629994939941800720281860789169330865607251481303865233300369275597365483709219697742670859390185330464195306188517524870424058161594472939809846004376501280300906864655012930199089886904538962156595496021300482092284138264165079314466497976714814541570734647644644401931270454899491905726526529323467398488770374952553812740143500064186253880704422541734291612686780803801130623745095694633387873947701544163442517839988315199445272127394327017431243197712826147746681667611139687159746226393400508228932232364638390806434786326596604316354916246944745384752071129142538187680575759588734667109439491431216110385986184614920961615529447510104025656750946200386582946962942016329695566990694124366626894175144786560314913974677420704461442841324141853434725886524401137136138972043567962117472076652533592444263270693812863979623469847810193429121778362431984295715151741593187109312687012631658766289812904252269442089957804319701791661639826789172927421709921306453950548602635568423329111191180050459316895675667752770708193782718981981319539845206248765139812456953553018516935060017463952753521824185166969301292746584900658999286868180082536249930618413425956388392222699943443135488968950547622073441067439659024655045602133519717510587876904482179073622737022316689953193866146046238663081680237611115155689130613768548527372843131435555506035942125872428840475720857003816353879809450558445306210405229907983012183954127274949144074433250335063251385025670974272830795561706899973786410295557354722956327064935664820995734119393744694622393020109085287940964795088802925798110856129482628347409058950832452999501091600249351683464855492901388478685127602775921936765236621419026201112723325824928451603098841773770693042339231701239196695746690211033772962340786597659121454863613402647287458290907743448484960828623314231527399307425260728519662360888879978220415344400308179456555684761960061530150668422299602495530411375571260839055980604698464864372787588760971993800900073350146703101135206590167562398260356085612345106604739878412315988892416735957997504353811417513787708801214918825581632028329988643065972660430797163256036980930755736277527826855572371273201379640308313677033667737762149674304564225819584729137973120563789069053771636596355104081368828556468653304521425133321384972945968951486413882251340245892623424759982132342194668259745987946339066734670484047138855052119019797399889047476709265642472604689604299867730020262529429600883106355956592289114617370827024844644812685558552877028116148733010888927179698614025761203375975237895943182479074807358092886951834342265326951664204156345077756875888319493053353776662096733326939504981384074394087460232735856377654840005490319675161286406989837770629732670320046099172033987623448370935141289910556630513051354588119513348561401159832666512600238210333477302187374807971514679308727792544209236929879813770106225403008317381969858495578890315496174254894575565087907513850373124301518247502258757048712113627160465125071233629066629906461525756993222646113158395546499453923786862801333524712315894364109065098405673110911556521402869024950371179222295240941166057845803625433022760574572789566452346883523258457668002219397226748604911900984315386969755230186772125198343364270674590302180330512092006222912973467868453443973426032181474380341177884899103335887231216682557242679290038626775295491530083188910883562025120751737233641189731067437191083302333335327010825278646772870264684429310294039766660925185557062515016777374001143849695344656306157754980751645890543721501830103722254239989109244277942132213287299650940916570554356104421896284962168012289939050884500986077172402807339827962881948750388031404297754292545166693504041742310884970089506772570442294988750564271847358358255548856201819434787210686820834328283475716875205714989968151019824317595560756941510199397250058394819193535425850510632616366409201881407255427974920647476817155251700781208339532453145371034053878920080109355991120465696418583102207353287425103640688438275127633201270314750038805669378645115128302773617995569295625656455390725663528952721858604658590755779091274346083066111059474080709918805203563557103749416588082396954236972018921200908651337543353952083493536091318999007162224492460165826630858845998271094042682969541581720125289015747222932124364142813896652131445343200091281101338443034609878855148164078415979250077524944315482548645698846840413564511528247095446839140678154426513936252519217695955815410161046506307654861835383869565699752312302971233543069166171080424898621612642090393756793358252943926381524365823800397337685357094928289840064268093749098105917510997475729008563173633845152254582852451223390814028829492149351187086261805516354468703659171151378881249558224675044075863352339933127178946279555337660089282181033949509313469927220458272686365697009146857026341289935916651008650757368927416663542094138062218961154005518435364438501509084688501959078302405813570420319488937144524767745922199930193640506114167841290492574528054593815900478514593617266788471564096665943242502688526980933523786097931940998224627092168690449220094788259333103691944465797049537792511842675413748977807483913593480672766379668966641095903006643287438911570783975874162963555369810942390886218812878743885879525414645159991080434322743780232903630306893699272166348026785639959890532701077796739478408485378833833136739142633172281333956535903601980724898541690701405159077828147458093955558671097039914999807300584962428046711846415717884705360946766643252561534598443402991275198329397346174835320427020995570923262953142547484968213253606367863366940694840756215929966497663098792737414493607133901086339826308035307052509040817391636399825606244279838120222638866909418170137740414914333246250089373677131865738349870627684566886364270224031273221763555493112939056531149251750964234712896343103115661344230672239021080748531446112726195066728341781190527485039563272673150224600614046413317781587528338789245871904778732514891337866331463127021841318221022887272324345437420643623693452692711004946641833756995859258948371260028542104998968040290234116641964077834204690645940317083357839102043983406705910100360369536862056491282164441064284196216230092524867119938557244388399209805942266684931897716594439641795020854287075200138114599592160683144272956011566466477438533193830573013647960637467762632719666502545814069173930521792551034651850204725414729246437155508050964243461390441300232474505795396989392237755424081727103910538843589660896069332436046160448234486023702242244460871749800959851908525371540601987288127797278731071307160046800549257836662831001853343874850949452989081479483492174355538378003232776052005070567180429508999684987109425531238782640576941595914058978901509290058439863445365034630427490477687113668860378442173860639116819644758614876796569465740870178009631446689929370513129277375639482213396116883329053122953923488522402837381005516169255107370542742500657671890584241851458481203261399490268835418345640668772099167635447457958998575428697744824662181038184612440418877980864651415821338374410821892172831378968451321999883421121786573565393022377140975881781535189148637641867364571516460262670882957580319288872130515843399897542289468497649610544948809808846957336210984900001597005831330339345493454310005212100681781121219818818586257269272339718854326197874488227190400633097308752455616657095600943711777066320380209642020165851329586841362908889788186211361440250404128242303689669322070810988774846542893331335173794674717454741632200892387995886177515566884211481616187495946824386364598346357147004360578982561932445631095893310465333830837320478659800292036803920341217362971388894301298156098417073216578556452185923978714226099455500757588070768928309555348638723416547888842927795203372231389242815710690634401587023429044193774729967287967001644145084930315284735770715902448183001771992214890529639681976505565917844973890511616042152246094936638553333433205020643549251222722729698978394503138172564841607600207492483907333830526919759865246497526176802229938451565999970773696366418399405063290178355113314595204635062176818412414136456974328260633292156461592639657568335438780686363979877998569773216906282490624807835924807697125784859261697216686673588674945585019794265445374699401857272666056332887010558131996028616321512798867714714659308943413975177718941674635940653997831981774072157876712579281393296272442228719180927326110234242753138472399617305049878439403968264251430798617869273205200106426431321644295184019480410179800618950764981901922527190673708947014145803298706693259541590328771515880159378173937658514758393805486391179764557835353042488375501261783845490854029901003466688828273718655878729935949927849381823921021321237481228628827345229574461935178932691587765554096894172640354173233770422865870223138021321840897903834985674774610478822690093750534887051669846577687636277664560377109163743473193816025504451344813674778252317671857983982940707383585268047368829029025789727272807980991763009845317188680363515663078325183783431681093772599456897998663787837960547164858664115804720116230164063349640130355349939579289756883192066296449932084636474776249776987057358852461855703784699129751521068450401123630447813274643152248820241732830421938428737795303288641193713104819729432934086276380909263408939921992846721447797617595481527655245653761677325375563295221029071886647291261579693814689105008174047394450267777336273836413455319571120219644049613604568145093883185605285090074781238149572237221980573688046825117418705694361421286495710947697912990859414349867099357712622081769843482667188051940673671214395858064346448475500351192786328485368474174074116203953378843730716295536364342919835851017856369028227587852994237758078943340277266897395424900915956026552760860519111119681026086673147323879013358151972539828604554818751918239402542320563953678909911111126969838833706848816346323851074385220989709181556141975794224162154140940154058742462662518426582518722131969417696069409187916581853315804689182040954706022147643264180376785996293845585343613361031509256783410881089327860252672176247035371856532849889836114266103461215259088736326605087260666956035492868321141362614653502429183600936543489668267711376649045125533761916530778436291334773363056128589073900552952940610660726037623144364406543409771255278845499226384881351019212579510763803437703679177086445559825965504412194427124698829020690427562410052649253809306720034022891914293413013586136763237720519774109254260137398396512320189599228556919819948108318200948430933416212855282080191834329980399094448912735550348199170616853367190520315637577718359186294266011172936303747449335452914072401019318232297264412661145080395022671401787963372534149531989518948655943188955784092663711202685197676227233277857687460880630986763452423832467988870810480178213692470704307299641180135160965136859633474001143255507017873737825822057875003351115020725245241382486220091466792986968275160490213044459860719631834893981571132469069564017268129267242625032077430567339827523104457079738942101885314472391570588248068698223019835934004658286044284864476716827821555227923714635716738905226441647601782561270107438760947719874725198438525631387220170572712164192337022402169226347274189315841631009042550861066024144035760428310133010432187080237764924622338424398648789594221740037520550271558438846120387276140876404785889418157610470262112879824669919694749051985922264437335254996134124642372468901803500485551982945182844209158353577550557913102707243984945008598876545337935945647429137092412128766052433205521747099153284041802231680796009168228532546806710026221013579257834154075773105922446212460422007037130559535486424852127165250733025804224309641389541233477926505525210692123749791625463676694915820364093250416022668966106536070325246854047092925705369783754110166447927626553536548205006006747547770070370157097732805994787037261707323080785462346371795658335690311681923586140676948062281962099012829066232698948099913591695114302108490608097894115051317134061140708990144509957800013664784057819221973036001025047518786113814713100860875916122170269529446341666883525856532015612155605796502033356451658446233388363798864430829902752375293206473553265529432306996316131794466421453054145779990558202501303962170782045346290840572190278234320189083980177833263758612013694838745785497680740483169787805586092806100732565274513902744810103503328394407178464565577126382600067828027477213741954388385748872166170677851836008774017348156941434715088523080684641102886805645553478854893969582813471995052950796403625957228505982500368188603168402956879909702077469210994191160929993283672211239181664987479722183477017124215420371461003075255898786258152295073080868645440525896119775463824965569931566383679535197423582639184601748998598639644639992352216652999441138297549588866510080783104653767293966269882735584979482599930274706598907273360570061253214057988794469020936263518358112544711672049870402304437783068717912092676082078424919639619733281472204663624958026842804325097774035285135090121865127114213545373722774437431177866807821704245667958623350493790380263204802808335482884782064023496933235287594182450267576390455894316194289394688179308893313506929376540458297877433176075335422677079727071862058679139797117052785291972687089124865278559485891885341771910338922220618587646218416639703578686203038977146541290672557426716590560043803011554799639417450162618517959463978694700827008203089130107681904373332390443725484070116413479205180190654000790954072726157782780192687710233720814264080066997492236644704415012271288458914437288411393013201044753955882072222128508522514574912048928280116481747488841809095853658899162503849160428423662480308517717591621560507478167156480105010501485134643472087294338498191681430891791362390480013641002266793992017896585905834558595911372105381414497800881108459517811490050833738136364855742950260799305986987882747349659798828375931909930104274431733091847553350214371854834262726033304936994647304229029489889344512533620993193916558982978663644717867118750089160107593388341172732743273153042983421425742915558171551101749852240571711242315957381335944780054012650937596475554124493226100769742357113882140349384918972770296869721746273256642762756421684633235987251272662104340197894807308237770099705935918345541010838340083624060775251792737071607842268146993500709173359501898289388181159381295181979372471061403798365795203766679826903602850086220440211898790560535190936845577545246254644653596659369262993109860899962011960574915390031386036815531862469740744482983715311369705361369017941841721027995565797898983824863412276062846191749182651390656810660989157187222067651090674652328222403229511899305983362258185992832360144304378966608383075290271575897460737201092770372268128939574247080786174002252950797538055298502010845459131188759594032581053051184727887493153142035026001293253367710661420906469023923288750003760888574007919054955031368346759179772093103216295090232662318013906267386236758220012569784068614240352437769469802817124348053191348015413348707730220542683481586518459874180042575733804592433705774247903469037812166514887496165327095112614389595469895578261985781998494865092366547279581665579385820085900575067155853100612195725636230817903132564407999473787268123975443608092970123683421944612707369775829291768520661399966437247433208694455988512216896100634971513320062678884259453991591009945238931383867088089315360422586905498823727878846517182618248482579656803671249851046344696921241208926235239111445336722073413979099152721341016859700101041174710608316614479161720113932667695082544145040610451243279892763349828205245376384276820697305061789289224472631429683825937866697871544422585440958991732128877926860104290081009499265688191961130842571411173917439826830601764141841354132138360432354297124215221585390442931030439414665962802344491806467622227904382688850254704572707294254358222722153690773446155853563054472078227477007091602777976268074031864593184970325404342770850365330565224418081360534835483793891234668751371301852788351823972474877372220871338048037078060798559814723408981636399129468710151117747008820511190391626796503246980708500603044427714167231292647154774141947614837871967115098505167398728670071772787425460461551602373023043331082379246440748451070824744193506236185384002155224794156129257135421362914440172749230715197968661653887736926973615646366802749705750784290327297563549582839844181318327137868668100103533964621064352955434767483363064998717179241745493741606069873914235395481196643729824377548894701255970198728013990354265644714965200112310938655179383246308506663650365823628957057766141647451490668256421870036248528097913349346165202367593766921446687275821324153937761040608334244994236181906111948019910444809032512568213852366778695035559870593501585366529704131682021911424190757059472648112936166753237001729458023152137908133342032885146110086683304000008803734838726297906121240276695433560666409394497814372607845350913451094553910404783971211849478517305234397804457187185193270186252403690505378473088839423445273992149641768562775307247669504055107159484511931466031619086283977948562576893797986867629250855764059802534663267209425848784407915206358058677032802796200023029068186820800740614696668425359890828404248227793379945216261320506342433260272566522298646858348787865825344381658379970711946413667729897687761874931478838221430562091023400008410518011291370907237270927022100194336396116222506767055856554314014042250139954286288474825005299964623583983326888573140153817165630152883385506794794670173374402180066615426478038287610102004104457033499081992245007644019175316294481528769898756871333019979650386672337671025355252568712651203926014135083115789985484991840994375522702782524527219692089969688137319312005044810295480385939289314602450654208021217477835395838852615824695542608976264022102660871847624800727567333082875414845536979416829924854040196691604859308395186860963511546014173928102257809138792223704697893047611851082034982401421761742287743786295499949364544949533846834389297230057999921282282178441155001776878871760794669121909054489612366687646307232830098006111368709251069075493321980789001416978264699037017342696792193063094175579997609529269422689491208734641173065509253524941560590481736711837438091015537797534731280485635501301738389267812454543030270897234291368277307575869618406241613120266752775262857666887733663425463546758219589949043730391973703399714832684415414904525597866380758199100057389980642740853804106450041559978421825471330338611645089193047404877096463321682209150076870677794143156566162004956422770761230233402600637784076285221109002111934388771018250382739431222845997460614520667006142714312502968361261079973987468993855286720950141786690078534807813480682321876823449249699381954939100195458703784480906356032241145252557444551418749908906009074013829548671626495179086851476387371367146994207656742883574806823141966782709396717790112495402724783438286829430029431403542648649739540871553746863083139383619898463680044266666682804611863891473905744624923922851513972233853417129444397389082186940652814762330642607014004112224938361681531632411667188225851480482257186855866587586074226497315175045377369843327166926228150905297784741634111032458915446176491112745231316192883844790209512343595137419644351792880900938931860920582261449896515189073944334002207521478054114519861502665055588148064485388373220754887960556262837326119465928836497621374222099296274674719370514194010631118490273341734102780976453147202831450166797203289285166754354430894499687695708681679963329955484847921548239227726894124803440411639992352128658325641192894410391630136726067467386330505939121635433630589460783740324591054278014200605231085191617016904218736575524110736566731860849877423422028076326763789112625198349084948129892699091812077137426558822756177278520701482269073003417915034457531362778755934450283033753171373050695016381645610196410628024501354118859803049932934029523309915244505163180481251673014765898643785417431733225173718217193558128893998077642305001131337638266056727897963504616556393152065618441164777861129884578101444319130881342305088078623098756773529780363204617762332370489744395459364292218791073320635243136124320555639326092471603664177809184782471052417773101503838491000146275971196630722405922078248938314048910211370751811058959138882976127744318791418464943349423049042140020604124831003199046993979487974709702642714771773287354017057518962131904691958953887261200828901985440765254530377958605146514381201027779212013556412485965543482563000051821592899926083300306902424350058008306053121274792021470605950643956011786405788315592540899203210468758481669664634849823076235071494363625759291295819692265566806232459079410245006412840279067701093208017972907388444815064085335341153799924547446522005225729881749992447179023066613193202336717427903572416197932467298313293203551573516115398486242409968998371299353481868346261623978090039639598533357716212750992238417992529582731650114157171213681124230130428605860859178448841242371486213781959661275396507736219925395891273645152340349041090229957626907882847602542869563913694188123160556215352635920326087253571815620636050693338916381537285530200644000623684964357173973896594582768380737950231841042668582626607451576203238282662217523411977188335844223722770821812019594286600101404412509594833577804581908295730669454184394484705093096057642963816887254597026365769094973527405592199401040470456228734904815981181362711866780222672677415635453518714530179846419603680912726624861114373990329781338077401257090462120759787273634227344270158397031867839922860666725103367090475167774340820075087787155953598687266439529705001866621854677959989439903199969798283899536227768221894242758883056521239649580593065914441385932164435460593862291563043638848775765239093121922716355936992576902930301779361324318205505454253260020840903454900812732470148411719976754997404509485304375968338122046976051837332566620637112547247398571924408931311562765630710825433842306078840859597245441025649505557649089393877779024039644019824639369311258651788636438785979593060500804057813083000338759369014745151204362475563219095386290100453136147632470483977135107485606053469892555066323758309347175171048878084572795675276324368527372507418073400189915994486600926799199202064391926180193181523542453846380365012994342571249507453564478886138982989961956410680582850919140710370251048778885475264657717273621614526437737363530122954324877269062910658231804354612769433174672511563905260221053033631577186108610460412361933055251706791028178333716309316823528006736423941833156634386926109550618312612982902007410884002418210891355973535404108336959361083351798933765858592596273001100648020420359915892972464386613025128074827500738363254175639990340759195118333925365179846172779933692817176174040193007477686469882272479333485541927275181221977006221372140266062810659934484531071574447995442136813878674468431196329417245354837532025721550159686742909763788526578955554304493042009385779802159484439380209450494930245867129088589664639040831646171791259539749536643746667099796590816688665978898132252161336570816294334915841609046396176415088000300489591676676653555461669756937509011039822761132196338295249755443308926994889858779837281853197321853385164308218510828251033241333449585465337757328708071599687859486263946832858725346363802782876337909302649192126141117836001016924131489493714177237754075355023026527653656675962534482093846298731906200598254814646722937451968616670255399582786080938791635617219717743985918255727217864751539014458891650596610699090572769446795351584340866030760400993594996427434172529783149114050552368851804384788068680561843147907146246399399630014007566241398043485959147709534720723209550023835030610026470151291951615438663708070865537175667933679604864883465572706101645123653893491207868170856747082327599979876194718732140719447352518860611544980333523351520289768354165312503115446581904905733582519672868928685433037286114965695012464461806208314562508344882748494549236517705691059935863594366435721092491559142858149185997792256305084676942664899242747386612636847305900258057415349950621923673105123386632704988368491635351281172398688680121323245932018918951344253465045431424024788296049370451659012758792813954806861465143803735965985949302622539831078154496609408119061989992843632014803236658256635425895772487772813220662651895250935801617334606165223285631439977646592134248791002918374237918999400450203624547381715984693691125850540710572123508467001993015957229446595277352198635591602326327361885596483456686377655647019391221315533836536666532994561668095186283529959932632375518894665894568691881821244971025029932230520768085681657943158137274118228092226013889753788576186981943982142500827044663714990531509204719495759910343628333383008461767023598738755719147304944825210392491715649253125812200289218098094152777926530995298295070090244487752027023667609195160222864185745004328060622455331247025608934072641444632907212600762682056096774669765309658819148457772236729392198875005994335873146243706105977463628352801133164718785674531811971258019477772781842027681375595848771565285919079097062070712634014377603517562581932307378419851030198831858577245842301637919536591092900261822801840538451584395249711665155966912399138112877122840312032437881384723165545961822660712729882941348058074655420887068091575112984214478801400636962448651599061816964732977326416176968908544206619328802713603131457172630602882345809709578366039217573466671730235872795286323447012840878269381036234806037094276765970884644284843210811641446078069443317234958808592439195119395655467717451322921570044671875570100727975076975686681611648631632376620625741789931711873130030698124898815765956345933933931480668277330014009085061697047766334546104517236859004393196461078018668705066874794005155956807239028479150333281858486167490340502910412366261998060269147085927543772430403952265312659806385798317149173612060048321631172200739903412352344352265017893639650875267173742009635538623973945045132315726781523468018707553819219308688834003863364900321272758370578470787339276266870681465965037550091432740876232482122005537144349425488541276271787513252319856921227308838783272503330547049415372429520177445599601514623077311965500312734963083026685330354389572401329739521911187165269004643879129318974950467170540028053538153863223032343855203228564918774935587108056120815525204182028935381082724310194659286783414025842094201694707529390293858838165861799029451456825775865333120481888392850936286440526815610674569862976341975818582898991237633326212678782046892227998753592481280855035651123677437020018124090754154411966757252468203656484624700681320762289634999622907650723380376322383026746474136407377760026830487551648892666886470430719980535303391227858762954483097057140865917306528285832533795426716795548224818023033114335024497391957167110892920545986867089604339691060539958848331129480910454221375822441020026800089623162657541717991461280241973334589865853387545770893012747348370078915860756568839469377214951460139284484490085356323316654678221218619134349948140987084791244195312627106861866911468464285614251090702238056281488918156545885968925721322205707690042055404183141507249423465789226069082955977570725404044233718922742355880090542773654799518153423314708141635870337353672296722093139600209261818641767170408882283622974619018128792297824395547770987817429244826582350510150823838599929789700830285135327054214598936571152295298058791782576905705052601472068432356505240961440573374011535333598904819770211559221991143234353010047160720706854138949463089387132277254470391478087642139654960593815739194285419458828593054922439508566225287031380161270185547085977100590258121228233112522174494658700570517670447440697773908493423601348114041173636092641891917583230838203425611630764179037484763817778799155731373583936143892829147450050380477447761992528472198922966422725413560063121850832352738613594338367047577221086541223201199962610725215112976525855785156447801301982832756851884819071616794200571323759442243710892024444451391293763904654264312382686486481228791790180994420724850877108329008891727059330975046913947098332097880238427082679046602360916819107456287906399494900907629197422747391387108749931471740293678606057104042133187842414444127980121071643858990230650698465241551663273312018317954962676572381060559592119020325848874739340378173564980379305399019860016397972054225131941491325734319174578315169232869074779454805335223957430571005830346554240145769442245305702959141343833901868712156800397400036926250945170868073485974270767605726514869929682799675769772868776713154811313408967842723169621383303707567184706433501738314326523948669912044083625417938531027104501143832924371372517377539511327886773692920562217591011657264505149846454404470110982828788172519201053777924053231856712623427979795204619196906356962412986366956657338405158097140729178047440056085643439799980827217886735390643751994312192197294348215695435509834648084827247164478608283894782884170451321038853724088961282848792260247899839401287955864681835802760029747655583829066882914347228901760505890403097894303431740164060344383173512576482770318295143035632672234214724636912576796706745201402007159384023378249913306888761815043073959618005876529521041029416586582799506256422369613725549931240099128000708759975839051122824155788816686676234491991481007105705270979991288106141980889906308673930265417641551040366314365939975618672923229686252047247600007913382515500014737515174420368461136193363408454319923892280256498126283883471966993117640889792749818823361103255283566080594674700229245181497608891741251377298081480027396175719027888464348837910660130265946372274537856456808039797010301094162413592047314935350865946748259701360639214276635923829608874544193487414412494814550165867569854227752864634568742081467392619714335708344569057610610326565894326851523919466345952590612827282415147198388098370699206601856812803021471422256520108292139352617971325624623854130562939890852750586788326552606787389181688805181054860703968507053054362772077588747850470260439027980469196145755629568645106316218158516553861505790879016880038670585913596025294567542876103084174633115142751356751835062399444410678405315903503306834052301267665324697093185301419935241834662638359793987935648317347340400088662510964080276249783369271356843765876422776537514521961794566301322075384109564464355431884374108136165703480405657906205297421812532328334601685192983665690629390349976316906658612249927253735260559114987513567860750231673107514704703375220187589743248896333098070351709778424016061771058768049707103024024826927512789274143167092770615948952482158349941463120239367644902600888290312970606558094312460340044018638475776971125310074296755603617472196738631122368678697937714201728111883298572926230257522028160696484850476650941509083118608119044548307166723291306069398823523438989583074946012137959226791749121105419350058791099837699009197678246522459966632730117060786969886051590357337965191476323562973469697806561494137733489357629358791186185936836410278752505353801178824818586053556239204300651701057168302262428854217610384677725924720037097091521627302367467728977001953583855464508658241705253333480335783848181935826945480468338911242178262943265790142622783822747144537046038769239241574725754921688742707404327903317797685420671557151741003693409542035212511080280874508919853570817566309683927450528370088774294111921333688486035955893383002875423798451743964642433043943141552026244438645042732530446689955176267697169492477372276252790491299969559487159261219660694873635629631136101525378281361952215854730569394726626638646767253455002152716968294877064265690445985741936799358139248371067158750683322308398355151831407469281719970736007390895021266932448506336401144825587475411036605110670172041239862560395384285321655534020033324118252880907743118424788184568436112667968837875221835496602588271576181218282854542655612588502157417252603790895135453340603301750674063044171418653059701884468482621338679032849273711868563470136984007936945467882399796397176197197407151530556701077924090492962460250491255821283080443000203637541686102155700952835991671741804964135056137653397018388396301408493868236767245461767006178477436499494660420642791134880152654509027964611555434204771492396359079457156925240452462390778821912525195305229868189943970524817532084628446893429759761734560420075532706291617228227007737052270265985782070250576565600278141091432773562371426632028718405192111482191237606988079318220227431924799018869633214108835175343808184786164121367059149260129360862694294089028318848088813456076000797627285439554626775884857272147883166688674759398690484358269246248651028619190582988361621705484507987304288566524493705357260524540508692938824561262379022187267010195843160218695993773066746383181682611101377178031348563134304026443252939860775661517819207629513696367444980499348238699704849019033267802509293380099154955807820902123614415634248445087888313218391304805250412892729340347246505526869044163075951927093571688739449295776819929520633804512957847337921224184352550295294319296837122697062026702396625364181934418351722139319033925647604622672331875326811847821046900701668740997605576534840608784238645288721844355310487747341109281200607505734382201300318570819219189943038971714001307905798262554915740994636965038115490822960642682003141715282671625915150976665895997786738009884359412518784841228135416339785856064142518753162405796933030920284169559704357000018940320700146081089558030501506915107082712231077258596377174525141823291097250257600500133717669640773754665581632437621306671385668347799199488355660067512715111807933689461920454790324413532812098020976139857906241236314134694005930645092437063860288329549976833495489880068049575146893738866051573489760204857106806079881381731797373100363101923900657669257677376208127101183672511990927994195663377062721910812999837060362773709608203246562534644596297582228073481356193735635526012234383560663764533333090101618470458963814305291037986521785739889917197197159629127579857029001593781415995850538509497384919491936798134821468148162974566421489679279286304995902081076975643264421988755099011790301697870572219402169591880916736490646647502653853202520753641584480688635651907018592908807707632090700972052833134547362087712012080088061320063686837311050289133453658629171239302548875955399020229945196915987449811476250828081122531775650907578934165436924659575987004275875094571765577787461462760225978528092031124550477306126158692677446332078664227053250807503139843949455166133269647688408152927222090732959993782279065031822797039207379552031210212201332262867663620881480440972223934100580853352398377714441356178171430409948564567505861937120371714445025970358008934919326338868823920983477655222705313966088574065311456667271587922007678943576304459665225152058718785804149089907579288496338804043167836866073574244233566095451301859789329473391549465569446385791018114206864126911503168620601755692797691385715737870437966572331574630195332132540772655158467555347197072737819398512615736449730676538886058378277558309499606901080751347287585818940583480227295328024268689226034775330203430297953994104573055260895477353144976102455181812707653539504300583739764156984168832699713850562480177051141392700458709664229116209191026086183556380245374997690392531974550447201132839092302257232289775799615307787633432232677523490776470541311955605764302745671199482925690105951876404579009207630207556980372995253467870889747817878703294538934651698475685783860766210972020916357790014853436065121399963561182584482079047593871611420695768886093067909483646031733367237393637530540060531438858794155319841548893648162213409477864535399855679852300775575088682673621693237493337782339736980948014951586655088921730991895719665865303144149312164058192389014576611362286813016160582737030313730867996933336418174898943309867553433525203132609817285548157900772049723711314083227501287911551681885765395194219369421766698158052865949315994437275157651495802980167244557825547542338752972961014538058464481719101934992492702605841399423168911794691401336488090624303034591291848191788999072598162044293772862699744162257828595483442284533330953851564267131581746343310057787107404042180683673231456864362094934887843554387188582466240280359074706411694998512369187669415554596864706467143933317301074377844121500686929608006219827963096801615182626957631001825501869880849478436177204679113356746517755253318468048337222796428186647493818496180160458502280507626426348117279666232641070472626441796662540720783224625262726598952164449962897027932501485085008205577892980125313762767614281224123254747495187680550507896096286724046914568403142364083124436756896283839520720023678411252096258623173247558474926588948447120905199485633239365948968713179534473388606250048447480344356548820513591847005441130362432646114642992444381556904688320282904051316056781858347571821351151034014574447442750016996509303850687102011439485406635381177030774916389672540700571983785798250800750619493565496635874215427623047918396462676036610296829511426613094812404651156223783753627437475629480599122711282862108846834360950446421346442642455126274837736339686106831676214427148994929543850608158303613198269617094444012684323929748805349169530243988558319761895633691905930566064970116705140527446677246247931647892391666060065111985297360405728465600086539053030593503958026742799209321591071837616680924748707834553331027913843537366806425397200373313833514495285118734468742343160943279852015177612417658135971288023539196557199582859089121978172847614836620531922270574522179186351458604647870623615798116631945525605033891852552544843661815106235416478357458416980776361662648149674592086612030010106422281030453411966812165605491452568658758064958860514060843980223622530826803503917575125487831316262803025800814563042284758497673013769514196576715980037836429854457228862078994208947523732374167500591182760071427722437470725858948271215319015222841424665790572831489018617881467657462617345659459665530865090211455846210949151861753448490666331335990522156191266695453672084948784646726419489690379384525712399145381577884906469344673350102600047997353703334616368514460524156905129944913798572579988475542633845825261477480874752656043035234197697725579567949462616883133174310147970834548745953415807742908091711818192890096654675579169113497021814816312734398757646403839825222219494573671987207713722124552372300554376287755526189811664896825160279298041101915250703422847612817518749140040455559859615849987964018056001003589427396276282158562384798509303056812430527378172469877082365506387420341957299621752412922556109078655972204972900909624590371350213790219420909511345686523607641293310203588751346501475854519005763786585360737627378660634937345190778858297862370214623106548020522716963528159864542445507241953154440733798076144885791534052993569555570761335547172900612645121644673088283441053093516349688176051240438533754069463128893809228940876550966740437550810711698147642676678244050754500561219299461034426056579964098311606951129812416647901988839945018121679004418236197743674488999410403922970571113903708897273145684068552123480993689212548121061110498583391891297467465726937542447674936443534645794943542186411275449315795636926978585132209527936263730234825381329456726202649988487976238614030257579073919509903675728993818247395926033275551705210522494021145304773800835688392338207767372577265973281577513783943326943971549115944834343431509111037817755837452152110889335306028010245055201082685312038611913467762943623003486428732452097814725978307457052340098587280950501984066338764659158361235823685210024669730661388929794747085387254994465259285003086076777665459515556679598519200212617851435310841116050520258212780314432342229988179762594677823212422490080015561321790854478983143950324334915285392671077339174096541030598843143716016851770724169477764485325564669850042963718647358881223626160510830921344800480713790061791551502398367543794266833785834175366810809491086612116105367172672710414240940724663036577769055846463404874503934694316557246781878003245089706466942083696293571616180424434028244644541643471643379843584855376350311536572705916169688159216380141247079114590410487559595680558768629410846878974853101807516675042846390058904117805705857414633627637580123912120829967700788363673411917781622764247946570162778638405234541430514580319544593784132553575742806681838359785002547123839817481805394213607623119107809638992961411467099815662882339565359697047269070366557925608829217112701593969250249494389451171146423402706064429342172945712599180723278974841015419018876069588461490327352465188117809369333569662869103108442192075659264724154143151816936240733107099467464661303171716551762003321059993089903165730638332603143745180435332470919960251451374853386370853208279888968796867252992448102005082328615166906413181416693442385664951716190887538984597444805073282673691369231846018738261375561016256809632279136404582981892187171643777481936433544447485301944142036617946530143193151207748901174273429156826803261563536228848568505489177256710227353654434559953117307444709782084185725248809294399168489158306493693067979208181618307274388282662360354341030724551939894947780276527531775442811604359618732268678091941399260965008824347811419931905143888002915088043648691630888482541567090426482954669962426834417554957075625676039936047962600871792153789380579869919300702488576891038098137502549379746955090768647523878179105044009391119277880593104743728997423904554978226494930135516000503935657515757826262703147092555507768021709930698797860268690485254268575636725570751858861156994753345670827600875673149716387082109654795758038573991261904605595871364643819722046882482194458350940153726413959680187530845817543900159632765573742908335256779531406441262555896691531817988599139935123637681940431777634774054618122529562034048233549084701841200123749182733034829453065480851161588230668665520339306183698514844836544818716261252665312871922532300491918459640585889651780126795088437316587190019251333018505586760061153657247271615683224476089510368577214476894835139925297866896201767957870302030457294730101722376805772456305282090784711532552625114823771247218001840613687852850480724613421112738219732476822910414744871372292862389942066357883285259190011522317997606264438159372407705392008319610091043077570906628062677998153937566796676541214419218485853575653296532170137228725688691825415614600396650302460489295311233017222087513034018368107079990852987493214611225558144274709184167859157855770928491574268654612314932440884354808438251653401940407896767798387361830118746008835259415223835318635787968605965479174809391239956356121310328225372621954703065659979380887271648521574754459009713496628744783680749445898219335923555916707348339948514170654617396435636576784432502347924627031781042305882662015667927439398993887149854245579887471609507464869869641613233017477756794133150820007430708109680857309665670379684598219762406345522279465232595840664952354224776494261291248331699585935115666606610189199596630928205506299451649462777064553018240541625743928678622764867138284948945955589217817125091993004098557159571982053702457749151598940042832654242939497198820696575320628543989037882404927021221748067621043907222851971069729975554480026841133825999625755392820052630778917703960847422363663769639498484180306707992420606815339909054755543865972985179229256366436469878136847501477325805844531647428487495408171453213403355775016777171527416989689104897549098286005799966608316440846286910872257547884271425052570586414088039658968774025559850145616139655766404092512379513998309295086281683138037530298233571191740168763170239606029646937297000148962258984334189371739133959788156484570599140091979566856293784721490470331656554096103043573966526407587625898564238135974710213953643268284772559771813539892340925439918271127526091029697610950045027167296136891662078918255396892894172533218584864477368697378236527951122293763653824208720677151522331766963693595904508681019357509023159766881296522456407867968398371265878457254500334295287851391488291978047060516404446141048807148623288333060303919493349615051222335083734046627643612793694466621241487084137642895816929413140884404024285118316153852911973434000348080402822337123930798974239693509766523322227879123427752659312297561113617244009546690377446815987152699004744069746172920668070810757130933778174278228815259712222194369238747313975717533326252543646187301124926332816750992743581918624237694766493509089155410819701197287780600626218269895373896762024106014148351925744053502133209762796365199330162610740404393479388065904018014836401282259307073034583608464978903247354707568486798149513157802400329796017831294540028057446904522496050422385842180857814386734453889901956786773745780994083631715680615585474563519748693993273253495452179755128062942442597666667670765359255814656228149702606493033316206943986290446031607518287460378176496053550615815777209102415127451988878653584470026522678011465863724233262510353005874182479898750886063928863980311738250246449325174262622316243606376964152358224209322808345593954692134541443435429130713970520254373017060188606845496830035179359034423095181665388560614483638154141355003768365854889797124330410122192999821605212831882259949605638696419311630132622854146349225464789702713443481642938727728422349134608256153135794831325585806140276748302941102684083793233325078551107252051573166794316955769793400514588302980216807919831798825868117554085348410198042223699790479177448560060545969979819252512328432187640440098728765399889704099818936663700485949826600076399418914729770133584030572735648575797076507866338903345267446162459697140635319325949501651148887906965716764899255545545996889910060390596252956050377681378668735446760921563673362787986092650996640286305715364787458252977618792900015643932593713249922324906937908363316963850011485090774654700078931318082298980285220563883898305936693178440341970448561139932073926553828013466217603598888189897342043632046884758827169808659446037581683691798237863892251046680473726240842745602888074001183394310198793756847626036064571979210693952595689080186186954612695639227287049714515611822561742894268838012986985877981219388716755594857485297282931225222059334863825117794251264599672738997682288151507359642809695234197054360756577888097562158353076594893625290052329834263420846257059289213142675941000211058122971701732863248171459658747148632655928516574768880739041344169251673013798237061088496514562828436101753831193270558798391330679218252236091128073459961557076630900339859985612876259949839741957050408969191867590107804870093295680976111822418034564059301387027696477828672008832461930738954655614285073183662756400834241369605963139153868974264077578371930962617581441558405733444326721754873292061282169968913090087168183993243084134644578892550489962516765905071710678702490102165678922979155373899513622310624721065575449301376199746291290448570299594008385097070055107054527499142849161714073399917273312373288006423902171937740347377863373117030591272677877592574709522306076029351861549435448994649200167229861994509372985311002118970950059829879240930345895636727718486002935533569112145424761631413809411675686314260874025273547426689623674737359283826022494574404843217927079817824151066247260950375158363636827043851711324452652390152449187910611675370309389281152959807309202359578544373437767627921086275960484010922020319875886407816473275510856372107111576125221055232679655966477448417065698860908676508720586194879381374395005376599807416328871648778398272611704659155901949439925143504143990243485197871525359840128991158831105316169724512787130907075654338345869804213016149846460364499123083959745632189823539955404986032027909219022733350912009183046342258689573733396211177612073031286076787501763224607380223377315146174821603140568659834552860924665883907982527044675258003768315794953038263355890341953314891782060406870334449690115796350321014569895217934106960251928586067650337520976613120966756490971584348721048007782779688155957247945563653331449379848369328082895763321269730530666208875400364378894299819145304044166312131329712049329277592194579419962712145578755040147079695664401986331077981234592495238531827835208256191389738095416136138197166648560909901513753238309360359835611723262355615248544714542709978886043581139664347027209040361732373875571480857748251415252752743234250044547900171618685294428043998900442022811169303249777733236730031573557669150987541577146041613383035090361251591927668251384831268076906787132639438259093712955947567881446247526612904293959348247225330934258009622432443896625051073916362515314088491617513816549813179361632301352262217539121296706619278303878250166255029169533385540874160032113709170196940783662540569668753398723920325144233279005787256516893562829894390338215956518248518266432905114013208865126195268593838240380778627810544597413091057335387107497365650444146605058907351025255712566128911203991224107345040025606391734742093553779342772429257911989067030173478027236312284445753055505785328512701688256202392255625979241554914312451911456012960868668927099787523613391740876912836595961041716516543917484761872727639155901463056946134902248978476704134774523856023190621203948656532914071070078999990209481242903641046530938021117089155453204422163474461849567936378176929596125669273367385210521793076386006872521457824349188293418196979334969363081326314221176863700247006101929767620773082461591627638212166145302103000104491953381759485866031318795595556170290589148144367916735018846885669388014787209481086773986953914081908801062801011802085927224376787320411021261318926786909304090648527558778501212725699462243677934086381806366954628237856094523477169743079591035406189162267659762714826520651000943544117986389254374995338636326258911503477518274373586601698671126526795889175663710963836737431682628492649555591395619650089181791330301545492394968179967083309250105722546224743216250482605356303775966871359725660239503915351121652027750386404935329543954432524835128094062482458724972285825824101079518071744236983708932860016913659019607228793510878278411552219901709419711750660509104561977801750155204897837591653236847993980776250966036802733532862696029778813592537749099979065221923478280286599326682706478078060959109496575407370136928752488003432047883904689315516273720080282157951080514028672651018570461551715241750474565244450475796096152705194723179416012839334430049960127727106616937131472996970123691213103090665685027588784245599415171912412123729111335692424932664647688771004213429477056569965715895215958272161490966901462282654564140338205320806513856447787433056979652157837222147864861161274581385452118217151329805977082391581182821678417062623663552120666591235325404310333716537854148901219133421181258002892699330531086195588700527448658876844837798439593939777241706864730526168013433851245696522002192302038883280679761748573125343737057473704974417750446367596734063017222046279180178246180861744748443466655503374293479975909078577827448447181891780071452116995161301045552809550220395442449796391289981203913858797113198579352338239004752261018712712988374321283555954409197809676472089276785595134500555507963523504481746174563658535509887257577374559462306313871193125723790619379395925345655346840871971575737464695994369471804970842845192271747664847059990429144440356762212665823328141916401551883945250640888729882823006501487121798894803284721545596056453916414597638756914844725744751034456171704712353977120612134129206065537460231268621590904540247853363608317753816868438085407191401473310262335400528782154021196694928390992996609617762085520130482902366972069473171804899385929395781878938306476590675355255332870998102612980362873386844919441417199256403307493234230119977472541876011269323365530812222041072472117166979777364676100519134166227517845096664621190737441553243756841237298726101854874994919755268147570819227050906072622271392494547882158629929218436978943695614460471015068216027347161409890274012212515012476907987155844910039247568053328125932141251430149364201809667398580566214927977891507522552437313920708208164087490159166956363709315851833317574491654484167154720908804420857688413930616816266667729104718240837566081392166206010067608346719287650319325817664222397363403658058097834061611484677884095896164834240991753154590772102730201682505665565079549748428477642924816732163007739955746753238873701369954769807444008561597700159539257699281860451629355002447014605576725697357076811114876270248556369542483392657758742134034397985459905997528282242976903492455303721755033153348721253583901422390117442364258123020005833625153683216983906582930505355605934786908338847363577222724642227179252775175683746746397353604410809408663304106963529531126112864891636283603420789622174775064262648124981051272277285450174517685643111819928976214490223907979166460092709132575865870783764810763826916866194291225334817689509903140763374709403451946258087193303576491519174977512712731368412242490571497548658742579033776288054084093819348812942873254581062407963827133226254907972739107532883098847441908480555364050857768843022224235089919650245696897634935451698252664770943108915063987638871768056535432580462111192625449863710433692181608903252388257492272159513874995510870012992178017297520254061145369882355718689007903613470677358610597254414758020738749068532533569166318658478202562176334762931912800532668694401734119191954353072074994823537172573725695157994104437966359575980703406123017344087727264474020839970063961488452845968088803069172658281862371104180487267007002517274955158217627136590361762207098176290072049930562506268114037172612566386495046339437290030636540846504164603204201532745468131666539793575065917112172586572985276006922281675129862575431265257481609852715212069716153473547145556627148719964709494069202316092945157762859010688385476269514351589743030269783820657365154786973814244233283519068577130244270438253562786006652960997060137090256614191402319629140086690252581540329239243970595381973214310384989952653938157277243145240135962835132720580167172804094122671454460049915803338113583613778700097924979699871790674885305306429248479379150577253649558073576565262573982081765544731631904060433210745156547263413575796897988238552751334218147689644635160786789140496646903927817343314092083501722103428015333920304833652262388919005649375197923456775299792131096717849634997429311569185417592063871094800987273887524205709363641549843526064898910107548928406359659122086818090284215539248032160959682149708391608842597214233567436942681218224385642261602228229572058462980701586291978850137613850985661110200308422234754323976407433088971194933614239082366749765367262588151347027485737749510031542841301660792494788902076270925846769802425391256175800107705747428532012578437979961916904965812636085493510811393746783138674861292918861534581683228704106888364383748267519306627720196217648777454561339692611535206753409348128093559192313615217933912115368986244867704326548582055415847231513644682502339279903337392036824303487693100308978600639447872883587135782868738944227128153923994798887294461773938134761796966472401319994484013509590994192400772399559829034745166521208178070256216771800300337084928067300882964067965958985071343040784254450769681204419303203278474769089642773369726684258168616158546362557985171619915550480139587652748098118742669601690140689268498985222155627472191470719858490559877519083062863175872283107658127421384734325874485167533372344176572591017357094473498032856471305478287219142975989828810037768874917524446719294448474323731608022171217201310876529860007111365875046801440207174184455725846610437416124228604965782059749386483698994663555844617656364313066283735602479281600976743590385185188112514949922323933761235501386386478232459809627800498804073712699805079334947885267626063876519706067086789407932912865042080965389844137686959907558328039275422522866935411194193305747098867094330325280408158565517980499365171933318776863573529577418739884656803901941388792011238622205807024578597551675533015807147790773590835635414189866541296540288447607328995126162670597240935561105892335039019235328039478516995618893546242487797808859142323259560415129491634609867621040639111733275473225245867269267176189085518979604381385413417081329446939602636007543249709821569686583392539775388168066872594582964961601136161689867957201830747806799573260931718099291688991908778126898460968145418553692564255405417285674896470390482761690716292900570390232841948447789831053986724857608394730420108110898266944595415265594703922931724554000233157198196131154726404409812349210370830340208543472462615118571629118417017132286020763886243889208194405056606806018030504735472873225720732990661026732655271950871563271043228943531217343801859766152519999403293245920983185116941431483291239970252409383448789282164588964398664469445601453789357144487141073181127391391013738048579194418822486583542822192422210587787942689699641239790316922127969517255126006891436464683097607053896955726015968916224580735420008671047601282109169422829028092913482378032385844023983951956169857345884144116533938000070942525727329594138922486922858110041911649201381626952415751726876558397802328093167831251924247810345448784592578783531793598145948281136217670119258192688168755354641503641884849944629668027670411228651887098533075768364652442662747701678433584528830326459485158498823044099071315151839527026646400263375123094091109814438563314724935050640305139444995852420555260535878763228388816452907404727679642999399651842536540120092616397793464814537320303979928177323523714157931106894095506508281004527409767434686498268651282515686436655675041964968507744052653057332532416779221090977174627477795026431919633321004027915116810777486438533818444206812857611246647991840758530560465296287379186671646828403511519058950388290114434658934638672319607669083212624485360397089587792829732485206654818447562410234608639128558329301833817796829952199620232671823816360828322257754902107044086863570278515822795515828331014578589962562610494055322610150736989751942653186491534955743652654595780311126453878106595647784520415170426520259687575595123398100757307956491989993260975723704367690455505404445462148997916375333220091199809598449892862777877793775827539990103565064684484250402173368597248199741856864740958871182819633650287442975146476306099052018710442166301392967529953549480096558829525372761535025418217874699209068631796412380688092010450124149053622352851710886722324026511211621640623914764262471088381619936294767726497354914766440640761389182753698447482020138631903172497104380828513413387098286315947829914215965524707454923667321029392475627951455554828548349657259753173940624569410625201175299086259766338138571102942671627303178725659574415687999814509792747352635720779846396846402467816618025347718208280668352258363650530191455014420749293528466963220313002118556806484816170782967087715711216483508725378681858840153858743032354526508486209786662638394592838013711295168318893809923882452541791922854444814784753584460256664569008131049859423331384156071944457563103570203780369313205152500197374710292423144013408882582519198736736025847715251671350392290424681435484015841911885357730199716008526646251179384581594861679412031472773782517235708821186733452422588039380894441452135862061354750391261560963223214206943577282714385780078672032175731517407946266625537249748244559806524050913412892236859835750944174156148580066076464345369744095570116937041277483499216651677130776527039915834112612060309539676668857977343704580414575615029658406923472012660438067581732035493742741621883469201509806774189920314424174431740723557908345433947826032000483350907474332041263569701103201689130937310413805491488893077379965946125175676509603641076633679168413341023959764390385849565006114993152649219041523940845692003181789970541399564863535879557343445799562795381019953989827857163612156644681477951425406665692002118526194519019741675355539606764114396315479373355718306362986435680469064391789526105532668141154451760625629966164442324236964326745871511842727587297429152206715450032161874329471040247061588385596050730951470630568408115421375894358448346641029243758717244676299473902128343481429367349467827914633853913292502174727480260651850287934962747962610717582624203706139397114518723099539080836973084826982377802961665838325677821273881906090978218015272796493052948606408554779432740811317429219445027008058599643820525188535902457962251286513317664814942039799207189115875632100045653590279237223403217853621249193218037214439111265977624370764328683391796402624815575435527643591035110808370379200720805347887417493126105036566665718003622021345004657567683726337157368953254424043997980684254763312980775818937887119971347966591369191573731150239950945633188631244193332462321711810940734410691639405108930915216618458841659346347253113184744051487065100108887202873446086402581276681309178755047408058956322517658710753687361156684090457710308644078006426457183998650399608532975036095303595136284259052942027919639494468248467130185121046778262600196000751315582649979359165090877637106458872910764682672680038725011204675419605132026623405181885206644582020284173550856560651062356558846386670194288541132889682605564399485662859590590182061184272808724120568813860263358349573418716930072338909550390523153701041179222526327834755532553696200509675572318804117042309967180099638367285619108427383435687454222877082508307878429212612342937434236028702428220778961912276866354462659512274335126341919710164970302292685466400206451164595270343271267814257270083477578125293160649099208721973149280467357532783503888379908888461390097329411414621436677977192376038612425383967706292143275401686172916267315598431022132535757500716186209783804423006025103676084366982451353444096034698749255947189121878445876587851942036502872404797663071194058092353403455338469976314631854285728059662343931254011140711201457211886308440612483055300445604703210676274858418865589700126093990244872885683525880337718547910096404236767135225281995160939429686375371181541921464289238541669344602490919021857571581566012734072233872414588067919246405581635592635086321708297089829708727467526322223317029019926906133349361845870289370501769838243521704270749728915488204193308870874489155624029135345296814061660251711213725320665443840782811047851311341452102772991004952513371770077009605144212060725634775665813064456817855074828409117544034612681151042815534298004790429598560397843409726648268538227680264098306794405030687717949608269990066658492789159061655131012216292214613179533021327913796837031071713295846579381852237320807625012068097000491266877500615334156321114693194657029835128937448811238702411610160424972436884640046822325433918744038413812802761326833106372607590988533436103240656026443246697121886814213671018474748543200281028469577999948486703915700922586108664991180455655549485647028174756191870226405790202720951179637699393688323379881477524402327953834216969646253453698180567958982305539767206212347057840077984200190121651789745346398947482985583017444768599383487652427295662290556923241820998349553236592974871566445683329907408663511055117774739095004578457235414577818192463829036917966793816880729792937432475407989057522222654646859572955557591311945855439632178836840829545832418789574316706212112948220158816057092006198379344513136771110443118608663536578582440199775556190065739489100428322010193859617984469469769204071449984001055588574031369509516204657853038028768865941864404109627011169635655360748130849335058757161848787439255176397199587453678466735809400516778140000465281388293559872291071694092150873380921106369336493558065386983053587757116610736317636685802528246261764064772483374209760009230993069668179586075211783372215099013183402761027120975300254598627394788804394661983734109930731911952382783097818587054814777035340825895610628596335720742007250507023436226421113019051074151843197673380738361265858651164066551157474914323807512880963628015980600325357811580564951064624748976613850210804132736075508942958002052911765999813637075447205992505492819512427381996776006253874464754956610268246174893260212126645779032427923924746652195431698401192965287329862500088233009747231045491333403628648163508282906993356310861003267613237166148011118744533740061563837908659098375114735260253043763133319116312106553314664539982455236614709028896705762256661050043535269422927911283804681127372820186193963297225790619536473961731957640175998544499749065964371510192711594784078681709480248884418453531756259616504923320607281687495744464864366199989826868603054115400992480302566630532594919641238677156386421396892606697365685356122954930669173707994811549566857600604684543400167309279373245658460823600899218042147112962365631626392629815195401935846951143798463761363539505545918284928134480077149488589828298433234624450366464701448112308498426242158790126098005175634597131831313902195349723897741863602071574661052622383827839567314351339967872879433733020470493050088781314895963089408910364933588449370459652893171819807181572880814166050545116761857949711631681704532182347209829996538157976714927135653172104874475649550537458942857353244238404949150709675686926254156074679742012101430137731628147457472432769984552934404506712211449806735297823534229322021675823724564767524016622275030294728733720114888851979494039739410335027783164326399370266755728035991985968407754362102137952095715280442378711427269170913844103009548027739039912078124624350449617572050570565301221124053514748040862893020408421423737381543030635839546409087104138946747848319719765387464069868632910703753406739724997897797106831682023680936493253016604985218741336179535696468580721696524724627943608861417714534412588372606307797587337544318116764317471322877837366175470979954939139704898011655121222873441427738668776601306246756642271797897679368733778245634235593712170087289546617946349488004742709683819042250794013081022527253064009541949950613724250429903147257587754947313656029015670613856531871972551351764518970611958161939488332088777743202519680626213303880854618451482633848126368101542974529406666074540441996623403557029378562644591554520197241645376085413646472817930745350607251653380577194034542682601590735761172999008976977567859991780813351423533124952208132702885787496657650240871034874986129855405222494050953345781888651230460574110964802293624232504081089389311729981234531437952021177795125797066318389725697980564912095438472648890489052264460965852114663830153551816067969195450155142382465941955705502305934599288796619402331116772427526889269009057376206745147972496298200453787061298973445359492225151316543267457443797260610180636680891681966419460417957693084468287150396669572044456754395122083739129681071000221585736520887093105698262632617449584394338375444696779475845122404478065671056145156846490581639870918797723379311933671952781371445203527945480444049681556601643657926612725244263285986560140741148560463838512800235662817590104272596708438687733689267085906393694428489708251042080079355433421745997433378363368664424506457045448129220312629428305632167240323325869275361412309860816549961222381630008698686681807976259019747867501674636490547781689979854740518314171433337076947127714003814533963987837026788549306838845512422002393125229752099578089707486683861470393174614274558387339092569480003768178527079819268127185816724669007151179766625802385011998361194288033322934388510233157149042690075990164834844835575145489949596397623306215858509494595971146129681230217875469238308773144554341435357574712481756216287487673565149842648528842450452484811206430316767010815442275403160177941674032141210300090677078412790182445032005985546547496010558132833141734379972435568971281688783022490581547243570381816346575648754474373107370928092096660441705927129723489560765195461380569681334399392857127003111431344703657587786046248006227385178911287316734280074257038690364937009658231686748566719564145692552144260851728650738880037433672154602826268036604180322539776853097477297474917319467839126423293463030084352884374786427176349606320682568752425586116873967130831302896218464834146782484947801868942102629507450530616959380604483639951892920324573970222418899328661010721795622099573039079548055445547968100634329098308312760450475373170123798258330719350746299356899466149876844693685342407935841962633337127374243422611362504899126452709526303881152178470934188630853011761715939392002612774133281351345286409116313598015986220495725603976826138327553563531158110693128576961090422772512334482007801603092786579692527988236134842778585055444686597395270967929318537480717602297636624754743279351391349486326942835958333860511278380285347554448811609904229090176621230404870116690978327318646033314636658118225357104020923583888988946517386184499037579778684762717394273379697027338386386836769435584493168199483695323297132526190432825823874247660248928470051651810270708802082654885109442764728064480347139012587337457604125945649671650377730640738136821500347345032456204790967590096172396658148625362875801076197307187795012092186729244038484331296431382155759799335024567430959903964355372445107895170802353890788587193133875090621232901439354673083582468543252721817058978949543307408932279605653983180104634785070653732538024811897685547139026535362230808738612425956791575647721483520678093141467519855989979450076145281491341119951867611394634831229713411200810206803646800587817370709040062812624720402494099374046371101761396800758034060482229718746876793841601116991497456581776904466784553076948350598348751664204142488714810014245058490690787838351457325575965123457044600305864329596121283877298965178167869432750443274833170998320433882820772326937153523510073232474810555648923235033642674589821613473359855866816624405927067889971286463350749976549357948023267148195551219035061407632493220723223631104140310203473842508795957236760385514109274229964181130592814862531188637567777085372815354546131376916970036893116766425251623475125211224442498361934863198957146327143529213271705868034045306831853564010450711728368054430271133521067072336611568488446890228721347369130326189348552919404215797262033696012554787692042388653271008706140940667351072545166381322892429609706174100482138880120487919674917511596261547885696203243603102577402713158256029916977176911029433757201616414113550197843992613054248187355110333875221229729542020796149098913043820509330368923773831582600077333214200133344714876214636741022329180803442032952440809549183161013775515230528275295109916136239421575523310446979336933832885958065177267915659646420484584856290366931402833285335685630542909611057738041963824222917033638032901957740653241410939220171760030171455678289128577326954934575501635552754562861831528568024330875305129898396469613686856942654158295776599526918936133236994197664539717749492539247883178037349383995071056503237689160756391627284726865116732530735656031231070657495645511375933939894065216378716140792275430907908610040399928363128103404449895480281605911386398431467214864008949220704388497310775893690101175060716524511943408638288072189932938381577151129738380182798865616507287118204867243287265660761928864041379390412984273796727043113235293082587582721030235534934110054656260839465287963071334195815094697296823949421936878008970348495573347344576310869855652880104020639941709138189445470483669184620826601075135342876080916524034943945453394078113643009215336769580728173834370221616423338853688819212921581121730458096822135125026468198623327490582671634359998495179978008683351373838713391424506061680532303178755978659014683571622832624044142704118391643155874125569676018566525173121936699264575427086077501552835925746414853581685961393824671783048307452805175655983257659144504639232030306635159174981668239583101475940830538956364579803725624794574378101927435012431979379684262323321538257364924741375139019078823276295673623929776186407540495877159742772645090360345760564408117480987554690112535074925563187276413172131727500668898496997729549165445076157022040961159696184146010272120921856467299839419580910751238766988776807353838126760394619103425191217321900411693358180059022187793948048050734681502967005201240009380844967732929249399592985408057097095995433553919884274149471463672357627274667168927762674315341200601445825440195230654189981766059256862958233567954023890442792543609913768876437423847091288539097282555443516424849242565671481899540194165698411447573634312733096847462106250294924514247634647394627063997006211086274305209157857023715521794624458608476929362729685295868257482335611521248964035315417458744918562838510915534545121016392241948452537196411790095385721035625132443628083806150057577732094172211956805632894764455166715413442157465396758760741364102909058947277436421805795582828161496080626638452661105025423532159150267859567643839203021591218973944641445853788295719690189318342191044662991577268245862103918474607535224903231634751456666595113520490129640008290373554435319808443407473980401597365037122633352951363258002284285727852788872904035064540153691076316531750714911983319745489702745383145673212626808682100969677701092876765873581270535876771972008278805538901475165339160571049467824939683201685582850471665664838431999597900825874947191205416662374855601390044244383942732334435573152916993713160132339923333846591825916258401816802728562165841684308316500179078888356027324208401875084299767988662272373736827488980252836776920128979670280553330681933583295193196721018878221374221749378225049192048693672727837984998353636037871062381424705450867599086058350341086538875297602064911233289884860716205571841793559575959634237245201451306987796897373551272880064146591205696927992239229640340279052908933436341344507913736179564162290190437278071047638647757103015690259282387609708589830683537578062642552205297395954298752871796872186858599107888798189726918849889963352216772200060503563414600029910520805298830489242000997227698001775261702479784086992838187839818862393238894131649856062961209861169429112889639260650180258505785109426612964302032397388768908027526031101520235630308365348000695184170001874755135016904882334133658702296039139770620209113972230734491457418162063936494332722292470558438319242656028112301749098715740815652108621056662535183391500543753569779388209631756049623009385520991627150763960504274286537266089053973648008629722615268329203577390573028709276117057697824129937793290586627954677794969727867440652897349681425257071441520576074299257470717852919462097451073117184323272484688593951403307650600047270693353657887739747143234672567739484692147875221888539445610640816555986863239367396296271458341997326248319439357380844905205198953758389824089531097920852198754033018333293548298616733623113567679565230989295471054542235528504868811431592857265027664821152983306370313023259493587587143492707647312634826553717348769552915701606669287022937302176170209726672869690202108955964729331787236318735391483110569980452859055279542161965984677936610772452660021133380571610979414792154891700004546849513544576857589107744126001334843638108824992975186155319958542310304212787185761997749604317645461479089194386906535902173334099231950112154171253041420713521143721363699569605291778093344547263168537148523713684517628609383310231535826297416130255762527612743643862702601013609337545550318940759724830401782117564806395827599006875336508359234141311438433682384729279040323011785010066862283541356090304698894877876156683596657270844895016753335698501631819660518573506362945343943728397004697061133858002351794191142216352249891809140003841497195875400422588317707687903039504603819296868421514971371618881625718518826595301552260100938293082929719130178276609937254772920041357147254407833172468451691871622581743321394284337670053892465573861058999244749190939518990404251561124249431542710574758003017275880425029035393563735736716532894078638405164242611302651283899980610853781136143093291918605655475188992278592188932867625848729599738782509106992942475048460611469102713907302533062126856084033754017213913602829847746872896198177314111996669780025246678983129429248739436082672839193523265626744326292218000734073077695788628808544986128877674362348679443810981600708291410620710110344127908613212580723520002445714245834615832839158934178589710854189634273293990780339866187974959667395267184786680131480838635059090943428646292622713434845537103161375824324341390274583908123213743163766476057994735008326161153345283823102569531728337371827155798297795362706306398300010189139577565532090559128255865860062797111609498231403450721476207323905790741832905421065749167909892902685976182346373859895056289493190661827855496403915862974235718422985973692593207359888730270851104484822989915563980318005101313039245652110711201790486415565388573633437824448256259372357361828090147449770418077769585129291850848148315641750594749808924170996902802147126207174384923324643985473374778377822880722262398553688073887416302616107406923423200421929405932653141643128140257931624672139584091922081399277997481737585935672460588631429158877612836157331868533936392056439002642042046847060545339848835258003211157723960056892428052286720900926388789473938541867185014845944103952758981108404414572147620265621686841293192339647800806630367591440389713445027781900125713102382749277957227612306242604046747824813294788781921855042027177228656712311448051201721119442098766118667272399514436160793667202258920630924349389824295940687156263617075679488331635707599029340952831180360981330253594939916800406219202268341249182126159905031575935918093562503250325267424934520784119786842936627976462689484751610758377585392241974785322396920349334760397970462694061164974695119361261883038528583507357628165136406737482957170499519069340137384004301714980875195059709273211581501431373595467720985598783031445402212622619887382873688682752752412669308841802856248830902836044855124855941429846576018936842953837334472671731055486829506972343775512263200373745067050005024948532649901401044621729470346332681928718266603682563490821587882663426017998638802419916445499092513273854909354735652174487084137248225850864005679656096354102286606470076237857304939362389111460635615201772296973542524986203907137380125214144805594909910815926238469322518482650596085883832328059292407314084866067087315148090364610568744007420603985813519205829145886792459324200189894046272917471856649127539818299079506406162216230470315078137988777809284091379085539235148592659711181248838917288884091974642720985220606936575814826153248096262981650028575696386207924344212251087023708820202312757650559924075691318597087022399243588906724352733892132299336130094039030515781907929397910817806864997781988812980359442831495906495622506897019941422582043363241464371319537179536869136594651665375253338752553311112400932495441665700307574696454846867981931137844969804101824079430359017809144398700845168682075671093294062095412482025442009076571577095343495242264626688696170742050561274741143157198091827952654346841568828981132137292091580047112482393747931139102707050274339645880324426398236785140326369302884391124317898880886711911067996337640052749806274913412321091328815076705998746500558093321561060921349549162502342395213897295749280159143716685347743779168679446540840506009212045429641314988746370152150939666340842446536416836452651834509110247228530408403230959538266427939854360355298271651591798690057766110776994580119691376441959009734651153021543487760544797604892040941723504026607042713285079235913112096954438397013987230287713831607830997083672253017537004169572794348224570455855159826632859572775346568166371923490952815084565281908539600698376925023244449402704946899437598017186371449440554011483018825159288157842863120169692158219282928701307492783437718184400891488730558298589522214009687277427538124940582982113559119788882065167781179407287373787443714987775298808910288840793412532364677224859788283267734490863160552114404214155149590427552776311906775989437440675798484026413807153818793780484641853071408355495341694054048461033552482539757655278757799367031083998302705598294362958333697292652045023770510269169519274534189182283831327576490515970003997034567338102808436685284610316364801580231113390099692771001311279414864280134483080234060260534095361859128928174365890715629211850874943682520341500432804261629797192927161063665129310813243502315901835957700658248241645008682391634051300560252301261540087274860419544037541782786034628240208467911358425775805265466892808402580300713171841741319630036061682300371888848802717808302277293288037690383565620102467008151371797813878498558967272750904518529356470068586510886649470812233300038740195734338236922504132556032150753829360166303116087550104340060265712717386727800201222728614267848265910504179538430857320762587055646786429144819018837515025241480471046108237845504744892898510255026151064448148779516474532573491073265106338531825007745132958923537927459572440052547485422005781369836483401081391181987674442473795386454237844382304556409083898347862768101492127742853896596734227524867211133897955609361863813476265247361086062741787524380959444179369910328657273321352509649823574811700246083556241122358863028842701160850231160656415309438765710161485453798523958513677621898248466422490067393192967004301189304238775843190645771901673871324434523749556401539718276390304235816635299314432553876210980591745885734671052261733249069305645969133894947864698625398507529322499644966748966781927858757197453472297060378488885207631222628938389562549585374646768476894270435262512443381050775185545891916236680047822263862334611958397532960273132087415572556049574757448782466344397811440644662171722921521615108289300767108609188416340355163182083926947602957270478540693989677251645335999858078088431893582514713147597744855403990112193889932522222446860927223408053623616957078960632130562356044537412958650030430950574978775300925124918180444915281271684311343232613995264486875758585626244397340793759452698305857905061822028979502098374193096875899134622350364281541099183168651473400395980206346461668623171164378769591361386964414306211636040776185721752178096954261464608575163031976211329230953027586159393266651510366931477459796765026090846082321525913401749315328310931314287269174620595113850939339846213208258113361359221782455899782902382448936479106789129045579701719722164181476600006289605701684801949967000546524797728559656690693817278590744041579848029925290638951626599952535055850117813845925745174537033708038011496017924452210683880280542789810349894852152536596746691397160062538460342422354238063078925287983862773546128134211087734031794686324095196077029815057380004637725011636536724711235042522543704543769992280425180230415484671728906212311225859745054897742980926881672936563277454707876872773558036431952747009063381517740266858117078835135041379040459546542096290155322117928375282671109038728821057875584381112058497373647224179638309949316520932915099958912511626813168186265139626192748004932432929107605117484573390086628024093070179257823656432332632519206147991487851551171368838235162015607523085423823511153679553530631132007144303751648004259060421455950378704141354783241441991700667102695457825936271841527056176604560585878502294208060104169136111511768346907565690598713559771216754446606981777123771239170766863434500465012572966511045603773716926554557084203464231050941469772296654977148750504516262690731841723677076001433008929924988901316487237178715338345299885227177938300081662872151823913140066112700992114836417885760798285011979725337212207722023666061057647594783955102535221620276160854628039752119416889263667170142305887515084988080298641712938008216515010161599423647783173567721950619471466972492626817074759892438482048244063395883144027075416804148036800483777730292765336775447141148474459418702557751048452298565605468060591939891602336044257768185502890466219681498938573159440555993627503546807101563002670100330713446808588212526523922832310835739141838318143753535573588040057346328058904180058901973085377868958485723961635064904407481010711339960671442717404505923062709525355920435515345823653799007897253479062996158947218077205081512032925766804501152408606865032131139083075336197702550857387925614157565397100958943558340868318570721064012692331534841166679977909804520281337401999495997875440404701876095894578026553757214666094340968938917376180255849322122976713395931551646214008253896376888455214967832157921912573521047070256368244690559995071929762038728361836265136103288122363048240915238839531398742754875856415297706342270120330352051312765161897822581112403112615663172758134402675460851826829619972564610033763672954251034118651411798957451860305636302797731169555072400620222581308051556467566431023516780611538832498071508558723791233882546022176750923578631777725644905289016954085341940804197081389015910384026277492694211224379692983079117465025369401082951662804387290525100805191519301040781225039311288914043259651578908072793204216584792960245292824492339568075120409382967237759811876823968814574028891939331772381301881335304227582856455257582861352233497056060039273273812719382266628683403564813754587413600006818264022695765597551345445409841221771730105290432086578502481832808906090318411702126993585403747099623665737596242921233449974870047310742160188779828516816446187314847556222475881783845706995507826609735994753798236691400323800631480678164729186666514686540505867617146239154019952570125810669382015801577852230295549376131804933711121255199263771343923890494357203245115988704683948349645567078521890348667728533091845545339086783562188934629788688404009269482697789400488264284335632694645097995605465324189324984084546183993684558849783309772343390336113951687379000931436162376141937735111186446934635003267788817705032264260131476570067316998996453777545657613380641502812284716542583718789570471753535442866857742138231092563921304178536810480444275748256664356339350846100269583468935892301509255100305472907553695770311053069450610826452740884237056306148193244097990258483198597162585886826944011162982767017454041007874911670715088736487405899868835971359486005269525089960589458141962625811635021474182883506190309312067172150006579617866631947472950076019525829683222600321011228226444292478457721774941513077015304945801218295980891284139632401651484665215714218273257912241414630831220151747250954607481316166931045482041034622794492710460289674539135960205119281069062046847851633593934585475290414546414699298554658435655381744757428585083518150885660770447844096993251886664579177573245886367824633261935933716379467589002954720284391014012128939112972614997574214427016318408355966033833983441291558808198371816067487546444732110585328058734275138748498713879302672176939795802564763504481796826875190558503334300123920475746308642668913563779809870463214033396859181930886348833259874587175775809015654085908007931867025023319603083382785980505095067379354944700784732264136384788323556745292897778243939757346093156258501418825501884226660164945068427152391830251113292700952523115725150427761532726098781836426003290435449327541246357506738810842652978625154260362228619092487837237030236927301991700274866536685668406530184218661922888122646664258413155775667343830907069203946475685933475488083699046575224102353269888990340055110693316682662843707339505567817963066793027346000031913050291779773021118737461008821725971758295732820176564276056800124515820856625748336626720775825861365721075321087305807993211496067078493158036090976028552392977181096454010968903482772141987024845309716783969956315162615071029982325973466540570946697020878101846109694080509237266359552719477241417908291176478870103832430521577374414467077899873408508706354005659750674517192233150705691398377934456097097912445283274528725484914886961426326216988577542103100312719708357844392057504117484152833327088245310352358565906117054520985610586606025496702031683694571673353221713944760914474151764961318868078519562033417526878020568796994225940154851386866460877077150695852368487307012123979687050365372158218226977064981543415033591365206277193462680831725963706729426064875651240007754076707111769769127512557858268585566954573633944563742708609913486035559732613558929216524141849996432552102654352009227459035254452370452608745232299570409392509441225907124399386705681968937199757296868995602486772200659361041671011019815313991640154941893857996626313898400411620055258539303387347301136198732031842232012071448813743939080469794573859932700728035633575525878077198229093178290055925717579268556229557356484982155906325451470769459595675400044635316584327585331713066705758507707195015300800765334415039937331494568140241380874380794141910185680358532481284345551374159507859315213320441258851299751204450938636303431773554732674955546474642325434291589734687290694779236709781337172390772714482033208155251382398398977361335774174289286460849625052455996383704341745414442014589891603389507026607367013272880994507376814937618725084374248329659568407575418582080102987762956265573015052885341073740728664369340749736978427158138965577966605385660332633558837585847813488045725858370549097007453491654076992707519144060874911857428375800927696237061095784393346764824060589138571795523674679533925344298566910178446923633440664651948780288397958857768511648355190631291984562366519143344910974569323566588500542023644967360466239347686926722590689908793542215588497214751974157437725067094185482615246654227899067610943216158985339225004434278799929502670833509300732118814672600774306301101598285474082177623981333133978958186551161007178673837860538392674863928053235678972594261405821050841477485223624862744648164286323772419270076809539549625643967536661944959982641806041710476089533724462195612614854488854272509972538037373501334557968641404963841737228918398878491148620542282932102387834288023360866537451692370711715151428883749642919545606790847332870083999105720444259300764781894380874982777933817421090019688091321445509095116223952742818025028475438306949243508881318547743010956576010324350103528415435993278150095786052968678585728023884667592433673427034713970632719133608433676196807757574574958396002173340174307735786711808482675103222955978378685254618067632401184093279188931570909597613755976096597557051358593810133131350180521995069032146567369700505158453658587790070516798271228896777418666656100409319519747741718567317411616401524871842164162581636539427940709587918853620897734013367339447454607397067206131869236272467439252598958348195075454590248298007247557543581777981695075634523601750436516255465329785775560635078261702742982083280196825580754259135536592676300158773144953865719520808428942767505915044976223660081030352522420256430842562997879982617526646034704118641754213357634376564731732344618093014122322705189718355275176689612239154252484491901497200181554670015278714022802596255435735787356634493407586968913451767992848107037895227411790873878503272710790367677695213838568857093737121818634697071407270452470197208914007548842150139959508207881946710728421397897389476485786480868494522117575669782511358224026936740645262162814158038833393393778865253827382005121191504607269456223291872841413361245137382645133304334752267848287970485696082463678543510952374402908432107941613069220871239269541919139466562986905492529560945923989599682575371129865992556797162736972333421252798723106784265120903171570659676016672406895027732977290921225530964463234372653314008192655223716710148123133339919536063375843153805924262647340155087345142855609551232070301477775093255912106818406868436527626810263705450692004135627746326878821201836765176383693147016450056757545766947763278904456127344479142870171799885696164180649423574089807489800756289679594770721556847200308822048887371957328313068678187966908544365060000061045985717658727821596059922246517758458620445016907531934445034231086444539347569499657063589668849435025399362095329166161583989033823463426421231750009512056380503535011068830599745015260714232728473486825466905704031766826325932735693134778741343857234378564650766012349925850065331420785548771143956722720031467087713647194283154491479914356242008053954929078902629227508667305470366010714071373386214013689288120778704898279950827494611659475749904544468821725160008154454058554538674436980704837306567325477764840742347233042209447460959604418534412847178062907920746302188657692761137902661722523688487651786394031814742479968364440680122653995122887877173295581251495280484415172421909366885707137958580431081278708927873552449314949382743288104403452701393273934703658411736245044445429904795246549375113077447480536359581486718395892752666950148067099405707533519310485197590785301614416347676394448529614063517718169189462375572260926095135337369383037655837349598655680828025206821686071652798817837989038183552925207703102767978049739171133081139996083479231619969869839978361362279211719726686335321311436782119774312412500883473424821117301155580761068034025980079307276237333044425990032139416765522143931883745219476395361851424458063381863354096913580711687905883806555942620442225675559292655303493183806468940933125011575247997660289606373803896336346249688069198412345118514603160242005534708265467689856728354801486397811741889161005356226662446485742924877771573865798467392347485006801120750711257429500548483462360305117801663517164315985112536309988524732396520075417743636852469141713886221641369044343400928033346589488949767471386579439014062288151703268963969865583486513813452055667699149762756574676743357546830751821896330763836746203446295189237983770715704998706595282163152606348728426038881371438849103749003582214667683239864390935181614464406219511112632622538689607286635039101886558130955204852334700392626976260215282177268610337794002377619004133415065825903147047670467073383236073903343835109622398929110634060149992506341554757667639753725199707872760311178771056171996314621702324385209956910483591055243296102619220005791305146174302716418000211103566854586552753287239786748610721264691401705405645020848145431649797002220488400819372802744307928026019479006410008208831904824408083341191908865743914206175367811264048963095871960445190645763668475019224513757701237113480808421910368711061907928160155641362320674372309903580783200408944887292800460139840967663112486108792392093655070129058393736475078738300404186115201454556593400685661101308304134270910653557411382751819212897686559759351072991727121382693944746703272034382025493869718077455536152964778089655863684914809010342552751071263237676125365053401649355385553376652896014119472711840861200752085287360156821484948201950425994611621681381742975877673657426403090329031710209855296983646695218386295219571071766337564610426675111491525244139873452668949243726235265366168681579413215692116986541968402527949244239288696091062176349047398722097217078088947916481537926867148630640224942544349725557934901080974873277042915198563363050342601066088169235222736479021117424356325899415278556836339007067528494902257419963141555231127262938866965699872689159620209570668202020137028131887430317003412704535394622197578975825632569308854619414041011079733985556282895937946699928802734409965884256970430111971228838511133151675601065258187573150738642544137186516541097783715908594438124099801138785785967538102623177239472954386153767142488999620000493917621452070996535479912449041130740115389995214411126185740597427990180237271632212337547837529385223783526675094010381179758445739304383752580194498855704436757608939063346715441915642788605744478573834684605010173518251857292501305892430336183397182490434428881233721556663374394232312155567094437615227698611335349962783173178533995480620888247377976264661262991663884923937300651575416995137626309224359516674778274174662345064747955786561080459563522398674247206206572812865565709627217001790039151314983670059180157178803721254302619169652335845725217057818428944735048249743588525838953297728677277663662334148442242506246317742289347657307349281592971234488181689559637289526954167547363253660183175099901672845971068886676859106954032367061467073035814372631806659703347804216179509408471007102869137820349102664108812493711189306033373181381183205478810774220422210212047607248838217669986007830837768957592570716251667132167818311502640480268410677974086909714463114823992788746077166420243950371571699279780795626949460622350353168815899505698976003156411563713579578625130011138770626014549913988063410649920171291726619693547478435912834344124189055293608786857424927088487309471518108127835798975222687807725002742120609121670869786991352169425067534285139471426716279860658392204880700778331561816059216625430291154027500930637940182061727630035681620752958432059276689050976983335060442342642926082567047702279640203811512144163341534041298999516100446611748937344539795933268749045462985791077438885602051392713182156348698436383367355435097624969213376466943106244901630743880978597028041362816260062464306047010395172092151968509716435301453421048572200588183201722054511493509042951980352036272616805675405507731881665286766325519118508266636740395524139826874248229550270744922121137509909822481226920700943212417284475086032175955226131161154319598313241344574289615886032437694239280714024078262537298111732571827235895420184279159158034349312868754887614002782060427633505210130547733687826138676405656382766238302372760027597557026183170157850819283761217287100461327372423198004886152224975731749163554044889440748575973710886429622615492864369268534837288599861253276208358723411062733265464342020916047840737612499462000571598085895157275545118635994649430265922867730300069310132139938946345310863707837652527147053184677746161910373826198336524522279468949360239370061538036582126264292250798685262874161576007013010447673056186955511350602787506645082791974272511283748499358549537881492452370291407894346305767428385262342850468528026889855567921976100461363212656629303099495127827603872199316482021317305111903518548034967301215636478632536532460071315929669225000664126731405527138358553393089564066599999350325983924764603755018965031171162899143709829235917243657290244810306400945112805456024821577391339700125774813936437751331525026084149184427002364574014130214353228674280757499384514564827047159139598017555976230850499914558472253616852982857617563877362286891875323002993464473234560841930692894962323071062778707944963898352855432774728472581914172561369509792080956389824646789249483643889622651786188162258264696151779001752239914742221725447637065494485942086265761107905150354847071106104886005369898644536879336696145772200010308696249611396718430484587437565827951279443702724732642431959870697602032516730218878596562193149085584833238476326536588008537895894816181707934846006127401151406899317105804200301165421631401054256102372105791359724775246341697710898024007848005363990084941003519289623213073875098168467385104821692870501162921121377913906016766057766680544203213367380701748883004257607070430690651178863836051547088400982091375064813426955887623524533859611507245947611048488369348407463573188459493919602476552172716263633443060550601481151621146866315147433201566892434168215954963563860614617146878315769075487555664456131542407429205201240363349160861212294532727747124388937270329898703395744532208172556168167866231571315073205710920382488150281808773645565138149991828697429224097741200907531716032944278958936161351623254169746619792386132935521559988900570509396059360730272617608429241112526576733489665674138688029130792105560128816052017023370464746326731601590827642124999966084057893776131687216333931143889753459170523263306320771661167585203732174887985279695343340554610825794917059652331633114593486278715581741575019631059265231196009684390825197991566917981737729639198557844314250627957946149595354545643215491826878806835946693964365303025641030348877168679394524487908512216243085371528451431731241581684248337500786089500291070443606924480627400782049291940941930288774552805182717232161450430967689225471295088336923628305125272710294685631669771152102929615524393737322032409081600908109280982579638986871803840799988463216857014980569629499228230070341312341122057119170756510223590926709724864173730283538487878831538741829914600323023305783240572727238900487625935640909232446652397172676106540991667758011696745149002830815784960876115184166451361110273093522160845400774645658077751370784257807521168298565841276935531639284870248349477783305814936397836395563911387368144513469864830496153806678000901082404054557282072089245326218200906114079960723287950028257827812230404518924073806708904779750807130548037858444103106790383695811649214188322116969157973412713068197827658576672931478198964852489307390946834491118257406139785256804052759648018236935904973109332590545514694739904150103584727721052286093515707455318280271116409185357984003083946036347878356370969628778721965344487275698634668795359089740141548536181466225865255310032012007342127730136876828868778688744545807977177465991429180145443518127252454752454773437420435255155598154070461019780035268489367346988904330852776093304186407751309319259825277861197922415609096018332948690206596395178551152929466717306940626041772144117695057164926819077831728093787403811760670877757131323096287616222392493782091277364783742994392893748509507128916764316325638669975118998105517338288108713426981452786156459175484361708488918983869630223683492042694180188668577152594643777726338610053411400293982043515938375762057596291323529198769911069037508383656837752501264572312450887389315502810988011659520943616816467349957171454945149711824971947106054266061005482950121273902459074937295129290121276940282204050748652670404866425037210389814802808759490026649900821859600600827365337199398045769552380949969366034749274595667673505387382628462268059923698406690856702024938294796007946761918622783379963698464678071346733180155621108975242003424179724195347986962087588813024064963152625897208196407142278358164335813473172454616991800250992956003618932266300365746635953596759023619577533616094310540556959365361170793189609787562538886240167382617279941803447479072687780752775609181615760395407738554401047685823814995233433985342888084599575072408332451674245257795630198475541137105099915901272383852460396496057530565472219905540042470238411193803778467473381968587509515795630548838651425764765434849083448973569536771495413790654509305907058679579115544156029162097439785844731320988998719910004632415435290238574732551409958075749899610157259930589726345851836927470194299025105975915195160644467661823348519600319389033218508071095545830744343677887079349899124438237111831024291917822327874336156907761574758054966705411903077222374837853641691804364307338357172717446263990633829200197857333584048447559165083088282429915693828719534348383103122110531797106435633154041830010252996056313292791167037246766871082965319455420985054273320447102646841206141654895964680216550337349490965821070612147354525250111247725910170276821158917449342240856138835476857297047781810661716402087062853057654562141690760767234770051590965564030979617112631034739801869157696213301266979449095770146932959134010189954694740180049620603895296796689533656276980823946923669041551345075428239028350953150458314658655011340420092047014172323379038738253876741722628306051187498841482478968905639294743650651580900274075181508853486750619251920718024403046683810929132639840320934656818286407778069937482990131978253618952995959940176554287014521373677872765466836186099166365583879040212375172291678581081955806741349530446034953929219204103197659302933135177769961343866226163685035892154443050954380925295224444881617096925097561256951634397251645257526629693591635571878316641715820088756115227675032165472904603734067309080108213723344629497271935483236675161705944341549340693045644344147179876565012989333953838044779913118989765910231374721130242398807610617764038386308474418479479050555989369635848996790867952665092950029741472943621590501913962328914450785051079961264344143931775749421644010009890716090974520927322109046858502592935765073306035295130893112155408440153059804008144316991340785796517529610349879012661236053766749745578384941233969896094764515042701802256262785942508692555698750783170179665780035518495284720617988098746221962394246782072555739098050713345953375144043921298924703105170958711315080526727415509549772627197811678095023193196212853503847748187088047151029992307740674855851593905195844021762628470223355375704655122266021467966751083665392535612837489294658462631295220006276482584028374349082093502492122559164743352976218036225290717641946857283407770067884467071170942253484768732640661566393526242129652949261953897993161084117972816100389967616966414958583788885335516729547314797336517382123457851850325284353108744562004149735857163825191183044229699407202237122813609813782065544530423647542648984016549794148259560696298306103856896332136635603475233636072148508066281084428398463848186138243550024036822023597012785786804454378032097204801529658728180121044908118237260990769055015550088827230705625680339829611624613867063824137396238614057414445604777353558445657395821942872302433072964628828776313032612238041955221247373879408384737965339363679725125887633983481321321844277192283102645942822451163041407530425692056243142086741255951736131751310904531312516949598931036729583139590713440370032116955785392712154394341390162832522225952475772162030234114241808513821459299624393324685094936561259164407156716659589820842986037526716677536474867285274090881925446797566274788277006071259411660571669054442485300370853687578789141550035856788362240374367240720480216203324848829511763535452174082954415944364416869696918173084070804619427111435184550308071477865493403347841120380015394727980555892241928144711384612381349458918954917473284776324532453496817252477138686483082637795941395397414672648071792141124344417514308702175018550575632337579984864209669748966135608820932044939918771001375650295193607970893140639831722303895797654172445859152084817981032259760152491975479196316140332782151763601436607433651495721049832639554583464888809306566212363329971421313827011867422161311835689293045633279201307406972098828964444689310580784747747095537036568748417502838289060003189251990833979225616849602748490668266575399158983542973513367451858206021241669240642775927512077031590212165478440698250283786640358884825840958270631063513159473169855021559228069448577643773513943018149174074088960856239079962768462694946286423108168271983764017486919066249867989759175835432470943347511664844079494016531931357446053935028451725509910159797261817964349796892518136576321433072944563423362960263155111331950574120273754988504504970510290627948156803097477872021088230130580899669110602890009448030560101630522925492323840180414549057369796810189217325296271936613196056102107784231579805676789221977498166061057777118235928005181147813421757899693933951470489276207051996252519579436083919634784334750988443487455342856976921158204899756471672838136030235463047559247891675969338381512027177152074371578618731419382288477111099320522151950924861254918513143046956102343825895290480296904465893774837165088550247954799541117591511181708922410005966385227836575276007305503042179455025247048476897678846033380728176019825641702335165347664605686725885828029048729232707507023712252622170418467701956246058851999459635659210505873532169088886127632307430430796078151365264556629541981375867471251773223444993623646191808467238679894075778591558843149047605283958093309755079260755111492185932567558692188716001108519441607086148989381148690758264201884807612457674229216862939297645575272090571806606119206927718180646505131501382658708364372296966128611695131881703887899080655086987090320799962349478705697599560493655180619546087549636983941657581405417593706293071040532989421232764232080109896776478798879824985535737125604916298100904267173829945468483271358028318343562941421666953493673971053267447437032270358363355536816671768773160398790944818388445926641221565086360391214116369720259281515054612887329849108128665086480433424595131909557668488409486665779513867623198532246113033297568707616311835370485276483103622601331718797290948207020443801584681562168755038367578787495320591425829666853959066600146160252169218811239560048042496720162129508104706259190174877437618333355013749815459706101528270615505038622505819362619958690044990994753809616935765369228109263677352355664861053254993988200514497087082012204769031921974656957188040127363148283627286992135283008041791525299443622635379936669297073870022318700772443574757008098173933277433748974766365284514960983253036954684351198725264744583574105061174569263547104942862269414306322302640357357054809894590976153254001474792538054215752883199626440777399862022945099548888186718708090909063013342641272070719632951341551171599741185000288694593235014771482768295497344510604566178173836364122706899166505965724317191119519094382281456533712979425605445682293434111968323087860587459157009541966031211214066621953771662368089283287167774200474702574391202566078099029155984095770585663404072131939862182959785733516697066355882680568016388879666375317632254966958572101043864157367970645002510678730271896906346634172390333411815409715831541302522522166611834893740744366567380656996214529311891295680980267040207757920455935436022850273156946488455476802351981082018455773225099315616641536712410051523266796063791800800420217208186069063285983203769241079303681128363542242169228277735160642787514348079041833450845597629446372699317578516094882882006769833717982023660967123424588297132580666376116120643615165115306860281422517440119325952832799852169819043568021936421307947138431894199783724988293186993626460214395256399282435865061229072141258019933190568306832910147495275712392792783925605825452598549363540723783823712464746628128542357695561566310341253307773433061021837751261651378176773346946880250213479253695537696926332856390861983575312276217035995027814088203221445576340987003205363390388146909018223862657131876659766933652604149694543393913797584936127071163230504603873775481257618736335883050296891927346282469391072718752750796592574002916716113365661742021217582784057700066551955965748418884908567297930632069225937529473879608705902871778251963325501002610929116142964962353459358885507097472321225785996522662092361485411500114551740423642257951375601004994227452263248250619430461701128625062929819802842721003485662678679748873130244864599788978437043375919752776594297215839976808628296427725815513956093449149954621240299771114487390991803609653801519045384377164860551718857307582292030923032477050056760304999779049264862884071299488776140233389379794098186159033100524785106125328081388015339381451222199089307114059436772129680985496534774424034241431329836418272050505224674424847047480002780141510616481746025836000537215696277365925298162849927755895655770580910597279632673211912279648270936561932684234961798214947524906296975939009465426144264587607564865823249813959850629746212825145027560826220434737508015188678034041840272995860665081962060829789496299789370356889834959574765100059771834864462317678171902728249084308727823491664293736630251191420616165079582723370170549891490669613011611493153845369549947714721724065417044817294970345054538473586329237073379275558648434260791991030578856882740028035793596864395367696987175354745510822390574447270160298325908881221228815058586655694193593976364650300422183140907257496305238541376139092204939714878776526503975969541275077408613951060883407950018378274230546694453791203473043571011454273424035526379165026929482098191037297459969150255165097850921352831958126267510817448205477595899333080532615271719638279447890551799586576114446384033719720248339629846323402264526089726339382857013382179391809488358551286819422036162183595869220640538575694957771798045343840881422302351233671559017509849741763150716196924631805581729297768853223773833478354000465395210987460275579935213401177470408439566285873509468996628062780548748852721445007873797914129930948181449381427900464733323020557860651740103634689114724204451962165065179008465653168413440875491610187759068934279074707648305568968370143602071084498960634814265974760816225212229788740186941298891721104098778207699382501171224839915979618021702485627181004613493402886256196301921951048978235370064087543140659626944184138452169746139977096554330699946321736806340962411890504814239437402850375789621701724574567007173840064661192964085937667114680713226066701419208287264041783716171832784051924057146957348555982034375343403020809386822773829285251225687411214427125075592826492088171252195591944621775754152702487123145673875056942986912345654373250372806619368849482527502870402073107878898849471704194032087310585405238300495560087589008168944415665083092860371439743879841353343598314732117236025481045811868544277528922283827971507256626870067764477285606863933388985996433085358134462264128638464778548817995124559441374138261022358925355537360630919441335427594464478757164640748388469393535175109707499111922361677140381808799585273444726853885029649442255200192804656491024311004251734802441578104710754118045332946217184113998592320490828034164479208951541963377370297141789271904200520708459942821515993397035469682577789970327120215282044624553538835443747307915763016912269299793651532861437917755114638770663422555687334232509880211901327967014134840911662461302618218006492801008385993061542986902486414616080042136536317291368624982334791605167878682358618757695812018614319795097505898401819024492253066825417224141910269224232051543018431802271685647274011994723256099529120371372417590323298966013045777783112668033016399300623883562813301245939707943194294240130658430527427121997796181294144586151229265459838498882318792900413985135563469434457070534248015161922687478557433364333702630793438854377323839720122921845100823499313176230101418272530093822707051934580492395945949896065273486636223611688792115723999480784293850817182534074724998429538481476963305029650353564279200305752194923073377066184083409226412043794565671540697115342551777055148164904483960017523584521449523831756412863914774323014273772753994752480334327907301585216937710532213279451638335279355806765540513802005458828961375849653234535659304548534981915678692512675632674535284891075501069173894965018188452851137026610421141320802854913251988714282932261518708154962178427934615500213890119978899339673171705656203163698282750258553938727573901186925597388613517640107778527663119849568246616379781077172674914260821410709798586728299592902273307918004168197631682521296003683475399776849591887826259352556141553907142828494988267820505342764026465803659899787608373779308677686280093174777610043557251887516018472262237525405115267232048615860897467377981424705672677004663290758424927556311060323197014456896570079781443909614904259914227434414380677916843595736383279345440921707220164899861307025026890100242455569050019528804016148260111183397080301830216806160321972291096462193272697584991484103501576950804547394212039732990166367523695960226400076976090242943105244833876598288786087533295341290505976477585239619082996991691300729937339175426180584362687041223009857395642857632689947764632678565253489932848957581194917968522297028129517641658143141396544888666219324514176714669440122786578195183168188880819570519007131754524222593187044995943235295646121082150640975987432966772251954762512284346260765009172906895358835647096521530615283629512839807392213967335284695207409887265086308638818158233790478317987917881230713156739231861025793031036169911225748360964736785434298086993706778463103767070433890039528857743871547727690186234605919100975345138437041463878445639820371290481652448614751051665260836991349817541000707677016652135640615315283485829947002360130207567652071491274597789402949149779019178410972141731491916997775071558264641007263319239033977184589536910936582547418924572382389057542280060709883282892064006811987788019737525197164173602650112930788791267653582958044368897864572354510636282798264298067923235637254821364382750924561890820343896028086915347480090900673514609335850215595809677658587041224611612222057599984442848207153771177033348635223412177206210563061729740262771318010551859055800299130942099115054360492112091626836900273035434077570810462798083599331272888802775812453408897433460694717173383863113007471992572878799784169868502881548170388213613687500902975090626509088173735183438586411371419114913398253219186804254463799911349858013124598156939579580615838999515929169348280489312784848264292012787398296310788742415346512353253365248015477182830492066476045991652804137247978982209868735775820712570044077025827693850840197375522161763733436049808122146461582801402967871867450696141595892884805716602221037920703501609053023882153279286198374562988389026457356359875904643230298980771652133040421799957792774734120798023161563918911405828673821399801137569685706310772537607564476500409683501497734228157957746433947261792574286516890378203464011353133181284011798895135278282235299970219663328840262899485178681035442319191568586164381803783549985537707106468693859272269103647843185757777055003803474568188237156038673750641183170507204653366908655724236295640667917505834168202950429252622729151451056167531564460534632734335194634345021948041578751614050052015462122426589489227199492096158208253498373933473052287021302413924144510828427126012210926116795425073323487976366711841024917544818853272266392644863017406366466693261636109064180671760178281491451839703177410927594707149723715735897609935216736196721715684421793083946252563953549652300383436942254568889230541744719697636982741007567461709582345530081094074204584082726530140381024355831261888039452854803703251073040976735458235438414046055521280991594930714294589399640362908028167321600319755027342015656108244049291178115344947826613735638510460152383647191407926446356652841287157527229204901396517370806184875957136027289231704944848577989273162854350398054467956989716462841334097315752784804556616471750247336177562059264508546797757408922788509552602046806614272315372118814182072378762773002436509352698641579255875058367473505790022851014358241190485776987683897788975678214696339494141395089198701685152201101115498375418240343560282027734942887442143192096102175553805167334897440553936729994126869990190878919940824869217832962709065675986677846550761164036379517957682032930476988924491999617902697764278131178841111527290400641047965674936786179063292742767197852805629023926824772372566911863470432145100308230274671254663916378116330673647949029572995951470455164236336815099450169165915261797936088205669164250472942870609765115194293753211645268458885757066269827664477079641034854878323162176667018880187115076366688560601390823118374798531492481036010634633606799507483031789244862982099903811750593468745086715220247280121919913836905000901110747404925354372069278516099764944221590690321761630305085861288060950027659393994313660685910542691587383700934749378407781842887054991210468638769049488010545177684393988090460523497435219698788990994654292076313360494085412264709482631694817769711460572407556081626220443637981435730616469996500233609257503581572625783395504818057585145974002446083197025703535893133195543975361947875954104367602498532751277148137781701360627454830599788983078470884168499760324858923406839960142130958088588276934599691584622229383322909430976265247062781886663748364068764299862570890456810817143538177892630434348351748317998018398441765649602584698657722694634083009244389478722029358562633385477383158378546168122349984168583110858532826647446181397556622469043079836168118299909459646009696729029768828056199769509953082062637839661260773191542107432412393878126305114033710128402600388661206012022449350927390230119829527570798931140396733719038478709958658654816162020392367058593284127148083536105793105769059338378611682333325790555468866563614023409907741482934250129596662148204621097208669735696853821234846655664025643705544346473022522914314828859922913712449914978642125315564807837495454047576694013597147593353686799019528688213900242381113975647888546832362378356821650457623468491327670406779652952376729388734176176379778810865471860227946656296608568489449360463560117032062450499437103190724783814476252195149083342710999948001288984924385925642081242976768239596141788561804442652605454580097207553889307615414581846829337698433849031278696176147755607048653635302414909657547483673153025099390335168046021060092288935371439671542984451914752194284743534224233972429539836038861317095731577977449878345268082558685373962855183012921550199947129235090329525104233265270638453744141361228354162051761736819137021673571221244586888503131474518996627240451894254464581166728632785981960927703796299686447787766968205473206194626871579081495943782613087932979753883854869211113403372129730888540237915052266689058088744477977678301457256590580590475981468217253320481147913639820169773253613972258382936558307902166616401068189191644699466489510614611287423333135421804819359964955242258522904052607036933949971133292533440153724732237577757199510048791814999402862805815165036377252084692303589343174405185089923074419188865820803899277666731749745405749933635412813284843640408131204312982091748080769996964573014213331479674608446421527854172619508568229293837112615896291410935158294571508165546483216564922569386538220250903736377621156241702085667387488341300957619694401721637888111491971126726173021312341108347351775656507136926953188868639434037578362036493871032796368398027711180635836280877355674839962885444374441196697514121779185701527868706675532795272615042782674078453958643010577434347434262569019486854653895102109878448439622712967018731903988414101215553067793848217412059144942606752382581962085734123570295852959342427737829226857900446323837626463199378945253817118720435561551092697115525893169201236000049178371353824882962050707671114150663092592966847157001831218888002711793621119240523362009869709923539629090660103764010256335617702078920697022127074913243192360442047098136250564358950538060028590570177996543241460588731254578602624672465623160888497246597519146098150633697959734000772122453275066957899168044713095389934206338539720243169647148618549524475095298818994896479946373416648985710198768468507097802792877853510139923820701862267822753711704970623335248605203939513864172469180661115099924638695673047996480252403468510514297448955439300894076062685267366036333794900166317890706341781761343713437543858386637992493936686887546465454925599447269497249142839005869256192813695368192978879709275320903889591414863792174667850815901769862644012417213646789042909373884429981104629082847356208658368261791662403158031251575547345831447311204630278921135461585512501885857747816428735151478287204716087365093471033463440118961183918462174849950862189537835665685914626394534274132132945201003080609678302714438101770822137741742836605935001308348992384382150949246369411036209815255692154826497591650949510823979425082288731453566139806285825510655848040563900605773939882396649786095861275808163021916084714365328601926508650213194181338615184985853909926672471064198416494705960309864859155429326493891011084198930972791630041188829499254516417819739400959587706925557444705688578903917847793259930033784717829619503188988298693636055160106324058414537573733767705647994190820524555947464299647144063608456925983654587254327221936907314505467318850752574152783823446260027661306813655790483444720958632795124438293996792028791351082318446763266779419391904011849883990869052086516770339972517332074219117293852705619309702955425121315738193492683485111918079774595419505891719766223688582296066188882156335148139984906908104964978312947436358286419689099644912843779536352705007755381338462694371798241736045873265885776907817295181597968507376655441222124509742313407998500035407595819070270340767328916853511800257939460996581165355427002846693785680424579029058384941634482163884839474268990865435821152736274112157953602477447838582476926917723885973552019912518156679733260188803850871605506687636716346009381034523919681650367240283216414568212676543305904889319877486140500416650601395486629972096270996939499956023337671260625176398937766382262043529278925634528972501613593008245673435306763673737867991790557142947210573845118092516565686834257119577161151767255584470808793521954910999246327775863416497713643362169860362380674289618136278337503799321803042879742546740936501378370501033725829848846089328584480373941795539035752246747820167042224684291903488880086836198107277943996575255809396491059235376834849948547692721512652799261288447436664819298118534889250802665829498863143253056805558893272317506431549841243942278892457022263033627560807009511714250931330524192580135046709745073208998063144664806784069158678972125242261103701769790826163685631926659183991518825239717644748264615905007783717378778497832335240398435614992315666292117111757395146817964580989736579199009077490454409724704393626975899238088848304043453680598064489585895833078563586234955848509379964567902401509367697937291820055684103215974207423127123685883638291744620116278615632762420647680171539411893930516438485190846016660298775226159183240905220944286219624049251027861832132057341626246407349435404629213505035478111704414964782938608111920807587621310087019901756402692073750798493806923920371582886193685430684456145009696770476523767422001350504396262368382672959410876649669376595461555598283146122076287486150514791518164213184250185330389803316298229111195610807659237696545627034805332067313155337920596620117090999610094640083553599432323610844959135048298103057647058217812516994935271972908120426608073462329834030927191858176953199627608711194936955709709989525681509076248892150973784328396573809942465532223101042080807077872287405948733872479575852942167578313233550264933190195754856036937746903644002144615428407603161258546608502510549478907608004374022834997644727686310949343996443073237049504245445968005512953080588500360106777655643719107442389754468140894868209975285155863236485045196118131986055215755864350879840676246855870157886129415632882781620486599431597784035557342544615042454480765022274548343600178616370170662515231397250604780982732017120313689241858465196343104315459367475594408274169365850932560310489423073834582781289050112964587018272908062466260073005304556744798596540610575087425979452192797952530760604049980814980652716169567748519645914433891652889726369843985972961891546084374559495799581264163744206193082345349495653520553690353265103323341210576072450213465784229806636641940640056208754947817474137405283247762973746931138384998704342178083767982767428494036080548601592452102168656845550672267172498610586130745118114026558700862714558751808479872525772469315238417060887363524337267005467990574891708390847112245938929043487539603539177407692598454375863906686342414048547364002667832832476347474806113022463237644909071449543808989692719897335141290026301099930849602833764014560907625937362265632141608758031501911635816305795449931108729326207634399464681997902686460562566271405840219901644651804306118556570906045625916895722877625162150839384789094796855245250977713989865273553783007744392741288433951434111274284031151395896855878161429500390918645435154081009282396087089529455390375456755619944750835430111670549509224461944769954647918428270411124642978826496312161850089858085798005119671063265167939508208745628935980822824431352530248715212043964442322021141702899510669332142838008553193013704240147563522860137637982905223618582835141581565470640925358868687613513291823485284186876167463385769425523752571884998004008603304239064740435566247796374618016458107152505736209871236962973814340302168862647000461383653924532569876435783163401429914777618948344243499599211942285416349782614165276977491022617774153767909439523022330828861430085996085852999499450401237648698878436909642914482101158517636923804034089830968912444765640940690144368763130144057883859989425689857309978467092740901966348234572475597467709797739033309981739216196497784598277691926648965155538433491702935916242456371171921991761322785273036537708050739694824880555001284358840448472109807147167013370196526503352547334161630096381946375301314544591100768454727756308557806312043243940966605272714889976382611825102997984484121335850574890945075783272673237450174025721780467019921206222612047561776484730609092648174681405590927997306871750710923509982221829679134456617374361950185126463003338775493577852424888245269661352570914147587542472242806357078451643652245395382427996926195725272353508189987782572314032724736642865092204828516787542175719764042756046084598904102611220231588215176217469655388057483859978000550418450382883028972933807849234989506004306889826513399841893506329187577124931749134980252449625367377679106422315069002705802491069685724147905694920561463948009950368782777633464324322830426456257968457614351160206022368165411849356230701331988007648144266884704472824107443360602026826916673421144064343592279185515180209506961511105589975209473173030056352054978317199216402062915478199503202368157997460579134686610498524565844331906745723669300274337065286412323143398310166632195957496922633936878359830993692542936367140368869066415205010898330562014100584638766512080135670405371516259907807623303751320479657677432183263555525546337812638061200528157001346968297933583681854976966166561546039677514115892271870293536659828362333201515034573450250485167390923116019654715396382331199032280454147038749540470102636047791981989276044799090313297004670734479074166513724326565130122800430735407817851242725935156509979432116744635615799762302531269780916503898364464243599723885912609704954782613651377242453906885981398438312781468215008985611267054183758835172090034863199032431469599277886482299173121175870068707434206876295298224244228694340484187046586431111441091555323028775968348418947914535362615578453909501915129049692361703459450640439750829055817995585648972054124736136276581693575646162045266370431897770173670576506225726865341198513618356203852161227187913012530427976937976714486819969484168547930844299021034619081813058981368250700068320875034069623005958524442863538341738717364890228759467146659663207874959242466317830423598072278894026135447518395989989742442012180944780229089980126754066153477580351266920804519432417670368722973960896601679070603444579718802013747101935750484893238643384809491297526671173089903702635366748571305014803696640284259869503611387774993533533843671895782229319721817151332462906501654009849774619691469239839647390142431105354235566749594741358218091982889094506503152005523303702558984583692626086951540577154076419649966309694746811341081441348688019328673533108197304358025345026220775087942582717308624663273340999868081523730683199164507459821084145451846711939476169607267879010533517304553507928669500984249176100184050247031976594793670255050909045096465162263833033974208337605113377133009712728803596261168812629509468077872322574386599205188166388397227722853875914233946971255080736030169671542382556913518309958967825008329600334888020194662677970996251114312878963986634041488978401900291393657353658873621100680197841530086987249181369085714638721331863686797895209478871726901524814391612205243997854188754953952110112679079845789200250660490930461038659925237208365541442998438494180603932882785871425937510756642031708119150926020221632744596315770283206069482561426335737664969384459837565825990707521560885677205511890789070626607051144055540340169099742516585926676987299527973697741627773863622091392526972749305360385806845556197545549023066963585847671163257019086648079062636788292606685283942369310705862838283638866581486695182817769786791795221958534994670232376272896309862965946436913987431391257376378977637981976266951973839808900234733847481246563593796763798892140389107558329655005659891750293631201443259847643489021653775674261681561621587251386326932463874726362692845790162209047509022365039778148711276272803138721193797561850315482846812255846849973435519592405622170865433363917040206798587079827445493237957706312470748630163360163069354052211224217581880421385973475638975191380785984229108460348441425664216167747464883889790144906266867735291593696153759286118563923034679450042319905228217233608763382944679525832107734250269015631480537541941921313364001325007987616460313370172931795877118549819178495614849009768868066306581285588286770792978072552234445620559980993899764209945302136281499500977115185738046127928194505779461473541295799874359943962641057162768785123255150659070929109866734202838704336642181643116635596836805002547157925219855450770692390211578360028490109935770311938848688374821946127544080742605380106463596808119778105384122490728785093250966997895215122552559269385754594772512909985596058154238501503378501261995968224949471906508645076108598078765362986345795511567128972085074868300106663260658098695350337796458085593070838356608355624158613430760676213563628104257835588333225790338364976376304465345026142705739629415205896588392960307539434613895241134701034592810884034325557356728253081760835159297951765679555652330114966934517155995569036098941546418925754219114116647092399053228257861701262702098769445912729693551021635456493698979699636918174060945032187813790796487985194226211472336443601952249476333339186282619842401299882409981302796345053437742777175792825984066106879186913266198285570327971288922666583919596805160167511747196995493604355822251520354380285805722248771286473104864764323644018951489769385485917763507387864568899070671654756533589716370472488971411524335587257645805884865025155648048472788901174084101412662278356470365413285806124805395044835864920446281368274501186272085791978279334963919126198854689302335101786455930547208121535138656910097670559202606075303071946604245673025051404153839632207092358983919713743385796969495599141103056410011260370992387453995877214593669603531212195309818024796610367186508676152661764119795732953424150912391840542640213506827792818179583093129957201249797914047620616278237853936370079257002148070109619520502924701588979633204849826638809943706747933443033849589580983125789179236777885276832461197103899277781112805515658126704452977764124168366756422034237506498849908252297373997321373113696029972203552472095547281664692373487593074744731278689487942656951368228182195246527436774001197184216495172502716814938819555651659036688290269360633265903885157639326773361740533678608055333793015992204503970502329458934171094271544449225794687705599983137725604172712083030374504151327698500442321513674207229028542141422127334985866158904100896468728394334055188692964280556130611065033886582160944171457389620338483457420445788069459539218701486894378318566592148926940257454829616979865183188617176776550424990032871640401132370911210332580391312574538729622434257369188432304428720845572937652132632713560615783410056011793783081523580389797314131042573901291006077846549233324916096112457403149449844484569062714727464827394910404752255687216977717397456428218322319979428506374717011537257086229240348057556569264294050847010627682676974271717975656718864776088185664231998378456646673194999359099562640112016894153366846430722792155407300578801814037445312347930175477424262894735038238035468971548052874578596045493965939799144867391122645410072235942266982429520359655336239316486533987512716613908712638348302089094029026737483158404056217432056888913591236274550584912446572727388009212776478787054819715592614612136137736763320729453968765121980986120368350907567385601614117259697911360188786672870117489113002572511756125089627610576440664278639488093173736084635441950145818279385853268311681041741557482419327852464812220815154804715099995584152435938396320229940896066758981311079446168112563532237438103665417725626005409716877415684781413147008999728696602429848562157344297476258746486287511223279393274980932590616637762933013432341627325196338264631572980374544938221432060664827165256295439475433824809797290039666658420486543030568874175447843136023817403803550221563837178036916392397398042513344711090373840237138880753759527812564897521271559985046552490694843460846744255146402353736551559060073496919206194290409952909460138625832616076004017499330994218209047112489868925919177133626291083853950460168401498318765823345962336214712962354643712388431384849506648855218963623993135970046944570544233480319222514326180203602347908172363078340794070590304576096639099317860446357574014966118740904436639125789940948401913925020736370122592969272022730212428337631842423730703675885108499591725819507018019259681522490624028353873057469965255249109661273344189111447709705983792240791027260788990145704838168920413358067328502031982053929279698325405025541923647251437736020142722234512881439979348210318791269481407780705684183467428779895233291052584149219901743997634572188262413988358852772292455777956336207570871249122321185119047065672416136562426995285680193117611653259271474219490492010352936132815730794016384149387536049272639494525784867311064616743696701221169743683375612027473097235206356759461841155368475398751529586763051322280198396252559236732839572282355302520658370768777833617838314567281200154376821003609084693560077012937378967949779721592567933934213665257116010459926906589143775813946220710745997480979444815633302112906146602924008464222541787574651880546388528893706358139320989388413035092540259023753811958709518324645155687132994114756665242628928659305515137578332247611070125209314140503838123384015760842312122236547569670599379512600054546156552335017323860717611344816224256832390769067815453802882353469126389562506531301645357334483575908654677812837011840137529540265794603688566839429884292612735117331847189417623039366855817994330601378335611738358291911919498292301174602744413450478914963431908284444971286354252713163800218680847119790119414862656958046720428116104720308217442553348729850913836453354015205756315696201571052043185115327935725773666855922800562986772801120394754831826626470024074946852744034998865524130013944279519895662970520813339462897624701909183235469468462347245439912074641716729627891220808224852543817018336737462924659319114575637555954199231988600460236320606829814537007997893580779506850610587304149211168472336382098110520401728233202278902399969614636691869667511581047271188449676300217901957925558645899913638337632734109021955707691089165196673744395036993015046411051578409468833223157057179120754255204041727470943009921360551449284146848543274905142749412546129228275642412284126397163663155618014707017731581416406804339502819132614394789464425497040200309856146669513110423050118501930204632238138290951764270317730305011778875516345653824870297390347463823727909861309365372976821933783806425234526113832943239269743333497585641707526289805028622606454114340702330301971512569095401544768586364782318761199786158503459406218349528387383850498986210441180293315325321205638686041029311382938192072028144634615463011763736413852957588427005534947184572789625633994142050048008780557031044250474810284056860550363086817417636379362020425796845582892961895972417814088018122566188314442229662782196651118271605541050251487979597067700955648941852978233012093702927312997412554317896034737338606778538033376000547048801738319759453229239870859643208070106528031012978904679206565825475649430339071857377954302356024345557456620934327947453979525551378632644693506015784442116383787704540118463256752280356195894642791201152998771687886176495933876417338504169508371533198379324612182036214665577337382912538040343145036983919137758219684877188973392539338517716609083673625146527115856637663755483225693674053711316591360979413379268846360710734435773150235788284871193693684659329216515315766126870931503604663335163394145634104922368312638076901345994324295479830153332736560996454419113616751904751295952722752985987329814315794005041590752822315083799756832977882891663847593434837322593604996243039404751455158242850387594776489934717308368516072302071265427905770934298204085560837255636449658789220817292623201013782728504903897069200481910209874260246074704523231629692954190735232655905255556503591576600618789512289123866424293188468216302670000098801615568112445604965747869453278765100731103834874688315335167465590126488155449879882096412211230077163191666583173256194731111962766555773527252978169301789518545803836711971731232806332480183374326093140837805268383569422011518107930434859914706286735063188337186481482167693991432577900081259197819366359659629128256588297067931588248599185551677465098422221489103594733190916763221084285778832474969743525966646897148746230648331182846890913600090218956881145029219473221164404351098172238873774702884716391803726450074558339638042627839096703822871326270932941188016114116560867891642947996631158010154639557917242460967670360739271503501939241654841000924276506260432930428194503288743864275923033145754367955313082568680080140089507666914648014136925281301478690253325878571245168210725604360670449767942687176343536105329575929486409856146648684732834072712428026629909526669562099580991831449852632473488756058881242731138547424764523242318660341250343887276874587601742245733924535362840799677659713730862288302176271423592027537935470035889396061597747395298036178500252768240822439357718013708907937366895961816937791189359022208692379849930798059038328975590395297841136280549029066345363151243565278565222497256240974496233393010370054885120154053908047696850898355969904303614091679139496434977621361209206385304834408344164365233330046375791150040975887888376014060628566049091957630460591812666925728911497234705156418692549688208320765809866196182815339317024592302883904085105524211573896568003962293665677050721445788594313077941078883142926963863005862713301782649044584612298651903776560119209069414430108002011930402838618866042806980566912860131379485016548773094765341484204359105127758988445476400671413274574676430893605187464089025999656717355626725841203390210041566808487980888285716320978259458466911114122139675370312488125419500005544584216992520450981547175682711735797671617674842082275126170926071117817036227988788425294134927584717627627506645399893341644884533653595272479622335345655247427338836524330202738071021744877943929484678234098752518013999122684728702518127201712136028458041806489719461157643675261982864283489810050575661043380356675720361667972711174771246817164130650691683266057706796179064463653989593071681285305526851589590185597728678567457363077210270849501060544715554383966962118246519832846688880207498662288067593003323323484551714147748121280579777961530875201927089448411146646524716749972001896991661881738623273211482621641548569590799252968405634047538402234512133694125985317862961438332587198270067172957687970197051728480073983427273130084152030108449767138372965721826692309204372837688419656062665901353062020309217126632963567488294039829906743652451076125933897030035560395768902292266693242118373285135604631154817153003903186354742001440185915335606312823989289839724225438290994066559490185415731753060720716951777946771262988625887771522496820253993201147733885710819211305505705026372344954443241089233899766084742005896450168684224271187112049337310287066533217742077881570433148785100243883675743209089824928193240798885733039725455128382798063076881987515009177962794678033706598099448589810719680071061417175636985674707169183384805251561756653065319394940028966706530294739088003787293636814181286725602878666456127812003071780200036874533708822237752110769639867678087054141871002186096489306354015802385096726153281996293264377436629986078250299275451078339024594624128256776085724766574057338400478236653302492274556650984892052272908569799342661123550584079312176899825407781134008601324331909851864807807736642745632302609940234740414243378316041548294860786417276453561266471334717390704540532707465688533142513599455530320402441452925399921529537427790096111674437609714018990768009512384227010251609662708151269794258350233719611094245018856414088042854478686564487131765837139163492155092520832100981131018548646367510459022263103714466798145692539602030253804727817451093603647360867370470603744292618579571154626376608608149138222733752712467556159609458904419722003650064623223716311456057360445103727052040983762872007497187733237673355308557352865159908182653039705022242593005776508876129506575010812627253135030098974664086205228989502818858204931496529389582576400727431971606675318187430396825561717212888354758095658464175192342732545291738236761517059809116138530981259751002927931339992880787464359990863043114889970377404323246912344310367755378385493781670923342076315803190259815057850168519109834545633467243543196108553195789157796010886352581264058375574728880453732987552545781581425584503018231254093457908131788732226760517759201714609080359937690891219235109087775124507294419411991767556618863210796812854329273031772697020823882661681422804935981134460547773369548996511689189298428729913323554435126292748614310252964255205404085408664024459000384496273304528642599878574043993189757851617598972615429559503120511305557817108410484613850165153989223197191962539479769554550595441179009210928322462025093647882613602093579778693805443520188456249039827206538105782023522019734773781016527431859772330741310152348839443061647161090700672004154086240350766862803437119081132387736555187821551039352998013910749702250601994933001724015900519267236056285606851566893217387450655261348997785807083464119714501351480165053641717328301391770432663504283390101015872907959300015791014507337420516822447699804462676438789082956035169783346554691648381988922518943848223181736504646787676718110045660777111241867943176550281341855282376599141726615732689383572664272076974782894779489864392232654982295100315011129969324501560399012780279327565516207650903905038315487497360136291470793847182051118431769267444896213696550218292671655197532944171776510264189141993695870132472561687060949956303108444252336966848835013261992841833510589412441762677615290803074412780828387379754253433585489021084084018703032368794697014373788986217034684616277363600916206510400467934352262389331578925500045365861860925165142843813124469354392352775659607117412929349629406545344521175539967199045099710668156570541357199863644145350677101866367091858129935596364968756629612223323242338431517753313192975633705925771386332155793966219824970341992767965897546020709757065672862530375286778036376247848846169076868801516268588102880624405120477614047753289298911637699705939908074253217120723805613158239791254848510272524410778843245922711167543036563888596462469612715223820986500431068960393782608737576322124628009233018891957350059311241201944136830426414075499893575015921771904390992764879378410470910019043587291276847914760440680827910717947650887185507924520933688024433698404582713549637194439182634786346290274871263922708006542609673727828070091932044794149129830382663379207365594990660462340326685506636892387058525048019060967219745504167312324921508636560727373190355238377371855159107218638674477451256428937622372986791318075858726091584402501651323946406355883623256593849938348712780399789876827238132312307387397095586681472871518446354895341456145564048088178716853827548663244576205371944575613297596975942118177503631979895382045461966120658061195913396593233508418992112938342699911246220533242447340829310860292892811555987712525982922925591959941917693312656547781196791213090671857901967880614454139728901185594058587231702301004168897198798999621027887888598905444471019772419769982510893158413703133313377975698065881191947489040423083254654777636280230289963687014649212213248027402402921474784750272839131660594992859350562880721228871208100030779287786276253101594212204347206021606940443702133365065249132652125641024001562301377283798859556866542011670627408561955180441363384665109691681716023095099879367625234698476333680685281382010515133935975290918274579780904825130060447986004973911220820170387371612154662809408868348472875834361221780056484945268496610513120738442038945474216036265177844883971371685084699368881315226992959776891655826870400081721537265524576634937883476964925509950824998674151280404623223263458697865019425124321529205163031818361729122326411308722687535617338288134949657771323200506160530595875394660656334977096000282782631071795391203677080973806677075822558551640920630032649132835110754469381221563807447986177370314203820084255241741139267352309974495175422289338512143394675494352672387855426532015550652317214620963084115226034230425407241894115659658464289474796958946671016544557922176688636615080329582929485868241668582024008289011161328633852001749635613587287040871093266412847686250912709368954544666504676188449103538019621498234098272856817902568406474851438582185918844996432497484702111616467124151123975108444096495206959154022479052065511869545173798542291741198876693939593348050736274991754029856781866389507080159887094708761293371486016735649166174633901846708958668363621760378638992216723361116113773960838857577007822650961583458584306770508407536294286093186815381594011712967404407680051523474728337739622229014980956721709570591125425425769607323377941085616153670027006047443180189556173125802074497121123734546489350369610612755423342165397673559018857704385760692974528777043608779693352710078694756787385571277619186655364239572424300924942550505980004202434099452395950240468963230096502666901080209182140461911808692383718874822400898451533348548633563309101703847374715942957558309843430575601659560681575763239711341856126667946615747125804777861358109458973008298604189755424094652619477875305520826749063003159291848707263851453557258581813726114774085055278954092880928064910071676262355769050924713414638377218130908721216328726683107167718593680412381140791889437357396721189159731471526834141109380336710567595428486690536310438514332352631758763314258722649974313707835273808644414018155223895960703051543521768398479220651251315313079551583631151701353124438000129753259441812488633442640673548841470432804131260365726470603032186734491825024484622033589904470890591647381744853639966025925677598297414295088375088748222073198389392407417698100197299384803005421852406571529206788121609122847870091769275174599972078856208066841978303624302581123659932324555194643695677807250063529263243645152976709623720461697102891640656251156692362128581197868856053591661183546351156332855873033594196300287556513625512856254062397930270043715331638615727677000839426936020530500964060107004824520143139402673468677666480206777211933571834168099687984679946673033282458123828829871725423145778431849690496854183063862147537190851701557912378158731023328025480859513485233613481863080980943113763302971657874226966402982323591810119782585042970129217780788981825337808272112834748918983480525909292965812404315609389628912109033176096169018783078819588071600129832042469335167865491523511916634797446976846826559141412808210060140340473294303094486399022214377624623836452106302427457387358831369923980861389846227959065740094193682058248687397085179382424304299717334568041425630888342167186374172329967925913983032486113091516744450722242636790571786540425753376763213509522098608215576946369855625214183379432080688076028675817760274384294851969950879726587992856487023641904238805769129241724349039244337090162410003686973475121726984645154671664890669366544428631592572435726230239003650118297399959469573974255256111388984998176824275507667940598569427598444982965262920340227735623173524277533690900502877360416570545201864552241939458592648536153278156400169991067487872479702083064354061336588132730182336846420290913295825287558785335407860804885799187373720767822363634722878848007334397886109259902818133949796601160726872942598382115686771357146010318262393174747025077645053362958988830045346640154792829214766312433888017219084679017957143133999051677042817992735015608687207985767247825703582781354339342875528946964668454188900520977221490398291382239135397391568700539128142578775604985665998070139573389242311345918547914877572874310567180583579324476975533961544260448975711581770645077108193852169413261623195043845695796812088655564285397773945616299071956141779823901547604359504708848260253974326517789804858709370263258804982390072125944522833862679729361358151950325486500879862671347299250870917736370074270779752339909191790157362842322740615111940476006374480091458358819615290906343717585127736864707279601154211854263652454017688603937469888767699457308339112453957873979597274254956883048250680625154743839450344591079210957884964223250989655613590237762568638421846088161894956179225285115720048637072555480657278153287431666068786430080585662726413247383710862960617814429752620142534274251695333957150412343588485277499673647416156577354950697516210496140067901030523000411221885983130153751380686146328397393953623301426685124177134159229404022750560460873019102457187867097770006790946737199105020432381500153279055276635300902483182425884417705371008181518198709557061459620561818450809441910218116036341533261003100730457857031691545092142543059761539630122228257556117443568128306230939670055718064150226508204337478113692647146092031100321150558474190707392928352818869475093800155184774720130894876418261520745191847877802613197878394262171460137041302140587971039758118594425074697750470371753792886555374326225481177981119968809897345138961287249276572874176548272441535726256007615348552157537042568968779563292873942927060495551271107734390351208486188862236520954934214830553442755380046940850084071809964662566799542001720868152106206417378490151306511719603179302304853505292224789914177317983671038239574166460802311170772866348189535259100184056217399911181486093770608496692692042145456928342408262595741118396460655942594391219952638021761274156098518572724754823088840491776349203033219610219728327793229136830816737248004122592359797500433409055600292270685450504600258207481526459548018756302869045260684525978510988625121062968834969534845657262738122401572338343180486410021893391487153770304341578322958885841925412846490707468453685005269576404097091913710675906634361748890733869953390790395455767640447263058648825369315059673495166780901395140609092513776667384619570870927090022897310616464721774392120499109418404450086425122859420719294148802363263994069585679733757576471802429759969575637515270934194139825229734337526160889802696167406166412618076506560540197781287241544124961086390435308354661950935025046473293309851775474278621099266531441724173790439452700653611705406925444214531631727231387826479403525580523294373230291589420115708742274964788649340211882031943420919669250184719434642406472083626914936102263897275150276313651447651333119470791300615298783220951176501481073738199215151225355342855176429542015144042275588897196726664457336525045314433776375945478749542052061072125778601369470463392887420936321968643226897082353445302438071295769342806699279733887554813103336144438531358455313131225323752327448993229804598385266556232489526341753335212659145253488357619179508084732200607394081090581773101314421114591437648879979342143365154615654490081263680592378931997717862380565302780610045480551417608952128679111226340722468261379370115560713721439391327570210204101464321841961682077829237875174302066536810777743038048678939373350721293106173496321450946200845112473113234792968808680588527267225641841632290669743599811481278623643466161084103602378412037021131004185614907089663259222822187010141383228136739446993570832376520841916530855662433725416633700987309439436022987683216675954063905557757648555713034238527907348256334339541998010996969075131584512128482227937627581368813411532715363753690277958451688482538160641774552712265067145251326219482004294622789213200025925069111721353228925956715381324806479895078518040308716668546806562142538296169928174902537251694375784941293415633096603656268536088330308666913523236948780322664439151863013885810338039565388705654492339241538499775922751948758281938930384986472549709843879196626226093247876446126921692854607863557341487193005214928223446657802773544551035867144988722064661451707044447929821492296350177374787477433839241285332406376998339711365524290825620139559734965083940221048465006202422221301786519924134964452555694504687696084890748135704331459090516783306289783997606351726593428643427195026208199089731970873918499324837768394859779185489437909434709384825747109570196220467397042298615734710196510154313265475504326876873366908947999238214948579051132636508171718191267675821430415091702810162761607996626710819600685677575521270916765635113826392458665862049668069735648300023367274193538041637989797719999249992651483343812338282003906383448340048460462430997157483655623208214166872661800318135820378512739073310425544374108745455113576132643321213205314013390945868643592944740857756390486053462215992281434780946327435298400506542111367327198324789789879416307298729568573224527778786363151895670722951343692378031596750316842895880294330720742397364118003346102535948345662134906122673426099056332881730604542421915930940377083791112486295778121482626485437509502006489168229828975468245889135595369994313294052034641548678656703895436869314997787571899111720984339912674872795957563943352822011643019581486648357341356885058243859958157594229487288567057368750646122909679053721698944250353222977991131330981010313166976248799386830952633189311336203933704664314436778802707402615114505129970737930768782363868968753896157580016911578616739615197766591862563208451983128194710253197314189824972720642560960572055696728701351478131324901782561226775574038496193092987193247836689240653843712831756554971782035285539299198249220720006942787016066610883186140329708621658491137043107775284907059346231614638514061749044180145462625430759246565937707735631909196082945145373895666374164575257153792558956730971002853818211067979026771326000857962388748280349851392441898242910208009441953843312092514181247605402239671533856791378107962816946442126984323488265264427599525731571168633658782379226309913954810450643374160293766518070469790225507276831062135423096526978351446878847841994266220953165283088943875677871932342584318391421854323490862172124603851015796586379176754585702956659225393420599461393496861888850339621112447830108723453026141106980234676255730579571682924794904174999575693703878972018512977765636845169037438500434692071239921622722393868379826999650519466582298372291051774308172533253267452589110195458102870895684230708450809641173793975592152977754077746865011350747256277458522654597239710167798167414413713247369439585084861245180698820942564160555282885056936143871325281586980733196125901808169165698393423662631644200064946118760774174517404284210101661726211773093684049298059082343067712492935628077611921460464174922757621231414106097838318405462114030800367560216957007893555196157178164218288223005919050075257920384092789410205555135421325105384336515386820555378011546808364330350781575818701380052034864976289474596058714123466685088017021460447455726865686891695130203793681763826620342227821097857754131079103995576620701651273360250757129602266850022698014931588224895755048137383566195128429952853971716854382590833560336180406517713628923709229504951706187439724037519262646390151641663166724187829140072644876022030270930388151120884530535489626861504990495134064351229558321231539338716161863154468681521214347463309745040875719828341348667224508651852130356995285159025865611695565948004393816609103765051681236874517833483355396539536752440737818123854887782625085380449730587500742785257337264199995233840132401751775316932095621734535108950206355100953175491516455013986697801631477970339657336892140265002745563034974662544959956539286207569715085348735596388580258467803933538966504943846398615694380402110997826354661097576604482122691521944915480595821071500093262692612909916817908597649041877252645427796690140726039959666910120360131012503233151435958679243053428129192612420884452075030831454971677894407720751490327216546865816955116308723656253541906072443235839734632047506134422104047272874188697768737356703634435011329275201491681060545421220210862598917488988150486141011869872637248373178307593761335169331777992652396642434031581178235111218224470639413572989161537482301110950238659901376745036486695753712893307617970622271367302361731817046111118032073602042706651796233967923190829994174844465709788787171339755699868861352723792021069585868816217674581302003855286246612944185156150068103766142350764723018491787430011950739235557452811783206144720557856465855814350404749229623160624446261935730065775104730533963159746228091468459707231986226928961972262806032176554600520140547846549449036867589428115163158922208258388757728410686176850980611858876922549939194881059815876125807716532251014605692755785279697369978922825391525690874689017294687798468335949844740721422462431366670352898819996626410299066573979115237761720852715377853207985727541782930553178356975470470866813971503945361280823027705488123600940777993099634844781867104813607725917814234405331246263429864493106256570952346620456100771153822631647581866105377505612089630035453392510094455367144138736104023680269164798235650868794206470685183253325046769196282364455703128144752692409891074847669049242112823993487939769969878507751393260470628475614092887334441333450990469575942219232341727124282451548694918882127423468590988523168103811356757640086402730644864301482315126845403169877575912165881770428630746339472518956991859727587607541895661337528566935923121835067928556637170625025219430906708084532185792417365981952542135394670484996349027344700508384673625069324855372034782711474496539560707865840580737297169686125208946116499834200518031524715168693467883571212529288165639019389944119335843299870583647754748103900578192570956534357353738805795194639115255137589782263262541520436330453024214101165923974209240275724013661125919842609105933921604577933609973699209536053019334873061813545282988084842946084591733206528285515638122443781829378969799129469353286777126001976117535795669918356660217736445772403129358950257967576188520698291733423397902102854238730783799109541051753929925880898934443429120043711302997412130148620108340596058616693193220977775761101900678903919910998002930181671763700064819250184627040471221337050985478649032492737411082806252072867821735265790348390956892958530981817968061831684338566127961531286117077735662971591234270048143050586254554898540486109589179971894891170994821476773726215540663933360175112658635396256172220802336494570363964978429464749638173561717737884891279746950002144766344499012517905526271311253433010304658321189659874423975469779648188719532951727479411040601298855474716214324267263285684793575577662168119667524640040523043129923576154754700957358479561880261989628656448544963141063666070469576104829949675776712705527817391893234916948245346008995804118448841572371065123697379018543186191778032864321309786914659042645340973999585356778413371286826053316665166998210774357759798288797376070223147936337246345612172011306434991842218480297995136976508244453995555540803748193459603498636994096389462671228435109801757233896205105695439087663057129108880733575613268769072812415573584916664411726254551226394418438069885677202743116429817841195354955269517182522904946875994701184104288015822870914077173391856034764658915615046900367831940874148873392989617255971044665986679137388483456303594565002123957175722318281752657578282207441538931536130328809409724104731101834254469565292133675954936385394781280052096458475965744174001106217343787621983958098909596799354803572629598823589481234497838523733803956680202041785538075271519618881304104746940840632892718736830148572283858542704050948094785929543137332978109441118205930589313154217566699441549963533637286276628584517070383477475590303375797800050230284532664137202431690193998140330651389918223215073022834746076955397281975160433966911832666226447073961373398518302193467111278061361942902777071774008569095550836362730605815075889425707198990220362003607231458244753518215322004551291641649363778766645625368329225650009322237876923900750636995114341099120368425238476519737978618401703266445125625239477303267426609603569663192789463015306011358021533311962132203851377556007391834313626288754045316815518744044495817493848211034422099643041557036445687039717540746690610375835732160549938416122998026642590445148250834630826498231857122866794175563852332537973466337287813325407855366202553597160286422394671432314215750791220680164777249566712641754155528450531413805951769638146380606707850145023306684617714764596407857788225638523339377039009170643059124257655331077842635320818641800078750527694332465465221960460628706548245444300540676910062386049658785049544174787591262876724636820588992978179431327499141909686492896768131425526831524894150013107196010531329415042466522617592349433032498024723072261150781806959236694782246656267228671649022521884296641035620067794105537333940583226343662481393925407250992729765742246925358123738585280506412023063223002097824201220094563228560390438281296834679281806096857896883660815162203562453984702855921471825996654481123780507009570260757491506351068217565461022381063656249625462148745218425282444874699105888030026124890424959284984660613311812552454338030700122909484827571082493201608765073791472989056770381190627824040446606706520420924815675811264252574213568434222926261307282214179420785790618477198700878103934839606504596723208086618883899890817678711234420978454890234975295452001981511804297701358391926889958484243817047869141356815729969546926705890207926998987129460714263554128481897991084750619645867748177399760329526885938235771750629400683050612739744575659719078150643641896282530908849985995485067954259524047215455537421970196040866267747383182063317748449859627790570141782936845882532204498475222813806279929907012234133690935620124274448220633107664772341248367808832562625662253327557550923611078224386347148010619301500839279904286196630154937868410765079038333156602406357538870845659882266266178703618833096507848340331024448658031663964051749117789247562866158470818178676198925685278353422260123530859672474091530972127584103990187806985709416638262178198312273146655061535308008966499375013549925554338069178485823811981848035898833386358087625690102959801322729826347526432394211472146848623190313863719224269957416644576914427275272817052815680134870521606105331789262179037642480348904505121975585703437563267050505725126913334040525184367013296470677722391129746879508553352355210840643762948195468302232956076642968799619164795726060790449088434216946306238654845463980641960281089888610332279129470287966213905251763259266480950084005296121788106272077336556235177566251600182831749355771793746563897062955380629060011471376154618784223473105538471157047120336688498526324028939355440269670780321970344343176483338877514717963089247901204404164723295502135438970049464388505371583834037797707049815397102623694718056052443040875875735517107725156886504939239451501173347746926860051135295159739147593093947502922678669619596556907801070715416926043294387863311060128688920416577840784153039802292935586960230653105488610665460663536072232156256056836926707151262826433742534891415564860412534145656967045182249672844890413342917076721586088714444765946262066956539015973808409525351892197153420589732589494422728971239953202484899592848514204868333782318291056328374085348557817116487724025710596670719307158124518791523664772127674457634518655156357875768705770671218885376489556744756975249780689921742534024689971059831750041396113882828821112783941032903689208392093986852656140275651823832737665197009783520193701672000972350890642727765038500535480355023686178783726500990310114789943260811998335580681900762646852216224008981014674768077014589722272726076108205688521476424822232800980617754162025202793523877785609405710021820489836375662231154142476687279592804116093230223681730527287565579032098914088610257578679171667748859434212799837660502582493245699992888459983458120773988748957333561818053895111637005648824681224428649806712620219136634145135725090268950128298985598506042871808753843652091756553060835548533456136925987755009482876357224431188555338718136724043290621447412899799792717602161739037606304844008315993711578728475559902453113348421687017756094405580903286962238432963631521921724719379391747005960755836636236579904096643896473296656775278133190113316687905743262589932356007564384288348340298564149309420094434738121294148774766291220901478789915613798617944993600775199580058848932535396287773557395377848385430300133908073967405176680747997437569728358404932711048312433431390519069002678689761753769153575260714643734407557910365581001591673427607880934714999242768690904200949619086741209610621387316317476665730530754890520423412271372669778910238087073190675345808313161250323817948473029511797372838751640524576156068038570428183736370555924300466236512608457850413580838701510363877084520300218483813884657939935606453481542425642518847735719440014878877760237180312117711189547401727706657757265941898616098031936775430795236865031042558447865909656642818146409455412519191342305052533152869878421859766492230964102630366423415065298942211321743105167008803485709094667253014844582915586307049517033346692539460346579984074133753318872625852364703800243072436801463286607678189283542669333235517489833342503697834255878970754313054311259924111893738439189330062213623665324668008102228807633574629768612243153611740455415368457809464962091726859855118968461325509384374206880900118334382268570328603010722118962552233478042046641731071719816872483168119087137220835598119764776108584840739120103513801643904407654817997979796211411644366595090407873863917934638613774849531928499482363740106367569379505736357816451411328760932242159021926498047287281603479458857171493773555163301214557459856016082658449811630889659118131500303942922827075018011720268113895597204516967349520668803402441019551847218470440802362810379681866779083626430767044088652605364965139190101758312864435031063927078296935738886313904014671704089542848096722390954093507201634327608490781595535853239007925502914416366940743367243242047581657328140087726290835093931816681179103438332738244110948306556391586159756960893984032392324909426391776085054101246192284624119661875563475836929824445848379082187554731714258028843823200382713248146147204054598820816437094528419622021532820308234463934931173848646936167468925247994286698295218574067746730681110577579743737038114237615289674646959595328284667678540648428463580256759726772665106908509861553153812500396512211022727489164716543113895719830392597385243698684164116853891809380999037452522265478423501783985510108670981199082276534374117824260081069161050771655711729585944190244193557026343814623528772202083970558965517077973338854934163550861979432547127310015282034552730841655622490512895284926634634034906956358008192227373658038581633072977707191116746573307399138159958400476716910145641138923707046934034710871054663569541335348034437062925444793898484378333735160903641180392504555839235346753885486829139698859110334608675973591416493102375194681600162969261989548435493675148836220075810433722496424648168506699235406830056391260389294725326508576674111727380787641469921818953813044519030693209665534280405436681743894064875452755573060545597684515216080734234310673267699872583698053800968570666943868568974945660582869979766795402049430161066591492096591398252667235970908767103034390818467095970364216564757478645566808336308719230630650496757770783105881873998724450578565820530664831124458586234138717828608285366367830276867398057022540148121632321582207658598821510208162939569491315007685713530649619751024864386680640884810048663705781150428282105076543773303781152229154667269403429634622124279329834615538812972682611915865092297317450515001403787277641732065138774303492847265746800451689614497547563538109583258346340777940933393494851372188417405522972426515082397059993867490758822398988223853959201980016682057823470322907140785960009192090084881763409621100156638369917651813942154707392406854339841363724032579914623921757402539616381269209457354140134985106768473047898529251457820769639547839667732499394569954187947728740731271146583713832251354640804868676510800700641241476465878744831330679027416167355764095746700240558118497147303878473564579403240857427614276537949775966049655123750278051383734738562319175516611532732161769409223085153355220490324638922586071182631602071733979544303685937382675392784753740773037726111339549741135314610000696380396912659599145533430265204698800475437188038919635001534278753886986879724596671748086893462549777054918701697846915980981947823203278138560364013085509071818103132848711096767244534125771841263759351413140862398479044069632200437591755015232626058537459219926125948359553561200656915787580175895191446591414013973408961560626917629605685716914598606724475064498107756851047815406059949187281617840742055419978197578297493898805872274720662724344286843842781494381411622783669987964948827077283053720455309729135176704152614886560359330796034249246528709871666914857791773180820085130824639633844465237893953875032873307555638703785328205041505769156747582084103119622862404238330487647482349516220842777825966700315282112612056553503612747088281349148193132472269012454532919291959424515665902474091852909951132897610114707179226275911996165792756044732491161506273024179026003355659207608053556378193575423528862668586174386897545849029980850985104362595183293056371026204765987748721127199834336618644551072197169141864396698423643461223019901875963479918405999170628708885060723159577871512394572030501546430189469437749500210346438530443239257028525725181575266940572246299916118310983125887317624600821845767831085417017268306554550595433936693720455601164479201612885956462769678065393617117557311074219760636041928555314769610017694445439333170578867754924410247584524939275061117970286741858730117288760546547908392825945823248864947720939380740463470952888535784433185782171995710156638105641802701150644870608919477528679466000164269469125092823540547630739892454435743678381192454140730510377844753637797094385449538003853424930642722731495289450117301503863233421099424743554614224023982146868016160127213638666230002914824157323394986846822114494736375486885514090598067871362481053091614547011218514612142294766192450538886609237060328388840278721154101372165066949787787136521663551088837854559407801054394173022955555960864598142899143785953526271882539594056931585021846272421723155542701752418169710357059640539277434433262621321196982524684178181261835131600626992761157591847541618743626420439832115531870310065023676892452984378248855322875153602836038133772441742090774296593364447684022269197054842492799128633116812027111890563077650677711957643382436272837754109236888581365676366154908970768070684336616415265748903909865770494461005916862856868684398552118929675466401831919115768144007337675427679202976927300781498905884517692097422974994318877491492826582833915520053851241021980385281428006814022426679110040581616885087215906651485605590138436831731260850034318421529013999356562186387890644350076331043965295958882208819534293868216898987737382647848933830521452620767025992330511756229978934401357356763018478493831062622300838766794785256344554756524226789354276494063572822052444508910264375729224832518270164366509364945288051415010946183353527528731068694835830806580406508411007217453502012612477213020711382061937085535604904229402377090313186753679074537799817626754646555436149044045348663168404045958699526649119743711318665646022186318928148439743077656382785020002525389723731604102514540153054236847078831755673202276451976481419869173951756339893521475585810297708590356229068808730123995138624953157836307333941217210485081455403637421306005056286570652077446336026732916927849780331558804336990041443351543820700576767301016434422338359936796280744510730973195259478401915773596507150563796751227694757434479448872051891434859163492418407923485273114256673716870678488731872679176399793660495479417497587268555489429376690167184425536590231886485822042934793908547299669215654066084571973994194615050277385376279668182767632818055732054321712090080452325694832927854112914670130714639279697254167852316193731240571088655962024704133258181775401495898494482445483916766920687867616210245244548043869749708990746082491113440559401096930957664926326280374750473677602850087963187608607881404583296181993057577026320816604368746563068486813168927084767190091657200908066048549537436031815306185712132510245927669348417957137949628753513277359985922266852997460428711008316423306177195613018532083111378745298183294270740550103922453795400984382174095167435232767187871779537195429050553413102886043804867370698684984104338691536937071788161557391330773185653531216628768822984177601856120355001451686011260016868599019380577485659074457007340027475403363761776054257881530306942405535888460669730373868230852300495522872992397863746591352204657864979118982059705360114944705909711963223701577160207684527995785278844141305767503957073799660740085798938236603953788088444176267250973541748523365604487440781526534807532315420207036391802577520413961681136568599598865828336791415395463822808148178414321911652565829384261554937241088729182159325306269752684404576520103812589165555553103208105294823489344375239233857328148549420015568393630889425526113558660272190145038813166198284108678725445867106181099843149454634951274101230473939731718055896517082581481897158171209376668155472371857535359064229037904649588479310408417003427423226866230882491629287134871527056883160189190678796005187372729577687829117248714153763252057139837980762178498922833998349361150341827443128617534342244549099067523720000501706572867852596791615780311926270542787206665146901942474402711191479859527697687260215514396680463711945298530329879534656915662873273491574572507234056578872334342084438340548816035920979039651432256739154636452879501624062974869126530733343179996993301389034905355712209144518105243091020314575677391871111616611080626549715343305117515211625969864646195458882775174049760230548747576646327298527895145063399018056616650108357116451439058981369120653034666523137583714254260104620989304927320757557439930367309632393703760909727635094607724231857497638987378851755236494620098357410514328216012122849938546297911667408778853076903075312045702280517142116934286807359958570150613859000492060025659972075987172318027567880504826950542531953485675379496909504161900374070354498969563824072443259497525241406162882389525497552501782965617866393188109856191812667472835173287937732687655290331654654010991020211583437488952851926460612673587886514659298599309087944165732787326749086537879547634162174882273697770036818451948308318821155750552222298030789102824414509668046282966286455523354996719448526624192199687884087553220663481284591593376808112919604714155869232521597931797592875762058429549561240344229906312971850959249843606788582649480883564333209279520810884573726415758009965245333643485637713453346113898523566759785081475504340576701260433725458358663698545308509191994402616933961646698485040403678938111337960275762626256730369003349146939085613543107080756573809326120813948071605994743207696490790211790764151279024529949812300128261970722684043773149671693772861749616124440238336011645278289225342124843147823612525858490642014154031746769494302461117671101818906058353704687070715365493424413807607513881231229420998695689782490228222182927339064557785829473294348601264232042937073536956055440639035567196787832818877736572578651441026319484762870780079366592067191528034246257122044202276966880116431375887113372346903850103667204534582493650708799249240650209927688140273129301809387572766517401010657048642946219423691769063105880840196486216331331194546847963563509333029060711806490122600427987370096046767290072745578417725165061782967518553514368896755782355879545772079618787571559254789137323470733928284041206291170978272856126442296864457411965506614394187006075237040489861246091762764979697809098903568100511942402137726773147315156390582034432721727572181887360056105665085597170057000140412809348552739998901691954329071681328220970382019144493246479126686262689525418374761301830256451635688742267820203971673225146202092252217264335275682470841723299018886659610473197379096788635932527395682583933411302498896382143970649130311723150544150449667245200768282496007065918734799903779997683542156395048753754516064417475324710668443969207499479598226186867826654759599679267728978216127637149866109447829299819762267363180085792642471871237955434520311275508444651966413507371869172087409917272225605755453463244830279619057419159498130660116815647691244901242044103686319526210474504302649999283303687285220086571948726046424539645969418114921037869907443735651582835864330453148740493451488120457205037661699116211722425700657345222390521854323770551909568407515557632989046179953105307643836978399875877278334718255253345677312400993950569557724545364187652630720396743340451592278673701784811061193594650652632100280824732646265793631392053843897712387973058408380630186800663289293257440100231572086046973667292402794369459261941005258990002569600010586921731903631305627115318751787907485520500516920222935273250932316745534428336520441429026420157004367186447027437519821550697561034236103863282826467722430225007842921978050203565010608017123945064237722532103912512130751739066966675276205995424336702543981535601205463393748158149892520460695588986298595287440051204854586790676253655276003321697891572934323175435814080002038185189287911529573267812896692380136582819308517609411674131412711291424149427109525935653879912085053116828893879817750554969594271325710943917461913792034947211099561626089961009861886074240725057369753309364461260877303688917691222847166757210439634762374170764695472243439794237914827420318929311146721898452374016160442542349955084162962186376401283520616916440964117096934012178689815695113076789315691395503720965703329406401753605854599614903642871224380670787023951067262299901988824476509606518189805629713290892016185477194672569469839354172590926833786793210916479140064775003022929023978961142672313801180295322436410728921998301075239208035638817129078240898446391510455664530881778555898656852925165088702432158526707953671004029125694891783449823498535630784023126274338499389077944343771568764909268242378861899399721869997559030738455672133013314459836527291847294952248326254396151950254368146671915327607437879724313064532745572006466986749196260078919836848515245374662824537460013911894678490299785440928938574186530316228531145949876379850083562460683813728224528286460463362964463257018108297696805453092938678974368727928746530711692229877381260260518074531220632749037405887373501335162417971869134653049749211458968021470515664414841762694740273973475824464744322190934840656700513795711520154885603812526988796439891550741724292988590624974197625763612371009350254090716213334221410285225975961784612417946074857769728388219671717456471763415057530325027054687737432938726031154763893706770620501305280871291416934459788155431843628995137945346678958021970835606740338906416148677464037288308157279742438657727697765433329861052833112192994079418787333254026275966073896668714779564100867114392542165491581858641881476231340690097192578619306999360184364436598374807345868148783218795820501835253001929719191517049821437162089235278053399123241612432371021802434624519235909440145744689776581202726811121622118287955086282377073786586413989232731818125629948475839990270289594783620933821008750134409179541264801979652355634718605650968997540922097295455099652219721230283736912688660833705336455985418880417241183524526018609289720315828659040774612650758953488209714912475627247343399385028752519273770944947035645080099213034792659836691765760826049354575685662036756557887854873891271136540285889488140537430674342817200275411041090616230641991879969105050903703601496640993993267099669982366185264341111929001532163985854920893257124086080840877878041787680706601040645919191541241572912690008075705383676355029822228642723207578322817066687046108165052397858277283417205874959535129091238129804527300679913826481407334074865789253430655630511499017876862868241886040894762819572624559078784075106197493765275775191226181215778881192257689864215257440205847134713738920317022214242845354459087329018382704050398614430203113372874324145563358843341088696612532947238975232034532438498716284539877575285724751224000637139757521865120004912529449570259597643585766541458450317975674466584342297574859280657881628985531981432643345416834051093282869755843168953461490471216212275305546475561156699037372724576071689413464834140712920310724543171715265282312448875879364167574711515990673849737589196066925332509723122712461174412023908247143798408344732297570871334216745903936280667586967566359057354791277346759705225269309271173225252198487441855549848506967073014541823529480208110072439380764116630809086682281387585074108869772215896284428719891518722128765173355747002781877915290393594781316665476983848314990428365265529027137715064559649858999415505562867988410255353949852057400619333828185778824889981821203613089000585976152408000240758025560898502921933691128615374552665754698845832044150900660796889194602293456721222476255309436333842318453309368081499048878448502956637705217305795850883859649431124548358570787326936688978657124810439905662792057584228211852809929300173472768368774461989037137130608418164490849674656403151587435238743584782112854670402576314559171596468000122614085381187260545106382868082090721611958966618814595110172901435283804109547457685440435984836109611848274290857837328501878723718830156579355450632997787847558858094787603651248023748482375024124963999365848429567903564260374468843171411451217540398741469833490717609576374041946458399531989829080477279296975868845548230743385517854173980839334519185779031887848237168164589328664430363912253279834223115016045781976640586763420944254598830924209625196925198571013654328498793802922155201817332378263349670029944389135784088421321156907035362733151219736360788358379680321528241614445324530874892674439821202865985493327032933516146989917814039008224732795037098648318525750769406632705362900307827892350367009526143308293004310126816453461342881612388048643614708837334626587934947237832709390238991256560086150679840232317506131137338590358542283499247583262385917290770644315245118718501050381116861209345608325389005498784920332400809886200272481773938648044446819365341410277067960608040506955122909188752740495119692027186741496678059285079407157202888823841925070254461686202945721911118185565259553701019753140911476152924521333057315768657831331412495388752912447426984245676673630185627910849078765737848389842373607815648834619188633452035800550309077656201469765677933679931860391790474540415519306354870157087608736927701536756393572128181761202977915014515787932526784957015128509115755389393011681362306793096406116280967598144414514207903051277675595551580453803583186324866136387131755289326840157671321880222914509446615310989180899864671914186215679972215312174200439701674547652975237092955208846775089831795865164743026864918319037066842637353355999032729555342577015594722954543385358257811494503140862326690238928093984428519826501208019924214804258731485991918981063335830658550670662569565016064226764067944485363276722159248642464967356398113384356889391960036568332881473921344501190569269890458538253480228963122973881289780143393790914356509208835505527664920059525878190738227247155286443734006344077049087735391592587609037976419616671155309986972809306396898512963361875072488054475125219419310401237208362545641248463122960581294874897252918008676234031392420010605698607693453557412276132987740176408815364260240111419046997271737166115659893590104434489141034370451045829501720476514078336466925581056554696598046393106321542762897280548119168906938640406151247246721177402426412154946766991835372073002383441508899737752461868851160132963408961435880943941790501311408569182740403198502948992022918669614152179967756729449360404776656289865169558395061459719209618931370266067562746464568742497107099437115487541854181048210478929218829289640710733145218784612714950410604769298941848951804199758242823917019609575662966036569647716508508159433221232610344899812775942269063173648853007169764075404114395575565428163076153350228972191663238249370038794632389056008803338007184439353038187591693481362019885768432455509337792412505915511271104887698001614236491187590815948590268070268432277485003400509365371342803246726527867447801949003451060725751906091343286364667228828990661326002287519806598634981396560472109611450938999360685446314965334466091007743587920454170954387392911954126585831075289014752895829011654418104118776595396467506221377750107771720488538489526114686419076835486849809298663649231021399606510508230352218532318961181092955620570567168236047742804870053414832579175201792490443970548504191682278324707504683394399070586064269499215125488373043387463705954835218971169040519828499233001148007151313248889948696414756074508884194051214245399967821786873867175982103824345983008677180014467390796356288355694810561006270909226294399883603998775049438358414349426995717561513358173183519347968531798658054889248494148945842428830098199479561933234298667694621070533995562658189344034850528997058036463765117879487365496775909751925488713199207584269051506614947987191216768992803792531341712316392491456911185596383272725527776089124067487850352006805965669650170616928124421877544257922299117944534664574847285447327489418470438320615953869382416465203925008040123924108902295682244473584461791876181581629191359481364215710166427241089889006527518161276674538923004365991029518076419082402235558992017124869110386250146596935338934713219453932526755265120462411982836810075873620663832471588894136631065882622331287319030255024874954911816181560104312353585221978576147447339597050278496126899241979473956901082126133966522336248359975666996627297367693447473215610478878861028356179402131158719850594010394646810030016566532535446784291917738037527917134636343122567052385495725047156437529484732866580947757508854268538351712937701665360748753087007450060417182754744631395279906549318696006982243115344096498939154008571593426146538820615075773194342789844224280196069283413126870887577230972512701649485110431889003768014630565588085736742133181651173272564565462235749752851611699287533934959252616178568032551251467428978314573620766416321637198858388405992588513361325423820331166652315957301317281688240225595748454362605006639516585340300147799162980530435435367357993466701901197917076827304254731379012134292150148134332026362740773264130472247051150804303685026380223500359584174145424242977065301636537122023940118864449259084806212594995410889250500783617892743164493076087876942517932238946076148142784019119454186419488308867580435538746021682935813315109241628575569888602822258719873658149160965455470102650679780057567656488667566880723597325742437218147277279208359336519513747693801448043704498671339697145216983831063344262679008520905778727274003667313104924637430201902429311622167517122569982071386032770377923149291483139807715054618839198436900866704643200267936986113188448013007148880431669676199038473370659339619439672618042217537368229394526858571233584182870343200909495184369761493130756509972006764385210279198289143667532640861349558224494913567586480942728597436975817270773973364719331046691986825700921308178609473020290639469744714738080100040937480050570444356318548366223121783458989362812416888328092024418143955108952221565748768348667679445067647673518750795954412000096725800857040941538549457276713194047109774551953827141943944866067224143539212411048067887977497860796453199109420846490929826440040873832529201180059187882563153795395508417986473718560529761029337626207011938828830759532839705732221607980740740937315774311241186660840665489741583615183516144083438766795666394683693926934838471064064900708428997913784626647301860648066656244021335118499225948969273515940525864455086849658459620825768631383323909398833393378389908864281776049689840810853357756893739955954793447389008943858828186612644228316787876160864226352236476717628759870537049697204956052223328519584801117133595179582758463679841113982448013254972174778288158104079902957248053532810599883671657108755422335543074134833480389885598735750120528462977615810919051104806704045830047543886811132801043582654407181307343215446891029321960762538268046154384112543051768450954433497026448497665748531896525312750612208695711562122903568758905529805561657773691240709983537597647349530006416694732697129172362207632377068684897149372538683046762040314763786202212013203392731780937263503472335342585498176475309091027046520386188793214902620817233347630327305568402845006317870369698964270360041159698866804402450499686910083115636056662693019478509990228711964335061388386994612172913510290086871952223785869339028233148219820435432109579944720708578706167732157208250832197211512841715521726485641234097652896855671725399344630819116914138600068407380912929031210538985978114175664569038767933596339919623824332613549965203162179345944910212376953927951428996271979183023539900714973416018413564800616317282462886984029856716828297513678381318067395160465142870662915069815643406258540766462379145708476086652050620536970670310618785530391570839455151350061869313865024740530208768127775726839023537266933961651868896038992906109273970050913031612531876110195788097562032413515686767313911720519700060587072165325317172311201361065926089756143173535697317945373996160203370289882619713331908729733485392413055976996193865506941884641530678719772854965458467071877379111299149686768592246575209157743390161831250464357931717503302054583443283051745248831197883420419822647711038340116782598863699759314560424003408982883264448580128787970482597784170828364609591234770433932127185353380547361556779370938872925155077312933502223738024406698750176450347468345269919016181772840341597480272800070786984295061970366310629384669301357472094025390302336871543627033695285249088579676113986375864264729739657052844894783499391734519249736110199204960395768690549699532423778715654154774797297537301270275248239845161308369022959608142365498961554567023199881522155135824586528296470607415473658818653826536526084354113489958477492838453711238041090630974856320978081491859006849242648355815026503039782975226562470628589107970406706954404004045746866177712632320741792301470543971587476952689505336639705787656549047114599673497417277851891779936660964383530016196886170950257996706587400861975689918290210666182470934959215581481378826817324378679859780193517544877600019793306307473441122826651530402407600272959354059532147979274757902209971477355755737117489679355670869095921609652557715963958539276772762955538210927035030552759661107078397215048095399081406074669637242192466306637117929705706353585764819332384777698312867958690915371012928975162227361788084053728064134017003829312909019731114204769636022521026149688595582714834304713269697248514173927809520832075519428479178332062213715034004147629485239163773896410079936138059343019892517613788400031631240784349575435640855958683774463082289624113330996976849089840520152249949308280779752317038628215340280225819603763003610751285529218596668594043366971412132722143551542753854978093989864224407851636231163272942443104319715672677435952944208528490482612861965225540720474386105482564419517430292958973747729459932117702125623173504412107167544059000137367280732494496307861981185435373599587197936097506148712615439195667798105946831222915872692480443711129383948941777016402354233164516670307355935005635289835208603540797962311429872520895867724537824380232844449876788887492747423542018396844879597651978458687419806539569148853095461644900600576133299049349956086085143747274570975781264350653267887596444390276404925011280064796582635058618885340164366829580710641937870292368212958371457557122870141718203726022897746008667333747461060432394238280664081832252097682762963235031279066315527592934778429073730363743645507800858546007335098923594011067125432472297832068993378793895001387331188130170919476303658380210044300444935996036649882354751725549474186919182140068864267804255382037999951708611401962688652450203349326789336424875340757253029733344451942998018580920340715363251880360722690742536773742455262353576551822038982044142280230371302647653591922971518974789634378508527651959766765835076181686005065829635316432271066665326868582732119075043483263475693703595832176870875075992256367109772388051822387779550051097774761932887698118095289619471677937733133628482153556625512853731855719034215811393830431759278907147908715715300982419211811863902405942710516654378144763451250548889790601240566921125769115589943280746686645148790109199448689160279207891853220182673283822663877225852562404037211052905449837584727051692154394677645795117338871449684278094990697215274317048839979902761431799484317191020727014752119656300518483372066208197235945295975206422768312078771524731373297063936026032177521620732161660981008797204950610698208576220050957145288132483512376567816613371401497390181123938498739126475438226122809098984805052210775655449176601727741200960010509333828170106138905719708894012324270516482539797920792928075607112613678762878874539051122789018876472367797245344232982684746496905369327181069021691033984380108406829699671059292333844867351466061035909071277076240271047450399110483562887305901680854511534791612590295483876987036663905601799065379278765175323856672228817893924225031959453868310528757067522096649485737354426035337813692357295572710135046872849778807627563872920538174424124799308003260349637726768478929115924265768054809190491492744863348020784435247129820788607657976779134418489351803543314541187285403064546777571518040170258921843091420918624286427940330750284005665436971762552739388846791265172247264667831792928615835953673934573635171429885199124239119068821604147257017758202079832806637122147783966726111347420404670375549151464192393588425184390184336901810187100721107007099725614105049704807357636938812444374557876941679558006412591941796883842080988564165216289109370972070600450787077532935902915783347437418209276974207972107600830675889627665436578101332343458594554633802591774761985030616360899252624131942462338387321616698897209136119438785832224550175659900930912488532151666858761776490464250187006097217332462837737950885144820573252341522726777407214406399703890807471642340807835318405593993148090737102525877614952882284579948302686094385756591561723095813594195817239362123771780984080952565915389304902983365278653023297626190319034540967840265681959709400223609887872228399734180669996819007880081345812354541013360744212784471687423544383066696482261976112298864003981505521117678577655689385956315233136601153966793970573691859010325431010368494732843046167282482364385163123270144949956810141114618357022015027280434090992794657769899454070697200346066098530963538006841512327337695507214229905426130449189712393117089056934675914973239947924482413284411556635486014565494557800107447321554384726948155018593352581726407992357170668599135335160748118721898272568125433190632167524812184383498364530981519633095957764248559390521389294522112157435748446774824352748458893855175406883218801846252265282676212258321071026697740802150194861556637073313726122662332586813339647396984805272342211883935889259858245528587053025104061226458549884919052720644338540488377455794834253216260194150888864517738881743042876243032076854690451084340478602799822683885850202556091258427233320991046487418121381753580950384286230179206717196009258400119403106297316972318064429024354502522095262537745704834412470465155269084156646608963675388138532542481129775568777953156773504554616412137976681565095595398367623466777884261259481736520779357809116042902288740157942416187679607688731660141445198534186630754616891720408902811119219587118191248108571918311417128608325067421905977219715629080104571152246017896709365145070739432975305888548710040350677113548826991263300524405855569830162741581832812999205846941915345439991642328463915568890929903221674043888322813223240052810767398650442929814827546387456362169340538058828664256079552643911759993106041137212488996623968024184907635842925331029384383380462230584958978548366522849802015634289428912130635679467813767235202904233940756995179655856141363738973109098391604111523948261194953182062066689157474982317391713873149890886825874804325935674331692279300016077234727530075072782682930680747311730008679422298688156374948035517658286908478919922411260008792113397534481948650317351486475484820989417806958088035679073576821617033481428581835372551460269035511685504644976510591754476956611187809971687492505090034207401452327041577140267376948537409389840607066293439606397226235187628849643963447940466653309572538601331711090345793291111348643471810783806545216834532938242697165676520162720769917996213180741117242440991653510717217513538926013872868409634992916094572849757957592770158116071389174001837580182244427928520310271280774081632227380905403232976308435380345141356701548914205535620128521406370067305082030593376216843580331124953639826350102350614907581232201481331292824408341190545024169764829509137803959179037002915632782748760587892627973439422326696968336982913512018905035657652593762513853874288945139070688637787817894515577485379527430662175590169896841013070093414280453188819363781923593518181884067045537606816553944121767052549374541131391343515218129643124623099438481457126160233321867329635157423004996954667976227330245432751997862646697715682105886843926796564171307350575169665517051819142902419354568097244371938831696619698984089462901959755278478407691635256296650576164117431321571070657370521973841533854065244094424663234935542200078571772735239081565315780763673912969551099794619595275225626615634403964861150338899246160091473123193642474518105454205323017815148454675371417537020744971386106866164207474203289854994720710217665464145232996543601412802519225171381582938429881375942635106589687261423836379101299765409569365119967648130146816593276247145971222512935036940286556371972796497850520869558764595375745941267377150537242499379520692755468615734194723313468069617236479614985743227367542812569123677960880945482068325741178564745308819846747400978655943000734045302656263146905525194412146692391843319811840772180248016258124588800840020529866407223626473784597309611299205892979557706327537484047005054001647046735236024717317076045908698170302930997137669742053380232064938460405849558222852049384641476006490896237083069695319721221142947461111102672633078240564576452906343318895258177279802519372822910442427785540917842802622188944888671978875356068696830417526750862563544354541636831262406129363422564926317063296421762828582761016597015607006665080649232261328622626271434632127158165398556277586414683174423226355025517205703151842871732555312340128810415339619289484790873226267292113857000824560534261774936113514296434182826836101519657748111730371217599105240595996784106124290165581331415671648870699942860295885884667558291678805091438887355753101191976751053520167791768427999714242962419639347713769127312125937135068368079170484124487212203953294654627609398195952711677358764011325025930174460008660552943225424598461168335370999985925572667785986987266932071466989898056169045800443486293618002270824950625657834999087886346950696411426472463368394223846283607484046944039667211943362015370410087541814110431754151702786826068814134739517445829932819284730659984711948884711391983632951451260168640143329533395904475836644980960056947242768396421119683927863094352815068064785225821921152297131574976559058503764069260820422832785087215846736154355352219982029867672648068889759918461858563639135035916465564765061951885650535676142535862819728699958240572555624705871972664736034646850085257672170425615146942785084660525107791738840922586879570380938939795458265919854676303304897923669596174972019496337550398983999678318747228881955329489927789689463545315094929876052160380432893702166789228402594979037716845341091138924321329315089855723178397310784021572911050095257481728357921597539892589932848005395643045979448726408269232674669648093434997537590746283605895364911321344217162615641068099203130622934232271610703194380181507611236776813028094876612724695471808944633111672921004254485124591266027283321069885999670227600667970782936971804727360809485612510703531334782704104875012750869267260286860673895191336371258495397628776291214479619664758311184505957024005479758193022578661436029666167984646119679188053111084525823391179420155666996561070063527127552281387530038936325079336488488648297462396216697050117594126796914888624870803348530454412467886662649990245050914704996969460762211025963047565495775983811413858640599898901618877630773584435008130185489887746579244517634969854356112156383876121373832834217746849448712516632356573960904950570763442204140723850427580622574285395527607560732980241179430662620841374781935568644019489085266168766843899160937971688372970961676067201972820744110779113603976184520050101092493211577967267608536074867261861688191847254472692598268019778122385430170821023597794326251914855390958886199088008933183341814625921364979155992710707515331053722447946664493301195546691073687559461110786720050444775673915812188328034670771316971171747529719783545158818390701033882057948772221240314681888177757069644664929148541004408711063068530206560770081387490767334972727358855231084917223993188383902523438619811522149493800733362550124989549477315963109064614089677299382081592334585319510703130290491621244849640499200177857890752464331946920020180513570054902115876591309143877814605633165959651267065171770518045789797288967519340351738750938671435864479219594223147137862357687365801459264714587168160217661476829808590792777888574049872281297382079681467036882248074731470944348121744788883488801995081224521981744685193394537371520822068710948585312318116900864144094655511773007848302542047008198163670934580997000225369910450975942772252653310046673175700137616128807424873982704468360081868124869838000746002602213160973292639434426015811050661024042915140524146624369812354322829166668149810533520377943511096024681476708325430708127939773093846047592506396009654420817081517808466218111290675195036325028624633671062656551384527788298086634997431680525018701640161733998714778179640702016849747631755516787078285666123417306470841247040022680335154942853215277286752086773712544303263216036466830691988130074244799790954612243300570900970381414651744118728351807543340180586330876213748087366341024984949635134847078572341463558547408416750593713400965834327904615625816595344062256536248410554984900348289246824822682628690508687287833839528555335924705365971668773858389896583321858096486820178283404756638781122922784031123515151998946513805933637928869805080727596200996487800737775591304596468963671965164967154116393282662021801783842262628584333374585492289595579009495941181212347863466862565595056932755998769160198379753715630188011193494310113030564780283766584647571786798736169366181818151461936561728164643998971271097218522431030049314992433987811133901086655359429772419880630850503619460786148210638769287755316925382727074956798574542374864546837287080390968290457624587399722919592338183808941887906378492389665188091819331835512768865543875836246115475481677186640956175254055314915675946781049685364847157405462774432584463230265374840171555693769453724274530954595847855091912366444716849510937076690767446961989126711819214067970543707945610055625509550732535618306623903733495918718116938933275094077609769109244673588477704154989191373179338170684285077457576810275998026581217202009928679476130538265450366856781887998863368998880295741514906116815936205599426994012433917885458301403874206281260275532715969659326472507757185081746488408355162027357698191491817808496933102492651296119001721711018359278705253263570114515378775556209235474051901452784579448948269059939942346084530063298499291288447425986917213007777352630674183063159114003035075209220561115139963404567675478597436719398947408490676359310573353720650228889432416076189105176171755671353359165532120248680930032545420092447816116042494255846014608918431097296065630309255708269200511528642328239370284566776651528601622420358379108542412496512373431810634933623599841623338694001358326401380807273644777924150595317833815900081372004030278646220955503003154162182691367562890530290683022186215423902533145524651115046335498181206731257229025773949751188487046277039956460694809665858106680225283156366814998512295345696395958429840706160832932370797728149061483617308392406765912067255215327630543904460103089105281428622879752310813291556388806763347298041079858723093276736221799558168924229854283324802273115225778649960562691281196257432498846386785601668427997047706119610128248410486003115562000704305715524092905070035216977754639236672685013631491070253475988283843841321776696855606312112748643148347248255349273025494803358093800765497832449744059752557230301199877179985068661095040490525389038412651685905581124643109280899197651782356972002462301313761393323974360069915023990658115180292149986244704614683809271913349294224738217181289932809352001399332051412117127712723864541472410279367900135750889459939849753502152335331057846238977659940359151697429357912628467869197453839372899061103882883248495040603115884507568494259419739997230247395652296876777533322513407599769776664509833106516360125753539869279679269142743381457392934927868035876432802352851646769754494934081343178934651917730994937638729676088865425582689284153625268337345183937969200885344131745674556908578118135448486999505303144752592984078800521414124974381561476860701381488196337197871305183228240363822425905266019340392002665803292053357845023773717652321785093311671344894269400858428527116024152227284950035850096825032904349974520784267015651306884732941197427061085706530146067328392281231596302666058804166423688549939543050230681386354646779564365840420166676294008706823126444999601804559453406492584525797613017820791303332823764567160122904474344896117450306891063839941018507029081684878824282778714835400699216742946097268380873891811535809802856914396707920990882151483765000610686072228483834796808433113594251587477257548877626319554116979045401901716617050583689532622435626672198190321853014279735454303413361344423591939083545339696134167567362223214304208910342003439100793255330402321342848283174231403465439624615827718974803821512031417016861664707779743381041894537124869635328446918880136469059653515018640077187453301108292623505201922968412965490163829378535411891026170100946288410083936092309626562198216270079351880830179831642450115732829374846439165691237759376232348558923140379610624273870565359447119159164093450110574361276711444554587917673909152543315335580072762337691738938197784598446294619493577466058077972262485961522121590216902410981582151562456247984467016247910475363529853586482342528892567995664578964508570374381032423037208386014352768393822614167877543229153192684474156471189105559861850145649894006237957528530814914113296284213398879517231759476062980259200667734450452121991688255754669909775689341554208926267065929751173628944407936755664423077995682522180869523085885774571624802592954308355001004569893416363486485529786301621591427343224191063372744230411350432693130954239219252235394205781689838332158112607745820507839789097882106872408935561823962994247719857568677491016122165496931769663418142071009195653518044782807177348958184454695597183531612371874565035190920919583729021830849454252157685164810751626037073676913750129002032242274954721119988875713524770933597553193449286060975130665695386639712313568658356794152835819022552694977009422231533310732850005071838437645978008750624555132539447526472218777193066488381851689019311176764491274554847288887116169396240536710835533645610166281103515753092278467128189718076959235286531227432358538644404933158544044265844158683702924583866634723699573692104529177055816887433435085234707248445685138860117335456489142525086944748059949248224521316317370131915693939173993104798632689881417875048505454759020347294898805596084221596074648888479513382406000028404730170829474539292159769142051872548628797524000654338212283409352296698023963419429974111495074981102116822236569513161824744547092727190385128695036887889185212742642314989395509359504543380073322758424640684296066310639212128779834368159650570602541401852115660759890390060639402198025641968155573316229020346852622164372691997698746082543301991937652270799589219877520859232584743892519051420164662436710184393147562571495512199271979374393390090448952241671275772114572036661884605507077300094165533152066797807056812956597551912617396613935644448264518073607624777801333379636716223849980387173356863852339248449134414424278563185488755321160741335696492024378700400197624750942019501471675482575884691306788359539859877391249445137981785689760968403353100428476010145780495565616455304413502681470166450455368701992060534153418774141489631073224431227264967346533811633099255297864980876443813706733288627742575766706933102461034632019314020128271013729079475414637085264722475268993117382548312674760511535700498242768642186800265668738388093700666258384273479803263221433671557824209958004111397323153017403587578720459861920476543059407978799926289807670754268323098998177755492925641402396132675678529380231135163229347096194417937956527559727590193839207517124442866757776574116897134503650081135661329646335279415946964420835074925788535768426056157680514324485424879115164688444099082708755820279458694596266127456623254403903007757316384889389354121865106068277082283392056828418869035427921425011949116463349585092640047985694055844020406218951367121727691799132530221977519464358875184873038424025871557225319845298196824785772447885318212667339419246245816432122137769828476320301462634025664685839788976514127906076780140961033364794299676526334771653905303588011166141364729676477673486279272028648262058569713206856851498468146147504913615817792614123863235672652566988900785518323965534303160731242824358952829633183950247941500296295873347846893941815644622605082191393287061177191611103408691385029413142268876331678698903876987227569792826793893837775293766112495932303796021585499887553983275621559002882972185142044183779094817445159564368612137646285494375273764027539505187921929433318492106017230525342600880012777813354770189640355449719649874216092762890599050790531562209035720002191814311328814174692331884021637533364114731795845396984309751588411963863629871508021640316334476970820179081541069857342778488750285001911052316133856200715813712053404942974523421344834165902746927823451744300001270939906893535170990126122844033831654300247557686732789647361320123873465846333262278704996694770014387421612721636206187491456015620737001260568067753484763231785363808163588907809315113498175919457803102963484619293724061858090032017154774323670134492655783474310846723280742143951030756866315220230412803267389178566620240807744846060800982191587645829035983805744714343407689672449349461977272583008335295999664215334314858560309397077854591496466469817290158653025974802683844640040543777416907666093516422407119617274055216666217523536989914494637113198174359156271539637185386375062294218434782726337147715923209616026830449184399479798553264940816084187448539816530143151546982428993820901260958186047420588015511330932014285451993694305149343579738225542996107261752811505639547794467763770193079007476227279559770915063975356035219493026582694519803661052041791464044010320386504716467815095569658014669913228744247575299937543027524186254745357233472931478286197159938118069855587324914999253171757165356202845598961645781781958959299605011226479231981060195796164384955404070266852739352235120203306090526805724580485188976324930447077267109540215592665895633140426657348878935133133674265196248571748932027107232050967662063385741772488618192616152063830476836760789064917677799069032212936174439580782396004818422811803588320598991051185517553502984972065997256407088406722952051416869553628563864925545879439938368345179932211960653635514497112606633455155322981188586751671103295073251614904765001133465574779902669742595969345071010992231787523811546168500562889718476328464506702167171692245162799765170915527885397573356200476996035377168777780334126167207954002842763871772396927041300313318035285191270319615424981742021302805290219391212031718249907982055029131732347930209116900159776780418836353059478819803276332357378836197917154723605987095307247754197127559085012341898798625541037059166536390319625449080718032652725297877168671051866453517249331631313818389692562208603636022046161535099890402720784108300499695544134114118875401096035082023587856961217907200767686572961530532666639189061214332180150933266100761452137930338749494982943513071966629122799170833915336481034093664283510099156415285604705627869455352170315300130665185485298285553082379009475639454990049523248334037215500259767470651881028540572769159441914535396997686292354058323925031599797866425974412438661639592629531469252879281081987288604323292465107659122517862665723200121311518317053590395706884687614225309773052483370076750001970846563442299685048722091834082038424611189939581215289289811104534184220091296735528412850533867284984383925453596318350690937122330930669144801000909559947077135173725811883808974610109010020142352728105401618987372805831845668544961234604048384347954242570062730905754242610764082322475687894159916638978894868160386534910598411824542559748411898961236693923124834931276262524553510579879582096462927911670070869756472926972060066773647181793343530114327267930012665011159451461267372183391152312366660045639097592531121558130051005532029732986214369128218830136981250360586892442556877018677358752972751465753527940537662837331511724587841632490819637119671754690945888489973594860326877622065048344935207720913769256513994015441150468872622031680976450619657696376511000304544388808829494763003427685918615670587641575751344581838681219275676041676791449077456933138585920229845669251202048453880122209091002408814690754836728398770259631439287579018622110666654150679839128451741215669276833933182512110679973174103827403271605637192530743982929741417253540044680741117107938672209519277579312264552729943952184225467074744080263573052238893387348995387358341464710713529002090560558429651312510958992358194665847317465267329686912968910733706420854911543494682833583423426159567222945280591484001397597076771986848164254804767041477308758232155055580353619674226859337741113123920979236811082422193616205398477226078903349319378491303257144290639673838782828242530575538622949782588277693932703676116837456115496919541280470723189035089152025432084809360563130130690032698028363967503901334615312198846985788844483740297095894392479108116147517449233432044944554693530930655110871365966057346240563129358057035232684101701373261253564239071074543571873900618992598706506932140568147991800737210182683814790054251627450510615394596726421212769406168517257973990144116766227316443787131107718043742819066029790477888473981961247352456416470598556986775378032045702183682022011973527779043497046142542188912674729390567231468899356939081802501068728428278344179321666884117533677600965269213460034737392110771470046994152776631878634609397239764011279602105674796182894413053973349219302564190932146051746775963283297013358969640842890224771932122112309010141363919576284033056750741105670279906536674725858198091912196545585791841003472006685881957871633376613658852155220078882900725993502256637450697425505615128621921120947114687395026058119140064529353806889906834326147373405893412315952166482976062137866055490837309014668323932852024777270554618349751642332611108676653378038855635506269013831477830941199475759151553476238026783182114601031201271613803517284091257723743177182266171056715867902512757026519055505182382848809503126393887249319912720894615856379546966776433196880550470583621300045284433036292592601060080218735258143314555106817834189890611923094886290963658845682512732421009615441067682094314569012715284716209217753886372063954732926826725909367878794046430744454407786922172043999098628867796104920818340471321333550595934606221439686691693256505752765308270763060544876599557787567459571405544456459650202376511643572864256624897986337015761545409985593510732993219080175630262611767735338787092066880481140560889008555560114865841733583429562184464885530959864453585117241528216023042035633054609371647949833151397077224913020318497590926352145304127425455966286768497238794282153545719905968036569468801545105620498002518544672705797354987820912785726279524798600030670404060625049273379030798645881867334658156176305364718499905214737495133076044605720239379998467146836445142232223728327682144365360417908791668780854266029562925730923233095464140724793292215635478391695141447301742474590865344804596454243125927490909966770325132945973669042545058330479919926087032735181635568138188691441005967643490025991474792960223165765311718234869707859583848651523077718565956951781181629409904494967009120978286205268332001296441268064924342165576979103839515098176586706292554746844320766428695676545466565490207931603856683131408019433491332979422473223102871359972075754453893765788590547677231607015394674704240797760190593535825446867895032840963412781293915950159837979541122493380897027987865101434042403942608902954917110692920327239154602170952439840853895380444910534411385131393722751112241659038375981617089734482646152364450281036808516963122672611066771311451148985232813999186142271034165396233101120137404240658574261448500051024353843041208372519676298911584792590960539370389218498345538832055994687992982166208333163811452375212755897013432824179353052255704043171859600295803998928219142320437980595707440684265906111029987803835011864846848740409017667353308403105422701249587677483385995087146021895689500724992283919036373791984913267405290583505304422363609977094631101112354901348245711613293480337635060629164391023634738563238475986361991805271095251388495226012698343975528455982640726290062987130870377114831031184078962219610198843021500122505882321965722259813968692550911360548076597217021569305512665793753684270578863014013955013859193923484113404025891710859544922060832496645366920804988565752770059000624968215119553669138443708987025572121952234250378250110158096488615701086619456756117604656260876476409276187831000847497713391090607175128896166766129345175748145440644630150608093713518141904678281376454316132310344471183337821700636845567146553393140872828328847449824483598645881894198140417169144032815325244469134606665645438975099485200586580512842461537862299971719250086145452408549308472514939782285958916503828865482722180590054691879370564172192310638196109952195823946540752420286741035795982726413538476873033688970041799423875865423013509110967326862899604289847145604765102690257442179193361646799652441571669396241146234581570384364404694001416961669418210460513662951047996987438968676843630167502869993680806144769960082612032896010744649503878085353796963342195447650713622913382305066930901602980014152340049748662171114745235857635610088693721926790691521932522087933547735405235754693928124632827900736068905520315482747896747046551269932335165047052037198794771755568275009323586721072334416614828078049761025804472075271547829532876793122348801754642017137067970133720869010906319395942829653977213016196820748964277813335558876248437605810900805037805958302934228079579310478275651351270388271625745188955013091962011768517535210714963009664866946985776093757570778811436785459935982595112267896378241065540344342078667783451102456974764614183934240132092605023896297055711721200924841314105606249541864752154867293838416340239755021019342266985677449221421988987161494762580962780869408128223821135576720311011428610487624515874399441054369605394997715352939984476322921810524173443527889888873192265257039618959700514566632831139443298753822105914695420960342267739941521591512203829659031689202283607544469727927087153911142322033098888620766552519615365828027037996300258781355421587852934354800117178241025480182488167704244710220077039643600257440785284933663785037169761990215621289134533063845484141340445658177123404410301758415430444481266573329915610910864704447322468169161613274142423475266436365456955727966831541766272271569242259837330018191446015592612563114339533665121505799192445811066443627850588812721770404340287854651676904651436854387646453404135184650807332094270393404307122718011515434884310100240285734356929313695069187616927954586044140522351217432182792348696477807145582809814262677540611655327939781770332358590389653397498234222543417233295697850349440488805188736942696298937954265716423637426971427783734078965436477948139796354189006350422440376097391571407670743651742045646051807672009990940808654958881712787653035129715831986289871098452265924201221438843216247080013879839457366503075633427045924782385866591310277052291913670130505256685097649445008124144881160260875823803044582982152281313616262620039398813608385267906584858983204131248538574010493444340962747474228183002418304378445326682198522080095157091809271877596112796854482321136628738953726747207035996698421927506004504184442239142395183481633083102247304717334561456549288462868752197573240966921860610214377287703141951108114482147889573264256036093767223193528196221448547226982026565396339589962467673050431244732846804553349762269563464733047261617224179591498745690898930865450812139034773601891817883112519138083987476897963500084164298897111966202886651662846917890050056710230790395749720972316656282649786075316527238499197284797340722406453262178950544086980469610102987180270725042903926647908557720312873843913206415314145415302820611913392864661973892849070708931078347180593169382908908794829898681135063655502488065173516850037286507877491373675193818284774848593360254999591616819603569297448929070655799249863000400804802746789127191566152391014657470739706433815860431552651207850748939461036715988301562067186861765098500658995458340291545738398971653912256260916642685926099461863407208251901045505470555209077086576784790211114098038222614283362748051651237214299976252732428510122610720832498171985196169889478258632303056328495026491357525605123454342953372254077347886929345886267049177444991056925311019385275350894633322052285986153697783979725609857070509811624009436617938949153438215600415875135121043068874907413358360877128842431613017333752065300487963970654064870506931619794945783407771759869544823544848634894112841671071536986565674779868895347461648220180046114490371166115779828809359434959235395594062441719337889378637875317997605413165144872722461567475483374272905499510235241335864276891755937982718874421012478157737234273788296022535516621773172819008629374918295829617938200401267895306903551647997071390339252769201908420611125346366182002682931518873422627160793089917121833775211192924619265856083699461093628845544947528993366515398177768033787008325792791060612312560141949080027046642807876589924168752242738203454978231749669973968378779509590923437811088382633502891221760732798678648670830865221330293777346635527069555718868928890988359080457642922152714914517057915051055636827124615017450161203844338135363500162135287239705450195745352519587498338703339727546041270993738290187422693140333625747969499860986691615521252216006954227108446167645193902162940687960463596502546945564284689812912468177429349281230179464914879687196621091500874146098512785466718964341924427240508075238852322592268392656797292265459595779325603557614279428243277687285369113855610263227364938499825444193684267998030861182427419251251647522115880270707213058362925574120364872020264219893104176823417262140017725066186503368156639378004836709061147686052752444038409306310323052415929271964546369614626805157571319481568257689410532542171550144873788542592142939489631225434907733173239450383002725530701943504369542503100107333183553630835004318731846165703439257846316154809280179677505622949225438661197496920307317504260722758208538846709500892128628851298999635870002159701548926279456338255863942386188964027127913768640332493053416840335881394506662488909565834584586528919243806948266802466752009487390145290700430716148859763643044057147562805264925602635209854686282650846880467828017064135924594857668185405901402646343307883959562599949938773664405589708062896366917833470948856430488046919922423231225907960602803323052218708130270910323636737338845420568599083763091107074157894801093106419480093626653918035187213308374131425797000584541788302236352670057659037354342638516370187382287723994687818184925813701797952895616113653851518339720410784259237366998179334240088888945579922704934374079698453353419229197959442679771415730840467588099105092664032019439067479439584255049843246708650311599683694695115714167331079168735789669544311301089425802286826427433032479345398547500410438695418931405411650018765941262581630163768686090872533157753590386714882192190546588707723476319998074749883255370016644463006202741022854645865131997771660344663855234201920420436868887392477029622812010003799670232193696165812673320660967755374244374495823893982671051067016183436579094058367344582670938483215560527998513845043405247184504185501906808354407034582712808010067956782793819431352443712677973562023038184170673913845924661886442885318343617425317610718932824283247710742417429979678444317837951382959596120710260002541672066806112653696910382840875115801058866658796845508888373762019618705769257601060211302267456850245115266882344618688709026530201888840228875593040212057531929664866536981018631763572846171558493046345108028430942577847137277847043137318341193059583093798241604043567192961056442526941195097992092349829741453892935158175809926035504774756667424001629534429430630141957035554125067296837068459216808324542836159022628963201334451843974527935767920819585816927009350132582354810707001348262522722280350293925807108513244726425115162596902843822044450262518860908586554847662461886057757955956233322813218691825475872078608110235843885169521895204128341985865808058114678440713223815145559803016865595578092729829611941318805313202289549960857098080365742683445513031048672777316982845465967970661972735642070697456867799055678966179865690098078828596233590942574083726413401557878031421064303197675260956715190540703737351694639701525444301213846249439654525915139390862251845196669554534306318516222446759081721203811182327053520936668459269684105141454629294959685172345052516674803988481631375198383051766177269561144593146533861679503305043182389654847378859381749724376721757631086504064293520573491483715270604215322451800114677907370554474034364396031122173856275086335018576983347218161525374039935212761594074815304057675087238495363941161895062873219685556690671290751867496928960375091605576589987285061193318256296742361398671662784187331321349243869251707230107736877675402757917955154055128636732686040783250297077021845115535426414123958024555470484781217264018637092070449981496571204839185447330285354994667519174922170708162375302510671170036235100922365712368405232399854646580933285992019365838797096594901008544290175602794131459836003978217591715983492000351434009243562057250877556670033675988535356857423351205697704805341968358850845571093338606440863147643368290779430525461331098452029808316877425855774459546071723577421796997322665218766068143446780277582163928994341287632635059918780743013676986302612678839427060176533917621994028013034568786300593689240074320156899719909672239602304920568233067729541906709141002434804813501857800953011203991216747688055646434537275448604741455485487330476323955825257850363408057304739841799568667039747940320095676451967927690492286982229632087008224091962300290256515404435476107733705545933471367385472170594298651497915732643631826876399741917337119695358790128711494290342266992140754647609605467632342265742158611323862259873692295097580643255310536000687501623915376101133299701986226465437973722596417210203076636861808345792668869444143363749650662085938257406294061760400303049290579868726212305963583272944514517367068547866895626152720826022507799002311770347532913656958785491620185416488307698126945841743773233919173933191254386311277658361152306823482729978948794284492526518527885299527404829314023012513992716316956749030794213824348513274491709104972499457041967807803116385875647257393472449561029418685156341544884691643663978881520066929924305261640049004292857022715676621407142302282826626824710430038764249555654963178603388793282007582452327831309687124303622557116917309562878300393687751729444598197325893854970653585946306631866975230331126166238609972192201530064294652426634304705595840075667682119568690028000831594473675063192845639468206990899905129340443110999491736809369695612469030183708104418888488139141321555443786525281249758996962926021492005673065923135500049245949820231262608653700665548617095902431565787884151685603131964455472616982455598802636224483208694470380635933866649118294994610614787255389157727253582892640259103055487521128131439929488833100661639609935544436540343017711073447328158677470228800127752359453049880354728066336817137792561412710651480094435659649121886455843320914875807901668468144785348161649773537944577315951353550058220400471889835120223341242654582794206912547954091999544548296389357597500540436107362274960892439275477131968986905418140275926731810938257749138846082531836178991966895373851278559320828139963545442555608162897731255869455426451592030015542170716518283352112368519976631996647233414424856847937645101443892685349415051800521794829557518800919809393366021047036753419884922208231624991427624805945112780969537882589360100116064077165719329123421705638754961759056632921247118413270665769502665547810550061123311822526591202956834020251160523153902740474530340022604855516513880710463101045689186978291876431804830440964326704978548580110670727902126123080384361207300647537193605608566247708636429092902388649089133214528912901622606391508906961277458359599903355989356728996889578213926796712692385573886950579260967363976315967040305103951722461583400212034437156822014208189253350066103033943829783340835177448316071940593341835273845556489657684017059604676869319800791047857484162598274282118331923138578191430319818357668993950580452078410468617345675641842739770823913596256361923270598791171091565755660691944702136121702750885248852311257094857464424794209734231718678627134147574439728040855334817749598071062748472553823645640504756096094582414725189090904691397710364535198800729974296044719249000892468754400324711357767798851619394607680400620973544144610680215690178902422735163587132961630535405904195924147049013481083514322030276810845732847979885136649526822043715818976864356740551025005161168506356451976262698596857210135607547087066982464404063953028769635405634179491431344059038583033887523567241902294528868267592925423355017800926184973601353342147648854710633912483170720353801234735702399738660583338154549252339567389810607259360733765049748111972735146460933651687260292279356004247347742101907452896038837507173378860733925647506509724906102741273179921172435706985397641597971816908869670774875615536406644014747257401514831862166125576278879903532800771185347544173512700671689392751408882293663316410440468652140535617656773837514640179287658451861598561738134519590752984624816832350963078583636175461169433766990186660978777637909382864937215438389157319301864471867436681227036904430023026735750617375024108575112304098824364519346026812003538832912739390376166062062053620282623529421822776240621039636003328862212426321150192465866580387222788551581508685978741404597547836060751384903106113330724537559347015885801891161283099998926864656732090621885785299310494921028287250165455245569596412432729581163901497031704394318382609286793599561002435902583675287995771871857552429771053289462326761342041184465019846933081743467056405766907862366126329586162754008456795687424802682857208464455241228864279785271064159543583700386780910701647082190266783072056097850999981126336778091293354957834844778329651931745161052970451166860315528364983893664193231111972765843212421627904344228710916471808990465771809150358223621794816554369076995929788300356148434074752972696595541914526996248846470902203445099209171670554960137290790439675533784181989308216887109830417406640136816798943037959590351021219120382065471758406722171081060482425010326743959809965840078350760494467832484011630955693680841489465208307426623785562338273621799751359045968366598457957301724884023211664084765410884150438013229986382328800240982748621960975390767480163661981538213888748790336178614704614528816089514572667995172514849916481375830528630602370635262608707664242808831151050665119227727171662910029021649728303065987405613674495246289286792744717010767984266805400623444281618640567448139902976424203937108698106172429238177532485836272049590297161924984468750434855918258100044329437283699416476430326886529611766966001986146761843425457615659656820943304689898413258224794555755975451101575566040515951205203649648011716422045584061348285071283098123598242879627814592166197034287013286558922858192057138996419354659162033115133336061511393474944265104588054021013123227946706818915542884415172826473878026895965960883365317282197492876242643889210766666900808232352223964333842645237982691810810350600995402421384077740943715170888746601543114113841474308617820234836516187618667785539283338161838407575776818706106822116715467747517230444661606810114507645572498011537517779109734478794800771858089667854822968143907770213445422568398325535973983991938194793179787819252613146736958806548389427842491038843219221970194430558800808571458481817544027809841815942980170364286161605097439307838170525803103527679350399899935360035419227997643636983512425472624822570623968668093278924565971745572856915167903079537189764277309478353283505518138992324148809333455416579240294046301720754039212961605782675167000317148928896090520698456703444435032244452370014114681818653607207535358444322297664893188174244539636101409135821548817342790282838431331357134227495853085559553988012446219650275709490296124683054172029727264894529343487139854604389147621152375058138099029620015866741328788332359213380460426136719994510696001620496281621970796826354329015130560454224857113746245724483334659401032074029920011910324393573445088011464471083587114832940036630728783458244117882379335276197511397925205529358479749887378130750859005255373663498714838862079325083663568783781278768623129154681692357512487474498027559219461968945531439222959887736057549554347627342899088050501330833438253616868125732962685008209296714193340375238990137613458196682307615866924432752731014429892809233491924387192748377423221086332685542771948743285284514866731507673432121870927286619323949414549101173996044739758148697589914968739274614514107093524003948477476784605214528931892861856216544720612936057028920519222470634419762289104836727527317750028964384640724956375631965626127315675321881361695789148845261838947818185826186602509068736405138447369455260120850856853481379183411987821967469030848852279073578223349805090445875210064535699322665250899924370429932446255366023948976992091737531396371747337468666448642828567579132900963523634801309960379419952105251439663028511041955125139293904987994360637056274016302952275790583903301648464344343176295715856707711553093725045363701157089368763998583436787396949035283142372387762954093248809216805871715800713158610166551517722642679381296073360550767643160784498107490437186798622505403719552489954495255607047210898692808443449089770868399013917312250546878946724797978028549752906781590166578389827920033954393576833554007206822695619368386887365028317777485476565455953054133530962299236965081339696655763493289774241304775869556916410390774909114814927964064729973099093645461196270572662998776457423075562300875515871954649604204045988861160416725656493598728244398697935109807572360877345205170073186341910569815917775830417537921866854062557133866295404540543893579896281476468756657792509560790161093488130674294012179221150102162637707915962115484451612973825808001220687361981031318908834997127379590585014048094874577918991021391053039040600786013191928216377649647153915958963642671160179373453543680947620508639976828255787345363090012373885682726564576687723121420923282134774237561360970509346855559847139434533239836195281828484876239708394733680595897013833631123761933657321923546825043781826580588464606935680263401391511140500609903215025116432334355518035996334770717402163016475618514574378211009796750289006777347296585304199548000757297439709582253216068693867723506636904510977315443407738746483287970637860504612494511362232773641378937519457121528446148847981661943273625045652375799110497214809194437726807012886984160661588853777300767117444865367499590070740237213639592742682229892161953697466448703909235646086653806937010070358741569148653561278042163614349452342621817854982810706711224754357833866343143111935076448511910784227698492152214367462456780967198004565307710343541871115652239699889873055953694253680540788748748568295167921098596945199700077269839416019893207799130676883267846100898775909708721605402424567361810040339526784271363331997053679848152358960986683722034260320899843618211316026052625459264313147667215890527611690718996183416184762708533582674270625983226833131989815698169240674324788318528409997597523075270789838554289995279577834584260727854617084490090704625186639820887664289612298044410190458742035601331949377963339846392105477606176005962108115272440110273867272295598271796265812902569809724691920527370412887951180320633951854208362099025070738733948675508106431149964539819902411838839430180211259275781817211290552040351508883718072839611406547306993175713107736779547339344466182506036740580023311989682584789758932408778765586700486377973238623568098356983536156598207385661464389363894450315553301703176779048052040117064126741930387841596884156454163005257463834949774889437204804195991523909000902437052854508504878577133838580227934111183800036372193026943756220492851373269342873496961537404145549511496656131927342243840943214603033086897301571775593509967747113583938663326120593401635511677502592199001400825292084302496937646249535249013992908475470403180522102026835937623664311580733616210182288178512252154422311153244970714172731224415800345346841347673110364874602546437411891529444060367725982576961751973165113202690344130984788930434171635718327182761164414125320011593889493845985355425249176250139224598816263449493069715170203191897441001970778577263626023618191745239516768907102081500446000639666776192153306619992374472014179833933343787874080790720404023061234703737109754410419823368520643116291001077715336096414083739047836214634663985536699923777818912089349320077312017131342132551694471766879025335086254121091412580374052574253592688431286653333438014568499115548079033509095751841383693795629557048929123136341520382941170837826957185142044989256460246100239729748113647782673417623009784046618232989355612485402136891016414696774616121740707553203196843514173475063782641912868962921417152565347945367070856791653490340900998080966266652376246965012499503681857841010405020356134968738777704539929871699049455205620455529410620493221402838321669779191807780659371170039917015967553587604053300022244014855316605254148546529122826263050898937827542786975322969704202712886730689572480364573877638651855703705656218807831947195633838160562858405150503323276743288981628463314057579445556635864454218166406117685720434948835136363173496764315985341686364644203787009970350441759390352154777351220001074103435763917762451692370293443620356117337130610322396085206062451608592665905163031775046351790186561556047966140575339139793439210316673238525007564692972798915519608145798634484765638632972399965981096996927141070281993077068000228698827345559761299171528920073721468048677673102491091747761170622989872784088970172556254185374554047829830927155231530475112008116267708576104002176371928602837948268558130752560991825988410191081117322019127787671139018524299944296490792712089782515189482329370525667290216233179559774617719616751393055474795130359136893159497476547252022669073112371012204313714824221670649007711036130010172984119507192361093050384140288834227383518458227978278917263773525373205033397156367391456816271219407274764920897813366674833647577118179738771131896823404664767403812822200295809833805952787533118279043099667864763762952316693879296536877036156447281404953351194557383565625902754392080265612564245102150960532870301172177307864236759263667630522581409319944038742900995669407630897322352594391739072844735572389474252804145649450618761270392747344986232493551336404196474557195380744535452843724328406373672281024869636157637286469716555055910863583186738497909614189010470434208761640578354481557078143210148031125382477096554216724152689191469989256162776897110869706277212136192340210811282093920448646475153900700202217366778817547309026027802030811516409818111203162133965841113639689714177601917264311775875191839473811871863861710958328407326365325049093559175512247804835177747536133623356644452160456736413499073938502799274734027964823111928758473080808933842706109616683756734160104147459216353834691564298078684252629597998400958354885215363452460837508589951325889768474447488567353430130540002097793086080680387904971411614085659977964582372258544691792653211317573186413374811812560692338496457084747330614514390489395406174797488265537258308710696919944434332131544992072758993266951635732726561454592548282498217947575169040066826692656587254656069267000430902856937144423738516602633188673574125297454766659772301361187214249932460829871452668200293903959963768228977954713221488734149481699808718517095469353026421833907575476748479783601174557355844596710217537988640420455000170384358983855761180813591159881881487656510085099212495748076852090060952678241013270656847517579839702033800922190169575932102986488088546835026316625641050103512742763112632620855223068261994049136613911304095752392905087483688332049412281467179672528274320445794250478270647287344525109494205259627403101237072919285327200723667634905993338343317507254583654918427585820864037597658693776633551359239957159636844229368808925748270884942504328676378128533362803995386407315773108344780716096710950703707020463086092145520770936726913634952499587574703517025773810992571879948843965933138584627782332546512266836532934432077209272942752636734054634991902770547983682285064504488823683145175870798622894421308905340729995400449275828740340088793037782839048617969781756540686200315541345132063858098720219618445948124640441814530574573714963897800759646779367872368220847106194224970280924422696528477013953777615661775554804798657130491722410694363958663904728879395994814244388050066965329947523157415174063433426001587602468038268102174904145860356215238702144213427028529023174827970420511608773274184349381511095438745985338788534317526500263471897699110404596545338467551561782818858060377136317440377743526899630737475185462973627212189231842421871490169117387182761175605587694967659516815232916550636027850272121318841908117846391324302049265671825426900345627091168261531514628961817284823941961551351861025915219730199295812452075192003437433846277655481428258335703976251015008070012749587499016199406102872862755469070167599767807671492062903970896470258518125282760499512413191422453736821680968547645212399161761900140432389192279867956598627877036370885388761970367618951326973730664118320648373712841060418288700680146001296564464788884337226088679808902227640837764837480329654623296945785792168992547301116813905915413395921308882075027247083718672912378329774824567389654422160198993056058864079797947138757769931328601043412583474652527457766866414817865774348890319521538358318541594901754057551599301334231818372169058004295430864123233947663843467676794542682116688064091056744411808671531261950115500643679537476832670836756341068166738461995306658444026366728406005118280861544100094674647745527944422481200305747680552154230831972972821418651961719218341903018448350695365495782635182980229612604404291676759528722690853960126526659967503775703661199652014055431865798858998382287831995914878514791879645866874923069610108152137564467504092797959645572532614739950047653457224898969845896667101708288610414414180547650962725280509285517933093959680141388354795264002003229398606781119588079688362659947183583448330805859938526732501297759368754147601413651876088468416526320237498945673920946293292186021165483867956758905851906913534377799947829245491594645662795755446520612016327271051555451260231511177711443639261693395900372291032181680998972532468119779243342540650044782002215766515030105045704938383722445980349297795912981185851441659115153569482708006730964412730169058224465551625742962224583352880966875652011251687001475486917109288311798309738500130038048900541530094470874621035877394517026326373801283281167378483935111406098924356876915595164088508589248519473560795751000394624108576733296402791002050213344493575322026401626792305646021885502570534755087886834550716265707590936151172797412936090600379023564917148719306876026353410874471435514849319291863863454419201004680245248762956527664058661628423998166238589008344542885436529351206076212666636639794801516116128433623612286122090981949800199176057169552472020998607853108477541566490615025968963064890283998763880596448713521779751101681527119957936677259474719771099341365792518823303866245097226342381845469584854650740366089978253108780014119008577698924959016742889130533584700070043712853647622181908200290668552222224378187518688137125071185533391586615764410033354565800573207670728989075712350061454908731841693590075301892596278753679975316814037802715331228647024801822143544363539970641232176029607345299687137349016679938037593609403496726980034528755006366012251230202088009112613095751467759671504930682623548270402138641080985957787525083626410553696569910406862330376187619629607481542355765382889755123203631822781466926089912521864140833360199921434772271410614773599087136064918851457751348316187546673065558049993466204283027936149340333488476863066675918418180580400754123884706217289499688086756461494362751318979059636737015463592369631753774215429151207334041581496981838718478365668180431881645393930419651981414542047898597079940507344663053269474762094930753371743833243920622400549422602060366664227766792884806346842376334210233385469403808354863268120483559615311399049930815748378969782640628208249425695531055661671070852677789734603658545489715439639986974024333621509313571331547776452970714496914540980823309379946240992993165222365441747101803389363296393342398458554680634024125598085689916299896102750197681602117663138887100631458760615447335471123070735539193023178155779594567905718068946789436778888699184158759562509453310315647130538079343210763753791330478516234319761123974034592329579363932613371290824319288296257161964515152240913725204326679511432878594156378664342728086973557530992944663672887073428266383411904349735457378068583698735887738073949728521755837286469149267248341632920913188037227517696728483427834118710863734824055293620615145460113320180184683957527367354040379500119195427761367028048111536343109695949092769090107785525906140497319625588200131696657826740661719696750544564012849729970212719836875787615369909614025849670404180498204741047278688700795730179617536641694103774234359590710914440099100081415455780287697040136846072712527643311396307148018985657546935341535322580953411718903568878944862881046356207499611809374363211382801499309527793746588133493365985531704956695126897286947127805078869179856940352818274438630244372976612634536319736162579002557128589074597183340476177501670842009782107596752645311612751425834350579857398286399215687031443163040798595191729954260261571641385783830731513954559586267173805211411636580228843353372590317975373574156157206796628588675084596599598562876758775217462110542807702909099983953047779168341056597560263381117541861761979689891928722229609690016805379147024791638711914433593853967819149934625712018718114842192229641864754089706440516182591420216945074087959761490922520106721378667483001087557122484311166527318815949111508933557103259299919241384973865937303364520073968935880692708084166258100547412290519505763422875071439588162257960786252717858621722530416504796060477393134223724662878101235988230237396023316680121537597893635599783265785968377455210405412907382551925246201664794380809695843356769555113676943781698235706679377156574460745145915212328646724995039297110506484245216776236654933714260338577990466985912911285094062264580003116035127213057225782762850077195602484092493038578570746549993574170411929727143033009095657527857497309248284376850703100877800290549324419921831627300481635253285595520440260130975449832216633878390758997017266106290704152058303198021844727420536685910925766445071510686573326971763726915828056341193105930458589109264429273279213314268996508583271466638583142710807796490193589570363735459076523685448750191716059096220078715423985538815108401309744416853663373404049281963053522810500312595070447273709098422492490699925294426997204153157889453567691613890067504636367189226851829866090218035902934794266417188409369995394638144293298439508866254178372131195667340838611051150771397708384948853988683364919226844217780151293578946910212334122849423333947886660387635215063753543766863810233961585354994503769317047934500250818312700033850391340210304294446896668345578921525400221972030077299901890372020475546957391838463882526487792475599235552026552921026522875046668550040775883559415875526309399904238055399344200339432672806174051689211816658679160938505122017638954001738430247714360046962432429992834727960670235836160415340436565692473402880090757606334342246054435972296425216090300459769285548429409938273063521714705398283268533811458475160966508801110974232507179562013555163936926953120011207150563816608365404955278173673171604000024904256553033902874464370882447850511957057016848515500297426479481365151784838990102309034831034779367605038626532275245802608066047526897472732921870331477903621034883990339197881247890997012800473128273078587424440008697186043085816313474865475372066326813723115894416815911427312831778984683095194173788117008748171583463084120746327200479438539633020150739412046952682121018084135807420851066474464097811315073640673041670587340540073659616447315438066501129482484623011744116968533066483355429849926605545857239817400712577236412618388044543981445601274874767755743776234379146665965413895922059531838541458284151700783419249686663497758427972784737828478124645860592460685531261099615212155120298201656169175690730662124408584944321741210393310030959317817394235292054839794406250345073264284367008898130076852967824014204291252005395115844656694108215034551590862534264783734042928620635499328150069058236494719065592395206298972749014498952643931858125500178789307097752970117186513513066494895993684525682789391351710684964499113189113108414204308875541351119844202467486767026590285924930881227745565969696873280778154622209935356306120335029481355866593790558778504969872083538660795931446760224255297992380510558995305763947913582148730977670701447178453363600957012268655440362978204769744541785056064844745652498310506999351344012833559200572985639102785710763843978668654760440274981618228006206390490354744959761022183407559557954910797656806480422856205268902054112402879545891039431736898006185831713442121270926207657093972302658008076734506240100839522679911044171652088580085047849377262148394923608250597522043231605240655301203198356865593583294481447610151122966102593477815913391636054362304240485477127260717274480543425434482649673098783977535817892826655822191628629920442106474455304049463018558822300376664059251142692290253236494909829684238757464553357175448230752785856981368930569889068799748393579396284400633996837516042751552261135681724477545771065907618863288772670078468445393458887098841369675923335388624652932924828197666449127413847107634578936064175119174499682995427428830330958073413467093064584860604233094506367704602946951799847381108726362108903991882491558433346547917152217432285460517510737382855777448687489802414352744237203671901176586462554543935853528366584436220949678413534902332430386656751628476485854804439477798889898618209695280187792212594729154591277336069779874331032414200237065824286415454517785277642561492206562582989998769125589652053986726950829106586978510224903824052508679956474984260986047587037961445760917868685623775955048900786818115991738651908648533509477962403393273986549770829816472440130496014360993914465841881197664976703251910566179633618049492448637513224957079105714663349027688372599791232041280357517612978864100903710879919547813928504712354475044733977051132554306224804386547133747583570408674504902396993877072071051789201432231972327588618620568940165547704634249700174192222270558220073161396547652099979202466137500069538068730908960001804341652862882854946880986093719172140654878538307815827714253724601479028945910741554702817792102230748007292827018534949635641310359710575988462400914998188978799122180273392146927089098490428910218316456274620810257865196237850889279273326479026407253817576630857091860078162645778541915114857406246170333947925689133682035158590932202738310741837876809649949617454855352985908276289354012373652871623604948096447088883575347931992315487920429479442805190653158153568641438603975983447234148192381026952122946224966588486184496313921166746582974904017949457232032780818039294273792515589754992154584139577985318068783475250569505601138207891333142393574369900307205587268121870694873970554938323613707993359297118340896610459612893998891056620515672108105868704557942040863797155415619032053540679484768921364747759979087301810465296560567390608958530217371305953746167994433819126792432215330630643248374462145048939006054434185221341279323247632174937074234856571152738170418838902499879009809692324343379895653159481612007953374850486005286835649085884887622892742415151461113623423409196370860032657854738648662827879894170230979941249696457199540343918960006941885568541590463537660038045513780000177474815058209146627813787268539402036513160484290130750103826490412239046855229780878015952162191632302502672959663712546280909033712097771822350766985051102577420934473049040728405364862715739486897588566414249239675492274775961164509903120730368176627381148162845183225369670197402936402973017402222672641319624222371946974706658332840823633824062694958982425141026255430581130355909976580976635528696658324636772283966992241691723284442466627267999652199143667017458838807187181571551758045933877816548716431553502436713194091115753208045637440106112577568472402360270725305052372002507307745405294076855258003869395618686895115025690159302284676343510138045855949819088234186962821771696820599628680534133997891891454983600771521896078486761811607694149471165152103130352214736898839595640783548631637377587482924070773721853243100704265295241879127637292592616952246362335067554852879083389934663596113116782228500459407166960188389715774250107993179581057567611120049039974022258633462425835696766874042491754172677260531864756542411999773319559352564733999049553389223079913582134485806586990111698072287660869233395550677753725345608668773257398827081100886983990193688376218477248309359688941065906149014588782696122587203718805575316680376378911261432845109347560112344238247713728748439096381890679101527037147746012550866163293523390851494843157256018015003625816175468925028317308213265241950994543192783874329128587909141940735131192007958586662002782136317300691919028944374810557118162768786622947174623061537391000363281839076489195267315361643422844967767967259323337357215670231421497292971865361901201567071083608367080633010787828511707258835705328838481609776691235987653208233299055438736206993993902671852316612661936037971271788220337511773045248116657393865434221584083215659256596546547888601441788027159025380679656402916583743444239285683022677387175170024819956345389220633975160778820343367732732069559737869730595861841734634937690775881733485873270706981466191808980284188994163641999236896154807133082916223401104375743669629107252672756431177416416959259808798229003732104487711577249309388931801576557942126174159646130626719434105899473880933525398951110948602868056614231877616568665936522681215283141414832664687232508835158291632597379824430994015743469181564151557602668888318586587042253597075192305317502132939562733981173819921148939815416580953436400627016330270583729804524542889161714911817124713919826992941595964521365115749676108062510862031620711130559732966715743342861834586149687592000644692048756577784532237084826366050498276574890480033974299593824335556435088513329548839108981083891054052173854274296669478122880072817828337590363182008057695132730551479926816263621056307192406686787705625799782797721102376494042599726751146804542813174739561336937906718274761421546713730835953026865120163772022116171350872379225062862652441967951541924747772824215392316339285057741302642454672395762638801082299580022189174863946029738266212629037403990082066162689774727137161722363932072339468042081879258065027077216994344545124171838370687968143313074180084230937207947814972055376525401233997654418666789523417164306860033686596429822524425792380142109338872617452329736170902536819014961063589292280028062408912274594457604732054529701367582165871489713988448551383060513335860327945647918219741485479888898880834662565833827562441674494743546633577236054586906248802408586193363693793908164274903642654777526347760093634030956278583360204924921948478504917802992844514317737674811169297521863138555201594562949774209331751244108120115008198972076215333829163191880055581575005418493338952789259360725688604774462474531062872614369432019776347741108113778558566983143743278664765471543967721293393256708026214492081522177232310065764484044923818528445206714057218053735126460534670429079095424279443135358263517427102981106672838545289705020208402124699928515696495452408939689672517456861618933214535486886763983652818677703195286466880915037049767602932933720676830515885546537434479928756642452018543813263610415648369114991044511322607716680783167774098189554323613861371388287494358159176335888063829273621242043787564720207035797437828231732243800875330309328802409211645913340421018295885929485957853031252394939260132263008528468705099190559326147575822716617311991799469688333964748284916177449720255564143824623973184030222051231738456048500567428313087941432107680786157546833748896976647741292891615780982333532662049353177019295708602578562949510537629205507752759052349149766357616467018604483706417526321822458350535763157739308274816275950556381665588269594419029487228704562584369387618657254156576918116627389815861267839310471189395348625567022997444353246470323079682794971025743989142224926834831330309720376921651634426861718907103818266212600307616042056169561921964571635099075776158050299918494951493213139945770081118317936726974753571508429415684954549692016994189788582526352096173221599310140086055189075290247706607559892605158501357050439895009367822964515336958827708244755833289645200732097630627712048002642807889364461149111384795921360589928256963135991432771812355122481769613440451036267828694448425402555448423268630482409737293098008244953391495780871679317318278818233299115903374957324391699856820655254099904704430827328765154565620444155420028704892257023902064340385714154367941094282969694628922289001686825741818704411456822928683249489457497230765053220560501704011038487740666972657672270127667794274202740244448664889133061868950878249997365646487761356456006376655004921312550349830658895534897477451890596848127113201983856121535973470257391923921862354981997016778131236954818690120275073855319161881566039745477048303032205833327977679301632304270389730291535903040721735414330380830674868173361042428555490811616092544780919308341878436922689613620029632277305600384435305749413627460324564136376154682202110283139038093538980850982756456252982616647865401963962979708717509164834320059924866113030308349283632907206761946908002319605922913291327796808366381945695430841330026700027576078575478371319088173740280191193735405495888376224296714826706015688186653115674274596782530714245858143654661983345485424814310780599772588558257241244884248103167428048162918775589504220619292666974257309196722599268911790960638912519694386367048851287418691554564685846964020840693090291847510925194181108649494958727681520675632863015085853701277919640802986103439528005125805679553909095323912206069266248902956130161620248953030872281124527444630360242064327964736863179325178945644715578836684458224425614977688239669226542679677322858702951310142127938457773366508025941652221936692822111232613902242434673311155936943162298677051402301229181632267008499705746500581583993925205478517674797450174305846416587319571638535707677604510092938393326573165284139539762892773413978372132700419340638677653485701727260839996226676425008293726511498482766451943414477310383073790659239572537671345841868364494036013582849284042828497063598321652296542217546908850608143007726873726665838224783503864394520960504946945871296699228840490806943774351763991497648758044169945089992855860281220270711577523287787161493131608516306812746356542690812734450055808293175656307824306699279424423360608170068419808805563462085614893412885545419401178412029393890389490070309935935407741536083612155198145258216955582013462526598997553449860471657693954006439862361010808340788568095411613651682506205153528910300617952109425483566405323743258742356697902664786501652726457986929485251796366542603826158288291720214201364148151467840257100125265209525036796837841634472383128729793067035449835515429482856887673337267328001963379116093844336686731040810570949100016411459728586979117974925594807280082667070638418281807926052785290648894333255086154451743776928377051847946487714138015529634355718294447025697743714320950084271604740659589503173607217291970787763768312640597777935792519132977431627295784866162789988849695389571454371877140920901823775676879926791835022801007783868578206617513539761814284074901902682138636614606253613998671837295254185401936168147639652789740590165460066086958120928121211725950374941306631804680250979612398500936484693061482546248310474453315162046321189199693360632650699047078086920574917265174387094445856787847405755899320272694560406003418548861132289707776114695708171656568938014284800575544936250607791756952271073419371071616169497828192176877347632687368164861020290519327807964840122630043592040042854733875838136926732018194598881404859256423105314787620215530213861531759779107520725541447145966980674546980792422900451651391713389533241388938877804010790204660156946996654078790726830854251499672284021591622676216908470750369270562077620460300542305621089038689906995139901267748910576644274329101870794395854117475812207937006860493270725535653944314904391050111952398698700029613423629547617506341118211591945944755585646762031561559131515904143836178036721161886112844805278135197769698512815432846222770275303295803594955662157936708146262423626950051725292406048198435543192977721024406265833558281963622471772632710648253594614589565741013161922816675823563631743540536021771279198140920596072290850071933373796410991606376073118393841722597546714620607103599328514190305778714685039850613196070704069359164536746897179761319104992229753776530269337047726562813808697505188475853851257799930083888440681043385542801848706124695992658404794734187735914016894580876150512091042725628761495233553112897577703465148991267063587235683178382955969698416415263926207355175117504776782795275812429714392936506973791037718326288722220902391567467121174945820731246952618095703682406759197682443077576072968994312385210628576173725440304400267101910269592252427615315707107423836165271913878355987466960674925971333825775777956576586002424417753264211973005010963053790050218661605394199939611719450410818625917199716276137954662711177249604660285732887210107523907056856507932073328178303854990256988604924981969226692472740525394456788841514369611764585665950657310928820111654406447532101187706297083694750737282501689891289572469121121102490607768990784079944986238367887865386614446796961970954659567271914111991402892986183311732480557441526913771640563110853631761135941759369541526230097159613687062271098731452811970532107227053692078936708655979042858388188999919841964594625549996945904551700697847782377836742504452084080624711817911022652474908480300491077795620492311287262046847015322666560490920442749445621068631503405946938232888554134402359186367396775557201606838646469434570477116042905822768060635814011146928219050066436428027324393778047984236354587029695785193576598116498251405597473077934524208752251127077427049806286522474174519108976535747980076893293149423498662635616527266504132915214141683428215625769975934064495680001682191272599639365832209137395921938268010565073897381680578102822813107753755899409877587662098852533761143852184642021282811216834631819524910205367457533912903356914411272111171481916776903401811219337825962841161979902779550277475833283218017986454522925815338709576128624191172753008662671797354071749546392785528053520572974053003662122012607874879440797529812552746270472101602684346226824375876217594913125437741091604475323263196054029294973437238717434316540082523873526030575746395248527946771793836307334413103378427312890869121796656478716410451358938510447843761631211577206212457204919224213430888151797324347253461909130598032777376147569515597841935705232321355012973228704540945885892584520624377656755946660174772179311673449171780939453326389917219034435581650864132071106275860816889276108819706612849174957638444254714590914145680862253620460856596706204487579736874479156487906527220747373618699369787607817504981695937138889551811034093276868947871083359476838534857966665802343132142388396478691521714472025955451182948679530124025378139345302804590953110376579109382308543210615146160025036555479269379379120940359374016567408452178382823204594816858406756623909477283394013381249706683409923591973026193584049041065261986440582521848456444969684140447902577575556639910098879394326683892061036713901716943517432579057572550970608251232096403460092328768105240779984679034718389823047423278630048380188753490924541347339531928120798304789133275365231658700882372583410174007897753859937515592659316289793754217797946098581555800133244533946389905927350604113664177093995602651520056386310250830449082566464037660108073868962542904383934093476446114335991742614705971126735485745149129769776662955198533497165206999378248014363554200358415556563522157226831946406680137656119384501360524399393778243611066690580184963390677734111759331344277383454729479822419864657744721040520668745543753636823338017021897573838434555565713144283052956883691139352311113486402004121802037817348271594260117063118580402981532474464618916282799800699703362339113715877170107343534793028187692715749761425906432117599680421015933864292794368534410694125357955573199296659140968857373365844053054397843074662658097333213128382150375796158130412876914437267169491308140458467660455038271305558286861002891310357035304631563950083888201621692033357803110161261568169927066534397843640099427983253266411522943436238664472413931744398549003803114101887135415740711195902924159835052016267832134484914562214778874743303854350226140330473335657462845527887832365077130586556762019072864059695087551468938151941977214002063871235492383107671822180742706407669601704962819176163370762388284826415479152761165729847788216705384868349781313774574100710479341081574493608476933905524262822886896210093253603177274027280778286759426114180802483432352180021313839611323665021310730919441358224280082470235898807215129511567445415694871023076279766823982362208679517518211092292109497419602500514422389593015843183749795977832750541331292595267155924577944870409985624468540761987997465990598369371286788220159112697365105427690466151446421895977174967133506622410776500354241201089008836073371606921457996570555457439329924351907085350448913671285433060070629147755349710273915207170781662388675010412716921782733700554448767954256977843206777502900596472179042146795364760125101636391169353025957934727767696795747138205021221208268422296463296981019992555705471117547309271800822390962502864954059673087314649603975336556007794472310805334330559531275840552152286622651858285441609351847332025928416049759126590938016498876721502742319147876841107006043307810584546545164997425672784990772503107762662694896937169085004079032549520620875656724645733223401036659715398028600833886882098256878534087254258075833374811424479830770761218491368158526310862971782546325098779413845191778192096972608050135831032045593066970682290366212160176414136462286966616898127396421429686675411599528353197875760018911136661079473526945399912414561112667588065751398663437821043177020321681482986714505773943020333817609027915302348474249754733611318690424960950426567529335288872103281023262182294806816183810129175874427479025140136528932009024166857648128737346482991269852686103360799921278925498886926965312828269615189990031471584136373369872635136484614153646224284488690146967515563920609589988819242922572129047833844187220979904269591744041188263776212645007303381663990043847426445286046540558228728748174501441237422077089150034704529985061391687001562745480989194114160799506949955452415213520674158841783623379853253570193547347446239571544855540893103845165899797124281586401975624472125326904549919837275873889631963793366456877654891601758906901493272153329386233483361317273669277518002597337876119778643195073929240173525698852172279048716320327267677036740144976212947970763888340191462423920386790088580171964473309925648207813069455747986218606343598888375716508869951711786665408548636563891402021665878593711027405981427640294883641345044648346857201423177681022489579263019936474279888838856216951268484863200429084559780829833566712723610804876368934553968149279020760085636191149604956011569918130412571711285709568507071622180071373421828648749252178185976500289454139453533098570027218057204046897620969607020281046296538935017447698781648588751780764673948211754060574976697031865428207794711363970698949745873053433456962384950816602422375582723280013431404576300797090409309049810757321690784099539249302713986494933095497005562123962122543089269364594621883355038901495039379133247862964250827106362337222082615328397941464405263502441227365988025989164004975927606671910113841900432118865177518040453539360483300988761532206797947938427854273354185223769206152713934467146984618074382340826529200237519468937660000643622268263193470647468666741137082345664029607104731559595188889072099966650759693913859913794177432690266600288596681117081416389100396007504560412118988278644983840961486485878620231193458178252181057154706395839492699669087933239817957209973462703178424675259913011381771559902942848242316086255642102446040582657656594991282896250049669227271178755860850973991002348686837052401465119879478868411947355830865613931993948734280313253963626983831422199897332986205156210670944197089119778175410474137802255633361924467985644584630819027661964243506551911627551653704591290662605945280106876391766846593628191829446196733140848522298391929412664655852063736332199123909302012093671088023851691433330318371268006315841887702781033724208857273788505004992853676562607942911611883419251291120425302675282755680011486669149793678959145170474336788593618091440765200828940662820426754652585471707439627153990793334230732153272877837246567312922551915806241078242708949021791661109764474248638206790238119816713138316975364193472995179197205498784347896210493979084445555820487688339974767693053524711409548894223427647722251221874104746401382416214469977522845143991564308530850921332141063527845304422096267231243080899770054317266185326729573563973358726648489981356228066061768493127587536424337354669967388487202766294577479019897051189018698223188613564730358335134877520212643461368185334436832725372340041807935736684147687495819178549155836533273782441283415325104666631291104298020176634151844011848279463453622298383233919013163783570497210609276755457914916948851088581973841631209115177614407101263221759941230073205267381206047834225193463362676955441441485017794397576956126836270434676894566710403889546714199466505676245078385429875855042104483701695141441739804534404078741746946506219216412189411293356658412195332254731963509933185484585931231178504893443560484165162675886311403959158460067643793994846982960188730630824243938999831458224850789484673956024562994476790730174462107022056855443393241872977792128122163994664156589992623797700173792309045706174351489776035552743995412441747979553901633990596976215156415080375020693394362161975327703523591394927669766238747933636086994213010901929259804382300486086534572611847062975423350197051774458926241928128344080540578703298800340270649352032762226493242645165173034989388932811432121195694708807017116761058515221974295027522319117759894473759969855766541966938215489462002958680779129860626185123602177691215769572585426443991402924594174305382076090269876556449548830221246314266468067082290716099504055723653935402565134927205604032736507296525061533425851741570990842162134361518835801132923738030844784808640890111314848850111699539539612489882888272242595445733891323096999895125577188324463211309202860299529844884832556186510447882276664597356528951456179579660623208812701506712337891798498501209587453916228656392666188798208268531825750378191894038262010667703295287377653590668939306076908420383692791698347398685820801181327744980471189158796490052255765616949825181364252290219391236756245219533556976947955188942140863505860781447204136347995710578545406367088408427762129313300635486970824517339700339643704793964333971787040132509093347427814861191659229716214119028941211632630639011702454849654886984392288455476303312217877855079895180771703050927733334745773743932349907104229234167452849389131605298460809300764636023241775407632846515070255977807597092962032498511780560019600607984985165549988154019850168484930516442778871200307152740247346887971208952298207880775375067268885186774377875428208048807992245286862179845654378510136952851269362429328714572309622612208123983745539354486528321337191662390412138165253583480775777602062479318328996224672042528386833122731974837704280518822343470033029401766351478725789897158813089917564452629425325118457525406909577784969780397936224714753672237834076130328523038237588198364836812537720000479025964126212543902224642838812936371814909663263123181064861013571188280658383823063433829324799122146583825590290409499003140312961557508750352953566658481926080386689542332599347267293619008084420715778999549779350167644482052057821344133489960120626859042374101266878547222805271872934411671337719656551188972448874699201591224879838638416164943196616309099002211385470497920585242194050742702755551939710570205573452108910447167847814483236527701944835246235871720441526330943255321262337428241010640424564251823804291021764668932982954645700627214647247265381591626503087726656267874484762380435560973765872796650143903158263706689538622018590175481920859233512168465709815349034044088885168127100582214909160420890844903947284729165525391054003306632106533339943257076555697569659218887682724739330194112712328564916371655572918742460936884256295496631765393215829446041208873125905182540353949555726306979910991945617939570600685712010590154183269505437054399648047027463719109168929248678048413907599976310149511126437319585317931603094628386079365995448130140732961167620105147078067234800477370887322391744868163236529788771304132594508250315962497547445862818098061687709344641325275077036120855941329192350808410538264909201613894356718476951941602126443054146755401786521286497960119557830179567284555737641719063537311094242664107927250524289876467023583217573867826963707931706680834334275181017905009590115913204922886720250710107864129345040557275325625631893848824992653464314674209301132894266003913041352482932620244199392061347610380631038804110482284572945666555151354200185700418665650214955577785617144002508626903500898319951882472655120756469359183994577811207253036098427422068448751533373448883363002012072776795523467068731886651514529161814513651438741836902218213707988604842296614702805830245445930397591349893872646415556810915852302100789875345155726730129771972895551511827820461048842217450344630323147369285419275926020896536989808599871498462987719407197508234466594966116335069631605626068087973186192783593021850033108709702235847065966981025969521144764288115984910835957201556294014793502042613481789712157251166761301346131761937814055744596705869892969014612052901621473281061627436850213257872000827011992457072526332767552996683562163504778885944049536268851751274649311739402472469667918098259992272734823134404406254660890100048029745919070393005601354819526175237303321079469510968966000173907592451840795736268740779908407010936537698628661700689444141817671762487773072522739621221720304934520807883659292406054823133730364224119648714250701178341242178902958681408673955175252274979662700396485817171894598219884336799603901500297453724892755615565502384364672904118360477777377291581190062309267521817946288964094624332059632869213692504638998156848394798550870971454193129987431292966732719397658424035805659985916248245707327118834241285624948602238151582207224406663961588330064585783974878952163444005060468110387373368577210249450065165842528491559593663018433281405832460319281066680632456216635953678092122123489412434758228987428760691208130693596445692076054463717919183907647250213197955801046732618999296405547251570360927653440431909652459621524976597402676193327895897421146782112433793100224861162196230077985774711656930466219574734202442205865368292051761948608553949960882843672670755772881824618603204606931903903096695437114541117986913450307576121093123061700660931486511008301538390991292544977787884198966792922447213510238950255629953460251928487416980256896497099911576373054712433591856706335868642814820034296844037606914875688494395915471088801919531336637003063943906673875833371747886332755676956518535319872826577902599737857901088308876932854017911531781115638472542785156192260386642446740433994830587237748280052712404907199449877435941511620951423180059204206154279888239243826185636187125856830290538439165441606064159731171521875586222653720853392759716761676494589514081503822708325244606818675216414761189875941094771685097732921976112941734330555127882784154275582094654451198786621878144508071750118921251790326356978344351725116249163248151242529445362983547735717592002146850363802035035671313140357953808888509435088167868881719035930378066915650028563474366536909105059785878828526780760320693561998647081453038434008240820685825545728287621946494093579453024975057486010755733402900369465791692187432133739507843979845081475108164643632587447388966498452561252020630804872608232710321947940455795202377628289025223803660167062512717898703810622002426774866339534727268338740514071732071646565411317221342011773071842192438098649100332585139490481388912427193202052000144538373553418761565743931676976729574889675766437206783934428789625041232502005121850038325069395295968214020648699825312270262028626417616482603409066899284436894807999648173166123781752944694039710918090806121774248412308299972582882770173417120462874191391799970573015040368770801912780196788898820629191480191489841904191822441810103892947032767847455863730242504737234411679475058098313429687877920527531433404925220024299361331661133657556489914926637453278604505647737349968134470346707676792760712455230145886382848238472008181458883405362536144490232951276090134332217713360528875846437168583611761078034068745753347421564835382364857275482589548985108668223907796705736733181275572838245287028168619972045430785715158182685593622339112713567769144608488774896074896964646247432540521305999965274447651992716012222641683646084427368412594375081534324294555463483254109778719565174573698833470196482647094878873747624119921840258087797535030518297354498431978466871670001392558805103410575907260639833352892788397306490333547850782395422463428876004860865753852832913089484397550734948787131385131860243314488930809159317864034726339337516509147317370527725556588291136784015425359153517771780405721723309957640691108107130598856763606462206152689750890991716203446758536185740753017799632140526964485954194900437408295550358356762478926159208029426586913882519887930831501824285152558888297839857838165364959828045435925089384856563278988043767487963259779732368832883499909273138536263939143744820785780027864456119711355438068778541928294915377692509427196257966699062831648328887701055775888890523540353741952416951290934537816164933336048482040816823876749579129241346722005760022003115966470910425770227600137317105936334948779711644613111272255395699475908957899334972146851068928309655521045107623448586992165391796759713835500489580402211307333700884954341638515422569678457561177734186821926141511065395844046256816159361248510124879798160887482059577874392515822893788877300901818504132675255796239034136106900003559442586327700514284520991602245118740050164175340826512891552675789068028183894553015977125405325342503384878000751725573346290286820238616139639283387018596715300329426829307313582129811179111344326019592071156824923585554152146484973337472978880083442302801809227052613801918422535190044304792129245107750932785199559339977492455142302991117965134456108194135859291460134317543109574939469736994603113793652884726752928466744846255668583787376639380215466598165082407104514982301754185227197979749909696615776589615118038819088116367852239439501030105530550100234717167550192887139310744565515793507141256778263202619706211800824289788175245530140520414313910260428102343065942321258078171913095007737784693975362306590174669233996981841504287166085254885610248444081964531066557330574761226727480757584798720206636313340259942571909665406937230679025054525451177458763188606854172176314289354541093958607634389068006127618772975750090981834196042937521359267052630362075451819557900719295114403602991583765124297904051271678212370418834652990432971942177105612515333938380718135906501026840413257375391300008288092316162273612657938135747591600767317370766952045520060781285744815028131975620953876069795147095502798744350483745455953056788909061827433579838249229300722727882207812664361200742530439408576081716796503316536975721180250087015374623801711753019640496724183332147152475426824170307863642089136920039972498742374124493922720638435153324037464269308720362582481026222054664840779507909520244650460945155015939994371018645217322875737517126442321063363139142728848024717210109517763921355250258371776511074050858496760885683605764548428690369548320786516031548097992483751819964870099681093244454362216653543972916639059503334808473580705426317208356798536216466650518822053025873491795980631507237080841726341903571356938309449810763820031506766340749834537927942624644092695985997227324782388577748361284014634006951626391531815788013036205507945185600033300159195154697148436957831904632191771817565099863655082587848814734884231653659008897364236914745587714988951874218427652158915281580561597558194592308421906415344945246700905449924183658059474387663778153959128901664374348119365042933283898625576851320519947804374623794661279552546201008093095464670323952428283357892305093480987722434538859644509780891932870504988675033124850041511463174875452109024460709111901602872666077197663146483836015671243627666826240067686093132724347401427577677210190842504098663516488728419494179394964842742647918552684874114125400337577622257760503462337863977030932923841900960858535341183498562373443816482361685864824972623029279679515117957707215796684775426980913923508407239236987269233237441170512515011341660607819385639787067875512655544679369120372741543932705077126936042597663508440146725393727522387211566844054604883642049459215141763322031898144974965808169279473967937224792682209532908767980127350893420719036029697087300541545749536152861989485452856102923100849728088029673965629680532634890387220294993343117245591159017192088212077903694349454061075426832618231760778405748075201545102773857071406434637311590255866913998588879036007278934070325266269287282302108014467608104559573111757522864269752239973087384150481541503958194963998471646231009880769546367409525053096140153344272096729591805378438582867433500446897748023610840009685637316333594957628668263594993793242584407153547219249764106313986995127759445576509170842767411911693975619750137839421655315450239511129572657342224309451348139685233036776634987844898878835950966222887565130528562537526085358077206356532227284300248318532779065897662095219939809195543438019592456590977364521029321930040830531732810308179883861065960205921339588446188298279827097323768887766913627864776642476833804010915758886979039055338138241037085625116310442541211238119662754919461330364068573506670099348479289143428785603937043256612946949307796915482109010111635333536795709744978938562601620097057509142097696751619658298736744114788917582605271089247837756007178077513011979973936153206419922104737707870819801648962919284195151748969396811662140039884569002004211180118380390636152197745377837689353511582042510524090239994349844513277868446386222243805280910733065653492255540158295272504094820347125005213295430583902389911672978932074161890696486588593054105238966990428750846509363699470806761582334748339938483170293957389346645642237163423939827502075573875477583641179920442319562267013582950911300199822732426159274226745113319734659324484480482457720763731306676414554560693611883853949704492805269547497237553432689662963988337913266970318921863584972311423785068597600723352760459157733671587913151408612675060679880058408793110657727788375982221232273042983734215191507244307524093185584223365138038767133766981777889769737332943007436253269501814523482135343070486611257830246910864938139728493572223368504877923969617622701969346898526140311734115653143874149710148152406522448074365075343262752548464830288027545129566228486641314055057837745586890676268664951245679184504825464013565569671451768685343650053968148402682745198808495053567501296030779324672068796515573896092632115260970420628308710434864857823596205691058077394613833715283313446385226671851764789584228060081820439093768369980639026109208958826254325475518485012025835842822587244649948387874986645380533101204612538306327668950230458297019075744542792334400208224981580572158601278714035551905905267400544888942788632231409266697277232221630575496221791734559458970441431184947187995062201048006771448608390496468373741230090749841396300686961756981866733318482744251393413641147544344837301924748704270537884168389010211660803079896060835216839962863655573536852639710753354716838070312446944825766274437110029941297925792762796570746140568881305141470134512926078786416709436769055218791949210518763778545822347496041282275135940808397137729704377812629795135298886519306839824283276379747015146437395470891306405165991215766665279501284145853033110884831813647810996668364710991025404067109374498827981269146079443760752280869106796179052910395247380110130167558091873004488044206697543961229528754138494587407805209581394904317881437123855786613809094285603049686712208826322507895260356316203447838268032059591197130614051797796236003677349656577161972275859236659574602199386050955927224705824489323250002902345365884114128745145067835463789316987897859557923538133457038416266649122732183734282465199923785819871959901541845906370746798598150072483977098192601329428830813167826902469814586420681794136095699404295591548375256500020735134073181916397617480892513555530351082764228069161781114545656115868453426446284836132411051497027027919337414436392248907361971473917921150421001832627283032802794878919826220632901827660685373408180694520214158726022531508154048224414642528895958319129285004342178914260622950962458791996339031291922089141894929149779771175201827966036094693390830225026622225234637151440836834830593113686977268121163160663478723104252194555964546038428319967685484419789296346027722037447702311491234504737225695415098571277744095214267827649049996017542753383569612840441160665191287216249364175244087400138148485132724822038336036048177566091630887005040658641294542749732960796246570366325554998366185934237512978764558557298041705963866950660142947788770361717837387049429417903421073246558979452030941418111638508326466563449090883275620899406148224809346687689264278730541913910009199277734088059444646311719686707027233345643596762770030337887954740886790515615886738884967611337910958976602917842562483352408416563492995649865229805495481454197543430262853301308847720861910355422620743333520794196806121835246013441173503882634272433545772738051964077171843407840226776497742492644118951566737565795491894963158303700700226260982734958072003928875360938639043926174096306786109012898259818392995309721241313085266535119419676357488645370330023615463427395341457248930791676629270758105938393333113648501265435751684024598523581094842815810641149054740606585306605831604041274303423795527885279037681958494360253806805014073590164472087861612020706028184012661452981671750432010152278643112070847824037072525075659207711417275711348166076232150836338826288512878116765570990817093480290246460412004618868514165852954128882355151843985691837970954080313111810187122057472904377275890293318920413593866206228496674314175616585240676965637432858077721187721160445666068767907994766416761585984266657546663626737879180860662434514709106873337785668717827570687038142530515248422615607960694872924404008679568022103843548936986322911964155974062990834810340765454933599472266887094349634349975063497056452135294930022103478550821972443060784631514699342462014577291979647567201024725344567134201846550334757277919805720198513888886277331992288557698520880505229036849961174952219379625330511894679592132293863923531543104497350407578388976201951986315540670618003930810538440276954850270507807705734523192523658056435243097596875497218009780308489329838240161605878590109488768420446595692939087638094052713971583009626372707052622949020168004764268348591643679101066264219886435336614731433110271615812622129964349353854491057948840411715819153682711056046360444297440633895840315938705354756736340250170395501077933988294952288086078824470149435393546740322428158657328494940696646028760056496684012551575475302146544139100364551866227932670806565481216831242795195147656056940930365866097787097485001139024799873222340327700969857755498414022499204490949306018270923911243167383641101829823523741455441893510796912737377460250918635555914364149824994782321277934121499377578610984000753760154146191873647792762034851167091002725273005194579946810051950095705644997420787238033191729691422745350357503729057442744602900787926495618795586926754940237964021979141744845354118823917337214981030013071164154124565932580796177948187354007578876427769176953640717674634909002241096177002762342611121638241559495999037108820577002979272364466958082287753168590706349525064084816849331043346004786046876151528620765090182744662256982977295106809411471600113083119214853131101542230168761392603703305632826498695292228722641899341546800138477741988766259239550117529858904842034317985441445497386664039677261052509836012675157942801743766392197011576545856928031465654830793437241865496746346841991332369809595095548320460565686156000366509485908856372229113736539064697012178306867723069549343993363360236865914375602462154719452485618013396049838720323498567768458521420845921992852813861678395522806468374424591668896235766220380740943905761764646967659789249554745608454102091603154866364253962894046859057032128469186953144849870431052885795686089907582678867296540767735609634703153352737973752066897914214307533702969972082512046801191819388280649953198589608611984379385300186689687016140709110548927978329807947053426591435295320216928546783088944110295820187819995353385620070132487492561111496954943136661120493725523800593898241368436898396373808064877751635051097970976458139979041984081379204490938429425997293896324169735789733091742411541320021748210750412742342487245038145794616349336528026138849606185124792858564811413460523893902894613896700181421392005164234428546395974022829935807019476719401126084649293373741818275728574248304881639789623165679563444216499809096507245232462369226864578261980525045658904509885430251351400614793664430323405253708951251189088562125931773655246551686011929083167093183130352509700982798998682051609276242755381260889266237922744141671411659306215220269680641556145371728852456740531191863460361453260333299079564587570703299489091037019879175420168887649632616568320090284299037775299467230595064258261484066219151635329604573077108273802604219065225466858196214352013142018029734168267973534323198814155683367538516585828064020640278822004707793364452716823677852928069504119171266309833430214190676891313125319071184868082784403564527439184626819260765805317218356708102264906039187264000434837666330150560592612913516037796983841988761729482102520689127471998165827889220065736079902988247215331474383444740933143392515860820567852506912225614393666426347122337572403291784137252661310100947914521229907423809841802702534830323143490323122984395611641408894630939703767445891305534337685534995357509245666967301717764390169703257224178194717778831752676409522592372991993413105393348136738246130170940266338802277650121390091287738431717008254741986064577189189569079904827146871017809067742547167136886592524741684758217865388651562276100995264283856029545850662907460547488643997887778745821210097000136146788689993051594610230970814534007082312237358896425741347246081195315697348587977030846280585884489669211361386275715116076048066337150617889132896516378630731603690472032617515590174873640746377771551657594742003702202419305241915308312111444911191133038515057681350327353744793802083015655999841568239041962457876093685198685891656690105166791027641750664071175239350954252552789918620439313465699858078443730090948615112492900630380189088244290238966600987420128469886069423614743903979033288656203834609636033237832011866884782096806810565405566433717739275293650392342032083639995958376941307047379819705038096372839165778507602823018042736247214314799018020091654619228044793857408591426787621208876887753127726736452373605279424736225888170311489761422713211547543418416273224636207610193956343395003314200928948780076483621207271050304440180757864042459218424282579439157192102570800746527976681882196681519990767328738945007201141382078298796908606960913455344620473428630056307512845066620880057508209968371276789072210745719309948630072122956512223114622896633421331612204464792836592381704064679854891001624710724982680961134407996089802961649075105147808965604236325671850048463690045999500242874027132272824787424186898445392051955184694744728569045639880973953417527625425432085087319206058344566247417829453082674178409220723931409385834815056154244179212468889345528010449275515925704324350016588004947263642774195164939494074990967410383355887642344452264236769042918774996677187249130921084259043370247009966881580886874261360103229719273071763570999245731523964030865316897230654648675435186430429800420060647259076282228409832543835454028074523961749929348345019575674687079409206811674531426420030966781407640310490471411208173624192514172125842232856058066197197601330087798446439465592102131820041794702222624666360643130995684814361474609167844953028278358465332818377351879189146929823266316799304652902016665708802512918478782715181418031607641819110686151117406383488016158422554764617506018590850900681527526796360123482096274831176178170906917785905059220146976187246137273300160886809166902915954073350095370677354063171546019365923763963551076112368514263597714831016013731671317041479223154639464993621075557795365259537520365251469427521012005357607142364368602280972546645971172248659330647827675528935070425982680715602809892815352559815531262585423076221542108625529292807417385957017380276262514373263487042388597778625848669358568877931373997588294029546394275565453914572886773813518423961199921609664584639151091846579351123111461177994507757752440558441768957928495265163921653547107232587835445744034379368397727348771399469760029814134107740142807930182304328579475939618780708741694417287853595983652862607550940484986977095159500530088723669881403841228367006373236886444609995046244705580484474764145591016899151465343728502008557408979921904268891267340950161137048130636918829391646571638150771267694786922021209576070582913797032727676035244163802657841512413632453696923864141343192541149783488417402528400192027792755235003878495990978385045701833709469412232980035580186519980393231722569852240385061733725577283956812800846237743387098295436072517377692541988314633431723332148700962116776371910177863228450486071642954386035656987413786276539747901478469582234772676064038269836972316687085513212237454458906461016837570677961914705476223056280548801785748384460929820576387696858921042901746793176597373193698499528127213337422954686642734385385154341442152804122219351553730794494801477117930257730944477893664689633138743565272863709823084461212370094627276926742405182534330877619623981091106319611600855937427625986621900281343224446106996932523337339644781941640543086831638020715669080450644557604658108795701154343097228118743359467255140254159785749832561691240464662569603788383833296781776799665404673219788693186594063698612757367430908006184506165686607102816126512119096430737389564711145299296079201094052605080481791724781207731191009939899411984597129618419081143792099184353225226864411858960548282743881633757717118088156251631029911029780495050479297412509623628602359265357566399182223357341426906430823912850039192456106507255780051303848472208903447705087786791673213306868377384860767939336665046441082756751296199348057894632051323880874100202858639552760492548357785609572925363696295680913175287032658188406015617360779231071849794790586245233152668942520992636926995711626348062470791119500448448720476283189128281632828625644202347248259995059656890895244457282884290273732740203728878448739763054771273748460703260475895736851903588182968719093945358678908657880900331987840771371533726974595292402460073822588826539703061665715543766989065612463333360556179195557023024156701667275189106618539202665811738172732711571065926928451797637603366298259461320372339843130941629802555380033526355389810444907890372684347812746961304808420457040587029595220248413059326206988261186103227620987066808611929206017994029676935430776996786932903131171593058496102230187546139431216654580237603157244840058909770968641319132889400449774124444072774494094618570684328817022607702949259102994396260849746885771161145851724692323792502592362910178634944347750695740825725893432258193924502605959804798336767307062334987526690632600103441743664677548265229601933117078184274824124574900821600915351225677715978178967760849868896709276181017115185395822207804324081246857916576802532126826660443089371415600268228497758007743172111749507705981355694414795234229859609149308587152643015947653137454382537112135964806213919020479919077788217004570548959234194018175863667006300843340396836900660406077619153697027795744749172019437907398301757075160660975567351960033956790452609094330243370468272212461772445162022498776300436499296979513627436648636024353528368150301785119384722862576008517363705618162695381993896000358820129814702777158211506429139268683243700308710359535357354812511613709480520340243027711274454801110763787071119666102006165026007248881169330754466361336304629264174159007205224185592335056443155803021263602360547910834277694304196823975718138331960491768214538121039678445123375545121223174574372106930420392601488604845821176484783270458607756880512091132083161556644695695586859565022768071182024792329544887207533388726084992310686989531891709000194070350754034476871265451282865641948536342592613565960729636651644899130749284925288651045216640073682705265091235027646017109407880454365915713441631789378981883532921160282806380522427812255953101048902949058452546253856838900115579993662282254483756262062502016077741292222097522365323296076382829051516218103319836593283694204666133762561691894424040517340305123479737106813335603402216439532914700307603823897365122041759120815016919794190095433331415116487230024158264972513700488260394409346322043651458262512376003368098764859899271111970419675012758911061705956279168005155531194746244108282894359051248077201248065407605206612481804798138062613620593099152338370652890528318250393094489958618238143902522480620552724512756436033984783875610473508744221614845561940458747441105443325404271139361938668630716866919338632159321465201027568830798879767365018757068908397393027638186210854767125280131464208592705456074473736723072971379558808391849141842915161687557254578477492498826902713504021007335503396709179119219816102954956723654775887268351936920585855309223712944511646046873932205738604322173305716400332575434431881973127896399062335995245303371880842207580107953119874568082942674837805044299529011142842666426418585591699061843912313482180663463386542923962127259620663413052798029440916359706246581043678841055288752026843834627538816697304335419236887404001022771783930637407777554930406976170669968536125458149252955068881311295117608439875780277024623696374782890740421087364813910439251981364212608516632754199207613109231120923708538932431491424698949399613695683742188716176916298021498621380913576621390741527938461350996600437093412277687146239536573182571692880242046493178858789473988037621655575266341524039518021940003281597819874134787635008186788011365333037873954626050096843125832892964091602749218244340777654182878298468618522033400866201761669637115018695427938789934726681035028610365375704958461928802910187996689232459710230053822590710822263986454711946322750025672118243476935158371227851874395007036888847280189266563079901515743976120457232232481184381846449746303751716076932515763894265473975240685086318310804571489682250205618419849001963502571735946623169369163392694249941178113662779094108235549670975494143674873779289880629154389967986442120042611261763160136347884337100961726252433268215874272536656103644440052336914987115051807525142650082068000837393600824046404391103548918972305680207931434196722566877891771569206424597141986588073226430949507274712072863813061044244698244745935710488885495565815813537678446000364766205332686413834607046095015742557015865649097400466497949083390842222902339765903031977006174373983303518617956237023693009112600002503539827112775841865683451218346108830956177487493488935052628117373181455668469702881062910977355223943059117216602832882981574393582164576413855827127319838169210241691762779718848956041670044193135399217988498320842545527328577815895941564234008034728948021096670855961976209041744468527834597225928786553999563187681585865453703796195487087356035443984199455327019301001891679628574558555325883572721657398686259091869164777069775185195630004372867013786239951879482460700128229603380194775229158399657760533958181682423904640934050318256302598616302700911961142166265178803365650681071584673388540058845398385963471602578003835878842642441886611958128118769934654514273758964949092339286343549099146111813741005293849725387927708713490544461218487132002264869995965059832255001821159062059488416098592486700337453687370617293378524225297240967900237155139251213447042088289520444709951814031400297428440113143263808026869976619766086412297388953856568486696807304474965389292869569742535659362975465239507340843605664202409443758674481436823138090064794788259209097862947539379570257068333143243980274078184673248887268764031858859374992630973595075637020425275423888466381962998116272870621175290611635944265364327422812845566568662322858772801540615599441133385731670211816478048615827141807250312685290722474893020783537852915212505092037057252391096090462041013400427646953655028351571957362065296966434109274908393551215527454361347231730159427014536205165808908791487261960841743482416705057749659223201046820092731000171376581067444738321983185140917065758722377365851215834268010034019635675028297749719243283789503365256578574591926199864099297700791681000582594569614411798286258448013060050282885608157763410150791854700607322159082857831766347919223259452408578827896164796372408260731624595940460490389833356889998684663468388358279383176542699220542121189547045472683215255330932156351260493717502901534760240566339369798999288163516497603751149352168612265443960359795391003447454333250544204162543726953861317547751180635424584167370514043861277273771932953150025435627108628259278879485540928505289048854323088610231701355606921959854405562577738853792039082337759505353109702306329881729946133529692004683209103410380971103024530567113251958243925672678872916593075944686062632845698520054345375448058924907533143233824296367502001283114440384237399760279367168694882616262574737878798556050494993740055362039505815958807847123874946919208358534093769735350499420455335553020837124859546191208590761678737948404640307852543639113113254728104847493859333815524111238787078455870908004398311888143495505544991343967156573388260493637553585935494306464467032307702529593423166217747519687410671006050583185415740792580603522704749752355374902501435754198401429028976271469862941209520086223082898789355972441775338056257039431309507650119285246681371008826911699092494916409272578471658851782126246537654696030719155796829651083996246827604533048693586977504444656187295703886637279201610696496237073410558231986183676190267399380961798695315630200050938709405436664097217077892664815625275556789748450720852031285420713865060596817165049104047053880147520604916163462088470146998909840219863000914394167096052903299351923149123869685203336857490494227869939103638524826192065833610281328558266174801575993257130916768697233105703366707141735127111149790407199176597763837352202957747061212976149791534382249366270525511809615955408070866755187578053279996029534848133400541963730316841480567451022762111160828461566538183986715018602014814915253530961902644209583327497535305986441557986975411997015180362032484442125926703685367597759218372052859652475350483252162299909879391815174040220114942047465247145941240944230632070874680081472907842322066002038823181825580280774243038035056101866676059771184937978516097737241038924434221288635170359791566502000035465674040944000070832634990327991784654484543213561522108087291536924708359886046797266909696714935327205948410331458684913330757063278545987127233083964988686530969758412513981973042102563121434508122669351290426853878228836043015565746799572145039949055390373271941385698396272342546413637423126184412309064466771066312506849968971221249260995294218340133938165254021619320051637110610316987233983889707382164797504526833615213623506332870586172677692430648348589050437898939935381430782174458552771916083994590481444676348666145072438448979553476168072942632939383912461665065487175792154992840146689815031172092213000663412301941953632626891757818753269193227431025464357872032714926844287016918025209919492556187935240617067120317819522575995039398038534371855297306819110351932298090265013596271767063565318031744421635795908943557416597633340199291504384404070424568727650504033932904339588981544578730248519475603199070725959896058098342621317461395641493113248099772827297779469317450831004910143423559781573792930493344586492471419563097131506466743040164298044254213767465361659722634185999405601145657650643872363745873420098181068862368376909228991575579608451788455910762134282994841731013086484289487006108938657227025640653558432241169306337841473062051651596884011365208483026068155774290989766761526908851565732399449908472762966364641601473578729248334590272778402856305017189112673984646380696560503360986631694835234413451360190488795949763654133128540061471416224240191604555489390386038576901595673699172930685963222280680718850988246613454437639044041352164328549364383346941613828683837435379255560612672955548513625504185196653866063122343920520855983625850044753570472867410230252900357648325493315103422949948003344917966693725129364784911998321742318686593927769804231524424926941496067446339698687709337641680923907872194175367477278027407219437978300064300165714450125233172554697829814860363749831606015505351622174155461641712608347859294968026140716320278607967172911483508696092887089445263176548582939821307001901087669218686786703676026002206528850566826888960177046975670174473363323829417448815391112004890764935794791905163640147603640411696537406115575730380764493097417758697617502043854386345210038068985510499892710605808561809798046828918251163402659053798656114553743833945115251624831625085417257025878467637436606568015957384253997195274524941574188688030975468191936178003017819844483804557259058018022877893786235427630144497580809943752848360538972748850249432731462025955619842443992687655196267981250609975015690040380972496356641552306798623088511858908444457323175305499133300384418004786109109013594809986694779097030045426757789764385916649132837513327407902844879408007876472130897561806516777800316871682519137404097846209385267223662275795076787603128064678399488551629130879132236286598005798802155623952410084246742319531500319270159612948287313501865294006723071045555204298191139839037135292714162792781949779577746935033295093744358275651620905133331409122465533266658110606767709540928287083077220516488437592601843705115167877827706594042549262907615576401214201581119168500252788882004680221693879336199426425284392091850910119390624083104687631810095283356508973396858832130778816117618753066386586393300523792667970125718321340564929883900509520773988017760439131050037336018798315217955884021601048939362579701180287322034598801195537700776488056781703131992415736886976671555336590694493160107860060517838743267679009297943503315922375130391624189058691393550427450294717676914509005186551651017735614137909187534796057197010562484187591843332842331558554003533242398566487094293232402982080107721579317835902773282768368112814273160204177159876050901260886026614244049277565617779751423122578004007688576583022838819817386207599740081972955352551306062172633901216337566770220624211581786783377612238615343231668507734611490400305419588420284167883451705752594965574030360366771938750514147076741170512545042133904950925447021365560938574376811748970591974307770155336496382668480666374877238575290078738776258262535188005274504171676489730297287376626468676615017835951411053990509142465132853835819627867999404212940192159214128091394495420900263696464372608635020064889038923418188880997041113509898654843450116306593494251746254802574552169968941143073447677123022317796258325488899064552390018138347727219512387549843648891356895725592376260931477268513834382033092185865785042989700893459821558579101623582311104795697443027259458853308247533728118375496481154340378054959332050234044158203702862435210703881656983401625945875931808978778803455188835398362829813885836571363294042801618735638096186737937930060338717460130356382468210368864914481016758476813453732631546920149337829656289133798870887072912733183109197453407183552356646445507321407162201439185760463003515921786432952530991968828422475058417213715884053939399423083715223335836166381332716320672175761905831852458411427548160944106202005342657864441955191535822770924112852138189254782844434208909046518343568386408642754097930509082046909114369725231047570385518939988427681510847125325872713566160732297625597776854439055191074370962872233753829506345634810505202975543719286347380834846984188030474009792704339797534517538580909099306279733600589845439202204172874085365732278320454584211898093118226846502996284515053041407485000982643181441713097468374975811768900093552717877846193022279942470854425319011483128495693973043253626754489302108214640505079866280285824898535883574699730072652113741150058458027045346114395818239702473212350644458390881257284243919835995664689256985045414021429711698765881648728979912460885373945859707338641645734392594169506457701136905578276583572614941434027474636452664399844582129064985385405870085636857442221863995365356346230960652905651835632204514366636441483339132777255438278994816573415640521968929002582537437677679280322954323540313674014639130540044249540057141255123413518732606228891379552293637565686535785089681028159121376688887772779393084152031892557462598332031566687970045278067210703687070784836140231024300901440174729646652715612165966528495991378149113675803307029737370074997786662417778777717641656183752889176832038516727411585016250449824883445165354127225638783163042617457211350889140525392963378917389263557145523513681886587216622205299980074232607619099168355222274471384542428604243020794565731048522875101814307558259414258968961595283368823491327099730841458075163081756206198211666170138963072230660119243156700943282840566194736321895830293669358397877176891166440708290371963073227323403494436769162857723467377675864598883081154533081958816580073950564454971293589215580532678103480461010569013308317046575940647668535028409915616827552132473335391570737592562414790075924850316887801535852155812322407928243493287913732445500063880752346323660680500193405177076948852756838230306940752249015296364902023619311724759602218944957014664567641395252108944337764495446660337872751368159176690338407564965073444197912228413577184519572625953705079145549198411264091561882532823633673170709571968921390131344467928742537448060455923954327639007884648658471399059273604650424038211337373707973498288251635211925403021740167690388637407618066441002132776377394662870337955999744280415679511714792911623090235783762618994815765791866609354126769656419252542041661516670150240485267528678453403748595929654716432854008232865439521414086282232648173624692325750922978099686550446474959954555745724403438261602168801382160189566486575525856936079838327789151031108643123242039852463357440768573102440671537095822843919941648824710335897380630576507812688581185137259334291009940528173702463521211986213952757387095808208163719523857676673800112868684913209062158503106707139344645382642550911890217729231877612802487290383001052100316089805543140270266493440784748467196348113743427695880456290249636525218182764942142802897249810646957544172883135668809622755885427709314172025230892865489753163363150106108701780250981780079074785422372407498348653807005296634108531219686988210520291537507902597744874604026678658800569545067054646143830495071498508494512446004954711529411294506249139614883610836962947705960023384564671811669201691577958651851455551678030977439367738428169227851249949803301023821327027435313297539734788235016311033681612334738561967835648437465208203260870681575146073382941072649983854414356343622962441267132151482217486333997487716912431473571336139916089352065484234486876791310154087125359379288381160419242171227661932989511372589645803409887230156801303782157452692933673751346425634612085332876322836274169121322484399537293216063397646722973546229928624272015806831710335207712513347348816961603355575555877418285395483916580566471092946177937864045722246238790334525558090053900494435177860068019587427101788254893708369236207048792322440557830871378822762686435476627009171608742099299678116490991236669875392778027722016418449702067391670499787040130159833072833069231816702497890888796022951860096670528555593401442194701758122618459818544805743636736987567227872598187458640505391732359570222441547469512457211843033206053456258772993875377745110509248669742955223274407794774399986109695299084939244234348984684096531457352697795588163371215811775451823016648290136893760463428627996195675564671545617714929771481889939947574136146135422830820298406741866491770108740306128957855405395048946780843118447379304258547078453873655876939921345007063889902071034131589695353955499976226693024468517350925834341979122706825401015325675595992023675592100389974336951276710713887696199712774483447911797884412876457505337170058546878192231229259314483914702184301203636196564069792847482004064916521678114538221763914330450186561869528284161714934609189710171304873544807629988919390858119371501803553543598104776907860086754802777013236546684909616553839066105833682642767200232742079609687097165271743979170314950609945710361849560475317346630423101409788944873284951715782495063468902346081711042436633322095561007198393685097914669159171738652148240399486795904922362737294129187677132203562496165044634303378991332394509731472121005800280548048750945714334508061348182733164968025833267087264555197306746328893989572659658031923521462068971340944535101867624849052967937115331002215124571723276892943512157370556088147766132597221581301464198573998407862620993517627379915649310064310246280721347032083514929960782347378120139724667345790434295238532020676979690147311402018209577961953475711232795308958919920317665910317319275166413519776995246803248710421014847518967943593653374536471923133449831514383921788373920455527705365942726700349580588264316651583806242094386408540887459132157716742185661139953690664837360217644013443749397308727850668407131737839072181512284189846508366212869690651041974277007928741999645478497123803420810593818400454877173281848309614941234176704758381999754003093194788780168474622066676616654730116325480649289945180940172557983096413467976752017841289603331233771992602769233806183839775647114071580725132038837365836377304116649538342464735027445743311890946934685944733152728450967012450773174234952813220814253497951019446193903338844769305291121996536485433167555455012932703726924369522788268537552281211578247978225841461231694855906924996648126546623664561136799983150081913177609516504833859016755891376194311999918057660909636245321173033174615298242979498266635646342087786804959881753771957928218194821889318244510145622296074016050276793339530412488607068956892922591330178203372956241238565070699061159083083711917470715038831367996215152905085654761047417587998452894429603758873394955280660873872537826098922934365299517923833607108841667564111008116963680985763926100622340013082902108617959921134703335133571255577841778538848106767381261571512459713269340631768592444151235136850781536688481519237886969169815858745197711278209512412474606409580513790500640809366840524602203051264231936177214165222041289132498287870919640299834307619034946616894919063046963682379308940341908241514726270647811652081821824933275542953145396699303397057342959560194511418804203136003276847741797681362214521258842302541416616284358639914431830631303937733980837435833818717362661855444406668966732224237841569154930178452965600991565208714778239967033412908510971036787611409346409954041289360653428601830353916906084662935745816683096313722306903773309047909757215373985502762988533492308579855857346774924680668707811344012339538374339807059930262947505410654622330307871646858351884047123650964734680929331974291950693087340203385498654926424409721938892709866163679728607666925060932908110842865553863410867172662193587619754598283257139465642007415410455880819175010514893715814276516676389315016514873342054622953436480560836644902348257872136001341928116319593694117518019518426840046426439660694626767082622172188560471148611153003330294187996888324294730932894999235931158123801362534187014405909939382373818771708904510106748926689466042601045608229799501041802075982631516803463951157840141928468452606860432529624487010537665988800065669186319567335285783121022371538442187489822481904866393180558478249458478064144015963441878776996667802718996195228334045275480146792931993011699886541210329292100722922368509891806602233947456130100511604931031206781563941042894801461177029178568774960097949722526313163529008109474498757089060001948323668910240265313463965369588975251125158515684182979743977970559749875913469457926093879243254372240917522807610246208975135055211506640212915523679276905021831257549802392597319783449325761292704077982322657092974792597211726710680977134833284023984671769882964514746289194344736030628464138769875917808027180575701078188277876976976999245394061971731434464542730103482773312648280789468055225636055292380600718477870975463381945525684311487247946917986482649200085846483923393761124074007948691894033977949779990586992208098123215227926412214707489896865854973021121545890841390772525903889539129305572189007702762778845312942478699040227206995239689839360982854825806347106082143403193214349973227148747457527574290166958168997519444742442192425573725152653853035384948205679336993070014434021790816339694310457384479699188455454867102980479940432336982985274040125044458492123127670258187535027403694275864574944747964242140041701696753463051633288818115814054032330388515172644044139160278582782910995906783848937099049778752281434682132436777165224320047249735734344132804860512751645994722579771199428371456463733088061453918776133542302953201033910605520072594119258532800109330865808222004702632949751457288301836435159259376858139912630537462304530800784179981066777455544877914902139417745248594752463342218125374710653768922328451097764192643132460104566275018639138321963837938632759481984626118370333316780076579011260885534518456080351838915605470651828121524383782395097561200628558493441913851708087727192092871703279121470331134730189094137509141000663512248194400636874179532326735394239041242749375184774892774828470366040214471640368491171889703414945770419193013570907149155737595744634789670889885341579403093731752047368748107958963662222725195342040221272190755058607021956894617084219998679362465132392205248978812390923855726627143989448504145488757333525245587644226885761719664076034542194351702064287076665760371927362905900368610896538743651773786978247440776242544858288964447994319256552814187326782192955858100402731132184435693265218940488778810507335154690316074307195899201843954401081027228392517920613971908739656190495132181691135467794774252093208969599071096872933699450720705459495283262678529747157563054578475381337452589234391926843916934141157127203617162157482238342004056024842065509984953920801507399798577169891220657840845649805344884037455552187115180897570570542244113139125752951802325815242859708294109316314397351818346404180201140325604730010308120035217065125245355728497510566585522387840745966765059892602238429926373987139718716955597284726448532887549175715050303026136483861018387662994350983457370405434674489357309653701823057339832547840561934269655931205183879825131822669492463411353916922100950651212992217462572789865543222991205093089773522322849871530677897575451691474471376074719286010505763614614290536015861623934916561660359057401022214501853988564566136146491046137629314946120706321534277812900259356339708933948068402621058037137524508872120876286940429605508533563421804672343461034420647861577382175333225479732774701000536253674777082450413184041072709474797323509562628767224480355732508155749262177303182724171751014144027049201260249782653721784234245620730401824191545844945110494533678936462898482059928123065533140897426980382517365144591249226819511288733666142624680530930450812040934771009204192432076305464365722742978147633053862300705525946095765398498419751184728325934018079830394687293463626055047825714011414280599462636611027350597125717907396244135250846003083994750860550424840334317784609151703486117178128649893863567299485442383313787537050888491153608560730746235200557123312591824520265875468947724225587302530259127854317483026389701381024680921885614375076655046664511716358819472203133705644884271102805766891634251531325456485156092104838645785505641697791273594577035338083836380675268491903787514876902016414666784976756168524587561202620726092284262688552376123341266887224941319872513340568621753788433640175027275078960785962646449745922350012750701141044050462926711751016261030953756986431793105181198385815530179558144143657060419376867732988268949426951981166439337406463461270180908513286683134010102277229806556186588500216076922308364376785217988211007068085017743669399141268543622521948585599724065968873923380717106475783283383446044528921682411939573753745326457586867294629943442717995362814030812765308875903919852535917563076988368662411178702205513304173239493720574177475772325600742937580984174151386065128624197434280189591495390278034962660797486475948592065459867106794669957133129926907087849621777731143417977918578545791641424634064373527881526912001026567114463497503893893167662465154347164409062140054605435565046132489963092374874746466383625880633009333531641298421152210765216957079025991960079581700940769589227797721694305307814718415015758158547319158288708372872678288439030149696209348975046478935692969944455021121676802672361461303751225914276964206401423812663554235965027233623086213266858661239675828737431752514558004187179700555125547810847987823740764917060032984780692050730808939178543485923075058687998778560839074551553750436968565221851186765835928706215725454587069693014069816366290047665537288835359711154442613196529391481399592480682029160889382667397048555357273445855348641416676762256289456829523174695544264552294422196725673580964659112721797750679399633743059186868973448473618068124195784997210688214232323510714876524803727657303040096201790773285022946710561695407805952009126943822988191759541534365850949351648863450958727337313367239101300789149141513521603841624859425632473687791952860907704424605225553084876232926687600523914478835303451112034894509981677985371113046842609305900257778244140528928041111179497226208486588309745887960660774889112546105788009838434975930599342384050719968887823769377994246598141616289505820938948455309016957556622189836919374760791604542012635929242279771472324149626278695746905190796015756037591557207712732751012434764793954803268348982992594726481064771407108784668500087403732358158084242422284411619347508166594049587259753786406910223489653670761687054406163313113994585238937827885211006697297705013243835045554930826448980825351400734521945728115784517742246661083350774665407884450539806921880300841165610343205052627546602819618129777241009671717388748474748633326367209150892878885711276935351645707607781843421538039902869703105932487406673292539862766399470096139209434834163103038303484423487211884509710849042803801052423634496952643621697360359496000590365921567261670633438395476451122325974292401693429180443960906649477366720185237802245125898378432358534985746585156238693240553793744797117374371322119515515393994812140117280474696232680015557638617003649055986003276280972708402459147889047587120052056716115081285536256940106062043673972614200904396384259595536099617988167687446203121178656521737973752771037399675063691257175808561279507350926464968367590099108474666633813718794899758093291857051201969347792781196827370798874056983392404591697916591257473092697080809439261385412582648277888469135573474874342891622887199162777195197399745169894829700900199431596453949923820277030412596632094392673984269149551788095933296123242599802521127612416560609645719002193830428802668052022741061146571872516201800321965127281339243219040171753560335604947343117157430628082883639315587068051264841615523818194794947913905797006272700419515500318429762677283031516072793417165131255940743366611692168188886742964405301071219664175766279092599370153121308632299211869886514250097721960607859712283762086055128358392202589768057356494324811869631911027922009713400560319462780222972904640212877322798508189868205257717293235433940507564834388949677143524031746224831605003789099652682190494994799871755361599097258683617488126929921496195726750569470755067679010886014470636509557186989820003826826085961289252311345816134188636482351914071723747738593932521207325240751824315919918039468191950731152535816956550966439025365228839073943359851873672044157499719330965640547723764055566770635730112551787827520311313675311908390613102209579432643571777847882758911325073511376973235356640682934225494133883061946313093357927304046999921923006114636258697379359916213498631672141180690909069881337089445244967597528906399149195741098267807739543643443080423521266641680287750842667678832520677290778162198686674643990984635052997246974148436475840374314299066407586937324228646928266196361942427980902053180775533190357441704112821897012779121997253462508736355286932889265943733093772784132159537753330129985867298153059312796739456652538307806643693931799275644835794875158840632330054835241248967540022746617495242106917146689428963961651667179934548306913578349375496856210709190574503922216207883436657824354217513679920543733955688252528240818657364044154020222552722285588902412204086209249536910663456367004825644675583330460469155624031198814382873491788054180002217437263253683741280549282696578524689729337934494503576792522811801705740739188599879078997278765833709702893396359424686009456823334789663900520660972090657728973689097739677075670421712234089741078292372845340861123972398499497779245171362238918567785207996140257109673027733218626726081688826576477555204749542592086438700576019699038165113416732644140078586165970615178308581256830047415383956680692740523951301514383544054727756361025891907819993030013492481259138845565579150478833040058838765416138368395957296223384990339087967835180866044481332093601238463794432830882781101723742476262788838589177026489166080333269943572763114987191397855802926051147270791638517124872706112001166684866730991574422362320022131777923231747825395507055392849388255827483786296508713205036510332831305435506622060931593379332604152070095762323930420072145401061074243940270112800928351623056029856487661477716149533167310263334613070562895874229967312949997366452483643181499565139217189148426663978337518458093841711823928977067591872580051650161572063142601595385136699517186375227600785004224178007436899981752560702778732245008493236767170842690546445667443343025716657656876205244053237624086776853191301122555581899457749250007076814052518035127704186419885655312975830673343089654060854386282269173445073550149186887464557225592903343519566014619355364463852265335528078431418411369281108763545592408310528130271825817731369597805258935531328425684498529813641267422263897475573008702131550832283832188416086794579419249366373505536848171973148410503813157744160732167244898288751905601191548794508505161157944132873464855970062502432844128158762181558041234360209209765217485671776144449538340754700176482134846208197751086646962458224937491580140769155320282216142732883048518056028437235594249029310239789640817930885970462550894770797516118599203341016866658848501736445428578017892400222087979827146006833684864951528797727697755029151193762248150305227997324003424032887330057203981869328673778958408763742956861148984679670183168005312151194872625898789894110016568537370028478809732416143001463919608668417546409002728757274675261711095895732285410454200425317337887067710280763302550636724733978597109624406248261285544361089029268060199892580755414107661191760065786613127151390955398059976502614735242112599389115421921519635579480600655234758154178190603562229629365701054876371955065048546513981891661996255805052953528859996398134524400230465317620096283180972561307523228365790434553305227940788972860789820126287068307355680539896037564930680030685962640267435608167152618825193844885595956765173390492865372088001822586085559036438542535961663054387995768995729178554479504896159937713788817933490430809400619210638271710524109783499664845347548404312080891882706480870192641861841312336063112545175028549642090380240042344120044561673497213205785222485219731543595068986146724237362958973726554569465483741745144132525361430623366918452674315939799895601275547034523123323414816115852950508897839434002179707056406276139991193645655877414710999549620825028623780596837877219215442341631163155571667540698397976848894317600587530972262408326347682052837639727926361668237577300035453996264155613415527224043937340450588090171530738592807196209787645979107554311309300412833820695835457582069508962811240301102211523952866045865587238086054692732457663857707308817033316258320734183343034333030462053284493908000183219658541103855985100817368587484348743171956417948573746695080340280197362277714833793212703287508562046555477584665810817761525515122924351267663773348071088565495805501087078540977176457746500788509581565053573253819526246954351499103441756338234868261095314249019059866105723860057882365621680253947280871374405395085946997956704387193666690617402872377462170072783940315023340644754633520268743554818826997730836470751329075887747178468949477243769968028032239710407928935796676005014066409989617668808237329316788916491328327213978138434374326413698210324729139292726621901024911430431343050621919913805571914299302128810360526889015983651772778871503944761537392295258265501734067370539995994177940580908906930870252935170186183513625245724024379341681444882562361746911747430369666363185197916424357932192643963377005335061024747537049348035232096607680550367318836596023418901359755939227121797172325546856678485973474849820143909582256666551260897385695602272570801091993205055159048844328611863035715071619608338219542108787668699793352226494349446456859744560446705578108413094411542634110734113049897704203566115744531864475512176534454345213950384748583970331020403777468354830665968516372400853263834298214316884224683803926729339861825594106282471084849073312777506940969932635965858023427730224833969796418905246799797655530323746412866354997038990730675618428873474532677380667023137251322899734175342166852830312978830089166160424002384719334744996564522035342308030853891039126108663314515422081196638495379322167858144396449178244880418219690403815051948015666985893643896998443945016456018933514157990873186765219791699503581093886759892443392863300569370669729700147047905159871474540999297391151073273029672578020173175098092666212025973971469528129987077092373965684429364848595591954290788786538402192464781236275416231393643848821635631781662804468500064006615265773689703261476101082593377823124971814053547310769804955709370627172304934044626830085026129538820913781645606805169388358900428420414955765075651072718427098668067924599645537071649336156419796543638139502886473755231793412908610814013927489056111915056658570098957301726641036542870317540869074937317150291401712021425706977691827778264034553085839165308675904024399001907356565323427107683923918584721486182470052173075288580524274314756352502957623448923620759747542335294344121704632820261113682527747091372565973721250416220989925186616373993340074250207500245404761461481511706220113861794300652384213536443431772571360928853562253494011299011863022906663128376957532557742037891437310111649840607151744285691087852918307113614530781722488740262670214282930357418189662139273920177767214173935026304036854932679039158097115214100172082109756279994308119818342877793686477435883224432421705483590781226284570094886965369545277000553321950528422442444133608499915231765611096509680587218811324898171161569855539936462212933060973326307818809731184834298882713252835994971493137508592667749423986527147530885500026001013013285143591007203001929008117731844747816595925993563746487409470642210730698162942993435234147633375990266148807737131033805110396189937546267262721983014745985939735836186440718602349505103677406959334027842812536951033756766887135956790982962664545846160419577068474350910231398268978221689405078056697547645675610876294572678430868533995686288944188600606358220996876956107409144459831287436033445876244586021307730744539563987289834482713641666662561037636564914436504726698758207565325143911445075448998649093794399821284302152422296286395205836389131153008972113199982710246074412243154632671873007926954801080144937289480494921117879735273824605854931087621206470477428098784886226817749987182057604504268592520166998089011679486138063547986752759319642589655983173676285476304802722589119858186637206767775977413685897278223244003550094544776880470706267564817579241982286486207273660715684516695856177053322074403119334007993547970550994045662637505455926765406022394864489861955808342307681650793034760615338526065032961775803992560896323250838266789599263133021518612597173333180208239805137231554884887722281918554549151653578787329273847165311596365182599200585612084592300899803983915767996239170036057268983356048635102744372149160254370423334710460720913441677603368608101783559755074593830774635693608751219470172588793599133974264449452603317678326106392838559509575301411738331226693477637830881795331413238856644402906549174642723526419153533035188837526733239444578044556798672250707296864362443788126913607710335128044031477810893060595374741194887091329847734433614382043093294608861982451769356701590057830880209120635132172761543008331079308760860069970810877164726348817331851677133758280542679036864787130845276418304315975735986549261230151437512802356064379758736084374629970410743623648120737044256890328891752002038448031481575264943175196307230319894605757051222370612753118307376876694491577599785529393675177035961874198318213006335264454329553156111314486742184911642578352609289462541370229877682776424709521964375162293667743964425559880157167948865471411421732540809477029137255287110356680546651075481877729001483716713518088669220035609791034281700659381361750600553867553640749946240215687231574520163682238782556836441889033365209802554970316176403835750990838263546565503126303253834004713042707182341461348716758451917909802002925348225325537235888564257290016566091899697158754207299713294397268562931071859692125911961566697595038735195821351161897992728105524640120167186961571346110872249304831989073805802395466067039490972372456547705722801500749238908070167066551581184459073097938215553627295060527346756367746993672352083893791984552790138933576101058936877057660916098475098994688954709670934608766880187778163991519186345667434021195757378758266702985500848422869073602028395090247958845294823606697814710319729368305970566803741987558387914337734116674552329017540108791620544521220972618941873312189736693545128304638682107965977465688597411471485082780079843037180356525269367267536092160792730382634204635338921473877186632242262035559997138602905527292088611676924930885820654063605206180240392294801848850500655294937567643296033932687307018335718850762273172503815276128747548468828084301658423472261905645269163010311867559716137706942039377283061241176421282953804399249826179483435442472470093743932792891924178635891141585638675669116870818055152214836082742791887251516277371683565447843996241268146369793717557623276595742575640385817266363347133783904364332124144843063190792061042387171016549801755248505688806341537625993386584289902895310188883277491617346709822403211489421548812728325389211543630187780353767702186699500057135891260148022432016541337340868715227410690066717889135593880636429447824047004442498755318039406235735825017677894286036483367528576592554762957692172301178461198885465541778589256466867323741911857361817694807059509335687090581475727854276335436221357676157040951228405109861230200405943468386458865800793694322921613679278853333878928513074959813764352235773373360795888137814421017070175327510719180104290140980533546403189043718402702511564599389861782760136451246038733253318887236874727297861081543442820085729361029215644204997351036596696925239971188396918137640220898866932459848121675628376331680498688199389268230752999741903090640341674990153055566463449735834999065758730528329326023676519554429429026327823048770522114533097349485468813577074839457672237602589738314053598655184571099448419926590309433274321492701712820702437018324872551202369184997226348682407976963478196645317338758662668163634990381571441049342638086734328517835476060322608118967088959457547361619432435425673039985872313416901034013982537686023446030405162255307936612601948480138591062656673406622455977571236592443397752565731057658990646803777249853955779483647891504627301424235709597652618000668313157021097508852586371254640197843351700694998341601132346782081277923418425767437064108904791860006366210299870508864991103662395885980093172376799490121187635418079041836113977472135758322343119391990330506586661381290162945608682959696732385665516191113868588042417079357674646867077775304164840166188164701230237251568567916539749364723516783854045728149753393969342044207238011538322070755284654846537169778088922775194058136080408373950690312667227717304743108359291613681999690623454601755194799227335343729559800356606290886669691817363113300083858346105304632701276048457820637684681254719333723801088351818047607928509540333892135728303985330566236382699345092522530648871652763986937105189540222506043929883537819526841822640415148356517992578744557037915849017043196666014948707914626076317332313079713547566157662266220225109566926330503201116995913783541595806447109961221301093417008493798777580938392610302859508199959188381548815156539012732219920027801057200097279555391113505824680761816388899534908090937948869712766912146874779714083030260845431016556849439277328500862197490544315670213970239372944016999735892895344995850113976610578306662819611816338019176861352480621733590209805123700211900232537758605098663155443187952259085975858406403880448511565817648075246279210454875406465279888439657733930128743390899746761488837316583942070320533031409944130150719771054101497763891396736012527794976997472875559982426606506217288599352759103624295897684907630518164561604767940208125685299144468807800620700413439925826795380633372630682628489925624698763654886124283048391445414047422803136490246421291650881931990722013648709172656355838805882753308548935613344063059423321954798713899212311607674667908872408915147311498750334459967305420720360874094265533000590106915010001364100047751237935918018258532191736791130916635040338666925216444952447895289797549232058388209243596191676221068039830724206428129335198934638885240323072417368466148160786223213881853669327813363675611310860993272309701883339648731236808459416460267071150777884852917999499225349292383387499882084966549659584682945077239071737408951048979104155455179736369758823130496692351963735598845985474197022642525436822956800408984980014110929817124424339797059729610180832088131488356031240771392436246943412270883393774981898997201791742671289457419196648239430943484360505945394376069702164160080715679083723425888040189385930596331206666581322983615025577495818205154434385802662611715417259517068889423389705710789878009190863005097810931524774251987298640214045362071390875656890843810111219270268397547802247840136146621521366554924792456045446013761897580583322079089056067704253405059288618263826655310395513790444753239205660239642793973394415713109739776051387001417259235367260108869782653663271855459934622888265254419734404800877082978921659057251132050973918491033258420122776881483906808307819916502122070491930997156852995904488470688722709539032816540198717257631466002589375664416728732973751736231819082119697620168836518818806209755551568228481173339113541555290660035383838890459066654887472600476818511060827157825592647289356296928566116839874730237428049752423259634539865920650753654926717139292413194024029405673052710955425116412789026889578089039923736952509886197090615571846197339697291550783221015305186675524821539187769463114353218625707884719289445744046868766514116772975863660880995352947779408824829371155465085099121534311801339286860810432887644030873636620186653203172552604237193105923581536378853098791000529282591681073926787179194072607714392466931231605105129832321732882678507843503670715946472670941571694852299216243412586545539631792453212561502490479904981110873562132903617338643922230758756296404638056866368108568369169192895883883543725266514780692091928103756515613773667219578987110399881455407372753680592888195367929789885645675975071403080327337225075157719347203376019640160763182509537611374557845718557204986598132473270439028066676607110203544017164575285154059428150235649989553663653706726625083060346644731432280676254082134013989341501964210798561858428111213620135095411998322846207264411662354592855409532951610751146514615837310072039197594241003709450128330142226407254935252277655022305590898928295952176129682255856892053313575434848212214825671520336072424959528806733146979546033498259152352780632755074015057759821245692534873923409536891474159342004993905297647434702140756474865683365234591978084458711178324382852026614923430611988826430422237832620848039451253973764152757203152826464733474202084041801823102628553713441693688304299463777336704046639519714910978699479648979285631447482427253412605438928055768835706211308925924603325984308852405221809602503587006070466130779604184101525620318150078950884301295795497788044647095363109751861805933304665466700180388605425470937922046122752227149838538334560537427145819317339922661661195138482131293027097348660862228676570336341636439855110496182583545493063411032756083803465337869232472754108027653349450710333477028798767216898168801202512706570606284016020198882886739247997247152197343154651562649460328074549632183187283306285596708110653630866246048012002475408102877562148859338532485996775745945430778874250526839396713159389884647787231709125495208947862921680070247731445861159482831453641356054896828433321630692159184780103114785689025956461005390336415056996667089854240174656830417620259183073807777542722321883073428894676726331921950000707907726539229148677748121973144249214745987947660021328161856364913397326855875306644549889060271439218393736876770214330687845915074360334138087820510137742573965404814956278866715099409320052506310176305961005343085660318086576539146925398446327695717481284216454595030510990093933369522022523940500789762527003015071718612593596230769657534399078205935393509057209338560219810377376966272720266594674919368595557379714779642382084603050559291134030271155218709086108384436705411948372238665257998570110727834393689039805744146255288930265412875087486267682838090491588150570787419659047493873554123326769787246045987669745401354937911532072473386762932229622874557400382942850583855224758881851827473106946799098415805068852528462028188745130148374900343132862089980660341772296186481420971760737367785010394600506566560454079875774880208566749258349048284399287775134120689656039393049112342636645862754297632694273497176359450108340124745873640691619542370267479642383332218607123121011407409660557826955492992098019921832389962624309910270098340217345738626237923254474181629751067822931492033513136400209587906153361919665407285783193667410921350240009068816954902816073327697169349714348154578458104801601011340870047377274326506324847314680229380492260898600893472977703388683307046748912309588219906213043298224988958587289549770782418796610768219869169755311107055439162058377863855035609834891831315518185735212071452225112279054571219817930276294167428997304946803604248121324972380734042388500887811387748250072846658346463832926197812830871582788297873652173959196453513237321608362084745453420015858689559096490465453334011034400640524258929208671289883154223048519187045521852757333838465568076204461955596133345220676540923719210967844251012441742905983024163216518372299365771767248521138834159825306656668304918990147205476179761875847989572886213731061042000193833245226844055070882056388059816908808058586785017999477946559426238801907858809135280086935116304363415716778228239019587389336805249610929711726545229740728492691035882706189747747759903204162769950999435783245730701983655519858529989605634864802844751302444052239594710375301603180659443522096610019175095631103713718783591915698789906332350565413304605533770388874112136983961100771640493633955062913330064374631097676996101253455015498993134317369574681975456098884248443339991020694150667846950885492488883531923313893291867219943289031674242158028911845308790769408346886430472038842193081728577010089395012193081165392753008235245780427953698435228735118393041588319622642910834008391422109934925875462132013973820931142035963973932728859797051261934660728618213829512216083752966574260206181593103193258585030808722890882524734387668723362283702250952968031975843563504068427931850305661716518926730825548913812619751817134415066959785861292799408815338328341042505499495766953459889035719255677224874135478241623509721885183202460898350111989524368478951848892939021563722812055834573477592129911833892932818228097230542276373185794109528048024735911506150934558219856015066052639297583588222405385529594689335851008131819730241564995460395959519080952632023640883216601148962452008070154870773178919015696558752997462871211938458122629629000133149158607972246068689853016677343924237282728694722807946693004750611589235554752704692961306551976743260980618599359722834919624080037861508867962862109768803756602614941614107175428733807260249549673746330544145735832898114711279006655003538339974071289037357159082960931227449165261052776829368522044452651892637992062019861335995145307795981947790091575021072624778055959509079868168762000470382856645245078386807243860101908795400525066255261487345545132161807369045110221754329218865032366396421273939520195900544171309142771962686696681818939242851370754655457380674352081927695688939120986421371165441419377031918862245287589189543535349504915696822492335255101988074235666108097083762191442140524162079208802596215110168564444987204215274570401395049857635937992162266814755500447765557730431854913729763468839893655929009443563884099286628333364183560972249248626281700520152072724114128637714282343002627909414422982720994287222422187660043054831330234719071542511157312208877276367163771063779822650945952652276581917404794571100715003916363175624491877807984081313330492508295332208276217910427977621665302146709510013745040478282198930990758948608176081461340829403783606530772427770315753008675760961022811272571447473261472993341985007929457992842521916837924937228479938664770280107358261209492367696509646749848964461696689370864661012276584925820083743860827781565138109146088489695257958509362267912260318208068924750346041231989034869896776442879017868286812617626210013166342366693926474101647105635287414364162349101587202835073314284187556136078953787017445874943832006566935265650083210568583329413562304665429475725505832881736922352835616656324908586517930272111617676081912756976617742844557031521921309373207079046292986386800838812827508223029932312251367252243241030274164725932073238658881675594161417109010911779667775255151252996117746717222336870422490951911024307438017273975746014149362665030359632660274925351515455283180338106113705841219673064924264037093264532977788669848063782805312272921361377264117924667118052053746031517716703307541895874524581619665496128441855170018183212398461978179172079615811994458271281991296165129308570791844382535364558869822148818180183815557598749323154343383920840979011079544895127299995144045113022681859457888165211667887495874716602029629387735147620884877905606830766031282485584859355228050583850458169283797128313972783034447503713420988285042430422051029127304518787286872291020798539282274234349373703063058471534078284608123544584581688963024978169483227980019426196205068499842568579599592082203033175003913357532931074754477888533189545036898357578123330835599532580877465084027381185376923191305532322897115151115869309407901082008880541712283091620630226873112295980870109403312277018294748202954501770529192861378870210678748472074176200772435175470359876682341419969494439729432060578085520365178278368257446677923884591546707134694700148234237040851170128914993422211515325778063218798463175546911919065189624768223735592106393645800843567864056537034386762714809810629050089029240497761251358349785713992802465677187981474448193005378845091975997824109515233650091266566785128229215795810224256474268725992468672719595822567436977941026866253044530498397734760996682384136199826751980547426989829815683121642135223274146707648633099633971192927268767004074625495274798001742000490372701303513860378751748874890453177053320717004290740268413495142372655825057208275536902651019409720943749292374505149848223497280194172512118019284223949057465825189224684192605075331688136073547784859003199793248281621021642156146734517710666349780482204366468510908708257051818413418431170100537264855454065267137354368568179654525607682682160500918805482903364101419126187520070348548587743924733803255929795765657793084960877287259034434414883154828773944386899976887084340783788969803570146382705234615430275142707019439607659848866255073224076933202141675227308434434230809443882775869301638463927435196055635513874463642865246751511789382482843138377964668486106128378010338412770411117949970646014846217140358513759830165705609603409345851957723290450495422665346475999454039161108440103952843148920202201141470676376039743646215026874725481460685139389287665663055074122586111804535238581871315707685309448511465248200007243124276491195666969228774171329783569472000458311553882211631754217172505902994343353365104097009051568881090325466736565893947086879750624890109802128874083113192326838978264465437451455953387053187702846398449368044566662723811100417535536160953221104727230641522163274795301181837857299382986515490825540525936383239698733486626544008949272611280129120454038374044773837103794913047653340059736642480482379571091742455178464918889087567330355653023393236335804604631823029597695456505466592842342633813721884920504651586671574366095269974155678480809047218520345877729714187383540716231647866205552910598730534124958805018384823830537990653963616601568413060907829263220858935987871835055471039453820529693366622610617390493963680730026081629202412578461571755025866826757671721868778741494022275117712489734150997657257569952498679238992652576009196210664626937844523216151196752565691333850566003905706136283603052853111256373610079731073664374812804230490858500007326136329014660880209870379814428568381559501100562972895628069366740358845408630518283702019569333692198904541021311551008548871783973063674227651685799812512100126505207384565079776546360935545821500429163635337742832605953928219311650109809245807497302480186998781010583125377823521821068035464837215888572369318094859885146642198950186036275600131945983703608499849198275901288496196304448600062284891239569979830745036552350411761958348255451112265252078344211143646237904664896502282286401867585253489376404048908393501467526112682741605553566962694287593676752242504997730309481415545522118244585059466425358153570216747415799365405375197944073968089651149516748925848562612312060247504711473275126563487767607103948470200053153447703150985495318153647148392299819239370463856986625851177385404781679996799090657726636170741517397887285681374745275234952875866670000177320970288632988510623378382133490278442296835856245553967048851969199691868037306755305439744735848165466688702026405217162443719893036221644953041366959608271099209435479648529102012227864651266217954538505963136870367118850894521567917133373523080484293471136586406462274883827931091489134047785358943101754340911036819902605039539819147175225458812976390779365992862984474904885919373053582785942781934714252938927796857127564917769052244469880218281728126630117204961528893940268045195255907810754586205171066241678979899078726489451708178683496011133539917850137563636795226907769307151930610755886574276468514266033249794235465866428219060037311372776444383572916991093133160780692197916886206132820379840829748579827856933488687758853210356376375307463613397865244714085360405116319749768247608657626180598734080315403534708134461531742829756834490454364170774401542649970614348587805062227579173646744914506712927640801583816695008728007257752343965869760840261140596023415983715465333301069609412735570470006504052993017352865786192242406472238662580482595528948043922351498009659149706583669762058094341366978559356543816633674250399983457655329851850653473660668899072577242306237600298687724795498702762961180731497878692443258035787011515588402604254877347890950737061211518592135806482149415983070145616015201680541669284934514399446993671654653941472861945770516793585664289956688951282574817701497071440682988313886311133778824025714736805918713510308859589130889049484598531974501943325855962154610358701461498451990181588021355293884538054780646031481121389191051698686983051614846212189061337888323524501085959071995244983961923200686860198436530092870940658912872397952593323559563363675482585362219808200531051449766062683145906845575774126268082610446940831879211189132784710755415068392799012396762181836697554132629622956420480385757647287143390246315697431079132251547926136983808629001376406597098702993208848388923937673071140881106246080693473610204926468164820088789119549899286062524363832478619911270398414517137677001542591692045433311655786370140365810306415311156849453669488506830828871761039348115215965486495883963184766448783725821436648948533868632478649255285504874306678063932594817518730358604323662892815300564145554818152698021274116864293461455393334799917796046975327309635376354272420013532176040060037699143451635636532903970355549372159300215673276780738489485691574224075737788967150228521380217056087414325945993715626053194705520974063116341865499902170253464659598614661058620957899949268638026129965189356919654838750261001379069058663551585396943020320717474900932833322479746237255278151482112359859218353885336225211414314348897984759202239492457038994341480941739880730943243447531751335129977059547680622448057112862570947769272223197698749098539818113186646751585438454209202319337271161764950442303659294507126536834770132068963352078026678297110808597599929839549569943479433516283710644936283436436394437393978590668067414813677774903832621563313896603274682356230033107374036418033922886802542547031047970351577448392909570402586110204376601419322212155622716449059969935557919417945627425380341447581702981613351315556543927238288257185780042986757561169581408281476485436438342439394741029475253918838307745527736364301087223108642844751027926655303120971749792394522267273206201840498342563567776230356774498417895832631760073939432811497732124421223822230350985447531637660431577692748144996663223097666649988288193713495103448466238238733940511185393156582871646947564012450500826943382786248745722262056435560240650544226297971459034620721323025412048942046165147104757447740433814944558018027096048714850314799069560366559895329569118774491176073578824510875995320354435684167982401696894576929641980905163955078344522611599125493738171259674727711860001462826039332470765339382095264704588129708823268358609627466763532354023699825775676447250964115026652893370510858523887292896880325555593501239413331466019261335190450191926752377891520712377876940621169952151910388447649493829064937216213025424532913991672556503727403206754318827446297069107711111795680168926730878524862495961953820689331271539450908696981626757394463778973142416307089164713874215087743801636244473048183349411517644550743444843261958364894849587169105080090672627876134606870329790056725766505280030616263618685979053639403411600659517325222932258888708404227320105591353058082707231795661253322243176011761383396707812784774111471208101665682921483371130704266244618747971562869209612927924556999593095077147546906895291660973323588161712778632134452380597855978972776602298311970373426155305812565678930009775785451581286517470835866615781754391465533292343336354646268824585048728416773322225418344873395284582549748286920713214356091631109834086260969164459563628713560740536146925684059703343872362251309464563382481468167893336906990258593124642645250780310106795784119508639859896218584042747189957504397289586328503226937053077511575917508812983842042606003585716018435862284669931516831899654581036088093579172054158179571397324587923290371406344261343374332027354475778333183080294029206997759662951863680380143554567380279001571182941956590475864135405801087831605165834983448829331747305790850330416013510516498104943546191327592630938180150187548328608065354556618985477295216404804954859316500649455271049851553914373469917660375575298547347184773880707327500239021806283486038357109906603368535700288516694083927281865528780958516569745433942409292351258689069284499326040752009039910028788595838619022673496563654675691348409068478843144204399468706333000900343101625827747741070360214592761123596626771561191078832850960385889893863774471254183241045163630250703374548710101652907954750303891964302078055835851219113020331508956275684816970366929351441940621922511748614946117978514338318024843452731894549016111676263653453052291924429138307806684200565732585904912472991734378930137984598963648002507116765163441669365832199120612036124194187250199421589516062136913680493018649140792974614714723218734527361811417704868893624341927722668599323930502738471052277117722927078110656656342313972436657451217388156200157308848957484838601775840328398490022248060496499876909179476784581134968032889093767749891762621581943269205493207444354152020788961664447105039673205976705007765935995278381219626999477276057854191529881013653776398362948788694637164770667812286778709158659603340061541690717756567051939434805359201599836213632400643425349247874388397463422512615103312618239007174849319798918065771367168439252256152428134497115337093489986477221570484038765243410581871493832269785520761290247439881479088910446164134620967553069494876250139304244386014717839153080197825560306437965900108672664115458181959358874478892557934342896090623815301530408622475603729826206428944206809608568375614864214993021713519461376057533184301856740284641092261429026159914580656829362916632049948463445294881542203581646578504690664416936073647021388291927128047334341114293904324128743344961545601638910964580966601646582369247440157690735468052810536004858004766199947330444884678515302950010727248345545089441161913881393861743586991912866148265585866435947920831204317949973168241233014061071657322601095818641408119983476883240060019880062643712160119200092469981860005337491276991923319004858591230031365794214625299946918397248654220082724638878982209318748303027494125079941777331526796640040526778964901541957175479623583160674753015903702669760176821167908881941812472291519578949586882139756297247674330790529608695881169236398802951103483547503434098109489011062688023604107864183404890867437668990795157809036565950338984944092130779695507287508187890170537611961418027340910888896565161784385756187735949332842364494155477653747572198167283207865388778672909804543682632871730138597976489418054917325727864278893007471979026302598750990197797394738653577151185148415165198111003678546467659468483453909154062104994663164214489425591794304382933638651585227162587585362754909528030732824510064328618941186862822314374321929570092946311991229470961061044196853957766494056365840293373392161279785278573729541630420346015481282607293481243458153351047583088633811106007937577285594452010805933735830295420561672754961591021941063929950626706287848457719739564402343302944007683450251394081855909867383764545140687252032555187963718602481888512638965057395503648166454656817008818053685980335263662659156702001829289944703625997528045141198839542832251906193373143831903005343393095791508641069842724811350257441812583898563913743747645887410931654271165722328960298257125798191671060529262695640151210383786987139191017674428521151717335750504309845393999395584219458878902512129734023472425272669339827480388133194589601183370117608530968391127720601473978739325217141207536786930080528030288622844204664777139717209146302290982993806227043399496183313998479491373761816432983616461894380962767359283910090279487798034165013350557385800253352346879867180544544629183143831045406686789364335317453125343413273554523980849850848148630401286404862535399170519266399248047560127290434635195671337590057816586823360917751799819543649646698856470976230046596701023669230108142712299808927201768479653969366056371628740127076835617458234618798085864353444136669518656165081696297223259335739869998727920620293356859639769140947756855139690606368805643397331811180624629587220816081628095707798539048740134524161514966164606480489510618437244628883048927358597805352285450992521897472332454479116445660508542003230535313860973323517794790954667541605910132008877049129206033715742978816750706721434683857750827813124398655622513119474619505836648505689041378581111650877660441086616295994472992060597036776816543860942445297562733916252408984131141766156328089383392343041738783191396937655777355773826433028464896610829963941637900811331743303335513895772721531447843122911489726725186135338703066145103294504992323673607858643925494271453019159748432859141538895324235577475076141479508154450719486817995429630227061689564109433871080141158566162467284753326337272916066877762401682386607578249070691633878410292718867998995166227737896603671993691780496896514332760511424768259524195390147381516973973718868730123180533711941666547943373169618800980521905288258980913995640467389527415328496356772867059239699897488013092257732538352196813125071110226161420659329579850298411408961483968927087078729514890076268162406338613506529135208996127129470965390636901716021946298639509240157082977618321470611825295221143844201594988218710745347311669497697168103506562064818466406691585408643826830655913016036437735501694299926174990994575337180678487305486030409616771300206317045291527315876649220998054427235552927728015265898593311455787404217861030143913221495950383221349092304642276967822803821055762884276971685598482846959865831281979320091860218452485866627590435695288127717911645714129177168852154539494676593426680697345204852582250405828729830376574645759351022165689935372326755393728998217800331101912567396759810018221312571550394880816268928758230351583066894802242698650604498033650538028607194464716298247406669638977079281828240130244371124498309890777782201158290812998759705764282728803358602300943877579528575393357905405005545378543606472448769100609647417498904981448452630639690256605592027982301398066841346077323908298275247477450513720017673771080319849708392617317691601465585779050249610713266849094555439412712974287701329095117868450194794186525703761996558906187777958566353063243137433855094794670744248753658597704451723687616878650320624926067746022030114147354904516662715404887950998265221250843745071173239202413749708428612926744309389601600072222809039703082974645724979564425943519045153108395515330172575628453452929921353931152807951379170663608742718281194102686748820501533326622117404860360651386464594629637344441237517017314911341320232266364713798220748676494405329161180158298740475748463998067163165266563048557378934296789673427973769558778101435646150974932043913479545523744458734023273638821677829768751574717951515129688942601706237981694046363637345720687985739529962634036285918613523572634442756118001571704942857852369907304936457944507337297914989186874926238363805903445207362388620092373031665230991789144949985329996991477316016953381754539542310718680503120269981326696000755008487613876503136090042128331643622568927468092007520767886944509360695424011509932007182196723366996485676716628149881330533053945482102038429753916092990536439456210081865139635637447468700131901213820240949438843525876364148940883578678324206297799329342702592875061303379479796425619679948927634576831428833142578352208424334251654182682650239756463510744033401590603066721706887517005182371196830029663128932126871322011274078162608285317707359683099815245013880743353007961877276293809068458462405722644018814169847971364435085454273043296705184662748294306308721239101973296606682404525872397243846898890671108740884611753131161037025795841133576774712858183120104221272833400377620694382021593309915325769231491393099534215315500323818570249883138975240992050036659430937599357082091723944476869358145446092406195457743345738792997500519276819094707473597832998768590216903565309306426152830219580550312296679282947341419429586152244592704069291432215708059455170576322417443399100016373516244725144739800598064847664234351208533237420049789030595630546477951484364459953553771045734872712995896515355396301629504998773498514215461256601472511439983601247741073626876754648587226161607666357220575922305128095697165154525814605886711244490133492838556555940267151963635740372849387854289558888337457172861900041426686320141903290739533085570648751716057825704911360725601212301540116560546863808852291021929028543503532232318790230069553475267752651248056668073472568584657084895649358817953128398900682361182511257793351553857058968697730384990416494138335264088583541806703829325727022403763283866193053336724505672062931469216835441945667358776573649733307479607129700737661683567533802957506703165124225574056260634718326999248215347054280164329604853380824043436581811396337735874936086384592928866960651610857257889082092442544170797390657169787099755546956514125517960655301510348207178794528357928309430869041277816143490507891605501393418491324103171607969559579533578837740891485850202638029520815636134125339401329366909466447621442953392086553682347527624036572848624356280027094952587612488005445959549382736125752776492326396504358207596266602075917334586511064316693828118122287773375671205266417555181340022446833840106715220086836862390592444282276231614863143103288813089057853690113230979286453775177219457212948447472415544774014799166296110724631689933089283383980581056271673895488869643256369785755444510177882559642260469183154567796215339098626556200733967302491322442938838309549342747617510425465022961297580895033546185436821237837634046431333575440951234024972575000164681963939930722952538893715426929026548065016724267415936178661560220839695869955815386014248633845974280599756229741531715134411752647626721132578072751433396765487373459419496832745481014597913871374912835400992112567163816204695093425624345218611165914295371994879605207928941941123513452092449671055881570126933435045021609600612559718313112321079341746038470307635010725710819534894382442410079725041366506693164886211605080998820780097687633030315366185799616213995761452694429853892259385107745851816854086648018174901507300074006381413037953035518210519970234090160407493405682986562083622605702112565441789201760444704808238693561762775835683281223261515003568797650872402657539456864370853978239383700862767106841997135170851329167749207259466842523620037333303864746484761728833243928296533480736454099082195227553129977727903372606734698783447728733317094127355825273958068842384086811300038609816415230589349531963031703502197741041989220283008421624070931337122430927680565822143165899415322203042429209053943841806759000323521044500358017941733611986875314654676673842926514286099971214393771130829685103971481635279767368000396324826642735444365063506471949483319804529560989245743561494511767100379371883592385683509189550582830710258235951611961055812193092296594779028614428746737901417832012205892318244826712833241134234097726027171034396428792487786973384677617995991124728015046571438419935085143456139856420378328621709233276860186204297126964356167604557876486740203017858542101576240937301044689886476443878134676744119873008907317029767568920005985293696224082459624466171323675132217600790674949375232283401213763038658923730257837778601344426455574707523326709274173522714022408790226995052228398551563233993343438953061702618877993401777149157185449931691328958280993033113262027982823659612987162572117830001456980804907353422571086479761759955224642844468308666541796397500543384980588773660353960437839917446133857554878045534508097840231466196281276098879978974900008230317856933130384053894206332982197435424574796769088650749940212705524624224037350413745583310497492224142238743158670680039235930496368097823002650474003365315093529738433988693336922765062118246559226353997777618779794413703559929300641448819019907788667368530291600583409017229585076173226177604105917069895769451101058281349753838664369513117525475629782406161165958840039805516376020308483809506238265885614674093853456184810841731217774353900707769819667979048997259978052968449530351303285628357091876292290310068298152035799794278134509607288376287307441454064881669603434042605175638526194086258787064549510684134792083006340612018954323754088089531879170639830232743991424862933553893736038565529030777645545890435648343462988832975628504934508325118480888481912171711590519417896181672158566563931698535724923212773749437765386179357678382199648656501701182671538317670797010974365308401432584628819920995244090188920189641396594667618334141360229137203385580568143548284882455120724848772201628730501239906350096030393783117438056885286977798175139516700857797721653519418825688623985986786395782228559341014932108343191355029732167135760280169844901284384142077178037352257949192452811941007179537285112582394669942240332938585419592734596672847302969119339046530575349258183155775815723137452766214857708397417918839396613588334902772789839479851255364576252513444085051591032625220803834432068284258831192382003345154710356961835089590771429877048798208145527919861484543086279345628061524988184065098240960251001783391326602323117031219597758214598564116265214081911102008336692718813964515258886456748965781122873511929307525957273235525647039541011815527304733703270697981635512022076695221559091660702067124539156749393722838741803909470093691871533264146777352113304857397760737068260736803668208949733407330805103809591763259805915533493951309574214050724899202101673320314895395116778161312263167561732634157653649194412606631227379368435907101413214068551533398105276789979412235280548819700290443274197203686095497305015552684984563599500213065650663887298432303035178520357824178224158107696172699264801720366626976434159807171265854488286410519356666547214639455481114866559630716898981780046835009921627965172617029143152288618406222953757451523137845639304261247583249818151735895874499976188585068382068641093863144688578028572499392059445381294275203741128942982016132442967495557283709094295398582209058760203973443714813786805492157479684420212101451894486378178747320237990415795700894538036551688126097755595554612292298544606542483734355554711450431092169792969192864449207047698041346093006813278883719334697785417964518392901940784945735869317988049392110258370465546683181673263837120086825956926263005829599237134476672890367578157533507784919344652266416052648457672249222922232752822760663397654076889046236302999694782045371083603740019830492815843557484638908026895188222608244432064129614302994407622405889187961477245879538874651289035226812194822031783746560990862004781022217868126592728903407690982273845844503755839436070589465705893605961348148053033099676630483503591287337026653130845309893150443399050419271427502546760226032712150071411534884500875306566051095400750744921420664910069565816389939643789366617000395037278341006698039475123622289172148894797512073541245189178715993629785336006570069541835693043099532966651487273395558430519402979279484945321022418315377282025633393469069201370346993452783678111525370875166261245531511112767684321788963536841986232068594627012072761839870297148525043579177816879781206820507248626939078942251959349177118135817783746935920420066905955897987758215043884588083727999040144342288279774599594018048843237541430939694872989363223883509970049786621006915589261796817504925250483921766103009484820089890460960843672269039686072982401826128538384682634943804371013374074739761406361882316145587136880580810804195231289871812010798930646572649045661886511741635529678874677593786474478676474574594588958849047996780165537782929013778244237024602477725758016961843289135469138561805823778901119639470425724967373224270532908261167169258566995398017868437546121605556983741529397810367071956682313133132624899019087758478454963443958220421245641276840490737130751774485492111189479582713239531621771345224580503253316511000306661730032302858699975911608836921570446229489145667348339624259551421926917048138019465591176030391919896531867614731124218228216993869170780594525240401571378316583428362444540462544951889233046915335129830841868900745514925960217426808627772260125291571085704057128164254393754951620509945890253015007481271974626272486774785423993504234421855391632767483138025748862069350649092339825071016218142507551329017127880346868606302263401169206193651111477390017094509132430303758243695977896742760287074156920343118919801904681410704560183393694016452417758546104576130586706586158850870495262134374533393153259056145127966851504820408006313280187067636850051680003679575278736855826956125100525032318960130123201688666153306774361922808874580194111190756400991460797779521795320064295794881997659379130122760113743416187038637839459457105045834109217593380259133790862545103112025873336233244552224918683932947933422321172396271349626063493580301460062604161133963317649582084463224591201139985734910932055080326862045191590671877671685839182214336582025256903775632874996766555321079345762269621920053901840851198299346267672968968991406100602250664359285513574419208158030303806973149354279584136347266933180475958759862132022788270972007387418360914602069256369405049877622290685292368290507563705510657868099934181430517932899786093409312478682540249085056835371920789865565931731915619632771087736672885928794490820725102011855531423368688866210168974875986066335784732083262868787173907161070546044171661820035286565470117635273752521445855197714649271279509600135883447137135230867714746132297197879151001953874894972395894201318247509832394663183198806656863411349724784051957544161850224966057590645749917858372598323877658102288642156061364917933296649146320257122194528077419638119361065137088235568416135497701740321306764767239730137522376732898242192179608779082461837916228943200216880190290123131332621578981010903638824028612660290675462944818223237801134097537115343566803937998490050479176392187510980723188399842800523052411113357726500763269883590703088248433259949013282561524466955617038531267771440109376178072945576937732620484900610106088275078462256719669501606848991948486130274388362535895282619924762723586838215597287896593357662601849854743757698145651851739811823057939956504677792039446313635148850439288313613764267765565218958712294380471887708872123139733303804311813713869969131828209754272498212890296469400728048194804945024712350902305328005599083974280587157961125103799676851906083636792851655395554254745012092393874163299242660372677637914072374054865547771110745631013537366090423246884709326296555867349733549723162254206354382844669015066342678064461028207926486922687362349206120644368700336395403495410452666874350442654995723758028965537978330104584078853243809679972814590601866085666833719541437672966073588897603229010695718972827799188081233179302980900787099288244175842962056233901372414621349167536639777789557784321110639300284962049993071451684367244577126716630478413103482122818129581241300963581743158964547050264389042200530681585123262219026952494126017385837915380506732279807632035150599636699052989409624339615440591498966836318418820735959952626673994744684521652600911990103296576778303535187588149840793637379802072934067357610865587079174756973527714488891825431202123273141325590305403615471922523719073422180983696041204391654663111219486609320747701329442643063918285000423025706234615785797228815714394525750427579885755567107907028728892957295350073061492347033791481055163771825732949429408802336637219699954191550059565773753209607199997567124919972981952912966043622125894080403566315228978723669805252934420180867478217910505158362721979229560567841058885365112541160659798858855474690539965740241780000069379870032947533339313357687153532122004202098836277556512406640286298590155608414522423125413512327759605448805563639475639597519565618067130144806934995545789630650999356380550515332561141365087034449894541931334745364920475171256802368915549379726944257847027860230738074144585457550980604015703462204738769381663178862563545317975399554296980374310005834561360823634661441149444741071586341931474028805112397918116263150332850584583214641157502287528650682647001785251695909373216637213405721821536400708317214240516957614803486591730860137243919829460449862893700623824906927681638667075037250021583151063898516555802791716498268057001649625272321385285522941888282033087907100653089235784989352722884184112192658089524614451018182854540542681585718575947872626041738324648467004179136340939941295833949579662937221210529069072504417525877842544163633685327027598130421610246476016842755025942060978753603444136948611607367696076342918059328519834989058453720738672069115702929574188619626648316433530129674129969636420315305142224867108236852612608043083495918342214193704373350328662739667410837042557102532434882864978125703388246006428635847684717409169137127028387786443042173432954119082371303359042355762365433385217900928653054992381838322160591768540664173279199247294412181699296475841417200934544663738298259691685147232291212620491958712982280762764512460435236480175292043681659451152109357047437577823804586381071490971916975002276807880693584123839394885016058323749440480038608479889054581896659717025155963604288419740974956780964604134652617934244784986867601795783693168418138107402228672887723933790510234238666321645545603873222618427884606332721343599203030487166514912313381909709211278697515549448960500734314745122877506697915101527236964637131385982634688328569364516959923392200290358463656291291569830095468624165417719441831906926658013013399880414367851279580618996073966814026057902273360288196792611623108109118526665163476179614285667901334377321235492189493257016056507742170383921177247756234603474240029137817610817145926873635601523560484298643682945547665805174166070935125684003909484571445724192578055145747925399213475766956081383036304469426107545095610400156534578202963121164100402136012168266022882050011460577509522040907220587097768375204868103520871890610106234874043558087030067794334834044048450480887756322135619244699288269297839577346972719035206921808449046965775062091856209363869243318197328643976117969705601496968411484453863916760934898107551369221161619490302507681324894886857259664485480282665915322646788290306318540827058748522685724664833371471565859409077095740728526745607649832476467664124868651827069697647531310420708773715879983425744898953508399985741477150405593488785855218117910816735058346194591532801899698181189502910122671434732187606138082567801061445803742700524592498007132853279246158882511372186878914780902153563657106279726689112251218256362629064599470929415810137807764518318988615455093644262804243653883496408182690905105376583849145472360069879933727572102570061537208201635108839836319140004083643954094400716809008747923478359312608544503266717637009295720436536552238163568878207255896036028775173053566170415493378707307815927338953400870647419017428514215066157745126547523126711680894298211660271699057168687193631492954038350508417665515223940078185392724101519356258618776168006880652738133351310769819621474561905602775317592739158037956756658230352408083985398407871432687200415089393966110200106616265684694109324130624696460965882076219100603599853382531698249280256526827508082556791698606267549675180565727533095222332812568380868093168985860752721934671741222062288128251021892333200741482226386186942551371260192043872243112083925164835502247633626944752070897425032487477048110874908237598728708812765291309262229795872375010233919637944587326091905440137032327810420853733139424329259281577675840399950929576374193892688866884068104971072709067393848039178860246982745061876208682765094611668939853481723425794284137320222353816732627879688653539810164411390326390492544493688187226452309143644045310773755721250386317470759499800356203192887695580523928221271423513963321091228927779081018421933727886141727467799451643757360948097286965581276917284097519001005251003228225235546023545326651527403084674275801631621085736194653802634788984048686876864483724828024768635346680859306760360035246283598609910740243124262852390861656400694732984684042378764829530130398761624199582533776821778724352523567201760336248580236191139928308951508413872194118493381826471305481330986961299752324773771422569463318602823059784521236734127521453559530073652514780037513858991553931006961129694490676922551026187378759780943602477623999035016024709615989094415396811055500083431871300184594580939015165492318016764794075419504602666356387920032532546148402625770571247220700778658552349527567285451270946891778316490713093474828794430014893193120544663872167385316921177439727768601747908428026906690968766207649546874676260435310744665311516195281120966169022788591609649951596247761084329574074221550359061652323509641602749163548596566946175544360768348732582794430303239118860744464690715563392468582329060552650434448252213543356991850135078500007944112787169768731604013551807673608621094833642996508928577852287832270591767127852034256318214155620093719518352693289915358714342919907489249034428916178079762041844483542369012869570063767719331559930279276418720963787989248816297287598920448613165920861590275559375246017944037112925632375738842282193933461390858412194832598648061650833758972484837227324543777581675549416602071643352362924875374481867112565004532600903903110417694697718361586676298306369416322357534365240148276820024908798133007905815498000326332945762607207850515432960076251318039424152913766991257707351601218916900396167626409362307176572902756815380609893128121437860354746013251147833616683664661281084029706245143434605662123984889797005204742062977153530100866851708327858952808224449723491119459808721740971007046658198343628576242989661052839431612483382411852422312703481779038772035390366153979112923727317150912986202293684611564992627320275973412400590589989789882568155916617020162802902065158993716946742706633706776167877298114792067479088201962144411971843035870031185070578822451114779882988135868325030084297128104721281212365909472830339880641651777095180337233782964605601140814703985544905075239388290252105882665641290811828701588293497951640062424735505553987764385641217969823113583276063504020287191945115431257978185565823702762905771172837074675452037534905204124371111495724032700208408219574654515741482872159718500034950340771450364872202377357828331806108961258570038874571769018504805129585209327000143425837623199686477915440621429121777392815624854632323679774968495983682250469726240640445386072630264307689611607442817874715577647166640689238020460732861587639848341647205997616943396565188281424326726851189585826907818881685322225952717743669707372664056842140291084667048496443519457246869337204571198315544888249266612292666619702153392693671803570121042193434754313276512740826991087031391576282498481638280577766949281978241599883799841531623157993062603078989908349733139298466912301142734218099224884226605765499737974591887848971765058644130360604071659472143602246786144889134489212492755462753025082708922031184688179673496358217450337943505544654006914196393468036405771267520401663922673826779292883932073830412740583294878153265114448109906400945442387739297853756113979539740913538015351549912646788258683741902553758025557741035139994227404463135603945636466117852893165056954605965367911466623998144442514107911714401773729412162423321629354702841799309827833006791385044561786379026771804573024945316185563454559328841641086670478789872283594439322855634023346196073820729568329109570385060565816992739154471806074389210624514566617661075200997960115704391885091138062771503567158195549660859678204472798091498883533500967748095702552835473626859842594826121839698096234783090056742372981850984535897129233384587340664529696896961289257555512743929093174826434478723722533645232006501948595730448450813671507893990981570153924358243600028260220850818290316356138935612652856750763667452884473598951237392461156135550073859272663272214073924300620339018243619462655343452298616004537427841030878110217724972860091784335704576680187005769594352724668331167800951919354472345738079736581775683885269271478070496868803880850856497985400434676862357112792547001122420864027709579814939069982566917158295081104874680672715949049665336631924567752428066154499070081035444499532412581159930129172225553371478108398936816080863450267238052886927190698966271595755743119110623297918003010163149440593674510440406645790565747575668888684542846243416058559087370524194423054536343579905959732215149068638875092374252612161914600833424139167283231505530090016922434021897708701792737832301919932733280638388283110095433525434476177898015959562468048863388634333909032917515012401202231151681135969102947477004882642254297619204936740775095215647952754207478044338064476451290744473734985980985475994090105971934903932153832858391655081744638289770804717922438580269566705520203014062811457802723172295905184256342896821099436972820845071105083037988272271364719776267085788112657611740111153135745769312803030707331997022858375272210350740555768620409624233001450881542141384832609487779350025590337834611741061666766383373759274195816130500793082717584814906237607339744018228151035651886827797722744332218609430192973389691267109633997077364936839821255573680415287722890897790049892511083197289473966696738009736862126617786630621128878895158743713252061692701083248587715081214156633202430581788472169894469933025262837309107407475107512880352631965386895597829514910863702407146996382591915008224903707569000597439684559932510718578494601652975741977892041183214588463916925800131281500140642579820869149381768341368077320478125829905149655183511154478039953613260533349908164103454825846704940604136425155159279401527045761340094397335192640594600276791862128369948161757238082511072500873607934361402743336746036299291872405722684761492053209284578974295641995876426755334016899210875926087091420204412897257113639401668894425467165133866251436616399027902195710595183533870320826055769377406021081326714065135185428380973189443308241749397451262170999725338313630035448789370158027122883837718135600062054092334028013963125889114785633085622102206976972944967412465332016971333092197951119617140214032056013749400641572567507476660692124370752603400776730825763264154764836926247708952877601277720078821934696938241293483107241502838706759049016624078802447915100288432714520728892959347216960686915642117832609109760788291685917008056384451860881060470242229671740591437118195837972242331269829700378478962950553219594107773164204153892903235628130199217574391093991363662966419129902450575358156820291498244574727666195488951488063971353400407629068822968624106003314280491730396100504986179905109591025933247207878114639202148940427998109567433135871138041956175364945614915833977160265971669204620741094009205740261555418251282231061491706797461958238834476284790930569246613032196811947524560540215890442247390065884011392142070717591895402054937114687167359031942838240626130979442639846129870633197833607012186520396931194172742087570452903488909955744064848049412559153824255567576204990535775550928223190397828335945272100260252076335494670667924363295836154460430781538191384634620902366267797993779794583096871619685564979036212258087314356932776353437173414621525806725323437948986211355233316587333744329231737242379734315271023513199473771698102555816193683779181536241243645616367999286577841427346542514234309234219195997644197086286371128091816233085207532676964722235144188909813375786099646300887898684531656216010166762110326727387261219947376613608590181686568033391777391239934217406444199781064594805427959962506949501708339179900793998473107252392963405274646419634804501850886814966474689224025212243589231915260051818174086094161941410724520197799331642102604075268045735183385637268886306407151520591387771823572431213987185932785776697059549326542350583793515402337131956234786411555290345553278358811665668681031369164023236074581214818266608588514334582946379474523718784492015345459734964920350409954917350821387520517489659681296635998370092926797358594341753548978012274839972417802786735265637941737689809956565347170653013587586349735270017651258812810963350638243290519887048316963688065217760100165985837701932532865131857845970079500763180441663295321983812027705440029948691087887524179156222710949851333254518124780905310326367724604816423041605533375721205853204894235624069248642260066139036614872223347084687729842409780616656364997772455444372939514232890321160250166969383784593592601026921874320465163411274612558641078972081481289703500238619433297690039751469754256618530478523004051714021531382238546121877917748866785985127400747722998443513789331029780180210402271221566762745411298036003333554055190782127322671283512265383872379526298504432720357157808675778312833740550725716111343363636780672239332660690688805408214079128655142604992715763533036755298714836774277260028830207391654077310371500692940953496861555445554643918820375176344459415642353906680705325024989038084399961751301015984006237690529176434750013908701319613191009672202768395628918466985783277532136961837521297642611175563810108045555711073192821416800198504149502762812149135987550054575338574522596880387411257675868428172112133820329846316691367794247496069155948844046108963010977839741030377132489218908795135301972056967694522018542712541373291137253477502682924125153080701103910479674985280428928019579198893368090895042733673237180653491814030667129146574837743081815921451876106477830325660105290635119224450206143189341267233779901747929074855134404021049658012434918880551056500863894065448249894432168746887451552847580177534082918091805249383054977761910993371099091069634228982583113451931694103956632551183438160641704278881936359539832224878520612262848399257325203187605694100812930359223903244439822744373332511488311851988655461892875346599983023739848051973854459864286397311969519872143547331344720774994264622148775160336628289557672183078248610250169084935952581337241190450348735827847008873077233827677454404659709928761871501664919278511629111229617066112717651908248596033535761210997607402466085119252609026860843442091236354895560299148585360228959407329299610850408554048057092329419072857111943575264596874068467236780137535678082308746509565739969367325310159184602297418848955845596941855275554124387519373036810928475139294665210058624905707310579197400845945697355494846682054063089889998865408500597942443269766517921761628732566416718555800821249781750343177436482360643989209717417646201829417598860443312406006956223417663971591123490722074503149005037233688870134497762620652095112249417021522724612392585721926446927903325542248321252759308919223743427824577904202701922732193954938724688314319294915806353476245947559888008282339162430910590296887829865191293399711347628606010704408329718727854375628726936150154817424230001593598119031060502797089884814699000692072448816096975734480675726278181664907440145640087611719092776176050492191812562007834921032897260957079037046482469140539308438631917373986712126388351353924908776586829742739905961476477670929545415809968631176052851097051596284331373611660315397879690813840610581225293020848147902468311897944621453521054627715921368315168332524813956887772646881652649652591688244289634000679934743264139122062209299574414440311931022297414133082624701048030743686841292109029760924388237283430070972378198629795812291115537313149169645576690358462935206444462229166743661369012622401557124897418182234353030555500384557607743290504172984454505472690731324368693852830953741806355072877933703650493056448243838126057629041041149435400372441879649375320763418130751200508129757682580178539953480133021165306912896498925233694123871761358736552746490836147303978041841620338653624697327814680818109013600395588834187716538096525631065703295467247357964086879431239903562712997346793730617315912786574688872042868438263353560095549524323962695429974801342703540483558440056566914573899718507592652568044493402711408474266212692721265731603531826652342116816395082733754209332669433709884237084674083545943559099582086145311285842584896888428066598881733858007547931896300592461757624327429050943728010844961197360931968643677995707975374249122030677749203462843541723640288114867716047154445507296729676063283587927842301402148013736254777945558030406497125090528016965943356056390908979345185287959775474103999037435998799220735419801422618609363927853156820239724502130424096628241957212567885664632346392779576724883418206058242827980599791696745517432707186566984962711521929961337423692400169848974533872561288903452721389951927217988914054093389044755955297494154318356010993527455402017137138110368780798143287558786665780494822842804886524815303961632421114121559104676651839297857062466131795351209199931913240624844827762857800114790489657308552418504320783557337510801260926968731530870654139591248194272754142937523751193854220808658188244532673211415758024942868528034291728848285744558863060693670283765136421240633673068789606315710436349137095390540312446229616600337743645536451767851850198630853109406644704911803797668206493862607407191300869990783608047301322657186843944807870244491197862939773584121063959852873572257222453628839219434504094210374432791559130980517233772465077673152053711042557684271248429742695419828548570225983220818293646577039377945167340423667971739950063733442350572652369728097056418021189807573444777549832362839331933138896303967289877686201538324477114985203683695677583356396816745048318877530525461258828266759808173541167241752107182263584995575336351515643421693626284281009346982198684053538816000479153067929227486785815617876029900891807764916567865515029830371326110739338437715282862855448956306447297107564548780834954210276515583840928974690391762812368210615278769278695109533893772396521031399356224812983352810396090680548484313092831959373752207053036187733500753380912973046438616316610762268055501286566610851559761077145840641562032415156075415376135846499117001125787104716751324910010053774726612939560409701007494997621640422177873415962458235765712154221240200474025276558835916519921871749053385695115221742587088094216262618548885286067326482878718603512304697883186957147692379087526518670754547834196926112824620787082554879958012278547114272561429927117997849397006465181076654022947750845660966885252880218943609355341243189322901501169072064587537000472579595075905501304944796301268135209953303817034535757554447167089668327104284708389032195982766126752921386607369820271100085700048567170709699059450707867563421905261189170654224032798176220975224657153676987071965299041353116753635760460908145329693101291914148802921567559803670977643507583905972673403529839704895748585360849209825772957513649464273245039293100605928785463105562548268860220931872995643530541257290025097461037090822235209744112061555431766987999726449623887088540490253812404179685878065252652037070513906030944169171348142287436256530075099841784296968272346279407680618051570766884417102878193469417205568051226487741906694949551857055232301200961979765121195925463149704125583157282576730880642781673562606900170372130639933501188806924683626526526714887567300209847715941255027880295623971312419508792670041984668484093157763662344188405310730519675801443579359507467446402501593224336652120773391514241706696459717338818979779100784224630389159802075195791666249661333000939185864602320639906830856113218116898154112762038966090986537113081808602960480879203572846415014164773899188240191108412129299915199491934067880320783958969275315716359070052404050546651886685383761016473149326998473955987565783594700907346665030730319289853413972554373339836283495404362048830802080268031801898663480982635689575090448081467765225608466540110715082435379139415851812164313437335191434998703142475049210321819481650370332307708679756306614247404692947765681663913532540244607100688707920964380621242934776989185305121182684591348582044769475640828291429954856378576039140679968785190191016619928946682497999728052811760160327831700523446051853835923929212687434591515990542953068754214589570231508283264881436700746593721962904328618352835450151076068286164444546544168548731252408506762685601676351343787523325818579011539518676316258269335206938630558960977166525202930532090635836908685665622746695151422521101769514109171263126238608479016862428358918281448493322822102532624342595925425602267697979481918702782602755225176628042338464364402132791804236200828882331204750631284486854877545911012446141705784276163182429999426986463418250507298015552620766029597297726568000311382286154599591421166851843938562591313225437446017098741265558783466164500818693583973963571153095157597348592369174035705023270615530236299903560468546626176263219440423560151621519373327814721914257974250841547714469724650949653361343518527399062147896488065161410041701589060821808762256344038406960549723290230752788880843160269534976390950178439075791764751813570717689160489385690204103313902219381664854802155151147250589978651263186357315525538301945831513470923768293619594080165440031687624751143006328910782576442886354539657520558588646729988685315656775026365076047245297398393785136982093664813863054761585672074535334071943461219751560617625527457060814925703978883711413345517673893032811650710615471886810301423154673272893684193747707019300158078446857401422377094988054647356504592392613548002989787472839620778966774496419980870675894566505585368025829047470537510770505621791955254246881164380646849227691151357495117838891229005363445200526215933020933123517992566043545742254294351381656230299192717267873843948567064302928321399744885878368336798054782235477591872441598489762286757617162123776151919531500115460149513788027660981627418819007518915017287097699816493782767261820061070269995383801324347676738598640526079955650588988577623436452026536476973873703706611665251306209289425416013158066362325934161468772886693111195435354625164036280095459549591830633020278294286831759383307511954654915904128363689449760157599763377462925825774328575122378901437012755719481662110135337002979003848535399580906236375796287695813527482537038088869190429794151109683650728406658809524420396913354542243273726865373175445590616672936941180776598314647905349249156872050687290988790652518067921694541531658332233764982127467134314655027412575781889192967716657229556992681952171384718844245969418586428368620035824511513953764676187850859634798374287315166081793620931975622189542709920014815757664499770037759569241519935682142806696882397483495347680091576997362853223541487844728026319779041430680528870966260426827724168221039274419190446850637057543766360344211671360408848674482610683078674430340895765146915384631230430862016815601041835646457319369099977393680615307868929094299752257369428884596656039783394238763724936215352034434902893791865486170751099032792840271884794744077527862622380383800067044214774810400074653399750080034551193958038054917963524776649631190252008401412306956795293705492712705718522405519710101370602575994139322176380365247721097389077924719844170759277592414434332525979396159570300571208340932319060581948152034577174591994427334675184363153760842261118942325551982608143550954879918345627103574269793764499192366073061864063563925602611045199111593146273854106858892219827829506338368384256978940818646045857265970495959308965480994955164627081375934339445886557344266921866919190276964495929123080156467655363939969006443085348647823102240376715323449306510193501180727550204626203151409357369908674993476335101507669223648083195113569282151799177490286535780228941695985774207020933712610937756292676842375349962834062579491836230901268973017449395137470903829491503319727107957406686421266065606186257213050573847120180674906982021330638095933380690800848926436807224213363784080348969948821522149362873183295427060675154324595549769975813820613713600739174319536267473068308200090996457180911414125791270390448156406851996632860056037928066462922089055829267006004208232426583327980425186423936019479138143583039779845832436850369242847740134797977157065292118165389100750874214954892005130324562165030638532586270134549672480287780899767993551182309169626314249590651437004625342261064325101755264852710387664981608190882648191545440919633835211302305566171856369040784980042900021010852532807407916909061689997545811032090086165632235017755694014008146032840336401229825424731186727999286233631402271803495275061030900029036016414243789689027521064565706487617403069405935178655516123570996929295993520735864668235659814564269456033574797721116146450080416367321259244770376814713029222723426449203473798409416804475987291534606549542417680019896734135829720904492870732456731410355131278405958252785519301969499656920997355463354366332964877142917997851234996447729505574174093017408780362261145136768680731123027134788810954912396397593666406718373185891595892011995003433843499555888244340977596113860952470338361822419310887605313700137905864736740987354274645684799978939695302083127209600405558502287281030164771368230966122355625026299652943448058830590666049203752844262010289241858836210340305361860645569532454843968983466503435967501022699628713551125635993482995311242956631062536193329696886131647765489635774241265344875465496800566691319623503346147325221313281459324580921135331636443431896971148478580356705197922330416978704189066710344550954221033484799039448521219625446606374181535158496503982179741492223773714614572480052735484622364774200375703985860338697503301544569611785208788778301143191279261662325212262673531769662859019020017496107880506755099690542458725312178795070111955406599233239023681966587326307047109067385852569237001365091227877617958802751619605665698131956846342905444299065667841414738798689526095865262916092241738901814612590868797477038667198868814589906575302569769987307697002543638438407900393849356834803593667089872231913236852428265657616418788144326151537266519250861953392033910691237701214230834404449100087186331326959935637738485796666008641360783804079727865601400643111466599492618012210991744712822286837165639640714763286055999100149837727444391323811345881221048424228153265438787760157808915282375811948220323573573865968952253475425931249558596478085070507314448712604856774638612823987277144185548142392985990720219831675591609057304207637480995784974216604237260572574271506022441497207080108602464735007491576263221625805377256176519396703472200006513006819258153675684406396977945147439813756343678208222976564854458117878037010026025343699080998763522095106598023790773263903471965901879551823949012880802477185729171954433331454614209175687733808922193586713861288170289235529202486323745484465268322570512282128085733761308316568165838410325055351731710238311332127075946369648187222137003079529982254446771073636013595183364030909128171434114637649411537090494365284897533879182783226486884552955623283947144862213656621832711730737329034746689988309400910598261289600487581209575962703164478082727492377301495764224577976972297664513535886900192229271794167295895533889084579298224097352452906757503428180842440944017506134557112130598273624788499726215531640636600063344591679531698942387987285675195083837791471013895879888756111137874340551732005203050214117359143763378224701391890533908290208203060228952752024205095102264580013243683596565599597301686593688127848560476033526047549926088372463477420730469100432045846442635200844826347712605697405145881760780721577052778320610095633461420074383693188728783340102022141982278564170145125339478445829892782891074929335066246237029811726927526820236155344688674217637715454190079437940143226783248180860113645469870056284172141391041231187066997941049815354692000178742588302196373359691239950298192972623583631562880770401532928056869789703553967389856658075075847814354009688520558744185378251164099276664682288384021924878569432443746607491379149857455050245583256699966504654896362697705027824663910886144268790561553636944969277422738782072384087206435978829195436916984826487388391564511185887860081536233453572654945789847307245626193040025081576953816808931891519439049239513939209129977120042442636214671905373459312109916278266315869647598193370491665686653973787090578139408469206455557741226175390678782602751787744650454692244818821509607916084045642278567827236089573907061987058245151261193670005412231821247903426498165793221128283355566379731188178867425633492317000301983421425440477296088654022210123656655864014772266604848621944466534265276268404514039034819422979704305938945849416548950394186706011232311090386898158782405890677109388161154390177197618950062631654894474403098196651614400999843467010519995540918644410098369582951898022626890674472776890497089035621727746687742852298907794656949080032549422020197909617661355326868849454504905372597493173137342467939049828745581382928340889656427672702226458148003989683434826973080486353523877423903451624191296772774829532241641161027744155578972798445577635589337405860481684424453088854110336510955063513483395791718302440297144521624861846530370694395594455119138082970036084975472572105423996643332347139395591316527007642104196871919437285743556192256669801253979534686455244081107587305185610262694404213062044413643658147070134431588538240372789725810836385076297256851220004450516183941240925566930886667400971892334505136644321174306639263293125914215877213380392187147065400817597756876866228665374084848251902735845710770995684108430166593534958561993671601673632625361083182238495337620248374518911826679172090410682293529064557001275193804068076281566460452779662263815674664272061798000865980890994126666419590464254693488368972884436079403334403458767348469803898443893426109833691117506380674864335626183411167155337024881521109486115599662551470936908703796862489813433773129488594135150602521319533506665121314437429682430324026527916972451601431312835268502984404064431295356549971375912337446500653449732863711595058426738221965126083463826600598711878720793820192310140023314719413950607341716205942729070378433051094109909462178090684841922682386459910355886637734447598255588335595728022738938888246632867550190643420584051881881837805216439604624846931885026359357879312700532276777957636991458787303434172561693733608989488611080887011029544467019483781743783736553759931686352633683482387413901648364981417018129462644246183403621759196219550924879991329350034871874013912432303311726306446860898664712579918346334899879148520431004531553313679148044856465524034153404531462635733639697253560455567600137607439786054589610855768973878139939903160189812483545869551234832925802254834181695743253373123014775099170817302522177907319781619494447952611401207348288779499184984180706906500601532578265391280238081386808630505944688848583420725857679332111274441189734096544029980270845488568601457461423534043076044709829138490778469182047185287136498857243011116480752383613872166271361963910792462896190518820932608901461558593568363099932540661201199508690893000536740072232284733373279513380353684004500590423687861664663037597394762490849444435734294429403166214504276486662804423653739490567095190317148252593765496623872353500407404873236464525347179296478844203357922853091858009693912011711245185069961518143191739993064050178869393456045263069705447019021694355715809956268345250205232548752264293275311782092255855892125544740866277576365677569171510102701651801495174665681176233465948918137908158941862859900519047343369986961272815672467281549129558064887478308437377142293440128091109177272411887500339977091711780281198256240346545386259760182672331669770646749059818760376312641970727396129856030597986330523238756225827693847102514176534551264107239569741180407953020162590881224964041913679581927756598446093994391458918483329575318139191706966196177936199763999321811975578909927067168421645147391238155911863231089097479701343722406404560931177799771189674767483982016645035589315494178717230358833302586621346924214524541618301100722220609338901446572001067659947213823390501314930522610728932120951691359526106775582737241044378598398553429095518615632211478931238141235816186080005287179860085735838534762323773295701382106997079292387469158750869652243995638270926995094977658098249835009613969320353938522158769809372767026941052186359604574176370061910680909459355040417442802185499284166215915127247859601054191109359455316841209139555438660511203585807658962634797120075731947910077828793775987070242400598128186791416453538231054473262497747148602764257738418890220949840262369643723118786350995149197239443074510328281525954356522772042405647299626095628663467536147883444508114710834567415937562793921326207318599450914465658555627159768458923351451685037095188359935182782103640943566071189569022622880002425680103520198323275323548121843794084118128567653281419498317112839059790675641524857932578933984026542485229781283723728651373761385668776703433417222305155504256481426424815666640536249078002824777990579400616356521100124383953248694810952119343108927808541842438060159164757500005436916611880938541135089292723117161265149099945321594511529548156768820194478901467138125627646237530000332343122077463602588116034712330730102346406190044971522292743028084336617146766678232501731876577585911178546657817659216372319983461482324612109431144712495758418337271112312035361418983542276841830202846072988301589575787223472662095520574956860541425845955891749771484952402707434042521923854827364339028139092157452730325924297158612338713351020239775192316700234120648136771025399344876447648546094382057565258973662185606090150580985579087393555556329231395295276661064901758831439703273557533856399126194790717497151808556513157172314979596370797059720203226930746243755149903557629860670479860487948704682959891974721710459554850536252982665310499427957352423612820253720697354652637048927794416781042364567012185344941374004979262185102253888389306918644836082322715790404395829385575651958991015978365471738098584964832231496111361885427261303228464884466062204420943579210405939659886125607020849562553111213746163480006243906176885637507210827817380000509270408052102497329637831621541916290783501486815540069366668784490000956918028232650666307161543462580849359609181586869246694805167662185942631261855453170693025497509600369142615646152342098205888001508717736386472202950254036289231214032218171212433038020917934203358390396588825781205983499010834084047112249800759999171292663281949509963655728094604978462586067876359797730921770011791358557270031502289568813443386347659022431465195917974974135859367385382194236381205677369737431609848539431302559703707548670709469346055970982146117801869635202456995897409449359937722361528881778585433853004851342496606499400177179695854949432258200006672116519433412835141518756784490565650216326290556862649125771656378421426218285248515195541013273397494393256714134454362505611550686125941555156987839032591019985992519918729021437413236520574862360417954949948739677484757895596135175408810995145740164207304136175373042091139771563789284840841014725422588744005829001401314692225443783922580051154919689264676092040092854103955444687575968435116087643362449293139171069432245661391426395642613060250074670207976939580342480329004745152472028191789551682644927282480175183116098211753722645415128626586523831765931939552452009181561078189538023536256923686176829308610972142459752292831804415462691901722023472305232639408396236405882632049748567345890364563793055190677734531076533522327510736909969567179709754424525348932619350718124577942009879644878028078399304621677380301979680012199240933096581999363077608122914726690555754497887713150871322254479068924388971826491660767642025762076981779135387040858939674311259324540855788982315687846228118957074295203684892226072998687560563521739849592927275570529327830092656571721586714153460443880999740019253723225822778938931532710495700107582327655172211377530998958627895409301968642648006099618641696355058779611897978021513488383424522537713870830409571470097908340129512169846947359020397736942252258431902198990874620403706969533429364564868401624709815554608007368075997280483449800283110009528900814384241456241557954452580660829503311865007737919027533868383841172583800738119015563480919910983245546110800767666783126862652654545020533598170177243451047371801640215596358144095472508091684637932968401966344248875544724143915578618693619517628083774202957619362471187677020766206068152976860190071848951416619503031703336513445106380920543905332345269464196742097070005271189036238989057840926778843191299091257149909468104741078748568800174832450922978510220033876497919074390694136466230155475221665384169394800356483435996718470529328497740103179649429761892414328136354507040715231588889631016216949657911468305492772966349354182238968646778107431910847307138563735853566497324374793947641588066171865842418602841008886132259398290229978762254823999410846903731354637963877762062781965303630463874884444942224164235862507250455720433418173471992298050772600463357884046405461127481682434939403698306246865833721071012285627368434929464020899642020792895349964341024266300986728090099498426275958368083353210370390151038642637177015990617754153292298035088084495834118866860470060476971500052534455178678626556119609712760683547225815649982464085097695971643332437958639855157556402926181983130749578601751304591022030092455152898321734489080860981600654757155901610464223757645008067529398665866556652711875834433189287669823291932897142927681383616775105043864183419529858478923723809285459453003017718967551477077437081940528351700856578210474934900215872954561843855887502729835335805859289715450465779735234149264596663207378747287507926339269573811125895312992456369601289705780100260033555075232623765638545809388669622296610548091980329174007335083860445715185663103087155026706919118662692041914437922407865447985715849337381380377158575488534180688744765296920075863543575869931118030313022433551139004639822151780728533150048616579339367831222856642186880391221152997392065970953018594031571382392682568278606197081842806296523513992517108526730844238284286909613570165840775159450710571351178475195070783290044498988434119140711009977836968581627763339658086687469386365101948023730103457565436283670704556766575668995549048119888467720110730117634498104765748421395847340159651589680113788088067794557937842567001464990535903597519798042092308732747538778955877401522143740469083736389062912015597627964160393794241235723497040545272701435177840868066407852663955868024199588969835332581576010870347833658046532487668986761508049397515215886831136519426807962813645946435894642111018535615744961904344227687449352156373735641316642146515319092565065036693243560533457535242055393760258712513092585882289942140739960747729630927556757445351438230866208050660740536729637669049528627438145639456458847670643977265360928631174128522277698615963505689356135742231714516005536753071842564200614452159278354508821947361032795667480913573095807396396990642535165423867047638277998223647493636380829428462595789267619178434177405548405550900713279527713521669721535697790223634412799592034621884932930065189026060926527193971400534474365656081963381291589050370064082367226009298104341730662771861419265942402414216631111825732396567701526161685995618955899654403308882505081821072421102295442488701799124192099155932197736681459095778552388171949438566336020844066983197720416995157290457718214622005820085756126439859878575606824272662401169227786397599214800607233672260264568085445361148697713472231740830357203652911342727201319044103520377447853337949235526657388887075297786860083233821241452365503024868990193399277706325231454771239928305201389652020740385156251230643601422705797103887076537896506950700913033889543803649978722544847832058599323735108290594014670346210609231147095789403795380404179020342533713481544349490386779286310019883630952101481798459959683970097569862545504287860438477246975716730251872697731336497750511143190326524754916636749658752647078513008751885160570521620660669230826494153388194465611349651627797198411442689792511739784677263694294949347834843012996067719392178696346932639939212134447593337261261929311550517164114621967386875669513584589169819211394899746749924283334598605741331323479657396666786289787407523758050307956967163149840118636094522812540671884210187412184731707633853769003966012916247284698532202329194391589300371859809554243484356387208809232849597786433400529604700318817089577185881896836818419482286225721327175603288317102888634846868336711279595708025939990106438300264204648398377501432114182202000070394133619042920323792576410050826582901376948361358241638252261766478056052246849607327429370484032032488563026877355238153031441614667987861542095409991922408385443032566883816908961955438170260792428861040606691198546377601012555765453388933958193295212459942741365497781085532184201972543809587791829693900681407923537990532971067940642191965464508333142486128645107634895031525517551249332328715119716461184831237291307859357311157399129880504075773730927071425454700762362371689373447281681451148949566961045092381319252201012604280939168870328277691445064291938791492293528737703977406445792524003796033192101923969923732848298144375537344538194631502046813398070681325117550608740360412117997088184629378044185911810709276736240458368380204056170943058288890070457389567202675577891754497937615079665069056282352727193803052143811222790920731863560320272227068404330628881203651229614719105106655473025955397598246264816305426515284870993363815897083584460158636921802788881153095128718063172373830998442887466358580093735782104942855491399921424002031802902100016063801813301284928598051781314494244239219282523310762093269499948662612220357973530330506160700716650348246133699823916916403190930464692911356784990878579626505042452139135289159122830907918404785855473555289049584472923856438444508714263066972525078290919251783395038873429804486857791022137287353765190741944100800878105878697825424824509143278086770107271323341747989126443020203642529101406963681290652004272823723153621984362868122174156780472282165695312078624903749019811970392421165350764712875234967936865209818917584988778527397698795019476935973981948809478781530367585613963082439804756340731995632193382655719590717292514372805684973358077430817108839071760626018946027999928504490752880583403138696057726181443931836879079436222049002824295395469953150292871423063611618908378190799537123597632795248349510758985099324595609413696342152327944081754103941778117159791991988048082978688327672498882717400813894153193173229347419487951317249039433402211959978759839279000931864715733670716206301050090011332490071984085580280405110932345460606102905201135780026790196597125933484014510657305492643701851444054082395171985700218277641806778740434221390882691084317899586046582002596124587099070521058155259290495932248695541137433546280627378886209548802465678299134357981041290039067990026076322687323565625427686035909384022998327362962799500768494841054788396356719059389400111408930209245096820847088581078064370297315360157268240112523817012142313389202487171391044658286569434008310537266963120978739486794324431597751251486888746907955925039194225403576452665885995782885715810092024770666440053877753749965730521373116797400885646095317000862250203627105746759813721467820441906461731495594913239613669000503068531615751356580142269477380843688769881470758153525494033795130286650526871096127593478817986894593336084515499041135938747035151026527017422967260005348112931054404738387133104354592086842321057124398629803161717417169863237082098360010400519600740356832611394939926325436984144161333807612956680608713929679493509418436507212883460096295680962244741354796652536503459669312808057949135663438574399710108909278320557979272976996432986726144686345610990023208710930657072411331197576206180501050574302122052902057437198240905594697044651955873174969302919002833012788030384558004009988397645610531993233312474542584716100927333930073026104413151200873490173327615362447373527926436790390661523822489563705485800471422272017118100015591196830994053347513061301758302499791752272569808796176346716560068552263440517538145379173918434169060793748612611431501040501236498103571332611670396645225191066267872476702845624409705170873885054094556391076509420257196283589493316505999849715288246850621745708372821810489692514469938140983343601730393407081239257142313226046274980875364523000852346054927411640604522096884991700363342126936296705584767839291441659267982130833620469723404957272236871421389074700396205930883084897272019986273799702128558888215547920815309207733011348713748036164184332928660926938488846064015230606329356696056619001867382864028694124935085429160648446704310850256011327722038876909397553059564595210055699815279753602498909087129180106273793228901187683103187979286432197812686665942385405014664600869709954632059917405997735171147692574559852717286204819799242392431829440027998283020911715004988376330582238258637355795696900042879678023196558359808454305229438190863442234605166554209938936380474956467340056695854172645437778190181557282951501120349206895150575407273204839458182267874226589162420316302662377668747316039252979345959719325767609083224183439289213682623205768247204161427056192616669859085584452355523170694189975242565090454637662053160526027381922753855154363734525400478496237890035741997884367925945826695206164225686798576746207875142403048727006131319035516419332998796653530316691062292386159638392743096493220121386451682786705856250166312000967105595497218938628773068293421892227032419889836725352554359869361554853847874212461463340356104746985581918575994757113908916392173489010770402050386070258765422627229840967571718141228551787119483987574044452034367202216671789765648286798776241255182528733440850712279119444703770420764683621260529060682798780242529229577223409574146758932180212713704087513018566488244535421955272966793636145068824789064127615410638884774818952508829080402045427966734550148624512461200080098103261764936206433966921034547667800586584599628264592886390057652283876108831535068399952844310114959141026469922141451928658619580497209969794840691261686487488030774035321856290817749905287499762239050126585890714709772639257468531931202438216578274449894796423865739589602499813793125076717224953563915347262165846036056384936630483989795462769612487524076035463613318567869973453944002502365688324012397936296886074628305528327773393331029646517422185630042994827931841854562937172898009912489934806834588919480756661761636965765292744196216958517940809704823587018875006098987446716470451013601071019128930690562261671389665485927976094217484782499697502297881605129430187640125714101634911090988378774299760788905104034922404631102706651061280632979481676166561362985293219979630697718352295356334466383153016987378064655161172900154651550780100055056070599081413997784607484558553671533355607591682130759811293815704311414228077016011505049182928460633418308912684531280632202546297122571195607315703051345845846955913437523805656310400572138446977810708320292203083659695196569975192448130162712526065657055558896838097333112749429121077821553039480728640707126201753540704137935266717883726655752533428151239801304028873485876445154161991252524237757996698590100470842999806575944910452255362857053957300272792450666613239760589153754123476361474175724541464916895917873037887933149150045969131195723145129968127420272083457038481004532963513227812854839370564665949971313194192711606818334989791101980923357457356180980977165598104824132891623403231672194020999505295123595744421524689914196420352729364884886985143422096250494356167921533001847587263506546079457534623877127551816220039369282657076473138744180258129586849382541695277777004849757721289140973067976886008772292682172009042961630795895439978269635488284421172441292773394873570320223406097535390379893239173881200018233516223455495556715530270303817124642477824490123765594491879389086256583775849112108969589651136977347983583902876051807939601504136227255769954171706630056243552749323591521724760003697203333379068067625096108738580040854216923688421944547676238157085550184417326792699423791419202798197869354759066461882950648658020093898846974119301266769136212036272573504311500027551094534826780257117431965596195915141467681406872279197012743308540780303007656490625071974503841267992250650835233983217147327705084550564496629913559183196163729493834437707077547813954023680192611016332272274631963766905994104388497589240473619606229447332402736756081466820269496048505360523246814255014872453728443477383121013531968285694816832877455594877801669667355925868817037240457320375875729164807440685276525511495237692081950611068303202030583627055549905556706324559484280157545439412614111504382825138466901572939097247174644506098223655881607556606685603078292587133104461737072053517017282718411222961006849534406159255358092804839624515259699602705867277102852549845985249981136316857629701076052667467405010181650451657121540761337876508654329934544588284390839556495689071983191580174081563586677032811798022847127442198773431509008246045025794632441291038423495255435802642404397589108507365454921892127404289940037485481335516617976531937590721515073692027171893279903376680569087998566698582532218965315778699991066242797687640246265160844852187827168155579488011355705925281209129808953733427967018707020054944225089668319564964976527548250495922292512729817979060452323496024948567526175338400737276093865620032914262005169122031855129332592842325123344069578398914818538051814369908676592838545268436315265748338245580897933485174059694517370757353388392984589136608259121921199752880187281517420477952397419784139836347626383101856130966818404635312661895194851736950198696769250817379863049273517509288659186176621910503432074195023846688833001455814212371470871424341221107388211814744615789852579629179227321319175493592842458772880556269093564989644190851695804729214887965207635181731725384781120688969778725498004701478438975961115665736731934921756720256082858221926607331478868221366208064239467536010091119238699143827409735711610505112109273592661247257943928340457413568028479214608475102324313886139427515029476410466689670267119957424922613039835598534693585793250578667164033226733805255897016526846354332944206027625993136081330423367894862980141867259577776928118380997536562364398131252023692322633563383864130271753819262918666062084621841318159517838914492416890100512075848121284931107244565003517620754138671912416234675288860916705135934967341948430801200855856952853941959549980993076461768401542622941867719509651054218586560454754784425750147421230203663741618238355442132045935401535275619400197501761208804146060354294958039243436855899234713520957050246113984292050961100508605741537870199575673687428793327879369725347006597882173389575310600696994393826379307134534085712827950846490092613513025075633126500191887888496452877916533594460445294309696530482754957649078835553650901613844843184597904498345691364022030896807408863660863929835164705163190416937447861017591789758110179219898626031161809898625055923435697799070571045218199409524985669255131458407835773545697780069210401452633694930074338647071262725976000169217233057397757963065787869799450477078100398090149067594493272700243888953468820713004184672405079501104064192526632451134196992274621128160049383585000954041222703323299249044986871517404818780910046579889945664469505287625837704349993421413139047323197749468407974383167218895483831349824247501817759629366319365518599415491126744635711616760328703773981481889997850018140523107549814537608696275474632335885615988181782563470963427236602367347979670950027198029399022534172293002760147800606193724383974437846732666045488994686551124344551757645528053088039911376287037625131090286382822075699624037586577833038701850536657108254032858313775380940290085904197026571302240549897742276297544287087379188917188551994469561405780586008518793395795538317961576797935884183148190750689148630202080449699986222632989398863071044122791892031748690584321238545682495130800361505086415521800320409421347700298704970297824380180415855441949435664585135666305364878964338846216051652151594199038192426880299981645621591387672450748961010787126397257898240322665164121191351848507194098321605246136190156183339053603328756386115778742415970341233971976032720630454371402210426364846572621852746361119303215877005813875684257603006118523626260418631370490594559191052069429192924495915968742763878933992378373447613544592132151357909133944236376657279088200251349534428209210402258968337484407332483415207327743044374860031154395314746324742273328807617755036731559861385773643383217029874074071455668296013717941930964875040829794171891891597027100061176883461701584222440755245203032157136422683457741199051788906385250070754816356025182369867745144310955129239300348373656088036361952782519797980986940109508831099868028189007079856618401621290427622558914972845239571618827779291157212644403413437871514583205225412447116462428683249408844525447561605749263722105140090818755361006902536261893501058945866374057349342275319838365635072347622580196397508438929669882340456507986055340595589031141893224046165835163144205992267524430582543268290862794273050378608509586488411936455650510310689868517460873715508684959950936386565459268423849374877673072309613509651304784723846899137809832337896238869697002248946542683468599975851271333506587337048741290723290312864024378540662727065065059650603956931961663017891289827039171483563515922790591734190859913526157411611131845836239491199661382332827102022545451506871313679356006285792941454803904817943907862749987464226569838821296668712720090969158444867954685665036791892664963952857354809503845302759779501781486385370967385513704978190291531733496688255653162328370091814662419468762998201240998607945146310787202900743549920029499526742798110362523677409470506651081698153879148047041000650979264443043424610112667462059612617801636190126810645468790817227307248807453785361438628219346988711042529538627653139818763441703132142072910221059851133274851173460152090793136345697127698453085046383564984065584218417303436772730505679782953871619863924647985817812866374510102393407981503344852143018012245658655904692721586309839279266009426719040688295454631731341277280786708187825754390346606534476660453526195247525891151111696084028312613588625546359784421268515798628412045652303972765806099109918063129637245534780349131328391024027491987792748094623725316751910898282935410094571211130490768099654716971279581271823355454067231076489202398975105389792787948914259657020852283307261984589653298004562111687195952398725120385135292088227281298809029534628827581524055094695837026914579886316698055470766615038314508772090416259289529019167459244752406168711898142144992819995277969738032894227740354488973181572583645590092138000700751969741458867077458704307629754578746882912353502210441742583403377544400016729799509936365103605203400041023909637503450425788564194431000639561678144860986198475730645905418217979236291238772359993870044495823554694446305591515753431871024345353143270551526274638834393625681830630874221386536356666260402785297057268304319154169932288327606854042923740216962087980403990711352601717584941307616313939259442467269257885162457108779044116812590623021198977280365836382001205116461578121419460381264895726532381503991952595239276814056184387848451177821419336896616319612555263193588914112314320388527805792349500806918292221705585088376670751869117641952911137532179980755613714321829289195274254556079957429780994804278388294904725203381332818781875749726055749614949646260929682778210879724282308050207970593847484118686039971604954530649077343883595139786436403657128177627228237188017190050163002526462145184763367172071862358574763444643349961193430005279551397106688628326388080018426605600542311812612102556483321473611466064087243320549277470837432428720323198267023233183662066801535578493147872254618865239850338701546431097115880954275772977107572120941410304682666756444606565876320890995830455945171715901182141128587503118900955449829224196369931483211828882303150149150324678490026978376154637641160248534153041965344370476144384218122536604085660153971818893995944042717483374281078819080225159724797966534869186993410307044934813434516093823188873757734362123788434832731560556633249790021812962207556091219138036230627614285293751393267960534998777729803042308259478747597102626788333606280149045537456789766252809637437030545258205942007354959762287558531010628664229336912996422173626172707437357174270675010964376945404169711113827146609743326349226177517045547048796381082748829441750178313886207486119080748573082949793620091395797426965102538682578509772236386225991870456734867404591456583306496811153126303804701084122493294301002702935849051485902186981171269136209633562644420638032702939028385133252720307340989569931477573965548153098362543818701274788175586169257639334066838639512874958432838871382074826609784604825279955021864452617582101206332618916863537482381834811588234725477655080570840889983902481150631869313677048587092098589657663475639524852824898756474652142621354120447244279582024250111732355960650478535092037158352798920808713866906013715928281951851839373950113332487058153089483675023905676166819214136849134704177641244787123898780862116851931859721855898765877544340436543180920672340823852819538329549509597524676904324043037968111567638794119630445666916666992529855086826518175882253518156067084265862833931061298850288322340821823596956892039136810972002888578240937620759212622910285475447585067903589253360437219404951011978338282737198411967704671806245792921700535616982691558451475860147304161806928238943525608283095714977659858908659986613168073349813712958026671244232803281162234082717022151910499294620432912453652856372021027224500655047870131966613984636788132505275283156078566205728444840254966478458509764370850704475818127419737566358421318183470425318779432221191402454436789205289232749800836841290711146173322547854383231174872145337582359206704761563293517902462343088900896965085274941731595521290408370981403535603397032760328634398472619759620718765245563427523074636953028198912432507546014894314659680294063654212435689686979005312123345578491089940707431254346668257022870058607856466978473056987504722417724035074718171085188712352903955866945932309454902750489940152187598820788394280915914826970943599803970429606066737009398584969421619335651321135098250525142132108888169216609164830275109994806539100937878486737230184498075114559513420318170843367908013846982250224919758093462805825724929042983083620413527125168940461643910756142821526586393875948840440214341338488405277722948858325177697670997519129964872443447229389106443118225359926195976562986827994602897151638878477333593173447487340339181734248505397174644516204123977003091620214827804746656968370043338278431990864461335849619521940081384328569932587557230637614250086202086117053182974151554755164937730566831954278119633488096612808305981377697089659313396414133463567890396073629797792627333449696056561587845813451859535239919320409553219434188121909705543674915715100580579069896669267599338079690834041689700821352119809262125266127232983194358433448086250887145485180653753426192935714614590617807365056377815475078493943683966237423507646984626652061716987395264352858256010708388351999993555300747519835638348059021090433491112484212545442167024751596042111383521610489149945411971600093445746157389328824295585460444963099252541114188715927862595868859751860485709105838172297705753770597973698942067533192875154820987070917398351407270098362346854479968255401945373382401183305814646305405334568968009284534560138376934840536335974016275578434900377747019878818889511309589705334031402530102148266688658252257573673390776318066273261620108797304781027922555977968546388583922111486149192733328138021706055291194041611680748366797522552803112165185785740417882487836607515477037003712970263929867596949478410081326848487256983196207406986714266046937938677899733848139568089756203679410011052112512166656619557113793657159994180813138017371414608214586659770833169644062427386234117688252745283627789223817320961358446648695876515420519105558438887487775513580020546125607028943734782742030325093483049198928691371185207770350831419046382169534618299112684117391527051609896809883843159842893489133436391008969018150350479226603988633661004589157229431359604947366977728086832581699056598060209182685306341804666097878869821903746588972874491319677741232182258410069628256005912494068575770465203135578581365563245928297826265258094257635136157150291973198780214313736650873931775311746264555212691254932885539453054990977483213666940709733846962475969095343037365097728847987123555599556125080549856452916277686019755582161290731886096595308052763587841290975437086091278907775775584579508423694094463194884826036010468351213304717865937786851825827699808417601519891293302028117829867422931548855643463297594148984709861911469232383198794914901223122589793631997366054271539345449990423257349870886119318047708374292947086793942133574518671554415419848678442628362122225657203622508219427112119464772002660045072070419378732904121555384349586237937763286420504562976934674258039652339135806816954922938466537383849361069645918588655435897517456136573010887839659610264911764105598808329381521839879316431321501026336087039461575990059144306813906202274984801844644606608430286755422275021856702840714440283105837103911602195900704320935283559146350653310967908195092415619797583600010559707248544970155366579837920720179758223921007581592767459771961619221471382284548869306486563644357608173749820757052129540505678385723099971011753160984091400053905309697286892786844136259827795560996995198142356131888748033281466850892616123598168139768602492011449059328354221932853559751440342750416184033121437668598557881161999376493452748664744778508173309738377758127183963475764108095347044071430466624495822116888500359336558614473956511332070872709967094279906289958198297328202482919163960291347205173301897634080832664211785078816843405660105208260765226830267078744935695601685107031428965242253080477270375318327502375458817900949824522408405962661959435978501011271121881214243210522380573417321025493744105772476114429433608109978087472856146420012562827934667391206025704225480130102659622232726551990159765428427427488563375191080449872222667467264404770265793600411551907134370776880750315708706107720667898612497541847991367096805914215781661021690954951850728109288479996215871067385794305530205782776587464570735486510287215226257571534701068628028809358505944599188353735035590450804503175074228980445232936322311482169985452375504572152412999997562462457901658587497674807059145241213848662888529552686146058418138996283697726596552648053205303687189226954920939223314929605430306493557594262411014444861729509128187842031334915827953520141595159935950316924775648162833702045311943347213001149355335414862650394410131645386036100335400661447602697132449224557004739502510569698808619289751524388441018038169721339462007132475387202612340924825669006062150170306263085167259279816880809148713157564499996034074804406125954381398867218701576598429505856326398878644937656603483234454565009202679125037426756679126096077929113219639315851412357747749276321512069137665259050382829259602777893590481199564630458148710089668462948963594348400201629071459724490098042098301653501673280204184287692695108370173020289070999469439743724022802454538256147975282933554034465235186548027637449353533008947859706206555402858639596851742478196184241155496074882245545086754976128310020683142261674442660932092448882347268421535070186287981161975949892006927623297080394273488923153421289705104698454198192931160179138804395562935684702746972179491460076434589060538072342620669670861273985083974149164315980059577078621092139640864277374077381983884417005072848800242402212821420347200757427268974924661388795157718711582963477815016850862885998043406959137544743395400133273687882145868315694597958057332365019919690924380158030452534324876520657900421999350849266983162191948897831661353024137093241950787926162623443327432189688940275360206355904664506410373826229727033539565606328329734252356029155759736077364094477779651781551351858791270824010201895531422219044044401645628390505529113621541427752691506393310373384849628820480854346541602242296268504286344491519498306963615505844779711083231922831227635552875992710276250391710310087315557887870954277069026330552819636467103531459229507822982383486461879769980739453719455670023830865753011219418615195437335564958100533456114384661326459144819118662795270256091998630671718801349245703214699173639160586837192101602492891555444506310994889898069853679199050938986857277997638340299187356907319099092231569776879465355254183545849165892625893041733559412124375383180510160339702857290899325000965786639531256496598454442987929962898579072015185154477203902943804532430974789690271552974332982364042865610456961790254391196247380921790914239859460000837711861536408309039033739009039428416326264297296243892599900508323396222293363267141619143303307226486839786320366704317934292129058542083923807785178891155948833598317958181084544036359455738116848424653778857465548070271901320486454806092593303561567754509453574526040501532953971132069627465317352860409925188179275497358183527727074001416731841101027242663360944767957813545859852963932337925995066626191033262314888137910337164242041583762642657786375171317920763232550519753297758243825914301510144594566327127619859286120661578892724267344540548946061657975820005875094308417317717258028909331338916199182590638193793545131994838144371523496454152869424556993540712983295870480793604919748823445389436442833884597223555424539350727801861312779633166522083003527520224072472417559890068987027629427523480779602057532291149712038783069195870528061348822807167779309419795782295410636926510937551134710235832908743080075125103850143853598872544380685803327650703080655844981315089400986847294578667750540181741632069311413378917524664592416006940862106090579560900790095445162162698542636403245999761346093071592517527731182243182357400480460320476309672287328074886190843167805393107606038502774965657171065334319626603088750445340003271522314086598231146904913646650517852153681574081018987774491419336511953325049142918145317211010828449360670381845080176815637907189742510380604509525258594769241521781871586144165039520291282876128654907038683100896442773934867224856131734495304300117776968793388292385722201254757333266391086701549613699863159405255635518078620828598238779068044353917960418829051545696958344079822064023416239806838942134786764729599138263533428028649425923257719297819033242894939643326263387404037127613611571457399867316308129143359172782521445871483630219862347293278946604083340453659501780588907025358715741597761390356932140318856926156117380730777974587360421147091739077086121992908028172721918928606013217614603406249698418982495861400289847335468398663689263878838978832213823321297918495166491755991055771210300511456916029843305754024867557902158940043456477943536815424834958516976077469026267814830399956402151836711512171963108900833988651755795649150660166803236555153336344310710364250247117023299070139872057545179103443700925154897446803700973869659805149162389153710714214007732092627132551483815130507188743384085484055630172315431141175187758914669689816065493610922871640421729566341275353499748546666171956427417108339365477046621561520182718790756313414145710031806563713864185455617861290007882330099804382183256909650866979927559436960714989745234814910251561794108668203286726869064690634032939679008503855154176100064682214584040608815721453547249223346736039261194853217979518615117863724896455578432237170609144585696798819303942131891228959596022258565266031369809073245555688386762006189613338427945422820022504720752380559666202106575248542796678405294588244554497445257569067771552601346075573194459768353336209539923607893509382240461093275014703664144133813330289292489150513406179209984786141739385321106018106856093387624925823959295320241538022086211644538277363179536775498038505060952520516691259045170912228119379945818003909803788162069206536253351979960616363557913487217318232446401529253132303863710673401480988661692471209184362732152465318312663847764021124083694513152859417915861048205427991293912830786055612007863093274590524391333565382620075629164850002065539977288315647099558272600150224813570244464739075629453191402854374274022655642160265822848504997874350690703724790817954854092878986297423037792741496247856288423519143973541874760882052582387014412639229148933095977196232200144827674559360949021117785512060683081589001517644124968422208926121849847566645886157231852398075396709365828457384583882616138217525851816938880652749678850535257538455380227169132798389811631384788804639401509700571911164507658204180011522601635035655514178769283101936963782917019917626692606968035813184523506877932378281827292759508090275709277628388924426056359739466106583079421770911725530884774882426269933240802411778587328330814288375204478136674101125807622002836722629568464116294039003562001436339210000485332541236585570161837888688188612273799937782526305099545191771985027770942815933684760999207069497511161693028824975760904923107795295867128237239518441606936065324868362074731204744462390898156693940380246632338747737754391439538855769556407350971476543338526392506485916784529713430654911785425178904828708947178671580644028701802947895454662791280356291481504437609103376115352976106212253022777045583590336824966262914214574127026047839427272936998310371364762955761536434862792858425607553490532747811262971882974743671664872325932802704516615443480743767606974064487993096230394878302868484193044880031792471633469994851002870590154864767848285873962674298963865622456204542832816692332792548869598132160015647619796893572300520203594710569018570258173178383451883723958441497332132665048321979831653798841346150713439210995270562796520739203736560579317301628136694315509838803161226109049846934744791700980505764356887165147998713922811730026970942560563261895581731699360238101613868996485789648256544233306596158766370275640326034958524992098251012960991265258016716424582360257612215034762245364914663755917554341972146028148985592947992459847339253633255431392976172081316016016583014609718314018994382131086627725257148581536469354167567142621874681617027773542436670983569040108572201846053953588136644265346039816594234950019344041946650513070952093661445882596992135514614351458231433575954886741147204240148899448342812565805096163915357672296272226848551775828225298712909894883057063013190948837058946996568707083746105461345190853370852230860452022179978665309851496484702338593420133862570642576626042466805841754754288256404938965445251549443352439781585037535303499733611310566183517833051747598027782158283240422359607895739115711732789724856394778952159719180508550931065163157661151933218540100771263879827575977980655502889054850085380433784837496912454213422412128568561332548922358188216045035948619733222675842244917326051590411950145661488633872816753141027324733220048854168344578939953318492563975688116292253635196901237109438262371434908902160888528555630769283179820404581221262514388529089181725033280931374403151187480523106898459053195748190221660539671053454588548098141863656785598607442388607723541657815080914884014517338114044356639965838965205667577140450104921106963244706119993044834449061960470967114620820217534966788310617809977801224699052310411900271789361212086821501102822419534206856472746654972049474426328550497751723637543075361629105156743346903381137755179887263152812966135438737685466220282471905673856156095987371048067296086992179628254558659082434231005774852029953508611467464862283835195688629162020995011221761874801220340841239697819059002583329605294529929467807019408017748523835023547385754614825227555684815222030374907010968345716533081319106624050543482336569014658906430412099059991364291107691652912556147118786743645290964622711369798290972522758359605494260435642478512929151885577810724116831405071751606541511894775718571360663628362853312787587512554527215738691140292771682506311531539390177288331786502142177686070365053957649780713649682461546048667659231176927699961327583855988841887579305144644129529150248358438781630184066750939533230768458378962436432179348359142134492215772183579760118871215039269522538546478509250559100797448517538177973186775749954832151053365988336885802197972124821867667498284134635968849418348884259540105071663723202207828103687686636343268947701698184107479125704488908063607533355508964241701104769513553225324148278848974851574099797854777393798441503501033509081312162364748505252882540419461159148408267052075948146019357887404832045242833598020711436935887051488864254247272051631199654546223572031555963695393872497638052455413637128697921053898723093542806617919920873692987506930490626418403255109280898228086361537356511673497672606257750337456954973222475024926596144809771538101415996381989125000379958102559648704317867618602755928380059837227119886865208115848140211836483105982303051464459579718515765524018304952494052944507383361324975079498633343107811347381385832579175825947331883246875067842683062020529946270137855056045088568269305426016786818128580892797390071232353349583622335281255394627446390488429312324608172643686205215454522019996437109414716766752029774829878384488169374828632350816506753077912856873258472841098933471280333151141553978553671347835132380402494785822995774070258803408443869340454978125608259198075892739026552448977304439577707359275396951628402522483111802971270582481055587482105445348348794678605905680919872886427240598040003877769298945696143537753637460134476136891599636028020308215411407453261155701216573755232455872849787571192691413946045915961168985473923790224838723505128121076724295438687999757176961002632737621473856893659739094497520493077010403159930217380199294468374624634474417106666204588134844879313551596767309671501811096548135311958048385916559781325364596566494640761482131112004810576641366715241841935948673487653962795549335729748744865303169475331440233444830159075311551330966554691015784060884449889087431009585146117300626213932323398442974480254046069712212657757076397176898313537672980312910838266615694961584246214937236513278136052788750405153823378413046405189313182946114665963780424763463836411746318918474669399202850054221644149815186045191112987520526385557506068979150729795722861189589839113186153345222651216672410243811490257168495291063374492872261705433078471632580614190041856717514889726630371167204419878756892450353088529749658279694907415647393265828520505193838028623556058303775918343597725597246775560848366846453835668546699874763194238766154622318491070468598103705144650835231710289688087119230353766809067189871617626267671951189411680869412163140849054132380557873375767255354176410235589965368048110097870194296897770219403662960091236593575073418945130037809403023061409143358531205085825163084860953195822030893662055773989157674532783627331135345999883205590996135923718456239049717374252945479448112657226328442319959271348607823077032622991195107179015174211182415692079716906471394694161966382265647242207747559010574273230671078240689336004275645457224597579176042331758204366072443772211021754504585197288763904426862159462777614397905383855860399929171408795107310080726943963995382541327710275028645414969369968537810989500874387899148544465737029430578773981767976882192109454122497585256827331590935725692980508959542169718785089595515960152880985353527600309833502370229091240635753135521208139244750732117036840164769964862698894391203939014322657064640229559784701648974004990970806260573753945735916845244886237277168130703669483938445845299650575378689112763088670701314826377984198848769499430701193898051790086440438038445912404403021462654615846112966769932933548414013161966219406014607135835291147303946631658915637515650671102106703218989209219702630747189819383493945613501634735203696472648367013334983790820657689537787206756908869393091530688515886047966243697746000338197058930842710654810906123755882799490045505602280069089501564852048786222533410880093946928986135069444783747919913115404303631326185136771534080161980026087018905341044487739801850503917222112870484074489950286246673987526877970287494938355630547403314149811220503652164763622675746347298098830662728346164957363497708377527698647313130732686963490006213751534451956956960800530402651380808990295564802969547094340696230301269351151549985115553037999229994095499574813147866037898852943488007733685824150741414418541678596333744102620008175879881728110190046327109877800012840786193001936725921734200069030370562659258504093864990399724284224161438760978046001954972336817949878656344612615375087090794012840718532749114150200806671368928104076343681818848836621405934602257545403241748621938674087216823290971007807726277915412337129408744969437618956722535815689142546731508253333379925556174845643260990133679990537895038665620563377658631303262674068211740046956158107423279549031087076583142954780214316832209882479154356427703710317323514465791535125363403194127228116919155139495563386376027943621824491199423131198557006345776238544665637410617401338309185086311210550991923483805489011673135292664500473825717077672818387566769535104250638625103655464496161641190770141028706702487177345209681994969432651706383992558641879101599794397927578654674847518812949810108031503156732534359662200237876189624524525420361092631311682894747803061136035806299081527969604174068094101798538151397723506096469705654616510308289794129335904089168942848002484071369063607221333615660429677373620546400626285208823744236709508089432283456255026356112587268790141879103923811244161138570948920092662487167944383412797034966703885623939575007415684822492937662643782115367120574418540372266985075400142040970544208124281753958863817317421883859408213755485415234253372837110558221399790802690296654075037057372488290452644098324475596640163932360649876681074998328270087801567919057501892208599638992740792345929124422545353658341005782966126170339177201637465962616543680764478917945999808743533169048777647535320410996064722562005658040141178544452932932051164212422306090218622661702768705493874667218539270605318070367140312286499172561916709876648373719194258778366864962605514716165626023743453670728592981362540290290307738153802607564144424049128684128183628915681689460988793894027938857015544231560363930884232785926969251789931106031304103952817707067933013540853410098658119187652122378742913971174684363148361741812592131361419807187649259260590716843035094471660894426928922445059324699201457562718445111837030467508858481885388489377247852533904970265569836751655599563064352158962153541270405789409738157177194159088673616940749701511605464062237820393007860090271616938890344970315926831373602155288443746469149842398583054092393793459312831513703049288719129120036828554242142004867167383177090784834435342468345764717620172652434551425287384658606723761401553503787216330207263504370336166851984866160045404976353240684101227154506566633554549444888461483067808964979430217365011512637698668799249739334258367039100876427797699120732599111263286783036073157671739136065955009551051973352623669572293523690790598712781495768711690432264978077459756249470271238675556933550264044357477225739218677038356219023090826986290267444805213198601041803803610669065754664669485162133513566111598262352516608909265329364086384502011609491973514805562167493869609719396297966290636635190920065088351771441295208666217772541949124953832789362259249962788360250098636790408990978775195190300498044822069490092119872595562545291333298096747829782406632527159657731868141645122282685496458793454966133486417312406760811023012399599768005795554014558997099641977363380086274465447642644395719380028179968990572742236426781585333741474990498460968078331442291204336382497675468885211245808015612500118205850376234808860564017793201497835611991005968976829134670808771227755824595073631544359509505236277627064962574613708761697807662027211982188498957096351079351070621823353763518439816503975984569271114891965204555457457070774486765505970030082475624255249593121932142385674782089742039675381936032103365830360398997542100984981641275747566811670416794413731484914418244392994421717287393100229171652938115680794447786920078805160446007056428732465504047686118079466880752486052770288443867566860170221531135223200611119963067621426011718341830592869434681441195721699783696623142192575157363599732087039963559082311898825234773993023088333947254848923160443350620237465470037276487045425809524174893983561675912806910648366137817791660091815183767946418887149326292635409383614245973599623126762552423659621204958742165746231188031796707454717711418790064062114550477746775483654791499757677982787723189224196648503048342862440030532529211902156705648338404434622338828836642805480712556386522791279497932245893758531126255792083568203168027817205346966805751216400839722113069281343798727203917904529681540154816315584253617223806002246281213986674577923361163172638438656739266663608076524009466471703529220727291919230597723786498001981465899745561484139944774059491098746354837061868292264315157246924932961248305580809450850597200759570586681563161432929089585322058342852257485297939217231039993160893421256608642082446598268003774437798798700112433745809093755594219439433376642571172809370742916228122319626565520842501359967897557894393100795214704031291484211339595290641543001294010009104707728948957380580388103524789792528491606901750462795525671586264954909341003654961507795947205196774137544560184605578711906447910177212095380343570494763811336117460668854313427463266021242276952091298604227457176287489803693244103429532564085915535817595284912425256364199278423169539665480570419963933096502614758539115055036941805798350464405033230746576672981602841020527180969399601562057415302435558965811937558207897795682121122107199958464003443576902321942770892471948337026026282946839121517081967551223997337848561706090691875612057957143451985694578648874425366935087936243367619528776639370383541748307017794906854005030984127842919244297466138465840531651415862211534751786551152547726694962496687563172222075150148701516247626045045595748239308915807903860167155824455926227663507984325912193745159864933407710514764615507719057634017677644070915820191454457387232699843385995635629962676976138068113207271425248422201201712101254493798884628489097467850595149024198375302973170692970841569744796869908869570815122561755903247099666786733879633741243651668161899891281866502818777054838375981856308087033413867816756722765635777358769257106123935972501408819360303264633361610968663133774782888025262120404285123156580000841185034190551002961492059104022230267071592486988976263484075221860991811483675529233376677513423097411901602753803431003113840048580415198429781579409249591644087115183548398381918239332279524961598905235940764302463097195868199902603509733806443437393164203491952752899288889254635379795740124829223576946397903299790435514621192528025491592532964547532665685382481524583039144490843374091061781612887417969386213120325851283635002389034435161637508843002456046747035141764052662305999735036633222708997609166649435731092723194925842395471002855714434036725950420224164282365427679646383288222940410984709853871988632140307702044468338548809728423989245498490655361752832034024511676608990251586489900030900862304768115816032918746900487844322361995981488959521742552335955963600343311438038911386648958453928333940509769687778081569772005168765017950438508093310199177602749534596912264497852126944720431109766255638273585887365036803746934585721224852716988116615500431271850095851379758325865673840783673398282438336359530582360694322929756332341891556744283119091652580329465397340569324128464535292134945213658239003794510423562833614216996994597618267832094222018967379904185349476105916312566721147160459477831097794544711343130346428403654658393355094999963362829588226312946312121879758182880296756801593214564006378832411164217976804036708008014942937400261936633160157958137566609947594522184982339888760209912743434152275391793927513220682512531721912676458883321062441419594292403516757836363165532435771520423775536027497381480886986591926511773348591033980969264718727138315588078298115090839680862000473458311355940129116863705445186083544370655673256899577575341402770207597826155810456666244085184457313345851461359039671944226670394950040392779448072969454391282420488439569449030316820053160249106332276636463092541117392469372441693316915120933777050801738183536604834788389376056696988630542357239223684068127116909299817227459399669819043922611322911755977094797560610306358596240308495933645808146552215600309040382893330640940282255704222913595044175543080246742985226994797047121418091604084462331541922989985386982352889030331614508110954191273975263252976602956022802157925964797537172564803893438971549668667275031857538911169907798347991898357415727777603375967235994883814687749154704446882205553988610251113998019197070053966503622188697530363814920541931637404411137306559953506259520617617458395211409025357305634478033820867180991165364856053811943232421129191562371013895302872184597699548512255953602390135126953112698144403520976595144549220773934123621903363046412872640688969522468416900261632774113357019223368927960266055126141845293165734258716520628255678219350058916882441706390167695709143458929490233318274261571739238318290617638262431612905590086424418720611451851164481556102351951132459349963722606018100415993321728966371848233633768468881672323846765040537148059691181321861500265246265185435518925832091846906387578871015738828435400615588539302275510368585052371071023507412445205601680991785476384830015719250237277376976386010307951039155754398820719498112077451667481515809692465761291267542610374583228650218715055157019606981198517320655773330807751063940684721874231574699989953289059118656144429072495578786153909246348719511889269880422924380917456680866569990315201030986668649279775560005404500983736142201875474945673888398309583569277035688000820439672476165689787036998129507170019412646055178728044290854023796381783647335662176464927360118798551003680769658039130501146524049493883049555035170692782824457309323919111720974819717637767493827562538501363649525833905891963892083668605851871367882272023206968228508083173470429597223970048057539701605890495467428712252460736608261602593625636510499311885000664284876499611440216725379380718153983596402610279239408092767929294018314822129690532676608967755634617451553207627237319350464837586647957801898034341119182878539127332618842295155124144098184844655220552199341323983539764398050410964999190861786691916571791299087187538254867015303495881755191504778345921987160413284120698850212465127095090787553988855446476215238049516952671312601997914187384553624858085458711624225569298575761416311757617835377463470080966117833426186137141765075213971111880446656554663960564443665276456085432895937343985737540078772197129334599325902628724761841843365106947195271670539383606420009132527619325977217297864260897067692230742695266010303716936668434351887122929933481261533973821579849031783264308874170985351838382185721597264814503333934609072210415250998273390673174836441985334700328282270848957376849748177944662979312154814303495339723613838746491462219458450932741411716062701958739213789365003003499433942751744852893030912475009409416033218499341571179355055522936201753961623035594723578644588035914509811248715494441994668703547208699783886598330731882932664273661170671629986994180297885417397094834645162068819094596687194958846495183660097854912681166400108539706590375369367113518450137282204402973797612909675541399139981698848702141374273132506141238765700634009221614542661590228668525509214207811187006704651138053365435272102163638083387532612522435607637438316139084527082315361419628444108606127608326565027108428477996481319437534361852868431774818048740649843557896731645636829240375825842386203628946785582497991121299319732982075314600044213644182085414248486059865340856241271425063061692654629171927681323930715761228814799502347102449481019993619802251625971603666349768611706885880505842775031367860014890216679704805566905179380519206354191618807604252869827951599122758634675508389878297754414406429308471992278205788493829280091315473936782226900006829107887909390765094303141739500360530562944160849194774492495634848276939303098359201750312228653150043323292069200642366160470949569147402582270904431905057791040251678440429953753997098289731527996143652377079953585700659190472481062344449974640667849072724877861219435408429419830987842310776842220420750860518312720376988757988867135146064719222066793940727672846244321313484466424867649089518329254735011271881618604905810303388153063186692013587912777110539662668890431115344263176326333316027206160472254268536566883901298305317728014338071208993365764931082057877399666250141031798987209621757044267259242837455876003960425090488304845805864930469827520156797455132190135329816814428905793997367743868514836139025981122783407077048513713676777743164136823755434898153121267420446411029483594297462041032189638672938885332582915128043101398881619078146123633304647535960981432384408445454690333778405305476948169055393812512376735311624772053622153612452337243413793187483236453889790787168553212753722228561500199343304566124242553060596471194913335638647894777416377558955650251157714994793346864230425722873329396286162432530370196741535724272237471715775280001196930092203204096477715794299096494118827324322848983274952617279945038900686949445687409429362159978033697997679141218563687667604072973936207096340242960802172053385063288412087259875130353984236697612951794670006736988197650392938017414736959417203712281731181442350397821911437857137697598259204214934574816437022660486040990638014281336430388697098505540590054955746687693486976476109348395950982757114102961491343618439363177222679945117880803373814599302658158744440022857872852838922331134161604873289802227085266956777819016341488761040683876884361790999110370880832053431764141754173723019935938072251002359143871649531329913033989208005416696026352750941448600426365816167725349649793804888723514541974982158535740408376995192748346941178157631432754950803216137040067134721322037295155721388414151883245581107541354196459676489042687283632577246409533833465619171707488848188070036683046663564520793909223703718141925860450076150055684180268497006649244259408502735500426661748488114151125991286891649222363374581439458772518302736101192549262427765201504532618857896830441797991184263001639903136214856626739006218235564750693377017541376975581402140669916722847395464357344228368659130430644431008699821703016501304234733776360503626312686610222911664368091593517132546971936232822886016021864945433002776790263791790436963256402697157423340218929788689021415846601433138937603696727242947110099324107360198787263261728912810452748197792123200053868101225788083137883591886824602855222460373940447128178855042911095162400863215945914800903354770621476888320621357339057656300547137202003848036163902337842805383173027174877160595319922461726803625029193390607244396467229512978372460321909902007299293845391755673721143362594788944832189463367589054233279584000346684650250967927968928504404474053290519879516592855134015272877498355840063270220676395079545703234179402995584496298975956251300299161048923559574108632227311607801065340959414555328923353544765511769059309021846148862183451111630100411776365523902075202411824220110795172181897438395863629864490467896139472916262428426432597979895231916238881102188757758217507826252126495788338903545620605568830363510734490679809352848359458744660589801474915098546942784463975221127857083111751394312477257057740527880972620143483033850216444305799973664163057839510295499528292223390493851861801291436054982529434470151073831427884094621693811226636816299165150046783947495643601936866705489379303520159349587720519672241370574312437183093449786496058896298293106717848580829710090097920554752211759265480561429632580296974082011638929431051496104234279248149193804120758395801972199105795125193847495137926793675232542768202658647691909463622168915753046681300825977241669498250995129274142583242985074865441056237187120810799271942673357578530350372023506560856397402308632514102706817666091698257680626701125046787757267266520139574515683670158715306873580250626754785579566471273773276122284470892966642228380570604836620604765216267276969354958549329427399294558791372957788664229075802868517353441565222332791433170944575359430323017901903573280844925382657214896381705295491794932876281736168378737164285839378342971543142967619207047475622343647507921651300762116947617309567490871432961223823269444418369865410832786792493348581089728638417345157601845224346604011099805754695120505587106353584171708738327488889611122260699429296860484338431790153131560699041597343346024917341193430344113459317255107562826600068006046984176323269032209884961202180671767584453015845708588704674922399732956897624638467161384503497824177960161470197974063370786340124013423803164258554848554692831815228925915997423314254003666448114595862772155039658038325295940333845683595235463151451955200586246636679135947881190556382362725890897044773240009953586951002806628442738090215508832986000143010878176359829242038690449440204740144141063460796426327234525666217239744414886781082132275852575177545319339390883714300874507802076818390399444594097366370096856411854846982345661364868277828817209450484142023272689915864569044439839192415529096249306227601188449365627682903810565334434440318979461051913076200911219157989094260377760800120184070072082013434886552137693777427557936224117257805545829536408396882663366220702429920061040547793946568977181592198777180169928998219519144497563235342570238659543104740586207421210042600750035775890191489244353393092597040163339098553123941826846758121772378957048813243988148639766209584803809430539037181571971908854008287935258850998437134075677141412258786078138335605885570905145763608156553470305771489554565482636037395806069099522263601213587550467562366468537224267024440376266698622445660942260271622946029734273145501966684997559893875100225391451250302050032246804927718809073448461769816417509273969412716405456867221677487027823046925492439342957358228233028066941996510545665985276653955963777153409410785358787122692915779142949593271315313237935870448601205145986774147145161130270766638504213500008786277327034568303552153451374595147457643659442121088938533614586775610709317558765148011599403756067816838765427773864456801997940433474717659981789902696881637759723512386444017686360835273826080220756382410700438878841439928514282690940368949791802059512417595655350352826939049899246516160002799472607818532503988499200813156166542943291260210772208917840743368667690916641643103986981725945268989048266145247737354990377917826861565437834558306558649030494877689672749517869059096018692211583871779381569571967745762245034496332436920031185889808401094623618891862907190465797581439711861128392137836418865639743120709917365815502366351819396755353395971772027451744829202889129326992194106824730527285442602620288328599674389038401827128640721254395834556874334793360108724970127767717531277755097407338683443151831680316164596634582031724449076288980494931671830297206910158383117955137942185300821141512692631496310063344261208958738602854317316260762432657680882882577896820258676672361170847252607897552136564027128728542799971492429395301155581145065942677879877652493385517025193141894003126636037170839081659653872243909588361966471264045939727203763298781246988866966832759120913495573780354686620813974616898344557023779789716627152632184868046896269528393087356945550252825321118198393461538310200645316918905793110738236368592822516083112529308720130883274881486713883019518971550781131009692307774201071844236331112916594214790371607937223288843835327962460407957181686709077551248774650590740858649750729881787518561315291098454873219230630642405843724252706767538105238437971495995508872353910348729244447850636555792288227695755636112079187499127418131349337308583672013205362931618693546985930898261802288641156530306402956342297349127570227027668013513468268693763170311636202248205360368403587888953171962841389714448458758348865612946532315886892454090005117722229845388609529428982945681272624602653239233158703454672170948426862302424358811819540330242681925569864885200101366345278053812315787948066383513071975199643403143513072765694094982779821817245900788280413350106041381951179997671386183659674701254262986344683068148763039552015343637147456555525147123679577177111655671686636714690366922890128678721744622855506357449340056442915444022401641524338360151003455496922097769825679370781854243297679504838637932948106442354323882272637741366148005715013037089304944616274244730407311361822421698787143492219849257313463146312684225501619035066959402361138761163969219647180874329668026935571530978299151895018147254649563323917105538668709332323224179754457038530706941968222992308265405380970978811855282861916822001678445302511618760965257487762615134120408738277369008046978544418329152728079910319820301620713412341076675524524603026991685260674741545813912439919893365745166265642712453605691625198471413151791966370274763113701876034647065729006596507064191058210007235033990583641647116833548786349676275049713567220841375670068473119547932349321793967404573158060704774944995864507737175224817921766595859192021907758060503662956526722150573607780780553845536034033675208435008112505118728348726484952205545952992077444646234029563853446611393330380002509477222944818021327524881238938179634301901692072402762124407146956594929676314426612837993109136946700172119434001849824986497530833068652593003982407252104322058208180067637935251793520400936223875244743502588772220580253912664818988704540356257427510276095150182249940810633350230244952331603380975082752089706696116086295337553795915265439354838580931514267140078423161091802163975930996656062326297216194694486814488824897799575275605835063054267123834991915076917205268102718523711408887196249032099187843355195163510282035877303359059614216223259249246617926394002236644704566050478383737710719044622734523309008301417208673232765369658239907034527236541154382426727289964860321353408878233618324692405171953900993182450716891409456470316581311295842009538200552429426256568038163669725835835358592681044836870527246529190740893466254337985233567367382263477780299288343464203209083247219813593258506595850486325980032579762063242544982418584063340145653102562802735692733691038535714797500902255889845127979605805637219908364759627962252424780188374174083395425678323616653766140699540744057375563270353401369770167044530128721122394281493874503884569291876048617671640745630641497024217807011172972966944650990961558319614493184891870144149724001948792098900095084461169069550568997143252688611834060982730680312789343042779329423245165577850562715553735233637914637122587947033095850241680025415712344267050753430197834266648810449714492861634402162953261584924655010847643803867947466833322181203697943474646482263934653462505291024414954961199435883594004444638057280863707115986656700079082298827648543006168555939025062162136304597493787732476314456200908731697984996698057181192673866864412261982868156760815599085015953201096786918167278627157469581570208131694853250332298769972396116253935814879547130417069480000274273991250104003407004453300561272245272153873208591987849908055941915109790196413551187044168018059225419607895210159762053226106926316095796095199185002904230950218748177228081688577951171652501113347336285563868996785446767065589692079653311908677486639350433693162595472777171520800838163787921930912343129256720570311509602729444763284318367554090533293098971748478732854817753236623252217375854561208620669705908733196684527385719628789488269784458096324220386584414252051133469923437251429273874051079264752971214308473390020287298753173715558223066629370930626152817771208053786899359397608374889966577388712785755308199001720024980303447503915253516694609348452798394260615019335410911987564964598543834801210388220035466628253473152066060664362205948338168278895390055403315623779895855219771410345904487707639392730790828459181119733658089669524312775876123889688259330310424960896600483593855895569460322113695595129715081961011844498956104345561258296680976500714150871599149062093531824785239604909526143697835677055072831925875698419760173138084665889736036172177435311993798671445593729074290301060649270805788815049290359862745684425383703405048917428203310000752807088308504173675749997817496361757959482724621322868490025868233246567835466265418863126096108582922144635544133500126797820781224224027669662099955239333974919292342065842354436795493777240958948109185513577288152989756242961415957480845708436005092126521296084280098677455452321428526988573170443663675271070456316980417195364636529237357522692903198098188068073359879280906716895850655717528003484551922376882700479487690325944323605553957908493878486997474723440764017499423296106760641395443256754641467549208691336917718838577955140183860924085845219921641970696230091265015829515492135117828916390620348977038382535135702367049704469024611637979491226178969590887143373542047586923178858948581374245838128617064766680484998905969468330689943989291993535247997900951748629487011131986995496082404353206706148552479947730907259607117425328738975592406956812773871520513080757221216843738861969897622206192347050558818251848034541679344153627382601384305974650063172516677614861122246423751320837102558431401945826426497540187617891651980394853053670916872921459289937243518335591456783503479783473840811916632856186257137373956516323607762601948240455979040063826983279449488678983666239757279761677619097926842109427239819958255294878572876703243641414442979930172815862700581154723991936315597785199387848913501361127124905705110137361023888799642710910296432396444421403505045158537080754901306550894745448510402999381422761747932985375037815328883973628625300129363089791160580941539847364352126542712139123040041593000604349849714870012635196797741913278699063528714956541594230917306835279860050966862112353484084955074515441699170732457342320611554976376190627898602660351986044423361094582080282956772698786562964158534755032628220347613300753497549927242245432899732094559901225428422618486334669116733427949388287356083099791198446545043348690379812741199831383320278845420425240160921084949360132587250695626274468985872662862835075448566852617465650613250287853962768463329520196463845320455380288762429066487127996857279735820499385659510022332965757824015331500330558322842402746084608739008066603220025747674563105559876748519681621078072700184777153710200838248874612235455698793389637059672680702282186693500594735574707900083201900260310561837007634042740200480931781797153076737788786497093266468021224986643254555361684197378005098006536185575083784182758470415349750767200639440310700587695666593315438679644907561960423568993172482825493088914162788754100965545256794047779775550891233609947826060274190432611085351911364296385164316720508080198944469277059203349778382050332442762122013376252602235571534487763700742971727106173190514971772564370293742424475043783659106604018540412064779916838254819274245662401800619214657377460917570653693285768417409065846874637042391533900183117403782377203724281699535267800073430974393773524575951182058318267469449002791078846559864772417848860110494985765100027885993530630278668345980127757736541184884802093619074621794181812733714129348588773835268507246040376278661959909524224864395711089604382913251619679503512797259049109345596928719372287428134291822508010015940039445932490320018758810277536009270353691642738108286143034970324394690821364871716049891110277389423848264437610865588035164328852651296910508862155276607673170508205722359823713774783611569259917974238881938542152252944190957097046545192646627642279384996942712208474083385287895228438863164956881759104957569059422733897711774032119411339898363065305277487722563747713519653535462606946046065185102938593376355146328690591896344261342896054787468183459441426174031960649505368297626106652191346372711601561743809926396239231449761186557024565110294680772006950146961683647281676058143269347962300025237571014101709349692205336956606659389113274561415219665445860590942426640340409208453458025926249413040530881593893694362238492466075550629536309693151628119222637999510976840068165653964738726955145149555631497474036982141081779220987391763966623878088989620943308127391224782140833478239130316918467458498157413382470960243157304023541643197635721025671497819925323735572230851641682374790343531876382775296392750811833414692378001528856251911692104556427671375947034122058739326324656486261420951669647842179037689435362019328858566278064492886249884561638010416431911848569332701413257813226853200937477208176394837729258019448089491126303861231329433000932363475175339276442063732401872240456622900502708188595440322534571611838153554925287189041726846505477972810271619451189648444785216622161604963003901129982646786935760292465416192398482274293863968039411112920279062711579433866229041413212355315653793994822412427043027079952317843561860990490565244269308510156669756587399239197679307153417111426849034034457940917346897853434634638553762578020163764726383518244909411057131844133819489751626374094892948159887613628897224988770157373393754161593835345045745063625642083960223712048720535560352894250052351582662030182785863839441221131338667848056528819351248783811876340493660327076179209146213752315090937768049128327624435301133530457414205757499695417293944772745922494890485129403793944682162850112842673080764283833015120535004913990476286239229657064730896402722270511398398683742504330918202986866234972827728469812897513425779108743767730158340791219491522358763276565544571343061518866314906560917683789822105121187693753335697893182104832709227594950585067499274116273305794320146206154741155822338754347175675465416381208974290732404731744741209270879461515847985311990168680563478537543823618287889013279606667031116041494492209888584533600197496233871265860088538093773119824299321606574249048454354171667303815153907363148557856666439530246433243731892863732350945363970418333778916782989422605637297704822004462036754366334491675417889707606637614346883015753845734274154547261673030298002723963262905140557033780077869632056196855174020692019648152966505578360045505936797163912887775170848609212168324255980660572867055965119714933006523117704372170103692734260518118933873951409319677161564661374629963703804570827178081041587433826621488134964939260222011568361004683565840883324444534322967617100720076285893315243120990953864883188366482498482323289749625409030816647520659753194745048578537447565123547947524457289460211593446103476921504632624495110334775127467022990113104337764861624456040070646744273093086630719174612784834761984357709498570492730479544264938951840317460163905602886257806924224784256526732553011032021412509129237544108594082667826410658651020285949219149774172178628196050173731237984370320750375900412810064756814864074495242945688453710780472462786132665490715104020389955127279528259700392857869912935913248163105867759383149332239782082162056920067225880548722011244840691348916326444864048606594899046662164043861452157013240173540512525938002492989636666112057098988571304209727644669557249795968296493708862065266136006736918582898718051479941462030625495706385264376358366070630809188727210274839065065028535436567913337885455557409992694871464231014832382546345711216597683821545187663626854827004294319083019585171504790219976422431924227246938572649631538879894923026595492016403323732626041963486572024105089565948553007386310477359882948520774769764922965678796404018425454961410983207269398490632631487173647213507256024457342017100892017111215538118580873638227293557231068413163609534181029338923554726021444870829908362666916791882381340692405065260691602723899073943917439585276723757157416007321648427894976217985071537368891218274098085274886483508439371124387608201695990131197986815742034937600796402177334444841489154524981114007999031297517866470237419647100655785420311716331718096094603673792811679208547950828579771862445351139348044857468481820941211751290386187948210480714645227190643873592253741552072564210842461055926042969425989864451906626794088551803105115760825500697448703852016925401015956148543118566115974986274339052991055985690321932632646151438417838517121303801531514990741823220621179701524349919324671828279635559045470539302308916686245833682668725758974924475131205057275345793805413148204959593631784264078435359530356864090660131509600346663469822371907223088346092741412753987179104933983956419843416051963874056518205261787500367685267649044852829047571802083774045007360078081089857239730830081713678185576279570787812414056088089793033985847345980105603302372746642153002105864462565041585015991805707122438087366680093541814949656286077418703171311508839247453886210700592511480168158852241488925242293095659051904890629846073743002512197823180216881726043108371348008595985163855628302064854901724641471494303399541967970360471649259086098633955790310531869157612731842615147156388907508560338120092767232135367113057095706708686905793798750712748851010547618451707949467137399390629119058252221303141577449398478676216315597455173613510093943601213905985548338256484344205474144429384755724680367053616436320904685573975794422455591593285517870902563723869378224521363334738120024451867961911510542015088725502379989919622969863294347781198291821200398340275146863556868595654838990408905812410129754355433874658822540330381167726731411018083651220535211232186244865766792109152137057807109351573717346967273743815576535395785369006284333428052336266887557149569180630316968392752027797314921447538374541035708904497645554643104814245575160812469723295858820167530320116949982553629954694674721137260090392663590570035144742366202117350594980540081157824778941793725404952238211731619979684699629895196100041175045415578134618732150983770627860690320305248513119093130043216914625781658751923628320342190562018506766721974748254064425179570666525299916098271021234241152088474510577834643420838973934006342708017053505398264579462505661018344705667255023871207622145189035371138958914523314417481239679593117437977832571344332448260482128342062992546561288547889796269092927242190017439853932659574552168487879798426150547538889775699375678797814476520351951946019491759608553777584298136497199387213369994434868213358523010039182789282848066344396360781401431158093558347062031189157249332403018907467866564189300569707472799843043458111296430081425217643323659747293616227842479785175269431204964002310742193697300783183908343704293073853894324512923093686615105216737528594492128091125105376259577965263505314869458133765664386878268971856871637728774400086795372797715477034541840274888282195102651931959921424453023564725038137726981237769845658358654618423439855742315430976357241860023933328892566561928235558664496307755355698623619397090701439086760661532201209229338554400728822562474030547178376644520907424073757701056159421618261502006628294589151113953781708691696060515917455501052395255984956244995775479777026719656643184115925847154921706334967290506222044434615937212224182475988485410629850517973255762889863080557828798181096722823243600446036828203419333929691726463935999644488972088637680299135192335655328002073639750850615954282844223596183489816266783423763711950092883668002083819475606447143511141305393669006345010724592320781267219169593949370661767192119446988688928696039052012148898075398581917546144776695213160890652123078552402670619937920228443478868051686665320066389058799539424995351496344508416251184470145758834609434323191775266192477140901554686928308357571944781800956294851754516214771490295510227545673690690436517243654637450516984756978264824393855312272228601489992558172199654943063348084787210270775462283337407607866897346023989927327719490022414306315829322604933778872802713352654513049783947650909006143119569108539992807950999574752360783984301287471162362389875341867292540807399317348464533950236298915899225161067560795604245935430165524671622277132055745842408555733525043953666352485521292340356047089961444948002306834731599286928450018668763042383377502077141217184409009975223999762725463962387641504612113962021635738841341600310508678783208741655832187286753708329983127460588849290726032279906438735149152445006894190691869513535299450391209267281639062309103149911727388436587629248627798386954844297331619065867835462754317512276686825125023969455939216035038834043480389476981485905269763704127861506559627897311983552890854311760644523591049107772573191438515065576058052160949059554353629696167562704970155118227730225057392629776537693782859506511112837154079936950094286711548423262336029144361526431985087379242160684121154136391172196381070015840887516986531830509820344535245052141161656498986890762824892596591630306146650010026903247806175188027917476817753488440598592285821444249029171180691989714934960988182860188825106453513118841236001279093950072827424080693331932276233431973625165261734965269530577232580216919100240276433303463740817090648146630005006216841817944602575139239806005282642133265472547177914991462296165344677481608822230124968245412450268062905986017976548822389333306602689435363862398341498582845658359330908776833948002593527160257203807551063830481784889077200106958272946983269195516275290335300128436653707184146638233771981769780291320267478822826600413097081920171899575985327677085810501529404979535405318184849531746253337161255400342382998044018349517079919060399321132715763278813983580089520814855112815098529105913032849904679463085217221970193875447303398445944879273973361430751215653271061840528244540546993728715365641169477144297564493248772538316906890395170980266407318081818965894678625518631291305187638130684372270981517434968065804856799652048997788005102855727897876552350096362701692971092849936214956503150498738234856976239873454222179478352594721728762343535003815773806698816595350031616907696942304006931406691322828240322868473858601787066279369694668560204492801125552386645114406030330221183927953216566458906291134181521056326088579231501546877473839416861551717936547704812405565691765277893280924500599616571435152531601612714070645446006648745521363479038194963248789677463274841361462650134999404365719116220292583949393427710347940576763767371100831273644337536052837205345216296477997397552355201689482930044560025018133269472205569170865707404365690054670656054170989773848479005538270784265911001609484818578515681396152294553437167275424517955719432580925427329142112210124861784109280854971886625229139089024687344895782602366132148523629046719126233667906411604958803700695848383557724391301437392024170889079140874343953882494955531106780619678719280572698393083251153573055501344298881728260213108748063861873330826907531896116616257513039391171725712582511850445044505518288934274225024749265121605439552229489574068418685113107067679964176008512157692643888122776424462167296034055714839404493997403660504729557701013640208867975586319626819096512319825058706911392274262273316299441858783244518915682054387624096012157477657354538524656779513315316742589525859102463843669519041783924745600391209179232418689461741245877754172877062346620460616285247740583808254585555850447214332799717648504805319555734608991786789613204719464268564075190268052651273090865687091423164336836146474538327235816608712514351841749956857983419797711316605167848094010945169936874309656185097215946570933500411988392320474930657394407292473033380970547153546814090890234874095693173465541050724470813367979972100277916550162826036662028761962076853720100277799954438187473255012987938115069056367142428360016633632524817383014312960594995508674229946570298249508712471392188727024205208208459884103946991246307290074880561211279863203966205420702959691502479714659486056816000238673449498876199343522602243789740501119852131175095395840858484520294420928924564583144258232112154244709159978587642812084522609408104179461136415455933766933259548607697371448211114399728896644095547689397092358974728661782435483110928164903153648321732661947656416252016606626272996799259172718518100743953120906106409547052643721073559709123618862107560763333091956957789383608182940056099959510475625652254186115493613730757853393922740272906989010435321117324154853993468852719550811072068009559261784056463323148403184905268344021505999575957952999019158302466969396578070587458964251776052413345898935468607478408571720827000709966379164151989353879549293802202063489132021957351957174855169231393533761094655291453573819330067841828598630257719426275418479938988980505954552129741692095158828052624600586701419565181875714165753951969545283544826118459366727452357440600259465904688741767883492266256703517340166481135334906431655102337079082104517098895006832545687098964278200459248040970487368798534813824581976405041680971703682868647534859467871518910009820926826388438196633029324603875593256581858063761940470719541014894787795884060189596666662563666635660558570840312779539829701822996723384931015724751017358343408762783647458194712052111513989841070255529753643149604270908353036808159311563369565689920595842722083522299926261890447405189893737247305396606467990465684744919799886003366475841326961239285406350462368708234008755772020235174752875388519411882351763435859548143388994138972562624494494505098573234297851983862286629815027449068419324891067303802336872756878626723107676867130974545558685648669883966956893103050850835767492863675704906914224917835158245468187330730604812349240512667947201594661571835730034465063811991829126500928929659710048093656307386911858025095626021230140182816473466036819955537322605914829723039658531631113341531317185648315996646990231997431911808172487781075445211870742295631507864793403267852863069501745250342855851419322748578576853810431140288798878374791262014182605870876624056658779488973879005310238211716971814669609598401956203501077896633564105043986009435856739449702949204890568771337592823138083984464155299443350587311681192391632465467860244172590923995185029903888281173115707394936039771590163901169996956492456720346173001677332083007114045913924679497842207516253049304420580780616734536363094528567315482543123738370936045710155812839560403511457367066040534226704461732120152135060778148598619552958422143462725608868871342830341455416539618523905026026943640069325050245844656917380557303869999535880096970349677770671354260556087629720438813972873699846845206943295030917882445230446923778880981615366792685179499243020800856698999815489787356165330898079750115120195527866435654818690394522066760495610543019521531383063957259660024451649099649777058327647366927659889369298538847602274433011047839345221726646423544626776455096265585518610795898018673994047780964630503846687688936092537454846868205194754170940460118122385781855708024500246989886750849815510104387340371445904055465919314447007195219489109140319133377263403164090680222204780427787089169165529370896286493284108236950167633178777079845439389401956760850938819935622344495153839021355798568137327314585960504640440533366343706426408988063628367249755202052512493135232608796152238019515583063292049557635375758236114286938113844953301071580256284688990914944996342904701147569680623376362911223165645107872782803419489751999245620015439113103282276396998353586187676693836397819479027571440693614854636653742059603413655695572013404781816466508667979371602867932683004269115984287977574405106739510988857909316587386296210544175299980667492743959598497574208629383218631110346445204610611078952615086101217638441214986639972231797909569240050357527515710598654095804265804585298746110486189834282016003749630514245386165220803133896552061426501727034471713088067082419224100009495512455346018525332924174084256156951722398981937575561001850163359318204668668929740836504844949866935502637491141803764396717921327503845918597455621811626899218803508431398619436007664895374614130920959573603756786059210013942949311006147130413332464701499676260936469132732198288356269639883814300257820719473353222555446381132576194287853329777189837206957227628363687100872204860195745869759060658645528044408272125269949002320921781099184509517420723463961268822773144331351715591793375096051838752062915562581651588917353920629267536307220231469077225354846295382739289972967184681228526632650938244132853783183161549372414869117640898442785926151652141353038260533744159487519975685571421315781798085828720698061483683151082446195159886045521748090413730852778908084725918788641679104205319615703464483415541750814979608117557013661912930891174437697928318728858223324883537691698760957633077093695846641188866294498428676872014920886513832628728350091326753233288807114443624892239221986073361502685395759619409153933423134102881975240603378017996540175471704055921504400116335086377283166268985962120357922489689775500676924150170051992017642329000548264791530996138811885300742989678504108043192566888552456035319511238068571225536237356385948819557055006535600324197564378654610223698488184270884225458545525191357152659429978360962985194892615355900010368434197847987055927877309261950723393307655944548105407967556551303140837451468381810634608236821751250476158392677138239059388494672814939693930189359667150620490883617400685512714588603970640841654344166591144638389647617288268363809614622876217375941036906389334816153025662210333354604079447757417365231052639194744350491668179059378853384158502317022244157121588035977674697572569685335553178305295652463122045474966506688345321895190738015991229712202635899295230667678881103985903825777397444400677196569650458961855006387407160287776240308433338719910389043666030347435469331948645914709833351154036723528686919023937343300263126303198246405439840086937601889018911435230989214939440844876096367213057465202384796063591026885014498457275498146165679385604217128640501205194542006844243382636055729155356426235645675359660560778365366899358171244710327653289531638898353548296402144641410060025006215959851601633802494393053744936972087291541597346753085827146335010225396197798417733229553435080338443790687141294800786144818008327747089881691096792890263750351780447676571832082823455831306595111945772967888130006519876512305198773198715450923226156845851006257591358796253676412789266389747083975155666133288308782893942881778363895731153495684917098306487476442133335801071563331142711073068334553980935148176570419698490170612439871002559346805688291109426351422481753359201485139356382474333921919838788978991894633791935603647490822387469264374817134274954875624122261357698539140471753398487141330573235211842160466728481734734646358822216387236709807343930263800035222830428060460076862774880994047995149873823512460394997771259022625568739610769518304215549204504550916395890744644290075582313449259668563325202677233226497360558728063053212979097921043195932176771035303675219110991568053124293604452655331551945290562652651417175805395280684117098437139935823964404276392128184262080942430661519415345413468950838300744577173494330130085062087602672914482115187571858816581233887571599340464912463691086163207699712155593919745788123366324693549563233101107973416255706699792665881506011439789681358755421803197454534100149813219565200362687148909592389002919895061976648439945302225210032670392092506312369770621789928935864724504678366986584684483926226766903459846623676954558059329775943651975759825682927979354944271214902048088015906850016836730613232821951289455281431722488747552254649759434553348729209251905448640777092225619355025362691250182935728679288645030248281027065911496475040879121400237575159222899858164737408083751449530806978093184784655044658125530774304311295442507359013723969245243660151604192302364298544964552773623806395401622921527453764104500122317778263296387038907770184558649448610805937957705721368944499986694127860902768875942049210018577846556079711187195871501760090500941957754511366574985974821101308374978604111005068496369007462691739226625700032399562866771351063094492900512678323414282503605421824100589107830764325683399287612544402651614593059839370100542205406734448697339713353219068444350375131622151313786941513570809700479176446803746564442575221735569364723800667016935653277585071290462190192257590527520049020901885354435082845668960274924934549999659360883328573463357212928375035042803189695763733061261744603908169241273055226692488989046164527532656133667002804287328261411346500518577624683649401931955784246518795878176028026730485420480455384421920438485748027314134765610393253377567525822785583423645351340940391643673501351651126934353641910238134020769235248765126636076246137770168735827457332338522716862702871652975041847162549981536019094924889918508989152928508589100330860859331326822553227096559187247526862516188503112492007507584172987199661187399951626481011034155908071266842821531683699791084787173504283740777400060897984096944640655611478097538561337111609746848254981183307835862814841958547956886120716337187315883022052001338535744371996860038373223993175897709753649666478955522398683611185430776929765732996728084147553779882707464635753605726588075606537240832455219297979243259826114466919730554079043732418233402190376213691985843604347643480502855876704006727353257266699285619345963420106117115761837389628064252633252413799607870119126892509137729835240040977157646653405018961523075093843034768844229551414649688219206028046324558594429752315414016610029028229558411652075032472255059947934430735929200116031275032403512014711990917825850511319231027301709871098237559369476076465253248895734358835464350713743544096167827164601893028539289865002574086921073847473716671462209493713672497405805550615259518058163318324036131165060404070474237774077210148179861494330267689521564984376573192509063489475828066018068101618622210526729287639423969131440281929621743706499983865940345074283759748550610145907230940709356102891921567610958452378354679795255374668409749723031603082298280102093035914546617223066460671037661421439979464168882283259470556661405591615729163356851701412331156142965689040390686644356514695748527140533210056485909243130694770777726184087791878859480839902028569278716271013117312532462648001167357639152655469227007536913227318145373606871324588862328763066877178339992870765374322334658137657251121507320433513148854896388802318357545057140259981217140963640185063511810129812326070376231014208997458948189267254444992675491053969947454240048107924051621712004996648858802386891525294081457431435726645848618663931985754541812249414644179855522187677869855601779804307141690110414912503702396467118174967663892532968141489552203690257858823985220425528027821201908220640107931120870372025441807671934409445869310035082254865436099648996240371815661658990056693815010695066175403778263858813233917813069177266350322461941121564474021558830066419666151886534514561809887306252237030348966297031772279607161976630289818271832232756845670011734247368980768204076697555975239726889144900355939967736822636767894338281151803550692816328773827093064629455810232605423406082978714567878281780884899476488644226716345183522535660586585830202052391167964475135605057871893379001168815055837267416683418080682776638940592725289530698103341104456618464488159182749945872402982328555796679884807545326430837231572821384471171695826784132985195548657995876717854296492838380104954220563987272818508828806205654014828417339735957181610385201747709889049586433576596582090177014111215345689619835442523601587264104082488253465583123907207048060553366439046399430398357970930509462848585492604269570319333137229489497874093242110546410135130603397392491621610546075896067123488852335697458367049163936102000337577687843733131014819106970979346605405858198782720200895919578726270972825827795643522873459162378945627394703039574202059497922506036066248420086790685498866974686175798781958010140862883442337053807624884621843587217113524490989486741858384283008016440639195239359215438647600491376473648872491676378200771852382091770733466821799741781084372411245504490273319660129401374364706946898255727261908083521003028856254410809996239079422219063152509794462970223687849858126063592682996640344468477231969421983786957522942010762909174351851649656624419168304713074130739004647920297456990243371904890721273083805365696659392151398851258127271179610399566887073204929042087295296674042184219323876349225690724430204754508950678058339410449581987570984982467655977890348014330019979743426804752413359578149749627591134902488517287402675962325701270084976653447659199314449608723260103213035408950322453993047239354589872110193474486687852590160835895763909610947396967785660126705868008749063494235431257484849598325251270111985902095075100838579453370468482754411871589531961452495415793168788816674213533817046409594485053025215151621672963532547593123235044772958500470773814143144865586846030476505341259853427664788607923459644797667093189672252179885350844160219424427174209708009950129373699290421860553339680397849283622551013442971569252798482719605191543619105481988080481957161473570525822247874030926511074564259732338882501706960684819430409378842422570129346840696797724718466887196461926937661286620409694795594438800962888592234876350953767622769734673795894042471952002426615743997666845873625415270987082420505159997977957796272778334103254319742951445731577987904322162819780021286509958671912464685729150453761767570629536390836403298373147860838356309431545961992256615721004758272427898792856083108083964492694926205258650738943791796890756910493123631414541102449333556669258842714242648544163352308967355428012016967471898342944235812733741679547159326205584309571756246230212864582167565164418709268304992259454046560072763337844199101748718882615990064426491637878903955676893783111095497190881449266692995366839768158785388179844942220683655199622591277840646326931154221195417951473698114085458804132750218728619946559688000064524644420301074813178624528258064071177216310002451154633771579049587555117845581785085637141313020322328249739030654788449190415524489945358767847332772261073319370903768757383711213107501942317374554885747211095384632234071641684618168626611609803436763120917324919212485606026001500734364509591614918421528138793408279672309799199076972669348986851582391797259596634387071210174765714854878864768850300349407782402943653856555722867747124868452593509332165344377054333623168556987000321778490297107180232037856596258520890800753678800412690876996638026911437482763912969505517287017845715154712278427942982915626541013112299188060781439067548336351363208547098774046377960504722216595304850065296797672673039238316130027930889932039007867956513739218541300988023427580938708813374557541195607516250009027931097419116728829480600060866663510211431171112875026849086358336742264075258202313928264595379346455496065907524167448727524312509925142531040855683894756334121015569028367230527893600045595119347062934915083833580543419373764894804310612677499826402658521984366978952801635138706851144847071742041477927531276745220277054788711046134513855139952471673500143612270124572145602233949014259203614320055566513354589863844933413092775823964796467007737957574500378852925377973235686135905422231686449721490333753389337242316750589518924959480815582785477357708183134730099622011981683960640848035663329598198016105251115943533318062584333914146467289539327509910578404651619061205191636750157247588579966043409197796688480735680675113999668427537729681259329933463580411071155168997709656437221739779006837806697977212449602472576868039830637240437667662423781590875878647521896670785873977434056805791702432511061733195416352510274983684368247601397829681630569952143224730634960633331400760679719563969473271597733063287305479955209231945103677187949712258188626104212272969821574766445971023184534977697397844605720128559081211644615177043658513072386619226779160443824879186703563864145169306273519526256437523604581862803901470003015072892925266653643980293408022845769811408088658821755429344438791212724461372081885298168305586552340166693577667720127850637759206650557006154717189864176223140405957661299761622090545119520085211555723969905515327351106687733160099434003817418931476576143817546099055716546372139196985588171227875154210470671692427391108284251731750596063239603883374061460124022968329107849066057866435376868085745974051126750048927564594772112456930130120279683210784030583862629478407674687663412786416570978582134299533921672189913521676032677820311243586605744692471728009294864435880522749454747805725863140953500061126426634877199347221875304127034058942921851254395076605714417175467287955853719724489985389621666505022156413350281759735400769398016003409043395057705204784887856780456806425732852749117739100132184726410981294842449397489653867769032569006795592566001066598294976671237433881239611787954042605127277679846487983742897522138063637567203398080728961727815941594418283252210330890396120884315691348271518609105005191403310487875520587022246242833387814683860322647006504591193021827210427005487789926898282366374185927559627307682719036762369141440460487761243214800856137003899131280561265432738046232018395252537574710880412772937878545131921776473952125170116463419809950478053487156098966991769626094258706291981407304069410480465696935926316593524336784353072738948060702976429943195955179375496782387929452380250676220070002290340423229237131922854987751101985868517744923407423892852807569651939530525126733913710771661598484555514494944782825330711991028299484517813951963754852427079164242272267040902600666683908418239245460724464351320285197200819628859305845081392615014934950262618518904989601714373493342059076389274060706401979216079971952071031058094149486754154690957139360696246978924608367097683708334525994684694033873166263362223169992727930025250354146617548713002237271823090391062393246028015272260623444713695490904272506418439855269798781555242691836425810146979006598439143439160890510461350617878619651072565323347573529294532491881580392848289934042818171154486694081313308526603489350444822004172890075476181549300215863482729984688562399475514550508315056389259378698299019925828819908555076443744497265681037870061281110434188784705539885307542998660048159322761508330047594103477702424952746846377796007315514399373012468652049396715580731315186857878891183615507061718505525361248992853393026146254046403822307190525942263584453834832299480897616885665138964349394055208823399565590969479446006734108176851820803069086908403281718016463609766781654890980463738984512618220157089176328497920417962283070144691665982876389840767997769705166730090278656359716221147690678545453896119034722474520844442915188892057828217035951166604104137457932583087929543657067062110437209933350000090724978445826021962239900048963441696877602097492280813118451534706885403208426789825704747996113560327179772512434652495411520424516715463006911154906155224449428425708063257326722539932767623098872011798545032752911431124929442868100370534181832748419721432467231459559214420981410635375084605285202914089409823709372791826966620012097649092508693717313523407730790515465368962697496744602323718005770695670369439691955795580815131608788173635278281206369827297001304222252503538955280283416213618860794667243627440645024094833581036137535616520778433543862511317102302298802937879158944484179253200110772472289274168641856516954565324124335353073088580816752965663182493920117896743006775547242074985348111125577962201253257571251214777879863553564837674076245365027660505491867638423924505692056889232884355566296834549231140529158951387809083806804973850070805235127129606515476946291524375329796204385786172183499875612570215899583624729008274056054669779862352106897503576011122831398512912454779922193281265597978420455053015679040518683894668090470663958478625364620325986369735215967148173208444937993726185738583019274928770144928753370309375036594837333385801491244540839923230334461704141089169176883816463301599381537553184547832353569922004734949790110487670747227815427815143992158614434826831815173573483506922804221339471468238149466850987046345231595405926068672167847495515918153606195990292536794174631552245366218049118795018196752375385507853837505098708960214158111843383886692375864877469703058117852073670911942740060201612566089449860117362111255162858427256965095981008195099750261482028599691026742109595446200980975864721247920363407701791885822612186765530929730665471993057469054459827410464139988697096374733025566187569078793810031209821689495388571120990760899766162606073520685930554466813291218099396840974790440348357368869458872805448092886716957627643729826307254047515640756056964478177439581380503068055176890296642143314402119893859988053128498342950678624795279030181485693253487964868753326955401966149944428767351475060113744373081099568902747679833445749942893397106522838515812410653162211009205560850999171723071848871190344955366274104718745646395042654991404345999004413653013148927494882278913282100261499140854518648541771688155437971282609681219895182525782997817166956062072022617894660720013776837469617885285515153482714940369155565693506876038073227273605609513667642145545342805989234601677890982019262735458453122655061389932207804494929478988414828369121246118357020611053691139842464045216611337924368583133194042752065760704319187935426589548051706905574423383767138151856310133923890723657355027742899103643482380940761242313970564149205680844274499663027147002303338124631000684122804698649755978147619313908633713984074484414831279710250172077474245554758867710410829508541711394569009383665205809188898572333384991086195465312009250577629848240639660898014776917034518530102754306043804297031517606796499416591101162390282265238876720921001423007527038403676178315706876369556123292908056115962056859921287790891244604510894301403337011958291736353209497917121076690788939403060137991510313720405086221461118620154787993262474913646057220316993974933429647114382691056708239476495258105178151465045931613807106150337564177534796353469458972389944580448624627729015755010901544399229950717944868800885716885556124724321831575301972822394611625842313982249817820426622956854403380237585506958172356492883922424632343450163947030376017912983745695485814789825895185902425459177269593438634641222336630159761196424808540011160728172352258038579942872156202974912704832404271827775536117366612597754046176928842808044694832221985550880172890165730658043612279862056187004158147008128573177117356205132066491342921619083594409542933594112714404087817232186731219203947208792424923971176578306341783441929761628610246587673996922010695027139050372794553473750024375509030457162539259987792649549855804333656961336636402273863642030039364177119547874404864093023530681962400095937385373729209714950346783435464194720313443879421437621802086721353179380331498048834499897465049587068835276363824890949092712255003470332338584550064494324191471608707327997130046588940276742748596779056984809984674053761608150501019839546711780682183539683024874299317229955779370107323052352895070384414889164847043078489797707985285460352834933582994859111929888871093799686441883948121941142637199257304690147394046182035705371999133739124698759246929390677812300250966601061069757644762019839293798612491630603457079836072340518308770264524373791455798559157925063915920567063779000498273965906272702101249050670286138499971505182369012719483027547209629495253546381338244563618355669017275487697473783924139843073185667106548820404400555949469094403849258921543694433510229925073455631749468305318183881397713231812050852154910092157017461618994191974646036582166978043990167551814196514758051551461829526942747990078103671907369865225129778537906208672996771467326971531562634641585753700317250814748729817314160966173728551960575526840150556943069576300384271744098613906631113823766007304898483145428149473040871500145761176991176533829594668504307435325887134276122615199682747986471747456312868133974120367873292468426576757909485667598367885474428043375816484556417161515292040018039290814769776496513303014973797910668885778854020602590557258118104560684604229391478188659351249949097513166639009691515373292455783931972680237361959303913926201905248204439538815125666197704981807036902635230515291501575875542255325599254318090387716316972610889745480261725048832131678131361086969948746542321152965836090005910259201434107201765753974452769134936790406340740089673428697068033559646583016844944192583230466748120492973433159901091195264156339828278384029852199037138132012200806694281385392119825324243731358918363375758339821172781147708112520725528946913038251919012967049632097313199806704295124484448654054016950967040075703428312781889310160108732270992395318384469443657250760931981735279660375146298170049530904013665725819735214800246343615917417977288113968083790655946702637926514755852467792976073710562805919857735229092495588694595284408995717320029879019978971631460528243477927134345074275690877506286151933944794767749310991550679864813208624642771657435998837815540690562825463248929079093402174483889096459417506481354025608164041911045722284568962023817178468774813083813652039403087452063923924477970340165002928311600632217512347799062280890923045213328101118258899630370870794536449929115669456904790029657928487668863503502729668267483408976025476562419005151247603385031887111697811895251403412288746509968882913438750146548653048618384774075942549599004130089368466411211627251447612641591418677181647528777121497692672839178662209898783117529547226229841727676901241152139278729725420036438455238669810695441480450129085120331496542104437084564653265176389803056509184874647028686185723303921937470021062523286999287123204404884248298621170793665353714666260400298121202939492185975414963703654812208160005203206883958351115413391865992051919302859214464847425022384041654672306187359278614253586649595348116202821741850922621834666411626172998650831621432809301726790921524015431565837075242995657421312463062965830951695619545196515195452192852849069488042036698000443360094201893831398455516101634618197823494586447094733513516538338294769377550211514206876378645448573039862098961633069326054554769812380244219602189648012324321607101998950068209266221997405014427752200697424871166762613135321962018000572815660486605149246682960544995379601769140638223616651720008973649623323791125218034763216306771234622539214725663642172562085118581950865355583387556295658945295734704178998044487067133226938285636215746845484691539188196814905450199038665228003859340228103103413173835278312430777453150168757383573124320254500278000163063903675115502614229380878480162225152201189169002299643324421425982289330528156344757024223026470216745081507443073677783652086043851791879426709471157927241598164219389893120220819110445614742338655896519646827210519682621588478436411969964964323850302940039522680877799238871905152445555976137529650815485338001443974322074032590612433709065762059271306033767534150676146760121512582645095955329895919193660633237730454145242849520489185902416211000939484192453196492429968927292964667512405355970547666926493808342928128942974554403645490298149036428163843243050158074032192724955635330491415988074689539044998669504289522267807353112373417862254457618698440608563061358045105622056838768876194243355632727443549657192445657056489953035572215563693172909640574721868946871997529496382251022610636851396108967370976846159635735116133452149895475008118099551192455374724142895120961941847266036477960752825326289362243840525382582505219967347118968574487652421667405737328524571176052430033935381964628395828641958690853645267036095989269033170648179349286164488233427946324841341859405720039602802830545138773757231783956199910691262546999967407814520932444061400794407104056134299413900537497357962622451548152905444851472818422509758141188910294052185103664332261793778823302560935747612590522770902711212360598768796121751612635674061230287808665743124563915644889012675752491522989914235567592726316675919781061680945634741424643651142555931218663490583250239620272322458624796336430572024357921430734638432729349452102735143790367471021714093897345796548300139877384589832667472045295758759092522825234127902772711598348743021823239970072876574762857601250762971465547919546885572096671013467443754187790869853910066681488403274348959505322835265667905945789711558857398628807944780568291843663369031664083918759702728364073746037424741141802776663189498590690454992578534266817131177811617234978587534553460623241261892030261351207327046149802394112286625165162499886396519936287213919825546593675872047628930947540473106173233021030783861510245206143160735539319786780747981049163287978090955842865801235806838092910560684177844316122714106198780903894246023881988602643849473525161541293467078152240110361909199858458636021228135011182251750303192640076436759711514302805103219009229438119094599668098415596187206881078432617433014117769431173521896463433969529012063332794371134334765163161536154431800833392980968709467054835329689333455746039277018613093150181043430271604597857778510140853220145924065435396283945825649068963242044493327712178139719649990815320945488780757804975387882623812918245450953736939492857905609256496517166576322158044440937680854833585424135119302991991910698718698100036673873358441676273690716709203902166934805173057929915317546836140123109033692889531937975956136164384430637433802499764658791701152101317752151602397188648401415529715099492785510786363048179530082738894899566948750654513147975190900864815247017576385486824500805310410880530682683133669104388013710293315412164854546220029180795860124655976808417724750321279659907911595205659905809414984240680043083775406006929186320356141237664815683164104694346556481727171819211307566120042098183333354833667101684900319230967772797148735767454647287110508493099980508720700748546110766092194938714011049661709420532272393712010041966077592514113828291648368593289425327303665556369917239222121602380253358066304062803467089056101465108863782115221448639424718154543582088532772929733286053917624894050868262678983051403110403256115326806838303016237191747722472024995608285597780133206462253576966227226960447777265862335937044473503459454829722937688114111220207404868047090184960410558728950021623535682200838062929746320362072629037798775656238889097941475467457883198576992417994444066932916962448969174658158348302524983428411625078809346404360868251516617713691641915932137176474712835990340045587381693257126503742816810591013734605780910031657022113800668544184173263455334083693115349191499000006659094962487622930647800584163099700651610073759021535246992234583547652251966774514707949490841169171183708350021100358538514529182594569945603428559996393350340355860684722473427598006946031080451967608715599997865461640082480920421427246742006457458765565730660445187444883936086004601766625342852323794298474333211155709208957183436286092225465229501283551398542982360077449224720721122981881045935165311160881982496885567436343913241283087678825183068521859330507694420620875315761772302424158757891034779731089034007002300432174286631184416292211939306173489990417999309715118698668124200441565982270783907438868084519704116374005548526246968857097657325251669981990928115980614414970011715170147348603714697941031611502786408821689445385799059310179497479091150698427453940240641305509236900302141664958156478839178779162793320614493597413010202774632524925676584467521057458007789832858115112153564008925692735711391593380957160248452064810834323228858534757784872926445110903985008025097872810561337766051925225514725002453630243564734587822119096404515194993877691619300603789100367286822727084404562869230764383169704052949147897700895715564624496259326094327307653796356940259150860348079799878234138643156828768715074015422778344078698192796422798374400903357064461688462216779375030060170496664228525355776449841609706806466227612183560195432452294395414295331775495549580591283641465142367741896527533412578340832273415729412156216586728049088383499450980156689130986137229223220318115201336378242579498649860662258480448186262372816879762861420104955799825768702054813976565922557922863827815033549614252692088811782656236619691871208649226981082647222725269924267490846935943306646989441878958479562734590869692787016917396777699684876719272106312165677391844413621472355237919682056284153344946760286937347516408357236769147233582568411821499942596807598076324374668228890398530258909172087130238988692480566786623206709924833203084917229471074095554819939163205518406382027592473040115031900763088434825210420389477305566279580179918992684162344749474599951533387287728000155330734045457768720038815019465648870028061648656084338533809336799318704372593995821437478528444077940646340313542670296314082770472689624217539993506774477436878217389283027353273996254577726114453610809517019976919651083778460453707857921594170089551210649991474342045478707688997276637873363347269148842519906970061661113965485745594894440226730232048052307055900633612412314739234039532640191371580102758802616232518278215155942611679577809309394489442181413064141797450942091058046223162376784508309654895750807201262111900920195850792453705320792324037762581529990857112765273517966009169526882723804857571978616178968038515009320553205248794063710377560771766192402857044524563138446475318139606780607523160780042289985492676877112225533720434651523415683836182889986506743602867476406533566204154225512991408594509753749174223998046064760421622748122652731265288678899696911927075910841789862786759700523465922428871353729054712496481842218119781737509756008263477020553371676878206336534909743152760541890958693631453142988714622882983815277685014995809191857819003929496256969661336932201563218773426543861521347584892356279702333758793285342400382457750123162698420072154022797296429780948953968342593620174857139849369027446362513085944952761629265112759041632544520781279017222515980786765319272998835452661979318542522114855380698448700668823567657605483348186540787156038349514149710765501278501438536511816248510707015534437606503343444447046802357695733994576239440054780136178764896960399936568746807732962708881783436856328778078019822908276691115686348788655252829929328569183680995807646263921911492527408976671221394926601599322775952654653004204804283657459028737012738194943412038402015783334907778931645425760807650449818351997165171814306876202622462255904339243455521123322760495921276885689937341149541733805389154548824186774034486515114165857420198128506968254400489024520536876912612739781011160840745801758784861883357628005679387438038153330897571291007139179323553480616841827510781780442118071557108363379747876577307062905893897217865145818591527906817145286327651671299679310023641071099701342576409598557281584718975423444970837190236780395677118514431949594550222225910309281943234095860176356925962027258273359459678841399190180414509376244175123201491387966713199866801602071691587066385320565080522601093016694942302843123390770267310214196005005994011330961599099816965207638015977425752065776762568334031752429375379602073756501090851688718387803452091567483310492654021029214915981119541879909498089567177317079288731429726792157229377808821653652766784500570218955272237076346164054106547610405215709441106179887092065326211139157966592792652202103333862006191509563581952958611470650595691978791412641822469000622491168832049880006804132460774913262208839240114043953652651632801338458235818952271970794335683316139917718494060072408688976874558494717763010401375477638535646906397854795936930967171035692379099138580689467270060073922604701029091751112808925493951048698901365267479085838482991436679903260134960392821867281730993986584017715797708301722668969830745970199049911238273208208442041500279187542654726659715540024670634531438645819305468838639290767312999169692757110900212152247228384033890486327210523673092633782848303101392124950739736583894360477853479250718927388360844722611843095865191271711851304643471553005434602075472020321391114794112669760073842005585159796556328861497589988893915692150254615347269125405712024281941813427664624946797430683273081437652596582583085566677572259127357652027940003219817365549868588091420370716619664882763274435055108169185682926679630083891730099780289307349477758566050161187072142141144104610730483847811037073713871500483743203567582401083101401164237616768043290436125655784854189085302954528632510349842735507195672797785448183935706478795079872453057230874992510748512746528567711677090469630247622474969728303847790769998987483150552787540976096447954271808947535766032684055546275615888601492002086103398641706078838098565440835423038322912692241691117758551348958259205025010094347317595035659412161459612954157605815320044121770298752254074741413695058555566131920208227625776725816582547234928284864337332408754598879326223351639500016237246607640333802013310039782185713462104832192630239602523191430381763443453393738003204451034757423671761632810007207160775536926489912693434493280516425129727489891071355345627890222137274050082608594273522302231791610104635240542762190688526269252568490394760777206169099775440335093020582691592094474968071975819649452805051923296516692873021323049688746898175912760996875538571546727864733396390514257544945420711228690807319190606948653087674713039040449889166039671204396312229083988570572171494883183035240167428885906572444180973230085546731986833931960474237357657525581220930613091969016701260021844501949308981717723980090576000902736719795670998849012186334457543208771483410987876678233828374594153717743762939971719243526780334706182382937983405050433184831592889211284789608739632689740907426986860823433378130013808933278771924676345685104314159719404394128878919623881075125442282354923165743330895512153618452660962917786477207242690245063259054974758907820841780063212209543175537206051241688467836750786223268891816693558841300734012939675587209156886717394322523187844511231519977983948481336750091172370245107050013917883682081265447554046288103931739921529874128549658322698759374892914651641936665286130709563933981421300128723578285463188096162881709827141010816551083676194858211858144299308459565805526480817829162081720243531405830661697160159565152619249328608329273279585236921474473550442598296136793089917115833765096531408463579233636838907074444513643739387127558344332605912601837877823544812161304910386999289967868312854269740979417839654706503193860908626390872730919450672253294364693590072432146200612577536665566893368593935626907417785793074200385813148255948500616732112544918266282542943952756188816281174713177601253938100131896550336507414810698390322086200062191402476169656351440111744443456827851766807743138016054336991136483809521191996170536808316732802973872105176246035244776681755081743457390497206133603560928381522568745136239781825623741508211126490584668402808881127186938837645297166510959772791481179420267133431376981947894324038300245763625670855951792729903866633540115818791539768607001798384986940672002469297758186246371174494266671320330641254726417763394128303292787062797103815474662825044321791353258283944654916050492650063939355935611078726823259891146734678926562656347751712134455980274236664341995463905465385497360343481809375440380913975768126604227097763214036004630693497243404308054386242279382802605658592033676351085771887784909881011287185829460359569732937162209636807754360386715309118304616526565972844927604871600389239491525038858519047465216005015690061620652782824193485440364581468540507002364320200941551994728529446065814605712310466377773468808202398070498494221876567474799175249175046569928153469148745297389327836972419965590691379014527891166978694417535011311364306597375072663828566407129817426778356066792963105000132970124567370449607560111385383569147048052681505721459318837937341811149566444795148818742162461071476538419540153400903048771817871347909681471931688991771420403621625073795971242340888688406199894949540412298225907471078955601522431577372238537677593341204736035998765899133502859514082853130169478147152694181912465352988552680903269504781684093430775861635665622977191627928701448056692851416587736146660896369403760176149792835437698229890848579580799441048715966714269263215317604450098839053389428933509145764876792312406066118700210214759522036580607116466362047588810854601640584495046796360046815314280865715483477639177723842839837583393675431495337399274283436776110431773986388263754940551602072136685504271035501571106924248819555669293857055416204382327766257604969260464778071430660988218198655294939345697523406108296842767249880629133692432264026260718923558850721691175291692857253652395295506598689107653027219868142690572300980311254325147278685462447663811389304130031355926496779372510326644670559173823795745720250504681170033017854531645713233182739347431106039916271258564684861127652888058584806174819465288461784071228906187408084429959278067126677385851711089575114023341966038324981599522978936070624323502767807006389671698477541291357608546970358546944699006204094756575199992055776119471383609109404234196285879031039601672390256037047525924494068729515607144150905206930871335200808279080984878267385544672669435798593493482567417302853528702621875218610787595163180380953697254676011673784325140890588928528249181789450795973533015522179214429381333716878271808152651757660888482467441413323888962866740687101499146768450504758872800640822184938522627940728809059896140413436301489391778651962840746157750718790974719708250460003002474399255934735964988443064218090667879654102580689590462674144480804345830708125410415306617725974192931516601113989908111359532744640437677912758558810103211188618970083106584436221660380732179484258290934723021742925727905759395641957195297269763044539253211100762895552697604656256449713288830066064687140021026303622227538889444908476423377186506023405931977764704893716799995385030983107707043165986454568627218645554889857021460050911002673725217199855339487830943337806732427859561108295917408693027352410890310335695822302853692436152976325897666682557985519755384293408163285735844446065321900607671722616869281695818636927380753436171211557873026426339388851970999777194446549920985494716598899391701715044855251692948923459983800946504674646266257532977057772800197200499290335281715310762502458094553796074932918130698177065649197885522233407115989924936285289178470669778131469204597541200137719754967300866534991397895778594599281095973968245359418020581086561073388774630717590728626294744159255242289684310167477940759314976293288177319195089044804740137401644641520573845212583243893212459873870586126207086868580355150935119087940067164298024325258205103306067129440311803185265755907278054948173284347508140286380083681587555177476250741147124986467811991006250608973649446970395119912073844067513939427513331821426998022512919174600278596749926419011119936123511186158274914898731109810676648917913625260947914023076114918182237407187273905111787535919486309121586666212421891342541660598519525035343170924785459407346788753239208524287727318504288821544591672499466770386200239121771265448758024565251942772493672312441004503494595728855429034241821658758877365267652101132127005603495140441055535799823984742827798151852192241948590099587741552131604009852185380121276153530148155987996893106293634105023880859719157913223439260310701002324496902392669986692342215078028539376104774849528328715905202464499236681722288339615261327885444417056218008021368471711490960133463620164592572531369545365891542457171685489827269881442180228064289748622330611145204505917072249045647093025368963140777557252801543242487427923266644767557007821993699589430074793018931605459234901359199365284097238597745620814085215549811766667871759839267836144950973971262275861587582964796678621332486386598303399206336020887441236175468265476891020713965632039156253502360385688767303990910934113205696176889835058929205324426227535865720720455293249363394337500161505036607483275031413927325127263016977981445502290884788090161574311991326216266896215519435904538183517530615685267378509141578637201584927156905167354201090176899894155890776230918506470447984006427808144230831571893958509276014180588437614304244350170589465047956772768728701509690471062505619918882318543283927059703241136217541707669296809804973202175713120543976812712707546446795796499216783479955470714774261694562086771375168553886876223448148617768658620148547291899680008226980311063875736312160365749541182862354345071197536212165817089014265971935740691085773345152055034763084052786482597391318343667764638345591421170086887885100653013134695332371043570580261471235137226183117354640743175100136715646605088801219082277064058242037843929601422027130381796558269281063555545055571524227648183004625982352853212581034276278776087096774284176067749229444280126069624051972404383859401047461970470319889130718655776198597562441884096504959283666051358158016300136234573687806592102854461078310101482198744822813486306892486466172895284930692521177024488538502877396298091936683096921169861183485006514205324235159697190366166427682635605913927982799404910878309519094397236523114454222123954835885561508171238792431514413272161482407467481472014776989158179663471417929405391457637087192422967417101041519095536855557619738211135541639156594791701723376048445215011477947768223969565361995329345300193913646507523394973295815921165568319204341752000217016969948034123269261473994784276447458605072081536014220295962657527874038225941183212992214625601613226514862840109287138291621075795128066593029163346912254299857714361332703970162580959797336622010673267977701815869516901983598606547022956460114593191180017656040080864529706455066296850779308328814241914208229790862385195813276197117816179712217214894297484785904601647726550493608511454387627146526025743435484236768650553095439651678429630689365071932554263404630926022603124656448788898983966674737322518944602011524911553273297337027700589415061036909790166216170395643088864640770868212773247999569867126896636008251217959603474421231961887253527349983110133918320818194704352878863194536795324212305008538370590778583049688625701428869364116875554257032777697461078451850249195163084389678944511517775163934293854115744486202601493551596572511532880949103797602640262684259863712928826098189799078446115491023505971814225024427962304992060044444965406228402365228625101701028609215684310031585807608136722247826360725644045523634272651966878525064267078676357710983037919815718797605310580322853749635756857951978740979975504509419573438044308155710089278635858257035211807192445667932238769486162445492659736796664119084332576318953991307973988612310081356327729124270277222766675213526225657787627374996287218769996678694142502790204660223525101780936405461518714657174851945085837648299610105484174542072318741034649251201392298300823756162005181944706201140558713869407974443101229192610077134456436351009732183853284094386827816381285672744226041669510568241265653351910920900727243285203947456357580358984656060212403445420654940012623511960360537711249063577803605838340441411075937109970392877896943191494920619415333803832559343395152989014735784871033683706282022297295596819571798848368666146833725786457103551541089412155562023442251126961896620009138660954529557517400658561944761726916127917203157639169263013196906151846533163350728745109267252837383351077899862222056563732260567804637352510518161753276228139333874580472380138046698503121915262162357476738136337096757968500518521015770351997131090786129261246728877426989452769878225107753438766555376957859461724612853968570537980292149518288440451511507410597433818591003650222299835628601032424010147418828751439566077542398571287574437320801899469612004189976096728957857476848608114622734187201169873314145454277129114451337121666288053333492805607511674467829942875110891473039514997009551886964970846814242660493215664470089301872489484375894198586480335407415821191780724936501861695643047397515893883794410205130993639044498855666953709394178940363187084379517161994889426557946669507067661052359546381254818432280390479648172552942694685939942117676846736815181727691065153048919589506931389373050787852842211573729486760219569687236930213034982263054336119811256652791816675566882353399592992381158256533889425823475461710559150700253786459985496603605777113768820181208046491800931612983013697784834287302365949872187829029443866171406718981306815362277745531864575534062489071086812557749140881780174224248754063162861957823611447530103415811085949071104549766956694120642287123999192144154797774652832004081501753023339208794095558752689086680683924916924935057680549954563850279366260199593767830139778621985503470529604139420564913511983818947943506839409604180661272768493038671244263678389395335857780985078117818928808794251864362566885370320827951944220146176401499595749787530019417327546886829929629840070865824156862748291414189655892123799222249370895888416689058456474481906202158869405818088409942071581662931270740461551444477851648131494152432875236752000028480799891917265607126951248260036618222444498735850614204971169413960922470219231002771529805750189228469907269623797801502411190683647611645335236346751653520587125070413257076995246950708747345625439048106363134441282064480937472202908947324257497343772116378403687854022673920473805084626985250988191613230018379529844991439432264615961572307674032858437912851130580017266234762482650219217009895784371532179885677148521315426631844110353867721266408689439657044591950490915738497807523013994005464559847645250206994764234869234589966912473097538251113513337950461359875854821371153913135413879148666609701515107116390551187752372449534008645066317751680105013870685602075644925518991220962136837968427475061844838609378566707629502428500864277943312146495303180090662436231903807298918912222236068245122821991348383064329269154723830756708127342282640904857065737573794381432667857323170765900627612270060829159102998960783199563168810921061775029417720387404408851278912528876145343233305250502296665056725324317972570249136149379560673197487446400420490015349068967903401302071969095683207269267367317604869112798187461777421203496563644127500908240623421542122867721360584590361456389934451338020338823367897777084988247824468202855915552021671183022085462963897562540872419215778093151134391403996343705437521188249659790982927856250204433819340663466527330358887474099288307802680405552130245371512134040574965893590980060088318274434131705651107430101432147073768127434198733389898883846052619349056526820448651898750065771359416581812647540615750582581421899063137217472927690004007300300626786043293113574278900964364975326640024196093129209297926622391950197440807808954449673525213149687080780398420417742360582589680648254911998658309566967833599610841577267830957557099763978477530953577975567098556057518399199944425247887674778953452402857392088355078885674437220591235963885770903102965170199887375350375829564677483253711546021527136117871697122300867491387820096961233190413643405090382556317565976534688321709405819076812843644727473050012548168982235453953425291207105978561324089293562793280977720425771958649839591671689454764968442936395763143626084277525580741758263139665741130251865486186757852302112819095722856245494658555808832328356312501549277141149436279057222008665701644528721864438648329852590977296711731817495186678160870814081331161560866201260821104190504320341313891955013549322615700586352586479928334584646054056739889266142412571564714748368159903447581691467435358252152776348379656055008565426459001674296210046217282044059917714032087660964738383216404834443539606512006835784159955367028794190384299173892494859039104025783904679096460221355539114245812535611613460426649134363593449350595121914021433482935438658651420348250418867226970126891074833759307964850097393353019770101207274538573777907608883182368301819008218419265685466391439368562135171684654381701729234252481945147859153139549643435211664791416873483864968677658827483692815831083052905769272093189738811719657602886279835061730768398066322154755089022742138392664793252582693612179850851090082686740047136950226754724772611604385208148221803018531935582728420274018156127512328008219082837488183669701910701104448321261351834235130158745767635587235254023931517829168933692577479438352304392760598350010085800087955834246896076336179536945405576999359537743206149029592192673264514286883435711931062912335005760894972410635693953894145502261039200366850140579222457396513052509565668894932861285750768335530899106401162779176333240219094408304961791341093049707612263129643847116233803559192770105407649971432107928816296207662371644915614124317248858369052692104019988137729048380653400286594965117081295248074625293579609130220057277582530820852595175450591062264527437321260026577879628509439842575538920458331224917170864644701156967275257199932365998121177884785630651599737478607745418811416790836613730465518361745962978814843483825631430614648610717663965953336814522508475227766334559943387650028890684171088246541712195983480827455177562933804112818357307036100346944764743056122731042889386720944193632834559865155323959604032651702720048296223673615422467694843771070962031671397752923994434970111316519871165713748704707729639965799926448245734631543188132344329822331890509128663545411888916205032249756672553020359188199347804037602980532280845479108509286928773524526814258422738575080671694880039773499800504594806980541006115252641010804509184003242029883313098227193811167389599726265226644708464798737719409154299543917924159323219908826048530961110978105294172978495449060193092217811223698468545640395908237923614323414635182635473088500863434445805440702425842057303663302781134360124123369432497691798160027436941975730360537462470187858793907283185911659047032491865170894717856442966612675808555234464506884689981403442853779209383554396830135452585596621187873850592236138607893915264323141728784105128454645258187580525145353278113074787083353890819736797909123698787522032720629403366820355235808814302783202327570750884967583757737053404197243100107134028301792857789677053442084854389322170718097846223910656083301184250632207874894757044476376013242802249971934495625573957849455129654439032141142150002804785754942953203247813622743309227874573947716576335019604753943252024194486721876657130906888974108013518492821119401152155683690270968814985000407747360537359540906967776626661343840417873005293232865714700108954461157441264720521277814421859490460407375785920594666724839736094496129357987170704587754461185001605758079373636111813852246839641220046721093254077269242301622867195263019495707940011961834453137543230753757700570531577177127866696465089448888723301323609537526055941659348047986507230275143046491538061512512816460856935499905927045189217637496215260005325793634788199361434396301099114551047989475729059696222594733132189107797402435015453020397556591402266585286325117560946289464427322343730506203096852010237832992575882486120173853319421538124648559376291879940053453708785394128917725319743960583185920588864950896782074490420379870331428154701928956810038297593971327353197129092179210940396750907672492377399499785987174619065461845361453335866721510041245652875097332931117748800723219665706281835897436759895969280004681246873898054451322226152535529422095522824370216395125665629259409958236501313142007174356346390210202730123572198251083805667651923644892801413389388882763013005887961771627774867569831798824211327160444910748311612290911925857633549702186656248321839756116984912144426201594277299556965501514607376069315777126845556918267432860463812401423645809443560377167878241004533035751912344001214644668062516305507636189386151938230867318670239493352027459727887734088330009565345905443584520693915689824809730603332074689747074150964206021818001637576350889393767855953141515949194372549306327972742576478823874253166296072311246993708178936018008898248017011595021736231675596074077266995311717631648375870385743935577241122408227325963437410265079803805491979428122888892713607375750990627426649266872076610060623814767556153665266234123562059792108761246063375763143030060891737578447507108853350085810024938315989320119451323656946658830491691544541529015792339182524059787852345914317777188969241394356599431497873386692840099453079176941238633149548357530359745587525932611227596886833790303825001850165231235824576917758665175566967071261770359805856970243676201552021017060746826269857601239027475483198527107165923679655480180292259058560817933217778988285378865621108467897932429017828447332740502881962587861494259935453688646624770775010758176098236958079524323808475878869854626469846845831111513652419959070063854396974826884795559105082385305055908942434441112354228802114568152774348538572211655643892713732040967831566987537312033858596614728039264012470863267432935890933479068505807763925850731801494586831757666317949835667919351513937548084978701722268190547383592145186402900243142726357987652812784468663414852888532254865867647223993044987289997420173680500335774137111907385455234077558084644130659516765819049735952984228132541666310977308442470924712830907382279747440902332788517063114567827248705856329575819085264780960373312794946729716477033283724300951548957298476670822310432713972070234010183245434996809294693952092869263872985587373548026444757295307881928599597495262954919906053493601935091866742121370378943945913958508572198842379081723479473952781443517804462757737695718442640204064135265561129250142053901804889161509178387531218970449082878038766255822318512650657283001668064011568075060539478588085653982915596277732286963385810143603017291286630907051111159478045122933533133894688370772104192178949684397737806535628675037233110090816390582325398461530789394369322805543556067076865364998243001359617827954850059709770629723993987657302414738070013276737398944598510769817798358307710180684386392413574442613109793885956501525566095910957511306401489016230580178051121586457623792283801041138889441368492469167258645559882259487495495163226990397570646367065622742013708787361974495708232044492587943813015354879949437708769462646884901714870033577734785637470597199318004254883439702002426249987444546060686365378152848008213246021910431170007074738629958513095323999494266404142266547978116857848399660650154726365989334093540004558004441141076186509257686540836365905786880869265316258817013775027516302124214303776352399758220807725434497224491055074658746696720645986074828994983713064984098509739115134273344755306965938327326741761905451917061304572705711036317954140328200968814284732296174852442055688966036412984405727922127765866739052625292248610213308601736182390364787046056127909960119137841394067011194939116890023596329513070795693520105975704691589398544494697023709277606065282409271194824596559458269091241708594911159045956784552408583231509048865670545829097379548176573933474138267779665914197920069746593332886679029148333401661088394297315352655465511960463849608065541325206562326014082114335642049449124420249730115086688854939209336332114758505736480904226310856261043917697645865948898901711746054242692274325533008475471304917464726000861756130626568456611896798632239203989930843576153884703149925935022504903803663539966919040831737826438957687424754009533441994923588605809980020922879029374787444148817026681996258200829792388106338483225559372703440985060261155148550866973290955835235293636159503957093918679076209933122413878960166094791359478278100208015925414179579443345209007096623494951331752189261023200957277488191336445165493545205438011795999404981624481690561257646542081896690826381830107954231981929939044310791298046105278584090333001508494382700136596047497888095721821401828754367951756079433564960509650909626658235894173743022578872187926438520962627752548400378179738714828524947448704386092519369657363223852453862184778035989539395832645424661007859559735806803461856881374241417934640843493468403884939221403183431878944518734701627747439628609941298398258403199191024518343021570762959759606455284917164498221031616451987009983688976598717153005754326885604845403860047866063667801655139042074815732374141852126968554153575116727389968639581865285276285818537633951928175035206263926455045199990788569087954767295343838574054703950738348228048421215448084402688533164565600220821264592081792604561850314034884479815007389601395352354381956734953898635397608304987198123076879163635017076970929078177643839159698994095068008137176201147425332131389754155999680222545701915882620978440284919971227391471825317630742639094157996051048105317412996589166391853660831780875427341449983646870656332450685860485933892200269469062061489162650310572553774324886140938403060551068230129720109947960898542454530566846347747473584391388534055196736626131413171567639196114493291469652826090439633873872947603105712608016520168533998010034288242253023150446406505462313340268956176663788992827322375273312208565765128924522444458819235219366371640471021427555195470821358237977990768456675730314787011394223830947473535088117321062605744749287702852759172940406191514777135286541545093130409165754282267261103632393058553964364130398890709043553617153988146335541439253029125713247119936797826578468565810501126490269507387548851062776939312792135520157821089127193481157001261674091069111405723965828770803247925420782167962936311285457172596574869019746397204880986261414874498749308095730269217325459337429604760008217574845064118765680099039617222451111903617451250805322118295657518330561672326654930587854408787148542515856638275862314867158035470787270560956775648090487757984355033758693858263994255181791503780909283583869465658348645074344974399952797094583573427210935862973753648440804034745921059612867455505575043751975326139372552019812019869012238543032157908311801097885863177024445904278171111233664067350080836910815461742596870230106637704275468843260655171387152339620165332709105864433297545336101900484039342149751576168119255110337123129563363134207342606257380874968382356408885772613052241314518142775679928983778082217424168381132507933180378793466438319671334732386637855396100642047213438906633776639789922717749507248221859493995921883636747141495070184596854904813423594109461876996018474254402575833763240277363512299660537280918544073906202740622104696903912979475448637601872228406498334606541697849066440229242756639822734950123524936140009571083013347878031064917645445885761987024947477949520600128566704802645364729596038217920074987462373094805445382742419961577806374107489554894819060431392625794928661579772464268689934332410231866570192782182243562047851397063545939399374332899047609596062253548028352358974799580163007298391493115731207404634602295508877053995453656059014952164771297402670972554697541777789701219775965207324161389522895111060869625518354658060614112567413365543149895814074877353080705787338149218916351025813095294337465747190488399722268202468956595102002210324251901762858152007336260696709598292605077964082713882258552664699672044464996653395139052420624089111316188243001138377787735617609450727856911587068503387122966850118969876321115478239485842744484622289141709225835704657679398215981950453259204750311039732510541351584815452169623282810137001151830328770333848767619048287226753673231775512391428918120909774776990176451961266891782117098602511091223378239138117823979656336453717053323461712360237888760949355240370067083762988747878716354524852676293918273510466654574616537895539916292869951928599764422300339020550581041908078940391700384539803863754509955066040197335864816795539033044811512344486940500053767039909010785238953140688808430254064422577287787592624254206603429588397523296271602018198150216122297985164261658445110281048709549665435544410086805914813589880324417663945628785984341233685308203139835770861186742962750224870108986759343426328406696783850448994682783611995415605761017571320882496757688895639856943907653653975018691680451981026889342396324819359036943398675951375108210776503531391605780498742749119097220190048599636026935961873844115338062628162466041322934333467689416315123531558761165562691714067147328426719982519038023958730309358457463010978935089005862837058096868066835267685698666322789207933391260824851956268530818777651525839447680906740480782082846671866816082866946089508196895618420986241215093912084246196312919200716370996781578095246740977372448183189844723047950194623697045334754238267718908293906936425808695532875737946823576498845252493833789540166784672765426235667791473748030570682257384177855769366691529404043963558641035520702748859364377603094417312976487078595997073921614381887730718001373527555059197393040372986332695025719434334212529670148467471468498013987520406537677294787484721444919316490399531359440519860518487531008432927288433953662705962598319626306561940858360231160519902769923700629791118157097436260767127312828555658592333924187400736274453991861913936126671741914649528244712645285361480456999828078852110314254807106822732572089367487435837533803798582441008029049330615155232408211357390275775439771243729369755141085747989128523102403284076401712630851494452263300964435826176459153780690658449332683974635469461778837276182335722004801903205299045552890245873611307557523179237749416757815141059943408452491015294395987323638011675257714035910640750443525359566365836457808697636408714016559257937398917221880287511115986235307862296291986966058836911210224814297102034739906346499130114569078646109349359533691684587072377407895120961183591639080809438664984245139903280718867730476022743733673912304135392510841230089266783348622569852687076117878213798143085247669901147631830534034832622226910190296880680400155471394810194016737900208191448539348358217801304198831951346405536902483443185877341118509577635091815950443345755092079228707982864467148749571506450797411238633507903111770907287552201134041812098500807606284390839811521882649918363564944568854116304250763976346545634428398459205689995319350175757713203192118423186971228820729373098059013035464974796574470500943793343515980686377553521315500972070263960515431740415672929629360725086945346363970308849575250155144562306903453665278452355196288386513549362885141680935485430884935889947858405438522733554343016932225690054132243531284923806051609914828936707844488362071271694316729908833533968073739415629273517928569607026217626891961598159862153639062099248736826911724800888596562723658912056977764526942020566216085571277956951813175237445205060109894141934589122543285442279546245797732052043790400709859694318838076266856163141810163048515397220206943476351597562788687738472685922470475325291246472107987680356034098793099953710672620574796602439156685315237914059043555901802640220328153825062769233061544787833709757214914923521763454668607839609510548444954732950381375660896322146676112105119835397645378046746493736592418066682171224284307490910217584046350086496206192055153156691772597393795710433302980625677269802199803992559519155658924223180851542558276427099729722821173725054750145545230748018358391979082791087004310368071993729129542516814133180628524484052489597768604606776709178315478852225154041828138161907329678925258553660188147263530873055953213973824597213494660356143601744333289464684915324274946849446300330888743326049929984621073607404756935158352329298454752516753490196935960637550311084425022857427566765639677346420453555499890269366907795448073980521442274690237695539897962822832261013219391194363839919640603615317594763469877829712464599194562454143171507346969426368484031575869979210096212173000740967075014831981539762013217091939395533410232010082551325464366419449192367344468331053754121929317260098910806379564578075751346369483024837101350264154777789691957424821100938163520327681362440281731546210474704907476419825156086768679335629567399466167097457166247321830062035857425128390156971187701410039295689506131434753297672352354035966346831202088306306014109783375960008234399468018550496208729343893497239668884359938257780554300286900210910884714518039503184625586104342967686020809967331078979856937651857094708788973359305051294096503799529337793069595411868348952655514656149710503660837574934950693765509036919714961420377582591879535290130543523188467543817100178519988078870677745475003133354963595250486125428875172544856858945027117008054128904717209178584767242995617667177392220951662605125091032330273494112724929884422844354913329613016132856541622954205966207345890570809268648115606549702878851712171137087752768766024693129893900114491427783656346748839868086681967871008324565700052028237168128182355476814228573186648362572519794254017396696336566171281546314138577325000388685880665054143566056225097364968615025260940049854651962397469247958224160464210698917726201445707498228010752535955878591048809667223605215074795354521156527033954337233600901830396922435124994307024972394371082906889025907779232900461434760431564664084870346217172606058188852400228925254185799608988722597955594901130415740465621707323166539473863834816991222093293829692919108817319571386762435329952568556413674461139818111486703028290860139492463030096029983350902661080188709941961166799420511740580217767383935922075047773102754971107660511865392306616463705947484527908907486635941610263593897231942095672314874513459764806377512265610104137483603952063390533281647608527217894541544693335050191392444071675153864323288320668877819055841417495213602612750551861238972931859121175042686611000401265218512720540639137668108900065898791198479886179135102832678682590851090461637474583652751891914677289844324785510971076171766567650220062929307489230752134584239573528741231242856637638869450215605637172792789755212693584070547816893041570220464821939533726734685987578914419609683167861168205847975666630881471962691125499862839828922060826595226197626784140270855478568038648041098343901855351669113460307684475568266742089173719486806894270105224275747478821530226014389057199138519505037004962226544992594508731717949362669392970845253013010328085177205062077182162321976552703315383350990441587727905411951110431137960661111039145274233456838486203306242599910881728962200753955143789820971025754309463713606198877272600776727853571946055090458152968811649869047483018636770306729133458313549150140828861663692300586462799732204462440660246445554664900286911401056040576402907272019948484473130192552705070087805115768161596742765244894050668894094051196228680163109760524090993620757489954639143006395625641733299358324444944790932351905986057780139448423882531751615748580297990839196440452458223487325355776482242620174193218909125149871724843832582303617099685707487006959070825559899870269986760286405034272759463044620006180078475610382841837441204378479812752127342191752801042335063849586768939673369479879838814376825413818053572292234429198552091645120400076287427117468246201090968180550474342503389321369576529327106284256076398099221499676047192265169039722410422278269945898955129583308885892433690870887620920680350573572730422631614025960855812539803306121139005643779600088065068105849960685869251775584192824719904617326463550203821807697670208383564400767184954074786851239800026290931232878326069173607225723049412048863127355216176325194616987996864766038684818810423632086128380705071915326773468046969700956757973469373340273437807204401530120816282340261896007570346261175647858052347300891758564232869373282606388930123749697471053661454561067697706059445555776121724106935554948599441660679046732257801278951329711103470301564813242001985864556530522452777883148068863212243016620173552516158621587669436322545133884920655807266070100476655876538025813513461611061852022126024616807603109508185764367487437418165253527277528821730245482171384296494921810045375925479210897979695366175828053048815654336206253188910639681682804745597207564057423017689196643151154557218947624760854735041575292655966964944007333973429396190753310981665862818516399602277911700535726873555927590498770561148399517589177819060568812362264967624067301051622301433788599869528036418188566226861159253036006227275536925096326279818791452241207496801060122398860261257252101998760212573905655731221945607452508389474009676617572113859528207312414498326148770744371794105219397279808653595061312871417848609780347142699826664727706822659015903866744962928909852872740948771996858106677849948810259797591136864530266786317453813100270972711679456719610686802107268640174615820286992518155028681063463153585709285896003662580506991276868287953773563617258512744789853775259608461251484777734363400437861834185827204588098534130433022097705349930010213895491604532441158490481967655185163453539169681101203567843848620956126992397273676735060254791211986000095586259393306084238331786457432673672018546141994826270568380939944436998411120268624461262942199489488053319900015289006580072330298487115340834552683031468029496680850753165671577330563652272605342169602733551719783268451493647698096061094233161807369272027851935862899723969672821707657294519462215540564066736534710643327621804727122894041970372553969557574652838955394770120229534552694449589493953472576947727673030440225824943703507934776204684373142637720591504207307395654990500241936271470767466383030260924967572380428599634995526247734273233153200303136023547249829710361231708285376628924351411098256178684786297783837497134752712381807323491832657468847247957302611514810059874122524852891361504713380266208029439713395666064360713163001991339798314959676234251622884018496429288025217294153353547514081857502597207135665311200193683441748270526421890943267814597535984986301064552351902734916401033666371969575474928865394420509502469814059583078089604450943672689382642132949209611422641661656581956586491099392158685453132099790207103818189260797738205322492016324909806971353188118269134857063855127911285802245765365805417765616033498755848923250133635040868080022171800257216666488878083751950433208215928530606855911655800918664166266500229462850796216620353197028028591229676272434295895975861183639557767308508552232328280443654094568760465359224465710750380129378485156704420763364068324159955156958214004211233978079577028145899529343453679595461937362552461215939009099493220995456813263503003804558525631528438974105783559210654817467673365647707278796468279575429272705589744780216270742614634454418211280771317728368027859939580169740970524722500206662134074239941034655973887618970763666517610266806850797284030266415161828561275416658518938711677873534331335783800594587850996855476103373347081185389673445117236361272951831669350802769667269636266121895653826051756708361871675351156697829770174273441798513566543806843578227888367005969611160774433124268403766447072745598622259355346543837398990703241918865694022984436582206905796470091463628971155645683612318284032699756808197860684375293122784166783805961477985445753031386107948933954385778826335121957361162941020514811119242223372559713656351680779752085050474309623404456413346603957926512483031715517011828867733465745261647230674172094934630318403960574744832617968223376757948727304634363396490932062918600566122473198832347577882741493127563074664605009649264588474348188944638156656308082158857394587336721150616412241483036674595973014530492766811698178240730559419002255002257668715794089792453215318109908958173975855924857475452382808842596767757386707034313779907945864514171848185723858585015710307684366872935533724131239560207376329695430783470699411853814217402711081540069610872080106637427378120059802884032355887951307809909981062762819628656698363304895766495410439015975260985734193384223942915642184174931890590974990366519046223289878470222709632783093164276800212301140263597663886476551677151270659966003992744177260446934333620985487764573541726056652693014135655231296479835356812501423883301183194831865020423143699693826668912110996149576466795071751239830450079937223126766540655728394159428049765868794403834293508375494924513424576171533460470046517784047040196706115952369998920168384026229952740130898632347975767335043995964535217395123958907668190024490778777812883764801346530805768947101140641945724545618953773898668147940303192409501401172107462788349078549134955354621500008232405318038453319168003924956062798277255231333318856404999069372567441862427766460888112773904167123845955586451917108329572200530282355068510320198128112057688586733841154053741726291032673092082875109839650255885061440062995890967427189941059960834580185316359741324933156949916062538199886014309568917850549933851618574207268563915190300222458701287833344047263253012518077767455439312068491124171729730308457539482426129946176743324255714176258375698394936521482319233569612213410417804278930940024434729143112936611538192385037557582787526206942932330101120051008240677981749940786447216417792384233269604375359318705084752566035880486867198666402131556679367485146181300838607719266671559730157110636616207475889378150035353351339614215809443217514715355950734686922219250269241339035193150121369381082185111552191256791280900353449058470934552999382053949325940814028139276272960699913634016404423150130110038591187205460874957729506127995097137347766690546138796048440915475407202646567110445520214427299461060667694113291050411613557096755519880601722033469338755875330060976037021319641302233693823116583312673502176159191484184146409085038650795518576286848572458314519089500253182337736191078586573013026119223810600625827341466507306417946658348582419023894823927652373048660867723876341351846868120386336292100709419141935865173779535854925274898037215501197953369006295943557545325312876905775006639929699737485001237530860731586909487547068247560548348436856180484800105373791217042526345974834693777190643689808617714815384598569236197712653104200207063321130129232839065340254681089008025061729106976323828763421850627413488096159949757088948506659951984329205552520140621881372231359321921239218322809449812007137769690000180464436176540833827094633830316633375668064065388493659073182015158614051342389653950346979195753786088859172724242948457751894119009403713199895657701272771994197031436540108981904638400072685548251580208536555101586836580384228615563987153259788445806392242193596421450081003814920702178220091843853254625637607014343179555103892515441653609212906983179079269047337427514035416316411798454186611763988670818812200824885986576784373084264799820335440557970774376235065240866966301285621472259521094956479701744308329565347811286965290373872080226557150138299022127203132539618639660320637667661818073306514570520329690451849854979532944296750211378852350920944616123444949517487946848078019564481225998092508610301389549835835912540512352943634513800866160837395893081673667253276215364851043378256123181669026368011573890577571546131097070386087949489944761052972406159054941450443207489473643403792604977083015577590559720900738559944519306268837429256023125038983518419043031838301554876640289879186180417638553883490898762232547737237672879442837319443928573692996154928839217001233657532147412957853974900652738818564737301648125475833813622216313932941876951152453856983861656340272549448747052763620188603938468493243262278452516727303814766170967198386748493889020741061837605386593058817682210029527405175334681165405949502890643613344022164261960550951675182641302477084069141106935241249104695606034028279431721963137717895326402628990518505455533224272258011475764259513789247771047046331955483962942909131792929965380598584799933834036433342368566204319381921000926020563089451525926350766254109113537087723889050405013551438245559197747555902335736129200098132068215098093941025922837581747239082564314078655220768485982799552802714020816631541333107427205454439185156603273875915265907037587119910059098869940272565919564261564068259784401119976553019505753065587527501654679844680035938325244418397304560228537867261457320718608596664318296492469264245417815575560141767866912075350619695793886919369835502747173636096703251389298512338567589737634636459638821206171534930853912392772943285986746453448743448458655437797066524399585825898037730874442434410258413830565215735595222317049997684952603525613376505498087914006360335901263435630700445734962982023481444580761714319850277289369674145053270629569837478452597618139274509306714535782972287807576584642889395595825986323969161793526165747252422659401083660045437070544626394591577990847165328997560729877036740865668650640553715113342213104161340368897414475619952615188601444476988683646622729392372803325030621031122364097423710948551710084484559615763516068303594892657449285802752654564777484620364938451461559133840876642229577061308256197526291079558493456270555885035480612987441303263294854149284744135562687544986101099553658620568522375122803156178566772020409775756513136842828460608690200562611835459527849590188832804329716408281601455929854198015097173770228391864990103580854366216441547968924246575182506379827183200261753560306553231422993512579311426793551074778416566209581668680000780433864059042639762596736861176700781573846127047177212710706050981891401176225118686356721793522897382525155297270891272639652156741562758322185609407065748531652745866184274350879988053923634826299078401278747353409786686182376278170381715852317245531033132034017320586197145673534343627917194284211729143249305924346584361681640240872183126229542884505410845604847603654515044756260594537252115441901185420127015164460115511727586022765835549670268526669300699665027227427785490378575759231183655274826525731429217619394725265411123959817706322529397305460560746999540248571296133046744323810243913756635570745005872985004208720873611610393169278981421282221257205666975911307856248007699713710161904259803351229123914131990135518752573073858329652288946037138826991014164155957615330233716471667646325404201610146357432715143965245258302148614753616018696558333752427952692660114486005387002220498947044988598706113440126196960161082970827360782313973704883328599647573221214257144863578658343633142778570295729284447972479827555578164385134301698966437854215155310778380406576018253916514209338328556924123520497423856801208610980903841062152670336214315009413595604540554996756566712763400144898430990096247115038402872921764688233775421156157460084752333829076615865123834804007582895468986361703174747791910862720428501926086772696612341100961559156007699004722648381268100158218837993856958749411804639790588462912595870339972972660952737186161650274076478223271486301238230174140176196765404922837302087725717466568401450198099257389892907100806533425440398065275164452878903914464185830998757300073727320802065419938910161791560999051677919622346178699717631708425141845888493357535798815283958455195935644295289528340388668176650550613387054156786453823728560252903942402719783056859026490836415829608204613430481828217878339367715329512086490144168960735894589485054333357036905198160093865292793625831546274037588910050610285079664597151994813289859724183458655720922965098077455418872800371516972420186401177300210742525945166469706454481018390347861772367891652296565026380393713100520063897445244537771297529230708103591367640144877930849827572952468681966298329207197717511834033559408471379228709509693761598263766240229740494758235638599853919836011088396635756480498276591736981142092190066750880337289179227289898275610435641761964400096764570488462718867895568491016456775802474356554953171784468871691445084018316034162707673771073021931053324205990454406578680624549081575016854389488350142791521787791898189277782810697884601458665725726692257888357937283542002389820456592478025381239050410777884302034615992880835504327515116071773986730023510167482828730224499089597642785379744964767684166355493589551246931081105995325724177780150800590879936421474674959120069762521303271782181361417866457549609960369670206272070338957669703609745011670486424692658449560319515965074173412044751190055548918893894701188382824513655740826713614394103328065665100981179592962475233700525089597481057458677101339247371514135035931638057162030655449558193180049051148086863693968613378459148767361268610130396576750358445021696239347265513191433743261822238629773499620487723609173394993435620089887178117270400414416526697191255981132675347097698534277582419513058350091569617419455158516733285676655792839104328558465692693971537480247921484980376634792371275514860070676500973341571292276375092301863202429732067367596752681836300341271413492107197649242607211893380934128922853331407948687510627711230517505778622326505511980449736670677445937630246171937305807671665630969050809458134037805034236612129666896203390010425073654507088193772950864126641205490398837219777215178319119927033349732952141302083151640711612797809474039414009527626790205192354438470939356527195300766543113450708844103760780087416976322879066009303200294614053065157313823699446806467597179036561994232148622012283523581417925744178802739526064531435188016199604422804439835253945497173210669653261907173697647153289637347339545338735498986759553871460389117948781588119844549242956848963831575835807574206991897741272837123087046244947646601371380858372837235454530309730974629092181859056970424374240777243935913730855168453731956288028258702157486368073571752701649361869926308227336074530207263141635336496643255204221122158967005416297105851237646290284042321336557650513326178886281114118261729033548295740760616812741032026138819437892070976252753796430271015208598681013011130958053335822511953660776748594305232579530788646164750076112684109942123654075589176149528820733913403558616617339633376062889914033450460377328255049724971773227694884911504222566477716898097571970651280128576831110944062696220559692190383535193972767741318812302775212973764469629569053801314438141696143255504218623028040887650300808076888977489211810117580725067623753193048819938442366892673408305012929094146917954953612030000775434629276552174711362299299398832871600650234613676473179965417358198148061024195830927493125799648690851179367544661265101051672076998325176868871428746145283571476054584961821441037538546855621404963780949133131355949345796885697368935160246389249809116530619474989774633435467117723792194474610521456456462580114264345664908497989220337955195767511348637971451898828936503995076265845835015253879007443182435906748170059754659010520458390889716673435023863400382900989374950666765314021072240668550842988993681959133177941425956228054659095049986666107596534608083311905478869854659534040035228725499717248246023808877092920180652195164631469080607600334353260776080838272034688248809490953663577113641503516462819611467194475652040617113304169779611309377356622678056115067970255243275530942759122038557615929203597328709839660891392676566103036426518885709061484635537519304111330112060478524123865621242188169704061829941315070356088532360394372516278558179664647828769157281110842650249722952741331114303096929123122899825734689099726412816492266592482375300621850855071449683081409560569708809133636843815817954533905270349309489668046336790753973375257176368577707678840544344944701878689744343316531085732866776454868630352897570310054405619920570033963763848650708571172673919042894904433242580189728807841746483831942111338220037771708337552010473648418845805454748814226016665364729342781284295817350405756907881039640194643888134977612349284171529310914890476678092597449979942478111668551884898879006127707079884769070011578931844111406186065946515418322529137927755528935589893406060864637433784527220735610439800097423117081248479032408146394468860378255599293192451364575301132591523714590715249589695896279597527678048285154079116385157074082134709863408177179455805015425112784694701793212548742104135882919526584370151224330617207631250044616666278176044548545831706746666044288836432887535738748932500811368196422207596908809389617830479657235257092326539928505598495140503665572536325335643561212626650217297947353249144009974501240640968755194940291171461290445707264092400199410467402325197266809538530682025137169677244342711338904211715010803141300473146656726287179561952985243546780155702956957503188770295231455922012697681374908162705766788130672532486656107995324012984921868964350542617621571851573684681391764094809513893519554321676648279571934859506533561239239475198293515282722150917540026915124576512053282967937975822274978067021601848940445357938044473237255803949060920814794575904788311570003680739262039305427845073995414939280598208395772478742853953765440336285769427915015712616793918508685763002421608592475175407763938453870311491491794330669556327896734479614156581486814036074845681957025028304662551647149025181968732850159777232194971908603387063581909926467201172039364126759235738201417463140930473325576016418137179862740939021674073332193557547274617776509343556243169746772232460408084296353726663817769143577221870270865915352525372708151782262677768672705844961814915760926511261872728388586140391653202244278955871605486578565835086054805254524627964264285009530065594160091483930167568140709054588254240092330172620177208973129595580948427544339168614227250940168074951866090263619966554057121798898208264886901579469872192147144523699299147785162828885116404521008315016014456671927291155322673747911824669460003343370297039350078343067320199318177281319190336003314442916251984385066118756834978843864764354556463714666893831748897366483111276505819700126392564391447766599472582937739200840076977793604474517858938490217342281763142117213747879822758363305059066867185231990227082581487527002417574731287492921014191162737069920046181064916446815240000223361555163073887569305941853116479193031474901749597759580077405778044394434497001487152855059968901689983786413856148311154033110795811896949978381869599314679170710028597748765137804538290310661023735154046749861649913719340692781468418179972475424909648603139145437886417816648461316974497015929142566037374005330864804489984209916926591317401460673065129389149623096852643760053490124566654218778822572973392576645655458140360201842564318049901703338458088413103851281099250525808336247224269112864157367895528013541355864682932679815641857501804723184651092394755588755281442378818640381711925839587065666129845916091297052242195956248508428635234420544993377490916330996722040229846776482434574866633954211804389404800619196426100254975845072082970249430956080578442685248376012170974602304425169783013111804182167070017627307226840705951134767007212004845574480710533824653295876460642801622343521797281244458015153073539794701004542062287835753019155943518734092192240797707067457735087271684570907792685907367043413547556219186714093203300306564179492536633400000420359550583357360562669300829727086688658967473814750291583354237835376663938618910555653385609798548904959207735610941938856469068878146698825977516546822765375892917320827232203137131616118869029174828277959681054330568628694922107365371174086536862570704707089950055250066243175259092054442136153050733150824944816630832535639617142727467039463905191764135340810817008823089126750529494269073158330534146517837273376461778089205523019641487929598573610796778324987236488699941075110834043884146097813696581541458114882486640100528746335812404445525284343301559895792896388506767348298336208452348893772368018584044308084049184687557027043769310010247756319952721819974430906856664584005906331511596848122506015578115780981370237933717699093707454739225484940811321246230997514820504335852445093845898120987612980053782281460766812868045899940363513160545521279598540638550145362019925383965005577080593304120318653789196452236929326271935878362087080036281979891456996377718357290862501737887307545307078936811867399792988916085443685327167187861657303267126559358809531421064598658830817334236789958015998818334842959573611590042682264903909287988782128662665753464564037866649278296971945274364348909690038562176251672845102432361665353776332675335253894902068119772605187715646568810579294410092792119348834243388730279511941386958342525990239680935099485784067696458572701495036605344561988591198854153438586824164133611927667627130701665034223709671077063877390611932070976564525541448952883877476919350912775552256358559455215349152528631816338325606554766986032446053306162683440742503650193781727132485955108005996477483494083826554281987502692578220024665252700599164415371560301949530431426790226071337874906947043983349421688976724691317072257467170622665239116389044108457986982564013173076571108266018878217541297667570155340920049678881833172254181305096904334094001377356305253153701750220094066635904561304048445314665495917477830402754627567458767008099957581892431074419473620294197571028256037225294982593870178664931680703459415682455184905414735722273291321266204195181960631770433222139542031789690571343069701729412757332532922989359268017295918428207488912842583776569662105635810688088059463927964669126545185818461886472002853366558030813032124768340148489354102382604972929664265872203600640692517650823110640321221321209962515600891129561207061822546828960759693348576525205304631239596347944826320141570657119678442650489430818418933004023034693722490799765436474607897131782198065156039602751136431857147359392631039203994573056473458262261316779562456143394949056760523500997842783724670117369307070605352826858507238660360417435503007240767563544791660987244057892989804359577140467870184545565658900728956720125806847570720747205874121576130102198821632830982963326067395030210271975657906642585151536634068036471146400329751869654187746293476392275556215138356013671666518637107806371593450437343888605685369637770629328778975924302947695538033534332543851658622864294911030098941839657541719360162789154895703423386652090340982586863079904817391398329909365254945759424249582296014389351512438908852087486567024558250682388140391170262454991820096202758426730310965763060491824961276247824633170003982985696911330866468651679871999265523321459247068423547547628065302461482159335374653423700818283328859408763515376747879638188122456591518387383645573357821111972461771352593543931893081564956290812866991567025177015311975052986927753482768407461145349138603944442757297087901546137128785357048752998583499445488578019504031560501754263055962319583545199473801973169787527565610390839065441103117236490164139429733922273067149561002689198179792643656463723226653746890150232771155172173998482099613676296310816074836072511734475953512198411483986164413065361531304445421678822054571456646670243241521025384541900638129184523666463093236457838190452526868894939908681798084767397652833025067481550312820606127156829302136087400378779792883506150867091251013418657467725074880029630517798756115307285793181613788481851570527537635003011958698556325933011013038940329214492172374627584814678995249749980591958332373622698539369665444499669795058762168535075785205750108949090139589135028195935899677041675033326392486131140562387388741443406603678592972545168512446653289099660111342511111678911681334328003281052506005341986010862199152349017499577585729769367685752922174894539678614541124457721562447402496555512450828746575800763574433417366649635300471403227758853422366370789791482316415449314399093912282462584261908707783793173842109028430643488980069597706688246819746218300718317193672764860666291615799621883110219733464217740791647681865773554116278772627770402176298345216155204937610733179668225004980287354513828619903285917342130931565881070079421008149358210061811071292770729057271030623962270224458814766907145142255037193526173170787189067489751266142396189596040060324584214361562024995202464274132703520855508734138534133783298945660733930989554571802877136053478348312879339028445301121524143852246155765483321257683617440927659115600855964359048018113458416784280289678787643709153921161167086986700158248211844418724102022275481778824069402512470283004230191825521898737701886300795778294575119523457544391278894432876491047316899254945387807494760219986396608248272007161064059698819356663502251988249979798288326583039038788872408152808975588464613916670378382624440871134247946479339635069606442450954985484681058639361279325617649073108558022382788556544941887135100299501436217066772014226665866096822523263213045041007158244427466487988858578358187460809733183904677656738124682451199857585364327351184653191247215398213611404297827978452537676860700262383092763031667934700589189941809033311327615576452447177006288920269728698189515301926500581717694371511777921145041694273980771429055555997160448782365584915136271909308374429019571006581620781544998259097658803504227519359981942389307019012005135957021560786550710882155662827894049013570664380879714182274449383530480588541662059258212736466064709027405784909350152224742731318731970988319115154337165025696901863310688814522349972336237554530502090924502731616611839890026590280686201809276289436860452347600833326284812517680399975274453029197177246689844919552092389917526052800262605827110448938412725330311350716078205933259692370440333362354228792491165219929459535432271562435956413451527052964779784779795041975573663530175180285772595622102835413003873991839763365882808728911827326480905405209612582395378482389463825670349339847864342500756892820673746828592615823201953201027903455305192469409913146132598227771687628090668346897474780617568830240476732889206332756641700576192269578527436815659592791289364168574883992855150897985836607170578236105202835220694968095476043666682936893178724294121118626494988684619266534240127927755406288022480663555365603670590326602431041289254196013716294838541623894799945840780526589827065572173804135369220739650765715682354545956481430922004321919291462337743331171488047611931107715526467134000093163077759832036100215268194610136876787401290415823359320898834232348618899846905495960577865889120247921365613221692644169792100638194667471901010322490095449774089109375145636877386572249491002070460492329578213853146430744167923339247463570135825705035538996722857589668633966129774462070740093062457724055101874511409397782796698755343465461496499881530946716868628187296348064324970934598111979211146895586631166981437414867903532129083667570214312418369040670838993480392507000809105201534371604284970467712107672487410789959487982485134835822885965892201908080108409556440275716221653523947635309795311461901499810191581221989099335073024397495326487403578409578791335679863081980253146371422327094512890713309067118273329020000700410609017982214649307784297406225125905427461294876791326512457731519923141276660401009558135071632088546274019613654531020461570468847096811785409056146001143995396057382305850667982450752544065990792298117519956644643381035642126572788622058194927469792125651246544017578506013113277436148188986839770290824562836783435810995701028155783636105125521161826822269546046448015360251336002060553989705469571498916236913880447729689067078374688219512356552013215555386184116719789915821847232975210378727092824915783321079492573674211765417509100968540641927166712072192168157100626612644758448434761786613557806550945050623098013631834296258845567576097969379218273444284663781573193843338193611101598836714728417029021326352991728105494459448181983690636779664552300130688169650115432043562473421078276185605715729403071302673943836212917646314473141410657341692289987582222180732225949881911546195829481019915090610526174478621523170109619470517794752118881078378280579456212099988814748212898395535181520373261671565894886784454385491159749529788474649401228995044575832255186643167633444797340280457928302049767161044568045812645825114855349258937205924283861597094610216299430462309425049053057662991431585910249122889784648320434102903914752065510747658940196994813002726768221469429182668899924633196586426991166633543104422956644282311845591128208436624652894939180346104655674966113550014802031299344755301902372084160597724655930031335913988162315434310458720485769943041496191666292139793428377673692764372083613723862457454030940565198380230336870393335315009825355736805199127042517213237249183476470808825531449493137816163728057080557644380623373482008288094401944598370218218529856360955679992508477346689243605738816114796231011870009336595009745172664715198834651136089311057006905485990907519003877894469432771772513249893728664668868978072574847679257858497535669235239208312032731388975360165711826707179617989535922613194533092731664787236018355703804754271922588408666638601079654005742621915645020555841218213006585376553116019220580173930178907793804444783306130646278011464091563125495475624477570673845657563967721248707753461660794928852975705472287599543167226680021091538038606887272910852443963203972116608919749900604596452372241743826212479943536105214228733388377007194437801865274547362594992463739220368020455107157858101397262865672464892082269551326383549143806607865715508232182971401186384770100268176392922986828276066748920573251803521946252153163668851422442126370940534276179015768921178276847251141084925558341887358514196250178248179564779524324151597842170183702514395831452305766556302956644538867506025332947630447998638526893915814636310464313404383454442406228109786596282442495512741942869613690994977201753362355619003943432920133673784645586361491338942094882061034121433690682434637071688341597169774742129682148816185436236079377624871727382983921994272215279212139057237028251928648216312534992915115361427760699772639418728952983316426319567765549830346766140476548782283178146102393781361446253048906769013892487230314163017372182581598492464318133963138213278705641226520584997294897704734233242327778356619471314287495397681369936377004839723678971155280338592064227000642782919573955729161946122096249249444584847007015415229944468932837313574132735728223189327815097387059063437558489462217417953438132804928283640280290345064030297744844940847300347804802596073935817275199191033824561383430580378504460712176335722184630626628378934098356720220200354564665211327360377238520507603898471516537887004225585754109019371116349816965880915318737572600556528391534534711065041343221512141533623486893191665981772286910460176807128455236286397228079133367994119085903292910621586630741877996069402732202321668179721492087551591871905047088543476906618123022993360155068990600061031949006589130657656690289268541416968808960713874404740010406473898081410671510698861904592650326242397965644737063442712696962804512259929129440692896724582032974659067833217498842217089981117397738178220461199134567035805366986050916535602193536056042283339846830822245508217676913794060502411791660575453441031124171600858017633706852217376173398464875059957964162512457215469061437605981880241878738712285114299763462749607488033919497857411501197620380553535675466364494583664988424516819743430098398850084977319913217399972389940985579611524455313748716908168515535597483556025296678293592804930317605498817681000590643352717182210928371108032094197757323708441386747319036593509793610230148490932056660278206687273385640574761847591080701200054330670007251292296692286721864767865901294710596313117564994934472374436895974538985852667217499056364639911132248961014740270074327602768940474494989063506498714764338282449724853620051661636637301515849905526058741036590215749380853582701759123499094409466622368706328569529297285455192832341263676608979276176787247381807759542622556073781677952411487210743925198366671564831874095088271447795341806751979806482886591156610388548149760434342605257153829787731769400401966678485536643690266287896817365209721182183575468915691590140342396767610194510550884992210323353740762783939535572088859057808468476326783364890876714893244738838787401232944504072551118875786928020374766781587040604143497977277097413936329105337620480090127106789347723163942232676537941172862291657810536728862988373680726502387153479692062251869826691005472738227361154964033318715478960664447508769965752374279823760912233352942508118865504475035550370254088580533592151397604833243236027268571197138799133046411444217073433667516967599392916779545642462667148683023259232437273934848732549179295535446509717356031088262196326058788035841311704992869194740450398189875011763172604064906317976278651969985350551549010362237513439927085038821187882401366567032974900570607217919695045637390452785776235918177177277371537653335793064078083967669936974388769389323430203089595871358861852138018234757375339859624079065078929076458208151283074499231895033687217916355789317135689528390026387134326032003777580353160256355872360538550870124438771301306670862189207659781318139924743410216170090581856611619215358056295031477705360112441874921248897443996349920802960917954704431768721882050142964361758546429157870202475979551959565445455199006726505817501448857094232633689354692188349456671117103898637195561987433384163168116182509308270010475088584570259092619910976850862164117838958526842648848021640418784531691337386783621279096649864519105902444745073344489073484919692021427404321258355788558094796903988075160310260665757492948597294789706818626669736817778239782379544290643530786220245048805301431830629250792272008566198522638891760127426370256795604833111163227757700152113733402114467420592351650584201483608985943989154827968014860960056957465033966985430467689113102582087159238104547398080980011175056150001440098082396615596729843637215783097165684659837867786258684180218939477253747724256672690233438232118073670690463155623705349964654254447144438535392457108935747149086395669173415816655924025093138028921860347534415530762716663460907487579630377288130380575105576502854388809675502608225256158989800108982750712599736716276872141087452471772569720517305347707113430343233360247232819129805794991636827045228515234135951938558354707867028292107125187562886337757303030178328353720383640614649552407195181231769779936961443848890273441693637350475337825595677754208775505939255183455916526290595231709284634670009863953109827934387405915880422489966880416838183989660640499846196517684287303568991742898848496699765973884262274800587973830367072374401096094324914900315030320529782369220073783250599606425137560587202951718046743058957387501558997985773026361626376215252514981326394078254107256605690498791202650006050775942655185802654333421298238928639000877527278768698813707739736103069060312719567694064458880293960888547276035215122887010939571535467248184264923388872080045684627817228444120215842977701413040146936174973904329099934342445278907664597409997931368528517540618474960622651393983575671155497871879040391609527025043961503861094556691811702784414009137529201383776299216162920233570445093884973823797008389241705002059140252896526728033737211355206311649649118148232035778265977785935582006051914458452100420006621345497577629287124505289816657501866748842900691481844051712169933109231340202576602287475350535259041230756938680971386352857681457242764020108541423689706600270349843753170619050962836574249566774260886874044898587271812619813956450184023479682392085762594084833939498975486606324348049488417537791599895434295531156481072077798983385288189822726031646109062609353421880980494258605452018744084507615912914854198400831872401954068077793869205157830801875668898572167497677437140797781263365309019685069533795408919193177750655507261769903712588887639919271321105391736526635766782177037948782360582522888598434521919178219061944608116180570142906339996685834838913300826588423849074349179857893778456250638400306041490829717249511806419328143770160550881464746117701665986683383584598912243856795527066996612831958885005783468110030153145592672617094595874898511369627353598627739990522185770207522396141474160734732467510513929928200751966760879721336615246549221473219116392405693033397670383027573482279262099711222190166638999626640934793711176620630204136205197237814561004197965645598447472597842843097086552671042867153806803538074767212753522979324141554632303838884993347708510734308585247221585293934800626252403340436232083256682876407678626284084513460305604295490284583831515001865555875949340558793370109423732256272001005190846467237099616849635239890381815637179606808741716787471761477419547584664575587777388319557333238337099784979592565894063745234756313514223036940115203691071306965007086320371868201244019644074214373380726195554593081235463722686904917169921102323763880239222648801673186514547656067166356695572299275981262945584646684871685559716567760105948453099266648912996612335399488784450621599777974115453827005223122533938052548210215677683265967384343808138594022128875686575885358407558039386225590516012590291818054987792419621885159544490903215954477565802510935405000052473846758013533728751584600255728303081317611347984822949982197510427766205331276323026589750677577998999511527972429142659505975042876453288334429191582760371285671195467675624486751381686948012813157650242629284034929204486211803805902923116920551944727343717019667290884285660135051921541973979197302869234610567793559736661162284463781947260422745844300214639141909337760773320444688678010255544082126749112010347537845537736914556272181159274364297280746421591726925904041046170079543974246628882192021756498122035403155927149337897141509410750192150370660752176695379117436194300171222256111740178477519889500748431211605889817619853428292325846311067987456953640968213345855195287271122820087656917574435945365317104668575286365903932038604971822619599542471293022941762828293086870929754554088088420876717301383928033811391161450133615057429492840338988217506342350834791889013450265738543196471418428483819219933163947299057510488684683610790700288742188093400413494554143517007798704585328090847581651684871954500577361695035988440732001434611486944886085345838411793310375726071150456179515103457900066254278695488295813676825866653768718838436737351060421220920414776393346015875453948183770235550710793457480193156337803933941786432869664416293948729876088033012377423827197371053727857870897078674709729903899269790298140917801847824886769884517902530213175942502608385269240602770031233026779967040670595108064763255692703566045722129301200988565690495578960724774703732627102621210494026014327984394134456349149971376226916409474285398716168401097617730675827632151109939412023780935044954875460295228459563570300648927359072143137218479098984191233792772810549474249174303995531260400211509758372312815216178479820186432403080993926433619555547645222172125022878836995724788348427471649347705342500064217457053306931707540963071070190790428371369485997692413359684619043836283670257608036385361670109224892022594669469596632811781928100605652332029505190286839895031286479842354222535874746044239966316850865521073233567300267936550235782076285569884125993646731518003768032256979793142445094069387415887254026850125869372444269577160239698023540273908610944276471681223295762764746487444038618529123120358498431505021957189134731765740331221422400475015707657158470915627475741794029933190292166441367432102874922522479075678201872111652572210201288563467649247302870944763249033680678245558286416163830604663744224556572750612856675971695416768053273939644858458484751352944359172322368667255183977190473577839484630269230279733884587623440502578384177304861106460294724199154165670167225848202769742683586290368997384983747595290069542316865262306912171970322722210202539730506862246582840315342235906218275791004102598210069973424767725147663367503353010760729412287586153321445987253738914510873061011299416050951665784085727853402032234675629333680071771537673183569232896604036190719521637175371418878665718996116255616840243745261573310302435595860544158052896123670301988840229229680106637737246104653560038241815902483903825835135256473453512144062736674231255781491847160039772057857946803464965843739245087670541857530051815562365063699901310900734406203156843193134972166135232678206710135387988778580335319272138005657278685206277989947052582277004798762523896391704917535899917582442857666099184009298149455910001709964385318467058857881634323446872142098853882807340970697155666360474898142224553928868633828811714935975994148725504820076316296412796837700926391402841205264147312752088420112155374701206269645422403531139190688789272315142361015995163589296812745878585017768210016699203301531367680453847895833468393424226783470606883643293158128492880884577529083102861240800374042801930357953649102708865171578939321084085275133497658821717796359173080803340384395849600188589578701800710013087884283092803490687354573141769731785448751491126993674976572078251375405417424785422650615918177653843887748307487600461079690883897597393082648035466516509071075749091271945721106182197433146427439042535015082041377206251180776215104827991048177095616766675941868455345997180395624655935742624594705264143455532628506302050339164696303261096821371610190108700525793420532529925680059996964745500838906117258261142118822299896205624831805973417374471633788673560129568333409692048984755733741868409152824783409721579914873653065521230855030733122580205174755143249419626723186016616145436693386430464678674569251944442880576887622062912554702607945327243636933879934054519763820827935447023411052638863057208287037867127642323194004559219148225177786733411336947769720833770601775555972386048687568194588150089838044940996786061075098974654466809372261396606846174642911718602675430070728000232363193363803161409927334188426064007680753523189709921392812545328647916371531600492030480885314642038747728798562810110477978046970798037168185587499945040304751373175830168538417059347481878982402534787306578607310804923777785622260165008363384797532610847403326033230152052008291423569857261109779703708151840179637630711808524019422259195714773077120993741098320638964881400217027466022911727208474826992284891746187609193967699343766494065244785037338682158589570265287294581506050313621592575305129857149033152127685150889177798343089187534558574528680743703981294329897566591856707614149400342977839694498779887933242382985146312393262775434108778677451258119006118375316388476103193533246620189110999345942252002806658659764949176690621819648603786077205984274927350089234798242620489484750765250762194973854655956385513744514887423346804628839427300574684888199404280356322522791817279795466774288826163579779532227091650964182044062797951427616782965814556416908256681664684804659483228727454344704456330764047299508432515884449221137432169458966348651804956088094214111857044244412572569858356173929125251739973682398237521385150866193108747127312682543950821217051592059963236481818387725259912537966544548589035765661105836585184625914102522017490607587357530983128103840614206349669339176837182838153570515571611919291658515902892203314833747154963380973802494940363958234059903906769118271193163505774675748079050070974976591002515441966907846435314548664220178702160446397337708028008885560292836340996697353774390285500616592763153763696325232823810127881472603637637175068076494804069129497074429257250058809111792378953016902287114328889073957913326629399335998393505851829532264358018923099197089557902407373689921041655514950008326126200661420042254810565609341954299346419735637089962305401503130996298840542517922656216633789609894200203203584785012749756488225356962984607565427407124235718916635338364866409250578462993460403962513222528560776302542750063417692544732413286420371535762578532540172819649224431159342092039989535833577371158795216630790889656818003067959703146526630431537478382112620357020606715632268807741174054631514376362757138678119419821327827956690045332515697198677930844183510067495763159448007127007431319684545810718524646829816258383655443995933854093296078352733375373345907607943807574156009440640458125890042284769619839535468965527703783779247030371598548939684710078840822951115056306945778730565738569865176633199430166242469971599039704876997753481417707078350914042326496019677072889436928541325597318736870909317340853650637569713968040325242508722701423937860366506680912623325370974572936303334271403824754606427256579865784129670517608403853486343402568297741567574059621048410854526981059346295190925677448597264052621029419931258869728065313218681389107876801996119480619137232789944287102387878166738221055972186545537360462824084191153122865077418152076972659327895961236568205228429600365680663209848437665378415796768376625592573286800159581309348486377907060307265073219827287822568888621252920434207923611685308540521060384772210657167942149449510145819422734302405606042955493550203945314724132206584962305867486994342828526284816731530909013673737212327678660121792588866635522204571208092569496938978298431865257115140698648646083827572032327835658718930444025037380568443562088595327866283475954398932859411725680871781775864556040105031791520402438322733397385089244588890986739313642707027261504312327856732356958216071492164655673301873945449862219339218372446171356099716003877416964137070457308064827500347392828981768300592573712976509457133569960070119740520239274353306364072937353944107252769387701590755696607319758830850408641169625307177527678285056601286178908759814863501822449657377542377871249421731013595637611960766583682564264768340449036138424322526740841024299420279889515987267698396596798564030543810818557625388994836011801403878884286247240881304272534205323392023592834871107041752626392887483048671499685997597223738344515046779522696480631123629962610210096134541275428696248429569034398737482445185714907406319938450997354938044566533852564605075135449379936298176292847568512430688388369543317057525548615641790154295299146031450293704276641328017844496189392335862680488729088483657989946755543073066383840942252049843734211966417078841513018301945004294377788839307562505222585563425220128901053304831127934977787348049819538331641844156505625018080766079951598218092508023427348959391715488403068863516028573306463186022559404318962313102250349637454945258510649066952088046394475412969880542057685751976159039479687739825760998955011674177409245535154658481303322852871138307193876790166680379102813000171336529214152252040328204644273131304395181488695384150490460989700400057224364637083834121762293511036186505284290189923226617527905860569684134716215268494028656246234880709877530068233718601201232901689214077029693391367411813774855298974222980369514525321488064000851246791104237886588918415240855559082862917211993293313639337414060155302536680161059168656248862590333406084683499906292214690537663798408584403724197733440824902567711611263261781054281289740234167627219250449942626385135503943773082568945497906593926278241515893450582720068400107583083866836409224081840898960721507818569995645663195545798350574774153699187259299490624629655131415391812481102837326328687521356828645415878218855187536128845497005030997187677152158064706303406335311549459275915297499837136867629102359344049723314497058849778746340554723777118351602377300590657210931555149664036747590521796346811316167918582095978955350439348729817533547775850447393246342695269406351903792747610242594981874535775412765526081686257210262509281630634463816518349791156780105008886645146802422104595063871175389807001241972045540727676648994613585412140196218916283744426226294674920374061645364607811696426184774327185922679832928842481591421488535988946974725878752639983471415088734414548307909448364928498217816680594091161458473604033547518078275108008570542874166831492146296402684277720969463458214210310199250492834529878439172332109699130594977306585299033420895629037368205735793894187095101178949392574010480528357854543695194936610149336969962915751780494801435961362812623781528092031298588181383784754250080749136998923346116344679597564365823600788771046821733275526571946206828848846572671052778961506867836205457930990671643319340117903499175104344265424004367225887311824102435054719076346130715829727282928994457872729171157885277660594497193680350698712422929875597786265106904213701361927085725108453997006293924556260130674632183675637567597437519569342353338911605206718199093990694940234458413589841333267688925905192888234861998943575390546260534627370243659948493060803589410059491400475839810666504724129575064980659194940527282159443874159776362087850859845617123995270341411956946877725872999605045271278015558605584348753456778333228603635579606091815903316187124963374605018292298234125262884749753999737380232672202472154356910849767414269869630581560808885495758464616938835428949719998167463063675439862227502331136002384675975176176075442362238938656975193902170047048912696033387419113922037530864585035082783063084407041617341084503085253369120281384241825863911713502332336859406540732611645489714618225069268265815017966375180335680077351525545062914582073282247418813443625447565257558968708073398334566000833096226596872391659947422648093651745029741759803006619560171709675284510612039541758378524936315692046964173582728132650539725197553995714406932607147557087697776607608785405381472154404601919829718959809279353340816267843155630950559315285237623428166878956049997286431792420633555637864083856723580900876251279772171050701352145410477903221176885056851994857090245202946376113555212916959060236676927371666325212699103147255212893356769209819633054804588119449650880355722160976728792623067837166280139953468547320043197701303323873571328622474216253986517977383597919996392383789632164886462687646415867493853649488096058828432198147167245706680012498288776001361077272716268350037938308652187734401350354413797081105700957141662807323932612081517488231046174886130186870989853311437695392927923342693865337690242293786801448981100266825122037958238864982281023747491470114379582131284871086568246853859100218153700403511906297770841223820895631362691209479383860384020137650628535004398315223272761705579897251027193538414134574884483931429861730700799229313861176933365977406580982258259701735823205551636295588094957786747508256741780147006907130309643845229031608608447124675032887789846803494836846680793773825617593380217499936591382019842560426253906060387144265505111672577822772226560074202133133438671218151576260648887384280930274527041668043997289311955947246510409160153066921935916063963457186638536057421952847487950860136818039382382677491704013821294321207918200690626844525035551827384686016445080684001031318085167992862732622673680364909510513460207765980863958886676707520193122641157961492720203187481442116713582403798295332550145179078714814511651784728573798893333676267202560235182844846223619458225713943021547623056683451176133019041793129183185270479831732787935685702718442005340070026772053414055436646374012721143717156343490699300289949650597331436940195969215905495924247848581161748885165728175309722602209691041208553401303380320849237055541133456685767137461527755525329075295494563616006798907766142633774369871437301121251412551849542212405994441213416244511394361821513396055418459355782278782935818028342619387602532866583189616903741126583686079490650735104676129427720904002530862703346794489492027741943837958619430463900114753853286440315586954593267034941874302432894747023928112468925698966571552347767741148046908786023444922144109583248721889474226188696155395595244806232685130056454823791203584441250852973353974561578229940001778514900792542995153315134961915332357785386339178294488064488831118813177546987073718109549363117417652241509302464096679859865000435677459656311318034192012879726826668309574252917779623561044831955347733586066201959768792121312592268537363959354935559952794649604590299183631362044584078401641635551823902673598179618651960504171709568177147470540922605403756419161146878384177922828583941018651176843121208665039942891024843797610951093624486271814120643848168263759718006384319353926905751895311472437147135485960500825334918921982298802558568631547930109671450846129913835964566579590470695782890106950849266946522452360750957666907972150021903609902301590868734330791083937594284170019727135407680748399144197853300071599723761279891031500219622527185802596398175859035494062149711308356096344761723702613723037350566422983368052178211694663700246583348423886363424424487830195529583149581223402451130649277750455686100847147749682704179865206971779198176029534611804865844605683645290267875122752932678099454580252236324871401646209801886707978694373811603815892095138419264563942041865432424931893815348704358041737586845695557310626336688392104416179028192349200464972196969249272838385845531938172917269478454599674291832039794462595711461758012912420876888801434613525754550930916854152435855307010336620785528276819577091889883850040454060454939358349046467666961395809501468946847176208149760522835273236507237103756755505294138910359413750615825130841320810402353920485825656545476553655465943581442452666627721944174288697562896238578822019341736248411909711742897412941081606167358454022613690112123443692567972687953758053742781884477546475933856154614466397923279794061799304026360306322771124890231445121151786274678825784489003086037338083259789873070398870325929045827171584813684246151323106798903718818505550976539217280239103070548872627793095836860390924822027202172670532955733979538353437367237387285332811835582897829665399838777508099393621173465978295429609453026128269985421462669931184205949449793897808947803556705668555420186783400549585052477856167312072176347256635246884552003341740643441602438034677634182458006650161023919012268676201633809466785409752244957760004015467814858541454588796234023202120224242790238629605227217832901148277193491601194422321348594674197311744623356483771783746077004081122747684322569210201929963362860520843880970108503499468454581665470493868517038964259411234961014857836352405857995330378935264976366789058597889018406836392820520963418769178387450655194272605583494222942661693040919324504057800853861406378294940981593850389518074809470519455392213392963608339687451528696891641595294539339602896322779505245611865938888654878789177277606287917891897346124878702648434470759314927326751512116659348137152787162545739181906431335175172426295748796563967492786434709684356166409681656049286597826301351370704409551083423688094043489277947178352280577177408568723686587524214715996981082342892584172760862919455563246826270995443633887820976173099809384337086235005455189300262783087421086188345969909095173203847096109624019928385073098292921406744105898036610292835322275167603702247573371570123706890661932710065802014558312232588873725569983993987124752356642384693965813186042732959791172065732469274444899150649521393494254970517341352592364580082265820481132630272154648761860583554301280411358084182104453843273413426073937978407149930698642090561042310450012063513956348283117907768900123630506684416899164670195107874259513527824064343570244694302133866486979858480693376705132871599612126015513859587928824678678210606162990428823449098026775653831247608870328317578459315322489727598639737863697689278569949561644391991227697919974865107792316816420511005470044523148385611753847816043137115326858998915663907705012020585590481464681361421822460847910227920170430693638752895955633130550589584703066146759334283762475052779128406753360130882958861268231469130362056083124471759094452664513637712153907919773641539096204188050884077146598873186911933618313023297687330965352122708773255477922595264045056078040978147386710655834699308809711451490062550881181871160256054332556443024996679908908238519403107481869679666151127328709385267976043177512940482383597121576476509572136279473283945200227171412317414269624299901575108755458931685448290765000343927623000723632885125150856132569162579156409118641293607482384125614816491219362275926853190486466391120639876277087373209977329413523599520959482101517187602799514815788451871696482844115762926173065596835382465724125705930282518183906074064259208757540780546559378208940172673887833054973878888438236621530424013231901411533565046140269628815872649153990136806315849804757496565879922238999165094459863639149124022328105218803468148598468587730669789585376718178116035365258344338028726496973235078451874982159926354484405622615255095628622616784866803857031247042312888932638918660632396886758273605458115716155904850179093570263871937517448442120961315510326739018270374434995268861525652668806743329663058068805558722594714788188412798732380106823311685073380365562799849405636053435343593036335984746143318614799432866824152218604377205956179020412734330380686982706368817584798945811303565253460119380539335866453877487460590237633085623181574169956515860190550160400283162834428220581155602136684150485022300597910939517638049666390647296329362256479116109027801965419049491789790654011558753668887534823554146971727747306328729244586708074306868853874039597709777703604007090236974719630964207934071233655163179452398733466766015739066932375958150587441026573235244727096982757975272220210778218513931496188159757416551147037113417179987946512653731951924991793348565707806727091029210791302589801583815399599839018442080635017567518515716967825982573223290712106884342297860801622248611522031391275163054819702483796193786855786191931713574069700245849073250457831426909317114652123242254555681568822877049875311728387509082762878493021221757958643436000688575568525538610423720833834502676097610120134102538461864892499900944577830188213534030429369888516198949848958172046400887004491627047783023001564273532480429575871966367253754900077836930052625129037854467540076835814035903994974721378103594738640707857572893297805214302845227689095813139229888780741890490684763622880253415450566027530884109173971596987984847549037521288742094721299438403896031142270025248924330977066693566813806369684416229351223629514245286979932581669380661046655820317053977998369962092045560183566059755035491363813823674617496252127282043901253118594827162263343840283230252729887147954116769224187891012812387328774933990514991502642805062048845008150361014813239084090831525052433745808816325408276430845906271867146648068524231716195123340329858296348094385858303441606631486500713514791931980119204591787108925407644647870101675456074430607152494432514376745301493055175004390366610204069803105079536813487929932969215073709392713827168054677496464015876336261805199820500972141031551324188561514365434896877834098352776069845742399444191344424529850015581781872695428438886028330356611291921926542659775699180124308998518278937593772049086850096273247687149532060701718875240655146002458724226696726901314967257408215027365161485548398009974037666791682446066476221361826663818882824239123552537380144198087210616970822008281232876678779654126552114903667219911201466423596735616588941475887184258385037032187910911848186904084753798540773431536384725205646896719614628997924848396397760285335339337515151983043879710089088427023847882889622762716936223030988316843326114263837768641759860282387641206490249073979111525072722720749968322588692268203781494058802818007225958880593808722765204180614990744944305815439024625706482532755268235289116349857465167382685940922280698416097130658554961456476263469515395792407204778445271665726762495763117340055321957342362300319594088942186328580794034683900525764577373078991437477547871117588079673339988615063057779449116788110858439372104152115033175072531462165283431598392083215016534126572120821962563111307095908503261941473383881324711023913969802607105187443556329785941119551668241761877981486754837735907691622313934056191773064427126981207795144905425371951163200557900481589291787266032098587787768537985192559184782434639820529038622405635290774636714891461318154345806161386095519906617684847189615211996291290238029726287040521047288188356813548955554078802871472022076350993998801238746441789068289049718588875312672311217561735036676498292468040869946595881157725278327162165804728325883503613744738768477351563445910229145538904015957455316233310051160147738947655280582653582775500855931560185461598189555764425733348606435003689497607671209404034138328139645696802129191749852550157532013617011121870495344928497545675932876878990840408431978048377230507064944004312039916926001638688688601704380686971834035963050570185048621182655533628517006588555706176251483725140926208126908191864195611926637068609781901757215815146427807432062928979787112280562361638879709679343259283873220819081169454240745592265079548451976013947204979539013809486446157625865857523458458626118425208103914891742499570194125309179480200066746764247300253423167971577474901606642217633351332695126271514915481158108972421121067904278992641461384028813177978412095307273303892696553632508782924993109448737737190142436228656686916874109749371755920337483544466968768511632007662511188654675167374042257594838964493653307132745820656730703955875192871433736166598619616690894505672110472231771182579086036407123563230427372425239313787059220421889908589855278226498999427670194563206661941317555236864019217243474451898954682210195095058216547060844361629912487246041388554449820942516669780774073670825884653683881202822108112555649132814913455597584693746816481539828927200731642845889040851612359217254432778217413632217183451898012624907569050686504541306611439166077130786484199019422248599199126848186078572611782653172878340978373397395425266008772953615447311747581278706522145589984340229110039630098022066029283281696181876520753752564162863678500383176753902627890700073003609835801410673179267848277936839170295447966951326704984131802661674507711240981657824932008617028883659108932305960547424702970984961070706634366691791488128681524571912439287431085384274558548674919041099455650008196619444256104451404300739995098059933476087243264247014144649999076189129771734494553743485959534061330594419680420412525405496452664251717547232745821739738433104686002311017515762535101178313718243383856759588086074581995099087043315100578765397921975158296670561196689113763243594112915861606189356514084654406300999550408019676077392355236793058704198611527454796159250299519418186794789839078255296329699666221055981667587687698068828083308781462711880398070583198405416830513349872415594808716651519324291768085174957195009406303718305399738098541082612768135137362206727938187412992622579527465195375899606509072632855189307973646876307642304657363104241853891222334952764022634696082062342471342588893636454809442041830030034073830804755086140469571989219955962937400076629411856696374758652812449393696324808776270636272004033414444164745741853149228821425969555115307149998809679164296945853838752326057949826699842627823228301657233128611348503443267091777258535130058377524047336685649381177132563156689098547654528317354176582654293943818466817091778452412523686073015305186926586278885506817382528508213680710352167439347053265990369135402217684214618688950611700908483175566346677939400968241662497257602258452176091353078999044118267229383278270841094153990306979644025143548265189464824331752362660331895604571358495984468544648316073605801970159602226716778933316059130303626060324167770882895167117168692735807868072315231273011368086845202480374237223856318600259923419947840595058186929978140245280668077065526140576103329198351657873369294523918628948713910856244674157378471706735299375809463505726650512944679158186161883127336654906136131020673477356043266256217723063430328259455229210341579383608084103918050309406524899709779665408969506651893070137616345830854069274365872486832208778600394274852850337818808747253341919671282553981380683232968044334959789420681890787180166938462239622550495642350617424283396826870970455942708419645368432347841208656371097463612471237825635420248330818009964454261890599430534159744518898432178599127239348033740088068455447715239960656575745234576213135966181819652867157052841148547826571625463772383123543769661129446793368447440348326459346073903735054303872143688500728074300329917825839693719723052869638830206523407862343606658046415826707001339449397635127076570365560019830575519988087433710689736595778971287847204375531861487272732238172795790893165871797357755527959342521208123525212232326275149376498661425978993402790395767222596566433036432316633450643030526069168528459753867075167214649157191431228617259909663824294161141465723669990665156642694381035733014707223194705321202125997213100240685229638545615776069461408295526617298648034406993425968253432100803749790728640758027154988302052752713817798306211749163102411226185412678311498256754288938663567814697193212590159298414093443327968816946216930819841828619154008851249719950300993782813190401693000891564408174841728369827927269705500620153957242246512946675419446114457326859425743370658754429984998964433120548527371093923160735752841888885757187427489982579543959598526483051458234326308839810290735633791099621598821540287982916930979438245783340580290818489860731615994114558137860844727499795667411640220350042569649661990050621584627098689645815068681023103040229941814958560355062312499592066286130608773000899249605432881718618896793462714469552571900220860822731482648727098796472812391280795798761401894547045580401463085951427376222212626467850809951359561915474237165696358174795998426240147483112035273421359475978277235972271406545358454692009816813623632776214581867205103917703368402735188449681204568395614153807425721303268934442392398710809432643958566684978202916078970882623976650574371781334066511671672635493553519819231922211462015007506666707622524443223369720249412232257075149620667873254672842023347997499644453008863500042411214965563282218607342253987937427612925748279475239471939778617924865160369464472288231232787372968525144771928194581340102384224355329661670975093419754097458425884675778604260900487734458806570983178921351137516526424980297208179596241436034995046897805403067507053394463956256227555323874127206150646935249570424427555393166478024599477191641735478581827911893278716246754847576868481726029109531913671088394041218100778406339751382512274099660918774099440787174623160885751098027675831253118699120605683965163474949442619122509772770335746923398970561508162088894190483506308207293136637495711726057229335433558147513827913844094821072184916702634987806601242142239551423997190440547468585366363060994419681453160855381442298196678687915183454475351418531689580352725144881292155494839227297026093914449360172186808422356584000624270769284782157921006260774389189714501025521732333464132156845810096118705786346364848584238851402570111384278284846547584040742545950017579022507753761399041860258442675519575252787284442773738323356274672147134520607761538917725673807494855964303863800636059288404236348167850661904684881444156694744932965380295655625987947901398775527375446145515442267452558606590058564523471419545648339643690866985139437189977263979370788821334688907001938833921861452817471407806091832577241204419897028578024011882341101041316719049885220348935471420381317296754029094157647648778566694622311221459447262290943439074888997973874414575036600233251546485228521954588273831744975323064792295808499900600149791121712556459515119452460240848303131968474765822911088043337508061946609073763340891356913792268973151145917548469859548579870554866640043352003376772766836289764960145658627466458785187821591988428750103233669928001092968695288883494512982495872240161782832827389006867081809817104046119976657716088883316039572398841140711272456034904066145968439663533870324707161680778491405483288735444932094232084883478171808453581959262753613337775584755201278177486570280011617826015358721977205900770285813929794044465257539830997319045850817838339925625502988686268273383212451282011640536013653692578317420227539762710655641063288176197016222401764993242873955606100467824913654868457188682690832137096299982004796804413118508574205713777142491698455638933238760042011617465041133035375796260094959539318520121851203674067620776109809319896821397658142424857295715426516758102992408686114504289566976748559728987935567134825820637202691276316304378932617953479710566919089409639821350780555974646723302265836923513049222451943011880722233205865988050358156633381202962139907550699082848431282448938998632200245233767386729955587624104300731513680466800384206040453649102606481594627477649914817159064429898814937625449549482695748499319800767978105874605357596828690538185996848544268868367939647517754616825896382689726956823089972690541512398370253055017031527070069179812306691952781590035211942067644850060005358487977088097443780046453643636507031443634674977257067482644195944242144655193532901483117284223941632331789685786059543901773462354052800036951227659949037362367415677777693064049326814036148674088435570875338982537913811518449623347348874605911975705063973160679286534637680779610144776415697223423990781594990522747500744254295431865370779447419343148971382709582339561180183914303133851790735137836727299801198616262491745496879669138962924066451914869958919997637023524005560093684670372817185621480207324681485691681825302367747527536285885278832025068308299448964939749964275459309298925985732702323734301520870908246567528611535554610406769648793931802896472341127977414757442717929905026023176367351501777580889386178849057364046024735375793536902233516066665814896808495434564794272166785004963200068577029925013879872601014116297415799142102789254352761705406037833146791457060562064045763408002708282496573372952762711989224222290714662598053013395720761733692152826020793441771389502777383938688622222166885694926505127496727248474282702195661839144501032593930807476371623017222861025439075277801450550510153757087013093240051887178256425305664249899049474160632581824836957311227283273627311384632655079405260566465169984760514634555485121856719257449494732229063394709203092930891969300859420833398263652013396184027846361352299892380361173588692064759441047540762770962211691457936940956925966452438949824321205105680737412005078274293615951825180274909748775094862650538247657531987313753106233137216161968603526246162251240089167229292897377794444897133212683652757338460962499410184704196096740539306537240530450631021580169508554625917474417458205564048113378549025060640894933894755220280235412530557036248392170823638895029174580777821467614226382696406195214929606970816588729057076916532052906247931503879262717678492056797399979006823563802518537973323269087082148411051585039714123193096225030114237064230470107573031187053738243823868285294895399842120960739961799006883922393253524510860561763559631126662595096777006163137570311031963599951815386502571982713172737275449261933750948193488428626860915637769453807042303034911876583525744631758561868490411643100760639324320569815507436368680021462047898836759702699586602543383769638882252450121107032557394067608668610075684250318654444605710520727948716312718179799338901816093050661786670200378975915055047458389007033008414496380204250921894597882883907157469460900901046899483361869543955356189185723430435740500712251402128943714683400483204290109219813793848907510850461988807728949552758931113284505382376037532771110914175289510481650831722282372514121231911877239543817641632506839916434607245262414307467615352758260863202299172670554728192258328020435945868196180429484761816438548412936230711709678663746897271225389069500717810621283329456830426286833867214529114261292906330326523691357201721633452799362349828684214233835771533741388079458353178468673580977273514981548223464910992881570737774047063633367663040229986145685685895739720540885978127713643671927529850351073892878829164475213078390396980628240019646416096042634987383937061107710492048750588956429545827743155369271271055247320640584344798961245232707292725082730447268133831296233238437744918995664171328787966497164821749807206916304717686424907541428855900112725744194429936287524198824075571363796472760462005926506502570005841033351123728622253218326641530835078164199270520770557085268892341434465055298663587181982842077884723605272784645247883237554714942271663584305377417795832712265085611145240984794398925380883235959871723905779199422346696564384689655787257940972307788271642763690117472825644533110732799394328283381622147672163411558455461965393590670332271565341548908420571725220248484752794666939286905503942215291275926034101743732565386278359133213346411769978371561854888452469535848423198921109679733132796373217911990882889713524210073751705519426553278306564454986860371160818619475697771808984640578461355753450794207093765353785344492474316710090976391501681429162830485566975014820502695588951819940193241304619031778914769106417776699714334439460685808174231629120531787421940873442990079113253948103221027691135352546649533704617265322447977413924621808991964158436616329677967487810183135430206626224935770309227070491574860647776553823985738454470020097858859740087486633691301450082692417174532676421826765762788669034811163253507668779924453414576916728628583297734897552635750382942679976902178994257124014715786444642049652184459190690488829118950424617150965456262284435026936074217006038736897645588982686871412581894203320223141414730179048059327656614555864516461900572551922856149995148351879722495460057918720443531549158960991058956869418367478279500047894881036645243892210807101483425457094597156984117610794639188578339962921348994509391211692474169240211763476006588528883823471072981585764919410404612059358667582045073774122120538900987573515898120617655869336028766064490676915165122243388202351300731354729199651127504327182430923747105569844453686820962208864659119155509259390293612003327757552260261346909686903865679578857985529291334798020936946828909738662313048403417773069103044526461803883750248420316888818743791890176462139986455067904445983361242546746008464496088068125521616746986700592411880232150589845177772632215754106870117032062630186405391065081745174426059222390470187085849875879499390405526832015332335876303654948049708463594340684541039771730521849450884790665407504446585443302688388287499098796073269928645819048961617036235262414216956030479461888718034426938206728910521776955248909071793107109325521291763541665832205511952333453108877851238845640269227353082781644941895306727183110379014879155540380500346904533527199346092204183028457034568462378757530558920913198357208749448409129364188484190306227720323548960698901114578771690935198184097362758574951959720827658772539271559646646475576854943963042508664393698032108341938982974240786707439759510133724698829610719311322392341395373067472294468797097131816505450216172325160571554718258303190490627718719050957864288771423138463742739549166694937736703420470917246083251731708218930300597340005414339396392930191777079355383316725330052038421661595824929194118642376468953236102978565895612407606757490025118149613529360992516613710851440058012558183943274711117452983521647850143307620944623733525930896862850754790214503776174866459240637114119990849059576335663265821628124492256792414821558148160231422159351308746414161987350590911772359367844071004621254491146684771999192009579602757336110121691813290675124930116557160617545102609639675682729425163749492123692063518245454912754550197807630375239403524525495095626245704479266642847017287375906619884087782050114145319317868293374060650060747719415378752949910063344017034903623864043980468311621652212237216165278045311902224126360735335676091382614955747106694166131334753561623139445899992765428148492065491925611888273313390817167816477147937929156271359751110321701694361780738628675723946796719859902834754823757977502278499403300399231683119636640929362594261375782503508513680409333453837914247566111127202638586779171469434621476482114736331353379445457103004598252027926483445174048105602117331263128450603861749156657415725504911003404373368915962457684762673353891774556303098925658383619215865793800764550093405087767062810038727004787758481451229574511342569619292626864622053335796965131201642620458915034058994317145643424537000561849757162552507500632637593030970285241432242569097877891913343787021132697065614003956481361453077474092709386561421873446704920396471335331292650386767062069066553693497622025308192691798718066326344300686354608180290700433863544445769136717088485390571038780326593343587452521990964398374891826581942830744462834020530732516968455779955905682297162719504063223821222858373481392198894137849510802774892080609503492025550010113025220318704446016282936269961150866687038987707588639286551175744758919841598457579732333734125640519152793857382302459067776754017843541983045704838576424561113184940674734410979101639860915334031004282681010098659362002066899194657055421833027905473328618562168438605908807972675614355278102396444203326605617759632274226011579670485604697918404455338414997334239389125863950870302747124676943571939128366673816518020595695820314552800749778690727771167242316840825222408386153396921935811613192264949156075883613927015345002134971502877221657762710417442913150363376495744845650342635092197585688858899481244938980526545301947334069481344500472981730316626150177101234833623101497201686681731138837812863194403737974856678489969387674733805878974355149546470749140285717537205529530645749014777014854087659622752241409805998614821238414217099151018016284666433595359899102464357409169865297044274626411406245172161142882820841013936432446196914334056179028311277635534529920121735910382353089629270702050250401687936543259913617822640045477210497069738031106542001531963950542848658889838729820544301290541083761727612310032965208537546438097736732020408707092002503128779858234753764856016353983753572306731892603502513722487737874485454106046001731631514849382573458007917623728698697267782094894293197592573845396125990186498515162522920040113005384774992499963186227059577745623908099745649346022875291596284298244724329185890815758976918603787395049359179142331814997299584821186152066474416123249386757688898013836533462275939319566381943873222329498855264104187478065649492670650265517630876209994555191900306236597723102682257589148929905715480771874204362563700793456609493353608996212794569283357099627971961813834977997281607783247452983228555894626553641393866822396952261460359172109584172181128533443002795287969303743208283708368357853440744656523723337447084820460058059186914654190978333849964035156052092583596753742898424607296131354023773178402820735778013430905887288674783789126619021498101546172790258238859353674393047081137671528670039165962206527013501087380607293354150871611664987343449134253688011767344341621404628944110369231287939354571373614476263898035566764261527626625639978251359885735389315302115533472732429442413437961758160591371429438343292791810162315556542720683945691049968403159480865620942120059433710928687065941787374097598857633961904277633795715159814657600123192647042417602747953974091205036530532282303319065815199983021764787241109120657748203458121819913505879180944081139672983990792746410585274407468682436034316571484054515547299351282331357165745680245896722700370785038882225830108684894989475035357742883256667741146643922413490518504601593040729416098602466041633687029242150307199240007108747963461040816421545860408467937989643071443368436730251317996585880109644903723631626514692197995821438801448158503262724352235953766214728484448562693194742706399561998291578574339711177565848798764879841816354056711408316204854453781142916891280242749089967012321303096209367364177506771833750681910039120864739089835285166703892966345395172841688174328741889601646688493099991094656689437422841039719145269750762651514139640886081912746869387656752053388302767821886989445385505284123591821092304589130304430067157767948998196918393115847156473156855412575698415484748953365836371553123566883261836895363546163616102931403455211366878834910811837508268748276539276097357401260521254514332442869173781037568713889204012274496153535695840562705954448447603218250159134634801890960213925299539403291967077336315604745396239400257808951233035849457304736877745034472606955929877619293619107280788977707072054152180624972439132214263225844780742874015090677929046097144418498643414169082996373815164482333183417781975735536333137969286820946401372712141735489296836265985595728138025783954697987743228540316445350832042124196538659968278626396097940736679749866420216273569302970934058350646336212420896892525693063161690302111380733130837854322888737463952363320131849368841929123231651954162871136093407436098537036257818135036219908448271185927542870961142892847829670140893049129862228899144424538683783262266016744838006099628517332489135108888766553490489945920103382459317031711832080516893015592487476467975750513012054011941126303053731043369427537623596806166630241348541249344259196563982544062779245891126385900560947139459115438778172178434657195675999238345292181505505634164051473176915318238656018344934599612340086304012014601460484371430137545599262823173574549946725461705370301486336880467394384451422992103963148019893980555676753075111653352471870083906275897183142880385309043365899134069819361731891655739601089791513377940956346304842477025759982584476739202234148847947465684577375785667611763063103794464665809206037959682221526395722284134604661185228474291954855664815593580691708265029328941980222419397903432452093772717060042804028363798825496742906336171495269990977107716915511242255539824119426311276457397590534837927671796328735505739509027615995617354867315566693865313104611170108822045406285515648129894687843256433755590955893004424832254195098546415666113879526294374839707668400756225297900894173851168931875080665906179681159959629326810163147705937329878724655603140048978982474685359858277427180288518430217675647476636391093094626386405073240384565951291799187696235089695842904292231456050266126830709724717149501187147827382961421447933229294082174905070210594426477543969881126600897758004264832671521118356417935620624613659717563724706961681634521051053244989176174561232481524537122983227551396508557676174681457124885335572110327360466056380527193442368509832921259853018147282043135342873097332422957049951425315997722796848379477519062628961234068972452625323629895422117644556938745393920818917894569802657517429539189094996173102759429144043865781291811895241504135550598050584297792077510816521135927391221704342176481750244444328833889252040190347181437095408425562783299336088767634986995579322072686412173341042016645303180778092758033260184105948410395351818965595834375736335351157354495050768597965814999685779526164303827337748099476874127622085732958486336003890079708847855168672426388891752656363110622100132975488220009660190094008624262222509315550134319579527126697079089996296101644678234086719008978448977528698211595823730923603049402326916431848221393591891900459248184616839414694804919181583368317901774325690323537020595523456077852948350558338990773258412910120908427589863720044572430420048990877670846164419274643650517222350072710083252317508112453078533842736111922682119276215589508857800852718033120401493155738571472669433854781958377804963754777929525910890518188329990313033959802280804863812464029412385184746083865465248789507165112193834665597829370032604975482530174602540473426153746548865334498047197956276440429413543250718366189563546469605853870523658181991977924918513775120840200099211380052272509548743623092728131621694829656412619188596994862839543097090398438529481567851655173718639276860633550347607495276763327832526540316004430955363298597532646118016415200311847333322156443532081446689043019919045041948908255514774334601178949996321863378108930367257924581943185776336868667992231669758696213913769076609718295253989361043933323235245910939902437770661520012363538322561731929507893088959688676160460175391365874788022797926680481907934576652000025504369295060197718712333516594210288783213918190591548122435117843197336863231614470459615735239620588376632475276099484124560021417432551996358371885606258500934609677852383444736080945969337266574480236565892452648166331091831627478117689809562849206461617332171903414445760929187855098779094436972580421040033555463159371772196438103016695686925209541780662342885021155240056304668864075966193288023330990513333589780116388176412370075323327884215464596447358048985847031553252238893566663664011892075659896941337259958669488311078668978679727543543551253161974142405253331823607702748178280534580063004481549989069235124216450119379491591276040295775901665393341463012537227326250823613024611516995925969660049854628023098425163512386714495553158232332862874249143303115470553359788042692245061405029060114292443822484801718004180630376007040895610760795048989838390063554959896481858988355002383543314923217903559784133922785982745256234539154364324656742974870423575530666909850723708112049278693841603038934701195510131706071844491151157067754832229800756771924267754781143667899712526027880063911976415251217604435230453597432051972717575339124304376778637338862541914543616348029340938286618767291979918218190821703447827782323859458835216577513414788438955990246730530353456900534359417585275798195213679616719033396689972227290325557836251935351412630254672264578495431219453815411234195261003146676102121677401908046568981014372455780839375747303255367508845590704621777659819211136005103919962882393991139145377775021519151243542132233985558548210852957075597914309185618557773484611027230542724083718200439886016668265278179869076759106762826942282927676112477683637074149164952716723540935328507239072371435895116931090764012365453471655101901758457171106603382451593919532981839736640251373569360546942257935852605222672240115430518273653036794156427815936278408211216993522434250553523977895474951057799636447209428607530755820456479894051984740546323712908290619407758791635734533340444324198473564084331856831620201816751660403399613280743023264299557073821533734795905867739263860587628078917185994505176556997275401844534029427799939235531302733217867700745871394231764641546766397504178251574930991333298798876649753150363875207474046896435845589864670266410227722756399292191574210856323133598094891053795039979387710042063717845470154005566154074600210968262201920795588976110925106061198952842579047809357937175357279402966698907552388799779049684510607803255529751228794347520513105122081438392999952918255308914518810580308600906050176936862999767613912601893191720221407179130895634784896939115433294896701464726758214504025281103116699131367173794295721159627786753972347601956532552335384328539134818157346000267230297351802524227627399156471083061610665682259875120326433541706044473568794626106878156512067718074047838477573333331305296058060129718242002798833661825406101603849912748768032214746706830452709418531331371586690114510152181383126132645034524371593726375848766601207444407538106491229728669159677959082441031946564318077288248455404225249585441341178586652872679464817093143810589554510530958522456135143695699804824200195146729959011864275047593986390189496755733715003935637005386295850822406234701852622850577206538409101549794883019467921182356565649851145610840107891282785198213509695327648297001623870907776277646202295123475517593949741577966334251457502151500563653841512541492465221610393295545349738722942132126671829341009929307365526552305949461714324760711357932952453990446506522152129965368224737737201848017839351608383880290465699292689260751364995085302554406937672743312065422501638618842715719081326257543444989958632223174230675629653068378949039165353990827681209445528583149601758080312597032530230485767751387984775450889027195032860998586690059102655945210929192941371506037381438594744234025134019465769894990079551691792282913392219101044699936701639800135247400457118890112383843949160819075423175198938216853018762321530197914776285479074833279351726919840205230758139153646476212607927329491777108227260901639188276976765796861774862911547962064592901308886535550129441575894553050995789006781255753182464613650052890594542458140255567494283801689258850653762620755763561285713795883712159023062790419914274446647763172906218968400306504010362872815184574213042495741410295285539409307208051320893369082913681345844597891471142190105808677074464520772949322194863334133453005118881720923062414757138534151946730669386328274898541000849323372587576277662588837506885381976168404256916910130464137019991369574032687891035561126173430142488199337493665731541123956190930109030801192811572798747083127540006133128841745549984366892398667708895054180016870883603181045016815141505502369011179632537334114027061627124175148296626804015359203175983165255776199606135170441501110010828470461029719405673213117703773536233769965864993458195880991861454668666161721987961622586580136526038058327091350072037720935177122493243941163935752635109353241707550595274092550269536691622604144367943539007638448471420900380984718422384064511697378070121735040731956624132812983569087871575531120191759129842876502067195536131230978655989321406097110303398285212608992988064826978739427300767276941343883779920640745890482489807479794722155542514539700376281404428258207887726770569780440951709190106671629071977685062095692910425556219161896060069043975474641500677531733126050778132396671998888832174461778558213190532297263677642397105143515943951106958116039651788472621325075498257997068666642842940040898282531052420881748604116410014321640654563809228901712941443307977378430047840929722476905875397188159754586026352351978174015121253576729975581702391211678468673743477929282620396618468201033108481857655620322116268636340725396691538376008270820336565625902135712396020859787434912303308396054089405205567787200135245835669073804579996952821515826109766080543812455014748076716738468773746643314975442905355763741037658383110304907768812276086600555251835734579779560605970878039710770494447177196149295370046599535785242129353531065045627733417743257254406365911507435202533706259164873134325379984984337031657316414541064018874665434023413541966788879401759537780675152505642163605486941342695866096943609843237804103256828595291666198300190951900677041859131383520136844338679707066270051735989139984354342645513061021346097028628222246326187569507149101231990913539302757646781825226030304427597151429574265534338191319077126490350729809764626998958526019749149344659875441028266774228933715781825297072524894703438032242763653876967974138769330692068694150338716459290913538568037131920243652606305905805785802278875783892752705311957010382582804553953579825206951965538963609718484824390735489019317504144080228287305887562271493740553350381379489649492111820108168303206057373902328615478997486209271094132385999422964150141032683876811525768380478110088895963915583849634838109087511438603618617231098059358996096037966725001382773797218495131352575735037235848185849282687596138727786173046804653853506031478064113122522903951422010756003645619832403714127435875992852335774519505985747465047320395344226964710631429053205958210220258300374703404650138853993987764303085920054712022063934322672089681574266498194071535532208393468923482534623238737295798712531469963756728167530325450673731549013788880905291737713480619376861886044136817182029635890981706439499186170627084371350287915619592211444044826798284119917893683912906730740120763434392910430721264581552905279185980302597175365518961842472625944761077341399739990851532355511229526047448948897158760272485971477164763156520767889484298480395797064227960691308112022837343953111385419859589454712250665223119278922469499330727864504702766686201734512480925949982939015588656290722364746397753082294743261963071232593458492676754229620051082777491298337867909945905822589779254507298253499278959622310068889040459007919297913040965177640385083276346961613207940912939782357106727531402897581646476657755384567376147536673243266594526190633610543237064965496270867951398704082787102590924022542230178006129241368065480367536729684150204197683027946173244544983793813337692330177923700691585693521357328302109392412218550106049971777897304136379832469457717968348985432240390182656991688795066576702707324990831553602711053915577952331890973730835811411224183187648462193057210261024331740094836898935049795125312175843452933865821485699307843620714403413098462737038791681579549585329545012751448826005012635988469577134543072391516510498347878342529669781556353987772907601577264383091373235856584634089101208109567392304508723390888701980510592560416775180235689707750272804629768409444164151417265065852592987471290251926416701691548729181728530594940082626501684306817000863421325725147557067607358367650173127424411335387790092523018112945165372025715651952148227614473961457312701130293153599512309491124876204730041247043326218886282293851169707794455122761460972776211244210011217232010108261703530740024842113035631719909833934969418566695289858992198398078763798093470496307750890154878016590404007083699147069892630195740429351476164665344575809865531498537303106178956422128279956656422188124935461786781029268929656377143559792786506783913683939523087899282754461374274578522160624857718569303445765735666620728436835830799771829878152338577077886836664681986298231734104720562415451373057207113281084653656592672365515845159117161769079864312852967411734614872071129940510493246967511447127518796820831678410411023615388467876610973902004774984460996893808881086149005572412539579157476677672596009717203535997069594732584600480419724591617511199459041141040142513433250647625811923857515017820059113815957671470276441331791573296097295358444539915253182636735133214612227771734178669335460623094872473685765718847260851733724986161708145171182470545398331592131405115151376846996589557045763747458319917972370304513460796217176141175403929081266740569948894880342231772031796747497998821416204811748772677436273903523743804036485545407129791820718431232561591037244244943685847278329820055264642250881072124151386481179962151964173794193376652265014829911359730380606388439876909487051260227427227218013589586175548496738042265311116052541362654124997521887251109496797581623103470644717585096274181918812408182935086584043977877779523635337526991484691830915099900436787148224386010326071887374686626356937342139390503110282649753826051510325506153206729037029969792481028404088254412208354398157158954906702466030423249287426129848157031505254410497045458547916021259830794822435699505878527760143453800009113269326222886168907805807124678371800499607400484692106893669077839236577099763388064274256740707085906869140841510368137807326219892060738658744263390645061643345189629269021319393235839714472190344893189988918167673906328455921892794140948005155157763308285584399812304836343219135586924053438720614386173147132322728559135874997049720811631206755379738665829627917911193000513772055526370690272095904721989176465205098911118817462749429007691273268527590448540982180065382206650071983287429254459518369470085188147674165271210194734975442255806017185918853491426369853178596396671927558835918130586860790352988683397054175585990871164395550321985336420289100143179244819984423161684837913550238743032813627126277436564314918385248809027906952204957227758923875327947303441270180936096235222506786853830909099417407653930869887030907453755916738674962786169661720862797420611494184924365403205907450280315421602913900458122788526785425760667037343369743728552523546222952495452137292548627776314944181244919980954733103167343506191037679443368699810527147101597189183797512149260668364182080243896940095781953054159323385906780063380289590179049036127699530523161725163251674802864299118709577033105997819130753316991294506309288671111275009517650351727856665089636209007049290272166058378319547045009170734917219592118235648852737335688942984685782175595301520485703837675166479441850004908234374482868806695493327836015488782886589470404013012762708036545762582032187392948663289580506550066789635027404373422082038777618783543189547499692487054917499517504492811032934001810982870566519243692591143139639295706561139178454859710458051315998904793571497638019006355873341379549556775107562498170588172748249324292294704849486991240719347191343281306584685533010948735520881206945053240391342379215998158089366723051259391634938401019637020244922441147538772479890971026783949816646015632289503654536007816181998080651305759958305254137164675617447047767611119488584428891962625603223273536351756399017882190798598876884866038910088509643766886573226920208745431596112104273895356724354101850082961947953548932691273352949904632593335363408005060264462273822864623501596119442006133881234889021205881917585140463997265733607880376130993688306749444105379590440673883367023935482252340216108412748434441882103156897015254024843243483078558757387925778810527513088118372714464796389723271171375333929293899582445024127366158234515917724736291509516858514894218616544298953150698921469859846960803477769271679315736058211385634322336499270392657725344644907039561976283433602307407565238703029845793606299771377675312582201528545933020165733801754262394791932158673456516684262444640269036813533750961677048242247062632979821846972280118669633810267963965578950937254832089696928779510813968228936074961209704383364583224248601595774779205069720626708878527328323783662846624753867281833040294080235818122484259395594195648272017890683995432292191456940036496808710371816363461752195874566381518076065743073882345449806636108132586971365952919737211320801745586812230722274252368603034690220212348038202529144420893255751669153010721462008405566197116207447363397483523225493360178003901778529036686438171770170021973902772885056575695571644760412034120605341510404439277089664948308805991515452499550100658947957263514954873004485567802475347402878313459311555685953854373330785167428380678531929259569805760525962286422319034255334416042952068131531142431837082018534150452440859858780365292488783681288610265352680984992167890624707927831351584344036950441893796948571191333783328645911093482015616120761129820431138281651471652555542050496830412841509119621837492099928258275297331005619499634926042325761379079408081548483380571632994603941068957003815446652054072977772614722900076080652054476258421843056932281712946012470351075394921701413850193412900854558306243322230348934747419734437101161570523881653921029534866566805922557260729813573605602541406839024645418854373555009627325442843835102089521167719294639469880807858836574436972159000537562470126621617493884694520450989361484974607853100592915201717399424032938124783637365169209975691182467517471119874179448746308596323941633481913797898687866758781032167583629327463431132516909821181241707448068050764334528744066845348093111147079688756707780101735277255536850477999925859425955070616319741144841018862582990974861090496350072681524198663257722455493090868663093258521425111528219845032806966376056099217150802705885861349346979437285565542950126548901869189079072378967056627593789013118993740875448240708071607360490080576546122230724089281778085681329970534135828261648945571168937385032349299609602393727587270261313281576722495569456052258252576139604345743821528770111170206831762957079448089816343841216961822553392049383162500940596350996374276621190496090782867648665830245628191786322688086621232937661809133816734538504505444659168761918229270953654121155531954095496505588796644298441099489142780041181477880904248272985105037926346833052617942492679217201367961563163191863494496054903320405217058299845123459884131715217782239131023417149389377318619827592495545419581729209142631742422339577510196949210615265451037849045406282725391381791289503501684146979918220476873274154297152346581769576654295901768899537486103757519854755970512444627395271829955161558808113882276723943022301762013926527269225232271603812015180854711996714573791497855337849365485517507031869071112745808471389331711381751073644634981444105504208674224003356711798846393438607703191063669116012180467067322118640999529579910876315426974856152980227420612475036199010844127023837164715994207225477236592617325062468658280018826917783914693192785596481785899146422181108569390490053222828275834470676955808948430172844137073194205927474089647929888408838178314123750703437201077190925106008388147754635206623790267100972907283393243621823636987180231591966173085671059145645090538332973467256246819745665866116767722667508137545573286035533205417976003246514753392904648258804926487875435637442599549054178316376208057983321122651567879706313676168244448325996980803019565679260105763468101554425643867138812138937203653911710402450679930109083518259804356849590001565952165144856037126257863926726707667714916040564248238478382309176884372641091271015264359870494547582606305587352504887866963863475544095660825920241244132210061216607284832610930650393897331528303011692371122938706714303368308738139128350746006596577442914099516198176654396641148591289829650466431171572242306125941295862850133628682344132836636160473549246073109742892187764781847353146282846200080589460802972759682035869131227637935639508482697209878765710491702754964655476487338730354045917597991447697375272946458017801107071270511749161286818671845539456526054027928611581315894709317635906858718090371529666853074599694853190770052268416407579459874072177260249125072019628362913898818473953297165484371632295843249574990572096524860097084711989162590814131905821597735794826146194524316694575943536286426964667998293181233058345657289862291900398675073180549421246202696347114465174849730762086272617057898594300595880858110115971142865393317505365507317541207437873708750189626016573082622789428777566685606201644914599903936324579676876257842408932326816668663701966412242340501030410578651207505738454391224326064222196341943540430798817157341066594111402089174988472003890069360664573807214796521523424400145121352612226867268872233983840406588844666044132518613240878882017631003576374552271624554868463335895749804993964210743839416937799841584696910561783914005500803244477475253724614272868833539386226039212873534872804480310977382258281349568585078270283765774350231648338023707086361968337045010349066283645147013094644788878989118550684298594808358941380710358327657702259905647320355528144416226371815994885726016436613663282681208995580129918621844877274393627913181002311026514185614750761746293208399148360233301906591465133637764934943883365596177827802823314904030438342061872462400606077418666735137062512864218832256506292332795826952273605536851760149362411895448262550945850160667508181555407097828707551415857848175209223408715220945180138835641100463779305274004871843084210604145563583844726897501003831411417710286791290378002975727346664213229819371032354728751748672460155093801816504101247184402541411312117258593108649080924578325609189072503155436355714836353935204464540343386064895166364092976069040617749520501876012691487305813773285639762793598521836131671809044329473081745814052835088512485882801830298480470763246068627344843462965887894615109955094215033190840193327818999076045882371608658083405648653181657511911542368346609261862161624544081989003638227831266609601607551780700206598270019915051072680044200094878280198410684388947438399441621229819476728180700666752181631843408231406410774885062316231597498156005462399406201372913770205204137596224286865260172703941834791266437146942042513923894065100643596694596170170451570577104830463823082457131447369293996865692221782841039246192573247491079015921912581581436562506747676749472000370357144938921070266239571882176585966047837316765467053090344916783136616355684310611342465652270369136117764568606009310660346757190496792337400871383090051604829853460425955576062249259973149581480487426180480862006914126047978126695121217243506184382331254884428647985232445804244102006144304034055526649314782727122243609199781950523304292948161377783342806509119815977360021668638476501509529285198951652443548382710088732184215894913067310825951569169069157419638752862739971200735031274578697167599355582784382950148245336049589533405975554783004467394101393945189357521372062168481189334909934695270332283861049937994088946348541940237355557234171594501812970551241388563964279150700970216334893982987968551022052412894186654350622833373899440293212296425851184147400925041705383345152694655048075146451810101482943463642898376982557617394329045660032201333987480577673601651817858966225291325997359631815436081015631756134198470495005899993549644067061749617309724511132857487431005596006923913212555705082261397017885933762368532635447557129295204057542353761809495670745898713093552219592421963181665691632356218875738300958060800447546414929289171434077935957811911616192693322696905605180904851403383712311024071345113700044304019994060316250395762548827846583252588405681322713194043686962901816893281450070669081935987533817182219775968120878693522186501403997634477906947412202821886900358256591873795412013490107430603245668495080505943150774367879439666898903121941946729613074492869813486551952707125488004756681207236108683822833948913714594693469020475496402612714138798212165340064054495928193078949687648880001939202942092596032901057860667455390778337319561511427743497506253542290299210057882425701982047895094061215868047275759883561949574139136452057217913150816073168634924663984932800162951593748249873584710603755086747545859040896583965260433710038009383507835568489019033015390690338647806313209064656633168145491683733691065436135910421312653434503070469613422796452778333494396068666285895447101145316724739631494688700512912474633675447411139551692138758889806136440563436030264871523367124329506006772504668930544261228970070969223556546067393502950127743925085534449088781141706644724743111949197726484194508186028179455276910074591078405466275267837246740951962624654549585465320949390096002459379011431973442102025205876082475551103757545321075958471298813223541290394039349945506535615749000118490654573437907293257132101758918943509213546727996891464218521513937518148203531708682906964078674293823954605770773021740942005097413307465145185164272878329064906193496299607231517335449827246357730607178729123169017540725747381335752276588106617038273853034035954089131191989044851165650923935730319031494670176811171647218106074809204027598276862291548004607106432391525610596745198101063649086288623398308850753714825952653238202535704636599050488513727821867764917960482590416738973478560066829889398476181671763675711337556640342375527202346438264434084498190528620027682576133709234796577478880472250803017425600648193722310863351866048932339023406117927955794459863615398337902719941944569759464853063632623027527618070239724359552097229590756492225899340636076468484870178139867612077786258977940196025922814379927962399395470839484364599627177640091003681766167500243854835184870539563597051031712249936415415125192142551737274516620180186353602778790599574480879168019584811758621250416134434497239923366235732904754030893035272670098259045377044405547167923984805853705343018722911354707774489019299827257585871544111437706438652689330138111996527156694556968686719059250605496406224042740958342073424808611889863073357307572314231855726093995567955269512652386159487400957699658258157310924937271302794672548536191197633869970275860280494303158495210618494747417037430601470164170749448675961135697465755633692221656645358608887651011870772145189922604164188015022366662299402685580042421776126066227309208130501197806398882447021110219997610943172070685450715386821657862791852284122490324668225664632694630238097370192386346649088541686322232590097354456202682760160538982318951314501211060323580359739569170706756483554390759655254081440790272016304352093483037638187883645919646041815491413709044822620769668678453078597565487945393223120129402783812915492912349980650878373352772370067077820663906345320152653299506688765718773880692081195768901735903559368463719533244406324069024221394584986211836194748957831299089953385173245984375542237458972402283789398847414663859104396244579167198983915237698445653345838145909062245202197042788812922884145032249570920704780285191884078788988677389943129056947989996662972094288199196605672401409267243471004486100396913168292154982756076537941140131027237626514021163749363973175238466052231496181415149974048285604923635480879869039509134896929686432545395930340397097592666674632529898566919425946453356755082774304879884858777447475842312627388013289035575471994039092856216446334499406555159160285371339930975419582571703092708106565671043021485839887950103361050296578938808334110179644036757408985511114018255296970134671836620750861185510046586880553350002947545077601865826425625579176642908636729578206459530949155536707279422560686747710379242804859540070103173236456198523251344002387102920871239910713636862977373170184344685016967946627282330844915943198945032695134871134331442327954899576513571805826617607164768663572295194040878811473279311002307999856479767381737687302908048592864291351736999719287110330727514741314031760017032147665628418522129862072730114797085402383165719774199175226581880176942440631388611026522624691974412036179546422765117051439149375608147024830246067079892881133327960262827450914998575955985654603321780096508822182566303790665140217775521121721191590586821522977590113822440508971551556360161812870978830244060095496109739450264894568866701212382295660291187048598527938092989146758391713942479035252157099580493942885561991076116454310762012065898203498790823152441150855665287500971155531030685835577795689166129637785693035231720789275122167734002126535932582513899754218002381377375528332500193945655027061775238385474054073053480809194279554719641487465789445511684563670058612238935146186079712316521548701563980413396725346168379561883374566314982645484085073927734677066999880192795558175796566098573433411858639247663583599395441201004139777732752528117842283722991258224323003908247614367087700075895778754751453479856675840856029472457869210428380191114390569803718905010348889438674309043227279792017031284982184858100370152368623714672543045957025740927772320576751557958885966455003518542578733355154786869406283945912293557042966393288391115602060793190691477374138682087922790676857845722900695711624010515577760517601954614939928599927685531185025230208849872790657219778493877553315129569048360298712777876383917378008268228822404910447343951252576343391400142379240293169209861232948231326111895174684137989432914940285901827491579173883321577384976081568984418788811220658151161006897399941100713460702458788704606779692707844768789657687223160503177149851667162503539821387898789485334886444533732273920359862740036789600058104791126099971066115477747581440722852212903923530770033167285718271471092289409905155924325160705483985443549510006155125464485536275391076509274656417115462958505310529271676110399590630964224579235868697129973766965834567499770164902433074378329088560689204608734494286508339015636661055008643598680097282028792354841896271455602879917623300899192684529928472385378914065814435916630841886310102533976208847581378571656326429002855830833152594389478016550773980076081231092782377816885062310932241276864850543523968997048462420680449484655794606785128267787615862638147551942642539080553672661627779485986280484405280998309251517225154089517564769984219422353897878012668928745106264287815902188221718369663579752493407030210733455211250855935831985480081792601218070647682995566402144342183166641243441359322810093098056765819430736675735129379542341321077945941168323712406696885651572293740453857242478359991384552351116086965322652350193692951901342510414741800779250658431247202265573755014214825615616159376537611229218480122378868483501362649528217862783610772108977685659403308279887146512198726984910226822978911316267981852353815472168536471915682803887011651509576623900566923901032637807899188221598155219654568370888787571356318049207187813686593204616443155920344575453910239230018468169811208965097609266415653893530952441390960715486604989418032758845439145108729504050107385550668584259529217840961062841528480787426450042377904301920336792709225462030454952231366719624269253767191591303191671246458408685662537270312002535639298856789462069215901348205557116920502251860467372895091472276407536587785568411540644123973962646004878633948622407700532797052177865693435109086354205838204030010217956228142653166739384543297451122992896035743527330611719470235587494611645343407040666415314202214262336980558513999507511335900143559292986210998028428765367553135358227661021028956276890187941933815933106448322291379832354265129209643621312422146630942530092248766964916777191072436310223823640397393293167223678910424191044648655080044001543621083755163941046463086456942028425893198593836248585129523052703701001390859032037393961489017249264661496447732831086500764019436585854380802365286898058160556926805518302564578345783971244392689015240337672862673113117312054551489671099374664960234658623753612209580527886901105222642837828920837118110863065427476737499362425188141846100333131797709115616196918250023236471512450215467099306583644353415289148184789759278276004525245736693656182766640425692731858224689216042784317408162752063339437422417101153269656869975997366613100950671351857522661212894136215529283323363438885018744578680107334135169738540108859314362432132466035428252175021843874752195152053104113191350291765726275162467834489234105669741610649832579746055075020686959070228102899952583916537812776311409136437202154437656385416573143558281835005811082352291632422820522934521880708561440893503020679874494171636951373303817974469454971495797867313351072626315350984296246946138737402051254367224780016826476626878765968737955034908415745479774469493670384545910770867814996826679871224048343810136348507875194129444456507459939637436792709593791689214019880868158388500460851241206173675158120384557692019577452272867647832589936768802494582093793627986607951185799999086865214275326903546460377027892534301642872915592753573946856106379172904745164766403607757111097522294696589529420737199406244157749957513167527486059527716729598818803799424994025902061876020465219876945170850659400664602188843999940088954868817554257358394468762168387678579094116994629189643656432561745068089839272970526246005321500533008254242055354572633945805703918260623430443466819374386217990496880468336394499485176121089751792341190650391083782859298894887451448562590774832264737231209928603726671355994550507532122078203993796337888644498416471699106875876695588683331647611323399535860561846011881934356524626430914421277357384757465113436453436146478272259321832052901107814717952567850679711415017627042689923599576655556092357386142396484111792828782524109783280077107172238758549734695526832620976927501172970749179851081033310881855989958735062808378426707157529167152574932161506815528872783747480659770231717073789985662274993302921773179460823055888570893389191911219679371496912033329772851935918750062108937136165523496649105907211066536246659206788315752360969522391140227706696368743703582379069323323195440365056428196914586101875369269703785392702068042432492684221897328855307994466425520506902829817943271357107661405385089875547379344235895770295570609647961668582718756460849007022685932893408865590922242971815181823109832428855793459370206169453934434105102814099773188893110051376307801762672521885720589174013191669942801221072988015134626463259637510437496833184451163459356669202312032380983261681346803156714671937961564431949232806367626041708525005339069030050115773567027511440473829291957038984529406103834013528485183660798230671031948911534466175297292273034009011806970780045891684193849661046070291669316499590588977756117471061254138876221713212333427442969158195871120071091168630840268657291002931774600524806537949492264997813617228259738773958165587218912607609748191898619554304498314859850128790176612742116668014945447110865872074769577826862407079429105009766860505846967088588783363753501832553205554351839804891188857227319161916639108295052706837461939900758847195107340775208089178309068708591519671898311299528575474782581168452081774394149103675297004261037141228210047037409542896436261244325116909629647305964042803151505570431021491680343544797969715862909445800787585599586724563984819953238857061430899723668966855616952793972706842870009202850965522449493012455523277868671586931956781128484534334607442595927513186791346822573731715118716118562285813573822152794034804826531004972953528549551000480653129858564762443886194570144868279029097389986556654140314433085468639494109313388108013365904725968889539893221839218813937969842503876485400595558490388774303384069340763780777310309357074738341389945949682337345363874636710017543489971938255434655336377461040446867032259366941895717829868063426929966471445256283741588757823791751059696884061901276336174887654573356477667237778675048227806652778747017790616861660457241748872421950936085098971674154402826997659214047551320469122764507628972585119773003167826994999587998859330021267114093934180916685487042640554362401827787264349482788969718556932988487135566874594336025609373469356372896364316116371790153270627462602816528689484175263791096956418623429634423506176821464730519007633053647806413298243477652879327180585068664283706601255915616308453504370724638042637806145774432249940829838090670567509534727593695022432988558616358601048965734174549480244039256635857004231172846097643263782107494818866076632722613813705654972277883330675205667902945111203251866089406741882703839050615287086872476805045468679794114674063412597041952705414097341835588187313367290801300219122908530739569192065241117270200767839850605955726355379385378975420282659367745311911293196280920048653691776750503063462339780919612001844414690944197291818404603375557040201446908164501412009669833699349065940386624512787239135299177765020897527615254469248374052695000058780339404212316858650181459186584223940764108039377168218415951362268242463103104186388275487487513527617645410157483512794497965316672997313132475929038441150591333619654068925145412277550927379878201285446822395010178590702951610365799734744313549859097202460633798611938964442087351212416676078269570507454764265708141144726837059467698231634408822673031712496950965335741195311430148666037886845240290080805392358235959905026243555505278602342878361583063759507624169996291172567103360348991115675581508760608403355377875578787166037170364795456359423403627355383835508748318083910205716864346262039688583046474379141005122096946965497402089284407354700912799008926633906672486279875356693301332856309484450963880700861016719962446334402188427965867612256256665581271138938300031062519034790478865780646011620347817275422087478035566334916637701216796491867011603130333481023047988554615072020983108088047216072420705503014521003342279729279411485544986417424392454307241802346179115398870720720519674439087833551970036649771106949025907416566337890366235851442260024489522741606202309507059621174705008278696677332788954764322103033358922017965701954340548655154620012046347567839940881795922619308973524410432751725766430784473044544333095770854477261324921260433532488843767768897577528013310137345370496162806484695835128538032787289824808533533116649669968092370387220240486669137484003121404295821626812870305817312219826409058608164749196489955047992945850787727803727722162592622966410976452942690976849564901589207512196077333956233955398107508632554849394476978792253530396626865578706056395370586403630885604912129733233367930370804157468532949836308371001546038787337355024895103088211983160815989257696769597562826658298593966124169479806697904704820176221761771760908490855064491402115504566277801125773004569551029287715745711774572699771194424901923332335929050862204904668485011366524288549240039451601528434201025723573410313308191054940328391627024702179677285691820093651960700211594062119027826768597684282820894608358387632439385982446275857609666687612708310206759275720953421685786006572566757910470006079477571795923028842382951026909284724879215332615844491503189787914681301986570940889719662622157599887443039571079977530820248426664834204696813109387082521163895081904691266804844828429620489763535446935647692839042938095794988004865584969087212598193925282783966706581683447915516450092880693982936992488261759868749207498073978920093896196798170557466978866662171180125329391509728210003425877829195218828605025244028952706641864198946831788551443174750602049060611598091029502281162891634215433656084240475463217614023712072838316224428749663711652364736484392043563011057182135412474147132625556724290524419777680985175845450437665942090505091654758644433431849571939461532195045198104378332538185380181416555817548300426970814729923798845506116496579606844422080323310723223322044551970297669059435428262458568534468793109923124120387140551344370098412340871629149800304214750259487202905212240227873874512818153161659419908360327414943273286153359637280579382849171032038496378569159012749427605813872337535399677375139450880405178938625455320883236925964581698355042468220481876277393974651100566751822469730406475209509445002517624599920556287952770348234172130259149548721010190784358294514744023505520398137257959781775419038970865922168566061974470345576618701443316585010846993545774409683605930998499983719311427379779927445730030793444338732439841183810004813888565125146425814951513415473843279295988890380542725181531070817565893466336663066748446174682859472841322080538845673740466591958188801093241639983136363044526251467389879652316043007252378568425741559343196598111506153272896848364153292368437559373871153968313129922563071662512746148688197832505702031319792822629670305162600764743795573449828321828012021960972107054633880378097419135054777577064750666366809778312870020499008154536090686620739946547846584866014674805421989198353462846595339556761653961336343625796533325647921295866785878180620355697943695804959215220684830860353312523484004695293493745055784903832000099283553490289773241474771440195947933264972636805480773439246262107341453020669317150429268365432331733396251945513742914768158006732409328160129596288117170905285689404619735481969331995103349290650060292991872595828439405902708426848005055359498961405743407937393089621811140322117883253762440207324836908914433331655560442596974678970829145511168588897604873448507967431069536842997135892374468883526484867804632218652591796338367854104806894214305973009691191335243789209363710783370227656451132050307953903444644274871326846760696267022697569893885216235380506918973903680559830169587903381681836227915989204387688117903804914760079986701732936779101460876048021949409064989671680807596165775760410554607158693951497872513768015567081156620816150550584483138347990610014052866092866773212088857811576758235197018065998663812515649856639551362441118468444472544395586224733967369003663254513202656387928267582349652937666216565512653108403635114391750864146128390489250261102036613012777318307791423490557717615945427431409544489383820494338307677567399366813183047938887975391992704162652921022037136968291192320169042590110472164439596194826595673879905567896064247862734261262887831896943318411286320287031543820519166644315527345365198831142375009213518662506912689904709751370721254531664647976635775417745403209404031234575810923426599739628377251858648747611836298700676053487793171216617649129503741594211054427888969101198483134305701504393588340647709069872850752839796173917622305143725559928273183148744952369198862721601941792664381783510955499282292254615104608764014982313584276850366727212609416752099093469098682556286326880336435298773884345423023452257045510758083498270487731381354322845485061098597498105296678694337998623665734580594108104323320852113390091612735723591674684841577520760603478448426761595434359031640087527717648349973139367448730713921259071601651372426842677281659418712877222921858871554675267015319825773484702162592147395476247763352463161775008217756644251757512132334155466815402013257771072842481528767078313550410911622631185907674557224882006553846038658461475085246924957302530853995995665868444999804291458024754728770665857149937032287028690884327991917245682086278058837625812913400413949037854937683601963062819590703323593381548682871756637411497404403351668825960404363837409461980809750533738287666435840879676775720300062390348315609877217065048870619653008064481747288254951476488793331056181026415184685452913151534418224435968393553564570496404727220370667537727536095906959880470116250524071745271006578248893043257846143262475113533801584291349130519465412785893594216335280680733043631624393582097495167649618518505736117143756853498441544808918835602990740362310142045690597827701936077917131341196965284514600521582607780214423620932121289570618269222052237406931228312060765715222048278055911555750783447943732413901928858444914470795127351998311786728587878302424060716460354875326480813519784954810480919222544040046422139346204054000050013465132322754960240655611360995529331061016087013617237968180447002723973953694444084905592051598940502222185999744946869251041890142814713854803890179430730775560602202139556316224981056356072674501608094660545141790430399188491077213893723307669871951409485633787246793750029427608194573749968203703909858475948730716229159081295282546779056308972384262579301541188008659217289342371815148694966852682221150530153988846657654037484785095604911262418483376668642656777021840412352986261905348251542901369296053174907750707451333496506681600470196407585895804391522674613181957694225786140240770030033839591322452926836126521705487256918545192976056970364983107264465380452724524117910187419767719860441428813880513293650738674141714893070960299559447039846185008958964672009830362808821555845363416079946682508597020829634787787781814846832722981271079930412602378910583114655368291026120228063818863919563086851333853789274606616868206884595224864041492035959946689612884228867999912526960179317634744248587639272251514244215882538682029400624884541172569448772814326213743130856739316507557140941065232053184229654939799833140073131514143188756820874555360977191545127922568489649874514647894558180833995818127255221679324973151021820357378737522128844040548588883415283708686642613442918098921039879674832567114433113492425700413909454921144141147839975356762736618269652746347944724099917383330919891117332455638855132305745656789267767665434996861135704007337066408656920756292027213594342403358984258750282529846015605410949398416829130567361459009462695600742113840947502519110270788958105888458138328885195477560637064663721099743609315290989487567756110939049271364172296846759330136532511468427451946830215508319610682819131982226966480356349928869259024572018572080162796512883761916026409940769707991985905355810107173156860474591408152358657064918511418229147185315439408513265572556103988317797264107376257431190756963284504293764941036625497370473554716854638442328737105202022275684147406544068537519147344592704072905803556426711548192545711317734722787465149535947761636266993392705680989036859761920585055899627971447323581679368126670073865807789345311276098897818304538625676761359124469284964835458225644844248520413385058082636813084594098984182082481091460965712318619021507221573131203755311249413353763734720266092659021742233372976964547008373672332530624130631758421690743864093087447853582792929542383941341802296131126641815804037994979858164300988843307196972474738663287089387250861274786118923859143663189586532775084496082127004048688557114582883517470733245424759349758944717917757077198295641774828786623155924483918439956387600186577137580832142767379565786521962019252075673942789839923804962160550487020548207423024096615396928060779325590021783703057652079891424452663448712210757941958550767786848209659178219458187743492113141972038759730910069935833256415824771929278900980534546254887276562073829188324903163724435934718860161526064844762757142182422567954065459184238124573134319488776315378770008800518455685345213394339498462524575626966695288695950424934245284533399983298276219786882469753239094577491021275944671087689818687725495916759537991134997890890336129574309085398651594405209767958568982024106224529360399673124349278176769355939582632010123480901932291527637689862370578439984055830337304939194577442431416737632288118845707530102593079039962359953027940314608693193931322088156999770573310875750475584398983957471234266646836237542760056375498967773824581743419973786243749710291459682761684351200899445278693553056454979216827408630074613141881258404222329961714259513557104288256515614858533140587436776814405263308594588581852403079096335290438369641305294254394828312072121228149934801607734186395848827900742135751897965017440580034380605821569092725284203721512794853503164171419344808091141899931022739647371852404534232334282390447716108883403460940346505851927579765967347272009355967601873083078861755388477360323978763264132699191114796220912624438217419844466496955803552517543867041570391156608180324161387753326196013666998348870279026295976558357449625617027361365246778181671953172127449048376224335200184613090084995025598632508387039008737078542870637024140859412034508721590246843555605349468598047220447858813327563326814067807913468316009513562605943283761960856886492159026484679760960185835260005264828886550757891658609690323535896401809468663569299384392922894029852363216171586308506100634668779341752281792982652278089066530583030661083804369601590665551104285180767363041685385650564726587500834476070581361293370951304601775750457898576346838103666985696004090426602083215221907933622303867380286706891317593211460393302627700087458667672446743699079113359913685433837324233746330127476408613355474689001804317090207754237286330992215178142140850800469880237683546929729020286185777268621817782856209887007179744331597560126234376959016737564735240764597816188430823592645497724447300212720847868296996890157993424236723174937476313709710449759985959146146069584434882001360003266105613837306392162723302670798493822657853834384309974153011249361116241277271045679395446187431171347292702291658203484117147036818225974188620599700527920124419926042844392893459892640161003420049951371698976571282187489583719755975507993540216979741638896032997427331618734836798760937510412871407665510831625724574777137264556112290838196453944411693356222093894101465883391205018503557994838629449673857387281046210823336377052869965598877490367049921103485679429242488330269719149768397430840366139010806917918131338007895884992365040371174036189141451801492762170739956296364162769784176282306851996518818637328077394162690698657496344449639365422749682424600152359698395715843010558287267800946204560597339352804160935044844296425198874643340341149090984919749765782930038695062934811339350957850399188691889938322002647641277600609288639595457337632318651139127210888154064591166336073865102089641633052997628079387783663913001177015084071613700448719353942813706620818749612976342516705309432825567701935050081058367322331919822448522304897865770001511330439672163664796151427244647210924621320030131498178482667967035132187938248477727105928396104196649301342797638473726294432119574462764990468357408943817459937972695540652327476719874683927852709077751661419429086781263141959680782935432466454830946473635851647076363034496188636576552312572557474577565012566376837974870388522479337749352609065567210509077171096758073217067992619427885436554061516999316767479688187555308634468174813979289200958261987077686818613262272373981624794560319998616017784539442781663551196360552218576303608177294981950669337625765425996331516786982264617708316355598202611778930303221688249103931999949187727180575111404826606754618013097765354871396071587609020794898385871532803569128776237424765043173588775801990369792173605007392880591883952913658248566821567590802759966278670626061819825391575432061862694429466905182556370922912158853832502379691901426510397732660586099489627551129732472404873650441189865785735585321194940519590416516142165667957507009830605367227392105986716511203034461012590371303090826050926116525340623172246793090437031383145934492478932737922885014618704166620913469871077590663827476108485699848067479276696217148046058108883388807489227892089600769978544189697931364261054666103608412861033589801013973674102713808510051172098539235385821849938403770002180194746486905545565097820468334587678649948827618334447878013863137000471563895307991221615558962118089053227987624125928295846620479098329687259048209708076830498475433326149962401503501348265003726175117748459000350779598611341949894533438078545230049988464584953062567752321783818766643052559499419051584709158366439389379368564537864621553177694737620103281653914756802058324066321989783824483522310423662786170425573149612137941747103293722854549947230995000511714259604391262299530643021911421186695856451877037632758852575441317648549520765562070096208272143484793647287266562822256240445228241612870728562852693600742955332301013375664562964802627943916890797390412842128910311735306538466494961823511526342017081764722258169741649766998461440104900583534853062432344145976945068100624982803940946109442466205341426708519277744124093391393247951180424354016617749765231076480331144047939519464771386949129635327676334209366482069271323205335577959515592865240578078494952360397165359143731465966903397647772006319025530092758985965843286868410884769173473212260558940095489637604956397165118461555201295454334375369324774268067956366600779195672651870144524374513334987048329757426337926150894766661485112792576874405080876679997687954472086740953055698206696226223991652731643559180128523337632167446656397381870515611112561908020302998746586266063916607319460901362992702991653062587908304067271163471382172691480705100100540278945140480370371986903445047724488122653208705969514767480636855231551830606309132971496356751336553235111114765654528216811769908295655971015296222341936922639994841130128203219642644851523887798763926209349060062587006411424396914603253369037351496257245364984416587641426297255216474836243802159216829108120895731750877780711451860117929032188376413766537272571651041326560554014249901312040623149230127883323931872909981593560231300481649039118523301472222876925729689025842273238864121866171633690436246046806411714735881870332868466289576572886238895510609309075326843606765570224258214460862051279917959368435808914306299596017952309981642552139426189686879829091994320157131106320837083098517616309813575563790463213260818401064110267931187183660915585269551662794678312639297662016318037133705603220513919389334740205441675879330971353490928405188163931529271499225144853818619517208438832713034305234002864847443525855683362952853309167396680298395122594991855746134447073646720492249425881862083387782446495893122495166238617007738432304184857754770043931421815632383849221217940511970164433940312639580058116298355801865111566352583896616597225522623731389920294118638578048354649177930648436596525873095482532291221176784916273099762966975767940899822323756116610231428784072912997739234800782371208596402334108962051875331648620503663244078604760121023041384715096900166162289236598197866752878871554190124958269063364450059345628506341121590084710485793536934823736323131454142215041771461983288985652853490232823409462558762916874449814208069268717270652748347750004168372002551166105460075602463539806784418672937313837114098478918446283008820046902230653825494333739777597006478190584779331620037767690548601421948943236347842585071489926369569822969816990488168774275864080984665074994621079443866347240199291368872898519237939586357916647743106847946784747910494212319577895398221996860495371864095841832698111841757271424830726170623189349589023607429290847022935051631175862437452111560420129174013304500986658631758426354836690772754988601233447934119487050407953764088253269909288495494442553724943223732503848747389244048947124889273365253903568286573407492685706505131889024452410879232015543611107533952141876531590650796502479908610731480195512774496189616568466108529991163840122546291856589325720252834141167115395660560379475492268546797143419247419473672135240184272330255446615982221524679256626863891018165467054587284045358775353082792400977235201491267032508081336357696987786674761478752404425679493741553536905411012818814727859512305414613996546671973076333231907105923674507243171905235368883140077460559981834521914883030042594905909928613046746753848284946811598357848397014222916544546559209168281325322874454993598195879711114215086692445885849791976292041712036861789688466405619593060188123724388476822751934010243974541845212404274342315315900915153241760421881870559951324993013526806057093156838438591297142184716061841735068431368359004683866053846979696726874890154503801024155144884058281624976923954279655879004123713211783762771942283581548878137636017444499943311150901397363275819769308957816855444956466513901377523349044395765115944378400214641279094628299727103176265590313762809433583039378934399669506491400750833275556334206687258993268665837517927124591968822116216486465950017159140519264775991623420578339451169300288462294757523859315078890595244535676223990223511976434042365147146046365129347508175016971076082371998277296129916338954250365422248291041893574499534348612462723064397804460507829176202415581513121322138411021076380655450230255934352225348484121735422728854160325012456696045818484968770890649157515908036464568320261891050611390039627995435451202398314834190948918014556560627645877044180037669827777063693091939818647985662697774616704224829062578507356012489905473297276297832804951196267377128126839870801915478087810812641817649223861960276136460029077671966537985635603610119856406302893500015001489355852858823059366270199622988818315359586621853621983430585888350073216828333133861210727904323792082031017406252603929426939655434979954665152237073946201008727289658909197768609458565271702709340934489676324248373507564090272590881064799990805491635934854525598324678727112632943877381078491708295894591381413225532783376353647118943450303850380926648635529864013777361787941047204391220580352602351374143226317735211921920410760562616213634173957887780090721552122902173787178054794430774078537060372508932185089725787363004690665673584825627985270681082817912234406736239506876970548374341496752641300822665193557973075875259475771365609968982295215159937600602641922624921151047683472488143214685661280018535394426612572503237164401406132779894225722197514851041004547447822506224825095903191093037151156601541490181190345299221936731173147408566218603006097687346300732351271547977910570328719424297670178492824286978813007986631753917814401037831349235087437415261823991156834662947842906493219130658634762880309614352560066288324661541045304772371746623266580915910407990811146925011483795053338221598041246880378267670340590936748161677993609286544885946356773606430203036825933060222973828553990545387808044344954044656436725448823820862020624432022766346591634815786947459833764706223781996494766653179145746839711105818422557182646044957975330608391853876699628614515330636311701226630887903762667263504944362465941132373534408889559983694191836986527180819349955729015057671204105357914841029127049207696468130051054907881807078093634762811064871166119198472414889008856219958726598328244946588050671579936572255340620687683308537149754706892185188391097126918779868439556823205478172787267515142226703511420870347688264212016291141135020284938636682776761984730801346374504415048303794556898846561420928634182137385880247465084995331607061114302105260467479646224712305226528196829955229170616228934049225446810532594559376093017548355634679188637470026223919554609738483142129016828738090510761701632187077711460330334343603036389167705178263549142785746589743847657472074819519910727557196064561524580913608969114594161217167202194125693376423650519554108429648457664576003728204493564660733214352579310758954504179426816639036513403234742313133316329410098687497715623163808474380264642645141634980578889614704310117643286030953525066474879206426983902820472035658429901139367466646353195501268633609220983983622640747720027272297823712364324989279711790722876457248382983593076241763808814715159075611249969137391961510985382263160980423278570121033235816241174818689566706054144741410671834129276822613221115414426947480067434155497125484314936780938291873233728741763353999313805014917264196081411316749416877874883862457841022978107876794432702710062587210920620937998500446135933772283739313372540352740294080145016316513089331609783927373078193731958225621305142857681468934511798682742131282752322295035055601560473691207263321219983760231969008340221788649212429417792956829963536020115269295928341549877525189272742293216637525794097209003112909526672561796094054175989531347215734292956386149817578442527971717488003000468297107660128901033423061212848451602232710502101251558808646073998514787213801075215944146009968085196754511130548405070710553886434418352384982253795583154904116580774705011923659700537794893132727334586176215742366677424990287853885718796595592088147722597092874508697765997703425240339345507546866399985237727196440411809915958114009436379036768779167792746604510687557219455967304474415281143263356020275726766739664080986837328736758352100581214746986835301702054954847678116491665184110975123875101579186077285774659911186247601951682144043533103452315601972463862766677902935440082162824009674572811263328472071507974749155003886596843607937099960017244070101621059060666208030813449436985977768404840790295196238968107391899864327793081373683351284811860034014918169850499758580004854055641853230218780561863518222712269019201850119406197708197381945025876331892907676424026571314619531706570486905151510843604953146539821896325408042789104329566497862415994362898251016811014898872374919468056852020229983571953679948941656260945082865859714720009772495672885305638555342365382946034158081645849698492431850444007383011419114081182292339353684521504559687975228628474765502859640411888624108649291169242715257770412204521299462674503070561277262811306792831244336091723761929275460338807664791980197472998809926362621390439840107432053015171964625556837666615951558400396163500971218551894942182737047309603798143081146865417829688794037921021202999264955725337254500121843600810750780225235620634390724573796040677678937986089018961936254871334633673464606105389220064785823617896935478796243309389926481453151050625739848337963508490988524363829539054924097936187507823967192455421053655334391647289082129739500652363806416019444527498935414650562541172916169410583419383480299517403441995877201679673194103645828177955412424046564420109686732232557745240733608783006618417862756021260530231314493289229264709195034983474089466491797009456678512521168605112707047659172083089137996223666528272190669835548329266074039927074982303375232151392746344890639069712905204095223475864184118677883288808453265836418526714119646953306357391943824925013080844498368676633950086404166839208636974890822917781658128580851463101572915301372365868868250693041786050182979005029498574056949498668136199043219372727115201554589428274665037405692080769443433351657667879011109482031432817191662984488076052113701148168925941781123922699920676434756432031245018029695541028682843083988996024822718597903896133697712966110104760265343943829816429664878812736293651299760648534215445979248440708299992325747301630469029795332454077084523927509152051294069710112531513083154894722595902694442915382478976165762238358934863409522399587426968009991908413915603190984391176780445375860105747804548039821650699234678043158555596961842741839246079208174804927769668742023993293723739152700868795655535235090423082582999189212835776841743604095204035230436551448997648746464617038662179506527832227911396452250393531752443296729429955849450828527023585384323974565587295760647714541477088770519704536274121464531149722093133703599911436803416119475090676213971345730690398570031948585004930963518541092076268913478185496008528410419521065029785310133551727730360296205296629840963482226015711833267975474561117957367348718657348724195725347610122270464941338123985549116078480013517460702416482294787775634973409484832761791408126092067506840272976460843223808137845152175426447801600829660071940822856090753094018119175102803837756083999632099497004733029764191935332130984262914944551113899897387062640795964999914964258175395882452831395452742912944332016685557335043383017167992672963550041944245996240500388511992879908909431555642422254919885546461168444580567344239821911636456754117160321422339751034564060036564757668801323417032106189605378484216629533924824001173348536443808708095473156942253262872359290640862207046509596033490921377381768561009352125358276758693340369869378115403251468389026852995517335884994974681480178139242923870155710356372661658288958503486644014173834439688541201055203302853063365278892123785632207470708522603143188158722819488955884956994184003638777449655451927333802494683822862024020671634500795019393738597981821045192421911650334687236319556466769943342295180614755886889006584365618575832305036572159372557583401774528338481220954182538933443604343263730099914524239609445596405768934590237754789909969251981497520936899638389779263322417729987750116311190449190279699902119834084714470589815735991862574766960521615570138204536761293839025625998933591551424875462166226691041013626888337307104067893430979957962259307828084371528427492161048371117252493353561430338331896939763787045767121901323545270421143343560995394525386093434565769431067911669933881010566524483489341416761584468556874262367208529999924637122852702059190384702720957587162747324944892553337612869470609628550436511874060098791856884605015744987153742221624353805186946317937413957255654267482504436678823481481806944642181831094186436006657313674896383891424895796402012900489773486389068822303573656402520573087561935906065259271596470216300813583961799249856529357810505018117672389051738591566428002512118017390678612602624310185098022870492763399495471787257922270521315643693791907089936031643284354198528694009187660359451812146027619231504312549801280770753939556708788823004588317884994862064063933357364201060561991381489364554481468236288843658188448910335056052779132043829199501021154078275331700267551665034336174951025942076759923701827392377448765116478614165428839997100064210547626497651446831672459630025056546517750277486818693275384412459461208816819748479234201197809383536588104232920768905963451723130397693316975529014203760385876971917964445508254462551002480292038135854069883160934351003174860101978217356009733779142241053871397265995311097313751010088909382672535300308485216499960067103134440919291929468305945182183887850571160731437225655049176572910486038502431393610589251999872332782010459547331689166495310668812807201442908861788709077986086731129556460519425446881781540239656300032566126487586890233992528892146304007380470307375742621396410972823886509783344693766000478748547556438989557855781446149659701293635179101235425040465699148147210277570179167089824835942942928723224963793649666353882180670113109153078081872947154955294014798335716705361516476441989912692351008804582415043861128663453058765686601541004762052319444274275960588517771300313759126263446437653816891610090723489572354142369399429724271909185677744756125880666991970107339060950374130653924255020171182651787251055000960341310993538330488343190875221635393651989849184988377098183448038427875514515528595877844034843807380309271648807730778613602870161800226760179926281666704220384681734041723477887424527092522806637784433261818798197200847643845777638474735564126374932746349458280196865293223594328229121649578569717621008282381413025753728396030351606368331135841230303265523207809419215085171001983580515116963703351862985289029924282026093288441095522992202413342650203873871495119002707195573971741088454098008935543279668777288343937097825172621447496767845874889338262546975614008372318098241337143049133503012282310811138261254950578860193865120250420481376650610440782107759297345751143550249902756559932629189799775738316594477682431914431419773651920114475393533755826569608113770161322898740520054637861160750263985779296328176879389918964881223233240741745786140505093577534230984855021271717682871416408607989133372844464816983069449948684480774383889573482799294882557439638157473767317637198437132781753446626334073941467149771809094778533247630278946982280353891909526817475109483689393667246252279045501233765008116896167184091371372233773327377928376515914870006715312927662303346007007916136713786288968838095440382310473980248144020301460853830778899953921135692621651658753102953360826068898962412522421216872949735867858983944804845075196558904942048577149931949213908410257874678525155487286935886340546586911509271770316366066118614331533162830035710289648003290932274709217497806287391599231929711245311469298035963412884179503950712567176143961209431310857851284311467045134717171097393521288713958750793382679836511914791161861610806325866797027160071291825579238001761939971159506047570002614136408176884764758243675534848864109041668650529261420794928619557581816136810766363345304170083593685426694630373590005485940435961398365562073646198679764284711147934569422981275711786165141522757933603359701201342510348620710375008129796958556430809581884220538258718986201315467292871977444606233991807636603102969914424420802504147758882955874413986323470046403726768146557269957044434196903621528164231308186922148884003128803253127972248887689908159099313919198543747166553265575775759221772719919512590007806930866150212883540612689985925212790940589627632679636614674099535027328878817315483039217343668450117875554056842466474115634368302072183901459389583052777806338331516829777298832875707071903046027033056731727343231724277232764690159048509862691949957830252985189337993060897211362851004566101099844490134902586675259047342113485613369745926614904759754561817432286567960725415051162862356009968421206198470101891845427039117930770407293355923852538320936327401555412257287379683464650367045841238807866260788865232374821607103963879795847340332151860614047288623375650385458051438187633177569125873245373431581821991862196814635740135223668658655059305651245525012374200054658442340533475358780102645759773389053002629541335576097103238717677468680341917519437052994699737159094669475655130022241607809116271448526099370264522548560601533865150524832750263722183255487340112081348872785293252334741649198204110405415256929285941029224028972399972054694595905262693568144219281807893715167827901355614798688754877373939858728630694077457019645867839052164202186683778649797629194568815165220589455478659708886846447544031773527658355181515644492292233186186931779772962777915893954246887126399939566783502414426039672382955681947594436711193624607059319289249851170721410019424254299851168711127567672736277639715963593492455242238078364162626896043009335859098471509892518010742122487259161306196055717125752019583698502002087361839572082182080761782606045517711024977229867885214425342137537778650421551253435450049955187529345926892335521346283457019260109851751773678286864793316904865179996607642319959483135465395065244901539168789710133386924812158067885895554136456889882834418309036968759880913584810991989661664016106475712673434786814058702817471419912631161157554439192235895918395526622956754686187900065361211795774501853808799249658806435547367138169604999744522390186322802755006859415463006810036412247345825390208411338171356603237491108405700432859244966477570736071237598336307372428114011392568169819418216194086093545747375772549618534251348697221040086426135697353230091862630904068163117303859600863499567168706730279083072511968493730726803214641056205114272391474076378720112164439156178217827582463288973847208199766003075737308798711525307569412048502352143119020064158784290493482943164139714595727673732193041226621809566900197140003596341712756625314245380139299745140293721353225029607679783678686792702145753811618672536875650159782584366745332568551345197558555335988152387144173634782636338672788792858515809756835286514561700523555045517638815650926473584302937331237793241526075980387926218712108320647618592386335528118746194651696555060348617815578211854317888498294225597342055623545249163272675703524448427161754207807377094230882872911072018995734281900900540475151481084940019214146808403143545177041889622642053374659323424949720513894451182195964637635559192296338651681385996078566691756658103015405898506845686918696701472496506999451618044878747788425472986656562248066943642121191295935412575504015090276214569384459272463576663800281767279629150617827983927791850764537847131846916937266820222013154056122465477043547293782775330185916316137709916067314369062637517269714633045154710090656455857394961618006742130774483988454642694117534796030925674796901402472363179462187140470402216904542526915420247350202065707387835671548029447119739130016756056078499461296269501331486219258715894297289202482722551070615066801513677330499431093559982185003160653192204709587007704196442199704533512379170927420004342507424828528086755180305187908121354813165708018917484120178036205864713020087765133575378987971289619415301105107569023038861611859987642887583474616122325345422910730910351852398149884071612149475523615917109689211504872824850218794373073249615334000819610364208750427658294782859083291284592950069432374447394732660467816637486516427383393566155251239190975822404410646472681715640834711595544018940456415987748813849045613667958101333593277492405438949365956650954425208573167722567755295150757062719478497792246314009585895318377526626491474580602392956077745770866736009070403172487923787610418230946972928090318750364214343139409216978916033695588736926765094919295270301099067219211653405079206164439546164001426635542720841810006653214734006367310792583884111264340279820384700588303630893753874101298686545259596204209354655527233109609238271246120838346986880170708014107196547494082683112282998878553457091594278966286408041658995628532154138135022959925892531413189783263924012040524658109166889314602132104119828387332216778553710603186427417184370179476841521429106337461397660721843664897248869069698301716817910680506618394567884318884340787201060733281158829378602173826992304222855507961195875933618863621638765768419695706186953883592470547679028951902106691548159796641138586559370614958437673870423466363020336637671868399175149111597199285374627143344124194252548394527552229420295356629611587556372210787725373488810163575994111254338036953291810432647860499231365499059029234435305629937082434978028869817506268468468064313053318654545687129032160185916340189272028537111729894643585192967796082841125862056841549080615253416212833307437665609033961701118562829211015995718388567670718493174646655722570518594916807972138093618026619711147308178876546922253501679850296807150154778006202215039761236017852170747302222415956197053231814568401965875870289015182334424379197314222182968033549496229873335122976131589862987095409669223812888551069715787627333710026861091294476943392157894148140832250301442678175747270656999709206347153986531861800114339981729645528631657863140357545054613537761774753892150361674859813401397819328589638630545589692476050867580819518170139406459321407169466122141301819936615220810312118609983542903433691902227856405326182655770006256312537663136977250534599499212072142301235052378287223998772534392997772550204140613962728941288653913139711565530629980309279589142001881632238063236935417795069123328808095406718119377423134594063649167060290324984313327251702441140366161716842537889400880570177963057137093508231658867744008492069450259189599410387369018029428030404228794664420686923918305678533688728512448214607636665147214356939142273898764936903598227681901945319766468935440188625652056683618978763655837633661297322132479591443125626551496061712023118200702875432513721452922454215911690499655429565719376126924017621135951185818859040376277982356663512109345168680660936891555310345460234641557938632895545147530563511083659811925828076603642839751332464083418298419070889191110484876518815589960686373009319857438771022447423824390632233835929343383589426620017071025266218548587150751177551979158673832768457496201016393551557284084855363579327611946846134448043381477464200259885803782370389767410714020751150838214882997905100089615644563413526702855121630639273507293418674503683931844436393010365583842548634171154366344782341149805877234674041391705297215191592249222836930681061674046736154425954634228259421100653141401698819429520719007418542613009765578077033298039296522190643544805736330518771946551277960421425484451754820279929068868932168974474776608337659621662442551687269103803598991955107118480693507019074460983403904152850209267405961397130031809049391962676917796185408176976533146732406298569875986228979534789714225931513337443805539256114097802202954108473584891462769527542153389599219741712330669191751641505697641193489181549569255908989892905119542747062079638639393068152959825213321063954252453653205797631762245283845760977020874685167839988631132607943006819833002557803714219236910310476368061953878113720165556011572104142332871671244197169781811829485424815629933126581836043157610583559577356989565951503979340446069625738416641369815707284932917476255222478710781454290505562397969736662142973674636450961718600130016951041281754364231924571173712976365557971197538398688661739408346758917151514421651207400495542206788974368161351399650779016220541574469428919538413436751079204699511260887250080275133214642422376820267093587387559467007916598548529900764973522020130086596114330580918354510573916210197274217185478824460191615116506268707107075694924388929921890279283538466589820291268225105049567215729448723970005204104163286885716823260745544229547568539916094688466308414033529433810486818976515905072570159438599303235570283046772984806047017669481660212977833780959810511172654116293424744227474720936489968096167601232412926733656097291806206248095513449306731355061669041089598120757318279747997111586985613773304834620428794166922996012927439347009078249739732026176401241423282947270387608250420997826183796917455202663340006630475032673590766392286176598013114870467326956973472868113552850560264094922441723562934253202592378967690727991072318751761689485754244061796339174444325998272170031873499141416357155264512112416545099200606418532469388956128965725757298603461418963632561542173630514558538855466554877609360700009715287149339585770755580833039098276687089185156442387801889318646443063109810496584071867280712545831964760506705313832754856789017719991294536043345089159537110323889373815692574060456831732883567560695593627485442173704773368939014771869734984390874419416631996108318531435790529595097912248347745937949420458259139628147370331922294671359687891579454964409241116282066992805655312854110812286315622251680107665695769013582951012852430623580808493524119752227122694604989707476817322962162205442590240801204723565915568900827898693536213217007590707081668418109422985555522798648993159880754109663179131690376384318179298269464061125310319059702967748657356863410144956995686957162553123655900639286981252113218091739124232058498341007563802364631752520211512290655212475591796725668974191027366960177343260486647028495769385055249431717746676470288738598568384419325217276335664589679256095152189945790078776932254352214888951902113396597669332468830698935129789661258812488675302841785632355391629245067662617639154582470351634532941931845089512629754815173448722033675185136079886709851205840538590279963235952386510935084237312721879820039129373662351837306934510667405234348905400248388736919253897581758519566946091894951032760945025659950554646750887274555742595060269952252810462844031250911376476066791642371099021843473668702946768953793692987924705412486343498170849259021557896219942868777408659738379663370121873219295689907949956279293056742373465684792725463490497328773926487215705465656540949706985601585490078427652282178150516772342811338477310357706052343120905701925953610289635698217840681461116565910096710760009275477558316287985088447281143058026826902894947602525586468898576789006535541091331236563685567811167709238876813242617865813015752632203420458938482694017892354692397310670105609264234780724560627360420022683544687440948115740918560731740201796714226187969991307826483383459051749936311687607665948662984116240478174403671027359407126049460811082192377806571650884702424602678735230514624357652505971102024279659415808024589457056047428310901097514630421498366522783526889737905487551966323629941625796197301773483239946115018759871184330925921708412942224900268326456644467723095656366202724928991564713750740446216653390103158010219480707384580076779932842097054810420044402604920117011759645985580582313547208650722396202628711983350047244438180405127078860681538430388055114894078880153568805869309670222315457593497028695125527106067331024408315908570135619480891336921111834630445242092071662282666977786115591467800882207928717558109321784137666074239601298808931850937314056124977685326139978823640497672929842089340735511660697778792525860062380594068286423417945462974358011316507583832155403177733014735858838851533862149738980904100743833742059904454152383024875596878703989565647334988448682363510594609106995899010891567973181325468015576708219294360284171870786774750948618552811973511714781567545776539469409705752081855315057138061307505821602010815751090592435608669709237443940159317545795811570634691331064639117816150563429408376782758751480019465401525118535993582022304730341736243962423911652515081109942676178489233406690543677935013784970412071882265450084381026333168141636519702405047793763991810424438769990086070255831330265302277345490958160019532974712684073503665021387459919558629637390482911111504166246585571701194563327304851684254461686682444728185808259141294608286943430447010581626864757650703985334446315923225139314425217896953732356431388251228090716032964413638539107054011680879731023175511125068267422043458512272176555987385122838550371771152610979355369207039227259713393161607523976149847704335309010674165165252921018165890450723430027832997997515118280372063574645594738087282791730475507286426438697404952353028077795908431118794745529702682265328005185127818103658674887780828901798003075618514948875071058776983166824092926472282547563783249133903244812327977726947305297603904187989824157222643837721287550291595019882136869210486988507478641955882310808265812707446789889332701840409736505906815952535224884233545864158821517583459367054589945662364162323436500294902730894065752685458295254816634914104487918711169240431155344091526215149432041690264661492085310071668957208761848906429982067168909499874141777145797162765286196078084228270199274445916507301318066334794116835154960454128714664539795192967369576434874467483779581780422035815380516375216343529083059762397815835791826842582766860226662471769359243198093500590952931022210379117475449323647675313603895112833723029471910882747490222359914019060859426270479609901861871605466086105916136743285446153322880348499367299515523510266566839314541964962061789046908890620971657805955292432511188458346725083181858659363917329795169024538334049760823048639454902108195223018247521728993162281867382908016956558936032994763097272839575870895400449987853695330896249308023036925317886135527006887545618630816075104910015924094420176142902197242565323696816184145094671128950889052754828704939384446796225258978596161597959591797001649855021638930793194802649031355420420689339919583628829890929202247987198289835879325414513775337073834905504434404893623499354811347181702222917283370024731328817740159359305877203603561560551487260418412477998812009453911540410744828258818411612473083946557115732513546533816229792072410107121922247959725645922775788108804562962103541180017079031211567459137585092652843604254887461635874725179296451115082609189775518946038007212053738408242675884676605153749556446786192422820094954900584611856228234964532485727574629210817699787655170391051581840966034133655615756901186855416014991651730303428185584207389766887539863020846001757531516478069841578559962138333272444133934631727168014309923517091976205976530668336234621927858845330858233603178826438265998016433758165990186669984450223145801698236045341370142740110131455298351652905222415812800571181837093044978347923024576801993871573613672285734876119407771039469587229686650345013741307583716689178810295245067881389095256871376052302173296635022808539389192199016374469345880013802929501497242669951435476465757879384685838452027449231018736221229622960067518060178762331597364542890187704246450324033020273404774598219625742087600913218242530621429574723884526582010841857400041098304700562177086242943128825525873837108799014147090371197784678686489656188959544902184255311281605320209933174205897350473939844485001048091794513022318790771574152916377894650252356401809038391031379659131518031991172532955354324459994783809812216170464714276524674930314565653222430681888891766883148830928754480744546885982000312724410139034382799274140187531309897127426276009003762330551522775201217477099469724446798113693786989208649873071791165533646583878087836978387497564241925419513785918093939421154806575259423292698251977233476261788661093119373991316975603139797242236223855342836998707292182950868319717168600664203427077067052509294031283444723730999175194232999959665474019524947006012839787968362091855830510219418038808919021963455925117678654632925942119366110700607010735846743834598088996990908047172313257229509292727527291023830526753231550222720659547686982430661223651659477336937640102935703829381736130175607029567843049083600156520857347997225588343066080423457571088399338859843192424403524362253113662765535700035451534230812715901805377897965333353862576294824872966005001695323751525332837526334089352319748505708935471824297238066897570232832802937610896230565811806005459983540686472627233174216539967449472925691160275633543127022757455635029731869729891879751019879495912225406809847705615073949630029303037738324484851420382683464042435522632169962071754361925443169620977351491130201898061178406230610745481980205083307202327638410898761668146799417932084735522762646606689414795419530052055029619916064334958601661194038701403410791257943190522500242340870627872746920956775310760921902019400861005324909421577227167595287676887135532153860387919911401985664096436516499159315692221887246684283659242278889276352420606945778423862690747578213940298455980382493676179020533145602664815708034379796568351495068102243546809272990633060006095478527036658472905956280640426014910661136404824204859030116244984403521609828316495615831631925501763008668654291826640765493166403360303797482960830743944438779030988884484058442895868634770661987998206799218004186886315210927256989980373221755991379004087962358382247325027519421405964236992539511852243119944108454985693016055291869300832687149049715357933202160593144781006809636742876402807705043144462389571097998878252098396690774832247205451591644545283294943387742529709569237605939851851442954849793376901242649995076679075607645170712328183521529588885699459293405034302904592619728892009352484339884090762057218179214311134515498884261757373611630910785973252881357358637020689022554540675135430089863650009660924541756810102804722526247831194679797108432973151352785327868111597036522118934633625451513802914784521853892616216976534942887331563110542436309969524339919317720149856171454657844327633701646749057179917969008829071222954222016555960137855465986400252638290546187179107649728070638954015189596870866003444818340190574450586354117363238304876709790403781993335289193839746679835943661615088480447999463106085362442856213970280663851462878860665158288475764201123326476952585138379206506070195137749025830711609714811390582962274935323693242450530534505818683071452114385779417457292380960311106272849444671670224622006615875887205248699715939937168248352728090769618691350800549980807868688211929162183008920842737059015947101943613818959630388073796681899440119833707985330603421947190750834812412263354434384664830779809302197390332178245037712938091609551272521849461435608147755386306711486763123538348267588828875251110641740769201348796238487293791980792125177814522419703330984490998547600118618016099761101003725192716758369550493902989606483711060406655514776447579812325050943378346784669819105720547654698250688756701677119036581557391971939825045040804221780102418372892315622290814509777026881787650127199427241321649455246339270684140616252586661193386627829074852170161327747591965935139509841839245661585303962814365906493544163582544494798276690831498745914433725351505962472025933876708089431421199782249068585006691060148018056508713605013231201645666928611772761310827220085975338655134503522978429094778574073887485772722819128808260501547164629811862217615323805896192060393847622974613901858730739599054773255888679749382346572040440893257456371267436327382081823951605935235854294699442859424639107535972019851676231243602049546231907699625703885018013976789086499103637702728476145033350497454506056867643745230658293390698936532269318877683707227000166522917021066477785713107958961066160359690484266366651498524749191326684946753760013352611092295491954182195050714599457950690614244632128067633647348310627754956650702947740910711738583218661495143921949317119249128274878346105190880664733970292341625998324323223788727516878125199056237998358183163978578293284576018773202367275126080495042192204767084332069720038953271746694908347867709969788644122770344269657046647513539844929733884856348900297701336253129764248347121533715267773046611304456032595436418806648639485359050089206203837401394692595474189621345652595450292661996729918341389563178219959191562381136176837551041749014528407527152963584492842614268277667901976980218735770348178781994384551466925288522752301733458622141751093809665961814730642142875668878003416356284299324390574941052852891194226323938438253618234451834897954400385793293659041977086631247101535223357373471940231027058254603446947972509660326156289158140049526161578789672082440678925240249096496074197093773597211003758687364084365082128811148887469990646962122656504661870982905347599281595875071212461230036054581329608232807632606914301375492830855186188886446541693766787771552208368531930351169591799553156078932023699285868023040792584944919524504438793879138861966146819547731848819251115903772994460816555684204037156534263445977970229971726512384624688286907307201089420587801049774840976587446135029944001805897596074160037561807818255281892035410309177630472519063210640041640638837606417214064203193394614934369816410692897429747882879111731618519070233839768937323152250796555539598300582623772876869232643424360669330287090407565923211122519645706561198583383671650187989379940358820755520305948722005535814113441525255033778530238296345758377055305083305058206208831974883881631887665864767286891740967576240931137402825597066639592663274439115110810007842653846602109925419414979141184134722312506272105113330813668886454488422497012259997496764513033912374118883580647456546131531272556916093929334068820390803461328058420156861882480767979989998929000902867510431558520915508743798916453585645732017017726613119604543859355786101684049801562467989364856456466290039648311745853761881753235908672866410160572286166522179604811783557782994134607063687877599210085694111868178161175790572673065291177656050738824441609474382245849923626625865019805126007605211226687959803433868854826297620647258870925787339261969724161320427749679330256064968306446894000172312147265631320904285059429501687616407910465001340254281436471133882329710462117069450723930850518195332974083775105898819324776749307388113881464583458335140617206360985688774969173018463887694971159084854831806065336762352626470844568057205940418226800294086109912541715914687257934874907692451458939576020126058348881788592598483047017887902358872716505156562833291068659574491009474392226406322436814195290427462683858852571193902307203745555281168574756756105651731902178454852010266656888452097978432967805268895725670121308054683281573688963976009341780030500118577218482755533438968125367099163162326282134856511194105574098459539785335054845366776972861659696642251520649860509050467386826654769525284731376848065804640568136497120980407940479284067115511903955606344723514620369119028699500245608264656538995195193616763979949700895545270106288544087034123855529193183267356322081055749643308498812382043754697022095638877342370144737281425388722473138952293156308560634687620905130397011987903851750880765125246703957809069656150027061270557261880262232838834616716230374026889912494053992980105284254440864138216924248010059609957731759483599003349380920057474178973566907993407785306030325713055554983415629505629178169176236038974007761815205846084595522759414107357455297099199004326355252010069264584602902889456327229785138972633069999698884667905040691019327419794447716580510440460206492478443991677913128090885526096446526267396225514911831446792503550687338990078342860624453957577985336889068835951889267312669480822465286143330363067076204875685075432025476963475958531907006717956832006421908837206329774804376282666300004131178551321974556935137437726117889020184938581468021258723209500737543544232397051208654589546201759755259784534958980463260515511963968819758065528234820448256628181949042933589354481841652265671680971597033299142476037385728531529878794965967066305845686359228075387897438257051591499011475616620425820206282727802402488477136003624379565397216541967640056995624617701954438352192423608219414782757043659956272249292888763368223585448897035092076942073173601526116759739614080444021615917963360866260786104839845746314599356775463185731972187147420086684875551138899686028028491302579991049822548214460811666762895084927301179469168118975553915389870239454560580776702100113802431445266618707969126406463896957703659368001377254004141993278640182843576394064377150859900844092113746591383147829522034336346152015322993554021558215948524435832665557014745320003090476796778217251793168293876493105574184975441582790731030035425679431839225832788509718919900691957086879319731457520184123028729007543114861834147306905577131861407385406709329797544002828771032130324097083956920228370950892729703627124318995524037314457814947472541521980517087651749212827690130976253735207427564839209441370033711915655170313028356656696053964804441205822103828629974127268798208508806524095973495414664540928828555401621758316952942821977737707185299415467997855208882680765260661631279488677714439789817803991438652885496992137070585263161918988094855678286316123462655606976847749687499541145987297841555661045654953304831836615268128031731154869155250379878489016490444040414559399949017909821919392010705207395584956674579879501245091246017735239317077536687693177785176813717731311279854453087594976976715347780928736563118477802591197080588775800436800444967159595849121278415382809353082740747070271700469562723741031393202961840360452747611127389660367889565506281602266401747425430843404233264003761108584337398773852316796374393443310595852795727467403810844130074275714126897964103801327093552120608026984414253392374180456061208318324775184171895848596337369171671469354522842374955859565795221447181398482359691086896347732558792142357792229406955939927626633719387774385510976080711893245171913041510375734861723869657374494945514942981535038066095813384030630213466327426742020148652480756729988812785795184997921123527279971490342749606457101460371307112947613347806257991551069375289777983101436282810975979760555580662674045394263333445135717015510507632311604494742596827204256461233083665949867072604589343363445093327832168210135894213908673108063357419943279849861446553352350089126202658389658409854327093157167686271416261057736816217924075665210477716986199224058350108236317273938212204238554036246582360818449778100449012870922208243127114477775831523030077416377781467798819091116383942783656760743765964135217838371616819759213783682667513290802609713197976374537839943684476130773037108085442509108607280834380379111802390889754016960442851816845840670061474243672990865126629502850026579034400818231566277415087558923386137540808153418949272143899282923969606503614564684496395591612210403355219146987766656789027859182008876524324432220934700118286797532673459605120830950735622559383385774310414595993389538356973297384889119600842194155518524309987657073752313419137938645514126888252804509748526071157014123722032827628140515538228158819525345435911795813604033650247936270696922191991935960315594172314631402222374714268049054066576587397200581400256436193453343664698385000828347161582057905464829219481527298689695496449658639594229959906529475088809121463628385632510034407028914186730850110138855425335322461857883134409549375452297494505712019876952920609635019757164602266150447395381383483393238387604480566302689609700175992032927439693642195604184935101983823559348366178722551065692670138469561943052205831527560606841940724469804268479567378733754077027036634931877721062474834150403197203851949611772545192692607086350221213388940963058740806998128728822344621822848253247184546536774061164636409316548959960591775875866901579071683423291696906361585297476546816970591850067355138826959065333669059663691223803637253248382051028583290139053876633005292623878473038449990959971597705176049326632503469677956058698408323019923082078903389014206063607616358670705884391836784387218514513459969259485405986495130203199595327352904932057050088482239707378222673822122504214055084432522725741927999469995400040696969157741927459328827601430234004036375745961290139977516616685964126343306440051153701112219358262779201503317375061209034324648953719811900452557541001533251802046534782902740651919039424251576286960956014378401710072418818083032835517487628799716826926318882816451384053205287590656991134731363745553805464972022960068405453071641462798855638067228800823151374821732277181620526020333683013256505634054685980185991512502727547213553953014335232023686157512262949849680958569901205486035139189705410205141835839469698339134848350629731487671801814664823866749911322107024817815684071222880387240151439018777352811883261951911745752145693829701449210280429695981217358178795257540536672704817482041746516878903087958381676003274455732460015255486319026840477258793381232355540217890768303638355469101203235387281050599361897696404196073075419537171261194563861337631648510551252206186326282796672482134902891856545729006683916432272274520935188553330209952034489612311493128921623010214409904063434909676522956806594034158930083252084430102229620645514465700918583829183493681670418580519502705410861880105404838322126888490883906080553162553374876930143679860242865761279861182793521463326776568460473020074342600041024297824137404501771429210879363379698264400664597091027348472019324055502162800805594303307405915707145050232645626085353261018500915004023350802720852957935946332246155185372605943489848776395585475243194015895593164313201471253525903336299487044742409489986426380463918128460515341234414392781682547652417141194731051350188276679544708973717937201119240204872213804706913797530892842935081972151150101823697838520903242561042770536064524054107472705157633199182637966570091536442584560286813639612881949093105265397358393940853144455348482578697758482363841433261370865081797281722800924492518936912611269569397995118836011510811634338661267043769729649167226244572185107481383733545867731937235465463028442082325344950625179125121352292903746877348279678320600283748695741574162958508759458339898835482168777127629612077345718411242672342699858993383593709681769214505934571430481786593535082902719785884358833387856720251922477594796673509357388790513611633366861706982570397913079866308482995470835311892343151183836026007877599970370919061690339878155184487473860241839517557879212108054679468148081729403845794811809596932025171420453897898484134278242588136376536672957055033658061150235659644859630987278600960965048846147742400990963904100763695938064583947376639850942673841517149419335238271130148152606828322325027721023805420414895024101474869782015247640003346897275877726346419008422949988078595071533150657593161100426201330139285262164200566265480278517294110990682859192187112154588482267799317008498060190673144847325762067333899977296160095350322406873257554765302758137678220444479873256443843872419168884095743844134628470974424634480038689281532384953531749433265013791290724093808208602528582640886516385488298099195226168992387299940102935764176321009408930275072239058117127026207587824455305174451995582501051291310158733961917682606121118468209185925923574533356258705213301152120577164617368711528192890071891366997994635584096830285262272303363375520020413968607643737834124714416724742126753228328438156022986050466404114782604102072604489741031346683510749398095327738408188107556326598945470713997309696566518915547205351030714660478236376356421765811686769504573123609342329582271874095818499919549058852245810653248217691483043564224238328249618537171429579091253257411640692557185263116586409676402625937110509567781379066448536543744530546850089517866487739753883874255477033350062420710212723104978596763143223893991660407935075207884370287375772095443964660953122523976504662971859979035966613334095147326647650142560945303427813372088608255085584786434952032527720800983593154062332243877125292802451504903103778738312620996792420654910288646008428329156865400636499949482727734399843360704062489677501583621769746801092656966076883715665565370050794209785532025449530073681269995741074523227940094737174307668958055551269929243968791858300430479557746386664577153848823938943683216662469288845792435807124364133774740363805123178251764318102401660556518702134356204124869280831474920233492100170009689302706361338181535283573763781681184876820949207763219484115750682013366703378891793736300029766959746113205737050403018870805733715267300321887006369461053512126376751215910030455757918925296579587877190221099009805219309944259687900140793297271664655889201259019537561968160016686868773628952104990640025392620242729791829672991202794021569772430522091336104751767059112149203685536430872560625458984064813292641304042185812670436270708352842245355235483569564647297582144827642402314875864727614148615231720273419486524469009002509363516914573672721987212713194928876231444410954505832100794939009070795266343492550980281049778226997643225016955731077393415485790691837786310764742378734354569372431650476233358572021072409223583018849693737680357197516492483550315690075075640334046051367908963567320317307476794240677437791961848777603658992768054563102093072882957347300191917673184796141984446361327653619986180635924496921299781430623920885546601673765721310235475253526368647912298140989259169235531607201937503952304951764776494275645923400078405043118627788569223670944270859233238300898778960330080533558511535933802032682284156850903037013155163545668989114590479997093575627128533860791255737605802792015268961964730079966198903587978656704907286254781149889264954322336676107991230389604620593808022922565620576947584650207042790501678276807446882026737479107254519980903707052334093548483937894249064604677594337581084154134243693297201276687609223913449666784014768329347281188090676457059316201132300917737937494840218461370810869755480372173113560557189027202088592501001541558006694702731215889278002121940273522933629519342904426530247484811592792166899041345955367295072627222511600214515340382861745837736544380745576517559015746713733956760042038174959447555688512349724837860778378805017089650511831013388769304365349300090395353116146585901016173188456140521289544474577379868875782038585549439661454219609109256561109248775999473310581759219499821785476003099339780408841486857921115188157466909513901576420795691824266027510770261921090126993762041235947909416084622957570014872139961933645241157307701841998444857114356361364289407520120946012544726942635993985365913637489726187365360331052393625461109513489644503501788941709309490951077450974523673535547078749837737636473864349669285360237259454068408297980628456878548324914225240566440008923859850451664670812358465643996819607294621234225173031170484481800982928574897073513594632482656893526655671831599820611845488167989915355950472669649837135715681373273872149943965631336500524758433933819433930346224817137194597358987424957024921458147035332024335588936771922830320706896285646971256486164367032367654905018112581091897349086394318698491715453019598798637277043611705294676695211608212057420368976470658777791217605149138290562296346090085302272553114496151846421440847233397491272928673155078488743688704046719231989528491537094696414075092659465578706617315894328656079815613970083478029566746259726334654092581418929050556904035176039844385810708864849189656000204205161963383708141054823291719417473524413379869115273582761959704924847855257001269961975621504198550727948644664530129221786016689790816242237703300885153825828848245954438640577756088641082447027298754849814463033636961978344714995610825542463262615582392892220568063518014437899395767804629052173964593772481581277987907908683317352671943707178117301218604473316815839838690217920154561538947788292439596580133287682686312588367120907856141218526096251221561519684611548273941089946202165420425483819778477692944596649287310645115442673647548104763383562644324666418363252631171764202306691013779190278408516235133958530885383146270560064908253244412193280814955992498933265994398814736619716099059705293290987401549488119193598901264446015520112049533667201600318977789804494509522915189359089453341922113696416968652227826347829895628597178309920928839031750939527137051560277397159338357010851410368286895077016742263192976300781102517148339537953687593047701373758034821793158019109774293348333652476412233873514137366548610412160542407681653656632751808876270527062163472149057558791327824717244893552786598250032046677145728500142544342022175935585979845654825589942501733857730654850454198320689057086280930677147073781720425835443996950413706622800216678698861205517822205627928268933406928369661119415032728794431416409734684127041356122324845258157365129811279146209573008132102304430576368989318245174621462170641940858340806546217299671172835669221188223407307072150179884873445818973614591686129789678044105107001449733761656649177586650383791539795278744111793457036078848610301527913814820459798309308674169374298084512032150546720895572898744749545865916812154118975956253403883113392869846769313657948048902940111947560508017828027879403969790909388133291000063444086436699274525413473578139792028996166026483001105453945749659740565203012764457743289702939898125027566065142970424861541676368814060325008387949616911802064293726944033850160832167018251634864454267612207628485498793609450137793377890633820711747584039464639069770410348041929282287217880767254218782461518060053892818102684047237542076669719190678170204337266826895336638865345057225880053755311071857435233701743033018471973220619727973122969586391145409091709579663888919537589057478730461633364753418536311368673160626190289816373506719279244974295911228237258488027735738075080091897911112221849656550726791466392440661684628429050566978172182532056211756655404535506270539692311788048153877757866458877886079870916734068417071410798616709382242301349137366305919272713271637394675176032647057827879442051628926236040127543715704588892751616788622794850449814889376242528791247144005492664502708025254794531285223109009202520886515843382783266237676090663996457430874072788047069951522943055979894368147741860227230810983904506351597205641207509580383085351435946587601748088763883463663249248569606995955720792816811679624637478308240999767379160867817891428013859239788438057568905417178890157992351776401991586008282854467085667059505932035603787008550501760570894479662308959020091983487948019573087500250160568236036397143488803676418383439854267542411151452764809656846935970143396432838403058745111070985905890034487184508567139164761817979048892481975368248644314277607792565998045690886830707266879143687360454237713637480237820282362415360275350258600649892743812054075282282071652945149961156929675336458880951492010220029869064522996357285853585377418419975280801551521228340420744263144159801792323768274806289785139976995418607779915825109959047096783863254514792334362161586583604088713761043213303935468162703899532369204670160942841435254914719640821794039489256741692505883601414496313995203262502127917041136580351483034124834203890006961142863702533050670952848101847512601275412321727597047024314782091462067222772795129861082567312371614364709078404771171231402560330241572378782730647653047364561215663205373893084358148821890079310882696073065272180702615864725903201158637276357347066689623131871159402381780561377237305648494237582895265081318437989209015686533880547316822811479976020381871777618661074966282136504623032299431566058845047777773568314691458704250278662954854376214576238759406122632863964447858767755819147408838560057774912679025310839737963879080806784736007139879199380500567603939406364664279184080370096277366751840938425691040514352331372550219925648316344853119057880818490629283164847274691855010753513300248937220831286569045631510776274379731935538959728820718705247132352377533792869186874254324133794662899212301272347702977293739821471963104189507380068061805967031538689460792784367870809737906690973132738445364130188256417743314161013447004775354099869575374358752689594511941428923678781762289573667940639440581191685425062256744694333036136478120618388099855962851488914295564899560067784622630191513498441792968699740021105165928019328471838809922266396301438507140638052754019097121072533189688294534699019320494028823580051511142924163997084477182017555853825220389282662069857639569592602683776589839891320394719719671710375240330198647331498046584131821101510060247983953666272051994377393744610796895527055566400722057911968538279579336039202537250400926820065791982902871317962975449992977220012763450479446658951111813560529051744769369327662859173655697826988913704933750556491257978072726294063205107973994937840666244706667536304993230761103924442493224963623153303185016663591298020913791796804875587152866476516025213740710212454386644055887113897814394176628767962978907323291795110985290955971937141110810001595084671477366140072852989272607901119984707598949716181877538155648758898812120895195128998906086221053938990573617325590260614834296159122531098650686531961318870633865324631454763854585849565368729847254546242683898328368336321158826789165494594582867054156827446265135914987027010596483116040821988500344576175189604026500233916644255993011932859717572816934663265829732474538193724209384058071678766086826416916525522415198497179274662140722844540633921395469953067685633310038162726614550544412767382858892906702356408788149387768502875456638452681139322356558945589999018090974044187058148404635960204728759095489289999668800312223622137249108119721630002247462596410173478221878288651121244591160437423899005004473959502179636317940434653777691575098586702784794105357041653592525927778610218502169033311718717125792395515835340409418810098330546665787421704037041704058753364118962321941891006612238706214325986941524959968805755991974714735506189325472874913437020359484602679469229760187151273976831306565159237736219055577722025581017485434847090309740948356594868371589471723004291710972705010807196466278975791413461966280578613092237713436456578376737561371929557374744885614844420726009294951312674314329172608711321127543463922572506507008399721791085822012332161303911733847147450158489379006824060574352971912170303439557871349423492248624496950399535357540597188095253580516526739689989953741353438789434110510175318314011260932579429131680623576367650698342324346066144489777713423925897908796322459041657321092516389223649264987248098317513465747353132115384598921752466565908462178838207186525635948375010149115000082872614956368971052395425554040653903926990709571495333073567472703035066840178953800462776624163194570978904281352688846017262671394890920851844090094595730338465168023802466721868450376135069564458018312884521635410370014707434303615559033064143224785853619669989201119501060363937067294545107420867778113125627851176523264892580613846073871368062909774854979746652053513673539754939669149343082282995746795998354778316133877541737106019127130085515301625284181215677619599701284886869164293562964200976296255645162295476125206946629300018094409636534361068590636616664894891346837210813273639324839431046463451778431010948168330549613031964447425261587390128322619368053950517801577647287669967861314902542638233706273745938304723123658688341566073329594142961083600097837401269162188259454367445121761375153633189462118556263946016697786540144196541705741634786752332094676435851482759903906521754266220424664212838345382197747910262072076704695347351396052422113518077465498380516896764389949802709201363235319976831416095276289408354495541654954422918634576170390774339361959644627077273686119024175248764287996978803312602043529060949502954698255024638560993661457654490765486885609449065958423181413399507695460876605783820006072353509550608881150642946307885941094277591394174007940423649197239732821400002547591473940271110129891847889509067664992681698550758103497084551404305058988456092523934225196708121236122350203787486412508138725997094765432247232359294376414519674657042966663654427097131803666218689138404097332197539294014122198330072208071053482292344306173600139282888609519863946462959177900383470592856325211305737047242236123514851662718792609192590272528065377232189858817823117348355191431325628012297835270388221471226436146586747031268582477607094183568975844877406148916060792720036101796745004638607063751144357643606320828062702178863031917056293239025937338124310141488054382623586991897735643941705572030834226195811383938795097422880872603527879881024672190698727627880805766675365983467770190024515617431725631794336952784735227459577905178125419233147819548046855573143592553895084246656177516195997568238747073417439829820069870666629891001905426428210228298702249383305387030026588312925229419514905106021688183205847029353683716901742870587547122116316974479376652069064493871340933014045796695806318460419296824631219574518386933155807206927360843825976624343985035675146690894200943638539137707821588287890123222286423048632795846628735471565659203939754736301927147480724999410462233031149065186202231473647633951725874284219096077687667073130935923146459994005925253573068690449317258679385201631918415265943432763161791070004358449699176242543685219140203206591673214963538477714731101444637442501744362641215906788009734780224932226332505694925537240236468086280417009522104070387266223989894390609521878322515566155222546132457217332034289912346679398052248154301640313067340210551866165339839528631197307897126435709221585326858364853861845474747839034802746338222744703360305134731953974443852781773193507555376140491763362108560537963362598245739528471191224819786551218448159521510709572115538959888862636131803664188421959841581259081868655425688026208372557608825280417111430211517656167160234474185892571881596728111507036645429394057018068798107863372254519769248987236297406828851121445021918102589386961998656451085898480092288924506271102509426043360199640377730067793455139163116690820322626587310389314375094174773691888260638689369636288225027283134132646868044840262491119841513051136466068622708834184516407315513336438839945836265116902355997604688111751104725979039058915700086102728632713641049992695794912487524372430062166931009879406105359044226525839857909556491373924433558652334258578022826203371630340749637235702795064747175133491087150191811510715894408559350458851704837177594451343613935149308931487959494750376105852991074641814958715067412658771881495879638314985569292979247314175090481315603201631634398616999614006387891717798430348290851175779605484652446770080438541974420356729213253014291750623187210056445605256701680901526381741659402456317629875846045012824264774796503638905081317190889259316477264399338599919966512604289273207640720888576825123335613418963074196089171344821240359382351820332345350205008130091878236149236627224842335394725774255847332042533275561768585645408193167851884223952790187984506248813964922201120788295345858587290666101320437494093700870692108113016461609890998829842145477450482186574205316017592544737685051911740038787438355392357535407630384531527575188559045811719328306102885602883218931991616765869976789115166673368720482897316176426793911150137589875634064374607837177187813069604226604342749403737407501299117940734283220681490502174766086656955771842959735117963110598242421364796608129538010080969774202643197558507305919789118041689950379729092589407102290603722315286756860131076017333215532191910086579230314088867089637413072464683408156211920720242950871172731946888613727823519361042724170958548564544420752652652458767232449598379697804612171910368956619341449988376300581769615330716473461140217186667579766686518608553249110513794797616797197214245726684725381059621284985818517096882078528255963398248078090248695657076959473410698751972495049772584095861894985889968408374574341712145046461194593857785420636019524307883699970755164725035080745133892961798960273089760979161401284385148767979199943857196632096113796267126937315627970667491220821684419226790478484794988248819905110437900927972362779172909911780338461891845571975982529533990593771213855834950740258040270370752327649562808442961010479794774898125278644491520295600275394778060431481807725570004948085898998141474570389847817826012958114157347038510255246576158089147237757673488326020656609020516913456318920511347472019132248723290282694715613234403107929712059180224095724788132721423102889610151769723645338286499618337986075081747294747582519205573851792440146797941629352978424120990939118776285329425638547875037903299571201289548880260941553619246563287170778226278553807213115934391065168702569402135319199799401682523316910451144805399202172319291279378942529553123926964607452067690031286488697110893837609784203874917989283748319574111025173145661034835124715144104907877896135480813542367304298685016270293325377034784843381636186028845144780363244804894044636445436102249842864090083419394280251994265632790679341551453757345795198588380112171540123549785368992494401980565020309564851435247603544467891820039545824054256529221588435602645132152964022924876398704637558195631146646626601858264224166385007345473516114678652312862923648627524674478942159925421440971722610034433702443180484565066312974426461544448514491799359488410405946183009849350484093553913634779018781839082226063835357509780168486036367131260830031645291572236074870215750650739297214940039663786207475914143074135393043950905308608072329265137570480068090736329336270814299053816447750727437837250824161786217868132490016659116274824703019037167712261145625775325499519221989548244807433222407324543235454264219342751611108376385022154611401189396300671121679690180163816730844534174222053213932804681249497992713041715742121757106393367638710734528005731628121053847068893535912695689598842528314299942775741763757117225163192846496636649353950569708801768927764670189286283268573876831205223365823964899172982056108660942869562320002923744220533340062232824584879413838278234057407862257919531859263433474113971927168297422310187148450257291322856337983801485442780267671691744443515394808733011474643024336104684539223582972195131418760954971101708900664881764414947832589922506031588518973337897912253752252287831127244848758657156539149486919512499722663085328743382744181816086430485294559248230335217729478835643254588223720296475943399638964462795035429008490132458637807739824088377451936894832992040507932380133649168369915312273961777625442092358663509923734316252814683604128480049678441510470422861589550411229456734276521327091970144262675934888440224349593311124237106898967399040462584605643845279234866574669134415426649261486764624194207295627779146301563633354926798357859945054551205492992471749368892392149787319069216105419958519578325157684659831298695450990190299786761852991600505242184931420659911076402353710899038137591811213775999045757957755748385791032279506866760510050249429797959577089865012992640815430427293588094610938613252829163213096032408933128452241392272741898027879798883682508130875123990079779146682428119433096745555365390616704059539655277585836944205128861516561801393092390410728150988774165915732700035535565862156785039348889625764430075800195436887624550738887053297263357018570820340640860079168497536880932122737406363817410268001633040619739693829391651500296992260485686232202606348790309829635849810739174999926308365564278757103284923961356596502835006678800323787544151567039458948446200676936599431228363049566594072524326998788498742955824751293059652541337566267596824848881569093145455308457820445334985063824819844470533904108116303440096759388732151971915939331163861629644721557120764814766683964604153242009735592093148519589383059457698285177647822033498786369646940900666546626766198764918795712797154845645052790231983074520991882082316794233692989806603069724254357723447016011265919625085728644195653364169503060729702327810424112043387798181505736096909532692315507143379319753865526454558595166126620239878424933544129303864184822185751438641297719092249153732099974835698242033793026588613158097084689943427169162912288325218877823691928987789549649286275197381949543311271981054975228878907905437894433108419925766461215367488352926316887556168970497597486378144869202994904608557694289808019898865631928014821232257458550000058447276763911759322331718676089236577789575044681665100098676338052754582402557133013820002213381229430212985685711845894252872584986054203479055129006379490878490922679255176119239534902548868574364599825820395635919504687095275957148778526042872367611531061589173129373139047831176312988942725495309728185786968710232067680480111441579632701675986131921045091604194460797523894474700075227925753141365241233250995110976623584420866286327645782296345233777576429464633555914505785647358692558455297507319480000403572848282469589287068373566441419261609046697493606800229219105638399693695097894725906742720642539479158326442897167217995381636660960692996159276335157500981799690402062949519779273362353577059347155071991674223434589410679907457685033512532224478246387501410863903788872379609296241582160806349782642130368772707123894492884296164491581428560810171712881117773519683745400106311960788592872367709898748928062238947955298451918982377647160634034784432999874078534115192847654902962143963241718836839350189137848252883381830730695601985979327346878808109726803366121965835268612443335187854022722863562588213172279731401387302415729466476093090678236313944388651467485689678932314359578843450423101339852450489796871994539411298555417576538220916811176971563821019856674939174220893472997556126074449153967506564712815891642777029812903643069223093045381269911471247058701942636055524769300582168844875892617454509929225732057557092941949845578384257930462555930899930894406660579515166523169848255892440744266729015288590358072321808682964903176557593629616098987744941900425005157385771449929324661346843188798819569128169491246896661681784848342442804997658745124042271125297863477860447077700379430413920864877124244603515021931128380780627861980281197193415719919300000379688064559056274470018419048077748062882644928523553165485519819354923332952654322952671925140500232140032784213885041011158659149752070212649897907172084011649342939094539207315740373299698216376430673938574690464775077628150865620269973721539922501821861202861325346353766238855100440675286778705458702797681523436311569721904983879363017454595048132142880444818869822655378853083682907589798124037449913359159276823035660479007986412679614721646733897749925066064794302592316006055891672786545834510825981517349656310192587108564570694804986207420593252774500636150588728602555902783326404947283474258420234993302770277810806678256369811134657347180167874686122357124774515189999681352569625535222231579794015030944578212247569968866864651347705283141115203975729140404267653086351635082158415699869031103661250243704501424853936146686430875448898524572172992876991864104316522915333296142985601609516968513078518506341126513933627670559023375178356498556339992002452172249795899595895576487015029565458957038222525063599438387730590817393306301368812263904277933257858107100728015271599844346170109848661129775472650680066365560035777344864885924029038931039513790413200298480209667761896148705756385228005296216203347253823274046663022459755512971969790697383991010442137157122587561329955464361786423116592393460126196104770786764941582562782626068487192937967045324165969757383022132637184093691574126578382317686617907314269520282978251128745004505364091224996985915698247644191935562582122756262395953225623648580802960918552308880983582012040659864981314758176672733083813350441061067821046982267308970990363267288369549189457967552406598311250904374206554512358876515311193025309293541489501062958567019108951266071696612304737306381778726139554419623716109234394715246748807488994865419709777447665553410350289926244146147456870368250494867175661199056347537005448421089790125830188838216154032735258583930831269668115425498292657576590004672541069371733776383445512160283079002222170963906938318957340991402575770486130413475969411936442914185146602105847026517818071402407898867177577949599802662053169077031914501103955666800976774781989019862626782194894225219923898092558446628118459632084770821705080769877082435998868938352282782518964071007690851681927955932785939108961177695606473995554532906695370518766811852155117352665371272480093077301167998798800571620984223282786649704281883142491488897321370031856498219432884016663509752371475662887403978989321870253571058856770743634108276349480136910485403728320691157928228391786294343428647390187373498230538433932573145363024740983055001019540072299916011583806810809539607316724125502299702109744811553110857468431611772946603078552990676832988144724385323152763143596018668084732694134117562927151494621956819396417448605257774875692269872155948138043428581846163341530301957170522073764454335989228494748187817220262927232314200528835767153237900218078460762475031263591434498819223259815843460422904137204062490266511493739539640501882874061556355113979808309967206180961261738166866766977480404497055884070859865239390460656443680976438315668061671259517734169904030931690395700229842921783352303025148881967723659803301000748272993108144663806640603991342392458528203858029572662771500131278789832886952282105011553442519927276149990390533021713749655301765924110669947052666753562308571486060374205601154570326352712854640309119140003207399157428881398073122717009824412071291129848750982965182013565583771832020744284979399952774629441334501763081326543860376540551330229994846418202723344397071767611975123187640271137142970283805963201509458575957926128585850512483369679558451619643842391423242294950459900698000228633710549526050580441776799280013571326873531623870082015467798942264772458641146101120784357779716852783149816689527371439178644696356415694947204071705067489898858123444806050223896571704571808340141597675083709168978542627381147371646979197190121694068568981817415249766726935841599276264789659608467166475441953041448811263223868045180190057704766174761344068422319797716607805474595613949721328220533885861637892858058733474060530250951818133566099100548401212969712732602672947525915223060777204732682640143687997046790973685766607150484236472515097301044412933532623306686571975375319170854778229398868907669546846148553612371140347064133384098192879747319720334098416440424532481105797288895497810735637699643356331622832845932788143778807570861386819729499004516634694286000735280930006363357635541429393633083171032813639924982735148984961444333788441401720603665336479983623719114696456460860149709000053541013342941493297850529465519563087309501843921295351028786044705468308247314685283446666019353163753174012818858392197196748691569340447960957045501021999854752829391358020628407323993302892066160965185507243834963044084466850466959022487958802306372842389921115645470220562852264600014843937499352329923380591659767528783037001356079982912774456312662806227931167658331666699783210777688627383859119014225935428239383074875007403961076598171904102861623693950042065309666810555435893523884318183331058268949903018200523663171443532019487823416183542332441409139667975338861402093401113789480112436610208819909589766281021215713316380964773226090527048728243165322543412131065151775784472712775802263115340858693170876454895425016503273705966994485896493793525756665898822700847633019427158624857614722344743112657516051874931612949538602298755061650130201816103067529330656387837968808343841667009184296528598234212612526473193271293248246053571593359946556324251544059293886093770012515520317052468824763346941905503556379295447803084410991129745561431402949272790628057032788899690675670942877675167504348014981717376415862846574694781406927187123175698513145298215494062807664991535207819816053980924871163709321310177630855439412118749344009356960161381395177760965327063954249293376891602313797585085665964566126120754065095143409139278043590802072846187852160111446025015179670510627965956954508338042590444380562565853061592645962063479349182997550199239638864316271865175005482317323565071403999902044730351612706270619507890857199114739260526701862738978188251220479865615113577651311347976259083124716112415692403077414821061943539253210830283458680007591058204830025552644911253685477426162794336225022909681413614652431496396138303334200318221554980527357855318687224501027225292721282076951629558185950989800959352947896801120816464522458914571334038752431118060954776025227260672539272500899768185808748713864013969056539627676126926743929480869664089009827488019044780921626517177154847174939673368785130659488317870179573369558860222931317630851919867992701336631961619707417556162964278602184549773713790124166562899383453558026029284329281664816861212559681038103010486249164086750504893104061798779514666223064181667232312714660324044907619200528582954837918365241212435292155540090275822604019154678161111947413807075740762288961414586084560198923279169996166270947022026768200049375992040537064325730208157574091769526264333662335754756913477486293616508964345289695364814670019217177824467667373198676253509851957750620890360274298205270692803750112574281662738897991274718647206230779814606663099809390374392655756201049614510679023914571858937101177073675082566553632836969231158708117734639948484874511177513712406065003075377449978184830015879684370840342628469786579219156986702854082285297382274286520619655230694847203319953438625920415064153794075119719763686605143660917082726613931059614880543750479829603664695286833371787426098869834661553467240565935643885731236022099080844855856843009833358311206296186960731253052513047126711585086523997018465546687158865444705597078554087262310654064768394564658377558628615362576313607729415060979925448425807771905016077617901482255148245736504640801593107420309460656410221316842266730427807212628667973890823426174981534475356762685810567104862528391665505734951401392215039850552993258892204005836088830526700999486155227979464958955066279277959203738815551973338494427063404951170571483916322094536864741442095528044904979719564124482946751227386242877730763642338277767158526287435693275017397874080940626536796228604514314648899630425229743738058326429861755292021946105565792383921152451828413169478369631736874691186076275752170642486127428691101124138461212044964107376692726459009383771972797496994843785583676260763431236346136268033092552850407235996785590777225849818377830176799320078480277331746053078757401717834704363588452874910843335714702066694006534352748602161575932132591962142698182460142078370197269933492181807850671871444831673152686193908277527285434262385136807575393376682942439844038898517203275358083796234648654186860641845199387293177027251768469734617947196481935138751518680049743430616777198971919685290781912170572657284182555016205467294003586429552311414329122409951481391605723412997153633031964378962750004040722105627198466362093023484717739565254590231651326236518824200210641805241959631208613723909034780863082722570060419343847976197812088548983038208487986015013475916581471798165670442676159346322197710916742936488812521933363720114120086080268146488394914903438724653514182317152931611044453354380218405223771452798964325365041909552472933297814983217643388247015729969035007120097654853326153670069551564779942879479200718227188356403371281886185457830366513756767745312841578814892096088193576790249540209914138311037104497546542267903332551404981076070631222582694346665010283071357231225016139179651575748219781192927833350726735258604148311209582831373336483183223994772755435460119933906729494638692745775623314830565856571749915133140229032522493825107394445222929459217182912693511794822533029577392279762826978360749379244293049699681608366188043395583761128140109422979665667343180764530123499858585291107818344951905151710314608495944517513856228630476810458741151060433160403590057807219862415390410647218034318287740325848211852767150148450925744637843590702774081506558623090194043717345126476799271546444146661926949782928881010640785675261478718521979887048765256454359787881661189006551885430278200261056246921703769848227947421389631625730145716163021908275099805349528675636377322974804279495745409337465716631811699636499237091513130546026765813972574217651854459698150054376399015946003491835881283010267173341344203657972491258711462030433152028440324814477226694134109738230989525302347239643488436201594180128478492417402516815695179004501811757576051395386439155954278622384167836056763122857946156621677542632681920806059381057949147451168614462930029123429066959930234314791353156548866715945389171447665906710113900170019333254982879080246932407802955717733862429150091416592439553182380966277902613539900374547047463496361275291043726989157713120050072159331230771339138273068709855601239569621465721986450670863228283913012577840715930442432991593756357533659231217683054131121524052516265913386358567263387829796390221814572008720508430857827811561303484812269632533622047378221292175815968795037524070425489165675384679255229225644859315922931892992747571369264225000832835567563616685734955100926241218087269677620784815592241938873087843105781113675538867146505529408831922413661585282537789022371965129948830629680429861517667628709609428319805050569973969656924881915695730507787946320573349426982144051803724026425135745862555679995230470689596979071988880541921124471059791106085510426888502046153008887260556636352969860173600108546491669217876663370783284582734237259388227618844714631931874207442287794128491091180896902588014391696198315984297134353012024834627267477237302632675940744507382596237411620025501509261039908766187454687229961922482428404110537939462748383668492200501818905096901127584999899812336330369394861075042412207984438854379643642245502794429182004945301587514017481216398467545736886290464432428418880761176416003190113270526371197660838268178662786296243392650048374464802787077252446592636242128040506999988906375383570348146830406627391172318279263141582233071091286870113893613262629566958872814898433098557487263233171639183449559098536794710597001511023236458880903441480117322721448761668737212595485082340722512238269966363140415030179961210245189770789075488908915526567970003137845655712673569737506156246853624844221303437750665270335127069968979985725416851223750059334313450408033664820644521654442991266956202304741749776413817756596311037929127962991823638764491055516389447382926176480664355571652815739294186813579424234124794442787756821943809904982539628269337301554413044802487040229794176156715324605191445952256452937887798272166134769985158639645879409506145968715581097842570503840127068866833451170581713462756484821845791286859567198939871110741749921594289996561520725799274035983392240043837763354123957735800963759296393443022538066174307488217433263583452486512221251106352130666951001063539970420464545246410073854597627502688542607646734253016304287937824429315215663105934220944869148130375895442680452135971881307619064388732691951521559256002921359255547382515857232078101716801510818009871503700980442869559700544172101500496733569425470304465209399282146652292838713955367259146639727319951454277707790479959321873445607642479924016742164764237737069863073577185987359960607512115301812517653721286866144383916717294953946920694593593960973469577301479068388704925109381314963821232183886275295624556624111989005835028578487029689398636676172588479338074047982610847926617480416767778115685856928668157590791788528111348789266283211658069407256746950026724189101311691284564876933621755067391372173295499929090950054269837914011108413821155989866139601958403328861859724848856976235408121447851756147655182889087946975545217450917316660838641106804580550762138081018673857385210471289606733105651959076795842363867676629307442730218005989124746852731373879941504490789042289421960323326915241578138504980112239556851214662806040482521354347838064262248544511574680036588094857408055253446449098080398944267152972563539310984809257588213130283894225717667144408273481427130862905105373593813059236028115167040543910943014690397690201936694876504285128836606911185308083255513330517026946234253469679697151528566584295657382893549642191409533171539907251194201979036434268087671745099250751974778843034237713519277623474911303579456046941801933116410319265431494298447776666055110308333584857907210757797780179812773346307962507526023111303647637806142836270946582570307166489575066379603551788298696556957821244434649274092026477690145864630804855386905538176956278836216015084506190135634931349014254377243806855940921886712746858482543437034823306724494502409297626559360817901070268302225308140246974335954566140039399557415109217992739847495074607602691082598930613268015369957645153077997920283164054985485206877594083985466687307064841961231682886986586097533118178530302193317912089330631557888985767328892288888348310844355102908580453329920672959157715460951652562551439567846222333241347433415210710898455361568553516943578693116204811941139523444754695777111340016231837923362853726704488645244716155344964294474074058995003889940695771654198886063623713800200238391965129476674108608569978896628734295427147828163176506269154243661665184771747223462741305489972637687935565837900781151494068781508162930813509704249145184891156658440854837577218180442002178658400379909430477400345189811200081407698904564435456474060447522787271472594460516520860623507602116539990350442731203726963329285386043300659539244536106375760583840237395645814707408239464822681048586823693784906034010684947356431547591200697713616768744139684456118216686242604370175758646902723224144746408063635039214550119796211429765482927603218111939258515675580766253882879948250530924659636167210496634069705086446264466476558588075795779116494379468469124014494388833370780356414254074760976121278069755591023442857730614204008304465611709814608007696350017285813157080489747804477975323114131611393913308258226401785332355815930357146742684164261864861408511152072355308540188327353685768038911617607961987510629988196931356295399033597954309842265862335898037324148152480876810123853930307373430374804541454010095851408848723110025451872136980307560222655747270520203894061319299706588165139361598168185328615135634238107173402814691101807433777088859099342143536423783469975041006510677241372945062883712163750917164514168021734689907665284119260646013259857381323117582395156070041841902989083153628559444872393152590013340443631594045411097190386482103639524131280887116466700423674476347590051170257980168442751735117681368729301178653171688488039656587550224717324463743759036973195995758208690995701714032191599588617528188073424009694823380896412742423321631819894932541951369056876303283379110465657227199447366258879516696328217292373586358974442786217587628590764302072188604806522294173516363040815145862587986967784567035425247217712035818927679263814652372067884489372150354576721539802965763095423238967946994314736652091815637039227584713412827538748973142442295691071974396010115681994715802352276893994359011431700702430024604391031617502499783290163722938767613568737621124960557144772043640305217508329322518654379492251312271579676232066616647781161941698796891953947969343182298096042119408853714107818392932825444442654248560976220348104708553220286517228642076412305511722734405897118312610496812765872073952624324275227582606281297422753144031004811920510504876080149644191982387698274090332650623492336162577953302313348686806392274196166342368547592021423108329741927640027238489555228533638519492663100373426446389960243997598168948565631007358332423589354484139826332553636808429508029394798809849693361206031120509906965318916035312259078792933738016099161232650204378804605394422953232181419830557025127835474835277000473781954164629750043603811994650160221608210254211366435204313729702657670789755226445312614460391822158326236285140514397451017634395201088038030722371021257583604546803142127970570808405763610591597402065083502213698994290342377872634085528829302722843145272313108631651660604321164460976986122368049818715466639743461323519356164642258863825010193143869031636128512816870743423948597756078857108238770315134752817622327588494162650767707901866984013017686374587997849078945097004884033574854330244520048498798272978233061680454334044985956600826897025468648840834531296435357663703854560720463990572223962966431892486124965524470576428141592688897743393670322324733548153722460317519390753858547590215921740262976926974099230425803962136659459671516798551239037674194172780514326938009753599648248190107900026152600180717889996887788644938026382737780714288353849921273625731275159561982190160075800392728768299694033600477194869640199472404505550359316003576919933896588583714080309877161918535887734839276143312101929558874117713724333203608915991757724841601264974838506129688894020562111445988124003577665386419978056379111472392701303846073679746899424972328647100542943777769167753986515803889654903951075044430261341929226652791405454978415724234577525137786075204694662425069977947436057347460145938567856556954437514834046022550097657994978301865685402575100727169164716890138085680996762038107259731618798661718006422565393361182796239445974244441151301526883443526961698292962671421082199998145875666760633715381807562466378787080171173342848363805482751714055049304396338679949623261632086691882148132849498539852074993737467946656539731618019607341777975017774488032652104660427835424971007222019364982272342261801764870227048412974504853235973212610663401670781569572097981353352660927683994069731670701930803644912681896757985701353661646748959397521708356842972105365870165443742119947981040935900604865381804732738341221984281825660843407447839467127227573087472632365872963433935588093036630359482324336837786656878298841218003934052180321338655731945283290065593532705237235175837634798618097644794434737768508166939366961983250932989328422583859593884164547163701250968914313483746749227550811573614364234063681642295844771565141225003861969168249980809348144266971044349960448296923908510237726384654294312715490614711190756997955602017068523384998877603618264590700464188916581927452693787679294090297909990100459858548991303607099809629714107689566502237474958134359132947112198123536933483979044048104406754051248073100046344750408208136442440034195285320946554840636358978466793313608801600305796917923754219370241529787928657655539441359034487847764001935403728898944769874419543225715880188992663568493961018034150174624437430473845168808819261289423050038398727757503837378109155007096208355590479241116120244957378195095201110904677640787296518626242344367259122691337735240203402021518603567635099122207372145317003552072122004446980462045540220667054327356270123250339034332643043199529871943343403794007864236812471737057036890198756318795777736077566090518272196216427104689889266174854387896863324897479794565893738515338283027317794753495626569476263329632907206906523872816952492484691497382442867229796371360198398233610665902573420308920423036694101526584345530861627985988383654891419115786916364310974437488463630323128502050506245571678237109884215794947323680247897767350755370489120029656019352795053484972872005413800444155106910062868709389380665802658693819969040887398483579223698203012973299223379432233072682908167837059242018807550477003762548458241420459015381381207967593678481881182211651580810471786567453763262286511393211337662191232636491241230919794532223413404475825300198365123615053194018269549895835375243344065413783873959617692549821998382743041807303013577197966702154689947634096748589602105455837200335480024937160333628052261533164721795521961972855033930595052867322662923612140194758650048554129214220023686891837735728923660321312386160409506223478054974453761250588040395433795301779642175849223362060722012024736732578232098285756825300513089728024981083948886976240505995433104828783362103944941284074634396565390294408357155126693219732423647090745436699426421223116987654257383797456507391570875043094333753439496202930654378651218646463897587577597125429939033755172884299327777392174471958107232089781362053377094091948226300677519786314593304633628777969229534569377279188900730214295552203911735713624922385608243838184514111078837164938905826201686787758119997257635430625806211022024314086740239266313332127504387334784986386915744515819543905559655314685009038692507022569679037489946820489668760433446133305974222052258412481275894000044169828215177497218877398378433286423708121022949178695702272606919836160134468151993837805945093587041202902292447183729044967753400026550048070941200603433515056923815038304537080106015901584928474634856975685261456810560555477625259776232499913624396723580458102209412704588003881042307429643856416117890645146024902135546414584107521081832190046691957950865450793533894324347667874861329320490464616640228989697530580380336336952160677781013096576761620184101194240169561359352491082680873190508899212522657391893542283102504012116796709588941153211680114686702377276295206468526966945608392815799861152047172601176296860459564868869107100757564494002695430332064881335197549291308275150283390568778908248225323259074725928664065822674683842309880330542394485389346335946699561950658134421843520760662242632967449664825303877017725263042991092590955738154971474936414745442421591722104788642159282488471217329167694166410927561690654228934741179690054872787261251165619111883635247026213778298508186607772919121139969566155118008622930649493860572058759096380026143864767306733696571868445548206311823435130456476391027890070997643023281603147286360553144796165443521291925991217992407031785654983155833551140927354856713394547476429287458565194979584885179129592855201918407974347339117244212881449700429595908001171482205120667973727477428776240718408013925044492424175194425773230404476928502773859576002291716285145157434306515532009337171835442705673256730168937579085869952619908315645508771638370896442416246368811061667833257689135710043524354648643408271553051320723034186736023173094609515213835768811626471714440583406245885756561392846594661700429431784357929620401334733122248160134625030025195707922074529581529736287704411152097740002284952449473759000341045660412709327432147060958225816990529615568069130067161872622989075395271410312815889012521125215156177887798346305448342338030269958589087427865825731615183267157140960181587325256755686385248753689691682235624921108278492495080515135524042206031858992254776866026871933479304973680389569197025718831376310984909001058741204394291089898077064988063529403668725196203361995948506200284346612479038712244370686715078095502861741413406746722227750338800906825305032218998824982829251539716759344431926571234328188871452087587772826674444640646529925516205414052145203056387444473971630160677834751915930748702290625155611339904094034138503601971036135908366707317449358059932909184728824224340468908303126013753045136926623511907722722929189576814833825547049571763681373062698458960951865182821951428912955807266938170968434215839466956883322643198452137712044847797947541292049567364848177157603429040822777363555629881239985351565954765122785126729507893649167839027802107453930521037326809739150777396151830275595911206887537192267457625310710483998383564495811136451290823972364200365713605120383981504285010698585423422002645624623662817126690322554694165478077143803021725997432335585409176862037578537714006376585236965269991457935637707580416534503247242624204248891093356764312344894714827944975995084541705666159944254177657884938077998578425853869094539192957659673201022146207338573349178330247621319425163606723856417521514171956910495751229378437901839907656674688051674068862729818576909425416701340380503675068541468816502778693199995823894550061037451556243122542546487326980135304578636616143391632973417647742020947133220412671998905427929891667474945120605489399044785733687014664710329789290302045392034748361226503791332577769748821270372476347053498522484819911802175290934022064432476260679988040985988301801374126556537591202830477850733200170331788636569012388317903511927481074474060791913105096052161572145207443708081901513740041316872400036550550445195293841686584256380608040776408067331547249552615675203014324177786525062425795749382696592358540588650108921638801956686968050291620859713073339458130392247603583298489733534559746809551704360775603244634837732105467988487639007464794111835285837544603513918895931052936136853695092787116314387717790324904267083188477816390250635756050315328549996546095086743697838309023105062752861605129230196996736245722373404722310789251997941674673595053808406521941150791027535320749537269894757980474371913177424592512819573809444036557615619688324895467257090651556580493273869285456699238820937809277411925445364279371547008729910642844634359395720782061575341015463198258234342517748400689575410540923411178067048438791519180545699934349233535657052564856429673824088610403352597456584778063556856389089208614377982188643045403009344260185844544403218472768952215833499134043548537277684291050105578610473133684794617156760629819793918943662272673413254962829262564446812803109052256182709856478054199222882391053762820893961816552351307735881630140243443099731817342958825102558323325171941205860399416772673449228863168813637817259762308885433611476518168164461293726348563044229184330485685682268693746526899372104108755362609454314112974586233649571197636851498914701879453958487343286021760680560504608387334253578104119643103066907877384668534498796525417469568356404954142705891250186848437930066423986276532830928605458855815960028674237497843747880168031893332521338689548259462087501473627231675862188903063524997402031441026000264551540595868989948311965130334789522108669686130100172468163699817379495909936499203418005322960118476316030952453545682008770666800055196322756912288884184903453420281007222562556274969075780816251561768195337812423450809267120577192538256370172363475798301015405959867461277849834244882228089564082279458334171545992433057954277639841730370621006587675044398416598849639287643394887437299753569706960726331156844569598687749797554735763291032635020965934585806579426932009028604532999736030688183334248607587255629093828140650939656730235986289729049200824277351373685401937945908351554573018737145070240221506846160717660718926430425555852857130193975734945038565860569737044036052316516618022776973690660613081819607423992299494799808949693200907488566788165629246029052524244246697558907430059559694838556691176384462491393891428064316056143383542539417849071886970332652815282850751956194222887834836219155343562534185886412142222666619166551134937494023814506411317752654651910665772685888377018280399152838024243908757049878763016618971364872499955040510891882724563706916380129179971553976415687058103500053137872070858816703386204603907194244066189543617954185741299501230268535641995022702244764931061223060381534676337488467707515832994143679932291500267100290815645690819276561942251861478224388354833983978584754247301850401867119364482773984021880245718217749333745548127229223106122769928853681733780570835649110782888946405582639639495542892933126379233997332531260134082424914009783254743852624935676198619328964534817050461608597794967648527550270000736231338153915623084250915599417376109042298572916187761818053724774362343287888574891194614455524212434719384468038484446051364659918612134522068913354837427054328863999358164588144738919758865990082875458570162274694321195904282952868274248597833912227977035442841425930189677146012350993016290765112476774962792736591521449143324913709784138986413105465971638957465463160362118984031583212233015571918796348451636534873203000676172847657971891433360486360100740094688719367642980437613468770808811772633432112696759981613961366535243980611613265820866428576233504685578154544592565344945858933772802761541598039059793765928351531787172757659906531971449148799525433564433703197360943882279351931197745159568340541802114013996374642576967137001894153523861070817236762328537688305909716234323383739215053450840558195698317448940815724493040209387529857166631350406515565329979429417703893883693031977995566602236465932057511773634359204054586889603745999965782239777572068776350755032548416778275965853043074352210116488492111342187803452093224542472405626323330735918004323901687726063226203357137633888225202343673392842656375980936328044572209028116197321537369399302152412190726737587053126629257465765413093270019519659828336804088915909809082660601952236023607457077502960161341972569512889365552537226321565478429825212337152733546524221470523275204403039131574641582869465483728375161823705027782322897034642153798484806195198058369020833260074926525903823059895675416639930059270601118653029672936666359586926318666328118441186644505913971114875342502571446209573773384216482014222761201606730259673546489914378577784373640354586006561612975982372600913987989108396108075470136457330533361333761872035382532645833804884485590411432974006578715880320644222769586555508435271659749538658210056532244848580138984581105197209183959099824455521323136794699794236310762758804984769615029333439632075499525576750137481865648998714026838807388335314959938294304251533749812713882145398902652862832645474132641893039955319510959811474741818070913191008623624072097907422367381860729633571110223389662240886745698431192965206608081553140019120012107351135195726339852464937347134890944415151749787748004461942466174711967460520726312024359580697203114334936862591173243111743243184758142105983494268483547103146329034959866983544062544347779377090659555458810012168328542101399604706080323768629109049292312335399205206837731971637588109828039406531959404472753930578717897204541259853994644873311640502495001102112487642688428995693375769498421336807635751853053035985784687197893907148569507758213465570353286317779808847396767952955896373550958770010841227133142813269277647360497903533320951015439731606918102699612678052927031464806076651887135104527164188471554472220026000647604203639742256680282476248126065233850541284826804971933773648083576284864303153426712457476212474898767808207164318807925006116970549930953944333922900546702914289964359976935743702042866228284872818354155858014075837179732696291195256498363370587418028448715943589058118269452351653943448799355966048187710064281079581647545557655642902594297622904323688403047070770636757757727677795587256364476065470734489914334898080311876901870220045923871597769565275193324648212413493997170188140763745309626263603952955207096651906718986897329068931113497059188810494107190319693001774046585312383696037234051273714314624777206716165990485131337925846715229180775752630627873304559237862438617314828387650645642006409529206860838506842521461160635984388156121759486636774491521527181780585330971705858733490140320665813159214319354072555222988471294331841661961361514933668798300875546127893991652672141589766009276139408236730258694931382243354708230639165150266741642641239231219740631190902393841040600057798216044185234541440764465077334713647217938630076710810007783621789852722525897404966848126366504304157245223852073224299134157732348247580800075043270321107454681459346481624898508864610915782826357101015034347705855331813930394063781187345173321062424730232509013765491116217473828941235900035689442771330519758347617176339764513631669844857198600009271309633760249210638671796433224696609809585320499906445982228543325420143315930508880821777218372976101215770057566856830364824749591304768586608610904193273122046933620185062938543848067729978653679508680397285143645898268349824311841604314430440111260006121456478233397108038843763886047931069642707868173063945019257121189565057543578143588741812031769475587381169857166199705432710230451097145676422388178553846056306091639967800476872487738543062390093489907557334011994877037129959816084855707854891545459485005259412890366201218048868136192449242680926211117252219981545073486806779217924949085027225606886576283442308395920375826894977501283488596780409823554381961370041665370519721961086127363693790353397559708498827649685986391067350344135734577659003974150933281915010280151141433669620057303632994751166425647788180206528085795749338184011872045571259165955484613592300535190379059438842813203910477715268907925340377581055690157107756117505896420635738428762064917029553285655664865657890528701243448406861313948611376518336124665685674161990278641380033074162153664891984110884385467987698568574584903155166414470681167716496742186977441171435154627615248492299897959884251217601699599751587538911650028038793518243124327881063147857401191707812752265006112770598976771137712293262915905905459715380366682309682893705022022821906269846719289274987612367170054409583499094714160845554354072666125279294856170176214112056336550949135227672770231011208370025472017705766204812012839527099338101619798910527600366042005592314299576564515898913406742451849315667128881327829184880417083230660074386478207808853544939549986240879714323869860827936997388162551633645652994370122794658272448270047848453195638242631909411931588890999994296960608564070042218981175402719473369699316319801862942628470697282449688869364000912870377538881592553675131228528113741468370376704412008300935576501201859215894783513723319028831246289691322878751117798418082408283952512733589855586250867584738194232906107280773308124741730438079452180374693173604149891615877161175267978713089619255069462648450627781783912748363608702316868634551510815862430045312859741918442526060185631601448250238646085572549598435287328503992434024736148290239812003448133440092200588465872308656171433460011125781794430787772263888352576485808304418093882690919733174453868640677862875368398984214045659504501887689558347476775606247520987945250435188403811384917681995252121267838303629912938637325477270547597377192909104402564944012048927066340475638420618183472375834045154316664088794937220816840652695065743101566047812122036726308821193261832474682696573557102884233271213276982529020969946120902914432251005288259210370587307136730697313496555141310081252345730666826018870142149011463074712635588694028048847075664807132517121888600251685585758625174387146932115042799311213232692729793293827153992380086881983271510968621608060188237215176989026769793120272722897528694857736330202167528626384503455697282630485718332465561850183133088942295175309003813725419211240925007158340272124061954574820681371787106796620868431281673601700084486314060264416379710876689245922239606495327654710207115147332006237016140903254314344888906508687910772657760425439342937840074610478300941447573699208889958376661987655404556109379933459844210759963714829876999151211338606589971176018298914033183788445491929686681797975375913000465082454507602276911920425238620203918111929820804954361782294694484836851269838735702997952187750632995417442174650974331797986515376400131689291907509333724887215482120010277994653742471949973961796613377883771587442787084645754649803409676684943245115338067762174109241022985129926301955070812095222996654809818092895939203591883860732019862815141525139214844917845011676603515030198506909650617695962330797173330052404209513818205688160654518314002569555586494561084240234641125901573178612945781579525173353903383349654012720488177694103660158154827487442111745273320062729897516001826795936851804217872526681850509177970504694614170970400603625504886018631281612716369321053989218614587748838639250185288691096559420438591937561664213809988842446850112504051738543851445216299078922799247464671086855772798055151782657782329224559260908846417548639919324064664444910709447518896039346286922487200274379199174884727076187570815590558030992264960468004935893334216837670192722373273619160745560930555595859270078238378147290243628369540610501157917297425049337019736473916590400106148512038091458650300488875579988551574649687553599584799276937634549757746523976016438458696072713688244928941921445172200826718026890797047749477562204319557923436433107704704157779094174173665226641499114234965517522012678373142716141860434861555543657526049287303759096416943772380895479261698363955255314107041827051793438992293936388462622085618014913325576281137322005898331332268838833950123039307698645386913900543758206266248331505423698858344928417916939342543795937620877060093439570202210861265782055137673582247222542535821915177588051541389525699311772316951090030583483695395248559506608840186904747589388046382083847109886080372803630171723471275781409450059273023876304107454499418017090750861724967626855905147598085406238481050784851553037037820857997591603432296537867213433053324631827648552451096841910422795244165261898065090650090788092945338046487113682518296366000813078433782135460312019439784738327707258677081604762422909269012374894524129048780767619874045600249965773505694955351149858201696796342534103341332380827505477261398035735315014425873724407786062774293412326323240090894417266755355785551548726051124150267096555567142430552704043538639579964074640816206168759266209988789121365630163826174474920387121425012664951944058872313038893181801051355274793763648776862276912417822359843003056255539704939250225335301209757491910188814690579404417645348085417159659149226088094941049839188197809854939094217807100049460766806253595149071264433811064334768861259650333363689045997225102475904572794812104291617334069781576557461617874584064793032313868421370607262397650328131167494405761183696005134389934286839845910625306124455630012289224094043227318725995033861584316069174509581649323729220219004397230867799509423207754392889094564587646313746984576984683954965497337442513672028044618588286652354394537347227813175963411050069182064049987024420228582353515569752442671086169731810410519110773511772151864321101839429465647262942660886657486805525905687149514305865757169745329813308334191111939225679617119759021133839753406438204085918225422694387337693641141530747308942023218570349029861971748116301364516980795523665966053129508517673488378309828629976036539344627925748578162647739169257736865160816735864302105095941009223170376275448265247158911001088562373354215785364904660120924119089386645564855123805789625037182839349563914765087530806021896315047897696005821511703948709491475321136771080219903285044295247882059133698493419083882823772834952384961958257861620101548687728022023397440694868445332493620646946563672863819364094661116184416155229816506848891770962489701139235591775563347237389715979418970733436305723970018881851721817285467943775300996969299957280348860264831371230723755015980437693545663000262055971685966857121941252093512100049998871815644218565620969599179791669579045759622120144931962497728411265976795139206287408291215755111372634779538834875323709622665773383179929947937264610915766824602248071530862498724273044830945276827654967262558017773925820725661063930676799984399565782760123597278526639710686657050093033408601140575640281834753636099672367220331834040492607804665720586896073350378673398361878056329665849750356163122040056944466887610147881196473105244838105333308337473554433958612822208351188670129365973021632286184198694374676920181266381710953272719527643814987352651165758452501390863664690532599509853187238142838940378186534794901310485728256602158337107546403141676777526928082240536329134986621462247070997476401339100147703672245036768431321129554962661005984142816237448103939761904542621995591349982109742490355360014297615516999832018604618734314916402374837239038117327932794510877452638217714991616168888393523617987591111587283688763863293161451903652372888474483383081113634066412858198807306025014309951232455350829722232713065417139664536131654641732713844637348142335430281711814081106742509660629387040303575037425973846583542751932663213236654553839119589114960036255073771937773506046816321872357323281621332238722833883448952849290737265881600590830163656431185621294100612356934203605745793519091867339244908088447353106553108211822470269550709236518495881028781831665296360647192666588532299549193384001083137963172269358529562333411001312118160398644499699680655349977031760435433555568145828292226169072363101590374653796470472632500729399797930208108599796810219941056823718545901115277261642505323633754342868100724779815184640542268554221451458502901975280576378881885087478020708276393417967318427473699072155229113507714006352025088734103532259401177409568170219241884694064646783625020055369629619200085394116391866996702691347890234707933355819209414118417086776550940666644631707552188495688115830434880246531715714723025194382368596358024406277154180569564010151574767868124905475426243278913220141261451288844533183642046443325315043210606650132646989010163996304565987511073759031529893498320332463656308329842243280302036140334028834307115896583492789720947683889339336029873242055088108393831416959602544479528008593143991959591103434383306109063756688520488250817950213714895174117958589614022142490465681076058915230429923577658808475309973921468562166580589226228096516105298767311589633060617160606419366541151965053980624731273537973968049832770485786393000628477727613350653941080496835317318719290611110062314279786555357050115851173621506023521557398445039191897375420056924023832608004551540857010816338053472249922862197428134407542131975101410927993420437146567257226015818900550694155680469815970858766733443026807147843844866009271694684968695705327849182284055320447630906492565938603492625610046632126688646957082250534598013397744660426344308583174120932187843212858487432957976446364021184054015451796990030904572641941053565646187755567599117138944894765915234078406360091780937815011255219399168410335431682211666122824964022084216529438661807810205305328310018044031757718196939086038585242396574999314038603337109823026611761754322776963756012736741510897974328020752965645772642750134064496330669518400866471617032911874774233172816438993253092534474916735999615738535029054589243083141405711071045560915689693439963210495587016039280581145292635324902179853726691611759605694632466680325039570953955468580733917966958958458310948107527631584035388314002139594565157665666774582107110572706723319919932327081472154899433330756808301137831949347624868625900819799210163531729941849369797178725049376104095896863364299633335828605907216288180315822444727847003195617798203605608361032769274765035288903716641040491210841365625032450392232334391314161997226506285327447139962603316653995832864315569315209075996444367462791646646391742239124342893997962994058321418995532861303242711908693373535134633652437159191530290616604650922568298358636341426748417253168432966743362137403061614911707236837834887628470948413092121585162058235367476422994993256444860560715152092523420549335643384879521613602817457304654101604137649753526979790213469799891676751982618180923715491552747381156516191686293206709716335841410242190237664088418379250012019873104300523841280246599489313091243561204336838573046015917456109158740145793073036978370840440399394888378015911128382424034715989736549265508158719027822935327493943623364837714888006537846239495510875154130843177635181197030043672135496690587957420796887312053648944294376659448508862662042972419645062043544323309751858916559126698158055878432815127423004839283116900863079542687680787115594581044346581026588630943219443538182810014998488192886882152196262297803186165212639482095031964051336155582202251337737377074022042899071156246508138546697706593877259081052084135112876733640306807997783126454315367835713111355697207870334473345612334326523262519887335124988290471268739084010844469620164024712402753920055779153234571866312535610534782997195749386110478568317953587590147067753148349522774974915640769180738244019652011689229018264805463343353210912035374334690532801433942872359326187064116768994526541186087153229581148350160605191375787259903849616059094858135523637058387362027789786555095449251816667990398013113504926338534874930647407474458997542295073971245830754451870637170236617794560593550931095583202218668284274174734183449439179958636449340228265403222301498192497446643905938167411439172934596617364099328077870032071259606295317136144809081282601495541200135064486750189185189034825611328187286775118972447675371026480303345185803197527145664986175631087760422985103075732152352732019671554871541923517715277379406962631728771513811881867861726086704017235990002186283194390901234529955998657506734625037191645424347560799139568112151940610115409502643521322629428198809046210493973781936610261837023161477097006322937022245207135394761438955656027789478297975293712340559371845778565509583746101574923726570730170912978211402263067777747372350949907038762823948079786993341435665094597510091937187390199355184443606485886708110747438150776292287793750588922401384688307470518035958404846226723172166072108477484507315846224319976353975823656964131490068710282632579168778761187066963446195316615481886626119444545857240660431486242051718279953008302160596733677929745338489414037639658730149529708885358649545407904110852324624976248180049462068877896154792324554910771067464832549651745394598792875601045189031038655071423558827369815748869355240119017183113754036298221065639963111542079762572478470172282763731467618959087976199682880252966917560004285894282790795986473567909868070071136813246634191391940210338303094151890750137895152971485939127333045346249221202624477536034049549258268116180340713989040265389810041273538985440108984809108082594807038663171477324744481845514433265274570079641030393182786658891187169690124728167124714654694133429129456257385698617220524138854099245882431201560380602249896633754423711016967060192131775871840943788913511961101316960156469393022473790740352543078739927550088518107716097313086011583202944414947669026064732253288148714994035427701107271714800741249640645346994868495410540509569451902532052906520156607666997478601137443342021650645309676152774687273352819921001822153296536971816791314441732344386524711145318754141290152379479634905279244994082229228490684056869586517450878967627215667605431168709804086232777903971130409560316758922178080531574025421071396257381910681820437359136761334955282550028877587102244701890005527179342159040439789174972013212885554457621053200642037592550413032966769236848468422783595313230682632560397554726783491870356951367596941436712845152673897144461635418624694584033053240755782942382963866334318006393641258206307488349611065997023459087478721098138006372163415560217143516429772806291648418541950698281203939794483619903934226432781495550519101333211398523419420661028644137450486738716124634550897124978513545190443003446785515852334498348095789823869683316659565678201267446158923171574135196953444614361410279358210065408999793621105000781060557264591395051109059780691641424632547031091274108195480112712867121122181906845069399556559999905563687496468709200480815892745514337761023787723150691749340055646821217834523622730371719991007516190544504837688809711237536203108097895085562244370407400072032885109608875117372771692125584116920180267043626775819790953386239516030934068020825529222489989927862657393658388455630112709907529550145106273713942333961435936314213892011797519659351803328166100105465809194836574353734086124054621861229580575527847631488583973357934240662772620832237764881601650146577530895983375587818990655113725517448272144258445078849267029387204805652111370618373856508226061073531652089199540318986311922201122657512301703398843253603913049064414645252790627309444133839670220737548556431079778779756881987906594428813704517146610378093073714575208726767322143230188145745846637552891419506158912195973992510486303025309460968649346678303288907458607858104250150475266687559581744920124965443892787506225106859346095715020387725243226720847296537128685251530030477823321323708631206713049311966386494518736647862601995191133861590569761888963077792026216077739990324865841595713793031443290306685475662983496332123570882277996528607569888432295059417389119701896911159334548100753388868426442414166139318836837466639840731651172694102951369542971780842003291626362694637444442867371115914367487322077740728010475809995620881090606897877286811007379609222246806610181811697803273987775873084017856755294890750204928925108605239427654830421082540930229501888588074849314308067226938868341869512553233568219299342369045646226538731091628951434865978952369388268582426417630625320113620955007705726230911947899666520776954039699980172265911734245020653189948384662654129663929946786843005665588928807955799329383747166819128313748884031200911548440039369572444938190462304198224670437128765531577003752261314714553035725136516419259721825084010851830587787997283648100552514774168122023134719116539804836818846439682245043915690008321653211196317859160967663646713068365117047973448961585761868314155128650206944485075062380489535024356227873806619954605432716857811600002185647993003117084352539323712853367439479163034600623886941071775310003851242844226311112709280128149471961539884002906624871325283556844702032197367563462264182202485535211420312839638234096658543944262833168542222772563257069393099068965317853675133017625207291970876021122549231644541033619882484562159230989152982415114448292066973122021445994957077279367057539388798623974663180654002837613026455678254079555698507874051059122766249773812902893902906837221872611655766895486077857579417262577248533563289441954932564256288018675536280728555073172824394274084125744113600793432013349767719414263044689404916218845774431854450815895790059480996261014577468845026777655764088052098716198531733476482591979502629241255114406908390358698467761108666157325757129875589237938042543709433424262323852644995101478162601934151707834186510971854012759599356512776403317260075514550821381440968537513187299181007671061532251484094802190162224765809669435131256120072816921018739387892408081921092054788315036335852505712567716345526130879218626026329988864528365025820908405679937872002628955997814007846473149820121543473457529352660852914643576085677963132276638437006722250688849939061331933731732220245554641582917031628000820597848041243371341889922388585004037239626807910029105946986728308747036059414997683095671354433113499976846653300635689070137739990594153014843186250699667272610435351544696495167765546130651600404929136383409785367758927923664953578016432722394713885912259859568891263565024873851022499836799413428443819904878571878898133749335787214898439157326157509877544339340089515278869946324467202508215459579226120503428615370365439684931888993597812881513033711724915871012591322657440885849209087038101375588392331844006409504069112869152612086261006018646078305503487999645147272757160432208490771545340013165576942257124760525160890304477041266882540099575503498744510884854490743188375081416027673434764338863915052168326431818532975798102134752441889485079075273064949236714493591520806584039869862018488185119379858574965634111197520706484365296440752835947147151854887748137738018355513448477528848338096112005536810723901588195799309611900049185116786489158962858510060689508880163281652480794045837405588508662350190260171369734111775223232557003779511167204161810166507856703564254574987920487257070210209028371684804484486152813881096652158080567709764844505872759885210721327595458559956361977871800275902192507939262409081223938003049924094393166246127488996808234101809578369299820295217378270321981110317043937857259443237877558096884278687106129093480946493715030812084429526161353231326764791314491102539263110960564250009097483526390359782682824068805487967291019632280191666729172272885493112959058433551334011037866546146034231505383964627388696148975647448973090929491884868857988220466877961092097761432227500736195312099458967092313048421622548294472986751694453161272679654576675885575875426878445365674939583312393603542768283997214931485058606087172502572497429814857583388916247801277658551914803479675924687435412870713143570505320446441356817701098243516025629706166652467247102442642369428193595252999438461594240408171544192176999249898954950099054931465595428734209312878062309423335090539897669272054981492040978169669200710495025579621003159214420279430137614598180710878122700468974103759452440807866357720621531176088108731179747885738254729679396827093816352143394847646473441995588603707777976688957898690418158820888098090410304057559791996860284613689669831028860737995445264465048074734365662748446449490830562527019281053000488855274579085808859551445099133784215275869467620037850986081674434010036395558564181013614313036195204180308439410814924806793659388300350246153723590550968658513332557130133605641651745907435103806869150953642853140533349379707731105097950916165598549546589713870681665171553414205907556502772965682685275156434851649816688906164809737286292155100365131759119585061035972039260973532537818412240484088813311760120443374774321734356952644631700711039692424144825962064239301881305414878940688891992408413011448980105156574061924064958946794750330554637560069661657040924591703705645334894466803705569104478895780509228049815205702220417116819633369533049496688654049041722591304039806222623106667485936112636960889466705372776751220906052861647231978026497089951877265368104344173347166030291502191081363331818682577535858477163916866600929932373151561803072260550303336835548849370006885177974025204060389080268690589104192231335436890132406703409562056548550075510867088840224884371858440319118899675510370976150597976602894319314008151247934862804242617962675489358007446983213575185189020200556491472603799918539248653471232518270561115111829365682521592062128948904544151856931527953497390286873179402891341902604618033095421616109119920874020146602292492904337986433411619816368492161818211401552757418561198892865793217899449552598320191617091075241568321019041998396274380906554409457145108038329636918149428933572491287090583244291354493636780563785483834237097336813691978576638846807267359170114984242403476795784525142322975787571330062151169942367984543116113182513320129121754942745542863483747024698265700201236986615017739346630206703696056209820266392713154996502554879872165696250131058668770310237228355976806450018857257799713332851809228279273275244845072975847072187170337490770276393778323045587468313019155997182257204528952153404445161338873748494120796362495356682670630632679786127170709000333872760000281238648797005317883045575193654349764199219680922764085744799121268094569641401363780125229940586800649955236935427374496440367865008129877576196893694583638978072870861888819078009816659986954249635987463880484229633463614244076206216514358136428485064158067075167296257080302479661761155253926482799682720120170649372403863182461885304487010656523446632378108391987177855256471517054824726231332112616811606972855329290158779244825638494596891695096739771578668995149966559105319341566424288165486039134173293537974965758151710438427808746535968145154870041193109988198862420720426751092899409443357168843528935170577352829549912757199564521161299627316058715659557015157986038655289640831719359260344549453334290858016935312972943787752101193949178408533337831425836664893993631284481871717906219926253606469465419228048627002025677207038001570274942901961532307945241987673347188444583072790170430105715244331035969084511017378096246412947682670997066562281593112003659209682954393431933406771243510996713573434243632771124272658825669943328835565126817523770246265270004704930323262048284597032475283850735620350767564940120850494788409882062366236031531341671291499025222000923686947198109029849458581374008369263846102965691324154897893165391162942708085131233252450842792550925480800151837577987955387657223111283696907709590488334069165657677976215166991775109063539525425441962659825076635647524239658898616801207502149049490154465084451760286745443419225194470117831499372768155304603617812157906663101128874269964952882887035664389766371707224121408388952773732669914338605413330241134302556844688300289277075540862132287598281277683430798360502757254469896334535845625245100600288409484688621115739962368610247232480734757454387600520380474816769709246074019469363592474377194628546343496219026674426765511915067886805689189099538715360672979301457601702406524724322431755032834219257190224406224932593527942876181516664493473852301854234043409908252530957391642952319334988912803804175666215888538516891967158045886241007789718724544943559939288338157420819825809611729634563282304891675519550348300992840063536301084199976878157926285417253327448571829976665679996882524807915319899334726404310815809835548637250896055612998819239798662632073083254712147637686077328744951590179041740026110521800146903136970248337642787386805714483821015304459975129600909502217858470105454969268378216157657888852410707169262293543445830106313997206785102508261003034095579868988180263506852936409767551846762406242482037404857345536959029162584257676694931008189683876075288345264267750217001048549629259028680312548058286114409572618507284488219869641208904339731956170335566411381138380486536693852615119288618564709211758694926297694436682527804594973872486565309397060063729577164011872121724356558079702101269218177439883703045514572493656791325829011206222554105893610786304451608456264184645440594673210641747218268168275126424949935258604260111069551669032099119140676295425356354152656097480568048128511131054157869609209563127686133524653324572723346792743029586006947701706187017117271303567111850538992081346405547854666535709136967683410676747383464090709480437412781231797815387574738849032106449772798041872398823882994536730983235783900603243685970305187525387315932753982179335221362920827735561096099136838986533475893346018448451233850471835406660410784504216776607301764908131400985979206120833323745377033098505071355930751967687872655079397768160863159439901309644546075622542817482225913593212939616810353939366643286733146142364643089731823991235432293677305387514565754302176814414183234435779748528848112325088489958406167317974240388157028043826120589085987639646425330803077192841023503095995604167155203681855324019283757457523121022587982295169098142070383332145772704812717097663446801451191497332997566343318832222739617824091414877695198460658301874538375733828143453744767899407670512751852824017431734009477313689309550603344984057016551425902878193676659733007542046787651625874052184890144111330451116641419246611991629116867225117623488614902056471223067173367214543797104067445053008105524214475632236490182210700466702274334071244645302643855271100172882816954568425399611866826196206597002326259733188561379214359168639181531321395613956529654218381888697789716670623409978731560736333360868441775004595323104288279624638785659902689901650663537077984489549872349015130186376122734880877667376784026790081385376771388125337112813577074485212265272555769801447958880422665384525168133399365757550142318459402362148267547029674911059436997159754124253440241088591270333231262370806608083568306066158889817038656596699777794306548989372902827012764452609287785971638639784714602133110430537677536476606303805839903969531898293053959744753538982099363129139526289620304717047648287117050397932737350015899867535047429169757232791305966075110034824700804420854107402653543760339858938702828418938911373155285898907565363746716825685827183358694940298955682696397301784922265282551418687802449862425214180431045596738265444137952532851959883229628706818772620870400678922941348882247420001651830429410537049076951684859354952934508973299342178683075942537429240830789474729625842939285390867424812977554701250654770642575291221600332522567585527001983229022147413344932988417500383926776639179789973083619392781426394048311182001086240079444585925172161955950188895462522461491868751645109554669436353415852667408165220559048965227817471541670346184693314738848688466510051632354909912209762674924828984184861542323252218344940285238456654851627692517497167741873121046992682697095144634465939954848780553642965368954732187132683331687560859296035781045511867335510285504818890093025379467096562963605176219729464291495195495053122714004407076494062196404844977066288630554462044294570392982734538957318289988730905243282452913281352918350338024469107870483411061492348629220234384810534783669682567941878596200485544548836789280143421637720839876461294631223719419507196161318346018490166404902524807769562343098124690358303026650761583969709266032440004878281346217682808633928166586623489304301588473190719185943065122713407392668086660751869033300307422426982315879393302124605730146166128503440906909741655259293844157504385343229244006170028121289702748050955265657841126051983758280481371742656169897661185217000357537950144028251271077540612650292221418416158232403051295425543846108508811374644707473878700016380392603072091116913655553253678508554320785793045972965788263353972131546255568193053358022654655800646268303096695776892015187963700936684515482516405932605281878996208932279900738499855812627148344256660334902718707076894384251475650942316272138760930223225885932538108295880253921504461831139870287607263134599655285877597118028634863391037063376405526833104783426521227604855159617590648913885511832145640592429518319791770422077308185003857007053628438148267452500518967422965614311647734161042053190819796281626716464114487496392086415018968843736527396272574791992336662722130132868141258973800873250677276715638884384178781209420335969081465407461500306720849163351975043486661847593178753787075778245029539537741433390629141811153654668604160282085780870445895035414993495360846780630807264243084858566000721110607232723714932745374844793454595126068094058275964309303921471296794495399461128382952461345262855653880251815332609099202675129816034735005261250757044324378401108708833406744168010926567883266093469013425003090388739796250639006414739611805121619932309204512692173451332741966527381883815372974308615462655522971962780953386740762518931703795569727970697073674513428959055557722210193866940647242352233808050287712462715421357619601068482345404606182397681983486775816971113376479225414351992918122634453621746513090551125746175507224364379256062750006108585535097158906163128333291835461036040118933350017997967794427628935842356729455921850952131248051525179132279626053075748875203875986770396505812081541541498880247117509131007651361871821915353977952698607536741144752569412907049036782136220521384167205381777659222089711655389165733872282047079742554604888618897658179890910273327244875891807437568516250985901746745939187266861534385010329881308728495630083049015042013159229727739189739172904468282799189609818337077403048659801860854423783698332418173277323253795319121187368060860118364873461806561216121051501405444335574583499957245279777970761641211012204196341148436301656685699589619023237814905330965530492474537731910528808299411603838027621906915347955025585545961528837394199660265698605533890925968806836682323037729271440101023688155262344933723615011387220500580886578630630603374805395330176370252579717101703322522683226457917592600794234517909366090334656234169158198874384249189189818748518343795754081200225816441715198226706725194634879977500601252276140160808395611979828506746906707263315841144153789459551759436611898383051027591144426646506489671101912218919271925146159761760945158855254737434731704892621423401361247648740859094279072349800680366939677285052802972984931255611952341794227377542440164148431342980202498060092157552333782328131241819257260594092859335083416712120194716537422691652505331653955689414716311177755405732191409208103204978575238487528478821098930509762229544084049773685848136058686495397729215884541461100899518255004979011902350193582483251482046891692718687172790631169789352489348389498739040553355045933227043860609248269090765512251486723121255672983579961644621425942050554952494096476942229764770927774590719777802037341185773148562414665896753731848769360376434470153007654229172075193575231106048901584177136327763770504619578409024824315236233850659631756004648936679403912203437965835625862650752121229147117348985962307446126263208368094147832900908715995167270360109523922943646599464100553906256326162202763040621430918731363400395066458768104965806699382003238721141547927683105563265513223670881418235636383712849668011034427248730127996350796527069454247212171747061216646115639567958966478595874667756399608441017557665044890003309209267832633834489407376384044182068564963930764000406995468604873287860362947302496475026163226219683086789431306136049018145185856926403694374766439519727965976204395578793089442923815862867753978392510874102344548341753147703206511645097648956469531850992781249808653210192333036133693159545296278895171298177945813130078100017013212450897205662908230007520838776404237546392255608117092623515980751197249057405235940630512626494729304070038546630993844258492581694930208264038515021033022377659070940498506992968012463914353988202534187942747107748037805152708787857676408262860279343703031436004836835476596172581655126762574420137541148627579297029648499963022632366014715635309398591521643813764087793413184966685290643995250903684749548830771089893547537910983334153427871501989196077166339449699204173348828861727530147264043597061877312656068538021896620405027294050835134949302854345436192198934352144059614147180361414908386171372693924027113329456052692904450112514851248085362538205458868368277810314849484022791821413668785970039716221114054628892500294193291697913192752307543202448506160652583968013167455115528582900902255935034295221373440532969484827843291101613265581780877729050687565506985373729174716511281276541203176077924173459465969559950038751176523448224474959138997094260370807064246565423992656676394731961096117227479322820521094462010842000352368039169725060434871900195899661141779374931635036575114864611925461163083726247866019534755708731204634684053568272636705640627734852632478728093865284128549621266229078294742250495164504328353175562365301917746315671299566455105853992861374913219052736004164422989037040674149448379054810976300991171015237317396584836870008230819387090282285213343554836426149954648204857184695164096700038838764631624044373519391325601532609955370428263237824000154872394015743763130173367620473984942297658898574128526837158445618885433265504975248800815387712555632714285432978596632090830348829146737338307741872241787267915735087099738017150856194404068741861234558345712590342223554923051638262378673014987601338966760669389549631462665371833521011037070028323156262978013977705052290957062233526950833733918848898128415702015649809632848675246626100952818012998323024269417922353379509351554146968016887118524489285284675676139458233690209342648931013048463385503840904222180832916567271716943397160662286988422027738327982186982473722111856508321111174544861287760399622748708914098579495743163156149840307312845459258695711706551021648860438304726713183290587625490235846742684804218365653505030828469342565388336207030964718899997389776318433950086720556505560637746767549113028110781460017837729421553496823324096162202968163277153353794266922152763500038217344324607079419023089594912350585195619802282585531495593786766287134734898805118178766582388278538094752408001799255214832039643414659263913190627982138254655391598225469891764120256053719564380122798250487347384410577574310126010182884594813693683620859111812950091393598764883164049328240392352988563089941018492389074845471332031495580175093659021882241475551861285599964102405851888331483157241263035267043862337056151389157460668583920660078477791325843886186891122140381797908994613353306379311061520016098854834582278667809955525216143574164241935795280552617408327399044286833549040171379737255327156451007146892601330287864078059651940215429966867885717717538282203571239961392066656224842641477115604291143942542218588097611911630803142375760376279653341258370219759327958387356940908738543688044765121890252047643815098507723070819075129250674476349690915685031970501377469156953261143315954632621448905559506274353810050144977062433525266761476859828423609346155736371430488441201472343619963878987794776438603396985993049562124401534870962974502844450381635155325375671349946242384440419019745669671911432363940783474750293095896528340440654235008000703108329616051760361574174128597868362881580142556502042583855653564193244684564838486741614540930305496017021893324107187655334710666640387428771781495156508946878211488383166524475411693438284724856085418096059819791977595693568601749832788725850492240468503171263933168520700973394937102015516417076188770205359982499557005854408881497348569094239948390675801867553817944275627904311288585154311025637725737771914827906519198991829040847466814791933699016073005620066175820515586296264200781369060767545372902554973422097632555271934567272394149077692387061095458104139587572879277975140956097323381586187578591022914685399611063350100243874879931749369900093775215995981736379886710761600903669263863269215426489470649382905088075755699643340208562921359005859347754664001807100174975848880140435825167984513718948056542569758146067217934198712431118197437531773233592013915603885220092131651912235220697756837233524399711051579025202571721921641600359167927416722693789103078050235476080131824001213798921298729768947894127353330836092255438848391560386185668810623944616499249947124620998405843747626737061617363153783385765789049306397092284839190247026360785249942472441326263898851387510873555553048508299225509775990360588004255460790803023570520860137779017652964631001523347729848051548075628818747364245605345542721248617476619738746585123396388810299607994514955077687855359961920156843887907509453031265917390495877849237394636541307152655089364731613536278165493388622837801559439543259889876288390284751333597895621248380327847430813838279586605245272913017857240569428016650920875825544867843770445741494547474230834821896497362169709562640415247700167338873989317443748276820655753282526176193802666293851206098628450563295633234919568213183974966101062753622919849977400764704552547345592181466968246777292096557851257599517779408543313488441181400808130619414951217883221215617157533456740236324985965602122028283797611334117133021277474955373888382241473071363452282205838485781215004648636069989927121493362952381819235835548263805988890329760025182460534417674076700995047425353375927397941357417937046789174901593924421444993502575178260761904515177630684351465468730183972834021639091359447138507870949381174092771061730468409854136769878897547355155895800812337813833750448819087865989961280219214524689688235220077806138482107940173029401950021738707479253255392433065931378089603288051955397770715456963808853040643086561431046739240093327013441819129017358227192116376245976679208251997751699416192515309047491928462636135422348226416858769514327175344646287486450327966920018470043981671083596575432866409420328904116084598159736637660554182925959602415957738715312091203994397847685188517716839426005800079381936109022427054767483852429690574246426772353851223397003440720888451354835215524169933287243615809884738703628975111150553808288971538610372712625056954369159104992050272963198119650785389510312379615881096533445485895104396035532016107267019000919544907601249307498096536616415207969073653324125757513730484636232262746333728041380005222907978440216439003429821854361642194480538605402129367946659256617841069859829704158787822843260773487389497988968263252819967008881613762385734930576181192884530517943978946210544129436601988390332512687963265740259414338351397624614534901971272497160008211085895634615471949380114476135884073484037512386317605252789744350391465419660981775414665684735909216477545768676357648577463600292031015748773155408521605953825515008700840957628670340697514715283872668848919999545735839690994370535349274014859471870820777367195586746526401631576439101266439988319780783623167080933085768298804849558278882562235433749060533983911903262285252466521887696093349412189119045847534789224140907862499766096133166625078796486471987039253526792781073032610016341130682092536877118655577862252769197401554649176482284735284412221953306416344098452510491564707147687734369567022757216459770360568412794306860419224426883509912130533554921300949166069256106658762461153449131707586522993339913015774880534042876267332484570183671059214983095054059747212282057305413008425572668575161240135959305362393084205693465382889437764550298896040577080661573310562111262188114681985197290285838667091652318901276048428980542722231231185496346347613917217533306172626000630848679840329882241209047320604966621319801664871210573211028200790572007988094454482477858116429770938253036910274271118702168627196982612987277924191887966258906416016831779849950620652834008293489666887989327492269418204660615297325313948364943472394533080611093126952274694532300407898489649730675853246126861611274003734981750776941579135790818971803131450739105114274637125836528658819635159997059965654197471675776649530861327123893451643611780440854397511688918242842545051013342002951491306473686633163612330487933615185446628012580523006240423534254023530704508965271405637050843762293210191572484507177086910914386194515814986617006344801622345050042058243221182071797332698603002733989465498939218310231160526213161629616582416488571330409733843667896776033111316741477744594472242871295758849177841081743957126152462716235824958531156979554935003518495790750948399425584417133678695347458766799448516756720020865346010252978098079517190865419619414969959159224088195215315335638399296242352753234571685801003784219799722594293846833557946050588775462897737443922197976659030708279663552005835191101726138932582339957499942769782104426215213390051778250416325541676338016085814928668443262356102424834219372302432186015437681220455381931184485932969565677567134587114611768608739867327144788116935590511281559869969633943546056239800017967898603257477113091147372955902233005750142313607722814835840587090955829181880745273716140267592472555734695064725399828790686384588279229842126316406510048943955331961002901774945251479448355501216381562552775054484866188753671821792140713645551825341119197268642238032777164317387873479843788694944077367084235844318556937058797009691748074548251928067018679121571497362011463748854177954251277365537806948533007569224302584739745489367293049062139950081922171634301689146031382152105074014760222567534988852990231074119162736065941644961531698764648817547312450681205598463558452096962127651991326253037726963953563415346846161919511089000824169489772767775268207042750828415870945977394354577980462502889936761864266361009477700528121114878462808929015884012873308324289742431937747325599083255041789309986962826009551109878365146644445365517454677350207120630292635997525550063437376123707064032886856632336113352796272411566936372015075773109714529153283207173691537348446850254120152159571068333679501226337011603651662700482832053256565417241033677088396910137328539359557405066606200692469711090512593411650816578764772988520952241711516150391222946669968082515215520168813560695035086744368270200333793464536061304238376279190274456034024713188620144725036073733548918098355529948869623431881083115746954214677019094331827722038934270602551266017297631561912504442384223349454245011982664684161547642330363430614148383032852109336234202458562762800862963840271757885255928169667009328642897168851575047066992240796724478692132497768631089950837477246706870451829798410500305136805393831746353972674385737991858149951210062179550956834540726220034365496995250205787815536475124825223826313074529104171693994577072920624956060550915652597396328431384262965477495196298520286636178288228186974915590482722137262949416922144842324638272162557141599437860038569482855170814437644181163491303707100439801238566310336154501550762043741678639367314395203873472070496603259655282189105273743199256042165100120946380895767036612954697491882050708858821002329285526393010807529478209644243392847578535448461068698468100410958010318533382207286150941480798824084208497523991606573430357378345477886233571441968921254445826811376374087505181039099810596990988100974505399979802028885460538356894535857843919525715594269617508831213518229259885982433724634863964600872664703966631020255072052005694639620067662668921173763504077081220377213069911415582280600895694303131553046178003517790675950976198580232120011062657839925455174090387806815950109668783801582076497160994382352399865339585072531543650894679778175691580449629341683974631803055451052131966946851194617670658263113082676904228311828384744026605576828432922245973031475427579274568470471266709849503072194623356303018795913875625657230122521661650995257179191180672993892481460225646452518488209719369699897952312135357632719924110669020673132583638334476980692928801176002628047886768266828657842472778904827940470223102342710642309181044144530252077973685133816077934048496161524394042583518764371982792648795964254868732354967799247317740746344019650150282082998326475828487952943675339373673439546604070377858037074718181775951424320306465457456282542809394330239354680655584355402295688982609826701739911684948792185121917549537605457999051696601582397534290268739005218648281441297883451257637543187719893751364732132649942946120650823636557299948553181856620810243528323264995087085897737200932732176493259972859050498451537996998519749169235073478805437697725859081999798900520133555012171667701451371478163094102027004912646837562348638508070060382402711957720168101758819433841764852065049496044352735228198607429705251643496620126416216751568628626197405265436147398673850220865211791274984249227129182515829589912845369667827179325299526983012542302595251413757901050554922021982483167280948015585215023285899589964276261706135175214498079276927890894315339550141897067872715927621634003301683395916288752868052852590236252334120354287254020634767737831150961897797232886883567019105503468190692533815946826080373252616426776818053521629545272311840622994131263051206249681319684069878967246342269407122477741424800041037030035738861990497037008145839727721135408325910905784821877802140571535904705657365529917807606893349663489044318595911161859145096053123451220390960855892308204944427629647788304211614584733745899492345770192528933801439660214584233732359947625424622795153469475250324522186938093752136752814904622838722253389151758994392031641412368768995269991175984532528828864787405043679417114365566829768832816900400858203536124219484093809913832313726554077099059123355973776576774691859561165820281969245219359551311233621706330695858126924202830239030073888677618091259304271438182237359562855903064772657834921418673483900990076998125009570423652511583632275538853422810912938385575702310115640608497465718885769525752651018453087846108620872995790961102189466391146857617581630411601092864373822223120691986341651034054133495930616607304622916560334082580946858683440713930129589212715453666375916454200208030685967779547943169307425094271837777355718126325985507890696675463443181028147123206958637373712049646161609983093169109003228714274887340215345239785232276740197408084514205304151806180887736960703131851339762256417977868275289487303199302400580445841405034267454384821561496816200644249399137020671188591307093596296423800866787259489808583216285353559485073002406382379849402152852677959205900682004165884834874851401322565870587840526876673200397212084635317259345298264262916303290211695991637703001740181366258538291146592839408940123408653912184673708722119371321656866098958364045367167451785759542595358139044909130397773832700766230661494451044123424903476209357091918463446768363374864028995805089542299692118527552985712673418197877344132537942784165572451592099475140180559085439175216184409737242398115527869127646277041080571845535251228222754376696892664090734084141893679763287274105273047488788176456858617807422343229881444567681052735544109767309768613009667566214079398527625949675957541804956986048291732497412377125360317867690005959867841438869737999060948478270885112843968276725126360630568338873954426517085003059924559205531364113077271236020185996380337577693308648620425288774219742571178399060311023478030204406937149906839011689591812974164355759089496565708919334854015482802811898415342158619159026973690817717622590586948208818225206318570494446967872618657426867376953168366628667544674947184088981601033753341599887647055828178148378866691871153198917247620806135429614308424214112667180006358108570781665073750050643939843318836158493266817406922744803993726663240002744709492255585938454723353584368804569525404731553914467226967366820241959214124520016827489917867180259246721872883404467638466567215075416775560663652512447549130471335985811448999187316918659322174011138636062755604428029295442877805727705767835595615120058080261160361304242816104932547030822474763118389095416595871478525306702068391762699649433736120659531057244869707408693165240134015971395827646783065788489418145769526199142020226422482108964371967066345003565998879226680337999859745050037467093463433803470076145136705476636790145587786241527697249749436982228689584153710715687201688233237219183251091618597096595696135430407193686455962246452380834409529844645660813939241486236851365507667129903986397883306114712241436030881871730036073860396396307646742438352576475006316947869287690976898094918759429108995686492197152322224787101435721889640613603004746794345556676871615138281314716967184792960670242235399840938472821835109868343261205297882576176863553263374868737183193729565105910191370015262419143739075951597377864743848377789012314470336247743345280338480740373508818088571457699192792453732025160226700660835381164318347814953933375911129959658668416975107656823307814020311135172721067582892931830476382738898195612860681991119364068278468509067844832669736911715576512155379286628166906526343719047873140526862027480277088516179616377258334509609609525212783664142366912270192463227629611532878588208917959868127426640219934348012555057320319383378660827021631706148920144374077611423292010555540311860394147171595696717279231666979667284897086221354367793050767510434760901470385142800614861516896287988519876672283467323579749195602707333672590581781848275062530773954450929952463120727999518629484658780273774177781812128999160541742470321439480297152441354413764371053158452821740142402948242767708473861254139223663083140248885564570714075737391809651359183595649531169597745730344210877691751138680094036144615135460730991572116605964221049994113901418766687909727197901128183853932018392850210409997734098989977794506045338887942510735378918856225240336079219156023905345780456904660561618699711936370175219652399741949777247509750330220440851529107520641505594486052518350619687300980658978607376630341683729425323210072883173197679071904594218139183922546565251587222392212032355504109720090300559972354031150504139146298119900421457082856399636518908681275328095506894488263092959105798210988597143045511914535725323503348122730418318717544189782353577582014627384131196507943676609487991462493532582493718377579090347959194273061641655605042261487001181872389285634209924509071644323041129628936107816806171131301973748415099883304100980823491503138211854593061184529413973774853782044866904276959559833097002312803555937603312508749057168279032930715182076959780534695248740667860222252684893566122989137121616833783836305379171943598029505111052069136170918941683408486315211603623976829835276488618910339801798219048272223037186512199934473709421834655844655760089861125154073728454232709435250022865227296274217102710797762672271395467042009749335647784895786578983887083784834394055842235740473327844064143381295707624288931984274224682211494140682116521184446373518467361330764575232822470224129824041285144456975011424096004033739478921055995565666318507571272103759134605710689374373873828257161230530655925941923838670931523433858995816609212389716848845990011318738887159792874067454549285815585651212269250104489392774974996894820488766550746268421926880071363299187446304956263897762388055937149816009769067191160934674491361955030002369820125408897160596393696641355334541187258220634612194965746494982859890168754118639783600169605780700462368071372510043868701803412923463994892396457691686468940134946917040474293535924932960920073576289544689932361423893448236034698892884364371192502571235296321754079563811144057457891869646269637729475480992236133903748024675441961774269529659134095330078629396879286808702074496317653281281321194799668689672593416599566100582759066632846864326947467068650940994697743890916382031020407158935514096953697822784412494947107050305806537018861397891163883267045386454211681935598045230777414426164491549213085464108141719173396965389956417894997407752748978203308968654448924420295193981089127612852553828950040466359036148237631331948998496114438733946209515327800990078851374407326294629068602871026092750083511752792568510507284949695120269482132029137362179390273375059592563167358400956684751370553470025551097775537859731817587349530166390901130375882727351723758403204167489041116986893915235927589199600036852815273842643325513538009758065035973972900969562409195618130167407534385204714698321735465867767258369957147775997446193263231808183856917122115722846724456795180931639555451860051789437520269704231083402269754482183221133697268353526823667309893306017413959440542008192690027771801457483937060696608745909163468639430479131399703572825635482293549508873276484874731168291571943937769601846551900392426206232875508226071267306113150908910287940731542982184887050551805419033528754923641154174020209722010436949212747350173949292856973631935654507288365301224471799816367176617886294012062368583869347088063608444596865880255684724855346603038804336229012235709110746092025606171469984490075121264648812394005310823107468903186580054097038034789801363493380264449484251845965902650707114169724651142632348684038886462825475357466773404410454372366192146641170384042080796026694542457305710511121531799489407009656249015664961325954134527989829893876397699842472528951069024625246305012783204346594918972065162097353032314967470802020978486989082082935296376682803150655008008254140323974121326951283549817373254904788552025365607107525155338247336573594701754344834529592845946108063293995956523925518425789866023158971907542853254300534509105234049271731071964951544829526135096264221659136666226018544769464627426599491925155877444862584008368952002747520278038551688669334384911350289523679936361505630506272009752031192141515538444258179235279046503136987175453133607963173991233843346686861195467703331032992327130096736894167617184470860639530773164099822281399067054333003695098228361777944778266486948784105866033403233554132548714115139912259902669442533904390396832959382890444260117760674783636048306612352407682632104979525052939453604471541140310047832515682936405537837382383829530466488553772320605660266845518836163544439459266575222490703059536725290606256298222571814228813804999555707804514400425236344906601515763136249147760569330129131751070771932635168423433071031500891553457439386066133811923979598727369324040270298977490219515579596364654602236343307815176938063490141923092082649020708631809208138403116554380379053761066634976044727496748742933481469981336312858323549745263762932986181322566236940452133346080905572962570680754910980349481504707470450938279767621287383978945284469974617114945082921096197549310750875357049773698861166676052939995001246504336679500040420705142815574821735718035666553737030158820770277008253977580480632082470470518693635207383237389313777273474498176118638943589740283828705320696412315152466003874928869266100065813662085458737834435990572722811410848247517955529621121664988656514504774572336442136895935706193624532956725416945854956776488423518536255176761239055595179935873035596607134331410272651047244375955356658271641292324068851905255345050371725751836336976070348943675795188261332126442516632823342580077041888061151405802371368750422829877123121981905555973044598906664924772348438457187809628824188222151213060545298628405304841172652500776879787158364044466292892884687576619252880399618249545784652096583421276222175181773342074625037107898905519906628873840506611365808028790043838529375859209566742404171890554972888087776775785726492658544121293945922186650666925757474586488923398085989265161264402977187957786064419314550004703586551971716223679351066131386315051650228453433121609609621798765942724638419328034830163509724325455054808613285525429104347298688077307157642251124132289612493545442003426114575814653924997293969224052902865308934841733360032648799275526488961149961397975553166743397137106422140169380210881306161851431894331982285858796370730563585523421617566042869006952339468886238788338674438403508603926540828748864649697658601443917132165358768870559731997914328213756776311840527948757259045255781055359041701231411552827007947957190032787556062615137625329012957798766105908635091202812657825149711716994135013797112360577788086446701736613858160811364757133905678951614824308419357924857960603973214222548396163494668302226108338393427298743229377414895609515469557728842915561090087376985473246854322165221417775259521711230366275850634846798528462901751518128369137648439787325300004023723202599159393353491818571758225294368043916951489843679773105624422426537216042158223805959236430817146248715016267004831527235552537794229196301609695367089811307690010448188025102849767293256520369650498990066436709479320796509733891916450135417073830567855726149999803214839912594810570756003752102709730663407041616402948702240052092779903551189239079328985343137346068295255438339654430038604113631669371913365360767950146015912823980999996076427566579448191150022821683888972218386235260306631288422536415932895000257713166473483097879649919399279099761102687099616768543162625925991094692176174173330450386822855637078284257330814097725023235658520695338082463195524928642765426995838431249985726436999054219533002772985617102489438810970301309286226851225676224519514754888536458355691176265297197621155361895822773459866260681208455086901105054853095503417377187766638125044954422295106389452058093134536640438277496267819184830145329048399161948404203599370273151216541192513897433165728269478234851915875955332720777618324804190525372552161475273646258379390795787358421538796487679557679639573224246694664980981219943791179099207258190266061214558658657531234508268586767968416046509934547423766313500118139966280222137942986514382075162818539588184912977316396867326797630782056872658505231849294359567811291440520872187884289344574148903718048788415233765751106572418277310438368289766811083614933444784719192191927370505712791251017711930129288069132647670437105763510654739123039786654364938662025037042725531371035634076473044398890073889653237275253937226941478250188747517718182962170472136862583410105666335309114756365261629802569790680728543646994442105883792046855702802657730811911862955763622508395578250455656359213866828885055919165737623727086396501592832738983139988610566185448723765371981842594350031346955191309666829569559881016555623616472615177816682566112089618012270545897436901536145582791519901152478104639358941181027873394778526557664056148408953563189497432142893540185532818342748442298625458083729612234981180586411162378107531639590822515963410701320950750958272848537396640934870246231952877624573827260871902530289124110139825931590694773446659393546470089867022420592618614678578880505137623102455508117634570406478680456185080903289686983482038606080606260278938101062967487204586922041168617797534084047796756863137205401832863674189969605297004553057825946125668922349274059806110660978724145806998130609767948551467707712693592999877987601826456380105202639733389513325641646592096198681504765189626644294737699553032215421877704077885363569595448167791974165122835595314004728031744054794759169448631154515565881690087687299495014191407355403944675147010263202294523348397594445165642492145391872307901042749214087527173631987687815028923191818090187021955244492705720701225949401232250481598016727148945924206972788934486813264693966712798286213333517154933965272479778180038636186641662121664438088198742892325385379214026244092500804179032635992170644010434786128978882166252170403900332738913294682941914593853909472646639880739433161703232266965187103792233136265195841921992140076059011597624909636831264936637495806185379838685899038445740423121034816590928605321077958295615423432525880305215449230422935748014800356494525121111877977008819741658032669317047654724507250472438200312022910039162874481626295933483322239241482151077367469114470711208989995260233736987536717511883373608514477788420862276548314343699208486558340919619600360841915445508831209643985690459357160544922626882709310654374803258214881610136103873642444907705223300008044753934539018776084857640049489844206278042004889458991237288912813585118845981073717117385632747091132860832987431509310694294143221587650868465849867398250687974249079190481171854133068393015207355439316828727032914334569812638884146836315676799939060194719515326955476799540554050649113446973752306901251942124587987607528876725143481329770676217541455511930914702380285182404394949001450178115870623068612865554521803125332760128229255421605934591459698554736233211100287362362892545355965290493641028279635767467804062630608787038646683647802303726383768711544888537470219646268304788016191399460755252774681736716401911697652371840636912515798356005221051431991393004329459210424573451421084542825256441419246155884224784557367000617168892430396997334672710533515100532619023373084302315027326894519054684665919679899064550964001644560192162705652837763714836376797039881196684006682618732204487147766307144616962518575035401991426417334199710060804532200764186435302821521390326866305729390512377231693947635751237809067121957275584300876531596806210730570339835014818080299396568389033898503705807009996295955582043144267751811280393864009451546352862510626366207853824277947121162835245566031059297883340207399798756348707162151657345443501306669407014071266266695858262957856013219230128423923576460442604972135095412997419597251768646095635726627812780962917133399504409278891996376421250306504487206076958379569261033895255325908634708898827552569627169069565406317654221849715871287566004050581239415093792347883168090102978244144834151670135177315639043566205017593063531795605938351009255805776035187457899366711979508975236913446145481477350549150458137574202645671894583060303286195024810529361555821701910439493121286654380439821389975624834281431833110897372063593085855424968876125075474166586905734807101435307720622428356151051804427296803709756811050776234921739805717647470463612658792185928548403222539263121675216683219738017437028604796081053124311472219906899654805236417336095424415779260629462804873997472285640706870673669723722906129333683266368756429805413438815240386843038257686600356767798320370703560667583819945932677859612746611269704784317476233833951209556079843874789010296713214042427379376404936135777254452467948353794053270657420814310285030968862141361471581851623968052042185497811243845072275000284182330012450009592462902496452922278064645600083098733378660542126725987671493259168667972394884705945644384149454890839550028841484229419610958831612687226273136825836260950574362536424629736530506209862482525317494339386669470029002713470724744698233158461237640608223327461345251351472816664460436926577044422681984257209611956641126014580023550978403515329149427455565676993681006205726775520159993783409177673169625579150955659006458342630860848091107294956291301389653746505635100543650867596469308578678637787015270492136323920416754331540572260448911251471796597463045578847363876324859405580671327344024971144714805491094605947390021412862037570694517331544243844718179066966167951794424408500812032229284321447316844936334622825101121131963897502401400561205510620860505718158632372919479351855034225782308978274375946413321825184765846543009235817769573280865038742102001019932953869665872243480034810155709543734852407059275530735558048215459226194696465694976516009702703889603973577915361903598823653251985332167369512818697104184678386469504750412905877842505824063904814336463682804317013067127584955524263710500171405655823567193499503045148110985511825314755927703709880756132711939632224290017753618637688646113207198567118515226966735045935611270798438706202582463353030575013663896725604500303456180188087806895900611809884612530331339257618759486844199027548902091034814245027870662124268464587156759361309133812601122799263819140419014532821723249261982098564805198341402937488858483245759270187661545471292760289705453751453794178241775684671251251907822149722908127933576227012797534906975375722662159588000872740662616390761081719188792486726254031112226810028588848344808314260398989360886712280653120640665410624574092604774984472472318957501404468233313395153806222165506829362048705631388276014861944673702218561731073086479105977846961776065908044239085868198637118509112901046348058192579315003055184843010336428128816855087412358606004891112072739535396201583031631884988100890472257084008858382629900034877001532938748153073677748843330851794919151815936170126425255710257411429291311988211921154878871276077798464825983277803813202740758765948590334236018247299107431503601933112804394304830035414419332729090889788904462242630409513918560481480529082328566838411333028905761034111918707735183440949767784783759054638455334139009120733558819790419560350968802940672361705662826887632553143941630520938904814250748542177017767938863515625654840822671521935467046691835862138443910625916365528543335477817872924793254319507026582099682046181174080337215069021615496155092732159998970488279739704172056059003558491038024880945355522143399757120482875274364764194311392251109830163061112641570786212212348757735832126400077337554301389585928786314649358970564574461012309853561787480847304319929269072298248817922484363844876836183682377014200638634829398369968235630639748876379414301605962963934631282017251850681820763609612279232056733765785729804221855355765961980693438152981121058067830916633391539782113129283286772982792283146279109718335674083884699250075915649006345626592282913242187029646913943143159773524607532874780223572568158749818418112054043168423986157513437942677214121609717536303974276588771146703302598167802932549452405965172738183645518193904456842833328905993056458581824807045616170837440431390529309259322141489853186591951927057381361595428629089562618225867872673234782373623699306107154665140294519434706038912825462253885941410528630932802257797968467960855812404745335670858375420150478243940752399090373308513256543486502639830315115819419091419492719106608664634808001016216927971200672316162815569599125009552367704502298326902422650581482287411199605277815825993369582899820168108293444124019649350938065884590121831416306649002964297580297791170051057541671142304407792925424936188809820363166683672064217551973977523495582753505047370193944696509469066730527714594385097682709139687598795168250757309209448504256932643239891017498602757386998099932412592417584999916270738273408961663280748532037583817234048729033630157863588785226697728475336325982926112964819316765219443677839108960986359957014866594139814131088672105107082228406470996464695104334346992823450478133367423172902849455190353004353960739427953568899667702040917305271764138167380162096696294220537182642478462467892050479597842882756167636552030079967722949704595410893288257097655437272432067303293291456960408731748303916406626707980559572199962004203637625667589276239711360984483095138675099268590128730342764863605581027264411834251180366806462486789227514919998789024829962457718671278736938788021320347468691662429751873087408288745162422429776081186925231301648662792004688280130592801426065760106882303497922284523737401977594916708595339837172397495697341470033299222645188831217388156632405750270412440769776929341681797727407478355105064867661423663631167057671546882480652630524584724904133740258348796265683384515297094591165288075296462662020381229852565403828285949675644215486215292963520041636651544657272511961501803434327664741029233474692278963232945254271226304998676168222017400129878442242015723218148680047896696411078629132370612790933193619027169292091196203173182285215253586708179219220664756751050830498835633244982068388521164905276788150205625149384538782066178342754398483387987995384674592691674470442641451362058346374461580883563289457185969273574612251301279191153870501699542441944651341939671114325541880183735020718848937843602707009031611035344333403400837502174179679440841604191507617705153605343214697017589319801066045558132510203106166840875945145462730625733456719852340436421910138295844480075410999830231154968673981089336712031369303060520823663402518224280532191487729797970771647747276167163763472525376502686844844551034730190027536240116118611562822631105973490356164697593769970679475624698192380639742390506499813777640827003041419624333716337558896959355948677915672030581002157500271022939778532603294479367271755907301150037242823696344052441096834323336755152153045123789930045736670817432209100470736511713786032863428815895030976969435439317152129215308920468749976586605209533399545973392658910950175168633885743653569210114744361978574647718308396552156908347284087649776238942430483038272966973456056532039846448433455146842292242862913066504012146637375383804742295501376886468718261717598959227671502046633202899744393565368953404543998883613956611166335190965374968669572768794690853943092588654123181455914157624000440033052236300934039923450067178014705931338434176140728737761768668309505044307335799380657442723622207159055591266771210232843919774525427329261713687970207880269374326540351898403869732210713152206074518683773286044834084709579756197915992737509180334119236597371299307712658461554948592705914607512640746850119282218054428807074647390393918166806442372413699482119217723115943957288827949253301260329375892290548911862635205474077287643435660582948341235096427539447424946647752112321430678871941366208694634287396220859314958770534290858085192250530620751690301530738368683499431443081594706943884116761919612208233193936685141405222482811250043083635300781238341773528127491430226111984903158178584839036902209262183167111358245884250371910220233739959071541858170787701252026838742962279996811561835170479712609852532290988950838759273232946354964737030956824184525830248127641035473354353619382431778128848746915485408028975550219197313186935152786646173252803686884772079718833255843561085521494442770269673977350679848543509715451427268303253501679232160740282543705514487208256921513546545419903650953486697679945765020493910606334363342343414171317320580840932112800594895348974199100202793070005699869543466232319299717272961053133304586647897858168309995849508487884088239641463445237672196067850146973922957113690258865079086689094935123393923515034562511403944086902815231548383570991573618382614320259805770770819696823549920215323808327891088126670258417700447544126139468107989744235244232274686311573245295615904309162574648735585177368999915727809583994160521945875627920238190758674590508138004986542451138370598172075672099442778443123734894809345292981497406440506667816904027020117862369685979141308518018460088559968774882788351436145119283389632824822001744571476721200204293565845175119497349712541621877545510717652015127299663619031042771046627046476633130370159909831504581797786729845255008820285021254262973603814224256564611883550334395265508061251462623835120988785891990556556956965763608932580424593711855038219430701849744605376572589103288053782722307294863604033900236626790971534771607223306688805090797257831517017988175853934066046730467527398216505953743530613064740344166795838011732747252269530510785439492436979191150412572410203606978838150503664402736500076335508641783281768866931444286341625038984809841396691592602967398231386955784707649121468791380599889038458507063183845449821919552257568517844758636667973560054409499396422629386238753945962174752272001921982831077015234425050673833165242006280537516029704445300925205262524028144936097607478079642842643287675143216472552151013793275008701412685235647079265507517691776145117691519525236118900623580580389818986673520487403146740703845355571666767458835504427430984411524945846867316651125375371959453374556796569896425524636693461320281827312336920148146332224551153297316098099563466551809638074040491423886457780954562393701495841503550125320516559681226037820983112828181770470737721616504028677914345398748260469774402239419873625631251584053444802713979409500156570439569886993926204156894818591895459685790909122408361781235195627245557668307965040656482684187753825986523952998987627560195194751263521309019196385556853606820741906416607399547787412838536506183926661678507455979436153167878075910141725436203680139052557391159701403471525773403002547839183691140310776560216372624803733695717016302846476160527399889640756104922909421076472676533980553165773395794975009879121123391167286154047555255705534492620619824613474770976381836429186020495804946118618744083635833138766163923671629838033321099828855849593398118957752621167628421033146138083193146102601469779060498290120064578565579650842167637270893918813236616124885932906527911862374805415502654430709100349720425716778708641593399783428933209793568626651210549062326094779117091485552416375281629200274114801779265824371083311425778073292140493749715683794927819705228818664838695897046544564894598830043229963349997577715237905150962813238558785161497830922604996030813215096826363489667665020244248530287591263563409769989427269358871417495057656218033153923016818730507990729176039971823067968178199892263883855064139816980079153609144624333634595455352256189378730862975010186870886258514957771672879538991569796474090295692040653579763829081915976538951185640943147869049909436615009083136077526232994161772125509347649578698691508200850613360252689201331731663072964881012484579588153841083200686309434262894798155883534060715052051140334962798560901936628098735020610141144503337631422899896097545676651207619575761592947252633118027423158042556811100744554820077281800595085342680067838299966374313505842726613735645701565415656172772597762696267274020096966893976967332319606858897569668448746871012557940190161820865411691496698742136187272851537661594240795926972950269961131588580109645386389498550034880709578610228168599462966308845392447119234380588282019977621011851392667939065203272680010255105587771709691612691670132224505314161844324644810847876773043286716117646241938813296563808135816289525992009316076403992471530134930268339077351363538382540801674964738683345893924600948354468107457739349142428647771163460851784418113102020668520529874237497091493174072440731127549213646801159537399612155547060092610458213300932765176371771455679924904827663173588301733945503359760721701460314727400809647847143310586898429895570555932041386859937705984780804056710461274493180141524723983944639244649943767518548530867548533336919944364177838295160764489364201292886088057441587055268446535771967604853764102920522792959640143824371807203442162782075217277358064372663773333821896697367183795705193813268844060663422814370027021247557921889394378670015134682704584431567091495853304584017194807384163530181180451854403547933117722897811746601632603692681315388320132480160871964713234782822378630497436898038480940684403208141147180719319557105799484075471569372309382231269465637841768698113217171028957098447336107880665293683496994541141154000418774213723029597038845804359168918437900635699620655680011407879802155335277600319813998568961331860248892125940787321173834569286672682619763617872821370616187844956836161702611433881939188811140705933143112235845097796495389002208810402932811833478763048861081005400252635013274513891738141506267829011530778931804140213660158072080563860616636423619617026651671783555392972858995694088839305687182018493203873407321312650129333854405701641464076766254556710249821427670369679356810980085104330996176591159033975290504388387095729336711704662148283524640356507041624015203729208978095686035908230102106324696471108593855513170048982749020609170065792108675327618690049245030825163230749133432562006632314497812563087722769931880635898560217408506902784186195935828752814223618249268325462858169791541895160085984318007474333537974455571608386425447175672953670643317978347414454492373547352449104646498566939674257537495746091732999039440948186088233225422400904966924239908657227270646714768239211786061938572538360746292167291884739866873055464196702058083309852188081888009499319993215289265176226913873125863904914739070681310784302926381700461196317670999405827711294924887090946341446311773640293595041652047502248289067805842358717463665758499995637930926266796278520681197179896404846632772591086527675574597413615959186584967901535016258336986123754964519672629549590238293550669899955769975237125539771402901377902935532519763743626116822516113289004150664595917223484543371098668664914021367804255755956110427670193957481283487952637975706659909223126765826038861340930265087903377922829624522441121623585527425827230861280744370281841763974006003711262709277608497602669811320113175512462993617756145504152756581112293747505899668631056234493100978766239812803868430919834540410628263495724140918670169099073447865810415363266974780624911646879000089967954670547694413225640639577921337941538704322913611194774988567291348642659488011871681747591294452142597968783488555668041300949297368423314838318387533172593477208183098042666864271015119365477209805495215957481973497046592861842426828410918051564292281976835135016107447368357814834152290579168536436094792747986755701020652150315949258720026696321913580832288126098788708965999379691573060956484718738014755899658403736399617898588598095330561201357546467216269205864953173641503763206648482123242166721601832662274251925633431150144609339353053890291656652094004679093236316840603459239635509884426011986988784744498787563141428942096264364547884038507206135352248869645690462560544563673825168612857157795263627915181389404790433833575735421181107713664603359398080418461018530853888149999627970592464080342954263044361485727455320598492523720357054400830541748341801291401926900475693597203974683143512211101364829604087875909828424817475065052426046840529397065907306177216745362556545953417839768577425408602761657384686687767998520652587228793607799720053919300846061815075937095279110088762051336685518904473142074896613568371605559946574331241085019213056226181952958791313605800816454501986954668963548479956055712645436689673823790876166506427279684845271414403898313217534459598050250571291963042316104490633328450072579963889746009922968715515575237528261623575936663873377014104741747938151363645206738229108965880292620308023109502524077111969763323315304710654481893978542412071309435353849499299873235089563680800543436549033258131801329100746846863200715310225026843250277843596193947017148752549226499443399465496932417022742437419935491689384396206207482696677352819685443249331949593607425550489190870793024431852683577400360242054298372146888058419490433658788069961776757511515918079059753263350693172600726067005433287903898467267193171734841314091316182156047996304499004501947579431017681213562261408401516760882917281550616511610938711045297248395859051324300011243748885177535070980727069179746837919000553077504892831856824938977561905781529653597587295363589371416324227244112530937531643048293786993552502213387403696334422567722826957419792684597368797790384515876844110149735558446165396428158827503969310832751507655324645342075320011878569312275047353942655606456975436247840832947823490170141087628381762247621923514217486765652261929913758123159756432814141342300413150606630741645915164619518886791807995401353426216026276691661278431013660447477600617909968429723729988685281784420683678067586787815920812664401472579487917585078310278890509163683010463610144449054480834041177726637282764648967859028473371900488014747309749777196004060847074377158401966384338858501886417942228133667539844431543142896251745498668062394088522583577946029462676309313331624052583002189201168683503675742368085664247542186057052570119765055189741717358398849299760843623964033807659398611679754719494183887298372385391085473313846926967602932362897379122358454504207153675093723214741808826422939182166469420840689202050387398187655877940170771108203103069828789947433069466617472443785792247788921595035925203320897317072023875653724497901618333604981251779961218267134087267892417273959656445590314832236999880322174590921754586803562597597920804520280353787429345456284903590772561873814677647337632798456260067481445808507010760147747720340465814355145143102124275443255783549298452948144922817098977138867175140733909356282620844063451287373840126574622683931953622226961918217664239694384410675118424270187742306176462021437142997343818895465058096493111619136729405886772690776169722772268194798215633979738227104959467135724979561375006150970498406891301798763580223504595323915901933395404314028209907024304098786762418529858595578383819123036539123827412371934838673468847105805281333743871329523612587463354904709849133825721479452796471573440359921693427776970918114195514800965652190510315107486300728360735972408390103164701874875897884735672398140125423200272713616751431685250179038820693892817699301572549450887996853213061047512509475449151624400671665589821937960621701889929594743364362752759622429496020596756072077888331288811172772752592152485650502251233407968157677413183366927309960108502137719408110835425449807468893997992871770245838736003925815915595524687615047314110765229083699151592974885781184280311047889087970722005455093289969933827814753323028361331711089996962940922857851371052104826961180057937693996079536149871406469926621775187639527934608233052689831501117577808689440912771410422587889094712843536314432042933445671989379352945725290367120734658697605705048450266670698570664152713847738611611741789951981107597772541926659613912053071989297674926245862994546446223719463970282381014963458089421363411653487902993056090425508871673518588852595028800567094214752606983712141722903041780015895754393516979742080872321506730346295969407992176657160539696418706385858849178434783997601002899613303298289893369154986275714272415141287341486604541301705763630590763328903168786939819391291990347120034746745972967571433880226843020622937676796066377895423846433084989778873580685566113360005100899442480592841546569248876944447414066747597749409102056927417977631032284597047455928869452364792956992911980471096910676428804665583281279516428197277661129570323818083343894089909630865558568063054307916898773220019302102557100795540567000135243180335190722686024792235574224741396977983830282796646852929774058104937012482013854962019187323617684380515253922199840718253707748439945242949663442484671206906197930884424479223487574871103233555723131934519053962307662403659835003377735195077358127857914158562885609293954718575439458613861701413279387230714505762302539852929482056714087374983085924513462015271798122425616866287436705299199174369582697993123970062297720670384637360008115044491682835298115901613254596163077506814267547231896031628309039189087624095791221454988953300188774676222577381279266749757041077100734057853222671006827728421244441236052279140573937678376999283353778464711092724625837798670319276230441858167850832617818788110259001300332889390951103854515887415085661460343578665060263391472707451975438354634036747934460143976355866536599066630425891701713235459706770533368559224052876238946532233665263562069198400322385535036883892253215534940299606788349516758027319551947441608316013157231043954943841839447647953956457207860641227180394858806799712286607176158208722882168193043980621100060004116157197807682205025717723811661865094687155435786960399411529913287990909773900589030186697206217590959753131824890626594889522438050146891830778550025617656851190446786690459466873014498779089705848644701666402684353069087623698619556686904354691079071837824641003616297757483788328830946387047860263358214242818959391649797122844540364043847595511486588214804122607097337765636391843897387634732414387951901737992830415891942243176517995606510302861729052233975270283475879183594324813362643222654562128922981456725930096560302503015123396919782725288162484606482520096969018353372645657465010955291280864142718312900411271727170263625507462516930972465724019968665156787497733354719496228076790084373698640244784669061755216147807872092697273622721642735196104618679898822315322994530486718864739963750381808609987512054175375464409207086144997770111373257153278770536330409179186052297987594890723240680667978074672645103113924830775953661440639475632298871122455029567701669531968840346762920943133889628088427858198128894787824723013898786181746304765179439626636559823108760328453579833259141999013751496218827431665159156094744730760658071571730226353410236276370517181749386295860334374264152681508119057468441219832974294420278206562300960629172234203717487156010820042177194642646972282794527648775013856647455342077700867118306058971409355308713763640004791726184467640237183621350466199798413746882527804258878253005032302365991900045952229800409512032063106644225105575927952073463697209161049730811375660848888952812503912797370966395610061713412957024704516065150774265080224903799727864004738065735710057817637454008744254201312577403739981295881745367958184422547658311915617508387523369787348112202051279239227437335209880184978689007059992101916344618378488193812001402293634938077700158397489010063362973070391486888327014599277415660899553748732404928262899546720537890150948029454046850631336671862548337936577269667460570345898941885451315504263128885159130789365611857744687123219397411276521144598764973724952192551077581261292839306615072822159065972203834375908223422783098105202247712069824313663349618350388547462244582790679122662575128450740510296116253279566133222937958309638034507125844941207098234927216661574820772961335825298758962441869892876364427198461210898761616087930333514369205745879030130494179845943764759234989021073460353810444434643380067612788615806605718590308424399693010827752125147181967837265227888576751633589544736134175564035583307558956931303848119162564787513591937343521384989094231129652405484969237258923166775230726556722636958290744348500911800360399956944536867446014060325130241117125969755657291395025227064775993554387351265128110254902316305574636677095276712390375095423100092309419149971788837944734983809965879243003402047852018099013087761292898794425932384340248516685272494700229319582542534630150782260552768868501956037298778386892960273951141446776652204621188217853111887927037649388730304902990317483990437576212599862813738276844669621925522630110821163817041275113645326628596032288939168678885148851323744524927945981784304170897401140938369418660893423388856648025710303253605818349826730473998296060229508726801177987393732989180768472125066958421246065400894729762613623948428172101231946925673857152926628666064567951457311350383645095670039352502441511377690713415463299993934157563167616556168777954458326886704305046825503816494490307669114848558274796614859428043817696120637636186886238236270239866551655517916380610740097674321438485984165118981641374883516344764791220738260749670969777370390251824048763120346771173419663612301013816959902451971652108068643540151239383873445246932192851321695119752736840089447436020131882189416828356254388466840827767832286384548345993634395708599774204120098697151837276571070227887941522800717726267037306324407717607745970713784426480053592717739438885164129989561042484775304150047183529774923062893729138335917516432596289280051030144411379199563834667110550488050999665619231248960032273830141785724754826029776669715103066374913946885266796911480407173220243484958164665509054252137640268406916606574484933714615901301382134863988674699961613969656767276594742950955375523412004162847177025290817311394268700339989010082293479422345947869604972706670506247773209476222686616350769274746557979011189876855563133474873653919626630459269281269548783980665091929561422086434326040965339896370817446913648893334547991530124080493201152015089407738053133364087634398643334628244026855926032994984755454774745949688470201606570628495824426078634455571224912010455894382975635965109568288725746432264780912424432850315103387447572469834911331824933237939184253647320730230327450875772078927137970598945309688289498960138666040747722470074937159019384117770803410571172536444163370918808322870656607689959475096785157757298636689360797475060908710458459595658815663399725235917530743191369531144533807123699958853997462641784154795158301726793283938712585753998473175696935606308844278136088834852902803665945920605915084745273759750947512770605009017686790205190022783413165939364727670942574413309712334266616439195369957470772337081742932018813740637872719034652484575131363514167875173681890529766693529985173711871744967146322801036592856287351101941785106368775703204841942664633337258604207960945083290654362066334879456444387211689546791133005198292404098245707681223619679619125248090079579366182421853201115678046119678795446633318249586174414021370500212528751748836699061153060950646281592208981628723080518228713201493748786432840006964819005646481386424269812590485952486192826915286454273973297033364525117622461715523966458732643567043848433582984396376189209238672960175091762123470050181794605684965250272672531484517463987255615954863666663805235791699782311218953588246536510834531038665535439059153225463383137016178638201014767607183444991402774388680529056846479985513817429980806722766548959583802328413102987718874541673684314076557972509752167652449673095752326323265719845259427134043260746777318382578649048813719049537545918075681562124886682723165720789427991901432284869006339894289116809961899967692489510594174973491779901533903619293413621392536783604544674747058788031828575861223622545689568194841268620636616146323082923339624742557314596854917632303132422120508612495055760486443260423584480030143043162608782853396163703418255889892558105815241850751755420695379977633917658938938092143192232608192575420611405484844410013547020066643479506227676925155539402299880865974712021464259581639145534502203062204134391104515127928908668670227410486498268259948508774832605795558997971928647943311275246100746263331885145360819013638654654277292903131638456931687781134324301172360060341470846613725134357205994764253630406154860418576536071420137090910563982742333828229874137067593320208382705514939241925628108029601397268438673496948486916292514313315134994947111698986871869617855223893458186018502077589951277228783780127945533292732729704307351685898240768741073212688068601608023389483846557001121729136039228615921492783128375614287955208188519480343555397703908228657978717948161998038116626931468048140537493905193859587623689022245197271125469869284922114856978373199250548192975249173880121409676680580738223736232658637519712363959013423392168697957278978536986677266376098783394654918110407501959441297147845375650586433109877660708298191015757099442537664215970737363335640101517216541627733406870858436434055770274850792466757141411543509161507916570203440231673850396966887513771605972122566924371664353462947665492363328419303154775145790817210892695612239514037099086874391506251449320892021566992312732637397502147558678388375530982904613620955887879645439399000600267234954518990812347724287382791675926381890604714418964480601271456712523373330841710521939703021785679471482247430570884794385393014705277312641320374601151905485627731554246379565570131425630475093227246641546463527562812862604810933357727120037613801598971319240117147923404113599970473648876626892776926205605484260132480496773324294397428642966159419099477931751886589835780291297384550453939814009408645358283337641500672062937869474062104277312352240876052376953279913609945335916704001494600236380572010540299917185374054055956777270945090029517285138596642463803218269045018485773610575825250683229370447847375646425954089761601848710855826134648007046394272533812645137207809905563059722506786707454781792045485019674116593437011741635006281126467299834853140751433922512391618585974980554170113962607714965894318550431247227403394644952607972741390218056057992420250378900972143765604448827111744333730789583239851148708948172866455506430741219325746010222642885000987961561555397594495231281069485210145603015682754529911158311996613123437226792883513410570521636851323244522843602683782916735990735260695305839820021464791621569506456424720285499751969524090031261112290273404995745809819750308710041237135469367111659584734213892085213564234550083460114125046539188627270779052290256101721191423725328402220029909985761645177831434729989989394811230165866059653708457422144338931270022851845786246181304490856216805246384234958255298617214745466399869810705646962753389771619799055718360354556805996279815839895336709723079118959099267548004537267531851859571563338542410599408830840115564526688020372902511992293514394068563842633756490851873036046293849631845740491549407988238349196427098786735695411309408057825478676127688999574056345214876732738623752751046791262621409796563862827123133616289223151270288177510613735707923364809154291405109130032272574926847908521345875343041461156902616000751187566232710426605123536912573614559888855816819251034353744422633788799429903557927208657325432615131225468164412210059831432256166926295262722136930126412326541745250568215230866485058788733682994108238527877454801650277041829127755526574432939308284808106448748889401013876477279654016454143617467706623853428046073892610628563863045929963245214677057957870382714437170876176605095694148195497226019426561565048029473445944428257219432044940966675248264857693874647836868371152774585964031490722169391536566529188305056324225951347666983854609229659779520972353832486308719980408190204118050227852703998891856587875725761520839470807465034068514327593259619324842182188446561737639023313708169741912409583565207949588696038869355690184557777289791140477255506455816013920499037157066135716493367508764326111375508949906297276232872271704768061559219233906631282111547159162537357640122555351352877559378360988521469961611238140779831771506743066622080101973738910998838261154644171716315543992195468692703785562222693392815554288391593148098452701421726041223069286091563584295240344618609392351329224675403429927205755758714584724670040382297833197661569171453683601391900341408793888357057887546122409937225121072300776404533381824619260489224462929611525893892454408012226211447001265752597543329362112396179610970737708776990865730319511456644201542754977906317390992486805475317393065168485812982726314340840229070493051297387763653924831280053376689726285816524256930531148824769103338986616687197903484762042616624417110373586108709236833876395596957963137110441774127529720277213771257147847113012227882133452908081628089080879667020817683378654325623784458253000879759220838831783612012807062101218604551661944575147108485866498654680506714973239748904535230886498507316315801526586562284793625674994367526809686632768192247716925324565746058889294168748614319877945993549233769452461050442823757597612495367875278456656486274054357688037260163461366336798892492719356268943788318058883766083786050764641971296943191011437516264966243277381824677089010851118772069682001981926236581663019578779669336523475838667432172239214243167005057518177572085061072974652342345378963518242769365557076406639495371376519489094971776458164971719888480313921324630129412201486683881745135552660001843927589849783127335272179047419897839477115698774049000585411889136492396266055399824578227864488183747700868838144485071908335819614961436919855894405439068320616498223197312513722650050675426147324312802384947703348484290543824344775079816587856925088361082755813563841466228248002146735626375054225882056273107878654733055343010519870143994568265745997191268183692648827130459670546373358176033725542856865211602678553044323370133981618721432736827546048053856940701878726618570661194311553471611945074282303763165642159738081648807976774972268917675280344570642268373898758701347985174581418654212119354399727245802346728511473739050696296121049301536477436045156504093005303565491506135237900292318672162204565713758815731043560619968358394573266371087517529629442093382416415919314514129461169862316503500481684966232577762138030687575255602758809531266778244454144896050659048806359335746633906169914089099722470898284704671949080712947677283867758179219210527913232424424079065179288676621350306627218076016933639845936653407029725452692338546516602349070218001864587152477005982774708675453223859040761660422759936655689976319187916163829970225388895652308140097566723401921479737656582275435366901859673783841712188715962122894843606989470366231139786466906365415183561809551334971053866440210483051885214993242479922136796106548402328982612558281111109350495802046578473103697539169212366043125420055031961492196662960285589081462692269689208622837348264650605599402854860994404044691795112421535910774455390910399981155716321015902117223271495168690887705141777056030019754575761133754220019783246130361146594650251963795645803613243195881534431625370854355338496199121580664061928605468247098367735897552040371093792195353793372397236777874069626311686017495713672516382418712230476319173870888315226156287480568536020302885392288754273757812637969686297748064829609561716489749810994454059763439154235257306799417094808043799233223949046763927551895506324599142406652586132899063744707383291928091667209794589429942394828663301789756659131715022431966000511587145270820585670378997817219046727054407272123600049977740509921742885574337008213420754369116608518403097338702607189623901088993969855215659095464420936643409817724495105229781493845688942671833670449598532284576308643558717564216335241586616310923407294547635519128985213919768910986562748992071543016503906639771063675847867673870281502689870092171357361017585369012167725091144716506466759080874086374420256689679064182102313507602955047796670786953919029718686074038142463337854183184439882430808015081725843985173758070664291399307702821569539931168947865101825494685483666685887074529705522831908408585175916366389905560855916015452844175401474812318321122608365954946865111898769432974373317899594708860477385511677331506397225357499418017837428143710565000703764587575201867934461041141747355383348795956734168053631660429416216542126704319718753303007189916481404860686845126263271721506461089937677209548659377874582170049019068534187351261224567355161831625352224773314772852442802376774390706221198284401746313968740815713673748084768247809886294446276574433835475524357647309462636233535575929229356416154494271703810755686345453865917427127599668568253759658980397965688708747463868568431706726234319897923809862592414047421035209333927471709327443327493113162514079657347273781972974561379244712521521527002965689710208918071509064305918892233094930814315044401685925179446520704576184282199120528638729406261048027710278966947499575040360632949140227179509597173977313592821779789523198398668845170807961360425740376152008979523490130567013094496368349426882898633431648152682420295536350492459335757802361705075542771883247336959707282142869382918948190622903083725950705643788197774125453469345271713459789157374959830521367832317264487689184576925677856651189429041628931516699533480662168751942195982743695162782057956161684559589213928485582213306420781654140147351168895529861118455364835962003036567973599185187009920546877230133155927784855553429778521740330413611017736077805975097903925546815595212578311495583082661086430423780291000234493482311206223980380586768253580699088631059537083357557136245495062848271561741015510269335234008073939626988411305580545172870107105241311765545509155922422434987176636206468781985173791867755275883764524643723488861089285299265511001757723479603495681974468838494309359415847237592871541445715578428777954987039218456078188544828314330716880753998531211554363394430936161219537054614281059938821401021942088830667726367738029201067770428785314196591306750874601659671348113212855615342265014288572943280724760662120021823370363107813378010377891247557552782696028874948163809419346654500978799385251072147709032209480261049050939759195830174478672334913683772850649454027091230150205527088035465209924949422216480008071388651634095491991701931897442774491275253681273828777682629314222297731856516935505777904753086886493714408245465238947571072443066938556584760396586258467324092314525638085982454449382460393735468374577859139844204375109387417607798887249898052655990065110525708025924734410968965229716906726415953504334953861397101712825352871351263865056428134488426335377525553372618863423295361080413218077422123423337716322552812103793416238549456829536594070264685421573245506169930803891040173567335929888310552150788196300093201044750858352742386125078713205951116016384266678283464478731699726122860683576452291731321985911213603200043904578420332689723190514077669654960533103219776718415021274421979175799213621726454664385055449899240344620039415453916538254409901642079511519280567836805817071845474100128003184937759262381314288629015352021486093388870450353410337507292458433251892859741546122846041141816894064941113341731217323414671011061050293980146918950825193900316240986943973721656776866093186061132256176156174210769467703594663832017793421540039431403843125974416256039303876171494933967704343400625147290522587879030771834299588042457027116141446776682810654852419430518305434147730881763717277317284122393264757884721752277045160642249928676381853744488723814171790184357073154045618940228972801119533669259355511442699188038856843880903914121376539320733802961895300503563446340753021841600757074002587539015347290890035043167968726588603497045590545026849090743096323273934841338537124322495104675344720667761356246433225437701951705363407899513724990902966159568516316887301314213896008366992391166819746737752216320898355024052658326394962637902782678864496899242753007980078170447148089262292151621069234362372222474115690723514407401392156651383551353229243846979239576688629408067596631492546421586673948319695184271954065000198098194722654494375630888599043399414679947604484407260084433675671573586060608894935561518266558873402026957826606795439831032449704991691203213826440085482609659211970565977137317832277197141957238023946582856299039283430347419676743427429304920602238416606057351288095637092721486343330356303994182203374298492317555231037681726224279316482389534843630557754960821337530755449565865390078150923148346873243582295570003103937721345277305999382045213357180477762413982690497831156497088577654865325179184347545770617574247466080519405817867396442203765736317990347939066589118647443134994626106080282076141252846445334995350594594813740462650950709213753554476543313840251674716299067370480993801143344747657053797592068562842640301914640900668464316587036666083197782711016649321865871060789355904205325060159109022836118395993541540165057908695743858234059963099195685316054092381480451905690329286501454134430880450713516676358898234899140945598624050905950132775713096173259804798515696853710713784960088406618610802889597278558879567471470312313413469420741152454983521867085065278424209594370759218719320226324829696454219794667168315127255779537448883075525380142178845057389139318929537065697582814605594172375862204530516051790515830611849356729609444182911504536422280918439368940033197061409107668219921345029331304578541379417517008869848859688882292921544930529219023389341954709605256939559578826818953882345996051013375638660649870736833242786754581470035385080518137793394883566429098195274639261230976431293549433930375777943530404619373844250481756693166798744188075924648800490772803328447366261652059803285404757213050779437713868758442432389322411883313344676267504976603836772351691723181388913067558591701226540827878465963359026951199725023707175577723259192011579108572867166319500741177690530057379745178515348167383830369851777771148436752489943971316977564942046410389403377245433075742980816099539935278537672979026805364232248074916951741678653585152303394192565622265314092982769961882123853632577619209225609054123910245236060456224660553119487306458461652151898740356486454051174271592081976692440712391831541268067487827178268433749458395687054962434188243463654684092078097831985902800042874996886595186979473416008031772802813053497888661445501493840463665643547679510092138313645051936362907208988195817417213488207155550619124550805341502436859654971868700630955746649999135514301821881492745545877612049000766684688287740605917310558622024595538786103067793830845124687070670110035058216712690558446366630397840420095525217973607431541320711608932332268858112192919400293081814643950763991665512237242335107004546573101115508835180599917960131876537389319671166127377561254729914353153922533030261661631032579234608435224199322411673934365117956068430781239226997456415798751163969257467879025196074735637008534850306109679603766037561133414527386560369869422618715615230633578660383281915531527454145267136341441478341577385098141473063537493862686286091637339007110048985841256387301977038737466964943972196621822882255807150539811344748430405487599775029417508579348840074481482250356786526980355696596421297850869224716154394759623192372351987180317676672532449514859424523521931187302572569631992772073408741204614281374663719544629957217782662586701377481864900742325910886528028891132394289887471634459901786799591557516747665938993653934945213318926184051045072428727150208327316858332564581530930941804029852315462484061800449729557111059199459464728589912719156573147076716971981888775013947595225121882035370884423252533500458732109714365291901981126715079406607078168882885323547290378924316917694384750658733706128799734673078667244835607301912067524514837595151040754028922625483830243086453140994270839627786961638332112027328611467809347077283917052361570450144276692941127767281336518470689994080769232777173621142434312053413100188405540963335133834316291413355489020280009353717913352978785742234101397929812824788168231708130995281747569279628919158116891762151325003394747986400487179956607086424209817922125100212675077647131922174070838763814663648401725021844850474229404653214907158007745490457221114880963434314571531834299547024848505483076490918891417211062178180209575559197855424149508479547834697322607315209045571969656185922622363831775369738410112970958447667609887737296352819859379210667404197995789693807423294517060621877384242686540722036053983357447190450883860170545223363423918421344050869921521206992627680946474619424567546466235552286143786573830150088852589378151554871197516634672086037561600994969523894808409443090115709667820493233802664704079855607338009821433453471314039903392199887745605808315537065287144124301845997076444666657930776966475730382771355647798579896686713595246146479892834412821771165893985287838998926755279575504770684268098849021778860504106768636018093203061515459862413531932231948579381683327710601238385577013591239658748313012695316359647802877550218431872321053373306291080133026164890965461699265181599105611480239938880055095125692721102666271174670169588516511681892888587093989467501898819712104577748956826121609669829506147144834572521400282604973009455118469564289619208271897626628824154939009372759793784931570682556396305359816538667020487466825848428762119199768627685763624866113763735825119558177214795998194033645793336426503243770849023283764816027588890425496334444319836796184911904984674193593930287144146010269661793323869595416939221912101212606870607577960317388463251048029885047443209461623910907764609070256449297704996372735845272991641000550806966038273817857220228581942863594297544542690614492254860963835005742833142825767487990395548860941691991406978530535301844726913049821223184060141192548867087380331073484849587423628440857287870472621089272165516860370799353935502888794931659897066932195150228993051318313942888629803299614532610201529725979844107527981370319783335136009848877398440584225747441386501008240128232948675501250559748270891258335770896833172365816532525740563528162264981406811525993710794789788105538616386111862394439472623103031328429555493899367096501586565869472323076599432061718755451220777912538179452952602549339384086328980799254262612841254508581925505389612195060768380988853987417124535033202410655742363634281801551389932780306380825105519067688031243749865612833914281510188922306728425103057582864402905746756885828207365095700756324963557773693667230594023046796958736206531314528481864123572341218647356274120064835177321865638803180576300135430913259827052465324975497633037247100319899087642669362834740915970952854538468812830517956485921359417491074665996664618308592867839334581816614980783037512159955506399073612964599501809759487150067745203940504433684700222097980340900325546299641324270173761973555473832713268609572906801209133269700184883215482878096461111871457570341588191536180869021043272142571327797053592287439782429160106087404790838360040138918628689922944524271547601029021842470058386031288404044576842511676606072970766052238542862397995293316819669045913137108703011274111913829812792259148356883683219723543122141086929377465326516290755881295756513050073817686869575104292719092027709945012599264678761062979363256001451164073415972805470740027314192224699194676465884767251367862939980735118546083843628188642877896846388691033885504533487681022757777871848529549974522251281408189463347049630789654000118951408688966695900420053854794162389904390698666398510564847292454434565749732174654185045746507558211423438297799898149626718525633965884001436854283779218635929373004614751391446833773070502569256867772576912359698396844624116127779539528679015934375005813803566622763931820466085330836458693859168505746957297017222768158193435138211895747398944886761349517475660974199060210030922875455093743136605043821869583622488193438161855652478564826003339614669084385089655334189631603145070726487749159699158292053769707449311301812922578295904367267909428361242931931653704398045210045049256476710335887555217769865149872920884241280004834995880683426635581298151707789427012089589151931923440564564118640106847553963140129379167427596332252299547504714132016636440970181488850350565117732389444550274391402707448264303448381438133839262853932402586904851424524636871389238179922453669481990351863987927253159445108422074648770787196764890829370836373548692824486936704680123153941846363645556768593363695125157448852773892977763984584824238309549232981856568111204044065069832980795304169393646580397965183357073852884948472468207306646865247483699238074825870086688405837512379036569576818713867173167332615655244083666245020840462638324999616840850960021265939779673172683687475506056503777206862609345306115136774168780177422598030333046669092445532353739949660925182340066544735125113496320252493990129790676838985498546505408738250470197589612416120339951355461947078804323947417696166428180171193645835084396662866773879989218029782043517594133680384902631741990909712742632419502218173764222851430294360118756886274639069816438240024607414139930246124657243070255705317075208569943647579926623903320213535081279386498391332069259206007294707126817162708385769063831511519730780588831520653123823903010787408521904392375740756177770114216348770011885960623935374845680728647489920626997152937735289202354341464860637738097724209241351680590670591141227263395835690201456649253944317700453224123510409297427736566068375923297773474138819133608032307938940970434583845252474728602664209467282141173764783254096498894044810343262392488372543883526147240299766457369616316057287662214055377470544975466204002512979923344388953695565601421246652334648920960832076973896999205569242837385936613514672024262531290166826639398809625252818613360928352942623078710611136039694832864445244734521438702173966964622237138786881463719036489048585582409113060081324692892474484446093807525446736291811205851991500387237831021830572170704926682005812608148956554097155319159504465804500868233549647068645796351855462273049035698250428009749253668472097737965129618228323937496338517907469212180175935195858342800902540555222709677354061923411940344448412653199757702919028928037314053222088178195654671024281508311435982319517136673121428335667451222338756463290073242301854420699117743034111814342622020529557203618574404461604315296259361876680496634164028926666239700677282884919170086681844086951793461622917000127462462991426029695767691964152950479382986200227199681229078970123379370990076968279875658114281612115061755822722253573040323359719419274724234818590315324950583075472646757393015517571972563227384952893566446766588726659442930113613504236102875946516108392264547288581505850158939432653376042682667331642027022385624303938437693525893909055811043855744154900114352498586156449374309932418902609401714964001133429056502449281619183679885037661845788975823886043239307390427230965159018267563998894915554501182191788812843370492417274614344432109330078716392065250070204564352701685338131398080227530114300244423569347432537689665580583736265180439330723094190496051962764794096747755318663252957476116803636211653623578331518530715666964923308535199780666013374327313310105876327421275564934582306995404765428220746834174483309788509688351659409454553048136223850125572258163461354681638055840511408226088611105235830287100512231176799928462892504488053737367084268602151176965856145265944442782577343683091247254822851087039040618046056240805312236288742026900583817681371739790949174466621227724890855571595899665450182890569130565556753481641968896593994395749993694895599785854051965135769455131277385872924751093849827403744847449756378171581780612524596182160861087237021291705956315457235721816949981197275940295892573249231469321367684037988771546213869517534063107879072977181521536722174386071690446712956997046067591905327018673671340254454450992808396888277487107486456399332114036214525318331500764795135340641901979955594949628288181932435174483445296119275431138461029671771305908670523385057981410515892084272694294750514240059808909137869576015266964841495678017587909907737918592642499575411560154673352763993099179262102811115553317002315082818638556415072775491671685707522930714534164818993003430648363428022432486044529155161931067782013306654044471101557948824635636713092259784855880412969822113010264933852779010261609765998356796596145956280672238651753775328566532632197379652672526709838354834819170973007818573376128959309927459413258340191711069582174869917742030477311801818896622255200642369146906038399258230179645664036871204364088616910218029103715033944568499350821421102517252923696109698048733396471608418457859742140852068566988312794575389500976874421976695737188052454802593098721528318133685308497136506884213471279849430922995951375875303862378944178298584369242421816221594374231708526653109349736034763911247718881541069885660602140517825638654296660592913458877455817545321338131575514211490905443838892460093593512968946982694358734852339401994025751617089717662097352942021295771829193116672756265352994257477625752858754660752776300762428800296819673715369599219995538130863464508842268764636224809389264158134132887086162414182499337583146121563138101089476272878897734031698298018282152072981105449569041170067809770474475655898200130800117526137888827812213382636777135172986763697167943966520118991373807354150612627753028244099639206156717705729369850701464090206978901848703944720971315627174149043352219761765199490149464523843668428155931471997077478108614116829986869848293656052542682298006884430239100129611928766235897599670186903786246636416054775391831311955705041456944854995596600003133790717035174788042077229097694711818292742718408403515562202045054416376009584833122376820197304458843493042997788131731981371686196021022364117244658564378416548041765139342043694642409072098324275541137871535812543882521067171665937635666844633756410986098848653056832224722293430705325267875687791142152134404644913747837800805845819629680915953552650483458972596768023504362085330373587635167186779158919181904198153173938145516332709814836525942832469001088763353992041087434573226173876013961315301677537155034098473718831729791952108773345791215884618102012409687279782995649444939586506652342117363638400013535264148496769285077241549296578060716114752538531090870728366936634381465370397677482712041960859189023833554294861865773025646101781098134401843494369182929611400398672816641322271404112073238222336342784047974331433445318803528385592084247041251872890852783461616082976117033103646324671702158916405903966859999288742749263150126842566923351133178178992784969299665536480212689316221458880707344983480177328871866305707337351619597447097286218225692164550299937213725761847257475998298907075337104245246993407287556864096123901078926981020560728776349264699758116641010816937001365361127278766295793435893036872532774524031063802458842763497352765453790742425414135128024399859124124040508114383148753360561731856172644625640674731147273331828616488786793444222092816055518490419857928754686803810164157392870381983460139039169689489794673367206905075322488258556824596580786904387135885976610934827114000933294190620525100699102527780595568819990109753517092827942058088159695395131419051178454345335409004082842553722191940225853105690563452120596884119908291038290766334912945205083843014054096893436677938631034580361052023063092348060729426066094370656669814575753751853184558640077742473964758189455296726205466693696483934218804454230454991056900142802623393435580593816142877528140134069158675175404264365157530298346260087740764019452198611756625090687156396235811585323805403854452849742055581493476507453965813837372004561303767397775302091391021838574895342684885172867181700271669063517412653661069125450624842073790943160052751269986324517553057105266237862866890119079841752743695886054309937137525171799936641737659040719317833605152401891494882211518362715872463282283170522064317802201685723944630358314945633379878576244871661920878742268501023386586404110380154704051503465057741861716971305007544499168043293332831736862873133146803711987203264998335533509611212537122947054056379008194501941695874640220991156312971732926929212400624350044058891878997283277510052700166757717835681431037227505184606895714908682092854643199008576968345668402762105095885948927272729775736547128985966951926738527654205438807611246052869555434172354298195569031992249072421220023761063948987894326099206753603203672034838637145672520159194480996709773606285185831121501440421992565239090526651438424586657685249480528191469282380670430897336234537992194191483636805890661686131502748139100111044082984257874774701768999972897786541072597363932391922168393029733208041274666647639148255935902328289175557949591208967758125765369931250784617886232812756423101591983536634927324634324069121847952151853316451662164217970790313088383519734441937916116429432406000705058601708422653188730469731374569675055358813506794023170009399307501675326072757228090420617449333063410490677173834706766203759340170590300595365136046877481870992428523457222915661544941660870614626008918174510398727701656154993644017289257386852185168243590548683685522450390474487954299037977767770342100786600479045659224580051651240399294155802073639106467530214984381463662335194154454663299280107643686947751943565986506192613030678147226005199232594109441840830573901083813818003412526290147899808543418493420483974656064754579332318705540932988990565215144423229942156153065413342728744283991048701101102352615933104343619975017156135315834302506581158437946138843851266750213001063712689315157007571406589199407699495425490641307845145698160510972949974812390610410962915523631385387125299782679815595536881976185755567787892369573536312465435375474334900288287325261171009058648353874792925400322583692022195696454714564959195615578795594635801884067071985925271183712493115614794237408856674692992277594328115410443982589461452309380941376135501626687564198598716732580005229607142894634220496100412078545547637117202335065852213382752545184087531142522951935825976721533823213960047040482211492282168982449929394811511137356461783331477477393778843282623381620366467429250690823547109324146564764543665499124112471790914375994304976343324922672568367152080566627872817066168520738049822665581161941881036014585028352439566366745185464304399439550574379756754119349265057413471500649232247567513991868376111629882680086143987945347221605276573212548918742201061189994384327368185212831401165987300937247351802681446066723496430199252422875063359119881166114071943639900345533556049760137928068023460884971135667605103907388049638768954427506506666239972665617888277492511362344366302145730305922524678108406077959785621121989730674088161635845161349034756059953917666781001047652492265783524890712009941022744493468674813102554513367585901183124093168474367298515557436971572789111020393917127319290782071367488744534432248399897459717992880123151007584534065966504795881848524476985313001198711014210049548996042710874599664085936979815122459041270390780447115232548895351723683098497916245704140055919787311911434384341217900013522134461005155751531285154339860433824952241287635365595130756076742814814501756744933746628381745052531709908993960235332137703585614362790021865263198949682615592458295491006485693919858326181150571592746840145541849220627331937451490917987697666398143115240857728277903859767980037227129118843183282152542809223366978540369255958356589851426564405000498045676950193532163655671141308674639212845132052362894428100114405066877534703403503245640358819254673120937978819461612334678339230906261365462727159814499883597408658940116889883285314286367920936105015361504836624250900220378287904242814758176333613767661136634759980658008143406768064833155647341185008794443167915331387708059163365392526129625026388657375045080045557464071769118224259475022440449195808966238119759244437412662320870565466358966766838382761709612390758278451444724624515833761471850072184019006683843874397184307712127512177815731161724118943550697589514710811579726942157845822377859448633972287670870352935330231396045757141170424673792758387783066396724389387557261286899938211248791142836282309446827116596456975175081568375652705622102610348112225136519616498299023420468581694140543641960664030624214130582079371630958938492871355651091402198918947111645550850715456310731479970561669594422272636119674081476694563211844810148347780010373648564202282629428530248107615630535252232528261478477684880957102946776057178557424359535882364723123250609803267862473179745851958372158601812026747335478994918071483867609998685947901369974577350797997737877657064257603267740896091084347576336178104228764751533684045599822049627204355180769254302204557966792133496801026270184401727141842430331705038718329376373326489230910429406404643813594810186620424108104325814949650465715819069353358798634546790380941433677921148121614577378923020328401044333554058208216004289669943408841481335758765756934667257778197122950031716178977455618032691425694400127354178512139798874914900467310436867133310945306113362832558993819021540639507720684311114015700613373519121253428680208089091434552889301989312404239581565935264733344206470429084428773916187341062325176036422991938270069522319691920415993945408267330132598927926391997243399050488167597577127825520475891982546233806485454589331923722133242467058367092791270303624465781950288585612633067474572861195454396101574041023900326601795915554999833151366181842152273847941546810601792451983460094941641347281312346093507351332645676022268340412390549832123082379838689334016383872059824525150447535387812222516525915684753521596988051437291119826249090405181693964089251915125258049875517183910813323687212582262514156299326556861141836576468891202505633960319076303526530743687104954230865781287977662401758153658828006740531050041480391612991798024747367791641930826441075339584412430320543087755751491416497665664330583817911354262657636869490542619292023844163465925598606456812169895036381555217803544121126828376009278915838301949748625687374788338252004080408913741355277417351310288010896114755312137786140823526366524112718488356045150626368445540958820248096670562546415248416378786035086791866904896056624750693637222146821797627452139435319919151214186545034426868619667689180014862216041617867842328881907441332889414345883276006311319952421433302177594616327409842141973672699677848845213127637494187527190420767563027637647178241931803641727806153579550214972822232679285823085115816818138960578874908139413201691936677609554250947157147971563540616889152224834068235137351955171392481718747899088705590581566905655095501989765380678115811374086937939492274636680455528326511035115983791086723265359709987542584878199186029252005863188610584947956168126870902614110480495196870244147091331982872234642872986478384904206129126177339605617598764937096818026375068842383977459430314063350771028390122958139336873937134568648854601258183127464728809627439814551224543029126940710388999565385845588121810464437656968484101961142326087542595475911244455757789986144043481913099520187527916434202144941306310020882525984736159930272218879568901398396600706197515410167116276094723239609551215741405404315349478781491200359680716076493975033950497281727492576381665591850122682833779651956322910430098604279666732538640653381795313432844882810879143883020554944803821599282240362914429115030536832093028157236740240741778816860450911238550244806912062883214311821752703162578044568340429877427341133128593446207761848591554101911011346078409268158590214771880721926616523235532349213237824097859960755388956455381435125812682440365195685501129883823765533401713441893980134595703116376837224793465360923612020179879599409130320845509220350529208492050896889164643279097481998114496254362604293889886468497708740158671930189865259223584730144779795160390490922363509290133771264862361293428334247881744882224947083583306271310388040249243094127726778859488992432378374844054218007641400910551730306216303979869272892969956934866966062030007859120424478710939065533936193831864852045809802698322356120594051201162048234812935662405435439393788380646430953382468527789879230757509541312631818156517404335618576752363974148515316946774715145093684844304575675128106547091892133644091772678593893121165314925292411917463066965851570623444095553472637337088495313559249142785969404882017528184908389008192526033038327980294111484768376654597290943347245240851893633117616736564535094857260186644482759375860987713246279834243193623283719409933823888379418068121820140574583890830939483073932015685830320811911927790805416923325378355098103630250121012010114647388141339360528587818165991027536935139571411146499385001283309679531713063753107509911453719549208951322393064210990883556572160822639971394500932788003174939648776136053895350482354787640905615656895794156872488741206123711163929467501578309557043030395488227584096095319901524059267666581619726581681120644374204861660864927830808945420840756315893598085278590855900671665311188970391739989340376758220060616318991854263379340495395483990969294486854024265324865768367173655453874043047156174451179574958012017924134450886510320473120061250835773348189498734097703461897349378812920922463011317391806403050366573645121323197852742336301322282846460266298148788080015394808763703815318687369395250435093573747521546427689322016601019184698158686609100573170855225181326415795620147958366932231983208039298330573984481785705130643695217959107550858608389967474576076627213768109729068315091747986619790156608935036743787433141280051477526958665286588090645112753429966857512547477403844879460133057258144171151934576023661308734784261317621717077453668510481954361565289896202571904087142257518316844781289257862349312936186418242617812830448012686010674127455850447948226024290965925714876477098413773014127368432682519181161793707595445219912629558387979840798983116642292323380868043535459115277597152929500962503009353796302679462333544196286089857285070913574058641646483942731785926084340934882266503552384991792342094537899391148650377100175715378005709945200365598719295807593118545708181553332098527816124335863489590971285796356916918653087487447625017112357541001034349209579174254109506596425955687720728927612811040932108945841021071428786722272191037494542248337460393675528881236300156135124807658316115766094948014804067742612996916022960158467212828080696441335676939434704684881537703665892171341453130581946300793495840164174987279792804177437032430922654275131901243647548271950769400266293944395685050464482433162835546874752126546763520519596754128800409950914016958294802278085366511458611196325246811052854484432374080545265951261445288238435654501841279686056032665559395110410790280317672270992969579577985516578944765395421700539643950354979578634830187447995920761989470122659386412724925795989739154127998247049756658336965725274379974065592824872936388102708576661474592476960705711550073536652680145923564143760454720570681091412297676507223125161408923597705082421341293949516486496571998883304913758024707331114015754503492027768151324974011776407480501435865597295756800435640944909301682926348684059855662399352297065071906788897437855431901925394248511463144169392981727359227992267887668901861032461376984587572707093929702959757899045562796134395936217645541613022772137305776880466816749935402960093735696592203840064988649828371428388200847315788930169148769022407155903596274373954165577300782593231273918303494037071317746627084768688021985112764395361416825714319033020022082589296164289140923651827198805770677912186774985425330560638016532991945394359369062169685827154278118815665420643936895683189860988999292597954681082471217346885405607187582434108984174707264541459809441526192826763236003148686012234464265657740703423642756018203403499867928719411526475359289795549293913749087978531535590391435034211563298085987137974127042329800606202066764961357154362198482274837000352336576888898795804290215019146544410419905726150196317263761050431218681697942059043362124739689417034187005049089271417732790795410808880595717121696363919926807874489301108765767309749754638605865576218940640860100639710132206793117718241393948831448919134750691064374253495903280529694429079178281284666828309396021551730902946066745616701438442583623614151852234158832801917108911868218619234125693143300604466117719918809185587665011730853385696693102197039847223243317859539103675012081071696415150625665836346790394478911078245677305029526190555240891556098391518999581465892266654920423341972979869665417383673890303722081809153280760594936915444925900849671536862004332857665945713822801752444689399880702440729332255428369496820211894951948025469317610934990542033979628644655710138482775551035485203341383442287494324852256290180030227521346392579195852609631758429098220462956312131714975203219269659513475517084707612914486782686922295769193606794843740904983347382178941912102004252920626538708859769019898781530536732437793294060588960722690196632894312374885217095949998249643798624183318129781169548517480899960742650116739300488799370721357227723342788824124676068820007105042933446178682531359193449016477578709643347471790152120991507398126260443468842518755721816418939781700786533214056027463986620731262035823510945723453265537098236310027848045131210295345616196805497231546935544815107776154017232106615605947054791248677156823714531491767121375768681338045833467459800518693767542042520806800177250233888607449391106423868745394400986456385197295320671398451682955807972146702644975268499615022043357034826798899387144803361622041223887295203112296814344459737806375923209633900099937835871360575355440482975034908745180508087135877968095878681104040924173574676281545887384697535536575972291789864806721838397410426049101366381865688378971554053447218057718375785292630875487890103934528314420433606120046064737042434442368600480705665751418916808197683362384700363045387653787585277381615834412231034066898122714826176771813467302921989702622758494235789295128966716171243596800295475196883223189809309511924198988080455316318061070511053953696507463303639841671233717528015522851257838209012598864104172233363417508394902936478273975537062154436324720080955163299948449254395172793322175776659162482003915245163494123537381515187942149013688424910193111905437380738635769024198467431548063574627248241691690903567655492129657420290176714119793974634659092856639623009471907796213865561622369506905704931167766757825838078300579912037608952007883212412155743007317824671065463735201199361210506109443874505248497613796837721991763911179747711423936766375701607272954936482830002138363511952205498983834255018004829850160582513515234851889558731641171870575859292515477120126659233182083331578779562283926161005630160043504247001343592738132301138146006141605757339679051670517162441308941280951266181592027105079145367520818429540819362469028613940984635138366813406905650514585941499869543620309330298152617320772483843177175388146742378359022328347205376226387379310016838416508669539445340109707109998013070315304213889035640398803281363574554065122622664812425191064115404079658282659686422719542360415882548906514093868397457831162682843215172572764930944194696184954614924181662115216738481704112678378624631251303898195164431211024095099978525329500673334160316811714146525019010084166766863676633369363362610580303622724264497578730983547324365961646586994735489837242305645039982476434983041100808122752151098560530955193972828692836329585023231983435489007449143585082047524718208935529931210672201952613190650927108091336313548133398357547271984296768191320266852260557475563401006120723402094892511014601890020814526121236983213856519677650627426595614402929552510063416441239480922658320192729383828519145970802357141163237636313203097591049775702337372317168264115676521661683170792923816871739030994098591394079644105411390121936629428019470112995398488031361504809904563470367726062272394373804419454793842527140512631492367292846640695185740930017827717216350919407746727741019250186372251965658281153003843093618684512121613345533463164587059896782859706288213392289685167123335345588263259363575251024101240441595070409800107076361479875694356669839883704960145496868289578464419558071021611326424947281492242232121511378508843739353650712764978071577579399960257664388362477443224537567273286516309292845862421329797301167749579287703817290652592301093264761357989035623912704593114908164475387926568406415099951068446361367691455098386675207230952331728403242851372246789684962773990697385987328116829568261574965492848984664664366490703086867972476987764653397018802225970041453490494987601938580594985000309805214655180965392873776811707067051303538090602946432015708586107851487882907861387186158148025460347182984456679786720151214861649654817635142590886694645378905735294201951840442908003866285682688613475218500951795538160716310923624938476551531143716884298087060839618847313253929914074977103600214100615840011903567669473450578136342463047412437052539795740240445671135377324760047492025441183032220162215187801940719500422341686257018712660216401293738458110498479696997849243592426310486936847019760852752240785185020562435947870954022184353710779110746000011240846705042386383593287153869833387909051645410394152297249979282944527763597085266109814906056266482229614464755631416478252997219585547508156720494116276169814879429779642648615043201902092424963465294202880149823851525407099985069077363004670898050951090537075148139807800488414465169295563193928898262141134252569886668151438269133041244912782211847867917464065398388425004819247031437244191464497097461982790943383462920192242967161375112314811143700905000596072892436821009040071128432047660692117887887412596129817410423226665708621175658053353278053233702555069964078604181816082281363415197073171404144031549345317919414310490778135668604577253835666639667264695585735178188781245973954754415975073328260951627992496968618472252509822762653760173126320311109703021106868398155755020795518879888958429348188955681239282483281223234322957813852009557240992537410937043152983045059225208107177367990159764496838805849933957907067950147800050875325308175165713351220822431621730958645325002503338902237132201813291441807091549254456020362497639653366335793485314182919363275449167333957258046051163785918923557517124004804439723112797982390772563096814534986273539081083973934495651870065225849966720382668370930348005482232936409516918579311651462477078469598736739134444705381779070243296612710240937150673891434992319649906385382838989943363373370342729758030359260365433294151333610878116582188232088745353592738897205574018109778471480204665873947241427162514484574634376924611677233091121020680601837981078432443342636864318281552308561937588270053459186378233900951165664206275068148400951202543142491099073324709982682832890092877374375688664554765860426251997724706220579763870394939255772138664019460974170882133697107747832581434065256952507531972441691076931475705004414429248911557148509548956496462070473340141488400529402141083283355243772406027340073298663539066682393744356499125996756999679257217740745537775098850738751887400587657072404906480221558446107010215735052399883580476506604505764667663606105009433920612970684726078499196907273414093421417120322835905167168394260789282258693086394438844044311498713449595953308385493396425883947573268499693902571908074287207174349929547327280656680194658530862663882021646522613132409820455988719820092712340575651942661598043469636731859860314696873568608082268210895296517183609733189730776341458219043489818145822189960184437270121899121256739409282877759298130462394737317404604145879329749181243088855212886159012452934512727919764966892743983893000076654570950368351111158265074558265322188573816832512535379173182136196781278014149556494438242740655768611589417248318769684987090538686367289229063720908666645884671260660754192404583421818745173690964979261757072576298832422264705000951548117694760129652784629289029490386688282158172293815379817491096247489885923334909950968353294172035972792927608593213871171720832380120367316975377467492543116772072043294527939354608728936716016552629148212931093514120651985413585019251462390186579102695862782875748360932582277307486318342959618756677642511965032866413889146589784358524601618333828282858862820334001927821146954505395538410921209622837181237220755363378863799987415719285673066351426167118753127974174730792542334264404092218199738171410527587056788384448417815975169674187302787924004580121798438323209106443150992645061855498909553769486283646530930112342446001346256886870162093396203435703531099603969999881257856673782053549029047219024141832124471553279765828633250724398994438264055133527264297939768537788677345945205396063493087619095910045016325903690593863292858285919383754668554302415625644848452539706561951728542175312461451139073006520765313364960463660267908487494882282442414191706696119511627171849437726279941071204327585488032805799370047058418763827537709124275187037297939655316127152782060222726545641983832340517557141643178318610539383209352088737289426058498767279902389950157397858973031958444595214893196178360280727802053167513312641439338123845095309982701602080214694334752230816779673439311081448433997178099784468775172201657673188085392240235401368707007245465377339027282814488633982095110152450734580583167587622415506813669487242710618621950794722706498303478858904454008699061082586452700839320995571125268995922704209259634182498370801787555358483203454559496696672894767293771827395587828544036434752546016730364421949899908908937577407813095837184768375806058040380511587415779073262079404632375727093846169087138737293869346820849497860582485141379585206852838275396885110728979272840587368802032515737599326522672240943172328015534211021699835600005666119434467995421232029250935815268606077419779330194816336725069160552801261871266168610777992265291563059882793774016629106934501694498828561442056777974839609043531411529400849851118879931742952652851662230117022820474670114697783610061070954792728956620550530499895061304322762435390670509152789368238863093448654738949881651998692272329905623067251045074545939575551806243216949019811512833214440103064199786019105601005056068167460107777289519983057391342124631630481677720662466846221657024183990200914678976929742026691941906476411662719149354635892676963035997684794452308633416862034307933678468663319503716444949098476499294482156124285363793089209541379978615738662640534460555614266780831057154185624684558339950036064799539166723906199615895038827023102657130474010282664489158809289156387466854959739741656065608180019588025279661308348035223214166486014241950675902371255875882629494645344422737645182175769517083990087896324627133575986518859544379944599983729036896412290149559011087193322272835577185109864490183626204964634039192320563072185389741163114502185610039278408817726836261228800578608855334891081481255918279758819243514137595894540705216467577917941727720785162715949174239659190569550789103528144112677589770977240508998981574554255639312331680378530444205987302884290794492938231271680484622270500222896948136047298205857892192393575847857107570243900489077866595648257564519952949709074831806053693431005461082917936105616506416841812170164245487279142148909440550203243232076312111489576516115801735127428692159928535148896475818042248300183563691852761066507071897869166578753201617477523406733155359582081148542963376346457453975159205225891903508674409576613321192146680437218336961716883252603695565432382479646940760004383158329262171896187247887463688416970379346961589615238195025228895889049805266419259491493796140349939352218284332147019706594334646575958130710233097457673127585679319308887025738913928098705989816911470134556448122773213403987650826303375917619788119279912779976309616270655372155182077913624329308977698923789367612234802503801029399435495863988154842207156117123970357018308647181463757559986550438163685635162534849552811839411873996972682786649500602077057113517723509975024454081968752441907421854399476862399629687849626107044617647370272610730229852055419764117826335711866390572801257575451766298298353914392583966467735682824554580461856765109759454548100839772605789250485579566204002650895538551697703258265174236281607177933982374895614696508137146682200314916104242175795057753632646715054169579492566915094669857463101928983892443669236465396549135103703879932857238345251022463333775198765981732266239703347482091144746141172321588264649097291057383878541715755178627279469702169593033454935440447143761369227430445489206024202783581880557658619662062059041413233363418596135433601416419889405007501106223981330996330400187907953636640141208474864868751212082907321924521766087608396558563843069575850406744028502993239701956470926159555765071020448097033717206673770561028305712764795104458084137560377427544958653822313590435326312365001509921400731248707961669098499686715313140631200934896129418628696918697254761145147723227080224267704587808126314091211169713758090993165344053605281323597271796197730801286640752827809099561099990253260745170635176197502163452255500080361624199093676198732740276354786073019120222668920562596085664014352412501627555243568236560092256528739881826697743880814114557379592768845373935089341567090266193550746206278458025199370781084967812054002228203344129848468452463711719917932780663011648313426083086288622080452838201666010820135040407932745800103346628174885783967023759478645687934961295821846418499953417450953353626984038816837935968885043258149263900168847524473725242277125138047907426457387881406500867139764180307793651730905869170331835059690452095138856571977177850168036112175641975956488663590883046742300951575796521434184834371746847581639356163506875664782031076150595840015556316686345892934684539431378616226267174772901295611441902992670625490273646872576801432765550893558126413323527636057358113304121550614903448823235777012778354256585936998987964892419897745947258145384397222339017534481266164079574894691169707413708096891432260608783877213890637056356004458257611276666896004850149633767922460189853804059067264098277597414203460318795862165217214639622443088120048955053176065544692300481083031672014808008210272842529317757195465708276830670732260763243952149496429917999471900302590456157750287554393006538371804773491232589324252961432122814687595086679223144644294518762049216394139512375861649390869456362219221453535737158580797772408635288170761274277912945127413584931498883855364211276107998064901685530670816270882361387860450896128608678430777340578995006106987340379638321279838674767842736598376823509349131601900686398319235795842457370864747348933749643079127816071870108142231427289880715642627254013891143194742783627615015662579865953559198676901028922064804913023542678423140294642999270822486082524469338050603918680167809868693172352534283044592821485076650350664237614051355264691366084633460625010739911687731091637715922588228276771554451586451624891273774299877073345937708564489869256005899089805895711361496587794022781279082516991775384715206108724040090442145514979997190553711249906530546597114961627695168938403242390743146198076358245502714612157221705864231533494442030684561435818094398476325897785523370080475768415382518649746231471208311138048829096532835027712462295223495231560212510594505156192284669087529996837406310706681927951921150497658798729546932512154606826467528326730614080711153275917903805954039760496917216171958103996341165502587854766461445108424740671723869670205415454725317820368201940763211418879551178427202681673572928478811162325291125894263426239993039901984208123020289348477550472195218754997850915796922350279419743452113466928174372446403203943030190846508538537647717504470466883067529403552722644240702799425480970681544966718358379232093946777465412622513784299611258410527512568401295837820078493052059615125541302654363057402794978417429203346810980672841710534126301878452871884433788886105222556294739026164277798690928257111425819914487649749076959758476796053695524155808932327025287910368595762858697048478310015711930853618893561964691883960088953905452998817038201863768166568358595846585389046829272307215106480409225374589459704397341356696086006697857816246830699364217701244294588137570244298811211480975372948870795296303239664170173810458414080253587063057195123696991227167184419639584901557347590830777068331885607515476625729970782304866552093735076184554398054425499818098305024264413212252207840762918907945190674874070701263034504143206200792372289257960640037720695581348655419664392456261654412164221549461233775679464380842473209246604300485666600200143827170255162701299954739219060295010619238446906428427336980121220433182060498636771413468064439906024370181276215357839980296778249748530663252618554118668726727644872183477435076599617078952178800227415620204375293063267218564672892604292930639196675660349616516855022752960659464799266335732283208054102612016875320432146179700438674833228260680197432951000180853471728674477524762564585148437095665600932199602129634543154424995609247331079835649305944978059517046954934513546768178486860559847863351794832705685409012727611092676175639776218897867260426663946186184352327833686115139803820175474551435241604084896378782206228675372467095286384864298230233847908825913639911343066192068233863932996572282630098156976460515028130734617964880109799729192503496856990417915421270050964621692598824616205906904968239380331008076364698478016738828814452915683452391897063201061269502113816512678218867367634901316354539957912307571701353672163980083585114645167949708254552170161793357227323930541462655140409711599094511641931599402672877126880115748974822049254008362913223255708170183300222115700232745870870878665571110948407081915251404717588975597511279197367700204303864738352072462844519273270617646529901364232293437086093959723734881182350285005297573672505087022419618661044786340233876281791858619148042475927518350543664948352472760074485763192732909924834125687042954933736900201986602300746548686388867593873938841181292244599467587700320659780821908790281936680480820983193125917052428412503144743804787538062112376426744089785020864754856188266701420718913539213808600667811780683756583031150149263143056980140283272669081113868218106036754757167425999782912800032954347661953836796312304814944799501670864319676478070189921382402655131605559239277056833052183455984468496332024448228040176049580112007571907233098630246506112821284585812162612361286400074447738717394865355859884146971033962108830170919259482751979075843869660951006358096879229575982510993476378101628114772749665017339912990086595577897246779325477830316426941422968571252683051110126932782378015734874624856372276230410089737098106272026557832071102181318171284755401418216155832615679702505400514953797738862868540805996269999440008703586357791589029683473847037183466908453511051344766487265963026746011142657259754623003113161000250706127445867627706105285570191011467265667716641583228586394950039432405828804480567513106935359572967560246500204205089425098688412464301347671948995334067152005530684221897125847489189955024079351020824699444627431027444401151994068283735950971421634453596385049846750267239295110868960028257226352239700759229820600527075443000907273177261842144410311790268988663029378878054495501463367799094284302740944822321027999250685651994125808007190599971131242085925643097751195032632884775793732798205488372199073349891392137218672647221483397990349251936490634748132654400665556678393069956812118179758250068898661488505792595340606328174290361766568159910372170129557173163825931531459751263670670561346672802684450286442717543536484635276688003634570429640754889218578852232278256009911164217159042835501814551025448600429462050282948756150904331799870397616014922599370985291514381652237067393089486361943444633843648434267003865563654487638158028643687748511328273614089981678410508288791591333077487360080151255577635032534334931173669161554841778495931039190355810789830086858207102014805401160633525901752389707288380134067392118165408318906987761191718686463764240977955840394939885760820863726244818079482449574430622864519273628675996878954052201003550369666513943793844899526688840437506317808668094461937186786240709600651431355387907570149245583184172264926732372720488305283721213634492910291027135555850419487830664722212760339228265588091524533162426425426020357552913632156687638308846516362302841670361877784246832731923486001897390351802911201972910070842387206296628489514178123040496445785725923552664234806896076872075758153297911279051167916884761185147998986457515465562959674160008532313757370929417836075967126895792690666582487471728773783728665168596157969571863253684213094739436527558092344629258894450863239291844170045427323637324790025820419775729327113124135409768086298874641862034162031869619738471979776033871721664654016394840335882624124396247961901615977938157488701985017437235196701789279720315821644338423639936403459438177483662347238840275189753785154916684445926885586496398401982655878746298697470015982054268023203814979863658586413146251577646891958735631077991396474555791161313942360659079921514453211066854746553371028310111203714772563215298970897949131305387822586761187087037212491945604313726498117656374437683274730113217856780840708611887041044431528002286968049537536029452306840866692997810334703291406953957390774475148833417309903944336182062770257045997365400855762741645724125289510393770609251144954413229968635109674433176628687899631474688617398494697053901448272230717051785707278409400360405529877730722246049083367745117686192274709527862441612964381310250316758767366068633346489470053529259727381487498103307286704151443001897573395010986207567789578783567851471724330707054381306735687648866475398523964428626725772997861585879000124207857423734261762675714082614778921424741364920558581857128263505311587129421064979088398155784437306054042588000014257910374829443781057130673997661342205086644698037313620233598766705643855909096122636354386745489543615366013466555452037952235394326224410402064871002394211377531422742777221048107418299310965813985174989735512874334482897978291367573394248953837420579040368406326684870751661591293548267728631986384157936359308610137001637167596139029874858757797855388302470101703827034046141953419447373690055646873375296323056833433635738967838688240984354182147977231492624398341719208193470202864532240234467360224625089456702026083024363057575374463024534554335779472862677842821476951306124526534815501844145662081969332447818350470342455903687533708095096708241796048464106395136831058643549972223059964401919635814769627639905260011744699608271896163643436758980737290457235887537600320368827802866178469558125945677652365637307354387866258945240344038796140676827079066880542965119844772920597082590084879422718853820072374311761836392471948065932348772113978932443229389327365044770361186222692514127200782814901232685244246658015982518498874597645513314907396617993408652487275999943157372448620361430328158248648171121066776274150318443570909431946062679475083080201352073597425396261259612354366298323367181429633290336222986989545838600579940616908804526063332000692680080987353248220448152755385193444687135638808821792249974392059140852952401407674368590380926828395364045107599182013039740466836564628064778171150415531476419750195204281907813993707832660940763059285776159839356140667649762751312448979225730503057108132482135247449065578551509655025664361046725137390086144730188359829788695473564946186818388635426312122669817684963981328187502632705748708815824966866164994757745825649587696084699830440101188520526836864308095829178760825293240269882489706335309602053318796578852273408606296045164844073079741611204304545236246593837162846737161811872498598010224085951125973652972722074403066701969988841069897500938977765288653673324228490415235567716292916978107406234250152571837888097831617764210977695297525657647980259926799658972773421577703037547777338751985325420615757756897034885442517363938488235326947664982501806393497543721370875800349152284470067569673004404782191735365041360864480701964207113503408331214665888185410029062856856625202096665210144604632688056350919115757388197460291950046502322922234396890179486020205133842057778739353714523397599085256948239227671357131658423401065672624797351392609643407109862275157111019187115115904802097164958210127755990573326000999847669693166739703606800359131190915710653818944033816310074945538840577898470322814981955168307504640401670867623820790632706953157136543770333246309950946404091093410615222196006524180511713440525818782297400961332759424358063225435470761262789829020094907315800517429670897075967522759622240287397033653656771934309594597995377178404795163451629761758568888475247153920359382220975002009291877985163991597095834922060515502899426674513358081359929823239220431973146410980767729411735038834167102172218451120600091854110176689710062410163058136393218823896623833174299593499659054899169620343545836183831124279041224907976329845964522548372137227329067570809316231168771859252128005843628651099731386261657484569480433501671928096845696058506206429136965635763286603453957142429281461814095930039046544039738562318298537443392064438644842499864740909579710910498815328695734947162979017061057962808193970435336936010222190230010250381934098914218247927859922335946457409599884887856185561826240702806757230137896670523137849592696028844646442262825147799329365161395881014456802058636571555815892641063600179371058344199977086838228935582822546154275429646252178811629291482964035371737775311974079248125050644127422171496378315384633850081041264174136999125486728506627699740401462756437836075057571073079800602423114391485096082622831760587939641246014430637763062815079928175275632938964047927538871607275471911214741470188565804244408088992721686287680953117514698770538166123627865270921620309661662891749616547265300603148332331872800840614058779083088396606931919896811020986072969187934736964897510744214937760913519107549090936029699232994756279464646240474764295554972960138566676627195801931728407566259313963311998732944453281772439420287299059780390306258407477861481698149244901742287274553718141412818041070671697141570361818419433117809590200902197651662022895175115334685709110197133695562749181000686922808027789971326973265189836480535314203091021967807907330503038779029571662729151908395471435528383591517918428436678646631527228011159105359290356964633341287555072454771223361468498917521703632440456308614360640569926900731328017810285059360188957423274783346279470696473789225213866212438353404159290759808800344592625555963138878805301204421841404340941735420219791466836234858746044618162913348697939730139996907809962943063060995978602681956876309632446415803086121991771346779607114283449962440143496902269062143417370715243601297054403196053398010147067413437479121885819389133239507890142677715387455755278065369488294074860038663028377566947041071430842491081727256650907672727468888136012242662882479183144890923508701273174963356795047589846108738336610951198392399235717108228476758725813523080786961026503533421841951264015241304718562300260694454488047506700183515203312212177327534680781149388761007293792022346658693746248796717212635734641364130091862560970065849959879148533810832701603607415365380025880069620501889741437768794129853045718236258064821866608682323091950016730320903611355890827673577988787822547224904065927969079446853675448105904612902799360411015709443335233819540274695461297642971529135054430327725133205872203622671241552924426549983657303327972482172494211766096771764197973787034438592399564942849160651036264446067906595902009017911407120400767065255208587405157371183380918463488397326136274006924448082480472435028420169601346735752544839990101742049398776079064330232290956208926012955584623496910581200418095038687545747414100150981656510489114642060068022389010346818146290520169422957231515819476222578302190370246586299638285981872824229069471535697575526161869199857350028575038106392710571822462060738494282277290872144321985833560079996852479600262098555446353423697764155407960249471955346124405677892200827719447923214537167860241712153693404486158867406783047317870243480304546638458625284519050794569985293490270432358468916381103388224896856604912694057484214880769219293537426686267882862626073443963922880070402652193888045286535109008300706942715132540627301235934934155326591186580659659142374767288570977919298159006174300779932265878228515808599705838038376616408375063872013387514552555183746755230851141791739363689654761243692701740385717911009262004134971404149913889045199968661813331493019299138004787683204064940744593906615359971118090188181407562144455967516488415075748727647253320021669938643431184972559166758072764283438240061447838140792586546153305921248045800523445389374776682973286196247695974257906128280291727774767971957749272123108132215756703604398336236017544686992052335111782284340922151399945278489697010359023779160058950005417024977075041575160895089242689375913107440967193369438033521487255691985457954050050109254902699717739072196358034444271312566469005488352012889794530625181563781156169729613120435561833910638293224687179257795780127263017349329227981424453349109019625215189943177845310723392458791559422277985863492906369516548594672991429654220278994228610039628295606584499035052320095574861729478257678665063756527559350960072791133523732301258863995040794247793305020912459121283825802123435942544631683871129273510700662367779106107006943955368921295424261158870243127392152786514781088807108235067031042132035487578497518992676466951698992162608329483564582275798342305023886172788838640455314789732240328577875287621926545431388023189845051329122588470114316484501706364691547465163246664844616896975902842299103555688584199887268648550528357113001399213776414711703150467631841472984516001839369628036634057006813771344191153834673954105628712071166179852882194163074461218938042136724334143739925619175241677752029526402571616686566049045216205932281587025269787720629017789865653234593864692556829035300485665847763257043290654995809655220936607138313090834578121617104136357077948151782361673677420042393193231269680269934350386841702330686151575534541013826682550905147513911296001066903140749243456528974277804117797786054687728906399375497211048481826687415290385623988205927681661614306569837364806574045441071571737853428718564321068815684166841530159829643804999544007627714198737348639744388137480270220523342438714297084027495575876127139503984791798097383002658459215370740694421707089113582290236576306176207094387749948903082241665423283398266296479669690959054538358332388476236068073552605304132764867947249661075667476241624723110640660026252927348494789939277944154118937009791575984203007303649657850744171209216074086796528018676826550976180712495117649742467297795155326554718133359169849747462898211827138166298804337650248876946891160977648369821573073680168338893922368292736745382370388068085546097675438669846374610671339460652822660589608406408267062769022910987953973245253517034684769338129696585283969299374458904090190427310785622798802781480839948372795513724318371817397236366133751165957375957174416735196172354544523316766079073620642212647222286421772751045349262097886998972674608922762504284750091057996582372739888150818835139489199416440305534176736828898549120808920855264761497353034862553806462206685752175986286490876038399771334478166587941729922985157368492948024322044112448787897608801021135438945260088118744570232457671573787904799765428092127948175812106445584208802429396302573457916112082964180077370563542211194915972671527726669553489975774984078846746896686279984348211272034430239605206521635920955156128936270658023582825899743951055519388071397440572110197499846830817833970961769261151739102478334411288430714805633148538300147145235619853466392689688041932548772976374571135917382706082543066023552943687132914021809124997242679589881085091496965497680721813769495496467681485546748635426507380406838081597108244999717619880096435832040118776866294893346201509841112099352722489691097926500990872007999032211632209206200064631992185420878740301680595223080511575477586644028056633008854059957976242521659774229039901442568329552874990427385090175811870106664398400069298002297642918936361917276771663486024770857224517898599455825641468628860375810995323820817697981855607625627230353406139407627241223027309461566827963810147012654889981707782158451155172752440028049992680108589559028637365571718218912684729887504521789686707414083793857443713702144520751704127081576291658903957057244645997018452423971453009131204425268521400030697567753760495172392007717295948523738102940650429800165503224253068021255275110744007827183132282360725868936427981712267255467656035530579322603110613326617179721356837021485662280040672617274206914113445124418952552963119190066235422150962039855485182255155822680044037303951786373548214927893880730723190610843661590838925389860204852281648192248002090692789317320742596744797090257264199530642746588826991589998984842289552844817535325860688945976026561125188409157959966345839289118847368808780156631588412264874358596395034106608494347126823541808176643874234563571368368029985076745739277703415863578680703915473301597514592369565782943091236295980257988074785015173580237215553332142803136636071949976666741920006763053766434457934754943792448916190209053424915154316455349553736579212924232201433702757549186136542973003552470749011151700502725764673252657842756717200022856924324333260186608660686620456134790536095176987248528361633212487849064350173137594591373580920288551678215037279560457850647211711155486175529901333931998678352576247958540519287791664132307349012620722351586538312261450424917043418244155219194517720055680150494965396732351469798418694867130864039442686392975231274159714272051707729697597283489441666338925440214184919329476276454447356928064291783581734110098706656239105181072431049310485891360169994372823071688648278822114520281124231953223157620032865947234394776801714580122430099988961102039817848902320747663880100765030407595731928704172802562085289361642898480698986412784903956806670895189583594028255517242038602689039207577890175300051004458352375461547210237286372915721466991806053727654094251693483165103126477223034059284757563282180697394796649784545621201575532272338298431587445062042673803419836206386612003843290860114691501577550641520914652665317169442757266390975890962264754268499430254835775364004751652984354531457520350884989253260268795023170383518318945031083688856559082425896202447725695716492600137223620343418173206064214230525493508667115408312373898659878118065522029289091106936950623678206598019976816790242768370358381933407671020248284917145220276901134214007166397381085924403120559555470577155093127702313225393109507560328944720023673789233939065865642022009288612241784494168872756305181874117597340512243685804195881266046387647143079186270959232825061001416845154265048129353789173106886866556638949120458720402431285263966064483156235600515814773505595553888977352571219610114684654458307574143896643673110217219058108092557887542317704714507392322127071150813048599452249900603660869359091879152704900775394474545449959996971512940155876625565452698191119877952983382966096516293467206501438092260357897225070197208739050895192096018298075619751925446093155801426375516492057820228101957973771060048840634958780540472814340014136964131281595775003920849428108353392713183176995983164854937329649744221998501917447538397829866367507806502669651988699113248222051879466040544296207433069906452315660098930602342525178107304193801216834006973798913043647848689365156694585859630683475119514557053806907531939856492322448121703613516808117436586500963549220411435174601930557180515410122063892166426961269030524862174627133252292368641470301013131137342774924179641280833464830168079654795450613381633487742335074900629361502323193662692255276780541186754463987845382408352245159973060772573213287804995101251578354596879550220466436673733792308664061205652242890510272343382928788430577643404344169481249292815028030713158408587600977818132890643093522277336318533132053134250454989051917969880573721263079563526151728318502208339083068522313380725636829152739242584160110437809433389351589343334366808768264845776979533340585895470676467163674346248057961890895215703754995736668663994676719408422380092395266527123588478121438671353715974263771847145513686938966941523872267457679248734205690981719840940310158086789665113874943922973974432919545751074553997668555837539721269080405425380436374034135470093553016881768665228517836427739454873157624954433417992875804027200028639192014047026992040423797557496356341658694544837116241021011694080875612937391287783118292683618623646121790135260437507009969450632066947927931630220621646658751208201682837623944327291364857939634753714938969180662982426900417935927977865278275669196061466892098499054391232216145716907423715173662829304165780556750874293799182628193190320199862509075347188569847289582725509012455456603547139689166659004778449936285497837641052056701875375037052299375052030112287633268319555290330454083672817952589223348241752934773774015475938284222013139218973131306584766450991223422792910805751179082110381883468164933260237311819116526537316796495940884910455027565053584427427992160581994968980775005497112010240640206176100683024844202744867792180734943044026692220953999144065632060910830663698631143414916936532781582059563451040397908034768432770411123676330258730336683056598978078540692845928007680618640973245547813219180346177809559117350128528289716080514328899045983500801199290176979210407480001499171708146735069033845856116208489515021170501964509870514033410498028254563462967812613426363552607076891941970336278999753638039632740306980931800244101928197420414021106316915967033005199881565010898139817896424232770396846952036038983393803794770376643556882581233620416530943433063121280706178271042082702856990994011408272146289990426957922843547916889370807237966883780460517336302376865767283423285217192210949729871514724442403297983382087168990456533079859007029894838868557212147623121844508003714751047050750354501984658401172385570557011476871741712809334190991915053187186262962785831257337883098160153203178483719508359933502206561222542122673870797923469637775921671790713757397510940921351262429058760225478597485689756256332404764116313235243799466767202076586649892309661559270709283794703926630694266966434738787812017163847162473265824990392170275915199886671499341789191019578907027099443309005326599428743934129308179522286657584049044303704193690133025535106892163288747481770182744446599666664454835412139333391939223836687337557082838466141034773674296485241945822867290330864599484188153506325927401769961999194317632608934094764862532259575565388506022430647567404863271272314046835903302222161917597535800328302412053711917907060566794667835454189774455173341933998702387606178382370316311452948852530625647645765490615471406895068423490863091535844615324984478235536579639719246377430993178790103880665035037499066494547231632145581740103211109954026903992847880782847510867553918421244108578333825092597816706441971540428449690019922138452546558410321261279766901047822387469190389770816354186955967168052983990983374184007737961262116538972557096200053777744779105605358073698519071152840868023517150921713009257030156195891433431303321898961271018144281221793357217255015672578395577600244054539146462171175833873082577118720780859229586041820188420257305885114168033534862274674271234591611250394561560357682645369427288799709872553331319127765269480694470174382364769563736011925759700603217863454980861347690910862386474839726439231637368564619538980805670974563710537419807168698206212636364714721528327501331146474585583250897245357621345323392329309023033670426354757956280546568659554665901350547657695472853054424947928491680879745890226024034497704516009330414411982079029829124556100908049552057500301302927938613667478145136298170563764942372356976236016794206400595133495802533153358852496298273349081232801493282716515997260618282860363026361648541740937006098036896187327022548710741814033825918924009262378117628312074349316085451841095063088835359020585184760601889747008417531080244994051512293173593166265682278542096776936562185138365766505148381386308436604367807364449951208294493131915391120008634921330585356531783833550740741373637692411952253899722558140989921687583299116802197630505133560147946665043406554439676347200887163739253148950064356118648455827558387377958404639875812647606859987492432141633488229948321351110681880217735665275090582881874175495699305509675515948895102586155844476339424151801797582060390330071891305271550146497139154438398702840212772053869409045806858635164177802677351905432384464375234508134676853984120182404804318019741768548616372817201184660851010922047130556695205658720688151078000750899673697706380940947431561719278274530355331422068159768627298325787759624231082420207839288331673568899672869641264251889355021856144150038216610048911549897269290970478289169423629856994109121477384520110844984251422200671585310384999806791895315513693067127067288421074616788801955753852670635393987100649203735911120351552755839461939082502694208550836597808385116784969988763208718779760758593580296732198034321537308574715922040246728412256907837707820736217211825884088736459837671815270836243203120006343163295103209575564236524957814376557974116367135995935953861112485639479482161309334099675146494178515549186353818816820821756426218881302742072563577541872827780497565650917502281475663525350348875469399181494735596273549380279370948019450051151162789222952453915088598690337294455845762276431799474545463850261207948998134495029597609145821511156257290335593900720644495047198599341250621547013296517875368539471960282737712858346156548248614697752599766630259482121985936216607358687084604062802067855305833639147521281664238889585170663661438049327738067492712522939319127274513622480647138274847887928367524063377986526176983307073346345973836871776788783902169133483110290259910581279603414155022069515843464601362906121447070777314889472111451311099249576801130792496617987583103598221299211285444282899508656669238240755763985145452726020725384794245561187610447507308973879793126336025100945355743338444752371108955613150885077289159986589224655016748052205538021969586401676185337401125113306813559532041489191345704362699493663608629599841338307374002183607137458959183170402567774450069162468557566922545450238726787030686602870731058298574568985607642624694464369520372665937489316146238952092705259013207298028269205928747747790409660088584936712906053898976868535272647743756336707968289774077835969068543160114326815329375302996727244242557363595556126965710745257072372847341299308578551746910361989438523027575777133341050856932649609255369696667077766514663718635689882581373177657397870385214605053158545646677927022855436799967576272002511654960320358197207756423149065520102872712758843242328663726629406781334285736839416443552757881815699627463833732016656427976560814951188038399913057228413506030290487912471514560400120577957650658003152585342039489339465448427787714143341939025924913333925861180985562588873812738350094166607090018410605202583948647721759900805511859984193763396981875464892167335155028241444212744294169436263298681196028380938110704939691142951513640244575489453945950921940320712221006917485332311318547710244038697481906004017604175383827542946385150796135931047883493839675710092470238041156222865553199722616401194126548838025721955444667705342408749910854514710794169822723790650255801358099238477352641704337378403722035801701625084173371178605673248890293871366016019580970317670785829355123906256240100949973725649300684066911572070637062197163399715249935214583985091547383096917547976746108228647622567177178399294232259609229379715122906905656005768968979935456625947298116931477296034881902850609297139164332396537161017055554827427098952617255562394845205966703999719875535705609894319009733684324306582660061655319149875601788901510100834527076783047926904613843649278947509294201620052861442799929227465982407031377396706691545914743043034269585037599880596046965090277048685234801176248111318671317162709432240332644560960995731736184403361511157147404905069711880152459813024871170491277181321733305916723035033625297150955011603701748783128365799811270517599168232637950658420007497418352387704049356512116990906553293256047090714737612853992729992212155235488848255343565663535456439286351220214268811388608356781221538318869333586849077643550469125807479683329697505166918093993835513029239303590757681822095929729501699559853081319685320929611325261892218816089059517391054607865314306690175040090406532551026610223393610656066209870681045041432212668915308122402539287070462737305262620227339640986221153331423182606374960055454085157565871092591403839799673052963287458697954906222823296289770782906484030827035892074420132521628946815869065884310833135254205324322778062678115945571730586053135615818630773713166912573790704574132667170951093505848642388416299513082210846283417782620485350671760167217290245801985134644280123625616032573589904977941946853368066074640266482940156042373540997223731776162525922176083393627299801936944464477585827771282507940097224823439613477391502878537497878008257751439293974988222647105260145743770345420219173990045801193294254307310378426321892473954212016702379792289551547917350417285652442054144071116282498611020564963021316428987046371825917713519471201308019069268805192756215801431082529062921418338924968637897816645493493526853259379769790536531818018954148988733711013231726117330872470148071124954466823716307663753404566353588259743352299321413442224100343326126012419957347428718053336085428382638802113808909585390672164266249989709270594598935701164845523632825718860874025328797467645010172621798078271545686252357764989909794591360843007885929914276639824666445211100677449599145806113759170519006513093559967049652169198942334695658455179091849632079987479707824562501753080468364066268990852057821733308384848972647256718760522648998338131062849668830674228705654838428803731535101853726136971416175411218275631357408817385435555813047265456713529488722634414337001456604636482797173647747849886543080079049519173844860600574965576419473102570930115405553949649854545885106105918048596977673303041678463088209560730816232433996284744620181147012077216370308045417197938279745664355270603034471457683251230002119729649807598912012171409309677811917011842531646504948186514639034748251543704302232353132392124127413452874839749900179588549539917113811961112434805341680234569867027904202596948147231094616822407542455007901835514535458518431688109079935595331895647987867349883125028163996990669801140724065395583479871258793143089721144180285798655042542018559851630346836368450519086202910617536091630425136641180018880781710993792307097293752894941855443457739995747246354545630890807966278896730173687949650412076520597426186934442493745543449102035424562170645584391900162723725053805853290619690107071792434368399880096136456736748085337383824496659973989442597680965813032778171822398986408959627853190021994916938457670900642369065994335603710222047758043061290256214097155916994894916765991731210381065120650826914988124930245172650806764138626383893664306173364033730297987980213072195926532315579671585826619653663676017359427458729925832808133478304091563502597368186635321546459270180758343583798185044427666309408561836876710239424689571577499272668156203677986851273017782540565465637109292675491941405424897367702262543720690073680559857699565583460610993622998241978796126065910372249921159920698517992833644509877653902339311804541801462138803376047549880441154934666686081145679014966388232804587465644194643018321951044076197733046816224190668751712598663112426456404203294305740511017228031473407096400340560345285389835229928420916554729359030612175913788073248262776129787323118029777918124633116535627181837230213037859609015626545135200848219300438390003898492466060714152247661578044476554223063456771964955464759575958901566477214829481295131178022623445625003674266834267911620794056116637119226319288034191663141428391135606259435361984095917665334071474262717043787261618520636239148488685933108508671745203228067674987462065014384151104147534387655502202335410685536960858875471620861856712870297348056872029915241349623101212123199832083666468173973226550157806001562616822146457868573397445511872744036915262558391706105531796428481369248949252545073141851685581806354975256906798759438807309938535003897667533730932045593189420606400222659007771374775961239771531154129460825967855585279738511153290590918652339014951274318054919552527529307727629251447530142367411578094487153848220499332660141357335687267442036794335762448160761108679330390135111410409836873355686827057944405197137961997338642432848388689207785611139049609636279707000425642616605016079854178640993678457746474939764295670789258578911035199537424481692577782596458815546640542692156290705026269064249406271991732296432743366789268575816421784253561233169892089417747980079689820080500396922487590085086058660019236381723946893715308166419508269940421219345360784341391049555991114203913921918191067040181871904797961751233768241886907068550178125353324061049779356225909935751726673350340324394066712457917162929406912979235757249882534699364684907222420181867349646544192031447431136002311701263199929011294476463946642215182889741018918748767961862983555597586861855128506280490998782926072999941439127094459658991734003488139364099457247162167089249431563278549473725871251251743025530904380547546761950982023121651183665545957928698831620773733270759020859301049761188188903470608437262740475427302461855097186095627395659318484628113180565486771405482450679818591379149895966445746984205677472095399234696433107025929984363447563002892968661985820681689891930145195424775171412583932261931285653690068520177990156175531024539484752535820599253684253373922018257621959016452210824229694685049263490816461771425241581748995653883711431570117327841067010867941234426115477281201592996876460327829698066828661133371086218133621399744365066984757478672728429144701296566227378981004043579166603355525791464457624768915690557440205061077467208939870264690540775137865925381761797754038778476547210619146082212784767180926033741231854382153637140355325554104413492830343796253274230836472289440759660228305664414753555336441699159369485630177954463542850875341419615121949760862343643143727210167017242432477334672201952361826460885159965137577248755751698627079842346091411234095169180770991906999179568251768902311575235318361080085335503463578969570969306546627162172023512865511459090739965457569225780203726697905444235127931569842117272080583025804758558351115160979966662209276710843124733150142464203581366168553178658577768337834156772138606021112100421845788456995917952345340437439615519119662844468072184791755167661050543378923434143742920041686129392392938360908206013824320856668560558683119085249310655916123688403632504920340818771869654860626873363150890172026770616688881813973746535276000228681787115785470024120191461254431158430768731248534555713599986028387778767242905818183270259914915066641186921089143780026873072104902621374307920733654192541474618369714542406842557013149347470512837686853420937782471772295816145375581788448725872461039774641277803638106046666712184114214761938150827490702107221763920739367361920943450764058755388441547496502805663193954598576617001211130059562402848394938181971047170084065781805012636930331451832584898708993648540568401933398877241525582381733615598710821372480536698746671027948262142267646233063751341587887286177321571273547889200433535503575575918268473270629777178406408147415548901265428682257643945820897978724022389798003226871785210846783217180674206440162007590680999906726691654260808340619681170232709275736038725691381844345209948199959797397590392506117666814895784913809249402059943800417105850536673360673151143214819467210797393537069367920899839129716678357580935992876242210843630628477225287032258224883691649109911545469260008521323809339574313469818372368556320651304707355823523136477602476677863984903652567940933851403914954463010645116089978527241841079698159361616441977251397836179849324810373874523383095222993636777033450494871572333920945099532648873478235931733917836304144953321579289679042350567568336403940145272883532131225749118458704686076766905004558217361885890184556685540046353873696664548927629587339727813291384154953341328292535454045784520441189225035470959988386874374306623934611415123138722928661382415913806202493425692611656941904531557088037289969016184846931918515372262600538687936324505258077374198507354141142274953214140330375796780584770436231075765505656356982715109043712976675695625610230580404378527275977646261965758235460003631458064833630520491523302250477801748189327011793648383941448949288988284783964731016058908185344078768864613078813354172656945157540273216471637901332514580633586222624274617044458418414782495386243831044121730546276436210484784972541000676361699226625926221584183742129313557059363755134561734667492563192436461048969861412964412599342178394318682244010379728756928416383156663008619935692504124854920609424538368888171014402751932220378492111166949142288867109860498427629716866380123928303645029136557924752792327695290384005322541234100724880101921194999900912914028880314558372991328588901689117981836245222895277537927748202428658527564211842956271278120635728477207294090142446756959384222239739425805594420854604394619735298969299193560888709583854128596782469498127174613591731709073296288967540992386377050972521578933187176394369863632879286864392258243732897344601497317334110162114360527024116063407339101299617880087390584602853757209144221812772926234432336345394439510790578869578094982776177243468013255662050883465424314164699392385268496673252383961123471518840418231004902383657014643303256786209141084137224081086191454181722442624070220637062772972419040567634596349616689596795101469401242677519234545207976618961811813325802373679188210702568030311492456527346899952460256483525719535568269764059334509525844230375526744683420518089840483445339462702634548965379811204942784588009776210540377878920471307821022771816691866296821247066346571263761178274422275069503820644405897497439128647491366283277399753334631944441654334659278281720817616092447936968389907548942187646909853309739336144011524215147131787387304522884430891449174248744287492600814365089226009033756710582370476945795437728941016623711097809894573301731344403972760900472750748324575545237938685073440861322713484202772625762153967953789093589880283708921125417715739795971913776059265549499158145488164499395979390245473993294604354967530728123579335032900020086006048494576976068553968490327851559523362624442250354532867927433234649329580270418375128811722043768032676345419959472689455107166749591784633297784034240579269533476924513289950101040053630692497750177511413342369263825305448308380114170077487398376381811612218572998869863317602185871747470404706383156161281329274722136283692700981744569672929250219277838352023247825851623666185300719840409758308161153647462391331725607336864824325029768951939208394561904265697314556580039180487505406682379820623598468362208360084968196763269685292939602873280429824068823034399754677946655922962155641758001886269757048561127641937836244791079499187669898724607832569564681030988369201553824109705021039504160074756544123944479623657310227049960905044991786152377679710094224083277553933682751768794551064576341412187141664282989479249781780417405181008910219595635456253497921856922078618000740680730751670956474482485433527464644777863400156690381516388719220639201576495054798736561338986928951873900148911954204276724363842394420651531781374204376283269065564192894947752824178813775355790969235960612928972790508293817646476636893029210813643719296644156456004900455360745912584967427619928043396414778951678154427538875739943067539688893372482567265203030471996316794809699449557248690449750481859043439076167991474975370346030153908397546730706538446035407893856869441599856763859609279997542315585565177455742121361694858926107291235170238867512639880593264196020146967857724916158651187878497829758636481472132377863224278823560234440122282372031246942133085474814259057062310179457736047497301335731612146881106357507227053264569354424776337917720195499092808319092808645099369982701112871497470992389940011463745378218892101019390682694573402515799196360156726694636982815809637532987254523283500919807311952634769926317312032156223919461901299255964517522430752046075634297138233720862505126404232043774013414535047112330904666810567005339822781363919863447962773296836136379364370983075401495967670645077312209796804728274004368088093217061676106129338904210337481607722420887986609543731841032396587974219480204058283090203225067223446621230205723165552399531418035461771364166413248846147785803120526406780576907347025435893048097472159088654522325704833575428816353701962855178959828816215567900858795172319699926622789659291650337180440976427448816125770928149301534592938052868668036794183938694896225215060215765683155113196959170342635019344095918052208391761446610547604916947775889560453833915865060253099396375359239699722699982897980972590319049856563897686845299542298172082876112824209895978466490005979532110560677746978304695669568013744254542026488832891802235451218732391438989138754531605685493336841404099873670652445507476220643813316860322959255934696150421996098842820918740936565369987964363917674922353530828794704932666988517039850248580082785014093055226212773373679693979781585758716038451173330408712466628713114083735463260186263646748306799039929001614419026621979057034114271142555938162218527328195600084485243454327594316271312290059457570304381725517899262608848565642200922384965414736273752369207296866289085150771479114415630880390522429892832613148245494205068719591040244395996553180198225515917016424416208973422875992354542256292080789823600738025272955402911101261140664409280806122468759094065491896661482268164873226440547646016010530336127370558696496600890643666535420542146539954163901448532003162394461119975596771900205183135329012901209257796771150412737042527717126535194751727566824973338299736983682615772890800160975745660741849921524975204289957477185891384768818715013378244167376567121619765711577963312262785627412549286411480402072466100784293316063225470232940208151882885597242783987495048866524803199184279357764557212766741219411846000327187005360418812896589749848421378704875113437277379217873755495087851898040440193294659796077638100731666355568167244883566573241739957785994394944018875962364488494206432252247037260070197589763928914910113164641953878258275613273097908950632147776430591373008471992142615428711885257712757765623467696129105062973905299316624802215797073587286123070060194700989128592221368232915500028172378068767271555226476213505040203354829938228912314207659234430070264302432459567801639295722667445789308573036984675677725489013935402696445817130238520561555180132188747080193418461661896271165833780557888486661311530387465349511763256060277026489723783106166550872280865587600446717675478263262433417035424450486658906496819857013617042959112842754696569184680671710744691580419788164644517162172816392191692393833250728665610597626570487513133723849575280218498814674465497412674374567249753086230836384832255961417715985471602492275510385684478489496157574651197589662851355042811417930754839762104537205358109910121979663000117769561487997394234283108797379023454236195360021708561939221874464734877292354901578755089369525762614698264306428021379316482391523833413854567016025542387293755148952103799649424454706038833812841495182305305749602298974964801003304131267610707730895924064741176098830360705963007407097459203315648969907229257960085508631737857876624342581280808332858271690934987604490426287910028707881493637463788110763633599469383431939428693793777913729076347011575396259782142139716461705322328486280579591589874578290611650763589594030040397451575303144865001800630860343336478754482215222793109320095766078379610087457605375815685871112363906637272660212410094371103212441017733920226762496809815561200202387275951972999711824593580139268646275038504365680861864153087215606813167235521418531151642314309198680862035923223829002548423695376818402944625033056161893756098826632921538852240003652010098141314212700160194662800552756894926455113069598280917046228486447504730923806793149899193467213434335791908610625117453781904019210359788375562574502761367752579981313130088762203557553026239740401502843235391244288028266716947073155204001929409867053032871022751239855607363296924506817294377583654560844148894494439701349292154539278967597603132309077252133638992213042925224116858959913746739628064617896241533404795016514479851209676434136914173525047219922646369076044466493125215699114582227485760153140162435092761278788704462849191955958379361084108215523030430426092496493401893112175035145184257252751377598298931280843739212207362384319476148424585545381991717317649259865011014463073308984309167436998811261085755925974753359460010606282546177216307378190156632201482199951428372137557234427442684325274845671740145844341868056298000586235077352636114419310763849457431556930044205362363716253977828988862773050661881681480125880144317877333453769741709681761862435118333358527864803414142953472825504834091444539219832559579369065823066891882544064590010913165364225212359280766099802158552800950360670775427237893219345496056240072750581860273741125584637068012168654836135555560134251493133372885788697085443408489567090402345571580660639900650857444782586758063756741474543033803641673270544933091052248284341035088073123626007097107922088640222533580882913476724653129418765324931669725544844197595656525897619683595920225529285277280748785317886502082507370930803605721891726564727807579351008018001700094020346569857293314682553079946481332135534277842641400640119004333615267896147161869441943212989648342098714900182345821329534514184831525813350818317479814457112113599651831191853951296593803493437965013510286319409503720111353445328756793021438790666383911477284729710504687381350390431477706261785980163046791306144665939167999692030422953784195567813408199654489888171251201296157832343857772244953495802957546490305164753860463342854138988835165616243823221166287933820713917600476436624744874488606038347841860566794534122025383540572585868823023993871274751469850406129113567021729724752156434368749929038934771969977451931623911143934261134086742431440254169471774663580274570350199344539720004829885878057977293221492211141724110882537126161406341188078030659472145820112610519282837843824167109958169009484202624157912204727238625175635339536441762826171035329039090427988025815243694022300684996196798696441995887215379523211528209738871161001084723867814137633156218471256394893201695731609921308442376618776164947828409308873334918827819820674543344760033435171800236671058300934539741362952248487962894987541238581214148404122221046755600574906532034761879270242710283964261407088436140046590779216334749895109627032330975912884281369016181457669702912028887844029315499024510557233872081472175318978127594942894818387437990593286664613477671578424271379902273451173314923564347009284812432496835493588199950435078965322386725792624781621693894778048734130268863137377046998240490589188925467751020140818112295020145417671881656674936335898403451893305288646416176272686797639235064176243102375931589639794058008201462507765674475846814734977741322403194493716963208864820996582237522348086996545559061895524305576711707857675181417406255908712496876321878516536169560672249977953544225162155454804625296603593169705226187918176701346036714967463459964800427946128664757692648501780042985910527461792613127631727990005446091539528483607378330157121122473259708266667373279704850352290298420525762269761231098027199265556946968411795823900349657346582847556064308858384776679732946262238276372069402224048141414084441701449651978832026362104673086209200635114768848573045107306184130234409624681130815826163849601747090712164809718446494859772247487114136494277555118519961575577198253418718387594393109485551182451188840706299600668649137520506389878794121991368922455927516693033553554250286406542217804103541040661402336570908181500114464021441632202495756276575279086705213224400007574946653347735209087434646832486154486910065894043169381310414966235781898528222278801962731127751474274417659748339419822813297046505059593379748852647665762606737186716606532663875519538232287254874702855339231489890742113115738395569635012000190380098259319593461555671334330158403610418527517616051940164376349448027068717372636475714789761946884040023388679331891083023135614539403621875103939423213830249946057499061827145123517450233866136869276167246900044054655087524809229895383101069133348694314004385147295565995274790238959812481274925501662600728627863587388250734154947558737878902419040818914417452283389677640999283676772024824359488080595262013539862897575291795302682420768052497263811067165152673567340757467669640000482390943037723980191823489676160751132971790124221344590786475814049449924977569280689487747450965163468932052228558517786668093480758366534882474973292951706979136479010853725667367033225230341984444834807899661042947402314830307212292314040441570222019635735738696113963538225111533669390250802964467724450966225528032211191117625369719993087204717599129947273576454062153082780138378420460003457029598683821253906217552116107419866083121573744506773227854907321429115514708568467661343294274541815713957982498717508322677071907029467711564056778289047798116217161614553013537163732856814064911364187455732533638432527246270874042154280255779012544905191566062616981183041798654114199673583083910710430414259241247330264389033950623356003180618350635241008823827534287500466924970401266928299914712659074750015180670033850634494034523843582657658675730143308801767805076712190341217440351104527628578763841221259457615640040488181531312019566528951986625702311205633009849731051244247247964844158591339683908716279365482646909336863496973639923606460163274974361954284904532087200392950340094478072729132307425970073655083374312797465700612610580148727270606105851383471007324701647369536594599266791453744555849770518922566371359536229776385477316164068232269017153217564869603873865488310739943544479071083191197413457554609600478614794265285833630771582515678517525520434010654064727381558535697107495054254820637895075463600743183758050801221610318067250169794464298656478224508570273783749959686958475539408947716934432799106940969789052145709165048030266534986871722970056821111018342917343094940507868836248285224519002009623893937765299151636458823785116264474313738741407101509792935233242629958385428473989498379464169307143730962896173865313477551129996483607637854667855681348980249873192921592686828826839236558135121522014898597188169264337570041441133815438106200704346585360722759866686335048621875284827791346597545333370283334540041714022696896012888088342064437830504828272694916116244007487415164432455306798974777445434956548557440784359214545288172825635814473158898751728545674411918962909858812331607942406825630962937568103047975465004024361473292374669545897686248573319294188165122247185415731510996293851858341123215358272196962584043625134333311390292201657078341497374892286086301843714323193098484795653998242478235771261483898979178729020479852121080049618996777026933439923263845874769287544936432047759060594476642871762751947625739643975098283510313312880794548410152309429679097711852683572509056087114508052866715879303596342757433951456401240894703186229874584498027613522766879496843526492479583125536284968186492223541911920803978871587002327413111716883586593866244038335257623603574852121698758947944469608103168764488804610580407597804573529276222705690977342167340296178696196021090746849401159419163025386018616816708266662800725618498652478039180904793465292982311648678879528104197564101291209645418074467114963817359629197589339691221518324709528173861349763420068659195846743223345693442272122611069094223730967645768942511864938512745968220766537824762163426141745113077567810468513088733105658630886692984879456986406081446303236055494037739381769909588444927907463388511088782504423035508487491762455619465338691025941375424133986866254941742379983755622895989234771659045413974653439547994442101814372943461506533254256438200227130626026539818762293761180391982344624860819711570253286126472184853007711121535468079099581410063207371189651446975359790045229653602283894020605056225960058360326036201869186503345417563069630774410457456784186759162958411098626588655829431818549560766800754517625537006313262013662443470254191603086297245399921846429130606865539704004200007944472036803091427620371668301776137356757669823322771795915569572234994842184542881957295014674207972129471999817767804873085757282681988182459132438617578427262150494125862767828010287524292645655400523057589667027208235669977552325812177375574339212986423855657632700396529329711932852242287440404712690889619955542248608884395473714665641733213134547538547951427475436788471686200972723643882850229862697587844147584831156525225006606306400250436587290903115571580399917117716019583922626622472851200204010394755565518786625266330520388932542809177202500740053143885625803191085441631850882104818524588515498171093507533213215029981265189310955508559743940981101420365116180474372682674707020985238503922431070961434269288879598501932890042594380726463805235429070496646203549949240892712130464880527826287174183747450606291362692961581379994824190022079001853997469985058300413973759047631575389888192527513734301117785970198557659251733931674492382721034215169386869655927805405116604818243495971089749564916902457121869685094449093858676089084598710276070554714502176650794877230585756694159621725451462709645848747469907160937844582664127520845765887601235999299121676312450027563055621660656397717888503801051808105047073907992077250841458082502801865842329318131062464610134446412275155882941863130348348898326105818324060954302379306813036084101609939758549922189494788141930209774775001215018938520960642822027848798836953741084469830408221321125266500882943946997355335460684703789856244092758830458068855687417550796947735750198423038824274194589261134821803170835064469259948185972982321810243870269965118273168133880933933002087735947761843359135443307655923913825781314539010797125611240916980773444422757870952843750048840257504183138691295789086414891641619192879840028918122492601101656756487941344752795327052187195668590651672481902805658900461239720245988488201466444592036437152389043366979218403510513320347322660056785343800565640626048008454004996932941511850874606024560842522956341776994317820146781614004453785034217862091797346252324082001231897458404446448032942089724887603939136181567132765234806445100162201557563550786816302522880582662983980843757115975164316570895499892234874708412268099895994962718839268310569422643929748737795233037362710538573414455782523085127847671755316479516685451377948911831950635996375655763561364843597573312458569707459185851535812329892124151365627469405981222421632325772076356461059132117937023802764341062444607404487307146087915384991717840715124382867688086116610711490335010094209172177848111945679525461643766064970842795355692246160169949507888558474667556389155595446756760340719446998768288917586282869304712969036842554914447231834250821182659839248481313438538826203184145779927962230538843226012076054680354375029904266619404477616565627735020535940710858212149037121915911098012484710114890995428701019191549364571619056126079286458849892919615118078000741396562556953685874668796203353250901211992367494862703794747891671086555375202678454837277766539488733627330301383080963714966333331275406718172642195903836365550803780368398434741561505469506271578390094881391373835882871203569812602797601092654714708914021000854422429680943515940508528471444794675697030871219231419641185904528734421845828494267680005415371385993089893310887837693084920731579953165806647677783398377956918188461390487370156625973000192224033058236636295412125492624296811200591254089136870114941703949606831064187969458812083487712711284437711934935831674911891604806718773176676144765650560532144981568874869431884047857512388150378931776647557867622643652738277374521642672791202870012080965084381108724385809066014942342109131158561086230377351385430096880215492628048208898589500982347480250482866567545901902529191111410049440422159328761580284031019205695253743210568858002919479903238849525423439075485896590655896349463155490679148437029321121858588384390658619190372899411684219894070591258950586946918690989980388478873619349881929293423980019010228731535391101721994260533044145880678500942108282697024689787697792085988367612567440177189309194862181068260106798664790969231472422163127399702530231665130657625682669966057057457617010116937339183298388635327721431665059988517501775481333721705655030254771528416562539931425596479339400076079014189744707922942564208977222176311115137456362301046630467854811597699084978012292309151924767963806617417530245883433815516749961346656314888278180318503387055476883323698831637847116103753391547108492962476473071336907120727108886755112613587188149867588539071490376738413164648804778889850286406916767002165507353462361640017902618905341473266907492627659553539222838029455753331233423943443163250806149980797149712089791323433704797498930402358770526083832129239384507171035134975984533899738925752257830228489929786633207852431633524823552123755955069260121865877176083423215290146936929089541692045945452571247461188848636670578294143804912990819228767585154223929028636477426017679494134831472804225011790227221967131920552424403653081776280065717671894127174379286781519535765019969763590547205094506624853230839720948792892470723316530984424516739993478692310244517523249221749951460060501322106403779181702473190323345918310099721844220966180543596455325549346368510739930118130383044197125570970434830788281737386779359253953205220968916891775186920792247228589232494341990382213062104306055872691175011125805502152758591133653312020770018290410211665030360012809073225335052954771468308936050198557600792934800526591223995405444991621209942269657006806517311946094950956089175015133034432614053307656535227393350062587694950613091578216387503529969084669135443798884915979045826251358871894222844324803759345241731226154605816599976640689064592061111965912429340269533394375618863027837059494381088984425005404654985047558351610032072536400322908228073379006360908507797412723711024845128640314389913257991096251200831222365005589621034030766010604211793732874734372675821000432572418855169250159159845485117487631295673979353326585634833596214119266236891415329851834850082178977108422606042344755789278320304421256099882089990765571114765890433963110236404221713949807715327857734088009827913482143464717139684438410723852916168967783378914551034806623250107133864561613585993139852024466812053843519659642372880275274783225217685926946459473021971880573431603599733165950661782645406142695253961536017500703436882544090713718668137225248534527785564179881214886228586736035373753349346721542250829522099251096431134302837734132078206361599545988963523523449908478052499237871997243063309497086135863621897666631295524481162504276960611022725113116226202683546925821798600723942374650879544759086024042746460309109999034373618507961219996263952551406061131046784497830184991842521719137866111570609948773191794343463936114263340698146013217420691410937289904139693782880008582466913780982405659384762362130291775127165402546886397609473052985963571840080865706223984952027130924272926796148389067943419592295238443167540494385045822207478271756877284755840782193280046662124963703434486432219303148648857925381195097845060463781179326098438327993775209304733607177718409577497357999706645528625046685680553479617499170088220846508374812144729343554049195587538081764781447300748239549737887227554361132519352897147677685118474024123887169858992932572504502580627869357723365922894647587394916645032765533697492096665131729597229521934385919383086999541659553474884059060694097941459025304559304568754720692835682301369215443215909250857047476990708279285500597040824642242167755229906110433926972529418516721628140856389976968077216136049285519825917002680198891211880780913941446243455883669418898905804462768036009408663435595178403612535841747534293414719955601733714541518017139935478126159774572101725652473774122556628333021581777380948575307548067800141823358130279355998830681364072461716117948223494633276289149211139269537188075124245916368216510547602982488456331286548335209268957938904812998463565608703725991392399964034634116098140545776205168916963485685149454251002655338907099084928770185843704612875056773771815073924195751284767905826093546313999440136268870872911719800913962371064758437254963187614252366733683722857261080750540575495717967452460184393311766017979150798178559300433155362376631521799196200538497289474155525637315219321939078736003037314090899476913563120193359772824757690289142681022910456162246902565209100391673452954713143391706848617827060109917232223014188562202002825678701106257654030135226031446755197252295856041993194454580272420755639634238327923237017391999896508498399817847591838478453870312168522076456891439323188669403845474572412529548726467786822705190441091898888930678299421232945356022561860135853940016150173692340357956806554607017194445664751409274726865275364204242519054579788547024497001200092792641052265379155726360937103399693668753837563354021747908788339261315056126437626307272915568312129067650983587324766338204536380562805816858029881333839580141302771895048722692252467193873808730701219599074585574469951531188665064557706328672153719708268820558640387446861460868563492997391553740191898156158735283094311881974667151369423819514107528918617584842804551011168746727948730778521756459308795228469593423843691241332877806943201509860031231622109047555342224413260697671587532746850861116327949995649569229375616429048837708473282342495541022740573372426126634581390549015615862442961903528443959303628292568692184165550061116289570364616670183384938335402231021611696756763302817530232280248154539635168708240752599970051622687703488644092280660451062218692436917834408140660235726962703261967605141029794644395971227763520600290573096649579965478086235213821273309233864593819041696937002532190938435516180384623879077549096558466703837590757739595816662047328141127570593186740937350784910760568565248467191087353489764879596764138389195382475704639045407586108022812629435585467400896518525072015788324142901517014770820169858253573451239245056805561164854921378823280770500619676324315844797870663512518463958224799512693756472169758519936907743428854006858005324665975129896852907562939759646568693766633550181806205277823051344015256298605479542521041245310295460771082040277271955130244529971434453594129795604406414774386847855386141097225503780723580914614671751933257297704954249598173244108992135817286198271805751598183432338263874503114601524738379618252701879949429327609505119245352456184961487236844792034596637369913291885557666886421626948997454452366633211181458213767880617791914353312982702271873195035145969961694214859852585050075156527225853618877500327489060757740235889228455697191402785102308869075004476062488270309658591484070150342977836546804550300293221973928488423138348003752128085688678629164319688539325793943198827521632901880240385606594337057944227764010813324984888003747942824598357855061637598219363124358242690880113693497608667087904856988621303342032560762943466643901547845377723428258303616360806762201782432976834861689208256501315623971340155958254401951982798104189185463556353226721271705294511651575829906545159265773121985620709992091878190536689445705723162378348530664578645327995138398951038825254977942445624995154720742552403132610564601258362022582155116712559689438917061296891679988835508718889093278502082361654959987185218318989981193870353150146754381796788024721321592777115864206345691991512663282726159432372848430320927355784159360204999087335813949945766436518958515937004213506910783743973155648294882543964701598036867881350169394793195031941512718097269629183851637692390030140986943666742449442963351507539971569975414527629023966609312961103399813634143326236070550524931618617637999634836524717093109744940129659463785748192860874540784370786256295470435511418520712778872407203612884220760110182417629188094442355731523398780244674646214861660663233277873774519196393860470333194112023119876611368057804767464369723518741178562154374435481644196674267761784586907702450960311051723320266668460970339861622200459843545243006931433875264321695725295349512417854999503933850940671179981193912689487052339924545769659316883501147482838330551911739907955893326831649459053508343646373894018270088093898074476879441857609298436168170338411593803723268421104481170916979288351759702916702725026270284046863222248467323162519678810034420445076015059074378914506436959824517378812234090047517828991306240045288575581737114715559850761872615366274509720551190908304228810056487873605048739908619411117253595040532868970701910460124038584324628160249280225340385694015286705683554644644023653091677490255127909456694829440726260621112559691283485589144234110716218656672701323495641681801682695914990594368366852546570454679827784779684019042359845101515095764817327957925581627782019683023833796538610783450214536711498592071106607635118649560305934493943156649693734851889754642054868157941142720474241732186773083610667129208935985053168968292111420109603988973710619049989304987911770734573562211494780559768385974512508072266722852473490351623660778531812647269145168514336363222183871794512949663125405242859597542213744577067324538552687409852007211910971474505046789395550655893350488835443172443413796290033936328480908811177886511372517257333437887690212655134222254317616119739035248911105266097470687451916202440231613420715805151762635922284287342971046198139583556636834649641981704447542364421347983555801558008438453204935619465007786084609415027466654296297182577552124245667546656188280567674471005627467194503556457349376080217770215083748420650366608416064380785325599844355552533248013447373845110151997296386165793842438973429640380814011553781400930394660759584299732423650563495328266914095828018232633136050588633329788841101856091309694923157679993032819020234588271854402448011947675083018978383819928584788844338759429739379624679234792861827053391851384959649464158708840721663668396491709378514930194891353420824423441008550429468925631888549815972201053306596793095437983471047200868265943056363898608960914954817864444706812196688271952639574600062126207114466572580351268083443015206611645784998020320016656848042344390909908613280618166414134148349151957804901675773036353079669424571172605971602317541940198889243568142636500256453249817015921850534228053429666613902550525265441317154240321306683555470306883605665921679972108432324802163573142387618551489652815090467347062635005830017238884386182013184738433902969663663656574444980364842194927457954291985093699292944196460940082414338878700500964330705096587684714420078810865813030571525085422798906502121660204427740521442938072288317351985739095440411502134369833774981505321620131933548308513064706359054068646465164524308927642005678633221796962737769673420378014693428811121093406635150884804074626649153955742917051454159673322148639842936125606849705500322382078774017696730459906815738880895740828819271672338532225396121837456107822841800415949727355304517464125730959607434014822885868279202122378255431591892636147731308174993088142989036561783136266775490455837538866243095178497012622204495738943804368198919965659033286051782462381720203455940517183826402919129223595034673268065592702500850948185955929148969776753523688019563462464017070385482351669776927304229579976062867943829869779852570417070000821224136103819466210425943183935536444443027016786939822458172704187931884088839901855312193405674863855963502674195330634270884668956329974308905608784056509294345581150702775153248787469007347838521017253567865985985969915747564934697334057461768018306471199370128801644167578318624763891477390687283890178466497038334577977783010880836863808920598607287270782372310523453294130748561668630621046067935399406449027569070581843396950912917665788023739208948990575030729059276093269127538364476820587896579859937382644150411514238071684997973464978321287055699044552045165983661654557238045285497820560116531671101644084052975802156988345861691867142119080391630154506700823367803391903671974408612431857136512428475530057228903300196817746023639384222359098230693794640600178114525575652440210915866641664097848939962276168879900551838450171796303784349999451282439788155941175501837078063394686887994060740391001495051689765429549596437714388974678777384519973749760468189569806555372179908325864647244537573845833736135592962488186775250535378759989618518291068513603580826020521545717600982382554679450885085031217355664049091786303347633783429378664254980789035353265110517683296267862702285241256850047329181376433964075211394355610437010391827719817098769262730841795245908191100297575020669576942723813336817658780676168201923143263249123064071568357726507897718181112043711966857361168002370309362951178728236504899893263788617736059643281427526534338293745453272062303592781813226001997206205661875190129473075665010157153563041371843792146916200388800462195121293621078594750791004310896859550468674585716174275779151426484252011256578790832825669789070673558302134399331873590996210296315997445209838403453472647759860165201251780369595183320022111221534790548797269738756179220704540311974162341239916897721598259145216110856129783837130217620494672839393553472764334605518724492535345114754266472127478684628243110118359035673650213233601782643667336846949872493385669866509856015156321349622969056268776112198787497423257715118944486369524488166539331771095355887832752315253059518538134980736418206496843852355762244897867489174024900288393698739463073734205077022278073947614364787477191893601475701611778185460464880206080779478770404404596764771587912122102474999423889226235798179449789711169802903515949640243645606638326039188933128243848166407123192755938988900141044908874013563505175651645954700343332364345758580241062405979018428285401942074845469261893735742573629631163446287840475554492679983264517476949985287370260620488611606271030549630404900571242478567244311789479600001040724535239216809930612175031337470273307950089740506091759395120647047297465993494934519512524974453559179288996788461925733999533285567372625010018962235855133530287163184384150496072201594138610616288597678216127515354550414502810301226255104081341559102765465828943787094708487635157753646558157279094871819428568697692466286690387951128538522085868210852961351565711220208977963436382477001974594477654933705307151403597260157495189267789402148825677718425576512120947334378204036671964037704353985528100869057342860341818603799821182394388429815866437905630564251278243733084328481281421530613474549069903460726524807871601400148757527073251490461733391551099923311631784549376726836381817722571726265763034204002964802536611569791844890206772447560697980195425863018508429837591341574747371227017866041788043994472964992859095297300922522427138325201820540725873540191479473707786469194420496385892836126857610257824832142359516177608980387858408755034182107820128765231841207099305101220861783133119506417936810975635034477137177994288648550327253953132550416750896697536049061674480221680579318167657190131071596055363974179196045238444001615652064709009127013127112785957104498234345614829070229524028338086767350234779228198495417441908298949709988829016791205832229499182830786272376456079671559436554964954722270721016358924639686976264282903164353712366026905749455904373552283803286457192934554133329254004333214718556027058323354702197285044135998948664138277600229255896380465675291306287061225866244738708632218153959995367068645519182841390251366132893467030042364413743027842898902495024408187702018342546711302688396914232331707525947212108712160187191393094768909533865833394906004451321522596061693410235217586213850154708146092618896460075310618466786347983791581965783697317681750411497066242499664558933934184983003959286942983214336897721892709788892444358724492882590560990277524249786232588044217638456999868776958461446760411081327514256569059227506787894948850131284460441892845551435670385290730126522379790003816103458523248411555997217587888720788065520651218781351082063594143250923586045876361801945135911221471067220697516930429162254656157163050306547625534309718527373557317303875830936099335447199949651158472040108699555942152650764187666427348448015469336429310654025710191605443794368675330801553252536749706530031271827773501442897715958766324810730216451766276323507666214652932535158793844456583360581397065773958974726482958333003120920291039708369333891653570382826785242896625125734819646310205987297363152182315578007516959642337679669915037586321539529371947497449053946698034887554337705095422778801938985494184915255371479149359344942261147217533333307869315689993134593727715927869777958713619978349859221296840222487655229332167498819813461789478519350768592092033677642329109184793082539800506657490916242853649286442030055427282852364917253465070589201025786860785644729185382378540400809964886086371884820564709778541814475440396338023747252284522498465045991313761105209198282378510012382916716999013868702319359661083773519406128048208643462761308082052328770022807043944004363166479738868423550693658539173825584319326135108260156745240029007447787992920001934651519046265677569664448566554611511811250906844514061351906603888369733278053914198703216976645836260978076505340500886435105450125313902099345883075188551435099324746808609979278079224893877145534600366513070887856490228303300604013021530947841533877511205313515955791195221871237358692855186906177391744952359708873372873321207727568117118916834130050947381085306397121252214907696124028289327586003731563791018953407520125910940384456752940411811688790588178271622063416300095460878501222840835704113155371698028086494046540641050488348874103238963598881865002965235549471693381028233960723715218228576285767384570392903596046320866663648325717160635263525505664213435178877006183753845934225447621662771747592132539362834459401295726109770555862700176181141746781052498148295982168843671190183388220577243283490015190390028581823935193591050494176796776728397518801377143952374577842708798302978159364483677482046972719341071631597825004647614222322798027189220339655713816291527726511883139876383759334570052676255655690457638635691133866861311742008646333173125184344146894881740754878486709114590270187888760085908009795529398679472043287895477366364604980391397535952095706799214697306994127280842215452280124023161902807642944479481161680415450997017885074094034376419028270812899142194094163820178158684745273810708077221300777307006786363284157143868225184081363556103391933911758288413967228623552405381027645540378261596237352023995609948545146342458289768440982732909086435251188663255288624523830540601968390158649071706414585167975878372536605978704393260586812010563567144275820366541215926806257640480678201329159932847833211439520909622834916683764477684102036473793824840877231606439702328815744124729004042231026457753070096396819856117388526315317802689037015423459500004635028971463398793994489509014058139603469932733353515030228528046736093108756231638759693338241211325898308603124246540958181757487359078831660288090411215503218533262035222629778482435501604074690973845345942575359638167083046455320648394583179357117704152686945115391911864196372100627314406235291656566047367889808302444505085663368504315145326216125073878668440098681006879889943796311072167362046595147038605136398131982111019212512928251971343869358833019355375895174874063548019297990637099140012699679095530698603167379406230864139242748940845247743681178775368519223776299596848901437307710874975372160795172987700731283112222198449985472766180812037968188011334880570423771314791789205661980282800920986856671456450209852056040792513285714025453731709432573763296410465888726392818238475345810155579369166044333341122253018175646377968637452928672480606171868074778424315893734466988663293062599301920067814629387548394101652822778216553068548968331827221085561247244460007572121339806606855001052025362894921667067520039921685479767562612428440330567712913928069244770536028935184370897945873263945064556811010159509248649837794818301778634037810939951456833211889903957969176013078336789359298099749026986377544844954623512233281970498501462228588600898549383302306508172950271022889955636318323216364631558817380531187403255416013549578145101166020514295050828032384329900639971313463252147244417543261418113267136047844748545549424327896479867069466602821340514474769400172060954782392008385064731351248896548290083039277447663481923201605048992425362819453243862604314968499506391581022703392478657834859660158413847324203513951422460993463651284691225173770663478675056305339834002894200484747141678486730537798999982589801566978638037147195441073024029618447509160355783525769914936756387714068360739583975349909227574937753511453737949002708072503871095924164027615325824046321173127057637066737242716575631097637130811209203170566850372091816140429013201600774250463640429415521652466254036079006599647929685567078422293609021477597086010494650135055160478645588425835165337217228297551226582281959437058537751603433034191442359136574417257377791937561342274380848756831118651923091024244728472982194457425086261693838188782825496828576724743552628967539241822403066352621752297574007251536109409419654837919938540215878381395150981040621332115942515068507978751953417885764277933216414565109091287911862257566360848170659254744283290263960340067371950540069707075172275046531683677902446523762872597423535537035163918912375202483327692814799200668505535241119956237260960545294248104788238472182141860930583152632171191876138895228177153331847739690684981625850644035577543286375776326199660615233683652213912040190484595013153786818197570906880147423908942367823890363918815515889620010844580657826999542143839122541568971124438732310474338992098114177269260682629476601110430997789536560844337713543882225953239942757938299327746035055077332082152095963459568743531095295258671666747019666349223617152948047981947086097876584534859242347858527805683625605357163008268904836792750006441894484681054344855346924689690136789312393790707331473741357368086721825359092602051439500181628950010978721073232729932657791287066723496111878082662057175012811625303805611066331988907263230984112772457231287553735541181827358767837161036542680824796947340934279060775539440989398706879482622346095649458962176530427561201067996240278476607912105834474241609868816880266132177492136102081339810584470483841441478609465359321412075805136938106308987857787858806064543609210155718205904913137609792548358216345359252150992381209750276267949151396943911441042363950618393113239025609791229099519557374455165740162675149052712731214568891851403016828535080542756823982498634882305650110924312361729754245320665549102284810253399742594358057787274215741865749905886905780227823383290649443021979118444863061675866173671935135823929181682386803899344823076285850241456362851968573242587513821150585836605380188205248075343187210806941307801809894482498545002846024871897773937148677307825264718758439083502061170255074024620854235968625341365730979908077110030996107269707947616534416727808967529005355573310238658546597772874690067137935784045095371913628682046308437158492321928348087619556426875995932018165789254876814105801949717530825784305019649612279445315874882828885739439454203817335925605670442089729504645230068066736897427559440401636045044729581428233774044568596079346176093684063682095730327183004687194597040834542527953986510985717966375293868843648374606155650558192855402344081999280152655920277925566330515391670658681957412046441360981573885708334036357412675205545083237662768370268026737994123951304600697372660128169108993664061140964825499492971648687007544933655711615195799773838017971040015172423513009097894490270852200877629490986646574145305943662851751397388068821585185948057120251589732898612659198632862036130352968786374707175584841375829365240470792848838515953276199093794789420799501492613465297288267582636998775372296846209221932776125944929401414192922811898709440083891903563947609900792946947447579678505046867247913826355517709286116711259494177119858336586128622504900095191588918325047818478728638184635456110916205834884659389824002147550327298562928670135200693294638013183013089604595283165254675011750677171601593162497548448244718530953910436232663360888618723655562519947390857801746543093647936118792497703637368352313869523272404213582529397166325739163720542830348911853410124877147621500281266517375221058426431286897635224514121081549623465988188370732691264427051145059252322678109737670197067736858133914626900495000837719028236374635330552671281397921367002488511341559505869450407418902949568915296446279143499282546706162901209351668142225969119055995062942549421837819027437233719662368599509399537413447710399018378736268766707470336851174942863306547571896815470695086486280560247374963899349397728293272199871130073853711714028945516043988991828168406808566783079651203277855503999432511092597531827658915377394156925733968393150510776455745143846849503364228338438971444905869980708343613728713168311371851603702077384673003164627061547313828344112822488127923552957909145738567659190316987424670302195376641371728825782747525808454320050771661024893135929934431868182100922862202513646584134617725738698582407304683468732364318065889657227307195761620777724759272521496378705256637638793224852149478573236203663977612751308839716442865081913651740719059833322108936793636993509478403113522827120780307789070422252056476544666594229020067615184721873232162722627060013309420695403383543161711406158085586158372354598432829285967725948671694220089666209622547521066875588020335165358900099008833484916829239016491942710733274709870256251457995529345097453140683291310581539839339601117889414785689966191271641992586827032046759695222018664647673067261114486019400533799742162532485684734589378183996827036440736837459119958555009721320246848980683536354137644479979154441943260377903669904686785037366491443446026092226244997420630762705337549309061978560381606785211849348620862909153467577149482430133354658047161969702107588770057174536787474837513775566768407135199470191984062118774149761232216831073126361825552136059466558933510971872395549918547449800795556623273764006839935747509673660149179589780219947944251861627716303638253247797400555300233641803463300030538692254768309919364914772609235313251039481270538282010882956606857955205693137623767127329211916872493010512430203222396738102873447302821126366904165740768644149240889965624475163132580559936504982621979931844204015948366395150792755208959919774617405715235694135727528774513469865290122723102945377414128536433918347659376061420537215481704173769123879764671164529539347581536229664402205348659736214289762919917078993669093195663278727770261278818717622589912211306107849514740580085514465694618432704550885724492296290381570059502170501989531491265879263339437201119682733168102225499427568585580591447152227461109144653280121948034454085593875922188574803782682776181401060474696343480877509221490905978022497341608560108238563445271659630809331684037626032570909136307987232458788006057594005434441418103945555265377708472991916173289667020250380789327797440140418581421494010823377110306422008005326421123988781902281465942588933931594044248053941040740302850065915142623835721234040105479296463564139568305225914790163223738625709604706846275397459633316618603814047804407312673456627935046434237403938293944171760207315049852945027763864391216120640059499176347321038034176350550477826275497492410637188173585359812741664934650048435775353848594159296414565959540370005690004201439655560996695725088970035551597153373990597548616710294489528594989076438758266930575298380156588870482409107705344865315217765013985460599196321329230764828143895938899678257441128384729812670957795733983957257449043436986146826439062863742011861323949762017898899432932196319216375537455576446867647856366279252760962730761837342002688710596528089608785585585125503553517987095542916675560364774435230176397797702440430876461278404938472163761741768201110009395413068960313626958086788561489232689621897510626882494186025051836412399448011539957740460166170044971640928535633397244426692364499102777354601229969160138479237302727766990241208266591166954121928240586494243264261098146432031629919223994032173313463236035197660382778922008232356251555351870047208937348122473067587975468492603855253940210601726437617672061540141620546550114933697876177627901964390729269746544797826433437610370751888585871142293263877938811738415694554369349741872646545550175159919162055126762957528010478491904575005716326934798749369724702804174314273515242168785004749664011352209677377247585554342798268693512338755671333386817686236750479352293626174115365351482281872535493117330570475610527699702682248939446473119578913838555470688156829753443819236616139617224104898891108552456200059380130446934386915895232888756892439162843402945369799657413184172064901467290576634798331678562086471065517306344644839271930363819081752140747968502479477303100321044975880120391838762633457313654498308781763379922806329124088354651410837955134172310603877824794229675747167207025506041134692832426114043243234876576063458699519701248525183652248478768180515500033724492788911782454567800741859933804683321959143988930052575969443458082911917234375962180716363208303440493952838044837292538569414643390054080432237483311671459488454632410657023720979019567969982777876728154879891425754963912087744386682145133569622792049183937206141832218499884434575187180780749218845818494079324375711410990717748553100901307298223633661386691164153144492917781236087892928410933564437362366617172624443259771646068202706151095490072453700493843336523996242744220240000797214555520613096440425654346280777365367605876242449921427794976639860169152521381508120484392007083131143037354755582153816034805447160564071131330326506829003940718585138398567782942121766956206753762265682407038487484378875251088605179607116336062730720688000487366684865285979115808316381688956407107646874884004348969066805542719944350150063051503052557110987800601808616283280700784324664240441522485378707366944334826317465995174957714427805340129561764755098648006714248132385367978357631239351329423579581092454109458259667628603775672594143104770814301367817410188580118984449409643429736037589931743601553236316994609152983981950732167972041210953575857422386154889707937523533320383135289290671265241809451946149563658171356816434610661525241976461233022604295192244027511819687177493528170782897481538467887563012266121964365398208474362754367278823809382512923191412957018885385654589579402624048610001219618071837376318908793836810504783959542399950376452847987726012557825787113741916459509435752960337480960222693432173204737381003718316902224515482166116367024885603750677542004785550721156466032681891247434501217597596401627548515907367166861912785204283577419095703059901481720318077899996162411891759204455916770665591326680645170985076833091731393493931304171851037409405011000246703395583350309318462938744503936800550924809713341425721494104513529411272830815927348845658496291360555916538561494459434997990142181741656884422639730287674536712117430160442960912912739680445659666971406875426766628453939633802651073914481877178974574801348218863707770183452120597878235579392412778959301462581394316880645968895800376996975974927584840983982730407767851384437933919134851734545010070131499382210607981071606956007142122605150973344364117726034736744061261639153394935666466179567207888572940174062456623033644326968676829505396170309649922917677487988410041932180475413181484548216471959414802471810126818745687672820155372671733034304592098208979903579431155970434202746830518491770851573381039352538761393907527935721343954964351004167889996407056873256294415810145523579400456740571880469871841479220299774671925200445198150190978645571362101552757544207531535447082396105255576096360799684348559600318087327562843611254741685198947743658945915565209632114825874644011250011974197613261642429272841935215579009317315882673440937548138583535117971859956130552748129079374408123366522708653829307335332786174145528709083609021325607770538957477539289452107474081320592624574082807248552613484555176004089190212300410014406929149531418796667267108751583525802594122403034498570070224459456424667563204050835246747641516650913707081315675452828262258410656120287741923145095607283362195519750196811501452479304505066316246195176103471752139474866491251362581161802681401820021163477091524876473564981968518945870573485963115702227528603767918167331969308629617607717969708792796449095996166869659009371374640629450324440000639574559516903054038517875549666378020952930503592287906262880760771430311434984003107989752424511458443332279582546759744244594104420600417279056689228349709369212923318534378159311195720400024868748292244514052274768362714621867744950310834213614458480234925402076294107761032582654101656851944229355078946535105904525791307270337024455832107802308946597229021081118755964402382756893051521412539292410943266700643089991466344138210051024437751727555705123089202233105145371745041331901006957193787047090403055526177373578147400773611086648575708108242729982319062718252496417272496604342834281784288179460879405430769514904555310311455411387580172208578631465286431757409822705867465316999607638754581022529990383356500620383105136903386909986762759322943891356152211179297078904238074670973487486541913572116537516764073053354116761352133389698194882646004087368326983338946791519400977058452024539158933992891967647855046444438853167848093121726482702384614300486012530453497356741653124274369754944539626324332089503560663810512480439025451145791740975673323148976968579582089359671325887855498520284812749184955674573437345899253626329699278832445898449858911711050994720107355810486688003488350656302769783034071446339978073277111339614270423507424484655161837042027158506746472089373030926468466578079273719311956502182866931776606815880885302814330484874565101225680791625583675894131049657285518062338750279423703229482934448770021049681820850052607276244469663282290675316375128551647481879298792099334587926537585196195595549471167279761977273186409103765671580582747424179180046208920081029644766439081276164929957939666224380203810985939039737814046030235889441484151873573606579258157547476580353969533514947056952519551510434238793942582593639859500162601605195168738165420318623252886430192010462525640743559876210852782376686639627318045818519572915020530497670638894133031966061735604344893371545057221245402227347395426165431334698208112372329090850422952377941137889895306339985907389717662147767915745324316946871274436663465566900341759496825045207555883754457432106173684156162340144731469130917901910670964843531834096776467455977126884585378757651583877533431660164600546610139859465414253676879694673587494554082511201207314752877032311737984017287012329486978940520760555943768273249342331027596758101109922648819618546644557055589325466553212414449899309617551081010610056315946682514864828189009117333522443282018985807527829394184120254947604703509010514974875887413356671858654498726260497625317958623388899684480073188915575244668204630965896728131560130452408194682601353802495768269822064563795432945577655335917176969923540117876940183739403585765602015840501025122991384653499655623702198953282112225490495123900702819298376038003106831831313489743482070583461587511634164641031426143987095203885681715963634700113666891556314765817513972971265776192625375452094713807895495635422351088289692398018698201257921266451294084209250954661852392008340333197129423437367844271538751178387902065319574201345517584110316617429491706685892810861886685802611016939113309967865172270918606389912422957293133329150379777486394029533692139656010750784847451004145174549554135742080955809738949656896347237030900950419182682192445199371099865487774249944058316795501998674533001454377690653626961564466917377885467578057968533664809461763112277006203424693863123248604007613106379887847819293316939211403884572844044633385328047066282527812461445681697153612263105051032925494196997132344166053413535379340056710598958627943463287489254340857447101687104024137464248531409687434971028157157774228528593856277471587785246553128223341131432627679397840504323689310971263758954891970049914250559281334211815177887416654816363754990562299688440996549437477812320780602398379108149649919796063411852041883725017532097063777466851879144931012361655068823556421721848556024563767634767805570754352915566947427826310414744828924659957638176259003916022260661115569449392706156784200035195697583196376025163749076669393702138687388863639102142001737661514086016203217305456062560356513816079466713495138954438285706783532301290543804972916137269201756385229914567047159553894457545420276512109344954683135811838266246841078313140672154629873152226987647596529065684260667395864605526818801762377341162853188414490640177973499862204066560263982723787502202829649746042472068949170178235397417135848653057763681639158992507461031448469135587908636803616887858215551913772985009905750124211109226534397658911929980354151012427202262007568261071014919462454292291565697332550155298560689671220145422740536286171496773575524489177093197441684916957656833725105265229485909286243732675413828688423352949612996972284348155725261083930210045341798582883153320960009897311152038199673970257912665665047213031475577471391809266904966626418517053039684608254111746680123119060273182367186386824304180141723679396419197593787633648017304994580721111330329619811234122476586190188358020179254751252612175251715853556295135947330713119565951636893936749069290864263696971012138620083704405222041666268748528405011999199353438155785038024329325806656104480761350515100542512458850450654996407446535678680518353342420640314462501182224419192702831166450039219608397895042772362587177761594673190874578889184933095156228690741539613363480427334041816030337540977797769322146242541918598927136976716849182006002636807694613064840991507907648943724357873814166358617252962013713198574567112468720247265246896426697254817468898075321737505029955105354656091626388497574871553060044419605644855816011323243195419042126149781988312643494606091950306193035179088514163402733355962612317073565076600340747143578124510924171938643765620967017735732059123480589972743033100957157457515830242585556799063840776805955938506576652085654392316313647707937061799459291112021347954283417746784791804907942320141642824098091448199245113834739287202245431897420454751079543079117648812359682886736523734046751065660886995662612245580436649429072037761226057621053630386761745276571830533001203239318550642981425850128765354938503605437908439087211962553652786429141612721174231105727378900321676556209043491797874044784673270868582144785416549560029269277174539259853532020908785543442185563572363859805621831268095672163556702081959163410646486692456275245761089056538408319967456595885376371603100794635512384662949566897049620051713128027582878955382767352194902928896820130202424281300544368513797172018013144491074740409307252978440031294847282726188019401583781391238360945299205489453998901692100889124264620581623937136951914347836366267653212587924755228189157688227819144856580963237301395869822625752204689886000411435844202815321856884278519461856186751597751005210267937946409003643196784662674776245481528286427754678994641987711624348275597269996395637654835418388016759053100705460956367582625885643190100666783379876377934640711942929341641662884341458213438165708829157356216852551427984298425142953765370290037751192456745185096161199747736113890740762599878721214830246614554691947581422630046614465645965529762996863688186782972827025738104212206305136027268820368908080454429895158982894151772724512395145851641848504197210747654347804627676143080513966899873720210164861834506263230113469129532237878299637095871238037106089316541920783392531977988441095720145089352395641820532284171008985586637491889054057366009072585680568323336096137226717411859532744874100568507094702017145505695631167857947874078764614438649106333466066215247021584428313544346527083584583138427152930594680325609073355494492150121651178905888829995095707036170445521874648801495999155713080657067542629795148507258211801184000699665475127137373011041271471169961565956903444299439319763100924920936734308067479469021994966669164538337262573234204189901613484169419007635017652465472502092003502817482838320224865571166611735129786830254742021466554883359184146521510095053814205498894106224742364264910912912360766846941707555675667220579837295478828924298024984368873132962395372282641563105597410661925417129762924137670502519108031831224330073198654392052191667369793235342300632286895068413979984174641522692606203794709501149517532220716229747517302510794911316279767566155039306044951601588811952020646153699127823200086296094397729063962862687261327112491126875973932227010090366001666553473978184323219123601138312306736525126265055516084882512846666469341595089046317874178359308146118279413374155503600153907303227647106951118840346319464936146286224584307564402891401245708155749483895616398400915721721676357869916027549723215801352475297009271363032295985208732584147545943529929666166127440929895521099566929219952180195964891301797618474087846377025104083501426075171907944279110659266399602894440747251127905512260755531547743240061071083732022094069069453330488751517613568390809235795380758672068757474098860643008655729246759177084057001626646199005660356369572482624964159925771279999374439756456079363812754895362431961812153439219637060044077787252846804822838820911089098779680178424451255623218119867562106008961578098516188703795738290565750433708961073509427695820190947480480752103016552061901819830685034600185246293611677359139232141563228972991721555408151075574331536960711551570723704407626250926178415675528495422158791313043636419544219451531870283298964861264137867343405197229538421614613175755953229379652993360146609740054014377138445494034889304119608261242498914398663368397568761821535900170829124984775222566689629751101804554580430479002988227200835925919512215256366183991522426809654629903392973112930053055700893952782036960446872812692621014125508232099395569996998721319094728152148382377027253656646131039902176351879898066532337499586600349658160404433334017770190126262546363113262732451530687067841856439238386944696037330104566414782636964053595290390377391295977049402013188233777902525533577950549256012133371442580103362807709742682644907908999492469337379088391424930357807195461062379838731623209517782516562614570276705703536478505140758507069849174923956902394541842158545702835621707805148634878328565826621687390925219040577617456918664920352273340893408949627163225964152913338078244361672755177369895023026677053790158932649867344853796221871912208782797889907757701725266533526669998815501322745839706988928681940423002478411870998088817664476337900662311756589568017076614517249862111959635802694978943216087946969522098082011062248273396128946992116668463239323556127754624791401058462870643418942184395791725621568912223715299003316911935981920669335384897729525654942968211159635503213606379561415440625011886498308861246786442199995733813086497219243935088685153990626908517770713217356164022930620004502881386917397611477022359586402083066273005374870181898382811215665780114159361152219919473098464224518512683148278186743912866827863237500535070828847389417540474246317037970339663832141684753012947128539120890715654474853584051785153340998121711118169374706980369291580288792913555173368464857318007643039120304859883819363665221063213302354036779974059950497361206133520079652884685803205446466399001429525176394449235643468991513061329436341577951922605308437488306299493594073090358156376331673261335610808868671418913304736044917632891020864503670914523063416115008356064991357252905033118206131523280697895104521079739016697665040580210417635363647662237769373038325746472305302722856579266024718214332436583392811698037516244042743787998609224798547489097778213430001533445233653815883759847092002372601067790791313912353787002889697370640741882370565270167731852105760635432114828430009254590127902780072123588571331852965755514373274346178725595167433369600119277439669048912843670047155938510615637276132021447264801277018532913179028856037366560992027621351299322773880749037615884529138733466367333612448699633608476367400542365089784980798610576573807912386033031428602193161954429451697209981884303367020147160750761571814324344064137501203786505420718267273377629386772567677153795134223535368109006858404019690538020405445797324672342803343658379312658106073365779204345009820665939595513997355956048731709104754650863384419239138560414879377759804838419891133039080358138262751838812186627462889082946221263654251338820275380685664552075977802805099051443277828571212563756338995517881608033578843603581641106694825335564906880354000762747838687521733076644850050596929729758511726808163531583814684892966610796966283630713811592309922336337467763228860044666433516419402199794867523625885381771970587130996086799736395862604478429179732420251363965430257620271900371084748806674225357304815712964227337881566429726421321726190873673193943920575905132223080249583628092445317451874670341613957530763644431868719822056595292248391425524842624579786135504321923405042382037618047451373503191753666968154158454628439295075144736210006296710999525673392598980739325154089238089203229525007885837680023393611788833595243500104000510977330307076966113434579689612440775464666007851173281894070531883451725525717468263667838550379541397900022711228070574093476938000095420782400944035366825882142686107726190763408062677833263006600494463318169483905627719969565995488491689216881269344914106095274830994264168803176535412589916548391087385053687843866608263976849060069204431757325026584126375100938574731612822298972744054817336386110339924149736611278731741970077998135868792716845243585176821530765746135083498274358993960966673337955124733565018981123188087522683317739997589697510905834966420610888292394635378327808695133396205173527859764765057069524264209485516469529916864753686039789588420158075024171029712636299725942817285995533141806450990685809481342105365345904097305672898938668406852015204888847075707257746568954600166009971532466990849719107146622549003148239173324205918442373298443050304056196481773660241123408980853037569495514448629745491225527638652380486632938970832746637804814918545761718647819121982349149998364468108729137267124647391726543677020560312547450327723069434410578408678158273837944403144045797924484165814539541964123977196299870927340822730189215816065819649896001821248870618404390692597397691466837964301973897046704872765220894762824200842419249498005698012775025521612732347242023641149805555275317418090938631491105819151864113621892221207891064689051849618004995582759226554389187017033787344223715726663888246775529682086144792450844676004163804271179204522256613558326281476800989176902748463626105804361288258678142005509372669959356256838357678363913706089974907840121706910887981942245406217814290916121134478447138129338450218168412007914232469751249483827575531803491494156678325351536323130162667003802798034172402834038747805446748886348038418420097677578785478437624823141227823766518764804037431196441398929474952584897390010980216336932929326846109232348678039439519614012503226010871922321688035616843770081775418385681823815890596875286584173990284090775612891017827919802802828665392355846242176890968384589797565796408397298871365272710340591478652167643213516407064743822591321952269688024920904020292676355224583190931483180893508387200679102469068637741925943553340440379139287075272891933612143590286904392252334258944116895877773581849390837175202801563485108269838260297570510586222406499162620890971436876790400130749756866509880182257416920442599187472511014350427235551559009318858969229103394564915116723804098151651270049788365044922929426139529969161898566272777385889689629399829002712560910385922584634052791441226464347599890774111530158190224159403991770271863627715640127101756049116005429736004978009484655775696983488072210008373687157030194110356764248937614220883593217369225067035052197391144577379187014305763100420772381200059415695309075804668961144561613818142981001518635478486532256991944735783198965375551895853607218323429641346375107384404141831214635825525284410319059494684312299235764607316841609455288790925526949139859295260424235726503540223206579838196022168214924042364658002885731443971475248815229345891346477611702697443335487666399128051511643258528127494557442102294140843951794445307940187302450447052303854901138301093920261154512306909144178220004363151711597231616191544445805406128342676536271616197339901246488833919101670741619733223866634140571319614127370537150774590552458588049766063942043717668984698479345901314856462248285304699694331476692183369712205272807063163208241046796752270110199511120116734483818580642018386903890051758070773150563303931647412590577954654747321730224676558844383194790086819724702938229408611539087609563119256414550617522852531186384597702973723224106175860954746287974111293893742013910545594984937062695620050361692357678303725877024814309500361582856289953139898518460604918121132893089497031994835663073299440041866734670778923174166200647564341463978577912587630859091778294397333908661468512066763534359125999746425513331521180659023756994995658710811836654371563188307158112724632050300854185078274470127828036647988860392269530016045340199858827065191769691049210363672898531097373379464219542363474431747975707381353813072164098751021209562472167995722883674081823225183065923639038020585553833833580898708390098535676413219403235837383223128517484613045844767364444676633827248294693020174679119999339125220319359190808570738629646815820343625927755602879329364094563340679762084521923721148704308929403118289220316933404776098243888158337477620699808922038592287687862171519803935483777810412308879391782361180404697498686542802700569699371862661051007916002453576182762395892209217118747812297369198137684823314276254425327057777700150707548756030146422475530747315811745597819419911482019632850577358548756509047553825270459577267241037013307588956339605363523420751116219080924762943851245711812107725726465138900503535753230360812997535540445164858579680746815184369389132776231903200585272885651547300365403632416271895616143384737911078800307432551451845756838343972186063488264036711729043828403198128950721062382901741465273065243629337005344373900252260750407694722046971778665130810928078354772296037966647175621933952150149579385855666977024274350574616542464581135888122925117070907282059568296079479744979203603547643861047423122182368462657739685761655120691344492338671719340880265445496399191547708814094249700287716140033387240714957834819148016052528196885172327788650954460998560834910136898165416038641448376083010580241041528854236564894892057664740819645610443018220985499537994485378522939524107006178702413788663984164216854430464488815373829232430392955054377232511158328497465675666852461054052616477022984285756414205396448931849551814410391787626756788085240447407637288300147230376300898308472500065102188837799461005337947527331205187589068448177072935459157049942963629621564004337883293574039759052157207487012528201478953886542964692712238104812846961244969047446958907057254664429993263792996119134203194365736506766502879534716582250019221098671757825175688972712531971302320670331818497625880716573695776777708177847660553734691850526677904827095013611192739536426204071476884458204141267998522499097587709871635438251692185376433817745666815423795588877809128641561749793050832713359594322917908591947553964571141219934182626834072633481869819844948328682599931789147838314150303470296876723197477383082731054237455986847529642303159678106813706833450062561413348519350478320816008973122216301723657179448520136681879412245780251378155394136657975626894611528216609618903538236939722493434743512794607316093815344070483664984173927906625356439527147792234355136387996747579443406368449588646722785327533964167241233741728011809468604618651221045427783075951777761020787163881070079544777237103748251186977503072419321731984058061158147426379595094015419477062346356142458947550685506269099647559208868936003583390308435344778579531196374713769815065624297215853414391237356647159212407525773385832060521214690661692345404338400498170561432492657740948531440752203977512436048723305106095486040786032991131469521255950028448369484163169050602734436157652197566848707802987827401360053183752490922089114727483433612322597977377223331401773359189022339725641603451292580160807365228089999831333974982128286342658991307154257876563236831934699149710995173974215849307017371674812982934442881089461137193899762832443184696987517283784692517585968271161082808241334354478179506831228262153701579864596062679809513355916939275616985175665235782580152844727871694931503769499322366861821273356502338419792139439856389212186242183157937150467428549427800918458173247242411306405433788679044567472715746506285791407675540121008643567132786823182059587291557309371670826501984916715115233593098962413545475289652156799336015617437789994546976280632375064852436973664533075893018947819816236154762736964228730770211824149919715802678980872444690039589184673289732168873650328041835933564251323903779329870914297732291972213741916763358020694596918137533647752152134537260305914616575171416686925824354759661303917666920000656968836439480508116357977182932906742508598813906698336684476889780325380427505822977193249022046581767654739036144725668761599426307191788479979543019511408807017222317337418035001725810261180294715285316899311531561847421483813295437851101913341307967720917890379107352998323643408253552415290284696700232632425207348764478791132112640672786869270699424077408073588854329976157919110414623984580597049024257668812171841032700314764695241611394328471661025315311654748854906339895127230554921204740181457876537291736887939204073963035844953845186338622074480933792627384194472428189936425074230128507192288514216714180918877092514993915914563631278095800417026482149228760346309562236698890013317218516427907558573296985150243864425034404531615555327207222697775912007932195236897067924006107088268906184400703010278390293495546000815711123455249777792691775262153404116736622734475406682440981782721062786459003578010715756313529695788142226900041036998103204218023990702540284035486884675151963253564303865852523105805497329721471142789821639061667269018741191555827064770005957404694452404537582866029899101896909257186428701282626852298000887640892796895604098996658100445282667497803314917612204841085235068124243438856767074944291078057991028748553039712586313115144271557956042801823611931531505802560291973824666344346376973835098784887068556738543105360841748045852815626415814356120449463642329490775554159690027878482220348579506188800266851781912348729635413712624344891640478528715392951231582137650435858793642154833435711026044786472650079168724139854135206980882605421854880160121943506643400918915662438850618522061685077771481994352567825553506218394665591778963827910020674026191408287491149175147016354059519518286587783919046089157953444181460665191088504290948604110643468221336366097838432498251294259812726313399935687824481269377930764940020909643365327363131181856864963102516694250861988595231234145993150089970843247819293573183359535252604456091629381875416870816089126600134648348650815423263500834987452721093775085260219428548663996409891117184981895336537233616790087421212969374063777242253792967266273279852293616201617613664438385707607943745237565020593522260924998822047071477547445047877889280063193764063896297083290117419927944663904065995542250994017704841023460807040220443565292559718314006006473389141932629414466845252950307177832529542314599456182658730721335970404900396656617984658802804278296738755699098398900245357078151269529878034619545102749772804239294293328964576187519445355782385914450896413678619891186983821957058007444569294467995851295991403267850341062746081965032510292074889367444122658018301399461081588928926524089988881354769898005396688204356054312349255387239855548776670947792870747596908793653739790965421720370064382404385562710379595557285183443640098403231942512163887879198306834085861085948563449363242121868297932726064681171068343223596493787863645734250580341045493361917434364833987254293742378943466950603823934565347918663561641274831767284503497972611054541959612908307919816038541361973545790460262566008573724371500022931320888714845595905086564084281628346875637552802770645697699233045957260249209906951186883373451430680728799176147458704164231201323416937238536322852516338503351902976443088218031800363518517300591027337972167845271724976537654198646138914781900153959449093860264344638781325486002338958903060744850255634507635203527103980592484048984262229700123100238963077831673186568903910086091981232913300714558616960852694443674198968359466193016529614463414370541153720491414991755487682194697571699693734943317456531618679369741082197411482555020492898596702635512312043947139745348404982038496576507176612179354242100661602200855616099864568744018124881909746342996478262018339913487293603218869358454603876166652631544463393030064112578071155390999184469155245195394640684577725811131519017608141771411462869104892418206640933353363147005146874356491227859975832139998587545579889976856495427573000994444563411767997576878520464165916365862061033952105622144130373849741931423665008961262202949152279362298071059487345525589624956336315717119738099915106784736136034725684990805305741819906489404571446002492561604004427542132855536296610463719132237242577397103159716792331102933301530227713484399301252439489763797451890543661023378801447541561534186418643142242482889833643761517895105436964069953267489498773305612727562385642945566206167905230622886821495744960374147400234621335640557085713532355642686936973955435119791278141081775822098379001898219351525137603413156670035786733996419990545377264799814374127856863037893733475460384011065008018437015756728593940301994771677827516363971199422041862153254581234990237008212724824988329540822972676265214280572309502980203729621912192664210008073712191836810755407184407515100364172591773164842107759571426815903913980433764134152368709194948915233210393769930991943899451052050347987102770810836441220365903107574007656272585052635417719937544677252593525140379918241773961258534965707954377818990876890439560395317002608693656427499826229914920602482320775826989639461112491890867240727147758340533492554509653645693042838540412205408577423473417404580618148354376722985823365904535650791989586240534521826472569516542023036165738028824983496376552399625956181869828680647940602131175769789560751936530169283244219861902361151930332812376407284456029851398772197253804734627959263337601585024085628453034358850145908883678788964570998921480295481851748574996021549761650138866381187612917961658140821836619572689884829154811455418082473192741686760852839706593619135775765697451369778935138655142156065437727988254241309668775473017903497872080652636662569323653769377413756980298349001120593333270524825593276191122620753612254066686339046792208783161569050202164473956772235208212227697602776904373663074366164952558549250882977590362805333390797832567799077981128900292610311361823169477074375612520583450328236727482467612467803865122660542360621562688964275566996378966148034254297310348178045139457939482209460695543145436207192523341154117286924663905884382402938034070512144754171409130038611075996093522222321998504924689444234856170822062945962334753523876247692517340195770470468987640155998486381069855069213857837939111775360729234328251048970200751015603552420889416094574575662352877413263941847880016160510652490411211655246103555292055969479723634749658185311515719114343428730566676249906788388988322746929984139342970616191479405675925557253337654700840182069877148907700635935708609090985223498187114495332197538874994558240506410993647703893036738561386561548120114041735212334595697750834560541168761240501352892892301878181504740788719259662019057686976556729216376746798751390009905166029579404693276150062406421427967782433533008814177404574754582199941174404908772476942043652432926977264638877863702647078447565829796436186818671465706287804051241783632998742327674356191166801573272133944839560301401679771459875047693724838725974468389908034428470854857568623271812145643532732712397842403183823607618537932016109080096527554684706271299785718896578954646161536979584003907446260993860194682736605861202008708862805591460191516143559306365227606717781985528610367311116085479299617644741421557131580859921220091341127002742383723209423761447552109606385513216169234900201346450688685204733792413645087026582154211636112064513905905211608649551307503187547951981606520173718628663832469141602070620896633350484814025690086869210507547284655655538459854050892051904461114616615046526197952608974502930362570873529872001940826681948105858606087380678125530351568547427850064763684207300561422754742150069922353283916964143948930221136484759540390153252338037178421156375767353557307426587201044098934721601461475310975066732013224836670204098985229458688500899358342304507036878726653976190361935432931650933070542084219345402555148781002177104987637530076416984386766014372331193234605889340444614195926525971510616422837599640158942638465093647226676235920003973232339086360978922448050339021466087642487532175811376935645375125712078987888732465096707070118402606560800173064725850837820678605459974150162185775842185254673278875500493155384537587679200973611159521506919268703225456097171707205737553028327438250020435811804953067055830037769515933588956605960632463066393279729058699463237292099851736373320807423403159772188372424638920189490994211128367270397995693038676503800036043782724258133039640833134623258410941546426091625016693782187991113250810564775742815992362050748601833890650836640424960285532505421837257827704772353660080145153686639934111484952062413969642255084512067576741088591608077414793286891695379966114407997957310736646925506028006437470514145972200013118527857493619278696734812331615350009432697560366172716113213451293484449331251978772006676093778874755723440860220309573544553163578138415062384046740420395441825273511296472724023892098213453011059497482792678900590062277886096463117728540411445309581214875979888889400943576294024817019083517450728128294067890563078813878886079894996250430080731337788448353674117295960940705114859990818883012751021428746526326751976226431038918018812201699673800343149197408882340590882517993691064875561768737255235170462963173234603794899226929789668264049086270792127653373442019346628356776023835812597459828723756348477749208317239828010066338129784166071057994635230909097602632528034598081993442989038094999738556105590753062665843529784688389761559800037220538514693131602231555077414572197278601339842133264449490831169679118478024730668038083611287082376877849311738975493227300032141242369203008616710480220333134399520619908602176630628664314946502860706424833889566978255238407321970945621749984596047164458625297438021812298097296066971626834010027247092157681951446222981461687326723677313964110872033079441367573766054942792069838180366766236484815275258053440300888083986070749788814720986941629143484958786455023548971991830645713839568677471184255991850105488632585311783044153092038453037134039954680874126082215007830762036919593022333140846956465420644871427230123803747913476200939439589032792040666714032812598036843937102978263355439257826305620235321320735124189873023245351767415888456826753755182061513539317515748653082823116159848549248904968321559743179524662595892618988013401547076439991819319118878347366779025462116662588358625915259805520178726169081608441125608587194278784428490065641168552649916258424238107648061589718175251025786376926590995627794694605541321669982041301408247313857552157387113825833212792887265612825001622181029288021069805754627391414513078805477641443276047052725893298253120818430486609094437140029807218031325064133308357407895950741745857670249395420580422102076034389729441284589495809595999100148157739463962275245335583978395952229240524429317135153540761823596928016352134360961137485772614917813389186211609991542416704025315742362968627009279953839630056696738948047292980907289583008269121174739077722976420789291773788403382270009310112433269902186649106649838731928090237687322181666015269309523744131084453492582810547098591689596708071173848271929739340635767511551609806188764431317846234827618476082402263296038956530725678108307017141352729484850771135285288168510357788138863060120844662864445350521530864545616110599219604279354926854821811494290238274314810612714976051491507668421322658690916654495674251439506404124786912588710748820140395800299969393068006939228047245273336861491908271350505810733955695742364847182538810552724660158187880869117453415771446360912155639441889439500931832160201000332600991854292229720532855455311718500574833283423029177143311388109974948588788238562703657990160462584176373355809631917647767218619689544485333627659919013863051899832842467108086824408836552485926120316230040828868401599027744106445039451943128730882166135485766175207412639789051164512881833101960974887695024846180193289010878786658764558506200151626950216994318228959502602435017334625532603514084518904802956575083894870364903410259609139995380750653876105876754270615359511887741848867284024617079272083469513695139970146551571595233323975486960953373261945467373149829744542043193111057811337434771995038654040234574846603016965817154003930112428861807615508369989526223105001662738693466546563145467571027937631766172696155408010726285159082794678249441376656864860164888994137720191459713478904379528525192573719365875239035225669045066782973563091514170329864207133735407438898050161254306697458617545806949568906135576040070172739633257996009405415563730290981355642715933705846964548336298334766325807089242344345216860770939627224544243961603519992779008583185814128183169047833447215733760042199311110408756274085713988564082875720701116382239373362965114729024597238870419825083975884869597557179039871013242218920834980568283496345135695710950019703371691098965463434729690941302570627156312002277422095276385688941326721588618181024054624609161395166003411759187561350157056236830068920645199860316220592032659350464902257491087537075580041740571998974832097123412733177145509860944987763748344479381593831691521328528738147696411978142136561351990474381851414647578029506810708564348817744349087868900800325661080915757869189412226457540575552710928896327197927611554879115549343024253679209441989292602049741076718824650629433734131161531168796830387831029525651165649284858231988861381168240987427604681990200547211594537981477026510195154762858314777438024294756090264812410048467157889237877407230877169571487449864445904812588329917268159017242355122439073560954143612650089656700485702670278421536772411841434766953319216884778086794659233374379884521943817263885241029848951387495137476809137384717889948909864163316850546272259974794159358584809364405342410231139176688992254884561688285535310618304020739997692077663487431341949939033965088270994025619432522347885838517349261973251490642228167045213571736593769640459622819803422071877754310390508030725635981817996036791756270251259693532653604183027066168855435459187680594639485735500436406816114436154344487047779042210983990894507723962946434077213621923768014282078545277579933517632805179619501747291375418826289000086976131765701168865788959108151589035059248450213759810874676028879291424268672727087827573447284384960844860054420722186057267165609224723934281163584037931139262978468676858936469678228338645608225310512616516361835110533759618385535691335401655411942294317083391582513972513205914660302938934324233092795499999426992775107923149233802327843786833084962472771302360103892395290156322448855404590517257152034451400654739829838382628168496517913375814429895437281493391976491003921312324586065276320864136452375276092650158232937237319191755477881755207686150510058158968026385385519967107063945719608325834755715584510851904914161896326751949623257094046038884364664774052767904594956556322147545867737545557255571586477833298505460579670983679262909521866533942040140751409179664102184310270602982053832188865061361351062443303446127442374343055322194537757043612480829958028256973773697732480411095607841020652609924999871253442422055363092961855375862998840212280027773047179081124570643514016043828204261699346421929353321274870381621738926668848956357270463742237420427636160282016864123353169672463216028235950856697148806003210979430398122324180251026490893173961400651884071339179093474923814012725706581993407759994603462999632342640428206419365123069985791098636777314615656331487124784765101560162418242146457348388488178648182336233931330576945217407406372789864225743245007424684696797899693704730077391337625087478116440866984212829364895681762172121904927703313645776104730884296969691103840536942620003199452905365988276814282075990595012086540967364542822745863054797871916672114086088644376731395917963253376729408398644070436477636511479879441481800980053547922339867999224362704715824232151966362349460972909377387678167416016087431598424442772616797586068494138955070985585322593562887332245698037231508917484398412875218383138096714241604201205724768835659442968123909402574101575588528910416316360710825374392395906996922292211302380399106234734022222771483822861099233994719781085782335032042524213858367364092350184503196838873476752293981068621847377451971008402541715295295857823479691193169112777245816045692909952090075661397499080694104343514920548980597701060294842024944471547290720774294665599190484912897516895017962577692937139115289597769734392750699104100087076119907537099313836277057811142489588104515379456714239363125648434393421091552420855938462655749546314863812362442232682172728257531120438803561392216760872644333942310196372482661761899956035095014694547931965080262368402113585251532925775330250797483031417686218958276291328506018280020309302671982594442137202126608556950668020835928355093387996033757446381007000510263638472240091535913135878243667645190430068666931077814495430716398238916209858898909135941281634582526358126938386427042249034942591009455783797127116307261928478427291808892009850845273255136721030820864060666633787469007118873075829887293812285277379456192843739158158953120644050822462940267250133583651488333567152231537521456354563414932615562442191628916924922725409399268054766074562114715914160601475690101957995379666840969715861662084196308189971252280476310240872832602459596295818709367180557788016166814510445843850538737038625381918515501933761164978861687970807803875818156958332363490404647594531478087313678412485835057649795478637950493108640967159495815138834611889100513395369256613252022956269090416206413801575312358997294653627342147491610711204736508364833341100475068264874351465443680382452894441183609398433194632968055869600042248961350903260448116847619425743684562329413481192947384241512436266286727996360452490242390796860058502111866568172015633332304869919325194825196822543771148820495347380338349235023607752863427962146118569931213057820913423334591886808403531301279911990438364839977174863785081914091207127417933659166265787281957937464719868830440843047577353582138571723884247866102109313312143266846776083753696871577340518474639794084896559595636568074805243889604593741598724885652977575076773033252952631015220583273258547246746442502997884142182464804801145991974743960200361337894975473776481398322767671433554940575333812307471789566825362275032041443739719359732466611612993175179172385119509720801147766703096091070517264192076905679697684825020433300001590323177341968593715963124003376688920000948813832933068971125739898141094057319869259717731883243248984360497329253741835481970159703853319073578660432534404279862451821252450034218588295835613111593745765162640987909347491303284541151769992928395389998147490125547840157437135953943829959963930869721207375082117576054566452461453690065925962508356441568500612973953004523927505066787959706640876577070303529859551179572116039130223928965841626326374209474288624189236514730179028079950399013477568108924550924603486144093831721726297066006307773875557272575883048283251893570988291609926261205001657647677236099513334873112124858503936605208111328969004278969050964543464383282126984117597334718135333323553515234728503541101607686793461742373044836447141594742309836421742939835150934889093706546671774318958388720455980902544222903307373131679930678982686863185744137499239376069066940072845908304710389274904544499192801170123812199001746261926122975029333166333963142607366904367792593767048609883044821709868552697012942343375974510487284926561171971677183255158898818171657824817210841462725721661230433414585574393153641752221654764130130659903981248378874312275061229104734604763547883020485328248085531961357768895996400333456560280825516324765987692390094065240742954982993518054062395342457873225153251012977544882118165356221634865182237335241809613321518941573500612932349247089385617709777435747368914975456238730049604281695492844600228360858557366265964509354331865455870462593394076504386621228726926373624234537962274301355392291313819644104005927766558703364469615928115930044608022416165591461503928239174709665096822102145194031884335057422279025002027735447856505691384321717037466108015033161318022857160714810896042042650880971852797709871123937192697316183173349005895696835639010410024506269193775302609645549155762938111537287408949587382821682095045993430241369925112512186761720920334175085000491097462670397077570558507026600262593935043066929084989203091155996875857852593912698658411855871132817259637677141424177147046405930844231217104321593207870531369598500372235452618272054543756397055450438123701753036900127353837232287689848552573321112107385834704607775973746078688715725679004486948977385516184908028213599114147638093881517434761684416195377443100553279183227512607714984413419141701424353276862031353223489241342425911240358676251026535650593946256059437497342765318525748027119813482564224922688063558559919711613287575649496630181147835932009708329032706370366085435784026346452149549375811541847867538703779049255903764374208023545907367637367031283385217738081901377076621075553639447716265436107112727368111476757781116085352706920252245452407298009655394909067559373233184267511517080834690542062325025607064240028043473778128644302929622766545792129164329828857353998724249235331130215773668893831927869809993933999798201867095665345690824533512993271096355440394438880430144067408668377229415632290202510791839126359050827885022391975335179799211796353499360337124787741773064734653075895124606258144052531141867523458998307841553861712572400893034660128812256467692698838764816067886119112460487535948747869114734701267870728142599924124870968450381990541300000333430291833367804326808126133807534227425822745950885877711244688534748307258864024912394520989476477753986100504134275405572498637946596702960410163029672810187271997370825835070057236451878013616443568274964331752579542255339745901546464404799971477934315823942403847958485961891870643476085355557972697657488956733575961070448264231871143485467153533709603992285271289584980055722423447708918773698199997396684926947102857261630891980633403429152926491570208053128485579536622119737611763488551490095776708902628684141070221195741408729973764505668035058851712049286179332793592805707177872477054171326933178849857725417399230086587595762252818168073207239951979465992386882442095381224945228085654511542667150407633306044096971957034255997724960912868653709315405480678392180985132358839600191599831764038758554098756701062255977221700472028603398322088066557062419736175186798303311626697471215898609776822043026559034224964548901692644878916130483298283345386060932857868736452206066130991188583721496873445523938429440547333461542771943776325092444713596528580553282388320133037271003223141891950557990417731886131747832178011210811938213106299249696681420424113014828383011864497462682450231066344983119378563167316398063890989132598222571519755428002646929392938108020265208708445229610693291149531106177289326954824264373596873383824575354924224635448011933751317034162054380705338205263649525566437378449321590947196307490120313191205340484062677431421183916780993061305676960757425096541361926252495579892138064598011652808701676233317756010292761092503357427160261207986693905489833148413197591421034576128094398849051492693634259672274085473362583450960116469674576180824324122571054477111636278277435714561455935426648102119724792409665306649064617377769025953152745910469076611210461429545132421645081873237391282068984707926225876923811951601067371295721992841250865400685594353131599809576038633565036549170079044213292548450582910546528069053471116059954650542589468685350716892125714287375978096511915376045988582352449041604476917497976217248591560453849169175663283206251021588741282089344014299497078960423948931962225607481372256573062601461562343906713996901290098704724359204160507074455334368737786164662726053773005606698304246525179032389086849078676363094072802829410541045556032656179668424455895017240858066922614744427170099621128328467844670713792689580525015107395688939095346010602145712773731709002784136361418992005049371628674003249134567757955010044760991213071427685776917338477234459447535413950101153203216821424408404432143873385494397427160963267323440055459428722898166586143900590748038047080945012715402201271638152673540123105491286824047035662555932444205849127671172846135166406064582359152606103336724741968303191048338783457392915086412166764347691597021723601973431417639318575243878750418135360025652572434881572478312359925692893146684108340678879584063310175618260865571889198284255252159665879286928669919253743692415229574917421074221840760627779762175148918608194725753715564611280550413035534872969973219990350427495505660152815857618757407328796957074817721283804533998104738335031983472197778965591924810658643056177036638494577925117906281224508740783967248974319040240371924479732458256062909636413308116698375031215279180077410646964367644375763900620323666505842204772067504830952837269493444719794330866845033136097433694542124978646103686327168771268789433928630578676924776956375971388623085590374525854461047120009406112237684467798706488070900122299100014365191413456285118235181867556588519197170263226166675843675799203149443305830836537587898685410192726396226615178095646833404336740735522148724587331256755432803377228830447520586756824696741156352516048706829022984433839613653494420544063049104885773209073296583672968257258097187749419305808072118163656709908096263769196143907757331564857090223887629380387792135180767157848187710604490593359639253969493006478504304162359119527371967081963015795702620703097211042490571053938013462369643685780135493421964633188003164892393197987016542795215663651473401185010927189304580800280958833770747876361893808735113995125339396556853486017590760793625706579759448548571424559318974756509556871966342739136115401565589890803807972151899881507934112267383140786373713673268419835914524808166250429591760348442219898091635914494125367769318508121724443918640060133705818508734945365239795959188486449675132678066773695914079835108678818763393688826908345966385282330350826068561557109173177538907748806311332430933738827781917119301206710558597265861858534380798437765639901457012061993309751102114438602456125182275712524357942934241244997778223873517021038779425017525879005430236977313675104118871130329445517427380632052516926045614713846812875887049712291217118275008120181611306637161841610042247817021924172487780385053283983439261513714290288392175202528149047091620497548715354955915493249161277845873401509622499818275279773231187395411100959266639872954955156143896388297940483709141409758780314984386403789915115414125280375917952444531279701540580392257579266618511938310991226394133660679813765745048121321640076537909172194134382209433873624891796069202364118853845357654435426311103244254237637841426887317244675927150780316068923215213933817897064481801802109008908383705978704077645313002916243348936826843629021882611367903299447178013187702762956471943647515664598597486210925622255054101192271970250625899590808260864290246025297620365198404325730362479573223663779132171998212198880126211800949452868791342716698051314606648401966437741841236485841692937918748148976384063274363668519884982455663927679379064013977926407289268785932007080154593892575890737134252398464543188846275699289300048226143767369254860880603005858454348221867465990310629462795513189725630150230232711984397398150544084370734211793206652015346571715380864256243713591400492656658159435587970409955381109396330263084857126427135378228139957167571891996549497014986308331926243370766051044438165113136273211456182604309535338291041337202142040395894473558436397293847834961676134161968253540494598155780022898588929343962842885828378401486204794913071697259689545091951360753976730395878075413343962678813328070628098534355671396848713063433328514195226062121433923407219706046787353156436751164223048709994653095855956661415355650708325786168079865811085028331539149522693529931448240322140185448489819034178654053561400180638841426704866804591107296852722483023787677222570641720699596534186012543561592246425053581668660618852709119505722595440849737234962458202761175391819478062704519469957156354556845275027395180870379333779105739849221970114492791938913827434107330187422417153001147039870666289471373260856474490857730941672114526450837626901728676025876126066480522915345545187561873751365783757390063943768431267636680769960851553015945441216946777826763776881452446367481130411099847901191143978541202772827922161960213914844192781607646860114437746512918100683121952145168869145244508601397581392624326293207747038949617586299562134801453554765342841416052214365049049773007441768013087952020595310153167230667779479697277343158182083049470364176512060378876108783211873477618835034151074868056836842315107326224680843352191634313890878947471936091628895609868822588485884686699616776567279309644852095429105136683906989189507542025142266222984218629262826000544240255053715875655165989568995396697760108547054773275595602137661401689081671410449484758386358962402617654376642743482120951670987383543336436711950867646814765769235507557701038024327743977757999708752992881813789771870687130594400257686908300361583315366379100842590416638218307758442060873546231281250217885083900253158203799396061566199041664514088567101701712931302671698614678532074906534456278109306895998349468851126981609504409384872989314697464336513224056315601075104469389141466668237244282413163503146394056767360720921827716534794192260121031249305683803233365838333862498499266310461538744895536951611859222594394542513226363187124423112885158986610747273802102300864352850718440535643109004441048226782545815564362183237326344981273228676753047841723695427416025232011668392278185921898133871340223806418127485750671403695700453659028713874873647654485049009472263645898353882538272058515293660796812512623945954857006724737338777638558346057940508242416128379020511773091285651305771967195535683807362439765028454370295044254800759795057815456935748505895732829000970355648245157255448373158332530780526960663429713229703435096553354800704339184474784553273665109110451018542329410060389955907008038331321588904648838001459216076537951018663356826392459223276299926787568947292818206801091351728136668360589517005070106898445256609072579230474885942398671202153930619426014910173750686289844643302238587973301843573168936827332552501725334660492471860022774070333152011898842628413495321532272235024020213299776437582766649470533407087625326759758336149450578667067805226042836647196069098645834384780306134514757261187359139046160417246535258085372890730063173140106003428082837113569118658735000386170285000786743956999338485843489921363848731445415104426484426643092887161581609684290278923088353260071799433850455496629620041514975850113153632937208000406998308214922789707332808266642806807500392425206812651890488649041233228824904533373507058327456040878800834065195319784025458300099903085536558782460050011542391014037370865870943854195777131625187795995244508076084562163316198489393286622757667260786962133847945974622478030908216836417669997475130871889855484168412480350015247635938307081883344176084995864927835293156992040171851077200325778362343334334418382244756581588790174902110805330665234603837427369528161554034053934447980252018572459891256209654437475713770889886155341100140422593113887512272612677679872964865237888828485022696776368604755271873895700390128678101597499916780522689815096979711799208714297051714355526929841056427048174048077032246195900145225538635573777446813548377212902182869312070299338257387935498102339136569522686859057259487411440530314411766455834020084165908585222523570785111257382021472520092912889506492939049233714511223907515686980369645760974991298716042809754747148283491979010866685815928492596902546726343943949631557777835287278368747730198167376642940403537382630631814229300441759620899485929563180913773445923256444453266853012244052349661027858795363666348002395861193912369576516568280206206851795508469262381004604644654457248536587238170968889263185000897801161552695717805098290708362741668205708949212119809639687044727278259570716905626685100697205408331944683528495261806809458496513977068943839229588629745880163885937489552760756851271096492105376152390163759196541140241247614555843710882148865195071651799472034522346562616944319416134487856443257008976047700845416653890236349869429057035045242466487697612055237231106998391779589262855835551409977269074053453042870824749083173067771595263984676605156443868647781105258160925724229743705894104215653509944624805671251750211877153849043422580583281909451899583838297562638269201021367989660630206728580968112478916883125490485121050018074902886902036579427042959253166427785978102041957057184561666238028873927660312942552451774379531366138342576399588057098475107908161690288345744455765098540079757477014197760184518947147205496267008408670150389524405384197768304030385239862325970148180161169913568235077064855837774462062224150777872041076581208707973439066244664334810540160938705682830225221932288438635590222280771112833848727406303760247873949499823555203518450248085377002592601390939390606762763607680718579394557288126512307619513674618645041564236174639281329765109251362709320661230204686949040052009888293295932483064795234675829892798113769586989182009147722322361283860104615759319135730220887254000874303097043519658554400383648935176840086558667343521366061559236269840188087296553526322662832058449548537366356052690844952701471834043662842824313342402356703161311829737901422051152800627154860382419100158703078344145947184040177251357475713256245738263590496958008306278220035329591413417542542534198006745172124555872236289928563621473324577342434866089605340812010188912032828736651927341426382974266184408419050937595116533751987615174685937657203536122412328572887728273335842477177272212520201056090956124919872362466920697660936188723077096015459370944708710973874552844546032683257995253178875905940574728081770134859857549893160484102393663329150902430915888462508451004856110859855530582716130466215854768231233344348787051412029791563945402174022273417087161535324596104252359459753727311433868840457594403082680026067505343804718783068995375008569631721217039475732561802529126659105792511621685248185759927578119360202423397108080557261999096170439896433599777440347266755980565474939558077788771410356204040915335504007355179518320558193396503480483340208992127998731133527124771310556137793474388329708828799830814139700177533914608043372687375063302462271072470130960982044435968616242671088673736402513392353325931838964294871687771193461458759432969012538634639718015313254265889655689632975134017683184609746498896221622206670456573763033089545917251087220849983741657340268652527575128369184761978276923812715862704153347660973399890757834691847480217981175090761885548965525922530650664534255274799740750502186844018744795596160841461958610779522025413850419398065382352849129876329807670109401161720345065623975012160208609900798523839007186774094139561691149085603157814342983332909791731334498122658520645183819479429431610632132453830365863831823507576048935490403896338679566658744160407614823495248774821837336331538955217827780205988818872724393880970557214312836935256205100658068229815179922077962579760081052272929728222144863128207756021403548882128466378762727278893835923215386487105457441543803800930051716627078210729650977741349286812409812551923733369216971970189793755578937246141013895388857458746690805331386808708028072568531367103136113268377964617904591559771112519729891109448015415740834019503145011717809976845982090330452897826081729419443541192552061736660295559404815792322143638043296869167149628651161500069317280133426159201598386020156586428381412905747973940103804587343390986714785881429797755342484958843748973885053187631066560634504369405724254440913331562239243994810701870567200713001333452658771221349544774994778604041763250362313085777337305190302520752108233040600517479853433708294208472666794521443372915624171852826199178997063031675144352908193305669233735865304905397338721798203796254616038257513048329845540808244088322436787264175896153416226265914368402683449062814239032345979848582130146253110774453818422482092561381723606552879987564978989482962747488625472309249329740225986826225494959266421931449002345356562043377353312465307531160038085098656052664358200047506906681726491708459542279866367385219755211580968880434680387498327964978528521950578769687560885549574617894997012569374949892546450457246373622852550158382921186214880706751812440846358057222789095425881257811692436250931225049455054674911395715583625566827744001293630127378360863928899854482782676310181494680663448127383469495597104349998657556518556468567733983367709056328209974544774400932880951615909190283879445490123731418671499727176649473037129566636668485570504379419533227006381856740863854089020108853623376975245148202901497297504460480786916365854876071078042614031325731551450991953596224506814599282468339562714310860691682095340942797406259722524883157588915751675670392458498732218440086099379646854472167870527508917374088842867803441565863231529385502202896302507638512500201227208364002463404576756122753094740396417935650444494366279076964126096126762180078350007396169659460371026767757748754153506828815426912974596053464550004940634026790800558251916565835989626527402843877969029607631809320652108285537873541778516602675834258365289785875898885205038745820349208229649357527034032265971344467043458887188353971993198189357434925457455506443933889740071416684488478433255636540279994173828115501895424501068626317379036008886175581241545755591430930581949439704423538186139588634638563281525279191123209306798363472087217939486360495743218852252647703778285084179996491787930926542994939868388405680321719443367262679089156796828570012145323826206209664339519329932374428730533705779937785483402255235551776708358936266242682764690882161610059142288499724338961212508557899493754373864219519326084908562004362043090733008702989953462596084642808470919029744063484383067045170844447428152888878500223891751185331117855845222706446412780758784779276838370218599387913784782578601629343570985695119550175251374422936924708846604722963823453612128756646026376104448816161928576451703062064367301751091422194079789782266598007385085039165425658409857357924816049338067664886030203158003189398085913981021051559187358703586453652340852420897591599796299816558981573983802976895113936469305163864889258239967162861197923501607236515953857284856117463554856630618422321112818547656125043257009959885550002935426801844830531926089173520965709508670069328505605066907760168095755770742477333588050695331715620991826795974929767991761153363819871674661804052091598203245256950260985247712014775339626545041349038942714995216694129013758500836668521268135039144309428685253899102387895363762467107900840873344036396530904868476318824314210258630533740088368086332757065416378032924036775491451848764385035520979637547745270965986654965473784625222676335520478789684632707671075095215375862228703183130314409284229844837249765455670027492557335839595083176588286836154198756266145359227060082360962884693677151349129950862622723762859224627515019734883599253340732841091712072543823341140456420086329471904597850906948646566491177839161701853414262755231903597548908071414898910592933738268467378256594464799947195070912652620919616103574409346381972068343211088545867562616841665558958596701098347046341553326574535230516774482947390836812030625704893572886410649913319844159671912777950697981160961867253744276078102826022818274150514416243608639895485832848914309651594580541748913926609380740651308890141461244445956091893641869947365304220178025371189250125141901777440588510819784493809566806356201791851459846459634825892214933526800635139826653255610455419938503643115677351537442652800418469355928595736216110395742476938166504597735503259148334138199566780037800952797886049987760229077582484071351426376721194328692995854336503188279555491310760832770449593640823960568478892200634167068723121308009357909417896914590887737427039040786094138360417417587273386679930548587143241219601632491380651920567461084678457814429220339228026427265342214960131907039345489135165512779612672409016107155187796558913545503026441640975685802311755266220443961183181065187825897136951423218001153586411982680831293505698905911149769371357670309993749002162170595117991929915676641931018998619884825984094446046519383881079275386539561866485246177032939679816500034293550447809652753747340770678283788578331667160435230090030584136554166342372995902926010103964274590295348697895108701211789200807444160443045594738233286296967473887526731413208392255540814276402955193290539510653705129849020622865490400658553887259833596998243713293256226084300112861340083153504752877902080326772231913333367906385628143059397172709732366874936691096792752166801955339336032497786012024710775543221253020804981216031519013552167832519142319571405692456443551201916331038188825866598516555301805961838094116857713013230451565100541257432878901248340066713685798273405308445587952868577453822242027568672297395654122366217864095685738187585684194669708966780418463855073894077104092620665433053954936456585227471113589526067901800410004400499599338528255389423205678084268163039911404292788317532909877080123264454174088213579590070840521710822389406904791960366126901166124124751361027979000495726219652022115279074325929103681440026032152546783874338682692693970233751459666044156590350922825055842010548832439662136990010283291744633826684203678511728361341323466030251296863881994781959895867680552057463545026659685683126947658640568113781739012997979945039708784504687703544711461805567941578169414332426674158348460322637075337452594215403803626007791124887645126083767647251263880427603219279824358289987428575604717801784731221221330796655786536479449412668386511107748938468294457887468810317241583119863272952631719973597417971573894746957214153067852783379064654859119431892624321637198246504904965902277608104624252132452332961496175036882361833081794944396964979340621882123478592575993582241530879286800815304255455565361878495211080966031045996296801860178937048490597591988963558104599114442844690926628766144674317373393470122250617339018936421526528628677460948281757645815847402949267308040642419969980866026967877561083158877399736583464810570588468971165667540218809169035127410287655188769349546751619009145868747708128272252858835259065826607553671038082686848523530521500270189343910904875142782984623520271933328649941723370496974499005533446372059554062586309184007156114520577341792689550686367042896301132401361555508010975937998945196841756089892842340506311349416921875206765610669617024793150743050446242823262087163063419272749485574174108200465170184511286208630140641370371327442725995658132400253817254047323778020804346128635074448729660024692188904743173469619837448109784759044759212713170476088090904635950741142580624920214188302168064444802184467754744789562991661130110412142404288881491566572508628939257459392919340327216811265185556776104717128155060493573161105069989547153267525121966731887770423650239081204075197086819168975888391646242095884860298087205477410380558304210201329096781451769954778664214780686379063062676626882905025036421643936010435197414292060366707959398934939055456844119507335103490822551140695826398602797790763841089400632576864411795501482799156943979994658851292249672150734436214458504127859666960260640182326083371033643767993112788285997960470921281014690588816221691484554245972044768107716987218920437028283185021195280165991179283383382100697918764656157264193518839778698618628900726692251188245084538148082486126307015289723564131230033391475634185237154579399840451628473062510334720743292828724310940661541153115631285862122667682224516354176858523303831602998400489755040399168429680650836971534250275685941356330871460714002277461761779072385603088351697205999800656087400275955621341663057639056264232359947336719108803650683573626251103456711753897707017660953509579060816014963384655878242804013587084762571034937518132291479445823070038408807173955821498147756789258524715704634600843789846167239317159048723212956207386505250384103240215454767122230876865824111393307573384458874691491908802247880870140163046269364267385064911170863334609075059600025768416546227752773958288943205453878733239687401664892571731706254593283209823092955586992190767419307934299088627712584823157856526149621367102676753889468875628427643850502255929125914230991696567570300537878196234148331091259359045950046060331583366563299054672497126308741010818241667243056879153629140168775090712437985347301775765812082209994208821473985332145566002290247994163243982988635379626384013197167669869079273416219563400710968042286506206975818459673566916505835388382124878350252424327921853336355104078153520583222637330006182273274282864806775111738136531567712179254958739329547365911937418695590598542447705201000006933994276236596192019225779515561154014322121510803082847962598749591985542834578533129996977425924990461182547115980091789109943027478259846246781216919143268892714383918039433853757868468886944097574468529160686477267729177684041751551497491677620773698438245778136215032973506759237512613995040617552304162217789353433188032319664301832536408190375519412574794174010710514045321118025046105687693312150763913561565325509439903780915307417592761661692870636952150954206119704554958019955690174409124699250195939932796188081781095417807817021065788661167671627091754440142736874322744053147972990602040014860621027035827709479195007705282993678922003190942230717326857947305686855010829392374056229426395236695104306707120053067243735600216162132891747917270894471054232826008363495164134296812384628133209370761207883486208678328073716184316785302074469502925625474271018360531341295289306977063591254461102434308423008187595410593726945290472424120175717427608721777695371241214309494982245011030244885822475139635762390350210026625329508362007616084562136615301519980848128417193311842082091687542214446260442373811449294898994784135329170327889645070272452256411388603076305355684804703917275525694893176946809670159195891058816619495168660742454369616002732450138839982058721605342774216650305121789460882748383671692456617693111102476083849709013650235960338283129485813079907126024148671958243635269717656126268246572363473945761724468131651015551451101282356272631574562340616915827196552495893120929040161021833991067197091125423108735227381178645459441922962500948116322456271828238871587562537094970265245602643366012271130638445346376632022976442848135564857759971540822196748178093193920448904044758383723988063930585446055651672854883253212238214752589315045629843380262647969902403248289582716127076738465493866330651782530766215035564243522804071907985655474772887286512795031561561903151095828356640902238583630648486528447494846066338124796011861630871504725576993292668319003803479596237221775098129113381190988356737968821666703749195098046964726419350693892522952663455254147072094353920470881001851710299207336867150040819694254841521694241722224315012724870386967929907929373274026777491341360790343183538458252599472345554484131567030899344353484902325360009874471858121365481901562439158813337239287147289183058356639515524050210329010138397662340108319268435995778514887250865494898681910998694564264853698005531976925982371710064273103964684173026113563705240372321645615557856826733713662060250329656676649442690073110441344944478520334469562557369527110391424127700916135724474212406764054293887911291438290906567633140867350287859727148155564501294635705404930735444833877058488965693898440760693681473367456464069264385910022413140275726904592871924807882012174415936167629558755157289329315357869314061018065046931415415401361636577576148572718315715641157788957847443183653498246713513770693183382839667698452352009835526977689175495106431822792290632646480254711615980468866225368146590927944363933018939201145716437335213386944957768573887425343032312017071060743717338803582136269351342052024296568033907243887151192396204071235224235733310855926430509999028341969252064160601555391846923453386297124603928195335935112995072848715925582047348296927583468457457724738121435756985348900612424846849653160652383232812551752468694428384069217809835767093487763238559063179860490551124544289594328570652195743666965868075135984669493201136001388657613215308336781443050580668658646625383597321719601661084295590477785418563219130368847716873598164781450800873235576938305266952937064796762934331912048473350827403410668813931727160536749086895276591089452106202715514955258645892467134201940684161737938615507090949162674074177174170880662612938591714536500948114651844470403554243177726220691262280170099267443001673796943303636613009577591627367646361049607164546736025116501023923644728989768110710322684868406915658304264181314483655385285929505991766117523464711128611642463995265367955043850899080668397315746664553722880604823052512918401530201957109387835712666291416268824241997147616350518293845038867194175743453547869140955276330097218590815450768211927314872161780259609229381275967701114730382713284292874164182260356984767745216812312991358818387943808950152522835915662851276479365601333999498896940551702571933500273822574606593383987653667830851242718336803675281787089891712112081793625336229366856595025067424683634509728421576993244925862844933935245597731865471570186046987952553158378443349470658608092769966972475894528525197190297940024138726855679479880700462687694635182673434008132813186752808023197072859379706244033466065010698074635478291427605141243968810876343996693774321022441197995655418617096953219255195902120706045152022704711706558348965759023406001620790915271770052635393466243782223741234065500037004280533597639351814791107114379486770578288854073301061582359563434614200457033901639000665719527279831668437039471729961453905361543012257874450028999049474699614296599576604379227399330197168269218971734583946808044104516011487485233325186754685206813126345414543102815514526466935780641025705477353868251630931794025066978795624887433797337968797280558270284136311617498684819041028305818945640116918428815088802545249262355831937632204486743514369091551054279672208233231196392632770314097824354462786489587011539598699158996461660597819436246080930800697801476024852487944345382347138978167043559212803768281335447962301689861375686822542557532855598513302766078698994987665752976917135098033679863057249534902376365856289596204200068034326902901904885721376863227486957954810765809394394206657053418086036936516186823908706935810575885362422354883996803321428984179111372770378609526443760894264460229802706441669175087051299453185587048214174883398441544685197340476146788467342781610534429652319462214501181706623103582055642232206824841706026641248881265225258991741047240420168213751549930249173842066665052582893998119301688852478788712378304511605922630393819377354552998520528415954059309129708179451897098854544352625682928212721688275490329108334175661119112797323073134818438747489315919271024227574673070754680977042768107768562528564340743884480848107892523216280620861404864859788623982098585666638497315836642538587371130241050812619406731108305242579488839684117107575278987456513349871863232246033151863483801994743037177670050368820918519700996097110757676446409961114405406917123386753992282904709724359283553430949295851897727537012771090267399007504518032938568614655581496400336236423586329510442166721100318089891457293840490072310166851417635123255319901395254596671266668058873951098201721218681323013286952875855490664612810350642543706323787594484621642763800900391935466607178193963297184208506484996726390491225186454238323670170335339092472629255771617394066960179566842024423530232426650396571899787391344877456385301903832354413580284334537407255576898980257158694027527562648655982185468242438247274480682142978388863636904983281921679188422411490927012949096720516631110438240201254392272313100366431302061291444975265712422466153147861195798405729354309493130160254080020433030385566548807425293189953146945794523587414838039932282621320114823151457784639405861134320144386664855259218778479518187631501439193567022704662436501226944658424737071031945498490886208017317794541276196675292122604024456646605780494668163942601664635990442645295239035828356546753511337995727123871731885997876871597146194960688993382967064852302327871486724974874218754487689145522381845838711756211423542588890726113271919500475291947302148075317145450273023531361315225152818200566186906058165635820255984027416078520098741156708328006716374694077184607545274033739021561979735832281093778464857601913058113845695684854881490756875138118393180939914680707448877538094698504370354230041016625388696745339803658168704869968177314124665238085624613319734098477567534918263693101902334349842964964615882430117997859525972971473170012088584793719663194171653092712446906826286548445215612461205358699571262411141598304061056333410266303713781569829956500948196128750655949285964020073426329164418972405611168398637150203364470097009806147263113229593542412912321917299561789381464467469610607318270405214709739176866594367145708824987597304934062679579064563846447980433283334449579790182237530768558537737151789436482428003755901182332774198607718713448166961725933649130678148283233999744609300327661935274857521228630545466451117841903433979497055952058103970061121748089287786518979076008167084973992825152580631667784865191837029243919609000442977222003118222909851707453518521802555279745982486693784790191887389688756182967381438341914970363153792366067948724377326250864252188992199665860745028756906045494568461317007209289712937807588416614926340952937555035504305352329901955638937678636397094559949671942381094656651392617647877271200375009151658974312452497773103934333176176278909079205958593804909375637591066341131254787403539939015254876958810988018113771786382848649193863345656007732025518816298427384887570155026591301318607362694846731511710432676915499881165191376397642919569539658319795433743428516644111982051747719523772676553353637384640419652639757136814422350190488446265335727289196394294559455733818191432061620112511228170379980017874619754480514648453139286349652995757701618374623683372408701428561875709790795560987732537169108460558942358205345180201117906349793587835937143691708230167024923101283782086253328870556886630909986490097322473940235115618698721119471707923688303300110111043104567163968107405552368338608903896115296964256701888267735536766150056608464860143523479038456461917172444033135295027781755084367056119892584509844612521981301427649815903056662763123847955194637209871427519066696193693875045768693586498795898962473921441827317908495082748777496729414161718259920251031329161657350013468395339820790033123707777298350451007073382558511731126752164604979879180284098078332236109346025643605496351095664261732627498671442342263111286549134139541560342556854488967823089847420142066502358302576682647001363849032713412436269168349481877809495690615355893139254443109449115500561707230631743459410729408832199994635075075096950722154650556021465969183821546770751304218314648295468529387239037794648443381860204362565066056629549995276124291359082710237880128289200328867225716875783032904864637947308534754465990663523092364662003260100527258665291882896770489699814708520274967331556249773715894787884062044158949198445681941039039219236101752977829781982183176032864791839373230445286272533639643921289156651878126188476664240677696351999564700889029150268305799804923095371700238508390907094155984098790553223208631744341047672557822641301755738978549959662829344983769936976484547506545132444405128371274614419266780464365047621780870146301376399891399333078879735241304400790857327346731825645545341558613014238612070866513427713087151222417686366374482839847422644515976360325814051257121055771191937615358445813668153507982950584149867012861015519944360958291322388905793441957702412868768779970423093591012776248216753699734652732636309451539385157046144467692139217869548900414632239174154168304983707790440533482429220177841250043653269894051089693474493750243310091457552660955664979026186230597876337666162723739386368799953922765771790264524492733027370265516121543390103283689599575266245152778257739504465601431545667962567444910204699195576436318003203487595878810906205384451129715207815121280390846382372162550514589182855607064441224175291563282036904750521933009852484700541608351075797529317356099184278300369603219219818733741971720448916250776232669678093191282340745939376164318819797062908682461686701913449636558595538993302862114608562880102765324276600453405586186015693123113851222866737052450663216097549336344847139979809234079600229976873625826885119722474305198257688123339120218299474413735191502851871900027931989227427540326743960074149635277997095984359685102449366240506379334454685700216462933047050556766955324268805004364461430075669043471687070015550859382456853403570732368397317022057811273236744879878060602570522444680987832958268154708998606142492495327863579418480531311974956289906371064577757582785425986477038766240276851641901482365096084149439254742318529448058766260478425352344005895942191061822117011971527238611109123927586571481955470333615639416286566931648813993749568291422809795757662038321962856552989927432109360301838095459855149610627648546296255165020391778829641898395393590146987819136498064646482808274488074649553019708619560083142119414240657586625739965150724580642205238714438797004959748425056839917238958853798810653672342336650154926776993519581380944199339923548126591667730182222988911508992494611919788488738040346466185458862705229675413680701177199493056863288355450958400067987178321276354464708174260945587360104018367146684424361061364360341662037951986090789363944709941079558623051984428924583445946384090301697884662522654102767743772657315930687976777966271256974904014714213580531947378661490996323239743929270889316103408714356051836087385564252651972990662121846156801139236958949550443765987679083613671114618219536907875571669243058234574467917034108559021106765538643050519484928421701486566139390648839079046979289574696820433618984102738554004728783994503963715109588919260841541169245788493587418511058893264927213965141070845744075891789024545954518495714080719059718185096434028285384167077778027508495728065831492166851813766489057859479802224954536894245284639632947031964827990755333398220343870419029932095589459675894685673121569822940930956589178679245250444214005788201684047448308090122957739556805126014844311860074290638983511422431371831229365858295421736321213887351911227781725407175315536210289516367152040942300650138666842351679069955782801630870612405656864719904058934573372290192418519154817984439348998409929847207207188534189988786654688246366766762720618759010495150545591032188224913085606722394207220237967155559971032222281096613955834417578681439526066514813450232462356540609324972352752094032001059283781265134197346939724165285590269833233325478565856623420934306452894972742582653688032998365564886323899072748336172596945533228245751749344963892099442477190180718411813333043387246560266688368035689500348161350260872586600487561108134601476294238651724627935296245908598254964993817516292675549756820034114415031811944783590493501615052756535252184005137509975344843201471001974734800710536880718126420308614340652884341735797283853534887619775142284718984463684647965066668323808805912634540939053436573939938871100103954931833262611817715697569077662352082004654669032520332847805837417137664999796484884364706508598893210399069160082390504353478431106778490261084435516765599619930024957226344001395189673827596435345723262476839648946985926327863541692669386138331473107297905759742064522819103435107364012157167857449999032997654483582527826788900164100865388745863106901218259048197734336213907195343407052439286794285721595368125993822688927904840867638007416792861883024206574756055327249466730734402759832867681818155028835241829875684114729412312714285371151156982663285247579432061129089888976804903272974050986368094452789026452565977299733102001196934372428241104194236442593107887563216023955093167656621213803815872509717431355096866254777506959870579808519179666637613415241523462344775401184164034055342961275047459413711795633556725366974698068515350927043038929675180205427862554906227624102201572604617663161665905765605960978789601160738501972684730606795912250543691570060768714652286916414677944018314651902642697021960738875509384139040319809468262347211007132858696345082124092452311716028026500564996632777823471916368103749654964088139093579637625147247594241261810034878532688840680907305493183497688649285821641279420011119927671550748799322051707111712623278250357103589246624836646369710613430536325752824494638211865655700388562177643739926735882227590749568819462222034675754132292305042970493326701772458791411544642473463372506231335485811171657133072432452998677792012997494569236078684786943578907933309290729728693887674027355169202060087776059372717687716914903765655609559717221945530741149298028384260875631348320715086332738716079731938357501600082533067576711584642772415435490623682870170173315598974858956657193627798327398296918651499902843305034092191930829225750545152767478848788437472170534749170449893240262714589373966838762711434412040465127525399224215178613382648777739460001593293221428384545219788773644582935957590989259894656145044226359652796567060360031687828140135583865074081654291869330534068583312542636752929694783361421953989212221678533488212864103547247778156431674908654331780052835610523003672000774983078410715012508245544316002428004778328383591989541031515112609645332480542529463284129605954303582056091601036580121529642453157200540363871745656180706006902411788007618508010784416905297627078281106001403673953697155737464578434911151762123427520746558790615071239771238286646016876548227500445125441184746278664320839507579962639687954628797400844185929453821669532901410478716430847439311743772189443046558909046902277667167769286504084730004988434597345585818923345905093843681536286832989333524530021930315125606691196533101056392624454343414034334998105871554590628552116883905834726427407240949228992581594227601111243982318429432781141264875882783543510446404591569025396133243307446526100205456113058278831764828348044608059613501767694921490926175940048998973830747301068751523648525817696400013843603559464508135106343857153396480243619038319093851283673422242469522009015743319976962630047054442419462680366043424124525787428275918284261337352279793925479852570437074445516004921954567031925393068605441776308143094944550888568438837845677090109111288810549536192902252363941630389934224484576791591207130749596727967223242669444592012017726244180959181979468261027013143143687552193122656049161312689771479667905937810059339804083850822227650182584119500207591651052047201920223788970876728972220683100312997737563672874256376287572340818483740557894478061370675711299759951104992065351879828969083801134306252283051181735249244247389274484536879732595135501467059627096218108302435578870317497277027327014771605034167839502061147902856919263369189654169813808627098099751671240737693869975359178541963842902419598386380291735097236337169024370649402328048307001813769826768915200262833196528587432473256460688518120056473958189211891990656230802066460465573286796620284979089658867722692424747674434720970087238643602071000163385388145131887917785297116225155405503478991038691041580025052927074936841344585269766989347268374091699892248257264891731742526881119410051227042768422543382312298445004208927454960722181582472229801054900931798008980307532318358228531636572669248982444401320981607142432754962544588388040091333151338136658647800162259796398302379386869179406552484426666172227371525422749564580833005910634364897522325958734889949989638497408034497020857213725507258254847965593058709233838029093973851936179591676218042244758456289155477481325616889837563159736694730711931404045582280810012467211748154088434608529587646163408102108295793876429364563361012713532060427783600138497010497901574024558274721028104796818406426217484547825444824119423547640984643362898746809565971403148099781843176283765614767885957095464269139402910716905010130936863686293461901930518785925322902960505248756654058727386932295388902110740312367942511685797338597052486088058862834601982628553589283172629718548072130172482857078375489605383259776225664605387283131743805427360616836122649067231342335338531274804769387823210197529483133911103395562107320615395126670782936379102738096942207871205849722561031942695128977866411105878335060767971178132473181072407922008313630339514603775347729324007228629492699137195356706672192082530706746676829750983967292825595892024492268856728706076295218524608386373380353857492943287686161944508489155185542488185162980965484148651190352912629297632319473576680580325132105231655358391836208296426898556138413459492378916270753100116036786960789299407321244839061837372289416999828383315728166468011631767730437178367328523367948243092729406826557521093462540684754704877565678651217564210089090929067860239446955541681008133962611145460499287757397168612498284446742517970060082209206967413797212724856161618496132888590121549347801181843797377178977253652173594357504382067180922297460575914059494260937244221161672478456335567876439381044026848779107136581170925417008833029836658406472610178325485740334953281029676736251419374304888508281346146618006055899724439479453135563475472071082162119377584497096895546365688297490604907440638016216399681716502512293133144048848177257862854421579309418908841223878403850967868082533998527313896607710273343476713132126801392504559187990664763480823581005244774200495202923230989830876304016284399326695393563711889891861307573521938005356426919101799337633289849544391710151371351256527088040728258620096300929446088684418765541286820018092166808129408489768551762102710340520337813473918636996202902167122843799130770884496094234478872314804369853430205315662441991313738395039677750926667272127617348399376287539434669820630837463993471349811945946313218921140499570534736105208328694776445298154999535123994643803906305236373485399787456290482002022904470306807844946250913192016181710171112014633797016887855672078565249146225353525501719383573673613141678786839479953695789692639987275414997472705260609216151002854938054124101606357214811728675039373783842884690318467795325905965032157731063809551505503814027096053736867772801382778220185568515317279059493913427272303921326172917522377408472845823833992542354097860595373576299610859214046076863830908227438833908500071548766154338002331447714393146891086870625639657357691320655378984344160919259624067521246904165484575606354750854214627059260279987406463790756113936164817871338795342889002372532650334290566119719848650978474012659561392857172739215147662980464048444506123360909379145008551276221657986311544232389579700235766225228878382094294279166946580668364090975848888629190203033098830988192743584806263583400152744266456070400239719001893258667536719016112538395974880577282433328497430047425755137781256086651998696474402897878599687288312168681793730617537493944122714869394151277749639746527089270538797654725677477903347767705388396247705507856511605226300077800842078543320905173251402581512185815832012675796209887545244255788614078092038085374133255475940228159886822796190406018995824406553021740873406782746985816577584688720202419751852024706589666034520939673968719042332117566584709634179752084122348827976444007993870669887943315747283543054875662373542833839195450321314372840225604628381492794047464495004797802947527136314127184903979289047648482180202213965311705874281439746761520779691919986470489531508060708486861634160909011580846376427484074709964768493165348114997255252655487934421309685860691500717355792298615848670021849651508742167028872642204677253651250387057265816763566970149523275452195319278211526683740367962871702977125961267204319775255077887717916604710357914572350634088782730752314352237664809088358759287628080778734435633887361389571727642673134019113879937048242421871673574789895379646957029107734077413079657567775748681944924211814072413540351246229986845414668503627898021456573840198552263236665857322740322272244821595463326743750978995820924574462708047567777151215925065151937966336409408042668044016340206576441779505885628170077506785295779922574904161580202500559923710714219414330621632223864797809793693664076992719739544722363387102704636227957175332410947943526564388396149009986123784121797290819370457871399406858215992817881802059479397173840950872282822793132470010120536734819971761631121633102978277803623386793087121178566947843211714120200132611535725631855415601150027320893068017003182561573478645312658463213490538279381958784109258095921381900547877475205727717209988590838257822166104896613131024173382111953962635587086590477221034940041469840516203837200827533232917774596727429825663654335074500619991110225158164157356078734806971356576794282088256193697300404869135891171677275882420378783979757514998761195175252522353082782465376579844547201974493085475178798853532168251361416729534997419626859168001699116835807717549223112749447523132379926216047078184365119933613044297818832513162773551041890075208878871272394702338995888594450473448884448343238627042838758582646017698529446303191087353197427555968427297027078609313492451162174721346387755064034244863246142818920515281916913028289592385952765984974346888864173425629584089879092781092313953567063313854588805212082093602200273679737131015116782526074163687921338323255425090748152893852569527051947007348437499915670646662047507899243546709119124745000458450504828285837985705369383672483512121632025958483511005543687661224061852898757692329256848386447320592936746580937497190336548351161962196069139822484988757051940967522117466730342882416808417407682288483379572156044429828980151071392152129060503176429243192565087169365818865723286679543238644636233952652607751539490838993153826401650254837754861233196728836183982756319778642332562862027618546560685418500772372031878882763464292688591368916433173953383375400565823733850165471024431159553529548791645557861673224757013803809668186944440228072762367788573429816904025752840157681425935197556041717590577853554145915873879602765258179602844977146394363328999511735551033234214158064345311388966543960454694497309182116086085655761244035662967465671118855436958126508971456892180932657505406105493234398445485878636128266551281325185115316781054314680609143704744299189160920311826559247112210936664044470226770091600548408593017820024413073512232122914784486483934530703797088645708716603720668605021221567499753509321956538769666284565905882043468950819816171488600854880912826472558606065888468161212044132459291482832967746972445988160144308748071572290591872769359699595497018647672751347654013908446137987794329545734596194595309290107472277924848697394129278735749780280842911987156002173594795107252590670084565511474798062102463139440397716815773900680950680561351979167235957587491372947504345046026288430653813612435757103931918419501084460174867749058498018774826987020734373414106120517684483419081577075571181413762243155789895664540954461747952665147816490251606599958474872679930406205532644881153526036514148414290086315174058409554528477183498570062780000162693522693657533128069340792371380227427180023010280224001838549151174244993503707940757285547064947564841422646924417253393364241409847126383306870380178824652666456695893915542588218164066016239929168880644918698502760640859388322665274165486024317113935294698874362350134585276159977062801442597513006098284246834968750711713230330348094548760434978696383396421434230388868734518177918872385795312298386163907509107181281811273455295370946395953597441937341808580036376739898850754504098551447506026275124229850454421944138060887510533432162616590025027668887336822956482276019954534953922024685226715631184415060935464047598309875427360743545955565328077701042464691001157516200926893631500366454915697932828787959441738281712804824796820895250137947730966437967905771509685608817398423275006625361849442992684601036248796896942373910645827099331431824251174903092677897419717120284725622785696661520138110135232967209794603344123183297261815446961947384462893479395107608330586577914317580988446375052464052439909246880421092789053899813035224864659655680775802768505977394937940245668567923581453896537673899815117222973386113733053662310649001601726670259117426371356613914623883512213176722470016271411056155315052170402435393084230336705031052294203536118425613039790860706711709481207137894395147793744359390405667731670646535002594628757524588428285955880830836879387174384600478399831371369105730953128233499162782815487372988894970424645224443987836963373409660451975923384678648960270611517651438434856933012158395859003892271700890697781157410253136021565411005383542344626283688762489509431925126883397031345750223394066545855111978792233630970755076621116852956329987911892529325058811329359790369723731613443835590588349182552157092081406237307836878726257405332605089504970421906906674788468521247665908343981269946594033120491036810054872631629855586434692025714533733561391457403911828352864681880792139722302429337260106374623192224951342289902489957912781922843596238232876474139309455385453772502693661514575228273557827158398772377925973126515979154999047051369217456806412229941868774074699239099231854521807386619722993136267691319052157765626309409758116135905138039866697071711329654612479486664007522282638224920485489436053771591161905210553314336412476167221558824934133001913102997244640497374708671009323261520827453088666244122155551384230642964312397328575489782995975522433705761118087862967018294608295813974452157253961819513479235418828958086241099906209256254631336774890159443472642960236368641384923705902481841286968083260138732211335369798902813450742592788968209544797785048990141102550815623466143304270783698312361715994291300419921029028765702011308619925378346581315461487904686219224194889607775917082800070924221512350126699245482941116789753984150013950062391491630335872678382337978784195402516415479650394548557504907769585048137626055527373456367693183294825571129569183953282924678135348681593214409094442656943072360619032618625213738980745254510616571900925487015577623878942664396607150679935623100911649429425487453561857388631195748112554310526046305392712588636021086101253572669185151113844813468048189910589827246100229077503058738802370125931524866044913407528115634200534947260227390171458035824141191415200445955394523441296836403612187823430834835257011678931845248468747719297178546352563700068807522684420164807421092326606512420797666840080072402842329884980295295391150184501440221827427509222421475544974853864124403759155364029284419972674754099313386981854111071798728165401836939710573172747696122192794998328225037294757353524850346076564236205831308107293915444723832982185365863187959872361399410459257657366636700716802847166391884198561193041085485829071880782985053281806545212599969546915019746275532669697846275478552178379929662847451815811838849671265972763995604957587020178654646418088105796433905485904085299637775439251340379380970681721429226490631391198504580266765550163430441930222775214527294458123300830208408600757231671511948185825207038549826608335003124934620888139398122855396970223161145631967366464873727208494484294186512744341081836251475449193133922024211092078062833381424851309872322693217062756156029293418711844604276651862739423213161063823750534487940845859553146407055714130305760279367541288883921469026216723529958092207936023195427057329865199044182178146505201550319366947017480646961058264585626464757058044873586685213747284944555956264347504310331809543684103452234258131249532990887447131132643424616566249373751012223166144184109653424176819208341548537964325947741583660367666599420919347582292474009677258389151767461293581554485701189803445573768490786887458716002503943556248658898395899168893952550386645539590595445590376609576166520701810554130591327810854195828728849688456703574964254834704863450630563195754971359259590155654236120778150820617583226672823651020827912488072545496161448840728289894272525299788363925515750986196083819524831099449614828014282434657821103245041108488385412264258944628431773970465623400404854300932371673647321175966525567182291460146792983613963522765311912568174936023267409810806783186402074410869874384606584725926068238340437032978610017317847988327246151225855181715875805401065835520945848061664641423633371110123123187615397072069612602989645957307832973305268332681488401086001112731171483227543799153626177836482875215983925962492279276264031978360233113276588550021448597447398604838884807457151010272132648144538051368280056122135569377415744667475955186168394712370422036197860525059933345998886857248555092371743280569515557777124664312371551229842626494837734496632963627153566592855942538738154744525569095711898611680359150509763274714918218899522952948910713857146251183574623581472967554877800592620924437081519560941062994459472745188194976449886841841759106671436799528272818436126328610902688549648565107184610500611996447738416451023109563017521374293187434773899710705297167564444634533997719025161741190596620482578580665106313401832121782601210350286948228937370070960912159991287831832441179605937918286856251986870811390101544870555204444502878892150537878830958617906410798302673006119814560837900845096944313680623089900800837858730069197177982712941889297010950044671461365655273753550434619632317787671283207729921313093606752292483484437098312260268543715278888490093115226171668286111487985701962533685754271788238921303925247307078797062973377425112054886606962540505435087859241512209277565743781751424110302926384035636710465654636026578942192909154326240418294578561267367900251635656752707629786746475915185278180064550039916840610635369297343069989250905096928820636176302453164253023056466460021272336071774147765680671333170258939641941821347524308412935832624339933194270953805388673676463394930684770197296778512489781411434662990512792761573847338664881555178275730425345229598458242616605320082225111798841282805672119919083821615463291281028364820242194246165133388329754924795683014280701609887190815307640095963137641321942933208724977471583544450353424813186697148679159421885118983367343088846240860514438881472234512517804311904066297267583195090296389014799173780404924109359478619752471506259501692164266977987229673791264301194153875470982164787973442333045768389616079758679689014510850777360773213713288692934379413468533136746723200566756971015308145314075302720279314783233482826146710590124478666081381266330743729936013246497598238820397652482430502640721796941953421552998504691914762579780557508640189101516168333872695016242973361044506295579860768039637345552019292647680669858566575679323646028710646745411853906732795129997125840014049764992100973938592364583687789763276110928502702950099725854741418914774713379570292680567662290414772525047754802325836950998262180336501616439869346412651795039494889944652838042072501305787033726804450860777305020406982876908605887329851586689587551974530677224094037063152382726038835588093629523563176219627037566178159731615205701216238370856559328801208554552739837994215249573975566723312440602468176186009695575409946754446032208036609792209294579488994131294368732659924400675893622676242149523833244257189284395146846199768385559348026321643114509890001559837315064375047768587506097855258095371220644239206379529786858237013778673471602944808722236470186879967190536750051701020811475642360990567046339765071159674007241756161979177594491084317620380531794838301733340379142623030248612990692266710942243758020983880423625852897226389806083417660786256687021892679778503107330925341723625129859939835822188535034040383309309631278798009639889960612944561777583235036349687884560617504434660967938115431858486771837151421251306409952868956677142517020849845589300549573307792776451045616343781471669878587671192250919144892329754842813853462715041512033145654770276364537954214259910159141629113232286895365732751425266445759604337075469559501018676290863128791363905983614716914119069031724328485814505283335463897152182904976672398037322763768435138754701716487477219951397090741698047861345998893747607982885398434823163657104062319323601024740782240734549418391140248509724029217891907860125135461042969947895272667562017202552653665512497075088983860296271796539629943412255544703584488359544541105732376189536272266065060345892910539980647661996979418587779855431054771882792195371051709945506732067865224722034172056391805370645515219055863761680983742035407034560426044711505567295419461110736632145268982274691899293234966206860145120518069158612827596813885065868796700197794744410133429635344139147644277584161020522819643364331454631459092584594238970969360462290154222770163513417070009371183790471742424979329741436533826837202405954120876264161136257851276156676251085098229041167346927107182250385746972051158426897294085246906151085348801355047784932225963843075753618849369095816732186572533988528512403086997643633350511092248749140095975785018245936644883496106158866501537154714902449674198023271316330112232072075317681555697152158459851820289102458488021218482699475894287128860561242838483422885502281691419571166357969301582438477453362223294357965070110520704004576753575529074354620440687715606425643899609022242726205214084230865569577855191784070456243489337774435606320621488618951127978059242832158639203284143186327341842208432756693231750133043094968312719431430868446539563975146668509347865590168282955855219593125424762624127066515019873142237694445633184318250430635940239391902493871927824574672478540469501009508487030144901342926921311805847820294539687613866397928690326216414482051667683290736997556583377647941105102010327121567199742776491663330831086067592317233629867920726300800617913543973325022290400692301342054922292555796206288733194222403625405221228940628725866346977510089756503580644238811576348487815864636511221596088215983660588562785786897243597851808811429942817153956889103966558645030091942951856674340708913117126026288217645319140439933185001450317121624631137388770462336237638214968101549290448130146031679416269332699651533461606638247297192489203886628268942940351795250778386178450941771854397775677650506689746355137813736992490938533250659407895804104861660800697298906679083803109344522110164717333146111818701836276269322920490934919947891662562603231327884718840144755118097341102498682348381623904959726268694479430362700646844473998889508897519255298469703086696811526301022767906457698998286219561763203796139102988363631955398969568093840405322651386928915717923815299518263922991468398467645024902173027834617012074027892925807227487394633528709997951763309666826876273644015975570924810158057669754199270337876942952721217969483317674443381993768294954233617915821147396834809922812293268775644613836420830793463221963235929980881064051896879444727719478620968794756240888014405362253942406873321848927241128654090707579818133481590603386426123266419357612335237956036181897670674535589565686797799364374501129246906507981240929254908669259301536981110886697298666497767867819678828789257554298709916159993938166688662020966632807600258188095398797021502701028163591061583377088888722162148840703730448654519588459618186748498880302833803497692535630984426763194609554176368171005651572196881839192214120354270611783131919034278733402825813485920858911990493315218293688357693344916357097126866508449844089777514816538755430282624725686562733069810937790983147620539805753340732090906979469432950288515120392564246718861942057547642911677394913526504891800248280199422458282430716166661324400702957101629938345978162737498685978686140870066137359728309598686177946371625034396578291074151368074811905627637834175940963051296952311253892788021140112256756099851281055239555444980483083133036884486229238820819277524796474110530224393600839514312538122448916204492058028312019062434219007561821044742689330131284938990187063315783712966721789497328792972378830190202860547534443563220980144870045094745626228437480675974289638423224835724933321293291920800974400828319875430874058581029722168328321115631320002533118317602163130627156422892408905585485414789929759332289959247172681984879180670054604785764704485942388226940782836394752829434147951704782120362078433077182032813523486321521166964534254808228723162423358268243112793340775565094594590121656314126515804296939075021679773115970334922335875476520744722226720001990443528845439963713111245531479523254613198049987645938559086555282748360235787501907828540848099833798393509072983308372878113789262435751787666817202931894342306215733150056653341337053841440602053509347326999903910290302422858907683375525852670140226903329563237359558536971718573456836259046360830979359247318046412670975595570921482513274115292268788422279799270025888857509510582836886342015930177365712133171860099282009224316705417325544283837552986280204632639066456376959389086625263855400071870697175134190960850154051865788988153165168786442116651234943361475368528472668398100922011596661112589509666517732317719897434790431006576368799897973836233247502277008857145792200806632733312472685628798093833608625018505906979872123737052304094335414229844716658887341360928772753354015291726163667164021696056209358154353539382160780959689601439311654474571052511267143590041115387893664441744079628924924174596597795901095098660338822125713401157741192386592502892319817292181459111657782190376901368034198192386527718893489952739462033730855276380393040495332251080948248278413090991682537423590259802532107850522416602636373048290030697110930531627582872807720226965981735712160084106980546834787768399202698057209429092032343015687530391143158973257251060369383133508769016715130272585078259892780996564225561407330823769455441257823265433137974914757603323242963852143240876789933492306589748716664632132992569483160971154154782266311861678432473868409953067679200432892464762876770389162036949978756361330880323907882845040753086219117148282436953244038216455320446107826935755613061958829183593228167824398922619487200060482197175324682122372373752637735197121704788711431327932935463653569640386573956453016248830487128372105930606550582548105068331883000522142491882765697518274240871792563697044545547921671306745775996878464956564954014394595873380658229164588667110025383099919698905788636831648430729449592033032260029167176571128275982420911369510702958376250485648938872636731080257255804165479191388558273950020365371870782111706963995940917304627097636825305715155693004052394494061497266347247761747202520095042583904955325923130149624044898389116930824867678370033403325673122056218175422629341928486983920876088401658243943762031048528795741485309326287791377859058000791920445758810171311038095966007982084277886566551602095545375600103404318434061730180961476564651347036924905252158944641982044462472945322763814535309348866955432379563438423808001325645887381160539845320749926099285344087819354517291206127161549440721526349641818775435594635110693462338847498987504763158414460748134022905206106027924088073539591161336024972717029355743346120321104930124288193161939314623794467538092091718602507885871178676031388915542832409845509323105890690384642726914980648859671296154870587803778731620570416029037275256683378914523922854468037404026853383045238588053558017094988741102308381930145930780611944437323947557489073381908636874352883734579604248505716058724120574713953468175281958554858869506640205956053871190471138359679621594595757844928684772091557652457898916300132182528591318146264528140798787675683466258982719165799013869984998528022637398799229928992520616445316935658705399360027157490243126729543184224605472698905779788941926992617348241618483939237995061478326907183412750282767519945419638095702656433309875625851872858907986086131802563660510217826238467700567051416277849724247874553654489862915745903288372777067397557963993022153354608057370634629461945671738661163925672212795917184946750954667572512962527613872066533026668850292269572652223470976165051617789765229275631866026485923721752284480051608357381720851396254174263536653190677855900910793533688948964209065918978124042831691728690227044102807348185596655035761094574647765696597229380904403436144996889167760270824508538711713326892005942170401490524590587158980413465477737123822894845918287045371160051841061696810097566810422921855710740833080394667206069547227607837628937959627756039066620301118283937294058936499790202929092777604398562102475801136797639888651925765043380795633707730333762147509329270016737770354386977233432779128466831382769544154694456022776283386035658072409356675423406331303816838237230393911038153836785364135486514041670787091552695482825191874602234849023992394687979869363152564611423613968880856296765209936552464256326365463135040732378628786230838916042376568862687918018868228242281376334067742749764275104014186187134331535189959654807588752406152189301039897510257589003830411107327142159022251419899686765988781715394110172731401448346169475210823489206587598303608485513190889916629948815880592491027051196353061005272847729357974957631664504281285402683933555307540024051574313268004722369181699546511047550746409494894140949544492991319823096353493792920239195160930324062626858706591617030755255887220574149771213631670507412832603781659585464515103969561005997493366509776785994277526941753724530394133848344056472651269632396163720809468661269753102299666508212581343619828208459104257115393626403530079621030600701127536894002632331942090116394382887064846351374878253148283263584873597259527207438288185116680155165839897463428616485984137668774668543439576738980946464797008431967742157624867291155196927491305998707049668469097304404463347299101890540151521367806035918673621942551104088689539094334672451908518024513950684211819137401882890901505622399145810855422834731955399884237136791141704724772196509304116805977959456073096725917699840564402565083050544152744263812045507148237880327423707034762303090348553956095896207198762892742894992765661603955034702772393940080519478131948976702931242623504069196549578119305470260524581843538500645824160126413401837568027179879808591933444175549315240405105094402245492521145370558996067354846032626646127961898895461024535147946204126301982942540456411257763462922859399908620758646522813629653236716785097439313809098233648428982201906547916022346708604179269441246038255581304555924559574744598322186808160609009788743810678570631671350465207867807185848721719490762550663340299629368093122909449645734853788337336736647458771355903340343629661113529622291768348014284667157829161672388631109474041570078418522090957469296510050411052388666090641981545760654353055846781900676788487584865739059556805800494546442290797548944895951294809471054963196490665058582169217002390605784430403284108858242179291714419380788750444291871059789647888742599231633628737788850052768030715194463532403346838691277251974567647599359660987966821006219735808974199036123819799783595410179533663067633787634309838538472650865506591556785698708516500143487095808253549161017112923529870742277157879676550992360489226868502779667949320051489906078043766004033124613252801788803550478961355657244839425862017173461090155825952490118717804248211612569841313988629815054663499085203569885161260057234626804094101965439926207432195915990826521563360604374056443473021122512021303944482407262141862110112144358468408977339086692233802161649059440425154743190855457294492416887283975323085063031369128047343476384955077913694476995297837509140961262190926811402148328118808593867396276863053251259348742374321332887225280724535867141163372081193152846913217100281583046780270623712563430071565569401047922184868765911825141823365674040126215496316348882083226859239722098637698309302335086907862774428892335915612198645855702597604069512081282985679671356397525936406031744288408465279210255742788687772068564893483420231520183853400014652768164351835657980854637741332778489064006340826019987728536467741827337289372379698363689423931064185411633749779612369376656881175388656000510841072492736974818896369522562231718695951167207440600048401905194637364030527546961583610616729670338432631824579486353928999928721363889355140201898224799383865761014670381392663742064759507666780985727340001591363836473732914069267107046589904717080791662285523835192171117522339260359144183165550359811887614372521938032778144937700903386721172777837266490191834049306653812030098408705774011786457086373015569865383344640548941461209496428664852698408337251601383640155410593257898117210899763347223261404600050230172062566236310610951112406750373857920744138829185586540418749843903724496760459115889343738483989820673727424668821320800973781272131781114693438847564588466167745049582564363062096124672205622126327523414011871640841262445932700577978351745789098825833527984335630285686347892860157722340185430421664941311780778103070611236407251978588291317409805593100489381069559225838151169194812487753029249567315591415607642940879886829750273549054113128877594599036441479718612635900693394601725142729155593590192533796165438268960533049607715054183546763144141258841854651883180650023545544021436187822173472405270719830546331920191746481481435501349853082806836826659008000222769312764627613830400587042477011242977299589879355797422245996005563363734198661664809166227398627873740478654695408570587579862779489722702080211625086125436812375605348837338133872154799685548570784332953364281855139346875447943271332693197248160523279807724434730692479278332053519524546617276957271076515581933178678156587924309272191653953550268959328232000885212397117047967788082038206104062503863520059439556368587605846238985300746544590460732858630541442126408603814004908318998504249917953372632088425644348866955597589483030420353737241169313227947478140010379230509605597783587272967204157378425764120216287017264122562008175995342758011593068547824274056554283242232857071888922005825516422582631109905294020959848613410334359847533009029051902802402062580108329440959529764293364680860009608162622881075290012798082771077397866078048645594525276145713701550317577404438375707869093531031384914905298651111079168073864543089402726906446172679560857488883971159750557516045952738863943322076100134649162400236102735451191137272165165984648930437226115349823748771905536866373203686704818706251754627205873065585768355051934980441243841779447670174068895407004231933521218571367001481149220867092710005040112708680172328714111238241017197097481058739391618098910083350841013550849963289654570751133833570096581815782236693723588030614863390486425161662702900740243641927675549466577525109915081958068853294283340828026237635616727950551011327283644113861177691660268752542382590118292531399862773238495723940525009063148012950879058552884269294045342182399116902533743103024694084522765866528803204350486233475754546907965883957146632257362555467871389770622621218502039805700364651980320805084873299563029263827288110346585144214706527435698047017490802585472102759413129899590808788388123448258333241897250267346986052942169223866644145161440430307000971965505183554171835417458414343789130031516558744119400277535901579109175089013679096062711534464569498956208438754281164306537739907459249621489288687206323070051407718669893567069670894466036206344327870338569181941291829539176662764288401540379488508312379332655224492938429682824112012129028718724031474957987168416149613636188466988013917977762521087705856157668533852749056979406777030085321778150739764707626438983106284103370834597209006918400483559082600866996733402599629562538673793394303211488289070552578209450756755901584133223737070173687724435424765787668709538951268921431678858721733828467248776311444035951723244963852340073440672485120883699163169959901689912069162266396930616908760619902024979241782831109702920855714852656429098105519084362428982313395185053033621854682906616319120977329897994015125004414199326591637488900989485192359592795450163697683370641306315457695741790776052934041797599716750622299195715474413948020627710477014801310968442804331277807366353601460495649740888515100286621102735628770220149892429705926367990806087479435289552385353536663499660825748980103053063521458413838519168072548371508549224997662749041018578628699360639298263829853808950341714258864771941845354429085265341126599651183814369378275599176646260987875200301998051348199568520515094327830584712442006485753856567258983612936742201105422342855341557838450617110890066090527067906802609246989277313669372125020666478778997337160998112836146815742507460151722782698092210313075464986356430491436881819110339988438472670304616667980565034433291287749560407902797231113176016024830075038156390604478202446765583684057183154396299593872845337184113394610588017702687561911121416003081629210722755241647288463708350669921314920728504722782903548563665923233907504308772298030062310513024226006207499039322959516223215609950565152537519515882727357408053156287361613168711981541913066982312624355045529929892005717436222782317710215396364566907428071182578049990257115559843899262740748947707284142947694016830638400185082611708883254693813019035721836525974075303556928007137263497293150517961677821595781353140231777302445540168436172625638513539738284932619352338894408033180589463064326940198411993299763905684997741677521236429750630568530994015141932876596866348071359690203415684334332801871903268191479153830336002158149013425506000688094029463878217653367341798242423467861427736873823835204597234992169634511358927559475129504653165304561129027584925207527622020643067869559213847992328032142807535091277583305817808410948931108527089498177837919142044251679648275952022240589681295174686755387515684778125307896780892956197369896976703537510849559455014113671847063108881443344667167457826555296009591098452144100687003973198243069415260001314636148461970079885316560184767663231265986222073208430981974539947656562719571063243485992147356125642199963750288963310659718136719518016989255385814785412050987922156160271988275157655546373387980742647648431192096171018404507261672652768826782076496443588895230304484077053007250217180057616009505177607446802138851586309647640756540425602566731173121310776907767013055794190331357870877179207777496300552967593003567830571316947605895000951097915437748736708259116392657821096422966153551016045979065825819869732989679513148401683506154448528185666916051977005514281246548573108872317147426410965408126793606669778061213187988142756804182393159557573378959053167820357373732403152439553881880766897219417927105667842377778731161299771834692460522736094372630601915624576401001701438960699369166670639857412856942132671000972674301893389201146273925551069138174379032965420554039134317419639970504182726249468315170427940462783134154511406135648791411883327413877850709270468009346034187385796079473468836048505167157740033075704093834183168518787909632495549101528062159441185437256097707788967621492313564860030863248378171422526562108624742408482451960974504753839282483704465754136451755637615493862233084725351988391626209258466175885197509818211094519555993805794230312616176145971759894477133415512213183627644203193439358553808707165846964092472429902252255973531691364680345847467808876773141615726937741576017872461263737097110766664320292595012072684574764145620540598262796539053589575468556794600360936628968715977831776583117243747615728243672622235973213425555880295667177907407334256129158181054969294352927786426247562479102357729979224130060793360907800841415304855277947154015711504237644160879368499985985737869364059927931840902787093405977066388998539924414944400830982690867819074012381119253186071946144990278332234036520201123121469761372665923124793168655579462842790241596081279392557008844173441886418004520377181239977293949683341867436694823893321518388263198209506069607835701998735091105800619048094276318541257103173549258811362143928408009307536480984655009097281690555012565279975632562234029319985597378722969024416373146077341928544027024379188487605804945193101280327604370682713497993630861216001044528189939509840393970986284279300919292156836358057162745462804188289512460822972465551371756959132170839743393931343786363790553730349084636143153086473450570733509193060732044356245770770047315703051994884604732889262234179605182696990969068075835169059332854988678397159893180479947166421605913079220821501825608465561284642484122354975855320640478738836871565585767236977427626410388605235637691244142203076472614712111472176064236381572128584607917586419204094731833442132917623692207728158682227597749141535150237301118990220978444292619073630801394291798423118986579242367209466801482679102405304798857076410751694636094075431236756867522356541094781996016851653577375428652153448917288437658512232967431952794354191047175900375237092301571936700131134399731495079561141582619140739843934555642501186226306036496321558697266395781316898687407802009055135293692766567339512615641745446552391840817173573198628921570185938960767207971521593677501920411314028597223574171447224338852786570377412112132149186966143180142844901569993377042619050254439645793034996426236588246206716312465273087726480214544115728825435162767266408768725142136866977107090924681168913543424047083260618079057727117499685632444871455819953204571480424116348868889189033333219397503263253131768597883044147098599658897441789856412960379094167797625825212375085311975777943992290867702886098117507946955785618546077169327743449504549872910020991242044108950086221215481564082408166489269367244328828261874660701801425919549074184411643872697466460466561235020767502455050620141454945805299928858265947179826967937290906574960978184633519724359086224797676758147438647559324307750674231666941419648377933606298128730822158517982269638908377597944131481016167506275277316460086501380336255647572698692637972661519484204824559429683863969808209286865239409934148297493344003171643797723845510925555553992301452714643947299420590236667507290869514297715964974530722596053283990649965632465589799440173260040914600270050720022805423797635072519005754152182714357697341987619743455714664379204170351370394453503392982287512079924170816445830713164168703961016041942243266489299283073728555000046483540802518673517643555591174415744842572580180773488783480017716909526288458131477321661255264152224494067760992693538551010411038710261388266125454182636686666879156895207366556217222040359361143642692649185615077743993097795663939178467450630019575664686127664319224931135933910987299674702230158388294224310821994727005012558253902471969128395175624934933761210599393345013822241996974522986554835670578139726699434311919899318734953309043448808410044984103438363709833102553917296810338256376615665518396625589252091379061289837687534612644958023698354191201255627931818423843624310031637879470045657077446115868652470398958334011059764743908305490784781891916533096973213033354531825247257593334473213417157982852443797777123332645328296100585008341509227023386266935271931834492806785950418214749845397986547228519797387239046670086926640705403178797389165464446896934367631669647809215019745989484984664513554548181775011045980923207329955374388114421817331586022832596653950507371967038889941543300924512306849042493887780178066621274257734691313068999218495347500751236644595191430313229982832928981167837800902720646988043488012865518939875026515078385236622328607594479723680164430205440143555576092257275473881198362414270353839759107314560884493980501461744179993837231776589104357650924563360182567365443149009591870255208771856285237511629745364919480975969718513536855463632509359640926535048547366053616662021328405846506148786660744931655551424366262565348497746574140759378499118902218265454971349671092948755002146295477158161599682331617008636343919779674886180676006030510159969432677845891042546090964831955113668270809509606711170963481537250820266597036543833074479143862412163910363774745906764995909129896767604464629062724546666793864175750564030796851990573978614311715890523282052885679134599814314203314646771242577301045109668808568599544706174707744299630762572142926045793336565867760036717177999749644681896852452856570913936406765472128134056113294563039421558522204374550826850037205742733262366262712910598308054767135108447449985005377441183638159398437682273574499077824986351616346017423935989812257172782950676347468928193799668484811375228307826994440672740722483458629858924544157206684289538454097166254129296535038169967824150796129790123903928057998461063445700553721325761281015937210524089929845319316774473578504947342970724382375948519949988910765750623908110287237235569786177289151682648636102487635564054162856812359627776607590357217970650485417937075320212743433377489490587779579122762569382265763260193112504306466903688615946245715243517393119667977366692376236290085726405754488042575432204424491160240047175537347808330877909792096738491889686363330957738070521049028931231579016638893218831190894713476826343316360975774005534518323290058025333268798892374881334663063297413343204380801821299045710640071554262339553578249058252536995346312687844582880277719586866442393538418011720911566053291733116693504519166582617786773842969313038711821733441778902944984127634437201223973170886799196125618192124428645743026956940138806213665749915544479453779623079853313962027539076707428818708428755351933470437872656280858132531328516872721683853809591895082593473374662672469631278247206343326199262432131184016108469960825199739730574279829875526045769436404748831724239716457840670676168217945020088113972230398883949573497946521884644290754578983634834290235646108051591028131760664803613076363627099041109331416365358833345420864393887931591705359130810306835104411730097947173241062509642082517678797741680656033040922333638114868658074896113618613122997159411589797555416943123628708107956266375057674183881011920380363335316178123357158282657635952334509354207649071103000952703986050911936765836725403071035622390084499975614791356947804368982585875724319057884586891708979649544741869103313368269113183248042470293397574187228973413886384032019238044538486295367764077676479438745420082927247662616544245827467072939765884822051902406253804369715071681170905892542226177297171428361286909223179326906618853725161089218040381355966781822342571867252219460397524968712835718106956926648108291387602180202786701254345511511423029655274749330795416376598341680322967579932357944735206105979444574664836732430621734392602072453936825898581644923594926887564640557289074013628091314453164909405648449195288646215459856989244696411596503040964015908459762067648811181513998756556880441298282034400259806348085896306820765538983306875458911970144467572247155969686768480467488578561612734178684388048654540558435727164907486626256377178100653430479681478922052586207418027263676049266818959157044135352764264966415946819261723439466320156795347147138299496088182301261302837780661065561741549346053878411071803378314431307495848073681694629141844762986033791972481339859293383992553201932032172797124375538305998351317978695887546840341758652365362119040102593584233908787248665294484299480208336281410095357094819045714913866308016411824110639903313797146159263544637113808723332019398984734091465101737456563591091017532598585326314638820069034760015343303487575537010512193417394302860834117727321915978601489559600069789067802205311469963295878287398849208160852722864790266438806226604098174099423641465178775297454364202876411796671066765971975573499140726806005591287138408912488084810711589099495788429616296990348906697912016513496680441251107455587487423121966585199499753588240822512500159527468935032346323990955724632215190232793030563394262753618810511354038607022241341959162998374479040056642473591352308931973952921391662750455694303716263671798633771551617476553052639826655681414219958731115009545186029302778376157371680471649625982825293902396545993235014961517755400242282674125910298079969762162626272804562042438726604404407251165568503226982876819647700276726920506642810568969469691097364911385206348587795104760379973994812321513787567564756757593519980128228070011171110013953766680989398245495832639015547003097662606130846479918443057938396918556964945125698405260106112752223554521173434167172000861709379841229631316947193408267166746096221125516152580747110701362736790774989829079368480089114029259954953096549031927583143434709678897110895294327054711845818236379717404021378025959409470299069841907923763004244497353341128121481531744714591185442772441973403137541684017212623815423157042898218665440218517239514718679581675221779481121327679185096942789569899679459621529778027650721556966111428539307100505347531985594900049453514738930983115531094914644979748394704200955374767543340078381184745313059590800234345317365991504548763046515771062017078761492395633039146557766152991429323892123322516290627499345143860689161812910854711045622162722804385502175811144658181143571377409206892596902847451939120623162702944467112240475697556788638729478647733992872945308097101203658730968435398160964694127602854214414308920251460508040401887330468842032526776601451719028024475829803033438710343087952439425854926250593129741134361523506706206351486174527760615650921256937220454824486161251023307275211568410950321407757690644137465674052347609565609823321852934678213177217746190725274924924529906042064622408984447904981949097216472291363907641567283790713574981563595726858516820166510300414611975557746988931756273488936154863933409003492166503976921171154531534630978024167182689952875526263553284844566634721006570657140033875510677781524787060707018686253864606906132821676687027531063775053457520662167489453343398790920641623834956557225640249179585460319488438865284473611878254383990582422598719400328602282627044998412286299849070631688877580949279961550389702340179747560519188226037396899453137552843881777871802814050918726458610383121071619749567409487208153033955834296950539691587456016538593053869652543054443672799407249653020719861429604488996685552374972975224224417309064384658074913681216318313336988351408735627538489682806383754615185081500997001442818381863753928035755954787338195487458378306172286531850422041118544405371390235821958214391131399650257315834008746962199708646544775148638121430280387263257876506392425448285202922542157111342457420382577404531390993833284014363595031537265479613232328806657976759604966247786526020669179801979204686853402712101873773278701101160756523590024373259154248246457391482515203591312876144728482687336572213436270691685274679486173973505485854283626420623067217107106651701027190847072476013984107671883287572097594794123594399914234825499740357951354729950351029267467963315896691168049865161737242489114357600827457067535601197105149694594184309372877674820952842728523408378347946138695686862786327768565082635363501709454360933864748613512172415523214102826794699947386714936113648333978133989390815740423766568435422070985290843905374927689969934500739361440369943748932547446330564973510990900651755043023137741582743802615433212058520042237235089413366446654208578091240760361517791147079967964364249252789150307357753727650934833786508637356645140252072068285232339587128457070553413060438046150594462782137527979435858593009684074126147802484883003220460016488896557608716532424569031490267422836869419741969605732490674692054975561131156682287729856794099362127573512151632929726708938472839714179043484329817986442011124727965609394338196895982152948271807806304813161563664113479766960322440564212723182176087583641151494185521141679893891183434748265660844839469464181555754295885655453684188493676200929876145326904014536806026880791342317940273623342536004300455304794842432079005733627246830327477656796970743425045591258527306197418195819723237665614676569557990342072398209373910888961188080658368692031234911497934286861925513320999767906802047012229188689870484991855316082402883518732353041386658181516782685832117537560285598180113966397506345355205643289852139005307656907387529367141883876043951035688147146608041831078238451868470261812718710323698967861363558246609044014336910584917384046389721910001957499216775284831296836658209310288646250655946575118087422987364127633267853167202920063644078528511981285235024562435615772890522219805099095737058390820795169781778386247952725299671461023374445655847897034631384122753662220332141387500256703383123689288420820184946223934358304425124686998258521929367996508164245564392950818107350792439188139731604551178416961227279511092236880869704232959330772503946514297950155101086850465565517070430987558188509071420156457851589541914518443246112823568182433429178712111143687404324972326030637310192483878440368779177600335991056282726007094310151066781463469007629535496506932301340706967999005781072265460709818574078683891934122314782262538001826919752342489756758026294139927291296310787915755745463007782858492755875579605549531721949699199302073695615889461816675498842995355739905914778896959507446324829998791204425542300305345311479192989276784300507534200812946673776176799108826030758650722823262289770791345269887206005626422623083859145890703147655827675955877397037750161226136914413178695970006753611144793992666482559005397350036992619504724598619648956354710021276071095229746432651862562336914488717918269398015418219552807071383015996410170798398605370976857902974163013821925933314365873033007758524221473332556576510106034892563994828031800112152508544234685362559371243219059174325083680709691183555693487021343904489071649209011745915984714293601763692936368151694192036312541593376334906167347244483981483723322167088473962019179121637183980106970775308939876182076434881357587279664673381518029920452065145839484677487929796441929638551647891039774965193672725664458635351361698904339422490848814766210295046550726213595408777377585968176496072912984161085427762597393050521245267764190469372095624985755414036213546301044326835642023421616930864162367002314864192403137656741390780608850782106026750562098674216077675953631169894627734416089227160805469527263804217545571660975027198565581494126552782922993755120393305516241923838555461334595600944596366511675114658672096204475254644721873931424940037123503763202114901793418753848187031440761300920366707816139332333267277780268144445460264565925508758984013137130453028062936267263907626479023697323701765792281562525060781335994619589447513366908636422396946371112532078355363836160269015297771844116631091613406688585382700098360674612462058608467095803278630551242270946581601109906149638989922197807242018511592602126650055426087286497347934284338335793936770752751751477343793912505414497675468622381604018642473627626930003939439587592336268529920946258561227517691142765378228894090384674490355842726906892326710231649527156954887110255651329591000302471734457698818128914666846673632348745942969463237141944181556692086476807817340530442362072627981064109149249958393845638050535334344558203215805281518235350887162407534404748038731977841779586590425237536757773177947160092361719406455573319327410815393869565838839342818467574400065801330849995141358338745081145871299744243652030565245700010932211510603035998988520055870390279829558491363695099794693858417781391674881996871386857049922168724275301781693884401969137679866258910303460371506999576991631084159699989465889680792133910860779872654357043676485209461196499425503313451720598024280672761025604672627079190092204864849868625856771713550249517326784084365006779003950511501754482067031961781508173031740660159335836436840578708364122505667546406254184826941681247681696625561908517892993903210354513045292531588130192912383669759057927052987056839605938095031516146561685922847792004137208144120253060113151690228752857048767400260606731102538251941177789940403476561509064958099297973041613084256442293522845053578880514481911245858315654141695008806737379220949911679260219899860578252819446116598758914006532389975079516485843230297277850632065060487019048387511087170295619474345598473563493192595721834950134582521541824914619793779157888877520286806387941610454581020768497293384995735208341224755672033004188239436185421755185536862435449411033252776830514481367802708228247268548783841118309617980566774765581362129607321309000726376856446781119005886970689886718192876735687327010088260024173513785892321733561403061036049566867339945369746574796329908832591518666752223243700569692996998979001987740269206278134026039622566556506082831197758511395065071478864804058819590360343618828578708729177198074175532513311214736342556016027392654023348993415295482215429801528669474253107301174241438050513883782143875588456552609884011419041377570496774938822732604279809536388997105075785458425191855028867814558998253569426662782746267670483787253282054824892006843085874927712397104378387219011288723491867312992147783401131770446901050450087719136200297673475562369144718046199782610991873672711783856845849019144126700434440277067874484688678148474176289275749021418294552359971610352615891997029200183708495384491211072635059648651967802792422530361114304987238014407349660561379545440577980785123062815919561070217383860339069244176848654799118765741416994450754701541529061838783071960421320247588737661604870791125408169182491926396861151162249483140923202734441767471937202762959713512304128938789689335788752510593354736707844707912294981014358529165627143064291317584277872001253871156927890424083100976984381034414591751909405298227954753664693568425954047527653929140300435216380974124774267011234109841596074977344975513169092809324376236845506531293315531131340012388211027662830516761825892216894554264066278368310081025568172339061620469413476128378248675335456705370154874510650659786307294319309646393486664993987940177845622135052354095429223134312222151120073747242663113123190224755604884602823342311583562218693411498540008022851740855592354297796841399024121882975273014706022472426357091025298977234060696648525023054813265871869143472227782585959186790847857966214254051053385163768095523467846171208438850021813082612547617523770977995401767443769727385772925016494767851981608261333032595136552647188037647722157382099386481452077735642217215183884457984902264471528617690347238061206976414791664550553291050878613044636967085991798344303580655683312129865376945093440650822464615992330985599748905640501608709532008300948961780170697203564429278464172866725827232246962664326173147728858435652782702419184143857463633831227710947338254756286720976298776447101884039643628487143831515412069977603573577542950310545972104221647790000281946872772821251623230131235300377775787244007550545629367121199898633194935061861180321072435492979358436825090296945928293085282063987003824071465065756360093920302998949427006178380979284444362213362668636689205102073916593114167347800575603370840376755759400094249467365063571144458940654265248435219566373686993278007454817185788086990697508450119793525859510622977698555068283433205458229240964321430544409735000316347555206056695026565213724107607996981347239772006767667243920992687437673869024194547196944917724736539034598148476057416521682593077393091917217841996268910918148086522562385014168951169955764679009009806893848086859901541321409193759880998469278063237761323732093004919862350276186489293497085857174605692320813970491036490549991751091422225907544240038764269972529873345114846394130138169326376663230904671663232159925874598755691493418287619145051803936794487213125140196115907340037647169871973872145214155977780229731668377489042745343547542276970493858901673914451911941019631233998344047524108289933064774099032193392511578234324117771707344074332139225733018686621487934466299750872161604600183526639079524456757583444791447427070431598369102737608084061332123841277070284528366403950016404742666414874754598671499153418387276491545018361660969071243104611393080535738890279852350844683005046118074620155849253441696419890097997493066862572914005128301699559272902244242505084718648686229983890178135647553909778373750906977211132120512086859432869910411052775766572212184526545621159639570139465717924700781775889033943172713303945068622358380977900180609577876190934763942809897482715478997845035830520194208812915328236028356364346606399713970050977483392584256619760878254941473254735991795322798281268736295308205364170211046948576727934439201344232353090075238697845747313982196554725490932966390355166328506485909121778350582724556055132472652765579843356720696736365336050275345151019529673861739640482028706961542431226353179737719201151996093786428925522841081732813016918820477806512019010526142410281987330970218574587687977905823867361878281465180807807165919249262190833720425916887062293704769228177762218894008390203633677735580558864822394257424267666675931205906847409363470060898376904836892406523829577079184118602461437067920212570222875672931453207194158475878072158516748042360119730177691893991031371745875568177239528091174392140891991462408209972052785762962546038262840873027926093910829790263456880743971142492094225238298545903616831415190734754024300122877974567718353755885873954350725513863622276194769257597347314074593230178658950297051507117354037600496511569039125301732457237592396174727125476267531665435284486253389578188983002072091794147143651781359482088730136867757839162471604373655544546383745196785826129925268233917948031089773194714389374920738630861120491897955790366019310659561115747555218389131931098255726649328767951837119149398953362753344238339723292396750913385703703344133732800257237420540101338939705329845067110404057594999650042612287700946478730916066051004283816030292660353481032626810450914575291126507181168056121282456026050510363289224539758892968687987558613123971358174254031309550360199798148926444018134409153621690294495216714490562770284062107657167167278058491326353014993049191106198355703876745604440633892671703841302481963100587793725216618946594656321900102421350764401420957824672561199863767254794161970087797338216246723795942076566145086850971837888360852363113677351009002022033078156667021261217459522005748242615084717370004709832643157956655239183663876012153436013972169525688184877335388100314026430407200506076100933963890035556174690894025666204531626273560770729788782235009794060689973125308128707950177607996387969694170684979805588670406851409994447967355933979019823358399981228257347103116678213953657880965685126012781343867241420078858172571444011844411760384114904001866077151283940360617243466089534021662198423585870188193458557158792703634749032094323143705664522000853796840797812645962308307636961070790187089724227498928088917450906563813466496084836978471214916485386890209384825100717935060254211534418947065728281379277415050864353444929999359136459161646169109840347480147629336464179704955321285932819525294934745315160753223972361301462081749668057861070575858209723931279807777701735431641470186825331345189689053155197017971320650273202621858151009571789500905951798030258067423142206915596943578762445170061854531555137560235479641645209097744659821234014705770316688181513656876887468288696462341640821492298359110053637428836767714231598036474237725399958692216998145010503680445536829748135875250231130677936843704575522681097618809989615629995801622415510234734003261037529571195594567973828456557894831057953108616823700488004279014561173881567776860114366879664253775138091939050387391630898799536166399456253176091145923504879009641304153095776858485408935996883293340906668359288780756274363397344131195372033950730174776457779670750709462655338425189803619038122497622047111112024017497055998117259411954163880114537822354654014752848119067295892023828266660433999625120746841523191941562084840138630635374532406041946326110763945235765259914142057795065256710466986248776010851516482972881259034181010197610533186409021588593103724146534987747139995273789077083680183566959252633496502465110017329363755550333704072444870069632840138146451339973587750820832476838199667377502270646305371742469642296111249313856070932121634422591076638806095842119289968789271246640895576869103480039190582976054667966965207720552187260406102802980267374879728700632780663607448591608327303202721896724658409954035120924012065547138822970517845084683644759262346311518583504582387073523737530300842878177861259394873881609195487136099843191311205374945895832665563063835528353494202123421890958079621790441843687424709783827981646166914550068888489514321185779624297898449553780150949748967121813263507941480063402935473630418033118219949711171016016330629238576744758711713224548173405301316037134504380627022260960334339966970774977473724515246822113609683154886356155220966716484636150334374410739721341862867582316980853619267852645542323119002785328395889616678302009937919904807670553410591288700841720785162272154716026152077157754277260530654627812896151104718293810649890433906845152910683500603141577863480459071062944151990938945671267242135587216325663336191319951637723802910651645920227320396197544336929475886312528898786409801188746075796257368569037085368542768583141601775940312251207121268230993971163213005424774459415810508477939022103991437027771278822425661221810158870767469403265822898954240378220391600895292657262165553089856000174977154913260016508290368793187788094734881092235729221397489517001637447732072476126425284840074537909568806023711335591656938446867566376668135514094432852666504961694189245847080561053592134619639326649581822726947524219114150248059372037732525448491119425638950924000456363305121084814044041938952983579353288482721930571326494760809525920978548966739430680398952737381429377267210276375374770694457871684795246009724687483050641343891527574995696132064236475600525605450534595513184818828787228635775257133782418867138513503581939336709526185220899912117687851655883058131143259813632840067169098799632192414146711647189590515325043081030539359947418263167836010466452968199433404927478433953356754523148731278973960349503321872677232052077862006007710843083550694197767972072382296293766100919495126565692075862646564432679881668943754577292666240811390937095144652762619352333923861691875286484814369074130501777927291126557267681805302572792069198009149076577450002990002652393433124614247345830541997379059147408723031129855731888213817281096531149961579425731883952152892733225147211636816193447243233643262904892007997038689294017480584480188731143246786310606914831060163401476724303057117783677674177238428609370454147387565087361308949082012216187541875237216932250711787153292273026363233851934392922531379916654391653049417367092614434704281713798560980362528236720268903651212736814878223192097310171530794180023512318306974484994941155702909343016470937043374986667842030397779474692356017193923196549629884767005037804840905200910329097776699961791602839885172460401542417029225782872963186031341792243716734241706328454670143016443214745902826248701735492233216883912291042629787792288796123695397758148916830916159676115825754278201154066282124350190893838346037081752738808912097266480429017952979435351550461158110190797333333887928965235817405263032452250109963979085409691937922064615664276758646297717029626453577995440575440048385798175229777339599880387411364078783911985548284724906255190110880000112926408415263584813981206512913293294517133516249657685689573818883015605479265651164699974618812820439667372189858842900708749770522560083769405035054834927342174907875291099592211422636175867821077830173885411751991243928483310958167050025099757252271983866750258770718172410946646725666901581515174803385417824560437996112548904041054181963702010786587289441804865153902283314240836461721757784872079763759716451507010826177476851740071787707048887095882630214574844511738262729888288472173541023468359004591612952606499625388331896408818714853604724539755424254085645292926834203325346891754727579470639637838408033474788413691291650550581764734505990695324437101332774880353236190347721958406226600427887346025747676201869054323821378260664132463304818692545109971440228141086875239718006135372920822846447592670458047730634631062008907043298960604969406733973572743977105624514790012686322713657062881448885089950664980815689966733946038264248762731342113537684825357685825057919239487884612505267854483406992949615178823186646960513417417663657640589833018088586120770614027152185573229963184348433207566557978046627903440594851614874345962502540559481287698797595154410622391575021280090580689964633835540395539433565570337134560526675103321367069228149688660092093865944461358355060858105197339784583702910562649532144883649759996989794624958135640483435135202116583331624819415089599870097223000856223451555982565056608195986351609227374394641025325411029528082956235530241352060335852388626396457993823509010043381061519352210050321470262549007153542553621798788540266974290153180808475171849240413528262848477866758033452386848881023391696655386144178017148556479623734150812937132408015228802729886740025076833386561768340523123762518049977139201148469664023530272440541130188836487698689199430418500475283368412867439009654232138890449245426553195484508773731779796259612089746849240660434355169408026729922297760692668704156807645837257772638826090298504303101322979392921560271865494459572542584987524551445241194059506744237310964230118201601237586193043577849454405029517820262306096712263927803551205545596812344061893670233328541723087464783970453290402307207385795263491073400845507312012007738987834846963729150534274272938705528233659283879467485249833025687941409612742748430896454643710300694652654038260308451619841320371229154278902921337707152545551213761406702706258327754222923638148359477072556068869280031000582202878508101226536808784423500595400689170715461245159991687647977637694758407721953613866800842201294149860954074542725849705710267384017506498469519268383905912818421842725330653950287648445601554121309215652122062997066282083464846136686593980192562147438614191974678517695640447121496646846684245612828027049433726702106618836825881424932527999617996203864588245093278617123381350224351295224419447567191873349604153545142341920116034744521347963492811053988331319106559487109255008466636691893928875757506075736904492263754660336247429313278107352715444907129289440363472901154294465741376370574108833444872873332448809762550290726112458758436608876640866885890836262065417084977524609494452942824073088584140884250337210669640477477881742997594094959670312868808563180157271638849196067500275154881124758202417383715672343330763779818727307895941480913770579302765433012667481883671429039693998537339460983653815268330330026498421294570640228072570967062865697323117338488592588370025359630040846355051545432954534861975025069495605938752046084560622416980031393927927037399330887252599788417987121344498078022083341337763772343220325368382277591421965658489688735451752552839712506029366121489446146826721304224781210181165471096029578756262387260632008964613067213906502908266936639373422310078682376852691141353962175245493766358966339848464042437575641558008228219759087386993525624991080866168227903841162109009642486847306526707005692515708460235103015879228603253794104905042452831799385245400848461909895566801125066324774930107292881400501974807892849945023883382805013547449383631501038166596077654641938786493808992584124095432891877534713257498351957700579916846576791712446521829274784595907497319091996931344878076596999276443864298978109142060291129352442143630449775243615767864379869846312388485843529494750532463650318502772968658673046592587899739125862731279564993697229421595983587370684570293070790414569455591361565011509102520567162761705450967376873467960212403004429746872230321572598887993032152983959889905418764896848399148958510565873876424009379414990561033254910037087722173461503909298498417560688078351484627503351558886663150993593728126775547049764289464145284046721525801252211722976711702748051254226529163904292192699845166309199636295701911275788177681743528915538612857628577191715173455243898662651940066995834741655066755918825631747984989794427171365436111276977877203728116214319188522637508439316859454846416170210759019371930636887084424522310030426901451393375828692025088033092499281367181337161700062113217494095250308223495513204791593798976390837087844952776208605617336627598730684644349491460820161947953827654973752280091307344530650100689585622239892981143046717657470742343398690130116941073563147187762521916439187862761178918737371218263416198400104024136557357944951564391930779614158979389254500047865110214104356183839945278282120551089388099309808172287658103398510917326058893450315497811990471433270734331524949729456493480557881993138907335452993198126809936713136376911373025228405371194682185503568206384293697428439694977632939600406265097571862916275082166594098701469385370023866877979537264384540934346979618242772882742863840880337592592862596284710869892280580219223003462369641776253751344452964674219190838274486649779561538655008663026698307138578616674564539395586016419592387820934255846343613575646803899907378130564213010576987148212444268751236172512708881881698621281027687907505011082356257861465604405096597627484636290200993365383640937412791935701589992776369567733378717076192164423629374284006884800246450981569516141017276011248681092547658168306449988340396160863548303674328049127630609141121595427706486475906632458306047669111035592582611050801088987689706095224839247057691508581403466115486678862585492730503178778091872089675240136284313257657031403412097360086694273864998178275025144167185432133410689550878519568562406348676592021436692593317710648160546374877390339415794343829202219431627548422524943544305828004252277893696049758954532080420639517137955478821640338464913214456243250514532444239291065325248686869987269318109643644535356814624728717748675360415618858125899121262812002335211478053706570736217496246781956888935726593152220420360269970608126344886146841584163726273130670457364248742469732760032619994721888951278010322911438404400938885271320431091867639543363066990394838289873921481786003476721810956190801979859056434460970415859620575674673193641839798822793816285513173556020704487728887606931152926902894847352218096846289761784312184897379625986303612055969062284247493106847071288228300059574426993697362366715905298418497166615230375768948722770543003549570215354818736966485155935533108196269042147790243073102946461454553034431468195965322034888868151528757282805104566463792866754384522402220692653581897879316262608807133930786829195875920189298780561059794371850063435750532809737120195827237443828415622105701510866447116670171313766618154783386020549120308872973876901052406760202319252911283200815467253961905966703098052536503563646849373489327221572679883123099192426378694554284759296438193804684996746500318935397066035657262138298029879834855045902237612793224457683226249912414826803441826543583388975528218682994160220241557162669853836162705911505537200511316962879570965946417493990267698608623185723207712276060354211152159418416862467679028021694997597300204659944692535235855564559991091559389500205524779235367535497967400977422778193732013047193301451647369257089229247228488977614745210134830525525785969123337001550094657516110629594849054136494501557289929672860199936297325102318790131164576850864836011075977227987873019798498828282950421616731435994279654950583387774303926532275961481650003647163189287765675789330202810767160955918320911850219237651362716361211835670344022458759507328421909552815854933743284989751073184584981107562561594275742940363158853364179451847745153153083611460092084011825274982277990975193603222248306294336938667375484976129940586506117153597752454919988230583801029368062705841099154182664122548812659396236627318229907309842365991082874593440261954519901067916645593484264903278752823266514638454448891513187043569646560509470852513639830812546041479406272679819256382875422799957129223459919509875650441647884506722748245828956062663912188865789984541023891251574858065888613327881841508536229690627079110777923521915385545526275769867601174221826356384826824783564007450483808119056970689817775403939529765673373274875104369054520760748301672828535302418875979125482411992721502029122495744569408888851806486933564482547228342694761337665036888340392266466881513243116368799717441970258311064484317245954190534778928056527014886841380022312611273045859009538480882468064735516300132492211706439435431376527407794479631917361053104012229170115845884991223985437018609916121054790816906842830656481977602832831246135234719035180681672047544965998811904908168564814196070621531939625194279149509056324150088401979542272460080030432946747847473761942417805156448267301958096366787831563489865124040370709933612216084165448552442215683109644089291503869456329189315785385653402021938884126811960779468237435797929180080277677145022106047948296518806935624115889184970122197972146076722192359493634587647629516735806498700933263529011574211632218240465983433086821893651846686380625522122235739098628405891569609512224889995885328633128628684950980885929684433407366887758889141046432061804161543939910264594227256142760207244591515986776890165705926297197158158845687018374747153059031128761942233647595856244487677568169560325138982024140908928088098763883190038326261885403782100495785644345113638814713668415390491635244740259585079822260413870771270306556833534769933839134179032056738112954038155369308167612042546842413166534110415872596466059664281788343759993473471328145631819302224682850361164180676862031204851192884673023457385965282226919000517856887390640108972911978983614257549988196926024436010991304993202960878665940015686411214007662625279346242989639812433652024307470592913512136631612795231852281406489564487816426467074365868258645934701385769252111739180760236457825480560043788568518012920954593744365517550318747086875673848825860943576925852810414571229529766266156423061941026409764620169912886344334487751576174410066041572991010366959016560618668528465122617797606558425710510029812674173552371615251195001270460641654516197328667332010967873088875722691173797613040272033978503549833222240082051011764201029658897199117035747393773538985115771408324606530681561279977076504402468934332839636234790980089844061128031502033943601821786737588424659077643617873009154056111942013912644413196565096256343994561873934762414663177527871321253942646076149251694363187030670657595478827145716669026589444555188334692855049556169495790377807374792906477022837691291607804574222058710860430578766921675708595307754555445827980940990392771237413083521488648727229015610359894064675906509700390868040943590587842246753783167381900230085081117403931429862958514743727447905112643713225572212131606088365937243213502569878302572734321940749858596952176025690087868214628605309364235438305207938768724608127892721429410029997314470143875446928003937873694179929817207919501403872382007990688851196363755801128464730516770539364053524810907770454047463302118766001375924483909896258175090719378617466291227111437273975801548403566744033854616041343488503045746998594125851358281213654514216729340676817530001822094831526898769369793858759549843933833110412482908232495688146391520704291081242928513109785310027172201696639465232900072348841402649206385529405571021682022045137107941264162612157221078069439520067323379049282607981525420774642165688697504300589381223315141366782123470053766984667646827292667478184707709073285299777698456101159566302847377134728196318200776804861674545452752505374272103804667781552319815318303689083174191504196435510224389472411171503674751536901446408519374459449098706336897981405620807206901386961646673058971358317807075257338192728034221554950958929754386297683022448311785443224415554604768216405494023194204193714677410170137590649450556282357329044798228338702329291756245423848510272285410818589621481819022309487962100910150944524104810760747866322759207399428114565506369560937493263864812813803958324066844806689939187417691074249052222515724232703951322509537407108980494154717997904287431885192751145157469518111757799229653068139336961954451004084553525923778951027225783328570372696978087589020243865132166432275307833361811911975085047979964273642415592029122355496535117034724155955607017948880775491060611083040861759592955918472572067599884705501372730968046249129195550945473920436740638567411957888959104088486850393429367282923592082923599895929431427652120031974383495806476158510022225858369552911294279005077952242753658543555781494260510223955582847433306863176513835696752875676383933921483249707305663004249541343017341393949153866212218867267535031637971277541923899891612185394573262770330374783190875623014223906442396107553986507960998836364928240271639222447200483684290877167549488080478543918425236520636253620962591962334794119954849404654406141774627154574010116918601812300480710812014714001640952461723249737901446754441194496204096685108390535353388929687424451868884791972170506442061538735412604355148243564466380460580743465973191361364343211005782969043628844913463348771415138735241472901304006191209166246972246550327293068398455793386199962196405481778687555616470128167375438120486737163921756272053760977033398461308427129715847205531665199421309472140307075669421072896777911937232591682121142117054053837723173173876316016012720238896057652123912881498845042542382076934444035181885035349545917533830735419567094270352816435988110734191812822111635032622766166041511122487679584183574427650365099843523193047194139608340046687613766505361759175254687960798264429835343570821092324376015838326755585683566014274849496150222890972120117188460023941068243346183777450570250516176120674108333071989073532060107086074470086187204395931166230973255767409767788499404545407346241456464087245077087826695363970455433232245921644138090206745651805049770908114056944390404161479939116739374343728323006349764153968282126324660538552365801991740053555336846371654528400693849383530222743658889147810842850986176035063212618113536031832767560879015064026053081501140704645610211007879646220845517233699393648714103493654855270293994584597915678351694445655319787554432803227619651863149695077165316236936304694966309933757974341459671478882349327060983201399191250990383349004296566583626162769467558854832657297269339802229162698261206368976638305943292501162422717058152503925176310720236575212258550748767629530261804835246579564674176279975612338401255061013681906534125214383732218052551193103175289341777263669777060335943035735991800289591129140114718229040165442139247566179561363659001243015297343244297049452621371879743961554243203009307140774151902265594927322481450236984602683201515804126821998915000820477148928359796942234048326090091543199297021605330670770978780253260333527140691949414112540484971800081848376091573055191687438075989058629106240091496302054096875000747609533344333291956935914040763635582119119391414359983502850197524420884844684121602049528353687282368603839057613428576146876587826072664700497511767019348095011290218100328875905812478253038457677232347214917170974980208958503960803534558322770974472496238354260914520026652404393986872082983443831325651212125226386655985970532698146042612801974912687323904073375539031976747064914844163841460621815163262134833653047867709253221278009659014508790773044380767359262750910924550173800192983047640327123900113690099301442558001977558645957973877624625357238773289700469778779668070863920369561922753427272899502971733931892336016873668499930251252685496965888303066322637480180262011842381878030565407435534060014214593404220569466875583161353715353565153463483576622319528808088306468091967058251644339804971981910127084367778135627404933254453470848306281441422029157816443133605036768402016682059770312005748545010979075279932217350421108843046255153659300125553431308696760271216185910721388062694092277877026185242221958666103674348597513384947694577075363887791129492136951047606570737367954496362585433787888598353595779800612048735512645997831552456835101095534385981038192529996811297403615576992418187406587368908972070256221332804313004713769430153505424338932777042354034324896592609768661678553751096903849612559402020995473632313322703702779851749157744141065795940867879023564933173981634293749078571330375155867508846844091259336742506524068428588573911637067212186004817807714320216385566351097921582473512191276921629125384673157138643064506107096831152609916434840852376632583030053942898618063666413025122789301077538389402582771501882007567560382922112004695306774806397168913361775955372263305928629251737366853582565355347561183436937077779980699069970740756183968702880792219645325822426881151608137051383931035154210697922502274984588059402862594201093011111426838363291644417845656193457916427811718652937134441403112420058946761744775402789575594096455445144873961069883159399764886978893392824800663561785104758570420678198218492806281665934593012706329885114914139753857515570958427547956521965806124318186632369674461795687699628613586244680621368241215922149406055681713921796491626420621984122178357893663435650356122849796964925629958007319887572934784311352168731594741328770161378011466711752181304896265454276821737942126909834524242421784043577578012260985837835927140694821353392275654795179092429269917037365913031997851660428517519151125974275508875429861921502846158533950258444653136340670216402187526513013531307630682501211491087202467334444909244014404942559645905562054110101928199240574679149853708910532979861182083234775185732037340617161153434067968419811914340708833224854004401624879181618078443033514784696795936865353201163829711600579928400952810670977948645921345495327865847373069161771166465296286859268210286680557866989973459325705482264372527451918371698989479330312445516458917231709823412549531647658497378410327760258783166541749776766137300733839637163651621881500441021157105882418082110141814993013924103784399727637594603711645526240645176974098493369121863757989516612127339951431050383073350800438086213436075212603128330886659569698473416231215606536615842806169822343990733716926553006930908409628781069589354653986642457048928349651799668547369894565378298187436316997176061537537698778195940253102112816526326323330082431180006047124070422352299595267829252672090824866296272854391556480036733181806088912996031416949569285299053812640422066831255736921412970378285125454069565707403482443303180053005084623026724110608581297278964389430221554433237401182253715575260700551570109889983588365048674890400322965312014378984524468977701907438460446670077098543782121334525704179309429994320488137287162800749796693613444117638811282275014601108602006712925364509231552765080703077313342876375274299123878802330397164174628037104117118779327020158684894443568744613432555791035253739571531198411583271789698816427915932994040379897278878885836387160080900030102463574889645714320068357785141471938628049570611473838576201496806793425266769121688612320746183555057863516964671018970724827710915517269912992603254114359273409699552024438608734433693304863214929401162962597300969698461347979935103531099255421117148989285000060572375267659654504248102144710149634109358415098393332162110940027234055633158051249136550054731644119041930422448558466871329778602567240929170707565416557482676207048834550487814552346234017902731125025013922137300450918573000275522794353722376384646656078174776009979959129778141488818585501680321055475582715407998745156088985200222060458174028412908784599404135970945489452114324621657511588150383031447598533167947859785219899528274495295736023204274571822920588340179319746237181261387963101710779725424803794101688940105161277196545807377634316006785581463054229203675491076558384398484349742661748347618469597299456127647855977312734030922134989975673225051169613557344480527980583170670616422224492566456032696673731502789561148061188061977886640444639915802453384085654117440987696462573170653267931820502415541512009575603575572650863455293321387233306577907539435460122207609904741061886845896827630342901498107661007685140455237698092381244525422106079876632352493752583025817380729683316755212165564615178521053413325791469127737607448817400770409292440700536894934854546776416716224591572048652561283037270768871806025263351452147282650365216882482940801242146624245209448796324274018395217224489919302990701601473084047723182724694352161977364382303517032742820882446936395527964379790416381503134187810193347534815942485278586924230510566871718142851993538043553346375168506609454239019682682108931259662148539334206022774211956763963217769364582131804763825549848080096241492029585237863667004511256403752754884077450441440840005883207333448354526828704611102929633315855604397163656658131729082491069285337258335493819163489216934959988843108649973689071298532546805930805706171334814320455719864571360254476534743438146564990851131530646344076124384975504056459944084520547964562162233386382775432946902635650245199151982177718639144340742884514481562413437142617782720531097826620190056837548900405910573869981490426293844946163539502053539321552930803656107365095057736473509536936642016160326086905638614606480946487632285149691184541722681612202003984338846064684221757487645416020070509461352027101392407802555053336400939708792732703359697741794746705085544135929796992451652727560394285646562514759066468096100846470749298887344705474475548407257136798862880999482446043617507627367363740473257686210769190300750284676225208346682602045981875686901499538258272875959187022230782461334160360934495441367431382785798532044071264407039709708622516713397828220505973606931342335294888035778960550884588270278612638732871816479908724372347027749094068935111698041139219162732880737534691430801920729101840259337040461677940135912932029542547777401376491669025747410582713769884439994724846138626111666518089982302480040464504611513675780844923875453918182767597587469531800305267715503613028504227716622991979652684485027713283329296756451849558950128803937641353920336735928250087212081733055776396408873328926851623730601344648141229281198130347744447960822134264901756277289132039224290465381723452846057677321785161541270123983806567795460503125626290243951248780994796777111402263537460876031801503308671595833138540053922105250473319159125594060178096816713071966211170024902068660713612317366800457173301848270375586264747231451445882098072324944270966627495802186906319162311919968265306970233029712500873593042531578427997271002532457897432153523602537557836042622393910921333613522670967293626659297449166389737771904164474336775057507404115863184011882008654069958455605674860056768194933775474466306705866633040533298648497019601389617835769193384085712443128041514847540659871536954576791221331528473182160193748264691578136642392035874346566188369696941419007597532999979501725499977143928986012035183690962578881713909165116088656175188437426826103562534320969809962814449872540231643982490358724963788323380169286919757148299895736133555363408358581053951096585050733747328644242958329091451206181323249703728585773910024205634795493399853595210603245704960715011734721937280826288957127470265368091386384496761053988903041395191058406265308216188080681399355251331934954263014796592936884139634259988241816407629153363996906714576612341101992380577048248015112541302434974392165222869291863214840997347991718530657269170319891220564626265011659919372820279892903430625209990062336681824667087644923548628725168331706657181352923107382439734108390656061481830744852521772844342699642293280835998328988320114469219147366508800292919584099713280751915582373390182074149969340329679061027498755622584187731496835593337891836675159996919785640405936115957323052207688877786927806450121071208522384597012255750430240990614489338082645407677149385540750848471845015825633500078819926011309910329405995961776009394675016433281779516691341579174895453627892322904678284605508714089956590562137409501587406820989831828813475758279361074578476371602117106479454071388815229950942495994059858534544434148214990790158873033518350112802446169523086611974579833813792076153259974318726605864152913231083877693250405640763035789023604416062973178288294824118500405204226021906012214281468789404337453946332821858259984771225216813302897701603367868051558768905999121519586263082631715616896978858178867220460368377145505724403267231228758796345865588595545794359218857806770890884780413209316603217328746316962614302465737260458310103265986663051836865805611065738268820876029185361647929275228374035556724232296937408689641165141617228395520822079497125251575579660215592574244226959820176457206204991181698960495189012517004257940148232711997362784124768249676134496883487756384991138469875952617403763259018604608057432433902783170946806763523965941356418441770255935285382682430607743794014046787323329542043976583119179901794929088898319885350410316274873078364431363428369785048401440229336097162370063655848759344574849650591040582271560466825266961503551014754473271093929160877216588318400487182096156560969643463874596839354879693517763365588422833460620330421635153924464996844808886429371712176152656671851393662993119672940211526551326941459068662979993580674893707049917367168568669284553520175101647430431059507855040021850687135775382871496683449502952447965807077532818899735071619435566691828922177285866094664338168513272287049617372330675457776669956520531682871828615856123121616367427078074985314683428013812795230226189133513959231977125515864406389429723875128158919585173444239122154598022480293714961880377939535696978516455947227840961424269105348839929481782526659854456887782269589821557651639140785687540785873319730053333662094989862632282937844043417855200043124604618707927810930137369897467251942865602091593889571355304077339070151818058215486991966925985660352715105280555053757391976888228558000261296375045615701191175808080228402694542640506961860843402614123383938149377196548521479624587053022187793447962330046513180514071821102365909634721763660004832558847792073305659177657759015388583105954140793822881200077821004334761848172850811375882401912768797555173837346441952935574992709982356918618423643016180648471856615057398437267719763855970497460247397331488895360524751930098071786417355654295438321684136823475873490524619351635046585032422686541003548642196188872769259825750898777569278927534913820615070200872327302859950196921894236347943830676142450572612397755786096684851650718185284842243260787112484982263801804459961070550685807441433124187048354276701261634493926281526137266785235414693710271929696418351584456982568799138742320650029799330412578949248860753398034061582442703791189297978216520922338556164662431833125957693750304186607885176090979677205046796072496301363299561808736036685292679265605587192482789991147776368791958828539497298095965302307018563829159893242562004199892549961090482988658454093818365142782524989058414426194200247691360051054418190420387327140692306058299918756477638991479840248224357914347838620947585326847565030070571013413259068207438402853858658801121286514293286720276115653687572831016210580208249881180638589079286497400721384485292977123319239549947134025570568876089120823383528688819091614687731727106567178553411550240156951695397037425841958355967225697068873862571789861177060342129070980596648432876006287811203837273396137328399050716707317776144648626750242966163454192033991058081792616388521631269082650923285998706708632914311335102805360165708841879796415824264249329649668124798810501436516689082149157884134168143444938590411362533412563324902927622569490119516691356287429684554216675958664890315220797731473237220939965298380129326058263428299434619716689707533515814327263959609965838705207947046557137990954293359510323580795569358857547519579864500473475070745354809341940892102551129890000469464304822605755112071551612340910774235513849549003829440400961004006760917166093521826190632736756083998188079687276931309947721630263406645404196699107358544384221750138045485906768445344566372519237654532519001795051708263607697142634535204316010130477398398810048033593406902260533945613787815938673902364957838302933859067264374656532221380528924092877130484148538286123408839381974238118457371682570800365413689992927672008740448795306754350312569216770664021105660697336798553630817902019965656583769843891653068376777980053198216486321606280083064802352403313758583510782213329290426086395004392052434261564272022452077997883202703621734205617572287607489452137338357232435610659267341509592879773635814759525835677977160168988819422763377161180567089854034015110352549735478446719829226224446226627800367239055993492389490318747579711739480992094690889274654299061253069137402825179842041240491308202495773371412982917271243737308228527703006928915306657576177935871803314826200172227479758306350874004838914680909910356491424003773179063720511342784641779704009676343759580282941617703211910948209174824212700420525580146134387074618848353402626197470393696131662649088163680698526444201527405814795546078541539029365414928425358855290329155361982696509630374965015435044890329568079186915328076175381488830281722153375174085509868318237271465620601345872892717163763841961266734685971957024582755321101325498236639267311045453818926886914522206437993615137067996083146185448399490159283023804289479255908985959636860114966154168925665100286814044042555497796729236293145884419121193326023021621558393484942644502754094307380535253071498647642985660783938424150446028328112327396826423566154970744736817016608451443789611957493195576091321704869294459719697197433184960290593023998922559204847765338932930968302351366022805573529191645275221358776022217016179646273313417357039185307296110558622383027882427061734011832838113136696731093177851923093114692605381064417457865962661085169432015869264458721485272958951314667897788954324071671006481538871560526413738748637107431925769409763410527537208627899854922772542262520282376484444083760774375350431407860281995510008292606412828927100423867411500860351902955848860227861096148836696937494713726851469910085989015414531014748529386348474184900464100884588173966328954074867891838973368065166403700656341536870031339976355269975491679807416709026686014304300493422471100798509729090065700474270190638188376348730039447581653105308266767164278270996664465982092370877148843588776218063861471821584274096134684136364000019137269374797877370663336218661146149880692650738568584211089555242902479077777978389023729758872111285593676551832891592219807546226414053233176278713087457715093652349156462446058852597779010276064343176241507150800025317076781748818340242347993447622835053428383375390747824668481493435033737937550090135139840024847523853411163029294308556785805592319493954779582510756312242541010759640286122959059496095403504769007128308822830045481830773176686628715674263994463206893206875809681592181421391411486275174717778192384116899402147256247658074698164728820592476118700582583678173504693213189881875929287228083300341692325074456804464420187128369277851046777807789562706891515586893376410204840054520191887617889615975986903115291862495271964343762255101740410316026753057887241558316500922295594808919303951956806934461176720010140435081051427855012003884796070516682130353902712825451975002697859769745212493397797190742133625366652479662590281744859615135752355739470142006624546368178381606536623813417551737874520759662404829079556184936958318383563103570958882617633270444872438539028989534125099864634220954038615778013022767249506816968933321549914093581331187504491614390555697574774337855720980518500251283397200317809325094273559978633218767590287255100301323706877313195150386371441352966025603437520284267363378721344910071387177963456736492015985088966055043209651211276827323771843945647122643571769527591395475982016126022614654716419358630123234544470958508038797088054365751447527725958895819434020648310597425625307572779298668835202770697630959656841614180990580415946216584153845255225413340675428294141835157646949128001119662293844069424518956439133409871659466052702236475852626497469137841283708933714638373667477068647647502327558169508977248965428719962327931119653480714497037265454596677060847019932262788583952684418028550424706477798325443835279789249997459156957419436279186899239501267870113323121947240505425568426097231093102032696847561524247643263587597879845524364876579525279245510056711223644545794423235126958235991348823520320372342498037794557681726757799481293034783073697719603032981655118440363603326027199201831342948993383692415450955564585853139429586312313790829257272694367064339817228492645452234847221182528137003734584006397189538288527623628641744065076350252044037849683748169531767798968195973978510260527132516192843948904850614620965319934459489445398336726457748742373259918025156256316305122074846253724066700114586259248243083665926356248438390871118197471172803050872039223432132974895853535031748885264444836849845534987983954240551760864094246661055511669844339618847997588279795431766898324842353592602604527980338358973623150491793071934709232462281986656406460858604303788977358834407986532994046641701334377763762661844710009186285257884586639301598193090525174367563418853122442720943832045122021791466602455728458335461731066197857949084184629847107101020487848313745971829290058588230755429827818915227492101416312991032213897974400080866952968937145144554492594182772379076703983749429727600026286846882466371186088114802319291234667146713547783652738664023222729245396349438293048330074307088291923988043503038316235655399329931417981182236298546345257764975243629314106656764382703911551597667034029873990059874649677395422762769592438337327591806771463037781929534441763156283902332424498927219944391315720241156075619085764309798699291559009651751630080612250643574381018381455509777369317157698660083814383146691845925030510462102018547764852716173200639572272957265840612957447586475081367996020107224390431485767155311534404557097376964815922528478361918559128923082896840744883507007077529164062091581384732850980658472055291701474508564753492158547759540016461137569360758273308676887965673157223464650941620773482852219231214416687402350077152699289979918601238786912414604820604379046455487633607689743114518920781878798979414668989267492128420669425016643005838186342132236029738954725702568142911547270938477473592718967410302303630942874623838925881340128429658450970876186875702014774479731698763131283659804481958802225496198925011909798081945038987307476784933796855024613129472043369818699349288922533740447282147715854880946684604161548055913669345918926422644203433564964573973770169241383088212737440369576833175826242466553567606600850439805754355457311576626823809809787404437986540579477018347255956542884589097634257996330527865200166025489247098916290389559269918286233516136203255834483665121493679107804160673323521502370909041316723632309410835345612027857194739065426532827347356812670266124929006953170767382458147028542728685391466819645757921265392921952219307418735806796697013066589730237953422613808961898203012530081540904654451647185446232110553022270543528338994068075580566770194181211150692366280355265069781136345674373902065744118859172862289353221820450117154182230413791103354421302636042742380530612444984833391440772725068218622397996369303399435590010721764750109566200221522967162329424225487789220641501603394245705549805851456488844975240439871988596774007564616754960352505751408746634959655807828916665848566470540343003675740937504843214437569113104564097833355384056184703167476168322027826624511784067520615520778832217381180808238408546596808277693559696035408457903038852070205995218831497514230289920685838824363278199770253931850127549115510809091466054155256217057584359722003710967497527259517242729799350663026533553692778179775087730306521067219775376127744797659878732904637250988780355064788119694363247893022025584170791165460899612105176969443109153013829532004253486405231470819194374455268793467670919378305708599380971973829628731056183134492820847188032201798057481925662662991800404750334355174159879213463759918478025513452560233435908433955708081427277541366265898724011411533800876410449148798817674679340899429935135497938962057158610833236039152581329028221430230183544106472905182275372825377976823714499565098783289199366609874430452940887922986206203059271873592486396982720076993306797608459356704496694213940828015813056468117671749398304380524461445370770143753985387762836838897366717292436319005293205485366589827096700972041747225624791820301311566880265717395429810813050065314673651818241970326628173377008129834877709831872477511151767824707221301170173227160345219765961314387862429275154707783530856797081083730921411566703059551153746284566558565021575411340376431842006790329780898307159975147983087926512485774115991578521853230810816060699975089162201330198636817155934822188349103685478318248459153604524091120960115528786957206573666897483819865365435847641644106226975361064312081927128559739525540497568887799181406757600811448857244111340036209891302795962613429945661447622938166460476859930056543521877027315144470395829040438732300611906566954611082774640836611177133787861141083577760421199437173090921463459964937809685920530851836441835090931401250779176324435676712281829714818052926213157620260190842565301955004564603166961259910325164121906917006750804822976108728597338180397544630657576228669437011591938799812531745949031223379584289518395098566166626420342968120758382938038058554435753010193900604333916160750968282260389485626334942931578175958518259111609222065401574134816568266835379224184777994581712480404963590611879130604711367192642774264032016281227727576507127369570581908270390578765084338254642233315715993739132336282690298813355166655603644892518844468772513913844628856822265386065986354330948806084662301670781761187886479739268316416461118934529225605445796327231799359296465068671491314880923514629437413827545685485452550044209514261087085276860993599515001328885562399939701196597807767412294075723279182465347269071085323509886642822879655315778816021186375587380128445878582587288373501650612688142134833646154518465838296964607956931390988419057925892435106079854011163222727347709840564608189315200249837991813697360718420640480989874785054419402391704905555235956173682779741883234992870163773205226748454842496453790532988107889787550078513788206922374155356818936222673133118605368655068141004442264676853673058977382960996388952530703667473974546775336043721101158585331033830689333509751751461346263130262202553463286320174369747816486685856883014123686096444094625044111657718234978754656332757222145199314824250068187884125137816383408873055300222676836255034474985965765962846060538064344438691530669400278118815968526002278193141274739694758745579065693618476986995284982272771625578860050025084577744838012985464823626123364669528919986839377156017621283323276564669974718978673666509240310523129212186124766594380659255832536393411780006006047666283876700491523652096231470272871716911032052502775899985229623116735999192288505414459145498527737491662606379903280211136751625360935287280098166639308322419985127906483604857108439455826085413802794509419504041152037086709904852170046000086001326413150199898987511780724206539034459431309881966661589421083644423073557174665305392856268327357959045601524315438915634784908120638939263811274065465886254260116627543561476826590607851842720805398422781022869330022017965516772441292859389593852088255861355084758949587803056472823331018060102276494078048884353330087872645386549262514586269587666266151248930364675625182345338972736785203018265453601095584814355901621969049227467454999038234837648917826267980739870249753040625868111821716708368985194353277069141339352224870713080560065245672084580707301394723735053988831181259900248118808189294162632766088069050755919296985032342050200579471204643185961277773403045871817497881793476342153645742064135340467201748749481131752442105815345126512829421462925684311537355914199355808043325398687261888043286536413600890251683533156307410080847678747122347582067788207230362231845490688765590602547125346622440397954544940047589797635998798243135086772023606314280677483501234605038941762993472760762081213012639665845849687178646836815118243308087912186231399973569727051282486936389164037678459755190601854318558963335398529362225739639861682618001800221013250318255215131924581407690869024407899315099838423366057607961044228624507374238534908751529029048224016945236879324578846946105179872112867970125971766637509880643574269229330660206912618243619008973817955662689424783438376296241974588084013961296735124181735672368544306992148301497590490255858499406094200559670426913590297873022592390495979739503885196463899301225360605846615057502978485533823786383436771347847253510182653232529009778989380893604964536728738841622122123110875613918035979737351790896447415075704261395803856745439017767790273650592557554686984106018774525752820217417759960821490183958787057235162553621804085930306836010395607573958298250702640000255271468958759947971198964225770850006141483363872037782537956121919574136699361703181194829295679604166488746853992123237875880411590172994105157914475880747500310533144137755786263244326226627742926744364542932349569142350464046774416502385475753133686081388863383246525833361661129376518381076265732238064712856222808242571792106717626287789046414067793314879648206889153620977960510109789202288927430069683338344982728167372260103688121699623033330757157622208820820554486043330235299595903249036833805091211661470260244572556756981818048135363457466662416675021479080034068600758304701034881763599058194481497553253465969393566406913153990317633607262527698222707390123634475799048721781573345058692043945084617154850586365838886264675881533327035665608772721000819495596461709370670853534921802919002976689014713364436346944741783603784991293922735508559407190129123510334991366163070950532025800181058578269072353887375086756996743979302125979220401361863459344374347925800776464301231843353380466402959580593481877070786730707487032490011221869076320145903455465609249861813257218388592761315497295854390110505825972692069343675366808394889200397727535669776943611314691712812075408442127977336825569078209660678632872538314402432743418178703319634572051354757665054227658993348897702630465058633735219899979899677607249015958905358172857819841451094110732549914610039114074127568805423622489106147182491767384047536255484847219625567414167072770469517040812860011574715064136416540300494199671953593223063399481895317269439561500567818319187771495039093230369187174341885811737530695836864254196833806040864152830179336644073282974937827382911036546600763909937925271631659342606638460801474674260471128777556055482359029397760695674580570603270261127469146267284595458060629112803955370419209272359397224062821815750273827151079361555302700622757486544119075772248403863349203049836963636216104353565856623635632275858627777613491305288545412137753236064683909941449334755893884665928070524883761533612322145267948748715873432958689183488612096908124671154628362410519527844302920954131692199225411620575989649003460342823622153715806135599185307715735464016506756189632763951200738847117163308626655631069424942383925396810076553680676488588419244801442252152006596224912121715107535483690444182043554868526188273601289813810990810425533528255511501323540871879973159761238376827369266902157453556326212837930638128860016140346042229028654040587238800853702614071143694166698160932448764570638891867991686937113176829214616952960170236725711523078012577051392263550806011368824860139598968121601769597300769649631799608255738639412449287032610816820706168257156096805476030115579280893788244210015671111928210363401062435914561349774963742527056076730746831517006632202341602612701768239481457968966351183734456783939563204789710675975236987256749042787518137150838395704740711580496275754855718945746991989470159524825861865121300178058557660316444147358118717986204198450606413274529566269935296898326931781501167910013735180073531168852890157704404618217799046121754589671851557296236217089747654638271023338559382926983363954416634113350895673698685657950343836768751423215075349344950867280732690229756799682366044209588712155293655578942483620842968149361026895122851540005195698434784143912645566132340562036905488684985173806027145463083417899191605526578259162740838860023148135905942957427364572236283733433409621856275564683522112846806840264523705445020434786462692912864202359657828592760562358569659914249893641074279723200078292372453444037637533912571959044930643225699179194147359775434871417592474867946920789666452836771246591131378236455240580900531613091634547704251184162230851798517297038912933851589181806053973303853435685837964914629357872797194962903881853829254173281946148956502897838834631192877820342375146297829201720267211731840652890659371650177735405741235080105201243628789533207008615146873771002758611276053402089772777071521637448076484471361365901008462311794756725444719720498021632007501273560845800860769969688045593067294853131771884511097152021826600019628665289271861568967173236316974767939478054029769171153643248657569330570538204189966265799594232311763456039481544544643357137724114314401953118816842163345831614533947915869330021583732350709418981595113104507328833261437773833363912153610665570482649133950786518308400453050664283759202932826857467551965421309120716426478907289663609717452201506642947320475286658882177429457716198309964474040747535169176983788133115501895120407156905443870074304184112785671377100023217238187937925313938073750870645558910050714653026727725179383161804536604158197843931432960178161924704514478934839741518111978760051003447548712721729483849894782005382573461761637869988286028189356246980659169345228434135319045602457413622549064686713928262749908361259384465632845286269958477205598642435572526538102173904359069833392437436616819907533254889852063108068968636796411087560233062831553186265421140762631305931256298241740047796814239279614889557419415320818804447580973392927557707415197433301118159306598154385247127202392547174534766435448680571632453704725028189549098159588820078341627778386659453123595667039027458511006609314397519481713788464075926453124588686023697347236459463559330928295912749819428308914043536203906588143546061277211310544144345054354281897033600669343475172374433156706058048129418577879615372325987846712913608456950295531225493613583282522787437038372593678990371518891046152566394167405205982281002854970819661220447838978953704553562915998589680155045356868206209250149154789804089981400638403715755244285845989442028317068716360037816403319274052230587543184131595626851194808013384091856298868065994005112576958938650413099435827987426824285058785143038434454847144581872970695890788249755804488204688023841669855902294547344366449073580362257626257040522850194480891042860264727485381473782381188743430886998087640052284708666707611268441134270781435491316896768507712009685692434919933651484882042538978442827017626226649995789594600366843094692574881632910501289823064034651881799325108064801579989809618739396286032144154465394455279423727982334834814850273533786068493533704562463260442864507031238826424854974546733172201361421274180957714377658834448703504050904852930091965342601325275498764788891210421415066817054804705819049847965832465210752558798736071190531668811149604576720330985332736249769659906066123897324687343436992248505474874162646690725796953114748805904937916170534512281621061152336940291615905898398830787785773065871661352802643364699283560353470455687950797249005149845636728384267411040064146141024187474120606261802602566884839118358599453876307623219992621890913868640337509281440269296209576402925306130814769709402819149791959168664126648933131987663067111406429831375545557945082077645475017153666622119698402795545196931614019575599776670197092461529901602516019970702037639542038056541261674227616364142554727075097839225182327251425338888139274977977173783250643960310296573896990498019960217377780810189876269698130999663401626374451238930555834079092207506641629802785633083941351392799830006437435527375865797871260824461368187539790207085676974437463204216175660638315336209362877309554180123843069743894276009372452478087000337960666150029322312550261926069687492230733811275184174286252804249768514063958364523668608318454798726161071374929624915537710473051599445878011088011332558911213332526729421842554423761588806854920172709044774453531579217513520928282977899966730046542365846900827874953729876421088041721077554027835823368221036996090769264345795176211794342660948229258390347028387811405266726897256200405778811335545595168837676016323055391143332077280828578886184895403723391036407508814902756251523425540379063846982414647307962088545864507991452749987783795179229297970916369697681349233703162821780940061007208299673292906183434747680692612597089962562170890161117972221314733211046121270505897733971504075362967128070434900599842762514973868288609328596913204933872273863155250176349421403285095678492962129089616999610462473032037196927492806628141601987652344433131923058979158626450410080022800851886589661692038153504736877895805833278234202188229183699976205072595155028516806814862021226156863657687920523318995191154660996140462403195470234244253588919531073982702594559547850135453968168251583233390411269643419797293191299096180153903604337814513307878246074371892675383356286310134559253643610830864176810314251775416413110616780589882167999223542648944614296341599883495443966402228873555754847405356226481303742435578040622193422901347477541824742290969445951004518245582193972938749212466151681197341214876381178991789939288933585650396989030509058900911193467156287428900355538716816181755872298173434449582150520060613362641066360011636068193049392136924407482917848213328772864488776744864283160830013121081780443098187168495692752747664191672113309310576064960494158863149784993025950681418173077056486331741250896391159112758154480834647466794881132021343764759483985608686169500807432472858233927472058653987702170264358489983312580228354381894987572578162006565373153808345905581886283353833507616016069161036469717197606384864609640011046666693943376892886941741206522267545427428764146540147695298754846818239754492798877041552066003419225370899818015625311769802787166388027558744651754074271292984236211299249730244600662566055002112866728904869701342087106550108675816154582113161953827844707621965029356625762298645859109569802499475168325931199714823932306294721947742684098648763903459214274670726495544065071442498610025644255359978581992729949699983113609904168182323983323736968792656583146551622140936077710568474536416599341166092341243719000145769183747010112653047141561485855070353739939384964506865694405991143370873601406668060943985543876288301231970251441252503411217670732717522846418779758648328793343560776285497159047728465384450455508080074139252399976704494689206979649759153385675654962570545013432511571022410901786100031897022239863691674104427409919864833228965218904085187625951124121476245031440285150815330459093088999988375018791838395751271611400671947333676108178268522026445252106524127198649635543459557258550686012180596100876359630165584256405895629079573824386339342030161028310099262331463964679503082154404202538153136661573015469127159510872187693364029151658726224432659347465346092256100374276193694406490531702138941694868341780755479255866914851626793453948422287163636127625361444684793259782096290696571795551104560535375577904792250533308936206419938800656066338648035229489086840323582324288897972510310355113336956347309710981541097089691754570257628179245139706880511433604175861995195803336485023788200008033196796477311606816160597470480301859164648655174845595500963907863452402779053691490201858136383305678084329792127149221680279897553156503976616972367808996115531995594020610629554143572271754223115556525649852447438009515795420925746751646538724811681116832129158384975899747146385839244643651851206613733402745412155280666486004194243382023017334792293609729493505715686467643398082916761102637313333835324717740989677350970007701667378885225934444525573905455940295251799375775338150417938020146402821621235346253918190597819291787247093727964752089100448931648787385968235711470727573521863724192696853687467324388239387079883212851514349102040530714132274742969620049483641691930933310349657833853226668091883250451275703847013361732948697346079065207982607945923081595269630970382914963561669296995339321194159725839763934582548560255601000105443533174198476218393591101764141442644772276049386108652824421609373543521792293358732600370836300872407780438059421088570349262090132133695584379723728350252653755683781449383009221332230641935775739421801282585087222537122287103913273869972896586037468013660831099973029226465707644011788495874776694340025144275911423680837225192782627996948852438050272195013569150084973900777381597760134356730660578966128966858808347271780853584024319315601336963161916205137678248251753858360797894490593200017251964339790259968551869458578135846346024047376738000223746432379668623537567175543202672150900719029053072917528970933966018272961637773429703904788264778059258996061679372848204582228952509571404449884980745528200527272842914916392294135235893798793510654758699110114468906683220186694714493266126715857407796138107089811683866246174524974509910437489663386156058440489753988149822254474015708709034658795029172162801794672158692826496725432965996240315891582551332007123692589458897982855086012616115309697719248602293226058551823822760253924991979026163811604343025881891667049483578602366169537724549640345021121885163436689386803010737670716884471899156400107574340924804343473266902386161482702510789327552088253684345821624263974793035420626279097922330254014201344994572007827008213969767570501407379147004341608883423980233539740198001525270455836573208946099961161632426927418137561398515224499332529857434014780076602695460579966837992350957101879029853661747245616636474658609487868652302481826972252829886070204402804544380131989049108945290800327947415286387075726171662606189455388840089416021551159439990107329317706849501935818562900184149807539573862368820527955751316751727766626192150554171301540413044888367753843120987005617506272636175972226524095932086606213094733631533335281942737573514619711857351993883060571818689432151124001353312990379502689875083256972974622544615507132602759892953270417136507013202436624392751722750849969981527361418595376333095204563774119445038821216173518443654309941912626089249724786272817386020826392821623280866940742045532423740845939937715336792645183360181920582643788034510620566016102236512400714417703993838218986115223525537837773041553520528040584438872789314384220532136526678887030835425221644178610906961127384509364382343181140447490106263920350048772025235952892386002108441188276238569486720777531658395659858758822129075808442482046407262522955429220895086879454237166213899083166124962339524673494217084968775677967735520415338498635464063776021687679363403309331479560355473091030519509054096870892104402449735643182077491207985524679265854239056964763816670170534629945048285583472169871593374284312747795157311858173367473377364588645510271674297077809220473140068300190933529743261948053426918722433100682750917851303233098812790907442839540599290852086975823588471553667970604911765395869726920927904821156739660685148255342250005478676622089347475468212613820107385892310839910512127059374440489357983128028988533455795401726232426042986882537342451788295968404987143474461599792509960160909295590331877687906977126405490750046604166645050414279353823120080716324599842880079851329748242625463814593688818208554200918064561024398750454874123235876595573237804554145962264470579131950452348668798634782811119255924158554112972853568007692164148627062638860226192473381608952458336322193364957245709208242158513101981257360272904156578498961509231621929085556368849894900025357446128249952298846802914273164549938291853365552586177135336720368586434920955657974691779878630029072459835025882706902299723992393601703610220973238944232485216299653652368112834852695272413871275766411588300880697233779667893922808676463598084249953947491590881970095313689974216199434039442601444349483389685220091968310773343173736074924894712700872244610814121432760572611837536608708295693180444158648737477870486046730338135602903538002490850252182686461357665631498293100306421573091187545563561228561846291807663789721070718044017034908010853668365650391722586643453844198552577715828083215538714961399470381061548583555353203405148083102864822125176425768518002950304885610033785882627292921735927464307822008472344576338563407705637145865530140682163453933623073800660174158258612191440913804651421448315235307563208080070166470793910296776808352453002959089911814058699119896438881152111172619098875081381128114721515052216416365762478073295878483246589486828181451073207415082056825814459837207035686601219689593937338989223508504310811577519872957120666509024595720763317716782604684567680196625725079798692595457599501154701843147168254602981429194940005763426525447960223295729882088732213730712799802565297393010601083415657287192974733197735265032412613691553418168261765900859535412995887176146256792924101195416361605948742385164188666479678745676920217859101820385887577565502375386894271245744174546932756884145528969695492383153788182581091349233467938826474816827491140259966116403404760126423280500490076795917785339829571757899034652463920484728033321583300459550691640770896718057558040163583312545958896988929528286021467442874914531241646972970396974671162153454672581141048432776503648592983990495463126967658939378627198676533437401992445608838319463919697788731736577400027506478967643174032061420134198549165076586406354970235327830240993055476942096246270452745439767593809866267071799685761204259165549655638732826521272945653816506471553169317112715055299613881142532465935753934200296552763065777016683070461987343585005948445002763116964538707799576662307194030642592055379843086773777298575633019293528296775219815165955620832142252382620279412471805812955297393223016570197476655932540572004223204187183998677571074052114250702848231692241004254496322469474752213325140133814672039376040452963928909253656814541620615906691057769982173235905614168428640414736703513253898319179364653052585884645207917478240438695039122773190173934118243164977997213176157610299131076072127051802763038032122067762188596384083664380232778059072192593884846789681541381128757806825391608792829794004702439340639328278464075885075930195862911128373506740465666940520804778697670964204047265768727680112470752352579193040730928891992295997832654512913131384822500460066121263910513317366444980359329236772932953561779354223281432912942360933123789821754738402694554189434581166543379115666530529590613787558672687263651142092342657949617254981361869211017291421117585503979230452211394075246964700712965294397988553848433619237152579370361961666765470587843039900804074150556563050624467994644898468779567445129000476774723902232898456642422265589078860976451253705355575568513996158195942764440740115249562473325528811898062009908788275875931391906651684112546414463590555666520203722817351381154787673944326698329723516893886056049973943084935967163849590493622317263273148273952295648267917361621125393470653611125462288198372391269810965199940718173268258731119908929526808991687906029797640927590495770765791376038583047509793379031924625411183702399662592618133290924224623942116072835626657141529267153241005481494886992553455674682465211379071557305470258750460528095846822921128787020942160553910394931634063091703895736218782531098383545232549282421646407288284044417789866036136404553560791829336822206476135762678237024208885729431704313343243859352198140082375204664723631964486334966214676897616213193486342474922101807760913533165317464784853015372671112768619519824311480050126022052199362293488003458886274136155393247023959228297248161630632679313200686480262348441275310784299507771280263443542045043728873159648990681060681068233661165173423771891294147873771279849634445841708424792215328689615359414419513757609329548669679400374963482828241774037863602185687838925776047298175870037437053708860704499680870161828691302102934497859241758901076792130923535830825468271503668764621706909962967709401443359727591784316581373707699672904488094540731773767985161727641209130163894292638660954530474033626357447275302644188771974829595328785349949544481614850491044494210075158302771030301622198824700006585142460978240588714668301540702148485580457766225539210274022546652372847872509402824671364827117831786975415150578855881554380903389423920379040852274864543889698848608776101564696271795483877222700592797383832671743078339234701203093649789660949691446347011359416847906499999713503211392602191912084363451395802966657659624463601705061601799157146686568192250448996804460562304716854304186217913106395084097665767735790515825608782592686877570854727398113040664428526777828189113979067338189249495397144338587985954718366028760053348071705240944559015757084114434950043956907604759746694343418367560300757185485193657209182082545553015346826235080566342623522413344020852726427579804672398836294750509078967840782673560623679846704012308313455689851027464665098425359016313488872172186526260661844072068945566408061332264210987882227602558451309398558951055146554800234201618578262110651376747970856374997916006444692357000158964696448195164728896100356677676334726522129365162426153735899353660528643380642935084573638592420767142587343037875370008446859839777808786911852773297184442894501521296942622720880666436620697331033039238029932929275590150081927931000567817343983474177651484404801909855117912094943666309988121482668919491824843507449707498846232613252709169980323289028414615363971053656102786952474095356861444922020191728976050761688151861189850239458317743806336196559476679310264249132026211472610726829881752143164449230630015941960414561693918247465284867943707004599189775402427985700384929823868501295278215752465635208192273454139228738740167613827916759656321854983367585184842223186026901091974345867720345265456559964980884605937210630734003534270773121528003382705005879914113962349542537795738352056936871243494335780891021193473450448765243594906093163378084905117329568772919224662493147945767482763902752273400916152086322367286256745475695377997401914338548305973097333493784475555639019640479080669634625426375246707033200034373505702487933483328750242196351155050003974453176794539551649738102349478855104223499378584218919352896058804684383305417176847432916375104804696858963813374838184365260280103628706432323955021628710929661397768370663219296408059504215635588024369484948550922976786926501639068621282162274125001817653711322066646704843315532562992012439154432609751254659437572164253231346784065720674504608967858765842066421496980417218995063472868979018758609182236292301079570781325008234600886223391623427813686653889756593567516491983023765422915461780091864848704390654544324652091232367216978924658798826663192414301541596270744247069988161071237948662850797615916269450927277247688060727066213620837620680169871003256396567240670742354508057033986064234772837320854798273491609305119450387820038138758139488778979833683175158668007101598521098216382874618230769230531295074465697547012915947778291841977362267890051519415927096218186664489834154822955658845122922403133655956209066925771199067273322558806959977010456394213954099086412382315750761188267538741694587006569383151830399953631093677215407800897809052067918042120994037470512200876530578716525956959959553843618584273888264074688055468535191268564148535726357938996591899360100511122822643019663166717845725277177542316742662605124678117780430461433558333932108885303389015094079592167300749214469013235501862815292897045231805697502513376650944899911763582448772385718166679136378697985050494489145903223554453178473445992583232382350649308442173381765777557291530863676330555941396976080768640879828320604848980781490735185636520799155182392831486445723468920303582153480328233226768930062729601034104706954243602341023418299792262094551950751801041374003075505991730631195219539296683939283268113566355611957160593176768184746072719630730494621014402079990521645309757479491837490711925150406413262330218268903143696381106362426222502569427309259998959578773914242920769318971785839240398184209942719501027046874004130256105023943136506999886233509212838404778297858396238563046713314811008458720689807744153684518184109110177525750457584734760789754078802719723480506232137752430413146733607404893292916422266450537801038591550650929875364378406530666170575749950339440921614672843159941197892215746368432473892329628117217169176098766181942052107387841076380634771278351955974055008533227068084733498400356714204001432490836083725431277382559007199904589525907232552491010694945041999856170999408749212073398526416686006981141576984709417751669080925114231177451298389032647753606734025623367053514747111027238677684453672703081979552621592017206868037461595375892034158747481118706733694827202628527669826915964876857803636522649544490051511210653168062557405765365992754053765546895748714337254314119106522477786024257474796241626008207986056284895449235493478634303413267397466070350462172989447100947848897690206776552289717375258530148508211807248388871080952385476253996574093151041382065132380536078202411434939362588675008169416680070671102675553465215916672076794938419248529698695920258728665396274188060421606523300125582757083462844715394494211772931821281462746892001903881626334367485733986061481096504933877412277239110379725939119226403736586407414140734377698695461492318526853636589122467288720993306787968951172201208510038493388965005769988604485146274110695425446332793066072602883788392217125480418593023961269255049579962909519969538091001424310275115718247561333258145715938393902982218866392889822632343088334892712644879387546604705597738055982709516490956006309774990997499003324120979414259441533192464036565010882352272237865658218213876261763935199109207981127581715028316228861272486831366230307085284321270643372033457198913712343601838237612828545491988782253640698321442398245136911052622184039446554453982503505639528953895067256529974275734671611828451737182278849215514821285743033423777968306254479952394063021674085999472622415460069228192517961695934200855471297483301306502883684506116456422981436516291142630383084492430913015092800232658281206465069007519590754417884467968957112539447514704402646770279485656761025965313412179354661452017020523952016350448758533596418156196233558311361037690981233353145646211832087842313090464901913665446058389904384849745323980750160814037094792520531875165273140905204758090077550854987958777314838643519502033305834483720364743823914541049033086598389988760585264127815650179950787182812839155622585005441678310671553471452390621697819261536718326357956478434279497090614982410034347014206132636842623024730568942432899516242319427881975507090437932652042316476842427603539719112548517452702069612032023781964832177529937953681574308077404776894884944970065898042077058188658446375884998284609332908578892689139569019425458481641138410374160235486309053119332883323065702536262410412050654051619945189960341272567136105547041621534529089567891259583730849806488918921257927322366402400078261326855275113465035696831841685664040014006088311924234417247972816800106071947560787805249039379215858264874529985515910862657730899858567936564678424716601239897498524660821504062233784589453396067471437265667724196609452012739451102416747483247900068803564215025437382075492571238230397004724081661725171888002390039048179771097226399670899549027165637427557240383548793374116198951613911755853323350358646984222273684005618488038079926260138752830815303543797156921457073615860312449043334441242172282813628139979701498006478575966488039321134212562024480958991521671511611552211931971370830819631739866569198370415922025114836003394139205941874642024425986203951779192140457710347179403248820687007868543219096200019526455389721176710836345319876615519673465099629615892746863868560676975745538603892175975459687183145257768759119145174986108544376957401573068450943720484696314113713820922028641886779088786234561779388799163957755940202182815715252293922015266953662706746971997147305563008363261618838099883922828279594301318300917007538534394127313688979077036017660508694318648112104883097901871146958917334548277574047877645427952601091145996738386746940148772818554395996670216369299492974936754024181500228272673162847145083347318773603684078925653316974131184025986045247756268890919580723251764926703732032617960770797071368039356071436932327231502092624581154760467915925420331404490485184750299212991602945300556190766504211037619275089242303108119031654232018368535257837288846993577997335640700971669149561514680845955644951546569030321704166131806741388482167295874158816098841988911745424452446062817268075088001670285184332541378563074223230615700352646706721613802522762745239673467554998814817817451107688788886657933116998856816814543752311684710621273660280534123791001039415436388104663136756408505444510554209329059365381706985420358148744104904821345840266605648720940382069395204071750479833602458452948369417987523163706458242945601707203467474516318577931926911265342344597396174556339867754390842803113479874720860915835922490535300633687054601291233829069363799084988736022094061797710683300356211105101449643390632636574435178492059846882769832281305080438575863953082847257693687321810507599591629471929629651016404002325816739001970159928674352399942277663654621918324970643450316097306929606374853103620461110992180766075760229331414581546777955442504200418911880011173688012246233268148937952608230488730943807477738250941855675787570157104643855188492540152678635430779660308503764381051854009806485901551444689370678707754675797067294951426117417712188584077902195651289170347285697568185964986410938059483672610668030040997312417060091854655267936664360865983535133696195453524304681769783121866054772148110146957521010718855713918644457082516406431219852094127315167617612589640294610379045728541828595455574822760554471070723664919319908975358213454018463128587256462456126841258030544671725086093960132657749595971098405600796743888615647108558934814744918637403914128281463537053579288076659531645155929245750647440650527625735803427622373453616596435871136036672951352632161822868512028418853402954414394774041378694149140088733845869786754184929759395668050099129363113619785822489858496149569874200285896600607204331569761288966267646372270389156562325043001552895118864111787118131609741434464916238012179640435912107176282205639193765085853542496248298117423978722310268143208925208873773373983527296254872787028299641000702100530468098251156336196022961048226764705180833633760021159985958464352647576664470513404326894965837774845655612924905362230046939414682782451047978809599485153981595836136110292809237603817821685214316798730680539566749925060872675489346803531378584937343232586486280163047229891093169994878862258957116345488157432828459577578164238515000177579192006559154547353426997515129663081531921385732929741136866423358347109914344584607727273890550394015939765733385439258253507780537558692465258886993469517073414462043061059618308703365681073418208583691808240151037453097203531339785581621554619997260309533485803520063315109147993554299777758476496037593323601967090638914783290722757915504434741397290715048221237714756146925864512345376235205707340055104599621117716483352334825197146608904906870194825613054018321726149856206788428735542134790617917971759695197729518182587367926236244659283445461029949601943841333210001157748894204887631551723960605312375254408735687534707244429357031654474920746764128976711898614095302178639293977705906073270189335915065321321784807731243880055319922629574553465735765662188107684855244347712798843654952159647401595820529373373386018910414099124276852186534311281346026977784011422146719588165650644965378653494642377825392330497559767443728426580600422164325343974935748203438875842912285273384918173961065822050849388054969888798180141862122822251131158553587252959265691283125195633673553894320941637840037051719827331775681167569251005157904571320966857709071841130602746297732316293021592245715903949974990777750448514306826336950736480078789027526973984613634757400506844859169677587737044233603212330618932430868995712325194678681193887390431620044981573177046493730975808122444334872727276451452221263262177074436483828242362236816505270655604490778420638579500716029882204969923317776920769684813799278928445689749691316901285068918346720663871149477725743653025765158582113791126975947050014881923773568540092145235527149889531009454879338995138562553815645332188119933499215953435123812263839519398390564740517791040090964869280069492929837392083170047602285745719892824225652197191260758154689192088294576588823275120865621091349561160655635917183267735016530930387391214445274724840032061022311694574126626110463880887824940137879870293461040253742558568045035254105898935797011270917845465061335865988888507766524783259001031435392659580814514832895386564919963017269675569198764439960359104324762668210076046179903353142974964847626959595263394250229510108666234883403818220999896940653826044109291917692168631704128135428039874479582921907614999994110963284176533703814639242751154587095676903706894364621929556345305459831688016699402646962358634844841276789169034946935109978763823271691921472196941013294040182571694682206434311282150421126195750708320633220627073134091525519148244481199074632410473858108079258319884816874904257535964593545622589386163559787489610743175779209824471248952777627610520106751429532264425943334454198837765788730908634639887893076572591576646549195460684228587969315378673108055378113248241570989045502092781521567898774351558097300068751750649240636603715181519832044734931282584549421620285913276007376169881975143433451924752629198825081046484229130982058424226963481406605392868244098459668830974619534884130770523145158038135217720803838463785587794662466199049627908619538472919265861400983787305583338853551175171810868962579043252888561676435508528096222959502826430925270460826445132019316018749162258336090137817455681338974075821831513917284431957306134335209765855375820093972538684849975165946544927328071872994739950719577264025450630525384067101269408463795554445006302697036531646479276820301108474588189691797864467202565567863901396981992973055761120818278311858158884869898337536140897590349884439630706670996519868796915856747884933101314169832673559329822638798181294006525520583999276824792957016704198204381908238966066642030919159708283562255331174135800898315371651934350920549572865070424956762033722076612771217927322624408556141049281016633299144215226041057255274721038940480013777880827638181659437368986487967801994437895474939309668411752203056533129661092895589034628831385519743668274484985207515167893425005480790141206785464473705780442045770652356422843119011691936111378434452019995060534130602431838240430549409420993035721077220008138052667382344668560296270840244238759475689162686929719034401220813443212268921077136668998718643849232715976430925274907151325684109935902568762394208340011983957006234221505113787205120701114292071276799564127594868079135636746963484627241415885104957574458374695845690976696276838378077118069420920044037170650954218780874340408882109174821495885361911514471789748328348145866228513813319478695002941608045298532181415386469378368252767344641880408450556790608488958547651421966981315230208153220760645784855259425553517548864071920521590021054270787778539010929017896962472904171714991441348244914983906755597971743094637708613876845315607132923908074632590490325802509987449493393906566938594139626573518369888276956413804791855774301536135983864227535907820968005288631658085801587524434790298729703254096278557240456955579540276624336488543151039541389286484776505507033528291819001848496641739039413566581337230928557101607625452664350275661077342749933373833166747438321540813038845218656368025157701225577243132163206087542429396426011006224539601332524283290657519102509820122618488468236127147639661910341680117329936720462084823880349643357082993038805120154689083856988192438427969671135375857706755869864141024380739089824546560795792890466983550214006443741842333257048485962124988672300227048220192902749634706443059123297113890561381406396714875590586725426655220042048053409829002705629015833548428161643498060694610069546729429541824397787649785968505280208563521544638711400259239136973045540623046722491231571339670972607589065631794111277701703357863996254272819840937028581688045513482128250744825195946280941687262905498183806304334135529276702873176956394577444754685625876244876423340430654768973639799947509302868019450896383962617525667366513741778566895468343382406219541406455674477532858798301535015656821314448834445039597281947918419765822406322417604847663472849487284127733278614485211562896828707821769684754094132275273473802987978538703547177872629144155112860785911234257863924257877762866849217328707945005531369102863805883066605788849797223694046109402304180400485859236818681688323033789195014092276676564145378650133477140283045853957343262445590630626208903957716723582718787345268914731839112069335900654057495352282288652511857665658722604443246937809814000247545465047291187296810894463099770537923426726361767149530683999108381437873881188297020295437933869206800816132388348498857342778833669253267288952089674505619025760265859655017318130778445974216181369020269334332826367881823379289916504740388049674762846922444279007562358802531894080611269622448114266062983988494219566931701393399583037231927959981381488595986003952094890356230974405740897634426839647620091660759256201949605250063961730055967441254083181812000934956098095511250742609508860279540332465450304129334504299280140183181605203895939112850418555979695131337747915566406647221669342005871281670651590013427715170311496140005941653936654482814986110193717939684898999355856001665212175765518607375926477848174747715768389010134779279907592688274374952067698535143680778729682282065345514124188404649915960560142506132697840654571181237239188647280547412428648665954441115689402600802656076674906859741754329630005338112942501685764738043973614347401160514346335468896008830802865748249289729326148325043496081639020479175810106665622258622552055925925715429913450452925764145238310480059019167659182778551319039948353825755083479500265125661893443366680601425478291531269698233379550026989951146467489617068376817486052188914651013229587646067738488167370242285540715418944535571576340245240327805704591717932282652154407823902670758269169460736842199379022350091262972045154404225364064224965767520051551191594796085609334702585067153500156589668419810539504933101015547577013375567104470047904455555828475227595555492846421560235412188050411242126577641638083729270175316410658315458995342878712437866890029287351250176588342693173391622195808802078392488262306484093307917836992957251310442785802675354282462689397143152154239656302947479715821815822503866319120323477950124052517800329352119174439672191431183540498369787111373851183321600921633485238895809577787212452471395681834827320498545264183212208391458913211956825514122090881116457562115610679523236298924128342878455755947013070227439489242545932224417790335167447907768520306334424973967237988014205612145003319936899110084137499928395348314220174185395281513582572906264512156569101984925933940853504112695174965656992017366775130004242068394640870151108820984009894214930283777206626500612487968271719815069210785580450808862889035954153212288571682953229153428993650562174782587644715429863048161350207572051078943138507842059919076355328934985419102472570130942442387961013775116295845179402592503738596052960350923307988458275492297010201566438394576149824210484808398250571359312481354907663022950071121633400125705264571370073378480601876500448896718979592984116200617038083787478692390187478547455520070762903704144631725254831148253371080633735781735763043399896398133402127290701756303416198101157228837899829232246661947055367180329826688227280138741605568997335289026227286603971753392562403175790550151845243344334035231186616824202768850093957417321772651182735516242881529473427298244619609483776150538686444256663175486324532963076357931666914499541305064973074958504788374239491425763903956237891463973435699119341927799784627297098727881954464352434280696382525882312454881123085963034104294052473172225296426148104460703308749557389008189122305161447353255303315819176741584014314423418957095467413362213481812188136766975308861343502094855643751650962537978911957870855101928579572591280671078908779991190837246162458959306036080389180765538264935272424943085656514637742237273262248143517239446909056532056986997364129071428756531009343614287624955978068462592668752907917749301997403824182112124372091523287970899265704570773762161788672080839666793296604873274677131172900248141160272596666590725554714364589905563697551682906990946332374847426736252725728256435978233286759667514360025285046533445781113126388335657539166102127767025931555697634992107327145691079449613147783019583176465286629366393931594947628721902042440557421301269517063655341648626219661998410254807185940462783508331433691002110729741590390823579291077790913999037142548679036879496265864896415113983903491614623243476149137150066674625341526870933793728685668762248473632042974469240992649838074982349466253894633632577329352066868553622189683993283828325793460304805211165200943572675777817798201623741430083999799884066577718870559028751659631919294661727267056784376473406809702412048544707751538820807461277584628756571536377288743318963371618116011590013104792059314992746996059028080402026164266001498477133475773625634207419989762141917523683765732981535256143799190889046245061486977722955146308868885455091090327981034278746887399238070378422264243370874414825324376836130977122253816038395367211124191447215931371887970011795651244583303319028809615550852819503381225533684338418026847141948451163094575074905898429543309267756809241870464961456136134132985361209129448102887611080572520555379916155584019431620650127099080921032436948233270266373363027421105561842704965859317334148312948326964998100419261477170693124789239607316815589825196580271009906795125320711766783447851824482918961878562778280764555088034245453832684744882401931239444409865754778531956671812986122527835227530107492054963223392496134153360981792821203104125342189702892834472013729602747201185005298798424137210645545457554063110136082578616839844047911226733165272522886941000214664521886360943542543618718250607879338202570767168553525302369142549837039182845064430654257590747662228882117446827824380653986125604259074904337857583621445062363249276670882091018462663382926658680929510422648599320214517242757469987878107262488228587138837740203627752281508366227223203513492581177850816394152835465550418177265044707852104198356221355957967434135107781946455405604623559262420495488408551325829742625420497117285164623010659268453417042657230326814870308210531891431145879242475880467337141372783263870911818322587193885350754045509181254205310645032658797237778497589260440876264055448896121985765629188601115731904373208531268870301677163314045258575122811105362225817748207031387031934919585000858014486533371451310341566314711453933834744567737033488186867410927063573356479336521526335349744150401229886900496724025113527705380140561192108340836114911138360325493720258497132229819293656252363229186055440660330751758114296126395676790750367537842541411923448764694295947475576248703777045857582939757216907188247924881573271681311590531748013678254492376850635196061899728621082038449016158943231280173343713070928815709315288179155952873130742864936869281923428828925293675426453643745911384713777628519125387802271648581770764061849507858888563163775983356582052917118996074698361605064473023014831938362622479654836998015290441731733244981875135538574274899463913513131048033247062854168104099397713785238817732862399129848262315243360152371860863607104948327166983624989691185704762014225088537883673663051705020800633427648234002917475537889704479929148691064715856131049463538381178142580028685138586362849139940512229979207170858873144559311454090648733828519431901347368491601694033900747720120535248357075052738482808280959328238844469692318664177933991052726396043113699392426347966654336515426597987772736477002633842918352640863277732463767607845390582056733926220734020513057032474740189870584021242069870300063083112350784143361983018347356955399157605447295447989438027477775096064597180789486994184326777647303417704487323780442698816843917549535282321883395906894551981728853815175370652823007239841105383698630475647424157036387822513972776508250569024688046614901811578419791415980330786273327536160210349132926360442882893323754317839925547542960084133065337653877814704685838589651929980824104990557841768300905934571756307397528718125485232987439895014725699702247530962347711969694948980665964191154806663943872545467022747953124210809263275768956093494569561170048616795434009804789691048205897807248775953838474837159077834864627598624235959336340821465094047830123522383516967631387008407390529244727009203459953926868969194259849935970172657154860075526964737879589017652261509695328475626418380255892739180107479004060631634778459186693759970685025613855323255699982950618674190218290717462731000922439676372993251914054398316858671845237173784747895124546636090695922415610364851753170678077409389573159652473599595277735594744725422015518813871281614772578363771709772120399466431983633446369892556599113336390313806410645482577573535379471475218704941413155657025120291970545511952688631153515584405277954849458061758005136425757067615693692647423333750156333483027062483816294625157183322425941984296072570779703595015661271604952601888978944692875292886988345946628805541596510553103767322733369683896217372688489663559795314316571590384194498029559218523086763833917746162218031822921001823967317085392302126801949055753158965660368865823127553974411336160758458637511535802086781780135742893928164824518275876485526668661075396318759298186094623046062488217973630685308703407933373109046188898953800845137934166174009254875071055698058738452359137868020791488557818950321257787496423801757630540348577213673970793938337594710372677654657949194045299015899033213791491552661087604693453887172258652443647670639610020525787417383002643988105176140548962234532448687933079645032929040587127257995305777298645402023724778781454268467720174344184199589061944638330629196781321697439775909191261069120195607003064304441143217135660459774530277741757795596172394233416944943869486379933619576099196059747143223234909125960864344947167577049514083529840247692764145604946607016157146555396039754990447920607786051919902579115325647109712895210860797445286668234324934014235913270449204738551668147132122228416723475718456790158015349829838717344937114233814272358441588886451759002905634031612295432291211795883893029812453376044949228957400669219770327986339973003751920511651257937566248921264033304594313822942438794870309832440705333157011301246487661721177113540608885885358105928502065865597578228492517737929650480056172189128375463564158782735177467290329844373937066116108928487529050780057675904737707503303281605466572260585054083429598053885985789239662384666543719226823695106670079766264262239372012612524036678779057874432364495996804029312913334114075310309227415499116365786938816628300009183909174056220671220630242158378264799051675634476308988288254494621864534018682883636107065792781452122539303550209625877477584788454707840124603421093652854922646076789664830427851569809634994986804199322877138449246989901661478980339921407509154267569140960956201752245169671198652730445812544304568559959121661846632770782652034034216775732639819280087599903333595053089088698953149950329526209363245142991169790143213474014274188372107256886097984745293849131101853711984575964181290486768203432657427417958470858318318962648427908766853680024047552752384956451203553712471780486843841797687936952379046748588599294435820577714485529630150262344554711367513040896676498215915500742473953039427052768831208622573186586064356556724920434638021354748368081800808259930567466311572465367032731335086127861609427309309321693540442869303853745628838559565303640697809186607198811341437187108586354057920794970725485736037302680183862428186088441296139842248266165879674615276222139614061646591928227082566370810088837674810479671473989246123045473339420857003374255663094555626240451124830601978737636954295721678575889524541166990424893151127493729024073588493457642408601833372597011918451171685903915652991620688470733000391273527804472459036365983570904020235170743452393705857070396114943176065149014035061578271846206972377950629125689642081387044376630230463120367984848957599495139838747566228328494261432467076757814405328174842238709044964585536197776062611440322460972826741242549348568243670397660306114054808340164031918880952832088112795148767719316521347229677382386362991288478413830616749925396414495783156032570129449699349281469504805346552263095030714584287047851956948834825387742924098862783882820136098730732418988524572512522373394095866672111736825602226031346290392826799922622554893532243597835664645425685139924940704527807381384906040747344931576881259031742119856259323815026393211091554140107519304664557022724418832103102484192923638258970412885071135752122315398474677433994114578650632345978413727598220645719334446201543331191975661159236489588179323892060641623432572961606964612281023033643233817358557234933757366953598983241041923000233837784415792021804984141702277935010265766520044262487826869964082240062284676508911778274273661440748282175833804657988146383963119893169407758648364629202826987392886091118226378549350480019445467536750944641483378044589853784324143026741023861424777774050580816914957628512307971910392835269235269501925765293288794510936234343169568330867319696985707476244315489840716921317921953404889115241444283083886096820542898813117267510351508396944994768976675714705490614732016756922969708211899697718393521018107871298085270469206126988647746029341934626919701717247787422198544107438192239980146671335244395572900875269126091019617366258664963486488316707523793086556715072453668345798415894371318548107744154233388288966580831621929771988260043719406616281808752999683230046643378173264853619708067440720567778187501849494625285664461882378473057841457508774300929091477808836818369592081175919018515586578518123135193451333900608353727145144877969225141616110845262734991605666166494021568664933350708301848213647058245161538222767306803738505867795473923191083994856257173175126594640102247866249143169835871324810425550011989578272189162521397425151483056807661437459201924869278147889037869544104415578512235205871966042656732926717204076268068758455485607000491897913466085946287507857735282703045293040901244968395588752701159918054490452730555367564608081841052620047102290389596619704351066711739338818723610655327091495097414228008148704140099838911104856486486295454337175110562249846485218421325487077562482620372909172630175451817556732597293798525755963108693603516541443319745318540812551889164298947498508189313896368592876224476084163923132146630572665440172674451013970013709649468899483163095556484409334261232927304239034026977431247745798683038565279906343792203135981029316649642648687137891288185075152423876464414785175532620022556147205780426939158871530258041326004553859660967666734010484579276418497657565008849154106060412541521184968371694633723821713059503181834277005842726533374392539835518907052013153329649401064037466976997063499148106785068731944084291167761530162754190110636651630910804915550713775500293839592423847142378055738908027868090096334380831752637081869255126492062625623489408854103464961793987793908472530293414939767696797227697430970818578880370215396420318830472787231488214679913667621952174093304264693256542967529830920327811294569541914174355712943734393707359494464615466993501514465077500334809953626531085152376118959318293929439889379573815497576591453395699007893169897437967392201261130549207675227665915110613851917659056732297192413348190515080497465958540406956345173381233732612661622686714001413155860333388504723624049182900264616055412014418000870674641396284251211354590923964438771931262220738101475878424568805606434883458028157518062413639001790441999221703213747523405556697772004481831672572053400736047877693766001354453636972252445110168119050366826465551637386885113565143184690362957660536779579405643725929187760422754307250640669655566734363840113691656499022020825645720204115822372034770384485115272174074586447308602865947465635005219881677715813031117908480378058005963495923633754079008399809469444780073012964981188573905822095384727072054036863374280473031190441791572672629638399988935024476814933408870003560696310118309543257968322142199206685221142512671412121754229931149393627813601523632635772310356383555458561455584502623907576857324905405228215394748609471797020913902068601588048332933249568813374468115679940578123469756967473625894603986012878602154469083727997198408839983638226239482209249956631776911431769866488154005510823906311013822290509363846663639737362769365473380259889333991783328924839225613327973500733014218954570556734629713246260951240871790660614214018871252182595122413396246771151689056883396785057556755913189387617935302631523625987668345711082230946423554953402025341825958365305771216178776117547089244711539885311810728755186159726487484787618271021879071154617490842990036316195612281983651332634291262014682321320547048634482161289984448163791243674545995187375542394105439922479086800998774236610819079733365911802555949559453634276943133955948030764707884412224852082673802970576399130006783783382429712085841271909195902764478848330862762292224141000754191958134697213938979415259981474210257037210147465416871834657829471219122198663475276554374967705387317092392678198509452619241501161603907464879962078736282777121616831551311402258837744591788558725492338408518785102745621775458881343164347358785669504255641523617008742219465275820537840628270971104203032392551908201334915607976866845044191374653904945562811261251197889244752239120370039280240621791957782587650251884461710299875512781875206755421526233560720798282718676271505550089423181350696730936092930205536122100713560842561296516325089230026348438481860672452143514621265074449539037128585750822568150171341938933352463859982838458410309165689381225307852681336638749030078374160515253372742915334453019081855765108696657335084403505291654802631968366169719355267911845068352045095751958710435978325315120293286993092219130153827944170114560480128349867676875093317126295884057895615877489242454968128930195814591972051854389008547946729542436805108037609264367918279493252535164606288488777919126186418183800405724355828804199090840118792779405418657522660600317941117040426753074952313330322421369732306047085171886475319990642581511939537759142423323048042636057440341119681830272452282024532978748731969533105060985529651321049596442524026186639173127472726675723408214124898988234734292996357382795793871043629497703787958936476421572953993139175208911874812959138846148058683697190597936491638765280656283879313048954544296308048068181056874746457458490641819149656174562293868833430471737900466024068591828216464242211200855044508805259221900108713872273164320196688706248089459381609066206422277794863272842813568036467196509087100223551484459459453528957665742250884496369317898855401209544376719612799648950601512827926670603597017948995696352753407238292510817721679573836105807240228829616033690823155407127504449844298919736091851107333824743181043535526697139855742692168586792810538533968227940557196500411910600280551662242071488155225367170813246273354587305358703609814693060393118612189052319285335744512621621330103579221697372426396348189473453656671449646669457922555877928440838863179109326077873607777023703536124218099747482420717814774649487785202813110579450865495176580104882293866988540775292615183421625660127223188833334790252379777037825740247191444360071655322842779139953577112696180195542930534280814218616557757346927920853546270567192387395416335786438652253739476250697164209360413495887305004071864527230842748415981703483258065324836346505898234612872721060927766000747557178255600891870437975425227329248828834320198854018975186354236626995973511016399074065304192278472846314615541888362878737952397745004051752048900770029055444043160464927343685325428090668584900998242703370578447565005923598088385861407206827539188882063366428291930103920246756890782441245301700850990641197404445176091159832438018209436701263099115886250962576632543315930151561059168554224261444657146896549267326709773024623387725652347588683418793790776472802844653086018883294266306564493100200515773295685383753365568356850624334278693781646060654036331371487226361232970371943459487067468976237434664530462724315209884175171991737083092520968620048913659139431798222956486942948685199874546213326548764522582302823146071577905881971672569651654381995982836401381949956292291078783840902824279904401592600330194384558809179219314918373245865603393635424147624571033454228232435397447534630683368937232626551519042500275336246055440552981018455618217129850720372716278308838441043155630249844317250268969137392462149521528802931947306848350590642599126443868544846045900673676379231837382416189336320698136803417226860856037492606049731685186350782129670201695757071763777551429491844836021699058068225051132545763431212400422799130415170683536436983413716160141095530622847083382321308932290168368734901850452584072001727421642641054960869915230546910599736569519649216344538677598207619126326696841831415059062322456391021923450488527901892359216544756826395514758025668777794184689578962945183345137562484016514142710350152743205618111482976482943752771521282452107431273599111758634941520003026936467244542617551093120165417283530494977775513723719285692242422844721944890707649824853554567207971057901320259764636777570929820745576414258356376547045171278492725614821240964405329394380079621798678110473120417858968777447529880729392346683662212541765277238075276830307913813481986943187011409448051471413479712909318346171103324036107516221911717175405836532197503833626769255290753970878680304852663713274879600405284750957308139057942412078346189023526369435913300309751601761011967373337166093863401458847225571709269180809709451938137338322933271557519514055326781154284908786603726578730681295629474735967920686327454438207439236266154158281033216890994074457705218937539063406408810130098863397010423784450817720425840210699100919907652587564784855936292975055693971576432349508259260308087612155682170335914251467461899333255835576052382305875349121606792291427582397282508223844442152811449482910084969000518231347544530796053173330474875223717672077638359183441824308531860423582664431839773814203936981288643340350221167869819617087714218635306909159273479135991790949420662929184174668175494511321170554446928843995502222624544643987083949250706921894029724205359771074048134844261487162595242276338193363436708143882918192136941752680334781505988822050921109224690642690885398668357929661033664021621440085776756460120535031675081169914891941357101186113468519688422138605380967742132876599890808103525507050937112002853195908428728397043971590182268325766729175300753812955132747120274848440778384055505702188824061872170874257694746262705165846489581515747141484605622063136137092778248127588366332406394327759908455980463872030825313365443020822009816305120144082387116272110582576596583129075100732601559225683923181074168668075239975261819338205751983274996923408594912295997847353327544225308541833131639512284152578866918936077774487600748581851279812272957139145263644453899924014190954415875431884249694978361681037651169585035804403915049238940300338272576531761266840925511600003430206515020918783809629034926590662625557841479883090185627059776623606217163199510080109362765222686625250992468558869136100271636241376403556016420115921369231026100900717450713440702618955877911909729289791357247744054382420493252956741941237900456580060668556706255875723504738401454788845827380922036006823601818379924712483160921621172453370236467861587844831455905624084245280562597134437109352748053694318609172787332228975802459783408465287312482245642714150797737628958590220599698627901033711760771649165621444137842998029223704700642533298741079876482777764373346752844069868580500086357909046304592362377795002890536362999287158130157785384287462813443189740561751631522372107640658713033059447887406735255104253523959872492412053173233206845153238790015113331248673170410372514860251880112584727124630415323757896513497462646169985877495867752332447027159905525469233382877257641617882996817005153725211047856099019739960649201897583928701987118116823221895954207165591526927397619169514930965196722932056560409532952685041561064742770173883083480572676466842310248364034038796733080054506225377039013520633471149135244244900419710521498075758498618896662689582974928710355695112502631572165673229350270526474617403501314139796100788289582361859431086156805845756830910299447860909158307564158476101514543578966535759989697902879303406617994742509919545189306844195592798281523518955327374196284699147315277790311745940392722131454274320706384175573041582430659456154235651778266906552698106193926234649308529937924021283336154310873556323252911229218937020453575516902541557391043150087499126159565238861391319899324305185945427153650583101259848712585016229347538266114909206989582535649159067694039472883991252209991219472985627140386639722244242154421619516516917076362945883039934009308870607639295050028519747313838883418354899831790252594800238450203767439337261713714099691077428740554769886957531339254148328629842253061628754171918519850799381281090533484132780804663207966977428407047793066690357591466651002193821293692810138385700615939307471697718968117653803593640489594942778950684069176381894338354092318376568542174027901679623796712484019044136007527492804324849095096427738594486952293469374203249600715704004279091330209448429796801727107067127933451551567172995864349187889010744030714664297267232570688749020735637125591299271132864718036313922301350038966951265290350364111256543402634073769022174890234410361474992504077429991359271371167033842962733611586084629250011817186343938764450074923098532238025128020261541387279311331967405769233807120475895483752451001918025027501063899112368218037432132113860997588024771193929726005386290538445926501015788918789876379398250436098956058443192771935031964464520691147438128105941727963275198985403997255432637472754467055005253916906777813887159361345074450682262296335083131799511788208209643282181922834954328444693915546402121597743047995025581855714478547552822359064399595961576438709105339255663295405389376964712609187799343745606786797836070909280182008393424202633321721703763709728043588785474616153304452613948820564343733880004822321668800121241648020770578638587488090363443194524153093096875375526703292789921312153617587190611808381520273423888585596214456977042386425722863582905105191284061783869350024075729184443143164261773643616691038833050355825587152180978606560072146153342896173800049540057604914585277595194187288098460737564864443643332064065872690497549137866121221882169815309314100011678515182876005721415818418110408883251015030936229788014226945951623226835430066045838022554623641820847560880818096193625282779950637503907099640088942187396407813261948875730067841912626652327183662198844249631374951466894694153654849231351558108225399352925497079786048676477548417821689349970034597577763001618871780824118031089461059264638173934059478503848348765581010557976822329857367849239672236484499356299632648609537577679995112219677006791117456248872318645591057472266670487310821320936369867087555273470190424559659557821695065354543525134123719796925889558794267723807232736414675032502184391192849697720958785142775472432327958151218816142102776277032976690083427011348637198821635975865933923082295422489885378423093834576321340044342473588966361258169498095103901267855710137400132899907449493403946312545595676085761962128609106978920102739047514108913619870480883892721559135335655085904348158012718570632572070346038430647958572290785817015771100964995407936865171552295491972281526658974991585854052984091775937497786462806575247339729002776701884256957534653544100852511303922791684395171500658576085845896345085040681904860488340452916314898001828232360765766560456280556583792375866108183556554179176339054690739854714982280288229656266839557321599403333138622935488826963676160494135253920198482534499875378057729109545180079259916508262730874180257551905653937895631112782534935939037757221416255183290613361725701923962732841860322999912985678179550719860090952271870380166924349835163010098932091995896562867491155610267946808882968936332954706780618945380881633628834821580667727375491011961350899766286117122527936251483688686132394857095248209377573458094971484682349815740930096066886476958905914283152706523055886825207187102789092212747254013102800152097580819630199065097502429713731911068082503584899594191634180590391168565379553334748832197359058250698801878815884408799597840077634513014264329115387844866275808431907187140080203651989893656388826724372867623375859282528675890149595155730297944082948942062518850316970734412120266661957090597105669725863426366263111182840280964138512036917971677637096888118573336417539750414877588809840445710382904501285307190685623376678405357778812010760724796323617434654128320261239395291469811420771780588906852133768166176409716954697681896489101587586154312484877043353833835883663100352464057443637407116002674801274103430217385548286349147354683854059847684997026392334812259432104438901048026205951468259735735426901855070614474727987504788630665803707800270803487333161973654257543425866281052217607533614597754737202216561799006265613114899973854822891173461524564253964257498668226460177857234921445994887366775055181329901415922738856770940674657888931856382079725079288642869700383804688844233472541360597827916252578656160254042847179356244051848267584141808984485157766727367891252033393721681574781182221234410814093845846327992998346867240028788612634669906035306281032013133916368920883379236628449061816829368664464394239960417935763741898073535256519732186015654302452817643763045841035549425248497192137778932289958216369328109152770639319246486139167045793922598558138703066338147966089597495571166463066226398090946653191840073571827640064240508049794726012204389010632499529375482007613149904490261947743462522911962455676408468322981546577912910616112533344787013182192205108988959453470122553353755819987144184973339075033120908172581442790212095010612198250698721097176803824562933967657479456683806572720924610914594232880387540153026606900427913563565916522001469299899812148654858676915846720138993609046589452852850615263140575771324834119741428912002327928296905359694689705351141878865454325430606326567611070586217900439243710982481633304642490106517501338755932427159477780877485411477247248962665048358338402294181690428625814623603463047876570610281817706999557439447167525085685362145504633236820429292891403128092480665623549570529756478242006813002788067743313027526394117803214274845457271361057631035442077485384094707145634555144217227026465116767006543234492985763214943409748386485806237954411586562431009625995837559680537273588292746196451164567956214644002929534035684261054796300490612067932421300375107576587272922989449207764723144751376169791996740045644929891847377098948328423144914786698158297064963490574258148328025771548651441282806825628148914157366130979160991904376603616697785376833780630901106720346513666453546440289077242335702702774259693889155044373659922286998124844071022099109909280197239206294757966866318822931026825003541331612203301430693931809484884381117541732864111980998972440467293887960308695997764166866956399165686565044381011820788834295501637260107843334144363017878939157153042240938702225866346066515528462524792617939874642549505616856236809075533690230789925075745234333295628133156390013294396928101497917340842351223147646204262718288634938112852844534651043259235406697985762388496719656239134850749097049846346538131277937332297880328615703879669369832551759142269935423831195119555742029451724793573751644767167970549164842911229790336351771716274827373385537128123084958199671484569900520963216055930798225761305661382945818583220490315351352497606589252958655772805107138185627297789584656751086721965506779452370087406319640858938242856844650767386540784615940598372778100007879787917016106707674584144322554355895204133340695935438942439359356468462613054256332753626856762106050694555580102894865701363247186142171539762581778898840180658139876278879656829894044245602831826509092817835352073948201239925785682919219374933434929481566330410826309356470464762564072162021516190842694963974500351492930795389828572945038002249584824074912078682890293734515815235690306685407319865723410049867621338579185699804646750835996178664133472694695113351647346700053963999577469354162086078064837298296052932660030573332312662314649502151943901016136740085032869736756047876657579421719710518393819924205798377615409777402919024718830744169609745016295379870760119533477880554663475598549602143494156050918221588087111147537776423329472706785640140043324054050847265215713848085854711150468026012726936759771920571566474830193104715886826688410631778281212815007475366302352704037640584686845520119161192664840476216019770347582106471881607335821876743841936904690923222376861124079620688279953012597587446124807391684616448115605941281605866888811719413297380395095125485570599622219523898260961648805531181744062290024378785914654844976759087828100994989769930082236366924182956771440178900959101404638191084369690529959141368705961428102076168395142658492466535930965146201768589894800143395901494630042249070415406032324149908493403263665035533847460149107707101073684940537489190957493574921185747172229023258063886443004488379827339846889126120335019147099902460535103090574071998903806542492855241608745621110742129691354796687399954854413985910682212857665648803773119421807876725158257954886118955593733286525781225936407377764034463194705794019153311772030755656569508194390763267513562503468905071906217842735227840752959655136681962900761089302182037505866088540120528251039733427171838533210425988255719449667456392824708116035528209453502615975378371888667770984088444831053812573210815905436413705586802541723924082486016923498128141449221934182796093427803326494597346165797142764189259773739301562891074488945156408755415924052646395507322254216269897659528382249686386759119337261825307203352703820650196299327634752508243454134799149058803347717860646623983792022772717231089400942790639262580643348309110205399814155895203512285450782389368817990703980393249649360437782741760315286977465178017017653117561404890151956320438756523377685984206986776156353946270612039640438134170263434990075753593000168658201898302057597643097875543007893277335223242617022828620551368823162905923002616142417197174991252929543515110899659760069135174807862816810853523868009965752101396116676404910163841945842108348328745353148061415532005999108355229074006357736871612924466938033463504950774905450878870901485471263434357379469464909962836996820104067253158309411111539288754942046966028013533224901128570864668479617520196889604687974654313523038931469510937006321493361028522194119555715206223059195152556795587347699297572933563294585725901943583420484062032844828602682525165260516845400840431347344903707219065163016251229336947046710695619126730756094713072785742421203396118017802668803415727699016110942991320369713797521898672938657686436165114307778565769255179755629443523149680274003207281134492024665714895229098486374920418433358764048218017460539561045749285759714329529876018105788429095291852722828411054077649536044338867965892344789038940660078338314953167403396666988426326126198654274095057992667812576942743295759542233083852217875768887923441158404794923806662353948783740697663373163910544721423347872690017274042696973263596222208692135328811253277496819389819575645150037678609048631463628048083625461397019481390667879954076542908335927244224329834164037682431649538222478289047939480927387346222738286833256266672006265259547836676004688794072072551155462676619876329878436287636308765828515244498902453334783067640791779234741508773323867542882864490616457256814193103330663062150570082645572642521148015864788277939497343870951138611294981784875655896301750896698513516014088420469557055891790851963116454967403221691104293749384490210851961886258707068546273510151753743768198606144954771856845240491720851235474900841152525985495991822889137450383589916646609686917074369796017043020511973951306115767878705230031918452329486402001455099929639240609061173419488686000117939509568455793470509848221932940831923595134076790724129232198660289284039545801943542146646119124207043701381741280652231008361990430563276976914301538436804995083807117961635606347607811943935069069004443648952302719074779881083486673369602499187728995828757158507543490109455548037099932711181895251049490601345959680827593089114840691740191316623804724071470394361031194694906190500481959464872755355851915504549483210323541139881504264129779440868740206099096559757053795160924518517084791727055795156263827228066888447281202964160735478181418032221628851223183191962426600338699930954724340952942328983946203993463026700844341373366347430620678470602417938278901657175732410534327489126410713728727120936529323130034526054309625682029736640784757682779851942659669610884754699121822148897981133634931069077513447996197622116298362153776394056774103663893360490361628690995992431849660216213501422654280436014770728132418537939494726432940843643620771852480535408820474379045247109566029955514623587809195773796244593617089264215048665816904055965247406812777190427268407987480153742176410412922928407724310329533774543122513630041978375354961383309859527466296633955418611131389886474381021672307076401384235354990066608543551622316115139617375234081489583038148366920935007444291967740552562663652030463752024240667851210148039835238481203595597379948922956138584048920416859549636653873847233812673732075572984815606648280545462014166309821583100460547112221234987918987131500316797761326122983707774918131002600933558802174542742037580555929911090664281375630480055478154454994229081500238371179203025791349399223169457527207927457049053678779432278947038507903897450128757426149058779703802063649815258029222797007300613862260087238887455162639033973431140565038317273413252390948881658368012132081759741226112130715257356951890698360660357834669749046777840780465514921757431123153137767884445095909166454175774675060939053358589753690097126618321854826336727650731495405123992348489488478540748536418144348959219461817413386654703159839920191006696030903568128630208846282605390268610892869201112949234330435405168320411804780139148041160271357929877516334784892152004232986226450547111360912379861773274574965745864964198272027622011450269640690765247912078801220700572540495692724075489488946001069277280555604546504630116460100638014592964802666543477016408786344982889411212567974718447406867359678291641469520409796941095531015898422173326576922891508972612008083062365747496898303818321015641104810293320840925185904674336755231627067603079602616577949104650768541601351303490111728335517233514374705374178563000277345168225945779592163031264095754551919269700130300563987111727934142501843777660283547769992408438548039361415172167750028250387897523073268241643922260693213349962380072182281585660243575429228950527845557503261844446580581402414234025109494344176787695512774190722070831161766523609229668303123745223943743285542210235785824395234304117671054483933343844069273434306052816015456812328933118396074180234849393585148466241458680787927844960348728903392098678898753624130253859098903355486363295313650773534718486489845637135387057261484377586035127474990384132086298248452019448973631085871122795928576065049777889517296192631054646092961760811389778319758767364050133184984349205258680295698405994562784350083131239815048456893519505475892399335919756071418262768395179083209540473964370273219151697962690474690326388912683628773823855164517390881499830671359166975434201646856279757608501136535145935117966313991095165366141109788216473670984590980018109204381228031711210213775446530826988564603779060891787867535008107295224649219114745836588429458768865892598210544730339729511814051538356826402754316544645458063825324813256004192128334285520680720830762394185972342889657433718996826523271278418009487346943525264446652602347767772360206576069484456101738386753165905656914869510921939359598738192564479342613029342699116988965418046986330522693754378931196485931931049095446670455658384075157779361800193365237582952301297681007889034849036527408784510197140181015017517703161822308809852780653378104533333651527161954220634560394711856037536836219064590111811181894486437855062517565904927105127451486347160885405263448997207583746360276307366322079246292223375632131946926303253370267645622742032725909814117455508619250222316923476847847689140376429408456690169680378929889465508302078437721356768517219299646412103751252823236629905163476655072187295754133996669369414875590603188484279304057334480123506405505505774413295973315694903462866507830765808536425721094423271142200654748335195163082483239752599420783010420635381692290972854426546637116504791366958035992537453862416815521294197744411038339500858762610393653436057823187935133409437572771909873126657119740711883928643424608980755527455072582614913599036344549686078577940840360244227334637815404867358931581817610170811883854300353036256384131520049525466508548451449502418126787054597349582145217776856640513104697448088847549672305609381538896975215079226632695723233147134885551506509564456082144408452723143188939383566507346125090576312283227885166687323525522516424446870636402081047322152633854599359810285544007943187977827218458901517300172928594787280907819007000414978096549636816016797837477265017679836154099604702193316581137480323188953028941899144218229177114490362894923029723620468267092555652758407005923715168732248221492652342028075282049707155825933346535702497689578890493604415171214796334508898154546200813773220270848940332809598667193704055475107436572769007886731797187723446116277862993434236792706587522750047929190784303762945895577009586204569792176559552388678576700757024350953975824605200796276775068241864789444596128591578941827766804157256178821952646423574030099748815226356473535372997429785603611473509845449982021174741450024811360990903693590354583264066216200870863513014420716236908412339086023206980538031760933801694559004990696464182563343247569129451316079407552911910251686906201382692257616546474465773074781510568650623451798703637535908289735241150534988689046657234592278044085154911100604906678789472660406624806736790769701567200442513461551479855610455631829606500152036756099987259836489587237923640272570884473755007667647702386464131948525027453610375728095639235989585798119448419180181254226605241376195656973777703614439547548726194544364307854057787882024696510310252353705754943870563502586690879578104737236492750362194719427529080166098766565913576423705988244193523593263934899925842738373327582524814027188044294465415762456692917075805788102707206718793263300924091219565129202504499103360298746661975387751699717429058352823329163175288145100895131604471996540360089526866917434896382291034559515703458019464214619790328835827229204630605436056191005171563462446692503073577416556115232407922752877065925477096438866914261363309752148777169814666316518095986755007226440266860132067431426556636321349091308213820516855826820477508879954759932501514982899464024605824020232901023035616533495585983890852002586904358013652498955609915321145289287317339897130631205711391631609184202141971620177879854328568517295601364260372652732643337009895966649290740117043369295192129139749136131716801044522067026895012845870267456583867171643613456169387438213826984123247129824371467751923828800532120749766756159504608601466452862530280879784394021572367875583368976085962920473151792991498826277544352197849904023236612724239834328476022688130037971139414198684731103660308661890512458681006695258715068667727108347223518885192230565218590999993203009215549690283739590483397264574193160661612060788306176204213216730669911784153158752031252438057914701395737050532012032159830311219565644997028265428288421167448943400361671831198103299870608101927681437449829403455791865190606449074983276265124935179362826689446163723581298912573728167445248298769538395559439100765095505195017352163400477285720416642529096823203816135707507597348315256649323972723752302550254187936879496125907222327715098976795113777150132505497067735351562321161003046355683954272475851184731812357763384805005477972709210824954197756708415913527076929429468183951808743386417141786199350728426238471518328429479904817553593334737780307515929621015335553628123315272066879513152304377034152407646314701623453400486656793711750972963325045825147229451769342545274728660903562257683288778312794689269483564332076052743405808956943066148894842357627263212610844987944368082008648988976773914746874131599696051404964054681944263844032948753685262940057040489619132199623017572961813823974393869375644535101041205771098885771478534375207563906813721719488579403562935400627801842282610731824805408700807498264832843930360330234416263718573334043546600509474835099418514791368628566219509129684251806961252440839437119292074827455539218713314559113933286830658210606598745852270781653707843961573148550386355177513257993112938147797005314435495322145717731805078186471707810139160785952113420985624249746093761020668018109264807062672950862381479042374387857554944623872362839515314827207195651481483164523913764965101541163728280683872325948903629783559793958263805250368067634583557921463595993432487633319976127451529705150706660460652950734002500920778895594445284103957258511579321766274711900812546258364038134684717872445878540945593289708535762498935451899875598765272425544188473971782377043733428529549365812993871805934566623558276452663494894490181722894930829061602746692639124372753057685058715642632306302219637625705712889077611913547238859876874789788144696252260302406011909761821308810270655651787838112150807201979247780843516403067613056012294845508174638121786217647878180695924407721811898245408276550693972859476225782578426659337141840475598468416391732279834016154721502483294759655464869260199240970154904936635733660985553799947684127928657202975914177132769710793653620837678480110788477538462808482256960481344291275526412972126222636272424755981880235644859455239776286986453261831621455353099312564626360087348375011001317215593452758188768020566323637224864349128449221950195312087909164699238959032346042809981879609918750353677540512296756429117244565128095499648065820864614778282216851824017935744194029383493951071822273379923298852222745520023190332138066536110710916669410538084944532766764930185372248990301467475418971264476461668307784308403075445629663942780613117713378886635293513195241363502951084651534196762383449686173193133112671239608098375894652149560646489948205013411398000742654060328346110113274250040221305836970717296817252109298628025832522687198457506032761546521559766602896911440910470482857571281708521322370310904336581748463101100800761362324415959877757984434257545358554241085424941191808485807599840990086604872499251173620429900576010929630413579455699832160786685333760362365826077089027696772723671243129042154283148183439603824389396242994572085874349709463187404571119486725857053502353494288236371611086599135270514523204406331601988989125498701939243107650963410094512040410309406173903372613606155392912033467580714744970974030874876499003939675668605655751425633902919240121888314668674261361908073478878325150879788024397973696165068846269405257663795185210284789542419808770868247676800817943575244533171794682805919214964432552856710888452630063400467347757580530614591625855610682917697942480619263962190600468108085442213017201264580092605841977431229599892259224463064789495988130897205133776626928493190854224739885346910963781406255327401822124091638565840861710200635340332042155268106648380599431453564116153745497382337121361378784458669512361583911936498897988166138512996585381375405069425269449769640610686338342092419963051928450060046721528624631670919424619353638892250878544617427542290511675972254858024993348213232059952504111672606152685699400630707513654788581470318199156641910935880039146314796592440710355405950758989291796582156638431436853182561491321324349034713925270904305276852296098234364751555812055188260085659123156760716967989547418908013107305123545632616077961719744946677973763005708996798784410403906376904780593097685037228328330258054181029818317664042691207721484861502363606589843639519927909213769885150920880172820860714428063737864714139864779285804090374861747861989468831695355948074467881979384426148339183177423376202967440283206850073612997010641922251226086294399003969983474126313653612685155032632743841030849547793443696391188191603775049463391253586470426728391561325619815740603923666985344402950805568876619016936667462302969141980931383886519799031668674775467361859086946421291315853014644910640711840342683470108768357317941486246449393357696224434741113165076104270088305728602189960940764242716853087459808575076861818362790003775435937475447307542234148251689226032609823432720590845979248102502651927520696830858130053299327510560017153255565571536828838751167773519068163501806327417878099031146773375001331564569054013978884995834621805973794808012125900773751772896767706973894783329119927083107719649608216216420664219321652102121535776128641455252600082829439802549077048729282322635693281239372658623069711186167855041518208256199260116756328728727055506483902300062899659186945375667009579114179308678093603688720208435993517286680927366174891417570003469332013937344124768500599574768438854037986292308173544169706387799339425918242809992947976414070408250102379231297322164698488565222356761044392721474507347140804437691504379462044493111261483388186107260859134483934482147089835004122128143760279346931493733123960580159107151448200027484317301573921167204584211522238327128691949120352949683579389854490659820222022360011867772519066117924768047327983199297881598663352383994021139755320468008000166910169279134166207988061149090096235869526177079290148906593648596226620953226710356824256210771634531821144820246149207819848437345557628190481379216952814643716778005692574124094982143318564770890854526516312777106804356372398109866459080490796352213144643736307611419913374545628441735457247818038653455804082171013575056375487641707464767150245585263872864928186489791710165017346733383760488776992130639093143530716303998585479698414664260229967825209022181085297645596455025811637818174310074307694823704302896909648712209917184468639046753351594503418162745420617403326059552189631168875199406583063528391513875206432310245355648633355835709204905950627289515584896877494790545722362095266841512416135276310496491710729714416565101913452944714501036830347735599154022306202456223910766765909183014591971269748073092013836428065270155008159576570618254726896586349304492420013213943011240265193711438287340984268102815616973084643448462738730733777573869839078966080605012266977929329960530841572994778675646326285266221789429531785453614863257499782309549358656137778081433144066579208990046096741587401055320213212556167851064161702865594393123171314296215178329036886568510124965492570447480255227383031931176302754443472943074223070932950652945885419801275933168683994898527955186348175399738594222173918442169198955961711155214017704777551358788096913237369883495130226093439938433720825078478797588970604711066065867646695534672492137041794083606955582394523930916452975815161347203475703498145910365347957782417455567562264108556331037075283336969721216893618881834919542163009437596856117093273121026658195496977159124954747673256112129073789162816382109028233919067198035986934088994654739126734704598539098461180985631282514479767663742451784436968901855444456624726262171168790174733146683578201052365354364348004070086495644993478349394278260948699896949845956856214712978856440754796734735904987077812446100791578662213273564270948217013491360308861647211740824349646157717040581000317736207331136249276034142265789471267858113998382803593419606763967611629217629092235709066231789819302642685925750349042881258282955283062735999176364281952862006691009550194549708139222216019433201484145175314796902725891047192088635671355966215270254752007121501015095915883520995169993784242272647167233103558961807475492421968079456663227907032221720627955713651194272515595625070639112935680390568932844910088742600267592475580894311942293013676264294190659873896824189215635523715714830815778079189629377131310252770647667030938996818367334026314109763855710197585309933928692437083869276158458452141337703211722720229052870234183814508147566533482201524369095368830230826000290224580217328562512615653040765976027590334635498708065596633354363944166688148320524983939472833333329280303506035876484747010606205094964228719019913833614784190902313142533655964402020636701507468799788872798254773630249820085396559987159603067145879819857342501176991094133862616506672279215961382314842190594875302664638414843369712017707990516550399084345543063040469176482880440475006829472949436265339763203874197265569829813103909851038472850224468884977815392579805166430198720842273611958685922067911462028983417355573276699630560196040795833976414593246689600272651050385034947544976081441173426132697257172962014771516985504277255063056535726092420683915361293281081484926538556120471153650778534078569649516549075913040407290755331875059905183692429814673267015965086755333515740613682193845944033697036593646821710566909596192121907692819864165105982612455757411151599786913502308387136725637282892246921311164124771600381707234746962339993172471210028737167754864478265459633155783050311349008659562932158798579011391740979278647170921046676330437082523652449137906395525783192540188390989160200688394212441528008456310307108301350586487952542923429172419075284843990381510479134230512189700622320683146725889998135912296772956640661280861074351200307902713590607578738226460396430259366252612035645999969848463235686439789709624149369575435504777264482521481987775769509857180949719191151461815303101879958143711252378941025732544857732254487864838172780692627830870008184494892401189027665023333160678033430186352971282245784052028198479215565493863262729948443328127642281137629814418601374103874072014411430591530151682402777125077543197659184503799476549178546723112279289071784131520951320383219400322590654216505136714743820256235481855423409586534547807672809276517170297342881169659947602457019720486504447331916700235589846005016469455414419347351617987672770362720988505063059355929010890993908553344126610797934763959555082817241503624447445552042505703745123787105369001755404436409172797372931215959161787931759881604300886800636672212434077373630160389144440966861532240955606704728401141347363211319291392459162659481375998904635324815296417532653114380124797976088416472910097966475120133728441547156424978734310637724459994942454778947412283501232715400337448003018343510777149766647871728413695992809312880686350785681622937188388830801904591544418879109019399160180407992114135037626040943805536736819502548399949437891000698390363362024152631203161612258300892914644008623651722812468840222095094000609829573659133538029751533948755557109174861352184478138887982178223391263071689507805799644660742541676055297310245657180483350227456475787096511111687744240212756045417921145027279846191478724971511944895839317631509582150241276736592469814444691797719856418878943171218625806040642802697849003097558855173093134650817518028458737008511347638758382190998649731126387160215489602755031557287311891565760665063416604098132992928775922024846121494458942364318165629196373927448625112757540527817472890358735241684291689741575445692236773001578604686436821160599536976553649463661470149193470397002599285603797262319383983428589661036007196699490418538158466780639173309510201540058190357787950498918896632993596177084080423148597893375252908121328317203160021726614678934443355198766227789708792155783558881889820966517690666018466294263764304454883675378104806060563353881185361271985660181617278894098980206463326316716887200672731866489281864572073094511555448902343730002469409098970376543942116536333436423382785588394028061383325055768504790732335509579618797702113934810337019293975322919218176659408204925552859765020112915060803168689853133927499912463301434678558528747603952223549028798808570535654791765583144822572190922925875443753990396042188370304969784800353282323880020619526242906907717613546283678234741810869833146973577111730326775518145046579118816642167234345541236236016398168229238141184923617509924470528485592090355307349858643479710135600289486825215927588102066816836475228126649961955943488406926948381715702009027117977196241857249247203825781417067787765439369342775594339823556105862330393948917094164873784316758429617220337963358853772644960328907236378591935544958803360069099578426642891855730880707144489265013982069112202653122215422891655735293265289631675997595791041076475554762074058472178808040303729900899773151480830787314942996955877257656716481456121565631748109744547142537740441803524682140392856985834478175936039232233369805260017230858612555966328058906264915209992819737894007401660843848179520638068139566857132946237376388785824595050190487682788835172814742048299877040144713181610954908534450567738441385920296430734709378826921917610838927063567554468456412690276031136720041794146948542265667894331833395897980849640040681965897980521576401158284997279834573732769452374309263783121680457421623694498783901124752284412284119650164754102663565786929398452311690669238034842178935608746239938449148109036389549717860284941680685706319948475937054780674050950731482126399987741792419453044393617240672838122325468757607479463036008052305465649045503308346588268309220476323028449397704379733703911226382901121037414545126475700328379672980540977168915575827606374113191173606101541364966874012364199069225821186107471811858970978213800555466532451945766276333394281467557196046745460961830477959356147331878138692377424358286250892632318104802292534938858604409919852918934611195600691612916588238420145743604040587700471232044492836765175135055294832095450198260695574301847176366634039041247399366500916583162933427794771599801550392458959826093004281981445432647815420731999324594215001988785518674059136790181936751378434590568946589782949728002693679059863569321825767327285669310148259308251677961278831518292262070831805666076904856397186853634594395738476075663075342513198449178085473243607989480221355517540007790712594914796838127033506200463403297212918364319319215839277670247616495041391414588874580823368549929199580065901929319038872869052995254607325832464542179404603446868320523652285221346568671720267930800467884650254596393425924898209948109567827743540413280325124116030692314865410380755290011570095536011052483778120927550344085100013809548578342060165427284121585338250611803171095568494272847217075321884106304554813803860209009128032933300042237906882349455199871788361403001302352307692609430205551482479166906820455057257841969039531161882875580936859332077183817895861767019520128476880143849144927970447071548424372690366656576464335609272117640366754158549132251560809043319881284701914685195757866226884517236506741932534530680870521546406445988992118454063161669538117560447012020256632996723139278293332968889359419121420806590282105522728620976316321295578122456026205012513839204437380538546032674258223823765692705400281373724096172692075914924574827825628885389653944695179210263906203589899262833063403248886114367112162715118987962041136042408975202567499787960202043868358153867635920565487498161784026801273604216367116475865120214964473731792054313196222767318279071575593571036161956692595946314096844729391412612231409012253519552158309551859782570530294514779076388824443270750105136335542726114408455925698306566312187821473483675559543913501940861155475453198278505585805783114241894605883470628412256084021265216643935621192634043865334647552625143348647665833281509246452661062135098537034187061503260829770062396544310380532531840268476756633776739406251885045055815620528529864505317984329286819542209136687881629882842026447476144355967622999390436344010438280307968238048302585892873300089950204258914952916646582003584589800117817380472975951215400633980331086443442604751030846636094488185681422707618188236106654349094079481725486006956912155771192090574189793809996922913921990768197207969736409837071584519132058679911487022848059983923210834816744620050094637015642839742576902255170429444285856276533753038913066860157660167018019849867763447038901256708710733796215851155984724403932491262229674432137072124762137011976866151021860715825156577824464529917274378180424385092405972198043045049310580219317816127234212894066481193372810512651945734055702786678819190980960550901098058549775497623889511860571828752937835292355497427472572947171373760144497149231816573243750057378159758703793064356540203077828502728541256160252853217342321657748742356678493158309111175646841637131557835332627030732205545348726737101354867032451203668912187774104680380987646856107281116286710263119753683482254907865706141045225671395232629310511647262699775197659860586461656907696917073697719552195595913444021777578458238049955770697705118105356147001588440771965599255891943661885629609847762185828851403449887958870539504168758461067176859652239420039096346655381798508507725045154068701962445665538980838266111144854165410531376454298145319272507855512327249137848985146663592381599077853181207983149439323850474838927093458372062693806683511195395068940234435576546669839561478522584458980965625551210425438593017006163368395075520042080363755633410440578397391795107850127700061355915309970623566806603755950593968744377272243848196069161109170326083789857524543294259421335768825417501232666615662762848851695996411799082563130004834295625690338708449333765992118903793181493936536022504782326340266501160592971253696234181664668674451150294086824555076454798660918631907356213368142650257992994588878160660350965385925399781281809453020246127190937874340470344227732889795679288433508511577558470094871638190466681210496429963440568404975675208539105482044026328164223196636882361559546750440706068134934306102332160442625479592883171464340439782414924634372785294189190591218906465522373812165114591803105142895816733657298215975251083767739028159834567330323860611859483002894925674800182246659597233838991310726056311266353670237072486415943975707041840772476703372388102781542104761152120251239197969387567346373770543962195111364209642582044075413407577858315023512401283784301973984038484103447071464357280251270507054810127735897950490711285996455092495158003006404307508255899185499684665511536241849742742691404176902318310516121202387692893167349794152836613446601661872605401064081786327258055586120155640152991193564848643903166105779526853836039721767131712016040245211395587710588964364102379551358066488367395484602905855369458414990836823621932776254314441336434897232110774273033640980012653598696238598269828687842154645497219240613231591933231462914285954896319946161682015034602364257666288422148223426879631981953017670256238517365831493881033717975634551502587136064440006342930689449496638338885177003960132660945564978404179637142927254061458161706849058516432494322303909961782732830616694698901175509221829219058032476827268927357362466738107397022522189266582209471119141686914698293022342619183937454449181144830927169717494009576153003662800075714923006962837216085336725803091430664407499275881653808635353807002753929344906617611249670642072028305413927654942269020612344567602649397077604575368051860912528972890081807759170536092015391110060928152523473903813883174824483019715324033404580596029957854832703396110577240877258069294114126168224897481846515294354001840230507473112047687970036462026677649514406399018493966740574211841448839068609221093483010969881919996558212701809419277028634696513588211677686503333551603959995253101279281097402364520769248680381102083957996579659933063548166047554368343885887855767653913416722516508716137577905901273715962761820764193799278881061647703852002417654336316749058618032598997793479385370861672509214581802739776277757903332917232405665487876590432785815700437536931641773979593112361723288033682477610078249999721131284786065518027370908473763512418657546904952001513169791666698246840328164546400592376970627079555892479572453118712655031913558392312464221729028744903546501232352987108791850094890998844945714764014780000433387139251133045451449152122956935812942335351899754673099287597041154697322555062326972504781856698026519895034601321380276712224111078356060093034116925407861828816357043928444011569942323833166815338504338072958768894085556553102709292715048012317435088171536262088567848679947129648291848911319645604369694729786736040812574174537010637656509967477246020207322464440376329915932980312098249149359553056893924294917495293414134558903143331974310372439786941825293753156512136802575911213871676774772720716824580028031920697269841787701017272216686632179943088441861019175051328803513399425060359186776615513330511043434196077378240592108505869449304637399784629945108898248482499656003477357408371678810811526503047206313930154189530716054237965176832639226487121633552012284435821140479026153414501199761393859653133191923229181898012634782101007264098525693894596135953466403188590567003186999478365767390347353823618162972245287481310820134246949882602462876967463351196570969302111523961221181504749554022786643895460895677697764258504631336193247967030717369663306547298737306158719399666144714358303195219300044767681394390457993666287083176033826877658771208616708658716726421179855297760953366181991936829929390873031232838709364385938913972923936412660400889772152824353813036865236509652443880247375292618058308119455195742352127386845171135713466344232295929910147697979153247630301651007642456329319662836921520028573666969695401108536201392090514303447094265320218615274457869935660855774725342113876879068182919372068245594132864207144058253609758696901500155450660271810533589367959921927892482579217997683841927762611431595255661082491998810712318085278700714626808124895844348447060900653513048194824010023219285726030880893469550556766618098233593492351036726000394143328806011306628344204614643203237086681042273039590784368608580494225855470503587174673670454718071409672367525212503924774343712119931838263728208985041352100192513777481955588719920699503963887889548558843802884646171662818544317312332415446950739392824712482106650313688798947664274650164991924190383904746368767425596065477532579711126260066392508033152169317304106552075937814790966417090322373792976557717024155716108799346805236021791585931533967811161201507329021426231232403015757995802991115324448788407947788667383040819354044321900654828296869135240547448802770999509591388317736735962032414972946817042244643309329890681207617612555089703543848390667822694927871166024056297240524263577762647018873379369791013864814054977825632824703159735693678135176846695909696204524669109071757380907705270810602232802279951997697330429718385873487225503001527605722492271628099132131780992378492426097284215771930458589615817928339633105817852506485147576465417316875075916594101456751587283079055660562033141532732108207712415678554921458742187268865613738798124963202205483927524296376426131056727432932131642054808048631650552506577541284776775951013800494403122842106423033563513263671991704924993566131489091416782543345011450562137778567486360078568152790161535402789756289244299323153531619343862685932983340819989248508515199254624448558954874681628794079078914313751693820781565213189672874566415173608514791888695767820181975391870146614649780692144167430414395527068506105344692307149575783128220589431972575414969032300582881977776195071012271269290048065315418597140733824364649195546280873842521931623418512782139891246212421495546215843883942314828061906151248730938173681017584115866386915122631676805413755283885453174441056267492332764204649759131605996720350296189280833538550934109372503119519612762002876340460236647156343636297596912930383474392722711077787164878210462719720732684647075688273817779779462519635900327631465303825242000649904905196211813983982971314782933567812243700706775514405559661069651186511117137612577982011385715717029246446563943811523281660381760278147920705342740048527775440138986371012635448109253988892367353528680128669462843640211910946655000935605664242652431832250944806101843117242215778457837294970299590404029692627634289157417915706922114956134743112995004150670515319434440184896814333973763689512222688331192328789761202818521541260965331151360351333743918836004030319803126917145360565408013096997027601085164790393920211137291220247162488539885077983625713767246141141547004843354363107514828195969126945263466151785148761493084829990254311860150313636494958405669760216176902780572176006870059630916969428662820960466614852448197288883750681058768961949933014619780745912362502978313653474349286527336694948985571753915508370966994577543407928170878307445731602826572589565688483025518472313609022411171209268279013891304149694830176326729400519533025478338680737869182255949005321449022164619114153849398355238488193261838552814155391263470787201252922854251423433336027622252918075351902422846285321810969514077915142718534869583844886544258033030894084326636629041662775386899813652631385834835300056894953491381795028588148390658156080343707845816115095786172017368623841244863036312001847201055784010817345659311568319919820286157695467327457968188842972823160331544278868672853961061355228494346432466808477696957373665452341155631271643946301836883445970684005325025726893042851830667432838603659884315672631613516753211996161022001121095635950906355996357936089278652194592012990666367895477286973267638051889206004079371579636757314121950915090634930598012705961085755592385206290283178511965650357397112445708425484903741244615364123827557169677916404703921606391851386313800653180341067852445462754003525945482320738460794688731988215969951307489539437384227271846225556524170059707787092484950603195845996018372460164144465457443561756733167088753640015125572101561342567094067481777579952564591677285584066391813108387332484949430051854409307012532275092464931126588742299040842931550929308094842114427810938706608927898326332234652072571924091013307454218209471333016080231960938810701583186490052065152549353124428333470685142113500595734294158280725554558821794434982902272027410263726676707158341346514755201767402188084067468454109762543731197041682401593512581092052200237871577735844239618097870298304382059017218578665053958965505457231778120202468279061973868369297993577673479265221222053480136825744118247214113643148791008995422846410698719539083568099424019021362665015867480176606590626694249278081570964116560119202868341655992216259834035622985773567383399146408478788935007261253387033760634042548350734561320588501278647804441906371053176226533441548158583648457027415446466639701196270992933180815421222078188450912524621145421198088908303979762677178469842454999671641373672593262575972821221251477623204556026458024204256739592366333070008294725057769370199899634939267398548128720674529761101299961899696721475969037542110749043202803338953153351983954592654918574556495851051371751392807704004127610533922203968674145746369777694634026163103881828690903742648435620913905199511336914593068465227796524283085440144796810416802067585223351124596802021526429449258647657070217555173264356210999810643880630568971239843621100557888341604532175638507972394782983719516674902296273426295563066986666271676067613233223067649143392246844334140077770988130868453853142064616271199297637753151794112625902771029340491059484121036749765925845459175740709962510441052188726096315489604228624075260397211860843593188378777053573210416627601340509014558767942589045513124600920155009652340534979591458872439160537471422920706448362323682399744834469733271579953980896911490114559959119280296404274767390332466726961869129980350156469081011989091299729500166359472544799853121027291195219020054217467861784022500067367044936552108281425214349185458831189200016465516815146714694814371149094356028992641529870669679611903168616266473464315932752491961848023199225353479887262511265395494228748645466438244619660358294394596153347354166437434078965629830616818887813887500352451766475766538354826493301484778719703521353588844541334402332516545682580743637363421680014313324972169776353473929052596650455045668904176580857855394628598759131548575115514285656045814249569719425286102825050381297052967593079230201933480276698100001436861197857542943196946296111980160147882977838086707489050359892985693100034518488399186661926699756125242885318712748195600793446848663875679507026213624102951626468726025184888864931443591514078037283716351554006432807424617091781306967135156384099419840715142572145245596544378201108223931600992080703112870949515412881508276585396484636214031540966603672502443823245439287005809245464877722796599863958290771030879666349540785865839972887592726661590140767692626261509313283953998213786340550470452457517270863145671014124193350634240987651630656905577152091018112651853348487968852423927775186571775031803644928787024651849155649767784857749051448310544531847839612923137362175540975915527471678829914444996094243429364395674076102640562572413621901524059280252708511497593719811849518193734262263696864408959615065919292896519446449756127916916743940964955948374571240292697807529168202249841081842638850511645204766897454849591645101410551357370763062374132509092523157251714176980523042879708140166920383591027736295025054926945229177762280792069480826903766478420188624912931650998817147949789644910273836964742280078311215620064718096472262365999507724401051229328636513259793976105383005730021166451653291684784799600512706505337276014645293878545570373975916029235461667626272788156323893830836123159282305124839041008206748773495584088700555968177921107873906118584489565495706658086643305290078051892802266275668744123921656907430987910075895285213583032483682240595063702683085163204145714660664917902794468124871281422149330966649634390977707616376805920036795457556014195229290998595975222422635006099055458235857601248867839411338892450551103999118059252495337617868964098820955926138686199860720942282833477730088185577075079774713069681420499157852070693101197645957758362931026863712724771150518842523096280405332637543314225566679873251208827163038134239954229358461564325623150840531075964702734245928009116490253317035210334234498865432925057828556875524077806969736611882673637280541258379571937576696723388820207302145326335661504539921569833757241994117238678119838975091478480101595488721642832908996188002256951795017120240475075851207325864401797335087404784264973038385997902375870011035068174121745451825601917959563917950657075491816462232270083054128180250725866863360755125089818125256349827398318512273573107266415774176608893020610538227726978706189656820354705664437493286508091248384790739939870988101997317129865051321876678426163059879903142404422302822441187275942598224239032517811205187768489119168765541713416456283693269623342843145724013859396338076144449191394768047327947544723271223542981557713599943967558046173907335744030625896857173790034553963616804216323726970694645661528700172427489268153034027031140930437950841861893421948854207884125026271771311813925857026657788711404602449502192252809277297159025670690379225788871523079497427325360472539391872418497048996456600781517267437604054362834601524432104661569710952667831501096810568557264102973797227693725299292664268990262333622694582629556957822986367385797823775086908688347019793764421804556781913900762641422881250970222599823022549465662610751924051235935883854714769826932647472804646827964602442454492640797525894123662934279254547626863792288365026261773287355468772469575580425754508109588917615357109242592167714193133375503807151866984224814354407835027155657311885964718180476194979078937987332233328033285439257623289235557615953424663027229198130553576333384068062504992082111346405526303692284411610624277088539856168635660244846942454927351686015096183668421742573026466649374254917632483111050045533567776315884533418552210033554710392270012209965702140972111949598678788469701942742408848897406234166459949573413294102431372133546496130786078372085945334809121678322771668771805802344498893538574392644166198211596356176933435592979513059502255044292878173815785412817595968556625235868633826344158984803709670460272106178870083741388994885983712169925122844176827542080043805057183480283643087435939069862885999062226285695712639962779666172530968095074397371630227559037804813930334260402326639277275441144573986554976690862487337285694157485787902006750839371743086687657406090000822248866988493472549185552519885607440235506916340498808947210347033168361842358239306610470799627700639316944525029988240979700678303439671334332932816422347240124451796179589842221346436463468932630947216259028999574018144775246118560748694419915955028987739105802740992625280240124411128867318733684717893006461815694506528310880980949115360063746671762337540959273239789908261217540520092367758439971493569381009524375157781271979568696121912657759132960518432012264058132486141475903287855273810230847517149691013022633383778100116639456593488505725699889562390062979990040102504838071899502831606632569641215330908759923870100258213857696853011267264789464726992291938673639433349163469817989491876933685377090299778030390414573915661662832490145197345430839634465071146285872732975786763140013842780010629393981403520356452772916514490740805870955616351679932344836216894777658250709880344960585394197811744296169099475640721050368373958456207143165477342052710756051118173021741292862087613796315207866127277557874430843232371901750583138348911110253456231769294738360932749014177203981254847575455424916681928393768548694262783395506320095551718673564935519861253558505238045894003438864031693444238591369460927893446324643298779711578447443418256908614865715063611359048755941535906031230546789047640197046440301162369545935526429041101367259591188501690177100337093306947693154588080220197145298114803504552814370397556579202504611302635609919877306136156890383953133040586330634087654754788777865449576259689932487403564887941895101451122391690357662096135762030505467222589873002584472546669745362697229278805441344872338850895370936820931891207787952423333019642544012888642161789923026266771108499743409949874581815392276102087795549323576209713148381453976418056699376860494920510280376503781025463768313826067293286752555603548561492349642493883835297194688700461602614780101835542037633170404518611206549187393098575628566655005847371099485318673057509639891727093356403443706809946426901313305994417870798748272699295186254069497657736414246928008379430960585133174875579723194094582578967155276643080432092120067613332223062695504350597537789211600213830139411968661096779230126921682000579026951678005056323371364973131745350987862393020666922080524968790926247074930078655197827567035411174119126993426642886011743810087314295212529310931593275322536230310672150733618064788742005630191916345390768326803804326487081454596005072326797557971533011985769309540024102099994552843695424148518765174339013368183303391496222817776100318345375185311566177450938956991795979601701478209214630094185385690382119918510006024687640131156525094883851661472266789058223221944542117780818937096475967386759733477898765874494593911547061668076787533653111459253123121069551035056744876375504130508384246411581599087486713497121544443260853098587580169532180239071379778784114534617712969525113668871224741705627333332329579279662082362935385305784846326791370383093038138962916095127690726454941833752152715838256576319693215829045282450937950781159062071241452488477675867513819062342905091967971681087303855319636784358869666464858238517938494803114024618278391174317267227460823420619319584630872263536241985617589427570881980123812042577598869440372573986099941327929235148798350192518563871088460564993768459101633966042901552403231105782782359161170920558059901111940996541280868011096442924091698022431212838521531560321120722327847113751595207883062535303652039520608486094236443179140019531082008477797547172137050351672773348496537575575815488123287761930918464741032127055541864380094572406977568056200207244396378268601077099150647049202488042309533477988261894436881504668772017235074277016964988903245809832188643953061580388841359301472329846742313805982621758909093838530915219501536399299653927317194681914970568923815025563811923012801543748969261301478503498430763280686343454753672505520953364954050205612220026701590299575701332926947735786283509700288247082345069855284146199955133364008825925691402917426862058037252762599389145857348874327969029424575924455660936488055374620484079392647011495207855012081902203956305426151686852324755344754231230717505026450151537117529473219662383355654868326607716155032015341098561313611615940960449927980166105910036198939400794694503491931961551581984684737791621170045450295797951611528334729812328182966503230554032993516262199855792505107872016456802215590728680416029543794566576943703759946277381306358276008971290818292998265416311694565096768867817136605586856737266880141951809492237833855992963105366107214201656752863329448270546538622462459195302864275524375216017398307389563157860313442767718487978200833825113827041660647292454700493824236851189429881856484331102521628313922972683551471572584144124670801403857220650131233542443287340101552099553997049745550347285136548017448455079839682025287123137238379316236479860129710444112567763983269280467609996703242733171684355742023729630593870293714637889370785481223498167056912236148342374815690579027836262718081142927914159627304697776787258253016841039245551404986194302323546342882328082323758768928625778039630614498058223895325051745936189799512347441712259742942034358204731284141669961774798848324232745934930740047955961011312468345852293223375377298287622347192683403016122998905797115498825295571553406440384604538055224782850731425240394901656156677196099601297728020611389046570562298958570858139951150800099829443756067688634895937827514366380909178838460155006167178665616139128388667871504918248165203889693986905331724059262203609885539629907488551400280141441746228545371714582636748198125362028477079782118160015128528659881981875071124178219312970859016790697826412081010178720257368635029231966788666078243673169711617498703781865125008614094012206551905763672467707572082151320265682531974752610629912136487191027181502186262865303661883902435459153715467259492648584262516184380909023231747486581216286066180289746542188315026204220702262181546774898866330667072939745277889389581973211530216014924442445692134692875460216128275477696030017358971942040948078358165843369175609944908246916958204812224264068471702755398791305882616785665809971606653375027404048465692839885680682080159254746996974110362952732220794318708148483946524917199203831251122587690521042163676774926171942158941632769848632036513000332991926465724941527432451618620291986867400303740374080780988354249099120542972076672002985529449560493373664520522909551343043448432956662613158062815773104506760840913785340882560768226225940866111940018877547512687182061003039834515242311433232046616814257573769102823560728081787253332416275189296196644301353349021908342343024118017833248439954842475285537990930024527862585523243879659708539681422349545497336303659887542576290561186036165573149783174816055965701743514911696615714290294881209616238590776904029588117317461307854942607513225990808276494690033997180093928223035190891077695470048420995577629196318235999908433225227731179630314137356136865656344086372112668832869973933860762725516551078352612151187652186872857130346187739034646775120791719455329393027576987557898786129129019471115983343695313414032416789101928874431910781510382187044686823244640735168251164235996759466442036164028284418284564074900339587668992832012256766054324604595992877258028436264355716895308227023250916495122417993333200611740604606166161447910907289476692684390011546345295861286753330001445925489952637826540378672528376792932221016078914357368340868396911351483815999693169610694046270217880844695499232952044810398859534088068705378371573190833253449550850505479688232486520817160996327972270161424306706700751873597505657257124216733868562093380669170466710371065341722211058979583609799616693923256843185968790852312238474480218689701372293819543007216438686465463172020405824316961556043659770203421701021981691822207260184468583706711369390061273326360446356716353989998764506827713327481799636120092062630652907474046669226274541261488679534720599068965786015256243340871725497852062726114140271641188605846798027744372134198709669425389119851775195620177568273583898416784113850010282465739855622083215806897658869475989619413069514476336402139389682665452023852312468485930214629972684784730054026043372199671698199189784117202952827188774228758273367888194649376920172313236729360538399322470844367247902341154454749173746261390465560879428801024825455388468904152198573836800080770475377791156260018249763751735627506479724179183385439894903322003916981898990567207814868516191595121887822746708194619887174652789700857181163304804901069297671039246120924427907844544028856605193197749844657118327633197811911892961051857068233908358551405507048554726293622203720499404030447979451764110436889962163450518846941679971360750276686976653957219723095532361671720870557476697179729527343687595158968661352292553948253871279696774244161373364052124380052042802664510680580355926813035408943873742798291779068327334034160990479076183093503762290347147970401777170138990867492057207588103597107323487770987707822793527215088274542648600171020385585479211303682270059976384180510380504644238736300934773720014950781399481157517496106372136006810234563153548097241336888943962251075542600797399900585877360132750877049769194581667394998847406185401173940940844462893606373397126023176042097969754989649549830899030088147788781343786159917838046694302379694679066831193066991016426965663967820920730721662179620674072852956428961641532311874471654226840729838901838820363403982858173676846460821776470650904184747044688426095688159807914898387054348307677273286260116212556935552264590993795376817478366548846153000548803997029055922942161196783343907485685349005623871543889751811736132195577855826146491519567415962755395181972588265033020053476979202052669482480159579567945881105913560504755695699746563569090837956820594067467203503085972148739445515643591939637237292850582950827390780361339891654067770237478523728670053772559246698355755147728784050536505967605819113292463660315990402320574999380935378268921530556201015657675284994685180977654403300197067052449252173129569726329923478717997853188943043473295756889640471698235532278939033835227246110174655551487144313304933948603328498772654820975039676101692573126288813587867989110052028593845322904678948135996881447990285246069108825230895420344805221365040071033792543232968295870197487538919502733824922806618383011893003430343337192533251318336279989970232397133341990467598831915133516005889458106146771657939341255030701769948355817205641000304245401878740663701160113667062826297294834606710673590547602362195451549843451592326168713802885404710595505631932158754132055321993190928791760165393354518510323075370847950165930095753438496018614830357724199798187131032592603799222867694627257092724271792414838357115430243519005688314916666994673625905310831413706364568478115857740841335111148481984895196857435277956206138275086762438784525690211143674140654069143424192249962346755237104669826665753272183719155022630231776627318082354740789137559612441348153697837103419071219627924285660629919799035739164408152915588100798857109078521919301157413780967043469376724785111377354866592942768982091712619426188309021790043331829922307321439992857490446520198518061989250373237305906784309801273854738155363525399366582791717989383353222729011199470718981312727091311653070558094587490797162254173481869622859360712138182123388570999399480390515803593773976207782110073104460722268176086594241337529789793123262992720545833594755680092153874017932067510848472510291721189159366202655153173382751850492805336957434872209754789009558668298244182095468871537044496899917980649610917929652497197688590386782532938856392399988709855164649706303258899400199114491595040487045310076161154808691948953351753967616588875644413935185986487437905030747127837645710712917158604372647767747449977620335307889843729259536047307064271689108732898411017659713668876202794136383874824365067830101673053044956334761211712861788030541582120697632583582986419102213654932413922175197320378920170759996960833841489774657087065645992268699174414003211759923615339460111796600695402246103868994248655194201547259904404912222078679203738170642070124222683763745361794833824557136996548578120043523758764925927998528258606875449880325237491488997773467818248476376478204542575612981965677465437249739159218774985627892671992447973579885128073891462657475667109852826030277293335338677367812329616802391284252781381812020105581228485601612596782185577114744047669209444406517424330474306679071557124054663795052041694220479701325877542617867739275041235829991207566136750490475816012202271630669474504833594989808996121091383609016445535837573886259785097520633917873261241968354595278610009729925502841070097458969155439078308476946245270358205205845827992762416644195012590392993060025960831917149070625848966479900106793218368383840405542314503893124386967970838089647899817251958537215517049549752800897120300970882614158952667349629334794532830266088716418741236004987829479170049246962316219974032519724521642473714037038189625569491120337948798175473190271397649381346663701813287559416563111907728068398331863593221584709714967758998431102420718551784414500196708541378867992837764953996239571011259373842645820041975750874652751522204364920603782968825979770859322902579264464394109416730513185892470239375423873902128357605270651865779312991489746499874337773262342999748332288185031518637259149668929515911184293578218736385406593695947528542285284285438943339584816662723425854524382779015149649754888169673495322070901366390457860672140299747777216504789252925505137518383657752521724817949193400796625169447322123703179850488590151825941500483573745297023673431126122103726259261628657652341423470402602824657742683262949054392256442535307010111390478667290992851455888727737720928003681678411400324442001320822566857510100717252461293377366805915937939951156688469715080798617898366013447175954338815514041177894263110134724391132545211731940983400105335510268842970650357077138180936099530801701873273190995528337496055603257712585769963682849005234513106474608042386263010761092437623565885473701170059519095631538939732275833105547403777923380446598393539940898469814390649313995642882667491352582762811420985297966209056707397867232376789238994989768776099246567695795653766188638879969464327896359284572865800128662795453839581472877148306724764585921018786197348103178365391089903122739248084569578980439040574102152713941385547075397743015011339250408986343906586742187051495896446328508983467201037106131642532301744332883265836273423081708025890734096147907921674862388643138752605423624493147530003084585626712062288704049770830923617959885271004446935952703262308892037360820352497610913248356949249586342676396389715272979768605933655240357988107889535226491886760018218828006652152004173711360011329547960302563873613008574379453096655104951759963817724630384377819286562238255481667784993471963849609849777729377424075112248457439636387361776508522462847649632161192975530853742022977151373255957119940893970446858011382569949351731234110148360150750151351968204650691066870985951024351885602946428019672127199385616669904634034068068485575312100377932783743674810028128429430309999463599921991435196560147375478187753267003237022475681345028663699951335507877622396302025112014213825130206249745850830796616027389593811890260112884880145378105129670883540434467477946737776303923255839760571160152448759768139889154902257102073971412093135690789254866064398390291993872443599532383143866105194137254792726056356891218538666434351446736848344985276263449717034453278587707672833374285542467841835678195183672077019038162465639660850613537164274083478091990835021948120939782918475856984629004614941585724480136619791093553028250410816049163193566338435426522518487805373446636693068829517572438546795535537735117833729839229423949213445823772475568411856283750680727288486497296818593703309716459735751189133114675341987555537267459145895399004492039432241934093177071469716065077118072086336209630009537615601573367071805564985802920267364570476631854758937209613100659462382920716430163597465195325165281698161380195622334035536035182486209608238945014402347841469797333119621479367684155973471265621334324486946225680021728995831004092533569639809649767592496800881593135148470461393444840886090051793113345366157275669491530609445495978005063011266859643814039135614523528136593456852191939165201184159315220957607281620285198645854761585855467527509955416971592023175067679133261815178185105659193982537240651425389970395912744765661110261741809090371145913330909471222217607953997481194725387444543287223250849351891956378465350942086897019638747519614506678226047875943626042220695777923064516107881421812581948152479137701432922272274735184450469513643395519106999001892859098641082169761288093088184002978476917672342171512348544947057384670466607289856062828714418152355155959763759979954578917179695871735549630426213449415600637992851643426070561749803123261847715072829816845660838096198092184664035199416371268574506920451864168711722634678922037821551282150402292209387918545695166443367299075922062172989452803850960851016562664187011231299921688302641296570527087035371855247205721595099025203801254228629195908828756068423112832633444533753662667650877281711378182076438027181567551219032600904201069546208678929150342852240774203977037311023015801617506311259794159800908995361956292051394398016071047327481914827735137680090994367030385090536225241112391897337208472860100047664097050641180763037420872859670749549694916927069911733217128249007776439206508273169760800352835644530837574111766687787979886922975607797489375259796535208441930463154963545925039502971397134936768321261095038566485978849417619596795001872438240522447278149886248344795638336126368998716274894569820981507991650575309923823796664190238850458048276744112936980144059914156094509265848123370177897525399161893270175342297917267766812617564062143333450980607249091461947991599846077183673999156309737700515779387868847418454661995565688069520317884546629481313035310315356844414229250568857846158145754929557483437924068933053792563072815410585174346671819146984280048383160761361169660069726525920739830980199838985545795032824328392822926400206519842918755898656795911917262377899380624372510668133262183082820236088810907742695277839873739800357318562736125945342742240299580544035114747167272192902588410988581897296872510744453750555345367788979744418779928333182368412745638249300719863324311649308918288687460297605129874993914543310070553578420968241003682424414246374490922719474175702719323561774187153245425381705752294678124545869736514037271567281413527364000866930726410054220946791250312954554933797901692148612320296030712462468404856825418943793480342955760983333423208321830149730423533451509195014846971265542297583806078084971961123459616095765652819206183323089751898793629186857748721912995008530568873372572332376084276061276093851699608290513180429937643187607387722757445463796059257862484918647833074740302496276268103936331195603929987452610444928922709427405493344545310077641270304865417558574044226693612000345017427138794161548375846784104039250789300291771317383620000341843019835772930534199003541928019651121428938468808212270578857156891372597828811772549693456380330431788001146819808696002393164552583635915820787775572233654510049735013042709077540124044757630100227992029158243710436486130267059577588684898998974104902665479019994628782064439436210440737676637396988001356276739073885281445152191348772952292258212505096968844341469469973844895209266836746324368194011461556783720928216820377356819410818313414668442788895736091362842850523339391605689901084220010488131419961394499902750787953813431645511980308496544518228645502284435210875544136810706111779653946822186606036203312730091376525500935398134232042855935961895656594909035113186903349708740043556748431247235641688237736157565101938689178380875632700550894443858918840399463226316333699846653154214126358986592800781023034276777474479049128801516696284375498193713420266187887580728843556764003133133161137738008789993989517616598091636761630778854747662356663624576422655021533830359055588743240169215711405460523792115516270456471009533543927808100357684983308420893420434507091621534907622413691588882933761079931922075818236152297502041803010570600824208511308597485601733517570718153095089479156098164016767970357498072292221336791158232894051117341907885301141633927311023800797313261532795083940045527984516646656706682445734518629519686414477540990370231786796542369676392965588757225443016588197627973505791242209350425516187270966234823390028682185325368184000297429802573206951386002253400529800178001254363784147389340460956755490270777349072508401045760388789370616982727815009601824963292111667442412368733779851288011634941463735679387478184545385813934004050629018631902174979129749763457642730094500960170028834277548165014437475116379899386582784277985953814767894469247232714869124208749727196789297714651165226609708329998254492766440114417284648646732659870159840043231726025793927405349809941991119998137087858960445331223372578253943391949317494190782985468554279415960603939068098556087144333143307391063257765604141248372084703929496916893419223497390294461628574557269905961425139890408015367929236136186134200011271780542860957258781612550346416491931431376112250005805382903335772415082142652663680022356043707986037704202824911587781731126311371458077428235252987165463749092593013224600340255063737181430030652161768715126737610946639948218046101356361705342274057467401203691749969935914352045970573190592972850174701780091254245570988655513483137109718104172116290653036803354920625264571394504227751828934719865831368307852718987141553661105859343722008201236518622407075224401926978813052279672874160765557162804372111016013672295378218840990232194369684600131743323190082839996030281049024942644100799681320372369729208647800549075304656970244646965031359194807416506249802551520602394261292051330800226986271305976830175291200146802833845587199857091974094205734674920593379215473134919354982746036428327159224648704639356103947800995453695715765382898225750091538009173216243473514780321350479123859252881025431397868184660667580810920821439018533615627345838382014933990991676198762819456130799822301591131100929392179128213220129790609413724685597314867862766854913819742253675396955837582346813534407656732715698027414848869303091947928593556480418039221494206304070736316259471381348594053484433592737377624355928639628200736243914212327922813739034785711282241258202364598186924178857437526411598151589793904596142773558456075388635447277582542396268469475637306549842140928959322382391823605128308909962959290088254327621544803559158680092344370572311323647924826154565235858989955415591626547556478356996941373101735626532534623926804706859444099508572384535892227797438504693031533125850911460756592845238709035066766734096484503056508166567531713562013477334219803373840506498444759877015711825998797136455170926788139766169712558000927743081394492948772424736425753130578773836710963699171350570528191267609049051240679972828290318007154208429208517520075058762281525276796883779238680371970264340506595955182605359191027530833943083336823251001348345214286982031587976848915391066262179385446092931928731870070489074424366151368493793677539452236991392137717236595647739101920759290897947926544621883002762251491830238428441161544885775071130554705505831930595650269993661752306808228559405530436273757173502733731701495310247020264938203492779916739195583965669670856193354234363543016192469589036418194265186217486288333071854718528006439028059927988315095648136131906191140062249698912969753985373216155106888466945113560961124279908499499390854558716588440558725720983156423436999230524584781937177703797928464428204183160994472064038898646841987008029559274200459736694913585794545366274081578032480132085959234644420190659405130638924132941279672536527830445590835106858752427908541029269583475377447324250300011273386557829467418601752632013050998288676188880795862699503692889803370444310477445935164885520177087811029410688259792631736453868669547805394595839305236376992857998961804983342022540753504428537887072814825210631052655088674473843391421684138943024545603494504197001969446417746739384942460801359875098631600349587516654595434818146099167304659847007340738064195138240755482592392893649589411572194191434972150744288015715687868788004090899754174379783817629298899771270978905537041639620577118309514432771900220952544316117209933556334778790588806853147220951942531139678760010607268117828100039545740390950623143016326830677104733339377616546237539739158218969194975757255463709369630218478310773190093875157080669178666601002606156976470530723574356235707179815358216926109196439633919385835751452747511760894625517554022017057569244920497572172136810083905229823002395984155753127022319663766773808849118024130159794055833859661136815468114212150980187960399763354552262277328155832011770699031911815551180275347067408357549210938953431990702405058170037347053254353399185722074110903552558265332751366479720402810283232891849035451494549196587188326403435217674777739541093305111687436981480516667027727561919819631158058010133212280584567505260768242526787966367635205208424249153625113211152627902569365853319180622735731155891959774073555799510704424540011731674092114605790739919134307022634458890573581203608710309255898003805252036291647512241333316650892995461248414107780364600007298139970506726169692562198977456323644777550101050158415092625661453019438591169150920031477253087719912853307257265749671502280651746789084441218481065894944845233272521572057496195441073755494687800712788091532260943582344636736148663002694990872351950705202799467128035742722706232266940793956087773949818856534439740349161271547187343593954516452390226625153267395072419262834525046387324667421366534939612776278579937754007397339236377899485120615215493893461211203434967347100066980275779062268066285872134394003541610180514545579121137899016150452997712048709015186230685143376718861275678009133883796711313730229945907363124914378757170670677459183418163466273255044155972766789465282448678990105633464136819940264886353923423948014302054830439421279792427094717895792377035252620815366620060350302921191152618595134919341317148008509130171454430599203647610846780927821389956256995393080862982498927680710789585144536002973168890695107464579954442260911101747273625600010492286632418600634051158552678205093174944891680231051737323099328923007002675440993902173462468963285362550859411036395036847145032216668753282982120378864409055397107954705413397611870955121214090402284953610900176042982160406982381255830774752134930035633945022109679176792760658037464250492096982195266938505317861119497849629941417445371521024297732851623119531567096160504266936130470560794537301156157654951056036523172839182603479101705418522247247820045166403637353697627493581045484643085049017160586795502911876238348933192295329736665770062739135014342431545617780737903232175873581596585391616134041093252022350735656532612815806304988670292760386337951263090488542607627966828232241588966457413146860177342834541354180437097547502904414742794824063138712543232868936957479208613710765467924342258634957925441425404253205548011114210361537591394802653468438023016337993132590091061586790535839810004968062736531724193273154846315893351180052392997162190741936373047969299905985825828508381710472562786993651924837596378550580360832248339966883668817047204775153154617515101510546461368053704903752687374315881673201484517911199819333808689513446927139323305398093235559941623898349853696633701605891544584979914815627988584173274952403555884029970149746109342914191306986829773704206954979789557879956895404784464236355465055786794122585734186408165192419927419689206239510194308354131505996577412500732110222339058381210054092762352491887658137975921374293783512825219564079146383705196431451832803979351869321395976603670064359720797961049623390277921108675189910752313669456623829722676156522261508225665077625269310607326068138978328518885690871739219218306342606760702500134067231441005317413266455595973256540642032183482473928649611139201818503297787173891663342595425809752200801911774100679963953609999843176068095898847740814100290979937418640274293040536183679752717213350177346451265118992667452652970130479220345045205997137140137595785306414363795294178727528128730500713131766692848134816066414136151286987321943038194395866456993298158706055675835578287804615662047941813686257378973456569605393310831171049848426684762793911350710002761123595327271193338869628070200446327318740501186476326645821594773722175651747806814226050227931044015611459124463905985044833438447966779007601258642753315378341014594558637000566481566940009225470511730805161683771604741455875104500007295002979766067475907621703060043530533356236305061786726372686144395369873435930059157394516946329436427569120818903570870336628647515587457911864101769533858928700702355089484707039988925513915171274176450850453420377306357295505642618448143070411797734540887503745569261594078728624579479641722718701983532297950726376422524613962757939761149338904914239822704954766198933764427011093155560055152139014157416989667452831362282948214707118987409379438221003670755320282909618362199742860320981970555087774313148358384131734454419122020037115756365862219592573259750730240378428147972909764345174686615723247632680579589116750872775279789112369124926620791990462010597537665238570922423799703924982881706431428716293149155504847797383221466680903670396720394022007402535444047919206498723976454991473033387023657196157064196399426984355502674923216002167327073618316780767914829136726426128586855869752711934354860356916305920624757176817293461046604734062279847749071951656607244147189616146807505122753245367751947870046342523851377954835977085125968308653768243007496327141849953068941552887474051793778581945131810949172504771114882729537848119148750032493858475038584079012768981685489774813787569223445310267222569724367582889035801944805523364274945474613765652659770006051407399727299723807296552281555349880429141323091635793131119224452704407205590412455134433227555819527693634606316768723001139414037278036678838821426388819197518697358392951166721683308755752608220646491717419008460507001149894598000552173003241976048507698450335570023736777547724889328499339115611224190486081562327405423196589881318988102163604867023494010405224237428499857749980488471604419431335430572477017821482188156387010275332294179988125120215888351380362028842032435687394887584069423843881600675171448086594340701585234914950992113927707485221015873878752815321302229857200476738777805276136721309124622712767339840301116292690164248362187265662076542039765376282600413247160940489722644077183524367798271675918483997968793790627195711381251741497164438083596478851769025312074413710981083608176906650508831249398364806216938334279391953884224847616710209220185844567831462023495702662329648913786837881518991276110447542725709432124436287095003045516824112090726766201110938293192303067628995490804575810051161038574181814419409323372885749913065513262857744034227828955109364904794400911292071521744246719470274201114551730067587399786423069488750235554127388421866888392667833110697312422422963432645761694569967384773561130486735429847394673403505065509247727663713134358472435702328437509305564921829270805797064745950166432150089133970821248372028715755170145340701605136388780759660170539311411503037068841986693743513725365773288116726920927094844382411058505892025401052685151205734634526532778638526390813187673462277970750321720093920267495053806522805545844942233583873123172960319160726067443699338737824322474293262226737459451642987593359952558302745236012917291870200712795022992791663897198217716158419725169532011065028551450272358390942484918094336709030045680714668597283244190454698112402883575583440125002870340206823005622490320197584576730663118691412366724421266500993173647993292965323533700681660670414475912434959876993144195647645290828781781684047368358901132636628575054556632013526866224046142634286613790164486979494730194364143171316991210911895598703995287127020356953298677729464592788951466328418030099062946943344830746690691836287068134425553041312014988889276951366895837076607779369280814614359910497195091957152219732650023105969874891732251062951232217873147156052246110845155075997609452491969144167648171124879835995918845054025853083934939895694047827262031614378670328828642017835767191550031674406142195118185622050924627050098230689523440574330563306486619420449961196003064870185089300879534502740182407593471887702226735796667170276613855183041859954892212663452209517660191851835296926359182110710142557368526573916461070912967164183504471371422219070061403336032274351403155582197873419993310016652004803896753245608771397093177779548548952238532202787407950349147597768760275503656913546741921783031429370526313548828971072437315464685224762865798490342336267412507339875277676804596861198859761025363495029423575008320655877767146408786492304215707575902957953019012832531416240899605094292097600585900914799676198075725455125891797018078741617496379569980226287852712990934403998074828043238250357817523582812829902114864974091931718107320324785227377360931755939638416533068338528357908823542796485075821684571833384627914721711771786828451292606323491216854677195174999909475381872066769601714739667275410880126617649812574311195357251752567422429802384889246986421284941574873823571367776486012956755841654657510995644771144486497582365187312252472937242198271570392622471315535769817720575432744520659176134063656497741882808585444150208938824305155187769321780843013748273914465896116363937792523652711510319850188326553738799121522536927108507982807601207766310787444741286608264041570063216422146799733087479247190708731175330935108787170585418385304257676877823489572221749142621444293510776658287606104856146076128430079078994752999204340983503742006502802600249291838968620580322335010223260164632890962176619856267222496640718121676042254448212226163066475414702127125373722795163148416587187284670318738070372916598833237384691653041500475780291427810609121492066115569348858601783180965158914371848945289379758652059703612825456567629081881680373634221604124804784109292401291312419889222819852723067335704623249360546630283688915207341902878515641446714122002986385269491891689479691221336038809999917661276451012406239180175391194600313409024987655499086142627181525445547581662023554425841714521437316235049077956147146634570175649779500304666760562004875338188470854330784578116051687625799331468971434406374007823145797954098148687387011586485425290998312296308247554171795552774256089194885840442963308761490306961166678177651258631126151259192749698352947996280421028093406937915328303110284167657379681685809874046435332139948911526670826589126847792671074798797906536099195311883328758342571741346247473823723099714838880107714006438943309761354852122488071008705288946346574224305989156131891025903811579955830013459538121289722935819881341080407653810228130984157705042810148424906512434596024019047782523456452183757718543567338776782688832026319881462018354239752697846376646746126757927022434180335904469539418125747874190533807000974654917336797782303938522822471120239522239263910987700650869996686793655133325388851173723696964603359799115341050742360972589924077995086933739290734286708962196220955619218688498886837699125788573881911462609858085161358186314636716821020711312677137107368345865232442776909110128190345812382452590533325834991210654153643159935105984389133120344172266464014581468814702462445163143934856965782075895168450474102476379922372816517908891539733023611121686820339897331909545125177797214642987343408588654426162561571970762673357205646360739630208415871527355339928850700657834746144264240802506857371797118464266878592111572024686825706661983073456487165158480152024643426890885838845584455312873306144283090465913039792015804077064203765335299301941785285550029995918835752239134441956959015215073547601144841179931557933643855150982095288064357461640953878954845599688136952977719273117019802883510476144105822590608999136399828841196067937629205245661828310517202478686016498718287506990021596319696415483909400432158809569886242701150310388295445755043007179231149056595835824741815573127565107980887622630247209582615824091933957381197491039122519281901652375963914352073139825712535304450999531408879074190303650936596746821189246596967019901509577046896995299882489423126084958886677802205095950059353445799001250608050353027403769894286879201244349043220905669111655007477011027832884084666371429508496212469832245569865079852093383431089225921061006813840323844467539615718370635384045797620653677421780636935216114097354311609961638115456109174492043928289381284728611471985671646890460132658860941620724383305516708022925656136551380329158695447509263496224121922818985807063017947571549417956843607514850804496475599570764503230188524878748332283938022056301183388088845753855057444513346463889646032537934490315434984135345131642245085451975851082457062879854965308071492877764402635363132683487139334271457899577941469395986069997422374763245042794711378872053879925974089282272116782899722043468308960711272131857574826768540864829296057244107338791264256471787522964474997423011836138006819219071187650845055673971982330989664939620903547465400292793983818620620180078885251634323873862870382761303313732388417344671386527201392315970139943219648818297147963652956685015390698590605863075030123088136253739896911186001454216444670868879249330450885656632302894730268845269203750192268691455060786791254439856138706991155326172000960876482526203650758259674842981751089664252181373584207120080018897611417961193538458516115243156041066934565765388228506255633049013713758578574287225655339919698562952773678845409825115574674514661466222264216096488498460886346616716525893030481812719276931091074101003127002534674974051758206608553002938038239320525469940515642773661760259887023281754870501249333179285170285045845047546645239840656606583250973844663338291241434953211904107463626624627420508790742110253131090534778487967705668723088800974434061421085523116377893214955562108758610739428751409200769245450179378903393508047528237296777149044926773753916607318642200061604636930091665720613052224714853536419418426931303923873759445615090337014128630494226793521658571445903859989824249810877876647137392028341036399677710422443687810771098623996205355029018357570397614935699726283565063483393078157320984365874616241757809005644373313985690810309802500100645306052128941410980715111324630706047937391601666057368560361914381606609532635034452621065368418927688422556673537149608449854996708005447229007955098242246972345423104880839086507846801427386992103700494927599423023280494448820439452504433788070223436533584482525531857548842134293222569927885735143515358355959113655965158755189949052351065258204786376549322509420071524886132368385163901639661002784056595790822976753169099236370279359710221588665829803313272078977279864677587889207541400075357152397561279892671920944208915972960485799757141494380615814198480634227970937339817509267039044514166957112370040219598691587338603457171272914875269786986477895536875461554500001058646626816041596825199343107289754647454211362300876030910703486782221049045808108037683015849333566162665091637874785608421359311975930623120276718591763396082124120757448120697818637565079039879161911176119443452815489999850454446196442033639786761343239954657418036002702442886070173768710912549334767381503747111841451902815845449215993044125998474660692990172067146887643394535825688237336158171730520676633422157292541011636864228780044790608457313937218374212799273905593747265954985605311634255471915793077643375886946009942218697694204807950112692559869113419247071977031552260102157014397112402607358697301813800772420692255697540557568370826850214425310050691839723340897198961860863115641848363951386142121876790454241044011295238212964567672162825558568101744775682340395778586521858818178761279139960573619862966061221855439126451235684835842450699871586649314329299913155556518676177934879439733140886009935087524502724851092962740172876159454159374882943249653252230874666709505165031947184760033663040933991483101073956793561689975470405802792199823050410252110324234949311162534843427570218549351168074789447999867304078037115683662448545019795071016776133733899912314622319226223559382589002614094825948034845710826767996894294667098799822676094483254630606399989066803595432439445201062649328259008489898568765599292488971375167775584986810054045060431936353579948821430757273337170199700549363435289299700641373813906967897864354090402143248394754361025286080159803529714181489644643937865933868593122600470448262958290779637007195278903256370552747219400023084216296781999905124544580306067846710823275455472372602098426131204591378016302893201424115108582453285925912412346385814748404057410054099276653933031792129080996262853015627318247581538145747044494937212225636879298167314430349178111109162575045827423737243175093713725871238479599144735585340463081871436716187076684947354642912667181702128991079536730219796691158201201775537607779367579712262722551413871074824134781100441892195630693919795943102550715733870273271458045976421298935937201373669872376862504120927892264458989996155461531075658873879910724361147713774281359395181730768543738442150124723506267913194542744693764253175923548838654972939850651497895010516511717205406175855195060543727944099734568567627686055673194294426778718386477404680007087562113416108318990584905525042953586157695843937384219821746695150773067461247049763422838812426195073450034819163629912414268674157503216812812152331301915508603275015860325851266265711869543259044339216961587181268079271529525610760205660812936758219645118960490630416900133667768483487363118727012463804200290498388227306078647885125212253511447105429832888264080324639498872162511809133527381595957149032497145908057417621770965773806667452498841077942077905521364440183093886245596601309295323223546591643516787843485262485481549483729116674450740136383141722852073420943189227254732370749742169029419572354594896742151933762228838636438980800805161241561093986253245287199138647321117384784387010719494092291755823583048701429396943584061131557128817304127296177838878303255897481899986060844740925653625931896586847897701252233449280590179973316653050651461827881020209725899574551480632001005576061543348966633822457169140980625329888006683748779588831279211390563244681633905748896174833959383558210998965465936385364927650895570648428397253260683898910587678453269514979711137769082963720150593885730069212813881665027451703693505400710578716477142956107762614084475907575840323007660540967198709729403871096227241554829902167984811284073879628269146467206716401510403236434741722114540837414267029351173326663639707521527179135655549984043232382009753904852730081376041468335768667958380646915506945468689756320932931294586365606773370531299625907557037023486775561948527780938396212110890955106128456638866862980848675867849295179338686809299838637571813406936218579422668014501613345414967659913204162005020977601686481821589866589861750373491579293907481178138789716971103099660018182020906359663786237933428206684086930302920039882852999049716617032750899816952540869229395807714989217889743131671577111252259299521240285422449839699535570320655243560835095838852726565670982612838941301209814779167396195673345403730556552436869760555457809468735873190884552934010159977172610557513821331632285740213144255156452388547804568830400758726154797583032161821404926742540267902898465598666117233176808908913970796166184174911932825442739398686376435288199561492282654181586894498426848724204104135885295436028674231381520281485994250320266708369687328005065307313388739220156750288652013984227552249645111974287206309659737966726269533205867329411405096833214261855212366589655186815651506549360654255258008706134041044772242523613482585925520989280257302496100152214683550154053397523874209587727740706074575030330332367395115454730349971321491868994388476076657308582612283562806899156087652060008590376371261649629303489537164199071663296905200779251548118610199354564006667274693942597235395914613646378679105437066368708317998550744970909570487160434089069702295602265915000580760211243345214276315389906838653688027757657385856625211732149264002218757665938605582030526643025098072424355859824511561652574036956176113495586586644412149000871498834338638887534861920420553315249961326341945527358334782144329195054033409189319433363716780580424748269497646274282135784190088726477972353208540229052605216251934550941388127831457352514819280560674532500955419575271205501602031910129115911333201576423951275848824300890118691216217697326948915040207839663648036651865392846488756763185745872995066290648710617332266915467288235105068692229171094672380026142647571359470903422385554137487753101031136043014350764685524306592372460624814925772085709063634934977592671045312101818198546836299175246531391330378418444557493857855222925261151496077229039156305284894386499668567918766472694850413632871507228750513266221548065861313061319718985857626996577815122807928240567561458079747931961270008735047556655739922742075535782466748739313144972104096577712621986714865363604675556950814001130069036810573007712921813758181212227337250412489751961628283554636395783021369208932070372847596531890809148755819823797212133648462997298019480562415356641146670419373921917676328202808729879434653949764209250989028887462044266537785352459963423032420950160141491268431267408939447824577583954654738893806258746117143954502838260383267796564495122740030553475261797083444155517043249096139218793897303635030573698240611161801430280211140173741386031072641986000103482886775172056590644969678728834620987576263696864127119370437678417997511431975369019474998132135402365414060437743397142443010483043676214600811818604545803450564815223188853893165281732234063711497967347258071463229687438523384070543963347136135304739047624466500708736606506017445767553123648056940806560691691904687743372101575571576483722965581945885488160909428827430428300463055867695822391053022965879343382927358892825826670527875817458426967533357588786578532520184926179291203332963685110515438409013930577399391407749618438066893327146958627522976350787109347673316999255250192794691203002017249468045616289870963829555988817612624354435851959404883549127503339648679931153096776716895434402540448890179134462483581484607552764704798089895127591454232688380700567457484913537912543909119184045307301223225673973777095956097480426915017496410107592054873896634824190083885212068877603457315984810459174985966043364242199228321466570182497504244794206831704410120026347005615180631875770031657427598070254394487271774306582263506132173846711479693147741300173110417422060001884766278849965796667484823803388258366183992174950394981165670185216001433923812882184794779722615314700098345696832081889123840061396858456039218211340992254170286237019175380778900102332918019274768346929507501196856002315934345994347692503440205232460327724562426482597841153169839881335795236607846648005872410937494290126782902599172713991804136528138500523365952901958239640255585272165822025304212217706215090982592097223342084060933105492199641220467047459269944267483303605473375335470708245529373889482006285846110149460504972926674478791708352096286558567404343270687247663078432158971415182466741655865794809116694939344367296332489187196212166745836083244349346409184994725380101016329761723899563792741285822774276663058393734374241133728209148657622054953898257025137202861600795225090181388210213480007102829862644311891266552258276754047632661538694370667036488243184358515000780453074543010426221689859506344028242563948417851140614028398929803658713701297248832299629830872758887411389924351335694749462017795164109848994676306848327571521857437330278442540848199520163965625183996942996541676534942356855755373661395027363408873512279657399298903932899390672139665797658997626398493038550086887202517803842551881954667435483313604247312572175996742919810826790651830639532197795738941782540518483299501377409501042430920804625558486082444215960794456525431804198817821883594902397097557198193828830115283370859527166122310845655598068165914373056675094574229538943352927816275159143915678842037636156782980428052840871968728618008279506034269734219667093306618270419169193101630483953639514044635324900681673314587389330669617360613535431504993045018816564831339409420005354731314710829548500237252933832795586748866863301906974703559750525912387600864640431344416662531925847268269241223734659897740594203016136057827703698230961346340878972455882334054129763552994951892583193152850409646054024324605605161342277811879961454937299562388571758903749102134282018351154604169419173299932355753912508014788087264849996739429496841189194150806449175242474874062120277032304913642090946482121818174245143183209600470165396537604718039428529086301860655591995882551486950908452497896215810765438762679242981760178362621865495530618404909017597256035772724969931587015635988302267670259384517161985977349982884388863838030436723144836146335312056837607039469677414266807471310454150034524211863771294266344987792327341931644480522208800339101594633243642384521910686719464617380297105724688097818544003146963699622286179158403192258845410641781181368334602660322298621809397071881437231393339271455869526256393317070559620409258296882000078929956900942364576619656718358136689194240368595149894917291302506639071177385674668284507011855475904153971397706302436313922885414865095715707641414431893588578482345541785914575429042614232813405395275952902471861990213230429230869264364225466008743205661460225836650721962340324719231089213437895979479218557423955691282881116342079325987641325560673130038949098623526830851579255149904975638532927560217311600147232956429198342354613196691328674951944780242841458341455889069177613632123784136203059892919807296577659565100026632632777297234995610482832153765988925366999087737496136203492494049245984419580925074139007452406683291317506324629547170338452337692605758131013623054547855324490363630854826950123159067961468707317958314413105787354213429179882766360005624170904536068784346118343451616934120153757995387351250266330223851669726250607065375032072899582535857564608674810364454806868534186017023263720546548613138438030729115147367095281377827669389062358374842714827570881917727872568584257607815709361944995851842984224040307083173416795687086653257278247111679394039096366270911338304266451599170593718981545980763956204956117185535528794310367355357159322456447415422286399859348622052289467288618385687716634108925385806864128585831467688320685436829095560232983875367962749318087675060881342713865358859919059363839587288859019993074937451660451500808617515879759745166354102897475213255812435586564241269021427573721676177529964789565404003036552686807580626631277005305345917549445869715032173774140950817142305324073684006215863405136123288033232465635756023045486922664723757329779274798835459875727409297627068118861368933030311768594013750088916988811179585417094159243188433251966291653885424994274549067763297029886868782507525999389567152603822401397015692713241141538374560229404940380793460616745101192118647000811450095729709047665102365890783588079029106877072388672179975023524967986845343540299917620215363444913330759306401453978959661607259944346516353667975133152230321778089852181752007010077058700299940275508425837614401149969502534996863879996924479783799661437491552051999930390323740398365763367982481192049004839933325268029310512219602781425786169194559900131342734766859110427788868804167255232267747157851050548836055971836568381037026165043924968032948965639622200600116300461177184324045257252316440409117986706346792673938907259187760846258001512068053121496298599581873317905255984032224946922910331551180139577068225069708401349797245270174100639662910094174798451947548406874924270726269539478608918198042268863949573334048977171051399538618313171691900204925873980701892670451605611763590656339494999312180094912798177146672936625885971856367210890211905446460623834239958902893528911100291450821530649829855139657677368806823712595505869224053694049940007983721345555405908509160530751241835785199131985298128434514054643221017739562866605787415604231840625118941158083025792516121577156052884930043530615226079554335070506370101351185981479181247471213751440563667406789042628956263484833295812332576238395026518200164374709932841060488671341907840565793027961652397687940369856108844575700025267299834577381436504043527060959977398901276271032291316877004933707914392562937834242829101601120506688283555624353645707537360835725570936724925218252447011775573296254238527442333192295783683372856314570346457249685374551093904353026339809196128373766103054553389728691947749756296971052613825239122458291984771810396852578549960922236885037832377450502534779208759875761672161642558563209457575023862035216701957111799044162002066467543752364732351232637979850969014316330921197988666858729165792162687290549403437138028168168800122217111533996523216098965887416039415434427577855105099252088640178458613353760011897635344833456010300323668863475198870860752376810063885407204807140789523832559738510435062673882422899545570259968874393827481878551121489594521036824705639985290036980871415107464417886619608200665489296669154707342648437770690055024508623572429467100173323603656707997863723683815712977176462292385553857726205708511321747128327960918389478222444158118125564385618289411449472605637183234129505828091062554625176332694116184133083490029939998145608150950388086660893698553456943426639672880064331282935320867917521295842007988731259948479409698124979707311364441258562103066767744236331152796076109618123048803347848374423549273073618244664519840486949112481096496088227343704213765926331439647884697955070877842661653668666333436202220508681763605252462458619525303898459266818174083127510880863207288944703957055450489512137610191630865425064831737761162721687669002783350691387661401123103718673225546451249052140493379287534189452694725341501540178771908061243311489872607812732436016126383114541353685476754584381710372918595254408086710594026080855650082767906584340661167481407349535249508369597174832673140799179305556727253207447315854551452161782293120707881045283120821216473947768267962728559311261550359836745988838600756132608854959476643446013430627794261347914067909432869722570096706102009195304527658677969087549001793578261224532171277312017359663546945493093200606104469087447564601812792279053326542898257138771646353328807700555804536327853742247077310995895600590347111985100547260834039817552688528626476840637940681178579302258855157716555206443419316887065833827160431886304868264371989222362269463100990539914919703654484718909735440690731633806921703212174126897144882617303216406311755092766887628047338424670423086679180440575124808181210334598017464256614011919689724940895613182825022685980346651688043242193233060396589059260601010085908636865996069842306652529850023696057981222890800827796833219572083265953462865974950901901041246964326822836190811993941767519863365797572764203280359873258214429851874485531968554491766243537466661657560086358008001855860672048885800094172913650666931621584292627070470919092958580535740941795276615628864453472719295621653373635246374972687502725659436466086928730966101515440231283328371730333355879942204368530517620132597848005629320912132736204159170315662572683773265198212347540633423853543250732866110332846773928129322002120168286274699899701605209549930617471558011957466094959680054434116217594621163610008126654238371205341127915495792736953298139227052066351847479015585776702766349443244464297538887157985627997044236798180574503866527409005305680304546009688459452946975277513908963140321254241655847026151764524599427566448114654619573247514534598109514406299111344913297591457710374384401984494751292140494503116467203302227815913735935316193954257231910300965278656274059643654141184801032562721955137167951828323210105701991504905909880581494635179128304032851224607238225054261904569644353594763895724512072699553598299927145363031072551052143334380087751108428290620005361260564845344806910266187472047965889837528933969236900104784776876403141326462428291838630630105736233477637921269824062903310210405570841344233045670922048305824131395934911047236732005613878574064980108794454292369079917473602306015071990899881493945455310638738035412459455605603821321998836044577654198922598251952904619179304197394707939462944021499163807584524921083833925478984160571543176854938241814470350729700118596348676024890145073861528474752644394571423270392599871321235715467915331075739632419345815668963125228561457208086677236694666283140894202759266621099188589555339346984082610739715776795055781635478541151007452256526873739475563868494645269713687886668720312217441204692814614862945332784192666125808959065390569170634892631606354665820870858122177016048736734713637616326097904139849938305671253418912658428959690412694231565979516928217934405339425331788104145527905748184352747059780617356356541699182573133069660776598310581155174048953722961034158347755628876920213318275545090820050629147841627477674386751138574889081979921986764191681001732030289501840149002732799796682493060659317460681051192984689980671122904610311004511253798307567470129214266156638092840515676796763152427981052863975061392267759877766731163706581291798916439582838447386429028373185840363035127424006236515123315411730813818804323307575081282321996038221678505763813867172046348992958353282808939824647925533996745475449326371985782254946749391929387647685037993205142254223608188367818502687286858587290572323823201836060846750740549924142793575048906416873327151013693482720151381574162353165063411424859916588411738408801594939980339622015172487373594431933658547940044884316778976619332097083260771790768836155227525942511172912559918444779169751486732338538573043213618824656955196124320557761568874071477917793898619710195143596548039300091316668713572494049927141397765021535890577670607897042962163259270460106285585552953749392322675271424635974600240706674238891204071408088220960086888423462665123131650903742612377480288186627504103596054145171733074987294250581962377008648851795007551871179755888064277625510136059932004506329610704310817387183289926328093610371620013813932016961152935138063592960413313560560952216864568442663894389331059190265394019390538711182117426730610609928406338896848681972457143790034499897194882901874184884430699108874626923975602930768079408373429717610572291103215767539652278490168851555893543495546033474581369234999490474225371918318367004970441380930463406253599066554030905821805394763266854030299310675228569733101447234456440104935726779985287523037637402566260429169466089966767871194154393666070099520558439475979829875304836062170552190990247642825928768417211726256596715689488713909295958586875572788729367389205900595821291651063405300650821455221705178288748965954428134463438512199844028816931656646456675069437605738844331638943678741045654867343751294003554272132806359200784030196685787231823464369751964184477748043080321059077906505979321792480059977616330640156017221633128091880004097675135868000054718443438410118904155713854089919162638825546160141752953259796849485298384639046017450046204457524212859580586109768990868883302820117370943956425883092747324363726887233291173320494289570114921732061518726423584359054811723893180653602284062772893356114963450542670128262819791452166537907583339802915289912093657179257077655247207645096063750724520041776222316006190688188904274144963879466004452296003400275287145380133215428073823573553412832763102861606377519041017257464095907082934323004705918284552937805133810702663920446448580165747674223331980222640015393475598378609083374922618741141146459200504430261843141505343893282111256655377623390174828005491923229511456867362767844080461068311236157601428648793216684534999944619931498082047512236466427424812946757464584835384502468009633481767445747111972617548055178662238852351474796700503333964579350812195205113821035895170352060056230950163400157591763753499782724828413506845825352561532635404074813148193621967698895727728104341133892937040819709721069762455564854463349584096771870460797494019090301513749707321278519307223101395973934606828394820216056994129197844938549720775160937322360113525903594056271254605961545610418357739505150114060771692684705144112324685262440345030305818921682490189350697077559351892302246527085456314418103780152078473645319272295155918344694326817055191857282223280073300030646304489629770226194141436157346346730089305881849142234044700010153612183215980310654264480317459625678404893837474822459490080073538840369113288319856150372149492943443345630014901996051493330526144895697363278060465789707688959185267484232844626502483041449033045198568294649346557741193828789606144068723056031634389177888022298333053360482942858990060803988536809693412551900627029170839874950008787655230620186458318843783193953076271998561570427076766886985405410461099879276103101366322667004572871260099473650091686819110738166077445396362981110914604497253167618125896122429694439633510811118656769758690146190802022636368691656967752142296000875193302054147336188053168830007289546839000983494885160250489232957708391041806805459588507093447314343977089156342653932359439585425280671536267332202388196930785802411008590162080820491114120293356377010720127945526174347658974922090737346813849065666255749627349174199276224737583941112947776324885033422396854454954588098120801853503717503474366789545481127791976019393044417926372625529218112594550113352079464700574217338391570815430465133535452950765605284955429896892751290523573723791233558797491543366827498800888831046004684082337808318209632445064403460134291746035117667921153983092419126019438445314072359311236601737051963828649996161820447328478479582441806918727791299969329423113549202777640468672065799665867380847460118609695071154755160508702193792792497953389576003086648444811316535081093813220444786739893819060981851965152649754692307548659398400502953893184365316627828320444120554025637943725693779271091083610807477388986013258971501651181618035999534634180240299306141773262299040058165935815720857452494414393438142771577401144355820641916937801729433497008262861753585183461701741867345006308785387224738831253127909199040468351504385045962831044824345957005765378493878780378059470720902492615095279671954402092426538107272053890204820092193851813607360215492324417279878018685832554035159435276262840941282561253646665046809526477120923349427272343743880245378627916050273633289897701162726567378834155373675472417505663319702246216214061471829703992626666605551861978922532579206777681731014774731176721590742657607548247927711953109752735915424931182468500117495915296147952449264108433153156016013953994696347142013210008551263308664154215033210830025777166418678537023525697629046682202316169115012600047453983036383763339172149870929892425103629903776956172891237035359822446326369173303380584938907395800324878955187362362362687725955262480405467246269224466363967671667509595808656193687102926340584474344352070550484949794560635941202489462332290219093911335806614249859693120531880613893708907988949964200275272824386438916609421195681719467646615119213840202238215566797206312223848147001590669433363908845338957390688095717812580669802884848971682422255943026823903574243256431548010568187930996428854483249234338380469481206611520062559869139168932621399432190252669962671380768277022786431985785591761960171932961496828388481050940728817771207829192622761800333537081316523341977205737055481890478663390092894760673964592454462305803052454178316029863195709484419873872039348456340064472128123593968381512128644783869908579451802026806331726041423662804075326252880973339931445872177711961892281185295447804374498692990916015736451184700769659854089558158887114700847205781840276009583239980892411380920022680194266042009728172144215502743016418930880344221960693264007075409261137063460514767100972370431581854431235459816920028273325497332503037676989771679838359005487218141928205692487303330770859740306565397135312040060023595854651232870967537698001628512261136132658817986912466151715475495968420020913175536009495562440230357455241783807410523577241977925159568026006232858140329740755857696688756080844413160313082417823441207397856519234593440570185563158953887996414737345220766547185229383577535887315298750312014067967878703477524184140295043673073477986003422575255251722192372090144082709656865151052292867305984363216069623205432411898723512175833321092758684852188815573460838123259094176776801880156962643527354315216964511544467718364589138803815021475285272508032870446829386237671187169147188433095140490266330938487116773691175823116556109337528799178723318120844333023597499778124024270787130524585445877223104036585282291402117320976892899649395785765966898672227867107104247361515091107301317396004147230541612467150475148619648197761044507361685276174465872169439699788227138903738866534609924606745523488498107793082365730708131483250278649942615996965363777900457421657220456815375467529436946372309600886564472022056661377966813098363466244459165518445372441802088182675450635124176861548482928168320039307883223107427329354827428913246779120378325872297674618764805567711830171756862263451333780846400068956236555694151874143172454600750116440605449251309197148535049436485715587426051658157148669826970697923650119508254245974796318264981045636276965579709386033703897092027917461735483689685680545481430910856147754430283482526772040804109865319053232746340775914944783754576429986873168325711468468290496084069080496891687832014561660051599225474983130210786865695545315143511461838397499070287946529119765389920761923804840276189416564795692325554266895127870125321899532602366678335111274164242937366544308268780112281768142011803696136012865568417966045938792942534102991271568838735306521020703051582360466729405296713245607551224251991484733620048165367118720183488580898431312286173559951406726663017146383915697771556753224963500211542830090703616631012822049259386097772681190579954595611661453888935662990771188543034671098009227078652945916950842178681522896245610152807669622965701133965175111007055579360011910618474911868201767224752378677665566517929662515428312715618168285308506028564290335898307802640077855569601316477029675533335365985455238212899482672830112050388110748259365184333037197593075052679303543916111977362693665905137545591892197001095558074660643655818172978540666485215747354173516141463088185541881703764577850526411326909933355957675283509689040546155858831557177665121594470080893720157675541985822908629847506672807655938444311355907815700340668437687313590963831425523431685521033961090655195276972918226250731430547800914662366748782223487565847729252061276637978258526396441614875263706740290349366244488768496423431599088265455486097922166101061426415118774635853159261686162191521781833368336449017021283931438231464813688857571309368250647973367387159567875060734823416828421834431418452686540648400590448367427374316620934922387389035125350173351851595503798851367490687654595406162414293495725263757561613621383225084702967427394006562525287403544299953678985820727099011247522632519665948196779186416404691626772957672381775795975718538468148136143561430806302904595718820693927633424033019564568692290995295426532153793337411480394737926964100219038654010964669515728703168847374422249716300975013343633481709686725680498566088031120394172253972297343493807810405029146227290997295287059731115958108875465486254813092657472037895811060768765056452687137426381505986351362342510484145478355184886421180602988069145562028779759250983212859226397888003813388030523836600794470652085856178992997374809048017024934131127421792793040893884914799796151088821065121405953557785233344421168898132690641379328760534055306681892437064569896396023200088508035150362704772118735511961067733192796929117145428109336419902141457210606670108676081331040947030437609774479254159400879700006057880416559648266988656095313789985014234674165449177487097724402201859739210570908155207885964663408586680877814717971698747094915291545172609792045773687254493953761728578656511382830370795356333389154294512523088285892127800245692553500954419136201546171391921263347272977675775221530854142082144380426768395829846205974756609897948021773003096435192707714833460965145560114204436370941001745466941942237560855844233660541853524827028155299977959092526747495470725685675733952089418095768631145198658186176594924306185024933070705798220653249965084422642276582395137871130694444819388758380751342958777163280669756006985599699985743719418279783394497105921160065749339572238453290290673042474581030452374907352323478470680192237767310516043000056075423877881702265829312474978230573223929957399281427580897505188520360322770479860364620251272845620334959869177754272019735548763133340590960847394824219772656999784867260051402459562606732609994046569976627879271767967158055687762562700256042103703282357410998002466191841481566109389461822275692087350157354265979446624266556230276285988441334787935838482599752871947597941701102081616738405485692103385255672102886005294555861000436691943658918598530517036050071127646715067401776104205918230096417564067846086929155411146016619273526625304907146086514336363176998443227790805441747540591001271868839761419640418927183858806984764045783686395550053885249849195840960286772345336524933996507558208259127984689530640484829430598745644175564886279406623209059168882640189745492779344746954863569986713223902337684779504845088424193427829483949129406259607191626323750337043113435296461742122775557684489319023367670741638019256789143243524442119278762718164338633258965922983372818771363640766467560739814182594821476120615183881011011408523834522696464650031947583626647852444358491119687877639497471757045667870073664890010920243685902845097957188267622593745306410540557213795576772552197633290617579364206466070689236647183151041807863840874778685288152069137092460450985333386248558398459908173574912530638309912570299207899470884756538993706657396193510471920944015362044187326387143967195259376930388469390006482347814805556329215664528078625593918735204455767229891722552865130235642518081314677724277398083170833272088087983586598359148482725243756245889802261675042142206768103489010293463761753432693393460138448129609464965275063834807479357860916483357009287893924336232247858595835090110211140967486345175025930435513669953805977175480567559491336314118476929867833926397232947085364872773191645060348024674545506834140329873495194693757592607389332758220338145547118972248930593774896806278189954347544198123587848149323408277476467352877086371958211155652060789849420270238414768769477946207359493657564587552659632074550012157214087066764552429383577676115548660052062382218784952101296293696163336655489687913996369901030285085616479206948367438854601395365398093456686932818747932682870509097159463138394290797065381830884287908860639804755268877470334074029152200443681655215225709605291056694836502701874747295822282120434746896619894653608140186644497594907305907551218378422841292335675848757641514262932478557005092274942512174744201170005940386875837129695376558145789362860756445616205395085314966881796504304704891628346525476014710332116797377708122330550858266156189737010584905647297323161408056210939109473514773102901359141552921443547357090916889669273011781338874168706781485336810291901568639459039862437358741378454473319338067653498553438196382551501331329048024251885822157821007467941669437359680548478957549757724014083076902399927805557795574139422101583996054458086892341845916947188227619897882350365207282422512982677887395326607068451710796668265078787166702668521992838599868869533776762862766919451700942355317674746008022880504926196258369012964405085216559598259897337222782226048544406169607925423960025261932581432950218061568358546507498622282038379538942761344060505414659449020078630623424802750173907828169219253989394018956015270491811324573635013919014144638841365339178973018931920344402947910945863335919641988412530445766805616088263230229837673698179814112399000262264474107431199459768805831113763827078033360849897888812184127422426604870185517205429075257214066073222189639631628885290104882212008222669165121943460926616596010859822674776191882114198996294309494120588591986845843810378661467455305248306899900983347496124784295897501076167521263902151556895521515740900168978932907756862446462991801663705372449847998025544336101079616603747022106164078609311966107444766693500760145573425267423647971892256683112404780772340432592846419490217845122223168560575056665585079222565912222688635958223663229487808122362430193246318144154627562387059154123147143625690611593918530663300201759559298774531415460706039023966701614516488644360952174148860122470844662555898410239018977907394479341025581275893981148207596500830689019775459487568685449350730111498077593086906599976671435867982699802873107255892012644767684674817720554858399737747873011965792310180308533810633489302913246173728346488185395601981952661895785410778468830819080087213739731829237238671324220217568319405021096444691527143129319139604323750231023604306399533427988008017193668107905204805434813449799133024027225985645897952258613492651680209075153500983958843453279282981171620738065385472740107416472704019072602808848501420933209143122203691621607502565414094774061510964870475602977169972057162392839378276321564860445747272178904882778428880031147289352406169449107888214966424820017464135113230489714147993291317514950926797885547930851503523346325696074501705211960891420866440410522790121975301943462966259828902054438272551428077036778817500451402028346395504690481811819969896643050948608948003884629378336029391053820096855059270095715538760832258525097967554184679874448105374213166496725244646682659329482284968010557438116434285097484394087814840132504779370318006142638866055715134783850265759136026816186685771600041105004786521511416588760431711343921825255406436294670720747059926937362402499457266797772035877077585477635345524001454332060395032078555957188547598903862498996202212280310327682988888984891594366871032495411672043736764562387819210324552303104755450266968938833366837062939639080344159982858993682766794352318863822047629459544887846504931284917506379757702660969193070821885451134773375062939766372265210086515061897046684682902482912150850567174553192579686152346444889208521928494654636519185755200343690794651627012617434337899685845741863359296999490207531561523268121359245648859190669810349334544894849109793348508084221422201529796225918161245134460349596788872317828700540356676990957435291266544610017774840958774452096829705640043229994975946320966671994869759539412338837012583253975712337743229714347092750139230270800608142676212016176576045681894703306015198050461398207869657303653893629329167965851541114658569084639824343295448535470928232311917474000022890926972583179052634117511167385280442793305609814790730687631791067019577026008805414048478882841830632858291871758273304501532326354978963554250326895530080858962616144091002066676237261351363234608828583935871857566598018278455339491836802736121851488973352795550398676776724108189069787485516715912011815358329158031095272130070668849933627771384045092448671233547216165887728827956328911078375180774545656887139362840131111992961466971771728056520704988793498520830628395903848071023630225432017340707716158844989784256468252826017364537640167449254160891525262146989352274481209431308753154947432264998362218602222877244307584871901117500514373291264595119935476370312502772778551925802703931072534185987148865432601741557781612402789182667053677315533194788865645496437857792682196106261628869609716389866991897104604939924858203869992445980592555003126204619056047056429990787214290500721093452770375445822082278440442100016684251394779010732094470469543193262966047791020867711132189293970623080227849204660980911039995265862886027236486628415676948103562758118476762743551536736230696677811015289400935811515072464962158527394880082752558192979137311558786016474534447717292930669973033132665320297660275660428123607654810967840514896362334167741233441231120935270750138080413363764617076658950439494515849101685918570476048035909443846288176561391060754000054653982724134565421854525005028883746613513095259180454406120409834214734490816795646215794214723396952912351547545117428590113758091085866845428795473982951432901777719385520173502311032461026332672013670385367214902976766392898527628747756576779791136351892646804256036546408976140529363569779498004503558899405577529589782401006758956086309933100673242623953762948907815130699174072972323325456642604471440522804073710636890882105057607702172498415266983816909072576980462776536091917747793895185659391002290373666199074023920565217853914863277267436041721223747711782684561910022706008074664496001898304411487703894515790268461523480233337100582733116019254103675986437023078300812269488684107198485081354314006146741804773871437187751102538911705457620128896301019275253567853719782512187230723680122494619760236361085751055251111597928477289563824124621929401459632710161242353062021763147589123059905473624016394716033516082441605057059632419107498729245891175892648888142549350330320868773445412014630262828485089948437421749466715909778155012624100711102523536389970739130313108325351894791375440979248781882297592000428030121744026574596571578924468386445248988194796098736729171044852928817940124881253837103382409025638934954490090235738138373430277457368745542642201495015982292515095770327193917238511977768582461330958634476579422959325866621731256958478748878311557818072474535229696602595262088938953384477195161809268231357785008821264597223128946063460924289451559903508971624412548687935294688449432058768935584827684965071758837302329137526249994874294817065072765777563708531458551261398932699379959572056610874921802769633259475897799631946324737917890931127587618275955044057302353753130275886506349684332565621977313529333262576733806151080828985238331720105180465407099634541313762707282464648425107458204357193361807935809862756835330586157747893984519856398994466583635233407332120892030115593020503918701309890402930581464665037242810694441856635099545226615934240739455191292890356604215691516912705060854459142725791152572916872296623874018821695824317689025829468298202055787702030949426873537923237285964739618671649100687269809510346842951925119974070464632495386146949573468791941478071418547285733516040618278437939160631375537456210976152885489373784326284513313093379438880274833954546578194550569300557879486810196728126056810574032710193004559240310722301751164672936542724276650935126655126352643870092273918662807319611045575416437741378983008388717357484022714841381135815437321372008588108147013234911030685392510873711394127965240956091524039826923933471552148369395203344447716075606453738836498444402305088320813354980123683511256697798231585109601360928623152294057828885724709802439368203090080727805408703491741776145796500767403942513272079171194457223719379003538561803770766353986824934935003462681912405779511623245961998838807530020733909303201752788427780205600608906349950083698871261601690549813899377145963650407731806851791612833355755115239506184437994710681121518512617932690905169063053069478141175478283744811766496538892039594755948689429583792536923390534343684357128985468933417245630924250549897635956716714397169522223879815677728779657970058601116326542146776993295653198201529464753070392825756334035608295347237172881434201253691873826927985203602147637532934993814932105781125021273288493586372068809071825109624075165032058107905768257461776272116292430043547229904212109169687965183450600790459411692128342830702042002648288719737790975804868303795339838745097980059189078333178717148289321094572562626482145148291003585135279151077311755489136425120502746291179953717110867400296443115381166618858272549080938986670220924948759296923878833373693833162299804879329230882634556346204969467881636066185528371612472310847843655979773138658614515829808892526936015582991465245492524721420505406981623384198770275217045498868609124317610756772996211046688983239741727933857714616289534963606115581249749546089207102326868942260632217404202123470922994223022228143059870991734878031260921503102643133060410697383643925467565783083119395957787572954309019517695416353166025766902962868545570408999472251587924482416017873526219608932266835659159616102229736478774088388444856848688133170852501952747124469425599079833622802499257848039411557952610118099202261341126157732894377876998565435741528820018953613079843203718249637426954665895418257357435113031716732321825721290892501936112363457831195230131131132889313740601369793620496538788783382976490229475090306451859963067125142596015542206043978464624824934655401447082795315221179452389585432269963721279942099084474519393987797494120119523368626214129932934950815937770496502770046782076955538390963405508790436686917414192675096271763118546183179011448052453398710002946920718237817519897826549948778315106189498547928209696458649766338582363342849688943389254647232835922364461308398231488444567661085130483457684556445588876023855941234104025919288301422918845614407568215850442196026613847785429299418039785182339692338734150146576344812718262978028622748108744298371587232945348731029904103546855063386090854888089413211651641953534800957819794321201952456293284404769272823809920110943803124708169048846129170908473838384488978019652876018466694759599863438804196292231110982945921261336587426899885412362682495584003221051184214580101883604589852811411567538023072467231419361219711450788614076170404823206155359165040238384164352780319916123422509719851954928288562706464493644339561805280020704768766955688852978593111266000144281914696124319267511973961296286358539695931618965652065247791249379697425981463699345854947078500897805951051215502940372560489775652093369367996659501294500743490177957263318906015599675634382175761160813613575418024114183972122009495891976982437526700276451168540673464918058657749007690135312297658182561551196210536076307746244799404945206266675866604142964384230870728670144746157975974385007656177726693887933375388867471275149033022249126626557993912265168104479208660198284141552747878757523474950530765091863638450432773096924114099304434790985379111296740265361153348568845782738012948507908366315484418755890703352876800555694553004469987589889140261107004144137458107256615380768538204439778529402977843186428570530202422571040269117771108487941353206598369248639297094817635149993775908733004223253210788583627019805252676101838463255961164338621687966524682942217208390096045140378405312545363877006246655062482370298859094449155726725828879805959804618240684903770027169509819407154101919773771858490465166218064720893066091928654991294261289676641189848885354396425419797010061972185703999423905488409957098218199612510459862493955548923839583180650073902788842670332805731311299397957160901716004075638964430466674916156045638797487067140349432322847210735256173159714366450693824959066198388068597892851589052254819336442309088158198052552524475113119027093689381995025868176086022154153645961989874561216820447805918845373770846365932400788500684481450976766736751042688539330555162623806900160388587655241298949192648987898955996810686012876691048886475121868154601788697986162000413702988365836981020684393837225037157421093237688824249467932529772801059537635551825247853818628460086088762916519181173080112821091399088281462142658149909957581257528706652438594343147717684032589552054030939605662741100264236638391864328981560740959765756868092840344848129323882071819127261472101686286312876938432686363294708427736671062065539431321856132280791897500502680894159707223054452584064004321766852533040028261809839947564854824830511642064722385386546656428051759019774691016930892045721054082898208234917829812402806011600686039842164321694243613570132726851799934577490138214551202884814191398376262529374202429635280548271890690683259842397456357889986890326698846563263929613205874348528609724480839591478103180327316618529812806665623194528711042118014434961409287364488508286503173299358032209864318600583908086083668820826109150148191178690075827329940463834821243915584601722512348483182003254161501217890320762744289919745076415823697154194671516164236371359871300498820999542937216086557043273057014064248821363261028635113552602844621513794467003839555997785547754787484820717776723505455882232650750573051107393854810091909812038063655721041834838135286868399548378732899028242645669123489659573702566990174439428353284443688179611974519447206526824608315072979503197153616835202846880156916038147733848801638279595036987078462182983987787060067912937975296520825076144851215855754231436354210662735525504586553214565492920925097874703816137681968949377196679434403990938583532403917120190326307962831745054281173237003163432419854352141519765348394170763113363593190466820346530851208914826217184222876663689974233250727549110760820911845132759517887035317978075941343386395052921953018519217077891451510468415252959383634725080980846770462355289836124665532717091058767020237583863614246063818826583848025862251056004968738666634552241632490600323231587286806638655816675479929458464814121990767694664428245040978754042470541686309466264083065851471937777409373500315227960541282706345807642871185060330665889199756673734278117611380189904162718453751127731649600600298740439396592108813925584660713264234821404957477156906179525606058397775127692876248842199533941098828965766299599651139592844935195096277328996852103580160426547098372814719358176441909409411257984275894094712099994726025794395872334010347895843664728572168046461472401819158173576570144192446628094856788119846947129978503339388238365256945868726383855226200309596619869897595650344423575562057661936899511023868214250512034887460450708964787214785403953257652945616601783896133910445421815062030746300719911965273008238171706970514161533601192375886907706925333082827689985930268755071853067684231283214512773389694276022334960761554937238564357411767840422117126102376791434376494629243223732387110566833622237130550496199711458965985413527259630586724541947611167057246388601566183729867440458443478977774761095922035910996089480692499700764981539448277012240170838997017869046280890832728960116044842454257416405081521189472665958402671629635446374362069090821517643434411099583496229270915977425097831136928224862407812194377811925831344624604757616369196661215337309801886605819906010853470390691142427228777980921581349512143791360434497818631673192218132515690991337175144767652115652961035609157213591635395158219710986960882373779534704333904556951730991798340792321979329326456005362865299217424106113314153258571763269878065078851335599666775646255158904297338467883614055728289672646987325930907617762541083635126563551470563553953254754329452498331344738473661137488608983169788484708802290387465540527279136293916938703026906379476537586962036889390051159496265900065881294641696456605806960049838903688284651932301101632202819855587919279632545567882931244548523274017527958419887668284139199855378863824141026106677053847336971959986716843286034201483343169411656863448143406149453153755238709018141966349083535970174687925721350299652277591164893262176283581958008446169346764556526247820313934767215201735527520956293478257172083754069073033691137451394164996228487553262953962115404315374876669693363573221022598548328013665494886594924176473332084301990366972749572434018586122695090634768766232759735976404494649582711920055942138547975465344909761269445367799696375662383825392755309289706785118832964213914809575046480351242875917983102615554830389550993403319787194794764795514220226821389719288620995748625809980540299254346552382659590381469489110450338631776071083716737924090286805063153860411922681583366204412212433299392540243505377083413978222904776507602779128662801569929496249998135952934915022252794720849450237792773181537371090989502475121092323021770223382650820166178269589186544806088963853644376306638641274487281904175906297490308174220993993798483738045740112049242757262034680257127292295716787487018086617231597039290970337974439801120751461830915285058487967473624305056173426608319034316700319052720055781994577666492475959081921203858187583607732915133929058624108314798140195678674859760204759703308818182649156746304849322290245919513344252525131485888025972815784068463133059728361307950243424112030121727478602913049151580079850091339234791750830955268184927402937629100853233798248481974114406642634071997014791374359851894421231364095854405661123079799919002901984173997411727368009689263103729032926433115168712673536446517867512865110657443414681300878341567536812456144344756453381830633509537091231353672542442157251376240318491858405032353623727881533124435675692167563215486502961213011713608202607811820698933356749213810074941564546028204736144328265869054491249843036166908065547258242099044579207057230845618921983338514520347625347984552165209972016246322751111295011362061911942220096880764880445216065070863519116080164102360417695244537125561578097149789461801645786127268353223566401390235147524294902780015013599514564583548197761040955449196176695462420256707678841339823727083750021377572943320272481060042627959821803037718125805739967360687598897810032430705835653691183408406574188720708760604506629189130584727657431525111845598379149715705516867142711455013080256798539973903545781576745516707293609527613527835189425158328889027685803108402494753140642771448469970133762647304212870543694513365177041828802858174585939638303732498812407688461916312777961899042535646152352609708501826220329204607045418580701699063349908240707451846081493101404404377751783535054702375565597287525450761836365452741607952845422112728123456451161270049187564860858814173093459360626944496716496833998228064496098230670455076963044726941172858996256259330167034947839546434477133877005611868324817601389855828564709789408563756514862588165140992891868966089622355072105572134889128858503835062758145995833142772592128786128464956727049998519312210870006768506268261593106155590543315138226333382636640079463960416313802875055077645527773928794899549061803496522924092298520828377990396508513895487490541360761372821435024674711928092185159786362285606568499001789659304290681389515184085153082390243292736044361212073794877206548026964835761083047466707902569059892725667077450197175704343945593918029737960647573472103828772543869209191065303423675361451593728876772838907215616727515743428661717657463832271778274880862602907896892756774217525093241908614550078800635135168522708518952288882793452245708554081499545901921811863340444215809499211956232465240473488922742314487873411502824748460406833898654946597871764085546550412327031311175750857022998272039567830916879454154836862154336861630495326465091547738006720292899154402519068738423168146669621799059256550657332457787420367943392574049654322698577898810939759062664608910447835353245575045934974074546012337488990593055441637354679532315364401248882289515676849981218536927529872267515197608280503896730304260374091528983233512196023084734001117085862189369090323322590763550719766995188069825367628384035492058227632912500023513596772663306762557913917043298485482620849517017548578277942564613242215654751534766893985867623249463602013779795704552192800330020643816885590848968530290996513535711928817313151032011918846580660342433267645585927179305820705403652579628036615876754953585637131296983974141064204511276376738698830775004886579698970641577010636981270022680600345202485238500126051195398412727717628681127943885848015986149095974315751410657725231772670107204546796723593870047913050411728696728582477902897591801546835113335062436525756799993476959841999526173350682297552373724404043628249133094449375278276653237336188764883943770601778856775248321739016985277759984557052522904568140609005636532428650663400006366201400082849480583029541075977119714753759580665879086539495273957406561206151104105166164548561513961254471657351471309184610003169508330049803325196447430244641551271400712346674490531928507981915323487680803955346324784352912600575822246002257305706091628616913795363533051101505841500887668271918652141530019552658359439603347995114128311653762733834690973714551112382368713120372329512838533193614788399211428682680926246017777300200261427230342113804297505815648168728623408119748077786606785548046260836529467356946477302097469268143522957863890993864731158148510683205089974637116127336408569312827303919993975950293828783455282826136008645462105714446698135920142571763822757274470144417319819965192593767070725007641469365309540885731416723582899337175475632704043775217752673081696415667593813942868910954990764839133013896284862285000138628482660845433730360494928891006212115460056384427935744193368131640769869624370189682697637458611105817020470742171244281096071220241505004056492668108547481812123906266439193222732203408854843090290536925030018873628721048503439687721709819799573328028803453303752229716020454371698085830029636390193812369592599675863919029261490511442873954199959114611958528359440836616937555404547033847918916900371349230568751517448891818012305852560246993536563485284374188718375165967717831530405258417154395181892285055993075710477888830411760055401695691724768708005728864349818438804094338618123316422351193629013608508307467864210130650679019178927456472220206258061081952636136476009189769120860926432734838978649275801908912121298670587049931728615296604381850548778942655539308387582058477936163164864253094065600394001534403255191814627266989549287844447847726031718988811569879208893491344117320600859809968203668163816102615768347600849612932079205927373379942486200861472862467962779992017801687674920926375451059869529606750579715099154440944734536641953578667093819300233207146454712823430296768215659202157004720588690956887917608982049500801267778634963657375628253371931568796640866654687281375034941710375907246705488440711440719009498851022246907173870588941638055183535629901988967842604425350229412957476755689963741377930659472049680114200062105859722225465998129895567322306501871934093176265677354896143214538413354441380780575075456208520564366261385281269604432556683560342602077809924397655983182925694236759370102428562429943142105003500409572972205494610723692484245152822970027625316337850266404760093657100131363478773668327717434346645447960216305276478626135320419823722279162588481222767935417472004141106772396705388328892451188612311785860147919270443563597392290726321688483197179025403729464150323709097438534736183871838428958568476561412868190655203559435034233454886238289444406294934783039600767235524609385411464888705201829636805779613478687132286486804752557638938336458415883674734878424149787549183575894981885256000410849125519344949448467488117895569282476060531459269105175176105257681891821544746138301520990136375475054571965534204675737776546700645838461039870722212786763628969641889160329354985143367793577727358335560351622721088799097762585786693725256129887724569038105813796191966301202554359887445698462280479434397533629652936373013008704165124904676160816351525554844194255461884288282629627551591396501353627312001524746059934333347899081965812988066850263259417042774684327151637110062542303141209472966465610247767871276255388743261974933301009079341538197920896913677390125177982193919448220970194711909789061983775556286469731028184850108515017922375698229857158586811545108122537279404592581230747639214270311328173014010546884212431234145556162834572449993204066296383522755875738007193486799475807530174239407215328940000713793751540078283786264488343475166682513099626611170961649707556118537611691665573914598517808293747052710930913350449139340030499737304691625264461713540967389198771652520817282304132657237851818230056206534519198643400094601641823999154467116052070457723098925267872369429304351859616299270435890108613839912484968167936493616470568258643414027385469510152048862722234490329902809513105193928279588541089877035086851768991588127072620030934309456975632428216454890479864631998702247612780117363475811354324266439987064098980085010998715314862415294481158076441746017862187644271173901714436763040708965403541212809314618111483075997484614036402849025786685695132117927984029257044294159403324861156481684465222750644085780388150294260832452913471772643616014850250601307476705086363100848118965721303886401197458890695270810079676975537941183755249572673037379681464999324121181056130561939695901565884133186957377793794001073705576786252925171958791980836568194774294667777559147235831206162733597214347994181994320013009812300191645725211753450243211863345728219127461480218619303422892791098104176740425746783528138741913470896368992046367976094295466906404742954144300803500893005447758817946810237748420876510662690527035963326648998390914879162259186818972258208022838265781131904376753121449628229715571283551219456034837405724393831147049640338814079625040751020931331391321877571049189693057677323741865667115496786777238295040413893997436518281909072803350609169252747012524324784114508202222128332419822039136129391768775280059890227158217420513769388748140799905475040924746542404097167896978517025074298298317974827853312581644602409273825797416554300478081671659016137548129327590828108436841294737096586287006913352663866045635147136231082772020955251373482479383679285130906077883292309128727457677974688714259639277350675932080969405454001834793013673742727202759386862513797605718784265572718716034013616811773291334307865805151595679568428990070438796036694934175266858620788585409929799269467784482701412810202891076010524529992636596661394315716928147810178024650243268862907259118167199440230195983417509350393175587135839830491530863200552635573426177267939002949731798864297720821282629086960418122639588870103990061478592826764560731900488914995488950721562676836259028876019677290239947929258575642909115125033753844913417645169223604926087333665022336804013090171910932959035057551387166622394421979299537093015768635662652246465885228283038243561491696827644988387631808619980107301188693302802751568458706059210070101503137596448811054134064162403133819322290327168043119352046418878782108648237881450501937052719097914343421577213658195060970643156357555170669909472811344145091354502234669803157603637116044095817010938734209955672439771443768394538409377553766675454605381314104586840778283678621799438223438314027708724256798454377406825986470724072803802271350586800602599162356298017909022888848694123143666695394375792555672749165371868353663198092752011030945298596916591652375898749167125992152862584873418594799504446352488813096611961432503329503386568500739433887171474771350244785216989378313440821187962152665824755179019541177554778159454660828316665241236277718784160817442012284299676437614947114730106265873626148035700394815073392716392697354454632178939056069061891686270224076759579354040682297689003162021973072726356091044772938596152956065397454459904295421315272855160045447242293939483549548636917845490851353485249613059574254375193181641733344370027646368659752207217072100978009100551683996100851258094714227396556058263298794823641093688529397955463765754620370934275878907728932667759487795974576227128179864074369473638031043985948195261453957375971748819073004255280395651312612434493394601986559457270694899718381063589092876520868680981128424604619266985105817755726593728922368757421539549159947785564617003986894779042417335545394500695009135799313548757882076784285650443538928505648208752041353342519665083775700559723222748360368095583003666788105173972132387923652435266309969142139608765439340458624838309334116839122494150314147935192826424232298726097781835461198352167449010502465335760887522208761942896658541274744547473646837374886291347822748792206755525218135316886287447153676812500508692956738020719131527186329218253239291665000595495711952591579514932332713405299349688050266705698371591477541446453129843884851007096042907470879724196870445849036107953373107815683958426464979634258600265310809005716140038199045216580440576185103806414070228177883811878889406799717702289995892961947215716047827502045625396154292227462429105053114507215599878045774779380107385175474959360626910940241438144192008455002126795739622291028956499376463862484367727024934657686518225999088880785757927531300907464059550052816638760442005097422890717242409883838095888150480537459295339292507661148540557799839085270736060417681036771246779403286627656858088305624443734904605041631818835730573154481358899663546000654146813521735772656030294221377603027035032370377960630234898201270096193401513340876640054926909880021716356814173548007441688235421147196732436297089173008919889344211691607541433450479428875814540149966341629284221570481588037887238455913487027173035510874199102831271954512773447834513823714203645191820680289939329017363815884545575691570203854663330282549403672295667873865104176307992199061917323996255442345394949928769236593769278864493771076661960082354047732813147763069348209775191613456596093335265268401956603759712933262732588688717548761729258874215828903356449589767503084955812336054537217373619467019609430516040818916147156174544826210664173642864753983552896782438022061428105281326413304671097264514747749914144733070169735418394161347894359704451034361643629668082746154184066734892054271002269862892528970138789700496575582392666201433272396851179414261850605016311316008181787247089410988608837898303205476246606856361589597362770451414542809666787522921470992345301102714487720934304261692973975187568995547681518983017980854537772439955814358992442260187837754252573656984366733261337074435090120790397200785860603857199366126300384082616185359744180959577481277612247908155852514341849427838881950952883550848521537900909261140228944282200667376105415347812518808506224681723805414775686924459522333891201301880038432738837424349607619767590812259410277409508273204908105426028407567485943276696971753754754616051646112072703674142618267818025772609361067432350430145528313108110454708662992808661228496635833713074012193016108413957132452536103046521210224924996290403758225705763267680693400096157022455710296879581244559381579050484137077873458546734115294938454710629212370650477606737250530993924293577333653708787597420706452037899518375981123462088954095478065983406534711329583984546628786652474421021305920966020485435523047298875082846052616052726755184018875597235807220874857263166397452772433531322316353254467909345776086092332583746664581653895606965978325058378925351512319708570703289229193111854729133437957233468041297521045765636382306683067703624580965583651805339598940868539229778743992596182647041125726647997917312305562583865724759212541888570003790178942031489567349208809364088314681270571719501854406680647468380121627176128074608687877240438709131420745321667086672001425072085095777337895572626608669692144247379932751716551276945282749342141584436921651614520920745846875508571272678639682366843918224288365063831943180393517519661367395526386136549913737055954259765104796530525400862130601506983508657329754727415729290431253763998457432554970167370495414322203555613481700952280928602820217369272088879813747358676620867094038193973901453207979486227227555479451952150273327072177612014812486576607472586966750710920489539427998467231743784094573424542475743656586508205310485689928707451556317680980455848997792536304235294651174766998808288753904806382719478909108725309929352568132063341942457679904782752119932803305200776038393799003741294658646132455354567668220439440032288377553077228932666957713783187388691037977882679156799500187217506786905961116279453679211897702743315929123137466234238230885470010493132473239578538083802303441042089662714620944819923840005134648799551259525185949720191279734524394204907307915121485636371008537464992043597485368420842600566441198336668288671618849929686778949311514974949064755546373048312450794744629100660522108934653213629456836402054418175383536705202992597921830351637739834374214161075293778079331456328185260781111320555936258267806019891736164675856480764313775863976267325735447986838719450406079197921187566345778142173667601913355737173124144980789234733199200332181311172162492565410760796953035310474808965324447412474734778032323399207483377431039578260578998181446649282385493262267065590018039806020086512211115142030564348466948452401479574711235266048104658763252397686656570310338103273813940095719493121710061350665052537628826478179440160198890450457108525935058974979336003126536268431662839984101697697414344943187408373704481484248771115864718257099248437760910580752872419937720123694323522638673149933577518632545163440826447561197194260076970181227955834097683155145870447861144902691498302952505547365191891808970621837836073638723527402261370968536464506090326545122570785840998808078526789725846523503385101599691606020802979583291333205824727779094509441149074220131906784988257433240794105196785154800069480702440794969622405286847713539664134897413669801490811315258024215267187501872877063372301020692602448303058160954252444135438071779597226590071219368688136964949630114739736096871044451898596808103322670572567172844303573769423414463240907677044387765840548729109347780671347567067500072748604667515387432146617526348806721044821016799106397650514888523373239404365875545453031942422198649287507818506348006904935895245414178723144275359586007241148559853774934420874930873759697282958019179350041648202004939813788768783241216630416118224954510002543545871386445189376967794759843772389223455881298934751598521178557422538660737080215493536611134579394690065168117149981716775470835703482862356926549435825960507116344440608290459442682494625882025593939154050086273520570728050517490138711084228096487274424633762045514344056532787763896841575105205370478346860671561617615753708856259420837854841753890659930849302629302248499031590182613269394368113432502015267219760092714264717014481305816265384307647571282451086811746337851360375345490320516124494100082267285753444778829217870704044047814648493887199114868579791916458764985996610969272206440060348699852225449654302809228861771913732079173461479245098383029302641672437573427347190219868393420649398908988537910670488067258028171441221988819122534793637507777183132845883118984886610542305238437191236135507354956603176322716291579606376581702505600862600359885971149230285097702441225742994933669892228816990762934528188699183262952788832423941091621143331577145752896237312601922129057799442040087567143694294293304902140691697704323989794657067532742604147501676716122854430550529640378668122664115971052202550589421071791404994192464429010891507870217666564996321722961353464485889551746084189630491248723279878945908485599819970691569219362749082762124705787413192694595132328172391846326263981415709939549124263044771653983397666227629016625443161878562378534824892729152026192632412852404328987116493207728263983114110815843808516983178929564534672670606892768719169985614646735165287298763485007795439140497470468081658717187804398493743067904871826314884475573914294069524952372439193698172913106243233509778981101948567300004868273841954731056413343329388734209884364627065856208271818155470733717818474563193534797659587794898550358850542961681835640095763355368360752579178539696287974374049357208084061490339648851769216311028643473535580619910098224129331105604668273246335155546602803161940145021363879692266957364112311586212875132992098116911350157467805447878471580906049139651645553666749683212660291524851665623353907129769658329368208730854146495032038778930994028853358346723322189896030158714827901171729389775126869362361770905198081961718797546854536836551561545829387510601554505997111966576922253777614996533128036152115664141327811582181522658180748855563144725122016376416912773060366658968610787084326693663892919421427006640895745209590014687899092281317718298114046673480044643332951717691970127464672634954719029526284924032332138119992750334800200903595288717914120287034444124915880431782233692668732519526335993801913838230945271245106013099541958799063917655679212119562008625186738516617931199112628184178194586372859839339912249517723036290874100236231136706050229824502714538771707030828424598224860113298888285284192510187843669712889982499321207593907026912862802092644658598883787003559155321463520915689420102414890683630359866866496514746334145875186411617313977272728654102875292204399926183987643933024333277867988648297228313141232340029132509007328676742530142572780629380594916600217218620514191327113437468225746036915301037774633058930744818229957804489803480214020692171725062786885943041954815083719598515659797931915775661979937491107322719641362241832055675883199700516137593926702751088186468021517968731260949064422622513536586006536942546824398066299596444558521811385174070294734512351981466361921340599914241632874801427451633588530861712879216968537485238000911892152105373975768687038934137473316408490324276470906221621122402437651981464625519888100399496635782302196071618555821585548651706564685587723242060484658172706643225515029996699367060767570980304647297204740075115788568501934946323043527084308727741204515300092762647013011507248915737005022944224045062022810136116384287966680393768106806900547219952940929565407983474378223787874986471337075158128336805229544156754304333453611924625661803006519672610109778263396745539108541979545586827680955434472338715239249583798674374366751612295298536546256525804469167277418683044325779080444573091553231511728333681401012247035275383693971419034113887357469761630686914042345877441403451374940082145653576445787166740425774930800822574618946833450975302666461081298872299127767617870247744224672320827739049661788298511517314186565333719700809657147670212246220263529549793976829705040807730053143183346647815002902163427724995923150240552499394851575812658822635585357350584566288094809271586201137173833310480042408806826568284421490601461765789101000502834822531671869455802283201800697577599853807269469785717251596659863837330318122206457591843041486566800088790265399232920858500652764139341741849387575086306656836449306158381740317289751011321083865858535600100108931692895002560837570193801037954825249133465385499962730826489803508703021096756258177982395331458528124819562517575889417757150625136065130410948496584631983258796850492381979408012347029446684619141442902145913687921753978234771662103111756650831209914689595125044207261837657698727518415286858707200919301677221244763005378130296184633579781826728254999739906185448437756322704415273290533492635743301206891292253902066452372990830750099978504490265990344507524635485547681438879208479785498069311475355694126130776248004571806923260345200475078848219465867371502122564153424116485920759620287661037879052960226792892744247063522821012985582960574118994633584603120059323912714725232362859423964824499789717134938697098550907845587560194573278099781226883641990587092285800434690722389418076289670827062778994170334006719844906622469719295619268181819261442536375276313541856695913769371111587346302376662433556941861716308437606773516548529593740362209667516996527257634467306243402706700540439938189845755912399452713059502510732761887713894632227292424580315767573842187489079922494355426039266974766153487413816075465830800005164878930900282441981023443828034853709281313936431237038710498232768924560571241205399818468626212892850755482722107000137826892940003088077630339386263897510717636178875191984417225048806570891488035013805867469180977657060419256657204344065415783028664198090410487020700297483428140438906022962534394945077945371409066468603655823195386987194561446194709297615781855916470328323808961217036842218690910301744232048820911416684130087381493210352745185296423704346842419058959358138818890012020145757852717745059030055537111181340937238082439634633087562086556280284178477101098793848424635092188756358396968119071738163606959107529657163038410004304457651236225649785769739612790514142824258274982237936286730157062003984750822900843873931758732827888180713944555911264416790501703207014953072323220323518030741057138532354030405711113311271661304548514994957519529340171476580863482654129406763560921602299673519116195278996801215790731888469588883933179886021516060970952741019903723960971753518113513507324102710454105315720898370882197412537827241165913261937186033385186802027967335061670697632557518874622117912685798946619336002069781792027922059486894877338410878011121812694662934300016296575345479997622819075296887757750696229101748314503759753262070644959540742514112387295877625738715933659651340168161602175926153011682398280137381809359067088980598253788720727943241440624102547718170156452489977133533811356363347933490551845239313147357412921730215253280014773052335262829209016716604030816029533110996540012385937753140335315471648924901737047652216541958369476429126492614634672339868465390640166420983476105565404956280065697425599322801848253231463298657764156548248678561256274856150269988879847070308075430985330498645422390198300514822414768573269828911974739247687565449069088534713022404452598757689645869698489597592944968913682788253192135337490728453570344816678976152168594733300880181859387148478820503504320356236615569176127487883201790236792942011383059050491524564144891518808928884764073798758106092716033320561746099926143334038591270924251528585015549970875797341686527068188316041359692168535492081428384280850044759471558692968483084162113575187359688507554312074399675558220932320801166493960203069396790639752081185354772858274878307910196306033816667337425062799642143639887738630408130546065636856200238271058548025834405571707309051195010012072141147684907382951974583075053465076059573075013392509048950892610417255617568356149167256387969202125831578380513200879529648983374463773292005115723182706599676759991178825268333987123255169432497372659892287430437094748538575117672454802320392768660858260553062313372772238028409040028538356688467783415370148005474881517170990679895265918839906571559016024846403187389861727333803446536738895051773845644796994102513979434140612796192212587008043728962352908428394891700117702610996093320867578320119452264596801177410215088819872421156990009237968965078620690429234531570058076659559033198566169198160143242947534346119295582525331950815456425132915787741027341638036569905751152787154357501120924061613215459392635727280887938307631287631841404058493843139944804687329839834446503436725484726637183680626951335757742321506165882862710777284174597822143574138859481284526775284887984336511908096588361975704802213980929449970172892159635783727605351059836443197984040522506937129924596234982790354063315968654038166546890940367096046541614096297373831897314070405642032052392792768583034198703597616167264725612478753601808460002359319009109591359266535850409018598780402083256326441462744567676701285447158413120818869484162370122440435335670579622701520226311098624101431124768382484443539012649757769044359076924032215490766813684985081377828334125293860421415619947903437345529979232727308486895876720301644246096514123612224400269029431233624123257958394669903968887070167058093459014854785272137436234524917227694785609257331090610685114060352769228041182417187553549873433240217881277679162443005240460711835988967100651765185920848259304598976128187964126000747561637791936018646135332229812107009161613848009505317721123933675087388248026763433559535968018671832600416429181554812666674955904892821435999732664563991657704279768645679955894031092571961040943581567197242672915635198854986079881052348334808507751888238068664797273699709843841879207659940193061654443751457608615711743220967754943776078434012401462561380430957594471873346281314169554556282536564811278890312862174784669679282389399384442836548670372831769423566701644864807837185847210065178508550795302032416082262675581828381147216254005779606490220067025946235744479834300921912658487925378071178514135040472053023673703789938311730437470973123570651403655549050917857990335262907029069561832363038270993666440035493293186708853827531682998578344718644471687999131471263967444424731926142672677140465128826348181867101527670288946316155565832599162205070272018243015022704691648405542039399950491970344270861370260614140634293180359896935898559689666394722499469429754126111734275694704713857116673202668203421489594304260624181199073204786814825479076546476950236900768505480402644288531242825708198717419957908533826706197698489908119016241168131533308111448408916312804066536099522346365810753113713070510880249837576619482146353865037652490402972616399192528406267922624947943681901622875592724099269645749714409396444141167424876707657821182352898817304012191917472859342921091280442627982868128680996092838101289717143327338525750256608809646387503594144909994291529729098871708755921502682003273391780597191715876185546819681422212384654691014577284079535882926368951137619274786334845768549354310710237446202518598904063020027409961591326304319931418518912481756040061953303869881954795684927865969024644855090364880975437886539385842824347479210239234576754745605499040158889132814742026832891650708824157277954718260600617611344108122171008498258879855918101681298979406531904630617784402822430688619964399933367521249909270490259671335866750788322600330578283607877270673620198011141716424654430884415248904519653921058029119732879471950069890103233115117501112166297746340165672901615082247105642892469370131507960016403212288858537342133745651075674545697424895206407396214522972173047934267993892070528095987701730477400880499684962907797573412505925920879022713166195132845415150258956337633611751889904925868055932738480020078832507893701865438314878500972407522750929364222646451964504999980283657801813807254572128879538091437171075109830144584800334446537262990667196068903114230342290851881981893496461448566138632989146278073127213893462784350685785992655464918161354023193442535408140514197789633624229475185180108639830697000417646094890880576698944499306645800000194362018604439711145531309087786367358750238888826727442342555646855529333235380123193552011270863861356272757768600947985101570616726240545422550542554000404011869629884568222910006624101508839289322032818347063276919194953856919704259307332739364964109007263075727863512760493394262092407483847251007374534810103568710878681306175733097505663098557320135233781453329058487958965546616597281488388741406676012166782720986730655485854495222921528809038804771695758774089371897195710756122405376242205095115581851363193504266939797843914858485371709324231092343305389364402721019689483380581553043540912940683428152187738330407895592015963243119142209440118501468173743585815870883760907210932159281424170249044537776779887507480739202095375516030387471242409087901497707683096712352522314184138360117544421712440052317497029573065549421851480946315295727528138148252948580534049610737184764411934614634779909632180955532455233127584767641750629649285307095127664017331254357799596904055683255960654756101811964076723781222690056414704709128237067802193427115949924489561023078076109540836186696573127313805931965849777745700086462273224056091282625299129426493968103170779704069432993728300208388412204422395894682414540248283974128589637203307580624328432055771336877995153627354478761523971841375715555666795699867167037251679172823663325311145006362046202824480236602468425735695380539648362595511678202740715572386907092471459600470374740484702334444450695096349289090318724983276782625530968009320796573577098206716089969063284153982668925926718243367484654998813495372606660915630390372090446634259290307342804445724565400359534543728297145555764856531276174752222312996389505652492173567007399791633296481289153246564107483853634997644424857654586993128949298037681942951886624307749060183560070584613598880587847117023737491903150232205449599437231736198623085254409066085533814155800228985747319085054375820694576450254841106956710726317633391544553985355953795792225648337709755660029832146849719416377210399685416510526126602665491988780561837039895157508630527094533415715726024641466875702350148582385076900991941943306280760808184494986692814508353983735366308626298451856146758912621815044925890686464103623500623311647134949777599580273177233787955647762399216939932629059179589694316695659416441341944827105892948209550394636830364042828080531575989543593122518585380092338902366793133657213826608017908508018251247138983928269421152661738862716161407245696097392186374836140327001049715196911400831228287938078508551039578058754166445872721301303242567787960647131797873044348410096700900324322209235592637626738305208333487359830975161131733166259283447101051420188728590103494295473318638987563403874584626122387130826010311341426799733028168449024622650640905885611785948975704196552783964638654622134028859864304037892292570156988124605954383515196091404616836628122805259410703740802723743990124440861627992852507851964393492991376349716105856243901386553763386992991029382297356142951919991642834506914125693218406926401418824426076655803398748991892495295528680650559790003384319997687821716756342897580647143109257378574739591000161843114565820830971603389027741510765167968976285887242385717702319956130586805377858326880482495828693974687100232817031470105397075333557967363650143259945319429800678518479989099704934996162438002285252054105010558393694379498990555024493874855042603403286069587065194184197845802631863585536110142596070522075430188363123870842717350525744865140639457258460951965783227414669959045999808350104622160906728069598078317433508776586354762469924353389094942216971414949406379889635745232522167141265260891158597431896954898245494339861002961045749022486900907536859466568156787824144506152487596636594765632011542054111610456712243775803155648621838683521233415391986147891714224875584693279396740116445225608802452241927505503647330119859805326496116798835863007902595469455905250683486347830944368904851299909988294079969025275129117926032718741450636200881393349096222741241819552107122615928305240096450560200556986208189979089784194524074493698056790628651434778464789149437660276080839096232609351785269992685567308075910514634488121274605677447662248835943452645018542355710045332511677290862691594991624782573740398597555042423479384715351080962976890628913236727741389659677445712818246329897134207146713534530480432818772743851909569810675642093400028213764490742640236932702871818993828957135676478821147542199877245350105468033873845612000809351373767401372663604045098305856061179298718570400875553127897098279481260263097809998921809598658629796291061503278447147854400554024992030789826195156977060065773217824394579413834913936804697969365461026924365763519005887730042219371493442665973346983848810949450478925871239725604052962096348508674370524649565199484227386073319593922385024841370313285312171249116961006537492628879411287754232780208932649337237563487067217629126186073483141032466433855595290465274700101961066821959714725424909135231892537937352528799060727627122180058417041249938270273454976279547924008531402688572339015548305984096250582117846407148033081575409397713848529611762812430219831359352401870844722622474723672571949915159342133824239541200835047916531516725134093007633262167849222708703885231998100911029504299156263369332203053365107344637434997718254067037933424042847420341065564573049500815827956548319985835267620185270467921789457329680338816767053769430466330665638739148223985991414840508733471833012497956676799705748196670201017858617191880209130945051669299530774679752877896852217504554555359685309275313672500267165221936989499656628899634541948579150638647095331253618276478023026252362355481973576143704876176258060424300003861214390512342561978122868674083491187684175150321896002526787528083014909108067075245455891433437275024141932119394171719364778812050755678125494854997862017954627291058044701570015435990242509847126954671686106973525285393368794286242511292253761816059845726248098402616747559980478725049791199497163926880811043629863303322227044497510288322725357834702616990822472378406774430439580449528848249372209149173082804407599240475751621702244393899611627718106017299835035679270861939829079307326335589073539081730971127074738950783277788199680253124028616394917558872387608377087834871092031281578737086955704172855729933520464426111452542627157411129143027612605465121576895811640691882308339307719855014846702327743680318747860924774341569798429040141360523259475574030851476127633860573344556410143843022857988170768490772056689929642882732686210681755871324599493436559619101892679687957526516247784791813147016969722947641091831692325670926634825117988392739588218818598526563037164807665450453442213147170085838096158193424952371978337718073055128056145284292485060276057789553543192037551865511226538789058987007903123631048329024861634052308596104524645115386195274057015543226671756423401501992864077778050704516875666082201583336800851843277235685286725990980638005006532104657507992099525988558344404043266882302970692697873553765420005669406297891272795311580872656376410761329273510779518419232158285131444804670718554977775184020323941054919744465500819662316887097154119091709198278464622459441822587274272966432336047972727430215578660575005502091564442679104633648942233922188057921607921364098049252308406452669534642522552980724040884248031012254530561507356815161718804933018744941290396774626158044411247257439005210117529108696138478770885346770840708549494155471022184581984043532300164533043589414092608242352786063074919979891579058329739331359005922296297526143160801500240152410568255992479601376414788878408377652139749587111352530062082395865020012291004681735564718829892061048675183790151203625106821678601840660631817589853383580726939422610319986032527532971840005029876463006861521829460407211632115562576631205451609629022059182398482482650393543789625371109451202099968084920657964674256882017181192860216474344419963957192122731508913698805606245910065764946448336205928646344360850512843898176507138938816051877855980631978480514468109063333222629764914193380305361465043366370674028679699811730471057328843524105476484737828724248829085682328636410153248363821654496364488660858702299885958939780369621772124819500828217488179209188627931726418844760496195216995213332564587909473225690047855863927256303606958835285326788012044132497888437525503098856933709807377848441405902678187108032087708689037649077220135339140388014317994596718232337715556404388133168178235622793958958690183281179181816784354863123507608733745610334618085222029795680606510838440360346281183679620347655735810869988477386249435817794862996446189519192445561416608004398719889024930701283190929074980263777920701202800213481038951786924311755711794672765962104240234228160744458697822568822221928495896462075299619224825776061899229841960811750113976347642667315611570148241450418625599761113304105811400803886096243517060203146965814425358669699394675977683524429021123697456190725782206519822990232589837823870357669911822792252858727401338024861061104137267355290107821467532289818499230821160485606862930371967345406129851305225471570970491075740382826859737711724939219827640319177165436500825250752117353674013665505660543922693478455967736041684120849424490708967413403052431286710951945964756779799596537450846273526035815081728002190796783697691834319885086409092715603434687048930559003088397765356936799426238696227366151447575808088829499959176681440248243657142879840359031733340363930231033273043265842716683872879386537107872865496994575531434185711857131795509538818238861395281347889187042573908634147068742274602506504968716508980143307348693639041207823948532873649700736111724566952709639654170813318189669717716870050122810936930672689145849643936906225248273533663838482632549056068471099762689008884363726108468987954014707694180463789124703571965692336794530427504197805572860622989959527546842394679215092553945760964769954433126987316185312087836495699079649736224361801305963102172753299335024759218686947453240148046135687207416352324974394581064935917848425392220157770064407316396894742258507497409471609224941225330610702127517565702386545976621131210729409611036366719143499401657165468469692770201813894251773481031127231209810605273570692236233072354917209387581732607485163632474596138581011350059927055806438085300070755234489513131229767065548683683053428342078513500682886465866758629009041509441123674762785543153469821290072683195769686607444795734651941090135708287655843506202369144247123002980977637149483462853174117878918343590360776754205425551157127466034236135925357626732383912364252060759082972584227507279357209643068962202427993555760604633333926361186385333867335616669120995677359787235050196408385116680031724222326020689648398087508662156115064347558490638869060316698944811560239167722189929131510932526300955340435018146044263527768305469909750544801945037656374942030148991536172266136055110253296229189768170878901727859066418609215296389456444526303660932272170540129998132355910530494603306837326174146522218913032981801623625594211282985073331196562204953193484662614517126923626369802118297277937768046254524616800835404135649869642020557833608678099301865372072086503920349335927055694843283183310002300148791857706558655470800966130557009403777678026366316297621029969457603830785101652273932500954798552885054332636890990996900193991872102160744089833140535128144100812911956213592099798734802861966494995566130380660506481643693894541940384236756229142098738450299910373670092818955065031652546659335513143106206034132952964461995403945099861076956673057813206558844513927259215886941586718346698613493707448206293559829864187308525489525466620009211640249959453570443149375781808683562274076967303749672139365492220782021705318440142296319178565861120101974701101261302679975192357779172401254971777001495902796881977206128152051941112189732587721354724605825519050730368641815655322401909609910605058561073096851673681533447896165356397721755513123370232938559208269413391768796181876894317768519762046712014697614165313916863437731120554626353719786595777711773808520112188202839416879258441131018415410555747224799153301116481911130759053505043432632243972487980787971059595943713719678870440621677875790022094723231351859086489256657209874703131419665204469784792776406453580183587445118631797719858697647003029402995281024690902863969547696186465158892739096992679895108112774889708508802221624404676410435432037582384752708177631490834142309388025162426050361588558766742415002878233483156738791760156674927993168453905600538748021460652283110698995369184137345063933458890673865422035724000646584088717916066592742860447686349206947554120037647361725891244710638459434731514012765067325612831130254232946729939048629444753030156089615077070900207206685845205379316235333551966771438571238408159734057921506810117290301193760325684086413653938187440452411082938626007814233847392973625915947603620420126361873522251843666644930359831411872319815664203173293916739019226977056880675524900476688284141690158870667562761145311215424948043061603692759424582255700789390164685760462957101284408388131737760906537476338209318644736205430635350284767900755906245574505146076459713117277262227273078782427282817575152738493078548944439215286418166197454198757750356730929837335340978860299687939757268152525145911255940307838114750241933141134764700211665265529012617765557650482528299639556691203167091702060487679836669773019217120837754897540804786646802199268778574212938983565115475279912307469546406663802739149097326436607281786751838028149042882067291825836084365064827153799237284808527033062162027616783592889553298059211070641229465407766972891435972213322449117343110700332761003336147366300249535562233359702395403349137519869093893530793217837281016034265200397455346680171831969371706905345060602653792548733934028452989573005835331681552790156379089057157768727063751870087559804921423109926508931961351302203485221032172775424774672318235102576688931207552746549830621798594006540140880169680378544113781058575301782138065214657242200584814061917290041326332158768105723893215206655635106239267701854563243208492813635704313213783459759062144341039929843762931496999111243410163256889246895501970463616683173111716543264689711634577575132154535815159117049138627866150953720514091245529780549449965644856313253280587682165984599420111510348680009284333052678042487205123288907805860012925892260475950368659339083192869111121288827084476357627576681644426978070803060169328432203541036353347343177426601959332868574715590093101224764877003969769023941587157464565733619623739295300589159389011809410143427465649132855480387364368173768172365422043014962541163094740985718841404263090159641915024506954404800239969496128694476169672270387331850866399335484618622753763410264650170528192197230203165663153684640751302792361065171170432293494034301489172128578353775430158900247248792864317771772802123486136022352055844576353885080259163052250859908578863422086676369165299665248576644739371079177959497058698949907551309593490539264992382888592019723291772095893869574114648376875838726834637426501917167770239798262540820127755990555555995224168691677953333611044195548267677895681907495377838882790085073894724423641530215033903262004280177086016057302904540851618152714042602667164636900032443547963944107441543519325818834217930267738507094850953701859232956649440794460345051476046572926815410572855093692751418921168079740369822228010526120656881403295489102568764222536909407405475608960456676221896465847015272587492128477715478611876171319535237042752513816773221158449289128838158449941877330103036443885478993317991161287007774504539975154892256292057767126218361108838555938337430779595435998122786253738141983534304637880099762686325083307254676620811078282959265939611159814338910956647797658071630621269277156010155241236772220636610227968213742588937671000385059681355066024961173374072573680964647745653606598028671028544945611047698261919685534584672200266152977352073278465556498761582878002583210279673716388907633763967000811950490030702414023026850776664785530775745985647290871044459262001343301956959129643189568258689791597069021243378374209727260056431019043965205317228319749615772033798679516638436726595216567999540069938523760994670554534536737848628182526285514494221032960257651049224390647152858683130368905725702356753711163895846256813788844925304939270363370445156347175624974629306726752425502357507506693406326386625649806899737074293841569728347256075187682596932090681511715110656827135277842062223569633620824933882027549561731708900992397577916360158956295211477642472541459753902938676996945468910745671509714328293731862934534126437685535638892825522514014433033569383341950683676472135311413914472620754350642026903916574039219521892160906832395512172038335567355548900765461086944017333654591028577249171045234996676050399159872406730265973431420832608421754487373543248011441367045711408628572305091953218364302491352495788291380977056105813972883807519745665283844292653488804827580745452796542763334259911007990667222695752993577708016200524341343079121230336024441865825267196661284101545208450919769275545212477015919110075177768822535054247692684581892065056025223536929934586093676705150831302156910584751032304222201928723018979764948625482046572115778980561269207260859907619177766483678723571175314200253917195050108810312299268499592138001649671062542591538004263168491891536969327490548616832515709382159041465218930908607648895255139065309571977293706064509181415570314505923065601485781693619644511372177133979538356691550637951841269785658824978627481461104546369780769718252665264124642067315573126447550432998376417959030960224705396893765490015518100257935415117968908822762842973433056415260711115851971171648897788658729935667450268465816284381583368153761096818803382671492228731257768611698274126031755349912944365510539724385380235469659022624167454790233867301921401518075855689186996918829789814936813748576735662860317781691905899754103849268595087013376733261286309064823496322618564315407005077629876750831999824895966704449817342328219246044162436881522920730681873901292820011317790840219651171560690744778482126781263276243020481539796606205600661309827244815422191318625047086966720229882664879680889755824171027510841020764486217493267234361480962384665914788751379979780147046342040476587904173812043106528630549113180177271651684488847592717868022002819226629762646259695660956037364632337035283822000045194519360179389164045008615684182224380644799479344609161018004483051828562891178463419236517834254093184772773336233044562234280104830823316674453191641284165150528006318805192792895036423928521505162846738101864995635438622946864587017069907135898359136870020114859790039445070458549495313973997430556827533277280957249412562121967054635711888026697089219456133577097412015584318863054481546333287561958227586852651885241018190045049786097785778927367185381352688197453633048994595174989013873217519834980289385747264334103837461560270512169259571375904829223985471374766577529616628252813385119520232383741689797390084392178416463091262599797550465151462942137652180161283396713771301958819378795860154578172285486554600367149971729616808519314801813082140195215696765015944105303962443050036193964766595229581201697840656587337325519960646480532253341213148602049284488858941299214113527088420570803653289851465410840285574325072585033383824606416457437813918896890600102644989942557764675545457578785053570524673252198588204634302892462181309295307152291255853852696442658312777289071747789056983647349984099445242803081381151548643090512728000532584172898875192134788694277615368786376569699563364407882063343981413736721998205582364409661090006191624359575076984942782260939429120877680868235345466045560654323256644102970364733514748067170095953482353479303728249093314933733236537885525248608391126757288971914917188482561749877323530077870104145784868296605213619218173205138228715834904632130240261184272824692301468775393675296780820002510935878420977572360698088654182651840726722294881029775640399647602914489305718836901170073169522336151885884539516181373888786318097524187045030367496050406493007103899862674281882737876160408240695318059190764919894576657549307957381686962579767015203369227494197308636758934391337428081590483231509817640371303506528139850596845114309633006526866268407174482170048309330886663230614508764644651774644908175378804298106362640618140094077440669269974600073089746438237610936439433733577558139464923002842441501465460666271419794220698704408516739683985160122461922748250756800332772341393248190955867004570223416684193828423732268618136485256213161651752042623311798136922801947266674533418122329038286259220638041273134020771598162634292144972103176863806192146965171965884950400764879197154377818948700860996955745201809419329950230559299015058645801380808642590652045722229374219733142607902307252720529072194166481828611040046904656946100864222150300470485538581877382670688383590102081529851533132907400958129505057701745308516643367109890100850648376752264776882256148602910387017975806001152353285277284169990777683400234487597819242221597754423203059065531013786933914075198496714655355461575125169863633217689377711058451922704067680539543417411610598383960304931709449327418326360764285232238770409264717304161658558779378567381735802664719026096154096023737762915932253748395759254613010834742289857253562218203283759751133277107672540011128332630627310214344443677623774222474762472318165649571336562196482353572870071403225638024444915040054435485113940777392921807310709880567665595169118514530594006413152902799785964398882103683321703476606936171114878866278996367819368173661463267334399420070788613076583020985303150092440821214175468399857906189493258070621218120182505252832933743054619269721305191649567983881209158396922414155582641017365343828178517856755809482725041552144571110834538599813021931398190477609700512841708498460313871773555947840728098635133149632003973874362051013030265822586850176071311946273329896618762573118030495567346648705705254329760196206065155323652131639589929196642987853948997971137441952190150767400554397901563206708859891420654818452326201311138571213291635523788604786180039550856619277284747611265525565489977359398039379654817594217073243757554365183707335418726311929856577889389475420077350612356682943641090589128437434035909646895980792473046534483129779165653937009652618598153228330600798556122258207431241429218729079100310183775212807454333862364029686955293755528960580402305707019382449368517509994560418070288729682485602219333234868478271239197479264029097779949708541868784061563528948455234771623660199828752388537814386169517558824296750362134590161913564218106499278209677085006739100166779714761734837196080798029431633503004624182243820550804278995516124605453279906582469752396452701623216587981515952024204669831912852532128597099311387267750109730061973781943271771144828334147773362043375455188853417069392308686948988509599900140999975401658556728743848713371031259807288617134296362990934982520687645164336249521616639190654131638218797929532402554910262525601406804196878036911488808778143685534679889736874679158770950578795804499165795894848619499790386718327826248805684202123680598904112574949984354788197151013005626700585276082551431335277040471553282538166974338057330876191076326740807870718876774542776531507642269223982343644101099412111640238181664983547943192039597502029123939712456572036566196600828652928530432205364893188790966714136565146916306372688441391926173754971528838851293860152422616843803857004607169411696055753133637816201913007474019790144289131536707168574249539308397821214156829192676823432508225479155047652470188552213016400380017916126800944296071564699197581502878008114282116540648079863255451220629711023312257305043708739985606142001592788120493535938878901621690873804299592356570411679885208966642791558683984810533090245625308108473515444711407740876250030943464883520221000104471378854060339199437732865497459965550047861206166636696884459818467740950811560478332947607820117261849128672768320806859014897246934006692588007926139273083850208464340619834864514536725925318529723690782813740586172176136341936779221200087555425344837452755448596762964604413304767295106028579188421214966134812716242570986465031696325111801223832036905857259638294069442384879436319983151702793834888311986092947068753527630847790100126858997978306061097624081761018996683706790204020066755799532132005105276701467451081255124963441452004916152539057936769548449531293845417164977425690757295924850146812245240660314395063958375011422061159377510516643496891801653860238653033773480593893787370883541268414791089845849192013790537453891038197823123637973946422819943177772257239583654582183369013075660593945829636995043134025872706440232716955005919306281491830485662401598266636691787795019893316419531084534744617441434497254965246326071906939996242531615453133831449895797319513482807011543920849144551693708666619593995864787476854468962298883407597277563799866479622885552975975686597883481021226214144113618848952919946670618824567540403224864640914196146026406972242347578631646602615557211473465604478359559800391021989995128275707148503195692825625227914003585594014799717772531919317105915701342903990995996970163487764109408345148596319435285941752742114744912186086450010981026980223474793222878341491510044867986138750326879435978151913951358865713101770187994792910035013396687413430066530129486644415250319012409342553702573164660222717184953615069495104843056523466686389251123773961063040029334054312256052037656601318232598797069616766027274679295285347401365988623125469645591267798904272050211666004460125050857612301676910531335349588577497539834823045894304636912381261859379343729703525582384725615840994668486821452103615999963719613426929084915083957513590811012000519325969938911451481066983699907985773444417434369076859953913710823227934044006664456633357977984840065894770096999303986778376813142692088429364058209576089001158001636516480315907914852398800614889675250389830514376993699861276756954756816085142952485688992957406811965162691345182631988612388819776959037426703974430370801078025711004804805931219685348748300031353252134033405604814863840155481274374706045674333415685630792546392164507782584838463852073361201785994253537816844844082899454390585406622253962772341886334287142002455652253566985895704614758288484382786635304609783203548503517226061863166513396577953467614557634830531448461210642321915437994322933162424059829480972880410294958963754453105090806441571753349601706909126532594200538955233142651162757988476306130752383813300267771039548818584373492457733203459794358370887895417332761360313225339809911257638475943085758177617950299719760805569077139993542411988192115259499377281954899513463532803645791170762867189690771830417509901113803262495599786808502855004135086495949216542830873655116219680896129858513015037903872318754454174181087789700046490862412283926641099914014792402106636577408427633090520016539679252552814793488619974663135587751548459320986247513754753887235218397046905485815766313558183789019293185834823341545454515246775889125519346548780970819487187403975270946602290244095565551982195579431983937933603070064944224287363996677058376837226006037175555754433104102332740018228597536062427344192061049868819518139047839364883139396103467491518822935059109014543407332161423102074464713394479170397054856185468142711934235856745017766627089714669405902492142690063454659774981588960529568888668695420206010277265464086194014381345501083839880456140817815198277367026036229270337797846376545061893799920324929826345670162357724191782557949464485611621688313706069793169323493914862921506222730848824093216731749743786538950463855320533779846273317752898488082024913631340296530498808615388822855449962111565457614258492942288235164970381741073935052837642524602075066332470676383431108949877353843744434201303370104783908559535958399948396782563801206750793373270212505086590332616181004694479865771990054690304002970340297593941256662410978069174166097936174945991337369822643654593299633705058071234515520201095558519519257793060869600554072826723113750506907755363034088977910094838746239186911424198213517478161130158734924655473916809151827882332418063943204702435304033951227158571447209962939549510564603473058406628011114484647026724296992260126084545633604461958873838776825835401334025939317247966298311553416295584678156175592271012350859420754995473380778584881622973144704916022286406771154257994614237859752966374596995834680790809869295486920170868738499364931529484899575709978338020417593866346820762900150277343787261430796242503820585277398140510569603422437708526630311755059863669385886357898805440678526631717535456277782512295228154503491416748592111621274456284942564996642194433346589233095202548461903797858006536258832829107405500977469353713061638954511418680766692347918173015003754466842532981454818102599850131147118342615353508729872318977052108776064487017205150987175207998985844784324514577398800504020067027047179802894785882216575330721913841119881297261846058026277185947925209779319438812273765134414150938637792846150530265703111217898408923557932534471269103666232041837860436877270333559650771295114061109868070180036649736340130449542116283406673442698143635151034240032541567140900544138369611518386574779136288924842884256997580847053710727779194755335137617598594913036310795986661733162769621099429679957535802179169047822497821626490405289527233283883223566289589535773431509829390169317121155779603803004872797943859962478215365523172587938875127811413362569146527693439363167355863558289819221221186592479586579616226259229321448240687827411939930656823235391738802944370904929722013651582463836925819515642573205979754386718767130191005829137584313395718106971738326124000906254633756437857582745348256246192426085074826826709390874600394886066490914909685269533597437094133322150364937658774236443888788091178516514818868351899694834645610167113666691483607363441782032675935180958306537724621798456851177573549061865646865037189853811348473486100646634153234392143489604464383227150521712422687036136744756515847269314435648164678909379670507928622189328419127909714008598885525092744392166353610168848245862324111276298233031682312472416341375106740401743276771165731612083564702914215179171046144005531148350630704251688014790720686351047638381487198474986171567155800622553372936453051007165787180381976697017410879174184404419087307447217699139142500023413121759238948094731938690791663386227706718882220056546766112793409149656182374271522164576917742045681449949485716759145568030178994828755619158315938231564485753834276925098343268294139539840729576638072025515357847328658287626201296568527952642852651230578451066388456665248534002855259886002217718626450418712716435766888555293482527898760653073056416098324919836564202369784058656222461632510190094148194845582788285446723714201422229551249673020646925103139498716535299573115253711905541772996754132375202274262167709182214628064497834447466017174485948599945527120344082090196370285276254619191245120168462006487952588504024719379103330881494923626828949380845083627374280430699824316217740313128466951319687590975745145098802648783268665609057391891020449442157524222488358827150615443001987557859268044005379427771100615722687360177531570142918632489915274163850261392193954057531654737578492364063358887745163216352569048571078841854310750793383606959263467970993283308174703069028070503821274901176670247153144783894629882629250478509528849804812444298287191424013316408118406230268409806613796334557042156177039040417756884477339444155523071669093313314707005121092180636834088969272171697823000185927562197787662785500975544711515629877792380511785999517428737366861778457454456225017220475320981844660630177042247140773025921519387302483263167549327241199043492370118336716297705867643353383270546179525908072993825717150334832892235828629247641398281827879474637631468611162407742798675676969431276247053155543496845924827069173671729279662326112261895240507201760020384972778352865961649224317872277561582531272468246101758171936134936676683272932836284629447400008205129703392398115910697054212219279137598184189428499173524384378185531994625192150004561400702500297655626501524353630822908600706824797265841191372408405475758876696961237806588021720446207328745599225209994004750152556413734805739035499453789802845320001672773411084120881521088652672657193463717422518150276985322940765537318085534449498303764881101364559407807576976275671477157463851524013724030838661077637523763093751074403306925811584151129009212850848530075508384407061166651885397607499864515529268492907857684211503554529626172476337310733813593345874541695421131538381663504979558768882774399418037997283466789691936662165645089397570412753060245898575014883771104103076468860462394438625028909165357889755359201708580368363296977571663210172858319841444625585030972479244832912197301889693630201467995472434500821483257610654492971563964199553435028905949417015726896725219441032066314403640515857113551729471217513511215775648881101228618255945494593238780959371230179789761139459574923201070987275166865732461103322920484493669904944389776724990438944009503533146045637993270912306673046863050068429661732080899491913044677239412513666513690910419709156716595248345307762707662495843587813814994020339205280198310378732252220515656181010273238570792178021500490554724703962927306330245769930014436558015280670823701419929022973417285761137773839557241735037858647655505039126797952009771965059618625149086561330351037283829726478687356122990439256202392024112019490441756133733517652706031420149145592586678440077847756806804119478862093559125930291875203000910556785823126755252685123772728026490761822236710705505924771217049955340120082646549982140865595330345523501392162014572988358010466991053395806745439165318297935447273183712432724034651135568982186353197855916354161865566580552538723809703871007421152069672160264739883390163423007138278107228106492183127824452155391497918284373222366137236785052377506976348052686691385715080894953638067363242865194658997706994087935940638888349780081764905027084739531748390421325123174140231109141517746501270372176690495626756633534393672364994164465501677161413459117326631632403306436351721015672331402015657243203008058648106899456886608496782260880732156434279732520251816180377417183934023974611436355861290071875554892344261924493505872104919934903894304910758245502829904119394981181218432816628597373480292731829146780095064700760401481521806292426417686584615016438277541611785998601261388504210993417471131048060657157490282670394799447868759860632680723999745260863322134038860609773908448089392989836162487203990764833690447530940741820099546784734766164029823305615535273325495119286325848162375772063042462329778763140230620533656886303683697347497567294628998132202373296373221061642747878939645962437743704727386848671458096197323757271557465773834391225715513943443736025318383963059204736446009146110113570223504333253012029834302920681427960800871042120771268441608552474274373698012029649033432506468800424262912144050875654153686179372984693145432643927230993266803243731803031281040412060577169820007764695966990622688030221564201131825754834729730964235912231566207650880702329155562573784059544505627182214118505539291228410505260212073263056410566506499200362936776576762475058654667664266361928149571037201986930819188760904105574261836148657473547253995145404043423322891544110405476264351996272603223462717279753552498373744656126938466932565015210796889843706033311432507789181522455185447081881390275286610394411278914295564360086052043437369666952062047178574870257158224401963386683240535487940690545802849064676155970118665719632693843167053783046996757473349418249876826302332180086431737894786976795770308147729538049020720304634204152172432109795586989959955606436020351986027180222249466019305644652829891320991536134414993394215259626043096132732709565923464246106130982672805157019152014135397503417958482041514399792189239269645837505347024395492419498743664684160369974348254813354490337204822216290168126226086380814168349152094972367559979037111937618590196382478404935629505409944437469915038218973325972391016657011013703129827638560713798411468464124155248531491464990124091987700705106029760244750164471080284349307452886567240121713281621147097207183194409903647980709879105798104131686808389448919517194342365799102222090091400313718661556225620341377811569607804073812575586773587910245908015180482076873212603075079764787431310453638380920467061920013217271410906522026017975844089136954872753090711842880431261432610586602784530453377572581400172129805377692504860746667574667249513478376515312140647844377256990865967644444901958994278660916187196951484607379360626603849727563209346182277899556687633061320712272982477472400203866729000990093567535714202887442477183798696242817692250553632580954998792603374991095991404622877959061922388044068376338660165167115217818229667469006539574051085093987175180596305045443974142990937412360411145759852607610912982453199555191280831467786258689896622802461924488902681434161065234578265099667033224221347421673589899115336769164943799453495160897694074906473943737997949088185582540991055286897144917871557941045808550617278671812515065583150367996498067724947029095633531067793655077850639345699351166518082986220340726781756177820844822470549469627559237382166497437136363818854758214289702962835619904999177101939568749182704894427759369124472310596611478735771387916544786239716013430364944553575615050448288004687350132506525175788432103858242155926429992078864280596727020828050271068941289738046305116048238755079778879983480127580217950467224297685338988750222372104339732881143885054319541138701976900963261351327089926269636890591617210682460076778580462683552774719164185246685180892477495367233088669355318836829223495754103798903543000357212876835349294138521705711718359929925408675783037916359310734304495821227614614865525814328884358870660676913343764465116186578282449564340202788289295824614870007616940082505023757290141836954702387133235352343133972745808878406143418126774821551910098479229644111709344391582873927840160428173160490481438005498389838016711891258507382162402208733053334237380466530990449847086695336340719745457444077817658080972965634938127497041953865670837223552213011723938652853778432377680719558447303982767648542643017593561225284918286877237715808138605267657802333609603576988474447501879924125320525865046575009151947522209955771541867708425541361628587753765320777160768257973766833214602795150306615066956658376236968055448566031177751985603866798162232501508530394552526619208417190277018693057665111049003383658345598545030962500634850321834712971461746977370716059462232054127573854768962692567529274623599906951120683817645434733357378497655097663170675035382779773325187940544390723650795007563669081609613462463691901017627444978200886345409388767006508963502648652385528191041514100736654529992930295047155859341422197315663171313387682157200190772742590668324058466369386103936630665553626279028492803076762517998886550636699014422963384088736788972055419643356760628213679169841552689824456536546766482516337872240920752475135056606286640245572377521949842566665020317749952831382836890165426164113816842669532015794438799168728335062246274230599833123707669765358245917418172111390832474712467604085194495097556902372739280125371129649897959692798106948425770087304469081094730083685632249673184374551261346486166248590316807791840379750757956838233920463808681604583082238571452333216384814314935233781750920435102365862622244172217880394672123979834178723170533587857198302257273999734357996367913209760106019340378576042072529789996232401381512212257132118888574619306687115081560767719397159345187067308238920651832492316668922690933172491970652266629316252048465634380127841622233369343844730883678093149891921685404024154166719336759351828893255144214903024779877473397378634347392470248388109877469128633814876854526351394773933006032347401821358763531381695511401044097603113981920317948496341383516134804225869592557312489764133390163080599276242272053418420699045807191656246162399686440582650404714596126577246929822688600851410220569959936411556253718329902799121167215080182206648780097240451365307574855814177112321793588122213418284480822748403103970630508382644474348619853494222541615364516406703390822008394474539888156300487153133145136672118595967431257986930323524381192259417433936743550863643244934191306832812230256165404324274990578264266917523456352012297634031571549722323683653543057359338098526854044083738520004577182410011163504247278480648344914049096974996180393450492124147769489468253147498904283682375872379496876281123258403637394214120727160839582947841712141818315968362021311701761531976857379038883541780229950381695638150479381264928745840307818139305093983668279761286545229654762062634310955231947549299737913493639950497042627460738856370981775016424370822655689545567953205535127841255970427866662352958703767158993331131116370242112965760845090690783521377858530071095755553501002317318365815215573077393825760141209416250841537333937170561218542242547279096379974355797298194554658050831799761932106884804613525004613259854866761808783323381808538930773983993631043540534239160265375109950947673868564400958298708120120227536373487874948947515694804396231401941102560280663341774612766512587920506084388530459411917284781402886115604295335469264050133162630890867972186532739498778483947943974058216751052723588954539487221862331960265341303134176943148471178509301778202196585991999077783728588027036426610119228872004311109053445047471200805934344058437314774038451744040423305019828276044017451324363468358839700366118463627273146266357783316022467641655014879760233011109071943202626866578201997420899521641215315796421855774156370505538948992905935018911632381053451580241433251826190743066903646525426870579396596667189818901497908992462812491250409738538084749293294829415154332958013188881444362883505563734903663921312131686131527548411664693738965573923582810860017211869815976376475649486449690117176423470676274698322182464415034359635178924309240289557829595261701563126883986787138856789717269543845459405756448024629102128330324561780677788425147171384180880626270947213456693082588784470003253463392184395010682678882554380113767365642445738728967566778494130894602704328775118305603267580589264179543857417609562864909393500689440395088348162835123433336938290382095426029372916488465973466056808544511329163776577081910650413401586445129172258454772801948835139519695740820611388979774741656878234612410024425451229166345560495077563680865059739425131981088138218226353566061251937261139850428691785658848321467326393104477105534004886055796794639436742807986090367920167114820950638169575816524935039583784837600966235257770369298670436540311234614711155427920163907004977804429565685770495306270114853164117790618305302868075121154573565108482795191847670363711747753392877554377983888956157644290023107339367031354858487193560408947918125796633632153430461797607671295974326483182905371281583232931353488004931321956218800269701335556823273804820645187723674795161041318388317588795898007515243419202067129008040225163182902545273487078400510609393943621511990462839186346894754101144275345120283669931104861834553627761736254997898070672665330888954923062661178917731237805294038780688489606338578123018324094059318041673629924202334627548937416530119655467299736081333410428316230366947384834719115235482613864310378864429170706268706556262997565576397636437098166861585548688340473292273423501702313590317990337058128729962205964780544870205009770926523695839275173920125968652066143292477066212640510922073333922975893741958624419635326515597000169725922974248368499031312677573206738227004388476556946917737947274922923934001356355657977214498611943757727077425087341150466564843759955170908486816975605336032842743294918265710385582363900143390604779386346240023723113777898992144979260334530995839058149317976102452985184491023665442023433208006925807330518355542680513068642743834486486014348741676432553017614447813268941291898170652293979447189200675812724503579484810696239363228976437883748097311112657242059977949715676215807958273775916459866361838179860715774392216232655936469478413680905035288966252517989295906911497678898917156753408494954487505618179666839422773217207383439852304743863327156740023304770001499516277593134210341649402555531925521161999722214075355731390975903005527564710825198337062192918183758240211848240488383527467168906445047109122226621936701489504648629097441427086550156179587065591424244369637234941721170935113040536471770104762935704726654436595215223185413129168806725615513233609107263700727801836272790941597926588138789024778584075544867418594779453364730916263977506846393416589814021870972839312222347216034944801877362800188037023582737884481436471576480648574032100956888730283190170993491093753818710532503494572212021924358254091815477137382083828953176875933221191568305658716973009961331383055554418923342098166741919701604629296592948991815045640497367084799300871772870018886417923201179027286461303704025890200889611002747480400421062695990931728448475207703826929763990236693948394241170047843724053870380781030396718383303730934697179953706512643888211907087997944658478530602258956954642087761574642726778352396826826129022544944221745416343698622510255455554258857841450756214709715119257377676261614061741784880055695683037324404246274241009164430451135203642989797278102754384305915261761647511081972275137180673136488984551473388091453258355305506174187228598253334732298366618602056848149188563800805889576423182992064875192653489553689834195952111170352440832345018396433455960440928611385116785702119566034882643773681256870292160242670121029161077295160780188718074841735844508015609537375118441608523291426626954586483745362147947498270126649896986497062161369542172565092048082072391763298004067977269068027649301593650467320176977300628902182204291324707558103083024473492850628331340055780168488668289236329036369778287055217290995232174917854602179238885600918101968492686685227196339851805013201584309271697815772166278897818921995859680244292215048820880765892355294304469889866080306892105148332160790939248119595747922309634262244544994812016117436552213942599409717541693431454886612055581581963700264550579489892019485397382255249689485059955751098859551060835586016697271496035866183027395840933421388083116211418548078897372808635862734249427901077149201381565413416546774028355655791568789538878341936991536908808610231465766142293104687194522921114253553154645382014015996492612950118654768576701259247306980782951778846059960294634987891361260034833348171330061879410925792169855772026597618761723092292290120899411145254854259843560147748108337474739675656513478764221303433807719584976499012154775804663846222599786539486703206407188340207044600003677996866529603899394279232098146608062152304056790662565675377344083945303747551256058443878090809194568877643583901276905192921603209857630631649636754672371801351157253246905570225881767797942684418416835927642618474879487648068573147041311898827625797726365981604822731159051331274440515347293271762748150949974170111706029391170843005561897744369558257492817855293008685191253478605117482330024972340357843601128197527415252668397897393929256534810155707430701951881773183087609372280909738684343246653375942056587038019767049271196749325724029000434590712887469702420281707614384510271261427648614708693500212064905075302363024910083600782349310487521632275367822717469860859050273554380491945873280720490555195528965350371477280099847580471325636954490123984291872308336746775594939676967694728645554070757731405558238095757379577031612066879091296207639753497955466433857456331178767217196719810496017335237582657901104302766623728815426128697251599795758535985486084860607203563103395985913753254063030136280816752029720972415334195863615160819280311844007240734411883801140534249467089428470285860333440164016173703800255001310077030391223118012283798124687668457403825295126780656026365004012306570776501109960481799646412343940203852041839418476965587702690692489636215383488429299654830384495974112326311482308344094365523016129875639774827647498416731163415974332626958798832683577653004696663360932977191235485664671339091028279133035546994172427947680152202617101040991256665822998893347193268711165409946523033303477232871500663390487753666418785259159380930948781614680939474729077877521604820563652225075858268802776379070181520583120679106902050480177160370173426626436914251753930192228752590806849937177219488990143287186867971856533521407079531001409337592365325560146896502636638947476724374679997998743821290425934759174523992607400361397176430434507510301764902421132258116781029285273586138116516869406727984672012868947810724902935051138558129314716476484817465759701802679879658101740497395379418818038460652002004371888898295828834017546036791081247854376128235631730208987619438071851039122113173628619553560850983206098620355204062563029405417414110044659232217958441846764508298494028280162688263608362704832249886298692921546110753494073066738394845969157187766504794437020581838295012417158285198735955756461224392946399382201192853159259260158537248935916335215254194890072670751403614293679981011546317966147971081311840631122715129645875084695386231458371889799631518746040520329907770505569265385315529073874886084205783748650558658565704531929564611662398714605765626401537861126557508632966614487471419933075461814047946330018111544509050051436374242113900914943690527092238449989988516559013672397492539909746554448052536308813482989364474435456867720750200160682751969692735004495585309898134569460480984721280952483139651506720009178356805102191195898377409592228314000895143650212983654373275355726580986201037956039760295976916034013976240559854577980098012357780484971459730227462103737914825764459409000764788971736675918108858198550440956811788696516120775236312845469141924055420672885939747346366194841253860279354423374299530033585743353499585619891764711168051775924733171761842896456431624309733589191221315203913210589073260542535735803738891653169161319307963535717741527122138576753362732530044597001569104762933675080350736603452292361487705144207016443515333343826383641405288140154184659530063850072402180486866583152015770123268671500871494400550244344563137996966747316334182554870102051556004188858367309333742814107345248069853731941156042342973080861829559112151226368597283254649542832925968120246507651285869760350622495934915536054248415999922355221004429751259717563369947958426418787419411473833050120787679195989566006660873867431403393840137471527171775409735731641624277104003955530255496167509436521259844281528040308074377464278752168036493125797000234462817615818812478453351409155447092467248881312200660383550151864044976341695860102781676892921201399774788093296976751145042411331345982130641914360417183794995545394174127425388201278219928274204173663695358622596992741614017886784535116134367085250803179248486250700942687531658355357492013902740875592687879196177939724843376438933804968396304017151409298458798262340400955701067650947763440496268644761530794591663618609394156787741059055677146360754239058211521427210027595648293484043734762377334573623935689518950854617246925346052120375525246641661957539340233851442954249119001194475984804366458932606112241082862955418297784311137407597769450346543548948018948464382578237662588306511889064292537717938685579571385639002203645077356382364668807974967499280854610768807401395562763974611625305638706460457147238487734230251411946318021260152702817664171164134744407007617310662756184902742513905787497001992390188264097541832483535490109420167489904946428325452690946185241780842238175041199685993818284900825939611161414797808207712365327560913533792158304796845180696979912127970890565892899305788006656467621641461476059077196499755283341037455310986158461384138730378531818930580568292902202193852494477673698780968850098655029313222866104266899329232148703458120254169216891223119694834626858263220657121126688607841617571449486528446795742591326490029288019721667590489182170458184566866778606646412031765481360832139478346557646173452764582372665581365896881064542990388436913775054680583168337399846989024537624693309972731169746859552590508399336244790976963268568906985708907469272628937642562147579528454704600423445216281721477316655164603431947485876790745120808781175371803539885894496993844480399739425362743855951302007571854926402647425218499952231783491779356819161182714308682857591239033193400782085211913534754464671531060905168053715777164722916307440244009051356875384557024502130236690658376267620561499110316957195795441237447304971219057164382093136633465002220895379876152177372094350774438653350364234658469564836902510988568484092202138930329483173012419495895827112126485135786244802937094256687647915569820924279405927641351103473929766674487852218112068041932244052355226185096510184468346701527637829538798023776719666902025279266928404039408058554248823303295981890967932649097611221796394523008792992324274484950456318835141342896682490472455695658646560109895379472256987550662168730891193986430898444333794955719781307766770152313957349271891606957404299612534349985735203500809009352640298041568811481421607984866544651128408508465230797624665309144813681049839831623712180320674894362427156060302059120454885609526082704552335795830781171298941308437116067144947632474747094183091577979232971528364347804789513869544369244493620158239003983838283327858142160368686162134099686222592087689308077389933880507531812349684726258738728818412615862742633452941650127575426214231690786379913758363446873183357599033012291165420644413390502459556298718273694385364852676974292269298569788889959023035949131671002643371491561016607649052704603896642415668908862245291552694210993120624894840277499085876202026760672092517910366505645274134990345219339686268484535227754445387663469817335125265458473233075506028826055684265905065114373779015003868566009917469759626593425769407879224747073596461676641510969326223902510281085696563896247222450261394823281762363151664395839970508088710478650825391559826779840213771816616281002133674664072332785881190761988684077574500539930304799339113440738237316160463801674061960574907511959382082779194749012160561137545366027015080838371897116235273612954008277293140461341611016716671204649790160406696802276669763413169376450502849338809091333321519175704387899091044479701251285965775825426419375471660944805455950940804683849586142455738745831064447292094749543082724234552769545309035068621408574885531582094708309634707550233426132414719516549979884748158460679079179785965810648664299439021137456581982423052145345663076027823075258090205513169725681761838593878253584321317063985169336632368478766080270667018377193595547681533865895725170478731327865289788827834696675011279209060717793847775321499665453478106496628642786364063441217222513039514255818854798189785574132180208998905938389098226458927399086647877303191896053009121682389805260097791939207394570738682644159859020596266355508058310437715102754353417188968961463653225898355554475865361549104451389301894018963212976778931340283941366396604583324725724081120485364647442826134182262766841161772796885583339186223858446093480069156461048712580340212783829646730915992525800417916487918423149644641823968011051934741942892699656528369194534694300453159732814758378340787666095004885110814324126370606078093324603186071668432020020302683455820058715776096862518157033974972108895667188531248215386041123570233676585971490068290882250254626620360913680258985586584698944254276671545362370191887077618448097953814534528576856265301092469880005440421263130241658969032996145786700533820010170735917424097744046288584386616639925423739138035829471608390388669942158597250989199063887326935158433029908612225032427209659612131016922455829896982917410137297565875582952399410401123210213475931803907587455631185672040820364219694730725484148731238987459368223444114972389804277215420234249988202157333770576260330950886137924987698526677962911345642898446759063074462197119950865776955864455674463332177625103726040021180734068355551599883646542078196244276166594304317990036272779664277897029524250350218537150522078802586154912880134997708809647864380974558720557162473292938073440861298762559402449166102052661996804322443840707809933134765626461243388010390848822919441425174511268679376155955962452970231748543217346944967261181308772873061258858882399216662552965122334522442843442962649358502851392629844526709376919999946202645930173922298199454729693594543865767118431268491414722418551924552021536545007217720532781743921912385440406062795421302445169838863268632826841130108524600444620914948999133359851036970029238489489080083131549077612519051414589395884267234752891711743459110405715076592118219524361677612110238704935433809294079178016092655919872157908901855957380195293250929879855692437038154007617983484539167743688610371523313628884388289474938776454976407306129663368970510258913642967975004235945440489087267366137137110619217248278586237566132082109948921703858704501407633936598442250177867784556843396059687665921499074567399895355881085667906038997868276051056138117103445188249715710839217585406709023298672041955495955402540798048251941449424793689029565427038260601386780444804926981665304032406919579949047408505601530485598447909549786453604053764107815691643194560142189352065058115368666248344651683153242569851420523604172889540423581286200537184291682619049441239304003578797207172869572804079304252743227339889109454288586604125416745484077215100688288207861510369662909295134519296759796150874166769126671373801319743550475163657190970048028364288890968803602235834931696997612679829190417499160457266210501057029153979140419469915137890279849253302249877744056848438180856817120221949627111615128853601360190490810751989506799240554142802763976965968406390716813904386478351491711277758208023362729176072884964952868902314359144237140689527108363940796262103009646359483037574019960578382730261063658418152977621081236229289587415522134257313615418201616281506147987795728803553524903956323881674936961412554223973468995657608608164374608440280266404500063826566689566166385564795097218731547841651337600001443012418869557427443231210570319757914695897088192610795243766370993108486587776794792797684106747220436489694812710002434065875644992031094180492980817071040968221711317948305345549040332718262005724746532853766904531474217566090121075155451091596779561879393067168987516878999779169279612812807244274536244658399918729380972728181402379523808282392158810933178770237941200070078885029005144782878132709363097584950856187961118857386318145719725926473749258288054128019973532493825221827044776760814366267978311748246490830804051678108505026141316209986429446042427282678490088154669480081164284861184261942810692452376720563700217379942479143524690652529766236670748340284032403161435618252235290578546109148588333993436891454666966405635374649054494095609246101379559048537611557673895092963113811854137854532764643857974735828369897495295472697081746131244794695539046137102029113682232789076851649790452134506618914647328972053350484336205147122549336966752615214544554876479548495304135290081757026401329235765895533473906475899032238970624910159780985325709109486836092342499459605834333902046795038132117235202620892727149835841472255592510086414581672794064332898177407916008585329231862873963385548245511465088924912847957058149291574543602136135592153415717877190000445934568598732659653093950723815518490778166094067120393104680222611711635539238892761041275801089415135725660081687593178488465667926039453532891968276568168891526631070310933897283270390673561739922565812776678434161808772310112759993476265359155019119624578185042902027232525679440296313954930159427465243395249277650637150505040207946932436064501887472809478347828384193381990439364557362640751128480209280410246930318622851282720157847854334288137258197059051972174658886769479692475618903669012099205382091126362248779772782590453660887926504588179653051823013288905880230162837673760432344615288809169566481769027631091582552910628976311095339184931506876184913043053544876204052432932931974765220730193051475109336095400259844862348140796264454972288854114948602324874518036236375230581028871394832417262754822756481379632328073914948321530780548967574065981384566562923218948156473184580247512501903030960439099739047912641852212605597226938193658952670684560696138982001641638658026697604573169760330214377724079276728116280805129143850301372552392208323116381988896419899096999842969199064372207147737666113231185929101898348824308203202015717632208234425311676652959486012030578171887215485050600584506047149865745704803043052668462181026390504661157687961954587699804275796409785001995442312289306836592257823067924320410091040734201991791344301229828018829339996216156636185137374934786627182472396393953770430423958134579417587581059349440670778756506564252704375684694873744175802923568336416590458036775262095475256390563864873763043665605825731043410665214405320883075278829910488385375872293272468076824129947935641069572029470687830353948779309259314791823070321269504025923087622658670981418467066514814702223062985592428456905689336302047519271028686325938959514487338155252006010878592044164824000953952708978361051280390346003259239089050634224610802116481338254170789060777021916918429132513373108457671806545383279830820177757507781437481673918213737893991266853582612150405265535515320085883871680545878816207058562332939963888923813563438538131637048108270890066088792412976125000314372379529890845501069918851661416250436974468502519306189365500190554958888527236732024740535623343405434806743405043847686320242310572538939763109066131496609343014252181537844853114461722339742822868675311735126115052523771993693208333443415783194737775372158707438728077000735205528487089149000277758127303533682653894082996354572797419232857518932237901843093234678732096403688566038212194500436815245710880837656290800216439595524180142562417314124574387425305282397386041972227410117132031420721433004374301639834808254136197544275133200248884857999779967477951882513018312285084459910956883095377033854657785900306704341997500910972495718068051937827716982771461333524802774063655074949440871593760429368496707892292563986636675349464704209974450709662768981461867225261620957233687241834563644079900192408443506099937172226064343765669861547755512401567243506627022827096259361698993891239958387285479010417320048020102417115126792283283258814497809073951699197313160854095293724703629721000677978438765375405257069980013566836813520848094623191890241557766645987163216946465515731704698044348016369654511772658504409094517545879378629875109062390853865121341840280942518988413403551447627503093618979851616833516191390517091600037001012334605612402248947636493042180978550693196817634685755388786859078880263291517581505774396722847960988649691751871894524300802978313242744009698932829895626525533731961328414148604338480885257996383804742016344783614752247648483537672578806485074089694208786971777646274329940668593370256773199491602015786372005417806692638576048980741306610967276487838351554275674804813121000020319564218006746999042493006903816412637682875621778256648343882811812729610909411762903214927426516671113686476942990600330057876555733588312105677640377146842441848219209557200141539584280427059971250022465470109406795739914641668584012323016708905653899122415385719367689248758846810924999830852411293467060526823294688394760867691743249226696427184648783125975205558757131882032852861964328136054215816756703052454803119491886596501120756436169586329345127642394213128008182801399242881701288943201256100923595774488148554109345464623139211173157364530513494832104348028710841714518714436082196376155949642909969486449599954065871700722152893423118394970340922544660580755628923669092624012768599333362472147021634687702201706573715528686501403036272959631274786586961354232739213887965588513164379760092701612487065241283485857180774862085633499103465886844169173883558150959884340723251797632854142758377647513451023026430179166851277848076161659886536327434808918480162528535397145434482440031565004984903019088652573450344556914408709955044937491254606485407806564240710302875354641304833901752038533250337527193768572095243815239627993519374672988237700553136142156276125624864556371654873172567543947614215523993966231961717918478101816803245090477993487558624745735114076110798430501250509368899722185925298856404978385929980749452515324896817250109057185483728255746530471256140356436965697199232899202749380538908232683594026705212045727200311910053187354570916720723998390576249610232239941350060531649454019474701417247853685850243310870697861939879108773443972625408141946494486599113256733007789202127030811752734049386792012218640008651930299487487374977989690090937425575205054362598938784896081153325127048331848961305828700034506915355759587833702649127379375989497491693397500509944501064921227294175516138960009781190660790529972153688836971523769548779426224848470297837325897459172490109394252558890479982275285363850006753613804422096138911298735698455557983365134464424719404183327080181102301592923098748724551814846555090446817928070512542008361968443122316740907960876614001585009150214228099449432170176556187143539532393009543651556444960690852902762504028470121051463999352339674697158960009167996071828949490069180770152782563281406448034024548400005717241040079476322671485579555306511536651379340273264227775243985912345023766263338031375867588725389837382176686322807021957182731333470627260468736463274361155914991736564033567066744006979086590876847974984085515471605185806361554034152199825674619138089561722057417156542504258663605533553631443687766677199872470740503522808856448156351213833738411668456719887528072412102651440046083051671544379870201815275320503783906240719234843605052405156485208945871931662999097292220491151481587145378595673596046687191578591789765113991296998938224204982584035835607378082049739181012862311178266294755173516660487821211358974695285941994322313467745513868896467387286746038086285240593738435086088117698321771160232504149196800818827597356342192524304310639275873751054639133281247941117792163835466174824431727225294740911237590948800112278416632865320968888828082183323763750128583981891065777736222411220914101226697681784368115977276629913873801158086611364790033424625848988423746122382121041128723298246786014092740929289694614034104933750864535528067100219895042839873722180108226614257728297704006493962309939251036771709198097455635519526970642693605868115931597984864966345743635495203885058748458880569554118614830416755797974791923071764221062648909798415813732882605370370055877623330562807055773767073185039201293428062952070351391561956312196498769698213141105941149752739003004338165893937919091498534609464115216568332458529609177911697665520153204737620753643362781943128614150409276813452629410894718521948416163666679744141747967908883329527112318578491438641309657400753529612131930134043460192150760947039578867636592846906373599589220663427990442963831958472051180825722432001038869919350976545794677571287047280270741192506141540929852547975788883455208566111439076943857169213616599993102395000774889836049104749831382419382110059755064795959072133197625302834324667572649535866320727741346157409153860623101503034214737815623067201466254488829285710109367599788157491024575145051901397842930891991987058235722869061548351947549994089313570640383086924545317202065641910683079672727067243288183687925625671588294188016731238382707295789505196502038868841554247405644742093622838852728127713090717357228711314045390208734950913608091479333269468360840897590348756869402660577324822379125769387063229490331973638863003032035703850572270349045107849726810739998564669450455027747293407685076821000845885279532098646910201978595837252598113752926084550281030676166523614850022002936249771532832874775550825968295326026403155939542252757994281950041816353671667160931582380687031712764588558997491268158725557869176754825009844461788221835875941294058119432183550351727122559290393990082296274715120624633285795216720943682297315251314632006290406110226860929708960985497948633083567717703654611606502567479341296207932670921912988616024192949277920011926880254741135830562152600761817275800213872468431702207377451939025285777323164006642538948494918542783198135408558342632557232751574635957781437969702890632426536666732126431541361883491314990895847774531005302029690039779470903148014787122510333928892265211346980173474316940025323442712504560192720352145198081826115024076114434349883081296326217488059106018249336608688071168093932544224034059635903464016403208866864367919755126322013965583057271778006680369756686642545265389368307904525936251602017120955375589236526545369290670091925048698279832525018208087628613482624200573165875123856840058842194280942151736603020295082929428469776433524455982329182191633366668826034442893413263919065374302842434020280429557768487999440690680710837978595368964943938196875655689022406487495896025635517271867008474409609638551313660020646286026450601047409733159278175338029363888294899922717859969668830545152374471431286326548536085423059600498766747137034366900396035417143802841078339790953493432191246046262863038417142306782830657927152544342439447713628547902095318184263250163785323071650713344652821817801851550654457088844246680554269442436939746334423732341830485963350007584734814254098954445532861432306063574121990928556644210825399704266748504451646436364076514951721832634806986052765346800296635132882478431438367541130985063704702805304722752088090543642530493588247986319784152356589427267512760377024277706300773069110629908927428887802337440838670366298306888220966588522618900712347543813054246199297944522348303794977170162503752387137581759277781227261370079951958385255814997034960275806838572321658372624550514233832644552218685376180824046688073101989452862644510372407459201695290016360621970993488254431179751080603528335227670441953610893644728995933252844225255941919313042557231660539985794352073759618026992677024553598595446048589980369235025812070395216597012691107564599716593086575004599670027979303277694939454008508040349119724713912889574711640770694855168631677574542802226973158199767870747628627994664632911313019330149343138238519669071359176868297853674363940563417850908512426176832722391186372376579265464281156484913350090720481176326718480709183812115425747601581284073054454554156588227271418700227046729906136245211488775201594979295739829145631362175110064938743747925013636256402890405787091216451126487131425333423290176683167715239922808411457965510405281557388460466774160368704168604352400182619572057308572730655423273726768547605120755049283299479427770599404641733249439107789457289304775996383992597667553311266661634528021376782073799856603146402244508024227360502878701447370631268246314613637742154627744269182051412358244054772863199226034761748884274240971610084094153912691160897971258867744542844071513509702812332822921711909317583353412606551211786110507405857362794324445446453915484838317309166904910529674573902715209084687811783748018194671929977334142041614290672137368904193986835386073800395450380807544869329810020714787738836634355901671248738606247736125559810215147677490640548956149913873219155038360743078005129602239563949165139660713828269570217136022553488979183597477491987056629608694129677305915788136863014997395567414960670947119484907541010776353969667555303200149424651507115114296820340819917553250636958951366300450294540872553348249421287206501253036019816991872806595609380923626075205335028727659031377286271897418216993630787703152991856812468528384771316784774342769481381825523370219957758948436156104924189650366377859654555482413231404788578239037990221240056501480182674420451952968077330107898125773392475512478886574945790491783728498710797813863959696378606416861485770427783247957112697934297466746728279904366217138103632499412062766496350742186641585492265136263754210262622996008750528936794900980485246780679585681932140949292915938504218784964314765342557722228446688921796571581562918886726675053657723415341559762859601669695110526293994629696786348474451008509946881808550128028572397066163984934899351754584994792087996531104156265496163054668546674577110458163924002975823190057459816678943479181200099979241580391570435312010490342769821045313489662147483647090526400478339167921651855279692909532761893293022158402707521174387961211826068074489581448514788074948727163696594475321090020958783248062108327490980178954146577508807955906308057880929847954469972917108803151604624210903549235729157113664589218084672521899248826430024013751908962546843645085887264236819999280482820248844259676958969677510175952758956669599102062251815456810355661897973819169349027330395918359598396477378694447019839193065051151131827217423743013097971911508218649378918521881405717126210935588840090311826255212511000073238795782180602420860551934862750540053167776585106720705261830013957877681646196178988297330007680878582106686648745905351032222102778157918121996680380856204641194958130445239946227104644326647550397208016001188296148835125068921277371638432789749354389990474836246285876581485156074643984538855546723105319035929886295426862467377625269707049146703800720802403333427029473279144544877985562846709941190190022219638473466433806323474071908764005246252890920417701646107821101806637172018204705693364751629141369266511706563021216813238978224299593472152669914223955871595198629288808505067875563311572057320606136808636896847126317016786067463310772150429703606592651357209447000669307595933757704371944018562850845651413395521454641467691262060122751263075055397922143349560824927293479988448029926403534305161679510600795261588687056640648257108940541871931726793810966856846737346540415523244233352660296029902585019470981953153333021356175880262670951499598483817532204103681601618345396408961794362059785278985703192647935478733860931990535581423124128317855695856100477532944911311665009621323282664873023972288818495561132042635767928783183431638902043782026487089799857050811519004192379612278649880961187412140714738212497682800953251817382220399144693657194402896832470108819742262140502920554108219224087083969630287063884354986727860889308212022120009635815656098723148818502925547808966076058147197707431971959812789766174170339442475389804382694054760453204685030974109807486315795739446124472503262950712395114161825607356406774806111094011531616150208584894084148191523836372668367528939973626511503423802367512647378649638492939450724429569895536948152333469033922500559886916093593691673009781017136701175994427027640599180820015102740872275900422361233918996322493668074129374598239076256409792750534676090977065008701360260973243663221112259367997145984313533787152897117104195870183265845830164519197250043199698748897150826166872666484344228866936342566104650516505975433718913316805094910547327978260773129516850913323648643176976894733886269942153436756136696914114657871928992108301575426862465569155498049954426331414265282507726166032281048659127083689544111936477951778651093587092865350391554895877802097557334296808601530046362774720240077531824384438869839611853881408613087987008884248881585248001055768187761423107438627995676991770443641925988150472766637755287201507842970037139729094147195319015856282810538314862648741793832924081854767971204292356158818933611542308917797619584778323516806728535068905583947184695002644322029781665164256613654168969732558990466115753130921770633359760735597037737591700606216108923737112597478173092997837835667046713301028746951573856467094574904000117662721565982245274684617112589461730782798996723746007623826483675509412463214788859238519213335302558879278869199173254737600426877225353975790928154996630032072036290219898283028991220994284228149812613564202974014786664099351301946247127837885593166142109971631728012648671973725992780831032341265781794889436022338120219437729317016699805478494324389774729055205501352624180796450016313428209586256723534103095481095463320448112864437855057848090933555636511960770849575397214763447163668272250470917537774853460660867973073373182613552046520625714587126892700663050129168358821861438367789167717143063341597577666039020197424369203995622555582431361364779359270724629960433474746320614329623592685302734038294171781091037756151123104224221278450811432652716290624265734763362451195795758944073600788688544593370780045579581643610004312517813864949190588792639864466594894756092917147115510634535665984448611571457111782804170498446860369802441324969873958160280756377054068378720615776178495846962249469480297023590410609734976047606666885060726803464541113735864187810147947736380619714154631549279161258294314772256394837085626298590072604563941204837886979385592627686011762545615998497932539112365546986959296539140259804354687481026455221813993480557519462403942265258973104180370685337710391577540196993398006848417737128391819132139290580621389568683774980527355731590927023785175722239123687852315241653797096712948180702158066338873470313313467516459952342310993433993182080959661768567765859445635994594535552145778533518212634532353118645751586487418555488683000110405848028454172186922666352149246322476439436802452721835996427906090929949067244602606859833313088138222217033420957521562519788546464679089043125156756095616968273501921835409459219435769201297400908941612959148205122688312205640221490004447332694343028543033321792205537689164326982507018827913199799369227354686000375901419157331487677316040971882477270199279134002028124935046309678918054101018618752999418555646919455746271559531070951552408769509498651263369157801445156706247193457622167888154304127220800237068652736942703962772597742608635062437127987243812251503610614119312528964071810035798612302157936613385033021223056413355720792786584724998804948656297522975095085118502026916005853149131281724978723619356813029428631394013618268203808234541620708636660092929275881508379005908095920590489145495447035452319986424249343080519548591032685142365526440235812516406618667723335867673529470910658108097924663068247523254352521984342290693240796676613282412707471987283887655951120871022233391489091313721721416213750714238231935667954778332966316780355619683969021170479369580523501881406333209872489966681718489920500691206607036256558005283293201912601303897806524586307192770595955144359180617547321216567956380429953733370288841179778709675910284592289838511928227983958330019921954214701415031156582596397486995968205190252187860692720251361629402548673640522861429145002552127402418186996515129868963061069321737504086322237534029590257413111759039132470219150955144262024470302005893920479439671783598300994458250176283847690859553634214683405247142344727516904430191078504710594703402342174742704533728737353975993106244648637911500943370585098171580528125736980986089636171753546243442546286045342465957208409408892084532123475964438372281389832831023859765522667804091472332879734583420427371419551721018085971629792316863440081108552367278645211651292128930774687557628955009811726657553895343047454496371825884017495248109662446989214231232676996729195119779203745092030000316520280820361291921056394835667191533418017688027503544442976160218955841645284890349698117036048283473250106628248520572623479049150921579781719244125194427175958930894226396196428928596242069002649091220607767619029794470372336112843657793327732721897663872927272237580911089053238654736726674020172101342055205282879517537282693617979652008901983387275774196026842429220668574736897482170158990175573701358892938041123743068044992301455515515777708181248631808953608141314097964483150719953787400474897652368771397512611174256710087920658098100311339748026103603819851036654631304404494719729270072428519698790213923852107980866204781646937555157016834407088064023123189080607486868891599632311113391003864936569870494466743816300389679757891453336104739932678832502082958025377400835802942236498752772324689524469401168640862420126385578744878179725437852958688003130079480381615786944671776344978270207761454216491112759779031154256096736972003769929723597358165086248752832856706095767116901783373533403322521240960869012228640914301411827003663419299034678364707171710152643108193354489112857384445760858689159184395106153304828194132816692588928179453216198215315307118555040401607540215847025725269458948020720466067257958384011211296459497843463414536852778124402818285046381346047933874260816765033368772059058993592423462816580157749433489604373998456120642931051190103121913613374443475918846887915864405558212798894701472692560192003153511804637123758211480087479805834632923747372127221747588323212023984188967039707530208531992572888379274356112328434551360272047654736046024503126750285825561234859628786693840242733234731677495975352807332280612921855962885770089590420068486708102286483560835121251732626828974710123273021500019987582582778374694184248757564776032971952550929491997787237704794495631502602008220496096511753168921742493940535935440060557758143437510901768520350150968657112648142407235669480175315623885823581018913512168337951930559998874355106141799047168009906144313518540335649939787385167342472355571305583202216433933260430198285557671084504288475918990439805478171967443540617451202824677917649991919906825131059725935213837731866488067348783664567677632381462431360777869724896213015658224862947390991980280900128116486985938617119981648624228825082531497839610554568718733842345054548861419576133713177961852069565114444601791039391740710884358741777001460002882471410168127533916619962161919853460299964579527348406824365034477150126001233431291891837498447976258795552349047311258605119404483501117367459148073309896735116893682767615583596886204462183942662040995731986537948764721441251615253919039264810325549517873415208875903554207711251499715835525577013268712253702666614114839835655933468660171976046444177808533959107254113725481209679930667886038366004715316575447836203345333362093894533759852659683455781433056083316427548200858348281657998440721731860672757374856195497848813272401575574469555813103195082425412620405139358052866381828470326377766856153524576766303014309611418521173184581624068615105307939242454707749194561917871010027895115608349895698116469626610316314743386120346634018927896945713978868216343603049250767755062217778489204382374845636055519710907305825020757811030206053268276405177436832161711630362088014516661543964638518873059426250574093080499918277581410004254118393534017797132546675674664253230028134134518098620618131498241349634618292922603606927073204561605536984896305313025959201916374262951125670367557875145392418840496729065817029912906702007988464809229237116884285583227965496429042285708222470546924457448287082544655854931244289972015249524665678394167105336692520410876795122176150092406522951931838866508688755255230058619917059513037039662497727233096156886456964421554404285045097372492619900645323288631259508848389593424277521271840537794046162207579742144827558633846915155289522227784457714468676488705330244279504340503104195729478527858730299438187068827620471255492666804178441884420027502049331728769947662823032283901443693612939677464630121158724356701391385681923617744748410328270131905209036924135403097931831093343857117111639542846793213402140329469327084212617270009462985735237757468986701451445709914226729976500953969456057437425640320046709641969730106390297638399081165435689018074391936503813497230390882885158226404204052708114404778812564357210664232600399667026122423939140708205577062427569073726834099548649287668040243919764262546064919685607054854733458026846803623803083902768839741484561449185416442295520241861247338765607144395320234967720215891503721242148540256609538755946124128322608838710036666164757539517612346159654365191205579694661975296221426123303098068269052462225930294795119128379766630912086435603372649187508022005934120175341299485932145439064843758765196680470779695748544726964888545688454621729450712799040078538810896641993734338662499480736381245482126117014661454549526549220909999506341242386085747946448099002181223365553636013656404993385165412673769761273522497856653097876422735194741548152383667797756292973193357208912683038827802425917420249708341913981644218089685773629235924723835936867740834286726856076937820242998598783173892784768848742451660037066132818521624055787041106831148090316507153093904349097126863617427637904137163460084423494376074213504762028857340263138947031967059787199846327287214157562450246425332873837228956619997718319405850617097951054020124255961455767674849785999935531152865901174596496364836883338233770275002230697008496877569711037721170260141099748752920814083308039399367164021271721654103114280531151751229616923237555475696861762579469589933436262313320198108112875023570441567313820041013428967234369611826410686307996781896763985013313231740805929012064270470202053972327181018650982291539510417182921559552414872471029881737360047160764612676324357540814394288363006559401416493196054641658214726060590190591648144773220382544198088282535131742023815295275675130178171466032404721024829824071805765465963822951371845881955977649283704714254526364534844112416702611164363466949218125491528821236962741920293073290769873277496326398130237234303414778239310497491530265199291011328246668322507050617492730394529840392398899078773341323114221653990436975250403281599848983900360158698633847992472294035967302388546646745793042841471887685003643317871474144530800742428882703059985046958255487377424178041390804176315038747199088416906782144356484411849412488181776113502521942287973031016312854796459181400600652354676067839531746296185715532933232337726359744591553444171245352312423091295063854748141420861270434914601226927675314313156069812643678603821067541705949018362872750841781164664382039937414096206642616962263357927199900344231181399229246628111628328827221817208567536384352979729307454471232925382238391557820046088904498114899354515800726532175703337654165109249518117608211227647826650556070250061503685527757386233938160624337066381275831860379414582346382515288649463110628742688384791767720911932576779501629033738130386308619175597631802021542746306870563819854357062557233884337560310462688928872330844723390710911151188464821286880329386062682261659770996565425556685586240727033111381691963755816975542350552729454810904221799648905047137264125954426853583549192289234134156932362712525505508092278330428374923518083441373887008919127956918704627751080202640813642726069526300609611380805276148813070599382677364842565132323315550764248495910970111466043560013009296928752878341373276843584265278039347395346689921760492473370291441230493356386574695289802172301161834908869698858305706279614898841368207136279984994987142147478552331349832794773774576969599771072367472574878721953057095589503773189847713491546702812169612282716410123656786872951454578297611182796649814787154679828804940565356221433653093117233759417253528267903032125779460712869455890187344306892326548328670941388926733002309577191632190346976760326163794489167461233860654563509898796331917596142449807875518457776419067906191366618623940866039669996634495157784154168859113041661975476144455970061489262944472296074334360909184143284935383499669303990314882041422041776755065657399582419055771213514393690113461329701160441864539425270844776281031368818704912314834894491577795383261207008527973757556126839931143076962658836255722735261629862543755396503810465443226278063137187140771998743720463862850460142396160625551648306910709555347994064989789720395126825942963317527048320352852949721752264711704266143583456908756967304809067692073558746550895543875357348986418627783238618532386549744636218371286624770754481303946112849688207151013537764692476709945554020303430178403922884672767709507200222494626444605410835004860698078495426531674937052049717534081848121888225378343200040641938641099489196505612117899816951673369172609259733163493759046748692296619570972311011698244713546880331682666048538568506053578653443938432234523272407787838886747367702091176522457865257980803063536470270151772597301602693515289418848012675727084670016487752115372367423611082876839391866407564302406722825272203404795895413702682823835716184710448597523940290601059803086809787420055386265850456484817867667085845224592386446381810832309365174838433946892584510747692460750102332547456678670239486840789203317754490579165076228509162243206291085123850758861290570520094193899069411907424388368536032802294518949583831436932289936271607006193922516945291636423693463161141415126639776188390978208738737615303784950415273459775277713688256550293336779438728881579806663814223103128146300741261038585106232104413036164715382818056554733878576992725882581637434844673337403274506523730289207975856895650343513750932306568481903680759410158521990579377939966819550374801011036458744081198897549933964465500556629432344981780068744600475087557255572193500431285655008283179501169452351142563001356981947024879765456466631242509795759240631042298574508592564446814732278355253489968886066525307435719939430692109544745415053647712259607696204337091743595731083959925177844623299369702296708301701212130674904719612999783144823258313627522235678992032119090468001928322318901264924074531144781507149393378713626122510479917260711497517946905520729309534595345220844846740999097343621363341687420298899467704667729653239591818607977928262579395592308229864615496790412392833160596263280859801087153868070043824333908901810085384337379015669653369638712911189594949063060634283536408420232936694485552193924776025519861520958426482416509912240160005974548408723825202358595574373420138808963182800518470612265886718582109004928379253190083248459804585369457789405660413091084305537262312572428806388337446634043144142470083786504908217425452928686456876640157290206325773159965240324453411206212178258456093397727317798916784922118190594967719592951678221185627058493162387571239517856607620867179980642803736881251854045324280257899303410867538989240502773030299612417959158921118025776129285778562373368374063769185647460304803822654414499660171914571806796959414375083733800024946654452701995409972241599122220219131135561063679411526196739323833527930669382272831920616108619854050541521038927884257562641956879135174892468578234039579510983755347174182392011293242534272933255412879411996306182089995788952974761037518271505395132628810483775432631293117768903239206669697489073910642593092287598469678182343505919301953940869579767201549269357385063608305663114255504241935736226594112805202612647253686443160628424587336795293125215784515817252164815525352524492929531842853651613691369264867190900297811116793792438141710669235275906294116674268118815187561169785308184574257015725233259480838894361634628614931214749319850892593410944932574819481724123251142486981447836515629008497990491576980439160710518823709623870477837635810192938023614816896207698565080314000627387536570362276858730589911153158423760342362845856634763113384158023741241340301921090053133358843342281692945619887323643365676621696315254887245502831119216798373905689675144562025048433116263514725015261209081125789563282206754056022303742148283473194455375575209874194065952967622574127150501660905004908472606056272955529552238503178069183108823814313988096597364977947113745835819296222017041636964040668339257082148577647361053822102011822365473116011262097045620947721904472498817460379427142619516046620887366272952641841484736577103659035456014276512379349080837895436303022356229740354789920313451195344250407885981601024356575220031245205950327413471045506248173124903923206639835011928117672014756102521314483649471170539701850165853407895977289275130238053185936825694047420872303898395362928722189688314474376706807101435762044064276502561273338656991562983296382727780363074190863427012244349309540090818450652422815270131241999901998132825902499712845847512966574099452561592610978453285099755117390975278180175649257777592578240047098225826100536879053265066006044927289262781985173217414970599523893561317699370645411695439243216854626484008462691269206894940906834943262877417912752394017225259628293933057839202021416112591428702973679632377278667575079913757749709806416629666149454499101391587051493174539956954707223302317078175498480796243556096336431149799914379574218742870924635536203705981506087803922938047790293146404353628117577902928222937482212484183089886730872570943618260794150665468561632669525360653142650550539602264611942292510399880416155296167188748875685081741262372485872966973563040259618961532086848014049387097826870869520522277178119698086337800166374313302116399060047414153036474968204993650649722897781396380723592675398646706331342514504992401340035617841942445168222123954593079695083909020670631701476101007383923868242392425157778347319052826057928955686226390994734675572225246180591568014032549140828546227425322999200725559881944248193615857774251240373248457219470970165116945743797747757241519732850367659655602747481789822919752174568618841685479405767701191541016826226911231975679395673439440060494164763971947814341593463432048566064566013765012355519600802557297901045007814060101778566501713971399400067199255660314655153267509015200166103081275515283794288560933183043370313584559243813889517688156374684323279052093396903108180873502093255277483416236967431069238994547576781662527223225227493064888261909995909457665289338378438099857525157247679323769358405841320161675368784325543004428902289654134890716233338188682002911694737397144126722520496051288544512964076742476835241246528497775443783673544093745764380220714637688931568688682225949133150119349527649723163849250121121702634389983633879046258958942249217027430498346542312075200650698055094936089469375206178771680214769532161582392282860444848746321705194347930055053351335453791251759264186326363308117894166614182715658085324212898144765923686709022122505091875461581512048559828364127255137341536792593282403894100896050650536308818923980548004339934528140470294836747577348616451877400477755244174413109603378816362899699046532581554220560707443689147098410020496105114107699380897533599046271942836703369140970427166501621706314713999657370038270505751925036644349621803131219501004809964903904972997896166655895865228040383333721179924856857084071131115712970428387440444876617462112283146254645337996041649453293930638326870801353197534908315130816370152744291387594702085500486653686934491553871506482481287640612158080803105097357086720737492461468698872925663920571774261790862225648127669988205521714068945696391125041407816665141700307058871322742924691490739749903622545702055954316619260000376501302767807058223318403443748393972564359419736569891771361291364540364239375880884733001951422038039050993810464759789380640427231094884076554522676027748580924483254205447605840256500896578839603337552687975313426790954937605318360335137722858351698087673774955963811687816378814908639872992968076801857545337978980043886518875137057035447235719428670827353924344602043063783732894610918609994773086211934349773152749367644759743885183780805146861227084316102683553646338263992375780720710940597020943177078501519813569728401014513031591558294139775529631172643686396230288299604525711589644387114916235348467323776600854520891079790251643717626690893725944295830829675665658254981188851768020570508824482533372695647638965372412740517985797509784931930923638454864861367243948837859581336907050777064773916172974798748693816116883537551938610981903152759753063260700118676043431594326307376660218795601974002234449954977236046491506185218782925249012853909751061060871471598423914524525710749969765411982315181766736251847985853925375466345455144257214440180718724747723511704389283291947613530140708893988065826191156985546727499255516148088377602336231422451185357018577678969668873469154468189246300495881635355527200366606989362729540836448785353279096739922184468910889146012438733669918581056521313824759531467507573206227368575734934663534270495551473237433377794351333199651591926097565021806509398850468111714339365101608426643061736744335579750486352727610987978973304906617685527056453256359684754030106514553497848693834506652961063377700101981262252377065641421977493959290626282219191982955276049056251486542516372421077952458322492683650194376676320544290063455328789066048938109945759373720647372193151478874924991703229868158152812274369705199200835435878973750648385917473014877073929146547530012828320963921252912678314505389141024863421216474603225408812865503730660612408252509562236853880930147967746949008283963778046455539485293699049407772120535077205331291826531582354000393512765679914493343895565818821396886603133401778007250237754410581932483070123367915454695603684295877446264516595392651899053111014082501631982408393148327785757909060996019292585610040638734269733235953654760047107212109273569959740369730525296679843814893889995928148233253353974446192114042670857748415036559826178558748361597495914818752130034864043779914134370483055230040246935387339597182738650451561780866995033576219772934120827892567771381950419441051470936753097311649844071892473222317336148991133876160694417518785323236190094441788283846376930026661581809816121665489404665857604009056428707223074283159849396437843525987606359415024872140501876212267994776479546935805942270333763854117633641268321567231235514210569063529873396101407538935285414756948839158689540085978167042320064593121643261221561037752574493947350440895084076855159697965601603771467588924561942100407208115605163791685968709157622160951874141132558933086650919634757387563779088824053877660483653362746253096621400802141304926357241220654541808231561698227416103270812285467498705786692571812722147502510863329302339271446341439363240456433709744578171717718396236217943340829436748438369105005858514692926994800475514074680645605692083964822288052912505163683517181357064248507535568819527925917752391553646484454976580397784337522192319854764720630756153708702575587030665865404649934564235502799585949045801275483857320349207649097268415744969885657123015426027191360674574263887766112011373612850148737969330638236513585638155081744727858941244215581525342284437074505611361445119104826328348055762394873076397422624712340310965223484117154333131419345111435253534966539134132934788088259143769478066288274137738506891978673267697498289202459200067557114474622456831134351149986570374027693870018073368656985699070351296248527066091838199650252300103461609002280516008992475069020691064803310405415153539470095910166084219239056950118450458358937074889146876715408893160239864127118813978730081097174889984025741965488284151448772988081483811072266218832991128964031367375773396811815524787632476011492317129925372276380714755496256913086210062911336282844258278438393358337513535772097116162560517501176809164496883032638396622545904552338485343014601006798515937381776622193224495761826733882581340330485493216336461898088599337916394026212904974244823819068727942026481631261872360172319926156622991247664471200840379781222172327262872066140986729630055473631468343546597431767943292693160266938105130426860730235405300515435944951532698972479094888730333120691373103077292656012530775428364838669128727994425873778664494293066985354196479455781548171597272014625912585742525380916619277063328116543993439070392972929948188808002293301336568987637746508277901106726587110697402844344152497050076128671013561595918625985019421500351948955902164228340271491504377923390857147939716383188738065055141383740361545337131701237309907885510320299178408027777736198918341855324291081301035389927522364846711124095945688499903301230321969336963208685963433391506182794725719098116415549062475235775275992178657672077583963427651750181374176115846424683870040449531291710362505882517352828738372643870982923004888027764095243062285413918720108331438625651773591431140893131387295209898922901505473454599597851979760418873271422157600437207648319323595804145240516405556469755820665690943502895875870528872904939298006731053800426481181587440467940018404703162744883180046789028605308754235809473099088940043218669653359104053847107211013164460640673971520266000936047159484480292240742800820435285627614640069415519318848395502346827511864846008358334688474564519195958594478081855742618573999100436945019751337154342284027293470214093352309017155643259790146738386087803534056043191220473260281221858797148227468449001157258464823112789737403881117949907522881113581746524377593395634532005471567903150987806241199357820336892775021052958278868501026540862372633966271082066558502979820233820534106041530499150589001747987837585801043756957962205800755406940832759108713077436368246893515511991191041413348219070146488491958328834310903552549490003270235446695861619992869465361266580316992906379042870477914683523885242182497590625510109526723668232364047446070081920458504898591031378997560208284294093727532443468116112237467414707704163335053610717552530434407357329925280426746116511447288584594496761294731557517195223508118576178003810709675992942577368768142255345899918605703896122045416966401180485702845464326352044822399271499226344209793717174984921190806982449453005750055513765407003563883029712710160069905064461869725346218253812752500562127182051678825611174407659507920371772848305051011668918489770706607566957878145818398836331080797566889725872463007095467797428074209299373063783245741536765928354442478867477245968458532860780944945378981838558797311016688426083406362077229058367232259890065517146774770605450109808635072118673500205958501504327732512106041945605432438487577091939346037587869406271207973461911088614435797653359901195620933148464992387701575881304584955162008923924181116978827072740468988235170063899420546035289513943272306785206698246944787368813676296411917526382729737154197503913169161830124502555831623699997921924899336361343382784096310435958426159621703874062958826876713512357343201594041979599418364492133580418856756551457479531109608953640431626595656476672486123284133405758415985823325047690465816933595365877028532042750839219583082577238040846726562448316561988202869192651038907812377531179669134559640044245425762085095145495234634422193868748269831055135006854480226000431691107440702520426947715209529296111322767687498758818937749362013363681925915978761354187275029713630665256699956701644354074502593095559778885749499090722189206344446903838446027845229227672644368880096435607323050596762072098479035364431079372589542393035471961649381932511470020208358692477672456205604899451755714754335858502767363705150184449082560702494408488811172752565125133171142947897006563000662557624937499994018902722095316486661567036963868793161832409842178302907050709856326158683204904407352021196688409200266939797815172459982083404698861387125810305251492107222055047501438687605043565928128762820732853433965298951613437066390788623872065946041482450862565585112670462765715487214841911671972846985259741255838448758617277708276414784393138582171166514306718536895239333785543339897460529746633424162393096375454105689572794492987682655023861863050175033898689536148033724514904832026102893682953948668976781242494560083283491161265794375937355893023471455437652387455526334899861907522293685084679790271675460821312471149663876964971252577404329227050763362886034496327040939639097159168410790717007654116798317003652600483709992715340969373890506954650435881773583349802761167132217182648014655828526370307646171226774387754850598443917744293851652380387932691397634155862732998420165630841054575770609108439222066576463448111920098919341574590081231396847047613428303292220694208349354073087805755023174551766770812764809041290900341875825097448784199372416503242323443078844319954461599191124093080889058237291485269561341897714842330054861494327686234710218659295967250031784459690369182859390678219220561840345722911465768572854779246882787193876517959100223393406899969172710666002455851131793456868377698044693643500985872430373441675679952049915946690654142218576167204695592848797514317846249371618284782943410439131051915849735110548491195915753387539207421423466227036551459909472372830927470238032696815718378727974879720118025006078162632357852379448138893823215196306104833597426202176855683407636670820264079832816254082132174588184547522899459283943436267884143108216513926185062490772992387971656373170655811327950520504291084668533039584996324375306852615674639011760693200257131649481298822022512040591959701976883079888017721048968923660958512472629767370667210570735830435250248551778157897470206723772085350441343217620815700106257197372058505979795906675900609887736589022389458382679865306007936915759584514035242748303654556636785707448530929388482146256145692059109643561812299831915777959907718008915241427439800967243168215790222158093991065482820623469971434445852540250620869114673648499052540841495870559064156580700562050444604133061671206491388013050407299791559698580258752249768006557946997402982060100830735042119871719971219806662934380656938779314991702106726242087292718687609729695147587424624408376656132855127450241140818170232150720453059902831622645724321839923815492677728861623568329787782103177671116232836474749618598940481765682069097050648675462422076547507396766156309949415015305112673606639557153779892157000198557164095661302777412249128741863832697039283684210198527151601661988637755622792641896070736831704242227770121175429909542087949630463175036116930283284686480358167645571783492760103066910902858292958694396374486370368222009536027686532100530839821916271096316826770929667746015655299869543999594015271846937153625273716972312768079464470046999819463219029976119631814540094645833552923696238737122889417426598978528671879702252548364765633764046745987299227447789165391130292861678871812736158315135528060895022197751172336886486059346184455095971367571444986959938213434598678550228143515988927785725740296727857167962564441919310395053638726871069030093837190769134423252089093705828033882077426864983631396017149781514126012617669835748031403505174606941259616521260390680687573564317892514944148792826598485355845651239801927948140778245506075051753329358212475273797774201410079872034386352638849389096908148957662184775926126442320273693675159496924524809098879970625129931658206892681439136576905549364201091786854406828135626991052318799472320637791412687767329453121929483590116818243642687300928554683378665494974910915567581324290187054318276134652111925079734258884451431008966520540632424048051619787568272372409628687634418024365681925886679327577564626797602774573100237020667163901656739621678574847996590417172758246157407080976292764823015484947591569713710975414297763096723805728438493279834678249595383589373876123517111636482132248808669894640929302199169592225991967134548490456758041916002983660267865859897732864247440443876883792491370346931875343125551660137116090770372246833409240665486134695863635343883797382216923350290366027643189186581834528718668855562556145997661741697038680849661709280514073637572469269632548087757999310694465356369129883901277708652094448651243862282503897392951564176672641802466964045841380350420315283270463195899969735999976377921718911375936642013420883657204101902252197724037375291917994070703625182959692803066304358388514878895441981060395664158885991294202214088033600059747637234015165063591700372396004865673399444791584621230357224595838208452579285061589467681536631025757376474263713458650686209188163014157184444776610521680778496046496712798669974577320939152019012033618239796921515979617273808852091362140993182894305906428358636921991585621549345837044609548072112414895608576524870315247794976017468996917056877621976455216660709350771099230135481764799402171525108227947515745374546282012059906398579979244499145529095940515085850386007012591240183822487769139350002992703591631724369302614585630295327962722526448590664725522207471451710496149857849506416712150771554220448521885692600549061717099123572815996804150920448461550350895862598476702763678310861731650743165822523807197705954521490838765227940461580580259604625003815255041338431493355030018388439924272954730920782058187593079315613147049388979866026111388424777656626187926637819684190358384094351887588018219838946008231629885690774670971238745109870728625714720124147067722635492239027204333537375922038133906046421333765358055887881937490499975001226205658634032031243594282421099246157162610092294048774326502934318638472308762282826529077567065384394084142806714376338701385930294255923283932707786283123656314113181774785688474685447908910790141075310144201054407185420162628059768054519345332260603721258186714966956151164715956093138341549130868375458687530502427767835272436711928582707154099073491853430458898740189954366763811136257810326696605213641185540474775657654673037575181568581731849737508812958335548470871370631653488093306550274270261875266986327208684409352640210116885323102855497386757245242523797653190726360242965449920674738022500111922088531683344979657109747101589708545387469005263153860933449278377717271474397216468570306225815463244564359667177518747719829072739340133691445470627238462259492697315258957117850243654493497040916357613420328904548970715089373331031491838655426378345302386829465364120264624279456094496871416684684140463419426784092093806840089823502431336461280404904201785283731376837165595259100455741814448778159171679341149314272902561246096380227788733461457086007191421328606507790346090674223840331087729424289879274945161910037584385534892802700148149411540744960768597396357362838780554927755404018011457972790179343512895270005158492929702165578925622659975806666777575413784346062639797256324272501026611988761175794553890259236733445809257032841942320563313071428925831188271533810492903776895545305995835932730577424848362490605583997557458500774011834271500373200831802346385002675272612282217088462750772519580901253139527821967378999748308429572819340831726237044081824759624851716280038603969343656703733662859556960495776388450684916513240504374429328739271967543495977498288934570737014241323537326857261914731279790868881382232525307715917803386378677743298526713972528927076267256200155804026003003225574770888245849103205379690309672048942313599335687474132597151481246697684175553295603128679932947131786083825053809890431293894905558603057797090569808777761105214147912560018375630517386400233539451806767064936946269328718191774191253231004689927232702988830657835453040566750055677564701088111359677603491425580046603516093838495835577402191978708383845317231361825730430977231488476561033501973484470146378756571609734190406372761489866151599661190647566774017980314546580041561115275980427775626291648051961286801666218192682096528732575204104206352259902039069513618425548695347613266952677975286903464730068014563735043886596532283466597419890220523020181682444566400176422204980025827555469461854995858269243292000668589804683340680192777866255719324656166004037984203479216440274312510403561807535520886986959431354826709666726251279362149458798978575817261061417338634447626818721236270022514404950767678312289830070937709054415524849481875543368909584452261793735065318953149855612045228066254653565251536542699780575188920468592625954613921243369922008790265002375001748473361791108710400988624629529339709190372599572953930700775965695285758606879228150645169514948759600683432859444468220897454028161035744109010741079861288873400004757901583725222485713201452365349229630987427210124245811158720332648808678586652284369970277852521776570665271875173895664382296323817324685112285090250796041418026557619579518259031630929937442756519794329923923919857511209135395756090535989528651142263271495854871413970442976871123882181041954822192567698738508479358828757820672900692633466078790611987679598618700160579257257461363861896586387763150450149532515953428321335091617906721548953232302092071180457364453583939695816519425517464609111227854703098458530293312263798994371478946363536912733595122638880612565083276008736964699353733972533570198030393134082707769327961812902101394323039449796361010510156105014693475572436189963439247794652638896017971569736643440541568581798453311756700546434328964581993478600870005617772096659805855805163346891606592205335678890164757589421652604723562828388994552480554764949592126526324299994755014563306987436882939184143406549206544242159439609733095497801016580263066718720573353945781911736249633858164992914849706538143555136636311812087454276940664573353038439020635225130524552729124170678919111063951031130584772983707217915656513281427179678596884579943371245986224502839753629916300996496866416076009390972236209607338080072414654449500484986493590037347484635416574924619845899894310000782938698265618373378594807461479681556459063611511568498616737452294761037875712746190565803810767034950178074930039337818086807374498735331171168463771071898829528955054513701977422154052814164122288715639964499509253854943395544487731032387915677807433108826816830321561031165479100801234294122277523476871912709600593031789149780554381037086448896066195860112265860278847686268433043132046209033730382321909200145908160066474121425766718729144352392689186177586825165631552012374778562663387025392838437906506513045115652098459286118793216802151409755475970138164939524264561069115000447394144540665479868247532754707468784180435978982069116588181542593147441388504312052927056181929800009456408886211461952707277636362005445449590601591889967207625281489809344219016011733693384731181383367240912209266911834114096141981037551574403421934296453456927042690415995389894713776286863829776354494014009763321433054300040917871186163962034430216551318933783946319445573409718928679660599469773634093268975798404578514905445527823952735373256178167744073136832882113138293112238778666805828848033773264662219830135343653423185936805911925276000964258396791933749598386078365773156608233922930163227049764536397310051359510066329205069461134075079342303458101237427720768605215611434825128093061104216102742394459980990889455091209258272722536133963688708574943093242924737320573424289414331387036813026732485478994077957879480471871759189934419467166312162277865973496900321445350530966428421878917313998665399793931121669948219277298120677136217764587466495386704104499275651838144090546586630309252221387533940712883331115727366755702060132621897545464410576492344882083974619571938156957599475070680840800144375993455877450510503176938168355366291061006032090774356449302345050836950293169842194398878348078127882667922441180992909247965198692258752525005951643339663789382848522866958892469255288211998970078153019100699536944168009787885187744292278501111123002726996219191984010320329442492633327608638750649186070460396001919246188112623032901718027880543811967718705969174674258755705451672502920811535115281393594703751501419245846533113214327129499614764419019676874001741235171558858543976788457537108646487822282243182859474125304803737558929725649630143201500241837668846552088583804139663235222857489933476117356672943426837423148760453262344601725304442917358132929042861310117083164516282931512706746722119038083722906510109374490078961288101997140416227160321421317196798104100878337953040424811445409291288832450871145795509927986051773704774426644577529889756105700540369738321856265475642895286111688824540124480117695702253887604178074366910385203648036648298470512516932077116037753149864892794546380734115577855285909599074063434916655345878627031099383040937658379956890593166158233038027062610159264942517470004217563515262541393773593945579662133970198772350884048951805842625978020378787408649250179838232758357548584376715852791636955963798533126905515319910447295618628407968894939123709119431457646883791317068878218374934989415414912731355365606446976379670380438590122786455176652278255788252149134208974759649448982562330134444232836415598972287766889552178477488789340157342638655129145638018000756482609824902112554610414892242440142221012409576806402893585135174302450574514018152716117252201452661080243644040086669849311374317432660477630851633825506754429365482758082607728216704036503444516754430970787771791158624162391980950721422112817431078584389806007686094253019558501680449560796211734005219879892844925265484830739134634715552705390381023202794616854817596250000350654562764648212073584139344411812837106024187556585242342971523798728615596490354615003968184676614744781863460673882860957542864641511042761145845035857126135749641120658467461944682483430057503145215534575770714217427636456552835115118512773813089417205754517019377309585804958083861692803088336107552351290979780796714122726656428715875597159738497834248737974058426199236452991896567319509972409092744191361977676826016368607081713299768596818849277249311557621808228558246885515367983859654767548340003396432472149843158885263717894132803974437342307823588296526684930575678308476934492427936673814231758602993036935431446212225433232344654237802559263133891126372746313802161410726078817139903718700745966946217466030032077266902449804278936164777265795806555977482226134536735184382818129844730820187372007891249657341022179020699069894103605661352728768680564993626634980812227361053569432378097733184338325317586876120773670531431500924992086276596059761731663206054992183511743795837092871153590439187685478735693700168683828909989329859534133241983045565983790706081659925384572518148224359006388594512671403040628534375090661601662008849747485682799398097530412465506733003306849847700456179030099413329370598644448052024624317271254008675064819789104506117608844138270299804966423172393225095287339190885289872590895834676751129942502879528624255740816097358632375818844546495763187764636582360741236966295973966706536466399132268842836075382080509925070435589224704531287769348806885803808207610863070777423281579529779107906694294075353444148774061407233610214856763150658393099207986368863738841969302656311684632268274677545635744065162828464787471142171324169500788316840625093610226137098430390402233493562210704426629546053931353497104023557430639209426639621477627581539403705282989133478440934162454970757289429592472176866201776295496690606917785612555752800110355449054230242580517037765254183329159044213969711165127270017829477052631341008918528778636158239340187959622841457662329973837698592466171959823003700140174371334390611001717971582314241566918170053233218217918124103276970288958371809775847719415584117841810432163092340150682872618241535565724227617752889860903113783123728372467477258412517512609346505459311523655063238439454093357778772007763588845085911136010567247086453902010401915902458911132999395910896883632099695253217708062888347700937823027952443509871322850767636210451127388357118914549572218129647629262019228459621344458117002864630243499690070720684768155898303247151788513756429326145283082012419634963967419002681060897810060708878392217237906095387282161184861036566720615541191368507811278489923701938660676982342499207570270462256807636581156052038630142237842419472541419281180099982648752995195936695284103550186076269675142729967989391019230629450673702291670852485834415022241194415283570223567698166769785520894730151233119127651406140566610850988519956789292912964846283548206161861929438938895170083237569429015418234599154749091837371387491014458917191595193438030710605881084052478466957135307581697313510292308024126666043953922161303879009514863651821050832276598609938855027284976794577660461143680245696603781184724802944177422879365798397910838606877802033276458508124397015701876937138212468150773630367876572835998446069705462749830302703590507402381581560116635415064994490420310478999486555816172034529218833192520097578038264481980734911846800061201999320724264706650350456792504424860087804483201424434049453124097966393508987437840486563470571187186489037406632793957834393493603914141262360943522710799551054034235651388947328145795953168089959425374100174615668870404921181492673320685295240658945800995889954310298384930664210746146746771836387517222820413563145486915595524047426151024284786109811862805752283933419579489324635637503117061460804411555950911568528492857932254070488752117332049828321747117440675843359103095449593149288272159640036246901769514896118210280318269452101381006636693624280855551786912535455457755361804229418896370441509808892370818706708926972985389346478466786364541157178033910906424884473278940088142810866057423818220838833256449614710184008517184129882717076789498221606456465334471677367639560307332709222951847362357363578648467107124141411238934870656761587982327697138098210991148690798529493849919627623767567017278217623349548654263360020375699721338817453189800546119401344792423561251592160013073318014264099651681220374689733154986041158462900256423186211029360113746080643020935677443550245076672928498680552554476709485763763506534354832610670170719564152008306325209258262284561009849197968913317086612487157779490531875862554792744572095667862521826524035742236218345273469566086923346913183515522632277793452381551853066329262790815002103980291357685351103946455767217767805148403139624868329675213552841392761574820560227595801089844319157131256308704892256893886518036640916445119451115155322010681287650022691768873956152253492384614490246381189018961790901010572592267900726922367362597378674600731271811707393490734891211488302920273771903662713437534841987023207730791132175038022511244103437005253054993641188466570584530434249691558814081445716547871309059057083242565573942825835001960254885362832041088596397218866164533410429955928567864977392737111954264043763917812862053570663149709766942783686555771575648148901910647079099622342998918341414352867779376982690351163149084140354461872801173447152913216164697328699238836290763961604548897844304493551134900899352103292565813066129503448005592599063063554284091285258542863848704484818779362488077375650676427509096193195933343122689305158206287543053047471494683289159438510081546291017385655333029834659237603799340218754391637918171790800218775665827523524483608306153655938245362000397400152616641673853491432013913011237722658867945901537264599938722021608028923574342744436943722015420950355931102311006922155248789930946835221236888421060889896006260188498232906262472270252279660431791995596183069362334320059715301685593207879426303546088886272129875357745086541913280755751352089261329842586802078990258665221765239331800540159452834524136674071574598561129262325679719987844244647715334301990625928307656362346234830032367084903693685802713725176467447739778431195310776830576115109892897388571508333916659988169404600235061769908455889430619427084008616507432475014871426509444861352207494461065559242956297983666653223923082150609521531804880688687230822672460872112108793959065099784689660389371150212208209354822527646517527541211133746927878035418038681271161391435947729720289183002541389392808184944200561788956156449268322957927920394989664030829470094051074197559695248167360953839136651753726339290939392646234830498843827447832555001119488017122448837922565592310992728602930804679383024839750878517844777519528116263168269593947738052936692444517235258782806681053964659577927479900578777324512416002101433368796536039326214016560245519261747680271006254115739753675879659772400696808153747943040139482647775136361693227256030089688995706979999487476108778297103981976989858084200038579108670235908579822385267673798970949078371985147882294280192242910901209796823351340226805137092958873989047970427407832562645623474020379489210081614284894934857608092077323303932457121654292234058110134370797215953677991016568811692865958510412059360015084944948198736266056323097703179760318699980615189497727449993219476496080456685400777075956559235564641499194021192630002276035759388751373555220346906980883728645851081591989910113751280194565205605920539156897929237323046841114545242888168574632594987441876810941930921771102848403430472885019790672264886015154786621044865936936196776139003515267463695386458983125897300542597900038964517551616622201028630907611645658342671364909066274155513874182902966355230275875104183048377899352201461574312400438242004363602717761693576114478688056443813050036268646278716994880044168948670281506648402770516329081097243692050504261106387583665991215966507203133338114548011285777543004856582795180630109141804475013075085815270399328672656590340010551414788026295270285011806696242740626828344662735423081408774004013182161323943170828288723877030468192013910216097143922675047331412787048189405508021393812192065178000802594054161017281515240478024434723587685025995329174809418951779417291631373455591671163930505047640556924491024263941289802595721721318345944224561302302875848217282753360353557482608029509969077009197148765796925106187892527352327630361832637489940252454800390321178263237057373026947871317530978778040652983060760514741872140965333741333934137529045753668600150531227674094120275710806599971992083588623815573422256232818223593802029557847330002570491674262287725719893964668960795929941847638760814389436783828607932641188186481214543778335905163467505254043102104630294999869929624412881407715564627475940551761684784848800908792855930465908781743923538757393694886809670781694517394524159072662559302258978932099993091133585738131962288760272836372310152613736867258570120772950395126408347681571209818988878738762911274379551281896330128442655176278306827316860691542102389670888705716309825497418143647729253336849539323362732531726884817621384988769605788278304985343656667433483976392247789535094706326222380237043550548712744476910482921116078640121806611206680466000199550185191243740309272718586212174726183815695954113846790071126704509864041219512466000293925204750522990882521187270510696259093140487344087185861842442125425819714738864367792227748068861111663570883016812463707406617913970795058622348942319906873886871063974835948186916609960919177784614104910021304279524683042713183913287517133596732346888092257320687790462752877236039687604653640007573547195205182829668525176917790226989283251488913966423938274697706755328684125729890018395394373775714419926291719670071525055547855447757379415536738140447163083400594590865834291787291746348794530160664082553452100465750927621063197019990859545114271730883138641664164592419197814065353627728275381350898163085107639946321980833074592911534280416513423334736228717807195808082521060663307603747488343840642264569852334080964566924272920348120210599385547936788417105309193159728031515983929920468732055819152542752160107051023693214193781848034920565114798127714848620233612820443505784669493451030605387565775040839758643853507034922515924260026034729792153492332464191831363648417961353823699387067175768145955350544736765881324601117506179483147452941564342031114201533408564045930022229480346799328493258131932347243362743955787550310237868823084622616844415641778160668119061420248904986137352933230348943088211161801902863611320217210118319990377805333983686978137286161299416690223361663651689753361542488997922826678370382644502325592390945132666608302541154628424998391469613841917951098285486104863094585820885152247511621028061383580796706563711803736797079644408369088375860559826267729791879057348236821133420373429392724108251149744868374822887650281577049228206065768187178831368211998922778419465413222460046081821907352147938397569792163251453593048324658805348185329828239927479906544369786650280031728819991832080269263041926696137703037944800219358752016481014744280499282410351860288323353776075314194637895705088105032637587265254923503798602045055682550226840647364152791885655309906690560671930084805380535203271597162548933388614104663484434501982253258064547396808641693943430561473195386646934354266071725518277591170237444641070174640394556836155490175855718901337325926260543632420373633538464485852839014806963161592074377679059596546956115656994735045023379375870233976854787381701020813019498827697844523319028472229406066356378163158960755840734759948563954630697671549101484488873579062799597473005113248248504657331806642913476931206670972444028964867438913601127315140737266016169653585547016050182247143719229758284853424658381828246057515009705093556689947467459975668716659540589662210322404780749517221058885443323373700708326751040200988157546239269697441969375656664121718765303016448508385773241625850151534405564477080757649147318580711228793872599792241456760160256042419568344840497784340790763422113998938412965457109552931044850214329142249490404085473924240808239309347811466654396463876609919701051765648508591422449122362920847167909706186618239169088839835706501175052933214562555183170412328015426683078171717658097982140692088690368699984500053473367658079759093890741471849083990350106144860161357739883787576626131193748883629361793906670785603542924313884993725892189828870582755631386716760337821476771005716164746463265266266968075720938725196976478412408540956458015039757153408215359095908217078955535169543760305289213098136918749246337946126613165987643817421791004293651938442508376020696291700166570682642781713412028792398090465362090493313872279529675490175137499885662841796787452069054857627741535279534658721989512635796197530923129763208397686983833669320512122204146640451315033168672003205642686432660493573399918329682295787746745473983232692354556799076714749024625875127691854143399966870719208715692004151119755447784097540218433226079671391593740160792648480418992526145696946169163686286321421008137937104805294214306679105414158562890802230834005368527572834641705138690696728906567725431206655929844459959760735224676689134085915890194949740777311522989764330177212686298980177136897836537363204942919558314339921220027621956244025867492821365280369521123697195199928461606900920514320451999798189721044561439602033008708701744085858600171600629990023476884292632682864804436081081970355932476486363887072956312895976841503937231805839732690653927605981961273808078628039385853020005170812343865684606287224006281435853566267597883293525162844579649635819627627846957172125519100905352755791309396986472033583524130556908302946737439045214519813955830648776439730893387761968020423250622164247927696866992135692055038277566446463146383756285433055618258439154394571067295520066498031969676274150015610209294683832045551389760869473666788493147201147934934530096762548128378093513623860570505794700251473280269973342257686881558925146984740367223059548449442360142619861741152329643784281719445682494586484664412643794785414100880539149224561269349624694808134128825520646145903729046833356715830248094365013989246433663722423337540598676145067256117868655125022481493967560518468300614563091920295733906272106728579544286650505901345010149731176174894400154913956541614032363115759556079360790203592681828132690355852384564882836336016594354242239141561235883951277209044851838680082826607327203455871759145824163391829470967128398042835165766574864660931241328961265430677620315830595659178563908491696582950232326492425546469706134161030057998937209725250327738636117111644423426560451457466386407742250386850629214338641741277300288182924344751314872329417757926586898676002549542596428646436545030692237467363950765748160901395002568595255769923866008262466771820586605529336676927238755889253615486366721801122077134324182316679779483563804327247544106541018095789936238675177458508043435134217977492175632735044958631780443809533948163681932315887469527694362786668627356011043398912520817786562853971201875038081222928822551099446192332337445861841705112093460514670644548091871110421572700556308691962935238984146842207222047602077046021309461820015578576760403579303521259406571290313396402253381667324016653477482974623941484345084310901667512489619075395307107732505022046650056748354748245941557326841525370979944548663257357371845909084057056992578738856089401556605431477968942674776484192829522287858980931544174521310945632129129733485902204077709397746313170996872837570765369365816559715716267253270887892482404438430823198117116945355333313374820827714608886000547451510239455652781579368710084607389372476497728521669810455044056934939039278775678086608834981063876796701788631990839217239688976827629636847821075181986710634738593781951146495908408342362390639410411536816612393355386394830669613848597052743887379181981482006528419177383945063391321383482660523449498437266958969523895256348702252350259118003862100276957413583083741069590458296042939689081222488071577731064316102352412056836780592470290259698933882678473479659953188824526271164288138605540335184420558669249343050810665937805048529320716670142322320399274149715789747296016004469700900616849853108318594839258118580821963687136952883917129129220102537309860198787934184171705522574381884722483489823656858786322032217087980405670227802535468803308486053852248427346056694820823047261884408624564696650414615516064274368185118290378957998754537019821279937058795198467845982160067667108479801415171672962287538346087046173563537379288445364448210614956829270717020365903837661729200640366079885750471149724497093702904506617959728536162873577983313071727964361426762862843909224412200241331654955139825432641240776110421013489551558287741181316738781991417944232982694877590198523943992097029673837624494554924163344819055950787609486900990187201847810964796099538615403858530410186482286869681091649809363189028543064352527409050437094893598412904655206551169072121425004628760018978567354544999522454524490881453238506970868404580837880905588521600683588760852986509893582132903251387946868722372303651347663488976602048084717004084132065608532254546607152649336845890119720890819622145352031204858643613171506170804310180090209222984200228685490376653368862201979263312282592068375191450762086880115002781616747361593867071631036206784386536869092847860837219958825518772946196928207448478680033948551065736122592585627719153071474103285216690409021628043300671155559752338074449411949982444823564937299063319453666271535169647008369523462348727447815734483107365440806645258541280680264204264848894335768807770169610130698413481959358704353386614805229538554524090112295105486161702727979807378952142623293764309797215565671810340106754626751201289749488744308457022938962699989455357824742677330943054411129285876678316702219188833998963155953492197032775662585454035459105245224210921222968318779915080007075883546378654085881294856970315541366143376774097859854236025582977609569627647052518201359252214660824887120216639015216253652567802475272032497495589619980833393310690439935565113294944946886547933337649641427275227063251961296669775263094407082541155640711881937060338564730390999823234624261397136284620050506322366700852749729376523912013605217457975774146424347721828240583146882577511899975801869188316480292362812166240013582740014649650123198225982965494017737312834545123926987066533491436100011095041990364016672853696231318730916091417199200995357741957592962446585271606378718803487743203119041684668886701572671874875151195404706948892558003480422182372338262894672018596656659372077780220857097532172136070282936475043183863610891387988576040401776544027926789816107445626598762984756760822833688654343717952072621336779314710926924521722404580207454811304876777099402349959535833675286291129598897981026194026070353264145684485771997291860434300471925108961993522387736906894583191444282303170777069652477282288567320433953493836620817694598451434183723906362495327871762870528161710264974475320683095387793567005820628900802538369513407269406078788804518023373385567795713739376818110156263892671108294754626674317307034253030696561133546875467512574738022594651383039354869516320217791193594376557318965463342492428805207679568943212468497291975167189985350290296156763949468079271648255027481616070041714435193040980439429519215441489043360372414493370697517779336035899183894730066426160602523763215925821713124924750963663972022753423743776632698757583734361019137755901933271666114754687993639037071628797004569389739484055853661078263176660671806303711375495888804871829068212711974098599235145196448558382305170515353466765246684372713725711312027573313933691139559116292893287837988715726979719400760116097825483001821189723285800869859276813836167162586570343791598996889803084326614606480683519694066906838843157602319493246762508770907603995444798853950000269996688512142170593897606854486622935377235537541591970421651287922329079437420081275322908467239634014522090658115413261204881075898136004735320678376692180274858567522624807771293930488001076347945495811764662204175361685517357937246342686574582347673042786989651287171323901237716407698808567884919986244305888806564413108376889480667484111360828569219428082978799994026113330560980954585596777894304865787715519201107885279253322123156220235464505689532556076104516156229174874047857610924440646932099297704100812186247957858362941013371125456523915591240832970169734033024899283976683077809374027430775945880528069697131869749222173174974387984021706662717263410937445931111494930301205361188615530785913338670002171866372474306592819533630672381591218389215922768181711266744837337229460651587802809396511620444982452431671142927366867314220508932007391646082252988163067248721061167448060906234838570276919783556312571150271490842028128006280797346226991269666924917033137345419798523070356317580434331956009183203360368375563219413521613689945590986871954139196711615664456883133570010607392240712967927847686778469507319721877262091358668427578047338501674491960976817242388509361902831506116162848076349855054640621077870333323790997582683967234024415069861094744940827001241593279884639122194024144690172129074189193705989805335781293882814983314372842811596293746311995178642532256017747239395672956098924561967382267747508290391355045852116523736179258142671596856125266891387594004009903971746058950797036512289993413195758382112252522032371152807024671128612031231228526966699880830479267125731417331469972326053399576241857494710991366876564023100063885465723207331612064683206876024488078034810464818643640818098768721858127327724150566469191702013766551802008684101140042631471581952372483028333959665449190816557957046308065414910684216532650311333042163168010170115051179245509929514324663780216526959251200020167121916304436708340465990946527769626252344224016443272176341764978696817851157475033091942703314761867333754709783836441188919113600164284265972445300969686475890346174079675535614319138372673753927914065596984902663822998344949586060322350658075521793412910352465243096445216873690193747698820752244126183180151281677765682473038087169732335325605961278774015313280156830904248266871123859643069004850599891229849063640208638896436292784368885734952793195738858184499094528008967578518054459162181922736571766138044712058002286429365473212656512516169714195474183177250682000694345069632859544264062319108576818475964732996502962610386817479640552375967103983183519410579284662094812536537632359886841168064932850848390154930892513447240309671039923079977424234616659315296051948067317438629472566434935128887879678588891253918906179934089581892178958804961464742220065332106275916430971329319988230070274617778182128033203502097500514741943548139961685086864538776491954631953900745025050081463502348380232201150092927655685863527648045884329935091973888251626376868163425109046274185730642804934585343149194075853569942647561791283952213182688658366841519009566434218500618389870763188751593330201570776133120030382562063730510915715954399531523838691604553161228592732246149892795622854729637940702832126652528428896606439542816883913968877670881656305870965937565528701412227778089358451316384989394162590631477258543421785595962941218069068105265513291718252316026471354924060391792934588825787318437600704048909132669236961460158806631023017174547893814856201076123481335457610067101959091378406685347795472185543664290526566532141641851025823867002693117723930422610897070134424693444918151252588719737854958984903766074663552115968128333599212668780085044291231656959833690224993560141664728163361335169790116266658848822725370131319470348374640059768492089581110054521652824350398435176827580992811192256329547814675505322148664366292704162346305560131063536314290932168321410262600475726881692689541568715565328291368170235026452163613379717413123562722683129706173787865622268609096739197418440363245642829040881955074707581757475910657822716243501590355738138260423555952790726846106286639710407603663561855802616883020236080730033602251138308194297497004693263621772281091925932615743920393203338745822763062945678681074564024017144033274601291485157469086554347270132775291952634479793849220829038189267208900280305306816344873526685514401348256728065209852987195797971299442294408081581336911011775484789636319049342129540273328589419185892069199229947906378289108208307597195131788451982955668495822938657773349328913075407088821891086317454917079626303907691770240270980741101979987698193827927987905237644522451734951620343598372461230400336179566740249383988489697690596234260730405983621549452596597181652175516522233933001795777617482431995481570074158339936468532728861111251793209020657660146598276126090807598650987787148399946045733488927405805775470516464061756794779802602958286508590857482954350236852148121773608224302893170199149263399170704193205356819110086179684781128666438644400312797769801155675369537551461074271519161338250759796657727567181917645871764196837906369235298844985783036359181308542188272855745154832567360570597267097348763075637793502139158564635209800786014113527877011670137449588471678654500551480514694809106106029138237731904865672248926448783282678917290501580996529912180765886010672468630985400564366708204536893570421033309919067423946792528392006314289458691868394360623219634799860666305191974763991694000931436806437255589221110351941401494410783264252348523187333717109993459460332828084240504119912021299181199923652517337995554118407141576780896935584327470379247837463231908031944299385809776551205266588071392502512462428594118870487701476353444143599991984373037955958949425012228702220960837621117578981074847117387077588413714809297671456747091992989941257419361494137902261804066869373564063479439992287705693397415478755864465007674177683738830173056663627481264466771199061548331826498144928881829811465549531456403597436931622892541968601442295604604421299298813236069805789541440255137702279428325830463008658913055344086255168608514891831985837244676361426874514267323294103236467391473157560747389936897345105920643650578431827363951046102523379027193692719675860611235468083068893238894511763515664965663134511711557536427409348304819071202347220529303969408970164062188753610967536750494339601721032501214073252608970974288637136295894779635442268993333694301342132939360405862523980356338860774007620303929443889436311985772633252182832757523606607132802581588167470387349236115267243909747347389717223838656102724897242876145486138376181129443047134438568012128263988883490742109171066951817720290836885654535013710437238776654611619776010504594102357831326067355401593821246555559831750963049137789703314186191083040263787658440980719198888237607341426614540615686704721267414102175734844055340600130749418266869770063348512874980523787469493020267616146527842303242206763967997306493836693024103156105197154011044759750472679636474846586933663622802685386504973967425230145060272522923796116853659954862395957223941520093235733745316845580210145382633890786963735056254653795580980189628534345384097105399979644926478286598240957131637309708106886214408052880365517448677616903102774978849487935975560122875888858915149556441734380604580043886140063537873572519171138709465488169114871139871671543914789814602406238411687407097986254018060288885787312397588197933481187269733603360698616604455005487881167256303264991925716941225125387233139379850629701003021002329777326808017626420301704637753940875265158018812032516495976070470562078019796774910709108832343381296193051512760339997772942845045265818781763936650425729691185325792555520209873472115241062492164113117598694521896314018979203725025659185221592635682461441653517375464494248632031258167955900624271874138245270996049489888319636425507947955798202681549364131352876411392814832860892655939070997436265192911813542735196113826502873232242031397536837187776712030298301647830490845934710172145535585816578742457953344128056499422294113981410089031979397301768151605229572756129967791261090387266262977390422454225353089321237620983559653347499771061816476692926621011220573405754855700411703158610248086195485355038931034197366931238595252475477612558023879446440137140817241215938910549169422609694598905676742835830760595408801072124486062446899276426332272728103175434706539609660365572103357683465654661879695518924452445082625421974514892538040510448693001946916719293997666374613961292111126905912151820991460188138465413802118891732935092963785729960957875214528857267125352535831932601305156508654408021916089152317553572613344216941836072137221887853543382776954079859709768258252554706674928524466850943694102476882417855321393558121532173994870128139973454208778271297569290700616000583850677399937258541516999899156642856554607381890945508989144276639238281415413546261654093071562322904829640030370064844345835957886223249857634143724387343721785009698764393601050000936432021479112145211160731507944605023821690223237565876131538528042758772736888297108233421618975885281190878341564656024996862150571790621177808808514545866805325297608144397145786991625568130915881954333010486645766303765269782011764443505423335557427193372115446945522762784574720206406960973877412941527195709501631593987836615553577363289879387118522210345294754256381408379909458051088798108218469048137427252844235547499202915281925938304443153562248884602526480637029219926390304498528937157747713272566569353344413852863555255410724025062419236935435546756229623900733725518868034174929604157913362647905614339743428999051783748495137601903627451324646650882414822638761996714060794506683315760012120539957410368293570383082336066943757159128307507903166391890234545210671658931104559333588846527412120601358233736690614404467108966272970299526953103046276284363782395329580402066567267694893418295399375840248944943869742989736261523170427537949922211116579668813643745330855372703480231832031432872053250663819425228273224664087665739038357046115787833938007193973954599108709898628805940375308485819862342953946682196364622787399379841044289340147099858969100479116350975429097333535839782900834190173472141756151182019036020558752768250890401291837093227158704009241993057140250639226907423112525610262571005735431546252398035415624257088125545373994898509685790547576363817765462132657480440547271260651267259930029950057836540919434224793877053329093499005880647586210009880244731222448739961035158510436159745803693039297211693183829991488547043139009881581469435135100360308119000334253672328617043304633320806240158879716217527635406405969926190227653747001865325120031587134918352544931131069446155132221805353414594099530915447495342828763291527711074785937874296570759409044701492249789220249805900041490348264815927520766103933574877191892398386598788166276314997236874222241993433980608507212324671527929146191450653737711694976323590479455068494954471006502594388513106604610842591242015382369396508652489415202685190172642700444755718047219888208812554694965655086974214199613882054117329921813546547119660710251520164181651236810632103841880593148238244937036692158243523340308982484609532991208818376217963037784212305896350010962488779405406342818601670675791665315009222422647155901907904931400845877396683855372838745407721693429506226300624808233451464713412198393490298513723605083908661664723011957953508848023049917965458797205010665297435449403179344144095868945883483692151637636406937055916904614627426582671097864730579819155227879118809454265076598172712806505187228832840918252536152627815452005380885789372294038757460827425050832244781089037196275710395836531438957009894929674309133915494783500123540828259183588605054374087626949144321714090029117314189553754737193997817431220873620235821111821706061547999077472702774064815125359777095709448928466761285452188210756672829882843400623571171964021522033935629125337537242367686333952529602874813040627597448188143884776805084238871223050517257899569588252689662390299129226982030573704775431993450324467309028330942950972575656539264534246991625268175986350589728131036071886542590526201535014580374927811458759151936496112310837913090516457112507820123043895364520278214020562773108455491544467760921194586268333108985179096140746609358066421293082562905242412968298592458907673516703035322752171566380612859863090780825326120332755484435605134486812608522891691258333580878006874334982704350166037282283667371754316693430345905334126051756942739372356841349711642605387439166287945285117693472027689294874979491279767087928070838952748890544424540020104123629090347444218744510821055238349645568084479705155253212015968738261843946777637891902133167355991547068368246424495538508910261349884928728549867475598055555230293735710509585290455214902750867352188871726549900666372302362190705862200429162287118105925059909194942426784864472109112434395845983298295968105293378463201100439584903228406516138904181253757787681826597639973348475718624881679708617343028036092081330071843649425462870691310840515099785279867540038822439295017314899659717572003825200919167162647035411881487776298897967484043155376410748031916224676365070594111854807189781168162054241546262950588859033725162582231661233508375564558879847592242822855465170258068382398503346230695379290523903322938171777009068906582239722668056773686734165815138054227966407880844451670538092974783075319765084140482051091727774192725773290145966884625576463531974552922516661539530698940994311984885129620598964881519940893088102093235975596881046682817005827854878681302856652837594382453111064939880407642994310389830430818257919331496020695720742652054256571787997521396732669543607584166675472151090820764270345637938047881918747030139524902138774249415428938451136590773783789803092377106225605560146981578325516585400853612730054077540948861916579886850219274145933317027424265745684354841911730747244082602471689140369839923170733635373294560269054697063667576217768448938807627897593779009835676648254253692768100880800819926765158793284493495874576274001720343596466062991253368304907632393569680527107857068703956608535169775148592104732970919850801650987197741774712630446549504807790257526374097668287613071433961442136557827884669687014759129680392236060895186171326706271449934321643446707427380346784772002853270340210830911627213471276293089167068764042383482748081730149896811564346578706905353377493167317307207971965109463790692189813473271651909291500511252788794817768190911907636888608237232422836968834918249033492996631162990816922154966358683920306152026200673751639126768471137275731574196228683018794051344332366354982977074032932051483840107750097896072163534403701832624836310454356083738197344625264475028753104356836761250891055348034251824502128483114690904499159455689985287171173974406165759122560935720172924482761871689182086663084315681880793688941653319733845118505732733619407712176555577775623530792379399863522782862530044986504554189616036154581959919862618934017291710546666806587498745519125964035282078018248317156349968724297306768873489122446647146901516178668467411271996066611864805814842885634200507669949147311719524707522430475912653499446323712085570928974920731927500350560225843975714810518265520623868078924097761487782609472825265006196826033732698163062802017056292924993182357684967753290216766625138121744516327717193840489130118605132280981587891635887952086264757445549399503466004018543795737537596589972047150824025835569757722816740947319135211828137055574354422855188030336360745788676972512781501329983432737329281896389990889814026559153526635092036077946362113444510940539124110058498748984071234350496243390925135395984699991177612814044199713681910990411799109743052008510248880031245800662406895628883294229080566870540285311295179285515798386327517136251142957713593460344163488581411894758666271253664414836505953556837273316948877034672273621227503485537398988748483030884845496697135993169818096643704343179066102966113866097767266818585774309721514368729094692195813051161614061005851559048621787289550902198663911699852577612156751169549628100121759254467268981474687856525927950958980190592255840251347009050567684774236544392325844896000784638661551996826253308043966578362171700256467208907440185586823528730127438367685051743841735721027616925930380887787691368857870669932104892421602483154852574481796925175231040437799503382866349903036460946909571509814556975497489483267922499503739797955099682826947208454086689695151591249029382055331031895551726349442723229304182097560265004994342177647348583314445684042536375604206163083489745926369505148058002207299099389743210211661012491901267899513456724603779890261228432371491206372410342241027471117940204463976628478268213328001067914474278451856881875757953206891501466295421850496949054770067645168991044257143702987505086391215972065994972279894214059029229410753468402829560509103710746004019238297652867332510036722185220673608061334521006308924399479821577166941232090101672112118270040468700978820854780382105714383104805860360045545985458226105952809751376938155285826432100085625517297448843558945781302874521891741123548681491364044189669248914958349368810150187035399167314702421399978312381061845475404312949431012700093517078210054065029993352204133984663202947568525745058145438719257884808828354226486140452854366271973322446512648632010093684969660709312107785137044815364797746967387035662128589343906849859786124902848113444571224982822716015193094126736980739998774379534502660939537960648840969659256158565049140432959124945472163912955975412741361186373433702326377808965730415841173597471230856965244549934024908114914386246942988404867401072200950328753587434283859260588560552274077454013678747921917794423935647492212954279659565244683078608688277970167804761474153443745734732316861583123220730642119608353366896243152010725135739520159942142245880284886892379465681253836852049259030714410400726714365927684981058752562464793799776093271267650605211357124514811014150467612586235250260584472666948863509579427705191998928099549326433448041973002653433629524538627024142761888247896943753813594333014119570692655253680856388807725145183140564026436781870053286765921118367260783810742166617583130039571813617147884027694061733178031409607768555136153677428720703077699741979262557587479977027600387645005984144012249230608556904599701089313563671754996994726905174679771173577960164437519536871263744670297091224027790700196190655185507974654109314102606822405688846541884284248518424109532165473747901856520616168602282953937006324089323896146498788221478459298201337432363917535352899355138284454634701290517022569950199301196362333016252412426623290537858358502381440390735477443381757152986619559029103260352314557752970532929120823339263039879596563148567257847380994416713362653862946807030140456338584731945581808574788913469377710559624303028609174073769570351701077351482629726634785011202893221759470327646884786456395685066888121352487586547318165425582071302733387405849794403562140749660785285031373073649353840850688259901346736157110704155987167404012351195117204619584936510066156296660596817210235083159032979177243299149640373991125352778473838810254263855956255087035929354143808329671527398070111012636438966262684640666902030553972045878990750655477664453045956761288442591145815037947395637400870779538338359264014098956543164674459619297047695316213972209572700137713565722967087122275157817390300855086545537481237585595669905462624363981327404781441833836889265112944146921228324752103850519123951028199889443690598293927859999660076940424095616489217685025780982351513614418349329458322529437027085960926748482257900094020128699088173733111531224369762978729697842768884863939698556362432172956738477974117079130039052194667475447658447769415912252355016963920612314345427466818649757538413374845124249986072026904942414142293829740981135502135124410075895859982457626381699574025498941122714134614452529512455378860595921725038389447499144493476779255935987791911379879529611560815409431485582407074624375732923581508875818522308285358724290940589529426875256994942880362296761288300657767161695253613087643535494765398670975923681679667009422518573674004777456304875263563948724000536817212157620664695445720548568923916513317457262181738801572570942299495057537716674012012775839894732063615559385584461732893344902784232779833032595033796361004421580611489617908834240173994105500550550329646927265324733191435885818553351069431254627761416963616068352719144894213316095610622231209079144748430975733686682010040880568740990612790927171147943323164589328519453144085363940155634541754714615654108332605232338609190975640232513570575721952074406631274292961769868485623994034196371644634404276692148729292911036872147892323979543364128041558370374185392508135795510636312658485896888608008662904031346924763493183722383740554060790751960055454841933530795664912523557693000350163963420502069566991563821755163401818106043616855648384864911019092533426816682900729464507444191165026556417114456176201351866780147506546057158970215499521917297539648233105876211876889293652600991916262510453533067162914479714929330101912292186936016738889767141644279782846081039781879050144088524759929582551322825831411234598736555692926632330276228195172352771931461405285513947701523587592068355256941415565967661593772350811408764231567532437971755309047826397271710878789432635289891913952496114182468111440093289264316954496863369044606349551460508110440336992450545922948991638225187489287043975687405130353934213036332184942106939535634298448404787879003774637068399149381832666547276505317459111027983247443364706074253927898344021110369078345052001372424486736350012644549449527028320061599087286785064581151439812406527684130298587383539420402143817471208567963747348491626410427964137664737079681756932753142693862374913790541956967871574617400341057171787105195789104410255640088654909188574347873959535687299565755555964275784486595314966974806881235892375154964598224347894384618456098381429943769889545935597754288615618177898496671518934654531614122368949731618995246824579348169860374942325728452964885886343640989743780876339785963727102093100323547717667978234441669048632520926269822454481803380145113010615476036485244052176534287299318417211967826013664556596608166210104401002695919300822643695974476097656693471776847424332804726459980979791335689533885288603255658800560355745312342266605474238072147697574603003617774759372007782407059626720291522392895975200665085276830505813660704705110363197515714845813210768501288492903004821733964647715521397120022135561756185838372185249540487650993647937078347219190690666387561975049744118920546103345363570161573736787226011020719242385275694103333996361153469862933536823848260882485042707510051625292196446979121531450662742402565576393660140327672144388046376950930553168483571986029648790161631643769579372585148826941551618462101548809154090787099795542546466605063197796312669997586023099552888435033579785613749885591198317163458188598949609555642032970181900755102019718516524796797793714186740544058456333176079637087143333952136837856349048671291963310401380532490361062750122300688238431411669588819211775428338192683320041782378861687448827737536690161625317800526036084166601493848291547910704420408513925535679349613117660870493133593976438790072450215595181559253753230184053090100838148886797430256926906066081588561692084877793387614221581827722184340792389341791704756699993539471135282138113173291894197629935513865866339644464433184100230913733943618744619876512257924052689324263608880071705944033044783347947702165293762524122605402311055618831697494396287612401547826965245326398719358345002443010341071431386321407233974031112061576829535861509622108263671616164310494812304870096725932530449520609339381326126009529971100099968214192819942211711434896948798796320149304883165013857014267179394524836075131590691969104870380489434432210190621698583922038823828485603637867011192561492241223627096338460313288911672562164948606087764654517453974893827647395041548832986393397898854365052797687663938610835699736226109490488125863782956983676516218854779844517889813759327141088513135255916610691682032120381724901678173931618623552817397750951665894134014201075516696321750536286880105269115706046964167270629623898005921826510724011413741686143426097107518758488855657197689316203665200141693010533497073430133210647876473473506214213702800914260182745657468210590226307016116585471703065283022687216201632506459971916924166538482425166239732151690673970062190842124017086245455393807818421283248257761368288704929083158479409654510040037857996759770612459980597166049980958975350644030696742946877670126456159510289714610716713144046424628834412625732123471161682241951353620299502892155643087459094892498351182738660661377036641911698445556547020157823921084892022463943058478291201127755923404904756321031722105580740089734899837577510629437502034465191943170052267266151428234822882233314384018174267889658048435597569177326093928757883421777403887930911886226234619099136354223812138419156942117803678582039961516304058569275109171206473164218096907914262387889449921254064036375914046521852090495584322224331214650089033464452010114557410074879346367396568516183157300275428043012937082250162848297478545027566495226034309691211586743193286866188205854575006399459776134365226629634393279659256656411708781554744943645081634383880566392685648512055463343319015364811375606088317077435438828976859964215155807261511404427318295583238824451108751809392423151036478322620425912320899289565925691459708593740758540703376349151217927400939682892600022506487191715236502297167342402165161537436432331307794281249037212902638487871686209732835787746183160656266597484522949332913488050543710613116880151586402553570300493285566799361638786255877152688837675554269100284593153427416742770964254461377669489685107797438721370727921631337842247392961534560643719237603607349971834663367880111793600370798672350684232737122071186427257532547852427573725446997229963395894980864143920711055873885794346941487825212497893215778374713782385457405881352418452853299184695802514391473055037142061385829896921501621085608893465986978935111938454337064426461888676435280315886353487470119071254399231143051480784495413743959018965054572850854857512133704141566112829781494527890612019873763670556339465736629834058084126985949054216416511389702162341671532002879030063950512916313713539851626215941701696675602252856543769121177077195471397732234805744969745669780892711253506924103021342184426081197079033297512020571900052893401014741839467269769338195009580388544108526511075287265786568267259178576806609394472818021005052162366546432177806807492424855591570523145327812153816266772503678282368875356891842341123273414807858709869079644729849179605149656847890080403288862823306191071833074265638578934523260574344275648056898031220421118554852648890332488513962324977149651906913252982232552437771962362094349821875499045970458412976408441006776699329868049991821532989163084971771981983081880009672641847340652967149522203862430016064411159268703376534007800480646922804001799424687188408381548398026727827313352148266120024156514189997257840234990753930886130260053985412903454249743766502980209052152421446222602685617325114295474322179032112318585767024776318942336543204313146095519647614269496344309569369340183727602926176803225117011434054133517663489423042429827119451191988551101224879063815546721189028405839159828915170407024392693108225975526957383472429735157764681018445964795041246704572456280294280733580253884647056291656320376234868624331970342942678179637873416423625582988043753540195116147520451640971026970939347087823273731903455073461695673605587319759455593975124828903881955022119223017647207140262709081059961497380187034752807058376535019951898014807118955726259713710698250558670934839760033705125105807826751224057138045094215002538736994042183144610733966926335372450950878867512074744485615623140984471106911244673580356148415360034891437210761832023624995541331334619025347101797235720323136459871785857687502312386436013161920056848150910983710705714451965664316797576888186419580965267948402870020089386252552465419653997499520851614368701390378380809631348143047098682617428872252953571086241896227147466168804085479966063912801370512137235278138202731384856056934844218425641586251861141122889665771568045851323432011550557299914319071072101507615185821621135572247018543541081757496940045132318000184026162922136486806481439023437539152566110252229495124579634858266440042334741609187438221698890350412773854244591100304796598361984295467368602781438561027249851843842055413848604665470649427153782013167465566789725185144712785034653768539047208019260120382670317643586949096852735702733476087053218973479997288721555030105240499036252642416872274736482820431082676622355613197148837125113170804754215274051194051222940570823409871183119523342687278797988421348638527258624928478626736680236763916589129451841236781739640020208675036747860612600868090269562895293967129157226085211773181708539117242437920685477983680966833865471521804734401626998851156863864858983991461798683879794457591170298947300270129787491761548088991382619967686147530780454693260196741861034658098961992344205181186608395283063877060861185501378621060908145627569025759896898924672476497438774111645045535297281904308617540673229466260222182031550456339405578923108295352814172564790607375702085035195826490059650619549704693716556601994731765820108006892394528404602991488878357343875090410351399047641475726042108450558726898011012271960398771676959641763328956130707311348085631621862816993118408313423049314855776828794026320258122322729507754115523895843069782067812849879234335399568457108174580491638081210343218469594753472931239034881105680420476572582121222345077359616869756800418873693651956782361033434118698793447100369469647949976526469055217582028947578691156691074095167109825660511703647056112474564256749645602886891215154615677783064297902465712702828139506003780808442845154965427632052269487143744985221760651971541532344246136723868057621854361690068294771495791625017984552619648424450893082817796154318123066427538238747198877245518173918364397848300329145960806342480957783832755844652508533806303959910372780446251440618116543717505790712374080679579633607877165602535887598672313569292558112972240660000007955242983443953565652908044178734496152087818421013139792640868600693516238558201601969046857852250468632472726385696916821783719796161373779025454211599619969088364090789464187424732436226658061096000446015491276255793394584785581450194324874424628831216841995624133053340244239918641792163884937835952602459669406702094636851737481196109237143882596419199206200991444105485912642821956304260215985625544466092478220480873599505243860509637903003055436997399877830176198047892236572575070735771523634764350634542670752611972518230476259158273442863878415287987613211117468172273621655000421891275060171736325674695732388455792164230903442479110947059649216910247950850757030829286453846278123462654116651937774868967538459769388606737852998743223116038187616635065106122266388515104753168887511094290871097978860245570881288214877213549253187689731878002515646310266256875032853043643324653236267063493830531307977282361486591392208757288295215394854334646943964681319824501874644235625646419561073433768883762599747918450369701613621778766721522647311426896445033224409424281844877775217150117446788725481067512213570749051372621046326142768992442016693805747934165527497533752257562536942729970426361622851828617299515085764774237269312166033967437592265646102983292560571666725774413679063869452547774320190313564644216239629254694094697374815250101182485807771212658945364643490361854800225876003588411068430119093404641639003307155929247760421424076228676710083201336200467552199632442467234557468198840101514283934737781339119746236501418049539546531884840885275019644626235768213269605912524617997294391527034603503086310205697064831088962397428308939321133768966395786043299163304964066669186829770936710299518452008575799702451526968029199669877823807759072052221534420234841334646754522485115185107011982992492474853218642497453819089558089227610301141590230289172766077610914449140693872717919109901608250542960095039662376101166167044297395333960418769533992195132570978012745359741297510906877909414403447152495943216745579989192393235929837234030124432630405890518753412723808985953372091873914606981631022667927107062025452571066321804327794474805086038087186087839705780815669490719684527798078853254281494875504282088319905058044443624732015379987222540770766628560843503891977632400284936513294931066324816593546538048876068110767196910781447030304570700150155353730555423703153503542406370934995795929387946881301745277965312426499111421986748044124633151928077412202868006193004480200460901092225885478803724468298519537853029179052350191309309236257367936510823219197795650217150092686121504313960682069795079685439929774426104556342182666885319880152814315020343246050680288464890121841694522000007339249148699120287605615577656897015550770746517952016199736022203063026828608572229487909961958189817909249050398821479453749162556527123525472796405994075768768394894322649439977821944601419715330848188667353537427627463093528250203378985848355487477334414221384009906192189170415166616700835879261287562174566143629415112770213945182954537984705749662635092004940108840880272817602768909213118030664770641722090046875911564870123699125990411574848364874107006303048001383945988772281113404865357637850130369508366789191861698788183264569163650803252227639253169538562243172440571616651567118420794388050854803828623033996978863891848871151387246592097024419618664333144706885659319746011660251903383636642489963514089841945964164895742866177049167935473553249090053914843735952881578247344096017507505535348320424658348397043917100676272215548597612621938366779121130555073319369973860297483731297146217195454279444229295595878240081188314614233208341225400451248510926001626709697730226941857937052631584212586032750568293488834219044962516917708676351967531586499249597267938591158456673430111935973929152724465668290639543288541456460593048158463360551238479776887820453027410179127191713211992948021440323496018926820474316148213113547653065097609459397733136696010368877149329003924771195714027083043968426042944221865511464387077972899471658345653256176797453047952211929934955118915949291795383763035329961205429197149208236579895201835350016671020557146699282979445509168720354507544341774338956366140128160278407693665887692807354373269697044624455501879708850368202067270474282145507446937681915670750011502644853675976336022875629216717757292075217724045229165900886745313829436333090856642902441612912521240005684320849918416936414605892617882537654287874718165965574803566680678466159198839669455422530655522529204772722660005277704753569782210142423768952267315512833934412846775018314073770021212133140630506221618216525110125832016564177463704181230688173435786856646491414453788525758416613612396708477235096138891622835516792918326954157536922585984527048664896482300433433525041569441879327058136580339379315976550750789887855762523426709914318687019179924614892718569278031808908792598900265651272542203264257554728438491357984887383722716459843308004369353445777121132952163753784808007938775146481187160177272221346355841569441746200317185216066325490748258089706751917531749366202691009465355904015421698242895449442716917170135819333209849519291198319497983339891150352886547704018688742340060267260593489524485300016108643963182450259654928787120183294112311095042489001961331041591846696480848978640283447797760124187097898516390392642885624946147054459388520317713934193100911138068842949872804403147531585891000657842616543442825312164042474950140642150889632061471088767576335017174315675593176703964968580165512888964690459130208576589561608713528023997358254899127981606480569434663210342699982589091572804806676142195885791483765883059183616900302489738354211146270518321416904037860379082237251719367882739123783897104801682710143408286840847390747557998499646404557446640636817376154793788887798546425697171378629420102237847199353059664209464073842430408934356029381890289803083533417526071144949702933948254146484497538511980099223216471836880706174746510399193544427340772063109475555746529792034459276200238142787342657478683487997618813244215528909467814136062716250441862144802650193109932517823754760149847467669542137932402656814245099287504169867155576518681681800991950495417111416293409374694324809605512069997430064501236617128192766987739533980574516758091618163498168340761852645160530735698879651681623122764727153446558864360914023681762259100552492524974683283471265629268539467110730493675590740975104750645764439763178506915569262308631932742436263072510095537943395742316544999996810603929403807035943462967672610913330296762093243840408987539080491417371677660117762398466401547178609212606087089345445406045049954044351750809882996419028430486141310928748972494158088602899312678289389935944093831321630962079479437809368808356245878732041463728600947326201627205234708596086893858102721427314106477397494341852199384225140410276750201979269612494297582829164616684946134784731868045770794149132448207412855040488454217386330216138065420713594678411796857202358889056475998546435440515774179379122159947195571266679493466940712982796875902466017007517571325688333384342487946294925915129478369091585319766451639677274377848390467222281507636660067458418222780311488069688737976351454722157437439176352548336249159655259364299541832626889706177710163259126849193102725086705571403299119938445472350058377872335433927717611811436243715890793036106428828497166260503127273588348728834739956086147353701321233206742359328374972728407026098524586961413372978952419060747965018986180338526364334121678250898509731033988561868282934828259274765101535788131983003319645609641863032324353118770828897601842279870488572044112777979737422784280572727667448652016742283049875062481770066496392731493435695646931701066220887002015619591972187568931333534654728813098264446769796195346939500977397094037579166412967789377024334687989853283743932417789395176097698220095571599511834224770295128835933169238165921566975746230012231684282136912510435071253539283250310456153133928081425890128842824234188744720473637612148651750455688320194569706191029063766686936208212302193181159565982760702083529362688309127717107540913092549620537465931187481475400289663817088263600376995357106378112690510590352851898787548885676399425877283474557680971819528821057044645431497623137024192754334445717556925648579561539389375804809843391208816819195013492106159235632404455559035979781672369694105823452196549598161210350065347283698117052669506210795510014032347519099722431248460288814938419290124874821433886601161209425329126710929139282609299234256262910387194969689991811416189877576646740929289660857303584354525255180901288575161061484718742647422031382821571156345419791130651052827562106003680775558234757561813409908293577836245160619516961201074393289497911426862528201152724695853038610405298179793873749579782125727655620728763585171758068531853636474762089823089698430868289445311575906834654913086363193542061434196413092535814561643284075258380954772579905872631517550209156746715070496126281336864680050850224558321757473263914844572181186073188101346917469690431588431592438206091103745894919090020773841303756014170436247712385839195414446439518351680985575046588514406296008202127372770852544919238461942871904421468062088670770510897781374414644093963541592125121955012693413819227098873349010165846010566085839974874385697786448501198054655933300759419661815649755342606886946200924416835670748666074652933900027240222849293441084100336103882456065258175794983956106368859287999670181420351393315406900808453157617680952613534828486273055107991306996295281357620836044355907466347961617624400523405654694432610988418121014723813097231584474024143130409845552019824846649944735699158702985040203550619647097847228330176863057935631920903141909410557162798711533569335835701624713856125516376687622524804457049032844567645644134862798303306224040106070013899323956121018080907679398656769376804945376717778753407020441654958143129305035934763347263719645247434842070239879286539196774967697426003117977320672831762123132210684606685974331499091009112290793902908692718540974911753478035569830112956442625235850667528564322274194831686639437109315973919840240912661381545654845655393795614243734411546965769301433953436902107689292359405279786740111577965754907519697000158530249761428851530167134896084033956661278947313258945245561672714464566977596750398252819892997594714656754239222108795415098544582747930666950186255292593831032459561639671600333832716306227225603958632990411346039910131095201165590592578966696529882992771062402346112779164307215342466215002008147634635886503805520228773982397735850341432599512210374803594207517077390243455589756314544272065957563603799519506224731960879910290202945109768172666288611279941673037698044673034365079500329060124529497242935412523229983555247437072402073294686744392043687767749468891578411241699596088209295744178207930199610547476718815109247290389402951167813960833948022404773277481668444782329551565186821028526057270389288261494389925010452815788253351498186314010679318121059461040379135698996802879306058708434407282067723382599298255085851868701924232046760214232164248150747622301534768353498301908528289594672340642167715575352385486980638248599075154318032884989690249629981784175717863581089240963868699404075421663738374537932670478196803874503911856584085002715713910639934628236940859431842634018346239800647358451810378821977395084503503464577536781879288586643536614476145033798819845681228650465699811449905199069363909748031639184736080746012009875881356064207148084820618085325555280653463046687509105004395946980779476730546252746909060596298602612640816020405691647252824412292775282319878046903313830431493384523114642885146817479858851209669746590007749883603899811819129913233269781773587080599150002242698954873174833511730765657889044822400910522604549338389958834377113067941951893389429233593151202542885950678948085888951541229953071097021920563992334093492123008533330170475361419264932919942533400400716257718809430151744058690038224997115734994339578817395935753204904198053183718476000972916644797806932367123542716213239475171784587842915656180694224492862675257764624463017555303735438698210267860510742406728678165795490656819955706422220567941098591096960320438164334110272040064651917683478982436068890744122215883379024582041230341662672781628025716051248541355980485474990756181474092190848028469082271763073800309342973359179571073788006480200536603193005192760545453726674976265254603622355164574663154030642748099686944839919277956805595371649007848573458636112546419118252024660019868437255852923995976364790994686010794770029748231135735732904100894019495297544275141553014500600845473847221021007011689563807454712958422523790535952469803950973509035367103330532568108157328230847121633656007555276404212440916744089138057759509093372712713834170845339588582880827822803675573415168222471921249382405982461493326194161201850975937835127342439434966249467543485296094568395811443338192115587206078624468315111028030966956434001393758735502687648940823311859102714430982543377212768221952223222355907009002003625787688584410809273901924754239225536779985636745536324619881628984620416041947767601612650852285161920217332153532334721238127779045875086182472407927616900433681371048209675442579726080108137624708496927383132325072828266366244911475362193084288401308282575842776191639301978629596852901653234487012188034185171743282305887511944147096987140124668087261685403636824066867221245978703974369933886561826078657690417508324794315075297867240934575741229936280070761671011268967496388447139987897587373169227834885073298461964632370655750819468973623462011820885179559952516116963873070417913112137510833192204788543705742395461813586752369644621412793730607135197041928862818519838775894070390300009770932446726056188030621447622690826732208913653879747023168107794983848548526085725392966844041987817469440782107879801149604704699735834640218967428723488745896814658181893628768620213150742147519408481582448436613146691839823122955077466043797398093768010271078404236513394573661235549201406783893625496613306228316875176145243830374417418481978827189757855057701764023204101400821901269365240516229752747835108641783156154466648684178612402515254124850633580730772512714778214148550467086707091153487819637976489185043204819691707131886865165025682810991435187702039789852912586399595609187428696551431847935855583513077585902660909742104997267259737228324161429912184600260776926265982493067015051495787174943054920898348942291927119081094782058969310548843658875211783331789753234593660907338645633986450045105733793484265380234928188873993956621363463358638884728592337405633482740999590486231879037986686876769237935886333688345119543094134859768202879306286286907698068185714768886316323450145241439488476780582647914836440034799068335259374213124773586303752044524338760131829935161236559937688448787701258148843574105072144638266283455808203195948901355786690585753592500206973981698135550433208504082788224772457120040150944908231676441734719706915654597617763580889800314782314867413701494054807653817837914586082852174625178509009148099390132664349158803579867879243023301222811109651091528155563126180044746711364073318952688123154941243223773319463624114440979352439683218686265084593748280556165614830103237618064020343944532712127520422663106383213909898797086288550274644595369121147551389483153168551962494678845932791970686296519634955247474668619105395408388165432665520091129438088658379146219517269326768360064039592519928537768037641843207630303239814511267863229865912423733974140973174754046007919018162633181136330008450683225656322081521877877697354118603279371851129984500823474000118453701775973370293532043630182798218370567825641635937283727312890800942807091103430728332935448497991852087057873102913620708140055177342794188999644974754789663502036070034071968053150494293662251435511912985632254696252620588186976627881653514446070327794944619211226248633426666312542154377398083079369045095282778781107732885124058058067140845029275649385113910625918818693837390845524259622686481644651466484758555414424113655955705421484180318677580611929870764247252750152660780027978196301816976801381794766478933336726934081991902031617279480780411600017203593599727344974339047881839859443457025854574641584691460192090688700775798356902129645016773064522005266126523173556314770229439212809390024694035596227301186777674093523582552856695718304482399602261183838015609241998158224781918737632951335666833092517051182292940273002225436163429766263675102775997651777653635443216800701535935495217893456283522708349960191693420983993528965347642899709929861702964169833937749082605311138318071294890853930488465474540027246741818729344814431491918659951312316627898978358247412406562305960315912435372399680317167098097619853012745801073611110021612467768819971322428695918901586845479110846787682941308248332300405731905462019594782050618403009705747628228296640698378217792250567216713860330543753788672682950214255533834920435747819704593223608100532470910142568496930744317820852060154057108238936692737716818514002195621454351942572151154839751523505992147899206901463593764072343304297070766734531173488179580527228102611760395292966263660797395795543207233339148746644147769034341126028449352570669420035620561063571895640326759170613245478815956785639448547671036210106737445407362882075509690698667784426955818014853673796606973146102484193283138856976386312761683600184819612025323328016386319415026688177272146508724955817145453282373796018449369467930385548890203884483975080097708766704205896610055741420492909604173187093996172787222267903478182047919210775731442367082804827247071540800437940259967165274778786608864301098925520990695969453802739192146645181452473127723469582146279068249631277515861298861261193806951095177507844979349697245070225585997156306398104498743429625887457201854454086357563176497007905305813198315938211275007380415448672172211746028480201808620385495882359262931973998908556817434237021656382053161953848340724336840844210671912007610762859331248062785198446862600367585141301221000474964709061016247042962475424956842236997512339458120008902296743097545793636304959445468284428170418389174489227849982079414149562406091915107632897931695331200857659028253632479735887161486809806659809106568105978846821620289688705644589209943175429632494127500549989047199484493168360515425415726496833066976874508803951703415192060435841322789702460354261695299305564636534986430228550957841868298828988640177713017586835094808272891772327561144767311635692978307515666254922908594957611357645618039124786900128870863994692551202416905364469646415268921838464002455323932337833252587119569771142636976321638027622067745870810195586571713476812307496403318773874341273922559967026915288976624716890318761285547368724497260755854375977111985838421873094406859487716655086334583309809956423672407002210141304967159258790834081022222158618157231647681871555498154076781721980789414577364194050292392888831730999253719818995306346770425683018914685751928796830555232722239962763589201429145612993296354274888776268481037303276899810900194668829334720752741363630257580454864600787113258518558932420638078323951021287823450225611104921831610750854677374096143721515409551013182804948359769239453607147176025918091328275043354638029814536029430427175347878911511839364055858529127865273263772676846549922373853798996353875713960720446667889771267573715933785609289174026526333042549700977252474276204158080468282017864418901391432928282573167850948968608046157695887913510165675493881240577349063408063781253180917135987094861303488957017235008909378491466607241484497304698337078728114199818820799269883023589358673008342932755876386531003169871468486098311292825591739983186500010613438110138302999906762222789851228538870469005504663221969106664383994811531006909552071879617961286348834023350915269064580378049273789516110375410356860040031655819042395734120990348710527337135243256113669827368526862244940913861913666181763917661593257258087036523403238921847432707743148818415494762812598620474102950792023262852668513590840512700922977694282842778352348896927485614057047247659409396058769294142212979199482290809970502533539702777834233098768861102135365273858185475474760835920786797969446937122297974361643014417664040908364565945382606147833434089872431940679064203818738432009741164071596403165725296596682313948055173176180494827986280107850371048314519535039961353278131993526367085824383020635407029343756896801380141693882067586532231754377369396273632079194171363541615904110995048152454682284363544282297332200853352489275189233805575596950084708625328692917491667857844861802711164717359823176476384424076947848124011351428929354642785456900547220502802671639235267544852971580594320728318672745158144643279467657066862658360102986934797329056907109739778533445091343037085195101146160738479745393842694308991152316213026481874327046708205551594935700227136718147775337280762863401931530143298367070228779254545035469850165938007149184396259882505640633423921459594611298342501580003405103040803661155145822321335663576169802604313484354883658267789833021564367208178891792356882437335889659344148417493871641931072877544477847065752560866455621565600531496246591068241555755760778333554847682977905596698765535392047571367714585225816862936337680390644525112032672671236998775187629509894225417533675407577349714954755535875656976503991326235987085181265815271361354022609222577286472453829779449296844853455520995314626140621454755288470648460152965451893574578132556088511462682648538314347825463250091978651215827828739120330385909957770145364835930567403087468690634860441221863404824623995561913215503792493468929991299527727596063880538158931388331008177791673560840965699977330099927257053483295707644911987231615753395398148292125629274791068420675318876307003048082907586501164247102191628003181296481931538672509180449672429358879853876283875695668872174969244767547801156203638622182958068058486405603475633164139238735854287300769024834414822870127739066777636155969430806849081427592780831287383645930217524106541771332581093375311568948226976131965678748325171036705254827080497190303746277467508234733874094685019174994561380854311699262455045276212764544051270793441045616953435815177750267868439683927861180185778446509817905420366502531937460973516440390193328163826748736814768016871187707706922975264213228528185601808805842233234698527474220403599801630086171111579052922303600446277463037348720959189936390179950416707681565197666399512250437878774705889574751401717572922598698212094783628291965825801646127585367435164282010431488545300863457060801734614953591448572350025536813467070763825858576100524151907330505995780537036413003701009978668593108332775848576229505822625196570140412694071713709508940359008693627205399850051283193357917638617558585984601558152461680237223030469241170838779734545981497293514485197944225256156545554036991945897679740250811838391870789417805921634196421723788620541520351157682212675853511477167440755436613590603750589631091879740626720374088042697948697714477410413459378453174210606903095020533584452571658823080503122265312071098741491738101313127759686762596272250724199864956804017126825440854567859936205098729040282612582190991590015874738327963748883076815102252047189996587219897199765780724304234945529764601107508477822677573482292401624043754875058575550506109041389780373468514512372006470185709741900334671964040452970218975159337789154813168466324740179209656067790352455103902218113134034451664706558089058181161986102718766631787831616463612429149238798924399043787070790341417841741821057328775483192691364753247387981295750708336325280151890291616785352722022753847622179173497031035422019112736449616379706618790360886323100537395006621803115364398214100777715654473006494443055047550525166617660552464772236920857479645615624162899535264873744128157354424822122461733113911392311870717519441456904579743906204011984450079812499663289731528070555580327807957074297710456363160222068430435573871871136943658386942001476406987243323770423746812129481345878609979052036505767561317556995061003668936363598848461738043842564870332773561403841091314473667315707357779999274636709231719106738157992581950377081612899627995083501236842261249287241726192847755741492206219185499254985205285146787934884521383076860553271969023243113384959228985474385753983358079382092016336100218388396018557841606124642444098351933706892890405432918583289314279760923041939504032865778355037915498460448679852464122915840888352106856903276554191531081189676960367092019232038849676812588579936943878996714375961038943618943100288088868652492279719897982342730163734357329236812814774248517100551745978974478961918419630687211805718848556355637792393069903063637507104349393163021809033040021490095933938414695326189527140283805774437675561994961240591522235064992929872870756576769876022498288794823955868208344458780265540742271878288754486530944323876025019464145764115359222224545111756975255395146287696156360080222484275796176166338330254958218793578909318164548412707889593767840393860704537915119842852072032351197969188641610935944295291417391655685614788681262717212834708323927859463615492721109189084775885741601635085929346390677434780869037165976190287399603839765863847996822950789059426430933750762875312287414424473814732570986922655882260148448947555378969695363857585611296071805583166098446830702729189155712599892083681500610060479667767879421695080131432070246272733449115725355108403433394899234297507079783978174759648710328028088636440547516463907540870114087485372456641707203164505917984971233938943124671699874671120125222661635000002005983349007000105617604727063374237706809106969617389077519652985081796630355364756268290928987760780361573664977525952906875088104612777360084091754239074714958834187610812119227640133906912153669125472401584690615120800006772331376300594767105161037640093946035146365515299266680723532525568810397915288358829698955740039206905694337755686158968317856429388932020766193951466140700954176197176609961883116776032878110558636072391119892997540589651888169102029103613547463216045578365494928427418519230509684534139470502378119521560976279870645485976874334122523869119391485326171417461564537886679348780309673577933493456738239363458826617841679593361808395129452459716319722370948835674212089679139065315285228792062012434328316695311589027336199715946283734288695280700969590476763637070797006728911630546297772154370296686039149013210608441082146879713498758974824303320305236176981928061948342650191481464491602109059455005049975702532989102943679246896717547491662216592937910900756158983797181629299693191561160683690056991498014738319727607725853432773080574947466813892673981126617870642882093722263944602234187093784295666778247731964884644404131413026999241990822948171866034036615682572256944433434962066797187617893347286852513299129552010677483180741316640754866218496675460469356847314480213309173052993137412445503911255787824566538957311683148791425274517531068246899973934725715815677230253794709919167590070564988905992879435994110315991100245994420030144377658045579464236701170573936656312924894902587767093864576112307266508257909141097089975688956742300103127949995416494522076615039489551180751863074937479185367132146772214052749124043101206390088707232730056016888591419100816994865666896263283040224142164358349691031073561888788437140590926331361222044016339404282646159585148433608098045671780159960608233412962121851732878184439255454035017521787812931879297771684683858272381319444992792510044074853260458017197797624613839019670348963144674890825535227814375517819870048827088699414030979081428225507745939205745959282809647429865786388557316280414088838597859200086945332617825138732782081649850202203269052762026938784604235735559180907780881789282811494393362021174242931691393085427372452974547946412750702550047038991725555412236562490931790896557664821323711113056337531466498198945252082261165015807010884197663182061605749070225084268219948853992155735588031730613975447736906442001911134453786099057593227605440922333369912534624134188247359468190716694721908852451989884450148749147942627280868710100365512681575013154996071657879691250816865112307811458374558924375814331146487500167034700107189224776880293109839690295859184401154797998194692727466708275273733631401602549316398898615259192623318834103843822466088794887407718662491777049588250921821594364502538069401046339507435844893150250338118631041567849581950309949394480604347872951522187623794449229821952316794871134996543188421976604175403833962463137754013481839299768050826242019088536828561947900682641029431119245123033006496240312225243614862471410516915626420275127385660714189018948920049056515637635025850573203518886972598196433736106796517211562200821002413325537461555662094542627474365342767093806653690003936462961596325543493749750291540389652112597197139407548625825434533549468599048470579855967291862165996011996968121630698875744744071967216632023872597453182366326789560312390570942764351392297516178383320975780833727433127104745696659529147457330747615799300568812690618272914001549318785491569755579060495123620572615984517384298128032058630557618057035204851785021982530897868765403928849588462076791410703384103931842898927067663539335736314736299973760123503952472502815256648495766431935096455833141181801782947956802579619833060399151022478736057180209647938113782659836856471052922180532553888832211139540112317396990326622051658412653710005079446123451271940058732534009097636462728946419942798253737074537823890133858353128414999900830293125140396244339393698512276018684501445014484621753729313211848093055158190235119220856296274983960360949683327259343905821504013835436189084113100854241757166822312298574099728047545269687453950324490300076800701906288868097582371465924757065177416957209190062522207214214734999995386867309621759052217673488640063831404099248027303653522713022926356868643252370287841486934175413874567130230483942735675176813622230560433054088841413411348607787464070680357232245260894525254047890630464259144312781484163766023840297209157299482106450285172102164660288780845676030042547702498560320327405489402016263283896931578523212499052424490927247921652991289609330919480236133522597104895716623552017658652276869246898258368829916386170012084323443246344818795350937017844426803245390382416453699636202697080909007708382228460451207884220235289973863627529816769874239158067791303990857233257805817753844038072064269964642461047673251284880174124519388267900290927568838748304045813794557735577375949163416677934462286185623566065351693712694629048710563093193965116470334752851990285616083852081502107133167158889801362680414063541910884105549390601902756716531779498574470705090258001926908257813906919919350120948257474024345532335977194611259124704582290361312944671772906653821558127368826292190426014681798475334264790589988679631986000977055587138174212110458595544940485599105517252814546012120499542671486995008223834142600379694128894748508687024217105272372783582630702257443974745276244820623610944821452081136162603756010527281306995229745650960285648311880026851377644760886842634279298805710918810640923760979712402548823531296704573321461466662755092902153177333594160642915400317255063447787671842216310471268623144063267313359042578716498561551023695417362026785526648840228289766945265928394868302236545066706437964212092685997647579747628381959403066466066669680055502363326338566986656869688667695179844904027813223848021821132776096923704687417935465853641263116035843835792209811466808955107670388203229133334381626926309322088950079445853185514829790373037677020347301478575268800541664667414401396977164630003518669390606529689662526369224431891508166921211929433670135201793983976034450847878254231152518945060999399799039531896612673110870017796971679404967962847052984025136507942962007677507739484189786966069186334613366070461463561719467707813576476305175571731681967094200422252162707392763922976100469691590298031670807668074613915687162327201105384271448171268122297254052094877751303492022325070302797956648686334231934766512984180701028258604080177290098329170441491421165453997435995206331853307307067863667005507844452718627713605530759880256111480799165144278716084467555081722481375597723207994996156393233953675268138459602455797625778197184557009377980104060759675453008105428350766440772723661938981766980942455696141802407204811742202166783889621944146890025384041689040997663462700814690309938473074954969281481350238282791233490165151734726454190025055977474353435468207121133741447034158446085732178583974304310916609740625982375587979092327976055191446610427863162142561284129779249201068175009001317295107906262315300634468620174986700287977500646529474348344454700823435580925799342125297448257859078460313870027726691230426080849193473580813237721716380215572616412659909269902740267229910551667303101221501953803459368238304252683126316891430632736290747880779421026942621036724534341809936334675131872081466225628737670115564433956433478125281454234973108987468331669428598317632307213594860513187399676403732580079097972336693765105562636114833193647973048736905689634363481507759565811882596833423744525510807584127499993619175254211873698262885088717191985942636662933711244383139671348898943988231552918722738769572453358606489509708287190893375070063856524767490690268494760661861538014853438291855174016306777433264498959215594445774581680255990816618314349360136291156308448459911546428663797096975897245513129682097320419578952517547819927966101780632790660653774396540760356643225208899139651884533602544896702000221986268323088338670196107047781238856631885976208918960846242038487526382323013949496433411275879143754421965293278562606656211997350677035645486429532888922377517592852028078815982618287227868453233045843715983340253936010336281231382514406928961158622543466607515075174227106226224369658485469692050350485012477402785022547199159541542674533002322885107854877561698195754773962236548028069107392028526844136199822506015058114683194283363872966630207455361419363015302891411613541879972310599693608437128802688431565830799691066673368399723905073095018342182481000504867216614294194270605379541797652931344331391246272014690258768970045737188183584244898874181146415355879781420196682748268766250603348849073936350600809390889156048217640100875752248442867897882256726452071216003491436260121806768743023965647333782477500393130682385429954246545884848440397339615906821711892732559069055219295678795838916094427546903537067369554356197542835240368580519207141484948073747588833348985431693707165917443515424679256801127717989115541162950658942165638661804142108883172330251869134840460871401655391119001963064408096821637150864883295056723432502950739941730652913615774487887237463192811643206066344082434157744468640138348827047717962537677573340415353305782990874606445920653729746137803503395378491006472460402682374746872353893877707139079664925254647968977973211348913087160195165825990192849978268026582222019234103897754715418472996662361609226552491215980578947272090146091372332208719507056617750882913179206150939500380933187808991514144044733181640401850520978026935538035890032187222880067656059468266918351029906613683423476171170029326936476993422997372107286280308286253339519670171679965545370358074371238753166073509108287106286424252727173636364494929381398023649748676259884545066108319089318901239999351406570311028575553211883460969261646218145763749999210937628395441722772037918876937149129045175379736448226592162782347880554333155402908835813975376879577504223640909175676442580884395898431212747780152739383322940219331644095631926263873354804347264331313683747116252152094687388772368629074667614737812922633938630379188776574072373163218954396173570624291254749702641958711114995008824624724742462608896388451619232728695052906759324685600202640036579424151464180556177651374668027568917826199612495455872748527021251082694526081321052149075698379789854809833626233341490692286538812401916088643315124906709776900636522970836760091042900672424001747308609934861460442757796371489648622138602029759776578245422061664854680660591918253317361879736415148634892873193289223299384178807089604515763796577678325974665703637409658515193713478536815374290304077913166574215430936772534660493527889946224074513966166962646743623879200701178454984535697910324483504742992026152323503545731280232802662850903894638721072484385858690898245644697828460757037181119357975317870862302723958396297161499652519504102981925565906285021332021069327907251573470831218437967320655351796422583013797392131669191573573168463598832335529749949149376718557214846458303233415126952143497289452908819166455326344308096553291857129506930236952480657348412650189453210495984781400193470584745728937968590351939882501135726185233540467019609880111510439381553541979704871573053994953928317600747525709972501580876964664760014345844128293615734202363386286570322975097717290635613151535400413081044888389266156847533965989540255772185762354711857672516151578014746727237370952183899299900953744787178044050531573364573898217143129792318075682991009899870267014626278978115105248574832330040281624585301866841204286220508640977655869920761577534937081141582612066800753892432524683750475046983620814321146563194198529030982077006689616444992422029002185539599479295465611505292026505149261683387892920573638253678317277610782804908532233082185548650121273902216330116745113362553230157839203058785211448368805693510333471756635509639858847822645822208661836523201032074435144165209716261310129926425703188412545063852356150035480068853874200176361651078425341582488983656981113271024365471067923699000497173371531794253710741223926171271756258539735327846910433576155752038177782967326192463677617570093438735204382369124928860801266532610199208503515681478025699786865516751650856381905628844138400409623568977134824308111979590318131159032703345607469459856699349348415065436382245957915371131132261230719398004738639104096604339196113916304375479417919530887225420350492668892110065495902638184972918108976674044340000379021929014712461291456004155414852933621478017744012803532651185135684718064422664574803734543350913859217408534329157160914185609066683157243083944372065397531380741370246947790019642292212514616362585673628937921014417027570356307828394464369496981506077625987225546581282814410539843215224718009834241704913484384633111480821129125685973016690637905874244481368401851769413866877479317862429861410320189872366863939119489049725104571923989077858363267207367357886985436346690345080720323226904698716241616215711505539532206128451838103679975829194509185683113858239634799604123630113446200814862559225740439617165764282680896831705588266683979008768593878444051930864202085790803242004745541925175643103979259277894628131542673434074453716072898973147778110168377524710269372955217955748045794709784197302789733426704911613874078132991670485731789098610729188956134166657053179505319066270801015995386393020230521199331492514134715254677594834048274623257423340342527074376405478692005637797870468334262557728870052446989038282519214005233160761682348748046455678212643355354365889260000643006095508490390267290267354598619529151399032940350028079608446153655579595156731000717913323950220345026704955241577589261193952583307546843798026014112840314777012171456672839747166164008165859330335820152660739111018037756191499885244877611768445085322071519698165606383659646632919280534250205992473995895139562115112465018616137243394087644616281357427814874324126584873405161208465043073090434342670966890645748940432867003287873704558913806656222743417482031505656792015586661072010267495778286810142201008837739359286639347215223797219191047428810055919243565318436604564500723041558763639360076329957378115376089895753756812937316377259394924347020258940195662678712752928920982096602948452168347752633185403972064805151586123540972939967557711137673845450318133483971157630029476405286360577213498517150135941687979811437321630019677213153156749722713558840166604711234426560394060336855169503318974070070735618718093792092810180005702206515040637568715096836150459913955649800478299929304395941316136981037719722285527635379510692169049315996172384823749715356355969531237419495987839461115756026766471993292057067835416846745190988673548634960150969299413581177470405751594859412634596429822781144349734777297346899576845229893281802025118560131472486110551875946410130336561818153005755274189594584120436085687509725686938749559373754512809180613480071218688492081477804131485248861994417196585408765698462250493514735311536453345282803400707324027847477742952614579643545042280854624352076762769898688366945859430241954966094726228166022200002959101392609106705114745779663222830682616242492509588775914682308311120627380644111214028127830097667463483360362234907435955787802073613543217168006752340530341113017276003969001770671106206516637557139444033134204377076046407748283039295287475860410164695452498893981765590731570077781362966924632703121267921586126185628219777340260926761301622534131536099220830396657334087181165552459260557940007744308762545740530733130719071622593405741803088772727439875928096840568453931128017361267192462602268471407395986362290981007894321957369912548640625805838227915036170841044788228322843796523326647703257298480637958312007400824996253591689994582531819732050314997208629529841723105278294971931212249245669719730102843148321773423685459989610256262263707878125856691802261645166486821506730072786948990580246351657185820089315410512922847895061515784646733516651220220403832032759889759015481763659951799325400928536637623533946234135228322746604364372135780095741136509819837583347124463104077402436770944197051770817521123550264014009795802568594023876061802686911403380967507592579356946678345330436230564448239264124054919394712004211547518429671896582680533634764333414486349414805011793108019052972722678568224497704016542725791501254284106746209238516136294731955440422529188992137016225626975968844924884687990433259877412351967655901814434811098304982352487212572413433467662479477459809293317606380433784939116544020004465767421354167666614067187740429319052984685567652094736369340844954684385331852835623410201217763863648411683813085753964396297531983597818449608559581307915836728754784254497921780463407831441772216008747111271893524261924729594543024774828113038885660214453724641334268036314935285175865585364745008528437940678892604559756572163908552246227029482247590234119499855749863317920982700472020024450649511371020274347031643312500358448506773027518857988471496927971862794708881659613088029611988553931093918411316992706841061610369865864221377788265380030437483973152355008237417131789415744036009867020158598550108950593900447163602091042619913759329336287966168111247102596382020660377243130572246829914774095051296250306194705198276775553245399333144647672151614591737281960600277767681414828486333163459012604317498440489061647292931974909667939339891027666061223842508981819188852008212166766521794543400949191720987266441050596846046736412739793390278820794354970058184666696702741687874080993080310182662707423215744833081673413125028453245321580024210372443617455988600304699023902002255412271732699815062130240393185282438631384192983028636070145437179375951785043597553601725116957760691155513741657653632695819176806304514735839311989573328723175948939334827679295414076628571467636006550002123686934829754369790125533815041561715474331864620551510615255159522977633814813410065743415247565944482666566176389573650488507976274972749759310296870722305496593655636589980952262972761352587674609997204751763747630429019407366596672918607227326393647352838190913293606683126906159330920471357770475944527617430814394260658272296004037856586929233798853968698661085381145398859085063380405587202903933535516408988767877126650415112160470411791462281604247471915532353596777766101994049826968931919939872693194564902591212956988822697210372929530588540410214883289315996369558462080096799201666370430359675936277055546636680780410191149234795614659134080307432658995502645254255184556245004596249474801453382003172630279682482367401176653958785648970981157034550383305165795169863706033310481866524253558047749119736722580901539767540648540750012852093998467359786668765336735090698571088131719726308140172565982811914808078007707138172869908947566370159326340590062843315719521138570930720403773680295165910518544862895396359661331898586682470134251834085905130839967450072975732757704654883470931165779937469549751152020891045614756017378269471895231994885701976341624593017638234906572542747778215106522878944661036544057556914069155527202629069229591421476611946336682125396396265701387476295498411728154043613938502144070479349002070158139669847794546017429824718503363702421120250264048686366824692466124606264781437992789624284911295394945267549589668966335288521909425681407352445420199663321488547347677384718772393898571611396181026420986713968951099640088729221799240757363464680678116366629981549433070992057280492806674778826624582209950766433548713301859401371679557961429900471696781718781156121988309821608832979582979878158179694814651828572627878811882168363591232020096062231995958743195333854130218103012604305362505192104544295875276700734795034296573311180184467450850005835126070050880693434006172778884538719597722914710324602467912897004540124354663446871081525872472817555052767396047942853887964286608412539013005991728512015483184772111505006719791969901204216396106398913091148351384635076358375023902127962220974993010740917114409370068678879848124326043388506154889894914987657237166255800410044414421038681882249366130330591528837439891775225669269523532636217808335498446260825309402172301737760980287057284456586137024022460044531692120618909591828143309047084078093663831217860302932477887402835467945746795091862376643184364024231861835218321177388090736350954832008057160018777360934518566122957961982380245164875698877010443469379284192568023794937610666604095479427832096363234687618565508834622619962252940072611647951535149645813127262837046040005283679287811504054119817738870882997414339311267014145935815271819408001231598854449851207104222431212240258875488453964468872503824684968792042638470852232906460911906497314954140047915749967449016420282441689255861002781863033626670603191544555861633752228266229965565790498087478165687826199229018972294088179292447788225792861905934657965687569937434456994468435650422503823251203362560335223264135462795181776626439287908690972565909250121365226830937084799085176381428878985258814403935517778420651266361960458441545452942149574039315765445377613446448328259446327580038135677391482122540225665388055732852256362806238168868087968025684794250151745857670889452521828365170380177362518961029374165714482802042797982933594309439304450180647299840675537785991191844833798367855882866363038611436874732978310665414009650176315703278709471459944729665212376741681096819505027389926640413168289809278457106827142282200525019207098973170570152113874142785351560018039139550787074579874994707935628189761740591369223317188750415227924260211802098306839712374281772859535162593250370405597336212138496081988514435298850362034285194238949370433316512744975997334642227856338070679963546606603839059771871447448533108997532869800435832527338414984768220934260654151014484060884739932821255023822633357184455860377167377411775305002119826765116626509195202642849250663135712462516251441074554113655682576894969088071537611193581004633600018179457227644511583380940125498901645853671994219420315817327257460784204134002363995031349920682646653054528709973833730228186534864238945457689446388157660298483861567507321532397712022732469374411858930709027267453488841094321086632917959411344211608822230146238983655722078264680674623509231260433678669635511774304013348717572444963653597090572312435535995852745004789105999021743211893156201066640518417734040234944120259847500969772523949399434707677878339169351007635957086575761590666780673400504309666591154197287733437633155063910375652256226615022578301591817716042142972454424354650054964333177218932250976310276990628395966122702439470636723321082800190005340408435279608440117796643463268718902764253929652658403700225053207607866427607583336878038228237920173270077118984545809317326905945044656396467885339906024626457554301348298848404950683979001669784550285697778115781207926630500056697853450788992960141054015016274331649490243896238074523103734197835042835182684217831990187429241503797403130112889271981280107744248125227254745762109366589933193987504619737540738954759870916030066877636841772647363400933598100406166754688714214628715161496849371227293931625210973050075492404026713521609187252527188492639676007881986344869515731945546964650481039721357333754473007449603760381869068731756582671862110650625476968873416367693703837766772724025378285480710155814033525580698963824167177559082895023104106266078587686754816727071258409133812376523451675237609725340332371432173236101490422193633081766262204001468795964199955255129604276725560918696683823770406320203302423487302893023165331331701286242344787933473499698005370762610233093927064665940911348782449680299616598177468344452634855695765837185602174806508326044538991363779406758647410206904412800063218456608618760502566960946977432269823156394361330632920114916559062684904462751666050533498486969976612683583231528374586282991972468478422553342870642249791258339608549817022646895283820558000411596460523833590694149230154191730062241291914847691772035522457529546124738336350829433605797618233882382119981763824249063582392816118376791082419769919950366809075531376883006590548945663792950396227256248433408281287032829980221634365443071769342637939857554482467767066290875216932494696853309112250463887198304206092305119475916607940430903691835947599361673478515629999286957250738423257859359953100905008760319299644060291586255044851119526869502086227751546157107668978030224790551145943116498528472949029229818604715542411919120577457903413502526269041639871071975404301778217039641330039875123851819658602724479445886333598092799219752481264739668709740121896820200852934111482045274881316113487474249217460400413909749801677324797773319338444848355260251162262824736108483518267130911751873639048558977217238492099905886138018429777497427878415845881880268706219316601885393446652124659108144438467336096340816450018061535296864050435981822073693616691976562171782985418949148319313330178134648437652892019650079799969802127119000092166597093411703106807221854721116801012261676424991936151841525397538217976374849740780391400492698027145880804777511980153834426290995858680683508016118584734040945544202954235197689187994006047271546310830340948241715982365306558178494382231140842293996083758688903346856553885075435363050084451293464506846790069771359238428645793686054210445446768032900817884633148668698398728251039582859596931677461427506141417189589818238515585087467556385250583903439852254039019945258703654743168818340624270840654334086163077323437192012335351300160714265384044499121057447701845426637879710882315718042557355661918200214811742865700834156353988560678893978379424537979953166939027007445196568428786492592849235764849043750896627730471974828748546748344228392188807108546532572532652625034884689215180067303976892345934429291272351228885178141799231889695429004181968863816275792140601319363450166240166363277002247358638285236709739430398049407197238180878749539386802928349711383886141501421558058854151737354965382854372005531946073520157943154555407685927318464343546131439074906335302966224403269506740169282968988369146583268942624945683512163502233857189920821640175082137742841768520563370082576786471893543810093820799455256103970460929891324111335413695353641720388307497423814452441148143234954752921798830218777105880891538414585734272419075309267518649118236509269300667492776962520309808812233596657507501841844927847101721948632051417615504866255129351962595114022108783192556247627241995666945741235021305217722288264797364167439037415555063487029115625606955848844105498705153107904949594180638354504836860051158793671416791124737185821845347286875365993179553908832935172657655863407628796627018948122388842946904144907596083764843030997689353816140784924339632265999332366857645079033260305090066992373271716286677015888899096238095187993426816105048096286680601455685609939828146134990211924544574895962823233304540856323283724207623856686491861352442844337442534999599698417331384717396913480251743573335779507272274774979548951415720993039898304771702327534687228332764793138884859683992385929300470021080368555532201064726551231278525215874037281204261437921375457539348617036642526279990603914044925051199809879732611504978097918281745644695018214922342256426431444854153603198812579364877147622212016395647615722356118202238544352269164851341770920355835611797434444582454461467133686822326662054707613373059522694308406720115040134366925604555499081595927043960829315757316008067192686187365649061388549753563128996893759913533982584025133761259077257965443346196022885375255184593005881955490202156538677777340532627144263358388250780925046921854747821340988949409883800788716029366561764057362561483438570804184726866059604863757340603817133612350833958760565677262094466093877148921716339504689612756894797491045198010191098263755870188798229254141641540724312410938171163183213885524082218175432125273336962218471914407424780027296612298695748614620037063507285716089285058354548627253898626473171455598851191370075937911849304870330174813411238278355633294179261235356007960091625896854384697533874426839691637558888886258039101344390679313271381977745084176250265058527736366661746880009852073556813258824491933266469359260339245491301758467526900493316815309089174371785680789610974594694078273994277338323803179330870741524146345899848726241697979830311922632741177536191741480157795750411481508098841753167419602765553201231598086664604994255041992249882908018224874400691308510341808826557982368237688185663240263378661780477744651006319760128817391012715860056816680204654802125354289414320815465817456655327695191415778370141186709835534392961902104897261849733534855295563216939273390145917743653950527349867842151555334856212217880308081910868362044318220205613655351871152935200174502205645777351645886629588147089962242304507210195724265530561541691164623602482595909855813454225011228912727079804386708511039084681744711633575611216847438970499070059231789433525854343851459653095464056524987960629237861077544279858702990113748387008053835881302163834985391259228567381578402996088128034610083447495898518120092725774890947098927354631466041128857787702442987364360912800385696954689108282533411504014024269421972315975918425908041593873042649514896114824561470682413207358956761244282645057274849978654779623657821536067959938225321997588528322759585410042115049748077406821322959099579152955328897815975570844923635091600550227175932463732181740508701528495756441855963453410439346640508726660119989935944302168813754001946694388091357750778240070729940204153601181589122511344750573511369149752013793776151019988302940893319381023437420069087958232873318686809631720391271937129466767742200343661700837148658607868111606031580160062453229264041917412418518621045682086118280894793559824419523972758063388237003321614340098767571164069300905642358558441272458498144782278534478716709521088961104864505561116102274628416957648664716833104999892906643810173204001370467697809273351817213598302080251372647874433463761293883298213947608212685523461662973261717024797420689890234741842782917256515067985255324299913820910796138011215743120409887642385944997366281789531365514053700369549334009598553192073355800174616197025511401446964603106969987514210065972482069733168843524012425909764771394565489943455953139776538323422564044502617412666348873191675327706977234636325293723491581521369092141789915753853345789177199729085544101567012902165652088024897324910939086263078282779909455140986406757507733260722136558409612950359218052308985979657262877112839834491058101499890016211490807727892421957575316883147843126566988198326396473975510859521585764531503460659419459141525675349531575727064326786953152955644095594366597983319145803446969549250621322881489795084041828821178801673698520050926676668910273753474418645041927112182168296507182823836281496854849053876384172894729737609618062559907170600760288885750716195316891882067631223469111745406787799592315362060022773955421557015312114719143645973566207487132815793468925613196592109620631870134053644372354779893724353981093542520788151862006471777107091847232695041887120140522873051679622497289697508830510529678797501043231820031795511196593100104837840109977296756448375604723287665096960211157557997965908959387046953741158585404732748158406068320139246306470361449027979567042425205785320978000627030620321315442053136607150815173175811304614106329752050622939568323818605153328659108044918035880531023350220653219916407742832337353827445681421903417643912973614104969286002844162108174906291478861435066642932909177484214931814495479099630508923802478291090849812878403716250242198178002168215929475823376730353446889303948984927340458525662347569342186249112230801971014450135024319506028249259847388756235096588550404353282632221002120509704231697111379311665570499028399646015046451205296368983409359700593271287678977060522687566142122542207709791629552128740525703591174869017684187383500954113388560852900888658052045285647868115586523438223241510028987415680044148277913849821215997748143697579420017806346714023516049247262550471047831812391135476902687179281797142062991088714758088303145731133183663913807016171907658613446101239325055206238753328999068400925913203950118459038777420677554441639606221835991732801579329212687384300517025409665185122289712473358170356104944334780289797938617915192548947928520758781063068018034494159507566252817122107685934584597363255995651529055610963899318303742019518302023400553208681504703607741629882317690323863596896167158967975495045407226940663216189211184498630197693405154953227930699224761525823970851102283544132365442002102741274917033168289161413689815816801379311951139690283512759655777502061007864838103962092836474961218937706305675757955339061480326772761253340808540939298573634126967701171853689605759088663769208937021372815202949353864196771884511538971610158025231251414650440071184507889317300669089101122542223456235211667405507141444200783786622816550078363124297453489360985711086731484370527367225217808608119337931953647184383290349931156296172732702593310323482299921072885320779706903571267084028652335546690658295740912154298886957852068249420245008329885376979515412441910280344387789618425990646049632597168899046120593429718950669875906329562593353773006887538885501053967576735446205320300994892247773200300084597637614600089558471330835536590543680890675888140477202232697918518267848522279333244949785747834637720427395863525142337335265536470505321003165764613740631260522630276313248049877415719365654522450444092107203497819580458385468669427785012179769826610024501050913124931190100012847501370325266429009066470748003393612608762854844657536538836824406981300173932511660421856929874232380734227888980088879631843418744525227303131109377853171585596965893135970526090127305061662824398144844001501576384264308056952790721311682853984328773929614852434993586317644012422885969579586463448287394332424797647180681064614354080672617639574389821635413163593392031652041795151209460010363960478006426451326965466859199643221561819133144380220923633874142601855936044853310604525393165015328139184121419415545267795922680855768661197114908926276355731937446436020144621893408121063488151744274491905888285996289072759793268003023624416644980447916266186847616795968549891636875383240142344796323021253327897995948090232793702217765159772164993445148048826921114844095672383320721732886686514586480707238315906570404015410528974080996185506985879545746510693962046818430689581095921587620183507298839578582108922093003663245819793846573700204779058808190198633329435243640569189181484196024321498458418964046077039443897336080595648085792256819241221440016535634217011703174440146182019609655935252991376505827136996028109678043150601553730466764312680581522408764676436717760759409495690563318457233438010474331501824434048902084732353006161293631502293334995048671096061112254678968614896004340943785439116852368958656640813422134456495133247273738434158369052916190841518897530197345947542657576797279877281478803824686738423548720430614974032799916039937500831219926742215592842099718565078111701120607908893756267933197869252206339704224350746062908341846407203169110887401773051731773309124479761761349101400592895673899249004086733028375473404836550424793458867800690508669864462106482214204999007681188456675243087501748829619850251368277655706302965667060463523256656342848613656626899694476093587364208312865919158684615915372112198445554611813760774643792649461925825028178054217011037456285327875737814614365828663375039748627736194482267963629932659104592515142908515986543388430555519258603523473108771280185870971876023294417550006510140229465557318855718253021997653512789148257941834720925213240121483759541291164827776061140651436334288766254431232031139953621859510143151156708492826554182210910396102125001610031354968685158428430322622412453117603667738447017548565711656518727885171277769001466450923039419240409071183290299496376816222904767381648520494038249850753228481574813476872253513835433265009504446735196358682800373719238923219488258114908961614525759038518191420852000930183679207586905247856736532552837541461611526694197331453956567510426305160806730632269297380721762567414747036348986117855897612123422245318424832464339019394178317367573728327958991220529131758470158239228717054567201133140869004146842421066746640280802477112711055141074021277221719968486696718427120291827232531044654967864789400145645529827110961151088808243310184638305843335852215547487139765891614801470219728995803611502642537189249302872579026293785292748861872400373509414959613896121675497877875998902824036056125651135241196170766134153192191664275646291279767394556047037982958699975276529409722576885539189927275855819199881192404913095289647899912180484111824733005535351286103129148074821219947421243218373485020347136641828934937357842636529811694229792530257910992736301453575806154834809826036552598735398218616532287212664524214436607721404960078110293261376267437395363164714616377135457104173726040837971297268821476714115111115161435544715383904591542529092528603792519127151963252735088425114889224673064944867083206674995750601996291653930001684475376223667123022112198744817695423658018517399842843161133177935066210481098578585707717362217285801295179285096917193597413251746690771461976105830591849971176556096963406229500382581825532708928236294424861603098729083236001849124487173318520099274656348955107791957474362514335907926231950531377585098476865355142042644905920209281418623841695950585597567303891023803711816028336733824556791956199627242162722653308957121290669825686224878666959997545042036735123388756126953918513276584105462253381077783739515194965597981060903438960102183470942086164933351898122235410893313356752974107933174927752629770525467751215470098081273626337349847061872719450162360933000195802592113608839273737363836971666262971234922110647559341283311264438258151147966327620189859124842044242940092543232149125530693040786855261170932429970871535765727583733487527444174893893658423248545850207491727539553332971089191434038615843144250145743500104749989828593065978573045755867552848168080131569068185901048851310606152195556458210963756388443846989960780522456328530888537583650183574091281480717861986039705773210247075358261115567533856387064853883756167167342921165723763217345817001983592347398586949626724516177949569514236549206970168829356142583788810778417543362451216438451807125474103632628470112394490321037697988789912064228908579150914478841502818278517523388437210735040727645532497388782814336225711823802428064254949644953842072733305440108919203003969569361784190214374090619929350547987634733244073633080878641716984962377779585326054019963223026525421514619371248790126620829947088132897452678287080747650946678751765914596245895790351773185293683059855007488927561775624855991209171202170843411043949945279464701946958021170917104640165218945843876675335255183045302127508688689431856333032929730578293829062417042614631098716608393825683591843564315105436467364981983334601885900830755379822676001943912076752691878290805710708303553927577568959670011955944813277664476619553647962419996798232380387748948438019458844028409648441407092556313393169559049925164778677061352025433436610256382962826997714373581015169118176630494322383622211783139280309560102661430549618827472995256643759063458197946938920311606770782972386973585992383901963644394889258212584087155532519107225303947390260416619015616849420269081550436357817651923557580719695465679625722349153074456822903777673963934545203288744585068724171097797061827665731991092944433548877400602650951615356815270885941189965065759079921821678478348582786537589592616554519315027046548666067184723290751638190367345333267715599042634857924019040658166449292041685240916012218363244595052034778837760639083579999155652667614453788770775427814518897113850458888981213526591084788575500650287422907012431080068433675202581988915628328322534096111306090129742784211840134279964455777521705416076215575687045876376675366973497387165911034491346485677860428427523308944081586183191531262722575235044623975796485304029773046441198079626104377123095951609367747435196623213324252516838906865235035378988031405111522640358792476767293647455540298067523511216211548607577463433486374268614274270260712694096947747040321026700817724851617186192833789703095559191035658480496020175836951117398274332279372627022490518543473020872345483922215190883144237141536768838089996690568932645343917446668264791197732087821761518602968645082136730965460924421240714462409589793809680094128756122991919828236586409315631410003440002646874496885263086478212182077552796705128910899137906133282276931284116417000018564487280802287614809765932511317207607385281156457692373617497063075024359964366767095813398491246898772423951327424390390294217073012001183616078042153203734469898759496680527088106426875870932572027661681498603906771465543236177450690422780200807720877946096296604435511176764702922238624670635606505993222094037678141160292174309694548871621500121284102032026804439148384711708104210741886492883789921851001796188190406939357908375626630728232258045558040611712274006630546867926760137137971154479068544345570298884438992871527655497033701881904744644443507489862486462699932818194541300514967927561472098680989823950230608849849611733557156470669842040164948821065627660865005548290761941922030312161674557375494711206365345789547599371902188612666557782459470627956241776256180816613708857988719593187974602354621061742646257370607991688574381637431927359942812069760128669432048563974243595217304579737568693918114364376628445617579242057998192500977879219238735933866225645280456832892997243444239851294450015259697703542249399701209218611582705496257684873256046976131496345237161192276632588504071857195762891896094883806326749552020344053269669300797292412633368087456916242951867657282701479513857920600759233101171780405046099543418456909551345598762399152525198192590522352304046839611484702803369357769926513575827970695048435493742882140908003955989922100112269590007192678978506502376686906457469003768730307457068206874148984636287910201754959002914160315556404417714217279348098141004647032481007043135827214636110067803946210700320046732941308226058684281218032451127148924647435573704814384297833689917878366462175523142256166765627110761159745264410856968980307462808826890865696716305511445579305187931435252351466770770986861660255378406986585891901171482716973611720719889549722333858458278274395316435949614269461292770632043989392065601587032472684182704589049719739310130083909505387101068012417021352092042462348288060354471068538883885746842258441395996124290039074970931014567313464776308642426429025044780916883858185491069433855124350628732368572895162394834370201936608691035200601049863841838584675620944914119096420130244645914666747426889961388959755487314973108490466630339960356177841272006377794935714665187015225901444033068664812141013827392627610182810577176962442284416885915144243949151668897104256226278981984664091013687230644074788322937401541636020052789288104196065496051089236491762095966816318454531010830820192552181920292397058941764577252497661746425929221194454715511411104338320400143214459855375035303095228782998235641274474076814357109738655823583953447573367047258940980513814663780094951123099671964947325848551196372450076523763779804458406646844384046069221185727493998994922864524360173379523993484744392967026186125951032856427794488660324877214697094436888942620664319795101794277559433312684561251256127375782567808946739863649166742250265327700586643862806253332502227228079801297675581867137456376133977858394213215806063223547742799489363030838571263529167646611056632816190889149567555232966540043188201940385681961387974005872866207452967473075887296880597434780955187987154601448824693919485377280541810979445317434885885356358108268836039823613904230084728830479014815646174766368137154770099430624003628791801096906533331015345040569464565548618229533165566691822394452838480687667629188306693195718868664404281224127127124095210166882045830935056531103431695540166352698550435181515767020022265723955676749686468711921056740158833743133259071935331414532133218236048661838925684585851409434217793896970010600728619659226016622963063876857452532639321723423367370667662611875137897678303674677840277519757572370531803033534141891723726432621411872629473947807827772285563802878936951940051947772741036952478626387400595361408950600130174998650422336505444304545818698540256581492996739831516906010172478283875533389211807325470291053259508859079086510247231542905852614806258331559953462753089358579374381996172844631662650383982932274784655095976411827593276113077629794715124914450034310718110808016520409412715576256963557375500021076200416057701089012811493250517182534453475356919253823408787381853117104064169587410611561297339016557901798538097815390447458873146972362563800986211363592123045416536572324643070163597069798145645345522988040253634022434735278036528854091263168637431240318479886964145388920034654076981524808486107238671719762681988247512470949456267885141671680704481469732536167375269311687431926660646562788274616527321308062974685542868331749884917704423020647627103786108176856841720993929944118900350990031163734289185595481821313475840761401383665042478456174258967217629250924078242126217330206900926671183435560852426288872970072979380112277427194901064815988445641036852657373215728623712216112267299509461366842546700579249967064172441590406012803584522299590893416401725360284527570173084289678621228410703703248294873878279198377301543987976366444578726341753331906123588144818719806918866281466438736284462928877257244459893207729896604829149731442389598090103766483153323152312661423488745585257381773275798823826078976723037286506658592976267473057216075292572593148192923431745321030605023351118019739927038785101001831843285770967995303426337145729300382258675455155728699894548638344495867536467428757685997324657287018534934342664129658523575115479131940017626891320736553395067652680165913362904313305141309466517957599373308177563149527246641592523557170731847057997625698753473970578719878244453219980651790390283024881490482148287411994788007297381276839373177363424049923448334462329307609819894177696333030150016535304581931716211507961304116357896540612069559515342046171753420996333528575998683380090962260512412087013581086888132342172768322860917110719608313158797635095877081401229805520703799269149605212686349292987386978189762022611945300545462185288335310361733946425327668596482238764823362955619764953676276371507489256647466032276724644468197860268283034776037215353189670253919644370514479856381908540051778173350571706511077399498045612327803778883286723812314620711807265445724543058486370197723489623893604404365031976880535748774727911974526311688980536493435936449465775097364054397750179849073403429794480128483774970534402941552188088773681686947187437360067823632032342656547555154627152209767904651858249006659073858613455294119631864850294817239275306704192918464410672464767834784479899805653560035398822822234049241069039587563849958398111979888787173700801219762072625561756504418388735513592073270106837161798265276134548811278644104264220041751050496367860135625078699788615621545160136642699214698842320497028903703014465060745417825392050383926147488268813159230744908222240367882418620985895158191422618325189730985656826179948670609847952445980572086617497094063160866461389908204857311611344072725491325123079613337527278056194973030158798646990737269990352689935447140565281695218811633127622334245425645831393888314627866952921132801106084647472593386671792824643252715153483525779375231387632399163672371498910705231800506472340640427130153992273017641213621634817467903099294698922871874786395520749885713374409404284119634159230683568654207395908782832693063419249725184430566458434132034161296529675898218320849651756988309650765881954903920187814769429754839427386018909626666139183685394572560794239016833298661916276014036267816275051066533135259239517182966299370455890597427159631705270971713823875157071150075414891688734422909659171401374867871287129138590456249594127451434669418914841303610664875518396351421749434824955563689657178779761295659830543700887111298194613643052060171742635266113811777701356177065932671663328238371991639628752738880160631072099643590462207476768058533685965912885335648487023217109155380152164588140225658020090726935806395328371066734924811570297253673052637285821622288886966602417198837652258908453478134309357335981413357438547541864950728266357798151509127225489495469885594443706946131906538517881177680523455732873544569974439927510458217614152695235971012852840711178087957543460283881277058929826396386742710130124126807874093102501957345772863762576839833546603949447652060506920378071002124170968425142423410566317828201227555076278253022572125907716955210087644931349992623217131877773300485645793498871792996988221995141575696634522924755087495088563226386569246615811790312794052788032803317356714651945424052291915148672697245355310970675507800627873254346867869999135426876334798417137856812225288012109865512702698943827733037797147641508378795129736235042521662188169821331659912614722611534550814465731068431714979378019890941781937374107277099669038762192512817867508750495001330989046956837172516213745481889433809476318544679258951974251277347392469166244845131693601831911543353177153244291873093198194482577084137276114180694813821431885468424601724400579839908789213629000326166247284250972789323380967034607503257431697026724984598823651795329833274982637700991434861792658363614015057133458919437015252945226231977043942231924814218826324759515725109999944799693149226063984946850779926364396789008710471227650889071540524525769203133404999221073609310149466969251800190461687439861506142216518685090438495223118047454011885000601073758857812456409229106697518022304712327283372719513006072324898817074596165627339430259916505122377271526093368740307156158434172349430628287385395721571840998099125382001198095772791324187152271749642175583740312220045498956448058845343835268186752887362770153586658187764846725815775763767074988702469864983910956622645457498611602928077798514638243918743756039405373863240008962618979173885701160891252225050594126974278955996201109104969026354839613708678944741464836790183667193492785678611042855153519219244840688706133171882414483579696544603013205444769750124914941432521188894483728913671875064475456784175664946543130892518101237880070694313455230315921104282670969047482562377944042041977448311746839265915588807919513913166061215389171310638506011575018101619490068048435262628363777064548178166479291314327368393990766861163187665091527370938284761687444760040811106666719827232390228931976350368498910767604512884405964956899492900935516830251154565785492579964012128180952847365864186915074750625013597412559541397035347453522400637416463739671455076591279429290017429846983330955909623800170263560626959550342477865754258261781925260947211949973797987665670691928211056859241647400251913393305365906301579376037762104852376613903368848309661992303469045015831333224607635063242635191417021942186762473211416749215636305985809518906376328775026452332226142330148079739445612555930481406247982687954754272223679025159923157068132363079395243991110031185539112851491984797750269602281385240278253703634608318703122499159734532959666598047296009483739378898301229109475939554283189274112373460742475825305161818311649255527544217140198044625768341925206704065211028596488876814887914627588273534319089550389878268317914353088979427516241338293935244409428523018224999855656890720050959755561501965216406727343850356950082507984304381519272664710555593331903614400290672105770056544558776255008472444066779085224181141329368512967238697869663130244756716017084096760594788718143218562656590593827270255781855375759665419165060346140770625805612326241010447281714334471353595327348432681806525141831659499459943340347549763465376977491267306858078957057937010066315887854355738125451605720802140035397124905173773625146797404326941190596208316853421083543093066631090943233771788127921806050147958446777019332626968992410494513154576851354269560593438475074578799667680442265326005199894114188654017273198087434932775871725940025843639970780035777426533495246327047855074259397318358502161190473077006063712483177233207298330779206049545196206523496152599996092635269593509412279918150577089961412765613007429851522768525849617532071598366386947141875870887419352226742100344083919419709628987025719634406248282339256057169130369801145153759194979351828446014472016157392431301531279533978691237776632062412278243914396867152572194280270636675615276343987600487006379990721671406605691394497322987946584338947125019134457974386928770013083193106502237656310831104101982984112658126498638756488688068318183275535666161253920517102048312291861217860157968932031854210781119464792696326725184027532665006139542436586933958777699786293464204494009025160105742440198834202235932129894180729227795516326934110393101435340420897946607336384507069049000337321496868048637016194203442053948504205661020481859487179210345936281746104475583149152877864540532395204570359806849751709029519854859266912842984887316913927923059462259318567957569801710472128012557686298744070578207226506886761197473352409691454770872695338991654036248709203130754220918509282903032158458811916654643274284715825564007806438553733427389284331851431780972983245341855565788023186721666406092582192258570277942289530295833505577451342061260357172632893964506864917751163986457134152159703310124962656014563697256424067067695366153052886036465643740860132434623879855056689857331749231779755269976174799417173686214148772864238395767678062938516646810037211310239160945432272514477477949373216718843824095686247859884313514739891586667906141235954278204250823194781173279223604347278433481899828511010357888596448386516964300942091266766941087928273452644416018354377100387203825285517231272827982459594746962484552871053678178256817460715163966409618870521481926954610837201501827426660830818387146679276086467887368834107264969018412281244049176763298178692469461007492350038501047358555922045487867586880253852296961680190373654914502929921369698399479280826256104376678913496680426789614773433950888834537765120261940552288111159185320343067570986304413025682801934702971227697442284520699464766407803290876456176902900083270479567317251738810611479498945545395601753654175996355655026829011582669177990763599675180124073491276189550580713482775040426356533522828458355809978941951712920954655212489156153343181002396279856674686234079461473656586302180695286255383513504213511317251549765401274611098701525967041112129078005158591518976420036029674121069165229890477882483723626862136030212333533984026358093112045341718073397955756017215077919808116776359063353448703546069993106323039974430294566083208920755403549436668081589486922459195823764687750808681407766161989410323007742411053508919042194676917283336891253024164981084950568262455582777017251194407973303218773916013271314291659656697864040558598346367848502359486785594024445785669462029987313525281667696356398230507278868301744462183512453743281561947361191634271413217459615493344420463358942807870499072948295663364834732348047393735321909333642097617954250933636180571762265462541435238726056486219680857892783760715457081337160998247596191993737276368885954516752950106195273299407449948031283075765669057959478570835550673160612417929967886457770294632483010540537851408113897551061082259490524939407815062325658767036735132119717144850205940676026444404690060629558854309675118913018121531852566835545996093393927501076672106819512869175116466623880311858436037593282635702533803968052707923583660154778525097505269585195740734924808969480306048570987102875038944813981404384638102726125782238463014017417145053215857240223005498487277717646306417089416583189895864332300931084222465274883703924360105545942170817512756541489971407224627914301814395686788092990417362074324301690188647038791423989877590027771724815977561139795438885100042545148499630182374454099950696420024021510576745726814745061271594290581686900740757848578064101428575394495247954766863157793915281208697601869637990541459733828815890871423861521608711331793182338170518641731708171767236669673708637523235266463702881412394575353394937526729989796162863715993668930327828844695404533754642497807028307363386989316035928067834075211293625303793746990321818317205558628622349481767630127546922270905562175502902171406596134762823511956189582492565468007306396124622363525170218981331857973378729655936429751683362273403926369726929831799800335351628849199801980391594748736442895866073343529594338037725784458564408924869792655899201054755842891883941577490262869819109722210530019044443237413527467823792344519036234123407035755279721441607079624298537194853231849746245001903362033132550292288917820016240165936403398337791289962038364424015072028931801269398809443027564574197626966461401254652658185034764509275577698219094139014725560005681283531436578846702549085207819180825180136086528853181582886458122592367598526826928124501839096941718646958951612074677299885762969743512981775261998934233577613175474877627204192279155922097836451241361763617320724832775932644331920444432080785020192137604054282100081810078072754252988679791717833588951999308811470003127548136927668260347134752245281792680312452480284442150803795635641453088396338873038592286500085053455945377844399106466329820911629550575818754186128782408754983425569441063015764889557180207880841364496393876823484775603778111523954199368127535045245238427750641938049441856090130783835016557909817586973425828391429078586130697685088039443592456485378858948575882791964350691052011642913945320412779578725686782114723943925853112564794144161449749162113162357844856849237192116264768243140472183605956172040626877566200442573451892863446190747562831526632029714447595948137847086604082352387264918177477422180329785794761646558900811898766128261696522057755352681899609172414336830255887252537960578505618818723969598937248040639293699044395296233599718561610775133666778552553723234796460144835948608425043174674691138143657099623764534366362621926228924453124113521291314954771570934375078648791929398814396404496592624738756693799977599693186542581233829197140752682109059176621759640900912883563681046721281376790187531350766643712199227348738586098044678692843107544328070528771806382416267327995996351143572220530183678055042807492059253113340271217255900180627351274163248198247039769729280459278243715502816790430445202279113910390358605450374873969748485564316415098601238875616620602969789774516143563217550360955305002528620894803118954944031177146454439965698071685980699815357737423830607828996682378402564274524993339334259644147197000857383262880347243295951707833436770614079156215387938948653209317543349819992327915366360840084742904214957187407904498643212964353021764877934637527197843215660444156067024898213724763887837404858135453628134051544379226472014344640814817199087386381135616386112638159999297097864701889911264204653138809843054758390632478381088959753469096061428671279787321598214961027509960566453150807051898126800142549947755826440574990421361953109292025198722836888581933846295694855897308245146278064285674636627433864703702922610045383844775117566457809194399856237093477682120586646275362377317804126747901181069537527795671344615798610643462309938778237341818782171501730465688293929402915347003110999475899227105514570580496975139856500433431144312869462061836493429884215173697666899604951023821995933235017763942178458606102602448759628549318967122970237353789923154473209647529425540700921919990565437434323311328399450115889350995558724756410973362001933612221251460461251188112836486124527200708154435769796982001846526728169564354628450386010370078609313584512409906352956519867393859126445596603459779559477002232032780214856817146623628780214289774308969130393740863414894020403495190866015832842222291695104332631264081896131450225149052140297990135990860975889502088826279976095256059460987221074962638260653756931169874220208479431675454012186424102848586834092586958933099052033385418266392974362135268717839293615901247397363478044758662918309647446340867886369476898147621157183566992472571323643569416767053098575321169011813804944167418630754587878882458868908973535613541256216830534702734139451967660920987694516222789790267018159151659647378601639321821459441190234337398418879225887663356706881481178830978544362799651687903358049315132373531056153355994329860416003963516396610220171981259338931940865124479792638652873767336583568286940954520822927456727253117201535694776279885163728067596809640371189455520026936818513581775906743473812080955448016782058602292774924911791815739368227033594616632767395357147119299280790786653035517489204328556504807471689465803908386390400130667878579354931330566290617610026994434169299884422249265914394924868096205018452039717434037441362371835802279176617677614415070451543346329811824669072628458639296183463735322161357125150898857384221393453043406449510093610172951487494824458514071970157398474596368113620645150145301940346679580185123815734805460210616764728382957152663111667432346996089459324923138897251529911593727264848197742293014648185729697434340985773374121581886495393387992516558056595122128890274633888663075582360331175595485451029147611194399962299268733295155865689525729169458159677593844394258976850149324620491638650577779324504703005342913379933304277901601513887430961765506765146052957307231444249469552578788874637246751533889651911086811526846042797618509070656232841841318478616833769783135955630549825104362984453249624595744838947096420352368034193148468046170059155973889494285329878853358432045226567817260820639872573850523106621882340414893728212511042519756716066472420774434622168721584513876316558107515238522770097401751974338671806392935591430596426864273242746968672501462094639155036067045669581228091807588274763686814897425386101997223126408515999133038884467990664649848429747504103272500654639413970253631491062764868093166002659871608678319801205078523626197220523462898901510849688498824708257832785151065251722587935179500754583250578417112729585674550245973704223105543060627484965090123679707802064999499655775101921409083204620674483767802556375105646388992154957169730982401322777017458141227044155203340088345605008340005231125453302038640182123840667979176301030821876408460010983679404350395354676926794270814629277114105374295957392197947062890371505881549531534500179422587246552557166447446046574649741533697503956003614127847124951180767220702177722374077739748780897725370796835342851190007017973856809973513951571239232783005670406199276510404953101240168884560907754836907198075489080453306076063620018866727775001567009946053962757418883878146956495422822826193658560817132191124006883931877951218268826924967706122338336704167022199271477730975751819174459684398286175244850566472932306647263487857482219903519564660530858101934636440595258012375604006651993814238796285148097053965916422129043871527227234993781478598343339403101172393788310142369893343635082747587537954236768206818884098463445692413828052672803440853727140917352121518276166906127531908064081344093577489581107276115501723294069291105544189971867045090626683705716265429145621396470555939530918867232590510931824525318778034103742501072472780970645033568826115212839414488845571832165393229301176514723167287202182932659086400059474369814589262890692655068315902803300268017882179922418235156946702004901220589331175006148997568106788810072292534911161699041065327378101460214741919032623044886525335365259158477061272411384816069202907994296446747627197123570020467571475456428430547362137369076862950644312886252431011898567342862654942313764754091906456170091844995181966268124467089326061498960061240798936697685011540474628238142501094046293670940416327493925585381426407214265775444891067628912468544374379122817905610748247691536095372207290010516488533373921625212226550048003067438461692727085570849720848854409804711906204364111837047106348175581830869919911721844067737441730075545295206572677869985039894202844008593356340979623949985068884895310169324006696222386635447269650599682250545052800762936724018879154418494307311126611008188374730741319231152971960183550036574786882803599855083779846348193560057580315551313298526482241611127387995926811138569748273998757715841488313263014742434238285838016813678187474217469274666268981689857926979033201667587973283108990004624987142669331337935273147064283079104942785430050931269207328395153417738687822271272886748738031591551650257385749829488023454547612414014641592874278381423663944061366044270592242028416981461178158196290778273971844879015927637956883043229672502185529198457409830932165635960021086993358543310060058604842774854538671257055579961529789521550917283337241825152931976362221301115383802773856634758560486555327168705614719868059382449578421471735089109410478333841614625011481181606945573561900258403129078166700890891846058422044815952664390280642322044772696588016967859303648775594153465261325107008515987982683807003873499253575652053569569998447666142372345335789755429656595426415343383743342558071189968261035378087521008078720405795885458602066674190182221037542977884885891948838435381165423736022801697359947361344048436425144683816893533283795400397975026861891949506375639922702488777963276022720338871551313520538230805515741809141807977011655123891705133015490410026465578612601044038648781889118034201297506798472165341690543238658626854390855783567428848562152705975076289754671522776436818414076416039460617894070247550516058032053442283696381275483932744607500234014465511466850157226077732429456872008207357331818883593740167742854280368887836463383144066567055602180493035029366735535083356979694487297169805620276962595389454001026198029663281055126249325682257047792662604424821559303845503996778215076817357653695202001867108390727566671677799208435745704710635198823482660540792954988379715249003106346400724920925293758183667653884027705140905306428505486779897695182787771448662395718666727889616682992937455592622140664664248585928975257209134127316630383533359866941044596571402953598181824368718251956276283929797312966720079251794095572795979203545962166660771910181793214078406598428870409353424813916511786228385000914814915272431931075617351013143360273856877428175680122837941036385973363254522516463801942681631868034755381017370544106339044808936088201993240203765877692131749449157787487008278669669966511724303244634780961255371937962370852802245362886738800463519263813133353629032333454648224339640301279993405849659712509523611569077497400184090115063340381988188826455135975918151938483166010052292560607575664271370103762470507623421322946783669098999787569432466540638056200781016886844537157794876347983116575901982039405840497160958320420797665415558285421716817574194835335292427186353611415726408290955273711106966643557380173474258770983734322169794472483723542718815665805335042546590149233069269466570013704632612681625532482554441466101853641779570499438039378840090370872758119463680049757541761031026466896824717815409668536413742590096531338038136279881644740668529226940074506016331907386938507657184581356512034522961047857443939985261263838221526112981562087489200890830711895864049652197080712019613969147018316540426929003274442217823191349626805059759850808492647059637839317544379955178149290021488253860220735684816809370370334758219576530931279748830967143927143495355642031557036536497106845831965507635922832862520094534264966255233107035429837909585634565229624401775018847747435524991229131138115063174717191574978334810662792802696043511513288133029923129384086096218979398695799863454417676049759554040450163244807171688849495552285990074042805084959840586005403077626036476168744825035038255031917416217640731416004210166916733468926928883458497667960564498970542740923917305681881196024465590392393969282662513179586979412916168734522693798126452226061916178722252709749096035346670322265398313256301660836515724273535203418514060145162977295286906953286156308798230872410982324044165449270819588838009266768261538230202790477326574230087861025570195675335234910974136039617613866418971778033115773403065751975786657931114712819647598249817216626094219198428282354321526111456848976893524765529109258745237561313966462127179379727620196266445523575462904584086915027303987166141088567234040007142936435702828666278438068438421173686096323064035067968505375902869716324447616564194814128965101151306343217772986079639738671257891856484666738769904434760729002988457422487588172724004884788766561141845908162290575204251314006299403326529024184076985216204404101921065243277182855299609086058302080514635962756442814837317788055269604696504698620319902515979041150733101641385994904306396364164105377207173067311044518803752502959617358155444932970565718888312368759018375161881672300883928435952831480172406865316279888320199315901003473185891300231908932209297404718450250545259834902311636437835607057524211713503257503873155300783800932399547369456624100157831047645954788515225539216913803669737168564589080905335150483493065680599742365770911832552785371726817086263267210562974142978924418292302350660884762104611197239817299340529592418952183338198844327141167974142063119267022459231418257255136933228791733291544608798790614833995187549122098850055903083493225217520081126445343113521120299847452617538967870669792658144325321580869090544091185618235154844895148813752449430814762034864390674225941407298073909459685998581918272149854541799752494473408301485431216026328923341670681898181575481736620822901470413448978129604483760669929635736915830578951228285708716966188129855904459898617005765307758734232717181668325177268196252623705004270793978150243864507626365606595100718883992710407311987320454808763385012806810264426353392554686175646271606027258975637936203740552031886534683632165892921331587956367578762572979779105765840578134886194986153550028247859395501099474475617185318029814377265735419621437344182595364766442825542383907617921952911440388133361785145017844698816939869347144788096322458139812877202621805615869649310616597502941644133114450609083828135202536827255159207458887625348888753362499496148907840465282727302760834668456484825982986538322216575454565834514274380670310684219522486844247948832576474115617171026355340355722228176308708858076580621727435490243775372185723481273577668993640156554532273252616903818515014235625065537585084149897737643684201535974656089687517915943799533674255402582920424877768566605964571115246104073716227699077972967259252575472057801796454589427140226040090893436746094683473063859280867596046599677466927441451299360028256709693650842261089805251987218041906101448747464481664767897703474620866462261182943073045517445675845082637237926806068840180686267074521053949300436312646170558949124277868638933847926655664069530971204915468315280792686960176686504049050236275097277522631067456214004026389020123767941628169863579297887004360295737035426816172610566785245468714524074656342016430355960638322013675127128654275120841460432910599883723552563328562551878247649792132578352804920179884872758507124803330598091943029355666548079783685729406661607258860360726604366142826340523253898303557853767271332175373518856914484589573579783970998401149459959706394174325371693697383060648431560102383616701290147622635550079437748595897250107918205469893478160093960814332604726245551493505045353697366697468278508965812954087029477961417138805305830878945628531100703105241791169106697560476114175796065152881797959167175112274365978457884550348900836343812405204838365458318853639886440370865957860931311451306495664203890618149775364972150107146773404672945432519130436861939072572203481491576317244285824625945004998323287710350214489816077454083120173851685870775222070912477556747830885432648261379253628172823094016265817444665450523218788888443843335649004143193065231055514970385351879998824937557497654999431706806518995497049322198679196058096165607100268989273652393516491442227012893959917038359980528434371808288507753770265720132438461673664169939281657813926923392150812281969938073967312028633015285172893879580518927366923114943518853881023126436280623359997998709541975016701753182123819688984934848566668899881263170771279743136277730656614134393374043187694429513496423710517480194485060433492161058354709670091229006228446574739794308517204264908075953750248485489123709939931593781578601364742241718040456648601305447880173454401053267323514963786456829276217483103457622586517798951907911258752846241006721107220819213248050478560181576639779708070430564420008342074669806033235491588508119593628969868549411563891552817607732890224363651987126403328773941404821942503114303795668853287582896812626607207055590457606989372793686049743912344669397242282093942983924120445630447129241235824966841056666575620699903318774513699980921278723833396266539771793517431545580482962407444991074902007317439412112728304490876645258343507006209330477502748285370411864210186393323040430095782226055793540345814870064997813890930731762315718940753392278052537897061763107727548106916054121223914027271041351919617823961882877289388592893157149195065629544017846057055976025187225086568354992166427532256908396558514410017699040116120815286421257548302376351292243043497794438817189209731233807127972521918932603587900199745126950159823132015200204680472406611660567568001583717793899205948035719415113694721636999590714956510612572680140892748371711695986359892596101324198394765943484684174019269991613488064146998919511991846657516477092240206091792430438465267784544521577748775716344781785947304677924840175121692398137970017212940838600871284062845789514953122250088466995852927577378042979453115735537684420677265211675839776971731599670887948258807468072654140629277011356602813351459928108447953259332007088054348880612523934201041438528239165004695921607497505204382773997838831559320702998944436867498343433496829943838656588772325395968248634413409286695520102679012281161169263071263246890839083138377297231694684623676405425790722240536336824711563543630865441308189404799895171863317142980880471841390028458528831317909106790575480038925265590031193275305029160267145848124301105290336428710050618165764054387411676027173650404564993183314911727228228926344926177182854018447685560779740064585480457454163160456829657333691167412180294592778775639748876332826382265423581501251379257521216690101159933064258897956288945288592109273762936634265847301910037102916155994036030199979273845535571861126380125999559872396191701906568116841676029044449253946749991101301143147648342349680937294024258168838293481486071511928005156969765429183199265144647562138410925717489074484218240732825491404943923023337278907069557606444791327624946493518377210135542532589321274714284232547181165464138705949673444460437213256072603542367720315111917366616694303947358712225677654750371727774243808951696082542614964252319742132955877264506624974986777449771092175559575882853904723290756084939580511915472984148834521610821699235845807085345242557466389023014373545399104813184565011008331088525751440062315331244178350029663656244542914956360239155127303040369818487331013154585811580613964890958060519431883315980128919411359067097237095855616220198600308179678747887379828583322951688161878595421541233498187460795764319526464575431105337191143795154473231745908311685431291418472615494199568232660625618569561405214302379703538005047323241627568041294245114215474381715153359667457983736075412888085815951389917662199693318783091069946598277242467312380724138748666976867842284808577095065824063619344087407747324384537432928227258633042312889108271084461695003879521482674988913376176082128182213360277106086495326490076296730620075220185833362466463552590176408671129819370443581093588793303583907914458264410863414227768106840936193515321887785766719749914515860083458312652860492255870404157946166465780122427851455499674444797191099947689715939263346653356102858793217471872292494354229084448083461435075463531322857302569498910361753801568059330383450740664259251131183574462088720075740176162253700388798606847861590826679680589079061944571957685019764142382317434755345752540070969541489938944502422057455826746424695702805588177981678828006650133210201085452655049297903067611102613123390944314247271733093708165340520416561971404310892398995849904657310688046524963127277528000900748140651849545802318189465302634689367004836329925413379871132890541081395111295655418470497025966105163129730928341996068871677110163643174626673814658936425773232887269670135677207292300504938682157471629100335703995014315717011036536531370710530998102884193166236476054793954282937562020228693397037285816224625864147927454164281701389048205337701399430155167126742739918613454702210574106450644144893022655384416802009884419111862632619842522644673249197497388469924183141632025936530182276639805854391473463755957179300416685038284525653886808911666314479151804139596329015039734014481889213761141075083858733212341936515315514851402260180326917887291528762594392600672036015062092543287419185849432334018225198594520425268342834349113825327766289092145321317232735581972561297551397910627495190766936750916058273738741381654007041416346763797853340908755574762067226141670045152196024483109348730222923750864929208173947656051486376172030023856673356723228974621972527552964069798706021032509178823317082996082545683621136430040032411437846935702285737620354381613565800136708446903331148119579352278022371255564542472813508144831119718444599764729171314734113052286420654021743846384012902167143393619729491803794452490941388676474141240016282669019059913845364889934596008490440940137764255989421238814626887021057635676442146504369867647293904596695921688202262471797151008809037203504372264899090139722547577058166083928085957860552420841325936967763754658253530603746820771941217042318478169941182258845778969615805488374157170980557920117772268404148182488975529188645747664929994364332419901328930662535506277315213010761295939619122988211598857744100007458155014186884226642294302453285112519996826103795098490555378427712717610343316410777101309112292851659024704293102391842123167790979053374369917048978197150531586106155743040897824073661516932893282540891310713573808394493531055207147777411325843771232468749523919890529729576426202934155058348824218766752300621586807551523551130187236829852373737151604572602933436670971005446723439384861692236152537144817777274688573376709754599975329983772580838164210509508572160523901368100166794868115018636694975072597652034930088938443084279674006972140771851527495240753855419808684970685711150096270928154033394144038697404438257712424991760498398580867262447690501719397796735612725141977625333205363929323938363662228529376926147721916263128611784618918377823474490235194384855673366143257421446006159201089234762691763491609577678984044785944605736120625003118400706986497430807188645493608712040085266856279773245944577199904578004690363120502171568260290295994185650914512526243278075024579727123085030140577317055722619808144804905159766043177518610966945646278563063136622653398949350717394214029838053061893551020803283130124253395039154294355283014309168822431204397022432192722861607260243910786385969795390384324163415164031693476893697870675229765375570483289076074717390509128785573725176562872615278024640094587687518970792475064600619414720045793293361325317785382593367982286045417627895567474275457639576383513990121590937036952121558104444470557713683784714968061580608198791656633387556422966412604197992357590560459483131348616441168190614425995547408430528590223327224778969017098813839753543607640420754702941757993462859521754487942053433315039636060536653819337864723531675371696597004561619268673162009957409268355951568597262409267976234267563324148260476447851305060301401741784406591939825169189675952261651299747952324289256717222002177097646585129566034544272649590087758034092895559675044722132317226483717914200283454109738069803732625401980724576463737551786647789468461719438211287086225981273908372214772906990618287852393930835860015505625540596414302250086887744836579477497276017776154237084342995666334200082663755322003473746141823538069691395532697348079425461664513221226723138845333853434997451537594388947583611629019099424665385152379878302293211606359405903083145374149429240077887053024815264080255638775027765877857242035350851231350350352580628353576808143464826544863147768960090457072558703098417066271919201594686708282593304140560155029087552086986697213728135486533215735835742442211706688547316588282621293123959936695754438944254641972286247850097679172040524895376488846316770428940771630530368421683460978562845781336343309497740823527146803186144607980954739054581275243197336037271926969688805062239516160312041748211143572151891564689960145082939941178502411536463354140162032524542273224496646375655005290228447160349531157519672725948315555222589420381830181995225448238937136025471404784263903216953877601911896308666909545572338588773347948709605702906671725995684767587563027379107958053095486322792595717610064328745789973526731019044447140157617260866515982808777801430746666257650683321691465391311344756544503776231215218735728903299779445284462521231799558302398038912749925301544923266703636654324587591803713283644697316173167319145410411060335014814419797902821977654929537438856810280114381805823270072550224550936480345333189304334047714512221960534896244263517056503915532502014283994820156516314830951763763007896871680399625372443606739187542853568668225397679277499915939633653226968416823929884591219326898320897600946527874039844297421376805313460957999366455497041007473281515922690186943604393323445515280105314178858928776860103222167325581574285000359160153612440100147946102885582525421227843716145284148147772705330316485844782521758747086445135131345498264019962152825440326907506000346915620516978009798393422317423833507186778593715466470105644643186870768186673934994837605466978065802827352024237474364269766218148477686200825593893608175431205957552365797196406731946317138419536080538454543052211574849516333880116003521622760653871418988140572244143657843513896160851088752719052174119310965385234307227080212813673837909249888443661354486073008223897416352900383649698218397079835674854585816585633262362149852735557740064068993567990248664678806242904652919594163879379502968182898018283696007479277137613085817839847377740959357519833362368554519619084091880920915141459441804764274300359303957287856848246213669116664613154880395139296967965138421668446072559620373610974967578934442131181506618160924460796960868909592366982354252132316078066675202471945103919468566471759362106579697685710489363812924215029667071240304802493723271153362770258027163732931351863032662063663218391935264645634538263960119818599759654182963807075147148628866093158277770623248559828370241751154255593439903124773824719095825153412420763649150328622454326657292347862431793674894474254249155235056670274895792760192156324101072227063440084239449373307407096009553139999327465594106873921270528917824495014443443227161731851969526763937244393018527514866182827130974039660296874791345954774938340723838421130538036029365337116189611193474597861158555391824815843261602287645954992981206370821892283383050560944320226277935452171058423516077841181905989186425485498280909816098179382176964848863373060623298521190412772960808906618272547697435951599589770234584786524901093726735322249315841716834124767001305467721601777618722359581733286269392160523146488001839959612607647433181484610135737744263286152306699674080965189421808522087584146242119038182210047797694119604377739510126505736887830736233313527831901000537419349004349890313430708832416143291571626792298320527200370911524352679218575269774547267742015972480463816199666127459169720593435200864161632893294832451386922391980856172360869703358180451850885579654717227573358658555846278442459714703811494261834889318730903668766749819432338092456201701598257084186370587638991692046768084581534837941825352222171846438031665896344285057875292525003420000357876601087228284455418300824753495657095510869890667826192473300790555501130715630577865207460939568835135923876346892849086938584506678065197267044145704196336241631862506696350701977418189523784857255330589837522998954466285078599957924880621101835147382283670195659755709708401809160245956037429596105422454565609860678980168486989579000541909736060686084893993321470220752367993980721641328234609107007977699535118609637732602964765970029886841292644773426166315025660330768268719777163138655879166840047735738142419011118747775537315599288673343695508272798995676844115311336926380334167553101873218135409417619615309644278616804587893440580655214458806450414128622753846195373697335645421994141822160691840333990218195572529309869677225787636092579109388933842117151735128619614820153099902340602746413972070422826973260117291104047256630003017676618268598577011590096400207481842655028001633527091320973303058658006381751673962361096400923147062305745253587019065705333611683478298974697184789660655762906529064735024825728857147769030225078180598873016854349531790853542589902237696786733997234330782940166464182021893660398735159425610488270317869188191674799980966522937521132643451010643250628878101704923638187484490327294746968047736866132108067483534718504723994154772056116099537254235958289525995496714024921808715612675550239069435671545962331665890096561718939399187470919434160663584541951169929536406866720514296731574728483764149095077728775440926874928953927829080176100051887280160218017661396914304959664748941270370789984808643595513551243942620139902783917965085648489350469017280021741087810501010228502131330036500536322954493085241169029609663075306278796706739856170005182286568526420388227485675453060059962251910255195665100890790190721972413522521333462077809524127425351115274832649412470159862229822714758233763254822778962341544054469922137195522426724785310250748139265831852851238633687101577432998456995320700377942576167771709808372794986290500433221258795716771661421399970841140698651936771457146760642920143001196259051338588236244160175140204369946523639567438060802007119480254979531649837784171161986980969042609071265718893903581760986821503029633892603617365108369279359583591078347691485759096897948687594440256018478541272260716193759450129594599358462569926298281719569592482431823072904124574504410439867989842557782788899120542246343863164529804324717500175487516630776935244029072808798222056441944335394120818974563781148610187980845161834182862863078137574579327224024434020519430101973399325961529414722929538311218443301528048709406370820757504148973237345679021702278870229334416831622915294960731132435155275697824405076830106779913185126265503632452501589575407379663389985561843660579135264325599791932202671914414286262232334496581222095956408724100395635818859294349404806372315182590027866796933753244469954145276713143442322939582483712989663364384426342960772502730004590998499831176551204390343271857665379491539931013837182937367556803461403431549752804157486623529251787211054736699694544177875701176926624618785011931783632821187141227570630440961809750314616064287779977797622111774102171893565091580472722225111885800580607123319340370462204047359111708347014817452405194726279055703864553392241600485057140256635292159795002003177391907194515060272849839257689233301849680969479785008066275991437634591839869664567185281906760847501909724261146638250423955206266398543694834043336476251522672172964522913852480224596492441494093151959064307671155205239231584628831792066506497768822806854895207645372072108049145776571214810229722120344478744499499117147067972654675300587725905515864601111910735320166419272898104719179674794031878843795597467528636077405164838176557585738833653273519028457705512084807839156300987769239050759428986756136408131797544780577368030835327726591925304035058356201936871240137708712200162274217599198805430795860287874743825672899867177398521368350641752056482860257812780010249911564493372877738925700209858496094862740764454510725594726720861217168310839205967409276381316111073001016944065068291888748614367118526268380200539857590341571007574221117500045612885120777612827435984665680027311812697474294330717044976312890219999062894452151638988601326477634535334698479895412223807743548662212251004107451824434418119432316535977973243021011038824209645343295995539125978534959086056920297556106304730098501782055492272360323831405534827020570896464102312162972225893800491319961893868539780949757862214882893873358770763261857146294330987755113327050094966979656940945040326229222729506994912571762631871815050815457624957462385946896185160546411438632899981314117806395959598065553021475445022627146079783754279356516403782071950372708167457703597660677294425087577402728700319741736274129178878198266926811688087714767633152177094549923811840910964710037119482202503490147720159624509160830069975231950219995787703937809613611778596036466761501928723527263623147330827878688707980045979545480321177480258008858950112957054104146829975826364706551649444149232847183179109554398070307242256469274684542314853106496842441544564321463991207069899361605692579571108927301754859408254746728359373230206716643281899328167851249658652511302392429765642634173432035233872735946840619823153453520195517221664544993501078151241102328879800339990917279240028837737634273366842768492004086158643605572253781336139193094780722219642310800543015262397536873750860620014363743189959592637670863904426738232265819532927610604458007373073185230831604919307322642577789005846394562879293037324544668097631294484062350933384393218232527758462335910319521955364108981700198105180870801792083869659304034579661162665642437578440142730513281103471817222299692256181177822315530559673338319083278415622417012208465353613161100206694173008766080322664174804779546938461226465542716686452751596838101438803670518670559985551474748954003528849996858494821557249056776912730113396638808416762856564855027608145234136141830431570911804471016188329769005273582232697596361606051719899051663164495019165478445884269861769133632567385419730181048818959779997814057683483448692521487901710659144279010873797782950987273091344864791433297054555807199292816746792371992273057600075625022499534963238172684231979906409835583759578350838120188251687238625115300931312745631102455064252095050863115532650501369741738139340150887839480623796017912272472543306441682225861095759895203115567664158419864220509277932032014327077248532092833578996280422148762796488239132523321327742428332560995427288887938491425000465275101539938674075654377081757884971013215690934551324737541141079312364707919357466232577893767363489282962380079455209601035280433425084018949218536044256732105680354712411486572154498732941325080640237524665925852381088203410744968396432850293259515214268145706661078389216667147904466048126835609924901868508574254908078817046127592667197662469035047923270213997145002956790384835509013326823319832571680389847630349048586394993847108980418690990824533112999764074183652092587957472359645056841048296716437861419747163578410112173156132255783542149377806634322582646585164733989599522917757383284173501207059033287829412083408516334672906526552094362378037320957674033825189069803166420550925511076181150650243830043939668728256763090402774578804136342580142687933749934929131002056694486458659064574549709943756269527121013624454879675454211630511845651118035071011359105275045427953811137670072171082551831327227214199264071510492710682907582007471665767480083145297053144351392699905821993209417838297115928855670394753815265403766402471407383347959397434801664746690178587528636682832384396519044941310483977273721866753557988978810433074986017042051368963767438496462032309136619621939926797481160743825923261890847444958246685996882151069741473181285452800660971244281834629465502036479571377755855857932829172850971984513323424387099620451029241248387258882748973829711577180381495537641208794026502602458759454700573337369940625939066294441915052062843546648729677100192585406261476587722452328402903876258401223321656220949181922694598859146207172669352574936448858493062911655688984509705483216578856358267810969806217833613458403781111343722254313675547830333524040410263428728847993159563943301529778681169829439891412786479001996950985258410737070453717304600580917436707442638574233857003747329806184588039354630087809395862606500206842641955524293856397301518765048142386201888734672276153473582463448261594715400120180941594440267417882775243542529677273600117904344791905570472545215063821344209334176300607949574803932181160473733663860406962427351215379783249006679563879060235152731769805249761761091914022130024031070205113891481680610390424193661398922905079716456324474230351843574716026404348266359968825145090964044319941986125268263403231655694879700603904459283494411500711663028681038153035722944255850745748056920864540131924799656989903304108651239996989545355360721749779299091799307928082745498181835852254063456494710562947763187358776673546134343551836684201086874354537605785640552514464137243222117452347176475875804493412837010034912421106984872967066835768320207857949555154224981059597728129271578434997714593554031365074202800585773789759149127885658125886745262412600837612738781392739315741471539719716482868157507493560513353150511434679411431327710596969735296803531824256878302473516281809539234735873360365698646506893833333179907744235912283624899373316661483469035921650456303151688239548549600909259833885935668167868827725017782059879281091982154186129279954485805753801747599828274088889938795746605579053124350609371358200767402943019096400671618215529516355207411904447783293830316544121722367435240598978428644805981890103314525158434657598729820809692941181142835662862463041263715489951456296790586285072337673044670375698944409126082381598716338731198283306960376385869349282778588248989586556153479801461239725578091357497201303823176525368217806623186484531158651573503075516604824655107044896655300526517464640962026904441874171442851317188308862457128365603059356894909943942605517981587165673446446421615129323507864972206565848743068100312753775999494773645129551001641987396182308209408406513085750191044511655204181758285892811595527851922858978602041618600366012045594611412655979497795179866186740363171284276986625575652515305389092473330909385732421753825963032432283928780921504772521536774971104403855058867468504654782657769823565999806571274749605081719746336344054761161328604979131909734213720004387647552832794089307520792533374702261124327088129882593222211038058263058077895837753885282666655675394254405181703428632682060266857238981463113142654547061701832756965989694055175557365409420176031240789804219814911120386738548090353331768533656943379810926655406218161231470350192579940705202120915644565536864378041614099159769255967436793050344333831008028413539572654273176093703199779145924825808615416526666233820990791896317348513878954040792698802005232742886461575611100265864385743364086469766619943943685744425289059331769960876754168482477203374038579160409950225542074979887658368896340563510174996066475877901893507533877799490070632118479050927305483644226944881093660427705885563596764979730032077923279860563281344122542491401069937807573591877475073706168127565644097730717040980635687302479909299428062605456790149503746457265425735272954037510548392921219578267201851168962819046530671007265709013502869365868163361008043802219065473005018681258972238607833308493120089230612846408076290808922129003399894920664305182254194903979438881952548194833695429670640808145045121637491531653218101833705517971971550721560408136403197222732197291084549227303483656598277588025947548136500958458656358277532960567891866226570918343587115597767239563530160103373550089720540104776736385095797267112933290545756227796202782434648899560850017307911290848102986951217435352092632419358623423322973899345586384440727980691496999949311203315827740549549074303261605740833130439675569905979537535823396664379007019896353916073042606369938287269501164200132468835408220297733656006187929319004140556752472161164760500398106488479517463433124525586002470187472485918755625559642905140138495035235880778730848990026449144636051749211055024396143469329543194460124055790175900412975021381109040401030251224747456506324832466744037030607327303371919933300796209556227202454603602489027337984612902639497365278671990466208881916265882557041445707583008057205775973054347118388026174919823330122499998746059254308116955921008551602678249175846719933369971697532624807020474017531195073022555447989311288450761465186585864053378542529706198165269516003407319815067157861893636619996121832726566537386051735245503874717260855131840596300254433735711912592964168289280983841289440259147030975838821363180803016796790622671602650941910595287101716171532338575849164750239659646051231798826709903919569703226774995458739629280441170371658339714365084100787127286650861681344053054631626694746681552639167938352671396962022357023528693856329566796762067581871458150457665524647827489878999179586383863106037349179768721789401912812799119142939760891924288749796944547178324892407769917658567226224625806897783587738252120643782884379762965108221210979183657314684142429846853338827467703910979794662091033534846829733650607945681171138790377624906612005916310430469707571626385987704989196609545218353499196872668470172260580830770870184138519900539759692008117928099451831948948456403685369858543412211201004408551572578806483174222325311548091700589177493991476247268504788902855154206895045644821868071810790110995121640502923947836454798376499868176222144168596585078242349292148757221018267351063206091666869926683316629117449497512284417625902827543367145682085176130298437014706409799577201072366369475753310511477421826176067095003218113750147263952291000072681395335072722050949163441767977733998812320076665663958273312500565131346746214710828733471334519924632124442453304004710137061740612895159476075798004724807638402180217835764429317298594345134391351551526542860694759246605781978220128468073095760887027088028972342264402258773430418103221159213102281374146383320853636524922251402136905537024847188341690908566421179601848375538216838271776209615830257810471741009113514024216609984896675503527549545508143397864189141114418039984746400293112205437458515617240528939321770088036804951877455250959843019498246668990915122477879894668644489792990793803832745290454592188685736985036054457012147018032759548195712753774973468040445633533030048123318359889975162136862319522860480052714519487946096808995865911455247701598939052143506415569749991620011092790855732036600595174603947478531229951081659551269899516245215946113425444754981035471845246308691915678368413574634006722537935725364332353490700142613965597021758008397223807524505197156430770785816478310027763017572512955899203312481969456517879954207340531543724739126045371090017137981210658772091800458758901022744978194787467077847632968316170875406487628604416457157737412669677982872735126029350874750179289237905790852432473905393908259343321589203459480892226191595830715756321736614277139402002987937113130851351022877553423491687064804566538253526537481164321429195136029229523875736217618574490307418252584635413535187505465019839051574352316370019509690420066211424308004580540954141842882093021459057472571767679694615955877276392189435442631399286565125765708862364644628081283651972303103328411592649252876178965895795210127936507674047791177624078460547927224013867541745730281858553127061757976394412145058550799160623845353906405550656460579864924932128498491163987159496070433579248342749586334525656194511774567794115412882948197676051029958450365006520310969202054718744623796660908151338395538969424602450967146955794695975409404443228650156043861427159091753770526418765026741453612843694764242281249738396898210761123740031044399948097595622516382694483783492423359208605271017475375682502479107496309172917085114898297475211756913783595062046192565558604368420332172143354379235247938553233047219860346202716369597811140433598034653386978446856443828260488845499512335392318982470050011131863844556929155003902177758252380720774055488498328805963637337362915832328179995236896243714879091903691795060464792616439579430356926118612310103539889283990296158682536344247323104128150083508895167829877786238692003417063020892648589185409319321120069984753404591271186860365831440401235208942708437266045713290497374474923705630776672377853231664990408229199931423831712537035368283045219303466076137749183176865533533534398296128619361648193170899462934269123498189591715255041129256522662809952918848884094685080352003755847951939498745737124502355291462352982380545936250142414668331407075802624719792541136093840678297012454326244775203310369552779433928330223804491456050081981316846178321950762713988374977310888051281979810972622749768436089608988983645671773288355040147211534440108410417080670512714977375161448663448464354195820118384291957496487337143042741411828710535700258094324212273257593130073309449030586434057260578577841088308623985620864169140396239954444302728372913171169317503348649386944276878658757308115786351476245720243842938576731754330912596908808819088566897523232100463634481579698047242330006917106464790955338304534690840650166474252347070176686675803081557406139806999319053396863861184309372257430227421095054689882874386642290811277815678177034705586451348111844521988620109969512698345418487151082805493199687153535327898213583507672302309705515203242029360169208763901997504873762794131981697000212283425309572612147871360610991935214460419198573650168891918203934897924065199355861529944421724049908124402927644516392635492695489058074172975770295662302640159698252580526580089954316050201751630418418025710304068445334841030557673066346856231300044401593373274199789259142133091380629551379976281056992853134667779064720728962163923217256756365858908380699603614334791104756679276763850654287763936308795717974211263602162337587141348862832338542229144748179919273297680105304386141919548990408858331526679077217399646315963167562267013279240804559268737671411647811316250058217417332854790922990127767325306458855271820303573136985237084087926238937358264118482617718872313890103252995281985774778015734107875999089826896432868208595284722598995511241358332599793002001975645231149625190176392277546334074745147961412562750603550539006982059384803412963877263271822097617164428396160407765816706171245054460434084106201687110254706470471729218930530970443517438233237972484580737362140472602574663638702283878091173978485773129784731575478502137638306972539706678155301695120452633396194071809782775994088109022575355327393550035238118726354646844018494808952797526497201593464855990684584290489348199963603181355956995284668904705124962216539422876128469650771901736829171816954102473601377391184428560623541290774384112482276412768489173272497387401130127483473047182268600401964068402370433541551792104213184293107493247546049039688309517666217904117388591029908124207168529774798268526635742326298533066671595372328740937572507049418081271161207908298100335757153234369611848229703030182796020687471495513632226420319256264575176489173835811926642297825059494430671989405333679067209248362989432823957244946983528767698273361951669847142784207096110810444775155938290139699536616560063188805540599528413529399606423532180582375427438770127886100381955131144402818621908784903213051172659566030626418470634796679349363417757962113193811244108651333241311364611196072624008985835411907820491645558051906314496709978214920975260615794964720302609829933325848542343271128774320280758537179149207014680041462145045080075155982805864700908906690965082890010170516664792793275317858509219782593525733638821664486461540472449723827597141658310153102514575294171001497589439971776525995632583540679930749078890281687125450739000265317804235206257155450618187105637164483708864993885431842466988843135764235711581352429957649890077431222570076186928691154794507599510191342009250398032251263891044342527060566094387506033650203944490415401100182541926587777947158457037536877546857688715144212923896936724880556627316363894579706600545349194169510465953015785490570289936875883638033632857727370603913895869503144907836723844389933173083264485100123554989940590880563155961104291595105056732565177970066182024818570208887473159064389427186979548451947303151895215248952581595816834663885101059029052668396970905632943536824328524924463256838488147517343565836116751507151048350996209951721658863924381220177690525664171256496184978617400424323512695129598480274324304384649318792459632250484676751586803662611740837322157650825419695958759424349747467106003525165201834023663179496869643604816955874626722460246425029075735920437461468166115194275301226416205377151914640034078097144289074309016692340036145619725083551284295724276765182672920461283087498717632179578851492601470616455500027882987522086659942309566441661661610200655332392763409967711758962970071620417115475813581238781947247860486418966280320201843354775108349982537773125640544466810411008181283344144400025493905110048733408177670426287552039250076370118991737902170698790832976114429881254254102344231159994541091897769045058025508266033121779671823375377563962168903073606502018701583925452969771010082168948454385669160151921655263313133765263157572295577867333214280888806314582652224233595861650877751690016235507088719611981249480387790641058475163518516940851577075464649911094868818663330301524991809807520065050564012176142633282671896295091584223358750375246404160862767235457812518881559406845022598514753130699548309128026414576600864508895334663812157380235091201383306989326084042916714512059702121448353114684676324440198355900853487073146352451066394603675398378515671126915473939835321417342807655491106655091512746935201446715763731108458656758485634314599904864682081827940938801564392495343876713081086940985881968548830280835445058579456813302288473090142504434852442554659224776939106802967141155340062511719475454418195783653029063322832761644019163839948473842713641087782379848125768543621630351266562906882035712434196859511714008967096391783288613662885086740873544593196065665937769101964261977872504628723069212765375549796051874589781138727101463087810810217116664494810398279020076473558592998624717957156959256638644706646192291189404399696441147683141731475582828085578168041473129196726493738880911323237293972059558211734948853887511157045217272171433904213212868156183028659293617393467734042627091553731613991928574902527595902647212435275011574995316318377246401112804070011453881942730064570049034279685833987292062828000828139289522912126868196672049306632473379184726070834179715201714091316541496333426826106149737983562798729715722856962785366167441969394870649217855094425499797711129961002192582883187535814106476580381333516468114444573383883719713767909115353917738856327328980842198353787465198975981772949871395514038802088282998978939756360240562106598001213197418182152364343480687077495373699073013346384724937168297745133111082025390905979098724899283565732937193250420494501291298703699850194122881927236587379574531199961477255361240019701734756150545527957441808080687772233204411776325383783923837311691878828791294319413661119683925429362418293862748371778648020337229755112382951722605913492343759378633096809011033278282192663068870429251761156011680666142407646792827844683635987347178365458903877332387055948624664906941627329077286227683845148394001931845462107666187830122598164459500784317311238934874886782915549303485399827247586298137686320798656680899811356894291631608503245610497783019519578094043396106244315372084191577087587415086276233990517459754256567504039779957326316156590527476949005826427698959476239448349268846676355128076052102414778704336093120665119935789610306442130254015599971856925916433482501408745839634680143191804937196183848769852512029423852566165041724059462567429745321199298880758358533230077825619385118224591067546086101090458445289484514492414760009246522912207916714052497711657157677126146498280492084314613309850719657063879965444670205000700157518030516443781374592496107748711190970515668287498316855982624740852655144759019956530927699609104228001783018675177135132685400206368373365437300801679532170926217359948564999579912195904445559759961827712733234852252850771293847168210352344360078110690901556609506042041969134339676260785854327743757928551434741725039477876572832801418444616527893958549081762152404567747677654683416006381645347107368260132526798008119198823864683787293266664797399295394740398301742381392824101289905744843734393988215333140099057535466801167835332747445205484727171820254586904736794909396511063815411157194460076249519842718183408612156831256550285976515060224024452971984027310983721490446082723401049462181617487892431551802534744559978140658629872996375831829356395187117363804249174428521104077471723891939561001690145391931406699654078269836439416235808823364140479172335109787887301401887053451140134583328914314580938970714586046943014055988998775295602600302932999060265871979674413228673818429077406019762039293018733221891013591224450101287945703313562677329058441187338509633407304433670138133777025847154297102619052157308510712060047109646028239279599994313306087586630697055225125457822587339618048762598068759167015889917539299880133584275631101862416991460007329840090246616746926349472558068650193400345999385626290016890756853437705473628720851863912517774682530155666691544558285131302800271362024782505197118116219123882565534053046930915254669567488360677991528850727648293545001333045414673537827944676900654430750167392219351601149435380750807582447887676777617277864371569207394240659708821479103260686762186052975863267368465763669293481717270714603217346509522366235510021507421096204445875916048041608671105071881003949132375758511150053987702620836290555373566632298680198451091386261339812679690634157175223419142278262663556524377432892869044729067217711765723143322720919959887087668486043671610380319456739648267894447981513413091362524599293479712478882506378497168819380281881487632630166359603670315382584328446019611484465251275639177186797763369437232526770466091976183671522824115520903244985340286381838616133422909715923211040138115252246208349556116225041500535368341823468724336341614027322176428539834417206547620900108727794128093029673037535800236663920230628814896274263207022475421422907193377556929815515156895071232634133940169036694135231719400513421677771542056369191328951022001082552022119474212781036325944190540090347452613188953042510732638446115411069233321673079505008768313263512919426957729777905317591466128877577695001719446040759765728861416854347560081356176332321335707011540594990834670839757122346517754506267217212523016719794481533804398242805350263864246844644084456549569255718992683361952694609730559387120870629830968948135979634892835817409872703792438162720512614658498402893516378550396184148853460849378732141206132650385997601756712500106147616725487858416608642047919563876892271373141338643190444215180916726120769347823576679357140014528914851044439091276209806983125410312203853238972200283936784864835895152640248004279977826298159504222197533471190177840926940291409701158452144866283063517085994167578485012641676186216987104027134549452471937285197113986973180471983581159735391175680700230032279240766278180539373417151544009474747763500351480201967241301549244956150844648223226745762607492025745537816813044331203066419181002711542861154640518783933285641381891704979559994244749961984935315605997055561830694933315832333613470146311358562202199616693731996862228994429586861689929935633692317421673480393277058660019246201192505045891823357398954988479484452486433788773717595246964185843586873248697957327764288169344364326582619213018847317752166241260855143474333687475491491419352249325293162039424265705238588635193884736030645637231974473616853305643838503945554090577906301214834169204127654799577208630756434479800409112990837462196895535285190253002661079659298128072272911186541059839084608014745013408606695632181364898219409761952642664876393724197400842423899607219111426774183559799435537266536685280558309261732909853374173120329377599729950573538126851440859776227526944055244984955578329510624169266340189504596004288223770474181899333221030341654622060894827217641104380339955337391401137942231664056797676724604107581591451825640271315302989489060513132149264486352284259834976846448184817768170069377318070726793515705875310517637870604009374497043313244313935100328843097813510744739003984267059607838872501755118294758329500250806658098842272287486431001097166567550709561296210616318149031680780094057685859058415332880150704340202257475212920193585056409160098933076613945091488432030056767714803478908721005592536255777817291839649108115739736533808278044080627715755455499895756747412335385751217126642864792128636185401432787935174190615036889464510351356399340693700049084036873526460255825852517894810788031431565520258315695067383456911655435958926977459556417214206820736940535519234922302472308628182075113666438641922823717659266980297818387274400226605016445040608468827299146479598375645785157398688077513689379210677525157559401380993059908402609621126509571269944303573393925502158834923854753572236115602705803845102829962338597115735512413063726781571534052149119727785428159027427047022061440906292497323836180148024861223965716391947029146450962168698131093603454088327030567518501396358575166903564974156550664140302462903943244321329812754065188194312671082017053354766475217621715601513932054586256910138994814463112368904564751967340381562800035791445769185266641921570321641844754243289111667988196620809457718517350450028929787504433403708957087325505712862719637633025505744544256968423840624147000309456639291137002630371423231178196202888652964715481893535916105742283778405900898825989983381067956152614423185055287178981822865270818248821572611976061809960914269287501776689714432008945325288261071920348458786231222137855207070911244916860156636410987829900938495081204506118037725510788384276451755399510967796411006350048822508193238043987615109655531598829272848159681819739926023866187612750725107113582369952848333102335380111191912130414290863201334374092649486169792295510889045535954925595097363745876640078715692826410687080541262402240632599294976720786435250760024827750441914101309383985647355643471750468302808600227252173602799501260831061103826822674834307489733771639477066763835166195265895201795556805215928560595091229790562934997697401902543063617740163545771933141672435337965554882262779890783377982762173211166526032916592144805850634498237765315690644057549341508375120192306701459454675353723694824537313251057636650700410796151885901461124988559750282095118505507840249746578284806471882937983560586212892186308605845952630499261061734283112142270345675256528877194785899060460793551640890078081439680506418923541315101943175954969418911188054485225704759789505542193673454428123472439388030397293518148547767759632494746872046231336600710713814964058866767872394390551733624031981626132368958587926939811921475248343061534875979727203566765567825460906721947013548825046147358190042946016322337082440100822057273246732208640418719419388773844303018261839514880885808010910236219024489944634246319327931977553472936520570905023198772171863009715253459346610232451631208583665995419517823240809938084006594697703677779853799787681135050231062032582167289458486922977259526398131378699709769188707702828728995387621459885718163953682051754857475428971480322250741090529403750510621281764077118320560866636191315838154155272366418162188986644296711293228203079891406074883847685043643501259055373048360112462886822355759270407589454545316681481412484435925424695555983798479716708573091795581731910486913581254135529337785993650116488357417555774173224091261690137057775907223132417446464502357079427098917206674478446548490846971093015707171428834956501607004700358170156033615330697746488145679006870372641991169127796557830978183775982163483135760533591114207936042736864175641137769553946134426809774265924790905755217705029112716689353224071538036444425197638805936812415354765724482975563743702402424741501764383939650307017039778780762992596651601143386046075236437369207808985609584863774154122388338031996903228914735123498416615702086660427637531795459721546526982069925882229385121999528834205067259445977856355210767043745505136016215359128014099649157011385920122561717936970138114051676994474758296415821951006665243702189491296247837501898719013165740681709434979536305306281665239806853359988177049019225764607561949659453551602238851686670770774630014759340908962000346457057618370914796406275195223697461497542954047344714049320276888368191654451712395671768843501327998823411282775709824820924435120071856429981207374721470324525324068493436878636921872120518124281872283474911741554717287224041466583068126160090922939703578501786469835491039858946704983219904197695156262189331548915043641375867046955234809987704233331992224115023806683767060415885307534676036806504002515744012031361538207075387844683153383396736647425572495401036433339606619792207640392301661525206681254282640709860524441176018004559581278127179772003190425734780032970222468154038757215018707526901168044739825180490724228193928865605253538254602193290517977346253903282698368895264157748359190764726852879262891523520716501973177533266348772134199778136389467839723723359006627653238751249589507073171704490046185145103041566669150317590021597165798622833641463476474082842410560924274745684573788373372395196465566304763054223188229440525523473591750747533314959171509478237275032871564946191807053839182438733019592712020764094929082671664157816845910254208860151473698051004902743848721056481607060300500281517734053880424983078445694629905319640709627288498271590370205687668428120336037000532939262408106862668479304016585980044408754903303851004913214194531873591184748855330381827521890191419403600903704945807243779588175568962381035680428718423945739709289589608107304741273018023485983898727916502410175846746599290375275039290979054757040845353711326184572220138789350544019149679674944109633681328322456916154532157045927707027963588342742740416430252109757192042231426512480068339847069445908439672560670764456552329414830598031568399233082835657810720597386367258068477005609545602991936791748964174214450321864252281884837826723130111752306058527403021456468714129027860114762707603694222604941135247700647606473437164693122681229573526261491838545041653291305489805925218625433898129345306484872264788266072737553594814174944302421205083995124507716770818702334344045752150526720281117581465356276431955166238051746316322176295614090085365575929794257607031535807702877117567140134041625185068559790517630731517955658109864061648367073674581563310121099860814589034294421986819908453593772357946898980949547297201482237532462571003013166823424933390052470009341878278775607128251375031250842361503181378131486244045432689971206694777715073067683366752316762740801701415317943230022343614046996857454799678034285113193862580034463215445809645756169875503720697063085859475539975418634129994531895229143042248108258542252658079838909507759604704626599107452343343599063637721373332724455661251528890810050405904942762354145428130507443748583104191800017791710586782093921576657796560362668145629154599511056104517345765457714394469911101533108630830621833226912768518597830403828705253573813370042317433744521779209816538554153379907395338257279813137581443600611073621338270415641533980528283951568351467227768312849967939097136013185168238068259367764714719904096403862827456333675573676940945476925653362836643606437062055273708121198094382875643083541415384027609531049541957963713331924346176001555285016327336231899611336916849314556243422838811484796949303761528092893187827045056004650961340400109473158056959058592922002283731203617915436664381530087305082748812234418161766143991877224972656552208190137567826984956262667648839714487053324028290285221524593170925566350732745904567021003661252991169655255561776818954651176880823745694049739341580539588379009112576948817451980433024179291744280894940196484767359335484126215743308307200979832187623450547011266318911724082441372729387761759731182565672116625741318390651379383884484641080246366214451605172423038041486791763799986327898968621780872701845130727915038195602698030585775076143011730146861707954752770622531648931562200671747728156497562666794776764984388463242606590589182309276039459218530167871817053354824896395136937597738031731567701740149480670728704233328498787000213730670593049731875149799358281733478962401663749361553693351306787838120068221856442366545570890594487609526674025828139251007432895840605977582295543928019315093080439762281795596508547772275141990437305349888981626065310915258845167703701174008740206553866557705320983656885497181908923849759112425925312110712542451374927786930751517807540908679139147160430750704586257630180717818161323542914153837256316649029820881844694225899919610949567802231493345848847734626258985520111950628490342176702429605677658342724115026421485897046111196729665639227734814874842560123287898652872710905150022941466941368372350926981137115340288705912173174952908411586466630271162258052942771697765609221084236975289280677502977117435001100337418237858760937941883098940307825226880347781475182312855605658181550251768664216686198064815609845210294296010259625227415117518885913201410370955830415493898490248799998409169966236179168720837934562475388050023722778377277251963167093530391795519298169136215894241022611409547541212659853596206496704690982429078691989181726204904789128446988206053682524762716957476271483393733846731573213998015249954440002723966629983199627782314141224574953514090442241382947846046551866437046992684149939605468503932196334644552780400355892994294003871521470470312537395758095161040168113581508279352659889079712722676276726507616593715031109016559206335449505710276966012503145899589075583736101651739211944404529031740815160447015881757789576464455347573212777729386340286975573049143912208884376177808467505489314662610131979015234940533015781301741316060138524521056296096863333119336505066896697205123113688752793433190622904917637017089477749685292554963646856663356088220670918747105393015447012990700637851846439675397575324416669815933821472817490008763762914001122407935007273189691485800002639162650732506530651347455372157035006891031054513233451936035044349598296600573013443512031805524509346580614803175405584766884606058881906906414758288202444366927802818871316848470775584304010776971714985955701873477351958101148898264294797206346187764066751353367212247345046409323216346781164541623685221761551063648066751163727579601474316702833329535411330491142223408796925607060775710962999396925590633055179952001224485502449962947509793840589812863265327373576110700816282409918926383243724947676267617480755589362164244076142211310956688994930808916618920587943719729572039722618851659339137552553293115416437242607663261539440674536442086536153614042006962296973462763259274076531062067594584856872115892641957670973818225071733707049244275387125994596281529661820958707110634958260592648645249235094121862208556809358551304987935260741504862559032681777560784369152609708901050919944862476139242767674205489395403315419943531137083114068641759542000498347996874402815093959855261462372556356988626337737158059086252440385950082504094799111728291527489614777487702618145576649705599298018458741281048174472758764706461903797145673427348729845757351277631292744454267109879660167411167039830528833070179680246790435749400081202064115050661096397357283499979458100549564897275425672713642636412762668174533754047447114394102148878326635627838242291529523242784797065337738969867168403782699339752297861315726112050603142386980753180655355913322840575621416625999084002371362651403343550028946329998317436254061058122307167276411426374352323518061765216940879543261765793982658289278801864569184352602952750589601516536070005838208117273557484304832055343014301494732742263978299756574942984358637156390362519025236938887504675243704604392961373473582226008484976507269626425336395992663323006770247938005551403240295715361384463942241448562482972245613082517888216983159257634528041841393064206731520525893027298224582840606729545301098331568839912264138445657651827764699600400115071968386023979257739551373436660465773835219296230532740856626163051347839107489690740502465533488846215283217213703808837281403002040867593829024942302338005936997136995054232083011432982386186790348903226336169202960761268745742751245282986206759917848299412138164692013157504599520226972493804341642573569852413668872538636538726715441353246413580730300374108715053820961083933850148916345341890637405416559891464175779083506032905369408271450135923306283891316065070176619896228047104076223311976158373030172053520735016723788565748840172175259698628911519647600592053593517903148663249416146550224444216021629148827953127317206277595764768912883627137045542214509520440929859824143511513662090062144049356229794855181650255232933090269236945335242222690949113358620856566661176962153810562299125844376152527128064535413286820208389219517548058519694598604452119648274744071956969637727680877897922072763476277911469882279137911324338269087045461150434848976573867027854130984771760078998366530622700955564122125139710495775913244237660054379869253505469070459751962084550908270128039836842218832720555925489318657678437980080871149859965468530832829098204434179972494588449877488311397036458037494500557659814416512482952941534893965352162746792451071664175473695406255448070102055026022442123094532201204821827532939716547810105296651596636998757261333070785837482952949727193709445883984671620951521940723119724723858157915422670963747044561162020859469126549082420641598916586426605699918693434524779682612885891504856365722394133462956411416802073966405890852531416720061584389703004514333191329678805058628571101264990083503858909393383956380613800050797294426449366944915719716774697987139750908734553111823894106375431767082229005392202547826406625117403990604913994575828031152400415175722796859076232063532964858975801775882549384664144488942703335714068618658561452673205302856769970195469988117477565535108772768158443762075654157622741506677950621861110681767935657162539202245956552811725588213072808593529198291595383467074968210235187876169528773228215963081219863053240498352348504630952866767525576594129129959586363392610362114851928360332470918170479558094170686913615713984744304639278280129270810335132698971019989000843960535417000465941353203661582847946837554915383349115285776685887480987609332279198973642765028911540954361570679755169079287734111463687606702280621068331529441314479877674376869135148291407197973329405606773448159046265887069036788736742679158839778199128332328027847939888525240997539682261909602550809222528375426168856968734795817287308329587966341012460712944893353224479016660115696058390934666162194662096514496294633316260440988318804019362496640325788734380716589263291714082991903832411038365015134758544642258800846562749442755980438381095167763308483008333518506063202648749009124820063399848845420404570277967393448373137991034863897974274992871327724305569587740253426398675987988607482559965265885137463156697254262927850757899808247084129654577130156356177597926294663776680796739949740163117214417785390343806360724076191521077627187280180641870126670745578327890611123502577487421099353081666131725927756008615468941696680099764534842793790146881194055035502939266613871549791898844565498738373583157850520150965052101891359924350208227699275503748299518324953085775831912631660109661359383678752338253366609632111241457287979213003572608005926805824656463531287629265673728943943353935032815200692027970248397934447375310183619327467909964853905021301910247740302106200801644614433482980977850215798103235928736900421675472459505526003681816075517482705506957919646269812032557005586259052240952724806519832703722251909156637061402411071683887914730338292758101521111055096609458938739935618901078553099644347558447049635924133028816504666236327631767749435983143905131085348374891744566286051246478378536843425682706837693347020852064194514472498447739469296788458368030320604526452226472624555098455140251105968203159104499739778828568222861820401775462818287586006475363052825461841294728384946872560904647060324102640725563267385031684106403893285970655169843947448105642621948452030307751579163391730941751602796132505016219046190428189661827035735740596956359329133459856035918111550199978176199911700222787014556650231420633439283137416400604376882499231239340120463608867492888541546169677464958565726245397699052655604728913513007958632018573071089459511429152354096908457494424495166999974145326168462632118120777891679879465985724293178056608080517220753703040267755849018971184058032974921945508403095470479910681221668184457559060514295858338090108610830963380198446990354210325653637441841028456019047233133804462680948988596298533209435421436921175285628324571281766162110626791038431053666996238635103545701530129370042568651324874963414664286130205233633713945469201479708908014547066962458818240211976966530804929201164981554484477366651384162137247144582877870723607191658948327183675657813093176756286864301424073809567240290175573599374091988836452573062970406896183090376497549106600163513395455256161677067416483102831165848832793836897702065242765337774952610268987177581024935936712242396167549619122368413510569307059696584020722226602809666423323102223011802571433267520542657161261237814571117142772582751757330389104178161987469697048715765091079888018770025396914292123465244203943303524979513726330741983715342848889497745878499149446910432255936801536944513654989954348239313159143821057652775493891444936031648612770179681599651434183094608830833757394096235593452801856105926219981920732917455216362424707414154616813575660814729648168396480789467955862030348162572866718473618960505670347815419943699796314638049566199703674125458255310611553123517368863737835825817892376854711208165452364314515458830456971363101186962665608897130954604167521913813904336418245608034775877806938949322993834294928874299722792124037707967131252388610679101354498005098449110491509376739123807841067117651305025789460130466582130540236129198517368545883164214799206609395185843659469179185211333571231157302770147457870770706988544404309051568839799049047384690646799877754554303093481383828253987957848297032962321276001982307675062850048269825316093682452377839540890148380939713728330064142937731662372012259496361391168072710003744063565070203152095035145147508243786486714946025293925435454688040759495849473031892707106761489551733613822023489350983748879734408405290488148028699224153556875229881872063517383413358244496729031266162830947517620064513322713880306266278240206170523228602794577304650189459218870983493163284000202777030676059448040955034298070347666651271931639546222667357913010687100152904574813075805162331854237129916900984029242564030659046208463325479708938233815986288054976211137861604944380308877907799198132983854295798027497513904444627703001333635044377749963970854193432653987201383406541767446331140088034565745430476556833574812439435663575133661421676053202035580175524503860539294315635072023477872357276723994148140765928667520027122788193260464787174715902606503664539803926389125119444728643185822003630809814734452563159871660115582844384992784445723026787675050511893570083855453280390402524344301974695116723196434310382361236553432837914408190219655987984354037931092450609463936524938305429044662881215787343997196498714643507602219951723093946011603626899880531480668275902303009370667866934732055754221845857759818734269255490475100350520668302145168839101290834734742549155619940774075290997723685837102965929242881521075843068554079212368673628818170054388281421050872426659788052092594225690365345942546910343389455676731545656153062406192248309123043342732814793500782206978482300441879507976521587771342331161193442003432853084496548130743107600809397897611026397674146148540752172835222502268873965800236590359421563605246458104718823748438398448739467588429383448484022961634696036469167105347680719238674301185386579907408173412083322103228759491076130517650352048365241493567208474071665882815985027224052169514968598283650261385094515040566904881479793580111217919308073452108461147972616167521191964577791059031162030053997842445925341706812293835144718535967809964819434047860917535176864263257605462674162437495849679359368440251825510687951177655813781964389691943328750751245113401852776366318772772221326545902343141725712296284035587657206334831899173271307332483321971970785010315567026599130076734407807770547213452630725976694497371080366128032251422032677742131105233049545734963966757565315416755213305072037152023256449470186395698863547291355683929751806085764970342961164779942426724750071703983345419427062449230749698430377182944911216454053943945103489358959713612491078570016206582507927413994956781776297044685649038573330364635111967639995825056583330307966591472428842531053067431711385816662959345658712502012220295713346444359536017486885392238065754494989744507715522355621030225990064689286512549012073181278255979558048957338350136644682446098831567099303622322495907587446745467387224643011962456685688027540602777620755848880241352830664127771057403070146798662278081461792354067224816283395258819789459361250109763790864649823605174497714390854603562452621499937258253379224057424332317557719212075884928097900183065349121260287707600057288701182861369817996750631175077024071820818468627106397214024799925463111089530286479259054970401626460204238848897298382194519058217939727111260276978379502651224881666239669632635012911785300565696020040264867710053592140537192194208523296043497792808426541949171677940530574366676881066246393309673377247397128793719315360054471275899246836894535435313182949471840672126464729345368716007037933832743345350035251415107414102037124650418108198601644559796538915928668731845909183159227799433345460809326677285077834848435298631692041897919077039328964635389506613015602506373834382576162055550319695722500816770341467059472283649678647805766279734890804448694310484503071757239027298308603642740792134129755303792824270597478681551361115512807889819440461848378558553836330737924295910436848401028555571551315954143981523408241018839900303844788619055779754163775162620378645435016062818632670254407529709116234046613779064114895404075501608031230543747672649401043070140646087558868118928032877991692224812105119055347085770348870363389845120767814468931427664807925257817428912463761632911831857079078908381977547372374042909426111098678229656919478399392717458742962601552442993859930229342926833696198525734034749173268858497918033111753883406101257938124005645057472759050355983043299513202538993484184061580629366208661598872449146407604788559990137513514869371095095007401486511593711326890100755543316382522887145738569925396276424192368931379599814242370035293258574925933754548657345478947179408539718247644538691464375577420663209230451723008038123253869698216603864505661793405696217399698024396911811961901742243006056541541703984969210342390413663336512942459205485525049810593977096877367294788097893447118579406590672272021269734060773133430842833483501959933949434639128700902785778161703584409030888792693109828611654931446144600955497940700589763012114207006249380177119828395234927841178598219994248805971193777832536549637063779843612010172525424426962358524908738477609591278587763746630020095952618892185363793666842077666085532725212974697842501576809947057408891526946271665435216308393915305128907395602540511678730927251604744207697390557859691234535800133348699407560182202752300778367891715538954078880894829755788358995107569502328988203056422634161324678430563906140166995841129727083586159031185863366912320777702951908813430856691498420278344574462215843131219631407716898664026566253332592948694914981606137008906037320886929581839851167831690879721870464042161285037747824493235561502374492604459426188103087150793738849166077122851899233019339600460867293785346117959377245178119854892032230294061060648294129715884314419527971109442093231677156914519556901753765951813329207727303247677115150854148538812448748871374107850470639263080255016430248897452103800972836195155829629591829307304522808856437936619944415937390677051938304559680436022635618346280158275974067654165840291854553604709251851206024020723137093105981743878574008925198613910954949877244080778458951987615090303306505355743967043310455917745851637499064645411188820925846262367322226159457940680209308295675482051942854379315203371754726464251027868388618061278245943798228584960678287327035673593258356613181097760067134526589587591969620161767418342320355304111034354953111445692800301976790106159112204508010440932938808779789472326368327635940159283773664301069349240353280187406341100331874296507029958277531808179448820211594366565474280566183123768001218463741336733374946462704659869470728230273401957932621192342983087371433688426153704158936198679013001236508612614697055665952091636485814137247650088613005086820637576531720363339817329715442970865330782433453029949482488808795799175169319287079987792587636557074997198054774499833576618479608262733716061230150697336936628606012180100553425272048810337081310371234615246473341363116014032781107415355685301515269512658508286711867450119283973408580303615230592295915333631091296179133632790009705445050544486686559641999844336865183300971933281380283499249866564211870493499939100488526436263108470366207217138401887452351786823707597333628371070046250263869875686326713899275177348621964377688767880500455882425106485250011648086246055755941723661182580944144517557174900359293909962356269598426442336740018449747163850882290893324388524489920657320581942217242411445263500729802001023363389266101505202459758120760629060497349434978485560471938233548359278515408511747609695405364328022338494007639270302380271579108121041985675536996882663157568807285437859654886510456180887672309148405106298358867374005852988989511280603321244108804427148104997247233828286140817350201422859528330520477506546160890588795341155419857489177824265067712094873967419960496672051506734348039435335728580735511277003248185201424152298249177769724506909438334632423918264688053468137629084384691032864472559512829621911353815358937950109400820580481300965742016913994575761223618704528286100480022146176031259799184084927670433094775230929110453639305141660373453620712535127300563798817766123083171121674974881234438542403351991589849995977349622638088510996497352506187398558812901297307271517793529977666135668021826276748922381650635196947055283297819164489279290785257980971401642393940284187990274768325375434636079395319654691445430470494685062461506424259046899820080751345165291959352939272299513623794572895256476894002876795751592897209096467881270040083849896519882231026506829555973247235429846096951237968074830265761104716999879158785127917737177730888826675754103558388424261195133144118819228780359486119714133374463533232718347749740117029096039644552564001344596741645681610314340814853503824728471163003142883947162245442610329621269183280956085413905743806329522440091030702318189718240478888145765578185769522428296112599810360100127047700897123450060238513903047356139031361489274514923601883243029786950583519391771571570410389992303450315425346251797520738884459962228888527648282683523900930174416589661937830242748354217537781351077255619504865919482533642303944496286498369643447837459536131829454920887224869806411015426468212156888817896590084468290975608319946949250497806379841309275763147147956651121287454481116293107073638931030019525971763187578354637935513998985190267878851885445243230794911861725217051953218056240859921032924935001990250949469699870967114449088897195566880220464798366292267679103908441450850453197863832279154947378026096065343169590621964015033734452259592094286460567495469207672074347695286872420511409806674104649038379550790870573063800168703675488493792412738651463761999130089730812104098457830082278661948337720304115147440533385604001514107548071111288081132928792644426073714661304222488991123370000918400008744297942611875838205183077831741962056610756136388912775307444472701453234425458020296225938999217939967729707357602256525922703650576913956242353768652462015534220347086524736231908488434380752877798699227178463006770795619156597768562582826493436754256609797747363839740696937914190992303899778741078149631817821745061599029024092353477572983312025417376298591565847431419669999043704423754448525762741275302100509875150935144443123935090621838669017848657911935702834779759600177106368836588710956567635604214084179585294461993750625422563019692943579200799983510934937039897088221829602853219908794674808091307046968982248141058073093709328289457288076883349586822403933534660861770770121951255427170815081024679354120617555829107490482717433885164037288095130782403067142298704342819566556580952744536025347488008218983806618760028877091587166596345872852652942465039891863529619842574381264100218711812722832326722159932969731682038611799073393368618386733012629131511915481953631778065187984313363098676601174305213382908378494986175310858208549514158950031641273601456261610939192537367045431841712126162002824430989451242420963392088863377674297106105915870916798728231072480591268557420854062533574188844320907613023002318396190432584138510942813482085140823873719761602078724639363364762773774932086957048947404236557443913672712175366738725141310760137877088386898002187340118418219036580935340264102617076203961819700990306401881093078988399899067357883696744505784653493978168252167649453160757087734961505021678394140247315934399446601181199477393019176401574601649964284015310304305131039775772827516206076415925882500001917910088300217651522428441391572358448236407039237680871147246256500757092920578873639793917676299229510289014563255334779812623395186137100626252573947716861519852324407354834802710490077799540644827511938897260440070983774278168528943580517776647577188854241001395898275411099689586037880659320044029596059216021275895210992188139565442296277743063363443851367177854063391904618470554233064298924936416400602741415586474688481966688457920415565251359014532306298775549990896943174634497509063386289400673834612527627263259903061674472554608862703140206707275849061400211560262814206370953653685886838909066096750362578328888200948016312631197770736746642463067864678368893150361316551463077511310791767646257096857755707537360012183996307950971438625093446334153228815772375019308779801816552676668336034896083906163163121224994397227515885337901955852889276611509261535995764491303910433530093675011366076216038733459982767142988205626386084179327254105759819245235762768744210544364103604848731854088402960811266625679198473133196670272715159495417893287267845460887011252695879762396717694216050696741514186911463609506488418660167397714209175982047182660044464207897854845218953231750330506948316463833103636275718675325670170811126118729556499802742892752259406964771763187087415173420865294987077274101616730802075353252720269002212321633710101230580074980514140930234442828527874602124906736128413394296177151288362634564632587556259358331273763455856702753768340603285614591880423778283404624015854491411612839511542368725188811218487811997090283953505138219970858415993537753517226152567652082803813824047724235505716875541345661426919350362459474631080920398670253540349247649153575124835599918239590089778962432609389330709811461003438932764002632886418359076592647144089359063655029360496825148013544227286685410560015950710518939783198728677040059165391506831047249765967553364437959266561730235818597396518431624378035816099148511239588667912328712320739805822646604557259550777850526656665892112846710502986074707639723876754594455337096742118860557899918491855900601116152205819404459630622943325546925339372289243453797542476695091075855167360330880601599780803918878713401099928713206961465055454190973333503410959972276199308877126449734058467288693030408039876290564068791813961494429307818382268804261702812223047013704730259731993783732368826724509444955062695907404457308499056972603987107333413866934981638690942539922238393731399232525024709891148582948867950683024998161474161761201004168668856787722334212511081489124797650885027498302926728577928331641684959028492470685660868556581927611759686342132839741834934979735126249342304878581884621392650951975725091688458343724168503580525386038980351483615938916401630850208612419724107275620018837801163778151435340141545669608806453646686939617233731681249711682507153675328562924840435330933202012299047595073179557378802592771837367518520608279743452432233373023075989801234044905458788560540507715131306213800703531928889451467134660378416392864988163976224456210050573720448604318108896957937926926660758150816831788256120066934834913136222967899536249628711393071674814422650011856175593665028806992230693817974946964992163837141621545555711600291961002571974154571133883776348602734241247447780931207203850801478251121014087247640549796982044305284406265935274207085543546413524750573790989481092722992287560737299162506535249011550902627403696277123495827396277379700022041934324738202859715502780924811515198978570766501630377220404652775404032318189667787854267498371658156830351868797337156569605500386209464262978876509724246074497606644561800919090646419031824389750695941967350055065306604930235965571250314719152842277540998520080723888048878663296624861280284204034235009253286685767510800575661507635622109357693168455503651117248410919200068449508893708159891905330426823572342246522134275422955048962100252895676834183601492662010528011468433236811062330115587492992177536167415991706859893053631102222585076780477385280731649394251952449752775315309542979867636646714647086315366301563641904904937020293947886754016205783077928440405160750442601589003833628716576102194003245350979220347887661187876177220222479924215814576343618718897285341144362407604678970959776125849479731745944809379967092664382632557987544215262058087062293133023537676666869523843970074202447701600648029836955928352365902638290792429942873159507915173462223672256959632490567391983041326036114622183023789226368618948860718108885867550389948919293887243432274998466878821221450834997236141422137812069355522435606024055140742378605620855867102383379726498210591315449480103699511517323147628770477609694116485104569927481307541473896254204531752813641310382972364765737233692055137432243983303398122810014417415073335329968308701706700576893160036534291243543532558861311693003139537655627949989798214575440620394166008946608576253169816611358265405548197790510968181894389898628297583252107711693559188189951603777560136479531287222569151702715356977939943258346453105273408354775610975858553961382597161053166142759262569777801980953946443344255131479200409276202134135914888848653809692513810940277028101675078358364225506007969854615053456301948656810769204834098503097672439251356337378877658289843175112162291166564602067701524335898745962983448114389500768222347189302349967069751121972381186196206301299159083045381149957563145430455495731458404997479539096084646027720083985035239031008486589024607783610913525919026932873368422945503617922142447123471927781830553172115055602823743301672672082329326304086294148439754163658527556756962003806106762320499033901157315696354706191714768873797698882555513645356541437558019771656729192316891155039516959688934619350625152795903858038977323240493666785976006911375040913914956823354434256443254157605350410044082094796590011629721719278343959339684059052613653336925788325067093399802169427963483895595186506740142001112500166916118646139490004868429520473993018097965699744973900493182463388767178744016748227492589975404370972213082600316331391712602388678708596014237915390036888934373225911054840918759930233025687994296492873322353001616715112104547209102161479075900385471000259510518783672488893026180949727390801357184659237483768690819528623224136814574114298316109600834724300300031331226380749003139862769487200424115111932246408792707789481391682355545426789701282714012320259137080084229475093179077771552661988335937164789048559333241979012954879965947939908278592297811939782197449188172034560131290885922426556199085953460247457600829122397254111463251944406344717277064067299521782831663102583799413163322664833447914039541892697603956394627452167111627290456139839573679559133026593050526443574384569407389631159022892223053648929580805641209245355496948252728700810324149569381765462853198373047299941443355499412101267204538609650507755888655770034316095961044794054264670944660108922985757150824333279404598281665856162722597398640785810303723639378293604720881243087770654363311270637175538238737931298987378927942492058647172708397360842142128738565007026892836276095141773371278981014442224179597316720180756727965086007239509141119983413397474988443200219606274034161751677540955812482602148598760372199539178191637887558458713864987807055478157212471624893978179818523539251635943435825722566933963064279648454297036659068356298820071419447400628810662160011733010141887340166090646335476542005813679290928723391583197959044425888062168270688546261623898040533965927487014863953317320205656366455794075412954280414412595224738949289186558356896963847213883347381555189884860273203863559138880631410659770579642122551680249554637170860288501811678259211662853475942705754153843848267203169328843572033200455027335195410726722620154119228154085007694172808394108764499292481494551995537370132882722315703839039922498735247178592815517057120249922846348818477354852527509396791386633398344802226380291315232581735283704257439356176707122272425913480362435846602848338228042432101228242643461790354130942128703340335527968870090234792657527028395300928234354224070613876573967456082705621624742195350704853446220448237789468590512224320652128832773191303726737983318367991268634702485850037664406201034616887188239755029931573746229358772828794057486284955069972164935643605335382883669342179991232253048533124125259556784107763562595600277603831587763116664929180026335752241912433590730415131101171487811356326069073404925059145449409172395032735678191745364091746814265725946700798727682950486148156528414601173467025237704582132272429390918794227814471333786764918553590314713355760930875083780890266026910414632139150540776540490016390784943257791653089903089362995647432992768251525298277399509910762945807130479208510410149162013239272320165083205447808383460839916067730598345122044875482111201345125203344352417939900009124571097556440784719562342371564332703707551365906693591654968822778194697526136816833260462991687602056737288894922613316002748080687331312948961057397781013669898796381650941718628871442879449069907790956238408270115778183810607010269090431137865020599382879548744136992606661485363448494114102081723289681155901956357332796645746411089534067709691157664396362131736223276880284298569479820265527286065312767075086402056725232089376039659160742762080203094376674071730810250184457482855095647648413992707120886570627152332610979415918628823163011240657863612902212442779861276353183727026409901510198908159404363828373640793847101575028649125564636497766390081448690203197225283225852065132591900265520012096860316024877948963517547576817109826983800530104087518044166214121745721257513095452937364433230004634516572604532421515097340984270979112731050973355888383963311636518779623663679600033329770616572680214911068249814693185657112190042765890049571027705228496350341967263949647793898965264212456261535706270675712248262919501208805276186054539337297330998002847268134916985631068493215358415316314732568620424506946189099958601798644321966457129694184921047893594643516419591272624251408263313994150281443405389467704586580520805477707399866496136877052575206742791243971614420483105574242005974742759331976274311537488299367259276199210396104671439012600434140109443295955989263753942843061535277519459904949611775110234277227515825894476137856361457882940235917869589285560401556346761847660211176496035245145847422157658582895484969088418611632207252285819261681493255001395613318990069853740617478976074621561879852848449077914203385960527109564286463228862586284627703171370191557647747952178453551250258150237345762943988581977775182738769438409147203060357880055493818004761726596899475785678711599370096065480828313848699650084974157210314836408268107236806502018286325909090339532642556165859918785318861789022178660274544121915291719234576203785879081081774647042809209598496034853388520703329754648005667524369281587122927081385402763250251335293092352350906135196897668723537415449207080189036891106363937254315763821125536622376200907539533533328500801118369811214697112920117752652898071712076390121451578551997663575982678365634961192033503368317282333826422001344357114266459897452807679513810072778399326892035151584845889004917001049728863602122740806613145903794477868431818253499463438812870294122004120334600387573491289707460847055919548118615508822974444042151146017119533962621226845907337353395139590380688120825237512955740421682769942614644839949138795805469859959232138697836015427838819725719247314572127207046349708136604265574229597756597769417041032291300511400113288842506339401291767627273553748922530253076271239459931423661562289308810206957945859583860395675325980797296789124550387606812356474386697934088265776846194596791956193875013780316922758689414560399043907586958219693983577240347348783056064435456205912374977135396199223759209104192078955619529885077695073171696847008769737374867163757868725801460881731785633324935423372394900008422833318056808342407712938389030406757780799468299693867870586441119227703372942097129572009163707981395883240323304765491420470814698947547716373772487233584621558334381603144664060560509580766849744191265594608825377461904364719884388214307807103432709212666793425607906674238236222856386655927148182329251306834491957750741548804650803771406158273508718605946809172049668531868531434727381782126232299327340833812734510957127708131413108546202062861911823738004546682539274392497529410627697534390989004933159140470195748893222295658602903734144115897712719811081537049909407760278912444847842561099512251863600729230848855686214139731204392791011131435747556375528335791012836765659734798221783556563603060250260834149696024603477337830912143125377654648809638828342991924292551674964943483624200572277711654123056102666154201313655809572125993265281322094532351172955200951502587025898575829633292920056613764901052511964937818063460885823536822308402748901095681246233099424131407453103928348754339720043918655405099988144376363384325482619343396488591288175507540468325630429025365326920159649153548040518951982606583038245874563813204310243672848954052947541543281718964254099292438455034911060236988931143668096972014439903444257118946858818524912209739623165745929113824998065555521461320649958573001709410625669961060264200481654299780864471839215409609468524045724840998053743406184416298897279050475232579905207419571472361523160491498421300225623000577821767033055866883964160111808253171581790547256649367684328270966115836960781930130068326512432615175713816181635597681526603143126553975584256733890227380089261499089639084758451378566505132393199526732851557509073424370036972234346155148826703167567756713324537300431175035444545278144927427162711798147538254186958921840993750591690758331549158677494047206750873175808299636683729653009609461559827317315811891428145226968022303496009366735721172905175819082585818084113783365878378990290133579072364057149631456947043259883527526278867464674676052473839615359490606103750669188128418204199520300571767121769292742400671938180535158449735140210186056181310375491939383008835202315894733770722075574868616870981586804246144805564655032711950241859633289899809907878057275454127425925033271281360545166993577738254647759110400085512238139988497600609378676937155441869516873539089988749925422519387559846285488526538493088103525611882398429420772929498832465993597379240501744712209375595660274234716805444725259049787672246916217757907540049676053742741696966929451698242310173716697615745334451726923265495301611953861783408889577110073997723750977217533552588042541041665579499368370962159726440786022202112607090906744776480072372434593173090333409784604759225239587796607108295654936338911898149907150879493031596455964657561656978958353928785262493476603514745103134072821061855936510753548427381965047466251060403011513426776056456751604683716740463805500937461054819800524553124029786304546255893957321806662527400684685408983367883566313996228794274383106984575305588900718982164587846004879853160712535395280227753747583846002053940854944639713269180759059684375230337143812100207716675259443341856375662987004198336286537692775646595251943175771521428571439530968639912227896644555359405269987107442458231977464583096659717893181342607681986184019496942471628821070991422136080910676997749144231068752388737833266994495189981773754164265450035445511718171105647100496285063222210601634031389966037451563198868188452483628954810047910666364431810202061593000479016660659593362117972240737129047989067310018651790880214050708255156042867264136245318827352854768497526727268086467154216092235202009904424777004170039192748104763693010639273862113990719881718080369600594342853918525479563953384372093289327434175744511013234713852887229345297792888023490304484536672822544617216468836886286990514186810070515446216946877161067862987067720972206738022130656595671507300273822731020915440639344325157825557540445401494508069926112686993286123703141596221572909524353684499068879843300065710990538855836076790421061063810591466978259703679994030856222594266413129776616034220804796788070700640473745729591372753501655154531941294948607818145757918443082284344623194686611276781815687532215884211582715005428492647814362144773019749981348674873145953613909395863956830234156230135144079331940922792441901965815079764096882489186974855208657080152052614978114183104251249597038590159949019038584063217217183008495673321083726291704020628354347397597846409869871742950251964791608001127266527397823142754116433095096279314913653912039331066742073398968974707994890902602500128239671848674199200217612473633886711366749655367520369618200968534053747561763962540943501143664565750018155738796652817057772403203671041936155817160608766084348244224527699188965476896300130361256767422179134258751694103312274851893590383022864859831424820011841131849253593582425412167004735778846802824865927963850295493522831670854995984290394882913508372208742417312859013856866624263022443160521355976147399213096648806140138883548382791780784681449008719571876562877533018924091867918595222317519399441704072692296768903136513561311533105494830668779630595788903949405703979028256862157549347792849157304905314083400079744373108558769770908073210249065207781264572100305480172146624828896025325915522926340812347905856675487851508189109362455625405637578148229128871569483417910491799327275138154204271298104034381900609648805436678810709385640368578876410417517356017350361703113973945015103451415079159549373243504580155178292396758949745963634748648857356775860656511327446375660466391709202155763275549238961980626051273281942359773187126856271064662019472131376551677270889720512739261384609337757023670311367032916938330224156453127500592378298469645879537013591820768953781686272982528167182525022817532237116302081547523123013736167268711992931084840587027771014087934618389692074846631697261891378499991521488438549524643098036382855013467071387032800408121590518662401141427153882794605314394030033094742911664508607578179520269398404487082480824276068350161674138970095316743043596680130654279211491126860630415093487122362272139584971199992263041898275152139945674887708558842286444288868960620085854942924510593694245891878115161449780608307792608331447146303120541032194452821143937726095383037854815729795927453254044693954901939261119615364211018450979668298906704780247413735324769316855255757705027347897283967813032797241183014905755049445595577012512097111653469900985891022761411116801093340728433252424454539322413830404951348717800968945225554259495257312932949895320942170289500641226012825907170987069785275793272878165269933271230246022155076550670456016559473215665582635005661942086254218462682357618484760984459538937863226162248913694721059238726287417860242009905590499220250478539714205381217383957991169860125101527736655295883209040994987255152442102008141079400819311578734898427856405330098523514558158620439806525924994695562176152515109656625405424976373551834442860675126967590833023587233286848228500909739451483728447415738836734956179007250088687414039483556027990820686486723591446869918281001628133543081670721366291915433161762390097465306426744776418347617659611480354525409095866420474352021902230960691687968796321346207787164272443623812341569545696522863475573601208634734441847940742382908694083171538947607121614562102009107517750419672478392122073370780640397628261086154559856582253280497332208162046648174098080052729423903843718420152780602489875555719593933219876200990847938215276776704014941281538380535352278094510515359219641431608232086288083089252580960919596293693487069004893337736462718208641589718851798581398255109302602484960386254741349091637172370053199316467145774618258297097570318546126826667038057271371083664799381615373336714579249685906606137230900963042374229493562698727360139201704821351390558488428774015745353563651032486070753769910040943094418358221518447616950364858961010970632770476098495644739915485058762693354747767331919738736626029312171296825088734534396314983597907960316304852363934704181598171845450850144111587560231862804696788636983846500029865504389052157523360416221659409168852285153163645381565478168519860317852698607401704586323651116776262038838238527762746534414534458900300061622608548336088934627099534151656976569775895344062394282548828766607338935884304840307099506728623690238778448252546688829697832707637092451825403353430989334397900593096071077404342899147151327830795302452283673870614990544660276000634578516127979051496673368015589216881201202769174474481649152040886777984628653787263879617547573607439065975372036505476775458307796204093920860348715742665944144967578215609812842260348593320157998465539488098816363299430810185279995361212998532253965656433143830451923813852855524398663326842879541728027745777727994887192559345167341541953549360135820464867550236874232573800604362470717701364895684613327537036380936260324359954669920062723147000344410645989219066165873198681531051765472303842094652081637606833944506255304293407747501543883976245998508022417182505782906551993769384797572427664654099156873937666222023310862636139598681785601778841819468148641383293205166148541809833995552102159860560708109216860084975587924599256564255807979279558756780204404195608624570215538140104402265897123616796244550710753029698452643135304076944128406781676438602425523061270194291878631373092179948579383940844147600776825523053361520732858638913712053100958233098913177800279593513323074214543733394227974998189741992435151792800789548131642429916752488577474541267352087887585957801424921718840111266170052059728207644377860758763123465573729454022583717366706241159512251626910259186967396992424971521640449460692372166287001964131263196353177294605513587695441801844511919830627511117850819063484710322246168964933505093746196309541265198647435216906649617375733165894180363559404545730104659797158349563510351840519154633729758168446943232352918036237380718532355670084527128126293057428676615701245962113828191559722496857262714605041979993985429447731740141818342779485682995566976840834840136275439608017851817358288459510903991982047222002569954521634378923215274042386455110609299805427920390218597498444901783799648079321878016404121439868123149030232368799728529858960512836416535782195870454428572756497094109879906193326998104503893121203268658116173845710731700639488416823167735070928821283236586232380993059190672394466262761752066738095331036258753844756923709776439437064428917395882917515008009181082196778656784742074928034774312130389420789178804860642054047248887852826407580928421738675099657928979581285057670529651695254909764734346398863339626227884862103431542321230693721888695862730770504693090446388982888477676422346488474435658561812531071540008144165455566730616990524320319116178350608176446442177849970826206576582577348769768832279229198030305985757234523823645309344935984678591753441896510224086416714223555492222429249769113749965262390055614440863015730761269187744075178344557670361431548500682639024416313691596348621729483774828257600972429308754638924378035682331963311930322557629879358122026578747924626600382543139887486514751714613946162637756116406772510881020206808255239305178063925977930604911224359389829118987667346742054732176357950388437646436579941653822573367281886765690494706846185669609471228142474965831858571269640853473887266508879750215975593797596663567423210096697068787886335838707421797341173125252211350119469539586886801666565565931432947343175113064283907566350248756208340875391846318644381634610919261770076737878097625897300142691943408134273453256870138637469686939383635195983138970118128515164349692138113994043861912211557030322439037035490140540841122435692217416138132276790038819440802093890362756534732697437296327453257213755335944573146814731155009020661108862847175466648627914523198703989884130514714716735989919118788620403411583396114618309703613022359695561644775052261909959524529345215092008178501123747738540539750549541857152936778924714081083829342568124076425182195478969341483658545061173044792613999684938053065890579427928154447193087414870070789030615705859472931328499741015813155148167360835833590859440924135683251710583532352685840260485023305098631487682849612413680305650029200562536879472644198186303555565445975423029466454282017840881056104397243763510100655493877104292314952136492867545354970837177595818298918307428986890976222206029617923279870094138253053518852527921097467228211748623110266514428807017410520457008574906173509983026165063113359736686120267489654853616814298526473266277201048352502743023463254263494598625281024227777553229325743756779803978913826164525933044100225172253024358186877039172890263242626010935932323228512881188678359147347880746895285133974771602417369258117475767194002118887412299038806430413227980047170266820119083221019164731193194097434451741062479330509527237077115442709813930864652524438914472588797827661666462288276614809420995829201823163148333587462463954111628994137844494430078223077463544290779530484576112992103851257993702268136049290752475950080066194962795394777361561069633352503168738110652061078014539119238586102741749865740859484673369329177511059326757896722943039057035047413303535654871959110718954328680162289089423781288024309780171013793569397478047197950848849483026870703388617461557012311748838980845450667700288824189237089437332653901129789592516086078518077881764280454570434048711242356279998937905857883081559733937155304287527511021146775039880205926387897167997936457886775906327248820923407834916136865666064518985243870571780651665948806981992662285802599914331002254502754031391430553136016341405197174168521662661163731193042454055880548822420069209943079718539468945699984195569753145500045574489282460130067241005373824109055736585104642460090273786144167206239873666227483960605033207164387380703616901192999477564489067493218445341327108993060448142614119873507475256638835895027408910237503310624616269322397324711403748635557650975701033386955300727768296604762986340739827091431402754592827923992979893495269419455436137035210127251399993250524392216806659582517053606668881095246322333475339730545118257008940457233382829263825633459407508656278582251585688566237360656384219594195519237311411706066268551172983885194455171003261296387044135056148323545361834760006680317694179473967028079444557379011340249823469946216435146454111731687813977854940097661522874449804721295177845841781626259627984588962332450837385540750871218453878548569433608350077364388509606424795962680685297958684275037293487787031524398722675872806029935113493345835523419885758292045173061757404166678732542707896749343173187126352081005720019831446900673443821224648233270302075551822010530421511008943858222645932211759575148192606572588633426881747251882346451575818032020648837813732666045129622207169256791604541670708905659466286620933625909557162655681196253657756731529580833870380271120586806232836185368495168812662345483507885705031409693899089540087537911229935350649069923123351041099605088067305192836071820720480987457176108724633027662720894888418275175813860358564793186852930918430425256901409708314373594581015663772227159061444593657301534140454781275788432411157737747957743858129033021371258534841664760446693800417271216601734847267919936763132752235146277005336663083224875464683393488309118661207824993800167291043851960860502196937574081294537815135103266645011893012889362993642423431046526057246245809525419578182086026904614323506029964333009374042525722921590218745955255900565143097549070324272921995682915892660405918673191961598183665791980646803813586289969714649629159759518064285159188934898176641032720524673141856766129428700581821286174614443418934097528591914793448414419793723510400877506858881832653429606901378399813808256168113143578994068311349547534124254685864172624293133437363520217820399869073878464691168767841808170678299255164640450088855390708210133055951806339788136559259296011915939641452899515958337225864727394037769030854701899564119412948711331293734746258035691655204446799576304048070356378102492635866961863994276274572331787885186693997527184045690710728660256149031467827032540452744779662228442298268636770808713686791861642868678026449883839959506681830914892275786705061648583501924228682866813618009260173660421622392354211761692374182202868588753960208556284405407092818233362164330204081562035668733518099680765820117376945279462051290824471540903860735888537414685705217277335248505771695631897137422850370841053342158295553751701445590735969526534727153539993222603388527997835617280944997900986423597594535019395518282543625040062860727313295879090517081165811239170235470520671238128458931576510906417983441213580889678825358035545791885387502376841429177679934654852795888159251918325945228065073026347024913834169998573153735326579070388714935659839716500179613943599987330813095623064673437678200271731312695740989065952853316524647919353791498792728504710160895563074386149870372528005948711864958440724284946643580382835605301574240356374376827375730300275960932623377744990296637654988171256423688751131426566257584831357799787567103598798240141437042417259761277819184725158558660222895038214063821913919923914248717501758301163436620215697888638692414059483063557632682680444055455028399380019254807594934887386849813477514633812761145857671662242107284098262281590595205253642099450641925749770601361332040911894682983955336326236662237304473152160914085550972920378511940790275743362029908586833149429945108052216124203972875788234097233113318702983188300650342245815636407035744886894802118258747647691736074113156779457535210577057035726313365586091329901961520981106711306171959677654213475886511982088595697259985679578289337276052832972991232435999287405973354734335710550579726504014053269093547700806369297082437685924693134694942759345923107300550060670235463364461081274672809006248660037362797420723322301711601384875253987866101589048004341176867183104710972322960640065409965995621496285343072382458078100113733831651042545618715754978766304666952602677383329707251844672514704558147249386361371493620243562874996595063768721068786758453544220019745237176350456358100803606355943808033825451595252612879445139984832407653299065819850645205654523927316609124425695221329184383352482534942458528762913857349457868170608221303435598940051118334653465077325675492656727193542041387620867707685282899854549878409346949504005601820133974611956120333394822923364301770743079643370303587104194560401250886519908023317598976788847270460367421811374857960890898849662633862478085210968604260259558705813008836145127233763746142701402062774921771136141312719178367712202346429955935311788080700695717293916484553219529687788296496029335454620917655196884499849110711493654228706495203364213942043784823030251191296886911972792282921818661722738186074415723844672011334091305069728205202581904969844930505870662910906165173015572480662503026301883148054057102880684726354789369122578409142301431881951660703879406425846028852546752327680885607460877723422926211405581850865043561409880390730778956978518536881059133285230626413683331169032687969758648371755707737910923444687667107355129276519134207395803265125974725222520919410432299867058032861081287824254991418396457163356796535812778160733245940785590350307237993718947702007621544682803055488729584958196975247958610545847440658237560070346295582423527478234871480495529304336926421254287724496010331304653738640464514279420646974321699253737301238678398347440098607255110437323685626901114954666255490700702075102701570181072869507853275976136243274413284306816131425207916665452291411106136839692837533268126005860730334738148697866588980190143066747643416915641058285076751760600278447576418042400905416437699596888674405472206268380670528406673815615009387075867617273331183747914672823212680530770459408800006324685048180674868807891294304038648822322994903297857141213329934312984856185256377488895888541114926469164026607446861241194808222975347780225990458860294947392441485771416530867413375455868750946327388961138562175128100456297542075937263783561964758722816335080569640017099917459466909311150359079357148367374502250624340112756886889449784742389210721838265573120855657726129597080374108604839196390829244322246517232086244151663947244051377745584507663394199757973728918867378365114129848219028035253405595215364928366715314848810138348145909599898591912895247596138824362525145521377366487356609339868854940246547339291413979165141369197545093595719225615703805179464103044628940666053105860798358174871702431643626578848606646316512100961387745720769081571578029731288313031900719813984740999417432417294735743880121632136461767604434696997747937692442911515033093380268610014163992660169280276212876920860845789942398052327589535241906933163630520100764612439677644726579015037877232494334992936805259459627125597161777377890223149910281049920026119705601641883446971946297879645069923399296384931749780831646529826712954287353479073816547460819699028786688629162789115553933528124643312606891179167416006763212560290811060208053503213830288102957323452799339909011598457608131460675342447885320791106146869766673008228634250801881451419781450357551020114317040101028383711976435743634426458124948473549313354368857678442461237607158656229830264734779515343905689667010054563307484877787517943781542837012410317106738222697028764018282932964718149707140418618362966507720006862519363472845558544879455434325870558267146892736577773625791687422233598094837164422230754427324127286937062449089049704098176736019888809376901814368269179946263261390515209699665496996091813039411007126949871538416804679994189242333071286129443157719522832831741809267909846415872559883540345009678899938515145796633333065258580099647809807562809602219479173938876798400952958347234332709708946463321547706629858742415399727534246127121946969540665909540102903732843815939953400471132617567048681468413686169437375234305260100372449807134916140450085396331620364539903928009983664560961397625018248590453928051209352509265110267063369109453417653474493753443102443800568629300085279205599895713651797635608583837390686005925676239235064900402499246565583433768879164955371098597573831174475668665229763747910013015420822098947180889571759154235374050488694656755863031029536293041213520918396975094545384917037226708813536074846382857503217748970925114687988637007919921255487721597921952655459985812285094083561595020908268832878304141756984697375778862865573951536085010530036358686638057816965576680890524524603989100459062602099217225226994844144744554353745139036485706264660220118771213252725864843646696328527754286046444304526671581738571076340351964175272559457528695358457151749826337287491826589681296195646699717640635314249270111703397556949275302477036324739496225293053660522056294455025117743840182011907064274533109558477912061377945484008365852537935541898052186461171336457561504751190596051144109776731584748334674962134750948568294478092569454964194540844259510606250641150363928607360498258707792498640190797684149055698615950461242128651594189475998742853006068084731217557449764173409725829241818313008976254539866492191397113244254425330510276317010836569153959128813529152211957956727439759910052115449791114173774122124141222875025212878824053693731734976655037517948586600494500536159998658592712707649126457149180119480268464155287386395469232466309928616612475121514320061497475425753767596469784863968793873951659042919895948996062045195159637272878556500699001325117214456182595203515722063895071848182898921640109956484802441930001865535416062553070971934865387323471811170666197651646787938861465983983791192454064120479891768058494020979033767209264841803461582952195783124204806655405766010054358720178396643989546152150075754443710883412226869817908159986410228515037738708725774861422705725981425756324846448789859818459370676677092271846900725660533200252841431557090337840947972085269745481564287998064621787762796928606925795203635882830041012533912745111652528975632073026540990955866656607086248103868504021827910892026177321517384482771607799635814119706882294542542148792398302834292258573073863507913749093558262190525226598195385048979831850634079907198296778348698787451892898483565130183846848799686354015446105553544413488811906226389814019541296667491432658712911422613826063305683019387863505577447941744331914667723051382889753795866718019289512674327860180643254381455160332861031511487052315750735078968264788745358099037056483575600188876577007600970446032955433557958192666721609728242794378859828565353489983755752213889252721400634163056393184463364129097104603708074770580036762327716764492555035587205177523350428921500256436620525662499765969514370356899589665764033437817590225119010460298980488565712311721427790836105074506581251995817434505253311947960836404777584514775032815098016539753948866523856558053337941581588560231329196710664655661947112389336154379894339809692446322801469094939542000853721709305709087997475936462195163677692742350285300673329589166475224185134238013740515855820715222509430851536301388296799669226739464610955156065079248250527767831343387678765319353975771803478102916185296978431636349429832019668872423713675723767138653708808182228248195112320510370354632826029347454818556335002406443422424165539716744362335021633814417516036432777437270076690354475917433002036597182366166252780217949020675118262010428357940266781736770634053601053840804661552287628420295248977080785124852142148639866685441472426760028242719891149271195145173380124595046483619206142218359593493962306050030450875432635320841251468376427331054882436170037908896431155684474343932120645230109398548402701440498118014441743948410467924192756842641941063165457927325095587280724467977149775536972937432201593429384975262814139006681443001868763632934685462908494489997774354988846719201025162210351692297165454552037275274813887356730986813325277440257368959087021438153830012626245530774852916370080757046132762169962017877354408204890650637665431095841898343933875839910912546738352587916368404011598078007422116608802411380278475547384752504120724469212073098368656098709304364238208984245353159564651984222124357788910303520849867380254801260690571036266433041021435664746575094401595850289550989917001147312593741873219165319394845939917310949536143570237744543829502150576535659275145874241506969463902769819838886027963221340215043321085752655908372590200246416906989521227311330316072120672839926209791040588576195426315270337479789349972997568416055020842719185870743734040931976697189011645204081713906349654194366515627814653046033494281669596750888568761411488899477426673635408351165706354425109929419199959536196679998492501230319407400445210908554206421968910278878242396871870479806152575581381904427937276782308603781258274841243808115658342043423669337597837577218742500569488106327836251377238261773206292578350295702600302409900221952753429535267039132630714020841810120472040153062586186748251714605635491230877602892874909922677341203804020403019606616580046791152836652428354008481410002449568509053896083342827690179590391386912073189356992217910671398273891501063357657144025164194853042547295103654070964653692387707369677113744919142526363039202721001708447568016924665397474372291717521657149959949418257903652354196624703220920852789841359396424715426152308662252472718909966240510217253791383399318159116588897329760233227266106301241955944035270115246372271967727190065754014391811002890761287096425424063929593280647877902619032961712857209732613852942028393466172702473926397712867986309930124618704272990209123852446490925655966438343203908178695755599981123379689544415198951862950949086950158919280190461971028237516700124364283321928093978073729794949497002094833372850532144686072142331712782996188189634303894634376879374253613811419110899277062325790166617809714347338684935571498979332313406151844918697604824703552964763337350623804013399181238120573604094394113674854888204082005062354326628314908171598120039503530816692815274577368162387930519184800387301222692736031343656419327426433632499385641110457450576450792354965966808747881343728804860691634701139121316545822588420164215893738626970922791594006874215457293218681046567216032785302101918979891300099833773691255407428513162297684820775603428963072239769466263983439296429941778627792435767757221969165450899120952581599392596279314422534281794115535880610403931018481333139284423680461792151570906167453228861083150806494561913036635370111651021953986232762615092232988053529612377201912102935530687605346934850248847865797974844025506778452813023095632322581861024335615432810184031024053193675812473949788512966138438460403742632838342850555904831307687702534922060497160351021654379120748355458551628760982014153304128591454359579938043754158928668240685345575188967895028628663984298934836077271773997071685217661377995560118813271579361462596999883237974731983913626942918241313030954605024351677241604244656235364666983981557322548332972915796735178471031300912202601305402564285106304271190335146748570752750923742694944474858623876064999846456870457326217195654892146863988210532229999242214672725557371246025133116172673918646064313654511654104122458281367844862932169204903181090668822054208874868011094726039074820217670804744364607781786773017000861155165933795394429575107493220855611407477998685822611790050303477571147897398142651819889649873696908046855036965763068684883244698877981363974443876646558180885054366278910024053308236486127496230307127402003069711457845297462782012627102714248457207030448117198443063681843792289762050681081577068190157545864370555121254239005057984149597032834164973010549439583320229134637911206561080096085996643104245645717831863275447928192069725964172586444125127382798665706825864967796503898190926580915893343589076244224525584773234561278367070879552468996128808144189663308192323667083155906754441248377177027463222327589917559302395227972490828096655536019215633971628703457741423857650465888436629178478794932822181999437155529719307963576918018505274230367104879950675259214519295732377455754790086162467878556399476420874013067836597984830624753526802736868774559223163863225853721347085915050685768413062771799253891456028068995557627680778485894597141453928414963668542156760282424038739890382007664451461409667199909276828375078064817597594671900982829637883747924571108268647391841630160774128592016247359833066632167816709243064042575352419638438221635546993960743622470409423650249332761200968515894776891095683924031036950081663506119319872701931131013318341493405383257670039147723288029864364676871765482057201815744185966338548140129398069559555074250959015427063661635318788202356079609819489513865521560172833211258010139665637477915403324823571887268488749673966240986430273936885107429650089795238610259485748203304389183913650395369193887609730687584680434524381902855261088376064373867769928560864054309073287248646189827474395019705776552883812504408041209331481810860057879039579221193298400590650912567338050308807511356376534040904951220926232386017217279142750069427568185605851718128481094558349959966213282578694968763949314951669474609597011264932045539657093048478566016496125844445306397480902894861122608272404939350672686682969697109649521457931216515594083362447725723340765066377324700729125163108561268805628392664779364885283171689442537468588865652471912108118953121242444802826291471153201487220421985208634389963281719370994115252455857049639535787618023153846429698493140318654121596954680505397503153753827017918196772811495722040135961959759243374370522691522665552476856595052126393368355944161928952488441529545269973681454715624111992952665213387406934559699985366545680200563222366968039776378585115735439675524763952177466868800268609387611326285101603175312851045042607073972636332258629746407721408141349025625967242237007769350460090849509344472455555816960384930060557160994341585502079108076217581176753953674250494790113080760197080982687552652527764602002700652623403398514567176041808330166042156091141364230121769860349735813537652561073227621646402590404810913643487377059739462836962151504251234415759122468973935252350138388216442977621592518078950064358477008233250601185641934145338032387531106948111741143512921513417333371286213726558729870909876275469804344798301020748952573944076396246912151952574143260886163930457309781271781988681023654979060167321005663498125544958187796165810960027775893498617589770286670423806125971295286752924688982054429236717931400466502157592318601993724023470897470088317881411925050525349891777526029369005265378235026261115587970920181547603874945848737482959470937779910540113700403283653433020368029583238542059587689913585815260901507761085663031398277277546574810756913555514045682633405043226594262506740760049200718383482531974161751037801251724115131088080922838344090589933241068853513654238106759692962218640897854501127943154336883429751562488594176811353126961120222729722297357228726920325888472573152718354572072021635329376498663963595918110082007151614769586656367913786385847030480225021330418188049439385870438930268082176464844371410359946653317462285456051667495900674061866916192215569159663041188838138617138448213716657280298608263004160858339647794778226122471873048597363458172265197329923545703930719000865619514970997669284585602870656223475869025376492933483175477282343609702118463533779121846716587719205771729808286288699647711762358557747641873125060626179263432176217236938829203872931942770720308829036277366205947277445122240491423286891136656425503902604286808856432702425741784453776491137487467693739347102522661297329137363691710822940967373435749968956235647708101796447398789800204160226862182770162299294319057346183993784954444934375909418883026056759221163781294809371557756855911352729335482303044856605801091277420727673662000182200001542948518931473380703976960577972413873870579663452104609526217740200920906208279803147933204320580825378671103303226000103272858994183613304921190141300413278178242304393438941791348912375327042027610098063869786698949031541095372808609557921478159701577994430136289922446433861482194912666909522308555934438546694696724684006460541976940526025795672700723156298936838588432010700561467237712283427601124935378751768032357255164519121995633820094003468027892153012027408366362447068629039538122761756705009722939998115601775432505975694009628102663099927411743527663762184265087650425913948792668747259842081267386173507908398946502793586036593811189534732124346535023463913054091246649331610633500937847695998171191587831523041659687140485766645855539875124575318032635608687004831114641035509829577036545064879218923580026186576458392792822516799872888423835516981702036724873068426266973674599333006302156712572652206781010743752326070640183083645552398028740330541129889394766640219386121628873122267210423973853075229252141168641275160440340659438220628287557230694795553116761094961711707143179151407826726521822695313139216801908040699195386704570223197646879976553382167961177490594028509511088585958355325887291913693912482292224623123969565945501433566570775943423744329785084728351342313036059563983234611753126780533612202481140153652888706042060768821153309270567332970552001467894521685499647133726440109984429128695316766897683903396743927771163816359584526022757908464475697475918543468161973761967961933054991606615004081471211567520327713410868133833810453652420060930745414439864819605461961770076708796990641466620826943554100826091472822918199452910583284487230645443917971880556512456599828714613647205869941554513434330989453379059479204875082552737895835886209275730402558304804313643240666767113850547119307051919795375750379533495928311219645994773028363750166494183180852306537768289661997490094174017699240734820317871326860247608736348739468021863216917316535910200687158928638327601702655556180392666320736585069758496622046360313856036676208535476212326427458828220621914199196997356872230010186585230414611616483045912866239068564703213522685713167029987784047134814307849462655874406977534416656720986547469502042512720194378208348788908287748792914936245722907626202034964590497865870885948201845314241794037779515385026079193527123318621138520517054528913775771435749735735785116303084455767315103050961041922339657708541033780068402370661381178048137540324744003355134303041910296767406353838844791834212839068250157002265038857280805533379893284672550893338745920054794860328769024686649121134796051270918639627609929336951796351431175977033502793251953983497423175919526984573591496364052764188944587693588488999285194971239869726594307243089742109240763166759639198448119359594783499845991545135666036383053776876363586209812292796292549711717135866082652755130945722757933852579222807414600466921957862231043191654299180666644394527568995436661947336813821167457018005113667586000467950934953957957624271693237501667508989256609430434678092860680131689409719076274260337394472676897626946955394476566721921226534470840316536697012176965251040616372676058792978573223659502685994020270457415527640352662323911937400750550814412830892829121805734311215635322468528470303998400363950186059688063253194681508930349384921342870845373891034410891032742413132700458404792726320832657885875017971428632989090082965456930901196658743853737443682922913269761777084660930036138942184484278966257611898276266479805267239046743566048568553920712381384706621507712396441971626915681017974052908726570607906983930194066653404990594308191433609091072032382618529789123241724794306155781974005567972772076042837754127531374585985985478853484865727870823477627212096767849680499615254375152040311714099049376985159871043900768679172496780054265243843135634435862537682030847251104524572610247653228250548093227897362926396878905614638040602193369112190844206129681291298827980386801524494897741659748912756469220782014210520337007472326468685641192058114195848852841763850727839869550366392802317829989515783356139262254282019522548666348948820692124157062281787968727458531390685680902722958898279172292965867669413934865047940411813555586260244295698862642319162685141620140859590296572225505877338260304223734606526861524068623628567420830558654395395505645214979715431700638215249678335596393197502972250554368355675334629172483624584982247759536339060074929946958530145812807740405880560760896275894937286471539307184028324810685583555719123921682335034554416127391503356503583593487709888526377836993909710695308047109672746372342281201524190166465738113738302651039163421269754540059915482543702937469110155107725688439610496816453107877543384987021306794624294576897265003965647979331294775549805314206078854659926154767485577096999497190106074494008580675943732813698274112838407880530540118296543261040122272601388516651518559763243249475024861718479950364895653825351195550170190766106864723180632220157571033260547710305726643424197964355050838034807882247584309255662710903852821722551083645001756764249761218188039447329084317939086133137213860904266386750129148230794064834380475964395084193000674713913773240082482685906729979543482835836655176042653852611673674744918310862231140790916112092401580278454019845213504527721377680664004429136926573011736035752383669487024286796221231241279765316419175620953045675339747809742426754176362786699550420672942088643319602452878850246254205874008756100535525451293229691351354424139906294853701424655468032259574977042159728508620363447927326999259627133705032363218169580897327841811247426896083092805653287114752457265620261691233752649795191193643399711756011638574389755479550172513944564588806381166567037938353283617267048716549336945149475781198520138743962044426385119950084221294042610300140847214731605399854292710428895025799670290820136633414923844315108086215441079446883723098927645978744272455833195002234066484105710720905046505438318870192533286199519769817342032579929547159378761445674707602000322716903582228734109571146560907470933040443121840509274782658886732261361003672732834598225078066508728441747351556148676151960460948636416869355482936705827983128277348582221360152513630673824809578314399365995875439400810980916476675097785476457686900524154803471130245729732698987685824108250614628801589891373454564142935579536216330526786588360068989093257059088160189187903431086543401729885758424965252139090572052183172186778611622358863953148275784055532247201176880273773267834203543852807805629375603260461961974904418980388460259121009665528463190956363417451144957412296371531662820611677899295807498497578977599408770438510445351765398104017426234563641395428596084801895331538418045016825873097485045436697980113615315727617942798324565255580904471254843690717427217796035944426043371685707648561753114341864028639342061045486671811548714204293294308379250582093273293854648532894389975707997271025442036137148240706230594962159883354631984795988409119898615940724584985118827095228100467316415670817488439417554558722911492724142644818723092357375291853045354524284657257863140790235410228829268784175269302823153976314175529756182037380796217859407997665198969774803279174334034331748424356133906037306807478605525786590064396725055658572133771585500118053827566620528681513067299861758818526865910957350578302744223791492888005904898814305566078305706525474201508007598537739646754548701036115901598814050602037734685641364088967936273984245474645630273135231728117711935100032453742499007380259907720319202776650895384783839465869543140332029717251808896095739060407341620874519421154957235874623949505057607522367972870234884045703987112255508775351300161923210282187267636306423407544895907787632974410495235957928627067092398833730671614270047391848262490130406292808088238364475088570599131491549019759357592663664735945690676027827370407362897868296541056692758687412562734017293216167371027276290637325064112852271135579470218418588184104634436445364642630126087959957114041427306468294148526362544402136013993316091530032801941209202186362463493545102073860074819866339256850523111355229049789731798938439501118689283437904086858978247505300279500189110740795154340357705276985511324722593300184912327139064514598814129389421799234132719148588922440293380999590001036674184226261959869925791107516364983963900281425119674344542417139222971615283429539787623507896747106422498372012990081250195960362871369718137293515999868357803188570294357294926922553338238200141919639754863110414585907077097256545927557421670168448739767038226364150272439979954503563791578922945936633817380360905836019340547421221684052604308539002834400682016682384485949145203321369491806359947360106304644523619887592654718720090851538328903814132962981867894123606576052491564010377530595937752527119770671066104791672523477057787091053609069777713501263496534345658636430651708956304785838743558771691743006005945549988850580362605602012701691485191521640305323534932009145273991717214609233500516050371929076720841929825212673495142703086023429313248983976178347860135286935779081223235082683805919100501802572788958074077461519841544939175958973417080566315408565064269078336119105820739842478902019669655887291951138050607786634205964695025260917197343153672433851338896971789813629216998724661626641732908981856036544509693234587347495168171524894883725757121729293718324446039781207219674749665195448912134806328329634815460198679090101087550706960854676787612064263299210991727681622301229672870631164020818579471609604057451925356348950092518252964989482622493316839814687469756316514288151786311506191751796821174935238454646701443472579119590362973387760054301668685040091965631287958537968067670274309238941532172711639876264727485290145534321732713933635817614890896666656945756433044335306109828549051433003663521427757166168789761101269461550162705673608161043477950270419727203619963697889720872839933316708736728256858853076351009412967394569224724246249264387511551106333350329667528956134382842062168770656254661005203484243683514096010058392705110605843369811397027607519901005342737821426146486398439744093998408554055350805995843815412961738032507670670743187414083119317438178322227851275104103520380462901560956771101909889536811250004949395380439988541250666249010879689041704558220563557827630096607848613659866670097434733192726319601274866720356452347608454124488947056221882106657837326731587398968893155683678534722761860379048972801446508674810865648652578186190645404774265648976802054897701857179365603632074514516345243117081338211007381593522162410298140313413001482867904134851966621915946946904184863632339594932943187305435182055261158491412219193247700399160457058082236541558047727140204595235920111932646958902009490215861450338918652404381046225596952453308566966922649453346485078312307238479450103743618532405524048000442511436040377304326763485571685457554710735611124027416623850869790371068899105698563100791288499473586345202808462352378835625973598597022133462686529272518483979962728505677735924716320816931600865727097724052120217504762414359601904785252494331400591060336766578259561216537555479728443793919464260418274616556055675320899812834997320199117642951069652074923245377748312984637965460054205204049630765902982521835582873264978027243993061023699652929940836517333792113488926660827833803039327158694166682650419335293387943566367459634408566819763876741854299344711589265681095682071513210458965858679795601299961838188834291762192878446764631218217515543884699039147644386074579947602921394590233366591279947224059133799185634190842283779744268143256699468636945737518354666944215812511829255286800764371661831356315388111265297684606173471949809716389575509934166379054459612624742563917267842153714765897935887265186689034463741560652018799183639342624929877686495670863749018581847433294195119591965557596045586768321613332320051386662487183323094305574955679369055903284375487948801560476308304570393855186822224364127870197637476385786623734146045122516244274242140183047439952688008019612506507650439398405497625580729810227946312178212912015740107096837040300501963949730459804995539456557521458050729536762138464659386591322590781145471555997603920608644943649186919524094867960249403422643095786613352789251896968719273025729498198983285135340375606207942909539890878065297483479518325991331238949615476486713209956460118928215389470507232638771941968575244329030967346377274995272415629061000273819144345327799126884209183221747602302508004653162318073063414303180018098777978175197728246192287438650918989878941563119488501466229848129854346482808893727981814135258211067238138775902209475720682750992377163696170736153900611016648561808309076620531439395898585001963066907629241275137870114621582173510138103524103633084237067395648023162026308283318889501831144591767387864395910034050374978331891802633244855927964329300000758653233406669052196934362608914697227316408894145744239224642223123683594674509791904547135999041833845418541314564485328720530390069712178861190266130197177539708289333162068811715263066760143844301433654919927547843326800384602053017429124799547543952242554269496752324506764836014267585875850521781718314808055970413262689587156439380733328342176406284212032886150747003765334729310078901871386985598125143293756432244176449022920279352465502566252864596153551238446712184947361066889964452547583970957446079584408865894019555968063462649067614855929883794719895412971504522050349790516899028847905494939363768753122972262487157653717221503782937483887124249826074263846482416090271827104513533611251840128072410361931162903983550869381118065863543705925989265839478611336941496527893738156414047535218077293742419018425278939068336970510028066564042010227179178892232934955438552607347573100557252833008477090485607655195404338504548884689948862386150160511985859316531668520894552665989573940009100475089699715818818241986165089348618283680298224403840397150033621055125794594133795444395829077401354627819649933527987990472183963703201181715826592122121359423327443023984142168225669993128303140440087067776579655210180105890910434430820151666998007171380331734581822456510923683598474768643312574703491290029418672630579809972843122950180053542425137777879750090827438971214459758685418860871909029249206299905128415723194008671954461461777161128226590585642320948508137610885098477053233434813930052848320163175556168113129977899771042156654308728148220861887954710532240181744292382182096255487368488153867815753088108597278980653577468671051792241465082076892428526452739770197684825545984969051901297031896572102016362469828319994473129974930977160384768019923393992313756237098363050324061524898191227285412974011214882835944768783512921348119657660687054223815740159018872888389652983887661597935976773914355383432523810886797652053965619693817508388620731237500878858313228244291185704664301604111482081281222827189274000669901403906530743501796146143255968447843195692398701192321180695445054060359292184744726385898942235714213667456182495959664428808271101918041014886149175804477710532364659556215948114988944917817478595311831511046587209915801377141273179397296048729932750291391196683232444485435085743016254506223776283296070441808844045653265745677835778320561429579506333584236138041769522140698070070291339027605580373207921471610429475200530907875928446000130245016224551189997125027256973416165026681180388515139910222344435182954804331651725856996857267188917551840107988390162078676056150473847919226817962778809999006673527248263922842466961589804745991999011011100870693712214364699260075372751708969991988437384798144524684204913640472027119376397771552411146526703100006773863311871937853053097370234780845454572834027173096894241956080148984210743917316057852072965510682821560011137190978150907859293586334228875964285258305836367476869233737693462677407893970441768864500916825987634048841724425674730830282623067904833003263296431472326722720429382107312892633190833632182362207935153343501879916672115718592145085543888741319939293259434612351111075712872658561530001350866897865363356231873801837602200714635900394290303360136325318473653908237959924191906423650413371030804495494168326822837998041823904162024041189766949506557325465503032294276307898416678243613812746096764579234255171999182512682942230510983354971685609816685572892845993471131536886762160632552107597304106957432782198498497110545970038300599968412969837363800089246358743768021107160538102320230119750020420978541551216726716993372320994253066477266918166244047034920695116011992662658817196223409389776586856906238993874121039147728343272534052870269808720708809631809104837956447884282378797113177676692856551895091522451543272338487111127306483366108280681445098199351325528985425856954364058637615291625694489573915261704387678951680958728177268929292942384655991247343788211025863354938636413445007937477384156215151149790821805420428445512537628587391588905612759947027527714597607597975811219382895435611984999911428634777958930620002457630231433551406536720614836907948229169724714631528851201477766868372052719914900730782745368205418407347766187513952213886678537298560501703569531897761724769672229771429586160171808203246650064585903731653646837622212532946517837527835138900323044391297202340676043392486648978121963830549737918206098074225626712407826400899801082193443721012064060641548118958268730232128069512515411761679948512567674929418997048850400973379927142427268517592657184194716880972767148076805745797837000187067020321453645806385407960287342146610464462779491055312504725732624087353597084816584603862244308036142315643197537486932717384692424662342336976258609621828056980947520692638404249546428165731029613142093233279133653316947253552017515163993684433833276172128260512862935707861748661296134654633624097907982774541585922762750230991618262809340153755710478135793129978373998152996970554187696742341489630030270026196090873905381696727421043727649192318777649918866840222997674371177726508995618726514253347640228949949339560248854819591168781408845528610094825551496653041236859364892277552187710699594340826609006508477781819712929106921064499839217587448499528813116075935580102836492037286499674870260597520668135723725833438406463406362172108303403707964673654953819223761220971942303565099934214507412452230534535273767064896922776915804914378331482189188842069479505833600377184589963759899253449344275009760660715851073432293076956112850471201080513669359097887021217243637959379206162653388880575630995510722694819003489908080395499601022695390391186052764096703500428150971318069085857214157108670069394616800676516670216699679739610022105094046277056619343876525502509220534057437214383582682628382190559782406550571216883791954716771496899444726583277457756054236407378358725441551580986570115001291399529730104622938956794689324336742693704770439583449744327879479531118167720559426785757311059927604165203139674987774163882715954971584455081733837884086729005159499304429598063468934987227304245062681600739094668420604736846539613501237258815438532103174243675785315577033645584775848001093002953339783046503107609960896724755906217469854983108217014161656654398170992902977425441064769309346730693550092342618188153394871689789303764943275018642894566518202666048158985009001622507070900926416574156530790942963855923162245531138057306221370348276005502822984306926672264878691949190197341048601993404996726252531305640526673252340090197644477715506019864767585519238280701209711618553696921039891830642847402176921036363219383106739746191305851122803732298083420462455104501009347294264302923774375693403386235824545267119601481411920981888829358179444891759902905294658288240883113985209386808618868835893421814405104983170270398759494844786838427147802678791675074692090202235279771396885100600689640022450841377045399233716507031761317993322932722472175537539920300547841958595184948775592556251977493720115441568522329204431896023153542979249923827399992133652160978090157687638758844514927201355178401105923014615328709837926190261093449645756541110592202014584206195842908872675695592307330979106440467341712653085057896837960201342616599469232656140600247068080751501910607354477603497379849634308427970027146308459783640604033577635673297196207471214795447734510052825870990596114971006980604608208182039782553581052881659407785306830157102935935198301194598642626304527916991162749880616322496922120282261777416054187205278336465910780650008387320375846244222078277666045462636143390298487120466106615235171979417889627609043659089053552357929923735483914367151879784751846338411073875447825934220623195726712473474420191230809874113699755715036674424407161796442699168185217528483103311346636317685308793757316837800028661480692669111323509498072845215881418314306348832535353265593025277290472667970202176794396587345852433795810111465118501800847605886036273566447585214860779088997829735287801935132493563773213888712429395742774105394072936450211472654125558532530937090730287991715867703966177357279826720564788957464769807262035192971617442341759732557998778152293864326339638506538714187998629854484308567500881509006157514871275753050778713735576421168723291884311291947439026698914374065475404707163640373185726988171759491489676954505671550750676740822164116576334734727618504824885787814772976671176482375358212136469746855492204465692844099284479798031817817562531257733093599991055774051415501492125092139011491565685727143563784443413671158540186370089887001620882524725941928686092301340261556230937455264218026685007562272274225338855306830738738055063404796806657428702133350912494580315469025393340875519553183693532184777754002946431692757571404511715189258596324368331307595189139023299456857183062175392831949356801588478939580909003381621672024817228048713946892378528141786234019100927558114166380701358699724536179401414005198505568090830524033147799517952347795069827886450365296169049385517156464103215459762641813630834658470387415562493753235408277909836612210480063900982385907312697447985715261679099018488951168636954924698650667927281357101179286437267089984908789713816925099625244472840634952104862721157616491539658461846480238724403999593803161461417732776010235043758764548597264016466979435112732049490574212822791911212831176211256194557728094977969350720508367161686575737596819873803676204805028591530575791623085970324538829558635491361607595703989415697160184219207591818784467094380315633788382694452608484844355613106272902704305061130869223695229691110805991167291064792839955825806132866856505813027027028283015314470721027168653785322703034660917432437830807924466484098289521507524018478623584493602669267216981182453560397869372321728024409568785248679342004733196362130727913712192374817468426866813215964785846955032179842335102667698726102237134694334813965089618338937568361405131032789623342688568482277823223152040151717739928649333572047031031731770425551992972089637809010008810940434325787760255916836005193826358775511658501345443260927485613921394945951699214705659318423049853732934733630013118613281069972733102123240815177051975997132670287179041749639675350198383717292714340916841741259909771290020493774048859539378717619468384642710068605739524564301309238671622474273338063966721718445114135840483819850458223560617506808284573928954724187128458327975501794814910719869165720695984364633383397655696085411877073818377875029798434192804990466854337088091814700721567422595094501772288978675918341956260531117441784536026893463317376360553101069433422265776501499851267578650218682460139790670985615405028199427382551675178737775434581586939494017865116973960224533009617392017417593817793354709586235213753006759839577379900943154835680571024575953444097129127221076250357105081353468127220038062294332787863804963923015776631811934049483513247902821987546713971472068814372774688265795378946720889542545550939408482029316352006500431802259773908027405705135969110563537562629551973997560019240514430806748381043559759899100718910312335828847458339219458678129896173916419620317991521567661370449460835938523917535874923304279267827250100706050426638238548871394224120007447500703673323710262811153709108199422977070050894428081631710299813075547556211611384489678614533943813669983386004758179277827212204639372505663050896032981142874295344944048691516577907066293242982835517831572886734854197213341341906542989988045975931837825743553921982059588538621594423985666952816306081266781385844571510739918179811344583289546447217785857524287386621070587144706305360866427758759792676002944529687598236164334847259485093592896420904888810789053841403855279382384803761303059642721002169299907265058012129148176330056680113254639739944483748737662455568313826150549866347618151004317367082606077038619229580653318750707780601575688388680549314874404523117450570832742306829350791645362680770753187963915245550062104773415801501662772209675215219621392878808886104101822617652714963771820765929121874593329068026334312424228950625352878900945396930264392592983555225963473212323573329756344204311759256988416391296949124581584869612635175685375606194506932042535965183285081391945810694022685599549986401174282597484882505438007003281048984606857870443689451883169765258004980538325978412474811545488351530998705128805607200862189165071546210584387127786150310332907080431420480915986507340956533061640442197789974978122708890070439382491499867550344908524643712199036518207187641748143797306887848790027060972009447620477631696009551019292364744515644055300435926601936200792146508050122368750693821574325713929635640993319593476301574154031771022427215257573007400200568101870573562186617090910951095395602314524658922904418280714261770580891070216539679469253446253766313670242773820635902113196622695288058444644974729162235889363553816558757339048243113695107371170613529910302506001414530270985416362599706661229921031562085928636729339707781664021193056287000796266273981148958196770381442562960416446952598902309929851703028172201827590667499426221345892236393499370877667600041323569917532143420226686269368355422949670495439051156093260412250783874889576083094701746968785607897988384895891559880141186018145390027478213289807198097644582581491863105754998109851086139211802202197222535098842436119343699860469801014431023314700043477777492029990528367685883391378527005032548677673078865351355537704534918354614266848790009120978181725694266671403030286913916574006351587563863395146824834603654814836704880224655942183364641978260502756553615954567237912633175583440078424634132239708070013759557507313400203662866475248751512461118820337703850149333270137863376716290524751009681177433497699737894436336756953070242017930775558926342573920183042521927981800674632763576752709853874138247476778363155741185697646577859485529985602894789388622404340502300020101889848778834788843320705332042128717924763615510955291157794407823286955138484772009454391422064806847116468104774644638013638303733217519535223605946005670948141319608407095159111313401738459700888802457791387605811064790108046856182090116585250028086182428922542848335117093290607013551207356748267989996406043993942309037293311949162234791769817926179128195965790745708006663288234048438056708760033179234545778263603155954137558156796205181705430666390855689773009678959891749895294694096944267412558805701437365287628976336611468897993992682168959838141402096976929911508075705967220683078482424446847032132760215751219390207593251423365893985268756087126705910608644716164809046985142756549042334992495834115281108714107204903361681286537119584182111064776679543646736335512312873384049112239773527796694021566186823045588049274133091129033288721675225078056983287455306972647975237686689764956857725077836502459377818385002300782831786856432978673732507320789000613545483828428719709029609238983413690734674636164134121611306037926119065919064684048853191431380419396336028913505146208064100173241277083037883460040744213633369665814134841049218040623893345113412581930489622956607523810804519285104545840404379841323021156707964399514248329036392692733840187741151296394942935672837989797144118481350780381266083207370129182859038380632552890782941366482476734936095459844825040789444097744268823466113102935356476609637700519717820447495936703984001439189255160944344991544559696737445569648198074178111917068306066032569813177280617295761340380798472561303027857259474921117482814657579147715790669581784978660772951840806367163994339132027181547600856330090220324810817099068914631283287516456974732648352921184558167569498403839332693828261228622592836362549180571098007333959306381051921095797655630492985491250935062697011232460355542536296882621484213313828800801594236227510267799624666248454305904119873500279811247752511096742243632619379163635440664207091204703167133173647093260102923259833869564615483487923937622968089883977197171649561085478721623093100477053006108690908707189247559403849188635776794986585808401385459396693850638637923295105451976550206527771087211789611760311738376455019843689207030678061363134210851554911716426133037955924012438043180161318847176127494169706555909476003922479582732464575232977003802407289973142790309558072915692711008346892763574639903403823065316772015396070936270443831149761610568896416462162854018157523505168584042841375359465748263975076111954639198589641002280909167537780400505811191712359811844988319215854877902577733485575283862015204562514747414291245029474685190146760445105472073662582185088893919508358335585964311049873224912843696359724222915280107756547039044789645142801431448549505114777962785961459872331621843586728418414160612260353317274080200899442192374044426140404673591336674383934487611072811593130263655303806277158579090664567461527453532066610206273697506099886607433496539270735213094205467354235658978114610111449010960333407618913636115875751802128611169368842170214238315001720706524118447279331684922140068769607034764878404460459581393945023042062909200765777071294105639963550441692877315577584390170278882510053876139244045259139116319970194511545897437398130641364184216826768514596433196424927089341899792024748876041796088608229885826187127532090372412144684776462505215062526956920769213721422101335467618651424451303053170915132452505359698232071397168985124426390549366717681991613416423703362191228181170660604404800573119253748834248680672091689746806426519501364128428681490384608055776501797171844093650872209867068098238016195322987510059391145994022499164330692909093214280935351836188485454148402139467797642323735023568711823484529561284867929514926362785155511444109287449341586414693738380495881973748651983282899262662047454636132484566243145536404323920523051591513637661690874786894024505839498394900664376942954049455084778121468756426402452036902098057318938781294029469198296531031176124927908140532190523481028651587826611122318190338019132866625093811655486350799956246776801445735410856863961298912850353140934130096167560945819131692908065368895276508223975953868817021236515468800863924941297440679078260944966932193103396694890594699021819644826832225675083268865424761324333092220718396075639188250214327714640068838723589018424621150014980523594326598880826844573411413290582658519856016238028143086485433608411418698484766969172379176879740560723703250599687422952569826419630529580435763438626777295779034624920177146679784051763216614172957919439341231951737009897985560572134308819108936987868274452353640601153404038069454436690273868190868995873602641546038277499202010161366622297962454378146064279946255753428948129386897844266337826217476336966983090037689729347090000816917335539939374166534921910811951833505786850458815143783970071765581972605306696601107333422428429006622075320851750368275985877265895798657901951104886652678771173965458759971893642815459535219704378592338046406268262921032713830008657593977331811709103116098965852387297040584235989675295923782646230345377635972107431990109407789286246128360677790717832920027863546189152701249747564067535428575484804936754664541069673011546394340378662494842565282048731581034540592217790135054107518441787725094389295064360787374847874062251994038719194578435312664348271137137120657584479304684989913993656837354942993272399990294544356915303403158527386928508656125478308235949612283461268921106729245134541331512000947506004453661167240851465669561258006299243915846439161765958792256509759796208518990394390957252314290281313328392001451871988442310162019201714366433248016523769675061803797940615921523917766371404182054473698892612315709584499948446468005138727470159290330053647918988282017748566462957513803506572026528664882564928501966171261940784671320185793045389552040864551331575749880817164184691708875317895935063845613473738801306841782513456985201420771026356473017975564132131863502610931281088091333422228069827820859311061227762210127571291141164511800361307798880397723165674917139259741598694211071322949095202724220870630781923120325610093353003000046293580842212181241125570035567756028240629634839803403189124670111018858007791717849882177472888683321804540718275664701549655193140636036884075393276292164501310012617176904384425335128971645372393722798976180724256341341742912116917073817806712771366101872664811522900269532299372122952161498347301799920817905665178196462082385787730594196405894511094261753112873814992066079578309549618215096326672551783748456046402541443816952204887112930573122778495929034744932303707401778290008835486104155248189568648905990889129991075886423998847044551928670552940388220650169134615151273496323019254251824587473911476120980104418734061438369976955887382230653186588145091406955774513268488295269491202188720724083340560852646918259790864030212463186221500992036757048361045384174524324357543277809774972630457660786529957728219508296532210742503317510350631130978607077858744656579887223593279307126095846987088174735500758676873315323645819252510867306820380895081643264458356932474862022807814206925902116069435466088218023508328073897702068912131780523131897846371529446819634472830011350535079945389327401709111592406927339308018227319769326071630474639417218686723079425375921303913967651362851738861239991682963377815923305709032402124003118873882966389098956326523316903239925503212617465628558131928849408135182257595414709600375573658068460594196156167441390080471654821651101894476275934728451997615117646029616786902102750729106591923000937156918806944637528836631895809437136004502035741265705835472836091472347692913025831859751847550499317462247293744815849389008799451409905033227812215906523230494398389439838115139419954792673545925386756997951986035229159553552971896499984802771488739317323264519930482108958818535023511936000292330439660955729884102915352787186132840978785997231692636655032016500477449201154617278309541802066720827988292298484107169636255359494399015457278635887508052616059429187325094087832886624146187863178946610500725775745654609526292777415619425642091588903583039868572436181084369494453876029817540298912668613302855165088472215867387210520340714501775226774420154537778336836626292064932488693328886547107470977358885021385353252184409117554335625841842307586385074507181722571404704318094671324922065834479180611298816480004938445860376752715835423642680402581050391389898285099695429335219334039093649422221249423811861879608171269317025274380159706209552233736526320699051698532016046684982330691122635374803284112073342112234657258865204600584791470139968437310443672908793881182574490125166618849346804179292670578476072660908545023233937810647360547296312092298660644386316880990562415141754316005580152046450933975756179360970110423645585794726701324867787591449870538233449639414685625577901700501909681656572930508066844071321173450508750418964767027349912107244202506563754930629903842017772124096799787013793869446945210580472083424634264888532050407554881700465411744811773505656571322421022018149031887334572174707199488390450495056363455773386216026222872881062869171155727638298039540771095722554666913540567548763350698270413336709280730459840136761872432081751453285987591660323432675121403641320596089566664202580437946360358624354198320849027053902738659654797013910518925208641658755655288711121290844450587767988410276218328659949634432157076783908843551158990665781975192090183101511464668376239077159446596133944072876571073516714414589213348360068635732164525178659464152179700313577722313955156677160076357606134864648724834029021690127300343841985402111796154053102667671005566830007672120019823280239507304784731178812977758840021450288009397810998838334832618855670910997017540709707793893096926248111764400016006680556670238294968860369608699965742699356834404388842834207473797652337216156962326167980107556200073607051980927646368006467001557684917233513241338725290117400154518599449363226012425992486476316572886374882865040608963254957779829205180611573046706173494706950298499218397415741948236301853920668994666395520874748932891843959197002810463671491283079077341736123148377412920863303941219785711718643898362719511932125050237125326069992983465220362219534115591246265574864972556141219393204039622718193348307674924636400512332988746310618131878759672330207906375907501624307795863695519395299565525527100069227095565726963526986927989757015116954473655503140738851603877381764288596899166382640296030529510747108286383796621738552944098827139513493602883647569150650057093840176002626678685182903343695742171922842776749423793305299766805711966708775527668855999830776221507772826891699266745530277748046470640664675267673223049440741085528561345651033004334511724647433895287572499114300406028679906651711551463791264319351271960583401775770778232814233144924338726814648650637421516637950347892482359123857234033138629215704890900676460104639394397973733938125197633723982261729905534319459047984280112626063459844018046046001517888564673191833021260290830814948903694434285618224808921439628748315693420655971877546969776014623036772522683644305738360833273608591790473320217565602681198076456456511489893878714590376964258524285785430002509325177894847523589814254678225077485017667533956020470103848061090508104746617822590557569762048796754090617267058415819600365380109046609558809668915837432961068711701760281723555239924173030617872357161983607072151218678558442673562404542348403578175507840488736103210112503112105550587756598847437616398452278560454780690580817498308537805323427112975967643310238590113193837384456904640931127034691192930370527771750230792588780038912670195444110630562443623729825086358525626073900038087242141352479294021610579651303594664905655674672388136223860638959531770422566027179700396668275552049442942584378952875246907966925108621067461027115039752325618674751750598467583216171362511018983236640716401404163114316092946441084665168152008325104309931154328992980330927178600478727760610126935355779906135984982478988712332727695364884856766753747525348130124324283730367476104471534702776682372918404428082686470199584997185589389492020260751214507183506427075793883830211357753571660664901224986496212678780073357011005953041385400412560723220620160667520992643515354864691236888877984416018555800150425439162531245606851221746727855149413987568905041879027444924026849136987319094746611543335737868300747152045180960944410477466211059369991872803939250240467248808579434583993094523086690151956186081186523292764220935645990360160264480828333540190134402727538104917485558429709577635884931482846173875308875582985479473390067041869918528175212499449316916287376031701892778593483556519327431818177720372221877835569747569475454584778521769370844407610218569234938121274904511897740159203729196072237714795673837011377364024296807339349672469859384287237577445243300629906118341304238525304365077758166465393862199889592038596387347071405455918961908377626344987692391405953150318214881733385773504062538030679117044821999737413444969579271467216950547524101107984100463205479646323436253316856288357385562953780148187561412974193504356486236111786048597977007460846922081423125049842363667022091176355953584199856659516798994732716584340236826164786850684458414515440299379707101151134599494523762211057576855742029417268779677121550343944792234448113018984449922503679065258922250282076839765061309555623226128364045553782511647620974056369498352129673056589355864048304455999071986708542165992376429581562070167158509404894740625958381483975166025812722975204484020214657573444733090075187054370215073533240037928686533739763209385214792867592264471409403886260093605024805062566409388558644369852856373426813692739925925267300510447321966772272446058582133774945285836211867332170827497256980199848377631890900187208702871242593635854970520951652035255471679081622079520096490228256451536326379919363851983274416948313559600729316497416531380522647137409263755131983420849129304565994275165696168236254784502965933739003654148870373041089388306548490829935852365512081619799955598326996654125276711280671518436093591535450015658396625328299323996988514589350366764550263842597002288755644065022018079268779840215573328054549578526399526109047674024167188858865285566062334703528532630002495164710196210238503483863601275848230444232744354012506306921293635133159338847025060500793675702686350040119701788563123306276626121227854466254941110611161357638084704574281450431660173334491400647286629128797396692674871034848404543079954266521967254320376858154806464388976171409983218783813440930113616283465229836110277703116224588758652150412141808817262699671983130278224894414659208729452767513627805272436209792342114579773210656484324413949577887900529436539161221805116490015563590045725429628114398730401469770484172410177116455209105768733692776905174266401201205858357796321552962485917856468737907881409318595467716876039387654202556520460568324557627380406712789715723639637525347599788994951841573421134132599093003669082333830681293765270049631377970593398124335070885939773693006924789184735385172631579106790933410239109755902182906930487546711759501606900411462691147636547532543613342694856998165393541411553760818161224325909946971429887947779814275560363348388632841340349737025382730752385385112141388360775006562890294661103395292676071807789873219064166958117024477023306233356774258216749039634022816923064474566091819527293325994090249335934740317056988207052603006301509757241961638910840871858433989134105495252453167493473566218451505199700306233140978418431638597675876085631701046257702380311144108644476595894525809633235289620678202079914899295981117622668384122011259497412513103877399540320260854971527096105714398490927675328039354988929981519170970613846731060774015372913035977794617546170182897691565131146561608882252585044026604995486987001568212724974424643609313760667741713892550616462306114023586873865592513729042995943832073602958830528091676496327620919465234970467809107706291766828612460399881932852949635379605154518070174123952198481389722266116657737723844597768833070661290437289134686866750859087183135313005989058021684056038488823133618358315557423911524220888409849722533349510478975304726757217483699558558820553992802792685622676500452765475834540779227726319231960377557486029451989713088567237030053043738836939490693810120438072669722159919778716928601040063162509381860833930819351630024836166151858837248754352947657282476219257150491177791672179152777660879004420831142663954320558584495560328143217071419185596957668491280343261630950907348764406927365072729638079728545526452069753519990252455554256951549328541199733257439382415778228049535519040140269950459446766152565405136898260070838998835503621357321823351530810161031504482924827157308060098850775985481287944200358468580664348048250159225593652619427410804089093990095024728109440793106329572389742650998095796498601420427510069104963344176851031983724853123573679026635558628785416254334950015183329510998752457773392629188767666774295540594926465658482262776146028132686180249767449337956155538437985338740936930762680452855385707212639067413724019095702994552188731925789232354463840345265989103682089227968942139806585001414988805815965484512842978948238627835789106534623812568291912884199774624416566603192904768183351218928888976714779902884599148112955568711546236428716570331412080205994125948925320264300156895199960867892473526561597709475250015791756754196505279562416725589678439413445909539920137482145273536090966312598439707974616181133271812439368755637978461651455207627143911973913250905210001482591690750762429508196816141967879649246395490746741079115056763816912057194987223018911638606380612203039062390583786057325598646990655499839443494141729573578383258653654747875799140139606764825540992984319088852833088524466427870379393742507497217480896811036452672162084104080758514872721812421632496747668089077768508079606771776635871665143669688014279883985710111720365222405762535014426702341001925313502765317008845843889819546415511859220097845737766975802768476465934237792899355582132151893797377912225675726170545342597767705560126886955696771089179041689128577114431722243891262632244378724909334337636572398535381630967594474860180781706737009057758413305059060554235846062264085726674441914778275306194090775477306614298154482638147539419573645736852013895941667736733025174602924220240679175872070807135239224442711785028138173601246135410293632843552323400785440237954182807042192709508331212066709842249680767536834778564398041138732286712139337910315794520922404437520765771324337836678270221877700170294587109529076217062708364532798275335654725285620121231338074439678957698288233304899805926843493333771125859016159840507776991084377103649346843665221750946165720673114619659756239032768896307616179458997239799325719317253284142675906646173688826239504074298598601502212956845690972818711988919077542331865710486554605778269211361381148780258231149451841555528574217760785867703478939366557950010781459620397311813164312901146171194081036076143488165393614568848762955430042738053102222937559389953650326044941291806259067467987458706520410116568961192204729396741433387822098868895768550227840854429197937175624704081709937163970153759867623273774329290997014048816142289540277866673365127428134410304642747642384024408553430182758364070078624542416181950839139888892371286092190534804631609818889631230356300805408286362357360236095399501984022901254971703934672231918823852757876490677818090411243952106788457704499601336207512596192593037774266737476864791525083731329067288419335331682957195013649998913467894902744639589757003756915827933595937307490122501673029741139016258326851027387044191214026896869143131756598306678263820102561649049064415332980150868591942238639086833782220016301850378537716948359779756581984182192707466306073166154693935531320343776061974833137654453731978734732302839639113044313529868741661634469065620604468992985828939171285524401608902392747650627273438995424609018791211576138495562879897731693613430599186025518854457175880642340968375255402649131572588351501403763799807275728776629735288744412504465114057622583891768714963964316281511984009585222532096977039493122884849039833173974411016347908131163116034007212164829136117880069498870891899248198242669332117502536190929727735117232175349423081945532239272407593253762131463805248620700248151501480537620006914162414929886159670350519322916326972882399665471972022127290907418878615618252954488780176242493805066003553478633409408811931360906295224289479738427010600108105477623681956848063001070256323569946597995116074183240225517278855441249335585897227556864050006444927190729995448775629708857382834807329297210225361222866556480062368670823432229285638161302786175976354622822919568339070803864333955638292622730175287583699516942485018692557200911559819483388490506923169507690873081729816751640549107963819353525893290020331824608865553200584143839018759429423777556272176375051596149526659952507175260250021286223510899996860020536018127107880582735459215005668854046352089811332612279316824984767110314977696150472608599155465726985318958976276467204352487645816448555191229413894168055532003094378285023578909187078637471481426689014126337555834718990339655990497694405022001260541465739197265174683470205522901553581307485962839635496144606377252211737514064692375626535781449539449243400162108882099469935656483544608425974124276294766377537802070379431254372622023171715152431808232353274943133266000726096767281023680381007583220876725279089950932460208014129394195729071401783235213791272391568069169806417183601920192775927656391800301891763708448853317449050324229594283915056933916646812424736696055951039055379897418633260444233052240471863614628315063604307805130377891904343857986882146967309606438345891099926368328056326041616548096160257557260099444247643801110660779506596494510999205716416684216304540136307615182552841230735718158402074397546818208875104235205471293198595094535031341395910147319789992143384158446381867049784406750100836615738224907628648903860251118252129915351937933780669440681158082767505569538898376161383200660782510164992132238241903886729101756080049635061927215199885400194710117755932591681944609568443134523727268871428553970748684646159391386896716162151912932513008144769124556311092364341160151052378660741486226915586343146965438653499086748823837373052974145533297270374658183081329772508533507486863033663122179686289162079058364154478564670571880475421179336157032649647573622442584746484392439420447750682178740964322707792892712631471511255812990137814387862801703419504803073552756406926801562313040248263247468030824130356031562368050844774594484947994246088703803625823161493852329296344313419326208412210769287870110411437860670394682402520202902391806888738741292098449729282828852663185316753765517120624933732061057495519331747248870380074454783983665713240540966619528646841404886344783696912004960277349681677336450867436146310037930540407887949849533969182892789479023157201294725801709323245340710457618371670779346618685500469337290242772441124614051861065601706859835963213730975108799592063002665447470751919148461205029764606359764380461746338805398774254970093438164575033263680602721175096112007418321486683068618331582432187236089510827464656211404196286917041675595416396808592869669364459939817375960936095896891145628762237988379808682166317037941392286481015539098253780811333836164798086537712010971574598887937408368446697979903509935653413337518471560220941018817931050490447080170900504509913160988775641809700606738105788649448191962183832984486271406233146935394792457236697925348649775619781683217659139000436958989109862230010158304777101930220179568791368159314368954926379861327236225342204984819049126412349686145139963736547723609718183385112725651555815970710919742370652676210049187193315444707373721061178882348277646644836011742539216507068719586167937795576921469692884756464864720734070203356073481290800502274518694879174631438868831169765165282328547744983672435216730584014354104631042134607680276145470939352942131203653124179724740280889730226195929964897400775668499320335864041966422855725716272603667866349705463654402782290985897805197080934275153383996649361682635579030111866189000976931675303342190913701588518153016357628716784047566261490624071978537884441712089303038792440018212735941120006507379452853814940112526214261112096744857139343151092546639946942194465810410540128869473235063080699161086250535276971503039365768035099770839126444786359006607627120164907396650678717997127279534604237149671368072774908832675600936159137846239810218161437299135250311641621343942359840325801304940068632898100098819413935598345817106170964467249738731074993462433726535166821877489072417053054763456007729226450486337295043579991931311075557788098851237878286763592857561120293234542306822121683716632925695558166473203342606984553667037485554533124854910295465695353532740291912031455441006330959756961499859418009015285526327885460147404470667078525628420706364117654699676927674723203564074217323178517852642340954711294225102707305727268842948890773441543737716840949215499590997578497176502296644941378708647393096691622748472693796616771582547060094153073631047114454744258428384306689786224756308684706559464776123749837250739598012147052513285719983134065283089452109318487009128019543429330169094568401635193577347445143354241729212111833348432785545418878931073205372936521940559643121885484647116868622180256931670635835575235330594630724477637542874586884120217332587653748984001085376631138686328383995999854672089182204753073356956327463646411369039440388409422134965302749554227115668562142093976319509276740121592764622034184228718180447322211209871747331090904747950023856999678372204872736219350625972003868014371612525686381969670394795719785988919856027523646211136982231314439779545701021522127190817813058605652771878901916408931629274358655671555550855964457105091882032891098188796887607502824389257908781207294055658559826755892488477755604792383856247191113099569273433112421175792838920383656230925561527531679720465865054520869754717343063331589635108496489522759393991285303907456840274455222539910755174371247742485614357229273927484660810567942292257470171414954176799911641163607294769069398355024436699165375217493388131687183657396563909475449255525258512871830170672691286016738616124651380729387176851863797118813632264232745683000124849305211865238733591036387486211354458964935797252137729456789636789699997366505140078599672231335557741286197981662311778566465148710461481989457916059544331420457865892582914200554677347073054444601144691688314779874254898385191287065007125639533461784705578677343046519389104365178773175553732402214989503788495268860638106777875867030224505218331868769620855208351125101934534809566537314509318352507068922317082128357516366752216568395870453378184551398184084390943800108484131683235717923567544661286709988409362777149178487119617823837256640665361634843058670382441764539029098528689296604537634166736338390652411023531789175245667525810131678133768359926409408279962130931354500479828709369763079609397055207647606749035727325563734066840768500928341325632382636268070198372904593569476324938292660726552066713258474538069343403810702049586772050866262275052760249758067850321198003690427725033057732206528162856826081844486186453181347375478286502384904053164840866148252735288705123667761721673145744267371184880944497303046059112098899014212458332445455846230688820506722806102738972176351837144927705259777819253392427869780074720770527614380706721984640593846812573043508781994127584353311742258976979003527859743305759759517925698005433721020239416993785948803551764835858122933015684871176097629933453226264047734469330026982829146631847129082145413082773646598855216015323006317246475483293978281180449677270340741908661039938243978183212165713205529348428092984502116738683075931512876596711889759695985600862957261881046750809478677065213994841175198697630448901922208594281538930185778366257637220893743260579362160668376867457021820249881210133646729345841413748462732397873018344259368476965264875036971082769231809134999517073697955017695459671441795549495512900725580315118355741696206046843933418308370287035261903252596189938855352896305690515946074510065319896748047170596907002589423454313423378045725990034407499114765252707774230470298288554513167040099056660164115078544950345390671391954293655874982956639160042737491879522098551667906987808217943339441112883666672515462742862981615717694263039300757674919045568943151531216199876227820699219564332453287869008354615487460890625610571234066614457988918147486987574743577110120862593562495329932410992289443832774783948194857773154966640876710978448593560902990981746372684082735865710843371238267379278041865244747880034380085117667001017666170278208727990099609081982586060715356431606347071612508549373357409578189989906653891945057956604133762983735357500130574226196677623455714990026207359950015868096228704297250848499817726454612621174412005734333270992921035054161728339349105364022782547803071205096694796622705052045732735684676913814195212253101005077436088579404845655630941468884315264317065428223304544636918377478269502483792077017052633438970048511267129330200268333222375826064333681744732381525727556729739476928425868575766226410360975671387386490400374665895973780109993189547939165495571483977633522171870399359779359147911309290702511130753113392163294392656402723365264784091737964844970690550902863212298318648444248229870446720867448156258868810852732128513754449309235802246340035728474063301378961877023318209107191840576562543097320443814940356222181185355957226668766726375203805361283643543286141499608016982906927893718272495812793127376637485963853934568524151348827491930190866315721169879611664507916352125914302930128387506445808369607392778479122014768073175815754230791809181988931343009410717871884529564119392050434865105604750328159374976491971131561174207651118569337974377032611839779743041344923923060570040346704606948775622745578794704073068588890190481216301954054149085930061109270606618042569413979259165830794483399818019475922942594498217828160499985880666857587226988031335276936691266390266062851245321718864552228866317843359773263065462044685921811837834336640523469123778146550772167919156627011799651002281452359596495733605665539743881274593318845672243572376730680890347381849773259896185799465899482880685908148260253306599428077673778614920978225023668881438059165786256483525993441056725365408931893410941473094545902978567730333706764090794709404214305767647227017433760489480086594019106203169216975417540964016281944107670275364377889177029924972228931054511331699515338552272498410815119039670403214500865249522759141157989486548345703680114872770392406225690596584761199953605618377876715555527903718928967402939900964290684487612620164529052429470452640564521442986244810553232095527514242284537799861488721550002620852763174049497874254852649462337695393288365856076481102702135557962950026956799683237167548019046687852566453621268307058367980843453730998047890119060145143151990329796271527870694541514264913110881216912228243307704840983728001980679031887703846849420703089141315452064431520728838423409829941016507474008921536368180808901068387345574382412832425983021074739145226881989906676967131405413006426799771213124814586846762713275425362508784682825230343075547849228912603957070364301100711299065695236860033687959612795477842348459067350931628057508896830225279269987783037321325086077603454104905199770403692354886006743936294912300375969626388401695724008930964546339819268380040707907123776029118430123578974153379176071900778675696175411002926711872128829422639379439623424947783352546966515076979034842500451963024792603490317367615403297219313079336132054272248764524834355072834265995454487929294075581102350685636534845636820210162602284452286520147025759931091240741311681720164328482433046731755076896196179728664110939362639919444414690702067799920829576483046535824818344281193987727624603134933596895933249314432495381512200843137610047391500779728567334932588030267216439066854627425396739347007544871062540520069563273709288401557495149106889819298893282299426124890486449368088777310632058259642311929714345005432423504366296465716811661757492180455704213708770462085562400616592304237298222691139065220187340692570250604589177882418018286566905702833861901252470243316050113968372700757243161175912295186187534036942642891459947091341071755369784674543047647458212598665662371106797802107762464464583542502862863488011066631829664075674309949634311718497267154629892012362233951793157655088083711247814529214653920946632204487520544770432995479430659582250330871027800334063581240373289309312643631435668570161494994583793346786866669019052616020827625593846460183808416948475130886065575687138418136732479774359985884721572946608769015020624918459848268174408409099102598915757267949544781042204202525396086971058023632989837898602132329275310282266813889175326234343625847678161870854437753425905166286824033761260051484887604660463195363314414013649458239752637471314152381105033157270268251463057339482042073701118578612516792441509997011980314032165908485300171498632085105306132322101524024138287516640561543919162899999483465360015908993885085611998796610708523194828238078780793424112198862236772218326836058325808119459165756608405144660834879320149446622048575957997370294795353767071840989186904323974739102178085759886618454734739193688848309583153751567491155507346932833107690100036847628971040349387262830684956589300628361731983059549229883898504651476880642355641689342722571310217078040836858095656756698594218923334307429454521090321759578483184103949194365075621411806641237765566810886255497287635191665839139758434353822033139792956739214828754370857392177281969547439117203767923659976387204847285360245453344773767795373981383142370228627810694051732072934685204140680371294148851894959893534280426116569770300349411243893018443669579205643296068547573569343172417295770792905872592748412941396365430691053022418116954645615146932872123458843788807818330081311935806546045712273858463520829684727569082564370213098711862806002015082912193554951564283768162870813780121737985089497040182806488709281280126374555893181284255436959064028742076614704129875468386123277200554943956632700730024868103545351768897183527008481072695055769122338855882313199308120804307865202805919373769037597251948692393537260620434344710406246782053978834535494988423078003891658848756363146781186902634700621529399880760330785524429819454149678210618642546216575249587674192149844170653782932073074293995101674890192457455396800660948951469295022045066915634810035578964293379768412478907577089377367846553036292153729684464446714293594257950127450388681854079028865447018092620267387865057225262483084052677121814399139724646866327064877716349937152273494846386966730534599698762284076709012726361458109844314036006981120485661045218894798261673870534408465609064206081556169465360269609963273671788279081847672707127182745113418936253005768995688948123973381716829437055303291333406677357628141915946185670359711464409000750467163956044745101258439822710190227028365284206298445103365694204450910429317194243261781088540883124619395924504868948698749459986637064760993029202439251569832361221622565194566087443584506010790480541780939123719431961329489315802850169651474000814155291220773444207880758419654303382922228302834379271179487250596540590487960770099054483959089834526231082810690290295512906949261904547724378851629767611420318602359854884125737344602815646813895100596518248962572141129373732242647799140629762380232008076899558656819974140429686830408158582081341234804399459218364944125857196820186632563325343119775811143793290512854471404415346564685229453145512362826731548299717416586865697239234152676211154007710648605876308301003682093308492310662287935831010977056012265480312265022721515524482873946596174274624036144369559593913650955573751148433557147225616519094248134832056170505033602878302165760655966271742643028399463478189742270712425257436703585175977864210310089732271423422477977582628528751017364112912466367015696966315273815225710531356611683073691910046503054441451381638882795945871537134071097973587202369187175004223020836913630018343128601659211063507273025932094411619121644249402481364529389878029097421021519119221222393410637070681263006859399741273448091806230991232839099231152506370844614230261479227649019690447718860177238475527459516848758355631540193868776354982386129433638654569287642820904966326256651777438088466822141164701935503578258559146792873453175885967868273468038713171256247007264778795897559520642706371867004718278864299869664753772594646827323295500546920379227685241246473562614334352916281753247336493790455708225416069542483613343984985998836493486409008288986292038788265385554547988622708337173262059419565066357764667731083049307250176519184032566395285256679373441395354769349703959588241174916763380607237311642913858697437232165920170159317449517010605063568794675433187923818397278749683494555143073010065771714698569749397547369851540297186396259406391781372353117559304552761869905930487791610942681837276955070598346223460000663943223945592201320437414514969191210278407706152484597702981701109858643329806140616931117721983249743596236897858891262455581641544117125961336091697377962275194570819934477252989853678175190316305726302958817128078383198936847543916360301194560893277741713171139206671351140906723987708462417221191750043661023082120313289550130746672328276401436702016646055066923206622877886617565564506617579238551266554964703847511750969185542003493573557423602224137451840500058447194686775562081066448198241325232408733865820471008113685727845047086917863529300875186012786873235559936324582043626319344737543497107814390870805944580344352395933194985052752746335318991099310865543047158512817434074920154113341950613913134263955819637086413370481008086858681105258397638663668901715264550880666150567718388211029253966837768737144894358052492401127217762617918465325401788949839979327654547702877544061501759294045312049185183990089884450206776782721726844360379564080644517522294550889705928943366329118629676766167338830186928234532943797747795966113585599982922390465356328467410943353081689616768192156494257234901388624960965049299392035680058011978456346315577496621956250999079534863443777852641499345368288544267866277243661847914769575456546085791461311519114279967630566558875412658410130241811072080948451177610994241356703865050938812896910238950652351895710547093519728681822996413969452919146689162148767469519048909710263663407755549216912378106628675971389676191254491960211800125994694841798190399666090908094347561450503196568226125644809385678581088676098600925777666449594902879549919716695372936901263925397767348817535789211480440215793373292366638863782438156232265459633805042299491576040010749432938034050481551525087243541986063210265313227836829299245850714141141370578211290410208964498953533402329797100957794655494040681530225851531759346226864392791805020978066638565542314584344802012220787191469230107739371454992880247137650902406798015459681360166984004275823045074866353460697006744801469400087424782435257538412277885999558252177288334534046122896901098958243449681805167354452106676710797455674487886667889470321912725709352716526279963052833632688351832005175580705285890132685461062091464650583923727844328948453852170368638451503108531220844006564176331895371929458625399621261868208508641969270468903825174482869544517819793704528836952030666670240343215777118534380355509010353396393348596615498818156413724523642177182221339104001702557535273113847116429771542134042278866215860711637106619621566064061823706537076614833354002986480876490105530574437322324770742953008950212809224165129150519029967381146467963898423599100373681680850554372316845934098401959020473727402760121132896623620016152693906710976511403620668984552088715661385579801318701902762011686992584934982011912139858898345234757556784603066610817161403727545063649574033572999645085372604043234339116086831629820190733011075564135194503491231290706717529011129322749745140573607361758551679349401321338489594907868510016555360289158226665462437402690059226211539097382954212537812340563862260866090547570342230104139740413102213057793460076994218622373242441276293630810692408559043008887648142390040411406270621710104344444994022951079255905277907368219394762589534108364294941695383135243857479094748192527712662263273634785456262535829171503153569032671410258838756163400895224334562731499745926317080032017578647012926107460573500696528156361299802645703566846864265621633461709091035495455705405569582205471129036495476022578789370884845600839984715670003653038083677834134474780763888711301360338596776000738713651565636565861351034315094338807522320873839394729569435605495689125617369598486588686979959462079422666752034705127483881476742262866241482095873346540651697007530862009712206172652335544890125447086005359321133899127185999220081362235204957705944028487898892307814541163951990258205089071776338075845163979504488823517184671726451488812686272671762703697673020234055444439561988640558079898767460387782190256981152579826416736466993365601508704814217324443421280999951515885983905167834732087429303229591315583981098909419454339096802168885510384698145760148873064748594470868414550703152194384808611956896253873504309283023163880041519189941616188671646198403279348869642297555179608460784995627168590140740912003051227792665787326748920485792808208624090110506060906790942427365479458521271370430158585539235570167244935733454222170947939258826598696485718150126586299843530690352233593704141590874493067676635727729701336794812360110088428166089398004205218780828214159468765355529198484927882822091296588978773387804751880337181672343866680457869883152758969391768424376338766120905171833476391953091685599257549749853902350411230003036623917350376918595661085162906915122525318350781753380885336354061301749768138837102376439739411068556565960227988996443465124401230837325434021951011900387777201345587853912080289677099954336938461958773824010329553489361868116750764553587687035586471117559152272038818564390054004864196365030241610436483405690564061690742966529188941788547943435020232384932179947713635977378652931155606855996457878335342522956609195828848605176696068561100444388096233440983937258746604382298966517873682369908320405752250138090792423795406828442487763308761617163852892793861987716604109368192946744783223322765532908552778969118347460413430690403703888087356344788841707584099287878444497576796553233017350852200373395632727946158314094333737493613167637298416369043695994292924152052873014172735960043506738881514305985237845466489169670697045137422489349902124536784103648013768823424359594035014862141549921088855152109819145762261307811500367626187381541401472373018204088760287978317150293752721416375355599080456556668475186938496323757122675432371441051654135300793578123501905567925786617260948949046039882943211570739757349313983173757017894020161946887359207838407981712858918124047967611624177410253447124465702489514471115526715301511080155174920070614598695310744508277515663917446503258274527006175773195771297508920705201958110474078705425828967978998603427056430980844604918485799083663848686329364774528806727076699390546587749066061231273392923648334570869951512190672909723213267268494962447627171792449328219424959910919196149859263551742860145168310671096101774912772666510461923782858584505491783269701867414848013662359200799705181650572969420405100696715632209980549779408449517582763305199882207729883994923144986121315610769509145149686796695226434930122554607795293446703610992201938750690717254511821076504243727061127738749022510060202172957334096600350123173788353475262176758789679980652555465384028958191501571510590588365277137707604968755440456489251855150848850860913191583710166731339075642126539213648400698006199490212942145430267097607400455383404757743839517274402771604940784731525288907906453287472682127711414320882239303361469085662462215671102754319361388882243396411507515251225798437589099003162387836914424036614771733128286757433174620981800898374334021671809751858957455731161075402110255738564160011233306236142570732240383948403461709524608102553179074185943315754118818152811319258520487516405370105492526000896964165494961411354220187360231512477166366153238771968416789549958179313112103335992045250771144542627693266953051141422521138587791164639627042616364754003992018648662480966311364665632809876034365862773536024021896349222320090217017095491089339146882472422201049693267326335491925819601647515503418629522562602692566859431689501372896219765331563771759138756554486473965922130590274768869132984599767321166748128330995014218747083184562730299829662940988409899556389965746672718074594578813587216029151620243994743562502680867062286612171986111644047938661364607326564195173919958252384051656633326994984076046436499854291356245042862356826174879613568124474296086437742857962747643723798359282886524320679192239925870322751298532621424428943181436724624031173477574394801754696207689732737279358762095040079432730552120691733112341961123559941212942079734992387676481316136219860222888117769063927076464254289427769189530809966319515968511707021224994392597214774790514168567777754596749078398779773107065246448456531296937134220169541646138260392584021460333234672343134093376252405914636245409108297499490513404169592382853299493542922864868905658728590299339932801514943394197886838517046119175575095974081762486534009560105677476863355789432999604567627099556019196301404719718263027995091367280230934443303681414960943895996671652523659263004129455247516544966237982477914971007003105232558520191563046699565106742813246774556718089002512219799597818461132643968475528219383960947807713563688784900484077945379308916792808534383129988613248026142445516877450809813294635865655313199030912687593309146423566024452067930432401124991930936368294889297726284331084332141196561301277179998214439063791161630516550644950421731753155960392650005344260551187032255502468012559878066940792394696603485754382774204870111737618346910410736301009020083440301462017545311316855455940137268419638730068111461080385996700876912363854211262968281278626171614619250865096186246459007702266818632232510910608574162892249506478085776701920039063754751477040250234319472068115574287670660613675616139018491219013001491849774222506135606608448795372851923682966538005705832395035544205508400869447585105425963616222895215820813505235530030856273243065687362780383858022498107117086018531447092924178616752101737855158795497158089570291598244748667710704170412486198489612245428463798779305669603000608398871161398971685645406584306845640973057374413884183143767482135294926939201151888773723878484870494342219268221758933774502558328488685396234178253739229638283843182618108390531097891875048917310022761369791133106250746306373344526907900403625798234559714548393633616492777384098314517626190138547642991347134270974999599008195490234068024722107941397233464020857852534343100751624239869011455670415381106399297355081398817392346176510655806483290992255596031716905033334050670383360597645755944055882329328635416971755834373242267832698688780462195021572095693967042220143672749072990776418993227642656106747579761213839195568376141855298747418966489474292364487205636715420368854866326523081657859067211100924459304223335870774854017483253492880815739596404918002334714058569865872990260918265752703273179633881086740166591874842176416152180836827397648093861060980166887377830320670544556138980349199414441333690968433832771550280106719644818972423988606588458773130294088592217257503540668623955944370535881513037975698985441691168452743687282061078631894661990198289027760023967477243146808157836385454438977221066522216668324030311405409921736508984150011566892911709361091486135525784670712273638452829109536045904560530228220336498891861073326870702689674359150989363985387696920030824119752188997406960580301091043355234995445487773350658798403084116949892875987766882539119627690396549904951333746581302512532697072897597876835439080194065806295047327034461116749841266580327453652542558496498361543546470102192003000988253552386846921414838480876218570918281857468619406121902920751150297486846035746940978400405252906606857985661273021231547515539717841725698691038629155262219028640604826214528758188318299907357884718089288301361462111089741522891755069387341413383425950416485044502819788005474540407827313051935666728725642696270747454690152743668149243702202775576347040065834572038926635088396956050414616479957884950330706568055044934000858371474733004120432938266828689722706768463682011797093601686935067085112604886375668848541984855382540028593415981782120032169332122044314940240733738348804544822378070925372196926822861891348039987780866047466405271243148333727161772579824082414641524852251652776483654116146177291407009210331028336424687889704920223546689317675200974704345827503302028695300827821574822107970678458000923739290643656203423121330683388281369303926575525042210299826526348982743584180857555098342539213760525102868493412430526621480623892782353792925812963134287193201554153759356047934217921609728541955674586891649566251370121260010907518850484536345124001356062291403067733316436615980256066377728915259961656303109312526670419928157244921051550609494482794455213623373759927593148126071750922203323228939505256391210249323161915727719629994394976064819970388519354325981304157932814412399563192892917896408024730390384413198778692338637629368855641582789497106897169456811065925521805592985763665072055276038270474734984796184756291268984994838371463861431268942039256382391471711316795432917311582981815637296701176418341739803735692862331503917568004154336553824619734244173150284815266693654880167758257787559996258331910239048596626284550264901498799840496852933017562474683428514224078673135620688286453013054689530435799835427177264895532262657219958190883779059069424424591901630400154775456900676426769961677859580692802783618563917184587715373174997481843657724761568404777441743430071091681354658596362884777761233829052320194685076890774085983733279192920491833163903958763305149272337762990670271233620467242927074651576015163293949584022167921793680403583994712901977865309379051825593672870823266726170525797815445046327115765787312340173555717318935079889696754969381582558122760321268687577441305290678866342266061466546384307830153646320336787422641265289316508158157694511836228666641323300907562554666194775107526916377772534049259196924547825979199905820742527796579721290211464475494403368388152903424934129014636766625212065751941055875336776112230459021233486456470409951149498737052640051050968381677197478198153930782971446046620684914771481118554490160239780106743031076160429666168262997218498799083192783063716507580877484645707082074177410089924595917820292053268501438697419937866738376472299401711289147737299197958466435082468395866496511960518985962241407436797684868284027024485480138630280676751307346857545646110785026618036827637395681029161984413722156348998691409646345685010412399771312794379228353607949560362612958047655134949968450569860720423061615894605246653069726511676244416643341190708434848462473279988851829407761592692393760369965480497159064381307009398060792008195692992304159748760093419432804862919520895109411892556529490732516310671283404539007466838517258727968556400418635491088362315561215503943149395452494875103867431281490845457304212669019056433136171575614482442410772851488004457254630073609339265082227971947245151757679402282030737251891979685749290321772001064241556862861296843268359768768505703430589001377827738618707652537050792762613764948710195834119531790163352738497940548193400280514923398942573771453089851255821302705543493996117200785106887971315611072512865917725855874380395939629724841294517956217509642558126674430219930087727547531761240685202842136316132854615118859696406053390184156516003706968857023026977439880859316301538207932059965781076716005866186849000203915061879925009892324765552688657039512394611714504551382613213708734742397631074152300333133855512576267558018063805776263834362243856305640105360691736188371701188160455790594351521294474480085046563912328117030118683309905821315036549209888743360726808323487440699955795309654784798766079376889571289051058205534731307955434928842253165846012840616150621750938625440584008641805507736678143638484484906800113259553853488953150905579938738196743364325695769178672140819509564698437858124304796477988538055546844968086288852409886872530749821360882816334864143894073397755299724407074194506654938333508627250008494805628262198379170002085362088414181137183756228162585209326190887143757243040894653747689614395534035090579831525418155344004799641228364457359727192670059147192009280363184251235528048014953106455112800762450107352027137349318450099234123883960341710073481617030634190913713321463392647808101418474232503214696138375957075335703628878615365330646076491914653690729326050267463438614342293723839490129006510479987773270060837033766834931957111289276006454830197012017084056654603257735058553259655404600730929090657133700223019155743169923557904723685558409336606730857368910238096744387971195018413933083952497975454791352270835469463036186793206560116725177577865180777490004072798211159979070119321640912105559988811327405691513562105269242798245682769265272333696993766438700113787880997690882649473940714223580450806147276774184833992514094739947404273967349107048397815445750407183549078025552924023540871871551173349558076691576331518106060633712631010610578143927690880893125942248319982789770575667610030590424198245948042248953117798719628075327362181338396466769521038318796934493905219464191002035359469383553132954458383625901173738714927516733722107106339730643912114322709963201868515263819246216871442300146468201656241744979590867684755341269938218869516790727172470525747828712366220001617859395942399073882783582578001445203076978112149248419670602295303549014067031844784243565402259630021859147111317512921114711979840833963322156958012559041450758475951343082860610708328634070469494757567336855712859274121992652041600549830817906912160838115194228400743013437665931881660207222646635505422309443701052603488345676687880527744204015356472912538715254059775716695670750813787046726675190674987485388773269128506447314950515410220822456745158669076506260093062239781973206739285418275673597658874139727505734691886423152746846933401755216157019408632946948496916264611457845197049914561698031923442400132196291219615968133532525410243986199615245744754733804730030501491715255302237152898703589007324258709694113945644954257350721559071629029400746870625269492286091633607382621213369864301074162204361215899129937465226149478712967510762688665961080071769268080614526435924659605068272929013077676778278992373779825401789057326013621334755964736806466696877684165794265599832694212791636692620592958217729242213200593546293158830630525282550310969705483743306482678460515263383370617219884773711557305754986626413052189189991365872639267627990116094255561501189160204185281968753979724600994104576624251451975788168840392932468679787930304548883868121762263722030034048881381085988418765929946331114250028910069086338717298262053133506844722176513133422006866345536132895033227487827657094742235230486487153862306988271463648416985114649736885930890011269385599738929125024315080003800660331774440409159900270250566214977351049678932019905755481524577319297935709719215237947700198669524099669546074623060689728420898036911736533199194172124126058841131250596642420376211674391565926155401392547615892609514860474476020167490169135479784243737690936476741744672461864754185982377368417420803680493552427462858902960930712586680544883908991898251235027168533414256836640418625924606667338687403552957693147038836119666360439164995724673285741625945846727738244600278503409440711110971488341821956765412987312375535539652531943483762906028117973981139275305368608586571575958392279195272600913334626580618820321654886762593773419929340570784094314480775851304627553598325668714043660977990314998971974124960651865237347935691496657820209534787845965223726193949957485496796246114181796260018938272572314787635101979266568543218478413167990650529880695987881528439864545153357295183440728655426339125242849606290381928684719768118413617182158783322747748346858533214892132841414792909913828181442770610636673176512791089586836660875597315537135835537893707102887376101635117832752320189714022958260092203698571834017693182919003507380021298616441974283163206999942719946434003587976291807992775400043731513643427965676044938557476530638066796311274658577844468575453161548547406171384567054441750927360768013760660308009924692402480862394271890480297051725168406328185508541261021162351831170293622917808368371757892426971232336335161982698534911152550672210625124446165732244866502151221917164796718754556035994281543667860858825757590088300372028384169146597621143614731634547101192822452463286501706905813402511027629583466529729928195935761994359472228454779329578045980947875518137010479534315131504332277209379271888567919356097894344482614141655061265753279311533039939676113396313986225239625923248862478944925453592778457669658448805244313584722607699914326492441543467975083701683659563391205591018749780983030240405965532338091473897606850061613669656642048588161413395086222734472392546912160989163550604875131683568495909346356062800179282308563945244204309461324373154476409788014571462859780128624180972738974810637303563119377494573714850653643027150205538467574865801904223625897925812440427566428384758737149047781182967367202503445462597054803907556722710562858463552702822494620547465721078683818987986399271853271305276392937119118940214205535188999274001905206523854750930040921551796685386733050040134622917178658790375621466191640147318807172471915249136081480616414322519274746640140965585112611240484725475248403139762240804894341856207543765722392873321914529243351055639118152772230181803694695521970625272428980444660626130382885695049068879875704126094717358796735161485867451095929844157952381864604835041077366397438669951556284256629457215605812006543781977005904533308920271121273608985400707110321459116551071182771059586276161855995217552271146621759547057188373821199404912278642831373950713690993989742456951568165683267383865305229421512592796473880662347426604892026496845407222049759721442803595462393653324249178008824084941545603256929278257831354370772224324936602283592178434892330983470705653186865053100953327491890943246164339544186399371210482803324591431935224618885279123484380912481263428485735215395721695593761758573435807641440633864384450055052925667157055193316101472749746383981040560297213839654529843426843986790581235933417466417749542794589671637558326244595286906959490696356545519958178598830199309452670426521976309335641886024585931958255500986960866775458948842541886092538996454490853910266688182998741951722652184920168616782219367987048749399468784780656305275473094899289277865605441066293406234857500040103867368522929518147947758015443692941576012950326223320237509443536044308667939277195010887488214010548740999070088128825537984975778629249930301749400073594674199699291818334989278402129307840194929333760541263488701908427844561269856654014420161956001295610911077846568871716975329931482334315206991926801233079815493201192868024823172004859742138446915167531414175898280844234641749911350018725905363916240991660406763397106806918390481147373282078041434938120265720440954683112273281653478992497122454090746565446446536586589539937594808610015591968646321798282783444753111138466684672528811077373871497243824604880450692128738315458524229074523650478065008291457534322903900159649721920226497824422974159367774840284911109426767194695413270838657142604476518413285533827264415073834422406954329634452625115994131708318806786814967859411107760182710057444943816816011525422372467897634780971396970417556368116425337789751572465961556397430223883184714896546690342337688856233003179368315923158432687699040204927197308967417309679277186433302062249257593040841417159393902664673740559804329375418627789696285819173233614155340899164502352569240160820725975190749341863151013099295832827217512951595733974908117316857151834619995467685332564050974543213844089276114185286817653386686877893123544272463919252295499499844112218415919911839275275961157513797780368051638913056312975840821626860915447245055270267473732744916088292881098597163455987448814695840629688014036313065284268943681486165039279362097103531879208314507898951571593270368078496208659676409156507791352592121389184074433246157401437911642343325147239253560068663093467899612453574797590154253009085890795218935687708062550654707381532221174371672908563689374989421834063549578298053965969098261037020311457771035861640362315565572681308161578637382831404593530383855664045562774981061380464773544614228226851662382522686325562950743355390748968852887559234870005275352933685402788297592067424564321803166272671731394793629835551158146015530956552855835136964210915200368332758471796445080313478478017765927772247016161375534822935352904370376272831619700977183006684020188595238803018270603793863544415691343976494106402684462782161498324829488797018860252436726707412499345829768423817705780611159003614151139252583476086272402892784367789188511613972529541282151871259390350576448425863779956290057411974160665078139257592685554373265847852305963153599554672746387998062712765703329629530220026629583175210656753862294128545527801327162423129531360466686114591602828747427018181517281009343493071132365283564938166512169327579477642146305250503978877852233092084594365168180383690736010657315861454794512847076632356133288102006535100759990888534326975156364303987254329859006647923941940193516337712145642578324152335985477915496111102912809691192780033474079109681863878484425541325352414421853338708793393954637376500533670536982082980475955369231869351160493134830792000892099796832894968906372195100120601410650463178651689640836127287855749777303066520977201766512921561320807136780076765410919254485032407077341223557352028245868247609686008827629277057037492611567795175130151982852971686824148389825059090580963663133316972642032462421344972956362089156883795018473833474515804655328037687236540895677280663513294822752228509208084176440543595457308261929836283148571864156077097203952280630546921921188360557900880049182401473508860910504263050708130552647279009800570177087869322558515789493352404254248198363730293675518855341992586330074378973170851185782404455093078459935193131349821361841404659934469642152428842849845640755942778480284184593888229943439472718587857461957223575872135378022627530329113198215124833673364254675953543517976968381484659958668160904093068323279434145909657727850570702276106818845968495966674121237235183748376773766093187387457697727510834441742334843328126942258061519046327213997619337081443352417024717721101788835791970928744404336519849809148675858426122107146302031292156246686446892081507621903522848303040385682288298917673618830452873850869249547346153612041536562140425617736071750846262416932081689127273248698900331821762254461509162539942702215435950268013521674632107277310602074053686231686861221174726673249463838629500969753195281318135946659951094203425837417813525160012807830765394720268128515084756447510258001058030916115877490960042751531727411621824703940890525770380965418021322080208880080040503623358808560138333829721714024659746443839602646089400352964523530409551135896931800325317388672179682199763571120969950833582920123616899679407854792634482779807872149562949106293098509586877869246053094606922763866438827510578771272870806215575358216548733621291274167978362833740540979582826293486637022254033797934481607071893555750669258017687256069102503335513192502068812203093990163161155048098585484510542482422641634375233657455652267911112404116787629594418919916970846364994404595440091219108049525748307536785595652892694149103155667797012052839827152144378921775178653096350941298663410991201119698910217332628890677868705434174616195512840270576967323967694003615812311695389753822944282504671351335646974191201854658342601650956645704766026349274667573241314865318820985282617631040073489092996420227422157853186624469173467112481576643046934177842533437322874223777424454877019157794333001101166010917045303426135971365880156791312604855177545221049246230426925809034356899392543679456040526627991339824004732387695954279693199656258303725836132340719800896096286139066375990736062886961988924957412327324010403853055568528105839191098086140725165016420267486869482455148610914085884343243293497341500959531275352145687582009749497404921424038975619504198744306979748489047381474423680364601941139792976278362392432637736435738234100119318477234326605118111309765953635822222945650051008967791997396339519530281172364513294217276116976711690564831179309009875919436230153123076646805913975953072106807211021835859889756791660802665882914558159515324769038552445375423375635047058063381481418083131371893449289107008541633670715230294299997446410415745341228532740374018614009712648486764500203276956395235459408584990206337636154378244111267065812682398502223409307277255672480595673350235715455421134910329229083177951125531926583026784941296521660571127359914497914543986080688198961627256089570012524173851865560882733356644693330861619689739410195601929198290482732185776044535421429621661276696802764771940729732744143853095889465628759658352876182150521757536658960475630269717116446055818814029694106706971208571548946273912811589735742233299861897881605282860789301773016938003918026154300946330716465495336004451152326617146069481970112004981906685183915275968735436100477272167993508537384408225866156491230977191123903543877783012385087273473141170954094998832771736577037149911206097529965804892285296006377558018422344063132401463371233753320815121997107391478354357838381521185000160836583568244000031917236413224179740862960879011270950446560734535298523173949308226148874198969761818510960017428507210127164868832078151084578987847778548871741624624285359673481926889148963471950623412900378488763816486572246998937943069469696546533532963870460609652254302510219114294137256469604418293510102130620052301828389087982677505922532683583142286932561143778252456551598425494088581808649522682145234500496899664042303071723580595091642326186255870509594150668712903071343762407527962125849174879503824841808941855097529647436739779307484715087369252583509038240535613461989819836234247366191714849554705787036640513459805378036883259856484150711520532722448870647429539838287705420936868621352738712172279693589539511227329247604503788951360675468108629636043917220332986923229087449482704709650502931429358295980273376567576573401517587687456829252108733490282331634965707228295070676678204933056134249910296654652205962895920774385614238050975577683855223557406768308951516120280548974456268510702693598237996345086838672124098628162221233835379524797948290185716876223710249325726520736205781696647549105866550120498755692412488998720688354164497164783230431839383377879639320176107571318925180375157172887479229099355940139487874901882336893759741772133879450770340463672832148944533675740420147174321206515325818333376569536684465793647325237985503824028116940931885051596397439506434162787605141130166820584776169538044680473714655626417579272888354179638561605498036326807198091535906174763465388412791862801459583459899623823900175253071146746374802697754681040991811149521770914052656881763446873436156903343193054822047993500631794322514557938667164471539345953942213514499004603816089512870835429152922066502411855258242066236427337567051692901555133070021543302806991756135930046992799416805362798035503778064778044124774399134194369657198203824678742764750166388813960693439261753281991832781384802320318045360085391108557167095002849028615670660166758845610205611543176220025782410632695660381178225590585170836451773121680152705651424839288199369204128150711527676080533969216240629453014546793708628566761946741998213174337731956807920885656603879413112137400169505887220495688627368842350481308473489400037236301354255230359064515896573474509756078097241697799865267397898870601290155815433927630022401095654512026472812437066921295101649825193684403443932578954623696163754411390561074060036974731549572101872684453524085819932763711964874893101349045297584290792937729288286183055296604742432658590332297679320193676455086660666902597466987958049744184087668624032762455557268695065084473339224849698830699668017325475000115756460439467834959893736722608903804788034946952674344605243036497065140110744392957642300569292532470052456634581444102917618087303353398805202385018629412918422894777817370864127193693053183585856235754122741986844990423338793311311469103457964999649707991084321669174090908453932638810733373264389974947491144473642565435513776788851404820281425235579449449813775143951465391807498940218960604316638638054154900386064660408154272646219693163766048166167564913235884327526759644924917737381111726613627723259200585360178514662909635100506769759714383745526184604891273086445744307499170508446111154248220037192592777231828530086205810026753373827129566971852777295568309948012199790962274719190037216141216776008149776166557662828675846293591833293895212829171404871947539404169785099388603353717252612363783984634240648384287665548437372239871794874448832588993776041105418731831979353018098456038983204945510307477033180751133309232753364952104640519886298795113035670351397465324001210294334061599649129713640562854833277655871320884392464758912730020820317264204482600321817416365506409808818860172252175813240359731427998319750233907780711098913780832075215464410767693762177944545325306772022711533627294702054579805648952540913271798480947799938857688859719840467545159094694024596940641885495694320756786179075948022201057580588182178945235131413769445001933483022808577800498676017349675094607326981766099640540966498836821342449180346141314172802585766324482759232079617605973168114543365523768283806834085797121678024401429536787097135699678951117092355047479081087726458283609702325370166604808513202240895721144236897716885575198570144402106858617537793060013536189330302015993955121436573466369257057190328758758813092708858171431434114682479889104724067554050439640605918068240501215992216285813976425397325463828266441724485338306750741778343532907096097598809086206929616563347823366046422236306370974888445006936368101552811029397687104485561877272863439350748845880847361016022658474277512104023370349785823778371234649969082521083124665499341165125021470552081863771800415658206799748177061948076992886625593642216423566033585905179297653317693676787615618730398181836114231316942942114783898216708295748603632170377953797088192885902381695790914365095434446582968079039761432024387004795298367096154590060267760455309160582880982561760804486536987734769091188527514024491885046324978790018829214756900018251164758815632319181366939245279422840368543420054279575422892658620926353820507962887623705575366344233941082874804129301783174219383347699780604037520204406651831093894864689242269091630013616528988596071457230382411982462194864946491077313840535732995053292945864939027536079041895029002045825393319906010518854826497016256924329493334935964027660368099951914197697513979199629223679717144117476214781553237468735143200612873282995787665432798116652905835927807169489837204745305506292376280460364558745200498480159672103165803362774724885753821289772050904907578585764464502823649401179439799840177177396974043377466936682646982658082886514476411446390582703642672582443277435027220194029009391811916248327462930216572841362517336160457425062950298161592993562551462128201077880057903749974231860596404636447739807900414485499603561382613721059287291142451899126661867895883965942399424759163334995310792722057781138990069202314856549592972560415099979582328650921973405350155105513859215446710488579948828015442184724715651081837078258479555902411955527746264804352219575078700753089866670829277503717796937912045175843351719855729952285483411838980592569523898901933615001707175351517597643748833464506768456641245494322694204330498626334358780966497915711363458869201497800312614620518683909292159127468671773452047476500591199631947336535162435913004286001793493593345500408389511310369764540351792534030352733183713121898840431720604192080741423287795111556970069332890158898614050195747090760864441532298305832919129721519716897477368410857420963489327896853136400875040292173573867194435500042458164601878289952235001704191903373535144882812079451974569160811914473491390860896508137450210056614685040336904824177535336355409462987010880983790174852093230394619758148554495716542121313043712099598920664901803040127428044962566979855175250856968980557593992373025253592878338814022088460325376895408461449715443916313991249027551732831724336451830201985911157727780766486679230510385070262519303767024884686679634623501131639514845064880159867267372020570598026083954665451140836041967929848714760174166334941797704356969466664196411468295436040779485820741723622430217338948428424229533752620963684581515697328058998145499680958508393081016322551416825822937764555640803886267286270430944504723224060774450577865896637900369339280831463693523595535011010270153231577501547228192007439135890328844652273399618545770530931884641896637201019150447894925978071249305184687932147720046130790834730950215176209903153597629035353064589589495327478389261669357938993920178434574596572241273759956870319727401749806349758783466520689802719883839383488842764213703205215099128635074363364063790158158367168844151717989188084192847326097015275162268450055859227092572327266967163970161007988264644888600778571381236796517530717491889963712260101014327729206945094556491522967631028283122617683084603530421733803505934283206464729810055330552278373874790857904403298662172526698851727939769937571881328786486954376411961836829196956526583882499435695087441795618077527270056656381746576422322307381193142750791465573607654558048243321749697108939944466811092348961591105400858116928443791483216940943323350155256695026956415575607203220975078729918724176197422020612747432540306322405615261872450278214754090450923091788153077518487119996483048445105537807504632883660852632379687866922963797157161401409165514415432688381271766487214319096407960280255347849261158804421534634606511116786951010152753807316363587802696501880760794466685413968673300316970322563148440729237555227256504794069124464305949537088033102064392603683556833156836119818745932828037023684243268729637570956697631479893360782770308852012487495205341954735240818167504430636588034920059229636077343645284056423780313225727926056193303645862622786688129266385683649461971577658095976729532055629048170479926870083875561558584651287045315071153954965151780115188207635987105397645022864044715476085952213440842858081667973268065340653411394549361466043683203944302294280510308262474538069247491396906559235117048561395326941684093911605262588338197547461853653905123173830249193337996541407592952642973556335901057958488271363124051169157009551274667935299611046536189562827073337451211509581847706135189041124232761228040234471951476193475218459845286398523705244895045493188145981946675961714399873386178728981016785276832782333363539410877619104294852507144389643347903444108896036731074527856680434226589828390676031210960703061249315182039330720305028028828844118935486717410234051508648540698167663753479437074791413517118177832763681742614881161488416721015472716963346758699333341297518641635057062460195451485834879906261543930676962870334149248092077254007861422739981354179510779940763681843010678536280184798059026210832210706011836449969595408247697915485687080149306859585984953870072342620866853519397858701264485863267317499822512326354082849224715256723135548287615763040709881356218601496576961518333914237704914824450083895780475796854983539274016276637795186093535091509492182482071974272259899752803284495689936722934945506399796774638968458538154769561515413594209525632218490786737823041297456572426723139523589692702975381747249235184433280852887789281008927515426334332110068267419507831716198191773606020147715362340293259016135249801499781871300514093413831656707812624375871539147880852316255553269024800025457859490906047149802928964899369507332207096296812176555954148576203479295810399444152980581040578167538238713109795722214568034443273800925323314364197032263296221321011043890095928810047297008202825621458704391741280956332572763228567421131876950820783008640901926534747489376034698780513358619401679239822860660695685727048879596725682088374393414048661402530237647205528745120839244129717195574912174881660084729252373334305552193986784175339009297826550644115900362202187399857868429323597765232025490441882179525722387354478822280462209010041674516506262032448876739090850695593875731599170139598355431086311224782142027078959718566069881100694342416422634991135286158139024521715859898016436182474348059676550216603794417410834495974209683576625546928887560723794396042343911724878640053870357678507535021132935218644558701041710476752167836361461996900320445470693416011759036659351294134695441788941489788261981380608511657653304712316059161924931377506429166247911964530566613093202528461653673187056504294863576051121044835898852046793376926172398715889063189910005629853863961914788652951315420786922768427377022801979176177420149878438887330302546934586274151935097239946157858684318659038510507649299450361805796746150574216212224110885530060855847896876320132576978878296024838260045598202418540524351753422732738387596461003758079092157114959988073607755191759218226550642958195206911297169219164312215589646714283142837407514536237884276723103685463870824059066568779741745920363513517158125844121159046279876463461544593042695802741969506620712556856436463430147200224979814955406792414121266111236871157583424163678430677613204351723332468092917519631766422176608203766456581693341006571922688338061782357993621893235582269036682851249387620765353538690868143610430067205023652332731575539870280167451071270426749464520593206529264837998178119928955961850779782304356408905589741289836856855397931283963212154728800516329587273046629297231716988348973040823327882396458829826703631788916045034620013130767783963550103794235612185414517147583769447351238395188002074638867672273123754400790913947072966480552505321284150417031524429253800403239177238828257267774152074426211429889560201035661381534527081900959140565990916559198623696098059891874527490658821265956896597619868082234710039077685951911351463842425853876714875474450859904783790908531189466092022417755232091427056042514635677836753549900303647232182384307045504391733929592088428392991312274320103922669862010491037804917443532813420074910366622105652792884793294645409300400654624681376456469087916542423081176021032379867010103729372853101738242734630183439509434762505177290169931053667871420352806079763528144114408223003133479653019875648722228580836754203193516631003356311714970133119910134164821084980366770544739823522523328906866001576301551363163627159958920508123099222188679166699583750776696182885379020878038724800175869020764160247297764126434913331092095314984986539068072018291652784322106405917640914159413529291651404806628943075581901960231356477090522706639663093420089026208224894086031948890398892506474018694519071769115372062816669073186276319353906232550135122794244320646403676730597403873685112816962684686456053496087254284852373488241232275350734872538116482275644807188572997713521034597785733553742927477309185758730412375187016047954635764278253463970679670114122522109447047778029321263050650382053992395038791260802841616966501585844475296326291067280416619334618834325613337188594303495288829349133439658472609433842617142593401779258971109353659990124684251584357416606352803550701544224585848711506157688351774839546686709599660666913212609463997888638505564853737679538984512863640135701037685204495968015086960579665402852532068171756045020929296414150186991805988150097900935394312205703150889348058567648356181633909568758386447122529981220012828888998755846997582843560084964580924623962337925558339276580861592429596417868502404912024369943771354285856534566396477660219917665845117492953499171106474600219897668923659453444215799495419163258800824136697842620777047857430690505541785368194396626075449470561353092675927824841138486507423553460850645949208907177558477371698754646936890229423143323550922757286043565511897615692874237331793302207481235426364840195306757383862637788112457014214193224138484973643820639073442340915379931159452297045076477459049539367934563343078335739433593452397154219218582010761668673167431894039585131932025598230440436107258681836400054382000773672320727616806669139510955054856604701833966405918288907816871955623106699933575232634105591792716697198370435121920790587337192769190592786712093335127201602495536647546063465964999638269238591346608970889981512414272423575332612572526261950581106244557759785974747712900722620238213288763882830788808116176848621132494503365694014514153882081186961482628548860605197879340899748002791284538156897003788586345634780959775449278015777350317195896101952580743764167460790625557729110255453674220933730922535642835945073222707137137130169754266796225769976037824234880492505970902832396249257154230195562488775940701370494855804746664808186567757202558720912025215097591361346621865276938194819607941052213564255818224917753758185600691928764931867691798478228880505318179146095867863336461764971525090329392425372868412022898350327028071065724093065278026679072486544356816789976164137063328448257969559535847125099599115036227102967444296304957990243798521239536396315427137207460027032990397350175188473328699185616347296156306814449220005452913936051685136991269284145653686388681438330990875292057368685866242929096387155924505685684411024906248516633697285228292739791251137584591232307866044187253334693819054374200094624959334233867571126856431605331154278956034748196440525283644271502268192203494040502969272456199062858986553011337666825996259657040928836616689068408839119120546598402702138634047039090062882380925312380720278194448036549459870940165398862569731786861041654177624889913747527708627016681699764124766821188903695431117839445919708820295271447935942016084807228545561614092055154709660540555626843692587528680697612726031737004164574248106482541952895634190832767576926232196399894612828558981944448144494581727460203050500348471888125596907740758069677960389306955919411128985467795726421170319475493279574068547069531885377698917511335939430136496623041231899217605534578890748130296323068651503057714065663512745330327944231560951215780584540903548624067830908452979003320963476221162016473941523686820971365985940917635526203473167056672930437182753056915320492629621812091370310919234272652445902931532673302709249003001139762704026377713148141878341036551716744455263878989057210163265664674913844898508291592550384887655772299577818133422185192800643987229517678588858556541819745691760598817546773663055882925456628014750172275474225418148461575907943873106980002481669387029782007513908843181668502433316711800856578622615453956235325577042034972138169976313195746299332811843545537514385658978923859795269884521367733616691245625833594029439601524293344126449756996515905828566471430836221198585694964179857100208879619539281969576897044725475332516751816780040791220387273665583357886818460761870706572507297501728799262195037022686165101400698258803050537239348780721620154215968389958832613979640867153027067077213834841874041723823790547085640638890834800961160353201426771060904633356035276804737795841024847663298722469169961029844636204993884672553683302700493220516671194750772292790733989831429456877050743792690744423746520518082898365652613813719667693527449989071381111656412467061186859972854711923638544003388460159686916019063334910897593427524371232187765906162561641063354965067946159332725597112590299398857949292011950610996864905052900662494619660424202407382578721478064267571261711904093386573209778473973326444047723454772387887784001977018114029383017251178367165513096618869023227685928759976118774751573946373682050579623578350282962383579806838870259953969328689224590480634556917128108679186992126657387424304522098176866050683024046628797325711117612410034184814622129889408260197009604686773887572912131307814172711448198901454040041281727648976574652713716374237959611264652833190435887175106619999286205471762544673143682416392879967733304242505062113819273474324200831575216477903844433548451827562925702359312305623673404654364325757033695120635086993625334900495028380529543964412255582957164599953027683796599774791291271019761131914276590953059326849418124008507440145770037654127905126221592015091217523364695720347234052298728412144283312043394452749573177902082693605720886328730299256468804598629478321904577215006493375584420585580178485625646919254282769793918226745340459539672963285044252538586941985191190413741241373209840612955585542007673246481882203407739982050343387457492062902883872059150287657400110256406422175650786642945842823582239676355319266902336066337705371382814137525787142003302993286430236574326868195148793697132622355469171009428334571419853447917832577237803987285165371829218290770611894130030317684346265925069141769100567496795934403853275187969456685422117524166511037550184168020771571450960613259745581273818402165665330119834557853221111589673482331801731128225625797689437364110322536058635580984349544863781263911483127660852497965132281331500155516222253888662136009437762030845831172585385967676644640844721590302540697090454461879368195822689188997906687312018326271574429301307377590803491580179014549437467724864714969568826052626699907517859086628290951104675183401882237367708448619690637774535843198020798085853189520805983929680542965725619155166403846950634662981410434896725067872502452069896304515180196801015357016455693710805933688694517423834097715548120471452128039489243888378168934593853044908082244317386577610758298300600324145668060717889302442739978022112737814402027245353080207878959800184037596654320347581183460029069645412373380440549184991750753135075398814710518313506750363753208023953354076123360671860142459320834771573086324508380435761283859985260996618189470872910846872829881710284278184897459352012223611113186751006418579047430627773218422823920757565765529420018966418298250254819229419833608857911102634775241009754157832327731915211887066437710085108900916299523119008592631226006721319755896712536560020543463713050908796798030832184319903658355131456876406588842570410752221207927019194640770529951838073726104668707908869902341587664562047500890753663712725233412782514925066923198759721745084770348997007992636486189888665439686790538123464915380517809244001609998231125991367286554534195704332954023158254234364732959787032628621312758475234493450809040398202265932575275162065887173609200817729930099076584401331326691235625900537279429965481962318784926353864579613578346177474691014348862274526733477720433310579669746162344582206453105161378847255238330787277865261945400274140515754626230827506339780177174324743675735945908232578973607387062131571565364306721555429386860714072285834671576525643235764436028408904391876786672752963112476677130691443258747641265378024444960752721687829747271713196340451838261762143760061790967421730710872285829378514382104233021712241101044376548142507533936714041153510383863539494033866864800294615215399185865906599359742031588683056687567120780518084942780356614718833389994131697277229586062999565989988408116450468141415777927440968596685672238454921610187123816718227794104369756080686686108945525712430089532100645958075006546345878008703391195821926537321730117578070114991090302699307891687513899055617287114047969118361917006315481543774669846583785927454623145811610284374434282960057073525407869157272521004314536476074926256297457307396715667806192190092921901216555526414513115770111620291209405185738877608884792728896421645786824496362070380232026499259736368250442663284424804846212317877495766849926931801508053738650608390809548236403471890037470794124981480356572731633564430760599987712826742088660713210141581904135460409139491031898499486681151090537682828066373441655146236568247499002956450642758525986627715670954049583673365543664242724166782010044681216940086287125064257811657933591534895983411372194022045195431880535064256560931499332016630219324103144402165752451137637244176999532903247837131481027393374038096960420453203815077894663359521229625588847617261289593418168227079208757783284770742828054580909711763487356055787796768373719163339168147385523115510535053292674541531615615425854914428350516029617841138476669382677206657112870349085269333039798593338457097938514962167616676809897170993918959514937258604893069067218513190752868367010595771476862433725710320708932022536203024067900921917431034853474403626188229013646428446068595284437459366620668485528973759904743011907035381492860565980670015458713626894431204304254846987316809152308012702678991119984969006155794771074222291259189819847038524534994800056033803764770020117338515024140237596223728734583196519807679966849276431416865791844235539675560637632373575341400751784791886073834378529772915212818227839958881157920508106875209372350889792438660035330531444382395810452253709123321673347041275429381881509401739688961273663236939065272582173246605139426079542137659059845264689262625122948473300021649012479622096693992445468355630566025175730604033113277637364559017517026989665619270836816925346761891818145112382688258053224478400729905930779233819480639952184525213331027711188764175671870599369897308522472042326254142774926006803606208303728186298074137699360988457144264806120565052961214930899186911912314891866883787886689031878466013127084528244832849984909052905474088942129410495985334075005307359970485531194308477411556850735086593545640485328195128460933627283256566419143888795002666960678340909701943928455897671225669157840175683495600423832908860268929393469636727263442374037740973255917746726132708741401198990494818586151847213913961025009798389703309902201422852102672509603621160794057683143552768822742274417819630620389782577181432531127949263570052852129057362706498483476648900117019362088290537746253917077943692736752270943614548084292533244378666472061473622183872868202181587307986258145426475890890908020718497312127339696143060219709214654254780747409830935221765876533268055398260303823236085688307091921266868551370586220963242160351530810378596984583906197521446112447591722694692758109699966486357126048161916116139280765312578548896492052214655930892615279611987626615885330787131273911110051538903808605090160532069642593425749441057015840703397811262285356385679249657282896289271080150371055935316161325001901891958637272853176406548346528207392073023732705002941427461492159584332288944634316300672475266548126458940953935378126839936939069086318745203977875516102302407209301615610858191038228429509035347479914140320778620283964193372121805738488889698100711451757740538237347665771332982105007902699968624847399537172462004337494163249147680044355398247056035150830382035545200393420032322385541988547722678001938104678755867574674364137117008963226683458347160482104125068584094022233432096727781472314205206760149815412200020081209780898762466760633984189971857497265394136012208921693804556844489365192117927208815254745271791124123457619388478326983777492142067498732001138438249371157141747843371768839388952563621423710512610328712891478075383961512589419285069050412323951596688441153729784667756961421420821871809912145763817516598101765717613845230194779797757575836270084302631342212922152050875132848801636100499465047882623051070811500133655462338948288783253782350991030056176659814739524524280220817179518751668656324403950388035835144546303135674497239989301813806000510572160933183382336331211465441022213504963059671530283971013444600664049675589437179665355533317080817173429431516462629059239001055449614794589228538315349924176246717708396316997225617884551768058593022131068093361450382963997116321460922958660511031582432843293456956193159967590729764071193566324437653017156236573041864238233793525963932495640885546374152221230257495113933774485803080129510741406445025709191236286739774763258214294902555241278399597482093743755004509831312757262432029721917093191468921141620905030506747298481652202753485638688754660366758087785639422839756513710852817184382174493775306224329248203115113037151736453950092628329040622796259277313751255151715658096543836924041051556262800216050987711719596601983446121889493965635648701453426286145824798556293779688204116514091483820605839026401835641124268697838760802355062077129305177771961966171434924286511425804825899128892783915062123665194881221997417812128265736182408174578980962948014985226358760212603374044076563404989629531146223488743015196690084407805258148550603572539506530904167805513278840824302031611065836009457322511109386493585980986132716515036414444847113008488117914616154750791894709733158745217345871316275831069710465120481658540662327343539364130910415275209454461663009470470381724054765971941920944877629019574030317934599834193471751891478344494343897066330302091068999280460330965231535475332404876565403742723905009492330096445298609945230030318483838713313155593784234339153589379327966381710862792764933056304175428078155800409139352804931026375499226553552999222619480454946827338234258458764293576259334506973771849297708567111175895420996091023356516669614605774897622317705647389318041847364061418863007958091286084388384013875967542017000744393290241966316346410679741567540763442383525946624569772349989553020814617065123215603814547622226490706938782992027166201963327037001967425618359000330512022080539097003854169581733513042177925245880581956600194563476996595523869317204595225745645102561319711420462003808716950569038292130600663854598774809179941499485361369018814714468671906256234804233669777433605477566532670290333996704793122073354913632441362582679452504103253707587647184053380565822839195193568675163748922508118394280158690371972357673512460167085379049397447424532754087617888072140206944711074905424991267634091565819762763052699510370444049064808359241451106832406002907498597834554196090421826144127687404984366029887055165558424269092267559524183828416282116625749283493823211883972130594677290568502819552759778600356007894560818682004179950690739049543329208236626501054868945140176692099865440015175635355284939118226031548661179538075549841524709595745487610142396821969333129920843889163576916371646690721571526471271496430027946730435974302663569222080165743537109486130345211300365188400466544490163422578472678662171370568369028080068687271975046988673748194572744930608954824373607471758489875632531829291911843399968478055294940387430435222135041761848073895067257530694685490597835950354539979347052861568385614396736217906581706534874944047199869038805343778333842873451923005230139405864036411101849874978275004181893187307104746284913000614075418738822638886585845534646161167891779697217653802282663798957627777208076370361620070735683745921639649011885603102573218806318244197292178137268763345454149684231089529030566545260490779943605438522898770469778184928144779021297352133412695126319657520844539863704174158126666352132766317271666461943123805655784765859702334591540646633213930478204116779504679654933052344535323554482572956150106086809419044748930329803556123847973532835867406584104716897606994732468936192787796238980048277275238180579852503146768084145855025233488645867792712368635835062737183863633862761835630976968086270068817966377361464783268847009831157904975297510603711991217607256736923186450730897677345005915497515441450866709770727233559221583208883188176101124800200804148594842861358869703202868260458537617913841488140317112126177081669018021758578087978434539278611020775446914133447465764543321391575154799201971896168610961959941178310558456930201162506595802810161885908693124152620883829292107650005127088989978293612513233316710477053518426228952031295362230460362039638544561792236603284350394635657015095403018456929326941943019903119406429200870808860544166802435240292078906749494979742954720956832683028558406098920047071361156012456468530946998592120659659604321277989500464370926047122137331886544097886069217276403521911800337643048202330673127021497970587653971182889405695627170173520678374700136545320825955479958352517068828053149811878619986820212964799490915418100470469082699301139678102602746351386293037074687922089751000025794011845039498996000605065235589005009106261712641127574209295281114905763563594456782023028346795944980632643970701205871413890823102907307147774936461473946398147577652708032067044341928995510751337414101852558293181812895967630740868344117134498518899055243514659983787249608120635180599138272775310833521372888088503313166777133395706391628122077279901754423905970224801451102859552008182337239890005986173690720770620558116952420813521744696076318014145690993024330066578524666497584524564200546281959687284966782187760440135040940056552667823068695455950908031988189590703647408603390068006835021274499533145097925017961345364743318262776518239532015470445129706705759480606597327881635572644176663058024134091379905821496849475318004192873876777879904521933784627692567010297465608093108798441629357701568029006745508978389658567298622619029037704487828746076352463390404212090961340285760963187679360178540955681147278778126850472040423660850583323916653437610208326473194169580936088805183378662864169678922516990134109365111991605036353233184712438733111971435583754691357497332012139566723740067851910933782690660817088275277320932426884142298020925643877147777905319399480118614907456077567315859307244010427885432527203517100846406329678101532022642957722028277361170022311884770329456283421243593225345746314018254751423262388731097671247694920152812951465501158898156672849751246348882627145053415576594395789643733971017198104799156773331042934047924926248210692835863752140599477152614025170562471238956763431748904314487104199822275948718068347160116498671164789392315857454813486216843114007850666425334754278338740451629008709855701811354284329971680589137527468684784740316399485304041609330059288926485798502167749837600243779668847844057329818855508942492786788619059762047226453825695783464009836462178005334434310491047131070352875822255716181622381266261789617409054015186418710229857802683809903685997559785827955969493878067618152183821587787013257049616544014504368213665485109131990538845175419738264185225274141259272530354563790971300659403226137878081760893336324185984130041930395301510926507478159812852374049626067568538641641124145530478658305048173714461515937283816954156571438983766589766689709838089876699831878072658515831118081008643657643661833709247461617889432374894339744376544773396405684323763853881708911966442521502314955802113149424209228278444734959968332206247233083926110088746213514823059436902245448396808082323558559721965973424899429555629824040034456521488566551678594940477539715401688647989224203006921644372244396333487805362804791768346523684757489655085537615768077923378936046464148864575316505058995524585048598224292761467219596353479404030474889158664785817603170245400246202884642734272595284085629378373292829382708396769860705102087302464329501733098292612518391368726829747807606424344929726143586159810658992022169069671217943888762689850774128695712734161006501166362119364656270915193329373926230144634345736452700407885756700312289622221048080790916256861896573689076052592121294546308805489345585495621699664786288218011817148050855454943171924112863083150052782265153330107342993658569594994622884896635319473751200962917289909185491426247570614972455409893077070301676017230453201042074358113511758540561693634528578944695917826148316860923680938467805040815596740995648050911695243660055041635928474958959687032259484948592044104888950069753884715747116938777676431224525807139381850113499327219864471482344251297107806807909656606235919725837368804897914709098769361594312472091481236279458954991640758978911037500337009316497880330943732708104357136977581884590461284446282678569458757980288097764918162063083812997275508070904932360654589376389477428131783343669703572469502667009803041345000873370603341105597481026573343042014416716704980075683952011753457535141284331203914939248311907305661225030327704761170073599780377809538837634556543846579016753542432574288800747175139240015523894303264527762310001864826621788375378722970296969288306666490228764938123076890874455650018562494486641457621140412786524796478658104549726888157000102291131696985694580882606012506178954076641433588285040868129891589582270402031146104897180512820121522645838605988160209664764077400592589816606866150470566412305192878980521976306271834208015234722400540892111005835027485032228605735826666460826932427388557071288321606740242478569536184578483412904032187166991620356155959698736061146375243102478935695423102091066574918716803600155899046084518608094296784853603896089804027559227688919441064374692231655510322310070382092460822302830691456180861574175805079904824034644853882478983837019530064312427899568876019568045030053501987051922216958319453533992811266216820441417852428779404207530622183299299250074908209502809717844735006796444704111663100600504589718037675711866557868600372730449923728878450801338975543919140710755691101801276942154405769922604740203355332894576015095202077978106376257504572186546688251646636607915030499020348378163532851609296389712691733238376064010409788110807862645394534032632401218265373630056213054742192916734179900171131381876848344226579560566154147016245503036249975175201912725457088616584196126962228500027711255537646136618214445964648696129217807069139518431282330507441859851757332164359405454104674159656279173431715252788847007231184209443280941567194017109255951720654657772184035335915206632677242996010294938893357824053698466455837812645759705268404316542148354673294731381590002922186465497200430973558241557802528017737299274253382433900618012288169949068341131803709664105647976800258693502728523121476956411169161790183203238135836131151879339969606823278036906445115957116978918392569861468081439471987972304981529416357683736941416035246150105444034052860527974160448625630402472274188830812908056757160472310493699509786522006114521232453446839126372153988789560629461360459294180836820262946287066113179826024698534721710103207143361262126971421063836243989336109964144102068068347072619668555318916925078934099157205994871724282504832916386190996271870849583167186794246128827796045486077916755367629748641115182212796473027337324956081563359645733959190280558507598764713944520814654734110602833221939644935651599799547101478257523898485896010316054789152381372014503515461388921564593819805891981837266757988972101072223868842062032181741510592906720337760653810690228716811330168629964048807715584699910609769739688998890028358355184165221686998042266241659010863336711092217545084549577068687851224360805904632713436265145142277690852931971392504436190067809050138563723243784181336899121401398317885670035342051156763215191046874619794675267338223538048752595283180292385856981154732315010042550212528813170419684085701935917761823318587786725533261060392368839706495033642851214732602590193778187221209035175300901373282197937088561257940271658539193312178021429315153572144465309949179545730337593209387870199724764998142894683516166981008231277413795804185418593016710464228391417535432458272263594143095960738615637514393233869283231897219146470033908911759214180039601589464314897109179295241690709288387555760259335622232364528322488902375135302275993487687419740305615793872354309509053586885035315756126280904759388693236113665422936175279572848162694182802696358052332530248657806670702465674697672003026944702707530083302752356508589933238629303244505765349923199980716251226051211495770063399047608685683112377453301742045680761168869468496198303327174269130217212312593540403169028704357402609191171068822387517340167547366954027190325915823042496090630763965933307995564181352384947062699038348018650228926233010408538839329657249546516356013151376810781534003954198957270119373172516162919988159345550978242443351031919133009414539658569544130562871176083288478593100693783559881314540513849857543587255351665487327351535381948384454912585865557277757957883745744085035340147599271346699511439319898865700479296929981271837825651201404844035560696162323976081581629283459986883176909838473481851817376642755760785764052149691664416818375362920913615493124726643961642733713118497419566815199359339518304662331513758592029627455753426742967078920144412589105174383361305627202397693741103788951026293610444241429732657932825475813622538201577070499053155893708538913399080143050974649893795326930291872979323022364331543221344964956123849399226827062327849574922005597358482900977450892452696284422124198658532501745264138496321348721846963486897290153290801629866139128838091918583857418802861693977243548645831449777165498777794171680654031237791935322887601391425193846433823500027780257934783596612443266841926446874185983701060958456401963086512712766402734789291372654655080756019739241729870947050270413317112867804560365813096619291899808626642569048323174894475890195002052929907909145423830485685127738340840358163644902398033514838360249363576533295770341174563753138597250267026947938231437917103264492567533663997786129743605041759717245071922298373860481648269448132208468838035919606157590726802509117721598087678189631200028721208018670677416012928408093091316300539169389032169963666441125390241657025931017158227863607555579544500676151586699797259007242653557576667597776567442948905289192323717617882470259447458979153809502907880592377958110791943856699493214311333629160065647428213599214809275065514577575702786050570124320171562969864446780019813991949023802598569175426884438106549676603474227940388477077224325302675456931933424458996698886749933709436263718705478458318188364694341682871200288943886342514996494223334428948171535025685492107835566354645756744303421827861120669755226552525204537283745944033024684514197569915197390314763838863668422939981631158457658761956604752794616869280534143575912122594681040094688832262035804284755936249776375675300014430881606105732347564665392126657085682635046817919634008473015291508123759417271575062832538859475072992560004112338237156145304176928027818427009012915387688471521074016301417463374385565559040351938026425177616909811105708688327550236826287340857994761314985156251967108685501990107547820677804757391402296928986059061090002814636449342850549282151290442838315357198807098059153168949411143188135116189674189476175334733962805244644840849327299942303356106924912404595764664786864536031883528817114713434412033713220115504936361610418846412779381973321904061818229371087108839961211436891034345270282560914361167067766138896468908663485414396030971986304358684000303571902102001796718302107126350775754414273609661429730822847877523438606489227164840242135291246557999581371221428067890489721783435213972837897804195019915221361359856034726368712872335144913014270455820280932313830499415210743524396109504826327677720401741129724641342634075263102653278585892689859449745579349651640472742123373482254951508673521955010569984825106725513787178810036290684784240974595673171378130258267588337267249608801200036296441157171964837118780231413811646021534194425985884603526323042939554835383228261707573914744251501647180107328789905817630870056153506177508802612213763525323292618486808600467786593870347273154836701639278604103497447869085098783742444459330100461422686752548260651823676014468286536547595631626833646760149493778289418457077436519986751045891528312580295701201156362326829656113630732302139145063285734258878484110617606442827112711249363655429807633051192175834220059421866110584207887012828290252734856078310071499048210615929494185028964860787809262226423069750573606906960900106344860686440004590165607430013493388607947506419028796746955284149996198924163456304928239851697562815233464488931966764074378462155923122815641002253984894114785747128819844095677402909063410128473657862876897214852888103797728337191225535498723722853696744977087580311186778806585276725443282622951854483495555511411627317731515191319141736697667126843162377563767573120598199409180283187330901796805810205789768318121040673663270124476832846261329657339632369364090421893819635754949469561433568194983100873542846874259965240436805416034075951314122976783242943779154840866356116795012816654420346241460364597616650388321690377126099953201232004923642385670455786403751386869120167069884934169774310579766026967502275843527565086633673337930914336714375003652144601001558577611270423244233132712223695627225991156567351471339719946632377922355753777587774320031307579305360867132244387370388622154073811932218856993868946628526094857296040877657805925253251945733559769708923852825111015352437456128042690885651998449321358788555571674483345963513535797822544113731402444251702227574604076942844557869659867672305425915525010834577047587820411109085806798336769462062838571237444170826564067478692082284094155131839561181940798148718904443024337327721817840509561051110978012160883433110215655204257115277981954490241951754192990212337971592026113586302299734340220308029825971820742255356647828246409286769012276683885694112209284844943865812631804217536523895051600908927545209616962513193442702432998303871536446452945007228828359186805904420947001173886285770339532889286195111349790018304936613739779095359084048889121009814693664510102251548290511871374517990834554868083932063658710072180327146362103889265672674445976323174705366114000938830079633296378431686383968055924239395710924566280060423684497513283669833203505186160190475027070683302463175175190739943604012595764175523234132560932557523692263234396480738737550101862236966039812226464633181993961953702057801201231608199787579742789354588260905228119847322605872196203607801053438337090429474951279167948627718933004526615525631352783344637663787088058323177925894870170947661013349756457485367417819455404718563892107267474391142366728091014069784715627181878438657624248374065551442031020590867978381578107255245528940998085299979848431889374247617238375760290619397682289080397578594911385466638515891854005359775926368960690306237654442266389379172508144436597557197128560946770714039986778418297507159145548500090501501390165051837892900213539365188257938360526926828390326145156484259754845639695737827014925400600933228633877629405294659667608617173303227552214839787556484034983786853350305180068572690550163851211086737153450054852927417732386416044113501300729215081005026517280328030219935682984449300035705780269163969730093110034714984607537055869262410982042145039827390365021622967363569596603931754913676243167921997318540804985377754981043282521373692760150618314667908520340513121780699501910947377927759633310919947559614316438780903363703710898084982329962701012281055806907458901187022542027660029250996778739815408414435179634628038162532801165611088286217745428013085370543336434611530079455745343052223182788043822787199025611683636303853768549274521932076441156086918531282764781598824338750272874375840754817321523375682829752897880412445397402945271018954510339792550577179380832309900054485199119242377005554183868043254636267811213645829433191953165961825313431101851497377955830725972719289985949646199253993493436792687571950287063185223652301736760409418911826194261113299492281462253314017341542969451354640764126523348424486726607997218219672476800758996882225991845232128084958983039708464585160365363618439885782610558431281722754870712903527262577876690812157436571329344098132526189810562617269967017817431831965566734466362898772825788281514711464499196984205857669789511817368955797320346522594015822544233881670419090038527326824579400377738139230247345634666195741901973079133294397525185947232108294210553911936647793597656899823139741513959724502659075194204183691351717562049470083988322159214765361637792685693197190607402102351774197672662925129231082475575866557896959802092272696897002417463197737060633755750233112055939018884836326018459220297372334221381196188591069227616411682531322944273580177432772355541406738906818861932007929863221614451790402766201180123343670878890719736982258586801437873709449690192482932098794118962929850587429342772653902439800171756873345538413415920542471207462124555322930264111181162100156260073143452335425578852021231697618434133720021917573341298643105700006782038249105632101723333997822414366222510379777411999103251431055492990415031316616517654762227752527334723786252911958171385879374731153831755390209833167239102043383331183417469602089967474054176043327277143092626229654530435071481385428422253964953607505273640519959623479228057375974337519786411259917440631875450114938271432802491347046099253845286267512341752947767947308208901429341968385210731399955287761324215516659894143862637789546162743215164543264460408209716806662059657564288413256716061504944631056964854577730876030410684232900174001779669214559205637505257545460704219284170025951023740674986384905956905000589908201190341249405762275613782948024198753629568523834748606622007422006765759722188978929908682123322431662245420978680386772331801066673531110002686920331724801905648504461589725465423754929289353709405415524005298159857673330367095493623511709634453169959745498941123424559334257125123976907667499793998044861134780199533053767261587453210473322360222525885020222372789691690471740564682444899293165273826875090610140278732663783152388468256371872331774128072195842301369275853453370650711146270461245915866945614517151188319573635394297799256805958649315108356307063313606707871672991345867057135829706304395299895139766742424547291043455206751961596711623111227348256577951295726041841068031514659041136112483536664154562195293753947198860351635930939687933160570813523402425822060858347596076520835158666891330143459596999408353692227728299914386742976031850072798429188330493554281158774289028452587379898011656374144685028637150851831442954629214465592850419334694492155306406222135146425834332247673875409234875230463044191290851425206312768307885673435669311050714272221720019243006018784551992421942908475593124040903184176252630159323556376604189876821568096982814905129776271168339228446275332011359634163069558316977555570739560757322326800513610264096678197966569272282565205628336803039224103302752546885810845085304228283973068102453773847814581412566267009996374774685001635653817619549289429873152845884271972151147461417274135530491857161078118838640388179798750634885511713488269606625660879492965488556804042034869040579666035418665819940805774552522266806347839807408047340970506959569363325477475876719644553765084138991225769060930272284536477396582544647126112409423584918068405138464785706227825757160360908182851650924676182665443446486306286191419501744203442602936699072476874922334443691415992034012222784526605638114368349413053080516396423471717062435309822667196023732838845136354683772659681148168709166102538463585740983745245694589654541857677530777497205828421801118953794059238781597403751287158269906405031543189227522016741917513348718376384881193671559629231319046412846373758918961768948240820060091384509254126400535637504034230487479101582522450509320804887122528212571766624724106194038049962419344919546230994113061344582179262167164516967788207285969277984004057025312176753677764654722107863321165552887253501232582771151196818057308869441109677206487221942273482532646329582334758415277243898902959432331625571044716103807583055992065412369254834450401079647833677560077474277344494930301256980216514576746076040039719088284962956265372913770205808742844267318858795284594327657103137546399971430568923370466825796179740164243535781524316931367891905957980682131709618328376874518492711349366765226189305498706581231490254766161772994565432751694566383622809807235088556963575174784519430054519620216709117645479577411030793725161632365141908210020460852180556174195432493589740721516636639193085822213334925797101609384137049268433161367287009298870787452403569056822803527678047063798923382152504260602612796804964771517808194355864852381134787805951743278215996746544121552489737351903979146224054182627036143948424872206263608602111457428493425657438553731712156967120496091957094314584164726956875479076777573955261319450731687044082102170629266378540767053154959111310165031833412695530937995107142245043426653743671973067533048638119898743616500906190461352617861044760253723895915042324464266584065466429648318279966428846042546376684351500313580863686285800223116541666322633446138018647095377052277742811017203766158505979609983795671761497848479711284884516254645438085189131945011093831006968993344504736651503243651991121062034532789458970525598803859092077128908715179910073123570375765439217537889079517223103749290396874673806232488328014979358463468818332547593445884994888660383645720331770808594640897276590489252058589924623980721060131489706216703985073030893116273237241207818031780087696737722738559118613467769544203914436347583027671438117689800633562644186536082695451064098437120612299956892740915724128703912367140661679642247571440837738178171034215621712566779347514421144787667435001702002377497212478749715219818648298781321972235300675320916341992485515222875571637881284679256447935454173426159553446343023367050210822457489330975155957256513622565004281542468452551357662659860901832173411602339654629880602748009821686456505294372781070766453176687514109217806786203783320438795739735928301463320085957507302628332852064373193920170419286978709200873762582195034449541588801861267224286747408354258852671639853078831283561978535863080585443483783922369646351412172131338623552654853284160198749738587414915294891680586999894387204631298192515300761100952805775684859476268935949657604303065919805509883558863364664977365469434577538918529562446692817067807741041614195335259505025495518602427711552391655300415570860192304714502543496274135721438958640785366448411170974013238673304463924153395332504440823107817961893845562674249339793471978834013341661681094107863832362301055691548414494467228454277120228234127114694833270283432421481028272375365179108309343536025380689813474676974750045326090526701999904373024072716652630923530553312978604273661782737832579033302106771393232268482071493564540035644110595840880486448239457677863252729210293667090415096202698798943331043255082370395699542727262683267229707421403809716748044560526280899390834438701330594924822910953787897022594592067937281377229794709224347188714368468969691323673842992504813299448812044216479138328673522546674491788729316390239183038616482655442841615369057492712681388110938234830018394683567595994313330430169359110949485370096439512590175089403926060725864850748140142550411080307257346815687989231216928162398931603954085914307586484383353590111218204829083710816678037734704077374194147777357093754411277044317379097263187732491807175895809351473794656973019645739718466497945911418716202632988946646159897455642983026807940697280995578595528165431246293924991024388525884209793572576681593859606808263048037528247539160050431265913519685084068151514779038963025562506043934395606026266627433637191766385086616666620814245012497459900150431483350168593671119610400426699923590560403960261120585437425821780502460926176153744430248340254305384119699160785594751203902709237108718257992260472818333852573592898753512172307768745906513683103499328402715868675346700424471443061073910865707241211513633903498846881595612608693987521714712901398802161220446951400526351598282279663220294251550774608289624374321056359809936551513540456704247180878301928349404834134019797466327468597583502805857351363047488889112664613991973881965861313156822970918454140187406737841264378405201329841020681179225028366647730901401989251752983024173655646326189275469664710140433492453652554395660718389511219445634626302242665414826235211971703112558388051647107650439891670464240485877851252846595594234788657224642729390446699806193353875708553151091878366794393815956070482448153432740635561476359956404920828067596324544884109385941285570956313752172060377045832604964520062612158481216249164269921968407432317468576461218312235493880738046183307243510736675454392821898286807661183754338745744601659593385020648092678987913971407918594776469380121735082331743084833955579743008181101190615319117990710444090410134029615670974497533844694286208162617996494901080139863402210022202081227141719346770460832894507609045037868611291867090631430561255558477802682177954267218269152578328080339727681371450975635530231283271800582998089540766892667839507379349175983483635163868998542230439196292626169539109892278277317598468412294833166851301735503543099554909878883197719184141763589379019120435924770144770146744771010635920195484436004171878926225477424266915848556847528542311281970154463618089810947954430726818491455688346479370824900046766431749263819017193865546798062822775399579132715517696623116685842418526548651519907392570007595200363183606633000067328240009484432705299341251815657794029987378292002523564587746526522118508864310036909094516367031300931964354858949596395337137382589774247689175100455026391584759719111393534362816589972386106985523244902450507253712251708383886670044324997337912949324836311270385121353422650888705586605494566024112368008068692540596181332159034424744542993036012878121034264226056598081321931079499388512652950754609140579556668428585752561980835100572757705355702672560516123023025348477637016312500449806527326287770628282930847076522733032789592177963972772430530260636352693007628664258211655247240428303587042851867247881769652000586428061509634785205572946844762000405572993137466118135461335022038874862046856288366845983567842566545874415397406634191023980238444409341378445129045124465945248281704359515054481383424322819756562541640378643735124397880286110044490816807360274885121810349451465165546190022077212853364833054951089098323609030430343432591068530239373607253866732831495997927194916483439143612804212451548597581796496066772811673376293335366691319343483388103963055401344595732809409250508627716757410752280116702230085081852573425442260414701664340368959146311080523925818460970282444081074183352006781224313940745930981228686044347795402870194181372977869986487067121825944965531282904475816805917507927201677575063064829401076569637250299113820727494663759253914034249952240473898628569334932470128446698564631027551915611656061825536915329783558555454880741440456598392178104113076513432339748587290892986844017487219786044507472560419334517260677638372709596185865157887973289700173864613040764047688216211045226684913742721770989077381982771840404347315812685144009479269668902812453149332772833196009946159515810605123309170532591373363602836558185456338523231163528859975317096490964232937892444326619909902223560906958554063276693101179997764424443640174398348982455676980077026754705285591555665940854764692560425284982111605202438915693870110266228003671316501024408701731276120006733581331445690242010584200416786899910847702275041755821205723252138991629556957863655551226787775460392863324320778102379869889918207500951413994970088329284163444205085765931123902421402093439561936869347413252155562519257818129677790960054198433567297205235592606981358693792370932335136675865181061294140078431689982177656213150547780124333663333423386339401052070936097308357784939216777868615791449709601338948569773361886636909335735032534365577990223730848535738221129784906742000961641705215062334271894494388512005834702046234096844455001489914303458707091986875899239001032570996603292588785093709555224474890323701748954314785392269314504600537276476278486522660248288342677423867824962521443992982016006017773906262981963624671003905700795751113463279396737728869945851605681586053697848482057754292683935907992489743529674604566459246588452423975003601732130775175656515791961036128073594483040768232100669950259417380904716250672127727225951619940715720746652084879681423866104885380986771611950435537232177134406221561540818035516310882189415105217580110196863501071654013663095656777378694455899058287605959136199193558979292516660299602264767672150928142575038659706036503454087046793791303436307323636467408772208122097728111799270073691830928741972913510487162012214237922218488984108671704209452101703173775034864431389394350285071318502330672832701482950598032620569672244722413881365868435044246651404919833587666725162726996034577179232876645509200300317653809223400014774789028581865572021649868985357527162475208678130916485388295495601220859323324178740434015966323286970976986587265389745663844803857605543327990574250608394369720190659068887709375036417338157439803694687579551756459475784915282263246695106834800441635204036469979342387315244540426939986915586159565686937207871454813442535178573546687523133871044704943975330366968738112234821625814297002024972632562944546520842952878200144711205478041155979903973643937906486405091072070792922993798747594800615312299798770900986450816155087066131866465491173521061597519295366424580064994963863248618677688662050892442953538890173968974092944819242696880641327272708304490628289171637520774235407142173675974368406595936241410429654161909364341409688184481224611411656604675758677569270714370220813524757506015863058567513940074144871817839280130916630060355532083187777241022256517335215957801397337611713078047999992869457526482034472028385986796102028721164707584490942241703497066485204094474067548333378477875620495007621649365649320004662694167340373011554607299313976005749463939367357297194660568146182916838943127159952345811281221223475073415499732685411441171907620702261759731508328425414495162410192848524531022084659543332226734292002111475936640518967218760598151233537596263623220229212834886328899705176230934047247128219750953037344244810975613346926900021070863409968149231263709960670980037721856318973145546805527110755308312803932795213041910473566345065887232200173931216546823877952269574513240278074762155945730791367413106898534568306399299101235807427039793752379304256475213526544947561479887405904813301390024868539104609809614670739702648045674158088214290221444728626168591988708124985385255438268721376501826420750052570183932489869427835936766088966559379379992930769854704555919765012659277078375832131641946810745852372910051219120734166006941717396231881879916886754651432266774834353732706528211680925513443905407746606650821886483654121816689255776127626200657605276160022463459977731423325076362385206745549741349214826256156899338610012955135040288997660264527753624223339666514855132215969853218867959972250590130938027393444597512992521371975728246086254959839902165092500871487066188848004734278556371956236258375473054334878753418722277571878743308985086934978434599847796174746968967497770733301373810430477112442155808386331763536685882458642591233461495432593580934906588344769875338662600222260747362484962535972130320512897647538162766943667334009847445798110672013642892124955261996339178684531173746018585296602832965456638696652438647314928692173169164304815653877446965643408615549537031469733426471765609414786121132422215405494216573433683650389256189323803608580380389765911090971590899554643908922970741319221843678531833365177493240902382243028838884760185071563832271830260362052551395282921706612480719883559047267658058510950287817128966668766797311841254856442663872840643474501437988526032462891186231960553872394535250749609391646679237115768908624959003004150505215006126477780567841335415275799691413259417314131304695311601904319070574590440131337944569245954364553978643480016228534772353872842805115996541640436843148925978769222097759024762852788931328306993109789687873627823627473110661945293399356649045584573883745224870206487722107838608347022996314168443925879989705291433358365733350976010490837862455397524730835212914113465111611726711213252850911994688434807409747104126244076058691388742314574711452518168059032391123829863386079040078108087017451151073770934422764528454361602061763384114909151497368990579406360154965555833824856659664429681650885661652092242926499129831145839444461603638221343836730010490436350781324503375024040560663955095333845684161163904021670293601893984921301912964408158301175464085648520516258218962838704985002277382799768720140969233441230503236963987397454769614173828075949088400828276771400258064362345759118864609240522160427289051096137523946213346135445849818635776263811752096765310611022453090494462393836934674777185138940316421754207875139967386040175736785559645705651667840561654960974491002582378944010841936461184182787502290061088200745049273541510483782705754022545114781022181461999433270710499429409611067770886717919707607809436605129312984841708093624305492547836259780288675422864592626643391557444810071299091504530255855563725155840590026601682275817529984386797665320635396818538989319103321397521579452337477291776068243458349500871759081560889037956236251944894189564056190106141015782324910622239880014218276877755515195475964757839910256755295717286676758646616643049911957111175861822207257249276436275001614348187927853987299787971772400734394426837049008319024011394768895375025953762066353653386496398988473076120112829306852799839190105545625377160625451604947807483725681560313742065860821622505523630962787522702472068217943025819417330154830068515956671396594556358043555440197342922954891207315646984661102195968540075629402181111352481867530832377555968322601501229001175487413055645362945021063439910068434418100544341729316385000262511316067691862549633120386143393799661331637363650575115310648249731712324990153964744132675769676921992496668170191119338989916761230152980827160488381212641113463220452553526837315353303772567691824295829251687477689654196926683441130378470928268770824143310988140099103183972222829301017261667896490690707829896422998299603980424825653517311561035853628444463214807815062598674445203649623969082238895468443457109852526830047294586157543282868889128887427260683191992659231647187935366172059288858307807543566409230295975963376800845848254433691383734962757149209368600573172348164688973923614897026913562599230785490306542634912155298545252496693685132575091590047171214346816542494322460041513990264046333901439836759117198830523115590216911304410741645167594964186552626054660757562504710315965730213395930269902859712054118430775379168601526337015120759835117511410509819760195512309059413639101636083029209914473102157330955937824982059461860016812778760380460880592600809791055757378562897479772663100761561546649152095088207512294490399688448204862767894039168197998771237475261103773370888812817902079484640190901730471666220200762462561760677836137534193160311397608840332783200919127097177201489485605623110273749867764079893108730011601274505264499561025492985676446924803605136938606812431088180417029870479915853594346906624856664635483107702552755546077439878350894217428060228346964289887219160763085450424504156555356815189081593063228642198266601417211668118102882633096773065130297801137489833821419990955598369449220059428746054144486701406006149778220327404894213827181830028291669921398525917835660101512327224138813358588670928347202467265593907113830992578803242485267241533535639247045893519125559894771763639544132303302069839098186766400212157651686297214869066506808407841604544290710910323494594353351334499288220599048927656709994758069686156184658300257992422204509839985737186666077789989440350370992539446459348330212987302414847673532922434381862388078561027330766947022064715911269082275484736981328195705340883113279565905281225566456802701689004521165066171651163024754541057029835308613802593978329645910867215619493953609739644079056011687451377699695505825550418060010073619519206706355779833487577409957155337505470848595328609541113084596899493268464246486706404839104800156226350540610919083336970786955516054456805939846551669077558593173243869005440206896978624658665260049150971314987841052082426949628484017217914225578522167432788375547127336005151229906085378518453425033180745523161796737999983907624806122719839496490589500641512465844307131908174816612808159651144901537211468194004215610723909560265262225423915316578183042761226580570989020177721144969465681078006627826111572125717019984796491945951947890609540779729667238516183091574180826493270084531372130226917192055597045045322625079256198325954061837360363557636492268110191471711012921352332134965080671751849554048402484794814121684235796470154307697598824561950338529724843643972172074230447006660972665416822502377217492742098003675025489302957844789404471297277118179842123963276190835055805125291288453325271187010443384063676292897753976445512296514198206030722266346763589323147655588328841474925670690651637738669376482928077558773952610916537781165850753784282943861758106361626034693622102109915401592688920454248809007962203528793633094264488628312434866800849319938007520104466226032862249238665070376875263321637060296307338476821507239725221998681925734322944780212318265608633342111650427615741866100353747481458830310629318398672056589416767415913017816843257089419474003541911064834425660334550425211450603851852490611162238467546045642047050166212103456853663753149645314857331550255513354477218007299237038054054922134178827025556555399056503374587368476430345802690497948716737547864788633364524192260811751367524299660796472329945380256490295397563304089395845988263142779550681484898406371181728036828661865464158132185847575828074773596234114201099503197806208027236543828698000974594485737729498184915610030617204443312740989287262199580111082733552144307960754044722794604385966554278573262740341398799737534094565060039957920228435337068374217730731448791118920620083608979081872240434871644495089136638942791386554152211398478339061361967529254864944298872072394594012718086362287273105300708408303842015424706561055201755404845445323267910638538197575320192175228461449603905311318570504308472699532479888547854072891495720017069288161532718917675409234747698053490861428555920483040468134900947605135656920070255660974330763478521364686125772221990322675413195794455722799843744646064183266089260059940230867112482438542187203804046583721432299361308217771402269000415928368545189582531820303783223836604342192183986030404038347724172966106847411357096631276289577052553319288403550599220527630190509067322454719559582537585078585634699243631906747505641442096066897831419090364395715359995573592870085532536255130533106737636457600955964090919280093206002025060997391372194184921262642110608203788485474226533534117282237101677384194328511240850844038976012995335048922942134759369816974763280735674132797990598392659385391670579352639652753873443375593065726314441254001069560753555425531931244099913397835582283749927473110097603809208442764333260344983729768976482186111632175380572633631348350923909700818549931563123995020581658419781513161925006742551846634663087037312301170494435915592393990561777198251654455122971868430137466806889584660800085518632574703930955653900964084699102567093767418975036870169250364342415575235330656090650664281192448317579590019511075192518941066036885999522013397608939885987137459458981001149993624124665486290322138469285739500031461116893377992360647974573832642470525359862223240128072305268420976094775990008239415521579606714649243201290419619410361977229414568560306938191629241769539926198141851378794395848753604724538296339480955143795691155259540265620922649517811812670942741039801645028495383083281403617845055084423757541421856281185693402764707056578335983498913186075282191538416090042466872012609709063287775756158647125779232604758631500867930921758985926819694840204979515059161524958854858492611563959888584552070978045052148659013331263771966186677414287851511567646932780367707901855702132579769561130154146654818853935013807958044946186001038675050166957093631687074663159681269918197943538019001362469060716566383875732878725677469045883063114573948719593282369764051967354271963695324896182633701762459104281399319743391804695233522814563010194308679153495512934709757653932080958216338183160162126198490195077580496712689957727475522852319497526262514098977040749892536967681217572404700303033525956248980889507893053878860466863315661669219763386579914272176609370740677673403653906497375486446270496179961915647499357701138518057455251991038976509387140055467551319598538377872700090978570465520695076797275512770544580935898226175951862681018602679679935700717885112276942059690899070294741286641215327175538547766448335600998057965724544013491041407996587165472477469015429088528917462366570355537603423484811953642752837028487234757767289452908027198206312768039203944169898176968279779764560286297896176508654847190153309361034770577822031804146404935974682365427225789206719826728889524345781448799050148439030908883684466822682649041933009390180888357190641464492309135814097413876494520401165889976150731417740638215065744237847290832042219904474743846134335239677966338918212280480952534270674632803312585701563871861741135361946868225804715044714786182117784751401793512489136193064143276700187154894917572210417646684688207598177563704456273884829412841164676127048644367790385124147045106557911677416350802711379158685647386227305433730558912545838305209614990589663630418859320564312679339947705887930555147131735624183823169421784374254844443829131750274885384079176644914285871362942345849434402040081144117520321956600998074722434585235286300666051250877676789027091262720922986868742827071714754941288586873697386560609212856370045478384162690702465243972508823018866640343472982999152397209684844648247621525032734575919793442389252635155741102830304653281164583979321008616545569662630907285639368248075592962653624584547979542005132317908646122991970820586191708402056839398581080782719100730911337813890076399501177381311792491238134800746124094771354610102019594093066171889215554256676814570112844830099454826169271118982798292273143925310866297160652557483054429220070624347303359863611237564913985981530193876595980422881934887881108688508995435510954437997930775902622954449531298526512310705614257353911130972505301977752919686145914429247670654079493344943529114124722710891307733543323102307021076207870552922204472013573930284796491331000940546382523996634769939003947789619718675056967928116333172411724846964683867801073764387141200196320090185531332323357170306513842593531130501137534844526730516048760652645484128496989043910171867710948617333061214015395597576463875418768335047508250130687145643927103187061058113069946965853785855289186751814879203528984752829670202210758991435712148397017327174002598040582684198220455524278128218405554402007523972053465927683276533074207147685344380561833993839092355889454131783706351258716663467733118141703727186802792797828249166290048243077848004009448887129929341463260807618869089088183472173455158138196813729956328326667117147616020617038827828669667202381617375159054914708549459491544620302267706949118514441226094700602089877187638241252136905796942833953417255847015606173081012123576010351877142392466658549773653251174840918332689094013157199493300267303146735520122778986647743136955276649339152367442513921179871433264732426233577446952352966029390545039330179733052302055663822146161703209757201526138533850395331438832623379167441140804573770255170564652892347954324243559789379448372742574226797584774652085057233982963794906213457326912649140102700237291961129076442343032241644064984220503221623070178323693384852788865377807721238536186030582147603558761800817638342584993130169079913188376567974358725695711195966708407180056767345672207651021162692609744985840893688990556211605708223383644961018413606008125420197381361629112252502414634414259667754447290542270060004986598029794528144605436379841377946562957143639582895024308806930337281441411244583861906381026558441395094829740587206824974088824440168064796106684471249195896106709227829698385878677084586900644884349369081992456620156438125081854341498275178155564195313167771501319213291868911298029265029139064785316260420591106615253481963898104398779151054795255954955353370969940821848886313239069867496956863124409676699133825770365430914723887008159958400067171838736466049561124638555972673034530292109773986313316604463094356455865725398466215355571985007031595810588665347180068745322675152212788170912252727737215160812772372014997025893622205302911546652273582334890904557174524305131944282760211375349786332155357768171988888587493571357553361269141812424998408133911111621444620596628350580794581502032433131788570498472788877148278116256997842095263751754254645646271898427632304024493073332460561854765105999859917828786579122804753644045222397605998456696887781866628517726690988159878009684828312042888045587734481258155499075401609334339262662590499133909409684086911675686364169776264401957406791301431359067250507040993941473771986756076445590465951396399592896931401221979755210899124992306541703446013372381845100771547641380465632349428202921597756483784225441517638721844244608955051114680811174923504391665167927139392359120174326311912440167958081902213383360947358432190240286444595218216694861910959450611952468203954688505506042235643038617248330639414727595299033744393976466670826187621670398846916262953406670156670390921246570097660475534257915613007084414896741384189060154711687506806510802047034825662289316910096266123797270322333066756780964899006582973437423438204806681942170396697436014983488135529998945537186008168318529616638723596554197632000433850851472962765442553371083045662456661439568426369486890316361618438372236397966397101877534074739896490809420913624897020560213219867732083504849135117547749123032170552161125416451460895872403048578965473101567678926212324054605025357090272511519001591033226845202839875036915610842595356205924105518200638761373543032684034856904238480624257039252914892510438004582441460206436630987395497862523257452801304211894447496785474890211644634149120163349880165507506029150388446683344306501695154655617259976040268140585253971988434979982367614923578363835346053519022610839858053442706641356386227472991084276773410158329023261017867007425420457568636481824528979048623049253129723628410403319439462579551942722158705276872106182427088237260971981984796060136504443472708731132314210147907464402178694473605317772167827422042123747951430378480542935782358095838387850128524773128911719640633769314512965485371426665456076036579670540318520433028712142913950167307160085860160306166084336442465043257486646825390944834063395415093956546242654438938248612009837333167838421827012054288902253248689633432233378413593185649673595159316792921529813542645615404290854392812071770794403297331609930267927854999219132117001921053749166040515954537736683912351593127660809114424003609562553062683068547650285460562934996163249550733960671080332305259090041007924984689915988985848042865172373614193222613224208580168029415001227416368688607634240301653026047847268131880685172283759766589549551755419428861086740083552048903265492914365369593621608261444521925680955511577985404526521719898856905482265586287033414706828828190567391120171632218897002494937438137247968728823270442093031756902064573722365066720354810923463433199893561019115065293992258610869055332596294697725285705410735595425444228975832669286382081791612327732580918086897149388004761035257061213279140680304880527505470547123729725872436234940559274705897371670397980858605012383724743743923268517753064568553369746833420430789470341519240029486746953603629417383463548172664534498245603457139767776551046245234225133054324318839872239340086537608674369217422197729556694838271538699079676972016048446853968597257051677477387663804872987435369662638572972757811480742793586834353192484046105373509073027677793690601312461862692267281432600006493437900729332431366024942887695633481869342213296890041093919456196670828481964689964074204686232422494664209256820945003956658189966546219363063748373504167916647689287015092903879760661107584762854459389297718533100229802018778126166899527381441200425322609933957087729265613732532324389607532971418780928976656086836057482039089994540842214669275526592756495996428397808982620457809539225719099719259787818398054351150237906065229727105465585597793497190645602525279823509933419815398150805732374900139158475512600657239116185244172083025507050433771933759595386449937505519186881349887620209454045694170423991356592549019212171813880888132403801003337637346378453238910003614781927689470787680098911245248623461047672980193743254261726104865313114312323439388991068304766189488380015563453388728314322608027423491486676923805496229577677585999537918157257576983337316724563738386511344583904322135665094654603917902466971659179658546024191174988592717596243254886317056205238736785482301099073859319068504584710219178484609905842377849892800067666040865724813469075678517945463294978240174435039952326946863411993769285658473825039499656197244284542054013952131630441050030615734941103030495833450524569879968903141758784988188926109259208412524205268098658252899676886108532309442277051298265114834439618587679573738022372004713873630918452577907124824314828870020560051314063354701105191935363181807405364885627393781162633874813880446481537274821715256945620512582715794724437547407948205432626532902119840501082324347756819615490083944122170643009561566328161969755672512298687259310222528778408435346321909747230945481982479099885446614286818196417424331702120212066091998998133775451737260609072090583363138411990054849760213483691154961237056829834062603425670260667089214119079141369097898888850591359574695701764209042869931712291557373925547056235989783223796395856709325035826215421671006523454158968764674729451918077397045631632414186014804238729011758243581307605843009331037727439842253354854752304104670443227179171601778206918249627917849470961885985957790452620939918155732296371882177073516321307599147446066649757283531226722692728858699949137976126624189599822627622215819485438005088217993831910899022229503890817544667624590523146065712892667601173985089184315767898083599219900687275536047712693433063806438656645592354544359805428345212205489109773756359108466613425977247875610618818883484085158726042785150102294218441971838176910247658518661436605408930555792182173268526936567513331637614903133526023948006352953046641007601256761001592286731470866721577535279065382598934736434991826838017226667199077766475334880542288891133223504499320617576510894808978287756299557767453803657307711399062433177367323154000004717753766759176026703374180219301165207190356646461706652204100565047707876202862642986194444151815883093108844867685283772272587317733666831344885083987527067950448241334775168073384696431364614797920654102154529946659587302658915835611431123490902791073613257143590015336871400456459608009122510675610903477405196275094685412266416352307329564826345067247674373042771923420407130771463587982836818838421021112995273391313625094489560995879914711340065610680288041583683615051502270708096669081791930939485030655179684193420340841968811841160452817720414683616348040380204256853592433544668013430681792135924992377882440859117782808795743011693174954259338971007266995708917446081735916398331675503680599578984122513225531065276912740873476755247881045595399558463311512650010911083708878937549168661407870594016386543634959935396962200603011187086086232684595195738255890937350958976080195000205042387731749865351261583777406253415504010187171285961719039855289722516649519612182575582297070126041231416641344537072798028442170276451430064344197418149402782480423497095804277076170879481355381489366577203525594631162087714124905706599082478980148223796300030591424832645136616967993606249499141836013650366689313228057879765400134420367415771725571239477983261382675300017616057615704017887498701604711612392555182716993578938715372418687962832507464066357564224756505075639576751298867711260759642418627961651594209169920242498321745830837606119757219126021239223085204154049232776184974917451825044414618163823759127111193661205738654713792100859369045217949125744276854645469696926886961425597741463077317828228877182355453785950456826221995433117213124661113114512089419616262830044246817689008925042139562999553576601108712883692487136302170248421993924952966802442287114574867657746793700579370803674973710531350221628317327948032961914405516098330174610187334789788020818451521680538699479529515122953977675536754538556067872175670116411653625928647821769474441127917605881475337542827992928016407106876564724112664525293299672962805495778444636530887153908370530648984308868072913883055610589839317893168671149143548554504992552490639001439931768606059608465862262381498497482791819652924493596058590351225849262410447122270125511245904302553379683330425838715562463320294733619284914249215605854564589168972208060223500892687871680448406885312907699228431886212361554815793519079303182474732360842594594816701950160833720406623531605657463525764834591579588356604268091759036972647733798134363294737249690242978136590045628595548883812608674250948503566505626909289895242352069211587254485801856912049655126271240112988275952605258062826608044907012864158897903436751184818455217465929553150215358314903094537919422096283478752375693875657160832975759406465227381660644602774960334572233481681510328980983163031428268421453949761906273908978363602280953061869667800144383270158841952089953098299734150081641784578519340796481932254421635251922006967605440870884038995421579911636461548098852723055813535927897235377234243656583194881635234290648903064846830317569842935828996727595940360678715752626784427966852421415557769654406939808983771759685020673775098415115314259551756074848624172165254663711833412005738463480729785348249292569726047194808970232221249294943871475624034691335212190906927406123589433213781818264216872341915122822366445106152108222472918306310381512916519385920080901147212323128782752893344329712029634294310353112886465974233561732680763417103852614775713671631897617918021361091832135835341105399728610495459806135894825311502659938316746031824942793666099438943246458335470371574708899947264349830279917969640707311570589726079813732550932010749381233825156620430185645046390232668218424530214844066847556312925895112751826510250856956349986096142328630802228662582168807589255022780485597412920035471814316731070163608855848321876922218737727629705933275973417155313938599041382480987370417404184689878421598123905130716127093638901335856790482274470066662366562405870761577607845117313260430169625342363573869451851106086855414707195286736138953727553978113448948847427832650894646613421853760800379394751547069120758647653182863002890921403045428547958330717394969619135631981663810260139904803328547443120707008200393704602007427571510481706708873425748433411027514603002164593134393651607172914485361843407360930499180187046045329303776456480804521485520356768825638884448542061560218443916450399333035631317322614990980740310564547773475190571926252140774470722852909251501088713577631825643498861409975610958208214948523672070940782194410986836351132445286145368328867649255940037217876947749497196291357974253020219262355966533814770532315971344224567119033741082432827790755062204667991306156930909921518112761794828647292532108921538105608016383454049034050330031377415554010400382333858813519335372266980807983646027259125175943152924395210443552936981952855964883007467069372601088958924654420478298963224922952606272309685984312811908470925399264852697695209274525784087332517371103662324902241634026059154706840556085248061051564716324657344079732801789664240918533320995346975159434254819954089882129784410053817729103038322328945220313713194487355562405991400561089191758389792129403971231556998624834377648015005035453416577191792365466881171928043838144114249981428131031843215809968616856847498276790536983335595041297769955125180715954980233596168113712360831800759040535254661264760232576856063697221459572214945046582791904151700459509933339560798209408098445191824682451541091858169958808582071359471425212697538040301016839774197605503796201378983811077697548047376846803641812302369832023044617058935677682665812506509324193569776934716300263599984912967320483469232834243793261139527921625101490089145740274137461427534002856262867117420072858814135189631277434639224437315006916894634558720159576646736368472710574844621452424521501597861133053790558271231824464169584458358852387885121775922238673294691487323352614903701397558416253095082366810332886257323125726336209517888930851708512237820915750099651744359693068667723178533428189917755544503020506028960857087066892780343399249130363338764515823786734375495619798288136261475244163198429801367688740236507686765354955644375411316962328143927320013182749275883611512220264049928276143250455045976446917065697868010629165069195873376877742236645083573620150645783322695518663486106669957906542150126504747935215332500877464510648787482943699870348691339158041949834131757389353249749280948229009439409414899949942577559908754160249646217996472222571182283532895216074253862452153729461360626673335663175449186886343109892148779528221571848900990092697689571164139823371209625025749242595317715918184260974683780061464218135257800941914858661924283164877480577669884599318255698851390398616752329680477945407800953399500712867791607910959137685692413182811322176841990932571946266280572443631609294195783969277994896992700877255897619955765863107643036746825913841507898449086679054414416031584496806272688829414432912546313573955514900860736570291324407392637887049211038411131489093271833409397501043877915383841644464456434022721898262986808989257874408367171154545049878331888010748340800128030380639925875095248333959648550102881766156347000335465387870293820070382170976453728884700146761255175335840130139749517272585493718435882158026291762082226134069557173734652506284611548826807210402586103698129901581418262071386083326644817640735815271980487502937996367869555444389958513544011699671732998155476993666030234044126950537787431717874914523578174245917580658669127699932855646589551904984515787438019348711273287662006530341557066384881442713572222431283718890018573919596382855053366226300334199106935770537741957219852491306055709600810877552864047227399366813789639535289956473499042102051865529002399355325676486271521354829225465363639222134952040781313109371858141439716778089520932751811132662532319086771805832427241597605404353132040752366537799470273073525773932639572056866527858977334525250501742676132674816382132116377038853711540852094877470686655448040942461967767405887945783493304236394917835878461921381007763926719829373083448363972664608663201156994563575518705721094703873959126305857914871243669600073308334501477465244045127726223893943287120837014890892955518527793485562397653563696616761448562952992097683279237177487177755926066541320131926694952538738451506500429407691497140341323373416071171350541038697392729452418334389896888228678884617456860219986191728609878817821290257030078351830343927652761288851524197437191283312193043390830421046045836587584752072890868563800299917195411454722015526333270487931492151927258733290710673594159888528043234105779689087965432624090075739509179667755811509772402863686105823439822841190861804173149472689864555510115014786976711680972230502418371605982719504449414402849951297481104065862256337535979408056951063886234748062229353343291324902683258143096761566094529455405254192464824613574744442962058374681427360443765183040611825924670711662814752011632988556328384573440612705577818171247094383163661143553844778669026740224122563481120954162570843872058210846899472397170947874264430867121537771318396065180638475710226485980794056624417986201436644291634768097873859894894578429530786719018678514764501210853743557243555493261546335440013899775405945600817358329548409294154823932575472358914966928639039421416958559315780316984688182431519504428630311482106382991242785768077983363148172031188231565900232836374301281989706160607110124994479904378291981382066528803274070080950176076908158136893560343220585715979591815975714906548446008965296951022896177284191768402162607398280346426339624352648471536361577073201139136707330978490410842886985847802976820012270471210477968786811655851246308412089580048389263382027690527426576267738182718124416191270791007622907801949118423356550761511605416444507948106327601563580814499629684985417865046748718506915308093780229914002325192009018612373831591213270139074531558262893151253637451725801701180547163065287360859713252676526484862550400661703597719731443413863719653811252822771896017859461042682338357110699113971404929786764255134450963797428211416214428094033390443190846358397221063731449768643386838508452663228786507128065193656687960801851905988739456590659310038048162076575637278218126703489673531631791720757377577840156660724832988500741220804791490137939763445391531149388418419417044869391903483435369830065188665117623933004535575969919690322499270560873865908859608474575269032820866015532932063239497968266338092867654336567131959612763784072163632658817308881290140206196134817356025106453091582660656650160188682272131515027617592103837615444086371483935476062873882864670154595703529303495740979977441304705009580305063816939568499842906892029194829562579902537344401419973770794839511863433718862939042495382811171135779064683091323181789932203143595022384884004695912812262121912477244648720194100932706605685022042388441983232051636761478733702118877376535661138302643178681378295532841445012814481647366991336519437737291337855971652817283241967976381680631248851119818872561646709016983038799607353641940864648513684116884488265984895219197476197106376138962204854717837143723179808138927394739371458304003414023860922141563995118011645004771954878074511657000832806889398088243370175440921408740134942281528594935713872780162190874361021087128759923636979800248570751028705896429709046692715906048584965950964848149663797423526957398881313289497938159048698533195996584082836190963657918650742585368354478810878249758410435933378318359621851528847977375222906007535997215160717952870476814640176835454807287602363681387751865571962104924835610374701411511833915727730612344455739170653009988859072202082880875869576520173583196778217997969716591465914359617761170442774558886702412656616526067657589773469928760769090439296337516032673648635260047593107282880242989728614954102684355592815913693731452311671955160991222436119909477027008484685554916447102620340089540327466476069313601819945798796105593328835053407632719618886983331327323079530465372509383712401309359113651165432102489657560928288818033808295027439821596802520973201585535082309887231116275513635885991701380596728092132628559165510654740492551502637981708974843989511415491771179127683566601460026874233470477308814847464225754616340428468137282232251125398022885199960792078516953735398933689025893283325402282352703996451826151382959201403509062835815989966141487230808422195200170665409446268713230956449916874533915571801931588619582999844272403541255317325027662879447363514463686262925801621365078582117936536050994393492083491696360602440759963853563042007329886343276157354160420550971221274485131380759737567653815017880233078292077859519032932465369737549706032575175729871396852640005774536003761332772441878494860573312659145772178220691728685979937975560434816911960737788416953430820662777169360534058188228561408064224687683522113419826926514622355548356228937904545674111044435290522290325779439839173727201846292511838791430603555444456681662443167329347845775635383667203372873120377128338634104769404351668574518037647179875711010594304274373439975550869197427075720576740029578742413763467470264755327855552338301551831870242729774919145659763565590245871537829688602080270342058714486580965624867441870979197062906772808197796902363038683801198409499081705345019255263175424064641298313743589382515162388669730924442959893464983428539841706443615360702557563798033912177379395995861403667137129868739075768782570153556214930594528076151692023146181256699511766063159804220378334888017508964940923226910089684412041638812386731087577110496764215844424715061148219052257275479124450008699232322238603334800986082061161419295193644429120455690985921206700322949225792467847316470410725445975026677146458336733923024683206799513928030168538315202109355331693249900790871300362960441325982038571596411842190800637769864761986602116039533236754276140711918097283929831747771418734399941431819213014601183367614763526926428568711864309755302676443667854070434363374577886576212316703929809502494139760630582776563529831326351156182919723868171386151557888329268226035002515580879196325421399083860926532655925295492802347051645568374109744956069024957392236947652734303534635277202281474454203477212201231278019366944999171393331455541664468247702156193010315494513784553785518701528625307045081601424393919983607072258472191542254250632941992140423105482071753741805411610799515953550143614225505755154421097553970711085853131631692748419513564894637299232680292160396406084446067970856614764251491072828391736318748792828423016455667498544897302935897283186688098982329320363745996316598822903191977171801137016404385992576561996838543302386543633828318510994764741671636986923036081406326594866134048926412156118982557912694023867256733186080349244922513666360981127294927986654180278722070329197759571928915703865905252533109690365660185047507919301338684389636356944569420209579246780932372900420298752335942811597347761004612281249449587478032947806189578863904045337539237581860578033636459414835932012528303454926647787062963065083604993019587826959724072551154689846022950067512207348323192338438340512614934579782397160762556739605914687953853214946552467137552187262695673803235172080353783039606385663067206092147492678379353751899350208711262525923747173972991389140615908310705676738855101696281832541595306201226906234391891312714355819734287386648185976983857850652326397830033647567885216560536049401761592108428732512638075053672965324307660659249232618833107454172638461255476380480769413502534056225599254136599188542494024172400784307510389125381955317361157200418693799588784269090685910641459885180519760766856397713869884620694096420722115521961700907051249019539932546221518406981656782111058406261831394725241860848251596154379572684596863228604293577973610521435976298561622732068616107021253125554454203163785019685472122200722644315605653191672526603178098146657568037272112865774645314804262626681779510706919722222988461034139246456043983088035664274632193957907985400687533635909752947740505280241329293620937736431550448060309893364782873246497773525671682604512577122923452920847706747920375548600145815659324101180120870915844627106997938858417098193370925814954328307034446892757595543985433578088787658497383667263936063421637406567875368134628048023459889605576443034065631378620530677726018147878956394500268450534845553466533682768691107431452781683272096376348230327023631861738057447189605624228823887137007497452898512083968408732482871158703822566857658911579421978499430089072517430811182672934225718658111749544993997383695637589777833634965652098323083514702156453953195693679107907524875886479441012266009271130836561713546047908528303424130773557835151972796469394172323133858385788410653865711352148657736986727706043258761087166912171460006567509790016815739987278880717388655514961409798466194350480246657352674986292892283430188107262415787429038710779266778326845229287957240816120307287307556687687538197370677656427966176618550302136583354890970333468488003236149152483334185813167061654491357080314804926474531382887218664329900827684053474153082304612409747823158421496840680689989174353028386527938206968304149040856482007205930860050463259343750923623850092661165430274644556237468603159559895829218578550731706756845836637331747981310059813710824225264924058324431893101113761026851721775256608677015182698706564253762025348832185765114833002786864378554251392308527719369015317518263640335927568901540703785477762844329810728677530371483620478832801507191138632389741167999811227457540617253371073592597779631288265169892265782723005967172509265673654928126209331568036681590476287482868236199713030717935268806383763660357602281269795253710233245089756932278474730894725506339072720152392065637730146879002188862869677590564955630843614796807523014954477334142583524361089182255077077248211352941001282693158036783506359068197853654673200244531109858351961626893089687396862908117061078031315320057391940215700594230400149558650864785182135773456983780936964952095585779947954895107564718172127684433686929294877777195473723824247939150936076377445013838888481709405765632556599197276009387924358177054265170845565740280837785700666608818498399730745356483552203373904814654266767189032808066700500486471917993040258426198754583733169506450639981247575651311900540427544651792448998657986802323740568802308237690153747740109835196629842805613756694168284610509418875856368536387083822526330657246052801731766325160902549997551309194557249449242370449653545387868441941165473258987942600648984608254016938867083732982640881986924567458991675730724157470039265116675970260686831404782058121714758457749153313008429789108344226054202793320153018380854985802701942443986746694338462002678431815515063169728819788843324915948163726993411254803345695971955381421554563751306689052873782168700127365378523526320049746018348363427979858326876860021166155873162421949091757779666554363114714503311231935107698303811633999159421869867833087036145577870506487321775103851745925776349523345092107741573907160371193366553647971900898949805447458402366181342602153178812859345956224528193215488871081120371423958692199819566201932916864833649062320988607784269688081701581038124608496323392970468354286588434613227001574629089058237203764146139687985337237503707621851552270452933715727153473684414086744004635840695601882512086201765024700279705433322218865395287862811066293721475206277374942895883545778989258066373373160271973717753628168727119956474341237087489097248764752304188972663556928370498119571952898101939369486143079357163674953062066973011756661693733015331768150737899025455024510442906967600409642407640847954537656458978644741904176507419106036865080732270414409876299287865529922835846186432629448531372967575297945608135855868732313859626764108023185548296326290626983257381476003004816311614720600611015534480684510266812282049024022807901252595253035518630272026422804684177963768594945978274118764283582082745815378721034046463661273443555389342138136975142842543385605837469833512684753445140978138202581809827536400990368372958558146479877015304865632863767214501290627847826927178441881046083829343309516576836776338724821484987116367216768474072319223630689194941519831198624806882184988453122229968908501075148626713561858234930509161358267288663456507849675477353616931601398365257466785460758248885565636157713296764533042389374301859001647536182889445629734642405188543277973042025627229188231673056800278529652744327501382902099704057470739575634354245531720902228142798271615035295073501274479151426742894516978694121208986963173971497608658280610111628767230773147237529301185909997057014451964020888200107023474184114749215569806546919578891626784079047300305824665428980181536052930324292984580665458224118058412313354792205418329057001290672372849572126434670470050781305204047145498617259709661170102578097840673420092882054347761828093184966931034588731136962594524051889286856568249327954264359612470378765908043162836855150361100508190504596134486895595210504799551408310641703780473865248411562760296232178742972626674010587210691997737726870007831123180281591507069024646678845463009278095946964040844239261562463858137769123898794151404919362092849909985788018174905402420776146736569862991177745400439409392463682471574614545570812027268334576793852257840553960939921555425416770308354373912285927801082325860705552286527979352747813999112321021511948089550143577066397439214792320270046868947510821486657963098883035930529454022989737228379029054101148577252046077800304331038567657057124274363195725090709051306087378886238136066888658201314519149851187477325681940258215280306494527389486781445462532128474944222004133283387852409470011894242163548842625651742615015018694982133440755194607219646055600253471731737575866584898403991811536744040032035790184558997567222328701993117945463118686283949620918868256317183095242134929874437420094418490713022438572426243377559487589094262726793649915646792463941439413017233363802700562656497925572610065892610158100506685422387169093542561229916435966614981583341305983006697357608313963711854428061648476011277410932223341344988134674991724943464999749765702916951008567019902303328012289403775497939875034991777820772681556782373243573018587131491056277064139701632350371867897326903375911486335771186823521770620325295986174045233594762157784507012765826944833463091569542538383336406837559668753820473640933983656570999363739402639711901530013002134651474953936590019548099879387363653402224016621165506794535839123613752726432549559217127531795781887889763722434459769255226268354924042578711517185847489406202704162159133762582357914263960784187046629995764582943903816515463333292454134943774711617784064703081587426144295518608649771254887112296464341771735740662031656377633661087809963653179271644643491718120687936867137364550822431713156723260740162747862243437184115682597003843529501248329575375774343078886844560697815706483704111276437310148264506876389198270957355773428467945185129413830705738047360025160117485054690249414777447141089519204378238916098509521526040566765693346458375342123168391761811166213710177670809760730325929254555169409793448868177623020946898513776163996721971572201041129907677721562598922714036239170040293419228691085636792122656877445367641190995362460331136303096124265027772715933985236982227735305546288868072718754059906466421433008414305741117184832134201456306253167789598409007366553497738065896104575890850256842633742786024970152589389181293358895537212841987288063858049970565566050599048245015568887055265123235350694165176782040363645783584460725144512147841583878939445125102826255873689057821326167418116320555517416826844955939641419261941497350391482029180922914776643889092179676906909460590423121447764320548193105566368326551975253671064499078448029924691623283083840423212249391442664315578329863596691024805306731118523090013034518290594301339842390068145364243966279166399250344975943483949553561908704972476106526233838095105538507737485527798842408180099465321552639155845360388535368223896520743072128071010256064049121467083059516153848247368008261909026775137693141241657124974134586502692915651676454329527703239916564739637743496691081390113261272807778131086607105498382565190509011228104231269879415154003946845437343785744004303476828689829738231649082280320531219679930429520923817982178046261872506603568677928706058613341602526249951632748525773620057845779105299013477229436440966249604417389757055511069266993998841103439137229308529339091583782928050344388027083835547056105028520698872382029708232295330917251531270843435984126596947282519606131536408814922397441734053511529290203013726582669543529107659153224526108494411522241057446172684167949279545253621644117228545404038680904036643562034330468959274352896205033985906146819246739043953553569031994070552607939991594254537981142811420458831735892634615995463032313393757974516365520047966633513952453270959686385143271010950601861570843801298714027989848302137970713797754381337391572188794216905434202265927950749350569255711968006939462490172603441122229835727304681647127686887469292831167626276108659731836741111587389179392841044213751848428858616758211272660459684574651879189537260992672980438932752327572815512197427826533551726435362889875502296564943130723011315280450028360213331750885385579481049535467509347456613337079316479082646134861902422620217144616450037065530333269949649950930932782042215278546395358718358382962571201370792012847835234347181171460285672071100074518682113819012297600413505529830541365474910761965959375466195388208621499350717785207552306178847109930668264692374971653556542793258013901641560886153238048060993183346446695161624486007557358435193799760039643849096443304048865850856196869283175030209493806830334047172548561470986393067851950636721555832017163643371448080375188625005858578710951567006170014005311862344643291319617763583085246425690229940947728044663759504119125880628095438683923012257283249732386913064137936374651289096465931882624729135336899744060834111993725207083127057996568821479935598533592041644794699791533704527001419998828652668479429129453193292380111872023011266391405808510856084973224782463368152504094489368613264112095715956530753269666769395820066498231125354573253727066981079242036824822859231157503067766467018065507710876796779116263231556903671265699670609943401367920665221143952227265326298092915956418711467987724017159726294195718268672566489857009387025761737023079156464595506086932805738897659994258001807175206608791248798095985544709637595655484616337154601321652603478527982182347306231728923377229420707006316756142145998989480678732508752202745371599705541305877587010580864501184018914531545244498786832517965531557194917639788264407506345882872528904720684702689708332478441991649458474897458609782070558772275299321263526258890312078924174647241017784261587080230503362440229962347082893450951254450916901132404487016574971648352072504338674137930588460431522374937331904899449312990035508249492312769461048786224464537646032774287052539708213278672651996211901028591059932870756718289956532889615897854269198037953361654990196644260602383582880177066653468684214805360569194280661550325900012889157762076329103090055571940588468485960088472438988976497854320136914428153424915842537130841957565521267483408121317799430460926516688967061121368716739734459941460038347558681127123291554423908550832814577620079841464014626840676641518376852580754105618461595110710043019987744428696644293790867778518874994443207315380551027265745913821965507832796036212537378103805319188179935312801890345814117825681894757031092099283634262979671638144890246527020047028950442117713864102937485631529887576968294261966955003091356362745970326883522427712848007699264944825693645024558982869743272353119715754469760057474545451829377381723036102329834175816456436411380767929157582627178079402955706833186933522653974563559465120939340211941999702951736600839597159633610371542514473879402004508639887086793307605397386608078602401015789484281157611707778976085626917312535942625828021332006973029228707535388461563927512020377822349663526889229176507941877473715236663841285577773568084423691803595220111205121993069238729987122981633772646919144759230233691457953965299310701414341018585900319427960091233498366166482219659778718768840858866608740225147942453590364920006749249680093011104780059359170917140237876696695549853647479729979752403798907667658023466291191655864015068403662122893417980071085953116533852279964778923080041434445498791981321452806377822475264352465043587484114912591529339006793468963588708897925990720970394449802881791705052243729427679011369294434487725376715728546077146806452548692319661005201925623440561833858221282422305887259964417966806642539300826851644586687496981606408463741814361732487285239069835005161297164456915742818693499233211869121309838476771583738697730294706318938477723057438237475698548312757018142689132471652492672508364390094649573070459483517877484306880527807184420155678779936478710039989426940759458712446471704689659624835548946112596584054221067771391372431926036716134079275910034001908264468390143141699833257628068710406014770753179172325757245658494540475420775563236900334445467913692180614577124693501114951478401870215393974418231439100661597266594304383552175171581659683266300286374212246111921052693566917126570693864148270950218381247514890758273264980096076452042903275435291166948370969328982332555680848401812789669897337818752356997046068252445331487200236265516237260529283540554627328520087995746344722889489053201753118484115896416716527933046279316145588180689237693547322053511176330839172229722597227742893506952460822829424978774828019131002546227369446346980948566968145700577585556365310644514732057318854267740027707086610574248904054544079614241489004517285602487733570040228577723447636904748827897849450564734627424776469836139854167133222889184307966127633165930523666004500326309939670809571045899135842687421798181883309111582279545038727708588594866571654964148643565125452414605065583293706255044160285848607601372741296501234288222346382390982872161097216078136237642030040822978156897276292665707915054255725759399145304339633457782477427717484601019739439517979498626134589201449483921356387066250142130635440075149235964823565159831526112225962302181164888741277808088486330894978237244344155310890170161104253586162509152949249036352062830283397089666994945410072209749152783855181191283836423391780381505093048204210736004755066061661030801870561628292832407597058025566722263941287439568594163419333930452503190309113722299834717482063246563237377235644419049414543571214991425612249976951214169532860920619587373856986017239040565935173539504051065886945526213020594622668485759998241679536221447199974955926892964278951096876382582536443748954498462875538467642455835487495033771439090693740278023386826738668342026876349702953555226946193755561734616451769143434297342239758029948723532561016420996204169607227822593610117758245612448983725436519478019859499855213662814735071765318842498756812011335971430740934419137462189426005565391064325565843432732229177542694130339952003853994949340769787256793324826410545588307915157655970784127196839765341179756757190714833744877695740909991756643165193511779183523440890326202241949576282446836930371092190330436906533574857219769418807837479689000787354058665576085162728475252236478981397755945470776397460338407146299273853545750472393840454045037067126956925769565873668111643453288150408861276080688674217155392910382205689629971265637469787298904973210529353277326001237547032959218021755023841093518818386534059461198981343528839477426884724861976282826256355837592085098703612877821594581500367657034404639845046856982346150098804102002457462108411322170819324736515209059296517298582674019052808768362198051760156315653160006984055624662490807038714215559714879087216407481131255816249568387679073559878414003931508359202756911070154320043459762175495790863869983068937804433989593919209764391916700001258917130465525167034230930700705804494861536075682123900163679227215345825502725100035644354953730947446581323928753479320635636148303535961667225204416911549158747350696696069806923781709847496114879683846941517736081844739339523810376987145506887863366498171518391283837303744967127176912172432203891613814633215984628549372889418781954067875165089058023411166527184762422348861242798756609159424820997683629936272631779119240255927689889036934612381241139345675796367663191212362114654041205748334148435837552359812416195811539638464031748596719053554359795898502417418157366030157220040891141879466532582579723759961098940763355669221588391294144940963193845529167163947040420532628286715050317532934558671667243655311897339302872361922907068583211791558662787561773166253295810842906141996923231227831252011334446964041675125645497752289798425639418277096354626745261201889202336724823250108590596205053707137579384363631629221389126427345404851291991392565499815391596186740734877440431074741586645992640844001634432639687881482649027739430620649480862162803812585483150247325413327875435950714473404525108850820047096108979595166918678431133839736170967924553861754070826778405371715190845289500670910386234638827441810422032375347030159250139487503832588542766378068207269686427036180335785058533812890136729506542799755417109490661956351081490212939928286929035150318570460041602729079130643384382504641847714438819967853935063586787133560852042889425565803789455462235614584268191654233216306931211342959603460042584625412616083720322564896713222513578074658979554996923000165239701510393727522785317004414454541610965834411377247059355997907714479842367306953800383456383746795585893875129289467408253258026703136714247828579286251505094767764799332337117112457457797025161148971552169491991005226932985904355582432927022146643185848538239323171663589111715449725385719275512299039036132946517197079824089828676469564623599296846913398449967765235203278604871280476951071235594446979394764318519612086646875672217606313471854008018603022383503446659459369168905389639994811646083249084606787010042884548841440661017618295847066974282247554310543611487531170137971521881955288723303542740390127514595000787378163693636906842092866933760026518269346711057627498968605228228250129270585798697689279407138831087280983247612866541290945450021236193507110502586042492427390998351521825610157144150498254242054913005190225085248672641091103442783493327877213843414553358013183497520308812826832576801111283269646814598190329252006307816886682832376731877171392800239232297908643223503410334237595906787231115400666789927777129744643600669525670619173990102803410948650348557779822888475984705159590892710248070601252545552433234848526216382498354236627663037726793593776330463472970830304181119775307542400886987516018056140401766685871587079900694455673471585747510298305685224537595720486233102930468958766292917382772689722068492066681669853283015005555462959467454715775131418682369476772946101897199274038303553189374412744578855537288357884063454382856406219535853652717718699367572594299354524841613491296483738638954506428774287103197980306879071524007112878122933886404431362789336529513408558761191013727856323527832479809659211788742938680375232744588202063042353906737290999202118673900919224751236234955259892897369844029635922028343125777648707449283320318599736424311625149835689434173855487014218136612224458118864597733294959334967972876342972298690354711191887505413739075113888138718451327299704031724215357956729904951008730338156480100051576280907768039394017029847597582259416848173668057800492636692847523168599440349643497390142593108558244307446585947481547325119830446045416302062279931224822257038282911612444461169241685162539211399190222401307502364131947703703052375900477461615503694901843869920537533339631523664689074298862721358942054273207920406129029825662312990589100233156823017031797713439506625181429168681489003627352651461102420652776852008627319957072014564877520414579170158093929212091982801723221858343390324261118306896784845663740327373025168297877097370395352933852089273433817141489494697384641064418598781702733541641247473317953863371054627300070050865891356462186990088487666867227696264121075181685449824679870430532576934059266101767587143169687733610206877927205827880384299875784916158745885794871697391749276393108386601032962161532563178595147124792939428635712739682542144361198744173231166002490195178097143160856284413115299461623794594500904585104311405780630833315521333477225427121559374596561799653113261749549704459141146164499617622082628883966045960866872580175664929885430128161858386098447950661689129295352958509650779355163635052557186821148175304568184656917702237629398908506184600470501478647627783749733805013973351428230195642370480735846988899289992896030198272354935912939187295490316108863376509270686483961116865989882951318647452071402179167616435098509090018865161566632600573539369931738027021776262768087759623128655901400235377778147957468492275380592464939988541996025119495379738232476777320915120793903310450514692763517314157431587807770170847785615342731502636293113201724419193111174180549669363237604877697637190545709003914653790301587872090703832589440082729412357298857886095743910006621948748942628730021089821516924470450770757618289102920806664988500782772986397383003601985895349076629696600988171549176708663919592734549864502378909555205711128387411468305120205239890527223418139147969167203353081950816504682108085666024527214750232897680809860560471383366234441939089738962075918505822287295493342239694322339588722820171457102754538341729151154044832586142985912610854980119388400904311092366861523306725180941857586832223608413832514712189477974729331041096075767201274683595890350818079823199251048876303848018337898959689968150570963629135917182381739885456789099174785932542527590582453183330257204858847796000418888195041559847036129688227067698472803696384438667415652888643676077672640581519119605153101131689195264952792151553633268869245069394229460961575532722438815911141945816259066902652409880556221903699632123965955566983346396183053212590493215683891587543709913069330452940952613417267431867998539394769066206983290266642581176949273046379375477235658505851886466516265836743128073058647656577352047026936559799573698641672427132621367986264961775794147922062450014385032527655947295733125606392149441168529715156470078902451866135328639544227849911156536506667790819229593430292990760774158007361755605222244265329954136074428644619669544679231595765028854845889127198988279200576368614005595045861211151115448174148482054799988112817826912452778371344540022062030915785199323639980361016645471086160117057240608897394758366900398477296915555683282272320374516250616890963309336759414354516467292137186914937674965060782001034075316209514099700852628502483618586360518107090665635500301428734455895247958394725473794741535984443269461297678941150738044603986290882855912448827046281165142322124939334807391497265542820628701877335465470757246046781018313390989817797704279524747464011337020864942807579726412196178943614380119597407264145715638081106640834509315539738755165787288206783078739707333700929203385171140647116480338774321155571312155711284045191529758717089807524464746368337290405769777430057575918697561595622909735559979370249984444401312736774454153837215289573890612944627481022198980436814904574979689644612809198404513504405205463797718684787422041368673317081877957163489695597275183707987397122835790660918959727026427854582066416946540848896397882665899271152056417903056762148831625133295061315799289056095233221386134121497755536547100089855923577058770094416207595104653474135428149910762252449052245613638904134518212460126558983988264977041788855956849724270118320568965833256912816105964371778004915602672963413366695254856065785821925672727253792900311166599801646513844895306895085017529388716165732327529089796784475907706619962709258958348999695008616435439019908753548939973030851402683581194363567861564297965701816592525102516487171996141068382552851260557159213025209482852373319476410825012457243403911916425114027178846788844849236761864970346458172127318593367911381968031297896024164512504144617385027898907172959481381846783996693737924482705000984735084546489878680492409471585246255695742131894683023860123410715626423402860055215890276050347482762009186608754421322565038211758205211278872876015530135645893489881919421077406212776137888475088602944349956297840895239616977729327869283777027260491682600130072913993576438780268264818371382478753878992017608405432066732868046031327894668060558733465516053569495428391308391899225697498183407488546401751014742014294292396982434043705876125498589825908318190380381358649647809252636132979603980092520139725883689836365643992093110444323886905548991266197296458239577567556851826991010743170409971734085632554450753637108899508295520908587721391244357877797526217976485485604816530243678464500096675793744379965010646724841768686591272069441777973917344772035846145542725851070018634473471618388184594393673254061779041180207089984622061441951002638220965844922445218630918824878303156490448279687731839193285411362175468517676550018332199734732902260065712540914850672284583025695137632487898594706231291748879160804855982556731524517046131342512866258567294061547678263199772340795377053979714685483516948150033273897849809341590460811589919179661008568217780016635405557732294661149235455032348707599528379686337440878393348624111599273052892334124543338680090418089070609852440736239390805453291199486882321518190870015702401061768062696800839369219683682636331444079133405463041758550601708489625363579864318016023320091346417690307903741261205603072004932553307266917026264204085736550256580261604859294616914236754855908080861302411747542690857993666587998277355718121652944043337808881134371686592689079274677834321395097806679997486309672878371869926494004875631601939138460796002317376245520092367383391716945788532300670916024452404470546324732865343594222206406383326922171748443324043357344999233822569719706194511844057394646312620541035847900256178895564027240936397207722913319825048833265807084385913311091755523384396446506677701339114826985818664612805915723797956796510911636349313489187891143791558477325327913850588058097503609642381731244227174798202776130851603087995976295230622732171791916912772420567297607983888752633410156091836267554640218731705319471549335443141397373687054132564332283417443352047049254278715437916659229388014868551514115167366700490698923485370366943732930442785914531008371506499272824335565593124621739571680776491652217315895290680332050129500740541226717847586581205477653198951706949655792327263704721905883921417711193397188721711541927151743633638713850127095889694276480264246160869307195193167821616051357960683850294453583074775209739799218220316292150787377667201031958889646413234994126115040428188639724963757363326487844548734875084296588784521370531347767024642668580224237832806167945000019267858568046675062454246742956274164113639206766914208779856623250682710023309539166542944888453809778181070428749351584456811130786237849107562117184695308266354655468473724906237741779975342241373625974744391734099379941879679282366529494355546342576540284388832393541391622135900737324462586742467878988381629641236096350579633345033376065720283632882978130696720528346460994600147083956603926829334720702859016004864579318141247560681883973453358427920506746295376646307319825011684392081366606158724375588401364257791608973690179365295161808532780642404650594993103861961925792638895767042541828890472564427360317913067760085279687142149769792704123375832406774027010297894877210463438094905098568245304371154965895421601712927600758638060249702584514285002617055270571122568384662245290358816659462896274300303945322365640109641195232620335667401637884362349168217287461381383274059234361490801386432918248682270788744858424346395936678833723983863247544080501633940793529195583790190970394089646152708328335711040658181918251453714887599154291128278939340471299055441470640100501567323292723643056709395484582273357147591334809959979707766321420039373974083226482557437257125104407785235041345756170456980030504857941284677204405731383446503032202135868032841532068938833867789880552244980131897695115094221848379406177054071322767966472291684387221753357117454710214585285214692483788419548266811024919467765959107459430184599401960389406008652931900088234126221485602574269122173347472837098454019020379411536815795590616413969196405167810870977466364407685863330105416073584676968358728850952687871637322336640753583622879561190686144487047073705848716914271335975352285432783417465889036052153379892826468652297576992432413486536259887838951031543971670898709789949529777461440908456894709680888420522523244709859168609628594155337098495254088264762001394166209774082530753627412896060715209685391485647591825190024437206125389674473899076970096216493309830529363155160008962778778514975793162399125118077165754643503705603279180068989752679385313580653510309730634142486848598506932196906677846152999911653228870416160495881978760994739928869809537509741134118917841930665694402465464707904963407287768638004369579269057476718014486175975644554099342825160530291657671385064685703119436108134585038008444788971108354807629320612892572860475720826719315418509425615493194316861650291617625941262646629045371204623569939998160903419872495644956001022422628295499792030940470333977083233830732701726352689547421779833888137198150932198510768574712015894756052373714508070958559415362302008690641324571198301358790434112183418192452812669330746743263362945897118693783118562872900070107919010451145934890087144284257249901097652977843729457540259355063491404817410027626302783645539641127716950713445441528234518791248208285119756463724715804791943467574306337231868454396348497841972652370738388450961744263640849334337710366699023606016026667491508486466300905207955643190229841172699425894136582283311570105993300820277343823015468549921468240377998946727496831623031505545423996946537154442423429723978096138379476375744546218714305850966458694714622406560551391626361377547094283378706263509074290867260283256569995387982899896077367962390942767238464310885651852606642441077327090304410655411536245916210843879375320532319485568219169035151157396486167426926970229912811667470196407861491429256638772402987363547504195579944000046563750907758698651064427337519852104745937397198610944993155544778596901035451213877334108177216754113467642528603712087565928277096002289958822310107595390578019507508206746247770526132762928961261504452640175423707256780313196358457796935631972332198588894847600329613623450537930398744385878528173137987201393326524002352938722880787398723108093170103893074161712914159606226328280135301305939133819352225734894809616415433621316848963286778889860717782431147142160772626174810426383472776218720692188852202493707514782551416715555756235149236996882323509033382754141795659730086927410058983106838855483122841310465755802556808173784623267213804318015216991505538776713349678895647271355544856082070745880413848385217026374923439737350845106480819656471176366218250236766841668250242410521675087165705182693184246758488522195123779676782201374384975836671735140180684931229999005719597423541131398337545007243307499421803195756943691725319263930999775063878034013158657800230012860084158001097108035506893377210722774092328220840896386782175244081393835419001923669441131455769431166706542050498545723038661124118290386114600029004443344838625046480505949374784531094300482123991690441377477885735776847459301668312668365062652139229496104884226839189823202423269048859686001677621355778478642744923307132576781203060118170885726153275837573377846682104102675387157432874716552376073866096728147171916580748517300799254894413958121507659207187382452222495861132617254942783727699218011570877665430888350698756788799656390220420162141199374742504994594825928495234287821837933706060222355894605393316694728965088878766181655622872577466488201719351133969734489347454098794509882135137469903389999455779359643348861066068630417075693220710758789920253339173887222508466178990747814666260508647003558320911649465238199376088778454240860062984224794031665990687602923423612865764811859684699124942964049329989471770035536859864622768268589512546393348567702140419026364459074961013303829919070360303585320026340253700686982996379336158480911396862960920882386644906038503864933112719981695553932044007783602374385663591360502805399180119045056397608374179788103198942968164317422574415626551050889786375142361337584357874194859515889069616873620129526713016537457848917360203184046255214600276235154337505663314477851993901422292803814100938961943697553768029411198213180979061424795653409386564707680674290786312751890481819102968219627456398943704073731753874915585134778487303322769472101940900353791330678042752144722131976726111021111309536451210977918210901004658505671167512183269721724434811451257856947088162585675928950417693232205149742524370357850167136312282325162121408434491363803684616177037632865962315407223731378071183039408812918750409383484998544234061241477712764061761760743650569130777182276901966396577677053504432772767755159946343402213610525428630594921349551323967783844183883166058346113986188346517344583106394736025152984494662377932254059950762142782206257573361239274924183689063707743786982290651882848733036056151800472488748117155944240479963487973658026336385447054118107433213389792933808342215905296386793269870987507797907541966406309382701626636875434958293908341957151363184742471298106650140796630305266793242047014593980634247828201558287143421845895417185326217505350888634849527186167611545855023891901127506324448514813566675390749137818640751544665057582422684510391475293564596627121516435867928739628370453794419085670545790425343619190512712495312159388599052158949599577840693465860398982264524876726449532645185147304517680100883014768679199368711556956961251829392307030202306012516420083938643386039413015162894348571313441576592558997312483228914109836685906695425092983870955129979176650638575787605564282581923156773430362839218381993035031437972518433024791820332928942936671283426503283576641088917659726532402969074035584009586444378293888142361967803910754128426106590161699871000401138785223942510124889998646744657108285536140202471661181271688205047947343167932439395575570762859601129090896443903475021522018101154742869408676961643905255536030707378148843935358606398919789507884074971189596086669633807707137935421678637928231173036128943247015839481921574520069868012694973399112597596245095838612941679812013991423185439699051879461708565194028650538513740572707111703291212947124605485241090150216288324826309935867917802368754612742528469092248166176246812826335154967027429641642907444560312376737361115363063348430365811098004103118105192753508075389193967829411550259399392810217105769495140875233572654809722718135108656265917397794910358422245184872129007129476370404264022090539332034928361352814766776307737303254671679015789688127363106218955281111528299511989677459652056699815341965408297314723591881554621971326674188046986309941880570718854631237286172787719236201363274279188775182271665246515383495924391071504834958744637636039659571034805661712711938775825234282414503623155896403405750804536325004051105055182232388661870802679495311422214791207989420261376274421883087028844624117593977411429019059217800913672378346525252529653259351232534591633676581460048610428537711299875130229633886054642514678833096429650493234443263455914054300816612890793497116533235937443900608381034100302752944175783914580458289718088009631881584705458190775478341872031398769625207064058332849862903113869862480031641935644945531466234806923150817407292329415704365214051858758732375040627024632919016461737027256625387435548048684716816080750479235097282680785690928089144069536093918648437943641134323466479152165059998762355428160702967122273514481122336442565334156919256565079855172195540227220195120729700142580514002284979103588045842428975009736238356235603571724601745902196395647532738084357024056629825193123044915329708443126126976649998092523775782976592685212766553955402939514128099988280932757150682020889057529839017648172024547880341907400437414808762640232091029446117612223308543949642178226948759146314559420042382030903145776073327840709200640295306414854419045504297237904391895837056678977083015724884520101654760721091478654359622256035392889608077058327349627975567564628508860979562613620280673776711779399217167648024090831336193906085264310381523262992073480918828973602460577219664483779258024624502111423411801186507257710137979852953352216810282546190172311755500637058199704316825020571028865698126545037664485343630670494543851092428697607091996628555914785685434284270754546874587091130490566752580128581288100355256119170411296951195583409037521871696403729302057814055302155930008845791818192735006673611208944382375303549017969802676920772039958441404717651402651834448521573627382161583251433713935241109514866307104826040234190291736113252811557257697989542814857578876439678937484257099075809665138753877354416512612624581553664900598902316806993334817481909156568879330249825874930413640672408874024536002368879443524590957596537922809443189212485632367072981205609354007887471115818798839903656301064918360326772769450023272203808452991518601129225106404892635967561589355500387001839544869724738070156263870811270673477544413345136078125912466679886049432690018924665136705886879341166204554042050846789719160685049968888056803198940336829222350845314282090692614819248355325945597958678414246492539250197998957388346529164713799288895388332049668453225453159847623749358735594496931736018203001253152116990526512927663675836078821065702642121119548578342878051201004316204919503217569371120842069284974434816390233936120552451047371612240418990129370357314629657310403401531714504948488024237646071109578938145264901479277851532220836092595504807417637725079341792862043510665226976591887860005161389007952450123941993542140864318529411254415702301292297817853375022130877277856552061604802939999345198627042530299303844784771871846491661802328121107353855705211679571694997653937193165400082408668957888687451646698065914841033530721483508396279038052367633780006799935933791498179797593722211998301559200997135899584458945857369896373812010845166814418780865087984927959358578843072724840833957139143612762957331298856838897587168416762602251616353002843137556325636540187767960311456601809309533355535016184006487172419208629418509026737151160389337376626468180802455047220544094259984287900320719094206585485473843509820026221221482615313263293538367693302847012773200542687502451951452413101618000239592808570690582402260694028765475759231728209246149394433325393502484507986362693781543980152081128188281267371245677924492308695066010555201294404352880588621251840230685870437766876447029700104387672877403172541971398475133571393695970730889154943150584849544799496434867688109951446225197277880245648090596582998141940816850311655316459463769977666861120299836946819423101873463604339037165223727650416704902979491341830561833947107944113137515339958633302411906340203664061299784304063116333472294391314941193446556103094256892620376248771677211888040114256419840983445149186714800884098810535840247146606481678784887523063123089211811832775153981569649963967218464856878610976084594618610494653266304376932922666694273157758837380986012991303581053368748764357647482170250070782233298472577035043986166243616576342200574108434126886582956468720478707648280360167909346165621293191958476602925002573399673402199399752835294943841104255381741879725133112460299020384114346288353276373912245392712299694836262440273629312019603136435540373208979292477627916436907525591302114480519583369782720202224617979579790355368944751732178861594836349699329670677491088514960615060412808844347018846162958738235626619034658504483261991493998957126753333658325048361710115358570657636236446707360872344951491096592724880874974983741254407914114306346242943030784564066041429985629898542646884900778265364920760882771899568749036623534887810004141163821336795327872096717417555774139844729406297451036070208096032727648427706322938386525136023009615401799970378008576277699362361416716274900161790943445052210580520066586672211002163281495312850929706650196604054226159759678355914665715073346012654801620154658536795543051374638020107991613503263767528776645260168128682705309645366125228931187921429616726954597051950738298944941107392168923390225449829054254825052415349809897801844157639079346703147374867516264535077313748554380959645398343182275809678143287366288452122856224485917579905098855588471483228379435244462630209067208291576271642322849916283750525392647001852090575977619782898863506362165285594758608766445038699112788293547924990555624448450771396928536520555418143261893516436625018496940477116050056065182019081830640566663912225234764672986331486837524149033793100252453802335670595386722069095980816751988254456032592564450880366581784045572581621713650817468268331204548447204304905052565660934204524978748606583363665374248669523814140000349759761303514526154678907099824827604525918561424927813479529233820036692880162367578181242608212170888123268913705355196188120750657086280071123724997480179867519122822514638922476297476460403467771373146912637818514865391580371384266158040149231500204193060224530527788949333753318447123557043477546257699367880493254789933882491625033473532766906872209271257188387987067872067334279027335355785461617465461214640086714858492712983372051471499924503337438636890239409727532578702013466335451844981784899781083948474101838097033455416218993518277001348177283301622706237528663635390866583704550606369211758494109678334586554243427498923399842829453423972641350026091693003180038418099042494799512900187807891305341734333924496451917877586974328135230576015691076907869165973989124856913660188105582664130856675044328206378126481530398995741261844152129387803336183618656010438701860330044764643871639966032490187839987407789231588010950291134797157575558060777320435331693804606065718889192209963969186708835320843151237319387816732363025050758775596761544142050785625043896358187952584773226979280301686432691611028229250416364516697277888708846009795909908244299432267094287684828423748201380150536769881469524779026358733921656555683738480598951066054401702214138389837370719968197357987859600717408539648425905305536019160552745288379810920515698539085300971544239360892418159262084242902066762915635376572075259839370380800479880168777388689411140427989522949998694132796704013173702885777072632299041304160650724814226484827379857744989461166516125349840521358706706442607540906921252440622451250449209233620527918862819634164576603541237865981832459756894107256692001444132819976054423274141130226359496470881026380438710777874674741971332582132975487754776842366610525209074627701569801866477339610483549195388269481196271473683293664807672743785900752434534267211712299574156838102590068106306816017870240732504074845302316150363905642723511465083332497388018425479600989453071136682995839777303121358003335076705036120687943823352843787756541018918673920291349765774786923906124592810830665896171980175824551102598274444194282407880301123970720507773370514909814012960310263190757211081592085831160578638934330868788021781007659374137312910074304287420431213602296544976448217280947336903610520602253513860022194902139462780621058816852296882485365900942258866930450897654545386538959785475449713947894309828928830814358903496682611370958702032173729489957343723835803529036893526476427427298141443169967805800565268652386798861902198921626910843743978667767770516021849683758062796617485838785303328311354390030557718185952630005427015958329400730447333357660081811727233586561071720928916020095454950693608581719195214760417149423973853140759140811760000211485850499648544414482084721129693659684044302259603673346725925035356039740513645786390801912746005782140041998976900697138198040322970000092894603158341969313262864962042736011783093981254769349975188510282573077792571892094949712007947657485438471139737909651974370269717845501626740686498166963432281686590341136594099526277924568589402629141339121581556368811294080381897117498630363658956578835361379268531336947697673932075815288922259669698414825882632765934500175628930083608624494487026027352073593499433146565158854137131520843663793651596094134818983804596039093345056076189698803008397252013491451946099004145856114598663911711214203416682582718822091793105608096145162627051198453596427864201640519720845986783069477199763666935943193074401233323483220111535630523331530485332589031774114460686175391124204346519700606794742842192653319162516892648303531703805947301689839516899153225780850661279467712051613842701649334777634256785449666524477427604499542412045979920345875222605751565072190569801576688948214611960738770375031312845396883555601404019490794380192897274548337984473750026878428247460220686437253858966655789498897881408735540153746331908577988931401913493677445106748477202250183635489120424856246850254527769704500839275218782635088986578885353478059225273756059972971212796647819658640009699309935548859032094821477164546042026569468853709546667166308495154593430571011488783271728864348677028667529340310147074241455813500076667011847611663697792864535922262412166321355503120091427786107444486254898882739755182880676069133127907375598124696389876743792656230202579179133741908535170764002683939960902124588305180873418968520275497708880818842968320156615237365102330420166047786228557433691691521755038351765099659457772223962943999730591019207629456576375011602323419155580401929654796151132896392498493111030257901901817310633338098351738068756011473464300992712749575534423389969425447448011699371928233706303549114219293277212713060045924391977339654143773716384883071625087535428004384170152728229810784347367109610366797201864513136725855713411875622160727751356649255334296773553311587399732907986475315463700876500064203094550461295668838915956342631311068589704096464417084290376539193879849189047710171873498329974255528962595934594582056969660299185257388840910190223281841857448909010576836342009679677264931998023053677040634153161318895223248636245396852489434671418758988437851888222655746698471578331097001528606578932229366170018353620767605475593031623765389267902335147559195260247309883324725943095198521723672964602871800856015556358972224221964762850794716170657404544142710313768888044548931362791596596442088963383206330241711602309524311415672206366539434235304989969934490801160320788789615318673442696228111814529925862934546575008259776673879141084770991942437747041350168220449737116640225290339072475591916491754701295567177819765823206479205714220478705881507748337033159839471300709006314472884259585678452845692202721959634761584036456686322480506885576202216441406210272629833279104441965282316747831485420574505966112726805217276711179280817022728078103615492258367111636481998759442156411647717606056924505740538194560316581273592589984671180053171547202446446215271348191565695143008815925690042738284813090834405471396694277116590329274117796682552927180757738053614447598161764096588213248354922176675832282284533429235266081220460069596399458179053093831537250221245268205478282026657169567314225034379997241401196390541209996124896036315229987138504098387191051199352076143351090746867193235277678155440309618659061421471637919546898490244801133661650932369607035150630893102731786215687852789715766753692154904483800600301956951777942810903067447688358838560639327540204815149023103683151553725310135821007604045727591098475774179532066667007644288118614878183394432865075599524436436469602059995170791879821000278860139115754721387498871344582574446310045636106218094481438089992308735558413808816616152029207289011224070838310056072811131972708828791177618321009191317397678799805615823532017159277002796732384678447836885948025921701336869585237040577734979554485649442255286338955771685532448060957320920957690049932287638239482690103563340700237995851984405091200829839629288043654561270695985023318196277096031656069448550136944369672538557717349825738548881054963613019281206044221176721766388366604337136760612341777818782037348885426014837863199947931141371069479662083010015834141986882927590644539930714997741097011477441133278558971961550433267314747907027497395267787832525128896336754525109272978520441669280079391254925989778731084574665529823381231371419283385147397623098552057776348093930538951497729650619341878297768917865691681689044285356858677728542452537989807090473311815528722680202134656898362165455552066377868193781655852631943578996799006401611357043142224761376775401075798627044251630201236864120502692935243135491565270973905710893258869824827834900529006530560834287682839634342515426461175483226118778906757206420462090684541619656688517692769162320359394867967166912283985756361346687640886636792321701320239199093238492754429693324702652086678899401004023270438360376147913685700256234612469769052696061329154261886244768409335538061242016957030576804048016801669752278349691916574297403775048407460864257516902003137824517263226344048487208173633728840997217590921844913539357878855812549030846521320795846721349095822035844577515251586997869842669728424098440188197687023543552182116516234158908227798155284356667304274001538786127572922364296034012840417195870345842387017352150876993888540871546460117375507695845229175246700725908539953743090028465289021191730331809331075858781377269995948205372034033722011087597384570395364605577270117901361958065482202910137136443416455246764273666091139750869132405721570311916131317609319646525142593676063298634674480739129961881662466680568087655303803639865892416080438951045106243757423781810759662106701568692939395568246103771208993319939627401375386770241816788356402459082914626510422902188582098752474807680421990682710507561557688523499012575088688406957612610951563630282912791906124382467918441578445816405152321159209188152298229760006577852307993332903213287524585688057853622541521129042919120625974686007139413011404371087882795455983937008958871672563098419153124828337359110620465033010085896729892468089808780963703057159937678729692137150565581260965694414013875758635842073359211864609442070687174729881052854415472716018223391910261790012811876687640292827356361268904364387679108193468893837839895736779883354655635676882108975938100526526445407579519630912853708836619374890991923426778901153005713570340480949908546561967205648257881972635674242032224300276313432260587163460809238860356900973204668831987973164410667549695790932657106054344114309540491725751710494558556360414188101707591612857358486299147206192949448579967993815914937066293781340368752536743990439599195282761701235114026289387156550911307965302694681104857186632550513899170328669394253912822420398031561794869714434263098909360814977447147319049201328905125657769625577667560284672636777014675188283514143016975258500889636591732057010661733171762711687508369137872406584552939208525280033434355417281883815498664464757655833088180467142295682079065079034251199130331885102670485735778929164703767906727932055300036045873614193989586584576469476944808703248672553996438013432939314933190085105078374116766651983868984390923703747910479470498895216574251261173642097845302042682400211074726819794940979975711380437465291352291802610053818481639563045537843871004881885847438899061712750558373726383358892991469159705676455444374774406532571731907780483642680580840287665779729533340797905556404992427847205753343137230977627491435623706854695580823397496921058646600983478204959997818820400510853883877768146767284340499707746938071011772514626315257312554094953302106549400632979947705207487092005157650878654326091269196301003249861089377912824412160255116877633293641848656717357321996957723245990003833378709117459111231700345818767827939345629950845673199449958376811349022422839160745046203287300850094168127153567205807929868056348967887738313962384290064025547912480497895338441461573443381631870752053483804865193829390963066700388095673736892761484110672406581785049035541892682405999659936305734578781187944595150640843947000556148583905667803015438023789872860636331099410664028300261652304030394100884942484553345099451656251480275888019844926673153044963377564622562807609000614096850298082446760779432402135280523750112451250944230544457331724285094716241072733340055329685096701198069938702475856019227596704776571981149997783676569519601409610300803302270844050500642786723083746397611645741829610839885233469805459601120896428997531508173449324750167650306753298240351275111777261084574387839189182064117744085285893906795322696070408870255721613696606535789010419751284443132669961538286441872445300149641133140538509062994858401007598341197646371019630403050922824725062896377668232779428457158461671445796526089089022599434167355556134421268922083433744634777605195192747628499709598100994539297824122857143158168369615387835922618326506434676986466369344786102757098569783916484029471242636495553520597457115641857586572529103196894171968576144463509374244452050508271588913845817534279146289390971243740651178518674967931158153174938879506275636811934586933842306188831886943655163002560267661126296424807938106024988539204867812253694040552412713785198367797487632482810916244450548326860087818736144024411163824657347441245138271815965264760029373277391040342317114840068732953832865035584663346355723878662294588214847870791569785368847037015980107868599726243357773986798433733330666241785905057466547007444986034070618895531405008169811957792145587317641373199046530695644803973616436668617935528489804551982450460798448690803260476022283830747230877734180509308531501538989473278571759368593417207368168748885617591387793213285228390558750048471955366712342275564158958685960678770957892535496340931868928924216281948181912743772351068464551577172235032605643514996450153575085387836231134188695689247168924747470217718699157002661390147675062274655538002384825091715530562262933094088555854469735346020717002017746069076921909607985875982959178309047632072204114516144938534293230196593338763644026252624112858623268755132171704247610425202888877576503421865107342029930961648875630112983718161439557282377573940487438270200724530951084264592924256139454135014878808781841470583027930596378433389939781894397088756658807874172726235041022487849806369458650361317401229654270890458125552573736811500323139623964412238275904746752125539067070729452142336175284854661679027163833283958801087250890585151073682347917823776897898332175662998293635945120381420482097396582104875166767843855877761839876928202353808657760828800858954566221105850284594573605172323416999062720752658682661231974589404728449055390915534639332734168111078304925645726874108537248134423082027720021667967393868537915699709199494468213257016777524620426086845023001440848544680031028288964813391291093740640499225187964050857955867314952573990404924658050407036478453197849115253090486279791676833789680676733052520287379507761726181514538840857596770784479051410669236183490546632093125018103426947527680035404270303078218751365660300175011842431018631393847370400904186105273536223560347096375971376966944987739962518686963744129316046810903029212109876333240806322791225443128707013588410490304203834760143633040165506283621919742458342780543520993589720121145334259498187754996775906360004192391731273558308682251029933218439373357561195977210424855580356783110311756428568454294194421983833502936844116760417391928656608842675514374504618556243917655890296121743459386206536198733328696860926935943136183396640587097012007201312111512958132465057453666788556287640005904269733397039108052039093238447400341998040747812028079976652312380034445696245358648863929917722955616070110620387082888609692474259005858386324206059877186629973456682047976285601940045681582527862056732189156404178206903259407267188792325716020088831827000732590327950951832087645923345856411944955149015728771303272174885089162733531926398198627849103232483223448291881303237543688363962207471139201887514754642617056686732954116959557511926444697531960832207199408793202644354169780925527747423702936723411504569923955807343666615072087291779630779595109299586264065385731683041997005716097981321917788804983447649550437142709742486354789522172454588871282853833746651523289385517193492520817557159032600127869845805282016417087850674150935604572188313494011767077116683380585693720409217218626551373935976884146442178646227421425647035716826197058087479003011709433443948651162981788498843996738196251159779237129964358698357492420504477105230219991719525174322622352740122658300318210265948381640142538900627102000798057258792393775644586249173952995924831603078020078399932429230754050356632432219633430193623805080680424829830308160546467500057952387957899070420442670697908041103232579289093594736225529793485236204874693812765279304031828007637999042669807555985539296419384299690311742191192487316103397127424385794986817816970557860878274762489603561297767835519328647443439090012202639734946098302119924390705789736863314689953893197758035447402303319274986833977305642923727269642913104929514648207932757951270501783292588405618693437298957890226096615972413060428787987143099881333635498788988368464321216625701749400544978712451103504071042734041660760486355366272817511326529753775936842819540922461975708681329575628896191508360206369775936561545115769242507280745836985990098159962025150545158309574499092527664849726187980000612067241520406246030557606820270317810763204361799750576360378871666911308450129555223484428326554714527947603090200438869973016022407169526815781283462083490200400581075433423600792361495919393223428274031263998125437813055321144995038032527914014138381071980254467307868424784761392123458922829703011128372352155739891996935426532510172175947759408276536903899018094386079238833636739925181474277606725153220797221306410048501982167964712267655350936648839245105628648711077711082254484329337292856410512902758538831334252141397936884471628938302141179458060354786743352982125710737330164567821927180331171405591510722525805599587228292633338340667976511595717073688199752134191380715600531220963917241513328276675089363325083915280914694440591024550928752273692448209191981586545627967841371841853229762430655271826863084795854924554771124563504817669170414716334401608916957809099562584227662537380141101540527471262586059116182521505924452212586005233350889587038005552158718038006658139180925490249649341110244672053909143832539117625093687132286335737830182670499819233159889872114485124345114073038956966439845221024333019057727559882302985329854232446479117611744763361991397032431988301792314853230418529681484184343868529790838541785160799077594767821888055906081716798000125783913831930847189728002489572187857730042503579735448773371037272714814336032843080039500813831219457233902821028029905710496454436975851704112467007692983664071393802945013980045283995523728893790739767615808236797943275101465849088021948622544198250901036559320646507450225213670044040882650188946149630637670286198518122773461858978737692955655195732401519494385642117578098495871534701572130704977188448677533988939702567007233802380426511624208773400586444888622845386282204082158672266750441898821167456150161457281135341040888394077666017374963031258384731230387207213321867318408765531944416634313872156768542057222713523218411792357271813223578947342717208886466351269228846530368410639379271980553200296706397700951832050015082341431450853966680233613271807788185660369203048353844202300257658337779713292690328217900898081434060824517328737115164782437929064395053135665368466853356551451163024377690749405797546033373819126077970611680569045253102729910117748331342385387421893722216996285813663842037620895309418560055697071716672146398733228743178700582472236102548992835983895065835662422538932120535404407575303531280882629687035639235240484819344453243095290352775495003706471509803603171401379489431783169884017937419454262561255868709692601727168882867913322882822349527324976053750281757396545517376316296859413901625633976001563116151206067591635574457740422809389625824709200521089663595769347228810388690892785058860535886552446211219315765982709409664666907857355900449346268073690302513659138655702081413240744413445336024625991238095528061219133089661046032820953130627420458250527319166197320985455303402861900149672272551949268477470815897178538456264047455925475207276580633764007276186702968022867020666539623392443784844007432894564619864719873862251804273453786387492818350328194999329816203000483872291763237010013808768838288025237015579856161635999745031774580801811750763976513409739293400959244608699533434424029940994057471251802525722820982346964775864836847551036431639048861615264545290919992543948758004438856401115863799327076128632632961055860022773923672229842127502530537686346246180071506613768720209980536168586231109323749149343102928592531801751825551770353561925388381811635485610332137982446588005253758115998785142118364558151957510134869407445014908460545365890372103887108199718530741392768575517756656688425074981328437803332694355947963620316196832244964244581363545739992965948113844996769824461674806926577420581909104960644328251715849127094218259857993101505502280248077870942172831998555526503439264093118460351854959227830563624449457212061373847070725778801133558204299166510726253392142582619234310886184181620077158305198097641980283719712539661502234960334710404317757065751353252280917469767848505182227126921724474248110822890730218656619932275324228266767912995143308331411350933268546360221781772274931246087068904558517921145436389046900051956151175535391514562269166302516546540939137836781741858050065156627056009878441972573510515602320553550351122790656143883979062527154458103866441729588437006086081670561118816522342711165224225038032114757875697607103014300924868704431541100764196671765606660252920475032215070341070207253017502559666190805662412403138228680432869834087059664848904879542836923912248034909200387034714613203303716610238519646037432540664111035709876599393554437239036856676911552094013082233852205866763347364012657062531439434863513249027179902527560392204495034921228045743658886089194105002941476670499683169823451851575896865461843052863291559674557339550345636196744223734922616076103728900212052190932692365715084470888287905657559398073368769577261717477439187478584818397645699752730036951652581780460354371555868140945772200904552304053541071595813324323396691592886842480166522991351357506657478937774353632532570443857195128416448023950754223286870404164466174208786947358576501584062435123378810100014952052861443160144822991933669286920629715428108567008360105351610132814885443486563981448305589876729727715428381310023378471084563952125038565644074187188897110475844157748979365332602738400295940323058686121879992783806029564017274372068742426715346888836887809950406642290232182730990301106848074408090957469340256692128197431576549152335963841993718467699909311453133526799947512820525599192917230700628740686623439919739316294702957307996981371952082871877793831940161077412501444578372272664916937647744681057776069441517799282678789098560304227905081313585537953866773394728757183461666573852914258615550488055340920286047853696026752911986727670479944850566375014446423134970718220587975484915457465893769907664189257357623634578460908518362421975303482070173283780657986107866388014574985845846031504175092280545457142581249828665199880155588748596644605044451155477641926367933839932674747025671944098824098125182524310031407400574174201548374028342726290811716158167580264823294126057144518370637509432225180791509682700765868863916209232608940107503800571306396437631931180083865150483545730582955094126529546836691924476984109863536997885465193074512587136087794945059612195330522119115102740428717924186121012746652207823741790558084730267101110069101059566890037433249696595600197535018607928993831648265676927158148163040159324434899834588640372460842585963145400213196335407045209652080208530907487470536661985016944398903660204718582301513276474129828769887983511053448051775782867810583864120948704418848273498442927170187471562862893214108389204930568844656576266716386286792731464095953868446352023361173667540285015747548378174616074661222905649469201623478004157449894277950758897659074649013460730729072293378863763685581030168382038681408339986193832981420468034027244708286435770707298647730680962832586559132291006389189711484342489707244359122302670945443118825823301069186288332915625039872185937397052514288133105303627480935814106027102223654544826788574805658763101747376402810703897195537654305284872239322839551752782464238584680770189251259332444903336876916515184294725755769533008769061134227102371890351771195844137117704722830730857575845613203265964138809104190540005567586874847268375115593140209714276289375942804687659935540718995734909636171965872142517454170209712140823433907177564227024932218990779822946159733831751187706742122633295462477680989993628794307365856352826315965815736941828047223719304642761071777479229374173645601834626810860172498731224653446399011275495374599430231935834285570577083030767633956299119772305382760233991973677655894443313038777644438799414110192013202015259445606175172788412888575777668395260032904465784248392801428501963878550541952583771423115395095656060261420087642521934618094817527049604627136576568999972635014647650724921924074764851460812882293628745478589808912985454115055270488314871167303704499514122936552645102103652591016559704348358485483790110310145966111121573932833960798980458367599231250457364459303220039602684925488574727117316616767468994940846939206798382097624424536435072151680405572902969243908898824311089106045587316322306400453092444697729941783541703186139671044298081202723011305635629756488045740444846704785114314159089010464371366523613135216010804692444039529823021909367264920701999643491247097874790270735458680863026554066358762215979040004422208165735920795141245647745013398832359607520758115765268639490060963114572561842216012636700579578694950648185550093811634998807930059107597900666027558450746941400338522894161611259777556475518743764763873151337533606121030192193480583467195108628015520870265689506003900731138620024855467862146705465625330371962779137939650448783954413211304661209777503554523282468028463366714344931321705141091264052603282342004898994907774577981231991404503928271785244680285922913440582776782971905559342209272009147492163387735978259993995826468768141212740003560254468970559368373266269374299801051634495092743438035723617219372091544536193191205736105938312417686353246024261968297681616465149923539020865558703927629199163217184007952668592940551271039304254142598095402733923035393092796697275949933023085982375338843810978830263024530074581379983233152309375774300063751014449044409251498388008927516371592356651076718312829267470660047764907826557229441534521629207990316363777444545358722206833373587535801431678504528169689593151721980462011917094642753615892253609429975017588342306710070825670908013464071624752907573765488417731006141231435568382068939156006804050176064674524037835837917507978626653900357670357214425382236383807760169112230360726040639372863339463641038831449992361729318130085513030240251095843372268063385284637478607226291605047417496244067142343097947124812890674769821029425058080764820433300982840075252787974699850016247281529665757812193928653901495290140021385840946253775515214442941913006651971019184709386373473338493580570041270668071161743121872474280817310357522832101331995895474925220897162504979317941578992245636398770654373908715899387835909103921088018440342710906785850326800843841883126250808143210606597038997504543384727152379384239151323200074007455376379075653284877321135963103588319027287922324328849579591308465036801955546345171743523509761350361902802741780843613317425965733162899146409878052487112444207443616086685774037214529721265442685211625729483221148057340263036195685567979056951337885521574320185479040814038284863694018909905894199192934114742159636683330289262467569449100215315250919776753103986368928693967994337153525347782372500337247611030049297446933028301257783233095129439893463670765539750184140726191463499601404836816529549365283753283222895411974039911671479765504832083530874538757593340721100215481132345392985350089392448626630246036937005105279991629211945532121779158544264534764210556312754319732860356743275877810060834842305827264426317238592730276629253205338691912228401356103210389197192589156094326404402484577646975558206749515845274227462586139562069971157375606235115405978495810431052760294661559130478422077247880747477111750755353071929714542680161850850877291716450876394869898976714371553613619150462477859777297276846583643151734164199019284011334660412771898645014629881471382502210415337710291905956539048219623191711679256781661445220616524241662494842536724394832487262293132868458777463304560819628734226082378166350512282623799559240606557402568058171484146642626814294190646868984915853517910123057967616881130970643752955224188239067235398218709738512808140725939244437567050073013926825429854921022430347299136433442823000300517189406554701232462351250548944674780396960035708551274556427603209042966124575808480796672652360468275065738998815160831846455499861021651535947497732559878939070983401796944539286729608889393303994181200493094504349682160602112767531068167044926543009367094610250722628408030930316148461068165272075655124867586086850011932725601135857369955209696222342157409793139166606596117020396587464338465220971641720721692585953377484466986431949879915025255485810437665042419861176310006072211590430522861861537580194415854020616164482756635168983020204741448828697583867671104915856648901237212374653439670596272153608888556189557969234470983492155940898825429952945504783163482690885625669751994259666001105035909659414846921513464127543753575523142267670214428038758967226681356843578162749930707315136425871968324379523754355402168495015726470669311689242221068052788293347581091698575225439971384602948679693424063223432602356662136550309632016685030629250084275694712785568056803402131107343972134478865216916488626749178725029280129912944594254544407299599507821263905935684080443549392842073629765082637887289315072937689779786942199842622635327893077658919666657361419105834461261036396895950775958488043136231972598508832351629679310722605763596400778808497765309065657892825730892602930431244443920221543562058171555845608189960554706202005122673675805772678517308523520869303259400935317404285206395077844605913632775550228469586656597888825260684892703323549808827717246694668419892429821106120946078802634814867347269095371862797844158077169575653748440630086326642663068410060961130701576140141885524303505116794191004699654399045923279705361356718126997478285894244955219759405586890784672394175569960244032252482127732946858321795606821482540849284061608155703788196564828917046848730282926655973724191120488718312461849952131446910710669253374439688264084779792816832247929894026720084308289179221280718132698821797140060668604698296147766942089434314641592098116848686558736778869290900002901394478333956242693829749836862995051576078672530375331179703351566980993271418993144482013211604199527350612666227193457210439082153945206447483070312342342873042964000633127027625300662511155174374567823116656946298988161713008118464536613853756347488610173952315234573719236277320057427967960475644021990542703270196037643854601727472872322160217809285677920590386089340678461962536297734715126215099630280860176708046706414926717616295790486362594444502043074992062213103358884244306762851000970232819835576853829455117037150893292055346791754371587276474300371396767622780664052765136968888846077122214191584010196058486415143331413441089189729450521634731199879295654433266879208614234736133657630903075268931065907263501364702578647898175109187178285088404228931410592396499592588138912456960080212380462083692022154785963754403495198194860350746569221830662764382516057366001083217502057321254603156182800091688997422272934235948540281164197332324143604131535387337127846886776663452610637917319719970050165186300683702957762757654275060303926993572800199816088318362881707358534450353691490204202820398735211023262750643845322977760061296469756966629059916467661074704002198497427027998053531319155942945028597660801279934070295063299871920549831698136540328965785784867792765060629597406532479369839212298446724402370237530285506318144448720312298434889694327307034142478917247085982207606050972058903153257270190118619529095311182363630445217423643665015313132133900019310274183780698181578663994417186058991931234032869840435891001357231550496274013250925288646142939489589816874671698282725016294167096884221872864333593026892211357557314266115440533109117606459124358701788778282386189750243069769544131908961842350573466703662205334663569457012209711267590250200774429847438338182279734723599204605219941571159296581200725089704643887320496227399426711365773241011484774355009899717825829692928833790771701004913698774043291887338105483718144110109030749880666310033928478679881291305466637916126949478043600211392110116183992481028867945717490477660707436414860734884487173736119890620584002627559219775267176089882053592344239241700960245003447868934231467514132844252546974416490137643888491797966488382602884091149271908712348855980605754382769541978211482221954594842963816728486197849136226834426108230805682351146801876313666397428952567795779413241842113174924827832761807453318366929858202441062179101080499919023289801222844142562978923144715342455887252121379447328024380972409021591383584121314675445941376460570653931404374402106606358363800793423220870180710598294153474546511646053090722613974393467769897614262876135323215333416447676641157092623705804837752936421841872020462382995581069867327924774316178560797706472501573126884993798761210854500805064560920364508450253396455458020075629332451795997281889442521298744942286766485900071585777463563557800456990926451476256697775638564356969440079886485561255958457675755139916882449450446885424472147441082757712256026036398667372972417608614378967202611827875850848341813588275348430459973072159835247431487540566064527423143958622773566809092070742044505284526937882207027055050554184425216013178265900083709032027159915226992373800259560169374754673163287098596924028486925989332827608992834901443955328337240951034273319856332787556734832120917407741407285556479540279228782276172023838516937643868227565609802597410373568203873915317718321135887237424867134425770129442732534037028361736902490327811658097859645195245654647665742699587255407830916241641209440247007997165243414023750880152822423295045447241019132032050308924783471935415265477879052611551404316467083178842542857338193410331188057589707283236596912936075505065489331064409992776696627454631598720993093818505178945252086628336350487429122288006275038359467788783143891196537036055618543273754740978301564249657048801665090182957855217212141804392294724782929833992689665943358992750015219823927276348043388843723253286615284843370004165065226802561465561368693408384286946862025442417529996426390190517697700539788815469808152971129072182173670886971465804766768415553070200550803799154224034773979339717405504076243120991271583257852135631833702410060283839514979016640500990601661898982663026836072415836318448058998719667869863519017801574013377863214678093968123693537747684240855166556888548250781368783809513526970543833285311637885856503682347561650636428325135464717307057606520768355695239307752210865475647613758794657173403143838201897011394980640128527136466434553919682312570290682938570576745444649911375412115222803626119918748665678352852380112789774332329571412532560868538544657501679117618917790270197035271121032875316723204928649749835990146371461076564352619032936563202136288559720925613620254747421444605727243385508846385619227818588794225582188496278743306261060044323412404027445885112395819089790928717471684584575786939204009622377051893332144295303274872909957286367457904323821269233428700728183136990609562348419717315844092613134042858441522914164118091098525556557974156513021960815203600869634289954027398256529405314814070810885811636648872327652688473496820250460318897745761613386813698838738134620443794465450851157747328764201003552737602702365702750703481854276374344450718826293261351564698616128241131561089963531041952787260545801058013873620393932729073288339646046751745497204192688692774336908632461892446463008534883887624953378426540808648670659986357480791165261242063991772077629214173894722530671986302409591844370809067530214400820877821624022104962593865740183812569205643763980222153079028852321598305723482144620829014271014873560209294368760966553939808836238564941270537832229379066727049422388786013923566320989124336198862641011477983177056631885953516191270277719965924339251416733729594636214514061203141001997167673834648974978631617245077039629084344207606824465477350067117101017329602820827018192156528576434309843128398227764041479357995393651719683194456133145268438356506109335524429449063594182768531870192777966973557305684453951131838295713608939865365147530519260509718608660102874941998592253028255090115718868494512781830420808125438094447004270610165340627281259349529373096181146723433690846885819877011751599870529095379859492723446834672938834124355698817746862377776231574663683774368159632528182955080486359169631225857579112271652301306405056882829404536801668257504856071790611049640900365327072813804866865648055193153873648857126530781949159258820741432963697409765601377118669184811978942099803294664229459805032203607945175966416750092283611817561373317712436600328795791029837231194620116263499116078168986623200256423753943294783818505634686004730507953785609279509416102500156529717016179268120971728695440183370888401359904588438956836848200220023804711578653110597880624791660119405271138506848866454864480174747589374010178169689023203382403673050974264512091783804320488651095551917582437055487549490134348762436748213767431236291567783361745890705147212045474925053861674075529422045725907474195097282751602312698447813043756296096459719652553569458963675124541545157288802320178936306492660896255373307201781996723035737640268119908124899222799445697441474477627734702898464107660604715067201194717225619417119153611582318345876578031435054612288589763201560947045312586855340710134672000402459555921964491773341365522657100203253962582809390005022297823811219404094447511504473644553183250056013833405938363329080928125539742725563398092377795345070574036640802227615271376607810629180555612453535649117214815336230439724196852296150049184766808899049937838515273956013848473435220431898973608194852074517780930674386863727480416906345742856525873715041974199665428929491334560952369957168221103032216139444490223391333652501341931027097460901972162463251729880216453208790302870389875202654692479980397781762433023004398163977782881048208818118668273497403370247234341550045339297210201876780515634231624539524436229180678912951077447618786070517758371060197166243072363435713579249565684945147461398874043856710933186559603400207626071123004281150580398596101164592422806404704488604274670280101480096158090514414043646765449114338260673688890641993149788396626129441941225291839101585201920992397919588951843516871041504796837028215526236243774326895663226511537417749156184048798163484669974317316093477921133592738149072564032895127340581531907818182842501945173907328825417517549853867068323742300670986542563830416384127884832829445481350731668551465394116595351914396190071012880063233687386794088683723602356349029491703197147765015165986690883016851778639469178606750299468219335559709939251317295952700471210607440498012158322775313881408169598504587112544604592542707099239635298532331014794029956421872108635917014768171186829105752123135496892597507994155381656546369954876665691647037594056964390719017723407504026282958119283443889492815451622731136109414980016462727878276773508960153223669813593744692488866798196641195080016534077082098875466798039043016186943635939320145924045437328199798634517108910787076580726195426671690447272406397613084406615841085775038004726082423838652104914892812225824155292682611123903368504359953781966948820550528487710238054782749673253001116664297590290096763557115616086625277767295991020598468797633395046244818413292313925633223238604665884611541442797034249422050207248171452431265034916401336547889049551892816687475391359221224441610324519293487272901994584651042551213892603615905643469031852951251494100380224134954730201659742232016677592402889080555403895286836579298442319401343859849813192586076197490525142429274865005712604026943700008629925560911126010257247462609448565855543224574758689406920941215551658572059911357992675804259622408750548087505107374904448020012506237937575047319372896807690281538741640854313364090564949905419007311684901557161236266180722388797365618810310493496514555433609831781993332261476075976367005162883487821240847104568282706350744328891053529626228121579900698765134280449660448964462230008508938996917762792082445786450044603461421114553981560969165474906715083451477252838048027689820045399646448243045066451638419823581339100615654870298486520293347216700452893997612054683285408440352706558846696239382525136527945314384915243116069085186912327338084093691491882536192012996273500687861175525116997373253482725076663224230470429452940989950148094552877412898205611628354918873496780506971118496970319366124447569849971642126576681648779139330478838344869592449868711021663015703199983470113080445013749103414430715060490043751143143564461831133779618406126357265555012498409060451750990078977423566398552793429057037084820512090820123643179873794534264804316124015410269302880395285903682969371922213444393733324844519955444149533806043808966858824746207281089920212065876030205429920344380629116687377563948788000810719551324617129537408239166566584981967989022290059058322555105846562756773268597706825792236415900913396072558995603151091306323643836803993997898892127150630635477965868732997519644427876050779715432833318330801377135825371263229591181231873932983110336106265240040877696436487226702558977594058153701374946075313081131153807778262507466745327142507893650652307338452741348042831418988326633986071376714877979762697252232139628259555323322783973654807315435741806751304102438739031997107795157010018012663579587035205490748597941778721331508123796357042486550159254481520241092521067281483176279453255999346007315666429346279134895330170962397847895377129644893648202511861234119524101941761927136618392248436692522085350202435192365054845739819357089826269537647427613418412817561735933355779453495201709444288390327590543968960594207853146247258675021503119848335507227393694559338992117800744767919881292957700897902285988336372271062494177684758053925600670625800726832262050920724236868250170601308144647263976183228792957646941485996916358388544831519590797467724543734410051439639784709772292348900389635246823057971533280817693263377911188429293375585432113279767876677498416701885873567887242803759972503890405739504805657640806745620240746666632618022827159305022574295327092988067432496191126317518587376447081067413831551359856788469489338108299590622030647730034099840393311421221630426715560930056304161042690317818665393709029866646297547576656517362729242049516670304299880409160501337416658547841569207254335759373669520211297887136521111494662175758004074495829284294604233017307832230340339872315882857947379752671999518482202414709283444704644994373772261499871293760256333999964260378657309495682096859523854377415184439346646943338593483951644172127732664223614677349909175652539440833096030319430864087530428288484943526961930928621915038987462711668784958037859688069866750971635617831483323025361850328839660202950751846183176073141847805246173090573771695234647477037923516025085028539371160796834802345410628574473540900602165102968128960028926429938585877032493178641502791202991620876582598247609353694794187962311110201670821118533314242552112123085593946557896302958465166582136206164183531303927156334565272782597921021681286879193455054227564072612297796332986072859461165075656639932451198867740300545910556423895397166725098103233895716196858275387281544116706356267616200589185865517749021498219974518190300461003291563599496850806705911681560761373371275593048972501948641880769698573655305495407390346997859806572840859804043489231666421359302600857905278292178079458229780590695656574296676526307998297773032151873386884690534941625838643083160292094890383150716211466053730532362436889520157266975007151594689087032766506150855565045283440132735773390969051749498995350329972504276310389633887202284557094354606868999812914042757110377321831692520606620084425953938006318724303284381137576005024395149497208603144945555554219346078430743568501617481444237622726971928326261388013892976166536563696012575349224064125934411393781329766661939207220533217354848278563304683266965969589052344174053583968305828954334589091619030439258450495301966951268962954465004049958712307248852025252198996142918705994575377270940375748127925808480394544531033155554081383116419808481350799476433132878338895394956364560444731933042187855156344880461574566141622581709631157214755999217482597636087305565106036119375587806075288827465757117830347231830468165097307592980381230438129805148686078802581218506812456495428877216897537147845744687135060697135755519671573817098118167634323321317932967694792461189459267021066692696496012664912844844792818717162361080281928790068022970322659699411970511451704790633675470785882548068426230461815654147319758907678633425035330712743884195952014225087963012985611126692129891247858048254508815956974708301049292704196995129651839771090203550644009378376999245180502387321795258287533808579279901938957803277066734998323722110761112479991015682077665285707970425383817040849525660274274122273075047430094427420317838584460653687142962389071428728481110206852424536067593589453478676733179680227821496697986170307437109403229539670720468351149089764267057817470532786568098117493660446159459556170843957347490372455455772100197489559529210299788010858513372519232061894442648301199512140743328981231490510010102428177964849186846148583409910498705295454870709228139501208884165248502117782726812246769488982952710069980396842977637335837009973982704388331095948985815050538347940670507745841483302616774138272433249601705219902668207877277146880173065265083177279101244242722062862254060350434060913026933224969092422256921012601526223766801176022361254925677701372184706889394723311475169112542929054204176640685058982899685482360295334713073112024411892631550692692763000860026065251635130622042506385934878614370295916713293828788219481315604802349910770412618689186991550450192695356960186579558803157925455910100555384285965504680463983055157945427306655735007275551987937375872923532883412810542678030318369061963860519693672612216747431177201549572287323375343620834690414726645907776582755687162539264792700291976143706227335270174362320022234425440944315979757452858059188672904750432050418004310229536327445406067674486660374244804260521794351610128038545782095269477697005040194283163004802139123446866263590291767773184383747640783913067264772768708386787606559020433238322467082957436478184493257520741875771908328178661439905793449840997864798210501100814045163540951652036959620797910190170431227234190231463811004916182003855189266002785703836456626112822540059941306015926450974154411566147682855868562624574349053565739070275444848647398401732411401849461633864901762285050170095748814495468907011486216273149114864840328521379336953486541426125795535867000161251422734335237364418501834884756686590616371071271800581599717286738955784021982530603562477744062867987922302117584410769809975916720890458961973966275742866361910607064725740187748616418806521813454456124226327026420752718668028443221767443890921894777627262936578555222602194781110802031909583351947741449836797686515231229856186321261832702978350632561989960430279667824760458590643845939245581543993281727603953128021418837073886981344053249507399466045876792895577580096239657543914117038442405689956189933576017235942936710009117856905634424360984742664823104749160587589705589343339776712903455194904293832094883195268539060295966654390944246997340177685790499145129660115654648356956359520279961132622123591368297971487432303236815241067825502055492018647447154230790487199817996027351683736319234445700314318774686243398049872121576447667061692666756237237257000010132700946073309865740927477651081023882337534791718197593967322801630956535128206972182637882742203862146157190359959718317204279743972914929674492375903270337556602822149912175673967393533646858937171933907931954191338794474788721199085665964557431572653544945579941195392573526417561705483746702214080225657132103360248217443102539457831508452580966206929673802518515064285330288207379703371048588368534687536816943304031242247712321556137202437033814625938541352686415292734703389137624395909804022823793272678227058944073743445533767893219909845024748689822207157652370037383678145289326760341044956576441244948596129304017719972757402976515827051719627844953425432854471511814779506520003397142393220168663268081013626088028716017505678391768513790859198391226123296614558305688130897078693836011482580209924383887871205722787797489946475228001140995890010001701698055084409072091691249754263815704517530382923359373844029313258120995681677011631213063285674196736633787338418279058690127987856349501142040824798669576083730521434016972676533191509445180437847769651025622290401182936857544543278135395834457655796664109899487456493355667480014780814398410737967051496439088352447292201960787346113489477785154906904081201924710772816479073946240329350885608296857265563778084990705836958528799611135119445465777885880825439862232974260380593387679196211890413882865043655256993939545957603970693992031702937121884426771869220217516509636606387484416082865789399442252611232102126172503778914886147385142193937189404786639404351744826225849982397461549643276453958677351969819249277336446535127622739074501948849749008934193562327627436169973593922168382631151735135140921335714624026881418391382364628641976231889313815379203441833706744126023708931070915194326733275327249184795132896612987565403283127955730016469414487616333334918760220348854017030576924292042489879738309914551903161922478606170723314905293392111622388972942224680206305718669037227772024894242509445295030396428609485673207373215374253902272017962097357270315535088354493633086857913306430257071777348786837525988915908346573292500742381134011730129240648020925622040707574281550728218476198574994202383974338230994531704430583993833245465189373007975488224984115398367323527323601592837644234192771332750802697247561618142488396178117495259351551722588756877852653938294995868444415481818361094975517447822927737671243725281867383200954204449870062114896219688065876488848262180832299780167822081478985756195048932623816787248008764325652456239883654027965789191573394806850543282722517234672255861246436368768332149189456538805301982159488724002771460061366466197969934124191608480211543757315596282088171036786723645881488821031500090714020490152583675741072827241887720650670011458563288325651624432339437650778858147521160160708493316316253243768136453255443914865315841669882666390363043139064923703774638127173563218545478241700778453449309871809982877354383044234362538660136556661333488658311901458068525717734249198886989674198831085821520448472966987092394487970263914814044972363563565709950628166831452256365694457435480849073980231328763110731141855826819043265438957259929628812088307746408001285670803950552089159908444246824561117019067269777021788610485261537975546432009517316193919370000748346278877680386330583115356563206522122071645436273467067395418455683008892155315183818465428606592044312910396630803739417267293304024324054717207963222039534802729287885511980330289416497884670157127795532634605341989753373772219452834970732605220880142884122746597261848702515091444974588442925510148028751707898119395811288279455263140752335392353330077619673903594263975976226460970941368117150595609939852049325233013241847160087272258613419578673838534644186885761890550893990832082584138683584421279838978637818868615102010456910585928370975118969667956032985065902850192240764466484612358921583681924379312811997568922978682716515971082556525933756990985389939569531014205910092919021333930135247480919217974966930267282109068296980931676557767559538107585374856588431390713296095221297541950811914486546707432353837639957793180927119460092335400279144602632147172178190940790160203294111156965393258898756507872768384679249494112615872133165961142323931274803682518772029889826972983940840572829077023109128782778952510422243039679892081938561044965141277190732197782735505076140594818245758512236529018796531910272511318592310080396530291723771041567751345782980295883861514579860833196602122475613359097547930206330580491419952882378558482664859287215022934255716376747880214796536041201655666955924633577366223148553020240732022046101508986726037218106397498154747683259947958148401469577363392836231870031789410630483623487124343128316292657937900679236431084413116530929301881166986434194974555795793828888157554638956687806609034442528130035648061750397574005553076010155851474193172990154787718367083400688970674751528673817236217236374990879399742366763793083374830848883143286004845291252074859330973432825044888213623863455789384752089565224850672992071105489386493471384184895474327582287157319874487057264530683797062438825562283863069704895326979453556786443219295038463758417265192978881969275166480529163870526102043912182989929820558064076083300447756831796158907653869729242246393799742505519280521287681909011590309796139731893374693911884971453269417644922490144713939330719105745885999707402926069021542704160304747610996159331947234480618929800032578431967468732383572856880179357504963143331434584234558133854778954308471970583458932424232764958005778975071941941255989834626597306285996520268648050170528540068210499602827823550402921123684962270030250200617919904386078671555714150508337558850299094495236001957888612118584901075524332239017933426293454366957370645077172437767418350214185435038125426143257742304596034395925643564196020889130969543162322143416326248921967232562232736212108995453921603428792162113414988987783546094609592061257806262248323676620321505450053318667959391938776025373964465498856436816384910378964235888699117834541324434450816084424900580089658659553723641354274355199138042323035045875420638214801027115332488514825132257873232078538953162159860723777752110120640607267116052232674336531416147595985740331598318906125238001099143259785456919728029261465927277420900202635179971146191498785831628172218388930410967870677337350246094657102470511205306035576246321850374002953021167265765056827033725135392870446144717408458163583604821070956076332720917815802510416018559279834938230067519194699970330569232477050782409595964511942979351735862840771772316464474637181144039017688948173006130877247989526503034867979580944491142823762994891545206422696234309971094525711003119917863605655603731975033312276914601407421100428630227531173189975846072648101504637219233876998478956227217640858106773760556349213646838433094923175748125331911565713269762539847217071569401388253784489566336016550154597874144526037336670839113394529908383239109343910770544293395164487462693787464084763473638472285908054314413724843608374006975824409076601413748913420775792695853173017951992211526416849334546528784305692494484626045273972282423258128365677559286166699731991950016011582182434394729274151176630571913529057639872191640949034625485205783860583284608605489063027364784796627162659844903470159257739514069860004005171051824287703710194500646780295216378028594142055317050440998681835451168544778256343711779942171940658793764142153232588821285122498990422571058694556003284459448878440399523169921179049068740032989731444049442219882939584809281300293882160241712254430459358970561080250902761246997280758577585180117914618402255156184763157552693213762264458855749367862126128682937465217469925906355424975404868887996531129393533014204686442782837221050877306238267217492418143842828665044433261116953657853977535921055928213579679246982873044115010462630566512570681813958371772177118449579431357069614132891855470187313698680399410219350036483433572902278180308155528878497087420539667145641140293145176532917362457309124618165790042109070019550105715060622154406199175990454855736462714182223805611183984249600988321805596225593593964081316846996394078552449069374045968287400356915757845007225895568873416106846684766876756190482190257696600812818609932939337223924368163360128290957458073280160808533277091767651394318515574253755615984911954282741396494122833337081723282008477775474123689880310217715752604312125575776143125614933577155710417067475597551251363475049902065373600563677259440264633200276145105847029857946483186988963066633743986378945282494641420778118747768015511531381936476721609002456618454332795451003132043683761643706274066949301802934045150661300472091866805432405727389230152986282572193157967935875903166524360181994735681628519169554540908250424151634105371255193329992388611197254422365517835447077309917083734207056251823242358985344775169028337501424849792975600569537123696719179407503396015717324293362753696035790018724825159680603478459563577867252419058077721649841211938862340845054915405429982399082413560180693820772403784623347459362443941907434676012390977714405726131815809134910075747945414636034484939171992660586909337912631136109905382183810770252129594464450420562883640274244330187024927608911684966835631054948971500231192826517438194059774276972168900956501984589951847669844951017115193783795899269280623808697854723046391546453870576986911620755702780969743702201058885248695080256194002826610046968490327629539449637837225009322063604922849670484042291413122879832486094951387438123636270430029842740760833693304082001142479070728816133922769511940666115712446068788350272046653460698321046924916966595181796861336825979838178674247990791380066668856267420154912249199749584266549488079685978695016624424509646049905714286984596208864625115184915747229417967077855970804909065099068732099381196188452086342047666207829422901197261700415234555163505736662788712701106598029962104046347642176713135187663015602188582748906144578466691098532545926521748647882397328474496685371355569774928240943342288478563775268388566742790420860249032956975282406704580276705769205436926988787680993027342584003406868276608971612705179089441802714406036014257107335065362672335435835403118528005190389195390318759142161536334071976478076922864045402860987966202951465921290901897543530815924162628274751975955238030215461544105530284067338516289046064550784268521780862433468750396581117709606365022484229284521803427648028582018937627301537564301108205694994652967928941939055626695030618440178652601073333045893208460380428597123646697496721105310187349725624359908695508183201451324937165406429338674383026665367659483040028342154887541696014187759131662205338545036110281132307007766282677483674206182654774304600218997551016333137935989115416801134931678513171180365473130550045689832028836109409720505473188062261544802488564630559846280085345819481092999028772759079359217207589451070504666118210949670182716072224171491164387326896818717996814596422028277049979807439218670800021521108746428728850222739295112221595329314755721574812238904150133691525616248931720091547823099436736489696778863737821035593570803810832877759570500602914989193635138827947906434917871886292745046772965764283244481229997629756358481737920234269278381539903377385285192276655572293612533485070900505448183197884958091767649630626104143384855758968115389672055995111794781462162968673995765376258055803820331863744866040631355877946699518262674863266088017163274182940214865492818701829038523438600576028744343972394287255612569902584609916048044157667315075308850705920794472330679689883136247674942672171897511632792966094113336913991469834204737926038049480348218578261638277900911550954506892757730987903833682331525284566190346201603571451477569722283093543824870103627432232477436626232396577902661375997413701503309480184014302982121445558358714771202007686809650343822102243653161544883841393564780099984731164066620673820137627097762753707245732132108808267356594804051310291055647942030619311622808023599596486116287021126490158492810933085725484401073925006920793271888434312762208655019768521759343414724195820395826142999089064849783171820116224445858853730015796111858777027507942845530427677762797149252969737008750634819458104281404901569483726545045020653520109597571793490320122558105015570294203494551144866362262985901649303583443827037194685442144768945126182145705551985726074378436809285355823998436336246255005034424416601111266814565121370096064066921805355795912378437642098685856779720576172677827356520486212069328763274286483330366456786204708218709450789427198375440686665154666058605592607225616503954178918360382189715302403581887757462741993016430667245202911980775988537861451106013211069503997727650437274022137874246517167591163065472000109826088928575346807716489594704943765011443792666547542212503524698515317106703869602553080188234750430795238606941711039340212467282615975146602557954215466460628310138018041940669593747841680582666943733379850138847065216554791887997840099350638964858250466149431758818769926196536468892805320690729413354284928123630972305661588242020524169958145452947410300285234009804469070311852156544705882503982494965678524444316163973185103995884275029487115151215985506302624958771222865634404821595485482195766353918675678530136884365589817767959513671576665665687521190470142456009355429508250889542101158061310788383492942974192389839306720861070141000273570240372869328153931156654267763743176024920004423926920320833200148111353154008327329261367462961569662298566733871534681988592094436902415801835671943066007147978172893556622233773808783984269090952348060808605715969244346715210492790437158872559200423755598800123409030587763296356327474651973670165360109628989123725899780846766260060086474185273534222326377344671469319092824127218746393957682562476633865486967257403981280358576298567152059687595891719525222926704048186062319198881573929847959829143344949135502714779090723785972597022836875466643315798167164675090356059078531049183341520693638012995236424675840669297475411274177670366376367853237215108246389336840943179908565986115120354661808080635153464431687601598517795928138204261786715793984743206463926252810789512119578098138329845025964015170088163486484155161941062297208853639704436624411268124680945831633684465365190193043294162945415221704616082458479508578858164276223093352641536350146501185245065129551730055976552611855627612779780035745923150232953547046174908371501184432445022170044327843697226741204324618006107888030752241423247791992235387598648463917514622345339534856282520777029776674413276320155548755129070996421011521277521181804334788257853378083495061091663155085292031221890014176842605493541877965358553583902766125931532528916444993169654680188951417979098821264069120265686817324854693297955695394865621253140711300303500301488654164783540630597027099159011258991614171883108344281319376012069232432766016911557426733287367170406188968002585422221555994467439408145801815769130394531704112748309043383582350478261044638717419120116375882394371126479873923454634778131928258800184729978078639737057543721268848784984833069826975809139259449445889117118978332737953853885636351506848964965129560158509234983324982863092776086076554869125006738338196453711422879562671877622646577188294308644379916840920769448340646219484692622782917907706789973367412932896105008642515370931332329514187587059403478008407469359051002414836683621740557985533874478953581402871965401297163762922600514050012089470591919070006879588742521518235779722247646653321564501161576109374069479992227398361202020062918348376948356561651010408242026953687848347880002229025558416523389908588043516007106966892962712709718011351370643713352999152693814466663802113229383231731630839289336661736732263475873901848142212797096560420796072170840649508588834030926282625217274755753477762323472562238386319150165174800558094623425595579516563023112976064287750163765001035401849859216186058096268084997416231173938608201413103883799640136769949893216729116472015211637769252017081547488465233021352242115577734092207843338796146376911016616047423152244094897526083855059250198578775577959676584845757354302315630090228915110647001248047095309463428830701313901137849014786942424617240730080265764061153503106276861452706670267540179407612080178564131785032870993631747215644307882564061920474538994035596221583977853598142056387633272730353101032410273860180520341909648332578722659506023691627593756812578561504995613025763480841383303080234425099277649185753323549742726955471890923844149696485371578684848192286099806533179181566296839370289560733760291304727609128659307010648479257809322405130578961700026096358588948003741250083666442545638416930876596048247204000371655000378569205030930192598519861158329250101066796927638541131950436802131801272904909479591108220525453525471855181009794395854162642544166796221814104356966090949908384544106853420227822373931370201263527184902596297117302207772696948931751644697487558344325896518826305269550372133529203709350917069405558627906095610149672455860212678265280477824979191210254963995385677554374823270041119156435760310198353450956373150056702091303109407898681010160364366279130734427837280445651414570337709459399722969975475724950994591852088164198014678589852920846743989806844918536119619815251660167850536200227769558152349973194572872649416748755517598610404493217532952161084452282282124980765528229628110092337590353172878015116150763665898143798326680637566052052741117659692916356387953838407835371046223791196634053147485136150316132814548081268778743712986660522491920422693839183844405162849427461633616782454030077927580721853350804893518968523381843784161438456584776323796216254524861934917011906961089083855775521113057363984808762823470584397775013900437322379672328597199803263989382784567402163729996744430446062229075663950891988805207028107145757745475934903028044868181513149000348481278932462126241057816492464449577577657543161671837901210903364010221801860429081670348249140084073663284512802289279284419659785675511692487076615673494641621459201251602592930009396811319517600543386128839858824259908490723963675481209710102697186104039099483732938650474298313921255129887428427400700048526101756894690394156907422650062082053296411937922843773461290105171366400443552828276781092746677514064106942094518240620868006456193865827355656754606185853327935253200848398720182192387528380509245155222483295342911224817943316404537906807869603961300714805697949661930984618492421986920056062083636780422539282562426557496462917103774326532421263453985814146547174593811122415429200315506317339394627427609762988426472878847080295897434262548127209930227174359364978150156351218861478298369670367153903868559132487530424968291470361843062674638936253865154273223585970844251252308098776167408883455907111414943720072872138119547413437499837463133752828272856440569115959946710284956707678054189725702216124579542097454330519619090277810939979076490372990637676179290196432917142602356240820492595315647100159363631268120089699160983832938428289138143136484734823482672367808239915561998549743557340531578172865566643423761149830744367328975047569961580806156850300854763730470307859147998885394464357743752969402169691514493031424733513397988280653084205860780772122311150359161014288059472455778951374848997135383907155199258803860625349030859757279791704498037424962813339828545265901640524674093251068643034138372150408008388907173129742620805858987015572652726734424385416571353601950075341033532214802142882034331954717458208018235504095767484386656371248097593700749353967915622505496259239953783118675682592322093809892526514421237467040962631492210677637020263245527380426218048148136037542534478135743316933882376527386129601095162532427055020274620122903185455864970007923118847057264843584630686790322841478358176740431917132780054986228755707417621353049130911354094489954860126349333225295444372790069928476711996918897582883705218023234312454454768388083825348148476696661077089388923561677188899610115904071682873493512560312276016698804973990150580562128310387887410426731902874975975311543582046645733894832542911392170105277840603890736316665550210603796170957675702668138413621717362577353191536904583728927107506704632849350413867424826661991550655032360206843284641894267949997979661126426789148668943704663322529816665940934871215937922888455542755128065017659392265425803562909210637205405192078581477210748745633032452146118169361819066094380781670883076117315365976512087113519099963175968882247893315507362270196350817208254563831518883387310376998327658574562223809856336461287780000291996800795964834434130627075786546587857012364060617426209641944882857545434110670478748361017857805272413444024030402062863586792171684908883791225116357545295173703389695408467628946999639999635372455025718631719502233760142113141123570832701673547183581343573203175313466860185193444948018381246511588042709913209467194124091409827617602992672029968383777828139843019263920258372143549936077219764782646539522475847286009549270247761854695951590382889453948288272936254192363560070916213250651785176325373611221839353485902827052513213030782860952427639200494076134893216205133286974082864527055384877628891444886434743434832141291707469036836462324982373186293641615222025400576851421793647984855088238201810361751751967362148341570186825742165281861096851484089406771159506694603115238421419349239197883498146546626420199634963131217748666434295337733514065193776266222731002437165356724925111147139370635190074034025203752560112259861304042368670600624199088670200113251688300537736090074433060303099456757234718998959111051026248190559135542876114595385643873472846216719979980025862939397713628397189646674366512355523682116664286238649957725122190980359857851034661175095487787984439152950878102434364006811699212477687029892188084211703837777778756186224210920385840950163878974575267250413241122599901745650781472600035182644540436351927636725960501491759017880220721349838125379898155704695985888794102824010540097364685082011691048104087332438567902438331928989482745508803299374792374020388668416158837653235186261285615284033678653355065659713107646022664965140114347010472202252945834358686040527944598141817171485368019946923545845382278765925394649028148905612087676651685037217145925173332424001041609361843425159116081102476749304984343092537153104803191119927094911871044627030772757724364607919891099426548308938967386387337746219388465525067192244192733799129978654968621444948888556930319895800563622749529868794114901900208075053614816903239912553219237119310420974537813535111458343352792531206968088085887044056342252386207139605092800388478595662308067410400862022086612698884087004596904767290024803509174172555946092625566857264117682336377185020743430574871492611652990854647036136949258190209284847948642554031993453718230811475790469194460704407289225942812450301186563732179596664913129524599197805124233392436032855767673753135654006034863625711081026290243997588663623601286389817305725895648606463810381468991959623230320969118537470864704332262028692986945438448136240152756568378265193836131375497307737947715759155039427727759398728109978287864909101306486790210312679694389427192428416682769422196985089976016455044894085357356350441712651568356691703849079820332443572590233700203861735758871822861482350109101526673591808886989741593450958469454555055450656604682582344645873435062889782797388664247301016182972362989659075959459231001855148331911903720494875555125704959885718117879040428252731342498564590626535302949512983950446615637973483199863736898529148740513857947198830658818449978081698337699964268515158998940341831461139327558286292793259580985889172535940280409873013674470228920705272075138853047566923819996442140106085124243817129842980804896418848718810385809849087985237535596438155181324236742280507912384967399218407622963609822925649531831657507208980354146324015695864949256200819902857024268160304036037939669850479501402958332777588896114339142399610450113532135219426225477291454519066239098875521142277491500882564954135438182704565270094903284092639859123148508467241136551346299080515078931914274199329351516519514420544794939921583892059043218264897904699927456436245802129322340829098079920673783603799753140615598789027772153533902402727627818027932336425429255714347784956088718343375126849698909263041684680792444063958991824978652702302059762272866221892858829412316068482398423398346905504372194379807447591713474551584470286909699514348967364013517346491723099151598557561976198127979874664156746227203113190400073614652787900035632648494265280297289672522552313760162793923884648362110785200937813960330157893703500235797467236397886182668595642548755428166809702096913040859239187186107362427507788726083877973999611170442005458857299265000910475328931506961839669958398396806502509391441598690362681175191797931653736817270107355593909385579427485858932001337656170580497886622777793741565587519263067078582993624816816509712412134059230559065872754335327164744947466830203581745144757219843773371086517801240082991652219057162669558040399614006042781101175389831675502887216745170444060076989153629020552371261612158688238978758487122524086967243357198857618717215555900672895255049333777574466180511346215509205174792762960096065262801207741675873482922289941656236193069039295859919196043529305976929151903797704348245712683325850015532613551518452678499809788818823687752754559135643257597653679512428242501017194232551886588460100142946616050523011476191071422070888247074102559267286500111536490252011268558460532043931048711822838055234673605402615236390506842298198906834045499798081023372920509037997004253798839276497858640260687575956394240337499020822804175404478673583683762509034444279341339708962500493534676920945840087859814957183673285915635555729237602164007551213476247688676390105739613601080819753879850055432495409829747054703503850808776077662009894775844104866490364244479250943706539109445682806617745991826141109789495542536774697237957103511149523226394691401425410871601490673295956886704404926227731445140426471438631502498275248566164194330195668226007976371320423660684543390586005645172568498862549006641040106125632514054578274722384170843973792766353566961935337128108890770310092884026838562781582534991504268655914141454821040551986449903353838163877665888733286248907483914052070970714514472883015154027287108593718830768140248246024937700603429957612244915421295862632666576303099061022655756107085085466651946307836248447772132367697889509272313217549194590767453343217401055866231906474179057582266824287443584897487826697855702046522870333080555347436212080233015470801974565797781039310276923185456144795176403168026716631430642272700296982858182549816042436142879342631872987041863374543961269611237869617403673395915504793556453853619158495934455905235195953768262256133707464212302466979856101689316569048532681123099613318146179716362595698896635289840830682236299659682564535347759776431287894112306731148319238447236073305486971648397479910445515388660908920098997526383119972065900763995970145462637798073430304362819810683799058495563616157501254215923827789297791184458777184221689643803313434339374885661939513555931631571094017559479826958037876428097640108557004045002181727142715864400418108964415822925679252622454804194474138159624484719881935853359944213934076168876394172532383020286864591284357188399478901610173471280730500601958003019225445042827042451941115889984524947405791938157438498632899617324922306263908597914088992842406298002332873643200309944134039365201686422823812433955902115611788478321771051162040971400376511038146946183003219044421019180504466123350924429300170490069354839463114319771877410335888144651370303738172149044193161054912244090879784362071621198956318136277806833545351540563713157423613101156214764123778377549447361098150226427399605621133307021819465806871051765938841568387412848130935463391852128655194439904275425428518871826972045425401772590718661068282890903347956602745381635120097128407196579061999227784807827556781889320703429225682687728030727909532302013112097526159361799893522311445707363251599700747694839582616476923695853861152162690140065945731242761344398934182862954952836105784031270023512200229733755122603130562908983148429880394579432080369664481801227986067840935396417664504860523327847211244371040687337292642950092254874993544124748527487276524144208812340584825608372526264370206538888792153707636513975301298372552148883524137623386753287547247472575321776478243420279651011033731128767814768008484078314126847668858148214979542793178439676780786475008202168478132095587943251900250049697175389808590342715587569587451587457161871180529812845425721321548126496061798003945650828357091031713499885155084469086464009749441706474802520076764796111091555003168350942839913838882071806166088794946821579291306211398480712665977197725913105530447778592277947205043177080156707565790249520384531756791103397124080112363446736017987170000147295918562308853724675769576211759874094441660606260224002916490310594339845623195337117972017521176558039360639750219472944438478114071492619379154249519952813118904398981668996614137256355684326170321214936767915264041076461248467034220438506979822807089334433929512490158395057100545211969320860483740445051533319759246729502867236790532093021700551405686296811544794001114470689111344633486875263168025107649809793330790098176454453460992596379676941707401941008946231314684863249367613867685177538308946170681735626720118358830193509834325284415315020390093723398810322658280222799228239146245806600911099387936410394812791569692522304418974100233293079771238679069102589039265426492547073438095871883026238971033077388699542688672288497055114774962219512466481513343302931996112759849503794991416920767005840634494167720693821743248170440987432969309710364757639334279795595351153107118972992010344848771102923184303297224105639559907509856567510027566041744280705125157129088518253953403683032655764728765545975360189991988940914171488792178540994411383184001618879938721512515975537039884802932393298781059002782804299352210294964879346955031383699164881632847790095253107682111959316924367398311754834979447702884710148180363264177458898504324600163881160875855703596078760975463136744786193216574870690312360991219230690425808493600932974015055954562720925619787818851732050146434771696626137354193424936076395491437072747084607962807240067203169945001958579386620998707419782429432068927115957628251643215893555381575879231923183831608911383238844345816502797271326164422410900015641118319059525419085566751422850449186894372083651566238842947063708047651676396444564032277874622013835470294259388814017310407788152350938312986103297538293341537549099293584529313396080873313580653693306911155908860843897549386432143558968456971419107654587913254984314579986700613567418978839909805225126947343005807721769851098840812159053348871344830890126396968566679545650243645139509474473512370917642313745922222681734442053334089588333203979470163019982824708849081631166226115504591759647788133459366874752573295386516423553145465214460430384308161026778887753645682359537994274130910371503800743426147942583458494926288268810718401532243875464643949701635061667258292465943831718728502270497079837844454006107755847989825970770750308355246090442469400965780667257697931231978219284639494332912503525750934295947029898410074014594669128822525263903407726542401242881476456752675066439697908975013938472418090614261133798010771184525950769695158109824455524633066908412994010682844051667116183422725249490485021570816776941610404218332410311419731146824151390264378723282773708429063880132898878010250834552657474458437261024363231177271204689915313531531482304251587523196839081336295673748310471401400417271824685795082513417268924947726516196175404955667962715057884077165842490691203771458683698222537200534243488554480258563602742227499688097809870673071513623223101869757429160269964340182672285343235050090056497504222273652611072160839688685698371170600391017334870824630464836021609085439019344397702809976397952490473440784489131199283551085187013990596280999894654201087520136976155840207987576266690161307699953825521289423129479560524697189056077268329343768752064461631122376571423800929268064836338772480253014568750994636306467168203021624555370736413310177223169320443771911066150517784846211332142590929444821504935604131503862630587018978523126975595996376199350363847945152831502091827094036796119046015348802571463708429189838181776738596876350399585089913948682594028410955304045280742089222833187024570600981671444795288245203911398055635103887030030672103574468912339467775051952250229987733260478580391214671941214349077167905425799119136852105905379604913764678897925828672512545067052647478285356679919678242791167875802318924515479658818566427343128496516491030876769232218943638531982977623201191712708163873282811785404988307669830824602445041286882190165829643689354494006381461645747824232935303211796108123596746308655848576209504711413617133866588478682867915992968016515583700251388260287986394459906016193350763916320039680253338922338668960834393720460179790791903512546930533399163970709195325460022900216749066180575736633595397058023446275330464803541172325558386327938016698472581908510215387292244067097180907943621277340362350551456344175983660659935910552174771830380548014052885308219430994724776864663916271072766546002201631010224711790102541081559365833285811831028099329202751179355333811609868751633159300676436978600137081924174036760242611256263076671316860203619833364623813959925047882742506571937803769026969811671258951499929253582713557819126251541086923812818929114410881208060077344911853755854094297661009229599893105564102174555319332851112216295404974412299288574062413962954132986170506451920160424057795123775445907213197526845795116808123709926554944411387805913196455795585119279351913708853081861329271661481583922878058961794779565250715064476686069173160213341785518728591178736015188209248095296007727721695327621354396825946371164039743992121860248481563877180950514225363244053171319824074708827055177002068748665217865956457176229416344983428621554673139652946760699413606827068451484318671532074711133178377259774495282450274384456478731290458653924991014200071690073943552804264232575795590585316999284746201612442769057496005515323538121853945114906626029414993382258869355146479585732150711104869996293440422914366930490505924188993244631831119092043758146533243361248986653428525763507915895695501765090688425524958128367669248977768902816936444280590051514967651147687806270694510905150766753279770117499647091472806608502353912849398341072309919982963568262288969867460415420680649147284240317287372676464120267347930314078972374130157506871126344663033491394626069631944269782961384783964977293161903760934507690666871282237995346923529246139865325998990943508790834824978293585651213869925454752513557174204031474891086886797261507745950739762429567164136220117421420820987853880218927777927638522343189337156309377327121351739655476435558831104413934654908977937877552624503974672657493017617993328513358666681422472464002145078853217841692878244272634574582567782543646812582899149807313159422693393322545350657412073290340161796707969777043668560514438925079121332764114391553282514337726165041722505302284385717534988805291190731419875774212330517727949633916176830692682866998700749803098983537956875825086281660369817184601934642577041998087225599567006962651575927581715318856983567822450575883853227241190408569637100103973695112669857924648029892087843501173756435907688827446087926287928401003276014796340870359670110360867583438233550410596246435677051542618150578055619050577906972490396635550823452413757664727707895300259928227042829506693355334594535065401907227776497177040814283930084034964037482670566383141622649406233733220432792146298203603680555523021077411478711655520078565147249902081135160212139497567408737716498349830879042169255294695714585065192214310829130823978658680083105424229748819956512911175434705620768809634156524941237315551774549994673135167881100178187563352253260075586247177184643020128928689317097222911951388855788408374405974167155409492789804794055485430556309685498627898097355120935324339179820896134618377801821175290241502332663268231450907875480369531677401045286955554085028691022514453166428388279327446491481423397651335334022306313055705786501492033183075676455684597720431725154141379575061515037182569009082452002422833617991796394256431937677373891802028599221208832614242781017413083454395589699827808023008310695666063719336005403981723393845142659516840955795819350840363369154551834745011462428077380634121711265412495810138744086330715477045819942944616302400546603954881689598499324431277973429765286103689653098452687602928957300996566410003432615834772856377769204544405728197722941271760632466621693336463067828240354815677239929644670415667278397245128644394470052038681862397161390826733291083702824514214304517952909647340950974383820998688429187078313025647649260821592912644152755265319406676368356316064213098594918816925082651568545194053123925216299596453863129534220936932876376614060093533843187103337866943329612969548451092422356313973770326255440681705774550434649305354813296693420406531849662924129258079418284320198860632464786687938444537658867670255756219792305087676681283734044397011578773913052399032877030538203240186846207743375949230193148838321271395514982200860554318278164859176594200752330203851830356658271807646105909286280030327733651412582774363677780980849464729225465744806288974279302623600253043087534715677464082264311699957467955001065463946851101969985688688460988638232226464036022290329722848086963810734954813399715031410406410747786212102936512515983872179809651355195744489398338900859482618583531512178138241217184920180808825917931761135159513072042790983639329945037405716911795770468161287319281620001188858952674152793900086769756715586978340198160497330939394089560059431505262526735528041685785933901670188953933524401895589143116028237734031509883300449116663970134631445970661720877528403382268832836739618068142330952223741206469147751227508231412265686233633979812347155119839060560618570702091817310069295314411924538487915270850883740601882860610411792346606785473618418350529408370478702130818592447084406226940119628471309266822357159246614138543423836178417143029347437661921621208805994943539874916521996674430457328136176110051491276193777691993218208905589733748965159115315073992820334877068579763241603567201482282687837424034410838385461245273139687538596726462054373101174185661316773248984803966246013747613342587245456692390744880745939468512173157532587862987455158193340764920331091048513406539616034313289448577676112287410711453016425130235236301208272404400978597848175280658373836276325925306372904771809120641013328249897096190922783229174484661833667187399585990287184728191256963959932277638915717022271637383194663520120390695681589483325343914698181834457572673319622064018167035977868938578757249065175029134601530549709586725169604820719295368311702335769471424017039269836966821382071056912625904737636620642619398793245544121579605362787869257383989755960740028300192365805653677343511733436873480137061586223128270691653288216083910610440719445627686275235276470440713399618638895062056995388597727173893552718687863391945355973316577118369109870222476732806982631296296922400661376848659494783851069036427292477308931998218322862045414073026647014290720400167177949279399210989002919672570195473332112977175350856137839955064989715174840559469774038828377775908466217178259556104526948860039949735896933615357879876086818615792452794404075256200717885619144324286195834332640994868968970029978112475793702869060656068309332788492884946814718712350626938275256691868153475708368497982500707452394101354274422024082040876267046092449864433800558943411839140671000491326947409928480766862612414281027062761825289242136350540370742002930197005628595255844067355660157640192679314485593112504210789511591692386072864046357212712080278297715975857099558476333224181101576154161336058325915553889520836715067005479031066470750566690504395452254255311791329119133374478542696960204401605475656931503606574087907039796994551140818881336977257273810407377498320517880446704174574259734792581755050615765480171713991507296263552483936392137244884040963733626684132068624379388496748684503669661968769731667400879150769157423073834418475413727286801298997733231590692631239187518170244606068835489882435834978839022994464211409056854396367157917012860624093100396321393219290496461174656248670751057628265280146151361740677772178193153581686075750981765482394389691756633793872820684528822804420390945703564784774222817779667261901641137121188806700105134350288014962838261187974167547291191685665536093713251223481771641127444143732227948940206976665008511241124668467833925789643036861999337845846552886372705015835983474233700939517040646408954033062220773143144191431773453935763087968735570339240995458559478134311122479171651138606967686886557898364154820812624028813041827907952043241520760108016736450818364919248408153133132011081312657408776850561738553676864256834861984605939582316224319616617462829536184310178013601400617442041667582726156391712368724747959113138218921463520444238492108330402040112539789705542030152273034161205887522528286776378543430214923450412960816526828305045053081610820219182614418207004954366735100207313634020614050112725200823654306506314438380164172828174457024660398309066129122332481908812035827595158741611427988823435129022894575822556425093159181264320757697720986030928660760525085868770113248955324018348083305942520211754195060303296774977946908369467715516974207360206679074626773761698562559964825817018146331974194146134752766772419953182834992622397708881763536170457041102022906544489674369009679177229195243720070642456917487020059656210345781477805759813711877177088084610329975968524515638767512989006432766640439783614935841808594819801800318827604198888426504090611623934220365074781392640794234873959730742499426614739361436382003890234332492833799577599183370051677873687516645310251021152680923882697102867074026674231455975958686716637025166761141231603795239974820782729932245100621899582883727748026069345519528151168516900017941854662225815996287028456410253814022619035666129667971101586941674166895761009518358639962955209980360168431384401644545013034211879654219895490191773961067097264825543803972457265615763885339062411462552189840338869541371700071687558162751609162424649784784671960840449415777716266762325877298597370083990418028112449473156060527627070149848926798848122826859833004446065647672203292991622915971275179864220149950831744807142121367357609241806181390426649897277121715556056767302551926353849874453023247104986087012071774811988030725330000329772843184701888813008790935516873893075647976334044048343306425407332337885561956953117657766263747845914824667294398017688610649949091522096711625514225230473892753503623141997828014727034409994105458507934173753435058651136272737586617710271204414849693397111476486785410951801176602748950900270659756448742850463766948301282083440498191869024162070660064578558970594120605737398625698754192766274605306868411783805956116894183981673725646245018411078796163794775804647389856518582197476237824817902136728054766132549390261208865289915194539754586282732223160068450910780508809950248712578903156086064295121891729738287459880025351898138634388380197556241992479058263608947671555056831615019096861701545681711563094365416656745781248903739244114710963342610226828985353057249227267277868100809283271637748919313439630001778314522346405156381470408038910722546235897416378348237404014701553566402824791125651735475417625045477788442754001248342357966667321193181887183491150202005518678692656514381796946161437188583471816908328903147764443450147323891229845294499217976844087545336044906265921816162203038649567770459338648942824586469421499638564226369576554188887196978743122735309268364671850114705273787298307191962736111550921609660810652082771542229519995048603882765622815824906608864455881711541913608798131558207409101386765038860458275440646289019223307973729882680861786157194337527765903559980375228136830932558675549577063941311056607649277721600140828244215510433247136674529134527637880494947818764042622606599893800920570351229398921658692163354416412882610861873550548619281441191495224055890399388341294338713696181432408827928128718789986111866083820312206335139157132226468442687196157623328566987417712508343482980314958218653548341602820027071600327341998073169390484858590836337609001318960805447534407675989108155425024369864549860151367945089982770798327564391640263607360820364437870410017894791439588720253108191980116644141247181583024571271126519829168885338644378967869619176080034104858369400574256741950582489405608585090904811354184753957915820864687951732382456011647512612803918298007756231637438163330623010047202368954339538037794750933806751470152903796549078061358988978808564189342416720630855215881735116338019814369797232614388351942999721965178200632010788441947914886950256691984272901665037477707491540976497630255558457160472942366858655633908291092660410608894674726639702512224676706295419759929084318686894524133272295307564134386525080730531698294315606530392242010563872503495023616136071194694972224467965189470073230062411478782565401863740511140105079676590295707374116273625757540484187119213016051084667896506793894229673494825218822724312453002740690866823433251349457974057426704731241100308966543617721079949551571528815868106123947212510422623420448063744172987920331460993255261532965069694341354319110884811482276477102172813070699138210358392476693127430653172484654279434906181189661842248758668021707771229030524173294524905843270756113380268040705776343977391701266727390976908241751199712266078592082398393819996450407165496863318063804749724068736309428548962319401365534940526251309750616578615541923651495610773417960991513331616718184112763855115356103754374969946505003411340443152898046414842012428689243400882179035245819191495983517297418089134652547406171457637082878467748459312978095446621276010320478526254030598902510699214441865054654125411318068976953892581598678100185543403893566069127380472989721954722936269798649192675124321766353548289230084935928647750906171534638162788294582670575406892619845390219433257613675607581295970874982703270152897288918785672125111732327245225934249366549175906945998189871801882056954770335927741093875317795957292503683142803443512671853132889904694468870517407973731770397431852578875073278346960826594394952827524562988696290911000553567378867666947024564958839236576725452478279839740784132225365525043771622980793459137112713745144479463757748536650204888484437782149945594522316577168608200463580107608127507253613591763746417345359792344611684352497050805872706173609794453823412160040245989423447328669643220991876005860660368572864428877076202916374757574826254480798865772966464422729304234474139030040022011556369006660758375536885202291337608948571764771911982102119847142148738674423838005498514417918057913036703209316787988147970180573612524005711230323414964966326623076923998379189689508659000337045486144898664264046945936365526097662109980706781860406110391905077694413865615837420504576000962552399561304422466105429393885137421884643686211708269972704758100420408468930397340837467188022039899732479147352331855521274755448545097333670309746908181409258285791846969874233017547217636548946628569787228424385625989827575995210166042260530488444245114130086599967874458186622908808940544433448007461679772277116558765205244838608230424840196801950268711573675223714317034964884664719323852360789999549844108505210828969201461346247840928483754661267528787698962237013457612760543694918488602780076981915918515995771699422185202704284390053969689134065633209528714183130960923331571101882185503850909554158777729174274756298934990190734324661047500824215669005981194349068940304411136408146741425954549534836827451886243341145372306399191985433239200847918860122976008786581947019497573367195188658797492169548882036670991995465029967419085244670398274388249599979435334440230543782666586676527032950127005069032707491083285456403806340841976881519895598617647143845839550933981719736204976647378457030385150694767267715667468180846782631114523589462297871274841560861138405110421435725964167885380700053348888243768428104786459146866338356027097457952586275892698972596922731808195140190224847194670169362334613886626078837477465037914695708783291177737369962666613658342218269429700475454826213762250005124934783413753981907494829853626596765836146007952741739630419376754397612840282422104353102753909471990098049770299051187511320665405807125400948744064711099721314326584783105091180627052962223267978092188881989022473508444421584105968539616665474363323736167480636401633377361946849365184849753651321368260668484117266230872579517719899572906260928195268632669832201482078722829301664185191862165566781845125271299939915934060680446612394045986828408790026885321294046881967942949812317003975268734727889143450948265872534455749058503031154596899043214750278712209417137052579218484007379233396547438642817034081159914326113178303184519353411845084214248344496698271867844014140576614301397169800948074166583932232204928268970854447174377905730898794084522023641889716556177154238123545376222218203713082910603520555917746664520598346201257063714684690371700380447505878442759029225791586515192331977162631988225534589893242396026405837065658064637003289263565089065334765033425020283524545377692120040229688294932283629117593828813930931174169976251454077721787285478942201773890516144931276906804192799950161035404907737762697325464431651966301885858482507148652427332294829517568187308859828235568315551799052010247865924506367461063345007134628680136912506699159934640741714864877252303633725370048048449835141972662569070832153539584064364948448001706021349470929729859416124933428177500664247110185019200549208173021975854146389306715168726351397049202450128456744429477217636010926703837429361361427888394112748188658932629043596254159915681389258200216958090079627353329189946353116600245990412866388853190402856875687445543879804174856343116669529295273446081107778534278272775051418957672095155789694316180905914422500074619929701843509697805587596128048190422770732648907018668830498577095041965588803297421986652877523154838013080347176010390697188896722740116741221049479943100839319849238038625709614393346833867246092202196972844248521929179190993034915944996367738180087026810880815621789582378985054672139964338268575422654918973513742857233205700425937299143639121988519339660592663598039933624133305325172624742407253920086029041498255219104629832544067873247163650517813362249290452587541438208201742287846602656753290787767322577583761830998927682462406988253759888945445904855465958120653093119250454735811758704959026768554518474126610641263650977009842642418863639890900302730960531079805285164121916035554500871257146326525175455417691158825625832416192681980551623720741915813376148135809150149415430234160769549568923086988158630881208458822576333329752573405025432100940416980094567360655302420951828911320930474137559710826757170270381887323504814351989158192653599012278456733941229979350287854381596280951643532595528230495535299594278389499913370977344281820027599362891883014495858775021218401444117163257989012493259182234917801463146126659647470310359852480995393550422656146774386756150865306564485738626839913619746437027584556454536949781681886554843086402728506689976101663155940189408698984455724259908676392315010518369662141771339782054095237309487573230798676664555744808187816222909095090882537683223424257454505483205209810771762238309522136802628273631513475877541035406352169176726006476430120079700468329504740000817646052889082675741391623466358488320856892532657277855625336237893979545590270159461581747731614900464237978756799914009117649125308837090095170999253449189164799430139286139562173387880682200765434763312439570958692561794981466948846966065998819223099425535866857271489326175374328530318934348393328155045569441061186531342066328457817981081402879749328572953500423893758680799733192031654123456922283421830401025750108814293507863784141082696307277590889437429846075318658304533000432023503499665598861505618260674047365910204081695094335039231389468173016964345349484154581509667740100317241507716612589261808797129869527055014591819889571536586851251165904620715416578218142910806225162284937170265650641891379522396020784320181727897937078383198138435916541791056562231126252714450800883654019313991732182361173501057296458305272567818492835091787142750719093840702496871165303377008895260711305036489103806247826326181826971924737484072733287211458916388068220292335836807393359474920110447225034573460665227701155739415045791922541148304184945096862855918552125240094527001266749753220198575340205278699519105964780418446175877447498843703250761362672362582891351603746102586518978519897191731143855056064211432124450914764590048737066388640665472195955204184716661643694995444833392034742722681648973965744015265161575831640463005655854483553602079474396150582493827067861856214461948767098769232289497445311856224595304328927803464756631056802132999595453115638480197287902880805925217989731419041354671203943606156616864392027249860228533019226817234634320768908246890257091101771216305742920031060741623020408109398279441877465936596141805849748735097497416420183395738643751952278464546105229692039167355167850118162668438789221497109162614467282370162089769408227490575553285640510991638415282812890742117570584647791784203080578306704883397399774346503922184690629606537091207158905148641779534258807123329387828024490861253131487304893152007632984441705512032811772127059304737184771019057399826055609028175534967523086761239753587720549254787195648554724263370548005576972907650318655695785162152399447625352231347311482165564022456086310398419792121699413663502625308240534427686370499357745899435572135864451357355755470846225856471370656432264356662241552696687310458148974446364637774982178625345765050950103145173736345257526022712058586435575189835134391271432314747918868068314864595735619306588171075815377527093391804481878611571214302902439102762854478484109257302877146085956377393270461069680932262425893908685368798628264501109089681016034488486716560570742047715285016693178040621011539531858987306776304755496197316845969335687864590070706606400809962512358435273051946134677384305732110545845395227885561330599630422346509926575736879014957583955163948410664871426912146791014953263244291126034359433440178322646262906310608789491152824118519447089318392322006134887028513279292430119825621413906127067229407634483380474555250187260034632919044730821203091374617279386557683284577560065091296670060989049088832173982550686071326701158519620352646043485318147686797040337633113775689021307414675750284923608569285586582792630733241019819369713516085749269100568465034433432707248336061451459923934025053956366377082284299804185306759553056516160456096344923070588051801529938403822588667763317432587068903817185743337674201234163085644263012515064612978112744892823630159394066121935645529410855645087873948153886189043541619237767801956314788997078338551091526955205698195192355473815981758832474946369047374713379485741659746275610071911419719414157937822243732247500789837586776861063365035647633145632123938053008251682166765204962643839876072206154558462202156910157943355150854614060296198692147899573860056515526887931475162872476409807143277539019120306487389656289950332552519607273665096757316043987028607649170901835299675190048200473010365723538270275751738584321946846646905428577174558037509438303399122334447671862922490891524286866433149803774935746492369911205881932894271467044237133944904988258137192450368764388308683840358844581461426027875850665088356229640863062165508980485061072166387011733946385733822690688365704483748069171086997487703563913337871414062801526304357159979198514500947711493507114899060428166381239360307657191167815159334998533748946698972442534851100769359126682970166291969342085196411246834654306074096263597111262380176833240014334175747837036324437365527738464793173898983048313537833642713849379695035333266239372550311617683388211787041276484894927973532289914396298786495220607848370163973800737194849900450787389190124901098349240679609476487433600394429844863871273024923773806118996984707677573256349831567209957464870500080046294308612346835966453148501670109399358705385718936677208613261673453177025431890527417597990931710132664963012616044428299425570337829655777640845356808022543429546289906999157297667666283001619823033376751730510035921273970641036517494078132179669830986616878533668266483904422766421048824104209982916695122780593701062552803995111712251986518107624008248983103836152974747318767896310635378423984430128789669069829005410615665711739276993446596858686939525399585907842634451707479844213424745704916774874937350295640696458738817242731931959891929955580691799763912664166389984652297414899309946766384956956734682059563014186281778914671144156174900249276352765630308447041751525913668475111420717450881607818269013866432368925765229546637601800536941549935575094975934270796933761784596825540745711185488155714789237053382912055121495735361831414229440828007155562966064395584729976120225128674334099627579258299594910573904529045210204047497563720703685154497757154743039906660535372170538760745024209862835720769701413377632560757133728100155855733272319633459410264134024741839401744024177164158671955017309760168137766137886573922145913019303233440358334678525573829673700526153002768638543528093290218647734027262487449048209463728054984848547698663615023236863707591379285697296577765650410634998467773035489507919267211970786689149590896985750524502352807922120886155903122608221402745271868546621207343087519542075391244538266947423637992427846145879256206990913609818810797054422294001696869300119827216773046940883746850086444079868007289963671563476333400513857184940138183483916273965414340472104867257392362032261057889040815835732958502580556884358701690348391330340814880864851157092199832967047871617356187396597199357558168537894292856242702253723802335893638747837278568369052377774603760787852361842040057070044608428718587961507725020917701989392595958973887564610266101551367622097764704025530967595717315510683536339781572971190214355004151246542794492680566997939762510924050662562961964216201762153974714964772802810533312340473667235486532843646097679727177620054316957808002885960256253856968804211299285315199257738454637259697013131452458596200755211966133657220732671274246061465870051009856692438904347202690398344211379573437579860118073074012847037229576829277500764021149733410272067114040501661436615700092140232064244325035041123752508143639382322131582260211236652820232250526893304242584101238543019892192071509330804809120262552855725547111149577328890154326312594871747233661091355689910189283751597771628857319571610722546286774772026197451061003708801607245138754983496814587819201527093888082220320937300949112665383711822970295041105213338890736344849620605292837750712026158760209053183629712156546026303097225148913046255918673945224149691970162255001418234338917027050567110867195302929000805728577168287095300031494523188162261962293612493478555512958106299592787620325126656166295160259318689238476985562955730045203038121233689927148446026287050823977779769713558009706367847433896066463246586195653236839717775259530527233120386616960888894015546347142323060905354286059763185026711173327306703488577245499249951106005799782908439780643406666532191182992533884445779444306195270797193621445864910204113905861352482632087567077131403187655617209577049386739648892534999763870845247135779984604096758629252493523835743106762145259584717612821582254221952222105904966495841778480265360294213820294310084967164733867403177972578179586808345436628338356702092704787673996971501397685055264290520746277338142927449823263634335855104972646827975931409309220103044577359708017544722878987691417502711230036479165071772835419677779668824174503352100278146137437025097317303016038208683654604912684812504775806453184447955743285293331938520259165083805982180766634841989918168193828787588705759135818471586606983835645986658931338527232663689740089974345757509077887812457658957528666512339890543790924051730815697260131580734519635517214586217371316997652637840419481777906357749737577177012708541102313096740420603423079030654286284326727512977773631300708305978952222946309932731477655673362662401657086586474294549964553861815338410315020543569492327994177954631991255787327898725095791079926801258005912403851715899019456664140753870221300539465775501641554171961994607042241033182824244912294973728621669320763960876979791335546086646037152568148207545472617702643787961860919145771206797753756969758381325567557661353538380169117506748098360203406745994410703763062150904535314547832010129431163560804262268901115001069577787038331821136682211850446494811914570109500472558040815784777209241838557086885106624702764234644278581489331524245916159820291823510508565668825259863364338987740158243392468786268996283758809621173230588296969300532702467587064510723255708866780628056926134731345302199469231383454284783364094863644076744646081121303799084604515720867074844968730788840276211645157925710694624303321063561516615712592596124803924392650530449188588782980509240693806605860908671397601734588589873936134728072704088046884053603085018943497206241492779529416738873747943259862115911864248098906196513906148286011797663155891497645448237971071930443373740179836727284691659072814146572920626783547032403581353441892647549444849419128989174634140241260243206856034043500620326579208537716044737042102384421453912591328019849145775134301291406255582506925033421430010327135399087039856428068701495292218155241656685299824075973599720921948756895613529401540160752926601112655201419738472757040175176216318756046438978260071532567518573896057746105544784440242034069261854894449520875916741483301437409185596377902493426591948185469028074233379619987165024521778207299431154563542481215059747684273700972925787520323137149578422758252811079945577809622016943738051623153019671184218574826231008104126724300262909630399564115155374406966137853549939400836653965518371085319747031542682220671436076154405988717494523754115675259766515154061695755274650700359751080647779239465522287168325591487077865046150587950131066520327645207384269993904239895042940893639981953391192369234681237666761070240093595405880003731079106941598512570119145025286937886456702450079371793587168829774269946195431463631225380104501920495950035977289820529986754821329163389243821395402140216976432626453372367877314195280805884683177767455781909721106365514628378141652757949194046771009056216074262883623807595442419361798195200635347265524548960586814134473743244089878723407356956969929878295245768726574603997936731209317587344022584098824325158552507980251248002845849729359015566748297210655442339250445352702775190671284062141583868511289339766620049381774031347903920038718657545599932135597964930415850000119338115162365727546251329667274972379759734545223240185783962254138889846138360949404768646727671716167040785075146273982939646532249545731823156260939273845676869292195322386145069483627923854723122768105011346125265109560106714790903410850186983814965407480157717293630608113985015272845484605086664563795163691228563335605126534982167985880155842965973057247085489682224018264773235061657615124045857022400238763723686817272989975896233724849740380264418538475847564723336903223972213226669806100580353938858929098722651448857469486319718244635704444119170250343393358057287939937909873947596849925393642977580206636384851214395435711179273439953233307669147162572831633259380207425273121168232436854242759245809636534928543854098703258324384365251262300703075351816199272238756947420169040477338670417152554690698545373846143490735234905843672021159874377155412663003234378392831434730534804269576960810429108218698956534797293202373303838666791665172492131172874197330498303256581710231512100846871222491915946953641908982228457333213701051892572544921916101410499416781683131043407540174880827066490214959048950701696059651324148836677111305194112800195145648290184569956242979598602161971947967632730785989551898065347489441613700728219471807360182562603861944946270805438150580931750083745315161716347952662892621754618880160489262304425000711220287781504958649942205611484154967181983264583813454650612285345184122591869626395040720674964818111627341363411502271921577467889140478149818194803415611884292576838634692046546259347558861503253561357638101238491673024602455980635717357998397884026720770895550087652234851235791785906282084790684481261627744248837725362091282446247460818779265027110428184105702028777630289023309182027380997791114744036917229086485185974407674634675034901000492543151676192311618735900685288747884415751789682140445072426989501977694702849752302689168913061695536989902637050015854077107769113294093669681725066456916324035426303048170428798449820538356379457334190509390119488587470542407606368618531726649746002992433763186594919503667520057319781051296621761630415294130050299274999009812402791404023491200314190292945170094248173568937154794627400316270186441699059756687906109520363732855608836203065335154745483807282683511585524420480548380368049754598005974849810926569727366376850577522168990569339701662443520747914962779426217451201746230625288667206409138678819273683213567267754781428261891960226294494105186488684528747311919333914182685948393391552093861477830346718618955267867593188756998300463476759746788505748252261773229585470213765071746981574614105481977851057164572247490568122958503061834714988303537833461319172204795099794975362537980970658044299816044258456294405465806210206455938150489426933864240285340304605261678170811860419745539297233549094515885195336602660903796688293315875234979203652914244129246383211931158528793797187952925585244179885900108084023506372377414264430764336060069020901596101536333855827043516634994239677109532478884164081522411576688235752173127892524277276016094336475158179695229779891870702333192501535816376274718098745563882144323662341902108399933592116223390256533657766007489757577167991537868435972650427886881306653268564031069502888327994907742020857411562724255067553057199003076714577424766228948526306833458495980402268055949055456511551226569488184913811622273559976741400517979785612470606037556838311033035867793937076737871104960496584074801063835548210545070544091243490315040231755258778619228330661989515073141285299703965313089475752761942036781238935664066875589515727154541862035321032461767770851892165741286060283808156610892894424545893520042749253666343735170951951725019497386309097748627378900935428300665528631279848868841569359513044034221799780402025716167386645158235345310620506016537499986955245626525496662880350904119013680111184807908779581694407635361703977888931894489164449543805048581711343836333822138840601954789077552993932476685665423569885007417669306777578748929678687941796448322281853299390659742064140229223731388429092878557812276421281456952143089478242764074540190801879133529708829609328321364717853024787836058972545942820591787152733673366394542662216296934467745081101371196925167579116676730361117555775999308524760305621670868630040313759327474957156405761950008149184849094931420724260183867468672365976052028912467157937469191135691744368304774505201770407225810049874753355520107036623384450832754225686912156278800229326256259599007436260179545740815985935343261136982150106490079574428122750750458640270345432247424263110772508543519209067067720024800966181690678965686078071908560013153992359077985696362783855258345075991410022664808184953601319721836471397586005385974927208831397224409895371267125818779001424885324416424048519494000247249188925492210474020585584323475010404988856902366685696734706834647122420895682979641233299544983110222033977698503502810783681402241972010040769483944881389266509282116726527469427197889194232775482072694989670365177096004887075182136091435627803396840605585047720872860902022390144766123547549903398198321888680607058649084836121943558322385543350712462509846548117704289369957161709357619485269931768977830420577125776663971302339046550902130844045765106765016551976488492482661968229901424650974706381360853488525091158422338724911449598768296353500473340828004161591369112974765519689694517428494945964896427869446242723968186750753609805332702981347622697292507861823727105353536343945802388419499155198439169464357922532209301798578776720621266230325822976794404941795804074891103120046151487343813725435461764625874783739178315049765165156918516063809309870934496385523995998400931798779715984467594448990641952665822503178346751760863309442577004262356888959230101803461112306966541318286465495568382226186317146233224921535648259077069385752462385763059862411512291349416063806104159312904721554515533949245714916616046665754140037864051673574107427974213374813446820208854364688454889201586107773216236158192345964306391590848188760094019237354148310133329853504275527804199548806940197737861733781076842429059776104375478880769350209953671512556718616816342819589821026163656125799368015317635049621464333526780055206587119070723846011435539536876719524945798617661014362447395999470038979744176850824212758052616098132054623592496341327118251697001057674535017778730893674415042484975062942637467048651232857179280674404175090952653041218421041116445193944042021350717070164320664522292695958266120692752900976479733910957264272271389988853741644327811766944978244323653979516555845968082943071500746980181569739513859103066572854557812844077202431464629373966126457411294178264467485659938367650959674408834405728233005370025526146704364038130004861984416753633589035214616557853303251762083023464806271954819686129570710417879500018865053558247342107094232852516531157551683424927759018527476365760516108952836420140601470085907008237265200549782378870171422448642549558716770217755361031055963578582902703018941492103698371967156285155712420004304509244112028069937449518585123548866374253013588185357889841275035012658922321628144560029062234546646865611419018521878238309624442931081036967019132402755470039438211646470292751726230271475556312429648004449352878325668029705246554234853579507939099138038780593220676913342048081146570216928151936476515280672650804781299636696908337822305874311402025049422104662789296516842256886263915181682111114453315326563677407280480748972128741657225135569643546131177860958267358633286310868309298897594950292123972132547326323410921787727778062003628878333889572689875999668674036548234988726866770093370753559001578559452742864748879417126926892537054833326182775621728169891529479165283686072209094640042145352018392091524626085552607779171874234553757597606547294777863107304521771678948408291394510885868979456618452388415231332612473540232918643074642952321652406886583579465469838705636519604817487856017283459088646142550312913765791695177835779290478568118822056333745803905941282013814562363015912176502815153915208839523999569712244202586604290979480717930649438460769373986649914870424753705376642977843709323945552976593300655986151961071301715726447298910171917743375676976074860676475953129690685631579568606142752301294395238881643564468313330294879897729538669337718553345958033199499137837758068377389660785969061629643328288108012780413667970605836068880558865827513166771175048815705811982750894279261887789309521311556584809959759139172775077965073196662484934287436379735071003334607631011612385961779102082818009284814873113767986144733555194343177814862661057858896039164056632731076102826882173559944494010040112522987144044924033974927973876164816652480601125467673782551887271499499527833644768232238832363887023031308051994210093028467668899582453684046062171575870861270447233481960806961136039410618761552725948519981125014775163596271322312038069241133070676874926013033721679111852515257133363299663600936074796981743275906296990256424086242848915444597806249305965637089389792783034810688118487063043132455011054114431602140412664357929238709727129885383000380725133269996725114224295511146090733750540202597418011152618595348320876906235158402162237862199349788520426219618754415402876613982151976509737718863309890786261812811506936377073568707147989387892031949718186336248724325443395437631887806208584817637809151182371460065100371326117868688205744348801609726096881101912195757659390414602299367849679210872980975074024660085855541677170968464096139218956029881399290303041759330089170607879753658179096246862607911564900335198508091380530140433345842084683711847366809329435255781187404642571105870386508274701189818843411582284400089179233804024783075782653259354687587504815995894625912027622269977836796959557354620768837198978828858863106921593910566322672195593249470875002989796522870942518593452752582662242521900173577900710894062695746635483210169773066939248237539982601473704698002276728731264066256126732742661157829025153468093510022444334070408810597715408465980102754594178892677746188274295467819022957931465507737512462036030990810008381511486795038257771374405743554275193758614923664287745283691069609681520938935963727009906495993779025418430015045824056740341363641516126688335349508499853105779344732794992984610502882461213335472947231958786780291901951377312760830563166791078119698772064080565172445235419844151779427628394667194680986236515539967404241288849228645922558940353486937187699936713499957739429079123667968965023787734738525451390318551581933837959112079407081617115640459282744138484246328545537356097013229813935032902952467220165493206496589779908583420122558917458422374812313938934128535423245290556409656425741732585939697163545915664279065813059318193220902172463724810335363866393537301803863227616462191431027380822270459935981714348425965683957272258611796710239407327341729939925670804368140512087104659402013490056240029756070350608716212300465405922276293614182164652612274970669578318163715035280707184521424800876254792563190100554078689193288240858478091653410655182821932486292651957197125324191162575125038856852612221613640508890601169504828658355396186557274570972283477240197454365666316914298562543553004302254855847048551273457648133641131604819588863590354074696581234018885806204323239549164864355287655372588976222731511750049434304097751181282299684982295104613045697460184291599638814339342971634446694566119393646793277475450859850833408178317204109367405682979571782581204140885637015908702823338155932792368988032734843296468753790610276395171313824229848387152255829845802920094662270682802719860471518760745359692266179186857934991791538153881768263828524059107933569389446092061636595915272947465067607634475236608422589630571389133781084046133446390753911771362906655477935292319141542311561125870721051299670520995538812073937023674318675368918334542605052581945492548777044285404525686861943717321871010222017524971167917442033809911088540596195335127719576813462062089645122189582487998644241206767963911601076989213062527234384587344742605784172023958193024556140206292047449753621505886528264732159439720937697159473229964270137705883162579064599098292169499769138888338928460921386575852634304065696372018160435203076615034937374646520216843996726757611130674390516651097752170734618227508186708998083145524793292653301686613324975523532398198604675955067013962961380749102268627431885778455708123962131666282835438689358459459014985965953399936790864645381806945745812537288195200172667753612589955153973242217794265859354502058832059099308135361399795177408941765604858736868964875853248120017724286325809777934995945972098093096861518769316439536319766554784967779281111104677205834493200260645093236585957089201175242561452246595816935350817485672240716892284219550073474924020415485246321491096305946244844228318538218250667343849261512038016905591160839765198450626968270765397834622634196511209454082587440350717050074373844862575493856739357881341680308916849752200370257944418390223107279325756885383915930923933150962238487021037655314737097363624298591853453477847098459072789960009929076165378826897597595542979671280976030337066614398398828957172511991907895201807455256852459288345520287314245906082179671614124671331608380975776873864425172575135300344660232587881317681106778982925681584034170530278759422572220330962705492286331280059425337807314138941402363168747935965259818448093361628075215682017994487643922794746916527854620550356541365718362525015368089644631093344909496862530946509593985095329772076748448830665414375244889908265934764074797148884508157166743403062774143566986038928735760526744166400257375483498831154900990679274753025531720524564932465674761191596600325364496678328188976306006144193752632478523359885220813959091570276596156129285335278268090800270198609445971972767705768025208073100038268172432511779126484892479071835190394207414189378473728610236091229351817581664804574257447776773068570798514067143050894813677575334145655470196024415448593180879327299421593117690748443101518841376167394600661496735394615801546547677210381961091033449443588559368265554948653026974215464038329670198684249206848066150527039236145498653176319461967164702038071068116476038881725020059685811134025672240864250812471538877334837279630920508822800688329557364230746232157445276331873445134375842816850082054974393688226273428518080769025818198492755866289922572432187779904200458524116321511648214318455682048032613423943731237198085974520810468719132578248572514440250399581294313841931765623932295969177625647660900934995534429637404291105806682002748705932458069618067121278491722155838803677886301540720248445769738014294534548242133762328879959661990569385692254881735294204024688780497920338024927435864483783468254395113077319968680547705618059873233942789213564696136935698887383000987523293297812679883849891742382694543830282077111460083294185069407678376549718842814634242729882124486481600356220193618449700871746220707056877716411139121725022201194437757885989303587525143092154899741587915082498136604304268186380505110056059709944345782970430282144439491509452271028396319660303481742479177569775099853117700164281371256106076479258813093977329688993218600836839044657729649647596201269570049378498170745141194789785010000079187419078254105934950170396574427444306264040107951518898540916865335316875307858868727107094581767826798708381849084494233833359600701231886015744365672459270345093328813521464443863177854846983538689839240110013420475352987414258561653965780154476252278941343903358278980856675989236276257107565760870233927446231548021694124380971678354752924843837045256115983657213080636555915579463653116201665181839601408900395467466011414867872806849428924060783131128223002492860803925536668972647510626001532778594825225133968922199696520044612191991117354800725472213730157467869168730843885858987618282778838876549575261818990531510088898205492749536829090167833116871944777715695997818125072283350797359692322151918941957438351045266450664853634226979693325504547666503989373361788322545547042523849535246006892193519438422006824156787888458505897644935631518990337930610220616040533035344213513589047765519827921395466521609864485392957960363210099011714852849122763299270946399637712171993644379275281495521132381568106132848284211119944231859166158875712754928621229672302552185601225316913499495672708076116388794254016273647273697416869172188866320757592379372662286438943274347034871906269388896336787556898282792502518114622608637564510719632718908161109439021305830878292982218925206206645032658502554120300424333451006224325040163685903346459336994602882016325157028814082884009737186669752955989529522135039951511590261338058001242527939368739175772148230572061830511466530053728793595028894604038676955786823095321747026368676149475428726618842716558942050426302581746391183473234219435798513407987189985983781447176024482442612818034547648338296240586040507772309890942996895068613536695097118320685899783410796065601671206609319438120510098585874910089792659602752149207803391002281016956650212795787411045624840027102697790686816392041803311884968479041739898828358654843933244717188944043459035742932763641031011325083088704643414776575142298336654750932353543545033824410172156379404557657157720539330943325065953683261015289001088427426396373405098457968098832684712313104608721148528726643229467724523632521636456200111254611104006456254307447694154076038107160694253848805839898600935762727891297882704233327942632770299427667033989467160475151814412217281300106974434710599246275988688516471814992616092796753871019236447795578315518327175040359065019982613307044154058279457889888780519673925972360420698362022468931894012882586709526767209632980179490641589249872765203421158298033502454763917236431449360028839707818800374301811002393354949920416613160402810280358151509115088368740528042860441426660053870024393865164557556895803969739991183671429681074841185902183587201899365178252495494916982989900333331752532262963256592153070854110628682241638672568143243997568632736728483463373851591885675012442725708270989941183873037663689356652075928953049358699338621310395591219552808402827829205567223687692944778657466077266285374556439239114330853721066678748894729999116289098698912659404870983277020877311344517966583285962080121405223629135178046210164837307046595200087602989099433693545690696271682624543323459278256678438759517135652105923795421128584922544008101185984982347652108550800708043016604443482301054894144717489403676731205186744943587864175755187902876348784179295982058484160387873787331952068655540541648609190821986990088197306814649933447919220868123355518016208057339436493767948668647994251482328790874616545666792192800969295786435103568410241764092456516685669610774070464528172047180321542962071560620268075050524211906030996884227365495493846653190070261513632794593443163520828809204347660481888800205862741194197037646078474214652990985123963364185884812797630072117127850951923254052610329360272508436242206103901378071694456819846794791780092578798684564981823199075758413293048157452723247386805755428714326485309357441950902721623531830380042213383412922212365772885733523270968791362917544936860142335865767982489508418661927266937826116056723555585853477894185519941196561241120683060770747848497082528454440215577962035805975033886748556670857893389173416918935428332516058822396257118688044292635759788394073698400806144856816160682380549269731744335246014458862336889089269522592281541466472730062235649348759181022329115048628650732693983419058213733439885592330217779459761574401575048723678901972119014429194788988794094413528242105796555915605035568772073943703167314646083593510974284025675697348198790600906283045128627931105366101495987271035230940391513940975890817414062646831500080520307366156215069938814882387025320813880208765170160833599159664246379461759504206073601682215090405705075355487231238361751051481353570506424259349617551279023078420670681547857592742548061161801346138282443265941052719996138020534718298133415909964364266092335565631509340945217968333116938050686173918535906242527571782119597442610052546400778985963648146879389613000434509627913149538332895665713235825808722508081424680630059514454088281985024064467083822651799678451668454780729616847363989033861436519161680887876404605085174051585334495791878773101407557490565204841297039276993922676520115815819881424006502141450741991134359409679733975660578685191083993897018493943221711729298013991456232659401400097414930569272480631148859580237992879221787951972434676526200122462583303738840565149191288446856155987751978673824625424178774118672303740105008173100781365043933553166635121777218887002205543756650626623490924058684632856311326359185698105146930645754972868332344544116989929230761166335263615341943433097140178754262371803766719762645862163857188010572828032547496665011903598931642632210188353835642998270331012705957341531722394019102711955744441554459630128929962318427929868734729896947218891598775207943248710380293539411907971950457606543750392513510082697727239019028013339556282670039506486475074867248264075769391862993244103263432840367595660285524094170375267038778326953240331113527255129470254642782724486515005115516439602997431823687395811376824741068600291087582403608862433416469202792730951669396455170724004959406620406698220073679028240287022969558001704650204496205955662068022763056196753177638855609967394280862115448417191284408556577474798912310787016260209671432001746469663440371160370847589671105211253348538769118655817527045245483807846695802104716219468048426459158739839013332162942882866837817156359635772571234589151291975946307238590604748076949723166234816985826946030346825657298955793119295020031294470128013763087778638522883023338648534765541853488453773361467052559775464409459232632284026391551078595574793974188435629608972795695289240072060571496604802959386900659725292029059488455492691320412524580155771653630639434862799896175109895024101555506781567125286432781444312494978404221813139620810479198509593332358614241495101847544027462820051032502770411503806360790043460310179833384750641123575366367353095492528339053141671122737180113418051091496062835737871286739374959974481878306602599953323699628330934190505583209270221906473604893324017546080136788148846824109345231646241559569373515843355474415792875005396656752771310158227932341474741787819550410275615844578759961294655164946161721757609809247574292459919096700233120862165911206327633390431185647231732388403543123909683752832259724345802250465411671096973548043007425993322316185367102940815969112173527763764707675641130359400155594357905091521513612615979126826408898311351735300396707163531619785118943325677455754417468673082336296990273961782746153586952765473881286792068573376610928174534937496663492607524998991370009717069728599260010849554864549648027368300808993363799271983876030039833912543354819190943393847528121846917311423850932174996255930303789886123782384535265466167645879371230551385196073347397759061698830833739409349160523448699780735434924746428872819790001494462120098321596915173543110059348504722010882485828942469574126372795177238744693897944698808316510851015038418881932427667501334934855825315672099186824962141824796881138921235245431370715659763232561987909462003811850327520916311483903311199235659554460177160784148264418826584893831936299999031513918776812090231357034693497682588417407717281268420657567486458034498169239612503787681735509332860777711002448220360687504624802624566664543283669182821299462602568847652091253960451702805031787954605504851082537357800088922072249916743290899562469233229398343085310710896777575944390774462694578664244503098586942642763416967742939575523329062686201700977544467857126037012199277263519047760006790331708343049191151803510196049116797756846527110132659175683629399583297965165020516486448635451804980557076792046486208631849835822782892155513317306212044616067285599737441221820750501767010498732695687544609603969320277330886398889245248313186389103502809331278697741086661929806965415183810573285790834650755913452613652802631212668531029499361216767855065771402837915981194582340756917567789161823064538971533411502215976827862474397640651794089929527665986258127458081546907633560618197858353128780507323176875164625121294259373521130834138451604516317660786391201283173145622488482696748811497447199019076087124259795653836446794885366096222619272962520161431141373533704516333437781121994650778271810730997981197085409446972178621620791434603725669567970633488548142768832532095729800176271263332497082936082950617486186659453962293834038341593364863816777362105173634591421198975330344315471730048338083241843395052724323414997766260551408706585012776641320512742602474283849318526966108812807162384324723402728761163342927740138012111291078298681127005564304259845108026687633981270642835625237385158259531295254835186017086880502373389929856239711299447827121718266029494402170719430218644665866657304613540420140959675670073046233717771575349191355041205712644350778393842133657828049796800344403087179887677332694095757684066090799045325239488508191828678741478290657335798182007813795930009423553302087281296758111658304484653521506297491024700735755150001789464770741242248696868385215129508667238115758844604595409833517425336189248139571365740844997264554536296606615575684471533622040520749471587906581503390631531666353059679510162762281194064155299401488143835219336229880819541125797267234486057180688759268788740966241513999417611419824182530045609621483371361928322653560266243226986888023548503563019476060442609452254737129460183143384719726402035290292794331648897101424568975160042853879402921189450392180001052055544734068370297419611580028790301836478229310945886239853328782987468255416937092729086951757396138217402742573212708336883473918317372578767722714878935392939701786352266839688602031765626715971681289637859638321598067469192377353125829898608843196534125040767982789802714674720782898663157089443339466430722584648194853140268490316810426774393685882576544162691056502672303211434224602618212279938984261351619235611495966875864185409541964695289110270928532805603144239491559106981081672731479561727950948777326054047659423821291589774106887971958754038246361682774416957394793798564752391483939844090891879415831504298711787349165984147830760290236587118104491837582607929950717760358182398900194978628763618242460109687383251831651789234775575313781716722581760095519013500718635484025861933874264851721253154798983955786040663746542422223921471643684958044979994278278383931121663053759636618439414672461372846971610356786543861032401731037083952707514727795364015220699775137220696826374872169408892360066184911602469195904570016760937090944504936085676105101130024643852131226722551578224522565339460633859840486191393965583709938069533651380246682969004366497779601027398413976996922936046869873022269481545755709075107587271117245577598237212807314608287469400042659925092984940785529228615087329657895416612102052608134271875420039824322358670754507271487821375029836354259929165591557439856512483537953134336711241317599335031517372716093576462973967455397692359742550188638655983231716246696223246430717643593430720164139853842937618484629605090277560840536800543056293786564158615715092880503077329771897373225248492930786261229336116947898298975954420499831496481468793193606735816193514956720864479320736713660733899798287405920823059407312873545962407500712010947194158071479844587071709323103313856965883405766675501625004846256674289287392883100734152778494817871030777178972111813112835477793231213614973754921685867196380021019374455008813856581075816202490772102580304747320440961647593373275336548418279496794701572573886266051233455635182054730996099952064673531257510203651157875969656074417371488514654822099940132329496166891860766317378055876302663481741020440631429708120315321715573658320890237948871622866650181754982445177259211341705899470500243840852050824392485282790519346332763549424777685579513696828628903966802511751207785794934419695677515213429095817570748907751257526727424281086918839189160593847069550818931139206663946601739744460766586125849103744872964539184931198039685168976040196511422839934267518943496677460282411548899190738330481698384553757095590332640126763576891650939192628801925382873588408673357746096654371318207380021307092395189336693025326482041425237020845683692630658146562585310559612333393992428625463223787476613129710537579811215685324064323573992991019434312198245397079154201554367165142009605240745149803065469206042284888765596864127613115352850058362531752551251180781952536141489986898404042496464098772648362526660493791630747778934318528951396805651166751256317561267611122305840088098864777456088072297468093999415344590591752322794873301506272475655296116341732314406768239826204289112431191416987237995669614135873498230347594606625479401507123450092340796158404978253163081739531394290991210929109485432490431421842232119467463105101204807203451347693406697627388785089523439137565657750066493875341910001972302348336825268905406295040202139591350213285068091244179464736781874462015263290338814875187719025164254582827672579807491479369969185919799817311459438113725888908371999997150640279351453135371544204254368828313278825348575077932900707937043095037646573555062921914507558227395932714115987956314677190153607920801767448239128353279583357705198875445806112107028112434348386074432828092782771310738538513278589081295474237293259307267308347869780293968298571739560360612628614284083330349922882652367311807864735030223890135536530845809820043778093957201595223501728655762450055738346156263116263940308714349767629154322811049482603286072534575691207733840056265663215985348359117629963140320828359822173301978164407247759858567578279065502473719472479794602988694028212859183493999844606615939260750861245863293627012035079944098924088079796979477868713394835050063478726964867642902947919104111470181606784478657395001071962484352101837600710750788846627336600160756996272015522209199123698575074178743414646453141450584646508008796033225943656034504752052491879726200099128371441595559712453191225219032715834685154251400507372676631084288093158415148032070222265067533419343327944165452118804545086918915687693178608261737105918995923352547838618453434121087506779206659351339632142897224196874693257307866741232549552337004582764413829836025621707705265220472538602883624410372063183526273394189386488440548574264189894617341605400660481746154541839754235448285148675486670136688182014404945741969995447475992020196528117118608381220628603023050653028572430674459048995887289536278314453576031126575440151251163826284489311319636298721674270587775107911986539365684797719218425397527956816844560364685963344078260664366852961747005515461102029675696884313950611921084867555742788714704978201400795302340018143714748680141005228809851432267635843233149942458778610293601444500921144787215441310277253378291090803499940108176041053637858523589107198404132429925983934378191209371932939029982806127566501873246787882969585291310616683155389381247754498433036846600417858266707273907303528125956131759597362490057523038409026645408459111623539127355671531754946632401527378808417393815933600607209463280541758300944186731396162292119222094751602103269084591671258449809100321371733137217903486265342314328649231574319864157924584467474640313692814674025913962122904152308538532802122893633998693479606708005433482654187227367730563494469123419365859333762872779104995395937659328194523203592891352499390985210531083316303771168527878240275530704109659532543047753156679280105992223085963152631007585705962159319817189769727955865675370469461017623945381464229403950587663274892449729379579010255233662275554925149370057455843982334011682625616413910278141454841175105542149173047379385024599546821776051566866410870024332173902088970037440853158980241541976249991690130877365223630923843001022646766774519313692770372977767233809402685591304961067784391880675645756302862959722504671867330418115625726331117980806764033167086248228345038349425618364100948133261009956201029354758480286781948952253243478693243841457894300328953754250503858783107615973655202264414679633221988987026823189134682979054249684465618688108644226768254802230052708855012773262189334103155937670612668632777882246696808893387580057110583838970517109935490024274743794125960467351537602165644210377745634580126091425889593720410865795984910762515171238885942482123016953442945780902744058617312561226370450715152966633346480388721544185943433280389217299438714940412158554857906879022225411006468997287144751376575512436057992886127272254537028111687871581501283798396003419170283685550081156513067851183715992872154401201278842415795024978597108174333835692015438442137932483163907041333231742834804178076019312804434793780744071140957453967551398939336590426661172993284505472035941179281258346319797077563470844785433476096624638195023930830042513743060318485848231414117841678290013768913461132743104612426509887855960705012378736480052653201874715715407007006197525718789743075367066704291619149398722618867513514724942109587958547942245512278333525171772178403993679324087665608183341315073248809113392132643843287175517942869461686458518037872036715208072699006553832563560594524235564564264727528700061437914972734622572156452041282794979250189547321772456146877127667010927115948744668686556566216777810259757009587091520030907329712289783898210914626454882657368004070196715526754511552394147678087290175423976578335353865787200436828157270583670559154615979962789014550417809529487211279264505702412357653737799584493710784844671315824156841704087519287244850009654174017555153784996245605358429416561020299334621890939120971376821233784760616942841859576196485245377261466241532179644906494796812245590962598140448499783775529811030681932155399186124752420318299261941096398823666799782213764192430513158911819796569701631054670981775362862548334835963369885271874539347022117348837262844367482883554438255389310944629909264994508405581950832125751636718352821478891328291925938989168547398043999280600082004307691808580614058749899037740603672044365173391346927293607873752751299022402815503293376298777144881365659011181643881914784639085846011745511722810524545541752600887775161787334697383717459748766003585739372390200398242853540078062408990236883655904025582058411253819141393748819293780095330829697068255707710961486834166303114533613352125716123294592073887702018965199755711767493273921192157741645296076817813719694689970767237463696892632731115766438709837471336651178884452595241978555927443020693796388407295376280277059990383371579788899720363684401587092272961836046885562675976319518883080778079755882299593926139903949052421738858545444993666290386330311237890740191138101314116192315956178642815337406472184714839497225196197480343253423892883789872033604947195772588735145645395839749783793447246540762952355520394647203465340746943839434934017700736361615163046394283809738908897890314876673162637454446856631343864801117122204631441069536093601795795352888085623313574591332477598181657540730132545038884306880615969170253387155672264545089224267579580540884956428548812944752532268986107444787837236909675329485982154268945535089116382818176767714480944932529920500961044140379177246466103584784345522589619426975218839384777201253984966576418037986519287305538292603550161593499990722244941878855404942503043837974048246682590652629987326395709924276920999662187875093745288532112585080942588197124388920947826309093257721775047519292740483070351916256334240049854014043324867432130888397616898748973527897636016706512851144554136584988807111597354002708266958105123379796602631590121525451710208728136001167597611282568381720379992178782095702012447056963208986125022786301689134944571172929928173445119040500924821502346060958623952646048082312790480834506474856674794019539903977783019063978750068460293340053736539530981547104530153654157486452588402494567842041506033853775438533077523867737592239502217689359523518346598817099365765295051154683330161288987370440133424456776818785288186364453955662200807790896574815628516927232608967132250765623203173836251178612184007948324701502373907065368654465191199762132918132554230279159725530911948996380973930815005993013166165237988685338633587891995987498407908325757906792539390039231093624111026646693376992665092682103529806256313926518114714121848743418833515793353141446191520788363214817779162145223988324167312341322495574489593086703763874178954609984906708988330669329368672489976141074186558104419728910829404885448714973068778138349641111607646923078252059074873487376086940031120510049961883801853846840799800603589069994807483474293204047224248758466370268559302081784939656030966555726936948736785249933045083138939744032950379632416323168843928355196292032697458304002881923505693462948076483023628252088568879378612209601253572525475107877578666384426854586445665219864681928646542741126756495140071917685225247157797290131745990865518011738502940668347662243854963245771751860270109784053326759740561029870170034625387431097141460918947950637669236806479836204677844127468332541425885562635530767597098810741195348626180175876114302387849282878410129715771221387252177593988951770161025785363657812193768109916233021453847601367472315362888908064764747055185667899184145604163723946596555940658237018389267223920905431197395789747339219262512951740204727553810611892982857028321803908331949653006681699885790345954712093864187453118424942291212820621960692438352234327882407935730712562035688507185776828987591593724311720986326542809316786603578098425635096079511635654678993005048703427796789684603221368110734681277738791732636339830532182410505547122274753982313565825166562922675227643554399664151833915287187034545484085736824527767358826928766760183827096232281622724770188018142595159501406529480906319363624406329818276874934923486812597027195406578902705576786459454390321532599992275610501244604087559654903768377015823942662135954101331142508585309702424404867305397691652279130708984905353450454146007633420453360810362913487996310015872462848445894253245188378174860482656232564082034365804277275948128263614457553712770736570379163836689494308867283674493560136732639637444198770227921589291399795648822706723700717002182419560296469952367224407378823431034531051149398247979440234491080116085545298047861437720306746478228609598514128331123956109355769113731638436773057955760771317350090074596284889310166553734805481108375628783980750585022697304179434466440931406089138072133508208635906050574089045525898808142260242638454080109360994303677907967584728998729488284534980645591370497015125214788135838775836781129987997724636672245585016278762254665478075242619753627881550347976502593157046885203397852978505358623095427772136681139277383405827264234158950183609573599394132304561372524667689636805198499836230410218466220753256854262732422617333604297188762921085291959144857891556571321473092027886923089468029808809898073716646355855678148530477409073597641262498765597849563465309504732191279615766956820848438407033342579616563859517909257798495445960527341166535974215307539775795917870826973265411101556017636458298373512527743253238851766124908826643534392948059364603349824914440807390014293141040317050563888228794486397088001632479692585322943504480024253282020030106116913038179443520433605027342531932545403827052424800191960867838186920728369890091723860489400398469221954061161849050799416705892827181399367488037059792003464707106079161111033507440395548581640160465189330393036838994138294948878917959240852830196283580990817917039473035655108742557375288061334015909692403308981403766883835613824010506436727647269507030156935165437916849947015604221009842014340376758667080674448869111644986937073324347575651112213164846295764825924964344770141654189710155403428671545496660951899279032192391851710396224726580808501085351006381588598802249809093943320883442851050224712069191737407982697113970971764365471211566927968454085554826321370130794707376343501079108874012946081833568219548978432353189240029230236820523622727901986977481954753757132541858980966952157117789799114327612949687671452029801604811910821386992263686666580841783187792612866443314279096686841465626297340403855618176711000024002050485193132828285325891779912542148279291922166484682825437708764795372640218365836104940826303034553341689626437234791286198805472124780207909235514865937839131429435944627022773196046204938223708895583449665593831223528557994024245996373500455855025041494922956540997043355062334602552895530441653663437309612948727339234425814746328166439578322184695479185768812195814204937984481869789982625781533205826370448376373274177764963061728117605922345700179225017580216092922970339150491924812237155713155861072725803110130918609854053425536786759666526727080619439365269337299859756533209032544650076343479143255792110601722746704047708725993229294938711008949097035278439279129830800583456272755342161584098478739438399302855309823737486327331845683333435965360495824577710529517787394344621147063449105167092187670107874177760011099406056083333802512294583991177078938170769947598431508913876715145582633145449019396470052235194844043606753654326348959608746886562695637407156709460009539220896851355800073921661948555808191475642453411406852964494739465294471799335469320483186515552698754416257804285244550743977564574781942103123749167259572730720361986695242949149593386075119078432497839279919022558763802607927603417716639015034005776347657892639363810127023192392639472076333862014175081427412248766396523697371917047507678881238254403398146733805730302104685901273332716145256499789086914387096840358318046312019790160054202432310921278398814092941654554010678571535208137849964556818061562390704349140686880417355111612285689690262090897820887626852117641868336050231228617699787604494836132462200768636500837814247358506453502602993561259648416353891865192317640272924822982880883534945049790939495692920154498912946930244905489594180068729921064661181831629062467192826100408957373639848770179533135112027399372079770385826911686814665387325595780808027690225118127098449065788185059838394503279145693378178791291869160681547678930911955367007968785693127690684663160143821167619998805752322858294593167146296595004613041157774580536754566036649430394823748667447226599794023149312022473605593345646335615489521686193293052241475222364065874420678305360467413406808956338312149542209118792948858998536406914823515783690520342086527411490775206665474358776290061500357784746084013127512875637320298646034970356513564564791459976205800849686953326229732321189283142130517717706087969624691232917258150289422499183325601267555847133460927148570367113819332943111100832302469635303931121813659316366231331951553333940682769871945575430065040383343549862223934448015882165435171450650328682452397737935536752769494019753750590343864510884335343442373959653377355846070070150228463201091523392436446941073634300197210397423362362702581418294226534618661821261750681875115291020679964475618535416060712493701366021030530232893819140917900028607600455745380646069633180360143018389369814191131956860254023591196265472280314330427383305825331104825716105665873376140293577932881151695925347118896144032575812989109447214896469349399175933348909375206725266029508843187530668266866642156261518917174097213888346418099496070248088930594423745542126384578225160042666561010609142750982726922303296097555365605688479300162043336874573580822646770523217767645715037411793594903707139917340508561894469900206934704327347427009499472837242034814911237484022140104575044047081176207070532746957546129190728885148419252677917624427503999453490606791477589846144785986459654117038536508774149121916037219861805093302604899579803563265322556492084622124620695852224073162015288658485160788128683425948223544861707848179546783531557429521835829158982005538675036475134874800758497612371238527649505652815616476608920979872882569594903989373770148233293429379778255195310206501068822913223333627247799044163988155976775448479805035240913119162416105938792787586232351202417072713876342479465768331206870409540844526826169163395509944140201777831663248062816245786793203629249684575776619338399128847690786987485105279393120463985235591382628340938082753709872573341890728806898843396360705457065315061343366501596717968102916621928976266951065408692503449834201517291219559383410381248199874379164725954070344957301683751154065030113780036651795811205994695738946557650500807781776133825498154527507695899457172426080023558124589957617835872132339255764218643400980805116570819363243477262111774194054000276573535104815666484624876292069541075971252857562490069102736810101108675159664320594033742338959888139231828644601480209492715553096853548456388366101661204742385261818738812666501059153599333507830324587751023928876230047647071537366411983505331350237832090521227821477330726746616031210499723848496174697230882254167039078707842333470886977634654710645780964934515275398448464681022135745749286969371997992715382016669917178043106112381493520645796289749143294454075920784860769854751564257152584524536209770057779705304288637614544180569152105183544426405861134848450273598007115727466656464660066917422792280679842473412856731344305722723865954048754764253932232888167309839459699923741084470613996744302533196256413164143884382434647146401892212959643466209298739062715324278842133450874231970248973920218171055967249026027317458157582790654357151065696731785750543505660632078799566841752455956234948118226593211309529694438873337462237784039053911594996090701941601432598269393948397950073726312589472883871414267065401312274104528922587091270460069009411318871928915184174152264736077102026762097035351001626249890257888916947076064550797891836827984139526978559797931689986966544856242491021020609302543375810899465063267174185489067025588762376441100331808266849728856907463149925281914816624344214558297545832479698642391689051935893479057257274337247536404800486968731531020207369050763656727781586383149229122433339369939197723315449667723538273344734016083625138433435214007093328673382505703355666273238460306527519896979520398563035576680962906747995856834586957719139945599383738461916624611757850983575631095233983898498431051914396261863835404487084785030576412814864098922778580198030280024200010029480895031160306351984126670325094572242873440044780410403391178645431387980244043434440838074242761192975901691210692570994542369493796744207919769996354504755486753960452257472110103877135818234074995012215641551090139687111921564355380777503418097279655776237433129749469554319875351944263254714062728049805309149735722334826501531094400897827772738593907411612375295450525134941462100807269821298252872409094568342631340899513814268306055678215112126195891159542777928333159428883985078672174290780059463462053934988068024335375674159118411203506794589770650834187746819321746612766270582067845049347818459361977646166612308898288367701077458872454061756396411340904620325808363721344080591141660043276462759242496501810558260760704339458496974958123483761789888340729687770493584809271316808984634837786334260669892444895088388420957788789281325005936048143848846356476413484821636550490974248558917612960705309846670074894698372088257832919046242849036287287860376707556457231692639705069063243322910703523756992703492424982069669197018393171695399705785694016470661475796406241754054440455588663820224106796750029092751193506325614936238651689571619807456288427344022397246504577005269683292214344684313590074139194748929836490216540539280422473328165093334394767010319564590321930298792652372711424155928580192685478355709905724900232391901674904807468480347243823027442204907264810311200929647028885115252215325917726374927393027763854298935865870011558728000701730838507149925196853145221188214007336732122270426081023609567393075124570773308860803245218080491412112100283388899629010901323167456577329168972558049136202304078429007175295257328427570857866783425957240936530895574577918152908354045278156838639595411737608439828536919008773886991116189080458695560991210176384788035994589018746279183336880755685385155958008876298739202715088413048185054947265218956143756669500829440202445668651870358713260982144121728006963471046758186936903842482436244544976255275473204391233488996781074178113612884105455569776830828501831655632618483623713026288070406769421999516451938359237638026311203756961009395509931979982614078581332798894341385659606745499284096732769636021754335534846773679592692957638382636914879423470615719001300397436337324474125065413009694705552706714990986948607151998201642548935356583978716389711590865980905090628020661165692989005437246973204451359229990716925782623496464777742882561740414854267330024931544086131116850966392358602470737922113976460335956876226651642622508764125623614910656469181047272294002854052559744364370997404372232827015311726038417223942913803928241856196525010987012318583473813104583926218168326250152582178052824003477848428107412997183870589550051470539676157606548861396055768379242492261511807508848275670487915432652911021907146335754307884488696954358452437305903284585341563375893938814030038611043978682693530721573669418554010715735085930102118743748004626843582574338235114108566314260686213484305299295177340855546089231602081407991034008925475674630495370875384142618943676746222480759135015067723115056628392779013203425282905138993450038632948473039731428400580245646051653109758738154880192906871083988926239340724249902426670088316674429610197068814970520555135449736830346915145096545145398906753458108297015367813211728973842757349164105574547953124926365680624229417521365841754196448513642700496857797807335036419136454552727743625079476361584016217507171358344625610631933933054467431960657047637588402402240693980762651112909700468734972568781529746482353392449383432584476371782188734125505933124936413105461419496672187142031617844657806935553177191341818431156714139947517634409512289276605775042553004614839788709828331975844195121454825042062556787706302477571091016386868374828182291961419284948130179157617250175232174984080315359411200904785444846540728988020730721811248363103914625334747149820817207499102207422645383446359523125639362200485821253767879794262585094828385718796371220344015590564950835709324459765236706890291123586424095214919811403194347011597956151714885763034264328452248573275746024755394800714593303006473072779975342502212140377041197679227288155999105369606510914963599661208261185720577569644929785045065339538299635887986556291079192642789755765831795146856788663854860042425365683268293063349878862416471258486829914916389229244268012061646150481065360703952846925846193920090825312877493344935578863874918994833568349888214700248989125711976905609110541669809819214326605735321692372336129864090370682430244005991293899340556281497784933281146578314157450873841350330058910441101414290366038367020328700728137762240802759973976786156799553555433650380738232627063713040929889426202515619637252183378098846447846288017691670079906042733878625012239834080247820815276299650589390961442492791435832718059992452978123195724193428134148561606382099500047475744998397112442170233463312954016200046371241091896857577046494691231933785017988417080612007736139567303300405712566870429738054966035389426678241137803213671636878637816745247563956449157822240606431382269738649475807752892131467403656861141945029323877147660141875224466465374813309010578327612649331505633217925252793115902142503044766182416753863427244470544120838413297953585059178172885946552078574897749525446872671474789317373748896678609523918735913842421906903664951996722214924756130056248507272744377105538492954054911874835591395524237117453539983178992578284213724453615781085422460933174737571561886651137673733060825904424348156787612350127716821606929443769214734955787392738868078571347669190707931953594145013771011524981137735226781753540671795458117688120523545202972717728203948832728756563697997260700657752292475883252521091878611717693693811446084672459899884256646027078332027606385784959809189370711891408016874400448901713222436566660654087095694624858530288585843985853061900661273353380441883210386062549264306086320022219089679254871746588510889601306281689924329377693007572591277558761952530634436282249178198132987671500468019220178040839832890325497226185806504977981671749897374318695414043437995591214783955116211587326871580494636403095932139670472764813604360970275910822879893059802944818054372170374049455082806461639396331689060745442098846082423960951641411926622670568094626592888337093758158982660900759392154271938524605971697152959226073438091515643499380767665635105386691389220187717900269481276159561349372183715269277681619448874343900657498302693770585340414684414207430578380407540094377990634054768688574085258105107758127044623420646803912059294917794001028393330749610756492111336818570939691948298621057199832162668297027940250478436321539747899556115079984191393627239013165647761063948350824942556496583377813783392598035020221054631620925772001708469781051461429546451007898649507659845829790301881107251978652168937971464827063102883314052275338820464874230438111497139206561147422001527823569850225495310235804705672385820045222196812110888479187598541689629531249086970428218608848473223658512710027996546508858744248758624072655691438616291869035116640092628462225262961027487299821328771074824692329071170524398017625979514695343679760414453929395153595457962046158257080253534614719862733158920654504696913420511276331507447556209439083019784752913178902883711469698018008765187567698941641245495514018184379487260351180737089729381132682450733136903581383762756351058908065182450215552587734165495194949384548280213611262003982419980948002605181840607208753102400644594671464024999082877344678036423285213332078486680599301711507236296477851139726648679472512984717458653762684706290203760314478392678212708051373589420809902592336893614713572729278674896489524326631489979929936067379951845591016148777402160927998725193621069711563893066645321294042422737791504083409563370766060035073667307776027194901931535682913232296183833997947544047958862017731311802198702174305170466344342328512638089641856223284370784942331718361274433306779559813019589644775677305959439502114807366129567623871667930426357951644698783200781476390712661378477563406337147968263457275724958115414812713212168918210337488006815782115753487126005915791795726542375325938360543289109373936785326984191959922652956770330545847516543124350143684666128375048795192455573181643495086399326954421545021431000087096340224821897043851107541304347864197862887556742380403735327767323572270830046240720312714981903431295067920740718223696631226672809633079638280529937073368382547860110695845864307039769987037485385442754221462272745379953363613688176989900207554532874435693729502883655219610973199118194580083613122195606121591924759554340489533173128640020304715141632129732125348922198227959678334857985495027604517284165715044584481708994839410707033845594240487523637199275720659831074827032992775751485186868949999966955967164675990562215623163844186594720507373275805379568446974031886630024341598597065716729756113190669182703064750853253585861212686143922171163597822970961024905584490108960340687490817823163920065305484432142920024415266340234447737573500634232492213910085266404241918317839148228899573110318599734019309514403417686721067393075275050485072154175641145781976142804976524713419169858005778134389650718975854487667573245970549445984777340458797296295932082221382743424364013810283118856871727600681144417933615595633545272088896192616268524193939356384885085512398878491960204429781144789868564022708835846222219343340294121255797562009255741484929500607458834032517596105267973038043764904501281775982918957868334271147537526068985430599263448508376336382531520018610941438034106987011024558381339516222978294430242532315832191087832460074546070718473555646505391423968840869101421891256561938420146339317035828633466147785823393266908498573156236115666164786452809827534860592203532544655013119625242300869819496769906876661231917253097434387649141913956992468361798294773183778989246309852895577638575924858839559970745125262366473199654730900490997902571759141165489523985483487840677442689854044220597533949340772281770261882242350028450637172356661720743813652875088067396327110907153934264491368317310262877831943400639097616071585360078056698943733376378631577534639329841235540629090218493490939735912905173440827049254033983700039094011837307080791040800970775190812472800015992444493526968466510922560465230387011670402385321341700080430362599208298012781405393837098796745416274574857146959308637408661484515643916308031819963891361715113635762849884019271164547775650061142695986460386121659028822384061854165785017795470219271809910214294471737482893658239813901944531074598088009646900468445055226257680049629878869348176015351236992388443358084722873818672347540479218921154282401044862877285792125449778710767677084053299766641262441687679098870340757539502984837019530431888465896550658554257878629874776223710427278406405848714671367009982683873820571911920185193873294543731636133692217867601612356669187462754442492530977968437842346462915925645534461481338670459941685748758573055922962857265898161345191386935069728027671593217589831549814835495423894739789963971192068329847101115373457663453306264689834772396348995714815161900835288152083103280205360529868030159810628118907793855657145461901880509871853559858837376436646515659193706260575531869674517090807728268929468840370727698678210316156239501282620203551636726390891707628944614478105754605625927955449333083059104744347360696628805237646904050266304152067256822360797368384111602066311527786842442342246874071151416060723899855502258425327194432035597671592457607712879272171177054629377334076530596412550495005376252598745535963527890008557941983180832481967635899232668771116204429683395464092250344095720131364785959366580631747386311227780755218089785302900733525841620657726864726686430860369525541135326302461889877928388764227345568593776718023350420675338397445999371177442320582607896075034471578129923432139667072656394676657998309756901363393616140085478803027625967508000663467436344557804540688734946537850473907988302085417012602858940537832189387867696567912605228199566899155632264484510918907521265248407177830348673396649223494258544026861201781345666367017686969203674092632620179945781972213132679686700724044097330952813819837446296477611441681650789015896221075416220553760456552505941387841009820559013012988281199157265421775930376665931900059664936695832674384838322018779670288862124868443050128889683572575273613212503452609998340917553718357996373561349666902797719447926443829440212014403908230392451273308558230446030420615836516692455301290445304856480087713777543662141604269325147544070156839181588806830189332012914173924921749710054290067492335370083934575424595280435761172799054988357359065162276678278996857217770247854338835962659772587614800864940763669368022494244295399734235241980050577926267539369222031522224298530883428013449268031681849214176221919476578408599957721044001770324665705942934626044484194136899190412697546475317099286388633615293254342470113537473727630967774021378391981264201186610124830484247061151720439712863142166024620405378641452443805743079291372728100210446681811656387941020898214569513258727820478703912059476794751750357709396271121826778091074333437305518045340318310783455398264525767160988263564703903389332070752423721810687684800924688168411275447512824888643398853430392963199041785945266907640678950465058934787750199287569597292025573804963568971911129079827854995937223247208397607739781676683141022430205623892238549676805333614614729190211123601631107526765177086987076361910453485587686762614486470092463889537456659603529808650642503210729805141359554252116347022741427601638105846587187912199009939978644749122568997428008527274944815986202252734916656224559913634388577516625803419069440340587277712906745227027157037986195467623479168230338861969583944268016934848734416820513747176364871724938058417660587169986269324121353385489790297148731058379041601072192612045458594333797204320073423547634537015939534158322509109068814951496399126333455312291737852330525431077662094002785294538143135113974504478976878737806657894988435779321186186731617909641478710282596049812276824708208418613821636219626835829989197802881341072094276298177346417398902184269290037804618137924339241461646858293352342726458092100446337377646158101585761398246311795359445844123952498498080858497830555706130879131221994879395634012113674003826133537803384627472038814591288095136235948754965435934976267374004711134057381051357985101347017222989136645690704734094881054644555680848526988854524549399341851229271784386753997531908952122557783419746065701730612673436592039097642539613167571721292938155733062455631675746757609074475843189867237596133977139281575473192320080429665874661705923217073333710934364105369661817369069788376521187697073273515592964120180175737882380625470783096430251660065621512873558221147392119080469515230839418058451567823756432909445649375998880385885108583787534968642659815218796687365478130827551017635544478876817442023792366008188185966842053351666269124431658032355670736257227991302503728259948756946606647858888720205861209081178504412649294106921270400344373252246976900132487681430260816129547129860387083589619344711041416494334994222128573588013905749163959443541824978427230071609477431920332691727209116775255827029814770227059299076319549196886913115524407864157821689586094128072247342716162203717620916189907053330025109992485276293982432672911269732905382272882921731949942754676901368438132003696164308590973996599406110402379644501636791686688029838001851278582847981291134446421277470744108548710068726356618004394142372535300518639588237170594754839225867457802321302759329800573509779309880938281669253636655822475879244769919578217245354700612265335472910023608705687564212473353661243859099256117985603152034973913801248616071852338973400921718065177706869171431706495968999563417425456984238725563716951465336352379273611633293464259814146004902456587625968744000798560130699044280168118837905966699415044788934525320777198971633583368163873874736745364624380837793017199633049879163913312805689326874760363051950884433150773600543907351419246304898749274935761347918031628155605578793740334696918030373760162133847647330481683917729994026666372325344499040613531355311147754384369833734505383663143594002634615313515857780947885702296420958603420923500100616625092577923958130117591909928298309365009895053351698335702324025484189992276943314092193148740878082790510332192557018360284534520655122255394655050795543949983419365666070161457816419348422039632497666707778612413418989368973137706956933877404479065620017042883731432551395212353625419031694195830165015384652635906566318714694157768168134058479864026944375954315776669648833167939570601848916147550990327613412743666875718251592375296871495783014160223995697512015200401595472548242124110523215465926796773367902988836112776679160267658092313050923486691224175294384691899169630201168380524144030070547339653292370132468797650681496231624409697564719914209437306939412121765039035947477794358319916973896345046103422863677473949153520315543363061866584494597656446622794003980762902316375266168712498246356780823518204557505405716487434760199320398424858819615430306510014152889654976510834341468074117706800035998649030177678809032939697610810127703729535548378840020789316195988713436985856995989418925105586300296615134592479667131535927564111586454297506933701290373876230150971133372418056515960392188138404022356828606838574903201562344386833947834897354039198618584397083004167182106362478137395257643547881388190524478660383398712740938097919552377371307381931618246216392202686918683154913327090489137226239119225527456214619826066256261381159679396212452947138144845067763169698796647442319329712342169696067358585885818707817401232180213475333918479781063193531690779626103106109333736138367086522931693876222312663037159966286857303508373752343338407268130341576678184549971842031825782542010310958645310527016147112720751050947488757363695226291618473185124444414215833421517499106767697355508577094268621592248298697160274818387763661713631002152681726542837213176895647463232583728127295651920292361292905967909706595264805068832607517650904477964222181613929345565039850221651712737567119972612902300159788116194294694849118187129470335243377697505985713126168111922855414437830839196154860365900562431561529335301177316441350637234128890858161545704081935868673201581551059251562649522518267718793407974409474222430152574639017016795289984023314266873697174834912069889539876851423600490977892350575113901882733756477548858199809209660326172760807771024482015083018864194317230782086794064181084527247182360546119524404912692551148315771689346069769011723203040493020024630582560484998949325205242938891984347139161963021153516392015859234749817787672561737357503810519118014686403275074893521997772842033174303713480939654835927900711506563085028949109066885334501161508386727737817449057379974121807295851001312602194578379855073253513740249749287589454660026795891776873224668632801807871027450822171255284394398605280644767862147228758422460994778475190907256964799952994611798706903610759767112897122129514372420371859901750085117561364380314277391088607865567674539976849601834455905176795962542337251505879938380157206481544409420347713269980418325071744850891001515855418202916220401710963093300499304704643453596138768293021467764187333551178105433642131516317778700528255980835879382717019140192160240830739920445731470904792332346974691177786477896812316014466997557264962483838313454259925345894061048270361479193691427003640631496811784336649454646689232043061047133761931705572980611470088551708830684109051636938306552947177792413846031017896988248954050027743982720412493814485994150481665981455051585348943187205520973362146198953743150016191308823652726513472799651356945039479741893142398870753131076526608009306148979898333422270307282169542599827164880930295258551885967479591561202576201363229086029258040960259751763665534821139486627930074557384734467366800278203208881222903933577778237188586911922115045098405404637789316930898387790157238824747056628709018762872090859762543231361910226367698001041421921276892672390071112974364984470024829276048305522457270839069115194932924140241495221318979314369631664317622952257595317524934678868064873265950603430173847321997494986575089800509670749979527738649024069703663857517911732352485199913400733725449373889504365616384160752786444409551930751745967398686835162035824509130851529984562477694815432270460182177304626999283413171539364285193790625051051299240112984970016451422815933795206881328013793909506837193946408965223398972566170425766377509751467949453758281424786378376916804501887556170831540698079475207510059348903720058580649752420901246278717343359217920546863040073778085815149078528319833742802896974444414563328266898303318373664467706331829069652463251684403082717217112728668054893762961338640621795142662037371385550575238866125772427433836432236551162853135428777173340888878809821598827928304310616927460332089817259597964821836499175600340591229682692559235793859418325031371595951935621688667603438439288560774816835575608696036928112524021962889275748421033740557580028676303954948507270551269009849404082297119616001064607859853714800186179344923668315703263502730164525331509162758490679318215777522710467150235491154122200081547648682634225480570303683018616141717410631821154853163740332206697428712411974767410643801492725806350659647167510805655866961561842173157559618240248004679030144426489036087270057122936920594410485332183540255417355072388790647369636638042201347814482931457418937363815287899662587133625864171903710203692566920811340985325971799104501899818207229268521673798965891154938160906079450395281460294926212050203365834286276169083776063600208647270728586405759167377030137944113884372618605996005791409858020514532264919418293112501501201029444938936036182276476209997928986564593268784290623954620788662475099894880388538885544815614607881661014942921819003458350029187614974384003958955404195093482439127201601018606309852510683617313172465656960378962056765264422030305993809349339214119190455731929799256932850271007427861562623365074225261751129452328530999709758780555639150446079412243308090791221640337048489245746191328274189612542851604712641719472300350281652470903404827343671800369749486881311497672946760120657904333852547264100123890790625342055930524483972831587635890458335549608237678660907957899416494717054158346856164834998596055585265070654356289873151478009320241395649391603736722187733323185975592671682936065164999982234954133038115630286563101262515129961871794483927487803617393247235177305474051313430326575010903257001455712046004160232288924005046645401681995695136218045542038944717681779217236230389903012708466064230964754540545392675117619984006668874260673556696987196778076086258374919901424845940479290201844741587373810423548693752254210912500528631357367399980179656207286624661724115634542387142987189812152433114174969989149263984451477580722785637309881816899370840582902344051826092297287677967296350276423084142883769641953726281096486090212589557616142825054205363624498238737809733173779104151918782062484262702825404635115037917954710776742912272921427344869745419473960908095513901655263422037437332765236930966135840721902576359925973635938862334587368017109787840097556784904570657823342023444817865859506599910667299707352631869367456308942396473037905766271769215949705919678075189021902589251106700878816138226576572374543532275677111775833291211500834373343034004241514196827297136653396535836700301609394878500703622124910675713818202559044375803070813423514408703747979968772199174671706543248711593548684853831629445047547242414144463079157532290462417923816732967086927353206363335593010754218091433408777349466604875991233945759054326175654655004271290613931889867259003032251597936687285293453064318063961687668398537191653118571821315189222857469606244983542016278751179202247099206062364171915594879734353042636349503654623793727929789768801204669685943700524091608217645889978195809828891005164739234663947300881339807405929129665597281925369626403067239415795090895386164999751725401391381913125076796716682465489690165852535246991468598609977174127366426478467412983605075131717974147308514837332943807508954636729885553618064594904053130396470725321966680844751055912641558683336929354095106242349092592176856347552623276877161926078257507018545424757647032661947511937434899408590351951530814737432744375898624978059309842506716717180526823629332030457438998441840239538267195006959548461752310465852800592835204681967628733502629888287580690577590437619639426244359310055245085375770868205844759552365713205485773826875443180565948779774686141032477942979504718795876528360513725085510647649501586818623921776238570379437885474340022930062660903667660064885927507811183075459929159760920895736327721550643400841595283595377385293029946936937097974157770354746282170541272249594973738361064788749732747249996669257581051590338401840577920766850275413427604018631678566872778186378771780073875432784196517911876688143553088068483746558144606495559434949319952998576045283348007633063829084519160931361825358292974602890187932106695025012449654976706703197718471642200489761132012101141003724543478105718728254753790475331321645809938069955720804939446301693651933232403282183457492881686476827835960948739709706149097461138307489786211935191481657333601866661038812586180937096758172359221979868171125779333494980454331097388989971934736412714787808816698658151068626034997388750107673893183813329696216463474388539600415034871682146488863981111612978710324776387191537904431091449001540549640644704199338127308751681013791460200986989009266920991950140498319832766751043918708721380577391586644708618224494905414361545260374343813254495660392531689317446889447075504621002033362119449023544074000563297657828453732172103090413057565289372150090716876786742973445445210635986079529952516298970680208017032119133613492968533025701333860231910534711270958178239550936375330436668957058950157526789997107254282053959014582946381572177386133421613812786587967342505784439035096841121244308587461088213008494087490095621795726756652932424236870835482420930046384685585849035767656337285104170559981131298896900558873783899518429662778270296278820597872563930677608324834840344016222729676042302331105001761981587480894584947129441100720886239987324572632149611035080169825299523594161565214706402799081638110663545793689925876148529874199894417870779994607081151869533203924806558937869261230612097623341843456678732325099993174046061073180435971342449122506640390543953113382530568412686567902501364006233382393314883359980103011591454342943176066635800206465510158052933226662904703546332822325148608819138173646464028436820577085502595829348560039452522959559350198343007974971786989360362650487989543994126817576747301813425855121502456800410761130321187192482669847463117873289703372924486414069546492394552493860714164361245940095923487781003350805323661585362105078405895297415077712955104076754572411210280866895327842949668495488390399701535218496216198656270697433612393800829520396368150548484717104179561087200945613266196547476848289747102586432479311435407179633358015078344462685298691963672252838077708148271910397272902875108633516728898338325791005273613059547830310440351405948380245923444266311080086180325069898807569347293751527305130289594955735599261189508572376310247979803658543870889333667420724430090902765265407923600080983492875582792686618999789027085691734999649915817736390019187943913681846773041598559016301633790969196710266180493294535108876399824969553325601933092365707767034598519358598286898104526568095246752831719386112876804826143981628535428336413101740474463958035197867834022911955492342201046429651863929573312109170718053417748346107743765538513838022847660376437150646987078284662266425245896483247963278512846773799549648516681148122245091276505567792967705637630638702669251622458995175400120981546128233631174760056047064527921059253961564321377933742834495082629776762669583332546877059271278580223730616297197115379578669464104782436701889395459635996006602730471156284009790774144458902542434110819213482263025643267483654115621346354383944423755765983799224649930525176995044631196650190308247369542212346827497839545302202660405147277312554535748984512473252341901603280283903426418940174630085642486336353723662450372103455258984533774227775499083652099380625005290784319094799745419950077617613812169092283060850347901935633688933765042018551973055349670057861069586890603624108808519850321496302711512444246571554498807655257130339902694648254184002670586709285835278539247883695660735826422898921665420303181470550498864668401443674942773426887190382084941166613333114025421600876032599325583679882202748972348509587804901416255233980704438072691304743243664045657031109641661542819423483805488123049580542733303535969690545435458955406409352660979030335503383627575467557686012511100617150324940998570629552139416607831840915267814139480069820360509743592105540335674793049788352979174673994037093428723710290217873645173100476130195977215786587674135791295231690404907443508811223273806274561760479099571848518798117462266086964048624986535023318679429319606579865379317580534531220130993137036004460264468844635007725893185083389496584350984763602367864012405493208375363649498591165529946831935058556636338328460606140218509378420210303480252608549538899114145727972960334285474190425482991116775123214213392582845138137126285298416654024735342164849645609090373526370992039731904035956009379955608895779922261221510790029875474693169136470906492709384554967498484552595824231461889033396692288673924076185595195724682377876827227791066383122948068585465430314572831656290615375564653335084334660856776670005668215667174436388433081820936140311490813464745232116277452182136972189808709784286966022438513368261464261402589681617409689534529032878362185478968347174830448351750279714490218545285289896068113185249240444807256448264837475825160337138749688761031034601715611481339736102377704478858652639866935881935938351929435356234169242374508108202953592774799555376108866240354130158415209477761783508846091000018586431253004507913734941543016894981217851882473768911940286475082474289591589333783257805796878988699583482373498954784871318065132515839328516853784711774156542916048088085483099571011355011878297029926646228296862069099201090203988026370390282997020969448085540082953955964609258648649827790816398975595279616890889544457076087840834401929459187624655914829799212675284011260370331671557628365496182840853844645115406652964364619585956446359240673272270780847867068717878716804767819404198702576655692704409363062571964709516162402234241764377281553793436135926802435889194242074297120949635784525446898240971336200561055719263525733221930922334276948746293451594546833789802675565022095570469532391554536547037106280454534699792697834757309941257843426956471523508862009649657875052335518990980499011465977185722587245643853156389736932772246553925456111073416892451975220133429449604582942145369494475712455587007501181361890892221750634217652217389559737838516122801453665312640256558870337839032473849642982856900051267592159318394320520289632237366347978763993847007263187111118711152883535897335954586496903177834387186538274665488739233640610618502368238374047270451292249538330038744050871638182152394134532456548994632379066109094343482040187833341731544897904756342296046695251203026779073012385120145514433745679254456132848487837732887792599854268790216427138781027967731573405529306600615344258713055610773508784772880988926546608167744367173962247446716557870567033157545047146251414191110364745650994341750128062975929887156503188144289517497578205732526121070681819549082764796936136154081395146128214153862525301416430262942186291646986111122384853448558929673761062874211254188895909636503079387131812050163706951750918555359301649871922626931549531199699373449122615554530527718880489593119098956999593491526821608748708883719308809740732051696492050939865596895915767374971987149141948845627197426970207535483024872694311423660231914443374637210214123729639625557446916501222232281546423048958261477144117095281716409987992545791830176644900166795272755413029032337165070573094754931592489598160789785452672735583227890350356119789376694435482589932747559837118263859655314535285838285908979193836418465740022363516989480958404555173802380866293509339829807495559027337826457532406745580285276699987589764850852226874407661379714850661977293295764285032608977586276569900181262893856363664610081404513753422090004899466796925729047647653281724870893439801121656521916783834581913252818442634704855653962607994585383368418018864611941812661095451616794756417832624176262414085949493181176240305150254315824607412489964799636592787043795119118733722091198454466469711810015530468947180128974603783727257841524874544381096225389680325457700643203498862390425855001039475291681658475501445666950657861719866462955498003424124702334858708341671092842644184734517247298492381435931358137043155268435616043688228081321151056949491850879057614184760430129070023884024364305515355693517554571369501380508880585140849806324247483527799364139129283106031504839100172109868173498645704186198503105393070792531463722082653994811704948878660118115843254693510697009429064709661157401187115442935344376127004421853280112755696172809027646776141293508448506186292240032051509658251558451038110675204033090835657907641635751095933639624607205347274848807733312188475225756040841160731614841428945312192325902743055976959066881115998722224944946966490671323181805818349788039831412498270160632901970762187761239602161242478411425221784357953097818042985124127602769016850665528997019292763929960368000523097215098377337884099285774862074146543506779560531535766420261822255072740153931679571827170721910411963130931033101531635416155326644521241127289526962578199380211867951830127936098716892733994012245932002232199963596768298898336557343371348316476020083603796586404704556728390179021051196907537352680291266039355410931817291359706040999187832036896344856412299038599628871070764556216038863866224091716550674868899432424002440794452662995641113140365230996252621644451468722855308062263014377371683143951512063400253657171954141370151264118816455966248966594097335271349450679643749947212005840876526974549218455049784803276459534900772575911869948990575164084135395501717307115284429961874102952995128978680156565760549983771274986637460688525051420411210464298942527539649706215845265462980092246260287360282662636233356856952802037296157269059432288511331180209779949383768659881426697784206522735569503435140351886060206889193311437480301501398222392804197819847733014012115202396684647731731126018853892295195152964092553706285445129761196274658653913157904454539077337138940804688179475691977713252908009976581584697374838920878362660874244682495688921712969224790939571925498617361825591103159311463713931234013672916140567737126000787122882791590053790481105450416962927464775946357434402672500204271419824540480662538188284975959929340285135161152839324476274804601346553200370332550341046822381897933059821393431395357683018713603200042614708546155120810998145954467584076262694642774621829939595343175808031609453498416937045807479706194816581384653974402467692006484350473042643430399002282767999294136595530672633119580271547718386711671539202115870186318847869662274737472223574982007920028310713292964302303009864390687660926340445113962994923372807560769319612485657079636877562848588531820986248974678463808048056115333537168246728891229249358282244690658814880047219635642614770251921365224096946635473453328674845278960432136979722649388307065456268951176108519995693578148403101943028321527062646610970998226866828257210845033986337227229888458159763980018272271052377512247147670325179528318416604361540400215205459814989069594893258351351558605898845484300949738777883650204376393573912980106106923592084901839243424131184285480744506716252925301620483150918099858095443586052200350735374931252244866926375727298983213432239318549114611262990937695173051575183526934881879880024475131679708791200780427853808343580035457608748476562620408902717679760322310271642237473357582265164185742890798183782502044544511795989316171966557239856715418516611515367576157025800067587106190534225842515129992306253119208521652916449205681643183061754835276615198865946095755210927378985378879836548524247081945428092545880364078685522077433057456409495767451152679915911011665712635768146472164440778120308084900592799696375893128885543617304921807977886237871169084247293649320394318708966581152799409175523791640274117714357850246649136032243735866057176668294760025055901231113002686458001187907314771501360367714264340967420563620237647146221474095261349014413592085623034520031033211901272368013149739657224278836158890795691703623417765994733154226093792787232204574509658179811805077491556592348627827686910328723071906453352642925609158249066911335737141611582434645666585446246161816334093984973083685207809878084029754060972336954535808784492680162212369484198109683305646969680442923748575244914232818285120693387134024887693797918666170731371562249264268270785723730410313484797244203579478529433119368125293931189520230903947971341002113451188707821379133117796692062395349529474708388390941172801611153021681722728105920726732559445744336752286452889561299377195859011246248444303977736444659717906162545594270484359309423983240709667550406415586507609740175199475089341364720120567423241766047686635425882090551391358400249412635181983434132087938243282255405221094774603494897389075061500510080117118171151346487519956307149238092070398254371117239967485108992123354213890075807192654150335901193902758725820241461520141254161029569584437506922221623171569429924469097796071716352601347280542749260926482651891994059573800856217737620005147572058865912684317118218152295974874083769603540044791523009121390907868793719065852075881853894415623533210708062053722009522504776225160729006682731823188603091663869288358136319844359004271239060552220075624256354770126502922241105201027903049481557616568053833880714911836683983372345375682585949963954102461461202936759325171493126871472987056129918591839378052339973602363175552626817676148148214255855957910246715867934548170298261604825063584892984037390774902003389163814863411061173023385791362484270443089023099627935726867072761886300448612775795041014729110873407570656982121462291024320527068131817913252913898624502929231981308615513920200865272738005638975297317768837199705620687823456561875646376806538676436250719894084139922395500878242896868893353654815040681918631945668008121100347295081134761333130881265844570949988751553407777450502305557477006815355601177778698552964924388293490737887424230730460823158803681646255829819958517615962587868055116797148624790982379661909154261502797148847812015870672118198844326647641013978866304606284223627812892646338326517053798200740657866845237185256157634134168683665738610481873684919359355132914457683731230820563680893362617626440101266323344513276979844930717053584458803982111978136874063867044048355955322621256161501723704434713382631951631748604357311847963321423299273771812038125304731890507526230623244169180153991696597457921020862883477540322588585896067034889293649204122606984639032579912493413143993400221708109785258896182008711482155215029601799273285038334284101167869014112316001476670235359371791795338577919869006273698504813577025591020158488591040198731548789258612020417391509740718936897859028687819622216320297998967736852914219837260455543335141640443706598312647599238820503140709405830190795229428521728473123129822101800621427864835073228302143394036848719429533512172368279083961050388549822822847663074952929225093890346372661784202748421491439989237586026359370022370004082275699444045009292203091218536472438871003203269493436872891918223662200332675893497721213161539209611814931354692955375365021778968047422479502993679138032574274613349535338837993506013782530669006482624414693625655673864688877193200780257070367192068721230106476817304832613666078950530233258102550961210861376268767574829394143904174196808194500447891348254324101163661498893198993499159755278430781806400325874820834744319668905099410896425459400113278693690503078540464575566643464890300753449229398865678899913824047951203380807424799030012334549282723057892851043596825911735690697311632380527192101841511432242305189484651937877408298625335415811582244676273032491086944905300379027592475790060918903681984594492568367311175039436778056833799060823310911204849769617677671965698552856707610859504253021874349697135423859415353541670058555219046935052130053142532563680928354449089326998251936015983605201135697332332478596582537249838085985135736217786159153185072957126606821836488845641490721927243055317020048304183587797863126606818400255693970488342127978600306674211332651381780824359969577425653261069059176347125077022730677762329352528624818689194649552467349300273832953461442982332688917790638777995303441199757085552683290093642203290429411925356887230987209146316429097447769939977447897443150519617646274021385301769430396472875267862559459754923846067697376210607352346282793563453203725538993269398695861289212613629575731754040246712462713204179953313279769986223753572303204865977147012545797715845596503436386238525980793699104744917119165768843920990146897199594754361292829419602599607271776933366562982811662959317984677158732779683041106853486566392712620339106201311519004174851892414368584599048581019595864925674983738193931728422353794267201177618286755991760479606162250473906946247632633506084308407546922399211597548645010537849822527762650707777147467439909279563717412724067269578585980375438733814572572796876084692205414830764667376985696050972914102692590935147933375854147067059604675073284510442680695672870079172612324778721748135755132441655784045452103318899554698340283990627415242978723689211107094495463965640662747736552179526285798506064729333335659476228348958782736598659819270988544826585272842959682880117142468492510017298611744075270062518196835297605432983556160418328233669304559641295675773120072648789825893230980494661678651682729735613236376880032029188593310709919106388223232948363820273938542661753093060783402257022206031867309759273227003318264525039637026368249984366823002152538265590793191807525773441766526368735830956366619060815495089022808191004281242948371626065592463941190160245877269671362521976327899394416942920453300493228515149391853828081580537988452302222230070092005437705511706440953969967906435187392373329474059130758522389072966692960366405809549654951200409414861392594705240585487163343562384498472329333964258936921585855990010356645612154512017781792546816315786204934943075252786144672838571678231700334760445102604169273228400525619780059762720844400268035174700597398686932161202497090526740745040239366147450862400647515634546465477304437682778522873186932940792139033400109450391647949504691680348231990385028159492587788305885609739051193917288181609633950642078767848566650296577501700427770137676355447820963659154115923191508293009929217459867016821875381697391253173110065612533696839932110912235027315350585394255268860785253243143973774967979160702118899106965393226689730238394612427822186473779949306230598068534898420140567496589330896490584494714349722715272110415605149646813037794215275481578331798426842552494961351727870707898464759816087296088975357013578328921250971247149701449959464042091477430286571073204333205591250919445069590434524271333396328833032367700558502563303152811090101688427004816401104274948842855404952706117648072231309448714148026569961917527600518558131820497864263015181792705746051286311536961992782007101991371460804333319260057129932693724087542462454357342714948312785903931322802175872052314261539322289394671214297588187991618603329299015111817676793252699867789186705454588781350033144011882492587916851944954855078113013368379692714457743161547592187356815071775043991313232141787072100187181990375783317621015528250262309105638649218112394029917482751271604288954421140265868578077849611444095943217529122752202030315425959247911242594338352675528186979027967489282506643351227306417107990341898115294822942698681718707912519831237186567325625496285864290654901294869876689229375855609896911075281457397255414905523200472326471528149400527960093711182818032949096050135061768900822895025367030919832942302635514965367387373966222774310868154696346503052557243048539998058239167052749131140092463323436068064284071668827529381262467975004074681860244991180403724645157760527333104138036748211457547123060392098374136491275235159520768508675341761754444926753488893409252269135675620476303385678467315313913639873775769688166565442498326908361982243110283209004490195569359801265604648942651702980517461034397994252777274441926411069936208365089419584909409243210015988411564951999521537208879418756648349299099933902245360005713659005436161424006836686373670601940921555870475229963443023956218411389452342142090739760074600337326235526903908441816502134076075393626282521037867626710889291933263276854774508884641123914254988252445663395973100174877510602489647829137228373183076122326823237723338917477105694520400839413116644285749798199144068561274271424199238968481617225627021333643899292291865650388888120514337618536836890097753957429259830287239154309819069825460869200094520282411422511619770288472171642490349490618033526472868871975639326823041222234298652426139748317286588611389269867876213882532342206860503163874375971136956170840184919732497921318493558601661631535847666194241280414818899089823814908811923026455190462598015417138486998388944032160277556070172980929599120094302926139409600693571874985824557024702875702833995584823541409695733206887372629115051054954484072487698916246898796137192994562663594681275281762750293248264439388289922709737228313023825004264960869614471712167361744928480237388898340576109777606493467521636869702780728876931447409247609665007149869758584375370255593942616153246300033964417745241035334029630772878109669642085894196588906927512494260639620654190516180152368074086806777851333826258076256226121976520566056616669549016743447490751885753663051141746581202085013252298622660202235736210104186742774606500110110320300655240345567729167780701623523764225604999368540096366115346777354812375793539390258426455967056741822490122658332681441862378573784921466706368465253756081845038589028452145713669855209625119084978114388796718317993940260570234294218894140900519341025728186418839449302155501577692964305181471264323572089308099681835348088335652767505595239575056877097498596720176157323573809200070052851908493609017102334794051042426487405445954277576389051531190770777074538365208224927871674900753258632218929954036124068163214109820529849345050219899669342274954970581095861398205365404491558821604968526139866895793960204648465137102486393793407559504127319810427881181659580167729640355799308104674880369297707443262213013591443480350191541253071914489274229239758787752537225525340847402907251487723968584331369850167473896898833360906085358151212612665416637979215977058510991465978088906782345658352152898071041269663614252991793287341027799706110619842138392080570070333167023774597435306069340504045393201919148695977612280349635887131064929926283373454260972356606768773611515151836949545725652789035707302458389308918538719091581456593070580545810367116584371445102209633214309146474072861124269422811185629689835757015849047926232186650838438942276810867326975462817990156225321222399172404802164488246616037619932234260190726821070524796343202319200672742271251033770533446129506215920293958311721595396075516507396249591518301998636586111471071246397627643290493796142498667186853883983034671174203296124411524945841361015430870540970463605198573496754091394242313820680088210221400503652149613681739681247492944186000572921959185444910637865459616613459685583438761769769556017558364497024011938240944022777079034130386824902903217053402253469805485582777129585760871902023870933095977054198973465065502030367480604731439120236672880597463448148519680879435262005095645990287034593071993232640476731109798676651693298829060457780066491615979789507436950652513904487715069746757792455403774521114318843794690552783217108483055533117697566616124025361036339348756033132654162440068029734438180692974695489941686009547803410666953425932970906554588610808023924884313458232556693671700867955817225359655897539985533828819686073917250855347479560678863730730855227997558288167343042823889123471994611120868830781648789906100017175337257158497116520656355911069583610078292625694844316735484912046855703765038035957309806422805502404989272757007467613721426370794561541040734686274471209240853560050486297186257121862209406402474014141595627956410482218587436002990315248271168885754389681807429290465664328231795983997386399581708981060806346477046207773006274784723515019982221480017842667203564470219189446068136405010386772693860865518873965121159633774101463466255666362084419557687644773746101339989847316075934798093148170797388784294259285457436716693124665169880732616823178082501498514599487637019878907001721221921906848475430130240069562498584643908795937127602518546118767427337371560663997433389757283450310932975153501726182812215477661699109145959495871559785508827343017163510785335233715023929594815136496139377041458147927101067172544821807320423559253238554014923043471508513755689200753841939175219199667767673328354687286413862749272927180566170282881217113051975358506210721808525523008454840445971551187026361296150213447688269940178288944862906824204488372765372514616714093676308424044186779361672153723738347215575764829673537891391754273395276105716347117144891450809750411070556876566881449009904204756685478646525120760883071630379896695158961772761370763969881403855415176009345344342234636849516667287242720998017384022237818076282868749866622664960554215718279180738914015381519765046755159248749161172099580860550638907062692496956219118509007991835204544273174601878603126954502196212251103422667559929095030892002101689379563301958760602098507999032564864090294492764563051632139774652675962899095202428817090089553658352550091595269032290418657882189300065879233710215723518328106683329577488082008165091160662260120908722361815460234608017608793811332817204181087630423559760382220148408698431444652468077186539761354123023233597167928451858435851807473722842974050808901806483763590112893592734870564310324137889464689778929293343796350441144460046822915996534877449471175203962287180994886781267207851138173142286130281966006594954521276010659073288179194225529634455003055308614695674365659194290373517335030477719140198962792485694007524059164398959034412175026670965806085387762295772703693868552689663726738826885135913908332512061452583060722205360424837255583812307488084704359168946614234666144930816109731062924254834792205296697998038710395306323191344937037889326948892084857777749078859549639081251764689434846352052675516581038299378791406131951377207958236855186881564160583174446639477448972194541929339237327393760554912063542527402799037860403459227325023089612245015343454396057932927251468189248330021598284557424574947028535407028873174884848304473658763754418090258573815509329385422007258121026580908135308657660857927888640484575926007855401410600019166163935432408697436368258063462669522795865281658630296146069041628143521515318137119245373630815857072688702982918143365366540490488217513244253446658165530581353640744030904626279451681001418880052565985260769021464380965878463489143356771452771728756604782543538067043112058349743940672694571320661278157698009261553895065081483151072031415678338014662012793812550584906852696970776636060462146172630063599562487404125734168393302909607961863161915616085685817887904307903241402128679012692962975717469606188681495654284327139774154328450293499558279249986222729491102225083495204887149077523887481865170464886569045681737836554542613273423050400337833034513117207753223727938258534297729062511752309327613627757413666428576766656772537737483570573387961485767897410421293657751181271685286514417736124445052847552893757743527831014506406869133281690886764129650116141186649666682786027952812792738525013322084043809627858435389284273677550585772982052612967639637191700472629985271479445749807841275123645320828113214257858670769113347714948638459658753637617135772525318232661435705190907164335819721185172445057038468850318813753839285277701075580217503415731593072918363281340399505514474527241536976438642381429905670979872549802762298539231266797973256726742122896048948624398216461369615543404495844937605049039916330421145141127240659701732347618225370604087113273552109063041179192094091157454813980213558869034902543240408810474694545622453175991743952558809050818346444424338172597548445432075668600135386364496135668272529749852333872133377925021184564393787649863623633376324022208575435813067537940980012918857269089648831349618999027148767860173795933447768406355044517451881662629963773930022349385684474289222504455035490068281515167127022608741792067073759042935290151949309799708039004182822042691800520779415975925697552150305687017600278082705864723895956226459449231910404936087033334250414972813632139841310513772687131821352886967496134502260837969550462594124805479572985628502936139899949045340471391374136429813876286175423613068302277551599746358680941260934010838025301839153996434098930292719645234505038285391177802703351292346052756924954969796095384837150804412536316946650053399491360351904026808885442570984042829269861908862166564034631423897557692916166527050538124516816176793826514456377458535447903134725436342514826620037730882169886663486148325126538570779052775779584837048310504377454312317869367501198965352092348097513444566378549175304333006828492754165404908524713600871376523290272941906029799912225992598939100136026786578826336182071513368584266434927558337103995413716650273866728446544179627526899194529788392873311857315145013696340202823330544538155858496038097694579123887678396952524125692233405612940678604224706048592273059798351654508799357402517016268549890855528962091180355120745895076612506126193115813967905743394635675645516988491293183356409531101514536824864023933273663618489827915609517824038053964157692501819735230017064549564382019745523746296080015948846114352906685550432549158957906990017249424368960088156734701212377762814635049409070689253902920844947757176502357191854895201136468292423154939050555839236072854879696420604698671046642956771799634519716637499675875038043215755219550317246104111571404460428335575420871389944145091272721333624179801814340725895388611815355500139238063903268364098450248955104854875439081237330007313124355334370612057461286701296300526227637506160662481622503773785572268328162873700202798532021764013738313115084889546969609087277483609321166225915832833161021254493225227160050266120754175525935156002136477378748840378460491430732517226711524661823164864045242545446905164049301696777335989705974931836798577750201574042311191799643694048584138911943223599962945573733641868254591114936231612638201994155973661045488515633970577536632340843700437925516989969728344835054102072763342503403021754644451367375529778342832029653868550029602821576477249762723077008718862919037759948487678178932902905808617879418179254489825927233740206839758389939327746620896675600439648918717553757606751185476009190992128101828777156117200308096160833604618041647281500797421342782990640396527880226587583612560205573540266586585936572975712370795576460036899013937327293871075380298790339081484315392191320538591446015296473304895671196896061337465900651685039297231629125713502197565335174292329641445865853363711464108091408642807003791303805289261226649339510891655779517992495783269652470240343908647838415259806534142515555775903192061107569221097238151255915672431122592654757103455827922957500062734873093867247700786761035316679594814317606864383389745179161974688648311642990551951595966838791920429122292956508432633993785880749862832083016822799080822469851959707349169274606673526280027488908224637517074136996761496447243800404171604462294226224766773689613757448305909481864255331742468524294658356392044697189051241073640905405842828934884455864801898266713047228264078365505758506204270771373930616793126711988921479812138524105372455120197114185869817579991531487004785474848141134712956895484525238343291259540014911885233935944028470020780503267813200521014415890160799850171606722844869133441155949998007121769062189938768655300856739596073817355709242781314614706565715195685333020339165049891561687136994750456173138545054435186557709314145071437648250422261354126671018616235907156184437248629468290870312753380340990694446679870938436307204821018627059094305795814617432682084096564212089289618731864462411893314378232215058868022497591500756535574995179297143357260844083266425126194777754678903653690755459724968205091592054203894643318602722590026675704235362877413226891537635151457142753962442474126689880025400416064391450628440929159613042656304444216226410253780355001405759476158705044273159503382069196331054495020517307941779986661975366083583802556834467834846046049110589669155044592152139020326179277321533422559051070103236288739866569010073880008679551210043390230115811375390030513030279092498349207967518221235879935449443491987251973835987243822000508849384094082555172187203850527565601034659387884696684197058858562886908578254910683836731185306915590542192544167311355923549883427746027997539221734004215688020124825020913741000402531398042320985232976499409720256554328477035113149298333729858263468174817662165962280563150370428478831323168171829580186983221461809503225916125284379567384260518709438190554439018777058113236539802762937817883870828010182048907734111614601396109852518028177514001531845078656706339776832458086310008115903905830559034175052195809114005086236510636368413905079580861807621604960838059205353748628835882994381291550375818565891786825820065220662129022230900815907734671485433692490030363748259600801123459452779531732264149251948105509282787299885562980486342956294261798255332970262106088247274200080323864277107562679000998469718117744867186000511820580677016428670417392299754792130947940634543089270134511945095588789966317130343916923937877109055280559034906247441630812426534146002268882649734167857640302626970310147356976984097234940356417229066431372188652843466622964847825480389461755417461272696398691310016428290572102975521886329677506374183855221519158319707157245837737896351788423837927018836815500462775346158583135821417097671474996076675065433037395170391088153300895123278283240699326626675026103470489990446789316540319264742789169453743546243512068705852341048152906084271922811162645549033717760007154320249441397059204096129566947891068952848260278191722842271484111127579803575950940689886652355396674197475665681026449815599791267644331922230918384746565359082255474493889001751512240980250592537257901992975422936793019413313900719654489107770182263702740071351226316200085395289068308774364917764154640901316492900701166391167556874603436495130058546815338503609283802018575864224749418612194352480013295916294142218530419190928709221547303856724161487020874906855856792806066065799636825698739725201007033341938950712925233345859230198596323068942387217323839888968902930855415537878842493458597135496788370737963742909127878040283146285642849665863962241646578184937123951640902618309730067537917195338448889373638205381072335163862973321118869921634444582397013121501710169889947057295802447740650664179690248298799371347607386563301621403125564119797795940654564119622181533714446392930895104020632230396875566697163364057168610940871849286797969987589581532597974815611541441738622686584086507832986497999941732383889539586812881268029582477090890899231896120004618950409100814564437866863401252545426874899794456551410785297990229441458901786656168532944666924962377303839710475462093545242162160096364065295124569098082522260480070552228650496682561650015372566971429405045497985812675616916702029249124917040897478426901735427719058098681703824575440207258891651682582979294774406634767125835643997163733450538940210805207958301608800084212170448762577534399541284837188037944412596150344436687546590891143444262783119931308459456033018527307032882149402295445831169595997427504935517658128274912624153517948599016095770625018008045537765711913074446186532760226876430812649735441188482701526268932824315070919001512482374746237256582498470210933950429439243577500980901091997361822833982795809517188879215555834327118097067583017209015392267314811199326312857821866729074757425206410605842240985128218281461525462939062525951354536063070052080879295495779737102033840622429998666654124942834555532197090224316786899395726193575787757082512527087718037215033606983543630220678805086242502334465319477742121429794064888648117045533142054869973984744823292691482919949094711012701975121179832000724397618140144882979854722180045016103121995304963794017413416145873929442844303627972393310380965563063978005348969304835486603214430819145683404282841124406094707196051021840383760182542630004721861676093039278459634594696108930612951100389467789326112053808796125368971362062529236905630973666811387056937615191981848365150046874695026611553323776328083809837644975695958599067000050355145848577265125499058177598694025825233977451127477632730055122432907741398802033458694303661917671671907172495040006516401546921411858182673833789533104494176195001231296376893149611083341389249770014445624853871308835436441890330452401996637261940364407553490588156754052181964111964385022013898408056393583751652151597002167784377518699582149112081928119736380585791348567860364994617181538635207795470113982256287986193955573367854375719138119912803120975022999244027504132677191388043522008192220728288072295653914777203454979661490495580197264649020410223750953289926695621264678906424102780874589529568097348441214161495179419686832050871739321905231598917957876401776574727231254561684604196746815296079301228630226526457898290561686362483699675244609929247871642314340516105416719007473383936136624250790819774202711784095439704070722289654201345934968265355989346785921301781191212335766377740625804714728211605043807576854247128922947860731370241334390753191631525303816156984761751900754054776955966157447021289668333220621091896944429951714586509921898068075708885521315954082272953192882509167489754894986424038904475917643812129679025955271453143932385260126886087790240533634797377502997650844033937083369620011836490095879411748054983245183233310140333554595059836714452144999568663687058217468496513171678491975330630376905794293270386004664249652829703399647635271744597630135314865680907990467037154347164836679315491314649119694574226066285726923352015898580807395206010896705905857186773439613294414686143250128125980162069128148175453760136231822134472132173256107880695709198702743168634081600497829178809620729666647026592114453288994465168802317526149058481967307506096276950427435069621352338973233466073138443468394061916688300351654778058408863437680668957231367667500968243488478056863096224623772786001399901017836958460494888666473305607548174291237355456177299862765369494407278720447487665899334825849125086458923899692335698176677423810662862061494679158919382133607270425941258973788642299226484104395680000877428245153546784052821918637405139120061248417148617421359260040125499379060651854972785958223023595204326198610403625073155013677277821407655716712007222122684277598311355548205926096960837644735768788761633012841087435663101151679441337927155808021605670132816861125066760008865665563791062891324433538374618007648737684845461998034635727855531522975139986366681653226298735652514803131492690917831002890316573375892111287088394413513479614675750565036222545343071890656992019310207803996861947720629247817858916903562614164774187922808962235685239673263911938074888667912435341298653965113638693498389382699145383305308594415713838368658672715769368256312675644914164831212889142943354314806264877515341507766332658977455338457810820240446478913988892672902992510363143172118240582411446255102988860373570435399415502802010998463674435944164827156346676422621831263271060660771885630326449103285415005846057960353611934993247510414698118350224744430380936097622856260072111259587333883995445213863948638471276248660707257028448342947442269194234030518958136294106445721551001464323199580925106298712137469984329890273922273497916574693711646715222640164787420877287653269954138059666857246353124734473126061188666250281844972910482992842677170895496871803833983519538614684537766199139976111255082050182209905497977796381094132508262132796667475693475743249639159793609645180309962762234416077285911688866191789464568166803990246536198033569164855375443443756908513141563729803317055229244583339424650429286108555406983154060692402725512412446539629658347567899253807815526640199966481912419137203560074124167848102920732622012037768339853424721340132838701315289107868423567128859909986160596368818889993764372525044777171832230845258613867411633390568865876353591910298171329431273985791597572136175476464217193508186325238399815997038717870400765459788758250902583723122125941941188230081218721581586481857536189341563812941230141766262337411409313244176645680584095830349528747738927873816596988523248250946676231213109889944369947316512219220971905685322751708817300896501550415666377267132669244023882334026945924163493816753103713060418750518875857687492894463943787382924172398973088059721822168469161281128055225241406475461852941072554241881512804853576758232018399771457844889504096061640883653379583052817776019846276956218542145385304074975495458500362955244942341032765356448846047320579446549826235023897032438799342077775609582223925832781289518565624051670220441150857625824564122339586659108839202509241913726283149645821233790266408107943480231412630787392831835571073691521188290842829570582245425950031417955403770120182342755425151437228930521785521848630622315142937059623202412367889938008382979607793794101496045385227745566882955578645040559351846026317442709265742496935788707781624871738997283012789396995415326118043914891653753810929281984004831067686692117672486339325570724641057014107465835583503823516456913792203838183746806584844640214955345093101108270456912314166445267750461344195773175607764444356150831132037682446930066624732922127770453059494202106873835274224101680379327521208359537993790993605779727002536131866699822431829120517965923535155794440379298730783755203407632684702298330058502508768183937731007221342983154144105582774671378342613835205567972361201463882062374937009760417392134963319645081223341817655071220525150605258050451592591066296916916055399327700355188817850547262456085743851116052485005709947519936698866909310365177723099661071940360789247509429993545495881142733605395575069438278523902855616743839423213811837401132130470088981533770871641529328590287172421203241072935855623243794300801528886693032447962674545954090487543928960232107606433100629172184518704912653508103330188406810765664524417403676646842559173606904883067554269131839379037294342845556969563320846263421155513422476825240782394072013538133420413936643317975301889992581170750646140299424738337122407910874534274349595436380018755828498707547582787796464189324216827819592639122840820305593753166748135708367709346266821641100337862908534322981603025398596438106063647422327303445506050452696382762277736335323310690410814147156991624076874799941793923892481143102891017855471311012008460199324685113466191341472281313527866542721080766964266567015153531907966354337560629665196350369426587950866092977290887716897522008962385647349159502681854655322651202283003469104222228766228709692002057504268767498892933764908775452019940055609748226632855084114580807448685268476888936031732757881522774237012860995874746325627577970636973922010463204347448711896181315917972758097723615724809766024168888476040495070954161866962267628380288399762969779586226559025895016348833026965377813186865140382961398801099417190599292521483836120542916578257936652099674771392504894571072442116627008049321603129467099916688422006906351429552869540265949998005454739782324462855914021927588184039340002782489206731695061602313198170804769676722535132087678559773402049296573834972561627425603159661072976504210214804940524090142150524465334249425953586013823795018794596207142331373556083994717201250169143743096425048329402212126142295309776273852723725394392805682954297559333978212617899260010796542922038181997260845887063883596225555982764584478380422582696561999754402451697845354571065943051942517131140492401135783790829525054970220003561516915286786180507603932996563771581041644835226211840271785648674143974310306109172901553595328988159835671517021554246950312407962510672354747187914231827819603815450305908572997148178592312795824602370439397642945886564687649883796988906286806199211845924087248974910597776036404592122707971544616730037488922154872942972591400325212866247407600289259164089350302487684638877654573969277244225154460386818605651581148306176571366592320891173592845377179706548107625978697144829688984923259697853113947213310688050325085241513016568593621214036732324235951627061158581782632760965762089689981144561948887606754058057559115629425076650657590192128319285781543785562846796020330052454045545126589019515659949132727635970556714323296942338781236134474891301912437389897185427588922728630967434043259591761334000102521633287718019212912065508819603548040468417188844020093364575756674847383262790369909894114914273046845392908823540024522581005225599067740568510780057253782874946344191421140321519366779086317002989139681646958853926596629634979852378011108834330881315365673602306897953423493644020433097499441084717598247549288402855495330631369201565794356210814904213458297540749095892226556980280567413784552842635793241527125330401173150156192765980045649325257810317347792705665961587299868409490866462842374149688748620392378910123844807981509025705316132383130987523945873513045937098391319185944884847405890569872418864987227211791414219285803479694366258361586396114122747530981015378198555184186838525294438616005558809099973903083014377931866648115865625136715325909681418846950633216195406577433288486972419892649861397447998866011507094863530088087167915214373182368622646327110777103511248901483026782246772016123978921179819340891826089938287715674738234546855610133127876110642580211027984747072150329028086996716979167116383488614214638445327547441197329614294211812720576442541698046507063357867230265536203943229670036451941943599428996065193271170229018215515601758847034879267842901751233116789879533919542679485358228582039069452965107643984465330891848461290262345769176899593834756960759301827082570181765747691217336052269164760693245974456581934311014887755139902527705258285733835871962011600676804710948162081644737614502813538871468976048411844971401246118069730892991997689972312278611003527977537177436162967861054497456808830670197813532374595448778942780166756725457210762390062643083264446110254677287977417933360187484446302475026304194175203421221981479091327465054822560342893172701783428764796484095752585532073309094358978314328320674782165237298493567381036217995286698591546504997744381515551396202104164136473265993666345847015268123918548430234311705641691749052872737889466269439562227515426116241463822750475342198791495732688989545582138061284793268084536094121374874502129317454961217580984360392612993962878468187110122408107300353046921856530672167064629618272106279057784887224871114436652343936528022373614135802366442553615301387066531866670642210763830785235763517872725164056717057469975232978704522626771969157279756906224033344842820313623387601126722567076718120760880750821843999674703158038782237237157397880060087064636801305034428471706174783978252964657734479377532575861710676005583174080826918991069136069178116451644987216797346825878339721531362566675364917932632304084085176165975228435216008817682570046296960165289530297792326447307172649904892915948849022917227478483566183504547458950950013097141556078851668489036775383019887788074452983527872615849882100950506120212537566571805868749697241782038381736518020166384530759351694263516071677552383232564829491065077853486292279127571483581618793843784645300438396166269126885687460838003588222035915347414675022762556311361813064431962873779945488946996699856005878350637304803562544908458041802974327329733371612841777399984645045396116812569648990136119405013636299191727492991430673975644209090727038899312128240783163872065427487501634484310392736788998559520945167834348028045498332865320176903293213528211057580091950812004171032313216729250407105716591969604180855696596423759915360962009195490804733992277381322020160130013578998324471340845005128509060945877399572143556410854097762882595375713405397665645579509830592665822894066592560123941061829850311962696974934343763912528596527717793472395888964122829404017606275594549296096430351802465355852865159901120165342696029066624397243597680194474867638753507058694887996602637825834333195890190147315495842743985832828239076222520924951961111288676601715870356708704152610291117259245924008525404817184906544227846016095495734664196034355520757865869204037218104107394360943279180484150978051402222725896306813880665260942381872986505776272591170669610538928709387457038660860280270769218534486456503280310769027652692363802793807561050041317991964846127518755004241663210752788915060330934575464950405553352480300431597457536284430627899324915853787402844375283062358070936308101997630325456274198091693872798223183687790241565911877543091403595339314238560239437464783599208013936599452101001795676647884902827090700926283900875836749963168903509320058182411288180822137929206473025537329938877211545105589163970852187884531278024426832813111727517733015185313639152279770779211554024112761662679543016895905508278048453397809113922217671549308546875789074908031614031911470329504825000132412860442180346518175045638808323080277374418314166299680560616707254003529555405155632260367177491434972836617844679183646818673277795031806539612432357346436640073989050067336075511203207161699769367413186932424538073607437207163632647365723213076582996951476257749054232983150262625712563834904501357437281802318862841085545277135206859023415799813199269421591470179713321548446260218925687486562654665586794556225545580211628535082553092440081446319453219670108360343232207239257920629372181167764977808038862006603764906296559160926885617255398376317809305456827117300898512814771061472586858672070059940160012620289475745437429048280154317242972819505174975254948689197086074793409203503021477176845937779284466990989191315021922260190307988400145310520451208981246442557162818177301887669515022913656867484018976208140843280201991040376999456593962651508856894114165746176834641921293664264795194618850936730924393465196940812968923383707537529013300007968653075683170164494632783332675525824047040796857087099462244683795689022656674454622898311679302002871648079347421784466590186336554020517222166942489517240210445939141533869423581689740342766355139431048425436595756956357627812082670216243176246278768578250990415851092556123608280090316437606083189844954914096351807505232870301083489419725039235146310427002437500552807928899997061945267463216493552667844746400372437077107532126214467577081931445967575356109803072269575221954235589448512472948722815826579989440941913842986981137147222446687547019052023554709612494635215719831312260822252975620816792512326474442375396214879967160439071527709630755869153892126234879254555726536715243512569107692252752133871809843344597438380708242098813698300854523851373582994003656760113552649061385886411587181475078377082486695281370160721893016536101033380537113210300572372316703795352707737532489230213465075838407760297416087743296498480297140828982418249892628900848663970153678817310222902714234478596003115802650480700193135766645535605789314028741542251241055843078704694667234835607014940250748885132139219453508968092165370790501367732404223906524306625364876937184501786083662790770261409035751277605398056464136238550564523695661937094135770488943479815896138158190955685265602768884096297640670338494007173297714866399827331020232123674476111835931176353002671446540804653315587467939140584878489426583573898987117641267576124517825007023712707141544956267009730726434464029917588088543097647032492123181304202784987593596919760240395692938568471571150902987324581017370738353319349826506867478136594348998478430728609963945975196997600845143178671719519062299244445211770904767723242761657676210640044248613150423717621949067237076485957186132366476606023063869129847676220242611661738640792732336786144128430229527921547588271103637550210237132351538545457002504032848547738689804619250922068509524513165358207840921732007286023580180818334593598108384302259262183072824804073261422842699036571713991314573817248480415355895255448457485021114929090390272129350455112863106945226729014393580228614914752971620822214026694763190379441344654520714019066499417603125772739770751838208691507247979440123101535562458392132157371650530260903157058081880318204303524952420380171511065724245557327943635104819032012260864800172067960618309911756444867763093854472434931816475519865938657322095714855364772919939995477560945310107651294701330022625274049635622234693442597166999443513434819517747239424379810920608418719495994657061174834149924631924691874771665468504981907058700356823319477758677086814543090192265120445853339073854656349005260967528107040883911559053724581381454638610900076719047348690160277297037698374047368165729114408566589568870609999813259722435035417708702200973305720347761307307140643316245341241752642485856362881534174664844645553499926909943913489083361169728323505352872698314282950431382144665241685709257765680278299309232729033621637375913628072615555688418829887430584462817137778804086164798551963790832659425014256949127006021210501628202880254095613035996529400267708337419468859689876153573412852452480761670781535234202580705809771725472695412349093389007937253941395709004692984186604040372167858542516323990787670227185395554498239985948150898785197169456956298536551718901569277868935291986861638609783861446368430231590020389441927287014598848500232575800073850532380774879903977435916550755802808421428613381336160615238135604388775157486093353032672724854806527408433975012689567734558277572071263913177241948985801856501449085191878501786626660986070375777062306902886364949766385028283280623758886554912180034760276144147893325342578285372534783549108657288324634138688943954246727443996473541565734210159767003861888344876709722770571197236971223571990172994496231161535656355887137802815081228080416606935628867505930700470766957557500118256358436843662520179238340291187323419720124033322249079058945946398667194305326589272314756274765816170565252780254345286961595697094375659198233710590126213885503977425762968444868685444305742223544076900160262741050777099585961905352157705778442081452760293440421801842714080241270460421496486434694880799849517145536708291750276167573988875775201048158550318171350386180375756253064054995424354011438026836908183353546789298813027071076402101007225420377927070051392544651732686513857813976855081570994397427291418793520179306666075140084751145734057991912602717337456692273288389043287051417458217896844237463713330744152848151099363221367638995802958692071891000619393311887339196772391088015484673666048365308815240303005112969787800520136339664310225276662729429453925472328833673208004551321374156789594562108598423197563362000351864795023369156628306233744630810490362097368411129691582933776113908804627632072285040378574760567760564243467589409262960445794100077180428242066746335352582149184520434612569901541471258043798164102788776593251899496332142320382209978557478944671554148068301622600077387228155049461008106106432468989768836699624936507342178554970985829437929263425154878550836097288726267444504623681800003225300944923315932585312792763960892565244561761431925722176492632728281168191528119100586899678393897327260276978409678761776861002275358648799844933817292591725319149768926582104146516001118578550504436135128676083114200703288746289396367240999775245884866845597953407478947837415976792276825128534726641520015257046097347300603883234426576898981272515489141199283847246500903053122291779222960713084065147693888300148960675583315176750523108110064350254830189916058725979329565797035241501362174734008013392907051237885235559057447247772310773321822406760521891152775104736002834332057618687303944061005840523720354931177976818225690089234056084430388147498479832494291960017241934804643171595245965697630559487106833051345196844028200528848077658543504796948815624837858297161798756273951953186068198059370435519174792858045483255977151654719736786976905779434330458040492038657429808923508297412869221534337629697800729812611421820845811134693821915798082822337904565981254865225229728429057428311317933207906271859535217366195156229945919208336209665969348335012826673665179523380205027937078162981318760444973313711689944001226048237230651983658336277367075361257397967114959838602762163044612647948262338264083614579729564404909345593917852530617673524785071878074549730550532769149491321888052972769527201372986021902047149418485673031670023231292092642481098831767006288880905938043652010484592239843352356709710742520253545475125758210533406086178644699894452199439114100708060663836924251939151853094172693553574913093115393512642251534478567075505802685924132223884391128759595915832649361772065942085575499686742154249315285443873814538920833512775887923226191524414456391833147511117814488484877466414358735252282811540482572626882937378176569873036630275250765909708770231065815047341329631537184508936237679905227556099611452618162276023736659306779784628630389675807943907418481782247400526443498677000025277001893602231658919700742699749790930727647030387061413687333430830070329221086169418560308857119987258539920527268273776806321073387594944086604443053354359968473413935478725796025326796316651488984883408713701533886229648679077495838659044332681939436812456469009976125135280544482905075124086581521753632718208944517037041165857625900463496504953483486878883916793820135357386461241976421702227425033152195366849530046994132853404850747976450411496440384026248554622538975454438165226043709793187416701810102623823787637620404832468094926483207551310743983271486284413189429623072503962935821203365112972928456721452709677283733026743683107344450257209713009849667481783992928577724326293303555187272067664154394449672208892551082529241086935171083393508017860250756627331695978197959447710605167645219188683968236226770136514274488179929828555804423873634033553357596934379377012133287792104453292838335696712987077596694380837461986074334847012422294254023398511487490977973560017038481174443354799571419554063175526029208060662632538623056574460527753075646617352661541023443191537075896317903057521096449757013345744961155767200191392425142257795725988664797667202512992282538426694952917841374128230651405168440666232878937041489146665714925650438231624062214089414603733769690381545950752358390070293519529334538478324731734074288773490273020793320018845959207810867904375584246522287822416343591204618763674360651330134457832905385881783951302582160150147689116293025364731599053604012441124430616253358224296059804296212192792935105313598512844734546668288381756761149781547938895353467192636833678202621319265834517929288040895584355291771105467262405750556931322161610856775648541515938897583463858454114353225716797508597608754540929194360599556096333302816732251775444777436611801824684942270394500861926609325568563991824074454485989839217039359605540380574514332317030580785960510694062427339917119365734403465247054628614656378022383844284582539719867383439921531223134502199183368006719121473715055246768154548993161768695443480258545621368779207144678922165358716443842015739526212393071190417989228112759712478738634632227967841265805754346875970317982319969378713841568024361427893289672232909001906843468386843880711122215182458360329998732369094759221860583314450635389875683785920047501919179717254887528004582164264660562654954883031202457164710985362110594954366752083042473800260643511529340806058654979680795775879330425256565809465502186296854534906343475195462355408943877316044728794516938945184152753766773095382412005386696956889964513982396358674277655404372785567676395003021184446745702305992136687876299640115614854302872040342537976938933892437923157760289461756868476592932407406703100418998903350889831278492369936532611742154829357783404828236260496641024939795290263547672900926451366557327592335755859560476461661290124302716110793520462195492229312751652202149364786309637525604254023011356103385965684550915581214563255415953686346837941340450410107731271095465019886915422174849476129820371212996843492183438741389897864795416625377591690740613829499776893609413816600495040644381474625426535284682150963111051165032075415257976949396295242863735622855948446270245659897587439310071815815982872662845303562328914441798987465761794217741648418001065044717576477463062433777926993949547015304760919476276878702389929947159125417777865886802567511823080346501959841119229840496909083877954554040515442798346044232820386065893586815550383490875605468197153094484800709591593762329029943777968656952841135014343297912426676790792117282915347835956673730742224029615278794441252364689148089694172595197053160442815803908375954571089600040325131211017480781889209690654269417438336317876052023182781830446280233844891125983192123907380893667759862797469948845815721633519479231382643496161457499340565843552008517004272761105134943538589186704503233720331603560134005361538094344604565844610410419970405647444026056199665138608097954826315658331881917919449386384553418828687510817909444774047763927767505253436204832233985716877032802168375618411638582102876984126825448701534410380659468799762985628065680576052246624404707270490612786250054135849990712831338219774440741044667858919870654965408583548362942551273344966725608866109800638745243424985944135023417856315503416262729998507718671101690445250507459153311464408953635480856060601586878634213170127865419068021122909220074029495489208355272472486468351709009545415985167708335739254068765064667047876848109908107113181016994107873432895926718923922956815271751597077864722273365732075018712696107728992393496896266566552222737415790108515385475871473087726617401076818039374845925221259665870354608171400444908829506666088168578813328744996418030572930300709439518835774477095679912451388158866824703594304056987924778026606726485521939602229433015711965558198342404866991951665304700094934297100382657543130623183841069001450669399120573604579863441184785921161749799610838261316216941817993146503551452040949463165135095387361523220674772762224248576619204555928284181962369282308329565623269374950764626733886968976464066272030739935449533623515563917737362490145458506062813057530917000789648202025057719643225545102181604843625001094117529865905228988011763686079831179525745459385779634093589857455775017128204019141362684885965167969930418818380229574169981497570174257848316056191943563870007125733057304224458459030654353906455821035839167082931718467285879874123075709471938758550295233013375120014677078251846975285224141339356738625776856637353097451890734021806901610136357728415568975166517553961680290807170409928662925730151089477669144725804872633762968812642085122893537749810746033074972638441036677065176211556928531192568514907079864200056990824808063865504238503110186041481583236048235909912044455932513368213584571656272721257168132765450956560079746982461982334513673567657253007941052072959572853433970882955966127763284114035736609274883538978268730511008619598226285803246745392975846831929576587740903531143837062255785448212083783977655250730860413942371725372175462615169802341422674056652510305892528912588167033031337042195113981862166488331696222144763263930403129814538921393036874230385452526369824846405414087879840810267665675122581406212023971656139550949189106722923893105469197108180555981998759233099520860229551267817841268791462687673571632274701286669730978293458999253328176112189689897396066618592743546557930215614466727651024359289538683302311745884215072263996762678083163441771505165724353759954323374569716689871198484534411398061302996881726529190297197776007015808242949533181751021576462817951060273241070754676656022407294497152658374046081025384752618810484552919116912130921212656242950947963792617717264801623619445424664388935885878098680122872060986188049809030280002574246169661364038075565347012261936719651197634306076964708687122888203538917970997305400920891228796311407803241978531445147413969529162137465500585838381058436376437832577147862583265599736087308046576924433976680291706937792381409576178552059507290240522387821960839027392727922090376563257824909854650121407838134307728592626225003009086437904490315747375104034220378571206564085773627914255538865341122086213676952126110193634504768543313016041779695551531328275246999482903927683416969281211636709119110438340515007754337379916715625097976381930448664151445635432839553584212496665181207421029126910005649345897031986609889989737785541251859545732687196430869174061206229308956395700258967207323724429791710174943545482958059015339456840648454160720934145044544962646841044614511423169772773632853504629395711675498448627846276773017414010851059767743412481434117757798527789849871806320567338732165633394805116463548824341514423002638050624302784101285507445434760401835412348718566500171042502618320799007405217207083658431842217237305565723668016521308966069828150374766527779517689530780479097240244494063958969538252648605404340306682094563825815157066052276845539227022581348977586010993236011149077818208472820678500191106012938763549533325610941177338875850042262313721498429278135877710213531321038504899633446882397008166359385108474054144162428136606016143999767294402754282062168365281452637201896922094415488472602071072007971082173428892878108302128144086399233980754537091518625357985327355596784500678474872942731023188056918257739415695533772268691705179622626296941812121446558245362182801160912390229754083505488757251708697514861510464879469131691503101178569189716228954702398959319962018811964587466214980322901926027557342089470084711957385149593013962500009911301630395301240377511301718847234872263450261366937611859782987571649150216840570728445569150245874056912715366231555290718496352902942099424306226431344104173920884588142010643933009360518014883398633447007267916261292439795061196644097859725513529433934269003212989464852459831235889590555260035582014800471382427894417351892457127381957513960084242486978325857723683196655731461248996314248942110333154443287755227048585273631414247883130765441858233359269561264675708328445593912670686590670593558352176881151589047488702735149665834257785125690844403363016585713242998400764738193830561213565129259071874768592286898537705463964838165842272407968627301051932027988065144503110031715550116940501579651652067146080905658797584526883013835544595891482887988590990923414075659840562846400200315880378298315896501692110500448015746962652943194596931329205669398732572760301750251584918661508911630985091357668754091921363403339766079278682736180173074364100019829986174454413152989420189343837987612678282753297299061641556233864263331614940273334899918664317202367321051007142314927650201403086181978663346922524393594207224542828181186113787324790897486528187824207404579924575587304639671436957364719468162847930875840746376210616288045197826745478694860846189292440286144479886441982649726654184452514056958408558979889473310808884094724595857659274094474024087225457329964766611271087043871319456254861097368321621787939651294498307917487234687264821151488911806914599136778623627906430319016766966980965457888649372795841906646879381748944807766060939337257879536955607592462009230123076008281337765538132144757916399487147776421336724750568800339678854080923994728761159317962731172788366851915200180796524031965292026426426757391908794319579721262292434387985218447196416867721715602161649713535207878840224301346361777386343443561726827269425622417854856067416957934145519176696349052457993541876006983322841775893885704861024699076031147531509136053051113409570680067529196359273529468750239763815592091741659866348742396709987969530882427443152374893124057401306071481193313730092619451933830582433358256672741935412920396090077215954139575411942907134260253960926546003844772311347665096753539671067169784001590691953085041745686236071986546920940219891114009487267189249923480118130624527311316726627287650665873088833584998243158980957936084004686407325985448651353158446140222505206102963674532988932508720136458773084327313468970110489880841201562592914906681206403495038724294903507522334089010175247571564546872442205125220338547374392005320463558323044354176070330229639188653686198354956923173957219679723905519718564162233101753216115380659949068394104761456276356146846587475461036827142729893182053674875607217496752064063995272801615001896677567161774287890473093659028973885090295815952977423236825954861023475554656020925258509469593974143113385768108993615058798262868436110623695820274980968163852488017388859182773532947315082241680310667096263348939810172096899385871258096502108702296637724791484109382703286150796836821976576346507230170416621000365117020958225932703928471767437864504292884129099163420522899883877761106059209832613491981840021623092647864080236607938842956475214072144311861407610275595480582732483304353957412966634957341801406079165919879135776116286890389137674404319514414409637641776391112365103004677493057723671607454724439097258215512688420252718972051429189903705748267466882730948588370784383042628838892820185633769635297866223487932176113935173645246945635176946580249899983293611975598007098651475249298197754419962389912899785191320818018084088862852050711372878472735217026358777160539691164796124373449013312542352416188861773825204128095402589867818986215083567303487652940265892343682747925726586852290006398424171542153350634329147241655212140985453050962760839629397747500617286356484615959217320146787979041782763834609879923810585413838635749314874522586916091162429993323196019030158121027432564987733687148829994569463217759380090166245165596287277516234428636948763711645914266274185512385975775271909822969036883337741791601653556462694655385160540799163397872363909561175517226696014282733061394784830140040911067852389009774692222839575829042970234208220427802301773570586427863761536360442555828253749915480422972419735989268215448180957975084803880538360376745369819897940898568392318696434348948805251752774634256422940825201021749278142599514909716580883877796987899888643573545369659370789661650547277200327732902458690646356572454531393514024828215638232867150343840679963890446517465400590479619228816693376429144029412628503224448724610082020162887344917768913708419647105179931615227610388679245186965685311638188572295895980562778868242423165373096745543723527091204156689821416980076952267069600045478038164607641133707400277968693930114896703909973809722032671540936096920903649727437858792851439295399898707011507175544346989520942066952580408328921409918144388497461322488053963282559798211230934181867514322902663662836079018473865281552948794107538561303946357287383252569729708561644196742346175820639273445924280512196093887401223762365036521683707410315054933698844257967755380362417591975319128300554631782020918264644809941635710089056658809050375890989224111582633990195247008693430784530512502821035314149236291559114131665502391979239812288404659163746520208686170816051153660705815595781285792415566878567573864392216292449996338167667782423052451155892988861298926481339080360232873288203601448426765993771202388469904788734240995568770278546581784786654216689266224190982695062158529903385755736095010912638928686003538854616152153761345098481142323091073203113076022505031784122064491004289894384498683897817100733245666040012208256402694142969809627753417177292727402587854505040035816327177122062551725291509776899577870216981447322983724405751708395624334866184290366926309737266770233545468667628847692949361264572284245229492013876062064863266647884129982680279123059433415258211793083756040530704162072189014870831455088684903514680126601591205306533871114658604936206706889623535946857916923653705346184880741130689238143841822619129212193125578649426230044631847077485674307429954590088038128966097261838834041669310409759935711949373581155443351097346795643228181259641818470969083206689602370512285214230616362382167455094923581660048384985328580858350145835998917453698309115328762637765148051256983817749163465443607520097494252756011633257699078425598579044774896572326194480909697907647938830233056432786781017362289344890247951925661453013661087317233018621214079410882847876681907934900066033403360003788149491096334988686106276111662184856314850430236821137283373719127940322967433800663990218268681195194014634700831410825354414843470274428299551447139342458062528564026575858491370336798638215287886269559967761179254438490539668052826266541248393468909585145095453083944756012658750976049375733172403126287126217985357042354624288789343431793245840317698808675737603077000845198679149449322871435131801865959500562064972524379586378712391846322382550738052594012873422202833481225701536307439827278079412287351526244683643620572363198841741385871328506389585848406666968799799187478540161936547920463486239538867590972139448305845821418835794469288833278664809083784294739846632647501022094516707289118638377487830965469931697439894943605603067835997223111568999827970461871843881130940247199481476229133754989246655979618819023906983075380196656294226158144420863818525015861685374571628018055377979797469213880259869699240225856548651618991701803832065441399884663931158079827387344892783095019419010881217879512116048396929570181983380172253347587845070354139305345908398733383477382515909558955984844492213027500876150476140648388143637636789630652371546644143578638538034802550202638989129967391460957973333938813230789428710992610879382286305460136107199599844375393299424226331818940644178790358211528525187450159426467544123440342138730023348542166257968057185683363228595917605521459419716709460202606684967077181283982812843090897125210711411904514942082925354521533255220942763974169374311318963549656062027179106069227612270688008363075264759412665980013884174031905404795647615586388292287564788786851071184290394561039781336651397578850690589083074553501572984575177344649972382395046488087600272941175686678522921642570784628900159996213635647739998517495870107164428441787127072429194540188413875301451648610393327200456861265934144132949186262649047269058045527081773970211106896688450145544530637470959147374060669616238714111854308955690169170119576318709870945105519511412499981098284286092856935677110388114297956923784262329418371394665256578841829290063063076021003473985066385119085287162999138228183613662002661886238393095991408393764042015142000093672449939515142454447167055111203360367430939883235840635637841465926804567940085904558626124139333785956946442860879166676602581303288126613226902661139626615895000830835155218049519398444313146232880505269033620264290705115907466656007904386177179375546578431987059750129375237053073624848696576261881469758216345824305823259967695675799811926807883303240738239367194466150428976059297887380660797759209671356608276955508327455381719012347014806530396093201579473397056072327919299711508729740141754219913829828931270057421010229609942373412071058704925479419278000651229119769826097409156843177712145147989856357819925794125400955113755562895142625697194001044029897499273551871721673436649605161040712518225232392593480612979877783602825534147541449316617214524887700305629949919143692082130393347652471039734483352377888745288390306590814172801557861239263089382247661168244743812557350332482313105859954999827499183830012015842377318098606066412113842225168441142156208796517092060338143517124872487600334398410726609881955766993696888399593556264197232827455110933841493100807050811519711776874069106155197078092550644283546064927748488452384967642218137861842471490422129365753172262418733865229412344909120081033996423232711638438873280992133041885930503152034637318849552215408513703514075933133176087322762619297963094248250244735885442875064899047505719516235187343715772528938555467286595542469254026956613857062046513690752651064610732657792376507465770612944631431769192315141757723217503687766546863169027740561924466139737757848061833321818499682368510492149662825773525301739140804837866666757602433896516573531620773109028543954515827575353785064833761917915774011222993093002941697716049467509887975619701106938316645338909388000628567486645675696105761684183894782774424847528936904723197441608318119762113433342985146644287545769064810380694335772972965088885522317327202178387663643607616282032919457821660081155278307607047949510242601262664569486926496175642866705026517774611840711083129258740633485114880063005349403744735842729482503648158345036607165904897322360317277074398044507429690648073795789515802477344693522362654358460358849673934084111975834280312704562418499125300450906057763870359900232790569242470493016517004793505596414873332030675659443080629885036547776550947439615339238747114515471494457315371131100933605627431939912703436381979119069150574876338474576190227162249241751528664835693967811347824017598305978821924787264973194149304559793699567629589653905657266626120480897535935187308394180008203822338728091150526994897377391377735267124821447296951321603357109102008217175875002478825684573908994699411039145837204578970663570573760127183469727587873961621038179161626403397719230020933726312706120731454336449999906239653056493893566565664615157488924482364861110352375695915833458045189062655991585944125702936396408958916407190607198731536351013709725596492851021708691532499875117339646937826541451488254369245580904077982494282854859602278609310854033446824404118287802547926278361955759166163052514824768361200446278819843876135268402485297618121888749984122335238890357757183692283231713055149947124813458505873105364380738129716625553624303530272547071000713716552709953955908652566756953977744361149234225012333275330490542535060551072307271499339028971036378501388842152417076990279803151525705651407219967582553913462384306513041354193691479964867864182806812697259378677915424223749201308919971457085076633559399180110616645119558248689849024471699198171278783242773084334378383914834569852761767927755260176091801011749269770817846558196044884002437838199626392878622314752405992135368453361882710582564812956288770343062390475929345253550809439385141688794559362447629026469688829696254768631012020708849130046243225437736373139672153003217022509056845744384459766536688875224185109130216436159726305391355645613804142884237694023660909765237960355233609625953695703103435310521115833342382694398236043003274135260610869143620794527203497751517130851061970134422782059985380220859468046420136320118724712662839031312172460160536241792236188852717846238679227151352144693784514421303285690002199436743802306241660392754409326685107529019762878671053722466547616863946381426978824588559114714343684206103155825935703388198740153403852789627035887530978181282127410590112421931247994984037313578321272044228490046681515435358950663744583864459655156439773477327434897635655879269270148882866594239105285303941388107397375362781325238702718720996015755230792962636520062197279139713655138924279860468095988290916371092075605960406895414552344695926988664076594989404062484644391983029313738735493737940009222424417085700187752312164002725837812888085636237234499464318134371985407928321355261907850034525898211717105522973588763334965539088951256600385693053089674374599100353353571028160604179968061244728587415189162727726707892187520494515520153033282291566200102924394862952153579267034108812975897816121998087008325159138759675840632861325180744196481950860389857682024984398952780068743835160146981602507972619164317780378695285877941112053850216345711200672813886824420755452706717328026234499352629617951386558527823546482065231746465067698720384194049221041630514159340057992770408959743237291598028862302880772743608135767230953040005746778836941582647818165045499114287930689516950804580171526419873182308291946622184459179834888498818689549449892745735194665011435997560295193684717997944265307085331900239436941124634285747276538315089356061129683236124051614154030771381571082270185968929477300398048003274063088282974902484370189144283007613003720853427422938740166137855953295819920397610422151173605264802437213857363736059294223488428507801502261221827823729616855435420544979685781982292634466872136256201687218171473705096381455763431202153953402232982528830060058466875576722732714920957103140032446095253204731171276425323187343990040290292012432843396070008880058661714881167347139733483332368190401804114424593371453633487785555932371255271466069266560684942699737771783065421209677762068451369605970952618127448467319966443874564616369390933078440847206532043682767792672343168802689138790093642585805205296357148094280666822268970070212179804134826792408009123259382393517026431506681225213646742863854735545352290424887559223049520563069858825939312235739619833523486061914235417337023536506484656441980602602340331460564082130404760875805425233530102490097241598580531776648364451417798856172502460609577991242568258520076690162438963954677779953544797576134194922175225814852961553652727604832824645936718454870373219545241957799857281138282162695288757679562459002557766059608615462390953034216766491571521068943367719200503678649662296040119758891274702640483798733095557261441545533027485955418757579603183302969551926488953806386463492440603033121116720874356798014630791702660495758982275232382880749832989673835025324808200171992302437182502033880376873873715304424755419667373227026568434376222259019208422732708302700946083378504061004133489355029594053521682881650302228180915094040129629289344071659566466998004679911170405460946669122167181355609256676625725106381816491362680508077890572900393742201772455302997500224746297923730314513742314911850266036291759122959687290301902238142066394862911625418296051902147757237893425698889427400939072569666325139758179925914863712129209579688676056419787542115301066245313142137300374738002846068954147941529353479210180627987334643317448345671089713703752374316274129799555716015330856383408519284322851083481645349159041120226288796263048418004110263497333891769775960708509884229335424842672730476905285997382498000312556642400159759107050956056370952421669057755255578864919498187757857564474235834565830417206417977487168672238692644321606897091802482910945468188417859171457314595822194253374295752071352057021308138040008750737256882408534126730952062830662837524649708870426970292527612363330518347162310489625714159293794063045003301274899090825049753550879804832601723387936295146056514870236592038599485891201564139268675023547200490904175641969713703081168110530534894406972813786248920274802103933463706625831446970933545520927741187480613366793452081102074294378213325299786607485449002981410500010042030549569823637353284660607112610373754874836618141039566256587129086510904448227048750837607401908817462945364398074830649663796140228177230473832225703757267547375454945233062939672340550468440657403205642214744300277529114797957175517873955767156654469149862644006173253289015844213664742860399205237722766580140763152716041091412431478148072294291704202809075559207048371525461199902365740611612469580956175477633641879868607310502429238993591270757683969955402491853549088814185071207761856582762260193835555829811367675761026300813544932842183457509193775490213940961543758072571636440414667050455519935699987528685585345761906683430226966813744441239863459360081097136534751099522400053298171448743199800422421136231462864292436631789658099510413759624656078544529596562026887958848320279437958423185959794659695505109472688796278818301696207875314199160454357864006165564960444384765977559319136846675508977019478474293145888148929439538413337006135896389705453051560106656720283508737786754181742211058066907651522346907511078952711440174243932452148664821179668471823559602234236410180026836865976739770573405716556705710458984926942589337524276395786428799082161190652402358753602794375776760424528327035604084895093289721254124748681841412528664775120514188899999079921363412891623549692856288221345629364833703942109638157721118096073261538153967248118214262988301273880057640108870921126465450106573916441366069297914230871793341058291896250531418208452647139675465450039081685653592660245546757137828609672140933470315348628532143309512554085843413008985335723406546083874596544455754226068376273293809893527982032740690691237981235869768056298666188308314750230244145965407476059326432640966870701490368295118271031100149684727463204199558498231603258939016906527964508083334991417819459737965562712886840620796607038759867079095900591757435064937304854263804635302744874200402557171352361609944754789115531096891437475689483126530481767188111233670616375797239559054115993538132576030037050903557609519984025390659258807409679657079511562006113011284964174721413836844529747181350390635839661566952694877405931261253665352273233446474753223603664045319160321936656277283248884212102985259089240057501897014652498360630352391219785279583152467210235668201560915103238935543646270858222134400366232474823009612141517019217110416958793942675769902386101406614684050833398468693318753889362570976217871915438325629482198815452656831718555317514603663819791856629045636548786683514044356178616889806218097418963109300165774803471398715587892588255661143125919915583265775913872287750706119422606580338831105889007103829868396092771041385897065624652783673589614785752867218868964907062885873890148778157320715223902177426656901495043414885621235561052538098770629550756772006871336530417996551971694326970688259526463973270120061113898265927247096277820454616011967202341104798582193010799563987569204781742851960921646852249557575575863505215506833959919635365474744397820543462893454804486745315235688212802147573166527710984152541758779321197340373676300572544228159005911058393081853848690671228065061755453290411419074860609935499623534476183793535309526564487790074251807869564657489751851418940568441425446553507124887740952989019897612881817422189599880268066410127042932803812285719522207114791682598130023424556111466398361566987747576857751685060466928774963275030559786679610798482074203821293019168959564142079274412484311718253925014101149608009544452855518042122502883437080215990059772174899071194786301876319832111303306456999805848285148975779201130703754268378364649435516989767561775028380714598876353757218914512503377462540354070878083730083317181299358305565655078526525940223201324519185406423504313741820611878729980352610455015129252801906470838142573331268614178220955484066949396503923929707157069823646196158216685037774401175182402192851548784553245787275077798039514380151665754815683900648391889859685429121096010873064710814278851434458453230164008334103282969313420831441110280326524879414766294521265649053989587594256130693126042832597634609120188658403649644370268437199824983371446845002174691751383648003683795797824516944789998270800412125157758415152184184294539849953975638685534985619213134626559261954303630255061607366684986748178157876405933248652818816362982900766507721861842890275004822500394884244473446432398564108872689106089691057301602887645843360777772202230120008423013525569220370936926266277335285537509889070668117788913148772327767523460108739376159304125945118919122017809471551629692538206422269714676217159225542851823843462136773671098305199824415582889829453435243017924946219433769566728455850677802312584261157024763403554833948658183635083055545274211560540525053542961530913238149150518688142366431070643344869254500235701701949024394778466481637212222370105380554931776202043434727487474039989304360879712094870582632906096502350193505913202263153065062744847876797297495447854753907076788831412636986786614144004103004223354096378462495015442269899156316754487935062462105531766412305376490756924838486660284135019286994269428675657210873600361468934726432949609607586584537410211243363008652366588638974476266851260682612269822743142571741966439641408105243470147979112151443919108705939260196814584766784202656205755847246424525933660516492827913919459735000431818629895799877971174011223889386553330145801488947614441998811449908684976577527226634957686892793459578774359985879285191581512156119137509029414686139568106251049504719650433120901364795641328148259015623480064374718722008916437217631417775136180594031824462571528975637154470241687824953784874719491699209291501482816474605186845266339741407246995842338310957094502366823049212075881803968346068122353671900789399511169420167518812269585686937357405033494379127359618863076616236528924413851749293850542982050104204140047333161384479523078586310654670733865935321942378928279443592299049287954952850258345501767299001390235964976285405873278618744907436555369511282352621593421530027614758390861509013103873504412806019878384445287574579549995976530010487717563694953101372625812088909274265391840234167770459966989058904176990343545296955646569478729044317794360888984050609676693783799327106306562303735441719106687294622765924980544208222954865170917225810919476555733557528543578753108683793128131306823497197559017730689878878457872261628809969441920880472254656767728562158697463631698780073884561655069007548465380791540633218357773024609376518719414795220263782655541506802130722846518770629455484176255944845548985502450114321783869405947537560604927728892373738350540083598825852107526613267292006788139704103463266976181777345213043840670465867715675811510392172359722194967656555555533594352239739273447771776529190514291937368307487377081025495278874505183022342923093408571420459853520518783292906375397826554117827065481183903191638907625882838243763856713988425486046409563552349544162705425506079311926149928836011353068062675749079206569067960839962092685927135623326386612513077475052114343106533223352078432921498712706899775556019874292741031950560068511514059592192783312220436005719307302036948369115235292808725789170963395345371163355351176041745231823917979984003172259656120139979151171680872315014454630237680517541855125080315604219973947554532936906526805954793882696988196655665631568151682818422311345678956022984284759823641989533128716709562055855378073466957601806092307749338043854737674853807987791250188417433878249885793066360661237377796365016089687848046467373665284997960720618544343396547203926076354555312348553853251668690742855973111573372129710532226496597682199827715081716456341496786136214066130224901827195567418346162866449897255917122546063005044882867067213475454177717239147832389535948789719824835995658117413926883722123112296664510431813985408098413771985612105153767562542842804691874602345016785013886842756456388599432822952225975191953918590194311323215530702516183122041744925117890185009979025006392589806742097302716202745394731303896421452233200635116147506442427546170738479891688150812488883260491740800642325413871024015106871306263654937254907846721408015916475938868553009977519483820523732563541850491096321291297243331266983927179746574527984294537172095010218030682918818946347017066595932164816511487119982068483488611393861285478616669749906096523211099003371331988701098124443667248632531528165140566570765338448985379913201750968520518405255014468899507147364737466888365675111347299600929533751256655572212266068473887589072150444069140911145851605616946890927281286314924485315174518133067511063892713901187407707768875335430682005154814035820447381317618652761694596900182009555954525190131179888110843311522676959001026632388343074372507417224145421427173934552495189822994812612098992258620647081873392843369379044152046237195826680217733482353438525747296303502114736247024134873083850312364171052196418210217566919057255433985904620585598012178667387380632492864098255715792482024767558184230838382150492224805534647609807152490707841293237581468920314435584424358192005462183870729104045202573629154130780489304989177426856686019585901440012243035967525029291768650710604901615712974422717260643939161084520353837000374352245846901299037424628183648497044466896135163298996888663660053175668841175654980152362369043409389567323406668825490705248630240145860899042468470378035595225163725315015394519476410526926674639213470835168604418878305038845047750283384412669796169310750708237146974116429129626729024407925495524150801453029923152492781092875914982076712860820210205971692069276488408040340283747387524338718846788872857189584848551591948427036197086866301711538144796846545221597413422387565968177821733113717323130030788171076659370803000785246916227201397930319232515675203861061367596067670768720870839956319331535129334335254949294516735716551408753536039539703110621351822261109966377484523152116181594356023937031928489918291333176102661478585309922837291210313228306085901732492615209612196022651598296701075697718764705933881457406499613408230680133826630342972032684549627478208856159172580896510619579864654095475831288505482161223713195041309818390875471722428515318632749319331056590065306966495928788773685893990203686258186563930015170933623262606374461589535523039640030562119920559101681889720198146955366029327189178371226326794833437620265371946644451789087415228274669030897958941882342382009616276837079464605503190865747845886159643080349462777677503997522234520601610549084075099105528368957965743880175774943526077525382691860754667266665484499126281292497094382126195670841184108188019751741735529752660596522625108592451076718066096116602584124474083238073219658188041488406137267186624098202386209513467245404607433425340192589649376113756502732173586803121149426134890228243846169803137777805233927748959294517991144631426983407125226432283413267984783937704024263529318728410887257291833318073660620118455259551804278414083701088355207467533455180888170750151997007144857529339129514185240026595972371233313854952305972581001114476577816315665496824591310459472167802270483661752921842806380326231812373663118835119977533616714443411373703664084771441714007489594968340056568682180773011028564007689618875053846141805487078175073252949123265678141280997510433218986205120666671965949039165552034835391051659259184741142624420990743346391809302276354968432863730496758712054908010302756806399283404792104661988916104631556559506899243784059103682122990386513143389438286512490127148718558238612538618864643379823015091555679163919267271964715000788131268165443445832545269727066425599162908888797639827392680598317048887621224499781451478415755198092108534274788853532246601792046235179764584020840149222129110074491306324948590532502524607864768529550707758627595506596059547954248719430113433275298052342537440196801027524614670195881735558363585434547770561182415731334244231938713928157875835747218828335701962117621919157766803567259890258494685888256467013565692443110825768197410511793390377297822995944619885953506116287508914139291030847576476301347242888268190756036238448807433293228438835011604144080497189908354359770734391624837767666337103600331230493653349338902651816197995296521190999709450835117201519870900049223565854777490295972275044804877935525565065947441359872004560898819832726260247484186568014446159329036639639933390909548217803342075641460964527711846529423889191842548322483900621333676969820720987771465952381669301374191535368815960106306611623389541737318323163458237654829540025076056688504311396715816582826304633856821665723203345408721350219573029381181619106321316726235628178272189884626766098091529182089325886476275733642936640488292503046379231391138909767456000714804359245616643776970694615891906924825491269083548739886620481666903867953813865093112661603164054255274511088664478920926620804605035775465851589299354750099845593302759036835803522723863007510686321253934099835772033554914404000036022277089792308535086289425153743323127674245168035554685223782588444431912098073694139586395499947361279717154108071449768914584356296068369298694655294366528131643988525939039128955903749527929141455941278060948023010979565401520460977592861220258553747083105917967282469011246361304179736926915150208784058942301255061745790666657644168891451267898684376081675774963224055162052456036741526281984782493279176633846587490137806512828835863612796385932125659904118548018514122119354940398263623426306448777224493066636456711277584010358852828971445093777607907208191032063938419564924100044029539561822921576852408945307893669497541676366029454466413325754508281818282032082451017234057340797301566890110678342808093502546178693145246601397537201610452683031964140328568236934647513124331042604022168643755626852429458629201158846326667065476049008593212229822912507192153134377386064610782815542826732171858482863881327471091034938032140766631764310869669713121191160860920374828908543421874490292983342400952329448312607410387967483221784741211633640208579039219579544961000885950754622891254458827638924750692285522036477661457327119479274894004583635261315391879688471362236599482065402208420218246568721926158642081976703852282085776508180779936691600230399069814268844219755200439934203420082098724621596546938433195669297898132963423908080739336092257908923395572064281812803942596668424457657491519899459317223464020263992072418386201261743225019984345071351453275105558762105519549760630566185124741929827961818032159832576274109374270753866391493653731885559898797656015967804394415833681567413722697121339988585539064638273341453774339787115421271593462101274479467897328407069660483463193473951367194651606221369649993895465322803923257392267000750864630457212933504610172401281093202556016786301448773264681417846615538933497231235550019273405095249179068117599188402040235871574331824001183288983478053877575882347619053301421691199346416018500631165431109223923960430473354373540967085365815382432511341472563389191823856067820729751603692733672057470738118149552435374145194636376004194514623451005722574300391082065587680808479343754847808421870976572231901687759736258909920071664554042507908058240468319284202022078872839094787533702977753958350775756057508585034659597191674868076261804227671274407543783631899501951585698718964601786863926957295024129778984383962500054902315784561004994092056215139296011217607650732208969720002914412157015382278234116151444679015844533671144007848605026989663887492072502267026470205861877428253124335370910896214968151694170643407342454413839959878303847776511611037888120824336895366561422414909404392649289350042637733778422883750605491989345170157884922585048711606669767335812986210174459781481090300010332512925232677467826453575804805315258972919115557254650353247038705769792524017663294581108561562356758721391379460409926193948025395218823940749888893746319006712453435348600601147514621400515126247437350506208240601291109610800960688452972527973096796937596454788174510297141043730675338471800780952508612367282376324253305589742462751194142464676761356205265997211304005282819884505750892272745363425567206645767141715780246690615638360917712358362986737350406406089377970126427508970109357507135691799095735826101869997552996077941487184309113965825662420733053503727276960217726559143668302999609498331386552486788211148389595746061907189394080014352928353544169275356947329983495208134081304155403405321038220813493627386868340456475428543923186663591972092950805680881000168099767685882443318214314760534118840017182925994457298872132384795854533538644671234147711813623510220356055740133297973653289710581443168466400699224218064123454016478036778012419169982776014490709414667792717092754358871757007065195062278332146891268078141569513556778264645402372649396956179320250332803860168150184053203210824815927051063600804699952448933281839009744050115720551913212356216591719458747480588768217406834681303611610944196480090487663033641421827601497154037302057272642464934095420771355745332393061977646319964846465166534297301260547610064084658010951764077234956317424227103390974163540448924239387407643796825583701822696676557756398113915195743506130627122920893084744578299025836041291555244937143452298330901114761139035692919214070878926666293333319577574028621605072866569450075913807783245266069143459151059612932065575223834005681137892223096662795263101264968904423809699392115592986461270742614959295383986245534485878938605305567189315670911670540105793801035720824829699642308480289375475454317565885641710216881807005507598182690776403293077377161885161820737620508035343955787246796392390381191010204477276266003874036148761130469692517655179645971913020028109027418249577010991973227844543813658826971905755955859835581673211583544930080182177376125888802129266891264231423280782623370449588698184373781742390176763593497319936994633072530041582938535508249512662290086776001564263357887568425386233104588250902152964773084007862513307758459642957804288315824890119486835759711593603873856677818914152017594072746683685360672364184882149592025163735353076592385509917741104250777744584622489780871068153611430009239640853224007517841682266521826027559790694927954220041766571298221017498154230617981845401407253439761258865549924496977100752581288906836554079876723575360656685533197673669087249185715496913047980291545342661834665792910242664927388616731061556579981377655102008736567813561520817193312899014200993330092440885239278594327361642970714075013723402916248186987120261664955372870441849079983866583411267001900239496839504113479724007608440443726599523716997173482265694023923500030901548242323454589433068084996881949527249594402850181345724496190637474841390362669457967833640050980894849690052140470923683316981629080510266260042385107790439631487406225869119679896720545982879000868376680486100079827811770528011614285497698681006003060777812607186569051150911642960022251490355132600969132889725192683038670511540265741296286904127009610435773666103356334309433393422822735352888899241364973277332029690647639619552694013670427922895232256689644482733986891868546842652002944012973717813037806750810186047156918205775981058099393554186316219007389162199511015296784994585419633916557391847934635236451900783587824351762099581635582066958592057547128409285547356550117490435146061922969380042630410302697141698240644463505580915413913831540457779885297658179775658169874561140449975951073866673387132432857831468517216737892573465995432668625785021828938746805781147122342489209172487109947720032862218707343808649938816737527799466962126174389716257651263950911033529189905758931238869237794517206633877333462372688454545949056076376791997841294726865609045206011177356969128892009368338253006369938779041198040649274257234112022641077862265883166265237489770604840199657910556416642135742293966811712429759072356695475929585424027479183014579205148760627540318730458311139399369656371096501124631489445218286606390560173750936597534289448817543347187706129082436436762845628157665322811042792571912409880837556977368214806336108860992885248798929526556954837229641153759718770075063749977549528644458103659295580191459127288164298204908047387531077699601420597722561625648259034251535616172884864485344034084357727053458082312096626101867198357292765475855384117388913370524241763181514333777942860768131683668454295408525389933975997028449061728485342986343611383403062248034982718984863480261354523845602807162495533116074341010646700046368614895475539167480228107055236057912557553427270517318666077216573011890885270943728259409335514842118557647336088950310398015155755575670108593133111189292197747673827082560784978174925493013521819641743377851113029643175373189916005732185352648275438595908818386048809513992599573201979524009793568593558361459113145400781026060808234649920206833844604931945901078994652773014695295955871554841558279127103595972572453477389361189634922517476315721125633086246453432404250329143341083657128308076922434432923549536762091335058442004195334253640724065028311569277796063130392847456710176102363561047162720501938822502730257343542794407132644465130539041131827548000070433890196945731025555889642094675674702087720956900406227657816503246888330448651337982826806777961885902968612710518282171902632889378660286539831657379246325459499222573275677550208868949103104849566569311857078650883690463976173835706098197661912162917255397623341466241043268837460632860940339429038807522914401382590147474678899196682810517616816463731330456550046177200497575032517467298996242164867384744809442974651481889553421126134134605962142630872839677253297311852918672487236017687754219756752913188624003992925770446023202915767892900685338122818629728055443472849171710689954371977626422517808333973044955725160679853584366420283344102802875964793404582293899402103510826935358222900554090067758816442458284572217797873118216349192047922547258079729907574159407839392370230608929308395581398389617242051095177451719312189342272003623651927554200803927098303476742246955768942248424437645837851746866101757667134155574143678586271166251551459353520194854180596265010635954462648125347123843690487457820938303653544798341822050395765867064176548341235839967904612403172946113066878475069908919564948407764039643524606710625735491981753798069733884918199162750093614406161480702924418645336578562028722472283875335611956847200377730534149990046013006435999027408951744064729351768758697015992575805622032815239349125863737333798133560026042208616410444092269937269791092471288716924015142608879155164865289544255553065700622978856498103605768669315658871665845328733473710709373963230590838538959456104097821187546223044579951120463728110371589467400413596382279304564834232002341600349412263342737544682266586373621085975869829348622956248804927506154065282621015955279893171544571289860477782043682870088941619115110851092132866500932753727910546273569517404895131296943591342513799737862909428140221019654295748475684234079524526628619920565654715095661550744480181950528111778505147619863734196952179774961452578791915897684035311905764368045708836485415553759767127944996324173705499800184481906118704286389491980641901928697633539038458811745410321710820643677826639439693059824196618776120067202206464019394976791406114654853223412013870907477720915155194250092579625708516667354830452148778940538113987692733214638156503390305078428273971188273680767288864492034318504025614845660703250908295761829354551730640138336354753015308538931900352037949529013835005283440469397696145670316303009567736771612178877597633001815012725677937127247444195795086008339167752159660837667179777119309538791335787105221480822658612289295450105093038936437508644513751794198995296648065627657804366714027785475219210080107278584224646455244697817273727228000422085363374633306095401651625296150099900280858487623282708827050092901463917903352137097687086845655157874708522714457659677825911822777469156702956144743867468213868584727127948395866382464735121841553226038185320267026100807035581742265370590195482340664659840580155781502281694175888758687834872399003187855605252909936058472730336223685240749705690789471191237224345980107082310296823066963891453981895271391283013338795124306191057454346930847040871828648428734450796663936594207320362884106745959858462576040305483051012349273972374976087574749593688377505858098305159863866758429258028098695075024366244930647006027032412816515201391168866294893644731049548610086177324602484233101410959175862944432970256313889871099727059206705360625513934140194983431540660437599905630793746974063492139802587867176094114185064323577549855929221187280085481013285256328396092148439532630566055355738292924454022770429737578261451957866881759453573362252996854634987683563241093827485606571075439773441273597123966817997513922851784920155883977192070053719934828961041732149831755306181934232503696101796787173127641823664582298587313825266326358495926505527790756820333940261575224644712305733412277362890022949674905741649770220711545179958936947418238233675007499304952810753096926181818082981604288282491418480860922295985148267666530053940517764338720866776885955607043286976545845965519994586381596062698364892702179187087570731788367175150354969498659852192180082685620452575395216505665387687555679938214317433083101226006949611328880841135352143241683817801786936796631505881093754391294430781347025932162687774327873437124397848420408172686475413151404311225814635495269031563787570673417932295082369323767949217380829870827678767281028059586909203952431274991938629630220224227919464341997564466050095665351544377199329728724452767197097586537625443460032481944285602173610826049586511877294054605915773555730409495314239526245327766270591518438807705457598165379975092413267207471193946886092234248061060128659735709802219890061214664498394811677909446727977161027353073154073412378367550079455027107076040727920677945821385536948461056519842319209576055302373760999234383179478561735357355258301987924346145223428787082387614702391454574708319759203507691663862245575367801625724696737877303667733239116129014405580674004027247341632011873196303207398992503888334953779313170003895986999144274021519487771019997883151388216966213177125204049294813280432482507751351331458653078457872474796040004467003596423122625671518911185029392981354050506795884803458542204320671022339466242099836259108107239361879806458396725514004472127846417786510632018250337542151333728890287112708031430037692378668726834274234521900204871326722387291593414766005864481063312114615079647272588713363771245395398196058449756906960751055308418608117690499125644999382153880345113673098905284527011132116472431535957429809329236731616399176608971987188632502163046502252548251899211400895852417485409935720188050696066104317075148492662058181636906618490678948812571910056272479158968610186707985350915485372760619216828240589661916860374056057943677508863159213437747416152968046759944159437317902415259234236698133157347058908807428050105554280119082462943998819127664391242483803575149675428456873099022112865311572527749180556889589775957024601076463727057052499959807440330279799970703404230164095704863089178853118439729391149875825919873793514831458998436011682618592853010254285519675328593544102468026276909868954752460331780973008969258370283344327438110118046680302485015050141249492031508917730092339662437077690599973013750604643385606587083329845379911932829005342302772832487263931677681433480214179971800934296730301670028192496457778200377636383459970194167945226778052444130292069257166665861936339939078388395863827105044135696445753322294626574840550141218869741550559576723312496327599689620002002943311624322837976818498250360674280869379372855996498358383258137753650365717546363451295734694865757183381103714569478967334545492902112453381747480938546635142745718108791347865582130972159658656704166294173117693441785983931673259675511997519183420528464804875113223822988276647812558462168301177799719057770449580974724742006262166199308368169487264793723615395889519840910754269044374054982021667195087058868667948759860201268676173503231200640014641046785278263828841774928451658082877956093956656780171189415894059667244538615302169618097001256267418459224820086281038277001769880266632494771928837119387111773537866756656698930500775898926401522578230567159978550425917322780652296307453537528628556844817292951402066432982174868728330187724594886886009891281957816785889166256427641494335726893149325427891536230781577170215567712320886570549694459353311395792982596896291351360854517974459955613374346784855270769902350160454311096011534616091327619152181693482926527940426669573921448171107070650100385184892032012582875718936756657347529742317727911150568536695370206719166603999617396296897702947226233215856253684610864865786057621000681358239636381412931112880578353401805696772182645146068898776328879579665345563673111469806248328727632277104558838222817593659929912931972033921571735570765949020892643103492787300857240604193976432497249712665610544332409809444745360404868256767380397721719669244201556992571105531551463371380543889183954335999113664756674954975620749453667902962536717388669945267397739960314779794555322365795368706592585574394941723913800826780729569193644909217139684992725752207864112378238699233017381593719540736665905048645748354588943144491307224424646573543323373888813727591911954398463540775553708047811053395961723179472141107367132640393081255060338888913202245725769217473294697755591961696900135762168183550815790050922205192981849121421072422786264117254169447587483637725642933962047960179583734657822009134146390757175989096267014480866950426323464595323975144031164029577468117848936073949520582460319878397802805542890533472479875125249317719869370873984458949288218414223829373379651369548734676419226503757025165493314944101702300516058797168405293374049321934318009138276876297418576840638362374853680655164266041259226594472773116136996990498125981600736103699684524581760592815697345484773045144432561422618306343034805124581271805641447671485707487613954094989394891522760989485310291460601732849015644976344704459386405910932638264687288934062543512281736128824128959146474258194097060844762986293090821179996761871621038227153668203992080629758139699453115083731647682133534727381220954840003275220529299767997362844845024324797769204921806926280787455997058549698977531364768738522174946249169344282962149786641952300754988458921204750726880870609979222390746625121765902435283610983608262105738671205274215325347399119814209206466250818549901805470247832210336065182745284022241061564983276085709182933611094036288849645332325901466415921451233198630221145883417255342699204588957904742380183110173414427219920990345151097323101818679178691142500302062240759921311364850784318376901113042739424209269244876700385335781835405989296310896297612662501181124704430176972039593632093443817490462167249183432272831531689218364042702936053572222419991187148977507566137451373103969748295159071359469207635778689813535786866432203490875353016766311776640271079837175593513781021746237413753143707610364507935592325874378465490147864485367282546332767597597334161381318832881436355366943348884178150540028759083034173113820359598575099171993638540946114190762149936722941064445514705570864905067296050007735954712993496057389497623331483434362044944502595425793796432241616858413365996165267536385394731913598108562148580554900751043684227524818541477360933468148867274190789424087033969253821909353045796632227502746402793898376175425909649728234844661635101682922257308327081661444508366939569861584164779485106749253142826907956232312311667715600783767329782799303642068684626483715370808943377163456692831013142556787856216275039580300047900205756127857140792688353880493059669905595772037483845955622527538362425695907125908214615908649653969252842503924493858819948144543654560824262510104454001967116650215278597592044119243724460595812773834912751485974055752490695641717397852892681826588452486846438160783782727858111328091871728736663426701536435401731222694001661752371323715773268303834290920430809520381054314233994323945429463586528134027309742057010708528164849629726847649018130122052175403378408294675098478352432462214196441626287287661140354975965120089809189056802288657235371905352313721633492990453327697854758656507159060392413115109718543597706648628365795269170957746440985222111052735099026254160228855200993054338809232450103693659588406251980321305933237986764584204273003091460886827038087084673035697348525726787649375259675467912938909822249531998988902419780007615545553320373441037844168059345050038436878815045372062374600129545742423741672505845026227783349726734362363184593364384421404817318808084165079813019443540283103472897597058145731703146105424059877689559275228799208306248803926644370229054060665647171983076009436542688463174382361193938783572389304092837112852603213388517499892373680044106879871893579274200492265291177828868615340925849764321360701859476345000607382568875707300381999814146582601289689656460641912382609885002286883610258080073754324991699413609522753918624545076007650680961867044605414783434728252461882978953536324094758538188560607949715458104202738008596631407862834033133777040998485724328677495907459737533729203903062492187976765357697281926108202556720792730686826472741837876856199498657466264411282016948987423435723761487892497844443674212973596458347999364908732707900507967951107648438002349283099898548916680576189130543955870677664867067684380990136478667945861500733648845659249158622319560265161761302569986133017221407322292752314439499200770739010342957028067977741191846075999926286094981414226456807382811084492482811366462570653678075842371165037341172632865630486544551610308397716837326754181495961184951428785488411675675386506827561660199632167337965282743991369983679422316556196953754291935330986127389598282609497211820260700184662899829925263258214759838088157980032198322027779348724957905563419109525196987647992323509236036857807910274146561766146473933054896251347968693189238979696321743380853206705608739528496560177572867911023620492939421462782417694502154494345021222617202730242967234526929983603552514525524956187067712963353100127511091777188454738507621204191560966457082047743738698919364186402665917704453731008594446878241322448783160541193368989673444918191388667934731566520471582942794189718596739643116016594354027830196458360088828894378431182652585494926708193563616685453800772030727992855499377809334972087961512389697659967238307231414237349029160287415571076241474835144131742433762366222676930956628230682603640034273053886330890004745969320362141892007454532154708190896243391973142844806904740700726603181232706966481352168546330379656341160205638898893307436296548541725493740043778031208164991643851773616320484737422545396724896394335461161168679186421602327530940666023728306657154275950861288858152363504327744803201101143648189851865953915561875493077914419345552845697883114368280820627558316087801348993424488348882707650400090007725451537092061543643423885248226430961928989648081583734982485328289734730593602272505390434613883831547608805388567823243274427199151094495833434323156942031906633153303753696773086811207390866950453726852331243021938097615911395620316160099170531043749450518092006990599849071059343173476624294661967952226517350883476799812833829355693377992104636943113632580732982490843310011339698821925573815531820673591504204997209221818563519810378999378577389915416110840478885092710995529350132457761714230982511080364506789237259300021956876424274070999999467688071128957206175599705580829042292750947817951593624497272791912752537539696248297867468597503570110919579322697556560341676042600418636710033615299937254250830548492420092647775001857587357091670691916867127992525445752969830385169246159624994130981345478626843079054787269327835698974935973830601056898018684164309816418546710325254598240140729964854014701254658351641249063233247451071440331960191441090828648459424651650269344255668464748163286395713853719313031725470479220512701481505037476907032454770345688546290174237801996683494973123201365751957720424426562577850794043752472277749116746911904232657282899066257408418209925774975107092252430623347705896505608174352748352334744824998273006874176961026336765410335801761572989829614782180909435535605412767038644866870372494593090039718708969303985029520322952393003859675934074996054809178271526012352376715560788668837525166091698760822451642360574016107618226537218259479636400898924436871407982651744583433664135958976655272984747949905402314293158301361621618804221217625079099703227245002173932665290194330358193892545539192593117864426276856364195325475661505985560469426983345482399012756239263488866835715709176554083666637128650730490883236399305375212941283264357579656966039323619646971623750828606416185202630586798511233771864139582096685628878527060905441311972594137800637575283973253507424680168722187865702043794103700608221017343588935309771329994601148677125510115181652901720961764696142912877226696621809031223401228365186256657519717862124547393949018968541237506148770807536934536217579271917603935327820506456470818082971912052726932717713871227714747304039589847460541423137425567355441977006852482142341428617257394776102853640983282508802537164367015864445835541094153434733460261528798867614638766483952032849829500944434391639896618091965369816992112344786050387346754428455902467171155772809042452971699414414399338406001795754587477395101819684565387071568898934790817603386152475583139059149183843601817854461325553531703968180040386763561254001505878014084039648391941908030226184089444893676337275750055045876655419674771667190269688120427198830680141828795229604650008869991468992969227301594955594178302140348988104794529789522091795635829343132763833525034714638165732786671354724002040150163143344522919075800500549428979456437766728351378920111447816587599035183859545310100480240067208148965023524254563408636826768432036901775917514510128305348301267398685150017233254028079308632783713488975000197851323102746110806458492551099467381648340506349413977290993209851940570512294001200557570208563482949949933935722719074786257646337328868543831627440864468254441409475019167013464018142951103991174731571664631461614996396457179210115775974174714168660924986165660559780379004609761602089104493685879745652506233911818877537090018203839018882149692166752794654460666113703368600602030388456926672137856440579360099627324981574816158001645674054443156544565188857992429021554332945957013652805153244093458338163009349409699426328258970515123418203988140082977121404069618038403431896169221350553488424827903453075930813264218985187073268532826836428846593624684822851202437167247879344384209555201287898562144311402206122709991133274749633011888056778068525038149619554828956277020703573931818061581080995243160197556242476454939593878078881175915840401028426751589779874178657780290767671697813733988429680397925221532036970173677747141524844230594717833017722999036032332597482085011676128838284026338470577662899071181269883051869344942914981314111290847403323613226409306694226131500948525494259793613085949162896220802148518703330592355047259466822299955120648452095030863169696205063982794074080653065166059633727260813176032085152337650164113618180941905670023195769173002190671418637380990449724344682319441079604900560494458119110772641918701997968778409180659138733553280011915493137747091053191425066816288317996506123761070689619380380023700719074891249461471350491484987460071450345817794362340709350895199616880100542344296287095533292555828131686285252487351395170632359651229835016491822625999306975045928619229152696465574429158176886548961071754144648382384373874593263102050566291045231458650035122470407938367958959183848287840621128076745471177125864660881043416754210357923893591809927562411894515879324906794270153116275695915801095376421035564752151606530607356200989297719140673159727760436799944236457035216242287800570086703482133757382055522338229467729580567649316646091122654072693732108058527167671485999189794903671206226047220334287326824517961750169473282736641130054486436250537428567419157578189439355392478803744755849252106801566779869193951203492250721819348072451710165445126439302965734449363823162732532370844106253772346091620657959487517881469724553263767884674775732847227734600929848956354675451716831193002701890815939664865319946189194309678092715360418338545024314859546875537232174264343212373302582997309958818146594774432412419045078383687893026117978801203508845664758846236285169989168413560794096463792843496200642152598977122651802458934552610652401174343987239464136569832384862762442251249523462907997453368162967293164596482745948194639897366781310896506093178382811047964726844991815070943009202289909712549795283150527116942157101936323105494312490673696316534179667444479581939626212243407951869931549684855181235668355014487276872214490027447746226094791061844999704944664224456943906680435724727315354119164699025587639047908455083181651551026120054844687725765462919361533289950752412370575117956414956246591816846162319972242900245021229438363517788420093060786560230341619827669057458339497701799877792264357228545575544806914936897757327616187216099908823017020488746589214198325687231941290560602900082671082581512563013659274734048840088479882808394784618025577442093345023752234822162855116673122940918674421119211405407507113391602184026531580095198859890679424733661516926332311305440698798463844262133883852296321340339757515941046270207176977212540931347491602142576587838851017313405599106496085388771777169791482785703261874839877562133441050476523316730192620942968350408586730256691587735902607699428105559291287259563356760331091657473265904203165226395898469121416492393365910388789338285801306249140279420030996013387200083737891646841294052973932546622364513044975892218008786569101707620797716907653495986305356342342818958815317143881934787330646983208780218207306822957033716312450695956059302525940109849325352306064997457463040644631258730648664881951201065962174417217412335482992804296811932271278575783323686818592082477922664712266827516310952509613605218525504842961139499792796142621958696324746701117194202471299801581125979351470392115828334542936207202273618232554510312266129633832879958484807105184668883191553660443978052305206504575333593290539916354919386461690357988637041494296997223586277115727433122760972109532068575733743456781715382850050899282997254523918163774863714897753239005491883151200979304287107834312369868029819697205976447492379398814227013883629745009199448951194797759498521261066852410138999179966937698798729186051314905252033457544697723181787617373421510690821134445800367521104534873104763237714653544945893064882935237703643872646673071864918295079527936012761951688104485138967857067419163230868987965453254592912298743314849569216769174768043152880181294820946795866886719007515832050674202520235154203751635424365067186831034162580699356457833854446189310942567879339887818802095977121016207230372515546687554777339109747743999918632607284478838023488375369673901025216434748949364521255928781174015771617071534137004477978986517744089506204159975330370099161620573643666523503714378584763418366161278175831153913913352366046762585583231369116935291778989234432467797477492081787144555697064331925056610514022652348063147407066069108854711492294677553542528665576292101511441273692534893464328735202305690160027111692528613096381769752803370490658582038634433609872610603139622574658764724283212123724486441452229790237680484143726958892209538770552692864229297068474296981058965826651376771196500315861266516080082469679959877854720284584085341210767547189701273667612479891864137886860075606670049180650924454798253454506404260487131452761117573206933683787389381765231688669084961047138512018454767629300342042544010615040069309359586362928099508532800443234143003199656908439114687244696326405633213976031160496861155724884641938192960701192694355932315013627306087548803015898903932333347318709387376737247555811071372277039744073473876462701650127774154686605986148122183025593442252040425453907977301973755902969107366233812985198571719298167334416648381711157247582928325217436665172076147447330733199500520489121385672007903653209411913066548476184380397461131313257854300975020553939946140965938052087154102495491899692301875461792435873672468062591226367355565565199636048733677147800955478035771395674821029656647915200228498492812671030784937008769021181464414210257773823422190669284841480428745847389794846615372556664803182241609631183648818401039368438297006533655223403820222649307723203774691325690417902690134651404998910407550446572998429028453748677972940822358185545863450520593352611423108548003447052829476638065596619542467999696894262975554035984376818161697750028156929095505145883458166601999103589728117677487395994274088843008647168503816669151916969514296936585419700170779985594288945596299848244649013014742711849980075649347083002688377792914515047289153864382215494425208918430276684354051500205271287571198315710784552579594528787268947528556686624875821371563091514070772092259992236892335836708386947004308670659691569352727670538561568343196644400183382022660997316285948099659402453716406950398160660871735825675965493889054503929275672209083452495848354444938149924763700410418212423830878759374246696152512000365705174726689854243866683296198108762965301410095646558238665414975197338261422839885158769767899336443138235818405505203172022617648321911905354108801223859261021012100032130897362528642939278026714654614346214775042305372725200348857136601463682692293871485430299925631907641094540091394615835647804852829382838536430239345341314078625246102939488145433525909396575707358692006633094443596652676168448970106069192222623681658402076129794215047664297433375651765810290264658281486865802781241962436073383349728170942326328155551669476857242777636479950216454634831317452047740801953152583120671264516805666107264465615356398323803402152383299663289010408184055216193811642475103260292666771155885893448217371327475253923970302887731288298735843078844510243608173254718470580223407092709731588565369694469456728088064543951140937427210004102731379135051158380058433112963959705892287501192994874733313329498186877012432426881827224427715121862008804349829267038651056781364949852231894028830653775473819077331134575429151814621949516917139819286200412702098462731015803929322719209098530637347713696462784847134501608577116227288119015898223923363675048070584093467848043292913548363462126397253244293969383553357046562374804951619866917064404777526873618155132617806488840205063409038224206271470448960595809820353005931346432797580312141555247923325247032549485422160624701583554154186529835854933070486204312491407199265273634935094877793035867510450807374031137911927990132922266931779047979698040964264334365694447276345348506762955027003167707449091979731483500316467792787292473535124610251741425215070196064924381097771022822618167101061984191307345858310772700661520285336654392217590568560606312379698541744343926943808487170711075750254575976909048363446436752680953381191868369333952682881454051021553567759555349429969058099983061434997820288306373656268137329227568513619223766696220644108183408375802720014305045210360597161816156724286344316718535243654793552128212355625666583588445152568371841615817983359651958692663478925378757117608678779419371818598003876232872622564980783336868663169524455409968996088583211817411543457585985552344087331225749015907150778227300390527637002077268137628104479203888789164735533105489313787908055219220440891432521224929179131254798428480706381345486806081683249508819535106434830651368795032192963560410808127768935390541754279240758999964428078638064311595909687430223020699058197781781044396005753270504826315389821547264749737894826935830054986530217070877040404494313684012902952990596712102764611148963720922297154847474448270466253006636058692388868534228398211873465987711997879836813343838577408455660271991368701428076458716040546759317899450780975642341729174584229720786871206366049989473699452727807178167077267504019261676854915848918392194523059332824016141911181316153414163198356499102025957755644867276647830446308871242953434826710675605304504183838626378229769607636889327299836414671424414629966662079031902247490062658654682584724049716906095222502165247597832902744682261195608631286626903083180546961678969869265970345679457456743396177784692532354535627122754759820193693777871239384202431877171600551990077483213391134542212908108030806151419657651539320153422152855992769166210600397691055499050167164837636124614877754715217382749952544984793619376623269383285418524761474424145236619515904274698866444138138267482837795010670458243343480757832675199994180992636696755677887801261884839898531283938251967913610320639193377385441005238235636224296803119973311648533740419690634168955742260265033600163733168306027768803998659776330265512377223699079152017250549696221830844469838834916056461715296778902178845593806894059678673596127973736087236669044403984007700142643783260594977342792216812900861581138299405842323360191300387754151249169529662096528614856713286205081219609595054881146483196045305034142621495690883370043277474122765733824549834485573186787459284524867334401425328231821494548292022814187900540254683802148754124349393740469294184850779215371020086359538030915550182542469122843374356596696608191732936182630222621232584286685581419965170742043141905401595825306249222469457612474973347278982440217667248469432888728928385119416528352852627963973813444045102209312736456026412582620447680460401039937582480781458837374160990818808126536332695218767269213690079596089385049606675931296406738615605545976493232662828649940303650108532467186437068281488824640507977081812188657853231820188590239789985696629243024736206950581448827608996444985431291639622320712054143494673259625846269237413336665839488614502066523902580464063051725208749155866115788352017971999081612109544575568629434132596259067770057321922938157033003887007367259578116675982205701516478522214734603906052793680187771003535768327219154380435613107515115336069534549319853677969729881383611370691304648107906573696184508699409535146710871764913419776245906540834068785913011491327423944937918755717547936594299158681967643928819123358054605920999860381188948210449956480053342157823665119251047878764638181859449165235187390579151767148108424278298064550222689107855388960060958957006673811339737712028585261171546209956774077158117211514251210443739774079018998784180406843686880389964957705284506770000446531648113986990932448168177503234062004676517716246847100144741677431459709573140774444780499032497095712152673080404243165091998979469130147193273032589486321977796933172215100258554384620070301172592942518780727007447814857538801478166812491785157761198189046840819272975115966196630022136859786620434424935766939008147084463192185168013620802955129241567466632447325625018439500859677656495633433155147735133106059274645656321829590516644662304483163564383132806450472823891394422886393757239346751328710655488410342432950939573045802951155354699552469228134608668825657677684433523485843293756883512477468810842856058068427816976596672007952289414720280603537900102354746391896511404692654470091098404089028562154394039142950344229472455104625835830078106230504471653503481947609607634545257427956415100654195467817213818274277919004492597097591711304959843159101095163571444886347998069520536327147492891612801601068749558576423980315296523258644563600255091522263463576852453627121601338066583754994223415486823977697232072335572555226631450993617519052123245031604850147258191415912788542068630645190964898711115694600821274675810914705810228930369744720789734395477900909688629224850917408579940051432289438844564270289053226647099791666878451468071136211310204623615485842873667646879426788837237336238020174368254844652159934010597775782276537578734368539655986358727738882895015006101211668190103477947886542996083568550387710159171953734883428622182301494136522759299452310417920529462491918710424342354223634722920603828458165507128244401858481305735790643814429003817913656991422325780217009463051774014547556210229813489248363179268357012594189656258383185134698143548935888567338989423015855076889052434743416239284167537553845737208209039446601677492851652013799915534950148511712690332335519636746616446008808011240230788221088427597761723500742601766383887418632193717197093283500637103564599135919327325269029107654315233840764811470809616146408975043719251809632451051987929849602200594277327085700823745421179664500727093075748899133353741039956595431075917423286389356029052808737999085682062405104116820374439789632288731984329190665957486363954859474649066184428264014434832371070938115255422381205814484471486499415620247031739565005930783229725183416214427868190146130498613786542086843921919052139058821192485063653554098230775893462178397613186579152643049226023012793402086460085975883540429234807529199123530861471428933209755668796922774055516220326319091872185657837088397228937457307033263674914312664092621316074217741094814581972270631246441159507719162978419491173416860425814398427529495072902403053950766607837753787968496281665291309679112545014175337313579911582267095214896254782906322499177172932151587594757143590776211670219816887206422329341543600511519419997914717865870668383803327265447873054747927854481614535255641630550818764301804681292263161650847358045356957721983896742266044182043568004477168014167670749686540598176294256425214227413437576850590558311216116731408426912932553861836923388816743530517247833672258844364685776133198931593471933720274987461357868500920489602130966477635594517500087380684583944928379690647819800225725485950287773926284395106601984314598075878996748803866483218243891499832468336234788806348483558592999670911039458624457910971798319399087106664198313509236152511163396816173778282364355145659324120162684344477466707296034160181798514427789540947983157839118479040502706030050612387633829702563730096298911579745705970400946767748305561323152103001520830851639399223191271434940032688512126717546437557231827833935206711797939154204778352934104506891090912800714492175835318690362236224657797461796435249462275338619949718618829833599453695223345085336958716665189073092322060992818113404837859086051567798719321401753928450744577019330955598237253004715349002664903686844744680794808765034750157974761575733667093960958552968234499847652149897069056749886130389318648246708447764888955374538042862914437539833086462946124142668461727777801019568543838276247326407670369918946365533678150648111994438944102683421524582371262643393964983182452289483587227953059890014707742355733466623843990498544707513400483766667143778192337262727984875096698192933621780173139943570392474338658850376687868813966865241221259375587462922535560127125958906715334294978570728640866851326853906422485796938799933242573170132923477932103775607877818740262028452990913302590058360142307073473878019585201581932025689294127559330719822656677599158699827019005874266112335349340242424900646684508024702537098629803248372863066488871991451333631554834945603595011269027735461544965458497188100666908091824042519648958141294614625799937664551813648836681388637729186888822787653322436198151927247115309812458793827697892915372858670422305228920832147775350979693035769943190145788631275944381636120405720970242354441181178329676710886504319540409529156103490207048225779850886360662348148213848550538391412225489327558476497371880476183917655374081992492422068271286080220713090306209140120596081101765037317543534568742308570063441526667280183982800205656284725794435316512630422202154100319378831927843351714968592895112482288968333930217245466414492662510722987323407915814890088718820481161075484205788160418133517872333950595077749024800635718311541165755903728893746370312923902656883529756196621450176543417946646784174930661043352552642889853496696859578164073196291791316098053217173507516123695682354770209868535447361470157612476993946631807567537036165307268321250096656881878391036085852482051606519841401966856269425500377627126935170568287910572968828126323957465013748740433911421059034329555464495315759546605949069917770922700745552844053180649054633624700704099745529355282028236671665437164100837596559471992918612391860222891796387830194462303564999897168491529951759364142302550952007583101936776036356109511509243442280528720034297154883063740486304087413937575325188398737741087141866487058567075721867868150758681027361843935210160175801890968171883273067930885234677343233512051967926958807975324724190361025154341728599475841960612885406592666856748676835798737306040997547676360300996281608599780072264925666997491892824400624891496908893185953845294572010451505158934427985646744502701838987355686460671891898048938538058661416932877114105146129136838121991058181223980799203155522214554586091452745342772239893064754862601202990357617759192919175886809309867873536442001304182776591350831063261115754443120594453524833380648646243300805246295461248436431530085466691878799770842003175039274730888578821583552389190308608550349218547548214853741403169927512069902115773619005175069224273626931537586932757475242463311479644476545386435941110241540903812290812062601767602433409057627632105780791678127677616900780158071883821604271922201241947951351918549433821991397164727912494710030363358487444394453419471541765645663129618689904579186338818995043338024527114088273155548083613261575253517012286319099494529911132493335963968634060855855115924195533846114597053262527683569732814725030594185902154359143071353236627955876667847686212475335263211622114728817809063674675045340423359824572233437541703716727722706829062017680603119316276661803398993827074786123597708002320434834796612637139002212737223670865107373940106482853000366904632140503881337500643614020643816910459503268214387251175893023725622621217562560144836665715126107535968576047833533366235632428148474876106118836551115468112981216831953316027108104180970940413890518014926093544499251737805976610603588691006939532462670748669081746281327595573912005855763073477190225607491766174832637614316306947086519516290844528344313287095446309843919369958288892741048453889154680344854831035719993680222417494377686145228480107711124880630990640411081832683802558459638610661950078241890736756376169296056785993322728464876714695664669200710034078215619447501712812595255512448204635428206638176231534770765646285361063219698305463813988298692337733120850111420568654532462403088384883445841903166847991672947057880899073451659334544693588470573473949178027582874470281373102777164062760804521579117535956290330768752048341586795067918412232134416334073014866796813295968688961592376835282313406922573845450622341072259667489761416354935871534049757591814013764674883107560466943377317940673391681394971070227215354148104496042971746078371452352428990399056670007729557777126268213625992770876021529236859327555292413131826118485907430219259218701270445220479799378477981103195014734546407383935544165187063636898941932708604559666052036366793003300652445093807148641433491133453200828586570865415342435354352936903653205796131482141558602980372584381104246655087660733649814239417997969450064684365844885345146378122845766313171950912956130850424781210985811736089650500565196914766968466018532493901943534134821282760806824463446460567322554479633519036545121654602238363444315691127773757591937964077662541705450715859490567855215435262082324138268523167124056707738974170139414296338620436750604958764755630954434571880519817233878074362993517883760316321205480275947670166792933730841754805532552267556406125886104356534675418453437021419663802426562582613564588372769339561328218368305034237305730892714502662569824142439224501826531109039777682550674473404517494467625915095787731118788428902020541003015481533216882689487691789033521432114236172575960097527900418198545284406867390440450894387340324623072383145835984568970256873253531590884468280923007282180607298340562243316939080501625547806050712725941575132565060498624220302395584888673164866579004794161712257292474403823382449711843381432171368307253191313383931044611574104100826291813296689792505402619895562366694204032505074294994626856760264998057741853387686623555097455032946489036537919426402886162505793801938417423127190644919776750208876348601544418731678424994677765047977755784369503670307106622218810968411392984953113786482311362853936709617755486306293845518997472742761157098278222926277000426017175012984369695190978672267880601767843779103746660871015139442424772993212454095536251914714049498476379360777224462368377596630637215923168118861616906012916137231361648084159579339708006082965492437645552075662438069042903405462349440418778332013994437955627420210325329574699349952142174516420115315028134194561452854286372124507533629883935232014206320360418502460464408747549129533254449808374109076100131623503358631893326322771351310691618978386666890614177176967763836044697332024380233268326439326448740466934807232380374827134782979819478935960141319837449586596463723408140040848635961866062720532015550422679204039099063941456443519775358580139534267981756448757936404331579018937952216395042290643743355104790256227115827703033062768804093601526195288804895776363172973673419023478326593048265351658909908520865529199698494792679552901129541946913680155562300195623213676457358482452549986943230797403299755442690802485475353272811102741650836818090730284803323686129286433783925620624912332395622963384971957752156199151901559531102470948916699127509170579970164062889505150933278589538390549703442617379546982272344653103861946050250173839075047587659734928348080807048851803013867964910455659630348269481555756815903680169908189070341442136746332515125994591887259833039740950132546666008660303513021391042412385374889060971078027493351694017570203594275101823520817927490588388844111167252030953723369191903994165672899841996589565378362062845173382589672872228916787676417505077635284563723439267452377850788710134159677002947410234756394653664455023533066450163051462445625753676360175075907372455145255736468554063889179217910495968575558867868186770283907147443393867486268546621376470167899705472281545017728525605943331416451769394829292337806450792032752928456545902178890053330876416741426111591307413080570356391938374565991557093787495200791454700350600655558147741285395323701112161002081887811151276419662375736027531534194332840631508989389052389343620887075829344642700767333363926391468419081635772259819745580942836512170946611456765716325067453691369026534349780217186210209206359538404132314285979143457896006904290987266663588084543670727248974721479724446201239344006352402078221315409705156614870111529215875755435011947670159808529946728078574989473151853199833889816778075946825706792218302169447237206722514255519037671060382929257405455950203795202503328441839005951297340997376359400588722184658105030612603499619266806389796439538313014029900707107326235836781331790627038265029609723079316504598022752428308435236447219838989862967872404649720055392146539609986874147736844448091338994714902056427587299300892431984008744555895358002317031606669220701422046454860384262590698471026671674291567045701100659942063582921933723931998220944157925326583042571572484613285382937666820001767804772827166430372776383738200418821856146214990368040679385623388136486634157354736723887463794445109538583826033531455178977249759967558452742962570971758641022997244542959315980312279554303615099558085018997406483732352142814860572369934200593384173413033310988856052874868314452542473781642811778283992893031269132563566447266162003496667808942081225399990227099794397857342800438798330337923548460457660119133852837842920306433740231063299176420107797983643968260508223556454989220014561749625599363544777292845917678168975500420485777998968761835233961447198696809322680670318041208834154937291735470197464220350657276154222334792633369768925927534064260667857265160717391725701869112416547724050635353819659503558024820738658059774725696506363161537138293004448925162363402369918368276001266762891725209905886642055478556960760287293302554499940534820241522704380807139187049874130401486151595888084518021276971149499331444347175461193086121886145138118736454373327525022369821175202884878057061782315985960669048148846224813706119301809831373436677726607356633692427866012513975029614645435682446587276468412595802568471198793317198452523962822286439450672631245116794317516936377341381389153783207440729792473850076563407165878044442356078022873804471288793898811004592274753647120276209551787403623120316756903956280085156854788091651811255165145139831434119004250016375163501666871430015921998825377735289695733541789953731951081676664544515988787691530018406056727645668420492889518977082642043449008674404060114433358691734794272346971872353637365894199701696931030167752933750736924026260806133164983070085461174894436299226942045487076378846947281980575249171488724294343517859234705671879838578406602498577382564248122068736863067928642782372430890465867028366560061596842668730391679991410366935238141093504094165089213469880194212419590801323976071893509719030550261220543866125151941451619063537177775249459333388326180804903198807100266322786416793541186445638594308906333516789588521367732576087645279830194827578154775851922076533504242579964869022897143104703470960116718017747589636482854890617138082935591829422543539817219695648054769162377389216480345595879547565289900216356176128739552588764732697090552854400575769473835158566962006928755445556853864801246113600306611423249857763433852899297953669846943134029447128809416361959572215599262842348349686261362535855525099899473210704241027091654019130740233113538748995145612059695918184453372806706034404076092273489639171671923617079657274852942142660216786292792084622168066814166283008743115441913745479991256542539202713292051295278352147476961581958677885058950983735768118103261160535389073011188583508326189373714169629003454080629588490746834981858212594577783097062719353768952031054634836342748426092613691560104020636776938260511307432384719955086131281546546122317776027599418552215429660961904214315801733593813341425586232375047307034636856474740176491812842742238914747989086112978890085488525013206514078327051127309600680691789711801970404911064422588550122673062911970570394068667622245408076641568590627984981842664344654097484533759742990269320317198140989452912194438804846611122623372053853325315952472291559249014088938806335446888655534491008057592801863158460911193227942898137385552162109845096485078398038907529166312281698260373310585595984035396528066039942470899971323138800335680095846776840154410377558477700480105468280747579693731076797548270500225139199591601095003258740482259295496789023271609842677934454396290006160282845356064344337678810643380533726932702463032438787452431993603511918163345612218996568600020846578309775961888351131288209936854129453196457922661685605133454940940132565958447003628429813996763334153508857028837854393076054098209043617855002296982415713668683248678208277951743310662619485794380551648489536869986656888459896441998966374633974751672862549340896903633515794855058833334071486774079276532405952226295710560918896428290298565382289051895771185245875256459204711919807376962902204850484858443515537748072395690711950486563534449389151271976111376535505209745516146587093156479973022752121259232867581090302821970121843953793466962074019317690642010286017203852581439818839600282523330178599111834619644861872300418476872176409575457958191479471457153882235861137886608935572400235524936721441706319931834527551298778218621196866001893337372536777703176110639625887814550050073177523529118230233824476880178528455023353186772103972578779405203983732262660611974537469353989727435913082352999989313827740956922372470761522014196217902877823047161278728414354679229115127317342663215556801628951554503311692801778919219226402305932675150700270055544555423544654490017410011493348317796335034389718716947509280526600823315682339012749080702408349123251033456182160668071533030810728955061603180969289470723198251821105724025997181978136810635314876601280651854958576147404377899900972929743335262012098077657800157659290489080903367419551526057770529395672869927486320222688828455594163380755735018969844548890197718252130805831076340394357878725246927856578465717814744999082193815580933259910680697094716334058196632410436995154700822929285382389918965074105271353897005739693884177354696205200176327467452392098896083505874613323051472879285460722013376628389444368428946274812488523132417223325667586777122166142622346133536747343787270353204376229848860652783410792219342254971201137171248180672267733388977343060456162209425099111092699325989601362456567967884600638579252301599007179026650110184710695292528648196705103580870754284263452752411652487212421531742675624905236530777618489183514669350620767933919979870239976648078328013209571761605640554481376752359623499470841654268189396256614026653512081031747835922972794496258358341985430854943602989906236658379547872316256126399606514181383498290937557789586311530799749135797980344766263868217209912419996578943472731859066150362480233777073912074118103578544814715297202994237455658629893257867173579175649808445024390894374004157235227552348879638690704362109414057124493704077779972788121776096133726348815690113624832864583905048813624763479983589266487726336570862871557927021161513331414587878386354993321987101597332965767926975190607261991557403054227737242164639786608645559717767770679579317954215705421316885226966487161332384901444846116313664090288551071240432583869320453162864295926075317289145262801010316818168007099372201240186750053148562618144260069168322834035645807394136529058176605241913401597056775750803546421055859063753587855273013524387870299603485964667351548161414475964223954450960190087674917998391965512489306533579569027790434258556914957510748906905923081333931158143264750437936986370356735157355972273940755309123704767148779210162650609131908558888687427154858679705554210120258202299759188522526818717360935422931282005927175281883654047776877820945577300439691881120340214790856653129372870014998095637781341297125753925635038955879386299656923596755231144258092259566415071732680132095913372791858457131028622072914411625958344239429081060037923901882730525215194462596885157192588912125832547331078212968120177043164551258988697751667435087544528447950441429296717300360737168201202852652312131984900639318762949288285684777156078634501162158243784107738079914893534618285102271632308864886880091217157180698688976940581839890973721611833541483794703765459536680852493775472819365718546035164267666247257267054592037592714630143027084054139688271880091094218137960715639821241485610483976089859636274780552644477573419588758143046466560120829601402228511745729547318473697301760888835507953802415582230502245866666449219164414446101250014663801789764234723247818212237665505138802343682867080492402296561914321534872559777923469962505961775758346983868982865859261570468545522548890763285455738392083203086348682358162459290878291523210600280889447565176730018322196526339401423676171036545115477634475352251920830253851167457221744791126837847883108784168317167873971294574551609351375169245820350366294259074781942050960815160516228364670522300933286388344360843895368868148843878476167417865737303353173147338459658216200030605905579199173001024396319566294577982967008895223589384593745538056724661513506558059392960508181056618861595673675983496990277928569394339680189876879120257923799534306009410721023201159245100316864942274960024908845223935700833857672393082171425077999896886276605689385980008347963667606196867460675165791891415171432480350658130280214668478499840217062052487897878433618464606373623825689091743073316328476074031621080471446450836488004261463998859408866082229137909452462202399955620365083461204457385538879604033531907062103353871605655519343016434005826520128214562719895939004559311389371187323929725205305095167569901058388412898684984387939959488293826335201625398362564447693718732631429510824268334879089494774429851302331335262926781517719282661521104496847681644263848043290263911572886915067737405027869835341980874799054210050520115731197575784444944194892458111075547047770441536886435260602211752668749292458037636806213530560570537318592781933585936491115881643033859909717286207239926793122399427001768734813401250561764366992556912926211870933930036695269472411432903412599780903916483592879881561558714374814123614394758810051634409149850132148068834148597497909803059097097490371524348197563178300924466271181533991715386436160983722471497594479708902114030522484003350227185477950189746510682271842347783958472203510134540310166599280765629078067686372755951312839739186702707550161343163640000752064233917956707998959080558285678297077622865289780770404488516463549535297601460385818980620521410549342432834797010963729555813461029552560731606044168007997670856154609067087119109722436439117438037944559508065507031467140535167606158599022950737193085372225437535550714439220642550261809008495083863542833096619909209091344224201833693098335764235012758791157888796729778379227150723551133559647065511597673223364443894508066923105082451988234757264380688581150252195008831698975096740366173118863651655581114692813269475618068931212786218841465041468973983359008938090636492575732766146588839384742563849193158821120482483379755132046873944556624421922502554382234480393911408287274564222062371713118173613734341484205179554370908488496035584518881654584288624925483355589805796329251875587641768737819031990298964588030972693871423574182796168463124450721269672619805692834630946752210812214602590617807638925061640528547572922882354545515260000658853288850216515534735334037380417643510403289436804303739579224290137219741255859161356415666527454378186710780376069310184889139013757360946782061048433615747205961908373581281013376883774545844803690511781108510478730625192282571678482860276305981007228353865141330753165130374279964679414592836264620425248521696423429131857042532471088535147695356906735880514556655997746301657074281131506213588082147066946507717306905265741999115511297094459820918710833501597544905941378312675046943046069282309781285103398124056816497371039218443082498526722167599925615322898634664662301695586943335616871521762921783927417370408880742043077573992507224792103716242819177905741727663409191001140163295990525664430012921361018956616039249720299939216075744409463779562382822906934760511977497331506214577692753431656375117317651286974070892489492096818731841091622159009850742441785322797370896517111219805906799282296270161093497718476334861786208927310817506606076113098904551804211098776136262911357255658865232483914526596768086846427004749139055981628313618109616582579833721874180222908350412389146515767367384731894143074477406815527981739571597944889366980024165595444272501673455932113624958382109728834139841900241130532720475831387438124846977202969047876044708159807385276002856567462912638666357843062932099089224548592640723761579416483502393469741651131643884338993061133893235434250896758383730338023054139254007204170834330892344410148174144619519368115103155930937908548612696389407326141437699916871449621005569269539763832321216527039083821224968558912433278047805729093030056649179194079393916582871604327223139756846501854735379402127947399281648612907373985321373254166570525463610706225678182296567919773380746337254461586606573252011992564859776309863829877809544353870739517575759011532413415824144792655895235804393067386022501142107562846485456963189692942049407084410735068301757839520297714972018171529763228212630620286505680121327599398893323366719358762555478407240123100268328011867765255732485706494405108049928957929243479242888794652480942241062384347158398571973476493526910807818598984986772835576835095052055627318091099147096641449831345200139192177946068677257955709164142788527745293993528622144166533513411438836998906268884439527648690520006065112330758944837119407151902563390162245194053926318833077152947438249345272316251263190206633880197268956594738777322753816430521433532077772663480078924874833593255326604483634100661591736320995015486733468594554576761753182905175054411541654435800424083029252486480092010532502337207830723080229811055139322742147925125519360192637234445057442716266272344505416665146593270930931900709099522181676365187538013616777133636802264170812039833714851481604501477732141765067807459162435065278864417491049340527112673007640468260537510603576283563952604947598072248244987320311174739675430744169817286676487103521409424025320319386609542451661726751896964659085783466695925358322963298805109360205381509103143240438579875189869491156637565768090077850369605540024505299991859212411949633669960444241389272380422853280929734315290626785022414730539428050238912105541313514146121470912760324462156120097273480039130631282800059876832262842197150572542229750551536689648442049130867061064489378130273498366061220996396363215221935828927021221764178445463144210830653601006526743498221604113867860447358207854875176072421832569503328682898613050848593670236137850063395939728551621821264684719317804003168325582514620648941128150020834006162553775763355528856412144083997377726877525495981349230484920270066209890925290321625949194776124603975475941988403402211154619377513996312824127422279487890045762339923644828095159453384996374544285062468269978349278565162195946767639946510277118564041801483965856511668713093025776085928117508491944497912448193940624301004393237504676691544102229180356063352000872340661773773366159315012191538364890297563208277261273430750382420364827333754491015492415754490497322531572690164075463075854506379519467201063901748146978959719780540497753538103792453131288352881439877219241355066381535044902425562610584353701890296032254807726977971534497171565239271411472321450585793408743114954305961390532617206441651013203950862516031646123764782329013854600161915420846464594973184213336871518381338022640847265164551572561932235207462618910414651771019718390056631370447214591788592560731932425410083992969467541804981539627924874625959906630203643325580976317174479722253852956168228558983109005262645781476329180747052419920453998783525912923537057342065306925527715285514785259505479710073262261671123127572806354941759190860276191498392120388100184114744815657592398711874193831530688621557585530507094894899704536942796681851887894924332756972250113160586391596473469276444958072144955462685045181589249308736181892331821633023088312676419058091633542871480729019287019598135944888563328308800061442623666620076841212468376713059848784855064148682997283782647521877968657917435587480698609091394996612994737496785803437186059827165314272757594859221962381775099401416782503352363038761867571419475963494455431662867967223415772344035081728057725006062473422964241226724491103543556816865300053774983915587559830907655869445578504079007420646104741988564413732742285083680269986237555205734374862034133359286616253843477078530591124167499521869574007489190423711198349160991831322296107822265235251644156006569757658722422800423876393105567960584148569068646871797835051232396969620008604991473040345045059292615296731783361644921927659787619881534987956879676660777723637974890097065019288995144160578500057078707562227508609141858336880881552082482439146086958895254523429932213106712000786836767714107374527008647630570935318924760696382987497991674270766369570517419155279831535840707469814694784153006014733849135288678350255395344438895525277998130752460817674347506801287004061384600298493803535772482883087284316020205158310972374581259376376392492400122202632078076810728492132147831423443805177510360354754327457246397364751357316562738200879757620816869611345204778973456558208925396548321171972745819157950716646452033737852459211427436129802945241333996186083842130117416825931590618481019445456889442633617476898399966867682055795165753564284571642020178740478369278350349712852089419387302025801915349183174604794859751087715462038721777938819998578628012605446450135624799771252441561625900337250176492023096286411794236128008931782636576418901295305523008750982294904731824499944718859543403608541010640482409623006295557639869724343319606732450456308120817051308767447470504976082423488209030673223211804395802148003748230532559527075910396579800916617576261383387312501216060713548946648461461054048724284273817149961969120628415345756913691585984046328488939172643466294867545685619275793605639928132427849659540535499221626357595385195965370788645798177241258324531458109384089316491949578615169369330444251746248863192863229485998767282599833976783770231431282183768371575106888223335009232405891674663216005675270515159128916585687891447112529579468140619621237416834411493261121591959146014417429358738313260207512591805008663674052272825703130429793392704638066704501075421726576817901302135908192936379593018128303906221274227129658318744036568067965001726585845150023208655463799985890256906347710066319027589606702392109408565904767578119646472522767586904693854623142617481812431735197431879857150408725478819523482846943056961831964046579302569916412278364756116731508138347724089251783190678680734076649498207958809169118650596634792641655732347907490183613236288443266848078216642731508057097003107586776315492519558479154029146335335008298323408132848249711537464115459902124861537766077417497344099393342177068215627937236337768027992637086553593790271760981743482080679211798131350336257042942154692508268880814430455108270392065237906310101962407714648034499277443232199954132601638518853335841085957568257264045838547034725933759012596882566229095380272680002740284146033690668752278410673826091551192953866479451491609559002417179134984711650067185186641158091974931417370379575613630521612866128348557329936470927226081370262628225645843352288195059105158883699682775119059370432681849318518070566886446421230017031279466715419715579256096236632807789204814816239370702576619887122414988115454232687436561768700401921939672784672203776387455072711869797942627606207445592555079469068195237308622040049053579776008002965996412998050728136339182453234275610361933759893485604450563754485238944240233374702696892135938089953387111763976159815797897616049662679215020666755684629872139512664504820305210185508091001101230932655656162237158422870781612741307734767654662248331955913172357361897899968180396717471236965882742696712185779759026228489821986071041622307569763823089001408767899455497489210229302362835564487718462140493822461094910994067161301456545904156529968898805698366437775362540867209486940830876412846941888913278678571286337130513694586416759110614540993426696543583082823551289784497671568703902108930598732564656298161886527241838356026384695593477069933794184016809137504689578888200713370678775628004052829781087065398421633904557009718298864162516963487610169172019027486344933738097273800642721272034158405723229984462027622378198246371951756634660497808696318508528137458312423751206912645904665959038304225097330449210898605668301822300093373390577291909406896340889237243767162325925657187135571069671575037943992059089613347643971262696020420732774450695237076079728607611643955121406849346936352825374416002505224706191943932008055553472487581257565647522410776048659047697977371275508464335909050425506049662327235942946106326236014952107737764899173672990750842407095225976154089376481253278739706827440182573220792600547904900759880623047553346858441449370549960909216266971828461930402417195346003677084390091729318924476590398572984389054709571593080427414391253231383461191388231694727613695139857815045986515479016399666592112168636423094593508617043004817828728449510613661551413944930294422402993595888361171396052798347302101132411208710653214719205778433832687708662335533621318720733008014148298230463393211048679409849326711097709933873884561410253250662789664663374652114845948779405890417163145508958480045787763147525107392673326094564818237649707698842112506092032700166321491499843349978681222925083130319525985791940936942537183298541843946281745251179457638894348463522298607672258424610175082531271360753808231476363219480715189424156443819040945004536611744518107786564411174206059395450319802166741133511765885480256464546973905890330010711543969428003824935962258129798460901818383962533603259155523287968136930260000013234797923069232471863259044958609335661339602949372779035934324049483930081139045945668674957804867860838934720679358035209926202249040778623166687325734040084820298615452210364018115549057016499349246269819652461648291502941710963255296444286381056962786947560216827291050929059724165023007115020906574115244117858540820694764949068053851637596732129583478916933572249504120303962677590613645182369247242631157141739500768217823824154028246264520319113224455428227831040920250391366966422904750020876843151054821380627348609963907786606622725871902667448921429605438171518587345884597573906468267164147339353722127175631870512178444225055195053833833608400282559250995608919904997424492038109271278362375394523603419909379999144474943821048626996802816339518347504331201457861126139126311905239148543607310043527475450400419651180840438344994850435171797761498634386592909202765291964738574416463250959497416926936899856348079899023350562268473857033037288554702660121168178073627222394834649178058746255731665606425610528880750179864457237292954853206254058760732499753192345320819119627811846774184997984853139597878299744312466998709279474004525436344650513597251002762567088678042807680943893380701510911036284611590746499244082561526014304223772062857431315017607072471299719142197477947360148015341327669649282068278161770585644237915002178040345135036511647104025795627088530049059622014709518608207206339502712847152510501790735753377180188677899926845462577431731529418758787380188693057336103529431539015564151840056864698353413725883412871853758292344278829558291135502425726145014264976241057349784252861287976228207785027727575668484343976201101008223120774822707517503430162679999811962895075934924469110975072916067185444915806848216743264016927086978562196461061136688583296224638804406380630712503801323272821366579036107232478411310459010907259758294485971392690938920565390320942237372434640448614032372093604459577511367732819977946613200128794048341588916067202756850886619940644177040357394933814350570978463478320721579491066217266359029224844421913736609385349165575409517401879769440269209017323927870387912181368799465340367057470121557031553743555098886988905827882613628078088397706023531933198790461732424079299418042329554337864859517173649079588747622718703728518208855067731628020406605859393291991627440221018240150202165669053637377425128294008549723653799526723515667434072469167043728759650459979539599228195669690242123254205053460961349040621253129017710789732899094134188403627600154243821917459879989625237154539225160868790037344600622556753354106199071285854753023356810105118403712758327628336804194636850772359227055388650813978023219058761988989223308502164023834175087457058943252507416975110140632455676230151782401829958577637158289935227020307087297218861657086435628929632131195140681256242008919466593224512175610320143579354471163352122038817682473262927655600971262486575988936318670340943530567956684462029908393295325832640938869127188463578292968919956619578769446589274016802571166077161249094093191752885394666755485386163839308037245819799083057294147672447376359573750707150314424895604494860517691893531305470346305613902719137981143279298851341634048225254940790342171700034099672205674031771976248550154851120274906372595283924905547574916208628820470877592796406332512858274778570393416294178444872592283408424068302706554443828253460348070371746122690145789588789774412127892407774441998905586217008378689864999716934323651773020533082695966967589903417410036254683976347496964236318532244929969379683198724360355079844650952806460697495304217357997610326016975957277464356945821657502652204255138103965870829303223959804846609078158480505811626575232676336973662261870769578348725083841732977743403812004392676290048042843032183136509294895613463559238245075848118391533131636292275342416695597282214758648332670810528572810769612998159314161445743936146340079714548209821242262830295776772938576651527034613403329512544348710866209055063390565271371584277111529126116903374488181497916482820546068099770354114918407065889367404690583733766996416546742907745803454093370410861623575061471980341965286032512032604480495570413967071362862153273736758771417599805945761742936775093972582348220267340722332089048588759182473545668979273455373015750602558050252162112915579824905127610700292239061303413771514748479620501901634291658388317308472334396824754009823274387248351671108048266174939069051678274922820162380708027932135226930134628315681042883829624367531035348529663879657416214512215615450511897098450651519449550156742550220478044416871836213416655355327366478083061311065413769100762078054400805510863098354933084736206023957559481934428294678256778958037624244300405538327248676999289831489857566128093142976367698539694872962104130439989178169644610063842734340440843959547296814239416316879507290507498391653380197214415845652368193528821781143757083416319598819517523179902610316231609383206588396709732676554294153104015753242045758396771418186967377810975807266878718579034413932179743306596892205654095985289923494023376401122658755966632611857497082253041568309774111455515793365091847354430637976593104687761720125228064458347019348235233343659013211590039859083922147583896124776185521832138331478964695674725726214304849832121780191853198892975938699194944271667395474937913380860258902586062060802417590080431150224221080872065458379507641885072241974172899377222452027462259624166292345139184724141622640565968671338118451312498474455953072611197105468677683940135251534653171582241003323021663446077067216133915958810819427722895992726265983757747583048875877833628290747341759952173849255955328710534295863257147096653775851516066337017425649473176756163335460424231392501998808234368084666043964471693017698069643697894105541736900284150161337670306031255477229232852632081105351765786051749031657844103766494123685237712018393083080972088692907806690645999762213626756168967089443733412131431332919328780781442998428940325731906148511041310199047812804671989711204833582799801685906998178039206680554023000859555941912321832682047751077954816505121802726856585648410646403576744151162949518939038143786802702630659936752885589851304560831992031221685287215190566103881916221346338500053082616012614377306145222388082418819241785355867505104142866970544307332707152427602067109566889229284376106190789858750312400438457433385911735083813320940113768033223088257727190225004490757520778512654341514984245643615238541073039524335869414892893390027781219751513669844318347964344223604598173497537792221805728535345677332187663900221900899156503249054840536311682792685224058915239376237357966168355649385338515208056434550830248690589753581212071436438754751194323545169094410714459886896742301876737207328490162332143509529772937833818924211033863897254890167544995743013029579792231756090888332667119171839394721834359535222691985868341194604888953478061771511075386773871664245273920773873287178965816415834367745241826241187145219336025144241034615913496863146746418490036509418562144376450683401396957491680179357841813498777164128375029411499727701473442145364361732229520675536688188454035564700190510969281381923483071000669642347220879812268513463333430768800349477176728586220815175151899901370910188029393613104996955320996286394888154857718589238880674581762404922656379783163230875287055862280368678350999803000433806182469724694443494279167499446648506049056171772401630852315480994782295280219682512444831453567655593802484429130768899305946415873928213629557857450977556566414976973482892774547205365055985945200518596731038320823437503314204262532103969573094351782252592431011006587011022020222390583530887769098272377753322595371251941787990869754477417183962564656010250285763785699126666436565550642973219144748028446444855484362773967670812520374444906324505173134114065900508642511846470275624483309663976128613224112434629592388598452073607588587313231998159044672009723310558757328104362667319877858234433061302972151456246103321771612128748163387386207390183520938671166316824360362723401482960293828199797795626587765044398659654138376263010724109130505849428323877721939299819829709490038855141576385620549805984872940580910936638914367586755645943667405297946301947149030122457144064344576227042328449580737131892111967516533850401438200114028757319697739447322781903585664986605549921652077271434872553442284622580429376876418730866242925347770672330165792182052998594263715858731521790002415024532409993681778404826621210806793408692005247019635321768375242278717581197765768157679210940839989729852388400509095647115193204214566474306211836725764712402971086695814790624572017443789341599197832031786389125878384062292705148867316760805355360627754674008768097940147502764028044228111674627475643920592331606086893065706940872744194203610098868732357785416429513666849977676174219253820058968276561795809135666990653923010507621895587088312981525669974755433286892349604399282082931273081695946837241516281316905665119420757401644105970765161835882117066449616569412230507675477821458186890219592826425261481640918205671414383396230439796308966611424752859716521852538462946520697689774582807267224024716969670181638816839881533806684274840506012576789505365582310415727864769772870347725184118328544110631574915817666892648608415813045768339873821604579912152839009157958624506063119787652640853236831212105918057901368142977928152871125721989380504027803690892179374717302746916319715985864956002761443712771440699675196369037674289553962409929558519435274447906550804437473248138705739564591635914676995329824626245929120281048906783209185830678412334410016301738790684582986559428014453111697915615697166639981893814215551430997986830903956112596798370170186525850813926511032262165371629017943254260210519917530907517477015067491900674836660279935592495546336423287976050635142580210801344266287115613556740373601568857208291602238790975173428625864102913339562065027366913180877779923136928440850265512088409427313727525507059799019489737791787199691208752395756256173298202920293592754147874045799722161387825965737261459993768618521535837993839095962694642074690162158788791784137759754803642776605291550596159351468338297305989084999237085461778602125292564741946344060230394934349428853463555021600643354568929739914802153155333754588653810958473367862192606635626896066683954286392429598087714634709841341598455623288820580180724932701710279423699991976575627300897354519336139486805270485571301501437247712566638281250571723487814079811002067701004603953935975422048596604572753507632554776498650921055607290863574328189949734152370066245975027611183141322362986067214288534051841335598224261773846462095921779761591898842106635422586366529363978417840979036604765002056756716959845319888333802158740408099669765297941070209361194782320625174041960337788914355350242355007679132524972326047030826145358441546327302829467193693363788148678772599803125295162572191026427812925479006575565056597030044850903439817817105912433155227073741272675901269839448333773045202199064350466963698545178542758074025326054662844893566110877373801186905022503044218578483802855192783607415361134127234542045838956961065126366553223057252830852877461862245521725934636228959653617978181216269794302995833427360686427775442839496628949647998824147829325003372723594050196471675850811406160665653423151883729878606813586861386816881705402305010629620453061135514081866352650946356508980975318107781930912564362397318981446969491426909703095948808983422870085690476122173811601471238674764338895714709371621938018428829307152852414786958809308306381047727225573090976287770858940164276348293573928132136505140731955421720915614109882580753068306492703092685538632220770693909380762909434362653849511752849563953435818662490338652454611467009130034925180030146564113639795603420882925690561017260045662288258575900921917935389520102291934217171750774989588586837631444891840911181750345431358399417658936089653750240598723707934065101692637350226043333277562407422982391650756302670988667735776457029296189696113675867694832620529429308753912286722255871595143586786911262270267327321905762744046938129220919583204729135619619276182096779974481310624707578761161399170921330825251054888690673280492889071416490537962234480659866074225150607043792089031148729545523510516372230569780626909343739209230337801101686438764215824522010845618158345755389584112476989182943325302740231281068309750070604034733900165926917036858799241270329442558893380384355067892478111518913241210793165306518664141896795571076841708876533789857729450173593073828000041366751624153431861601896860891452710505668987060938548198832833642474170805803941115429123092622107053749445222405585448228196071289266813510989272193538646969227576016949145291225201343533218614822836229532519895699476320150194217709229070732879695551673631452829465664714490548385808061215554967024775985849577171182701665865559186136896347534077912445957389270448219343536907714434820224770052610052666677044318164988005509724584622617414044773048956713518370270376859428281786477387839238715011849774259850656910580063831331707725648770725553279831012045150563336609730737283571660718317890805717579525090926048546759359488369440326387440060180424849752921968460151319349347291131457467279986319262256571950577458397366046659764800624692672196924227015029251438295374387487713203647884525572151458108744185304911746994980400125434184307758138193568464391397156263677157440912974399310159296502396270767991174678191563151911972119004019882736132824181724546720014953993441606774669149069062227105723167261450291811623135670739022160552669374984094967361272335762384819976755279668143697460599006857619490357731011627080103759510876203928989164348189977668513593728384016499327759713529849678556728887204672704057367370149462325123865124488752488711061768067976704911113151153749766878331866187671025937480544354666360753900036562314072687970722951662239605686755364945854686766828935210928003942678656377803817484846958366491215370466766189033482843725158812819024042047987581623408593033771061877611775298296228713037818353662620532642505798178533699741640353274532292218757253347061910659367769682096979668602596563863537774277663209293145803590217913851107417683532481630848579546079862953546980222695504574466737835325070070283325617435911678952261198698489795980738115248544289531234456819708420156098383457947004927354260643609044739598058247186099619591029282092876041519279545942739280261008307222236239475929294065051435138368158607014532369462365932337128796943025873326201878430248966920014777415397814654165301152855090357868736296663514870082250661440800265630795935934103552635447536901819928615916548079231449028652805322186638447545527988373846270098178957644182489093470526847013436882799058691527438354948239100470501118968040881964310517095825226274817173561534562209970594900424725125523510875331321809011688505905869530040201761757810747027176841647233233300905227866681159478295262333597815509473467890964831757840494931228178567720866851629064405410161649793853903215940427311048897141419269835114599776785036388769129522787469406021546994723117608931499088514794102183929863916237626715579515236091600247818933671568888995567120089997720010028347081076123264150579818536182203134361530439138549725620060426198248540210483734297067536945880180948597445809571806234571340310389939970614905593877765511974444683476780148943697193576884840638146517811620921439368437386604541336109723374476345348605132029751137161146185868944034297119577700677373666742030710637915755482459165261356965183159533888046306229151008860495687068096604501469254246846596896049634600799068419459477426055637032819408324076707880897146571085866962277350137025158079980309054620768239536813461131890502368967688294406591990905662141722601118078277770794921954593986166295569478399451479125089885242192565836096633606190470149395763111443340207667201748477532851999523372145017920820643426362941631658385661235545464420837556098957912236730536939189241968880952117549818435072411149961234479477580301143954761271457264570500450668101157322228888195401764327501647796039803329098582750726781754980745951885084450911905697086672056106201099001751721512381223094605688349180642360998057330031535549139818043323027632828194352500721787220186157345378097305733726288084946686770537249438378947305849051712716263506762821816966043162526502616457149099811653589185987225840202508796764707436723081645459201027047272180854699332334423256227851429314819990667569664124415272748399914275560521154874586880845510283794979878970842794783439792536173035610100326829715919682589255205644187549630190726702718832743435155430090905852630409933441531955764843810562579217627992012997121942728325869025033035098060343917447559541915145078402462202550689318629067131697784302641379345530545121475119402035305901928470877764202526067469303652040906999123600813493478300172804368141170906553922436043430706481713645858602132765930542099702714495844389866301749888012359999786221243420866923777609936264039463406639662024366658348161860297373576967533038328409468419663006170156717441503917084399049481644490647030990568913789707617414297392690445879014887893013950051413454219697355134683324729522295214325433511450357420070961781811120550949545829596726675535832755237172541742602613911756225711789372997940069120389950499216748154176640580632980264633817454686365400470111733722044076028942934403206822760826376633658681025882051304929736390146850212921813672119664999850047011586060851477761859916301787620342163964656940157643757995564097124723225961338436803210104923492535129035808750665828407326497961180362717133619137709027719320674810776696505859591828216333844256312152410162127918796719529533776347842495852380578707613063484113192923495579049733878145349122643357736870238389758023553130510469925338396415273601757701449890886322915860221843500173504317612264834520991546841884895074321440092337809136014597111895034935973388066876010056221788413487595161315392222010887890319602588413924502631897682588908684916099916978767066786192800521678880049564119481368131768845599758039865394387896861130582602202986224647822581717535279133324659116605430593957285809562720760551342813523396833368404428612908598817845644152728534601865465547203797472161152373501284854224173128408205589057032284877755933336605745552851743224204528078118563078112236717908952599789369825952336922245234416123067602016915005985027406428497107228144292433175608605646382213112474985959174508569235128691375572845761221226594440553965194627910628779456998198039003442853585900537733865030102618433948055910589522240226443308352293134259827541396098329459058019086444305483587894307202721178048203699052730382714732329376234663510234597792396123004640247042006733899996128376661656984928761581617345568773443571324993858103660393322573317166546309202242827456167169334456945335926014891653689245409816670919008741250754064799045951587749445117612738611218746957076198908092632341815315926046060169609923082683473217328783287051339182783711066003259665564229836178714968346566643342283337182909610529826124166899904896851775444132358326544181360351144924717405645002412837734402965918034292434146057034138886101642152155580735245254267356998021780979610903930302540206926459508440946998848858770251226075272141237205535068625518983101159655625917084785723081197622630061665424907558151654192881221087805153198750165706193407651071926469266580265018653683720077465610213686081428536413384506309947178817026682281757938256014464256056465076612431103411294124506110126019252592198639936116346520117306086413384947885708276900466986522263130640232279712806240792665510567968362195007476879161768518437266868010290872182985752610540702656045574488588823971000055913754574750842480172260616392748554702585790719448163534159024815062289992587043134319773892149705541523168771373615018209854573557333721212723153940253715542187214645532610406451738450821333482343321204749412105515792959168368971880479895490989936416056910247532996389734295944962169041458052236527873272926294190378274928637128775363833708509271692205376170394394201937801919189259936712307525747894475651780099723084272417757876275086619901996946447703014337672047536201382952101636915204529188137380059972969692425536020450366759714254462818585955803077407104706990532162389485918046623968101882870746502691579088447317368048909141636134166158674494442440339422342820936248013349395579637770400828860123458735930865947054505492994040493956382101893046598587065965833621325760492430969534556126264623944708781303415984268908875348739229798508837956610872928833395037077027409679489194137266110828500253442033653335335009300490720040369127896974507070153863306549369597684004188282609974160515460254492141680771266931377352924653085735158077316823600652529519243790287015582681625751609419260821903485787590127046820087901816584895630788325423234210977405275493161555264213591304579385175047205530923058812463907909788935155393907701878171585998358112391616192323313151864349348214322949188875456434861334154066835541151279510811123550330402465334543116729426165790805102050357109189613505360227558910300812545858741931795625913790264829286116767029748580253812401030644624399651409007234428150744354434012325199000980191326601461713674961216891856278340144061878223153523855149987172707265166839873998915062786329984404146976317172895886858279768807604416023910903921383687905837098653112779627145478403814911192422985660656647504475320658778832043678766116298490309355342682662883733802060890771928998030939359971927978067127839173150675665896856168308115514392650851484334609115672943531841014314819132316118265590718939666321872363319796064515965579686533466428748723854946599958951199266306832763979631501073581532524036562749223191152144741943345040304065369265837820754731744944675963072277256763010064413896922522601765815609529425663643319520125860658100383169065217961940971731759512397792600916694875434693790540670260942450167642651052713191417354324686743274922718571857651137148322704221570588155215758634444936907385353375633863531365639580150974623120357998779036228629485795048393995577689634796643036124320584629771444153271995104371368970257813924647782969844283726926165558702420696340661514444633896915113439907145444380331150437984636274900388196417320206231374785433294512920488671248250141972218897862218655347149687566396734765304597129438840475485552562381322789505862208629549903871001519908701609250464812714469460728035081589116484261579608148168819535225118846842603815441901634343570170121570652570882112440830992470340151551488039531518011936241609517822176270359285638061948576903809484762539537848902699468924328878385824702597982032646840286828792230919408009716910786924390588177288411085876134837959282867349685407917740391090081183748198458565204456832067584133423876000391999614125455995669251464492604932518978159671010100251284108058828861693549933304737246544180009624974765194759922008951114650166949601883389630516413595473548395451158339203136454218042774744579656068783491467430460614409189520008564236401753506133660634493418050745283184619937870164625961942295984851842831635491964137077820329454111602549571833345363279679300037695588321479868739578007972021469827525375689379971216190277685545546185077351308268027728946623381130268612549928334323990342560784096738389871629702958402588529675062457552262775162230548643372581068258685000985087718203491922250589756820777258506411733975346671678390933992474307639975682759703341749572328400936285068594289038267118932741449032202824557113339764507483396631498543608513869734826485171386272567549619688769587473541935026337232141854556913801511503514848770836716883733626539948891465291493066218060409600799006182627923449164157029711680574478007314493147965250662767738763795118614550068861081960959084428967041627870443219699014234676320753441175988125072964763796634758110235069676347788648587095761940130614364588857979839958747974122739428633440542471878343853571236095797225217692892784759750984664648392408255319801341649144282066366994893997501574640799412358178684421038163909110386590133921505368947392913065984798628197067958954671402643152402320048764546203752951370910922771384710625312808529090850031094343334258377322579415257048188092560288226938614813582594086650708129656094499256749074736698751246691936358613704016940757911619704087021292548035754243857571682602327124684975642079630134967373487451971279316349316282168737830059806739960072089944805398189920801969274482795914421649998452785457022688819846624788149451811115926655561420705601664482273380843392663558149520708703320132809666394555077844621369929617536909809304332822381519642911371208374448332918215361390152594321194482176689148970993155415497388288254380115492469677586636647191295493604061698191886965823555189496645925814032881436095712253563807650048441671155471600395668895290477418965984926378557590984445707608726222891788834955436075081770556308035423517456191500937716238059160773428950757603455293654036608609362265881503304497484112774121742288957001295052438878264272692014422274880719827167099685341957796769590359442814045985175459709888991411985416581888164137881117966719754459122127820406910008984970261885858183033397544559114292903357172882569893112593678000281483467490534482177088664797512315569558998943717296543666557923208711740342818040895306620723916088000367774653939148362525228455151079265257488918287787951702732862834470868722718708862744674454333063307663037993796372366239090707207697261122871956002302319179252705719096417687057952571735553096092851916784560056587820971626922137484887935404933915931696318983513863975571045623932698822470873546372281467984094246747155860287981877848888074898854234191715526519847618983236309580849258639662235875239690068738913518969119760632129118012304835752405947632869646614564722952182260260033537878664231578677294583941526294540060243914039434438689740874577016568759652085661061758070394896002921555923669686732778386392155215178475726027016848748636458170009770619179312290109786073141679055636380775266266702914608819186512201137729800561279723601091125961736040125413024593183484525421493281469373853571227624589794134468837750785405691121998654890458417665736013638983402163925967627992158948019167694126844816300560333362112374718729397350968937343869679641814362422421674448606193698474762022375139916041457539782242019942669430525221079014893788679660242028892281386945625999099708303150717432699544478761419593567953296005892353143852418082180273246727443077830035247077737398048641261714866570566838416567273240322985821759028628484575278005666749714551935325900761969528304356111800019769245951723299525805586286946475311671445274453409285807882457064689093340444178506719849687274866232303678454591568121222388001838609479796876664924742442569036258731278375619886301036282651994171033136139642374331749149290821251284798864986364425538605705185176774309019058484109593815724353179767222264616514325245256958595207085810521210118693048628913611411558252719151732508304493605320409848080658155869942544633496470127941769171058143481584661559716839473113030836666077568481385934960123038552555810246819545933633313773534858564470704006761615434290934896418950933512091606227274384642656045395065845237651667387658428144632701991461761558365394580245842915545203715452651837106157399455232459328885567537562665155773851632614624966785094597232880714704942924220034541429212839078664592236583992863164633290046632748984091087605254963296705713744742897627677375773162244229738999459256834184805029915126937498854132571944240227723716470110754748201460096558707340750547671482291282391705408992485875593675440965462975396566835635962870152853994540641373487200217691020945347441509110591109229960646476291161522156980121153490157928199466671391755461938510773281775086752672610797059140960204186839857361440447437508505296292913804088085397949296092531972530586638776082189896756524660161072527465271568737928875926916268593597597843117582326040428480770068450871045455578262016460465393884289073291262270229221031527327047424278236005564165759864773905048718871617624427674206407676981646010861898975373595824520324057697865603562597907350168565332444976818820135872018657763806486345986018852953343943860168365782787794526074403824081093696061115473997789216496086490054369802592909130064751105716041023046730239137725639170664805080157081079983021053451745932523938447748477600908414932900871554106901569254664744423929728520833318267230177290594350685778697834937505402729144501233455926475698379588558130524808160737107126292740030484078368190573484408242576430482451199424261065901222830108094441246533305437955925624364967915939592721623797430528789090483329832862888379692707447840662458722505423697715807059356486407115898179643083510936838944829730701285494008338001820461281235444522123144640788380584772524743279558945124199371296237998383460592976251183764311561523535696986389158736663129012094415930488769344701475019878173204096349967674642852721476699332434823071732822171512489980838980995511972550369137484421013260720235294939478558038074006735011364911724580989790737096283936566985034255597376534861003116469883147971161577774419790404720732488983551444651943889512307599780463481736965588528637548533153212255459011532245882580850629723287506808536387334270247256504742944669981264681704362828428788012979426253455129566636941900158131664875819157564879254107898725840197779760498907319299930136877555322852396640268940815532177049873725290959929941601290676345815988054308878492204718761694024885322446652615597394572639063946841464883548184885698895956155471113283200674081792774956994541767478498536011417918638703452334829113455048706039443951470746460027448988586627027185758636022492423525466039422709518434957448866342254111516336341705077441544005634251524263601975894412977535843709284958580046865614434149834672660504892134152301919484982646191081943494134521280302791799139967753648579604919742426083744827376450101248732472779818646017938765710102258238667052900170721962387881402684787944398188804132762604774821173060039011762601365471582613745288216278511022483930765507245521723036487531795446673297163064111306717191005715441792119292132326670635620354239596738565693045634146661391607822451043707854836187290323879595361653733533967885988374933706189241149254813599074046225255665106071338703277885048825102579503283419779288892853093664360147410045122863559457473173704830990097281141604154860338324738430406835051890619544860708588573779820536161241174309935301361517919372976987724741739303794524535481206543013656554213465650079661588001970551756903279058175258912216643960828290474198866987656017170886231046007638062797831494884930508053382098947512654394991862181710111425345677327428745987528250964828470103322409908491445761555433780895386464855293443348906045199843014960507977770566840434729862825504065855453827309925452078388721760540583399191081014054694638437130219701556796619431685977656139774856485045586268775726637341617476413393817428144345079975896381748643366517144824473782065104788621040442987533439730332789255234938566930078354003341146033434716656680456073405818613431457390392441754268102036015981547827035686070352484239895267557803288811511712522720245643844702294815151735638656735242034237152063676989906663127005238385632278268187327243453086660487084640306517163146559655749348030977502437050752271346457179423845545255136132075896361954610209519927769140653936189837652257380984740658651306970245195726014716897245243377305855252489213365980362971557513294193640349669755045756000227268208342400677975913061448312779511808823810164461795739227172147530085250690682850245291993682780351086449922376379891256189216280733994744158521708155842765733319659032751981961496867169482022374684006418971660048236967321788106533058685987192511306563569467261279510839995904102489462707423533468356746593477307397341850033051963815240425027228317517167023967413549363583235519622117930677509879892098055512356085167289900061937430403592997501614641920102633158543824304948128199800701842549937039600975509811046998036696489099352323283540223322114064299995900509936851184637263518273615809902058517488724436353579628422272758373596087579806305615076517415921275271231402127049659687021234147990202633717851591202545465098399547239303743544135914333709331109004609538255753651472252382990383336224415288125763324007163162994834673047774631568633326041315779213635276075101372566815704737153040396005247003111334769102366581348456584908090369021350775600216844826495237701370139970202527510308080334898405646887660150331363997099131227979199624553171668658018408385259937154492842084677855724821770327235935261164567881617785874400276467298714282388706821771107768115349009548686183359646373486349046081142957190740285093560601188115528682914104183512218876140717640854661793898199063978878428441428699899922391449855082995245279534736688139649852358867134561315888325103311015889818664716145094601333272403559967510372246806513646456219501538628230340330884521670218257283259734173457051601728339494886895892238306235834760531460135576315869167678279241790840061314304954257482271567413194877732341301350709563866423804751681193924326878084422714433395821888893086265927446760361136283925895976482748519410971518394410569339569202301117110178900251853682063247469127096515568571575040837246545922129050398898146577121202784556823978393066945568304747507712664463852483821549751156718547650530486323417522019532894782489511841442469775265214609239868407307550714445448673986075129364182776578132104600299650736111562823245675065783933007049222321453605418745252780666832997054620751115008911016114095146357292852509800848195019478026119168356020373772537801533141894942944933767038543344764519479255363155514897778755846296735248843326930484409519678680833643375117763675078711799176576852084485382938052808935973904126489991660185135857055495307134314898878057997994088738661216338716028766385845860887499616188145260632498262702354691064447169332854621116537619520517907689749205718958716462505025986109040951247123149835626669178077366592825235841979338566684617353522434541497432195789484435283139983128089371169220601077275808728112233536432817338098257512023554729777258639924850140001757317075676400652647737452728805006479600046159112708233209208223905457024799488553428622115258550920449644453859943826530544899446062639567076199258933875395592688227471584135781944654230286446888022239673510481579533038140979280604592030640734785155786705721836327635066130521384174872624371406394223483030233242087217457790675409739084916705544898203707907872614767694791875592347175605506610466692322948425560260457801367283499343196508961297861533000912009074596683359615300482436077147703949741243019598739087942823571067250173563394652222938446182800730113496406324670595590438805158592487271920674621417794436786283451302558297516841133267654411198104411073559768904354058798876202706282468717436027052309753722619687417608978753623119260787286935802656742959138810616116308597876088846881566015988914023692094624310937360769321543248486750581271120330313816847146886110649686904544157688159057164481538725722892981825648291658088260208350676119015604150269351013459705004804030540327289424776479422279191767877777828321835869555873676777757158280042694205485113112312289716860457143425006580739994757789152799485227231143762842189013346008114528290307941669575924384887000781406559225587578978764488693357134374242308043825311021085764064752306975515601203238423049104669920495906472444267510564168341576780296889398790124851018140194194132675258269764151393166986943509857484365922562197168625950292968456719003090047911470823085364374563704029153177231045393020283577751818953818839533165228457369618112666642571444968165836454206505205304104793725547868538283542863427754636825786400385493157565588981533300251531822332269312094084613211985255911301015456056712202138190159291648665330443537477272237263110907167256307380438283970056556824743621575158147412575130474600373528565041292633918341319502261840855744915197697651679438980971089513733181532952035862942013702521769093961910484778520481754385215288530138177103434635488152788712527099617438716729029253238565735625678055161194068071961633212404221579982181867166139826319414091974169451309399662221936892891768363021630871152655889238981618378031229179047098698720090150756084492721785181330708352782594439149600251841800887452251103650617398090545405737871403457322371339330649756619852953687995751923645462596352701717660044101761806647885013895727173454011062678939098965947799607260819809995887847864535256726128128438998836812070715765866617821830942637155840214200895565910193970259393440469710455282034951065407085127802920920757506523203076615251559432042562810404449998874652915937761800963321574123160506925665536183354022043164507295737740966780453365685178931246325811266427889374714894504265556229154611245878607981065583831886199994995642960372186805398833391546442305730899612471707411847813830032811483498935542883761118087972508112043787772800872324937043596402506288776730594260281964545809536060730533762901324277788701700385998455432759322688314429920702166972741592667511191519834338940199939800660366672481715376409273218092230076458024903537858321792823015123870560414238055434859953537516440221420909149914638582155411945174186215722314882652126112300783299999620769635875403457192534081663720847892217464308525419537312453891676264641488767164223782183387949855306965246319594711133393187305850630113287489829375169789060696175882257653270137611718711966324631603235835867987201801575581006403126183835170622377110678464882405646293309183123451138296893534722169072563385718977652809145223699060333562681306385773163629895049014963096590595226684429737748499313380442975884881535286370340431155167969183101749452511396571115954052888655831812136815308835488224582491391471535717755609911099897676547416605629550305388105746254815805409323562718877685610538822496059932026081811949330462259103822191858965599623220703750444460224366682109520441699373401292460356206438773256362058573587832727551452200604287948199451991419427664488299392915128585642617353011489017499659076275405352158015961378627222620301508228790963208373229676089432683008158429239291405946315626750784690464815697968177424367278150286589941201655613716154666043602115803852711984850101031527712604392700521449220546083055734891473428505842635471925319770826803523312051744889516609808879912048496239320511381923359136104296885525805037125783815383098457281796198293336100364700265732407506899293540570626861200819512159926797405373825714122300274115664241051089513917874664386204680349389989529899191188704169763626478188945964653497712327914097063501074030455146031663141231143003665581750767102407145013300385547869180578967151568227076266788228716767623230449434553333133651380071028450265352771100427378864317526044731528525059744352519904866436826541559991632974395387023532314454272136675720526072966525123947199557143603242810963414552380780276640395616102297069959808637211931693649333237312219661912552519737802447716472493864497005200960302793273388275601076207528812068488809344443196221920713409020066684203064544404993627956665441880194806059615201344696190969441410321315782137316139238705033629264403515809547750117819240716574086974546030114291776647390430610561111208171131410995480149928419125506100999783142290927424136835102721902470051125604556251890538544162253721941699848800324981633717915807690946237179044767202994326460927197377474847385231199078703901230941340520584055869370333141808582285948554259783590568432041387662067715403816841799491696794031946091047125644628163914665492731984771944331028472702545818257179298568072557508803862966509589678827455803190261176694576064551235393545641354468720696687155855837214913274617245691682016214454797701180230282828420439779608256159789434551647279993253774971308521470337126372431580252248260527450622818925542089202400026408636336232461040357811984712327182233768282578890327435149200292390569643281812173350417303333627418858566564642945374219255116276215103567458501408256099719103206729996517251419035161556793574570917711881872582487062546442166702240328830474214298910533498340081104647896083657527106577777107155377904248004634197547216873960600537242156334860451563131838572567882136661634189131448913965424615358736925082356416427144896051041721708288919957250949755134716275239787070727510225695535547101497318133333042940444180006236826329848377119818583512724777807992044982210453986422890292299896674721890344894841360365972960330890501729397660800837489917912820478005539933675894711731883054386569813028394569382359138756576798351863822590918243278871070572157942404492103535180636130090816366033858323971619299028446407765113630296118847308180910083295878457233295539835548257721458253373750201214279399115532035727097381592114787040671003561703235876646782326448013750197746166692788482396561835605419430278801601447838044614024368281760444361987210956672615438012582702632892467755464253752483017655613189006569122980998285418254402583345636788877906859958559880362704481656952180270900010395361770772266213013617307585071078529734101148408421199384892825004796461052346117481626854346048836656682167544482157344979137862326672209784857232801143801284995350021711737926985097892414159574110318733183850683534791159274813200113515730606138999413431714955325051797593910811845228774228537469356781902027236044840055359900941826703713959767606443572648294738611264089829208786943816322529484420056081497051560765934913839393864634996530952433326786485051427550340783223325203751418608813970360662581237741708149233409841595464531845862163289302300254261825273032749280736571673100805408106798520322027711348475974350764618482432855577534295497066016228574069847562449508296370462095867825840624208292854523352586582733301545289104042268355444935176824003746582918333471981578347338703907970830014301785096852630815142516424140874545956125111595166073040803212061869119172782900048472104598518320698951042120361471863527042280127373916549743837021788032875896413490529623623197090247408992940721059673730688392894089184723303255580463678562420252813458020691633833379689701185284739343776842515388660775067342413122136502062034776497462348198673863577602784919760104079607112308409995960514530744853294311061437777674017682586205166308465026796317283951806477197943454376301810513487944125459815715475821616266227226214052842057597602968202042411681636497293296501160055004758567642495356812765784029854556123502259796884624261413169189765030171998782155365862032080094155936389438924780243951817542628804526659846440598437581615812185839992971810687180337970536033309545955018161036459799795056053517211580991498121871359097913812781141993800426472902472513124335356483284748835248908264256173353099229777006591697597173803813016919674330436172717559041637925648449349707020679796384114656762184072922294941785647633778296193860890142149333889114998347053959694483755732211789209386313713408490555497035201252990840553651007533954631438641230747079273718361004629181216647991652461566776006239207207443627562442820262777667545770286027789811300468937526227756771093198947392675859368664298141656229929037854290920169292665400045007885525879605777653234245716766184808823811474245845840311985896628854198144240928201770002726888907659811199301673929280028286285204812014354658975358867846921682695599988375077274363986431005913157465783398984274495949016340684965359594496638834183402728555895216414918451820728203167885067833407651410137004399789242503171457707587694034078433268401981127469733177456960538407234960541625867182511067575465991067154846439385482236862190743708087324777316257731315711575091646392695956466156896548904793716594986064577878061121525955569395476451398072769402758027341740045173794059508583131316057472526580072871938928998208631529750131707850853876593367623884955891934565547027664368004126651348453848981323501000150292522920357073240320821355902886497823914362168039729890262076820099207530124432399782115467062920980538401129042161095608438651499724543248660239812750604156249909556567108081906910922551363245262438982829402515879432573080616371316542187473192847433402352288417818739984562459245535983441230446807890370509489581748577936150604964702342373156235045525330215077045862654171226530092137641785215584327836398062454945446199019856288302998842042911240384527505932086056700297370935157082001096625222950532202281601416006221338861124519327145636543050994625959468476689302828093209860307511166473722518162179902127373545931205902186016587616671532106586125377524080900427281888381864948192867186682653606211503478176716558154928706614610113201445645767961930694028288694542063462557547618064645675905935136622003886084336535623112221208782077425733371934150778781443862051820557447548969471021805348498727506333538157632017562755050192996312322648830552991182558400391598853597936381538785651735853868786518221544647022328218207121746872625591896449188984081358634935906121005171104210383791716555248404261412955224442546197255033141509482541155501552802590826475705099364145804930235653313627432568062251202308672350642814459580943608254003681595211888478196329819270834831185359101915899599213711099511088351371294308771348918299092773484627503304665570129589862744717830717444956146816801524851388244287343900654722348499683048487666103909955830878369982749758202333005109194643193387684806272904079015327374009519659666757872142975623853407312546159810521203872447155999721523320727153540252306446250209952440666509579295803010960267610950562774068583976782010890131591498377688306180033081769680853755607143381259823100749475292368354083601041049782782696449902863003271469599364960601059417010000840603729565432496054797696561627015019230339311128402467402688503506500167077423685533096576215670430303383294043490036038862652742273632246562311167461582240967931334202813943101152214726602836069060388300090974383708646964490434162089115480256758580177426343333330211889137046014211165211392835989887946786203947437161132643399706348183256806168036667324616412143802210610365204865866108301904037684733099577888503948505253421934086576796175323279446964106551730970038152475686258302097224230885016165439387020426969952493537457193882708840842735766735506535213793809972783562129364229520617440880041797060509118591594877926061903095963242633546354511285540582989056977040085446307736362029559305519382702207180631223052091594011734660174586737867773583848210864816115473617606507057845564889822371305504916253773387123623419351046311689642004690972497150726409825895302486847643820067501822401429424315044609616478808209273658158884981255182116822665377598461206442108169263855498716392174413348846628290991508061366201260115635100745721687726680163401979590687868154720672128275881348536331989608257717708208342795269629244978480676592845246096580827779160139894366064401757242021308790321072133377942893585414348723875035113585271214600477680037813724296922899028833020362821638893848042929796178198533661772369746192906309225980338682382776447923408588732507749008718527729779634722434280190297981525116640880590174476905133607052019566646898337678512085199800774545567407183404575925576780848920912290563003171794676651929103534162079718032852567988368191303511842952508975649483275296796623562449328765033771827154580807625245967650221668209309907762352743383617885323199206058379616650500354796302372660187964583790336246955732996603865301571578014914861036437656756362864939006401512934342200513097201956445628119128534292491506995226502239531751078136759317338823691711167587155473154765615137177791767340570358433925022131318920396044141081021951176164756312029857030290690937970067677831462845973448929799177923176284165337491637104025420456301068940087591962494138770527720064336202738534600226695547503010178007803126120306999294283279413201330052861133980379893275455319837229244217551608189397925330906947830696513784613933378311806312178674328371808048039031311746389885000884009633632623206475297841989480155249524598611076968817039984102447375857726653437206362910874047846396609996408701751229660480000549249045371118781188730375420218050717990715801174290768582145629697791626754429222461399554244093308636536605253495263295117104484073349961841713813403127670650613124374002478099804979967869424318449264368218929537258766930007314261373186792502768505330787643586816876964832894566053777960415753420368338797575835497318810229210037211068891993191777544203171539511894635302945044968406637377334324879919794431319190809044370402754769025598889597890999851253403903199358580675942039945996953862718140500719481847415658364136753845148492211570269881785106341228718088729466139910704536144203297285057711930682554629548866079534661208286188172332371257232690275762889616203669057232840303020882345428085199910139443631554873611902724645928336829554420377668073193821934355302163665533801494587394287978753189052327170616683675395800803852262787689099965352635841189174391209051937983669912681398775104292998366767387119102105673791190985521834388680480422201724184157204562859721371959473465436760265521749535646457280030791451401092973394494429262865432950935615402759652601570215690309695177722592347549477928480576355068088547542219914671037712157876235146882185653190238450698082506986771061600986935677886752389215290996332595986258000757420299373723385455699337844106975251221165435496537236444641041299938070077870529285096582636790035358316246215673535197027976876692644115957650034266765958498490966134482297448245268283311167844753100826809962442567561487309615409130084059240640822106631261681042260639696593333449678648649932968485066986665728292127312442585353334692214626177522409627793091148854448593442409207910560254449323054748027356718561674960042310340991931900571536229157922041612924491308053795012148053307435333434043723282065929377711091467361734000286438721688568066061055964289731659549947579695232676994381137075078712814644967524590852164635483907964093873841200109668940316121546914166517058035735139831136039312734704364071965388318631874034301518493390197338383652197730416142373932900507300985188187028019933303534476732429120484279647568835242097395253082618636096205045216565872599087220088408921895145091841137426593274467166313891889433060730135774188636831849330492501856408777776544908700871386908044162383215236110750415064631363081901213291091586324872116493329139159775440379386097453921228000374487700230190892229921040383214673620386796694071116038136343251818330047586880072468667836793590443175202153772205699303340569805482291477097252546086408234612064330527550650593346669401870018282457943615961406357650157299398150341403825576518133718992790728272186648853927279913746499363980760526899477367586197874391820279466081030354243365313282176706349197633937554911424883699146139469709943645352439254936432421488720682767044975847548645499820269115964786808728506015983493741010017571426750058805703045758770563369889872626143893637483198547693917559184998167535786669507419326507652883310984371091533741692355790210958172199591389062420458332078498402572666348846784851651293953618754363699845164789089797556011000218613913944013485005226329711088098516303137110060708266169252421060854651347155077895522960270405038675087315992581577626655082265755690907047440560921833660741238421519608605947657603258783816194212571130248400272949820958395797122466848597936647153683251650908934931038942441993913116287208583812903493758125688710694292603338634430594591617954601832978112655115454404864623707240311993709847122766578956943763841199775586469308338541101747853166622015281661951391947323862454940329625007835589985480156757454752720118377204267073799806161239601794486257210137223819978361249171553255289435290073265882990591651621662125175287932937972383791935471355550797850286138920119885612894669037050700133211732738182836545264972230425332267689341151863263529940202050562249268138626557234617804903297175498603183510038768113130154180778778427457442139927632590466778482300369966367690988017838975973463758279483855741440891905879416944754734297102035459818567747255975529618021355543543252219629354811329334799311154490759398745899651220570647436951333854691175524071856785034842842789211746017251365451618992880951687041629216565256755610730599675200295598856319817636195947276754079763186094058116080783368345321022329913501880009386884267205430712876387811205334209173692692099406011563067105495580656365717184229218627185469043939899530474208769655820509125924596901427584040783219556329416967786231452706442790591492808588117995520010443097346972396416684610484163169137059377182968683095675984326432450818429272405957684057784411694510532058308549193863296142060656092026615199431416962500908809293740271747803577100549800482058663324928498301986348296948984055666917779045065960152820251457884533375817094093218599347166841599917577735132464626078942568885493093962030937441404841857837213154246384561250356186862035432090194904276440397089726037169026701174942007558102728174301131516706920026652993367409510360375322950028288747885232761162677288255006367512277390231792425488040402149824491608541345698945727524721910614717091170227850121538013971066963061901710486868325289566128778749876087026561346442814191093302071078334116956673816443713951912104311658763627203010206784126368387226508813352861199771089911669596553375165783802466252775334942078779721299418174625991543277891267183569144490072425476752252536306784650466242865824166909633960978454944719045772172623425852728484467087527107066884874713547338775286991257141879192277029907756521942135274922908087533706290170515371121132529456332422641306933520695492098681038396605824653751102571967887022817827977264426034943830420857077796750328674006181361727405654186808246742217536675696199821803463926260174218659287809826726099900356371313902642186621733996024655507482528044089441286198093923736542361078630759078303071556893924043961281641495314129124411079549551618873345216659727401827299088455321411154597889033271399663992311218886010504653496316130139160732054727596384357766081382563936557254126777413488803158432969704356826860809130982254277486456557314895145396561805398587183295148046325165394981985219692971784461530827706444131229613217315958054088777155371305641452157465309728741603877623141777178885043430675397372126538504914155593879914301770822399266844410310110864910416967786663721216532366717554393939105434136893200653533685365160548781850424933338063514301044061747067765193597365867265357871942045621284275368014477038374289354938546050787819592950025501091745522938799826982983506311169361613711617385727260248065610612346424940095641235092910192721873659206351895296250446039062219089216812307317611734821576364404103816082433830698614015035182331225596313311763654399865743312481443621010382148472420864115608163054833087564478446634899095488344534285462979425343938870241045953852256922966232441527408298826123814907415404413853641186797246453120051672112637665649469020258309208754539932209579349092033509104204869688447941509761744197744906597774751756344536250269384507026008398330187533200502301865376014676783602265329309394636345754203836696729232125409229265126854748606121718320052942541338297054233310130825482300754026015923319765412350107581481215103331576549729447358560860158028690103483299880891893500744496351824101898731645209553959337918357585807884252414545719924291748634501856413710758896073499573107895134483050850304055728132592229923273785113629402591802496238153029353940621322885186483251911789924735131381702429094672883735724229098792084868665716111897054664019387549884604257941512745351978874336914638631952447068114160927310654937360299675647909453622348309870754728894017307156391672020056748638681979368251595204576675855781423742130152959320001617378092878131288422512055073760610597583317093802671417034073304527694346768496085184900763957666644105914769172636774807189711977674782354106753795633454654985082400241285990906159018296418978957535989100325197229035823009955476538103065868066839322023955040475182678461268105730258603987334234277805510459039483979523488364348072335334430937759198479822102626257649982903177500955037689869788491705391744940788846590738399692776498688269705349362929087778304237867477141709348355720796430229043724736079818386989849059009473608438335940222862139884775404945908518547879017633363995641984939916012883213163614957067224621348530553906156957292416069055026458865825005401592493225117867895191867768210935267772613329989660508086876122702013062241351454201523209073635784722949506465572573639308336029791672351982966404377155050624905369344765791973676175003736926501721954193909855316904412790550491521331029028177579019256921392034093173767003822021454577178030733936419143369659413525251070321049230528570274345767881608889427173454386381291636612781157032745540826456460198428892440033581074866664463124455429397361252514941264275498073654807561626935327762803401542223431791815898424035780322526718636464235292266086803637641371704181763104670491697358972154311791026633634740609563487353116155696832671474138943794525433017705403013811389270912254004671616379599510409910415866952979995465153674837987563979124128463612405186328160163022244193097589361956545324034782802694650462366255834405074572779761598476753182095402546212659724462428206929706332654827408955761100807071936808073678453958588740015689683297733529930426103441228447082137531919724246730329311527580726355215809332674676664018755193176388012499106986157387750916853290548542941907396118145444522207845747031732963412643996151453683812265241302847181725284257415026994598930806076195505046755316840772617395769500677813466619303427354142193878416339625432423296670175836371925776236259173528865983944845730628633496207421374590221957620233541463866558442400501541174510884670954068944898809128682762461169782985083323050392820766283147889751218810047169956397334311806676975536575986678796724991909261258396468425213989261446340175412240583886571090130873897494608870454023923431124105785326310584768619677714900842197752830148315720438324187533293270008585266602864824195640171665418849024284363591549257438183741256242458628709107179753987742045201786493878397088180078787593416244649090171063309960710398979206223407627577614456599832602938011816888727093548252438421650521022869004576050240325099929607192310384341798118387669547115407411669492345738984833914290248144749220027211977855553086591450903145449630336078484537168477983677868418840205656449861083701554729229606433318760364299926318962584801299860473609096216579227513436923749594140546985713988929428871389042779201097805051652206476462417324627698124990230681836045786847119653716142762381789281928739813940533582827056392445043164746172209295745101775292485223984878356450145595009204747637234186418371896356098491497826276841978383452005826607243768079548648387485692766403712315844152782248535109984411341280557974470226991326891837785815054177395539599503536673458836151219182101497496255780881216848696070069441588030160978339000128512974763988575261362068975830756503037475661901508798712406422755887618681526673890568019693011662101590178803750084133465205121998550327803011685048695894833308598857737170897859193887683961114910648571020275987529138945840748004775561974883973846848458328532352515252128219066519742473339932123932615576055927212927595763390377922121786734476933321969742938483039375059187469294790079334165923629650279947628125723147551658835638716637980725017376444935773994139501018434498740670182661046810997702022733624637949506382102398468869012580163519992202698440872482972819974669884948205427891742898019569522970577713681961607760441678567419666371454739508564164570005819032070067681018139067674238680776030827014921939022854742224911884615779037972248694757163040855477926741020496397023357722772722515071955823432185994949792270357365407523983047103464300938409758229920530485005067982402448674099859096470027154139240696612521682446338513597904632184861405306260534043238097930133546707214507382491631380842687581258437043920262923684079028365461107773320874153977601743545665867896614499254087075411058943783741411210760388186001615397494749465321775428037292236350581955676166764432072307074104438771992143909933707068685004464323758702236748316207617278058940926483438330101340856352989006143195788873720140437331841579728193238309834434933274008514884477634612097841404423660761099829785957831365093457561397435365636941009011568875558916103103137929403008223393111748625943193219675354456697547208244578777890729801771541172296250587943921332967191088532849800514540972584615973779528432431265647710535433076709488238674841984644446344102464781809216920421398111181512713571257203701501691231692226266225607159239006209706391557535900491817208806303869435045692856579758467296308272986463413635091770914530560311736117748682283788569179662354867202518561127483267505045827692255648973749780330364612768447814280901458788152291256489057889713189095998146323905251132880621383544111219924778815185585198639928069885530643112662460875514960129169385151124369893188293363798345235736882405480991502537957447684819015903566176416335818743499613246096692446760219565670932748251062614526310056746600975398280690542249296530452410369100068629934589999123289765843783188041692391083294688985933230037256459282315387224459686119080735608188259030405438173380064760097410609060614174708048948899748720170252134154173240641051238600722145018239845414940884253301292115739835396367051537877832368636665943884103572522707598190231903186778543634307762855102669571362879162467752416949749695361853132146670437779715082266007529143320574238096887103023796877731927794461694458371205638970123346726706160067530721747339268213399895610604987962366755855527825974663168225722087774864055570388994141763881139513244168042045684256513953540212313686895024387578740946224664542889860718548957527349059045768849373230836753868282026634347426411303863324895201779984764631106451468065800867042886016637224420340634007651994244098085933363824584730603368293191854182914406517357070711704819101630659565736548950552810361550647487445521709056487854488644747545074720312592108729308301418741533966277341388069448236359987666412719862744051268835978526413027676786098580359321896685478235177615321960784418552257906963305829418293766748554377521948541328425953706018981140577393227961867342396802378592424590506844703937776643922823750263391477525315022155414189145128694189287174077343116473997779756160088561221810162866420406816967254354845782657515186814352425928521232579926674502572233065010670191762352116485653264815454964330696161923141792543548215304129714787565008975432914010574803935604661124050659118957022425499455203541205620418213446354629882100657395331070515398059110947948920792220154031319456599342651622648690451014367450977529205455830617494021886746046060843901578916266842125230565247807043649515231460901976194871766974550447494295376966148525787874856123180627830249216406551502109131474327254968063530994360137591601883524502430125263333403049700819314640077726341322069280004265408414318356221217898438780834811128639358174980737247609779213693253234840442322220780693917209639148239399918248261531097107496653581338970843977709196145972356074903884809512105852878382393337799562359797303630137292361331632325875426801186579087513981636978159813692349283876500695697484457415210247922249882479162301742248417403428436522373918953021054422264287867486822902681974709955936294493650407885404335400122154927950352837961120262536627999171220734034155517093216355727732328167627871558126843468127816902112047814929931138881597750318925164569888822465361672140197913023674264025240938286972221778492078117467981313178456097009956638172922866619620058962811332051989651470817986119979526014022281290261249279562839535839817270834724073852001788435590483612171636368926754375388138720877236183947164728900252091850473769875224417010039631465239513208043454785374613914745186648445063903104559728834180721162415664969402184167268513306007687170258335094207254058451583290383432245404633477199455058849216755778182602554120505166915657745424056583875415021191443029396625975304625535991958923863117871100459386506845835213785786388197676163563745485091799687565142211498075630870727709300319656215867953381948880002428152153194895642560340728410227393361961658612984037966774591940347350513307883161694898743318574791938334994799392430719500976126930464649326445809972321439205371329266359229492062344362480534167579278537269006511688876893025236390597407194188014846204330821919717092819961971248281080784239501741424139201006827910765946439488435929611063576777841228174774993737077170321225442285861903540251598273508147831882936147021371491498310132388789426190774051831307776441867471083716811798921197882037944257651165501595052877254387059513053293130386727105461780539671782443767424901162552841983890370927628159042246958528098438862679407707957587448359009429155859349950241890217865005503612763499481199131291532894756020510611631580476469223409973700998974617510800003125570810848148450821387472374868437312125819274457480654869924131215252900434499824418017805622311380502658351226812539370191677323791903028853735409395516142675747159969647180435359129391261669272670441794880698308045514079622573535570728650881364445089616517410125349292614304278391000174820521960973023836327646399337761069890961944348151146204628747268227267199105437671816468894704055702875004507979642813374238851679738625050449241858033413728490394881304984335319017312271854363025782946613762767841836566109954778555410727475538702163334672558982272103924237297520109959913397451051774968586529378684987383586510170246585491235638212811417876714067643834248744195076739983567679285944466503120730341305500481422576904092846809048284659955544487953113045871643586473198221955305493092357870923578583058095807838184823765781577807832541212739457672041946905571500905417878688784469988663004365811438865506262148497535566717623308134837548404799009068591727782797017478849313578995356567913414978278481479369403832274844799360904905798628911305525954713374154735348147310563852686532703339054686562024378224752086263620924179492813627837878220645334642111492324888254848357116915312222613815699996410091006307237502048089083917204264410528588170632219160386809768045962007932084676195000373448430588929173713612214787446285253025171509471801935455067880968657338140752365246168054454271609003628810531463780157272483904603773061585460806841064356087306982276746643037161239809330262081780683841107533746593474352157541721585479159383372237315739039271140467196429911051557210901971870213095702999367634651275155172613404783361575575775939790826426652078916193138076923901021607866605179274816432842187695652548844827316380503868007745216602428614047487119122192169871970668399026606436152612537921517868654173788681091154364305696425711342045117359477960962045590075490388230063849294630099513960898558114740241011548517237748103329338631284474200757397130347595304718982412553421720013239237254991461478679497306103044513558843083245412155703392005704252005887032982317811446505574067401468348758270126917549761436672721647395910447498353461480543494352159355453836087222131623550817356054224716968116817782746136402815405995035547831585913169483558947433597955066466512580013335524893137846826030612535440429673659059722362373266898529498404271133800813314588876444641182964301323450721260344354755053336610369385911680857179981223994216307630249865418097872060615879611907743295054545265723528673698498378384213848353331689787997536338701886891926108224984437037107411682384935310791041961917869047377197982884952747927776939609694984364979858613444210719308123691259283427663145146574945754773657900277450496928057756953417480445467923710194707826090896102745205156947287622902228319647486610277933907978030129105779263977076328952062323723386801686668977882989147242131038244258650648043423528352211058792152431840604009877162463407942514016062156545772543931018703008261323611600913547708339503357347360689684849407242209474795642470485899332149598998505541989879439695171556725599652271775329188028902329538838613593216551651150690389755518612525139063339712526316909289265742831033003202503403023210116418086787172411843117602246766480786074121320947431500314670820629847659975192981630879896461017705009651674245016941678378115960254671089378555800419785138433565058629105092145283840859389287776867025269923385411139244248086612517490651697216731854494805971419267968208644357904222187934304806608927591379695993609639403864585472002480847272291524197137029732056291142892538665059603858480270746129997167362488322273696067384348087650598095897119842108918313615151013523033483269237045955749024439771845307239061051229060165037127878182829507415940111072838940954950834215593785329790457602631886250329245820610795654817714682427177696513934554020554583842372621650592797399134748134520454235147640415035578262542767486330722981496764301036645472542219523166374229436136769324459245560351274981724709303877240165272835288074150275738370399217258394905161701508318757747326806915615794679165799870519658244106047181037628492840496951895563366786238709085890848463430071656788586898568890682395631887895554305933868669334206282123660880705834761493729647320311390214764079387512959570204864755537599496734755359405077120304378900213673203075630357076332854184649591675410672234533627522853168248334018914682896306723022062924312794893117461127567036122195297332175781652998180492603507343140922097276299909827741107162526299678903934637289470053423231334436176723345828063453502529189616408191286792866767532479495183798793980257490700553603364957975816877445064046590745538360315250620308507458728347946920675717250128439395969704576517096256001342624766089866179113660963627383361788428455172068424620794285062710551548723910047521775369137976247796630420025305438691908916654645515425573179806573493272736816701284457444664936662936959787224125217545720064114700791671745449114783252240287222982141008514236074721838572140413985124173632348558231819958401283893342115629502168239924961196702777562477613592953908812272781603880527148755720952405298941071300382242411523065389350175259394268342220095615289631184406108030597346026936811851860643675215234364482312452537893195395558817962441999290763428824995262708708634757155334398630411051637147023717335045861002979741561413984035504079169721874183279657967053818409115019768782467276348621100453838746469180213609407635893933443274574728186810602265804061974187965782129887311729609317793712018709611941387885610817446638180180348995832044605323121743162043297096808138184356271906862910903642786972336152189780155518880519138327710750695117896137314773348510212563518216256523281479619410362646282846812247650876396420648473971588049157705152406329192114476182787706192148163264460704367140014998159783656053984731077229056586440435094703670942900215838084464228831791219014698809451070204117870863001772435201457301346969047448838612216419918140617161269542195224196941272707333330016876599093210891010705023784194945866007677100428762039044576546790388065369793475142971261306308235396511133593391410547305504570973215209195994457672042125137204190884368518042944398095049045770594481503629534331025041675886534662391992450736436758869160397107020232581269018995285211482373574690218162793528614485658017309336454370557834406059148829426961715125202109440330804284920161484271355909303703305757888378155035892306788889241940137289274719579320803573867551137629226334747708957433285881531905561601550598986677946002248592574672828733965669810534159201994915643910037570363540185126653227262770274079681579843919294965981622339908836710923444285378172101730011238558287708405910494469862849542165839899387466380298159488287101735574727796913244442334450944381781451340204502500917330950689749975035926250639675888707639771018462920930405565242554162506387928391831190492409878562094607427153373654190673896740185832712762678206747797189834151899084152496557598840546730760713428417792128714458795392731846684579433945963096967257019856985325871255899348391792433429535076482449170925563474602288646130128308009905722120745427774993155874013660759140079258960304942038758845301273615816660359661749279929267456502305782453641905606632446368353549115773701904576890249777080709532359708700730196768231504438634221634964840559470595469660117655642275102679252345732258777984473155795624207946873570376015504911792579015689349171470045187675285726617900282317973515328536123468701689887368940214199229719628597043786367852857324440630497816702856684201538245661780680766081032782136413737948210863317919450449064269510417944729197981541863469019040349298171058111154162907821498256889536265672350908530361434837448896609947697152346737294343452720476511058129469700788035001826180250686952474574263940273267684456525040885326829221724976012385221546346671307458377632908917604371069566789382186487266995140041166746204280542362403518926414777636541051955509761969019600983668289646784835035449844335672568862990242420432858002655916569202882308305781203501181605830804116764881355482926900060104027406821045498631392300870062224096837956187249400525593033420812358759719297264993048444616415197151764211726247681571501095838158516740754755291373986727435159740709948964844715468220530947906671045496165842447883359324892910564167639545247783823306426319263560060512921217934929009068486434613331212930088898598840913136021571650948757192845544211078252209465401620163094554408114352688157122317887442098042977184489823023942755252902939394261766273753149900233867650986682484268946433912798570177652149191855635754548282380000627393312546535823370797818636506067622595038571898049881944892443315474374203902469844014937953655406534922503607204894594830690650346988668604572175083129275903792180059178378076170246101001240453651458608556349684732748041745265338912735288553677477355935892060714549679268886947357231793627756600749865054899012393728675160501894832430460644894176746031897912385829129508125326632359195645139026011739879670506905175088364812245232362953907828825318009758967305717449992837344100143234601632466959564568570053355016687400266245441975698237939066572286021727556907290081825825686149902688499476598192870620405529867470896901786650710104201762483509506321729448480163240724463044239689562949716095566603497877891272033920096578594373943016470658398739906337081258282802753163409671320560179041890050367666371207820246494562783796124251379394183783148639285216419036621105556571145868983128629521609333245023820343743522866303714704685238754641469497017934441980789649695330811191779796898143913656739699578540382478069000431470584820697079726109187783253530367548580548755877181633621123948647770331367577525034116664414018543999486988377584293445071942722358645752061179556985225588920148155624607947860496650849717259911962354237255278231609975119644119545808831630616255337759602835202866835747897720872663280802900494479741337498038139807877848526556163457088252581842947120090209933052964306533180165436833023835592261034535030392622467825507132214960175920839268306417757318475620692158532119709667341214883899523134198534608188002800039650486282922512238880236200415020073625116881987294089832801244022319421157444215728378099960142013031767310080636329469091309747137236088993601656365029266791380721273631873891944893076776560352504897113835036701901364144213000172641957588228465396388084193364789944635329732512787111505756468779200599055436600545692642659125625185805711012093758080666711764434437663005084205338257360208844541830013175409815859820248018775046711203804092665735776837101885813231935051294945898228826714207415186323716820761236383063147862045470777843408577452533666314293681491506352390648283615215239151598028480544186180713454987152600813021414275109651548600103929457791526426092435967670053797287029683310711201646543956714466792350766877399338506390569517717594864047090463482443149535384471636686554051053964467063404379244413566640802131366736688926447107935586269527340227399823750389287230449293119464914942717302165548762324223779288755025410064123728656883063182780031692923520328855071295839131522093306274037822153660399300513039840860464970347299215550523637121181190023581804882067728159059766149328867142794850694381368062257476621671080527661277964945175739778829509426393569115135105158268460531926565357630253847336784311551069502196154529958147280524656411869198619268722377170077499426576262764427009548248003871616820261756619432281456985633008014789954127584808646827439284305505531200675221636828888314399180289966710528549298833969099597441660174571933789795413383710192560757037587174200259476161175488796431891201253213650692970414148208198359577676917811828854586939256807883692052390773556055670258692166242563739930430954777892867185896738928630412787895051624880746904975222214296245744004495780138813996611969545824504164362178054138227164790567594280842056830508354381665493575912221086031019947532013567140449123211019477474868962313839924904005173470124087610145779464185313000339461189506730069454919570684627040645943665329944756530839210679742000178637198014467375881573780555242018693637475861363248939844709361719313992862659725473161681161987798821860093061692746310716471159020518397065184817241809575625495762219605690476446790408052897509252999811199981694416998054933825685387273607590563742464638150904021362283032551512810032700211664147162559454567683555152277411233548872847179448168984939393091533335280039663267320562778020119450322174388639645640027229306923724407206909256539691832007425434481367217187639108571207418536791287804788336429632712982132369291682872056626740267873971832095185221596590425674468140993188579505684915525712297451315139898977453913028530494972827202072964361259359168696095216932615697829679023197532918996273469935273188552434840357922299212911272195764931018529706605692374065460270584922924230522888376950604132513006808254637208391667188982956677499087696922570880076547695277930155710190324161270848288819577609561528283037057959437168898851684188188977365790147610243959446269597896564728436840436644429746062600672943279802196671919512094207817372916256784600702892147345814599400102413122263682562570782918792421838739537288090188453177467058400311017974083020535198681989499981244062891555672395979997656710375272563484026000118191713340254473660897047065892998835478393869432542234586706314328478921238207011409991081632352114847783856923734814728192334119425253184417099787723136280922779214296277137143694028825595171721919441972353963447941451269093303599000944593890925959914474541876126628667313590740084632131091097402138108797541945932075727050602763386640439883279230907053117195989804918476834768732474389843077493322416305681696779805238042259759205257705488160210872005785869354161636748576488629815788959925866272410723384751720333420882524422306245731166799693159516142553450895711743860124639211541393990732696405768066741337930460305746041156680849101189097090199254410027586174670110373550993277844552125427641610476942012929502349935124695602941850543397783546276051904250797701059147015200098016488078499788248335739099146851683813956060208984771984926683533536182037038426262614448138544035282997673293419661526039374216038671464451052676830697661535197060436865667455841364632913829123047079685376192918795761620590025093106456724194160532909037867834345329566625629349649431319218664122156196740887507004489026083935852856785061491444619165573864428039516925761236484810636385241377619258128098512066888316717530731432739493198856166260142011916241641145281036179002286498140366451328456100464734651105546794674112006683599285885538156583673629501008227772008210683624776516415551438419994337128119543346184578896811297504536054131039313890693270707926509623803452057437677076283776073132977585676680157417925596023686119812618476602726514648186006121794312305687108396068916264026674261191833176645407484481260694675394704988230093293843429211438000415551731557239936349167712089591485731854127727280571945734267591629286290188298713567620508311021464120126576744960385750426742481380003427773578919979271362023034846214485255424574481431638605713404986287653653832858410548775935578293212418479502055531767370915505742068027554904892589951974853619120432903811127741786718318224735579563605051089465123196196781922217426061655213738942385579236347176739063467755569205475762551510132411364467563353413686854648165616766189002953095096693874281755550099487878874480943626122901606654794014146826346931897838540473181649294132302677669966029903818399377237227021536098973417941436191993984818935506347040175306083000774549017648493503410292371278098870726564615495689504933301627496968458317668375563178789439129063421774128287418670501676026866345294469208259203116065307017781283883063707855797730627741393191957618663513114370784979547842709219478605763343741043576819005226406720753141101830166108819293807567479359424221465036320208306453265708561993352587375842362595730359369572032830282982065434971181423959700922390227913118228585226713284370255730800854540238965689739141239888987736271986203652452347677291881420426028457298528883545394448931047044156828765536141179779024021106042696478299846685805298430052377325098394253825025625748396684020588808845317939434554117970375463705205980112748130102225084826594308504275941504438756332966308444537141163761738441670725423304648392569000250738727711569463687673171379738997515751074861251382969691983327780384751649531596110458402011868602700101437292445889801131468200592486589909050416109821613704790277975012061627899263742117622016266437901394721380596682338264954818389421604652462814970797089192721784200326831494559118321501937736948569845022963616673014087790692720604762175240436444323820751264465667280639204823234746988016556340402007244853634841011083683009069019505661898359466141442035563053522862665580956243612928500670392700382736152234137214591185225055259030141421740758050714249566923145049648956723876659933119229553931880072177632316442108267780638355974980082544612532755312932768890970277920550498380906752160464372646364791026590046755335880827902463311376694832682783526054932895123205241631863821757198144007428330944364086631635420732180783149138343614911262661572061470555877921502096041958362872696603746951302063401732509965324385693209141156152901200849577656131006620765747690453759697755821483008399128058534482844062755213271213048426397939188838081219303796646484521923565324766458887848715985228082132650569174475608156106925656352555168958626422100809079868695392072272047933422773146174181901467728146349262754357682064469667240940952958411760301710514954972395037890643241236384470182947033987140862902006625992126476785612080624266499774972528656153567228248242478516750528141997066234001580786105211537440269343935057410819052619996609185191269108352101203073632442615293652215300570023238365852470485817141665221390715048807630831736357942070991426888692568336068254659139471134840174835819254216521528533946123714974666567806053072156172746384547278856163834241112890225403649236876869167318466374272368316683697415417819552487431834358347178090544515067107205077117018505077209750979947284042419657701437664537449611611452653576816366333131057970883457777370499684148811503303531916772896527464897467917415487792397504642669791390422806713822378374184099460592472576313450807468233928571868719829258266151205249537218521818973841328379189055988211954484179904141673398511172817334367786990744546662602803610629138708387221685628982570175421745196634250156960733071672863057726267560720806339880378922872890002250053772121735212631304701582641172558944936874717612844454031786520325443039290721207490223686799125096496123031652918282366138425179484321067063000539782624316303298560089424965711921517290185771822591474410645445126380081976365587610589168075271429177308618192000561290653044140301885988137931352018585531236993753624956757314658499617362658765373911356848439071220181473082068977816156728299994898207926124357853162764114390608398999137853191149524797391168946803666027691347584893959232786871809497660316179798291504272993475914319361362527531787477872312754858592424552905828361937639539925821806239654084775771169091494220836062957065933641956514201134704515309847453514178041320787494236771485401633838705064268623595580698666841112799257120166017247481314690401697633873432826485902744489302646717969502735711543266772524434932745540348820296825504011156919763334978322739871121953010216467571334526292678563986055498783217592073674089813466366310383552716089668856887124044818111281042597732612859424850545526390036761655744803003704426379998478667128251102315967543848908816713305590900740145737450892788895650058529620435921223857193758294984444005109007272395439123038957019990088843876521954039621237736939089942930362388667052995264143741164333635584560773869517440441051476442823329415398029464344742677905789732301189195478347065110501216906776543133296390753706041031258829939535430854950394334713894472887887218496420654977954669719233012318102409397636729551715192921127848096047302299764713983734125860319819414147920928805494774747286313158292183187103382076505086985112689272892285600843360233156696974919980114706647952047277718281886224965450847023873063742411423796965133828594409431420000544852777175537395099060876596364377294144202543397920264174037554833511772550651953894723854409920244659011223486898718766747912440957987225006319924587955689319941947567860622751025358961381551269901811543106343573265134867674550468142322317140184627793319839329935730810928019209025682531028623978888221826892918168489965435533942296867832654264123126742946204554606318003658561631988597342730995254777800972690241548021161167822806774195034667161502243652455643752489776064955582145748654747394499087075332638622285266392756635298215562279213079604368422855995596257679242533585090572857545195012624385780905092303848883744401864204011147536036433822829913841450969681347419860001224839380784581415060854806202597280460512632325222075986858826967928102078483887387419740991965177710968602176005058163683885935161270449277160574797136057268292406716567299649743189205711800345153314031040759148277978657568245333715337005219162303745319895830001271675119445178496958522710977819449204268125906301656863328452283091196086122743994870026613971214681940119804797238162731876179800736482792422294748229865230833455061143533318162107090324661498376367725747124591531063462988146976225803193257061969513324590422036576462987725400408230409078277222645688126306137329209334574276128000258668536153927565256877346040302617416340642157523640444330078008260522101269671304690972621002018025614224329317307853909780081319481468372175805798646642857181170353955642254118334530513201131444308931305867224040901130933772746558497430012830132017473608344537565888241955277528445482239316376932096306629701112257315955053218114679154922487846732978994022662823543104366335051136729883939535164434333812178885171402011371729888025305595517334970820969360832221348034841111629667720457529808497964514895102614022631391847000047574050184638363913919880886296186964304776888957063938505629739056417562071175250075031934655382767332393832647544314666427336265838214869445327707741247426386902840641118283150526677278591291505206353374058520182744275846059682909543938801264461843810233991592679045103008848748070433750838163324870059765903517561503541913574719945435326949303341913859129812815610193524290730955066931405518120870129424184850518814248574943353156925630384817425872460271357281804879734868780072481234981831151468016021523211651306418805457335845027321123212274665520033139347239153383547319667336869798085888728253407227454315739704962795150566011146932895767690038878004520988057393245582873940358594906823683517708146996666842109700661811387330137170704933794275849367667025453864123105711895003291694400872583292034669985466636913012030871645297727362670659837704904985778376799737993932949524233588628384662294115891067683498582713258205677880466844042249550510856566060166543288146695813220347272000452417216622272723335503687917977732548637516091116805438898168360164605069738862370869297154362398323820978392371225317409479769795471464797690682684801076782565965555019014278823321064921288425502672497855698577671891619475775733971322722500385559063890482069900337487988654888985683419101146241216311736498317283677579189596590637339552699208816175563532633942906962294098645766513220828360014664382726601111918895203030010185091110963884576637290948354619388341741523763889827207320020208665593022161285830803064742593411160157606803439739366404611198035516809099810192872401068802669911766878635570486189383507241628234093137956524910290377973297623144113030963234277141406786617694959773106147893269952069216476648786674562416326064894304058891172045176123297227218697859681460418983132823181029253987921797859139019792149346250203738613969041799253510682816013555595852122090832874103620298388802498331570610340408788755477334113811978005917564281962731090869506746425998268338101136784697412648435887294936714107355773001614210049129898216365771235555780103603575221960600240950058603221860882557202407422439505175476851950050742614414950458820593834921603728625751607621724386623421169332139122662473112268998567434463835937271824409189902741927615119570068049782283776951702631457795761606180987469693348702684887127445143029062399751886519567036380174228088596316951505221007142678654635865981224302105969643288465465093235086043171329247042469036131332876731679131555066657000660410492536172832593214965210171532965638397054464472118735572220204138181616346891538638993554669934562400190045030134564942376720873280935339925062578893133082469676085803316731063576390983842759267222757159757591642754462965372337926375541712018006929857206615331560493326051428323329352051842327029068399991442976457923432688931355111449796874837158972746809826273731738146532986887074334428399632955192658568871821694879130854294703964478978783554338679015582188784289366113004597007853218492036464274745621420507400229575483306847235350185936182823246513062950937534494097328667396612308068332065574962961769296098409655695843495915275353696148911797947189346916399688115875402766502879290410831998150711140543150919535265486754071698056250774289651783722984164886361483015248805850998315783119314877700718702209148011542354510563151379030657380221574118049830909488747800261100673290299596756621661421174180393987549784850133911359528284181509758971355229915952001587840119187584379517856624226615047441987013727069704079410529029940293580031457358668481358124731408366034000946487491200668265433318891378761487663085769551024536174317638274751214694067751160888737329450941114804214373028351279238222633872041580975916899078425268629596476462124542445571274841106239988480418292083864298717786522234667045184234406759530031061978355776830079600191062693294640475306137330500076014495574333378433318612038245889973014368036798896633311434342738688181966690476764062972228794360205719479127608993337895067818044925030523919732623015120005685359650273532118462541467023792259268148988914281811288551510817041842739001992871668534359873262223597031089099381344066251925767740848390553519795427228524977733035475377608535869647834220144454198303728379831251666914329699866757686650981349858470138916963156035811136865186380457843029532942619398942742368948630270878345734194127884044965915162462578077880373391557497669218351623062257196606777983245004938702975116964326873136234982585486332342911185878499005914562698736962167144228770909537379133711376408051577751870977717319604076752076147622202209084154300318428930187799594720980442907758530785356846859018921230551633847215597734201206363763459565264725583967376459438251278078967198290589955630235595754837119206985978635217762819149918655734430525902266832652190463555079219800000954251658751513996181026287841539029337443592844589681757060490604100208810985263768163838146308391781520844556479170787754774803567847489660675735242002502841264119259621607805481139224121226711524756488782410548103739574401856682513586919691830748662832107928596647967214915584175024788041416540248893528238587474912430720538088640896187640287758961682729584473941174888284582443544152736461201761388958602290637296639436379916264864999744080466976242487248652981485592907692570228417806602805495288127507364313670193892490091424453728702319063313677775915748051068554746069358136198504493496311253595178358252607298114025473945073075055205479212037224483349748486724179864799988632341127852361834495251547144895035868738849356082181068963930239642502612745980682507343666853998186272614629156523398798683607392865424523429219198113535157264538978946872506473028257917551557918003980023506771221457464151441173632400810666260407680023488509817016503106389656209838451686101829054405779058895906918314474545647356419827621748264851471465208818766118341454545777558779128105943426696876648356201181427728214770399005889209865197156934457222305575160923474519063909178236183625539903605719477907147787419133698350449795244072695490210312332046975789083081451665929068460492353167457908148651721502356447433820810893370050966091426411391731224726618416756345240358665314887076989986163382820753525285058990366503314605581843104306285853846927212125530715117722612586270499314734931719789651640168234969692650843471092234616790035949890488983338971144939098686186104431395237231387771653794571649777083928333984382289220506846945679490432893097999548744972534790092681159430534194522111306501330920751842945777109927318229687023072278365569865811084688038946284742884254985474546514069107540117794119512402294539691706915987890395990900193940326977287178734670059254968653945147046493976092097313182649162730988244611024093155575583017698063950733831614789584037332742840625255308143467916465218527025001693065385150098907650846682136118919408967750757119492107831478985617744144191696867177153234368149881797452845096794278208792527276283501803483456232149148189288534065989944721515827814070411150583813101049727898552284651267184268247339553825937076674895901879398870369023705373045063487348164211163057757589364421221159217644469115100982973190188436243556651545132615945909004798382188272445599553072130945563391252578493532264054848205832251894763311327771958738341279240612887237811220430333956476171871310990346973493106785208667027788932581065235561527034374829529028297960689755109814266852993874790387891712221304485828288915435830697775933069558466565450745388817736032576307140172791745380374226433608480663791767061461943078025831329703383325653870535819156902865863197070362837315938352907311146067931471112166362078443521750701495999266504167684486199485922085023499809713107551259450550887192511090657022608276993999583995212142238978133666054105528605455811225366019470782243695861862062694939777125030742290940440302332354864062189620995017703343723605488821674303086174820161362592649103125416033010980392007925173623062364917315516281387137434022143481719084744569675851323520252161984119838480207304919875449520578791745955895329649080906961212261213253173549295690111605517413854674922935531844175830330361518823005099732902609112117678866339458235472344678216322702706929371099765032157061739406735886130387928166342193496120335917419979843024223874639063065542011038608566941030598391627136820867307360177342463431438381168077049300683046065697325171115239916126514606765282564432278021007735102836743777843351559358847945406212428091777876344013895434042079261064613366273741400211331608688048266807299172127498457707985370157119836045029930820782976392108969121177426110562022454824044042003595979990658012394275331386861871224855981792971821135398512322191354810138893506019367221469671275443940383714900381523885267063862916551205212077978446746746119855853121101010439103569073217682150356390443737135954483095933777813756525158017664102052851132319548322959632197771219706565112295077892057534122533399687003792957008615580665463496940851112170614784455317740140687270428770100793942620771777543745393329556631530987684845198699502452096866693626690537147501057528418713035222715704551045111342570202261584829470807823818873666531700016094881905572317260321796315345030146089364907565277928954540023339808313310277847911074928398925393435402610908418681818079109378096723879248047752471469140360171092455450444958902989431011971409559529578639784394986891911482480326727389123591771809904740761252678082625934203951477984037805348987933068922081316767503024804837584565036196251949092242978142243453246187818498462576285536360960995409825209858285512545779076412110354067484568026617552426708951710966639807858317647581850484134092170826010719188746694593121202848196826022586157472176548472215088181145706962186823982359205437818818409640306678860836736242629137305621997151719203883184514031521670186880380569683870165031835759137284392822603927475547793599230680479861725785104627635802520539518836699826140974378781419597837676292175201649724898609267010101519493745867694535524484655835738068804347351983981850168488632944325909681680389133705517678013889560564608141755610033887583135973955768369494307497146621495505369822653509328737257355209188277859966511814471702968797127889257312852592635105095060355983232722214607160856935104946668279198355813346189737174746870629222621904996291422289699535740518217975267552812715587915559586328769856238215053001567732641832427662022676172711120327014590592942739515265767709197132318039573428067822038618062446248271793332412739903730646903867707915152665330324754478165216822377400294434936280946415536143804710942861146571453486661182734985092856198292620929110404430715255398574917825751246527464615155577039140603041244156925733935853339234733209027714726578645838976420185611398720700089429384880691099581582476646228009782586940298254588113030944457193391350351481769209004434236169227004279063552127577211568959045890478147741071842074621988519831380116742848113835344054382713165857007770354779969982698205597143226651389352470955200813859307992796041641378564390254764471915600548275397920792664934569908947845376465278713968888121870932962259202879245203538972993216212224841161304900732300922965367795436878234086131649043181639195452962420943246966740275815779735086070975393830716524190034940840147837441092242869753084152149522239278773817189446553809562143607924592721480314262561787490132715146042992107228081417392818038100058626560358687446865763001338352306452958780283134405350398506879005665114979506147515218696676610528309530183410768273842134769648384454504424521321486791899355521831815334444320973752725786910102155520700842575699296266250850791772631136018966723946786031041818742060922439374905037975450919938029290446892830264729752712201395835393635707571032144236461007137157784011726909520640917327610526079514349935066422277634359783397243950416489230092789485495070139757722386971449402511358381762822767568558492626332469921113906372658489280411528294302184095370437614581415843793135056375893234318333956291468135163482974158318091249081373590856495157836400897221525332045069146882801327947021448529421867575039440523640447391580425003466004295544831804710935731699332953970927416740143567438021993677484250467692917068903606937895369355608312968805057376935102147934876794019843193988998588402890644126777584729199896906178924382413294806349245704399070062575208746011798442188573446797738191992231537379198372287274932533631541761676459587554791336689542129412665373926268100595346683539124263631376856725516848776035006020754369620723546291014383428929665582356107838508597172751981939628422382174158113754701786539342526404010473210210942037629656345881145701567212276022941457761563662096462439901986835755689069497955318044407549089354662470523782951743898363246120212673973352465341295963907254611034912263534957643464514915262541080492380237682326293727694325958079331450540636039306354341586351251322470202399662663044055768469021637680917321022852281323209670496973269776347657699631141078535061420401818460338941515610693276144970530351851638591802405934947182263271703295777094112848426039033985180206060099911376642806874834831253619235481880629447418118980551656548355469030653457838824022313216290917055931795512252341414871955730249017602491094237646122285990667702709202915725945565874973541688840144580512611619270658504810217182389194790467890366379127898510516878526071083149149972151383407100005063042546632702232644621640158156964256840596316278396943378532884827811315891915466509406367994948308035697655632050006651128503183517401897204007632237191228799301055910807560717730577459693927550122428927284932904830571388780924519971655758104510101395613909087243555935623025643686965278822758276061988033043478784995030883747707273301218666469983076376591334431132073289641284088698205951118607836538318896480357238621146049184135058232748698786180989936082807314634988714639989522812564162589776034059607420198951280247538875205075014480031898252415853569608571768202460507396753037617501466087195998486942576467592988399652629115058811008354998697180194056650622279610412782040432728241392965923469673776257232301357720691044907043453680266765761139130491190193581020960330125398703278452427763303253560018873258490408450417205153520554696010061775385363173766609880690027500319147208024670920678975984982673157784825157035471031545213286059049266875392508612435732051773028391795686554118120000275867530025680430278833253590023082954592671523333963221555084271347915295367870078536712679645460430641231151680427872173009881224600070507331662029403719470415229269576271451945048470702482746501792952917890895339949249803982867445345560883060696916361416253629253772926584286263334007806794090615984143953614585298787086734537976819639446853302827768871317109822620352682235440969261792370230758269758163728824932377280893096369849843174563270908665106276104730815105469473748852079086383883501876696455115790515547418987271708136379775479501212117173370525075811546842645217076788489081806939451766622462042359547190044653584824009422580113916654830024375228914820361335828861924154193398807923972930346011638800390643662417323446730487536914414911607186295686265124552069775624089066732022859218420563824993789445839010896982598395648307773764889130792259252450680878756858544966597330001193431752490369940217547233832819304194849387804374664258623892719419212538854003890755986415282292157170925076465427416175997989618805137328787483180686989706465408167448785734250485037071197695703740874731209125819899447483622238419396753975648487508242292328880263924720470426343710480719248650310992996577612813371323427905298052922149674489120298016441072285387992880075015556320090189020591728984828214553798547063133349075217683904843793595241347584216187215868041798474695689411306608072871621046997347206270845517226294883977922851281317677278338406024007605270998850073413993463814801987661809669022574761084030022751713770649982161835683642133106028311556401609126387393926583392075992891370261326109821045855825957175031251741417314578393021041223727054720423644427826674272026241539600728155314523931441733386782951495029497468021803661717207895895621033965089205742060249288698236225792620206090678556905568935843757636328013146922839515415933754938537006989712862578115820165849256855892094789021487089782063775909421804521069134392690014512971084878355679121441439493062896014184686976533107305918264904789405981724303581280672807771251335282156681240221371317092111442835324248939295812667620927577352442072693437041950153951671934089778334896761830805096104022962150081229106815969227751297745467964976708107918752012778139106260570959944082795360396968607196855408978590276346730969195621084415091486323709940866207422270878642428248768703099900584758870373777388093237898904507067104291010237061900289984951348420065052598252295298632294067044571684872819712583337874963307855668840406048482364434448209846040982041677434445415545685056119299028854904560331675679939307404611723386807401882599565021967911471836095483394622678935474991119351574573346133785852901741811172641044007276466738359278802126980545272667948327339394673119435130217492450696389138989335391449855429086608304971980415733129732883695044715117710610299048305290848456071047392181421231612151978611215453350746672003903714220231313359491842867538345330484465652551447341283911798329769238469247183416336188958434883544671241978431370070150545646680546546272213384901786576271600117151646303591775945425587571445672110514274063710961224120541426517557245971449361830599442041655010105841237709724650777734588733256369448004452937145527456844852694159475388084860768915325910443072665228595364315226108549335536777893797402553097945749487373385043957209251733251410028499095159408752221174610227691531382379023066580713347763007138954056576198037828005592618053970405947331679941728420767643742966110628749963601756368581194141712435400086334100677346769214161901862032838852512120012918767534041378038052731287501375234916737565223823231988506975720013101320846437406601225781325021631444318816323798893487306621897154835443211091418258704820377500981728400962403679782549296161514698170705504101669602137561538941775414752573948537819641199206475683849173622196723950914444508381122616450646607607107618570420912869200383514109709598484089653303034734204827620199299391349443445594815388579806611403359995051884190235199714232860545954492123587812113458144380172414953567651850567807969532776274680103762908635783865016970555424422762879142009289980791036613575605285579844382127767206272830296855772725612113531957172198439886252310256574288090630811059681501648680074559983010633938540774682541633012548327265774636487337551684592201313920284638263163827755719632163411620715418999407788969706072835711574370647428178858720701824631325333301928185236030750963912086669913824623659176539326710719453565840860755386156540629544545428952396578220100865954867563034714657947283877756743809891062664736947420302469461714869777250072334738221140982589476419405799724591079597946248246381164203513382730314092627267561340693458899799516623263163788638929333607295022065867158098427056827497672780795531368652301094675291432282347409863756155496167243392534818122658390603866114198701255837321860323722438757307689068761097267305479148828354234681399676104058365974283935793693204682173140676833229374938508053513079345582685236598835968267176829051980578001003071838838211268016226802447575996912362569773647474373049479826240269029294489807107994530205913368260653997447480484679574409053757545094120260667471017547064639303809009680288655001480550421119644377622734459515197135194459353390467979876794215781315839005006370233295903421791087180732539400454041391880082269848828391559973864826865154117132976546128558737245843379376484708429722638467044451705054418518462900249348548484505588378010347955229666277311820599578432918455120007418349565428944378760101642286178596419645406941840395642925609336134860321673132736231531285867920459102883609062533723062084075960400178378723726821043733713917712526947333477332550269823455132113551960626362756595368718917861825635723219875487941784344953510494815050892533648041886928545333570198818022616057255193918876222031826306245169485219479098679530965388488257863536391716919734902583335562621538326061616382103790807727022100172024793273085574556146222315572818601904279741092643335419031049453184866718622280956033944671845182149767637919400264676280092899019150754676747506033999967588234558440407580349508701126442575376772857443082860433500034339830904131222061034133413394239013617410197432986540250125243697044478939184725373768052453350393359619999150277954393316419296359988798956203086459785039000960132455938800898913247740499489031312341687451779125236441619097649622184319060923652352140987025530167252681695457678129162378606025934836279416310582540371358453708550075922818894439880402310334812124704256297380742496878896749281261791649116261677029212414953996124847158788212806116589994944274597394093046315625655526837505931379577592895782120630273903623855757167363550013772089317686063123833391653492713373521254037992034472297054155862957799276114678656489193044268298263511044397873843229091321458414388627994918826727851140173722878352486030743575621144338619141020065928024176771649891634215645642247638683345462827861612558105517135402209259367756978803323952609193109369655627620825066109917009705403816640383203996544186749127072380144689970033444356857884037194872588483264200125135181432435044222155899568735843617883599698419411887028606212879286648687888817627928031739663620272251351876583004586820118273487073361086932279665019828371013195204929756852072149281977536144963194302494902688354100777885695625052534033728270366329004401265509935595082831150947549539867575115226384999129057611544929355065720175313124052268419722583446787054321479595326912018069899912646893698307914021009255362260962287212632469908805006617770755080620324763991046838708658409371008783804552015409919431795148045947774247434752283069038062197556403301075744002479336428810211365737766932791285271607470826959953825005467799424446635543432316634851094604063904289219154349319949607783979222301262395331947866746341448076368086647253938091530356541037385402220242535643591189166810912041702422220009270843336312066672156656709989047915714451882765786978432602617272502276644446061898891930836738599745909381223457759114567124773544695763190797925583327318751816671552866174178770796669496586366267595883866469043822882770696780818108654405679511529539794294010649234369452751656782178361659607398458399830713544363480164415582877058924850026140310918103922681344814597555838004404510811089715199057745651491101235643209281530086360568073822502706438915374362799773457472534211109233937279512398208856736478874144403704548557114770389486009882926246278980905568625134145757930699058267344010880987144297936616420967067574707660008192892507411059450534847681074330175498747001275251560349311258678934117179161176556261236033728902654524260060423591076731764635647382798110853219370130441857037238897408177784619807523894466325093201217598122720160314714671193906831550815300929127399871207413700960976047405659866826215603742775693933717837731048168753251570227216512611166350750693573580875758439645808064713037031924364542743490711477103938580711724121940959632977785390642796176653226560368119573599695068756334046378750081833529026689528404470406447887239515518157701429923975181122103272552526616958730472769464385809325890149423412158163838414111534190209566507125013297941820198738398227420069941014065700491273210620645533687503075028543451922430731374500561734873506131438025306238823742673432107788768476800561050831189553853378295795095582927895341968954087906054776418260414853735083311781795857187212607544215674570071170906988775574460123807202715060130728766919129690086135035322290586323070984919654994961854929010435229785993906758033620493844528799799418515787985055470695548199293329152735133228426073706817696264646256338700741049959572457083969452405255613672864629707929635865941587142379995813202591723908371005897241278336013418215613326775432548275873273529104558158875745401698368235888515806458866331828772913924630387715079233608012389748220725291178487643074831295430233491589384701372618875274888747986447980388749002579164626147888828865361592490329442423501670034163929153341169058543769483094349955989554937350103917835309890924628007328146420972106919485912095229977920761366275880072937319221231871875256871787943869368992941297386759588477677346733611215642461084886767777074420113345938794051051189158613618493993933146963183766270700389259737653610278839232952277851754234056482856617958574213929462698261323725200986911110818755063845993906593940863981581327166498598586730128677593707624619994698351282396625266506030060425767166613809371110265664816507160749291199811356688619456091385733415553010502515127377585251422042378398973850969143533435040832860234891054837802983824474376180893299843649589409851404672608745904217998665657163410561913454728239639192632490821239154049411334911229913030628314786157786323028018785402825054393791214647097113636793730700360243942184271055962878744148664211976030038931107684815171377967552557812365472817883237207120340683309880424925632093683488120182218641883328518894722834816892549226397966820192825933998147683915660740313405049008340796019911827141265649930326261662218703579675572187010415712681815520903367389983160189272450088868874733126006566328647019470486852156399624140751256340669080135461826755225690987420728590652614342464151197255197572457433000831703179458892856735391328132704061261593295620333345897720606485272482524416534612668537973196894369240489937550566568075384843013187247796044817768536571680142911310852525332508847276603799552045702719883556696965597160890061506858335825070080259589057013656394110542971084314449595610891012114612556031513102855061765784528160959829105726403794563680347504575367865973779090608902208110799589579622116008949725892698208476294912412103138306665862719490940914734554216371072560910581148289790903240933515031167575528839913683618345717401121580495419348456235592596094126452770882213285607563807754960200693780742943517471766846858627140717227658380624907749360091601855306463341257891933667464570767264496101177983038380081365279368892446693400738492720756645670039656381195989927844156018615250639191772958930562044274877995831864672082333011994216465676901835763199797714028308211609579704557119563933673753796725168771690775422475702804499697231079387567205632765916759429289136805396656737865551161321208558067006138036232792216127846410595881093753391642639538253365469997999427680694449385587259155509124056235437317381725051322929167391647476515903846819573707899806054021283412677152317912614624212879341493238428425816642211429099577491768173796174545940300199460014289615386993427415670983970499132341365204718034675430488498526515370572704196080056570287412073330222721807278528687882154957329704226674919570290094014757685409967100213814081967657293676262567966796941338402883350588258774724882723960700569722423962236239273817083318166113479847695689696824244642132899212443602106945025878317034516539365199154771219019649105691912883885728834490388549244319971761246539958780019326856140613830374808381819212446095996513356375423375393354009447280530913514306168581472782909118128805399239367110325791804527093135124650613431652643423847254984915737161872327155704635191483621662795677934948499589346046067495971259269808619131403102628518555092637085213621880300845479202299080298540925230889065856969432283455643733578313025724104687891042732373195370679861550912390754846716364530341209732264304251615481700276582120639328207399061843385101467227304638353194507577569594499728269268925257753365832171196450878594431981496159347574660958318748286125316966866045684759869596490700060104009708578292713148100006151496208070822259488525736867661236482479484892739901539775590304627803205956232433333467121188524214393594076050609797748183492903216130139660246839600833179265452923373514002967320552514872733835421014628145695486349895872059547793673888159928361305067269538593694621471600463297339155076511500782384043920133490263371458374096970502577936055498061224672395652458724974550183097061710444116406318662391490483274703020521751045275495604786126193214856246853020853983472948697114694864365074461011779382336554140111518688678444695343012817889991504669031072176839727434933757193577120452136930925790324070133979453593481578342962603169130394648809846393219563328902668471446096538212161753686134556683144279431157571534919432085878062133122678382096269196094874233803879320024241478274610474685862851419822419661067098223048923193564965078336714620192868668778335125638394344758225374954740950861608869812109056086353598685713607350241014238882476760804083308356665670152079196976786080749750585636193820037039190901654974600306173497186761914689249573458995217361284713426933934397499599344068425701311727980438845858237853482542882461835167218357518397864739304748056732297453920771101088462384203941628197881081444807274249574422280075941486567892550027098160245858673807338172523468137424572088597283109825024449964344107595360933491042097751632469228250391110933163466024409684791433516247148842849134966403825520675320775025508471252338514061545101606185022190124491237345294845357774784896622352768034464579252659804053458992064677979305035145846966068504350794532390761116490241956706140998535155367645099983994934040431849076741432937487660880527006828842830853069026562674555361702022214329282586753599614009901160883898091786901595969492300930017363541779870709556000248649218782682718361081024142361106785902915484165995269673896390240275407011216923270444549406522267208729766529024265806000493577073123433545460559089405149470559750365711738748939462156095832178411103876291189380083550070582639960049266209585038382707480781627103543005288690272306376737999336154821423674044046160646089351494654282742281553244220412915782498712418838799901676593161275521945318093757389105223459903509461388194056603804714217281971794078235566921127836523900064118047803575973704555282073597701892364069012726689146231341698952514015905212314641409600691367586937316933385407127189192347286020108399361169107817938446803392736977962738586583965973751305186615434548765626043352367826286844475530864244898750214767935825866533376130788662627242392629074582868160502322188633918253145227831666026049286586556937397947226904832126032624754799704315450945272865404678111828176639508683084464833437405207086276347885167055865351743807538040430955368939578071579310557591418899146704283864796967977542506121569434556004030080073576694164876098736417379856295227316999042258582014082611266679085225149859477925644795030818701144573702259674326741775549131063048738705547119491163094657494758447745868105061316178816647840109950127146608389566134045278701842366684078582511777358076317575222445876329457186616265125429242031683532839853391965913218253403672738182094475838547622714528198127195704096249176532067577267410419166719857342860026915362686905300823827293961405012538440543640701226659520066723651075252491531421581105044643883969662972261197622146575031859766234396048699862585732389355153138375066860079213736714217827571940617981318181524390816951167668827547642350087974181945649585410519189116604121580638616457010424412646688238748402307381094049956749169346176354941289400911882701917903675638302801323432668109442108531038857770572833337949597778224640951889272076655104394042293969986142861354621877208270233530494954738638025981267987362992532113958332298364020480244268381281166608961609694976915755868421195453553981120656059718115952339181082464808923788898677945233486125607590843202539580852977073170418951219971981637594410526038110292875942550567284507635243588748738546693257110741507432188577292475606471717155236738030373624284297126191132620591704972471086178145467666844218317442151447487005036280307053848786001707119478761326970953524129148934158303363566189529036342367258918780777474241888608078401272587154977165214224409138456615254455119004439226707724986809504960735848219922700871487772090734960527553312258810639773275465811544076473501403825144095772126344394303219496536754451179654617840231873745730685800924391502350018551459729177428861635894081649069067629753816016725810082989180951289962652632097650253267554928755100980484636223700194602591984473978822233795678111539511753213140101459423458778667955116684702932970406657742548223429880481097795032551830715220546161504874317334739297563852934590386828293841184320629822951678987050305419097982634535103561491458232972980518166870056796067900552533032478272749929794860615000933930040279995508301692348175956478809709907060037831609260714454788601643632812236154615558408759343546192867317261155996170270920543534989357104527722841572351615732727909400560174996318736468574024370497559259221971376804285071956006815039395904955073134234383608652788604206840503864572767016996109793598511221902650633019645289491237125024123983720792241231735139429124301972031814284575882480902873864602810160735253273908779565712042353632479784527471037896067605323024385076062520734589914616867050811083733781682201617271182961646781344022618577965992193075870248085912892069894955238528836455357507685798701776254277919933746082895068735684498779999944142724440877718538162468227431118151926876737155338215724345608055109654629920769345211453518326212137479581741523678441558192550518586545889070395689137743524193892122892285929987044962179133780217636361314037252207870780389914096853939602589208501272316098900725798288863402901434637662613614495452119243645320191112035385255765500159838195919714905941685611851859958180584282910299555391022024819669937089246805470344481608769920817447567183018958273477794820256400533624510012449377872730294407701224586785533236203866554578152008316623654573158237123698903554832045505197630499203334218027840118593638876562338368143367104072395198081952859212863317774280768016353955518870377592981122608716203846326375321042079181499031370797195857568250148365598147721180571508074087284254032985984114477587646367222472994465374414155031309440564199410032851371353298839354230481543792526314263108111637243505045062535024717506402116091209655055379538303099449424233380943945218789461616812186268076378386038674260801186996388227117523824839205085464601619579427633213604268192121131206295746768211289837085250512578237886336151728669090039761026150366779270962941930239867113676732285734728409909225736999299927753816453659713050803524269768063222293947222152211266627725049726363020451757605654099551125309665883158337878301223206483767054200263806371174783115800451031989712869795155735600447712947841906262967788295002534990118596136298901608145978497941261511450631533827590615303795100910153362685003322380133811114128411794230686760503698288906310334625554743957622417392221702539981556640025171002348270289632217384103463543671548456115479190938782883613786698485498211005509636775665015410075884693638353012256259143831447520595772912798552986243566160506675462320246983664361524623835919064473999010877460325660502249993651569683711650555289759051126387951361827499978686024639291771523666387647925031459253500041058647223172460210839662936441792995785733945166216339672171245836334744730659666221596244069467499756499099630259214193482315103739383956219271337916708625273211026491762303430935769286677770359682564895200365587748510278262119190067891173037261350570481311665470713727178142790910986862045082771143879964888835779364019118910011998504508399707577950361808541024654486662391801753744713258157120502837351641423906857143351427960537116506951527335670693901522075485773857879429267107708818277373389203236228786986892662214573210145672877646102112147891180652867480995776785918572495011948725945069613161189915725783653988038388838655879070018577736657603907241830631180342719067298175657382143715154377117443768706185992083633111646026232090515561016218398105988307680263925658875385652302593014599763803901206399873986397887196161695591561615070505444804541083258427753985496587516000507647998341776763404030521876299981110735676573926609922767329638889223835287269627656535135643570745390695968734771606887230815232726343944717067840257484328455640816471299839801008243846715798594841063162289577240768045169673012628302534976167029976581977167250697089150744248541007205170384879625938720781957789297393071862993551929572294589759265753588379786509595933189925474814451525000656906259237120159293942326736494995972418615005032706516706700186110793711014264035444073833564632604407224521332244626958781095234657843449362418836641230321550324225689894411376074697206031358755886645771960110279351516164993247632537116317753821931458172261612677161709166271643809000445057514812315851498255796004023625980291430854395049451034519406565506654093063785773218742978312443230696681180297019025995613146807170060943400924581946041144181897696646005768189729168807973587380863117447029946278976811807102712573627687197370669123304790203724557956497201625589684055190481017282237855094565192250256128133937948663985490206882879781784389130895103671951478691442812637981384205274289950115487038122344984720626949130719081076220393838622206583641149391779538589550294974931281086501427789686538759689252579501193295756231086100142311784386429455734978110425801693174975221919223188339593526525716216318628699101334594731688418221081469149781905473354778694566922330198131151970301713856733072908273410522112231992626762526799031894100814131590622377921786988150015534430068978255151998012292413474544968408721773691452682307808296773968316900886379675734273764934306326942547740983240654309976352078558261493736550870185150201612556647560074071354562429860276743207636426149814280949732023933257233929541810246675240503111827042249397164158039723493380789410647286572232616608701828884511056663195989068692475014936437021630192136845290639339881772301556079258435722190207523516026667410593956229019422062249981301548543907763978089193159732341063910993521105742243348880082696789130611557059626973483678355626003270103905663735045229916242258401363746928150645573955200169070087530934373497955481968796866776784563431727441336789752667723298516520812904660007286321446814519830717179492251456155399238751900184073243410196963276141598456274460135969183312807854806643043103085472578170679426855290923184903596245745587151701195575308438384187102416985773440128403528188653309311669653139140365018974252137526592911613378920785569501462507052878780860577933547598730732120301137396787238337394691096485889748985897287556312465862673796530645138639896538019533914014701300273588562198137441037275165945335614992419970099094885409265173374660909985725445854714402237338269782927413036602145709738003359922846620083511185548770917529361061417865907252210818209796512955786680002288249620442920268483052939952395212578262040170705876371875791967256230496677847670741519398505537489039863636638045804619248382505734372143690309325284556502985531803106945369747324322009082174460739541137796306430229453831011026619252884325015238584499548551435970609221742406221792800511520637537730057737864370356932644973149289594813892793773778638706470751529885044805342718743891755540706296478281972702693243364960486092050353667661742542579232267208787006281153233736233376695562464638412196152967159382517662266821793251196877362098301842001508627202751291105234776706933733607271358375572927325553732308085112671490872107284910640723958616442584451529883106555415211326757667617121151587858221629969869935071528697832838472150134912846738642681788455562057660346373479820995731363090776259368611684151614248859332970781966962179436613153745862512165626378047717851538416843577319885775993927339698694314569940250120593171072697952181295553902575354110957637032160039885974521693975478772310370604829689321458764134627951732055324693497367414526460894798506822835570211718414454722035033812868197212485074696054783319280296459429563836212644685566070084445220635098875341422893850105221120054406009964302472141631612048334304433482611402390423029712834731651025136609073319266297849856551477483583409078219230573283859101946109791793858196422475580612188163157949004452813536708766099905009188514157505659933227557925864127973241200159495990227805463735449142631785466586970623621226155601158102739802060587691176109050061212361585685301319736515933996031585573078803110738466818035101104219422265819428989855014907749856529623665234875414051096861131817910371091017841989173420527782340161282017794920733184317374495013465001384227855199161191360624970749609134223647205905829907657707597646422991867630333145815686542479679408519123029650778207150732115156809046830565415759576092053448284441698562274422576384523324277819305387104030062941550744827830025182662801556357303685275647982073806744779849313766930474680797330256894824621870825231570013828938057164735418881846072898716344662532323668719502700521054431496888455599317373711715904943598950204606413921243188513107683210733511302163756429711949035756981690885288972176465247369978271353035132969765922015474782554617927959999596829341511218178586477940400414594333401059636146538125967946406065123833363306910869955806678374724741021323243910897901539176259191255190833587804150706656615547610651918502948113239268484751893882908709658904107881543971280320487798724334905611314922241285812282386459407102075511361432911724627418698662500555415409209782172099280267279575088659613294545626887695962740004092136497284830825728972043472635443436497593035108539153562178759625264678605013517300773659980887079912056744358649849615752893573429563832719427659478339713061679960504480383077501255108636162046392536756117079680473423054810652879106495273044591885216939553175575158895469842139449876797953915520270566267792173549065295496806624923817056598169981018629697370698279037994528578422446134376889949876791540452929069355304671373909063260833106695465374770887337015149604878015520224662192648878266572066424868118417316662069806204855900669214458010802523456287544269391257201800447781951498796610862651928768651757948273834034821800015217985952638663105121487195598031158277861598645866850743134338070317887797713838924498757351890965301411527989033350722808235747163229468773451057427695608510757018643585043073675584719711115545177092079039352552765935482379184805227678596466529362984988695411421375870235120790321945658906986607483965105923701958019084716137603994264287476685475731509713148035337402521021907049868124182826957830501075910058353273477416026622920105739623793020871345991668078144084017271847703723367233244608050534535692271276871226117903077570504186585184751208782685464307783879319874606165023005254715122997027178205760646912974050138213087635717636337584006467063964707879684739061403894725321703962835678912753638504629531687574599625894433851443890322794318699447042495271326801905926255874179205217638459886287745055910008766149436932934820104232494219497046156647467297185715657262219865823501056800961826395235975888662430783062746536274415814439199516316952493659351684953682929716364131260967856859416700214333759610665075775725075360791205036749800294405516580830547272974549958329079764556470773423563791725671330046047916968816392615482714754416617797696479068764016045023596349950053923727857644428610857705788759802230017783391440817731387938910237882569461810904642716428154405567728316674571830202497364725236711952496860683024625367546473763487976652431689640506945761937885570595405571726926024084444658345204688325915661655730595021642847332294212469630084112843643110577914827013449960989157127384936977977535456670346572009410072983719560956751555919978918006807890203205925382575217287136886937473826429389612204406192364994046384094097855467042504227721336771055270997627509769831459061792632060202596848741693303430987707361948941793479482613361009247738923753354137172119564437510901488420581264252953596293129142094981416876431493756341891927160518821564854469536713859504792891615157949114995903941829411665554473703076473908547920420818925899140151864054828964448536757186563625507278320125263428132170485004688679932992786008909475275423707524948079049642120212260986302697545401236379089444696350714408700872136122635744078478379346627347894506246485157143362597327933441752636901622714889784762196393266825042075444517728719755049684096562358304729994974993887510686023117980812136611974794136237505507464066677259108458612903278468766162470571048269271749176318200942118417363963799128359888056451017498604806790443436757540900373518032593578853889358700960676805643237328362172221954980996109092694388703671554505660849407586500128792925230411086974673918645033830012432802778197810720644901924514481343726191126426074711998901425029262675131965555696603973027072751725353556942396179226904913486689938331536081734536701603724039798314600408920458803605910338207308918761839480994672927012306269762849018169719118478246455454708588620384869594283104720049012466758493444506819996166197584828230300767068121461604909477587850782088364805834141358796873174532714368813863780932580619207384382066548918455770257805979505381623128602839756764367464862077502775141373243134716985153570522177913893124060941392996545660504997565885107924107411664260968937577709946356567358850285845309838840121201311446702758579965188736771322187972615609270396863952171219329475014362855649930410565030611374673575507293043212386979596582346488973923166554484825520779724519917604549407067968058646287741144484954168793635122864655497801460649479697761378579598667690862838677782812826505507226218917365806083665374823726353973452140951530506196173010477496487980835276281667726665378563447451073724404731412026119543844123071356886730725428873325210528272740766963738806990323481295967944554255786746640271615307173440339400071686392077110070192531338098428066484999718315333733111589592493432499257450064565983535763881021557580386103912173127648023111792033671865795505812567785595648237657042923267569010434730566639778527503003936496985612185068028354776302516443859873371008677306755327475766676098704530570155535678648207395436431033781133083949190672664308758259771204384783961042153331140137583244077098248658265796177652506701668217317964697440595977246471636255526646326912357335891404234190028176519817065103763364948712003738813724185657631712483079621728821912427805432678515226416503521577608427361368025067697588446156990455148929787349783452450028880944435949507498600276764738210301543259879608612809028396414674892228865793616451962717461254201590568683331392582679684151344341284694729481657799730068133766970595326237627566402973235243641810407471773686070842448743509276736027318392352307637603993402276672943493134692176997098311506455246868653170059429936199048127423747724012947448110807009698441147845285090940283926239210432744484050195020589921060847198989507888122568611317496825334450813568873995476725729238901195352722799125779564581450900342463325485684938921023990985658030739248621847313557253035529371903274431304211495696914185892528335125660100928937089775438102223710762756567899943133896954448584457838301200267239995765921371430093247750084684204304551066505552026399036644996643820396483606432302520748190920921647533508474525767500559266291682145725731688477560265290713893758234471397925639880423533583225211106124641926861861618198221192183755448198696556857347350586575400368551583270768081331529791970292263729639164752960759245060786150873045111210640629749476062314215056929213509716970578935223062823102229150746645541534286054884108251113651562851189847986848053569827373709518872872483958532718033606780179371627194386207232550288933505771242243741098271299126127467651616952375529578601745363439483476412967258590680025800690499694688448019843363685057223204936064328628273785081323120223357883631140133841057331491024836765700833617195701301970060901759926603575189661944912040251161601863110787806945563515459098005735412971247940511527483427443354598597393692654662449223093209409813742016102042619656529473916424995182881566629037125022607401391620913078637429378693524729121110710650188885620233347603293908207913355337978080761981297424576879776375209467223552202638955175107997934624379955291659528751072577073968451829936586043308954628272179000236807197512181092702955982884729596116737297899492748427436048206391230349768835197261788803095897356236908849889001210769195670917351493315482596855066696119251692662630566104434333465823429528340184852392494279577630930313173056882294452076477203126327966444023361361439208799958932422629059551751502294302233575463453647955955918342172143650522488589304411980285985910371184183796604357176867703218304983014481283460931852018280041747231195325120574168066701971032577621379836799173012296835186954061634959760828820648654690528602120196188617531110399474948627599030265720753204416220117410579573690323322337020974013704506488692274917333806019569234501392376831464941604619732125087200380194361987602327698152761206705564971002917755808868487180743575150094897415480248603799019419989123494771467683925990939966026417770195764036632302545175166213274578358832917618371936511015403238957674612253695222270974561917913032760741800700836213116797325718925589190717633099228923597517720481601652151500926712405743409230277012680671967431966200321690020306947637200835160958649625277956451869434454401050079993185939122701567947757113455957198412788008831569114606892181165310205050084447085625050170704397323957560424643582312754380040946888801016007194953557770739912861940262808894451331512161675825493602261352053802557033111437666635177142149286263032877551998145994590669218019893392800514344751306106882577802414354496505866735008230327786299462233689143560142813660987593667430435508349765297558022270947572459166199373231457310671173603001353380808398346423178713714841055281288086011063290302303157588434947501134430788297258037613298615097017335695643260717957285705903178871879759602857465571177024526779696104910180701058690934273235533644419479499556062878683643971969351059964881296225681836090672035207985465722609723476385910340187640171902996210355039466994960586688696188391617209197792217558453518490687368781607740902587309140626499771619038276460393540775378014383378256589705390580623022139410768498404784683054024116432948006073244842942129567436903904237032053712390288478686539704127213264218476898618817889231657505132007942458990629552653801894035019369646035594996269181186976838851379018829475315816160678032580987551470828953107656161291840633180344368997000686204894046873624689281789540776525479067451702783879335008436881335681821955894654184277961948604349916042526721627598454963011615205229782926365214703882013948012546649744103902509717575581049118242907274510390247631596650774804537194092115527469146053713418125365302806167747002185421525933286212415251131902264413556189289105239676606987293471349837626171035475195068942294943217021316641124255914988191413622045565888971813833387904057552380065936710792849225622923933277081999935324908912310539418682723464522104802092289869769121511926753770623826304783886080307186769728821421962705089350929248785861667919765622044447081114955246919442860647436916540986996588715297403385879413028739919412591112485084232013172321080661054717523757326663807339003268733355432906146010473003281965161548434934530490021943964597013367480146797649474879616477816421223012419788448560472386791056867638602698258398098527438332556689857879598201012194567034444920417109108474898374536262624669553419286580932668939423651080982256585775321708452501814720436412423526573881190985274365131134713379728533268431437429999488880781374392999820427098341361213363469396317386041153418665666735168422863698168512889600297293710129768255597708217562080315626852501255274814308880535440267906325523042942112559451627300570789386064930494569717717042707150793544652029525729709744617930882630562059800847544848109733983840308330814288324998714792969204085892072544629534859257161219757372773343329837482465567885205949813280576287894500268717174583187170194528438867915268107240240272477880411189566301992468106558482374056872848231027718417874373159929652473833620969657110006856765902471622734745408971803257312866154905664177124141599590874907926072117357861865089114935523832454973570935952847365271193257781143171160011565895777602381053925515440648176097196773569414574293097386633596508475157787656991795706958611540740093433839329856805511351821804081788209055049548282672206044254868491965458901196121559111276766193800492360606208979907423541837719611070836782798358370363370771229960478979671879451348251793211906406254239132393836344076855220420350970906936844710991661456217745254155191024472692388668108282292954804572127482061070528171134528319182790363922940107781730813336984207565726859490383299381360398843164991441891261043001649394130729037218435267022804609459177948234582796575880852758816069781033370053957238556233209982245650366778716194738150607269026909326118598316347383776398598935614193778694956313377521433491592878340089882761373664828586496541491378955625415806744176335229219406973848824214030691297287774164815608563823746289408758616547945699172981946767150822852587727183407575276657808364449059964359630476781887119929881404966213035591746398598949045021846645634446963747112404084268283336762620335962440302463280868749281730019990837081313927104779606365888581991789192199805475396355006248285480778671112881436540293452024692573335003246682368668516235327269183063128688413769853986545673342038129693869696814859575771337675771200939013096299095948420776138860173061526581151111405581923061155673535794886021459658107457975412723308964236384133945679947614498681511939064896679429365963794628811051543106341880251311424149784223101732862483564777263886161363702057299006945063166594027389053721617636177664806561312931750172404174918589878486335719233342721688052835399026553425989324758403452504320291120182402887234299211641105545555722816465565399445769079168141217082388340213412562630808316821720633449378325555089924051464274054865212558465054354101585687496054436308108224587675448750366990347180625117854924419659079384603735596286567274960606858743107472632488096861974619067223980806130097908042945686763802488409344760674673023923303507573311205861503099280304748474526470795526721874876516594568222640352221229336504418996028146486242535045324789789234197542745777429932176329914740864844300615024559753182089839641643241804223963491302342295637441295189352653933017539777484120789284925308998629970276969572642322826313108661166222944527113056424789025323725048830185087625508716442890589581012123770188822810694865555939431680122994075408176614652730228238398919973294237141519596000574517756603374467649236215086573004410368880053193325302116111230626226953630422048960498089628686460741738931949569106177054821913455456268776409354897754910140962365868705368081916905360029494425830443356230090028288906518022622390153608309089423745200019522883131229308677354492298479518225882332759062121878873507325665334471987522829531482599563402865261800690935731698710347286587019016206448324052129301064141707264885938838584321057932060413122073878535077574788899557516174146185569748547798589175051932157225266252648444656589267154256368119586937035396584345107698904745010304387726511790675599491587713801185622564297431832346731884134621617153794105384663273064675843510448688906059784550860338160708464836499783656909527862481477524462933891282480100427130992112213819569698296769201426357823408669503832319659553757727537054107626944142849279419508456365029145848498078872002502016532573294396607973335682148370639330022095685921347872601428339168752056111052365942982809801614805066600544020313841073495970038663809258846379522210173293252745574751313175436738965818520607244718111683185342492484712461768934154107513711717160358825321732673775206184593432387388394779223766108297093563472122184257653966323960462538458877693009017619606566593059614705932618634777886111455255890562714514602186713293227636314071352343590706634945139103714537847403996726356774221322529287352904726936647508341591931139220136361305757632882318456813455509282823846162596988410735716837130649300941045903675945049178016949516243949454860458995981573783056594727573965679834777687828847916678261146700852784423789808318581573268936057689039640017344842706480050248220999944592866886166808347740382508668460832596809326962548433446094656895997509914130066373087417518153182281161210796679908210817649184400273711047781341626143849330233185526132693767384981630972869988981029565460416074705288152412269461735665264002548019630622862946574034410116306469177654442050511026289495108722533813643578342427045898515522997060741129235433841803633899508369370243720469185684428150141636528819834548108476237143645032180540498497441188927390547331879430354259742263626112947712942332386079221203177549318561485866210513380502676971805361933619685117853117434088440154720465487821407157131694931622925686543559260004516465197125717586125325146802230719549620274361252515013220764391535677273535114098532840501322584322404253228206722627307894754029268169161508978989118860288516336333712235678019230081647058436807937854004664181808986906123236213948993099347291043661084124872209190206735344992176484621316969334842261146998778858475051862446462496141989011045789541194962384816454696178520951843667127155276521345735861906670548052068420057127157365785708717391255082521442501706749067473452528354319904083484672097963455155693849320976504819498536273777263563195882101842812137577007046086418296638402713621495017165993968994889874446089605746277063839166409823394655571128703943773110814953512743386253543814115474480248483662077929375076403587421373832318888209395588990138316581026592242014345466762172133300295426581031143793127866422507965725603389007855224000664382672153729417217703848196806856263478204462102467951912199828066569257300469406473176765916257507969560777710180798828521851999111575409135772989953619054404497104696702961832900474462822613250288360562394166229365819324741306785070033639866437908910367623534962245448448357442933397539753975942964891376434320713947374166763662222185986826216764024717054373854055924624858813866861797641310364275501835096489908044204266392639602459398325952677261273944226659901884507551723866347102161265050908779970329740304219376167163392091266657649087637982421762443948716834353123773840553521765434778719668888830449264218401512662324368424676732758743102483447431206060460901556046967868317291619527026588701532710346271782957432119238059195043450267531495552620721566784921976287887525197180963171019414032228867844686107043978886519891406364781005882351096843166352790232038234841112091427576280802397794027708820035409460891997420833864784641841016471368933101098851679411566903007319796454258752858867133927371460551251955002972771109556895808997754895875226069785012681754443938500326032361052196211853920133391132419882941548816010696378929420121487646731355975847210234046044775965005313204630123098837257703256214510182381391288508393815431619146582778768860591667802506434568856929749828106012001939626447725113329524848427571840380126048343348583062068603117677412755233272655030556492246014760362896600804480718102141074598380626589355634254345841944944768154377540586300558929708499223542179583961984828834893411434890425006614721147630316031077718006155247909530952365787075067420382888617816098857704270956911406113667843361214129807286259629272393084027975052779901662442759133729645882636444294301000979236929820885985548929124717357972515701193655954963631139053346007784031969688189137111030161795423965060916476581660962911281473945598222752712417272518963515932242731056751376266211479742373775078999573400662478540017558612899567113737728598467379191354083027856067056400985424201663837786149385795116104342920431436134717553397063414604548886145151040513777389459393892870673802132126993776241340482119198945007979959656088213894198862384007866964753720312337092666241843003135340580113010591456107238633771054892538748883509816035078469325781215217370128824172230623511278901017105191838176194000355347464281377004075939975412186750240427828972551439609670501443688592931702594156805283352371833074629580840563424297922536486025165747135572460241031147561155800291886400043583078519133400953943665940866799557608679461451084069205077641100293232339966656180198529163112296801394785578903341384082963281738139698231002489529800414044293072994928633593502642902820101844926374292406190572184862717690626680493043193802814013265231190464559054865071640397836220583701988417312577971359346648085937367175484994588090329415321941693399766633645378449052414813856605434440910300261739597133489931438510793010245876511982256105706798399586152867256790115810513299056938990682698985040582433404867253746469881451696157224892441666103982026069881988344010993668027573357630966287284683841341690904733865788484758722279826449870092083093459658057488386018421510231902276840013632911680453437717550828445217743630097578430047057811232773510473869660563960176822073763374249723308276704021999062871746831750331042929932173926472592254585173838493423453785305610234504374172278861670788440098074841377083783702412760664643419462513405139155028318890067924127262638600503461934708889669994554620434525403180329841928226317778749326207081024098688635902383569168263511328597700866874979929440850321760545550864885802543075163948020170853005824675429397915113136166375699274429047749116222883637965948051148498105333999617977743068912400967875684266345820946721648181260390401601210587715794893482263523214870440197060609830820769331544686689384280042991921811980210240334325234471219040663213897793635005297128903756097788511669336331066178276539591351295122719002776269278897334370924976234857963948243739578491189143652162927618154878263097143436796246919188085700037960986196677308403036535834388257144869607871255660091478953233009280001833548500117350259116565123738174971973095630763701861687064657014189423330425862300977671755462238987761328669620037729544815906823228885685670154091802898715709736054273430887827165193885893139448144146796757752810668001855291906596717495388270573790744374546951481265324410105092099553891737023025506107860872953009608167810970142389212995320327285011801889806620917092671487059528967566780820167400630928345311216646890239071909999625925714547036662965843648294201841233544327450447161455956757623580852528242478333121072782444334609273425268993091840052378964046215137953773146711299498640760772610055029143257627205132046969345620429224136384664546385079218955888191252774880734614113128067089835049427357212112132549957349841513267640803568836842150640123423802150937669846160501565243958572410968344865487196503851317403044415192007521960262239744947040220502376074513769778614536341776610919145892390360516056947942304346317426852907910334319850957461688898466507724619856297712621119248242012733196832690681444418463465836487598237470746093174369889500378229797932213926064823630326444545763518009298532091072595917046192791742527917984732911319647269814125669454764883371738444208467970642586461003592053395245635229200779099796207856183517384340673609451218696181075670999027555575354766860211466870191357585404333828989504828972104230024800578506435643929927108328580824855900406621570342386163509548066410032042314000260671380064748909251288842750583404596368079650349358593094457641093509862973797696935189032238980291166770994669812135228221196672098427339623172149724150780758478598983813679175233631580745960836053085990625532957277819691872126831854324456052664899644659810726313479634709236959913266475292609941716706660576257558463966801872120957065200180574394611091563812102258485933975941855996409157817258002313469512508861195337405224286120339651929205832265523749322775926267841091037664983849721020471128038600864067818130638995861403112854953799215156613096508346338901123806549812013479390871712385402441895945426947108450526969658242492876603646372961940484023506114644025742816952914113970276651717122693155040345374580267541425049050963166331234580869364271689392817868655253939273505819906199266389989633963394102639321184994119259158290226205366188013423218740114263226369883014091592275575040642738919749228147859337926620957219263939307072567842958570055158189985867935209533789920228034401075246746692755686716879737726725691172252067226237050751919525946542235210710671281490243790447513439526494280569289746218681706342395019551237594232706426811708226802493889286418200528201081523035756766609672706260556844890053954363559669307942262926504507667061564028973344277049752637705220057681658857976052321943281312844010026142085710205493729201126850960171221128878990307938037080793252411933974004156312840336532487878473814693482533974947088289143875151898748987445147562084194559832613792641232514058711650180231580783110404252019743528671805874786212566038931721567638062191037093436149944567654571004734884905234074452989770922084200128200144854221171933583104319109647016520128212521926594776220868017320659861563314145931936520891547669949824287998820820696570296743349877256519127670818165065977902425710774652164187293166474792919848561154013042116269010812527429482457607163051975718187643460076561085108608660261171287195281100094430953613654073671108860616854906093558578982469352090959652948595785900606178796221612473042808969165388111479754201987943291951242965474662837742021069765221193115439438285678711971792636765639440927031790194519111869801971046285638690799223991628063571287283157079630548718449457680564274205269305354280699156672743362104204965309008459198251529709713395286380953573387229000485933987555044257431150377068962427768999388510082161954749518875903124306607792635002682731202283207032994711648138136747199619880889381302560738302801508859814077857678416513573312400129177750242327548906037180505575636627684453831799773002317614309641114446178281816004310225592347066652583686893652109083652385475015465483937020032624377032099347000674609524246815631860403947286605421481044629596484896944906925142652332200557928758850465272660086211184039783052250195870251386962435503180333499564353435928008886630514780286777700684116381303765533287392256925774664663652091330072919011141489219427368571321510241704153017059390228526438179742150243488857679990230437386298732852187329469114361654248250893465138983126585154426194012183675849533416833348891677352270207735135284703166083008196868107897371882442863158241857097367607462378014451457571278440448302192090477849313409325683199559337552531720593508271586385328775085647018985885653114593017070760119025907375512464235012265451228014860268677766519467726892989814880744768229829820564674462818626331738524044170801145801437893926872672386761566558904439059565191979038066806746616300783991664114960833020360413751014490581348335010715440727370310447650894944360289638527937476467178823636235997776470920406902739081970654536799215438354253704535847023540013920217790626728650129231284855044119457363671953311392814752568136701715189218901360791321433845557845955654124564844906545868488517037521955434767979386713705210376652370263174882405279187708366471162013707177083998752415178587726642402997335005285979013667819411691140793383426468332365167309778757264379775581202471603408243377075327822673154733804812055088786925733872526559780800242250894765281450575834299242501410134490368274179072396336035177524735068164839739458299642233461883898690283554199287239800983670710485881843617307938130553127303886167684328507796314611556777896214879195657901218392004587536232156000796357125931002999010926159215660558062194834281784707930558130733175400236559614927372771475571224982701904789965098076940550450963367936137578575865433693440334497717477006184047412738474516641865641686997791510004213679511435794323657739650700539829802456174409206022344423252673529810456287113821735635932001083573480097521703218458017749562743643763857480771413940921371882088189500306547802683026091451048823461694281126317570091565789785680592316763016410434341610536888663992956957159045939715438379918485414467225755468510568131828678539033720336372737290562084671418366456627847062732126412739901560937386097835445159732219355288044585196895685024164097111945368237251888013543916404877801634359398201828619798158139747544896501130654834591785524273061949661658093230417146301041863424887167955342458701766686807271812532695358868392009463662206152472554847751226638265380320332054661577079266592877802139999992569795780179931812335170110537006153498809485615271008744546577248173285797546195267688417207658496777777714632853589051117855482210150033717427167073341241381956648846999712022034954115473332204954336266263462045551906577322495268657957524260927928380667098039105735528850043097096663240905806335081248321603081902444697347436537858574001411073348520075506800070991881875044115100859264020558816297245116967855439533245945452086123968453523921950221782471626397366246354335159866343475283194957961704666192005365140354881677013815504679973464361069997777156749984771129279445590020208591954228250933885949791659504857141975638679936351121733557199003889270175192737649792749430203733359848588710443514955921601696978714409333166422559349522751586489924536317071514128724465860868772062293439473831377934353484521836681032741428373878258900443738031159132714981747164130771622213319372307475380389628467025061930612519419965375780287348446974325148253434755704306291483775035896987218241153308074699690506520410420372937017487642515788120308287720311613318294207780153892195567584273180015990458200403707809625135127734621967455641993495344090094302381780908065301343037767962174130029298647350631011333587170646170079833327455147834319886774495795051001707382905966683147128546947515709281459753059411839909128034139513882791417880087644986033337478976321643824607639969086799988947935488414932712079094104919529284356143179400938591215349472428414982211224535808945792042572070158766731943425036310156670385348836075447514526071188798897057699357953541191177935984648363616175566419720574847937021867115006578341834444672855748954323022987359093831188859766766021508247155710455150032929101841269828418289986248781317448976040383952319457710259857801209929652854389352919614223750823614017689378639935803112989246665087901148533560331357434916393935688781266032397133594416443792650586492316728217923009321883212143263266247721818473574316311928308902489559160003327649152358057760072542151508893489358766616092598760613136509344713932845967826945729312691359619630390625601845104997208747255512491745079442082790390320636255725625879990216083161451928099530615675268181287130040989750183103561144315966270457978944099423744821079878967866983307470021389400062407218213396009535209198035452109472296554654279625595933937577436247517929373406597767867413674593694366741672811879231232364103927179534385105615029245595560377714794756090962132727944840733622060595282914566689866898820875125258272394158769649654298204598858867829086730306847911331114514103284614906222561274282172494529290252297256061627866127240945569374477905865265221367073874043623315661594249477811854610924999370508359659314292435029753715134503028257768752457021473136998520734692666342201813306921042905821478453008886659481603032562495691869237732945732906515675011440226469051623198322458730422083904729358777850840922511484472003067530441085125538023586776103880555824526066176204543973781669158273441415530777679005102899131899573356132523545773280742343628854907167740882743537167981509441954963735446560765270314103064602580586220501500401363815410030786815769798616303145205293495505588197223726824476909162365590813510547684214132670710412405834696230807064359466112571896686887517707871607935295688052024381978274386232451184470746900970566995450170783339239726964166199242685434880678541831398111717630077333136510290421383306776505621087555941671037495243221850789370401472151908205335518216618919530714444668116554239829347435356869854334249742361987524963661027178593735112373433085015523755706610516817408277730465342051086839870912919095898144842197790962113817064856701051329231836057234977153820486159295215359087637400451329296955752090490318024533938409974297176576779321775379930099126885289706364231669030547180806092557693645443144368651748433743512588510860774894627479658570451855333055181170880337456104464157193460486248122745622376305605388818011630307247616381196208003550381564822703425818619429581409043438240652413507739389227216195660542539572543305034496668838448754786101129942255541855534895122235527447640840434149945096108858409249710381493458976805472243147098622960613873763527509200682734472852863068920067539265688109654014283916461446887672363224313853416142125654210329738979049746913000836862181879366973943446220664572349017155412935365915765461315596945826436446412464230189209228442278518249820014145127852611258050073711848336920840733954297936976898655836126479212788603982603044169161743907335490367241881986626533092256631412823756953781527727937760281368776849036456237330689739104251701082536624059411525576112209207241970092165613412033458698251494657163995240190967769517671076753213343190980507105083346019141073528971898014091870044322662212141409970246960777407828580025959574046782118435260961249558673638287927717638819219856881167867313415606989658830654975909787406124797315584028067737105980357806365819085259295941894755650407092810432002942391817266785206708816172355946251034203058617409396368956770158521878450591577293436772211425509538678833048690412915545187800963184275327235212739406723971921173792118646525971984562803794630317695779164427538146652546386381738440606829887827547069798041771256623908312398249990077202847294681761712254069435963385521835958902942395109169395497289435240779035438324111152251092716212882400305315124198807269370496055074175082760465506916704016739711315843635051867764938080256288462385708205651370337014741800401405435731524640990545244266933942893796871050504724725523395179645092444318423642773382473594558575627784570691204722271393523240385399862139711584810260497747407963165172155256731227376856453350187091953476127306474929317482842672680123408361209156947005559415100437388117371446041173584505693234248303669361122144586326062182765465392969949514500962736316377475613876722034736739001615061283359760523492246434491795150228762025871751570260952675643316509603555934700646190985303250316780794721887480869932674014539401323389156298125732033411123461473561509268825585278015903059762448153314876316582956332901496004863571689164416836424816822820570486893553306409222929565695490436810512058264104821454629775646449238812987971989086702272999523451600863415320460220298467916854504138062577874151662563673053097309807135859888007663147571241482026940039556350173999063756238814293442171470829880832518908737778884415511702846548319216936194246718416930110134102826066329063809448238513833563468739914845856118930341159326508389218952090241277981865495850668060766079763849273065653042414778482821735298286203813766800877861276575459178203796869393225689873846619422669725943109671430222302246260000807690777928594538433671678754544581593630050921976478073675185470062878554467246906100587325347336249892582230038131637638300705023697248440469343195997428024069312680056211014376055315238628020831178342379209255201254557047378311826051011122031033310276374576472922517033145078321897898198542512357647670113897767101232369921771147482595617840506533485918955819897156634059820743250419742371052709727599411387969555711444118218519296982067639327626198599634178244901779348624921626742748603817756900925423187203185447455677929562757044707676598812176888703106892532183470326333114526849523228810455770691565502204023319740698120199697433337167603853882925178394182552772094882897819253301178463998297705271077571910507483808212474546284267629061312438324458648973867429801771161505483839641854028315540702961873751512244525848951065239934656550603730560700338333724157759621395067545077219468489475044164612200382293821968239928883706091425007718616249193324663228683044590992114336170354019543752485826851075997697610100947833794618590331209849939798446263392802381452535710549826633850326795364592079723104798539414631215640517319252780201646870129435807608150846423722695707986085883306592653534353637502313108993757155143674615293282846350082408638262590350823293493782769543296291245704340463121710963292892760415095374523110125196073235484507511739524745438315203236137388256244420999082122412690572192412180786108838713541021787478756788282795266880795301616723405046436684817650387979006174443542456189048789735849599508535671146668747648402488618322087842101550389053157890616504917051473964559888459790213597172688668662837298179155171861019365337836233049932651964355451405917045592053946574811968782593444082992538935812655805794719589364100103280287149174643616433729614566044136037148819035799990187015376015064579868965881387070429285175908662392926742065685497999379234216176519507367453492337649291541071987572098762286996338516079249206542429590809686566668301902241725303157023475365231782453934691382437596940370215627707491935628750059258114678923402077039226827627186249723719664962672070415391604826925741677219221018711168221384017607686296646417522320118877242805495577011865172557513247264966642054129268419901117269808324653239118091494765075620372545613417304237210991595308935994002216563468124873892074626989912332332210351554795754058839788482497887146359357785678111906367359625525945307206590339709195232353407749028571513509898273665413671771609543737040519334672988891436767015726495418752747135290149888934012195457946669751974107217441817436813567623400153950969280977066614366362731500245999490025735110594332574588765319095678859146296939510386400977316364954066165370815929799337844057189614981183642979393876070087238960274180309352349979177421312217890420838212014683645196830249087187473095772090332779244543304088754330508623203932486197323955576002361631493852180259959646404132176413546974855852264635045261205697067144715478347279281465896565969453352508224728221392396132141265399416001038911934396388478123950468616003571354025375352467268779761268953206567710298350557378506013152686129716855900238491177316598917786624665981950219401188981859593677426964580610033477321451605859393785410175311034648127917430804376009908659304606545185679662566496103963452200064513347186381683584997306120467703879914775935065870229298298049760722311465762288837655807015558881297986669813988197373719036165369426437735250518840718622992146817291968546345483857497230245020664459414939552497260018108574779942449625342970577717875554030634948553970328781625961132374618883840911204056345438093419419966850293657842647159450893019545070002240604582965326730534106505783892670031990480869460541779563736188813394827909412376774804145643272249395661263730703457254576536837737371166383613079805953056983196533741522085113863251106965610340992326000450863837315982157512454909439547699335903712898746733011978161834508486981725352207873938486986186623414620544126138595671002050097357414345753658258809483887979928062579065939102458993288557305525755191242906523471643666428202554082508541848133666989446587445160008571844141096166804431485601913652398250797828580079996557600421283191356653844203068886375598268611089148046847351166290103176146381517106859117370092073577745212285305669751251902768618951594599636754523128695827216749679729547092256180056717524420658661575017080490035592180091401252278128680584404987263830075743652446094919464702963582782769458331961366764509587033206191797346197127398307821470054508972286695407039099420320384293281955123592151281823474470250211171421902854666189058840911881367243764456692786437381554915204740949792925822332575469091929897075021651930636493188190160169834742700389400635497614026155787830976223968931087643435620060813683855030465399096532454833188723539712680933548624994270397219921967787740146702221531798528668970674048037246958275922658790379122041618302654916774150101683984002934916319910394199043045268441580860188856635278139191270193387953786930716085925383999911769752258821581845502908016718854001742278044745615146542287069038200888556213275956358175417661494476766175940884380431975336962861612201388688508542263706201670362847067907908917672235820578583054180693986541849427844662582218268196217924334957377260934038689594409224173928123329648090513143381995093626534214353356718554097392579693802666217766416538777148160628293083877218891026773832289087492163113618018120020219464734285967787189399226185739868634827978249238128465331247100612157575243569527319457748782395641941629160207147487358802109426159933049356710262998691484788391822324409955592411443881302607006231706364243239811381777919827080991818790296389414970072509708804201489362381769562482071606501158194139396916711474486880027755303787805282971880595196298751699571303598827539912433368078024267026157176412417842910793788231674551066423986857024272438636570699389983831730399294582846640285422126897572522679432340712162967495441599211757440276443080794016361371084873998584554869461451705089906172104509133789020999386192569007984827465849794666990218993610753865083410167901258610055604424395246913493446721083114553207507756310292516509066435995702677737855492924811353458714330726877722248687063908710234150352127362266574865542477671341918956446262970499736363969229032206049909118446812232608352405656338406036576873269917483617102491938807453983535493759365769103735245597094533583529852438338814393565907296878428413783335125668947212929206451639817268853177538181821173439705567796995097381171718700623547062104766304179599568435833979088637448734473281556876513310435200046542307092737576397950621563205588079659543571284782602515767200494969806484135512453243886920414796480818165766144550646268378303467317819617292421292651930773249657824023378992085466498733236163534345576318487241010788072291243755314270203347707551817633315974945124822781702299560902509198293764639029816886274783585913493215779349124898149137515690042052956960660404964503580414837941795700024168753106438985456469514318375083977718412548280020502683893616573168688768089367667389369872672715718462810043731994869479731922854282738403404782854441660790627135849481905650920005001352497524432732871444895811732391354551553963976522490923257945007956558026918496403142748727570428449229338383474641853809660935131091365642713247680475469573250371896952445077563127535255035453000698596765538303996519871001176411968334400980330118399632979925582576710715496830512735579933657984202272365932617097095408954649579031992909376794550118059096446421220544252300579554292593185447740388340710241970110290469948621281289788661521427777877550796033742205691229826074616461306596761148642790085658924558454255990028879106597152857427000347616423896808739926889190976302774333264688870589211092500429977059611446568434928723194808707548085083067643104460377885888152144969074278289095217947046137760589298547117613264256458879567282862697943190881919225938160794686745643523574536424753636359041663133697435918273118811777635531473987892015188666073042229011255072667607004637222553885921667524683879174272421827596472118019809456264464965428563604999313756502286752264792174240953939472250157361023836540427234368036769910961643441222020669587892080303011183282694494354032659246342601408849914063639279006791261633201209847160997049634396191462971615965662360230492962120544578831637588934141782295670977812988426617442693876098849123546198988579647073556347590731667869965681211147891737746969614259600925367098986352193405383015447278532820545946224595306394473154145723804136167478510940813541164284567652660263031454400730242387212987476027553963057276605976158952382527880951123696126351018724618217768393218346544914931485626095010499429106484703987189977975543382599847056611296490105915718654031968918060313020748182196897179527376393821140251585127282524189741971779524587120924230552504593685930561230053765193663222890819166758790921711475088615100852021499666743075713580127293409033018357304663220827351906224406181599693267151437208070972897676377013391445856267482040871996804804900684355631657778102851444051311927151400088713252359095581488268159589674585220537276960673693598208067039587271622202564849095654187464344959057409442563102478606260656190893233572253794162795453440916200817286747706476830991746250142352669537800067426657297455940062843354374658694301734830110412672775190767191457139475027085407245316404395306368338216040308235031571683026518339138833671567007758642234586860564774595687923389989008225676846590177562772627774825768818053914885612563841020701421346347868184186764649246797560713517138471137957403716932939159282067477527628526335830483217870692322135216545089823760341808294455602863357570383297039123628430064521597132558912273795206427222895627727847243469305967208447373915090933016489267301820582478967176756667652435216597719163474591748086427437351443206791813100120502310893000842684601939743551134533511892665136466147589318452579206015031550591550174570231927167987794008708026324291357851086441781195978811573154829742308152920211343430223265517960900478170797202663294608265505476926805707097277050797217694309073021861471557532268184505637523585319068714861815205596605773742653976387494477350007713704815068766362877601344710385245758994251401759056454204590502796964910608963711997405721876797631692876615315671367295989152162378630245104482919253747905741249734518850927439618489802956600036140695014251065236907474974201012250612508092963329151227445254591726661815194832912775008974924260169484006940081471541603506770293078303860291405072931990199405089694550804844246459892854224877918942865342306217293215411015802071629622728906451565980375429466607779590391402603760986723659070011913527937435978332838246359369819918497320140790517389052848152945857058484168181854524418734521899235652091301777449897587402755966106693854666405878914894833086733497386274533681919015926268231923380207863953291745164654963547432018708826278599306314187029563995809836673068764547895010568135824817064168220760867787469347872089308119391235388779963235539326968929881730643315625628659618069751008000030181226117748585870698652243093529054509459381438792992960174462772475541241883523430264949170395390572975976680766566771455546504657118864458486281802197299307091231337361403236055591922137101745896571197341255269739743722900357763432788821995645835222654948955667766733256931831861883873934855233154075817689202292226654163152461631182612054415983476723259979829433901176675151469852356690697251080552957773631291229361937413849737749568044202469422041999456275603024290131251150670035224921394701636364222050599253702170278155227430078973988665606163611195915960592382303748268978860323264889300776901959377096522881126922692059687305800072902132705415613585530352115429852645239507370836112318355881212292781508326924607442952740353267768328438818196030286731120694099921004720891545521121309018422416414046424706039370032911936228539898054865481035369375187123081177901626770759087846066619814562587442743461262193967026509401051292728495370889669380563582807355169224130277191005348100473076162125729591839786412444110008065088940682833064797734846523961961828245378127377706785133693778668767263943977640492094803965761065762413593924166296642121493569819065208487230479058877197592102888908933226455663866234464915029444328756860049316548907614875237714958006552392091951345089313717384120909448040846774221712604728070452968157895065594226400007040191557709880464126936161549022535010618618706073755406599495372676589070182952611383903009576890746598241732142058399441456482554979639158857733486920945960626193764573526746898016578891164147551324993457484545398028979886402519295358279802118482772032012330044598536281345676748957886821366336667130970885354225659242167300410111315496827813398351533095965190162112818331192837691482406917717501382977931181479691000637584259947487813085205594266889362998567321128945628000150134546288104236305804122046317442686567778029654937770764410142065574270912080228520246851582932489670835345805169776723570873189204718284679725369691684149681946556537070636664900799547335769945539869106986112395644621586064892804586785912181642427149446178724901811553619494028180375434493580629758996494766408092459073851357029833735511591498902957922428022632932582119327546076418888978069833624271109460557176547356445463414205095395785038929595920338676525351939433521843987183427322256813573648576773321311200409787874125777550340762644740124943147212567362936246462269110183077882153803160820896124282495856558272804784685793289463446245147929125310416520623992854424254058965262558549465017532819672447493365307606971800409253922676666720848829571727121339719165845207651063836214086751663775130614015809942012588521845518166517652455694290857993018944866319256082622734107957744987023230586398506195802914202651044378318743255293439481679958961751625712474113100898494656506232159582044177615612233745718642788839703192265931602841330770898878323290669604086748365716364294152766088050316663957465148622348686625599341751597424442245714469345149655034306608071132260144986770489604150814056338460398462237043722011792427768887816298622412433928107551425947844617375269662654174190232767170056984071638171558465829290814826496697350325251031689796687137369821245277043510249887150669517701522953383123742584904742934487659190754648395201358109551822283692022915950082419294780219097483580004885576100272299622914929177972526214310017900546371137960726896456190664022221526014543985793132056632012508290569841948284615083603812452880512021282598726017415394624434991049386592154111273673294258952363886376649237042931703014275010830534769615621437546071672599577685805877725135761168752219472934223077053607692129146566905122135669717585291044050200118224063202892781369381329086014179099601746152000723635956857072736338070945157161522458269452359891793288245724577248992284058129909388987416252020967585063082945605534641458790419211232455124386169401123231013836737944965601214053658007314814384577228623642958636651546734615009077059462814962259978361267364133620733253545171930582493245619204983112611912514440362731823953515226688128540530788195593611831934522658643041374432611897265777532929741890036803058651562773372111048335023551833739355298946780629525115657371816511154927845485617886055342056320659148235883792086224441436721612054873152163505645175965648828013341110239025056442116486733471953209423053904040204715867845610733469492304662120159612350972395638144914313785740084412413275612897563079959995805393560945286426023326357541336647058526297311292390704006295107374949160513013331860952612568425850326912949780073723683175326867016293109879972926738908784212213314642050520316756310680641439911746816820860023622221669978768220482985876868804189571403569526690791115912220521352700322534396350492605638883023608308718482317357721667477067903323182382926777190938654575381593851125141824375972626392128897651807415044277343752621915148127633591740054068340176875003929387512298484095333134409712074857925678284607002725806067661218313524976471974560816612191242228751467050784288708197001702826245257383273965614511354475826443620528007163266649082249564623435512002721614321201089185720519722679394717841204940204792368631567040036754243242652994227382515931933465599818173770986718732963493611707377847699855775962397528195824041637556728213952194454133835079750439482036451805767155378321338443442396906765272969372746612413323265726961763872853062345186992756972732125092352517407186267343967618057010661083019113551143035648750125328909212759580080505692390197779084389828715101482199915055746330593491132357357602695842769130090735028643375146000525433342995668283350431735539458978863465689987771614743529167369008138797382483893358129456113575894079431443387820710895799530742664682930545607087104203088418442613419918954289923592244058049065466288643990595670016613243502970619815537765864250951407661264949226865928697629097830097011752880892777985244915042984532832877249724891811728495586583942492930166835659906027845508409837653871511244390676106760600091309841400545556763819380402335148724417717126341520338105492465889338153981353197956218585164606155471127110957332380290438869315766146803496555496507878571132878526168365981467702041006985979570096719878512826101152222506285334522275850800510296624476908847806401500012505065009408983094711671416871960340533912939482081989832065153458345310036347931970853301992469157371819013494763137941976312520877143514805161159008235224645841790697850765595344481113727730452039343136605484138187908394996572998976274025226202252348958839906540954367352527683049503718302210368147043731612420468778345391553462488491682731990614930718494247130158399909741394594839165581919363050285004316506024101838709017798887309713974005469792295199663378413455753014712122706762672877972065263837327820629186213444129546356529914000156787473103521665711364450250196638253435666423700932646584725399013121797917421212929400615679566303144112719179561703309045499046224992205453280011010156879876905199410687586213547709791052947839986252032681534863020387822823306804099605223234282698736903546692144065221479097958133705431471358385755912249796846479382254768431266399952422632897890273462814906484136370133527686057105755860343675083497665634683899433519488285016268376200221431331217063302428269362202110769636482774798867053328069109555872872718730599819497409040458313267748718901241403273488903671646522827072750489637435317496012326740339130387938534497415521500007951937877271372179976787671865676926544848343875500509578412226390071142557010789392134336759911402636455879581723249797129331395720252472976517995969819816162561893542130059267652828109789007015003187562025760857539231133761582882991598019528407994974993968300794032231742200302392668648636675930624947224620681471880772860464323083461620154571737763817687745839480126224417922644404153581042721136968244766674492138849553310523895571263334200465286272150038658768827476265555908463561884292485762908176521463157302833625509179351486770284734188698749084098244372271085135449312723484636545428937021015605480535765042416082085338748041022136463551354478193379291800208523117217312455265658367307424689425937000414130091196661799661136708964496487907371088263038267025670783081197427504002937402747409602500247617543797331746452873245091507556460576456931315316148033893170613842150116941346235628042906284875362567347549906005741781954304435061235574199756799686956929957383075289086631054761590120250020278869454059831927187671521600912904605520969886009170681810499706343634801852044542283242648984165890612228596192746390736597867877966865432676048528843390728328080203957118647355908859383778735982658537300832698881967442308679684026680503285233986341044076241653686478318420148148772909718232481784945152231723256375371026569378624097355478380385958503310755434509182508286044553219310723575775895704680253700008539323735973262204258883388398846061524088436537097388033474127669184277716558491544225054306856772593968852910193673124441403407520189598236452119014190394005737998823202424723829538501566307728946468128718791354215409321791543629525656196891043472045968689448030382505850923051971294709364644322996582907930837962687089759695598643396769692753524932370227287731122847905826028355331700288368096720814063621036797749298950504762521971939187569032951264122251360754789537425537939057737597460906494623418821508950890116277289245391620813630626799709179741950773833226806600952479306581319347833793686222819261055509181941896780514392061666616415401426036618131610078173580637694004123365227610666595901287519892577902705735515561031703607553373053970400539373638040298498621897746584093330252002924583588098693800649062415558229643852361600915612995613752915171333145155090101257230469641019079759957125483207643385716330055361889783920622102983266132086110872365917237938850157110485312736477703879879548970241646944465952166821416227091768677008883732526352606802817529560233716064089959254202066300903284260803668000629868112382550337046631326653131258972149491965183916871201428914484283158764069900739722570438728421221476536224178501336317251171127726861174220066644496495169606616877907159004697416341923005969768553717736910490120135242065998304529631660423774556571977998203429104068017019663335704723802432341927938834908489848368426712008521231177193129642742279598556772598093034621451685176333427912231698726727417949464278603265936777307162967890478801922497534967673148894224053606147895586248101103328997404059675023415194455789928952468732110455088716548144427553286494604736766904359356159466039401214693724938969528112610632673338495272069884596910013307773419034917443330110700903846843120950868310391788658928573156064544341041706290809048438922804287776446709679987996616629422210827411657921798626152864325721175330669244909957343050987610586360866705543838647410797481734341213228523493431314136195568378021775257145990337709885322256127191692683847210864507595266771620997220914059539707586595379269350393539664204734161156037288113330828163167817091471782646806626131395415211652487382008246270213188406652927089243143747882982611766503709089639358054264319165926436502900296890200366740197896974873960208127792557016309767217895101251152983054178833456512626304478384603437086819984871913539596187908957717621868292371375204121567642926759731169359565631148824992783795615933113833925667869696244793024488030956396492450623046593511641890739290316143489263616726405176169954089271913663938776810670681729812951894877155181655661138681847568200875315435599824568251665681490082649678302430099140093158661148747959108741741526402858986708243328555395614683115381042018843706228267707290742548048856928026897503439640864963247371035014420354778401520231464559902075890483373563813913963165476932675856552060023955138851217931889198831945730197382241722865349699770016903785542981488036420880951868619813740063690817309767364874883024843067128065603711028830014647631824403672055285573018919803461819794537996867612350240934231752374795791641789173393045373707739037560595226708033906085586233529034878418968939828517419342917932735566635743174995695555745438754778728633334452535663548158850638562335355479132091579084742569748773562836180041094103756757333647197341662535324261839542690991735270721195579104339799065478359059079546810692611359473509637384621082451484920828602102122173523727175092784550211025511047412611170487806158750568293514698972444507582008536230017346730501185674192710449528625696131390575219952989110754362688667637563816200965486301011421588716569563888457464434553564610617286320688239441364070276026391480056091503793605348174413017409323441362553689584375803938615930711231147626610056324754423521648044779591736145255816695445106010544584593037637531295365191750202960815219939545366110885765547876409844243647065691494266629008807529378164551258135999666742291582320285830564616853593992284136499196340582163834983843758464841459137746469971275833516644110748234781155096346924668245918202508569721306713449887000706319674003883054085863629391109804531108612742239613741874372465340969884869325063836306456000357869146420092899953042378995151708070425422673512499875650451814615040933874271971546590368692388175171849207863827673980826155618696589635446907889986342919403769414847585262822136389036492694184708409144229527162137630663276313780568653367893019122972526188419483364707540092237123188043822100494044613198256094474864175610108868815697437232927206696178112997335016386310890208698660184598896919084135683828617330791861206303981259824067804392124005411558613787684767813409383094455043892586756339170039591736481937672653444435304644488959448703165913209124402184663459102098788976692218801135154435665038411698752103214542718620014977046671649503368425612841264297133418418170813032338443643358569777758980439895722770077356957447887741860583589401286065770769088405163841052297247402527774631633264984122462985423602131295060213728609920008207769307816430763030575807250487117449600660837346555262708657705215976395638169029562153964912031157314733332677192596768222805598952938024632094479833307122663407472436002895481521450586810466063171009036472378330510851891077564761356167483007542419541773953677404823527540839784513768486146744600247221465645809021778543956314656871075399834334177487801538877689393554982141355693065497120161168590285833635239777161227255290227635190261789487720968646820707278322372260236125592038141988258146485367683934671250525315409273158525862100871804071288875505768783105276540785054613882174720386231739076214666674441958476806448791948469654447783291509629338615643674468865211941530230185903352289423648559659908250008642218390648205471057246596924012809749040990322639597723318925848660686404051913840992860354533899011636332135068135267110014670204911295917213041391030855837595222427023823594696581487240330936878501872349523701843884705247362486424653769740632839634773058847036632839578767432079612866742115727466708708258623704247540263894174803657191815469171275061855029113719025079851315310582788560627364501718056341800832811515898417469487675998119774967445318276615184291774817970348069447592994076511296850112047486078241987922440277425430439336959026626712943767178269237347782711663389948565891201651125620194272850072397895131120104292538572488876869596137986205883121366187054050386730702571151471713429369966151083969685692005641206426831329805061897079107253393803591998827806576265227125066507913691059482982101760839639767884222451497563472826373811972400164465580797640695483000411320585695902544627623253202758969867795685448928352464252319522591230738707527396274176553262748136411376164677778021068585759316193211788617575908959387426464697787726656401133697407717037819105469694429098049789392676435435857214813568248811269218794446977340685968264606203090827114816563745044651727611987267090210620466017799439357711060493788763125347490151834547171410398656446096999528630015137147627518427315378821556183209992879813312693671685853734020505772245853825983084795149385723817105821479425628778960906591489572323934338805264721626112819587307499879308637180127458406733631946803501792492623155357788857878855062341033582936318656881107364608501090583676243568853150237766186568138234142536463570663147390511719853483973718493284818153422600659713974927430624321554132177677768306863537410960393955954110022718063252779302934432015044354843260888474046137049393581902418861743496423843796416371975551473845838379243546554185646306476380880875004650788434109123523378368206777596645166209213142947268983978724814095370898713834460117787933625195325912548080523630988151270263282957450737825632856739811853250221695421065393232853610460642397660213038351892745132041121726465010852264637550548112353295510807586326266223043974373986615292979054209896304723162505376564429286548985772795252565714830766527990306983264119957039352381387621177921968183656293874127851966495866506174580208384565495497522300023883501370798488636467025620635512573780204758070228855111708842477661851696314799586061866726229026650837771221997239627645556639313261521395649549522713447888640470429786410308307074135943779725444228604001840407719068058761236910035047713712337835588567902748893086013390273199752570700989669827920464321513692470490970607006227360344132870764098627278620571676471090415951503755122656454277803807521974705915650109068237362765772102980960773605728950480770460511245832220656433228891403144699930456413425489100800450335045744628014020844079142820029070305325494651494555595613904401339464038833572281937465363983096168853139311189924081433620677149140345958084375519797764177595383309809476737670017283149349464882779471068255536322732424814911773428143817084938066900258825287328395339011564981041963974356052677388834291564839160853844836648983175918279855599807659104672639176256540792608199385828474749450509312840214319467961204458911873978114710770253357027995630706794478195589725361409302602282077034221588313239314602247513704764170768710236826757913036175535506864904832210216461757709459690983676981902839580255262055974388342771134830300914318100904948777827511358490961474158784035645355490404373855896928487367308433846583144374920550169549506734269917620143966478842818832284826247172728841857309243678042469732120637843427153949774830018003465744816920259370071044345423140107830346583422540200269561082077316889052229143555921894281226355734576670338021642529149028732842011990749828127386244561104696466424484260126411645016935628711981038129043536288385093814877045362263371872392667816481946424350022001197692492574340124653008366514206892712052227225712681696066831605234566781014354364549034941922624798407635274831280156492890557912369677050458539235165844331322011949678678712197743209827342216990112699438927525781323960263043157549929138519802499696548682682160928211783047777877518943090464225977945021283165493656562774771277177819398080197318218165378874938445620511036782738415329063529891011691074936908686041486405518285068848374438808614055654584240926032240077176672098971648704699265972612214415096984178925865224624169034112081538531316869743201695598209105242261223128292274871767481179018837444712559044609315476718170592988922381842807381182481545275148854825412497932089585272901028170429541745890570393729643743708163621699160762636895886423907386878909545737206442734415319191773673297321641614334734789990514339595420305546120294406480435393395561169354520051061107548758815038150308551775929798351484095635376623087345319763829331532446265210278399550359940103890757255361790125417993284599889934790812601678769633873788827210536143439626155510751815339235375450802763976396278857415960195376512234531029494359304482714700584451121272254521860577299061366824187716322752094205801083641308335233105819766046805742242582035029084640279904553652021950492528535773120636434215012285899983064961896394115562587587795339055565886122362061349151738602578697352784962015966038032750367128803156927340629200353657979585236547587865938602782964290122757186243602265638803633312213441784075871515078016271939766777907228270969716128851827388120358581459638979181355570882072338532248920190243188049398380401463963011709857515103882745843342924434365040815804850246115366625019915224173948916734411483878007204323702799061728572464480506171997122409204209390651743825666196208270939497179469077403482216050912754247128986331617270864264457885280347848163456702684127792473648708479226530659372070230427807206273774222951687515537480447495798230233258113898838275334732013198517584650270345744686810236975380800055324242073663313645871997067072591138127571051609897410744865844658745212600724447738594292960511209046847644647352936003124536636746911386035231534749948793212151793014868177580645242660023457505106832373252674705892934686353091481455734675006489896347175181749559242148987629592151404467459786724359027280626416782052034318141708376756291579134086645300268303057392803827478248843818172162181751528052082759933217453825118131118226246183505166614050230652316647897695576301018045787206991419341660435767075989915328723586174098479927988104671043874274746050895518325879928866983573872542935937890019722411332616545912104895632652563939531574355926176067761440144701537914551267767699313210187828059419635356828253259350507608593298664902024527277057711843172267440794409287152697352551519375190195261645426991911932743361645799027300077984962138254296617468139986976207055906006651313024019222085833964357282956043382571146628656886466029413645817808389191357039113380564467411602718377346349435494563938794821428848582525259791148503037541536712173064797161093232165339440386124498925943055745365313652245555366345198155409282334059006473014741354333553945531003959602652313809634032410146434232643970541100261449801149725182212217335460414596382735316202298141810317590435043410178241888103200846891253975056141871996928304064349134370394406467909457232888416696054058702905939987405124578195220635403872909700048188131129113003180381737691864430933215345464929387142903542084284336699067192960473679568154059197521520570646867304182870780280496445019468824428779833927252156058515008331952034245184210268361666056927573107307296972755777110875857761811119394504216522491519958590620325810638249188129450644540957858225077871574546826969113280420073922286055936991657793234199775141864050144498077482336896975275652618069473776886543710892582426998532921402028383266329567688723074575895378735260777846111881857757514909715126705840162350517204900501345764915411382436345554192462412772981118816551379271150951003430491548810452743419717404627750852337747934630665227770197934383343977721028954945091427956184062196781246616443816439358802239612647303217650971325587751747278299669656684354366505955040515026904214064806142841038472489297488307365532407156440280212813296688364700089169373470110959401310928508940995862684688062859973624277863200020918185874609157677048673498108138612611749750161603191824226561344555040726275275724559560328774731335923083990541493736247150843021926553447999935593366149679363673673259267938534973335281486041429278539257242007597596985242751172551073502165458251456208050767446299348818906098084455669044857324957102085486931478931811059351485270669121516135873053435600923536653876746143769022291160113565972805857863779633779671981057695724365384600130406265310245460736565556815209896938332166144455644623991769436611442947789319154613357582059030367200222056428699575079115604338326683871344837692453478165796603403034034437482188599354551951666780169481756181335841812479887317214912545102736755538874119088090854401283985749648272699177008514200614819137643227757291977673084609357948727618748804861005886524312902843238848361064472578789184720459411571482176812373110457270508779628538612903383900236030225251054514087870593907213815912818587351377159197538606126196746754417989011594655166103758619922694504101585449019403221899360079594985519200472216619440399907213194700196675086409124507140980762906512014142122405798168932571345115091645346159827236024146953044033440252110794639871394041367401961700987023070516785244964373048851342536431493811418459490872608501656075372776558700166948184923914667885354024511274994082154488964882435117629910758168423367412757028090787764264853477791949302896918815853011172578250605786613028635199781679806079282533165418769355721398984664277006631687084083977330887247618298224570282590586382703745078865214659976017278490895109820773091864510676273600432427711273188769257213378894367805953919920392255678419832897707537061555812381038523905164452832548126144735213627140050198256436000949807091675118185267572531147375682425323537237742010275165316084238713924942068352890695836929237076997072108824522856768850301959955746672092984036295929303358867999094616413055441923977218551507151731721927180329145664106325764224098517573193717069821719957567113418142036121956702846651966666321805824225707650641380269745629294200079410022692981080027768852097440870307205297490603790863857806889383582159099074793647617033541500883821664410108287324855743723290248568034457480274182326987577827646560891051483732557027417578081742270779259882142602025236855765783467119065666702192347316193126470658891574807346986445503727662142910977961533481906692704422032240920769756696580716858264547033047237239963476586495778641799986737273294337248863922452640197613307344219281644529873910450584546154337905299679843825461218804084299767083462805251887578904362849570613642359157469508618530534906090373834539730355062785374593170169678302848962258734008531072258613498042231608145539013538639689442506736705166416085365459552908497249017647852970113988603472493186186430885896791322111793851651622700891907782453654416055650799569672439045358475129379406049430025906927024885497640019352492202937698355039143743069825879129990700374310682653512153230731401894338059179839066251588959945907772544143639116041496683329105652440051790555766967666174636169685065953487216982771179847725070118680358887499708764047252030030299059568571393659926958725707233252285320515889240876691348388041833572398690331115501257672804515653728274097157805725802154493142631460215618399702651180449197623989085538860684575635936999827163075533707212165740884134617227308373856971336825314750799988352854310323669525673597749872046944875153249243841460930573434283696995502515016407687346739536083365280531824027692703621784752640100150769027370443002516367650652439069533569372775622726767441359147069229437071336098139082770500108803087338739671473304312534640776744465359691808120827361073126477475180500845487527606227834327021547761557978597764813175762810310320131127502756535729969932608943242774591924462866829312903215308314840752442658805562986544287919416593974361642792015366657162930659235621663556774835175955155829953936037558523157325253389114193779683204414872752136736958653417958589843299755639617976329352751222462567327630391293436353539437948749119885680109457860098384899098471386176442222901321087320394930071490875011775223945547058363581488051727278425110611225810986719441798018915365715437948639945107734089621572280823241123003704936920730952440198787199670469575994578290873689422606698177532602280257771723937233752693967633560576857875436933508373635818297948592699286626961649915830135554790041489260329010201963192804136208082601641080859788325027663847427065003562850644547933780721280756979334712782921134733084718969398701668318688155565206501725064588983384003392888357846123696060455700791867318991423931625131703889251805445069317301557330484086791839299403064904976080997366746599826272823112161964814762836271148829789118133041404559665034771255152203914462221534389796277054936297744652984581177778954662616163350945908758169494169322344498169402766053957315641310476483314210422446987843560265205572909192713976440642741473645573653908145620353230215884710876836312186491144631669831064694042396051225598785899430751943507536130324865390310420215183558921369696854755449924963507085865302663820746348172128810173166821605414663425241179738461811025172964033712343406033742606456184245198420236923696655076464596954961387721364969719426361294385037501978047621193228767377981321667364311721813035579569903934425262700055848228049266262748606067801241762458190170107438672558054940566544375553081616692052447758810013075243221158016617735927639517023579993300204334661433808797315225189530193527199544884697178957594759661486705292400278702317896359241858288282921885011173476074528525690611166354920261452978812116800426481425843159072115110401969775197158681823237831353047429810046650250980857531627540226221618882366377437436937766584228202920914427833943177207226877271918324724366324283751477480702897496436103165874602953533290641112921211598051034000005748094870141953331916780301274226221638081477177192248883050891912070454967500847814310459559821737171189527952291711415190313734561139566014363319634638302822038570070753256845594193054633197442979718073226390532971343698960184866895692831949361538747439103165908157012884037277492075222823051193850790524718546767764368253005223512336163533559081841506488540328634868037308951052602837979729796474416192596301937365522137142156064408297526200757766603210104960748035085842868631084101280037854400939083879086668313389225070201292419329442062161092039857091522162631722832641216047546335104846435557466367887901341112016616013770299991031143074839221381711692960616336129386095512358759057955017637203111920409889181507238158026184439412876764620986136553666882849099853970050501033357368231471396940019497624424881568452170963492954725802814390531216709502652068395899570594647226603756857591826203391134399031961883955011539086222327186537308727277338290747614386186642988065753934137387602312377608119987206844042752115542038264979413700411316956704882695125931562045971719069540391598989884485446442974835005714667408186952658924719707717120987473678594959665985020518726657126656891232096169222870387531436070490395042175910813271830125253434314344812536749762623398640521970017797528058822862851237094946158577088467516797813892390020164961231512413757997407684546949318167162006011075504710742609051246598757021327278260621180056314263149906139076395081786573365747098584206401310330835518418999125200152170883887292076511703952539849273806975082274965437842744583267361766464883099213561878261313986733302797305664562443609551414035993189942364922467292892884586771473570219908917991273044228667407817394098303589739836004933991112936389444048401373570432315629852543235220998220613767928419325860634343035963929609365728518801799297671312806362013953646623649636261555055059982997400918082253850463379736868863822399944891189162777469963627070883441184725736951673346310985821619730369562743701901947015683078610752752700510350707252558761195162599742855361950593630494767468792885989672407289438527318231109271363796466517234235750602817930539205016570453196746303476690337823939868934331755883278686291970711283660098095147626091579625390013820812657748932351592914203076090460247287606860797371131869106509294501886543719050347032972717153301370686222789813596092038261388012518941936529026049070808940726011061828557792258335097246984109089697365658495694824227027331970941435395423933063409520689332196306452085198715746994372403374210083852553025352566544038074660818225909019631269982891596284592964593607782597269625134207562690177785921842230397570759710244239067242039320815715761918499929862993638242985658202791498316661966281780373551343795995913016428084127015130912499537289329795687655373458457881378247511510333695279610548706824427965375953804623410432158919892755079032789050160798702513252299919095889000933115670499756084670971551299712232943113772277792580035598101301063727564917366633094940308115076589657288253172604334518784336318215996026159543746136595050250343188092147700433277731743100815866778048619083232887011091982417578663181622778311776258268922633933393242226104760342706824209678948870141057169452897475336783892174117248583422347161824364208157483682535452104661093595673163859264977632906916943452782916581912440979685044611629457093392508938502809447161771430126588038850509429124275429619727634686324696898913006508755652438958936790434853171835448386304821351776979047468147693912210729829732505223219990468101353461277657837550299033387633367882899422349791469107610879883686032604723106061726784219583113038422606107071029137894959292146218890589661595428796867104107118519485814727138925478038131649572905268929794544977662851192628417207556058166455884174872980602360470229463970028310653834471948190545979535636825366267855154982728889040781920848824653852185028285957592747467676175592946089858517677399182474656462666009841818690279739919155410060837021818389496036199212580512144817057421813756698066430726424293463664723748442662857019746353673437436433971007656465413326154037956110943471231785306302795231492897230822213552814075495433250624606590918833195239626302916592024246346717662616809204575209643390441679163275579377541423952282630532524845112022851574510629038560597725232328938793328029180285764819866500799833129241775118111124259996767776969309909281089310937482935440767145444630397584022458523153991903072771004791731920388257083642775279814697679011117414804037860178990259165806389667698685846358977942158010784100432381607861378924587677424640794433050963982226635394095045765958061658227937921339161794678100153119604896175661610265032896431255783338799295329013768891459941882483159222113272859621923619524345995053948476165378554808706254522708225745120669039250020934668239882275218179588162790633268161222044092595373751805522560670194750657391610126171749581889544378540070138548720853047316605872398252431225201632162224356879447085171059667868434669190481961015283497239478285683739664103752178001929073168516993711659231534595582541678047466834235540383873268219474769865982008635365558515051530251504235573078664471667377524835946119903455520936248582722611530115535562525801236329232972676660909248840965956836751501635332108692103426897235799320645029984774877767917558816815856436350589995659902506970898438261792455767802963186891188119851721302376105210477908605362139435342631971568195956644313277095521436553977792237381565260842632607153078646035214427216816842731531182813318401074460759958068337609151711003375375942964051440579820604590814022908072152871646540802369429197285172747584873526881361913009520582566806169740548628200148521131365539524351946437664491965891301491027562669766540740724721666642628720305934498110200181811477569791824777871698522831046206302047410954793587089696944168444661669139159481194074356685477094452558691908652960702387942809320991737869881354278862645069851671463033697820643781627602602252600935550129446719930904095773084133343880848278730599360949577473920980394655274138548170828210855688751165899056141968173139203325593266531665613217744535388588824736938331146751647697387848397205951696981983856010031637739818377296330880019289678823480466467377973666735583459758614390630510624566218208874557581484072673309013205360200066283951938049847201172379799567456117073775754811612501589902138346480210141779592155492913589321483074956598574590638449704418784448825938695778617334602859980610101092149669088655322561394787423787715414977861508143846865288493162524699096106794374110907515419162280623621067292331591605417901519012152162698861505786578629602278028038399810449087553635910103088169862776060758450055519716538605374269285170951133147674807748148442680150276610630306996282425358843206127922437060864183453256554637174797362831866715181600761173508125886986959582279653997902615464418290666309592229570679756384064975323773904701520451330671916166019530775677182952984433660535805820947104370216317886980371623046713168387346058029910652632801087459917899609973571485298053882809534317852378709959389658987810382837099880255910092683472100865601482073920996130388248216111029878966976646678492113838226585632845592517049150838867734759768430652252059960685563417362156350633997687489938265278885031079659790534559653491547349903359119470062689618408428717445879833760902502498943493783722719257532537552918270730007664591871162878535890595964871326913947698560281041636229205603414877971606521187899088837139967001968479013939043484289659314625191625161692716403130896320543916252044450893262315861751885257274142163041890231791500654501349115606140325966301016262815517903536641853944193294155723239446468763043836117298280910601769954107913655672725794096752987683968002410418842119393837093965116878098839564893249789521794639947092009806029028683197295000636673292948153551208413667604717666617330780529852668427440201519310893286099162598319493230926821635847818639984195469535665343844040635498136581662049274830685414544833780425349398659220817994066491879179505486306969993533262020772709049443846718435272690141619429562645803996542089393272836728142597752755054349826728264866660496204583311396423534840209217033433773302482732366361121133395154009598558070796656285689841487953913881639260206648845895111531354709630714203038249319418290150808357423013182417239883465496695218418410546649221458592002270038805497758196115083430778085388902424982199388649605154656823619392219718597729894297127263268200255509624710301608340932490701956057584641610667198710120340590064576724580468955009652248689991421852749342457240388365223335867963453398260416646656140996690854838713693822753546212000196687211351847441287880587270899148566969036084126429797241226267204033345404611208582918643877823697945095505443852656860373230056550427214694758320765714242520767162801611874463638064374898637815242506744670039957651453495197786588341036016597845252684230626789082264453999734704593700596195728073805974705617123330405082855819871916519718118532280353159514034109656070119277108556379033990780833236137801769435850933716412577717852538217959354587772761053154822554355979853110159741686699272860279555838081293522804977145789720909825031377418276694740410162183342561620478859800708063277856985266068159260488474006722489841382416238914181801230060171265147250763660187923891848807401893743125789159576192549423147450199467625795050715899727623686915054603728635763301949343985629175617943477115543907888769093847705243457155600652228091042721255346787686141623384315343427394306989119784187314733401545712676089618687993515548421098046487554736727852354967113966057328716661074833234839633926323207378591455045556391748533501554661270867254455524056795770035970849210234094780890565835819748390490687331385381242247172921141165283614873249586477283421906505804233312789889040730798497500544840399815049301656246117858899381355309502323769834407605308123602713398614097280282525825270046398460837012689831988363545504754888638177782927467883893521939093771175636679839667359624079128165360489138449615989680208023538323554775305077726679668270788947139361141915227033073288401536515571520162387059968367972837239096260109305650352340948576588775657284379414097056175374697512597331412587773918570916991524721032074647711930664195123055384692970051053411202205357518046035121859140030060444087119910598764085538791239848890796431752601786933609242853665561429704991716851945967542869298887919079304648997571032506844884308307916611980961667316309349251676841377823763501658177498206726776235038588932316969696419833334695303659158924017451117324045605589447923940529336707815111042704653751871173621123286119348677395827211751075434346894579663106188628246332788155168388964783230036499478681167185860495314107635406098457447328505426058495855684522261561598319932063602381245474425066519562864303914752517850632365887496358345146719130805844217314640368278075618359200211708428966874809900669624296479613501736530475942024479698221680850579453924494335551178274725174129376595260244932090953756517034462151208509776995503781727173372172283306302407472360573821085756734382119379721126663793554034050391444572223361288705394427824788541828677151811441537116495139522707028313728758748797707742542556921596369987436382551791179755004571167625107287847731491100303149026742830522502603452036098310258055710982993360841605829116914648175318623010147953572714026351985168122471271126235229722032823552480169801709619089360428446841417177432445843382715183932474290140052347277101627974140409838096360718513048499003027908085868015844599262775049224939857031307054250846928894061023728361646491561972888144765629680428871103376892171825584988104982502149281675122264896456139118393850012601582488163496073275183207956047249447682405647030441044855246770390800798931480660598557848968631943847812031574990995723015149840423360164322522997471214448052967432119437497571252267646826638692216259169556947883704112844828163719450044594143352161303231704590364600928671827664159634692671055201108313669806992192634452043397803288490299292997921001015047732165649956389362562760354671174606224251606922875682367009594183192577638644752473143587453187572628321874238370672020089227916393002524843882146167438952433949199851134408039405157453829128195442155248433042976675105062204561855962847426372039957971235521920127396727690072158309909320854284857362557702022946007305711849870228515342633410747263766738356484969012448948769244683067791800901516668373252015367136047976244542135867505007792289531204628749020403137083644451878456244114775730462810800377045312771429455637972768682280098501132552040416932839563406804331175382021506317222688918161979714374716880164176656996044626359674283436045807472113026218126040873212905629008388508309328808844323934953801262774675937549248926334029372162526322497169781596071371615037564062506740604216768896042372703436304884420792318736972177705039859418319588947373223605080839480950383757052971373854056957080081492160433564156449113135014138572003879068196380273681184159234451336427545787091558922505934239561924908081747909324695266332416568543910532212996906108048208798486071498710811250062981606312954226778160549876442561121195921862789569283449261268265525128532487538280664263272840947511199936019088349851574310881295295985212279905604817444612711414112984416433118847828781545677468364719780534406887865803962494383918913179808159553430089537835157529085144485970112115511602241649581702063445047338383804068065286868880152910619781072631352530687799314106710310300479245831460666961081036095194316331043745236515431227227057475462842774193197691089168627408379203062781120098485289576561895347787798765236885266487452572481668007641580382364912846727802882917413390771915538683355199886957992313740612982059919385721891155654490728611867733653176270600165575357424058470159407360509169971769923369407513879103931986922331761035758861384433439778362458911333313555590590516012743847830766555284883866351241931015096036670061179716460693390165204767341185060043427935875994033659041701362675116341980168064897675617615450006681051232785858797666531289287901241385356667039612247948958736656167283323359552627400151853088886985739465638429445368311107721987737268382787878991941482890558063910725495448868619583512979130974825305987079254632076035973754400079806623745846883693809662314706661867505859206158824986293604508400287675771415675874260090818111395467745190415226076642161541362760856557528971288062210512918793365257739455672918911147520126135537502724437485776643150866801546090045597942973948960850250896069719686845077476500685664989001540983404724714870132030357285407532178703218698923347140815147524748163543831734715637427133356083114871535058103907625641734544481254364606039799481027523068042486808477611679249584306512705143205570674233695312798112270789793817888612153188849466425847736732147742483788886261903832557615705608215931026401061070114844491260674917873454817598546752025562113521898080304464955676087909016752061565475510934894842603564453709585468793182010160325778306563003599162915998887120546302253385879537447343897869098515908137568807056768034240535515642418576644535251400839724685065584883815699981290634053307562652902050647127975412563331552103564442850734179045957280639695389076949777643362978627434242693571418453383556273264529643182790405904472016749638809500857919700842884990403264057737207450016244425175155934887028273331642205842870759134916382954440860492501356587356920544867637196878053093777474558707085305765252454094415122152483791993266527754282481396399374563217199294594541555903741023041286901399806025750140578559304063174181426675939466584874914035540180717215947714817005652777890332696983010666126958525827119221518363241057486971763874843678324589748299167551231923600743969216848089513140964257268104674791414113432579308152026335953208973762720265907035632123977034759343701719898829926054826366257046310949946066303188602433966549596101500519082072944841617031226630974844114842130865302351073422458314596358752700007313770376781936526391823349653869166126130583020565474773861568680865441459701888590414993827466129291154734513574905209952900821922824927446903383188773905911509938733569980094078779862285936610930372884527193184780324249300896839387019535926280903963855887386613299860331556679056875565697508452958586023053334172555022162683519184072842905390879119483566923073602296731527894721337928774287478185417918891660008429152974690186794792740861798363843154756222395427277557715081937622006542603328538635346381900930559004463830290744846380639451784865827689196214280566434113455316079713887986317027177985593953330895894207125052628496890547858593855207609393078837924441800703582250348571308560807647984205362525138271441573679627782515855985493824899426542151192426581669978172007570174802430306228894092446935428183768913263481677300412996138306985003756660880358663000076924879033189054574880147682542434884319660291417569053058627417742866815131914704132505288782590554838181975023878769830995796018126781587125383533644441350271165262074102329051813606272315525729200750238009724292130483016871640192926279838061631047333217599216353688657267626503208583239568246552139872628697030402620532130556875608891845667517233511647754687191916117375467047938458546454109192585223237754820865183339592800752714373646617924683078750601358562927419014636720786115952879854994484064160450713682947842329188150805439607566915890408172122808506905452402720335714407348966192259766427523524692456267918881140363333149074809556055440126914234691546271212382523740176345461571765833056631895589722640694707009875882223752411222107457475490933818734237948758202716400566979383561134527857565412085346082395266860725099537167762464155398553529787603983073061962153305379157360242185905562932307990370213599120445458715960826338433023426192978988144786383651582898228529087570584772428189877276010322163377560919023625250277379918372260605505779188842728954858916641255858310277358507796747790823479734279558686860396758634799894956939587342428305776845869282434461846747604588591836789953685721160503452217140315885414110648526510165495659480933791871709575652836684383169326284398913654722553363639657837907312229499547279902569573860934373764790155266436860542895944350073067178892753811179995305885707900109516140109913329793813923316364065555470910455735581970831250951342139954156925959296001468202759600804162358641495889932744305869333809674623065000604297922298699342049845094839894012156900834577054732606507683622341464089476936739906363089512350395691285872863504198261497108352697388891927103426668595625382846838704789369359547502902494703531884679129794552515854432832874639947991597634223233316128156054306892098247787550725152656530876567810990058050839562285204257207360838387366720080421845518186545216306375252117263683731494146161459099616052550930087191089074414220544196865998098210604759107067728340571056381437281267203333418726932250384614528790664701692611629772633924765457112927232235826623860432433191214560612109653043329567435661647019120828675267683845745583303173289481482791032735926555696828561245670544045250038886219799356188954277767866561321750284773990671005465798934266288327930276950099882210216197191017206659214950028412459299967982494847315582464534209207958522763619544099624966866741873149601842829496844488221698498369468135289863030747335596039543812305058585567216004776387670204995712607986443683923952014092122657106268071200733474838038155694124875524738219789843296664929279554594458353409777338795418102886782789478019458307943958370813678192635608821521587719576683074820097022237633977527782251816956757903917574440775671578197103614247365293345094555566014524331315114186831247257044166815717818576861592656053018824965933111058207820352217616100247203730814302895245179409795618213872066675145304529970763693092197189673237135345215107489902241235434359375665150050080651745020570888110907255576042034244159150577423368674551910116289614337817139137535010819155992819167010849991655827356385781272047738896055144678694887484200700043803804414505866977844054244023000886067069013354333967111216944171560064231407356392860559193720169210178259252621864976232071648474744317820041312505912784594972707515569745279223752340704618773579198097776529639940532224499893790836705099652058599437225424105972912186525418188355109147808263466065189364383161028555703376971945654479723040773018683870502536912018073170534568789315871055599007665030437645148659938283047777745722089134082061653242441731840953610204845420280979277021587874312575707309872055580135045298651311532795840996024026825151703495167527598061748414345080797706910043238302556948498971583499952002253227575910961784063726942949978672030227596598495182862171042143695103869207879925435526736071856742968524208432128578412207375354452326760151014103106741669455909294835166051787987336662890768310608327635085958321032263848029143342773747343448465814065105219577683555190149674645641007170055786134050865601821230235487224323634620746367289935311814759050231121792982611754074783392737751153073019919165729550869317201317434513795070764239992677932644633049995361383351430451276006521910360594700938057760984060876565779279466492004594274005665044738296396372972544123340818973989604407307161147331296224788796836208219371793581888146557999071145747975851203504218061487085465641777036662524031163309977514439543945308885231940856682936078326081765278752509785973922411229786755846526406507838140815073423622659845743850904152360266193603313617656462913567542736101764638706647997465041268002541154622201428643391459811758272299015877684675399621437049112445860738240630900991209222835519943300317106204611150972800635607235742838940777860113254798173772526332449689503989047107476802974312563374473156554808286629177262833021878929275986965725154456820158642391890886905999552961776411574183103265353702966037571516161542248473372511578553225854707377675956825330660648498670010387965097383440330823920248766490397648427025759602221181587505684802561029097576692431591529259842332085197446064411934928312967325374468247561920552357643682011287026073396188796607504981798027267800537615087227033433085544261996775982168590408069474539824373764480661835909546024252341795785158876980778709251862025995746395834611628169753595665356086951267253651651520944032107555982231927329828595420728916034537844347118587854088920301997573962532347292286406908562511933099145114244612588504122957391899791879717870991335009920357111504042301905058340214222421112396971926194709114562269555617878064767767191038572810848277116977577297192296527420407602140618859487120580848503069746187603404975127757259485965772227069812131860390002302647299832614592373804877744669983225905133295946379183632864041475909420108909956219232040076563872970160033166859373096216407129868274647297784001049651400049232293593468593029460472753957188259732413734408529581751380557538161844662791141087887144143112716865465222034552860905902933889356943736012874616189774466285219169904138985882189096847914946109261598751293409029044667962778730615184975197987523449366097387367399608356222727600992122130735253799519811112590566908488448801298540776643627281859047592243523080770051737592124067185772266897788531405259587974544252448150718181322357701696430668824029187389149642967995742821262111044296442653332569202479293693886399023985223800257110927922756811837194457611505634397458473512330178631226846145616737893631919759999213598327905796071702012518527276469669387900379816624790922676959185090699322720726398313348306106581027301892602919848410564361677582802034309295571024597640223272793983025868992923742691388357363751184444832697851109909220024412903067946240976419198905873043563512188671153185772999864900308184551834711826751813534706376910025176112579499408245232420953446371303690612102203732027316316817929116787686506757309834496286771690065990913893844010021054183690755733453436045955234439615449321522324697977381459601008583144350173321127695643321361103721228505553057394214699292243961903271063040310505173152970861466901174166757846899821585517780006841032047452328498357552983823032944040255433721008829342730403342854008075149313661239485338909825865226475979005313525528753730773858095490129786772206345779900115659864951870877779449586429456006457868254294642209856139608753464292199197500559122179510821967687140312181522558427657373530958652759425903897499267537874796234768893518277303563248476024809375900764373930562725791813336726730978615582999600063653033288801953777289240891659047646804610574149242323685460592597005049182202228655805451141841885273786698341004581691968358875584504676189794126334931455450050826612993239157759733661772184292866984473444868634631130347039563418441987239070076216983457154800329972066932888021049505833038917051960717627132265747525803503086792305370184055672201940128561948407854156822019655577995730055100540569542320263105436434115904879703546118559772684295172046004093118219948898855952600915968747121179885909405275504568767795895481530702349543151342217589972964982189758982002553062048466238349753336804399353692486462523025954073062870828324422251936411133882852410125460610825863929052276841711273557335252764058270756300488788774147047833422939115288325879305493317495142314016049861952572499015436595529560767412282902596595852271976723559837517534526391313288731538024137572221720487219089688532537573659120536363727460921092237530093124478757191861931974980149707948657471974684068836385964886663822376213115519012753863024907928657657265678117179408059393164121402294777568118925326864617045912051432149238382032986818551823029467977119895719007682534331813547791765503984855729995678642156450182634410670213372373694609717273841475462251193884084817124879585905377077811861087369761881377015631765427830997480512805085118329976228782233517778330705887734701549523132806808066728175800103096923542203892996326302796175277524413764704222090577118046175895403767932119550420569653477080194713699602003906645367504690244149359206317266721383503085413747949935207242811351269532571673673895534046435750698688398493151106311010593782444072972520269624304923003866509994193465317629711245214524153625095028123212799782057352897657608028923297109116256029499975290773611378137847991850103791429620789078384261388642320038766404319428579307006587251634558801312647031481676850273663695035988333052218122037408543291080425224849415058529775725421809827313168514485619433925074509766624710473617691483563206028091111744026685373266545828862501202232668023111383669694767190117565858858408592576386180235762648713617309115314006823290715916475829199556755231099631272358260400110738307357666837065252485469263268767244549705515072632980544407005979994118176717651472039494610917139978536811073030628273299460205317804899800674131617987884668294936321166865794051392951990724953921998595432776725952155283842337845984849469936042185950234627141427279973370309628058345841522373260490505267587217765448821697326343801549491427390006616394375230547424041794163072411069520265918900144727809204431962531966364557901813686735996772265669706265513586697632815490249832371594032428223389015210807490386543529897445587177686286834841047384532873830464154996891893980889575429849714903389276412299614064635020170920604302109389428920803900624967467575068946098687115770752413268478162102434127522578347537999031284698905350745082847452953290550416688095851326618881752036879405694165970051705050551732256724802241670557867868474655325366435085170904345869907947737403062858231084806983036771426070810337143049317522722630851945152316324451975611962284555401148667870755168239966039129364984627616632580353655153017135290221496053641772893079695703941547289404585288085965177398354364279286997914997197360459763205207962803741240944569275140140205855275756365156409486954910619662395592460555229732074784798859049345349546619875985660082960067122977669638108557793557682511774197523058947196997400232575917941051710075998297945399999333362398209369111840773500093416360247323303928433127145897255720391842977659949986214992465193802705565191312620280657675495713878499751097432285347608785655856181059811161524060255469156532988961439426592766144463988823061227798561061808047163082478545783357177525850458931496832584702464458399827695206248950441506710247097602130838349846277736054757087881124765079965283526371487240198950050064615486330818379048350856126899932315294073456021822843137685260637788871585750125377349254833842064921401147028239874933576208574235795774799116503791978086850655180697617021548115823508578273400268772797469266684218854331794479605429596943319224814647607229444939613324322741359055564875249384134905056152848684036011702248736316075492138934729735427294540178137119289848546466379466690533578503457709855923511578630624846779483332573440941820303495278413630189924836759713708585327732095858823387434158643193430133179290950950899265288267635442548672682061963683557852333205687630769270051614810882669250276748171931609681346593919847066734344978437027764160709581525182214391452531639804840299617740659730409460628368445822503871257778824502801371726709843001391068775444349550404788998974034800313007334517628369970019919876341918285096850177155847261160824581404562592179434130681152460173443343052384842377905845925116774755551886444445861272681832405539968721794941588336668542224302166708953824090192668317999755431144260884598993106717838264328583940893769830093877243980996619850012425457133332186223664050608093108874864222736456570623192555397960239165698857863782259695030605928444201799202144566926317556611064524770700092996002007404086466787214281213478277382565320010213484976371829132807509577921658212464764925458423619188584143866391966098501039571153188081325955553276140905321145186465593627500455086181229028025458275989069029252357807475397418727212798133344268745738592752500267978286065682526783863614479869996067281259703463110221712981901380368131796561451866630576436376009852692850258763548347991474843400215437966642579342543869791573297628451479573306654001422139876304873905928101284677368384798355447666460591130937626827051647959776211047667562851501805963761198152541032286881548128789946041458129870016603657558184101920067132957728325670318031748754119319090442976148285453154157589436228649797913766293382611594418051881587387851802118475170775322225869493691237929349171834586260073185970123184169515028070095284895561298317512245737088779495099422020079980653991174891233909847900010859355181188864039512033381576211205120817330357924322477170978557967487832230988316911619118892357485121988733977642896179249076351928686859098434799553167374477603418176758498630805419998466878992302357190555695833105803834492439873960220279311971961849551025307175003172489803736523423536690895384687563236842665441949622703785314945928601982644081491977443085147529129810425069634984756973399498298061905485533489472710462512238067256128227773117087461605872494464602225789979298080962020582692720226305705808907756007567065254878088570637704827781089685841681227813351416319468111920728156430867348931242193707326730520897495176412220902535170038269389326848951843214799313676190104693818858963982225166101319159224876600275597951030481125276467318732506732169011437539409703622253855877082831695368641537010557013096908565901924727772548303425331463382868037899527114444277346792062571192562135183297734747094336940266106361091636779991292375676371587540097448416626376487421770552338960768805399904154327101306932441676913251644477268615758997641938091861917902865660312357667555656656969452893487098225190543957379149421990813031549607878335598265781444937160060936481280371830905632491943139781785008336448510971653697716349928643593963350466449617173233276706454298363427551752646456076495880634691980675111336111102337173106636844259834852822843000009120269651843304576820371522201343068979388822852872705852470818160360456741847175701635976597640461363264167283254342060098666554947070186093551409181845381408437384519625671656919104964640206447830441864149273905394607753960185831846809811337142415406868119464738087936217262312219882979221224053890633736441776052795647740395879830551841310938892429149543146036113069540797121073376183834684794438233100588263659369047283646638832992637585476457935471508068826427937213023463102508822752845226440516185884595756890076797450713663165458557992841870644468548827974319018884978290031113613624861259078069979549641998417926723569818667420487217257361490377946006143696905539105419321922804818769958568395937055290688039131784760284618525175906739195475722302284898276458151129610208832583135987416710755606162958439151725815466230317969173255807739068481239655358624791617450818480130881273051925613247498856966996089909840038306231732245473403020443398243862998433574972940702959598481733747204514623576796151339955890845437305236345243662954326264818917117069850829064156022251294335320610737198848758191281970377666602758890605422217848005651845118688837808321414194323283049526616541820633285720521402661653078983016243507843277885710432258729130632967504920676157225678403576762461863330971386169434331319832965858078559798920993171743784734572992515852858267943165205396771142556391712029126785066295518934961654102690685640461495981271171044600945716066704290572331453066219124708706278261788325988916971281710884418926376740080428967786720417616517578416377385765663076572636708591789491416768378576234015356206495956932214797546873354582332342891569436104597960459753701037511866298849621992984422819359154788926728194938037341414698995478036423128371896689984190903805069076338633201876557093872857443683807538264096063581360446220607218442005389425340216578903913031074774147386522213663060373484087115303325118303747151119234783228164710276179397494296660045014170610184397443686243052187963139248958074412615373013214705042240723673696255050313376933174314784057713766009379057266698808569664708501158175588305742780306876141302301229743856025397875885701555530405849569340212889868558986440477071017460644418733816281309513469954344692042348039393583280765585381363455705873910484207821972766344734159313221867624349168077455636368272919240737552473191997096961011460390060145412900550075719178678482364834324138952990957441651444247964571763746908334884120868219329324770971025608126818708919306245536493442172013234416624369350158950154782562434896589851399540065594773884148496695587602556344923231427681389118169303578043036763216943313136256883777247894565765237820912499997613762219861661011068557317287814971708539141761874156727815011578005987009473178991378172063575839584585353594662924491112925908793751041318736459535577764990094602659716158992442317616617393273059104069522592778925204466971475271682761877746134845862553199546079071052222847746038851902258901351631054960024456229827082482758508961507986723734018288874747121469024786173981243939580056127456813718713129342520121368792475744067936882777506062554097479326800889169960293806348112390669393245164381291071418438544747098972266185644302693411155182185160456191318742469250634595492081665609963256603754796885258837227611138844306128801905161664617189132959536828302997702626562484710458792410468044636478873522440938637441148847168450971794395424545166322950116063275254326338166160774039016076400095269238307503735448368552655890373378002960110147521733954365263650852268901667047117519826338408261480668415735004651736321712814787660638342884816659154052704171267917014494057688598656139664003081940633573255138643838897522273609407332353559383907487939742931342764686038671081110750571862846021304917329684411855283263475800549951950135276552592941521910487205700114488253916011456901896112669703872286926276962742059070960926199056395558693860625483466588943349276626610616358035174780274318355949586336945343627445004057032301164724156103895877841905269238907676975628135243239775179544114487760554132384435175024039802716700605292488681490727931795370185721535827905970177929326490172768451179654032998651682060112412752505761485966428721937823795889376229535902785211254641422460855306746533026980447605485965590487506424269411058048844462555178913982717861119763683416930432097403272072817111102765736716260926425752163272349283790279609975412174100945669071348475519447137748036380350703475518354185867640695100165444851106414202488039727830797384694405780321253057701297026972191069656714287734033590162919610340835287414155971318968384080657586304689635768920805797320175493341035815479933985328027104990596272823580894284336796536591747478328634166417291231249720068061287583603957793858257836865580869622356560787286722413383445144960543846912474145417449110173239660569959115201421359370571933262773674524963843812190479876895464976292695040205077243221562219966024459219978453107217131511621559800225579789040314961789213080208605337152881093326273705732488394236920550331854243547600906176528652819000411697152822375090358139461720409484282031312753609796253177126356309948186750194898489014120656602279093450550008652726149061197478947151128445316074810342772644952145610044783691758421980678506080475426373105084368505934206785360914707985095076988882887769635207424881809960674487484886859796062002959954532283538678341056535859744524451457056357281759309314596190675719998592139612461568338433907821321959602001974632393941045587553500909962929868252949944907595853563786777048275316266090569877031923382238152522988750839145875692019515002145712303556275833369610724969592180195791474209121300636034598845887330867779183113115998170175966361876684550167413812871342311594596085351402264961589040977516364228021787827284056516186482882068027681288424997400020604843471680943697131450220203876064511502010857998167714669367175723743249606035453821609401049307797969383721825772638194707963434224587022897856132670324665740170220112454809547477370144237678661933122723391510967007811391362033343431654532669904750039801666608847945452667251454954275862039276720349828749849568923659496823305562312584380537583607143655306752321021444233524292108346335892509235952883636526368777603899042975487728930275561256549208143361691339828402946705690997729847410844881217555219909849175476996725647629463967031832975200660648912848668611570618100481186577205823787853029558129206380520454597378852880258342072305341817122801828396458633450133002849242481964299245822035127140870088714832371680798665879936292114676393430011572451144831161706589468671697835090173659684215855141978553754236563958418578188848799843586908747610491029829624063732819226088783685960972453009653174627807534188144023142517785496153620323344028732233344815616028910774085622070729365340729790546135313144968886199730623896132026872596771674705499496823311785076226810274634083178336351082005740756022508620252381384952848494975053991115872297285695069086953299529361093602414508576606382719052054382081267724340852332863539665001160644582342031492711042311701943154107333499081186735258877020378179988171543740017967570732698882860102762484070050307800944367509220260707418337873126063007531623314942444052420493481537066029879306539677386308569564182541289554559495498298684848754409849313204098091617328460594677502448953536658928100181251816919950249036246454640257451233473559996081124325917788064539038433271225024119239773981838182840422635760750202187510206980059245755891618589388782964970803181618299527144224361270728024762830025643544670399491293637281040056869819789061525063532629513405926190688663749394869717694378056059665046245757048755589111508586922872247409284830252173033470955121124302031708477389314067469117993077220994764433108803621896071447010790187154289165637633137515545684577359620544063548903970963464965927520666367445236128173108526489280225716127762667030551488161745711195289907624564604859372575660404785837775951379570426804984769024742354264890408811065643032979358422442084781582474367388296312425873814476860952034555492421443991103827013971686345466300245654532917203844801080846443589908578173050664218423496133744080448994401821164392485495975722799956035728353649058633826201052969110045817666121707560678269404685425870453925437012802899299007220737535326549590068690092500278382261535570194886158178565901887608703820914854010175679301896437350016609036099317950159094185516175377964612079487827041852473555057411389333525624369099611923394696846610155247515806734136525023426433573801821097120542518286045523288018038259869608091827254090307378529561210802840706112867592138710196231376051849069861337525920578616232177561474962318606122317111394181546071185499196272947014917902830784003328890890145243884501736978936917757382312852628146679589393364568847840013156593524810759008862006197046524720175976471976985054176907480469731242564015304088017095293037507499197151674709330033973726811532004978824677371863465965251147568291910762094411116519470688438819807436291974946296296865116695136934561211199142852536430787349231921356297889665687748003413684590599388766217744615071192023977192231639458219913283687315962998903776335434418629660094138394030552796593535692490958586690646099716952928814980691905858883475986300288708634295414863335960686818596531569399631144482092653207660505598274031347634855537866269542832064941403035535768230884899846255669884492374533046071772608875963377018998654619971808386008518561114348527951116210354749669790899568061851141941973185588389923611488615997486680428157943569832220101208133780494105733388597212428563032670098185895796527523934708792904052555608888201039198500224542791364975898648812964062629364280567503668936485918997698374732218921492351604732480426223906086454739601804630849357665346211581541585658783009784489529265804638509972299359854098302192968040019519378325893723342038960541867153664543151052657818473948709630518535174344656650404441650558369814722784827184649290746676773237426302855976785400254718231534354670982350303304773005572141561230244361679883773117591607314622005892126698554918362872348413769266769658515699149212201847806720784437161378818173575072294874587103199177786398214907195167151206697411879563017170544938760167589175618279260322773634206570283111581107234915014460035375978323454704989267382095220441765650647511515647406733140875345735364278031354848245834466218820584671657756563967572354965439644289369813682113389072207518617855150128786720402518188881398558350375818676090926606511048384286397874261673812610989285114719344621764066801997588447812393258903812170939710467941549322892844007227258745601769242660721086772287847929785299210578798984632584585044872699919845113294078274523290366809460092856892172509481029883958056043120874375052131833066541594131096415499687344089810927298140046952267543462951174809305452289712923103596269876167349011592189267241452701549510669039289526382504731344025742860140225828527769321951191366541884911306396700517467904585461955215460776379802937836037102973352714660619835764760484530096858870611752111050272593758620092723556106476119856583959015201876267365863940269039845339299075276268283554597795241406801463218998211256558703680129775062325185763846985463679834466048752001798055288292222531613667968812863550695270748148756543682481995601621579086919355856434926467449717643817684109019106822758306525316325406273787650873202604238185181712974415441295523023404700737047336040787367916701988535546293860368319242686382191842408661531448819850351417485153456757938411584554764043348602475369997342216154493019063135588864755744663908208240106353615676073446705597880389055116609529233731920869727848798939097794094421157264613908062975295704651903716890887295133682254879377413092158021848264843819377514707911727355600739813693576766284464587046001069185372678777065250393333746279082594163914157983529310231562272567488264975892906800973915875771150681394939240703206641145117757341060350949967362901096127530549710185681173550353826211608756411409135503324121492360967040286163325452566292689526895985601837980539696081437140892164859134077459345572726822611156868995783242729900819386189232799937665216630915843919815745373840474419995813631539344422030601822534061682360047845750106833289108771165034024753355868520425441588574694061766904515019087909543147975456198434497125727337163843696837744855020641649219144615094504442620508291652813987020647816265719104397402372661024199618442554473498734963127713660161494707498397310087390814735047223341107968792108212164036508889940108997700783322670125607081336423875343509731954503281035252765450615708943319678835572195811020463365791723336589535048025987397253630506491076395216481036243355553506695787542677044304250864700365701956179479479148968560898551150173248305876984384810378906971869690595550456450243381100921922972530949749830773815765103969950727990520014755201373337954245669980451556285944722243120484059077983155558816792124556037343467603901427615561671083856272518072177507581206163460113925294904254204427677201053800639616566922778012249859868294096860239294204528135521764454977818288463971839360196692133197340346386297685951415220922553464241277547195421657710737260585461960655250810619393558915655595642900582912995495436511444518219899164861397746278865566482312537274727184975321159722208298125271090557490317603196068619718587414922628921864718973413590673744658425674657709235505965934192332295346021154867020258143912389510346292494342171087415975559250245942381228074350711213256604263839893439855481148531882804466211736119738615689237326122420086267576573642577172812463928340608280407217012242182916338649200488790905864730473010568635145237698155482949994947010641608417652244497221357041592767021254467788134680358323300875013751965553881810328494054138062705557707212748942755659621962359542827054413018314734772477150873278303508196669293824087894129392069810996200304788695725521845802913885208592875345800219080269230429570569138154116552284054382431153027521721394261551177693175383371096202176447440486048085285019821002964622027091309030660078046455793065652112136530480815982809405570088057980103377361977312151802232869379558043921286412783304344827091555556666950155128558492069345819554529185238836689855253598276935090648335503802839917605346457472396655331183709889807011640536861095021515736284886582703385119907145857177652799719877798842105286119997847485960934469338457748800417620097752423099378629550379063078448230233255347635105285184718882717846802950636282462841193623461424048058625538143295947647516188708863748907008856327299177613427116291263324636723334707790451521249935596632942510067831400723311794827902862483756771657564527517382212961064058301126012116023514513134442126263782656356014343756233981866101047120663852953939889589694770558029242411968212911383209257245428096623584760750269600084749955199920983003372752350937895846268064430692506469255774774018292879336083493132117195741003753375746802408178397391226138566695093777599139120462271488391826280244604575843551024662022500350194247517654885236813175592322005506838725609496901443578255043592978744397077345100701988650877359814012057832874105900798036780561698308852426476523594727906170276621825924661763523713016752369779411375901072618639946658613110365624653001511245249999734119090428153805991345928242470029297527706684646784898937800804152559207299634903870459091011347680230652275386899231367541591990427622620128930938881589741570574849271640633500104115395917596727037801104750194118325768913106545481376442425779168073369465569313264098412094247510328704298480012683561149912306690333990908716574006388298764290518732663151983565597858864128408422745583877016786211599866511371248714859907869890736021520100660482366108780867658134908930932893524280811458883160717732303765788777899917781185429326572021185406484907769717231446019480076914385725864808811407070728084352976783656873313248457215344556857421999565167944028915995982797727730300010077000646152025957337405957689471359373249355830178303851863197032634226495328753045770651475353139905464343747627360119899694334956260458034283909349383231689253643201392340762668454936166904534311933858328942235585983974769314272387829601552037820749801177548547285152863755516267158407002824672919871947679808683793855027593226280309319618095408723077905144311786162240701400495896305279344105179945919576862855278152232076610306579743078227807990295369960197108404961601840233813433679609865734453602480977752926936459261446290867740757368468340305646289536542069285134304950306485066119938672626321979102509735576263233714441705645394451155183340046941320299918616087579610023056980736338087822271302785594560275123738325427131184507420555187828009208198521075109712710775438477476649918979464153946248870144222048826043100013917235063842651634453618181535303145439499696922818922723649395379052006386366410683013668403760176161992991524350306153890960517994111585214460848198328965915752009518772838104987301737861570068889663180972132255340010855639290399237749135742448135960292020575714714620972110240730080249600411149760989655967264432715856989099099750456609291345248393131198112020246301586166214795983917063842909351104220906983000507135469104885499670310251472699800201866256433665711267603083040642222898039143555323052127049507419906313504444967049125478990403066427938549014666231701555196213181693039762590223156074881754249512991937235769823785589266767865321473861798069524623009192714056767415940407763429309123990092770204314527830196381443403599807740247822463957288551121166573680059626373400607175217356419254826824194430901928127292989415094510298532458542081089800079131947154987040154002058336018858311864216135234722772238485074437172421892834282687071908734760028631986448776521105837088163285204302892179085899052463978875925246233037249719663005389453462267460411342897564907082895190804411469695244906855895424664252121214583452813188299178918112161547150115703832315287636395709466846981152503997790819791984124851987936711901053412563205151249863658042481102649458698216855722807699249917919925067790837977442877363712523490601620407703094486923098539748331727493479085787148045232291794748197600877143882224514292276575483816606333844848313306849161231625251107300942328781042417542105356873427458070942173829764931187452041396527235730956783226758725916476453897780901892439267940582369704071496598177280351627091300492107097756972550833938492775856389147876755437567296573390076133978230134382130593265134459258755505528903339815333929113698132434165782296559135572135813806971059663282084528352478789895308594858332242520752627592640060031674377880242902610576698337735053233055926917025421078094991263764472873876397762288464066623789113418307837707327717299381903723258273594647690219044283714640524914537022856593538806407340110119914851390957144731947668293087622390913177894601377177934288333258002711854879821024495489812941135186080828948139042958928873041831661898438547820856908811962173477754128901638951456053974333822202358216563570601906140082694653779652091072600830529179867152067865468830006256848093942921952684241989922102104044167266010900118659406446420830505895857809173924749659620893999684896393207606386980613268611565354924408490801117470843802192559744819682829710715802401648072465940240891106912234158198227424725869509025929757179952366822628688488228269135159593899251658544009095621819982828678179433019960313701875771806235851031773911443075933131328708525094331833923044208364740931741467691960105048455510474648304570101801229821136871187542715998134480487503353315812805566841399027497960497613171322890721319795126363868770461132620903486744787191842656696548440912050578339652829388285807945783241313287137005208484334126212869913380879565767215736122961070779365348394530827358298938256713777241835532815625201434889110570116039301439635468829840257776411315885819599515475022697359150584753081579471968757533570303390192085737890782891025815941026136403432372476537569176102351727107652515334492611720554548970415757311479212745633257100741665802550180213545549566453820164524265006205062262153585135573652137599230985828190316140350249394506164691351949574495279528779516639873620007983495319047698735651147023541792229333286882909923865449038403230047195350642623102125801868904276162897974176856332940874625091156126145411236318090768166500886284317631111538788517599771804982608317746936823683224662639083288472478692654566293867589287078457875155907080010834544837718912934510635620731885740568816287329842170909404935778869908740979076170695406139432067582176778218360384207441703940012882293735182167112524510679331763129461444052435567836783063771573484497246888042723429812722618979975868598359084609871882051987094150868365872220876407212079689994031966382530017417468489950829750265880690617715957876990904473335759148060305309947957044146463784799176181175024369427603658465736789804768512392727879138401877522306424565954394362067955730678380691519819483279807193246182563459568877991797082292831397810708110061380786858951923628484061601191678222728760092692748193975660594942938402576460414444680740257120414439725466748493026936160333089510535480735242674929696308242222446638602599310070282392224192823735528232525808406511736669212031212413865524981054271313605296549919515678325447414306015337693359187214461915582364546032979998483594992236015941659752467162963612129852440624993214339882006958428591144010637009416401970913426283804573574610189546710923946030400690272809087448967983319018667402474019352594145890215569641962659682246156480067502310859076082459884550047583984618229299965284286892575435824990847120523906353647627378285860787445311462108163974013081891238424975046178543027179391815973311955300749670068059139120889271942375207796943156514232490443847384673689686908493899870122205014779119412085796982059408902642077273914637734662215497890677006266009249345940678168904951337272332484037927743637489594741817642832844636239846034158892503486150678797178524879002390373789745118768270269052647341703784127349082615978315435180923543045370551139316427611945567209857465941940108713732196399191447864758420166997004022106901455924432507327443809419616106270870085588361606811372008246054293873396976995299423120521354064854105661785036937105813848286743002164608508813409879756986857262552225546082061975073655864740596356159993108866037529583659416380630244275882113193618383549468351145317604893794839670471604067012221999630277968411356150022565831153111966749707262765151297557602803503125880119971564289232506506021896396568000936644075111870864458038602117329844276572556580092071996433140155958604142478569875921118376449240442552960418323333865894976321883672826333597445085867517167219830774339593671100273476217118774857562901081153497184847411620970434939050935312902950456936344566209560912209403966117995054676896812927269615868953340077152304030548131597478666131637042490615581521428527622898725015087262020593589467137153258352924653938234077527914036937287093301693247805307848592189630399960502921783620146850055049163701418965184419639577370500937111726341483860174781163667463797075968413792301065169219728083362332119584577287972604856172311934907735064315298578513592807959633542804167103811684784961956740136098240450626532665127599204943363967544588421421187707015097400102224475367379298224881591704397380880451770086749135966600479736574527203612484851781334851882393878655378020673987128339792454349387162377366089914163077803642917308493916675499904783476477728345840078878316103105377934997279982491541354611701608091038523725023327693758577651869843063579332301436158008425143262211119101482299290650114804160475328434274499546347004357023078803005418695207241805686460895083241286542187633754540655939783388352544059944400939914899715308298152584263546330997776209324357540633435672159065981416773601634143994028068242494052329170341282392894124138607185849615411444477315967953057589010966717256871413036923411865044159677233093469608630805925222908289012071861324990753444326335538310466610543605161414971583383183683287332891831065798303247305319323025220460812963155799256324606308688909755545626695349616495866751690029235038395421901227970069086661317393201992595132799338217224573189779891865671180577978265299438923577327407791833032734938590361006289772196431471961864218267515508647154879533540429658366241718283108970453822488885540477303498011427017084776255839854290955353702931285845725565372356340898604071032527931573000105779941121956678806761647521798541087113373349521271120093698978414957000008780960474547875590357896050830603395143242240722873461785142789960246191886816870195737111128253484708032977221542247766470020476096690376145235645169383015584534326591988844887206032630920125655161353695381226159004290040858858212236315970799621618980961442139869647356103375747067920014489321812089841499857872936580196365048659777518786910524764788844261045570253585215102644129621207661276600189562265756092229899475590969001540783213146256234316994220904656555274184839649633673506190341520545033230938212946697767529459804251646581535167176334255199928158668448878803394255800875698282022053670150060328814295588288143070825787255221520504370884922729078452733723512229462851693156330856906715516187211827057222467619657609124253925601727258128065384946282106570327125424835235267308284945883389328267122002254403148897999547292399146234692647182282803577277518452458923082072496937224807312646244770193728015613972798326687845934756017950354629181143751404342333122306514235626665236180289708449951144677364679757972878984324480350473332061191912612976185397850176100341493167179235162535170260976464271863674453053107100459731593914814420500925983765332120104488895517912432765978354358144265108875063242501483211723852792652977707538638216926940807969124011883355383757261516367240889162870921274883710119750825892347804037548457863274586686257874098361990968979600250287431152906467909940704027987869356227463009913253694309192056441179762667326462219244549874161413278476529856391945290214361266929882050000081075482303025682923693590630980462689399788022211700804333160546823924883068636120927765233238627864561014122148395028515615374317924093306689753334004410308971761296834282406923727975060581807747074221252713719319198338291592529905098235167340325970600642809750028990249713155477889636011225833856489607900286388461711725686239220453842603508948661173325873448868283610044563725004565520805291680323436551428642198316077275258438014141992973815705856710384897848303570724673563977754788636764500087351407629840517521507859033898801160454831159124237378178110196692982389863848079333326363086972323061144000132227642610428693419744494062805726600208689074214905821667427367370432568897843217723656047262372899141592046505000198538789506913478393908413700541983115320638614275562233941835193428806183308122137225373565118524343247255608802674827100223304765176530053592443379497890162394685405419907869995861384633896583688980887144589850372062249246403834486307429659086276901923532992273071656049475523831590931255567764970564216991569452601264324993357739875943875985585705915812496398257035100004624740433169828646093955029996825967937244485262204514029348120150667126102759984867148573685142651218938383328054231805770360936366432874434201255885618945125016120349159361395202081876842418896772868414374627240330816909387918902360536914192014034539263098871416239028049462630517670215084383896366967783752797769634540518023179935957779163562064622123294826526028887259184309336282218501679333206244325646386848263534612547496183023531157764422880129975186384354475246196680238371820593208981979693260951234349697287904322374683691971438620471000290873234631107551666952217441813405995389807620478341507262027912109655423393972330658621885379261250915186815627079970212268893232255003520760038908338429644697565530302107360435179886835992687653104421958601573092658330146030913408767791018207469557118522754510303957824181594089200099391067834588992785662382841696995683470305415790663233666300978561157187025841399710504897891332670881647835867084532446808347248466066955372784418214039368436238246174466823407251535226837776183976541410069840175368113710192013202004551273810390563163634945577296483242854680310311875231197884803062172788021887839387983807885423078709987649189830502943958806071473200103261489976211573716870576485519797883101185279529204564195502750351503017633440502364875638413085613350732711544625495381845227552163013463552411936170883952257530113825300468723668548185438678377751382963920566427756012961421043419720926261428448229293900852831213657595511124075401775988700212442158673948274146046205357551160638081003105115511570995164533848871829637244851505797964410733136421144821604029231575643676678772136944929028385859569594286134910276031641374339048444493098493217871860990083272327380534405654088567948780201519676780114530473673890868744592048390133047360565132076349616550123727047755942557899624387779532944118925375421760554624006317851884822717370231429082325109643825870630871854599870131002622681684612831481301584993867710352035938048574113641822586935064172768914784199478972800694626333948209170332915838125413816559107807817731659239720443813044962079679935792256382803385661414084304549632079231733660404266706147646478883014524581272904053164707821987851972697610456236575091363639829166296730119359081518029264442091692898189607922239277074660111918303840857887909916431566242661654811629005387542509982047185874155502897834381936721605769057039479000908973006122323751899777670180277603589590176401959906039590006476348912343360645450510944096869990766170804846518016272358516396688552943466067480552252568995308837715962788544594481980976447840156030481297781405027324712407855636751988505376564998621023058977393503600144440308285921483921893801858156931641950102451586978074942226676560654622266186848223937307974439570679850191564534243646542561962817202844463406884448016436604233636431329654947375883168736609382617226988257437280821567337123054644739393290779196433172553263343825235396563942224145862305896580011425240561039400898370336987228614581701030598868854907854835760828683501993213974827085866477260241667543612439760125126960419286552345892928008687399703058364137997826648374652583532839954288629164151341088956893301029740213429561176786222423442200985964343423287409561323405372796429979658682656188900082384160038179995617557455816084630023280468370300197422718313260569548371078941491192278961562128992683106649632536001027497285919122342162037424840296263880312006717881186407046061457010544418392659713224391275775372464523387645802065164055577707005411547683085403339164535551959440211705300081561130084057640300600959255983461427332380841517551854889157572893990089735128197006253430394792095796590464905933046088939631739624408065099795940148610837321520912262711885956948569868402103341122007985637309887855136549068839635122013733648907520946917917066674596407519791905311648837516883728885909993665799461691470541584753937006333021359755391720902552980917551175038812492116333194489770057237570369737363930271198236904201036720261185543731015430752258678019017588256104492156689039060581388582434244036165357467198172580894472166773667601264544763447249853148789357787771432666827726829178768657082706061117069125742194126045481074285680173797540684297307259225597239292860404449834842360115071462499014604899456962418378116348592574232085883792104305912843058586079931010553166951087011053124383416145002892221983565327014058373446506664962686182474108952658982293639430478703080984963696124671498906998225442347836231739884841886985292621254634759660453509074979160420820044246167499925990695509594508625392094426645688291386971884884698275687650433643123921136750309725867579190825824886117192446620864121849929583557622954186328630365567260127437140572364927688983627523926279494457507536763971317844785275090461109385416127083995405673892025180424319845433216079401994386977741805651810708704729554634441613696160901405419563338714203039403143476174193986705933304384676652840108949882991808527284957998046540428787843169299853686606099551297595807707216116595284839995940562456832522164774043488818194834949958039256192899434789436754019862654750259200190631206031935327346305322502943112506206830990816122458420020896590805171440043993913196376040286114433167980094549348909220398922133851557203918889298015318267181633004697551640806939472652798443727016377353165870842210815342065449116175967409478623369918680074254303908861056291944490320101915860271440169249228196356309355596858982802357650006528260947058804488998114565314939021088724703072213734637199335051981791939152618910410021368725429555019971693308135857174181370881190930000471029950227069953766962225903764558908244567752822144890221975740622845004129306121571627905042850385529233320078874899936958972239349891066671088240114004946951736089574882046623107872561299428388444106594157871655666501805302333829979359362946297962142612715714056970360784547801120683946092595034532043114226054459343840948538518390048404275401365079343343120074633737451076662035433493134851992478893237437800580393720217623549545877299162569500541854731086118760950600505491408351442656630079023978236096926460188593294782405071728514503541433136560775418025164659297614162646289162980101209487501953267939171759561926397133599650334462771751527835502249411094205583375991037803871393769332521201677771214314436585124714061960150766928897536142320703120824087181801432815011477095897883452010457654084369052853256726131815913529531397942638010200659431855147085399579492437441892857910657938086089365733226578918282503578623113686792762264823977693020042199273865349178372554470324782092118888012673579255492580991432854901058811215621988509392403663641811910417563838258224369044387350553040877673836341029405879621977903293888919150227758757633939031536762474303532782054810576990816061716798390780166514162304623072065097580944037788133412131175183434412767417166879232323029731870213898910640714334660302463151427670502166785336805676510089274142903845727032955751021915001271593497132571452102122325664098401438586674037144138658663565606359636754705984925437988397411383854549423100191749034007469552343623700615095251185297571657407164182163619982289957185217061014051384715817513331276522628907470712546623404562352269721737172364464550110721149243271331834155197908911489398573231750113055263431605473426151649826089973333705974872035895620640274946824659231116420654760023741090045441360451476207912946633656357768347413219596942947343961371515169068051702806662249117097512365148260050392262764657312636041742614774745866006648471927331993837612714162534132052762617813491828511136840541301133009446008231296222787081855750487872111698499838782688904113584269089161085520415249784508860211315541974885009362528782553069005303837191696464425937358183006485789071127887308679471270506259214155658962813276961375395690447421893406927192726086353689402578581022361841776872104765934389916868402949167577116373543607938429746403173258897400926930967298401005678435723436952371726298359459198441905060210165356439072040096507830728133564688357218552511281532634020548328762451417041995002519916884845825892670401136064043013507152145260270947494759263485986529432308528786987043439909737938937945178947101030718005762262350013404000692980830236744229514601538620716335518318039288270843516721108660704318698933929682034200141882140906575807378304692018923797142065880150259270311123468939100012841612348905825396977588295205811860786713526749198563777387310489442578464741513299484407476518905383220984345762974221606182740579554754895737142972299521079736593433487579538391908638827950477170808392370056043849124157983380545021821392333283967475724366895477041188701617815818673350203377022049410364895023141066105716967004257922681692685712971980554876475656506053034814001608967683686885920453535334236654013586687101884243543751657829522023459403732942774025053510157798131426367735552134406836314210325083612840841348145894414968503856923275885523424689390435884573956496633182361537402805265962580211200612419681572251748988527104059353974582425038298665283336508170263781522579811076318728894813166716103755598703376634435032321635366103990326468734709808108787952407427917681594763261967068437026702026023517872972901646307787575724726784223562463988420181916364350683889589381995722980703701383721073471198489938028005384629358426151316498956700656365129313552921812012894811027602258046923465244622450947393478669280986490904677177956128841424329149757235142109659749388011133174998421854784364340359609890454833214809497199885053360389054225154538871027487321608254048236266897495134943874417120971849139652663718060728017565336472183506091032324279611758680718122004970538802280414017096737266566204633997891547272953586636910133282641558686250633411299765318841357315743775703222915067470793472544524643896484414125481402107829992527726659993266830798237890241004628838466556715569214408055891278829144192183304387985260866826676689647089046341713824673031232452581790891380947177768576155848825696231163277482542057813722030187270975899391267572218839778993918760639097405198129262696319493029555908797776580173634142427856801723222136324263663867116364642611546070043965018631945822405453456318866696591004228204552933428875236025753997501284104142321949036080021089078535766373574637042700003189011944087134852359916658408841587885892710495976400738808782238340989626427800558923753765810771886848801369549682114899354357738866018888161200737439942116005164724629234553820418309060783894600863522844608418809579990183354879980070430350731214254503868564364596528469613822557329645198362008697138563641299566308170814072426565203502754277716775339813350370936058447087040552759019460776897292843828910115180378406929699749342718951631648144225058695342868570641458108758568412748676680123281615737430229910725755894689968672393605219196454618009312816231828925163401134171803016961328032420125917937923593480650560121334003868709373648190185142136385163935236855766664524411641729016286641616763916683121473035697856264926186832244833133488532010902498158242200110480976566336285571768642686158857314288858206250191020033070153194837629409090867981151068412920967210793328242297854466241576287465921748040379516420024513773599462264317662253647529027854833509367889558188022542748256027587932246347644200382899421397149415698944407024958154040097788791521415510595159688406233823893613762129388578219400436103636959779532817551655946981469428322067009513249563527518285528329667362931804461904104313506306821793087142652741288113629111652399851188960622474492772672820210396684294533573294531059183118957433469447510623937184172244826512294230951308115575384557510793813149439033037499757477400059323931692427059538124499387086962382512447165361691516897198216529390961578740086267402907749535749115368965359621446889604623616261336966999224786128968255449551879966704612921587084172994159621163778209907561543208685210007502637350976342010393036835069722079097615616408844980376019819317629740776808159493801882624153607897920814214110424304261906097657857754586060719081251985119616004407625567834160779514810028095791841849657351238108572873290622330429675782575545318155265778624211739810227735182556960981585593955998297334036498696600382133411713883887467470546828592134650568927510725939956257225653731370209684896684713086245413663886602283877006922660297559355460583652545552459549793789704582837099911792182797471392868805494717598039717849553040215237735819433613043543624913694406487169113576670632697367115535515744671164366524609227563193503644975844217818580835844476006573049931916530784587337962767543083573690634294328906615185978725504645938092713384774328270250151572050762792026919097682124323890270664035168013145781712571812516519154153102493557140754780055156266610223111739832262452162265460256895393018343970856343649949456599559919283640840514927421198126752701878415900397267359818606397267607889415434698363523758040171250487936691499390215354715689959781866672006299947199793900185533132124098121491443362973879272723760480489975965474037875495556309267122765884643332353610926962305220826165287807702042873677629588187376861943515540929667442684852657479084447239443923105668203243455981907738372522171690190643770141514974785556171222356319386126164633139550403907953640716539301597579068548554337195662250092764180622066320306173569465709976176181639981159829907300387634675502122360950554567643564173645126227341859433020856645213195790281522224654279818192764289638375873962723659968740712660875448765377748367561968154330865249541982177529575213106761179733588434205655809464708529894932359448339873212876857887781959771759727231068697519254500847731111795022913065371477813937059163963641644427553494904241299880138788662604676473282208024890191683163883391683220826667705569642870240151243230347205370998978326803488440186412030593654108858811590469602641902499321297413980835103132564370275334052992789184981220061194664323279922357790628310639207926126543893057370141916898753801347015755198313705255705620418546886149872082848165785545432319614227445882411232436374641869401041179010765857825203700311926302195754808758899303221792708978260887426854669208947183061768111745012132756023003308976067842308362486121675093579776591440745952678845960570370574521822149038453564942738768055242747683178941350275340739115364969542752346587609403006615976379208095298618749815487814508625446128301988267104956766172679525414962691007468411764086654421253457895037610738637603801193001315874188160062664330070079098508474334735028299989587397537059884429578706315528418335122572169633055865350671778266010902001533375471730470118454729679482680764379142138960969798533754016509850215664174532575946519411831344884936494201573057037822274812522335309205850047378419204678848152163746428048876725178965743702758827466012030506236691502470163841413821672684734703097025855821355423025735770717129246664994818308668379828463493139476741310795628971066785120132992447491797312987964674743939023188596645526500044037211171815686816502021347831013585173110181017074508822972475986578098370009658187988263492124194122807048872774822134813634820244729463528796645578760996690514189480655065253344320049171903818265457239283417663266276929730196799454618066209609674406244764774064508162275154774417412381552194292670920921941099748490889259140434622016436125507208251890097872684947105482832308443627986250962139083146744002391515376149939812110238637939481358313084186049552386801949308494154768882472029289626516174230948878259747924024233277295607092440645610411802586500851046211022697055165212215594382735602101124408237695107444061802453167489807569583168287584708428830589488313075038098235785697753976527323726180080479449512957785317344937819664833264712140603472442528158944560676774822278858392668441638256337222878171324677403180979145423086604566520919858081922279395661575070556537032174754354737328792787192121855516574159454448119903427611296383157267748790749085665464435774214690474679354823192847851841649998235677247027841754694277205110274455213083526243749957009036949755982158298084911474945612715713251913557204487119467907006518464685705065040591241048868263747509679058571398656050922168803037427339635931648330381876466225281346549614913866978435282951164210132429584400055845088542604547420664816770779086855009334002583995459614479562077643294701077726029470891613516168331405210696818174253754675297567865647067200121809318093226650139099041815705417856671016403792624448488363057802652131644991610647586093294381213541449556579465685666071963877644056046087047087888486893875910459702042481541032028882492183140586831736784742386548073705953239842176710640914315445947272958772002148869901940274879514935228212862566411786369506097226161643493794932238593746899214159499665424141426140331041801893037821330478377646841227426385758393806216993866142842992951903786064765221366126061083188620475229491857585265086652330067236807967774721533570526873004854795491546544199188327694703516458772153193277107664744027059231039681645742507840830638334861165364456774863933194608345336570124113135889539830241687119306914464615080426714802231035710888143728648740266635662403090038095238663384861297593875971968797071732189413976416630476896621107194300293502443679520321486510542515621380645498217889382357398813616948005926546680626788337778344298858358269567981610140110844394601147983767173027444087757728612641421066160345780584960717866807894855932165837696956983712597904249431422781375559574554962077408715149429681375092362470192973562373494249730963391930549529381287958960291578673324702103104504420942507588521832449775633352571736343579992882570052282172145798956042447066286226872648088293798927941075284187945328626061508908089870941649599576638460752809798369879410933273484917342955399745513275797447458683926189818620564594758985568359740207173903454378266129813416321557084025857244170900032891032604450864234688763336231871449237344587040654399766931118891246325994351998809135590514265693913444870447799807464087479430478163468131441592989584526297098102806344422060423280343949648064324896027087457674476070259109300471225086013610458959571689541143113705900139152255143641365603048659747616214580406164353126021996362634692821393681880266396282264766523576249769827572350822828012920056601920779002231712765608899180196137911862389512816176468133983797610913670712846305122335471240008750834006016723662019146651664290892264914760362036289847026826908751345159072304741611118644461652435527882242729651805667423128632654621001147665218212511424616820538860095867865570767299913812067192952171466873942462913069539546414512353104374859540447951776727024123695186220881085480750055180303961688977020463287629198185203142709990676254354153938395865018885601749981077513825195593629776466457104764376163440074618758869768332964162374048927015916379291515724174745322303032858172388743745003478183536396664166071922344514548537306677777907181158017469424612116181960624490823902082155737887406615295503456144630278553674538416161704130253072771604545980384524012963637785210594715419683240930482890098409155943242628564949439032671661140910111860458770814803838611787453487519291264706875650140514979104811125245904985906742370522871170873581072046962256641132833356262925663617055492630409966236425929329805066265923981487748600156656003802553371756658254051819894380013893290526344004181697671888075275442862956962122423529703003083289903881422666389193674091179793171138994211680402665593067376680708224596572106660401476099717825038193828218955582003464713120090967615535098350926613634787215204618118013443117436850897937001653524389895680165617142384673328916789886981150366618326131142819847861154232145360024174494753663824628526224213754083622229183533996826737401896093292795456352354862338135873907794299505606721820950230088232445457410421407504292691169439212979984762199050899937279047552532969483107881625849144611572133785566288946027913937480850674432802659529477066953770843893813544645918414281131631349324189893282989489775834333854289856707890829359474487368366833114189514219072372010531078584285750090439629219931170223320594894533308276921520678283937452615174512813096868060304526425073706943509726227478080675449032240181895212109117483649262374978888396368134962671655383453457596959228064309142098371955109756694158938627133263665161284625223916887071351545240727429946778924058354055742467417933490625004255729186534893442069500011137480446666855779463162472234137392006470668261871657772479695349926621689942862869940676574755584118962766770331390745061867904412750406698929672479836331299818716584665959113498726414917551187310550121017256393448918528546502674826675559946301770634567051150174967962449322375610693192399202082663575434042413605255042357859457660591267472093681667757322070267039389703189479166169133529666193772217992348224760235734830444871634082620598367728305748390738030101466447886888641815024421974105434501484032864202925151035114581299741937338083889310792498785223503285469494766352284692567981961095885184479524207646695300542038016115567000593248976579631902518868012528096666872479625304714496780290472786143574670791221264890339078010707939012776688933976229954874314991800053693302968184996611810769808299776795024843012944109595629881231898404535855100025034708841070744188619121276735724489414481781759827969694539828158364319491895537745858119697856985466588360430483270868646473404343577264831885958832567377602067839055229955015854707947497821276833747956190231492917931464936330304723496098647963607812328937238477329148140732376816485319519197765588725968889407560965051966770658648674619815335401058532229644204964531292331156109392437668679488056627995189070497821793438087181298389922870638672280491631148492083999237463549116177779488922669137678911112463439877968423383714756412151681204735255618486437130547485728791601665219752124236870391642367974945204202433927235297797232291084526229898754774608560417828738205552212128176861332114705677158695491625168066117231489168488695183859372410621474595658929126365836989524515108564349459411171806891056384695266804602584451375094761369555886530221433888594880430235462152827835819588251729993545271894319709338789072025935978554374028355539739988943291791757652472035784810285654696424881448756023819531508650803759327818045420815756977444315633767232661587762554517081351314627522411847970533758390762000007842306532053058366741766963056276705962026613461334466097277026599610551391296558106410477116082928004919735284891976284245828543932378067749113299702609415588812387811396512223924551302223200758599947323826313070099553446990758959145255046150451763101605864897290282041269017128473395431678351359503491677142966811955475224526635608162629315738392972773365227035484388469582309314918540544511160648978862697389473576157397841436763926617545304936508415623649908261288619764608227620914785805913934701950342897303980798494568903917963236457166684665754526898312118939855044124193230156931022989198365307999092468213319071301464727817076486556987036224325705051505244812480255393472151334313672294686082971084419931227967747288285415881026512114511929705231848083018371989182129482056102780802612295209625376573904279125539292523088398392886977912165039025706437867190136461318559253301611921738659317489076737049056188082305304941421072533424701266461013610760115867687972168159050961998327577952241252793719509199749644810938334218516806476990345686819942390362249381001412127618951106619820139474503748062205486329194262676041544529159783489518772755609379069282335561377342255509248151857066778830540479152714121531948227635704141531199180047069415725366576413016586619986483605487930967704430624652841675528003688827839303833782702659817609463235663594162927283025958841614457659912901742458380663370129266041517887083414371248442028016145290024221520336784115463695016028345669644641343757948010377616390792116332648980087453102854140368884582896863033981262209275647812948848974718613312273630054925928502560921108767282203861137657396371942156241079584585047172367808306723351602558766817694604253039854875437630372050272840476108247942718139186156806445633757716813350971793423044732086520305165920052691578199726867482414917320990899210697265170443282315001096771221563974717130908287514354035975721235036474985564422545468340940593027198876349503941235626597755403818347817840322447625532546314938087673905708772273654094166399367092455637691194150245876019155609786813194923705630525138435548235242868722754156353540463826841238866310419487725663293155758442888694573274413984677381445151773369361943630681676453305684480850088672606580052081488337887916702815186961099902773732390957522726880494708720312310541193607809438034642937092065585833225361643508672261177258788062970768031297445086785498912967188517319518578672004511833584937332485180276827731310566592821288327013551261188018713257681432857151353639074570453935318431184530524578642902377964294521366726145852972658034667442095974156828244058858810685903063831786398828106022849066597812782982231226544228844431308795439160064256727755669674824591575972496744384822847263420276743131540557406643664971212550546864672311740754961228728524445861867337681582767008224784753231789983012535382756645471292319446161438767857227688484036670738642406540460114401593667350025448451324647548047909415268086997794046918936445984304940526501590084444666696867058308872034618855500532968785881200647219403962758203903241272613939057219987286646934718921678627430611855978540798641652905000196588624365405747874676343902075505593633488264462073097403189255748205241320945866846083800689638630414840572665561404030554481642566458674902958403162288057946022005540360002485272586711331744609789415525581128995924985543968595917706789405724109257176246124389547244167237879349115055965728605370795283758662503754147153234832314095269639441699573259015301505090590229096005108559417749326091467926441968480078861065191178104507294793023048964752034050467801703559211331588851486480787003153554941666857813061391262789775408579188787923889701285865845426900421612715388111001634559035727919345585720186604824403790316490374685542788511382656924545900978315126667631657769474966145101176537015106825569330970632944731953439235202646534313077131065003072726738704064126832056225878890731873767366992376756619018189336576100058796597883284425838797391229446273916202984982311605045099926486731960064321464454019665363065737468712877846191612564016089024253613549410853003622017455790151077215440979466009557863740031978661409428389771091425053083408539131873629418209855118446520586385677266154497396408126870554522863445442598187721743270637201058180595601885164436829895098467615452616137853315629057455349289739773263901591803318116779349315812434530726569300059781165930355989605316644616876266648406997998753725415110987091636566301989866954023783512626190127462278137341100931440201786120680706580803637100645112133096861556452502470259582902998371608337015661769136055843895826029732987602479313977251309125141450347645530126718829059050771919788212628941870876548146008110845914930058176175063323537828346561970310874102567966115848807668081750309752133938728203304565862670180232198422647351399438039924254295057097772979377744948173257848670750048155664617268175932623940944983942736281292131018226639317846824628408736438320475484563158594181043038647157034576863417898772003382090973086064396622045098346131684205728017732129311003029958216074697657624565792981012045224851463745977118005879121070189285254658010412199134291959006149789116776714021167783071100168616824887317792988809061258522088807765729171446589408490877560321870272037774029557026689785746236772398555683569614633309060595977763355411577642790687543008325443907695804151172939312578185595519078511090291734905207099185092111778603642049541104542094226528266289221175583831524271241634296332089227474143616866923230704706278094514848888771470770254727996695079839754437679607751963955656410715757211831337936439205091839181828117806081371721034475256834108953241282610661337840577805185301202750680385102296485654070858424835030357736538184685604458541915758167364009412767753193060673595875857697821035602712372817016943005053118249957850114362930719130917675302554975825762795160644702816878726485415418765860199686435965040451108281459866254035355742609480626554382012365757187714085151159270654981495592615464634928047358203604286869940630618875840516614564984433851358894856682228823144591006634058878593348250570986853431850383318524637466007291656704987149109345627944592551975307592606906410571743114072326527822012483885974977442253543519603109899106596268266123714690633230813218011248143402804706096399890670147770065867175075301417849551092005962098993770414612390368925380981398763268551040228425051730986533908586846893225854267494691550128917947435589292206934181341890295018369394276624527037432635185410822508986942337162708781735363120161819940402800951082887639231269922331226087197132823064790370573332280016615924211767991600929295630323433241342743281936719793178392193904393734836836437825270113080299486207130798727567941830339981398798970407492250574679446552605603683975206564623289519275125661643937023867854429274977952997308036753696896270099624127777336151688566112905078850567414095864384458923868149565879299268158564964078529744778279762204502088281107347815231713950871118936628928313413858856013149392521556368345967725864428208965698723604984244518168651392092737782752171368328838956799290715820122326539658011613947241266111050036021485781321249918266686496570929418103669597021090630650869329595464965431308154186833480807779944134691729300977862826763687961530122252437328026308500731346232588968822989708636007548463350962958730469832552654710373492214121103758015749534959842682545354834730646247814431072963252497234638215604663155599272578062543848722454949376313373862323321177927417127535460635303866809699997021325982321193311322419277540161336097260546722827231102967688530556971014692330534077126408581718238338507809230715222073988177378321333512388342005896642684520940421808173683304737668778545015452811285427772017883016116661886309913748763294736188026424970499803816326198970534324633220893557482599546363031628708594899010367063579946610458330691855488912207378206467110625863365967144368032222066733427147523930458745568233477816416965790265614583939081767714213655237885416786651092835257066940233870005007669302907548097837738989941484517327548696343015737224240868520396388586868598724711623864767038566327378525046458270760957189809437544696565466366230168645983626601976617146827402272681874205730434819278400286719530933603198105078318346232687833420961599555754509976557364203387765112801300877997583958123942846724481178813345334212106429874826918173299249663905536141388009563469382950633905305916892655188986234914246528088228407397074599310520252965887439453021237041521180053143663460207410421208213377458487074663937873193333438414713127365857548428856467200356137098615517809278508879936847947007644351890222120952933935039369909886989166814156098656647857585161364054043050858223585039264040657657789094230917742303124231366115802543603136009143327169809010600585391907933526215729229614965030128410470493440042964233817017957281838115443169223579125757430485019692117484830838805452306422633628770476623703426515289736925605954953842609220939812319825407325693478164165300888523579543759588601309357305371524582787261645698907111555239834250534216724488087408229437458650754518488170201796684376022412273393890527976719293886612269733943175155929175262506696936276582197186368288322562595261369268757507796972012744439112040403405765069211817125805188733158565417039641781406644268339714627795099237894759419764456391382199906369569140400249324334957872582178509055834420797809094548726943259846152873965628904441979346977183601322969679222233665898415110866126694809951965058759120088388760494329463163491496817134269550302022737222560507983732846586560995715559587676625559594865685812393649226362767216985763516066041310214795256350335633812626263963080911263838238805406032160689975682150337828092313974891144526407105182122169312238253059600783119655569487767064780343752874574762144474327406190691595084347065798905851616183335492895898330846995669155595697979045279897910761639412693269677648030112116131831385974188927175991035711480298839182415110921754258138648469113771633549969380543402922940239314234386425317143988844323816800981936629802209863398825593334714194589747031931431067881863707809156396913427187583090339868507143532309698936747304910061659110384988262069386574966028006552158032078827206637123383570405565265353737599474757923921043251969977307293415360199645765415779354645340063025249018587843401829968898060987196290484084223787917433775948910377512502171782375275819227877168229452168705874379948478068273797337412287280241892406979814049224823209036122640553266691333515224128143918904077284507959421873498357522706751374913087601439693771439870256340003430747817497996186408513842400577175536889808869714024944919449060596693152655297016554931245029923334708636148093423015841898996299111459656169567615045349720031493140630651972123361708055715731335750045647575884786987329566571558705973925863690465521617444026561393332508155174451057800342848711861196158268928314972090575538139847612086902305977188409951381532074306195988548153115445753765797820895723593593798021856104980421511191426925409469020749667878766273791576118173483042931629093220092720498199526405070382230219598409457836022944003200615729954260888386763556868090024243139951093537046178680326647700718386984806069678986587429032221830570664878607822484165187833192452182463113575074375390512716536917319498312161541535667955840236461430680046114918399330970505113454827045000768757719690135397267806732764132691398999540913535129959342257672602100712378002297369894501494115874365956636993079975858378333951500350356826376762705450893822310051141676057558177228433916064201613969774912841359636774578673828947022536166907343683895380284665646235836785723673376058577164770104954675680458583079390367964857594950406024545816822196796117398780087033812311913150731050152926754407165341320470930753462726726381850225122180373233690790198594179517471446417212558929395766765171275509389350204248650540535097555939528277565404465572747723199338187791527360197895751762740618864564460244376527365441059118673219168474047358606369834595702404194969722546722786790925936583645916836058585261290287701898877599068237404144465408489827963136247546951576854855896940528613334129088894911297064338121034548892991100190592288138534995078635894050001257192553275789715343858050156348924299149087433945523704166989732293496437078194870683031115345547690996814183857055040191136353624101559096744306572239033444114324976296635803841012259369669181022721117998604751214548970756995374321456703010713707924699171964721386354723874705815882513316261688563881705178327026317471118158688455416267503793065005562602945004685595972351626490926420973999740386906195957648056968453611181253489654957875604673478978039943014627637200307490990561544167153940680298633355340183373130338775083329840855622598599922171521360551252247437253924300046667721564074108288204781468136614421836116637648305606195127736122175738808473414210478346961045622636867438055142066623740536479754179757020973490773839184533161531847239904129553224814717289897747008235913418013639579535650481243190743261567471119521959720895419904985181365524888206674043458106411221215325487646060344266181650200773766707584671112652884720706527961254786315853614011404228065492303268373997378513905730522107938408702555337526455771319334988480195898201006955645361841763640823480427777178310917108154088818454537700979670141124599122644217753756303998999393098482603877393021353773336058609817259568024636108927653352321347947751607298174052700780655209196994256107211344432834836907519774985280639120230746422826844630390031910045073868477920779085785943732777396408378341227057631462508829175565312071252387665157887790360741023287325816628534854942620692951915025607881036906927034777713944097082700163703457199966298664491795604109817259511544679358742706751284379003913203755450006956598252723093195345305594352568252873866205388084300457882069922485455778540345537438679275850257075393761929982098066167397455998393897066670737267028872838440331266515550311350647231465432947815950314562590538457749237928931942351921826377418935452423702066771950105784257542156726893523692227954091767336832399153831802562067339666072892191686761516376664306876041919730330116728527903311954127071322447903425642858294390864356849164411064436194252467237112833727477175660580959461198411549411888521770711691710980233508725613927462870707681591747125047156776187840239911139795691043835280400598264845892261311061403300093666140815049060249022414564806012666516974552287920045768193868199821042871752443606920410845155371449014747632585003365095338443023215685043108362362495199603826678514510477825901361049773230435713329070156615060301598162614292164327129476978074074875681712728288079268720247392275309145129050197775691098313036432757213183412056625223986736527449837583197063781581507972477478270353275797986683487206399816862004390261840511270715260122722479587621060399032946250566473617277633367255829207073959565860182254174179853624981314512855776293757472294133641401296928122378256417606635839793714719073337220662749020352983071622123058543548750207562476473816135963697951112559091897052082385402211529061432736428884972121527702976812299456498794282806580768045717019112960746613163750204958891695197901240260221908138863126448148816447293303804345499960192012632476853990262975548040447024802018489096526646286737831896020256112014998579182652441003905863715477343003644725309762719508369467648055632190798439509378763608123649160551680812946273619862078197786928912012142296977186867483541288788914432371848132110494823892314924972374727289479429569704955911735052062741467094418315164486280348476032942980822183643764384089833513576216143255674603815425375063577669657059470298943300680454486715690830022074541962956751429621177082247611013036566175722725142188255007586663420781028905538321729356950450389738625449455151442108501188623061825273450553421530179743256966152583231263117213640759188457610104310915376341242524426575543330484223117400797983362685643279938871985278819680840368443614655514829791495482923764951142836068593344506373021344184495498537824085604215543994492591865091044111684147812336772864268911373564608945550168175370366682762610053840322480230231036202251513539739358912988949378919098167572800784609340271538216304645702842630968694890470418578778539349146827659574311660777582732470055717173441256508690059230107544848038752867846176738477582989413968424047963558918932236883201782161571978802532609338375809847201028022169057168530177359737654494323694365983118252502183103695664586283692713531111767078134200049493507448708322838343437068966127167047701054182705884924614293628172055973502034513338373232691602395533968822481351037262553428749205447514680222371694942945141864577777003310174070554818570710877023009336470464945978838753704070362419994122948729656339892394733035427236595798195537414980781720670160145133222891402357719787723413412728769315719881767133428073327947497487708328936028077911291286554076112718491948643978275218546767621259833508184952382932439930286511207856244867385145668954632624160046759260661642844297020696349146432625405215987999980751056659797826034235319064833715808907030300870358904807962930454711690384898268855855368354572068754027325970587649392356092243002646428105873783342534944589758511735433442978529908001775978008451423713235991528276582859349641467746696366207680578926489712404292512659833869365459842205121360779785072174699973413911797277460874001471523913114571566033320574893361022643316182189003853269196641271785712959174161722824544847649942839120998300345450382099873868211265542399343960383960267299440043003699147571434513719125914775741259751874257830360755924027074227125378112433370511494696547825537501319741370979400939146643419380735295009920050164165175022248703589737735754045704698395850771768404604865142783084668391916975842934438715048237350273153424537756843274893271915082569250603687203386470723931126652491435163535561866012198273609774767650969336491466445569116369039520943454274342836278147582499653924482022375423570170696795231138380781495900521496291553155036305322884552909174247369501019252870987259504392415088432165368501074207326999146345994601726641365906341887460232229609127699882070340440367044298862463103331588457288490308100238673267581660517442367138724736156497384605913338464478782808857351619045339518134686765144612065927520122636442235129100888889423641104600761685343488183728446312743151481983948944434865074646076050641182427309841979047653028630464059831490483621455508723348785318681114801928991339717310789666017707119526490784159038968564269539550659121667174184502644538144222361995445895046820699214342913758679515255915521853261954688947746953136869421363244881441572421152590522808106474222892005712859464606864932056048407164272862848708424598392734400919661459299538072533386809017373593218590490992979041281924338779662137498375432565815252577955959157168742643100821783657176992307303142416465746522488170960734695717986581709188078996341814404632954423816165983706310593838069092421812945313160003928766186966215197752556936424919153986728043794127130286859975093837497161406821431893911409035756641590873896438307603781888389014378980238679624998325849545483451751280427474095630538067505177808123655315884815185801530123682778698987394897070809873249708904365936791524674614004167309321385968322126897538782776394986295156544083277888561824393774079547786541641825266806085022898464601111614226840341565245431875014627617107368088922658915081158727986136783121168643271584547939903335824371248483823232116853700358551034999234949244065251941694029533834930897820681356040410943725237421276410780443436010976806793757463955164613319220905886071693602319078779883682555686090692570696479260920707413719183444565046202648412422761038071269723644589089084583734800426348736452352670397788435451208336724641812866836744276940049932362704641488725868057273762974007279032962543806728012185099481092084672152005781975315865536852237313361019834926900737019699930435416532337986949783978250028955149059881478787026496888252912891950202088340363895882804046750958063873062634026570561568838485586468763289967834758515110728561141043512247358575028517695739057509737355935616201409765214337105476032981038802564591494608689654753964869143880013503019635028393565276070997257749949866674207195765692707355027240935885407062776878399693613991988884329974736137756560944753928522489338594312006736847985137942321691430975480230280275490119332499289536905309731138352919697842386422008438624965451003950212543642460478043922400289593682278242062781692857129157541692105103247352554598345820865920307011751987354064395217325654179778356146128220282191518122732988390797474076070306667718850475913838434752824979189255284211529966241564881494625837027223259786750245873486446567506579482910337283837907922626208708284914181792795324684126299587261229329956163249670200390866903158180370483247961826057665684826575815968635786696700336081954597667249464774794963016194064420384263886352994847155746534822875011653622797323512209421060199393482483379422053153377932246587644059426519044558047347578641034088359948434957472713589240484781159005850858346200825170699123078979812428228040329360958956230983340771160839128879140184423194969127715452365419299584465823107838422678458336797676155431242313403598306663526621618889465235967603592688402040582824145006509345954230892810693008205933603132959528128810734451531899537925570640715784821334096863200432450177594895350751668725724758920442466214093867051061046046962700160095107323002953499247704630961565291275327980575865688321079663290577811117708236857911888289138132448860660749748396504650324435056030820748496168726103740358532553440676752221566020507305901234152685743032295547725280419423867236437799823891476632139069899740637787663616081904378073967799163425763278369553207877309920123744293038788008862774890620221597593233614537451621415639588831775060108850614447393362577407917071118025156984079918391377955251078549250785323978010361796213632404498849793817215179161306270750924081622011325811412355914346536809252739347448541947630507997223399385060092614489489987109351588224633848128915919227025776074697311322922200736941868165932674149738878809520576072928456764647835372108309138058021358430162729330287675400048530646481052000134653125699975704193150778756459957429873534402537358162701746321869498537327660170304487666969226791236538800953502210542979082658075187120068807360159464972102449038782054357727549592834622171639334766814103746916055457119086593566077664356375295595251325069007330079824735719807381184143255573867336314289436871517581969858223251697866575944684859607110487515157015086227633523879184045689506751973490592632358830336880149900788024370956678576667471963496313978391469861817176870828803930071379751900140426145276112836183624447621375495548096368525008970595903471731386326299108297556258339620739131829123683910379469457753065659610227020769799038473587735584194180184693483578812118618244420542508054391557757379598367951878644460767038634496231800015059980507182884578085152812580347882103507481449612011669562851747770383801046249282137183761460427094256303328818613338218736568657324937720390582079182969480175960004362161961685922434102923041759355512239536419614128884689274796760291246178706228886975485628175638420004944563050450109318285214687867086923159378391068193757223821406842217208875306732755890223059830712564030463178476633103289791769754477702894981154718368692594575188640876054816657507555686951743049124584231182540461070775180015313772670656021724825461457841727254008922861526616891096876701363002401872523179115518210533290081829586584324684652637934625955344851988384235267558615753719962545641132912569235575370136489219543810799417159644906091327024130982900750489484290937939062873447196805166667874826934202182083428828029498315127831776388386095955924322365378215597739008891681335756375387762199473611084706548796065401489548957583211371177555744096636270586741745970289879996462253505866198565240650687295140997447705766316122417395115803350223166571926702070628152824838956178797402898278802940445979620582413509843021879905242571687032774364831582144634921635106263686101136618084275255507721620110219615441775603665962219764391252679083225735669424746837559238529098026925282707041281593573220384804245240014840362934205995119789343721219976623167735075202066427728500756392454686518089353834345482811667913387327186321826318990038759322105919652763437424476898841562166833113340201213571850794731752049296238599917451157805032981766056974943560552455230552952090848710583952248473849435369433331629794618350894521220399783535929264094506726617893782436154660713558426130320952727914765621762187614018283911834180547874211826579366862486132766779272599266804933612434910575259941082739113211507809884217781892042878356497943628435311801682704931078328876036053906682519591836696325577138836401724551260850602854849413391401921356266127993160342356573045087580670692241616778086785791348470571681202817174604525128679984670823078422741501016698937260396305466910436758585619806942719247325196876195863341156138329353085144954443224521399835688062759654794016833327177524235373435510891494862119143680892335314654134041686641009070931526180077867013651259450159480890476271436720049329714392930455495956944006866149222568526996414252856977366179592803640966201752342841820412289946259256903139549234440477218488197434143017696793478330475361702782478997850111677807912936076542277874005917444529422499651455885869093333532148170839736489918050420737310798779220013772867366575740085205435734999122640944292359273153225670311723436831550048874683284078582532446208103204469087023374001113048181461129121973618298415494502707235861514907453064353351216407291022832198744857337206679889593418828696080892074223507246020731545022310350826626956246604106596046705062714303539344628791400661424422472995292862133730493662501216426894022309546193867260086414314051387846555229382412625287383695002768509610209350443195130221696367823996357425931725492924825463925323694113020513919582682263150073468368137827401788279883668417055243503218430956255961853750700452015807748287136018890307192190229016832344714807444895653726812894898791229664716121331407345768858214436056419390324196342266789067137699802002090479626893932073619558265843237871106286350073598222226974952740567338255296725131800101653195933389926309630308995455097413984641416006067441517780050720506024085023052865875277511020345830744200927696748485569973841410810898543710964230613309615241652042113660268932998675696775546918143641521727884821469511774665546972608502632782541183547903458509249651851358024888490186019578312647377089273453135485499672120185184014166656508793882545299580537699504247264657072121371308948186703509239113348166382499474611113597046038617724152154776237308847332996608082133530012637807465801885681831268432780476671603093723364715664312303698776192176044957000186137112293668668324364663276054790287433604203179869461712801824567182703010720150092627963199246475991652011626591069670286147275754009375602294129422044272464828171061910077961094218164269660441121523103356079865659104723280123024411823829315419440695383413553040178572857051617392521431527067049667181393544512715696537725923493018692207016162030078292095887750222324275084422274344364216332315258009320130144149993358508742709923888578270862724917755448517273689749772797084965727647064007437829847822364384005573587114043973670498187165964430922536429955904400185542449972275799687940613194658064521068922443650007011104837032039179496495284853855761873459835335288855616519276312372525824501097851674801831632641529351305271274856933500067114735992006978534016781175122693030102910200450344604304850950217310101923992611668456745961250227944497050179832460317791230131761608312164790348343735287954927863964860441600581215189915742427229830991492308174748775569631668264495403160922201641497374894892028483779331500743901976361066826716547075206890953031420671880303929316903669226993172915813354887195259850518812260630380216518984545303324409464485710052252546687379616312953127184010488801991826501079687090323412806045053566080558201539062840533307496590799924165337896920691489453594902358937949661690177879559770471251747614055628782913779566076982382177350809929584573775979320579874195425511128944970810638480079373383949860472238663595798233064308653680287958704073278945900753572544126664440833885847965959691212354532006623047168907786657106619340265287120685586679828826544627835063642438535842911136203820694014975745562992983715680315324658126077370279503009447950151990505442377444530858417369029819884803157519458547327472235055302098491636457452966941774659515501207273902669448169010649120638806752919826613242823526302020112573981924701962452330175804427844771004094223881005118684046136023263592740741285891253290633619253896692209657854648134567582335733958941247310259570753042437710011168443658942262911183636869521963020037794464686868021490667256223842417521705114889758372670083307308578107365517142996951489565487436058159703942565816957370063333782769412236183251329838948169639524452812503300840939706641568926009895189008786724273260115693159579413472834605873496048056035049601281604584937229183577064408258316042033367506387398080382215673628523182203391912642988301800447523419163593554296411397137528125727874191621976508899355463452743487552704055609736769580563060178739707626156447228160426591504621345804958043303735986193503960637508634774080337833934746662282123105204764781664044510428599299320020226216968142189868009846548250595048269242936524226948153441836709498860854597470185965227121561776412223403336427539828093155337509255049930318680226055402047517766024811123450455163046216393836994499369774427156542986334379934856628886775707760704901251454275677116527231716619581084789393003771525251066113299179252901421555444292408000888490684131063535451616553289952604841279129099300014460299247231562386740125895951010532809423481301267067597062897081335873998936158006139996696910603848033612759418831051095865828228804850331696073597194447667779107185159655867570229818681741754359964269578724672205864753359385799693052930433617890187624490414203272271251054365652284631914457642082207674860120403682480825144959590668004871346352826293218216221440042110940920937403240386100611380646121210494020833374645525658111456581732454527238765493841822163828154307413121943775624902650328748709084766928894980669354257887573336544389410430750858992146968447457910795657347854324314373128437799190584745942533636233130029030912219662037317393423639505542801390407063751357135550722853397561012068227445479780516783056590920316537446811136685583038052342684332252770475007979798075019375308629225853419062597411940945815008446398306404257281323987858940984498556447001999175750715778680463566265891871766469892507492433163744237632801668991120513047428665957301691302373657113258102336462518494871682311862092049752644516118870308478122785697263955924358398017456906472237509142551902711825624674027723158405911988657967354415699486480337495715220087454444771995910931393045928669858464795567625608390649777379760055740021341673156351296434123272328606110916328586446490685256058559686222649790240380964193168913076070696090165121608605417778521521370231747910730739495611723698188588000761640305484099458502029225068599775793416097967593193790566816254499574891004441168824400638121468627385794478504043469352354618231202849556546385608386117789072901540254777085033481321256767463206788812189962417685200751479355514227573917828019084518745419384382771598278792040652734494860956070689826531738981945608858320952188953181846487237174347278836701383054712432801779050777429775566307584502116999451771822189671793147760216409383879242967828355870707422400281689370367363809678927828537135456732647558081029360883480741606969754727874758087793210798790054169934292150984395149146224844800346437271470693466473668141914157755982992660993357559478522139173507430774322521725790735892379776644755261957916798616743792840965091461999194415625699346977930492545961312730292178698876347141902733012304639298700795446471779894819683716184545312120806620775709056732417527149377201642404826030571093517760335017795139291085394565958825805570596089443647065024379972387866581471074494511808709404143096802070691392854944368089625375181951133803851230647689918126531618899061862348412629034547687878941938932475054371427611289837078099226681340265709996359072418690438693276738009879724631697942479429937873082906388008192597090068615147371038570103746385393595686380800630363781855354270371783605241380407203726113092028397117771393144379223322330054820468499843802000811652460987863033141827579243015480723083740448263120332272126894808781381010976423039122646712461664986367066155946032058776663097720751212182223234245790539446777072232224151279722331674964219760875250125206718303344977965741732529311171375248761111805985849330088696590340394436299143299498458027851619408709998474896718423821488934072549648337531067010632131511770927578833623151831719726138531584334633049073578699115351342237860433403269693410174358960477530408983736586479251360328256268510069607792258326987449645003077983897172757710219336335585573800291082632505498671799185822478092742411553216710879838200635632003504252315803171488071392226764088754949350603740101441397781003052492972764212463435746147750102706132017778361287494722183273266327570643645127698477608139793379761786267893299966612906370374156080824495688321692717296884581119477847654806645875552101252613318150198678086038126019278785856576126478562591498267535765859373760455846980295571221089581102651195686874143666880124571986448638201928136328165797164154006687861194523256830388472931177778484650196865404683255062042794020103975824658535131842438486960441007982323802963401417126960607715978257656179213199510127835301573767528097687075576764955159790965110234724597462043477403122703892824447950613336539858813039260771489430497741872316571311817101721854604748139098034883722850517672301049869488581498822465726299725463593082043671500094621591431352192851797900259610896479264250258067003657226988167603347870112776309951736799819545856082937232600687278641672473657130483565593053220502605411908684185340813486885763902690252914762689520109162809368476482201853553730038729520324317013403932437514708504687698380365909680728840894617360248651370507024779655498073395090299284670255169456595017049667887207644167441952466125562063574800638424282386993329191815921216227200839585465898704229807550460208122631689357142232847664340580422104615900146617151654075901105851373223422694773367663615244522631766952296695738308792716722489893135589205769101905060185941965728280609669845410101397695879066452551148991991344052374985887990761185886865503871032176834355168051093713270674666186218674010912170967302739235718102274856219327901332698073280019625415618128512432338843355298112321851008451874435836840655051218689795823471282444888500816255652320640508654583417476783534214280213282528169403426759081576430727525750866298740437941350315432717027536215099288007717978876259449278296978625804271395330969356909554170210489422974794655613435851398640234903805609891270448419085769250627829834140284650726226612759241863372230117145688060970021753168723549999152235975026423774270043414136260350944499464048339296108382250691952537493061638901757776774715944225217749150694406623773800824744556698127509062298538130198712168361678437584759445024511747348596863175394562600693494994474464207497319833427622409720230445101616617282305768752165876069199746913367774833891001450998120990904709133128126345076018676749777815779218341833766015373857609149706364279525912816002054277484520843636296889759028383872992530352722177189771979947838398011674340863101562021721727824205760748580959592773730328349398729630367535952686103037084432197105484484611015243398995050414134961048132133122338597917139139443638773901829525173848353223827401302169882233953393561904429076159363259000911892239366267748489437116597640767060608341000977044237677033733229051895972149428216881974076641124087164176004693032652427362518317564676088867189049015891022813650879007256034697912620875584336896059019420108793497930709727701303975491083690772141860855227080778653529679565565746455369534437267844086213864973238373485137397813547373179814478710350546862531295555036799155112022850343721166860302839993885725987405967879070897402365346514004355288085198212632637746456568336479323405086799150884831314015177273836125114155176905937493477352098207582565434626475201305777457458177156892256896715257877007777990164000424896955779728803113190798507175630389852178485889087047793129472183911608870641591482480252940441656641409501904621998209590412590276393491445425075064954859218690804410159687872624834022920733634039509493128070514490224462679837365670762466767632526130975257574203118853524069716847801075765504554463857522481901916388048653989769316399939015160903375310783091025564919645494909345249711008468527855601526994267657844796638045197096814581527124492130669692295774210901296320328040803728022443696605358241333386748502338859909356421961213640496881013217569545272962274584278937396861507496242607785074932937457039248261897208531184922398820400623098438879080348853283436720892595411607112051068314181993594639466727119446280225828978482579683201979736361364401429174559689993202054066252487388565778065377496979209744979996082219619701187059052656065995228424140663459786458082026482634307416924485248716503265134060923509521447952564999157853854833739050202606158166709883493289234706230156293943605181382057991083565538825027654769526618620215598749079923241144490165502725002216106832950230676447680672719463368579241265514204357221488964621979297640080082475375876406288748649371495414758564757602725693972626450807257693419899421151473688960605200334910794364028804137773503583680609984731030232650420223841640483421000576354739238213940939488466239688801706282821269300868325254165013833203298526395501411031756246421646336090919168077632744187567131249733475900157064606505400884406412545852933228606528300108815506805563665343373136532151550544076821808933824571549768479154248043461075749570873632460274707267260027099747862274565664938515635484333867561956634743668977627703510752670116546730433782979839964386202440891257742173859391964689170551899247281170793800454327684822259204450486585330758055591299919399588085842756913877527060123279829167817701225938992678447972260257325336928572238198735151349397103763394191338867127112014634990371831741873313987895557113323177624886626269815586293141644601121431897750543463210128723121255791902333187730332522610410628734147112831711768912601833132819829871978513474657813565303146064736019630962569658237857329610641707580643165370439792413920063526318131073663254425112767650939313903223538418716592521256142674443149392682066999896043331751666431007875453208036234845193588580644120371215770868295783732129327258171586073203569962001626286949148488489212797523391299957598779700330329504960738468261642012506694207839833343473056934925257740084549421407689335053829351421325167783034917089505066629806880687552320114741780600373738673237617381290017221973533424123204954236400126380964909324908694438859893181056740823778627873747183356058354955812972433696272537988873038654257978278393917687899741972678697824852824016159768831981271618811324059042159949702665700553677951964201860484304843180901954174841947641605753698399916841435264588083927632852940096583614370353539760537153573777782159631542428407700062599353789317989019101143653538621295477111908499522634845064703313813189938022706474646647928848029845635377573494096610945439620853466897463796927880419518071461479621156690091043218065495062694730272622560649449202102622697652949851517971329566980956596928784778099425795120485804732052431464001600749424457566745170512278108447525437191629195456620696600048088307314509489117189271111805126301931017009143445618045364592695872422677642441337209569017451093500040569780062954556110616120310991814322777421587788245380900017873788944480216292508232216082840897502360856616950658761038659679087439675108840090028676301513521428550186521543671694877968958948677225486960864599546462920339393417945168714646973039491512566461484504749286795636909010043630552788465992249064812229965839891352370401429267394973375789666907437145727534534952223811003504323011129982306760605115886880329525623103088366448285752455195601674657686316489874201266960483648378792072027290887356974628002191062459022403761580394628223965323385350338337259812563660063468274622919986357788389762713619605595760047178968682559382578314528180973791823937168606752094327036438397824025800237288752279430412862035472976848318953984870946280338943395917076676951483598931367781892838051935027538105825270950931671348195225045123516012864754649655267447475345912330375441119036208721393049995984150078599375206663298630648510339492730194046484878740740014369941860903453233171802732544822363130637986659168892939710922702523592891928276058985479840298801659951456877391720283665919142549461617549130916511299804007056571801178522207437990342926759379319456952208895156244783852248281372586031306853520576423216095041142862758824746963212429464994117007698687544636207648133936839361686805380901137937056442992034385125165987139232384107504080876858457358105069302734732303492102807268823097928844432759656122315096782079215728120511369435167049582385035419551832636599349699892260963823177967401824985860359416564041373573248906540917821196734756572141839142175026151199213914686485763600502157563264516683454729437136083775701284267732238306391802660170364880143541568124831862639830469934958544126433096707451548732149356897146675476279672030792847567276898988029712885357667470115434909892222900720342415094504036400614711462786885728621816455161656588381467048018503834280993471462698646225507553538970930354382261566171200843191044058999053020411180183663333779121278897254697996292864111227796444254785007499514059577584564613145418701025925052024665128570076521905595482991158016316224053240239221309851652660128612298134572834142978578171507824241880576432372370544716309184254299084613207059915628248786984093682749620503851061717131193731833700563349882140802697356814492880795655691190993084009509189720109467531588315364999748605555881667544699003094296255826557151970675763530209239758631564071498918175505436678244383396060728514886861170634576472435502714386952570839161193660400817156975648015214169758174804298563486639082731941359092050021886771875279697250000428107359666165583958252880223911033090561920229732002427190639277959144985964034763359255838151218038930944610556978289696108320814717352166362395783305224354407183126648496025638465936285116768297883424887624476698873951485765627033353277140016157343016854316272950603029213185661345587536235146450476112173524065196805838279403394119059517617944026423444471836566555337571859463455591036128892807068723511303296936155738853831829306159168175028328615784239067438403082526794015760009572432298206051757289495157434322494878140472170032073407010686458296003324277166936349695771188758962829268232119316505517492065860425466307943310752075911223299570733273570329392178344197429059583343643075917901972364596742444898713959694441279029474280622097185009037225960999646439738214537365296586581454953869144985832233929051178005644116856637937970808107621124313009546237322011590887492261441156565769055065551053194964588262734798969704367929820641345041312289077972796507938535937253340484657064915714157001914876604044866508353863669784110437920073499830536474210604150843618690325614227883896772803959732017083602310664395471948837722676897865726353270391642722866516490531906641920577730409023203292239595242385024564095736222140485592881886042259120042706393378917997289672270000643175784580410285344721986710411876681359838633329273819095448812971626777558868324681099900956854703679477958947260247107967770700992501489072158429836169819509272555483873955425476564046569605041758468746903364338314010453553194573206707625093592007651236884267728821438732568862390580494099355322009414366953359036135934890867608303824404571109245725675897049348827984595916251933448225530756689101473164677546280604590803578272787582228093921874779956470395386543749964330104937433319271475989568960264493483164397962365875111077763027905739616426807329650377859332125157076150006143044682516231118013164193394022704972573103791946019329941323614976556198696575059812902300199436629568268660951731004345786081659074624812730393817187206879394609646955656145201846071447685906246684647013773872082054443873871277074637057610334523479668878845703424112086050563588888788420896304900796878293795649913592801108214781467645057731379018230596873392581250928377129200716274339512708761136174970615466452528305064296310137909684794017258191640577187979429306379984849124810167935020230168690230303761729924683627199880071730939928008683271037002755074222743468903101127162447157946266461917579898788450792913943674945859541355897143390448399178926550316277498555039015308108549095008754481578052472802876077733145933481829310446242028964267290214596900194149479711942130569706812482696628939974515418762641259967919801023010457314985334327200002952902268060176472157778940099821392896603130872383273723519062316477151083816520475963762917061399105791271872911613651777272238955328231396829882276145994093426947664853947863465248849155514507373149998352294902728362888659732416796545987463851459169400376906626709609882842304684688032012062537423819200496755631221692618867590566992918223556630061041004824682794486902725008062277393307257029933927312742828681788887787545918153098854453660359416131806982723676019326570799388160849800761533140609478721630261714813634327709118894468733198738570572556364618847588621786999405486090085719173970879826138226071315626149460621379252815288847983113546402657037774396216444288192145266267353161601062999783185167225069452484026735977997290056090399672638544364966224957617548066145008223700562925987844420862184763765239679166545953742109698802511102907979215927187683084362044250290726008037046565256818069507194844904127455831491719254287242752178704957170324432276104908277717398117074751166362888085810810634726403588082527593851407655042210331161172662263060654160929578238454755848650594443438337054624567678440801335727530035702750605699245798658054091267032696909241833925949237820978523636186407926196669910554624507743034442172686308337926759857252450466303959411148300756191131058372348006388395226028019994721222143920513556521460238372262891305210024264803227957368518005348283503658673987051986583965536853357105571706488070979670478040163846992613443752655855095032240873744771160873730774941871864423285508849103414682365775759723094300912440577186204389682492173840700603695900834832455168204513582349446560830068766701055499211407790812151860238594705739538498453903188689564360818734044906046885720994374806023272036275806348287120701364476555308464930986969311583744213719574862705174423443727181445128295808360965400759186768521530678814343377946625255753397263305594000383658739741331394012402111509766169109516883760383822745983410061193592104988185139900369432294714602200756606440576359989990541116335207716203415877996189768663585588196095077144817124931277338850568154220122662046065137325107250445803206645283062793124618672361037843768839151413461538292936267060090442404682759887679027205266694522812373746432909435745649874028132218790381327883062901569724523272056761394206908849582581200583263362078974560031027089311072812163405238769420350808142067325054898541269703643477627576782229883413128177495705645674663526114068155362775933174308402582993174391083660223981859691181323955514605061232061210040273750206603535734560872593007468538172589804492668434403247784337369824433275916251130975155619985743468368604507677571708755499549891218278708621155684520446259880982714397487319025920848814557023868196252716999001368654918390829898306380427652685247817905901708274993272190323465993124579608547956754239843941237860352086484779559746975802906537310410641558877820560268590014379509045454370401140939079550739035125295421851970566426631319937140991777837758847811793708526032918711407473796563373255799519748497461414884851951666079308279561152020253321184457098370603571175604188822189662891312867749845524471613364781051346171107606081777378432668731194514082875041179929930392243649878104772221910267178940083484102568656675471187920426950798345607524971612608451801371583615136486224178891218165581756872280083770685935062680371715870900097614594266300295030631901427187657261328204643381799517679344264939235341102240407729832800143231921858578697156133069675064451273268239652017978436384691042557457484751527357190787302456147480220964048181675180462585480826013947522417151899928262654322996056135635383346566826647423715480927239127398560765256384850971746387445673597598927791137718872690826850892355786940588215701892424298761716854134028681281328194944107265752214550599396197195341119058662848644721046744362342172134148595663149014788631794403574551047639072436193776275512387795998802684992361343408610478984803170765304529517239442441812099798289588798479217217664404115761377708305812055202805905635039376113448750026815511589263218964403849905850030479413654840531465788586346885757788759945763990042316977676112614336985405168442466656657474967903822169155003816170503566521493710201436471143646035954017059052008586669165172711658242199661493472499146482170775162737940333003834031725614842706955889210568863434633531074921370103289122385015243004832688355602892420147447141983378920331378638824981990909896180933759260491855937398589880010819275156454218895484955180893259436650219842396061940854810873705010791762395196143915837731834402950627018466723400214824881639348211681350309692700402497856233185174896621332849610884075519633443334687819332934265953255467783540932150234822658587923487221589392805758229582326450658360962870948815525044919992046457693142429336959717593528044353312312671359485700263980424317364745504760431507637079168252605712111787960987165381610613777781049049909940561921834494488681690589563715440843046473288674606656785513636572975287858553111113909305798870305569490348747698066206272209907299536203530091143951839609164380781417881987267151543186888116418886722159544306501121275718719566779223585181710082220160581125449915325836507893621644177931117743695946382235627817170654266460948880349307974889902387297446134904342551323014822968932642912158981213393839680735572160352897500276481402454806822645053052538723482377542721616794201458766951920056407920363382073068025192203572476370802979463981292602833802130940843145156421814539874497990119371640895908967450931640383045095947136967813378274080571610237910775564849030064580688903206116230408608923114411017531809901013616660426947911375853918490035856532747813889145056195965939434836413191948694605954777626143712852595434297142904128675171614124824308430915925917171127674682500036526185437857503064399556304401995340101901466530928062954573180228038842071034140842583418201185693168469124316839025088776468119065015594519640426541918056179616528045088504045125209414469253033481092561372245461100789452575670470488549991925112875362775133410936718754417638589114821794146647043037762859399891452652161027542860087775691652475122757940148299487170211290372172002538737181828381026201231807565947937288833034569960129526607805341019744257672024947973187823681078372594839154703945631844847641984627236977114273381722343177448729510354247638896577615724659369541871578116845235572480892723610691980701081054599054567819853041448610361844029265879939689910251764498404381488189939139201550366250072883116233724503292265948798784451068031704772198861957705480025834838274627303335494371443278847609535246228270181709295191517251784461378807123693130170711463831501698854392330132834338714450208166604450945929771531424205435151042444290553834556150317312564506524372247651103733438315340820772529692854214496276271945399442110639738653200163310168672031950564980676385890015409998681945445390606515725149780280975787637186943091906218971171627403720279909427576799175028826485745465116876983606687724213523018487505602825343763193981657286650854504095620633978421991368721825004449214143404042518694725302143039275356231654801815977792142687406741452567470849971530947626146834024230026606530864968276612915666597140403429704186090119124416091124524054378831855921799004464583398546510748932234006439693599876755918899925580811766802507740315505258360399155419255415002833408704316181731104051671418020876627043213943088716847361020556733765551181620899211129947994758269706167858197623188412865186138799589676700444337103254500468944870269031667084532945280292413900583929019169999641374493682771867240322839087407192896026906005883281052102608231150606544116841894481548773092676620085241943913458376138300925501193109746471079873333472326816902060511429754757963121474389320922415085141278588835870429519600314343145262187514486859686916683321341895326061712775924235793105309133192147477563795001247230978625400068609419144612018570333418314928738605055260719031054881856184773170789522334235289829936894439487002189424684428010417680488111995370977792600032049536590474096951070105947573563447279705026093604575275212067305477490268475487099326956198526205163936253389486582054513522823094703580750376228628265940716673394079957482356568021334553687612467366287118283273199238149857872332705426090102075803662287478610934458079630887982486295883750300631914419264874750148453187193665807373922986900221279438718807585460321515582113962625197397817385077352076397240259990494381625241751106217788211346002220506365794028925615414603706239906561351408120388218587480788660084122995632600222890554514379591534133715133718025965018423439424861470207100591432664986267448577227019058831426542013630721561054341169338546811786863401993641079432287126930449299678716333663674415502470530126863288677569194244789251895139005332384915870235928340800566931452971530081312036047627669566379253020547982321832523126858382304062598424478172268023679914892289914300984730973130971711215053451114764300929668048557343794483665463371416828730491752981611895025157198343498050806329048693767588116467047277966247828640047395254681094702770027222706217342453504921075902293701382588622988852774733063117083422762274428847659075905276494442456425860177753460704934991785735178266694855397508270286415563219353442326213016347200945811354608720474488868377414075534816667798507329352397534958064214955982503203474436839545174474535519467620154030729015947180101711531271126681225400484848485972463866896724165682345948084722015545735577760778890884115347793977600450775238227537562789569267213820339776927391466212776585146817683461697118738912068549717195209160882429340782034151330366070163368138750833393093040091176687243831182158139801839615687061336114061783314085983165990402701485258675755876522957534330876131351244649892976043314114928800328245968050455128475846556861563506326019848276398783753324182104927176036764598895299896644349871246701088037457850865181251188574041338325523319929181370075203580110918124896557323574358653985630390595176955766036658743858589026120600715753338999301797570416502606724380572853429223267655534781456574983702681032975787559040151227271883603312932256861520144500155325229310278592103714238923373826216016344730305405812431469576336410863383010322129477738641891816660804116221787427178546440783344629533223509885071863457066594069324955573490527405463371568407074419573045925621952550611791663193160813616336214760522789040874490354551434254773091521275055943326801709880522277446167142154821271043816049900963660928078291676804769450835156798369992625600626702760554384022192485648431737343510121618752846836531789404886855205120514410399333035541309842541263498459820008184800458548041246055414247358743189417547122572820810803643509261704888009550360210161696502855349492390223183393021307854996325247463883688218909907197162341037098474469248734900633532064690301483929828321088239292373740505368041666632414107890560346515133695250285121085475424265277643013578197106676880551134787514448981058949213089110306877640140540656177070324771481158026567786757158421763030444840965206132268906866329341496859856546533855485068684764600114966952253257889302402102384732918902315283489363363285192946818792797248908532633179602648208334815710534166922009408585132010282022840284455189045626205533948950720651874161736981724837853699130202817823430542428700883327014572968891157591688226834962503309361808722960751104773257892444406456248499688442419348770008593803853195850906112379876971139760921169070420831923810597584199258744367641806498527897642161055717280403898718285830788467214525675420608301170792179530936447799892805274112848788644125974410139984920459708679667907871657574324696218563976967629444418861641334059707655176905246709431467112156167770107799836947985767598069704940887391232983039586893157958234881992696126634325396002587612344527120011352829336929353312418395524963689123016647330268179005339882211427681222868066938403787364975547195181114742567209654502271347022029014564427184709236171733432136993975552447290052941696023780971076207439324729118892463254334392307713195064173500395083622147668904234889316937862452102552909752872497573215339577898405419651245495347448397782609354251969977308133200152366691526000743025227478230950167885357504811649070622729051122117015483532820175076864432416387972255361392438581346562044400303556501284464218006437001676581311370250702802749617544929659351150029098459693124192845679719860572962363077675806270105684198410997482937579254093448102225404860044408983277871928871783313683492103392620043476275423718778833249756859205297233768044673414618687187773491237467688004914373795294445476591454938310173989042971481878001755253444535258236807197359318835610958731296603601935984278501711070327638271990019875959854134757370070002529191279195163646682985734111291122337245743483843347723170089776406339439835399372841771255059920299576171974534317284065188508619144847038853598666999380002260888202443766120718561572919128517192485617989649259121466425969641096005212777015519082711875957004568421352732239226707174434359343284634568182586768752806127627156362083717835285102840519740034276447481062794462628732267771258902533707664905673388908235568561690697294482046605492934933929512766077618730968183837505599187410509737002249906355194020711561060436846051536749268584287545202928583952585659051689983629333390534321763210626977834991791688379415823255495866999697936424717306788930723151618579163208208586202658877555244699515207094158474665573665531035594406595127756828611192028760372293253929212429124808231590000347689617084684121097130971771678419733108566534017165936759839203002263848530340911705859528780940983136797262122816706868802649376431048078687953704103805218384647236204896287060788443003915133554700342189468731135762123675684198145883276466446908265627563063670373525350307571957768759980696735488171948868408786744801641764452988297159336738053950063620811079815835367411062385721350434847284871530680915077582797560470328124768317095270660874112179127630933889334821183540242712522189943284723814706633120395981758878282800916961581264650877707611477891564008028767431899502226947068501254947683171915735334595644581060300112797381639599729894078454365266420814852181533597339524242412134372861636193450625989999039944439331069442629310793514441965621929360782465908843374798892393942500861096319212346911037695293364225444316760673185346272590602467943472863502245845751436285532784002527761327134164137785701977700058638821813212316240265026126257963017664953904549449853765943762461451561243909884030176486170966472199053508262415939559997170030805250642025599391565786120932317257855922448839108143009318323549619906772177280062777884692918230635980777875463234084750757624242578610651245052902039320071255996790071360579987148730553130871536090557779163872132024420173159280443218602598184794438001865977193145402605136404958010679222396584240768208909278218983484409782031341201974158964123169088025519610082563776034665903270708832747452742028148615213249000770956761561130639611834064340769305421289968094954138416923621970597274332115945626109864032574494304325236116482411066282484939036499977413128144821575167798361875346506898997913494517335244227651242667962299282234572951057827029284966182974514900607035681730184452069205196305923518615188996084390577862904521711044036181013191988492561566250103462783621666841482930200967337341869372764851189358376553788951514085875022804192956276560735237581406144905960046800535446026762981994563984412161725514560174161783179032266784347323991274264236689137407286064613564014757016124513941591796028218387583523639091607216926169917121414884202440592934775163948967431043431060880736661767871772767926272503598632771899584231023722795427569856352444945007770262285877246148759623903890484193318789173049956324699886431529352229444884502929896393188656859333388971025798121466178572631270545548014058147242925715509410178760028701555172907253243691006950331634725631210949049146513955226009839673646526345799562337662042217154188228049520155323460550626365721366736665935480070838242969820676717795667921363713261316798504008225157728836125446774455354914709089802226590553213665243273242496849102306176226577883852459070899180813066559542340075471517145009638766469803911015076658062289002476216817999311089875773784624536113445233590229491541161790947586636404143508965839559661626529485572597484055401811795994467073176210094196392187876261424336565081906100949537945136386704365111909865079618574532532304840372532132293073141982114112046828288940095168485712626953583697142751747977671442123681730480227085169593434461719252432950438117988362014507059103263292789422480101133672260803941795675539985693696868115193945554173238944276700887617818357506052026635391052544979145888537226485574729743683637772643243542911022519387889243421791894218004867045626757250279772344434751232343038320799665929652850975713968560236654564405799801604572734243536058631996857368433975999208614936549654663255629158737951889956734043103762137161653705848778682061951050746825237597480819165368970170381003774958797623604405646056665178286028332153395806405444745072307037987720927182764290861946131118554003285744253185129092588749782020812814851488196419321871835277337198253790881765541462759179267798274743053717060042785399715093231806637636484660547946859802200218846036696831890354925129439543066010599895242232122237326472139757682417988052024967098719602267782234524070761432044759611996308640992765428004995305622194883177565538231342177536751587830419920812204693220134612982061699915183158505271594632913328976159730370019416318447078488937636914652156306644165600687063335689026119469524785928095709151037830539082099058965038054197994858115707493251534901155711782512142340140530110905533982803532366683989841482182272310886815840157451825855913204118284470434650479082690174267526020536006363536874233639613158777700518116460035734534089368915539109508143276041233752753108871404887731618362559071169207565831464223940542103791862879048815232004894318635098958181260601107524203163157720536335788591312866929191655937131234366861298629875561898904872794828083276020206830355060893492066538276224765658225363055166321494145701715969507167860096808003030738580340158528426158305631849979446112628680540520756682063740656969605889701328421074859903606821206196667009171727592124985438549678188708768548676355424108943905408590812412830890606202546333274538925742859374471847762307835828546643168930666919617334456756989902631915733045516679466309980270867170842856053977697517705940260682578606398012420740165191633438477306213405733619273169938455516868884675813371006963512537366397583068727582400662594783544887966742246248572361746909547091088409251900286971914245307120337369567217692866623265976574086265777592573550965397825832205438723991559040739318530767409686519967120734823281002228675093912512918780597756131979899063314155460483749065833748994843305555670307292040062899362444479556837354584374005717724520625925988990702668567684457808022509360121737904703675043037296268682755430800841799589260207319456969503613989523532494704282526674725614944542980811017199323616887718455302767419356835332259116397635649714610120722124394522070716958159438588521389678759492489422579196216804724258546886704164112305066187196649813432778424595537210335641195337549394351203580884035717513324894703222222726635638199161788671495627288690628659764779168599638198946183121178359135884086082201762468378592911146090274037421102923404758722924837719569613956668143925925655045184796561411130394880362327360326497218003024852683584651278198285308459011580038323910768249304951664943980422093590577373298222367623726905297148849618113382136887713985806049978675067380846057628514768319926402722889987108498564530400997140509866272129092603969113161261473432711301813130269248979042330624699465869867771732357700800150223629591184789400871500784413383055572691938283757511799286606427932927349866639869093869083642256794210351783059597193781170371552258209271132589777912872941110509355262312725553909453982641486705305297331606755910294381826268976732366532864332642675557014550428169911109433745394146859629048257882565790178663721581787453408004481179009947125838227684391956369309191496290078891520828088888062353713931624289773235544900656249892071722151537671974832674073450446358820704018644115940243506300901715570784196720384757089273965210813902987354103091074944758674293859794970039931293158661051207949209980302978192509835815389177813194219158907271720266056896659188393250742541350370225276778687322966485468666922298702032525069152594018713402280257314299339975162772874591271692542184479531697478707556183143185082895724871160062596695889502471454315073755627297214414698630317067373829654667359669350507479513957195279448567291438880738529111888132067332028416641444367234230896974615874657859936619942114278387287872781309863129911641919088981061739101324483598373445144905071471947881568046632926421140717164809450222566029054848891609644322189073180368782327270500346471280441056310382622275301032453806588158146056814252469505072048647586714667715820117222941543304599656810759235427740176328566989412554963234992901199439904604686834940850072669090699255577159200807900559709667430794352926532663655126123825090427408695984757877344455556009296822821866106221353057024249913960283982815532865671154143963190249867569633838824621138512113804853599997437311744849769865070851759941643537748642152559692261323373574882523429036298369837513036328392129682091779610989834859738970026043889452058238877077140940368879097685931715188735951188485131313827571660487640551357469835892904252691034037588294014530954683482134639319990460674402577623915834264793244393324669076600531294750664793480231502730904000454527982764579589379681779373774328470526040475268058718728846343523580779807732353265286537348512707950498853937585613622560894154600128793838479062070451640468550486114183224060845868064502116275689855114188839019768513291732862019257212195228856822465883332411066981507353845049423631519144106431445084759133558249209732794524871866705230550946194725770724186375114471438165780395497477835224058475251101966654706947125978483255551451295642214432233871661190752465978805383921106598094690333268274989424058576102710571933756412558337995563875477899153579104650687883901183216061549921741932841680066237124728726420635080775204307879257291652387509500223775880861541244224693829503424770735837027786565042661058185408152889598686911433397865408766085927709749684615910131300618293646997711566314538348650019532839346245875808782495643336118491916651185828461796104592796871006569641207859762421429594677137783856568627224769047963982699527303288523785747792219949140208145610218199359102739097883239913598048365734865159722860639148703286078648424464202391879078162451656716446501144511976754797950037613229599945099700501422165007971689239695275950499794693859412333767240583140564381388197269858665889372502147531626393599650540534492493671924739555718015275682285256678052314395235686041950770590253610403659164236302525953057640382902022842428691524575293370607257622514684861291641758261596673375189386353316646416003138181496061716918840151744787383550748348886495932363070184425491962456936149892607893121643528119091110447800502977460714933525279368010391013546748506754323596689814686525653776104244317603737223561220841470543496992148549677248150902748297990665016327025292709503006143132781508839438204138597567711085085470648604927931851026055502434792095035999943040682793460718674551271878907363984325887774947943837599392780103722146381073481702905089176515391364466756217173136391343246216028361370030886417650010129476540282484962448700751070104543177947359284626322110534745057334282874136602557115725607054181043254422645653482127506031225746207814465237427793621496819277763116275763798004847316167721456940727281028348114658906459318706250749108154152807893652437585462081743681339063158400940518287139313350172119996282223609237438129042197290428126440688936469134052550993780727448649390991370118919165113537447732292104597098755626220323923356403535278386741343517171756024079506362075125555199083033592249996124599752812308408671843439146707564585731782708622428972131854199791797680212691018597934004502553069084140962200637212515344129520752646483270617401102148728101282810103340000968511770425076704662245994311008635726753234521801636359588814991114855857650552680257831853766018278020276010135063956077696201507982906587347761032954438593963747891267238448834758742802758233806818981924649975852900833484465297945357333024801843374523266860602143872947119392366859412540840128840071533632419791783068793138465848624114829350468114709834862171935180045426230787578571182528300198146014769589503478239751402344139114159474537059427581865852834595346680185882406064708581228944958066330845384548966813494531695701631049413682170447184935137424090216148206649368222929396269718300782395134048653307873255235965994705891341812584477527459853514319623796625125895498654217381616876507515954683417902797202184343605674867727849329645819277812075987809145589115085373621870077812037668479925264967058097769655913615055428845403698517468417050557640235745870618651134671216512910194430976442866710060427027562012890652110067575269681093250040703501098954904788584287079192698402900344638351241901291340367986972160730398109049673619578834375012765515607173580263671527844001527269047030958260861897169139282866954666359659997481361098077253725617778470318161062838730995179298298429737636815301649039361330001570937716312218990050505232062632092185128692511111813883450800500984585828910486762964004846323221785697118570876227799900755097795282061519244911644798367529751807640815098065015281816921111623397228322184303143261324182067603960212450841574796810506500087992324594999684983831322406689899774103669249574516601785942042235020013089466979573847166920025663724660176064284981104068254388486501820430171716176834179094176347400945784224776489901114481927608713071561156625692646973862832656567751918818175765851472731612257904580093725795336455949677437253103829898025328650330633902067902509212552569740083631717654915527752539045780998726905031464951373020731200354349836276335578068515333041540523129749896649043399297621494228114138306926508940013430870678226891095878950271616978954934527711779998044586973575231728123269134825011795053288157487390161492420312719035100762871773951461143196095701194327012296668236914248059824451503138489348623125791570268939992704714955649177360385753555203214634702691190911542787664817055396623480985950649360351772480152444062416603267632009178736884488009367080922158349939132403759405371531629036336995911956476983409726958531146456176381837549342468722126727895540880066532043406613758386949830806542024434965890578092025977175348797826170773683508663767649778417530763854125617516341235180307723538798572372079396757169120967394990409270207499044352093081739519468376817053950606023454251787852418913202637391586276112177885089494095462291136551766011135710166163149236660915634858290141187510695514731828405468144229384391724572962430470539512834864889010110630568454282536679128850475449064720703328126827484437325003612635134978193948591035832387763714715268555281798855600763971835347326282191850010877917137156193203814516819235792856801019623466476869183306390392841845215668708845695874708628105641941556969129797575047079045935472994236569820005357987027392354570765232466757837638774843386395840235964943816555768650300721040693545899948535292093277906719455118707790472915619566637075469208551157365499183592520584150299506393410199564721189652570641015405002151923467667916141837223769459484817269137505224559567625623268883366059167288251196534762216144729732623141974070429995633174708850947855731848693927332976575218695270737309717639144345958243836452689039215572787859401511060895755057440630092576561064197249032149377978369106332308804866209478864628155310582106442376330088701838600642280103932498225072992116491150374515137417895379627830812776000655123060264359780631435325713844855675300057441823686377067719360550814391319498442304007575149312444149177634861086622879510101771124557362513931008677927690357894014187478998700894499478267858952429224389910182187101325059963818125560877091881089911023563723879807948171676301392009945395242457097328801998257240424652752123039939607563350101161350887508830293853751857361221313591088644336863158329724565895232399230058046946001320952072140861293831857849438802703397922313182401016745301544352457938261168529200647853941777361554536311351452586474527618480018313230011106317906372087918575208516312685465675002507762638453508969683092399532999600097964132399330224838952499996516343656708984817306651750247509867361727957245948328817827040037512433634885621694457230839547399593305216347063124282837816665564288107759602042201784451895090268088037358122603228822298375196563437734589695811608641105797186257299786536138387756941950395892484187458838216693500939284911517101611379009913086462375273740107066454552733915067235617107536352127590205576243724559014944598373482929195001748801731081645050877649961711830405017748036778090283011655234938455830094052414311576622277315834069214859786743347498810685343191526523734107261523701014256259160545724550832642574504213221879764933561074710244745553367778305211282975824896868986829272666644329865385215579230654236424475011058912898352525381976932303270149453510774381904097213593853368759642304971060710956743827664310282997557938203072313712331588936745665388751757581016289054361234775723768800971226285733114889821840787818172303774655234841849183896433867430134183366260017130801458820770947217895419414179790619709782391660060645612305101987234962015966049840475690803507301516609265108444632844986547562018486417692544056387988145345833802157013881948705287874182294711085488222686698053669588385464717915153754674198563197953172736571224928194032415923439960413905170429615841490106507929092860981497913890377558527460490117028197350383554022706620209701446555640276037595284364669431980614669289693557794930668555365823913707906100845957216893089585664198511945334743842138493564284298043275246625416738986211715433622167265609196731616838866127998778834514740604034537170376197839147579423432641187673886431522110660206318135964597224176756902261540064395161793045281372311397493761972188586209601508961754606516630248745102692082480146204667991376358534087989780873476500828512734074574574612700515415291582685672654682681665983365925150594422504566425441842262189406768552206366783465785421344583114865454814665388406032390713537104166954833249950622680874316742421399769424103207205406749173527942889836015173565023975802281351799786760754506089605862080087028684905743773559263549476893356494345454522842649456262932935888346410614885423547471286669281233157961007223653900105455649692344664336417528195955242134777567259409674045293700224052411476081043168505957651140522185979748294384192907936408092473548199138663286014801625575020032962468151727638594276526391312989842420378186154424024529347883825736859644988967947413636450138633131040620205442155933147898934466672740932075316842052884289039240889843559167302753017171960523472926909179504241538202197087708948500797205814105482575310864624921532509643010820618634196728160961761213349632130532447696177010105639143275720644534068503100401128831425210297228944737882856250697999261034622955729216253473237770722211960320653378943322231474176430874177495685860604619883073895797882045136962227847636374475458390468398044438369022183478979752003626362794645341779675780589608820691724140461578521150841596561502691309393915333408752036063047511957431995177044531283413860417122350720195332631127282595268609121987157186031810061743273414291518244445668827763951432617711764722872473358808512348436146623155463711678528077333965140151375965673530025535434133788168196194940628941208701338371564296347297988580144291233748048280908172799442187622242880558168850707088712215836726974927569925581906177061304518695929782359682885944544817021466081141592333904429766342129342411427652252646529172819093550308915354273667129756667496760715516778158299882549503847933955714032814984830434528721339309796023075290104851461311501121597726439064571563473866953842863448279185305076479618275224224802149718506506641985802610515538501567687985882112799871079566771374275455771461833568226791490735193283401962735566377394965739932296231465431478845446663574943015645504704058534948587649546606328456384316419361096717389524590246298868228892520319454307193947101106945985197528066964613378387125611798439093689999248054394185306515709381559025965814996147471534414252149710518327015446000157465326112493113997891282297401044178678260846807280501295681970036803917000479745901079615415160146977913229842703255915157912027518473917584034504879560708091141558989566705705890434093323394171364607736230908224826365264498373408304068752519920604368077460872422338323355042525900941740042897485591643937787305451487980528975777178669527207307324417716713907209809658922044293370538571644537653629545553363661816255183548363480570350750926202513050367976171424656214477129846794812995278816298764251581130607677525670920763685608908178634181967679789468179963988318669990409490973862915179682990396327916253943175157123991300254795754318737115999019974520807551192491603749705593103184037219084086198978681728304240262538483308156369512830832386065916794495605277246842610809173120903556093009291433861577579691278472004019882519095368549706842853537797560399949335077889225464742352668101586682144943155659035001475024208186052875425441915026726827875133426761514498991761797161738282680065424597573151129616031183228388123482859518865674812256096868490082123388511907537308229063117735958297262612473483461890749881293969438203952692271037501854309823785750769723580708314159732639352709505705021176621630278329166528233987907462071119016981517287667250633549791144020272783042908971781293315685216291250761523241481800662138370791681153182171412683654751780133019439586048452985460802005915281077422567679325101214455894654325832460883703902750966558000942102977741875173164770048802940910001328482030432881814627117828573960248231119697387906603688350635607286096059673942928245305163746235311409713300122494241933457101531721764518783538824664651106009578675633405087194332725534510875756262494454773652276439138537449192859827669994015661143773857550998968295156405806408429622981890966707971933218274411382437029885095346460097434897829230592250731815757059211970404946866014803713573921953884932699821814083756553351141774037664134767292216553706806656005097067068139932871646242807318630309144506548598360185377155306938043628269695968236072729232285193230545014747472088573950102191215709966813425335095008270530553269845400572652909205292002382510145920337978068294808283577384779984509941256391620503254236780962965301221852040256040531337193393531846766281014075371574526107707036654972249724696367428391894222202464922944342452602168714540434808405567117722014197996770501886747396712285864473469925907332477361278176773972729493639215733293425093197172577850205154817738201180050996908758955783055886392235812551717173972503144614992870368621208369224114982677968489177044548540156156910466470370784694594266283763616730022326981753988516693071013461192617124667725691555154192340808465774393374825973361740879289330250703906495943996002159104490846371803786039728080327671685143145293428537853047753220950087497370339906144019079967076191147219989553111345910009786693871834564263756705486412823980506894922930062558045383848901558723537206353222427896696259149812395762096682206017845037893608469439238191037045577861994504641322023750436655785001144545558153013079964105247987041368024210712839189775690132554657882770074059643657788235112403611543881269540341353438120538219529305245875577853872464089484527665991184511885134611922762912049532730421069750688209256321522101351082357965257711663470801527984447474022046507916756033519824937880743615282680938208054233883140718430636438752185019385374202685901495653798514968071447387474154101227590154318071483652649879320039698640563222822946634232245886826954234855963987155043499361557813655639471934974905709465983383742636628234944277973494799250171811973287642007837894121685837763552367951140081338663830462095271520058010596185673182377489697951353067239017642957968243912899310923939909794403606571175572605739966266581485745822333671040546755151254643272263052185275154552290290300302537696394098821275478232215081357986983148008261051906504919609563630563378731903221448951120559951306155250207263570721978203256259181596108681129227143801793922693371033263460980583363089692740953583609372552274923628304274683901871938407408392187675618933083582260061283899901962213190792489543776378455125730058029323127036117029534959221794333982412494705724372785091549173940590879614898426114607312494808728550964623672761084934122594538147888875678680071594015487428468052613507652903987759691431410916635110981467697383144379158237179830115766111107482194469319957320456519509223578899136629134655708745538070391402869439665847393242255187181526536126972559342936425235728085794549182117220886256845317417471993900519885347780434211921751517484107564792317030775023339266745193219933396026706581678462772155498992259415744555449197451449038196712729592780183141017351412655999429927059274645815931936961606262042384755395486781178667464755465819939553770100048392895033085377288532893334534003768151008630525110657986095528364278216819628330903088023418525107003457517841245512346344068748842136857032680883675480698468576648389230616793183792803242205193823608351178398073397484632721965016686379451362372501888471993499864791849641738853618016009875062590395164562625879878519434234716038753332698671802094829087380069483536129937793666002006873200522689978221360373360344073469712237331814809323249563076624497904614138671119033374148800056303110334740867953390335063872557752355619310146455731388856047815780395372649354081946732787716546690684506344563875229700258599146040634461600790018854118975859508644226052326633284666454805904039572979683900525774172724504423624647291708620730220149859156073614951214090348477159141964603346044907328118367388142160685677900225149831329953978773398297259055429696082464564955176177309965842851652853011377499188132678572722209398544887368625004491522879269672918540258195282882836927420556689767170676685064446151764646286042262831878296786914528297862330380759044457333639621080500681053972098823138444015427214062310885354908557318888309076375411457223914547334643631607943598078138922650802534894647474978385192484829684056255841282234200022442226734406082663008748645369422908637934872266757012091272590631324784334521175398302932715829989071829099065203862144485445255052074142715031558898258889198974251861726775951695823658927129107394676404411458366832103478320587371415233820805418954248863434581604477541604088640983083349379964291504655458829687599623706911928476325667785858794419948025019328150129844506812334479944952715417012225083349130678557637579333495926559585622421547913055257463831294803208825512580594131440233118418515910690700662744062153988150965289040386732214351971915950914706868813048946446817793681992081683795035616715379791617205230198551584921507123089880806558982893879241928416450069055772023214773936686046212020988238258880276985858502997747416518369911222251015182402388618756670379090551005950295666942339419711403058819722943144540954839061643699292497676995652375036166993541033526941559215330725903391270426489816969856245812274210460804513302211346528065353204520680832745892075513051560637842233152864164848302430167698138520014092644880137610457046192211458568800681332583831405647326324289836407108390358284078935937286237292219305564397600317963523588368880222058234613661202373722666349359498523741620949937592228307304636678106553017092034052910457680467817191988892041529398212711324840291338740063862144175829873221394059595881391313731516227154445419126353286389662624835208752314267740185970000379092928921293348587371534517784215617718731820539161353809774895949823742988428382258544664292112599246232993500984420733131068481953817794961084850267087586352175933321926114133212170388435851919920598147383344120449309341120750910793520260711316920356399797334465206863732855521557875776810172395652799016575263270891465393989860429823969435401138137330921542594952168346067852523576054551851960094523055863705026822909121651658231838018584090852444059481824797110875114771728579530243647528614350402557308405057780848725658595919962979663161996495669297295114471844640694276371316850344925242238436329113871895844384428897919517662096171578955143083040281069681048886031157555545276353727088961394445817541107355524717797093191095272402835486678165384207070215281836385844897471788159356450693338516448033361114128015636708047943036523096655882240119227296912114267369834597600185712929471713663933718115147880721618674188785661396775555978374512775787323417136068486931264378925759106001014696757214794502299622338965783557268606936437716504208157390008963056632210853018566816740929120810211949534634554996915150588709981661960524430184321221148758186545241780143324758125106674907536056820732286002597016627526946979135865192007421009738316617517075176678213739961848381128064471747294157645472649576116527283717896915404899834112367003553766272864266596200396849035751389258809390604082909491355697070481875376937432870616734180749979739673417222594348988035371810089893104138857268847836310796669296433576688063183759173767912091564129841055821443595187055099898992719093799215569490710962991233590852139062967876034580233541088472118053987264138602240472516272722800029517222825787346616523506498308263429085869717406490113270484442548056885580020111800041016058352457225976749083879113787473011083784924241776722738603028771219642888819717685480680126006301306153017015421850118067691064641541724314428677046559211116087222931974005418794638221884700949895067257626736715601893807252058304254626183751380512710083384369290188517269605532087641698050629971658253867578028889066959044711675397872879653241088100320325520169442509371652527939869178934337419718374560028053632242186994140011536583456671878117169102117406956843249022051555262740233891587068299528289244803480739178041408795105548948407281351139344969060312170035510163086665465367506357573866866358139790514077503768319991338924977141978074355476683006932809223838917418110918983446432731956634971530280577547051031922061904500296502012060115679698042045381985021621244371395604391920823043112039081165962065074942732428052635080453123258644400969868454538900684955548249733184740630533814582290709492558414557316173599688238943793603921328959638236916953954380631059647006308463535457258992894724106480884300066132798796219292251325549161430068976899250272141992427111681062895048431246654526356794761588194012116756096894491149808798673548898475700439352256527544350696542515020821701238751938413516965942769654466726084467881607496342893922662292275957070136529099990670839530749353088886464263021468559845126137444649176696783658194747881440458218106657687625146134503532887606845600574650031880728842690152857820536573060424297793417050355392136281883206859082355698140389835263466751134731151598072508643013373498593483905960407858348161620298775962547545196692925292797954834578939580940307813460176078168891459861647792131522072198409769729799796207395438177350550901388467970025290113567379185380259598995929298900922813358623626579068888698711291209217695699574269756339238884661725658931345517150828621827987897963859733531472397065225974607612630618053208210174371375826744098944178810613195956810173244282100865687123047197238964996507287799851771870159474366885610852790150290010047185983584648485631896087743289269474739977352633220972906662214322276991855981081940420727552999991389892006281640555271852688426910571191815011255016383594907145085303096596032913740459819673172530264893793752733090911169352329523216628450405348566213173120173097682329829641747667186700709452106256654867351530052797171654602765572539687670553320248525822673879371600195038106344290559968420419375804166932914881863128733969489462529418689410056624989130345173113125036844093676222232857925905811881546517231447242001534860371192296214977069631321986792355572401103188213018568018351791857345689497186959167536709569699577822970218567089793392034553616218296375443168698038631824190394602804422587679579803258348230474101571415482541314348340866934752805265228696090429850070615157666634921006803769427623238540995244554834853487907251495152226653260997922278613541091401744430390259090649239122604090568817536421960061513224497758600279059081141006541122265786314618385228288056588901494920169865262228673429306187502376530865587883775381414618096605929148965023890569977197613671539170278250934277352019190839133345173500355620618442621633335024773522448571783037504688107842800043000136319674573471582488077280164897739991241825443458481159977584411141922937002908449022413903907010680925899230255702296299351148114571228143462728368416185960363037522051029877898294591923490604819194467702888731058306752546573975554597062591523744520414967571531857216477072455847610937782367433522388056085658131159179279530769065505568819529802739571431352007372528176295613234596204057154778919727711056255473069986617050362025217416079381427199093489481422932485364330567203258999189418550000874307588869044322787179595928642697412915176807748116290476669976365150888418238286921455332293877950570032914089989529795324106982157409084760974018116318687713712807745801534687773629501013081541868105599040267640207592239107209240048687447627056569291046344702600308935259852705654375308259033461993297617307413788883442952089985942258207024145364669382742801885067131098815149894879200582298894667988891228293584725360669228986448084978410622096894208080101128002901896963340415970998050333460395346161407190133502886314996975157756403604588795400819046640600032029270730743087515304424256278033751118883059512325186007649678884872305002868938282001806707465955663055455680125676589996948434389508551797235650775503171535994479176052880042462891975451136492371487493752808122086431637971681884523830140523780908925994965374185306634011108927732597249117341007389475546203463564472089826383933391458795089964416765195157097937654491613417911806421863626941574305500382350504445294175884604113453550013058080734564306564868807082023269671759919468147709319137352541525329028560581704129894687678361877224989747793919868348751678202001474464448152885582944415458286301148334334970975507579767925208526855577984827358636565105795862371060270611191137763609170015766336535196750279868811009816693842420285502543180198859922982563783551913837689612614533577818379698408880525719404295490795456673585810199753025352564551383328126911823808726737681213241366848068292390325288098440703483867502035351431536161665717201212223612946287363091961249126652122068538819318978463214137450505433785829242636159418290380882659295147813074452883984698703576775514292478980044154726630493052030789489870612280722471191022695621139376790501189616623886602406350921624257280029643711129574668025603410633807715545441134702203353995386449027880592596855906853857730585250575100635766630103960659634094760375651220130460288537406191526829064552148577792017140993564465532664539190259138113113355069629209358846796971150830278208806048076361043030224839345571389199873930299515554614636693201000694412983117330041252481236041933848956448904200548371926616623888774475306118297405185212195264183144283817574886757348357257139133767875045590318765459298178720225852145459077083451836727370827311247369446729849531573268774500316490986947058480991687268937138527249349181430243098884790784659813940912219479839539757047353222463764809934930552241792184960597754409954840550898059461305517469653282050135779444272241818500141227485079786446864876301063005544227100483412617731176967118066894267558559529379352097095335989492266828090391528942716150214743388778880605857574804299926105714547275328859575890601716760470819751081864998506744303972696629503766147747766645604983753476034767423778773820799903565902878984809955549286883105550342277315053677415299588212225464175039438435120563789182046142455788791237607317701519326441091198164960258126867839266336616993808388406858559867923143512260341486600466525076887153817024699020973032791806064363430811825238247781955314727462476698265657602617205502476831550251035132176238900181718886366140792031680132830598362659268556051476617284519833448942850752243493224499780580322940055379231798281166370562315609881471912462141834541437943346828083497804888644608630399200363493568662945350482801472240277588643291739980209892440156885618981870973566801681886305444381555449096125985495765276017929893947502491549758595025851619424689276103045700900689633173290780108562796684467893007362520146252754847413008197792217874791422984769239551948719312586495230235412095819079097204214683195052376207676420304188139181219409951999040129890907898526861703053658634056098874299100069674028989001403366970641109095829138006818605288950872936498871018621307768165481460755385215864863540237946233322505094055742638055792634170105067217913270948255668271737838490802115430216022838609383182930280667153194597072908101179660077435304190934554363640221762786475511867254150566832487046489952555079459318374247855375867768966311633544379350139971077390302292958530867164099701034061195470900278835957048427426349268093002673096740244974571771867367592698950205678618749705621489129543092319302723310701830501934972950538263033535883720502373394943408623904253214415576779458915459054770630775380261591524751836838907894507058195089054483443449484058844688638884198949190004290344179498105780526120376233643321014708880442541241380455560509064352339468091292336926506890567528030439411701815606492298535030395668317741021295837418840255083649379793112804438557407750889321138200075410841201380079620993901811652886165443990834051232803622896996983101209627299974676599498186173518774561179313657902927868692620000371109990744806131671214446476326793735835318701591193629583784280050450227229928786602473082991452115385967263055763104621574662278418707066725551127643179103772272831037900692465002683867506065154433890040735363520789364268832959177233687247969520055340130964768592864848816435944768892655799846859600691090689053844836848302961945147787746441454964390445928000083260423497118480878191583020742765779934919144563270590977059673632051513749091486357027666298231476289997288655018372346963525210534199297093507058521172838818586166338477227117568608557583119324153361018248243172294473539782550134136010357056971912211869875319499016984686459259882733622522205349490286013348895441264080881615054030649728447998547952157977822680270766211270017670237599147550352927728463657855167941294961267149535411497907606938173017687407050017481943196098473409292273405891920896507364373009739378693359835385784727509341683495160128341988313908303651302257610684119166512543905910543684752136831558217899109865379746283848807087069075648658805574244546796483224772749996207366037284174839072830299495819772957338509499335853064883371046975433556508009599648203071262492034955552314772422366654270787174287515956009974713757653096813385661204604820739448722305437011736003673884875520680752008313710975200355288658356459382160907257430105273642763812343053722249681838683286030860931044279164650204509080942027322294750349605908716949024518974668140438372682190694050565457582135490892516086926584244432743733660984408030950425815075520329714432566181958988742504202235509102917823927210472640367023008618517332572668450644978664471652654672509603428077544348158077496837180079982328813703138094085433316452235514728797017877819926175202136983184263568682489180080932285492490371647015994115155634370681519811878238178984680331858983762251400727519331420133352387829123884262292227561208224171667844985100247110742084335151949020354734548894575294229824706520238698335059319593835122672703559976636542898327063918737481414167821024655108869814018886072372822554689003681594476154020173528447360644359045765201825568441721846996565038588185169676170638527396074064125165665376118583428446129334018367289261296135400653783955687365322949631471638699781487442278811540718904699621437777630569448326061637094539348281343185688295974987856143018171923550748486864548331316287815868780444704641072786831245153423579459455292684828620375492225293305084576621108731674621480601707197680589344204318871049712237475147605235799365630602781274288273859667841277317939552624737142894691155235022809239246450323132391433563896886083880468814917401365226620273960968044457551686700775831182541313764171973571768730724882717792707648648966171601471800434511467573325092708410193349575726131266407625068348063312763590864579366726018956483108760282580373828550108767816859492217288060621525244879762048128684516181682289418489461356542200782107046845539887479716443370337608422087545229165951992925121582137068618984523666965747485111822730147208608043735115287388354410717305258351230770374837892324977767044266674805154177133510859517968770854383724326947714998317384157939548974061615023178267104274502023453248699797059810061981039441923303464061774280909238035645563283563061912317300457139784506189047231157336079540542796396878478211123396686990780932999019632620689427372201870733083765046348684050410773919419395076194502127372596868526251543887525746505918175266784732201243476657046143486596701590768219138813751175629271941638379593479954766433638875510324041561127622249373314309069120959857303908635051841520217359579975473286918756536941696010900601468540715899939215711826504781410940013527322280802196456165489177814749242005873835038573851755615962405627074545809254830906909250929826645462320749281194847793131078394267984532568318822224591108192517542632435487743503951605803027671810249746296544240258359772687920475131193293447928318411835135167998109782815450531961301171225625705928385790024380911618691634410014823444462178215321921966835947237698239664030695751488186936495463585964676149959167050663412226597382507992593917032533902396883478888774056796610485410849637202502183386069831397881695537503999382221186544575539458609000646114120698877449329929840007675064302254009467120019785171296809701836415142038417079935284535658806884173705863400631733247130814435990102683559458299962502397909900816952338247813265625465001055371348226256267785862957501940251610753153770893381225205637340917804812899934200004124750955824153402043274377588808157912284273481941063050478694690798966294766075998606480140360800637389084653201525486970388425170746474912200523580531503855153549581410181924012054218536680485367050429915137789601435669231983955231553257983191722649217892249215537710148486666765139400601750746720871574869544050274848351390653413761992257788348222181071388388667441903957811636761848320013291348153916708580624846449739993112903416484585691545220830021380880937597363886880491948310209497854793323708711095508897524512393141041450935488386035417330203460851974330925620165447793864068244745624925508336537966068133112062271690256540123397957031690396090990285831462411794594379648209221289001392301872994664222004776157274447631993651913815634555450983645900716582072426775059350703940191448351871302765211651697959761933438123022337693347409863926749844465479993381247735700852039762520533959418795760068011713131339912687891955383529703638503802124853870294859901970620398478357159522526590954549725417587400196722539312369064995892914652108015716132933388714845839113258457175482707418685296503207379411700518318428307579101524143000721396237578998486386152143574830601434628624900171351730034818651819445049568321324369062644917379184461326298303544528574624210372213747576843435336405684883762174148554156910535969547634847523366524081752163486441120855031889753582429693210833141994268494850816593346644092016412686664134805029261961938221797981471451843496204391844414967252837168809476453449596967007126485077017920463117339589278760709805528164066670725992683570593024717470464920903309201593364851118400464747017683138231976485157499075646780224061665317194651843159168039427011487370041909171448830241208508629938896246454147666497802536640334072981061076920858526956196169008516110523913841015626509990234369131772305269379934493220051430196414107398271632876723825961926481476261147911907497865337591324863159051511868919010489686664711045547005883803315752526839333535896026969655319289784296263555015324543973173864234637024228072681312071586227009493638518599976669158941627812634010375154939255494832684415578543709602848880890801559870157370242167839307093146529454059337464297268029077657089266945559624043995923348360381450472223177101748701682726810835114031394650857131008304868192736483833254684344915455888803255808998819411502247383761618821477284595610368084257798078966632771537425128455471533198101290362662498628507726851353568175747556329171445116015375808533519120497007883253541763993461048107815711385019678415421065832125512238443758448637941533098642189893345315340681408579570032558639216903069278785282273422659062660334229660117402340985850484596851812804242107416309671765370936197557076201291312339857871350934196181495977523949903870417694670330950290289895280003456489123670227972183562388234063372721995161338311994040852106967856711548218817402588511571955421981084607915111862785793700999171679024628114086888766421289380543943568234479380907768961064237851874220656276278335192964438355953427932736933906681804460141938912261110536386866481951657456778385709168874865439574210500435368875876436313379238809632650371012060140086330451970707364973457985170909540345775844222877491048951913890252432150330273937495690659605049137346684593050090322964403127724946559285869252016863218863934990788025799225984483838770028239612045105918342533788651898237307403711104728916369824673316798173169742780453002042512938844502282918825919186793596114790266024685572626221642537475149765276888077067584821961787641471346348836518021551110270699874322604116546889827511028481950732016441549714320922329622744871047656118566266235109055926377350581749306129278339048713222270212527821498336060006270371994629411175842699898630576921210027345466924502017567862760745712515067092504550094709949080028980503968538869336434485243130611243879995259228413451275240247148228055811467298013705062662345883962680118057674212558482909755446053862177263044892188478765663465628262699773736201372815327940427593992256415194269617521070383851795302665568516314281606347969806623797537429418200466791422080565403162711662161210940208565428118429233479772850425610465940584904060970724028312517018530614212917752099086416151349820266258746705028189926031769609886394822711726968766909895285227944915559115599228814073159029676355006705753008353841849580113831571462632589141824170657385114187591887517359245087457195511037548097825111097940068249185804334773677337238187664679210465575149405055097893761149141633621592573142048467037811085533857292712226529885704874984441959328133595632015171284264471868308668186476842517861400860093317094796792546269525705639364807247402758438165179523571634598883010260479402476082573746208768771843813011185352837219982372917579347278940160087400390119968352364628987152163399573256603650798231655784683907213451176171265353010633154116519417588389165098164177992939544392458528164840482438655136084538972761835081588835553617298381467549435633803869441694645450915123059584872933412046306967749250047338843950125987446195669906845976256112680402081676132274924586739069200506202469244532600859108781718929193873465557631096480245472214726932173186428903838429670172189109470720779033440990285347153469729524349480894042184600265559328241279989266343832393430682223799263103530803037308620387178321582939126888016490457575476910829387379621102112721267100651896473833721460778219122677352316321620889477240152418019690839924478595534720531886270525187050579360839798883378839140413455008458110233301029005818059543308915738634097905444670597436853031290629585433867366914156678226597925345336401429289891219348818819670481831036791250425674829794026036689963919964792136825490288475423364145097064548280499813545421177899769597062339106252155398298752423289369663800324308144091189952820355952433134264506277419940978514200835708605007877566719437946367910299191114404302017045357895490852429377505058400933382664207067380676959831670130122343298652290317096399585263871864859653343460201877985526183541810461250757020154924975956900762211949744667609120651422042560558444971055196061660279967241459135601208656320089774419821253963796668524759250532173904846148494167706609747940167629205208925036604944697801864103476517039653833027987953326729010489234766631536561801840650832666910094788232347836298991973433849598994996051066393296851949215058640134078362268785368979667692474725058008390920321916534881184670243306000072520650169710659014613623566170716196086954041063940322180275629400373100556672894914363248427835936461392525953642092851770770472020460389471065103533873979613865829853989022181807010439689678019295357509852336039035822741703060118254853917878014289640381788763197441244291508811028686559628749381379848034321323680549685869967101711560799250354150593741846938386574424630297559554120255065366884720865161526147669865253202720358958348312934902823888756832321147959759746893459570277125267333843828300708309471189931510851706736123561909435762275848035181055765915597028462123214576577432378054222808977158737770745073807113936337348146597562114459308417791430556019776898333275875704648991697867723327167491803988312323435189672170784739503502191449995529151972125994385999783775846453887808455808017298655519636382070304238359825185090170673453612911528891277956977262342312591088115513690768619995491243961082557679084759540262767657145459731412203564014776826187184418717980721500185308353791037033106953474486497284001244426528882268508926049944906770511051486660898995186028468172323738443016566978869841604908264908658517499728276657700024143966286635127012831037857711920050881030504807556541098075301761384102297271249887940112550316319567372539365162964381706019497101389313515636172342363781473761655187891187486894958669134714261902707514249931858672731662730577282168149478419475340118544283830621978151390791101727511760723306051222605434056917134971977104130170358633228552792681390952337159010501642044076849115877620178670452421978763392739004772290663937110491145698850863897179841592978814176878863390579091446541414786853240766667242019866371740904050149196715037318863383065518196759836867594209711910163976482178670228692619772813540262144041613871463366721202871776954535271394310237046262854459136815255678187378353645492808755904269089007891874555382851350948318254277374855617176405320833275992974391170817966100041845135247631336189369318761010412927456924881357690610203192577124370652768417986861252979648134405883341100512936700115957214279606906838109340108028033461837369495238433236967559776483320387974791446288059714878973325775357763177415493977974302493770331590169328741983185769469054499669530294247676276582572832441917357377148136865822487889516873580243151182410076004241873863537055608265755558501485726712715358399587413857151730158518202436641376670676387115508662796692775201204414269610019191861349968507246683722976406049997766226030304496785818224963125684976335403991264696584044758072857038242669590179473043565458872269780923365255097832965700066742912892977776791934337069527703589432897802763084889718815803702155784963646861782992243646210102932649526167423968564706582211566174904966408227731241455793243618841267873084357918284320846191830376580156220607423299576543262714498420875643106122574537204276912221799123139271333612552544256288327900043941280322947117898531625644258539284733230851916912661705618164598101843976128642090596669844784062783035367908441021677908113608593805087217940239513965595347050162334828108231311155693508289711012684885179578751540485826344570379782047583330327836844607922177582527653944661006382379608510869910283746695176077736796829200597442329674509411554047918705296715045276522709716596365980905197398757559166778561330997127699597392655567906713957233851106196849520090784927554395409331048223084448304433516628579244361303516207947198727358618107068000822210817390569804494563764372872450884535870903795236378139054882899338392023505602797990057431489612340004873236625957083891771132816640412149774392225014511216396603163421819984571294860306519709052525783515361846092356149915235810741880853886733255883017724828690227993854303858328484875584450351325113254814802623561502710819514678193449962672376745488725876654151067523777186175526957677057118433667077545853017342207646160782424591202349151857185698960926329251346300737433366754726179693998050746012829903652256818972365742154429290766229537020554446410900772293940233240265894741098326334104356608021968362509577558812068362288719259589929616960138727990254828692228764022703313642136891154528381746593709458186627960372344295851593827103936974667564090615245402149408510393615384134616613567346931644697991486878947097498922993141954672562940123108958249552966723982908276834242519608522045685691483803237729944702563764630089163086415969873196163391611514831266529048085062104391141171581446600856724602063922062815473477148268717813978912520829028736522263348517493537131866373415775723219295463491444929491695874212433968237229004627685563829965084384527792832922049637256267880822254986453808422242482971888201423414574426063373626845364188431514414202225485776283472907980253385822193343542724209673635523729138068927402356992519403464591718539470184769317370947484429822085014290119116651089658307854045575236733362642301213922319520890499926600638930673775830162740885810391002297829107614413739459615983482309255980394584074453459582676997567063669872677140955419161186416763666649391817480065277495763309493818974133828971437617251429104598677187301648915912423934560531770659067744263384282300753825330400395453008482701307417192601786297613184572608872237208449907896046077897621538281380539455656868592407605741859101621679721874540116862803422453147371346701374983699400714727109576113231391514999539025706200694028761122831841248939057740340112348921517177070250064911249470762570434156489361374387471028251082506064624412233293198225389316534734446615628800335146195537106252425249830581767210596228311761823928394860734706725897083283102626246217279813292211108636549673540180171607254243393950855033528313474142129148062795690473606503134607494252312633127664034230187526816233632067194448977893284158285087140829678812118680441583277393517621275366363605440645557573477887379809293787550813337852130399238763131781081647318797090253900842492758744293016252807692856113955734865473913601653562648621219419648348642987834868046814127587706121233340880811385672263163462760053055826617921560828163811417363056877453555787591124737980318407261560520138522306929488301853474573454139846525952535647624973546097448936208673607694359512315780443927805989835506295643964019181605335375829196953894721182234553301199140685468830074350683426495218940938609758848563389700407290383336365608148924953358988973794953308861424124334004123880110796326872169115532505236582116543595510405366487802516225457306030105743523247049011982720269977402513137909173768898944936289266980725691551246930094244246362915975983282468309266177806167027150326298478358035354271485945529952085884181007136011506740644056531821025344762460796755590049524803929520589016817689397940591306204242324846908236280591531144025862519895537494901608970199971381648198866346761876258135337284340463249978839321805528425324321486296945434608015967310620151548922941214115211094091261146539627261370856404089898819676688199501814220846265217793155082556384985907889250754186795373959149986392663075989902851257114924704295728121776361319047416644461623062349965868114906006219203629284124488892370575219380116656068888357411541732151570507676303603995145979216234414950808198069944715540721960110720971861251838244488948774671787248050335488821600098133340388867369924700211545667667612202092737291393325478211463892291494044717159667355176496777531275400780025614297911935998639637371198134660035654265344781804858942912744406427681863069526887692316609582766209672528163403095274942129335082224648090179217160177449117262405923949999158447761592813815253385084624311186518371809093936200962983063653350042508429848381955112440302269785385981229265817538051815334727529718885492346244205344745450403402185399016487303610822897211131056483719066319354516942406058475729737341931274858188601342834246725061598982152116388379098312504158378885226196771205223196537062136484526073792494662573983855134880573877597987129639577325890179605952071739944234149815928267921797330553261537637923699635665471110103193196852008848665567144385606039500318373817067736001657558831688931809550631523884634957519478440722493192132029586828561663072197611629953876232657224309148192319107822777716192482953569986645968791116090059742920751084149530640754084144904587218565966290351624790829805678671228254062110960763917526276491474586419937393906094476436433963038466109000438060596360493708425775736255939978650461553521479072089304326196106886786726913788617284859657862711557227748993789596101988588642020196777682305532143751518956412044164209419846121162685861010839066565871326649444656533327187638338759044947713954812527038552647876923627052720998947192846551559928988571526728649126818877825992001117688704915737306838213403639134664092223630445648163817174786643571990766123687470070094310737865819778558038394038133571318187836674096144902708977832032013727935481765569744928612067395428450329315923146733588205387907153759021809037955726855333375391801410483980446071561252159305905048261464615036392014317907457771266288285305328119735820837505250877246837377138795294657709470397926865837350657584974160842011557131334051100499907089280848935112701478263367100685853834011965930673736313739043389329897920436603553609439227383142157404602884340552564240421019576146483527177408417948755122131905296566160503830817214547156722296397168391682478011345887165130617460105612768453987016412776347946022823811922917996943353256157510618760636222796566236545729943010593472079063664851894543576181467964811868508433391774266992337531927461959264019088664007048114499827343657125046427922800265375918414671849722769243117756573563187879079498062837466975883107388513417298294004810794905704659640484851687150043707068496771597794690809833246874981819018991512336045772000142109684570646002302365052571514073561673657431651505919890150837807635814152031669854499044861521034547977113957488084582272939672825291348409124953108626619141472834598226892689140806832912449960202364972506366803490101791260240650993082005721613474663742806059481183878670543333017910399327501249547305399908470874485994527367716025230858320266124288883777688553476258545891157645112189892883404018391241015922980166511106605441151003304153576097267440755859783060040156221878925656146823305368237487303799495680408798209346294467447340628160133177497390380396186715586826394357835034171686598515517200600664038740888695037496748736579809963585931963351180592152360602647985768880177855913168665732154656752034517678016251850540730820966358796688228543998514982129765813762202913898292932683780498680691493453493890952001034422562231998767106721855275376809645918704855629341839847203914878532492132254406013390753910016762726216489886678425520080641082353734692418406357773846203996086878867686444562039882955928460875594583708074147181315264543040181482360268649112035758218493454823908356565249990750555379354353340900669666807237220189296000099096838432983049609920645400053084116915235590288866677904447015760301772737217334473199767767745050221188032792928976839778376530691266126401144436438265702254471885934180690229490659176012773700315335953800232461105742661215214070911416199352932913831251862754602122113091113632397132829475148077740079571324805473637626584355359065261687508787275958791330735616411510476230120370151695066276196570637265364989306197370736906878009336623056002575611800032867214064774666807332572875043868598034652362663349612236597170597888365051573496064993483731441211172803059697030820351514351930379122084394387970287656481522960734613097809946232735940946721945223608381725102820753538298467733528439911728947512515395532206915183795179653095799986186704093187086577001155252785396646902447410348912146287231259409007356028139642078483170585475386340878174882836402374242134600822569792861112737240970642771919508615304823462863229529764179669403186432994236446161212439916621262458074786519234925860680734548915313249828430172406848260386413126932733845023341136708392286427491853333261259165829002629178758432893701149020268862067522683287950243223576227000287130652360665778574938675502120376411166771655089782287772311333161085962824007237366781922988824624452458913755654223734573260999788930917575231970794659983913455150576045212330646547218906581481523664565711902859879711989003828879181565659651400451034379091643806021606546726838037268006631709715960279066743942125661623578228973887175197314171875725106260024329551386623479059450715526867123435551878130088023066432531343679411125342370387850483190550807844715073028548858752758766627509895533150500935233586404773836041887377218703999843283759039574395222944541253048129834350091473429304795411201043970373034146608317328108606055266537163587660207914753831502994037360052541039492505419506609051011422687078411724326309644811246936514503529001686829168735917248057465753625619686151640415355005971682246495449749419180311396272750162680303194844250737020507578437011310985327887223220154368433683790596466194635868425625634223033006263164103505150760168591348319132278709492658930412269051238999165317260939028684560014681228945280659752448187897783360329310974202253393434597191067280763108207710870578048100152487103233496612219312055961729492136012581251706125538249276360958085194245561811086660759031454417986630258884234847801513442723244096407083937123181846065474610562534780698792233993393500567308806970793933020551055995922425943074654196320319289037885619808928527583777656697495536668193410666642980037171260501560228624511340400460027924422024143120467736610985122524977141949296832183739204590231259834401918798852740897482291793804190618412454241260332032343603614359659803641305017916548469544546170368297478331058974290617553000719221839925953192446885851026033483285266729295383247762418888488318729481301678582458000456994683320815250174357519008966450738710004279105225273641831386957721060034121354223707416999644959555203642804679875753348471754327987755408235712285791164359514123167722309732962322421852264669200118862121528803766749209506347821696701388894891888857297838185523927191612388798045807394995206842481319389003833549167936492657002052517155335661569723165539985705736131903255578171261697489639719040622617030746079478347145136218996697574326378048091908832433362321591727940711030116841174591087565110814191645869111596511842364978473069050136917883129621003978017290906246598470680815520769579304057062467618699413271922869040740545744404588031839859391445472713246559678219727150570817861913365128245153741456817438973430378950361908361424798330831204066244252845466368868362210364656874303061786499418640678199779217078528647748906350387163424858544590221639301947134806205920650018776433979330688491506147639751278780075965933970491969497689280224265534731582035181341785346269261887708824708404653603173941352475844633466470320382156248479721606073444387794694921969230683188086405663168051439213519979158698136453366585791553593818934338160729636120405947304704684510079465047684526293567353536722927766993239982198267284118108195703771928563322945156472421710689155497327584460235785046604941991571269375688051050919519721669751140256394390416489898747088420618998365186506637774366588246908804449804908010737259724623322513960047690634089055533927005139403998069868224566831369198154139356283692579222267569233104263855219244489169140333391962987801222948562408442599924820513968487791452113438004395507310429393183212836857154278864876221917041724930790994726598685197047001646827494246350204802753183903971214351121430224454334483892699127863734417876701363765469243528510010814445084257159169743308909999356282781868749061628925124988779781800024414218683320331964420389951023993862183215404208738692910414299771008973019155427097639720353905592868013667951033569773250064434491103611914602578650687879770939337741473472917795605933325808820685123514483419022928249846000833919885566060078596463211440588107755111174995368324581009913401195572478176307019486266046033980483009008708086472055283260838065753838748021447114437149844802046227108660336927355519758701290561135477993083955464719394453952124444836579751487340152380238091877310888276473018980446991027570080072324909286074090418746920795794136905449052698520657236801286326372957684292826945666105762214774965411759820806474409609021168090895192514666934450725433647201318617186830868367603676683454956772174750033175031368570320178547919802334354352167616450171310895262822743659452803962313389575438116656757451609739447004478805406893969771986364857805938601641198772883218613750413661270146309580586510356883601027737843825295097560345850865676593167155689918058985142168864896677776804853319572670580049168162581689644725031768517905982910791921902850636481159169490821819800404404390430470046874625428268419129783508889504751186655783184917815828891657042684750754700379658677557358011803530602021360498272832208251185845926894301636373746187526963103719671133416874110079064867007071834563018627334539082740303934936986128523963143854497924066628088603516188805194460637585234983379078379335161566236444812945678490473331220603546802330883642250012627227132597022172900794312247170797422415121820088552345107109400608768143590335196292553034671365801025116814556043923044087400468965159202747832071700412444639504698038539616844248281032552423807407727126328349034810824329484569709207947512520333188625736856677090868512683730174438551717268306791287057575410088836794749836373423862358564517323356288597555215015912444346413839852144309067922290630707222835014804132754343151253135997573535662424191398284373520163579038376379245306705474106708326171207258039609306222906787401224485801715474869863957893289882550193646636095582072192035433958464378276386852193664201767770631258901101238203154919422637081128504841394099860877064252952857044194353349450210317191415102477286112757546934520214864517006504882347277365744830722067586783559196876894914623021178294771173552290280543853817536335102479533616004190978194795779069989674177946420021087986339055195264010541078132787123569347678174837368247150319064155115935058828244514196408739860965722553947344372976679635760189274944721317190007268439178813106543895584682784911201410325842702517906060012701090922708245079787373139113463783591908196263564547503252768013975712014097512368982617584708568094520606080979835927154197268444098490631030256498365552287165839034474419877677197497670765730777917002066137990586826529643794077226124897012520212695487139216368615849496048782209010156558019155793811139174464181013582168671019762271466703007378053543834447348799488004591036262660491271787927062599260066786739893408827707790932899304664349184420073908877304340016168069450449701081117963207620401468368802925364588642310754837796055761400665990598435239803939541043639782439532757685226398444898826738698798109864273299131263988796040821675951711834764192474194413669436157380441048845413742461318418512431542920137236215683362289761569995522748844383233654564212562888244525280282179425287382243392781405367319887023950891818431588501745015438557639233447355940768385118635851336876746851401519466555643159646082946174648745745576665874324225300398284858105962215349047684444619491152044321897900080301986131943459663045631017860915598356543083898029487798323493094020515860938287104004918266580817277773946145760037522379333481977694483581703366268427774500879456185393819978022240043991114603930655482257909014745337468533766517263447161202609010726519729254216506310833996807851142130687988096591854354186485272671109735675691008161592209190623267487182342922044049397281340028473349096021726172723671401523497084152154354695854234089341830111646427772777962851128793931762371400137872408489133905201925780519408817244408808450050105135910503266302280556715985171459929392398080830651752406039419990386413361151880443926554621296635242672748820119795015320553801455408507107343902251579288514849970232602636435255934767550439073567888843139918590054946191746546079178729128133251490033100790616411519341823348064066461530963531596466291514064912370016890960676329113560939256908358285796126653257983670849152275433615140040112043639907609521251146272927350796795541829611690560738068437805667831747912081387779201817673694794824862619159257816584847364095110942396904511639282063078596743000044669712069305980873165478513982125934900019175901711614724584894536787849870455888507386270314106487938293001611367113355044965502068530857598280662398679237734276888510322699988502853187295551940903065692130183448402544281889804308426797885282074911323373650982375331076411571228392580826797543136781684260089946889577506641058538421102608777319529305792222569682613724220130664667986554573170613383363077458270313999822414819789773794177283912444833999871934277589002903010938179469009153408577372337336169474188025102665671477224250863421858248744188988150315819621976246466724339171746880570792482390616354591639232197974057049625048612263050187487226284102756005093155763676456240935132249451094234260719988914463259610321347437405887779150752821734572443237304463339974624123535429332389148114474230452458821790147823195805370028751770531853610106582296065084415657004849566498755659366991453098507471472184437313677482961663792298232071064973129961321848223458056642199431839381691635429051671832109249540305854629311502647883284141737153481804391281626833503048413355336308916774921835402996731558988004007193367630609544956194885023642642157946666186602957947473966265170545281902577370878088112904661376331474523059091734779186748947003932756089394754703180281468659354244281623879318165036308513497515540362047665075329174864587262269861469206597844220230032640579025554714563354695030361904259852644404050262238221540132204109560088236219898499511034361020920380055397419194668455974977891088622997375882111131396673165198249004239764920679285238056756185428654706660549476828380124696821975736905963729313868011009668927123883181713666501190853923384576124090282843675412805467460480928097304444363020067880165567183424015378235721711862690749906084765114320407248466620644619299558144227796067688250946616303140309904429046252490843482204189870545882678108567516129394779667139847577506535440838303412976672888068462675130949795020783903724252098049295303427872737578142203545077870884111958815963985822509267929710869920782320033590424733468688481238929373812195048863880241365091377782095885836249003805238111633278188157729105328703456896153778660706748162613571493885709540804784546901134220021548978540543092770670966142179229965533263654949602876710346690609787867531327805260679617020065482717871363905968397447789658096966470901579263507448694860269148772912595176441940065595056752841215597159662190963900501379226883414602480422577190520631439303865654258768008555173822758696668418554015688324345482253627476380233065135423940362378521314914003044271771616553073151198805688562269533006250312198951990112598102962768029740876245057930257642603764972560647560196246301432804377719368178845996107607197582594138907661292131584492379101324940831944837213809988068255545231506963585244032919188692669332082858379118064088980541082704867235285115556627471891313358352509351144604392323917548784770818117633543546031462842640327904291381255719104461698325361247230842509506939716394893083268876095186252383491962432131086222659029215084191567562516321651166585026425357046364242945225507791841096881531277891396683824478227639596233893265287829901813800067986347504696666358867338092100157443485835654625217086584719564310370963748723494925030701638016466840506060739972151315778703044008545844193072952031084489846114859746948178891339366614293449148258619467834242513747305880712717309791855297485952632273121519753090368655343012499409719069362758906369018444447032151306051980149273097031436984307052330894520999754847935751446084561048882588532170113833147365664555034486236585901316447089828084042732491198413815686581152741645246654461388820456009863099827583832411207280455314146987205841237586681630411097063978371747371539107598831508432660435331683693023484636366447908831056761791604705643790738206724965126126655967062536033747232886523313976716975395903032131730362174030908750376059234029564215015432130014548386770827362390964011460188000793329605172889779012435176186212438233823614360572390263334939172453344662454329272999339589946288706168367516968648877229386572702766811021726814352035413347349512970749334200551006998510357790663179487154284315121380435600708707470848818299447127232615183715745325244858226556188867404970831834195670006186467809563003858154600395380441026498031251538005124177525857523374332677352145426773307692891731683080261422126709136317819105068206886641467878032056196852105166531740841829848382362629188033349887448193839002298392728205331485258483574017652889534701431917238468585653331324594849598174396686971980257986224236572133748502554617232564972741161114699567878220155008662137375082182200299144541386592725862225654192533158979238313654212633985247388225900389787255722601084516393120489653101919890571884864651662457828478826247017335902725150028378217905072554898236580924062537725005964298622239670330317968962232425453873913180782965493350467818081987205554877953715339968675389476078094745937155680448563335017796287170609558047245860334796105092583484264740599993591223645911126039867555329370957938148025474182180488106930041420478481417017837825531716065430975333110847138408007299874115369217813652185834010288291393141917975741630272665945283890932381186725060665135979449715273687779554075549580970369322061489167236190517257611306380295306017993537519734178002954238949086908069049301285345501668677542406362393724970691408297208994651945619094809609270657933904146238277423987198500138813570915577441210505840227467628925513015623277775464732277727744614674773698131118595327696454274757829335758205555796224511479151279147232311118160070084043333237125466941942731019818216161651956171201914772480060591965411459806092164687327583820104903161480526179833606172494213498409619329208032133751824657842684360275728663849196841627062908980811176068326213958225600708857824212943538683637767940726925816737291269339215235919466756745498593846011210762802033533983229019879851314832815562101160862117463778123749968965877399450201265994626674488799408618625670689873009058976772372750696782628881173331285434005859635456373700201628328585588049552629037959533255181299897989939490620836278357468435071012410775498137521742289670831939787785433516095412424269027651763269161540666607911268374944058144398311813617056252241906752671169257615533112688853654334469348274033418206530836520559575936921527922635015396883384830363128527045187449888125051549707043732990025186790437004747407661130207627801509188740887897726372720835943162423587974037189839662424280012857142684886809786432884264879607174457627508095127571059678867452349684978406251778954226075012344062555967285443740273284522216866088249846042362609880909411531949741866041639573307082208753409131851539695300082783106911345515758785182662304090446904470146702749308273958676059644828372028324990302259209935697751949388097658335274541919768447400072614061701458940334621834065776284389192563464416137970394215648873847914429985762618222366571281402465078666299696368297626494286562498974701175223619219398467826035648021072358452947761550362637964009963159414766551411533285359973892673416420030902065853915125891600534638589282445395988085190625212548091920973949304826315400754741686175575788594929128990716030210596426082858183854914654153218133166903414178735553066075655874876769883950962932667884003179456387266726863790136250401351719772358457830603030064870540920854574211920806577495277237470374300489647324340528757655782436865227108405411539360940146947944772661863745317753239218703880301824165951326500246575211024576046942198010979294587941911143013764014988090445365801880807662839606151867873537131506543122832139672311685246484887681949563493391340855510990136057798734051041358904831610062421010870043895302089781738832280663124476428564579200485901094241147054018418713174609965312085390409905397164666916014728663738329873946946581483583525127081717412559148991800881651633428855694841316296883157188927558772665815360524312805270396828259370928464915744401573427138138295866866443783146428437162412693349839861844075546479488555222869338091774762211170287901444064616357932828900851679356275741432248837507015402597811056202939669015369646776957700028498360997336001406665325534294348713436126817183638408018084544556352751204270321633560343016155001837826587350345863294603874094586274725386609580464478894506830416120955122185399071897357141034743335261158168805166302919995336817074119484572776168252275805847207308639813871327217708699080306232039129188218633302456249032616569256810567598116694224537798723231368819045605878088081377744758175852916220971910371648465155694082049752180163098471871546472207118563297751589988538187110009947090176575193794260031783466258228205561315366466300246242904925115129297552971552499876325668589859747860911826809095978971055148300670878996567602629818318594078055254262429367623490410947734703070792603824773605692516687106491918714061433113728317720065594446775655274391317582332623683909628873322637232592604121430228489581611110625789850429236030896184460993039646335373984929306613446593863083529973659549982434415388122084654861630778451630386941498686062633637182006850376131686827992896625309696680444605844609029121438961159567812568298953346743001909365145733420140435795060816038393417706110272901062239273463826509579448835747664092406363642243534985866260230091676162246761992486306599811476492575982182999448022327302042633279749648555273746519725996894514877378380755678304156233045752085972501208784651428661850171071352273176050290112394359261866378468703545949870792832221027937842672182549846478245983054369858908508493367676174838740972030157337269313735713135163241823932985194805926569796144432873199247085487080482837332203200598967518458819710089183436907836277944300501608986608605600822865859617158039093248623806497179144382244692746718561406324280205602371216780361014119063933663825792766868955970138917570697955416479868215581910767121556861703862300161542032168035609149122923774765463973111556045612719550880681905588091167104588830854280823454933984920271216774021490585898799091048957355641115728084203711358629983179354090735054496002253327775104956989057165522331688861339023033928430345141479202116575897835982195942198926710778736283296156072809216552484282190708143882736688942337817583572738328609158751092457753041888960607781023661955992517401707069887538115497169228168773699297046701944453033941130200026356116684177345368196500187336684640558341540784261582786864832436020636184748328458021154234051011090708092969417064614900041088530307399174763169838556476697403403795248040455811802804661484989600209590003907556630103670800871750092134919717676628125711004035135795393969065455441101890679031237569765921088352919301430078953559794327114483050987574152975369337308757207289829556728288742639036482357137647038672606218409159853612957292034951887621570331721415355412030184385004344678270780176170116430099197052281560547882226522522774493769796195350642736606558182780139955375872941132099447344665703727457860553902352294420893291949064232754668549448848963704394822921655916958417104539183749490207709636519252651294335711397536541192261317055670562054210328383005387526119435169306936122979013318112278899504934292352398544867896260760235792713016917400069221938424882002469044765494126751730365336935163211266366734710589367098888586171487611767501071968583460632476135156528654014601218228224405829505920135054764632773457056593193035798680109733871729260403078010844806263037493566453198376897848674644843086498060440973238351925936014039354245850003306539284455649164021094636189784941009423358295058718476852665465516939347980417185891205609714991771492397026134447387941929653388855272474028452914339161435867290139705225934969489102830048787196607124551964503970550586990650467542279777511815951953830700693620528554492855433892537884027343089632214134088598020485718627186079014658808512989143531030369037099948354748500199137737095005156979133438091832404128880925558447602667935244232539662939151787964877134359698171663523250606686203045267573360308878453977759835494043966441539793891468939118845769345098413825155382240676789941941558417695960371744523991374045348473118747113676179669699945433168744270253882784545664496667303139020698409123231098581161151682089805705370100383492448121070243398953407140919785823403872271155421334030654976089081839987068539642722194174064124439699284779931964008504219282352651628428185816310968286627391300796028872046941456297736733707287228754709464705689452770787954290485821289506387076767216008563941811056452334118495703453333645921085052259902978130972681659173063010843761464107793294958984019367373842602638465797859038093060184126871956857259649188348405431816715234111998269537706312636110645277321766593153799462092925645411576365844381694773054967266196501185821179487703611762952326130786496236868667178016565717848121708859129023376153610600346564681969363516925627171823660865372534564497124945301110942653204507719535013536810789790741030141196222234852278543292221746244407717110768831130059968624987707471332843535849943837702621002866530055511516258405547560919774352944934417463045520675504685415381510016547374538473448573978113275075868210314289946642336121087611883730043636825697726719617761256192001722312152226977319272760344532127102941915245966248061570649894354989264722856764365567506538530119672705353917379583571792531459666175701551582710032434162031065149144382716475251691871565500195504825158808476423514436577990294171171288106954045457453903910268381341847352082670257111116335357008251763797706188201748647959569142201229862121059120586862156251644484327325805406648867352201110231605124795746513228624551892495420822895087680295669928893601229759326129134197005482856886264088556694973654910980693965245784709354104032322900694895561184202945233551723608482817895237854088600621472378134208071763541892467936856607931008245122002310290210461090112424128182501042114027788197975719323535052384073547407364990405386406897361156651192587586265643021719863252518393560526831965196606157631291047646436737093551192483626048392481472517889640078702510153423000193290841538609433673608459514116911931821789191930276218577894634856885508715558624916758930026048027186500970867608144850964650775886619031222650295302553379894706198894927664598048036160852477389950743273547265790313826103232159515211289426640764790704169605058979058447748680872798570222329614960247312559461228746763276475817355148011833608881017392880129741428055959229920905699632891270093050828907425997935240365874633986002602901962439692772329926572463387880869227019415045797660824878853370421466533027432049304389953062119729934528895544798320211664825356987812363123831173338158941505832841824436679881760277303246421415183504811961903473333530356184184931300707799612303251807084942853574578190649732648160583994617667467811664906245513222819970850801006517535307167813762049327060100073643151236531044031198759601329323845936433017155598521990858905918912177124667534960552968719636334899637504132470876347967410486659282709190423637406628576841951661469438630646153247649647072850185878719701919794080530967895143513311315332226607518165204326245112960518912292765983423399506679279449175317701231888797081951256100805551987034164074977909898448058553302720318106061136960246271002882593596383674837620939869225727911957715300366296567991234351766608038620433812315622668579936642637992375248947568572144093213174925195431927824279900750171943720948530169339891249111699366794490945561043006551523220155377219654270631528900599040159595685576518779383442400331705337925197599095907881503485229142158823995785056239338018076327424830286173241818728108728844558614208200328474721776077646678024882969232353273771132604352446263402705374964733609416263253578638298765672395618201335038377767060563808040066353379378812004989853721878520889291050554634479777332689166925336373043549804706950799945523877937017421249230226186334228897598745222455756012619347876312924507454624073885848994108389700725951226036504732413671557940199716403659053588721239684489747671355277220813488985931378949077440840166540448644692705788205246010269830972683648120818740915210388641219714496945554957556047374773850961913796276419237290465544835736026862253227009487150753040519453863374010871963513147315010651984422515542055402149610051913556708251038581241639421329772327217428828986641113123992892738537482419552720488731264628497937969875822754434966348391395884034482538894849019545345732324273577590276395871155083365386070846724497544745932635395487936835055875029255274375831757110070562412211229138238749905876303280473381841254558139742895722865724428731207942873655443044925414053797700725693504152151150898747452646585720033755992687268931606325516844546296118109266371256167528647579429036670727410223664218440053385175186514499870238792553287207911778658999984840530276842935437358175912512988009103818847225899322207676159427311609207695674258674293508292743578013523267673186735588064005632571691756430939789385930094474029750016126766405839890451764376086077828313251225232683820964314325842101923532797480633145352981872423913368100330755672666731571869903345412244520423324911442566796764545780451813702034679173131609782472374649594348566661985255911564124429945840923710609480864233707858944984382177603704404294233722262211080084001129220582372051789821208409833166615702618631721699722027508029052766146788168500142578244288134737803716959028559191829987402447793854207022106287710996400063424802085772939365975363209647940487650127252672855316376025384874795755012081053119550393021965797567295901733430224695097994186720431185942355414081920471912025346596202208466218458261579893880840033345180771314834380161833508772568553587194300354666547459367986808332571103327092323549522793926937633762265732605258542657240464017772830779976414233361191209080879313331232296829155626627701002063055738698059647239544422129604394375547424302174796344782467698300294785029604091740372451067599932465360793675019120321724152618977664211282145652791915776025350496563864414011138172899503634705897350297914582772333196422414807036779177193444818311390472056278313836423124898296896769615574453546860183037434527669364418580495857512486277705248088116295891469416839067675944426892096181884773309021454190161038013097606997039115478347888922679762727588687244457269910562766724506509456149011160065869315870559338937109395851053424834498760282096214934802176841598328212775882627238313053624540207022670194086067105465815122540897859237991538504197403266206893484292144110850901468266056364063328042086121632131205611149261793341449772219355293172587864058593756997195853864369979941453667350055071340817385732318496457246912817683840744730052256746179525479406722226982864351270731623960183603103335144873824302045145397987070137669166905736869336788768017018235647371848957019330620589783199820532765373215094340810206816479188765758108129941706717197654429799750978871073443329204038672727700383924928368974147942514710647193466739178012454821968693710304656915383987178696802769744977995386945867737873281718456417686568433304279776672495938863647675903348636378544614611420707988224781142359000898468504728825029094981710090754709855834567122357990399778841715632021169538827215869243672974752516453379480681408282132324415389908121419600119724364200282104177043494491490523490317290081067108451069241689612348726541668045347611251866496005055783142141113578043562576789244270751229519008471298826965961754615458907832579204945801414338527122837363842576189269526124429177814948496459526945879144478377710062134042953878744323833861232056261070753514429684585490937039775306735617267974405019309999482189920903737689162504127730458176050612891926918872495475917766780273968210564864125465442076307940377088845683983235968559080934511378029420264026997120290891352437380815195959360864285166850129838826032812262348659080172934630150738607354792632954295476146552627863074491710509020893632805915809887347338289431139714821153603588072575201090814901481748147748419286083798814471814060708112434031371837886089580427813649420394153630930839468839579358595213618905631891188017631457053476714196647503893872518389232328545455741671929932482195802387255995857363676297007418114231686904577118573774959059908360458777473518668275875847353282900354845544357189312112244650003351012146982191483515359666271631774098778484302764242311395698283679103577424540805098465523872878762997654428826964973159264769976111128118955646364975901340374424400371960525304041114640154722747219583530293595951330429601940878863222607922459684780378743093750134525340976185859028592857538229707461739425532625898853091890572032035087962703857096885730364834920892725189029014703096218912737095303374417603740749438188798039094069021276371807760393595426437062796551648341830203310407812864117692545190542901946285545582099735557494748125387112128108133598731049112098265445138605559631216703833070796309436178678548142142782056371423398087781179011138670374684904893227149879663508239842563887552603686514631853262507453718378384684595779001667197003065094335827493073268358211949215746997864263926231624635263894947717505735957252052495253391638088581279723558184188328573243311814737625691366368287970931211784137674760611712755479776457785932154518115631995372533304471435195695292298284181664059115839203919904007364460827421133131220728844849721654394368953228793989694484769132930630022879123160824098058481668763824714644077038052199060234853903284322127990479427579096323306102309650397106691902357354913053922861687281417081336796627284435521381439503260096958534241675942243557149378757719525030218047361265000925574698936066258085670636806204027255494553130915378753036431672887794613172946346811959614314806322615048414633610513784158076761105943626909391859019576758016850857211065091001034468453393635604036149042085555485730081494032922251758710917224543728643547820664773002703216471681361159646364235952590933791140232627365751986272165187919312290298748396197776538694661422268528246233666316372552240447090869893659338507679804366098159381413581485908133577253921515911304919109173383353094098466358140589920455208107540200406825921386606318388010143012162992310324114396922261588050665271242144093063444994188506809738013698835982476698583771864895391299100754306107029543912378055764601201441136699641910598204033737508085510976173716939706384666241788928511195427379088512509989189353170082272893675226548173223962808366931144880186123457826402371647702149833506552419611141779937498353152950664767827334249182387215562906625425453090256972564070249966692948392929890703744376956122904358215551734464262813837533498091193081770961871898468377398277271190986599886375452172378097119541098398275374489836055529184130668172296658575271344004709455953808714118630607287100224105959038359731695075073515677988816040539782801033885284916182593836726379278613810928979964476233383449815555174120330613611907325176642995415425262162613340746673648159097860609563055315352011338937555585203614989772569678359947188524589955940083345278834965085294962506796209136072511525822652617500475928335919977283452970466107162150957417410622152889453557219800608126798402361791798094975636403527385527165679176988213271503973406694073999813951304347132459974327361751689788430291285100227477279310834834754757802503496441033389908577725056413567124378320950784706586881340090208244506581525288356850751612818573970578414567146868107126485440366883814392646308399064537072840759203470176371774174980056312309325858608549099448638495746392333990592561686229897778703438139785501956571925698468426823360852635585375989368597674021340622889470612020208804974409567966880901984634517693035952602365046247627617327318311370089933905147926248995333707384940286722900273906908782700318269223157414508437986845417657217560764665359339911722962587991334447654999457872170563255051563690450556235140699282202214282200757331801906598913122443986726711749491068637783434905009975533273174123446080881343820767405493420085560153920435258933229027695724096001670275480063721290764582177800643365578410080211883415689295071604184465126471197010080158285251134449874624877923969454057554938297790368935711049062708113912116675677204138013804543948058032096114666246870432921383091443233574752227802680459308814022823179779529877009319513159365416879101568779058476208479767163694513444156213265493975035474772073418004570065452323163510647815404054646715421479763796475541866503453288206620301713852069627025363842354704225642496957002019639572247117350493795021522611816196398809546895108610324021709540436928082467435861253914446279301767249465565050354941835163743118611350009114433277971506846026113167428774360186305073967421079182185443236789213633992505725191629004196001678988943518280078486644243134229941276626072131521111188487581988919780053890460253840646374411935816452814001593687875847284210354031854155898464450331963181979298411650522310855068853908585861879118715202687422670059423532800137484268886046441726305739107344300717214179907413242934527026766807926576005169215013892655182290836175782439430944643551320206412376528088298108678644336462011122638556966310652817870612501214517748861109220116932333006982668723240449819752811773346568924157694109897053780487978025154542685184486999374360342258803178202592483871938886141741095503562963442244656585922052173609137058205949974762729143109808534945487298976171880153661869319389721860261000084135706752303803458260746312401058106396348739453219208271231512042662452772819556274154520401367493899618336619959382007860935978042689164691195937375961260135140149629896767488814823838074552805912397376270841138652598765813610733023245753696815024101543279251364984303295616728844829273620091781624218353012481437962826514788212604436400417434764709090392105887788296296942191016242743012243600032648656669252176650844677835190618701583062408211182935110241786266985686393430817104747198195285574594563153891003808212379035138621171221807826327561766013930793184785452586490183178532952898073117994739325934097885147877180694013140650820776615306135705159325528735254157615440211410766896650925756072301446172607702462687905332835439028391024307089989469067726841209882633133143307458755034135017850256710844088661288593860564948700483293190574485622265349606965106373490696883957610997712226413351551941168134943668448047663240400055548435329094937268229591045839412453672936760121766518874585407280769019734036530326911152412616776685487610015751908538350181802434558712179261727964963842597267236672872495309038780926557137229011994091272053087305788996122018405183384576301400073601060267491749835228834761233405106763767043602671573647879424557578673291045148350289296325974475617182102541176730077570909280222774451981456647598244136246063114004458580974608236244902563422556958077796388964719351369686848078785848778161340682823685826141578016867971592397725614881933495503847537448701916900779124094921769304560082361956882297420995294674701247351803461562068081369692526388648136226036598453485385533351746008635387178768191040759902552849674490720004383416227574274958378342081586046350446653385135381150691194004307447642673694915153435143841336000406437599425594038089028347728788910797140248720630924300199503477601485084905048256861655534988290520970790182546826226571282760849585051450974115835552417367204110178907121879985960415908516637491394298550893451019055075238482553554352327834513398548073380589091276705626898647058210211923572893211784271543307652830296987025407383410147043407442747366086299742871945550918161087019450210045529260008968107081623914266568004496741185883666445593253732711486721464641499113030999067537101279640304629040871887237369631915635194977252522492585578838717560381622841779828695443991225994243431948767774617268522516020225588731081137734046323638543570773002856546155634198511601187291714497554661884580607850860613401076071395315732491589520133130925578985502859239400918716044842085779799149409144736644550680419971812314190174734692649328019164339477705111433844418132162586916040318255966229929072421636330782349489886502473239576937877424659251193195378206661345024925632404941149846968853107214543574083519167525385919138580517315658493186630325512371579395668732743295495299253570682019185232186327739762113822618048150419306769048812959143741934834258382170525459054376529141845536496842764107988407128806565124536781972900862478285596907495019362954977486797798881693396297437599935076556881397092416561629703868981706124547718585097583575769186644794107776795210489210250750380024491823049520430578799894540931525222019028984400729781706475395107822450025507715287174893858242008703326807741252439089464174799885265360293183761478058284870906180914685664716918781897233828004805473801114968574842657203037811746014286995220978616715510590193252971309938533345219390878956256825606616216331455350261353960309221857316187415422726169154676436878074561534140773922346912781293250573211999915053274260220679126506417735466622161036637892829335942160415193319074871642268517680310799147391634895650455019775415695076888322107611595872169426145157672680155952396807168445614512502592255702700785798877588306827461040091978654917181496187041709143053952369950504855632774251924600827616962950032883345459293928397002366569837224239818445435516150294348110905634587571489035018880599334368428801415207234886687516941052772108036978326781234995958062306376711024665393253840418264670950225554877826943511720325740187225963294659710507980776156891070461960246894942143898534406311789216098364440734807260056812083865332885064927843268509524037121202089660067708563288581997166679267317542537891865873436297161467531135227328204935053380019327758246305806343412284068513634879060024428676368217920233367949621159622873727662752560885954265445712262916743295622771126027598151509197011170300172254774563637230349323487141223824457544232940979077501098482131105426801945471098434071493396002653148792199970209264629985358109968822558466056408535188609057023756213411830931870604892283331259268520579310127121019508080956155330543683717622373410495240773101276556291217636763214225115899095694126180960539236441294411901125572080963628535187478642820557721765182780892188253157907207001687889983269598073004142997276765134681361056660851325419521307669501449483483614062254967696218413543451761791299916947931300762315859526576050388614365715575607887549165857038307521371619984941625570927043027278117423926509229682418718378240043096559450278967359383893447539051868800049816633368450892810193405519261571248530927255726364413560123673848063977084477924486835585243572006801863289224291100115581529457641585705686819441857667357820660227404977167406493974212998427786737562905936152095504006187905492080662846454517658610071556411356995647430279499102660305550064708861208926583064405200027000802843547436621775764702227910411509669647379558067847188823136655965929505290392881349934763497166138885872421607531759825215910776426102753582902846797359238821798400056341164722314819789669105287113619375935443067028177723884395397958094681580967543058853702805453979206893559980856113763688965856639562505354395345522447523892000934765997568893327058563476112287179328302774641475039095125437481412432414938573270796889076549048030919304310178830135455332310397975890503944373921185086285085328001898158105162986758331965846130167073241687021820522661066733626583749739744741851676014272211571154739798708504476951722451231878612774220190561551659303214026116747382496740470715065504722988144614985325774152022913772052131565216411306354137003256520023457468492220434378661467970708297795300675301742935322973845301642579002947295737496146680522195820855415720978668840225145671368608659178034306198455745438439338361821900998577088720496729173687943678678605406253739404738223614711322982782651874317693505137196207358723592547408253767102760705961875261596844925936206751507285188945456100065174760172352351409073740180065902091436961012005378888870413482594751535940972437305829882452875176773806351242945571145553272039032177892239159829187999854875697863678527058413624044943670959713492028588633159466177604530271516416672659646224217278802982178677637563407549512278384610255914718506563095677240890786411615527840082438003268741526519380121794421481519856013215525063225321041743919477016775040496807865519103329056472600141336742869585841949077502333853987696033274905787156822694876037842762399802340290358737219310183520598606554490292212897806822467159744499251268844258350814332765453591997588163697218813201746772202955847628802537298032441991533013804187866430405047589280416668424184805636491420191143340256116476050130552007036284165724160088055412995678875176725650919877867790436863068694745518467840274010170973626751814197401591077722947329737437546180890434098101651319397067789565403645995310749240333629089222936282549631583295587078879495038329885551678967725743772918413746746711311761156628135949159092075588415090167377455378776196147414917278805022111160069356993444252600409018442811722711776233913243138363940528392673503066421384027498965554284997284115320153569587707294093034522594836831727399519129480305708686571180222935537745551985161411811859899254932019164424104487594476937110918276597242625351871422669538517339026382718422311142692607620619793986834015449615707115325108820925469278566815952295236472373366798987793205336424742272039201354946393250569273151686494416424429719490406165568868516654096691226660177763171727386807015767136477313312681252041033217633370283727749388814021257874441878465602621617265945286892158214990847873460653731395808886709141085391963898786304107776315377534815465879319556226012208522709582868197852500657134503466665966584614994588285298917211502053396900687580963277358652374330297495930568747249124824057471606481477030123944207190740831059113960339995584114346944414552830096266974891347747328012491143283741074545056402919995040324751389528254887883009119074650425588952945521443399291485222658651080920918879306788075772798689673907895151455985522508238731382643202404984750530508153910622082630271379406154954290285991579977782101473922123814344614769915043309151663348023195379117911352358892253378174726032442436408699104773213955614659815124143633921487126603398477007932528329842620530670720778628546137328619773708372639981277951033606509193853866187236799408447914920698110773017067930573434507323928559381907608667119491595329344129496076743578308265331455020535194075301505484572618419406878877317773278967198845794461810871477482325162227916227085988824809459071293604956167864851243466233098264373878969135270823968835627662275581890200022276177496795894191159292693339109257735149631421117253818007860551672253767835682606174663531436635536386418325666798638274477016112710001640734688924258497113725894423438769414037308663573412628483422855401743515388736238306277859165961701143836046691173788340434201376786756931815978959521642928807102727963928775700255837137897612242546384638404656607270585120296270962390365074209582946096075382622199948764276515933997772589360546989990177266678046918583981766576952762160038801944583805935683101900607224173110457560796938587336435085081532770707475063438773275847460239114185935597636861868414265161154688378503255041197496153051982771312244627282209475707975921901837127913559561475658475149068715788321692461698853579657333527305297585250011788951583569427025998076382759800219436435510428703474431930198814184697831247625104026681081162462201426296678790578284830407451111402972137818055605350797588707663385927157066160568055179356126355462953860885449000327458298357889117876862585890092509933034427397788736924858010781611477147510244972281889853457320018771248231186918568254983168474189278212992966918478274713475273917330099897854054809386669389600538231556571056899491827709670183137758579114469054707032291280702938587407322252297932213905980290507037362722414719770218164090976187722423463198088076663961797612586599792927306891585267603558133458218235775332101024477492099338868645863399920095945601457349765611384246109352905500737407768443698094200881381748720422755374946356140289477279260839970866353500770031122988098881380788473756714974138337057917724436576545489147966913268488234701422884868386940782527293216586420736212860273848077775852784255407887064824656735902893084058562855324968279723665593287889483988078422504201704841606000854039981187782401013094024625962900252105711339287910834644849517256961220928852288063842950377956569149584282212563190351340230428644030599083925207928415404327473141097918728266341509699061323451972659482439139035743579852292584165155636796007349590775068044417243086592408662225327786490376517886081830382223338409759817126861842548112851311840337256490718386431738808669683988847499941215620094742411597391383628367035649243977958726323799161493372129874357390128151815943139574727860094864781637350537223207973006741898500955272244482656261569506182984419966113355201165357332782696582847785766909617964432056334648951271824493927820324229874286962296568625416857487166060659751038331787230036945292703222531595081181036876187230843774084439529013204275495280930585493919213694939138056549766605118132825831856834875921869991904713420237094428543492890612803595514344423769307242675620963914123420194917561348015766553977299652925027946090456089732593052449901913029179767814588818281090867852751345153133849497418316746825718344862463928183069202481708261425290459403112723355527424701591488318515023926689649835280542084149773983320718851521057601913789395045066063344449089011675354538632542561479719790209686529281091073685016700974344334021100005187088353214038457728347639492138448244507904961531472694710328788146657646984959222057352342898747522122026416572509673019357984203168457796259611146467403992775805347197163657563208580456503507026169445274145389929265267007220244774389258459383101742441904953628640116710010455425744891038738462359062164173692898933853018032618369307512839451600272905482020186172525222511145763930429605566004274810805311428400820656319948776503636057532911271971307220205727999252318044461871788067620749862768480347737379912281117815116255990959713114744543358487356554346542679034446301040028283650348467801416066468730147052251432018407043294616902692228313862466509527239736189321467511072911620539165998331466155954840841967235492982286524093895810222905455728323868680707374398852176499410870430374477878240625546354491154077370279850627923262007012664147519732322393115263541680421069749141041811083668652846185956955173187308520809040513748480308729224278163818685223055207413469527750430536056147383285556480721570368700711759567572838699104300161405613776649399797190576164256719430563074179221638506830082689508728769407686451810924115033731913947540489258332117855968540127889189295757957690989791581182138212370891763782401316833296474527358358743032835747260161040440324089262173036293862853989901812259932481421962441272913248268730058499001330771496903634528638159438188861210531661670706270608568207045815579269735182069697159016029963555867649086470113131771073227738107299607668420169621267383005467999442177506079954746027252081392558209495777918887360256012633974700867504410820498122577773038912305947940968474665494793009618193525817575462734651316722409989279381564273982227982670611046134733185118103517702082237536203543076904856365282218552961538485876224383555133323404013698999594607549772628065822529274782278829861908541635743146928528719584980717633072674496356625301236686913096977838196179686492250210889626900178116894205538836390085851607648708163812787500416614041394408900094865732580900696094081636912108912470607227539213917650525342736108289062493431586880130749424247648994067977710467654226831709454739710312146493320083434692593148763969068454086721336919004793923340520892216611136349093591820356916033636254612204274653569192238304234319719716631085429671084544078010072465180108464978969746512199929933873970537052397396356205507415489201740288352136773979664239755217289386105500305229906692180240900388374858246113771778978622549543614920026261445155318897613955397465433190119969158911005738187471276475212717511477513632300898929030928294045236686055444785591698870448247249743148941436379133580079620296552669160676403971198764723377993282139636651531817075276000349396088292746791987000440965893831345641917582204920533689971452202930306553772931040022760654164912146243317318025154003299356353707698671518919318489047365991895165277537759046917624867020492151576572360188315332318319086815317456789797328492404451867574375703661828257100835062914161445314346961578448433790559567335449248722879141948437004282091845998367411055601219589657476658259626028680026917523272473321796390273064259747239471089387916801860915360665078929792394006759984862327338251342044930046866607719928800205100997134435715884722386127518668610679277943460762627380927181990166781503981250955569606139450293006753531186357311412248295593575569577612130251966367074268595592499444413732119505472446379426131994390776873721801548585780410813384252320359616828209609788663941630094690726744858126605959600260086378896130354023621226072866496776712205631553788196013272182246411322403057974897546155554036505451247433371341831907269065158540885562381166537432195625314153069469524396996025619955271803737650638937819123556854655651655008279770285891313228604666968508124479745703258524270434705380188939227822407731305518045139825916964455794876152546212845295961578300495013499877413199037685242411101085227393257166534866141600313646932078994888437243324591102114780076358878553823452997958867694371235984714812988015980114211782356661301329051053180603587540209769234207894655392383856801358544211207771348922432319808377596036866658150422000540984014478069240786826649342474251231644882814427009827097329321869536978402048433540819428554054775142904014794844192690115480668201415154771401916304858502787419871832464331747343116626316152024006263737446560289004016376874872653077514080339806941047239493170108656821025772061814079509150206895849767158188716724874726649471934411324285826667880349950338181621341826251112040678447018569780651653718020888140903692127822034800103531927361327242290444745287317610176574748091985139982412890296749386781485261188490596199696261292737237260315571197627470600428732413484404753371846872946967627625789870326841260540103743839092548756340717005354087898189009769293281172741675769175698905778237225832959601061386772676956777344577232632397072254609456912409351251345942823841340354964193198223128885615464499054292842201501913623695371402186070181422505659106801726306030775142117184906506561894719931119748842528636062147970633026065733308061591261810017534990600890305898213220377286663139944720631439044296932864232119702046406337151918680539763006579799768023474227784502541238274279832129334080028984380670294017027664023347394232903245423145062324279579159877186279771002527503545197297920858822937476185988467646846863540147628925356253929994223489775550764455591654203780092557754947509425384284783183595260432440442710776761125664376200116475226857768720062330220210894412893994659940007180905405502460469972299850462462383218071868279023675556429223185863352038869587502776622601625014796270510819695202855550051739859125047464906107925704963643922987622950330350523071164328322309865395225329099960012207666377492144445245430189357750403795067189447575530593840662296199771975974025758693368325808191498436950860152710185764736320396070850425975823375694201649291005878603119400573205570463922471764961545784526191849956816444610754380402254930038259892892125237069122781770816957967923812587737861479109087556655611076645843702148159098914961459973020562848120103102926745194270023699736469082629574367023549524900050461251808753388440865329875977910920970500691792640840921771025437247633244822555521517264014873119299552074168937493273436349686969832962272641484140466827822196394688890238377375641909846955464419696194292648690260334351501016901647727699728100796074300745491331922221786423197125017483000429906704567778860286622122849132689781248561751674214383072798593663292157622135967555728144095882983851706981623395734982476700481419922959531974356836658622377297594380612688719330192110905264295547718939362256915218593785450561390172801189761743129559714352679813554898420523677658604592186615938441605706257620814081584824464133329737183826773831756521857182584074470265562302449899218351637686724111357083493241440372286735979695380436212562037465359777863722139493243498375515539764641197370829010949220083447352237944151335639868701764754726694402789528660354506792547235953289309593145363716104788502233272954067947805467694549354284351372432282605630614361403865752718360091823685529478347837955437587401258639497054386749652684368190033366994994582019755026835232933668829350789745090825130429667753801353376777009413384899772756586278135282163930003838890953014265306804987178795462593316725700076055680491283568719186140350821445933062233096505153617317006767224606121791358477219214293053826919740323003581732701622168512707823166560874183053608967103967176199018843187071019907766994550479504929718133466648093233769849458000009773778049799720822871124655688205687844816668887845367362337625115970537366101745507942921872330767047198053771224574770717184287422279199790933063816964768290205053747792387240250973091652232960815502909796636759588726340652359836679518697996084991910075761841433134772723662463957658176434075528388092310734834043257579886105066120506238788167592346061934401426416069199143291697178290901875416704237945728302661674548003549556898330348269013107280509684839791164865594395222040949629774370003662256180553671101173077042841299185846661880573167150633504095971400115289667074865076830754390696614131396344037752455106655469439628324426048855698771334640151458237039559534522168801717398883806975430582191224166314834037332190799048464325507345993731933045926641469231458534118504572620233874758307438665473559242743552806593349029179893397208839425912526528463741616824978669803046248677666047678989758342349500487700328239869790417734653354605728995455670458058435982327904874838656321244026367853465655195355632711422476488949002507189525332904068074468512107349153366999183017164388274280497159098166331583208105561405235517988487802131555085733825215375137040627351173881745957636513368729475030775299929827753210881947330712594877721339452417440556216275994307174530342836902907125919255508210659598777214070532397952911857294055713753827706742233313505759699489803897948177894673234881590710411178773506320720034031237588831484741796584761415771691234754584126553669124859703580507485442542338562102526235392910404855468789189974418734610233991191012849662652726296067746788830742183342412940813262160009317873863636505637805609466121994339115556863457888292539303877942408207913200330702462229766812503782206779983563189223327004990146101768419237547458285707012526906959847687928071419495508270195656862306006300858189590295920196747462371888800488237324701659792951570016891207661966375970790273626611457876222539945767030156882850483488186631754749903964819445470164455418157905091751547893775903137310471501751332898962303775074957305090429391382248365347040326271070260169181327112482996579463753525402102027926000156072757490860542323278383405874894890719042630285585002763846354967028998214443024277643726200836250788092247463657588177777286451949876451515346762841267761723354367183913401401076241055979541113797800019948367316674723556939920170226398967513688446564034501393598926444498048189418328672430808850519856810150355440913705902204112934331650713267218284386877647565145861917503473799791853687896790192348712533577950676853779709329250939661546980587307916899072225268945525955199258776678729538411129021664767150050161531379471311002710792095450873302883079867783833016559937357868338234823941971268125655407549133127718863300061797693441902867443763131380690229850405778433025563154139184172648017503426655676858231192849999784269594654698003478840846002642811642654726744636179546965147174053060222075860983737210339843563049056828122101753398690307493107541512122862990609276946977967893693717245303977585729338777883902340109739610937702659074230465327290611448603075061499200767698873294304232610437572643364366738754318144643311806570157712901990001386287914357606455774551328083814009135242856762260673810448358427965514124624727820611954156197044504660788117802977918511451718035825661329661188666131957246864035134862444334451335122882068425122209587412340980371568528731233786603388554693060423850570320752129762328162622457261651622212365397711608198709126070100079850441923849419704056164069428408609158598082510945729953539009186616229210112523735877138116114127316311248911918783140961592564987906690346191408533409205337611121837377947470407842695104273035952800517004474488182963118195470303210861277085782816541942584879477509788872117246691045548180107100307313214542003106197561620946839656565241034266166359436727139105792411298231801813219761081011835503374921695753503181640968012812192730985025416853151373131859727859253844197135525010087438629208640922252402789394280551537922427984095918637144219909493303140154063324281725603565246030452225307605294497042868183088465025896214540009519141594179614636684390585173709244829008308909557729428748267845091610864984469133458343191240053922483662613953715215889039768931546819022051731046377427175641966371438437644396317447138302540503158842154860026798207344755594371777159477903919968428810333787652822120378083699557448821497552701904323830573973762440813718285121751652538389308583406877431469590555506603501190306301898347930880107814898069367613984242403390725479013700520794918657068605458633316004325946831179837779967625970527278655491561383911339252579750701251207563998233530069688584877568748216355180843864962563358705223587194105161946165321106328548451723798756210158547319758191305184122487136109765470142263977979969501890333169415102234375692168316323137803303866448684770689226927230567977011306130623932546999815074698445255468517639895660970400608384483012475155094915235435907983465663036037691450813780185398323225788091367549850168362776649173363735151032137344454069400198675337374435339145334860572069837298684037957019087879527608230155598867684813764351693372859462114183483958187371845009764487409790877249168302422524956145213105098410987542289696289557341730801597137664039375676854453591686906641392723750957596763550323180634509081092194654827494013632591304068225888045058545959566075502614935712240345301463335843844411917474067993642598101032270373407932740657603421880857220470206229278627848960475547511912075787199545317890764115285855078611729899528434588234447928829242537425679653654407706371224837007739040105677860720802060189787084075299966031061710032986035553856304084835828777972826161953655285711805509477141101269970275696003160460699109474456733873974491747714798771272134100232211880248555915797671743771377723739466719494807889656967267212317813197557486146513666290014796698244384245495483493721426280967946274335051428705402853382138612668778987956129993872637966079736225513119631429435856898126582393871730055263740921360487848107936231484027806394112843075328177891268032198473875591720746003939131018965096272235065903899658850982164229186489689746524488513167673506101472820296799624542438289702679723632550780334063218093674565418661243873507511505267690311257583182950745810884630823836453606558720910729939875907823750599055549458168510993266156799584381340586830664577506126869865622745587978961682600418396668708942646122286295748564323188061290910627935077729151664192987990348584755770256210492508916926463075606991611428218539257440228506951287658478157622658508446353816470359986492487004255994105829788432069227522511297656307760348613049084642672397019431242484961977420885409537199117106049343934456720527896387797064486992239116198603345311941663641421721295714519279827598571207528223374194493602578355330039467054457650972155049559949557827217637772975249551347283266738437452431625112724153444089977958375624728126966286926994418350890557929757335972863122933510849690562103886110198783732949593773031236906352905344425717874378500440381980857587705899004347435460965155777746424818649559174148574759276098821255578584392017841702538351754991117568350409908903597865012711812129747901796567282749320686115682243089048091602029368362101765968368724669789586015989992764949905243754848453708112903657752123923063393702320808656787432444033403900288799490294001647389500366277141896337407152504092961246503821005476423104844574490505718698403693706631025169175395491367823787910275355157886262946916820728706561687363167241073876869882922241261907589574597805988576940199888128779016621760209056308160761226308195038674722724812512304617957998100307019307980319742701874563585369238039424924342933904897703461585611612445658106713651547094730985317679921296098476094360844161682428827101586352779915118395778024773005456221232940402269888044101831881546599557730232303883387424648693732863816181678503218816800056848881017823677214419424672439632933895398884583493697522411638626523116216088970997268126266572439589709330809998151397639131796352895781787224735692021538031809556595143433278856266388128899392221993890934338189662640869545972299441142100993386508059235706325887814523271494452924506901274342126603526251487381982905768824104002065745284651798054181676321656292870047977967930507350117442886345616944800158827692065918095571922168944534516505127284827897649716991510301743664366485464658945014267329530166061169413850498206191874748048509370376224027857812346294053428591494306764281591027827258694430814326213830218103726887463149921734867360603349063390517815892190973513656565409863523910017870077381639205329845711830411719602736740486641031165168008848997145109445875364970958751812406862928765102330542318542556548842558891521068170538190806634743473431126299568382567428633524153424729085298790118317496074330081542337737548016853218252280613464867278423892467107966382621503346512053540129783555133775870700059780557075103740356281304770162589956910896203379844895332767679160554651485074265735628001317225488147083404276372641903584544143968059819404543138440250362237317189279084954843961031712411022810410070367551225074749326100208719112482704019928761680787150921941077446345981635939607958899175384546381365387724676584034746078561562020936424520781777969116902842056247926151687007596549561659448595423752355271421325854402771622344353827663763063098352204796583285712865496161051667289459468775434964681197757330854788861357318387662202032305744513114628143622886466705194007778783979036425269011581567434594555059713162244335730103203161409744285385737210273526973887701913718928792367464854910550063030540093894459535060051922092137235731542964359928884268321907897849287567076460830513740909700385928325139019165286720786017210853198732556313309616407563397129488275708232651501412467534966432561848262063553052123748144020008156243318990443939030913326531452313485132083119731290250758836681818045259100693067111875409858735269061506245315825856954503829221354358738099025825111870360024990772583371562771288171996565287194918539552556078207883619397728900390488012300029523415488145525409077267895120523869884607847931666716628635279418336252719951937746133204963330852011586011042931861483196511074206272910955562908600965780227283480071730448768107016756179473061960383047583498085694071775960334390314986953468138748074680502709425673662669456056891877797189506023447006738210462370412716390834238588859002055934292897550500458332062652116787196300458903287315946280207503028814965890471716438883522919842353872000511375217273757736200273835200411205719954113292781336739159340523251604511427872869386078364044786884193552888253561580009717321405228230793569867590539052071805936900924320118367606914153543640620408741747645532673390332914561211893449429600257730685883200488632013899691178752490581554285307366062484079173644460191201847201608862939016483638297018444003838015400000292680499123844094371043645762617087888501288485850554293781390017834062541801346737851522765644922365162986933076876107509218422237578211934125803646576402632523940669618319358860506126057020947180704288521551072962363494605959937434372741414634159405449572131847520232865365850403766240605015123984133228898322975189855705900940026532948069330156911655516118158900930026417555007408053121042700108078925650243454230018725360025055594246765973296294113286742941229242703024040447623753785470575446057326619120674697004410951483478625620121012114057646443530912031043042447552741483600753162479193465953285303247585615998107269630732391811244103684497921761196695404093343406459628693391594625161418332049057180214341411256797495588332949991523542234259869265849622575682377424156061642261530787157852455728018826350440581003615118415447601813864708202637535373225227995333525526599739761973101857474193751996607535850669416602360398656035504853143646494605929945159746289758737130605902802795665880125382754667084708555067318645890489732169441991358670668420996848374535226291578177743661928940129098327993464456300537628013589073168618987107939104504172247099548199547524164687395808467413778542499831267925488642560084225154944871445108215880181126323060006401716495973581172767781628770862581519237252382652526073095276724934752544850249917527181216590534292138962167294141736471663916692306088449799544400572034222962460274545879777396037812772373318837337640032031845927510442360704897554334123053831445971031610585794973350995054911367081713424092166494192274889239310207068383165538238023599468513076720477324466753904684673769444020089813603776014919508689743543358583928287666371432685006019570146935324030038395961143262693275480780398698974712346636103792097220148354186199445553663295560625545976328477401841589786071755689442849612574383937531416292356911902219881080574427117070202579695026078135108995991963534072242642752275313559843843041428367972841603257400483160171594258701456623318661972809728863317031533203530410183795401735894207434751346766735522782288475353822612846276311696240694316223121470315020158309698825111054939072791348454715016505474099653853046418093495424693810102181062236030279402012780189549343096245170342769599309767388119139403221650918103263028094022102367253540802661295386644198379289886556094874049830557982761964392111357100118562289438056669961843448952247577620411618519361880781626614283127144563820599006211253019937442995838488118385035849415137585000473579514509436360847966120189641008841084567045255643159473231793109368081165020899860049741078329668045842157758515514478806342609766692430815044064905886176981157643434682840128004844329817488200298733011305591993915292905470522945840566830527545880953394929218019449031806260050873984025393761701677717775517429249673702299609910584956131003810663168674431085406252473672174395822364192140262404240843441430200284251142489699513238634544614508849121019768226152628271485086689202845606061308917282921066152096319896566568102892069802774676113071412533110411255605968372604378533534047867660505640992130087502899077715752555992749336412997169133459671187204277206807646464669413460036566456461151696990743683409830661069490603109872728263230800516336509514535751900292060553337704013911670176498422907429879966084814623113172236800619032573999155942468303666697464754418048031304644636274926397228687985828744761544701464186701062269892696981073127653789697773883892413153093885036555952569030270496859442628169237746794660615272419482333216646602999943119395698027163300904764308111801054331391062571253338473596373423634033053891455839389757673053509821657086519110825002209774646831038555237965778493432338842933399025421420916380905742834033701154157043122003245412113463354263993580990465071638181275622377772896031407528332560272618290166637353394323075217138618032570603725033317382009539371293767028326077025478390068052028091981900559416358856085793414238356731889574097950972197786575099992950117873889996785331583756714142336165899446864716011403471166901706769866127497517996781087077513686568234034301110508145960151585043177072711128973049126453501774788878454869010593096829999620448320111599810792137553092546007240000103069228525146838764125753459806542907561402147088672443537913397440342954530458539196698016487649475612258413238960890744173199571716084714137594342508167824147652448725043383761467182183483840252200440348790323396863856946881705162959332239170219764743967787767365873615880301885673099039091425675708272508398604004789590181254531401070868815473012139620945381836563237730762327165739913502753924201372152685149225624397082213383267730990887386909014911986333139519904256226554714004161456322161098637141954510096853592904745608936063799254817360855612892692998467756210776245313284342850952507246274003811065240260767604889152096837907555942843916877462178441384732079810926073129215078305022570525018248234560323215848690411672015200524489074758399427604557832994030285745236804037264934279757544802291712897383832580335292748249678775584154883377883275664145860393239221535091736827384771579072927429855452869338037579687254116665113566969820445447318584742863376989791747888983385958366021281553045745358115199151754976951410005111315586923388653425208702920260104836797034617634943075980339763200600765420941542004292507307985085587001895468703349009846626732112400730000551916497648234062232939034749781174393184214347639908510196229871899439250359222556124448675258127111594997137075819500660708911921930371144860929731576934965358762237405269922068102629972069637281990018989858492038754018432009008085221373435070632559516888820358424444456131359634262350780633744387123541805184592312801587693565571254378973404819882057231718691638026254089824736310371606621787919944879306682882370330748752674136346439624766848713304084280546885225929334388967240382572287518735733919455211995953478038542368879811505922731824302063901655762266958336064134887945117303014558129150327442153745261393703411832007447746406801097254171939324668865467838778466157506348486108211662517029412433339706758984686319126799665737372264406606370281816876241263191093007544922783790494076033951520738386620990398174252039073967326522297584537407819287964992093757512373705210749430150165323470605371332319967926726251883948883922331446059027872231974819530551728530433314212504755360060269059683324945214393310667723329506364978103609880684808203473569631066718671146160312285560961487142596326656931634818305538404411276354693344603990875061476014822118601130633678784713835909745362164646192643903865900978592282173258942791980208309045738470904653367865832016580079419692718924703347151656670740182428309353416555404911009137860260084052764867870354321035708075199491145287495619941965654370988003371887863569131868141546587649994384867700659641200979892034798297417713747997564549663850008673591193808895436360399541290615120914201519178058188144162366504061297998394503386294933738452597357406400712758417656072674978173911957736351380917102209999826466054366269721462946717443788960577813854849664916175964256462066290490964125376344958724849468430914531662832354307035906221574967490983792227198370600005371656452330408235645797033906726850058920538282355166130918938441941167370884086699346022090342435985861892830478164755095748247113248989942514463675477570998168589877393070017273891823474338566730256058924646684030845304024481783337695929206463416078834524876892380580372814872889995152755462196623161883541636256955862702249876404869950008579519275516614347360333122517132022998265776564717888332346672572102121853117946632368821699945130340693433663698083127971757105558081407056539052293911336579398913677399617612202894295671343512450697493826036131421149791848100974935593513166929541375798660919933505733813344822367465249472862708573087528909681924621305121036622885828529440741475234294822995688288117471605300875404648686042304780873759869582162662105531524143445993862853981724133344527812882597984683892899535972689649305178751789797590834717085194074161736932103392197457989016851826929549285689475741063704193120419685488934715237167448998432411063295356611897795913246485065147581915309780480486235832345863717302260475576977947422260804199114435751169428500226957400109780909998476689863928588178425852410590054586384176046297484504087428735757709331576165769574140782359061337167180700321920254502432555282341648402953668369105530548153695224153216957715115148568441146817557248147419886377524139178877494177185276234792916371627801521480253476712557042836463547059881797259181379989940791042479877491213172007733554226076770797071961847089932205008341303245141085237479302816184102560866147982672980787486274052832832101951709217897906421073646101904330237113110315569731698104687925074807440911812413196099545633556246514626328640304645729569292536390859570829278838878164289457142905360004994105758999956537096959710979142966005458965801771304870125870591864105048802580077226306214777139581498490217679736135150768940512501273548103801796791960532062747090208619431995997030284235426544912009171894319622335792504474904068440328128326263034585740371962376498892825170865454116181190089882067202650028188823131189292518667747453646782820447073601470051857903260380655657675694332108632287517488940216980020225416026780222391466156907623569712467774227202683922639388170052152468582339037941941791829489469527490062173397134673960796907401518212974464489039394052406024263844652729496462012679964308261294232081888690826393663063415559101394784063089516258571495753168122271230085979086808045515455650949321095770598047433750684794245707916150568904267634132839143778695850275975519076294109686740198634574483080316522462207875366462988646807779311890537287380196710422535939429113847498329283035127956706963768823587357608796459125446369467196848099064948021630946533282311046678813755993642191277732352520700939436440376105646003998926124552685998017454985432188726785776348636917814555130264300772264063185230481341605880761989557002641407901939678085679122864938346028936152845098679402097116330784378736961672876127476066361376032093741455413106019167175415873834787758933785664126280950004051125542288431881213522320650088830149447782739715301577653952785188411679552602753658842372564365788092479154343069695821549772080867987294397468529349577046624027547558101787126695802039543098277915492776625442267912170248533531671116035006622918172357602840024596790558386558423018443964080746774004284805151110204171416309320116427246945800394794447266182807106461074574577358398084276082858592688680894986867671239144889441037992055401797624353063937759282203141655609933546226974537575936972127851303152354434018364256287031869149974493080234490491762854941402588741552700283811571458821313159964278322903594075692068555987422859040821368000393589141559976779468271056137446670271990650056558137957091229959956599933851006518172058284154437942760040498785478308886434135784022237123979713036413057607185507336073423172272029280533559091415679774287135562426327868212013398641624949996937046139665725585828769429167816472420701796049815928164502695154074252763671977222635492990101671278635016960375664152085767244113863211266039489895600928647983890236964420298864084323845358202392735668903705950374720141789721049542731858814274680540265326357292234398919182427768446854905638051452333258575293951515845456094768925222003642407545742588243801727067334181749510456798973506558285500980893967099772142307891098182239015997282316926925785628551264752161286131585911511859251310579588883282746345119580451488709169218158646302584744763772898936985576973499849091571618213247050045663413461523044376894681672424509004463179726970096429424828773903910408435847795178690894671312510325878309389271276878540972741513347219667405076313464232129453474293011941417184601995026074106392585086889853552992532719918322280871654271962976617962472412438688090971200273690771134558828336031101294588864921350905117229157206917868039407993404600044015277623174148832359104477471513832712324393811503585778969275017131534146309430603424876518733682178329783327648190729528079684543191315091948363039706683018115420629180986376918086380352071557832591777613272978313153449212055805981395756596838435183554265938938852629318294206798928951681235146881310282767878810378623410902880932849055728912531583905188562541932668003420189550967798003810220682464105783368591539754304711440881049040982061076853743983923193470035120626312862552622139349715390499864234159961922150347261882155173122741926853396959356344989424628281077359758748060171098234252876796421418852469306544807181952715166475083357885604312118810883673216346030651557960270168107665517968375899314185331458201086507181208041091009513859475177592246383757756965985040813728145672448567098838138482495094630182212825019635735497202575069791028835146354757737459678739808387724885985043442670605961042425035801798213115405661709103733872296768328858595750298893668243532751559583454890969042793171811047281554168556597628130549375148168687580093733900697536762338271174824167478374639845720476155545246299053492324849243670731965550328046685772233205409135022500362957219300337942285570580141623612008517183483787396661652601234838429461939188212080669777621301528902893097466775459264640420783094747531242297245174858465908960224682248926157692736437593065410414492682595038835670888784058065055245167187000357932977839350261175942839074335275571686684205105561736464398761480744818277579475802746415744112467668177181798463157096491611500595036191786449071065329840520990211899404881515655219040822875038114299368690266330807873628417248658653430095756601380904887124885462345106593174452326517044997315600843756723285754210094202400070169406612426416120988509399676991106052029095427185370443020689240145578982267764967718683746915739743330991445090605574259556447118903113611797948076818157197262058163617257100138381294896893655729221793148483228597734758454104876207544896523944923320850634143536540549948019327826801599015359807608763726261208109123423171149775892304948049308114228010737466095997249278818558543183678038252971259055351327434542192073485243631219247836234522144066595339198481366830617255107827401223741862413016019618038350751636481077597953907773761181669130793947307690125290612570484338074414718330000745286511576602818393302317016952885636067399640039545901791041033956936870882709885006070121871880966105513049367721586338386874390705443719068840566039811244437118277813334253126946486101749021566859984537713576885838075631349393836927105234976910966359368234274823893359706772356376491967301875980428597568226545256306738792534256516499874982500478352250390044322597949995457675606633717689833342957266449097031006829358364232815903857499804807099140129626968823140279519987099964368979488943841106210358388096011335224370989602529954864413219410016615190467034088816107136574917790288811533207126890252377766407739908688697044900999342809685941414789502451375538641301588484603107487869118318609070516968482482298601435391686692999423044134865358473902197359743390618648752233915956827354790415828597068354555109037445655038989998574947115961050766000011823721999215302325623873132383374436686903146790629097435917154687073132817680593607671211858131691061514484071772314674163604121468164962868742946623053295199365828225344014227051153437199518144907146312335051771699414417482351603328519982983565393103548847662820068905219860575265995438400104017358664187259591683972392956051206870218799036508915590411443598754510518545889159365796900827275860091414027672602471688998354276802813808158237938660276572779980296018598745738406708950820232101225591596502764064260799017746262600894725892025413863483423468078889083349328771382669549449466815283104386254638929707359420189899892205239974456564864185620351275811812635790920447698631533056127545266370725987199772044476950724452159381699323515441761013851847369962085904147629180799609984417379992467699069114925105112948582110426686285471053883123067784210867800223526879306160096881188944194395842158836979435370248986738495431792779187459380516448096571036442223678495525320185031180880522620694689380018706943557570989688745358194421713947051126937747064400671121016802213775956342533906520587582919539284311075116742411837094261121288434913083033163907357020694079802436272369320406242659347873609742177123113594493914250420216098658447384791506001539113535595555656049606801737833264817997421088666012222372867666021030488841173208644382629648175755136368182860123305037973730424459954659384106989651267381990085125891748646533172846772743801737947856820419423175569334416700559995197703355640681063231631548124679155523129951589426802629435671606107354157564739230718191885317786671575370345780878899306548232402000423638925414738897496457847293692477741272266262762033155096553608738051857243461119236214331091400609642551127273373911873391555429196428434086529371759545571031543555197024143347830202518336698965590004316582131146975651157373794153690780525223032356429386243816273318058232191257569143531766718223498644823959211253127946282860138071172531501272674150005271482637652520264178296022189894819593454621638463681966671292987221020047442870848713187398380016643582509618428976087802525678171684584817510315107625614697828790759112255709132687009083013259424716588349420584910905871079824042933586075009610523262170198862762634621387683581009837521186435752001156183055072204721465280187944347554197777396839568784135859388708661515217239992973539506354444499434382580659118783928791747591897036872427803162059360876751726595839254306839613236777894945332603566771589540489949879355215682061766803590779368113604779085627397205009629940514391010213271273485157885648288158477713301957105086360419815743675625989004739872490810101262314520495733773448865143681657893731712259691372387449666474221622177525780654387192948969847898493640507037188767884296007101197579774512772749611047777479276635539087067341291995665409269786801747553400239153783033370270936825526199508056514157895830395248591824911436899449924702899866134544383472333681127163789598618443004435127667856567708726774707478650187443528613006538906597553837179288385393705357095997942913029062875300851553512003741903957778437512502794440220284188626047952227519153076700437149329680122250717410377433758049830733916983136579619629862788134827814723126873297648504667518164168667066060781490746735128576498109157804725670941937169139564410655616472636178370324364206479828325972578335699623024889607281937405794918874938773291266657652352605254678549714865115454488082623049398407227323914629808074222615195118956567790097716116954628884473179552482317594409315584356827693853491801244768267945346309861704834699213310244831787904553729544101751882191969289623425644100380603477965172539961634432188903105023620012367093610065682380187830314257764344597789465051104899509377289892970819955882189045322632398377131997276707166677309173843730760240150877089084684035374315457333034010523959634880144141976932025370753309682099412110152946511960728081111187874298155743724048717223506784383094741401817872850026983668308734286478806892739864826015944962005258295534830145791980801616788684614961495274265711843021189136028145862675794870389826153364127598208087433019039957157832671667198759215469405239078425667116506123876724535334635700007390472810592978709024249130126209824001054275271700497432623990489866938945719826164154453018336049588621855193488812218988273650706173943358581181482571580655834923431691020029742459533689768561604658029735127045435535387931780305393743184199052849443431861104292365893512405938422801566795420710319836714380083948846267178011594554930685770450259004046165697576948935002940424450844692515969283012968801793792216933847759620781497016717655729815521983577426947000276696604754926598648392647496467947311292850820136695308573271368688496355512439317619894604656749034468547586869477037730821698605054356330698847512308506544259548542611135320573997027377784266389858008239519042437953446506349485244667604649461439382739611899603356452295682925096901141936424848595680943934132766063944140086125461286685112025569921203769497302702675039759585147675868302275126730988541674704472118027958944762670027102844797651762610480567430184644732504785832041463427153869020505441058684091321542907985422778858359504238120561948315301899925936903998979090035564661353543355318114776427304440049336706845738316784738421807546513019370885953023037077306354699464094978996357501923096417897126812936479994756541286242974934323502473558639663147465808408192736377682353407171320105044157785260218099580449459727826144477150480185012776039142104810198419385897489559750343836177778240658731959686319398049902734875050088762148680002252990098325070761811008993664183334872210316805237120837575569489637111786343908015124402219619350404885945008327770997127680197155623301888889839824092890124445193980009362336058212418633704673732651029065804748175791003301640072819820876508379630203195946525633473159540156760886228520455732416555224703040805424932666826158256130864461686521070085480652164792206668121724572118437494622368595617946221595299989631340456135337260646136048755108714126471654402935478996239745745118663071056833486087775205534099180180342746688949117509343886764069189205082912081162101404688134140988267060556425366104950678556568478769321468481419592855105129656183630712055020736168041181495644250986122203629584775654958664089424039056199836967309002248597592236955940090306809186584127970142563768032314417030120808655316110617227456252160291757561939882348802065262027230956605916375901619064025449563971434858034177384737880839637029739442785183521533851315807271423233052967325188949905254613245898171450557357072183914883278666374810817505948729624467598864904002656889630830010050510241951235433363089584752187835793458664625333430823578996909708673610132173247173807697213263144872326612844358004639704055644042440173402697769901165705727368561129798845316411723737453555607469731347321973909771134486030339737726205395747318683091109297655755170286944482098167718898895190788402835168504909551056657176527158431627390461805915214602912911069426406708097811800538811484611163438974165658196039294249597114613712559511961286261396994365915511662266090383186553798715307167959951940950899102709060017559380489327661597393953172294090836178062363604899295174171335406951455254186705436950478467864987153362390450452510638029546481038450631827129851720480805240764533168454492854455878794124578080491426551654880121451665075798798309046529270739277613977583488746444071853404517718887641432101171033748178753170363171296786688572040042569731187862504341521182696940850364919820944580335474848172524121064996403488274205588122964707084796852760677896051455147239486743620309882199822841877968512322584566183785714134544557721773618572220369458579358500037099736801949335020244264087549169809641257938660628873056541359218646449299561086561950223668688269776657566025887513331672422614420137443182678208883614300271294967764041503947778456910203191953896068840107251876999507728475805384173712580567705359433522910274397648421833025706846403562795874398249592529222578812500680176400936171594130531943194646325696880099907075593642969802232270538264327943638837793141520700717280530244392609446032071927149387054025742263233983590731205179370326094690680454874232544484581569944704512909369233735798768023687668630924029373978485391035729002746446701109390900649888206080834838788283438107639320134517163372654221299641006896395369178698249654144753450208803831626398699022899296690108843869318781644786061174006359204846285760604896923068452062310700861203719639492918955717755540180920947271237419766924011208490147777665996951956762978744444095671035366507014839069308585738139141393184764213167794907150852195979091275221617537146721377803587439007231971373026596881413002800882420038643348614019406933773015765509595922051356059402025784859402856446116749520661998675044157166459648159045347083402120064363063777809893446568677964406486292157964527274920561807745293259293694194952686483855296095146865216095319042515194027799920528163837072740729940465631218050399440047414550144757034819284914026328910383678416865222256221988472972809495097936835305246839686551771996245244971645083649978888310218949294043016293012292263587008584705504141344523239949476301555801830550212422867816573718388533518650496089233434973245447321826942136334427285801278733748032888013146857580054793501944939789432322812870105872904989975407280304006260215030508891484772072755207508170158227107978007455812943635422644260740344809674693977399221437098146419164597774706366022654210492656031976995570993464512173777083437150520818169925019918446307585212809056158464523971507315311369596287927985422748709377124782906326627377704368006023215065575903131349057529641477388541769908511554620148170857358198514958835941893864946018280989431363084698249145974732906071246413571276039034295962828105968351797129219371242365772110944396451443421411087183017599802206755623224994280038601741039446455303529582958552152783253171881882101422253727055417539432042354260577239371561362851968488950341203140577150452194739221652455134782150186965753664337323407943590301982731730941377014184966665193028835705719018070928008946132358857484602918965887482158817501573344500441775238192774103872758880234752728347012612878874883202690710637786843986860367435114845078116222610158752988708795909881746411227587661643890562287446784261416246549527867102458072429585002362109792412810223930834972590838428336530987925181365807153586865232115396260140744667916651738045548294934505880863022857822336473220819902629886351438992369703394420312548972987708750524140548102408008160740529887502997180858379918016405080374733902173553633196630247205901443070085627246541114432894808895732742995776239406092078145397535773594649492814850866234901244892022999528538536714440438827775519991671916519700275834656415114797684369584920489200590573543305027496481974210468435399365433206430830879889632461489071733379247672225531523016796772881635723665166721813434810076684361237985768823022369879225625596909819872683398414410943687409612185382262561492957322776584552426486252780509400864847620743474858646395552067844478998726320515153981315641052168671121366927740588340383007240799432864265524602076315729713084182706473470803337264977522332222645378347814880787117334703564798830300466768300153002301958378698496031980067475320822305384243544748389230601548631743867289070981085334271266200196067708300503388241464242138388980435533668945625271409830139122871843361219691247597105489326955623037458935515070436977036480761179464629959007849885015219152849200383378489535907480594273545554172754591459022130661672540102787169220721360649723823449747151929656604427994755694293682597124764872183403561769128967815519126265384006659963910239556137294081677703468881443312830088118559095832607590919273619411959038886519374464418626444166899694661448121028148025022084240987270675878721044062530096841748541289454725341671750005870274472720743545223699243202727997486367604898221778171121215280020326198162060897039505735379574748925028232548059835675548365781847320647906563237404670476616783323478462583691414410808851397957008807293872570648292886127019371847925281006486328976039874893568924525877346225180647438200200902385431517779881336170972629729120155698501827372994517037627476587173459295347680987957123602734674670147378197457448861398913151555019946230236060094723095591581091350253176031913512642357406876090931520328036925052176442421010951691788197179300042685364990160514637827317095012427081036468166044014580424105158143224393864796729023176892655954084824255894019344271125524721015760689839660565456622389733613661570039074437920416515449415870958563714917662872210703594787230100615215662894875364099252806763749117897157839227800317088975806929857473037845886688249952858187298531392804159236209887463728403922801679851032736569340160441445470400436598166029666999700877057727573592878124490101285671214654132940561927606167449779541488596972091532063941830707004035346347928239548839309105060904567317215807283926269304400417896843678639599900202632983020535551012200015365410473563127245943288775531101083542248203652742318676224087298534409234658748832247436886118053854140492235211295082579146594246780829125985671932439524656463966139911186060660228503157175721273355185849666818555275196856482367918848592544458085204134680396047675928167332547868505807079351698073458687272389722499051122877815016146494663913731697755556238983725674465535891519569980251671889474741100364794927425826549160035023170526546241140505332999434408355798033847947531147964572909128490383555941892762392559003098867894967078906849911781816870838266884335090872826830735223268340819405250160200991533283016111414237462080005893130423642409286862564589060616567468953725716390944234624206811717003132358974528071927717979600785436610926209284487471136789941309996141276236693706433270462779924913085625570392617398164098624058874801224269190049885473392559740460542925148332663824048305249782803364737341036272440094328120075700577839094216892070055010510380871181571238255534836721543867777002025132605312398854578028563329664485374007959911146994973207062485110758844490209185939707898474649784805876260817373974656066288508717134574155892488758617380733179274036018062978909073524978337161074753806714915081224549566269186284073383429941931083905962529139942103540268930512729365620197027302147304653276578477650236266821448505256579828254609022557376232411352995265823908255211336533138461846937256249894493809147568643770886070763276059795084920987277863806518228028342119146674831831939303420475726751749785798970863700492433039701343685910976604495396060094474604850524271205213659176430271077604779003792045493369130460579300862790547463224487189849122805018457168521604390307548012905339123994711224329548788177445753363137076678375544187221810633649287314435047501405742142533203377117560485479516436243192193514379021769701142874970458346223507212913319925251959815490645524808995290081241426845996028858667792593155637236039812274661822857733453012513732273341568834811474312432770559909516071254795917069512239841181458588925227640989899692867448306721032878845931446044920914292025945358212038827572560247813158972890317886082974849101053706106650312423383981674258971327643563493977562561255047048488954050750292664198284175748314267555006554052551334115621177988993435261631209476647574916052901185571865701947149952833318918706814229171433649886484437082171494481601364467627151110238998189442588906464850517355132600300687843340896342126357993788378376035172627298169099774133352637081458182364960279700405332721450833301792159690126356785781273793059779227416914565330645025030527483608772746190868672315215313050686850995330647220110957193329873551648272749848339809568978120519790613377578182083092841043293796679782682833457795289415371365131914902839393588879244831443161905805026792647546664848499836828738717631314716894996839620926023044370674448543440824008351922063442727550522954199325492471658166762262863084673553149120035129934684843934231688669161003875551508208697798984274755121819699861977296874236850542969622379538055374731714714900171622566101295839812532211860542357093648072161910823356978103025465814348764518667114576123266516648731733069741845624783260878315608375713850346124603781156892685393671588149846700988091803978419555500822702916626727580151565078474389563207036512163466618504174522850999831436691885928718436565728887336293415167729200609851616676551411097427373332337956165477677830882796353180321039249515974225397937056915793929910954327773943535791390013284489013591203669601978976590049972127607833390339423948789267537237005480382297780190233016892320534130799335516862600464358689131190655838327013487675564958714012597891730923740806155948665348476880350490123044816780707005134892454192277738198599681597800644314607437079929037130140823164165752787606242591267508996207090874153697611976389283977568163427646394792997636817045022460233439060016308884344587091892892945777141040254733063536867431677358270124992248879872361704992739919873759576104181323881649519236591933935627771707845176460937644748012892108038499472720382112915381272697981791849678380505946550356474611209678110093703535962400837474394323061820537985656835609736628036299288122963189149849068404349148372584390849422066283365620490536584611210903856642843426024182611500979230242456824769372218015382396372334068853438236909024264962062746126359336524608917525921638059923964798577760736751064079870380292116114027176839858550541618739260138693302462681730569452215924636026440964644351829189810784736809098551283247846380847225134015974422412995084354935628476175739603395419036397187003246801420689108566711096894557685119551118013165918487012928733580142133290130553902301946949060297191455105856313909786820523188621289267442195889315500368974488895400614722875808305459273446005071990705604008606859301150169041583774733696229651420985138535264315224946432772011341385989712270680218603207064176105230140197040645998210858166314597693238736930303743290767600094370861645294733575355763783470459468192026683923428234277609718458786665856435116470526613740416591967381861178865638449067612735856897696768165217534352067513036392076786074312748996029667009102333133931202213550946944577646799643809255415249585823248817732977459229294545801374154369871700828082094040491279368239354340258505458502820706027391618375023308448625745267527550283376229664014842555429951851181593713787424886709412080714704449860610700453208755174315141779322815492872590813972049366367633251967025278914504693463404033485579421213942282050945906190771712744308959101315263794098968388167117709164198098016576044269069364168677003918081412467704539582127041877177652222250333447217644530800111231218952968052265187067332070240480127936530953438251705112583564322253473136488441731289476079012685222447942721346874373528216294594105512163561055551580096338374319921091909683199157801151846603109043796898692045631535346363034164615706373566014745341854210711405330646206750605064714953251049030273988661014766291084605634129546706514374227366846277524710159022532914581153846351492818763844605986209530250787846112545843151661289113931005341634009347149849695248194466460810369456507605118231865566816931091279721583613220409476113273598898934385900705717092490113201617653322476956629571308242580265991208753226034338027629329451211229546501604478330850821033272408697606814820664689582586327005579107308383807200505438958632242493046903300421113912422292634872063176760578522687257260455807816032488005987717308196354969876857633853786889230353540272988379029320196634997422976929020909802864606879619571289378236891625837960418507624174015438092622516310579729787273117341518864163057414647034841677081923526979053907944050799457660075359946644286644782156558412490520317521556142630367088447628157028131455930959929832065180251071960785382944540035115881055880399333619131514513961575219329496786830380948853091672863814457471657753486036167187382052180165197418707920722963210702061678766425563411965770489244328738328538336432152648718983761245925003394563641646801560824977655756169092986982680424132160669271050558772445905663465172878875495270608383840347577981427494163926085065390683869819519243146359646531895230862797982543700400200991550101723791527788526469035162562715355463934842562854162854159504738155547303582840626284551863370490220613863256396135874199390866040217386821419481519194432861775500938667576179851505006232443968831767172023727722446725984248805369801114126358540584147099458713674353470488340821414718790213543565496920415994748810350508047235205061643857789414034740826586953717722876121447900394529083570053955521424420442134939966533681214640067357548418770278517725219308290905633510564203764422656604432157161259276247431222596368500125464634938894309991222368934300589833378711522820748555266376689294698190799021705762784639474339495903318015361747519626058219952761806016972813850083687290754281049845202624470786974163621239581022446754432024233970441117421582094379383279067681850420971733486824641245946191172027570443731639658566232462194729389225314855842007239221843733233013156726881572281232698765415016238071787593990882088101057399268664031003300313275994330638590051546276940938210631168709716757301125526933306288887539897516021220388667825288275700627196077998076476002842019724241429853092279113072710955118593393795532663923587040418752370137131976016026243583913101334645463851045170198642944624881858660571869351672276668987420203259334726720893212325717342488965397664000530594897138623872406461501137706312743375835249217139660994393625448333819321111898191135721996684160526425555392140726988569664160488330927032884221775446553438957487436821773469189571121195289894454491550287923499578305137880313843284368169102197357695571961033756867747064021079305038299492273116925418962849931493832117274196974393235329857842537912966415252648364775721760920660180553533101506128714297243254361189940417199059407816657494410203369807341125006895981058034984965450405895284420512975364084260938248843487551858757430916665549095293694783352798148302791074250809165692917668334887743151056998910662212030532103783060788600938143612582131070112980426780864355447401132892921866938819658024549787247561596999647296696946746109020126371107623077885320884746703821172335104431112341171082296693130310554387008531681026188326079976185908727952989001016887511995142263548196887287039941179379563033770409168445385720886740037013356291607244765478336437023342590029958471855209855847501173672073107911908812879523156319335364352856314799059373313124735798099899033090607515650795496103417998607278640993469431023028761509055156206766319540578234676767968332123241118274860511184474445102507814950991848029268115837661693800148555358695440101253698065389445078479715812683080508282144005314223782270342953000910276787651199727463796270175733074330982513587242220582883800872253320305549384566200611707894520895534343412709969776324234044963248075916447208229163302071184379294083282770575001805784068329762865712810658538212725697284585662090255159119142889210781143123982465513569044192274710348050924343821416078445733051730418249790303945870609002886447989711770966472222026973545807746637335095143987683000650054715224977630711529178488767899886252511599696055775959523892189952485269066457185403592486396353641324804635121920773998409471726099170744080818910506777713048999926755113997213021647366784633608135458320045934496542488592104716136077791657251649198462917187685268942182104372540430892391036495584405692240236662559051681924162846532543120304245291643866755681325998637710017309053983968396836149801731971567427363535274708282129460957690582179685567077155944194935301925118820326421634817355270616911546125932868152840821214652817110384309281043127566985747606271054695001716733674538606766934112298578604792559618433612437356545264537966028532773028812687495371202227560412438479471240618006428092528572695155854032042326254018135773349622139480928009617084635497064457800577681402447859980834540228581725150476031043702611952139955640629838068653732291647938460247670194469161276170384664842656082992735485683096405294721814364511857294646461111934297098749666917125536826589792445367067142581664559519843087188179295250275051565110681836433779024173616140333769309849736277414862918865518793405445101405380120590176897313363866180208056702903096454417207848610493096624520688086068199362463114944047793374245415922247097674075839645571021596581937507189060303906565285273004391897212559060866897647790621253563195389343043828827352028933199030940398678437258176451088645222020517838029238718352288703698762625822752759164481490971077089866741457364475559881075760496967258417946555379486193463126350962630613526895301721762118417246620380630219354059329682515567164788556826273724879615466964596125158681008160172748630188227529497477475668579739603148030318441255214035518934995512341201415369896226619327215790855107740863003853117013198399183150816582341881453219340460174929929788956909888971569926348271849384612462908017810818471173890465946742240593601846781511240859285198742278875284036373000139753042615773136578210556317007964551270981615379382359449898450677036428086081555429741466684531186982242613847675938029257632847333097363413009454083837218633872251079891305570074997255043957695253365789227756937287192301506664507575929061861685593738154515081953995328033980520924317353420304202337054754374757291381543212980674547449972751974355269042213640677819542990378526940912333463863045650734725363056004009594285645438618050032316461860031238121781652892190773106182278669965626399949615206000745481376617135269493887752687041548043708405519536510030239924422550083235948541748747872741785117882032386466750712694105659591497397424479458640076816760453346463785880175373757707705461024689476906040334377514406852455396166783570803482393536141642785297512519620664873749345969234327185873071815778010599989378611128486443854593378733157271179576746273128670861364303134139578107697149552051158608218288486060390331978875293258669996178917783412664524627163881945149840728950069299703354443031532863602545425505450540780205378298098905583097844358624250905331133670579428500743387558605397783863278191772414954338146525398156257260344902554706504933754092654246272487141983644973328810351603928890002319096672561388951958553175252158054733069826205625241641435584164928907221770029726718883526392144453919223728911920758501061404786538575340697781502332228142222179272480211765283986926301799304126765945792889532535921651929486631123128736647143929748782917011112907957417253040977603440662326498419527970764253091135592215373088189028625695691230882262239030075523108703955493981680686106405627860587984840179167884302018120815129300084886274682782603455817627148470487706731173204678021549706876425146988593267732122287808580334709780065395470532901843945631572211584267173059353401358192561949858062057550971548791821963336199843245598791869526458913035299311830961323522091596225166798103993419245193938762419298779087252268046983931975186063736732097374015678809259818343216484786368301707564970111821600757593698466132140065505648921781644059367042766823460273300855855960917581669419050150870930455352025670504965329460311473616485563884311079133536870236197293578522703520709692756477438798508564700970149712287996214044606831771828447342829835333260193098086231114939790578420271075542664391401601833181957928730454224570816125480340691830196170167982520042105410913207184853514388780102925693416008151080442190068925278641680674232468745158527100063293403869795606466215663110240388000961807968599774045094625397532003168855068252354538573033045639671943357670486856753338759014030792482995923808709758786422144077997895094541571838026257454332747693646580411189087094594612772207366085877963041368660312491518083328040789760329456782785554851926257456762161189300664848966278757076306742266466650125844077796662868308736853749779022918616154473916325136727862000043445654211911863143481175118340115708588497977074841598786145637351613050912984605406360874036080169853697650219015786064860451413363589805751105947427140363872039112572463114747869174753078525773622738512501459386589809760524708128971571269315367991134944058584663649656068631311311037732666140181217313359937665037340868029491991023844210902555245734655352809177498373657116095905576139215026183202040243594978188730139650388902345173241782781432532063512800178817292720654926244589418796209816390546669047511234199414405697700122460117742817475374452173420699353699744259831383887808152801005296745236549191661041339431466146810503926690467395489703503400212278220896742082275917063884424288120349233482897412043584643986185406126470953132794922171625379592720107524219780354806249400581061123866021288529920858927424860009592796977036417984701807480987006901087224293118939082555044207139814914212245675838905320005632466213680435188534005978362440968038311258421062440896146345671342712247898603770007719563092847264680417946961591598358327424951719884713273889759847911687157952940326709823688332343270378019613459591792174321947912581568251226924404565916624132049635994965922354231713289785494178507394541643520069867251691198833902253663856112825335445720022548998618127933818225803086331284981160395576798832654940968577242023287511634736574945973242059203711217904026245874244467057472199080175449035336263262506934844316349159332616019447409302222590799009468608665588010561888268446116399078455563438668608237756406670876428454262543444918995556933026440719330628269044183693130490177817533359787810991462713919905621708573675659468139359318927518294378558582788954938844484090312896786103196799309100639939155470538215314962674581268756380102156368484979529897170480364558732525147994160924353340085601779343456332158882458679355744354389513227963342693296313996424262308036362440254922843664974486087153539684601576598842731501398332301931458433907118868234559765035418357147425274014141265368861356510749433755766177011122770290732627243779385012301240041759895676510175012062923891220232179811224993371229127501934161280260133110412369625129253265548173978807367269559010744945212311294371750834751907297442404883736460724248260041384103849233487809917290659987444394573995153864646431207804651934440584174480595993327442291796169182714320474587333322153938828024533753922766338123122309752250042742613295733081172724731737686920698743899956412365673929723898636724735069780975904848481572911450301997062115233111560630856532595717962939967968261876747610431393967476947187083950019973599091577280038918717119010696898532132477277849448089251538376626085692066138782080927734056828875372355989487923689203049439554941789347870358825874017255060548073239196628942948232924268988966677576094546827255425358702849764649183982243164250159808124418485721443148217489162352012225956409788773525058219502819677301670546779097269567169806565567281725740458553655582606508997375366467590828351212355316233826237160095143246691850421297377443572334395624882409566140673364791353701051021229019117094491351919013871461383603583977774363573909505743831282256804230087647509675753979686064354152726555162064216122870563720945610241630744155012957286807647801235812738067366905526079994064303034267418164369386486353979818122569253724224236511498112211718395730742683107274856691539072404888825050400650534501931470436390406465427382532776501026953679511815906824071194388757045551897928791646043598545587810184644745574521428692115058213881869359879036776130479427648514802242686142478132738695686695730865636199766094512584133995884481564418068675196921265565926480282914590643643713032266378376404926910363682227016120309197356639647826561843737501975841255877613747414464426361672442748929415718778705439485111948121247652167399838975610801994152271631045910798325201979841234541722882920216446290126612437029642863384575900496621652923013480869224752898414248575933646701606214034901583718499492122630479301773587578446189197853006798916356691107058252414010505304505051986763921097412993257177392776178693067811077826247053498839566285053509190555959185806271335910759763290367313976009683747984217934176420912208204671594963333433125800242004353360982653790754140778700250804068954962425698980952870023618678980808922409202126190939380823859593680549034551624393411804134163172145941945967285923904916923205734936129568454720992231875869399820717879135346814120738326265597284562531922948885718509645404460713846691528509741268431393892202910849272611775347844890124971015642753104872457634837232191891736422500070348723389342554276107383617675796164008854051499876412542758211397540248273758859738224358854892607489695885692950193138560868685321761226156307423756654668205146467534103050301870899073338130172775109501141454500394804540587241259604672357445486836601457907510408131066860071413277600128383862312642837582988590560729095088713794520133626390557714624644406750568097662958379573558635986629316145084675828597637104029702508386804258644931883534525948467225865307338972580665828810333479934028546907859183016328854329275016376123467482422626072441712355535862172792160364577741716463850567721131123131985244731589564492814917720469608286862601326316957329084874829493999141563382604234993351831564911699994356457208055830670986933906687747441230264695995824002267187542764878775451427867220309568357989085409344361939017480471732304739488257370338081044322810628775350138697828704037599448341949892543360200098608505332254125288982110619005110373381020229839552001107670771429598748269609079175288290990000970706036377122948778136576220399680646898934730150677485030576024176476501110998102996806862371605806538391372299853908782431729095740300775200103667766928153740675560728756147627510271959173068076877135653180172887151041308506211848336158810599333732745804958289385107273111831538556841927966749550026965717481506127814532347164987939108426816029927144909368558067989190919908761908315323948245964142245114228134219901631582963633702609601662090751367146907187444560118467921445277792574756956098355815027324111356616000808964789754842143901094441124270716306551872683554871718832500517139657258137258453968095868424013498897028829429895082956211809953579005642414190098830991782620043184508190499551300530077010227253756761749351336676112250254916048189245150003323229826755082520539393775465045139618038637355681420663609394375875503344135681423493201799156354253014764561672346827199623427927736594300176310268307128756576195329185105958442283405822574636980830932211577375299495722865321228100664106269459913846992640901025379996923923538610215759226940446905055736122787051233478760127816292239256275914676462159378486274440712680673911992423985078219930301489976157677970776716966634086092055640086118031591035721556009213204895454589192655532022666024430421167138921487650177897330579446622943272418217868076132787255898469442886483085266226125985813126071393423800576077491544891523382556193294158567400567761452541889323965091028294115587786789065488791127153470640917041000718872221469986615912346432960146763395931159684284775499628658988803976001878584723531545269761066799106179156720367303593324651007162058725248104982056203409681290030058205057646644075859685856101199475949285020595073527614794101414108124155283694481961583623427889666882909043300292589522679350126840976816610148782005284101691734922976397140327762110942694002139238873073423852408114679688547565554467421543165464355379820888771220140947122027797094163881593424154317816015433398743866438901963693892601268959589207232144367271471964213565609594307297238753498000598558528718089921607749969450877494004196287221529932254787690276160872728614020786320814152411312394948506323351787157088898350682446880513087745600705069516266344264474306073895858106497737707525599390817405360392353482272079697548089967640076479282544761354607197998505315410625367344305010437864223235180402068564236734584466599615581900281168950502423000940463529343491029748864318680592252827234920647670821300488615563838241649257599310657566860571840174486221015402456049391954310760552413277851340788175685318291007928663360455049441131351854526634083748549020899663445557766061539127163016671898211226479786539714552390363327205170999836128121287833268661826437212381407082831019579659221059303495136185188889781050990097287754260586536480299832338396157370797983941391676842201435549962699914244938441388568200639974705289838003299277377090551445799905960494689832178593733746709854305797243811037068750494388912837875559776316877343053514172890050017471800708791859590996014364825171478447011634648780991579558125235870755661946867091412560673046996905516256588365562398282474253633866210924275143127181365335855174173993597311922568462094178036460626107081317921567391323712914034906930490768746391013553495976244383066039271050152129554025507706114881049550203923217349125305929724346738641396882905714005697645580322621285801740462432333260192198357301183240194100517327389720204593672333906016902659079276106287269798495878830305832826056529486537885638308412194215631603428947771648778254304015651327990386513131909088336433075183136492570927232331764821590471865364911878180162818113104470094033030651910441629514301184754359881358627586476444192786076930193250902455204572973675607282564052502552846623567341465828773155083340984595502194641634891057019303248692162981050962343344169621996144664536788386553162029870460000088533854995771436767501755181075372725618412876169650087760741735440190861761362189870106621464142944930758611059478152882209366143441129429942705987454161117127838720896598422646805229751529348846175112534968806067762148010370013926130194627151858123038318177807296374722275703350191066704580968113949612336645426598557657600928083631415983843874982374672743089323746717817026679008024747161493460123807170153402410173315375423064269619141044907795499630849022452343082489988079137909556402574501182687550844143110358261088368750439499310415669021011138744745969944583347297051149093732150730072051983641732769593021126593968923933508799210127320924319310285767882822748438539129819561756648209428542881975830491070167605388211643373568872517368661516824709202674866778633962414751689891549857750661514639552858840113638395615838716795355054660928523520165339841588627982782052471840351956908873540007261707411776170912078785986124257863129489068004694469554108679224368324348789663149381828286699743263898284664432750550583328975919751003971872006448473530838279017584039786400833852994374137637281866742694049088217235612919178669251097853683566360002331123877743133944794278551266966751878594946488323744249678717176982696157365603128443844891564251377167898637173602021458771054847773987610346686111065744791384583826476941963815687443644995626278847225160553400926506112070666929899660845646938908293128857282975662555133601594962100295891090938542114123205566091440714679643458904856117438846629492999953530998885952948055673301989634173662229501510505435785803925736242581914455113524106655358197385656868022927660635111716844121055720039135261773495194423164851830821982270710196166005238677745550865042828369417316634996841517949582568195852978004003579942141349040240705309456825220085247578939792554352061758323480507027894438504656908650034710432027882371331002715117502271073944839405927821963564166403445141244138825969197514664854069719025350966845076514285402945599377256907056382183519293940268660912012707642793393527225103084601814111958260415844809064585911575894486740703315398706252651328068625216573932701898972719915537053567506229807657577376044669614062512670376450099764516700086643182210425026813979012150930598707065663450466899944099841516226804251649291626737298878491482988014624328290416488051904988899989241656106360739141033486666688263543904669541333379376881795762325001052475248135983067093905552525409393804167393971034619315103695016848178734704136551063049268682955575684016790311007697355258440630694183369295651390948076551872477365372905422938341322801894301892098098773539987569416452080248420186834764979367279128791949736976061284953631927016706433617396352537186464262432593448733001610472573065649669225644883259294599360712529405373766121074104380377063265186003269018672584968747447215298480698984032415808170452248616016794236576796275831851003425707571434075429489286211381989185867787692301750389379882137171078001617849599884397096362515927930391291056351142878998571623179221396357574193095215235284138480012214594112879432641088975113193340863705665350499068178797934436871186345154461796996059912547929103790437658064393090086489826965419629834444197069121059423681607530260026709187447169517701413946047501893811909947292215402281240815869380691774323964554698722907774830381394113095772935089505606163163257876295806659646802831305618569728882234141884790102829188293682856393982972939947842927593783889763738515415151122874346770832993180129733269944739184892893536060436158949285723693401261865845406193726811689054836546828259591834375814608955968340264132891780665603439264773125691879666785305275595155719377171191093018303086552159084042803835905762877218606923322800975236976257601619557179974512324752831066031775928785756052703001311540808001575355202607642257077317007948146643300275352331555023670203050105216284390420381300067753665362062130475803016185522847978328908213636283812375963258898100031258346189935675990278101524051085678580614516951328064614988417912955796421435224451725901160175484549349590490124767618902514772622192864546665142859544853667296446695679554683278555862107729643860494727184752246001380323706520612969364956672660410250685668531112051790332694509715105611830314986303554863659643825238365848418207414035477219119670547073931677578143745365434896612924716899707732732336827595156401836789004944150403755097965116398410474495867034817371669696366590212663182855926590360510779338871163605856647636724370644221476249705967518680285441921618934648311093409937337828603497258260832903464572712981818637707775038128444996365156774837557541366471718491682474842346679418572387046830153843530819564348599466600804628541056648165367198448394833277812471536639140285989721690833499467301926259774321873418809625398091439732837565708467176257224332644039927727632925634460705496918293341745452807018047053555690715182039215791510445899535494369427235912612162237873357729041724475500739277306225092539326533889886181987431254098068407305139170799387899152484893962225193108493795059376692276612688271280444062295774548741320143943086318964145700515087497304455522503226136609679352915809006175612706002708679717958838876900554049808576841475257827798043984520248444902243568450978201525452661589690730095338921869313050868829500904324822697348788003423128187719824805877698379682871165277252559700599933656774455119540024858329400833656643192578777263192954992805425745134385011129835156335210372376549650717510885587962307904074262360200676070465113044941879814722507714962262912213127724877504629232086251959670856467492931618600439065391379336973471753705362921453623337551700951660542070968658724698531387712596111676097801854719984118394418301467132201154006231935502816757120728852610138456543043279493557789192324865523838561627218828818970037690477882086453563030003566139876922296243026789898041579966972760952246259758092183576586380319943107615223627170578710806039178600399064324271124344813830800704858355111965185062010781467477456140430719500022146911103825203921778363954010606774560338109722202735790358235824029514390634340837663016025034753906889199804631004870924268050679161567752089520320778644818803513903814356288645208582600613178855850643474459379947989764832826224709285449871305614919886354445065296712945789135604489029483197139923026162027652648395469942565965024304426641549810305362074064531418504395986805860385630580498060140010846972432021984108486850958045039019150462066111793544765764553849956860642883342222896278079239649965624830793893735534701118776012646981459176243969597813013856773335508564802928755242707833508074801971345388734522526861762875368475263253771828759289879871560144014922607803908883142475523590453888103110063323537129876389858421321297388617224142984925687090878003861319220014777229564660595271658108171640339660516865343873016093348670653810898367116300958086071774511383069168668653607976873991451228487595429180014328764465377884852677547865572900556635023321392812031990126541384463436559522219175276674945774097625089650205229935338164518566711233362737235862822164290615132989585931582435517502883012086609456586153041233205824681928737206405115717885117745925884743942022144907050240960134187054738487532271024853596721254085638657074884189368602670282198432301588147254942073172064680855228432980069637742123262225122998840200220045359311217352781146161065434461706475021963372256266025373250032971111118040880837561280628418953840383472550597522694752002942543838628452557283691320928589310333388456853489521065204199510054712406461607470964085888435979358431252256241388794385668352672188015254614999603067116096566279234331303041632541379985158277083119458054029250489624789215048051076184529773225528556711330884803727182992586800120141782263309285467986287675470688214507255368937092849702431180819201652167363480766842949616707158520941240534648232665243887700361553785044890951430195671801288536748868982192022091651641187655742347264183485657506558656998352046323021791303692118075083356374351198598614447286945475762432500347372885927587963326250842359306959976887848050626462930050909455415578291849392996622684036476133303443316174838209694652165586281272013768598157567613802195153861019332266694255736217948046716058463691796474316275449996757506994343689672503868389266831165701533730816421195337224595647635438963839922960715707134854401111419408262438737181350912024675366029998743985975648586422520349002463812588009132640483518481925504795416789262660883983008465065097462086984849801486647414073587396146358627020622463504277241822661767486934086840231076743788306102193304930884260534678077108920733453634722496652450477242049064772342677816568155919330670663147214244396641078586488755554774170972232241245150432686735142400196990160281678318888691397595030128213303055123090481828245299451199278146762455483712468138036903689949409641743643864308135877559308697438385830194591422376622417090021385206477808679983649675386965479062749528464437453352965035574008673806056522291674755224135791060989435564818816103423747930355533554224980291721053320565719695298072418543684640484534297392989385152593938850285403266004696183311009909222869277170293514257924454802866292472641199523440699898205951320015883261909490748513980512221212393874276622287008913336834566513087995037363882527795449527826831591386849967605130107720375104131295843423253388381143387040267693157473950186314952665449234967764672790041553286997178250509979145348828562898658262034487344297377938713244906168716352948806343121164335435332076681842008241560487713648608313443301697244304997554444329558986413997481581647372388970079731343295485758670589605070900657030601383925191635030232609842531083871139413753930063017434350839027719198495596311444949005792843189136738156255376936314484795766789153474696485472028283558562014768328293013564495039296008550639289099950356464101018660275811438533650556457583055483889903219021535830677253779779426994191809652113387582249465501178787584509777953459165202086081390721390423863885088840252225387324059215187776850060818749496248418937409321057947962755396245352112919268427107271991409561947097185131619503808883615885696255067336138423476908296261097431954025526561637589018026260005624106185494458308731385699081854431803204513545450578333820516579861949137143630049531376950829933431555524848800976774253048244325286101576852552415165381581286928368336439928441829504915804172963633819520072334500596298412961839495340036832110456294194795679532301315030326742189754275944040049610827720891192641089382030006088119594072660553657330545058659395168247059229250199509552426106665043702917572904806842843836423729162566474035277842562150505560117284777399693390868977117377822846730741710296630967429125443030920130330112256987115741101735136113971731746078640591949509697078696488102209173154821805332202828226582986110292484183988760095944581806725376095726251357047572309141988556190089179280224078117267862771036864401198024766222814264225525110891756480959633650714764427642405896179907365574768445956989836526906188861218819724025575459382941051262774344152015932582570531395026519399251773390942157304815264703002500993159314557343530680618181325239648741919019850027142639247587941877922217959286395489299235574749077877929665825940657516457338328943319292977122756541032096989476225350037505244263260210498279548650142140079437804226956051641173214852901948614635919615557204275218562218577334232224428751398706614169850811258982435517266644316402170822989621154684006367466735201086202322032559202636883673425302699328597732732447627413528141026396422554769691683388787966171591227701094869561040842778133745085679695883911905469874416822396225281038428317229227291101162916878434255805931245417253393394139043088433170686987121555011825287139258605019469822337295953232930713675753951045333005153473566350251499013397489201536304886214191119760835949755626845009350461621044240682089176747604176184437228126446117880412559497435950329453009810621865410830646220413817559287992161452424427691901054187645770164959986374917321152078754575828852879138058981265550605942040307838759114225296538465841172791014682782208792643886157609601769786334208993178335000846325889773605396499580140374190372290109622934124089159397053415001249487014564108454049317073063245254296562951377881912868675339383472402784637564562445104925846119508671775022225208635710193792075403920974956935950755468142865964755318430811667201520247772654505464057135589356856833106224930590484087281373114436911834285231313011824860109149952209394359021230741183272073851107493790636466439063824869776967981284792640048608757731786124305760448787627801034775281792821144227922251221714597956612370886463030574493090518744719531124883556797277431577148453742928327097284762317805524649471847954306058533028168646462754555957603165806295693624920871854251754901197284939281990222593953348598769041316363753623177195522313169219626710097994517011641298244622408917268611537714896625825521958472658199822570790280488416745779958916076822042462099939211990088174373609117212368355676267707307347506700960768233478159539921485880793453708267355063432801516503012963902673373397382904654000005284555917538081524194281019507809585702650764228934236237993065868930837235979867768719744317473299943828812596200590427021198982523435507909792013950074825876747849590612962668127337664709586745358726816465756832515206255575627530727717577507885389348575583287377656665944474390536663741325487988638385041555004814678972787908309478117862346351773776337170673005232148875010860042816217514374124619252875436167320897315467995994586360090092005414928818835509404179692509032991320634670833308236858379390457976993445783501832841538401417184769304614034952257100622339549900561159868534903731942335887481102292031167235883737460629689823871675987337801576213785569685195159002322771409558605324833471906789453052374976688841542986921387074868315548555054552465223236078341509330670570883142927698156745562721671033321108053764953985550830749439350516615003362540923383950652765648479259651088965149977168106999233724880194098532336495757700582869623552433431979882033428042896447917790028354593037142082313347882278187537230414478904776839889660577019539990460579141315406329507599174433567615961268227305561071036043215119382527805049007405520560114282806097277837516675492774027000611625109243661074443321050463977084011817183331616824712140451831614464793483708139785241619365817000970267240619477137931665558654256727407321176169973311889329740226910872457497582157379665323469182005974100497178658440120588252370874745752174109840036992409506947732140884752706727808391047809124538364705409658119713781348077644809277295961361209660371024203303741756156183264369810313400563810319049107625529988119239283716417548273885425225759826013405243181464868253706412224295391907592643374784377300515296999154603593222122213693499323021227817022962479030607240712654313181410062877081583566463787057524898910630910172062587637511603665934955661842385664322422153841493587022460039732531748448900954983401580961354991715706385662117731826966362528503356081031331868374582034856685723904849237728173103251443121705204517734553784900343829738925831312530826272009883224156743019211067051996046090732641433808774629204979320446356848171485544046046034820263531893426356748845587893577517135143568296301176567286364469747958873813324651151927752594729220828159283697620520848415615306985725910878343738871038579647166456048126325413375636621208304301139828384158009874307274471136750638000270896741496210651314168224073202784361783810615616735432569182130125654406834671089538362844092577303510540293950554226605699090062892691990170755505583890224672325808958296217578741335325609841785068534646665185429868585162537281006140050601939353908856772721935287094663439461138448397821163805345908615969611202469230934684500574838195329741465962580604792669961894418957978749228503097271049450897962207437276395951683300114014826735627924299640493233216717313541193336921098671296867266289297416142634369880927344027378361924546930864975195373434772098510743548940005754874149460803553030295669361687450677667543073657518397595220841775058787270683057025939861517702210384254983063801253052897289939686490410096282963609383624228112857684783008357548336600290405335596197970037274766680752191280074590347938489108814499854598370537848375825904662178477228304639656577873164974690968766375415637288086052685769379060015118284750430243524760314829802145950751572234560928708811557840335726189047933438829594685641886215111221086826909005695265822802582296111474279218808361249828334355822383161339772235223748188189490518422253259108007196474988584487587627997247658702537757872590020784214007899470425452689885353773835672583365279323358354007784253252172051588659854799036734220747885111567386888680758079521640487700984819198573264967903112184000512232395182162584112673498723178422818738919372053961960644683635350608203043503006683593434147604286487185178031032270172624609842157294039265414694352418138640322678942459440600279759359488253222591221656953825776412461398337529664846986180516220859095138488659992163444415819525933545893133696744122033426259309475767106756100369899960214549141133849548829452148318441842472188168437645110456251820974927595098800362717457455285603556329410638929714870294653917834587057705274341137888392772430011195720625862199873392916883425098827600232523172547610483235191473453184686056119110351264916686956117663830948775988833872459453331618969901357002630253468529605430302408571281579929094640766054285689128015295047096901406742518744157274439320561786948224625123250764531832105267544060450382423382375268233057945293885997515193885135052421702339993105822488846067618537228359818152776421255808331761711256734338446054813643671115402710214337039643146094610318359237921647638640306056397617530944900819973567435426108203987659042968190491719618283546348331322064886312008251404584627412022019375578444557021648305845102643542343179974716979486335920321986331047283168254717081330561582907477975382908869989551334016052124226106491978275671362140597897416496216815523316919547699139935917133729373980387981619908026803751804535053620359606571281377502670155169260378979636284318014021170514632986658820671078179040894474688791609941161948649204152747469320125956188784917473321478919494454715953159844622869224984001045315344002851525516287148385872427179170553790018403821789454518885123490983475619167449831916454899978012864464709034431324235872489273463134547568643367264349275490641591544225401977633942709449143926232691699407845011774991751761720641073157226168241784590327391555978094624600787436538629862322235762517839993270798181563839986178524092378490496921676455071886474536876267306986309157531022716571753661251468750628670375342424036825882182873868564988143718820284795639534842911514858528331146370254030715839592079026969088344746359207543040318150918230392971752358915959546796858252985026639219913114947544412814586595527627664849183004959751738995901496798343173257377882059360578466565061338458417840742419484757950968609007176039290479327295637809538738933425932526029952666072717895673441253231532642308046932435486976456296861514535895220748632977612143513024228380274320257391881368580963096490761985568323171142296171185950051733335045881000009996991398462875940905543650739930762836465251593486330500641137386937570668582148695941861683775159837582412533335082165723018367461456471540838684799245587504152601091479836321034026042363208729505972895262320855304083801142240897314885390603491348555530676074849878965273370094008483858122064251682787045870563027063527924913517191777749944116570397028834321418803564583792594797302740846402728039251790527494591958450778937859837999385868739594786101193348487435981312656468586218842749664625135113484353631428988118208501163575602621537951928856498453623977366506561628555423840558700183587727068152196514904559402250300726916759360963806910509017146353591550218845755060688981628970030401633206231983840266181979058771293318289420065947082800745218164890491400950305275794932075263751877987961500516332629273680276285566983251523088082819699411086611350453703952740540505879156656887698194670655587924827086841425207735767148274538586337553303755451321520670650198800391903355439888488878991949935896296856828487342529064010399835875154041339780734942611892106937040053478764235846734817309095924573290217125798426579068826482450155870526145262429866893365227483423378430115073252304983436101275206560034650813876744486802802255849775949223583603078458679712788079039817738899488162494979427335612196508043313482773612154801131322130100389048081112008712776784047228011270712641912555492480711418512345064390752868674184541359710834523639482463075214138588230377886264973598556921174819894800285780213902079655273221416248929127924924364694252990313078339987010994363876513300874589410457962396385620731164618015856867310119751870654655546401363508702067785147627550776871868305956061372382812606166111031230461001520866562720125178423727699246291668697198345027531600772651272683009137946611289567907147506534361488838691006661504797936569451744347628207449628838702197034253328064361738228505920309736491230279163951706075810858830046775379283787239702749434367598099736086372713873091274355996659941165714368972604562176908475517682890812585854881890992678617050368076863478948282834717437075756062300126189905106366281890307105379364418575816119704206226309362374186747634040052672150415512979564204706822413546288186538461672213490573873687815722926175180684116290681011860496437708197611304575815498148766173167909225885640778554198581310135720573071222479014043571975768050524793539303877068653775745740142814899390790528060291259103160462509729003838074159749879779198038075991908451757175732101392339002493366581166459804580725068107975100433120813975165631868948409242020964429952414971473190543026918829330642256240740060431527323770439434866005573129707015214452787158971022989236250061262600998318726274016367664608516809592476387792680581689673266196859781311526519235183966969994644882336065766108785987972449205045208177303747800301098743003996027477548053530913458340103851271535111442340872844113380954169760583767568252377977500257310505044530103648931845838490246200423193778836267502561716797899746263727063621543751745633394406648056189863456034713757404679292015021864928234897811662033182862915873340597844191475174870316779928306112662635572536225612275044483921934130484615275713248237915955154913414198232037075187170190930468967827873802716844821169556481037753914576813908759104766761857382406098807496425259404320657736183308087842212322796825622737001770671390510681909241253691020132767792870362136153999628962275146597808860261801340908925277334580534802335950424616495911233952663425986899215577317988629818413729471036412579015103664475202971309830896542283877719104548694702211740406510341848406135383760711960990086551200056489971821554583324480273315412548193384759677445746184799043672746726407623153922730457016472854672924656124973929343970005621142936012021910032794979964606335486963417219118708804006637105120517583179587298109010629251530475693475604517709748530565219273209043687434674044160899695245889274459947830807083027098560976618987783847274495420870179241131755197820013067114377166120682970408701134906632563592805241197345009877178744605306981625795567775364830756326689581983159213251596666303824713734921376489689961150209030561169609514999151501123660658470230544483398862157588969682026672549743918940448693784653627526727236684493613888708809517290784866934676725761083692703949454533358484385760126889933204328651527903222768695898738869962357308440068520946323991903485785281212544333827671852547688026482667982919990500739359275567620270746598465309977302644463802250269293903980074497668463773807123947469132855057776041910426280940921347741379920599036851591882407628706457223226565364784569333908205564664790694263913488287752493222560574139552336434207340747524810066770029462838879072171832828689352493850923200610954677232909180330746146269499114022979474793082872049036827283140761978910999062193361520109432478467156986746336734470093713497187994717556137390966580231618398764324190845625385733241290579234006641067496252186698844257666874972942557231599154353727841090068824923384436311178949511867211795093067905219801788981435245355182446165055378468099111373823685148506577477308980333626865272558271159812515702348640566841549074136578064201949886237463384420185076027902858774798534500031359503434790376928871081976764428884112945202894245929794739524953766885930142336004767855322931381703279098982362715460376040755228796768707098786406820432214699536100158116836738299720195563707566074592354367023791976594344663920475884335015662851757164175634330140980244771086809053188586585178813028114950209401402563542906707349529132634191485770562439880850608508417409043829885870954970121743936658755512450245240204460639139020209541965077235125672156647117544975143785122290523572561545763635306764854077024398169352739640231933990456505144410755402052640986728652736292223746575503118377270023431000725410268446731587169799432375995950084600176861160617747764259527729473440566844411778365593088054804732130912505062833733446292925173761275061620561729028512789014791134252737353529172660903355809716258711383866291052465493246571569245944067808262019531857444958561993548258420548588953799963722543481534267062532927426584015411109298614377855250793330749270534801083021076129075342375435400899822637003024236389174299050563645695947160709684630019149651202664770138200077223695678668938808376591271902033037626409305875376321695875259464374544202523913368745952274754106171173300652985388933418741246249479700579103901447087978170417750212249776229272797478107236750576212010379287121506807635361238292834636784279912862576137931714992263176791320557292403035096996754168915779278561220599965285448348333866608035671144984533158230127919645735489498500995890817931665007697983162347072990805464227910261629177699214149722172187749696900704398480156272259099963405526885410843445196641867523982065513350282958938099540893063915695222546438252048498413183864626715197440578082645251834658643313179681608464787540193950958657510103483854813875993508133911585494078822894719851427478634680423680110468482937373857294877822647070143829200214816350375596002972273914960126593275421031131328102633973940204769312111837007768656529265310898441624138396192773343621378079103675400976246403673487627909372350927793710552997339299995122021588223651245291541564667099096702445596715370403151328384915417731430113032400303353329843197675048733445063094214455803498456523976768866945406072624652545482192464373331385795677706912118187725111312709480166008188710785919053369350162161742278609841000068878506616249741112348021162430429021092161998037987598895442937712615687497085723733443545646266825009384421804237010227095829627066179409209449334086135504724319669408413546335565784846505182058732168235317068792365916935933678972620288137321139629496561227021272208625580379093233204136406355505146626084863967085052036439352863271143994243855013125112285802717457318337400525947439970338517580916342338070471865979960007955445334450380228478594592918508007605995435289261535112385128300783280987284245618019545590942951438977507264907049676003072987566940794741713932443159926344593661180566601604132433616624715446403956800690963794506016090993370886201434632592187286903896367422826534859201130774954442258467227648989279867737696071520843803487901968144144191045965125654954980317172586773211035157121796131964723926124293881292778844867487467262813978391453718680578797951354972004483928002646870614719142721535346556890720520091797671554361701453180340927120639474478774476710223305150341183010351550966731508363905092489235679743413271662854197684652424903137509449373142867056965824442779115870234867348485601828056082101565022375360292146712484604139465823172059369686805516323093139931828863697959591932284428194557590454516280716121262902552510639030029349829698147192701976362491832820559185278365490139313858605579878556952139737824209666274661105989929264997553460033075344866080928972555330854633817534322945409093385587286585814915879963564276325944799012227507181661417535010565913157502536100964331769777194298044159517518899939158471533383450148846292334723029787744181608128538593910729996069298753564280435552954821735482835853871607487957553537610353463820317497607317141627967962882700448553410841234974049951106629284206703365891854991105202557165212141454992388695104856820152880819605831351916308400463520129041533791883027963205874630303019757226861761372350045604810499647012224233588328485779362409376313515016395257760234304201303867688854488148961536729762747922124490852073070713354635446404294766699071420975439701774826165380064144785881775043365905868792616065806565616224280018979019526903388295314427253195388220342827743179112773778287757365307982045719207952213698428668132730196441582790720957428809909868332931527436601862824578471286933422447712100107980376022152908495539321057972720799755496695682065372464069333937614489991931957972996148634743967311623995341895351461313626709688297228384315991417385501791958576960192412514012609731197788747674952368559923006533231958594908470531799459760094818834906364242148005682566034461558956887231889762229042328014176793781119036220053134213743610908556206101748816740820782462444617027065201543139738762298102478564102017478716184960756692726836550844573627745250321861585068750754914222317478639180463408892830306446021319423596255900593333945350632429163141769351117094235499315895417949283944938887650276983190232476242521460725084671270775579702438738966850593648256870528962924181916672351312082284589091960330010781693961088566998757154293077428843758481125124249993602450509905327645280526672709900556427085245067371932897524352323665798650376199773923250830893199821611891663817227687897754951951939908265159005147696658538609489894285830605947918700253013060126639113001776958280762997336233285839018021129518659543275578519955200565316967014174245026042328573393002248128518024932728653243599635366814632147536186383364879081462432705741661237430874433455743757412126295500994921821852443130615013628978444635026470938660343396562331166160466376757183001208459104758788804891548724044337323339383083138285360677569808963403657219646840869380835130355490043440300835025504352069171698847312311736405049891578608388326018454217544270023048119874880449500203702704263451895687293080703232479092473444451220827592960752467609895536048503266418057901597082421134428297914715839184057727605859341272802530557532959465505840509790668224881018968407792103135290088788927772505976802576913362181697650982240787202270096714853882260396596251331402886840789291347614425382461004227656751949733720755902788131699537062776118101939996899383494898726615619546136843069935927775027559010329171812376502023340476756191751973439545142958321863377786222974151456797508112067643573052628856214357736422518946907518973772880213633377512052276030721967294128186645153283617783411385178222193725026768807968767625160335027226654576267274023979817316893359907897271914912067141736809123568348195053500074791198817242101555330601907595847467211716597244904452093594322005860498213092443992853822613058484592549211621137732917661526912913715561923575857024479818281057674199390174921039950505019271767932786382716509815505250677462025567982745499059825395365467538100718679927299692763305577440878686686588460644133262564949909923072068158379421014818237166853695971956051679587505626893601860345155768669240665898802814703192666035648904641262856900481972478231448373709206127432481509820751765426332047698600057482995599427077664897448106281440577131324709314070479893054032344458568963038257235537245374066825004004273039537141313302705189166612490152382715092504707717058651237958376229611682553767833838507979191726913032993385917556469287237488599474269527288283559825462479339856783919199013497613408213691915471759021617715075324741140661905907349650022239335729016713863309482276034416594402419262773566213143149802339075712176766867131050344707631464232201385080182720500661737521072187962113780113459294372601301107205045147641100096029065909766742304497155562734092746546547494460275117694777906463633119538081978936158600937874857054796912322487841914533881727859947996882005668216022855633869989011942850241994644562793636570349687255939744048619628323913772921497004241736590529552332312444355006102371164707707336494828454297817317338761678510798679259531544603939564649230709102022054441540520960964361437698957294084074538370009131082877127298360650612503285711379698108184289180758510602345960212027444698787426422766148475087637813420531933921020570393090216373093099215510330130173252785797201193625104547325594775176444115185967527163864639778825436550036226655423136230992752439154311687195495425992216682536623101663298210023379628229586671206173954199607336184411908032969867667566386293200870628779150107035200153145656224972847323667367990756963655445350482137123576604594288531969801836208625172504119781673212315500149521753279090553182979003183507904949037180198071533911540401867670683689355331915682605366799635949893428940665292920840501516319383679802571303482863221833905642511923804458366516493609959360816062850113670348421054688915592164167950765041100779809494797960234423469586128394125415635556488863372130315846504440017604538040879490668682856618029299029955872008425785960851235128745699846215009970608454214478931985968420509553823073725934070983690175043891030426593889996090463337455296553648991516644735479090342707097933468852552165054734074264306477567921571373101893412700401959386165104775004929561449858096594636393241229760406994469410851977581851497240900063272862048212851852835467784482847821830092459426902131870170429445159462305314749087392687281122811205499206446600186671873965648971821159977374546596846764560677054358935843623097027358070186869996581763068832765735617658960299466134538734160678892625813137433927868432073098528374099370914250344276238377325833893126660719870632619006150215058399923675647661270986778489308834147863910830606411688473535029912704363673545666668474630585582159266336875013841665430947535653035347546331226560780187786226621427293180092823898018109176092919014350462980412124920474342024896360181898140534870286224078467012302275993471065899512848454366982363179583373975559691868861497123894868818905088589125323011667147863214206465751601357237096047497025994052781634647634778257902054027447026735187851290473928594454917500225848476962898665804023814563371210716547592010992485718859064830018193688599800153745355688948471048958224170789904386785700528251063398248379909098172267756334297952431137740357447996592504518538835320208339059448697942738508651404604548541640522671413315868923914748066403966751996102366748173539134805696230435134963266412577501019994646202889762591341060578384212536271050784844489369871273070815045509558272925669339975135830706082310235630609829118074594263356592721143213828975074392087102369746764543139684541971700412246970759927816495610872869167769111742659391757569785932458708329571088859517884090969387127270118505189784390240041502574181201993391692542704869809846660344722659807019910391871252824177424496564326627800684313469220211888618656130752821463625375749914136928651075037269604160370554058140499504941889158266604851602237916928319280929963974524003732073830279455609091190948817395278091454216658100887521919068794254001982967326481169614512572519989470574091626206931897314254884658174781755344724410361261514052486132628637944991087547552574207612875413172056978281206280052925870034345246256739104726787413920214675782787062989657880297594338010617445503222139590765146416390288116569888001814562112964530470624507919834120584970646125354836022219592001437459971799849795720597810800415466621087681629987761702827251224721426873093082545475835812456212592946277788623037634562378908401995236662418033960337517535113231372515193394612458918210504903554566979787909791378100417707079350023281469484707828066535411774184362541548019431851896380870822144279572334595180135242432060756990364384716989309064528091335623464443039827786903187108638734616369250271538997232081344965229542452776579973379632061794237998762184594956156414935624171277497056386147356693825715375636865655533770156169359250507504514479415273721913058412216038461562712011364349108196943249977010603110599914630101656053465516873745076856023776483890039212107165161809679107195659065325577199253540823568250319249404149675403043843429641994317702803169056827040408692459642573185505569870844846930096496715265100966149915327615243971669281772871804888111198556507964864156741630148698091698278897060393179589252100696338941682044254857059493647764669673588129252943850340550139211314067572457684739973265143495744572948066591925924617909056507811623248031188642156507570162608927707159254664691846272126633985171804147906998813855027172015173221426845238327927353583831727947742874892008210906202572775744134933637336073359470194186019724071555054869616158636236186189736731549861259470542770437732713705025135512834805508454833072218576927802110266863187998778445687522585187609547058536734572989391584392176641105169070748290137276682873271488902855415001252708766016021871197180207091236364363999971801022432868172378137961336482379687064591307996665168467941717374158928684831430267953776010567240422452306721897949953670200814881108891978755139886121432033441067179471033549298704902725109882050787479339548744205553093303531198902267537259155274420802409398153161141609191398500918138643852800131938635031807939666711720852216038041583669864464309170811149883353933980528942071606113050031668460781901575639148021217448302814014712724216813127569330500714107741474902969691102634698726188197325250318635170745561155685807076537293217786010019861458788867768920940835855725757169214036247000239027066274179943586996838559566153269026427086995874430079970660887330187423093909772783187667067033415495437198399684259193409949538160346934281654997861222490486005547032448988790429887000625255186088909214433863142613099515449067071906732485885788460339522099681027754438306643416662194471476812225162852709050762087340712054114637631939602350741909668090231416133023661752617897922761053937019641807782061184462759392364888218658331179922768667606819516945658230428619226719564880035654544925882431152759906784192368858834473367917432771658440175644858777394090845905743707688670496682557959498667558299269343130362209543433514322816945588156739305866675686361201129854692042887149740430435172327227882045625671159927758338495588995866610908662065759431032632972882659171773867985187350195592662006150432205091417617289626691669679093692465661529508368952401159846008389907871719053885020671423796084457514560203761553538761384249742424605909287881513693724298604254981495798624273277402868504526308488588454612695691219961805266718128544599759938775447202675022496523844493503504303001183204008433563708995511262053586222296998254313143173031154620369766713225675536283817268126719703380611494679035099172304323371914260704907209547151917503910380090087034135775436439994013750271290125700638009252747879920474277926226554690500003124807739271032071363841202503759642399784245718141918099570249840420623276877181930636579073674153141131013030275936794901944407615579132303176823187137614194483940133244938379631454721602146512356950816587008920934144075215672392990657154412377479208005374957603829013938867243947820119290688955974298115321700064124577423623402198176731263392849989074735100550219245438437384166506418622667649105240607630983755877576085328039263586696090951101603043055691178209217399656414346067747199874575116716159679239198548560894007041532288259114228787867530482068809309132391862734493683155946605182751983629424503099010117877304552468289305425628079922849896511855298739940168667955761370537621785050355013943495184173718756531809928737090194486913303305691614843354348111589732378266736737514674783679801949975152540545709998730862823130568343470918932322289607528746911047174215005021867942279071390620340317092926314839044042648157572073124931520384879071040077907277872453969290824544737422472123029778819770861698135754363313870573120831244438638026458551065050758824116195403871073708210469343886237379988764758663430296367772448940876648365827882304211527040034071137031943875242682515871073007511995380405822087164609563618086314577886021587257977350444849186793560692728719366206427328325471054134354392208879404016615176516510598303062244492903964672338992366101561365387429434956702408252725725823014446487610164491489844548037013820807029224045547774895490271605416739126011365519174541492681144914814958053240981247318918738844113235082067931832018521866845787316992401131471143161401908741930726378742121438232713638617251734830101428869577407930708201567538604165855762669906574988969632789736810137371259739131277928305239363866566808824129141637225591369218116900619786537958702964435433155501867650497572516256347551534131397138362400001900752322101234929427390931090754474941168012316422879089895367601880108610980471637006782096924941979194752183625086301258422755717413776671122546635769535147588281800788328750258665936673445944369420798452473091684159623620199025065288623697163259668057038812029067931520806449079623161024606369992041189427953618013575876677711524092983097684034861742111731218269173958072735631177801719350669747018321525852662986250905955370710581159119478057695117158351409972429303276763397948270515251218210932050162629780816426227568124433273418693064591848114190815959066679468275635506010262556046301777337763779779767388933126393886929973700981127333589591899758494940589566815829611932615153644774252277958224523847519504706013545427474523665928829855695147379372209090553825514641701293825892424798428660697589905101678268439311160592407668039106563438450325210937328987427428564503946118692034646164645355713369191680516673131928566839787880137837634300911500452998202296297929855641530721610401061616199209249040288715262314838901331085710878607409234749379641701479031357731752687491169032817969780040770054397166096117027034572179575632866263363014108705461686018312087359870176005379321528337651491353915786704732773266671464184902418401987569429072466310452934736147512186211880966579212458990712452460022853045588420056782683865216822067649455415177616032128368133177427268514399193668158893094990324712860686027541662891994991430687737142623117978311620946950889844388098146156178107083518626425127486535206758997707823699607971127653323406859424387317782890706613478168512842045949142701198428802176685100091812510036594430805127043517837752283016329401631453209140525340064809416069366658913120016176745776320307890140383721333080151356812740751067331803374666910308839981922408072967667953306176931745408097839756079118181188765821949733719884992386637310134798467512731662474133165014017678209505446971364719332509774526197194635234382020945573947939998011701794773269321404089403051834517922917446675571257879362232597774378422662651601338481480953017312813178037683548416083322045292629166870715111852241303141609051603730656622865330008423431930789646314643091235552131783722379129416757173573579414723424661258117947821759841942024311398226403847820105623224647710030226250182491168806257045259158677900028777036918877478699278049966937105873135298660445594182542576767457775595524413349625822148686129696970856004670706030129062105354620899644087491854361011592772973748314225662283045354869140528675396449368209740587315324933024730231974417945388079388767393267311651335812152524964168109668278052642157577972723653143729489189324115606234371649585628193344409060788416943526488173022375676717709422072620119306763274495022773082887719565205758210324093142539941675441515144805640356666423428121181764071219333319259920213859306842341993715340943718298343061518334393103849795338264958464384599931987550532068228815091971603818163039428439444005032369393398657842836458479586688911971757264054142600826161430006823859893208155791988907675090041948884960919188923622250671796372704600789290510099677467303811699393797407427380529639006664857854238253437046847457560266420821946850345958906327647456272377209446526560478188193461690357013486190491612688539162559991974504552275027460089426965283416307909052273794163193443588355809830248764434604304072062247785492682200200283033460329714327362429931106837329132402263235110289443756882196905172186267866730126910673461737879235886154089676134891483271443846085868964553187819501857372839242018279513971998512526918128998464672436318228854113432900171025956446730433212475486596739702222107854480944505874645478838108645131935366637342977057214175910603978024897768953428066932392874497835861126255580038352262733757249363302208933095458998517495105003602490978996937035294184862231718272971404931224339658097305502949227379387289223878475575958485357479895143226489543326773744773157941081772677826685799158987027564184098938089274850546622486747742664010635162335370473326649544697695331978607565492856716262509543823909819212943504766776438856856981681814240276622720763154179733957113638812058327095527160125613722057506792261486837781357860004600742237426483342692893858206438241713048417446769249380988659336015931105836036333019724805222421256642381512538463077666053975234192690729833280231677247590427339997782669840174928035443862787494234878042012191876990864781703705246057440028970867403382923532768743576075072263145738492730716390288389624780074660110865673976102126238781293642652306408186152249277149915348116836353007223178525419636126782317985875196651488317035965779780699646698680758200872467115840305029206215823067907944217702185293223721321714385828955887922453426349738888455302477629826973297138193213600620825332751672943202109671535395466720538774825790441267431039526521959138792661231133882417259585069819493049562282133930354379011286643174676280087373834384292440421263367065187372117224668195124538645375618985765337867031891511185140749848667486355961451743334111308976674145576389262697403202664048388425695963890250923508777389450700555100135004455474030922549791648530255513284981204459492115805652923791164052738881769529272535553112790596777073700307334661398956300384535271932264555779608689383569317280088084239651812846291650054166826638865692939893887654005236349925317695750973145360338934225567436585265246002373938188164460443672943066685986342027870254858888955183856595894058612646103789262904446693823753399953763693850778336349212750444482758725305109372831521252765257847938727723050882752385246890350609349438585090227111614956833883716021707306035072638428251823515010827604243548730217473791390034977152043823125061443396535755567499853144935645205577591945534292815917221264459141049289872333768256700993000308961145499915718454719679171048763748062456372400427379191073125452966320241003113650028999320514408627775658438632837723460074608321821553977627685015039104939916779891280395880485011414455906861492191193974244770085407336691865329910850374648486645266178129517868532721827687511553745854632787770407010681999646092744445673821487259078559236209979658901423888227912341363215390174568316717560289673238193586114498305815385583533074296357567004236121063420320738273357655374555313275073286882166631599619526917502024941316316720607007354355031783541882931728773958447692471784332287287504785086857769143615493154582417188976979220581648530919693343527315373614052191267788414990284841604398137911447766624603351696180844287624400526816138013485662105479328132888016725231147914407793755883770243484561283263282209832890644146513430303691921249141344404134578726010615973486540807172958379099319555199099496552317358834243308227950583393442310147601679024772712246603185526621414094332090826732004428523763794483734963313193541509414256883388620366257973709293101366321750777146895072734874322690546479035016220098246202016134718646616806165592184613232479287653351068912518536165911186292647452970271827386098353753996883093245591651871946856621853954410147962399608800470813663672195241031491405928160773540588579545683387675091262537767877926709666329865708676586047783700470933951253591756225351216380235941179691282002246203283505116726020581670968881636160895355952982011440848347476264765342843571659153157453277590078871999604195484194845326504619470175401379428131720874503175801281996827128478750295250202732455406131420562174169480508063066185610597874856226522055707535625369464991375484340002715502292491134704615986220378504883348969020297425662738065893992653849374854675983119522200086736015079671723389926649528466291003197133555975426840145772757170134994279423726216439639772948717503635520931610463322901601655231002750229931036280979896065929489012731131765170644413310254121583918401319627416104414082373053485046793305136040283864360927712370846249835207194911206091534119764444561398388510015978175729714886615402692768636624004242436948868120199962525171997812634199175615984481439273635548663286754455686951401656426488728037444492723443648927999080498808768361941727028590186943733191179978945592382207398177069616858121341994845969553893682557831098241185629278033715197418693041527787064336945546962601684510459840527921657192751809262550573613392477346081413178074793109409623725943351246993353920148000418302069209940586100796096331831450788633259369437054344279270278290187981063913376281415392406212566443806174413405691092081837955280463876541868409839026622155544585097792619195341368856367188698112787809786206750588630154991616363496426826868298303853581911756873233971385918594685789116018525449148594184086702039187490553433527230350757511066560458724757591724253038813373118249961401555779245474552458034879026347586323752718826540221288562270005389785197326226613460053006955332107916654925796572217959601733732544228400046169811788705167912468871781082201172535113173946879180437952971892657549068725060200228256866619048320599884720998459184326934108611767165459117665387868647640903863593077867797908605674676466220274521901659700225105790309054876031109290968222868255197559937876657514366301228746261094900021699521728647488516110594699253429144182633911523995572190267159865421959902354244438159120443938186549969351086915662342625604159630457341880621834907575571093804586014058932897674498790861291443012736545067714597498949524991704211434440760015230226858593183804504975253400227117124415631208042882834243991416618560576344329401868233949333035618526748289515292942226724674934238400331193467954354494332890909649775355754761727774893142642638563702668536882935898795865609899390185286450571549434864487697247501494799810290217416665618984138984404345564493579209146897102048237525261023422765726465067396761069543769240933196629916105328084477061375469463754421521306538022164066334997983089878754489020319476490430560861330170465596726247957992259417789361412330301909945324142951972075712654385751858034970348287620871139526627339283315110826924074968156198861109589963986163854260099056563645358823753670268090307918157872148748430399121547251708356347711503448255801080475741022422225445363726702607600301510384671849100861478196001936792000811056452035298432070208221970108969264414680559889893977337418060318897297100809242432065688759288959594478151654107970667373302593692666710736219785849771488749058103693443299269516474431410387138771330458393585442068424668527959543129493304377527261741829310605288599898337395587916833822217361208438948314048076745686085238257176471028484626444299619408025024235069966963367398430941021939377533654540649678836442548652103529593079215359185798722085075796946326201665345077877244959738270979323046105448181384495355330883491619876529349470316397138034883947838823122758310439766026345802068624350489672930578166209986797843158828634244237783584654668902783561245571565027013933462785481638182816421425971487601504330761055582359787332044295636923801171590375282509654172826887664220351351911977524670780082760963236634918669403774716964522594804683980100206929049575995344680449110282427181674361817948816261278919245230444556427308784110628433574170558339208148600765909632899440795613268631236261505787645800485826553084116895246703839645717358173512570340399314682758862435526638882302984566611907457102304190401285433540013214051109349231350295045068893040079991028356406567886548500083429053729595423775824414332620977176503325566522123699266233348610156719382379062613429002347378729214636555086489239082919773521875622393862339033883524871776056286143247716766455418466148858153503599587501321767230306998937314733731229613540042240623944353034812780464060296033787885110828199016553572086954115447279932845800640639920227885386044838332611443209291769723110196950842280372694834017354840349990357774038336352895452389269030535638636812681110379332850048452468914230565460215346065882706605365318587308167490826531104292069352922001366020672740969733895110188058056183219548914061981942800647390721841261855083276288675091988450425219721107234525378248758777734299420286027534658687469874242575403953848823632626552130468642337070584368194028632208678873016631532064041260697768476011755527106272755954305245885602855721858841967518737716065348948391193349481972939091744977246880277626432415745400152380189425394224124913218785301456523602466595831792178206309712547930252410100102364508387158882832616696656209728339691466386703722099141623043380640759886664311613230892319357446285854563539837923116121194207942421875049875212312721815374098702949089578739066608545485853332644545278263006588857095212587705369071073386525586432561570776488950811985487304939060103480891207153917574166893719408272688293931082246743537794057313109567233554095955536666152061012385603763579449530336128880630496067638624156485976922463179272547260414271433762718586818785599248046695222938174766384115395100499622272326692146909950259409024148513065789961539551591489089867605069471965876526141248872180487733135184971347639184070568107057376153093640365228279553133711199802548197466844717098235095582757747813885689675717713579128260488293871840381953296378147470054716512018188825478412929077926418603873796920297495234083624913437806300969580002827083995577160805759429739934789743259285576843541447311226589843889577173694499063180005869390173995150222782033198075001116938026407741344851928198841973175313885864337503748479727627940898381279326902801774755502235783817163802946581532768454712116169252914831237859227219736262556309713554696548660482711128813253693473205773013310022979633501737786654885326443430462750208198119424817273551243001087203822880864734745208201451485136751595712188580260799686348444418979394284059710336466568921803572342876318325599240293926256152787882747680060557107754331019333059802732852385946981251183640480551022231611801607513273976406334323229907591424808443175906559846876788953154929196191063065326372399412659226865482423947197089125678932168288255604960370472651933064651785576309583893619906504329868495764206447054979232581156620134281509327100616280096602340466293858467286103334960527832244934538263909282648017274297677493658536895942023492709419669184739423493311945651823759169247716648931654604678654830332673735111107284448650852693627333222088132193529958525452843237135311109137776634954167564660608413195307175825236701976157272808672879218445606525438119045554774975307913592424503888949508307415559755959307525045166637661323001617312926756271315696109763888930503205707505949176526533825508512674849924573767450186137204997542733831044648510469221138772847943628075697546713479378465450536336044652770750747455182084217458604215322091950434435451577685074142106689653505660959580941765629558761339740528915124054320687037119906477547638042140917790288806492259787363744978593619848493941623857031664312216877133282494107778674443723871831538501004871553108490101587293979521970643705571518502517227918082873406354479260890224907803310757519894228777489502618598737540245839676257123923537998889129048327928142290835858549203097893103551446709831138224573404019763010577049752398583739229322765810358057671931322658785845483106872750413425548645014928327330120017354494227632827224858555948885821496317656885818724983382732805787182339745317144096802995064345315293814531445051655320568940661251563818288791388283770800792053182138252746355151733024105947859328147029352732217751066809079895184754788189763429703670238512610010099876988353425815619710766634062518877648672966942491526463173052196604560171186208443563880528529845930333331980432207980812306985378604005641936675916225199716234644800201724123076561876073306380719734667122678940588523379620829052107926715815564611309862272964833335074617364408801173746420459802876820601841277354497937518520136594414995309033787050379561622124536422602439530404377376088804022502322491865454820350350145476267729990618758586145303498988301274918339245490793128636793511220097459977592878573261076760642658887089023976602207243929316928626142609764844986282885575859023166662577717392265667412914685259601230681906812950433210453976568849898092275498053318554706542153545800579417211968154395547550955206146017072262982638759207042291793632142409381446829966457484399471012968216874692216797507389603874149456816026073275156566931784394545164007106157137636915645950305439033514101957156094746895125571998610192294982003280422427835243836378600652782119751003965564285210026481154162192273210648049396169090459776757799242001869347182128499783822735216401427348235737073237718874422386668380171725268985325674686333557358180229102310345043281025777224440646028151342832034381391421487022924802625627294272993976697633425585120064194702958860173637005057609091595221056818513399603284539290159125511347274529268402082266864377859044480492925553021674469072748440297255680421384558068975290042853104075968459973286978460351316220215349120207091494335756910003497548523411548381997536217483878927893995530801480006155107518718450203528661990812919052960229122286224570569072127044831520138028217305150061573689305931805138390421745617129248669415691412250521304740817712636974098350424239016001926609669775332348876487329680341103477931894192916762431757586879507333606104765733691258846298711390765507113146764291038226848098721679203012768181306138021377276015419491697278372783713787291071992119816310894481990827363506862338007319551431586042109389447395129070003249195697934201585273290882900887614063507370165990477833622607551426260960578768323137670418462677891346196751805813958745048378711182992276282333756585107960866540277920309485281702618236611607359602523981086140901457190618024508696826205431568358648584026146601202772062712813324333286367775143476196917793726656710376270036835578768144099341013415660465314420001393285302416069978057860201147587617181861553598887937653208065588865744316131809932538842160686999366727545347364530839356951120261639034196976723321357754448640788365879234259225783877421861289394856683391725133317685314487159923228314146604400981187942543794735972481792045006223865743006557636188829405604622375746650071053060853704773059673423829956624758457658164009523954553207045963324142024491041697489153325481191650822372276693815926613622682227269211752781942442264327828019885862026609970345204106236542729603490053059665672424580563708885286061938448261634796191679243413466793315127443241119560976527607952604818399351997003990358379401396506503445048692503371630947879520616053029978561649402493548414654557236344165251493404665486407483594104152909915024357393540802321887711443600731176180660426282612069637481290032683237793517611087129373111631230039078245754478827219418711916691496078926024608779638982806466747806577023183808884756341723856556265805225657509391083965015134646634176535925907728097226316754157536312848450069885870101186891939613589602022069030771338881515549076182783361742307024444718396093659770249893558615275387721966094783886823392548198092800389620806733687729096896626017920818914950291409093071664691394544282753449657728050230380273440233263833584631855662972145976145268355588034575232002880420538513061920616488075728220506694825902755470381587616756050713083252732814231833354071935501514803489644717774937669420373081461570727578550943136323854609670825569110807366230806412040722977450394897999358190976718050452039838252228161095426167989412287415560657032578922307262660911780014846919242941939725528633574552649925290627122251682113650914027942525595325465780733241566352107799318268186081672344746588143102905164410297657226211123799251375110076796692168669517155524535345651139379943273088564217576110400613047297409238271443579622390437532978304937969924412673310682290063100689424370704752784517656785695039884891163909706879441167932344737680103913778193698988707862677136633019165390459189172651870961710036161105652071214835171082859415065044938983794826592910189470007255804421609798803322360558128418381906621908598037919727501064925425041326228505053732771303528839435100793942116149945058107300635664772419961848018117184653493330468349757331249781326405256606279211257029076512339699841950461506800407516477192978565158525339379555207133375410997200092456462398271562356426908918784918425846119561558111499536006503341672369439715709335742474901192841228897041834706437120212301125789300014025731856863646307226305585873065327930043107486311088844795689811455921246287319958799696349295442739775833238109222981962474516099523644673956218722735463869854397467008330779786301963608013763548659788533345303205685418900538817462272251315382242938600635131269445448883322776655185620396896187677826880932644058868982991853297511097619380809122497784287237634015027100743888875581667496409827475591460855646105009616029556550884450295047781811364533257594471693273541466622813062509995110379748352588781027042723103963361475688909353647748451302889045809466155802121113708994065737053775575776194013631687537800593343856555018486499075888985643787203640828443746391302179628035469696879052632567483514869621788446061008659414879324002778421075498269667144711938376401526062359692874140690951493637279715830914227215882891386312407860667700498600474933277112733278618654514802625340918028602640620463072665258988626109274067477597454157807248435274807981593270834332961159914874990639690738149790625992767990475780480286826024704541217075525026629444804145539663843372039111235334009101275177634113665730649041452519489488381928431827792081704603220988563454824537802749556518412686874729277422428968769587179344255181295616267602495786745484662933246783569431781700419408654576922121315077785680244259483484292769853800450655395210420989632712611786837090433791295017315758950289175837425320577314882799076624976773745584635034445368756080771743001416975881020031376134652027956457253199870503399827262552014594056503626396731163280890603118480429419792494222063344615055147601375966243795792229170627191354941398445678383764930913680861994299903417389767457250128310015790238558702675941832717167504757715619454533283885388745653619721805199134955139703677057001602028877935995000551100989998276598452104766394710092948385198276870548268515257662027464867610888848748141421135962900733651163948998211373899655109771476961665468926414043717828067877434795801325314226524936591329474297778339070001738376636560614759305970440001299015649096995156181034779478095993240094553708703230952079202324702116285972578661360189732129863042549319715105219378528861807524167062526035844352376387320656681449825462258105215201883819392324871127549749897733861025103712298023432910929495453400653667269008254376877779604685895510700292300052982029985548187255260958269501256051123917011483439071496802181713779715906222947381730104364923748460857920651539644167315959359996015016222965835912394976646378053132516083265399415350410074865606737589232819168234824055398905172387092706142801345505006458562455104587950514758087547637745522107374878521570019306286200881112849978231872904789429849785214839727864302478299572387747928134882227941248174444511551292089695863674655073672869108904234936080069645490356598653228632123349117567797723484311038383818459315420773065102275876317372977933246539966188331438847619208662396916150890334160326511695053979850601248597262509455146293550660727142462979932681040198984591625750289839256019707317534455864600131710506394030791899851885478750280866281917381487976125934415173002533410537661214469446223148164703937632692255751919055828721177363078839342398937645697673691276048715312299326263140709030676431428664247735926156964106147057756465284976220784772193106407201981031329264314353369172128100495323646019758879903769739592248693795745440008271631432284258060450804549877827513444539137956106998713905873812503269149060273109061419568197720920222338765106491190285616630193208849676788550274163757953605095783606360354096659003834462475471361683916563925739066874568091813648016802406851851753952491602497123846035324525434482435843310110373940761329636593599235667377729093477810164843659291857291761544383078743558765043157838763731469529358407405221760255307196085017262889548445731529820620209819870357732824018028258109912342031843562502112153207881508360873707294381201464285165303961894933711080439488015749889330967778539200244139891144379465337294097505301240371642255389368740168554232125606381443328381778867125440089216829831913624314356352745498159518624397316554938858793175247507814671276317514837163239717072176593333681862288785633456916003982026911923014603500840297365809020278139912792833724026746230734641482622563553942139973953305616193739640028583441076882102655673976426416980913627888306036590104809370212337138896355360209251876546264997367231973821608165015649048586652711722534674877278913006630818445174430377827247645185161034837479981428620728660675671004522574544536777082597005753778618625564816540709902301238960863707607995463225380103301380330237899196261845577474321853973161486421311923315260243736050130968197321061562015058719233432377697492296526345243435720167656608017872267231210672203956405482414358943570475695054733606248916283435760502135262134372980953807693264989903620175993124824807098966131806668451526119627360096799708819141391903054263210845234426548855520255923028861311653864237690911217294139955320263922997498024854363801191234986660916931585540798766771064826212204975635120741837891421157327857238485064147233136356552513052463877350459515197878803815730841715435123520586695774122750461608428070556077758928154499978205045974126569543582510556006154596337204649587154645437215654845226452068128413922706844371916744393137014679967595645238655299092739293004889194804503858061866019826720104368362439747170506057329437053803280409541753323844161314284684284804152647429417288015145947039317130281286622959022014988966518083630275487915407249695272474992710429875454041970755137364494670449951580988207525399284097231699375085390476447218091876420399905657666084623603234503958642263102263004924682226250456116291781806390571981620720711510914088215016650245425087800256785524134877608454103219090483418450458275104373712497842841447121268859889601880412032409560524406414730036731901678429559792744189732146990235232797751497242623333974147311249476940397098818849923265312741873419575881516273210571812681606996230310755323814153005206688509762563038700902838006379539789501894287015140892661284601511342179326974626605940659764728969781355672373406396110927232698821504647658510118535977812529195339132824008983217640805627788527742948393000663241930812392458222087934125551246102689010658665382881895276756582674196424837160945207320817352966912116711876047694470479411066395977826182202021752847898482815315176621861916936120159398060188683868980137582021732592603232945671605911552102050433800755373347114821258276783343337923282662090699136614920483551410053831258395031125359690139073585407200897186650009173294355504763463883552369898334465173204286750867631074825042768360629600359484981543800706818417484279537358108459864180393442919462085359125764273851092207531146520560704134575763977254223754007350984862417108452516812677738845657640572690503008337852094188727192537705471459185169524890894304005023891823958150337972448966471298599319340324586056680828944432085941307111983414024951904818051965661595207249153622872972657567496157204927047085922420089236998939827374383516962405924436582419767729591568556757075243202185268960298803118498654252625123461334878600648576700974869815220391969243843784635660572667224169274860902800626251600155993307979903752331267150818626720204463223325885242476393496400126753768740416748297343294270049247230753720821785769936770754795319443876785616321950581349362171389486100674450472589146798929396838067213594063188164111771218623820079564443181376565348536174385485571901663057490036993712524491819466604155185736992522297355099186783981743997565343554926966069326005397398653456802244086075813501465162298918553243173002235788148578435865244484205011548958655022793592713167806804236231177867178822817677198920623007385492059127942109466411862655920340978721506173621485386388784735552914457376612610074350949681063085514115218193377631727646836381596757566128192289909242102953937033693158355673701347531438578361800195273671394406734340388375868029010997100930695125949571434689205155944677979715503829834376037091797776718386000739157897357187287864393832976165035538721466673823998503537800113406350004610962708030002477983642883257101539097078927245953815365012807894624345697743577497075935970962170164329275726728424977552974502466171606304856888882675614048009709841231915010192232006256084945779429325641980115275928507030376551684439157332140405985213360642702335738001178155315149626328309467035975858183342131355073119674592230828407636310615448929164303652880893640660429601324768103475554015129461872767059912242229353940753576006266216448158526660317348321312218424421241245879276865193409231383756546727975325864300742194140744011257400688600985262792595036136297185385329933669653230981981755242630979861672335132514727740933239999424233867423787931181002173827364013753224227696063999677558314694492121230196018009085803051775099712949274591669680051456435450951019797736614264884841386628128501902653023304659514277380064550134056503133216005044936903211074760055558266255637035049657596106423478144630045997499727626551308676466221544284915466294184265474498189426757253735080631475649320641085868638419120992814050313751951360419060498699220682511672286684665959128178148578724456773124643189755087441438269570239704396930095871875423049738503005797883791139443090140491791826935940809262268647015898722779608083643908114783507102677300994047313807228883400811675246836505786853170654858294257249110048375478066393403897498696873085823947857027931038568201029751410717673201055803674750116185522677849231215766298341162211270240171727377171247333096010090009708239883136748175606830239636261266153870348795447762748080599619882079927617291076862934879331870631836020300328992488555925982880637997984408913621737936030509946779901946873222707586429495128752811034759457456938573585993927377928049277643451652155216450660317856129897987028741120909046633159233515169810350425446616216499597888249827972294387823536070357923502186883405346886055851100462583730214994525144264038975832881465190925316147261199208865877188888663896277830228953864765992890942908524248189282525984433372046129880214410371719089482279518894365575638622066546908433396011478143951235570187496328859903493259357258640753209978919771067179030964416703775198746000558327681408298456545767639356739175500007544310974239516141553163968982174939572436560440529489533674519807515794126549364829371079235669744572599456262879137395932936525683859181471444657836778163493701962002341528747054912764323494204966919816525811943917248665955291161494596502065323731133841383203133974661500328112054729967987894169534392509733854442363774594392282726284644491959659943194190139102906515950155409433634939110244684741148931900590876426803956410173183489997600063871270963396479137811232758446759766357969971000743952708182524867001071206921775552349356765138205729649679014812859742727283177356080319513649338828173800810502726045674619631207821465709855428309979088111407749725190911011954152933698200141617124178080129295690092577587045361869359806936075913899871983198530572106987110995614652822034537410334187977019493467012343310443038023104448711114116987353541597232764559604437855579469115165915515460464050864196924808660191920357414746922860217961467456434459809943332708989121359960039353466735617520566102261254751170482241328803441156740555066397860201354264693686568999307069958864817278516487951657661681915552880248390728326983025606712486168305838166433000155529724374602765860860761984350337928425116711948718385865335232650123979787548479728039023230706729695358959632877969750963945880928079796183833793880590805356652544015921415274421078702590845901760356840164234883431230974594244876818483962410302365223500542759291986178382582326300033310256392304314641924998529575105007904807535349907316964401524259533925784015836310186274757402658506061738265160985632022835280019976137289295044261834294687518334670231253324961515616151822790643050800698648274717394601016324361964249222785978725629162455708177375484745317201948261092397045707301859434799673419485138803434640172916053198721028642338118174583435775139462923713321690598909385881200510304850039982434281892819685144071547092098349160706296451184277768208419520628900282593208443353324827665968320576508249511069217073079905411434898280000657827186582614847841825228225505303130670993088684690075192420734372719606506186299576353061645232415703527962832371936897162418502749359000501241736915183009853944886218964532884194801312936295045950977528953930647578906344479009776828301662944767493510659197153990211893340696567446516728779200977310183028943101668758939112557545978206801406409483070236811295225924364486890287999370581175288952281192663859799324251850610686697227535418324246022546489192023168206748248606722293663060017993661430659855906680281401591886303720466699076680480607546166663662264012631223078579245991835132793550152603115630983099693047117996099564418953161728595354752108489518482525573500044266560244963736753903414895244698728183797811897383260505716386504364772796027397272674708692880860730809988734635127572192443200313107630085701207980887991201633834624240632374226671005696066527163602755857511583429008103706016536281826305389644154666010508299235876573231572407612167333424658926802829965748084369373823657027460453903047616353055553377395185570138705281404127320908632368545081638257269666361047086364113410312275158887550557753152549853057283691001367598531579419375696532626324944576084402039822267974945788444617219005206156088050612990258018785985967226518167194740797239038934514357400048512928885994812691832153500159362754731886518032395122504821356506634434690717947663088663435138549883905450807676715901609799058546789420463468500636658244519463279505374802600077147825470041536974095716056416112174845979407472041797069326686573303768956824809283006768420137261156098746127761381757846563745217761349247137151478759190204507934763435963865260984626185410817415090322892501157333754868785305222539530015178354144323841377322964216248866601766405368410310941496310279042432490730355862338818387358387770904405245375530941288744542971818092242983774400507600615286260905619244254337703214045518795651298636027563200378078771955601897044400492356751381816885079460926806685306085086478152367715103969219598736149609661388463263118941186399139435606353823161675277796484291035918652255433258826730859890332320038299988920755925141462615781905005997759423840160366376141667443378261095281175909701830942959254679209808961039917061755702488150268325680952642074887351324511917754321606541375912740517930690085985243967739279983841499788325807978258009182710347015507361260408579884795960746514060114381077914594314581225141703423095658225320678952018123971310048668432706275303070812993183666455373775861898389375605449145755437442478917081461543801946731590857663326348264553732984484857786312407407561812260388135023859327942133478343873418058144482961046166150851470827223189823483110327690259460796000751981240204192783567854692783529001258287938355023550156165185235909354850401979580277974855608026564741112949830261282897332296274387387248588384994752022760215887367591227777653616459385412648644843349793920232903827570803164580664108259459750768853480436699595711826206395435650543298773493333472736379295968890908795472958699059959441039289212825563921981447111289681943442753213430241874133836149613248263785524522020123520954848604296799994430916809988438298774415150022924805314701675785103705344655493874621350134347868100586705014880016059462772091804357885641328800658113766404617800784819217250047627181213095750382642814615599281034922802242505275873378828286198490226535483100455845426133358289184766755725664989330422684948146390532001638618732797229993112204131731534615893676046954817740722441626317412648477883777204894300073339873572643699568296881072276431321917681267474462964453354220007834879369227771332005774351869037312962183939764673162626869753411812007563668296829039025105104697124791981760861282967469144930409111827643740502604428612146090559456393530086354578532547823339732385035071082571682931864216458405958326982953948886563867815110683099410156455534188784451087593908027439768754728966834775961136379214329986544339560599979697846152132124725438013316375175641118845802953578024176853684930002548091632822362531907602610599146705851234209006533508331408924893266653937437220226390392262824840267423600352687472638337761902464377847271081148513892399094747327965086796156091900348411412472104625151448859951501019568147670989132070423229723558393033797158707252247086426472407003004175120164127643199812787515753522725049773972300901261731598022688443993247696924938613376269968500183449629301649154743620076950851442453503527060915010018371243876217789754887410918955570309854806193579453313629975772457581553095205207665779986636325878086961603819126619445931115796694497951181217248121780866631361172475284380649518659372641775653307130017238132540328429127843580754573640441164677105441350232683935142319029302636967844422059329553123491081088359866114330993310236928959068655100604897112595301234643991893539101471275440179107198390399818647791637513971489641410726557427868273599434240243043226762838608124774031625456553453592139611836659277132410495974885350067110423999722469145034119486250872740354868514623385016860803337529722819923336577000218723845224645723775199503646268451060905621858521594403354604697565086693265563398479048636102895869752335183664306361034717087989762262872700591588662735060975737601779832917913366766563582606306238807377595629313075345855208195485530351112862620847924276433457199159386072119473545565790433567791266122903455195778987431752084058221995643487859200686316714058835736032665058979726277655568687062882373646279100990013635707509604645867287754472080509950884083202189494274222452470831597047159232133451937796141755385121898225130567021046432502164832468177246344748510938144307231218696724902290844232554741399637008753843486343102110449606194270564556499307509125647172445213998716819680240296538838777399047398864443815140686510553837707402762309343568679737829665384705919371816306490693579509917382049394064599365143030791224839530585411445958666932098052261754225050741872988978932628505410539977618518626164636289236623952357913688598369283766909645153411293206688024783367139446953190803710214597516847410185924572728100330969693697942839440883334011190438572039666271233839761243300430697634799024910830233639296826558708699693685594266602361108754327610468087484173313159638164073577058767268248057638254641772341429195459640278371632644740979721837569858314941593445009191595593230651034131620411555988520155126199874929859237364206303312577864467328427919120290243507146849585974136285600744568389279632498045927525148748432779506360905943284103737987538601579429528966966235198429938999783459613443501905189666280141362112655758638522045586338986622063559774615215238530554647033114112942844896750496462978467986501308306908926264834715973594528011358067863742407236055871361671342362846290580190246976815460250169558271747941883982813117660778364950186427566947654436736328557303740944917504656550515959921790400432022791760933369415178683025929090384109639805236996913924157847066955083335318799662088799251830392767489523625710743702939577090468792806504033151976247594569299960313930898066453279175765153420118861933771857126177194792655858693591837235224718709397860189704570700278299568371115568586570763435418006135092233714921904457174474709811602400416385042241459098553447963922503527078041295939977630385880327832192622016250431408833254892357391122602077151071076904925732850181765034855738844659658161882045796436188950776885866053573147940743524514648684896069560969864833536894511482999079542690110503872167095523835385062424569346882865675952776877514198313275866452783003851972468495540452060799669646694299802134369915277072023049684249675849032183679914486919666009485797358972907358651637457499815587805167333646427081080856357993842740517929042550657192060406901927451709667872833713444881390248264167721708907433150793041737919390046255382491666433854786240798965932069417563134360419393702777799343179054946226679157181431659573083740590267495293316360149342522266301287606258264862373689968783423972979000253160317707840301694974647722646651319291793365932896922691778614755516336068807518802942637191990884446035812944405836864999389316033777616275270870978884225970054888266317522835148965918238770613323361496565326212304147996855532103806342676023536599973851132713673068807551274276525052701998960085361502128759277224591617142963538288698294836283757216306095284224490466769627748191010559580787120919381983105904168862266487486718840381176307655049633814843494640982595823169313025014497325883737861903064145720595338303648376289467604542803242372457305713898756207916399259120990110819592320211734789291125650385587085698644009234570548539973398027744491267358466720480212567802095934736527770924914770855814966458064651360712836565970739809751669784085600957515265591994565772155384421770567423797707682655284142893521396443197240310618513396383314983453790784350021473922466100678997984585860500474931167705252234687267907406094799781043149289368568028615456213982527028088286909164121489412576759764574816807157280022609165634800707493350687123625785925677249402260471094997746229880363427460289612020472715337375371963175766433654954862584141254218179911704758842877711697013462229324479462864679133159250830018498386000967620943857973109507047561432298254372959797484119200890609552655838731422224769560573906788576974613459948868470851729895881475108426776941169276526366389333576645612250252753293069863823965017526992281609700620262907796528656006025255357762044150372717333562641037283348020959356711939711911574745178410437152307441493519399283556952942445518652435000316982200430711218968277197217944643194117906082006194723532485415920064816221613586054673036540534656721481379480261479105234975338834688190930900080227516235561035986887480396832969933332954975816369948329382204136825887047392127622661668926034272773637565492484335627667299626027109264581033373923225133674388864081874340865518021536564115884431257974762398284812081680745308836472723529257769881649428991134607159591149499273906883666029359154009434869530491399393220453839908914681684592265713113046727007491435923208774159447875610127684838739321817334189542543414013100273261325402771945381797187687655837575621446414278221837122732075131188316279514227261557571180392189117405187586051586928815257383952786701418019733527157381441857125021453045313052583399511441738657275465437140818031378747198680330309952614102604067746381272815395867644378031149845224593769014457048560590397687666968670017963171126399890923960560186483101154005516518911459050916615565827775064877591743932756261549626640329483380014835432389820125373406146287044676947937133464565762816943022902377280279638300989385329759008115436438063723457419525595396687217563676894248990627777597840932002068017669378091201467675371802959264927669377725903766907956953958434995878152365721519217852971786080963899342561624183557903817436631138830757303455573324662093392524759723890577642871644640345505869814855637050267969001838572908891978921094015521263206311961159765060196267181137548195067634725984432560470716050166872626992015488537276839622606888619263874635414050042569578899808420967051545739790364628802885874929680905864567119529086898593958275137742888426242628575364462297668452241684163201445189104144545278717024086885343249725451894094967106586910635177341929269360779998823296969556917443824866904161924145611884631438647980279603998129835090575887622471735256956605801324533372196870136677502512466022929399727515589530411741337102855490760905433450304604227433465438153293866137152371491749700021616123200718530550425155923495661941092934175901618073081993057419355008130727433540821499460677966454220525316164510129589126581697080191119125521253238946916814527332425122726617768528480600414325522976456781251295219408630987036060583899971520142064051888518581782401314151295589881152469296062070109199044202321926145191115486414007192639074721076556062340594016858724970005264942287258549629112870557012968600493926940378003276422304280833128414325839976715884174094987022877318160990351453212667257953416660157991056887127859110611970803262024936258283727003813278930314789735789779091827598142261793051319580203110271393475945793502978461975248868791097715375242103402878853853707815424409216169660848605249844219515198769689746210108602668995680741800760650116494752278496834367508536746434555421411238938336347868439602262343957646608929175624508574183098189928588275563909787918946672580700068732988297904696287292443824632337510480578036337618608894737568046703149484549993927318859983096772134240762827469531635255589808290765135602835552869731775881250125058495244332268603716946456299811173016813388089672442856883237110556890424446990909870596057853689269263157653599583502876052441445329076326709680778839838500806966411753342347385972470799109898704105565954163326045687817515100453899750582275405559636756767188554604706654294195900033304466188745823478940984746409104914776567914504716069541574343518652849996819264512467671862764439500356196025199172066604936360786712483054665199722894963577625691197499244462260466189507692407054426049584747777405586784937806374002986073668892186034830880482605890593902163736067766734764261495982475738079925216743859569381371638910459998066593986085019427280785814793533678094871281727540411352161588170640006431897336125161817745407088894215139198703535379009282315141227667816567857238370232053181508874088328737160240811026111307736339524315280805260505686892585201337535202540189872446285057397580408807851226882565172030102780065169277885561806679645390102416149485461915793047314735115630333495115390489260407461643306001637673544997522634699791744834331146400139185656190427241284811890060594663912607995795220004935088803293791848831685414155551038614308110976342139945638328294306557209725757009791144849241306162551587751531598415479404834305709443648163435018262573509487005097363075316749527952154560710685454221315224964594369426345724495132533842478427553427230731266228227498806817169336516610411346501074792939757244026746679094064010334342247403842028251458091243577381354517639224132919359254716993477512141500338724773034051664686294443832941270601865572146883987915726075888125147956354374478381944199420324432183649724950586743431728768219887262069395968487169030973002119297874681520407723530549097346755422398887391835869113141809347795182871741503594530760250925172537700785232979005631532616627403493911109132398999165549761016446080377579045746021120422191591706516895617484383062803972196819606004264716184393200708800804579914705622230801635895170322062893657763077911160794658774339018148650042179286786004447443164072268931103308479621444579701163224758785175944875456386915182161093188938631808354399688845232018015447194916484187676363267805879928213336008317547796683388367121092590318927779095508841947457770104404529982012681139848442879565222557553006313314063706338931746818101125320687281171155935394686288205133749723750446410585310424164199729362033082419603499787475359583670063727892911249922407836718093288889428915010660672753909359173420481392833678825118920355970993879657921039873748808640263617004486319675011045228057347144595491435845524454617319577876494487422730790472092944369055904703860222416319957102205389091528842930021031695126628848548213509961308679379861355289301965265464646522438739137735504244400729977102901442966628980710443511392434622262060393274486940145793676090534072515909586018131489281079838940140796058554728543355459040284304970277122798852878348922497841542853083464733936211897446574387635832575789637644025405353875844097889685294499411502456093383854084391310535410232849842030617581876738078777088829176492966682909170377283724425765838862143149726144641431651835063624576743988475795093628429062097397634976469789555490240558046674228519672139225550045299973505679605564242932945386058525840121205297344961712350867235437892206369325970227372618784204447812118155298632529560861659215932514134607005587354762935872587178346082306419187856407455366486448924972285108539645402491766121635708551114607532649637784980340745155852050302381002169014335041727625797853285565266543072477262044799008824658107045488072572534526638617892558209770711240160535756257066922658163882410254347957754886806604938066999099755844545450049520156283123025792048914690398071886472124154302365744203065330346942062172634909119507860036568641694368253256464652620364905455152267774707292283215662179028914602993022357999761399122249799310954946079691604354687972058893318271057021704920903511271987299309490145888389176635616163997376055447603664190621614988588861702474727257579316907353770306897137915091316307749385188407976531498642866921120465768228956562528999662288822532657233279009199693097317359885003426031484833294618560778407713238309093330710922901702284191262415043956953103952225249908363118797648435221100047140479020455028120880679460464736176265165436219101163990349492173112785125095284701819818009494879432093946050333707813652137811484124144455797685769457819606030520154714017187694785924180908492159731309812685201807764789059386647185580086349308389384832409418371442835700877124105235309096926823060292277869010339698008185193018085837907644407947817645339938516434250310299332295031889134105268960969964382704120058451306171904690852033611925573902929146484663020376872366097527532067584641966446589479941738673335384741566643426849205606605921136502752084019760745859156665088356949011055699569341697630945995006040609922784993554201520331268089652132396540869051619617260616312572877735343079670352386598734173591258260719028630091709699649392468735645979709031788678590814253475718269628431335817778415527266210182336441679743889619961756356987662583815854430697553369581899853833136613136758725635624440817391332912304526783941769278808248745857033570091039320897907122180434158395395018377764552379303412954932463431401143517099458290639262682718692307341250796773528055281234409833824003028359830350619823761453890085658341793085557781769120473664858846149588561776587660965477726461225514918452162728578628695313862862267447446581027559151135386371450142048281086120992194890511986024443105451707882871779587979051691575829597881291513123655775606408223094533009887867455961726082335373054055487908112421582921904442852584023528270636876576007729839895785746750848259834913117926994925045760449455663596788355977881292661507774058989011975184078957515204547168923301762627170118974348681431369057160684731284151075269109059070010360147992626698140820139552240497052998732786404804150624068288772252549298945573368372985474341191519534956427549052743115400196178723707312153611018482561409036441899405083821086545141361069187156936943629308560059870950809557057459415821644389589587131637389538516885910453574714175184682296863262321802870691699082289951089810009580791317804309426528035481152121466674152352709041002307348359227289216676209537526190799326158521505419429818620757026695913554013640275187493484641169418610257189446770440836438100717065808455843550511850158815106185894160484367580168582584429938099315844518462121540477406104420727191172572081371704371042513444057513909104089909862084153585925739798406983966096821278405752243818781341764680598811482612452535473459828676102289994389247119951340042189370647060079201881511806837115272236456984744887022047708849985636509194682064895088431189241888320523536106140287947466080538615894545836528279780649227949069153903919768261496210423234789556026742185990980749760406055466359322352522131415899225577530263059086372346768819323191189393034347155001878928067306996486149435124470254141064813203267436955269141569576493352153088360262508335629346923938967754628503223593516467508535424415154421017017078241073296993469072832576690750249392969682780798354761385734095209967348414342205369280137200462434776152211051645414132653985399996601089595676995442673446245183738365454502824498436331864210417020786479654408316682332445381199358112427039904562940946435934340276745057705992619180259235001662143912444558972071951576969328910190856383335708034779418708408777181470922244571756342307060679700289660238934649295357383469628807329052758794821839790714547958167815983217573985020227016973375976054347822698748465973913608515096117299176525403121601555899667476194412938379943325811034435058801497615220355481927240044193357685124526335172492887637322380788119103194803829694366637652431943426837096752376038258708618641533348011995013510010798982309727795820462334820974875546854389559390238188951611864454508739918134268488291827081309372712180622647204004733044394871113831738345824159982603258018733627735428955974849644175722220117594683600581797280910304622739640370904929095335765458056238744096653774463794948256787348203269307155549570167033731023490279068790499010493947864609972331776257310031108930923233438911265672825767644931229289790414803233954584788930752433808093435157288733751642786371969363458082873574263984996882571968227433578725432911703491385139650324846026687287378580574938385301984652997974598012645367867622401319119943555715405679366813573424713896376779978698932811505396977075453555912058089398139389152331573838562770601142088655781064334552039803700050849929749348745913271416429028451342035147744920975065125887334952437486869903092975809096408176852160643740892115880090663525357961136063674665333545300585179395434224109654246911466522288403081567201684941284442683522259961155409874144180212339733975236511583249179692569677932584585850007927085816842820588628211096753188873929517689181395705240715858098015688587412391277618153357143667447318078249520071174028468863850094234740575648649566788988490220831422512748880652959196201539091183587227246387953748268249767798481401901246672395788564450269507207817652681828906648632586388927447599101553338991036264723836569612834622643977644601537335264967398653712098006456043203610772201596835244714447307345340791669462682305827348892775043690867677341754594043459620777346842600833383612423210936093585215281558428885547086667260099813121623190016977877760526296913792071902083774073040591975159583408327177686421554946282243081474082240861574878491485151611638880943940007084941541156605697627222341348195952929649914247648398999682945363542723576035662088531888582621722608824996579360753419056825314638475655643669784950435484417719818795143808387849473311508427464252099678406539966594519770921124613085327973447186315683329296196472032373661437003568603424433964953718278131723247419467415643997297475900052735922892838812898355622810711249870829783090368495841485873498598016733467644296412925207337143805916167455199313901296488037577038982857570064598855218608027532126858442902567965057162500765900355708491164060410057370703607436398767086580823842616068508407725563579276220232244150137773067618179316366221094572637595476380535526039070731798606087656646309785911368781739515605226797481833867247122547676905626313060321054026516091136189951849775393829754943718389940506682546554714356881462021951629600880765757358773856146673239692280046941661997852806669888256849576136809442892459357889487076603175021204070215769797049309253524705600570579023678733413229129292318022143169628131024338221217026907557744695455243512718881720151214633006618171576993795786177976642862527189082701605472862704718986468326860166100510971126452080282291130666708353622231530909591732033153059751343407585187098578299150381511112531991964437188567379552399089927712168498226517939392704254399195147967436930736519278858221673214143981959076631257388554595053692319833858280401880088364289606110796205487715162469452439774445175764114929495643515424851696165828081521651272858553525736043159652382222275638887105347483500473327203103920481394463979923903602459892259159957370991919242467418216983672778942058762244727554810618992119922452133693331269973370451821815596579106172730501725767225510726657293995706677270409914129715615829088532417152426513691573469191096407839457222144431055075199439437893710816333529174461343904710130399790464362580629201886760694204554355217909593654115350340783226791186684604229222321791691173553749485555795433513810324167772859473265250848106459663858687192518685600316720388339041416221921031558817322202817121461311030557059846725751406077414667831518132057104914810768161144238938821383136254474392007784060033343009747319514433926848228533744583080060341626671802037542466965805951206365214393401503475526293317901364331086949891613041877505252333514249144064819216370973006897490785334227391902357339014144859249220346769869209521537799130945199757338183592250971277336411789949106890897057562280644347931993351029795218504842120201716555287241537391768503658219871061789631377398552742202484813519623675379841286437937340962400096981472624569872618965398042207796585943203673985706648892704165338534381466268814956373770242930863784679916621609822446680169413989567011991439801386622534294909556850822495993438640647535354862559219742837334557554825541761372241576697918145292619867197452185637757498254346041923671127701805448085476703020272660080412815594794304011961294162911947539266343351676692512538994546332631653330630299879380109528461353187537938211803584624788368826133203683964967661978346758399416506406310081434264921308339707617236764773949238298099118565116630841203665217498762609032752160637529432772535833987705134466893572824565745420780525482019807269278416532151558559448903185006811348418111329205392315605604914687940722465967700366707531254603707555788342829221162212019088717672884176250097771366821275101051538808097552222351094294410250819012321825821963633228223091028159312448257138097040266361120112351695877932757834267705736740234327250511696410189672277260177711618426376207386286522161787714705349470069192120628601202666386379819854284045403836902991372562966170581164592521129172560235198437645506423674760591773169136965339200481094619012074922326291677431872050843010776945192665063170539590793053396785870893409773729877009026949951516328783197805368238531585287901224577965823550064325043750130820918340955554018474120297481811177112585333258142861362288946268630425381829907045577873892119241812648964428135980159501059076780414749954786090885743744284930379292384628328727942953638609686178795175018134723690689672433121419959547520345656448717039482319258781607311180876946481975164057262958334281127465037642131607079283349792891680533256989123107188403412871079258557566702140135269628356559175591678185632487793723310257081599698471835695800910320270908657180575151517157085236320306439058064463092427059956740419505304160110236716051858216752921090968033750908829815525837420386564534661217781658615782669369354592973548070989624839751986515844728119981442155074685558397602612914876055506426991490566977775233071409435803779301582903565555135417965822674663269376701960594991501943032802482994305738093472070214536804225416616097248403826313611802871021835269396281003198299469456321857255349601086822793946848360867685065204082913462602711619812604314497674981218572475981306778249546971929711541194001659174589837976710370311496795452357502688332537253001274910603569142515559922013883223674897641576184746794754656310521924858980576793310557121378748841267941989606714858782344508462961192470156836290167850344976316268485497075574545585205035534224340550317185612214573042760189512358996852177380969281554537597266650156541335295890975198192165817041523948664096787993675234766372472176804388658116793598999828491507802425401974211616432622315709287915618608583570453224100841798062448577523310048038291294540411078202113214414775270777552386989501427517172984889433163382747714380614701390336588724565965316975056223726810657717691222743037632734343592435319558139471820264136052437770175532981849396512800067384481084440655090200636694591372153102103326923801634471433951491418302915226112951966092897288871553008746198007986733531583851328740854274521069159327876361989122548276722902707611890218643755914052149072973188672055654479283832300679479895953390760799337562318455588381819616128317407055191545933702493190248021777521865080016649287189506262742467547760550802798125244129045203398865577271240937300610575297704658737236783607920517587233896438428361144825284038814236669753389119524248574135031696555866702195326645457703570662665443319902531591079961853520235236632734956322271939272201542083499102809315452993358519370989843765141730384287608557440663569648582127683076206673436156795931721037248571980168512958485993198704860382108258652489172686431130344766400041503783400394923748530926765949404336850651403397262100853932686751722096659871398631424070372085471003401635398588558162264558512877383810993432493468721270804730728641384207555530960328572858319795819391740888990895492639754318851415728892052313454334495709290623093408013836319898223141898429306734837576409613150989010204851944768680443652758417761047815944277456433740890423152895556215459195881474497818113946782966202815150261855960615957090053200014792312354591209273380269144834630643019865485765004163673978693729285738709479141700244685642519844134645270355809368660360521147471337721962809343161724018840647576429562681692600442723824228865514323481184593695164187474493913986829609485778445525826341821283346427705645167812216321884903951080451712383946016476140191806138054372638851208946236062636875017285952869790859181649552426953051581622557737171566232741276207714038796918742136429423123618916633052987843485143111969103294595829126521705241512428681509399750871517714981648533948510484660641558929592802422042741229704223706441226606928414904900327460844729042297606797940107620001387264878907764340474539214794393872875177946444096231348694622712950732119877663786101526738658471088826619993371109456340984476763670085307766867018957366251353118333040100449198304930533904447725210662711805672682616481446956905780203232107713308400117460398146677789149117587485396219931181604719233186920273006254661971466872942638473025087716952285746351734016525772307901118291940103125205228717053049748065131350932261260434617537007950140508703458756205614341576211887476148252488136173148468178182752306213554816606960180770076026266897976308648325571287498120891063950654997712127756011063537837494087359711932929271082806909682185983678180186167143976234990386107343034400512410099263562361630431843349428841392718096177607641562113294968440427243864322484900291021603935684182695960640308056526068033249298947347409533786390167653640995602764901731071292251548674198796503227169700493207243188009577214255529294200103239479126807923515117842080780018049561272181603742059490418207550812322882612519380358628684470149166001087527331307906842718614171379459221590658635695495115261780845789151588158608544656455887907600818382438528067039941847620483013764449789347923844336446968548391504383008546425692233138462765270894322342436290553473767557878007817286553382424221750869325119701831314320251235446631561954798532189796954329987756471917211881955430724917329078781681980841588805666989682480954525372759631712580545409636442654600056460201398636777148626010649087862965664787130869273729225429552175595566047754784255518074097771079817739494140384683652147280499759580082642837564974575743362466508054672186808816842662708114723798201959582843095503678589513368474562430118911700640537023738389818494489233908923973007264498705480885707298432252806593723777563985222714250413920007727511401716500978904879390155919971541925159503597043386147925536252302360946910099046278053572742928329482863483175188315836067503086878850856057988341633804599999029504504091394230055316470745908686511571652467232563147126444746749361274050895608824710441528616845275579784156078784854699530926012796984013758895049448485710702851396201665229148969521410221149072564963802836761517781666797862897022475133915021779014310914015923018162729509682860449850479819661700726866181750523294045066460337316240130220754205680955028215868886207320429528543472173689404096703646435000227232200916815446384926708971477869695564309802373440456388833369271397558411677680099942890047087523892247817303404359032720926894786939731030744236857575026039893768849256511847835301184762052952237952814514688917473643991080620054716245627337584467650486047721139705098005908610872209689085664634452908211195369721306358452495410684759048783928687263999117334659433271896918553476687169794745718228567146920782426733597968674649383424518326092415144761673008696409601188437259527786124971168627702304151860705140747954949692605106521680269662974870417783838070680575240866247883911747449092759292163001878807843376504861609899107739098981042964994148460174783716695360338914027134456028628850527461653166879806679512953871278089008774074911887059912462018851351873534150101675615657930484004121181134539379762567279217112874246125574654708750707054710382612649317442206636134808394897929925280091404171590617046980238176428222072980506662079620635508341021148658977119343860793430636516444791699871936026351380901296084197119514406789552754766744376111270560971315730678165904284199716449632139568846518172287649021639835737010668376304672847535644102571434039706110876699056755706759142245937676337234082690239313032180415799547511561920380387361858678504489073239384968204434599118078756866382168046619027811791785193496787251853381190816297076467188961711331221003155276502387832510599059362545791126170054070435465940883041869863499501292316203041338543316778259995183404996555975459124730249845246368876541510241328669735960999336459323658934512147559547996066023135225808625458795645182669060375175319504575397614511832613217532736080500889498921500190039399125635566691571042164332382164496244339570197587789111025862877370709002071163710217431923029050870805477857040894636285941443609473076356335815692852747469226342070399784821740137522788184934992761022058441565593061528875884648598509493316035725822618766446258062527672137276100510502547733699392047682026512962327311065709029433715018184891471938542714165082062545968510301026680889664258293823474423465369924441867469526394880877209575684789215442072684643995390796228374925635715933718075747991747760659804073802657685784255081912559530449327541574490127568811153166688481777784476458890341429840581334893797411687104073159978923198837054876478951917339553103731943877910599362501175705924766573320524190048942458593074970714163697118635970130169455168726836529856468262134588150603162061807095996168748063337644875982690270106526199879756655861786588780380845935302728292310852057305675326287758666629447661719361782569145106802952246154698960979198236668546573162368766721182744601408923212676104185241788379472321738111526105905491290227558755378806916765982817669937624104274063932944382313835107015636486106909048948391687825430178369458628193232331440597390961651607368897950943756691522439550378830592340238505798606210100608609865240809658770756560558783781939942688241882574649901429224999494461652455020959373459045733492527222131261914345805479608761551920563309706386608838440754111683845520379987829282014456956088423486628721201729326577818979606232244374838466648424678260748700516508866157877304199936463495962625280281012679581564396951711871424600167144204721019822220028088862930862253932154562900675515727291570666128322807910600364535541060171600638659232720067893592048940328602452104172659842221630088488548200613771775534361127709895872904318478255130114661650725135342103254702348439178517451678217463428102514035574379647372570339312447411460264978668301722851631065686497474668606427387320564138921531984589410626135185688025665044422338323863115008794796447093187087906639868295498042475707941441542755141472430075538023767743284538612581029963680604869837214016977649729450390574992752599259613146419931068306670419038184430408232096912367489879315250795552501599256044063940400699340018057596748233334051681126177880433235078876606458188791374800787756237876932942885197689149624953501388780486715203064331905738690429857018611312606028499016516544757150315861984394872064302757452235246132802372755180810943651473039413973113008097740149598289283944951382035367430860785024163464925504575975311289228151646383140963370035565446582445205557721870729869652228247465221781629113769264593487888763354800735825874155066696279313367475142452167943099016603406609529227264134431134965757824367336276358879517588530866644844716014660301685730959276778689043890567367419412284610857993535366623725931586764988656913980831219530289865153924528303846884136723790159344541929505017757732112262370220468067793868819864316441179091879017196887174228658435495414265495818618237836734235209757297816402498023172882039002030276692922198676695989207114655514926274965599064156131018220975763984558486505059210257593410017361245770400283300712767250391090915117491712628772173036224643728180541794647937878000533521781369737198442978090085835319651830680320498671567358961335654993677441789721758391709334991044835225367569390576221612922676786410201495282881465200809707740098319479570777994083765800651439798047670241921556297777061416369976960965854709000864989110020961462281720360526752762305301717685679968264035157726147131122080605029380338987154271141125446875262205461131443432900771192040755252318189748353752773466462103725859617099346301614835495804955129484029755735567226968214372026325856731926798427603549294518702335562097808843903971871553834677502591498930536062250195770901257979570910171265885275091861609972065406971814247170055005855453588045875434367611467052864487891991116798523716252791760223619306242818888918574442012971878954854158578605806150740811851621930400731293256156567807652325748376795248544396420265568587149785220905292983264504294131367184877898245248122619339296702471853654476332428283539910679911677926229566219606936795407547436973581526774250692409033447045037043015626867966048156643716258390620848634037022332664331297470367800775165196112612493295594157624215425378423663029101335699838278151680624740577062028236505429569927355354051635846775681091692638096819151385035884216075546902338538266873918580169886291781161311857443943633971584823251347176350769461578816179369239798180302251863800203364101576871248412993971054815932133411464538991506101357724920597032822864935321679981717622793320869885205281568144461582598599488784376053472438904290715070246056727673260580262381909463962554029207906249828350875330166494563732284980984317306344640198879223594640267294476204618376128211856469917958031002843825562161270483666438230334197055783241537228565188573004779785252345496372123531576767042523073512408667874523182136888756240213553419677517371772639935181700530871936667967769061319127263268118491146741233721757198831471441272873338670144492241714530038572535682485215827639725187629795986944820406627741763639107292177493030623572609805130765702544615640490315869248441142724617054120481561061313968324163996682366708321527970360889679806066910354276042087623343842278476709451495028843770280028483482611453353182596244465552821663713133186472319040766855218947837332606312630446314239362102264205786562822506228014087271823624078013357829621393087617287845542978257008504211751859790631512447992807848104860866837650456677459807592511811209351965031803179760491620766533449418904726474999495955489734221585554642342696797007751486799868077176561738176718540527029372363700442063830942134653385020834523245211520697663584091241287497674256669919861064439243999325894231548830741761658884039522615157345439851478980630592207040292777316679203031651694988703850952181791581992523380562239975648498939934293711490427439130570403658353213299798298818080094766218005266493406518275251506418634476778454451788313441802896878734943252135991849971726423557098701609457192384561967962559805677602441007268745440468011247824684453297885432478084470727085512568169641462214221979954936483656487713418432953061500034020317498480499048291652184884349413585899821620413730669135303293334201265786373350315227865894368889278037275371669754370173977089885253026762637096942865201724687682273072758681049267102252988366709759310927530259698292933696978638301919241154330616381920858993835980713337137387825160339554433836654984660205707456226041939091967701826900168580136406985191619007575623370698062694750953682554598025689833292566740586443793178750085929833895375248624735595830289721885320717116288317089991650260552577370033176850318912769659393410576081665413445358236239350912060049206311208642277834503581486057702839421226328879512915360808099409316395431949673643425964167674614445687938867523450155161728647554696085689925514872139177798003695339200048666459850503798100401250041352818990330639973655417686688692075665262663719503233332702851707276594606427279017237824872717141337474144253938610352339544525620435424661637526154140731502779801870148759309688844206182986852041025990729926517868859788819286688869095656345846090486107777152038628882723714897258663892354335532854228397991912305836585659348815557738614719486218287040375819361490352746035606643243147949593501806125192908385291733679257442732164491548654133915801838241664096341109420851824889194391785787166589521248765059784390176333477616084038318018167337828710709316658373212743003326286398742694494788403651739575796521900285980224745614039036638764678172491145550078045937051151833545979928713344887065849438502767706782137428332743037375607506792633762893407208376003830710116356086686619646432868845191568606991384445950391925211674168233764516924576047728668915806026747358261292166212213255533766457323559989034549676485700267217591848979666639128644081493019994711280959931698405251919795526465955848906797423815261306574285932648208407261815703142591122746099767707852954451504422428378149299780115820445395755227245044686143959111080798565135272962090096186648639579053695965403664697960342289447707946988081834768918205654864416057366057047803210314102794436736491215525054365876077702794641888706559385043373606530355684490721694584694930644422781793732373121449122204984348813838970273562123784043191247873893709627751630456677563402062401214103242689970825016942070660119035279034791379683820592574494458174908160872928599742032204728494052488887278792331728970503681177475757185814841544230567153091542338769983438306633633829785895056173858997099454058952187430962764126354070956028056944415327745853370613474617678150940934192475177693320576888414298861260966284038275046560743097793006828816479508711467802147697478633351949187404707605979850316531702470665509531417287792668298590479768973083085367322362194133030340160604096996121238938085745147417186805006739977501364057577694160484893152393107655969606598360326904340186616289343160542382223462972239449131935743774634604681956682098401135239255726596284203401882067977188945012222146746359296657649669168019789856024744766760201263443589959846258790878556541648383467944800128300960555564309371669456024886041908414661368716452211305185236705574516189005155113737534034865914593063749868052025658582776076881349821374947841617884170053601141226715586593241302263065035776716029316566102961426584134161027822069876465793176952963292331592909716800441547585515695396015582183021246920872909799053509018050643036172231007918990528022818478041138888054335663295902991226220005529746083371054239142818157329725077541618074702314969135561678926726720165263733067913308478542264236983344879691884367740150394503978551496765160082952047869424853616732716186025464852602922442312623386273084777334833154665368849217229318822577106717718594729690839648411958787855315091659968531535387175688305051473405861049528013359632284802654943427531073202887335047471434339080415398370672489295911132530824254652094884667909206572526250667606225152180691232718051889337186698025523080751051516607804435913058950622737675815406385980491450529632682478505642917406685082805356257768057318512186267788675812010118708076388524022462696589651623699147484145658684938256066081435516842006825009257240589521861144884620744662557403241973466944943632306639218867244402073294259323580462752099146798962769942824661366626579109375265445659224002184986931637354765101726955628543738987938175741315668527059510089002955759216865984580939475201830338557984401430982582756660348406676258447350961586823476246990422389269510387126596056036565193785609228603219757423017821346510971218662018034721991933588931948510854848692272053609192361362426672077928534693893822145193771941471680268530990088398903211382772065675160730462489760384701492404752474011666818092401569886032084260146488129303837804556815119068641597556705823590858054469076496495704199799942426375842244209861038086105367147677524322811127908532979185122139282132653654761124997248695711059434683133741059227082582428337391461253945150010496495480988811582222994205343108964380638722621335319049442569737504201349517095765482383009349583824079067161318273654358347711927460936567544505307628645438463136677532385395402033725303181948805204107102794728233878134110804975813724385964984875315659211210427835166747344676659063963172625073600344237542721010189883735471220079971301878577384518445589785823188379482999207640209546497660883655237008541716163038342333947246414961526630790080088924518338006751476106625473687329861070685750092235986432997668466523804281929809709159470240604193764702276063733502337822581043184350030858471951575437354527971408284743695099453164011435602487717517194009953439448338713804016686043792942277125312059493113624016503359085605873732719429346411635219606204002364487674255420983640099689842032779007001624310017732902999487321037599037490377481918991404805408655223034189049416478411878581541983555776626092804062876291527761800154429140304180523830414490610259938763395406115336062609413031472656874861131035602299106545570035584121305618841516937077098309082880759498951503807522111721396084945721843614473612438558539275749986296955366199557132110232599547743978001204454943496882758245291743050033558377930397993505592774490209538955275817952050683317983745998472532450707574921305217766159338794750622223336656419439331805309627445854646002248248189915215109784985693979511658540524430771212008853053908458244246445464299202141533122592899038343412593226899942080651644625148940594027353645841295802953083797633338241196534815834988803616200083883713651317986665259574476160702763394697456897105481418097168191128899450712828480995387602870205518749821783545609792232426807631025413458319120786390169701644480277105044975447340329439883439484900451871674130711028444274899390841917378054581758804530330470062873912266644925814136599516955945616971595966602077663122795070383452598380949499124784198346720497131211971767813400267843071025865683813688744704229957946936948704859394993343536159889843880758110300124024174167548810494681021686441931842296818848448052575324587398919833058708160641237260394184798704184849202333002473864005242414094636697465440303801953388310761750741528223805281604264800351199377762011137610450975790877661951067457118824897489365958276063619367813380598456090817325886124358356899004593217400211457931820892886062584768587364372451886339692599695130795907079917930862576279591399880243084947234741286680082566503648485598153893355413762455432951541747223213428952952463943756059620313539173959979348171695147041673938645726357129964278525380332382877281488664442088612099833039392748699514271673918557007338467655176048972657836015033656784385013215411503583450591626277606956225895369384258224530112602902018349316250123165056872963624202676228218040822826711218816200639324175653999429627060538898153013199433999653665916498252871406383920632543057605835239044080988578336097581922857934095448656219143167595656599691773004106797579916098570427811017342067352582604308722882227784294166624937096298624014731775297177016213302421770734729138854120173752873578899905134328792824625216269051814842992058182362799118713718989953019984174076282758109404109619986557798060871670126289863971929641146274226434922072975188506987585261246568588953100815690877976937831718201003347522285280574616429802891429573324471520264391160050481754798074066191683645671337212701814366964011658954970442045321250678066071896176892837913490512320408841210045071323198716085304063294203289497058962447229082534263979688807226585231836939286038230870090278689322196188565716687426755970181155915166077025813511264009734794569489549024841778858622166000920931002696454915997294390732091958668789305384212458230013123688626176826018336984523764602583721522181577212072929254949832490928223357131050803243502793814443723482801257543870791901046345293999145843828906862442397229280958827781716082106753898249260075309125646312236957981083123623486073425837069059790732932824044078937498666675227784669665843220631354523415571075189124969659200828120081240113345633951566024404298809921315222493959619802690780815033548051483182675782668946041026482034520836388203364181727103524288284375984094757503914858391896899128685150388967709449501914522900412484653610450798296452155849332690922604254570620893864344049113649090970328459211642038378508444973870662135580414611738356391548945110879106978203449613639301068364930406288078675433831046754271385647645006278016375334230939825281810616781126963272428343770907825765052248184369908572734077980221883810243326518538323712286209906853118501595466413691659450927466128932439103679560074541220994144345434700295759915242899988056855835908042079551148219341254377579294292019790620444248790414945073161580118845048003204508780350179735143297635480772899824905382513677844860626343822069965285781326749432909389722044604106202594875839555020181647035504804128474666636910495165623489961552726896645744594165509948134842860677094886261182783676538853550268274834643273815133088583294544644981713915421434498247305427627645985708009989167399329586450558372116987113751514641121598615514046878206906837833970826761098902923646152714227182786172688688337429869439897097597919446682851382302090689322430137540033144785274632493287009045336314948930641168598288755925677828916143232312209460986551914398469076202120166912891354522903570644103335411837139093043529426015747098828506954965613636674896644735029979657186130282777586717839076583188489955532896203794566527382857494542318901618537180826327512302254915846314992010663704881450448000534456089170126241268946562041930472070723571694383562495165244074842905648109838979651959324364556749864601365296777600252271010780312375539691516657028421516819211517653367943794642792763499359631950732667274771068123798630214560470761510091670831738627436587666053556052904906544315325851355704482136558899324325216911101245883142481882868139744646722879089436055785528896024155926263671009456130233007913669528900758091921325648848150202715715599355143113616720324477382649560504456452999015718577667293427557795175348029080557402073006725870138240000868277707751877867712626382104760130031384303382973007393710116761421493759551168756295703606761300012742871154695536971834847366245920664698212893770050293960616509596300654469330132838959690713739224892699170763672988303187876993904226914857504495285350227746286593491133396915759553604686616530457964146105136895337840225293812794305832509365136445294000688428668066316718427764171500153643209959729329027450699947192215637959633194435419348507762249995611671189886692370714638666094690881955723705473252073627381907621216212882488319747322388619628064340331193959222745722758358735654608880574907053440601533587767915496554524326814691716097885458659016208350280606021682190873658404939187387705136808212664973026043998467812476769374139747540894166383164318926758974559850674658941138013874189848007608010696558902382917015608603569093884940945193198662874482602517475006178747103251339426827074615813168439473830214124608997454309976865248343852029827768665671006394061663939432603317194713290265245081738787360386913385878624089656364306489067632971628122527325451153932976006029263240936716622410449684646817606588985424771550595508369953397455065219683820123304007926195189479830374538089099485745473199459011855448093855616897424641303186483450064424268015958128051356605017467412357647383754665800338542706319033146505362885236096813545732841613303051766636055019872453020882174686403575732307018009837935972909183956662902695324741434096858254710025697795681685859260382335590833272354140843322521736476644784813140331124269956667737513844263783049144557875264662167113387884382985275319090710524352297182217563769831839242826413408495053007290558482943922462652449900173305684065940322437802745471384345115582940676509765778539287223378536676433794088920837063562141453312880823419302135049993578185338656249358658714089636020216506677075419934412652069357309954235133592910957872824165983635653327092989986004255526935922369443822204013210151003783033488148375320429622582623623494469628738854011906548699009038871532601407221657352688418315213657663224778258845672429170256789728828442264068365360444870001558441754540692340032325354200083957995092885369443095878418150113110478467392295453684048279182341405148775664169295394668448273260632993199340726827454357881819648784972844392568221053890130753176527892052308563568570817453144871944073598931585809598717163149294959939299388377739463220331111647736324864050930701293177399522026382203196749387201356085958356726663457962537519735333350990053738721410657642445971050872796150293850406149276912368907337039694274107866903552556459857716059340322619922484520816595678751252697722763493576446592120879620069136155842983212314480590409381216509429564170136259770428406482848431308542205255134386033515742138967806437008693498195023809219308744084969920289233685439771000147255780143829524448443803424315416504658063771722747008005975524200962586041805456276828164666722250115156022614551161075165000713876164436070316108758462522616776792500111517215792109020088118377139736095200465822710640359394464770048811023674860138603144768752973290775448766162912932267175228552130759010012803848744611056226711962057950134104357131535074318990812847497608348493533372973167553095000960873687990794043165442688837838591580420505092458193868896417128077173946036646162994352242846652205615646474763600652003919816810319288069496777211098184126387750025438189174196417983945933694446847454236299192972680335810696864938399870724045237519593590164450487674509559139374363754510629848127175106273164671158417366533986183475329499023994818728640254620283058334642373843722586690525985464227313034283520833136551049085737253367766860071987371361271518269038876186356082326099581340050300040753031588016701204431367828694669125843381619345056037538482462159329224231009340662880076769925202823102396659685056107036059514136853966547500448284620789657970052055190691655720368736315595425169797099030290235146671136748096560363333146210447585757039796571959688485981072714921626521015545787629859749176268964808609244200462012613586768160297623256849935522706075600204938522736453871912592086763213965516299888279877222678835168174755849025384033013426573428267020821285649128773082493503057476287474940407001340184044222930126357791064685812967952846875469856982586607698361311111798765896330501609876461543239566978028460478745064459707777806906678940131271412145365091622223284172723432096405452706799323378120269404381913504737076140293833900631319995481655988483764672566162315617357764123662652728570921548649813487643396280892279696386729618009178376351442554001659112598985184298015247690916764860255554392488502181443381270189337560620226889113271772726354861980435749427128184998727276364772066656342369776459130841109521277130744504993451734288808330452110762279807309830141202754885409991316639991777416674080706517462570455652897485732310558703475234414310997955941714733533131002850768462705142161082539816381164539793936570081304042032748564932594153783066441496625408318675992834247306778948083570085524492845248254697789647068268654057040187516585896200466734792900130436952359446177346148219395428081521678414702897689136291713121135757851600152204874323240034489700617988163997251756222379861752757265260012251698829996821878860482165352649924136818239358959131168359160894113621244321483587152750893045371177145765342728224704738062001581674018510358183868635322857697699924802710878359146725235083080661999575196197704277387351520195508301553798819297025445862719421774113897019854890359686378032708618939718179510860619119842898968298083071790560913157384833415813349175880831783566192927302716545610910961293447350120107277485366474545548283284585021591682463843725361687614860944270452859562106028385903546007354525046015510441485132341433627360879837612468855267724312982586851477313591485814583147141916090963692696602627102503105732241448961557194835739641968949140022235562045740137792694191510204198019022243945255894931780390771603225088896438345652345769358743062888336708551070077392987791340311742408380405719255920944454794276435512127016829696063597847357907425767108034442476737084942078269551992206159257965766429970624466806018789429539224463095855110608687936739997309636925543886580825398298951856348843057374544798957232756041159590477845746374394154406088642727539087310599819996233761963879041018270921724740730646523228619654581875056030859822433983367581547739056794086095012233288578507063940859594591591526011937552024358480631344109653054144587797782942668092521443015729072673212556736653506382219664251879882185479072229593450186081929816612199647040360676495327206421268602996218818978396562429738152507229008852948469265233593305701030604280298467108428110515060880367803706293682118557832639763988503578946917604137450312822177270649533472024777726550410737291492769772281578394164782472397340898875514964568482586761080318293821854455376602594687203507691044583913225562635264384900571723602545172923131005623144776561653964247938794122935049154962116674105094030952983797631247018186253692226703058311814210695198563760777675872630745058695162847243776332298089335694485249181816072515414776159887502878563322488260585954625248756885607308294493496164927985305034260945682573062843408567943355098874589878003428475867828424811109954361754775057220616643030474763748887423016761330240535217309699241190583579859359543485933877066888600778923329729267947919244496305203910507276537286689675120232387605386774925710743732204022096848909748136945622449794401082857403520077811242682775399419220404260754864463690615125520618841095783105300668191276661248475481282769424671550413199841471984557527103375384098529306970984268153881060409594289271502914392213795081780602764552047623214143457565434698476490473032114447623348350216783922089769709912570758186202795490448232330830981781183487760169720986552474328441067652735329305989372096194595580421330496565642435642387042891098662375935223479175371002933981089368418257341000836071066457505362314584568518926206786352428442301854346791429855859734256958423413283276498026306054798222779125964459928271375620486596893886709497057422439840314762209415726640899401404044272818519984066640230870308442017645928483873386521646325096519873254384136837802395446763539604141901047408672009113959514795447330976216132022232460388084880013827319628156268416421133798583090125382772112759844206533299683944164450781061203687539271775053300758703380790932393760408126159556180968377536584317948587056416807791627551310337394393096410692358022102129191353246652625780740214066287134374356814496050916487087832467826957888134379191111591855702973638644328145590295989513894378943313895415236131928612482200583056944779931150433494571307096271268096821786773493202170135617414888865181606932225005799257967188676639113495182898681531959387233616807436832924841018486287205842866847596875967936779592843091726474014078860687193934808929593993621748656175502814595858344375920624318457864123697532069473640963135199104398370149465711974845631559440925454609122142611732955141392855249848291592910705452329204351583665173833210959006679275865707543389096126844329840411535834764150075037090960010320014051174435246650563921185899493489743772185887996665501045510047726613478263063042883609656979442750556560857619877767771612072138107181127066039350354604219772297323887975927859081487902709425129949133680005240502884236659213877531839334446306394398760363892353745657619713091379509592170057067805349570067328152403955994833096598834838992474034422357230458031103846992348112218825396117769526308783258908898089941512425005002203461106829900820598390058869498219330844931260922528445419466574179762214857529353370798248711072412395600746459889994306373511075678816898359023402514465050059875342288443527898092526039379134102775146556894706911781314595632683941032975104654646337837544064268448650335681382730146190657545702736698674413535926936018616076324157492391167332237915571973152669905516181726028338376728347636922493137997314577440869861641945520972074293614198876639658289733749640468782568652458429962719902511096967874773524661005771665345547350156896119497609711946686548939781670673441078989320797393364307475534545626021215289069670365846793591977333335998916822553733805650485185298994901567653814500744648957200902743296556173190140930263146785750016453707404225524674884734670553360995151076363586768110904024022287120660027177374177206952949432444012981468781895557735156856151204689926231729433166859700079398020231630238542707967371530206667337357773455292993435843283766456936621428120502186702829713039461650151401328457117027310440387746527567046616232889836455097146134911961429719572113885915442631318925322374267608603750701256409911992526238432728168206538942330015686847314463452434469134685819027627184439625542804386682499924211522071058730713520813640671055945930511168019702121929180141816031653770968558495461034383311009945705120767080449755140556775060621846423634075453936005573226575281103220258126201601356222950981581628695316525998015673211833721732438046182330032088369368247291335294050538760767691548038412233114202091702529730713958544982001062249635288469210941757295150962295528597761325037149842105048873722559124316629787044459432690416596304447369395631681322095486585263827949184730811018202205726960646391672589326091257307319161567385506238123281473861421422056428559917754280694465144722905430021122589652632145893126527343238520527349105433949858958363769188705102216793907537776416437523484073618869569293635769800231924995190707002895257732221264217282622379746192127193700096216598961680375076284087533839995522289541616327651129253077910715591472350021593532602141119414512192316397951483560365178131756829666521929320585550547242271281246403825781670614731623803746651232863103085708999359188280968234863522343847862418655359103342371871521214297256547305557121149037575897577224903431101336537470980240365997352626485162502685930650164485099840544702227302652281369576944484727719186003337513440011747820306849818581679177786337613200329508418165955325681664106826580148860725342676873559633309424439633925475486579153605275121262563803393096282074925555366136713243502516514529053892988206451566895590468596120134374691606083482653767483166215102989384584575922241825562675298098483501507011454807628357276263890774932102384407660597092865597527834415370691170142309344140139496012941044722559965883741952672942429195808694094144990066054154630739048376909525038060181966018421614386590955635933568842071922520973193556270264111429473094828233132670821036606555507704287329155128415462888749949023569182838102530998213106134087690214840176242748723725289342495233207762710240870569444370465818935477256020988340545489885616262100228769353681614567562891552002805723781165893520898549834124500695543819431600659853452594122617553199645364055773862257080151050219934625808396168178681136057772303527143925947242375822790502281236918397649812130283468667719368876966143471164001887576214125873253795983877200680775152037384676921485084268547623137968291670403424939748443916688216984944009319539689271791436307658518980105568084350635270348402972081981552037011877175663963235728335615853386966339216955417197939392536696602511592595615666271611132181696253219741132232708034342794163257363606469352592464632557617065563644635234022639645312026826956294437658268679018745287392782617422885591327544403824076779031773185476400049491607679340605575338171481693867712249020697115085991084262213251419893172281961657309469916051347918796772862714327576029465110302494798971768682018315038173625182814633541266589252375665528779721163986093981815397072974971645968349689115132216783787575258465176246751767576865860368163414691851781982326542141941313005682618610960921803351582885988094054125514172279906179194483580448493239023166225781392734485268818693154403753027756257828839385881298199991179914978962844673128596148613715545285376463593585718504647253111448958441807979240037401894132418364042661296541900076783418878060041762761422519510264887972920601805213836262421886285667689608315293218558757375614674595833341814593316254532226789775668442748383718948260028143508934571297738810224789495319141185627674095090530378627163120718962007929311454134334561302815928890773458166892713437704405681340741840231495197561184865995898272895249319340426038874074199299620510002033414734818348328098919415688770067747594591995836793390230588807849559324301194636507195721928172973261113705640070854722510831317486288806875796430695445549808329953877859228243437149365477656611754448450759997123915970279426947127174459376414307434600220842992597711576245070828658504520359598499136123214660792007105665665557827588686432175220914314850902156221993184281496245970889368582889993767234987165449672701608139026738890440777315621675340216572476378950437411156730356126285253472046891531744412273651624297235919233997039803529677068920129190740929882837603567683519968953100882852159809790665022885754115473129893232636219176118271456012154022336613771641869643076456803432464091658974692194312398617261189666843488464150347451456765869855590005798050971554830658301769614818910043437792506967521198144624828432990499748201740498398688000736467574239616035481418998572865796517873275515801225744903398363655162460672900874812651804523437246897046472793402223318225180430982465499314575755242877108395354532437605736898940572767019926968463991548700836011037951009647921868899510477165376485123394673214158969058433387356853157581011795266007251507160403519485032154220484429289927904980973830146230165915867601883611196523800864906626395676926251629298906667300806859101104201124226861356142205334244858909836232883022698538328399618288073923930728982637826152096106512400098747356031667302321155034794112593168142726916917974970595194133818733703295188012870433681908242196268752279792883706620798820849340865932975755524563870404170540499068239913169434671084296353022058442186510606144731026647856498587166746743013632837293218717627377575601651720217869753318886331738996051922379762875809852401005177113502260055186212230456631309323767468065393050712724247234937823259168072845938745977236990132519663123943036192711246587603751271871967156412506322876128715616212670330661572800148316821144979975458444247964371943215580064199009797146585470287043461758240759726536327463678106510791184739580411565685572208802422720764910447690278073081417706199185073849613136413533773105666935511814228326902080743946724548421630741449030155188336696671760332341577735701152530485173334037775810968516402138173918577031186361389105926705130601712729351680846940296844950621932193147117223221870507608874053854697508630599836418122985935363495367668207179164235489748809228409545593317562911276520668294652652268476873445781780219653583161159403374879851575996015862190384091481687673111392078098261127974529674433342545211853406174983283907312957702724817210698893759445935665885058242650415153754046138175461690100670431988555886467590563945833139335347063748642802605826669016155736822670928019475270868703510116222139590506125903240924552240299215475905311262254247398409389315413128904704502710147380069146827995401959446038298398896315117013833239135624155706476384214133875670853078032418533569074566927440255499483633659105577244933270804029379765211496048636887429688409198730361752213372276153600001808548997613982440823084244862682530287255834177973795212094391051381390763097674323894684813532343962837230436744619707282831749505353593213628519624763278785786254722174222383025479669704161900391518999498731500757322629296612368798152258157216582394717917233458124828495665762520269508918384116740467054921708652964698289533829007675928077437852007725002531391669592535592414335631659077025678375368106753798723772858144525996854551710898829293109353363613101185631402406594152485596619843066090341116586618997331423742754800200741488782986678543141110654030320566683690430194616833490101805262431822364676912309036912986690988626235314092699705749783931361910667181510772907181368017108164766288593031001460574872699736335867863161092842811452153530949196903696350919118879775500742750190648442157228871708275988450396512644275096740569371503094216997318794652206965070221860512423976264018804469441611806313987673471036876485128571469588732679078578112732095333578954732958061346158302009453756664668701523511890541333609230235909131505702186868458883650758345907207395157555842498076589391212244818556362607677384035040666527870757211222451182379758561952104213784890324560891102313653419633747752309986712255108182297526903634549785723178397181026719284417329041508710498699049790926012306036151039935993099459389333027581819765216942055499279942136494451901840869948475864075600892930337891486213865122941824287685762870357999992910287038800622529839151737433292467514658623103366761207201010728573314453745583143667589341801571230883496964246269256505417314726851751388730355491493138466838328303811191809473955195777364985225952212543942123075718598422909718539462648809613346792117475204811941905037085383407766660898058328908881741541809092171258072871796637559356740360449769368265693549712736687508579306525590110475379093855887648824047562419652689921811380988430857489234486560739006065911203453360263885680478956247682179094344235857492713839168015235014728845642987582247070294340454586261841348928598484387503142066273123496247701331848170504535795195547290741106798105464754681546317459845837101463689315263239242302935554305115731902539137945368369866868864202483556414940149771731802566784042100355555665572239091710376759291939289821660877446293669530877177297571265083003326123051207134761992404597533953622388205618559190281181411843357058417422681331917754668649069512324860411782082203003713319838412151701649586747781336387288870038675870408330034500469006371469459262550897445727998245815931424175080271768616866633232712196929613288205499799138597018567766146318992027770357350714369922590609815143018918754490252007460769267572754785027934462743546190912284485422518188630780600303363369067118355132827305916840379639817716092164734487072468806687170671872741671147623660167724646593675616574058452613082027875519462085755974624378775082219227400010847996778930781784702164668711336302611805119240849921333803788569936794365207607908605932718263792521218022168038958838558136757183051371817219383240630376026713490039734473377888583078668966991012154771274646158621295884866952480938452960827300743179381525766384048084656278213510610757205063958234389258020533154062980281281633080142050454719118735305080027279458753661514792111288088139677634064836575815857789570762063299821080822202066008082999991404666969521602870162259225995535873758588818991923205465505022317032610060101045071342801683658674753406453682400324735692538807460606913059782378025822099077404337295835536504124564862357668840481076833911671452646355182909078959697379572740604983049664768696135535943321332739381801445337790735025864984075762211709189489711011099607111412387348101891462048463781931343098658811345497991019778007558515822834701164192122169048223067004982196939272721133163165583998366236646831739719905111321585084774631844034380699281012732021332160365883037208329992581018669158963450426305274823643166037626727643214606239870648427494858777794969208759115951316375846451191055998945581885772350331303053922677952764638440872161962753248643101199828098871225385281844517275429841606881580709113956052277032822228945545704986342460669103553077078421990599685925990848595369468447813013770619172793531100461945577425378501151197484720171168188277002161537618550637962904943155024845910379855179164543759608776455192138300728622944585247590720149501757604117722108993301597532904775789365663938159887659790203266220368912420403815393363045878003699156249250754037647553742671580024885180207135372435730123191800047062935813299330393438715313643715157632248394241197460198284154350336254355645902546088872458425744370391326762663355653115375286517932032976892030351490068263613390893897404914459594345277901715830914036515739656975585209055560350002453339374962390285526804782012514169200074008182281551921904137856329925164945611878225126331978894843049022385980283564440904408931498813549469902116578722560892214601483519211944579407406164341160018502141139589840410441839417281172201179354482693916216095705613005719010841725006585114370212100728584656291140434211490495375551474060696623899091879055954380876229910076811386494209968989997834246578324328542807553895054406494093808660187165822544623805939803269553887320702810521348112131139312063156579658026276955779213837059149942088324915717726793814215788711176883881672006645361079751198141988975009295902315067990741352513051054989354180277916448596748938041573929262488442151700254456056452868383490706747168980611802820342085506982620192050554282273447932269111342071835237515605799393430509482826833284072969267582315884442900832897345182747661140329474754524957695890725987680497224737891531154466243349071493538967923822928783461092442967603175819271685472161202865850259911743464213476983027912035491980749320705845712098572489912798764731462249043435421572284951591254051918112598260337998757037736492796793996478115442465198701575826573820711230224072023894888060432962905582904339012843247986944379785221002989997940071499619926482818099045750726203009483938200714103417380944500190334876077731956850976652316484875730992243111013456066997535593710007704866308493652494295555255829976561079134539711873803812728498146299642166580084778976736011486409020370594662956017976720340773490188511487965751244459027426089173455507352059272678370380990736032668785456276207448122580702507846451648687145604684017631444522450387992253101441325107224621140776402797895530983530614144301876869498858893350549935521018330611988039773051964443733256469877107723518988400255039832505986214118918660281064802730355823735756356539042327930485068056803069297648516378510231403437227333705684984168270124610035071689236605165996096251840881709958665994539757149758417017888541750347466720923822209284217714709402017202288733043928459806608463108434340944803427084438068771146470922351433713397237693302929475039094314678736971078909986590909029311207404690853767598714446285636621836331484490241894525763541110522494773487339751381885219401779433123251597907520446592299420150194453152963231402864282388045087283246683047995610605833080290799374188237131127324810788616672204487599260860472712634677616414577921236155547834629039181058931824233139064625376831519103213163666289140253157176926884424651027955386566133770444908646767436434092388710558798011124795378489093175136867026897501092190832411331920298109623458328598567332171878424626126846982007046773945107090817293004460913257762946646281600493231627889946990690781432606224310543539673453705283205351288219015021066912574738488752733851057479622237953648908661289789231956855249646715200243240022100022661982568587656278575204456134754134942229721461085011884184219784890562910344019492338178015575192476254128628135230054074778784882242768328854294078320032769075877026118228962993934719815277623042381560195136024421000468789385501381761445414507248162977949916458378239282423382627732525884474028648628725445082794501183187721381353447923333475980334568366603419711275958314177991713714346141786846433540651248243953692286108589541122503277318053370420933234705782629326300110022657779487125780029949176239370786234888567930423978852012072292053283056136451960847049074305502139046356831644350557435433877395894889131429934975444486544531759562872544578544683822495242957888412908296658124532602192069239923333347511297830863124026187709186832720146984469216213017912586872759468908377201775081833041510018386385570427094540796749073739376686933064026537419330849075225339182666059463664050550417025817004336679144167376989474667673495402898667287851270188909177709509492609352812594674909523095882460499600159505014162620516607651439594043902374336176956154997887642678677389627459800687668244199007304444996902854141681613432901048559542039918600116348664879785126772275992529064808098376061661966327001534947947976460618147365070206673250845485218536269382957613828047802328759854681835838000935519408509104719154158649146331872970399270411436776275567992179437063138024263918848296580592552655746404775321314434950080695351735891738381786534133560932763932896370730062061026156069387959957932716891245916228113749240046124559691338955704986117501531816329202706706708999337297239981780941099739540991978619190129454825076327900076354411977956119874608900486585976871503845790751674944953752349559870423710223931158960841618164257185465337689965586364323157278700636967910880861972831651244091605515189622028487493824916124905110335806350689829702343280747097992396440096889372334794548455473983332249753456075142759016582640583563864217086143520416406290017493850191391606183407283208398642123012842465066213373268514470699349652918721822183591085199884743715771397163616503681059320877898767317634950137173197495522075512368667216572384929130681746545346781943051216440514245966964142660918066944517254005094424988346412209735515156464392220150850733008296860341963029249035011870894634504798767770324460807581247581671650937787870288278726456524534608913327113537850880194593637616032042854687065462104919769737565146817284461162592674988202749518221950740102858701709210557506824065872045036074562153002553924567721699171272003406785388114289196468169162978806802928868624883788398704576682912242533895814560743091398284768971449766494409056210094627686117198385608391673235005887908614917812892564930305198462658412500531623906168846486047197753582687940859709552506669072071647150928467148542112531952659519707461984868145041386225815932703834844488494006113395826545130935552881305106529685112603312755026696351620954851292438894542788885084643301355822706164059535988671778198760134153777125524870615477925175099089137650892160306780432140610815409860335752701129614068578382408328480730427542726652400393769480146192862358352541534293508852596534406836034658047898333270490615866823926889344235375674377969877330342620871085880802654069821786169050322190968969229066687415278580756935918784143662244604622178353017364429500744619383153788669531691235067841908686066008384543838983108807791710843714284134491058339222117468908493285226622423853296320440562177325107065084079394288738162296941573606898681601562002614827768582287686771668544376942602863012299655527494934799216632270406004606206916196936718432992348048410256583940021809878041120871681780247164845287875645806712555979636902315420666491886622838774263327476759982662818227601212255255953358054751608643965899849041418718642939159930011783674648767487696736964708991625081740996707869386464145429101990787558825960959232940559538674213925924557347625330887318512396288126433555527178831054432696970392305838373191083119581353869611440210490447718880812337516559761858021053347856659270508099266376439283856621826841089880729990351643057026028033607512317753251315457355663384275406848420346198104421874085590331451569393403483229147988160341493877969809948135398548166075217091577422295870406496346303298117081047869216211567953295831519679099154249333667683047730280987642764585101019618227437855470462716858701812490472502612486379093700156519219749702577673707936586142234555471760056870981540833634101976866499904315689872326203229665730832837353492821727392734151125857604046912825123743304684358320327930504022813376569082192728105456162943466116179299657145629788544147439885662445380582502862768271926236256673115697436133804733472791124822699406176270783441313970484032810187775357098418965443789556425128135766849194264572823957947222140221160742056068582589471753543192909666869421889434786373819651048602077999985255202642036066448707343343537579581233171071369658922006435398514459480906498955029686919608022303056253426800623013234824732637941372833767986957860604650160527622614600471576100373768111106751518955235334872075933712332501223873054762629391902667249246430719184156754999699181379063669242821002720386076334018686879784393644499826161653490716573761267071870296415126222518775399039853825383201715576265147814336950911916723227527789163941477407621089169756523622224751610568158873602760420773900285767994715209553077516956371933767716031896520999787335702460826001070758121585708285139082396142448000180333382542356533502918674437821703601502198671853503948325207612467112934850083331902296734581699341846904842696816406236139795666611462198512042827183821098595084091203240960704102568604930054129183718256011547895389575127134434097799096729967330021825041780458678319953199389906043972647255909651340195234641034960170431204666131837608356140586855648560576507017235995543181193303069148498643051850473925281822785784615483504872282973541291822696320512942829095662801275707227383715482583063482665885822583000100560861827082261090658080364465193414042978396262920269345930199114818276781465769243257677945174064038531036060122874350046679776260324071061649160928853584946584398887301373198697833761188987868311842795663888140408263692067113218745560664498700267908640923770720745553816001484433159851971079986990525699754586848461287735830337592598396528651031915169378721648553275616365856963358154300484934026493856643034894224707646965223096845181349411270963042544557676145018153728111592185276505075752086341841049073370994800593645437420539645680012619692417505057624176721040098284917250455421638207427151645711198473664807558718613684853018505442830563521061068410495801584568641109495183092803603431930769563778346477770637138336921964487381525735017493152985455853296867722573749409924515041098833790128504913225610932291307660244199035138606680705004343363573950274825748039238461599853363335154562177301039588839024730433874037408671821261284689325612737054257454598719394937600848723712642214529458319802181918633441595180160636325608921927728211596586899842342513971904923373376753400979937396880832461281024098474210431876101131051769974098793961500710397219147513546761026596342080607453330294066199563413098755784587368563211799921072409474845623646549598831262011420170380423463629289154159028045018317551061165676396192350548928846136902692828188889775989027627434112959053995369612055167930668979315467493725539856626244302434533600688279941708285550543351567360210155259025037211071862477367465473666353518772261292771679815324411802116644525930802083000382211116390527348857979302152257788734727088488660281081097825302447716008660615149264351234449902608044170242944239113461465169271703260692303377120851980182811709656376073500150509365823507757194801500455849887135150362431281894002109071002416097715194388998281402592932796749594134298586588007334950705255618303259811320514578594828395949018791716038506117578271642832437278322262736187125957860121489768048647951743869392263998339844524160012756961960219585870392864353361261841158260113043573979285771992514170541580113385824312340335061012610554646081063563740745043866280054057651280464727678534836094240718293020068544629216414883236271762198572889767715535413118238653762388890648896493190884761794811108761367693248470401033698035203139886199762972932320561812865285723334157257774959238000686654565362360496276315447144256320616997968063688284424146632687369538539533543011362517308242127878309260265048638897653145638113937299127352526029467465541143315996586667559276472677312341272925790990449795390049913809684024826537352402299064431890474475705804130990209947134103971820936148279478843387817073339826445525285578000456151093932623558770669862347167252728014871508112899443721306029048960493521488462505221291722353878425772149940471595275066021611855818457322819927313225831524761372983548213621505189462505906243799972910026779543348114888620591903111191934372088743648853312678096311656481019989223479264883345787366656007432923287731102963627811294104984333911984146816279034104795838538682679121747813266973611679684204741454215064312482232228532337221636284624055281038065659290481141487526718183154953777234608071314747893817833048493036065894888318739867450015242732300249297712778680803563465273304671170139798814771186567327058476914755660316743141696505011098439441027551844302768817364931043670882813202428791808433185155555435104542858992805137446463944509522428568856808438181681870197513670471023410480299568756129155481766530040414525205018427877749083431732009189520674856856840899753507363784043301984508437201623626604944865356879261221762054610799176286362830281423409592581604205132755899977472961306475310380541766088229401167058590374885432152620767368662381723469932669601585559423395944740437029913066956407883316821341804043640350062570558046749112859328549680730461437773217869763535513761927281239591222678359590274027537340519674244016984359759675541503367556556866286881734704623672613385201535761038572053171919728897724472244118765241691346613226090625365042517307141442233381318268152546623646933367410988026352675791948016222596800829741336018981445780066340811304287500424534854132587477983389462695278638191796504091799963273998096933655749759745666748968078700727919736398556563614075064426781968977326500939628509213329330732769630789873513591966299329685428229269081840610246102848296359147991427923291421155026026655666115695171367893528827079580569288907305695929697036906905512903565167340142266866049809266580555958280300781048855045791880977257217847984191909354739628384961008642453214467532887687558948759819377179332487270804063179735169536508679596532079924019501571725707907771473973045600485714027931683195037886704469570345969738233700095149104549499230426241870962949968731674454305660078016830493338765028621007732216070570917442350741212370198908367942724207392491903990283227994941584226921404747749829284923642331560176577093176306757315928761352937565927464574014120349434080070980297120023984165078570356568811857682874496680162940634327623051622613961831283094019296597377612983375244427535721192581110606524120832455412317305870846729302489691719685040014117420102842709719586550792857172419560098686782833865240260681698807850097247360444759320023859402124125897733470273019474195542162920857710585413239141108911564844737422248878475487665453319473674593572281915474003061271143623838470799166913666752778683938250874898102639317324921672055994725925631632232992736290930862090579386794714287544786869362960127871497228115811443502746155389509922045024563795140521225332664904908508239076865095190257074038600184515017958850434975528091111603988727869356212130310184294156809584744869328634893852215207754137710516328488206229191813485208359029650972144541526191915846201848685186199157356457485834540032899463081725961643980636962934614192569396530376403465132752107681247835541645994131417807473941523324393750746541300972940988479717855709432719990565715207510701719855320382240853129077401967271711502577574780357287899492404034130361378181840448898814472610118915078874118527655167990176911819599069911910265378085416953521503053889651845055404308913649866904091325904014345343494434339539705375745367289712240352482722978025857213761776755942066748714853638490405344713380124778481610652012479362436771143333726393698501823361681512106650743165128811435983065702359364864421573673415045169170829385028210389627913482269198875185770665595708689809366387831458524592331520431639697453573621033390518022376816292756652401400766520936719434384038234201329381586612722120600246794441717934030979369761315123941019252352531673830246704024333125745486033305084428082345409453377922913152676081404929724629986286677476573172116192055976948866173032516020203028747454760034314399289315870822977009663567292637450188804307060042164324401588521495897939754114589951685617036477192836681359291212994963065437258426685781365864692270137493860378170501241600316026864806976747155033952716069178175764476998942413698808320158838602489900905881221103346164507070169981215603715586663195474642847071060648122719194730091945882098454319485753413335007978372072605236990456358536958030603172505276641244078871780894199335999818258480520907829432195900604141111020621411490907619862506502210337804814127430659132416237851111890643220401070583003364164323913071840542147375164444523381449515981555189756475290399402531141637945687908619506739854028327116361197233130488909008287992701770341509126450000200154616204304903135154842303138394395944058723988521097093040621735570362098446507890952095865004122738650065917635393939581288565329294938131999568851871876576457903995705622855076334761675242686458528810982458326596354635139694619918929249303690268860419014829631570722889822273432271038378365201641945400001334510391974522904764153038489374637812061031018578846655692538325171581577169684973149344321574911093586383579996325952143643072134091446327535654497895101218834684822380485554181361444157696068514636929376454240291257271960506014574668855948994359057517466040352263509822092450774151347084516758460385363062354835778441297385821051113717065978611604034304181364832395562755485744155860474392151312253820949297966638308847048243394401251668453335265211109359946559261711470584690709630783918967215311804166448172552527734457175401092019532932080653486392816540562759441752840523684540396668916476094237332999989243257183790228895551680352393135494841137341643072183010870849155311514523554476190076395347174625717561349831030076777983959627993727990629596653570954065542857064334579278975232759014580002993730712391874186131641929571437661330827189017386994435229940095297682590400039585558258349692987173424664986298634501266421225480098452401834564607959811353013896795161929663735321178534078762891923477689077106084708454864818399398445746618210569812242569132713572610951279776211116971242926712165033589819981745405802836994655788545131237142079171918054213073556769248871342575453078788218586926216956082403831288645889974602506985593891424716234154377100954235343212115700155935649684771995272734323206245831158935958092558402835858072285842074296755091375563941456230982091906376545535188720865317705155688067581445293634776287443438921225047666327848170829120528851517522046595973740824876401813327792655941802663235413127792357530453315777389359901894077574119637220674156242222529941743545582620001319632510641247845852746177196035105846904353024157204205254423530911524245701315314188807483875091643276297454657401298093155799230811128412300038465924431518270707536892190383700195807263812910124739962823577252516638092122645798940069475401849974216211259761624510486399667404961029812683429144515281208571271841737438292253416516542436997808088292405435859236126960717684807528523052010024681122778623504683511240788208362648781759438419331844109034076422476321857267739392618996768208181825992512858706171457697927289205693238886834685266446581731429699386357585826123359899630349046270707400152670823858433461142785422381297508816175089335656724491773406713582860749114511664446274891030912395707831730601855191485649799268619758591347253556334121714415015529679746956893934768505142579786904939962845199946659642951289558802578642612487923226761595268671889130633636376395080732380643766610273557973716685365834769071018045397179446328366537820369728424752555146074380639809335920881915756557736202186274547738182889654179873084340564007271461761731987200380110746907143868026112513534267467539162232992453492780580306540244946885627899213146016279336131946737627408935096500439926914788201819942549257370168057009112121740070625867119555994166593038835175476964891349753777588898780612974693222870743352061758931259194134796827114560845097089636230513461150976818237480033707433246275075008706967217345974056087581133343023814023178384719299130075514085277394373925055037556430242883378572489610243562776021046139347185522016574483360790666386123668886844144386001716281282677224657036591561854892730691686322099194159287464649639379406259307569338161057174058973075897211773495033964735901192164503331725250699146694540131393193051820815560333183702816509504261970570093973372258805994557781081151259421687872794262553373063695454238082927945924314476720173084463300591946058269012205205793160682354905055235093177350221589657935865507029176597468373743031638216802864963087433031898183813048377706675185589125600588849436532828118942042049541663830981284265276094157063702293061775109975510485380375963573206683935603824562023522814270944908331452044898546083695470832508375256669084300053347415531188027319175983050957954694388227757136394558875698346970272565902944428411604154896811902046110723040440637505487763756258639366983881020220939434075196649590956864931740437180891684920640955408978751667912985932019904732753284268878410793692656352602940288986746549563975217886114895238077565171260741373072649178827453055612819829428959059721691619554168063931525764135720244040730098573937373995380978365829030908864812626953782652062306660641458031090351111494507859564264834448215292744859441623834913736029570897909267480559045839248243685251642212735223108030785781735599732427904421926988729664473054551930024152683620189132836007100649663601332939472850241153753088000143421636986886149229431513005173588923813382430335881766920320072665410138940018318103744273205954894613065373470696520193430808049655277476647611416717632485542731413214573217057550478369062403094593874506570734322925003199499844796380463412845151926554008795979527094585664055138098316272431426280057152133579449504685784636087591771949758580450607240251404916786595120194757936538353581093808833563546003885927147273667119063369875478070293721567924655792028395854247765456264383608314435331439775499875148548127459692114417436385665409202798217876229944292046282802602148224981686290188414933757970453048730267127606709535233958357469398491980401583492852360438260743904184342216578839097905665274614819666702453606687506296944941663867028512076399023150932135854090242458059620203234681040227109217663440120438854961089915902807294685158900969066191297416402328610827938141895015897723925294471362136812109443928424115249953877472340473886180993670675019614558336437965138887767538329743341470875697715560471236424291608243698956034664450543947725016503296421884997785773034480942165391797801063340928964437431045639758440227632408839866450056467703135266556226229620578552459937480442901751535874397583207384729829607878179695481716044283215675608061487856202552651793645091030633159277530283211002069930359177314857663146597196879606835049378199087148049289997594635453310981649342152092898561464363345786871063995241444127495482101097654179836632204926523106281321828573312737297564064289640554360415351352040765501902198354673849031949296340161761833482207892634931518581718394882296525964743212148689757137547756224603646125890982750663032514025810495690954294708678993968394513670964970583554341078955810594003022339627040606553671364222336588318157740815744947412201145353835056854309731237844444023138584711125572298605145791013210389545941181181925104147293852123366256963725926141063007331090083666178027367076658290258549338229819268287347785209952598665158707725958988708867419973860993823215750000714496693688495353940046738166538942707699718830529612639260254080627282985285671003206371338327645240027597563979828762727183645532117216405095486893245330018193713996722757633464576026059029993308217055174456736917002348702113467124665685748387608926945609608200562951983189616367703993206507930905572042333921765032570943773073684111316656178523034123151715459683582768694706469249331896268809089957701138447141539009915231956062255346565756655833902441209406821811157966437224089109414817090426362541703910488745039510048877696364133634676051044355112739629864718738579897223040498336875220518227771441679098185091555397453549159513834035798670555864985839761899111820985724101743693937643722809018585266784661167750486734530822134310606951291791633106632586757373021035422740678819918781942411239352062414916441963987958692526105780390875251572083014722925928079528678731861964832979594192941725496484599800463911405413048784696590623667070063841624532395727858804596064506508374314131191210937928373307667589603183341877685070552052936607957560559568336210742790258424963698124901063556119973156854021078628722054397501549412845905701424599764703911038258936383694961100318421819118987993428117938842683842599179898461594079035065210876881798992356050805274708555522812855916704009956699604214941248924939320647863944480761948685948469837336412274692636596908073500643444992275118763947490390736866232313973117726002290179610472887021608305892899867851434555491048938360570066893722472715041091134232605956845065485843338933538444386170135091396930234871716241149874602920455511499397103311112457362334821749263698131413099080774965197540179366920549041592024172241287187612019957687438382617541468743300642999884234375809155550652605979891210205238647767399225772610742289187814660325853195361930508145958713667520891170557177968950968108725449585281725500251279406717764335439090256904655865213684470880859905041115712761585084090544957615759839525111033764379105932690761167840964984453987371282261615158816551530173458708237978438690786882325999165052842101508618162304237674073165213155085640998774380409025375269238092451908514911479579882097374082730872046688840564518107984695951215256718376439085694231985448047142408212480636519949462446987526935229844125733618201296586200642836944513367105281938715915344419797888750540441251395102266403949799228163002685324097840586913628389567931025909949773155877771906312754553613597691477985363056524569008335700361423816628343243715494912853507947352546913125350947058143635564979876350556540305444989660182810496859371909027078175727931842248744475127835060022214207199761238573436887816362314957330749750987716169804751232427027861504085667047419078661769821049679129050724853346061051047531567519107865213111862864032077301487630736754561407291982244106980074662889120730136038512611379365742414548073197536821958428866360628131416289461845906951884462673409077302218883155194827131122526206862839066005251575265520089463992920644393512256589470385851874023651259007439362344472695345676168350798230636376532748704724168387398001667462991658492074137519970363854208688091625256433012365877442291120506539042595670369942472455553620040528822497204739155702385854028722334591953402475394134861039615091186464398577709892981086103242902035247226363855954924575489195604700984743196707090992867964263172977100851960150659846368208473162244334038304967427547688903259383008080897347262338970052521331364161084365467498151300862014338631204321386564944155106885656224898909437474483861172379935772895524571086479559990138261387541404619756165391434108756363190294757426160903834314982018491105927274979403430698184250316669904867750806439727337386702602307585113372506919544770784061642858943557971615773144206699385917544752296843729015121236338065321256307424313535784737023164362411877764211383599195374997614718762400835820184526941409967583239006518743612830217713614796087578499731173284936328883330417580489562144288084086120748395577677124969478360369036536556016486318537208963175927600907034622149755646291641936015159049436781445746680217169625538809015667141585053876999342192174781088152224497747450204452590002973026774577083326167050022981794095615024726924349046688996349578679671917269214638156175051764891359896885352650108230472192206834692930137381605340181917633114387464459992796924784379936183635928596226623911405603105777555611327921677672767374729175306070106509341405376878618425521948297882136813058914490219064361312908387589672243766805890917510304402153952985574082283956797464612276367142593037998333866960525724582737273031326555965224445683987207126166152488991733741834717497059566434981225634769241321018499746684275247373449779274307755431215029386169470749141235596457146980516690117099731236881094418144482246425182781058777814527296721256244468822664925023735125545244580346137036851942088138728936477497560164306385253632152983244214493551119202022371266603410015242323162584025617870616629138477822841349636439667092656681942332525086769977749173540996002731403943200190416097364811185930468457204397197663882250604072581155472732224987890545209842857352196030184378249772674974834603961061002535672528050294804028394487273534786725758598001240263780372834947888113553800314082800927305573132632043148631912448577381644440835407715873527342155289702946349282338218856991508979305118114290073997029288389445278694666910025621277341439454029464685999970703645795691138473783583898005194398544853478574708391938984364103807799285141170241371281721882284050939018058391632536174579557766969669530876991682397650335858368829054449775403199401006393861224092841869980830568805012757081543354103932400400600990677906080808107866700457468029365179452206378483572145078668454567867569389195869679862291219436246592099811060733864397955692452072593899981219344941828485996654798112108298097317794472647906754283506382416559730612680115790323020734200635886966039303800798359133618131489902165706123414652582319409593080946088261471252370950310345492368770274056771833699491098076617126349122737352726153616981085392334368343239073232207681006149934507794743857714753749542112519975716261311793011201114160420609085669391985285524186818559416223959771865730096474606130448312204934727826202934772967229297832961400085809642943628975879569832243956243308864141021440697378155004948067859041899652884854608083265358751831607540944331439950126516034214274099397881828947792032950704261843319980372751349873115866018923995638160228088911820360715029500161626629446897795188199128448482586460731819217012951743845591123386679181526646558389325373562658454579085416682114515471511627625585096217208619980624135905949872797232089794757535267013351792702276966495295678253884335341971441269765238127542312343391519069870728963527068896053348015678676766865748123857312328173333145659892189440387043512188264146226752309364175366041929400010072898191421022752571783667267730808692892997608534477151495439717377726600606978186406122017951471295484421046600047108322139715049765649778359530760193820499525269008562826768253869893618732062703189860532037714821474099865434464933738063220023358293580088409924497966321399596512542080820166084882669082491127531219869879124350947119808407001919469983236388683479487104234144876624341907075121410896585309541667550119605251348697568469083689415390746123146472356467918574602608225041456041357741425996772785926090641708130241915911702484813576909551327348800711601429115250577615695092866051301802424411613091689126254567823475148790305487381575621040240733436323865584798333538086781149834845593263788456572374927758097209706293020945704273498482571115224388813938673324437567744537865010847776842616169306982296498382431916778140443075006436245260379781629199635982876255063348796707722094561659437961072294309449500482136897557781286979076063621219936615775910863504992598590862761991014328575736829173797386922369195922929912026514174968199347950262390598829146736554874445571521351352153024956255874587786202917930527536570472220221001940477760834812285729318876789941546654892041165282585957609193325370964085606512395774962271194732865725093124540385482214164489372749000054319303451689204919867149706426888207604995150115775943597321165914186119413894752941566239796154715998973136177627899343064391592761937277761892711628552839766172513559198709138353171004118281006991282158584304387886033610676475912795391024230334333510896733050130994131033688853880577626423992024649614414113833252545758777342698063532957157612031047448518960238018046276811961010621742539641867742591898024237313110848110217839270429355110977139115244981358816381100937249826065429078620166733333333819044825272781003985808972053267352072314203061528371137034817081760593025233619744550518837181509460691721787660003394413824025889649091766504823474837056883338403799737728215558024964998204631355279265129956328627980844759198615725505040715594667235187078830962400187649140519600825402809048205561385303342126051077830171897378255324179945364702336242575163242403581940999820213784465036976552288370916784457540209211722350493945551524596765112928329016528330023321565120206673930396839219268242473623060915901724697290351552523695269061188484398780365014657753731682075793543186240292331915229810579157593188929110960047121383862910776063046831052607815464807657157683979842190467108793811210575163299499438689022640477932794113913584669769992556321488583324061132651492811875185158291298635876526472285055058592733125421527150257889970401733076377645165663051317554648326191219920733710993797170799012160896104598376611198388448917768050033770551148145156640454238207893514830567818832461404585814746768152663107639399234149383261223718040465007297641154434053429639206542052125939382852152741466416691234541042722079976734516745837639132586303146792581698565362006840994075934564856546293030916254897892642895596627422884101202756865887278445791815108589596465111483219481915912737553009800125944943184285534226926758802822527600711978718162797815939333681958987333421069818019763586922363196101672922100757366729294559520492320272735044692985178541071532584788258403900519294119856877654082033703178991613418642289289550909281248790655566084226330581623149876474178923221020867738561459562910446465773543639450219183040022931942521141999031674360651955751457459839136954327211198960459957020823315946269668456754445438077188829510365403036033155227708983785175773378423326880301488765686211895349313510451204700012641694180849293524810341805577067461804436695831445846734869399735250153435400402994852558259768450565388975621273277967945051820368935650936924659711519104299130224539362434565984569439545373017012284075261035416971839339226473678427049568698402882613582904246063805686232582011869074273260749064536966890665057229097104233243354119495107590373264987880852740455889703660001438670650369899455400401352082132480316550974633926454849841832812880029948682310016573810998032975933324491476816005105878375147916182256050498579939815574104790238011739864080916312068670715838084545341836531417267597723486718547003207310302726137413798079876129124898044345292555160339626921940487178912884455411071854552284385107819963648472647064852127146388076183731535050567581045745079538411632077693203520824088645283013942177383751238439708478395150096106582957814438203333242081270328207860170582390465708975601471361687648479031019276679050692307337302675142613458968807795440241016110143758136212792621628976656308199054776831596515987116272839235779570786509610032289213890159116145474937026802986695282236717345174747630288780048840255897274508611871852531038234791319135576949209182629329524937398272215699729073341699308830339303073944033278207566339530477832107079681368842499562900793512640571729052278205322031560905934005208770992738192403026208425275874026754095259177756979506563964073744463932237953478512679303963709233452053097549184657787418589464099739729336470369283600072858943255788260308392859255383579821889877765799601391824827359338065573500826385778452262169475698387468534410657649380742987498079674090578540511742471933680288342691443303299861519002633081306154596340607651646529575353708352842197005372337644045678149042013854167008637056514728599853776646725720844088467891879367962242661221187474522831261601991879668429696090827446933050966775084511270355950849812300756770442634662729292687201028671814896196549277503156104832888226767235922309758367325703326299563068162452898372351132759484557493711194514566459664965839532869579676091224056373983146154877279330049632416000228799267781628805924259323909453896708408457038724913997440109937676899478199459558904306352390149797767760000496223121117436869610967208841286286312072001538098214801920473754053695480841157619186030809050422444084616457723681689057845953102962196251624678008552010660720265431648434390146297744002283813736770395323013947940154543790546526607540056660858023286979240417119412462151127226855143525503758301879475048795762268162174190701004711553023011115104180816888950848603389849894804032729659704497164440166528931227279306391324931169375948871583951572822423652235203370939738279795827021329331023314060902053550795416719171213702697124069210840059095323585499975210572511322779411809028017234388695240019938207603206493013762301993786276833354408244225103071906107778742647631891346633448002236235199913289303571491293472674941233532622318639463631085779924120400411074716311729480045209631404872652014225774789410852103754406076198070427561199757509650765945172037248661314509750273973225904588348895950736252504391841019806441934232160218036022019933598779646064311227176589813969609125615770160339823335061822909878036329093216838614579514732645623158504374017036620335307907549430179162439033186783991609989335360117552223304495443843398696639902223045879386860530709023966126055371918953010688515517816639620188256284120591963870030688814481531785294619718079939400942072364922151748989969707391327541271407476759805056565367223050364674014532956784864469392529918106457850914910739987990679040352589182989453192697536349712594394279017562486552415164222633721130340186667324842126532323466188454040010385580511355027611093525877036169412027919147049392761955244716004769277182264714724896549984906125224869144655280544294060738253300740993460607912065793553937791789767677938908078452597874994079978114889481138708446644372217963941094898350377332311238005927764969437874281104062757467405081234236404910274675994003818411903957520502113453525567374602410480820159582078015954957291595291857773127643187588267783459691433664895074160972023514073023476570256506604046779055526911238548007158048064364844751045971839787182608316850095588560704897811271797550150734180954692833470480807389569751679285465719063790852279857084587089426872121016720133413217576350505317416074271786209929500794001338024680966549720655036298253217613791961592864961155804952067571826045929782374192093106743236340781343145202629872554383101401619134823260175331963350556999321488943341880698384187521297319292081555269898101759250216715842115850283329851657017818661188953807160785053064090227469214585475352093631544279067955272601435442939136987417565481349048758142548043931343166246757061649452467975090147130849851845936053350219501348724126725576323347183785182382662492363795681113962466115784964700456293128942106756560990282692594012500434374599065813127300072108038853983227363769508161353288757544516019635836060438556952766832965095939285115368396186694339824236527789469628084477353577245177208385306310620836462071017411200868659038853418834633175654190596909716833323528523236901274521003544001799536794987755914204868957795799087994978270939109318321893958620797988962263585438140797016112089340293295618124199183671852851265206463214232418786181813832170472699875081339629733079027582483579009726116850276758200646523177305838783066248454354987034061631886946992071532365103529464397202902879001920307692923421275501618119178519589528527552748565237599243981458328663558913642131003998325018479700137505864609282649527543672924966023022214670389015296166607220538923755859369862650817231963085719794996135324331228833992226822912121822093402843746023968239501779369181352308710227060549000156168000915455744682023828232333008667146217975543909846946960220450029340710743317107547413411735169280082785924396778391645339785590083836367066589401652707760312370291384549892109368536018782517387045793392650328789306137410473078340826747396101520252674622596531463893321512072031232714234459536902369897577786901168957026807869211148218835196858428929816083007819762965776356611951887592866645921880941404638480442704337434927900088926508728725800217167282959000368674307055051561891662309024787119438512909558327228473055105073584898960058372373135992652966538539313437821147811596636481227221665842694900069050359130302247675600992264274987290018568182136919481332329909720839904719204598178643724137722443306793563606852465759817517687398646888442636257059425768578929045302235984871347126995066472704747814542991918992336037044851259653201169215791533327826189297437689348521659763748063954924057909439887319411083452472661727194636709132481513936634720919055222816120226375821118031616562397661668959150028906491701208435073096287110338735491553914478293889955128237347302518800327981060761471775253091954304883377881024541695827150280608635773678454655779757134861995131333597308677549290670915237824909496082087202038000240115462986945677451255486644318764648767982451337797876084822947976304954633944209152337260127489350363403519159929289533811185588168389651291841406977409984345648966301534541892796058644336643130996131772000748492766094958617433438194176814065702422519381788769642507129609316307393111216363214698356493844839374879289803088333198282298018946325856600986803400553924729614871551018588917549309364481347180758405996373506561425576902082403665903368637810551657161277253835420715609230761176708011149861400803919350404850945794649897383145114785853069445923198253997261038962771307753253028488678573229790852499145763001267552683753587163108134001504592209990416067601539501451763459894799677230421379163259117739491728429155940475479421998844078631070433899875266787340460749678438804419685210509728756642165006723318734053130973826549851751724222215947567194734768737166317580189547758897910945095686504941478819224622832484941020187038525582067573784877111618301635981235377840452256036270983081841524563989840523401332247545224441261792271567926761907759671984031344226365414332044470094210906885726829727799856096797958562889881699069785481386360191556386918579778781203361563155940633942599485558631269481235707868176933263736956793273128190234574608515618737715972019552041048756854075263448249040023931223512921477541121742272612654170386835296292263911684652178142733446169661751135133873957800734449354782740121018602811962260669340882943193025734832708417748224939726446180744861350257236501503192829751713023521854741645404569279102428742882164725625631294150839781464468119359885414221661340507404122506433791325518173408724521746245829494801590717587120989936375358065933167670330745102865191314269280697991466940352267721957194002144644139464365420414261197646070363038653767199518995164214788772437150663414548262413993326172750571693184336313393138858257637316207129292219266793443700962379960592203444436182867986899922561655859417202432592556969143255694889256434915658205549706811145593245779979411222942215004833473017633494893307144059300673164483804882517836327810695001852723766634201671858997685468787412332036822914886667507268971684881590103412951160677497006564935783711717036025494802913133210087609914331186495212503709516658286773720067496067973906015387701277058946811647961620229659090826547444569878589981858812156410635411236814044656378186449603671292381283174782615906355422627154139054621544381432461965869095335210780724354815735066637299885787693472173524822049621497433843072217672887784534341075926761527839736622566363730683046625895811096962101309348736944840383576622470120871420113457021429015736288210293923179294399937492233299736535441926274659409977265517787298296852100250007387388258994012809388161173472901826729159185170622515904176899673237825911827262074629415470237063140829263450043348451549476835466304280999597820825929988564029916026178444709006126178330029213085819008972212843106935130428411924822802053436486633321690768406975506338387077165829167434940456102466595708563029220283730916277482545554144355664516894267057674840282800160152359560400503273352368973619833085495141980132829285974050484006957915051500528775091716851721155375970202950296111792279028694298168962411493869388541024764560555998869262377088367775819248786087557134334332363507895339994137379746048309480767527064756685517639871555101605125012117780271986811664762456374286780588311640350458498822093293890564343460371712328984699312856595364555396795345686601958373748453877495555829598494895195486666882691721007592123004613152304068906805509889733529046450470191056245377767878825230024275175001453263004748976692223447771957540912750194146379489686949413363332051793530197889875610508426109362986357855046212632532058734420677618786866118567791132505063740678376510797588660686164521895119716344253495933140585406235734687491827316608835010120588311954861476174285074359353830983748404169090719467854879446230817886846291952475930115238323566346029733933152242551927191889507759670570242265092487823773977743128470676605726095176724456226720240385489299888194735496575560747756943890630193656883859823460524631439931699686529911891581965894582004974195057428714942580472582290825073673180774344543003717463237085282815086630558581543060427039942556333476303814364722656020276769785518995251305373098465312435203498342059710484162202805950309830152907824749621783989503140282814734394252732094155908646129740881312765217893303646748240941894252486101758655264565787055477440094685413042478082683563763939352207396211218683406165625580662832330000900510371806895687975999763328462309675669486622170051751467102302346355849974626057773349861416559634467066671525426359375367602215989800540830376272300906034749030523605444085132492119660937075574302794097778543348800482252279212365867296701290180653504386828829735417378873425345754860195241695023372302219842285975625989634443677675179588839228039246380990933745443889967582701391521210097358281537034236655992519721467914486538249466588145631653542972512918150244799527406774012339676093880742776593429970825232301367689220952743984429807642065112064305787624955917253494057098624496345131934135884895030157406054712522068971093088115374021371941361899603667278714033368254137556322815978726435861560466715258080351552487278838577544246884099782616059322389130602365370284613680792769082431562319081685552037617533735380302207953800944152791220915299046519743321790377805281579765081033811439288602060920692031414610599248582927611906029805004469483190436163706724866374030239373528573133580967082401838159780352956303903305958784376604722186958135237453419932614603452320665002873379269924601971491813769017553958410430746062083245333614666132917821663505623963964896275344364069908223535568186166153833915607284178873620924408075606959416205102949243980788195384400378585568216822510113764208696278014603865178355731376036936095968211665769267017944232020996700062477642639779931633518935938330721149525778450923882521928876339025925473671881683179897538598687796142167437767052305626603982560899338922234412902500748105208951639465569269598026778990164138904858066683577144028278985200685255869195641859764170352693835159031718163429019128844933455205337366341735998210037507238992551943758484195190446459132275009665265378161963253962517448502120561528283527060513681327142889252164252479144110365743350741315809540585192701906544811450794616480563039604129023503164417303278774643987453315687217544584393304478602876771636550663152095960236414259026016175448173868991875003692085921384739741494854706027521090616741511107137487826758598689363927856815061986292681764535113564593478187004387946002470442006573775113066782513943314613392117481010812723418040080827890187783589732010958413078495410065028792042290951871406695839812592208422567959107298569026016789196557616798621904762276999740882422161309325144298346409900076912795004516580615083052554777102268078206909010029655552945677267050800057048602617399250976374434333840450860470159634824807291783583823258762123502450239135705538498341008214233589117338933666225767860280973066518087742325470252466517153640887988809460854316094917219725390877882075237359765101010580058731920948028484901591462869089069022510161590556488418518822678055704444601618999753330701030977433666429232117428268447901277718649842242726251145391211785952996165584438565450245176859364136802907382724463943421089799540658563650424069523625885631114818817643583606475335669734099067205689350045890542497598543453435732060964091103209892752183904746597729308622370446176795638290531136637416190767864087685318158354600922433398643914451408682030230235440316744553386730226620190042842393143472048209146047524821373213105473591863725683496109687137719046666065692906060973661918185236515645309774234979740424087608155426748916684305558730723190351408498347288018603652764230677311699899419755620277713969837141016519978986766912380710997316199526483335363417621600390076153263576911342892365732122541826179841389165079299286318528275692143190995492030078968816416878722495280934070134659159736560449003812070733564935662394640053345117480373664111883902810472235999854052350694701760473840190030658892521920325928281009509137238585539406440602173667936219156699619112622400423806673501669351765942519039221909771233303093317943640022072166973613897917589042557744544745554926628954112024931331830752511894941326362535383160257175088847856895512633067808859978529385096216106905385951879506646719959491940348562672993964235741710055397153164411985073524437544829497752499698280326907026722805238175177408800315236868727232417976692634874325270423460726414439756054752476597780505582081164005369964093310578312420662931251719768407104795533544735300250254121561238589022353993872053909397630049420152737899484193304091924146673272564968936264700713071217379830002687010487413224907091890354745159108649540250767898194802025146676628662314349673609667186813008090298016236800006249651183667542521893788592639653830760819158595965006419566678665777066648750118431538100187132251595607493734390354968614516795413034705958900873945595735432648308321396987367496690135719822752816819189043336046377874221289804521662574371027212945728170793587313814859644695583486368676499534704297806676371518500724991784269666698133097782329174158326327639972129554861984009222125031905322179637951040813117777295242858640254489364645064071805276687349846679321837512856572510089081047938802645215826704928378011572164440999659129303372929674090778767838975210886653164519010778508064241995996301780440261789424728325251535015646542174739088411169062169542454028722527917301762522673595742062388448160818531706392579076735321650139980629253840975911176455766671449989723697783227472059256675933359499847372631806695051702572345421036714080649988706318504017205301963956920985404612122226147853962288301605152420501094410054549445132544731907660582508142993957023269361435885600568026060745156572231461027326279720074290691554592584301392549263123363243652324013523726330394161500672381803183123179732807362584748718298553271163064546880172920766972273664876247960452615316258594978315977133610722401589907478167980753438158598941240918881704736896234490697385848197370139409588012720709438292203370725514729402306348488678203907575492575658137657900933875858687161663870422237770902317045190401733058783065024389821528537085452745269665334764426545008941172025376885744003129895262266899050537324742340287418954558684244390996416321676654447968590979911632234466998943829721699397482858422130219965162035244426911204636007373695422449840692187975262460593645649039298951985328135918349390576478465106239304151002540364123904674420597854327123488119201960266935422950892006357389505928237867672171419898698502214039411745130285141661933658674954988095363846479325542382138419955007551982254977297238317829133453550501177136982821629505136518863003926620676910828334022685240643218838748046534855830775246626685030887885608078543263653807986627636766541288020213617207534969933209363141301581571937731570951502429994482096190802224471159365526332830792197782545697380534336024669920771698028732061639908149056660143889802364070108316718297324116804228980874647738335572155812381863378174922499698788495669521799149297346213964012386138465036523477792973799662191952197890835712529843815929323095621737978346257134354652784453211212952709549269775659819242414598003285915759622864151269450725378503815948353919039991148308226621506318453338660538824531943427932743981823370505783973872779014259493583386532043591848539641182981884736668302466935008742601281953664461687776507770698829341594134208099286773101214698515078107350446700210736595733494502689587660573338527723758821974511971447110240456929840299988938599017025135984395816382983313547796986736727309806396778237913493550350306646188676917668951412958544707586553243906878098306120800874606534442902775542392660667427395294542677388051517625794263386381611059074921002961213919610553885712507274291668049460255220588363000214412196114016739350839135281650819894656837934643282300371952641775673159683703848438235253357709990171830781862089464630686853256921005559123481023592220450701208432363625162059255246212239572837735691693001839551740030227364279984589504956596979639850666101669714800564333837990331550992745049177958045603369608422999371169007435913202951360345555598060081247283182369577716421176144285780737276976811613797106009101751684274073889796123271698838958164542771350427784631866253021650822193875732018020541040854340119700907579637569168608481738262849782720344194173120935111021639789010745237898841497285074303280736288666839000571818124965345975169343893107310260439547242459648208326206791462691416188614110959292307198793051224742223103543936472256549668707979891561643326774852400687859721832331065688952690339466503777009801917885176410993749885010312878039937006841526570623847416677289585526475055872957933482116449997487958852052633724216816337797794711683453474809167564166371325510929477426555130952623265213753700996211869679652576335120480301677811637674016928192564520328250234080057738391171231812369016480189287762492916035342378259486584590041764379061891930097209783359584965759929980149394494942040038602689058398671526979464986914079355858843070509739406857700954534958894452037069848864397205845830975767924972630556005355561345472658968541386415056010758427812287337269782726243245089474752368659880885814785355290881485647739054464936533938937800538694736632749221105861435091235807903008221030564491002135961793587366741289818772129989520396247032565275437378295756542316629927595919420250441613221234827517243740473729694808689184083824391115992179339292310985470857516424877647719441631958078158967883391192733136409095653191711178037050776617594013371350027607535857874123553997939006135040775899222951115770654558518971999315542355203706068756961407543192002996691468763821561774248233200683788959197697903881565855584858675255533709472692515055320227648677108766884073716206261762373561692904949034748738789709502802565077776185831073677200913883154582259064599492277632656254626520388596770497970322410150235220198590564772192879390335363009112674828620140661500369333044862074894668662640366296834204572792737983615829389034963595911017729221404780032596876764929975344234536871356593748497362642784792523732445188089484909665754571299245709554934829962830374665790512690112738758462269815933081495962475755105480184440158244802086499565132557291356685602843292621192909281087712583556768740410736161316672045603903114832502184643525959246476103407216947089976306613244897948085330172349745418983972734513442422447044234105997854728672799314212706247215501254248126292935713735642145591761631388004544134453986563230308788201811851768876098145566643422638250267939678718504810895932290581959868287994254640974823230487963628701583403564202885047608185451859283820483893494672918035551469509487988434641870185375906619573376877808436412896722169916967088968237158403176401016898567718847194285742167526888966472281491149174576732238934960799355364848195752117604901426279210216229510058365697381803067524777952449782898146211650142206651514553293199027166008255620595411791618432680349089930916187975298669594183204889750461834755550344319277664969163908631093664079315539255580206298220923541957646858598519855854650531538463159642954368939139278404026594530304782340961036668840935164475878558309022103547117045476727421853372057047189661489919444712921262909085314478830964276506865219318781930779452270475648830094142940005369006154829032989640315437099497794159295307988922308411075589604308978050858770230286234821737916578956150364617011572745464760218273889894091130610870178726462359819772729319215983680219174653345553952566013943579658858616172376267344729018075990309901995777645870184140630389082249991329049474244587251131930852205633045649567077112131280502061576710555214054628056367639234577745896294255968889972032388567377519287556837378089709271713023661647257830101944060819509180216408399551317072529605708959761170740168085356247004759114614194134277765953839936393409860422385833144522286514344211301635299361461966418811104489986960336324915936779646356059870616561249812110250281220174356301873543731120087131066382203890803820909086856216072126205636611899415352880375993623210937744445380435242654155464628044470230501108005864506833770395870862678026907781271263502571689929325305367465539384660512646848779103271190068704385490780030495511674142198256950517558395299041639585933966354959182923746879399916249629280842645022054039029708057733084519726618283714779223201644860300690446282559512467230911978021809357643892164471880949704560172759431705831273124359681094905293056620389809891692836246435212914077822312751835165983161485809015999459213799261979116607222248897375475975906892916271808838085466184863256481101769790336607465821550779766749700209228945248804772961732174265586264305192557634210007960661719402212106031727604319598493047423679565300320841858415316809265247760418728255289629851535209508180065239029083370498952684677123159889671353259699317890435358463389054045033614439908855222205275467176291133020001609642488914257677705499339748088931400789491890410068753690454672993933448343954064567529949108109041173333456709241950120187741520598517216828225142098527914853407049444441201545404819177896732728959972349135135922409384516305521026009746626493608753529824523455566250816178722977776871873224336999246295029154399982170144659950723503957910075101012080453982128025138674639239076992832711748402099710115238728446817931547315087431364818810802700741088852241825255378296676636617565771548884972849390801237616990126485886075828110223686838038717077445106242239550805043421350532147293420990843789117128634598257310887007701402394814813286081013630455213337028559796900436713379550408647842336541799501150196207517085384174531066951663418439492863247595677150047778145771659513163543566374226268367850307328477559760013202154748847826556510306237240247766144912591499806187283259559948139586000239240417779135462695341746243565964316532629196617823688133551826974787211683348759356653657842220049931637181139301824119730439815629639648614011241894004463881430886200247901891646253823717106530893937835457580819052874369285851701492982804754563801317340714888722785379077726457821124353026287161331686110298418315286285709479806224340906566121341436581531824139826835394769884854588645687717077054883290736798978563578559398766631751474709297873465332686416721727077388823956690689904350681609547969038879825281581249792226736954220118192035628848932645817012469235969529573130966656433690253311757349576857755400230082801808634654626410134708357583004405032705298014832417657260953157080165532595043927283389576002934068000749941779797998947222492146074338262376644232392893279180059547293913125946434048324156808725686057205425174240732846449015494383078534284925230696346900630304038832558218485781471869290006755653527844966879661850535321044567805204206207730533458970117469021866295660317080901449793535354876828228504188136308722730817721043532864136977154049495155988068337471350932867078602638535921202634776646245114364183480372749964735542700371871106974992555726332948616673207703308862866622677406703450365765565395289800129729771870124182032272797870955026004851019324050819970396869132167341460063741946336038931078459251672768348930472485042948920638169547390133412340028672353850844133741869603157387068674042784691316033879445498989860355153460843023808476030115484658891133180308462289318077251965727288013213938439390048032628817056220014874939067613577647938787488432736551319637469812827243844902696259003571224346122785889791108138776454516631178819417308417359582355664156542646645108603422329620969655782177017697700013831604842057660461910830283574544989396212817528153925601982414505173623447108538576870576631226252068373349499794594950299573918600165579972478621081098613866797655739768249988384510335432797264968970252168920674633838880528785011606044365922853102777897648427846215773090972057481446056888659191018030425496753839282455999028919448408293788076976647307547143181974045585141862346406110082210628196499900881020946029035749670706984092744201679652201316531845117325430524591007768869369351792015255408134999735999496392538901059382614717667572606677125460735225452198065117613674066415579701103666261338072150701992156352227538015243857943527401736534498518662489638923338716724527570143028555291729705533203247493735925808587026053873466149942363653716820027883771550830735892109734236629493542084700649056719949742150361443924529858242123541903820673901788073388096289334796634162314053795169771401235987702318759803631018744662028364272914310322929426775125775592210431039684201533637430723118989475352255999095287605195647870844317519532801220139272574912999275731959236363747954390961452014171449910276273780787779133252339377468361700902762628749246454222010364918047333439863380653945134163865152683625971644226197830207582936230753084779610274511419996592533891845302975224657296647860938505762999119498218286389981300841428266912120130250924304919194278229268736688097485127995170473556173744534218530091769080552709869270406106731629707913432438866698926205920886672847177555068376139968551486360168830800557945554136052156660448036065573240450611535052732384539389938769231822813323423852975659960972476267713400995899677955077827887576635663281669607847451248967675829564898915298311191550847657112308364953910996460962620513650316132452032377596236022399812702159994383455147780986072830387618919311049395472210082033155044599727635460513457981933959521488735106888520474544304206643778649168509924759265479230852014944947133485534541405824218151959140543757377625795873132356274331040053490013119103346427131969163597836977316437552459751098953753432619032400899957087562769170801061471426313052304226036223608203660534624727638559795876202911354257316930459826880884671726995600424307094409486526437450070325584456454535011180208151844328930026515133285457779669423695850329300401186343125415391520627909888767762019084754319346445340084833101096239602612659800491405506070468320627904635031081961643888499575353227090947124136166875787629078644860379645670849016780674606703821437853971203668294146041921183170037771387877397743215024370785308803811424995351202528068979185830909450081873963642500008362190306729984837272252018328294502985158402231101327574163009380643360194180860641506793295846075585748357007270271854276083078231828524457092320173584892682095433619258253051429738445798122180960171883695732607608256537920016125217656506766268050379608201868788440047905290940956005118906258297940782244730166010156968010007908364240330778294320305198048053416811656805373683695917243683963927876579849057536216856660896516997033849368129292314965174464714660855894342135070649278780486988786883687154537145812202335929706128624418232270702373778872496074498596588780381446144337229666248922612691863666706841015714465997268658964889869578335293659763576987170080554554656947378286308225517351882871589057863333610333834591826046645026348719191353261030288596627463947849356180566443621067404561748176457007244490795111300438549821356635323233094215681110115306720007095538053675901674548334169818977030892685578294002421193711014797975670510247609052634585385905842296454097864234602574516336431541795851245452606555671257933919908309973238695546058437760454599131690429723213022934848967221559291425185578380142010071228687744896557012521464658154367960345693842876560699976941670557454471302823346155394964905870677725201155039726280098595165596606740254512225010340916100947530165817692658510748205010226207123428035461223313422518380940143965096014442666607063256282275287907058291277552649680685368927191970621740151349852381458552301214400955648607821241869934938703642071491201780115118121324826685272192548059920993352668361360621867888029295090381436366357854806248922706743954348829367393085883433546702874431649998464086975149010498880059844829114040959645782982265511706974875373115448432121728550196811993100306149490732513822667040267088806153040050817133585040945605101179619635943855266033193444358395266794162256915571050037232768711275344879679677173243295643000191911890663538773601741793647101580911198475196532382056564672811869593986288459435518704641900208879771529156135412203685011555962857411693909925551487862067652114419457990173742980750812654735181132065286339706991137769025236614434200455787792640757700164481065855114087817888719260916870369527001707928496929961160447653155365755314866532778109751369590234220917856896625944850157303185583966476176054200838752277643126353908994858641620726215245098888604420732165118697948307686999462048276980637371001519608353685003649805400696854334308847116465028551571472491022613964578218688528356939335732198587080181318665177579330046942792543472527926895969920022567519246791367296363239883957308002388579519461648499938648135385964288899105688620469342607382135708426911678462255128292746679122807529882435915772378096750267425137151166796984301623115374787203789413759346107575844536829723377031044537739629572796605783494292794286679280516760132526431663256147054175999665346183216632297725852139604803351884503719271144689975470527305601980890732017869982150533288042908946074265205385716140225683100239004958681524348292373004628864408677303108981238025687792443068599706895897857387118614181361575706408992836357847831846077239475247469738097686473978574179709835936753790589122750656462256480648196203801557534066970582287429631092641608584292406711337454834038350905859580298770696726705496919506060583486788628830371608202349523030506204352944500363766983557135128030007789019514905807631119398980037335918106128892956835361091291068973991817393303764347627895053232266312794873413574337484007511576648607386348638400812772495505318756988651976896329644375024616265292024229317348929176188921424807213815049449650008066901618068503133093064173758316781252861547352677966726322444865989602874364136757258440969790462361343438407292930824601426895309829390785576278075473819362824040440040071359562423618092465810040549061826548772972653455340855772935916139446930733034032539585198953483095391545109279451060980473985407012111818365419516367859400509108299144039891021133597593653818134471285934235489594361914945423965386216177135410202345455632888234232149896116931670736060788691766950125038306427342203536597786875710766895673597336535808633088041492562601194608078445522688278922067516739588666833180592883640346143499057859212928124461224897767973352102556206329914162175774080309106761086115779738903132033318901023660605667413105855406648747188495435656281250182839915773987553904895576197808251845590329230368659729706452836640246788104674377754027790691030256232105296827539316273223999763494036230159500531411943854448278199656299919874796578074036129215389646873766110113496998377162687329387293214048070483021740585229357394486414669247096520609390816566812112267648703878752868613310155106997593121587917959867848467566019265884578385084607578196823457185807286291603390956129379863429994804992112776254818791506832684404964492420378444216448386141281910964154095871282860908202241522743105685375557219084818537130041536321516451284040598055914249390235687281818035143246878176590867077677239148686212837431617570853506354587748043719449724243319664734036280203475071649937525628542160574442421811930862898096321112900482486190563848191274213943027934048728153399188941339544262158160848621450507271607151409322761935491325489078357213367670407567527825112970758490297172039207669909330370494683361831436351401342122752736660772989755510405752662946962359924907176378797136529243475353873355217337720051776383432785594303304002131493808089104869761038216104483214234990622750242624858447755891899336615501101977874419004916665017333762309406988744874264220469549752671259903420327024638230387438509666097175926568412399218554745581037434854159247442996295361796235619072373595338262997983606385966988307495289192664472896793290166592173451947272959329357856902821082098408454354729952250783431481678620632460652307550168186609360809053106668058305486517688808285181627377516004668317759989397026771495173001007213797805422799007274501199988774889508752726378592201348179000483760297917318292497311948183454552261078747414199630410301427004185412054167230016573660127788231053566147315693711701113263821903666397982219783840415676004170969013122950251928366164390644516873512491833863913008720785335571705409268596674088529020141543734190482364802737809568499586050852464724223827796390453525442215282299012952015300573682739973597322109248635504614592167213391915338830585911060471742929534014059238965587197849620208909025294753747701228740863696652272368049502557209436263973821435323782206909152515180236579245771544469276298000161276438799255432484944796370522438766332694738708321728924729801725028762895900136861602658612284680550839265380556991889513428840516996137928896538501573575352932603214243967937233928541127594420041245375885485723811818634604757318633823010707837252632713799516799552623394154683644457722937186450695183236717431948935146927067093239136656636945320263977106052730757324493216681421506653624873645492350408895847541046945494177302937053923872630247342950182063262715529593292208822408738914756956431875605286165009297366809538425706373884879112349761006817976202640276634579233740019692072638950778390160973062437970268960320625866021378982524349564508489477584666606107653014062644701936012112589205001514971689162405673136957597793837950485622566747789977280939295240964764961542648730925702093974709350957828198833032159959663235613508087841011384079784076381450254135067481304251405568682643638196125318817730425395059774944568280946757050315643347290505094542714885692547085964321077370366049206976866883439238794053586780722931064314206354531983068406222288461426188290435480725287289019331887688225300842881013890457871127871758965403937988746975291673711868026296867124588096279837415319691447498288952733238810872373172313018825567102232017482885329246516117385722885412449148481779466439600714893281369252952484801201657710867368039820211680297013602579689143738290669068209478855129590817093128428494537880380083714344479113095658314944286954065341636640148849496255537888251504918479621533255993872098827729322358082197167961720309434225041474640156807351649009456119887009930817614633380777215762707897539933679332628291972789816107193897474151631502438671946162761270872745043728581049772733580380544863201270555409060694357793636972258415728775886234240777108352829093157752580994857929111255663900578068066846374280478831659960431216423647640575452113036518860108439104603304369485311138110481996205461322948873186221105981974366490008861374939199048430579687409143755964797584409980952240184294208378797450824576728884710740463309438962866883465085076197198758992132068549648072495970004707778025090869617184214216783530656688186521957379861567213459055513368471143344538103715565423592585134711032140950258250952383404913733887983489719067181643939424781922110605364919660169630581159521883519834053206202694498385774302853910532743520364023838712728190525426823540281616718274674755546479553918253491304230645189431628807289476948064638401727897517734671757974117657016012797588032529737718664197537109351942179960986442919268857882578315558712910427009903158875551442224055832285854399944862145969230331351169437711034294527847888868496062188768465903459080222501114213714748783864363474514688849773127213297506086629420256004745193931469831325891359067645782314499073512577320211443842797355163429385215430647045222752749400262743228667419856602534417210035195065925262007731833731254947398388834134377908842303224681072792579382395080343638501345373661256402993549952670135968408511478177521458830128888673490468775240719612242579326288745474029120935524458059006875763180183751994283047511116493314535484010667380757188925774837474018067275202826459000697501048846157758467073585306757629290024621171336482685175366027123440334950303196095133584728617712348609765168501776243794151569468398245739192560573580585738448769492909682947432733191335509331953808516829616079275731176317855301300569698443740221065588000592167534663688948431064956795322798920542210690552716961223837638154621387526634149941754617432683728259236427948226601634442889145291829693701096405198134148178518790560115387973940630252652180743914985834458612453589045454639901721695067451380737080696314112771902510856879284077711406747560844551634009130626667646282864357441153657257960762643016649591232338969138194838781808149294797343330240371345885992910911066418699599926046106318662368322919335094589111619183941588763172113601176635230525453586738604029125228061727107018433698916577520505547187439130279578243659842503154733942194052456137824658923203846673603743046670873957199035783046853014953194569493428677652041047612630565521093113480429028182232146320759650299497855003276726139285577876256444553739799183303479334930985690139454796633180682609560561146309784160647717856557210050008362634259974504772291497574610385959974958822896986515412128643227686020715944087556335290806869749225939538015990540849059463942039286008125152527212228964357918797636925872430371993435150522483227215882431334214169729633249432463688993286847203261407954971334694914077302440414389589151291551667324469351946258642350139964492550530140302163890985085555094158113754739065314891516390769143673375115766234812114474777058160392767655353409070811096349656242837421781346336229678889812433072292080716304973614569319661157618948187776587904285204457080275823419662302305306480896457982075119296645622037319098115556294207109001263626776858166848752492010925119143977283043192592440680361242872333894016590866638097314163004405871012664942954791478968498311670051782802928083982700209891036389649466461972238586914411865745088059373282662368569352506221777105341758919683022755144121976724298584007419282225006355508642519463573880700964930503565792336042661137056647405333668535802550943333796452722445615109053089956706437884420654814931139061956932688360690429006618406556440559781697723641766255180801536427257721851170453959531371894093732462731523675092800528688620525179865737251573365983228521295623522929567969482143883638033741790352459199794998672919424139683700691151659820979503093275896625257140951179062005146805571252183277669444341340485606168136425930509317352191360473354697655247414313353518919450616872143966624982711208890566581422071135232484850805934321962948416782815163697479157021419938579193641564344536768487231420639454496042122436285284512395949009378452858136314268044456567115215709002929123999380935129822276911257854353490030829198823858367906616119683532283715151557036245471197938955278979846494897747580961849531188034573047547935611292225466450733483056417596498070623136830392456854244377082559284831614237948392234684180047704149739188938402959299875043017723761527342972017390852155289474057355944657653813437244958761827915824222298596376581646342910154376586515449012430904639090827408521523723771607672313309395941022658760079869029698638751824180452112344266080907000154777496407951475843169396453229087592201314255948205730782459243395869427468994136172900997619576052352758183014753185236983985430548872000294614273562888420559075283602520812268527324572119899877348902195601864716769267388398927540170158954815419605827803007860634236751293243974746822376389217909731276760323914691313923288280568893770875314227249312043381796987636549451266275938633840413531161339055838576662085506665856889741106804088322729125862097354261922541435490831555345735775402594429778270228771634635783225455721042051313952209989736620538124039005796603159729055402511118990524070441947403751693568572784772647496670687573998845180471256062485121604300577548269681574918022169515884081432170975524493632261121510571100814713248281911048169884097368543697523247628698524685197590299494049436036662660372071651893449516539707029052294902056435610895475562330560910589841071300870376467801474088328703116882667700415439495781993556589042874465130756171961849892712862020450341827063815770817387869159753972695878362581397774908101249403347950084235203738367750553992726668938753140997528389697673626393802569200212350698347520201234636336730125593045535918600384874160423677595876321065059815125065684208342913522689933444531784533190684894944453684083370056588503871314907449898541714564223211211255439978838902598461935866477721203727073586302097410217185114115970803182420596193043930545693071342905818115574804284533458337231340166685731501086165972020311772870516128039105421024063035494521056486739785487416193099610374830903909359069818277962390728959447189950396678669411499753622501335672913322639862414281525244082064865249559584501531101280946049651082251623501308448896097759315130546104796014507305919994071954419355760798815533487182286499060646382399134230671143669127527343636478768106552147147298538160411955631777607583975926805100227469405905857321335307255573915064596232838480427227158999772787202702832875753891804895114640003166042145751027952369183483845072656167851453505579882969920853059056316318468196410261680947677107903128158503283883331241156407092380001263010285514279923921636777085065840122564695408985573434035407592464143675739240352237875508714211285466449154997924376619168567343806751090583066296552800660921095432399507869246779988265615785117003566473379676115820913800385831466140579844509772643214340420711100876805879568744573832699983522717544896658724449160066942838631279861702962488256106202767867486123587673971689047500419490517002282895511463872962505166548040669823339222498547259728028706018671842810128703522210892994476608435091851900238657255446794180088857515977667723902129916190819240410412459807177665787620601281771211611203295969165444882603309358473546754138296683922466932610120979603966620018338851684514185420816007303549585620855516486636630733133845354139017277189495155692367312312017415555317038392460846388661358695182029546673846700603773843802912485278157448234863249151770470159009525064082023147329944762396251637837956966508045914613825041537083443350503258337757225410682280576344152747540705002603918567163933808247023014601532002517577382509474863366966969219170157359862263784341347678689266523186659553537726994541671751480401918247853618152118158152438819407711469607799205457310729931566206244041197963323194333267960160152397576692902909449625792892629710004175683723705772268195659867872388292977714019009944218734656067076315773113639365024747995738206992722705253856202378127119187902817459157052226877231752727306113958464918321952822246750896429897284770079020469477834232116587130637023631473917368602376879767839141022716702011903673182277905309530730522621738626043837358638162581133746166066021717532701293857901999784403966244485790648285469311201847147739582194039198816091952395994802764116261818107908229201444618481839185037699463309377274613180905800911173209417069393798877618831875674328878107371208408162059278496712135374796266823514278278408799930015030248589587144473796852565321397561603374737230556815987991263400173934832169579307895022889010634201323499540927857190868336842418362710338905111547151477182334215950843328117906542600219223888324073036411871672778273865994147850738652194272923890432865569808562541593355562033620868244446382555744582341439731848409367804447230649850438507295303849631365572152618169027964298521321639640207659837017029562896334886718755414893824729756735349817918862881877218547822458306419386313443377833126986981998340895230151954980675863984472512798326293967776504054730388629521793528417669612406770322149498534550965771297900633732120149913543282410724894265504221371568370019686354020171669721302686417600885661709173804459057816294632924006402242940564653382143539485600904765326124953604478897674314470159812779526261105805162237531811722870073029774064289572240364164731496768050069068652702996031158060373991462235841845164173390901378886334403064902505597995356149559831154145616866462543515148861470427629487730342695089161077889645004031960421583862168796884839486100916217834686295454034277654675846502464209287459696959057629715766277287444391157453136274918336019300686709603467067409190911426107489111943224683171547386599547994313700722568140984137461575822071913793667992016553444911734937910382152573584009084652690443576726856853086000008334523100404980701121971121465310825198808858963725482376697844350653035059705926136453484954851895340098155485415529727786965588613033386687900436000940591931873120249314822696027832032294607435841200279802950932357457368483146402232932100581970775163787961844350173184967962297719751044875306474795731182361710166442263341138048578236660346896878378043601113215471810904953391874835164960832160257428776083288364800271934296689506159777902975106578814111107912818994138584213792904307391529503019099738850344808542379635514287076377854956834933831694606526409257067327226137669601441240368626288084133564664011605502782605419706755089484050446049398682751924655345591499453176475771379246074340433196912605983917529400666261236065293129221725814515861548057368013535166410358825561495242379358416255707140426043490067652203955683692603289468855903744676867752345642089492872683364783628271705903644623699058718129404962374687031896475296413297910585456695731627873162685103016227256781590966599250368080586602095375198713492523847349011463087777322645473507939593890332884501005192166874580606019403172506374847715599246951081382988252523929383305912139752480487175801493569127266360431904949903570421079912347460846480641080992760698702914288551326210668658630558085489049027123108121020277903563900152986155607641760823230704957287077533074940945556379431531111695229928339115597293677901902919587249798891777521029995147530127953086774890837302719933597562449846992435425439675577356182970505080280806308788672009464958320492460902195090852645034325720862960456831957391020132825918557781927566071915335756024985446682306545373378790819391488642512082275095767289862670253815371325808573112539789189185960357216410913121440102371164736074673364788118148224841781633816557672376911535867639180052137754533238746654731433753056181349486556341898590829743039279044859141539257727635548133057007489207520956146280593342795978679369242573753715949839009081856350492388456928545603477913806077147293208567012602400301241517670768273047862998720602410615866711730479451352597019945582758921032521361551236385941884215791236802592131469728596133493240543695560083455841852200639496790782815745440813937851618537456761933196482107953087192796220524070103280340311623559365598380489531568295101505786983290864726822298102302764135167110063692749380607996485660554473245695330834605015932458016452228447904325497601354034764073721389145808662189058713046644665675571886019631126291992698489216069094522907347796741068734131142361314442679523974599736483348622046949470640613492279443109934324447248366554197172738994888959485587739095233594136376199319236669264483020003233014525640643048059772538257409297000212643167812997769004978609980720188206796023438994944296179773135169536723301769981316882524591199139936996932846391742090717019280149618956440051809890789933678437460310240063198122221441222179759712429213279173052878602287460513983826618946146286864813774225226083346601543127610673171838274801124756450843914398956406480992574769359441657178064685173379241990670099319658823752335722094480091773831410437528478873617511332436905201933915738689697791891221753302574965658164984275139283300769799428500380652028457139594327958497246196343015390062369080777708645214498352989265127819246319821953743597414806038243031062436390647740745266519124704058974014769990625941696910777123138233422334395472056611013688557953102753123039884530813618898533705376102463818290245966276117788591638268613590939729869390087492464167796254083274259684470797801066563932210214107975376963978092763494299186221254273616244684086433097297855285791533789175201814050860303265435700826884766052353755278900750175031580260346849822798874844985111802737175887468424587726275909472875550953830096344150001540052358892926673981535767404836805143328276975576125389662856562611083552168862040064898118933398987369040196126060774842511068633311431061411910568202907364131120978965113556667866925855416761987246975880410304926943092233320408852757933982389233343890122233829755357680422109629155214619781617739409241093570288754775432402623878524413183839977874627925260544999678966790275277370241095475907544873212029234442355100315726679313862083643354506990924380255746541851294748462638712628277769049891280336231849041195660360778830250058384514984717250528931219538812545180666960736309374025420547253132470036971030607849749485623925286594667045211411951581312322295319838754015583515666131566589650138166136250268833831694191137038262301733709756566833182135543745184702033234591932931925836798240044910372043098579825085389897361740910217725974955550596707536149030585220534702775888635235076206975007048880426251909867245926853741161183246895799054660074899722427493082672972018887059675007347773691098896924672638874878029797296908223938434836901525898292404551692828165058439515572424444776384243285094939962182724712660901805874403334734133532252961608812459328953498113661820778609071209228720631728569741053450170341640082937072700406367651240864846719129569919584098489296611735206351635045143836199722883445802279883465726401817666815376620405892876379348127509598697616583705505695303994029087583671375373128451322952097867608857933552965390405518743049644831978146293822818987092773713589872856478267926212252389549815254796492405911853080618528043736058731770850678744516284590410592731331833174986120234912969488279878285008800219999092460068538137003648012540057242098069367814782259628396659462222889099079401892038690498260367278082937554883959732260056372566205749922699388083255502507394120102584805175997716396832952588297822610500723911366199201781741283938675672394326410776261678133914398064571689669063657801208452681516945583517169400951530470524579217970760361851363983608053779920791578079621437300936516929404562454115555662374966826216631989606816694643543346750742651685883599646885270020091537673682310631268775385691124523053833815023494492084876471885368393943872988768772348916694504556591523166256273638217048948487730924357467882623283473961174850408540272338350909552378372415110226408609976416155822188387855726566069315187284089087078282939043801820442530906431575879324886175657230059343758947380986361960233457628717332135439870348430389289004885444196621304107567132512187755313551709848981273410477002828400537917522642847165506208450401410642850738918219848892264790312132957006164616208895296803147268045196876313450723813502259767909456316561147509172515410620429073000908671101579175029897243158878284359655738713172558711058784180951833110064108102192000577478405345635448264122997122943890632410325395409244284630926429077617359798268623885920868127478267110869627085333939937560871416185735490332354907012882501913110880252114493463237227563350938914983653335503079983886513269954561891944908762846270476800737845680885391974253710312573765893698529241478129067126571023949582521398000611900152174030820693105663110421139142616966271201978969952618472677028008327111478197426459205243835439838517154404557498290983351386111223530670873375942137028642212771045240221888822968265287410763471120553398333954351118082755189038190329714976010601065311610376268547608429044576679700447223635251112414538988681146513060531279723463145030256625760085792361112597273026687311894405369911655741567791315776101449368915269785079222928085273123107680959049111926421296154606105215577371217400241291488250776351835797826015839337350970411124728168636897848830806313139970379990393808823539122058351168590106612222862256295433961444974184453580294248415682128167909686575076749209684625495810753307637150043864184604504541588911059086584036086558788844330476463047627116944006659173182640762335714116587289760477608485284318774598141808024194552158603947838274073829568536421681621378070418932996109384079860166573028501640275300549524292285668719185168733672161800094169690415915238948915852226511563076346592928757560552635191146601444823042325923765591049924205359901731511475566647053458945142903556684307257183269807170728414597214835928937167232101042026910515505429540693301376513493396637530103327422607044700760933300362680641661513232252989365098904534488912433294966477763569105491341327016102832489400010822805151616620854030163761704664872432478183787770742709345470261966296568096566696925709872003414173491023147226435172008586985088662294420369882514160185194583358897372995257233780520949070227186880315315776979710014554736116564368954552899305706105245752327041943745681703228169763827483518556494559458163542251663237592405364156984888822461818830556800429304473055015728046800238198696970686537996860421191052910720681452514807675826368346512806224322056006530842991508537363723485779483404307947735818996283993836867910471975568046530853802017362340503599778557806403118985644867299445724826086060263809010257391512016779563892562182919346523170647568947721217392389261055927660686554879832409193923409185874669588503816674386826759294237197017392189196039426530922866845061875761579649122386669116934154560845997177392859054986280173987491471651433299186500612971932618403282275560690928522107733001114925290216258885039204615897539946351060249823001886402273582860397970544851274895213939431726084853574613819962251087924159458586055277654834323263290837800104991669359028927800483386754087894515441078809177683428717108583062307672039549111879083843698728853117859811616087275878683261295928805511006197240824889672715957836822932337952879624220172835746600494749448437389572554354164352503296038752474197058438710190656040249505204783806224306177567142050781228294777246721160756203856812382628142245888358075018326664538640626377477479828118106201732017035285794740979443861199376103715513925404835634524377949642638248728856301630491174660826590308917262825441252047492606539473434408373269434802159076803941342455055400463907150713877762443124349001618876144230911061773989941823898764384058173945698097295419735299938363221495573526283814771252564141644300562365427321590775960982134825944126566359826909357987751062260452634215185143970081673205260721173131206136671282434183352557271372928126553905509692361387856879687786814863803401534551103655875599259640723615262685758500475335563559653665602031226005494774774345007147879269426568602735332614045165219657319738402416892920110393136582769495319241064890947064398893068337053630792164782491872322717539957152295981257863894043866727871280202343535570831912281348053481081152249885689264129403603809563372545525496361721549427314673826847052170932937198771454894573451760580483420512309082668601915514603188832404991465981977702130716824543048147479279594731364350160151811629247928814827576092357930404202330818498211282635846141568742113981903563799313246487871745471022196684280206854416884561294312717523177294238656414509209064068921325415467894763297782646657656954780811956902027997237908460841614984312630367998413322730502337506967566115442506681108350165088252590040234884055308509884239423336027152455930288151679644973514254495479686831578058309370987694627534380443550482115846071078909625698694926901001703748691954221939439875062043683063306703641265949115299553268566027000294177707275623275199191110884706472667864904625672510865089561573620758893668571763606147112798639967542438015534062186072385784377178700868702962638665751533542442783366883705894828654862969533579197729863846881332278813469568282128460789934999235603294828070195933817640972473937137188901792554778971475035581032225054747202199549740817911965030627308839531119725218761198377292028390942895438864037934168829988919807361146955104203789973637684727628244045094683770684268579495028951417415419728080438142619008305447878574194272758720152374973595793163044608303879033553830834954503192156794920115092036283655418394774766556526827892868747815108709625449317577581226675403187956760375442312080867253741946508483438162635513622496968015972597115403683974307357392160388004797961857817217985906542130542021576192931882232432460331167884764188485481769056588398228571854458543769880754632703287095150424968965407544161693783914711337151266278205279744440782340026215449377647723116731721219919938291524319428779303517813267951122372370992057914854960232847164684867746724022944525400915896326569858921163774107036747006994544380407281777643319853741639926964227430689808833508457011598163364436837628591854647368054772847861107560802068700273028713684498711040079438590669953554704906188456993255500876958210686222951438113413831290683918976530292505863697753597352419090622293867603202433497938855903844503954213178443595490300456986323735858193849235414535732032212109286101973854767004831270138266295403510554717154574214374042828976816581346027477634099863296426901507899856082889916588936341962988138744704337798512045850886483689263103574405177183865098548519390073872781387077651649789164879118951790328895587769108864866691985827910354471580428705148974237692403783198044308541778935413609751825110704050412390715271298869214525675944469174166153049474827792471098985857594089889899755951555751374953704153115684046177854258211369158579336864062037690133888460428999587468208211331629663744564127244749031750582684165464783748925825290838342285203787041513227908598915971420615549223999090129713142813235027512132131215995483312625226789593623877231458223306812444925423433556457739761575987757245160763302520780927117823038831196049389260241375930714037464814715265045565980832814864410984902604582965414153517979849270629255143793987062250982609306821336508150192157195709539035771602356999490059718722215252576499246862362672553176108043915133127841561584409839743145551868956844656358442669383406310586978697047111498541378148711981515170311195020412234348729157832357612590666903214093821262270934693843195833401562978641342740677527658566020779731286298019704203743557077575691014300439335369523881571545886704518330520740359570923104576244677872220073753867585988931707293301352460709573765235976794298513407396075566684392210935191350212426871834656728109420656215149715206893792455298932884545376315399244281611001635604395857747018431613371285357071067367303403944406759213650848533999372301126897351572436616922898582862735000691227293208740066675573952969489655702008151030307369216594028825752094221147712622710336156225444374933848765052200765196866446696499304500037932140266165688493375972432053689956499486889488168816875845902742516190015606547192554722695417137472740959298673654029813001209503953440484418617029184032548263796814816223087254563834089790421296270112596304225963340199209610274652057745020408789999600712250950871597414715137107799581031288243784970723027989647762351775840892993172942199013436480988327959505781036314788494156765711779367540141744885215636858940143277695337764403611763614820103344000432520910031844268052322184252431801273088610247996392659158660860232289701652157249001655834382658821460598979862134431704356687399423245627393138525206811626444209091814406315571759864724459264386909692495109831984724287032832506884465370004128675988289888033231364747659066131425540197466447361079958624402753748085340951432647213957897803523909056593003964541779847576788373142357516699440338418385259529340124758670914991547600687831632596490768615680218561099994123170010561153707958756210654627836804165027337940702871201043641015872541311854471592511802934076964927824355677745204464831934763099783296983816357690532867161143641677980033723723893940070223791892741598698104361615927245244729744369076254174227949625666903589700169790057147406059156540169172679390863441465742152196429039784906270841678959277360733725559137801888158739848432919757702684862462808478270576141957555455605021953861175747182539159784626547976060225454207694675944013428952810746176412454683843428540799092456885610966141816977292597892513516258858368264091637755163473611263701730974096106621427814873947774724545949276104681915094085586241153048269633384941038464169379162548402771317227838219155115581187652593444177732621522933984180053402740181256594166117103024051088295747903995959783926037423574855672932652758369062625567358562552558952447060173328538548564742881002409396069151273378969047073632626117887673108671202073006738796448567214445143930132221423786075067382931308165596122694054549987883939302567230716790598099710465392983993981587457795179765092621981492781850010153062460542341910906814458234563780659809353869077503955398252510161028775367224759091393855001996797695174816469154926330404247202440127365136887426870119564536177713743556898218798329187199770578325546529278362103005508540943366909761522510374144017740223594904944120534827066849634471434357174126200292683739784445951231801110931075507599949743473564045680513266489148439060280987546767937119126754859600405763345388521439701962238749462378863227209951307383457999930248858562822347946590918995543067204346679110817975586428335589731017278604766304535853237867760574413633870353751689526804260110676831814502796488865349794649684934159319877037575254941415218165815913311530163535128197798212366253957458589334314464266030731414305271359913667552461070189350956761733795069983930796994691563324335293735792026114888381547809360619200185549009327486430550353831725993460579591222900034950757109395404509498640832046170879168834482156572315987194754394816604782485650045785893840184339901000155258515080581447093268143329948143846929172565884622932139110229763670338593631024730753705859970916717641192816744260094160409915451780811330358458160527589953308382659129446350543789297047588773915740516120504674243152639455661976096601931559891488935367264203454275169172086998250200420977794202996434081145168072248170229172028929504133668731662771711847267903012717887599983581040489142290964550968292171646766469045573824677057146831144095026187573840758771079858119332240812094450677543828736654351207658317570529151995266268741663766407705258635077637760887275016933295617626290070702858623666370906044453062920423186992057940437312216512365151165521990940411255372220812453794416321833215569863766747117602452894927194540964955969746331248984905915208047828448062412178595267547332550612861564417050534408964831246235451871615378279081494896786141621647230696111446046993230208011905271605644753103007320712224976160537875183293088109262675387898005824395535082466546568720794734364133904147184049642266934343452687588980070564811565182220782715597698192462992516651219758893628581964316743853475607920588335520559619905444214936309243098650857538579192294795129929638115189645275971186539470673217041396399075407877891758730028219237733390843811414076441437446035983040197132989393983307766337118314874921369980834294781921831812853338173498199726190060798965130259062800202649343640974270831213615121507637104118145290841630653164628516641571888312339740783366091420270502858283560051299905795768202770241127418669613963725386576421511618423218196095272350405137583618471589887545317595338293953196942451255180298244374903611537777004460257763686817610474629988993527037645113750395908271589490486586560403668859728872216900305465028601016599714109202340784042134053261449349080362787130372551151124231457438678515422323949403994324802531168140309394917652382783955061801232993085467905623061261655412253542507183103728360731137514985795168878736670297513380914938912937376900955846395085120264936795534547281268590033254888561191000935489323230543122845826117990689001786005460274104699070735120263002858966298626457749368003186977745654764532747396679221443979621745623871323622580251998926372899944171405694297676010087292933191715864471857188140416667818678746078564942199394894435802256278598672927304773740766848480642478890540347759080128975386168690157513702039347367547292135715470870298798603485434267084240348282708744870362513494091949451802280189193650137168969655832462501780907057169344102619679896590263207965042475057242007072442901762422743215319990891290992953285875040400347486771961284960890353095609084811323516198162632823073485919917143646957155653588383374502799593444320223355988951001502004052238999442182297895147261573398353162591320130065879699606020395165946483160920425325592919936512622986273737735392682329223710411246011687301218530162698957264693312874991686394376627233581429413595577624979491690537440526473320820097542808712630530993083338362916846128524455396455762078208979208103195156093313152265908861611751815005791616900063838159167685773796743870177688570266369206850269639402651399739651597746006790301462736477364181756065444617084642657941148588123361705515384270447189223351431765782719012857361642830989004166831394025703386419649760081759318953579642729826137281106564840983058632245009652652620893415485701450441112719007273012575858394744991320266425976438434553488668123089359012997515517083645252295674697844980186461172304951186311803625098253814153170483930542023522919557306241603980703875928930914963293082296775444842538227933085176460128558317760326627840889025068877872786533737891603417351527260504560381529327553827788703459064901579159380535843607382839813301444681191037824298603168652974017983603750502324891123753371166903701106186460662329714957704391827616471961964757680005458653471332917592003073063936572612539139219582297552389083864259752483456522117285773856664050246800808387789806972545499691162315985516639187087008034270354323761092107294420991478476374165963731627178271625507185981417803199335440767721952339164702612647746091646715857590204564553274400385925926114557303592731283111585777757640846622545952506440767553307223365019361500575762071748664970882157635904171582930521697307663117591985848710627795697976367480985058004250646097785154430960744734294459783833314385919186145119465905375348202244499995023954682204485274630218226384869911538653695501632009957936172597041386986392718633714597236607834412152288446487887385883965915488988819854058435645903344703184837983165982801537953566933158065133964896242932011517511596588298830341166690496422183098219142269235398137502487230498917053669881337277445858315141739190181700744037920273297934276172464498430267824999106769789570487265564803537410874329489552445268943032277451706223932791792694486216233313906680929769439418709985553599546822002288078190320194576405990190230474487978393076961474840741209880554979519808750839007464013426528726540768080864662916302818850208820015924863052049038291308405200245945842600230278485214968531159910232862089629932068182001401745855185717572954265279492485370661250954303428872767030796273817706086604223606563722611364355548453954800369971397192607757462209655295672480287592441808242661474214766502289850861284161290799883373562153182790201686058602961307365302439856691857894526396597843506573643597511938509219693450759075182802784458685772247465113231802771690580188791994930511533397082328362772807645157868713312649257925727409795643948940995709208646544906821576509083998577225039698121280542867260673062168736144025817653700177649784676974414169035317581841740565077313223039940453487594812931919858717430763662469315418455397656495942278203969913414500830570504561706320531564104992900425199118689816599335869696298411194442062744105977459406455865382938077263969877861867402276717303745216346499899749622471257706475536196114678845014017803984919162261350301619503787799704400426405143624630615096206929318908756252003351968106998031457830665598577832822480111454768898617857287119027308101476480681992444543060565881496302924563605513019187919937123134127023609551973514250552396758700361917150438242327065386689331106827036332538580639787033548854263522295674161777508828822247302153270349081994731431294309073915772845933066583649825492998805514534345877036584926748981039722318271622011024768827331481674956944237433584542170399408311737031061647018139121534034268410371465163412009575429293926223562664957138684707575480786461353392937639369761030258027417506825977147759461916752750355751176900704605183241326003058087977938443329390539570670458359631174397449334714048547210570797314204272123891426900355644866783245888301676534903861391823922367158985508147520127663550544708714013617222057345391386498487702819449417964205201887296311952652561646844623546181987198546570187104493514699193211278234115777169720591415596544006097010315455033001005229237509541220917166573666859451529459386004645461700084369156921803432000295995701353940865669419292863738507125626066835301040576036169613275514928618029551466696893622011205563642197471870503209460924339212502645844663117379260260569299118552744471227928479750008456802131222142190967348379167998681667950227921718340134947270279227091624941038285122665352817569722453572050973078177142561737538099209355856754841330136979440192102932291044403530448282734867354775007759033703964901316485720614332893216402609652872347970560294911531795208367542756500723218765620770918056832181766295310786838861707624521955536811171241250307078641523890847554074060659218248940246058201272662753331693494746306039975305167148477890385123402725415821659421090980394142956829100760978476040513137354019797962199844061577700896902618906975319141831414581199349461966138928407400587990902807151077829276093045979634753004998378427409213442155888452897515504321609618113007817508858312609655229072752405406686307452362934102400531227769950575784696501788909753523436469228545979662030650424370629087495947996341676461451018815847057202336773799880859795119847127349822830180289402365340353642675496075922771090531618763620224691046306757647537403475944070579627331946046463431304043995885670820843292692133086021766350256097975001324403222782303899154471269965320382807223977130605414390612681304144905915639979553593716988415015588280058715272658461765516701716457152789116423593754543493689287423631435880956938130328339423616732735965485393024952939458894559547426594589180343919061859516511634498883174868220610366189113038273515985124381409735578427502714469699673947784174966982141210835118050987512204060665182382854622354616713627366954959528774365366413487620316766160488597179773611726003993313031871939718002503162066420164863502274982056586583878993675433209341302551203898732301407695381466354348068055634662342597113853838785871947091814788271724567108085184050067013137144259783902540160863811045962238534419892792707493898420133562981687918817060554569445555816857438074315988097465382758776195671096910622150817922654328738543551290546865426381571396092361584284512512678560176665443587333231090964453674081369253023634317062639985228069278595906687758334283927186103951674399782126971477513858923571856852229728614309990815641568519642274050431336355834726131564097132418108635466698477402916950605909877051177502333021849367328332853205385020665361747922628835013909003258225951484721621400688651092577349369581136043114843272127636987703793145903145918215574017331780279173076190082358067276737333109455580768137570437345242197280174804562624100649386663703266253314051960606531574158549393728111675250815675376573453012493796956107606587228029351769090492028334481991078153867926672637433736024681316972903876891829846817728882277038311891145085505717664075845669995413586550149105765437541787768603029601857047661269431563198870705588609217718629139490665566997189065692995630128308400224074475706417768988171872433729496141311611153776633919639022175082756562227255747263479406406934496654676314335802705452493406327757923477244161573594518686729335219678708485310649739138140688128196191327843625535012009749073164913535303128462398915033766545745698488404249099488892886791292722149982818076577274896260340336072133621471785236028312714018130579538574633966128038106804103509341565504111269976743455214680810086546954069439294920853445850025967952374103852369494715952583836929470828731075020673214467632655135192581542233012013674654196659623044641745718956143949437425202595990823651607831712721807805245703545580452553649179428068689189850401092082038988162571346491931369651852754706433231725656767131199757422946627196498220955974521394856405676760097976675587918981291746773403454270227442501882735822206651516758032521404711009588818374170920216265528063756163004156993257817735295858359359901969782251472596894441687642335875615781294330790131059248289543613918785645256545453621250248373379863717194224273564200281397306314113259350750652467975847526408682487695497313737589340108912504329310728710205776324820788124959713029750904936149462083633923644316537393769988505602012640999665331415049317361740752896914550789752108992458866879644018548853748118403427624514229932508418126882511982160953961965441222923389660429564355182302786547244195838113921164285523856667328673814821918528570323404225462928842274198893582663203686709730095215130401224764172005800461934532095403448534284527075425261036442900396738974284286425776020748401637590939670379161046091460558654663772604588816860903887707119341021583332216472779504386372174590407064721709254956531090387539509169451639688182114897438579588329802622725684525763495561598310403236619705422547941888141627076302435916278226971864505182618576493165546435252138897424848881325715541361837959246347165980910553402752825467053684893306281277240372245495415790293645169830094231112201837201621568979816937309458752419464706402198495717005841680160973304050934949166392581729710150945198801378573636163909665858316073197120160582186145057620918289346523649538876624389772252402318310169690742923715548493207650978853386968318976851006744046354209359722706335735612624576596793808277965193237238784326676363449837439621361032514788238270499211323731005153454730827225533499340557580496790443880681090922046860454972011123489085414313604398505517781044307278851420428508809227051242041415367855220482486019303911074008110033186460516372377968091691030200024199035647637119951586067268170762151684456493035538562581521607572508408537594607110588514535304872410769734066714879606302095484674566411429011117159698221027850936635514969866602960111245856197422533300047725129753093650346053428636731285944559085845771549936998155479930136157952779178734460466761837086539645213476816530684126347070237618705834012589026804882541687892869841338190602515506809314109430945797294640015072284936593358129195436306923439115727821323724764186687005455112875695016359798482636883837200199192808444971381106063872735132448825623147412423403962839304267588239684091061611985089030288047560339703368802695320269818426622295507843233528789872275181714340474953311447703129750902999067430902557091777823746250018091941872752753603714473939785340518671512738068029058935433923948593931600119286949476282958088393431053053747996883537658555196093258517163065820488213155331742435654082630009895215686437527020914702273110391396371869595751248277313844209938075345336422880090378703078863081491673522167887559206249160520494080722568628605587583034308065138056170979243672352730090386729780368301580557695356942196812032625020378477810209270368690694982410127942359969044289626526342281346418387021516707819220127257349163209200581251588607644015726570007919110061773571556130121267404467085435146647208228699610343828916976848687575333764003570960063751615890490582175276350126565208744812037879442688695724564709960428182351384662478488751816570493123311823612322083903861697299113144846518891593685450457239349339053790876539823812055402913277830987424557835464452438298123089062513987633650809448616930303929205847622583679918679471332179108504662287678043903521157606771172182007054269249086372620916087453386644770646852860326548437673959769470838262854552028408061175288271831320058863548394374770391335824374331567902828463788871407119907355012510542939641774451690571320168302563780348855211256521698998585301222648017996130020871626633724331756627711540391646825537565196131554723282616621984825953931496467951747925745318267595579928382068383304774025711979977676199812643082936771547917829784675553990201085223957869111165895612008479824058053877883636217839818163572565483217793649585437410676006739400446171617482097545260355198837595836081725401406977364217445542986847305079889080059265868318456755640482473259678745815426663253869122822428842732445847466272466999686517531814768378553420849101986475125893835735813420883771182268117970181868537858052586919790324284002552916193295980709701748411722621807752009104170044941350102781011346309044204397926031913236166765139113543745384192554625465316088926938053627441372781060885322257013628763616813587863664549058949379748920257003098121809703221245459275650801960529164009826616707963394364745835870329089819588874846536276173124117522929024780812197337165865265704195779746856102474037286035578897678465136591667816545923062918220237781066933618222518207529849331966363336573359131850823747810781395321698406407699361567025854891906853893458392493824065790271194623769122802875727233248167038510640885647233668170493583264592508491041417802539540790286594328087229760993588281369047509330585535656681935550431676606737704992131885164568574720008668804666313440185019009930180267679440818045422814762480087321674360492586622383470174435969148293617319940369562568203465922241383494629177394865064725747752660219741844589170714978784012213457181822882454809114483336275644145758604070726578446647967143554191178693606874739263212484859071971045297557568464125339023108319599175657731077254706876837228187724760891912505777686533601794134560427181247098137676749646702617692573778677818483050350124044770748839257687240048842522871769515915272460077736016172090478354350300698475510728741906866545474959536156316240021846121376494956168827643329499498943581191915813809785368785030034270790382787430077437883416864294310986627935900010650876442042856928700787880343469939904458327620329464177180306057631297405472753668614277032086724219407614090729716334285998164653777428473841406575004119457467808220389923224297299686276816172999310308915081072478745950227933144911627404526188788063681490087617851081544106281995895333106589859155669695907062010990954915855885264848038428887749390032127594872189522447434858078375121271524127485941181695978539874685622546576285466914783854321100944688964784448599057412593718018407399459304538075568703418629527722438151961070850762269118670490422482405692331736388685093586448479302456216817636744710604912031103309275741112628576546463798932431129667359427271635124301957043540823323882585944278145092861473815949396942074270141467731679161574324269313299380358628409887373395452152559378875189314506015077324640608185474473955276289440117171996428868352532597728011053684839093768922483019316005176714338250379689735439792552232479592485054021471371610115226103153273744543479123782570792791998521559382568456160947816437181461368160825026681334243285003163198229104391399787064377948878841121776795933239989061806102712224851762950801856384833344088223829337090716506902338881762209617014996453818516285456064440833579818154991507335727613626198388786337937637052559289538362246186020226854026314798571479077107147101992053560752324803379822474713091613168187346462698843285648055770317416478731467842426761895965080921588023129138576945026448246964649769053009229149534392454429640091667330216739398853184803649254671926019979817351378033083501337089597101213540528091066308201896278038746499078275718296365753597263189045320590916700779778366095516305632721218363215775216305304654363029198661121748667932977712350368757263013267521133194813413878610711748055645332220193273763077542419394825049520517277128366231513257024750427997712497296301326763713298304029209658781980593758561859083126763497794193624001946241787949676420447846726844337005676675376560498381150266702508123515746857506388890231458061827495550601430284770836037407756356747924236817321855869272746415691953851407568642688886125698753631468869206318893892445564145182027330457423156134326952220139368319275948461400080120961791133860325143121908712954444023763356221474232966796577108413121436516227054623795796705316426732149750045759839888978682540524036575478856119037003550526502656695600614352091698139610102878686016372502079694871513582397657999779889374101945448357917423139570590832010876333394535313254171452210457894048071693092307625674820671941048574009394534309433889307463409364825949418712433436470696366829428058313654153627333372177805726920215551085839527210857964728235212220818401595068550258689166640222087370179207615510006554931363733741984263402545134548636535234494013456623568860185934894718769460921761451221914973378789082649852218390567317131141734547951219091969927282871698657673313517395544965853904134256626454239957602218362981624085265759531676268918574766848385803010437287694216334351662785814586176163195923232047234515360843935586378326559956007332231400907751836657552551443405219362371840855944227072575917580180803280994276115600072373234040629693966328564957394007301690335743732394049621952920582002835326949228458678106167699471868572589805412813495360032318141652118241591589334356945060906973593859662075998175798404659677361961640408350610155198037233687898471985453343556589825861562732152148271206748148413246398652359340723734290271085120232880977252782144217698190265546173448552595630485198019954410675495457499072619229892915238005738907738652227694391747936476570154964559874267131322714182459968768894211400523343678992483911742153347151067228170474070465230821112330957023612692170337628902891128094995883710659505310389003096070371450409505193198172389073703244312306219203334228787471651626084620071241325771093818153219688727232749174685116357152151154129264278869568753497452412084074968943954058240162646999669541814933080798213306648967246399834643320464330431440134688868772922384850922749015722468061888813147454278630421504408114580318639196398411552210349018927305309036418837306752529377446256571910297975485030593898094749439548538242910025996299845156038543432526266803824683765825069701552261636947292347748751631952025366170950952749137825001203780076074168129475240857403072754862740311074882146242565913545486969035831837346299383734363769522514028983112476866378145498354595880574138792666501599361565937172917062709975034778274828011918043192259363768074669698966787470791761420478609527276898735747815537846850737723542949998866733234920478307814478266538632305413227927446933390909849506879806985709917114766115690350209542006679943464496119338462202612243439909219766137621528526537759321566295469238605043834823112716340400466539112448861141619223234908042059138086044554506676865571128936480122351073929317988827225641696549580648205914431102968535100265075095660427228507963768298540651844486147260462381008758378501476644386695167844732819893393139047732852902397996692013582888025021201022706561115733706709646478376490666853074598108612357518496938031148832447384246232693014167496507690346846841836776326484296000381714713138925311769767038574696318714432986316692589601817159117406484053970600576921535804346261566056523369659377646390537366652122597130788016177558556428077958779517422138768339202315554522356546877661924925088902093865959718970240906363987835836098829274063711673282978857254880778644157983787314668012828583669472324408061812931743806737611239816988032578201384758371909551598253258870530806203221406657197068383561769306700219344324258830834066743264045532070994974930599815676732465530677575209969539026187193429255960811307826895594604337765499669753728914136685836441123365217935413592040978024681419670915764588120015598270027733039607631668295471206809603960276110332331262233559604809192489016547497606319149511118792195882946809692142141305939356460352931939615031776428726645575355997571696190616006768343657232611993745786677989438023276216127649182572072297009128793310501198716452200679757966724406974760826746564361060405906254683301119986822732848207500449731901783140782800235287934140868031939911065194194734560024355325293078531961717716197732240870420561561846639943786720897125864673979587389610681420656978849018644654157476823613048738904908439448428402636806879314500740199967225463789053818425640553142084679287994754735782606009402607542962407058237315295422644055567308192566409618317632206039959407498534495411831245267948062704205298567894875259141373660434094615788197876999463539805961976655691237324712508803393423355856380771106946046206132979421159610398549096028756173496504206740366340587116788457763667708768764891235813980931718672172197018685505602484279376951332790315325547035052152207235216736376149285001657370497696421503630002723337623792301613836431115698333584919113563391444947284374456597599720235183659774426229494351518098984013067438936536181595475515335690210169148740446511566390747280747522140193059178650238510804701838705551712469330997351330617373863156545939715097284244651230735386705574893032455905302951059331909351830849676769090184584053523697872196971421716264685100295557514401937659559047301595527404526334036556645915480408412483964737987780363337563151554551311549648583966059918405587187845137962966943804643578212655331779378936823662432501016125954495229864377598200607617324057684086027207805233184359290337452271165886012928557482679796325944103222782218114422594383822176248270396105474810493163917263031547686057873468971728458108451653914132432724745344000337785308723466159820973487457926946894299659555542014746072448009515397753641720437037974216384198235852397024277773434581474716351198708377464116177542839349911566785596436870677367910815692309435631861663348844801096075477996985830541344645260996514044723491005305383142964031394814796427925927064069113742828355817572043731030675790528415313780256825852346366419959143034394395632159467708907814657826602808872797576681833803984700781565685655694339461801615070123801044346580722682152074176270084635304965264528812872465664987239811631601317234301412888352012504525998241626104751840986126009505456962413189766683842375699758389656106494002185628741544069465953663373968502236450449745740434138354403961703941257893851109903418447006351743751176125006037389234910207722921386123689445702459844851321191809551849988047955720995733049537453559622389967554572531218409566108319502867154062091496309281118137138942668817197674107954937945513312275387129449543734162795560860162579568806794467290417023622212211216734793895444066214462230080765376535377916543122234314643888458173603214266938773903715441425404396356823225931573672207100740328987462135159736713674155663556662127442085430395967335563978705172481651990077253489796053334991953545134892422121488023107015454393180212465846994092674542062132963405465385027799825100290556247095883624408856090835904616924748688436655141810049215202070550526459133895342495997513079389706796610760222524797660847798726414506602690678520664588785249037979855572956889190451867920632732067614543636327103308770052672548183250913009062865722547664458535832867648360124479277651082087184623902389037796116580255214181828992646442762679985762138162956361326827116212208613841574741284234615337484957832100924202843098226311578298429495651892431306854974383111810703720866630242247399688769860640761469737989011906067683876510181853874900227808187453665766735427044893419332265965156312251280088138221378825817450081616496374382061579572674450499860883482083707706004318743251693099987943620202986896070487596939693380550104281966136058301888554294249824979330256058554260832938445129710166118375695960751981416339580719501301102314165636634849733643451891615398201935861012946046851465981760738817026670875426958573966205195462490996071329581235542290490785038934966457801165163141523421193326366861645810840939057529742981328188176190276158021370409085635679996480675893345359818732701329086874143785963526394806101517477602472360178296159220206519687344143043406405141592834454190401117494869210965141178434768358431280618145385477003415789527012967654103775399248464729643525121165360095796416196552822642117368341831719905417769085838921760908726960858046822008667519555862683722325951398637384087531338982780886231158545586621530230362885602586862353839680601316028974852820533408326517686628294778642535758307146734593466564913306446596125973660717192485673090915383487672046994420548493901770677025523324553041238793311034885861512461687681021369431448381703649578125418841857501970381089401420733922634790774320934594388278440016478372752491791596292975249606694933089634717582993806198359211263220749932077087674705490285784031037499149103503610407310267117062958388325485417890008107578191750923086227396118828915436571132302213141138512926911423494339795692310280586189344485475756838856509765079107672223283619121834228569778469636421569488739847211968948853687780102646777526554967125692470132904218806432990130425928577901100921480204721914439521239397967771166377245771373601877934848793163597012877039234812025406921793478148421466139604345858864624859967991775528582520429412036795934786337867519937078380184381677372657697067710107214462390055097033010367126688691485215906953043203886535511398874506709605523747218055617114974976601687260032440730637993981852846327861891955243157910790075730397761629589749817456432733284398591261498283280855962005487023442550271483312396720672526919567204707411558838198866944735560276219010563499954139425608780867585132784510262939681954050917152976172440608904895737003232607757063695454482642641794689024200054277982458103920454788172622470604227074772738390009666084385959210538229222925673224215006593359298775055754356764252866647726412309143528560334722395691214948626810817454744075084279364855771672330424577303939462259269524086303847638131341455455651064330995529683542591789872970028023242335563007235760145223105945549143175551283402884466073378505252578070865374783461346572738668614727185142448397504081904717848577848754366199476704489953004035018555517960970414253140203761639927554482335677194905372095369011920480460380053606399562134647398935030424422914200790516312964883288364633694417560087718628266858485033408768911861312953771142882667607101058169496558719886347428864497200915411069313779814352246825125693090595469506521816225103803806559316538789873031896498408277495587661450048443204187985197558715822839434619279861090035168072651107311449042692591991838535369289350808284614738969955581652226744342008998353483981032955259420629157854874611900629515331136993752925961120843602601400240251182413994880069192055350087111664327082821062275277706322276338738217710376005600475445347629080655083974617464237098287799140176001499427285120740186924662652940380515733050978140570666213073519410274549557891070696174035132739250072471661261441331949966161365835710376074508784424398072504956641250272801564105861974719249148604734532062212828513212658211442327727963062894806230521532583437884340657001997103700910619413066648991288281022056851088610283965012503570384673717922520326071574812582936576720416210564297702589827950631673546799944047968595313033881948555105453869024523738159852736705504360742944023516574177180171096272790425237221416625109842953888179767972666341688034050021064794802203259922565465771668161037801090644799409802597872119560491620768451928274184514483317465264492099696629899027542946210817949967430739278289337346928860240175849499034138135225177001528808616940724582255128321595486194592758311421234820380780871921667885796101051942682883844760911487159876322899459943606403930330557995479679162431624492321998257452626519789372609661489940137602229170476888741702740150411314747820590413451664458295100602199524347816301172535230627005874038081270858303030873777621468274288542529711665499722939986501668073481076525851592848827882871341327345001057344684650643239622409803196289596076583124649937815993115425550846231158126482061156743493158816096040236772289458434082997405880348646594892920643621875480005031650189300629280178498989154027591090680278104448598296163301717130852052443724887781077921703643265129116182054043797708857441550924263862716165365689506754754346752914250097312298100724109675627693955170769466170587308972787057424667312998074323555222434665749455941388424103314648330189881473134389769015851710536240805742110884077600312655389058920025098312443913710790197386617923589452359901927076417161802969206080337883478645586456518726397205128311514234224813132933095584581157783162935946261552970475600734011803550091284001067694737891502209137393843290929385356695653442018541569460432280715531601546385789612314885233702911846361677269975603436093310705500135802483045234556830428353673438915231088749474826956984651752204706921265891735180176335867777603134212742425120878983675835743390780605585022477499490104525926475321197941846140986644749752612983409942409152940027688029583631855874757675591921096777431489137228121907892418296536151005979008087348739012493352359476026383085913995998454339178086403132391427236318012548007416266139272509951990834379391451775769213098350987738370641771081912099822650105847660931199912676563202142992771368454869283249684678927979805031093166403594093877485354429408341095119765639568820857634036226066594962631031663985166655386716330553085532484259652113795174791601035695341779782593816057415209820737372133943417928309086705413981389572324659466885455868513238625007454577934108264554925825793682829666300335900577842164835158591906334099369716457522560067218009706755701804646047348440418695191068503289860734916196773853865417518315913318549603462902495598538134302703392889171401028980526316675999035759167841202243017630085737915329207706240701636970086021694918294291204423443023001759920885246044243854558384984253953718634915529399013814582828161329171853189224952048209171226975885041915302498834599950131268246741837383495459165489699474530556591466092053313235202792416676057763330064676630804445594072917958650041809632886650360158404652371063816836960902951805392840456694565835967582971180443433419491715916392596962265724610043278226009024871304202541710444820853511025100293996980393381317244402408553834223557278246393822920899073973356614554615565282714435623082888178213399672953089020892537255410814386380409001516221512734649343862349533491083523797346433441223164926335382929432824268495543290357162852054246048659074730959355774540207216861729991220932740510120781011496479960651314899167475503898922914085839600297737805547229967040850323392489092381187594296791463414334629428689612441816244288222724166470505208090220864382459942600440065966067572617456196584711486455166756026621650567296871540181666757688856616670148744797279824433255815894857320927883103912139841033466887663437066873580613996525077595091519570474852747692546330251767874559273508848118175340311389387419525053681425939785182738288884430162690583874481702186194730343647100710974122138983863587077880716134462205913334739205797759802742944929978935446672923819713114917686889338013418561269138587458666383122115599705373603310407066552465917931938897056041591840580005544393814111922240990643267485035722887166517143469852327365778337768235502728125335583270075594987528691601680136296298201027687039944329868633984010664284900821172296090115389473610809264935251921137769489818692410907935515883777730677668704766808907954115864822458690776275222253055799674030317885879012035967020640547382155827520726672854649374708591036359946483175765823262164345204888618213732268443560491578364410929594576735229958745895961867585585552131791820931102105302122005041498361172730728941919982935090984490008477642329211458003009562984737288245734033441186342044003621506378681205584240023969934906982460969382832463466850761888044963405352111016400053666666669811281695329028869439123596151894279682261897104155336805725443818558539084195799346258824530512753992387649508014801767663389189148022284565660693870136334305522861338835645776375482452570893714224379898558909104772723845190243115479498151197909561469553491990722108456787251047853776298345849288468623427376089832853565942632821537228695830807959564489140716272237871383831231730925538291766444346747357442278522509996728342382887112841187219988266436093594353094490282202721190694929938841077726921484400472317829969786594755786764944699686589066220705350502362046200350423029304527851950478184514627546028466355806687361962322577594235532870435138039995476649854710341148520663609537131665855403013870027290001572682106271153861944139978910846942566835851588575316211695260745059960079211339437431400292924036512152277908967373366587207445679909404625097063917078649960946453808222724313324985891038707587606252099634504933110911980313691110266987506138284455904528495015101739648737706492611152105765632028889841573846754289657320513214867525413704897117229578067552244627915375228788155609961872243310608532836028755017727423918160273364345787547578658387384477886599485226916347117352505606013403862797122476070080251381803195462214895651452080897367762408751352823397163723318198694024454102498033097535771882133366676737901150827461367519229713267640153181640759756165454299977856851099263615754990841617692222830462933503073352164069301360429086717723481924028881046776950941724741374731982146608404430822672963721728816521022185728773563555149976004909963304882366985392904111251498559269492399064199627483726074692914416819656561890699188184921210117886379651877450960652219565190747396758800263777765930981580593003442824560626303262038166455912732093733945945670977049761774083581938472576478385243023994662369987591421598663983210096822126864673979327259488499059471324752744613156215580885132833321595084097179519250926871987180878141411531445097198258830339371439090353682855185750297571872881524546310094749662373466533633680911552120972910672563480665249247155380514035208521180572651073572466155946726765238357959986691833731052583112633565672880926064078094641963876275927802345210932836366479060567790077594686861000627469848325016791992815459755876168265648394185002951490665853650082362716921412213053263186706447756455364306197723399003683430743104440105905145364489200924960293437902660513147654259372755831297667694239953742916523241965858457767913992349097262591857510245167256970676210863084431816208565075120308718036048629725581439536970807318762583492930542737795072758955185480699516111969168584029115018154573244315962151199770991487144109981127297676795406682174929728258136355520162816221776483848088025365774395562782765225306130968670677851754310269196918677152771226648249816444145524144527863034821721565034500175272804900769991180331248630055832216203994598481948054599230285308988481125690649053915342945530654903089183866006824048130563345447275796844225789343037653145888178193508630047808842946521434124427370184045305499846607682125663577790708425558455897761388049772139883322465091057488303572653805844728167749398843948887532337726126296816132693456300012418613329359632458244206667200901340993369424297088165553870134290853628405557351425181505082048711681585848371887240879884647626712579996584912991994188451757294277189470820028861219840443944203033558378340208313692680481749502010651993544834150906891936581282225918450078748735077781000106174917370575460599476678837935334586777171134401796077319345301311012589630597530561506987899792938972182151377331410213439353299622524985535012701689447745892074008633717812737756369420092204950325702679781297092817911074624431955827112831922498535703138165761933877593156265818923748856465799526300707036949579379266540671420694704927774768459578282805992099170934133894528381259323706872058016019517976901322826386096792650966211538760831213092096838500103615462257948627832917523639384150731511715696366501853978580422388848742132985663027423166785558313319002485491392954489527297349894132966303546560215872816309774797278394910605417775243664787871703411627613032379929533726193930978443808794805646253900615318778367665437565433163817221372166085831815245543535636739689230373664357976121944095959340636602587342505835851570169813439043243547683277541739559205932727165327400462355538649697935136281749876169056814399167453998122060065787532123996111305490151318860030463958829018506025832955514516204823093270318231069120783901788921555169468327559665173811760062550729378896507559044538275034151134161671673789733389652064475360131660085667423513448154973400881557435198688042293620771615414569770374311890292878712815134539023550622072111456758859583836879444106972976716556630314286182226218878486251595446461088928740182898546936785965836635523157314065193835705910925281250615512502737709548186241216952267594680628477463787200644840221125939372460861670493226097162246380584773328448547523195525767962980692988132198357779500965117455336860837742635176240766924780135499537281672562973720706263511232912318206466580286471161209598003019545651351920644643775479083728812891575183388126380815179232865498810500060352575438073225001599075228155977730695089848163793047295682931964713577933828158990705238925680222613165298976205071787040404894344702311423395347917826242331670051625767528530552054082642765436597630653002372725039749771271397909602469846448000272991165104409854642845869077282684308211306444092800876863226072018466878636655598472656280724927096776348453314787851531980560076999071917641940343012666476005057496913575328458726460928291590282661346287516677173240684541489255958644167138622154217708545100106320005908533724988538519741440282915736181614260644051393502544141138658529029490113622122347910363396101198998048670100873665090955604722299468192612716991727130118905602630949907238960025259556882196728339235187476258063955124413807773722563575739316798019822674498357477502583753504144483187827832353083362947238951117894271198733799930507082750095807281518214526788436380262106999563339182357337370515608063569685959927187057258689456721548773881110275355741400293335879159136888304212233226751057066617440223441049264398917502132492071303592022350573355842533003522701325909219936890409236140041972776730665436190781486263558572627223075001385121683192102007869774998807688671941465556509118232225914485915896018029869555079911662344455867368548963202507407456896807121378018251544086286357601932126239830500697830609559719139774794468633041857344430030032992320958027030192388625362328879068099158478756002542776991518080910377791735719901132969808977701184638103538232233105622538765429781246091083188915573976429448017791494738376170478354797732454656124219458010562442400857124871355352307321239017176121324544591644221713459545709858019702229379798491604785069788524252721960461914834515225031401299416947907744696220555510037551143388652860769207797529478178657930990705588292370184632880007050656157146693526343563292099420254591627794489129188091852723708117280210542907918769576086976317692051241833652706431870773149826009290912356953679704433907326764454366730797143944744150598135636996330544925069190217679462018868037854892043170908062972236460994410907691379452172833401247753187777276203999842643561011740985003921485090035178377642474682899839488265137460188423701641096727100155344501063983097159189677987788086236002515832202492062569077611140904663775134948293097809004587137635283718966041104995584292034386994388525086223034213486518588961307613186306551605405084166419377421326680895767242055626590584283749407460596880817644423005202102093509469340823687037546228422154122884104231523340863324678003981519094214550940636804764534455827963668681623398733655669400231747930377303515824110720446755366825011661635675509273430663770518212034945293006258448085225060619031581157009636147997041495865603782230790056824006342023302211080434008865078475458787552306387762103611172299522376753986115201677294839308470393171484614146365579517603677900211134069634463402494750323651655164768458746663259044661991646667930105285277859097284591712271547036120649812014965944943182815268097494215285163373190533418737212756764058816385504793083843031424142175667578828091759338953205900837423224249463978680108476351127536918894148332965696123181415135743978627659698650100200015052146338504434921378556028118929259239363120017393649405371062123181796350059297809889908175874888930027105438040495937380647735749943972799871763608164553647188066742796963858280289490841802263205878637052136756006424932053332865186620240756357875949687339190104760094713812691533302217681659069702724779956444071996640494672635843846095406856394889594747060968068170337158049795017857734851050784407908343068136482528597688986367543306147017309180516801224384398319911270047099949183959856111535012516432850223731813843278210012366479358175887202320318588411478737194729863708302810927394098365192253918627658463233431512089333300290685570858803952571397235471475824411352806309774369483046143754026833542276348087536546892205905027664583799683796077194719976551694510969967368100399789619052988921352315525943797467735025729332930583757981336063363087119261971327244699500948170402069999486044533245349796667988891041651809596448715892260699059357339635889326843905812879743038629264708929068537634112902999923051162497921723960981084973218631790307046720073200440086304108848803745010244934854306289583933079278761526062026961908114620904113899152640877050185646443686538843430985121148264963687703920314950842236914464932948929858826400045355325560213365973104869608565560397242479371355810461948060927180553008195793829928758216507070495405839667869395406076588524176819254445982160979610269701255620684850753690500497660045097620775533518355710367527562933624339548453183023174017091298678462487396926874673946608952331814871528616887647971040853013643379314555380015580720289393336646865398256385924443662546964955718885525738786107927491051577995307390703559304856538770368483641161874653933363370017947704014865066333374236699279537272102683161563684640750948113459620061199380813996476678314645437127521751693261358331878879970218958448020979356306879186875858519942718643511139929138605642836036383328449807898974513980511924422566474912324311574945042121273251449495547168689773843609529439437860453825065773797649566323935380913826969233632909930329387097339571901786643524441396062152382638533556034065807195215096281473799773975343149080978846193050612283129505375807320844953123755031520407692626649622742487278857193060493569393581128012069452582068513453531631318658043122975663864438411379933644029614519694080427893799735661409701343926419806180827408304836690287007559300726550129342221655005083780993170729080216421686038701956044687082859256980007505207357815159330875450874876011450477821024394403542037367198263954151702000880990334189159158230545817981702349849860685397418692288632556813319728956686786488580539145048785041360189340420957257498394243468763673150648339647198978515732477108921241609971085022578475473314073483901459954340449210847760687127854950728954410800559166489820059830408524823000965375323695514877467111648476476311599436773442101501507935527681731759039097404975172107629644421557703026374235243424243665418126235940666353598104757876058661292622622024514052685714187192178722268956332398651827684300143385416424056342548664134828910483483810932813305841273961629406933220750660193491274594403300760179496286141144708921152552423228886993522915327514134849207014323501376802042524014965990234673384458052025698723880550824427353297962451324837579520229697081336187970656816058009104766292739161520935161946671550896378351520991909213726811904402809470151018929065180106294304977082675005273747420447332504630685899977849512484116874267044809112500958513506977109623670892934376395124219830455234557759882068022011706667270377173778699329548670745560286819834025527679639215393105306733702734677720177043371381747180054350119339493209383327206887081070266476480666118316648909411224058031596657677225707173503451406843098255582965564449271040763001816204578071782081862690760914377163281119023751079700454932061653443130944609312727672158719709657158497172319315180601713625164958180838460729259375177494848289502428846389438211576954739825394607590555778663210281559597821256207787418191852350998293335202697801054467477535606559588381818750202851317191773891450899649249285775352433023382542366771295878571974733304214352445396024679961338520840947425302129929998009984525903370564283610956828332072715501913258789334740866026604594207980470985487169910786672353525081788098404793674382563211402035284957882708839284620676801023876583020717375478681063543020428343265177763864725045109001353830061261432599699913342205415805990556827373681491738461873406786305537137961310235373792555067312435382284165831075107355928080170909303686719578436814177267761938424504625371508381506945781743308351434812783647740252369395694979924859270016540192010287125594963597398221143195205996322654712169118861374276213067512129012743229978177626078076009921015295354109120288577189613729735096315165604975114631133699601648569952619104433761886383265550799653217260609577628866625736772623048586675120670713754896774074563533495717249231016147960846160586033021687139523548237359012559532099857353416647151854409577440728847620514467879255785569993394961294510362905683088123773760204990464899846014695756634413133884897583968305990158214606710114408703829215590900720186468771705578557272412875307224367068946881758015470861536762983412652539057632821945165297992816964579751552929742703035475753538263736723786256005429657670417711344020963990295703771154167538040207073046878685286654470207285015108232127015591074177865427294237941050765349675211302216299177479957931777866608685228679569119590488153209766712804414081342937566378026890530154868416628145640429265847662076413980714787488074720491535657938074689834463383471472732403400875410201294856157766146319212699220092232258190800319955560684082204980743892766693623887860610282155940174729817366905275703547745038165344472953075621605326253708955954187705772497173113743233800704358345392312516584789172777242682600651388223710584593021828905005185065545118527034585391360276987376445171133053786963416338407635760386630947150259692342301963193565990323397185837887757514297254128576491937024107744329000836982350242436487902211088091038259340060610590861290102021116124586036048321264528142235405709299011617830247778618672667461065717511889751898066310638266472010899630275813046364510299712843016513815620210679139684869986278106579070694205392400121479125380975177140392020247298213212670520344711282368610678767589156386742312796394400728809186766485732674468023222944347813950380400619730353813798385695974040799066927953156543783538932721355957747481275449356207324349922016971211762872799437426111604789329124481191676106250762866929992116444803337199899023656789158745990252627647418051856469439522859779666513845232070764990534906584035230147381154848925814797668385400701276126467033127829061452886170431372292113423466973095997442803716019729295804561616839266809859436088006621173122049475981361399090770691962068888460077122117595573186230145503278667791199005894484647074295853445651871765400149056025136247408992287980480811558583775996927007289921788590970541602606629266080531468035191244194200108233384940322584956474730541219273606045934008942046996505590972529256106956946330084284259556593997425004423222521656006692461703786977374808415631103367052378917545247467433482367135574972564232482069744195570411648640503311788147172384709949865344529664469018480716177790537689843395081287651087056111023615233075856363300390049600394558163000934460943990419368206045533061400955144149867603894606655921103133652040109129180727475751393111350135113491288213290164143138952049748556683951300544571962128616439336606325173786414676166019016095688037997504846954887967599278565842729173147287265934057973504459316367276890004396316377342958132350450158875787267836577801449512857030989994932927270044475465383839475702813424930510747085442528988811657473493773950803644247609792916026757051216859705540714367388507823826146663712994663724332155039546983691634113731140089418596085344518797671230386848198507562114883489521235538787956139188581985953975412412721593365047646540098610817690687119066991278910498222792548995007814196995560261044479545800880703468793943452916618068621930841702275197454557108153459338144212993416123015187094131177764344520116182972407625102006696793774107739052319287909014384952688987624260776642276003147238870651593892119911790480750066069178126513191256284131143230921524253215494883256701891389499966461505269134587823285477366792553097572197018242651449746662823759631814969911526440277393836524122190839085671041010569214647847154093375205858572995680994240371367167895083490916593661050491137916576154747052031831842059312117972837789313899518487046950328956614538628017915795915055177385545155150195022903639454537959454033233860310297909749860561496832164554973490675001823604182721468994257914152037861044271383236158852645664247594858557471305946364837424647950886517941562760966601513807025672912918506699345833473199156544471310697509075319683585799556923776843938428205030605412959516219804977010699025545943324787932557396257923295937274016783614771657550795828811535690490842555805891985150536831563330193362418413194512375895283869221616793541774264693338199401670152795276607565627467223142560934641160378373112305579037280275728427737694341106889499373302720089816316851773255714660447870301813048357486422566597086802058909045594877113913632157644900720995774115313649621241264588572711993894597074657706751060516575808184332697599912269075556665605266638248559311945980160089828726595776726821679776910459300011030516167941597451470119161722758938103619429475769508600898660673573050324700167235979096916315954996788632330676779169871038144121161084102263757176208703859099494669476998184205022164438031503775365832858911239017104431017388880213123269685272838707933977826161776815611285459885974058906354688563216148766151331334863119065810673053110922470876960178629672802504213251090867522967435515162795634477789007943232361173039899104133109395741959142740017599929989110682013840258789665577860879456802049085440282156467434035502460854057903051581198725322772222613511927913802636369520759602512561822730766015268424947226986038493368523619042050562311585191826356665798069944891896244913789885274144571575314795252303435601456452009706624117524743182156398040445450459483423429120132698858192187208278296822592648448130202364931680761787613424900491328548970208047532853273350878631919020683227236003984091661064839763951692201566105479373461987395894085877780247477528219741285173655252154236383337495175099622329332127548057983433048855077575846585756930668920893271140922915138759347541881116718020576800175312643111433085059866295937204500933383472627479079539669677019813897790281847504714301613630221469852731788740010198712027202102839921709200435713005772411283714685436649756068014217683547640447335275610904415281016319444453757893796331388972169377009165015987760822041680403154698128262321768510343483981533541562064670790136278922955468781250671112758638426100932178243246441807045508069436792354934218521564705837315702351675679676926495103478629150891265993450722903279011504410704002250436436028660821259130646683537145333291489211766681023753038513071711466149670551186888123051458259222809347413912994286173147030385598019631547372345925565790641461377632635120537858867370102894768603119220438717084556150977458711432024062986452019201836540871611221866579696281215777153452844504806670156485153749563816425539265350088494578517774807966930194135398045163966022590165505139337829928011301527367245691273977565871039872031672005210387895328171085090087561896906073918291211495443230257665467806799041191486111717490074321946396901485493005738247061936270103432615670179793284527062792260361551484638359764458626303430736798473242616796313159205826597041675694779313681620547563092147844730942195251042439680172834385737233789291410361314063390238931357668041252670074598424219141277508107444531718793353327468670025520634967461009214077374322304149537520077548333995329241727451945263777238658558094083751678645984473887018089527235727659345120634214390296602057390265696168030715627163514752945615321688942347783757787964433039477713137150393248099452958606411344723674151314964294602667189984978481879488786240876571150686357346388082446293650701153853118827981611204361252957204271088935297575465174385226534542293155043836291921829393968331492726199893562058034979110699333008619090133097161771930227289199210588821708282496695745086318050065949825358937435888153159792338982630288301803018002288403978460547214942350835187762746828270699262223526546054527869679975401874382421470429591888611551869015580255843402507165195540874529270749731385109707324705870196637399325323906722207992464948629906926442767178342802370054417633561851043517686840814463200140456998161827270645870087859033630823946436753044822074690160222993754721203284608348368763751239545355004035155212766246232645801107673636185531725278837044643027046905586951129350113122774561639276556517447908736633263804687398541612186931341941449574123003082044813817427206955935388893478088168646312720017906857382833882903506979729326828093846666255759519509749818376062652932215329935176863641517650432184782679406881527781291736598668304670588570424892915321786580466439799402422398229990427187857402895392824293460632212931872954235798625083288611710898579235756270069137446892268848260950658359306797750117538971818202097667975591128517088564747308061562876668873571073095390501613615531641534334199144011524150200250860438949733547978957664169949976927472494008332033814853189683711622906540452042477888403282003966953126700815221972331264873939687429349867712713409640824705605605070790129402238788034801581814822386226729622746017979538092754436260994502684318964376913184081761944250849645762542280558389125838544796493422452160708543941978788639607552564634671296711552270307086644678086953054117531539984708262086084182256008542318575612127839599246026708529684141078637028094016457224648928713480315223192140924629156955854058745875440239147911379228195278868501169672156653202440347208990262954322591546864076756307756551409095591270576875369604321152326773681238484405532997262506108715593249268407446128586089440634361159840610785274947439816959821342587807794638373803235033355015046596262323324390489668856983199715271998486070391450488008554268714225508159742800377576104873710330382985416484333288702687808461709582641704796089387747281343691693238876331318253092865058150732536666690483627139328930037058895064383551229259950913118841579966204879412133817604606342507943507738131682592299813156816895754875005023446536245795193432983509162127712686138665636630416606996542455823434942883905695089102386438402696838775071707906606557566659962941248551056239832575201116806238304277108146743357489595116064066590121589028225309430594132594669384517785518238307566736692036050041198474728543064748494335459567343225924929884244116538037145712736328185860493623927338495112732919969921136729265061974705911694313543262405064555209604853365851477139800834035607177802557561464265447713371997797448955672163426119885554857747596347295588361970532771465046164421266212048317600738636736577158573035516076066618529246602681113248103983944600562567690950608836946530542676482563660528584366645191960640346081683320627102169095473994517036635383066872541870004319080473906053751576893757099192232495567612596252401880108557403432916672239131685206192030972659982504649475959991439078048538703649152991991834287117170448283847127014284427706685540866403742028019506620221114118362748915468045705042942517200373981516810270775999427980131842786521704816230549134107272318963902087948026720393804537236214054742009648853396789394792613336572656254691470959537935260956011542797722324692186983337078008956056137460927827913995554452066300776742883176871601043258443976673621505997740753494372322079124555787853268510043932528798238252978914052097936899102083888503817587006220851305022120529099966027469272226713529837587114621842614021287817155353071560949267027451789007607875430322098012863012601311235416582456107803255323627358068875046403200343503249368970412051607561693515984473284089155694129531225558320451066011063043593416479005090518049021722865676765430385436673835253424965516347232209614531074998837539782179508492904840839512971729244929716155673196672712360561370335980905986804162937273469283755825374532506222327556570922136351944065651955653693321665472582153482284949302437960293908572873639100346290305045245434688439689052751335136241460578854954433233640562638492722078468960060957606002487357232001793104166824151178484208718499670443691209492902895243880009278036197618429015160418646475135802623266834752312996620252900099324485799916964737805126253462804463692255415680290050273219104390366524426039949922967799642942440085732473378688662054730093696978081464342432859465675805562419715429355857390584199791261140502268640058149500730186808594102183589083144930143727651981753781113333322863106577152721085637504732436462931845600684501071541230861676397482884964871847355260802735117083496592466245820409749886166821585525116378418043277279882718058379984084761001862124050930307189792021355891110617434891720518738683130547251873817253501486894084891569265609627649555564467988654927478941954435364614778955618570760898849068552950764770880590273952531150019541403581997648111974597953048206343142962867797813283829755491442724309015711757041419527969012746776478092403818377352191943187980663434958996178027403613330031144949107987847443083935619561340791920852668930229027191740280007615479181420565398781943354729046301904593578540143068354903174905371413210784793641708865236692267858906659770551223075780581490247651092183393117282753377426323752413611093807686249396644613673634002019037465419397649175045897095623441112772574477084596946451714533362562359550964316321422056721646595828378656774299532454759446939223237292624829342373084881938044212788997896055774324877344606552094203686610720219420231835782996640736468829892064745589875291282687335031442194832009103073800166765799247698496322256368372037740484780886775984451940110475570183809523436502164192613926097466239001656040518007432826282646579780706341972420499485881602360245305434965315088512194664015816722594270233606270676330276705228197414349490989351572201054369537232193908692858918593399995511829621729120277556033862205249656705520932312350454521042598354469929204548283099544508306375490925012279049495630350213757217760187573002044533516277052158312528602073861043489196463574726780309468996575962689191103569919451400134216149880799541286816816606197069877091560948038713250939340115571306388523892949471618737207962333574345393721201245097608929709727262019467584132730342799528740879310786058505658786071872931079485402542265486363465073519442308622813060383389882490408432300950376528825050292022073330569985740457235082091033344646453832599047433647487813752645199432888098935097134302065009777083248681641583332165755075675578927981892458289654463339886661250482879038549418500760882161193895633437635706087638564863450782136444425850159292516727943489602238082881027399263920869907516274619877464918058317112304189686886262280261701876816231742620965441124553861073040842884306646885225231335463318088875565923710953067061316037099903091933300620790715278766358543086885446363590018266813844914835935517435566542566165978915076987156472449014468383152540713252646747913518545880151956089143025811956226832934559986908588556734369691981611599085056255769256260494884945634131796766872928326625906742634941385260578744796638224156801894297112547447293368226445994527133500019795622580283498342743025464050684472620860089696164574843911146596809486637066345385404986668397743753005058899397921288209870453942869255070538908974082635231718973441507282214189849186756159626051723935691163612797090429027887916785452776811642849648697312262920898797422959972613503792537182801362212445900917662172725966348375274192139066474581178285160401427525926778190943656922885243745227101345526399113966471791122388198366600674843956597716244299743645806545161205930723998459201359838486770178781502026673457321606291690141322919030665798588346562825241453660707697498651269784360074867656996085601715625492777337005266353347460399106383182913817585347547952434928891066200362495550893628118456640769188073084366968554155821218926467992445631175829115431162763313886184440533560008717507275425901110128510488185151398927032427645104019227814174203072786629928551011455248780525880024881786283184095498777670230158562490267978323622886974956856760375670741524632576618085614891968755490380402907506969125922294357530628203821344354916415818786392378924698751324151969410284906158253727293364826741461670779417963093757272467579753477026992159064945654645872286665163040472825514310379205859769910176044019289312636366869489263364974661697688814640344939055934641679532028263953114878263917590820766029944434693510844817120048721822005229474036729417223480507470331821755172215854343394321947555817874492526965864180661034349040402685786462734451939436669787299031344768914825889197000588832331474726651776250450662538931655460120541711255742176039856709756135452905331728353867831970829290996876348922240115997179403287418033544074769345721264783348416785803661100091921598344640891496015231156563641504000155652026321051163497069347266105448669576294677828549840786820941209168772539678373844425414332108108674274089139110152013416148065364534872598116642437617031890126287880365174167811873512499311581112968880073347755427705756087959545687413681213767189136978071130054763661893557686686761852365231393830543738608835936108692715436578022150148657707629048361855206553263356828918280888130755142683354211250553606102376849706738925119529590216951771485372993364433047789498034652479601952407407558765396509292457123704450954764166363624917829816182512299741504425058576603656653850675647419461572011227904025336845685760159333930138531857807789067954235615752631842093583798006307538291767443117539020935202644974593124596180129221012155425417964934162873999908964815673612596059817097376847626959137361736581869135546215826413501937431609552213974764360211558181971615164697630290950465998608119855799655640203190094445562361751575570035495021282401490114798873184491961974339847965165670111467406741831543794740634448912769633788707156805698797296680054676579707324964305055295598157403062435527117811078053200162296124397299841182595607429928106570631724000023843830382679755228693852968574344722581135915357036487551339618917666677961767210264602583831670308848037121221738057069981529020533060239352125401317278466812045719798440367029145575496282148096433370714044366366806633866885588249226845895764817376047890083182116678121783960798847312181165767035628495504467109278513988089624874502319284664380210899027389583240940182592837731039152058308783445438254169777050552057490456575660605872776428657671540710339957216923910246806047724925987405117697388646552146291465567720404829778719032262342877321082674609068200662320676200384930358627984429827690890623281348075714708003310713718562843217440616928215172199433889559623547821901428201956407080775134307622580282478582942234300571951233407124041272279359978486074083743703783612137875664091620348162926042560566957219299033688979439630655658285498340612621675012448840821958927065719600501312085017045016909698910550998090143073414595800534487897149598930974508990442121523728974886623728602964233817780745837770681115181360121448683075919473641437437729763329485150651477993861335121035704628967409599413424846731810016386024552100052885898316916801772580422084167881880762893420074827770028751248897434544717074539923786417811169951676217566009084048149498991400039185285429670872325822896861046686507999695685414595127096691606417168998383446572880674238848470893470028595845511573337378331571597774906017679999271089062794570741584575980680511243603218088223485034591991103722317047872768550347302368585017667134523134276319339841071248181641338840724912487902412934655761909070772361768475189221428328638551545307767536045936507086862072631142535182002341718513392489512879149662143253490782784050153591890964149866158989538509802876781705106073098564299340849396057124640767935356311342557327497397916418361562121388173281352291641960053297422022388086409211726392817453216502164142745233002592842082653235313400273840698884179201182709457252397188286284101795566965669215565180111363573201937174676568587643968687240249885823049426938302522357508702040592026101132103709054509126251771350620918102077023102072787675985089001043933583260757647335539769753091975320485470340371221488363755370217594745139763474223817726175034677415784642928346291017576478591407418538594733642068196211808201457000793178742586300871816642051512668206756386915081573311512880263681531784417471344250895004963444367086482160970893552007849257486032781109123513325253133703469051363906225701893967112825426272545328951705967839348691226241540630645558665401931530146973970150740383693344391310284548267966360744630509681184950352339714009649978705159946472830035394067777954757063735082309249488165347672603435977810006113689347249557567081420900641790785293438816472061569878493124028229730052736305286327760002779394058511516858619088419336783397990749459087023673870378291183664904212616272056613652739772657518641717692695413384988176120284708501561767756862229376136341574547285036711576910819096234966353313220480269227569706684797439824119300139447537533485022671280251159750560169474912878013909572728780134497068148790994838301255192574610853998654878074167145078817204307227569658017505559861952932469833587552466179819899367446223927187158851684687673171658570276092204072580936768483941174868839470086183485839612838901381324813809403448815264778015609248383641008531374340836732412210505308856498570675165144777088162027814448501233765551022423266865524255038739691899576998564892947560011453219238629402238397963620180488602768563468536186923721696872416763009420684623229469615012152073561300481720874009030954114331141766921446406864371569107606555830099580880205576396039646179138011605546840412537938720423441466086824518787845053745611284377131178073117628434481371980374373568073779606443072474449727218694752147018226598314211066372652856533645344101717878952341063713370484562213497363793834517029797392479084633225232706620291949328969417429120546129225652099384096160057268805714499796747065869777847096011406422133030760949635795636426029311443679252218184950785750055783479829327107887066513652679029797420035203080083740703682777071475489527706418651697286138800749594986595046091736937607728554324146438592108454986149258040437470359505151029899604759492920018350628410618900211881346462908085653126760075464650820354012473080287570609789500039467998809653188321890231491596382066309450899631568025409730910661821062308065558755770885758910784390433041155777480806717109623493326987823983461555012800109052674769860252766725987594226330010542907704789674825296009344111077440206624346836509574313363718165803898853204292835742373145851108522911062847323458984730346273297127430504938341036809659999811876061045533565842203540141930026158511774435767887999418531944622901880558572890868814161546238233746155984350423918068965074616548956578737597842050943986153717398336282739144054181614295202490669789207827747350619894373546055738597869436911819617573719620513234174846439887237618032052900967357472771112840704575990510211031630838824216213850501681697046535633557973392938193164140855684396652932193224555475375692821702595456534891177048812815185539974660071635992684726719445020871078879714280241647221136767632396324018166077787438818406965346235868885727427095038011626774977620866577516004127553990798071428832598798563556928058533131260863440906921847632446636891197617336330116624282514948145522274359863743840387747161158967842197634356138116852736906572203996781112160339175641065979911733052408003712473855794180230501722222991584177341959262365010713121220685199740165119014331588490809690686580092617660889701835666293904478396084269995933827377695978311921659177223531160145796966516695872931208414613716179242588184695010375819001490564064307816490846882154073686752669039253555813528556905820400248670026259755553612270738157569644661105681385169025454448142744918702411510558696109628073367537651410518685060500485632426962501328982492932863966490457137231122762719701716273063978118609758370757160976623667848035853249507535729991217562275089087176377610093531232409220710784978908682435454653910542015137799008887789526503256515247631656102355887986778608527051195418800455048730308307196845328598774519044097165716001680920593250109851379675744700405406949213941255917177711386340941142841931102885650140807797248410566424634318666043932366456009338115940516087113627023776461549329542710194242088543280598499144214023662766908542239472318462549399566799199073608603495023570554286632573134989357110168019072890276642684352096799976161275361851134550080670964622310753664065118037029905265674728481854275312395692051489195364721826396080941718732791568459445450924996653313803753963678850180116213573293175142075299796117453633940812712951141743812302804462227905279777308849346320482951180657047546429307835911044709107783592778300051243132742853001222868478415335117626065123428942677015272090290800785595795070706599370812426537939889267201212332066221751465550606910653231451384520857229549788893856414506558407821610450869634022439428705941479679531030383377214377243357424066144014162579050181561117682803337357530827114028831809594856914317980231033272148136787505819674019454893741441574627937118121232541530307874240361404585333732233618922235374889603042478316861100345579579131593735138512126076933806722102912942428149885321385170884944077439662120678319441578068772467321063463079262699651033687616879715599220792033571029319052096936552616886120399841486128376247997606695614738691204140658104725811956629568526850505338442358589439776924497548581201021244151343601044410446003942199527606731252275807039614830049667796722268119090107768368034255279544042378084976486954082645159634237538137689557277105910652298053570244772575695446054418990931416293908967438924511744668046834905095881499298726853054741129554648282598898343169765464022456300535116393473939046034325165053249516436813411802168796745400825819222195286706566242571386789957036493567232375615119424742445919207257133472842719279187600731836729729518486916659667727745422260531633123103160124712888978013606024511705016065076538900996154499472186703728961128018891639937031210034011176605515296505626053986145674761777863472903540507656062181278525066968758386577771756364685440589964958448805711025389136380356297192746046162393923731788436845964276574578581749265432120266111759206227834614544768120846119523390467984891877875306269888164440383676254270380612197633000641379044303543562746956581505217374332001910214238520509264215832256041125991432044377740055527882991994321510258241551447230346576199397396296206515237621061370255791070798314739523783866260871551258276903794256775500477866083220205235013408137080409257832886625938581987590079216912585869585439862649111394242564827193458798214966506274675904312499580756793269194383072880053155065436729498962845508191077868983186434849184420903773158850738450881496905935771950448443013014312865570036508511529453586816073373790734304908998272025635622173665225719837122816553793022131591637017413478149439032415948513498604362532735891838155589140405335110471362948338313084720173188814122720624393307154895342551131450411356288291996181269360488738041951412812597847625790601486116074064000248306966307169728876357372435049618070835189546103806185275958977860870481962731338699595482223225125377581061610684101964052058566492824152747810636111205016672291232796105694976894086075503474799699356415320651747807343074314395051660485797942440726910953076111215813151514899535699177889320688864470643229929677798372558632214397222063758863838918016715115560243149404309516309919306189845237638717635395207967696555453305841620600086979464766613581280360412699815241262017478097768375136494457890228321055563803761427656822604236899881462307707365836322732862074380346694251667232225825443994451046800967829093906008687592744611251702603242802614031816695373736409567556913201990245633439923982594088297852781429082714668461590875933156941745657482625006462022634826822912941456463734547375205475264741155762692308182592911288522373129179421837414574979099114825080329688341633126751088455958969380545168269658508050826439358934541964329142267561779194876913332660210996035689083165414814754412103599585360049704791134769333006313414035513529237397551172482430486567540264401546078023031452591405155326899690607634987858028963555383230640951522894736773959220123217656003424377288532349847140148041523359977469327462372127914392842150431140842014183157197257166330601390641291251917384187411084500296353397893636181470489393141838048226471365777147618636044937038021178180329380022913318095529341105545232043812142758776427838464128322070362940156256377101578914380871570360602747179614488971474837047050745495796505764980514385857253521977824646508076118987900684610240900064487785353909941960915278885789657755858277032578214265383338548870131564220565699880900326384360215413887320434572776877816657332427128228875607814670465896511066202011554534046545608762900127803590412236856294010373950135411162602257759300708797302327751170984525627510099577756231360043113491019445283119690598394002980088376230123502042683392311187434656007708112942256893400084601529475967419889000429687670110448418179252657699016063644193483107886199286900434978030004093089364810179128317004152417899243002473793356990540556348324663831432978393798086994155195104963760377434693628108763185338094422871389483128056466865707798031258350589126545021376436213572915809442179003813678486988287611761911449420920132855935679165564982072464331469751723547045788456137402221227040561136184281402058725484842600171312123101468992518320911808593393420479961059421283438866409815404354551033563889990515246392431483708193281008674039325324143480470012564806028401298843055358042259303548498498747075169494995331120465546929095045224561431811721629512631577232936730856454747603934364205555847407919189978682403122142711566469306278266650680630113589295780389495731939017652452970969511362183388496631932799484059564856624172415686494597656833149742593984124027029649465698811306093560224420185820959337951893241251961689334846596224688596904922125288547633804758169182213895495285281589128352016080054921453921871644433682390376122965459332369767016572326318527719243298415501272097592608362448428789644697398523374245892852568313490394782819962463466638035906338693772710328880982949150093076717689332619026445352950360706530727999245284950229975544729877000698224185033871958944389640371882048413335752917753752088782543140341532610352169113470972033824349246070740275588537179441126525579100206340183104989826534107769087224104818196885844521531788194415881699219693954421352935857573452152431909786930814678154354945795053662945584059028892414259577725907269307437518869920146965078344933049109677498980687121166845274142956958513409810011605340288899672987699799685926602365152496166428941097992920023288759008499896570887513877960133255788317362527001597702570208743399837002457614113306059227731602771448400901129464642854927233654126767385341119941556882458927052650766743338488447409080798088048081865165504991280014098875286169249653229743384592126962283013701826690661536916052209271009803128375575565777328602565825439014072535187228397295189980908964360932295602253008075925174721646846918716307347523725437514297922675377585603174916039964887618952107806837932119102273203931468099170311301213068050164885474062909021229614797661547534246271901358539048557767442460604675307188201260004770254110454042187608765517286708035623954655755850799490480880962619115830354271661304991861929689941587066869774325792375762798324727989500319772599475516008530517400176815823087671330287905506523839453253765809535942229798196692931340468437044224684013453811202793046298553907716811809147354536318545178138827183797199042663699174112480314356004521462679556542595621645775555208858000728903691634429341293666834319351579318121406349092890268179926982044919652770942907793030312211129741567894105311311795365375527501117234658229434500436696047629195918663860944500335502726633944791583253090726480473181524359040960564544023773288627589780755038626582713456856081850547015531326984334649589965934343839756203038176421863767638942165532646047076356686095189369232281053647992145874714217194059393373220609790701041528911346470811406501792022733234575086250742974756910605637255761788608173307488503530589011964566248210702723447048501737201660290412713623071978412777332624791709753731265786351945647285826194593627344285643657204191298604338469615891678579601281812924887308152079984282365855541818114938521103058492025184672851986074696749832186893215958142669888502898097666274393329086181058918347873686129217366494380743272164987663967751990403861409579291301421064762238501715236958487673794073596061616888674325778493355219170296623649060251738334079354427249134762612304009973178767583238943199451493060304772491890890387249751441053977489745121958985788807084271158448180797128166276553394755654748922251158869390839310369250663297886308208746843429381815298851235692203404607989136114153989875026756237405664726868335726667303163179486390879263698919154975668852839935593624669803515956576810789274076604389415493375456474428615001175303664227372270475201466187534095792353037793552071661898919090786729843876133448392046873495398643111630735271486994875995789725707655845762778359830492777476234122336581335477559538787096180768916656021349192854408355038317347479089410563407289750951797771788986568993543863338067984984359143653702907942155158659161024109677540710715685091548118478667119919444137638347023080645407036886904407691949987043717461667131013751559004579788458070311563356346364000946394282949169273236619759996811561776152536748970858408318231800122831643245845769970900615793664253189074504501830435464204710951076675675809223335843834195933929384881257915217037189618195100045291223918093123818356891927749744643307648202759828159764067784491971137441237385298854053876192938778569557597525854747328012509566644082804846191718105742900580450324616111876349651683532165988398812260408210337977824222353279440627452889862309392649625043707027199669701528537344325023964718056683893916014526749482432443496686302352056039074295324174168490470351812441370788559724318101892132980067791866144498199352087010355508379930039224205940613199682609583349230944549029541501977199460392256393825311558902804361016345693564686233522825831227262281797285287016535997020034572802275423509400309842659137255059336306021532329760956470252890342899611998842482979672579562700171928378611239747499286688128656525644506096763670566120662192491936882863065627246301533380362683882093278654548791213777791756223936131205968787910695448059027084079297375678068205431077587900587808607608884507915530546881453731085176887313738891377771358186920041206728852855026093887380772705238670794941902791333860059772689960195417441075029506455499297842424371747484260316561426481879927726184095285910312505743968324946145979649851930584575578516398111166132719025875354359911887584351285710256246176958879454655200287882062339738852749285401384186692812182462619838544352341308990806725128674297201067879267791177181338046330973424206458840615421199638084921082540294125069920331781296316891982450001801954212119398272828257570483545429934399572831917979763747637016233788567018013799062128646890865059486821541823036116994893415032195976310529334875320167188389284794409782488729056434122392354168479595982026189050380625715542722883294780989772488895341221307367381509897635776144259809096926752089390113707833725577341005929991076093909271160200057635999030317094819803678571729379091681377058123871531694040390825146843925229473815940859644551011825781593990549536104148557080886877112911134011458088215663091838779040546042316884720507147998757483114005904289764919101673488887448697915262610008959053481735931522280749033434996174495485109729660489478861039552000602480249328319315299650707327395416824965364185639443277222596988869369147537243092804690464507385273874423962255757984506156627291597487696156190793093606432825540380255326002453934895377169827343723102422841646980036115452492740152272738925776030121370379486309971691715885822476730030099761849316321446007963293406738124572362531446066569294487367725776738570170339438554357007928160749674519058073226285669851558255022643758159813297745176138689967434538030843640084543356099584962177648007986900174985629518585471920791377542760136346807824861651063749407582558993796695331887646621082344828041702095545707054359438223881963470233594750798888937339284120143657496083326647628925100407764905736102500388856291571562155356065073179571307765123273101369933028559893978986837328682075970350262770804898929287668070002909365421324166517463540580636282064194093211404999279328969188420674926489178211030340403042958492548174041830148894272335205947820848946682760319123936996771913006775978640203844286482932847871929831930739427296857195267640902994474930304480235241603709097515166519738167959185566734367757425104744183860335620801293600171118293391959285887833239775354467261362597879048979542363978428562283253888408724525442987831729867061394824479285874629553957754696626547546745211777687613287000218825756150284844009618753764285440537913305180387446876131338579376153150736305214646589492930161521352187500086295930053094094840564214063500257663166222202340816128903017466093400542056152088757558604882052176370695751236446377352410807788327182502035458259014517758846088227626609362545568598803908467036852096602025365869742016808958972661997732302874564985019090904884628384615247534142043874112158674649181429255920550189491893055921593975722957366810590778448239096472643294290181381845328690549321176545180293866725795412575215506197318747673455347828823123773578009570372197260815041383952368295770235822459921614086377440079622759025024423007709671669792887223432478412325821841102028325087567736616422273011207670154052474019173729756617013978502215882532424490205414621579956074644322982492224448009538695501702782821520532422811125493365677766722585974616485405225424867756359174698755285857948706539379078928686416505212033324019849060130182194705308474160436728341080110718288123656952685836667020036539434339642476412987087208954103957859483537486281052307576231224117272133201551693664210960613077528832460646831073993231091806587044307842555087921251978073416572627839755848111302469925343743493996432023779791436105323358399950503736549531207246476518180451786396399582748369617136612912980521941535772289317235604140522167679346336373000506607316070976469407630063671179295195243900185744019203988052209929949443805386861507497836470481984366899865779845687274789865522192527211100222470088611949189655356436016400123772248790933946349743532913807015375288840163962070892816594130722020132679502015905651673914933860151766915601488656121328799266119098391949618527031484256309236933389895098146153087306383577877264373565413934464228338921610205814013229992060596101562457492497511522878611413531936001801999164551286134241194319607301034673119834858764521857409766924446817444444024766376947617161009281591457462128374145572760426919767720391913864994274149696322031784326824852705900494365198612536713016624856843473818149433630607807565984882470600182621052578480238226793198443290639952533840045196859961175949793553214748719596295927161592646341238289183394448580188560124103676199775937465757411832915618344254764155613006222243777555551505691685283714070369227560240745049589959992563571056599941946107716800795760987866488787995936861299409231909956985438891325807385137595169538794765535188993513446459488216796506383009001174755663856760755370714631498175619788986457408351809968346574780470386635094882453328217928196055899697563228326934865539947821899740190044688954335325891969559825575762100820992072615004532502480683203486377504786501548134422139795134911619183300818107835503744810462498577184920661696317013728692101163348863352259990594108879478381079110460315272643731991723265761756821262590883462638486555179861914250409989303276187916150132678173124735953205425651929394181084704815134115571375863177592220053908811967125869512683743815181233024073605303075079256194826091911389471643675141763423005621086567416972813897342744399395998748392863408286270469942764357768942427471674371546805144811177060958700129754812122279324405174888613169774738985727981227668888532515067510947473706793373104494952323449294469302428620984375932558413122600656210043273690138154128541473168945817387455010311341793420829182385422299484999384438170414381796680543432466565742119405789707452099484076033961397133793483469344493718164773960658417287071175067381594964805101693318276916267574595353219742774472066215837035149321010512172318723497663154333267049575924856742676593400501644134452425192500480787956911128360142410689022980857830366465785936051665547367186615085737499145202869276269318276017831583239495489537619766509386175717397258597620727854515745236065876599018818129837781697595860748940335718267593228399477383774067896109434367307361884004613653590544670881266832159420302012703994643368480408269802702089756035070619878688299687337885223560486286553559219328007081214685649797800629753680555579817801271353641866317050675891938643096150137008491227304280382469544638916500874217360647924402862158244046594479986287151080624275932242675565478041249366838680707219525288659237537177554846374989178917774062428436179876323941651635431239353654954446823879390742908911226494696015232945606055029833029879027942314884037893137981453245165648460206743889721703211589965153502795331901934497826644864730709611528297366804726444102410059219810524223236225203468409333870684628092496539346358809263273190511353798804939709757229768305653040401374231542695790201584456795542977778211865995089204987291567991375130517406879153110377192079914516897659587440461257095971852653069209822247052452250696170990047447949755136171429407057806212060033031187878551763337064121458718121620911483992475527817593253927522488184646233933257657325481459558675678716650105476098327889086987960813443830425875519349829812359318479851539394009747544978391889806669096727781286205288429183530254963348889828304268703380965762490448954432455150655791399798224045887183442437793997970736663802322487018700501968949658271146893897142040846402211395774183789590358665040459055290449047085391997122121054696685329458072877269952995301673613474029669447982094848983415369436075858525073427430548526586649474082281435629172908914802794879762416328259871037659470692014223844258957556531543206806279049850445818907978586412603603713127007048612101396812480508160067980817440059906982811042808843461885272990754522527256291848827333750992607007433705055889223739729661667490704450781325132853133947986784532432692430842725596633198376458707139886275088562954776881340027157107954945843234126167235977895481278188571229928912718667201742367501917305363695164084211543958173348260715661125043715554460152183395919806463723595440880084246816205440692410326921398760753515428892495213604092572149697977713752743609854903275411215121153186374548139517854697474985769773313669000005177106077045308007727589213183075266710014225782526037617068007239433492466271707913507320854273518164327041638120800498284696759885423626380249019419732007051702551425703094117924310330387353433175237974182050062488538569246544170677163537366330634716881810106177982136485053884385948593917444460783161060792267897087628751778446427912402814290052749011997002927930927911550843114508756439096945688449945931580480379790533832841068087334280187761539776944879518799680430763941262441625347952544785108956785842012091388587073524293540016366156223624882113375484088790122516042498256259303013626061385701277419403852109384112188545044764162931192783630122661516427440136461566680240688738397743769835338360129722056407060519924800888161510136879717458776013011287562535505564983147205002991927713092004796705367821864644211121866645343149613819425131077401734447654354089410041308100507169858319471456184185515987364657266701515658109598954309764450698000620511341500375862355805622419491436249498819441270120639160843249955309295698011657771953139480260081360846686386537859689173316727408665095607381819444392712087033102754395419425202714541936488991407578984998292111451041665692101880351779213262193021212134868816434198552384024145821803825354087774038436196501359267477447409089771940166466384534702804685051966319750293137493311676978728305125340178139405690989383211474052150435014619514091376885818296615031382870528694750635398133062484335707930422293881345538549515032047393658777853277265118179611131260933425284490544988973350339953570198835048420182633589658523763121674906108761039268632411255788320680575269462049929063179886137692126199546269008985951438788506649456234757821009351533988932504410103335516697565388061890486033846428429557007283783294664511069709453412084401108283467077779957661903966627367899092314624748053742772437150555238828679257642703642408971029140936380408696874099198083350098045061170312612315153131951311040164577791703219202183230168754659053393145433757034226119823460621087078766625068082228868398042473829494916541210778346285193729647944919280864167719755045570993933548922935840382455704747333001962805921703490153763985107470073703910460607629578605861450549258800460524300754540940612678656929726453281797819687007243883685512627925231033309924942605032683066640906779194648146676590502629776139035480788089963879712169885081832837952693628788854709200010212948441722894694450656993996487111461425077773692476603563286162135776076599350374043879031534322582893995592242079237356044323055406201013488159194523710971572984883311349067934863485245768324494227249305058006847818148107775293288179124853388607099219548431535063374788105678464441706037890660298278353941000392807264847959130181287058370713744021134436429511831767875449533578931158667162504513539482554616604263042141227984166524970985139236240292662826128574922685942780873662363259979739689142620211754897866102816275425067314872349716628448501369234026872172668962370624898801176390820703595205154074950487961705917004838451663783940309021263131096552465029597552000309935032171369049394909999367294948324722033558718939617467538044427715281821413359714141391136238514921835349881558930390844726198290958059167083868651556850448798246183985466139866633738030961795094221478662340639515233260688997856299463523256472389136954715680172581973837770154704018808072866729874892939958250295283080908702871282584673543221702350179520763365967907716125745123466851143294662897270373460108354793670440170520384353255574328673967089271082724013463066248261222704466545303375889432929037104828544821337111446871588958661069958415244098909043469254730067481697804445476396608407003046625260339957277791528381186008248073470774248469304835465726768762167556354405563412860954515953518126836621605335237604466969383953787690209497512549380687090083680145231883910314618137922395220183002319987237849467189462276084780133205345582988474340626261751286213248303428440339785942084029735400081947498939798494089573818807472733204510282826186366867556305864987877654853694457137832508554959846411634633933189538073290656083314088309327450090439469625239740158229511386435517793343392812821814785115238419491765007448382304703838543914332931531876087097968198191798756427337040637039883128401022215804430694321182914281838450360697710713299061122553324700888598811042854654409028355775656909055973800463647705157799315945168988069933981230784481406645680731702994795440276101865125828753773169461872334637203445307838475859622715114174953743690875656795869603676683650194979792118660350555778050938293377593795764131968982374951709599245805536187955840031004830969533243174364279175554248593297778828523502840130486457834604434916006838972861090512120717352130079095234502266366205581654563376478339887336175735224064766955563456039128689768446412857141159483036102266388488655289848266335723633693981148828787766848634678263921446380737020394517155847507884271340884890354009067539819553762693297686845370218209403235017243557209043637151784510442826540379539848201560956019105928185065022176714731270727934045630976716419262192528626887808350412312386273114049067150443597358338927495023996554646507719362891731173467806566577564025237618264818805056952282132266505759268283305393065767076031021404445193792684660758304756709011415487050166728233307232009560962847122770188315885291368414225130347609116413407089495154241642055670798699840372717324572083968587096234789209542135308974451116647161653983020376193857906264627450069837913073721408549454437467736420950683002720952634068026908612968407786821194541645979697740835035716788620612542412639676174534220848199981253889040957879952717525283916467892807855037256137103518210224280961356797574860773782233349913887998188573045504133117815424776963912639533449905985179724308581551764375028170354401818079969684942090698665054979263823343406070314626030130580010417317722454553920049747875698365767258951129091385648714147901682746509134937148314908457234180547640509770832416975023341745558830400720303366105159381145438312301562044079412273705091575666860436193158256036663897458290106531509518297311880037662465358462700219184168912244246940037640747349191221947762640468015092656457460131530573602756310418555294634530326413705576994625559815886292678331355501644482738149157051210371295438736756001362413785585329458379370279896632348924825148458034426368672739675313229984335058295954688391895177938324610050342582467068027237863200142557283927241966156501938045432867264534238065321787570882342110760994908172725495382937821321560371382506471446375158690435396096122083527904332653011027187124695904276696578726189348009467176627298335487537886207081762420264961756307076883674033084684516331744545699181555197738668205947587439644737913060804461581042920358022677716539024530403739877515351616056766322890696118498527440730369487496446155616716628782111104530517238102931612394097631204504102381736548527856715271859368409285948724905494180948011123217614781208959837271015780550675411026034544003285894805041751312073247182488948064791632744715604572593508818820367691888574577643022625755507379798014736239977859259105325940786171631071145751708289405726834611539586583151205375219592700937601705834156859620946441798083075134891865729493869423416388723773465625085276888502189330262380112373392845989707760438025063416955204550450443978625564828233746031738831316448627437081749528319356332058969066448660182174593512906556956752302732846012250345282698310797878497846802342997852032793265309302701843674549245655138404395292534182094869365450571398915490092705130626025902680413239503635638379107188844182748661388285043846126535209667458634274220842151096581842810089410721858634945113694857831465238062196988634977787679170666430850446503330881527979735138681495251973682355959874443535929752320568598283212338523838566607026634262129522671918478213431149607939352927643712931348755869809921189439890363029474705815655034878567457659646428910046451488962090194210300926282862709934893234620140631205769408875760120291057459626170368660102679411916769315051005320531853108507824725182443264163283574122714007576349407698131010960752515785096032359948757585694667727319298135389811741862093071901774651017643784884209034183522077902129384162222065957311274054603118907761206707643684336436687028291004475045426900952725005463317645689529830596702974851090833970730416903970505433801150022119280374744036391665532609227669233558233943530726142430908377575859757382795852514810081750282404747739889736393997069817365003697249735682738479668900669616216099467838867768904291533640367836429396940216159408045386542514026154562935069313726506754601266129835593678510930567469575384091552044458824240662546263153844104188620936438973708541500641565650102973275654100775870485670413408653562368210325351232270513239512189194320656246298625720304589628204314248696529066856892788222097214485367550324276078108003161145953661062200548325676092142071821640481278615046768797086539777861344609956826673751331117050748678122355514491990491426658255529371432762294684263255322746250218189441153196425008587543909751733821186921478997805704345060476401050041096257417097728888522714745555778228337266261372282634983095912545892286081300285099612749964807301431925984012366093076182048106984598374644771380536766911643922180274033643024498222892326207436686763279215477848458425019469215941553043440973879689091765171738093263252858677102034855955402473741693057551554681625938578119140320555785261666770667815101049125836592350879933525006889796734335809556913319328623285506985007078362044237203027583024538938322381662491831165978743944633259454128001380134589855817322145072841740537732550974673361411209957008298165679539925313338904910614827420767606197409071970568499509949995143272622860746769015785553446212487508770936100986026021224014319980068530207283208721248923499624840745205950277181314832961874780910073204121628791594332074755561855169418083554523915894269675830269226817028167525069026287452027002953158854414112243210000214772782342055900155532409320603487524253245050034840677314501041694451613502609847297371314216744978245553806331145439586735152002048509560247983541009176997741736069547783974352512050437278922931199304400713910739014201122934277735874332675773817359270635155851863061167242874477927930334434540296177569875227108277230609565474679053001590755815506444950465654443196324046321839638686326844663928985787442413226878717341174250948588988144640415382741669797704857386960494575249674105296610851664088081158679236170522277605980701250239196724902904623730212054227329226941505256144273502856490214234535305245959794254577237124020193136112610875117050986818839105159754284614193105373287752726404401587187299464002235629085383976946573988336713367292158619730869575031884137428146304798044551075582352479508757754492416426170405401178254412032587008571691658740318997257134074418799114163283254860375297520766480635845855768111637231953714724579265470818277100015588039005349876837806614247329547499266316973032636871319809644805620527450581997669344904397635376460626985794596436220134752413319215884399690801560034761431968338210763401027850144724721697066390280069151018726365502946733006239733240512736123322641165892922975041108054248706782154016891147990172569501485416993565040371399360241384616902611118107279833984421802264898420981682517612467040307498039491913619840822502625122844562950240851251985484602339220035415841287560776631451478347358410074515948070206573586559395907942595718977352372142071569901224601756883103164787269652931188566234019708139342569632045624026135072303992171537545199655289230360690215866930432556807474755894842836137967095131481042147604623290644250176040701686904547222093775581939478946997767520122499644159638737397459087432941516298043508563521471883236664487542609219980023129302523913893335237329202713000273188707959493852763547860934900891174817262254565540467126530823432968981314822446937483413826137237346299448222908389717798635836369174713892453048861216661064719768086909189204838243287341385921992491518270495887597018222316459854897555269625212989946830381890719605259015807385614985730803805977977442442907649583823399041326756132842313349968554739450882012391543489912787588295355771998918196265275390797986839680247182261313933190326070173485192661929327829444719104745895093076320985353451270026424042524624897424831690132324394116432392017512156646429141617029197153175310702939063496245385379224059302586425358821214407301339108231711121054817492299186583400604164603122757893499655742336881146706136481349037517685589602974512346947773647501340022440484605413420961628464574471626920028844544465810966665053057725048582074784471930843219243510250619548673742991544827083367644436060263148704600968721402162760927919062557318859391538092533262874687912197362946695243566616563898655944270878877921744292455580006400001474017698952867188866272984083287784889166476101789646328048732022417257263751480220219307682014224996037979682659769078505119693265426231817479378125742439420699427672260295238984772186191849190548850962831029423256361834819823493437353708695747796986953037026590574885706875168065142542803346323617806384582386415597831463585395642412237049956866220204862722095872802679636582032516793850404106081699445675536716496160828493647673630578497583611649355723900008844540042293788776286689913426848885875648223442501296438316748515853191060769874541415645408730930895326649980098810531251895418865999158362224451267332084210404278479023458702853307231066149874495216205111970817132338895049985998932047191423288999669219095155029244971539623443457744666660258091680355620860386530912593826486003049535369676104918219266875045736101010094393108106309950794961592251860075274033957097881150484580593706107441931872653887536903520254657228747455891504817542758308233241061769630859322219031534476931271078574116052277541081700178862460244096563680448020046806373325897380479734462151914882031262716181071730763250920403619178746976836230966381778765153803126786173884456494325634826369585387986716449921100885906616712425535306171077808097698462222735469279254490832647940624331562817855710255798649639481562747384540144579645478646444002819776214173255663028210285488850546911242004478283638132008320208473001216969251972344897573157530673256077094040059795672265897491746686140759568624478246692222975401119916327008002090148894807781828274333566928239007753648117513350390563315278760949955125429042927792705893568356649279849737593263336960732268135516818696234179935181064355899485528840874514097642918460985270918975487830376157543788066009989194307523596274148769857982610124625459242179387352277296022557327453465821333779203117373809142008230011343924481293333132122664350128503892902330739353768751560137711061274475977049942212505142668662841015539000691692580972549397081782879946976580367429294305338939219814634321094396487379213178668668125925612043283970785058685970818370499100323744991552753707172997933016608709423610879351008094796045776246027913702969872871927626935459358105539857831602186305646054241236558386781491657049861692527678544522952525643459434927334327178594321252409462050651313711349126136377776325038396910139864560039131058226873316001316504867311201179276533042404665334311817526203832992355150285041691631767485530203535717143147489419891101810449891757762460890516364688025031259880550454506794975602889589876603023806926534724123749083266145143821096670993171308224480746771035142436639361563089002506176233380305587435697686305422222472406293448667788984235414615803646715299063659581113863599012370896965563268771062897245554035044887796842797127717399394054317240539561814576873642989567191339812916552125013608780439930048778634177115827107834506148180839354689250750481743790978638070083507923925364265999468793134248549384533076077620350095388668387874126864209412143060989052194227866613347805112577239861587583531643830326680851131070545449345731842446989581179987985089096511503979858287678957685792679695607971218803182283055824162851461602518438555807708797517297448868593509734169195478577425543044829240895434791667696024486211906124562400570215441795897205171426549948421277548686461405964815412740818621012782550799129975284285411172363064705544098710850102827052132103046380079212847921381782939641846317606123177751831904440425327701181805224840090553166661069798888614191938992276165259896359688521628338680687914204177899166645548056669033591340421757346455012987006722604867591360911477406383393113505554845498755477771284090840518832924690446247410508874449850699074104293695076982339401739531021737056862683074823859975122843630834485476218640981274896288324931704699093778661852506168656530601288955158734001247618215186418739556926113080341288578791681036203046294793737256264319149974495391352921597763179470348576699481699452782511576558779750092422338868982940702607081217508512442381033112891604156633186815364203926446903248536639107643176768378702984604463507936460079110221298352897671744066355454444429352942801644832590058267899838081656714122314279954141581277374313791305561380462704800907620905270814130526369731341476295193726967213965227240489144586799346375821705425448861505473507431366444087835801137875523497928856829572506346797535351680450330886109344919419247831446258551470029859457479039800516073060195747289078156936632430129485991747074122424851050559053133733485053757018125963835706286595367237321560529209952948121070194641008327593988322935433280875961786581423524626436319373847382076172131496595333161867715344050167337454026907824410988804042524447475403139637876635072819077229421574161064028239582828549847552528932957612903687584948771245797926093695032626777569702669409427241409128898956609640299577965161623204912409663020862720219870524257728722792889129561166554980465630166142444835266652375194229465628809443007442968276026413063858648371980587788325207119607987221903003922751455560330125858857916315193287413545374751746587652447337206431592395048057615280905940883017560607864442637312771198922141999030793592321380674924813014587088439646511740804830132787947407034984728426356482083127724109935193049226171644784506148193526546464215929124884415651216513133944788363932229697814016198162786312135501131982441709845611737265402828092534973065350242026113699927192012914180655737062449880353104623289958750569091278803221979556365680309234497115888600223175323436670891748777181636902878017969975680122421022341403963700497962447157396187576275336949022311394063910926639083318244725096469364566592088447137817122204129528049404302664705662779017298406580655825378547189086275503134236713578835897404793535962708313929659655561253083384085344232761080034165300186558140158523045697916105699104807771355917937919916274945119773980581996365785089593691184125100590598053961649845405201294918986442883121945571218084784716235503011341022504372370043532647284041614526004846925814116217342245228543572671844987498291132174428156598392986655968776858645901207660854179754041881777082848114475741834573261597830490211381372567844371493877435195554029065713657288352275581269305512571329567393944006396414542667987999163726078751489136522547252481691116719985049494664287490477577434116908291638579448247640673940615733073124497011596090126169051692370234957962348210126431936941396964032938241539489403864695762789111964631168898014442419231777443440838616638395011297374373676455710747352917859224402184261859598294967203822735934746032681816171198161423849947730497956268329497167072824789227643918529157512815603827356131946138308756948213311877918067327216145902146462029952173763830558517756645690790517390686718275478993806692657329084596160484136479506546496466107421267312450441923893886044309222762043416690197885574535461318244793019296285902977795340114640955297179670041416554191758838816818986595230495640154464114116940853017575595217453836021016419849324071286216933136358268678661656271284317962017382500733115530038135141110964840617727512732276936431191375283368831775856189586132426611567854079237530998393902410645296612810062159816373340560820637373310952297180172748765903841471063227457035001636436256466952143163466999357881912566836829197479918437461624249203617530106347859699303213364679535477976698061027189240502369572377592592456173235232183201818371780332647005176491493713828216092699134131283413449191244662776649384191596881958843772415363766046424682337068840480334134971984334241046685850655849403719457639449608943639002497033185322482915391744361226598584280765740430290233849247956899316470714946986421279264349856190148082096321871677842209220587870598778065268302957021661430733443785778042086052021672712072605164070275859853395378525482340280724500003633960453574611635312506530184941300259014636389598094568748326928322024135786952631915887781698267247105904850705225235553061080665285216279744410277247032853225562538082922455696484826224614061054172521567099373188531338895726059535613384425424154022837385842711508467153503425432170860986314724993684480426087920569551405162327163392277841424488282860703520133120373496935212786092094106641140650888569506147934493017977067519959050803163923070262451078510583227818234948115265073740553957489129471366689317767157531428206920485725520761515123056900638997595760763298065555887925825494300548520702591807602373270209377889982028627043248918320438829324856592372738808233728902179549566529786123235795488742434751698246561422891363466734385437801955374023326675012934452298922485311695081758753726203019760745770464397954330680233429093592407376871936488580387904775446786205616825960225143345976052724025421621122793520566078150103512466519167832564971794774255136058960385172938972349874802338698487861425414153961726212639007139870872350386415211432890077008707891433500100799658770993700156842238522803510718738051794893434322585917376125606736451744774829632980077328141433244834920415385519439107597947269483339501347307788698399696726065117309919528635064612770291699055799463836124784027285665824225709697249824772041647265634916076760134991753381292714657401862695263959668610243085385742887004508920578171618242296065964819406013263400593124966818121827733901880712607068776980093335433811993981733109413424793450680070011182269162563446111163768924324712287579650824449142243234787670796573441593943910259091445609925532760221006682733353238567955817300708662062011623820863285248623761234855507366063835715947142656485457578114939456522145593345530534241140413529977751376128441673666275066561939577026934617216256261326218565678922822098212681070124890803069337973533206876176192628030875958342928435661980838345224862266766827905754503879282703560873799002150256388300907948149011887575147542534668980338886123662308059371935640285608244789476144523450979691745624252347992440882544920847123302881679426364033562532540440699637087941699399240631888545340030667685258867544076602077850783769100531240466868759287082097410669660174835826581040858824014974133477696983337088219684340402783536163116651726054204893425085812372463054701040219296315757393956283942085086105640830357464993111743135481953071476665957691697978168408919560549912528962303334868420417986916398340359342444970816273551671208284221575239727042659270427267505451646607641471428008356489384467175805000662988887027755377369113472887516517716335309456300708931735019951598324407129588626379096068863286655009628287259498887162574598726175229708172052479080079781500275090290529379136049611535356730464434045583875093706115803150369847231172838528546586125032149845233804362688545600557528029398292629489934852080354700067400483771673132549698806554314319938131662427016195581855486118207602443810956200303864585494121306564386358735002612528689190308612192369786139447122833527519110380774425145702356690795240850204598004807152992454797596917511097220990155006499238552898131801440873574478471361120087105114499404164959321387970115541759026507388641197365763916041495264484054918444407165395469968386956656064448305617366850742785735859692533311278109009871298609397799694344654896663546890963170902450923692873360289013557929626479953999569849612452762148584180999875447124258489723651078904701539741804824572397105779451278338863440177495643560654581047786224217192174751370557968797406449522043848077888772310429236989465259108687515051774162078554120610612693113883358139444984457593066871954694259381928775640479725881355518992496155289811015599091490034713253279781796548704644735289681324348983011392846816190914947114967058482756930375319939870546624362605824707180533632404746630407771206215872474453982884799695290214446251917611773618522629694433543083447316540127049579109911522820911216542753568994636507625642484931948794982269903748188226500199649977968748758437646979686227564374313251914113104601474985709208341867151213724674123878074078547065048199227219145730926014520650783492190199836771942168829162451452309047301669858833786329836223139358472064559767094939060784423261562538960984407534905126319877362168092876350313587261716018093175609365273207696643784910049582554862577864064279561297372366144628408677519852390955534648658892566859017579695905473394355710501056987420046597573204559960047505361554603000108658503073385822284040628478157616310006180164514428583398232884151766320561893501955160367630674971076136767414804086593416085681507270404053368620632881110414778065024896724482181080876763557391149738103590836908122020506242268175088875780830466824679767080002531422678463404798053450099681906433526668510273640567784586122608972968166994573541490006697067037310708583519295126051464493442190490244220656550620635380848970048751570809966337992182145279640890662736695243173585801462556086622110727734534443954304533669017159960494863842611222814108586226855155751410450810766426637987494561593835205804146735848683571118621825159488724514398147397771493174687596323357670649826062503014532553058768361362459045118313211013479806508896787043366347690274957154483256777234835146854352967136490376271807050055928152647265607566250033240766219912811659680424367189698733500008289592192165174511899630574463829712765540009389569415909066998981541963613081785513659339904998414647448998390788182768254283580255028421884199915338801707271231914089819121568846662041626928682888737994030280929361471895093540303761989929592418772977983094100104365838715982197213728794648389192419030280840694428656518091638239841653116562770680467560983787913799042000595787587161245326719006737040500112290672827526849266280137013444325559962009003420374370002014117885275570886634192813722300824311092339313142473938241822133973675857929928205260388428002500373769512770547024878048020839467154670733046223388282234165593496987994990119386926320022638049936292628334670388318909629804876093740762789099419880509323209687908375141341590978348847392605065576997475462610600011005627470440675579678049979583837631487284864629716789624339613777384519691520862473702765502413357790898403723816807326665970624385746125256010027012897762997288325622726460979021162512199406312239261015305924169001244736716014940289586016656670118351352449412463277211853812419465416231633273468054550239362605296531391683173942712510837886887559120957318326487203006805258562825206761840006034430061104894829630155610231588173931099726656427667944867435979478234929304547729461726867468639023660262782231238560544822153676293787441070176168751377489183110241873911712313496367210897092578554122204397010573683330484094919639724656373378383892750163953475963759087085303410667994237404028775903208396184827609183237031195404254024520233073509581124577091760585959179260699420857223906518430345881040893331040397678043272120707115627416290476801601079012560348059321465953935824729623592443050440389977671791054524141031006449318288797102385169167581222972409884378367271165170717784867874389058446665314906885655772532262856633297300346538797359985578134756096454482181400799762270456357682853717539723575172214350264043229310458190691545679037077918726621699747051486817046039120663516570804429734113156551999817210242494369460025136754725440640236886843114138250905966889970436737324245924760126594444820774219538411534637460253707197534118455182768060134627272506714685052527110946723046457633804518430711168230601267563134058571836237813365736964452260940949370770863894930406253411818529532021873474462740763188801105261090399405852970057490525764079062370203391244801882579739608672514853180355481438002492602388269890091697291515766137054914472637952002406436985718348801263560020125606458007984342169174933918495007363438249846479568330098742244571776786344857843592580149788623625869512160957483625225449360667101041929842660501480232334985157455832467070317939503412190180308526100796262369548607349716907294737589341404891610342782667262133937102865081422210739242055883465463050968655766065271443971454357880160074561235978046064951832107018456317883321199914202657941230908059901779293814705847165291121283866065565334675067037272078258004108894688300009744358338695429975683754300802164834398818131023860301216146229195989543211554273844769182084039278782533047541324826245428827660122406789882460690249515639938766493137307245381143278285792099390020240009031022732742964054032136995696239444233856973441436399227382090360742399226330013620109588642236628722252369721892135660421714063491029967044183461916962343456819025452186825651915968969172757739537080722131317052336686557035210109764258254545306414660782075383065113494975801080802553939982075097472119937862714540694922506389710944094761244810219951966456163410629069631959492945280303481827967493008401926641410797540275965645333318606086501053527977542126160365549420418520485207984332093298675714475482472508228354204184717107436802754300938743122232423189913120418575106061001861886072730762094123006350199402880026379203229498997969094797774510081822197972951165897374630202869709197677425756692739858729958460029875216191492889677339225577821887163458513636779965071468242350977542647217222150275415485161979463683357737604820415988181348439269979406363389659137559744554990512922477420682015161733767734148011304135519036851744439558006376815759172557069117070498864019780923893859882057698855386330827423015103258844924395000260438879833257008519509622046412645502432332829193012637760383364484113669553378153541209324925142260302772739807910513081962997969750601827571539410021992281056175706295371715110659580787769052208331580045350137080529506728875654827923031716729225597170219111310529892840084777454366977514164429188892009213633213524747586506235429317829126401804787799808141893786210293754972911748978905238748645228160507890958966812426346070446003627198777875103877777353593378300936542535229791878104282835155488949804888059420289901273289484475189225808760045718216995917664104717139499146820438923259803704680351711297977871273194862595125564560723024237192770353431626302945921526280837218135081117555211265521274234034045329690155439224034260662771120781432165124291142441386949770442192372951379580221333043404640713237277186675565389332152590933436921400893378680652297000698277684146580404057241788713717704336081274705619068227277014340648082945852232564220908660931897229537837427058208327452798150862819215147040557711266914486627701736627891275416864663453693101350361583002981778737613743568650142046160270477816519085205486177248297706708120623496422734070308989394533021200911647004304350845318451103069484406334450848561431393868073203292658570730022603622347230197468917208205134900593895819266553815928910941489735717249379528327229865429487209887902331713856992443231773827647558446247669715223780293689861844694282269701604856375257283856625507186801628319443326335835622518959588776867669996208738328441148594416596209611054606790052684188985530958619878811672935350309455258449700907634326082417765035371578040472352179524246190364708273174045865942219717113596994329769424145484574014448333636794050325894279965968457560409440276404215696427591586693784925986181821323896521182338325346291374350533674565215123022603856760441934086403835073604872174252199314389165668296722637130532420057480515421357979475720420090541518583038049710420511632333018694804848963113501896060107292342970972811231710542968101431643568493199204326829368929030472974977340539605603917180714332853551450885478001639379701279259133995131390383347735643530123388509738922246531297621328779391354345598621151627066698227994342398621881952123324428006616671114834200653467151940810251387370396860427935371710556548226570304697927187908756372437089083221298143402977903664934181947633488042960000693186260244415250605527940754182514173280886456918210839245437463839329484806685616641865429489253173493230975562697580309342521245763956706122817395468477749577859741238990373738317183249798867952419129364707489992496823416389490708511796649486624279273404906592186381999102141866185716485529743751898130745649632864771491749424799175937637093048589856613896489709385699021047870812340980064583581706255469201583800143174284191452629783317502164542794796599798014370885689926145328699793233016640900681210378188215517652193215747382203452585522389046109577625213395412932120518185962112155896028010584602599028357339706841235958576125823208603584454046104128946808045606127666551323020050183011528611619965528424096480438947380033948925019058838034287623556835642014348082335711911912029696861151040713264807066770988115405159793059180352810435219668375388247149638018105280522543471913447585920436689320716585458548901454337167593017714292465400364391426358848287897262082254011886679107678254393811132483504591401417400442188861906596403511805363758428370943326736320670340199754992011679725056569960802054962342245273149212562779140063036881959175809505595461632118173320467926920943590811283503412300736638151793480966455078741274236702377233070146912776151104430249381892252379866361863730536421693910462178294882287958018976504608408058481415824690304793765112245845551689065982708231368878503985523099512415237264826207949310195930697187612506353298174085536658830762169853358597718780403608043836161410368643733360666703537071136585685176882522482130978784465466169034851800393025716536243180053481746278258199026135502072330190700394952283064907575278128939847740201468490006913579783384297128330624510442788638577721251533611410846925605565481158350727398113402287656552844907888191118120217341037763339263429693111024187663110326545594687095971370885555140483928359674208850001138640234717716252137453023942160575655685947489901912773068227442582837054491802366406607248898447443691057154068678313177351456199805129967827833627982773492275251323069129183121608434363638536262889630573949614467395308877013620046619932298176639041900199302458736109205321061701105147336255663005332024969666948614163526670984974385573322664133584865905893731323754416861301013487585299327506453232100394551869179273965749621045552556780461978089528030557618535890710270058333480837408910274138298454662785915626079495782699324681903228420100445041927344065688867199408467360918197326952166232721603639378348716246835375773123852037901735232176357187045118682212871410350505394920430323375635923350309656662227850407264848864851692565129374276041859499562915274065406654137854003482387136676752222728712628388234024625966141273935825117472063489408125080058550294587300327379069432129879649379877600765488959578438870749137719137109702172708512965687932017783099061010383863741566670951642148613933375966741910129489229720407170040908954451929246011603441448951630991449244957087039053173391187282003968314013421137853166182679877678439777991486418973595523021683327851290570984829888974043929050969544887632118979343069094242405125972166968443954589750916354603772921083056462338887923700389112047873241997474591207161639464689276752868028469603537101890218561623112741285166113118751059862110924882087869386642961800502261538906265995959143386644017731526075020377760186559001912760723176119386615043505991146043823521015052431010751742859152421859727602559447897255262336120353911609098494856388711286521030188769041488423130569756277775220680101790804811081950486097242123189300805515158323589264398115603704510834573715368955486763887071715750090815349224134214425042559867104420538441612902345860360218808700809921465703946334283553486937059473780300158458694982134965215118529645355877552771967412725088184461279033648621938966928981959034244496112744973894349513461491715103507579652856943211753283199459273219972924564790020828221968002393916364338167116941140301388956082581958252050111433019166813634756694037847540454971442861228171739881790621561756140836748823271193375058063689909883891733134869057226835807093714261877760258452397418808500965871462248116412705094660427816098274197849895090574266571176798797502340627713658646154613342912801363461043970706151621668879983096385490807473101008116962922400440081142216803665473578823381288258359040546125028788844648549753477769642509310358153913880655886961390457013686212394324293919954002002942411060706497278689033846945135331091387513476321347221271677161395138409435721477077169445797899697476865472367595311845687329429662958286149313711307037781750259370167993761585184804497327815276069150090849830519645382945675144461582683385060018377378275946673400283701986718813462073955351416491545063475309795618438157902409615648608181693290075816769495402268761584848977064999511155950854365889325292456493934814191544671978948480975070775422845427067778325547326414255700527793817558560896987839676866808662092268056856169140415376468419971236696614033841158876805035625409974747412122649096455087765128231251751228721544786286528009826464760296856553659480374633543064724862702449069152761430154491008771720314855865572962388073796402763845501484306985502387532791967020133499502021063197542067172784115180157611264401852800444084762692766251762276073514766646726051664651004060124364861795505563006064924979521096258444994125244118670583641308613735011366001756848248541740961735337313924056973868871105416337078260514468553187370955925194314116771986649750275697737959703033601643436823806802412065070446588568684472600272195646127453904870760238748492402605313679431369677757140266701659370855193731933529405673425316737036427822981873421753626698430903108598386567564264335156011847757254132649820256642334946631720868293006489687390639958199943105685581026990004621151186460705508119947561831281422663231617888774358391438254727487746318506013007454250908068361488445936987470919053797079581598363425040821114130566519399955284477370412291751777245261935773901872511838712024302281341898956151715304917349163306229691772232228792622296339054921406691017086500246500712844480143270445127412300903388267051521986935621435914393413431718961061661765652504310262552666679074973691763009731976984677262618084597717147545723797618096733008849738669234897130521718397714085065204740561902097152409477553190569155818143230105531430514960611047606261376092283030804415162730104971287097106303228639645725944793307055196737507453674786476938341463135897567429836864866223158155996129471284671017521857506329946580215862827510467420485575651477520617367149304372176200687406233411597982230853013668132521461505772985197162040850094440291111822849639694222873659858508024077717783712497052624227126975875446450953230120150976082385979246790058054244157569345985408487598638603377921466745979727124233279092285141107761753698856852462190758727216515508922401612949195642244120646040444536695269778567087844990368025533345803502995864656690235641222653744668585413760957164108938213357222838054375266520162894491038243818997990615275261734064021596928258244382292131880735419618815521719144569510757560207384948114328224220817009770023943022219083421726511082783883182563914076445941742962746680464945499466518171218327767161652120559616725324043259148302743806506996600495616764449143010520110902776184913763989466539060595144352193977486828401504092949639902192971606222899433081409279850996461514990033692887876299885590051926887344250465481042541806258862453817705098072354274252081088060361105190051770686526602771271711232589026348847541429646624582831256530620888904043561745873762039051270231356541933805319521278345709889514447811198848401968758510439073935905128902207464204661748228778163646648020714061989455803255776950470038916931875491264786009856551651893613884959618423151723751738077503866529617051674855376468825262552319891825607356799839704657982813719447306004998294315160481278537548145783815532169287085414869385992000386885081980394652032403113010243196060374374111789129281288070733383432168553152634608454733056141247347827901979171316023329882255556042378565147096189456813233329787364864994710589666414650335777398613400278761438132230561285169382229175247299004834440609874545450164341299900109024465619091944790715587982089003402492251367965214135530640219805684147119543028077720723864278782924287272818900299199812736711575087688961932588520746609742480261392616308209791801221365039250083495061477245815610939416580630489749041502287823121465869722842448888602063902075286771839345923758131694594504139031802180861026868211334273834959751911631200199443217442024073400634465004492024769058936898637727829779932952632373681596627600048119695417074299627782794731010956321851157248684756956154742810540947131077085913582085199981891588312604542911072393304316218579871820393652077694969387082840235765149481702243175809197025323106449747230863670412923357881025151264859566626041548453015751608871412115665974515261126441107461715109250487014984871340437558225743055637535030352382876354419980302955292989433687361049327989674358622170316000547374802382873614901626986725494746508827668361425662140263184678871010508513509655025636024205130706490743432062710917286824727866962975226307695938665997549377790487352786170930614530118738097899620664854579792538959381514509575240115505260761606230172698096145446193673655060446229689675705694774218537946126912781597049291176573751002040004967999846624980400173082819069990707589775669550480128223283948839759721566277110936642973652028353055523891156937167155422284568462145197987048421702489098958412964870814436488092551772012574706152565548646937283971532876102376458440709726495462180332548298614545448325837492331175306111716879079708470677807654750697578285098952205865621905008639090594146872382064755647610300722094631895070558493393850624970626869492967480139953292467364944323493814779432121622566255548895798264201589801911090086962865210767806225858818606028266986243689125326067129700024120154233001556878493935244497862149326805500882599400054245000028079710943558128605857412208916018875743475587823416938508283790098879522917805881512480316123241894119928067235508866729466875830661903284154710739077084633328391896706693483013221202469005429627928121166171376964014544940324786527971314735286989166320629721968225575284295314642330050696799004340495465131511834475884040195626292607926638279171242717128747752485078466558519129898533723662596048193346078366623517584492236998356912992067774803945012781940072644947462616419481479385268687975732904264210387716683502479608468655517932673360540563604284536402869324873111767363595692106280350141327634014930376323296547617669958341993054028140432359888148919677076753508432144794080886402984913717025097170132389046173506868179095292490666405435312155937508067931992343470729605505090442670744683371808348980816090622313048111618701744045816112966466077772352550362997223717605532923788232743840291673476594161638783112707273081731753103199482858968420435898038824161719090318529335169247485266188032423526498643867817698947643496296638890877704575619603123238687782681215819938614600597679305370222506502915460635203873072004238536110167881392327145950642670593193241556686890081957164882647469073496810626677968717798660573590766089411980798798530124811554486934271920669912121555794910269089376775366367960586135910698105210129588052616447901370673705797186432012846244034326575082892551765459276419022204329444717226101707039822379825193036014147409628325474680945731522889564324368451958191018290842590100103474877447585386025355848563537738971462901855551347654627666457262145565275055409543348989842863410680254275479617224563368929173169635431815164460498677336076759467745439036395249491595634495166891023215957742345640842850977295001811942272753490480146732520704594085692529885685703567303970495190304151083921089312294077810105845620226862274194522514786691022186014075558356099066230470561284840678799586360607387294487138256979318399933342111508510623066883014424312700655618601919844514499984285117876974322801889544729467871268103260710073433497457615946632333067299004457907634295470902775282694769206944204196733496620160578943055559580206762604944084451232112839132632586153354997017960987145568285220166751110948643212292320766639085932246613986716522918648328692298748216176821916045153969289184908738008434651415535038792098121915288336096923309289655168507401091854230349528421661577177410820984424694701503984965252436244366065434367496247807660487876344803697843319221243259081198272194061580097666989587677659808018021746100850362820284207061467916549431322041922279585419998619589251696845083771605047866991582513853734331418704065534840845240017852973898737390101740618490178141757507665938815613010246679210882449954960077182092363557216751476615506103589157629729429448406568762394004856473245615446030345182484720212185507500567687776418808868533237552893399208812688080922982240114702407007776562703015447946779952182864551520235288745768674225467144991747436526705421689843809333948927289983189568264873624296110009171667831467107300747072312337445142326460067093945867980455531403516468171453454938098232295900530362691074672119324977341636665991700962976966228700889435074603312342700153968610977351299784283110310598536467683257077334407884925037445208459531125018174799382104882748243567239640019894579152694939137992288948923232572669404599803953009426884735501166749172430927576699662666967065165719677818408579366073193566478955866919370636144643169848772561477938391978902227094655758949370654557109531764992449295538522248172875696304353937002843669586808970550222377863039303146417020981713811033998579265872473555409037938774935251698677360404014795069886120815479568971537880414039021920737288218315563449453191578582576328259247445065608178092236112947465423196800237944542776154238669778704802985862160331850845874553237227372130383037460034823446514874148616063325533450309454721642721104534266278761293505181125185244337683789932049996101517671316636437570355362551823412001549049527729867470638334225856317349094865203852093739230654885016243131981400835288664595622156246423068371958158429098093010380883554366970220858856626332766144909404642035742154769086290353818559995094899951271839594873179287813117532619390148858717107339577584473674090390053458748660828127255132446019917312592505591399822030404350986366894025081928384268997367136260889982321081092988864804658080981799967240306258694707292152027617950650194304192515502863916265923174844052246983880656868342767310813780375227939173697166989789926155692552562120617444673064802288198010013391181556243631837257373674832329091323416865215383348633452241163233231287297934765707144044921014479070586510903400229064897570884674920405521233236895908094521846304455758735970162086057794079028496412502566000034558757397682811039242913581294315381371333955596221594670538659044614242592800427046131193918037551908553334837650381907735427978426202969669754078567699432828939850798019886269539253193968598464994303165149428214297047867221061573351207631567240426579282110088449894741207170771293167429777618745613745236679973916298436518650567924245750096134965424390925690209938232746122151973451058780758305434931813546077446249472149309562201083152451786600834056429794314379903592454442361037199432196676734400279982758944874165848332162353817840289487650821330499635514096302033562429989746771852409891526131959037182747401713788249104076389529254825560682005862412787343637679310549133387386408388680991112793282419051617125760659647643581209524058781568479750694111161581671246953666063755705852332623182686868129948796148544966172501256711145897274085572495708461678925977136187501615579250040847855724805775022113188607628604554890837597558097929135795088306741137359272676917602681628402617442471074550141356312911499367412956451621005214061259272859602612655378061223400812311572245874349415082064281513063671367225088069916696277738300296762665275655310487239215584328285288591193180932891592545450825303101622552957003479069181443959361345172751705128875977100735118874920696207691871804128509130870303636766923801211702097294724254287412852430276082044975189472480444058273165054822588848764499274839491452087461269511873385166141512141376692762483938142916168571732448373243543902765765822085778794626258492966980637579669076597957705855130519112548859070177720909277306245024731103275639778899925676863957767017724811855312673902123369234031914152299128727026574190067811818933787338827731240976658827605716291229843747590046944137763652239183802316510655415377533222149616989120861796264681993357956724953453150567622644589187344068494185395132598133372066201559625165449307644608372298319027405784933947847220149545084633481953111207358077689661167695003224327212197471014987661913139463719770929524273795889609280406923308940889504438449764447549339914095522337287753466190170106572642565901254400565091986341325296092973331776374672338212546000912649956945634427855271241722097510912049941985574539161588302710167451359150251338400908524446113499802115811204045428764938145495167513484044784936363311389176021969746973619486465968209472251960145130842538398663864144460161494279048805309749341489713959357677668533225713813893176631324764817975775569196156044867035676059068061728335815610451797928073965482301944394339348702853222190925433770516670810594127127015662905537529044909493016137760055473727407759437472391977019290555303148907105382721889576839054404342013225577671284400463216006425132543458940668640868722955087739938005414020644345118528626909930719657510511991954933858927863443772437385623620292200863222827871191191774437307120332044183570288506921990312183415318910632703485300654249893383052603631322919645785961345545831316886170128346496170016207818256433085924243355914453296008425653768309593399597174206331185976053461885133877117858690171724967628285240996610475359948416796660036388180312030578359988397942725131767093315363431688338609921618296964414643639806784759669535481051022194608778259057905952564665027778148986930703542979542801069017865738531384315580790222295678218259062469941663913830222760542180924938499671935008998918834377585045040333751195923253994894976613659240528187083641048459738354079380477865816860095981745686435282714453596250224666027026196172127063697027111903738421953284513117631220137164915391416476029051066970985446602095912274299805658746431038550899925551923051956473252535813136555839251236135206214171840964670092906853075690652741944593705942443144876718398375701917702469303361276465610665938561728855328677654064204229600429884080318591391746278119496087193229035685504079261044154272269406426306486989064249333619700766417553842846462903716132140801223837153029901006792120477730355887074706873083974042312746917354439666009487038708134182934961951052279961472924632439251591333469060004392520568467653254368053433810485329103126443278165388815537007044071156682250586122254846038962584735208669913771860166710530756983835754729305804924929018522705643705790864746198901218352826115929481526289902780382137718493666468842025282678561804060166692896083439364587550703729884211368231741774828258049448657806605190740019058348797303126410113347578347285115577697791823693285736475746334200012667123434562465490345310407307637796348625982796973895676933450693544785244112231942077445009182818012090600406456175538397115671301724695855174055722855794354682741291365951104336310732655244186967838378742776491653955268602087819652877622089183635720901656366370450394070931316724801977563746363404961908234158608367805649604363148258664505680050630508273258434585877399004027625420477366246013787055130590496300470799205681510623737833049052788359749445933936657462156245340446223846236289736904319672607946297306661442332099934106366314997779115675020984202638855771042224243429406620011903559326363172053234465449407276567513513189835541710243714997286063703392144524361272844343255273190653776719717471744526498269117439049186401678360582526660141333297013992977255056671401205041852434504089479347114824688991907247114884838369637529049324722421114057534031966206178291721865838422779858339711084550614946439658781528093031836004576053870095271676914657831991934895271919052756135931691314680445132258940165838703578993747084504061132366017786490518245247160051161972318741424582937560035707981541307863414705977382940811417055972962422840421714605637343403159826308258850819850697219557667915664154228975244698457853989146991667830107631156064325809675883709504015751368218003418637836092041936417518767893386802758597081281297158728741698791511314238451476089150056878607310052918842092381606944841742973167844261168178325832854150071589934737880169194631308346181450027644493117775378979340695421062850479915814074734251183281955976057154563079955379408922134623857088405355323895646532070822085540006842846405568709109521618186238294884969086196198414927592214979078911762812589460076922725784390082785828386891999453050050366931778932755492700819294285351542660910182739304289688209845980409401290939687025080498042722666841064914768848226990959594285217113284778851632396156166740694562713645891551120113158557545878340065309254948234158045258523501430504578033034816230936294113868194615230181000308771339703012805398060326847069988487724648702305578311997986646752472932635118785050080617242730934800345760153087801493582001087570605126852340908083709575107481360158434617223822226330583723986994398844253622822059337072908845793100918729397017871847178776611997784701881037044250300021888428207768188733586708782071060355192232118023090152058399427086221332915105225629503651673019784278943610561828371925786275749089124786725613890635956063566757284437834598185893136936086456678984180893104977348757400110781724998999002046515105720065619874013254133298824692014848661964516425100357446576097423572317060984385782391907276658767443298963684329621694137598751095089752715007850952868622068762874239163648445699868902626801174385172568195514867637816086095734824352001451462822488825403437398994097045027439380476708661197698398864630703581079500705521664187144699113235270652189582563663998037213911956194097994921215347632018144087870717759617842530626670884000314170865586750130869084434982388896424953947350799589867682546078604754227144308493383365176341038199584660992987035613182211451906431025158629777393657635211874142158489997695437055093941001162225643408990579101444151989125274026047226592421858540931078163366443041471302338831747532776156837579792896112688320606405348370350419899726519299631362389614837778831997219737775662843471432906618915089177535775892816874364154536973591139551682942769271871727819597043590172629068441269798430606122804397626339618643642385138857343337763928088917228999460102277997171846106761754842424440929203957394058209968847062596724328982138466681006191096039889533788031358691237539619224758960483038207887855612944098588721694109763590065123909717758328750167790605379939899154091885386776011946561932167693593017159866413192137609984423303421490875898501996182470998676707064528130780691928935038866649298462661081617311697050491201711537331496443610964312906922057659140473555164059064652076517031935206681407914161782647023452539119822276933596453818422849162989623133230346609629609440599901504187000632538254562930015378394910819429249147766102972639276910960835752387561472418543826187524386322919929882965640698529467588304721294145204279952426966461123404886111794862060493872727787779058248466277732465748932095816441870136786091257022342400851448176812455109882122289938598772004358017650793132444064660892655633256688692646055987491877267433922536630505971561318443575100338738533887117838103207503726339567258228167724367185069480171454640988194014676381851320645539191349811136846006651091778839017466065154451430836755063057723635015427193523585243083938322397824958001482422486965877301503591863379651823725461967231466580150222153374055044611573426960131115562245141272860050633165125295427083933737922970724153166083520652647372760253797204930117440904073189053217682674669916925472519715442037072807149112516499246435412065168979217016799993584163852867569116333116854253194080370110928195225168629590429718526430778025861031037582559568369906335755476615838389792516021764716453492932784356377415711286388605514885964085368623784061821900295376866561649428674815502069522517300559159802120375750432716455971198271350997875967198120342633173773444917252015249007582336736251691650135969483840813402951730181707247199887408537310425037653927971665557898478691285371708405895109589415627368630057384478281359814703831968244574942811128703565111758160615257679271826955223489898792262747182438530012134568158636978101723524753622626844515143925830594603422238985039418716489640859686515519190957713714570442765167035134523117120686293338791874283223166812789061572662832130971306480485810689739908961689219316298887371254249596801201808427494644284784179140992322619911686962508963192641028951577205632100726164225758719096787927749942454808131619773132234400580115997589027720630276593214604797936773183483929668370731234327491293725646651344349056228910108811305560306765279431027840194178151724562209179322013912306947658439175378127090878319045124113887970829798989615339133238353699811655579679992788678110105425810080498806394229918315271093851423959445728937276923293231545173316541844658923050495350498518941401660882960374882062210001055447708924601940368330181253618563088041393220508505730468629695419437981852827156130099704870244079056070521812659196379577915370898331087966878003026201533972069706209453116701056748861626584193355705835892836061955646896776755543691687727132316797933378668771363686513316138040051241263170615254554833481598000516935863421558856596013946332988602542310998422163877399296913991294149900140272075632446611841123409741131135011013811581042452625980962214676172548930098579561408662824801930960188614320600082723976822941871677856327117832502409143602211384912922244117340117271285293545075139070165659657074441165706270204827779930636584164993648286048381156048132364460007371701530694198923928731705996186735182671128988239428938142177386924576593706170223613330395245532545091424309131275527991997466642251196480775289483610202842700686964418894595744815385846342545163539554463031706699202621436320820046611747335008088839656480885821600821521893018161596192123880456289351368500423822400984060722644892992502702036314315005625289091267121641721802435209098336892988556296687015472504724151770358126928683100245431236671486384973049473179121086180924158074969586175053360512130273722511348255857547009282188043973102731752656295814000594254323976974050859550802369085651029898265285648898926998784773529421782702046444983486456207136711901514648152282655800540862499295341891406607120565064220564515738569112263754339987056485776639648985146212855270086798483819020211745928784485156108493046810042908970237516499364650359496902890388979473574396984295600627476699888202383134076604107462713274753633761057757341883299252903774559251233991444805683657554894441423600496041196896963408014765350383568275801554846093609527065973519397823170113529229834297915270180261271808588849601475136273466442902549524606686922999519971322131947473783383411803446867815614304970903952295575014414177106300575846265317977065729302912087602253061186534626556048260803644422286705446805661676939387999444789753071383656697234551547100522784526016931791213632519912527676055714223997268502578875353913179409413527585504360481904671727348108297100622548842226459999128543016627548550070362943810711272832341781632491704843870510423479520381992243922340846460477342750141442238609119063035577537389914383931536454850754167320588048298519162694598335014613873964960772923082326102194046484785778606307646563022670551152030284296021946254147275296087490211939383819723063488179848266162616243699381511666617818898913085587598712634260987443033173949849248931870057980110804069153384336187471177204874233170353870752319605635497511065095412988903889361021240133710973177794728755905471459800714151428079120101566103120322146538188161549076714373734887844696416710776627195124516947430694562495100750698262996305285485926458706880834069049414019689313304673945660209560439479265888289245749844205588486233934194423497134019969736852792611375685402881697756204901395071219366786690111342332520882857477302644484820470283840717457448143346802473184651025157178688502446227118307045989534076926864149376205455793145809621320280939406392547913017367659349268703603523526726835961405777181188336108587634920724162857554012074219602760021047933040903969520392188429358091951821223631249455148757657877709001440381878845873340689304627210110729770545227230666088182142033553598274464320519532732039358000376163296725797465691290078021507767249273471174190280438982844417129796745071730268067740478968227963197244020646118750452145517901079993629670153117458971352985256065836466899919195204960585811559417271409414042347547803717623385658014002976393686306827820058599802978379428667377019930885523957724114854472257962923746638839816466666014942144857693011277605797791792549521803437563313818599578489058089065447829840692095251921324853948686020888947007912430721286066437473448021668641770079688401446956399374038036342782107702801911413940117628057062434920570826603697613420612502460954152869804653086160489283626799150231509306289099909017039317238348546868332243960894914237806253426360918589820942823346588290142253286758166760469444036031640932235375466009405710340794446045955987728878875262476401614303073773683412961178765050100818307287414617953613041653842540581328312814401750624960886561054960956451514217578154499777747640179025245182890329478678728300219540983119074037363452722746297461874320427822936951722907124056304102758123431090525261082183202202657948878895363707870716232548648707690758419112587224192626655766217092562472643795862469558870605806430410570791029252648894754479897504985989372829179783746749722685511812259868732965772389788626520905139806466069769766891242039863488387581424119340260056121081812491234271222297578149447729434604621937568443096688028822152295902187599032812564697782593304107601044085601801616815527181566230824228990148421377857272954971353400031580232600083455444572220743853193262416937871601716306509750380105978623320411375988021294951257560674730890854207612088053787588776170068414135601641040447387352435813162244623908440777834483240756673991252172407010296944590596794455005334877535117022716470405003623803624705939893379538929820904431246597205676863910876997024599508217397639497927413080305333406746956411304277392959199523579006042947565507182944531992728929932960775465181274760365427456103350005975689746764369125541706014092465448645931571612028562625338876881666421684347172751984065464588248701156528124560856330535216042731055852623474719610989700286197548065314851599381710468342283822909981123954846526962063530454041568662036641900785116898686092114098970280668801463799193816852788924062145381155172294793274867455026423026082033211888938076160577652160776511165264605703152591433993815437808411630825640584967762622198868384430170168605194614776716987969144083424488201814857325622891108429165941670157540591784407998696805012555315334065188353877656031416361876938161071603889047498222339651989503590996077722391774228914539998855428125070837477021424384323491388802800574416604476240389357722958753903171893953739291980831826822633120063410627686066827229664794897512848634898604741372970489410159324652608976057756753639125269586033698089196601889588035328518151655507386494366404671507264676604175817902059190169070234118337203945824457494427322988196558745295086379380379667411240165085844037976757641995442314839663703414565306869802899575299168160745110202124223013705495305655197278029678132199226661311190174300283706629825223044827057071655662947074928470957575763523079730924867779150081259619709963386335045166598787866894654111427875597800106917369413991198180334580607487643754669826483944737087137404404898857077019590635877850664271436106232079649398642973728183593115635906304532393580618488051905480125517732457359991492460979157970606188177185004041999125291797291490252829736103218601351772558083140767784646166490644383980153021531168119090826968325497474724033281521120668617997801672044927975533040271064227692559634728663747756943228008556081184042517683548706434314376373793644539155510775082300037530250221523125748737046738687082455466881670332085923776605256393981325534817590845753372362396784370988021131342857456140192633807221895349419157387763908075567141631633570775549099485546751025169839775213431710267270269585341139916360745684858629702697172815935754230418981842330585299171228077590325386891855155125258115043475682905532397866107151778204427633540939458722145148841636497851984357838406591247279380648827100795282533450964226155489092122011711734441452574932428637944365223131477229085386276060477045384425190782821922430559803480774684299729775977908213528981969804194027003974422491484459582133164285531842377711097111087083172054894673602092876981739247695392891427114934379111046297521829992701324285900743606087523705218450571322647718939945493088312600948179182696350540593745539780572055523264670698504930476814511806840420935373410204928233899521875301024438667488576977476072164778186683820410020554551657114795841987349315574526237500875236697723569177394724949539088887608470837820776475067938094816962067040443609250639249367840148899838191951877425274377513074566459303327605436970351359397146559436311863326662826771524412549369670969180042903482181305683689359938626246288156197970220415318357919902647803296215251507273668575110849016974320800804481661330749652064343819622284097027855005680120250788308566264069498087484341546494668663638550750355040621108013675614281711920563787884546591906258744019387626173897228876056394092773164387791862932154028197416646096032543977419595836593599623863802036453113737055419144458860570022099744407312504695635846417055121289668769055642282246408951568041623834255260356922041739713376892046895468172930846708286124181634159777152063357723138023013910988189918372922090519077294835239394893711251021697345521260227849132412942798325278138930563438065844475675802671012799899283756854626111870693669373864430458571007137014228315017907095829831400389566217154146675007325285522022820917359810385622720654667132013116115748156903560997928162588592455433749618869732994661103395695626455945308629227467330009014693889734707068535325739733891534476315570275415469138273201887122379077636199175207037920159714849578137856072294259154175669376340684975208112227359096339361897672147377426210671162602396345711332890741122170964219861908329869464454335806719716011521479326691585567533566659418072619155915658787878229460372607174029002677356149679421040055104804719955726625033386192050904760053931933254628333617443646075556751904529491072970773340676016598625395631475714010731003461268132578601572739792249838071182637739152556840197255784192432128205505829111580183631213067803362595973492584319535844145362781244988807084782050512983110221322907970570690671652210867165303460521576093558215816655291691953840619644237375026091351172979466896482524549670108021908022280580749392168313372745565063015905379934575995131807015354937820116726627027814121088026020149777134239072322261406414245306353106637511305676525342215208978895210527494978111709360199646294567928891721395190959326991359942957404185451312190333237672303440835987538563081707709183589169220900924594705281361141619111651997599005170776413211282881308641557312107042138224155629882021964763069335981495082254966752187010856092431754451698027688997055748154514208503079443746260967488711911220969755171587685821959463492962891109330452063617943819113351730170606956854748560962534779620033300441294475469499884543414482394837755040933180449239909742190682693798467578923693769262685106863333992204917906788445940708663426275347718403612960704520808161671478781266659466185704425356749551300514861564427793585153649564960380476096874722130090079332111274270038768963220189450681554246224488742000413693626117009196984839834810723152289534698629253458189873071760180938015639052200292873306833293076389375807000548916251257234971752490922644764896946765684635533232309374704735818292678432109402602141423467833932733161910747715034979654012313074854330178806176317328336071347278100978196131981291438699318021851588865408840236424598002955188574932653639876787439318698286172583889845068404170708941296122841065864598221363497243725947134846641210460141108536020275012970253962877514389544611628298051122302297490877802658675842468600714865627331705697780128660106200556285497296471677213738266380520445487901940016136756943607291161023526799742000018762305043754383014045793189833767102010633876496325962530967929880501327807523161879590205014008559162371548661638910687562279920197166590298257279932019636107164375112335642276763811008003773026795827941727557088419644034504553829104176993529510611763414670475911971425807199596264963450590666543840409418678026389653441840256181340111779955543137521870901667464438522504756141591615163252256797913750415917981216414518487202424062507389831268758729679468729310421674987401451677008606414321202846744229724621802104412228878067966121739379675902439346884025200003477286955392711358956278389282965912698284793584256410074538314744519546669013204121295971043728629481011970488098102388366799580232176149270756472729314713038297343555061562304832602335357143351642887789341772437377793381136536522518836705192028331523437694089583822622738703244846296622667608647337546849681482178941483495724461539965841628743756272726615681586640720989626436947714849404277932474903798965640087529635228520165442023456034281174035070063428437974495162083915292255449458241191526520281154404719145918349337666808207847971138732246117888409668666447570246537151536249974823796277529504769809240607874466550557288864387701226882511760115526097035955771721014724388764751482680416334711416676484224720367100994612194079629374291539474690960521719226016471343391721923529598894848161409292869909055407030048678812858667999659782849128022926409747167237404482488711764906978416457174037786468125702720379711085463912619843262388166440088655261916230483602441047196439995585323241387538455943643774636457601840021969648910521761196510743526918011064612236541702520894316792822815677533608727004323365343707883709326121247855490643864075455166949557455353289076194232651066962968381984716587464988558987119252242069021115686589792970859765723891241986455347364468480943460319047084237739865472674137898533171965458200652655511092236026158959186071892361252425455433417579187592540587520134376029823012134753689002137253998032736180998154846523789677478542807786007997460249975031067421287885358081400781343871329508655630827351523309230999394826297129842051582911090107276307057339386154230903487313936257185097322550614291650680844572639928179410722598434099163189048455243198913708489104264034201292497497364037063204380119611246890276570293406229240829620251205049142522310191894524671649688195318925054086437388461679501843081622715193065514403355204950859359984247381720096074296238307175911766994413351677884188279719711559611446180798656381813224670325985512524675164079534971420756042905772651829907177894498186583403625839079535665241979074378636054362959040520004058698966872530444316506933475986071949065346778003371497205108979861505338547315266419260366047573981310904140410081255947748148706003828229887575723594491614422950940749776784930657134364297928740338432597083998035153232588557381861195016701515757001719267441976403859683671860977248103656569436835829557488222906161773622951862052723027417077041215128395879043055107563330433817878103997874349015001626181422085288761228386967834954813056282864349618896465525195782303131076627841924390739605612920997390620937088662399335461694748122602273548013552993101248746414781154273246669976617224182301197920095067489841424679893320233823460427034862338427000716787815937504029329696064264213186166183346622923961224009195566424651967636490286355206734119383450813264463324007383326434916948352241800018220876809556960699679372674696342954238712110014483601026645629587918582257526150467656736297492868164893460956309239533329136677424953585074518530957908955126087185198459559078889663172232168472566831240379742123194139480933825616601023654750742244681228225244481901778095912356444387186920430464394087823001142033572967643868532565301241048428474673520407075631697072158075104585657063357914353445346975893365769559639066346162251580614514972449436102183478096249137322927663863575687595401913948230235931656536213650787523257886210415016977519486475134472741159108490265907860141851151890849444860338656665845135532661260582137754792177110698813263531437563131319380566554923161828558567433440335743011432486115203960050105270704024565759141918668191770809128388784593739124937460622468864015202457233996423525207710698224689221627603169219234609936510631043199277713288457301841048900184680552784553726677116142890105334735996716153318409244859978645335300887809882462246078146264628653503334096360181454405786913555360945247442657093292075075517119611522713710767348188764352425196497476976542935184759492257066137078887165481762799447527861196333029401678355378353377372734339365796568322861884229040051765598075541212719930148032026936438794626696103491864668214523360347228058464024423553239167667698792144277421542241855087689544863252504800649179891176438101142123156362095623136502199972360046694994334118435284228995371897888562291077452430572291130127789153886811164060022051347179783977258637592863951208496827721160236189614100594155717828046964334635364083851643777464342703737363979689105230309922744790917636331590986820610770632740478014638387350950112498228335380511841435825658463981562396444640171720396338348391345124859296990241892793849785533121959166790164194950277620487424184850914325367166048411962939760491283285886554145537653044962238543551037122880162733443901313363998528019469080822094282316920897439183372291606689936217197977787881614571058670536256560474286126225857702430007938729705167424562185823445447966548558344237896370410843930369511660590084094637228023812183398228340981662249459322274492895913966126945116403310540700441953348307665915161956756061253171933065662212684598965108946521223238460069027192598217964586830740531979980438967524861831364771053417527007512095125428984179968858324432236581752965187633035798244980724796177153088335997419643169867091296689265721500845008859222669189188437865821422757219761620617864959809971384797203610083289315881873828207340183041259987950671365926547931872559660610194187039803673074596922659169968494301856998468233024686470100647590073701869261965038581054675569724188467415909938635172265532495641170104996747988607890880327039491090712839390760979983246376431230103049914303331668859968736701427305228003669307548162124426276063363313755924008098152796443188135955338467310206840871367713416645640669874428187988972051130463100685617590485202264538843110950725199601314124693830525071277638076489711378075189692932396038006106282893988275851245992452649681422317787450505869510659833386270827130114463255873395106651331003855469807230176618006075053278735627085424876898426653011125310424253919219918050417682069286793164325188799246034689611346541656251012296136169258624189192311278652688477644349070742746409931174063396283909314879928623488603383951415859772370561396450688594817912168728202846807923421194569997821954999178147049170500068314989655523148505277917966871998617518194088611376638983579983484835236424325218835899750137972776426796887439613040331964108616096363652597292641392888682390164113217089817328614150420173732153161541564847069144921383753534964705469313010604651899798997528319383248059110166137525811495168201895086481924119051663375041524012219609044211072530025322401274972460069226130959926404883488963860300819007516777131631004116861150866051989826876482461382389131352534256622341089755362469166251852567528896059421652021461566973749051226335326103999065110746958375950715970225820945237865427379991878214723524643857733196835525134973464816209510359079229411899074777102141245882789181668858710757267883881868959853825607006180005433197770580031397167506740152231877920586642639780675427278056335413865556071279885995800828597244674966841147180796439015693492874660621037642771082038002459176635225843111330743053952493189709482988508093961243594508336867122664437836456808098370532805011424453334951645405382486705539725480690448515218247702273103627692158764966398367943675829750457662975503411750588766742071015527580384251762107651760814992670779303922270572946597968448869550678046494245915648205364852550496123170414635346495856390102603984557024131596630035870433046163265573341928468859864412457154225140983242346057443414066331237806339374089048464204912048311559112977286822232642261647608864271776691571908099818162003012636802022483429527025704842291830622028766426823330874068817973218964196246458436353029952783384283214818270558500263988752336183853950595823973254825856480400764506525318441535970323686142923306485000838618922416389898232484450302173879697965847725742474043253540925485612375776667270514529498155163342447901859062961399872700803259057942551994600719303605017342792275741086855546717162308233844392155921438071039010832452516423386868689696372902981358520126126923593769977940080096861569946670581191543244418627552507307955861564566332836599537612098016719162996733253537201702893473757882509014303237763738971056240724103357043850152843035856861049576816619564572700575361452132471855716882693825567859935817080990458194904869233315740270598263452353281715998244164957996499139255476242522825469005364000350614780375007730379936144255677270651520363597809552273027143788219130683497045240870099077478622952258915037872791636004631175629653048917049717219481703691784470452377345086684658466272710999004315448331670350675492799549709743662344844071003703632311190764785540108700939470602284582583315478005367073324017148800487667294490935852570556554286319610780937779463610481440043824470563918431638345820971715478837798657651087627981761585119078329915571877904314261266799993920401079695966270936976682098099825652080877903774010389950860853669414902360268726666724964544868784205929008915060462522138779565751194305969526559977962681416535772839860418346147919858353388079845443975658352099453391546639745175322719156891428449767236986292418338717816748868825873468518212689186634589191827806689157545095871417245456962112168795905088418672160920498776115856314801716659861031818779019178038136739617617884834537351898771064719637908771437173828466375151301082884908704201839953948441125752462227877750957119034808368683014591572706294411762961173460833981847645017192969818002787325741367910798696725767843312296247533469250210423283255367851505526368808269571307883523747087172019420938016607601897359927230409110235656743746952296253469624264847442745320555852716619552150639289175798137757444917959263964038193833487334939365297335527644251490694393989129461315471061148375711213167131521769923943909535324004725170453191711715347913602395427415180526634810608183931978478498776334729041104600913962506669122860952769307336051529314323366040123958428367481507436992483281211956275663838741956541253301898537906943565346093990178244410593115326065765355654896449653656927271974561605124609400841975421664762351701436282630549142431066803167035236150252158845297641241450164866072408851872014664789587318855653087258809459363832601704471407346462109776755489428580002285015367501832714331112337568092268858722387453245302876309158634735311119410427163905514131525695803942543837211372268263554386152040504955291628497654698803817930198449698089986272456380801829322170274424325326420355867513442146505468967624637638676668133596217121617766514899678943421859099859962129108944752818597446694958114944065241167754748404629683669289582356082833041704765184352807278324908377096471267148580649846775230974124027616657304927083165726051926942177880685412664632680915263304967562155264662113706156405672314459643822729490432772330256127088400704704656071091003174738066510414845167337108165895739536406289862287394696291143050608436391834925350791586948807778884426956620295875137866553730159145763917614579993787844884199034773734728565927330946061546377485884656519025210726334295004046756637129876731598518866555596168816160961299681667945667150702272679943264372003494452816248786108302348213671688375505808559516201755479983692361182929926604466537847959711815539778102115955196296460950455311074027217019426564062618493137807903370601333809670195304709181059351381966654120166225199729081158552165964075026976155912027825887315961349335956572633288647532320358846413587950060061833978570116403627997746376850672518475593152175736197335280826901282379740947260142705127236514204193255244285105669188062531207578967070889921898411600820791813942540348408191305035135297452269157791481567795638529467326500085424413400640529283978188710901641473939863201093123990188246194509939850684885520267794447787394696527870984043989385142318414328817844150163415456950191448671897850818014874878917534758990437836018617522484260287702393561408437595968226061881003412501018957671045179524186527296364914282195707530130153758269592441736392196496977083761120195277394936120393013890226731415101947774493434184417610330325770113830000944001742677100077311822751082285133975845528598875467164828076601358325853930718677719026668425054937958085280944246953904636789147656906058169843581718287133275439433054687620646993266116340914150413795582196798283620235449686531069972277028727386118172275507194089951233863247494317683718724451439475471462858810249624357638808666465643296800261663808420301534186570710790741117882220913297765606583882392116951755093799286906445522535630835756183634930263677307553635986320070625470144158761229262770356723592649742895768360334394128762622204122364125392339463424107756680182891431362518430059137715310540091709724897989560288425917089505181677229229383051215540251085009624312334763597074922923591975254117451425226666144016356080877641363705081355365817117774847387039870264467359667559082773972103416436058114285607933385053099378196281401144654547642971151589561168785088975905176973242258430202429636674528885605509628008689126947827472231120151524408318121324578322353061612937393842131710602796877361714248753339811685715676689018072785981641996004843387181017785573759526471783940833762815573416323963929312903365486992191428705011458383127895121345942660910286704975023550005159893318098107881448463336063516044832026515105226408783749069554240470115743416075069390004226698962442962504438060364399723582370423775886404031311283686724435815261607886406695989138073257517561421883841669186882340813439579533547649526822299121088618504402101376590847171927575268180742733980898170314743742052299517538488481123705118466035007190435112277156081508136403833856085935403198038197934370383716979950203375458046636084087178676478410253035322410733528406515238925382378356657844858819630285212989037696798964507348799937911638219420468637571016740247293792809121192220898698817720361535716377777242194236403003021212735784165784744915257337541369293116881520605463207120608840558582895715829852194489261955485061290463729235780010287214128844008136372444429042899565945004750151492586383219218744223687078076474067229152993294499835765797615602677746682429210706864339080360263352248469461143352952803182028094731909269022078082485561325392128760810023527256886769186205718949846096919579620841360422232200228025462641615659772049154277660979054037619426649249136433247547662666433841114695356550412812028575850321089241010166200223506392384127042374514541889842172161390318136967475006639081256200161930643894981852247610235702808979708484249896195174366955499942636104363048710292920811522992829063747051456543421650659167549088814129489889467045737407767638498643118973598877048138651723836997611702205438566798153781898624173951283284305719497094212926019998344089231824476731983077931117271213687105819883032494593968290052242313163300047860263966444205435558452397297188984520871145785633564480636993642168633793858836564027879797134684934728500811567720016375822428366729136021485303716359444510160583844254487820602832273772928940915675427881091243219720242033359144115534916417622866990917821327339715517879908844189086236148289217938719619027670674558856843901344568442673597915242259120264493982142799351799618160208292810217143506225075704629165760994446568587770732079309375936144622613557868068546042500913361004145413542407246615701295116400775712276748666840500425261554910062798549124416897625583242138643024101884811092296708030411646827687677860099688826763518980345586674013713006859308342092015583307042094860381369078800991209518964786530304469959663987911208335519205504102168807183511060697355795127307861681473200936966562949891358095242093060206712707720767891763781339154386199267071983531262506305579988552973740767060556774357318715455342215500266817573500748447798978768167419530220882128358019141680184769771111557531750833090690809038969914994188617498769398424607985068279781273358425618212258679986002685176639408687826354647431145280902027710840131537323698608382332653691794270752941458093245046865750523063825847815122959513897217453521304072618081598973553417523274810403393051755887044938188005431752979809046960583348613445217701798390649159475939559926111617687614662353608851002706507225930950848618151318282580653127318399133928082822144572255542132022999795354391247262298609268701758204533428179296134537858451852620485088916782501726514174715815651051858943728321224287430375020430847251196583450092997932093484227710545043153287876499551222692410063881777182463548509818048213731373887331433434071083988660239674612677859175751908680958761993249410040636547383856436541482617981179293971276961853640456166610204171682583221469583127689301094697086855322472471149668027150117368966296576895330680325715883658266322274096416973381523293397790707225101654302338208798409910751691307242840438745310531601369702475731174284029076479188035244226884017268598867774400526701204235320648968169036298690606256549325512465136396051191678217329124181475535477415322013634937357258158708488851571158593992171645657401986195071142604291194737392425877067443359858137117807799461381853036136084811740419197384097719846039572377247865427245670662780111794449555275210288510448118362854379722193911895554261768987759697411279582539949840432129748850679005299043082233560774299462986963064893919530513655122921782983500985733857690832852281633651229910771600528413286617099165617153393943744025021774969497341872577232676334267969142521968273028322071239706867207518114817985196356618098787023124862426749755293846577663904609888104689038847392789345886125182217835249481994009537830211022525385878583832500367163276990660663290785015704225852816221475185321706227214432824390405503327806273961162217805619297217073415279199632999537588965308441671946789780615633418430545757687513614436766090627331209385581003970505904606731506238447029263874681061750255825648971234086617964468107325969287121430468416063650697634538828852062383873051320459581882768752045951347295940205274385821423162943135041650159759897721039102925169297167695843821934076223027292741763902368683378872879966061613890730247177921653679426303862610841404531350482730523119562775574782186696702621779708197379925947372156327029495585628548921931312790398253057433157040325116437970688431516487548313626402765137292269426969178068901873559884787930238831111354582977629214863177650313169997857778398643596820904458071722584699914707405759409802510365419179960101822317485660052921222283729975866942921800912886003327778924999985253421835966627498228556926887022101697597550262182318510235732246353238794830332892545600147462838907861305661234464815954607578528669737836875587127686487563193814759533940054254259961656834733992505069200278245978095178157805207805755350710186921759885987222230363182769204525054599047914950202342738762695992483407253298750922351555491602292801410893729982885990871497518154993200739685143329168371073131523622781889494412765844095026982203064939198788020107607087184335133265793256974281470285545400011605203560813231389557657705666550249097729869092045980221970088291193627965270610180420626600310693932229170773017735691498166099316389383007054881564020554317942202743035348209715190436306895953894609332148303939733703427520308886495508371139230303756470283612753822271003162536311006899264041523361737151191498636324167673253878581152339685335841864915628110849774971813949150964254149059446415254066762607734363503040318317424419200023051335863545338646068386322633059637943069402434484571318545174389675519182088993590456437839950888999261578993292322505019136014414368058940263071902566356460547276235207963519941746386580765084752969431671753029675075298208911249529234965742762468768942663745877741385878747682686627163612187351062950355105641099413973000217862440303703626784270324164978503471419045136574208499886106745562246223045568473381484624721542828712776578054241834893417902877268735847521311219694611932260695188280338732328615780078596501228745028739199166059131504940508456172694184983673325680347215246248794994997380970051640480062326401479365500233994635384267010511520145128230459895647425223278816412333770342057323646463419537354433480513138789985634147662926152133635571415750922800756475392941520206971807184583065250867054928438956482459388318027462494965725014104738249584145154864967900027748173185946608586341521911276744154083600313523995691000713311902434645060846897549670547822521702986481158008894694728957456018710987916352503800998450263239860412475919139027823907681963903021843875004685571036870340238102529949269735370369398397257175950804611446544863659280944570967804519973450716240757013948702503839040970415662799171859665363160549937782357748706161140335380967088359300155994767556643496084145210022216598537016075474588098490937540077640630476807825240099340914847777345089311201270975644840157292814847625113843671920669626331283408901500060802699520241268536360535474623964560242694173500836529450806301215304863067741168369720099830968027047514929005381890443264853782118897849893884224496141009011958413997506502018142937989408110932969173756786734763788051154995474258228741781787457549384927414880198472020683847200201634742025678522022053366551742993021729125113054819117701414444732682972895172197811600986166980522564031410493724408526317031493233269670405828001865708027106261597024553250230230038703862405449259424349964196629318803486092117013931961653893835766520815261142702212847970876268191275667046109683750511886574738391493929997734873739977358188191174305618427172038892205145155707082820927269847933478389253516018960401031636294479247010693271588654119342598249524216187081366491358508405329838235693301531346462257173560898478385340525433536720995515852622690657751527242156896008379739896964498785750104218494793364617549449332525876080600472721890141786817661535209295175168682505613890784975505416316116885870235370534699208323693141373239008043660109280378302188667933597077402225876931117687228531568421694311408368726238056096996239493570165702698604502079368390309481691513685615300494251412996890615437168321200564902765557142598120445419060934564728647019321950207407313710714520676693236975380303551034642926949977593803883822741523936863014547917541290591089098213212936741947938512876601320773633207956179114533164035250925848359073720030277989869802852164390657782045333100498805784278698713561629939783212508831293574809985847898726424470236676026356676899156238655447806096145185146510315501899024929382401965579261583501784976989142897210280370854135672664476124307420559413530348426642203852803813326041929537834760490478090551836786657722370471875294576935855718326898153633929166196454954449918728428026743201390262936622676813081684459015300424461344906765448525696184078259592754222922029231272878954025139985732198283221713728622784520322330112425507800069397458209016899323889584956707908123810265799418327282642253041391861474632665425724337229164483706243628547115085822171765320175153061600268545293946834288474634751417214995001541767154366870048231995107001351435364839320608340320876782486695101443419845053909572439480887614856627802309591496767487129865132029505753443297069057467852297464634485056328159738168496069086154373163420875652582810304022442928507789899681377075394681569198987784883991921374131208388013803811560372344782614877746904364531509166683919636716836772864442007561888333905286492172280419269626328680749622198531960779037921918693988052733561268457887724092914655625099529738350222461282687234277746777605105310409046826603376231085130546152837926139499780361137275309272470270325579829019014392522295192543044486476492240826688239157865626054698180586009784072915166986685134627768604835258819120546229661983620788896700133411186620489673082597327674501839402212037865581339306536371763291128075989818342038693895042869691704729504982972971181834337367519459902751216412056463916291698822678529145186305926411111249487812264638843282419542691486770092001981964973792715208892214176444165056856406601212689934428952219601717398184409704326965009179315769096927938900544361358570771993921806788409112465879114670362974870398456993613491967016387618927409397999166417820852421186091337048400695904050619087826494507970874376497925368087295183785673190126335557144096727926344403531862332216131495491268090428662908894768026787284938233647955203709667768040478932192533263702243856010772710012207103006665897433542078515005105726881073305592870886960889315110145396481162503121092581239190985676056186401053843813004827485742528686407947042773593536624287353034786197541058819332294914649844130925391093186777828807558465446928495557636614177269368400740245694083559952678904892147288228982223722946602149866519086873621660708366736083647633523848390730495193263297326791408572648899843818626959838453701767383403841819074765032514353816668788061096383849612517329636376560166776850897730886563685365579461976348844086566963172993545170466994262579154259266946413371194058480841878642238797491343406727331968603449392177884216259255433202455036907518910466551356096317493464604206033914841924331968108276464092533824780414263318587926540950087072060037136172699315989754342306584568452706738913059082179277713912317530472013577681064863758659401054536076282274118724330222836545195802566058438042033096393181842098825222524671459515657723509609236663544447055673694981667214829599669264431300323001097425034704151564694232772082381305115301809980330388531685132845061283828383610499837564183486789171376934328641342583746540595611916863902363230994721001894111954260199534104472769557863780827526962418329850173553320328139382613644078630924250630829136452312057854265073871851699207534368131547178456557070455798918617110351418580910101501343646751535106470981704720086272288902780715546498117217819457250654391184183916839787289703332425818059461399396576185712249364755668897817863583517960616728106652300335524763557996486139632735858956379395285605019398749498907049785028650512362363516796919007403335085857654480886318192346979164620163762863310943568338226931491386677490578072025806642941034508903921747914991194863975057718576852919295200232684861773557937484723852263269705036314933950711776950386507812978231811523778384835667616407409192733770848499104514092068515534185556432503684875121025631384213209404236179998878745639281372878443723592416188850732080593621549613570686235789953586031126213989546259549005622349996006191294181320213546516914589233166978343578244747185132756320704081117093661871000710627282813546419401799767777423446684409746338698693347799532172654657406209113813893503649293739638202020959565431390787169915621301539701816152157670014018542110956696444368433571487946249718724118761215432031511072895269603529140743734715110918233705122566139806106636896334266683689708998821226466244528920979859013850825474169030353708312928865805871308146894736607244259115280491141505224941900286696784500213120206972477573616653683820415367965076743315654135451572178702432756943229255315599360683361286452888425375368120618876036045974554374705673357372465802913122006483816272043621384404586928754888280594928511968893469417577638073451497310242559479414267116062514808744692879244812805207869037092689842754690012569949127755509897959984065769530367734030110821362755178109897321887553817523487290343334425083408646977485695281537444310947182087889691420906570745736168216973519652935310820786265157669320568307711603039065640752171383985412630630013101484737961963364358456735766676564968017742277679965703290125915765456821685404611709762131034516996162672702380959497305072096388095186848902671093963041882689423448085612311823245968879665492327740751911855264100085642788577454122117937470581575328213913570486919318234660580996243280852415530845665678047510044293269442351360661135439980244932701244430894310884239118749759116031559238210852301476989025526360976213671684346229215849494807671373697782512010329442096186151841808090817144348996980650117508081041881524470398367979976957992420958257136561958505670092541944980689365575463711174606917291427113241257772319809640961493061440102526341284279078662419710185587893177294996733024638806911289290948579488021431643164607107091396631064286181995983688190951493977066230762714554551456433119976541753015899775027834082182965863938570559398870919818770792212441062061155645614450047534825964851360205735873488167798017907476870837891885958026841026916662322190942901978797859503847749762129419155217766920881927430538378783532326421903775700729648209961778352254608792493095709088231660488163909184271108712298998403810545146820484676615634712948837297715472195947125143884451368106505170267877268340473537542004983233380577148298146789293761417858772834268098150705917100529642185887893984746924166774322504803817888393970207373849521574158829029286773745508509438683779614172756023266916372541671388219760143193163896822759873022059580862744330450442108194105557445240081472728797944788202934567948960297754447199728251657188777895714120974602319899361191685634493930314689760778674524489965643195635364942630845250007065317811746744811194676033485162222651262619087406519861439830920689625344375149542816493429373509777886655119556659336923520114335705295445930566486158451579394004231499385391056843523631847394768564574047584751980870708366923462991720915514827879327285717812441620964282594931711029580927022824514631272020015618297292293263628416617516299913587840388286279336171715136519304850922338399633013069009843897385042221145433281543762180608838510881851404363274326020095077822566842699016981410110989633676039407769928035184618097842850296471471611421810635318466170121209166556029293507154179697913010687511916540461246420467405363018673893856450174067361433576736947060237310016391507875043672716763257096202860072308253036265802913064618616132747371480819768748593084933102901607103929559177590873673764377138307078046099551142907191608269779457435267873545293406004346043422696112890126085543662690452268649068875250322142617844681049126434294034266877687606960422691802544218643831416053200942876144646462158481786971895235388108892160050504847057314734869176342881962947576725357841502489202985821040684495438342961737794124350399437031460350553089386839557018400361990163571020386050571675836851438626339179407331017510293127922628649823590474579061969337369828413964051798886604764353026430312881874120168899638917604651981091546465327369147477640197841816850093180107034620261241857500843655658784936879474216778425153003234451796696670278148441512835205024628889561671282825151377744473155971310830324708407375568410402969811692799979194960559186704141401717174149478662719342528226238427670946814896929819045052866124744464867858240156630111333716736754432800801427973712764141125738886486758576222837888421329213755353305833911918097475911504018345477393293349067580965092251039793970005611584268808752794924116294155077573994193324763382698232732217036098528849810977027736977843635211624333633776458231448000689506006362122734936585479309739855815977445838919444933206280152068126431076036665953220731977654653023396646065716982701019749051223103514957684057836509779766571014387289740943298418366060651534478416223289334083087721408271094051572758646395605669856839884264234424021027332671155394458643629119861112691947416137119063414151098504340559913306897811700741427764044337032605595494759553929714815463403102242220796438131500923029878473803715968249657130612349202094391965775368050624112082911681357407005110424808783934955725691474772001490720318173265540005899930067089165689669815045343131798636480167735626571524727732776802976854477571469416825903721271131350713395220984090551290453864313474346210565898947354813673019107749930095482458849102646298457377593748987238015051975656516136077489936241217342857494039377707930575921664721568799828611128096769008138226217386536642984080649506916412729980822637589646429426803694809098963001699966527743399642092126387540888695335484660392281941503882103891351945606718945224492761840998927309194334275087486307770963627431018120227775417853152346686459406804832628906683597719039014883848700709600221525230135122863509550791666191772662039917671017723304441953719262336423249093624372722974844404821838216814915228315746802770831527407886225608434726650821437662340154319678669515145847327462373024816545745766369492646326360501485001416877709736099506934943061520339374827767457118511230834968109839683067136610463365172729837297741312749986176876685095795122611858075375171936530111135739502370435819694431935000769184625470465734160917641953282834943544270387505588204790298463786859750113361160714772345318647123587935957599863811914095302326993908084254744073880201273842142633582436509749149677150168218302606159953331106633722270200623004017363298795559097033047338069797450940167538547146955483439203439520424183736505031980121728343242511567027000037193758395875348360063726600680988020218611595185093043766587145657522713906416832002086864652908390220168165142806468919398105228070132201031797273966091841813258135680432447404403243026932635302562742414971340999971387728872492429703554340458461177534134067356928480659555591822928014484471227715393947208122237903480923237154993750758685672561542785443891998678237315725331661044908434250427071510432943026774808652871684735463934350443116631374921810924224347328463429787859820102426048770868582703328105733878533906077779101763453672966181610995791265381374652219530522506515644601286565432766576103233898763011721910952152657682541725600448211511718430085707712077030820017856173704445563360352956549504968341533311532515127624894901134748014293499441615929638875729654063218070386607568897926812855534137524376684589621559765491582761209170707696792902401782236461803140644752711452419804657323069416236721742336705910179467657858903123839663780719322471986593955100560738018129721797652558062240523270873788998268541800430838077133690348502390244323910230269774444983248558139642466078800769472460974302472397551380660129815977832752624325779416593867520451687631694816179967871615179608083481451546865630559486199657889379528479912293853758692873724919657052382734635951825574697846137548966865680353504836320125213860375792815733874262935295017928354332460690867924872709953784552500827164768653222993200927326363491420010167626439683637556679565168457202854038042891841969586089032680326235059212658597120753435928925303644771573590851406344864905645418476166225347345980831707663396521881764365627105159763669910527471948597059919842670824924462412495634534041926421389933701151995222656188464266480959691708922728922390571260836006965378881411347091892615191298940657254385200071209373886855274764405886158235284324959695649022177273287573804096233734037133596979356154122440931101632718726032505534985911878329375160440561480457610945972162905785775150672006413278375099980715585548160455016109484193122727211913340647681407809122475571449459371193158451287876070216733091448121758071143073904547199421633691948893500072929299940650673016183404386420722090892796949425749346605244957465053652919932164625727326670194977758269611468372700123504218965934722095115373119872965581237791442382785700852003490669143803391678704064641290447977563933899809209869999260728923824954217119119018039009508565749226846347772846305051472448528146059531540754400827221907723149731392482824800169554992520575470006929279449184372025075887138724286227894577656905656002175419780426977763731357979648648094235086905340768321210100140524366670226182471534434190004674832453620694898375655481968830555093770857501201743775292532968248935224389909678809957655615780085893643307917486407922192192853696790180100856775189103617114920114739071301510674502163842280303378593203189291723975027634892273166391866351033135901927563360133031222075793312190324077473952677388489691228558011794887269886286483708241296643103301659575540176698046759000902045027493102005182255210158512242785735322607392410728051648456654547935152885770375132902348547853702864762747067108657096853058227639426315381967872752744567709078706303288577485804753012304852501856127818473638192919644845072971357523575740957624874764629542363219037585879403594102597017969042236311157066832902941131468121510742422266818923492933304606212922122106854044844456800758291870652359174047300186216105953298164195280824575626201850089902227707653354561936973668280666718448638704597273176114207802714705315358373812875220937446159076113262188303805840317478363853855880999486521923030126335946794818019183793131003021178575056395767215249065665187898176149751709347495838695729895440138988376430099340360083640021525986353957832898705811601970358927465259204248549134496332582647235538433380857123854616417128983870445503571611020577729460873964206162638508054467136463058734290859754931521128236069295552226964296862838762830989116714437802007467719352798239292893594705278695101445159983302126837317275564198423917843159198000648543045947876289994384357564573348632550478589405100791821850730567755262344362859643826554767507346075399125148913496248807920260702310806621323423276165905686100542770527284033426950344493948836122689173022757446042187677867044763822520061230977052727623638410765756574273884431786554280080818279298530953446561642489606129297909924809550960145666596933933871920390994985347953416312968729362044701401329651218731814348859611418742007158773485421499911206226129391673608442812909615055206210090555576923970628847565636866394464833919689576842662187695429777338130984884601067744483904574258131255381480196617142829393066812721794714267680208755011318355680208784831013750712098257633387634479917664254814077094329340983070163063686628695193394900443121811062309841693406139064826754576026504631220807243492897110592279515289853480433924887737326114913237504564724413065583779553789898710581335178520027077751603685544893073372083110230328824297183763857983378029500123858967628744752742287503018054512256054011288266564161631312678253261628416501504133018175708231276830761414234295531061122771174398407879593587249211774171002890962736477665640966807433322327952971684985829840595476006559147855340705925651669648823218041809420883296565642586936241766608871652239980898613382628329478517119210654521835009619518341576296320665116224672376035340108572500968623700097742244809474306378172358803968138726764675986187742804398630446253820700575180251360278837833636518551266896946709910581580389883859454382794894567177931439308060644072001096785965433325561741021584105021033684576207667012295287519237285760054123465190684925890876808779069655252292149204311852393411845746213162109194481855515367799892759768522386276031156409350773960765645034421672930742136392932757737770860695511720931664012357006037450467369112605106843340304223124887373858621522808815733111580320338352895139736414753792806084417901146965647740716123919472386822112075351536811870045263645293858949052360516968275731819542593689525281189676116794493163597777765431301816359736329492390765998964192443545808311582905665902002341637126098435592257939333235678876040259131449539348438487602441854627273649970097233609742661424135449709237953954929489764202351359304358642189477299558834030220435045868773480252346894314481938297373596353312170337547916747361545172114179135430071992757891368951387727433449722628174605176294078212718889812565723051142353264978751356893619977338414306054698963270117577691026337896292760516477632520004779052351652170383602455486060460515801579736253675754245014981474244883148519735811958963503864821339237958478139600009633652713594236242625150289211525256228573740111169286001290876202459145497617856402060041428279815362073548507944567280087114199767033134256437858727153840671066097784033035560156341876748998732094885587865038949301184994298976256657696524211868700429151360617850748767685185951269446770262112213165541858543265775353730928856340211686295476471541823326299729031006652400914711925371925575114263742351905314623965122833064882600494282445078411813464719509206280296882057853632748946546058897036611398421838054841037831742005311130601743857825676503056618543546253298566841715124970229297465008410088829938646720378492787528777531782805014639891904814768237042512312450091635247977134510441991029099416635233077680887137981156186588747604835353901749835918464487301868362495734326949912704087235809783281137218076248166076722265302809800880023247570626809667035753609939574025949444154146030078513018187085673463723442233196134339006444337326434950450910807745607323819521411924183128097085327808258394638833598745968438041466113740483432060630625329523211388958072356007479585714450203599581813218656076293862892747826651964943310513722748720948453664344740470296299532989199444049049542306522182121176092641509141759040190119700148884953156183729310428123847648107554467413233972043901038016704693425103213375973065829968627146583722270021098523956715621523033686661086900247511168478193710261832229856373273817322703162228818191754220408318499500577766446981769129825706170312144603265710869606218555890060443796878794370952436770893066588611303274401575446184745625919568594598639511058282748352693077124637554955533018629679977432640618347473809367653043229856664783833064142732184645174978088032158861716257813398797111938739274304854874644594819105497672640575815577403203705836857009535443195078361715087418997281839045003535293803597421093615483686826799839564247430534091134503687557750979012852587602938783541795792852973372827028683996074839174832233514938737728690167714674763764263473305900524595259586541037229318809839760964259110384993974908616991867991308700724516769531686005620739183358398731992968954673133840760521380678980222911196649264052845910610116207816114230990202104523900854831282995317461093074003290943058217138699495178762316211946243169093002436141300780049668191054323399914942386153236121663673545827457399523626909104189206721361300462499734925857153011024676137475506104231469181682562541590825382273447158494350015743200071971427485985510953595295785188314040739758518501367049461344785898693477964156130431198197466043158549474736746085946518382645503542611736579511862189591497192469779625780450742865910611498462063881117944212477688124656790959366402812388701074580740495763458989756481845353749140134175644346048914662414689442545579423593623275685784908461364593149260992916904371614061941546194743247946990476272350385549369461765543795204002348298460909903112510644362199545235584300562531385197236157798109036259147220985534988763228035941691765868252830831825974983085019935470667367120784334116233588303246142766813247976268614725782703182100080315359169966628602634596216994944631448869065246190661401636281080726948947993528473022773642350344705240479056587900847033177090392030403026519507674873625067924369646451461481206822820227284873509010746282848310528123802459706702296614934793527032947645357308810950761959867349109456021530818704251490505263488203405837884347356339312362145584530113055500234365494114384787319559808214798337269584163214431059649275376482549003557768267622450109938079438642994553093021115524172182492472235827346173471856403705319872142678113399765004153694458886246581293272262212062373725906706943394838989780493508700344485524597432051315202952348453911183763581530885763198993205611792336638626008024425394678195235408394372593266328299982629081236810651777526087776524665565163864625171580834146377796332783066925155083969445873776630778522522257908668318379533822169717917201228987754821545767221746363614987563640008060476015398538131088181482178572761748737658118694536996390544228744365614779050758514362981747396463904472073374437824948799354174266349789840175715342487377038719226147325097536128432283794744143650729674221646154360269662411277374423051549060824392252369392594483626337442179697551120896457936446864692162886743403939769294229455917202823081809098579071738639347738261507092163936476218907851636656546797396638934785927134859810880161222657982360971223208486962377997359335421364707021699085061585088178243457153446049478669716744427292515084559713699306507540756159864037807196128359339073207155226313176770796321993383607546502176255522126526028651377507220830844408047782894476555268902739257249812561489187926244325383986337058958508916937323957359489909600496312545745128269567611538820353180379630794033473688848074570230005787208941865829179972658070234623814083652475843359122538552078038778927579704819646574079921225321977168711638721197968790585319721051669538047633877963024364588146980270622417698837810511633414263380376434662804413703822576129379614709627965791532346677187087668276350215920730731216561722560541321673968071008792408656867334244695970933898582030301087616319685436637275999499882539114400021967732522238607267769176574848539695860170071834221886919773532019773493419342247556378637190639305516577868177867451634583521723632965370238028912997757079087735948785335091344339509148050645059566971970423009837859013642591452306803235976677258404030725073005582473660468849822101031869207585688575733357294741769233630515442933049360084131875915409241812816337139027137625862327195348064327610962067481956674032311339824295320289434964084094878289583804276911264787292233857616284678802226632980892870553437803950580859303064465491293159228743947083712440244696277980990732259465925267468787513383109107058516121644860691791233201517471064697898667137532824626373603591717107164143869925931638194189083341038125603259399072219429771355649813161053198189824332765334328343101156957025999944373458509276660810752300814224404198772119233314483900396497261257647134749880158180211952995620873551432308252608272814617138573559671572818864895203415078295601909399025896082716869258424437482422905612915900115825749376560352126951056914133390124054217968527875176699017948017396920302648585701210494168030613097420957192468683241365707675657968635950428606047798399555506725836961328503325796438215715927665627795542745496236562743080717165520320443566173560697495582439583504060225453767219342451503879302088463416466251535252408002818294994012006957834531929403989244693297500475953669330056477509280517902650878395935038667230617980048599448992574330053343300507077259376869938563005316629696677256031533570200763734018097827367371193492890518002137913962255425720732643604203030416848950346083662130963809076149793181764246058347493914852242036210380550494922020976449144870409698932320554497112629968915315540814810422509483054393469229706490687642966111910280761532281705841750754643364037028416366268135038874335318574847364907403319837578960129074488525697096647932483835079706329424765357508895042513214674390840918676906060002209507986023190548156941696316738209773295742743602815552671453882700681328629962764985141594748733035939859932440670429434146238408886811504461061816674515706938120010701485346378108200573110858541908840727592447894703282084435360456066933253776905671019709228608475169422679766586381373494120562023691661469873746436355271745621350682935536240921008013880781187979419146828888668602001060764559062931105051507319257655570321159500370934540788902528524402928247314567683769966088876865298611543296345863978684284678078874865982496198835670377795741350537347547686587338533058325942554815975571075557083387934774119971545224320108285929475240291127652824922672671186117939855197229606870829423711096062303182863860100784300133478010161843413441697151875064258401885786261645103043844428876647994519970267653318935823322676204863009794532187379280730351892829087462522215085602191866841664494634967231362752197620054967940784491421075304502065002329949812349314898673917322875300594585307348003446292857255090255740254683775441937254181325304369632182623602569740902213799697543800543746148128472720747349223297992118917233370073329219757790917723095173597216146933384547036094071961997973486326672020257785501606843198529368892838033032103497881752955702947116928147920635114230030465781975446584228562869469546086271036824101138373384082234823739700929346124766632378518308432424772859606517752584651172244844320241271081251029259873837597962805130552516969599712747238691042238890969707351773943832408324125537765596023558750643750602822211327960989496657393096117787883951167755818186952963298675221335770646294568769038416337066675604640884180831764265712016754237665869490128156396956438965255687053602199556091797417380678752741127676877874450753149126000639669190121882626279207957633552827345651168235047607659963968180398454486513329182763411070296352456725380284456448739943231217032671322759013982090894077734921052198770336567347430346408473266935119267698758743577800357928474728944021874296303505170353153834637128203371039239486901217872058401292427649518991682125052363854181239925033072646553321032050204150008039593154348287699583956749273477616018154857630346609048165889892450169613996074617872186531096098455532645310307878530450814945030745777100156823070402221549314882987581362649295576510212786713932685960310587340867196036716873472399780134811515039602569067511690639916054033857535329857892202385845225204298152481799690305962004067638096821597423954684976651403235995483323994689596051859338263202178490926866098612710197243940846802958723657145107841692696939904360442596702340414119370277452970181893977356609283554451616965652397642278255133607489002418943891116732694985729528911911076468878272794434227058434421419333834408039015404438500866597298914099488190098832221647007226180502417128601183092305532062178679679689773183528666081658642321475734338737819733378424698621122496541637922181496382321259894118343050117879868633356854608560919426167201766349529824171206519598868716441782400917815918071717785533062564682516965629017152431849876109976628210677604439616086778017844767414991661535786979800019304292301864579557678878166927614789731917163366737562271300106141453369535185945289172031284406671871001729162570492947918254280462300318968276603511395164909128588647033176502435529006774848753965181811201969561112347182206779948977032071724086351040799097969539209966488838865804830432108375622334375168797061216668940752587758985856612027814417651295784106178327223573593258678661699020669744543238749446233966534862572302813092508943749277270764968471051307179697530788649334830453663746777994318501296225698411127924599059570536953061771155498647419535253637785627124935504554400759556054517612592071128277390924297559459621962267497060333278000182327399841760478013227044881495723643959156548769796071888739756504737058632382921187483800013465652266088008718991237037813632150222872561222662916357268967169195515170700383290742513612719019601809372041380634945982475005484870450796700744004184661722194340545571394389757652120749184445743982914619047771418954923788577507165758666016068552398284965674595927701380241396928852347387731203357276836175656507786398399848143652911061853979566528542448064081414478304605189743402291512271948612641639166931143079129353607459751358279909636520934065485529807218603217693616265946992672955276799027167609429686880828149746550764050542902249707656509719179763215705203572770056432920241478057048920634110827364845537511181203978668346185245685038294222664031031666004207450689668131086432597522518422471330163462841373577695064529821989286520856296511811199373146675339806686403843713001707278676279066892020711968853350909297707941439842911831649776883013712957961971880509471297300634933640500500473954798560098932351915083080770336727216866131695087790455349086204254034282989689438461200149003577415138529756519625263256143541901468807535076866237235637208825600327484375601767402906761074444674927380303199470319321044876253007816846250457548126911074607821494315708112946313932431558311998250987149367397104546788616668358729650435112765946332288888113340865180955218406058754294867457134520571040066218364509959073294890812919504065473243821434114796519702955797678441928173863426877371605727096484405741883990833882487678107600024034934479929382014828632195064697482955285871824626877747495826093482439050666405525175046688939006501972460582295524944651595446733440462027502847259233585911972276667804840344298972589363822045917791036404911451075319314343001266903391277275908117467723381298014907184329166473527641011721638121783298004407380085363704919930469647846597302695077662765946483974984713811706476990815659608291516691881326755120099678336653340416891078935670089291683979639598839567015898147265909248277781589146963457561035715438446943967173778811223395861117382571447714421983207503632159628277670138358169498986935803595769836396480034060000331474714265259824070193131399319200462719131055755981287294582827646050291285631903396419612908989848701940942133815664860603828162010188957664567541031262006227663343859458302580694259640126764721287798046182897939067243404385928911987882916097593067616604409422484949407449138493045917147398173287394600622947350804163250418313423554731712678993365152450001167427710641546502640967847533221095689696199529645384557699984774163001572159790952500505817201678621222033066056946465105118163241931905071449127382276811467465378493656630728524182908302657126216327644944373685806714872433203021324522645784463618402875212340742161478229595046088241232791480229953319242490832244303293901656694579849455037141344936121193150880122316854153195707017386632047770502489396833462167694998511382026367297729341781366932014141262714372103238674976022267301536042857577393394901184748664466811454972005993658071091997052259831910278872271222783223541543068004750120216848474728769027288827595564058193173483198688650343163033500084436118133223944255655035936421376336984664021008269046583257761274786038477964633463051314718199041467063647921172048192094464663177995236935531595031820067766272877492585395761002437396906858458185056482390531470630510113307792791600551254861546159056171193097222577507713714405547645298806090025965562554893428244181106756099301702744966372170621756134774536237393845822942348559043776046944158089936140232018530986154054003086432780470579458767163200993374816081390194513060664009471180369894977207802583295434281778984147271345826385919195361557696984153364474869491548828082937948729070383161620514446063608711249239642964203159951450941129666314089670174215553525583244446163427426457815219490635147401177740996758078688549859888074912568936605270862743274750406233342969841087944492504715659260496279898132487930593870189423732882679493137140231235818406524752143744528774393706899081163066153668459621197663310251656701112127780429177121619700990912140827297226655409097705083473815560677101215994955358884697266453327196098844000568810384055034969420313861939303863758164427074631869861558896035762828383353145446878367994260927473806767716323273938741642788528016434115126892492423699748205324724880110904248109122881863971101998576907516094028814172017854569163905789613085023906290819058174080286523570123189660168745753522873329715742786132408680092389162699475380074712317423653333957531644966576112993828605130031910611635931683954348728908669599364497928596756484246784849609202866575511071620398530855084574551973742303838820880525623166061311214446778783458542160543040675651125273295811138637603358667009182218387563037365244735695111425246825651067042228704153411889006193895999567280293780410236066810012630777735069926702586497609002643763194497662535627799019514040921998524571330227316404489904344018593046022790178872351258995460280884790896556127204784504513159587847442686701633191647252808900455890150976456392468414887361224682039667174034106133932508251687674778545479066653175776804897816935011328857280700200684179257266588842829784798071518435269915607721234861131114800741053195626462982032649882143942504047107768992596591400302402501970288116752351789216014918587060768291096318418971538154758537012922022876709001539253264948975159488618569827271548786342290361899208101552278638006269185579194177510207760267516813567494067774013457988795782168005177326876017672374777784645872576516877304895575465879106054732485209482408778035384422572914417580419646419572466279151107963267842350613897361691781520024575827650190110324077653058479979756637574296251249583120001336294606722822846000642680884133912603570223642382680571736960875399447597590028554083261354240328552450289166831498820004245628453189314928850861443719549472801937007524145435907475532468519293143788633579964870334892105858360380284924195722551801894453127821411714911780652771339724437411346090278967417613801665758867212694411642782697072736768214354708100223393504583201204524972724285563521975281683683373471573511533686946113770868931562908061925089570221137502184346624548484293013950998962395577421416011892551792501904951665448629377384537836358053669179581266066408821333516982977098991067547519227659803887860820084021905280793569118219208737078127043012556544535841032242665683564188221252106104487919342200311969454954584677527905040689990617461830526037864083691182290533434141054938312862159458586548864099494952054115716930495244901117676792793095117606782728528272646648689341135891124628943221178238813826195405217566832000552611986676888824049353627518498306699394727637824920820718489579028081956424134193472646309813958541287645713893902054097632979484892443350744656267383556422442847895291996477244078148108837926083297426706327711030161607412745028598128436364968053858234848733883455244194172163556138474426486626736894572534708291398763134466048109405141430587883241730268266584986007413291180964990458717638037407645087624734296486037270785854102532284343339250699179849666561228141173947811695166136127170042801230787626589278708553432329723897527784317744792244728843141649377761307429449907698412685567348675091136342188387737750930799349781027491998823241850360718383138466669690300789352774922569576423606670438749007873846751346525229146819728751438121154389880667855558967694379393416837769500722237281980933113117867843102439151758910037105804082263947392861926326903081440380987462355091720645992777925919604298786642013957112110442332153376710097921807919480105727098059933322975592300179305795240757775144398924924311285978525479170204478774820439238062970613746773470289590223019169220858764076435180293150579020936201503029411208819192327988308365099450623255006925111940154176285713748035840803618675875399175972623532718831187765960520988789523976051703781807143481613082210512035322096650926292013425382009794121533145023927774787044927393330765842761172598235169805334499452203336994267390374571626035662476117438596099455306033935054923118905619233643762108605608907774103662933772441704336138725328209240049450603029146421264960731146827924949306769016451212060531988891534928937255266157501257744851920091611215452517210903242615505862207698758279324475925707449877031074645042852349591763889705840182997388529252273482176503895210679457103389679325218360702827000577903441085143076925627674477377789444741592676006570691671710255389559862268148103139083433632001811174783932515888760625558708398494692169648806245250539957347992949547679605762416410354279619573055716628731135830667847978981370039718736889958108087841894697278833967754672075251631855374812989813604554321291155253444811489876210178024484608660707742751840960756281994989119767354582829828415129117774181878526086456578740047696171314624999733859288106097017377138038953589847379155344077214742024722245088084419661477324985417963719911429907646925931178311560690659141656669248177047229707989233880096687311688650587990098020164264619578264448580406681804206465457271346309946050134271905498770746198685943202158145949729733807523859520221633855216044476701946091454580284824813470443469464941728121529032257685824146561893864426389204146193638036413763678423534190741967802997604273076939124300366132259639292296112414680942133199336682893927308326347712444451742476787911406073355032241615568482390993337761871230510805890173879911711577362566714201824227729814972937065451724664653891442949990465747943652010722950183031754933088204336684600725728008546045278909279655018737971315129938314369614746711171115341958158704556058238550532494088694620404401563379230027517020438468430041360794861774652618255187047516575257109165605116125516698403161419789324106791164918301851208836400265295865120578646717749644730175728545898393566594539641225042999328558494208356803358242819280908993520057881201848527293216951904355325475068894300459714777175326584616069509774936463774107721423830811431298905386663548534663880382380477055223904968659458592143446342008401525417788322150279700457211858041354342953875512419870330823229851192225671297007077218708538698861091860916188310853417494018648368895411493364765853153783682483186107309205134820128399590736787611102810555950733834183785033043626181410420348520418080603690542015648672957938616361708557952283612599070946623919315603338854198772129125807857456340304148770556801769003107245959958573746750932862809118363199399547927786450178429143228309558719087051624546556830268405598559617065762939953150625727903216158443042697502893703871949358930479507095135557871003090022514211294669187310671852681956173733016067579010657346551971109628662343645012861069672404828592073650313733859852858021869454463791996144736688545581284238418307590344690747715587684469879795080053725141161746899721399459155650034577615451687850587748457243021259714570348352564601368427424747929046794300160193950475801466294984127340449660023869372906549824389199983471791669335845189624396285897772103440243545445107788058188808786256264940298656678409655728578759189836350187235835987033326535954232875872831645089609366112259997037498285502455462925582096227510444632606450995619216697572587911633680666106793690124572301457461914355659232278465997969398508607448359727338413170152090586810717250166117884117038244201596340338956499349366163914498113610964690998428716412107928669106671810656634122357957927862561334595165783708711600806360399321082706168838228722970910332622255573236680780985911365489632550325875716041065904221365572079600498583121185601075468593050410767588058762597509902323425650774941715982346818165537766320910994647574065942471968583614815376580614690040543416488953054835243971647307217163444110567734733738949612927754862256644015613211468607319111643760984609663409890101565098016881607930510190001387349231441362647818595573523665221653526163533629070116651838993178318991130257659550481987129236829756605467747582720206027412280230015920691202341595957112996419744867508316639706039771043501282681562527640908482869728725201881845175343237398321912797345280629842706030834197624780453394760964018255925273956962949840075763427481894864543032884047652636710951438935842289526098166969846054747752850035890222468565436402556423301407599410951936099307228187180063865808057982895978971574095482433580514946189655422011485032753399270263112707961674434079097634548196861485173548967958144412342599460361490543050778064203642803428302014076729287582112831815239593164133191655755762351819030310770235191033533597516054832340973940679636252323277149348076331434239262584362765470970685924614438021993627275425426203821516304237827663834941148286231106141280954346018932566974853160008249684285475574759416550311673323456157213579755989892838541425707452537964672743577414476295009927125305304604706285093531532034838370253582821943751450812292751387186630836050921323053139232629536099182830162955067638054595567002983338900342096262330211473802172607698511057284215959888095471858931953556778848023392972091461299257614878974936270941965594613131464345342070910084260474179117170787747712067034542071582183148825713635325530376131445768019687181640476216269731519290213760239892539683531122816167710380784715245577750286672132431080552012453617952692524380699321486117842547254105562798474937702308258690542342992424707845447235258795819984228205202408673667664507535950507449250987288401951170193200033378178627296449661022852902934886513041872248235560477521071013743903219796631992478249721393694038145486755300792027108352342996583034032641899605347078402109790383818438255336200804148437332372365307784063692465200038556476740785717189365199167116914419261016316970429599046034340295581043706697522009707163621092012504931144472464603146503554235743478300359108921452987667912689132582398050539843093482509187727047168199926106090871021865990936786542290374105107357393319784932682953109248943517715018809427399285295667084951773542064413012787923892301348399645315251954103157822650091840706309621058311604512214914157396892161228806368515016418048467925062966356879908800368699947036818689947531735545341076629751475747894840281737886899877485810825387353345929516856016108743316400314493736807918821712952880174066800456539842548189573420112090807943857148429936630220381674619285140076146054432994876131952921130828545153593913289861779302414933638219760500056691374393903269550197211408946380514553208178024911063251564050879852111850732872207656102199187713006248051893976908341730111708594038805629741368994442133602256720356292659911580364586841258236803481012764628424606988673540582158559812210086836801367918436473642670338420142277037240612221123296565565102205624593653397505581262281382808468125266524270740580155998428079657232679692504096136279163360137421637331628590097407148086529552680432716888963863058958649574902330978223489823482519790893969283034515672509185201329505888588380982819744080211717296764459514939882110589636113405202548694686358816654496880874016037716448492244332148009496172664842404717668364917383368074734467396624453104421147307643188539259849296355462272379676413437488476392819049505025325847382940608502644574034750640966287245518892772894103596632553937562917623558857428728702067514627091034445465373804301592688863205460483232511839501732133292605406063011857717766130542820314977008065346625531107342626336034496672999701396442238245644962344291890924667245437085418765762572190938643767058717152115483497676364316861091109021947579833240073781850353819959426280349294060003842030624934709424267172269882631374764381871443479020592492469316102820004825812863132949694676262809009277579965740832739010862792731557079682408266970284468311748669152700602257449181754826565157525120674021890053291592333101505329045814370382174755195094562922326524104375744457258313519418818076309177665701684389690983542761848497776945054341429686209018248639483124581332490479024918437403145511165901965146826317482387651075090182794598599398553839274058874092885558333100390757811429060906067765490659538324232309424575230839057847585470737822864843179873636849198414680590687347475966654666124766425318496389474965913775408532678623136620557484105490638141091590217554205401980592950597934637134832159444984641174252052761661895345012502394194685757364921867967347479648660821345574428066862883334198405244528966383943440102185691213348295028050294431623096230704249153181549527957414244338569534698648551885118155935993146914372702399407345527350871143535579252050934727444179160183206165880682870109746791123760404406973279914656319270828329940388065646274671163153236200836120748133412638600332924098672493374824168727163332676887824405625773116188427108259441328713742560966158357223931331740297476743095177832502559009192693602922079948214734671976749060100064933886726561499328244412204583788305108166114618136343347968928466889561844579464294038735143287153581526406354787877881398642891463398238747706673690149236476729025664366537004523990084010117293709458595754098446791243657763983749388176704049176200755576709640988712693451774189919130691066353789306504253979700993485067029470211241254131177833646934438718014138676473635421896911618939077942314169985227820875286144258930748761316936638613257024626144248968706925417998106358429915614701488285950101047815630559351271452077763190865338235757257046633457597058030843558835938911433152253438510463056805793908099541496405280087918998129806021698152329608827000494519783877845316464393114846616948596857697060167594131341896329371088378283147223212532744715576509052198462313029002250394959605536906174784153602502882008300342965353282226304961248771333116746469454425052367850611251142175658517717179106547400498947075720735864744050030671148347201956264699045998743301427615578983512130974883461974816673765923994666943156522597661680666351608844004610463116134044415620244818960383618081425323466081076692777458970713852800701141167302139820957626097501987930101699076233841922626412009548464549391573777835311585640366278287040677035401626957949469588745129610956822660084834898948620329464463978096215523556223525309476626856315470929844259160800843260366071608015441059789034527346080744327189483701247066573681156166111986082609914303826994489560031901230384386655409164847282919824793109954768838900573402916731271508994240913958918204872892671832295852180188109178740970642181819391171665653741575552093421802049361088278203095231831172458968614447901328451542360522010756297627732637077764543809044803948330015683546027405810215829154062613404701775980488686328495675609348238342893673322856019460665884738397358001687285351660076224480937897997687354795742800866718313677447710871897324006578585677077026915307191200906992704790984438845938500946001757496487502226730839348939278588855772739925389180130702349366188094400125023740007541232914764161419426367082393847963312498640070498582617435527724050849709443909156604400727183158772559326495549317984096885432233666478425703865846755277259541305285622915250050263555421253860411536081777267844581702679004689116577862432726658335993361388799972885908358514605368558665739844649263546556739448246732230938258726109006177931087456176635678183601142451587604921349253443917818777929566208550523703107633928916457533355031890189456075599832888677048970602697734791990293017082157327632812649330877966373018030092003983000346340628386232279212793204076785546392170863988482153007302997938586478008584734024854721410449870536343727691113672277501497976591991263026458328028657054047062473197692988186183815786358096887932129421585193347015836026430033457428785164582590297954566671785980286994571259192732455433912240475964198930365531541141907807311414843378657634072844303222944484752813034562350960700757296231388513557966519463462136100458940088905671312688507581345275020022111649105269710879245767537327033724402160803866443769126194867624814679533044327999261282686123178455828620988150129909759858321542357336576604655900337060114367732185032704862645680524467015653039308439261943255938028550605189606382159692938477346415642248541520871997117981270276049668036068798107525482863358581666319599394830535979795595834283690004472127119590949924779066049494781701274813734310663059706014176765870997081747257593285058933966857998138612521897992121347901611527596109348568586354473634033431688000205590962344849944372863682595261147201267935255135581234085512804776924918475625499199465123821060777947605654668096117404775965957706076547851755101175652331070939966129552718080578044704897022247186113611413274705604055081265362428940669429784893752333494906891991072425937777365999602672519607302565887705424061523446496950409134370858083362064711145329858369517560741965436139112077774142342487685856105580547418377992997190826591752331057422681358024949677919574282035854267230075288890971637659344389526161275290853019052480439740793489392424225863940893293386601301677304600415829844148473137891334141145719347444109438221303320417857786019567534286799934955448974183987926010597954412595734217500076925261337729468422570714629218795539246342735900314412110321624515136895175184024656852038852330501840779883846915684410713215979075025553467587611344375412344593686716105883421227025983789602153104447056577702947076863351072740007696590169220944728738488660793420053284197219740126705053339320426936467617300907284207059009265256569422093497618136692287980723254201028788295169353052961040881486439953283078863111539700693283608079416646570330404992646053425486256504571596007311937583312483393471875886128834763603973476557700725388671050494542698286324082425108610525470112629354109235840885250308326986089526176778087901697465843861156691158380331041263644806543695746697306383213894525801543982709246562240367519309607421970718818049189100658269381384335068979404130334702809354179410631723522216789599707981185206312869840559941509561671230794388368066799003132613634232487164755831584240084246625244153541984909646896487123762407661123122684632336810335606921492392898495895108873523965774703787010426202970602592770843671079319675904359059262409573277592799079104214887004667323310663119438781679785498057399293942504200316007433404512983549198426914872317692387544145942867210740735038883708776262386650526677090110651289524232270913151385477331895584576958498386228158329103571104440740496048660542316274682986456721989564843426906529487956682893595137657300359349752254949209421251866285959548851612806559323325097411653492212552802574121393413614413751290221298819727803184927437705086622432430666404908799104754041250649886223746385672457466085214676953690211356625242222276272466585766510212005397106733016037354223538379880731812483959609178441972826977097129046797878893328680250864121624991450353617719593287201452826545087506939152804447464337692974480050639495632922827147789596952348439460281536157950890425648756603500445986256210902063564005376832679096499180893418946029791438807612578081728437701892206917183751150371200812389417633922453709370262488088470816056263912394482143862294784301521165640240814933207847068932707548546023834277156453131259007861600790222018317980474556463497030935327355703528942086381352974692671235048162715161071542663200700629960959330227290946155208516247141544391885607241447653000206709134297505586739197302963853770909095896127639439789294937578280708686667276479878848486738241970277167764348005503824901359021929629189893270844941273467487599660113045888978754013297922537177899681493086628974285263761202084277188685428588927140208931533326452594025723896633484070835154906019740783590767026298520141075563314318599009966598841568879520766936762351894232113365583629910083655942784415078193797124764025285681676027020586999774352013791063976791750182266922261538467945060567412324907814850805835471182400127507584641808842652644384145202729420240797899711869937728074943845689722745613017751095365779262468691085864171448392002941268679077220875169471751349193079630383928785882832358512103577491336762383786193696433790627621058174642038889206977834095879725116081154755712511538141069275373433752714348142620375057251736465565986023077444744284923037808832185256944590608545972838896599631193033534296928668604112923696358562083758921557930513149406413867323092708322193628733166745603091283901415394729442913739925556349408971470861417208421044708348998346402877835817968389516341038424276430873709876093832650635991122839066673704066309394340226241998306245954980549785326267920906355544591668868868002755230121758895365708646367214040653298217317100346539377856101421951667832822451227659528291369702339725147226115785092012999839818766548257939021386289183409966986651090240851052859397560728998982517154134918804392653852291913382782628634305542002715729425780782082782071305306961717006005130960125290196453433441783396027725208127665555548248605343759089812056229910940874374645496058830469719177256579812673640561196379436013667856275616342753327820149922860156354872017990416861564189403242841096531355794432074058224201880405565665210867380256244706634173993271281671964742546553106851130049742844631249299294655741757653390773394526845520922403732947060082107076282554862150507558446934642928851380032331115409411080755900064445515703906684207138242401177973839490073808049811281124211610400966971198364686157515572908346635712224662184185157291387999509101747872551530879302288114615750113952889664947755866253236653051989031815645526323919260811420234800030294810083644109029645762331263490162846929619767250220445638569680241309120363991131113189023128602506699532995959149125275046123129135434487098967331894345989875248506458283344004828754288297035105456338552285162656173810220156324878473323364997973673538824689734544548885932084533821509312587242593711437400453755139681755862008906440447597052071119776522122412265106118000416516642101189604823600504496601814608422872387649962799395726847954554099666838736323350634342121515207380962845499654058332904917863603323608967953166040329345965490504645991256693320152821077741253970376577860702618017273676408499167065621489043118308351691582687995657200699301602471899569508349816056122921565089509798793302703150019458357696758288837952129322080344050457570352653473061423423603386487145879031604306393108611172094442637669520999932436511580855406651004567107193542499140613079978252627313176635427334274212681147564469829802885521159982834244432377858666648503519816882938394215207142282736112530915383092887134595958760829621380886357980479012302196943938272717210944076898029406268229797905217178446624834676835428601002526279923255291326292404992034602740756227106183282425797041833496612374457558516018425360835004177122619589632392247226785428866506147892437631495920868519211632728691765191240950900752656272948477818576537197182890930320690510403766528791068452034586360003151298384733394984091255513059704516447630050856401735317869952740682791216705730443939315919854230768772217090138986557710307860936353857417024863287236168283677478650218511777089352257889799048120486586012674848162503710195471282797831223559506486757873980696538128475310242988808119983138102039494425019869122656971690557723423249909042421797398456703445420902137868321065069507076485408732875277968723602944874099787214029080561193454096851105576121384924889819086354635820739334584926144076087528207721616174081308396445749039759161759574506156935561772031788818233493932606684109116472847767174294456667575854968969328209708137147653582061899922708636398593513713862683896285760254239852128369625699591154621101037509187174658345595375194781588914698690134824568997197484536394580183161128313261053617038522743843900251384139537444248088772632399916928151728597457530809802614767975289885417454831846472859137245103861649551388334759907806355999234446264657473378280521913308903830740661336649151237068792926525823549890534978848955020527611931237747551531768309543327230936904588866915404010285448224484413096867791981641349387602716109905173104789290787370546758048511195438096020975715703620371317563782762240489545504559600111996816701130222959636349019629487727147112278039082050798672585512612143875181370406171304212356305320926527994381066160815973134772388897589721270340910791631232870077626138479539729076695623939460978659257016330024098542242487303130206107861901188521841478867631896158818312647027666772133842627976211439509684740388643705190273419536181084734563554489231894878217590944854974010628390858910420872776873600153812247251615191515724170466190454520591056148655439040398654403437891879281313412618821898143386667594965625491256573385839254910636522300643477522092631569608376112576671920498820057369365792590461089490198682117331554462736488930742300897068303308563727438459239319758968527836375419350066909499394407376468041841963415327637874165495166161874980374397092242075254137186597518835002259122773355301849705926394961712535781714737407961233343013457440648270601406362168012875750608199769049620748769437597596960362440160760702070676337838430254945410567965392182367221115863016335463385865763894200860103900971120625668259610005758847194865558942985937607805712834523246878583225333377221970045550639742385147161765019381938849418470282816983409338915573505385981616392246009377010271915554823203803586751635430819754707710657800605401808767914934929360393071774793724087415042752190796029617688731461419667939312809123524898084459657746115110153011203301018501378879861563458609125937062838342286750776394371431361447825357259193792951879986483576494307134027248865773050846205314329805326564838808845392625566464045789726919868408305874840013569883611033328070672266032364261443589736735514447857809559299949089326485423857176160196293026932730862877630849141012751081133657083672666891500430074085515133238527204423525017243513416494940833208160192834281628360771103987889573119814325810663347098942535636122389330278612282616052014312859923320829818055836968446647383682958017152050504873297735618125040742529475908560208023906798878262696689922191873140294097833836883455358294371755403182391330412640803868878343122967213180362001202888855122969670354315684099340600788851882886282589934696871555221120026737882684209773355293142084849064032829666491666739728691812959698693723813782277298298026639927368813093042044721330939914620078515285700410721857986686483668764403774687810028863377321251453569211828185718938427715113008805823230719525558983410340137137719230997357671235324112079533899287048962989119192973505327990707598447609060476422567967742721361983401909700765182147952447431356276696737008974175824684455317471051579698033721143741586969719598140579124523918909958150234550196368758213018980908507455042232506857465378238944118518141217386431895532579642889182299091690756871619929403467349684108312078472705762428014991519626561075492457038863874903264784824307828249286324367647323395473849784368239714598695152214014629677214415244571660754423635453912212554082432816019010088753192251154328510170509414722740124695263308903066747244412597744252023544299696210613135152048659868468930166030006793085286751256114325945056408289179823169282180783115873610892818067442753963626822156826395269724655263312452297884549535121315101696131829758251590208245130033709870596496659697411439542127281205333389827365752282204487165219067393337989588961523488556100676436667216577920773203460112903578210726916271433580328724242489516439727173778276735602951600504878706694260101359371167420228975019739338726884762902187600684560990116104882681060882462857803357422730129827619583101867689252479475547814182629385337651406578417115177980600404224693421021722320889982003230954527781697251584748729983662000345039249921642998775411227847439000361122271335467577872351210431647661720140057371775196321971045006158544751739236390735113695415918445835188701470724764331277181114442573629495756917087668605271844904349177293451090164042918581127722565655532436472860030150744033126460646919028531168183184537950801682259542254387809762212440154948337881897690682168175379945134046665040910504552403121311412352807675338493086867360421009556000240260305143522390097563332329286173762687148187008623898089749431255943065582862413353173442720072950458304342100406340122523311203524005366738628785759713744621414564527809800114611623519882126179071777758591155190279020686420689458078424233315096968257207406257479963416935766942463756129391834070702417271011804144797894363183489285020179359123897197429265182886138012730121211369306307643089931887734512435868847152731477467168634087484287411530727136469909991571444790098434829254083938573187530146585029638939301897468243056002640451586570052366587460046206393133312222989389367511360888126619724203100176145044080708456060520680402930532082338097389601958245986887848003135452631275443580978376847427608371638536686224133176910230650849321231762303693847805681855250565417198812220385278136756550403422541150198758265579860844647141617358003928567477828770074061260552972940261040225863322807716901062037629500307078864474913714661963246073019253542467311283467892705332153806872676083390419346497500218495925451179737896059291026597732833666687801667240137113183754174870080036615712528896922656500959759069031641041029413642398433429017867770810810187460967426189746927148912967306003315660124033411849351075332977933989807205946355596152752987632117487867625906510912195193333431605552261578210830530977768026879174494346905593276726633250308918315345741195287275223540286382341781849894553175860482944701548896025987016719855118243497129539845732575208351274764638331705123567275803480909059342602949939932796610138253216320844007008948245091031741149557476787773647715037724551132795207667893472941536361808816926541784860751581961556839882552243159696272365065175378436172811947723729305119905700831214584487721336004784465447853885805762959734365228507763430139904940163022077862164510502281383750677444991759767515842672694139239430726648115924561639662150207118477923190958549984607720058485092242982996532550685245571172111616548185408217252982947953640492237012040236603832035255329970071816721483125103254004661473766976428862547200279891579930869590420750735460328903695937672914582400938816597888046110457615993683507476723704615250981863354746921437572362836966117032547904727661246284635477976739278393633392500370636412477235834451217634307562190586399829114977512509157745007330980905702624549445655569230388775359645287608499342946182526940434676166495653121237399861487464283071408227536580570695827319133297013824539570557960235453552688580371340214395276242886173100709756242023022762666195155926207771163356990729846629518181659381632882402981150637114743689649056462094325539656333108263886667386947156181929653417675678006254816514799598630996426984884613274492644414913848172060508689989771358518911293395323726552283881430103444566745283650961610994501237746194267713487316570886880182752931187014817278939255294669247794168622706947569341423072383558152893707427081642321332298058305134073661560601513773844453786589532267936864065004044017335097836718968350842139062668212582999035659045299240858300274112600946271645170664179926211015223195285225429908160215459108021120174127230077135934880730429572882729121979879542587483094642941097330846789207815554750471634089358521836821435070776664039700077722497666291546662754527943991826570555976333969559597145572873000121771384294806710434000779647125216864975019988804533799484999624949926043986924788106116441799100499032127003280737092872941342720885561703182654180912148577403933718315723847498226365872828658220668129212736871681164263117384768894251144826316369379986747246978231662299824172437959130302379996679701678780825797631466828470976781962984402433387355274492965664374985179943770830585772716028037728602146687329131059405932741728312583720020825694119836732075046891694714713916982768658040061083150440358609085022031251502241459101214784638166345847058084282677255745852271936954658219649171641909181944840236606828659109597184887892970609937830507837941482989395344752002482857515405357101675643288198308073463168757325263360723410088138518166117560212434784382815887381627913008674626835756510323047628661859223608438161191072463989241608703258416542068900226137675952817031779864012976619841151975245585959031669910660535648747005572616452770037732557185145445868465361562392434129124053757271279969429336110531726552476896985724286231789136597390773392489533927634462409747518384037293165721074897393551674879877680240482615881779382511580695284585332186180827891900198706212163701249533420645820860877977515549537514281717176636425361257376946742386250800713454622614411522808908818790683352721421550434834287425048686192756071015752754880862663337722839845141081780388885154622642307070227805143319248557869153023071757903738118844935569867916980867547732740624596437751471774041629847227266878780267599109295940223655267040151582327661424517180248647212629143122693649317568681415706120289641855863718252725511931080828764025200426631701125397123540887870166694248230122707010697207400628730080473490789288832968641138651542605358707724550650276204315137653480291921370206443025850523163543126461187942244009220006298922045676095556922896083519721871872280149861459310904229628216927788031907918412475257747859819911898701629523315332635336010258915513802626234215885822744679012387762531026388996791398649039039864018150529794549967473463865879581412463623517220648418495185620074840156707222540047713236581158154293366247985310204660274828341349079429382441220237896390719235922801728797027766586848398494012038189623821497038379340338867200339238856768539098262027762021838223510325364367608518967528006795428429642152213761087330485679247703391477369549856919597532869377288603751044428098451853297063204061710773430107628289827021343358588096176574603512206570746424472513179627754043925557098999401506620327354393022834282291434276116685304000908613536894709061993297774841531486297128936629132941147038849299519638097437830441039380062815619313082318128083436789576630232300495430911421112930156253431476928390163671217794608965281827279192468633779408351123697253221321433683729476320373751609101726705510453593543464767808916960639029054742834647930306507613386063074684227999174292048177054458481771981024565167440111800133020158074780314760646170232051089221774797590156053448245235122101608233725606643245421074900399807573812177806004315366509075558077830387492181438262142781587614138574788216144322727564573720215549701313595609017007255899503331545762979248288634373270459420595255149681432003040367220973556730580280414212307281627109899485021782731817447022430660955331707586207535332220078304705963158632479296073096803746007439695930432369864175883447255626853945910659739190589490917960378547925039002470863779086475188003010651642441790679284026176286441447105608908558427860398208794922996962516313370187468342122711928768015289194251125807953365644699753393121104770556036904783449086267259906762147840485628176641028436172635113225983535906058645063768944025210401667876757254592516269205138268107778929915704524117016123512222751044097629452561733830866565792633069756481875604360289575371498054814044967645292214795635044209124634208079043473706989258488796382879694770824598612299767756937119085174554655348593444122313286183733340130146586811309279269415692415526382182288533957505444002600594876442318587849193432353579135036552351916240003970584319278375420026462883172892078638969811498884767850383040855889066308205476603226123839375987750573726224494901609291085941749612724994160971708072227034110565786091894147043607182003503179839553470991594558359064542637022960185919315069064767595693314381047336847089709266557595923197140636500596111840780623053620205136004708111433078670298454784453112845019047131188384058469125954114721433013035520507477780176162817229504169151853464626022596789396310380209728927732931059305568953351691775397496906287181681511341969196106993958786703779568455256336323061075517648852480626820155836250279725795801584914799683198289798981857783344357261086797695406898714283234384154301811659002180257068875227997651613505578605853261344025852247180411445771125219941456394402095519140743170402542561499172917041888519754272998643877529733166690320285073125251576082780842978164279376047322410502887461636656833735077162837610766122688994058647527794303218888327307898651169964518129861067054220272388139290787963273261362626736047481629998319034683527028734566271908410524132988206579412997756886335064719516990949290470685431672079633380600530952873707878663225943803581274012275054491581097116504075763165960981949151406692742748930048947156095249012091350369132162881225476262805594165715209962693572069022669577222983257140099602774440073496504585059732159590820213827921792420880564205247989134300908315501157248947066932294852077263372219366959639998253110716886107341829978773099376147047037661197083548336682430436036520027074286589283239322422179998039885026674651015032682554783651969552833649067043199321986533251886186573228333363674798140757447654805582714573760259291717732110785947764754961328324095576170935486271025096803252035588627457225837416531336926650754770723580630514555265947171909152636790198850586234213853760676017510044076342687199494347166125253333781513757701403031429818633252896706372975673708149836033463393315417650186042669340284560004568020944300917506683190463037493597423336516675581642172523268583982704823252177422674566211598604641262935971956668675601757839442285971773706577373674918802010655173376704437348091308299674335959857681385009220631282996045749658633735228396861306858619430203504129240719001887373954909874122653476203795558248956474758889698605683016530362057131636722669781478778077378729602262213190632486369173488157512872323815865348416986144375979660775070445018849301065445772448508766341480869409510268566213265299416086150494217651455306840446935449423611688416448532945709640362386569498314345000363648923728794017763227100440794732638622358832115600791300281022972613201314781567478719994773884616866909269840319466758819186670261725977874484688053059585157285883644219642941850701021830558396326825326771587052105929926430797178389879750920987726856748877273842248528366873206447918550535341055074785693388456126441656039048384817274569960550858529424400108730367372449311709252741577601360923819563768644415187281958225548779163128832560347329906986053551154781274172459191892666500926334000206153080032390466417737418561101261753118590954226753774196497667370333669777888611692625265102918901807587800435441289675178791912087235477410329073085842402335929375191804217989837104837490568578033031959042298000179972824144968244327958612923978078555505375670351124655267808248928683437844526495749006744887988112573968084555357460495556891448702103312673489435203999650836890008299545976212633605205491708961468757831624317887547404651730165095711186559788398556104614287233771715722751349292735222402633956330894436756951400106949690968203366169115464698099989896604734468069894537060265767556789356075280832526341616698376758318197065568742260358144895064642668804817532967262254278549381254960529442822490716045694379696020465282138887114072682182251386944557945609640864030169921379040617064531761769604699708246909738806910405017263026143337218879298541207551612643253224341082984412759022275683347099108119724807012808403000890419016232804512692305544327195339472260425900854001704543507513315624385819087315190971937776956968816386193067275429073465724003212650036495428984332323974726282234133883931816478614731144981275749302302735671913749631382826323969605654478815545876280489561509784154540287806312192014568189574730397931454839377605887931151450872760368828300476970671647679490930493707725520044218181316435659443175877697803796428652411134401597721459219387743653644312573852372662931724775016199188489055124875267149146603437301883835124176795183059895536223385115336716648999087024853609207290074586434046063437628892628131136251100226231132195444302339500794272111673543044762093453572442740341241357580143554131346175552853638613921760200452754090237554691464164327145401413651322795184104888540531856511761820606311700678400284997398317143274785074799810051678740805431692591243873949298159348621484686315457350999464223824500987838265405835954133434137011767536613983254290006706074144800231140855947552025067885966570222721813315521651850089098483153200194994025789725626132628393467161354251227974607298955960968349544232494924472245359151968965891279762593652230714440438441535261893302557586303629842337117057313613948080719151848440398818789271939119734957732127631807269604616087587030227543069366338536148851729329204802166532899965331963672412187813600035851741295525692155027995203053216047865795633334696164906152257859826736083482516988869515761294433611898478653156603349239773081905545067448657017947704527935179448774495472912081334086418723813258382187354713502666970972159813358099646719620216340093323677871839578208525303352002286452528842889380171623925059635341520883078405560962920000924560898832035042796576644595437800966100814786939454738797474058783805973762325122865171918000748244437930672960580002431194384336165385821292921759091854547195890247907671382345399512310870154814451810125754318778909677943914187679148753248240416527247559981625864932691523279114536911853219334359624088567523810774688210000604871951687467149240923861344682273002098786058671660933267614816303800307125114722987807429329200605169274624813573046698654405313159563806944281177760856268628080419658907828067114898475432537146973510725930427775940762394083768481826884640865670091597211834806783827548747283736066216392542067327896963272247904287470784370936984770228548315916184702434454019746265244188838422001009249446773963192067660574843719426408394746944426525868138868947990452125040166124255083150920564073031512808088486913438499732217023817016439178054464104178469592545762240504375333631640262938308314998551804363044593604986505452212868767758360556502288195104398778926941373275229415456834142567388510520604601701316150706149794865818564168596141506078538511828318569793256784974474684639068584729219810329462726031172051870634734880572104022920344640244829455489098491013170899816294320583368636559137478743199062911630011839799002056883872143547828280311743345371056558001795131062834501420339453358980401740872051943783152788968345495537813886339931149020129858692718017134824040685735854222277719283929261894141457583315604144782863015742265862136542038348770163149323586094955429423665680822075442523383538312349156548803746234594111639388269416842282682068444278292299846481331146001244034704021321697215990391946704302852891875493164762219805463142778746810625723985386658818955308748964507684990087896421284465111652055800869495222595560457380828159442584865089991456955969730448066552555412500345766541683804045924371073313745947596312245519758367733023239674078199248671819086486336088087626006925281298671075889351488223286594334710574790643230357550180782648215357267641760483888961836480761943170636293596668590693368543871754891265034294299087663911474493638514160394869088800475915548198380910028588016872589538689107212107965115030059433557628752440377026307692202280303738865834146002764052085390780937899748162243662511721379440924410051566921344214200063725215298966496835728343767415061015942656521881508241079776186030051498316679467977095613483961752574893059635401433437512393943220133452528005377931968372351937288823685409531753777545680208943687385047101301658153357968667052290486676994719044946591960411859651263293527662956066930267566559950040428999731296637379701633683593468817199606695379524643058666378696185270425139974275667347897328035455992419195144291404818494485442478772863195646783818279128090280011866581297419515296725067377308342246014979028998828713150302562944464987730540605045325325390228813973637315222480424308321041770805038019965988878415826616669429845328089873668391440078586175655948882683027626300823693834541824263728873099675490564517085413019122332912352511462263357104081548891060835000632620761539836721614057207013081002048053553429940261867123181789911037226457906703186429923479634451873915877225291029401082842812228312825140735759112688569066286644820072086680235045994589296376386411042874878155996393900194149238390879015182332128192918010314768128942320852038920612202101855757294719019938897851308952460759223255851081212839639072098202889965848680693441753582358600474791929411284389925240294279845866814557594252106521193172082303289844959414131490709236527230229769129422239437726686642147837723670304777825704170486300772602039116694210465333850794054142619148907275218477657630852021551374221151927404810318916217129055000804173579195189119145971718480078127520313622928120204026345142152520679625843705364604148678668448998161386966391217441154832634059330616678350948562806842276405788122753593141807256613121538933490353925739476229513632073722002692478631815659534760352245533912128124918670447629957899296671862038040315195418052021076826922564671769821576509605317762059759951200902016340611420184195822422014366524323518003596049652933211228752165739998371945297206485166585868408553768809487368134119818641833583167984933133915045253486358826158399496517866453620595437550236160174269129821551590832580006203018725376576618732865000256732482043132866552518485455538876331478186405473976987005314364674793672157838014009343438317145794945035986093125731300922904575421672391536586610706872136674576991208371721369106843197662411972320385193799080115941610434370773994538599838885983887885412179217530577676377396900844703261184030586110721805874088612074357744511367301398279736678381224686676898046610796010178783020737898244253064627475584159628116362737603591951055940836055357857355357760341942356690192390410500516888104228815114402925413286311033662745292453262958727024329678711573944931063224250326963591858151159483217204653043586880804932062794138135623041892738785812714505127062937243069776296466984954677156784269094621254626026349621299118844957130517740209378107977811353714840350315281993337738259581818278708552035477973511311243167960591375495121196296806755898971961790621071107356914988800028581234719936683587471577252142102630519800045614688609998517058602294213291866467215949706074947840181617087492810798143409517091944729072134859077384920365759525867901471299671456889209051276789105700857353900859992688297648799674843686910316812593971034784430261554712218323992302749793306816711398944319668241121926479460728182860577618317030122162760506584954378081169209119855363591061052360793255157261131269112947463122172266884600579367856425101351981968985880926577646793799234220271657844571679537842179078911984344995283594686045626415139991801433458246231505057327128074159218610982230218481635205264768254533709311581085671982652403297716862380957328604478190392375956451888821267788786284236865246801714849144612154758300028102330260725469856601981324407815916522927496603319414101758369597214762615839678275449474613304583871974997829673714305075558982579083837817450756030633478751018666222195071144280679732775361183513428864834365044407879978913729773613502837318783542633882754890662320328538050938719594649619344443054219210248143029856177073427914997208944719875859814325756934128321358003436457267425656226301949752642078141794012292856578506826379501488648787628783281285115169673198381271336047200415656211842608856052184386291292245317204012485140699902998325873793956073098633064827739118897103957518903232070534916690226696016856463448278392818076756163661462602595963423973061830058536923575608818929584921556876223800874816156449066031345790564069312608254781119995895832006157446303469759186389149242699735444653698209639176217684273136986402196895433528444672784428756378620298232188777015035059008683427717339444233608083654624220224129938144462652608582091396695543716164915888729107144505002970975855670163618538883223382567700457640572433956065316161116082552100550138607567142903062606254141272814255161429926215598506505920324892111737427590603169899299983235395528207377809789750626514639219901568484753056841825536551735943823785944056856409442654029838516788612032386534282098493693423005785239822727630651262754933374217660786156408751190777618616672929672873757447052091926397969886192876389076283673547084559835796784777668747961271080539671072374357692516546960979282027017589692811531726813219751593599316590107500252014079459692630989899168465469272215677028821411225414108143572950904779792238364315199268830272021879409174941250637471661052474509300400816213049128034963197678389225581700705750341741289804418547507893517805636405884706214252867023455588494729881088734720946105606734506291379971706671216712003718556061664348669089307781397146616024978836031466189338307378662440573668582715659646378564806894416776586868790903174936122942176664835041969067586156117460373634454775541425489073547783452404522293163596035573053887260972375637124788928394194466676945647796912838603589817365884192567224186929372071420339678942048154284902019577758957376707567849738559904357683403744740319154448152132358385733327604003505495828639470104457516991953791403633966632884294078344485236542932850976563178557653845563460168270579438450358901093049647147997067858430519177511332165334455286263814804526763692666862146011603153144024545479075302099000238139825870424445999552100258761844174446263403478109660614862066532806848237404499023186878934693449110265476830292068237183151840173985022011489201140155299258700558808129805639497192644763235727633958158097808272237094399204678263845547977316495825763694984011810054453506724591032128368419042552129147312081131646649933569615753324772166357938778780042055367892223793813147565066583970212294345222368881389376573766163812423824934258952460027743373822076495715194803078613057815263798118224007557878585478139099705784229631232278371923576567116831538281428587355056970493992910432141063182461363118988825529023250533697138357095102756013480464404655430683613708007761645482236002621067985905743667790183126943684510352279266314415835064530179299324493872632020193874704531597027312886567540862485885886634948782845296829343834380246270954372443327323555770453329935649090034729241471089593243204049350124056427362205139882348266066669865910993236506756153003599057170478020523138215065060643277618533700346445375673150970748142951787970193755005185661977101715532723971659842707605982299920080399061177095541903220826431777939919783615332987080531438569383670996205640835843994118658217623196435737720982374629969912839395540405118620455187474816961397356060378388283891938300878705644043290141535120693230981606554684144463564676083933042394973787845263788882722210681238745185371783080867969409737151933725033502463356110429378779463242528189275837006687618202241982704596178488034607527526382721806970926631252204745724432930171975069164016293589892864352010004447137295933303842530974384807411840511755060017516103179101087976990092884042352675142366956641703627451568031366839140499952858110081922644435258028834054913800867861901432747675308611982195705829977704915452503186585360249672919854508896264220818142596947189109822946770451189722644351009706463446240286300308212383442486458824800134680366821396567369065799422613729253985398539466739434951510304417727220937372269629316171620866105748736919272508312458032678487166326580443409623030963519933233687356469641635197050037314530646189043143774533196544924763554575348995266104306091599653576706390825930256467797443642584194051235934331970743551173249179395204627699530047536782500933621260556707122621844814756621817333060251142114380333394190778454449096335757580972379701582989673154231043287267363850206939330734315778559520669053446252295517703677278411075052474179488474297347474065540910477595291244718819757963090500608094487096581119612822892036062622946672790538275209048954491416430386730262827503638738087537964350061547691975850464566434687902761948736481796413331553915037050194622249524517146740632404377963539979226260206225086144446613039417975121979844661144879791613189652087487356116824669577279402225284094321709571467343978436490578341560685267673896186404773008575567220981322171067784086050554819393712183492798670977971563914105267183371396675992727339547073732637446245296121803737341929190362152554388879955293771985620673356812096453235531712452743929020371769061503888088910929441580085936935469303915706705695460673318385644847702052385323275553151223988369870019812614746220768394280840421042828920283643792123585338838632417695700668411496325894185361080029845019716571030529514326380381853471555999765475490676768181051016868928114256508504179369254647283264735402875524621347907646455301728412125609919581774406319437351217220321108620607206172975707345322938731806273786175042838118331154266768469079548847385317581536207268344570394947431000730763352196163332398083541712363025479751037989048108910746059270737279596176427625729630631883939883031738151665739889485996864118004298116687626729204686206091524334484596059755075535947803537710055386353759767713428785195810132093122919584587493531063216521245497953607033245140712881020498692158568810002427566578351617966402566671446054286362464908694100636204410706426884007399515821612315914310280736027159779328250301773478777471097458330518561857680204505448365911844290862724815532266154327035141942741718661943672656746910244230993315151102614934371289685910743774217816170645204208114469483811046618441166528015686327928504040683105384163332904621551956686643201521809953721741045048202152266979765291015904816926049811116278766737767158313567431748486571967964445428415482252467043760785955179564356846147634361067063690598068092603959298081838463984245361353464900895238045420800899308064167329107760339532454448431703988098095027788905133599955164731202886955561781812515175999150271744396538233349611638350904468257441878028806437641937586181423515429248941567326962407005736848294356709633877416797828128704279701552512090805448044443177686912601163451967105676122340147108568731692590746424433100552790534474659338210709013402891335633928085128612878772648823811804359587303809789261467614190654923641020035466420726976609577964391680549462185672064542088224546069271318764173355890951206591523103146432666982255757248415816997049583210174001638935094292922682602954900206618583540910018892196413739199508524022340103466311188812542938043157430282180883940331488228608022371254990672938012993000547091620300817022153178245868820628720870171412022000349780960384028721390903374971728374560138273689007480646846101959285680665794282369583464706905051660083717911489765348409360580668350416235219257957090434429845007082745931727377589034990663326044318256391692596737807323744297253413634174934398309299344172507710864285766062441680921094037507573726727284070192159063861574111205671495241753510449217518556789763789004180518899726872404075440206936377066064086639781818941974627652979725884142289841806696681953733965561304961532511266559342308457311602921711089559255159775401189759914302789506762569713459369590305895996256240404115238401456969450183670118069855203725889252768465160860371920428251852559467087921136086760633547669747558269537609991020764889706864049732472598940983529448353152812049962718609518536070347834487947947430448668245160574702107143101773354861048765913882558156078244671278160376320204024287602057061785501689217631638826773120733518683123006054634099884120464691492490963990961104639347185883626748861387211069816466109186335448221091930881500837962631951681025070772184892071402139089355647353496121228985973920749572442716176209925841200506990763843897494113093373101361721714039971962513863833283881795235182590524537942983891046116981190275602519308121341003113438053595438918567757405152932204372135921269882873687944755470350848268802842472751581036757523137897849986806067612512056261453947091295770800169029402055903093640412365455507954227180197470994196597318893262074237480024052657401832683883655340459344512465674658766110021682081500561844557452441184208593572592683072448847343640995941798424157589776869916718415895490432168801075517623210503368059944926080643827062768717607283563802574617343055252107614000048315986436926367335323908273087466589755380031585137333002903105494625042409192488674545027920028842615150303442106729535997878396957478820819089596284503410459603535594141303680657075747632553722297812665879448481859005190363730740859366067565287115520767908743450074123022571208446717242279594236211475154347087826303828317053427747802836168564391740933720969188267610628713189652984040703278388201346243686563051862010257391795673227034617983930858321179590987314700512060916404158054673942845607437891750881414516151525861562944575998679160916885215649153881943892139603624297793463590011038579554838472545530466742561164725184125474710214064405384046403776275979865350629486610030608356534177956625761496632488854076927764620972807917762233103084877217289604994926467734984305826420577006065611980545558250314343769420286950973983131361850602585608981471952417065611995427063033509370000906942748232397747181256280746260010866802788997045734724341149133477201136034731002907903334381497880768387171215097452137882289510809824655527634285604612170356594277704441085787148649606400504414054193403421969470888849726832523098027000968852930755091697862159256312906277532275033302496310373653047223410440655108834588280333600752164210751143322936010776449224441548467365814464604152111109670919756637102628686279284314735783751061067214127003917226222838182956832653013331685458108986180653867827046113150896649411093908955290282961666537982311584330214189499657269796843944464856306133116252513197552671943568619412055417849476431550257832669167633004826867295907083732247801900233121750642064045482920239625661644271177687255554152443265665608095285604079308805588796497430944373492661293659623361620648668750960898772456031209282577657379346386020869559881211567409695477245123744239944123323096729942593768385935619411167855408231487165869804453436244002069723884204834842543244686007701378903226634769169010298638155217323055306977421388513656996835520596071510253559104453678688718777115437044919096877301447765949344212699342089927088912685539973278011406136806229211280446426094553429931974834737519624954733644182398351114604151937677739861724137806272403574203385612212417309128375239108341975511630069439146386612960811583493753691313949403082048295716051831798838831522227004317078548134295414849910386334024691123591708572269716903716150888275281871660826052864465422425415394695427097516904264435454932528645067358885042123001876750772506842311150538972558123055894068017639788089287418883960299699535760503547191946450826266296882178165269480988462966935608865178293629945983553042482439122857482639381660424991993843321503396523183530126725358455236724004355793630800061204976118179290050430707925824927923563939742374201983479496319361943026375896481544025998178089591067299102485355054463990694862230097801299214257799812580400785226896143015483574940547456753447273427280780660447591822431744190421711097952576653893495350070737647877699664328813045331233191076692390554098722811088836749726272861024467906374280865089072384109596884225602027249381443403155316518435355158367010898180892918821325962131466907617096851511340190821422758800014119863930833614522476656322078638800016859289798467998414026109485436660832968765089262037644734690633758833684675913613138949667670873815290049139719418091680702388257501342621066803520131316039524773916542080118235507278652271607260579065575906044160919868271433297645408965238453267662253245980288799474555522100452818426644804632858385238355528694470377735853307665378532432763244468700039530151169263948013381578395589654344701362164852488431440740940974600395021268650213633570193039445860972726810346340755900475054288594827543527516478613625826983587655889265535379909367489812119883358401140055802671836832990292527786294221194180836193444807819940511415100214423050892460832870479721434578946835342839785712158175319723488700209224705200335075968484727214705783314972931072307243074284616713833159873744728311680328971288545831740638797632671253414607182564778706867269006791922167769443813162720304706497552290130859237791319461944037808664863093098023417889828330019363414081094985130617470031234627802902339141296313886193256828688952798575200211036204189906440377206272819946504383547442206062616997259575895583907138312878647129963451877511727775720631498474712577304143830280940909246838412605727406600390362460127276662361688543591036545349837249738167154001941815908900554353372161784805191644288388191115991400675968844356354516895333891461661924917287540436406617053059516484798620592455478109416459668929407337438566746611810107588211007175246857504067594990668046882126854527504148620010432176531746801592772078464033630256750011978223698559768333506205153469870962169080107286444020117939482633702406293894965346074813862307121874697293314771387104551872523885385789492622375166891195348619835106660791329186818005129156793220440230344985382764508172727930137160723180892720599074130500181425585688844736977867456057072643521776473785437624131277000962377578031679562686096600458803504301989768097198862705716194850392507616509657560454437353891755177640118257195663348583764311419278995007144371540313679647460341346173115062266320749139344089233253701389008518920698208076448270798144715538725337719697254394422336080953521014566679493223563496936671326493919147037773560630520504207196117790497342750798530111738747692902042158635174416633349532878288963409081498242920472266143615388202020563878636120609459774549481156134214426184422990596737059681143605952139213269467507859151341344410059088968516284310272714963321924779873838192070402125565040579941441679716163227259886635374893419160117140429473251274418952426457988241752781440034483916662712235887114654883687396261772295330523556860377852475243404400866866758417036709456910200917374939191145412572999777826299183922422003183713560825715966260692819559155305738032805985361334020049002999603560551019483498952060015173159106950716638685746052582954175211523178872710767869243416002878982528392188986053700752951941882669492447280379832827234205087627228388742562514335945805672134831315289671395694120870637397509417177540617442933008063470360514340594793092877635510438306986597558760134351463042791691914154161906541487808119904804425011430923252964763076896102678958181702977064576829527972074489474449310067627763913631900338145520206719275170468186872368308775585703384162582773005318965415035222529144605414890607884859994044901321946639012309452867678630164578982735220453800510193353408845423149288393878237384591103732977647560305851273782248967189047741621257968339807139284068628890452690537310907426079806426753358563554435483771088400636613665547387522692320161851994824048567393539632056366892241650877331931056371834308619970806361468357496455831753568321799371793769444264624998441633191679677478386550439666952123467082656086363525207208286206956457538872133802532033765451145078297550599293231164116469567191755612555263524658186695061037227353812784706747931289298347112343325367657969179259251522687175614237866838964303911997641560637501837841755450478472434868813947933079604246388949649403574614041067053520041151782479581768273817952076463508212908375569428352767589603787722903590287151047706790723191084115985195870129412293227108040687406159045239452966150207113678033432642669773161907871176520077683212623074971519048024456168993940753837233014935187228280336039947627506664602442290252100285332692985350063077639434225959280648935387460918810058452275457813971582287000955307557724030611301506973093675201011676994322213969814364801895325898336260913069138373828389880556507107851507186293383879242926226566807834279613143073708311299250688584174551995325322501498918018587614852302352521692856769549526772471091516234578288240701953068688381889458566880693278257402463844678369434062678402845027117614658188514882877123935882409964316561558662615098562865447168867102473376002426241716907611459002770868151611012390768251185731382069145176909655961599818301624968265960874987745977460984476913840927669907687991316290414476365435097404627865280350052923539938882833973275214446906761543543731003987487149240851275186209183501662926114806239722615338366220915063797278506683813351087795842581007326097224727824117696401645655822292720544469831563524438814566051710411011210350291744309397678700051863613091527526860557075751617940847713372066350704994580151489694456221979877496296693942341295439442016929265041020820753302315140967988874965559811634041045528627180344322318309254002633952646806681577359409016425115417083721858974875876384287822538350481011326783885969203465045145692459017369700256977765940844551150792954381018076248174408527051596126731764774934023164451301617295245870960905593981423533245271109016313812648073433888969536218428501357460573411644745126862302197907288173628240507743614708311724455029597226128252077625149937192274325244629874212944182478884356121106356911051765708214748130139398362255629003583407306037910194849623540217162240700164867571776467827091226823341831658783608787976841235621578792739082813840785285758788118266368636472499503272178841149651308811441517594949805089513717043246233321940481782491133813947643943122978863098031354594873459212187902208963950502007484495819485644829097025727980900886529436239714825183901547061322610104086034609735491328510129048978433099292638544963108876978618754804502705682208789075430748942043079307525360854314053977240892695775585585156538168250655868479039247323609249954192792080371704991571974099204860928623810492726197446625985396049827432113462443649629654411145047512697715605789734791924427594702559559282595923513407089107096604696476528118457878024608921141155417047786965649765019293820501649515260818345646323019347313459792948366225784546601132284247910584856194492837192150967876306240839108216242985021493974974530788467356688579758517336603964583206820362779342133399094860003229464203204674449685919328884433825648205793028568986114799480032199087107617983086732980666122359775129464675616269138510786176543968548137150747734429856846787290834048847144426569727569052027326792381257860758390063467711077204737492365563522331847186319006229836837052356929117853976488754530912305986702812351356292295516631781790762200775030544407177213872683363741849867746447477857361113882187563782647511962547361801689065886195852381749834186442700414016336928426576904652994333678913172807428413222012772306190933920679841411759620129598127657797290338469733555270453676165477882435106055008712573315617244044333370766621121414012911294947346507086432213533959893226192346702575115626537411344069484053825783844423173092747040936997401756409601007704027483421194736442243024888930957637503841298157078522448101424119228268651654070789478343293089970471145502281557044341156462879396569887751844467744680218738459825747424423863755072479913669649619891748224915692246676456670614825120766903748702553796725129481489216318785608353096380766049488823195956283013134976718649460383127827904153103270078537018028647577997532566859543880138464535307952493079690113053549349805173120543449427727486983438227819502505388815519823467826043443223239790426793830236637863901340261357504269828330858720148781493063601074407020073826838669080825073901542538605450011287660391404292902493386903633368284074576183259269786589621589021887605949501659898678501329070622501169758353791124971739349803970936254168538934465730202439640657207233383022944185479256756674878611454305097807393092625814106232858158370967335304292420481817617184552760774150343911601496165984894478842076457491382094908078488533943580621464087752066695708499992936044430212792114285208979237757231211661084429299207371361779577668490882468158874450891599601813919383666579329337198274344181528050137197398899685410403768589993199041419731148771041169006580151957924954414280340344091916062582612935904675205063674162987518900853240461708007590931207007377400386701620115920698958393428550352921493611612667066776308397997631146120124994754684748289913035617995638393683802820908891287636639104361297119991612969230126451206110562095244795079060834295285864681452375002552408851152420044089130970134412348054628984209673299555122652737793004702241287450065834749324043003846009954865499378967657135161144976628544490632776719446837992158789960790678692947381728041473490119406536013719069423024138131543457564766207294466768940956384113951230773477832547639399607629765453068674988306584121410697941589146312316110040527961100575841255736920554891510477279530004148968351506806354049175710638768280524364120957351008376863472140462195511471039224302242278515960417228354780912891825548224201360986080329110682940193802201701491189215055333726670078672702513012968105793162751638557548273252656721048711344835353936008404732796777825693227484945662207468399200687241788520182916974537409159053637526368886550254814695026342010519792902662762488634994241215696628305325634320649289407509830423398610294575575816349112701392523788495439382223914623074092391498765301743099909820966502163617682864469188102211569366685055806269068179469788165655174366430098657631254630964567688024775557481120092021145649467845448693147484921671096616748852290176637578587625124935638050271125018753085066886053610623030831133793501494896430994822895859002886552696909974438367219957490282740769143810681496676136728182988877221956169874645418174641877421236063595838195609429556045323636890486018338001766801633228090260490817295188571387621557284776791185596815339922810632763897083890663661489729257247587173532826837748564160305019114917211169667485577966021356615085158595002461485283935665063051629295601881617731767787330435582425513334145767701544532257493272361949395279611902498068539149962422400515950118764047963398737011999113302453353486198182293353413798248148742869359982082786876291847449751148852655789502222380538172602969461695757043002376090351362415229715221599913328874834113530737779018513099359551515587424233224669610875764297700691280363815187277856052181145314577790514426762438112219642844826919936514134813760002040776301490941435312734899668164543119950993547753440586763241481009077924191056235768704363911075067634636631791984655921497512291566164678950148960571676208745150944735207161513320211619798342538779240050516507294283980374306077462016672773180715331709239206772309534212330136838942746665640402176230569491242984850560117532388854209798392799866085292669318242423564880082851078744087152826728703894747798822689291352066989022644992241531745206031673249199558805193154616626137677305690990718612619765263398726146917856792632755379961843356693838819108682677731263898808860502878424167107489534635053299225223575237062828230348490497322091815119822423871550867333756267961001664646041224066044304906144908813723916114923219986377038527140623942265086399819329649517992215927564849828897813328558430666997489005582042789350265459814277839475586737491996918183682874850537881904822102152649555487178060927472130397463613195817966152479888856026610103936605647234221262890610262885254583017298866708138493516413088398099340526927910538054335631884670192253330234776328440029850318066970900634399340844081951839199943276459366922691536694991827446984039625500905275213415069239795544189811428492014851218923214313601661733213432636093059055724377155015487962754106228648769380246544288891987299354759202977308960931883634942939183645778706990172211681182861380450289299050146609108483493466942354855121016007962711311741969460410935911291241304068324394511048492915510012857665749866331332449520127075707115573372562838263949889104029734673574517195656485683663215640748603813315679545842865442275727213038769555693456541441311710804234059584499752751978007019567185366530847926552023882742861549161521527766641238749012370592457561971674024710210197148243445358586802086028983610884261762106228550256718712165228140292829627378536271969859368593968110837274570415848579905815619549772290551117626308259756244778870365218888747354371388210085573146765863484939394372941196022086823252412288837285935451576164759916888064588110858584360224722189806970239435411735442269698870126029549150190039611205902470932087527357349600695057659821013583210931717437332921764667567859002149800085545809932437884317620218672435803738806148333745931781196174494945918205383799631819038460942119912686075103386481109141855897590865986263431346919797859396449374828877843830504611281639443064875732993585862953732788506516941402276437228327242153161613157232087473810263189231276778671975598759404872595202806652158115371238772082108509927995625650039650105854827974427170134987831326651553909266688759960327298465069572639208194673957684068044938189129685838970409338375058369136904585662148079509619238246703807847490405349648651024623928288834376477590579985898352200803160628045599312622871291027277990934081546767470764850316016066757687991494160957099109641180597385607609273348453670703287846616540864959423133681280489045284678170606184224730146901034199141632319034247475489559947526979848240155747191383448202121625104262436145496502546977860003248750519000720179801853784078890448885508209926399449636687660430676714137070801884555800633772999907082595763009203596211128048125941380818202864144486325348234228141294306742821020510579930558479274319271110648160065672540001037792702133983614187863534971516280092935480772056683857635707622591811550418214620151499214508900237302422241125139544394126998499974527678419855028718908735715745844014546284139477912095876895381951184452409766218161221651334383722134020005318770376760381099251892903970450775266395818841595120332786693885420122451485557587780245909937895778366528414750228792113575608206665692327657474691824567152124559338263010488114520590106783866876349967085475376682796455630301546120849120323068409601222374506232602805667602157925897378032325701694459860115424548575784819199044422327065514512007299711244225281237682188753351152681811277843959261454063768776080369394296201076845334268469534633345899351726898555176492480198088392053168303644979516069017287568783351285261072201728097310382218063363747805257375593914636307997459002096113816567192321652003074196225300733635495815931262310841293973816079917659627334134026982469708697270348257144315948921616173930247848859717981150608229170872168722685949803020688046704514429962307362610741193818867707528710560397028852153554797452514740761214661131328893587496258859050752428671531419472328412741876556217455401192342625713947318683805731104808467993694282715029386093644680177332424493205875799362750426875006478449566324613150966061110745924436247489484087973851998951979694590932083383175579538997758977047696636902751793539598516438525312795231868153544397927188940760280832802077358955089223810541222054932513819262413941937415286575114338154737768757327648288853860051927763436863510227816901317052227402865438145453612247205200865846443981422293883060750857378564437444578076289872157926762431223975045520934706223836317179273221902440886803302226329173866508896885780877883164699023064303194612597464990624275754772486556432874992786964827470842141543532868364408307929783063695889982956665316941816702306878772174288203343762203139068817189217315001778359577192883983365927286113205227491805525156095714346514208398515875095308624887425561132616755557666345147281584003428580666846047267149673190804796408343593624876974367699848746477990404575331476112622380955824092914896045531416973842986738870033612382230445078966178396620830542740342435466623494011717016024496758945440188132907443049755882075109850272173472462498227467652951241703773096055977761970056191551633942195212979117324674643670176995723325794114916950070433421313380626480153829493595414097046169666008892453422865315670157884305125236068440079188196291610391508531981292203932773741388493175133759947338871277914073061592357238565168241544478372398646895060281425244172157291553120668572881453925775593873804747399793906406493341992362050700073173266975885648702954630839453139009714238588580523512033040522348800023327513293160481598345708591864775200025646628232252189195356869824228167214822992417110568122585954967161349685525416807070497380319016869973454853637650055678091070075756873168475763411252145527862076638048733057970255133243326694600081663118658714192770022764765758081361558334417899191426874546935244031990839874082095190622827262523061198668253877666214630821396014027980452174536616530603120587026973422573803173602384669171443784960302862684695304670245002189394882523793127251990545532995677139591035298117193009316736643555739201031875893281199956608610075461153170410797258051228818384064982728038702166766070406717843810891398547845458013196989094717448038189018296452804795431123411654462027038347581285875698091800921744299692318683270187098140809446194948658906010656777193676347729041653850757991553005482894581951799807236934295650070085711707616920396343100970345219781160175202616000315470719456685076830376928165382612981261804577047620796014594308425096758804695826285069110252958083054159941075355270767186690970264633434014662544079058730998970697500266302326343198676663149577319748324929639072272857463024446747121687835837779452249988118933508929588255055960328789729079779595888213298705429140520589927470449753299092889500078291015651689676890598809247381434005917192917389868009600651325041273420312053194913977374957786714515941277290113951016162692008562776422414644621617667545995827325748663419563419644570482286656668950369657492718499827594104790037280719585793246850557870188063533635692100225826952989095751666718838920223576021125098746211003358540237094383439716679015735282048616724403449153389473085477539541253369594060624929370918753425743567140287794648065760112238183608435668147599639117784963698301098442604150647753089879389193226611059401336409653955707880674200518426075866701197802528269006156501905718232713873181203145338708417419491006033232734850902394946201206450275249489942713534293693361990703854579855336299725959491399274106013298069001614665217136642156004306734578627100194991299259238542051477338629803838392012416715570115444851463247542177437494616529520759533096391513787545705456435214290974296469907318878387343403790847354361221863616429624119839839207884897912546798169321832834538506397120134588656223084994421249975380069479479304680891425107239345399325319424551200685503571363033045230884413547590472409693214738474982190055495423506550787975276556743872671153040235107014770574166779365679933673464619831070058381359134337103352505479898239825670661752615948516993175745841362500204008151041223497852040558532054611335267045534926635765414728471044195721964592511290362983013040153586021173320376807657737601478216043163362465345537894670805140210056630032327505773721455706701092488322128858425773798467528773878168807181499883792008378992158639132595296858555889377710728448938368402423703032194108452918434812091588105129962573971954477763378090258614454439213322000524830682755444821164613508753616560001171759135923072593775683850396043135760497461516741627820907421377248041962810043984541512776504209166607363663416870799285817502738861845464397526572615008860736256871749197161826152107862808224508289695426432249484198473506279987287755481524658954241207163076041152684534012351527338694924051074463137342084246277566865409518528657498025913902812311535564488205454244700262726172729767164413624299255127303944724615687661123246163498164258727701885500032189350772758703607633048675923402997199321743359279870208658053360638321411864076821649763294973311646687030357410109324431159511798415176248551926219221236842606670792988925729188773624404956320593102118748041274330596775987494672297265908895843476404929035777913717622629791036581690167128501164698546684060147464617162401808943845207936197848612716790213855766796428998696565953011471252719331090558528401114649720063237057150599628629909532797182620642847769705086169491167549279210740083309736670235207395597019733089376945896159009025341228857834383065387486005689855142173877520447195992909141157376745540238828166378651857740303863506466750669083364721935614530169248830472773760758883468064996708732535999281409748928494110559359407580061687622097436621148135535621670311019349778501438164131163797433006459578978974691808986770573511166413974114936283414091791554608341412647575625379586739747838306501667384321041419653853850919566655234654233644539447988280858059761420394291306657956822423105345823480147762244651964809203505725465124622764299371557760895957904178420409614269828894914573141679383929914981447405215382576321079029024725547115177167989621718271901900529637050277166991418755553419630116319527610950635693389361486938125140885498838063180289616378456947171106135165088332105830424684086483375729450394042675743427589389205450923974101522967300481813529702017283761543059795012871144065281883231273310658978572043004925682299902415834516819128201161031499931976693591049946920260623262582812321513172748658649733823296997965154634637216711486660410611871521852227730852869689753947960079815493248802563952421745849669676188406042453493008001094721803007716128703927335666147356306450620489140304718291202369185555928029703923934812219016736083906088039157200647256327210411087486310241866168937479745511494812376750730212355311536972287893780462391393123387864314162758824083323026810316174026548203069352570669426636500202140393188404671952305202578591112588342175967117521857966865703667778318469634802831103628883034151933988411443600490167319867959137146724280597892589674537202286007154210181098915307540327664664469393061171222049316993113902427032334097932473607965598764771658826050201600360959653094856529065402903601624200810344849854929906299039353762267493401575315879813939611818497787870265979559369559380582888554304725624423884837599818451398450383628767930899933916866436262298594795078842511919777295391854283852291770812090929124382654283008791252588338669790492997854231115498390270775249140199929366815812318501553201176381982638600891845729722141891567088556556352232136792209404869375708252472601570931655374158665727952397637617408994958854749807774166815123112569010282263418513021366754477106534736685370399581594581355828263074703277950453175016038090793548155140625093022020858644886772035379756735862388656219724017018564487824887050697721336531247890491623751864532629062982737110361099819161764841406503179603852302705863907435910551203353615205123715418700874853592760823131147670621925531459436420815931621213502812662684267534035949367334898741382210341603567499899882237658561149983861090183239351586378029755300422859078311982742647564704379065004761971645116161012557381672145367064111741898145529641911755195841044226418998170353690933238866496001421229043781229380366390672456369896579744032455192709948621357178326811651575932442878029821511329167595999045429404466103324762108593419406577317987844212430963385118342238216296293956224803064452294636505354153240806767812314854439157395963671456448668956612079194716010649174967684523089217356219053271052617220386524009251854354455953502868448917602645093183380119737349162914865371040757748437336782818909522238307835980145842840105235749541546619131867186685460519025026237111462522314177756770293403216905072998609020560239372576099545372607481761183073820451381428239159253830654438821941891387818034949816154629450375198948637444273265433869407356414058544606351726895058375596902068078547664614158050559020392657523831332743460303436057036472922070013684597366802483121374216506607585994618826805384362996577251935538567881108960701505027651299251608833360270385615043163684259013758898998624366413504869105553626351722071221683455504688502311897368212323049137663659142146267762318370696165565197606026663478097348189438441148664237232366508301710074069996186158612813161232646682559736270834162249480517406223568561005019602817070278392418401250947909075206775415352412633513970836802353120277692671712661315136005428057964105239906750788767480307508227956158323322478416974795001722468698683878742821342963711517250585230859498707333974922002925711218166258126461178022399316789132865353108974797320444788934568050506996074316730131524034058926219079025273837688385902507532965713906461467314807275742644357327415004155080927172025179073247307925914190726800395479214242598287403885752379599487352327078648903478432534027628280529770546908703197163427538735474366038238870134689039482617415930920120791591133346633819442781020671714188551225092778280952638805179734124710414147356636322963514304117276365651899902440484282484054023235103617015316350732839924600767375357424716621718013058805397170009464044953498490123278378311437776892140613883794016637334887765585537015038406841505639204133664892122838964898535422060845658703726807493341236880235206106709460785562193297858079424905711703026844253253183530041442431452339463827698253983589022334378049764365906436230253088937518156941283246991067167436393711613255075804357770970699693384567424514499723796334358339193766648995057554713970545245196515718173470335934848895907885614069738897911440898512498689734619710455422772224730240619054400746420352046494963900328540173519515670400317269247789480192425924698670876888647896530340386914700012054694441583364986817462864512946655888320273623886700536539806490571351290913349004132431135762083274422657625142945342187237598723581992684401916350729217631971019463564461560268047662620915074148980729818929308780462102461276108733335489088270025902733593429949841819239086929746018550351465875191381803992858351477171329235911640361691020166546470896373502257058646051876085871909282220605932098507090170401277754491467554236136516192344559092173200036516544740889298246959416611228105606026489684747270085585168263622492802461046712060733885352266354927278080160547442068773547113427502177368158671894499476502876675028424087591613145853149654776580528452855112825005677949960209319848093308882487022650150031285037737324287774621688097685033404765913047408058678088241175064446758024931442758781283871737170591343042139345875445346111958635608559193661763965131491317850631904012523934677710877443399508888067048851292892994134089766933681643910776595821124928688605876686613337647299907574738522497802589216974076697364555062949516518291136513138082089880064624672164029225898147404019746621753667196603122177833857187770399150965796937187134481050098064641656140489280872502938596145196988756532160648590439441792449282120375072386129614667454990721755522330356888497557067116576932075872639761339443196830294498712222074982587259514097634738649447077179204484311204971206688296134049958900592052623245829242656735126979000958233589626646784588313055244073941490694602049618171389783413640488082784725923329698547430396265737338423781326676025083772910200904674380634121164646525168446511150840248265621146605695805017025862690515827048775666902911461401433711876820329128714457746764030530419246988707127870650518433719505704100368963027272353797665196282771178800328884363683416787648828232694419723562982730088570910335028110358842835139067619684513098057255369706995449379295967729540060716457013995314812446169537659373666737233846587124225153969826968118063389651972865803860958118755964289017686415652559489943468424287853184028614325062623255174865717326176898953303869740437046668684248798102463540832013599529735234732232782569287530107881084930660284192204835610111883373117467801238364664389924947814402072583714921521180595211934760185088839903273928261742058941311752523313540773856806609369134223078129972437876115286993313490986582075730876458597914227983895333095454454456550103749003495175015573693060414687272005245843694941041007673328268496256585788736713494629344327895617979899312226158711699699593270763571912749111681420093965518153876938428494873772773462291350519120922387847206897161726063518615800519981776190328310136237298030688138621034075435111229722062553711016600145578475912378072780756441753708689468224707985920553856192835789587659393883011789765467180799202847714737956639177850649908553848946095820152604192696415631460549009452648057804868367559493425579591751943264935238709052536573966715328152382040183976796905924774061959196391079100733649439488416057423734657704486694435185241379516652796402564868402846518649863327020007035564847779147463922770042352272178438281959468269609942165790406678165962409374945119613220171373342034875967976187256181572181991675360622019605746479273802870104827038567921417965072576009183671948504922989471310095270115782799947735679954619637778683387200175990186485029075684136889725802802784397358120024634199985147314451873129264403629134124457542311488796570657366514891227888095654311439637196593587415634722316731680374865130922898439320693761361350196255951586263273735829645188887383498720105833153710340366990355813929574327692163510158753815910656046431950058867864463127310552588512227197017435488450749810777980732840583763048552965480779474458396538208893303340040470056842928797776385804436788524995182414433275193009763856644050312162581568727949861323566533425333153855864147767738284172932478667063390961190995331289156919873109686398998751457264123738640843045380358656054875709370782514963158270161288020187092510008371993264013395996689041267089732369042088543356925098400294042586545057361583896324101471540793476462071333726238391966773359653148307085461932131940974174739858122100352191559630102057859070958121096894643756528042639848356521623957442258325734342106898870594072901820429370969644192752508845432402947776670210332803627399220502746623995800130533638472129058065077161040209974887786906019088311211282358103006742981389282035858153809218179586675860343756634157578053358444879569234841193353580573983358419530670825435682606059116071198457389171924966335471851457500432939607411288952771491465702789675558990585263157480108361159021990978986009597918951352517120673871535684738995508418188218661943242788046875632454057973090453552186024227808290580027946644360087996475747699178428194060613368006090040155836344254976035682942706742973386071501740286697263953086241010187972887394660452969973134196296964636802962234876131870873343343839706210984988663597820674625633842638073450883019839613848156970868068935626845346772139596009300653267524145516580367308178581915118565152722732046539301040864580656458483848297628124991532236476175444291172290537363884299666340880822651998902571739162371442708452022698099947041720186081859238830612739886285008430496954872241376293616875872828205044576057179965477993584986093758619008533626179399210372866477157448033435089127910233713361483014921639489488726193642104295671110157078561245442837360169700325310919815483639689535242463808032445102608294275096633070972735176532816207180477497931887430526725560084074497109827574086593783218069022948020780130699527599751071998613105106729205769917365470496287508276566747860565374365366125948125658868875394807670090364692390449853757054492458234787454567663785019309707550067920474778130945180891764259687740532173049751903156411821244980997900670230664901353581468101380063818285376913266198627645988252240390161008260699807329320309893351944063914567660059312118547776407187083367913140463435365293918795238182597314343343827159697790026517622500254525935035992184310598514595822821982786480918528939687203141450144209044478080292194796315589102543966990043064837612889850560424437127491233686676906747906679473337336537941899107486364647823900302948353132930873992567704726838823329623294252342737651734024142895250066426388790876549325415316404519807583973028293030768078038148631871986358019715613272721031213127712179462142737768669858888210792426931678090422702305640122139874437398472722799322556319232097260488875510494013505082558369394259609170366040582732845197113480433618765860897563010604277969665162955981884211161886232469335942695262584693325383999387993289587481208525027592186153905862726992670399010748322986996859255354659593537233213816142220005934643530364015443965663990929654678439295996274334293820379766434789517258030388053427373560360431160872101032442146210524366086413678566017191363064333123554505926418003077075439388092671288402180845657763090571766622455726558423762802829873404935825148330141718250171651669999184887890198647732907267495512098435588174192480868826724930963663017827408559652843766858527071810259356386042335973907674905229190805908325251074659924212325584702095228625573299222997809227111601206849899904990468960053363773214371580053578833962025797524089031911435462226884471415705676089271875706204397526663275890242094136869470714985803127329679049669205000089883695109912828199587972601985985946519921916748468007445574489932192220430064188815690180300802238112914105655209838477211628765333108670034263413227821633667722140835570735552622740048733727066010244466353697614525248486037331551359225091314733067832432863923967243590811706994307886221278269588160965558438681939159764636321557561619891353565934052263563635830787691391815789651327179937436823347382885213936296634588901376064499080292476269703674590017345915253143624969605410887129422255032678231990881484272327758106791137030122525810559205727533305956436108260884885598809047370771529464147450295244382673348051466819391020109179365067203059753918650109803207592073411249180783738253834984717480504092476744362039654734658997598807371074433164032677995479026094681060854922657493823283303229876475361169465898821718784982229518613467591213683735193019667072425138657769833960521812985461862477504951853777307000974414352007347007249135125656294346579037405273724618595696426319754421870971362887720532453869300229578683006610034270632944723306549944028499479148337086870813697673864491057296604391167547277190588333169592037997277901185275642418107582634951385062322565448559611982884072306898136475690426790794796111538872324618658812056339358003650183772073023122084991642948196778647744810729108223205458999048315200613519465421923870298975079414026512649233270462234850305810078637384938480065083451291265941748514363206285197546854860970056740465101987224322948123878985495485059521900596292639049383889451115726241132264078449948211641287297738362061913827604179493394145734860596232124699563793966560394045475564810871544279019123772453353297171342627439163581142477260329492068121863550297933188849133080407918990431902227530490295759536949070315131139341012974214395342677323757107415048215554698301713822105811361865706844889706973397821829989269561345495853543118252354375064768640658387118639136253467155918773941849511974964803936486945492356711914313033008658238058343957262104526575732308466284012862423506484527201095557765629102861033222440667086358146104390020901672830122176851365875368350057898611239002753067431858243160550648373528643967806437696326056274794033179568260383432453985372932192456837941706634222982918592880333197871437320257362827458352108306561802445892070108843935456139137237005918350746236620398035679052353309245910547325536259097699704201808262747367459602122883318564441550941245219504193753235414091219131501914557442276365650336400191008865498545189392706563968940663127920671429326792410424088512535093417760329660903799171949929917896631023210938423749940649780368469827406672496495875373830654129255611391621534071859469492973779895141196106903052611756604740127936507244181727351494516436834987653731023424741394893569412384227169808195747044171142769564804720440977326504369704692944426203055589059045212418039385389348457138884559979871643849923362346599659876201531290849845954150983089038965410391099312314250187706101518458216543143821069050833566778133558939801065719783135915872660183395997303559390297086655969677979129169924976402099972736445239520647286376390916289758061501284912232808646118807665755983350548530879173017304396695151241405449786213553279133275001874337065885419537511748596855747487654982383866930626934097165937591140521378510460890177534254343651480453994995229093756238208664957524037897212401639679164327981282076492110770805385582081363382779042436874824485560875305954066572141550749992142744977636072053287847067072672725429234612125075596983145802329524242345450543356664466535363606497997629223989523545896758251366615291032861180093125506627459637865012880500360518600681026065688851908035818436149222955034654175739742011752673816899406288247961483985355708876890820035558592611920336712783166532188621746189049968538129064017634867839696705751201169437127473329080643698020708081422520407781085893861263044843762011290031626248119165614733841940187630396894384231233213124244632016562932905668842298538453753036852704155206551865901598677468204564160969808918035013703760369184277380088102842045003112784285946121009772089206974281071447715709319438711714065379259657689782489214277004879541179069872560891887463051148581899275268262643004349449910734938602803466669924995449360891416768864120730937170753892487410779700365573458458473155152354297417001947523371666549231500212798191474838566769321699069591544810387365003055683966924663266365443090740836252703914940195449510942645672382943256908547362847270156443192652356390480029229343491712402740427446595890144463562123476829282815172234610204678754922870327865405572814842933338986726043623456408075102250894548112137359317815474947210204611840004873828826089837362628403711709483160559852168811204294225618460839373170208816696153366640968134456946063272703630848189448778566899179837405029853648858025595945479741274516782806343213541519872747135364297080583714026426548440822675663887853258165352647975346566714725500963503311832111619200988329047994196565658462841499104120373578438210809303045068721186865577449779294959192471044112807383071827764565981708393849624629368996259492098617856400520038535185078206319329029978209349881450957896832861051393383739577902049084638750539706479812146572690346774103089869796089113022167437415558743604064318250993598713030913849375071414111078654765375937883199477160279002644045823020520984593778416154984392394345872863405439221654791686118877111786530279568164499045157726054807069005041291289607819027252280217011399184932821598801666000791283352635587538170840285800754002755591183831024332924214455123859924244124445093740428782491178272537393091849305300059091262549223780496643636489587122575670934378544953095534515905375197220214429897023433148109514541256167970685577117825164171428988036023003163766112943999671251911472242619891099113761617065879296029569303484596730648053593797200863692736642085509471120121525676870932143824308407316829879697437906740042558145003686329239765241424361041433041945815126132089087686596342380451194340113640948311237814321025851397862885383414329350183803517768864730674342961197498852443769709018823729238233551874868723003955003811189615399061566014197283137811291092141298562833331232067167729960809201875359113869144689385716929935174462764634056986844819118542481626920317071223568661222073429616106688482954601015422654784851335393230722670770227592194400540062311276513702633130831386362181012037992440762904654888991495733937487996563846403950550057601533253839879863924568917786765325432639832838007171848126042550519329785916949684744526624962188776041300192286731186891303647573135387848723953698476086577820154812957480175647173583782760202265833086692244309800991690025568019573205288772644869216748306878245098940483801052200230773058839899881657444825537267228713765090447460651650392896092120206015997388533867994507147941782437846504075766007220109584760293263962365912243771627080959503978106188382490101401967917718655110265341051343705273021985574147858719725936030752185467280083744849235133361355645596946337858309729134892860371675579919036400859232486490535920503895599736017785772896111067848557368280442853700168015341145668001045644313723018736242232543806608717868369941435689300842985074915756510346772085572996214466706919863265594249150233083772823118515349893383223988457621670187109484900596852360017798552173240782391448117000012619072829119998562420406179844872575576623985802670485078182079007505147700240573702657870462724964327949076161236661495402888593152989850129080465541098850075141479515911807720395553254361528595747097617182236170319481503362971363729108007866043629346194842257046897421649300697920561241260909981576283471938390052007888963832832505000124937523794998150477727007388948067714837193340677600812110170619709691752084482187283291333521069218292603082032088457013756452421539649761961237932024380363262185148733497614861499395449441634445660469732396812726579447184140802232782106183929502646789538449961263215304906802159506058521152607999150056515644944968163712175334762074713713710239090305338619257369139786084734769657678571746498943805937003093315814038083649373113289909804914344734345532898713581907115292842940292093980212287419610136976387253402240688920923425273360041397583729578354921724536073098864589626350420473121833532350926538874119516000824747808772105955479500906488132017468043295372904743129622652810102263902597258935129848136669147532648950864076783809853162319443443123412335543131064035255923964796798358313944899512675432541581066556908939687946356956634441382058527009263130329327487949059378666242526782091280107872684790861367220425668094889575272649789488889182289111440452883931792129230971957478600232585795410395873363285122664685418838467949846641287629781712786723715743068905896799077209349702837720977427340883764430220134242605535652539465338790510986209017962726179402610372493321345637926265088495913587504830360742053235955180162555802422107260284990532384435370454182505776332248250908640488141478764744318404863427105981579313463805576143533940671439412234009526356340248273110592819207891377177218416133374242673416219961737172416020355205872713933674285031929539891870089237389646198182106363011470491763897309425648710885805975104952869621901807595178448624734757732755515911625994485581503162971378950350833051873865801574311083820367565094979712383082662438302245091496078534954943595514790066303402349507926007443747446649825942790380111910165938239339679274393051650991611894369060564365447042510179827515620510992290513200855170952704134800960341418902615849813442538410927001909219840029236601870039410729517116816575404180331675066458664637728222088600550797036991133799300218810382944148636281255659540842452302663691319058053030212850055991333140709462824520022920847910324892451134537971326161584894277375923653613621300115244896417168500533956706267963024310020492877317977577625578704329861901932947100569961801972757781159763075224030223216496277859580971654840551185260121346308826726527745421770379478374795095653578843588977176498087140144325058198050223265921850547903804293970259440923346628002150915349873888913708695033667616786031040303705669915736463530850225084406935782487173620266082403100616606933013095329438056130217632736188447941880099842599985779896980745253381620604862888489194960764113682478355544776615753502990293155048804568065466559604407803099322682574424958243303599970287755638145262296152242027995128407219052241605808133351026274839473167725920628265716740569366911368849993467167495307924257024849679481620263327599048622782274141110155662524611049082950195840110765943968167425690620323834549194865006157780194226183618656289549938931691433557421014423813405529911834429240735677131886439404467661333441404677847162306844725118509904349618040952371150673134004996914985352143876557894020756912869673241550924072500868625442102910994180246716428405015891690708841434250691284837008601892442905699168719168594436051107085979065453254683972810225190140027324917459217560861302655523806627745329505282950122249947931935114938819373207487456920779871807084024027868130785890097098971789924974256183140181074758827235582818541852559656686536930457479221709971787947807938337149613183362862141837437687339678018535230663543766244255057101170834325064756344443428480192691983578489288848315610895853887391069907956971803105341298488461553829281521161723194334392287162332161861417597303208627073658235958365239020207446719974905643760455856396828184617120623313482227030399217912849891308069702177363960753232813264754262398685594715650625733136130643216905167972530112906426718124193718973033553365383922614851128728673382269707173560449504776737162045815023949594531286200401860062327093867512468141099603006272002096303495704471763735923206518056846196551769034701737653374797773729028512410330178755266889907308923486223262035270723573915538224345627943958679623412870521172512571872366120082642521949265319011392636458253019193942826941708933897384161303949137995054602729257083086493492328049383344835845283083555307892100706500367291699858468881340346266544218560405732555838185963160106242333829594085127308249808324162594570053217133267831695073788806620344171450168684745181595915737882925978597105729126757736522689085068449973774257223392040883541413468990834964053545139546599192825269437596762837107738309641906904185039002341280089951875399116524966344929150932179756790638895069550571293441588776556666805434944480489054724394955632690964848692514889523484938667968063226153691901304305917117926125640599610354918057120502256548871200959193293228634879933253617783649107228639803533795298477966544369959012742783064305853334456475020729288317405452730106555537416555994697326077217775689291927199093852041527442551549721750517391966421361666009130351162362852280913383897793277923369946633895147489716133520156224747053877659768648543249748070578389278574205333737827607882413489065976155967483312591337636616834450037563544476057974440784995789940726032410715881831908533463157489203337256474580941889064645605583836898443334641017086047990755891649783440679501179129079789254403247393675291598774254016824249864360526778423145887426473150714549271087114126717996491456489583848917783525043770753561276160634017527997747840160721121844949833700829391026409896973540535805935207184479030113496048779146391046434157606224960290091720854648081528237289251977569777523701561737498946088622361270684688197771472367778391757995746751932713779816676389920344674891552977106357223993002040730170570547406464170354784290287500181609026583712138140781552861559048269696656477287006633501856822276286609669035292976509086757122259546247229862680633764250560927906367023432319419594953191818953661441197929878095289001041290879127763711154839266605273603803200443880707695114423906445301562814655646209986830632296731140208261687682838039873001279207057711289141570053459221481173394738380853617176481277256898568368463868874116361695384364007478086840732416078935989259289322443439485508805859126695704228192158344225527164336543232033826941412002239695606957845192352708083828644207190371380506236790041018713287538841703621754793547919193352663276921084140720375970727058689169728677331994220593789888410463813603838412413382819031763995015831870719076828771523750159214033791680446439918825626530240530489254233420190618728806909353312748638765993259772358926887328673948380632473231937360841502208945082929437937902106810355500584585677970154098834667123100826528153336532281069309157681552866809383114735640833204348924148828180220865592876189529467126203952487393144993366521871974798721764507821052383586837352265962006554428794353251382511777886555834113697782435844330739913707531673374809430802353048393362437856381264244492279057118958415116050091394827294754657339703029234469341216571917909626802816592163679450536204110035068105853601838585771957006440458017673354240861606729968988953549203591343610734644206975769045359101341258685379128553501866489457978687256720145292906713260733698366878516209875738308053993458896023079157365259530186543505923667784882069256301204853138729252336542215391947909133207562303483293688744453867614725991029044701771482915453907267566349791990194553683003771655807159131260572872790347841110760035781046905870862975475915909109071982695084146739663364084601040000525716395936910618417032922481319299830024949066666794055001954856982277867973938435855267029016166294735067633064768815059467270979048961311568460932915428915896261631927231347997093311348694778384486084895216399139016688699613862083039587124117725299313876543796476675699543100944089476243022135074930517000601645455990457162972218920786944182292179644388991398715190816028278679163726456967576261800415777318486540960510988799988166153601114402760839037821334442720039636667231898743065303614153007197753035228017731237255284482885999268135542538315988438721603129264522025897944085257681409998108535085373135118788537185399413955334143985804035866867871376136483397345629234370202867841260504226455865847377111152400582292689645806223207126541798811943490882286141679721175903843721721995213199398894057609839075670784477171175590795226786037572395780296441575326348976912635459663107753666567545545567377933879429772395353728746720586204872911354022389686631070918157696445877134362571589823279858846997930765433211286773858053690308362889485556212547992671958815103700322981674833930019969666806899534080754130848446391940290561798831138901721841168010898202179078070175634383808579582381508349198585489883404874148303177191688289139292468337714294591030575738461578690585713257804115342355729315564364686515917754728623468834260099687572948194338825548529942160175770380499015187408710978342278355975240777318782265759567562610180993705293799673334233338558453958935199634813010250075639968570886138430953824237507776708708393645365765207792106236985524803895837646727144697296674394919168100676214334730211736118508049805812587325232609685930827731306734704784456151884826517356743735860549893626478962016914416360382365047835089152988968537543877604470170883122410932737471092928125340583062383177825070938538612451325255163925532269354507052499952466833752967313741796355379483901353929728107279335942363645069791289945222910952313310124060832373004398584796398617388306187090750694330241309845275637224150703357565549462281651860421891507846068301846079423442716066184667498717403612261325315801618572863276029460020145183437255499996801767543467775900305888157689363863323512067021122609433134568861146592452528881441497014347675507783314022551337518495142690380531277910408584193102900785558644983229779765082119022493983675592444734160434130679737064376153459128602059063645331741260393039047628504355241390976426875060159154106828540944509652945407374868793548719545398961372177225582898747270152819204266447085230505537294479203166797610486514130690909845361824494969276599090607500213164713875030784042841061025466806872663526280442142190454173029873459482465044451284142078571242624710984284314719090948492522821903933072185991192514940320536011101807280830468393103946230056405113772990002874660588448455421976764235364404471748379273642893495507120714742768799249544739470846676988413704911550925687178220915971449537738448788274482532105124417238590912000954952284671482876592881052418663971383147315642989888859136347931591221929143815487690613085123000177684662339185893901129082723817855188963216694695169156681798716779709965787856634481349554733772077661038046703127838952930271367064306355133826941184856573312973324294778008037563288913788431377187529694958729207047448447948694619178415845278660170420311062245470837060121314787076416426426207582632406196807866704844464456049048827789108164735297012123727230957635905920417729351283611382329528975297893932681013727484849171744913633576464407465756710565431814754464445566602504079299640898666118015289786811095873226100192982925110183715150018156098144082911738960384896008768954215752283916078879760068881114419043795953627061593028827555955751165266657754599399948341642653727774455132483261547516291415231421578252941495052631770724828268600919475290075193731196816077032883398078114083300466666715235718738800715294526520286280048065636308982235080283894769947271354005414874304368792954625698607155581122005519220251762084938502904180137975439750035386662814361492268819366248420645712862320021784503688943957393060246358395560470378380021375530273645550122235977887543874785986394577626987857919757697813421157762647722247003700980073940583571109263442014683258190411997850332295051649650737828753827112914863380817508719768503306130873930895708157574254830989004628568530363285426193221050703549453969642786002609444271980296021037694579613950856434470371186966378246630256791115953065152405911979703465027376144352600428250068737153751323143506708742225896601818853728721292701549499662850459695717012128445762475081463349662158644845218728434107331178459426368143751220052904988828259798392168939074131196156021162778023259457629157924929358144483907474032884468144185962390933731663997492176792043079938990740483540829714962480429929999650986356633739570030543236893240055427693230235717493561974203316426106305370561753416863442356142989020476765065718646454238817746324418414074668747410304495220383644846108299807644512746687660032322290827039978793977299805528641345068712212499410704163437885851696730046029385363491409903530397012661852305883375758806667583913916810949303499120396896235169068048520673480634089122630184408475546357679044269142032784431800194033808972164570332853948149391469494660560736545378440993496716211033530865463403730237253014057454832034352532885627631098934580516742410075124894194245173292251925461499358001222815920505974023681865060458815953633743805022924288690814726414244179605050419126140627054508973273519002877153242204304650982831593284010493572114704637614213116538330624854911016463933055493015711223291461444951759486886975371123170396184634362065795339149980225160990054351657804542810580529750975005832858087106546229157979186605367901653559875214931824667148654032647002720162797107598753668776234081574740838505086270840662974094774821976336960300668759829635812756688392033958888064376436858495642036406368767924325640115012058331092406648300811042756697456988858148283648305680651045275982627231139355517570318163664524040308973314990111189295741438206541842047374182750286481854961995312350956680263553923185899567648773307901682662334101623739969752646850440317510281634159592109191120356181890800015121997066921549250109664227839670210329243704861640149406549263911750488439882428216227340111562155799103664816744655906473770285029101848237230251705676198500743749407070927893040426819369191307597602780330341673841555306095806679466581401865059555280870355979297916275453136587274747773902227857308043634063147120133952483164862795533670928831078732383153113750123613082388803283090021435209823901987542286228220724418099347372575668191119658083783147038445476534993409436441151741772268858802325038724632174442568763086697989146376742335495347062848962123640916014328365861305858885283694485898778329281720036735725359667210298613689501378946124558599230312302458504842815901492041067893550664064229145953513694837539892182645349645712154331425416792181459836062500349653994381236239577589264416943333688006446453417192020481405911310275472513018150576014926545678211990728041118282720424277773027533259431077009194124297765458573656128419242271686506635158846823373230779674390678640132673481107803689563593534610803828609517871341510411708388616608972906756141778455561492956215607146669608096241256415383354490010700989919571352797257486231413051305437205781903228662268283744429950099538934058324587746809596756697373717340950696198501766393758678426052176141785946339554944810781206690296217389267269189294391688649555411129967381463510285771088828989192466233742551060216691052765232346299897819850262736877573687109639217947127612900189570273776710051904180764783382812086546115174647228254863859159424293444897211258016250844059347350452431674119961479388261067429630205893208939154717223797281248959484390175151947136517616555554065646499100241387442131679543166096310377178912113401890692204380476194718915010787668317868162400383011040490089933522392693022170903675361514921735341649979001508323053104873352302265995374092254551815928398942643467840779419628920087634097996690531781152699875613189290729623924210609500167337458500699018320987775872087767991404363440010239554814880284650468165821038359350531523057933859809495468175654137250886465863854142974275897262531439031659391279871129358752264931370361236249698378913568981313407744155438899806992371098752298533485893745559059599849981842919077810319192633830772122499152422463097207034538385107982216694098861371741901053689336921784432970250200739115460617996208637389990406781281616813605626940948934449800321389942784301950605686821874634327295137009021419061541723008888543380571834823607814891744199763100863799831381248893858542026600980003829743254092859747527344802767212712318700111360367809563988877112913191550289138394999618346862053004650261257093893966391655735911373015760583071313931035546208987908101511745459389977504966819518081187576167874467956175663166283016433146766621987453968685668691417800648123614610323785066664632704788487126209774205927317526927691365999064212173343119231903503647644695016874657949684297665915385629687520231971165262242159284521677673154984374895240505302098399865213842631348818280059676309706586350623643202233096736379418685526191703246106000427227543845560372983674054661384954772455980308266684605983285005771070510536660284174480525625903135704394480819880907403537418861533147766335829503797787553484399315085427718431949599084103851325083730108499353285619121322462045971144429223308428062740458936925022056134741316611819440598647868164509053970331575082360456911578430906191816846108831213097128568664712629023241103985079247936120587837557214142177742202525390318414902097151360551452632503385190077914592972188240731801459257236694017231306344548423742580858634437080203675174981307860401138390527176079934357363412203033186903245586641476783237116455426486834728314969101489767355127536637274470597691831766064134914411033445277680610726290072353931817178802311569084906707227385077110146239794426845974947315572440530724330358007164492767052842231624617857765405652585235635304048804524299483120395224526080973954093972125848465874022279600130967315272642764044975834580899672599207639715520302886642699078168788830756193682382322790099851847148171337818638408592423265527791904616199492817772081546892477918855619213809034773916956364516901306509706399275333081877942801862174100970749061109370415049613214070362462179029006639403891678408401334365647444765840464121027059935779916024643817612610579783372575776447318191647578350010556523175371874315471010328567192071184984007747168029101539493506686945800862863131686176828005477468285274941663003031626417188584487190240013533656561162056864262429986842030342746110251461735134257446578305272153147615656415461474096682529540920177791717440602309034262631204295643657365413550429249266661422372890418291953531635101125623879798896816297177221624848024929323163691877057918699877200692014769393251714159458078040300826613333185012064519795786734715306600968937018563184613769199870014330234476632677339196278081879956164880289477577727739663822268316877707639101645073310595309643602281728144657749082683938774191793481522430288258006961303520197662664918019771217435156389365068638562174391406280532843259287099654070451516558832413364337718410622335309427284283583159009145586131217366195410790749282877420302231800602279702587952594556258472082959367762233129072164480067317612444044459409047472420303804760768506334280298806603799895017725962153255083636232048242779184917437393541355976890499739814308123043925126674966664875065932541748028842103026626915155450292194914070417210060726931653198656085490941972944710366808924858620629657117698635279457762509740458961979354668657637174379269696891406283802881931302606290141927525696367487610224456749191405975387641370685682681345485505290331432353382072500102957793037421403983977032986390144752547518584762266427749963088573109913861985067316316785230199602502944075390149789815998622063699238375237908820055098747574216513640201756612499581798041731234403097574159724035709274211990913404434766098823906444039579034759582648144619659850000320404450588824734601476471431472989594505420369184075887687301063197143110846557934866716198973825285889773840916573049035286578032477386773550923255320351398646293806082789323382388090631960071248080787704088349880052270346267792014847081642125791561729572378963844290004525205701614587277370866347652022316711945827565968592743845597553686374841059486489890305699396235341990673899130261173584165094432836052309039604797485071985416167855418572193801312341397703235088745877006985049001401641003718669996608909483597570709407093195777779324510265997811340384881292928882696120743383109541542633022359071809272064019545900865088772248416695863829619445759071006167582561657655253161397228842255279078610508397331190938770140513434129448119534888317950175143819622167569466259214699459557376160523829708625621362064538965132790820707724871845861946686137808202240547005162783825917427225667869445822905437018964352159563987527796223118057245310679899808056852084829065192870425296973105979407482230704974269868035165188896851815513986882557377731668186766377236294864621957433035449221726621612838910801937060962823928762595284146637587902803211292416606372418086011641550250796923448862229299041400704432258479362210736950436919480388055712980596478470923647340183800110419966003825682462913259590431843412140867425998741000290211408258763403755949869568218232938679279984272471104141111944677238233204818391619430201229506269402365121704942045007670559100252076156387636189717784895516880361044666850111508583434835994922870706691800683564249914639275669710551119902712054185599482377199132273863994589498850328307693384048902713563511347956030799812229186661353795317296264289882682638327742624983272680375079730291815485949852135876206863250672303812671759870773561739988411701009483568470456981757951374270532786179243016948914131397287617412777228383017027291938478988198968961367631154575333829346991691857694691555980256552133128038606403246342832340494041587397418141732303764889383287165019395299650497169431338652571400222061875676534649187792742075577411369847044095348270369705066167508202774704113800925035363873253980463096314268335794763637777898250555435651058599504603162373391733733884564954488682573330808148271523282714320444696476871752139698291127903629283791015339532447177438478182055680692539593868060553414031290071208263757102170198916626252473635520432572621223840151035282066955488353010194867577981102012327783448624578884496088421807738962253028805716460394046611926860080131475332467996591948019453213457934158433581964506230685883147066583665984176674445384564580389199736497419149694123798973870182722592832866178590372809151094180908190470655371027466405510099127379429409162202342528982347847062375218358092774288465536556374756735653809560113107463360531577124000153036160708478719305356326697995722484761301089605613944555278993697828790633747485380913690571411564688286463387259821136451025252281030142700749315218114595523035995027232914715265000797510386854734794034845765050541139916929012510647059868661205243732208253090626927742808819051096547605620849855029087259041063153276087493200587848215859925388327670295458389273018714625142092858392406196616347166333765775070965781166879903005639479085121675734272466880225304058086517845708869228548370339840331326852863520010895545653208570071128586221963419777421465324402655871712090609268482545912981226474319972155175742580131356812042515601256073666376368128420198548683849669932603671372676220502984743518070046417553487001641096465819759428002502938129261537759232760606466610066333279166911877438958856109533644455501680354201361078076228531852974037435934062800472852306916103132864616671154190024932724655801066270403194833976863435834809284607947815308587876874186176417219006514248577258307419336395258423634830195455983695303045480375185287799165165659876336628871397370604377912382807219169540928104592588336544480471811727822790509370080672639447286858608078996738554731031437248807003224389384563093821213316814784686917650175170565945437122890792277513703342812194755418032819280505459529465737817825376340711910680462921495671831987929730327000804019466651075463196574975930716337725613362785667458674172582690820331162057892337045600594940484671182886185998387770843782188583027627511225401346330727293359540012642039866355731573556151470603098105751137740720862960406941559520825068176707122538173559118743904032989273770603403880247812797382211132138896505767026765178821800784407780412878519483754345124306056617688351573530878566706865177921854280214159432559263258839968336120847621026698070341329283854184394393394638065294358398017192808856354310795831369969600004207901917552391686495243795131506514104403996099146670938195345234299942721820192380267550222684528433878987089676534797907942285329925636650440840693668960357106499541163232918686166842112671321954457678985191976094845751192681581392384421476315286140322209386424794589643064668083098259155197434078611592177102343293193924746442671808387718138387798229460518797292996036075920526249943160130100469238287339637897513003893622701243786848578206181049208896870765382082016405085354723233899559546214767831117433022843887910154900230576939661126147015481838001415486700650911747678260734948699962129420283993909278290297434043653986443929831293872943727598880836951724698914863654559201114837526878523739660854710326055195111631921852190828308683335683453574241250049776284354818631112714027746360281615569558260455958997398199714529321867560077670397808999942899965217827491449768172961248539607670216450522557574703358850903444813186759322808333438628732400339083733730360329561381230512215643294549952114922577065172028901984634671249809569565444369820893247038954634766057372971273103297856965229593939708784379206816103638556109966315816542376928269569883566144211759435731554763703755792990969759042450629078302579908466708650609855912353044207541434518341596698021377419423850321498282724303147125337886489264024170060218481493826463351063718793822472779210159489454977862669492589115556085719253279925322483471673766976068867848569059498631468961711920523599511676181453035327570578964929736790363787918166289623331031598161900791910921627077514597781420963341396960953938586416142928743482839957459199981553004797470603669280610812516049755129924441925621150277378344822125880858770679899574784320748077611958448401862200439003263908999016600320693579578794906941253980989641695641057996506165604255868780532013681514388072410213173193710725072774577421709432859193666218433608184906013649227400454191329313236298173113251038797409453819518126915405020362143754782759854810030056426967510496337775275826109805271861978905543477637679553885014868758470363698380245277926383510104704596252376125805827682455604242243308689239230973798835737435060933869036953751663042269136710961424688272047050152029329798670653184628587976551340607928748155679701434953939685146724454499661613285833369344855204502036402821864073111156760273904370313421039582438918385075826184999724587956114965630501398146190753776294440947562708434091351283089039528339491172523871644618219192410952009368236634587459732929679757734793582499617991245539819384518767747601163747604553489002654017147912559258227833577098311025589131790965640447782001969713131387569853195091411126092063711314834455078798533582477109776944520232797745448409282918910650051376145235905179899311444737310784443978660092133450544177245233249640250053137294370082073445186076245828796003148469658472900997075961888948105882725403381957945075452690271436067642283843739922101716301716978278736769331347562494561760958036681369890009204507364849121659732145891704002407711689619471215475483293416492615243648007568656331426689843366176659040744878472750126569628984455719910420567197312721499532231957530374698048878929061165380670394635683635842610117557696447994968109601019696060478614448943654933860925946216760999438998973049290415074006888032715915357881312068628486473587945221613863384747739645170237263019147789060093968512733810001649923756014856844575169538793312319561723494705201226516940153405219505057949974738248568400602789143600818876149178748470015367945663333935250852771001296821807062568499742813786508617386229117795291165911421257434925995362896936045888340835363626017992579739706765355501142385879987738106720742688384839041119624036052413160551777803575096077914447154625238047844916822109212381324047243748943472973629284660803757402157909670351180433477689467059208332427903216374163524856147553978934543365781276853995810025277114854711399054558384086385398882122695858030960186033067191159574024690496967966050028926005223878540948998333774945080084376340582433105912347357676613486784855454801061633830288573060248700228741059197624270813927537084299573899313319546190877500350018845657932303103135178462303095578243662105113001030513680832422806128567947299015834202917249302609947043189275536405347834931219873757980485766421824558281879748118246563704524286166617356497468269838963544614503517760403767415243109153214882887464859630824559748916664188159778779218177031275167087672533199673225536632860493605037908140662091367552029043179955414627514897802599614231403622622697434307015168083725661524703310599681745225733093770799130393034494672379941794988803775893956757804929485306033190414247507356156737082895663473659583275535134560664188447027466417263998144255988781007821155086835355473748329871338877989693964428194713260474320484873193440947954523097216940258873424182975089681576080331743459712237658695925398911494219906061056362828243702574923894813544845045895851651194411283985111228620092885898504484342241163880024803042856667035964760011543164555996080463587115579073663546270894218015880425142462984483999810585823037759674750088767812005325349223490428612335954364982766553903591810804154882407454146092190916945785853701108053470650027164777747416167829742144740273172297559491378876346588786829856670218528793792460293696414557792639770971856462041239051032443424708936691083309041574212093188117095349348103184217842401685712277517942460597300849865548186019114280478905915657832756519060589107241640850899269251547787129902774317297415570343352707564094804853530691576382518927723578210583658794642618463009065867367741850611593163676721171183497920790276800087623820363700047970422849148696289187872239391490168808327977218353927029120093288487175064494585279223047768004060902551625700420839742189153762259631895666911604244073471651351882559634012660920031065777128886369636496904620748105477209747805930883242798744154310977399938071668161505505949391039973210402048678563645999441145385915661428074729036317003142363803348352013674973661413529004702749692074053142054594980747073030735195740992912354124332864563905673937050988443436161387437959395104853596107744015675976291089293531835691310974532770338516021043400269558994495702336480362988328500500564615338498903538226149447265209614629670952292720911662378825766136943774071914730096511570630775434041065218671718625217142281111048472350505600735542298467170682237827049682064682576305835840557847753027555464288965497911545878101017954141749301089303989841314086088777361191167925842557732871744190996468652716018410508445603678702277767162310686503258933327185018263846392461066629105041677381898454360016124630424451308037148303419623014850355629906296086117756548182115999795350544433019363389532353570508131021572085409785791446374686216852845511527003356437425331569608399478882258381331352945639104117297702203739939708304001475082004136882885023959315670256911727063562541212656235771862114037859898845845525513497775493768878514584319304768040958104062763929499913205532831677765426202806370664765242101253633639951553122825527402394704911448234834118346775376455364940952625202653403366022406773456857446241746784646791034480681245069325093916632795693861585068319704283396622870315318169602849429001093974613809366340255664732951453570657786111387770735388778372721405087361771707403644145546218396608159032927892300447475245868371874763250729457239118499280125496213102334127538356610382405946895988695692930756410486890130384013199274211662982089762115574186377702054273078073045718514720312225741388172830628669061452575320902054558200908312848577222210250649186528409888579109639575200218090308800577175110763802653033225538877099878241425878247252597906394587406681059227180891010107621605398635459355033909775944424232560488593876649756412824588381748895867834192426726221561313067537600178251279323365418376414408494374044655810431688107852519555311698926919709298457462729703265806116805757596731536340393694363960878221595701850059620923303562701057941432866336230472618209596031583179872226024061287088244875518955720825165980417321335354233679699571200956240253938068738734541798433089937181376465389892294924377249187530818844144406737469565635687328819188234539329889603284238250498481643053712791914595433822259007773267608638542590019373101663144960819059790146260196173269470534451809026221215991170494177566626348465923485093206593553331666787337741572033206528107385018993357194613670921272971921767753359460982629584354153968463093972125523527011804222377381199738528162292728951565178452641992730475018701287754502354180227522263219923006926711293085486344525759050627269330748094901723729472496074682406399182747035020450156352067277335832274970604039509345603196634903338874331371031688584044083447676017525461891022950044175587625881280699489299802105634794238674502674526478837366920793791087739415863460631653726249715661687561494552384601242562012849492994468543474518918018917892133333167219612048007044721432465372335202175624266527246128139932507738656890887161807865827653425966106037574320340220104717319851667902873110268493622823608028996235292690584015428027075485243338802232922956707189849427618807686749208832539322089583939047631928315617801136492822956676148685128818210063374466377505476906510234836755221679656279128300975633518557327726883004758129070583124562139190259583515540548446492260622171242092820020525196584763678202253250463701242859308021136738656584717693342932233555383852417295197375034723367171028258629583863541566895571759572198616883884602575970421174299580988651868819296118826075930019313145086314052522456611000945825864948032958556375874640033915310836770738045810758357386054660157911814825189111228472860229863947278432775495792530439778138958504765102072746188838923764216644366499450361088267536702434785773141616584961814880961182409378514647190781140228017683983842431607454176958508273763170461042590671431991502513787662122133609077577329378639491480195089825645999948914733018338164048029954637154009711840723797840607080485090613330253205254146695136427108845163131982992284923954963959613869704168972690696280710206181217107011434146016630747524725248214224638014909638846614297187676723395471775587785640335190513211475285198305411387108720754769610033822964567522643585792532078179262676872549433133160851982016711803470503332859922206672074839779872688958470882512244069973255547398190066749777986417529770424213914208523526175830442544777378290921818998045446395908769048969545846405201355280368785503562732127452416759760520749273205210942582983215360010822925424850283085012963620007706759048371329851214939494554173300985303572377290615242102065504738241374177750878245811988541857093213186857053251536180852137012997972083918978632360863181672084973744715782263481899541486044891092411551762369386823604034382943665511173280921299128624046290596052820140762029827975771878911455013992772561309490925277158159232365521048184785585504016446828606208532176764479165305370657938662555017969161731907108773332831491947559031441897276384892536785215766632837506080735073537468665024658615675593217018274098098174624286266135380085006172796554697060825143626861966660353483755873866778041454221551653439389579047244327710663598857674081148868456646503253652197123418197546722506886750446050703100097041433006913693984741136675868375037567709140740223708606507102524942888333614392897794042590720360636205982804484292212943982091034417360933485000844609524875847077686754400292124340267805211432528379750133328652319334620629200618504688247391422196216811470178623106832451718570377011108681283288194715447454018140272860902742565416324480251793337406562276809682571984358530012864305415597241744495422572161755021189780262886094235888590247014625612139105450666719234487878880845442235016622444518432526821217861214847545916501366104533278471796881710918944157872081484561090195704849190944349390660953639185655493758657609496954830137020127409062215663225105782106284663622945571292239209522767081096636604949698092993075598931825891766685582813533855441357173863562383018058485599533490336895796169155802797150275860186697864290128919338080344862238953846276380181972288275083673117752358057551761328233228849044374004207723837060086888370767805252226922231876751042665487485622088773579838976146067341456848429602142798845174715475629625067582010105581181036991213746249788143919704495617309999396674942382152397179078346398849767761044754452118732450234197005166995586261406994171915605617471420021907358894472726411177260169348418988627942938457699362784817021266401792885537403676900501767568950794499353122206510563766717972998214044759631766339832774715028050225064967728182294420797829183528965435354441057211246509464271159050721025643969348513466171759407036577511390131363638737786337515415120676171303551270035115367013097914452534029485253433012020650941397598253051821843351512697706716320309408079946650826149793403157250427663870794267960956248297292360408342109129263864618372012285917988292411653977393797079079338309586473117928335868597648691642519476922777867028481308295284899183780845752571493695412375706723795400337138893901207408174182749482579173344285106878638762416504442057705683901051112672517412738087264034786688467800083994088204069231791284769844310043085155393564489134004006018987121886642923291615731480174255752398963673262255042133334447220829895114654003928560506695871440420584327123702395215244093632992607872992282647948352400349556972235025972412797546653600917580654692102860582574104907421732477817086906456028563204217219525674121537171705170713231960495457205678030484296379078676361767259104032353983127154330167523584962366401298221322196120144616378706837821485381459998165046279397602461176908347627168196514382880380684186255804248877688343357171941134286138016805599613141587434952419797155699835685599057440076708944310830644030336876331577948864106265359903058659464040635734071683692888595709790329832575623824291927292340559781342178457657951231554464942635379113845945142292036010413546639131140268560347818703079924476118579129158580406594118940147863177457672530708229493092382591200814328962387606491664488629337069336478389898204880543084689928146693085389128094964457716540612634083350658710838507726109516366616504362988975494691959182533179915872650037836647118360668308335568640984737340723019169072068131694118030549919892533900810854111665593645900381422919682141687329121055945581671987792549247647162948831291855140272669939771122608204688905716428330240288104963507313436024607136469344659661156318906341424670540690288298727689710569793910219661332566239408789239771901811365606959880227800471359037051774462513818302887137116860932023656507866229050550782176417992749399259896326767289372753291840755399593761091969836836214747592969999007032909607134947587018210771751809930851640481053735381011911022153059595687127461575470580238226084886394462249631432780175334941134998651753649353005345743156479731316223850203062210681380306672675837151242773223176230554393751337849244783586507056064784209289551148970640174045071066154421630022512525719159352651114030600422740121872649769954536008888665967676394244770772306695690262668037609419327119816342929774185898096735375019798799024528399455320517354686518662541199526034217628363568268576192752511450863991770218267127040477256961001508792732908860611183223997580460996876850856761146038527147249377941770429760240892736694333210003180938017363921384180265785042352899698649313383598465973863722675404701285261668620758898107834573191872656013314555186435540456767383937582463050605719490227717321820435428647763076512623628236431309815581004051042683328482567332982238429586980230638337088392572019825827355345792727327618035987110774094382955124064092554371243374262382447054452620878795998723646207991568900414290633579562781097957458969971311488709001185296196046441118302389928035447250005097119662707023972952344076693383551689743150798200090872102914515550069584067276478061764945954265411798354647224837137765081020415241619200768730581111402506648938263195565315235177013841707152360651379440727048189351721997008590813770060160329596850613470187144042307116068748804825732699895339221325879913009285887261851811696881878568710793530371033029040299913135937530950159858707674044856778370924157146605578356724431825202130557624212741140181230894683826225862072274456492417045755349177144564225081915503659464690560583996699415126414392357078350663650262782580388366440938741666137318564341117376316475665059377061519092340234407078789892531519553750611289766074471763218039245368256989717744466780577487488656172286932730384674541749301782117969418270218684580793136324698308185776246438008317011509887243463782199991028971714283698836860544148609627066121293485049877990476801595716918926150542248155382962215673865368669498006580951552615583298331297379302470896300052265461358120232954364417385177491288570170151667802307140367138263086673687136650130061543715726895007368389037255769531078603558740800522060319581025341181289167278053139091023369296888822115264518269801892002941761172691834741385009178057185134190832100859930716046980922819887048302245703686220330760466861851284743923396331663043968140233369542065541754989813740544115329215308298572662180885180868026840377419952280120395189417108064683822557181445258853624092306076537693246489891522859021111875481575030017386526023519029573576867580347468204566229666729866090545722354748805905969481265232613699368865604446523338577316301646023352780060043544936446452330284443675613734547255079623619476310694710239111604474761518958459131800208113558152082836359607609616787422068250376763640473735607917500859519909860910057192522005326037942225116363281573591201377034720101240453431636891094518998036549462055660689176703446655540399866722169420259420445922010539568246979008595542902606150921992322416002793309334670418403196119608931639173193481124874246526994154735040317873243955916285840840146138724246377414673978473345663247425940195911819378597934804666249850105764260567745197191425969086877031865847082117074321734521268180295184417171807643210110525000623006099273710245385231141290821465002249141485808975150284618343063971482830199540114732035374018380615163384086900440080807955892765466175756298930209442150200133192292881639002895494000134066561167067239026374121567618608869159038529455397348132955352333037877367029146952205181156231155133052103278076923445894444466190521649616229302158376469648903642845357560903001869696488791291276825791080367472562827072334671449331055595631434961833127199669587256893572215515928478549406070127758099312221508465848390471241338304727243897209578240444953524957064861167108286267816140586254511483871079880507597382205300224612658775676490931959781350774087726927155136199247276902955309005527571080339317273417709173233092416617803760558605755553790486338100645683684508363425502710063205890271102039546756313204616705575999177043343288699974872145683488686730295582798535167300144527556616611267176416481532791497527479143893341135979218481036319856888415094863063949447320883576622788359693572677238296758979703107524814570053792362043832501959464150542376680996911324542352578684711957972762548773158250656955134573464079039393242787943042287479646339317499057723663242719070805777421706552098435848290894166479758153884225508766847803279018880372104831924653454277348199264319620379775360891513151109285209509824878034965530945580226491248341254550047021119822037675838046915129216289118581022859316874696882498631424817861926485491357241550279408821561379396121137435404472478606903648156806098822301701435927101337127959843151857237791864073352770664503540163028681810023373046621292118637543481822329190974380641519750176058924430730420105924534239476907129266219554576209323881213625899980636147981120352674879227244070299327130194298450200513351857602337485877546316294487415167980114952863487147306024781372550365046487661694813573772698493824760805070905819864299456031866790024916309155359558630083187768581266779817922819121032428683104635329041307928215238543613182464823874755181248513577451262777285784670272869962398158236937722407135278179693993012110524823574692025914127619808644887404046513269297038218098878747996037710172305362586597030709129145199415967749001652156636777254546261545870677950678625345961031130609031125854955006459369884495160227469517284322528777977544082289708078659285638645895069452072091890535687311326839343641575917534475755832191167198134561080847063151232255586230361726185257008808763163813758639621654436343323335123908637026340467839580950040536697617566804577062897368970944375462230904165689061329306939975022001842520177054784803642275058068442934270302585438317524071356144282769016058250395317047586078546187580601357145585922313841921407462179998935917590141639319032899823963677764337525027452570754771695964931715265509873005480009758321263531614166603904953646683548174396462963866012339600448758209788270443608163387333718997137346327986214496757944015500671824582496234073678001321536296533700210653991472380296863938040621393163517061347618051822254504221687399528918368110059918276186579330853570345454145498729989680908797581302825612721007747821341560133789894144113853463220235303239600048432951310497139021863083465883650078057949194195677977014083487206817852607376622848155817806616139164658039708377457706474674019502511017810667743857934186718834204891917049156198790977187715416210167608748442070554549755855468214109061152805648235698763448647852863284160096743097306039236818561622924708018382614665817399983967008724258712430733256536873490634166536267325686284691805929015938860150702029405805132598106511504383790294292705575004480042020208856220574174486706610059340797530604860192039843338417756921673196845933512886409072575789299977419511538497478412563101622949688102710163125832752098165432348328696995886605564113446630586357492626131456418837141515987249798980883162479243749969505359264559159129474149994599862942828295310640123032537533106341467010277465673763433680276447367325198266699947752618702694085541002357517855885770696336394088098013024066833865349792186565615484036361789752075707008142541743298038741975624000955987389507518886871340941813446810486986392767010048901562671383554000838564402842011233715389696085953402781268353050568690151241420473957848474345246373177709170492324440164325302388047245792404178980566668046200362333511355666668163334765862925013909327887478700571042563389712156704107901369217541021254912449276025845299507953184001458341213474817941881152906223678851793936509177883463932357934543036773627496627333999584169209734882408048873007558992124454505746103114023146992705167063993941582408791827395123866535451529354201677860679631972447822536377231637254039715542839336300384736656032867156300914263477951381379884830328657406508188961754057246234628885793927229777097487707628146126536581997596374030276098504688536052670194859234095774198265300456006419858323687003207773285623139935050279937358032876312073286100070863239712435588552315314167263270720507949320515649443328342016051891686244558815386885670262455343697973065663838668576987157885891705457273229266316147058978175310824509977937032198659561113003738186301229095782442471832430460224972253297882233517596572473959533755738062178690859686992695537687125955029692803225267122823361575527438767014590491154367382142635091738534246799818377423250311857714406604852170618512341409331844247084905317886382524083424636272009088025648067216133784966397856327693707876488000371604421467865712788615186427183595182943088332642030949550622886054542149096595529283222369292300203302172457648513820702791601293888950952150119774937333287257051714570523619313800953061857754548018880476262301897424642895115351946107814128612248358307944451991533051533491104694545946257756723491637762070096599069568432164457179091757439068302650425083168351074331682340829791453757380633204240713961222601039082687698593193790048494083472887816529317678708046068401280633554617445677261970623079640835321383848729967014208729498836045627680493537157091348409817183263894268178263035436543342971088607407639811872775129222097703727407951401094800177572699024869042167209374262417680935329555491738509077325105566897957098084222217061001809833640308047855406322818477407258184928517769643936406291351715712224798168426893306529609873499624203570117387033284254385223928434322682767591972244961187071817725734539583920053894280128153068461096795286327465076773882240380269501476925472016754523713061814990343770520275343231898307984951824378719499587595260609867202821965930980499944729842161601749957146640455021353166251195239142411282072568530077125687126508038859421073067624659488773552598852418821981267695932267016489835638902308063720975384578675478225464396888864346234529040497981358810539398601494659510747973088329378453309710220703027255086475174191579448399328284148113726598852763417353480331769258658338317545408930917429680643379782477531266409683576777372057588587451106410516087608271336388853986760261381156487951074451005001211490134430177207152924687271801040029588963564397791405817916333841705044990272857555970141466881821484012925994812823783423608954710360141730264783625851079167809589915789672968317532425595045036589440773158165989227719702055759134086116973044216401985310814811662571804249534484824467347115840321736679784975945661054932999046506002042299068962832872352443592395887720603766927982701501550449304823974320777632300275627925836436542965614129910672983358224486797020022773655848409906926876829715930730648804864596789633000861788240901926568319271094689602679833358431553925944832283009584892603529253819741153316133771691243591526459224032909799647583089093538870599040098001519708926317230143509174741574739179013358591181738941819048377661900595517571230045883695967938355875555422774859516586032314344199301674347062587538842046182071786893484007008728184262117548793152566482894775118654735417616099106199629279600105710014561305034281270081208582856256789010355245566896145404592690239474203434552174479985763085339633454650399437389623227842816074758384988752011193153513452254027573516929815132557643355994895091765736711297674166860282409338866437672340565203592985487196727296363803286282199020246452046519756386638845594618569437917191634950652781382870760998535347565087387197224993500618912333861412059188548288222431585591958176242767740249645418295413044637703516829973612940999384599396254954902351891293301362892961541097637691004044836929453037104893938957264528742505549396697451337712187791787876200534656666227902424123745412701648153578201883226866232111913945470727974847158283867027777687764779802419207278022738771886046025929856912707190455717559045444996188973581498545989627606750899400415007474987012911084809912938064502489369353885064404785696525489091859328620928709709250063350271939992956170276842500062550898760954776093695931429794073522540733681961128424846499375946065091652451800572533120404402759143302859035760450442119056257615961511468498654637286015443658370584100393420985604117795679552739061605388250180468438145173629279695827193998428134053892314585787625859305297166519281786408026373412713838583020232530080130806000665334150403600138754899410066340770795804559538792940362235284638367615225176846418439227492396622011539608210472127298423178505691657672809750704878809085798918036680826473296789573185320090498875283608806346369576371058532054664791916999793102948489460185189938104668160216845189492370382035677953876305611099327204513566934835656573501923695366674708697773097169357820668584379126054633612705624600727461444646203805158788728346336067046602604202687511462763730482460649968134424339863206926920106104525849905443453498280646101871462600373141564432099282445797725669953315414334748673029184201532537564475679871498704385982058334229479234763078817400016092724454065097529378353920844053190258233807813754051913759596625287224821323576926305756767442031418890913330239214904170618702243248737874003754046672086555665763284681613824233423731598168181559610884110272167188103076043335526420714609177025333364662462814977842368271345243046929388212985536455785669919058533340574785135367512603910573033193798554545592311216854025457269563070470348797471453504246187604466352786216819675293005095278146866739634858148561657942010929449473591505617083588339500236668233234835155361405494815020874216441564348163977287023130589013013342658114462320077334964185283932253930623224911876662626324510443226669611648381956123630747135708968165901476692543969801987498603719371538450682078152257960511340155293421982334943987561408407322195847188481699789182662840687538038223213558251037769713309648849240625871618101650570117009647877460293022303689522304730485209782176687829051293198314633415149938145777770075164314823303719289618099876631733966123945011703207050557237980358506729245916863260704677663028716890051747464083721378096074827084670716396069085298141490165891192726411891797794942863745512050924863410709884834944598075723618098661033016508642069588514454371480711968636814771129304930532725377256528311743981569777810960597088718007523979773271635398277977501894224668675615340132194014240442496624845348254268816538140071292339254465709984233131478064404318098310460390304660559173692635360804055511733755476218318252025300785640319069420849688354533974344552865295054131197628772466110758941823371703480369738744790400298937621388150022994382689097571598228590519116379613096146313905754408150597911164978727146137643698514929683259720063128904938416025781868538509134867597131845227706802625338586745969871629752838095774459068942508887340966008028406084113610662826521819300668348798373253563752762682643184396182533599962595324678137549694613433858864657141958763630465197038767429129821163258860406610017438899098192855290707426670587330736940761096130886118943284975734144123091337662327945422075098746796063246468618639674562170267517206085164638297791063859515514763685759027884163876844752741724000542679699303883435514538085718525899631310155037856371277677300727818798522263673571816672057688726880195426876250793220510538414653024609386783799712994927184595344763058473757303363064404934118531577187345762647210300739471410342435574860801027229230303739358407130040267027836989760935508281293292471041775671340366308980420500698072292300286782200957656542164363738007607208548143351953590333532876421344610460341128619460760706935160510363102252685235230663901323259715256830075228562695674736726266853342548061865058542780879708763364886804709820343533294544965575339090951680198479411249763595422031934757616724635636222603304789538392173839513636289619561749305471797844021895225552180443243948193038635643294402352186739258905750499355169844238367496703008491751641774395145321409818154697617276460278614797216740677019036357680640704164903776296619343400805961682798677668017438192302065252034598243069480644792491799576415338427104015091301681254170257530615057218727951724279874241855238484446486325290555626753887422661413112011627450886584887653134023523149679699491759448913539976853557685935367411558007519282556298227610521292219437440940523701819617653126150986219607078372483113921596316991743923031841208771677461824797879481188840042109249190111806624674813406630999750199866436165378656643228221451551731042169758413175071370971087341350927158584821040859974995260038054014713291867810951542845938043125080605589148916448873328678656084441733717691458335870561963510163499691752697485660158668257204979120289557273304854959590564406845520843971648742588091956111717329525181945442903785084028294143443361743754720613692802461774763684389714500915149044756864417324572556730525378347550751047975730264005955834081403166350927353539706756824858568702085616212306862449567098494661500512005005347151170480107169337540954517041014929860707650018526600400186526703761411848338626682309224872462595868866968231599231790492641126903960285688233658320344151993098043550441167613006031211510802305259991175997606737750311247643409114502912125154738727276748263019748962078704393597030260012442696906100102603627864958189808945684429251105585501177896794107603273003086483452256200488716855618092289627919734381897642556219799674945754235177148712138313130581589552809394541927405798981383966114234569305469106846184868708209490163665625805809695147967397582606145240082186110221242550084554792552265858706100581889527594573768295540786903956133928239614573273412456998025408654522006264197594784425690473087126004554279074035800435390302425855626125632545521438484134586072177479260187842410681180629725451109626874916203541560903282101335670308760524434298323906342568581195380042244466760712010178283015205583116367172423282457608149939675189856384229424213825444829425387359226519678204963407429463967654498734887966713450340386087961571934939590456136382199435581788204877156311174792493312686936011819112062741228119743909115261950584939778722405653914567548981987090725919273457795893073588743451941694369461150936634163614358812454069390982792008532058003028834947410303802852953680386122690976861372906785982626680157065853569292673417887046956548041947263656411029328100094114457907700403147451680524408732082259907447187349961727770660534107203793629550281193511003799529336832440901973379403920868422421840958237031140073219443997682620742917708005423050013319065990710211275571960627038436039474240718209385357306565427307897766307973132138416172598104185422028437898943367820621447866051144185492894896066215285848584070993559505600068525618709999258514509190478434487662595131684683372973542992457098565322708893151189808378532232544111276981911926628698100072551842287927974457107571342548536372501548882380621820722325074487875373048149943704973083489794416300832421976811910549273359006746883882634718479686592807814067240479824676494185982475370034146930217459995273522489628659301057895665290666163112058628805224145723269342078285525789227455593743514650629681316607402889199967398970988953994093429424268000846618210537892171500111781746002779567930168009968914345904049156595381085044109334868752661617967133423705320395067075811559152843472137264939599287727310296434337359867646645052247020250721876424011536096438285265360783514572716147963751992563194956739738135040085943085498216765069900360227403454277808701402321428045924329126663308373476090755141682641940829256135939286713000719255353333261553703648436184064787674936027543047309343542146395121033681283680206652102073502018180788593871650203477418172042536360704647491060672303449181383262095021020256045487138100472760984017418099493593234068084659358869727580663126217375415814030699541784782216499874766832332531661077778697961475840367904047870644815453313516525521896792248432123290393513021766819112388714309286851438866811908053407654298114564400040936808840730234050525367184487850214825451983894484830504662895288111698982059424829899842045841925639563896104426907813616131376641218321707485278788870673953533508353861660270585421614573370880766843828404802994368743939742664284092073881532961389995056020703218736200476411220651002268436563686634127571073414498097266305249395834331200174587221725223168920727995559359859093807662143555502075286624290255664654873596660738443816041501770808179351794158299519414746000206120246746885828754039616806467619891142470503557364758254873099695163760903954672869463027340117262916735410145353199471303191939064146442362305793387161157016798313023111078384173210188762452416405653115683652287736125095052412561939768218039354995837898183208271394028677224717101867979371703033343130166640374977348728408671649668676289205775881367161372684146505876739660299920160897285722665117997234097816980894301328557101556924507616720166192137459290710292947086757672479304240459004026993462843931021103738467408331905026113513827784066455150326019764690176491376166131852268780348815914185465493849216052836434981115283262174332025146575485645542832584096613574442413111097901830833306724762088198981799460783222097724287847732947558678553727004291183436655641528560406807140279427968215640571388459160955967980636432623867501123685125541851901334323030016790260836270241730092518758303088548320495011309039908047217723102625907682882661885675479728316653182903982337257084562897547796921915486567027642039133147276871154467905146530725075976691012510903438150175843828540448481353016400903820878074404066414513725774014177967155923722376442331238561651253339106715461101852328662491007667747080413154853544050308203755912213229027934007833484694853847742684720952667171447481976504848232323373654293188099338953020336843241806419756401264953073527202873485450337544880304956749236114451595269612826589826082238180343316286153243016028601215391777147012175617164448352716857522169445538418547794248883135220894214319012885452606367509335105363241231488750825058174518074291900816105274774235721408077387937746640196698202465495812509335240253246876377222905316007367176808642396282585602013701107939703076809215430163739161443614825105483491621040231254163431844012460133940704694300222324482174507011657277190285856803077443872176007318143575090370526863755258890331614787152926527016123118486093149090961113162026643517439564746915796870868893742123313179283389346898278009771432138590442941090043511603052487063992184583047868230479129806308414568421914987438741927248414057872943873219207685036723322108733791120713465153037106516573043497178269624370269911318294783933963407034735706246209570850489990404563325707286770062070314562359419814010699042134809596517895791130189109636288041029705031100014895306802940948241495066085050057469363618268318774590948701072616955143566510892974953226728826441267498896859674564293713975459801520746178821289257672027234735468357935412397963706973121024857749803258090512292051764242637814091073238685815215431166434494964915891918753982673787397913028248908836243378437817648100098473268404633565597444963061940510765416728236079399125938083613909957430736133870500147870712711317200894764161755404552296589237279887980288393940884305609026742788443620160973186539138355767052810825121485462027155431548061739844909274156036356892378080060930446244320125767402754409193430517712437542559498392535999246376035527786726685131668026268585771444893355546801131082874461737528168199268981319486689095333762713446836293673291045930465184277020144244166672403579996739088741240942228938212224151981371041290031019810516686965975890624324255993016890928369993270805538968260396516174166467588176715354731681757291075740203577517502767577787827750986008897215888334693166884120164615975409033425522746128333173445798362910003655887649382464619283011605766538190039191338258146440970895470862483421696735092351228575377424179978003262723284115147941690295376033570183303047731870284134574034924330202882460909660796999693045492001538579086754915638271916543599445899869417965717915108984861485787059131031566267259389874494257043494142185489768160024948394605368682807017920559576590394556566997188820665736486271418142183250058587061587576268064520354434953399378653986566603446145999872425208631853871800363560871887565541907235547554864490478027321477212100045493219413187965293104198784838738830855861050469062501958103400545749865719475836708058347379479483603993665820124960105526855297728557978493697789684313074994183308589187579870137170117360983826802398546349351818121582715192410598603836418991284409576742627867193866479283544400404041501919941645406904225070835754891906476264102193227161745741208215815618778826168374852616843750307920370880308560754102146457716082594511622738723773330542062540217421746471850200126124581802890061799217856084166661531804364641282211966266742249946168011322917836329089572941839583541350074235429612677943746122868226069773043129389669282953903728750772210943041412003141425766836420266968333571914373101071379890651070294036565688871747669245287480016893294417818205615395695797126836828090223797509994542050071280530802707308847791422397558062022109064992148292529024074215198130882774434351751152792573101606992110469850332478951907501369033095327078622268524617285740781113605997932276360566276682843257923594555022098625482770094860255805160561550685809561676460827585327152202292861558993035017242236857145843887656101307971060543734025769138515557431953642092067506744205984161380340409629133186223865515378012395893421377620480285243387631068774510214600072633299765875413480188127419582826163186109448505620719259275849331945337959578657972660515300445127050559712415028654878888253840054077860695214919935479206132318736614524053977173429396040996395541978458969324364969064086291348398471042586003114787168274732284497176998447594038638876181411660009384963461595626730767127735849572108556938854643286238095737434143781031533825874190508296274954100503924722765044366761569146887934629683347437449144580961581203379315547744203222134259187373116316363161167453947743382829121405888931516969359018165034763784920498974690156659357834392857804297626460845841014337049350306859056398862521535526861547999131722813219076345601854750209162262820607402791010953476359671951037438547717619763244169453032618839342557554971639504681540190892792150005183170179688203950815524367903528456012614233005649361061878350692173364047025770342749637052030552133120231034770997321588773376304953315400498269650829246162304917488721574693827881656859684763533538558959170624825782488350419371811789602842128322105679821489598943004771406176699673364981891523019845777034452866972721322921536239923350706316667498469823513980504918366667649831010277072264260543368496074500095094457634663175699993554118374387393174968077798244638527579713600609431970445769127917551372252375856622803013801133936814208286953489789432098043266255549500514560402626493041626198642695722268771498430600537191340935881352592078620157646408679337155941343762238647059212761266700364325983099793881747735254732898625367248741524252626725404190958405715918710525552956503164851731729817441234770938164136422201772318423906023458845072069654463132117799377670405209121275366149692029174685210203457584430922107657180661942991457593870619637375707724502456785301329270250655523121116235659637600578311055194810124225937100041083264712923047163073447588532405964720686399077575878853372880970653021761669285098242010256710304406130910810193060341173482267394505180270297172720215740458863020122141496709139325087395567291696264228059515644574071133738471263987422144256628769090704547409698789196234721929958758788457049269098712083731741617955611600779246671785310499071791093318510508960306135501424858143689680564335220076398662084551766876925971562193247570037112558394575714075940708404536196987551802301915619198186593979037845983395766031107116878600145718508776629629812576791255226030253743970460153211857286220651871128625700801223219004485560692735763292578565597090441661275320120479393090005182479848846336930257267931592856726254287165389255506393083162573388766649988318558347327203817798773414420570621682411247438873538482465221979203885153955944200143808169487570451512125681976605460962197617869420597713089095543116406579625095796484559969906808640046693764539410788611027982323133362077690497401591734291279730293626447102040090815352799933330872076163130654291341069551874161425564992545717217224671563776574659731828425158831415363994720143844091108605328129775927030479865962987104639435733840304022555977008873745609677530302867309763205271760992141612719963869949792732320036904910663519861057053158416470037197627638591901559003022878089410013233514707196401882365094464753711120901325522062590554087508052657036421754291276876175870260517118283065546208972896244541654343417695563827597284479174550614304897656018325255926853746358426310285742444831958135154764397694499359908989952203067933073967965172117486556564818408163021060094327640990174253409857920122840791907655726681169047473921503239684816080279941996399898937113416338744914437560061112496463425922819068898725973284137553037387052401071560995912864672348677052905077312717393916798870588524085975202267833327844347100122759535578793076918035023296179533823876931453280126421990775285470240137323151411321373251972450111636560180085411443733082293453592894243297534030221354084584389522057776287655555581945758710466223184301024345257406395102619134643753795214537554558627996285860766262850666211022059422724086791694874341747979244362795407626198563172654856836789639787456249498387173230863893991217323231987485692591868577273398607020325364289829300027967133765985376185565630734628495580717993985643577071774064972877105188531881736056705668921259185055542647513130210095692507859502890485813785064782486986723966270229842678911325468386017984033106999864873612638860379962249956533370218138479961717347419624506317487410183701716092344382118019916879410894813695446550334066121286905395627015335441560695375568032924820110126056440594523181417154293131905421064205953414453935611490866386987429881486630656811186964825613404920680164769366355234230851379479703193338155398864413271694065198096039747425447962289825441240678942342554146838565897277864329197946203972373386275890435324128518061871551739975528360491684702591273202387927617859260806599350378081235432478604889409535640229515190514822371766152893724793655634926758954463297136279525285565706243953317282719717699073218598999154369288389193809024391617976640555285087598299943908312944382348350396398627398646159121144403391021839830239248795798066773706671064162375865241070638467146608144476737171750131982909690183500945584940385898388894659691024652785847624636079135820789233076231173934009574604142930766085992986433709785497670749883844135729186825582526931770342600436661861382980482545857047772620698721765671069460566953747092835394929253806400809400353957568561802723387701127194471395267816408027399706864962436241885700141207927868723449485221774068867052535781124112232655125289745626698143074008214989417849952402730319219747997674668157955553890486380289925545293336638535719467707386883648932226136929812178254105744399150197089708470396294268491446527177989751142178179037858051380229428359735919739912395020212882321855994100364911991206102734912755769172276663218723312905483336454912558973508924740050081961360467328058585268572031510923762593692087140344102483027708722053736432083730629249042789360094101897192792281145461644893842797000693487222677112101383905886640481458518314242312180412518764065160551755252532661694127932917379566467623393246105693253503668757867976731877328318910055266753275338069500599042938680545473022621839847334946870145161805896346492249959810674737021919536304850812869899424483177511990150944043966894649911819617459836942126735409833508836052707521932278537818654842229290988493644255112116026696574127294305538294001079128089443916466768380034143229580461246073055427426229329487647707914216539029551688556810245702232610334333084286873588696459116946040612370616560979858258583810269461822634940427973438452702904772408990213728213557175855366257492322509863453733019439581921776437947101931067141662407270245637835932698740917632220709245512198132758575010225156888339882980525974046640635151771275675310876877481123145157202146181459522736133177026380736529380748552799252708218482121449884291996180670462715505266822900395895113687350783145451466774822691894524156857964249468672685506202555163040351869201506950542568731855726359642685263619387992196620311597202651587579858761479745962205694902994510420868641617740418322561175101104776934807008334664738457166302082169962477702701443132511057599313691923316771816328359168558503729240859185176807515471616219781035259276944868139254228647774004129628672895834493179787533893265736416241538169645509091980861186231687119071334199563849727488270469012695893286412280519833993341766323976831709386146872452866875523443327071930728610966777180237654289958323162962149463904153294158359979830798914311166533368136147799567657443252248333323222790429966561003097481741397417886809578541162058999744500495840912420075057397589630808023558270632960442850832859860988328048787159502974921431902794825971560170647862629179076778133414543598851998687060413267222656763924740049079758121866595671606423197364343408310637472133659279385217324741675558377501427624012519638762332245571782280207515143527816031426153510014375303240677262575782270940047377696157219624015321840203665638518519091230699972817609590515393131082443551051847381757590604813516396754273221076401894608285127111700865172821065622594385187127326864953068621068809379812580915755129891423264416644406076396105737003238187070749065930947667651901949461391230541670237953210185052306399907192755708161454334123630147731709579204470787148392057707477224546888059047105939601465669926299169725173684060121326793176714353199597839834040396862670224648491304682677488539384765203373422945241016872135804282570988286691470081800131074483039492479377194080142081781044410476206134913739436989577398902964778434142729845081322592718799747997493961543081777565955584040986871177747453313536761531265690395497252140814371898834102036388272903234385018383405485818622941099290698727495130029814693997538990846265342699046311254863130191429328260098957016662444664342570502368540154501411677697372700985064667088226871364453082540740074583067152169160081881777666608225474379186865798514656308028931758065286323915516957559990519980886862028942868688576022419923068596695911473611464625767285404317433211580472674189533734753799100140003538508347973753742139736753658141733749912968330589307754472407356665337535103864090159344776864109087538429420216080711486252861368994424233857948741235223826086013041200846994935940151591540610509636194457512489443609052330515037498745084344842681161456539246550430096117189304310081991150997946101018792920981234049791598752053390288315615316296842174945386316734365281122142225888370719957772341969453430375807966308131031090440561398073318624402449857085433934643833949575621326661835204653877988898124181905081747635229969942013525112590531423527505331425791581099023855078007683743943764133415852122884344661789213239264658542066694057270843559111008840609214804026116614025830313244637974310412984860351000764198526977407014963429483605959754884492130476787943478328246069073100728646224886747277009268791309447408823300232140587885313428988658658378397378494972892549781113648000117327206704795486779039204405214125278023253870155799199400249948938801999485812222813424790119455908007964475081480846768322795968169813243204684723303593783381730766154858385105707594338361450195574223539397674528927516605432570247395186327763839296717458890951002216418359232766826670608136124927577246727152399024959928627078850060489429640945695875568707582540521755787556321345155257679749988366356026886128600083462082103489840531605253585151875326004028538878505876388598608151116406667089378608034411914910928428359806739910150946267096223589351839324493026059987220796283856712586999023495781429698779176086002246838864989547151616101163514552635825083767060505302560037294797486635076196111410588042916619581357404554251096757668784877981484869482430991783902084529855484631501273971344690401827535110155851962024832507813063867134251845809689579448511627531040777050237486127397705344705495088316592565145940180529764989004943010242263921634314893947239669903022828397126523746290228683880043429137379565816750001610546853552871638391052887342168456103883661023058241708000243521142659617545509052214403701120782000112784053428094366028578701241210487032022645582301800405398090397190930107046132621609710776049142830163758904036177082985119641705386120938307105781131856247888898143117781601675830648749333629894054543776215805179095787215503604982390786727030093084346032336305018783288994200638079672349993749122986158875521933996179699705007915875491694098797912061073987348926202025844970476598987577699210315017976811125395301715382797884510914150549849593502290674638004706822401288031389868835325558582981133682147892173832623240156688502163268702273832309796342371017798710050700797353988820163865181616572106278495410733619167210000880454394706089479511757513678823225954676146692417074400685075731648083899353844928751485666092028820380540399578986796907544060852425276348753155070749408468024750657027440027184110922520971115626023703597291862143871370389999759569339618382144218357744397051899463165564068019657267264376205328556267509770378677478247769069882834593027851950216154534234294714193148966639574446854897700143268426669863388007812243165449483185445962182596224932897737689250002499513113313326179652506650000505046543237124205627984291732050290563448770177686430311467783616998116782095317425444050907491025898278637356682764402627289225641810420725448500368349159152228855439992330312307612309516930347462418041783786261008427327041635741897412516268733468572858632261455994388456904559641146210147102345775302128637894034325040001283205873612954620012968812017096146982581182632760027216298385397747471457163203842279800081749425748331210549694836258208495337165823204273112154694408332404276030237270493043755675572605651650018729581510493332545969366628126571244478099688862310017296585892608273761628523761880536745016619018787805957930487344337713137121162153712019425159096955011432481316194446340045681194602354883468239345584947482504851745164563704322750533870639196270766167673774691248723012052806266612604833403329095517308731766790651355546250881070480597430550598365090475555092710500660283880450920258312035693559062439948812164086261356571978686389077366414176949806770125067466489372140904412272936430301118803042710981031853808290075907872229458273180345446861195903612879829197412255268220071332716019756584338544499180406885392326024975097988136087136923657603722985202939823821316887022638720986190622976603415277379024027581490757374551450738725736964948070093520874141958383984922428562993912563234521303309501391320216119274128673067671911525479149316153825888935733385591921218250296793978403700590753006067091917105429366806605032442968075241299616239689295288571354443308312080472040580439784717974789165411860332065025522328498199938020358438931715691883792807084194633275557342405173999455415676995619113268805955668806793808164711880033080693276946252049754385329076036650753653606731003297376029159442280118548640369259934270045113434381211914700541725890687046655084620039885085416012385452306421800000964965964164334378484210058587007463543119720402437303965038421529040153341057895789912186749669506389427662574687423269193292973965360671441702822664535809353832731919819150946457978861579119726883504033670733315219715017465581047978985136002722895851895930256329942373307033981782907332356181316417850120911179236688696939243137804606469066479584377313859918220834260639945251882656472503178429404415847354155601902986896498346441539476153951078989120671670432391859001408981209107556464920197125816993072817780484783764435240713705212123856268724671374602520242665579409684370471064281535114435765350194488063338193607756842265692819103014639536751097340697087996950505682132201643919323482354918953446594269441842323171460479153695189206940466069633043682214178419745110981344610763530860253192158062479793050520413515006768370312332971947097528798625211419079438738571451281134514958441490729717913344248886779683183539153859996640727311728821855431047541049257794044832104636496143201732022956121214010203627279980971669765661737461925714999414363105997714144639418358963216236298198422057796483656110521307886001300242598086597086642046048433061314767499227505819808353544311232631397850428942563999061671769034033854672129079748617111668172343033711501510423485649024810617113552891987117748160283649904285293064246734105579695117869208931415750439310026802746143903846421628106964814831067819183328084658607797699737785620679668656562414880923337673114855597777720272742234232679366246501295734974985436065787711785150561553053290717933062649702282079708801218302283781576287442571751035919645113650415526016814948184879698028343421258530064958519649434124869936132493681433480596466377474219371929837300399699742870566078726051587832289524089141041170689272402592779532938364249039482755396712016997088394818387455070156917705871461758434830743024641701516377167241308743589938010585068652958424739651984854457825097784119068708831598641818332348169840635681141839981181238749315919287875838231509254269899728527176346549826566170004899774536760695065819035971541265001620715357798316504591430754592601961818361645742592420331089041431452939144295929627646217465814906582869301437848009499090917490617976905071104016545647714955712522661477466975594986945848742936499349273390582608191755017724903909699295809221099666133665228293821131467711382770102693681404049067756584405271157022894111845178322837310901328989319346194414888697851533172284006046237221083348215851348864663305680722874793639353756917445122078023770219365238779491822422132758730848112474891372451480448503006071040897054524665211900768997691530592712806847144693857172426503706900633021435494070195980720007002019767672079099328808708131384747213384930017798873964919855540307871301760254500358354023522493457332670075375862544220446010873209258097775222202723485628286345126801961737189207558055793030913984205808391093641902405511483983119050212101402293533804409209017899372270012062155785759266932393553152177393937689642707801560349377826952568248267539747864423557956673873439849960411232011872674746018713090045094664482179557455652250258325980673388628394263136004009412274402752133696710763775093519509940108586421004518492963829407972922239393528845234652102371307796963841897392949089444329904499715734910848518720053354589523296309650117523908697000311226348262621218420031329674844988485983748515293834438739837979331786187371948341961783013802754686201213663241897680002988982361903441821563056170064477647360181545201903085024787313063781628691288650704848412888883102802376307626761170829731105797180780428727113418362410656225853626571719964009775110998474250875025319244192922612280089191340010179345359651728557989041512996745007830452118047103282929057116661997677071175570897710815191950781518593427536689830691429942903068567128100288701635049061914284312649875116925008329467128820175145928931061107648869476255546821345174579804180808574988849198747535601333093951886018163285344261788991339537566674842672890197684100365277151188240415108240523248073612811912674936132911982117673228884414535975326552647569134645434938709877516418164612483410589598007851169201188133862883039661568952578178525975841867206867252742061035949621396869532993838238177119056576857854682691492783711791494383970207745113153688092948315686676739932745539814720966407660442850481684356955081586066906724905184683271245040893663032970356629456073475669512993954274804483060259599646457992617369458804822652778722941806666654867909643039277832236876857577796442586040964941681981134351525263178768811098661915980643531080002955520982191709860168408742832814085313978119606109957274056225749669822831272545854633735132615075227954582529339713988804282684385795315528703334776696421143929663449155205601640641469647199517737862626073074792658746304827979654998274903800318211536084020549782172546560483143609222947185302231028375300279689247399931071690411124315758275278228167076908465797307544966921285018897370005374831278231032350168968165414964420450037313820276818039508085716537593281828569137579968419595882989874188225279736859991694415526153813081910385382909145450649463924978089572078486893817697968967271968845047917036536301094360075120083633316088279960648509907124715273285035359655163521155649282753695194078786542771890675378663420577220429015645811880380529301529595296234937913975304072031763774153468819481864689373813658200992494954811708116477276637502064109950921730871292133107692862265689484897126613612238216436428867192313487320913730553642147942909716253254954121739654629145647696959350814703600993447733783862286560166727506706906500404847027494107184685649129436552686925273756495340871974391242836555759737974615755525238994293829438689026810052256482598902148509199320462796433447630772509388711672534195508842321751358481443044770437714991260785628871684789544366393447460673057436461735947670096557324478007470068214226477222015052880049804285237102448481025746474891793111170597631584612118166641280897149499359393801395699378576348832299197760873263940872412514440770506844504956682181119127930122660505879560007265805693128239551577307741387208183027266090061258940140743140361220723278535031223317325118686559321100843413795911576292371046910340583171644614775934584872538710870838030107536878695979403211293774459753839249259126543949873518162485298334880085786206630764184623246115175592175085818767800188894496444071308981876765790284984079934823501863806052348682552135642246608323428392732212030611789433946755911317319640732493608483792457576146624990380780784608368208281786539384823261945414900915613912796333794757865866899838844807962528205114945091997002687742010309985993266408308615317131917813297068619630225510602605133731375787508093467236973029371390620920256836378206478846436309397948967681482085414342915612562307290040487589028059216532034485617112365935354563240635809748269429857053974664237104004528470704745433284531021224191253202103547748922542732694769845490027208771651584769790094593263189637906272665999391784757973900806587528462303339627113078749781659844302084390534854013565734975126015116185588216028120876613257904153066355924937845015325654181925285347344822186006164227905839717523000809439196862466064170704977340720943265349471269725891440746369332919850154311915121084259862825628788892893818060210214875589526894038121720496764407344951278729579698705550853826937192797638552459854001683999464421267343682875457787543703213854512312229265248912523652717874062540809594944788648987426794503068145804477425066575269215045131806038600889235914281553035778074534120765779292147349004741205046114284008076712359887148521309768397643031140903112237917116989400945492911839894142643602212061013806209749276160226084340301793210869844617622794089966783415469345496583458302265001309461487176398378607948621891228147026806833337522667489638962392254466505789455122636030223991487154682192295931113448269595997762741737809729337436501857477488325963476561175865815627304330352717182789667444836358454909574672891386600602515604812904546218711601032391420140899817947763964625007570799317898722474586682922868776161031982476068468416329008263887339304742818103496109615981335689091863460543266813857148578293005695620221428093460138872917405593791521636729980613503891595919190352793674143237754374714924611014941899200820987375575405245688799520194146116877184405672861625363567284660928544718693821752846410885294257493980719181733790097414727515836129431149869372088163772541444672683080031930067499457639851417410322186391853818390269859065806177103171454378445656957301411485641652576386369025071891558320252107879717966762595226584049093814612979219166475798310357826609972376354463518408049831434180181697913852074294211424684619232061200956254687307595899833180015961831020701476801484128993879823224432990287312220977075088384100504004097312269221758531377080465210400107527519713157453372124048009429209899220498731541227259240851492787869314665990556734030440063650326663438661321049770420111492276268997887375916098176623493940297135108069131655741300562085627990369545555244813574450138200784256040479418712983721028721587084037268188791801592191446621105500026216986272852667127720572278268061740683926787606760612385205547379537048616532199668764256539290144174292846521659295379480930573206622134565531903958607131820987013075225120486725617231554265989746257843310094017344701915819262348711636583666013546469032806545246528442062828506618796044894750766012032865861131146235398392111889993265684301833771634714287536619024793191257233567478356579365546786841035713201498662609870243432396278883010627746241759781204264322934906689529362770101747831110164976240307247634761300801494978234376442724580806224419900740436790868493428107879995716497446937916475679133481801338353148258949596665447981440028879907145478650629420550619682091631139301983971718219661584897997698517207315452696985104496556880151007162672276310328643644629834536350088989083732112152371567616837563000910454838524938712752961126429076095139368762042387451057193418713357832740487499143879098932624402343008087702559017254026331647897883877397502352088996790168034589210242552070630833869195709925749658358219801454863334268464269912622974224448344122779153919976763405913388468753419572213933164968781682073371556025254594121440148717686889520704682768187371097178406518471746189780192039326444556811026678408012848346075054170892068502397016492001205014712968400545757692095028939091393838266985938420043909701187852116505864874921607130613909411876019008410445932797424651419546614180345451814993107340564646894095996273659566235886766594521925418255188840979165899550968362295965547607129405318782220536210723612936251115313900555684150469877038509936785690423164135979161295359136139990498162952024830548384091576286345687493324864419755595407017380865189018026358618157803159204958869958942523285483250764968128543058864853454117698639463010516394525833952969833493371943082998412612780141906365230237366652039562478234736707888841879697225616971451957908774393774791711730027057214487227988526626764396761131291035688066532925822337656050724890289048048932776424846628953654694261828539133071609153640730796620386914637909872643536502223323556884538580037579209307386661563077656378286929629803990229773495927118051144473987721765290720538362404899312720289268940817886489004612859126932825904404357957376841273665994247416881207019279027769771222177039971136199494133510720963181513577933567110622365094430822893911872217891672570345547994119123946724145622010406858948166138938461267237395392377322201151424332324202839045626560612485282719482197269786485205295259446324998923781671824747287590135148897596041320976422519649391157833656500164148025352757540058313010800866661106403559702610782986892705614405016058371594858377559634545316512943631271813473434437623649376146950461822752001277026602191157968900513690705048128235311890413098912332421456526995041080336012297295848770646879564157633798032242922272935576464390153071493313527292202089313151359649599354201172796293767346109779257632404915832727608211651202981411307594669064231569699280576416153699595064940755747047183182358456825477444562633953654711758492617356087108872441462797613090176750903127707437269212674794908185588838805743943669993021383360634757789131410407529989440662807626864294237655517233109162693741442094515678457940668269395865833444013677751085494606176143417239341621841619352517618334795116241145023571220482908981036497909272054297568271347209419707607774620408959355434340729151344007437836651205855560123134615964461013333820956321272715275134140139743161894729841484274897924649802899904532470349179424362336237979067690022100443262910234353810881443637948204282964286022755652069505395651655170315259230879707108005221919073979288448048549867417156496998133825454480818985003750055964593575469310293010149796366466343852092449310780838395265182793229781338992875411166056359854411370150439312727974508560655575594760228387963159139147690690372342861196972802932655923221321955456870110046989291391714593916837847292020604754976153735924083850046105294425748115846460834188974976895013386886698496970934913501012172452551344087847284746331028700442356113751211081680522929948691131179993896960610097760307070643473236385462239851427884100806251086867876756599412443207342112021757347740139565899902368702001720184748696877969502734851156285305008144510494342501394383918811305742045913746402204156633500403355544195444334267312247162956559791291040361278159330802028819455797895811530172160843786091849067577626151013275379413726959596499922171778876249101910746141017784634896882678482825855099485689280564652601164129057433910772881727606284276363357606486763160981043093263886044832722761117204531181327905517186328192085884551345448228546257579038142130054405690000210788403947973670122743703995730135328562490662521162764305821534331217268404948411205759053746652360681274932257232383134060939070806476379791554506580250347540437233664996268615483418071606328462667573801043239927264060552949673188057828046530418598736258911441103210187200024501343239169574984081620236519636643182656051449370079755623025320310725009373849109914774439161617765474542255021374016245660660968199987057034197024202123449219367953804046038517346155904930316592393352209749556242984532228622959611680987324915994057190303531225551331439621012089642600668659451254852655542044085575171344858480461766724833593252158645613298413274755583339447029581582944527705728588523990734533548325749475143947965687959478204363782911210964433818873051413161410804086132941441202041396415162727201905814597488146183197959197303945689374564423716394911532748459316724906141284341056613378296144068125052349333071485971833478917842975543723273988319620355247530923677061247793016490413648379126204096202384143141972983294097444427897958768750893586822281969716668989384054481327163991163601031073568942302259646547759575886960000438882273072540729190432547018087197857111965376384298076489506954652912016521926947257929757267567425142126295359095936421118189193607822402626968574305340036023539222539857462332891428261008874219084170260475532384816804338572086140809340438868599718124697770493340532731746544207525160794643972024713112735101249080204303336154675705925850612851674718320682560996619889881112823619588622825299381919611951797385372834312300096798364757284584480614449337558006766239159026724042588800451584199223162509728669142294968444509852914209491271480346150954893838393516622518064482956581814026138468357215956634768153343403797251394631411885626232355750463755644828781904906967335688136455328425397347661905421358541826767743003226924805179815911950715507611853050476053137864029368709739189704268624968511500257052617055429323331178239231674079130346566893412681909372583891493355027443377160396342280298524017453338412504875148429714898072173450467439503053918621184343244819732893081522538420133523174273404700563379461895494831130932652998377609792700324715834418586140130474257923858822378972766676576825078662002869442020261479226118652272347950094512155573968078240935706324731890940898445368936701566681593728425492918305838503366390720013768402318581356441295790555460312947562789380102811724792538731311308590283811397832918651586469683367323872199540336667180229493945745881208688820356179931041767540927624327691814069675754279471843005849752023729442805812065045207657307732443315573563829513361786280298525841704730276142930851685304728702093732348629313148772567427497533607582656829881556514395025997980205978865917454671961789597491581617850256991161268697431905818894626209370684742918785579041334050965252520254705807653970266937017167888323125717484185233687094052156827091660997819657486108111743536266767174477188334633946165100133356695769591254942191106089418117024161477035657709543080159807037107782499834527729270050409251918159222792531236692616940801999004071658384651602380298664860307112348981707585888314747022750074079151599287995912408668636065134682040741673674366341412428378621973635926874780441513497455215653823182437794877270886315486734706999380455497284657826877267923540566076682922186441522207315514729740150184127060178588246513052185126882972875263902203114838564876677805406806002009505802287026186148217370273881330167263942546658382588142385766447309074145409021073072976681531011050028867604523751060343679692130814816645253009785241820956193769346275112084129575668138271569834427689821488431091637788350912125961851977734447381613774724129651946528637692976240545537166041136116242580300084781716214193284123399428905143959132506236669175979593725645607195916903031442050193224500032826319168698735644846959627310823827668137234157539200541658243418332803372489404325278103886912879568706655230670032529845526034899156997850679256384341752094207697081794447865210798613414647419563866033075961975588238877921884828182915257269920023130180745806201778606966572806547795717861323937289909867203273369146703939059939670655208444381720033831477569771164656003363861957203036811972168075740703580908264371713769815077778700234206122888923898945903436560416492953249137809838814327785865611164801422182847769391427525468200196284143934729944749974702996901983116969099355833827918930051301572104915766827043275152341315380521861509244985855503927377147158178968206235484608245265898353777198063813894086799358011587931226402335134623272894344664853496736243592978006333852531254690518099867042302501200394507655310563925322436383226952815850872037776244099249140927259606597641317234208338344658920318307136971646999682744037504152171152675249888426887246327493484542852639184815576407638464909646419777201529583770843251892003866531755235485641039654358930449539947292215599412472069995400558320520715468902833046945769178469897500740804643674885530237036920234821802502004898196566219289050799584607512039333261563590718654655238512349865497753148394941054377248714821147100577414568218477581342766054047241218219137365032757382567531476119395362529128954892574881214721194866509097569742812009454154269624098882609517241795943141062774034084287495326776523241667347418104187439506663216162346098052698630759203702724781716171665190901194153021563154289803757076973703440967878617863338492079753397219594969711484795080002806361669618523763062310623727648322146482117360136604902490711492740782523279960732260373471309758697579930912553572129967486544329866865201926137438425669762517755355735685337352278935000749118761491336110208475509513332063654903674811421264147261853024427347290207080644635943879912944379131636237754963232488504371682140089170221029993379980153745455231060601935729150356210028137329371871338986304276127103167992085166047843260092387986143691136717573873902129798322420725235089433851980331166374974002893529260300939005425745614782061841298682304957894672094654385413784678201732910322703342555492682952535959422477165326813571880874880950644865739229213212556913993226162617009020379290553676741344387590008635360688426193032784149421498269875515576512648293082381870718980610424603984419756280010523945377719908204234931358449584628526618811919599423002710179825413205012292938017909083593317611873426551635917661311892771284533485037643094008681345020196997741424396395450687745546475120650005915073449404286805689679240821866659051372949002623378292967900664185123892746223557061019498980420373092833400308845281673972229450148753335397433997281369048365875706828605124084826777032036710605319555735290254372564662168421210340163830241346779890387300757039670557411132391870052112894997415349839640213619467538006944933976828193925455406997475682439383995103919345285535080263615100206740352027093147452105182393891712207036540289406762253524189339598953459050531871443748066130165898942290922184769219231218892988960107882738700113461064116936479789449351284963459038960087969335196380428833337780547755304730260523489580637799969463803353129891677241668213308167679255532604003340497924007349961864627629558885250384410108327184932868753424010011223853412314608332580636593094624949724079829432305149025010172958424091541777155404328631147513560060102204078096035002084739964119147842965020750042756120812581634081721061393190852596574496227943318493069888444588397023621376661122553037041677442933796285672442240278612671711247814811987933512638032571577899897550046145458448684302821044852553739463812532902717226824142993666894036793001480367720413980185250189974189708176962308047070605232707687749917953638889791537871492985806972102418006543077416807213318966401991982497460404460114499926356025146132730858846301920756278875052014873481895384174993687042759319809453869763365787549213721032613063588896937733628650934672951317199176470395882897415417217110326925777554055741580748005467045088379646348317538604283728858610759862368130176379360296013876504597856816073706713276629354381405358978068593497362944085663627873663884728873127272063717511447430276251569068260695291418558431718417422448721952124200630217486348169304035198713350419948450441936426273577154406737533972065804778962854357093878751146697820121750608707157858606097863303653203797313609339976729865824923048710238299694070914010008823464983175054295194853364611697200270097978789095858151596232598692793318687565570502021884137145355212996901527697329891658697951258432173862576379131544634448470203841629755242788063617102569780739638884027031509339385729951517260659415698221670700077603310520161296168788648806603045557649174955536126807065763536337332449847721950002407147801145191017706621938462081487627277039390245237285196793383408945366440718263608903039270041670331176503823331388446730995323525019576194547228667329777867898333440962540141392601808443044416232613519695599745277682309148990866205412491506490453978745068713147077717437517335808624131833651763611297531308409672072633037234537264989889379626882518500448788937961475457604682983346346407057275402606096453647010929138858389214980356599625388997373203822258688170265219806322408454038102091078230892135272970635608352054128521837976338508295318362313337450717812999235387225424066977143340214793038387643041204653030254854619717684144991641826634876992036634804482383793646763629809715325073793668871054612526165786750031699037989336538923710711982135181934520259126397327920478656165867524285143467694660174572878263273619627106383479962100270045599082909746635235484143100852783265725751098771998836525581479376616514426645550660076385050300168951332510062496576083258079504063879368612881487853523359627502334586034899529064486755828488255296854204985156812750749744801805983265172973269560007542781187894558448328144069377353180338277606762965925510173542600532132375965929365396636186572071160829224027263310612436183903046407535293315977546693672428719672074199945687770935008618276787397265406075953461024304332115493624984190028851359193073945174357417195227055444777680965427572385829560657023808760294245902760912472101567930710464819552861186514243310091982684362925274129566915166239330373187450724308498318220020160334643074174800250177290848475777256459268746632099387376679504890511058622374761451512558679054967706450873201982002334374038088508953692969879454966870314915027329721017417339561940473015591871423097706405239732764401747370723284911256625208890783390839049315825698267233903333748532420014348804729805742947494957134166321326382022093707452097826374534611765401484637026369467422884493165250521110419232299961383946595381850847558193700844434208531180357052519827816008010112923825220571733604478123470500619280723274646569690884951676601141823327089733927610977055342189641355598771322846115379999448230580908712148230762883179366266565544967326365025095444371525422160400339882455862508362671125818462291687873833520591561833945756308587970783639239849102318434180783666978625229521517839055432459663257237629850639855056588421262966813311525733247249278945997231858252553559606432441324391357319192956804781120665787814942473656531672062169731376864707862125212981252207915545488918510409776817085334064518255630800558266650873319243263681470350885501113163227172957595797750088858341740559513253697620067802191158617543152580733057357507529267390001978197857866630634302901841152412912504216683831851529002640128911030349769831917954125515607445375438318548683730693778190681273218963206611043928017145412705363315704120372870127813447859344118608542585820823773319963792031572841923107755905228149157649550286974019844384640611294796150617995578724991032016700619360413071111839137769202463992280254656986962152201925413206824743992271301005585661518799941351167599035128513713480557769910221210533788245985651931973563605330173516395683654866057480740541877479542633048500373939402088857396327134466662960630675583370348253002383062243554941995461920937361089690827745961178231768340549342229575797817703882086464333100312370286958797419017121893829795006635900147253172084328070087852112488991937798459935230639158102258139679077159947048185157946317408622661990915863445866798805707983952066430820858437762679058528003502461839977570832603181376774684785141534697957734702705808109408563224535485901026665730028173537182037782531973036613375614441023025820373285687375867762509454148123421951957960862828939663370458431553607220883651073455526118689052047131594453727653825101952805571196905158878999290362909433656632927593079240515271294136407423004864757086968331523642798460936023324807462728731189624324938385619068058957440834618934894070647570889590571404509409672088362853824181811091484862118719988589397102290926768595830807004531418562025702881419366888470673921086495669699049995642571779175315864305404654050475330719403686549309368447738450104676142259938857930030717583568068242951005552248622673769570872320528395692732618245737560507634629013592339763778873527333014919720474103681210665684274185658299684386176195375174976478110940515906341385741092954614573585917570695016007922827711944466517512817983017349254789884981803301065808182054603326377276768490476184753115581003657740794676297545856939357021709697053771769712884783620543385043734116352752609975215621772562250165681054023589271388872175308240806379014934192634808306327971485794728089691332775895544299293741096603312173205527133680841942029607266275966722668034824483045042461631803336185333297602145099134965934828788169440962110286192796131553717085338063158629358869441696646084969507121079800000714454068915357951030862949296115544488437276132915706286280250640750805759861694875552503011216629769978666706275560056384379930430730269331565511939493412375295842842584404836908110649882177729483450446288923204417659772480616111632006523145634537797780983103492049093300953701253583509315285616474989591483064067855878528923264623356766131050445053179276697536110178372144257041225885256986097616114808848879843157121193455861239255930052636173622496918489439520698959988441724408487757324126536276436132212777508547170530607419203707663978920190786961356110957432511538312938271178706186148551213986645905756166995237804019427612301684895760159750607609928106463059082606610555458055031517401135313633563922888171570306614055425645762042144064392863499076599360555930673958009559632769237832649936479697882823155548373195045661529878566295339053071742503898454341837468551632275871857814314071421744396165733843167088564348620405720891050988430541500517160372178626496080820467819230097180330045687893328449188915133667926974722509895169623492769354885789654596508925529001669895081216648058837324086912185676465638938941030222357206183760574554362908430331043374302293620379938863778034037286287254449211168312465878020535844960900690500204774683944613535463310699186758430183467918458273378868028110316045433547974674016551097645610657786597809963690366808741856753255831644226807108366139859001394427575300384865850314436187745157036809110028030699269336970572403773024190695391706555393591827672114591873146510970272947817003542996291294153556621159796627438383531281964098980365891578553055054982444333038473118727346989264189891169981491451631485634484193087730331551359514819048166702720501133055113984320199082023251868808707524168030687569780610202774605674234139313824121284578254312582005839407831949205058256799271684963920899736022379887677868933780538275941377616310313944345659779685471725873023356929280355346954376171666560014157978408023534396966187183562681850245747043605700492509924842725748810834630550691501486496340008270628520864541317772824339550345421648108100899995037411793797891592122492191445609794500676002838417137537805576945817333205096732349823787503826400915542976184224513592992876084064564741704932407712131291936603950702285051425758239151156655199647984006696407024399769203689525156706076076241986988569822890226249081699974611123729137173599108641328895803868066558105551521402071501434545157318221550056432552523267006108378353516124441919670126713955250058759264062223433202305702117288803141724311721586935162028433001480447472884336725774630101603255637940556933926002016663496793377158692818575010342967268414740291280476557500908781193770966701230971707239163873365418360474687785441069223019804921763805235425437142375114269789216648930037540200795700242808385257900329470081086613988779434570755238916188005747617819943069402406796117031390195446329293633330631085366194408136408179167905910501840694074637799260082518824842071982955936933744711269156064284227157142382158650305354651067924652747611639839923707787976719769369143795462551726384994801675814016295664361926018987652355169798548314199439612371013162905630184169768386916188747546443841801023313955148877348467559368713311193684928066832923715918294744788113892845827597190126569609911836228938436701527094018895430406473679209540514847734244910639974188777688486822016979382365179470937021021291198599525174331424431616955080447017290042488984032426312148035011040797315638356251740228967110407540725906822286285088772225990656728271524020915065654838933689206054614392625750405348518456390654350479663532128299295806582546093379388440910400131308591946388453962815525215101165621539965924959679827206551293237011191768631255636627707949755199999605582299747082043657438368786441058296894502192086803220821625534805018710702077076393900618011746877498697607853810814618349999081757697960782793418203110155452652271949286124900187181867987287449232239916292354631530892492714467278126765925661359999999678697174878322777836957123291364602092905894473467450079355961848825740165410329154408326212634700850398724261963754816993088970028554502206160536270067211491127200244152192221219973677974595621395482237181471946586992465268784060529292755325779659301788804564024172436846398785613732138828458052028287015179603543450795236165301967512344900603765999456276361959713949015622847722307046324617838131963087744669146098184960876628201122429834179819687216922624604374841056289356072686656119019624313062591432003131887338321912113052674481441778734483593545039881285838469406136848774039519552217157326754046661036020094176227002832349951062357012232836578601474355695214994524035317275600682323821277431411598893190681032576368037959198537468642457927809764946171932532111916248622586234847658932126966499655310506994357188020464782712473589645900325975566295423457925106925266083226524904800489909447037306259591139350307351816879926601839000632361946671650675260625294080373362650426326870876001776351816054516961737558339220068702984186790933565981635500253204550196932276193692622351108788551374687528181489235393814404283339016569564903501602365440110199327177085244509069889177007221673568019777181021251417627450694715509779143896807206984841320388589841571169970493952002805329839945318668254827997175793056080159738911613846528070789337809857922943355753658559399668755855862198880087027148312914745730694473352194739536044234120351069223965533999337381037562791725827232156434808885716248204065174802014033752942604790103123102145678620612020362663079567041024289234886218625685093826366105587282794948788990799219830000395178483622520171602073294848080155428461929047351310400477936568233935253867387063363422624438575114255307224485465697858806700539706734328984735406977967684577971306799703897597097617412653366523930838694921949940747367988040550906541934599257664021599084283679742955790214265734434991053027498665747138491994815129285057682833941271672003533112929083956414517187184517289572586748669478784117885908540865054238727788814901732203480746409091622237891004413027027835085587280368633596854930781395819830038124644078230458297837533796598367393517891332205714258153117470220685894448919289520921551753829772651855122509325341361806474519950261775794409763329901133257639353580279791509762271639459611124747108777719326990536299821058877144238043865461501951087081433357975802809369306395508831068691591532509476487815605113182712581772540277237423045293855391804203585205003066423059636350754873939955348685490891457052909617227452226377002277839969065437348401341502424102321621515538303595912964272479892477357256402565611790918706298261964723201811424555300785072902795309240507720173029700411076034701174306870916173454231631095186753096855230590941281971151494826101369256966274448695920586018557678822323065995193970781195290740333280296757392832562578288387656759802367323773154592349627697094874526354494929602803940357408374980667228772047883093836506551698894051197111649774597538436405232999002763120705416881638737386620575469311779759042927560672762193376633831968963491383619493314019754505602563403919789933413926774873609413069994901839478506706874647601253053518999335833060770966963190286835200542627040931976417117673760116615260961099773812167467056940774797532821813638223380099234711616704820435510144481834884036326828965752838893066401689530448915756082382709671905394559899959983901751151788236989586367061123845100160826980170645330580792046800173378164329096752456957746246415093238761945440258480967917290861745593882227671022027110910773872954286122060959624696599937575963563255157053897313060199092389930140826650162572051094219464825991354061351407899340995908826159464222166421232349921304796497369330931874888020418064526119013709464576288081325541384240435390803627756460611073876086022422656708993795337078739138637733440231344327277264144236461276265720644811185637395341839531707145829495263584340202809123663195733986744535869007663426048342664372103356930552495826706499491182121236327688963587187947742557848990829900478141304438478981527587966224743515029970855805669364487721721490198239561194736850393953896669343150919363778428438916560106579627591824282458221328201113498796313108494633610552963638274208424605277396931890966695767727806001875368224147485715044221865198537708068391863708948480116872902373889937368541277921661512420906052045899103356787859933003512719072661357807119945118570502351521400699708099249088409037878288097416745764338364570427124365838047691083857692205637247156860356432442393005788245401044566435821251971044853392538029669856055388737155686562499173667787081577137676921960064235957338875448502355140991154887911205735581868601085223877997722389122545024046820130411976865094108228020291228272762844091848543152940925842351037918889523990407043904912033985235360054189567967797846637615507159107381544931323713898411322036293428426473119961993942354894755719371166458012401607473424274823810907463526314693309911278563352182857953069104116063663229716897716293255147376752779690675133454230956722744338774518071288238348773177395489850117304914827080959729770923863239735098908693049656097422124763025587493322406352220356934014938619479420790260515129585246169896289812423202232672493142168614284307239752188532068054230402150086032415222994752984046849325842197903452322538586403989508824516815006479636932124630770664877303131195058155723283812685988662817207516451278424642688820830003593894820624338177607013641021779423915720417399532009658370004507903278931831316249777713152529744638214958953286754905846138429742103983899028568340518821778558081375616321792782250243169160105092660357761191333616298485007010249029735200537292853972824092360752098049590979228572570298369097746779711714758145887604558849143752059008726488321188480716879793252734039455231085271330848613823011085507860022965116288077139935127790390662003834521316947463353293057333118739705481666511614199238858231703704461340503723880115206424670196756527184649997360202494198749885778223934199462408308337077707709012950380788201565195936536700282728988147483920537875037736417876740442776953156491220527885359498367679288565831841156707129221264344069911116030687306070262433541162800886228506939842112656207047946026567853326590842494504047757677063883941752400474492909796609913670470523313315182234018277155650907827990374175422230828000099977681108870656469437276792292906792906169048493833362771765618906599068758742977900691376321268877025164146553937283275587709717689624215033141420461710648615898906868603453621711465230991414293188181524497900832171118985081256786784881494698426075873023092580675285965751258058708734469965418476012940812997338254752297874435643931052363189089363268848770208335847238432705795457659912173016314523357803965372180091681104462583048864943241167645588630281760786895521722427639433203062082504951483931566492365919687515185124423097018427631491603234976578451980466563731132257341164949186186641875448682211930957638907559324433606255974486595222610187298235801049478863450975743741812861905631503080506699687456297116569865461193950891571944750291649127069200134779606331743599658130249165673441351714786076534359884693854306457303708531023832608334816748855242625564976430366644399383174437394581080453023869673001946174455239624547214155724028873070379863440912686797267017321570302932039815131899558092089312663457156200917563137656455134882482129353301841366126459274181417087488853499447021160237158343642870711594833731455635061676925656531026413873582719541861136271708534385006492680249860198915354745414286958167477224342001757484033794778072643461299834376363905340098221631766744469001608781298551090481999726186422708374831812960514137585922750663181618897347716541678329440481479007386877118448462089174294840873000913698005134215474770960789594003094510786253353038291642070439863254740361411922419203645716364954308098550748088637173591717160694400742535986374010833823176019475835946628648340256502637324477430888654461531348833170327495675842762992879734182053118932847270147695299874966351496012386031539159040157193310814840077174152125405570432249530478624400485323112298690805427554334072308777990317378493616698609971956596159916876321680077542095758928745636685475944383670338653620358353924305442955541293194729925357776182745585544284868014098422092432512551099590162204068339850837841871094497339736052606700829710563619998548793336929052245379445883385252072361666939493323429541538833092031440995777220451275135054669570336105867239517464722474760034174761907092639631121908649218482452184034012504467357575454997779345933864598195270950130877035629338096719676405850480489405533149424956207158687327068895376945850276017524211440267056565591131104468879018157082544910334318774422860576067144570880878646290655137890037155050623985126131547288617537624131205133580963401250262430110489171929607202280687920576781793868848329474486162268948257329911141268756765996366722294642975581787042155940381651522024807396975612866803127704399433320967969300946936754984270731979412835660476117764954028820688040093621851293653489639217962648699528031799619595638543014944119095929457085699162184080297186647734278613550505254131186772601654236573564360756631683724033851635488865858458025831034335445436933385298580772567456940052310188688221592554047356790745385814164146300270025627447985937494269555956637991316147101052987562670824379230525231753686884280633572072788531726789006290018834334031000500360051267429495382809503005698460621572777854258651892303317033513490701122626593250225807691515109901697490221283245758374108377056078489489782876269700706316270941897799207295043157007185737913351036299756875793098917404765492159838181215619480746004038216361740278719204915642411982923513794232464927048749045735521546321493033591120587662196341082409903140464200422943532657801022980106160362618950773522889571168014860364543561152569591171231882599478755994460853105455857710141744693806333381565082619560261549105474766531921332497956719841612718044901195259845364352004574448962440177206077822012401793973830468079581370921233793636576649383048513348816181119906747680190765065883581630603867965648429369506713823768955697705862288086270795550042683986917466230512414828918339676890582214557383476350931361822598553241834232280731570675903251600851016214958260255751330019625314786926126138446720455273054131209888215581443122579225396917484789004717977390514367680503385140283377073321210246319353753917942188712652529663727877791853663558558865755488474156969860262157504046624518465663762708484478379187736014283020586871838860673052368474034039318765188189324597329646865405432529068387400836739911914897261457084824232254825214664849214687711148933778892331284332709045067853499909161532567809766803489844066181264589949766618494983440105175002344286466907858797200113350185955762528776009320456101218911508642895963058439611013723001822462534528813673303378440809756898924785546094895494561776851420250789408690021975105798203808810649491801433422675546886643089384846791515816205244135716395362151758189333768484034332147931849586058888881047005620099779672563659826643559919795839928018292277421585556960088614455109041119615314086624401914306456615189085673164101009723477266426310113371358223214826533633286895475250161392522136200480961368069232898399029896319078933451421399244655116403782884489909664480719063779843318907855375901277912140183979249412524790913242559487342746582001397461995003302383713919348346113256009445310318743785786379914259366864523375411077128361092648131577336546293634925594320041279944149646180245855317394844846971367798777328970072948067770774339323062225584078970839892024114723732983385117104329097240993836085020116458166994655285703307845920897840453570476488087261053734120903254679518263896439284837857358109953306656335162632416711661894322698219424214294322916511348161878049176423706672200923180360742052894968929968510875037170119738370703621907762084292039125184483947258442377563598530057859705005165055538242494854632941925101797236000553438273063121901520451345434259596254834061706746829815348076220722775376351061365136394388083855972858910114860160786176770084416696261740488741992950402618153221760778173125185005566249119591563856370538003668698438234970374082267546357201611940669556530373196706908950446538519352872848769217902822163414096846204019693724294060015623948857936619866101631157839737159024188341304522619045578250831736616000647143001870951415764877748459014572538607390771297451805127157038840230406343819767372491527398901093951811155786615684107329612023063387200844771089890854174023778750751400579713312828552913977379555869137907330567322161270452254446145974706580482117397469551895225970523530491727184352767382709857693133681812422340869130466966227121108002727521235636502429473104395635241270542398559998129699503701003743881829556492810049181367407675701756021942470242097350774105165298735161298644710957712846632801987811681714357683615481159045580796498017159843889015601497979461332768353677280934024575125161913403407696048828037306835362192591243995013234100237037923779125472116419841057196181427810041508042202810995430726607522877625336838217534138844817745702354579719847387728617783372790865529861898773622357476055555665632719196398799312355163937979774694974829626216805749904195022695539117878031923492018363031488301951360557981650902010759643326918002099577805700353710808242774584352258423806900806625888899842235320010514281880846782334050417920637751875546781997581001658313752859296269065175380991521431365378468397509560173001019077006555275822739397540530507289877827429008748585293938099481229525412019845009140399049218308063411004079669492910380026878744231695793207505702889755263575013825568092224413048162889180471834958122274100713259404351317149901869321539848316458006536457539389208485249431531234317305544522944604834666353755803756393012066000092887840857012964943830709078949240457518141591076982883066898988233086252691795641118521928876146612960816037794923291044323699004540694442536034781623366402055432934397577889439127943984370122539234867960023621046099672865893555037321419151226843784675802084890168798873418797054649015582038816309666374713892994705838941874575297529740033439289505301407502059297108151645389416649791497717995775547083572666646115063929358719813113571835260271874884974574427793979789531980885193045137156195195392564505901222387547416835827597716326900093497830101380755784526414132575179655428889380507630343513814646010763478007449066000729190622200349442058616915108312521415924804107360836706171606950246347557300611742347208528856283667340644325784864191718775976318528494793367670727224751639320520351763020750499282359005323170228790400309712338670373984077043624876206805288720996856021686546360901452999951674290571646057186766209457026458348272391950862990577358858609749926123456134395911724417824860194073456120852498300694713819124886894905353280856617176078878762021772693665282033782463367324054009547981002694775516874212262251440731938792492400062275844746427537469000229052835324046494943623571481383168422737760743479046589885350422833655447878702734272065447624289223023280178551561236687520418845041043056058542781981330827982392197167691992395849668579549219157391584048818119316612754232575483123433104866910355510447843754421822975838325945803314597541579690648202129495833223426089671569090723487970101713706570935071002300619352826007924744974479496960158048702279807684876850495171673841018070093642389834488727168562948501689371722088054514382462990148929226512284942004661238906114485320018811088043980324508820776043862139757829719827608792059148597275638352782082657340560378268445316748269238516980141763066845339703110871478157300021655917762121988010704683928864537675898693748021905156554113183758427068268044119460670021495072763869731416202102130869482866705185586912642853655691681869701059928634427898165249213200348575407778792884292092269194753564208498810389325269052957771613334549580541909676802782273334632565535803787733423803518333584675763010329178750853570987355332477483143530440155313144209368101786871559200321910530399556186716183412609511924920939126601284148409846517666691867844361315879347196885206773006816588605957433823280667423639151695940960147320621059588840256077144631741963819572251924295317624337928284442136803500359207541055187146989897871512487711760791916093848005528020863346549448811817474094129371943326160660845953150007522956896085645614905259414959993616322295212389084741757110372918031289611211631322136900852105297552439524957079567054614951762996386051777287299821929127027635001818534552268110145821649151526281536362833955609997617871834255775736872019527004491746462951042190823480031668234561436062742813876821314899417480337891838123756665324369159375077356920488441877627642394130517593381984694510359876269094633713229602966758577842565563711810262485378396252877560047738760413060542595822031474280089448864278495565198031115028754651564236445972833580629951549724658826612212908226282967987768762576752619350149331189126143217499550478352711784720269661764119186330026027165896356579823861591434866564975175554154899747657637870507292368801488835636256928953079278825084614167882587010083864671752783737538029791876893887361888856987134017507490171255853790217263268700246468097544647692700289279612550156687544079152179371622905899360816038237393244816655721474090401952767579866117765114320139596214792270610993522965751122919965953936416121626915907935250936942920661631414970196370911606097804867530472031181761485397754600432563068133083028096883906658024724982362130232363836182452588906126962141739514810915154636280575251611956198797773790033763234974123805720517571027453887055876804872481048363109496899991210559854247696781872744077658230358796715011234892731049305651619036868595630564239601919434122620238285226652776124124611672887471184598279361722959423517782027203945807504873380555788593885742250353516207843335493198273985138559143737929653938643584245119126316899138707277527017309823824158071236014199432158287334623210826351248723453113650237041852184939616523446188444183081575556023134266676202113048903697328650914609349655211698630368770744711367929191543872820118740164580788302025241858240830915104144307278640787586721219114793342781429367743152779702933631604095817762720359448724574052220381741449052906059446274848279674559119420647079984914637967757189581764706071914508833300140218568305273335983913069884938932015544600598503137105200086606531857934201754448488519805401183022272221043796938226893430758459416307919777959929570261518913304424445003127288951692884351389695139014719198213036351800857301048509796543877057407798823181629023406305105248526473359757580579013881662384363532784299097540657433553927617334129421769785755225997228112773366772921189990113231913185056556428758402516146598522775175405899615689263372484277802724445408259387238709455792625744307087030714152457650319330824103933968019532480424434661211620977178546564469572460736843728495577343829624737551778176716154491132514978206697756544887923013664921527015209069415659949446831802507006601700703576281093024578336188244851813137815837300107409699109929889768501026071171214891922765608834423998942292942692694564218524700570826717570004865070291392899129922114250392939966926569178552661752492536238496167670946236042875514870738390675001593384224893783615322186201845557375777578035468778020390194780750900799062140557268677613263894069153136235396485392607180964562397204969832663922274502321327736013894899892125822082322707534955941624754275551548356230367531279914982637313029312726058643267033007146180177887167138877435645029147664713996559387852691225983754162484361270584286936501174301138184300473188125689987023435985759767219914127279484073426297703444052432235924257626727003261168364633000785457549132092127656551260803395006347266858126991991194884525462580734666907219417173784807692959268576221236351226639899033205624384825501251514153298608810017586358085952427846467740315476640404338711607257768597498664263504824904461703031777552747276835742932682138579623458715625146008722993045070478113392038662994985420989734830514013859509873012417668222939767748076757946602957576835133579474839869162158485639698917648810593050623612180294358875703886943965661138496302808592128442855721307103032677033978749437164557128677252012816922862737120663697526112390993392039262465638542932802953345036175335275270451365522748735695358592285318184544863547127959422445578920112519310427473728501415681625127694192812127314993450067908492245415566539830299115192695795002937431311496614034877800887996836812636614343515608507377469927240220361417062960788562496386629380461525864104287927982467589557085754842917794576923331602940793627360606490026397811114611597401630329382422431935169223261029364323668436020530738787807330866130873004410412716241377955541884551355946807161519839942806951801931490174495798684120987326114190689405772478656298745891928396692539332389339645903501713760937712586808265548105083710661055130877887007258363334747332184631093113822951109672418870735512979990947661889529732753754893356407806863751565975539608981398941421408293001262328499720098021278408638970487385603783634516560960929352792027010217184790537274338667986388412734284288221501438190881282968397775666161208551296034734190220402686543820853954714411171147630496298807230605123483952302441956732999852514820475446734178027968806786478281898626931798872030512521994164585676562111611468354100030295852934213484663740207920194951931503153473930969163147090526084409175226551982401529464876833684049125362329763415795537905552060393537179829393766276163189182282868719639921848296305348540467503846917909708197294244385644088261437364467221986607717052380464063295770637378003398528591473085643770537374721463080880255274264024395257749336388751288552527834405431763328204308571370056109475748203703183671954441724748255892171156069294833089207592725936842093886380572543801571499092847870474268496303125826764209973415488441201339622878582517476658677639907675992395061349876139886303516245813536939915915537853197336088024001703936355992860996036421298217027493692043730308834205772824786540728061714654540696875674524159351143830969714594138124751383802992142302968029148425450578069984100248038365568553562397489216109567489420765541234896889836697483327721899627007107454271553930869342374535455831180283751965547499871421296349661809238834727590021059960939017750676879536216330826255481513563373426067181404239523809315336933245986171952165999760869480819256148520022417806638577795764425022969452190969072530486225318496959830458686685660562489620125607715041031158514553151482860462848582784656518264799969054223866956568399724448777161684271355829091311892169514036631593669219133184695272522359415301020755457126560045155527998178018179546364383734511532470156177964833113156672144388513121510805215405007025751838781502244416085709337821746295895105327450979244361520453859101943280059437351114502803744233468296502933119630418212310047265125597628647820287337045470856091911066114416610737981979263283381480696541971713813502747317432192613309625421383042591868227616375989031616232044151685514145591197940741162086740055193566063458050801934698280653071723820598004210466214424974077120114975753522101866861096987141464312017481958736114142883080676663120057097036440221517969168795182263848693418857503427446844647387976247457436701266119947247388399801718916754954748042984271357236476808979798912346386221682943450687463530182116387672287700364067732714778813326440651426475544985754782096909550029410598107893271551857598298186404788711021382105775755938206128073667901220856700575095747546644832463623302703742459334071503381095859972008275104392019535552685925471229206974476706706890974085035032700718614937538495151344770101701052305047077185637404181477654356563991376127045939592804711883049895406278760406651351829463711452282106208722546939051850344351399777031742517748055484061296148245209006887187944624702987963156556743987309102110056870912491053200866969094121502617908113283889051916829805965442489862880963419580350794600200436462753534489701806905691187300993072715345655327802229951594247996483379794334889734673072531760340352742432916339116987659361841403576321474618491400792791909596099715511613527647924565194198447186466210738620525004800615152024237790294394068840826149696287069581993995013354340890235122673120970819258750659865785873487465712593459754442022440191472267620577564723051926694869421003383848920967232810250689414868058845734134832181203479381652127979583196162866090966953561758380934887785471317291047743747979626523587462308659454393796357479616008232151781037475266550652648886409943453889721532376654966634210074372122909327801506213517970230895156862098218449037619942099413922477093462785433948666578244079488093311528374147762184208002770989205598501967438785497327448079829378495968068334466619971334587512880419995764290029917335843063834069210419634947897542754887497892770598419992698516940698753847891361069592110430971062024991797359829721920917580238497635951288398854003963230751223070013731583885396191607331927843692370249110788054732727507229604262921439601469614604022630201533589269071871566956585452008437671182474309366091415412851210541957186264152832046988911819366246855839458177400715423048832165808504517026634117877426554823504661814796258173991464094046547355772588530402224715700614965820104695052409338137107099700570275312989645586449380025214670449151360457208076017477164635740477410620754399239639851404178606198789355835860258840951094402077416150652926486112758761211606425332804839017460622603085149298712439448967256666007586527593078375281777313448368109126602586969533205698318577478026985104191750822626962255039179881753944723386393188482594726909288478517282779481729820819233471746593560361730297720369491532234758941399488632277136232628097116718075808268214253264597115020223609485636448172412569891972088416056708875125707543190941508810961355150084196688165711511689981137467747179486094826540444459041721999502718782797870677096502652897748766612849507989760244555853884210455502594564322253283212211972954795121553722539915652878719020345657721879248799306165100450090173187738549361689521519659447161933652042290384295980917372715391907224439671015633368973761237479812869477681313865960213749714685869412765306928115284157387508439645793515379321372044290302573398169575336117719844798461694236967811106844158038721100760612111098661173453830927300547765340216583903735738038768091398145606839739541174723886382462123361193487805404247320690080538882248927353480975652980712615958980182073119480544520324611835834817925955306364182784467476860577292897987327125247161327457291720316811116085113492178208617687453243162001566892747313574283890837847855144834839002835288889719122820807023536690180225236330242696032032510066849841543204698620133835189085693250409405860917812566136374842191056230402688735380566325991164720280926562144734493007622189079653546095955439374327002465703926129837382535687147388544362537399899254779611772173973791847519928636217113472020952495726472547440498380040958967335202657945315528630023739790377432101516784394067401188633350814163565500904933035402964895162437626583566090283269229928987260029292791905016273701894663016020207406906207598692606402300249103429632622031685935809659060057084922237039095164754951661447841157657817493618064131198279633025081514760348534910073974577460986854852829532118436550490398491864224009397376215428101446064820778495529233393217127718904399975448094359577567434378386055407546749815235171286463560382471498416197608258664699818894713632928843744492818568991361282935068472274640786679903348938261803485345953195983153916184728373833930082497774942996169470739821825984792307227635359965708794737170046300763111502496882438307374218341243974070396161394962645989133333613811558533381815945524786013428490672973683521631816985589248979897480001257749445584072696161094400020001550958091503379401818174257212327910542659711413378281356208743732199519959171844235146642662399970222209719401256039826406582444883219276815089985189763697597913762258372590126957443059737165575080736133270210580774331879471703762308575181385537941913899780805372302881949511763640381288819261550985211981096182834804279221672753523687250895375100348777768558956879053016168684166768403403563914682242442861787614655077337549385857542035250070634946498572699807137682694818156491835099590365041331128265714595878410860673123867742985817218817878971009485425250348135903041084779985676888145833806733474352316079201347024847069600607338499591566157459398272878469180627667655318553402929075114644404844313757046187778137868895642630883453567233421467977080633842270092758589636956484799242106573297708102873196238840342339723498529788375157376086516805912728834352043180159437788275202891759317906986933669413161101047167977289380987715380158814298514460031341041282294185731086487491301315227380080337624428824739605553677687828463705598551470764253271486687187908448631677549201477722811229517095894598830262342567857088041103513554838481946046089092212496497192812641189605021804016419579780369737182060186215268028791776558333060077446130976501442640645933108158251554921444632890463183792100689327893049346147261608286171435947539222505238272148020580179599428818123765259480561436604831519481097292123065674093798647231636761435398427818321635567890156228316336480734852565405081288873342463646047900240269763573572922716484027868135619260212732099409816208073098034412079192081618561889085984344287240803402777863168561003670733827133319375895146035366977728026609645024621999583882237957961369535319505938125376572928911832106923986070748538599512550303482685042428374874830475916029962771726809466332451533465287053869178679342455538734559114886522625797848119155422011494495160498096221345635701457049333195331667560563875721772399335510865885568935272833247029624653325454555183035976116733310088352118394036378563653179971473733214726759164777451984248616190808317345060164341484450913067170510083689557903611808477636152874056005677921672819427130449388140170736688501825358909415203297955451168351917835624393226966523586698440144487744533115576294108224955314334740733403944273989452951331244519010952782716633800171324877472378046425888430984198890273845756350238136596903850548929147827541273148136245146715624230653092672211264959012091846143416535622043491102991462198671923034431554568323736276759161880823823959233893482975244169033431528405589291551572382362276822993465360155200400644269653871107779750219951851401883622469120055205003711608396306611808164331316275007445211281932106710502990337577281034778611457646511875389735214721619950811091958825244942068693473308419530142290397465159415358846911548062729102396747156153996407426463871462850829280220478938194766820053168570184832341954242626552661303718228620042203920524873519516504184458085764633286612724002197884942989530727277513570851387615121819136347409825609283085046940353705117677546667841358246784534463612598188605581432171374417525050419480431156457488907002366152846693362276029924596329240508748016852934529426738314106927659499242938422369644037942181947248149612675283069218517191565488792812554266693990490970808013511313958474349176308805054716428690314919799597156602150220851464776948739445078371156615302863793432305534809761683244002608369645674574051523823648130066046468774507371570413503017617553328153612228646009616587741279860445096052141774471707900929751802758217182535838651245794616689885966135529788928787296383829541544791730078054177239762850836200342977976106522829310130783946258052315118003950810510508245542144603084229045360460478687382920431144429359961580076897598599096404239037011381458357779367083859934897984572550868706511061290191905565376207231479307438166532110667162988405160603670289552541132842998171949893996713969944309545793250226033012704662350382931050285867314342366467190800940583882938628150381885994989445190047182508271966464601918872903107890032901717733488637848997098000699102400425678654075515631467798679022395727958141464583696706498491848231412446110080241184074274863775862678277487728347670304640521254249169717393559308037523214597980003630662695592293413708454153625006022325221271242076946244834335704150766010704539611050194574208111888482019616553436943325566396497545649348939116474650157853453586018356912165743908045803647348361621173131816412051487303102220294259910865979446429231067850294515641552394279041542631710081163582619267689672080153676917942990288807244558002055444225170616962669292740127428833721299148392662096654153521631186623839714304818582244110719211891369179364724088965514945639084049092358514995117217648550341934528071388727834716311064961502813350019006901184422241398153467119195890652794083783047703374554950447173283053226132235510098512953335557450385350467507820904422138984783890799830940649406645637303421434981097944307851242903649052472585241504019436173398267570554646625510503624186888646967137887420499434338810203770998431680733758475659160785050692097080926907285859348712107038434598290786748510046292220490188084023936108906734167456670448054270734459811883508006497847934807032418077194235694520533006132342317592304865131467488607760222763071350165005989391338404482418093734937402091835043049410219086150119637448450850633650247386182722616113769766202747896626933571685706106776285222852856102527843260199984411574261752641125628164037703767370432605507602103385164338458596892291305296555314313607505065611357935028815467325411496892801224057211539673441638938808145025905767008622822944139816095278407792806342196369302616657658478194366034326379291444092283250747380236130861316708336374185095988267138592123161609806448539844228230801401236898105451085997542513839151662654075481639384710580631096119414500228971348699802038744067001228890880989981335416844569731233871678701393591022362150387807706410718731997346069531666219201409637724590881921102738659380273511902241585645129602178864842787830553095192112464257043112500951798002480849650964849111088976752354228535960316870784416643134364833361910204183612980976362504243447028116312239797922986536500472133528212641196259512574245432250846791427257141875667433781264941290355760569084124163927186811015268020874741280853367174855649601046888320755811486098062685208948034003911846991733417710361026661403377467469577693012610284651931449601956899884946075301870353193833546303286309137311449915914966534212851349651785648276655378657705243401165750992777880135082236686465502295490687004504660943322845822117916611584639518985701881898251696491650790285931079189565834744670844564696754468680564563946509380782163943249209372505260917438881299420392726801101708895938880987689534127832922499119481263146864017539087584438739369327472557856903267434217697061496692714201620247610014418399221509208816324017048641220793248130198218408920135216912594468145501532842448285766091490050537241241291175089987133994703914251375972881372676720588660320459520020640796691267853561040015207105408332830560775582065643234869716365460718297210781848919126786958187268108694995665093090631957822654384605340225618552231679656558856533497626117840162342493234392985971121630827703620242518463631011310127782424306016826574337545710302169136438455187252388320409131924387662043070664184483575435538725110798319338454942656939258075596848773043485630750746705832908148948185617701157457974522797679800241863633379339116620040817224138667445251504915445127364179758152408873255057269020554149324044405854927001914479345361404562601334967092400436032976291489661692800938296230878004405772813526542367611232247149975368936756981473514353821006863030549760427178501984975757930077383371407485449632325029077827590527770995635744215663207843507028989945228820115237258303858241116103894250577185413532991151114226303494787312537739075383412480145071653797172519273622406348511106199222648555337801928762236155410314849265292392018252662078030669073695352451279063952615176935710994544749767626311592496456934104450170523083949551964654994792891822703635767239781290831336147374806090868923172830156645595677549204956089527511379877696806868043309864376985682987409180053556369359394719084383324983072750112745048595946808561487016947921154406572464509391229457542801467037220901442429890613288587556780955461257413603252579820549752282886493255060218715978885536425852609100160211350842833791866950774107191184313291509573290337874358365584227553920087067475113246197376600508864972101736751477436973808283814722021909395355491866958459498724580322078744455810356441104793645811727601080642348035684680431519490115575227640090549865613981051801136397213891914867754595527996352002990790322822869746858171905873004444827812767346586948557414305999000655571627987787111471704407498701740257771281096832921647510315520653258431404323967281774584313709223333883566724511217655330230317366894085236362603496879904462689247138356081683943114151224112055195219114204775428545247431487109180972888878281833988194487754444374703506989532570829667053884670283518638886931418340966042672467082772632255250781806513761350734210930017512476416758817993370648368103922007416413821957199360737236781915451046617809745732606638801307279650966212398258466015581944823239351217596237740514186708398525449832037165177419720342472104604739029211865055466156581923900489056882811732315330522584747392794809449012232054620115107901593159881737875348099713041346856452343767100979574848251253528234885322634767396469831557537721988986178043011853539759891001026368703746754172506956178524579841716323195028152607358186597439758732473943601724211946900248822706444956983740201036760386511651161473569601879414916547058667775253151398151432774121174082424479695967401732099544592022345016111683614654683387232613689390708495718715055304005752697549196858903497045507033712137986829510648197297621795098475547204378830714976750712803588856659449769181344592822611474248354499810297937892355068336715133439847706955199178127711600104264985046113463677774254076052901088756840827676062777914297967510195264072914724223071621489640750531296135656237930718784510269102647072575810202442104408298503069130837201813983928333290077424232819982120202768215614527649824370999799889740152247211013785877647294143484727185584959770142407261385711401387358710746736690981708108264882279711522544445150213693319790628475226877977834882476822696669036777064515856476360964831487047303279153869189254733578809250106959376719111896410681927295319715185295972514026759257330913010276592230040352868367495791689061309659337982208069417888343619951793656208871354987681568639675443809777231557430519514987536555837456087435281498889915561687078881027703011052217009373075588617951197794156876170120346885206869242993446295435911070943061875406566614267372662181162127642543421321230163309084836629626639271424861691477842700358729280871665316986015393901540166534823037164313865969394394890597811768851391785205432913278163787157968726880858953452742050951871139962738607462827967596383452385730452562796109469710943638258006508003177999726786742060453811940659474386659280307863900490645294786431584764734409539026368941854419937301245717228693273833152777647581690334555415400591243962295036640658980770889554876051561236358757402915270043209822350371332729955231170534418011735309039485546382725460650330666129448730074787787041598932981614075822169350881690111494316269709069690212658896371997762059272931545584241330077600069654256908350556952427315892198599042447577733865514864453507946973349741819208660607736618322891017368497898402384868116176417235227732089894050521509441142359608112558485831884697534274337342740121208457982670178195722687904442782146689060418957041600795565303527319545748506553210393727844317381267593658302631819977550871996619139388052165711181058768321799964647813415699838985979080261842963461451527958396578350535205930882190442565218423224689729195117976311496718566402445701209077036419350061106571981933980500082041163779603676008196178901374456335787304508794527904600928179799925557803068715093156123205326428865610464810094096739190824019962699787220437723246839430913134287315408793248623853568606925379703532298269215153036625401675791934517613979172853446711460452410816187225376669396017260457711194033673117311462137935732766827841096902420607163490483963542721923070685497899811867357937813318244778793867171415147792674475210987591648165102566386188886018848136667185378886213230636616003004650171542582970931354298344159890625956530663064878525450162145359931710832660772653382607096154237927742180725517859720676554998493069005063192299190419433124558919977495090264364860813400131857852492419019015905434041748649029177416523463461159117374433819006004530691574411763493228195838058547007993884827105330186157844598168633716158939388480231411735398344319594074656681611023323600735588572358688472537493654296083604310949533591826053317337937614611414975849436739056795608815028694058992201678600624796504249957487362316924336410293826796695445676121240423206722165175280114959957714619777440969673143194554369255709898744800074274484523854055243720608917934534481323460009083469374740067385086585283283562958790087382214155938480555332634852409134808687289111865304942484539027034365018197403403331770651618471675268665078425768892792388182178522917083493821643766674921253589937248234719002255739758728009798100420242665564281715115655917416614519536940191888681995104091588985236868738197759602788997275480767544012678934094501612644937556523018435171065975343959178517463392582893060507827426631505597644481272702945803568371502814587385611757067160872377719693671747699133908557166994835668060157569225259639177228010199405364086643339380659439024233506358666191768681558561832049517501900497493880276283058769690224187625454417505426988298732112779053863031302103606460148370579333183473408319445318102619199862901636991336748674778179915483808723584797408881869427804794006751293715497233209816782120874590702899392090767161868207014039214792821686147363320391104348382605626900341940369602357839490905343250284312249296334043033784826489029049319000799404713714551526938580268795104628094981898120903890846455512896641741579255469825038262617053698488945208332188631086398223410937271871963208460143656021464734866912634504968220770225533108072376203784338699471584323615265504580165832874434463811453231922271572685925699653853464266353274179069058834849384843413830880320758095480159317450715248306934096574786927931553972511767004499594559891802452763316005990843431760750763781053156660396110669198969003954947229097039766581402822377457597111588316184358973165867697362416373551417787162148197841831928395710152274516683326200746415309710881325967809068336224982764593548170233209014000940737111702198690097441199574345806939823480738834346530799326376993201643233577546710911055018475608814899126257803908087720347713806751442828132051640558577577220884656102868407813573809815829082792942906719010314260723231230436412946854332156401997506203749384899187252411799452966864958613634261506088370554750218974371990489398396213572262254382572646836182080075441747861991315016705493221348910900361490021962482686239801697434361499994615810241816290337787799913187315873889863159750990869833638078639053506074215947122026415776707547472549703739238530716286909234828309551871426440053260528492866961010631398546765061154088226050710339417751117411211912685365579095633194963961892205359074317315176421145736994092919811518187304618849120028990601024507014707670331517506023455064801961816282472019154057481741675609529551180817692643676543819272141276419626858047345237401530812136671546739573545428013233693415663785928292479833190568653306043172499941627105955845653098928310497355620498277651020661135616801274543574560111527273749936192547453575132006485924568211621636969290343372056820578678226870379132504484782228396473825086620365984541397391618540420556196116684842676353474799549357941969730814813574216738828739863572840111474731736958891554851496113588796912516040822013064680939649673945903443056859167152027039439597540218271284026633727595666782286522389876822137902103930398234708848213453728786310171446165271448807120464517207698069759515748458961873188318556456534022572176217987481213582624370071251361200802942028769936538750419748453493715817446495562034821759287950680542491544407759766487044723274433732435904483046262962627167123348432499255663694459444543783796909923199480538522034777035317330804837431907466384165999927123371333553727694881975318918312153558340739389013741977229997704807007979823729790624489545671960715771165895216029050112470967388897027399380898725244687286048129440898360573500993249426714225539420351199057040087032263821017957003095279852537902520528779057644376542775760956702684550638106765117181632200646045836745356584385953466253347975363335133984685945225218430145806381877768843160431064195174502857023004912403735439395718590415933942565193459299206738197359327077888176085513074473306098869481894749131225991541679942607823193003140712993263392417817799052609584855227814395152154434775232923238331323657831681791960347712834579846874225603541954915752397700969660545820601626094041528770753306696421711306896108532035017954969171048108100984101603347868676584685953338170682074864748320420127916978406547321077560002397210108079205149802212535970060699444946174124586690347908102569585327429686192286824082956290107403192540973196426584668015699719056039329782397754848811171925261824120479937373631826583529047214026333890878230917492534446000495411998637977953819861581579708915837175569509823196936539312811520910637680571664970825538457924050742373649255835736438273594465690339468146176335405012344799020406324064130386942200005619417492117583046821094236765113714619628764187294881012369060357187235881702311331986464735134372357885020583636018381101399045222517965618067032344193742729227544306929594357713335776014467243752098540167846286874249841336764507084940843481248818912659112354794518481044988541030393973970031022534919145229873456832080563287790761869134054968956930345256889382631944967623007480826500620789479874254144289065243427563556756096457858472221340920167508861307518240300257500809251663335387797466141728452573921735208073368413636165183193781225584886090404470184109020953906385294622934843053283425389367284102413310499342070523451636210884411679481267406144962022606514840807255367838692077751314835058958142615722364095491849631042198072621284975341706364767681016117164239999325505491544076588784500483683168445745951343782083168642349702523342581527391965888158389353296145348513757760684062409848092506977998830214772553477740700665911711394037819835675647543412794666598863359355873647817964776757514022439103490021626199517050232710809135123094828715660779992437799771377493096586165947902073208224261587387563794778213533569474068306244108986157327316517626087249378690711738115437735064059355272322835826120583108773835309975584407799891776992843196705467176214355937851338109985656155663459713713374254177842007907211354692328673449917597813868848829203419441905185745973708154534439438071418305735431587013732920755314690317710052060108444870961389134734503231269998629345548792635436964090384885764537623763281874768411626949406161857868656294733006883599765039256076340601250627768840649964188932532750030474717597809029626583480810905938060173640562434654765875604888839432611887809989499358236359677206328881145619787154685930562278467969690367302444329947329269388305178521907442106397399576502316232292307542494604190500716261839605582882621279330362935026029351007397838033471255454857761174364751179907978031112021431714081095134210358117774761946395053139942129468245751688929987883061578661726025705642051064798638302098601852079620638996932384845937500399577299616646474415099103787147024541101760902603384920231688881464420251765709403659825945902825106060946568187874095404309611497790674011374009999076143055148714611722237291044843516168530488161936753642360712170717921035780343715336170648180571223215820143545453679527027367694474501937046966673929795198614946246822833669731743253296352547536272580411384123341301201963578589634947370337107779335637078239621376029109508791498641586407664427517549542643938631759807861315722425876728388425393662197028724270574441206731331956529498500060241072761351725050704964016162518324037376474868116566048551223621734721695207077678271257367309837605867467966951558421056687216358097183781630329936934515901337304455622470748580627426546727612796074902519145020596887497969658423055198146844579106011221608479604072017123194111600558623238600877250866398295938053519255202257419210717394486923146096548799622891819215646367149937077611287653872489394704638704689430268480847023204403501998243189514713733486955506420096907963541441947118926823932368469032141213243978471986045215157372710969284428589228880793586175920224528150100166019973849898620925007540376710854671565831315403854467679561573231791257707489735979883786844099274993082240926532581870129931730807967091293533266583038841146291630248111160741085072476978205556251208943228259430686277268881329413252876752384288231367291993826156581901285415385290042636200609712504347776269604588807556020069728042022909391766671076072324990748973966522600088949959689395255986469352615717440776125096841614400373763644163650233865191034905380219010175721429867989953787202220296490172147399111739267828668879529987758768128854232412131580804692419076617888022217430619585349462707135168380204621930700771835390264898757327950028552704464106618734971533028141945251787931462124738911066257566532156252064947280059629067784216793136011711943475598347199878343564015606052877207464593902408824305751558045691015981489343430683526466987727804366766819998421274434763474775293759033438662494929957863398269504280241319296150000159401208165979238784783968036550003952130278097365593136919882493617186372901717010452756874310652473640403209707855814923736889761581730169012905246574767297514842258778848916399251535819913849220886386913312480352672336815073340891302124503739521953670174369836804264624775280096170191707699079906354546904433156202090932733053687237789381285013311451421814075977305440613698177686895687896838988424676129438963922238308447637267946690403345997260702448345736796477634414817569747376246919999228247204105466593424802739390617463759803438512343104435657677035673036590002659903456087279551155930502180165216232786388957505696116109104442927403206231867740367424671849420744098509716194769794910698096944227300207999806228489447274677497284491602951726393426242890140164044420549023167760156681381522812744483693887406062700920658495945304266321023420974210766219112871828505714974706649912081238003851082988540033575018220003281137492126602321998633232258199403888426125152226143038058316998701465621487140639118321757478560001784612661280025507664716963291919163467051826727610489306558716406518630466272038076216901425386230802320288957018643525554480074256403047325189000518934263366533384892215794015293659839975400033074705787128789074969231236677267389926314213555569689847344195919957387198026999667903552950626379621874573242579042673713429945842892531342296808119061857629318441057422048872945517480427936805122713400015685751592140766604016616005512124216176065561306979856176064797722505468362002922714344232666051456392144151307881292010110542234430658423057775992776834751457959056163087492865265565406233344689052522112469494341829064990859422344793442364009134457107740973265787736994622262723944534014025795913351546316907434913105623083934250079828825081498559352061374317689423791640371465256867211076124498550560768915885614013387146329294210579032087054191357496944031611643329157359487562747275444626066718151259400869857113908262560964406629933287839805009098752108128772180519554003134497962196944176191871792834564532503181173135592743866777675300727993598707883729272353884509161016752265778110684597494197068487829829337310616583336942171946636238730565381282656889628683783538775511254975970384087616525872583936818078368883668938826215793883388176079128983156968126926617161817843023348269391005652672808948627588542083714584981899801730351961215236841124670995415200431250687434567680586926737320926994598362378901932964647793299180040595695232180537006565994727109327186441563382112879631238078185235179171622956791322234517817922224016780883373156601586199866823558830415906906081296669481539092256028861051924726702563783012503564747303007018725126053915451455359043124982539068346554083491992477293706386003956008654889914279112292692164098679009974935901401112200407814778722512042486717782952128894230447271806680761781181189061326898151135711265144997118398069348065323935049485205637529341529993349660815772426142091588004999709417754074287957888530283115711627408454159826411983592131786724669205859281686030407578766968060058881996436294631489626582921460602740704451973858550720212580973208423720063035086423869083452230694588623676497825909925647541849747884129156187031401499590470801383595859334793412473473414744268019966496631546442349937308792831981074494781253339091440876240450953126544421698081642922255920238222953550728755598372452913579642818112282391517168865830129510241923023492993294545128244963212246680946958383027101462075283111074909329898526885549669231162950318134180396215808852645983892429627811471948931905641915136346110018350691038264981568220161981022312668925915949522506403066724552558309073253866783212400410542649455087609047026586700747891292696081702903730197053466045226278486189135035942424034884945720444289703389263579215269053317805786959081737645487635998800355026678989096086368261050453269917571985445812227318537415697783994736167073521668536700337544211684522814081514271464930453201505847119747431301612009025772091010498035833934689469860578756007968151911266969666497571570284950763382367938434781884668077476274065767463916454016580370033607180431466192098230382970842972268102771627293057034457598892509206669296751299605224104813654511689529797885821042742816309230117285992254313222590114578284409829267514845946092053091672125027635187052612741413570332537613619055705256147430925707218158495735912176198243976978858828918495046768332730510551802583010422315811317332474443747967926169370049788884004932219639009599910755305832439014601313469030631643772113594742105268033928455687382681341877181688472500599521235766674373240696417689974920701346679377035327688804651133577115341465723741817810426275277770195183022677927044072248640248211046338802894592060473482527313158657151395550843163178731427087828877886613042836625502417207858784788238697717556737734952973748392746997567023472829436915765780709206878114507172644256249178289035233724401225890037520243963485096485481092678912105380824615116437074848241709381945554432638672933116417401836611435403447353161617782101753959732741086359056438661720801804296163514511304088300545672532327367259835559815501347624106147848810000644066506179852189673141573320663367515886866304610953471339461261132164903148327106913101324609352110604807389983498548612105097545381865196515306155633764511243111655993761293962896292732578545804638534823338191925736314114010215101767362713388861655577066808925695718782540909453325417188140615708603711947867735602231540540390116240383259785242979272995777206631479713158218036598646549564792859097422685834793518046119635477751674121778428090628022212087745903248883945946149217947930847893566767373344987623760783791076493454827986378928815931868437374652168227736848514677188006027189541217043683100474773061752134952229268974854316170582652939915832863525123349950071868771073687323134652837574456852291919598599999948328013650712723390962258436100536303697333011757037445751427293643516994892084174330443282402501017994001367222677806435591280397830021645313233418910086867116554188701019482497502311133518085444491012344317699937386267304813983108713204747754064725355427007930820205226644866018721510435975748904540369735226592656460756347650230367772938979052907037869271147763018657456815695185786906303830453362789175252409261764265713161094618848042726738242676080025232095115540141116572329454406139618295666714676264785696463744558307804319604672124915542285309527378183213545735679673012860851034892283236211143239101014153574568240525370980705994468974370484699255166355829667523676599217346090527950813456837768413237872904599791886621577110162724710643214346057207889253839259518663119028088252483264137290874718724745582578803501961018497193591989288139674347242323228398381619905546230934600976569504417839386378627551875740425033614853264529390917677401313924378845484972853487368492135232746100990887347154968261093489326696716073379261593890100143252568127017147149589099402474562709094244263357225451272983134151813565541669100574052619866713310417134402929330022859067049660833168192978319178644233742975633069606835091823149407883549331698561232712121827038073325473824211465341971528343865670280364505732844509002725450150657702983583217967474224256841695856765938867370047444127718866188525156938508446780122628906260911214661668000582676284610271074430129238887800111351786314452857386508348905655435546846808858398987781045908754381095515525709477378127615987940410355239222421815727183615891320206505936237558678532221850014589019223749530348013919136775869870593767285974797031147109985347043519414675707295470291426104716918740322407563890525697569381296737795820509960981290143233745569845800609856785238090337510368468648801733032196875706222425713929673251665650850068684923782377745743119512211690029336047154407517173444563881756128910088052279337646693227543809714255038772738627300930560442529723647047814445858340467085945195897828657109283461441698639931557032307069740231959596823102319740671079500865032988509380034274423199108199872575718771047459567580392896678936640106488229266384729080420954580431090445688971766915724080600697874831215699559746881535606663307196661252210929323125824567890633716958667434171054475460949720464911582366942099038224966146745479840646393776365047859124219089036115622950101992532209142605649614149236484472939503096218640931182546100738551446682632420279066325167741444152289978549058410203442802548256585582909661591835943795875577832743874463465088839507122702830240277350823192653100021604162289185804213135932282135622049501946677585297991115605686138046055181814788508240168957585549559764989948681742552458280122294968778468261292989278144452138995325100380838479628840940704077831917405659342265078317561796556950153595837533234215433782215192201688876005035652687979340953716108432000892781118472156540696574592129369450766550458462040705291518519413641128721114538443478142532475224350845649365309217889817549987035501951168365296902085579166849268822516124346778408206901152125916778560875467274603987674075559894699653033134532229777839630315334111626331702312558785731341521912301500885918888642633405848615554830225511326898166705857918617902856784258492948822984494824726369716369645719186109794125359839106752620558838785342865903564588229602128207954255342817893314609816319603719974996996457916452044679745643231478129600002139585628906554830921515966127883661810256709971186911418993645410475106610908205490233949468783943570396681447751409129877127180739882362324133731902875247149704041078709576402450992487065192124088575393425589514784138400769726918922023458387116108532281418475247261498418484752815956196337839085289991225479891546686708341703526451989945235901970748322662459035413398988065258039298813581101846880450881610821005030109353103506580702854762934831739183523338557992383209996895981349527434813824420500185704219702639519693180251508655115284752326284657289351385481086866750682659249490787535975710223922979291812611528193700674869724961393097677084959081987228298421783035926353646731995815394781728719226211305052517806872699904378171187911741364716033891109791811761150484307104559865856912345965890115129002145082830082673845654938425844571222389097008638242986883772084846402265316886141909756369329799966447228593266361651154756844842201796822949304710698115622491983026903685217882421945481057001755516953078868154513113689100145955377741813674250564260944131104601569374083660209279191445141623710182998919599593938341811404421500919292178645608278112049140105177251827452180372445548310053312771897554349488841824996490252600401290036781584862848174421886606360488815132570104259016325701027686223363638516694856075379129390882847766112963766706286943126797277962579103810740735172067533804093121123065693242763084346559415672351392489620185418678283371022562940442617208946949579123790422150653213338669361975739998352213011853439397732780698546446319755795158283127734328720983635415515334260958468354313102747700665137302735417888628767421211221700536985301883559360431946961207535842702603447505978313072537918948889445698206992987641803801523048158006886226779054131974995802947626550119026244934328880274933380157121980053974368508575103311682515101423343213798674489357647631675805993327420014213050706075684349099474314004467448872372315810769070683632992037469795964010474634014410133312985199221528836676217715850850583402242669177087522085314424312033795850040594466804863199740024945229012109441975678071307824358589687995577303974109362878657918920763523037187230348466843526297101191511904638359782953566389349022177372865554328424040470186787492393520422907765206860229848511035436642326691957217774492525494411295485458938260064951705243176939190750478477495188264205119031835032909567156574801027519644514335044373416020905409353846982599948104771276651508786944427865960185877580399795212312040295271440637622710533360774932755659698695572310384519161818161536598961314156708524788027800038230210419757773903055940892306413357103665669556459436721151443178354822507873487040920892410914847685106034624456677050813454327956977325719426014852390607942188697648610138224483093322655695944352838266568190305167585101571918398080866988180555216149262688321451644290089069427132511884858971042462766704594170762878137064593049531809844510262371069032330897423138742878115741757370026824345048545273591025147782251432716480018101785678512265150632516740382576445151431478123618752745912402454022592112223790159790452872874875104079423134006310841558351746890361575377501594058967945704396784093233483584841694683270897588977536391137577148116495272243559479623246307658665292270025713182810267804092153077809658723584765730032259589803490716860323681558417456406095026870494646517441525123169898704679025173373927584327913559188890388449189581523990202123345771989807418233204201048484441955862274121038751468206400273493612888112374947222987424840879925560072439522767763214161609804733066612329885866970384554411687490881561750463519677986632819586358442623539969712275425361040943530169656363063323275324358225708507183454867814495675276814029459536550143753237716152289267321507933791957713092213168976561161560065176353196336417347778301611886429889178597349469878392150291276979579925516578437328246483613107659771245625760015060496637371103775068098200869676731875968638573385636608380204794709899348693012578895950511319849274361278481081953263727076213354294364831668488266828377573100836632292546733358779387480876468401755299308327190175711660352962405348882936125272489340658400415159589302240397774675694906311299362621402220204790599196386248099187447900639985636765732739277153563646701313881119952533134843753067856238740061860593536477986014550295807463750165113133080185472143754144736803733056502747784329044457905093625335488627738840375370957081432940840798742156567940675076594644246027591534403059932878051507529408613070409553970209705981165226106813343473851650938199433519766418563585109136115321886627801317175003638179605653839263595447584505417994913831535862145548238720072362807114289398238959933324040247722414900129085027880420913902445962689988913003812747295150969224375239954082302318628734886047313551685998572559662653199114675154941901412374119120463833926189427304572412521954174572335098247444812113470007040546851742111362439230118401584356389990229680926526262285263642437626080016906924608365025294072052565062545200692254734176056882510637974860158707679938533385767848693896205434787549366685560377332506196010091914340256134654945104860606779910220323939819213284755553765466618787349529185081941714743132847150896534814287848811969963079652681080986262554926484429031264534724232035407030761224112993279867720410802745154868551747718643624635736237492486136326257096296648414496901011848845081138414422364306644931545071573924891711076670696885901398492166242742172092063658017573244916745188163609801562641229205765106191708061158931462407384316430282599628642600001618596849299054255556284310818599567687114205691665556666080657236880719621463051099534813119863942933881634679204142201935574530636614017231675152079050750850024493128103813786111821867934751976236494112198239767994666903701145851227969153652129412841171592091501881011456456010899556289506989520239103377735857456263101335788548509125551722170148296537778771172001902848098104236433576019338906296392336760293727567266843064365199233127282399676907031952230728200773337451853076657804331657402557237313084316642824786800293610507279821990244974659389538866774632996955985441094391067468830030256068517136091093228926740764406796438453456274368664975047099705461609695434894975344222565708909876931192589232613496763492659336596691453599554801799286915761919471035215789643419064451559427421634268634509867496198271274986353378487308007923471955304048944899499273040491284298183709469424516209287172028460311833050611312468661230875031627715631482290967230067684563887107134289311376973569000083841179743814661065228215971735782085653215332553511551279955622450569295428953702627312096078549931447211638174994710076928820059278168681683330675214470958251385820058947227606226017594932233766761961623074442078414878099638185241956598271942615152440814073526204492508327851455451638890421457016387533334256395055560850014946375499750056397874157695164864101316917719642194349740107617789503220886739556298224061210624663920274041462233051570785883227191053190908549421241565782068021476558933604926734689328072792454628514196073484858474616700634509228106697041979667369422377295054388869891266145351807327125195911074782296957313581411416141414111504690643637210021570592173082766889111881459328190525248185563389553167651288864656808299410786026002926994441572857718300949985949511705654988388925089543237492622312327698102262905333003218559038236324587136659398357483834668090797329951492960457847810208859288783810470160073132253194186188900367247656134726753060056101009022273250451796068030841206749577729298935392285226057579462783703339413287401871493663555187668589612714288628817555514043277064532806321315951796266564592569788220303514187514145440635164783536615016287026990784329599500844820553825751739087489001204540750902105573645735567433266394240237350731275576061074300638289900348372638108222558494802796005682502364144395274866693265491630267753200249865809663396180539335023126638315447512811136681634498908472436181729400242919801578314559699151469281558923692915323606452695900120036588316388815718453114458835130729002628801675203375015317594129230376487399175666538295059388385527474759630223578454662655232104011540871187103886907778923781050123711453973892951439857557602826798313512775367082658881688390006308972079273053433763962020264722862139302706415575374812623357787262141134653806422534587102348712013443065482153621811315964638853546786859615621234896690683745719526495942654207800759581052028328824362144979666004808526192014445558657112322310373303992377812692381922373165229412608497133600707811294956945225732543703577231385934643936671382986489989032698136518096780653986478302861767014033960486857108501103635418758472988416549278318313145686899012645905864148233284645248708201684705090582493216672307351071724569802296452059918695952990127774186686938304611246826690642443452399142598946673744769442143020854212838340050501648571331806220728940047727304089764285463035036028025333674838355055247159136409394774764990555418154195000339275118663268225046578475492284083911625829436592373640065834092350977485246217936287016332180373057086989174231005685243369758418778228299047003160784313824891106197677705952441563153373149028846052837922380998318069663075755908012520864638881094184369464861935732068972924393253163911194626228321385748272535945396283790875438488280985938832744712739881223872609701790939688317512693973825874279336857924501391960618275892506358906166469529924238511773193440180724791334936459250431370192637215613987434006858194488255448396789657063483013197236338761454550693239582145929209075907989771226796314263888658634245964618394065824870466033936293848277473500269271536533148573105727349393914649767151093468854256866359880646036288444009526925140426653042856986868542278683458176617154516837734457651366785282494974298046956528805600808983839819816716128817586019363722353466717940109154993854171605096549676686617321616026731414697934924542210556896606552220023782915164446716519177707993231444511438654411357259618483324222257219620822907861428271110579545846527241269540241152696586293408580520304658016153413372049733838507843199044152788007476255097628962443813884057781874255537013668195390956156435632462231213352263085876511133492645818493853418829835487157828183380994040410153467600664389831402442822789846494552899212913132517367010487112661170776885959318610111626433017808068232631645921405641480262248377367874520972056345279841891317760236868457553692622223400807895312031199615373015355166043277090358436583901526228374797197977155033375343598802690000833299669324285962462525076021318811469373010359647380718615525047648786888831475413100529836523227753854221984148888526148086100722421586898004860282846385736392468376056898282352621235209941671033774048428675343391682022616270991646396781797932447568384257713091572458679600773977112560668986978790069105880894826456872508514951100843254410728922234056787695477853015941689792965390735482998925654891867356477852018977606167093504804982480321196527543752743836482144563597343046237794461166962585763648419808255563336579414660192024597763043431381754952833396134446102713469461058976185510534601077872870079498078640274844283125455811002437697843915963670356433370656104697951331276965472034694925365552072849775316884460476571224545872798286277119343120000746264978747540798569272462949777512699276409647144967248894617182067841757998078689421114042612986490557603098353568716295125288213129898726121534544424978835900951626700231142058465630076635673134749126770619926874718119006396468329030499436614631156348460757589710599473542559257149086078742073543465184685836314992495746794154467003563091861358081819268669883072707344320442585609822798944039650246453407916120184400288789462240657312210890685303412014659826987819316847449902844216271701897463284320742043074011499344840211174275221089321547858270357459338978913920722512621324762229656698763104679915534327297776475760183019173429783552533240798714216279266154483080591223496759905380850723067425875600431895678800220821363934132837790593058458114031671291570511715700333608779221698767306328900682061745469344344534999831826288487353046860858920223357979870977581830304229553258970004036046520416428540077270898623586803259255382882597774171200332653014414005352488420880755890181639813763441649907178497080219700144302519835894146839638106630880445456780520084070972062382730531592974511901987633758017633572038474978428762644047177823160354899372125135887164154080206201156182408676472283668382139111880387608731499390016083208521898893897176929376638641542760904108063472684949749871537576601094625720517625408168603924935702462546699745876133366581815112414101574680726828239682260827412513425330211340956830820603050423375146607550566088956009080499813183361723032418648600962330139189272936179830595085745791682340596318556282315796251467596123622890966406958741763046301112543407985801238259148290348354261780360250077388303504876408541604367328894659266231018521853502950492647464453519061825192673684098952136696624616764384720935036643518689607044349871856644582925416941834356471273646332859780925606990944000899318272555858405946968834217745599653622788223734824340186469683853521896089375256296297655927304984989016558660514153502163463876749662562429169162761428068134684443536324640783658017697778099148686108667425331046732937477850121764576183986821738298307395106580929769568943973592883263970222786077286609337120319442462734229452957383950439553344155409920468180729804468161786833997702626411258847978936359434679155688429838840045513641603404953288410095320597379861495175577264374863373322717736317081155262699257596658650087426837800878256797422793196818112129657394830254142898537369113350501104193083143299468347557188829658818540358152315008580930184354173945949280510306605774716376884414782099909813183863830533244128455893940024670701942446749931777087441411642625494377394613676552022897207745381203516624217980497815193826250929322248761529500513520436452617510118664895986134922935617024046183760792281067863429861759540751485294762869751033859156413653769507243785929319107924831709452407150109990536127944580127022997636218601647843944089760148741658958619419382904462007790854533706969538281757395238277437356415423025306033299509874474346213919009691143752681915140940689865683769103133162031271728370863842611358602947590426790712454926652691895491129750709426239671469978604490030625671718460298709804638079229698759319214607503454365491592158597007568584097165117866000561566992075486751656610899145827569951464551969568660793972970743065484590065457069100856967159530903976066785600387321910505219948802388648103810064786107602294216617961839788989467098409485136723279866972278687134332475902303956398725407062468455404039684227217200962845885489923342878893038800343697110974754212783328250612260197925625318888822659806022293187000056421365115221331134578747655819528038028982345627658300419576278518897421978074180881672999171171970261450866408021906696762873048683502252115298046984137929761326503018365908621506676145627579713366129789725990921278261930469186893922221483345460252202710986635599390329573713826135134922366921735466118907275541529393998612801461483155263322758041696075508014132119326886209785181516948775963176314653784358105590312362480959819675426969520221054141252472951897203373351321835423259241415915779186229848273062169245046554033591732819543583275773093837212735922844265805266691255775048079933342855161458209761380705594733582133984980571503678206029341482513569010182757644298391867850139406762338597371024842580248059999771804213625924175600480908055303747644351111459021696996295592248352903710036835374442260517962865613282853031482328202885961255467396704879209940136262681510705338566981143982520112398395181640502702769675619273342533777764902430700317984644292309332521412928990036649702062707684405835006430336485925960479614418849726265814248718864531663799897142790477751482297249731511094534171292048933439293009846032887893211404469760448534885067940586670477387435997351492155025664497874054550723801934326926699567694451195949112568693614958467048702694041993914479913616285944477887072080935931037107853070218239692984201993422071307828276176021612895394726897101274978722908625092952244533656001598267944847497877574006384648760606919125126713519089556968836899004160164899878811138231744317966309770961756283805306306191281001283804444762159446565984780475896543005839004901253105012175122412840262833619364676849896368288831688786510789241713735931815353766250830304248340995341279907777033877695816469987588124906263555093956172618410836579436224320026736305839422856776594782895841276725016746792428711090764354304083637712237675510570801999992380754527821490800821547229721048913864963621747655053220474589611908532991444056289774339160055873678594547629271462851188171440618338999265631664135403504226931506749917990537790937878390008287259080782117653276495874391209531683679822675459433070984498902825865510476393207713561774056244041602692356648599787211301442635937833328823844988336874731803007773606931879161263812939522747980035575625227277157071977716517439871792879352785042619049834056283698855287453556882655927692297857902748989329683869120569627654057351713138732710970697303061593732304616255631818107058356772145681338750961951394439455389210014322028785836866070424688843871439677581371040147352237300066846604020693939000147927368802058717879539817168862402767558583406105038497807147947508524084573994534520376666544231655205470817931911294441856878740354545550603046828307286630788865635945296382773815517973984036841029573458314408434666865179854605877006140245956979272389457997433371269544933302414962535021933255550547234870078574974034317119334259160129875083492441208440951049210191586194313643949702824738092458222026502679828931368334659806851612079336405547991296588620975034584016384732902450015396561658797863254411275911126982444585537093457811554594509365850780868770199710948353705677870298722569012585722954796784889246706279643661062919861098156929493132258612686103778938602942959568392115461513168537301146366131029273755086779615456653113575215573953566067469436577164413799524739138628436711934277815236703141836970484275859491088783837253602712427317744557737028903132785039123986957130861709714516137140579989141985244427519591780742377586342908429175216016467853383858524903509413387699760696350601040932309994395615214957334789113156839956418768993522710040800961855509074005703495443832204250884322610845798174005415000062686746100947616783893987626160834154501502571780492497933563033062764068057157631136186162319303736601388825497610126494718645191018163587243853222090866908692526256005209910942988302965679193591389741605619955310573937610901198412063477546870351549347876629811484498098748169313132283204133314631201245515060189257208027641315044534318755564034680929933062448561295193622907572281340560528560049696113018029082565256254727146522405899380272509104895696948060610923381859746196219313753086672598195250736285510758557924794765690861844191826749542888193344432380447159296033225129656888663481030317133244406168225016417489204249688550297188334296485212961873142848436611204306882767632550160594022155865652476479793514337515451972245370654337203895370733695977030768070724011672727993715855362680828578063985227594202941609125094626445309891987319586846824501722539454593522235720004542919922818007824900809619184499639217314825723884425030092662271724340136620608657832965014894918313931088684324032788571198627243892332777726564655490212787297364156441857078308119768299421889198006124522785193934575961034020874399050559570825598825201870966179670593155800942681377078478683551260409589461082010506429758730690617166080856567452945753865404585795532259837265900265300025244371945793995176624602190213155646063485888962612447672812229731851221443989820903927665746874448128064510519832685246099291589070417213288729850834607793167344336582995584936489282790776928377249497208833933120673932333251230676939614247669353325821016490029299338293723451261239455971739246494630961494894110359648010879274847311781407987590742371118030006081816455625695771797227673428255654995347097063319216588722534206131431439679813036588699369184190783738826599147632574056375460184514508919785346699875532418362791370482279432143179612809512962961365396919028552571802515223283788965875534058463471927544613511610376640167881860449915509381735847754185044891989995571890719877313800052828425433326437905069914652061595724725913955332376793374696188697469178133890833839393397492582595041456489290991319153402843414054054169717288893063954293028814305235474075485998879260538928450453595790650806117494704249223337427797689759122618165838571859257345863768084823220518005552606024384813446459968078447724125045943559653815229922141202239016864399771720917414660870875927998334354108929780598569170782833345983571403611172662267530868946681413112365991244921692306956967237391343493448863540370827278683208226363789191175001476052377354862665761459396383173390237193856868797386645065839708675314829110342473504313721233027650265048571579897443474380162272682960931195848842889143374985283218041949828551315506528598803631801851603788619406858262842999420031950117278075254522782928359530711263784932685933106696393811797117997797815070555690749212793973918436426637851851631689597523886621084922559770222359311010804921390009951470608961050694395544327967038552522681710147379789225397229804113466541615880756301874735291022707772973796476437530613654422513929046236325686527532825643603343731254091621206707604390536268625659911499058978597686627735563587474246307908093026044833197628719713150168005519339963205351386314714298340964138744950410502499414940227054749369879503441271427995543581502336083345607912970898246782243686582829109932710912836141612636418110341758192694180984094676476041049579379445253764831325343530863525907341893251498317243396026282695113840152151975138703387005094928858606452491125168311903407605036868201285597302315496752816410458889239885185815342360717643240191015217195648166337678242398459889970516560046925157817935866740091886180126401932893142267664530265249030513183511606557419541790228308418635542019533267670111238202398710447980447290365310184669078185528457707689651199052304357865730641647855440546155290651886599904245569977057549242850343138179998801731858493435196613907897717901525194320157524244354962460369325448930589925224312729346544777872464950615340511082250053899327003415169548413665539792704727867020521634850457933564230202431761887849215846745572874727956332077915194310907139618346396270842727116616136770908278479342136135018974299642909353381520808249172011716896258510891432107917337519896654882258266636949323656337330048141828311583376458105765600346768357563831278769338448352596409990347611187844488794912313093435538957119144554627241169472091913403949553914136236968765653224069929448317588755140962921723612142301097695728242486033862963876743183830251088210991623422065912250742867764673842177752579021184030277266197855778242811452174433461607532090617994805497762150876384586392599317011102116660537534966618264266904862387653264266892490301694275303268006713510994537912426996329139525164424692070555211389900156224535754651099717066390777945446983005281335577155015906218110925712003385382383669531009021400457142859560516137516100084966287313227120689388590590567158226461396906182811624164056364102196501427054410197752416233839750957820580347282939790161967384019266296476969444977734245110003982685804089630609494489399135361733319093707600956049932948636584567348487292043614268264718482209092060082364875704770552354868499889374716414235186326009897600608518223489710386568185893650435805646519311696149395075425536422004418678503176546420200635795109606810813479950295168124595871468296279857257710294029613655559914573973434157058643150815402347419813869986347949725965772148978339903341708502327317331160556061473003223917301265944147182376371682236463806719427581789970296172820518599792814634171304271689330411239328744113914601764201445579224822476692215677894681048965704499926922808475708830643646931021126553767863926654541245709253350332839727675064784904241003262829789902476146533586602104919238217784258311091547725744387043569694733343176869015643284135737073614445279055179928097590873240015623932679889569606899310571753427545613436402659598551927048268236651891269025900665915398043984574090971446212756930902865133774406971520433248040223139955542183763148647404094079786033194186972533857311352515416833469612913982300346717824901025925338598678644153799331347708630229221158028000750639002356086151201268525013149131900323988237719116932056970436900868022741801935983337932797523765730186470516506478853187317145889499004851530816862956955277747471828148087501657973320524219093589665555749488457818634171357337608661337744460236262384222719288029128130290269093052579583720804038342123526166053379364657396795256156242120087367866354381881328138157628391857435648568268307492505552507818845000863480958877651651548328952099290208813376359289516435971247765006039927100493010158530321448327795947419726146776470731883192443045112491600503101519239995822630185734250000167664440510379258151281321524605354175166945930159205420134748574072841369658881207121873948716925928488941961796268894066621693895572528354304304247230212870818218082920052695145576432706951009386736025906637271883408452714582933329508757589840774885737324995971901335757505465861962928264337575654192322472137298808398628264222259514146214349005871793266438871840415148777676975114473667076250983665626595354367142486129282790038435628050978297021561404209466072498076079290423854618088060311505250280412441631077439253450261308531908467693352951172777945152381630851800687201176586244482666580179317458603392423867320974071777714575751099777098964619648213696017986680882904030198463380961563768089117524606075188602034787831591094178252163031420031810677980252257141083316495601783061320311412563520171562752774890001052723905830354911222020078523450218644438800420819207066091488953612684865125608841105176090199827720602040586849547582051825069362776712433205636273018447886475986658908861341174161116042600059191235708506261368236489340421377481405673979036484020560498465319444710018286916720100761261430217611115703451812317900972227018418496899012369248923244474567109793810559844979695261850747847589939111415444532214226830487520976916138943642268724115116287198183695839649578424598753101374793542621505362376664257456765373473637371208830385199519705097613151941087494781880925971676977332526792156992918164626116251814495425486185467765921925451428509516819840927353125151436787176639229368323864225933358598119373494433259526064927528949405703094299718155035300048055595024365589347140435153479163231138187097627587723476584678370845984336378444389802616715901677779047559707859888987781621238302833366237791847646205507141702776391442182395842258070887172537441726478296656030531212140052471137844763619458865093106023174310112308130936736909804802844818208813557249607744278277276853248124514032939662390796899067285520799207863511927167454479954066065885911688414751934938643748306727965452349436999399259853344843344827371950283775669081216358188421735991503719053723046000384065101775699618410850594066576760496026385571528989875802648908237695429376766547314908850411114821471283822584637040777972599304649971094135805267871546488997551708808188234463524389986450517162179201947946963064772413055909515621096316456716543123214505063999918303848849684471853450862080221425716062576751980490817024965102737070470788285749385780035590773837452814293277198677128338052411657315064784311395323365681679319444623715325263658747281205043055845425617161318742556014866097407370511335452597971928479725825456871642401669023308394908655228269092976218192050045362187440580038762658598701548568805382374988166571755023356176226523674321317436189531576064442252589257826046887320003133524811260042597650695366728505940630133114590001625246130438813830900632567648178359917113954040285689246636241391359809903863566689799257556669966163185882500141484635179856182023548188386531877619103951459436385820542352673205807973752029324497175518660765595486269525561630413243476969954470011390623754697226917588476810060317446566754646402864474607221936178367131714783774353236967637665370134377489723599644177071236111370464064574236870227399929391042111302954679815800913301659955344200345703262636593982965908256783458490801213760686134098826622092077016404477211633790290431601186948149508908003353604227230809092541382621441622211306469786051786263551118991247817855157300434375334394924955136910551870000022831239582135087794416054074144761793136508789693318988657988612583444797258771231051950940223131620803374045679646291170291571085226920667914902542356819015915883389582513552851611607903596859672020205532262956703504456249177360301914931510527452250923681528172114616195686604300288091188219359853149558485260328123840439003425590480067689196763474559676159390085925804015526965737715353019416783068588049903086076926574237707630736444154438095620415137545515028190027923328838216082145084886877879711859092646351720021196112638518091145380598313477652249662587717472047131100592751130938313358582543032300689780238907460433426348669431410401415352703537892835570694662582001197043000282997848347638634731554996967258077281443306591947022445732802771653908877996344674057768606869515158709713091830758957123333650822454266180537110471786604638587939664445761454456943163950210732305961716541477718431668380842253405463991827000223409507336606650301663377403765964020778614842896324935287830471912381131236692633744722162414475531257787225718714114859803509662889913196962168800643514732948706463913031768613849407890014801463615570207429411530715241381000332371943529892347890132242172467598609273929165505222616213735174482566048254943318796216855150291431958700727585664848458764360550204051218683885428823224318520799438304043746237537453209527179749328354770835206243727039003970478487834107689231004314712860318163784995550549132815024987286401968403505077208260485567407617933803828917324142745789448179702966587774495551970895337137078879632206072118149546559345366110088172420382647423104403751543898827089981352532803697809855882855323614978722489270528029096623749215063157903298487497894214350712896203551740642238531605855153196690590624483555406245416158087464168995173395692638407342165523679815216258279014586783748950835496557360635346961331436111343439503581891714059141754294972369829442207927848193067092926522331875212956160114075087001766309333814526337851113920284760631390172750243005950378660380525240837780362497543432097605542804366196603649243315393190955632353768026973163383127118359103247985022961982925277449309792797769953794351440027703742262905950726904577942606886020051004399685807632453537383893817896422892616763908800368141953193943242988351168103202421260642673772485176211490940079327309497999119493362751734158291793106262521461331076171216413934891593082524875402768524443614108394776840008698433543092072117766993368667495809620149142500283816649699651369871089749268938340431353508614431001414355577951448663104014913456724575336701170190591155166551140681496207120552212330774846001440382259685283536893397072811183394065055268031636747231890275411590346508889468244320619673201168233648879539348004020425589821376013624520001026629415965359992889132041334089173317122339891102948366955600718662806453736278644525767809762245037185777568245163968065537856164405898339554860360354810663435700135180681474512339156678277279680179204290449275508418158178154046396571408886943986510299908751673300824381774166063965187170641240072972492315652640515498954653094202827508777290100047646083964716844755789163525608634909645427283269623453613036706452374343102623496776698224419838852042911541780762483777931543035021421549803760597875317243858624608194701051249599787463719219514681946325698649175979812299063357274012753399191719213978134592707285279150022573842830634985051638866063030762312691937286911913064308810253492967623000741730121173026381048291286456440362982768521544383180935790608857835793554589907412761155033419716562891545418566029114079747348791916307626506660809400701054620246450963722600399746483221789758562791687349951769092263228200434955393031227606002154901480199367686439766871045660200631178436214912229298678551720799088379413371677093489137233345210667656090176900024935152845777203840240754107879354986197619587860377423067815112660654972086688673957784782437212758218532269575185387912127210021110304912762957058313744931651756027399933005693652573081328818875214689054807957371434777613971771354184421146844220334700633927115592338139282090929500007606056985747622974917415873557295652379599813549613632832046905755775659412127476222721277057405228667524893411776851827260266411599380851811186622441362142727952104035336545261222573955208418503759873677515186564174600888232822083774292501136678978023768844375633087340338190697585436671572779395346569519098572726964962340104182164229935401783624824717607033450658477191757770675249999014714194268195122032392228906824138706314226051290612640582950096917725538390579602626433058078229626926603052863853424088220513946145250183405855880127527594260645292826134659211769362088961083021805100669495620501153175580743889208967645558688589653408220859946841980538191788187842624416662100629907110810690977171969105691029300190914502317350855246576324188388905927591974133374076354596102481687602997447805805323012271012498117424187228766285164119839038735954693684855143766387125860999820237357762323615194703676437120797497872450223418890629520959863614732877041805036005306909850664842899802889919309111373633055825507246895209906997478507560220654866302182526085924150799653292261687632752298084309330680341234416456993363369764200206463471988362202997751802325630192650888188323647057362185560429680969009371414744776222997202318437138117417176324482759233302663612829969296338808246077398275056470329210262232200940094840559345235293672936302255078869446566948685041738048122042761900741675315667785239385951670764267642438798994008012320307822870310034690233049930757188018119855427795117428117592104188080069269491817568945099180810003432443187702947561760534227054689973014522791884982222281989545580434030466334723528988286949799842343116486065967138959853558926819583270673543031044717256104482535410681098558365610815147389822548108598325715096247712807042188496205470139469501065840561306521902294704935320359165856855858971729725636407933980816902085617919893031116859802616015352688890522914135758564393177888583409710646193282980763770328790571858334155060614232869684201964649388828510647951021809813834975231165306630064676112323843080356956629878159162977833800851391338173683738371306906181265111881620519779497073904067074735818895738391738308696877635939633217850094221481877059606485337863113501839649434229920103786815618259611776805720184829634516267532544480679794340280260593343705945861111367020433728317193573520407543929380544414876697195580138179056892126698688318284817886581457654492693319674026686892302087899738178771096966489443696517059452379320716655576471141099273998221646955872955742228256619623704665740102497414280884237538179534728234344323546972503940633455288979528538601254516614303788683996934885519992968108476909033761899039126466228043996220967924654835242724615887263405460130475652335989777799895768889429189193459245759924060502414851070805197728391233291286099347830304237711893067668863735504478595900352579158238870665490766816298113479418491347760553749672265747462223076018839820564624697292623286851457005800697549673427316249264488823460141181812853779230284752829296897430644006898150122930848363262364478910192435950027331531553664085496807890085635273384386669953781203260484747335658251538674927648517663565620679605881859046751125917147446306396995372260789268971760973821130326940417470705881727992543905465728643195243034739588004850574228378347034936664288519593023553937149052991258289246272984470181449025559599449009058114051017225370660878448949290758177295015500338722392691204585080248906858988069185820599472052790617823663983631927835952108015871513555116154123502853718147971249177669018599442696945981927178290898162326008876711767435662743588830371164054569142093482493506020373901846609702921197464267785521898666913793446945379537541973259442484161024872546757502353786583291000310670144405396491380028743398196940207856558485032793516810983685707420379281142325439355957681620559208622133658281149049037877030363662461687180408891681928783393053996792573723199446882825912264387866971686276798419431585357484455079611397418387206262139012546729805669787180310750350732259512232011081721857818018216729397453213786957612929473660441225010203118216818595462385491858110365603136099153234930350756034968754271182268433359109394743630391115319012307915196922960375038390037446602375788663535971836211182571707533804968242770881321121174180973603070809868295628351263038902292096408772175686518929843941919476232174465994336109028356454338964336823454730019535361179577871030872130265601985353876632725084105198140768865157650143547465427924306161474885580407697992036875981267209049042618314914407171598176745033455778139739582961557592302049018295946211548790618863607346998225217617446966670029534010457128233111973034901257469274596514277120266957480926227802783930972345912274062548161862338471427860623028027220315001751981929965316517250640205452501315728246593394297242773218538486779050348960446957297402753125070445147933345869441656733858586246223681141411268864430235215804583540936706454055009358962897781844033843858999845854678090565667201097364925058609186027703886740407746477231870308198988317542811063795065449129757057765415260529891736672856097076743604402686011346922532236923493160169447123018445792866749820653873185982826997674079037484670737892970094836844609041700167841994594690600445498025051371039208311146639112423680038393169197760168396915435039035124100887140518140455528467793880666468977865280415896676376460409189454355190906776105337269395834972731043539188414059345917573986889657503615159948883174139352425452246098082732237944496282389972287702360526807192992196129815738285905306158268044119934014227669393085897420103596519368541112945002163346103324217010760165482999779317100487595121613243674072201290658403867221083955930701068181373903911791401746323017168506527818548498374753256570550134685850475110197794938835261777069575014105047319225353523547966769673212046751797546158938164687584329523808961062875279770556271953747824427543188873894933751388113290043354332505160227710336458065943946127931958281928710656500198165367231762420186464804505385688330099254638181264550866109294352199631999775622615827290912300005643627018427482349880177858788049326435917941004691546997659536726669732442346861249826837220408764671883467216825642572342467119551873090144491385877793680099014056969297664086139006522531635989958014854770406883052334297801589076505930841411947921098922702797608792711218684092061412386717312394286551388349607704101315716029757000371468635369220789459718046928195989898793424897160671056283225933181732514091234007871192002751639981782414296369246471315270538654757392246559723663035189569935384546582372036683092800407899739986717487978202313036495738504566535905237975663365670993451454953535496096572902589172102654700632186865716775887316500978180805468569456719897684687320039542286841511120835976558466742383975199294470044904535418269797113620290324576165108021650507807725828328500416798653410442320474514270226693481458152423335678039564469699692916480453761878229906176149729297270438538082959083893952812230990916537664905346175096659497465889279430624817738692490338499836715524572864076304892879914065299950156293635888945490528921678667553229320210127312623707135920266729806850285133027095086932864003421018329791411540249840579706589220667837373826987764141337245718672045224279183599920930245264086697324357930514973890405056880051294602304364999975547650694089461510020931936348856776576644639193735155960480418068513496174312125202663991790728171734024959919539017044483560517571294213255120135287701990594625926563535035956149778156875242443910523293934660410822818304334355395821209784583825158231863187305399484867087288285573226767867769915833954221457833066079690410905616143034276242026177949909280105417849198519998049327430634157779391582287049206420884173388561965744827820801381849832643585214026038057007008820316417733839528483095410006909218958079802904688643510968199783889221777366756995594929172401539141572019820814691377345671312045240251028602628216106521727790501106644155987873449997109142007500673231095550100841892138698979976195625684896259781440859929712227210897989195912102381887581850550372566836703430799787196597807513142637250564964393668059697712911600506908939747442971947379224958829124586177676094750931043521182633995389233289384560011347413251928284849724608537788325648130328234440381383596886468818870957636651956114794465166102317653202712520626148286788883703721591522567017299778800253163201682734241534383826276323562128809682257273730483688195635026548893216035127048125499627178830233376288757770443658097756970888135725270921006921746032879145398247587845480593212167962111108958304373932411373672367265678121558563555333989812139805504419376666062002775344104195338309275020149834634039519287389426783621849970644776243239058771436570418878754224741500171559245929176531422478137576307910983334642894891745773075153716744480159064464256693352402201267753897450838337983934801548571041891830411024040803082248905134570585954471209276486526095102396603135171387681542348112846680915392832067148985407705001224893804986891473077881718610355295576634867211554634878660409725155516101453460709521142104250147955900901583496040249700259865161385957208861007866508028619156500060204880539716754682367262009291930261248238400092926247189183340891538197822226633135369876977855116982801800869923987192441830783584138272284873213936190935630613854802398653996781716644137594957480550673911494659600374317302657547659592291033655652336805534545170303889521320645083352638605159216144638242115140990230737037823323405616684431234857287669070474428528935019930854497995041240597947032386014373436672447738159195951325525247453714563375128509115012645978013476144275409810150158524500682620017339061341255948795187893608575825740249555220088998464698265924716109637179603363419453135863214845203830069805912066898359089006435172808788352700847904681114956126723771254077286930690679461643388553785736650462498936407890503596988781802180632658750738763135736813840517616239038721579717280744592177048444372218658449690055923365084602411379157427752304783500400137702494182366099232411011534316365183504632808641899447602328329791083286686375966535587466570797034083398254026684840716955291226059683455665694039839977969693684128104849200967452959016097389698159510542182885625683034447204030765600543910549813969538068099562322814556795634293424817178584463207284028176341688201058422417571740515212079828267578890280370987839091014393625561092913379115666027380315654386179675341364580243483927118654006661151178524350034902110777592994944999070865391413202832087063010234845179850979225645745071683735835492779243766827393870139349545471684550434873338894871718810326452367033172754754743817707845937914426351687158984582754550273319656688424782499737009907658413086953926747951118165229266072106929454536839258647088222447630870151655105768172063174701523754218889477036524998082451761121302349216042211479704496871493067372550459601602651588060192577650789906067612228089392204243373623381629583854295569924532718803262540662144405555940134133202927434185246620731085254399963696947418582140057360988552897416211599027610274703800275120356173422784956478179738334218714574554010582836154730671467440009931683475794039116460841380509581693429891227920542711515487332145073448969523415456093458544295033652629665187807922155760920158933220956649698003936659243297914006112857420269140889070622952840637724357335599633368865996112635858761007388298489889951054925237170476965951830995258627746552153648462311384668012089657629826004160832645500906707796097154381851616304518936490693482813777710618616183634852058040212282774052300796070401284240219739907284780872082248843400365150703961964735240521669311892772359103396153648527099758239026677002677791781788487271212086553595003975703239647338527356239259668563304654662558001073676855131486290508101897442445897720825040733272852492864383944731084085330060756594739710339156411473894633798749868589313084984984643801469164703566517140940718295453880027858681155972188474424556245899489600078117055941588324524420938932435225010320474692132914933281505695586678536283708154709765663576752022419861226689388437293893390024817244401720897650040347865464425161059150024864301815253165621694814979465509699845611381397175976371239951489279269394077027954120534996390107855696120060968318069305173880759787154247522274161406633158950339779665194879453200056669838232400463628584993971705189233274091830806714474333908334380738397544453648418024656520382487376280954229077618803636961630824383717577784998191832359379098298409919772426030100306580453414968156046269312096369986856025793726973515808309111349982681790666116649423982882980626356123886355112117538766453790286937471043605643102273073690386358724322343271350265852902272474736356742811381708831304716525356400213989882103908115473698598717382400195402476285199385482438614691236923945061711979078664379316958440015957946408658488102959886524059124104561477940920752796951985784243580635175854451321219135001369587860825328631048940543692273622794711418776603253076283620146875894895030554941114999555860890890155288197221537715978672274738015479843390729302268247421168372143741903840628158756566983771953389691953493028205729781749687135176518460222985920614561110803760555199966690890154606721293046911715140749562063591753829578569365199778484340360290896337342824379354374634240360019117836596827759768711526527177587406906348089289508235216016159608064015809925105208513800290566330977041520217839730569955867037400903972852446326118511941585727732783927390366917068913481809291755483411862149835346232912313938900090136314973058830045159058946630707138992422305397566782163088759739529449793936631331778900576302203700345175057991364594219497026038118325950720025957397799456469045660763773631358185054146858278694340383889970948241743580601138666377480595965242849961948489714609935260781085279463468077330308296611250327096690825871423568541547998672206507990620110572074418003409402569047304020080938880097143117571974227508523637354008520465957099221828886092212343955678532700429980363383681484951235707492991015222434098351913037025801294313457297011098390258344004948381301521366707447748898530786326805251859424798365919575845867232405203633584093129723848926177175898952289590681863714039857101357031087495005369256529150312077796329295078968353097647516844652207497176050366714163721532134035538843516196491484644977404413379352798168526171757413841006567715471318458797961240611503631286700815648452098987949707342763863016732940658901212309027484090547788073476147577774904214866830924143007492176317551222311235181091521153314811940486889897618369345497299429455309292711599508228768016446305627806076598357376780284326486460779226872830083276111305938010563411086166221642119424559869936071387595873323072299364423447259444066502402205015404156631386233039259037522590497137846466111622526274425050514325288712839361492346467874825072872894160242514422157702692262070570238462906824460494999674955799381562707569587018531548508675065517387249257032794586475559616194954103203131802737724187481510253404387888643273629107881358526152267551598405793465520614463521640086903074742315607961679769172984876571189532115372334418341167767508609262734423444983009333425661520321579816973924387054369291121014203668935961554592289884448435310016525356392785469524580102922270726888350851146346517952886965018921759047863936294415229373404952416637109102206951976954407949371636794269734583241766803247475330706788670563466132450269499101912447454152041992862499519243473564380558940264112450073075459604814769187046151836748013642689486378582169794881644832183270039131415572680128164850449341896292751079897622182460072482523996584986664977720770008232367293724777377975579193495002750120930506534343681758750041446379419740273323762219867844944340799514718956785529884520733619846021568740022947818002907281942104834124146619123492552659712963924192399743884893951133040667560607837974872496338756741144223806088857239631021247701705669889321229968085763381289813049653476196773010257128003984781762240191752251961429406492000073485219497634165705856403279495267504740604850382390595244792186781726585585273424014205423980455944143366999262012597642601508766132818003979219895658945490724283275044600666079498856923514076911471048806587184402660542658108003325354081797011361029353165490563577927808315185729028602401143742437127808862779038093578762540094951157452395249997852346830890043818934355102495050482929723166022645115226777163291891728981141798797296185088575755750735259170870926995453582255691098445121991714916978867474670947944923505678330162335375343127909305979263820898198110251922157086707054424211284202365443888683989532498681314930618764544705469123311488859168540810947890817873703211733154179188183165679147155881354843711582713863202917926454238624956258139439021175157029692218231046158631972499834850460245200076456539344627004930765511533072334734665444397193351080142582279677164756968368745886306300395502832273950424513808026550558936387701824396960087383669628658675749048703755697634668906473425143245803745442180954578601441578592292147861368286162540267201910421312455016181231419575545840415358857204254433187614591310750573940595900453322970192951449504760843078049959353865988426101310345517705493046118428635567844111350305138552462600456127289169202217053377998475536806122639284237758209469352351800038671256007213844541591298412634277095873444616989717655368561401435451157178002865357679834869501246801737012270493405279883262292410714724295810250554824474584963723999667039421176179692129747356955097511035872527454992920881871211645837667066037816700478029235179184777336572947336810796091581716887541702603050303050884715741541828862037655562276327837624977241453414712790431969180017454884780058494339335136674103476885786745708277030567415624031973040039379268593158041414177399416082282189858985617811100920543439777033916547410785039160071418443139453017886507770134235245637676517000794871795744835975069506159411451614359656954160593478816153534552287007571980056545294161380992511184287575953496286442248231485181620506922183317757302879387404939776932270476341966441028034743019303573842731865375960052049311711749057373462419524158978730379967584845928152376028952958538654179478948439888987049836425871377121901567552162031607032209922196956231208347887548610818417567043323214797435389376924380084654983322840917521178201777409182761750983043885111532336815193348953693364584124015681300131137692027334032322228873132884548989223026846499803102954001802369625152935778931157545174709646119733622127384732768680900655123521061108022185579035080502411344365686294561406298213363664562554642271467850220898467331724557654747057669849529263477986026348319464287103090429027543767357182268472192118640956300726366656872433101861196250978723287926027155181071656292053063887336693296535760092599054874444081324937154244116746997694339784691277134327105749423935683798535705174283812000104889159908226731649277025091968887826034358086330271083989990013001426155727036254994542173864567562395696076450279769840520002959821515115252644635225812903997192628703470322152216319425809338335095866693338612896407168690090221952072142198523018776182337550577041552303568896386881445841671020692236596338187809134917928767546911982915081471250115160724263194634903554313412039500353479471945322380292555898216511161107772943507698410679395959358712384375744513163974309796247371004452943235349816333803646564092732410180895269818102283660996300360222225911619850677037804924561748574020102460026195506022808020771844213865100903123505013165586308114649786050338483861262833888091849953453677397166985010588642431187993294394058723052794260414417048221022388736342915831704231210718116681347422222257218002647045723882967119758314398840166914875217922886417683152461374715598515461738321566727852880261827458813277114122330159268922762329684824156060711318537696489821244123126374680155089782744012572931682913870596703109080338004834577558709009181640562056018630132349209329957436591743647576159348039679769683455858215009740745537527255328024921217256043397064770603164364814148675966449270913839010794376597405200934413145405402733051720911939027534253226560561089232648745371255079179876066821202469672721868382271546052470934769792299925298498670719786677539344536228104819851527652572023352118779476807568922503464007469226713783144881115631291157946650731901803931058765197198511115631620454497252545600774456824156886278168306974414041133556715637348113564016508225587866904711649468203574842324203729774523638572281945026391129362938924739681142912854065338300307169412082182708882662000671216902827142101385704849690905612553461130025502771541055698397318840762154630134753658084050175933560491420426184848217881548602053940373461036373406942930007775794192456306354159796573508162334797107028533480688514757877795894303999293548762646076131484744271369113143723414523626953937435497256573231906136575183661590194724006999740380181466534992737558588743469607684747852065942327528116762303366256071781624904147011403432469702560557052369344051244995253141104117146953929857202045104156936071854875619021689372967495771303592151054818788860142396602125599738090277023554323750099959039340549218056756197855499603124067781206340923650345387448733238762528899446709657321994886182068387671356484390086274635759370468746086247305531250486827975613050389373464324202143849612672859039491960571522864045738131077847192217921088164048853909928037422234859611088252964167484349394139127054509050822461087831417503378967503682240015680306191282117041822905941922434585262268616367212743541311716312099670268487883538890911778612671972246580068365097625543754938031935015993511413451945747261422815258254534659517977060554321781316949125576532685130415113396051454745205795668005526840481044991711952343968706546515084510652614705633368034038840622098898262997954493487958515815156695625241724759660079932496289665904875669016093091883190386102417169826900679278688723627243154736291271873307573569586248583973653333956866066152850680792211678198185250448650687492235660239880265653348666163566783123904245709249321561172222992781068012879434107886483623933529809449894230210384753779064894103179457471346579046825464882414977032727340536939631444857353820844733030875223519117303418750293061794075527740538784598668155231858107545612086536311239046767508828139655367570102997166931148491501837233805466197148928752859339819848682645273276073839278998558308998111318945015285294661604170989005577816879843410178937881503535287642589324170968057867820750416625709488691286368495773081590481027558132908440326311980789837759164907223395013499299690743990347061215079554958501896575848838556548321150063342130692432439929343603268144680482842787062834062593749230895130301460691139942020301814534841158084246371357772012193881913718172733741612104908045631606566141362733596122424067588235138719598844008926129102344947052706108581613889388206370699284756294733775891283942362630053758576764569611981304711647643923903270631192217055792736848905332782514234259297990282751334654727036522354159208991082400986165189199758347348370137587556302890472842144344137904259690008091474942746728175944617011249737352960201381031795760499705921271490098755056206983575403822453089897894226417698710972696646700607431814095066427997800385037178283045876346226441187712863247454365744695150540621703797689674082114912562975245307952794620158602133359524889289357736295090242643671649579826070066479706444827245754758066976312722627267504383380599726259472573727888119933146424223120175161526592655801184449294539881364752052754352949109759391883859465303441884184676640412986752465861497619250517404627980467373169676054285746034214398723579942843259773498806278162959409865793763422112052957494641122781272500839925322797072537815962602651508254424081155609884694901377996419241757776275992708410939634458835766972301083952114041738995506006751121269478487670906537210040686749298600958138014121848613779153874138743487189065072607909919822223406296244844487444151945722264303437078433520506321892032001827547504298087518261986627755581653930793863523863795973726348971064641428392268008084326558221431764557630089424615064951911107858787763187351467592374968566029326492796636467527605048467024959822791402023566343642796208020054833467808056093768433972941734800132027765811792969125153937552887388748730397704235387508958229484586505053842973150120981974900067160763304827721833242008424317945716119234301024185566297068696496823798253433643072465061584590628064703333574178302507894525219056986407100478487224736566643816387225284917677702742504466495200023378799462227667201547135088093015911237653188209991975510275692671424358003617281834620900619351822767509281686210230216380937443031046028560353972323934327573161254853016087228436400264744090254708858150352954496097988759378585082737133106555475530430337634160896434325421431295023655663746941189444163900297885704494995518734932653325191972059351697551165368867848289303947028517213811315408944729580848514201490800369211700575798249728194643886416401016225887670285996793679047190717668136620503800069830139224788911546804420006240129921271300883731861681871499713445759949534514098183587327481249265081817059223954997227591314123702942255315455234083066161560273180429783272223258603416131256134489352385344345840422578620887002555932086074125525261474654676656412613541133163674072657378282755701592539167836587643742762450284661317817739598063198388695600625035784729055716390152299522176204777616196785549404588234688754667240361937829019200748568410345153539760661544314050396232783705030668106492661454045033285389905325273334060561041567752206723906536097426080419887557393397712013421554261361883669971962846539884891580155226693322538387815452626816986017889275945640053808240080693722766753708879284006804343810406232549367156529535667186286691305438837049061882487553969966697606869057398193440771444622655963502308209312715615846463522135420167191623712330849217034893595664159239719837414641414843748269890907704508911399664460804215378963771649857785879506556431313287930354573486881547979198629196056544666462596228241869278401633764739164366213207356245734459679222619630050384891427931356177595222023321575511715636315569451002948952704231176054021906862290229785712442284535964308586067664506199378920880671771995006376288234403782397738983642303245604405036006229975356759964037188576247861635726866719695549618096363083534849246391641279319246496210537670357876149833515620526906461005787155308757043522791073243504039562324828942248049482040970957754915136054567357394982627078805121952547529181829690455146944291258552557743342190703385721425012595229809103129206324495956917318204464326395869666956889166134747505271148349390420592640844845501658382650850215146270222432590231661097158204192759783381086700120802517374137398641131714605927762575396977030608822043114780563490267654101103258823791414361100574254171156193296693476054043449960032846490853670910432769321980831975890731562584953903819548121328728868171624402906180644950630644977188077006500710138562209434580284739525489094050820775776962520106414881936566395664422792840878427559876699176242628781062529302574153607546570890289025475553578608603230001169763729967714354644079855842216460705909931673057308021535677512857952174421585975565696014856499534907081311941897855629984313128192438234987929136495648724389423062561684264863266023703933294355739872440756948274630546830504368726338193613183408344322540244162542551596714611867433401878991014233696285739196332020125613602463988519671523041548839181328922958555025026745720204210373078262711623552728034000244327838064749031944039242154953712484326029794225941309207617514833980682341334379642333970596310777209004335090442968554378637116696135768755695745446462793069085741920084161968430871141465138402989770336463492440644353720107639069127890766569819248550675652013505168005794018003221191341349830486915571453891741726486685124703815950789597563084637851839343479640806950026447064484409193197123182103946414985144713303172370619740328154394773056919501176645874711126563389792690425733418232012137594326624603790280966233864600445151305818866330346742766920822555345974956694259594144526501538670077312043450702879644999878420338243246521313591548557340006249645205388425890568585897353355700534415706490471146217056700494551886587228456279292131661168610551057604448484009791320132653299754615650954834583294676468834366287197742016668589708476127318189175805085439842051225617260343331651585466859388901424573898195752120555719837256305121449805762420160838790805946612793332950199373030399754700133706964883093571420420956165878304174975860548044568911756591855607150441199203219511624501090831879091270360589587016142061948794200448752448273476035188154262810481182076942861553896451485512435551493155837997974115785838822692699708309890558825492401905252315251282136990463394860285183388115326079877358331474167071438959217336846733490460550544875089390692157419931186239078174079379624581237001610426947023868000695289993689046013034376611235333674883755242227990890721604089052348427693294172035412388295947941737684881693036168595910059104595039072132960893015908307712432269883498500548885921502512117762905897263268291684803055821388849838295045402940281360836836030433543664794393595467486225989371375751191876981490699659260908747915351570178491673083771334768306068671536429276502944911508935465760689190537392997539659883838048191750022971641184987486704175834728555543780348628627447936454423670651782754747868788092982938332328737265388710559627058660586095020105343536113227776850301696292993442471908210970478930579027236690087219433109343215786740638901520541080985242186010195135694930761653894621018231127505126237090074662824805269948585611973787532276762573487532835942593339866896243231684943839842932607194726413574867514478841778625152640303753469919464909994629604920244189361583582613896266058803326629910759721243641136154765886060276751306883169663358248773507878138586854598676806382184900423312429548781936285369512009816213235774840276205203943274160901091674394769649111138383766975978420807214169301965444270366245895789304174668077764994082979359886972818293339422285370822815177021161791886415649962347422143437642497353422693773878135457365195904844278991973356559579234012884667060345491130183625841291541625467241312820913394822275230177641609141304749712175117693390358573758265542076174327495082811212969651382021806145475553361204098952217473014114241671642664345133113527189063222872330751329343447300372221505476623022399056120741882046018316235202498783773935357567469048707555631616727100182452203380416226778865166579208400584112068360124064775243821955954543199997054593431634701912531478110397882354400941195739507463185063863047969780021545359281028787663747705013895481064037256021547782295963415554984408321307828593400819117660009981673301871009614727630702721447350504010580100924240389871541052994191997688924941659837935073339629672021262376456608390050419407356433622443072073695911389786127269517966822232641453024753478369915096715900065786248286588622532298224720736550558828201677090841708683421790396984513594857950178520673199124441888545496090791586974872726673691919488702966780004378034319862598589270452737956686750778858771724337882188436907442145140915605115936600062593060113887358307751610244825075074471493090739546937785474230678773701341286902789248748401226486722172731524634931267093084740207805238729792498252258988604574694541006461720190500869868385763453940837086580697359683221712534235608733636849633379276776636664796517088233176771003657361179935145551067809669995148865015068292300725739252666626338100633424366979924296000117578652983345553104820546120564755960663188380509154017180853309290187055930425590773388954211466994491705061943885118369878461536026764423884233860278016198980781941951338595123862612586362861968411189728596734903796550573263672302321005961178904720885411694711946548933382128512761912062812809616619086628444341015891933306552888714897765896597617158508183199717488283713234452185093713763897642662411023955365228998713762599793160640974176672823681015349609009009412984514093214958278691427395011961324126487813569614697608746258481234592326021324828768094259161149882327544111451166946982394133542636396997531759257748418847372529079770332409107950803435705319179293306313678834191636119919112841099513770324999004074789399127050812647560414595593771181260801386101093580190003955408451329262633050906798052289838193378980091644667149054900384644328740471382115493586687007306142683541516597109336199836500107679015362513153414721628177046184009877678061753364817698872603491073473683532585855568818203032087167669413992398136513205047625436140104553525782854692623855430083493747250622135968420450597354181941772694435615195465453623372834429139703889863375956702240548370396193245511425416350387431807676336345221966260466414202567986667782856969489209829861403285921543508429129527363946126943319521675346390821599717780860453338000214827409950731483096412612606887533614137974029050214503461484374734429693399087932165435633291072922455104588459433748830503397749215150820216081871639035049665857408112838731896316600171814706696832371226054972619800940483285349825518202040914369984434254792479590047705726923187009341576243290037698872791770872644243506600072473091368040772000455497116057171232128672069924551365066921789669578867466336929811170856694660014201620028508512741587787454933304486661484067407239394650634831150159822877698127425131684666051127232511258682103094578857783500987826555025773738291965494461747665994241548841904730999976340928501349121277035190908307900779067932886871986314890968123153892754460358444905863136791164910514786524028862264481566864531988147605240898390238021128978775783446148320216359873556921495432887804657052102181024586846413574584792635018859851441485478251557404712837373879211513385537370433208281838482714606607505111678526547618837371603821174692081344355604632813983505152490936887138042445400644348706912782492294536485440539688067710910362851408390585105161502901053270097384792298485797429271268222298633273914581561025781394837466036125740983515119198245214886044447228983654431714117319101944475902026923821836784355852176871345842069983645298231902103832627172977947485720109909434699820706076649286021406892334871461412571694758945840486567679406686065698940956675319080013088319533065311842599089498961903492863570685476771288450786091453701305535829336538056223623300801708402541570573649539244282913186676492754985287071816385117676118061530623384409251182310868617793200794277404103057054683018032577588886902153418220356106147381646302630718812360089996795170846638003525416905614880283319790371341000150364035753084177961884559794028782324072338727415235124495728079128389758338885170212646847219861470942396617663696499371159431545640733071041420622771906892876243628195163231003188620643381255713798625093886863068460899116738263306297221699321059358497135765193096042493510202117392175063068050696547898240976009259420635005847580481967857702497410137244110244974058088946973787667488859368056530812140674928534829887427565915107477322102479955241220373719226047028291050435646413852750143040949020057318365099136800108780010378913917874539564519312315324839106977609866584272175965858819789755939321127227440091319482727573040304887196139519105726272743036766090182859808930767912572753740962790325327042194608526655029584404257191226380908040936192556478903758965286406667856214644176611703789133379812762484665348128811380619549936393691143058448159844902347283725129710957635163725470413476901171953624422355099566041002549011717324744268161054864961351712204726961836420143538034548535644296412761996660205370787735527778817434547515889663282323615035343056397624178523901836768620112602805919579207666755282737973253736754073579637104931851697414266186765744656019468289721559129910514847845753787591894190335917708688888991762764479437989894175214356106077862407215103831211045614134980648581011961326748441381536203676082721611830266444485812054846975674540206025520108028473184762978585439960056064162435098545822357490868666607763302498871536588634676936466461471427833207563691552165823421817754047880512654481573358581497213051295860226029427124579714969681196293946469785984844063720440284988218523279737767292060951058158567077807922650418756636032356758434898795592829479190996654671487979926433533135776427978151485410803178035415362100003636399045704779588313166741941816834916212198197895833103888312008804125152860991574649541418270189294710289826705465524169576743054910364634004010738668240323406242366897747082041363156258925254559576702205452619742502656118326459645467380691138554869001679291057367588127448132862888459298801706875989896454166394318271432086248848629073869616993616212429098665116360258798584579657976620529630759717855930703048462782221234052512686240547217190867875822332790688734412106386695808222578537157243430711176742109985814889958299746999542046382889306654961209775515533582489716752286784921672578597489427166090567177953666064984385890826619983397537881140472184345871608785592401650360080053763151801086951197950871154014313302033605866444508468363538550114740996655060793874271139350486015612405593875333059990840939955692337444886741662735511999404429587286028064497544020847077822965859697954143273155017042019596851172727612648839803971343511676821986033450205319877280668798987765233845120723967919189007088598244556619853479437385247630955004084415036830982240867018252654874311216392239917991113263215160346383656747553397156370437902387572123877539399455322636116381861023688935889179678526375033602946687854700464124702109834638519872005409289460023949416220652113955886887290386334063156837528206404859670524143480562255400659176728819331182812688520949812223875503179879548429704496161374797798139865546852032002381437159166410259926563114510651455841570065713758591895680280664923182923861197475516934296314052294244823431146856621515214939560535781653116579416148277098224305494593386043206007123298720085900814637611682211107211398072310691307287802799063045555788511824805579120851913730128999169330289423055862617818851199766410182611021282688561416741976630893111083694565308112260790925813029325866961526801105553290328113570421440812528281870650721859670861743452441851492192581086619059244674274034343768868474345084671991351095561199117076400959091128309173251559548934154910912982513444452076071239599388682370425846282702194946544774190024654865189584015383683469292678535933131602279721523422860977486194548781038478421380891525285851005345256327744497414715063089321845612039874621625558045337231401828820553366625537704117028107381476099405886283356595599854128097411917445253209325306951942319913855430796212125207938251114250065897814623392164123661175342504810643487639351593620495283335174631074561637958104023033670494149292514286137672362772762522457423458946002731318103350360143212630709688168675605906467657491000224419981582195442527714751984356668455034665239889380076741838418215466911831928709835048331619220526371682080315808520160996046145897072766983637696587635147874012862401580287725115042534089822542943518482056552364537695112369622371430016351447453951079435196878548296965671236401250171454311841021262014887010283674843551708186235341703865354199202428666127541917308282237660174053047546092200658021358968539911146073936866548747633241764816490266714547289897072293650465652641156952969178659305832639527891559245714815712121832856590916542332289754597004411457677601943387146586776742049960208621186890902250536134344469752569789871360290483372701885788596889262012894478804241910377995768689931676703254714858976444602252294688753315562759236711697440626922715857653756201736687959458198554130346005617440341276136245784307444880042124275171143576916857495051197806859603951708755820505540826631836755304921538730455797943958052327542515331532768234090676132639736723092324951983898112675747473776316258041263123606154833274267655672825902317636369387688488180415390791659857344468205936632665853612795117438618153863809533031725295554256145274710633800900152639331214335469783592987214984759986905445154205127500684628703715672466092858019219279624897729449984029280437696667237312751762936947399337945082353799529280558656410879182607409971842160361998618621342138105155370841569694044038533243636887451405954813896014346804880584385769208031631309967219225633691966468261554444712336002776862161297798535507084041273136533897945954822560280252510767598966575405382970714210262122014102003615686204938908842472269881987185885859742037030395050130472725196298858522480492352563353043790251138011047508759609492275216294059941836631548306343640754404971602652299481297653123763808115247006296143356372469586594235994958900484619733020857234219933496441272179130932999078934939769541925749506578595164738005888110567570927861071509353531546621625873189693540697493345675125948719437403630188647751622086257890422940429902912499028931481891243309439527183070442062498084650420921709706949891828943579611328708851082890377390439873739047184720152698317073077544661278218167173634207740893902187113374392329642084435414484363402887075763636797378318138146871173889230206883566214336857167809553951704409382914897885938966385273489572393713716559138150087138844116748749949240954332750506342252415915869142787298195852847685751392882869615692363248892092901999881688241206197311283063069368746174461974358377927083416495004005662040149940511928445769504364659788956880765828496960635658380185780650013440051960602093097220405325767058160957570650686147196759243881526871201280434080750474985475566308714743087814080971505836223056199345743927797011786125434452194319748834811903888876020601695467128537905905255421846351002777458799346164579555967632640923530137959949848495050542468816191553564996759121268346323369003452835833292486139717676714541966873415086607191958523994885252296700651476247495983944054367475657305747667093863960234310134544127850009090253669149208421295017039864159593837887712337628144844746161822669904794817691956276658317863544869117224010415277057075658710190777086302591464573727772158511171926518339299884991693071579296343243530365906460012110734798885394408904427374533972208626738630286446258816753318458813277816187708573670899548548588629717247116147970951596965302295626888805918407079158080376248022770462602845708867702297611182476180797167877280021216959799130198269478182574707793042654873289966065626929418448745938883293800196792700570855545364578150348894470322273811380880313175444723559849667930812324180490803508350983907848981320241179531890837783451101907547572740982074660575379534485210486035513898551471581210769311115282456307993777815114108927549244681385171890603115905494172898677387429845608394788412564381474821285113419404083397074517203793778815412603620701996449884653917020398952026138219541034673010311652275225850360265317605207456758901714769289897691812453144508318631439549419625278766097010530621573070879802824310194270601012845365857889017750271278970280520776084404399657590145471861186976182791836488424419744755856761589912668723108775450862583545398343273096771064774528638577556368313083775118512143778950880021676309530374454156234761730634139383232202762084585153739289225862481746876545201652795200772566370420052459607050130111156706764979084932640581635199213645414966346334109671668860848237044716868646702212111496487451967024417122688851832714224104739010644500260883759427539111720878168100395865825634509425488377881868546996982714099596996725999455424096631140933805639980217193838924503295090592666711417718768320388224466418315998473891006062020784494767325448129566383368622545501053158964140335728410016949613062983858191646295786879760017194235849115406356127910310334047145724238236050369186685024645220118276811668173178061906841929888490554161027144838075283983798831478999265751454114727931335762590511005684203240662518364823211231314604990737223337671593891890831412168719656795779995420844628857380234490194388581843266094173761385498061007835277934221894989787899282377686226638820440093417244645001400841709723646369535824801119278835847965038705397534726390427580992168035148204753057150643395348461294858620160671070094771093246098282865090839535194610200958152669197503349874321799777787288961480598968656389511989722742181156026337735479801247024773777520170219798314632385252749701217936323480023592539759479206606537535278914515388168878789468777825104325264828448432559956531866310618523906139346698819553836979058122932570609191883270167607631304707300813700833912828291139899553736093709172381126994556908053537799799023868506004572714141354066699878686934007950062648052898830220371184527012487258302974991254806680751089497160044058277090120020575173351697906785913383746366968169719491659771213078633636953126906587493786504487174651666728582462982943312075555738207024503066019291362300548269150912700253999034568083823829438031455725680443513732818582843969496927459179348420820455822371173644204827732359911071568820448579978116005512310243477531370827505876277050568280239967660135038154327620975784460077383478457769878849620520313853125007597554434138689503496339693702531483809113740568857171905635168036544767925850944700291251072329760331637686372463104459516010906646093011564725078142948886735110337652053259324175936029018621529214750190395269664209816427662684970308450631695892117067781205629612187181946084586435252728986895045979445428954156546328082889232723240625675326884366013639330953181373737239178764520743609031837132986314199763203984575493697948782089147282101602883813022577009514095906415708748964959844572726363382553956768995460144183042370213745599306723775246275089895693568690414672214062303450226483329249699038136260452140081017231396115888315815857286311831659837310133182866139508319205615737080993101799078736262413307798245686646115252224174821560680731237843083494933479016345202544420079766068685746074154589454789847804098821760015859492096153602661014755876782655986520743672595481335514622271526152158142596914918907420322379637253648890553657000206669623305294993734625301645306495705841017273218888140687130063020771535863855333081795232080451469585298939588182757589006401576332675379896041033373909298918454042847629069759068374956884358755040985231869985330860713430369790801226344877921883604800777795070902999592233133219034416693543976303971387243692208026158248898465665391293743556900306159012481126260931474962668309430568934538414308821839488751338675820822628030093564895949205747839189347100670353175026015661714068449155981346028362222640045996728149447052007986708807185197007984372306042388696654735784431479321637270757824219745831299248181625341866958301931518486971271665418604966467232023912271331392782197386131892014908659819730054856646886207731930238366152898915596508918884255836116701482643435215061997235519326218363350971095162224509300421148965108463875485497195273635622062801814593991882080812019065390707122399214690870484036335325378008610208954617463010547199866827859120894916329982063208289027405418102386973249845307100343909532187454162769194904929803509916214021007090434933979557836493384190017451873195738629871548157261300844964188499031851901168535344337494771425055620019981539487532503674316359371384122986428324445455099435967625023252401335142802979531180604497209443437808669099087671559064922670161813489795816817909257628555974298672283403664401002534126936050466295039887309539542085060099292848374025052586909658550239875793315737050833970115645311747547666089393528247975991687358796665593103536622699543465583886461392640115755153857294455347590957707357872352075296087732861840108437295282212069988674344495575471573189734802852608477418613808406635447956591431631573390875356765824788383868683491411620486399375335377862950584936537964247308980068057342358261609314491271440103910345248933362402561502360608566473530032622666231067510008493595528290912286576633922603421646113729793097724792487996453083229887921748422887649120650385133512057013687807634769390832795380958155528351031938717330635941645420112498392239637710099141572592008339584852001142947414126818568727731649277384947540610872062496265709903063556146791210335266929902466566871719860969200213824950627190879511259465866448271189115635545680911545496946912282630030277333140743568574550078717425775377711940739780312464093676649749641622048627685635727054641918557470393389926758595813612986923371227785122194293772219440970140164260221347656614563689242132244547552270007863008807426189772028278840813488940036010689082712543770943479235202794773238102460989722418115640912137819806014700595227807820602280763174352495967498564647642909189880719868988546303358527222115969768129243879756744292039774667604331043302485797980410815088683516520285043165853044963092221807163594423929479632493952145174336910712488442096023072525243282938884432512207469966351747768417862948743307271994115085316812746673779047643049800249710855789165260216191977141767832469647149520636177547745243739450981491085263097003734261684650967173099570619804467519007007481987171312887072912344141513638566312854779561983938945198317235080041306822354688076238382871773980408743688646795539453071419283201043181902698214894293575333254275743314935204158546212893852524957736743246553822211875109480179144013481201269168991157907019119461619692527325457393588865854135954198086151703131251202108650976650078701715534100407801925673919443650409268825029457061223278045219113699897926892692749876646211009862126504449600226251625903960321370766673002561942463685842444321757743552782990842377279398230606826743321921887127738616405081383070967157138671579470515011335385652209754970789593864930520742835900612077780297806089052652186372226243343614155545595407400108341164548928164595981291873226809494281063226043042343846557500619597422065853386547859090447448028240850911861290218904790073177431008498979452286141756894410246065696852676225407569488893206721629685678044313638378572590488501510410762453475951631152840417948287727586479588963732759882318059938136937078213841068244844198753335912107361400057294339794813827799483140082286195289436446048031039958007710066414875521206291173600763108176964131910850487912914466589729471312957811342156425537068598534768093554535356916315565772629822503124881471595931798226345507233558268944705658338842398008383433493158291650256835713218628932418979632471844481471114397368185051651467781125135513681561407130503744592509221766428358965522854830348973113395125559129208219045256652982489262321728692980626291066279373755462925497857960526798174042240974264538825279381974128984623703730982815083928438624675172537666102006026028767340423824916958773474214324415958008541539014261101990919348744938737845435631311967476236683732288641212945448202980934557841917622422008844219893265876608567666810025092903796604906120860852546325545139533158370075429146427298534620553320390057141717231464226224911892478695175257141385036913484390264017929601388869162694570356810357845540957183802188653551804042203724718156641419287424504686691288627924505554753319007605092301040396090561110003214094455143136655693702883494943351676241173039330329741411963497350971124072043253673719036255697742423509120706904715007284462378140580789649215177133031862572356494015545023224053819808605347881372705031999432411354939773186512585263342858129811786430202214252845864191717931557235919228443709378993166512200765502630233892848684250980074053765808943470751959478014438873321875496203983275383193824581607688400980630959657419663867839341208938874007253487608718797211844978794091398547908158743343396037905859535170862363302107458541342633250253536496130384567552136819988926692733602769233905329350075165989868372202587440329400638296492045298568617606109031234126929980678025438941419234347541363435580732659183967440385615222338197353457413774329036519191705233346527782799483053736916635826587517991742283398493047397807481766915035877794069124878672524441438003254012482827771450631809695155269513716534119833160516497442081841796227307818155752027576381139980120952657116234041850374736783584844388789885965073018073129599373347698970080621921950610150599369753716340650273009096458362864521304112023848938520423573636755218990353986356698287223806221368319618438769714177590985677723160402033859823976408618037984710103212621794222353477229091651843172164149384660247738781226334691147615967225167869313617334288492339487131290584006155553108402108766911214336923368099127725063669861713245941578636581271710419890116033500925188265705600694827428167577181994578668603563770936708978789316449100359295540741026297355754071138023433983562481989883847139496543565582024807665996148179123777441944347633391509116023987181954611787196918915842321355854944498754336990534381591666630367561802036685140599347544521561566369182058749165848060398958970095852200423677871410587333011121052444600748690340537514042048023517063769828728223689013683382464093999396918614001304346692132575897824961122464740287711071543237838515427083222517542845050161602620424357006285171831713275208971440729411176926722117162417467945617207469951505129138526368960350038380797021303776455737920103263664722974015758355459140926942295007851513922550057904410906032699688298349584344078204844053804736244567217471364251805985713382648414170708145671833925970440117917720704148194627680703149138321989649651485738569268130424218853942915584570779036434062810376741962369070454495475783187125174391215103505436848520815292428887995898186700003581225446720612937974917846142361046570097841146842785736279137213168156148040649722982452207051056483370784131358331603174766363932276644537333502233115034905998195617989821826634813444646324746262523010360120236212934765405740593320595465775665106176628048737616823912996878419107472865777831530968606502474211164654163125276500464846990641391244716978727578965816489767838660939384225765813564706266067649599126629699303184902146434774960904455563091122808914334144519099221797028933902429567506407712422865488250074549703149999453732349578198183964731051352574075042086993514847214580047869390711046471452189138464333242205423517451792870510828593299656188964178578457109172909624369414595000751317799750218655319136426511835896775845030172615608571402592602508199215006372702618680329735823390456745465207404535384955046725880565762694783484172736011544291644857071663832929330526952537033433427588133269134518811371586444568249117087118241637178126050873975970331439464969605887036388705373511768621161717379831517836766586892916792778024442122420987822226983064343118629803993302968247287720319697176801302017077374651790088205189688765190254155317077469233479135825214482346031455152360675820525679950320496684371059200855553849938155281628284356995750371921756640824591231775454176237144852373306927868962982872564510264825531973281458177701202536774551585940308229934653982998349022655882118379070409961773482781120806047764840361276310830576321780039531942881978219274260598012011220567365927270080801913147382649039383383557811642750786166564245211182566056439563488894263738060116897297537360135027317594075792952630986415176890926704335522293988467699280797792838749910625186671402564660859619145458384706346522218079617154939479469625705213641184269442817342446916495284578077463669250373958496055167531382814501681057085584361186812945020729332164316121397351791534557641904660246066112010388912843415991414856952882959031346693659705662096538302381653745855661991039114081617128086466912322888328568188188991667764975209868278515908426350168431827848800911727213930253819522539667442517820545764412702746072279226536412030842655229929773976178544247154329553149462115896179145051882992098596310550009680081614206029667073778529727586288234065451743337468102233763940164573559826299037174399521250246116748426818106104275618586326658359639451648715332259909444411830303131681224191142668680945482338663537212801104234686350231215995947388644405163212626394770893365247880536961377519934649890349204599102745939700701586188610222613581340931284571803889008377576861058534544099248421306390091274011500373662833126343445222214930722742007385223064154218909835968789183345596504810353051898481943965470051323493811794812594103145036839981872748897736541912301038374216713334103816478146073457505484455032818624146001124539583472705441172897566160095242675298844296050961794567747071277223475716112322040811344879653400791382513517681936007923755365734262550370260976784885750227933956430981740146520029880196279772779372046341241752686401821086368245640079039195982003408717637670657156308971512229112762781181684403736247193965212029524308484328045318567842592168588747319957540103196069677057320668839955037132683585947103444407402277129369904909681038818397300141490939754998160587347978014847882979322732697226106326830933167336042238290977869137992986704020588646167712693861470874679475787462890094817431908331229351259065742718602944228217731215067672613238383666147115800422131394734438649943918400655841852276015599147735855222342671212451430276970710998336023912869650951839714951879084198849908563271164777669551153787485570352230641549393772044264189303489829210958513424928616496690840588428018373725907830865906050642001374011665956785473462099070107820430261535681563027496519758879915019598981887349549818687913600218350508116947925643770815587767794298914998913151392809163308643120357804306315343375751363001812922452363502697951211348900103750651839257597393966212927276810649877020914138160495600397904545756822639754802162966776338831772000673664310120119211326700691211672089505059779000220171131358814243937941561315734303499444289557835346885007643009161297566016631161730125439483124698064882917356508702583842250108614934127836054935243190373922030771654524069898278516961562793520458621280954580306095868213091538701342631232433943198056394580573696937573013584529436653725229469043364619530253557299294979601870461111561561691921385125234761486185024883263643650403852328617548785322125980980642890587194822703500156277163608391648039095364744010841669531547608151169249542187596633165544418413270216209804961692038549383219317173877495094413433219644734874018280782989049264987878813957768770168302328837642782655652789114580140909321362245592646953089465447554546802684651695172207907804313673547417821265942248945244460989829048374233051813544677625981306553301689960880206419790777241426622875834303293345246552058191019411116457344378753853353392766646359403484465563950717355171746580033533519253812191260967162033068324474965683480120072098911716912175926533948685280288919895657920480658775477936699601864029805395720298414070882051913004432552138244687372582969593399319537180295741019515724929280160488425319285744909723203621129270711176016240211248845039695230406767604809427186038201298869237773643812488924938720069576866263997167899641031993153134663316614432322279010402119767442460111961631889088672018564662751305078984989160350406588053889850745846359678346670514017508769580172003941936116034063202877545256891066616612575473906434264249580389427245944100465866833089392268109073347626812239678637115156613304085444530078138093781272196768833395946757926748584342200033804191982152378106354560518605735529731921309903764590938195608070448818632907273902058803931759170477545781022864346799177728812902221692186196411161238639674750305430237378366876780293039926487502281229729120020947118132679286095960212807386865237662496898135338720389216156914508338007140600401689875341941902949873724874844261780547347329979321772450975960706815857179083330869745468553850374657860083459184261497701468807821207577305150563231072080334914167606769704159056438623712623122113083294874741420500961807879780799696065024543267410587002104650084302999639260588490832996282793927819477596633507918575397607416976397929866152217059929414757349621077548918018375639496068974435619833563111065592040419088772656042709035582803027346201866088792911693056717875266775180988271018137732848593437074060421553615126570873020236640096460775505246665367449763330944331396668291791034211091312326569799750966453773759472252719780731510392320390079003423918393730184872627576035705223073374055443753823945931261160067886706040930609914710433892168982339080716341502551896384837996638082813344956130818233769208658753855537828324871117441605641202448635127035943338297857480177132737549362698684880371581249796348478604870023593121737801951739967099778938520893307564782680177180315326472994126639816319255720878019941245129615107406245438181381648316404288085552464516114715490930063382128856131192096116219188318615258025112587759697288230904385757607124060540710108334763428395748399738648965511496487865084599330798858676635543096727892487536579844260066045363282301771661971963529639155109406628094406304269091086496189696065172520508887411585786845122855466375638562092357484702808119068355203464028817991386385373592325112344963331695904135830090809779576593473022681751853000379711985889293354211302546914115206073710950926019262555979467468695806975517054029851928120315594738445250830817811931047723628952646924768122220924383157495347532497620157890491182156459151858859902116062365866553366875966381103571158685947866839535219639238148954390240086786579603012967932189533459067474908354484423542512190763146630854913627866690530323744890580133892663114757525861127543510670199735990538877246503555822883289170236497038547079897724090689414811083986681398591533339946039344169557992019389931717786890276741449199416137888000578264725955388160707746635888796796742410691957421209079508426715281045557390146549120746383624289067505703835641052512920552314183735658732806816888753138570488954071100560360724806224297822336580348931650277088656515770758164414452099512966160829912241231936349956016208642697712175945274323692842613245603101558240585626885905293152780008235154392327577019434391685022556945790309152451197644683370628979680284603041747596825687944630718559407665025612743994712260256440973604843723731093865505606011602138451843897253106904161714671446621794807976469096581537394955427069836759865756611919863500576085939317365655728904222992853466986024196739761096662738739193080571543253826689322243036745968574505888426913616635848733223468954643840031579601797210845732807223220321260640153610794353323241650268327740412291405133722693131952831318536603292599287288487047992848236859979990963751527025355916164503691296728172667314824442121384746680461777623751905874780037969522710537025885987541557222002865292906402948596420527718560296242858624940917553006593553651064692853195559813483127071793589099328906787389082870489416607455424405899710889196606545917234067645953224634583308593915679113719779237377840717227198803037094692384671160186473651684266349717092220130885452783816142399378837308510575004423026742335670278457903495541256031298701448527105189870168757874006860496958239096052912257809128397885427809091398944277723904703093544862336844116316902154649235513285877823801335318942828564990755734816842046387382811086477893498486026918134100330598320784380277921289846281176650595431732980958179200673623137139287838986256706476711830941055022346161555497536729301684024956430162857606213536152980990309754680703302056196419608077402888871820093385828578244952065129694069519772566717074273501471398278694531960840826552326387555912767661765943253302089770023083948301836981622168244598769764254452016491666951202270270798277105111241075727574546790435636178126941155485710976928716596227202545300722755292136715380727833556059454614063129945498201928261439110590831278182457403020572927501491018395472691768357272715173931342217629789974819148958409259810786069842915568444246338183209776977769323712878559499104316052848299397644589000167722028414316968585411509630008677192607189861329661908876544049475419231788899039564095906394009883774918292158289579754139678804137255834835735514346691298294148860608429852973902218987928548793424983514268173544836687695565497847176254556233091232849846138834007220255975294701487087510103045976322383830082606259800692576630381285964483772164226132040180814654620998752748562061299920241261877617362825304067860530427533499370025427488522495275307720628225783970530543589088977969277996478363514221007445922740527890994863279154999164692246866881605473261632635403641992798256355822107500648245225498785183028534160459219423918576947144311872554248812165105596520723570219839402315782169735423516283319587603524038694076746333726010785731094141179377958296211957931028126435807853037875291609895075234635698297188692856499588510406416156082729960351524979361407009592431282760090275120412110326790104062021857676980908364357369496030554077538197356601536683260703356641667986608465194387180744200268991091302686709654023628863054276519812452200125507388206909572938383641901640086893664694447570715331900578032156991009229940028122128815829307920869597338879136127012687390811607157396972461980283408071771649023568224535567652482764005024347511944034217354322635309850830965963596013725380789660682475617322438833238803892403252678344318486929083518077229639628437407842010823870047015858255098511897836082095321379387629277231866957908572985409317847284995518465820118761918135340373468775629614019261826045702449120262228084652873940407995165176679208359447117499870440163138613777476606941522741078598991861720321817666594062342370164087582327045935015614702130828491559511144370352224228425383519712668103177275563962237620608222461805554195277667481443525281320216671126326534106656529238247353276440751956618329313924949096638064370045261063557526036948131404144560528279460229258138054522102837412742035804082106819614173386787566041171015001532054522237442781636812544424381080205417799015840408500495689530597540445598152995750380160810756930160681420879669327717191627011254719232915818852628596584668840169267217887863382190021468985884598045121948445626613868520227052125686367283150031546768848418225076861637807020887315357941136182586926649160499443663117950984581257933476067596646886344890824382711118892494259632267128455114996377862777778192268485710147872297153353199700691439473160285428479034504593200882856638282295048562326708863180431941865316664503151500904633141907917342647544212621005177238870731778913249034670473658487781411006333799747657329955476496977061913812131087436397613369649843787491528917391275942002934255261741019797457005651852196525633515714155640007964019674428164934553929097634408617004443098087245487510806302503265760761721648706486361399928353192273043226112196024095907813090152163478091909857314548370606068830148630747857549878730943269943262355770469916069193218214395300879805495244729760890738995626204149145020095782889109817201807721264571890337575160104286167294512275674338437555325164709758187705053349295498118594275790988338462474223550553975035561545043007271993822344154241843419791169617973569410068170681030221188791902385872782239700079212116419873744522048755289025341781919634328669098783407061506897280051560685425323569150116116776199535162580973119713073570415490243474568104890926617833745366663069071920313972500685061512457956306020950369784685703108134891326814006059568745739396176284507647679889305902201369031489094120247728879568706862452289533690619617190291403116662474053230612810953810955832347172263384448997745833027595010861995422488779921012218287497443773758553690823644293756062298861145926139211194331278664865218718191251265454872199063126570932553667549616423752737711199801747787513254963651231513475852632798710731246885854588734811919993773304682075445635505803281129092301182957977739236335348889862263531616111242921322638427235806348108236193391316238959046045672042829236259106878357384068639542685351595064068726572042494276258406425780979732044147557566299980262629069887172149645660185587589100016545758577303984387891834025266646533535423810768762138397609923626906845564663647097223613684764695064021194974252457761326755626602519307220765934369264097190428033897898924797805778641251717625518687198190949947428309328003006744872747835992653841517122752528639525017591505294989622974970337741439073747363771764036347958632850658280883753181086255306161498176383081678553999960460483241290550794878818416582359099275065656346375921927957469933102154793392213894435512421859173662255503286129395649937363705563109283348832895831722046676819829116310708154041401234344339887710037250185628650922015649738822450175257252232688332790497216888369331224969483197225919403737968664528405066745342183515402987337687678306521758231138544283034521333950180501733573908676933491916190904020606436612933599444995663019952412224935352174331875573383577795981350339778425500065631013822600538547217677039494502017908334683068620476570759883243545717570312807710933020522645314213389669017410880333467958600795978764690434431788849995767902295217657683480155341189735009675764448873788916730506369544038899009863432200574180261387727714743378821378412375861410023615036558733413776196257247869322882763683653616097382176350773405440065471096092964583435013581106467242386099495389889144670571015565630874728224134071600479881384418635445692354667341136702996372957571929848695757334066241778604693905383893281729248707609731017063287214965423498612655077826354473119919499212085100950643978827599043758127477376976734382318688248141925117480032957513968071882437353209436070988005316037249608608497897288675694995507335625483092359686750422197676199826143257415865926640277624727237529060980092895608306057144606575184041616105639508043163437489545133671090311546442627992338178178526526505133867660718332079844765237632330831820876362881403664150753789646575401787857038848717660902070714795172756002428522454455821850586334037397830294473663543829120777328214426572885398197627545002995123449267416011458884094028074412804309181778734285728817497174998984638776768716425951592309123779750087804334134787318631841214002808273945766872235041723773876103444475393570055781973039752948718742750938880862845290594739598504682050306250530738067689746275512481647780606824099324425339764792097036092441516520114489360046273980721595982825439739904028525579271033335594675823307171012160202376057589140583408962315890431362266793517805634958846779344516344741729053332214375716127680730454171905394751973339673564404165160369283993603323466519303882889686101281785916942537808765256405197340586364459893385624622538180208365468612187154844466783894571698634569702130805982245930781669829696656158049529866107149323309086990124306329675882913818446130539482874316616818312277524587823054412135881496970421260904886245889788486946372477953363135341782414816088694376921209445466245745237984222156077332993489475245468052500329671224771311270856269947233228469499482990927504819671398278236772125407136933272462735202508925315708950978442967286745766445950610708182111818305332335398777834252717786679450505172885885153053430209911402589555326812544555746069663665914292891900900401827124273550338829191900199352041615961455201219782980688181503748686430221772796567477431200003605171346911877012024638131716920545958427136323123296175375954603665239364555786133254219286622165502872815096221963447596384389945544638970864843951869584397896727845928733147506516779586944366049267185719975399366210431854194853363243761807418795103733786978504930585090805397031942897683254945026749890772944956904532951098963473105352686909296496055201255128219748633918120871770651454542708602170852911046265969437579388410600285775549047719197109004364619507699119747700657883862872733719713848538995431853048697945174832520344312439512970420120296910191145925271472719970711720253016141947658299874998932850758873578509527700850401786280351028962157645825853623971812449810753574320723368619412562104205805733518221274622183875690061208690518144522039923947350987022175509188023327947792057819318566365773283226586754100620479425119035526137686477826062286277522424885471769425602348138940143419241152287240495358722597448569342921290125068382927093671640333688755059981878924696572648759813821632116860405846571613131113697582415280811428909583270739435670085865341823358342347151049613277356485419814418112911717319833508997811167917766572893960650824397174133287942085324166127366994981579700467289090135451424927999572521046678012565507785465025516561639018006415665970998866022270013150274190546058736503453626994950118584836671545072184387150946628798225639493632389598201381609821661450682141173794289670747399034371487486272756320854836628317769764543878373161248547362978814060052945917576608279339930670639019788270086378293524763655332034363039516200915638919807668145530712450820499275963196281125547150860571203291809748135445591297293226108163513765477029143342953520869811234026578887162044074329272098307889753628327275506380878589835002576392207143704112844128229988017518999297062963011367026856350555048722071397423868190891671147798137837449707626863024560899830795102066914315790674172163324156597926717431486665336882621649436624648034669682171595609906784461972742843625548278297467419237530102756424098980305763066295944598879318739715072662964387427424370856729654552616141634174781164320431402659811679991977669726218580649820924090978861190144694283861840879301895746189760118248327760246787689312948394256945329092553376495480311551619241708649221983216349727948340908321984329692217574651677772580170264627902736810700494242481249545753075146776879770216777567286805017089963175167883293508322203946075628839642144469279628022823598133565074669049836277976795429387895001350260655372828040118786992903200760034046167830086592228812427747967515803925141158085164746428677490883640230272434176167980766103994709989886016685383973826907399901031978105318396269021970805068267861820472225744322048534274126577377757494807235838853731367725296313895766080929776831422505928854840971171192878654199342955630484805552935809898313345111991303415548556155597769773005208340368293565368977289897314876079960463267418428140506667895787642013997641002772748951304414031942971153514208159996539245352881642826157068120707576233728518030456605863388608829935044238743797763393236398614137264665605062114038855699719660057391934999842498219027906323319697996532443488534345027177812530796543319348709525540042242096959519806087431454318616806405160350790516823469855227824473627714888750300632007706758823490939872226532829753599548058716432634489694871321046917897283765481098231219248600764454568926630533851533459523499290004612982504706897609104526033969986926060273882935918505568004561161536494840448187651643599928009513970539853434227365038018628636885627133836236522558434074793490081588282073005340661075275881557907216070072866941735695066612972641384978445383583581598787054970522651239063065267643837934123084613531854161312837407620775952193827387043415113111159533524088263005298539174163710336935467621528416041052746526792825526009264236410818267683300985496407253741937988508473152926245045735194908007802572554406543598121923009545185348229370558770024022036376642291495516573661295107336378036173131566562600544668881820397706572828314994452290084411042565965177127619565758082622576120987110726367965189310754785404847203078280978363846993570601170327488793752275566945784304491368276655237461810964290291119449995160982323176397000005809070012591336230569065124563721274492673196520656074748393999789114097634973686532393178402969831129347381173078075079318467076615178306177424499523072963044034586430807260440377550441715908321061302715948130450168464453126271032622435512033922054847480192776459197756560186295020992565801254587505743162463555248669281127010722530712026647816762448571737665167247937334772751292354250172139557763218371138698553344369735518002063819475125755847887586903874175209578053588265050397105549045945075382190258640303210685741593072551930921140211913528595487954527988836340450035075840820264826839110312054671316829018950631505388962012265761060077563282604546467158742423482266513656555480943973813589289493201329508050252272668149884151159386906783362888442435588120764827663525381636013130856365861808357909193126751725040332768607113527793056649500480722159748084219441263883156785945963820647566122515071867390120440456335454146582302751309300128600001826755252244903906047328731882969401775565889060879372989234382204736879144458866881584986698653467346175997832508952235354935930697127495681023279326146946903677732568497857622802710715593453925462521364563972636808759666441840028157654328768725201305095296861491870590546050435066299322405439579651898833958501957124072345249593536597570211797257638433251091646994900861510287006771190174674225350486507892246868385124643741648474358340491336394173986518128911470464820652690436713459903163810354538497400459025149276282387448226456849118035558171694269109244086484136095560189786340112596976877946286965717689283779036941478231318237961974955531511473402326345904520838640616634590531969129402932814371152391982618149288496060234134334660350780663640645810744326634494812213374431597114812342433996228642939874341421258047400768374634674030117289915617580431723652259818788660092876380229571900588768511653917157005216647556555940895434367293680931476544919895018634078301625753143041461646342717965437005902144986716280587125183581493941054425651652095892595835025514538811489420170937240116256517239673474844787337222561461338561825193205791478068677124882497205295295412104272694929558272134376936092612634482044443935034812854556927783029695831760268479424440759483756003156115634101403481623561838305017268742950722438118609503586062223500538141554344355913321699686786039533523687971223637191737090527119831931796904726223075892531345985439085987884743614321441517643495090274857899735626509665186432445671416744004736341808089359486397095948550928553681858558762768626745060515637136281852034993402516280712261412644994664509718980984710028600551170534092395247880274330473790390844253866098510947326779942166446263532746149675931321462129595769069391056267244811226194122653304248439111759264089250222540132590716017608131460942451406029607261643005645901993374787905970624722668315524928295159623787135600934280672507864297026901335593479426109763151165011591873101809142904496826320447635410150199173807636145242705458442990652882037296122468839310725927302626532458811814392200783881659068678901613223442471756532718020594925995949651689502644262597859210673498012410448844770493642900296034771425689612538940525213968823046966294268002889802915763222513311185016630279765402445741972113033165421138755470001097919928500182678781208145671076936400953516700903245574604352081281900312487851337464025266352367321041698594419949257486787917387328061149556932747766333655790685103565039488321448216305102945760893521641767109312922833634981429637774184666421341846531152149785091786362459078198630216135742728185697296151306661985402521903601643706380645014730551942341734926874400696127335540391135137533232682950702691788914587004387040702276172592125688059081893786957044933430823899616313822100544340208581820688918566966329755544592387583871115468639885613789232634813634128193882723168644837104724491754238003080149045082429883246301696355146939062623486128827482132221570714810275396050410523448938651626601319694649327474458605168336521338062109872955288376464173414368340551254128665504859187670336288572431372417488360472739164793166011982468352516760086115667646087330603728815821766730769210727051691151371922869847339802950024652585547575108588279863746697134660871428922973355671781215437323680387427810905317965251079565580068105345877779841012882897132228840722255353326421405174466079906237105064723311696967400914505480611440610408979932255489017361245417082082625448164594243722818151185705468348773976242643158115251284872875929998565430738788825085720276303677696752716578861324259733071865856434255118751489107056812954614774011920423642473019442270596006078274455356503811645845867710032658093956741509998164586450484685893614366211398741175615386023804765121379833827159057166161452911458157372563285064750794403877762140363722179343990696642257553416282336089337590110015968831147794511825709870711881041131850858181214343146792040625024505489277548086744508450758449441172274716450467920677436781655217111055394004797296550712522903494052113212206530237117632397339292925749077197542329034212450117627405767830551503930426232250103218960623562151867549616072337744657325154905770731808486824758956794701901398297273228402465804553028018245723142767936714943767798132958834366988303347935161067407892965254016682771587227968681541111093546135889723700802093910715577080855032168508615323086667687643109127732991341623163340607043015789018175739357093418546795277646035489214759734045065653044571034521899120478833446227163576999592816651125317728675047240542495730328272809081824103446906095712809829103038174179508200025736543110455053138262884553613873352083105562913316652182520481396784427956262619409986067366459158928773057545827947695427945966154778269244868578650231018813421607216144221708575774445081775578727579117012384520191276779199252390256883143167279494698508920168373106035118373636362747633006442630588753354095709636334043330641069794547346982603055907168643417924545491971386861383531590457128586206513584743453253375066216547659003564193037459915564251372377678908061008821569946755538972687723671909373758272020556171422998605958718631795656795844619360692441714472656707704336521059532075283646773946830448454992797748110765745809305092631812829196786825400500065430114370751268037935978368422450646680863783401324670188390275943599637782714317805875684768314230135580999982534983446732803192364882415377665437605375601214101926748764122627781754690907058229455231499701244212404107064348367940482394320327824006226994748122468097158504498080790239999669910421452907459732448372663492774180026096552511474513618209090150283950947773754893146691138731456385813738270423222757781227910837228723049428926161442911352899407818712451539016087464444069606983873432347706022981096522287302924216309009045525290345369745007757866259288902227530204037573523150937277100347573176471198481359035008110047206062149706934100097980253258549078306331258626499866902754422118904162023848062655916858541326905939536166391433451564963648948136217984591297634728471355802029049191365484052841986806193768303013449515435139152849755742231339760690697298921995180462843970754314717143190041516694892187626967537554780319253677790000075291553516614647175187854480486423895112616831083365517609016128695098748348656685283294383813103475418464337714973097616684647928080852795297033425927203587654597410303025252651392983357022342313039197007656601824189829527194313062533413880402872139599233794665816925262185181271017627326405360448075767048236520157962388255947712265893217756992744571225034751643286644162132019607503819107718786847814538863734044726423675565393768572926834897123656900425823572413315303132310925496806015452059197730664043524883920966684165490692296865828545752153991218385332254322899541300087083157319842368875206646491199746353327550885238754061868369722802385718740712020035601299036879944179589648804068752054335078511438873755340657621815083648155296063737682654380830567610575757859177482818072719849610660114602362298063773821253844917528303549301136591471629709957886985134823322937107254791566325507015461668287714267408163773239882815165458901977225267404197552986239266755846905991751438757897942069551629869206330759867395527099832076579391305741352721178116206914858064695585692964056929517623831245176972481745560696458112476391723489193156133825356160517598778745661561725474226936717992582269975505037851441184507393511405425429111333600846202961454469623051776176260730377619678624250819246482001960333720695080034215875004433752988413111843446991708355197992893799646059737896363100858604480518795018301082253424258076892484743660756672495557767252126696393336700444702670627071978500852149038201308631769971583109177697653131007574615019775616555145943141588249070638651738746175565447711144092704496821225758708297198698581122485596806650786783721785028101438724381244854996580121307729157329728503248177368897392269492712634033011261069245804438841125761397709998075429832723838355879722233105735415761851144783651408377868800409990892764720323708421729488637381911359334739669403822107736888035318442681237947392351605297654723042762189271476988144578989637705567852912081226484121320930426485340599359040735505682083160154185953607052140208318440522483490402068842722537893254508716770623588354581544158351119758861021019755468223241810553186632649717615532176556369475483045146865089995087851375825289577789051762475919890263031594297078866375732072151870148273768362488531294659840164484675696557423567748206544626884316592630892918455067380749630768591030335340074585985976741089015332921859046109364235402301405333720034144715923515423952397429537572512006156665787127940087138573548347292733629348966027567603664283740488638437474865096114130977405028247231515825433605296186499410083225474603699440435295745496747768040775950816618967895383697134350969001330232903433083124213316117472076191258769316270903699748253322741098915946670127041033444197790901371852453773082749888465458822361880270121357403697853217947053891789140799141227561192378154529474723947637487250595131973753569729184510443309208997666530591718055596097362203925781993857849414836330780147631780138638500723167910927897220903703317627557115800034062834352465977848360921739229611031373945532488693931121214347376101571937675494300209963465213212429197771831549265189458463171917881352208996393911523448710035278725013684222553636301016550165561127922464933700528021379029986757932823520862776349691756306766312718692648216809253809129776965217356187156137322182539523738254401040636799461990910299586268690451103279830969760016118199621827993845068559589925830948716353375648754755748472162267979984254628174027186902111541598115548937380289634206277309082103335908193746982583084802069712505742508282731892356199717849186390684176477304776333407876543570285444317858880311967417812925065122422931131863429279759900772219896060246635290016528968267142206175024892497215215504079627693244461992289529346152699572291634613517270843874787036043207837435679427455787104236459286993329579198983673369804302461388299936762412481849814305545219652054288399291477202188485462895651336765834481917041998118797122283098667207221494151950277123374472633307068463478070429460252156104781242039862154158801052919584335074861963976480064298508961501677064545627103913264480899172076872841891841758616869256974743753340381734416967930363931239048446629236211098856095794163638134365877026255011185654275424203399862553137058772841761961134447103632151145605217978578217758623681542300518511074389631011098247783261604636799625296837211579105612883273366466205657956261228813851940866911645152199094371308588073988018865189705795464319808538241759649829949673045397718430263888888424779760946256463841559046129416077643063735271462857264289141411843411760904799096014578825969859644283109177153655789141490826392803928730673880291810110065576644602485600546336897035032063035860466295696099182482881164549884977918637689733589504692562808181496773953201153274942884876948069914503400386092239480472115916246897664534841808713262899342983084856088282983077704176034895854227529284746814630619561697751332702743276935778723687388535097284464859169926211951408439201913168385935534290392741360472713184369489540380743309800452497417832647093653953110570831132577721241293586119624367438919766665181223619191435668521786583212993937230200623493243561998435181829864252792404046090464926768614682558996072051808070947043264883250985333932748789366320895578115494953867106054296643907968838563289923739005143390631895613421962136654132736403489872390612000072554847813925427977650966366975799231360888636981792892045905121928769058216533955444081219658363935091734211852241340043056335785682188888434009262537065408835605905069435566429108662108614821733243316494248049499609828902751965869754565101070835502017922576948929049594101165642937543796610882963989430373059205592726505524593430163682050938807616978667283575711467613120922225961804573951485374103047610954655573257116472908041145778076521841829196919129615491550196826498459309890103778512859179235288149562512702808908917887813010439083009021886396443309853210415470479381478180198156012296196258787072057773804524077292928308092081290209448641878680080811372965077233852924855508398327392204791525653334229479388251933800704379741188118567929974779302638969716837591888226237992862785521999538608588399923485822083641461066788138436664362038674866915944981183950094470216139818786922154306769156242294022564951656550855134516404535954711202658546908324537938479350649401597548583435369541575640208958723584573929977593741888726302301908201998011677746645823530044242260049742298420252494175908757190069197936258913951339746063928730007457679322440243912220618378021992709001258643033253571732993654578225557203714180112739797757682061501892973616319328344633120196431796899053238580664379227627704151889072524990185370812618376970875021308658222185400565603128081627167372251276616792865133499016721832294952476606843082782468423078557893916839182857677282018894278259392554281781626372185254161242053750562059583378369737607493754811983302599210007408375697598125408569367934780567150510841189321598838148572005033383155577798180048045476614968829784578883646397711987161148210932897071632244519485036638730657606601882375926713514575920813507724745371598641940241723281909584408565112972586441290371436092417228740877803422330216402250824755732081175264374404462737947584735796698335200332557167530068984874800557780038106838132692718902834336963917183900886059324517708275372085472783778511637784666126795500198055862944247302117610999735787563951891961335880385054475507815363142623760041264308197717528722053668357639328663475192375876355468717819920539771748139990421747714858565531159633700730408398894162162611931699795966913775362763000678262137224629996563031037015191528987185306382565029546483525387763914677806641953984575309213433973097105517377824956732530113659902903693512741071291067153458159885817548798850526534416727957928056227489625257118065764425416966769400617618979380263244050816068363302117171852557353763136705033331027982930826025232783874496845090039416989361429267565698993060213566013060269410613031797961315135797026040677086809722828730580272965688726315538988793251925512521535364574805410700516461422390428109383820620370922489178309303214414269796318389369926905514959669834882599645638307781900086716874500775577906578067174176026142946226659959623486875918915634364753879478698072968790053477759906532350861824124660000537190020997528319502091594573977893453729252778860964037571826083343518486413992479047176709706240716551661164809683299861386667376073301365361868235337523725405330921867971511332256450717733446267527101366870710325860024227964328712658589942255096347109208194720777949273298888669950351257144098933130675766536995037727582622981577220943945246000532921261025454563071922876369943088145552931477191014439888190750073317659064281289430769597139237022904539164076393126639542161445936267955168818647651022438021565736606491065320243778496033133252353831151943068384301520978360772270971452291411758872247700653359075273473651976105393958762390388337216716895239536413861327301752500532985982130967557921910144778041666903198829491852037066816346726868908927699332354012006225009491208531519680277629084669016180637540916210624515852532917522260730797835994952116903605410667387439012611753813889719427226638079056010500180937925945736930856045004230563610238529651315339353144091309895457405021902487335066834555909582507242513524624428007362052699490751113511701910920858698118627644871924011046762589914820217246585738730855141695688720178450747122325543705111257798765539733429071673515736103568544594753093006309224566180232032227653836355068240115182125641161481913371281141841924097119412697899115348242671241098568181702223709671151326877273530381587904339927129721574108957538038822838704614360143216769027352648113599634301066124860453245433728246101029804500250092034998437267281998653437439617225746516494186829048108211645967377880312116406999536562186816581219503376340402209802709432632516771115884859983341840958421931705035522871593979878775592609682893811063786684647563152351105872412820714665008751848627153676778974089560621482497489345619815976895472907816335824460546290957270914485397163057968011414877601819698431298199780052823402472620613753456119442759328242979350484567039986553404850874354565858850746214073921396395403983884781070274834721431076594909955865108597603329804184500008434306340799539419161300686976996935004415671140552235100176260071491615547062687779491349388064830992667065296319257566370788172853637321732424561786694138935862381295965432242624761681434008860392716256903219508317891264640727280880137077238389142837573996025967557967408069144878397266772843520702711582112340779040915414115221909396844069572697169908752362031929911596473353024666987435787142173121221140516373980675248197714519726426070120967225308893278863171513518921651974447344940811140465542642496507943461694028591445940186799616186180244842368493474903094967131289872572675632374945459340618328594859164154519818032071194704208911536346731266360775781485935574987921105220889003624397388682872583677152067731791959656826309263060461957647096912007376437435653016266275962905314647779685542722136896589929683836717913684691486200307233757913199385889168789832073262884329308720066333374563898203285873948549194450875405703061894680565017274223086433623215586323190660645671064983759857300211938373500742944030572416310167146008698891029169801607632320658242363272901090023745423576970039093224413681903457147166403014697653031560156790521029327722848482545958056945056834384032435971494882978520052733836475930962386787075092361014133707949149112503138035775865342933181243317340613319427744354402105747463328970185514260849460626100026748847412608067495932964745769622157779613115759191612380172580115668821296049317772864029816560718203632318570613254664352597621093176624428397128789833186277854538933620840209937643272595457747285576810810774969109207260275985239890089024704010504044460189599392103384056314590748144318150383905491535757102936207037163479046282052636536990927219238141483608505742837214042662558974254922278228081563146382476261393168343629277525535019408223776510148192464669581085333464776300581070849767591079690703455351070711404730986404852839834509174317087544930567331242845953609117634477919278247165662591740823748942804528190020373461985977466780663363325738323602553686549412174018661005828805247842440398054336984728035483727567982108126491124039984506962388514152939686533804366981204478563662870163802659523930738305326131239521457834932412677019115534347957963337526893983653375393092153100112209895967751638489165687498307784018261003934058381372408327619265832823219223424342678315740938030654973087370368958567168880576975768024977731107588066918145192715064904674326552077794271394170775149035141945737839687298876150863904072671329075399890306923348351832083370295751462178891929914792546019703985834570277976078254032362272226234199446772193781502736505717362372740462387403526647349729050196219338451037822543489465031135158906586665830256125547595411544857135094491382062989373480876048228249474600812065345339121756553602137050885929292210164682510870815535695387713458153432203994009409054142809227280119901004781499982473737105811432376551329049416037463110654906053151777562541964529687362847146623436095832615858309441704463136707747258471223599093409244459901487256108548470481142274513523044394590616006737595952227617056030090329013503217162207246796455875759087684213314454878355422114023955714192490739462802487983021692862309148079983581903998329742618584767298106874033761852360014981601655153491719561985800962891935198896365145219891554782663302610617511970705177780590631945669241494623294033138713081182510611249889859020555455738942063254413423597705995227675606687382167884601524800608953676564759674256255871351143792987746180079135705401235847500880976603304932232825170217397701177113084931343188089254253549279675520341256566637737510601788037436710618861784904155223695984595022470257733351779625370279461545805578447352850599345378630906583112032253867294394414074334247867887137312942179233338093810520197862222223575276966894275207876451586273718021294410164377875569179079204989595728850410413295652563913919974082751126932133093313139156370888075681954096001413725663855268807191290971782129395377831025635225046838896753385790847270128509145367542303378302679140706586853655729785419261505878208035547915940543616650486167728582583566781415482699561946650830585980496248925503208954205215406924149310795563258278210958221261820978014026223050251758262943109376342376760621649099804519359140539592676094390063487044191534819291931961479783028767684774558615610187742676974377893264282946144057184911250144073562383272850092543777384441566763078244710286167389214111419329258052693365455285112797818778763340095035925342777382749250658414778471487968060529682046103427074778579610489112879346134028738559588931737883184605525846030732769833666489318019946597716041340292421923509855444120583354414758556575864451891302509229064804072536640508271123456619669815806956352051240972931555439688767244723361510463694863882348878734833115394414393262870205768684085109625336907390809795590162200930943933602932877543269050386968925289607006856530124969819784624049382849711434372126213200705832579989940120731725138453622208383251984439380955170826178448652237894905966192864661602783688484202351672986339553832522756027547145026965324870711028563098637377686488246162986794925678619756404936874517764473683853991327898991515418836449303734721270021143953242102770240223124189708445049828282574148554525046233862846473768807964527802587731352714829272563140834921687747110003424957522185402767513917026515165391177890721810502683885784753711241342871162009985476191407917627044682447383645909104423654459484041644384061469008478814364819297492619535020220423825681181283826051953073794336230375449181824611413696103578093035731001595884030130567909453046542244080144816084777672150339541706098893229170132812031872721390909867412082535743329784214068204344850395545298276116735252591034232901547445329402672935093036438182438712563124840482781123735394519536050185374745667621939918480024584595651373219761075230511328947166183525543196586844572377135120496778564096055285826893654806538373345468376600755335569183508276413854868068986058385746896026980480676921770346867540910835448393877872964949361874823264438095758732801620325494078506487962384142046130200203132512922879313475253961229924799729360387919624558175331242794342014137687822358010079322570970686675402378573967155103724582142118942770824596388579406364825251762717559786375149614857319893026394385968619729319819864702527402164182577957014181254156433149558493295307243770223365234024108643677563836196899353478495528384243106823866554054659372348798806760130292386849939985935069863597700814965800649360053263263820935311457157842480436041198756941890539056767194700268088655737085539797073995984029223797395157581867871518896343103988560079666179418871521289034100448084630701382751227847456173403111472568659787574958440673295947983463182642727538846226309693850812137488160792148046024813167170324512278350775409127238272358577216956305218188103056177801737375571952000188239317159571371151074232511414126410521423714557673922293079372013550003000720878350461763258734419738574133520479780181536631530723026265781148519247743209830623622134897807842952561775484942713427821149434106431317895362277739602971754244598980145614665791570414770567503270432542647491788458357422911264931189050017900706107953385111121233992539082888659595229253102117334736615872020848948447147052118357820827573424130092426955268261651909776537027446579570194518169451197551200871176011512932108266753799556750719951382640341193092598069653013522983467263936819179534173464776839513325481396117283727359056635918510646202416786892206323182575661269396320905062650212516656936190934339836050743235241250454443845720898802775294297798589020921079735547976459002463383293623631582287510067619780365862029137207073409788421965429620287392207706359582204359953553082113363287694660709100089756616405903037783193662049208235398790543444471896221436220481701581574675020605112226176608709740095605810286620441149822409746307011092858822617263858308634630101121049384564134522178659405521809886030951084380181826241301297549922556842694277137604567190469966284548091336783027862219654237147888586683192652591681831269355730421306548542512683213109793335484635363850551188777561622337275854582361903657257219701181124577884407887773823001914913972187394217645630347664303144943933463491126109648839732932375938704634772271321276725571665102221119725790238709194064081795391590350891478596203827204376293232651770378148201063903301700543080792082856682968417750527479068435342184488231832617716059081874131877572458862461209042190591468525973408223481721739502621082995563410493444259403695268842034972138849255761715122024405602654625743976484450707499046210895161397460325094725735173187287887869682534869026422307982543366495833559549894629543794746832011132884695493414932708337401865416432779613500086182144618932117597393633573155055001721917244854067070515775109155106178282440416035881111757216322674154524648109377123413765705445763637636646196243683557148302418023202604061856934923070549313698543067695665236815480799962897498913010140904905398354669532917008304336572013888297514036405983704176648575267502179532595679952719171966339631162132109093531609589133909156326784609170608517796431280951467572796845519681738692633761906268785871852762433412156732362157386221658874289177130696732694707860973444571598812191577935281920757321549924911379563081420945467761117860882916375900724189411395595824842808783830439740349706550764449255055140616542907463412670753593747086320790947773049261275173938500640568989072743987984984506881537090931260520043524046528325493024578199785783918435476445905515154942633107851070359975457736598604544168633051564169890026512989739914083624800742448948321656314767373102778311599125542493378361511398414751493242831375489473158281275318276989474069030170514904466783627358964667728673187091033430915668659931676465468180207080542351057333515568001495665701938470549619998152567647061228066930803501077592407401933263390135138098615921213566168141722018567224293637103618148858454481756818331713236379214152925729819179117409213395965007738678664595994219562037302524404949522584915353376004124296669866526812801508973558082478194055049748889421371532020684539474668204007062518929534208202384571560817008580005932779679683046014148712918969738098039235212329984798011114930860391990140672663780519336831305013852018790106871154296673629784507776279926671796436701908169801086410536820243150239135103666501764587157174547738325245554379748963230276339235158212484563452870096212051778517843909742618775763448824952649793437164997222023277409824449292407329235702780870881614621425122806641832279195914929819086123977144532004407695391041740893546672571119387746638274145451937463010742839889792264230686477314275499079860545844705621070428785068573125756055985168682850677154151506473231471235078307101086211059779530739806363572910826102180651714981587866000346369746759624473438456426217059794200097873146010359441557188063704095278643298407135988652281557949480616410128088054812657604254495245024359456917150944944499652953944354305215260219151816796783035919875711319730660015297888432220635713915878663134186849490791228048968747195118148366264824019573324794430926244617643805358539854405686261983746837641365915145726063581634077017161329600768447942975755108861972301902182080766726381672024812950823820241646768356176630677264965866275672295659376157182070329338258079196479894636649660533069010759806950061252367686165566431468853009880812645767573686954341738494213933631515535270422199861591890479310530833472260408913083301405213630803622012471786781892741783478450582007996221450745651958187730452221780426167554051140502574101433170602626372697107396540374071424067092862125469707407406536527687097009436800551153499198643550958512731915738766710700767498186121802601142301859355959816110600232057865534914116564238214644010487825455444842626115210750625837635309882272306883618487249386019010566229876035092865958056420036801321373196414361550776408231588597029493630067662485448713045749439425026593722728027590379557269576439749611815752414343488856412233952249719625940224446928949153094165743471687564012454038028072757501691986867621693909872589338981924397683887185280858496958388003267065888013833728777302774699596788276061711464706092909835516610807714820188936693914075630754729700243299831641045305015564999424988260781786680863435386652195468593481347272491459345423798647556208280752352401796964573855304386369641954243059523343171142743087159373883727112794845773585658243954979502482866327825052341048298747798654856934267311173435508537308390525954622992547463201009260928020969584849239087501446128546745742779960965234431585529335926055943578579963972364944120969833899287512259629830326760159370944036811531016196219216637942013450941828229341341022586420579236588222282043358146228820627337428910296174145709400392531210360234514149327405527689417376717922848870484774659898727012220369086300160541528644706802039329265916545760887848197971518564167422883569204502934995502672356883435551219634453068763103694065376440448249275970849260577676575081562932936245800436998813249570092897991560641182731893003884704644254562442965382297177649156853788180304372681518782159728322667705895377255097440597858674800216671992571219134635107354439903538895979555600928457159326704835590859227309637293113654872006073151955789975255214020956501398793218854953159702760491395059940323560011828877631047536108863149093654269774182331823384445406130590332350773637031546103996226538006891179402278632842029190059000389398597085548978346890547056986473679913638808375290535430384392556387942108929717900779396026114950483820782442562132640855255601103926635484413898750671718595301826689533222592801020161521988342611201866784219566829911446270029132746628141487258602123646613262145293267169241387782522033101818264442312628973478547261215132509003817245521273527966242334559420400418024150653648038036224056283071508240171422822165857124028712240018869660785778595569093518522403280020578060373443038909200322525100886745923342857067328735478200303407346034967979760037882132441304608673709564949322865734725361230368213754847994234763021902987792768719919546117309791834223573525333284567999927673800037808481609774336560798171218255099277841650037639829604097483257895527618360430697110751921874557615868192811077262947669659032219514844920670691108315057378254238281302697421328319559212427887799001324845614897097801858172622854213897915304086095690453932999503056028426464051926924441207475302680647617030173209661480285518530107803117575794903336507239291767589436828716893015995085599091931753953518182124676137200880026862416342178771039594216374286729347944134400188499041127746724526357680670713690604357193216525750263021900953728463996585923840545035118723088140748728536077387610365658947430644838386265616959371036198928303299286540660517976436100806095583632140620957818309541440977219219862542328158568841147659135524332952730191049435900575757710630030495461660885323165206153392236974991749449544144776774834634818628892403246441999829274883806051292717835658056427792307572344696326186733497659561557277569476677303096492450149100702675216099646059593274151945866885614458796236838169834177261960687149445004654573825412875201810792763255908161365094263299999803573020227629298274972535384183163026702611584930178030685598426237226012469859292988534168840548546378322180392279209360348663836076654134786131975018541489143147148295710642055500624660331939108804288012457532414279978802804844934397254994382284407740198456528930362881098228193844119830456450122635323656313476118915884619281792102174097138256308318627308164851806834590607307668936028555150152762263300093071080028159887171415143257662000088245932989295700224370230744071239958479201159227770594494111501024239893102004740868078185801431762506152815236381715876732213185245574518614100461113730495675076604494320688099865761115129730938280908799420069987400694744546913957551834829559774130876653414836095785250195304671760813190423515441359658311477938375043206472699663692877215100502379718320789121792430817490115280092001700663709985962429619687614843268476992431984758565750902259846875436804446824868548286040336730459550397071784875892916179576197559785714561611725657942943265306074895991583876281455328957849433758351586359453291341378400519373010712345904196943088201620202526863261224917321475081315604747628971496673129667181682645492321978623001531667455418776554252114726893357694387163298136967917788377493688746282750213986460307812991906699957174829942891844899520131620855999030378881946445982142469419833727610620412927735278813778220617516984310386147492622130646166085727277692310655762812031998744617872884411405092779520265004995828280108445688837628844373872870010659300608739840193995828576559001888064189346136691761768059636153011780909607814026324648386926098404696839387976756832156679312414741884054998121581409644956876006066228482885204404840955737992219937050372696191876591742957440239336326199844477929456313732321656772221856933157330517949366517344851549706891000814959031529186327817650263447704213372664283063689075455474222173329764266159220861209240010176858880277709699060257157005996662362524414068298287177427056302240696080995586580671640360992485645467123592181747559039535180032680616310158784560300434412415880797934498822693255670443246697880044777194964704935925422082841582266685914648921211273422653850047716922468785273459217566754503566895131040852751376340216528894422085339457807882463105518717675642437356570423632509102097163887162040683571391310967447739634893472826796989586040424445819338017766415804765180467516300619864170748956331306106718449199859164307575728156319870877589459231557609580865541763551628104698067568334640533290236759451519022352502737204435487456893777436189487088615168515394787108742092210185788838277889629723843827033339971209560470306845078148253935603101033710003924884593576453166181195771848417009213764382657984238726507996090313194359344463571608700738492702388049911988251221200270777628153394869761137599854060719419638486867295984638038748437020798788584189352285911131257292636641622428697975218223436885688241535557238370469812380270898435153210875269288736586313156075343657062626167624633060505737198937463450443651918831658006177338400280183241309194326887270290329893469471516903110966901569375988966832714794363156171364264354511561518077097792707810307939733809354968980949131708962918920726303437394169612838375764842139305260449561630444111440075890349951715699772379574871222907232625273142598424730262758554823912866508963395925515439264147435959835797600653895530327661288571102824632179748647437808322117372193002180820068676893116542734313203280602227572078937002579350289676491552962199388426056801184486671095173829876772745254381692663050601707216662562925046323249321683894161867295468726854743721962245289862110391187183111868731395275317967672134116256391145707939920837181411794450591698773791811555182184958942886616260298313262716511988105604558527447129187332244554554659611046302314762762277132109258419032987396830936776424930295677904855026214872594143085741556373180151975140306109335189765765705429762653306635371786888598290180750363189683079342999623379539388106168672660914509734994089372316204222965549313272413257175484828169171274046628296404689071679894454217678246034688895024858127512979911970542204892685995986926168246747283625970281168610190808390146572597203770792069959846425402915747443989216696125125810458166163661104742292172627528206893563407209301039565673499241095964446614258069000332540150297313973826489688185944259922521180001945075120834924150632599048544672892850313453289488648198582667051409917951079497809358672240666769488885104682964646001671653103618236154238548480241488309150972802474468930007647861856268758661851854740628702912110284475634488028920510032927060212018463490064091710131687799908527244138542070399772394076971332954946207921565310060161416214519711948193743363996897375284257124468301720377439509873360938786204788172176371624550327456342300071460759539016317689952422090370890794615503962172960129515595036758212256675481008301773329018781129662608828987450483816576046323792228104509666962578723762100703563565076713051064983214733110265405926223444200972778552196084046570468362898497963841977567896905055959378452097961412718459327515929109216040469331890067944109946454915658048415140419783970002834946252405032569848642260841898493938660011096638992211706059823624192734350294865869488352202362550695751355734805839498323449287963657492836578358658456535307580015708104491134298575421500071239434502364260532465319104474403908889983756440665600542447050026214197430545478290070229974551905264063331623191350684065442618663644091677222340085968782472917051683987322788789583662182754085722782972428293621645410322090438633705074525271462694984026999434906006560336676523312540070760223856541518192751839452050875428895426593943924413728525400576811589293003718437964304153995119061676022489498116119258804422740970034401713009624954252565995401069862668291139659791433718949350532417216891960421529904745948274423543368294951824403482205674358078670348394303542497073458413852563286572652518412910726893968714839653675102872835833146542795449007679289973422190189083480906941677819668443802587977603124512084441135945609663362615713948783874755556554874413436886560630971507835975340627780200660229543927199495396732191937760228156054216709383516670017517053544257851678650308245392647129684874759716291769470268252920541990948208907244707405998689740858603485595882806251260446818227451559380432363219127609613906647004600386038387592961349729896170752287224828193592133222519710167794569245986290536706769040927692312379115315364548650795428245386508386090123162433571974922791623409134562124272277207588936649796346720432058476296267291226517010199970095382830587815174213879387656045626364700025367834202699931602597642706264940772334867495242631238071311584461377146397815435588440069189266939504330640062956845881364185211568780364397047391371670755459008756409578310922771839642885042918253631061095492392663059991031569942255042798043756684962385810411132575356933525810942273937247163048670130974535962473113807098211656787845399751366451222915893906003037974135296463121957891307901169868536034003149193849600684551324497072570940191798356301841046989246968024191338605799683495372329847526144483332114640918864765684740581427522119450473241989009792444156495172280345760285171131610181560895572698991420664859717681696887040973908565924517236301711407245968841513390321029864597034589041309120453108674361691293901130341956135170016835816163294089986318242198515853573039448558235335484084361811699335504075186819092045404130430167572291224881545793782279934818607233149947177499369658381420357985887000096273730481169368721650726854650280949842761320032841792772247932906612867004573961455862010650732709714329562205909134896876414326885549078607232365769806650438320809550014005189987032946927270861654565638597403681659067920247597294288624897592546295701188098097842219891693953051351535272367008184353534096852019674579383549737404746248094622629932207234161078178094006022103806205015557360825024923845772595151384956058637248264832309833420680477653250051534602840413276581580810728306948032436716093717406650915142240117346229499388405727007991503765077886166054319483904293632842635998098467612698857025458697123936018448139628786791923712897185128613737033176051697208271523388811651942067930887628189785287440339704701590413443490235002686980376306508705980090935597254396913555979940757268223616763417677180533702988929255830750490900146968742021779232174188514784240083573983414943693501806322886401969560163961089495308348210593394530086100962642853279186421517127135022718466907468677725229901044314817346113737610444878968166716719723046334672605487078862058640329416064949765129215074126806764364494478865860525760535352970637454729731271687036851919646289276855889294723044282006789690557723701678633428276092268433105726870077063101268572736622634976080794492872029809745113194590594576678829035098386058673009172578802041666990410686980383877742764771955034963290389918316750831966360193817149827257497695508231196272508265080443729810338225119516567367322063366256519660732089916081982737368126788643245015298175399685985418101458267662496628277470480235751374030922931175035964015753403456630439935485665190011709084544840707948385279133592119436192536677056932790230271626865917705446643924051784572748672448533937655286849402614977530418367977134762202130061347779387228261695217677243466188124224226561254001498249323015548962311580755790661556449214447602846892327002505023569984486232215759106498954665576970274046333029393878475117680256158743846514952272788002646739847680689935938536693765273887343653939652054692511064968723024608818277300113718501567590071178246523814125428143399420619475316186894369984269453743607291855584656887419171072689417378118144599342026084223258759083855308959946819384632600613040442820374296209157467597317573857813558328545461284476399037911356461092271495219545424375291573663977568443386544899272142976604702018535340341529565546650460670018961165329001027984796340648666717992302521236814199925460705292950129205257284018783275340273169156043119472062795800640699110232303445633797805276231180413078263473115791363131392498580555855520592324631772292655975662138640257949662407666940267744051948029230029737303169473300488492826697078459940359476448941377083528268283152864696297041749331961941929181924690489412132730922069424404817599798232145882144210815043970881156575002545494665566677813948294381214761977680897953512579347402726316389653035389478702980721371634619195955649255217858304258260843035296844712824158400908697422780130088690470944465021475170368252126092951879422368117081111698172204300541020515248339769327886100083180428309149913956866067072030830269168557677143781880547409292161585446562425969594716465608582387841099917403450869507931151266176896796317452144030503649684896448980529193768370051217739154123790660062750410374310548686511539946936610244565259360905075776237311033100760013488101751348690933373900145699018876146297841914678517726284895719157762473281232106358848970450986619446412787347533124338364813539667449380910005305096539273359049336067992312288103692665537610577510084287046248491406317647800388075311292512133627387290129969960275604100678552856002951273632182854190970133000907405882961846807702882673230286064404000466936914759782363323859311405656530147627192076695505521142025074353245679553803813343181789436349203141134750105754582803324362347144701672834911929808682884036704210897589558498834470095767406495178868197180884017427663019997797882310136471744375678150948566543771423929329559277324777231675873264778529254340645242312983585421173652792296639857847903600197961919568755291092776177200220531544866669266157167027847881466569119324226684695565224594475083153194640189243289073828536880836649435565568294482125489851175267807717095979861219457853486537054906359811203376045780605272338931737550985436711296040894686999384914932797367722715090832021057535454498079584697682778055859799862228285751430775660100708526782983337594242927755718990091323216538698868980893533789064361583471289904226698370783468373987964532683231525458071074691240277462276609590121061393244630445422339941911033331613338252191267455877924586690591446458240745723960923372067000405819899883582259876193226600594386639273234726168595301247665151163183864976739792465645143710378844847314835595038343072170144752207792068806092769692312130669095495877018163882176260214870627714806039214152238413280351955025517182598674276477531372734528942008994009930276262851977358437905032455503051675229398061471864978523146430181354914727837892223053866570790515509713485629662996097623937875170100123093933220984647718974652786327980331810293013288939731848481002969298262014270097195054922586649928888348241333054415544923731247361823155520592862334911337618224158264945918833979072532863407537290040566386396251959551501953195396466935827855716791234756230083566716456340259755096811959832242874087330303287169725680837075315199402210391165006847762919814551598885384023137333747319262974537259339550124283750158351525938093845025746327843569743062476136601600356046248635913040790638468760602243468742579656488786771015604350106426795243341448901814050935445006854155701587247725725126168082003105063513980014309850571432145711035487849448502501878887303217707300643245513348759280731148611498526322870405795920941708485463780261660074403198411847549328017036806701549920064940082277068696911269977360014899441097964610271666663846627042837756499079121115376851765647725411727463945643536958350403706648805475538784906265600757580708414390869132160432821170193274711263699637723200172899000106032520202441305909810853048002767881610700163109009119595471872240299522914329207074462752573126783762065499374164392148999301834007056318983920007860693230516430472048785592582643086387901964785863039151640657422864603559604281509823183081484016383163409493173548619652798294886664928996305626333850979364046316155991405241575019215628908879046579492274925870166050629425750377224952792901121968843602847814587354217053779839658871331961673230861365747080949832579091045432820620896697520811032430521243240412746097550176007434823292634558271035907242478832746140537681836039523368969692658789532798558183529939926028349853613490916884741565852432426580615777465750381622781784997924135056747318810820667457393541345959726673426649359570528592822247554102630071850274334133111762509580591013491528139401389253751406353959857613169512045068488649275640166094397375907759050584710326507979790375896588286669263822891660374945446018084666805217259538108944828110911347199769871210140021673328081779420133747205944276605622624005870416754732329082667491692017530654273000197288206368946910450367411130705040212911867068512559767333162711986914258033482881735551054762578242561495614383177173258562594295948858437266756410954154880039037169300165993214557389000140269846614813237429507840876105625800424090215742362105280158140586286084215493827139965479278155545306829069059078738276941031176361897000491932752788334787007222721946258679418279248601759436838890932134818669028581989768526523937949091056771057394382942110068739910696693729070439069283825301572390412509131802500708568321570092184761931193433481375630064511058656864250208415333453293787624650516420745259793841109081780598214827550091393614799727150656559864979167768225552208099982482700563330469329191566593408626613301564440450274163656045276119637394501003789229063868092750561267734558460142826648825462759579413361755275122482440924376888925513343625673058944811905887688440407920091466640172127115979350161246547322292958116328833900476445040576980309344979455825650297958295119319996093206636589550376939328392222876376553596672682196049038897072726908537440547256020129152711452068688481410149885219896382459743084966527487657003463478837277189450749799673540506300965020101814889276464336528849645283483147628584920962532808920205602151916429187499697141184373404607597709739637291857995806869135889721724523232285496610315554229284945215598703608476875388396185548504004742177393153168206985426752312053328828390193161216987977033954866639387734739528891555622062580271069863755488273129792364803429194435800145503984620802312678630489719247990231012526186714501069964785100758500673843374055955026290846225269703120671878417988823781856641797072796378727706487957120552858468500987677202517332476097479758374226742397726740006763701299696750646591052357404568013752271887150136476180146912462389423517531948350416024464592851323112832745473737781743353568848510835320960547174782041212061272023466653767284324105367126566143818078554685843495252377022125534138094271807008263968375652622078698973244086083016449675078882569177278764949964208781028795826349396276069671992553037507657685528748122849021083251669308331081951885595527090946566997390125265483087729935177664086537381683859152168160957441212751414365754501210360438639539505261843008959299967954849695658833152920534916195851753507176413102561715601437857282851467935891526391555269277341538453866470460778945517515570889398048107072266434079183547314363314632935898689779420864081003741882750520833643276718061440101580973477023971355197505652219290987578097116096808766629636032339485540986148435740837844291463011120260929946318479161487753910205343706492490841422040396559026336079726785233942414138850639818322741952318349459663057403783394364690797616914650250757544517106427057175275574530282200176566999038502600396768469258092601461968901213154693909451606629003006328761888762286170188114820603336437228083060534776446480701468011858413132407210554905455587364488215543487211279635389449845706432502251354941020047133437771197156683294031370437245869426041229203563750760847426938216362041758347376887725093023106515088151938355749171072172114322433301020269918333628949910364952734704831865981211957812393425761167108367972365342663206508210098347404191946441703339364034138059794509270697735242922484350014690615814351552145666345830076855609660537656134541365318271924364416334520750919475578425006970000668674805741244270481559491703067573615307971838952160199521235818050261299851290016310611143920945898098331259433930808130114593488645174468277728028139903160878136003714413354571889139187329284943142334034360423116721303675694739753467463176536229354189433215083602684045996190739644413031700437051177043571876316995404125540560202793325287117050529674911795414799068418778954808905929118172059346324216368525837105719050319383287259988856634775787544120886900214557101527755198111717532782942652635665489108139780037481105763405658607715356147657445755518832462698346528953772223328823016268780302114317400286124035356586028812295932865729620326678853767634305118243431896260785688909272750896488968963175638735381856886694564237712537206401567584470399922817254212433378138142694121395027628643845745558010199133479120608402514405155858369059483594030206843519668731053047896542644482540071412145050941920452892085549210746680784693316670703096354911392024624338790728699570332434161012491222455429240064946313982400401798655915600302827213792828819015836747321732041238076577446051082193443592278243630554671641585318675440222137854950777851533082823464962937658547786824454983694250803009407946799455369141441587526502935540470876660612337569025806641566210359245883686021149691858743603808988405078163141727883395347382652252330056028340314998894337787698513568179342554443151678733022719117143952974332803340906850739529962368457885391367456702296100397574000062976813909962132722269951301895268215990787740758350091358131863965005750584815846071568553141712541839853558996299851901145448495290385162709248374415622781142361988106882628715838897525274427372398483215050337253120083170190145418423378534547449675634537646082042908957397915841249831566255744434749444507257085487192381741954031004047856940890084227261728687686723831322747504937748273151557022559466625745093651962116453238625964888976991581548727457769312558479245027535664579901903453400438833227275384783497681725992374162670614014814589722225136302280819440260474672397667720555292322675080515730159998303613971596138901515577269440390886511711803358477961444141249664524111206612182591473218413700548157521245536886215097110671511950069406741045269033209560839562815099041549034090440321503148450943333299393953156127129400730765076464851306783831202266924716053869067233782747757915885174719018649293915109165100835909284344178448302303411671932242462312937883341232093593947266058575424026696912056819499417498652353575189051260122596942597392999938081935457905130334068249259288000977994055503937662694942038380939314261068728031525501873611502974037612623363423415598020598542525851571226553662997704475571873775909429041122518180432565451360414868897281913058260608629774149259235558300938837171144908732690769419126391527427478141983128996412248145224071249405694979147963861700050413688139416610116283185418023199982381922136755014691310876960047332421080210913114809955673036147030967123718131989745954629676511031992775681046028311830998424724222836055104550420648822333139618889145646857136283255877424110204680147996808793948765145725492956530400348421357080729961161961015822088300538399675573119204832815054567871673061231594943636724351025757877651651345976085394328404679413437915812968706208966491992520947927465007480013625588293266139801231386763056322489667347923915185582431959346725052342646420814339813344262254429351430387784805418013984206761917594947958781816488099860253943495592907715778957745296614158257619436603920430930804850547654631127283990931213860070009408033088091375826709908353620041201892560028949906648579290511115070350914789625061835759195618429915658304809885716079886182753936970376287690233408327165280891257786799747790050556329456126694421897388849870080176970752749194138039310623761233091545720951394805972306656514980423241624054132728497261094360918882143720684446809448959757119034284925124046569804888081487246416758555891428374020967614902882120158320725296259423681518502236283151229328736331933874158379685150317716405521714846284873379863795801274120592804031932666227869248802604738734444855200701546223563360087088704538539619411171063795506488525154749594756930525130233205623642047239011852051979265013658297734207139755453637708268802026859888728362216813570307766406729188559301445857963456483365466736671438262612814541025660854175184773546078169495603465132544264643008026716918923549918343468561634973237509323247286478795533595507803603018734596476679546107948122380851331739143297878279590281136634671475523589808024965354934011355096133222572986739654744902300171571804127429959640459276072225922859335903319527754762548645925342515526916460631947929381388449263224932794538335682379561643226232127069670282560948435983521566576598303174197690495761513536432796038337153546091464418526934809231563844410568131721297469446899973587247325570187982132469258332289947795978462736927262817304981059758853324206229849331877695900183330899370873674582693355402591250133436951566555990759331166498264155718390490113097654153044117254826757504999135702074622872886533738095158156066918936241107931645720384932251391566183576169102876610024096158531812168847374867361993228666230622780500137885781016349080098766748485244853552031241661285413905646946970413583256737593852941104900280454443014360267878566393827369253644179170952168409864580623316299356113721993043826386049825332171822796591247168650139831701402064635674820413212251739789727616338062492706102626576649573177388570848611359478557839667417531440500628728302231490038929960682133102127930366513009345966162545986916242704846168218146685651400143170854920402672797538937640844215675140386241119126638904220669179762464948158085751825762657849716949793679092989177677752644511725357125570059858591680020995987435980906313180599021287992292079775030659697666512868275106210623740277150170978121573389853900389764998332282436364480087058230794318386599135189950011381535725860972642102661816224294264424691379129627325109875165819968835938722634104522156727375898592010104184191546077636767101733548811794694836613373907265512271597868735861848257760270093389761704599455215080470536392086450320946283569339016597694836827361221701315533044267621772584723266710623961418512437371395319050150631770088510275210249975724791140297815440880029639330560164637662346108584212793369284133684427815929581885771620740644338994333453211533082808143872129701364600600884101947293093471715786904081187634879844819530365155026800240541044228272449956765636982624282945900609924341627829826660843615272965928189593624073192730375940012226578925605251568945952603112117377332279807251553171926026228459544687093055643126740652339404501252682428209846154361709332214979019066343394811772512639440606649259721083438299438861171789965375565513182999615697001611241168409541816980961826173730225273723717292005404227423869246515802511515749076918564394094294368485821538131136780350633352050042609902704675214799404975438156173364790292018364291837062822261330619137097768810561010325898509499448171766200431032192350730567432395172314431783591295872493261837633423152743917602367971319061534807033653982554350137407530624714869528674414105849065729798934078884447270577097365126818850757893549627843323419044373216431445667279106081072068997334062536815465241322757413944567552830179381385610473065545674254456936120473763444505426910286913566815270907792534492493591257864617079635737589594165349389614943982150761438710810863019603596600106107354388774883372532912979535934951613475425968778626193451323884671278225607723585794941357955431730049248231472849237771393654468166100023172774661417676011688667482237319865576173196564300057608529693212282123897440757437879404397296872387417386607813814666334381369761736814890830183888152736109401994968527531557642501838177942280655277684347830988847950146786199263991346676539919873344072371099736085929561270581677497616762045312982414139113956134474079797840542511010937018007560987834495449390608402034697195691192679148822203070344554307031358359253475109741384193419945076427986967120590468873029538398654926866991209987473280581648917167214556963631012163849040190277785211735574996632599782841891433019308144844001309067860544225129113276013848051047141308599546420097080580701332376789773079965376736224638420385511631921064892722991246590709731779884147633961945008290128636474306056836865420234034014197486436238677634882568366883120061624819322469022183991154617797403641227410032637317353542363826164479117392778149332977663614959775409518916997417850173055524668736824078028617711454314854082410787232279455139695040934297274265237872226583305894770822050097450760511380766336258221855439564104344858035502284275480862883956970323746430125975533536028765618659147865273609357991453333890416852312544598090562701024035910579821244505616304728626026984665663054855893782025612464709327686344927450404007504939831396477047281482299340996430647048266810749528355472790356680921665612989478429861803987415111343253890469589803279977128090567131228371098744778005696890457296717458283134258171369665241101126667816859069713276182470599029987767116821076519422226429822610891608787174392693023728999765596925842915117452088610147225194351878814959156482472781368819863918916238335442327917098941329127725713158953289584905118605041938568616551062718495242370641769479126702905333423941095479579188609312864203369623473016764243291087717965978162896591084273583507471789821324937822185026024470095738497963191517847877576610455181770974327741597405650500781966765860880728519133479500779600554363366073116707375775007203236649209064717370225697374346633402846418687108662535735009467956146260958019445657017621365500864419116571001330346731766750724557843289231978268535917364678404313186395130726182213909403499056881426197220752999496938291257416095410197981555638259001173958610635608989226273308631944220012765060546566533368466585277554392462354362926839949098980555674883140154286398581222730176735325179370850538638392774904876365871731664193473999045920861670040835179318859056375627996410011105020268443797716073938970108331961820877281206774541524193918473577038885233649486655898215723553386278623155721618044556322591483979814192660424083260381573452372733413072143253029483034093171759108282419892136828324081137295313075688123596653364187882354462658584786389610264650292204737763520235243556975311368369764949106729927565878849713583443503466165862322170412887347810044499812671529579625893992167875455563858215121447113833083570695560331758707885746333501531934972958663044646393631317319940270706296477889177394865904289901379419297559198802369823087645450060842484648151783861733218180788117474061526609697442731289552236050890962285362143624118051724077985423085435359365505081727913693988423178143480067922803758766324297839108992335262417449058960200259107730341816460315371220154995832747210038338302751340954499464418340380875202825350637967846196745517184872312782557369514549269672014751909253506515561912771937567911619434709378664571452007245322780200589414692915567042648663249884399823083058860630038666408304973748766532747040820659339508775070207923606669541618920897939548759952474039381262553494071552461764110685441920481454332672620169477250100126893302756276113299126119952479777396941677398209806858799307370727274414740205657962050779419243200205868666129997370552295773456976651030947579088414612639963404353519057849227203720960754062698383555429795462973141074087537101731385689991321536147334580161661401634945807127995866613886779440723859168409886101419754548851915339917453052176916802083339131594933510212112314575525147177731845104663216948211242490806733670979340560055289276789941460458080322469875303444725854262859456092037881653473561022666022666199870845966589503724200818074600194601652410001854646805427667157553114949629409441420885646258084266432588348563829051478716714838257870891977861963150804281862900328107101884818064216777186094087172099573457469946661821074280730067742625597988703421814807152627174714321166851021536081235703344666390610243605881907402326981692126370894224340619742088336097990895506813161259729340207216331339294918789590428961141190054960173153373506034463384580377499904033265278381441036348639049416223566191119721204381047953879667770078128426102085075364333918969428096456328415699009912597533320377110737092047116306304252624212709080502839644710458048978443158945006725938968746346771387654622467799348038014647951999652435825416908764397686185372717717204150170197197263568365078338581197858514270230755948692387391905078842810982335403617737791258843871726903747958053269220607089857554858462850097417558820072152329905038859344769923143455152259403248415187499431734437948877559267727347930741702990655360217859144862217895392998569998437687794935792432638048476823864615649146099292448517055081457576496552522769025315654792296490345737277124547676178423597838977219865499552065653246143816495941413765968937515706941812294215588683482757143278918879610124832331855392228535455815592134629663501963661427876672925809300447746567809847732988987064634528978821608756759978103480538697205996802998306285271985024849939457395246061592210697339814272177703246950708404473883613567930381927290049430706062034324582111443079586169905189695121607915096418546156876906908929121699890913121616446573446854495897163346609227514454471424208787678814943361798628151008168415562788017456165203809372671172528205844966689952920637248861874877992300826413135228866262421464959227979226301042294439294002771156394211493073776095628589131220608692417517611363845699533502503891771258395694737591854988068448226175587044200178971512457187605623892635559298676648737235751892881682708961520715116541308209274177775876857493414260096546474853166514292581019650844030352493369142960981411621005230436635121590562347048557706179040571809364063706021812208968381933503584237243016026306482766068707362128080132140761827952106285999611449381274760411029853901385922082080474049165591107812221897502321638371276221910932155175805437310881243115907207620512434725449637340429864162750966394117688279043508037205534411590759778730082465706940142234777772180501592907669779389250187534285550944893298789148781664150622456951576330760691767620937693536822334576456541078113382274687027495610231689227255189010822750231439887148321254082054756214485479532914735640724198789357249882176482314597338205638413117383756735536461390423797078875537542037812036015827782138196629350644495605700307747741538924820435623196088415259416318454340259547009892739839946804611303072767976737319945846178401651261480221038205633918023360783675190412702464126013274851728552926714106803964439894049348966731430578534324733259104127117125332389891701706689886086473178395997122548946650745103477072933644857748954990459335533324397578078158420091345883679961580394541749362098329330430922789881664389387644274210177205681244999779608974174359640013384768198716926028626408164542481436282514610755061838246813409946321639500830111285282582355403072449564128041611202270313942672263156355230443359003893938366464350704883263517089685529060534533636557943911799983741237550895707366931741918635817586713522894044502774111525239532499669934604950887589314518516269347570959462630809666328464925104389921334928878864396922642572814349462327630729226242908061474727026668983637262984194153859754132504483898996758449833108123567932328818108793113006190710164863700962916998261183056290103268425842086467414912677619265081158482874828939517935850273262150850701102881152570730181576514653397432970070268459424686131197583465194237286822008493237393692572082475420673676786519403117264662261975748793750421179104147872623607744246418915165705745089874196436164009101563005592861274268120917077861794548610531252937221378865320794137182834228567240205391022679007008872754858339015658072620940241173372356482640416748980337827943569878495632182268653042251402937623080409493836759641505459676555584071677907883643432961677316603851588498201489708761795181585794617641824260831223670706304724441884846106049597109960009709846700252698892626451013340888164642744391156830543078386121542920276570890932937134816488515060015857453496842313460308114809402053159208625948016182704321554193862551479776967399539444592665349072062073133334623237047507213341955083841722877236502702103927064517832981298083397141232284695129951940876532234850720041021481343654677289108430869412390570217174223839745031577265034545341393951325877223854648249503137044490122547383005507782524131984641198600693013964900156455407267057659774272931785700806984899792644686502923014011612085875467408493969018989791567741235483938545556773038100760495909139183653716675880807807944928494695220960142831547457221198323213526299659115829847809651129320074268109043808933759138433781666902147109818296998658023641990254482514978511803131851129416990345058266480919745830252827128031527019679463695285579508349649758592611968078803230327877397701129544456981401168546067537675799854324410788237545892930730752447889962592024731871838607813389198801318179284643915658944772951874440637743349691733545270912347305464060764222092102684812080948735560662298719406552298898124910794756919577213301936052333683817184344947149454879033289884791537973418702912917728817243589272543715192403989209107930279863636602410839442811174967856779775642808387749834695142732872124541956580413834631537541111493122593415423536546139397332870470764320305667722157459850371785702161429179778274561346187496486044136952635578873674051747978149707739141200875583193886681589562437821177758733857308564175947394158179941038307356252885546575636275236318133253144146647882525463257608450263192429422265557113850877040317256977295959251338357486206555673877736025416193269865979261244082670641128448197367635737650755550774081609688871063514912391779901381783434487267233042571749796740544885475797541577260745046644162194785790009050114395313952568518861840176420961833168930480787156342893640239896922594444094410713963114938690826609964871035214476004028365936115754792876320779704910722120791508728547727259175751084118490611368748910408196646039032560757084190555379401643777518817847987489059283882216814350429743756898802791470315280927436640170949106125974449726688283827410170024259598119880092034702312045580184293929637909149603010321454154715855723054007202842545871531440679553636398447569098915282969725824726049727704753449617764889303278385973223036416597457073265730304536730753353582175225467296814848180621852408928544912480631593797619767739596209805051174393155903761782246975255714212070128385619605196421602459781286968269576757499989145567623574338415481911217518562903969461084792596626423768317733805051155097833562865978477115923958913203539136854633852301849841728479120196620351561137679224167384040891425406782947474425360168148002618677529855844460389359203120686922978965793418641270865749191927478302117504503139866665309529583189795526118725880351719644939677320447333832936995782742706691335405635130892778938526962246533029369208188627517586098612831067495910585755260360432174935684347781433375531967924190232092512285630775240427656915502791102463867886400009192249645582647998848113245175589744124747305462433786941079517886182240164115750431919310085142882233930368252828659545914292474923898389340951852915319187389706612138343486322168190559761795227095580673038605354318831610586490312427559284487425901258644948471418488816302466565652629230999591861784742273391749019252344395625267220851806455860159166282640696021820780530234333737461312587987057966617514783837904464914227095327683454810955226772868257609381312083085435216279224027091506105922729856338161445588107669517487636698195129789582626614062963134375412004361935819368270659351193651864636976309637886062535970416259484806647816817087516888777559781809250793207547691007387575618965311187908760756601707597863292966058201678335408740005311468048684086926435087451711209567799145708927264130935470319180402227536935887941538204206533430919988815838305757244895667504170027843624765040269065280339653971820234763313342485154274890541034892423249381242007584530501081322006177128234775220934797264782339515498784153270286675058556058185119628811021619625142530450693146330906813647269679440395644017284028147712955932702428380293007654594178456793771102297258925885846628884835742867356877146773457208072826592926760845912554183208816978956858523356024122140202251319831149049525610582438308584160952235562194386940159463971684172220567138627918483916629119703465600359275082075340512722417910832795132947867149693239799461807090459348693853783155054657780744967441037004426433096255357943514811852950258691522943410368967309371140882105784266999679190670253357205744836475429596527659193788778117397747976413982355824012628712685899366425185412114172316882770354476686200830596898846390269883305608672952167144058095931620389698277480275295422353922994006169579108389152067291474858119838681022793946503888510783065796648844370888079438052539837381023657315128009478077275783614423925080307764617090769837644076502281443648241932921349435431435192200968578132723964643660126802134058631939495704309855892757952111162518221957661107849925877374904534759973476757111369270079194844580602294783304266268726683426305810132842085750906589266333145612742951425468215020682467827029280377072910512001862710478954644010308109961124370029670909694370846950916778067116367045865753951802905812118995554177358091565742839982101051601185403013674762616338403522025381823977073823532461255311056061467587926904987189550486517604406857252111133515223227130337321121618803139172670859803367677693980914859562398520992620835415314746889862531689430311079743011671639777471334480803221597494643788536766634510105758442208214005416730065792105843872535309287835605174389957508301065774594181841203689930419124002593467400712724744159957416852581072320442527549683459721034246971038579050170636093516829114213886228174223435425786064157394183927854792645460691082215101253542699314020307986488102201326256295170883582351619923070050825274997668057738599600404896128145796951895394638709301773615879751855472754372623757262118933077527711128951479880407701472044358049238972823502214438426735133826088256269629223035132911320316788990253949401989247248703382402787325727059638507751416016632601655558781622924174357397749933913010830359001971775258910010636823788915809497653605146911731867877698641266504136084255775369258846448535623798132689403198419142634652313678105594031915189849616031046654782416271218563619261778943430736156972178566211168101448682921080427909137878575753610273470525563878690953193916661851805469404761110441840988700366571826435692759843509351443834632095875945310565643179833536494390079127910348146342614065575822705762002412581337319688037949612574182861641579889882287466106722912705118750879297671837725144102183955653473560617581284698377469710524283484745531225444803392127155577984636831066984937125995494242273361101462938110832640736876447284746152929222474992577341736599276910901872442181534534502078209065997437314132003999871883142159269849136259148514666105745478049849732298873792798338315493330669580297871143938226848912446542696670878592806154655742906679365838192808838020872081656626927039053275943557783590448080987845785330112374897230472333161103531958203626382830521171686329396851147638353354017292222690042446315240440833721223362754396896135358028674656331827638916527291499428052087443354813311791669299743767740727739272449913390007942653490656776849135799176332388584070808939378938466693333064400451186786088105057553406810925687243111120607308829669589900643981331592451781805313960292174258362790498117866678286391592081158239470206678797526119121635257743752026028162268719556656091113077758997099339194967303336470500451434894968047231278927258828439951210006916771573518083023166729959841952276059076779500389630136819222805010517778759169653379555931888783263080948391494834386941616697168387569753034722737665507573611288887628111150539805627270133530845100543982894529751648816688499014344953531950227328948797276625613592866178165316764424132468888480687809265571939851368428939929302043098934623355656477930828283239689222758858357542321962883834168806678266342597969659837679627274777611568622928061878337932545186695854463685081246950723114983189577641021204077965752172450750529426785225112255402903728153103504283013326504861058825602049877375378942944315089996864493314375973337571440072856573461332071676417814835993926349800802172021321243443103851873941511023966510852340622432490698995480629550807804375193242563310557806474045434738494871822796073851503304574388589376135236210793679209336672045934129167435039176554928976245954323399507946322251098726203929918078111459223974879781686692893704735724851891224400569318032222133134149933804227407174819530712620851568701574794315074724638820511083929067835453499880298848132665695759990674702933568673823543180914874095097565077706390741679209265790593065393121705871790136827214901485123864361611305830074634640925343999174267664504345512731528065233108002780536730495747397634753030450314267976375541681932690182298138911810447905849287635853474951668821285314009893712501973803029629197921914575803785372326799599738872317922488837633932433040431304239086908503114744565299753038948565353291201032993727011455693866237809295591387163281856195378171016033403013004730256403061070084841693894916278855273121532461104426935785559388016312418317516634457092996482287063289060797392906389535134094943698355867488872119899024404236510601855157677066512682408570436518728436498945197353544299517053089874862526611605350517091099041405793220483017195727428763320631013262229323807251265349404788156218911104032476282670069425432640634090034665013067098745858044452833344769274336991153844028057439677631693767423377724205727796469407709553058087176020945194039025659657382406145063626331303691043186473441424566637776693916850725871371674299533867340029343381949485362754288830783269229427488966449166538307000357799985147818275112734845773880204795676341019208674278960904793221280472453957012699833131364191812662447644922787491723700014044227032139055806150714378625500338506220369299832175525156639049881256755161455744000913481629245375838845415592319056312297006586463602137695208942288799564202589150487895699871610761747816730267178046026989977263725722866848334702410666904081434310280888436985518391287293338641975193306586584828375412234240842825406766215658952256032437370873527018719742225636687428420489267099593901074796499428376905136310843489584178857643108200294989407041042467800829930342875549046817136267546877676601952154902619944695555677953228879920831939244584515439370755650040638504845303175257755672651060587223499216785555175708359028869861874699410966317129716875495295072805990846248478112709492132906912410739479697238117140162639124468696570147139479262166777786293679971775415616884527468162412470398017982063286107418589584855412631023725045070631332092639181509919363404911079927766916715070883386168385707596518112359263881953715471094556849764903320429872585250120335638461503665985375221476349532811450703305408815899613113363746314462816382634616514090582125815970986055386966855039501949999090972322742094030215439729981896015978254159566920153009802970547207473989551638768249414357659340776456956448865582025702477375985577238681849476363325093817022700238593152791598912363897774315654818418104770912014825462501291393615120692450199593682248142775529308886243499937992283139076158097712446693234823115903298108844087702239342870121147043808333332821137795700717930203095378238560888547246713519113564969449947763729936257912930867862324299347376652977477543435631457297422209010160585597932172684424771156138766468722555270048837897353955831716544792391785868340659006893659200422192039492135951192559590563455112687586255744539366262243716192707493710220180571181787426848085766825876957448049216477747396977204933729577116359733491185078153015028209340367064205258210337388505978484875942498623779622685889737765996828514452804942908136356184797245552097644885334546680943739059601200043592827415896700997374803406837432495787686726521765102394941991515899815374733073371699973613857253377012848930265007218881311440813569865968962082404761915421922839674707898758848364677240221051867019493151026427088088267178467985450158279487298103102545049718772542642819220770123718321492265915350079092554886008500439815270708369721114705585014021529049141971442141041416130280935306194351425780472641730380039703845583485455593748790809513184063571355534578727928350297728984421770859078834560655501128786896804235109152414151410169930779300151068435114198468589533286305859935908071521279437814232142400771305500791252890293925207449433113949050009660684011606048955423922128249839547743730908068618816876991114483257431223498751818816893447401738586266957536526959764134454152740705888931364845726507651828618175939780636217244490947104732027710072387292598471754606492843948436709707216562498584933022442491551977898508121239751320964010244324581843533895143330565137759963479546962153184664140959743850304011761646397214387687196166879230752762843545393237686742130772784698978594600153407576258563795925024346843855600599571254537695046809703179571847288121058145646071756682658401363160693470229752004765008847101807067777493949898941394056528747284606797401129371644261005022546297692481427374763417724811893583540085653216268932729680088275850990065831737399872533810971798327565428213521059058774249618239915033327468290125834953182474728860036692096120228213161996137823458351251012728801111661228040652303234631832802865353951177172319053630092695451339415978739718556953791263495128327856230488476923581966520862217837239479746391500766978129485093804733497128431163774543836639244570494371195100959259844857951584620188750044814939904956169330247972746126375352789982925040787920174503762435490120974090536811015244485683922082818735423881061678720941793351123663117826197414737304238615705573164161085017899723343015751391947263205457204982150545019407553440460838238510373638032584689620197527712562952111329841792075953737897286142924997218073515656463886359299643551328086064901486494667193029628026263051402111299990454658102662598986528734587985656646630092063365415290742489869854833462687227615712288159040508062916220449380019430915194799063723111410005508056726074814488656910498930584225408181301998851383418322007677523417220577775263306889241713137741032317808936438226706360119945072723283403296063569048332890569780252197592967203075770891734524232955298587426504802797113509693898235533070016268143387417344291163390890694297544899749349675539323257605539558030387752513159196477722627577919028821434645120326823170454729519600561061124807118688957310643467169666261261242796216473424967648464246229511857406689137566969232574437494872574508257934263118928183078629508552869556341688866747953025428495590293283418626914837708734557727441131772578893475731293188841854031069998894258961695835413585208419984014827986027508690619457003947419316829594184785128827368863539158077563084068381026951221194024103788163587651262432045458770846176588305651794970160739038485483802730185396548040070035108054126453001545710272679683025795569536842665584133506276890259115649018718942864301042386230665224589242032198652015515003861954347653999130320220922531714928954705642425233497551008156775307105823620043672201073398257553850974145875107823610752296259281235418428320425815437122414180110582870643747976940846117087878512249370695004749147145294106109790116736363898803738509154837481731369978336481094099012282878727766190690887841988616912882843877022518397278346637869722601849279250099949493246345600987542077666733671474336212626288132926059628939854728119797351355531137120732801530777160124067022694876509371041453641772689210571085320259566762889675651532649601231287302534124957690581333816265710667881381322759537416418089673008597636395233863192324797050800413297573701174952055644711322988699138093133858163659979758075935437955448069151094850148497576836322748512370797900734276735711465406480082724638759415980510360056281055532640012204737840741125489770000594219217670512994987745876094168273613141600513811838461454527916438673163123889109105399334737646347162310928543741475938766459358504050938734966582289885093200154860811311917451632944712131918584463941671553380962201802316429581619237032731525139408903144705636178282905889833648199287282190969243469014406347071106535419482787618749483315341752217810335941548598629554814522507174406606123956721964873713973838481055707557860259191814827682319218556409667072168640319804332620009376493183793490844350411659150899888108420115893688193393118608196918370286890497987452433643545156948209674354874713119869928669026901636765901419132113362579863700918738065687534150565224672970484541825115199140697682086384294653068088750887409673778472435051222733684089465475237322630237284051046392645736227351187965429227810866285464233808683079968427956987937882921637666205925233526182285443127992489881499918766334525837493693474265758852384768207458152016735836549157940966983369476255174012823149339326984811067369465281289821786155757038516675944965895734501735467973833856718805845473077810206147962550468420019483622185217734203912045033356911269048867608391588135991632635176780150122360336118662902931967977385038044112133092656747869369284278877097187306753788543899193770630039023745474498074755775478126942720722332767558848743890063384646403798098144236750750482819888102400333776200955525551291764702946057526704511992333954831397207152255441069209524062114980519013514825229133820224316367577585840700380864665317406645044077081353526295679167895846171082655411208977145515715300367137384256585123348120754157947824267547439044203039990333959202627185501562765337791092681382493947997998879793522741631061011515602829112457807334950972462228271661169761160120821270380171299644992167563620911867246886276513547722321229238587849303440891997610568804307431663239604878853849137605106773619120864511401569849821011482943683433629436013897487931317684223218964240023724118363489907888805798247188647769283544338221193935506743789255838796059268554059683900282224525812795452687982517261502083508900325096424913584514133792265882540233834310730320770594623202134975494302153740647778086164023803644540889600906319470141359308443939281203895614329448089702912789394854241581745588760881773431188580751657301158398356243531582143596606518414442984206350915706741317239341093771464801176220879957002666978134036454127331477040893656039995822983120610580664479830788831887087797903846704162838827167519859119132469069339281015612037041650885942744105946382808225064025224086618456910515952328698460329627793942306469707434726089661699513317983303155126110915890186294013844387898447074493127801496555469594721274890730481929445166110508500936066796455058992163586431639592182444628638012421528070181089122597141069180340965661296215540045423747127059774694346835212048198873859316784559357923702026832510996606810292768637732044579822494302710167685083895367981889621556861341793966566790987602189217373686210065095793792639920087809710234197505214500083644797608663030137007730032589164991883400214696036472050672312684618982384219436841609899188065864866343777664393661097925074190705368428655111310216117838474606426958011509525624475545357037092759848639856383503935840449653383062748248691054747495865410501276212171581977671122041012289984257314580765868302982036626254727861539495440003045981017991880642099184162064778390099350025211174999674205699050207613644097117962502386541092226807425480290362064117484812263569368913357217585183779953751976065267368171108988548542466629035949168580206882728048250867859224601104101358313245432071769574962353479501362025662799087239930457623295929909973768351975377951264551422692311804937534525800734595771740602777021789940175173603516257072756303900493524743589836734169145553501279388396223115514830049209690266131162634739781993620479617840133512889427600017082572524201882422391734420419928674942815615977146623096233520660712958960348780844989362921147541950191243289137681355913639129761149143061271791990157229300187163775697142220486628797233104362900775134704959321918041036342213340799638415769965242355773052891186865876328924294635004033829950267421439339409505783083158372157398034279042344772921718966048975725535228344712102457036370133841301605417486188865842787126236272812712060989833026865252258550293506802504044447164833899628601571305050461261669500131434199070194365577268828608246262319121253146485185150402044081929891848856630422173751614145208753480118075509470306123744515826012466194489447761591619668151415420442149302963585261964515078068131496280762571474851786927460880252378793362368243040517334453911320771876597743774360006376929876804117991175601624817354692283116033569891288530722264713439927885989615751635711481831527795314781388354238308600485185335853841902206749017262622669668844178463248783227259917325270720162097657753185288942998047525283283609645740023932401807476346710227530838837428497110157189679884275840180976076600954852580765881686905660726636943754163684579234352368417894864418373761315148466135021422113739453627109153814708198010614592895249894883461790643115346334521548024429631418063645609047631898589538789733366604177605007294467823336279666957459798860580978250974638399125226694843540904624954721091302489008691890710114074875141552450772523746607110819624238149639596518468891086647399836828815878357043777375160981210887560918309737681402671529836815452568983325505497833794180975557598982714080529688288801387969319975785567525006106995671210799491091983133151781748703931286203311496374420893207196905018203985186581484963055243298931997671165525286903809889287231032094767547779374282857972946449250580033210111305206306969197239796209275050066398592624769041353274470578803626435637552358746458107080321517203716845493377106483558404891052465849759826424035827661221942594501735502764830724411885090690487836221902966845572729873404981909825528412127537824775996691130011381026199388424327679284266042191145841445328102960317557005803069035496771920140149291534912859790994295933581081505702631537269836063919045189006476175981113598647195416558394345737757820127519562769422029258680124196864173054389022814118862860088596154575697824648363020400678824045864348151425489166623989804140207802200667281949754143661125485190270470509626414054887475242039377451886416170005496787503292632894005399892786683414231769566383083478567199038942596979932581780372413324024716947981490795943629897508357540307383744800476655808411888041344711260845104186786486607972032366979298868759727269096268226974906417384177820577633498191253351057673452925221948086429026421654416126388988198861821782397398834369838897523068949181091391305658431935041822732247422452740520287869605017017498587723433749310009252042155379041225977703986057455021522210373266313673610590351511045379899128178839309453147573226042747902782759958230801425782222613406473963467749418383993499812136903638467578016078292684323299032997638546726292483481134808431934627113467294019157729127799160006758403569407796168703769297983967557769426466874465982028229970054507549953381967758370759920383970636638833093585439821103600728733848580815460753663375392792651466943366788636665241765309191214123340428995481567027029551865497880933382669943372689761805335277782175498724463186600717345463551396525492983741285931315348712585565255244330831930001205366276742081011892422761123337120747412299622188379125703451391797027731556072758109520571550482719447431041393913743174597128003145493405720833712861104573366381475427491779817346570263356231247043386753765138459492395983614032251280307623271228028951667325389307621112815470226206012957634289668059284639149567275964860867639378901091998699033032655245578048623046960437473989523250725324457591002632333137139389583309241987005691249092782797706675438781186422935107543947806960661929261971694505682562699035510319955063349753792591301470077414063532562973746937013481666087253349566135192471520346846269207727068612999496695219230965616002424204457292638687606772565417452151204327932159117616611308899643908940952612098166812940400417636621323940818434269473737859642651122832770403853323289125976759536193789048482648929577041782102862512518509028367668609623285693124067897145630070406257452296686716797351485029892043539855105567412781389406464194384628507161597477078310371072237637216229410095618445777068728339046510986841107882730281085383591480186045130530189328599659382760434013680869846003933898283673907403211255197422511099758739146712270909815473137253865044930455895244061279765306558306312544265148003854516569045458693988630247046676521113540316134692103872526167968123558455734014640980581956355088552732811027332312683126126242067453416533006034874754194630395668880988971251898660383497770823366955765091398601218205659936392331455380931593061263511081168622436005925063728423755159971782763939803475073876034476863100713765426562916433084896513569131132928196177242695806640363417612344703133239971129420909678457209212876804564781512752472723416365445668053603717041920136118797025172707220362382673743183177554308203072987308546719561964670039496399862723598180209797611967149530668103077951706357456952831506477580158518594737406804663025112155049400231994004397078724923243879143911726689484573881854565494468431498086837126585197441645062682504719501110077572904587686695981287178039438856078889922260746482225050272822091487965775667382684222100557047384310488032988739080848766168927017369391004073745272001381676248854015334551091973288520896296357101059992726097808601008345104112785203516697329498096493465888446208394111619273490190326188279271559883962137930929432895733924176461753934903410948626638929426136352843990168413430462284646335385901574205049383012935487731396171511776665066155315629176281519523231078247523051885534337213410958407326480891492971354781284176257630526989037729835278902350394877444329803997517066713614695195302576178657530839133644297535972005633108323711524761480041995452743248310971833968686128229037252184914360780751228388026754569322275730619836370746042873168254834281554465326361959276111692650760885089687731871233211661474909225534483785889262567550732527061475954439930751670123575683789765715026951281215919124159891118518672200731670256777686209767478471754168495825801157502746156437235416643786155467358952606309867987566797146337071535868513046206233648409827848679224682218058363303063762864546452485008855663769789989723799144086680733631136011685006351152191252538928634374017530079859351674582943011374411219515839362253624975218000408601360023082215824867372552499269770737323649580482147905267933194116893353657089929550010755577200155179370399079877730857486971022421523603622761438991765818437961239917970201333751765727116485785658471540659419345904876913912569582018563234694695388479916669260557831509816205848009921191506389906852796235191823850089461118060419060559935100682606448804950593225006965113969307612407930256619053938587254412944923988182017683367231011878198677263386121045890807380559923963082726561186841324924566555024688275649175631596920413927185565134148743113584905317750425992327883452263988512132635796882900669653037012584547653413043456416997505830021877777054804943637829334692520989838480500483630707565764414393885212631994987662472048345783757448352502872321970816859810475005651715123327499827968722582881578124113622905108693344927461756158642751543350448311017673093788780213878855421413851397292294965684699151354952061731761637133356169010875667772213289042367448707513474611629331826280659814832457759686857859157671827849111163323708726013887932265333284477704481993778922211222306828481951268231047498115619372165529693558745128576491785436322268314403490568457584391911683047297821724498675344521971218975614303095812747839314704935853590600860030082198280394580799134005124464384573680826687203199657891941858806464054565570985045750390817566231892539450014763880387232552931418254852511843740573420777588949163985917966751587416202659628460580768606720400768431229511663906501810749505249673941417362824779522049484790865107492221891718704031604867804725791717065425845534346800123740128140048474393833661858136636915603314087569771526252331916617809523016039602525606711570855226165431407012478848186022474411605371940898574156215104154794131934581676799757540882227539311926028424457487762331032172566726026227382099985643302319090130218705100316111338522295225591065814462730755523806464976353037731047989950857659519813580678308017638543432691567757152053470036503970771422571326716045004042582528937140220078900022641683948179262964860194506819670474745979598539191620460318831119636475391441681229592983412548555998946437188238643964248366370067259501611839127623411215635028990595003137158530385730537641079555741400642977577328900215992989583139494528019309207891975740965627683232926999397800281238614406375716052473521977459450631957601505928175713200125627495259293386797308986891977634234509036264799113672195310165714124193560214442771715695700480986856904358617175147514346754074295576941808383126819603397522677767818608034921496246262595430049184560733637059249419444455857663832317881559557991630694284920597100776162417499729547456060433580051995935158389052955445847575546366886795671871933668953855723087516463774594079258588057179888365039594878334848933007594377034644267492422303521548489240830324142350199319556952463218238544605203530787125830024545246523380048864358406889966885076733841098254004607701234337641238805192361974822631885365415468554815376391378716364919511438210906998094474918843526998729661525757147992399569432553755564280797833875137350807508784510170168420615422580718953978335702658976253117228067305094838348873718742083252951765815962531941511081772272135250701711325658642305748244104392457548916165841233933570195355967804287347126012672000017593501159684720362852553697837519575879397631512264695153481673076822968287701693582051466521532908658348183553652859762307492786474825995319741947043843774027552164846238701472930328414564371340826507304758223442686240606232932015164307303393781336330365946837158074155873344076785622885559170234216124757669130513251425079728937625164888657627475821964890779676803469567284771969929778630547549504483490985339338513316531374668745358391558657606440484300031313154690656705430915322208792935983534505599060900894677298840733685232138299703736515923342954725052742711974477442861365269655553301168825645111460631499288582809212311634572910028825659954661495824013367398871308923590636641677485867424470418079030183744509455433734472530061407333418623475066215939371096095242755202636080680883531051406287333757129973219590756640371711695776956723515139693733138535174526798242876779769663718885292838107849470405846520668951455375839765140448254922604929028672914011146464689836803932523871577231223547214540731727790824511001344419817507313974968172516148117199530638430898377327093966124972952538720219372629696867670236728103401198970915248714033171050895862111214178318092229819647859337088926160883996380294978387793494163006898409469569187254879103002959894470744095719148331249088341220957556979174279266129701969839040549080458954596611462024600343817038601218603573030044782342530695680023242073866694946309705507189673803292470443999323475870559658096759531344846773980584144315674462598202940985270803854905041875878777799623348099440875584121820919304010883277888739937727443350008708633031181055280690057507606818411231666011765671972486687900747185595532551797450120626383054845898342030383142062523857831781010317687833206765441964521622238851062658250719997535403362578086530381992245951815754327232941919244472019520039012008218304314519130033437210530265577796971989004002325185131374761263265970368004081517904194150160882107530309671831788125373830265953544563526222831674508901275045735484791477465275399390014743626437156493001021228000072929062728853095503304785617867953240384416664748500826832847575035943416037080828229323300088667709112055493359468505846503361895027631509596982362172421342280495154748266261272646834790279227587885041726778224879007948197821815349263123029461222902825126953928500110361431137675268984567103243052284204887342877164794330703160375060189891838662015310232353635767169829164874976121975256955431374699540267533235274167135617246164090192703976255198564649811909743160060574784175530547142466620133913634452565297695724490327928658885908642355072807337793088652136594408803390868778382844420987694856507767110445395119594124488272296386049412828939310641943315719645316243806453315945912542559440407066595318608262995795539045077730400537251472256418958141915312648303893116215797987374877612373988067787083732645805114409894918837982481921557403448268230863191282704053272074382096464147374735335856768333753379483878346704332886581766735120977947466772247527193312058980539902694986993195979075403308635477570544988096310040967837437807828952641176926973110712432610828060009398653449873894822987168096912236231221686674664913376534788224627844390175113808576132983865207138768558689244621809527955911722420261923748888905808973884944992112649486238193143895569721915647170233303595698146309647532502305495604388783284008124811522196018871605598178724277404082862294744769605130784204784408728634896886708171827096408067320784515245168277819431495855534605189687254146375700708521421661136036681372347365095407760298774246269619860725056346389042996372368008070900759823586654450483874106596200160715585326665788274890317650411520324788245823805601144910537449679517924209013358026983110547401670041562102144207302609213251087298045813131823558150788703630009932793726475311703658879741412833839739551193280226677559137266749012786863002041742809525772940401754944322935993608987755344976791021369662785517316666377173310377332607493425071136907742108872083090262566981576886220254262306283532374048219106587998132910303555231344325967304172449185403622651994318508358029826146764252227741556221302300357900167379584669935818475135614137444855606823687611676734778930273829258800187423001290099147122514134265389016940571734346380655626102589878173783678343971653647507894445988272765430646612197891865468164764384757477649853569046837721917227237993594875542842979840831909530903094634713565008486377209549900692145736432732183440687263365278513382709208329787991730123282769622336276258621100639497199794950864959032604179052506612843140962291018170745544632768511134724956410739373250193852401516074607436802842970136019218914440748806658544424040637527420036427686974698939336684418121047330615442403292724991001115639785749479492201023132553968377638545446637031116936591503057212351387492044759647042902771075021714244819535228688255486842851264574792105141164641351030976948605660312651043282101458095172376522814536008800774818963906756941788339586657686032313489703404269067195333856686681118230294440056114170861761793201544223666589927980563576225465563551976003366641685263601347074783581284362690617530457362199479828824757973003971169307840525490545683165498108040216481404808836431994769537945514071674352273843942384344132338704007285058773473556684689935693661671238016285682496390082206120723924625168775659842586207395159467648753657617314110115495249908814126014911779376335938591027974028491146464063901063781029023782424240613735800676041237521590118368034234408606366756660982674703652283768599051567794818426907607723821854781943190132925781728378621911845711258082876910731899551548090872990244614049471025917458422135945816200056824789335926365449133346365754798414087800678912316980835821738076896048691377734085226162815263327331303450249083878240182401013269524370135463377882770482526186796187695332412554697164612446434206863366845809526457410556231093057343774798209811813371258600082969865499351704513863257820314592503771672483399861237435305791807645408995917811023107300922828431281676770405482349530689635752051026205412252065848692017072241223143048448590243483818028853376134936343949870371449281420461374030860099449904950704979768457702096397334442536569719925075741653832983510716682874556263353305773998220401810759296835965743701448099671832083234982354891029711992564985561853975438246584877699704418709104254141945209177431696735238043588877954110597616458232464973006394372538840125229269660639818062269919834907437077341667243772621958755370229838704829386661159776387973348158611978564201442004579809128859096930119889528549094714114796772683638942852849376883013590329906508730483910818558300818679963484056790372152373824857404442264489284385523786698256897326274994138150483775600695589871005069182684394964159982204107020374741563314359351121830418236087565694873942998294807308326603735941598094852743472757318631499618813547692550871215595549160342886704582588825111987495527379120047156707712249133115965102475243564255034013432456964943835215542976117151513616428724052982634025042724759353617792968402697566686321715308619455754066529757071007192909680735742502470031945817885673904597256237095471980657439546648323755238218925207986114307113358368973862452587233279484131396048696513463042015150631639680573602022299291794926789724717630269841580846042830256401051386903517708425232361899189858116667900677431997780764062768323282405074568321673273310170417709135735242040320060107642229251285934355547327619252663820415368228822633856177945899557908147945593377962793631388543159065068960018838884643489184404176739683035459136908262269886072980460438424852180633086363245377931345648499175093086205328294097481497178075079730111708527236707745081133464342331714476385592477284535275446433090909734886147491115378622699928657870570789200565244104762364851026692249411972287912484023420858656068456782916114385618444563939634464426800196892902300481371343693810293888083956544307353228275125849701955754132747234264703437360456705106276078482786660221573135961636225997131544155902651725724868099948527961192549794381829900750049656400560114245465303663061410304346178687126594368361969916165988071587686379257671153154650512401097105868061245859941860318927706854127464890667891227626005852339512345757079716407820586002623769224731170152649603458445974378631201544787186331944660786670032013439921575939116766013701313156436178305697753069382909447497296350749145373487243340234670132266493479875689023440736903248456064883912264789617373730719862499971114971543859201041126175886926674030428704312047091109470272968930017043871427709701832944533711020011699505555122532533603513107098950060009031634609595060673831925737828140711610286468749049501161820214422814052710948795700526281229581255011217161491656995619628051040314832306045804509599119551196375597969391165844814208035862149702081174436482021693334591516941951166088071392621401969410025286031905611558499691100655265875019603562067349199921817654265504229799114422459981332607621945952878046454754338058118753334547432706565762268871514514837386186582931240202438972044080882851888352851328830250235219018157171793607895246458573645365019735274143552444214102572764949368870319718871153192224082571813839974541983251099540093590685041789297192669211078431067537913330745931141176293200703651271921533032375338095202123664043847443000636793191126438342160048835958525781332529935956222794545927307421230816467084137889683208048344972389504167859442350556085502870781502284786053232259638574352393549296758655147196976735141582827398784219583928801171837195251277838267895216775929418761752435312901108193156893423921124450047562189673620988157569096449092241481272996062629470203633856115532464195714170473966333841453223149905966968433090815547297132025203520544458364286365096914766674688533508879145387787333287529907450984635759854878607624929805273677551214738361559652947669427589503527837057208568494279930177473346350494342787805788769627928262306083111756522978098189470506605036454980109415338134788342491909468202838399029224186598959670869892198504507237972657986956221106070861669445998943537028125107092994982139374144887914570457162060191948921617875582486576377841719151010532528079614888766478039327589694009121028848727546617765173932951703237201065066853205582753440515653082031922266546330519238523407094624080895267114436757848195449902894637957514290543132719951689424779745109778764987046648930703130604493992391115846673274380576717496243150614473579167124662490043854969477870376361908934021685596609923856741041829788269135923045861883030676229857078831018192650545323840426420489937347999095522388572826267337787245216792972533943895279671635319366796285465744230770563608698101269754069960958614367011468740347148686466094269277883619362856692020822890410136737645267656785705642632721438419144442524593761797550781059369589186307052117392557434169087728756175339913274015530252860992321319818654258000944478393002381120715108755062316787267523864182104672401306315546056416561793432843330165169604552320408778067490747978034504059174819260831199773977541546681613802131695952516553132862330577650018564019250973253986848350291426876395208795497279372128430992770885059213131233912067646978805938381123599437113465382028900404461136354261447037355586801502200366245714215433919011842287900021052536365794503772807644517145197529375431490840779371767486493512344069006916254903688051496621004405394259388596986635126486079038564724777649769385880654817245556055828571146859107870305728659238697796269953223619388458947197387438587638325196751642611941589889899504497873062467578564354049496162470403462715908911208786343176410633800089156074182656921039486135876599476842215988846681722405129657491687881673117106557525353853534126716789328830325370326109426056802391043027059676863807469123589722403641289888918627076812686155404267583450682243635493047252437639004871831140152209228439046389742451847359392151405404545156050963121486831238275356126248742122074207791559186354505986221521239002031892564407558364248667378079130333433784393155101002908777498296467745534508665531689100149192752817721582009286226906944090467386284539710421578202647511271780228066720576255607880237168938663463111460093139947967054351315805463814520592701621544943426876704486831359094132517149314295900716022828124866154873315013644937096428096901951990362087590584728569585925028761250399413423196706082826973010432341259469808266366319459005906857732041467092102972015836340971976393185012179794964240728403125604896712729410940710447687597618141365992532046252741717932667249447794692282778344725896075836934077930148978272453271156203713156083914166124852893798819382203917759016109530047998143247463150783411837338421255043275192411800795096767805196150778246793205463401442248777157766063579268138930943986050648444948175007595761927389340562999844947886810188918795971805666525999236822720183094633483279879603760169877197955781428197257871071397903357403311203465272501023451744548765917155363296683224502201624064450531482805915199284914588447736500157853533863429816296045752434711420860506412489658099844621497673212371897053448300748008262255935180003900968502344297079244242187935837823067698735435360513924943538907669818908501275361667655541069339540310688977218627271797273431486745405042437732614935770512243643247798317552888409783347446773512373610838500870926737591156478109258901037444060119395578354231829844186172362370401292036822574996675499252124255154235679822044662863341757552345500042232779745728943970118742281224006170850628466051345246630832076818863032580265330163469846316202903388477439017458295583484598644621459810154300206292010431790102206178626064498495428549656630988236304282063898350788021756924642705551925780882085145504487291143109353754308518491948914642505367657634882951150424438479244510383595876820555396044823190595245079677506893535181417301537237917278883196403383310700524842718974406800182763365853409342623604221199583274046531560245086979428537809935878221390753828607386268339776462950325629003522270048502100368003645838190027607165295818179637588089913312449759868468744153845598506283639434524417421633866283454605324625843113012895927630038439402660005941468501080886246217089327360894080465051450623494509328095422736486776138557009404829251333397518784299157676651013159500735179875041443060412132469524472724718457449313629710188520537483490771441999975031120442154090874135757487540648769757182988950218125691110234242548395527482467084961914166015019033549289503209491426799497743585302470737040218431371112989135179501104647235337027215016018061006755718547668162851556234087220041407517949693322850249802617684734573884892418774299685842892328851081531959016451642384265736258176213440258934461395472998334722754726592247036636677408119377978371270514981387593492174983535035070741292219376300404053209138554664059095920396484562030012921476093499069143725939222002663501483534755703471676336229657650277637911183170932142978819859917021552651379792505433985240320114576471025880259444973165760068209014874826201032123863051403642967865599813973930503818602632392140667016970468375215939455718247967573588089094881864152071453047520518137785654300987398057733863528322191441434019350672768564649768411568069970069999522212569496254033287004984240599509798151208934725113425884043699734658452383091666308938445622070214657108950915510240600506099736237328000365304501318695963268340758218396005675526442974674183349468677805832859521015041937747909990265239923513519383475396435463829220173528359435742245363900919995976612516360882317785122175331821983832522054454414462337354649944464587164313570999494444383646019683724289674492176654670603625650309512818676314234319513286474736768644311620154047528675031934473190480992023193821940286521557043516125958218230538683999241941277833795090498032590062441563622153378221025659407108444913686144601156033062460521294334447923393119957191381556442773901450684005792378907296490568365260021921388898537374786697824304891865070223829646667490060440958501230940762412327638603815520664245110930851623590856064619278014687125917213006579621760451356403969551041444340200531269778178125406579537559815575641385194401222578230780070260998672161998630951556578791231747380703281971689057734673304558647196736728251807226918495143618658171331959974089166003089680755778276553692289277829537080246217169231138142909674629211985368316940048123902837487737696058736644027438020939458928516851415004318834070360224160448580714455088619594756266318737400580855369166556507746548471174246932867903339052779914086968656787158424507317382066578923632973727722926749116371405962307127979117557556246900379478099897463953087944563503560800372562265714162259902141516076042280437419554319730192660293875304130588372775915927596413121005539106865395902869837618776642720100828642756248152672859455451706013701821056880681126547929331328584590142585324881996227838762925153630657067573984702757119152001744922806885240623684853584938649532126419184937498902649411519387693452075896435162015485705858403818639991163493869685646575682101288779771332101710213577741902988428804301062034419245396765034013715923987861645841972087967584301668796183300435416421507782123998566839964037341471044438356682999060867290417390571084964114010718246801152466565393905632808622738694590500502363204503236066676992020639503110830534096710811588229245887837842897568515171474460475595463695619708134669960738593865598487997681136779431826322205517526920349823649054394369841692326968695002174549354314349660170565558460574095554567481037961334935527202958259932107871711195217640243461274589966763399772725204810842805486911508424165343228910918642779712328731126777805340457924310897475240213220020486902339805285048827087175428845661135705605470838705097468495299832559294539364306893278863215993898613700142219417107977807397976160381163212965072774447224875493353302313412224919642792804558155737923015302643787074472965891654105890735437021005101024367156988106996242407342137725292111262294998750639732426224021935742502886332335773885022488731862912843438874232561360733254814349310523742068778438506292467995716870153114432158735186168623718891397043127464048493017735226244361262882757923774705652199750533929478142553670433038500805792491017299607437369547798301305606203539011682380305755790821507749224470453126028214042999268955381542860218813116450803586004435249289198149294652140106002574046584007994851472430018520473729149809682937908910519839146498639027152343210241368206034105712338452084197997771522148946845193094288357971298446933673758047713426927019287621919085018685032221081157834171865485300662141647802899041111164544104679821196538102245727561877195987548860921464761017894538130206726103544649632237714572928496835148964191275487209139824997082975623548627294253732074505357451838692549307754139882693998619878489910063121646423559192596145681771085046456535406671258698424990194643437123941503325912099933134400653750842893012842080003205931354582686504524140290713997649685060894148454517893811550913648845563125727767064969605637230659962227934282782882856044606286000409145395246071341194855541872036122972785830673556553651007332273781359710023175554125740746487818110063739506552970517691948483838629468727155512154845453377851815254694415094050768937939061105538021986190171113703326907953149264772605374098975679143661648992348762604753721156178267987063346771169605792961866893191515586151251633738750041489924044437470275644083691797838320732653606688493946766054186430049589774526792776611577894164127414866414699444915502283594411811684976306390021657448972038875108567082386662872352672520864201627737856902773821821277403260994340741416539213691276845218669673349741857305466064255455311505280931841368173531929640543401965244253308187530185418608428642840275049850638734216987099104221809453207219245461550425921782224829779859379636296007736419231264733693939836137473108957201451775596468131062541319152635370745509625520293403349616147951425163642635953339842360701697661725285498537226137436814472762437671303131033981779275899760823756225668572625122378906156214896868382665340213289785409716694175248885506508587429377500818877328672141307635802278389002213621104040137884469909853613539684523191101787651204341222450040967046996140549325072579647711391257739875347748661721033345580416154293767836924087294783292775270497691631164450431086922569570575483374787744209729916982410480208815894463044451316064181693296306404665882416275589103838145920906781921011863989679673851945111642634622399103051107090920434309847077012669138265128497283252169543400620066432702891020651915680835608423508922822314272879256958802316021907124099274073908212341092908422500043235416636628008968185816928149660091992345522142955446436484293523357168812363644999964489533917407288220852323697991503670076920109742068206609773013026276721839270362427566978592764595844724445296101760256578965940504723917027424685399216660864521699151637899030861002474098631730845839713676206709550758776894178913901745172120491195435612471930865603182764369691359727613742167674672871025684982597499790690759126744711555477084830072969403137859032570515707766668513553768218301927433124167014857064681298070096661561907764494893395070104746685637063367068035837627904526778193593375570998123528843303803043363701465521422208760983113538785300210820775283246583706052274802952311055758817755542639436602203407766656037078068484389440605890713409565097407894043126002413199546317024234674576425532518068872118905354417541516908304749147209735458342361817520825556913837731805402619231296224625634160462305934293017889994789340339369640765724492438695427724968990202469484346829839267067836547424487817570730320459619020135242714104609443218024297295632484193006920147037059062918375628559642876649839204700314035880810056583932849979707188328954649195391429893436230724379295516659557972131172879128258137622694555458495343052404300784917832432853003929854727693606638935067823902883327014831503222569951401312853025591332877380739275497494416974473669507331169476670823468119519955283798201468690239339377419671898467408092826725700858462342065947961885499500095688480907342256372848687796236699618316785268828321733088322849542757654148105808155985229553243077305531687719528804992867911667803400156688804514759992122419389093036889959240578674398872711842679437704510333657071584161902714840220825793348651002407957509261940224482592510110363332015891737150977923681040415511508833211042975508116119207089921351496778369405571084256864994253569548916973740712059702886129410979569300015112310393030595954742882034776542576490454668636771599776120228831838347412192760118355119688057848531577857596838068481232163533853732758906876300290107774921156844875754555578177819440847236411119275536013522983674096729700706092810905671810121181729864109988108637531210080062826832422157410822301328900742849355440000464999956872557627756667106104194526956481014717643244056459774302463762661001859049228918578609674587727317959707252127671267278187906632639251280633798167229014486979849684014144442508402255045635449025079344571890108903464084200248673100844296547958491212886377676968105981022138760754973007608421659766697777052513656540638310925547401069493448327823637731399938594150139076401451491969477832783426091446714147916676254702147088425513385456346764222578478803374623483793123209886950384496480772544495409699628687879750923636419754771083335730062725707360541322439060323610090108887987894638754396425185535322204244681546919382688482794937161017324174922477710056951421488331911769241930236153793808707373911625863856944090502440486232824415792453079949556530807051486263950806988719036963371730390961409670733520075496498788922002848699774560308824245400255069247984708192774654757459403476768070438867290502207123767337047638383138154529266631856578947136028542482584584336082784654898619912302407637826330689396883259510342686545476633899077007918905298279079033537855217857696425880726415749997659915849290194589420317546929708141110513923141160117346599146978117363981716255619803018520337068794378199410739011464638398174694766705791209186469303103890115936354892209466076035875630009970969035952151427624964191393226621540389573178765685105035100358185160895885359325420320315534331971041698843155166274345517789122943800533124538604136281901337791990639311157751502309188093232831177371428368053838043187515670008272575423099357732487480422216184288294063906663967476213461857088174571195819141928839730848279027361586311131849005531298125802022784733688110882496627007111081651256660492587656883350920095644300066533449224386154046275666912398248275286830043719637432670284224819111545316278227587935900754809195149300407226982160515677843010079917641209013411129989995149144336794509682957349422583707600335691288490876367702947830534679226143478088527258116922320093446477545193046857368747363136501961432035703875930258981951359383982407143605057901751251696464856956173470977367012164250722350562504671438667956043892717305494714493970770636247408148615032732175934013428693996748605014477509746969517794292750267570278692470016975342582133764002866196071083506485680791700640826613788460498235243397343935181572095228454691583481562019946895346513951321821962157448483810209125494650269837796327321678498679066428426605413785665534213501879149102566404379439320269936669511087375370250960044376023126560532315060958156495218520881404504695963899759993067114403258849253392699470212119999964394210131108405760025733229931953464895527062027256581172905069403260506623756503540617031969595319227688623483009057663077969854742572584148450235844550878578041282466071810524715945812052554755793455283983644337000364039628059520181718301593219239315113573148655382483273406296877719674125356818983220757368754659307145276214020667091874224168368920250307444896548388892508032367288548576664162300774510161841006568879466251595826924109209264986533260935772457163831239362873476124202141880586765241500027325238426418664598166288836337948931971914716771367046699610133405126867358117484040235197719887044646281213425469705224422583203418800179864893468465956608641116952884668863755097709219137979370106975873617931407731245498189329213466543168442222647720848932582382508996957006061171676600825470956008249283450646703828628116029908190308840666640729465233109364191183806464309489868520965525997977836321401106079512614057806402582332704730299128620878842881815315966876476507556228772409045585127228925297788557235001456410454051648605465385718257482295885278503866639189941076172687938013037005368307893429315579195692148116990732622201905754458255948655096475803700006680206687616355857587752205583447715850749464098766704560152731130824579353787605883825177218929597366205188628942953247211598182862030147632733201440946952436415013365678892470270140879006472108793594002229123505062685700064355784204167145117624829373764974506990501245078445664615186572559752021924291710183046110995835641684285672809491768128377938703030791279595146871528774894193554321192891927805790515713510328800203915418345104047012906068301764180154992350188190807467232010812206835918608512438245469563930867499251437156894240673081964677163810471093685876818883904453822531511832633061626387401620794880000688843677682193069025086054043932095044690221130306634847981155227294630579961417685172139379455995983998401604533151071097308254851132202491179407988035961570154413810682115288202999416668993869901974111398335184085073701081546895980022320261258483512552282947248570468080181466284890215118495166623933198781550775787929236605226148294201512156206375403261641456882940855925579830821681585512516114491823541579914564537708106478870302736886027715129101509451556540326672706078089658001625444590176239607675584902562098712027221642560085223021960168048391167443795741526051247558246410307085181488308180605709409803393121195543855447078445364009852161239515260125221378088372554423014353048284152638501940743611995006709432654806255747548985462328066944114920208929097961172322136323870975045859880697341766812113850791523323720158148426264069243535466293556740729793958285620767050826189927423585113966707602330981789494257792556990325147669553947208140765179336742223479547481629767887263980968835139637357715157270801987206795399556920708342233824498033693194426490537657635750696764582844815009289339977304413457853593220777884675631017795952367588102062828920643326245151601450245933606882173286836506849440833083039146876060787784586787732158955842753035775631166713674138691937525320877289801563413731702247362995500428964039403165664248282133725920616801330436556548299262321335229377581405667040454372744229743338141845904470070539663245144019175014106120259380532304445350678967428361820019251536227447203805995564716659345372405015339984444237600506315312660087327618289966620966002023247540158185910923171856459477442621103229659739970939497604954479491974031321687588230208739655160811054586699903553474504675104788196256531730623270517556152904340834756955546105417463627624532061425518763406295552837098987260640487787021851203848220677356241064094452609093706542545695774068282417775354672012676096564883385541762330288988210067714512863978885083658984036824078450026335097901139397548984760544969099902521164911046227616948312064261109201244529849107894216983379071431475872395553308896195336656623177239616715876640639295690452773312676698401995453763599833357551123809402596049330545348179952961458422742016706823362519176227253492262786959435040140727728870405099480218121734996029364394290913073878250879762381486871727596481331830731590514802023346404249162901532703172076256821023027191686381829763952838849817236635612883237714131407614633820648859076873423295030741579919246552539503408588811299268529545762808377349418152932234116792245486477785276833860983651428723247649723885006996349161514087195806040206825097079495067753528272799053112952429926215386037062096840262357498406350825695264860468610977544338372007432152121871667615661221209464215676938650563369980548463349976357195243504034863440795979215182952031028568730985448204133955820443182693439583559695634185947207065029432730933239467195956795785086477971741920333034476168512561535201975597922317911808146134259747617997907858965227249622184828277693141423338176807060198274267942511388188712616754046789091499056872866822365781686368699828044550496779396766742072920960705569335525026083559625179977582612474464938638490421757724131380943756443558134256344971854564949603883680492698506710949992083004115130451211604420268692566304160074798171371261793793917232781892966226858137392654872849898152622799198322221496796965618583691628142321006913131285989458171743940917859096008182747605701119857550719872862830281730078338832104707308652500167058834712750437892900020373685423225228670444186951589301033143907761251271060083479510135332926740948008968297142650910418325618825680873110444425098685710048924157604738409394085997360665248687537091668474625967503926542837067661218615664567288880181112464768669527163341264548471266758443393784757849535980578777969857862534281827744605120040477644407593967925704298398149328517823032925283296699653791788937094233480792935265328441536668088396095705190220464302098422123104213871968421527867907868555890079682366315964673747711848730818156360070352969958853322789263344240742126694632414990698141048224881588499813031170172195463046561590487947119436136062012000762796404079787581013162610690406792558715772713332875903477641496814508258247071509895625924871359204736842656753911883896407701648845071996122165282250349142586887257110842239916460596418901804475853291665373740036583926074029643103598969935509519496141400216877936358940884048998509734384459003112280278658017895604707791895916765950692932809149283463757903235353112880815700139779557210416805370217917222292842449135378315835211169770601849849356193732255223254724594099830871585588739914478724294820398430692719050611922212495538546301729262937553882625100004965784318410125341886636696696298017164766025646986486195975882999169912146501766940119593135015086133209878846521433782080985993008289809867925978958293477928402862942707964611957130804085228666073373854711641190185064360002448811012089684956406016400307305020209594678260178962145716891428444578053113581608651769361330694484337637204288267114565893922154060427234504450045626301629430099787149365560356019531291443776662834602794717058426901987595582590473467812612344715198873235299139035840830461392739152229862347100773085123885929853524653718385046183371646249158575198404060925600432783801593130609075830633619762759719316076062657324942734716256601932092674768539309169524614379941977012714931282588585973438951201411017319938246642524456325914180111564087806344882773173675033051323312223756761384196058928620511683822247482691697419805778305133233160342804886764070799250752436585288419467954574499159764558627323665006515399590400740750209226683098131186716285288056602674805719465973337682814141902005143329428020404409613991738270541504248913983119674683934527344026892649658450334521061431621073242630031076532941475986184077708534283307962826684144371365857232962164954027246527060644413121722458769952148251903898271570595591804420518572602971475747359026563395332190295912404801128373372964409397061563553365336338547231277457107665736389176598602122502530142963936361945070910076859826806038973813220061434289913747927890476246221956397873103280721059022786809269484217319774817969221613949417152836417241787611979633482657387176364315480219578821869114391330421776249810613605844710005255184185110425224454633276698467045302009511719753703019429653529789393710706221325880594308909850796984383677551744880011406856754058974671845835456503342321346643018656272885528005256525276799541319015428858769197827907091725866545716120317262430318328209044227807070508507380215073597939896475593263295109400339297140629208943136057158029216223456875035506950516147395901715330061696970969468655116922055866143791977607758670111919024005769587082757383270372002922703122229597995283982573917897603640255185456096339688639276891502242165653030447254583831381123707014991346221943870099499198248263786482093482966587276173178760826330914785309934793231327302171078998871452309356144241581013978615138881738162095018522141199821843049715460217048480705956776941628524951406039734921866078976071177099221164944592360598523302891473312607015933025021252512022400727784072581015235934403577752933175509992528575631517424667955565967853831759174512056712339816258240455034733170362888536387754658731661029296291362487691273055400915217254938683107385317340935500656190672773952978365295027473911312437826426258481578756263058841629788774826040857999249317113433639184785057185399762914979182247162805777158366587022301641810402570348840486221739932621807376944718021232699487086377647134150930974189095658911658362853538213864948418306279924801170612657604262727565348203669669308938638950012421818521688995591720485263971712052146133073263420802693370771600284763490730249266633236429704356616328781112432292502175571476477054708949520581975068445908856278161951374375852528210013876982645375703612865803043967674070510208610220498951476484127594945145912658906623152344414365519613143136615572071277453662131505794600914803177789420203171773899547896165674713989333345131827144704449260963123057810663449392801996198742482633508466133992001792032034260377428869664184308142641270295154820965716314142375082059192220266762948446682231258324927439352959827404573821581118369186880058225439475966235438539335583317172178837342265242813883144228565159995307816380273807287723850617003017793844824183690447184075205461278014986923937786848728456197609087541355018674350575945447328172905719209805695011757030661173831923391512787578229980771141410533608824245692342552213880852565005507976778093608817081227480108557080617049958760696635140499572876961742915198180718950063384201287209859538750215398040879416123477591670955050723285175932153652544964292329405978850138424876988301846060305460766280428386268559294728474691035600181701231820289992789129027788893292770821247724228015943248088677596333786792570190019418843203420155234469451430669717997263188805444989222226932032422946501482322524179816182990654906142717154688103387167255983243795335297267886856543708700115425601312394385855717474424526030900022215349517635516124022251022037111984232043064349695281037168925961525696282110642233343947833130152578222689051145099822636147324123616342742481468927890874722170466127836578429745166532662316304040757764991526827960935230970832309010145099025477343469627094094725268659344865586806725011979453305627928164240367047289545106027045806254760470160472540333331902863931326935727138930527012846268103034960608693109758265497828307798103868503647909335854501825364876779782827629366935115412996118372281183378297288935051262558986291074568482747936624257828537036369633759292997875579790964225849157568091605463493953215080702944020888209519617031937070698324066271095785081642707457622229818282412006213830990236027191873288949383404842901122769786836981706082073884518524198937735953582507357822287734261244563337605744465647555622397359826283286996185696174623844406657589599108399612634350050429164122362076798198309546933388283984374694429098264736753751839304448418870994601334806016371683659081586277298261384886341796724203390214822877002850111290732042597822670026729987756203219728205674475015879290421617060758723768181388812757102711670004199649849059872596969655377235543366999496386980334047491848376277512054090908848129795796519487645772863289962924676643208192441726970470656998514850374599193798595715974366993750685718158590717958733867161405013898912106413702067145224725323927483945810646900004445210258447161884668454674995465301684212467187500423945655607735811630560925429429222821116654596726443166459792392240317826511556756682917051234563795409632510152873162833362328850878547750609297835636679868284736295577045124286575186485631913486898612195254948199596288759548082982765461477974383430394778563154231199663491285354010890197524630100649656698241270358671371483942209331237378010552616629390474654335981286914171943044034268980562623308952258677608241453955274197430582657927031797479204383473294593448767274498671069576170845432165492332050399292450137583992290205664684032212286473835019752067892643055586479558334041533799139943406872482208589755286251583887557707052658929010418069433040052850530679815826957971500619148240598550310232670374319661416891687053686912947316549870293513208799771727833602058383557590422779133669339377157577900575889219882340554802214867376115211575851737484432602071292094911380974462515443732471526311564375609786476330591010337440616980656816437836892924683707343206136507822483636973836228427041101298355951766971257517664040851798834564812020271128321135712482810449433447417767693066950367727587014621342452387930221217917208676899340083883869935488256110634566092240100706763111067870460416990414873120459844155728254651982564138262280279998409448440054763524774565671920193714904923408868192533031165816520820733546397803451111303012982062322873648541831275443865618792158342717008869398251023750350938816607710104830255190122959783037567983980739874326415602088032534612904456964578823712139878822565818446639281911539839328358608385971852276654603057133460739268383805871836986004921773818955064922413637585740205252467868477287257544895340665884818769667539203461399800496344639346438160856381723474698885022023294353073218894635789988348132851824593325231570969972956807690913820135171638934147983903646322807016574758960265692710926098245601752217148756022029157084400262524134556295706190208606389071437523937545662485786905200653063631748821476121844686249667917431735731708227226436466211358779462524514644201137421044313587308582417971751173431452626858184460190477415977268877448857717340388855061399165962993887435086029101437013148182335143177487215029153413089282809042356685191046725743203904373403732890663964216982267625919446827539415385563233231023263303042627456259432920341177195627867346683637280098817754958489096440653302769293558723812297189750545155028099412615795464539932282197260198868189392687588090806857609642220217707421747521706809346495246542806953395869038219304202609702101138608359425291277870089676976642797542125657849605895492037626203374791355142043102597902316433919262280539613220290284792104744443792513999158170351062617125190500321800468110053655809901486582217730732195938654235768923035345350754848460634182119485906828571126096211966905910283728479913721963976270610634383871708886731652165527643474860633918227125523276817139619903456523125955731063472743055378838068077120592282712015173666074301396003413828956354320138387110674495817044686633364898197759802788470323448571103569149652831128166326037343233733122776067445904608952501175293199709705125882237576190586077909142521678661276829716691587657774434574642648675946366989713499690453485710846621629624111236548249025534999433966546918445714439219038090985810892872896927045983698041687902636315194702720893277720924689196866831129992046960119045493691148678931096056374901452247245298665514831138968607333663791100450249798218844108525439692000474869583218732281297413873540830080444627666573378951940858337639445706738854987449042464277371449742146172997526834438604632741530980658064213908550381034062285848689009881767237834602157906805302796788202012217619486733071026875857525507724108149303278738465915792788362426834521792311846561080886325301952385152694011125553069267741864494968841660781215232987121869226278720607091372797424617198514893701477839237869717160575382427998145261880681588337776732903606778356454730717451158377148066505202227238443683573235932608763158512193956815406277372822897097469146659021984424803562881718534280629627100948941718996096234910975488479236328013984404763569206083749277168394972580800818623200907903660248778097369329316673333140973590064936961613184140422525944856385446758002733883725204055748015102298960772181643452657779463032676585099742129530997677665298872649024490260590615551746228799765043942693564942437450527719239331471489703644928597390548378120664248680664465978576952038894502874873675766876499888432345112599487924764352297924060409717847132415596182354803349366208408793294152656670577045178056093432605757229691166663762210312408701471712929404475902950988256514302940870827778009860867791119401721641945510526672386617525245233522102590158655044663238358573384804887004980334024715314995667284579520877385577206809637806103070280974730887868977575024008656378282997027739572714778848344042190343691763371929312992454705807923271503272038195605826429785877331045130659343147013196776819357230196602107159000534391938523407402756977533578000338803380959120877327353213949629327924856372961402777806525359930389515540696723322535298856054898507799849001306917607440420377302243417291540859272815137623557545185878175970358667388370624593154774957104599744631884006541811914413382972780441595819697875032490354704951530575701761812312620375078430073785881740897468463577588859638398046129077146195750094277154074982203158737702438539018759163229639949200925191322520741828686460114107831568706681255979241437790980837283410770927038669211772351782020333910196141862798640771175683482394462073249568674747416232728943947284962867180280512137976124646209665664248298860357542530596635056387936207096777816946920192093771871668375266567034151107555901423211391638948384545632555007913229119356058232371346294667657548512924096842274569739625221210501328049197291969589303271986451267198026107734693161422151578986922174991840326031080567077248613875096220395922399254111460223216613678468181842742166298277986747471088350247797017994597155978804137095374040533718197380690643719297418065822419603270055530376992173041025054068681236650693966828265327513699817028134218605353892271122443365788377848274372674577516724998623278553734568743994971557580394173834633681343051380505954196491533354570185390299465082798936613767940550336784910372224815552027916967230011954896224242099751076183823676311764628015074186091777049127694220753527322171581925537161961199022210048023522612115720823564368791595633779803399363951341284554374420370582600381041945899482729069784942575366115423262315631078810036020861993486690204598952261234262375787606134246613183612088109178939971507413948449535207183554645732588752846527085765776036428472489317333418734606647485511263774583931417616652964871365990467767441068043110319651016909820071861453272009602313207199024564647131334385890568571708812565716351063915442952375809628343697446626250109938169851560960349926522539068942118362908813138808241507578109443798950085363625125011210327510774574797320562839349029062617713757381326373487840735406306979475848907805883953417552088878452005463206242361103449539977663318373995259122647656598528255006745227038802838830416489647816037082128491230692075469871527473614052488654294241383408037180119576628163131525751529378794952796763877036303338354731749622845596471257548358894403490276951105853776847348423118544561561016112785653087333529380060431903616869193094881214770469759721498265345386486043909063350445061057333034675806058006805643361138826722555478502325598227012185476381626056469316035451176400508141863766610263482684640706185012616258227644011384934319976088956072410841982769748869124581941342524242442886065634254371913495699125212969796234328005699514288036764040280108355077114353287963947768876312595595370464167995109826538543505717731743051782051148797875217165406629191504222696844472296017114655194166715085883139789488572601664762533489568232100640284979881081930610908228585768458521914221601767544586032620131332827430084458960889731122714129982202739722234599296064766442627783066068142147736782419852335526869331341606457437601082642348593465363929593809750741301387434517739987018014441869990742681322449430102267581444966844062731842810498277060248302321226260923095871851141718768982769150465548768645733001646677571305294824057210001598141728895213828388046622490855594403543241402323636741952651930011586013484087001410114797661326954595736886275342715568999127069977816246131523005463135347065964935909886329649154216075585857375270693229056733468648620718579361655867521406860876625411504960937983926465966727375095797159030178427312323384639633102326247362024139589814719682422001944070576431918770281573659133602719578351503479592622785391089566732242005675994222932721347952997786310334489056623504425478203798582455869853764455782589566727092589473230041745294041589735407325820640444966535228732067766789584389036538316580497383972072047742659950616267886815639361109653932825588070365917919827379150219676750972809319609637188779521368465671639990660169478755446650256699277601228512830997244688974136622873545733894156883632740465974990582804431598375938938687669205916745478427965294728229288925278342273985695336272660046406327018166555290503121529915165135488398001654868965533175793860466590520836756961739412773099399132101893569400993091491360387251238060671745427491117164099594556896889018637394008496523980140253252189981349975102272269370809012725829575478877385558598131111972972114324222419399457981710404922462620129451650055956597265470365082711023745727893884221218590309069540298982379651832509810508612051020982529509119960228308761565952234059651459009953917020826972473144164593938822137239582628281168135384129048461297079129550157917506919057143516571030040778204460030262715328526065453068482021313530329482828241814094979405505608273913188540894305805147568885688946565264323024517833942765411078468472466859011920928568907371803297954515898317097810087846115813988496657324273125581110035722222864235598794390974147689419563882136084531735789409306249464980208188648847369994622196236208935377104192897687749648532852430293980171101273437881761138741871094863715129722411165384927972952065025207027286437950805866327819502666999513001450411826810578114353428095039145788864652411719212997993904736270258287389906051121895112099305200407972667246695019219374521974485320545477973300257498864398823143944188162402556389109673484530096379178940827096444859648471704623456790224722893506324502924008227973322588380283941539866041289760766742415887561415546686477256044233645712035073636308302772198596532003023505232419611937217027708919477624026369155874514003766330023622293481200527606145045191978275231888099829584756020646858502667550092218300739852681849616292255789564049998941016005381994005989426946657946757496169686830866229077260646513995089324800537720150283138950910749751428579152077773730433013578066980602238344123441132594737877793709085268226981051624234402045443423278066797746364058454327375601424838003438052274326531434056319536912894328180164291448333494629065364592535668637068704999242200581216739561845752297276674139041859758917115484839360217171576017910376159686187586755284500134780333603100534667647057171368282296679732600419852299899638013177670922391653556439949053244782906946617658197017021637581487522686193918909609210503515605962007843922356681991603697482219369835172848180865563599898735933573481862118447146379809709893475593379428097575659634207166680545218007610929329927786156531666378505369364332236223807174478275809690469610377864332320727964622990367818820506007356777749041551883756613358186128861521986976038715036228938408336959296069480589899805599215184479821820911688436868356420471772738673812009190235490557082741685172897638854154964893760105261123725280542689498241774615676005925548457518782447416589066689002959024438133553427313491876460914333011340248422977813349654013363479189550250070180354035118452094404755777804062799360315752566227954149688107049337451348876127016562433810015044530589855682537601654022378549476180170303563592215427328199444786129920483594441399139741179756173249949526657908431056532389931938446542187076029233710531567182330952649817328490673258004391964098220804256277318690493852988153123773733663257128097605795237638642331789229472836224994464499501614381557922180309392300660533530078980932379647353788153399243872669915917946773489635573166611253583305091246951036869004877362809822173094928577891379871350876165444113544243343558834783507023363337114205549014741487529789778716822839404979081443021323366094529906366954858901291867595219030805087103140386888261858056056533978063324911246259024732700554189200547286459249056855580493148129370853644254961596132849451524580808428525381650450946576466641060086616911583558657175077112305244927878386870615100405551854870993299127198967188585832513220278657717921380080178769911209209768232598233613427256529769204172069636052649105041445607071417286774052568998774726228339918587439877900138321458555031808434127884774385443400543755647063293083686612119677014630286724626620536006117177094820049626532359295386198806852571736032361979302932378458470259060623540886823022352702387932364295282412385192810691201885801807543325016667451951569146847362829887717796007746664216399406249716904702455585145081461905216436948687840536939734630020697856493425098086585240913470263151803462496742670645083425777959641605981807424342987169520066209016320462299570187595237218229074122915006914146083281184180558910354216971924859792693269555824987633805960001805258161832286569404045882493159319975231324429506085250464518803760248793223722436847578864628311545903942450616873541500851837045709090031842513975331411620276080880747789902511022220944020126739494130392262172768527231218719961356027443787913739707288393000454670878206861589269513857367682238426321979760551666811730183907444617772910664164242082714711516153531323842182095110550043105906764343081985453824080350719325781555489830656645899954672440314694220801830957631894683948469368639091328284364501601913351718026270038542984821479646972839682117797990434704351808255414506924247259345372451560740566115858386854676684612594177898196951419082286368919747603330383755753141375013999681762821415091267568188192459108729033474475592868079018969226792254168812778279151289437274395290511220548260217742486189975472200000701911723867334258994507440612958400346460184186821509066657114010718206465542670744890145926401032976671635105747641392183081035358945636757205313347243000834170374114440494288927730589600353043274792410625409576939772846543384629238249491989861778433967979726634407914434309890875801239667398270300911429384154990890668147568924603489444375768760278613968956581708186244761023170890474954852553651282001987687404888349330845635751413628125546340586884979743574636866169928477242487238754199933709793770673478613428479948691845176909780185183520924409013920118265780699523894379763953033641405592285308777569648508032187639269683733304913992785367280201491072859010826696694684728126937779021844767994633032612422570848213592525242082611683129598003192664641737449505182427662167436982174126073020297447826755243869587739551055261723387639588711035061874396536512878533570080053406824856647503675281852951156472146410585165547643589977590403571136981493173561149070691062204746925165668405680241362838635362408597107645097447392961547160241671347135144040247691556464367975157700453830227569497456059890783405796395790384721195916789405182115116803717558966417260959093450579201433513425616077865926246866416399026857043768833057700623550219769168702344149873616475115185298644117533028967369276769323966727965270619082288217015910871361620283561130863246574924301960470822529087871197749084632481512047534486078704977463918860216479597719169226780869549482244331120690417861272014359881991225524357317823012397342239129584690412106195040740462557581314331246685379846259119184291651293867262696353559565071033507322218171346683931895486016843382437571394900248410175625130433590346470836682429675781694589758016246794097554077129406111122758712594101783372731103461129357019813873699879122818068424631650673409674049113905919721907841002553647183650141604308180284064513372671731896320571101846734996555107098091075412563625216535592213066640405628797953371375878703603045523381958389579112208666069589347161673139676790230268767530718474779912410623658917851002803727007645916460037643707600720479222416134969024795750955877583779402653183896574762733210647330603607158903099743790351723098255288608732288538088394799844353004952856611290724813503076192215482527546409732387158963193541732568028829424284497973721057277984113446469138535843977276072042711303247018501953462888633509530502118402022135341686665401839661865242424786768955918387273741053413283531879884284434754442385244605922056368161776291244112876298930742559316336553953267222891701478978223083419002482334935096470917191825443465506878991600504446253980865577050356687411889898335405966399522641441899485500319613316847637571928559264577441860501574772943411080411640213328311241060591642247757461676465233333733364403633549677823830157632103438962644465248584092298383810788004279818006392325152677982606745845294629775004781866638564422242922416799394003174150900710985757542245769592332514312765281165545086369332159248636297914670641842703809294352957667270041226075410556821794773757548913365247171780295225243841993026801504169834812108414718885428230354878362218248494674708347937814004197638648589303864251263769602213771044847165316691309018709982984787502182604641779442307319596370390424586439610263007493183894480070656605678354914465054213644628573988624634329502436427960110557378979397244903720215256755463497435621935623309647617739369442518993572527317470253620550928898726412358817188963309637070861280243403659562781797810044553063742199619587332858320834490532834817406822555521087386302093670377321260057177657841469398409942656210448208355722207469362644055692970810963132004294579132904339726123806316317493624140716850096764546919992307662428808094661950269310290856702268246397163400081325990765387944695504205009602453083558306239720005676962491343005469450525287123437161434848822004747412479565925134564802575848099606284584841951790262595935064011218655981020782326987798437942904061763523245886278320772172793167074488092404569238859181208973292488688483250253882425607089388495818871888834814513260093441428415327958950269686117386887816108687661928470826787619330457541103751233848496672176179854383456876781247525231963168470964413322654692560369377036206668764317898915130502618622639610982893591702972974605040389706241211253316171495578245269293564575491764078500857489383086881018972615309492200583720780145527823462258667301065508067903724749134948433047043054132702777544173481328373020022683648023341394602657797419893280219269547423482923928683588695002377823100606406184697126825143017852894970302991015281754786338088795163588035173248149727911901033230852122494322033062214724534071946737642312230724092124571221682944032288336156247742808114052705425803228062411319349240141939850376095919363269436748452659271671291564710887973900646105751616916267059877834501571345216956710944459774139642263800496033254147325212917792121983379716525160745967469339428989663049332226507777845125319804946489457728600896138470081272348368656704945081073412413744625566140715818612631161278607974040183360424566906906719919860701531573822669091400620340114796147848033575260940558436537765979253821217394673498433250059819489600544719702237586032309167184931419336373640419186283783160272013266240583715744365736256911841357600480442854018506964515059711541049528533502186147335996630250573042277006493576952992843339359539473168701041343004374192823796172448101861716018556939271008040175248190877334743896424825437173266955329756362875028505105772492738806127915075941896816506509967259424230701555971694527381095617573017840086645201213408716090630101059643515707921041666232814425688094040451369070256419211732323502745591515608905174765832438926818879392054789761533028788346567639605926823077375514535394457508741937195674293402631023937890179153796143116016160695524151984561611701662624151771546248291473677834559459401957466264616372778445685678476236141890658484660158932897517033297348909166491842251452005524977131657695979362340579325603181951846161072720709969224453174569788825527065992654349965173289235728162291531429477088769133119206869562950837388734791761026814572403688844950253457735860824173386320680956386782506796859040522260468417703238228818601072085460530842507734841832608552413986265623340705996570176136436713477059217798401173621870064036454310616654989407311660056723454824913541828347059257811922967031982499066651995838527176428803004545539957631739184515240785487046439181653383993797805036769616192594900356577601157449929888154740720459302712968069901140362631401368281750438423956853083378791021568592024006055227190334018930745555464898206662334982738615045642623805201439903308714401013866545032098220063706936041632826179811758219878749396988963700325693000617003995495716043376374781854826224890645057574164295027620473779115393417454543848123441372332986364175038151786192428990149228370865395945017985912555124198827229518517777995806469089338079879211420727169230173780064121745936702778706780857599916299756985495125233276937010923511759895264543095806698434367547594848383524727073229621073916184483786661649851626752674337882673481322416401045651657350732909646910800416538948059858501727909186474745566358727511760771790523100150917722157755392568287509686998097677621920142318364687942146145216250314666444859631228354508573091060223206380315793377507923027814067831735383557488289789800332316003919337331818892708454222069546709394888557466209650309265988805509684311926575845149150872634418767897169880741681532650470583314580406733501293327811361761463062171688011914817687666099040833695354227253720866740001749082966711380443483110705637023018021265595871800554091856898560669774839980251762780398970804161049450133356882212264510622614919971892764338647229517497443763914448911837630678661072792202299926142903518288186283388100855478988667253861488172987615388667889673956566303943732358357545584544651998705085475873664047140637786942517490707090109845066761372760990399997132592371589184405020704356641883684792095489544093556749262113097452169823461733757444918307883047484508220591981157802915929962719854732135368172842943988018829175294054461476362779162181375926643510091504105462191686933547931782651017430295381843933915251010571462298527127339854258346571868821499653464052376163799646364926410885870757975435688947483120861159844513234229789947531426184133900845086608941369372099976535306540057436601325572507385172940410457058394420972604986699898945200445920679762316949106240384426639746921094950944929336723904214014001773050307009983090094233810695224518298416283418498645854081690318657685559321000539862774200744431859201841178048575010477950943889952659973903485671678292257328909920684712311195807203203584114636774941712407648416395536833023902480323766504577600761606140809713644460568417424424882684358816993848520666922841309704158604370757870841219516229381967540708081077299136067122039826150217985204527022590853469661391245649523993970575295171145290014949660857789815247938497974533588416480166739086807230522027303728088993742326633598455065625011922208212347798672849709444277300953446373785839012869379427323316062846682047419336299368193913515980934945351668335738293282490386657684782761131301429730197329678553189810217595125610762503917306768577358327069133004146726414437048335825387775240067422246666980774696471838660529799487467658056923375170472860401975501302577958481969018056129429596139895266438837884028238160722064836871350845143381228451082992583298243926287575696926389379484576499060539971524400485088656816797858130819535711640696373556014222783597897944313960526491727341950911963511062931778821984309110921976178860817283191680540954295227902209755561353444017622199564736624645952223794673497198722014894740877735333373917758168930808483692298544522992759316318976997361724244461982703008546428855222882553407247856888370210590202174592611383469075317536411644919108654889230887008087367096032058230226944388560395384252866360359456091480841234974103764672685957660326035812149038182991682500094286822226704864239139806290081809691962523103116853274049452656839637771057203446329052933163728159933972474148317336160413405196022165133732641163374657515364447835914163540590953231741897460673049233411305203699602521356608818827003874750686677701153769434642832194814177381519829250223371663448079959611340114603301685704375687877797628999180098822357121671456824886722581519273415980739495830905777170950382669103558492294660331564540648445253234932940200967941457999606758310924924218767614368843909112869158544790261262206386529391033184304740118467799131086372338041400277978315761172558914324554355432509742851556424839285288833303324610879610101489341013136074248643372329936621552736194977773280191079278753458687366666663394495392054201129830370662807266387582764734083587908449168272491679668502996401695465871945449961611222013131194896927649243877317409839160027273728401877573538043688943956621196924954726063374731131057198747000983048404618237924214233652709135371628872446521923941354179448446727530578711280927055068105104174345353741412389699242403211975264820077343062222350219455283885979572728174348723243646212746792766753074528765489030698095447550199389232969107526255461653161292910268971143135635467960623264268224724294034679939376910514768686677444153681924407444642960188979539615302872444645977510228047889456476853793434681793682807533734620094342668590557484364768008143576874639833778799865615417481212337476543234550499929305489348974904746051346192497126524657692372561864283068434673267128906535453279512029335176284414603439938869202860699074296216410581467214928832169506704738037281055864562457089269941817825819392079027660219636424828321200529046969647362998396023299347838264447273017981575050276405840007002870550797958172038845533305242437570270882305809859947023106396490421198987176059857703836066530055462735618029323007204439366803685210317067982337964138152850156867408318989038497342644317053186562027659248901060406614144096189143795484400514837270685820944423099451692680199727968506321579076027519579102605195089747971226479830370094566754261965523901098293292393622535247484018840568035968502602495550487559990586707445159056690357391729041746527903851659792948491770019682228563180416283787010143577659227605457392783274244914634313013459016462126717658469124710501728618076573467603032098772410306615101996558408091025167388141387815640757317104535195515919616700022482809963173986827518340108244320213620884564985337869130338907801115999142467253318424022215808848571652900657159057941061532764384862418554721982119866156570875057829305934094238222792445370057455038538941040887263004584814119027741853752502020251912482577259664184627996426338894130739504681794215493820435892189509216895508895181879687947471016438760384033717564991085248603157110260524512221558188277189134386309850574902048231690375014591729324607245956569955354761792393443390067122249758671251005908410206978852583018110627811594634997897449695284060325018092983942839923891976922674577190016614891708375591210226193905600135243443309399808547760475592326335805292650863996499305932965214974492773665319414093943863869718527269144786957673528544853995932880497304079658803745401113214478613325355134264297647494107266663753241218050105546251575326310574998286384359632371246985756691488118655781256571426695950055817317597945967390894757066919446226418651392427018155869044986143746180590036611141285539045923873296457381295101526228660097022512079950325931235519473744222682248460694987785627241751247439808997501710280437117263665424073698152855085574236784810738248319349259916104861532297039786279683356193753912792826548025181311086429930905420334118625679640483559586581531067827722526281208615069505823878171124061653822222506647956931430906956302211844736923513918909396970163860531575020635321144564975631702487132439782100085674249802922500070751163500279017913082586025405813485930908506366927615828821840599494941933337084567618791341626182406208487060535751467493756835425839359629959996513264396811189867019272467328517837287397715544175782543078916717047008160477560827465463198333912089356812638093380715019735352861411014913422911302860714701599196940124514736291834090496887864805140011508278744528712246410177691142014385836761165681706973986453873815805945279114687041512148593293756416428302623855801822391528763353464222206907395784460201548246341514108511243078913323955803512051991156430462305276405119192847015240390406661282407279850055091121672269945376299045718808360877075547298694274456909550270495486284990149994452373334378331984820623694561730750868455748837248879743964656609265073270334037037379084367816498706443813109337118675243339092306263494391365442692164186881013512203863431708161585932569867462664621099130670801236831388831115360912274590025632138133989267018744777640877125674094632710713058369044763546356966216367842009166276655213497750196303106732536110624311882879117406285097623566079021231667750408458475249250364912657857411124912760741421873142663425171580642060212753284853823664705596992278930062500361965357651694358921474276018141231053692062018003832585197578952820039459236516140666338130500908010774390298904962075393872604247297160002774817265104301265797362594185868232650486834881600814636034981212264579605972399839695603600331383573614724267253355575928921103260267536760425846505317173467954027576679285936261064844023147701248782458187783158609768978137608216532317918755776510899732118633473299087774259516758629114351504331153841252462031161775485947766159882239753731292912609437389797302844452955306818851684748815972130059661111922449993617333863598070907578552657411302829960160975337152681786149852658136122380129149659508381480956373602614854841928327679465795930233626022411635841668332903245473108275946997481075737908415114776750873020932906330895096235305378443234193020735002696323015297365223133477536026851686712137931771269532835858138410363048859480281084546624020544895664814632937685806577847114594652975406874518577928001610482606300246956324562918282991012894050786486837708983600495193478299937207765627614758884800204825113671277869618581392622872446585949262112885001756739291940901762178622203513698142636946674846097617426579279458113993603336167292231460480768451923957087912293819879626812564507046676300371526333985990571785816136037591641418793129062449503043250123223042653049688397198661221203372038900351833217986085739131329496898640122698425924534235874853881834130531306434258219623983142231485422758459828261635968356422276775057433641133575895466157146363905267030686268220406422535971827584433255218760760681639681847322523925111413576942970061628755344331045299030678325895225429558261093342445039946000739739746098935378451762406857253991803429980085283233806476641844435074431091873172152796785245299998965638554636959843116110933811475200630933253211688933150781451341950473405012946497656814911675912470113012275835578420573159574167687958669667934674473025665774331033341426990256391098676093243100343582154587293348828859988062737772272567453232010731485699424162003434187727901695282014612835249428437651255141393382556588627911581418670805253696050297050034463044665375435561343001798467035912462923860163502064412607987166568208685289765069245704236392937979346642846390073823931520530878454883693464534700979610198259806245031645667489139400526783002910985895577827747322957214933518550620124559513260148134859902079071951417907346743168819805087571975711840810889884893255137867313254079195831780973412289053894697019267822810179534313697704337969585898796602858889837156512398241939678339328426465001063876967210133731213980804837396478471284142768012065721102481805397235284928037587508419967267983280505937306672429559750013903108721340608617301724776071379906259836078347402789340731100530827391155175501721286364564394979669274655132592022460569479033979929156725700945675500835867203125562962580872778557499735928379195201007662534946145921997971963088764327286327898444336527577634994448914800811387508805036371921268162108739748647592212002410743310061165856374816882200384701788754515785739905416272226742070382154552841744948884413088347438371741218965510977602578949538031796282724619914192217158970541169374196357328741577890231811248577208218821303734339631755553361595415303387594682073429096354358386550100427402975391493399561597232505486942138573088240015534573401044341587045250176499714536565900161520823406065964838975199661860068990050445913282289361213354302827467105167732540144733125461214726765388729261644054078999980097960901791645685880068088614613065360679822043301410937496784286636555780546841465303781878481710085440490779638807432169508503964660693218513209848506294036218449467840415048092791003090494119132849740262504198909223734635283214986759197268039277159595239823252635663000614270849620267137839844254576045781755018339079804288167411339316751416303688352497394220193238454040886084622681133692259648898390638881909306920656516068529213729993168295180795897501446375775098337202018886122227628724106051575885704571993591563099762387885552540775955714909856922344801575676734818853609860208522558893943867648378302755793959418824813487190728617138572254317893254486002756850561280051124808190860904300000096457821267617763615222161766847960921978580492523880335734295545314607034367055948420500989185150320479621617758943320276446732165303313883673356212314948216735443067209507389538952351056825247144862806433650658707759290549781569195908305115150068957549542163154810485578493998946195212691553054839056140491862274510551720559243245577574507456627530899281450725596508957633934943151200177356574081615581396142633799453489839705065542736109131354945381876148959015895448450317589228112802279180668978272001886857706691334879463576944559855273819593240457871353560466885427931703815958935257206714938114727375558921420247692358115422558996981322387081106998976903600303582316691111128649469234827739083048065195007575884611721220210135514182526006616425138947743343537281126855224665633229027031677508100059817346053686304322656686017576097708178701665490485773773693822099048078948715472393779603226533402266353237360141493634593683765411342821155349105181342678958016607157599693134128155438196972463020267245931508855696257427394393260829178471287239929475305803966279981555666759977901185223580878616932832001513283302763679874896153171163262027245382297611688636228377258596169129448044645423818703105211061899422265982438155027940126352714236737895245873787300795864827444230765009867133961095145813044125414348957609733708002827738194065684319315648752912798486532647016036690047203575466811409056700317006068159107900984500217086873169137431929062605317957083494898294014063881049215190494383591933151076773672382143730567248758084488388358872026623040565215601222001658820640178368147112561357754056126670920818626310872400357953064702727153427126053211636179361992341379171100652566268785723863699338413996486998977159117987410719225085620359194067471199590770480788581728905792730868364833873396653494100514475024300188213047689371409497022989800772898673599948493999567143616755023521909046479520037856193034759166247901050806833384371363542912076337452793656445403517182252541022523445263939642001579389544802488020900161584297067452923167705886874948578123727829205645284840454570167656741920609031503984353452651703919764622421020047015871093289738175077779811270500198160973390327651224735815885666012280610270972874983468613619010082415786816481618817475014338018311688925266616183910873510181654987259120303178104902628178631639931575847225055071643645160011725093456126876799013331509571050596908744116436294031066051391425302160514112544474897259614911222087161894347426533071515866542561333661335629113669821902555095071378335096943768471343423109101678700345359617457115944224283905103798653181176309312485518849530113161042454098403366307586122069948664775441719192655254933248342101219261961105526588691526700883702232651531391162974154067161483091682466973177957403030045474588103510477175353554593828523604293321955980464267085724066930846750450376929648271473736518125808341649235243786289602745846192726644785772221093992644120130956703972092017176703540039305004138925446661944141136835094328686695895211834738541266467603540491265311697402509460587036066039378612137794277461614590411995497646434510309760541752582403185084206014620709299553899675851447414511583057990588967882307785653201817590081606089873010252749013042839868863978108841078096775201042614266297413814732274112952026605954303771766954970425846316149559254705088941555341500523141632047806172160388925151705380108393661580717511439893737385048444751915226901147921640118341093241956954740296203785673724045159830247141381625396582035026772090753823763928817955397693625348887389192338915526484672323366409502061960274603756739554368846618613117290806365142995403783914668170228725043325343497618998302094704508089265960262854881560082438600974938593575999205256312202724116750592474074681069643572187160397595917301402921761793022300678669077012484007381295978962173211034920176081467481372985298423513810534453112663526632182415543846235994648265058135684427988665422146417841245836872944192561289713385034897093410030746244269262141532155193168189494894137721838027376394474733210173014889200570720291321876729887903179145208886407540592805054816412092119949018178829136269497591559032325871513399446108532096691387902266318355533838845421839208838656470937689287485478743442550553543636582563515125023192641359413319948253237956232842204899609739602125966792166130522089009910135216771167069542804106745913883386279303189117958049323724422961768698282654622164179746259117282586942557525714556704292589856881198154009886026345912746375750080417318014537793870161951536098553700727672898045217497676504731646719062733325806255299893457109061755689559601313318332299349153824644841539249497361928694080488287923000060140246002174796721866012532701284549514698905542460106605169153777935205234366500429672512284439223356930103203049964706732672087937222208318700833140104398229225831085341886015954636784797690062679581312038467639147940812620215525435564245863444995565284363322556443346359548781711380438571267552119241234754879677233747964217108164734829161261980781542545035486098537501106316379261989609585228626832649862727618514143804729851386208545302914289674303260164011126290584543476343913883735712338799676016226015936408366872610515467161896634087986426371150748822808245035972336445825112044720585389845289309214427082442819225515965886972833841931395604876161823119870030265801711607300511951530667775985414777745235326349554190351351065732734705836921250414663316681797238291190547632623561708349075496464750283983095644838234248323937346942480547557250382923081387911707954455523003020758073888966200031022651441540363254044262064672119276082001940895548498765202517596008867678997922775187023615880810667144094427051103193744875834484950617440490527466747109811014749154492949297118246359887939258005281007731678681813304228117610150218639306633419914252046905065808961620444111720342651626058444085427349676243099038219036371418213845534368286324741822419969434104286032055297836842577943977359862467644318849756250669738707380829050432582146628312897374854909036561572294282265317014370307956714011495514887600979417766270493784551465857309787583997907673671712904407389937303140530901693669889884959160064229386594717614336304896025529873778898807434210570221013166359728139012318985963167675183468469527196008263888899483940686780689122543258402851482887616888143089396827221210304078632396999145177687588595592469081414306252115176931671182970356606085992532015306737982015455873953519303068847083022422328967939330315995138823441665858889313792898341742392489527491896769863477302355416507871556659082662458674045339002118957236843017229248363175281276806733409734119739351650368532389009192382250101615477744836912894324526032754830295991574961873359014954398183790813425368654718511369485699316037699873114987385919510153536454958482373701897404528009317185059930060349381465711763324433087804164950577550502846836648055163493873500646911882242363663548122660460080072760864412662015960578924992850654556153521397760972685574372101270239136825044947115649937468737403918412715028922145437582220451103815495185467626366436204685201873757827649050980818249060861019581358449914943941099593960391070444957403512805438416536498070281555833357640088324421475924716128459631171580854256673405623460451122218633262136227630622150109138163261861134188845249376244016498341919687590849922882249235164955173449091918030558910048743358871863344461979817448748209924650470244238460194188968251212236449962706920662057995635611406871475828123303285284579641048149699078332481164479429788734113547545743650316786277462837960762703259805891004032417291779632263197748660735678962602638398435437587950111680109781529164647747443554803325660894957817175614457262306932287245800171315499216950199742721106694326670831946791377717889119305542716363741148039061157782554253357855805226945685434896361443858944729085907168458638797644662031069086431382972301213090294927512848888379457685802339197071086890175188616210071988358205209303803442224937727205949641365951254394189512193817534633541705963415200226100252126198430553921429176707986074527157100256957912832855494935725405870932853299795074151193648569608688740262245458363103058397559315710795834379090872783598909005033220775253024943489140725934458405971238354071923297527146246528049100423925994558898005824550339953428004333882487695373003064330281394596351578500044596142019919732310394229508942100202283588015691430300649373880012696655769542462128486035876908844669360528861243187609357167257705027652152315948950009145541114068549913782639682486464641017167219396941214952120936525499389459423583292734081054759113185434716693388998322461133644067102721890388598509794122583238482832534406217584320243620917043001564593373637529077627742644030643135134538432427297300761679170792582857944784948872260403941457714481525445752162019863057402358851386397236573220767316226357182446447875026089943377667464777065591440566569290148765817801395863140581380054164865960415797337205108056058210741128502383245142117903373131053571589320629448426816250989418313496368644207500888631356790770468948228924480833838215187471897201675009529816946447241950823663835298515045394885894562950832725832326422851289247733255453734608738194394929870177189689757391551481489019621787919327287149385638839291336908847875703879014881936289800359324493235796801801513541881368410929860359003287946665846852333832762377534870821189723302348465414749748319703514071661585618859690135489377471538694975964913194011990557973673448236601338668730257211367249560393749801222276883667040648218386849927887308466042803165328872618075345853721039897212556741557819832275232929053642057783323909572135079260659782017041123463825447931522468381356644974309243640751898169142262298118028666555179402404028755957533128597633342352788375442559936609486117861414327624822183269179210596427557976723110092888894733624689760558873026362203968382117527412577881275427735123439943366869132015468999707911278033962071752577362576928024583168801741167529909536378441309357129469562919223100614143140763645221047990713864297947441314408244022798559186484151988346043111243314569883554412184655349792960569259874959260436847933412946241709176842281598991312343421138951517180803020518191954378951117015300427103367004926831657337341449290388379267285558654658771641731012653154434575716973151945872115251511377425247304224676731322081743996854499808474781812966139558696062089111922180723191481080917139741970246874772657567968433798891596143865332030424060920834167436967713334962084152878356930001855635122457210233491622355040211839747736956654067808307340913281779929482304695971073658140785397351731842561881684020904732165252937434408821774888494839496758991407958933363606478770644684314749136603927974116060130601700413129494143322064319458957935098602949530157133459899219065817643559042100709645719410354059411108298197827231590846626843882027126219178456628259543070217785598289954156098977688036567462295248282530905962504280083186276196851333866813983891881136004938667748773552232830366422576877919513213367697669707713176948204765194473763826380336633191388626809860903665404767665520384988388448968554670936825177957874305736499382454260610315986008153644574937185107804063416834378928865082527734048764339637045778673031623535163558090052974604308516891585493489064520832914741135939490688838300246354913566958028564927726479976982856962447844249869410912577722595664716682801177045510320606712768379745864681051038471928854981918018070595179492296357981347546868555282107512563720978697683400360487996502028199296395191179616535128472383507490061965428127410777879201513034521898491094286209049169160983542678728620557631907674051427373745948905183939585907067686705116669835344974702199408090571164371209857433246298111923971685906545882068035914316276357409480264930151238734858888329561695956933726094886147118554240023730153310752925083575143610874972113862981518613195747201948913304585131537417598395916704611518112037940986318628563550859667135951321285356441249108831957016271286323251542310163540788875021086464978848141272068732351543916472225787000907037308171496722095674116482948667177804369692563448066392763938650630618334484197588266716729490312769769505977151507046615414735978159638820526049911213949926413752545425099567244876428522114534585083391030596567045909567777611636406417359586804676840732514429597046077766629419474238983267043405341561043868895232339036972341479212627155382916521523390061946242700847928759450107386165083540883896848634248580373245007784343361762729502372892487465575876448473992343815341210745326268085462623054357912954679612598777618313238192740108318426543705036180735737703095686741340012673381855898158139247507592548238259327448223266759559915588561393313980859127766588157662534871474411523676485937583801734472037253012081547550673539389164524226644164676127219640485501848029185736466892104058357891224766779837740118525584237101932363425639196986606195746099390066475675636787907180051222307991949093171548706058731648884391387452534056590225026876701526162247172504051659758693306796538844669587690015848582920321560407492473794829285428306793482758772999155072393725986717648089532214878591520913882676493771352386185483048021688414566407404931834022846265661933924016934395160707653574382652803042867711958777851310503927683972623667136826551745683785948545173464655350443601890963547265450828248182755718617808967893964086114827206919421615446277605908649803902902078535057024065299783796145931926944337945262821785903131535499926510363854916802030578992365738329071137691563832692565398552348150816272293341364354694910117546696321696642990059360455078138590956919944631669973978508390053248039805327206035985366740943845015797602947514703748451641084622242168838928734856300473194804655230646941742489082967365504726113064840887351900381855588702561343451707232693812965354861709979231139121616550595634093998106714704723447896965695709576183885830891566157829978845098835826045267966022115242745545552926136400526394481242184329471986750358170007244492268955353092637859587171388814025011475939275933373458971920311912321184322813969212402165256882548079424413107598812580630150244686140435879760116659386610509670410682952990512857006403339791089927611510695131930971215218642232542541074440141079739628621197387102281009973654253997027552178322430432915644925323116804709334782263216817796683576628809554411034854595614912127610108950526904437789329494486370574404742487394452624203207797171585761306585312186281245749855578217582437397939713983489831586679313343728650555280949649286204366733458491285859268629284719844670058196183781725072821045376267209267135165954108640403151573018213219405660544655498750436933142586323680111510711318069666925525469381708920827171165859899088496421946665066800182617048977660293116608343878173253755867960437719321348242263850244022600557899508582492597661331839199120918426993468704773121254631817030998865412724625070068351699122081551886836845265983066040442785497446006165546675689819617897663373673447061561383227932396782892063158348581693557618886216648514268604970621267524850281019614548287387104412817015926082067420267774516807109107555062179429565620434437893478632660439540404836945776137266887163396360872459539295397349644050842674115046985729466350185872812160635531485409764735107736778723434323700054689268750523046114458648035816539164779761358430388612503045879102623395803910080182552111878304455607357458173142531073724027874894348326991491445452357894046666300639888594933244535614369662539446318280677279533341067548357628097491992491053163378774091223549453917045677927950503089550831010268627201666231569294459763622764470586539614807933848572789891973356286249779518302627720717446773789773020332605517059120937159899437725620181547066769582617018005968350205074871239682777107557628879689087225733225426929937125926261045351915045726585141896408008353549138835883080891842949580029507265923689479825653407948487065673038317770009179131285733734441520782944365382446657768400510184874969267184410165463098299942063136572744352069382675775306605865435473762127752222879851537859241742015034792939696740844298182122757780951582657843504862103874670556222874849339413255789903579455936009539489383555923788219914049070179889444600081284716456314326098637136576396649720978815740743747823110871585691291025758669381117590666213242568301727196249760741430134781482579390636063110018739569125295086835738464120375040226043820852929104372203685693095489331606031683066724180092697384487855645506629139101444679986337235942260522502481663126243180890920054502295317989298502529991764078435297898626833128492658483665567509972503096703987451425759855050274892136670533591385281654268862539234805296368702600600712729248005764769147047181168834513481160400057395260151719300899648495129682073623791261141243565007051219289976998807629122561260883200314607626134606717423665380763589573299708561400547757472974372165239644565517841301489306274553642138957538102970964329716049955664951731516840098929788810742660971883740739628079676902440215010486320372167798908497534805655820369767936089474645867034172357108274537808350910659780208598651667000702544897438486885689253271152254675773853723092629208303016575853576009102279786774082365705329253261815825992121174975445286822935226765349103222380190621456942809314991408457738158832797271097528738225821854521235630562838082572034907088782810268856289125878223231834182160747805127055797775944037552837633071033802909965792622195494864967424376906840004103976061695000090227634802587095191593200493265593276811088637917988575263429356680214917434601060294051824744389738661514331614084281032300731554704751091607942533193168526869327971383603136326844952059308408958204612310134120786720654389209529927038844813829908346950462764243820806018145343961560390778257497266343904474554235393618458524337592876992764456723788786185889129645394284979217728273720803695151923304279691654065755696677053821370972061850411343307869618164254485163856645063275061494227366831895911051856956323898884625924478125181263803501341419068935614866639688546648350044360398782450649094918002223827252711490484210343152526741764965181270067542327635566725893315084474487139281940839038001269578657486473030861323928721423485049413362919602572557779500372234878311562444882625820255252294139136475635879342316469486889319467444288157726371084650137600440956212245156398427665761597399543818869527497201994329491838310095330682650269928585806352756495027270161327320143691789175793828378898792029560589489339695455846401991677611394981765793289091435700694233965080473338682049307865515718573953797708879372585746523900854307993630893449455519923114150015985038235966680245248372831615097563241245893530693109423942226982050743783511839682498424819108086483213127876777319852740767978386125373396234276351969446782116502875691142897219522080748405002192479959785542763655067577358119946405871833076080891958923825483336884804521050482671672909209440204237331811042470252296403998694445004539715824092997775840761491920418062481099245488553439637507581085874210703226656479492261221193553191679752873281155711032293178423960987730888217303544635114964235587113768481655521346580123927129759399522333486888110350908351062094182036033810475623599473543187194503018073410136142354755543067693789044745376931895670958488340329770383130690678534077328237990626128070021028888745824932104285358530992708055230830667509193290193304174413962282327605703020186745943200203160172851348130763772397353030548930992476021064696021879929011784379833190038804743065273965873434277962827102931096966014142182093158987526693221850938866756128637833524630335771857969749986871627776202457121166610923243710643021426943429913861466872030884292169820562441333230479084480755019871605883453057823863328888318843797009837299880864777473047165400616520976195736479234468241856824365151354052013378374501546866597212729031640860823549484835462756512587914881656604176052023733885672203259445335671333803558299949421118388790168782967687789856585150220811728908333019412000153530356651055043367830023133962772824012889565724663765878507583503175815926724943505573534253115423364850912669954175813309599470820023906319615092735983277936505311358925391172760952543092693143329421471034711414687353038772693534167457938557217931335739897871704602080275110827366355760621272248021459911878773064285585627663464592261703659261799012840341515716127061246428415286409772580059654599779985742594274703437256424911178384849019950610523888294209809356912632188707099523798524917121255843729303742317046241423144125524323584500958381254067045995473250562515954193643918013935713082233370126451780451675548530544024825159501020266384930065133693476337704118614520376406438043661321416405397338971772494030646336369222916107479800737533195467732574710952118043604551237945959724369499669415746310558238189899205223407657500072494595908965194730630073953585995559694816137073172693263723244907069153432312297726733648885659448812495276544737588119066732432209989250097047784004270363171916195969866902842871217182477447837457469907528628538321765485716661573602410345875061759476343123397787011201101540815537359616378981085495022991162935619417121932164198497783921618227191765357157917257954933774605836767030162762958276254936979678400428848984260324021498484270406718955767680383023494170576618761545032488364433442098161342227504023097591090365805174747222075226173028882131274650006503263954587297094452020843253676479440781081002556879620354918697759784684610833030379893696406396111580169894142826738938644627853032179910088939094237211059151010341112627473815659425985587307014472833943666716880758116010552537366619177221310910942394873987275067447322318519573739445421861952302396421344025399147941771761085418088800349249936654380029305013116758591171521889080225941120258737636411108897757984833667751318166880463070209535088826959532964217167594067125302863382179785806385573994670314677739792756406978258886691688691496861424735578469496899177158173172096576797209242186301141565634014871642733371781822752819931280140044359515911883995530391213158566883065709730612473099623175098004360883554507052460162882336273916875802539433738595915140388685912581335940779958254448979215971161534676039003440634749635739853402810895932959599879238922053935413038243565587468241279177512147091574236228953370469006389399295634128785934499164144497863718424501399888177786502280413088429141211810645772353863143318791264399919713835032378404795444049027633308611724338208138735464745543150167305149026220267884508846096795709052508414446957422412870010518464551840816877159041557404416843291119985453117374593733079564340400311928827079778133635977697665595064817562574371984961489410744169179740747480606573650546579615085142024352204451906693444877077983738666748551541403850842668540131227363718782981766673932763618143071255259505513505626923242391099124716785864880165779803650406070953622823049630800085773153241218691361031340343198750043842930378696952780819894083710700727660420896291422182887048652102333349067746051611446854793703778508580438732704694994494983199729027236086265302851190193244705485934523776393921289071869886148143093337641679920247736198614686995734327682481376217783869841722167224700909107926893275203671452873321957608992586821205300723289285714038648705091177240106170682870017040720425230546387857312306881817333336807937921399871748561796532161881535461605346931156932589981582229587375723867458083762297314452666415924081485610301988837529000025054461718245552028104301194262016288655316084185244519978709619564062583110219630367704243756536322529572091682017120352697657779379598488694174304234355241516126599294598752268985827487158304944899055996699883125676172974040724687791112517074377319224618787876854131084105731868227864010076278075604048570512575552665044829523876782150769838478261424253953342056868050035604153897384272706664725809736847356256383777611443805736928818170005987267850756719813441672934533041120847256478850156992609789311890635954846281390753268339884223101282342431333089228482547196037287355744575949121231169132393940806156139161388209338055999399761376750550568939503113152400067937872848024736537036296185233725061727552027542805137489741341538042444836935835400923393750556919091949800351295540575132550708898065584869908812960753830496019737161197689220867622992030450220354881418358325400176020512237370208045309920860037216221524609567044694779337654705107557353096593983160617219335591245043298442618362615547850280011728862890447309342437119483598623920898750077619071445159956530619643533412647116841256894298549993180040732239114115268687201795677271369239836208134821935893556634310648441245608094998961700353763638050007528888524355999551372676673325783565961366038201244914509145195785121211513690815289999701314555366512268971227425070911329900685576137867089908088686500723800908577519203636131706131883725108291155670859099385034035695841703385453924428942527222260273402248055247642997936577350952751844330979132280824746857722977121799102457595903263863702138028639626859382197960759803961617763737455175489562703776831692632557169690560963978019019930200179348144307672531992360149671460888023666495985410582848152506817101625290807193379885429081729558682437225793573680850086448592641802521218510497121944438928185630723444852280588804025735824139997494869937515321310432549416400309338397870866077658070338305975738889969739000390873330553484729386079913453503896720995223485205858062876300523287650475288218508553405462701997471888172176836132555874898759276945797114403189672701559685979888147505870908133089742244597743088144247189998149003314375916236887582827884674509266659418051682364281350501708284659084478162632459840725130343542984963612816471174786681343115478694352410173686269526669691974205365934793407549339929674231640852937212472267202421834467515016797237392343110645992527516930476028833468260552465143031767921332084544499179749213440795928045624088280664810988590481910529859190164066818513430900836545708108879485766045719338345149923756945368488895851908639301300429757691510543193929464377463810765995756564835184230797778451535668607721999011250919471712008994257740816840977268291841133535011603225884893104423906598319585528289353728767642766599501369882461506151454842513055295290978365876714493597570075430870699671960122149514328659888874363152085716638166402566916226729923114062098434798959513117965678074813053848767000815899818221777914714193046867514500852012979979157653065424431972733413617484778321804927985168957892261837331960353963849996483399533819487130969110819523465541538485821480985662840046957505312611361282252969526823439772497656306391813904429598756355554492473590315134039581480646904933269955599855002459107484294322147302813812699743323480880396115486643645037839441832360577325806452983615349857152941555589587268129658004795868477371731809332525960181914201668012594662362489205659437436057680040544677260564872618362378715963678819210455731031245615180733243144734062752657306449298102293056160085888032883363795368192427510801115821877302282936073794817190561124549324831033460582598859824885245229925711782368517152386407831317359184815801170379642113803170151347971320797366796445149727011022741671960915333687490476207423633755769500403771358398561861259512164387981297529315121729778109123643441731403993956162330576564077551123522705768078986663786965373678324615427690133688419869562057231601200300734156454730026134820496924591848105617373194956511462800971326208653054173360434956257372893815637321957578797770229350114377081580526713209293496229120603029429943895986289114560266025172863757386475023967424494277252439734916703845712066418687236620952895020468763485617892244013643324388283731019769114079894284356364058002864593381165136454339460118820785072946831982961973478905079615454614846063174589915288999172726787466860446628421233448013500344663122692301459138629603778845369044681605250845996308374024781283976611340732318386015246787900069240535715830404918276582834691661578765575194909394683992630741257497954869126836866497389729280135629900242320573909274670611756800161343178996404908946046242091738308331985823165359800473999948031797256803386175894099900968582601295855447005929555812306789838960883120542001278675103282225703201406692738354078015066868565301906304384665773330044222431231728624886813078395454343661757051607948611761109118409491088438578381319348309476152013998124818772041222307432432444242040205437889319510693233670371060622749194807112153440792204972947954673448505164198383320280510914225301124285616338490348356165224716204671769464490332483530201150263130838664592994472726684543799118085185118259391279642320584511268695461265631391798496033026204963925277938244676975119228626554541682597947559745209828164343751793466653509765251889748649569218149432325448085911365839195808547511428930450791217574625064215232941535023294340149257879826390627480928439828959296451872709821104115455135625321230144584912380721255946744917914121086859192922326573058316178408891855046777950134875485750506020312777745740685094749396400947501026840543245688457248869015647519014907348228641165145932997685991413248091020840112733673232120167348942044057919590132707769861165572906931378822248990280055988293688299969135211940329598090112801508604104973750002458709343448951771196140150076984396314157155286011678440905552561272616062627394365830376286913338559306232822425708978719102430117048374038354455936338699532260086109893521779696719121657118409350165555931536079972570887113967045342498660747487987566609495146845223985756050800155881520897013102425806448132197048138878718181423244590236579507519680025701663273110107466154835867183960028694235593647747881417270284578541723678817890157820652920051631730066330491601286190322520478161408126536683141452487558604727555415528949648742710603458893014742964900103537309540018729467774174340975473879886707648190081146534975205957808710756114556234254623556351307753694852158978992227964193727283424193535432056020081463978068322740019458255727085175543299614454916944783202350024549987307622268226670796119964085485298441540281843448811957076951599166757326940421669032810423352383700806266513455513465127783712407697080937644488854960290539033726712890855625048967083013429637771947903432553479905271121844098094394351271965190493210272370391526426665017177438806904888800780475734145556773574514900395615231504991594759528035425000895334339145423550702238968636468177147863455940496882263819404413978030907028191178145873781579415684766764088589568630250962893804790926112565929924660114056313517033942724114351267713629087846721327221675544331532705712231686330599277922012014200346506578650059214873611258666105712798736803483405458836310621434028884570996076712020760948754677395329520518544575109525520566994915629465969420818542544620995206750770828549590858961668066884882151221177037278317379934135037687318352685182738142952847262897523393391912615715275226627994865592927141232586762910377499320361646465005575459216526081843596212967046830808394303157627746107249415932941813553549245620068603479233577370218201598060089051649108589008704224920448442292568706497331431544093373327812413738179939294107676899779627238903797920314675524948055873840542822168518428024099249635588889762519780735292366331122059776176322363430439006157660303208884735834467198648369387253535406605280356410151308579536582641145606737314983673307235325496018152532735415152836799087615836330305138129891429617368890977145085560218347230892936564156537015219632109390330715842706382786587834853082909686008125005849873879481130145952110626314054663469362348729322490489636987219121984419100778134151024463419819854972233342798089023034887433927258400322672739657459728265159670836005325221092335156264956308874707540736265913095708448789659645279206279028428333834791850801705489332630850106477519349875263728264329512736142929663023351523111709584978979164606480585679175865878617921887122886830931351361900388561272723231031034880014596903104807749032434215102106204708161667520777153516977628957171471339142480262760797250416422974788223249603077559021640210305490978092946717564476115116008386495169106035292632847234943610940055708833406797233572833655751391043920480965388577077843521309604726826135585864663986698334054340446233904068352455898236133120220384644743946928229396375563642112477837509455294127947514546136646084003105603763167152847751229477702510901657282533333753594243421566376028882273663445988330251611948822806132679298613427818553855397472674985935639271032254139884692502522993325777087303698066008893222648441771166774682213643732007604272630787789231665551301878667637184357541947172546384176966332210977407394674541374778621382100867702370247666493620902381756014596209835304955266599105144833271735749551765010063900257233138247761599235808693990657371252396442978831582499018458401304852148093390211354018737731387483322861951067417407587402248035290018775462554240201151158182108731618041785449820558653907810400199487592352174972522596593734187041802238806044159504594890089076472283415672003288284557268809131880332888803750744758996386828787681592992403535756232974647288263453651156994523275021937780950009216763500653737653052801245862741499280914451270401532465573543988847640250159749476707348880265666352000826225568477109936623224283358773866683580481571627062813214640734203625713021905684766240139847309380523132126128433424259155203385192292569211312217574671981485032382225127779607779674959249675020233717477206789048714644690987538692577753660562478884559693597696516127515956782253031362147980968863813384728036651662910807456402267113346816031090366316890825844672458345705758292368447176665229880941292079098997010941359962230061343901456131677402720962756210597514820934645088888195718994770507871133914982821533330704495121653695248612709881561119074007502395732949813888513084559154771232545890552281553480605404240531775664181838748308548664746460761630934855168682870048080826467641180622521781479811703161855254427849421670538897850558689845400892233288159365638267649393756978844477805040035784543927207856582437467917628695167728319853898366607400791408783254679521975269328948014831725613976413638122348981624394025540921341782395769777440211734449983384817624507904083431982490888653506083792588724360793971892873178231756187007463964352283157206995074367189203477039721239087772724910254409204095598859388736105543094519632421214362379169722947359188196150861047676367919483353708816031789443711775196687303677713560839616021950364706679784714005461143317242169980048218726609358737563662758899380388109493727861935825564702888896842472774656510712982199850994335271118196121171540799854466856081877608931277767027095911437622321690217639671121420442831597120941306578766794567555104702478162856987854794589125890065485702559880956940038881368400476567074951019413196867276394204894716455991491636585991843959864451416836039776528298685542580755549007108645133691690542301462920514804909907552804050287194523449072494616381221461105439750771322291123344981359584818421214159566451576858919743154865383899659269923201661586340969911966527240105616282582342950443796565230471080952297141916092992940518354991345003344598542856204516128074276619796560196261630324422658302450898107744608331424917243415663753943850400930524766665698715518104413255671528804074906902340794764254195721918390003212893138140586756713395361736726028650312453696261638630811073958501790884184089050318987832129814720690120027294017129743135227037243737337782619043498171939730735754552867584852698104302383917778291401562043201683179269496563339871493628344132753314810027567842454364421913099600961713363291907773801643884247860730942499458492141509189787591205708991162349990185158920253481467765207003155999634432034076561734691255122242618300583323219133477114618398323003667330384436359901888766619440745282383402538660148980797901659873338121044697298337883457255362654556424204959300852353065974630130083147455749789187850134561471076686219195627102130352071309914609305230780171526038398593742320748560062644965568096851068503376029096695007950526119156820488036071349510826713467545754542385917555173691010703992598547907919050284747705871707186975848527451669540873522900246862190366573782244109506631284476972141337502681675768909342140754842881406334429679291102595761353487055092654700790474289775372289485180815308871649947235159203505738608643857997504005863365704591827219586134781373950971937379417618086810655165190317999664619533539398068504919327893048979114121295214736565245479933377266442999011588415791786024052266746922725324826540323918643820799908317584654465133927480030601541913733748561389183430271395117165968578551860881009491163237483240955214028331523691712161684763403128916300186906902685438503922183617223105846818335275123270767045758059138721770807485155852261966935623556194882608682776016909439454114047364471446801073175951619295293558228046229269089229796071656553925527423555800424427504653738643623869161241754229080886933918243126305696732542888376417673544753657788279408741003188302803500980740597206162118163800264500513951654565131899381560080575289618612631929702887892235569806858175909832518086077778887838706929088603705704262832428028334241869002220602381748847277569068278769219311532089435854608490672175749363217202758224405910268401102024863949176629249260094507519849232595871358689481153595853450899969320497349587997716738690851999642660059010116444337441848541541718121687871897064911433684308607559768344992506422762128986068976881785968356777089765236100571826234032972204209012895498283094761745081725695037336401644954784917532183665891526902567803229978573556924549226071578212776983766781290184110030120127200290371726197287443518006562262202737508865816646958134540804085159670744742298940679183829717481675178630386147268810608356102194205002734393278829288281872966363640177128487686984336121939555895178827717409328618268401999989165453295216535534190699417259562008470726978386013157346812563473124179799748976438328344730685122734742744782566684440021185809032419460730676039432052183188182557386804814785197997516354247379633570465430529623362980712215770825320489237915645474760386025028695213604743380683893708241389876668125709580736693699440445717623445292564860940791930510556952784365891554341945885397729881616335718736879309447805315713763946611144121679472365468571917428512830105383096338724774735211447114465380437596208071616646631851115419765245706289557248003000065247782386513234450221292241010448422913373286666629766715087627476271720010881071030183283558138679633765944559129456049050387700983472389726761173681560534521676359594923233292487878198942674412053812368567586907262387251398479348179421068893218348785118829254257518626191437713864309406422739734146745835120010597876665994063075031531444510236622363566298533971577362353773949527656766176357323374773685947935978267051345887677723075086244928118264899844125739107000948924778514386247871906343669951052290702273569940171446997203276700979479715487448445733127601353029014235510734172932298918403894723246161190528931820404716848725935607863878193843272825049766282228042212197773710133402500849347005607424742455096638698220580358376013594742541886357184532478909153408462395142116125675448960241495985237955143553924780183894159403503792246661727878384156153460038520752420012869592169462340326751895113085981304046167826525489389350795852301505413640902575511177244276938605375344304337769041010271360913672604640002354322324831477053628795136783781360553451009675786578946704842093401483800892159378623163909508300595666290828247822553692629258532435337199143458752559739860366577148596919612812357967023176605090452921209084682671979169793303997669612573163127282836008977835903450242583172767445485698689696603205091929376475310573527112575956410577224785876751551799126184715442441682778692602497025839516465958609760672299846897119244935872359097690681783583416661069943987708645193749514738425928933278103710659543024097653800536124684997986124416117940952617992433883828596319746608831504709044944407095729618939966466813024695960444148137193666064269494964330707108937260881668164500005489752264242512746082511709307609432723018064115592721594246911184442984227065261621183775348518722021670039654176818931674404569907168005955517504872158262253369567251826746886294433780877690336488831481734190352146464915732249459701057895425897259978648676790312693634990112580662076496704635798016225331442197691646835854553310616234514420916079753460701928452345676755258752394628199557270222517890427149267835481793752971052111379604879141509052432554500741604536060108432522980167192163524608771855963980758608582994811974065295665145568865650236180390990410808832108918645456388001011857998423127829919854651148717349017644261751474766871306455284857916807829912972374196762459652990679515261862849580475748445911073040840051167928038683634432503176173137300633079847733448483928015855006353298395317517489677080770513661646520857285755111312613572803812656077257215943028655661905912633829001706272828749286206620836034696206387302257250612756317666989457779286597576571170720032022674063411927038939417264745702249578114446277723733246708352580395325800229330122872212533224842831394611181688957769383111683971178773779079674931711041295618653418011908482845587138423033218140299476206299850462023266159834033400368472855670271920620963288625551626944301663892635606075778382910915536533797938579489987003280162543996803302123527401913383841484491744470142398036955471069157394001491217520357902362346868229533602930660697958775152236276816628224039791979581161498970852178331710216266764736136004671375617289339581437837528756554842124726636613739676157249005177729349486143581703486030770796857362873535891970910880590963218667623579621058096680023913542136282280305342258057642776165977893691202284901883224494876565674054641062491837506410183535206904938674926684702951802604611925869654054864312902927866812736191955586314505565627483266351474577003316806623078521139424150228466556794537176737870935835042471515517506019636429799014855884405382277572262686793178989166734826618525974278112454763590689805543315830075029776174488283380224024862124706269561211336433026565191776094040169253755515725547008484772907175722809776915389828382916063542465213385151923451120626753046517994058457736898083086386026859729771831396198189792684913193169274659020173001826165602189555161340168361252470362187618981610088700274462804640612228393321821044076461330036302454240864987246990517107213245668638982573367621046743265154008923993704472522543762423825371671714845207634498732308460668481953719454599661631276644605116622288507485581451950773059841507507816229961741167922166941881201902557076356616231587979636168580192975468102174637383497919798379371541919658575878191255899773482262235438677667661504572883908352846856745680868980259649268897669153411745719382953477407461763720412423711629164679004609665195046598227247866090937973468053298784403486497005106150513727084196890768529676671940939113072747444144557074345801981657041317090713213503706959067281412895347162413317343593261226423809356907538956203726767259455398990232412674521376294198907233042515798425853690226547378149284013841609933687265446635053060424315328997460112324298440125389566498194761828467037414007451505076110886214254669734140680433405101006703127111081172296481720496740210535019820238546416972192564474298330809034498086800885453093998406974032776643906106922842786780040756852166434607172692236744665350411491453143566021270873581634906690559001616453441731522034218925163944850083683678638034167075232494840622091964725141567334595049991432453515627447628496852310970027988940431649784334103208858408330360044282567972684610123604382372405187058468289439162520415355875609448570587147469073001358823900325609424170986607015026521786926151415747911646708265344674425729621096322160572332925495825337639622629418233737186515418205012905019257997933511235555394090954797871079538110268874704178581789990572958074022417895263299268538879343701719685166745447899343329858288558481968625138609620444195018582426166016449917760259990615671222337444661632809731737548623846755027904996286085192886086218282743833543737236561348494296637214290886940746254462690730663030067215581774056584366559420113610451611851053590451358272169523124001824192408473924736269449831488233222748565263178845206158989148137763536962025416263172868984774892068707161121398169323685620028418144816677462261478503868010285898429238514480273977128327641870910547717356286633566361529980275076172081223078797576958065322284957899896476102317604003178779603277681374899670346780784876430315897622402494720482626105790840909747430505764540715252752076359552635639820172272257279273451890624169549172764003437772743791055833465765177424342678239878079240533645908008609346567998251225812193908381444247074154782414441949338326656904548810543561085669343688589747486005446587669674101444581866282434206282883576004077419272838451513681291648054523766722865158057730925149638632119695781921852005465312421660729739745451516583362729666629701024720056363999583777985620904754204728334683554939179728893251789072723653910034283177239040906958930865050591214439284768031154899203248546963292182040837375518658060799209608145361787112527216813318166455727113071802792498001748192692737461790230594501400228113684281375060543547078074073778682684802900685136344681023006721851720731740781197986500019101015729268784152109378179000935873621802019889627191744377927888265914262366882897847620952585660884292266968037987525424317006186956693299245623243028806214877086018801538649053821593352765883597064753967218010856952553104168723608030651274431859346704544576616299276826651942340055113449030954431031480818350492444352868645734888018063480399360353968052697900644694827957896470794953341313665532569235385921699711997591410822241750871501657704628446503022280564482713467790779984430633231676246407252470998134789500567988166840636226029237811323195598098128018990714173591524168112526919060984150678981578817902959500352640386921269785422018959974930066930230272853925493421149095331480717014922045307796098515957350451719702236837734772029308554839520302366544622057853830110807888733107161358964973689421448796478596817847519988914646307062898369236577893735995576206821515957101680016926284396779903707696294389834116192126086889590504847698875645638409966284478951770794716284200691639955718596722298686733656061217660970557830127995553299392343180913365966871127671466016988666731259399297501097428515700386083857763825078846408441679086926927868837287708391906015159226367868727763943525228148110456757256285294887038290703512479604776791218946431928292732710585263987794592422341470702019921037251462677035150716043144536784146342793078765598868216643450369341567010920630613511807126446238937247586240504718744412669822845256961821667525896409982458124875427780402200147337366707260818986345437904077426072213575746279432111123108289616161210711940016170008422877085712110072307523755817243000315620005134054373319980376451822403753909073750939207505955373792909925368303088631969984901310484447182636208142309248418827310858436433977697849445286552995432474897512615592905969838065912697970937881227810096422928763590674137899895991013173329379393717994746710535389684222577896375779426885935250357668182210788524398750634239863538696642506353778079630951602039097425025082848103661289144942351409390612178097681258257759351602227870284949647479058351496356075881413624883463379907206202718265390529647126396500452801943625728394099247180020668853515414200696109169192518699554390934155751297110359743451185070375803392481654669150690015877250094528778113096617862094155087240759479581595941918766791821936031073818591476414319945754873005384361838274289330092078297811404264244732358191393533237337387955198570430475309460127412444580583657881367520646676414617655517456277477963888784464724903985824621403498774702618757941506569410357246554806172290326858773870747547118533852748160014104952617037820172669725851030140508698674091971076038818553923675826300408011993462650239252958211143352059021923232674639139749966083929553729674221064487985269412902725153275244801643655319230449201640223577112208884620023945736944908435103479330070473481079484110576003960941562212456441804838659977837773309739351591591692384535691909025367021637408019789852999382215228743911453809883889498151638586265438348217772175283129090383353056370079269138762037656703229908699954066194599833483924077107960727556910067777266742087330163765266197470835084187464454319172311177131109527452563030423161556967865577925576348813065929521814298912442188900045496202703537637453010971382813791157262236850429581863161483629543345487873508950696403666045787187216232186740278684976863865687063463425568976798839421855727236181740488719738902998786072013468719748192101675753539442662147749656862808411301905831649683860396253193169449456515513014143557128812138728032213675421888074485332939743291782905483056839765909860957234493704107838080461064158044599423700201261355707581581487429187646622063733601219452607726652142219624462163253345480823088021655228011183386248977814281714858575082234753945828765406165418575302626998200433990535622091562294418933990751936970307379649031856131885990556656351180779330359138185199158676112409207633608570730623933984202990281708903980948331339723992222100626294317325695977642451629414201493909989498185441970752405433615547999676145007936213401840084192899999954697422178941698563759504981029201885375501339325337140063917945863506465902354969294857990585754319019820762477810010805734908585548384356581085163536965222039612618864040254138151466515206841269290692799643509682373536283228803219017371255114543573315997756027009806980521024959726551343463496928565863879495920529676484295436173069570582643186955648804344746060220220520934849568491314069033038345428238424548460470166392461557324437369893128180929616130738815442634868639808362189245358046696871225836705833746393893419602236281833992625510955746288496801541890704630486042181317284542536740846647431887995841771390638340540614949740289700629312628001612541612888409895978320737056435009639359493390764133589746468297965814483448802366308014858971247113998032111677400578361723493732729577654592285259763003561540976016437347686726768349739011815035385630513206407651645919732437592863929787372245644376917203699610639419040714555083573184338725542873844657303837253332118552060457731178260979371792890997298507704381763773409342183898652921641337137594071362458058884423620661774447689439792566160650077203056174965368213977188256429722091776528887171539353902580644341925802654524737466846522005278961046824530685358475591594311821070362816870430945606087308447251102590841080994421178281399899093972697675925361961034554188290997678882044525842916653101442146120684725716311069223764691053608338379881768432858710478590589930583151113728057539476916501438361423673488082815185482876962403086265988567771884261046999330513459571039693221611086038054005512577751500051348832529331766683082868806412128188571990962754906212988568042909098623727409158291883663000147409493224416235039851424947934366655013953053635252149013838075222205606752213548020112550909025411458322299396055754351947341340558365300675856000400594604529693303382437430199771930303328524263430965098228261812814096164882932461331177924676718367045533944378587365651058389197026654513186386633157673291825681615880767542640507974536653666084720713813342784772255631515375677883511596162783984244463356605941756506175090149207278355453728284945811596512600433601687248546850763759329833879444710290078074417621945492831835828247799203295219968880176443904632604895412208696906747725102561182691287705755788552077794185023718731488307456912449211619093599383309604195884148604858666456847455170975773444827166965457893725527459361483753915773081064035534886044977481565503953253788333033285796873204007035484161025659507764353633427373485388853962215900106568481108364064302512045652977109030787983180704154789252586238611192811877110221832952494703680242249511718789987135226039617197991164891238772602550432419285634796951592504698474906609291410596632131559515709824935933807028358507265002900514073450938467632944663921783735311645867465813955158246390894760812358013692734056785407829529912870849076699177299657233023254387142969023572645072467202239776637104665505597959037708221633933053142054175032513152744847428095543713185135259495487922372478254910894368298750754529611413181272340590701136769455351894454352086559469286443544974581030542479504491401134425782240110211396454695437295630305495038391157568746242236657048204051654862970589474449278557434200244602015899111289857929387748596017063373940981679242785992870916943626564412353922380223601517385854539563548389146933094265478742625431701022963264275528222523996981205818593753083016594217653315762041396324863927300618017519779543235709482588277258028129358165327585477116112197777784319687172813468308388504117423613716356367873342239871342731619427894816633924643171084820889993798606978561640861015018081991714737845420951239498049221371697528843789622819643159427324593255071333641239742967449542408310975083733537919128096402021768769567789283392267761219743566715855824153792661813228915813725331217692598306637658248676611980465292478145583508496597703877059835390671066387456493709854006793843601481337074837693616132658132205786521972928135761946893663732671572515674976496197892475236408153909894183637830051842469603386894062938796459752451394996409730278745207817959493693654221722648518299077277010211701521680866381632244574959556856673290961114506058467060428903684741916845533696321938561466709988428475335977174639170837911484561897485271861845283742975576226813048793923976879781976832979241429625277960657594502021676578128310799222250510542969110804819058789284802635216195009397625510851418202257668623723366749149468123269689845634024833405312033929148267817770905141388222659100301565266762526324766504599230851119354083255270895089206843150236442492025276971397853389102374838080641014271161839579946826593627549802087648757730020152988898576046028446076277451410550488698334847680055056791749799204479606692844605648196565718184851482634031456596479971572104108409803196091039441493534493827083386200325675739633913905036835640376580952943495284560934599674854904308563367780365807396741240795695817432032214135194322101044957241185653812750652548655086741393392289212530606474663221395476629840662812761201573047839861846769511651266849980249240489507299980657065554012880930340245502597135053697981007178812948023981137290944907380439442384848940413331892658274344246928635910066880858634486800837843759429886474219789858486664738130396705737801064581015111429612065159736178930444169427686848880347259363607640644371766722310835726554146738889747683446899024638650360752143007690568802600526453718867958831418269555906871216189064120812516677840349384682793661264860900806799326428508466405391354495868229358323247684898119299126703855710635394633297499236613609729200427895408293010407206673960517254730411139453644276932147610642073752225356198620591305712477836525235300382485027669668720974689411215994885981259927186274063411541242499435122438532770124499094642129366450451909103645606031939737741470660885556203759886107213209333760950515015134253588869046561131848801596913157071245567166056933023211739838063653907394427412401302091161503826648700866771731091300119842407247992359490406899202452055154224748239661579226574153820485465643244344121691746971751392901884562251346353674902927833864878773043360789762220542949079863936130126539042777523600715422398338640791505796361799982891650065151444188963194613159652658966058893167196283489535297035748071870431709461508987621706393422637099287525369423232254625450880886103304866054764378913483798978336999797332853790155578181652621782758642784608002253799685460657628978757233424196294568120826836842279152417853502973642906989637732106322726262594631732757418420588363248051684435104185131767493921094728211560286762503584144614276242510887423802932729473602966235459527880152312335833411128889318608318158362391737333956650363516832157534190925834274145082812727794673729477020467835976276246058135988910962407903341314763986661925243981644190592800198632376138629552687737677338077209492458029122269031991484931045497385545784140330098902883790268029265959105484735412648539747029550530534560754930030036884764230835152108272162912961098102130692527509033226620798346733364840800845396012292109371021534913279585325839158776855262664358234215497520015899862104354190493510809366536461875930786212429731353602281268634458691421129525789496126844779970502100982221357078940163115805716452048955717523855244792665890121403434361306454868231736494395497166667406056838391809322643690978329068375439187609002066077063921496358165100126754554910359453733085607287051271135015593023245399416551227873750544251133497937070843871031465611819184019610475411888758099643360600729676672186424256517565586850569333830257992375885231465038363007914194325059068106825485306298683499419941495144156179100082428872520924155192159473322400259971205070040450932573941469343257660894382150937532307384226385246031191844808929584726594697096057555367774130533723024194457350892710051293640870233925412195876645139692980624032397944974388426551898362583497904386447641745952273482051202138702011001752030718401006703881575929896859061211638150890575101431444123244444260382930652281587567712502577230002693693187507773523724361605072893386437561049538758337934251419937163017529558766037452304186687435655403903470676542968457435872403830173454425412248963760878818425267849330272542654326692970903310128386140082090108956444936870915187313424120465045824636173785570147997855852762363296666889593692088327647570829496867268977516721590185615731332081641732014146865198775461759872169718286904840439150072706185893259643451532820628139230100745781187942615840880721264373052553146626054967902005464397024360652289499595216917247627759750763329986105796188946502506759402079618362972018412507935673517582565853803649896578899906535162212332948980171240914196046155296623008006977901140167744572489053111661420530756604966724687365100292322964158531584910029805263205980024437743489184491405206063018543675434902936734920568097231288027263576663106473700252816242041104791435536873784859202518607853822190635954111644862750906857474283411866329087072944144870474220464151637701462322002334361137235359546345536665664678420623837224119484758032225170092551596834470540040658507828355639694409133707638430924188036428966234046155110462004329514689560734559734553798684190612243365102837244567675925882517935890780232195532545208194709726129508586950494374794638337120039667555264673101173027393276680495573498054061899855984004947983093052669051300849185088179121039897413874738277530848834833357518424293565095384226251795803961473907802824555273605661646490972860417099629405637251488138867663378029311533926602185985191001281202767003471161111417460283338292608925800250052969357211860690550983823781670233448863575418420434809035948331526891007281270225481690155905825377960760197470506744545326312179636772351037926124272342675516713562026130925537868895457388086781026778038271275419868267009567716138568148867563130417991872901861383386904149760794183156927601950038085574939084096646095466108009929141087397682699212476163409119640951410718452934106780065474712144284043131890988520422308772306923969366861556596681251585793522658586724671237162674549338976641183885995454049352008519099428705226697254625096158136771747949763574704166807746922148976935846992930107578922688789656138619961183805250155329010900275283606984498272786475305534522587302419629455225576448403019341358888185571617654322558844547439086178580720131648924069072582438024670973653864431988154022121253805534775271575996344466963420599989203696926664289948772085004727451948515042987777488141523980281719687084390420333093161166220909813839425217384021894320000514938417019300255573445802736940291602764238790405477501551447460379661532907604229808917795918599005988757996110402349694048011453089880788496582486622331451345262264608821390134768068566076244320556411064459994188845391657790848237346426078050860039391647743174155828204248746229910533709878141477109352228480491083444296393701649122315372369535130637322845834065221532931093879568709924863758229469244980332968279228473918709713696524593643778974989904628803772268459249453189256674024725617489887571996572012886069923153748246973939343386076133287763896645146191838150901610316910476590711702531330343782315192372477964270390339197800304694884312947820182311658522107987182130230271271328888575219668711260383917630253806581545908870684840143659074257814769660198342969784920299556989685052849390631891962837458487899046608469267568728114981120927500585513712477699343332850581051868952002991662827787298182034108161134197759961964635876823899583764022768098381284910607771291806738711145363116344477570155244874742307525831568019910600102744358884282314079225360182987239624702514192437672260824810690522131610268705286913119019880988006230635184535587473493807473675402209741330029660535969998664653454612003814308080248603965567933103291395914476734556003578292698475524468522067274527176605112551744951065789386521825822932304534747785941091908334557921011912303831152577512942850574036683994857912654371793358594697173431383616115671126546116643165119432864562920317668681225941132889020118323466693950639173311439057371581755987453366789979202861206048835318978780500663051886465733101172587548152181594865366488893155453617410803564165693058210486931173157936392631995003672550391491086613076860340292415134874580081661371571884145182688887109872586903390677572671504259766445965626885280386315415719601459800573485912137668106051054069692502728631421572360058986659484277353580569782924376731676133804170881984642136362276097120413790035298182593432007707900160428434995771025224329456997493515049016877939596657143276471853348444405207274092248759355870584052641751064819547855566188890983765240786343562129678847703781247531526009478588582848492424620005748993933315593812801400046265117755066005391642483849569420180278626432592630045735296542848568160069497718299156762098873189116189371662477005418695082094671238709812427119360405736403803000258349096078238015821599463805125017884868317071540341461192490241043908757432861976396518766113397416367162066169224007973473975627048369397366542956951480050662944509621154397905422685078063650044129873472743182258966182086333145075233613782294558606831348944042831887719866826963210845933178276572936851628084744176908979356422095808236751707541279417219766676391640261801915519266635575379070973830337503021275636322929914721351831994865404819940806008403613089550484235863484228079634764161994419846836764629864943685738648279651712957036574685822047921422488553107348554104160239224103696766531450640806207832869068522995390001125461221809007977946141671410749227372859860523443266213159647484899434354219304578824252683928991979321871280846728419710489633144204335856138936147781244690800339920551665285188383282949600194141536412797580188165302630773812789389249484778233388877087450228392562435590691533512969702756661130856818463708479311247333889277223429401307471092469626784890446708165535965721557025338498495398620023508863862393053941048558279393480259001351014552087854945892683170773962587943735495624744185259217035968316105215841836432606871669800939588096538713255963433226838834737762347391343077005505486786169980335026053440412241155233004317892619485138044561951541911316366972311187392706197235100815715041786275247019500414082095809340904802367274047802474786162928797308242957773560153175705047937316561207348529900845517614927671199009368595904373476113279921009603907074725435307696561558064830252232006278245373038770068833282814710798554775343400593408602613685536107297418720106223348096449056205239205271555095081409874571846257704329931211564128733903714539456595808224809750092050287960193859053966179003157830641535044350524285026626210383371193906896783810450211402387892330153591708343007592173597942572647189170486568757139840048445351828048843665209527486132794593527717183320362675808391218937929465560304915908785207976845540908739719992748226309357647861233695044868385645698337472288565320682081097198343267843818992320081559336977507641137144650094382321560886893641564368663389918802630534818110959830626995206651036486150024610483460495059140222601999860376644779050023831425467460538341296371093284890339590821973390020458300604357969344767886513259308360879653648539393703645915294004852849839561245301124221293700959880369298658240043269590624811626676809720979226495543175828107643482110457849702157170443970027462998553178908565815895516703253677803677053592160083211512544238870765844277989673569997711622753751816337770369474325272404915247180894549654054729092862861553977823881002945235473213020041717915568461986725524050393438466069829991235802236530055913605032802764274079153758247648316263901053988766325679485783130789654844583154855020246223126045520557231863112608152162666011954628059748526095406476114126738031516916765626814625765916832175807327397580795685411399229270441791689446462583987425981475145254171325617062811562915381447514860461902480443752380905989583165662734800876747112239870528178583290210967239059433219722346426415284412199537425786853981417270308048345071068535053556369476825633296995951700564432835254940746282543392448806252255280731434768703143478545263382456250709377972809363442212500696317042933691815191087849498337958687115009468383359800564805214399262211393897462395096400423234669745478172611219483677394221188413111999226305634833298812290475216504693523332353400720839564807763882942344462743347240369311630742137106267968674947305060913548635136304195249167716217346615734335881036469010550287836850205948734557624845344589506678608984897443794510440240179578941938429531924475357179111692134832617970933795339101492780490862918278227080347339397921051311012254586673955103119644234296089341126187110999486887214523979960348797964641194489776656038941913669801826661669672187686851759957545009577392428200057273445790008568889269245131150668795623878860879221748020130072103542314976239512779403991666691156331099733529297840891002301680263620312262001132144421701056112655673508548085033266823525384624884761391433322283984930827275118197244685774161843926298336908147977131908273772060163494025606675274878964679819447391277090308709207674219297261864784887051019410385062369284119183607572138627793333712182441961930140207617341953075028392336120249012292544533397578069590915089785837004635843917802220058658186432460411574746628450855494242940000137792781353369407561049631421992989385262969598958447280608402991876463972921828365098743905938833171197077499378420692452208112360625859161474139190663793262788085314772556359947394613386303394382377037735257530466567410827168989703053312924935005556800422169953074257481413008509585789814663697694515894073655245025224865884098793921376129995363737793558854168389388033542631807720179696006559961487504311394745600954209307427842094655955609399613152080522086439539684607559165262710845662136514985488180570899415364482130000349359473613192004655655284458024366596000712203999973852941707549553520939343510159852315700035606882369864546662077462233103574651240905261818981852969404209303463101433650316662642332838613096968258682198066054902993832498658994861823584008467888424077915422344284131710684274961548403650159076805591555059250981596179480709835670589752776845191255051036179819847453762605054572090101532013320280330671214439787583540765090018587744889418211352024061257544465322996504111608150132357025303634679950688884625417553222408720552815197214285638926526956084388153872062156895378860467291337584973126199901824260849391492393347292320801857736053572103111237061284191640879713230501257932152796138022646167458940637850373591643554755859778083859717687652112699623288945645244596454761069883286895970956540026015613437297205506670228720609073203076801738300376478031673300625866170586246444461351042884234361687637954699278115899190558575851949595863849149916614851700152552307670530896212088705210418758808246461528167638227139733688584404557035651935932896849723929828150158088433774636111652514592140072580035614919489219722761230391773924481207221437182870302800158288540695443385056802266194016363266441518938742866122711719963768816976794285301227215138501511462112540219698123283859183079325742466566307116726506630856641180249480936514551331430331584561868078395561590677702656975788762403929202827781596992507888968911963251104520123219486109253502686055440573237031395875140049600116115013173883768081294695529021823972451158232719576267237469863672708079909937072816409200113101822205820431825299707986376998060987637239606450990172930591015567503067681313290538602536852466162888304132012722711719555366345284969939165142846777570658323023079072428482898499002182462429914491714868182196476613191311734641317481086686803986989658141410772082285092481840910589974600592105177487405866493272273887958099457843245138006586293750163646419419544145417180984440512273399397684707794590430597074426278744274050104708847412380333916169868321364436163136710815981876030011628690335899650068340207635575513756757612021785754909805365851094914175157958541243251063547211350262211216518123855182032771291463045296323020149216547663523362839252838737310119617198891884705361729424475370795615296898134233495318611267062430355197764748505743704191620672109817611560729191466923460576758004779652957387115253619026444297527215261832441756509628949674416839741341652374828763729801378917870267105020566940114429413257030046348463738441938877165581590264720242683790200190808424433763428164469879083439429087700834034382828261380218037410916866813232764739599802897097832816234955829185160279243504356327246626433144563885663127434513511839622799585611014807561840379508024293064799910966470115054567259646579962838854752316947395460073337587214653199575847319874989578181425569675384311788799902254860968273722917212635201598771085367084422940328943266610055006697128152631875581288352376422521975801191323289275522934264212046049006261675418589172572552981119667458233381307839212666691630468905236507533246313608434841291570526783638575757014422741717116814692210639586027788004074295318609701386954927300231821524084164438209254992276025607540302019106332045400604330179276288083487413217599011422957314029470262107821067146731991115889878146141661787232479834341659174525681715426212579313179628498733988603705245213791882875189630225763370972867913774659683766078246443541988297598428444784685857925641456931356715322896060088505289623856456304473007695075143037928107421847908936985226282695297267847524710919960322027454161236252630477648782550147184305808224418732869057185936595889982431384268636420617060299280128227797614227592380286201368649706812524700894424517643194730578527947141557292746408698571837526103464011783945528436500108156401360064094920635079184806947938042402926559210822582009194416912993680451084786642892709358584881330607542453103591786378318834366345880898764057837734517493168453451918756793795795722197119063960835464387664108402696634080569712388912416266954521118772276723505439516043158485525018783693154326484461967744032655622844083761230693769621572295516645806832245610780790257696378673905684581861188154687519228834464350716363483828621765219951599495638219740068503855592123178067862532143449031731840726395033178732604222477655447140834054293301455917792219276485687632009752556703416568891672352514586670924834741461517857952467069280016114164435573363179860676227652623314123055915258402682369663853435014645972253973389060722180294315045791396535157445476443151189390397647968649139530032601051334067222507292682077379723006774464433271067875628681191341665464871763873450574824945989874802006253882581316874565082020186805758240613567940639953473910354740078101888307125188634310445762360672816305536626063656781076679305285752999387956788330850599501799903536077609624490640785754709727216990227941188320320704929450956025211216980187834085045446110618475059674526636669033842660937019710675764086878855976880467993543464768293596135453954535451616710722024918148285792357559967617600670036695955911936303542588315042824407167085735146437992740919006507900436479198105220821934704676953008621117324102235444233680065289910590516933630263433013581238012022263593547982490492112447483078498135795689736122368607901526620389767662117784409949988415390688046293917516231818970983572620597217764721552623923427535438793777373889179354962029701707303913315721170808082856002454318630728141508444068449630478580711240716856287813872874722133414402236851798167440776642738483681203949426977102024138724531286817830507085236532727272726667693389234179170337123008539802509620755951202717176809852772781292182684268635409200560089048006297072574544176006384764005182802820241823688513934288648355327938106545145686449488412500091812429753969471156382702436874150555091127007079885450516373267538452339538196133316736167615640983012886059735258093718673672791472753447891659184026851784848727810198916702115303887808998266946829259511684290879542182179242428545120262959268684032050005395513177015714648147345414190132063664231647433194796795912984349976923859853279351768836966960213965395563308249019087971120063880886021695728397135872101515486711210428263152635600749963984050285453544028999110845910629491369231772776262983513142992505182713255178931245792486363071877329542090828920250996871148738485138703312649048217956774920256811259074750051826731347222613933820655935123526275244474978670285591007047177164881228489388045213500259183498672040931951876743085706332013975828926895599765294815962102471068244807133893843044617653485839885440544611654556368059973096219753089176197627696998506739947465728070615722878502552591179583908542156927620807133043755837841543040635185573499685560826699100674643240871875591701726350309669437763434493448429089459716289642001682523414537433405757614193477121289197214463175088323728487973298138106862482367967573743941201749568435962671624427848571822597991154266120947664089551837705685592842270727768937632640514194777353253500752603768243702369040233013656262396015314748311867856573519395327854579989987279307594236979302259916779319410783975862249375489369348253389761014455256816655763806273096163197582667088336260423236455311397981804881505426733460432278415441943409862203914909817804872608566341462389850060660296251615652334831787409943883251015090485056718976718774833635765325021414570310576040895618501091462503242845840440967740456097748785985381614791089173342819177019721916456995760601604113575544726234757515010051411024957222816061939678201899361234109894964653813111460277157297773240133375325730335264445716977738632921504191329230387831647557130381140605328069775618985342616212128823583416987419081562544186731982761597487552513215907676900817456333775105546471890779508826097072397148225815123131836334659563803440051824057003582903600529668704327774431089772065858032875807778307897143715472066115531560154955744468622980312016291584982693920044474815343357297301837531537257630766165238460673983380277562541058248203115490900068378313944623403034741396342535994357468702387792790785037572655132553397068189864744650539808399980443529514066379298755234745691975682543206077885978326598272030838872523202267081620198258172267536186777754156478469240169692889717813232948306381274188592833348972879129673787558588495435262518618918483401165569107230129137340897886348430064931501951258126724931684395860530788243876720867747410236818828829468116070362606439989934978502850167018433379925082322964123885278848552164801432021987567160312413084216499497084021340739675771970252668960714798473662606695369437926848646130459549082787896648187268655059603129343878223855616376825762542032828453642325150955521700448563192358879817090520321031635365304677312935773486609644193600211208425962943167004040536539916242971071933931797347534493354369363899770556050166821104998530678056230448252212489962818611165842589776903010865651005689414042327301513558186037937257728894299208536912203608808798193676437085238152294785017143440989351144136053497933610254286355638461003059731885096085623164744475307548646127567314142652445091659528047702943758734557536545165067479541490102278132184364419683257449204089534798230416822357967385742815780674695764003056771640437997248768899754803881418426155654540041304736305040784026042642939909830950979916477275492612073987888824798669849586103789265770294878983558609691169230902044589855889612092902354446586524579724313055930035036532853745939221655803993946303426293729323607496515912469029259517470674200913845831560811501249720218260191891679880130917069093644478533637833224126189503525713944364233144737292319677116521667583074798148836479564111735816105386695702074981672939807585647234426928019925965071936284477091833521558071123565342392690292919491549243685037321171467822793901922072252447034704966750640307805221350319331210381943649597259826340100621740378362069028690160744805792215300844146432681043361166325277665439417305822149299525442215581688617047722057519578884169059143315208073960294536852162928517279392443489960695735544186746458889095845674120194391470896630551113929808470760295732145705367505568359557027515170311611307491246911268700224460750905643585255862261439206310869207892393199872865551254738777614924925514924608435259480249665161276795833723218210911830470484120268986459691904244689746870066162866743362381779881821650938955518244266164285583636366593144817576907123734305980870574878719803001637703231282389141696813317880245647220212832885538942551681465082620316785780377580376444874378869706641880952143545556600245150492134731699337084442771878264004420284304399933438176074901573278253020783781080239571658315994926020083312572965875657573859045059809429827248577953231299084780086202231467891310981793474314281258756739769159685451579636888181603562429896742407179865318863400236386195091206201809392146155750248935405063000258889231890791316038954542987380553715536898795035038886862146149424082103434609090867958293280417590742656681243305110693747886673159112157988414320825447905547622357079103838354465880009787792226037371736087184981587347693636315365228123529428312104574524968150720145991151005592400341896818780141889831760483260260493866477507051970473188793571136437253972793990166635585091296998278422273792828823648300894784689746693660782250901390056008511585222146283326379918098988372370473971603989875268916160381994276071845229036989557994377487088278706239858174855772717707537155249885556390571354279873689714640217307822042800061882095527795390626059633473765185559279751872075556112439201971431706638290937123697273825415435480806253854390838262140410889241831631514326735703198967036013424698915351480657072188859999630071432663703707034333451404887483973204374824262876986332626207439032835958865684348874652606538779110304581435149907941465975597362130014559946660444545065052495987806802897049749537004548031669224917329287244246852379100550636568041131433101954918945007065229393682978568650701216561959770181978005761127621835054568880955240580641991490244714521769567228069063447186234247221955890319887126976096036605309983929160129643572746510250745343060491651430867129963739188598433501215980388067817903283749382310875742045899490171798748748876144891049404409050440925801132888685922468428604667062804093441553634512532642306633650350759721622870094185726658306053459305823202716362340368424189278819769909182269119069980628869684948970969453389258294472276108942454836517072136728487102163195127284325376179767651498299500283498336633195176155119784429288178738283926930070582618007682544860504773606707558829413826604753799838127126868816792564980684088878009795513707239083129376928412332281923175041752498624538506421089278601956093484732564153800025678901683997296493272854594049535792184093847290646663588844290488789276399844053247178537118149817626564494607050907730046916677283930421947229900967449662850468639330794346330915294485415737007585745103117646016941097485021448014779587433293015605577162864472810173908600078373215491403985515719530480945653966272633889845855097832104996131741405449115429500889296098595788499313479717188673028689232807134070788968020736954709863885004421156719486858942195897114808628899225316605139424480380141464185104929356778343550815253870752737020757458403784989985656070086175299524675712001997392155488070732248620639571782689634576632871965800998106674108794533719627237083367723144152769752032705000690873977586042572192545143328511055648208199436844891700726649138660194064547224548812809681374451807617700750636453376674861809417766603306180648241109343112241225069219954043677600103536701581048696604831573992760470402244375776799344919305003944346748119177922231290218662314155800470414462526827663448628832641709816675784930776248929173825803468847573210059202479359424914553254624665579310195790417734501093972056326396065949505946077473666271928697298737474243057382757723521290119633403523112533838470209451662140391286245361756121325774776472626181457994067133778746087317337031140781518176122097805048361563724410571962711995411254651045896850526747045311100860115372048654945008629862685504166865948985568847387160722529168220448859405947315386956697857044972935897075642729516181298858743838754671230944706499099994452532629601220788844547622537816031078787424454192110083979119365942972245215397806220233398685682020431873891422861122439600527770979742062597670977194084582272577783463290452027673020606567073961700326271880141158257423407479352191553666121063788066263368560773847647529177421069818790045463982153936210594091324737541178700592423042241760172652668289275490954617618882048525606753812222706931335208500912276388200086163429592267048098570526675116622620369601014255097469539609491824323365537657282076066923131077986246383636105202609582036569615671836947173744830966680867767715862633794081946482535478940909772613530730355331324680583039814349307032800227644033326043764589347742243233987801871152909684531848254940022466697498572693993595247138734519203890500927856290290753853208727130411660928616055895864570384944832311326478016868396369708882894494803046856554656484374394012792360873644462605129362047366501673377253811367804138515893125530406721992428239156434606590422365680552376116038867108192081889097533618720325705528141309768368833537870974030591847947147409100473869082868949308185864588934798580075482649367011165464262152241533996046750624825207296054599202577029111090368029004134782754207478646541775722798877707594140579819012873369293953405332191074200364043018769139210833966498997292570749080529521083678305317068736678338763432119346630205727216913476882718107340958336663945690816652731357745914887876299668124443064901077287978443173472125616912934148362283693361701255408843612312226253952241943943284787635756986271020020432577862401506630171611633489494470965000155692483121510118385317584015411536417617819126771017265370091367703221039375679112472943223606759887590655326798049138742288390533572486666373967410489951887284367894435403429037608347169971862403563037847219991844083216156624404474054927720771963580056507328306570134048988271628749213447153018402623067532517901034460441018124005736835026968070510711404835811527930249727487624765995755183656354386176814030738722522256847121485954296624726584277026214009675314832689367090937068473296727989130676261708092964145000461023880851175590558190858779324603769536593169109645502174524683157916420901401610354757249488638920755970417836688035436858452765370617760982083948988543302863234559094520121186363208002307833726917630240360119593036696225653360568196503667334519021738818854298928608135974601217590956449507207557983306693050642083467071640560162113165376589586337708721676180593321777025131971754279952148827919314333845347313153433178100268380540358254597774610140971827369854247043721204203867070867148853151988898493990816659431364848200318538735423812260741594700179186792015164760203667682834480589384858158134565257790764575772365270822259885971815532543095914409744744300691242390186600746621561540829460910338736751476533154473178808721754611999991556682406305424699503026781326664091298891919737188500677737736619581454658855175283790866226730368830546334915243824009616962461527220268381501304932271191430852355446889832452976119968203408326190592916884093640718736714515021330832018832863845568813947848977439682526823278103366060717190642974016098707870480541951048019353888654132364284445643651173486828341083527107099291139899504629139699934941442575310204110429749484724173036328689317725629612409484142756443293430805607688030870965859799667894787068769370600855653297427470408839660862737058540401629898242138667579705052144594612256532642252103620641958827028045813405880809292391748251992451711890556411965305244247883205947160674693995458600205701950634587445273379230883170678832636860234414462606278762425460177968904606085050573347084022143867501926469518821010347036037615502178680647112423689033059172590847589402656373245487157000693421422764567684630970993325251677287047543326781758358720307446150996710337300291989076890476455735238881641350648541689961486382825127638684721641583815084577180175531554694403750353822941252236440059614406498042578722728078189158037700067029619388255540889121508382821493739850864616475190243252110831722079530120107120505263869311276816765389917267496522307992151812225170432204962042970480076109824922176563463465005019612083329600439906680918590544189264402233028172427017976926648939047931294480806722750077578961250524618276302536218949431846989457220961838646250915824361694153198835841841242071256984457161635821274544717044266699571844010109962952421598182596011672713487523774036869541345358203616026993072736628194307878427442328098867483886803326117619995422813305046574969021675997423836401468719111200642563249965132424985141506192042711318786568361425677521123904605668887048052549564078570070180673523214786487520565517819315642724190204305814680548803165129268637123429861539020067154840128485182140694327744774187592264096367893347361169436784601257100995329168136572477965698538421564906788183792239631631685075890224238873083819264641706587374719365344836228067065785449080588785847776982363780634290649631799283059741053762535780043619151448816149648828119958427430415069622499607648991596324038842820496691921299851960910006585010330766346510739871460988929446904207857233415283948076833739422509830550819671961383908970230790190779694758384328279794602014759735030875045796562248923783794594527054370600220288391696170632454331247476176630118345736298523691572213805581566961787694530530666482911241749176717418040020564343838228639480329824679261103740154920429196986663292382486389808990955433142755792691469722473123426550811548792953618001857114884367005455736970343766154549677141812612031127048926052621159520381865634454447330256443520574272145443779443734662856841071955444356942712879531438751361278740950759844581855895695946603551679868685808889522200309928783813056450745532619993161611807317439026983315229385047071573102149933420341455147778030711327626250115627755634774585026391204577956335292929874884564201537018698910108450779511828535905071848595035987942310315644465899567526349731792388910178833944592442969632811163622228777099470203222009521157843535300420252545099048385852205612981120788031789862304789914256241375473863932316327637693066667071675115482206876272657129581374940890596332085582173426552055917286831837323902526450948589161557332275550586261752916635476435251418796321266513068436166718594436123941526444296598254894455577139937441777871266616226820938934376605512697122948193162628626089070909548315258838309456497017839592579500875849293552084944380819873740808174538099431225297927656926974156263137569533451180501586455635154049650500508195785529444426326904380611067381396183676119696107932059297820391033829448677941657035068041065765112968257186418898889059213856789940613880499994495771362342471077270127301584481552347306244406731396875988763544221099316791698003179703710678632391254972104250772607467057149996853989993051360262353505637180692574319970360524683656375152397023901354863732392939658872232906836288736997734987366686893100614008359140451532828204514231490677155447952140657025874437168680434153809207115534877442784556015041728788489439096318559736269081977067487686402300987995106064214505282619307014720093376727434058403244250831858639360386629388281099461818965673112157739214876838209673366896553233175439154519720039173633376482765264948408766991267515586403234446666592900179749450739963547806202459803286110914765881459437810889684367619021011240615888772167099677900297345608526675254058746170202279194092434374140958672897994228222223462477643986329847129602966854649845152971828572566823795482754213346699460774823213628601807574648787807834671705751725780047291975272818855063330091634721341165964241202313803022373248938073172596322938138289107785606916508227289043343966982702615518436192266842176104972616270312991519524883052683968466244397899306690476397508104200134159146238383724623868368096955726816314707123870495826340698814423352068153711629479903540336831959722676714006466107280055771925073227384403993323856649022822640866527264895538880112384505128916358954883952115428624276760873172624135498204592393007149489662897623582999169620250883462747920155001965728783083122897349584968125497955018185736759599776117393305937401446330457177725671091102574082614731849681657143312604895326557833397381525859777545330041329606872488126984520265200399483499359868337333836556115870154542011193379849124367030012043427140367107491126141482317062968656972207605000033145692061820271707987423201966407847878553466467966907802339950553864323401628849368476762591380026579454317301108319343169776857597690312497699848317386080131482104664494132485313719424645872330286502658723844740141452159117461873682448021038088166753828319558386295229194135467891737587577592252050751721522615636387540213594570782017470900297630968780168373310596009630553401208768319145671022169732217880127139628962201842469317305562908324150469111089614522655959116595368482086139741509376148078830819588595764685523065359841528873554606356621680725920433431753488591370376267421848213555508236355434228880889548921476416320339471365643350339877205640657953215111009660130085839480345269183568055139798024496998106341210137330844329565501794466985217053748849083197142030632498648913751319867544928414591769836915506084814828035131253160318481562547431815459881430798141457877766456886708598778622636682465792814954807236731388554512552009998923087247113358567026363569494571304958865674294928850832616754156231212463724920717032826663430714841297791217746845859272327968671818259215568919426612907855804866414237862211989928813333654252575636218281636523447343756461611279328546550019639935316865506187926924150496863404994365325131441759801978449647410899730735746640059654110874389183817185651652830088772348600539179717553186720828345585451373517696988056176652486312071267398524858723117396145844558059172045002840253464843815399518357134748314481652341366226966069923236757426890064294909315621721303220739160347441115556975153859755167162289047632558898287952108490971540886083666421303662471640292097467679679232551164761111768252065444482883534322611659806496029718696570480413874145765424532572109587549224133754889161832107782496218887256339446221341636294380453959397257518347655260472206333542474578760419002324906878548580121388111521676136639988785617351826264559288676492145299584953186874641103380266298479988845838634484086198316342480890812695126960839128999634977295275351700353836987859396247465417552259198180554534232590158513871997240355201858345911569898408999494251327836093332304963535272520323086534882683602407905307435695198324683141520966131490926661046457237644078482287695646222605065136978416113739078916668935605224673730249372884321056982095941055597295728851311148454537316475367804195860078282359335534644928805104737403674912558296879117177718369126047546252062444826416107910222023893599325972907535533771659228572154194303832635825895113951515773562136913424242115193644510335582346067537912665718728314994480434900194384442238504905390517764130613868181466250740578671819740165671496673079820092183947107017490781931855107227822768845200912027462355747433332518685301742923768357370769872700480727915283607344599656417405743863070694555710813895534180693713969981599438811058617426593685899627968901973134188498204970597875610140181420627869820618173925185453420659159622460555332917143520771667346934379618564250847513588099938363460582032235422679994236257757669015210571564320331077446932562942028546054899003939049991908848080685138367822313759678688263408453201553964561859648326449771567513735361223355793423783502030782346864147262339961044266218950932037385885075354882927623124311233079365196348424059214333337678347016305131772204234076707808027880435604463924491725664958418170064966783958219347232334978112641336588184159690532163009096186836578573634041761184038779215793554428817803968700923365051635245449294994375064126042056840643528857379758439196961651852263615606300768309801593557322926055467746229358240746892948014461995753785057306563796329049909402346720611266884892100909022220905488980809954247103033416917291756226869601198329263289525337804991277685680673109015046615480785620121714806361194595785689604521968424006444246732042162266869857414884485965296957655983648300054165980072216561003935676397737097684087141805499835268501450977057174629206485423273521468527093937844040019546293726663071248128064574188314355591930234002925859580775440899807421711656104986968491151272383293297505807245494216944353173360820119244465914046158251374527384065576214827396991043605171133696078622505695468699046776069644043374992052500644651794561371265517877381819456464721852295017349785259902769520826420286586584978106179237483890476690583358060635647977830941437254856555349177396877540978750305214706854828771227636538601292082827589565780523264587384064780712780603569997542348725405656728407792221874636800996408414022883976285359460765066931670267600099230925677677132332805666632206978956605520511131480823827917198083241912529155221813333227336568365025703613203745513588845182535857377510499270207648587017221647472610838043039104156154913975847613084692288890870750640295625610937190987325253221011390328188361049547996180103435167213091462278473776107693485526181362476716569432405242917441855902345023172712449242178597522018178058173983074368240394044582059355998438293770190068756583437974535583556995328552936503678776569565720549046904427667919790570743004088377387975653308719636282946664780728118278852786327288681668689096169693589017793898675648904051689020117090134079494516829661019085372616937946107238306535553462361719888564117312160306997602864621458981827230329758477707362119098584694895201090753796570514678939158338070742955222687134759215654521272659432582825459281109092328939502835752064548025629784974923808680623478739136672079759954484213655739183791003243640505970517364956939562373606489236463918133256980641550556760999960801325080384258228881091538614667641914677870182606968085694023519410910345304116115909556144940139308207911818082739772238367946321272118679151706253959758177008277609311819657578143300632575404948368214390828104710166897159653959620862419330409913366375348174436470623740643584433589631038291718477904762426692612186821590628295353972851224496638689529423329722040238708701636819610438200039142871944516380759010312926969326586703489843148869702260071794773328925590528099402913999728854195588739528135244233900402368886471121233609395259881662992725233312590270488528891892190906733219774739233200309028854076983683703953332666740916526340507177463251583548446897515199389023557146566701341237057519938149566608290051367335450002026686733439286988127322922169763900843747558058016534598324710494582051534043880692272637953012248168723113962832682861804540572350840332145418229563642145954992380770286041125492829018500515897559074873807418903430183193849994498555765017706709298228551914064876861246359806788082463683017949851962281961203981341044433791136971997681857854534961868428182154505011461433623121127013124465560373793335811111412048711442180878550733147162486406682868979735435713245201165048993449417313430626987021018067084425967483147117861842043677058849460312033559429693034249088235324080708497284372077064497564696612774131099230570075601778438742111443054348717519662863702637298700607206924074056453049636473193423136881962339069454798618833502705698660708685986048323887608820353322666814028520377540893126678774767279041480320804284395929753395234340254056080372252213865257138899203569523863951703264053541375925798714539236103752407292144607122673307486026047299057977171976224626432051801155636172546636217837082808749234089407175556189190925616668599408674907819934479983860669726729605734520591243765555218471234844968167648016542417199739038126358219892240245202819612347248581560477202521146214580314673035930158217406151453605657388433116717387010435489305001216862743675695374191902411431502875817831316242695525379141407124481168874286679609446920771996217999660265448534579477812174404774022800801246364918489318355328723825006672140010242446224288454866797431646658176350974407217349825047408277351601918579102392212170609732043389836624519254026503761235802612580001537088212976207939498528987585658029185810882901430025445505929808656750532226669326515163480785800387073463299112802194529458705508471862715122509591475107825488614543680680673458501286929229035602120540265440372859815197580298620033362898200166067283749961454029922105270315954433373574205813150755205249250274911200400982206309132333549955799173445031141159651555286534789166329528754807688733076281136191143781555157612599551055799716355578625473826091146040177989659427271089670293510501612442197490292068476313127446422114740658508304789951638778394647160099241579937851081711249370264777819124761475725746691146788378961593273951936757317704326183089352816221937407170949173849605198122003069324410057496099666329283574089532700296985587814377811826615717232749380239998326484221674331214203804856660204473497002862397519191791994201418426061095626247384104341338468463541378933023144195449171524057469799001602490670940223121959305117659489495439967929556788342113113144069776475880957723340407709059418962738840319084389077478233456599092118385923034095238420125857654420889752991509698683228893813018798758926928771158767834346338800904106540877183508858510118197807613827807316173783059391163551807140772647348191420935504405660717639439605910173181820122945615407393645623900799047447145198573821821823341552241084876241065761492123805672917322551231196782105202384820852674795452704834003157056554535804379027454296879930812060518812495713049578103221916193356318992165800303188151582634990231088078242494255617315802150981282901234795255222670655130436591227431112596725107948461775194089156156661232352006251622072579062235348442128377549898818355133516268214048650303448976146686136109990266047427100066579509315224005325801865938086380185653089466536047015676342270538234836525284860673047435164979904470396806126146964520781557441868187122003094800729260571353844676619370571494699916861097783839236126276259606768373214418898306061115898074151364872254187195733898164505180277880049209050292409028390504774091433963184125080754436262212668645104359477180901876905385806518148141955708893995262956150115661892680770152754257003991854297016185641640701933458766686168158819679618223740750945475400283783229990293313356265279960648668975297518520211042666095431263813650718188073854147193680736879406640754554872985785864668557420263491363315237424033447428668342480600300267754800359943421709108852059455052619773682521706265416665546379862680996728567337257171320583175936830314107163668387827353697322168653259524248790934892772842593579075331959339464776093773535833760083718598413832494935403639656613393928529584075727915534968747738671519695627998033089848359287052938306006030531931177628858288890162221333475368871235523879243676891748606439717693914758456209446294624177412267416481946637769682280010237930237803710905551583538639639875087376136986486488097734214390988333175687039718417211885044924029752894622463983964048016352729057246218469308230304518761049503388616870542368700307340745672468148363569299909510616985036244243933743900416909096730135299475123891479371478180784865402359124489827866693135551998994339993886804024519384289191760119786762943696367970224271046620132828447818938502856038858398725581002453102725604487978877554687737570254668062099640867079278526176695554150365591843177146755904764626151484444795107056997876159080840608289758260995326033075590289091909257130736103260662588936845996030971639978944782802760457315964504233285014513207898083302856622105529310801612355470330113701818970091267641544351906020252667780648629437496642509000863752552264923345872864645655645096704719614764778290625928013841983385718946022297336604281604267944529400933551387825679257062722683386274363959278656091480675569971711679643252143955190993032920029470497399446363952364361895334997896189283168978784907860703603841506889290057307509898244404042568459486155433072772922560432322390724278393005851698208030422552027829548320589855432415253686014106339433717461013006110706571998316788264151127201484734032685132245245486527691112449274545361924975205076714744028202164363316696550585668109339886235544951906947106340643600176243806777631539844674105725864349238286586626624452380909951006313533893498718830923395753865090745348056023908146804443463937872962913588094113640049135334936020339442194437644803774858093801463421306530927810553339240395530169021656003249684660249633864672380991306145236621307309924063512622154310241868681488115555097418479116418210622023133103716200795058537196963801981642966805017079238704982491514392437240898380507115724804523973597910419717128668074328061965296646502285992654587471670101541354992664802699884458955408354279614849279517999169986182465119085432628903449049455833915978943885305053608883814255977077285096024594763666704757406178627520953566336151876108462589073480787896753719525417282421707420064978534494273808959581075895467642607940190103689815887177754984095232344595500200739483787834282977295334391277538667203657587722508639901718513594570683261409895501928021761146759673714739745014258765393079766292799576169826549540920703273312304669529815377691930431392202097625086717034478981432604177343938228494639580542248283975005821116683133008286681500615303983127331071609919918856069007804296223613373673864334914548432144259509011243351358145268594996029018758278464920801740289373320651778069895102666063126468302556038868414315271511097539538861971168427967839135696885624280668100328803729899706022444322791754807516641655199364973316603275710299447283652569317428938378379298778528909611659597279782702406602570092815987864816137123836242633112482125496897529923864553294188425263442708331664683743629267775990562375739053841342508990975866568273130690787555427346200661204412926477367835621576199335701880046837920850605812156319973801656381407736079039823507354236362544393293733698827516844363997737588390994415542607070442370484258999186190186455586849532223213573518966822646096586286667124734169159514142527118989283384691296148690359070422662823898983708404913685516414429502571863536266078918421416731809584182384963036017187237138813534984271048457697162349539873223889291040081899590933652876378710065326543445234202616186597996366570682253585886482762723947406733903903292197319016741793151915502405310225674313587403111539260469932009989570293479349385432299450435787169273243883323574369703969435222459928555414222488986880804052788511881566566371052914966784282091155232919839919340077693857653436042843145669199790101373592860815038528847047979408370088298720862761809409779690286772507983836619535939200491759568946793929859167706656009775448204267962831866063105901782836744417637392595978619147307648417533354852381549394136038020415401091874561678727979836053658837210624474377540360427414055090175845340202989196959792401178965821259357408400244668511160991362524153289957747925686812599460084978520951808299228486632904252464295010284164946848138938422433387499133355406633310000044883165576479457342916059507433718004055616637795649636731888614354875897453502921399760956402131913331917276788951837064753802397440786807872822737581752820120916905948114059018472739608632939501035116772641491655971051680877837912139820882558087487523789750691145751514825247276271352014639980159191504021670494931086480499137092309538254047226330339823766835944720914186588621019943708120346129025245860269621158726737428451456269625064500589591893129619926437691813748534757943254631550037545082674059750109744485901196824663317562898689392442943942300498223630903431715433481612011437240162961280901390019592081342269876716316219256617247656299954143537906527806447227433937944718761176661077535266985210352551153521344265720899453853504641898553175581281368389724846738658537650940101773684722185643734867911511767331207591812205175459566065559706946156060487946792792143906766205617165130758463238938260199205465761803068907645219249972392136042345809843992957505005606739530005220124501690624896030695583993658267037031710078351890066692343263091771445212449863488942525622473937478416168309134772858319803623941183119762890894732222264310060720513524120386702564472136427833157718271514209762313811572165781035139727736135664010636705587353757375237034507245812143199230412049691180612105458930078731582690596878897004057688755626211922103647253285587672087029107808937702983349157782022912152212862922520643447733332089447674694028754121836560766454753010939112211511688875418643642913171708841221917110383296878147698599871441088934322305377372266126867371539011566527389060982354518648346683823943664813825876447282281110086716514570406789488777692876240308399823224692802894709386760114613600735495975108236454906327180881593487462672220976717214834646589460463683244605381971658701076488168157239140138070486191492048685228772063879193452336644762576756515664370671306235682659625342302917796550812404384568283399074452432132098733141542664201873498684247187758669229618797946377071537618879575701010267310357257755220464005502149750245706979501735532830931437493990338466366208258750197692875742380881212656296802963110123328301873676645817283938125273378622691133173253401542416159981653832018676338842294067741374651095252991244311200278199394181985908107643701900007518198282724330822783044756646463368012157617797144749411946235231907839333914728376524024556700379741098912628582961126965511284902680720592412971559823356810433591689902810799265769591537643867269109639445015079330859159099147373037447260416443631562849741474692234040463112593125650386846776305253036412134081318423869917895548008372611909910177298836150330091392995662056176683403023652126764405753275200398886999938099750413807906909013058350059907652902170678597588763163157524433181651248142489988178331156608992002818762939323886849102133745375121644656499582494195086470044496246818208341284957436545635471874191738133499223877972181004925871228502401221556513751361745280107580766255103243993539402490876484233047835524361913650605240539342596202400410210470370480682395903300083001638886524168634366457920611089348318167585997108928347322930282841214655003880863862664239777896527441891805918007724122671631253058329233431774228565028857498598121783902218349261957138547968816599413904599448282802787005882699073669026129204851523411397484874963737278405216518593360484935769007313202667281846110691978219316989447610124409539405291140392992982995882537894399574244111678614235403281839588722094632585322843328133399449433292663033424351524920901349152662306594992748498223805679982135462038658788389142358972671626444904137609903300935742361646376423900780433349709528694571262021683816786023818738365322145740025273107737777398995789856847213023209964989632805881788528379586203659879468474793271644351689878751219599381821323285233384077728506116647356683583373903357179772166862247210921814489964462205898700561298721968048020502902922208337743504467830198229456968286766332586358326260495081197042563351256368666205463544867955894525576232576991946313571089044945814537631265697511078365445398378839592822338359738518065794926127296337650244375219742971635585030136632715406942930454082311845230917299924822226703564569243396755558215862102045099458296660564122117981951179587824331954140387949993920998478944423058620623696251784788632251746366911537519330542550597957134958974791481113092689707867932885578481905571900549868205232469351296875814791453892586242676116303643442877795935111984007893982046950892335779378267906187661167741453233932986449473075105394094954061140266418824844356546598564548712673455143629859946417587100576317782620844321182426630795364478170689208896413377051444654951140112163634114422519565840100160749071177809096271892582842860724339643427114443163440101039554116531729634882269696255471367225155005881888286533612330880189779427732335957393665147684828941760400546116473223611314623065012978802972012860326212453488641359531767614408052793022702447851290504478741536933655208981963739865752599159648545804292740439841076907505208207546319592629544814883216344558316145897311966272298313646175302772160675563272911039486063978560655438382127584412044849166909997734143787461551274756680455300646268633078660709843409743695758963591530857438715143662752832705014050840708633209282143608987924117318111230933734225294266660128128717390036278202103468161573587823656563488823342566004528187967967755934279638810946471850940409838760572495499773011755430170815308365765123856312420851136093952915253542860582438378414224218340149068989589424993285957801625885960982568581899041804435876930286201939875685639075913459184650804200121990110894145469931833840592721042931846279602008618932178925096430663597992773627399993849774478506141278102725968843542378687644237169944668841470896333120896261387084140437214143340880226477251577322130025416162054988664282148198851228110417291406046549519462205951201273628989295048710721742397958881506567523464651451669063015174831532298297062444995909490543303864055045832032667853290298996506653372947515042320362421262864152519876225850637539417814572099980648376105049899784241300113280628475303561108548397542890815244043562769989619893666917691962305220371778182777219739534584249092641572437075663427861183145339417848965910699200094580355585723613041093880994641008174489029885498089084426607506377312593135530041365415593255284342235172673053806187988879986260801392967667261559386448336287487635459516538593641994248137789529356613643172084882978245629674723125412438695187637677252546731754869466901126870494376202329546918813654430202410584310061574138117236976450396040851973125681226188769250491311904174338548716568684677166742053793546503698235146719902612130875106697615400478490023804122982712362720820508573513812735949467521217704800460301710238859583441907302887586245148033622833520402962337403738137690234553712923593777717261983881625899698282825269801823790557734498220994020103798232248707944763268802126991862271132410728158997417902134407401300565059921823614435025056695670490211614630389861070742628634721265537874023321050638153469182240632155764402568649913362909285507307274560667221685807949461933907237693014324014827351451759225253050814408224328360103013580582947371443547505074138567426914853037112444696930764565542963654185226501021919204620294518529881582679825553891872781157337207085360666627137508567207017072826220242913821642809461078444867744153034256367152788590876672605937107028635854341547064198660742771571032880567497846894628518248380666138871271642461071544173419357827964527033406698876708668490870892331238070920057858415436551076985706491241031883822242538314651694872350210709901043037296535193726886042266880836148632615231789022571047947853940851543044672404250497817336217967960283190655332239527950998052611057366609781097696991607408866015422942208226378669154807358075829926795306213718518569881907580552772012114845683306909045968888082223429560741299130225139540216535122779725312645763515012656905022615361831093997486874865395795474249386147013198727337674858379255552298767369415389009727805171785733890957155047500758211812802351003276235388461003553016358359302261335630780981943431954200507173796316443954387810389869405700072991641077021668782252678954620275467889964194445870286864757510762166348204181761126702985016801706374398869895562033736162845805446997607413595472492080297827743070202671132813976008158910463019679706841132120837899435046070485232903905577652978781477427862270968185547794677685327565922677741436663958445675297261391902191670180716674996469342043397190044757730482297288539546988513224673077578009235149888913454636324266788418458911728575956201906472276869832201278808060384647393515494478877719428754563506997386720698070889959896913712515506642345720729395468744843382801216683605893484375259098366828449815840333785826257541876487949102289629519005249000358777872476437579298470714815664774360970219794635262778007897461781205934259477374075032256137394077359567432153113913066592674658171562139796570128826375307960275499538553225109289316681830830058919476175621454231073524574152744523271575141781373751788896566843685754303917802240514030047233364437265555180450285692479504979000188027604109089057434456009115177082411076099701179488549260549289480126547766803987095274455244485189609225673083904966578997905261911543385368700813100058717892159954415015490908345528893471083095488834035549821381167434644033612696550474893350189391520434319959458860733879405501920573559052480860410383221003736846027462665797964570136756744823192078008929218549127163897978738263781996155864354730078670597787843888838296216483609543132227964187079957151336794752701991248962557121856165393385962841507733482047162167510569166369291132642166287275843052018680666109961070081384623561352527634687861761028319610091518717412932566674134956123671394546089669217221464496915904760390293806155060728187786433636669316438965639454771090919868141137689016505694003268154011149305909474437255235724931823752325561884046106614164340053534377112035509154496718412774304407403520670871841793212509948559223890686774974702247697781745626312358494776292032440176050255889746681808650744647894239265339512966130239085375603513218369578672843018148861748749849539725733148231163629773068212890037897150553675744252244508786739163466301758713318131188257899336105971170444462582537006685048242637542398348109101228520516206105642423904789686990325907938891607994413394863956401405677619315193930185225141330932719945581502179082454806214025496692517215137386600582413929502442742337217912523139329083277712282238844098651799189347733905612491362048053241256810593461179749243809698183467537926648434867740537978277762748360398322584859755315547230120391670296859416596565725131517424004858473006413986264933026710354220084916725299826946956738393612674900759605869176393771295362203792586949552088129194946225975936136057303075443463849530161586220673497022685601386758035726290582099153180392585677507242529486681303271252868107215245404592636892065776225498978507217570660977001340734457274557054638306827581392237051190006979021723515862499362079499352709187652794374277625837961780942946016103538146758833932429436413770520719646418326286658425998104269518698171023270579654984572504618310820733066229201629705410531012988514973673400111433647702022152019762996837180877313153187779346559191057395318417237722324180844921383967758984068690416472612408245031496229479153162932858052863629847152355690877083016521074224403956004713474152408268151767594146224520346820113964008247584541635322898838720590317115352085963621931874123154752211429581559476555072202832683983351130440136694919362058655848516995389753854017604930838997857563569442387051722614962906137664252979099234125759531461093714236409370218746368933584769315935501763737531701278964470312030339087715221989587438020693292166366033380178855417199069989002542011469466311024373605631059966404615751642846107716401259476025592501375119598278411974349028494541113585830068612074964510739080833807817836019586199397909380555918608770983146132443662958867691174730539747251432369932333169181496037635923231205593075137352413462490258538837823382708622932432534752938798684673976396561432773947134025941041611926936670746570654913517370185916133258936626183943094386040000372940408420771821320033888446044737168064043667715682346279850055172164052328576494072055097698742073059852573677555134211290583349380269240554870030278015680779385119446208187182634369611814510226581056649307037201024033532101195651311427071139858545529376124950562334854404670908224158368700451777547123187149123767488888172017018373650560320716178313642002398153153333307197496111048558691639325407460528607496563401193960961162798981191696222349094275056448059361301676712874098247241894103678113726257101493843693560002640231585554709416018801835178575036917726213463032750820982576008607680432416803686286489303893316188108385098275388223384259456825134532286509545938371016574528167068598147244308791306951404065040278141488250972457231198140777834746290877787407996384325219669878978695222881034585791008908114489415105109530200728466865503956013140311751044354794174471618039960262108422100458866816500481848572352040723253423870852838273612349907032833353886046044716787422689206314915157222862415333854405877577690568978171540286081989781467794075241326595938216960225132684941867743233598874468519193049274579506676479943409440635172428113503571561430061905871351085417752166429094934831026705841555162415865297756036698464331793667022701904669630275469921721854726801424531597002754344353181408154224201571630872841429573862573302303246669497179132594559988978339325490214668948405356610878865743963924115287757880323667225596637475646215066028905383899310222454679709913838039329068248450543035224492763595418830182517611538166972536754060415241097970722677633895367737231656621342955958817331024828345584967671433097066708706993015674380531196173956767845319531906750113533217689570118472368537657537473112378051209086701690850306039463476471287171284140409376269557121460034662770704062785477336604301237918447480709714240164287905733891590954204844377279867800484320563127355010152721944784655367052612472880089609776565157778620051290738761623296671674628972175015271113911530388140190470094547027063287006608437102202314209297887798722621876534930870429303744281206447393150863327948584272636479689566685432534755387505670283272531038313351114857714686898543645887216801507605858285849224042353568120325632986424425805693176820791305424230898653588712721767019029166256285981129385853115174100962253297396293131387891292177443863009625139056530924082722359491518490993557693820019812910389059935598381123188064737509623431873632650317790936409378274527636878952177912556373416462391082629153138765752488496268841156953600963253785710995773756098964317443364223891367549829994548324871164234119974939822083102828748785406065201046345182261813599521149841399568755434553183015021579305936160523256104638258164407710653069021166569355061014557416372416802234991049128367330663727699472245443193737038241659709581077437559613013121065026396161277961505736941322226828455120719017635179862581226298981705863330916352234239072842846959969804111669114840155126895081879625875627955275499506994569097883638522970087059215193474099571160162454272603518739671711456907032054267658265463856681751015361843961179400542101337188875134459645867245306058996652530588807085722895323294811288628033391562130171641276878786072903956962586757492969434586340960541536253913454017383066074776754114060072997514310077346304630196639775087445965121454152913653121369090385610634692286682057266363740708135711118988196967163475435858626708455415028166296206319012326934886195956664551024123254208610760128893237930020262224423584861812943105687152692045817706439061957729745694565749833231782555331195164462862135678363880000809624551177339485653499268567545331989117894796530366024687723555213704918674689836415021638763005828456290876364862054953521325142512741194817019616852188417611756109916686223526419397646684114179426497631607937177049128895729694819598282634259878156617007161313790275945770287544011917850368497345797527641563656061024309989842209781782875439785642071026881044500125193416958291894668365857710139085682958593401305484979386273578496930284689132966363246305682215491730863634422142439719639818014416370820518529765837706106513468811974100667140291930680627735219957100609172320107185909146024000286832308737805911010994235766401245116788567465824289199045896681348814595316935660932355198338037352327643858634925646447948507365285735651842101276363765908786653211317630474340601631805887852264992502358314396373942361409933404596351920454219190237540287595506179634386576786421849030409848766733909227208236047097019846110960419084987890340423295801104680745118323183193460394022076867280368200629666608264826892993265185389640099326505078521628365503984765889320324879744140840730601785480914434844756212722086807136034229922210878032887001711730373647536931451565796592896355921668744892152705741667387279425578675793821113543690637345118829918387744765827204134822801317777827148608939597395491498890192568465261025384551615220843660060404511789175109376779443462033267336115335957569623032181199048337292156273911780681602492426390362805738462641883712299325058426518809207081984398588264640128896431485338750682951162823426050560937382163509711525231919086537701308944612575203543328236589025192151874584157413366899744868933291100068793185492200856373144328021791106551641849081814917705247924579659836891275956693005603730487083615074024913526133548714613785466511794027583549194223056267874228733918582639800512495735749661293069866837339983739350941800586442327986438101408523883175347438656248526860485053255037491925043297414404591884652421205607171666803434302522682706675570133359509210143485788325319929049565510598221005405857695033754586806519785637459556136353627328980840519390457675425956955493993045260909959880794466459650448342533192908940464683913312571822697067958584650263318512169963324367631001537692756255138386502745172024585050939947719576598458029283302531821152009292091818014431009182850712182394045157480348552685188273533425829774888103853904929391328432118613579213386297369760287072579842498998717289665123492708582941424140257624916287652675929330451248530719840505707644635108579242905600085754893896088125643779275718634655294666020088630732962193517770513908576139058301834081245598167174246050369307645730184759099043006953145006222493574922252700883473794187700799910152135307256610613039314390080219098491454846390122428317885583639848089997943852498989412502737028088440120160729116636804493676624281730923033159647525647368169915133844530156475087385535146944379211440193910086849335091091734797670170571464247827704804235915297844767651475965305532252066308812386449562885313277547858948030769631717500063324735861650950739033261625942487829636376099460341368116422113084497696710632405524564143234997764984491173860140250501463057755155040869212486012506687814512769130280529418388354811909449576608159228277469776330332890261409857217300423210952659257328702474682086863509044902185562037858697771668869863265096451518984253236537635563329524768462404215958114363762726941975137967908158401545821919508208175389043511360202573708333339889460773873850118692905992524723500241678520931446785012818108736961490215253096576421730810266384464169158639782069133407931220467289777469159610232975526563181848960414732937952372425376359652676411672123268593233740456599429039886420328114249130466597391467589604266163427398467323080629323047410293847947383182836912209729477287777650426044721737358417617981764155019531261506253351988000860050722862752959315982880745690568927363072151772253600071885104425672560282205152123787323761561674382620675556608643109418671059676771034625948563278505283229647253188163660966113667169110056138885314588566690003381090426859599113527675856235415378555732985142879911934107806974910839449200178576296559955395173304513506201177414745588676171105663184017554262848913185464057944917311170729213040704408379268302909183048681459021530910117999487200668068637248781097915970944780536344774015839293263307113497009412455021492956197541672069124520371702551149619910742989988559209095612294482015384291962583540759585334082075367629837686693780196850414057935307822285783275968313265945483474270784102913888765998079196209644697131060556126432065037240759402278944739418988539769322595643349478299593834009908388277665728352256166860222994918359993410718789694478859853136258825013615867779030182311344908858099429796212848392509480063557150557988522575453575548317671877200870599856332339645581145638800142965603160783700080576330960625801492479507769488871325026656541175377896568285742722107603868379273286636095186231932144037350404465033698782379801247885048123422926501381184168650155424963967829871139633050572161580175120146054796411681866005735992349904284218956588400312253042549209622949216188413441018988620212956345888533112552478639990738459372788903444298478262707159501189635918380914880451187724726627832021838498275571127802356593621665239599551031315507061044228193895084541302977290540204161378839411540080845244274618584778909230540520555357628872893241254386271250762054641447518740746380233896015818663183393546527970012866210165709478026539519771485206721328590809098354111057128220273072949933313328940711636980420624652240365293078568380575035455035830652233770326181992904293439819947496358889119274786963180894512721828702301405123181978464229922385436251333292740185527854495904220122493580627389845712680604134014408377567875303642622354407614159090109700203544331286151242496924682444037687147846510660165925892968210303818659309771397192005091508998685538320170910010016740809188614517610158529747204384321141760419571658987950707542133704354848652027636486378136133831244872870511961751674537741313867400588445266807509158758497415908383545722881918677595163256102433445238094547024326906019654158782738120700278929291587867710394370723567185573996496237013804300770706948959353595713966423771772275316795006082919771521766038806845659376838712109627028828602852943420105392072018324682507554381652303962298162117934823314307935154828330039274106123979353346199037801159207519406672914133479895035472568473601680570756169040554254077926366251213940282838239340206279660040058084902715676625061660465686187031517145276690722744919804462409839535045310078456210205446163109537047117311085987964510208410446774307369474366740718098530021384066957177653262811577444425283910866347117685683452469832702789533849480635297129535433675289041664300539627786359400362112861373059023539936527409841119254324971136020664517882136334301625484808140898116365454795906847099490001251823388899173525009725035474984726998562170943032319088677246640187649511127876804148316894856748686753705797628946938663879090360350204868807727183339594691953052044634715874105150884244568467725355745919087695679427395602274287265182191638699179464879791857650361662360478548099106014196900507484550300724929874853722252227880382551185831164078946815606156659860589359817036846907919945807182842598858713432685675365512206234061246830124513820611756972147390018854373053855010274545761342622420611420164608406444118682193332628480333783038620549078146887787071373961029652505515815795317623213214586488497896235982703719942690790288024695385852004429102528191473435625459448680181069599825783864311725223995294505758149307964157090250417220196149054575750998675224877245867353908931866122055558423548569576815378413195163910401768201298077781241785297893879878858965683161110420222436223718055094103250146655885441918120377361277260405186771656315632841404006679236531525242845871070325801182174100273068094336605752162942773344712806078410216586834937130044861566900653414666654581811760969045903683864539475590909938181645038057382280732544996716958597368467487183717791762087252907955471231679577211851171908930433189432262921439529356593507132809154279973456329730171269950120409290787529018790616471509720068357467091658406265658301266124592775885029652322575811382195237812426734372241304221282543745797026124948214952881102350258126665676502436256009859193368821069082269407054775982832029020491945358232265806613638823577954338167783018713244459850891316147568162213097107273992614937407611750114438941531881154998002210353199253078639824377572102044580105395839274936297229780787027031981837580871789871486952669361146682778656020345022188337130841489140521721664901152869314425607095261098778599064330026652919673912032396200523571145560490368066620171024512884511402766290664009250265164545078419626155134262733788197511041467358690650968016544625137329427555951437794697854481050927996663835639244562789937492027013228146406361232724145942982246804604362299233288188333146428194114427476111477614756650639384990405656744148485214140953801217833045746586610508530598906448169551625160855192464319900960320544473868990451244945962448367800068857427828373075534189680986565369108712332811021929106832092476934679936706876713863868894776946335843880792101744297345931399981146751436918113939543847769061228763681988698818745254286471092175504239796891196000890910199707891890264939311577700714536950783485695148798086035045288578272218818951045810435744802668761666871922402970503073670579882930425475924436583824550745655725479712318830705770666993550327501973968255539727829059581212123484810029887973168785840106530122762063576667718608790534047479072280998917264832533967867952188177561762490112765126523458394079684008930890117542573083650410353913214136560342722731507134719780371543270367759885882737761891895059511237344860818409118171668500149183679104002419939017823769953338873653360867155304885616061704947993574860720958722398789636589018580041774514790172917083361374309946831406777161662547777154359805674333707060461535431997324041461934615493537311042437272878692762742136429945193938072942617301886430203097763081177978667305392886355071266502683507606976697361644558402686282993651711937354685384155853261017294939055469750327658476153729215442725679179697066397011232360384604695361978851410518191811348457428832377643973378240038572668158882179607316549013664538664441544850019650974086476901783977757728290766142523811068812351073713314855675419688226840154012612092993748671327080871878924186055883220087848669215153216333063098855063124479756856251613486591522216285058699277885502872105025876008248450676299027654910163591880466805837422675828430848964337949342501666953124422573166712934271747292257560977390962951385130164939515230657439298739134645337049316329886729935000033165582783007913504680926105233512683202214927229065342079338010545653393698095645207321679019848034359941071196950607544336534337321777651358023982532465824698900156206016170400496126054624546496448085269454830778264913964888476653981761295495975030173581919003549522762677908184069492802550110641877528844344666455266929503285016959080133653322627575444359968099833434137312120484135127324491904442028544845249665899758290204942054652241151362418008168366092781776318749789216802628519100390494609842264975600992985890480667669631360503713900892227867465005332380125564235968760444338385225912357313719144827332607948232023721665253952382232362441849111926138071846792393013852749346937904098501137363336044530849171808415239019842525669893670226497445605443943792489216574432554534383425253772602396632053359300198900596869079873234192761781805826034567702279368607353509687305848334833217241108010428935876725961146721739058919636905716619710929038261806437346951716780708183379861793554556512604906105017207416630019211683909580242257696307311649479027049389578693305059516655525423126068470022359006007837142316942573758632655343790497324768369483081127460570354260343018116651015298698646173140376218192884747752831030235496398325059900929400907857925095350327629245026089345891558590203880671736348663998077047862282517667952507133111299954360339424178353605080193423796565263981993449734535957584035829845845783956834915428015178951645597952317973451130351577918474353215229381764375524175020514628096609979265814387743667721674271370616902050138507792791937277112418636870522999571169163598059949718115457064866922759951962242877008194796495073290166830365914002574299593025328005057467962806259311584296229101090009208983339788198657452348600414551723404392022918644230486491090017899041223869271714481703932794794776027475650226029650577234212091142010097205518926391978973644027615221008092805254442574831808631424999041766295708868009601586592136729772824889601326457814065544278732781683915616173827249619560887025714685875279661121154773162349303799093133208586935557058388142457410106401584459334410630830849799299526917441944892693809662843345542797670991707051323867572484761677391928717763835529936492724006788823033160150661103625285480032210639292768813129919924024552218061999197796303852287000239055668819663496346122593471241798637114261215859430969865005564914506754190977779062785961191962373304287927695457764030371441684339980513403859158323881461168998106335620364591291918554033152560536956416831629542249748132711387904836053606678466579446024171230572593520015222324797728861865613678747414937448662596377898780685983918188951832791080350334189469466314778728400730323720770449815923590942829977829090259465851926200930690435397469253059115807623929932715251051307029516687186187955488060892872735620007120451484786030461873817008819326365219250492115006633707635896777536793661760441574336255376064625520488491147827683432283430889002446303239288106495882430764501424116460309042670900757310306272125807155090383525843480749008399747676667061778464198711146948194458757450951398818233427959073528446066585925287697889538337195158786364301380070676206703553682452895517661387253199250815448983857698031907853979687115671923214011393799125441973574213782291911994095250331404826814057902131568439913234719873136875770721568858714489858834891563368988008726084559858972402188303596671194933803416486271788816369645552868511300933160581977708514427580451247736450154176371339550015548016372573693025078058731214046833478081354905196367508140098510385408290328749046227543641965271760045026505645339288084899884402754601676471068688719031465305249972829620862505968206773132751555114506431449560720724071270105397575229367682426464515557926157088888464232212418767334610440496390495520447184398533120579558152211754800274991836008653900704136477720145981440456862529572437954267602182326660714312389474457453096294709066845580664200445538938409491622722828725953941089176239429921728024259983702874632900611203291529709737452735522290260805867671814987352703293852055944267154415466302011714616677532316522306578167721204879825511330529240848790059334301857831225089387940477903737969471031368015528949375230090083268285303390749695820256336074998340104617796717829854633658119642107189587633410014491950989344020941442438551950513373965426644940005536250417996265858158703676369157706298447250019730211882888601117256380988261999569054921745611531310064814718347092707697975595309910600992657774297188846775744294009456356694838090111666655678668505115711753951760926264811685811528906278082908967051788009634339569344348823063686227626798576679211875295825221073215855096771175611380684915053857761388009401832937440182742227858185913390664503285209492102404003541539995217151785016577830313573400423175698630952733196150633277227624050251113531450109993693144227921314951932213149055701054451914092319682459191863653419739723240347224860479325846380629368784650613307770256004071791119827403262713442103063729745503450348429296086257924044136902186153782129031924921027720814774956915963015536179277141971847903171902547666804270397878119322823675917449850047162464368687335399958965000360951953325662838980304529934057730321186614366018644389483442880975941701347562601705202332485369767601773558389083721969884471928895043471546401975638417771941403655886220873442080583738623054304198697762970049423430990564968835350579651461565840601414604361218422658634172713407159379532288975717090140633521475408381717660105592057061279290779954505366027205254505137526611149052600402025810781602239826102170530220770939410989226078644946598797363252919425396583106959092686556195417483558807259148590740969986321625639645331762747727552884495044539922997627642735905984918286184699549276414934401757354006130410385125455197371462564683249489252822116947839796132183047789388523417850895973154229547547782915966490752325562885675900445642328892966487110712517873454768354906825016052294137005766999936675298801395026744362806413616761318581956206200119536896549148766044734601227545327951897004254697253559221122085789550619919222376468088432692880084414550698438151960757761690007829953057466325168783007102351993970476111670623750881549526440548878903180573252890167594847806828962993846006801783268520537422382384341722389156720994553209707420154085421260281081888353214453770176646447066853335321216017447156446288678465551559371041094241790010756446085582819810201451723835713528783046424180860521737350470468370842872806695389259146655232996767767758645719742349027038293547194916885411513222131913903974000765557517294349202356560890895344746767698053715212387719701750587785205662893082229936597376815562020206534749052248816032481171001221247524170747615032653941524870677352872644538814689671672382207306530610208331317424244644427818513725980809137496494955959663148233408101846563711335835089096086487211371171492020907359891364111997069948608939364489393929686899730223731186738648041952638051683957916304201643088819333617566997959896973703699417761260692747942821105737320248952349846578450904418043058237088426627465501547288682667616695939305125004595666330507983329019163165672655277514997217676283884881320357237691115017934987278358038791013374472765940072682352805171343872175481271090815833148512628931310449187441205419593090771211442614839501071089447610536683319627575253421917557693436050395508803904143143998662996124569489673222459391566977992316746674753862476635354554595704210366478598528235662953884988261899230089404580642200094361995362760290046133107603738382064638884270829796227366895850481355557331778202277461654023716637831760046144956829597533106558262439974850066921148253823821624481440532436376621174525013129424902506675120287030688561742151467798224953128050284755897969400490460197468966186038828091610769642268673031288024503406513643756282958839084478325016673715264847458010706602633707336763817491436923156380828586055274076524656100274749541619650754578699045942425197784281287695178817873490758473055632011659539693233039170776727638827944451807496420913296237447282416925102604283161594205459242513046617996571737353875953556020942640523193736148172647803695329964543844481787261878166237933932332648653954583038483574844510947472364078902972868654785571373052065576735951799206480077325742605125626852199177167537175505482909978773393348395336437190647578977745425668337892610003348916320038478038905674775857076283768320934088600882713205435654109781968528265361468613035975746892804307172286640441770117320435276912754461994027873767840941928331212317130432320938820561302446468857357679689648848043389082353299147601763564612845367033846979582147768953365712378308219694763507310220087195375824251645795637176126356505406538017424706621189795749916796025525764665661529837369954292937586138403421159264277450533572758067843525053294139622708726320221088929443860412394647298857618022057714847044862375318728668608522160549431286469000817765796162694295190972470420598582593991249807672158598685224414581603181669054667364289075977478174001824559764165567956686087732504314039959859655943055950329690745722856510229909325014517003533656117625970521377820699041394462354789735179676464687614154966301064203295485108342580825202829552266131606765104791729133500706896130782244052012616222227390109272587207090808675177021766748277850184391527428460845212238199077310132878304811084420214564325652248801566023128089903840638249692016425932052410374167053056434765412940563349298484698381489249850120793021346298227025950420491652060843576456441958070101037106141095822270789968727404933763605764262943130146909929002989049273201098159289364434717718072140946795766893130138181335100863447938106184047993362701830106493777230383694619714254296958162171319960429702779169219221903819830839077215475746770376443760489175789333981324855033490828796653103896002359315787575984505398347384498590146393148295568327708183913778097692646750198673986507561945166697641390160087560441060136411916691909738214611979592569348824471588613318241266531864330938255651588348430291183086301915143945342196516051724628716292961606533224888550215235561418800930310184327970786637933785376916192648497664782007132539265447850857336748999723332193799086967974674988011498368018631513948649929656480411502887484932420504687374994697189393739304720545690943655514387457636707308989326798793017076465693181887440642625748114615276499983609164943707778124992069050609443227894362543174885567464632367842580998551969802097373129553100408809425867847061767902073588553459362137507725940869212684095016746985415966053119956011478672874129728466201492229759976569130899551797296055120852362026954127674139752008569002173375305868021759771912892386248197377990919683730678864625466032593091970433458500423000838218175252006329917582198846378629926089900624697207134250463493000732020874480594854799374850666317977097755202177500780605879562852663313031736225760519824437851870284589767658789369612950862095450372037585905755973249563114059724194088387843460018164458850498147899134832214049132462729950359590612376223030211110154679016919247058665624542544962542356559506888557563561299588306909954614290630349808599241314003655838661766049239371515795813199952422496006697384646221791514962475723988129897027658670483810242111333944196255697897440183015837126164543404398097524638235071340026695553733292722107360498200311300337742908349743382677703521177793961872183777001863081394304670388075195420346866769449827777024824518644165040875519896730664873847712814583181960476548681766938666240116294809059383575033496466607522247994603722491475910978679638141524489958101601163427989233079546788523934836176047405634009875768866690355224126157604027230440465152853736211525427504456825154958327939942965106731327007230379928572420813944112047674792363744847301132743524393764147008148716460068295190741402162588483933507417412178056429561950750905058517293478037338198418686390489896065067691530478145854626918926258360007976169850468386619105618580782707816779718149576619911899701126044193963070065497624451938177409646343588074184483627987643403202211560911853990022203285734451926280489791927223587422840061947105640249026307532264569505180657056612752954044847689103584853609982563905504002824019504876814992790705556730694481411745873816944270565055113232275455280584617766285872651767336454427627407782175959593180435591480434665743346738092288805387914939966565788288992473483338477693697892583282272423921092630797861288196356321763172141347953899617149714151538140651573853518655680026582502881931948907301766192055874270818849148567209801455713234264710652180641154301704631392617980210873097362557098805171407618832232418780171807417963341447870928538960382289167222993289656545358891610772202752024670868258332508223192930419308241959725706851502115174064688312923169647798921195985038218413303207997315502143907876474621599196421332170515716224425031158729941399084221256415086682607900565153388159134736552148112389211433027432034826997860426497432058569429712859194153727460891573802550334807472809813341096933897149618038271269385186004311504153358915671691076097246763712088528849186597043283599589096488137445324961230919776052366297623067551437213739058374709888903930402385192379730044378787248377992590645344822120731862439880005206163695037688101969715169519616076190318682283537099542000350439369029107976614709508186167872709074468420578453069011164458550071875044870811046940728895362997901451199032183076120493294073217602920489858248485818092923095416044184766551677452443446855360988744046834612688210050767367621031368575884955529059471333257042339391480979599340198660623174723300008608772032231661057069916413557792842410945236832085595799545234189369229165201974337019204536468714734752004026999224649035407887668357468950217725360877401131176136034489114189792300454393878129775395698247102328675988115186499254615450081026716809881677958277805446086034391152378963608929372186349701835312034962111917768595472285485454693269813963395628238354123051510314405244088688111349790647693681159229963815941639638088070378122596208926163219116668920336958814893420310183744365561789953524731140341088305405334951797418386735728616280277518511169933066327091740142415157995326203683560006433419353361457717760109436513347182758727813092675748549923202159124360043896364563031210616020192209163983607746227686093011114939321504177806984778014713665334310947937697245953230115068472640492372186930815809758252160591252075582485957160190296178371342460863770619599878872780639775766866022980664775561131480628320871369695312934650681141037326462727204609946246547599205978501508444057463771213335609084288807898834608642772457213280652597379093499092552987271881087571044349673746609785200757540960393626173831976379867274371513660760065683203575212593081936827900630668279474491927618789414754886681483678297632605338503506392140593044269454506363470731021710023452567995930257275410897735347443001994992605553915633231959373844889482339917323616485373783863716270295898300573352577197399460072848439194788530491285905428273024323101289358565616465304369743832945440948840256131686483620829062562604644955634463060080532365189268940405560403129099984853148148251248073245559643806000309775680321602006126518178218346839094396379216751802273732434924049548922153137646111929899333551911952652241708482758891116251180528017391074488486443694932149379284685822408168376591574382120509574634569451946420548414424442285753116347712827587805365517729408570876732404723374827098258758919813142779155353999232120636861760722666304585311506072067551887002200268247837018989449347700850184706079767054659930669639754422183265809779649293797501222424737269730651869268383988578586002231946781899050733670700704535363225435830871687559793651956086313704754949803668056068756442404690577611094550276978849583156771741569290677086666136007463599029484446575764258230295219686123434740488223812166164338400372399806723595423469276121115917922186447969997400367590615808774039333732273381166537702903073949792512188422956035176513928644392399413702390406256389809827181737476117523381684727993778467077121691836997848093128322018417760069426352837337385876600560026087044046044143056753376690359061237477895938070739842454874295878471004762622809715669949526749845722127830249242457603145338050027034807430809530768842287350834345926181791958982311800683211220046514594064852541947664992447320813968074736353156036004448439052962674769219281706151280190519142876745175656289514620548753612557103920411471942136264207620765313573528011258611880987226179678427929557555030141516095735219099260274308266237227654252137547262263531786863762696151679285225862601493042069596732877898131902129111154591741314845113893954696884388258457871818822425660560523777328620705339076928733218238558796685264922595858442429488453516362247329285255318135640584231764373241202046283466114685271439507814114769465765608840909540503019062376912145151714389545927491667282784356424577447370848459789863550933958849813299664381617451731691600804764592082216974874515951380748000472902435195488825239158881594857712898183862777398223540561669889358228037683697868344364130721199433878916249704641413028900433096202212805032047751838735827502779483266591127674822331062746287471817448427702042682196946997621339620827610144233462104380894360865868917071824945004746668135607552396724434032329491728818801840624812788659800593945679806622605903455763476354992130642842271483696919557580864922037646728877373053139310157550060306043543511622798139945060386401495064858838914306631100243501975933295077323204744924807679927943419205936032287158363544314532894023886495563468697585593705461822008346851780250472670259537820281742602763135258983463964218935068863057595409295600878247786451417891203026558578780710407019448186442913767256553181186292710751804225521744739225937707196760274165033650283895587819795406374410783995061736496494035334212527714024173853740176061338369665266774746607005441293841770347104453959436722691257239738100529925065269568750431460113432730394439066160416541860717959161410157744118549516930947314526977417122242480957016802202236066039129948525629207916409630860805410815571210624376403634454383574008196129744743314865572222048702359162735549777794704553141937501140184872935009515610510518313140385060825098943282501024615229693662963228261322443490116237981919317424430634632810788937378295089948904952573390714575390073715871061526523493299090950772601455992164597879923426111560748707612950130010680328732776836456686896249671816559526626312954512256829594146265992510418021550496111367165384034362426980079521858618195788138613219201059686330024104708860402840454476233178560567432974184551024429636022069818411908011555654709502548335747918607044919377611101086863117173219020163786163075335444248600836716961189445510904245729888317112807560416723867074725915823945940189882874149520975160827338153905544943613307687009684058643709367268419529569901580557996448847611055229486982898011806492306765650098569486743580612995062801166298730826640531132478999969899644749748941518123353931986363129545390758534521014537813948812053811763020908848900024626532704278594943315495526308951277134822025411327905151180886430694307116314728896101954713410341289658845073701659354238965918546420276545401974312143175879007128574219074098789843782499301061350422704277446120592875799428303302852059438252243008273808809869145971760057243613170367351940466970843036761737962622834685512523768127465155042454165495798347658318567021256960004529525337189019041406658295862688968462783036707611745846193217825005011797216087449363451049664215604921844823408122036697083787975680126645483055557959760825501553883982973223337889662921963007411725348531187292977058690211625935613706226786699554892414281860243111101826594801345051598211341759842900238008761321105340822590832482896482609632968533933003826462197568022724088825488104818067489009501113177109007376534754580641949952411037165167859799367370373725518887963049418799691438002624859157349984902436525778674512590734220602996900504676034035131536796576508422323704175763186609196449488242210222074057901946800846029662642653390838006333903697815166384154031228821582095442079727192131464218230878532870102658123362367131094317492878579283445707691995520062868209606342329096927603813151228796157569343087936935883275328595802525747786698698512735876206122921060739331861186950385342585086173094874974027555890340386756308857788179338629176767228723697436144519035051991768354929301411546310227979910495288528451405902277022570331521051326927992752567481204528686798764400531688382589334548436734409077161395629632844948261672077583026537236369489986005437578801485983059890834508609359195213961218892677971863773317936337085816390026149722819618373264439298714361358562682034562191177922917325950068373159482885552995867715624962352441895915412551375384170053718617887600451808429425274252955777968065829219007169935460885789571995264696780849201464271023010734676465610473281378736151066403587147372273603882929745351885130870316445467565392947978160889917303957155293954356476595221138137270378571078558157477461514787384473850863147681205374165196376949623512799560150472559977892491619300251794254785605442452187593194366575754167535736333572255352169270135976925022928922399178898090978762882273990862331164003692922830237930313406506973935564097663503694486492509470242635239055364071912876016587939334258403607544906927056387711039772833628872505544643114120002746257036289141496060634709196678339455432519952914221444927105305426544074390879654594558405715537110471696908331001378657408235205259970396188330522880282105399576165838962046192372218138513623170211663067101293615635679511106902546241946548206025504647619013484793042650248030328587062381405994825954491194907565901717924915962863166443513994086340059675896392001767530082724282795771222488871420439063817716130785800228991049640033476834162063596219677948581447103687500980024652142304561930312692502797123680274709652559533091842296945575168182144706341571582001664719405011857372493484317724874762068263787323861058105167155232260011393337408779213919786776229698072645138229404621579803961383412179184832350467993279994872436424596734471896986312093807365318194477426455844484254508073937593473243057881515851698458504070998405748245587133171298947639065197420311068043199920309927667973001585836805353858237537341073762393402838311239546599309281481873935712084866151682029739396347005047683091085761836350235743923831028949051941249603330508089364439195888006680362679682253594094317751677746385371150832982605401917698187397693294438054341094705597435853060378884275241016977170015160343499542755528793603552024991116897823421642730773733089852146427226020191802726670375095217028808913923078448559508410150731426180916353846569328096593530669736341536997000212838885327932799400420659246677620225112835846992279021491063656155420242540953788701408878579291030599991870669837839127906459216774000065457513528000967951405438657653758540579022677124203893404461032997592041518510112341414560179602315806770067397797701417318529992183403592034517721156267285435513359032284408561361085957301576410366127973880141967173983964277611896999705868459605846335407897204878721429610509935765922503862511175436729536296948401448087887283264864022469002781404088713359753576319131782594509261862773526191009425530080536134112205291102260784355069817978492691932671548621097473948180492266601848520120489112267638737519703979952588125153167789820714231239319105042023212915305724846880968774809411157349713959013496089861739380410514793894220870091074151865393064184473365674809810225271497738149841902771423287712797409590715941092980265837148568685423938460550780419190484256259138115592966013001153161159810305953292625073593835769466047569033226872910805041664534804212478474978959635513253544581807564345981737559776574933250951738480673663422690468598637744068723323464031153776838096735795365427883847623662269868580102577472439216578534780034571930730258966580483976011321550951208207265674727519731594774065793002940496234295778508135125575950483979544221141078676276925072047277655311592303143558641551340345411785685635210751343339661464309216946741212747493915736700182350326002201934949849509729410135300132985607333144030116558601294778118313607641974134356532204130073460769781416654977506213592775039442602556553833976890484876941628701289044634297519784916591879242111262716903320044973762836978196384400902840275412356837495842023674019094864251177636404104901266847383871725300645523540658490837518611058020080690981063558502526415434033143832091549261770734942205576559356559991516281990688222390297327796885033972111880529268934216573955058400196915144780427302769805996199937612293940252450802496063872348838295095362949343613234830299018686025856057131632148807761440368160869953941962140255148224538764959065355134950142824850139489191470551978418195798839783684616626067247343669435894024259792395077019023628203645821426074413924839937395914515352307182969800053787440724914577710365241796836201482855383474123410681020776489962588500964753465814411405592864533677480901091075584739908381119779332204752934661563675851127021913444435070581448010339070955481284800434739777675740111476328637659360483802565820913170937715461772834918676395421017178693695696575951549663803777311742315891785060131625305174003799779232792744707415902803710338402796926390636045554671798405397926840290237711582207806587461217141554545039014018939225625884179335309937347159574796812983348555863162857731064460111852496414965198066705966556469680275601010603812397456966152615476162105306420596528917340595843459686664865473851457809851217742576119725633648646076585536044737637416654791742588236378119544127050124104127270711158115855169800085918323007734064860393913130091261841520970255102708703336632968456136223521037154666874039549601671903884222400638375176253610228189179705381102098742621547677844106404639695250546678099253912727455482531533251169905386887827976619800877402762118584570674076530962747721641900701900486599784702750493976622066311495389834122313017513492804101484624722051980564456505717028687034937995030337155524739384331266382377495079910643229160293920673756765759869944388143507290732402079177346737731682179466870185070252208587633736930283368400389780911435396520853067112670129782686025310621262596093209433677402648432687129736447111473337181017071437188735260973470608210266670490814007142320802513346263977685831789481711992995510043127716434807866137420693791130456753640923743696883824952978533162975929335652705323625246879143914299137766464761962430606204278253032770011406660015247502654833063200708018463174401361251965479070576175368238804607929807468436137838431386641788267699007485972370008267505844815587902547200834641686056975222321477428173673967739489344024520438943077038218512896866625568332048355066561779183633817953339130148234002829489792917041256886143925025132379000765275564121438294230492773489530093017116964972587817748147777977558259365219063063071549955194634136184822581765998635926863424331431999793243385316835572724586236435265339559516041429722417442096374197816631117819970670580964794751870147329762256452127018111965569524805332425098883305965688404480539722705260383771642415031457785562185092683344552093715882892352254511423453950112191620321866732183815309525418158256953404509759793788334341608375972997948915274938860353562857924845037762957007393315492736063428079428387567185698414590468262960580292012449937302635656933519400258845504331312762774200987822592018938715119318592065354293555288096758422752540204136593328101707589939310607050265409077660569853304371435009133071397473375690341652202893388236557674849512554209530561066231738844991031841548622789344360386381678487683861853305740703031941035682729338442804899247631980917285847765333985441247194293463711803411161342367551607293371377345585171527425486577338519057177910336238903342149124339423745327657177882597316161789021884611208922404699572187904095603856723036528695881614042862365126781196526805409189442089624345700941009477683436879290094868713284680493562932089230293913877916165819567132821574646932405050573287151017819671669814714507768919512800899448707096485971469675623394156193806027592830427664098354228991919357099622594276228989567999055088760603361077197599634718177858867959030998331238593032628487432977396142885852289690005916202488455165400793145554847713306048222135213477424802406794037260409250503948658009177881809426295873382032941876040109678986451437529255655404421890937867563652774999309252336593263808290258547285254556164079826286496053278696196260623724365239216257402974545490310233275796944674730341503412707647987710036622900465017476641432677541041014562815259028923840479428554278347875818253502287286468400182303153295322512673183087996402112373451432681608513828280529182195853777357953692472093122094860581664555129188313273068179474997574217933768232915230609261696331240602186197207662573355268397560379629929853602329163616839508673800101338644144764247046451398852378285409571777035250182963421461376392767435893604495951260678752675851856509192315322618299827439858360189654162310049482881897698878277933007292299172254846196776292088433083668375867318764514964425657084247462898208052669857687878212573284451909958958644286711925214076856149746992091097886400415770453796799392803749690452652118242877610441068541586367982773394264343855687997478890426684398197691966707181607384684690474688731952720960560907629076042130971683224430548924080455955692387852282170127154408975540834349590496872850628800251037093502662352504151729192867595197835157849357907914694121491156089595692625492294695567251150967492524642907399261185010785417293113556243879432023277994190987851850515408227071567116671108554343095058788663866363469981526138605579475909931114684309801946515762381019291808370387945606497320512489882378053918803969713525668932761348869468232295860747702738328141580284123895719112484104823979096109418721249554711362247728913288517549403888024554675623342032170651156750546494846893023283424534937547285194709953728010501652405387109849435083012702288801116065728606092397948039035456184151626219326731698264253783760119063285912403736776972823735196534096482874569426492729904249700604695160885760674994007273284050261173772549873472155187430847582766344499690846742126950112047702356299999298234737858537999214189710726081677639220460177210345017378331514214040189712271919707082112585735330010135405252530141324816907121557469968459331412552255270018581542717179249217885743703326470320962855745862223409287155890701979817257177047806379877183134393938130029847904798205455479684430559259151208661765469397524586828026492491809512520598239651162502276800510051390163097343335648416653948038697385535048723034261764129096074007264378159088710669212202161046305078975338463644929768173930861570532049746414635953211500505642143244521447820028245618019278825875507264682051478421177050192492188766548716397665152793137421399091177511667281309031301265840184165449465749711468462211421918906755058592183353267296287154174946725546355912357096153922060174784044623828603039663701079855925888230513332889478029621176781063245568217620325478864694589119260939143993684776812183736574873580145214669207045243403683506944811265139930162354952435048168089593620019145527515322444281169578046289534914115009918391771830632134705889934807963508335728940879141371996289594897230189196270014083432893674450469114198914076165790985241081597445721748197389869622599194267787765208244539106871147186327531149219587955248701046618282680412517881679883734743312138752852130304086545934758116050673207719094225919918253352992785686949617664118514283610142275581621814358908232695899150616284134485368736173587054466458957000266275663266489376421266218259544284361236901330686467556958541162962733515068864488853371471325845318576922180141513072776046862737195767429004583402244801623934490854932294283744575854588067515765078129380698993474626096621885228427360305030290195649116956269143272856217076945582040609259314187010255512408656510344699756529505847586380985251039611388920316638563126716103500680274876646356623755038810713765158064224167673726223462450871768800111737022658184385436830507846221620396435997014736650017825145233798343147865281818661423051971148342541486882908711108022717231821584120056954479672270524780077032901582949388810882330823557937741304969105055660135578548278744878398920323514005572884152078254948435452467763272230973062733638010242201987902971677322020116793563664722644054026687460556887418844361784375913253981394312576303567916047163381386964000868333175805986624658287971297063204723171447377715203727314431532801235102297871698070238769125525183162394263992445251405272468615429940681331091619120235735380849337420960835342289002518821759326842356185122616599463785321128105807423659946001274123687960529014537894315792156608792242737297034774118939039811500994985065479795264097440433989449265749152963400826115366913964350089377075256100656392342847515984607648007002916042243713402263580393425164172889593757657089446974998383701414103992644342005675767478920669299675432248193803065893859091135776980888626828517767680732808341044922758832262990518793359136340413643187846647945324025210796677148316933844883691081192205309015456466904029255649360875982163082390098848218850211377981149678850519710662104704611935038571230103140185134496723587096185357255890849132307152423705297249827523521978387354819746283855831447917277580680364417135537030423902881011836367293581134197906040218287589727666020277380162349234941817665075887501611703178991722804039188713293557726767255509091574848824797052246429306463005893448769747708457593124486759615425062007431733198671706254340670691930267809915039215409165355350499903715267784014094441713627257260744072237410757602400820290807096002233059203695310369299368042658124930493680153981304516673902320884841775350112938536767763177737290034803708215080895657637429754753993249843153105456449831385580117946169179421313206339765478172128903686632453884613187894459837911241478704871762583310485896465467921133082317480481774860418976611940277487992118803971934985344285277070542300200680329884127803841738347209429940268996753342915847949665991181238596925994631265294255706682827744060954793093082429916654847448904128704464384301885578430345511495980278589612514242015461682627042061152076172418605160029418607319961918972306141906203635901540093698110000853229500767821770509083373603630466285358808875404226697196224368356075114378952355739559281467658628187282250775986753926138068069160086796861575540821306999785651444921828248899052131634563566606958232336275105495701719211891367115303074308521175499642768218899720252610379514980570256702037638320676870666723517867065123369239802992380142932906503479821892191705421587611500677675750833994716450884450650545025513320462569471967916487570980661928431990235559803841989519768461297894220063558261474050707078392850893697480939620907107489617877190913959821041489220204402981822166974732560356807085468067475044807286963512124722871250896626899427665105479742139090816733725758988914092279259442172373162165225697145264669173410081982861790267368269276419600188388070759707100762909065468831590952345261725275832119021180485604871478838993450991924991791241255420243397561750873524805277169979241160487383490018346979397918707324078729883900690329529342143729977220187865632700679616779822884209149917003170218938089327250840712736857540366986919065405141683340064492405816098033255918377356219523931828645178336481974534819865127927199918575396723279965378117643165031459111075046030591823353299367009181665658719129356680497030804570092314458828969258295993893614315866555847972748860404533085378184489744792501129772056939672233826911794116952344000325888802061936036877969811317347133476276926998079247248543583653869047571557881444015888993790026650219016579632972816677653330191634852395503111934294727640724775751957738375671423267170430080301685938802136265760783654049736310195502494526164044879135239129384319058175553739726011944744483752615199562713414918444733745675430190602358413039773682675776351309126707102447029660730647408383458579190733809532309701937454930438038198587752399056964015905466200870411205515958602982576782141748021197298112368985354304675010524240786830926134072503222944671187683792323395230173517474423173198476804253387046715324293971084074233695190969298420143677071210326316150039782550589471931392622276077915921458402971399924484428978199349297233076378829308670323561939235676618325018728249237216384860067714553166272634331147770064480823810223691322257042783101821778694743832784042003189592757120589410849961541968398532352801541700810660795849980826103486294686175933412383518061721736436764290846522886349091268606948703837817345073437554967482329451719419662454267297770297355909119845249774765191304526848202854312958147536392488336373051743825416452344033778726739294136350211407582556793721649936537865556906593354995768819039469783897443622565451224578877815948238458639210707558829567773377342219280467665056027060815578808203685689749535701955622555492099171042104214973546195919782403514543218083045661009286566171413328109358270558101578395702326459426361346342916746985638482363731162767389871620404310260984121427636694809158618876055441816662004711580623677016441136144297207950074976054534083415708436428493589514189913705458738468626021349390196313551153143786119134086573178253485250977721042545455241971199361453651002608414949912339125201307725920261376403626808731750592707193540390681840945182738397772347360132512884931535560343220845660563719576142904277689877761211731347428719902577794434680131886172623229730930903794988074232575445832556576046799343498500944138337955304246994528815321904469957904044118014495505983945043011599326184713006156883594785868656015499868225100364283397889309604184400397273569026026281688507073273772155018322845454790344135930271734978170639676483279751192796951646044132638742167988038695826690410143068953685407357330575939616837186495177059269107142318099248424397291871758264160387430050952359958822171078460160602799900607106807481473379687830615204512098268148081072044982367213377198024384207913004235833739028927105411791483023584914852231901280268494506204540139352344320166593078879193662180238816429338462787952420477530248295229939734351309319700633830194538042912652555335528344332566204308936606407433720603722920122845200999778224077677333932560254715350348181238012956873860088773128628735029099700842686131376723780582594006945184852945789918600335398650830683638902552023216233003870225067558709708648470872190882811575310354402492838127620573123667277812371878739129303182601898478429786359348383602187655967077786909537677387989725542875154484760466654324870412458070831686302197848074757657182464977198109793925243683749444944896792068386926255818378750976912502676762974226631212074314435353954882218909050179288608534650299622591663539378681363585283050489844987083764706729218230489959969638722371712644399644022719033579293900726910148229514993351205162943136139288419156660773664409014555702935494768534021877901508958423032856797893917448470686209173020842625917255428083033173478496170784342662058189141493731389225176986087268997199276499567436161650306322987943720107071511302695602407427977434974443467013132175826049214580559044549589845154815297444441836734011439053192685067980051219812249682024169651067539247231674042657535292347405621982583843300321299158479401454683269277739665009492289694775977402830551280880699633143454010836412234995077677961495840092146726525988947747441407712939499178799637007846278045030029114840359694572806003339601339862436867024119467872631375318676983341778494101922263102565560601931778343775641405969471439098809149617093043284476620265452888899167450214082712212577240854569792066203037289428087172798374368397831697573120508526203648669860449829430202467629423649309451385435518065920285693209941602063300125058815814342965476564884851291384018562516126974314336453521021654973570595223641160968916045482593119241550980399930115023519664295084597561391109304470083909723569955700611266862853664486231775765043146113297943434398613397211350035566937337277397036879120270415959279746710970326701309445522458874920376274104200480932958062441185350984283109130731118907297743389945847941420819874516587187852723092295409570417987773382533785461014341727900074182433496347403803016814974343204804028254137957776166872252112729702754045158195336053368966724085318965092021156003035773907608165462818228770966932752481546897171850460248969758101497315586993098375223304517127369159275079389450720548869654876248726754571161601488900843062404916252241783806738895613421249541835077980980838416272511977700074692552669350433998054554682145461554584989505858621836986829585149872776026055106841952992464654455704609034886000135114549776296111350280848683337444962712682638763339178757603068672296610089041770298061750322266498714435389865937488473059176110063678014068034915700681099784924677342055864227105787895956365951988369991115567642508331101653575963672935063182605152785751456707618273028981828101536279857449660843421574940786568207367661221389100624833972768006083766035583439422529419550921512271357177301373804991033974562135972547052641690158201223699910944710260816986694241268319057016472301748045455939362377530697589601970935976442105823270029696582938500865870248233914631095047296479461009453216115564644037203627120389793204674691572595993234212048413169492192875582526633179849051917172569625538159139918705695027750469290106178743141376921875985654511658221181501572072817610541360665206393189175144081330780132955153165902375600557024721351208159663919794033556696317472887384942930871425176724471293906065755974303785354677970726642399757209243135350932276175281933907152002458275953018058655312352408195485490347197950512353721838425173390543900975750265969952392716137360894157688946234309713045224675972521549192798288942403507601720885538494005668323029397862740591433625453080774054559755145784934783932327517984212032935370410957001564808352768514084284651542635855335757636258929131925802495846865892044750053503117592958926645079454157210291586661594558052431068020551979275869904863941925631273714772860110563781858297297903934977399753347410522235889080391790140766484672257838172908228591228539712175375250637142118501608125900394486887826996019238458312471495955496566403941958450485647965836384455647143533136519580173426698273082733525507962277211669168572945629046921093451884408266384539438497254994827857242514041410348420421979637676408650149850008159059853075448055588994699491338704829624756041154168094589284069715332554977591116383344133354602029324148366407602380028108556142942332584895178486844077418278705914723312421098490938226730844331349271632821137259828679576958049894969808354737852048651967364472697704267521549780972918190759551536520874396600644235438161313043159530018742515357408161429479017411661948256680599330443619464005339381650901816323275864758331615538229932617974687412310577213701867823220066656640422049537395794243116815179640602027793131505701932348924565133179021608497871266892955855701139281793309170595366658937320910895218753205511747281788572567005437415981379542377542216348491420827341287357151635220101528131953661064977390146724440167519164737400434214677728301163072616360758981295845080366165493679325867846422900024382511215090634021251367439969931364817747718926466265598160707975968908959475375164533686216682775842500060215092811623670442731470317866091642108517523004290718639870837919728720140547846685266658629146351175724747297330804043699890043595539840593873415738919692648701733108350694833551201992213707557875517097095345573539876490576746181813658911945391679150794650355759441427879367845734170697672449374330470177659598554116319901573028164403441126317758005195555817771752566687340897293741554857315897901019087428030044808830540818945691756090257987829081015769167580761296942220815440426587356612562812204333290084327133729834878776914153140958353759553413297606425254491365359829437750560159050032340186708708807397693527831997409771652310544672848045490292042209536167865203718383191876210430574603860187136215137140101915057904324103727222973315859916934763465474389548833337294808482517231967199450834095749311353296490933826319012001641270870225081259875566939457927150743696773833832703688067894334961166894352918444896408675616410513425738115174172675511212975398190561198153470044549153002929035159598123929737550165251812928865146094397657793748886407661794794184277915631959347782837381749944339900331705005955879289542393573879981873143359120947550588771000476646112219620814557413740888800233217427919500310132940538616531673469086076006707382353216992582588193231469133103501364908618948438968714155739419331902662173898025843990139366045844005816217321639885781587020330401366000676545799985775139211448430180131316504523425474930763439961245602531677356941054318713513734381600069421357463173289526349591359182491883105488349779668463505700611785817881272159314684122302008169842198013712630853972158026319389469446593879517721532343498247842132280624777383755712156439859397060484012386889308172884980106451539733359841035046219188457681901578884104091952680446422894146666932671623155177137422477140060214955280351167897836440100899302882986458915950950734390855522153084404435878947216610690030512815276438404394844007311325520773843292116093950383868573188091468767875303996985375360280576549575422584245222872869321789768405220983083206119907668943465075115371011100418375269288125773049746812299148744228601867160326581474836971163755615675290194601763069740907414868452503447835508216739908222188807360471369933870574417300638680639114770871463399688464781113194872272974793071826740806455655416684948455492181904178458140986391887956307016433769259017523253222469230808157581476124087943281346238987386570423036324844517762517203495417945968705299881269906342267912973330176540942261541990897147305909201487163316120080514635897813117335280339632032661379903358558972441412811850043541442975757099400517518903470605331191305661341811838570551129296981754839557757106563891607206030535863908476607070066354228879134641778615667011170277166831226029495659250724171523822525969597704214823651143105871638750475376992559490388733324206170403166425288526838448171418748036556359702116038186463269741078186737543318615282646493002456070232549267802959405791803542371450363038016365775634583421399215963590026226229823339558194797716497457293576785100298522295650919497747656161725349043469484343672924479510168636081091403222859628853041315200947867735798886146772794725241282297793492410148534128496761366068569575188429363677789845538712380396173535963356779975504604593762432584156461264171312136016332057510002516689815583082952379977033235315329732982300952938536257225664022075721863479396033832612839574486420015585617972597090175005672680285052148130933909535263309250695691063108824219145970658816598424934713944697926640756533234342237540070415575477373848181838494195651989078374917587882912603394669159373021596313179164342388116530575281675818327584741047325254167916066330603462884087898107804038189492770479391674845074376094140770163695634889757990527943490820423937018901215962594564623353661163809075668529954302111530386759616735648830434955770473502604162613319850493788195148281597374055420584925609185880301447037919248235531009426967837395958095456212920743662195288960869936468434652518946107339659942951538885052857145371125863312041696738969641728471865123289163250925918503939438117007290818491122871723515712306800096312801572328353295679681334955186152632583615696882490043752916410846732867545434756345205499419430391777394675091202522122821715705993841642626608406728047367867794252870184835749321751788136206944359842920381470637913962889989766444552883321875812344503044842214191640510951112963984854339420084471035356057683540133696455847726624208739084850698048237180752749472710518208085870451129318364549094903096544569303037136759371350640370042935694430109185470004134799182355997685451793675226060088340492393080996220756491288207354821349383627385658425574730243324268006230908650254089700886654219518523646831769277761405197200238864848184160990629469860473967229456421940141492432926045831324267843352049626417051187624823108014431295242304620446449893106960393628690933459649827195019638728590285568986783869133115140718924354297220738826795809124975482109934296061729750920858967912581423303933416372494896448565055041649587139194386964714746725723072938561049892808968648269007981997343861663275520455716617310247212698520258792796101456525143640903162484582725197229138528879684746253876560890970288077869778720737835117862122709153195124988536703242446470534222873187421562798839451207470500936575085200929372949276788280770008472303608010852388556748611672763240125379478723309763963374133835682022612012013466500193369852619628405993905380370904708224562354130253653943708660001218091282076722128799567285419206447437714868999304677201051898721389566882816718312845912101021240530222362888997388759802332688156866578051233424033034703308679204579356057886648888288993617780959288956058659675733490786477597349709857982228343761082961240081666654041445681115413898251957142747336327605042736387051906220735390915295643498240554493230621662811991510723665931237212556751029318131755175289552700552996048689865674004814410898818816262623507404158723247268570931561457675556103589297773030586703056034064228712338236833389457056198272130365563384244637623368045758811216608789540376341209481021328253934342167570406373540416810243191232961340553827040785131364425857987132279788182293752248350994946282616661935787153871467939319740478746925055079381083500215470884946268913783471944440944055418556020304074574638796723348475445062900034943569986689040699914721901029622157037656515498998199745258451885353629827867895367719238459513874560396946647574806923943596488280911389415612586653411935927648740950624780567127363129447532638474168200890990822606291675279359325421885518319705506771966423651921831385495264199428888231704611991184541038001010671735658242975098143676956799497907373419508420923122090654704662253681201733064883516173905454128449128316558071788996050077753073390728531143191802950127458726856047698875574710415469551876167321818348797778837517027595186762351942768359689363292801629450242956450671127742764174372359847433948680400740798594258605777403290597872577747122669151776084102793115517721466728843328541063565574222359696339931115030805722243832632943223872299548274807538604343672784317946049062629491583147644008938559426859088441350701232230191634183557906932415914141108649121870184681720076389941322964624570198716046762878803590243459892043321874598398694148538204468631340451567328496453974693770870098611941155361633172644854645872602071962762857665062828302777073143623050805060348451918090724618790740992624412384321764128613572133306313817040411887521544277077416227612467601652485684343412369176591609772624250181863086806305463374358719346012289281632489669173065017500863235007832293877841295926729093064296095221964309500409751766529724116516013653120524519455177813977889568173170050311158640922999292940548801975614164086578189299974231214443083763462524165321416127138439248946272783207141052581100114019000769665439915876912907413824925783311152012438502333329340144439091951559516792142273409361443693494964557632607152965573262100761276475418734291114229056749113692038363922160221569711942382656910225094685984085240874760912435044269893143746804945770501474614628092259458983623911979137013335801853190725783364036451980255284383287344483811081501032249932455152650405330604037811662751309785502891650338436158430275711369260731549135492284958336312494794511756242851044686943005641573889230036043275985223784616911830194075366233376860758986815241642133511886635527364132805997406894212183789085783028305740078723921493059813696222931611942170212328725759445756112945389631994271454355174737434468983196813675039948241275408452762140905141700035284907648244408469316635603238582749308792947102933899026074084074493366238449913837638619594350377276072572120551598112399887190173940008519905227063120107727441137479326200576853978982378217962359236040851829399548177304235233978459810771667997574751459606882480360082153081204112327790786230877869292169080958924634193521433358534853353477999644788064515971516138538004428049945586971675820171917814669416853704718813058621723177118928194916599051411661263963422034343170530859005905978025523517622868475818244537598857427326815025517415066987934376172422662675727893692571662053993597776741827835695899849354789259124381713506300844991218651864212154865509851185226716731477840914401474849728764672658631938775574073387252407715349794480123044050646091437674389631762028954253282125084359509990837204662472741725167718643699291938586592895355929854154157845550894343528513536995144666442874785508015110017633876121238779119674109489585193612085242339592533194519899107919797187087070437243700482952493663600970748171298353808868351752474813289257771452161938416399202024467201507430279242701187534162083172863822271735692775476956525579742142482165217000268002515791566243903930236976159388052218230067034051144848480360319526369274536566727489581717822641561778849003519619203778393654270890975981395969868160757118981415967077197311044881661310101906514674624098683600858575637471386466765079530780241515988205998719386791517149344737085598162505830374212806532660533656055985774394219898515949181800251391654247953430593578567460850317298241487186422170483199507430863950749818582418856902567115753949613901438440624829997263245510130248101251156010506366992234677333924050233157026224907018642397492421349315678927990234826304158981741668276405553790035208302587904530756844664455662432093963855946885249622593790993786104089583317941561679105760451930890843813030719087997030177056308118742540772022936098470222668597651868597156311090160538985215352384573990464473777107748523132824760926203489171843695787568574955156884940558512317524908526499207606430525532368780486393973435270081512407237012197007998562157526357005877560491194802458462790817698907328549447154866648226369526580423215281819727405464491411375685854408841585531992421435700012403518879395663058352189136960708049144782727712854609993088857402526513734926266117935575036112088152795204559236092810689602141392470500209643326491493353823543132549250369711749446200010428759082509114412030389976503160153665318141246376238352609751755113408439733048210444218023414216388766232123035393642718795697661263181679720717448039207010416317645560561014568159513419374360267981811343537107271372099611665701057794339422201733318460842154909023435470141237821051546058573811794123314392032097360283189687742146441448636712555098286174375779693311191632132839331312687065997175939813257213730075023434146237055114585507621496411853545843549537673654877223967174622444885085142292488903791801753343952328539904508790753668599422926997998959608060065026181222529698523592633620909485347942153186533847337042064162617129201984502131537530033270785451063122873225585648229694898381057920584533497406496743183905476519222997977862142657909716062878625102446367466448573562441633734817017153963683341214664019232375973002771726279358063072525437839001174283942150980936818194674421828649040391795778955900695254803304881327644893656164659193210031349740434010337618146276177661336443187767055149835875230459933913954623741314386820537257396813828922546611610785659320752176804515031686661463611364178107730452455954507584369028763361213585490482197562297281312989081917028738599729318124362477701093705804266435351357667805111518170284354151451484690126340591138879135341874322157812912249483824762830235272756497352552045471931856165175287324025691289889533286377490784152112776021379934901037988069893288916054204613058136449471013441867792068098956411358375973195329466850869098534789349244401110627788505091482129933591633532478893923601565027761253112566008674280575550870437615570394055517397219053511503979509709696995434793416490985832367646208263128834517351760555617926114839164544819395478738640621233004297399885355063456328460884958839128791033727563460455261848582718154145757394247656438189474393956990194104925062597468551802566792812200018143599479967301344048703211606819380686032379829991334798060814539562287772390079153840167517668351434853998965467139174093720619261097436192831447831442498080781627423514028308271613670102807801340677399170255119161771417696539222942063098240335179814798002781592247701013107851184675993080337687754320581996401601766768144559176505774610228893061085503747884532579032178664363412904199359030002679726202037325662347989824319484300938480956245549718211596072006633053214734005552782941906482439464335387423064444912335895637753425011954433319187574506835706034182078222296853405278870287398866959540202607201387095303774225085820777710593030208071239024325486739185927611729335486618358155000946046605363275061441546901876741104336453388212087314920625548271983370869596411806962364744646440763491269316030413793762299502525105177501365101405028482790269078231026133761243247398649040357487801691804863598842056474484625558169219953589134240350841376282739697823119169140499042488894255634061267618841284540186409611592890885360020290903676082734113328005352588481981856249345733723850848304259792383922748292492119207029213258689027779310424455317344536702007617485760911018503201964977000181466000523752815192812612770751269315564439281967519198055678172926177078988371860711181181053921531645865361189903233480163062829110210429376999825038486403465178355824851249839041001037458711465867288561055861224407564355445248038343131192337701376836610266218227994695653128877708104526302147557585218765713263207936368792334547761973413220922030297848678023231177385841232530105554123345836336550471553137370335146193566379687088049667536422387677274743846016966035676190812065139924023350518055171073610267076925585389543852752458828159577944315271896441513979501787335530667559512191000677325217194378509019687173493641009931307473465842904358953319183161326675556459790298460614235874476057157136732448876625736557002367873301463890817472060195752846857133900353742915804732033981651626579586213455585033488292639203294705128768812390873803448843372317277761212774985918190488609297326036893677684905838953824388490670320167958944233548582444595977819237198400462735448589565639847790889609638258279495988959505727715394646821986076493979852707388519644758181623787943507119960459605438200959759470866821332322049006315733579719124344311670997148715276167723918518570133678557934551737808652818864400870484101828614953406967343432855626483698409834117269542874858879325807420446379159170155888293581839096151880954090622532248497065797418817029835321443655579226039685509202201007004939775382448302822850203560646028847124150224390879084474614022690886538417714621900095164061828193814823334149815783528179291379978907098678989954754964243385707170076655300905224761187612092321625523470782176288228967492856349699669940781554570315955450782192923655142745873369378980709224793017110988186843405417733142263603676523156365508509277281562798304561661067276475932719965637777644721270719170851752056779208049984550530620734510438504779219278579936835742486211061993151710419590078155680189825757197418237580385252545624112249368648920597689525107205462567431826014598676872618833522583659026498292898074234538903927345936391082569004896712541578693433980019851706053994785826506283314442635456565614408707893540703607564762560427149858608116402473520429326857325904054938418538612453293902862414805234575755668471105511731634284041263135337257824653200946754287994804261290772443168690706669149802742775386094089156664094851257325561891808788871261201495842226259142917074136080818183200029135094366128651892591515107569038574875490188510068455299209751575064960383990973212024077257783856457024428371569559616798318011095156966666217522254031855551629738652473187346970677337434329003918391823448303119784732491740119794938206946757707913291214459395771269109681265480613759312986389238237435018514501629283492436426192218589261629058195274342394372857636338100194395763990964564922563289272002790236718446787843344219760579127164777474356997861442086646805095889553482547402486056660676385212151046815029728505186815348102615163687714549093213819686008913185679532768059939013245180758694895742142150552816632492203487983292140094161418030900181914233297813845905811788139423626400674035397993438624584719976125658463611069891828783916274984232721786206255954768988956111086837761344303780566183083040728181812987292401390620251228428372856112460538168189377470899704357268425314536285492721332844010428168481844441245243253888190077217526740902940260249613773201796962352593340695457783122163884683150370058493547876946559469343086204101134645866479100773285994397476758630733195141583192687860443282670997218985542517213312796344709422768179709442894864821181696742641593673799903909648585590920714701377138907761170399115386448078623900251315131394595246543840181132403618028134201126209417551129038532999838168716337514731883006651643547557730627231269249441137962023213440370389581463191426849837788311022294250337965265691475199935573239482019715914104994515635274708348791667725174679692363428172413477350112422935542794114751627702620674160265613289329478790324543134071732857288983865411750977972286033242254570436360489218175303477309218843492369758799246096053435238945279616363180228837543290726283124874423138020328165636400228246043202822180074404339368942949976197150721151008022406716870423499982811568538862601527065848834657647470196064431684381671695129611975865298669946562871346847069607887071678222323667473623149641238541843453903337922301061312180213240691676540710546989825007293056600518467653198887308204019792443035986406772717138705232127907680186095916839940247694123664297894759104151250708448875006604304284124936319258387163855645658203048012845783738898404260199323775465728362655731965715029956543369861529962909501181171762715958351725978989888510441524997041544309514019982207125817655978392935292888692786456048652462414487392185170248708627968225924769903404859264506816661309036581778652388490334990884013533829556928585540053269534129444837401878337495717335789340087956507718101574751294041320322320879619855018229160670144283699359714302619139203973045762171650438305607862106544244757363135807689448859559362683959310904048437672390064705302562423287114248547857451932815262153886627425093144178419471050052366037093606015410707478385213721778223371563454916637173118915789213950080633132181832452864641485895907819834349607663082421669138418404495153650785012675674562980890158019705603751799184630589131757077205855660295620682958408610386828766332550950091315338402919926529427850012201777322594472833523617593859893453068384820311064996061607838808795179661142642786791475687517217734260198435086867724362342290906359125727745773663665257782575551399367548865868925146370308845141776529312285702909284588210886536572535669645949943203808029456357841274899299968591227534076603975103010464307389878270169861930966607305168106782191994436529230183362902522059193257800538233385060380254392919431590896946095158868777740431740740768890709249841563033388840945273041239388031307181198477995577475969862513977419750012223952128196747006023663270755022128810736987807043202951157369366439557256135136575898621290447607214268275374323198741532103904108129560734859811326361909735962058800345826229504002542165471974773168773838841985384827806738163817356743160488357919227385451620880400184442234653609225318141810440141560985523261486774279096043963888665867853573640598608077170307685450584166103989616625336471436623246022671225058717942852520537674464963082425716008246595095046293635749499169962071068975656456446482893724385952911830408230534646133163196033714615560483954957278174210829913868002088490760600870824163555566267864035033926024851429932952271070018809025533857332127510153542837220603729933815138952621597494104408053663331149496251362438423445916512841023680461619417473278976724867752961730277062346605686622448561457753306362783275999919799956875620988569298855796403921567339548310224142428489590820456515639232407420627456559468599573608178704663948132829975045972806167564722541041209708538229256911293275593952819860992277962684964111151950294693501690690877800824969977108894757657893039874326797398619808602256107165972923456855051986218957458580776161399426721596783542376259402055241132520817186625769127248311809723668972964499956385799208586519866518931531243142277981911965925046336500376627130034945966429569248233930271831629493946745035341318147651266241310582954776598798030982396260389338295987647556414751402729879099385344762051239097453314141623559499744460862254124252346232657930045755154344377673545635835075535525347362353434821789214226903374157087754631616622738268858977682401745738536044914622437100994594786530180128464191254659903118316616417351353529143714273510363751652557709294633695821464509875721552319140940900942295279496278713634288181026532064097979094273117674536504093233497433908313938501774068600166074571113735383857262800901610616511289500579054419855999086466050994073819174169717364647499498610680971974049185010411492434062595014447446717264880820856349350196498983422554587150469442787990864474827550149959034981823502096161045920848614004582548741602774699411709176951356375026220118782600668866434729934479107550180321950753775870225602810838505943685587665035876465292976708424820720046572147231393383658282672660690715255581518707676864467926985494882236250468694726436663576758702323825330479238909889253242531376230666730772815435311325664700381561901777688042130558680067423426978077773119421959062439412635865827883538125209482057706991328437594782647566595836548843257359067226519212756961729571709087545741591087484269927940149365310898661115682710253396820966452364401394139757607933052044481396210709105240524928292989903677485445459029581194852816841703485289411545624032279120539483354852768610898548435621049085910582972079124285948415280536718827472934547161129948500131436392634295755788948308074999798060289726032707788582076501202459298460263243315414259338534823961356751953596634335503163554391425977775926708525740756533409178627370668842935435067202212805747384497424272826486033604427289510331313742570673088038688485336328323052670921414551126128980793122292012492696855054673561412315341986165638041566454099630839285690765282459314869676216468798183415965422328439779612238622763467764688836735174514809291647742256190432794607256286037308666459405494646636957622792250261793421630032838728327808638523395291477197210915895271719602612452725888070867033904314792745854275623732316464651244846587854366418305692918013625073124622924225202821315255490702405317323449366572335882285951432913207604594062574379191068307368191766513582934538576059911845806444379155250790150271851914867841895662605009338722968112680103913164835136142507864393296251453520483570400357241602344864308175289714850101739112524219520201396061080470053716602333214834732946824469442299573092808375410335366087865665489844680082577692254142506858239126559805102221503646338203638154660388368831747767401795724034757976035611572041250530641251252344248356966107643328359367729610417503443415791827842459586035813125107717128359376895772161868516109320449603020083916239091968365713969028697126610907686457219483496558004075589960077239834025565893372391388940181161736640782119034882911262281072621884741798612626551082305387453455801924435960665351956774918435572752591244065022668831796225087498870574128481718579270238761989549089761670552614896297559986828390654786642811528714360530571393271273077281723678252050080759862335317074908792527898495292880972968091961739830465063686733088179926268881362048771145756697646922637993457928032603574528399924951336362477143518894481633838427799205535776674204100190836266929404882539334012717488232976402657656085086268711769235576376457978966756601248962211621980899763375786290114532059295078869940729425861045484493387598488054507074110955536622876089290722104905383598395864718940743798399537119974409368931035412696573369118264287204828292266988560679275753618160569019067885603870677395459281320654553870269692171871345085705065795926549832730643174103569858964376427715526114491261922416728368749072640039824967535242754262938444423371789964573903810752001776095567715781868022833142457631602660553146665907895820297075304735199461153354300992350059779782344606978685095780314545680270517880545196936876735480710017027993862125401940196252271835384171790433541615696636329034773063048317691398110998169996365476297794017740891761103368759254888530181666714946887207612674748678488496629368693632127493540550402884585143003507018849277188341339113542247018869147677812674183651594177263264446302131573720044054459253524257583288101198609090350676035882850712612314829000018853247258625075539842827502339316098706045156366366564585945194178465100878958842442820647581874199581966856446696418671043930759348518751309193666814235627691823222297959037107555071082474177700155178668174555858508156091686594956086914149572561442802285689016434653868999515157353817507767749763968550951300546028061381895033011670196914998453111599445454614019131500703786584898940762561026156962008037588935666616613329891163368512598881287113606164583077817123866036084606140834334331742450112813073105279173765765075623366168937205192348886478004250811444992494342326383078528189560397934857202184772935031395691699334004909127440814633276917492752108070489480062932569760119464059643765637014775112576813860491435848187610506492426978988799877138274911906841086038320966276719249301764551124750933480536271446235767154380802405455625985374260491558513709840675270171038067344340034186534094020386057347294607290627810025325843274648053854288789879703600851685666096719368061704327611958683451820657000770998153193153313144538341510399686401272633612399170072591006548899118243788733645731799271134529986206870276986561539742788725794972225041284598493302225946361471593707686740141631622689939847660947380802643311394685781950258002867080683989704717938947898922393391118796370437421683331628803133894824808289011229869110693023620417797409022207018555152232509602105851863248637954636119719242993448261053978668932765840540141741380810415129003303768971585419721144549602220914388507230558955156550264049524226589800016512354534375728798207392346789863122512701423849359871659416522272510487174635045608232844914357298647374334131361727413462961963265764317330770328145449854019852657866646058727499666807405122034015274075543372892030822680253109871487754599101370738946617907112990800308211346384407748617719211579931022177319580677068666767119560844962829064285236913110492193461414237381730121230799032783290767319745730206871954168442012404856483146926107582058184336720309745046572561857886232020207359666060976533283098069329507926587869899761257833474729627362910820895143794061968547774032298752377829698652827099511406263197833901607438029989786757819936362245196201941421654016418534881633727995728777333299058725997368325296417745633141712459204511723271453860720964302965445999668224390362263114149296882747016086311691799270286837681929032061007854998855893366881981682686934602962627427940931033175854741495562351889998352861292597827029537054877644808329920706281856781543121772920444863989311356560068819560934333671433178222298619819340445002795065287018783908899365494467216350581441198221458951630295153060533400321093521949761103602978580838890837895893094951429142186009224313806988307204567428258225402492311674783042463314669793505192285645633865620487512374880803037611079322253291627683464571905784420008719581336627589634922516944670939105320313213459156686916920753738417743518041158082404353201487227514549928345342355420868342183911440013129968324915734574292823868326526849059319523901418385237144924744810509276180464140212170793629008843729570958585979581044613841732690958990938632595772823894869514625002908015361326063950361984756367014942561209155701924760957917745429261438354457308019612908685906046006985190638778218825907626599549256855573746997598630398536714800130909610569855401458090725796403947377014137013747894627591953552718503846446276291127716593545509220640250141441113094083251351812365705921162745657433087576077020049652129720470391806628517559853627688141100277505055999743133557310638503955178751496997039063276419897829120871819903802420209776420350822670461047229673598701311357486069845876641569787894927872538368138169905084459238339202850273497648088646120586581618870954026556701722810329125341677084198872984814518106415985551312572342211518957225707404683424409332496437954341620190653200505762585164979639603870568000659726461706976941183077583862872173836000697920345925921520881890348001904647367798245133821432132739213339768904866963447677496434268053634298521473747131969944733658228927219164795427940422401494723136758333877633333316301400277325802558024571862510269712331674206728529699817537427795517046662641634282204593811300262550355060478248798072017085403477406686810297958256172778198532957067716415735843063277782281432178335107500006709182287467895148773014327286838391168977945745858784242476399434772564795510296396056366110367739776522330395983597089022932258516633139120316355073975722509514880068783405281934230950069017248401161357652218785171392005326090019130089145573431486663295057308267839090800368518817078668263936152819431892315292183887780087299892658098011901423780420798461327301197410460660519724732406134285455240792973404570765184620459302419052733181775764715404511486580328902206443903788609553583184511822009811725091402939579058620248439618669382805887558319792201879112196538870177390927204163750770402046702952969903600550399998165517861869586099616901297566449948746888005966295835456630360600110251720386190246189588174276916998794885287455723376952009910814267368144989413395936246545753029626434302284040917940690962002073405597233616336691403634631763930770092101793527827658088981543971108652795055106109727650998112568367779031318591943783627380512256646904124349599425264011502449529315203597124583132119453196143407286179410911962810513947547660059638951298051720430254056281701613100533346002970425494418539937525784259339247749693259995399885343625407801896433990683970452527959297471442992881090625064798813144175690408035869972685925163145444105248679420775871553509335933171153045109892101735832781701834663001894584663637011488371379106947752816992436830875083659470587196388387825724052644704797107655215188737119054063067333417853623865462914814128465424849468120371195616415503766346983967276603178836200620807124992746628915683693935052866539523158961633850233661569220996221128288160019287013358893044172158730646778527602462795494540134730086549364099899890558899245499609715937245270921859181324447366006790162998027943314048443547565626704538156002885669806961190216860853156906075667833124680686886032639439288484471126871832199293749149649457037289562201518379105927009738546042443314189154169478428562153478156520649018725096462609192493368982502329978208051457936685720110231052775707511332923039348756057959666637119818873402583444032388733895078551304402946227667494813885794844030046992089018517872812101787194640269895835149621244077180971163484077241889479496773342239959480607774401423330609100932792796952966469466559663893981504113675618974135976163241967316877555815282541690681738328078974388428079410509191315260395491277732066593425273758994389442267332655009726823726659062116659355561693389856583227593159916489473587895872968266650719676303664427092135548523201136801308706700041237442394276172550188594058087352004114999781648261291400702919326659842912897009387451669082457665369047460914630244454455426029380035305932179045837351207393503448652881625344832397096067373158403073380120865957921424397252194499118642607137034006887036715132244658689487143001507032341553864108577085974755911103166961709891200376103843637369395988516337898169447669248976443434543517335278041408801261935410670341343773522082876219831727657392526945828210756605595302764658726964322923931337202696051093072416687897622523558672688926952367123003756783612495125190084453731018208817542743930753762166837557500904911399390361012231295275725043801443254599820735971896078518349068704413244296405903312229415644503321789170504456062469356313317592316475438443491806326140489487783070023783070056158039618275071934170188139611525231964089041203635617637065709370605568576614684066650779207059578439077771089770951953432737549410451213452242020440829795192451477241892333992833600485338214267596698876919695602174268061214389940817495389486356680771533316790085249116652651796088295834639563120013639727663416981538891863251675494302110346726556149160085072229840603786094202887713095461653762115927751527516374005636256260003044222866590904258086731888765373888916225420760906320686791240444973926557501095654686723523981671240373843461194201214372626561503733568223202304194224190235726932605491494758579380474357727907755283203904554705301351095551054124267321480341328522505425748881062629962458988546577394499224286946805496839055753737063444552595822527696432593347844964958740084233526477102295720334053029777306299494185956531384715641057533964017378565048436929241523484711788120668489935339680938916404798253996781355518696284278356472452001024328942783463374201487368729554994176678686902427419944462772511394972320734939141464923388462296823398859114724520787643662923439887523507838059527882575795444610853075083491015260055579205399710138466566220463232208572249594685027200695284841188809752518701103338551662535394868036799294101755675658611731173271607721638724589754288166977957561402043640388096621370752470377513102073598607957838050310170988762530986401766217483722170963827098270664752286310896736248488162571950530808103310721562631956959135261737110274540082966591433178692882587124333476969199964692552839426578486759265542674150110743602688297206184406489865783247049254252206477924235604089144565683119676410363919238061977780914866804151090937463903519862166173327357301321268286808376710452253848483075394042678206508189977884526680923256912009947487236394468680720455512278024858688140139451346551007378703693140228871485657664581152901859647654279414997537328070381465807745866893339526791135522359024940350531682404312036468497004772323175761617806910044178236148743640267472951707064285769003750972236650692591556520527643931791015190546199961314120063287634396337545356046146680025432306458932543164421244643480895601430975782519206210051524285986676223371171125031333135280756558752781686810315931633115762764340968457722427190029030828357908602038729471608728426598478771723191045378945186522110905360352742095730984531800386042995699515869956348212432924835287995511884654816427503559580410433861058699805587867241623743302306140070782984236009765643534417227887065946227714012222182261547781543251857271700644113362169528158424764217180176701518406055956996548121587398029358851185870953847141481932269793342030738338054704267523572680996357048976597193230667186518338736075843000281201221627489376574818292122922125856379807410819722965724469381704548654204637885618085722196799906915164455071391764478929526374823998339127436171818552655527835621550929679749819675232711583847958619490134042372811951985534458268542215040261539438187004802434018865936934249535768835622154343487599756871039105241604016878824988524614695035884827214281701515736414425960786418447048987163336763333778874475324083438280030674505145133874602961593336547174990536893946666980113882790525287655438968261487635710293488968852003928648868057155489509563422020301211078545323940587561668202768917881847225894213898865014288395908200668364864768996826900473989444549992167990437896727919150565076303090081684576488139344967212751358182005298329073536609504944774284763552441649970850229486660618131514409587010477564132437692957624940648161615382143113696134177353883050807132673493336832197395039189853624654812408467345473269368032161262517627989465102670665570451809257504411857690599088482435456114586254261081579268417923213235514519930298589771421485281892624271322312518294758439786106330205344026846232300869699753438724871534091262346641287911056855801063103805189299913384738880920877185320838936168106124460973591003130973092646179101726123568212764659245202102176886521357765347976419491087016655868548528523199882028373504773152120069910667340977120844460074483740511436986309075488732973999829679524937333944088267652421929192821798336911425694762679002936168498376381714125642307750520958502815408310134832572864490897177229501700898322419684589757445981480632937892837689423586704803325390458385324561054544678130349671652570976699554546057842096817454979730869004906754556086381102216784582140013644870510625435277015940540801043457309405608645130697821345672027280071313339669319368182717104276811093262233436663953408944451410634228612399440952013684267987702546473969177202885479366463065676433497467667369583398577862910348892650147243561786432182586650695522501607646537324814554832482319766663977539633743650971360173100549650395759067611712431139451109070289695341212872937463364983974433378015265504473929233372037254876659995182794876725379052129597218708102348992160774088106850447061766071707078034647877244867598436244873579705860092444057262843633334834843070916438132511154311852807660296407345541709972916708992866627243448597162331830541456735230098716806380739080512956320922591881418476457290317979038404820851601507038154441837550878913159714318613967148918750989467570277480133239878410260074134086412925146729912927081345609707333827499575840178467881117913972272127086670777134532621849046004775105241780472319532270366970815098639328928143026210724538682926794274749334990815691628514486998111402377445789549427763172838098550319089738097311725749316648708219992741505316036739903550694296293547074092079730194153443646099043990562682406545427005301450215923153829112156173400116986758850111127364451106765361373424677264124094382684020261888478678061658212458284998861085745593131596661025020624437298547407098536360742909800295005782750360794294031830754389398983912291577403842402076621329159536933078023883738666744823593318008741064012597337931417716075075044712325212891649916504595918518180847514798478060214641676250181054043239113056018809387538555292290457005613941022874734597556736869139429584698013096638736189188773233070906120994003316846046391728806250934051219863034122007647018353222987014275767404474767813945418019719767826165800823353593458489213100963579881147953504043195842266547519724203788698595368695995215985749980364055532111587404150715221489508700065640173428680398410234919947677078101974541505759085149038687820271592850467314722445953068361315784428001627512802712687661641503527304283780914698177628291543153605741926787530120314333264571748186752606095685114546124903867711196730512986634915115544478352035007795964194053586660474319851803096450466750405095093026839384726027051289257400912087217454001331771427824114652393779730978301707171312083783513297648421973184175820581766415526140826488016396556390340605672787348452560955099673265561530588015169492273355856563071387784659540924850370467181754522293912856665358130379056349476451537738377894463716325695820360456976619480218963239801288099406555658616503130917976689846181716053722924414771516620452533370372232330799478127735382100625501109107973220363364080799837237717905096758803695456204472895461388197584218185824113475656734865871651432573337564214125384913276691297944666855633267855563008840753886608637747848567683524844358950170690120261133989791829399710866098132719094275730701625105223366584810719417323469526931628568685947312105244237830642615017471730993549173898284136836338164951388748700273212574814978453432688310955378621857424210180387625582314214291877179092955404356732038196495956712656670368530632746320878942791633499923290375921560625327345255177702113794044366336905489614540158600484343458438981196438152955012193276411492851857502345723998605673380875710437484196256783611715756009135290145284989038918120837426283416435195643473503949095187329734274886817570747292979287078345546206571221319837691266824566901045131398637833493775180872840092034892553329869913003438801730966402671704002228717241702779243086202199016971232174856296261206950514122371279642594998945069445873405208401461448953871647877711539275218289266881882856558432451325683379593091594146878600614976286136060902781922982730908986982874961575228947107401251837289071584666343641024564390750748850404705465856275881986788460383057348046510312648561682609417120011422046928192382815052948920871114641181567155200294604503885179660088279394136449616345215714911989751527888796908095633384989860030984687828103823898729048539158449998915818287085327712148123657943095825115096332536144082956837403452359299408655605934539728488393156505955610416656784281587401747993753280049114869395904825220491327191747991470669796613083282250560358410577898563928089885806032531590490562966857089406522041188066852530936373100112197986558526385918967287217654220423200377289138717189192909969864058557352837460251732796432959747249454365317855725221910774146724201580336393078204154079715476436520711151445796675435376379940623938508602891578989079673467140181562075395592407164330174056711578798626823061832013910354987482444183123626199196074667930829856791438958716438439970831996996686505044187753969380502899517745800202009733046111466007121813398076059601128595261453682059541041108691486417327482827831051029628268999777303276356967866624572063514261757022987549733279115268115695012479326834909241927169940842979024799514864965918598133845977347708359127723918837452210201138847040597146930996983974265850070380055176164882958953674502979163504881283071505546664003064014392246827504879113831809315015899069992348996595553725153674644716272452655400868084583275419493525826050368236804891713159386000221990479418524075128401066792918074620916140545604346476890260504420650986915024451547763124631072831583404718748093256670421126155384661191317990389553868583888526435365939944488620629817063803018250501891087250257551836105681842059359284824708328597228024188362630813554955623965448584754228895568497080556249636696455185504160315496247427700853639933548508135774366767766459487234569422761408237516830537777803491202810185621460687568098304628077307319241906239421582447751081012038243634883365266982184875969001436266973266582129856210808767081596424934383423631949594195725703915589048680918415429732689489540533238412256715984703498061435342017865506952422567130341526192650349286914067695535799026328036584075466603643644421528538494610630255981043607885000738321898464126139520225515450177177905556785155984199009887304308089796526858156643089318897558501790730415655103776278896156242262265109086650150798085373220406690661042469066809656647712385819641942018872892522122365077178000695092230369323141948375385664218774650486373987630901377327661590786574224654251156104743335682070149275165406937407838871164813213839676631865234919437925809545328893675671471355470204973398212937992899759877469259536593628895134073655847084984096566027236143408643881718458974002016589191490569435663979673785515970507333548979159303091310601561177368018525896340347812112750304395536529023695590978001481021371446569174482512907055293302344455108135603293461834264021875436455526559035601050654841546164488067769838528855164868251912137852339361855985093314911715376436715483723739997245230989706273965647359912538771870239522692205954547451530515600631645817891124005809407175992838882594333841088683479947766709581007988710116170124397882915189649205046018544771190969539320093465681308185010448620090388376403841480740268203171104620972314497398208614947356234914076114744042956588203908859550440930295134627689883042481244532743542266062903126682751222457362600204103897833577048683619647875011342684619107835984820254263838503388989809706612730695812487372069316138626649831451869881999382760569882574108148443141168455425525131332690358414785001200760785754401457264546928677995547142000670612426158055746865903802589359532235948150968307805675241458097901865111416518875814258584728076671263781382705874302129356416819406896571137255770243682666841087122018217497223036336774248487458012663564673801293700279875639642329016375060583466183452776587259340290546907642015326426631224099246637547372660161871650356657121811624498771840178824394929353425807059475778525902786183512486827878986385062289862395684827339027408608872200589612940442557834879762052828957320024941392786444582956767227988519433820815005582419625091909770359645848874046219986227050421439657783204457519885487370536277358074041171363456383133025006057445038825325686636480827113507026550537010876364660300818020298285229248350260081004752628051516062589019179024776943130859774037745447899226438202274527033703685297667092865672720222898063155185429708661735195823862984007757121561000031288347258178841046046020527341221414436586583567905974461593195305058331674820731769089366991918156184626916065090065117636514500677388429969719540854153199295725797933826465600160818969981680619669455774631357710792774858832969717942655796089511447892154218952002614013421263891714748889248072582261283914094180324981100326942351017250283648610681198764068187628072797228953901113035991171111173863490714868243766125792249558124263041200791707253448641678524029116185050218393423552948882834832381535886769266011582629879974686869979718288918001012354202166356580895961853211900969526052045478664124768399746007701704412556729550682943313955975966033002551306586051021811756898732466890132467980564791734814600981666321492967998291056777794164103603053427289781483896059161178074093524409901839531747633060747929401034037286715056464647088386327172917424256481163478870665257370435586424410644790462872618169041247011232502195756273598993395334752004125652373919861852806471498798607077308024019009644057968938012097887338751655008996479011749715844187090176755426500609555479848754015040102267670768512157095705655792588825591754005128502205022498969787293660704877023024450737166635984616334158382871999909045992651362381824865223982338446802764727150266994593771930783315915901611209022882266938890868650641457459484687804444558431587709223236402574922660636399170600761160548463663397625568400522479793487958814259860907012307586339143464494781694793471063378119413039291514051628286320285082622296818293337821823267881241163698054435090407164036787674643587301409194206235576492186363327107423231630910691787246656467971992731775835257280331937349020458781585330808284161437664675751132985259173594846672745131651093237799932012204899727463928331829333401397986340082367991940817508948781423099623690853631505385884886433597987057457577058472158966759551123403762640936030516596944284594934467169597890561569449296220447508951112909825838952015801427252340391644793451388088008107242113522959688525989595694850744306955493935738617125255246891908622052846324132888430860721883872530536049124933859953392759517049910645001330859871244414655968395624298783840734062032141264610537244142374441472949846464310523574104070520400272618568073807736786293644943450845618054376268192969759186314383645020674154597628602590108131200580345284504506561630191695640723077128036943641947320649072984855738619905976254931965273680274157914921579699243116562318769327379774936164414963974310245553142777593840993743370500536754646545162444145671981565316837353346408267239822380886313605985598725837902446046363081510968565646781438282725442795808426276833503150840385251783463104300933165479812859074774142969794876843185808994517518988603756004979609931895845318289193628323894164115578442023741787776266481889405246355100551851128518504888191903556628358052673840550505579487130194341471356718425342113433647244285451024220158534470821227221070740314843948261482698563750920600232584357235920051499268592807007206721599889638736252789061355899718786317097489563850830506932895685738560709241164560233583858996227327267144553211364081735284587028470959770884146931055219577024745633494428507527834667791211213160342208133278708792045287152811015185169950085027401923293252876334461633512583862505645589809316561574868763723452454393669933551334204189880624961308915397397046847564168549987851453610987028765090397110404476757259386929349518780210050552673796253040703978988777494744159594872913599407533628431591386808974596861670482755409688132043154198662642998162683627735174566753371222817943415762223894454122996454104829292521939685973564458375329257823556644567619238491219008085447927955452108984183922556869377161020937255122908989202819283551299222208072015598141239465428625878179864537394962576010440006250167674571744973570716405951893064179891648348942540791813815956054189091466506880760386554056113636005338942356174310309548085762444834184375869284455904748974988390011293616756362242661960711409403215456708021518440259368758116969418905620375106070657250413360057555757558814690586035215773868662314927984764171556364355950182614672719215474874581338827902827584837027151179067392854484706643986511008736232171792942391480334266489746942638421723654840192974185636988924149917868967755941719545437277478214735015614126276224661474777138042348915735607606299438603564291194486755699197142899066696997725853509070237664369114402057346224211258933203216226301311364748403078256813385666972079974760150913254015400650713049845855348892848209972756738779704346758014862762867404056259139920189364094572634244995317237868147205155203014390411982160752756926969827780240745032632693810624686835118549946907934785262480360023034344985281489849383757029855722837591383338836800188358488040880966458807121998770386531258299186167678481751713802385435307499355713615559717504242783481766027220565111523479561231710611940290065373192040798931951092384874479261944269985990162098556981681079921184926949105761776097709743438834516397314595911005609950037783647432875735069809544673623525255578494520764481423540373370766704229699176293825605323111722079970166121485603757569719549200503095750870511535250145376030728483752222897534816692252286360335479568125753712988639173803566179990039569999220901094821456639809171971743130287135409014036216745847419698476777051440452334383098919660514518626520445457974862856823878430170811306626645904950932156695839480606705191947865543337913908220711564335479396156857650521176170508145626003703042893220752186913102018427660113040845849899508801478914791255050893753070409756725509406130149621234308292541043224649853888093005338985307713638924946784813085737281360929097177201100650932067184670798297674893952030211602478262074514004513152677548019973519021605367422657083088598288829188498955760055825406711251175663212538768767389245672046017434777503267517106456082088518859943302824510117628743329550327457965396996828200708833486659772943348513219830243459279419830547303827259376065576964780130028611709578214606200715298883646303857990671396308574932161471359795858636075851487422549442853896627121420599442876805935971825268580488375763955895557720391991742884381427513144411136522202392734092358372957177037679156140125198005431336586787718190833539009509683931786772193695357172838750612741146180180931540053644027899574720094042679975210372181126080643800779932633116060867731587102390355111657740870481321522293682957621946966766206663366566272477816951714292697666918682430291778934407771119912074679331747322098612375122970537250451222330421018825920458907898529049244675834102127851788821691374226020758655312703875150550035650125913818765268574929642685097514442361188683256343345000819791254612147117429618633547632568574095576854751577558894875040304941769454565501800130127208423930040630141972359496772355267679376988113596176288950927026882649936453949890414246368788183228045860104957098805053586863552086417482562695920633560045749518600750031221949546634062649636467193273584378925445735246135458477085139370609696915819806142020044114804033576020460741177343305232482610870582292016101375316998796393463250402960098893012769825479310923603870217294624656328068912431000084060880367214224537058544037704157315607560628617478657111587646291514921556602332376516031526985279734288282260101141998164181386957755523999731738249492591143214793961347801826022376288239084994376214101394069853518093431884304908926610964060528578429509524368820457012211018088986051705886813609028803974617842946433786770299661486009392911283502912472344526651296740996877821521121317064228656224745994205326516759388413718660093297445477434399972308447562164938148173853971295385511756331905261041492934970469906025839186089652447375178912653219271359233939397690767039768917714292121583527337603120913741596914566185940705821775650596028910552678497592521886455944840660530050009191075749306310839132746916181310120642386795303176902532841100269736141264231483450299982389606144564760872121894102266906173141933747462727153108503815741996919596931527749028228367878734904495136055153140434216525824558959158452570860016810727250918152682713845590698565322654123638330757594832592776353338321134221243001185188739021053771515207127721466861322559411665290294373559508884801336388522775423511614323694852442741874299663041779395802073588667823711561938575967744068438513236626537745777580073702753313370320100788685322125274286482169901517307550180896702209691789991558187390265132331885746531359846944159886342437382894208857209289968493213554385558590041908333488884537630429030531213330905037216098935533770832875933873531040941159183093206595172133119579794775853163447907407039349337955690417151984951806997735514500975356941354000199967884888134504435969224287915602133742677846406942714353399408247599400964662675508258017419541314131423035674479656396336747971601545357287112274418312232753527189809336771590021834401339228918048858587833523703842098652482564647597957456435859543219284864315617186147626339361179876210730060307997510217422504684087151302368724047353634169712557831226913004389097943470532095030143041097053840509964474435954433137228016312993167387946905008747338121640767788883617869797729670962347223517574508628415861425612811423181342631196675898110214951888903431864546862379975392784094973694656338893530486676829480897543312790035157401128314685540801604930293097715026720843807375946755168098587398037323209428182086109053539762904336420535009853490774383183745045863365108655034146903251968564658428301297403265630772565558157323323883165723121298134928165264848498287988540791513448008750396933639343326098752608935834033403643383893425025475056131217491339533707310047573630292412849680674391601892160262635136794205548677359028256480233298799200024224901771226520705044771121073521574421454093693221075424502726461555119563051121337808408880643773796385319151993589549053235629600387069595651789162458447678994770138447365148540910593334448704063004892327010933624029594573976583483647906894385984036808401783096853654720905805114087185494561249130107050368429651524177159722774332053458074407925249027987205089014656571326390461796216411364907450410087611248246740399367431361271238166860199859211780570245534215628631747535232120050772419819440320448073005970259734782436909443383624368685412332693214737741463892035652743871437249044469079388251405472751799660197326208033308789313602607020034387306021914547648498654888191388783427287040036243664514147702967484412010911514073416296577381413419125450082929800586570438734465933383015247296034181656835424710863509899964254489568677240834474065493628650676802979605278943568435245585363754728811829322277675184631655008242694753994029390588720977970438770642228393614557383051954880760203604788663999092289833090272163591402281146447899842748833787177317955237074894881789775075588801245927946863750353523702922593594574631464329928736201272293662804868184028839139990077847261795148508941419678126637463223855575704515365499084823388325588752894668026698009009894060742239654245114459070906389952791639958024486615635165771858490222131588180373608489293503233164947409530230051909551087431362484290680384362462162287403245103846307011196867287173157346617913038505613774013553817683451644501007548819819212633209203314199001064970568384299002664111124567316752010798703905704713802357412083933963579481356493961983140555423991806742779247162991255610290792800952099262365410039766480798345175007972778142641917935667968667716104634553730447663558090515685277005213866963779189019667366717623327580406097777839545156840754173707645281974835559554702911104535702614721646124055559220166500168081160139197082024227531730114481018607849332836310330461473322070131679788460352718276881777748281572243783492739195641194883238544169774535579167585334685045025313716206430308235861640317182521966491946900552578594119336123682701448419923951340415208637554354441179459288579222319775636912826384115703198183523077173940441534654366065865147803480614898455191376075307716126946469451464879056758719562144673059543835128930081248653551370452594201160100236011894220974001339593570885624792122840144343582509152814664927033988209048801343758667728820768954112414265991875023607932108304684338205499624650237998150045992952288648708169583747065662709782496901460698214204647841287819721633608406454001439371043582649279160959684079457901546497742575844286433405273855332785654419836883670079913000382135003565559977403388869127681432222365058129379559175230971470682129117239975919507879914421655664647979374174521032411594555746584028112446887344763933787584670741836269853809629108999939500391675167316389334966186636722953493858103837699726484444760612703350378935323644854853470062929479831900960703049931757515345865652838767769014501583396981426254837044821904123130394353595099932282304180994044524465910408015394556848063170234454652906708111103872774706474910463765942315513803042032649468988006519335086290457152723155903447090332479175004719973019986021004338754003809355688273742653006476878403370037649039395067836627647327610056939569075679101884461333002734718549958946430110026752886774532379759184010727059268834341292600354385611351698794989151355209901769411543529673819641518732984454630724219612674204415521176727394972744696174315754385396211273808488210421216512044147436389568033071967291279265576410186903001662302034404862493238694186560359675124818874064764145214337640634985031163007512819183510100125063832826726028005865240317771270307475093386409247430174431630762668185458005081574115563618032831025139997562391322425829496571225846523856081969601755392932432697070878177399216950457276026997233552440443283812035413144793750806142016827500349339494225775537281715337483476548130333859614970167333369344417815976815101030404623205034927930901615310130726788033988797394981207877257494187926078862849286122390264911841625425155046165504108520275884919057561035158155503642176887448369734787661711961966731761846971342162149448082499502315008184940169638647043042031055949645052157815419333126549944087732902747424606234430706149032612974007309157303171553978759761216046182293228714419588934778227626498933202453536300388739458053643102383247182683773346952711154376696926037412131249950547249282258850088470497029633597262132677990487106096484076866532105776658902217370006300802341687222917629964581336458756742847812218523111158072393257668452930522266612882016285064628363499233246436205782024139860066565725740708626085272652477686059992853147182290294287875426654346208607523825979141365408163012508977006053797352965546665609024047825932736315635822609937055542943864901095745754719492308931026188646339546371520419247577833506683746220202941914635290294588650725069378061816787906226189209158723103168634433640288067419752423507474938359414094164001777378504060672881410025318335278775464487347426061734898969814667065007134688697759761137988207945841208952715608811473417511092588239949127066261465052477111468808366169096027756395072595237717995089261662503414894470344857062305115333601543987579065730373529639617843673843747476838689101554042128079789092698196257103254229544327468918525223365535983683788399944453545429347486885477576309887612169232618672903218561299332671334838500528546827006871546658601914087467463320228633978890278172997015078376165123859839777853084307549584400257315783657980424975107454471043676892609862824518500665709067803509513803078638550289488320717496783813522184387287315321092397695241107674773789707002151903996814497412455988453163228428859900436640207593570989815902718993137285326416258750791204819472118605225629912411679673258401142971423696039090277481748819866623248426735776701590468272724391865918019737534449588286224800181702973433146709651821228863451691899087007396616532530368547799157146842756164451616000287103276651724450114845134345906431077080583321143269163238377091299571517518477658014078306812744063690624116918074413363668516944885871127836608800761669168083635482800050758412222699599576778965998379281836089042196288013494081758919706152258545767234418382525960282897499577648237679086113075676084826252710484323851428336296442392135081469544631597240780207826457965980296536608180023079482939343401265903015385144821315874026188348280909519501271906073656625058660895291815901791474254945226105744339087992099033843116967946535855020877882727381230965991708799955985441974946407371728670059773762407832580202278045784225342854058398529845895269303086664678890270125411477608765933715250698887530005900885045360145941612480482818342054827512587842161610507110917053447016408971867589861402606616828054378867323180861822436805383690378433625893717353419695398515535739694418933891562886307247670461620777896868951809499669657677792778773462215849638774289233432362029660750447405575035026881596560097267979065394947536761061172081084310672261543101828308115124381161203397875460475713213968405261729380813253400986397139290859941342023936849600485344181145317602618438828751130400773781838609738261077431699574379357530775697668466329598695785246104588859703427730414036886650400217909247668005025180041442489548336901759193607745920055441277795957786206125778435048519499691018658045951208352532021424755789696843381216150884302416895235810024431744102633501402380470580551700344941574980307116767542199128724845898346147348198128836828995264013732816639241212974801739021515435593726573044893110737821553915733559167613252410441707697861895009038926340264430199050972832001846207752997503075725450108096092288478541599414687415162667038689270400594127018018223613366224061841343020652889167457733549603040559922161446240661423627249888464623358715295828882886944325044480004045471580255398628397218764339017087233394087971431325110887538215701181705941474225661715283545068901406481115736166674743860679577684023484178646970456804309270428352808573939675483396245132181344094486746021688565963378406759235883125629667549561432321271689964613999506379646339657390707891790296554824802335305708131482707834276306157440382758512057694656417245797807059433303061545243451719540029046185579870225472740676192030079154652027435933120026310974260489797469482365355772936740325180083061486035555445344036560361657699904255164968578830168197817347946146755639813418086383949691586748704429549551438074141155604676498035116325822851879953498787668698719018530476233552157028840745548509927423338601581118090617372853533531432288613752352981762380830910421960092608355371436276595823494147422520407143890335980835516952221132341837301247802839596527648431123678434759702237109394346407415969851540134704753936640672408410214081430296496668745880070549533031719669622553474997225249468868120950722412541249156381176277508007650546581118368020443799477279121163069640271537542812509415968252939431909367351685297744225233998989142806442704341065014940491738857863559345832256563970158359371358317187594084601404342298952149256832456499033332665518155004756553706982638811337896336515072860261293437177021282530613330379107317313072628618867397454735614050899703824222366528003731582695379453651035457337531941723449051243281286073370381842550495706883257861912577157403912939033577828563853966214041418916859126836314640150312077802677977111233479220527067468688079360296329418267927463108851123653874815112829586278956105306434727348763199969698439509733667724090697945687592831557317891318185838013377886076328249674494259750316655700396394892865976686659454951533219079573591392474402892624373226071561592518011182711350541378020914401317631704482593471954629262072207961850838478780746766394293655638755691598135301672505809792222131933083914934675177155543809645725992482207858860415890695783331372110335794128616223173122861090735346473332598594307727100602913213585839456260297346364668412743300198103198840251991244053090126079914178442492595367388137290278240880037677476296730290579300809301957686366759201252486174318102050049886402715492184019873372883905733826331818242118712635990620856250427138006186971664019246330768218314075568638967145873093554795823393313263625630370316033097307612535876735445419029449496937680707735377589617725746144918158764509784865964323481074775006719067048259887972907841696809029743176326900975801163035616942754792543573180601631780965172509938396884352069861019358449362355860966904348458506335993096839475287753807812825147706699868644656864682667082956362434964979231082979017230174449732369984687108409627023242689215764536364397178543822807335864500830780032642958046144444129662698042774259713356450492506992093018708047390793898642229258648897222052745364900319757442903465158951127614498308604029395390178827757088921388025166127833413950151575405593464152717562714799405975043048457767480184073342564268951232666698797137007410834486731784107224188698502417692056245667325929719203343741845014694213667311767123226323550074498125139626471566731047130271645818355686770328739783470817396352421882191985592926175898341126799416965872979859142699971809395371838450124979661830829660540498371316414546632933085723489741639332066596082617610418921007751310620606090904736731830622652578188024205955236117298996904162047648233512527679976653183450389546687511582064945230625001618293613340013957338156759498004660339027846894101684303157434661221061192480943216371708658140003959242052101567696169050720205145809268790017529380017815905179341448821502910346292854459116268398750701621311939352830488256837263421911871257736676140710373583596590271065361504277689521279964820453237948457375996808408719064513276767553915244152655512626406004417647246003528321525476915530137730943892652702744028195781759870222971441502314559637308006024411366056409537316515745305318790910497743413127745673867803258808900638410511329508344424430990534735224550313966241598816251279295897991408766700144077859425490248505205912729870168886709258812339464572088730521229617110344205668285111586420711609157625911178108314348648317487175142079492079838102430328644049374500645912741524008274596680821136373370683432846842357775192970576994745884442265947361379481161314586298617669718824774961208587370804572642859449959895291155341535383600624529110073060093940289213688467558925335777451747998241171938047232637075130082875016025462525104835619517738610118466847915000838146717211806832099732743831702404394601578879963039291093824925097488168666724471161093008751720884328510221348932964688343783731242411023375137119895272232984819257110204327357091855413333708133216891371748685232499390141131406810563115135653870138772564974085805199228263409900052361166936449878506826975649526277312493847791967347719763826832537950048276024546874054810471279838714788960059950696872811735569644650961130982867592077443192621276136091478132350385335152088147578228018055773301448200334242393813318445442413016381583558324135494394788277252710541606457201032391450368478222687649644320030306438057207827198699579864136234833379479991568794645314854022129763015772965910694468311362301745161323358029717273374709919812002195450084782906064330940246389314357184466193964508041798471292345453263150617624512080646580408002237834438008128401117170311264840582589847103297874978683001168084507326726311244215427534167035815147578422856013906526248663214751961166565058166255466011957930978670342513103198966663109695967193823045489884458653704824801193753634965725304790505977391820112111409936482864736060608060827671914740773217936932305551163870209587200224424562470444189695222141514050371259989543856558717681300855108657649807409115712100689534944804416022347141804965347171943074673286361590107970263971243836862299959336437845889797431146157586180892522130072638161289188112027833731301571375836645546024954626687862520108051060356635051669081364639561181530673492513053989738872167378412269912573337403916467285680965164533559541877842397679510044852413618932028141335553061851225461687366321466573427904332543056867853428637786078869477844638195953418059394259840562067335108959883524126122733321885350510088857961189001229846577365880848964951541744839400642197141646026402760141401807050430301838606633636768250714708919356218251432287554143160527022160698369915460774877454386510923960115662563935748383814770314467033819239454746619959609669923487497665133188905915006784159792196185359120578618875671071851470073045247240827461591501317071190014772748712753724375618868712095307990105104544844779663420335741993033615886612334127764763917998377299355877027101757116097653293969756567965667688764542446186110870286923667636663000677095943253711778962807056680322183124843265831432587953402611271371563123619250659513158729995626115696786326458038117856856722737723537054177657489457359487919329036400351877226282824285955286408191733625485014556161926941425558559835224339886106217710648719230539241127298213407589482286538111116611615504119153752266070471227207933659841811080832977034315213449017264267636628001345218377697136040775013935903435974709674097846466722530544005139002984262774893322096545393429296882588081219042812873632105356290160238633131685887482739772558523746890722071873936248211515730189359989592800069418471630234590614710695016770545993347073478916478569736964576733850796935093252256018492248231128950756334074458401025259577917959245472299514478650931815763299152020862231787220451026066944928788565691353269183066294824927725808836453612328290178908342018232274593788191780161052177208583855860454180414642856915244794376453962577676284500186309315602643436996015010887483325327027024879812849805525485411247745326800653697259354596460228004192349653008727801827606185097930361842707994417961878164223716239189622080893231764609683071138523060050292526418561082093719967402127132353576541121917760539904857261661147961289331725893695088175819157168906229216702330107269427435219623276977796313061795024119485026765220574871905442925543841548989984631444870248182191254565310089395138979452673111006548587073188436147144767758039903520790303649533382195291417000749881779751650090708643978156154220944663307898570379122945697590551179379359848254771604938968464122519421533639666050583775521343397378401892247964921183880422337351374368227699931569310284670722426969469343966208615089954466693353227054314684265799256711950336624413800163087262916796217433674620676055038136498027618457034070379797175775550325872318576034435900328050739770201232108617687155928622216342236182744993440053885306487884628469119569795997339726932671930842201627207384962631434874126773957987845477330156087310262684825109512495470595796012402710218776637272934444871793849895200910116003503343286916330895344257741875757048734119716414955957830702005466842173718150500436214779561534473134730446230661013714986284694652143474898039988894325158978507675690962865615706430707230973309920603816705244040001047426860179190428620898338868740346482628687830239584489091152414923724816618912803392195114316034408795262810112146694850788682176619090841169562239619116763596288861284944475643075572349286089772435563570483755610564262016825637857992433242873562775459208284215619225907257408902172233468041144716588912370917623621080479487992458692218013533738540304139491402810133116473271321399339610930091906913119838212789591296428969011846145982612491488238856182473178451865826454614455942734123969642982344289474247652594740712961419407240961116730836479838994930422035971550473674755403902436554892121245660592881819118068336653456098549041495447610250826897845773821418943040808713151931004131019479574095549133140349560778777954363711166667339596720614435123279180945279625870014081974831547146664055685618287980923710443543828456083125327237046658059336365014983218417803697218865761918161113937388847199083528444155375353040805062557459662554643458201429811656877924381934655344628845426168311413066729038290079506784376875381236552939260548749210260349197078861911666756699988047359800631620511406362584126207819694354192153011588568196101618950784282812120619380110718004313891460236312623292450727823610766042609448989300994372528617898167948411418592931296514772885744965238805062710208680536374683162209097792889199145452855124166687466009536168520866072712944123716475603182895789448279253553650598425940041543278043875804561675852723997727981764942277505473681876299137476628603068666105625735004224942513869228969858524999670846894560946009266026808028387847826995929276524085077877882869081753274069062704699748671383480801220427730657968024377283124480825423907334662719948023694370993531248617612211154142657698002020425327143157047533054865174320461573142707728584439646566623898628358521967607592541233846354660608509967286413622159010244224091519423159491373839561866670336343435109061900073730468337986430614547281200459381669741914473653535961957764590286843726134915872026880004162912382324114232391052519935382781522553130199885185753854752688656055012920790491119821915663152717583299724468791274682180970910996424149731632477724270315667038889649763927152573905605751195442627561135043711502868550754105294747459152685894296293192189757232973024108960628569231261754344957060873397290374439194540765013304529186967841000240233116351424675470388649533695397378206467928807716384774520766252097004673360758117375976931089762492197189107683585290236209537081587806012509148569521581398484421695015842752140008507819698325628603065294740678135251626149123311379397690627166593111325249254519995983122686192156772534665883122392838387403234353940626741812759630143070348255404048012703468906525651736760324773806375008536258294648858194449371885711232129551119531562982419968664537512005354100490387515038087305523698414814467616792531964397056515503247732484969357786440494813287821974789743867148930559239919414922452964645058217709673194006030956951109946294115014309261321497695905660570277466740277393722922947975779152697828706710939776731787114052149619798653275147759723676020466706226207900923035216713112089833929523071650402193400806471985020825856146803047377357212458170022436845387869261717365544692893107550250576871170343243547656704350358083012688079649947482839073553637610656243241354977124041918068060232345366686701056555500362181528217074174319599576571613831444007040390113752175127671101735906708943798624450869737821711717285587845559276110044508595469593340947881906327513298531528235238224975043476752727510400017738175562852376648551057545689949414518179176437800654928150256902223605048234227960403529042969152597835798414324306837652673899736096119330178580975902230424050542670762768223503374555680505729824692266428234048501615042362832672873972794030049372517032126966393054068872257837029220352624523088645887377125560215999278854345656618891667541922467321544365493205805977606314260791578209288815667605822932683459296267699396949797595194561736811645148459262464103785980946861294018510069187508538165959673916544864597670714640179005685436222342025475478926618189241365569523793818805929760523869375407384173158060418944669579692584332414159409202541614729446575961204806636962440387458094288897178511629037436191958464459532987697217059107852464889388762709500609952871638920139470351262616242132343058101799725585220245116873400428386346004473546738551719301718423645387281808741803192902828930709057701227963499134409075532472303070492973424434696184251056562829431187741273400526528555366378394060242719882269131707865453050057864336895126467695447078916309601937605758618717466909672844278577548215910561154171505197718456806885518856729448292029681715424183042720809604190278106197976787295892482153362551411401857675764073128399915598700642233943240936997450311068609871326649450650965390291684231154652543201539376114473706350901616056424846175270584754863876481741504182760411294013430299591411578365446378655561878480127902048654973326335796926699447159398912268302187806049486685047048859167412167644254183490968245696178322104032958588824712400416614779362414514965357946346175671691735530009262125314667113103856571009863738376972928549142299759792201279151345174726265863869645080998774427295171301147851519964498190711685137360497526333341271918653956203757546257830301640067408574516733718615488067947256159750416772329667168962322013796696126348997118818764272805780845141231424947968717142536939454385939763140963850004912238335334277371379120001099453754545137665882072738946138301578446128983533535989148000622202684354968359484578957055396500098907783125824862392207827017857201732543428365360051764160102365388784559386847203090064957632999501008544851823226918385633466817445164310408793893733713353858927715349268324210935658701597607032154934386387166110971863130536007818060939489691502961076948489267199611600655765971666101688495563448596143242689386955895528974836375539857216560241095848399373577483618105995603160456462114049962986306190553021986889737152309745943320102501602995499588092475198116243586611396219618357044635634830400605378415766899496595005513686869376203976281874138816930376950803620888285420914763046560747666966240098360745634616685148648271769449508534293683054594082094334743459212201194866527664154868553612485140035520163100729160163107556409618050584503223483583240405088083587572723253064799190171021582826493089228644179800382052292748828380426626841925845255228142667166761668019564814457525249528883053248781806005289183130152061065411638440931595591449787840277532279040387892815257304469489939578079506821008454955805576907492629424024408900809227833501229669325903443124156587699616157710060485046319626105197936184664168930110961369544823577316199619505375070251490313414922390704487506876420815162558080402955980212472775052429311501722162951345352858698121329132873128353779879705103767263553578256330373655827767364145170143233017285036817942805079849401803437504355933813274991163930151001404044113715416439153611554417484905268478143986467494644364392977367478999603601429273839116264689843208848111446778698363150454296097142693232289017339898987181777352800174874689054912305491914306689664159255719677367389792208947473632718766280725509979921129991137053984419872042355972044800177173398471095315364530082772114757070127603683404696733640939930694228690107549899655078656182752881746154170916864716983124272362700981745140856838769434440496527474295357441688881509752506281716374743474683682283278344372821572519912909907627875553285227876562855285141585086115659249960458462839396826204969776239931327427836769161294700323719529402093935357602858925228497035221376436089941267318368321317309506606940771402542336831043354865747084092231415175405436666414499062668407005265362828588992264028834488201850085364373144312777121548362659480462565721029632682789757926128307776684177379124577894029191182861284915330914181005203046309879185559460666999844353498449233272421514134038702158265209621969546036550704781398317743250712070763443260907318943150618923543979416780503045661683778522038891507999034606223550932718364673802106227926086632483702294388062012968297822165684342769512688730266351015586785959410876683041835053736334294971394645125368638087504566613626178755576540200319317246616725804342044419886040514210667298277339908217819423449244501579344596635940192320369016647469643261031059922402153281289345943491445709358611109625868769155333868359304143093786034244670087730810725103627920228918303372490570049635640715952716064084371834872761104677909743303406672961916671608949127383266398880496153851046905410303215767444176520117868659434001317853463588390562509176032219928451253086259058456739749454589461676766641266182988739095920814942966234399103626521493490340640767697597669512941256945891359704496755930399885760702746201853351923729347188672884855954305369944461401365868841163267938777187531469573758456173987436032937945665150598283557074845905931804270773738117673344756146686049170972511721783234018891540719886917128974346768920728109692889897357196344106690680785800738214816233033855281253868775110384249837719894952619830086388410168518981691654672984683177213254877214564645534413660336722077626289354629581503444257413161379519361876836442867883708198354343483335312067322636815117160981817413827322589186971010520160354293808487932339707301074330846316251367937820486671503303645581698179996010132632893868925336296255283515259135474055582924327362344806633898043938369580348679291516597695415760343597700602442937426826183992765614852491184100163067460053503878753923530293678421489217154953443233578628948526928926422264358398699409751829275821481838708279946137111071946760326409397289339580623822598692412680511332163943876829238657031833680978507225470836751931352635858105328534220117729196705639612075926049934312282049620960221318504386433721029396125451422443677971621430698516997031674205291535369868978799687868312029564469535165542710189343357406106586651834035670103092138127528010787058811311297182422477509045214079282648368980389716115589484306710245393452479556190701386915253121748554780344109351748653508787730903658228841155956472744609034736332436325296701948873799231849798895144600261138958695411824242202279584139041336238467347903185549263983850712275566348239936616293549678189033716810922331184793655069576349251144337554760205569315877086718287100837501457926819568940125340702780433272265416589412487192856054388713613967836966116888230686896056848203099607942749253395344839090631818341969560188782676617245855161242732037934566532188757636133166438027416376813913754987713339278541923248196136557294924342647890556663364346378510739618571392229466149170216108166154190697354909502649631610152358458931171960816097488845618451844504971761283795620521906597844994077170347333247974505261270167716008135911629728638085069765724534476526445492475760579775630246932536348419859668354285790133704152778252746897448505737751108247627357909362315967805884505498726739601215483172351441753933715685586530378246379309752658205005259758933809328937530202279005682960895210601970632771654082519597986969785559830519885365899519222090584922943085715218366531226671034957074149168796232809578562376999123025324592581875228553419298819159915907499224098522162281546266767186664173198290148431603422165185984948624754900384471976665401844249768824742852863891146040789393986227912815308675770386918706523000441864797830149707929626043189587126094551505783078556486213876724056876832491934117925956311000141505622733323945193918756282767360044359097711564325566704380760651029318404097666408157070535236343734555369582309147971673047821302858701658906425354127190749004582559701205851166733918751079731768940424944534953508025094465277804979164589122548170009775146933012805202411094619249618382777980293071633210163919468224653666734194217887449521945008744117783365824999511658628819676634939497533845441003402323402504832750970252318649292694339618719175694192378953849027483461476557083617474556252869747255022431516764517823669166371335780916122283120103277108295674983758468962090290833761900229123968841466458114204474920731833060145603147146605210287624075902078573509101863607023495225902549838592692428048441545623297380560196742299262537472056525637749189880172330087270732814651984066141476562015702358733978849910260079505115867535054382545542047184999865669823266290382809299415780038728971180010310525732527254706593760965974132260288238790658965511038639165292106285575014271013780951497044859712593313649936323845020503086202407351271488016043761877982583174537784230485414262523802485695873474670854409459032791048915524403270886464392035633541617860254712608024754186834223520454313012131438686661063903577407605089937124327963546674359752854277038827837172597763017763962287165964958041395738952664686835810143822769089964458611931604816818061662376501562919308190168613949166477565854900297654736666841649748092035366772776246283248454806589162648929489425736837249355782449274102256825161184254405399095545070691891317571349299943479308184258623703259129025970942607809926287949105741173244743470406749612686735642218496743776611392473535300510916070842613732766240586765683054025287137797700577561667306053155310465651257439752754316823394278897279873222182628892500328220443114488175161307050938062233013454406390286546713842417630261919445399405353694106580982916258790072966791718987154223304518631251661790906653819197553123448854365220963298815452564058591961990794401801695009694152551731925682567447339621089801261319452801639085736237986297604272877027539138758779553461646770618158521521594842174569528551850936806124532927693904176842937563324843984483293933649538545268161119719249035458184172273756904886045671171072611003384435801867112125670152625331160801328179246933550557431149272091692797393406759946632155649465191806995622980371558290082935684361837753371949941161556639963014900261919767272117107212130464008779246847891337990055393938441153765171561368358097930281841401796817516350190937831375467134173479244154375478872127549273940650022331779531479347180337755973358591174638155330474730628058825435624607566884868036963362095768159773298268193153817531455363106323369773805983045813254662928082377422710113701233264601845030332386041087954999416810283456683938362710954322122622408555104922832001376535136892600497413141188731790713621418724617165363214266021285784276291939378105667288994927355631712938202737529068154377996301936849029653498707341074102577761208992503459715698540094513557901816819759689130864196719239944078881277109442079623459290028162948936722818994493861219774105449675061703145833875064656950147446760699768364468469905182609890541262144161319660347391771521944569178010181177921281102366167597118129695404409240419135762860316710336135934796483737427312697356373857516361353440736130191206551447071350509970579303095882728163401305850032306197002601104315215771604928293933197388854069313972540667468534612981092831369572414228957781593358366627292348619815837342644288351601790057185144513631008442614168806280291352102423985134138109120384652992619471627040962259519421960965993224348487223638487019268631128890893593275540266314114042468597516139559614178510547254449034417904774837903163451878307240884461116434722608896906750653283871577583160149176735340986039151690666404265949240889739629456471459003254841453812134833400391781769985058247893511060875901355682037427941114843273156137751602814769931118630371655776063720194213698077760251366845493208458086272876250224816721420292500943293687212035527841411481837411994539722455377255528280600585156672711816226346442523156189022548377392731249745701379784484006740566777706262890608721957388540620429846279185346411138493316985653066140746825681980285065834136513441758601335327598996577288437482393228287574352570370590517100512933209477608081511006331998952263563494848121513664716958224519534519387618904066285339923530174497739586286832848674115838305885809690715419641523272449521563159730359792535500882766016632540327837348218200906657941527493876697342866516486112224967634551083486282393351557557496455722994141846027278779114184267154565412816222896955582649904212108460599553277670117248352429134010760991052885399393472386716823122401370374875706252820307463917526304136200639011781704200517437449886123593983235270347279121034266579785550396385835653504147693108321252412165580420384812436905827089583004351025457187532151789822760551335066112872288347500245470132990388107187486025992679636261201892772516121002668134249273396674315765181167983791707955878382993282400883940085649100511524220020814841532564268428046986898342707966547946220394612212377745219142713632688619957621471933878717628705744158344586312802958617284367484433222101113143334541608651067798812752635204241491562668043336892475927237490345602231738257882305747920075863787048281686487312530154831752753407888516862058760399422329020873612360570411511270159628425959318322619562730716120205046056628164445043351924556648420066066548792118171087872535900112494993844350382338068587351265181391106762097029848450760743172102665938324435276028842764121347436062147554182976290394781898047593032803834827281468821350834688445024618019385029862352159526619057093201023109446848916495605978902539821561693426470296957182597698274330582015385692132515327953862738196768771341530808471133519250128376814924401679471610204310587367984305680307294102428342179215283464259459847275957994840255188934433329797968869072013781713740555146053092508364476890129946210290945093847270634180064469693333703381746449001432852712537539730272417851667552740090675698000304830902432171538597483303509770875536038549273163270020614111381135235022737807918016356842227983556989593618370112640610928418939617745359854548549746574961257632159164536933967146395356052164052505585439381875711131118912450681273762127747139917891503556669071251639431261545963417798025536667301159582869497075339250204948945413071048218320739983470352327517113832823706640516436785136167621787090361214498195048504210544821379887230147669957313704485916543787522491410750974500318470729021607609522934326889047130313750990146851748713274201544348136642476891723809392743278666387639168138912088540893010525755274982612272644070044288865175353957470280900833695693148987025979084904619268909416609482139906964619856123872152681408201423504375454039384415673838689847483681148141944269877132572307433265809648352976496735546833812129654590204420616269395161455743273684363823740879390641340674813693961595177079303695282710261687229083426990618288982102685019591763043633142425222130936312380643056961267073932946826626911153701909703862954848077988339570658848173425080176572834362475370459556639755741080450680453145448082280680956183001775730347350293574787986833840311629808933922939448536191804772908701729821813277398444684369102061492355320216423151815436965758740565878128711549619469359773505748180545592698107027636118492136359085727577680728723133972891240954964338667580264088292359056939946468943235948491468238251170039440200259596780814761761613025819952546476716511407383023230527157696751205541301396006365427041216815560319260592278809347111870206057978816234948717803795084667624403899871494572884659814662224282482993386948526322370452282863212422502071929581394094868214174584624716930998390619442481033198127332460035595648834775419121849239256122552954722622235651494438661091325676034907574995186051005285224079153837630333704750938225335739424548730796694616062969651001161990300517554253925701035316984995150583927353335417485999879305808035988625158228806964914152677160697951197089790668943541247649534392571277345350457990802394995229521033652229753835936648004786298415598787306863042251901335890549911424426057691688083133870074057336913181820718435102052264850426214740026933659810300771122780376484399634195912267324509220622951188350757665459769812242271709480952001634900093779548065743619036345586367455416961470886767400779315720541004491777148870483851384809722187480110235161799309218457221072671813013272959191656023991688178848387417418739777585771975629812820862653296051525162887705220526854786812015870230750657797672171210624773764236682569154982383799933019312985810572134776858636476067517001614791965727892244450439495066875047594013711761079064423645029600538252367056618303780943134593944850113756486897369402975458368497344511950723722133618876644458326761709981932009434383609117594855164503012617198924650764560825738502151276820064267929363177773492026090269504073719448763889598430342570231166716553181416556205642587539630333917831883429207894301876736314551008708074346995760695841257611106170664631520770820398345943163463679457808607253785394130562219311066033631492766503425915081814115263653310092218548601638360511167067836964272157296873553004991662210302130036514421635417440737013515145862545400712353844645182304324081088187395252109851722321663840001806767834879458868611757364777261997727144569833746564266190864885788050868843296466782458111972582534971779031858388228340344734575792266180711932736433386684220019643600988746390370190008270913142232942982904769501452360436341655467942141833126392540994797119463574110488624796186358687448236488413769923067384597039320907301963909393007731647544858269526497341166065609779597442703605993650342195836945548452210432917692826499727526658595853659599404458566631099590656129434634635857540203226518209494063475105042042205307292879797207594269303345739900007807568507176067356610338000531475205510203427498499808839977409440225894459975377604336913287824594933324936693526366422217351574903271809525653996017075701497455364658059545046552893244032120812774837374213314053718306091599494699630536360932419873148697637699082626965711491116921583450213044409493939220146000368685900037199348311123311664731267600554803019697484323382400319100542402905676685481529229193364100481901015445898281824329187486790647103143358029766856150139183771519559589606481462842926480386116128639999488699363930191013197444844305522051278002046093042085864801392529687999012879994381536687025399038200896532884195605669829186912952744726692531611528016742481304342797862749109934763951795502281796986266302951551874765414952851676702410042258772753947491847716465370588107265361909407486557744374325025345647536116926434945581022137348590797622047531043633856108952067385861274456325355534955537413946974645386491178297938656869014590366310435763178243158772231687996528757044731750760292820076818690401049736871485937542289282151531477695246634054954600985912316733697459473445416124610916906852221623239644105821003601982318372273603255053713602663150548802336434145989415477585241190082167767290225719068395722271234735711040823648005421323268501604071709230862049395792703434358206790090440881222260856538959789485086233087932277043865815134638878771446331743660700038829151823432300003239771372388889681204664993027968766754287725588724864990454464751945602138707447124518245691525559678180795860482937028238946792347250736345001742937700979001560507151953612436954004137240476437643884581409016544630934883220626679657002095557976145071081993634085000016755161553755608067910845447979380332552282979199015386502577566629046672319407929934198837822223769227674499027649119680127508126670335148112239253417988028862487140838348910867095828976526984890639446921599525933679524716130190905784596340409079025986332291279074954511402946468653254690039099645716029847970158370075095630679023189765124866126943539118956880879222456830784157860587020392172028990937571718271617560812024605824584009746670529176507932262674205917615334395495360895642043129053825845250866900459747582121517283466764719140424836822565763663114075426200864592214801414280387745681109325882742084171944483681666304042638050158990809974534379712282593474176220493595621875281369144397094800465613666774427349664537053203791963506294262705688150337195139638673691485334782948013542043093579572423142418367814916871451582228125192333537383902410805656147967060090020708814600642338714867015553717896960095885635398975687994479336900855411835865945593021944714519069032664790247993490799421457714550929901645707399533726100339300186537627575323677084203209907246841946287283057820401260582708555079511646447104167325912462552458538314982414656756324851413547727935238167769374150043526135112163274255889688546820685767046913243232720431324296906685422648271168828068693270834489086670918783599065443483517512915059651197679369814397316067199529061202859659125534669954376241349978188273642359691819765454047495458313619030256506822929388872726530635485916389140490216870596902923419399488986627824466618676954469423171608334583481579743522126943605960702769268871591279800079586542306638891768776200753846825052257684311645408502994805557254598863872032729022349299321372254521630342868023963367942032105002930798078187142989031932622509960862020977630437808966639131911305738928771454369381117064134497340698061178348588542405716202791859506063364398892417567314833634457700493238790763665534102221065097392523147101328816523090154455544390763309541358580087008659737596017392630582623525661908439350499158749921330911409731788316896502706330887774606176438712402474611594097812844996388937288532863372024692467629371013752185624567293360430251969883540804449900429683565437558964187076560698102159274283843145087881815313680388937978209445896795604069714859717278424111522140582985164796977798899955244067397128404184505433430763068557798687810321171423952069337005689425204145054151353671247627465124290844732151575705098159504211595890913419202827881808016273676030441099401751454894365975551967873459112342613227665328566278793518245402519896261340278338831497070457343663717673721958700003214780086917663017961934605228825856025875941238844648287952607670108831627454092673624485267226609591015982847599673498897761239667537939153346358116257648449864946208170513561689656949944633761528333375906105490587269581252505716566379530053764283071513226958853117380894864439965529842512584892401131300467804114536711965807892063036659035514494463966984855157811363611951552152226240980791073739065400316857876483927328601418591513556234502179037192705302697753209819583946915615108481755544809423208801205562752423725186396613621991928187428032639237326775492378331305548166628338554813533372454466545949801939723446954871007118336574968849545613838500470741971316112984553371401502955543256248790048275977871611317292147912954260457745841684275732826540046579309915381526843496150234296920794211676024057435862300671074272860067917457545023212121848757015168650197976078637071186395374582154065460332729905316119936745436723310344293595065725103830831085928657542193930868847805695377685333855984954039042137165451295230677515466184374432874070498999567269362616758997319057467086144370045316120844028709117517738977484275524395078647124126352231839423231215655350783264881981823723582357246253861316794753747405242127403504411005063692883401703081844443955701069112695401327279848169935213246700789471145188102707883534373278071126732256829498710989445967770915056940747926168832122431727424232585499535080014590193147012035469817125869312951462180786809030248275968755253016558454469670059314634133081367759639704093358611816016589829136945399550838024166132589107044703204005436097738994952902632905810335000954863995332383155269089860460442258631051460413117688536698569569883926168077419960420447543059287627024905008659421964591978556253806721727104267991524030633761692202810310696277924285677572638938331355888259189646583969803424416167731078146935532764732453033944660073236930737477243419366244384046937523221368984541004075603336943811952143498810245413363315735856062438795709033882932349251264523113074125234304028095143066376173744041427395400391843188261415939858050627540020719642535775994411658804161840474672987111128728821706948674864043775250638198986263433622512326162747164271417799395103579377829639355633026582304598836950271358614648074306600554111956681113902937079988460297548334900352552027386532712005943193926002716485204444714979862027716406527897491822419287802239762191924182128155851525553415400094365164592602859571466893719848455802929095424186385451235598714007960420901850630276487715375643627834381762330533615748877778604067467581900102091295449332969160795589381852715815570865641061141934715470209711970876556113224360752815102104801214270684302277329543552873852345145967893900464664154059938011862206368970162185606953411140443904137628499892577565164942702433777208108560602476406887571120052835932456100205774223682690335517918462160464317059367668501910474263287897423285242513263820954841049565706182714711151637299504545750995610618142338432782589285780644642258426936065439433308099136552267155811088171875097982088181674404624517458243411405247213867715624448173716432832494669172089583253599473597650035617382510554478948273695032903803854435943839319438968177491152318526732939450212063035133666952999292964530117174884939019972512460374936847177691608006097598417081939369877731962429817175629206777027076391750837634403158791258885839542425682680954252008418756605839475055368168145603398734481878379701011168136873061694773343654335609512031705802978646242987624653927826978171763900088809487815374351323633722402232349362424126979343958090576917065004072946173473650600793119910542027584145742602839289169863146486860315433082496835651063695579580591345345510063137890452442660936150568805173690571134513742156263487673841708023689567351709335080131461423825137900921542400849599249774688245544025325880800125993187093888810182855869624739753723506676680794158826679626592259812972054769820721337343607345703023737731342661768128397285235988092849069138880127308654369586209780658421358240757384068519080968981474837729183329697180130910581330129753321743799796257758138533142188687307813466276104897351296527849607150796692227254319436708656328068383127822380739409920858831398037648629547472789901487314109552603191399088239368840981836791876353211641564723006477511923517137594828429804957409638856782529061895573167157545547723313162377872538479455813952029254858405740053831835929202253436119243536249124950340023002358677227028581534483093334905035761440839433799651374276968758574833853314020588030873669740838289658433022591546066552645699508703581215848032608563911972058315697698895389028536891821786883213976494911846402952979921151062373291446650618423803314886263323489913487751024273228354264457687626929938516453963186263465478782581991277419580425641350337642884705779555617805521644773501093532049537681258613759024586550111215419901244692554636290688839714385594616062571660358689308650229010873429129686793976000178098095958808392000201899777734467838097908850225602093963894136869356012294751211758306820583891395854635186000572033921896719824450083501365044124279271145716609220820629776706156504181358813118725418574327423180372503560109845145546925802533742959113124860427652581406894140119809547645155067454041777020355497734538428445839951089007229341211720779477684224527398615512872255979515319871118773304497326078155820320516287728639374928545708930334845274683120445023905327928128991283771584935080205029756446517229262498653391105419756100850093396399561308680643928825068919960493828588369699112410528958229309116574405771678445906659772157027850272171678017150633776501235810804952196346881669548363684121912513793875383834231164472153181230427624156318803612563189732531536985413655484661574717527062105272250586599242223320466892880292779896726162239644990293428582010702076614174064491658749654460944973982063335695850836952154362798236078336189273252229444977436198873718783799170196692992909348393146007788687709673332542496446343503999140659617853894403133583647107432401229501778850324978900585898136862316628853994722979341650567984590329793882935917905211907907552503281951303690165272488193568100282672197028445836249390345804534904741975143437395835498383555107577418929357384679746359365704940349905435983471511181363772368274535054317682361706876992134061509506603128070267961247224434993649676059528584113296687183902413088626164047170910190776129768256062363651183605251603508560002860679082510200306390463836248805135519671385666364457785163852432564072691054399445578344606801340891062763152530038831013711845220369616645284077842248146380514335062282107035832505133287375853709300318809837150736205508573388194964787702128287106624366528643052480172448254772405640484565223161845343923768115895629012751878920416946356966117567821486118582271557881885710185504618634569675046051664558630246300901230801805705233258737045266909928313917569247389555109821819397441906969977287573590707336918217933476872213935451081019855276292170620643434961788440746349325147827878409632883425488705921806338211048608035977927445940027852683249439122795172470085009038162214216450147848904028035920164508569146429463495567808670201283701003821815527192676825546564071502915726554728346143026028331854591013127376971247806143269665522029564412384970691025430575093300800943749099939203854280849236842704450372219636180777400301702916877330628885298901628119274524371207777056408610274370677854641858609275879269963143203540741431706102066479719186821946110175491339632231734897170665144270784776672759537886891920608667812450906737374695011944780282429305199782719892346892572754957382222787365563068835710186753636879205536195672498785152455320353923747985032852892180435901887179057980625516183537791429685812383967593959847254482437407048558496975325192264874011499290167470481443207930307346327365809395041893382751291658711274910771276782592101424554839432816015342807254953578572637374782302159074883303889802705951704486197930664886171697828708873448190674638828191188698885111658014467359975140780263631041570554412580733734591595594767061135512351755089534479890605316652759718436479297298966608158191985692493005151109835463966734797894317985396893423245074428356234877750469421419918688114277159710448482166862353251611656780479749566111608568488365963155105796228198850267508850582547604875342405362012078199159512862949598684153171900671575488833801837094982579164694117379216411552101395008198532964628314521962273587859209483964461569784363274357355161998172911152915323134628372867550319991109035122683630090859750936397603823110922848177437421163419282252946694497051212044702721202621299400916105740123953803915323553061948663222977524265262203128186580038210323874584092227511011927928299502146057686712849026948628568846231315005479032838324684409111435052032165959720378241494336622548265001182343179993069151536739257762823947716038675607919501157095553782792714447524113697859523568590731072231931542507807342251996179099737177287964833873216991140693927543630115763010558003802132433319980919703809536366824695228355348810575270528743386239238178190455978368907021499112855846675055548887682972288631196361828756682967158150925561395158480589486078459521071099054409261731312818130699194443346012935468582677670366491972587665697626144057131348053094516566341711709397763654654506117865299204682365527129926027830062328584913182748746791053235687813008528837111200744318787003901300981966817625135040766800899502689972052647140394755198004822448878669427854605257095404767387813994178240500958224522711296173189800899342652551146662018589919681780080003372469399391956169991309358796688430582099977613218828819684233942248547209081516700184201950176556608920647161670975299645109861425009810052769599117817480740928715157302781828813894822715282520064275647485313398465297999257951381109021095163120308117065960435163721090245195800702670968981221677646215073514544995429116809881900854974510655691419315136908936494076737959639696679450025614161924584366521501199817462843150232539557917818657384098332327731515557236447546561944077100086922795221343632201088730370873488075462703955465439740962263782786367793567523441444210830510251512716113659645511417233222765577884335677565591808814096283663489738704702679978246535665758940965235766904339322861903377671325053058776815804083935159916844335757892498255891058177899854502425263011445409940095791309889879538075614007607612087231991314611694747314619628434900189303015649442621655582354171315046204899637693460979197624697896463129945983354175723514774420989279258607484896920083537862790868625454494596328083525719382320152816995296403360994154638083639113228888837883859109368888159661879366090155083737571510013480233590993158258471110379799484486567912734260034031194435989143275677807505620561119339625787879768314113209971270164250435388349266503708860147721702725139727295559184781459913235797285615218050334575504831128531655447525330101368094366941179772798709306598570018449915646544518809325921843211215269280536922347346388869893987479300163094248172302994253237335163683638851643134393134793898042283167052897062121189508847007313352797992641370354461920165237032070229377333968103318855723137023573441693314507256695157896094021087427739400592553945343172495484176427521336602650216266765444539610322616290948153985076789943098755858529430275812297389399520569023509760012055818002900055087249303297383465175812070745751922765539642445709177425836531734649735546398113120364308324182706147443992807389780086244204648645540134828733599397824259976249263897765328919742890422638424203203670064570028417326327380329780687146796697542364005153724512220488079523901004524927157432369072153179559105464456279673271183561055660447715595216188288239940996195644895721050551706964700063582417608326833943000454471415844347246897539762379323172239801472048585797353606519296935787096048131553325510954021589609409945983457100519303784875723168760503636061104288516369224145958620755717091333191550102922963112727511456678105690943162797805967277424450641929510347941027328174572343475744577991849359500891887887221561909609242831669301641299776134404197171534173160177898731656560944312977526751907496651518934397803934163039262802808293382341787578581296794892809032992372688677372633606337398606213787313084520447153934809872149066178503840372567125672834017535023397883194928262489155060464064301411389749354829590778167764758121130028970962822290885176921817254049002379447418622223553557316856308567463132034750359706487930820925845006255278583261745713407561401160272741756989888147434618647556946931790023390941733555461518755732921132241298763974645927383600716141154892311251169584567935667959164857158361721964973205200321833316877677218984989135491073779837299957276902529693338019896266105741853861066263832614138736980035869234033047668470035309435334233873153994940149671848966693336171661977796397625815482811475740237842484421307671841341276203349440048987526681730108298874113452412880101674539170728777228377578727386730724411583797026109251628716705604733307867632504998928555319835051098570351598336566192234652556610949009357645615600231217366542447253635522200120516455248911061290224161579021617724756311642897096383618072751253768046647269476299728407494248782990095438784156883629399004864481848647819286984552030946991835000783396879179101612219433129214765897322145713050369341308710511926993167955564890014964843930489952821210807445186328588115500900391799322653614007655953347707156032743088930023321263287383245175704535521268962310223405117331412215318481873945683040093164035587609053761320200056906725396352732253524092759426389171107147698050972432316520800489749411280568853637379211838455289060098359924644653862637730664363834186442034179992149286017848678972645660510077990122175514017642441013393768348374944377732451844000950561273595671279211524665233688878270983603442814035270959994833876581834506630257050397268036237288950375074251342614588635665441711027408990674957243892430590614050180798782802238117125414968360246787788173253658784326416491708039123439488888185119736167809411506951697843172273935330435270491567850559973943555353664624384650422600622036274856509912851208204581872000478011667470800469026571822476499611616349716306224033856118324409380231889286299717938049518954947951843704655437893987718191026397273841956571937269952296034614905967238248599763122830684818732945631711856020266260055325811256909423691744696415764272273408369808993808041093125790178899111067643193664549707986128843638496851672470219367785882967972938690236188305121378778982021342587302492084138803814049868876262262043587576118031887464320527681255324625442381199608048972577329290643600279440519779633331196805448391088986017225000607230520364408336072349596291152459413239215642580239615969878524767744135415002885115654997483749004045691797389159965095872216796689049591156115043224575647231164901139436483890467488330122691433820068968910527111285504359300428288373723441639374596642844697259143868660811764662987707147857568301649967698102311238854191001544898857370390528344753442527982786269926152121091350592883856425195313329670246558126240819237285341445577061134636347364012543381685327404701427428541632952104163295639470616604649790547459399351920113896367500144797341171870960638668631753034386391309185858132196968505801422711893561430236170090599005368719038990466459114277588090940214045377054904427157939588042913677631487901116198477570727340555359834731217768114911937999401044167482836281809591046336709310870639755953186200621127242409826329177282109830870012959780960682652216871554122177707171765908552002189149019041665986870574675667086986032213590655915335801151715179340731708362185976009871981350600207224362175496558587851298439969958885637592970550352093778871865068424221860147765807876617443488170179262647092695531362352565086673199135241977470473987434747590919405519411410563009227762774359644713358939104884549780793563622823069945033928614325185774459256885755478129915746890429015663728235182165455638159375628005482012222340160741249454709639203328795202025338131446736115772299882211679077368551005101445452568129072452278871290607532901961979519242887562712487713422438001017264510424867395641454352179282394516460099183056802661791334094428570408250604018600560259452663328656430929668159910057761515593095679256906090547118938742668298026370971365208936186100738906783942172767009773008682151378377497871945262164166236378183726823892805557306423596009525922530786786883982785437300672641684503672266920687214247804609721562322029550742359804096097615542175870244945430186524088609066060980442485222195218473902912026966875568602581546683795039593936072850833205132146434058778002201280812518498887500614541911663019771130029902661521012770013481702543120089391775095418494003038268909881955656446376966274892778599064009465488102737162808642773155691518056110123582587579403570496917615404501825655498969820511810422028718746444317962466667433706913531915520964778980028656547057218466822706275957429566712262753959003714274075289410915565060699841296414096490590838564010166710581312469332818674286074763001733152327279415509957977525396959514872278822940141421343633517978087428731619334683032773408822171462321305735143470819902050570247291091838221009366586253071877168163965142969138942905994045374751389387172262633339414377036585728894499252690294351692056969557010373522319609425211355778637328920752424453579995456851314360766146765434885233730643813321556901202973025321721726608306758542105781706156852475496692168531605394672825765042023473844135206934366252612978761492564863426637715637740927422825638592943128004191583777157779864614348270923320841465506120384689928968142068748599745337518546442300908209216102801078725489049139044210727591406412974107512374569269625913821965860206029769563984108796406066054163718453570226212437251266814660988020167337382536606782205187298785313646885381555465128712111931053740044329339410572018823716508758295562557450636940946087329517601074759146021003424462179278411741715019853383927776278127852735874533914654212148091131264344146961015392906740159373996720209270545787072975519274593298419446143430836239796207904632616392953872860052481678767906624706236284563351826321118400508379557740037500994279869200515828619956845195476984915096115898667509473880409552954513270872027907036170540831241989509041058213597641982615805409024564770607964588759938124530748478517020495613247275963097217825301662933325987314607028217685337292778707473583332312446155660537110006169970558333365479270745162210893382116984511148484876854045234648768459224400144552551579663009197982052428894673526282915839721977990839020007637554225982742699982974890478717244798430235635096386965172515459703970719634695819001576376663643410999755361151455622297317276136923101247160067373239983809945921734231971486434807618499836784246960858970309944772718916889642602104884823810255566164120448056602790299845730648285064667606829350190607668124105873953206383292205734486562083828330061227020305908214100131414543175915372563165626020393269827814701213441557722104069577684768276293840428361797233693874562591523094570518022849655060048855932306854403028434548727353639740430872785358033858066318149355030486750703876592637485273623402511467308129783437382468451015158111382965601202144736725529014084109934073887016388190087773331658863868389717430049787967876837744309405381270029372288085843667247235227123571071384223988219977931236702867608988760770185688389231442620927993375023077117091346863845007776161833583567619803487073908028043050457403226666069814740044580501235157527937334656757754202473997844876402719964378425265065759254216786828498231402999458035589370263741330048490295986063108494316228989882516022475720002449963938487557239289430204440505455941593344225883721081489446628941635046231436034241290299508864476776268096630377080400067310538121708039322599105883876245969529391887948654379227530152460490553255527913083632099456840854709272296235605463859132858777189155309691900269368468538940272786256195351758301547014935435941501212359210426677802055479328909737956383765148870429075646389447733267890781937939153091697591050701301183887879579479186894763697575846597659493934763206267382997239602982335340500792230338232249004741101588400911106304162773660518787159190152754550859802905890342653155813068547398276957589480674366457266229853204052767852709157900372721454674774329487535355193246557802762720546983624638800291368401251053525450664973035351902408617560836981887380000464629532225863766493503083382941458472090825900181697061040084971769839228875928144648804010872736827874106772419030395684152818156104176181407316134727801238899650974304744702848080670854484523783827587010891700216157529644476446160701654917964285683533337260143359693695430087758512090795273696204739989680026720971739114715734772888427815878676745630720910551747330762105342179924866233714268696896531623136157530368679711478923582741775247055516955335205662911461514041447720335007333223980026701379025710648528163043939659422815327937492164887934985182400294095980991411612366430542486914636472912736179544093560242531603222123870662762188309890363971084509125880426809356611152583635443432530651352824160226866578263665949059722685579655623846019712388586580995769444825059451246052833384717555638054857896891458972614218259835321310664739672377342351026771312971714649987589690353504945422634938825287904918270659122783038659451691079371546259576985452800486446985377956625725398847667352206072459584390091800513245744164892275924088143637408357701100416555978827057972117881720737117221012773921763721209940359913037346681661394355065322600591503628572453507979166723144246142104470175324254441093294590249149308166430990138244961338929832691455831785218753797166899431399513821644430892499617652258435334568711769754525396489297295956687220506393853866011607005228000165435322023489827466983472086037638417826990432661647348460361927314557473329162878767537761881843599358909213364721109580854155159437944669133285812969522323448173704720754293410088997234014807107950761593552277567258239812143840127156335454066654944240625843630783324202659512579802183436173295020091650605622714288971566228661598917125444623350437421500237493935118844809428815051733696657766277888191591232528332324190790255960045419614014620758290728149895247949270346706092641185820235759929152487760985490606553239942860361628208298708267423170194720046876042603496672276413979193917541534606755660975528288028731121604477445654159727426467743036927464386090667609759868228584339591724945913733015310481923566243314296869359100734017664056741023757050318288291114903455040209529585347961349050548510370490989919973693301645601393273413892293322683114195065614514967723878911260215659872504687201900952461852015738470095617184491651477506949006889891324104618989307744509837595155351935876442961524260082086386477145487057811394900626320319464203855379454404320546351927100032744883992911849737680457212784775170211929917035470184035095189440617435323922717497903089489359003723187668003086945463965715323307540441639052924205404781783416864105110203309648944104898303991776149106495330843830656990422989225799820618032848879108369447060853940196533762652484572026748981801078487947139267981619059370022628679237148006576742857679873452328914067524550810913190717856237465458800096767303970905989176794013807503244844820333670254792548370533689321577144352792048928124488799664885195599478751529696857247299079007240866638678655482266532184207210310373190633402092308459000690133927976752724900402732802566189353643390194975319829665369011659421382297579754012788804609686908018818038108546491584332305915899149055432887981676524539624275582147812707771676234876647606583903766303864288351697100278473119113734002842432750955985036656634993084743009490723252880802349481060890086852074351562181054617833340684219685547629841876433701542159285896562952629495937251764404964878287896778708044639042165174964625255544932020521749574075725108334197878715323208440613291926031103203628163589434491547624697533457512880857361148207732434920368243270826855591361949127922073627497913928465247907141242175238554170970153405740855353329612652345560240769639622103842514253130497392539460495201488818732870467154067420127789980291767037901785575009958894750615980214887346007802580702041456860373254636084305978645287957394941603972420850929493815183631546608148149307266648132529132467313508196613677614051634888122958313434197969606522869912695182635571790001030086951653778236032117710492962379337260027460437822339131490409944860730985404006701010574132065719223935524409200965707688155559389558821033869034972287458085302747289561641338609420184726702209970400748445271860015552507370228938491872453500764429148728570540483262824179894542037379189285507719235216252450244145285114359110152857326159950683046572310855585282114414228788770736546521613728955020115244419282357209579188962811536254297744099537348879688428146232762131895739182025856234928631013351691273920017705221751080685377628791033666210191271236174860675010713757779121950727638430887538569977401090683566886335333892209912961392522221471148521217171654693611101407996203227135451579241026260722233660939927732636028889948952016529969718549170664207204534636441140528049099228251686360615809397796278540343450020233036305650209134586546646783673928273041320942970420684998620698253908846600819371170403607988954983705060211145600972088791205944445678302804345253030143756177703094104855062834540813572098440399278572354889645152176863910350977052405193247746632785261847576507712095497157335790185954050066377154466688385094330112866729063838764317571835733480681325636775243491701556667003994125067416256707550560470510277549932337916519664123303547719804404265331062141911093952922316516049344273994571040724602769487192682063242973029807052632228490656897203536230484671894869137391167409996627795676188361153937384022354794897472534327830044097612314389436077077196807187400339662799269702741893505565387961425449212571638137734857724674030880455399871655430630706451253385895666342401651960301761646315089509595139324863113638278766975106157388370019823514006212629602230303291008869117110774890693972286055444334149869577425116016658893168763243821679245193453297011017962566319400902129095694114260209579507752551126295325894974831000486061610431846738858378640204282149916083008872149358783568908426751575610547701022825870864084416757806119713096999561843316124454713802831770992793281121751932986577120918699395954340803620439807220818302826368539150144774256202340445040380099233480454960755138015652231131525937671009654322020741648304755866082860856959324493925513707945263488702136963331014138492082738111520480470483099223157523168010457594447373990895882906870310616745384648962292459148118301320562301621095660177574230176447602742654835424218365306090009122638020660105073120727521935774336945436910884890539009146595802591266410949728725236256592280663017266194077842309740227042218288697317970291389549811572776300406569225517202811369404506624528152360554891162296804159134834432000548202457373263368165592910821452306618427941762456505205941728746338513354201985821902079141828403651328104299669751532544636624970626890346966092225624972066354184490899659164174106596528839100592721882708019887953614913927456854377516678888730619159956108875962392455312684776653578010938064011918618242628612316190214358792972955636515512852098370213891474922156333888663571335875820848142920066001868648875206161714821593996604327773357940444189514915839155634433354566115236301737158195129510562348023974925436755928251853191078977908058689370563242937783676169647544979255445062585189014091128900796936245427634246660891888881169550232979854185411077101007892095500369621102264090328386976381228629202473719438374896079821663380505543703142639634445147454167971338347132116776874351909757899928204196332946865130267191858441230878503958993439614088416017957634132915672458342147412223163389809292269447476253292010280065432506575794440848833948143360905407421569317926065184177857674446563741670201854458100890354662717749360113870808142981200421054802602091142231556225174188927220023906024424681868003522192905225368357699853612500178672368832812460100011653953922246690506731436623703869050642636655824205715823923084956884682864653491810145357551304193225133691958373735459640563885354913972449008204047097766175953205772728038634881219243797987409719219773353403914559021344999345188904460298388634208881010766115191276021640912929150221763074476710489947749399015669440529483121561562147076668044331669390738189660190302396028264306602741740347152170676759975436047754275548213605707685537818146330206035904684583492545989865486042595300746058091490900981680379066725523952338283484836002966781283956832827720326858135966125755412193792808339427085129796314325202261357100779363119044978428865167651291660177051654850230401159937402425710866799517133571564922408022116460666343950360530904140250205731040466737414843332200729905340693892361779988163227142222199080216575504542950684412583269411178703509177279618866560435676542002787221937044777028779999434115505725100438375013997251973445065694853500544075547262818476453419951686112036529754695294693682560709797045035138422427541382817695355407261511474750059840203509189481723088102837122397977508754856508550066665046018563973595851828217255980666976634042879123311924521601224504100775731875634803754722910104438594470436096057932721495186419541774411027078037028668023331041082054908621044144744644973329002738880857960956774511438553262741372732622609131317707098487559378923822497299668709890885496517498495891769877668972103288409802482415967027186694789085082625414529557830942435046642982193968650715377650895558649843176040690921510301427213904247340411157893280051084550794216728977544948371398700451718701925260641855968149034403655265954283624808929687513138677557482300804297472967433919983481652726823235939665885152305210657399308741426613738335214805358676264706998496552312348256241384028892678495804662059062639175671997960698560099919802050777036762923465317551567930947965630026568333077539150432335090116302154181828424046857773393774599332908895835700541504648875544957412542088129821519496299100911290512832525557469126733896905520606137460624192529773459072547483800942168573327709810737217886126941150467853149552438380286276123275969962532593168952261602701988334140731188994770279981176990080255268330478856897333855803068774842618658899743890747784210689683372614585599229428016412040355646868428972354966891378522385420654761467746998265454261779306980073081354554682591656544693651289427469612198596340426159291413011983148379981825179768979122376027306385479079877757487086477825763486353666022419141742792201732936710902307116179926253674192113706087141576087606181097388948261866090802680394374518805213684259913350326654981629010349712062023792414351682827724330351485905319309469664723239304589749392978327344048642755831532084902885861847472119383460811122167846376453464674921614645426616063069614042498978499825894735701905971154807428489437661446150962745402037119963219371588398111817759013149761685461719463623138070373694747852084533457625504457752983158588183235821708569263522337151079283130310447068108939876288816080926686201607235134368864535674365314945576581808453894809397114255229247564763075531112382841432473525208814227000767472648846939961337667790821746199452611963768296710245723019802942716597442232902499179180569175177814981054144285767765525771103161568250387062438323141242624638686183289420901865048128950491358324720314961285689508729354129955609530779315238964037171356532340620746722248795915032658328204842099248971061878738211152091493365226844049351458549526952012814263437751206467581430302654681169872098603697751893673948155170241299057292411603750194530472021576953864820392892239591399028640633500263615924439821650898141140936501775342167776725978876458246773170058551647220042632377659904421839508943374173067595435366259089101760936512201446202999315372715154635199445694798278927654603964177637624231054933508028267551852698974548674249265881550709652915076762891821738951977104980070494998411273790415787856568747379257563123308109581430114936927103024099186673071652330888227628928392711504590649914764287685648844274083437141577305494144393459274778274323663667118670033058747993560831316079729550791967194577512787625686927822578494699630884438359685599469328756549981404524440067204468429098466757261200782124666285611818183173222258970584976833683678820171083996267400738802563657279694936155334648094537412948854197724361586359066840762998537406646162267412215607821282281803260394392544929824767252505735385272141815753880416942767198037902684202732900024837476412104849376743267361449724128591020588509465276235783381415078095430317586843000307426030772619627847633470506233006539376829441855404164305572148025365200454397527694386966695283237347581390986778006312001725641565413731418794542184208073498563898377238354546404493972058867767669108135775058814563835652649179262766646161399748468319176358557298533760063842545864977093242413756286551301869312873373465496431300142672900199141853530853942138912032443468998076553836115740996791777777971350189919735991638026410041786963100223562343262551510783860232859813931650799185430900835340108827471583851989028403696997850288041151813959612774469657360339312968741662347905545549215973709175705845622236948754650446666908632150927191109672907852687130302903952750176304442368017215180199377932144070519644898882115882986443472109422350698969140433319300073264905963128363930662127691302875483594519100610725842807255093229923852829924960550891042385122879791338093784432445081651801945688963074058916883510010170554253705285425029510068714654595342397804754613338788498196879747743895216725134683623350454601724659345940910309308303296460447121031491201510795321265540326876826660129068419876268735607924381511175482471812616601761088066787086817228057948302881231314848546885056228716616413309587284696793398990404035176352890638817831893450635878177758506886154703646490278248027107189858647055391055931257600940478781591457517456928521925596057549849018615623343131815061923187550764061145534230430928972387646433506112956660357867646867998449226497531317392815319324331526721495120483732697457511540997379247555160824471670331367225077370587393818327663927893932203894067139238862843874097500354598123778339273074760822790358989029766834445965161749859134116528797191397797085081174271022485274109255253962589839916589075271296977742727808893884636374235033507215779318330171006502299604191587470356955685226088624169723070375003552021122903744404752364369159953839125058245953815152749722489609710693716947159850862976747056049039112928472727742171576372431140794798470807038837042173187891987307238236544107144805438071752945055186498881358351988238305685734779682304160807107347844885832186164756962358333464644094451980722180562025631182148811405121701637096408720559452040846979776949550792829746081989004230858251921489415602605036272909603425567928524773256291775867387128960031048331257457551082986879700185680084392169414154493469315017898462355599273175695295191085391033094405602315399135472166746204481613395634661301964979204490461652779691043646820676714679823856968061318193610493007136892050209435218335936967709274956329880052043358231804782078964851130122647456004157199531057894550446043099233771527378802076312983813326090994165441543749235785610618583212018754020170415933728715248502350994820382263777610555916582849305588516166896804470842402625885389807957434778782325964651644146182393150366444349356347775505652485786148838121515839447595179045361418123880777420284038737484147895825264976579534485286362534623970171058209120122876715681072223396403053514600924179039088618793492664102410163725068772989612954345767485226075360908705672955451860629910032581270976572339133519887833143888579758836332380390281319000270685994730360501825434166131388374927518379006486242639919170833486249019834282076781398053707914067059446383710580054897245432496235345789189872671511219119876208467707582113611455349639164004386740503738554249283766006118423274124257318184450385500900652141284515092327992173768338229779901063378113410749840877194041584696136589563362008741816718419014635211144002978697148586597931305600103049830481869310586248129116557426340348619974278279027299953665356326640257779787011406091572778770141467483992321161011331984566783760957845649576446341674661819900798991327111342908905059539043301391796470148508888325142693980355185944054514638212961789590132109522449023442500486213738138833842898076768309058447245293675764560916186507507956724373116107020969026819543770794940132908107323910411999073222373315675330457179625905362467037697814437090282294673991104991960501505720939688992750622533561938664059161895557687731942286185670492816112551548911595168747799532982231040844093566619133296474075617987205446554753848142595269161191115509631489868373229241688658525476298152098391415704679785237762555904722421752479220920766113565411867400881851364463722681367505312249421518048289995155736997334889649522478584611670609887486878644787638232669402828458409069134043838589952807253150854876391724855859050662750221862679263606564094644049482643566583794166502157009098148251535676877703799542830550427606966299571225086538374194353462006226951616275240087128441985321650279843934906127814294370655553168437728787060660687282768150851295370063922852614991053451732342339495225061192877988886545088982071508089362281487891818307798867732351925779778340738481869089422791088424017070452860955682614142111907426800247226151965828877138714730662161796631852646824640204214519752088695600474502634593917528702314770792306634908019415968464542643156398637750837561112784327265558170298601156649568812416780596589713924254037797644550403848581828419029364318674203106264260893066553104267079009867061814291766723907970523920042089974873971978604400596614399671116370018329239642820475660133413371573544827929680960693049043761633044313079425619210244670523771954296245469790875621399410903129870906822824524262680220653018482088743492521958904580311391305313196675207339616425571451879524858291226884824399826094304887276794742356981444762090129480127398894691960079314900097573688797068040053823166593540504821299866841583551445019921487573904637537639840903015873510714874575755315397403929172701306713556266770095926386700677010342563406373446529166624726040997086582225636187003738323107773248878080561261294900149649953154327158097146823251108292139305069573362468767522491815287190879107533721437436579423017195018006267037930508192534653520450350630582422151286834486032383745121787192701773865215230684563532404068473772243058650701118785679610583736110985648745963566190976542297575192773673625320923437020057434295323237308123269256170003748155713157859801644411687558595914908235389216322435152592853727200472150667992890721474955408381180093755508751005361274696752305403214757788904899439793981406586725676049149008697321570231929566120040360388692222807741678296988770413427978539474865800953984898338842898769344568499962084581020773312333910488865917861724261802630346881903712554604024003115158066831807697940101400312959733385586288930331655878831162175172257872104759975308686318262543479834990690858854840231386204092805440138907152356071344722111254694637782664953940732079437455197325978260218496180933812110004898666762827927609783735237496289913600725459375243313403650175899889256379108084693622182448183371836041414469499188467429243352354567366846083999855324158318117563421299617774023435424318475065629543633755814015732653371932120292219504497093717685778311910530187484697299519695287622764155499780490172347744386274191354554878631403941180008667267001777720627687187616755762960278183561371828151715034670250514734223503205189718482972153966407156575386864605380636810270462724693374379451949097345830270359288195084382193769200433667724429492916170472907215614267179302482998735811920423877815796130416152063385898808299086389405708385854952626815944668574907106343390085961268112664661832344726852015495996383785336183597095093820542024229484915054415544011132552870562442609102690116698928442449670236553214128592085470316466785791365439554043328150525443313646842177081488233955225062608032383719062195340213969812929199964704998738292741334117607479148122658867170707983380430516438678792442514160513326860610295998712566736577686451088606995502908899294555865544951930479327686870698236791370824294622801454247731505235391098770339501740307176779427644315403611834720777580247440655355317637464982042367944607808394297287464314493108413488072426716158415115753643376724943912283964835819652421731793988032738180543140427607912641323720075407672717187683945923614313084985004532473491450665424064851084214691322024057469733662099673937918635169362090155585450700400065811211025196997082905236792828020922557662780648483240048915225206896473882440071486472332452327856624531651478223135429248401288363578457443410562635704177853683025807182558933680543232294437258606126456908386573801249467241153024241846862365797286138822062822041197825440056364556064710459468468809331771968808443842978224569313908468547330599608113421870476688266763987062584872900549300170491770402434072827973944965732552121994027815544459539790598776722511209867297464513548145115406585146323789408180972723452181308252991998901210799898238624122168421949098625985865447160546499494795304757702328730916364434635989937141511988231236700308251454541669150265095851188474516180641901817271527416310435367296881988480169425274131766225822849510388398371909979291299078732394152587244440124711236350441009281908670640560474552661909681126584320157834425812933291127148148520920028640331977033152568159127092574074638076701545979028843320762964339330628866532698054399205727984182882083735128059026016281928946140919968621811317161654006049377610148408657814647866965520625004195241421744498937000666613377755165826814894500508523423276596864266793228576384215568930790756302537007824347355902361336995436803749835684923071775666297447531534518071850346137223700274473039279335300799307611036967708984636427940133111145639757591552080963860932659484366105496644993629663254256308251345578597295799192822094905700455594989243157099976640921630722628477125695172535982001865685835473238447799864536317597800370749656424888930653075072973096000494414149466528609416154777155490490004262337159317199907057796043817692187617981328668403636069440069599833159042806246109144618694459135893238791655619253074091455612925986292431127146697919476798488648897522584641500713708027980549827650968283041571166553056486765651430614394165103667301527117768820053112153185632456877668038202532029194498136628000221099264911680879602735490604210846547448363260087016138148997066097345454961873565462180832543694498985646866265302957887303272881650647331811298876301680937896220655124459263395762273051882230160506272116215314534935113358900524497014781475267249040464177761121832114042070230975748207342853894073774052281267558204763423914699164174347271344225477222120120774127678567020667499004376176891269819602649532935773406146899191643120900757987651825757168669528850951281775852681148990425677259666628289928290496788696285799592398198258456823162816873095609326350643600658650923986262155375621352093667122749904295273224449126475564056242090019247522676391512575650303603101498359533106767973141388871112030023462569180372268650405178912238113190976781875194093433474311381547240112142992000828280708950419964335773023046928996104512149829932305458350486423540222052785226750122805611359965036082326194912778059449334826164291319546489855898977765721495283345529755340533003621440955866767514086016243214328753590629125390524949630721117841347264913202060021626966907585908646260801994630417107356714929573967847458470555355151509135394042439981232963283281156994714703861431691264475566752460404540133971181065163718874806623191767957408026641708353083459865538682207910719472044057492663757861788683820981023827881384538356898563044570490539948566264515517599187483042930200560555039433411560769041092422823767980421486114507261132523021659210825266812918418185923968443308737603794623119657280941882838124856728033732546558559487588505567456924556035201730112831861965172322355949307503315469567455963003510795717357836004653961151494529342953399367156040092260233183732019042337576995202651902753120363601184395083107413308307776084700657780882464700712291013048071539276512546047639586406628221667622474584031356116258217091485292982463063813116147161565953850831296805732587548100477919956545508867884297300739670484637291482892183016180685241279388785933942783136693786470483141001018709807071416590455659697335226405839084329777464974986480765977919074157400842692414270015302776668666211392677095241320467382833685226814688274715035043073314691823941386025603083626000767986422580953149029447370748978455438118266775276880816927194539086083324035618108954472084507656924644155599539466837904212587074444850426106768912171035069113095523277939425670554926907045423007693251592492260902105580044541831687795846039560541602577709308003206940209512648132802606747851983436052549533021044416384440981213056864472556576251286452517296194846432183062282245347449685427054007453100612155218587737844821527562906341118144244876543890378858481738258743136241518553990514857716060658387478298510537300364096328994077066631491690141348235928090054725914213397738122663694076661965207973360840823344009576972400346161169098062512518053140174310204436290047468776632251138484978790775363765513640815522870513437869387531329600866879819384984215989161653080184860069022956040478302258843028961188068044130007153320345161672094700187540174408551622100005384834087294471430619921397345239246975376577428787171031800837595743995932867377314762469375662216211824066113906205015215321356787065400994875369625889388790488956694646998654355008427855478726323523831023097130800995105218150685768585422363057389461653009760160764528803985735657574344180950322172229686526610825236566013867877162000275858045921431280072627170858830852101195163142220512699281887898590091544695521610976219044872804950010725061376268269975756499240307587669081785804706662365685997503397863431943765157680447926794607796074771660050162350599865024031785324747175006724818020750419174836326489545513747174212790495782051211717326936167317803999966121561755309918927999623516635352859711353608805836565498866434135069564217051908786077931220849516146530624395593418272830445762332637601490566800195689885515134882038250686554698013304280605678940443304990211516152605072634155308524761633348189334545991423206540228619431222164452314568637179923861996743647971518340657803234971239454388028193282455977794467426703057329947205548888618968009759517590928320955380449397300020751368800466685358005851171643427517682027415837643938966753326425242779153341923278687910506091890120808066231790518022354433835770219084785564777654904898932980443928204037084874481634487143249046303410715768798980065101375181567042571692326117877285012078267994834493862054452218500297114892461142184309513794736136148477304224435828166430374058986100828139905999975356139082681937129857057363294933643700165493206574160819975074044497776933593310795352769918156311000780338051167342198002921639549506090979334651046003570001384807459696679005909093758291378626185656482206388573373869755237768126323014663080074679209149368323745848969592864733442045047984528426555858419044744467120216154725118485761069576731695121296691503435889813050757336122938160827648221670392671488619049724788280145076046678308256529088535173146782664946346612823645662290421490759940812999321378269764075530945036406261583684916740511611209631554098072261079893817073504757392364502494962166627315544252680724318741913718608587529715888361111526931765009133172521449423382036999634889277343506827639587101731051343485030712379018636207046232257184748978014149570062318271857560185433473272501774992775370206920774462018865073329084983078310584781883458339535875512736387782269543458059004986118085795151594650957000968901518560432388451160614647444339321508130085412857591823263355520566900534220699488444352007766421806569318702259159987867216753195140636001115476523625680857627263598001465582530630033863516688441915833266247788959295043652040765263805748825731346560776868245783289223283214711158800063747759834886319048600503048675184312738339196467383775805792700184433818136497923215089507545110734720816946628895876086959787759913011298816498554954653992315377081483036229407400116537462565369193286253458053449818320222529657531019867317695170960539017667362830067992274906167284348250296787410908115202322410838633827271497540593065133029239713704694192747406451312531511331217350974560631633911111944032761469985552406727674900993313448149986923428548423686061091165546770076760121414187470281555187862503179483147566886741813130049951720674534518939106638024486414927321603733155046793156121598654237482893446217313823896649540372817198176001510044201853705107464071415436521780926715926832073743406489348657504963120527754875563491487781390879540827951609004396038874217777907189521258268891926164193430343769018505625133680200363814713808682950009943703148884172961432137743509037844125375917995795683327413583935674811603719863847916467612432084431407149802567096561086376110532618727599827215040624982019594322023179838554381480411916087457070021942505164070357163428718857245280694442431998864906270390103741713784392396601290864061357803521378776636189872402711079843157205565260098883327877242946808181797755417624931597474994869124658941339915989064531283195625863305757907866865195207850914453030299142705678718377522059374877490140086209142152266212502285444058025094227389314826062577940210952552333227816054207041159838655211021436444766948519806184542495059393844429371075305511081261192628908933436487363814238635585150822294541516301321682597478644742598541288379561032932657633062665546929783048167255297684319456877260183772541151426924641222625181754059570837689940849268753920587210552373782284472937898825727123389126372175697142282366531539890822159406011119987859814714666433329814422683286888406041270568125229312326980688216939439698190611234191255889513432023908757855875309638726424888485525766870362252883424595442052419334643828227236592108340273762022747532770049778863077727656517352433618896794232705274636306537125770644240578799507758201313021731765363389924700579312524247181676530208761412951084442522519677849177837588002209099517929613597788587392473412727919109127879797898340155463835949478274580240797397426335750054425202870795153946262993885780220853528923655519280436887745681628402181385373498268792893434570478059271852950362096689798253107203228726990488196638529069512600349108324743868463434721616119500902058459059741732687272879845862854200003467254410472300034850271501215476148683146972761882918737376236423863986730205019176096911245231072244455017617154083815827946912425820210864408911849606981266238275732309734401808314395162987431934816294822574293247236396960856104500142054625643032200281240865106531850831161147801855718875785666298116974389740864966887826401840422303931738479200636274591305920008042854626077043490691651829587486775168565660027759534119300961648844549672871554981142201013290538731327490748307530289557663888582273343712386554075450722538375242243745688632275182341375473706204289230572416332518674399245601044593747405895895712127227873485297801025706828774963171787122800165902950289312718282406983341243317485418308001168162197896351614315280479545742505669800787733125544987775412065313959328494575306057341924705740660333873833791005334487942693175698529007827906347562292100826472481358351940970127141579162060082159024656539237847038792380509229903197590872779097422571486500723575738931687761971505903282018585407692732595068567191598789711008622401795924952359974059203104549275732821524968829690652429241063998222718164978167904276858606878657124133025866192498444040492655132329897682643971347042272575819741410125631583548644988552009200532700681094739475912775072415378748135335912311599525178297669467444626486853569819570438856125501071762144260977621545935455701040781584923822829375183172748411655268544161151737098387117802685852822967089639824847792945776250576837188821429818641642570165120973157249550116283703376584923635319559733443319551465604459318469033272077892572721030643708033691249566052049591123365071046680891721267355253797549555389894420884190110854962989513900754398766088574169063074152269911998417739951720143228941503704571420438029986464919708769147315205652331588237356627272779079372540240601215946520978181120373810235428486537757613307545788592507190975216532139541369912476044771991019772401710447501486194346819611481315144721379553880669200814170804361492628114839362622992817059315176534191783852449312176136044288152575317992784041678246911447547375685248952742233778196613876065004935422283298420284265268022532472255578743015036684554776331074680557403340097352896616555325269433955022986355300532334954140850263045499090748649917841160715480223250517402804112279825996004352757383943298702397129961470584858405202505706827969092200370860789563949578071981853730654685829941770107856093170422563957286576268897126358764591951782929884319485446518662437859842676399855006513914603989263348089306304546563259941111206444908882249138715365336577183994090282607764444012446449898909199671725669119166144853494914536852040416091905875930002041644015017847819864582566729576515502431953737888350881447573990041722669259031925907389316338815912855784291770234164890825335961342266900011991891947509931197373689791573903003440789633615622270790573848835192926585440987456544534175846662154603236423493386930424153775135475563486626156831848283969670527937145375118775877216122806394907704005287906273842856995344247198427520887916239235837279446731631621848472565105463158396236045984644350853776132523023296251669455902503841207408994448342517344556668964662320278124222551294015371201404777738311524155949620038467426203386439232629079293723465576806090688212096328826890676937808752452693868163405019873000894253600630438202254482752253777691383000737276611263381549060671487141548837907370087266369799994374876505300619687737153659809861883021883377920102955080124466218411271129278783167667748265736985823521211943188118311799997127145225898758130956456454341530990824488040737802274383289914454155396619863298237584808549650918265471637083723394864301033490010586687203698594753778194768241825338711026625080668992600812311150298988632053911325884046853413186331368946591756195965514623489536184334741044628020278218903710011389405270352074961768579946506355275020014669624419326233035855166795306862044777326762734522582156792141103922971456456544010171094661803956003348947919636496385294947350426182263633658477495650995010704171825244142527903576940433589275201290248458175020609190024941452219413684630464926479957909335424667729291327873062158952654111267070302350540567582361412933026762848411002255429318122167079778213173779195820818141377112243232076996137243398242330060109297900745434098695601308069898427479137561591046786764495319029368614688856862903610088159021680432996190767067578232072442626679666404040986878621729678360624201852946728864411452741795603923331635863605197330757811869845235354758706168116684588331245509156890068294278525725673796941881735635227003236886867654894092271404867532848164337877791832756283728074474031868924921271325651296937571156851717747095722681078326559531101650505812917654775240846647305219460653059982038302836301429433358311321336566647444781297798161018633147943030329088600858492158949973253432816691131168868877764771041292656093791777834238563135175384304122003593454482484880977781337653186485991703878903168665077139316645025002024378451327902385874119124577859139549083248831255805787957540950660450989303516548909696628758503729425696892536184013419924593287408847338745062323933076638362224259239825081756367019499091606667668447057713831785069441744157266299012110635027816922261472620586551948737233414692998970587268233171469370569905635210763563235685918646546868999798383368630425199107939253452223459036080827652769329456751918276683826164548206896507118335579328021136005829550439063398467455841963997462161651702072780582376470095256064861532861778770426362731716176960527234594820218666413723454671465055635878281601539317098884252726565927136398359039657506622466414734199148178623230787121977675305557845413215177413999631590355372130006190667279500107988200652055425577101778932885061243117160732003543432893481073801723167931028969849848650969441364192367802335670209578346529215954931983394636603652267389326898581391474108883438234105758579555238488536549412045006340451993636651659969213898691285238020126688354661629757825270919132147859625636625366678723439082516729809061902746535686211721107321505328982476677228481628767238944065054852433100894175573690259815757761051751241569267828520688371344527953039085183756750412606525684993038761809315611546739232308573361958405881575063347747189911464744030358486551756926584667751193435701672796118066067843701425357139106163220487855251445816183418744587740579679245495963310986265162305362219365599478683539603391310236326506326224834947866367655830314624883374056460900432465277927236670484266051662428940226147578579777404343719680461276370712429465219302383225277124892783393326357911494560198109247722167901307340909597719186979900342616678852331227312865693183996877960830070609349237855944235727958192520171453278341247869721371608465301057188182696788567128489357705447271611105455384635918104124412429904133744801546200507376322469736105920719690478042287960582982222209040031654837516115386463174647924130773593284520490729940810003498939296916204265852737010540742029358025378434356964479855973018865934737019843671889516015598605911700534468958112249844132963349403235747285421111511393577583703208339707821497469638423336869367877558508234098508110360267748144795711338993770064674110994624264745378020810139051042127093105816750616793525853523746400323112245433569771813665543554288404957259785893115121286710778337765571299669819087617284684794822644231109886623209108989810802444573476704496224246790800510254022224004086531612543828465963849385755396892015042897456669782847900987411872299031223560185364788952266684293181541331930961590643971650178695756351545905287652185033443093460791729041871110582078172419946057415900876168872920664600848087561886279058406061851153245700955311222703495874430172024402739028129464198913012190507523304644915507571789712397176635444397319473642333588281789412667074567960829095241873918595929258765955493759684175532686480418031468404391729112132003624622708977260186693178694206661131670680712373009168205900706577655362328603048652439552750421506430042373809263800672630590633902217216113271707352474191722083351904156690414530173744548926297979439666341176439744225526478270372109006366157758913082634408361323454168208762591029329260442173309154413638152952418116674914293707058195935891321946025161019469862730837596308990968429896477457126968603591791103719398804020447654454394495660522672976026471095579031746549268730412042514201438326623791468416287122426796162381339423695654436606160855865945966551433963824413443117345964279140947887192727438633185925486439128782687621427955226774955022876448952222289413783412182590289625735380294508618868426817820589017745406258650400486005219448879644616307610699904287437168732122827272444170925280940240101366204784731468274530673414986964340613194661521018480509994253119807768255583165971471689488837507761191660698130712965317124411808299469626377976175216893109264351873119225814004844781884695433850321386915274808431898131708465821262268046930252598086453091737285510311532312707600325855354038854619067494515530222663807550660921116478450298177970022602956607171662446157193688211279081377362819616864097682637539443918246028377638035126802173021692749260527557855840875753655038272380340690482866193293830476905469347866907482543298934680632101795746834775625073041657908986810119240358193807333680700338906213366484939149117798044929705179189281597058059029034468050333933301784736644864283390786237648443172498577237871745296231764417787947470148829700756148279051315697670474200945428698525275209691592666230970894780801469324760983747848617757987119165421481980451942660997100843494844465552232107325503204512173306530154747987490299696237790929464413489548599045905288049874506868329358653381457657984860629227901722642873391821924062877996196235439375374732890575505517895108315522564873942386452056222377529832903330249537475885383967149668285413398234895182448352854324484388726638228541811992037136359096380175400094517904666688281560417195307164302709830191815431136611177697174913518009432019570751249222408464978790041665997559343023001204465268005208928397010305603742913907015626470985065701004673767932320091334462482056319195047942134709045193659966829521195177606694753424390676003065237492048214355656354527559619093972960988538355741714400668050909562000751585352882749670572263861759581378585717060991470019422981004281869165795617051582549177547527860875631967107007254882515472344327576900742964540143933577667048419969209545590269315997801940635021682378842666868068446794584363846358945055775321062839749510178803685879573512116696448531840489757557025640392898765009591421005119074991107714579239495490238438340686405448723863971265945060976161773977850561640294198445547310040513594166248151724448233663796394915684479399542151521764519740121418713268139697070256490697320145937056540391012316921677049444394472768731967956225187234281194081246700482359671913997760473982123621358718670507164689582649426216345702978196072299094708896601408636366240016607028504920770841247434867609381947568062243441595423089941959009838619142704939774752587920256625641887564152245992849844429210450129766231752823875426379512211673789989468280078927449298947195213167652961728484883865076299314046175645763859494023897690895824391729682145160838903269059108197743803560524769713778683989069347279461796528109522965205440595897675741594643111637808450187642369424391583970443213137761513162240855212965020091694155240157426949054962880042367947289588748437763146521433517281845112980952177618660172388045288309333953348300461858693425817446791646336615093272474751202429415582213135060635158285116452908408785700151255131146140621967033109074767924944284514826092542240920355519196349098372496685921535632662026277933347803206573221750383022323591435778902045999875039988704518766634671832716205167239899681754299261708781265633679452739811085867145934234881662781920320233126257001839820809502762305580084571293253759784239250422666838580462593153238741226811209852755512597465343236480319931038214887450532314847054375985156486284802459015591252679177897184827529015232416132913773961111368779423117872348662983527101457127219087790699446174233863209574679614129838782682138398094504675380936413532041244411336395296193331163375664014051361556437626048399898182463056375196101263793963045492145134927662513808308793234234745144235628233770892173182780278220988828397919438620920555416388492328003985939093849380654360527050115573437368729830144082248338446911381539077124127337833386567918461501995332606672406445911989363950627149160817744321745449804004092009388785503515705541035215092960066188727629006216106739124952241459422966930733136366266772481834318692910028013466839911542866243490855474151717887540434167415744340867860578258735731767131745803634319222030740690792670607039256907863182365264519266944660102723429121728399945286386282639375410752250368917729766232796909984432971621247547900179102235489465389376137868521515802344329787292262069295684910971593884054632300543022742383071648397569615746402192658731200074423643594787462854696374516971141295364861733062164981280604371245528063400819063862488883303482551091064861035057396145057974617591884458374816942998003103986678147216078966667430172499502907666621277263221687024219597297614303877806044886892955435286488892910907373694692157198800617993798843013869863485622076709808649017519127304302344270236092834260223805291973635388343815553277554945602798857616385367495008503130207502647711760699803612802580674524977224806607357615467135402183459219148307240808829775930487422983297503792944020360781328881334074034630553576413433129604224090262651367473942967467686451737338597297251486706985950307718991119036783285330808898568526457221584352878839292746811732707533359038145994392022421465125882182519348808648164949168328045296621084231894785777244204855088488588129071901203533964538274317127389727018327296337484465261629317126487981101223041269598005738255047265495141180184959477526700305089470211577004371816831123507544000986615820188534988010570037244498699570783034409688221545016470600645172796627110961216503878755676162914570475659208113596302769523231510100266948567389228498401815357031369285683499224994028530923181887476474562453362728196140184391832573909174057957171152067955558667272735444123752423897928609403234898674527464639935619160947848664782035917515480607210580051822427378893861285844829392163688369766852619345194542359201369259207234643152679036553015968932435308071996955257852636993063696261224455261758215700852402170687611774891036013762831737848248836562961673159523844615719973372213913528053583272776642337578987836119586513513647640597649416329923202590407174661305547391350048624124739725365524283369717668992278389209607851833199650114021106752996945817556661102972104327874479541724914693900530850620802985123685951681913292993059331677646812074751474376730356106710428558840062076800543316947540484321879012616577622259185092334997827151084636828687864593559594228922644997461583925036805665734219933098333674263587897004288362441558227571402493065061604146841220371206287677971993862941288817575985593597348849350872728486288421707038293871282994142292007547639354483546913953240452832876234084825488415306461803883221411444156711026988194656609272856527910272102941247864870800248158929449539655201467631140616279644511518077653476413230582545461204211461657199150816206243637264331266032856987060402739819625047653871745309642805645775878998262693677298890708946009292272251243510024640519271145092695284037352142128058571888051868375975496524844172209930571358416287226026133988158205939351096435816835546092495912625394129959464139634883613813499956190838569108883636908504104038963156078790377810771991970566747848459834468332168171196639691143943756109348391853802908271684637690887336610670281315444548784044357645114683688350758450954792925960430607096694571347821388017543835862397829633793287377804555652487501699440382395452987093884418188609909250422897549866708802478996584290695149182308965101276631422192289312297563242830457058125475121771200097215348720544039217082184775214798522234843606016458114431712513314764543953859771527054962957553613952907265252735597092598032641121807820960913239315314671200099763851796093054313088484378935291985253963874238392930036473619429137436741269261401114468713577790611238874012905735446486244502610440851582896761382009746614801661541607169914409057561134949069426199806045073171586800057309761437332412117652004201789092614775117701783141302050480223750227464369731190912694330253057900637417997451893715386662646053376128131361820720800515925171046160948491352818661465108678491900906050278149769871629817777302704882498808238214247139105011478324849147717194515938905752756925971245789078314638156520047429277092803211802328259311852554114377113499181061536577836830057781792134367507032610919011121325785481171488360472831760939635136931052380807823407196969094823783210773972077251291458427240318169038880545874901312735785708105306726077459422918207920086963374378122904152613000262416052102412043816006972917658315439249515889883234126095296152183564806056077815360220897836643975827949240400234719552733264661270829332345786292743819144776797129666868283421241736263868924755762670079668684660079172609215509334813050597193163246772493911706423521798238879937648591001164388871763058441174490982056774311614003178695735558624223290969819063346906013966091706001506317343981247073789090186876220268887795958276723388511546180939026521061191402115694195245082469203891656626121184967132158835166330622152282680212571969923859460001311446348785742955353379486657359556870953110504083806638244185440402937667743400184614741183408654914103249521360607290930578231673623255761692346793878133480177128911356808910905150077335856994316495961192952466537679166840964294815569878365301668391407211458378034857839041343726657861087522238755906020947889432239541541720150824871960789863451636412925237848816970530540513721346138253901472838103220556854973801030051170022275667337193353830160764764146449252916768735080896590882562269383704404714850363792692738716269147197370541844690228207854723400692035851519649501648083661464931392563180787504048535153614810721010339706927609977468974300443569530151753500797770767106142124103717241317021692185249337185922657853870934237601396460225874884690138744749978184036091696863964404170728752113084891741774623597461347242937719715881909274589411037709232094775402710027698736745553614170778233446866755853222756745544183478281887375475105689863069768630286512068477013189448383545682950612863099112382634664886796880519861908711488933099674384321963264617007452312339769819389046340367376335308735422643742485071605452127702645169440181321377276703731066534775032037665690874923644975120171326411221996479897498077256201842338960653390984417618686880318202404336093593267113065715502722765447715460572651540709954224709092246584324014519273691396712950682974729887507138273449238704852349764521322543787005964509491824181925377945356168735873211313091327633457272082189426443876386339055294225178644800477694626480556510597608429578371503471705543774085888722867892762708271619754455004830501372624412676450478858896866153639379485644609175612461806831805057159941993400483242026239765973611971051600536797243343602640568379327848502023905183047708650439826762231250763804988683227089940427483741211153383223475298180632083335420763132766315682958661232242514076199641406502924995673385363975816765130684766190576297379664658011021843162928618171194077948756150127368743281837743958442904906901742778076753698281918109297480984506435184565930678640199053972763984412110237588470634702743142074398772875166896313721713776915706643649297271763046410493888064855630241907076862038514589833136380528383108219534471707910888026840028262076647591207185921528267088416457953673731917635943369053881857254093413557960182475779626265506926394376129571536252177131779875306834230015198817054551433281852163538480364262740407015621936902778314779695733947685592151498542076289040516521836359082807078563845711642587615375453156922938103826309143025301479542169080099475962020788952455629934500505173527833229204850154084775265259377532495442779991396365738403943305941140064541725265352113605042837961672030566826660159175868071075438894179959031789772921721721156368716740617532343642387505064621512260749850343735368755733368946482203430599207292235502484027188474614923652561140913175699650241408973541429155906496936348272950864578776745715277401364285098095596785757698497253717633843115615861528468680221757022719650665077908011111718104808705113219836241651134437822316517010727392549006433539486118063790436727210865068802537928091898413900052465888858589980239968030101450364469366507989364731096970894557582516165679322365643222565433140536029676673928814718075079508048869289871516746773967083731823042669950832729840047315948732597284618303133328891440508598857937590577717414834509107514591289364760733758572495753498931047343167598796608153213519150250466766686860773986994265076399329424535842086317790993947543480766166789593036946045110512673994218250656884973818901672896755999755016945980574348341861130443440321448815055177857372749757455389852052767934263112943741008572591275760922690907746267087325125405611027700980651673275159833538680027807139141441948187572801928732139216837444187639988096235668457689893935348089102471223576447794288966658667708240370455367318891199435491730271333215757399591856607062731487779777740973774632852609217673424423600427015797689926629539357251943197235347271329897745710181034411587459712751899435078188150348972756192455825397713978618200364129532624829277213881843091824236250176708396245159369856212661197276043908034252245563629203873892658842027718403698978126955823086966587000587763372223277654462034781134967020514200470387053977912207337417537589635394695121212954742838637113597238904564725551846422051011695405706188048632647814784058920338315793515587882492547951595924494405003957370838959374294010116799631779940290435255761177574367804355725176877246045234544556832638980060242564625786325822099255982812978389919766571783086235847559218404731116235642641846133496686238777684863605583377943721591117494884671290765661351938741043975031978529518630144733956765564708595221138880545269439294236737038594472810736505939291691527142254833059832878983983932850349586653501780328544355533878611002334941788529575934238853824417666786129900184157721531660789208326730888330170918364070728352774095846126208277687605262666570287121692341676738487849594661945183806248676101162702159756439991796101865133153058871790191374711344451749376335897678788394257633504200856673692155721140200245742177303306376527250020150400446489343484852404696867894331372205708759644753802527983497608452533444029150001823489031537784456715172170218534195021923162749854496320712727373311327896716031782027412697538193005231112348367911749399724713570184081997721528727611778900584084992738974866916017728744279172385462134713003263310600562768060372582704447026599845621976320127826691337878593842235631053978078771845188428213518191833664861490102362394650406027915096961233226167470171557321667509997690562011196909822380391590573632751070456872447442596266747473172300608841485916837530888619774892099832263127307123142312877351982566003955945223138916406501237037522659392240081826911001275415108919275405889803011221698546951421664283713016277892377218794240493088674804005464364778054849908827900786042510981463806430421326321735379152592957454424693148795772453940363309928432459834104013368620993026203878797348148354083049763619529116312033056802450499562347465583767108239150915758257728243016892903697705747453315940754125207236951784747654013523421782065819327912539910055951850874163845287881827874423840281370127601159108464864468578645067395632729567437408855748838860013715879042892823719252091999655970174786368186472753568504218577321743904385828751772572905175632097912199660973586991885921077529078210016993090882799754720958668476831347393202263640627469425279015228237635195100322814268151985373851054406320239670273102723691154805774700140509821228111813700339701465362315734863465170420744556096711221064096732133752717714894604608570721614700028575371708748392128088138131897189476403933328631959758115333334502723386948126269614559798146563094334655901227208564200675744080053860201222981677135920592820350169894991422785920933008901070748084726901342317795562208486662461118033201060034139850714735170427195648379294984415852082067760726138228439621274951620213965132183058320742582967410695507967033381384121615050127071359759119021654917857041699315071336517103249177254937636162755485048869198714638084350280138635986983272789195998667686181978357163888470213059940075500406725220571292033637637619228446905263382869619730490156114612624722638392959505920874007413647125014014092911905223071431230413393877847836809428221638118914561204402404201449472923897510393683276167577023486829374714122099520302173237328911525379885091671370171043235018383374005548933257871614806163553619240538023072963596050518183694799952578526751083442791704975264980299715096120500237726573719328656171068537574572664605922131349298929475677312689409199441870484870812851635796577557874976983174107613530524021320286520429920900637250053027682952552671686001690974596370809950892469328575653703572189517857644789452479603072093770298984760238006567195330825879863160401326626911383461628733218833297984361158944718593434555295213146564668827490683560562129688464783947130234600949738485801298800727308591861950461955165907000051982809742156477660739548592441345729177609579416827048301745486551369722686310692603013041567793190274716365844854333456483352504811677566119878207358624395803735577169297650928686074344039761606615710303743620018458247527413976450646184616049652970463457322716783281413605987429120360889690149685273839347584604919380900031148395248441432838570603568487596559891049064656843455999522661418412393722613378319818710676567376303886391960670817413608802937562002367548235542005663825808455969297644092926833832589474342087834305265948862876316810755367112072037029948896817281805640639078730466964895426286712752932372516379799115961817381516868815033587966465172155148006890842754318442691436520762944384199213600090677575013375720956549037544950074848534726400847918093251498695535117067060552367531948704867133084748909806645474402055051567911474372972513489946198490336752886713600815123902196036819928563034092613103558593759371689107998283656141317671114097875779743948883032929698520880016689258509441716551367591363417921541468472785833361700811524571112323581430537846522288041989264991593055345754353739741433467527855462074331889476631612449507801330067186969055186171445010905149453059917547438262470728823852009927847163418273126940946024543396811445202946488357747556533595118516106562191447329832074485596338269293609813364520005822617559662349318293628342865805832108211115188937974597779047981434591709664071949954609711523796609272346988177939283405088236438493188891559365254410538456554299901799383285077626904923595444077261314414963227065187428751546529824541201641218668758081373123539789732499906217563513855557459406743557140732793941825112302572238554014610042287564390922638264053102596559690261690368410868028105972626475908449594642811526138708988473982422684425613782888751126418856227191137774015463614073119701004395958689915274529663543268827042998960039159153529150125023881759966133021765468069436470714817180923522094810082365685210163985742763395229171640517927408881505500335693763534523963033515882797336819290601788710890653974633059964191646017933745467541988388449026051438588013486069787236669943765527543212652973758745982255616633793774122205881419828383579824356629203029138443743210737410560948420875834673834729656939654813113735452858868087437672523157292468582698207045059344494599679879771414516849894440479126898498566809686979476173638451694868141567127093593724146366397524900564191118031445158134212992427617789735832670804842996367467018354917331748400838157669941259914193457620993559800358243496943427629568526890693934328457152802059556650968185770012875491693198596353879808139095593954626683059026411610538417220349828395421639291584310776398319599374963268252228815078473153277999470899224722871170727239814200527577301619571211485761640097879548602011836191862030808700965524928979233731881114440371279696544611494628348013585374520159675505800331091580652909654783467542150067654088621337481190594308376946755352131276147995181478122137843010134184366694133303687346142949262311043305073832629363372886687820270933095542134337597899366172799719104179313088158012125307019078143577005317567542267391154133446787268847602954912666761011294610876306592346188562821808784529505634140663310807353282826437990225894553517172545111301204348922445424501212028994565406723276487776929357711260218653567146673481954944456590788424702596591727300913304195599487410637711383156345495531532922651009347959305980585311783426736119161883013899328071742534137131086863578371507094126863199783262361404800911755629312599660446186514237141628287049150072603787070606915195324943500843406069579137688215554018411024340556123195008226816453317998086352375155567355037943084214586048430236719229026077566213639484627340132333556218254834489890693812669099475188230145985183539524462015318878978841602262691685613360753823916130142442820915599662842981341052037484221618348838437609108217559634139405242691697305484118140402639282937415011438020500743736040469512826624555289749629271409626429312421979781241317220034811275633589361484165176747689640857046048033915301735867347669041751404926422856364446928710885425159568592339261900505841998403467853340721644403331668224264143999128567206408628598360824383377340622989412054425314856685866527087464818484273817053394737673131889762010580678333555258231997296421237803363581477696755362453819740049487030358060712966578986490402515236837247995209055382622474329617634166115357191080246061489927431897820136850385927437162302221687710742583600300713969589398314995242488590747305664762533029082217029297283551500796897493652728801824843683477320887433166067849915696854171532222423273232521384208797203425189139170963335781701035322228451567238455995163424677089114194793799590511680481077293025608792669788266024796676556076222916157134321928088612558169472250694855193692906209432856145797032697050235995718660199804069249480505678711967202707602281501363536010362934377615468186288814854133995374485359180200578750265760999419324655630435211350171572723119185013807782415113191143928283626630035120343334738516604542917039423355491690181248015352799910266050996374127013223329842238500861894290225541092920479519004553873255653094893789785021014340706521517551557245039267372097229402475968909112333725257055816652985766287465803855486384504647046895744294425099221264398388416111714618427789345760569982531355505143876268726740252903159709526236533886967464112507692912634083133384305812130324679196149846760748758673327719391967882402590461877890637673711678810142059453500981687648817588283970496103059851981215931615696783925515982981730934935749829490210465750693904391065694498329142100718337545715124432134213627447564796144058901146665529363367309485140394514928723401790637369355837702703381277695196331991596107659337717081057894229524297687545002542295338990699056697009997133146072324780906947120941793373302669867962327070187047384653435240843413698286909531472088924269676629151475697481693128106276047093987371537189943734785866438414274364906644107067272289602262612002024503093672640523784879781310495382267915947492775575637778638930274935296967423230700116869051431084930510438278806172482961231480205156619841398535610924046549637458166503941236969622094172558187672143003260264049567563937476904684936088489112217165099741960499823551783508425019415258613779076132947810080331260417798617655779537868685109623748872199783109231022653054386202717514027954394367745939942368704949492577640341569587333266422448036700770059574130117081872910358989375549791943779836387471631502531495947896938731854076965599948996228289420554392519936390802204223428588744097343241705199091019618883918173786708638296581995805460174891978144401312865338869688377447462897064580442993970361142143890044864990663711383808840876992811982410447593316080010888419539755519403001331457533950520560982529701263423604921545989293208446632861966841191228152948859826267641174131381608622309764674729909794126699171374259801752593526603505609377393254008947080451544729335889734296294170576676190977733602043031646714361680815162410986153884382010537540092434083420542657038332297399562755370217701978479227972571089881175445747406443576276890367442816634738920432141046602221915715724657476205100648018395176391011042214509259797265311029325148944988553433597290913290878865312624047008310601143038220328297060435497213728406170620973513218553953246738413741282815239632711467651547666011276919363738168867796724222492574519148277289540513457249339787665292350263431118166494859087988275118499612973024371777189548793417796371330003626209950232563010046014674187932986440932694760249801571860616254972505667887203617259274752981087572417426825368643747768432230238534411227809743830273856250300038695348089026493886613018274664228383320489890942955700446654339143606862974184933849841555904929192941858659816118532652125249069886675762112458956748421079865625686651163969336706098060490562333826119565642341269335447526151315473108271910492043094638881905262997602236869579481704022995990286034242249034410673016731774763259497877687035650257953220429277896489193474700503270417398070255038848911920740426987812933390304142860334386832231273841091426527830838317567682787484187777724661335317899179677078476149745680854574549929277802367137665917966965053692150701767070602846324449088348230853321362160196158792063446333968585269623668551698948706335666274856415080378544818024925663685007685280081467531665736411625442428912167929013445909473482981036352275048538887602039533210286847040162951129009619069819810341115292138327377583079877533495212435211233991642411591074588482294429432599893706958391011520997981160914632555243088117357720243307291535128187279101649061316779986025926735627807344991686061536954074442036666559502446740377925060839984393324967911002858867955050121265238987216258467217135826466681150720468167463168514168633117467230234435676277162443076811384488204596722526094723191493293909830339428125496638165763477223016695814457945457763718364518816231445287326046843916529892953268226612742971215026883108040130869694878358437399400812469495211325317387390408910167056144932261995296269415986245982481242746640230371827446870673641010148725387480033655323374159172460368913071178384875447882586560901258414352330566544522162777805107001122442648197123405831515677767926485967418991409266513837518802567907039738624434514675711580225451791481153880785553150047460736808740564582582176301256420732568692866473698843583796810771102091810412718861626199822750828272455095255751603644593490254499490525783551105214688473974329343724764105854329093743713916914975680254374508424179600542775157579734413959282505040216542628222550587521481366070078811268461433129193506875066646643346068002942843320942273769728158898564062277757307830001285978619951770572395162991839894277275385396901551471894517466829183113303401639609137269217104392841415201129760036517371905659261312679281069420447100328902194705923598988657288897248792536857800576019821893442439934048199055380471764868611652720477132952304899714393645673337905813728630802248013270341609135408507919478987509635214763016803857705736509305909984636390244919843791598476708215788838536682788699220698428981622086962227789144140002338421924608186876551215126634576608532090869225400061830551734147119516356206862947889008499278848907776385115610420614456707460823691064173245798263161237432089787822535844823934323693686494856533854647649085113038535537304837617368357142595212436355419488646624086764229481230560715123733667334010332729040527621468296794016231689224465996872709132870303846490152872282953657628058383116240247086529069076326170840637948031203710539296687233739765083139546361384201585598601306295369343546487041432340689337465717247659167357602142584825849219735637546071748894828755812948462864497207595581935613149778699905915129982997870087113169762875659792298946006253968754943176613934585351597868116717435952392997316722597214310255062241337009871650795789664177984109411328129843454304357227227651909269821398821643385099289053973170836621643359850944722391976372454347686050255849072816180094310287589494982957407642217869593727367616875575995539402192653290123091319133378032122592703967689330825413003311776867719694294309202159020352843449652341901777581104462782804905446277127707356887306164577376739631953257441298012753261742263223931285265633430171176520094783333312140210218430613528212543075705479969857300203952726051553788221113989251982618846970112480294257744111263222337218868199138442304611642478165214329977811621309509692098019347066493948664727574840244797083628279647604156661101228573903692329322454615507844319143364452057341114022298340506849569992844511659998807298944804710339946152749670659736614965780408004448658818071704997950598961291421123953728787790267284323153476250288138203283468794985830365207777195657122659816113515868394283182228331380359307635931493975849216407814088906058136049766487548829104938842634520675693632393652766885015897576109950434384904565062763719845607069375622082507508852825874673714642488887081979662385662039773469979567284757901660065495283371941961965855933641345804681903528189575886806786598274305589706944910250950352450984662199515023713194774048908580972046617994509767773047250905272916642888995334012079199017229718415979742632553949104990590121504503408169650842290446259054312930873868559775519900644371900874683608351870777201564898554202478137980727423903851148812249488032451469212067319266879762894906732434088040791524994562240285242436527469877023802565210446627432999519000251975515609453838802837149785479215544832326820497032352617893583912501387556244175571126885911282751688690490933615188805030764128110254855095631962765528218473958332223629423830128266848613377289526018831484005877218059840190786014114174436388360079546878475547955431572812560742344561088468593606277135963550877297671358353562400519196269195526857784404014774561712087423070512786495463444216599728064477284438691110258185301241237840529415541718994511543516403991805012911175314655011708373397839140282242590642227790797089866329132490924224729647815087640672062259714029226366875635821798794840885629766298588825681222246275948372181832019734280140425243156113703601040837662201366029731458510734323255444675104878459457112805042625570390446172978455033238013784952637868851463699759979718523880213541321036471593709215982333865926452046517540897947295711329272660976546394370298835903365246968882267005947870038881591902436100872251115632232103464671132115484476407626494316253136724802592521124279843406122596681371007877281728899155372960156670874457055202825231114539269445972226375452541999918941717320252693043539664493923121460091948186253386515394629312306897180354132940609062705652651990947035917737412668758489315527151356225671450015926912399176584711302688744482939291840424931727547719783830056471085272701424863099945814453497161687094298345787298928437622933441841496042568242016446993840932802375627997993893811454477244498076060160443322648778072495215155469713888690054076222376859445276362694605808752454074090444330359366442435176261625334202256809384692391440091840045735007030560963352400098271860374172213387092653667913236498086132822340160292891338205413078706988238147845290678604112535122305889479780218858451253100466340333488934700866903895784458773907457009088262888174743434196986657696512934176552015157671037119238822945756605112019379299735458140904680503759550585508054922283940623484387334479225436263284755872719513922362268771701691832405907656168934353206658012619776574126042079430171458086820454327495125590733811209713716309136702976120267516831889056715721527207038450153009519146373428278424326107229671257648576605360112695177969101705664179793327024083915627021806761584068007363744133723248186290798787728624536559594570150474720595296811868742398283894565350322913765902852773950173877250408394725788934426177811589453061279048913339907890285697963024915692755612624434422923085863464925796062260341011012605203731821010014874286502622690530771602936346950579872345856509481086155508518923323197354098053388087719781845762839142269486433552880478845166724432616650315777826030182727949181237283560167005846828391820700213260688874399651680670241607770188512597108884289274936636035772185600900342428512558748159202608062499460759171662390097258367513292162252251762892250774775149928316775584787550262810173154464666329675757617480838229716212263025473992632834884308656219829919367825377399476750498791144107240076318752804233846634368574144439565072277520079121798486777763803451493652850591193885308650825863670214216868578774939456210765951937015645980888838194929089377619927442532889536053258668442846361331439392208390485376274960663706495675612174724710408941612991966437435472505080026066235319413990204215956447664563928150990850880651326090160107685112399084981534995371475208888484412372250790327240488851399625468933445764773214196414466366959479548292630065488571565610234114185877218711116787449119370890289783663979995735890748070774290896824132057531712961734388991209885750772158347289637320033476446689058781053252113927188560640660156321350824401614224444145228302362728403404366418125079340268366988171936023737976510446935086796595579842579180006679670430641312098318433547276191086094069667082244934409622299437317269352116728295083175025707254903299611620812235169812429937236963497389386849195399313062202231207428348479183490696818892797516162516482470674791240132400035794798342531212016790845505846982239919596901688079021493672658755492402590280866625536271378238293624018912822943594742121353738052360529243419804009325094858942495163452325409898519877204196113446844635257401267700030704839874209726756963942374750238088598906707037248977337874440424975701762283569014727205068974891263627732744282336425104250754448342862349695144070253479157525723902858407666189356695742447787716183414321782986346917022885600730260161836188596832438166223638393151254331622891324616959101375848192243734436673162201893421908834050115371589262383388979950397058465286134183910168645215670412838915492692501339422606201374270411098843548427298617700578500186754320479786723359970802919958919626549439884733616860736151495359987083357461180900370436719052560940815773049884424893720831327788414427235328788865368588628796533581781819048478898626367080437718197340874763122031277857008314823638844359173945613488956071937812318078796232725303109406990475463838869181218321297014717761141783680486175769998800747772925579592255930288297386089114847216447627732199032710293457361278805348580273239614256087323320200298213611227428741885972563369899772732167883484848711175512793237584655381202209587211365689750157444894955421785443817402426021511708163666607992919348747589381075134558013171785465616198576140175100128594456240637931284529176314394435656827020099715886787829924327377983404465910660290678392880663450519606812530352502907712544657653701563515451968067948109637833560691665029991530337836633902999559789887441299721430720895271241655638706918260111618034640144588796525486414301852484948418368704298004151788670923645492610600434125394877418310863469948489409082514493734122785677505167976164846047761168135265466388279094311932461765972654736792517850842184017912784336057797852237885876968669803308978876542299927895750454438232624285979058464580027345879331001333023503131835096739061626987533345073552591672724921355330879603577388287799603317474625985198349481395790094563209376798015349457862841942997594742858461177724738748963239211525937558529724546668507144535257521884023854736332300329584231477717984231902425696871243758439968641109906285542797964911527137458932986706820623290812202325082066738058605072742612743966992671354309263442853668997268781481767843838774728178498688334968055172666374112967058395292060228845862238911359793142688658770661098379998707780753075192163143031521309673571762726274925343338747080333632575295095290281699196047247567458591689472324946332036574693079163690381044247263360115470216825174905190928876995500394086846603260856601141658970549352579615372695181127635828614571081803708466299396083402819061273608427894711936989067470953924166447525076567634188508409113731793957046845866812555346595420102804071407003981671537942087640796586331668211275386076478852355957350362665923925547734773814432808108016224243245370303073352958104868812361272590176935241237143886363909826394717814067327311462522375326527999176500006565953704706172735026588259293805352964290882455748461144607551374783660132929725130735104252885903696893037608729535377995513833973582722399091816211048570563123312136532917698265144248991846048925494955547011131735072745910786557954010969890527925218384003186353147947608162713225217434701837368737207177756259151623161813530668199769723924579850612368273662722974573890590112168956772261045423468781885057511367828528970436272253956972920838876186838904610579606801128881176998265193518305430710169454120536620129317081352059581624652699842328926676594634911015220663438625118170885507303138569268385383276129883149453667022769797888666303109526062830210483719372481522291512543958519631894824856379640818988196976861637920049842022173507980046643877511949378015892888538703910182999035971792547546480069690340184666706581802237711610443531768495539938298829743615019759635030443671799968568694605592487161266023766696889851046080296116696304370106179294407300457225563111735376724602637338781112096197816952135887794596601064940565926139659299122112672166239576085085059629496240820773437482468751138110833057946893730109030522517588142883792675345253375399026733922963851239799729489506395066449005037762233280868283343057616646474376637820512356359070629481683473195029519927276378412225863444341737733159356621509199150484095473753226109815561992332136949507082844550491868231539282447354033226527249977656970568170917080653502251934185937619349627478095551696829467560811591226888912771766327157788115724394169831989738160529112801812872975485300757350213101289535639338365814308009325532186416371295156555063934590677112308400379911635178278336153534131102061150198551474656756961641138827265756641433450425268494792925102592550298565782765618713089684955653028112184629674361166641752129302921821481230265965833472838573448574803677483789483916881669610588020052999354797467878859491405339797430687094771052294281266271933894104470730875279434052591969849724605405189902992135700535908496782619336096720033286839526398260371138629123549573313149011032118239787131537788276340989643925367058941562600480578716887313036194497592599245729990055223140999161271660820250196249167254414490202556311813196302093163335909526919990582449177277906312772057040208716275276318820964190556875424545600404140346729481858008261207282674461773259037850972517672339885674053770434265164883372389232162818552496956017372750749172557508133382116011284615179022194552525356373252560979596689349779577222794569777104109060899220737221919677289792856939080113345164356190489636998263512592986313641638409688483833978982191028341528225611558354008252084147003452425425949312046883590180360930377095890217707876801719118929994179802793839149113376071654835797728203981945412558692517558959472256964657091255259648559000538588640365684295718310691348360018373717350275526482622743765582954238407172799368068520303141300115485250121326927855024712983735215358143689434001958607274172787043449764573530162464061477855826545293389442814062864802804284589309110314802918990017095352289561468874282428918155934825314398656215379616405187552323575660693421085212724484788620362111759616541938207479269003549678655187546571247915287639681199625334625510725745737205815556010420133986035862857854843651064456374971303374680751475762911463827263849651694952875483627215715143252079895987224987933535080844451639753044084735136253672993093897819235706358525817936504787426001451553517959340705157839548909549792311911328837399803601483196238173853208276267625332773870040702584359954651230211589179068786867668793121587427352800739540526353478362652528442155834389486346969967980187937478016583952635097078833100644810348920509819752234790155735939415326682999213795755909617517843740357678602025966745350904431808527563309287702259531356621676926220118445038878814351384053499296422131895173167505936017843566032248089261996167501962530951468585618301122014605135780986591747970919029597106816793834838576676235110514006511889750117290542789467492734108656190041208603632874203126848877018979582394886071752969780026871765745496214433479823593646007770992247473549605795071671199000340751736903296460050078347881695654448552489834487786194458178666514979660221116872786097189433608914742556265397390836105848527133024561960004886626791271243611139387707244519942067345584583140639792921184021659635231090049738680539683076596910431723587934239871063094511315514946933424123256261767279078298350987936145322971725572948122608425973572799767909767648923492154787083429228938467241769431441023207737687475425277438558100661178240010714380735738044995063990994279259806921594749788909621925569537918354347265036881077600440325376765534917288868552817593489257515574712215869323265568505802372485182407743713585766053444907995805436348492397429142513458238084513336367059959436600266355736615298771449222812975335829895011851055284637984775450824790746757719479880363179458163606978845660920461910607988956425996758182879880854044269246222229820751405434532453511807674951585674902972387117941056626972213528406994580751298953160754930318253145978682212124249717059634970423335401286622600474564313666470485506556668846280998052105683360390819791946938688475859560112632436937679949598369904852586698622812540857072014854836825989062262319543306190661308238425443721709033433789381335963006270337350177719406464164112669098098351543010814971783131488867417902708171145574803253356193902494268983055116699855999312251745215127997340955453348470444237927267955822934883434301062135378876205195512241859031236891202200548434193882938298062337563738099984411621214263295360135452400918204348446056828347259616631759479490174707344302602227416783353620044887585680109488549213230901442282622256031697280993342250760379507703129799773225180359320054232170616219492228172422990361615948909961934069794281451245700360957503377349502884707845373794592573755286334013691396980918006642030677317073099784090125888794368871182693300891200672883356527019271379557109668392689943811194252193732219823215097987630350557384046083381487483084356565000252742245550931647955975155328550532362705131935383120466762933277543504912914115603421045419144516964468197515584809307049973530437782296460391202547367771679536454992680382561380903436209514834607032884234725875738683602961316940074259495833957316141299265102848918565311576396083559669339192274486817403348369492877845170184046779167942324303687532079117616022217018235177689797055507804396005224539039510664196697245178706590942205968041803908354667763448972126955374123692646930005494184394875120302424641103189812053412028389390698950758740093882867429765622333376053849890267879372281445971873974157847345782187984805795324003988979266835008311841988739302774866471742798333824810996148421913358901572533530729923024413173919119814298787508898253763844350754866612384267548234600088691400726809544813953361626320899634941821446364244948184580080534653792967512736093696761001676843239837756110404654877762434863778586494714691295866625733195913917106055489896100912074873896472913131956848141440251799127573768211899719465325227220085665910377464460867088967815791776264354428418359746528755624719984006269312707903503757241623345510722754089912817307888677193327150387961472223468436402561610865023309655094832656777820948493965280771340405742073488940347012544826462578130815352703840807776898882861147710963732094056780126189449384562821293489824187402055848261085636454438017305433686230001402062953272937233898246279253585153691319187163194201410816052396210481637567518053653377607908508776210476430932424225712182711079282867424417853316227995947565706805956202653128085721636132117792043518408308346131585489650758468427879200375010076793820352123251752329995959410975433033720961517660253405660287447190032734152725801669243548656953257675570087032463182691404643188733836132059948114164813631893973703033425094360996104042549571602406180559847910519213536610770737479211443542382113076204649048766635617890962787683756375423548734604012310442821109782409607230533917568248431116386651520135524425436394778683575299112637368853727133564967555298681312285931034921982473352620822735103524195631578484926742151389439462192069317854927713181327593992200748031819720198730707375924666103537850341736474216507476304793563689164212670091885626327242812271302233128142957002781455956610254427230740499331441675472331117799759564760583830347615288853888263215468273412652648770284497495100658491552948628145149804173513769322066427826595705154462999180614081196068172733884061943169997333727160115310982708731441501089423778655782276135750517885964833881678321595358642702495394883040630432705981414603787158952905183415596698371743477424108633872419855007142733491303213914590606940345826761158364998039388867580213191991298353854428508011501767303940386789611792799063606682430784969407933976642835989871975980900191339725466039223077129247858553291493108615920938556593654999235510972673633681281508660508224427269948990445808967350978790285438673470229657574513808404008022397029211242511319578918046557962714818864585873806883377289647148608485903370162698686399329942344343022582555213914769513541764317907406256046211345761439412080735019872905068964465724895639399077740142506375463665573815965756327958772757706751045990505366255027622294775959659160072841966179989202046431805358861128425553877129131036675172433201323903874022443738146918954454810093348861971580079687050114489832641029120217273762724936180716695539350479168291552952249332541948699767407146203676206142706497311783131620370798068749040463586584521033008165771184215875587934306859501678177104968412389952687506078113040076050844130440022504498431305997464675157168633977069318905984919687775282795930943348125006917671218217202471364261350301928936095254021720199919746290137292217037755145292987207485447442086559095959976171087282607363904754108480315474181540587435256665205651799420533591169868133381573033890192753639985559554612129630696253989263769330199467594196358601678671947887227135812769160538797797045643990120740501733859973564856921846558818270534635943007900563393950250883840280223725326839641003856609464930785488684279706959705020309376783906495305117541459557622242111613915829896950438051695840120809942915768537378651582935476683035774726166015103089920676004863514577746845165256551396496504521877886754290067250834952297445668107092563905108225399205884681550520890588699527622350980985311460165056281302160432737264351855663733921494271033386172831639056275840279641468327662228157427497945049264392529930544513907275660514165618621082503041128736130483913090001238335598917229132257188843834086293933931764451070947114676055551365844913607820379889979354825708445059300652285868588772075277710660707462378350127335125896216317937953714192440832416236321315807453921688224913724642237819405353745610926688085494013648815107531395948680101406716341505411789852243761595553385231723219035293490827449617337431341620903935806457085758763543490914368851284017692054494843431331863989780059906832904061278538740121846153733574659111884604091027876058469968841827206011307376969741319669159542269427605511498272449181213205511914867665607700206553072888588178683935037820413135569342444199457116834837520424782332228245471116934288341706033030489559942978390473943051778746691871753366031083577113881021357940637524788858501532239497271092270909424058936609255341407373593408123286421666202462867579580676127113240792121157798780721109539119578850676251474289584552194063342331768782684001727467049640236067229171197011389641515219986601059916675571298722119585807536414388739354402706295065621945594501818729127296689410217854601153533909643967407135185993921398432843871476013305492155512281920513784329964264592344107379073552394522388691757988954813965347352059727476859528284712422402352397293765355497759848570338988294937943021428689974096394727333926136341170176506166008913459438027851525090960640581931653457225997733784618902029857041317994097699798323678677786221473039044250129335628410518554711775454093927355099989401750693721383998241913028766912456690962971767130597831533686368491696049913081809400561787500171068683141816780621298742733349343985306496085734450128658908767007332975864802801158338343569924236716639537274779157053333613656021645904784325919252586373044935565092195616057737900793814643423264085377021259636767008362303738039155862279712389543993038020504558623091246329367866532547442548057457942840021307795737115144091270048125042953233428094607808138720562988311803016168404629087538139713600185563910646070165392998966992910933296069896600255431120785355218578467665336775070770185069820058479674766917342555184010425516534508468886000129315626756793517693975306760039424358054439984648997812008205220379769938757389141794785302749621677671577051757648956189052216993590575429995193494098475122141028878805941862516181826863229182683865281121164862156159450403678899801068848507430344421970592519012842982568891015938929340671454393039405741504489079920957134899440517443948874897802071886990255346613474764062809141262573113817373961445723229483034353878111067570507606527418839883596707036937709140418690634124954447055899966274028152704822484908482226580786674517966257000849485001480227657997297410338838849511723346965619618370727257382142726688972800010796582516695105953350491049777783113921621355300353857313446185035194530577892231810683917616609792300733733312958669354760354091472286199204750226684672093090907581982814325530012714147756541707764057601342810667718439913071898604681028832865039966381502570883156712513434115768098476095566227050460321706916409989790716993448824026746533787632905702137802433362460703607715730480021558676353921355551278556428913710849666373549772751073630974041069062114418313323029395597809791172716672359971889670300360684985033901041515639741149663166912758029838563125744899018296807595099023525639530314470514237336235725566766876187678823936779520933286115735226713286485970521290294149567316216741194691902486379917904194702908685920451822751516807593516254174874972836585986857723973552226239957916797886921797228035949328692406038670470978896997379431496937089609258625588767060798376154284298352134174655857194476087515976663780501585665229543233335695274815904410961494309460556677296724583571599313491387760840839398425365351718683983389557258537267112029008157741127181305692185814258454745588807379746960367454349508796760950512776551621763718676749807042615108732350037596589477871888602919073184618490934379669887611980640356450574589832402370007376597818226039297567357128477584553748996509099805510954515844273760519869086115288582466561004639421998566045877268944391839833800616301866279544219436195390459524056380084675880680163121347680309402370943468102403716468791649355851342619590141381097850444833821393149904180388255878329327461577541342629107414145717674740590057387573174344586655141487929304245706758421958925256844036725043318957200558700060707989844213492982492401744537064601405971927287714887508186490142840421739229288310566640069248324560027995089927597145938058930804228413807192220411242062554731959221381924895886417557122857409626590992391860127570585383850502879693296194252901626198207422040706555178807973526426496327003242879108269965933683579784232127897264174104408712679599586946639788928410643886499171215447499186979679074156267247536561263048295802505425043537294493360489466844965308867790947126622089876430436271150633076896622243753692467512796915899739139793650844519692582723449703780032161711011593916726560707140733502104706967941771086785580284478295303608776133049283272648671850974481352740671769198457094363403549093569253188640427240556835388695780143563990493221294852045304662905957373168536224923495730300550886755633744616358272762346340625590121532210255803591766248518492240978195666812238850445072488207796302337928185716555543369602411062042102954022751663898959658961101451668616733290141429504852539513951509696179726701205837085365939045162659431991133098304149462931566902275891815698040961574700021712114142545464686444646469148890825797750885890476245747884142106695267755348575022448751683069506350917998612379126424968344693366585960927836756212520817108805960733027408560526809176424297565905830661834768778276674765330298705207420022392236310548633715089979204507458594857587123679619060383015010763286333507882868929751363667392594946722251609105204635139864216344725233990806725934365878282776973536255417317263654029167473236955466187259681146458094926638909922077398073667404161892614062855570315502064875453133618946343556690221716882694371190166092197222713242811666093448370376239864161355350374517657252589346006523937343832907506948793718000053661890763969506205939728278719989748140316824694989161584501218103938252402543091396583296520022926492078415814846532325319876444883644699315115869702037236320860748030032374239261385631150720352163892001063346022334940969404858427888386096969541444682632699068427619533732284817319675448200287354965273041044480841257766812919585258810510554308130077129119096950638918889190051390915703290906617979300490965638590889279873607336105907588113901114854195816011084067849815472347368785990481954151766327943300709128029688125408656790995680372342269943586716851468949524814354601746432439635423701769622729141959370315936318412523226676315885320946618692353248575100260142920857772219180410951006329611307835299588692839181794231669304127418718609833823521731465268055504003606439533356964639975929645646536194726727783477678455867957439604009084395344842745959388901807634700021606025749379411944333089746334755837439197504181640314258190379561749276503624806945992771558953216497983747112996583122525242662778120118108679628985105879328930730692826735976361152392082702279649543682328858147803162697048368462497785164595985808137685258574159940178635361447821920851310101817957709935296567365812092425646807701868738051361653255046548940061069049293367477734578644939096540310177775190717422347487800164100400348821592292762188770171666339895560624942991266524068031730963937542078260764445379458982579814579689378353890965959238674602616633391147280048324222888115416996560781168878482868166157584738132084184338283748029382968630747083824939760639880699594932338191882768638404505061331185950503759622475492359673142330186853282297213651357353680522667387880864706396760634730071467064057237649058297668671403250861389108908841309627853672846764675598702493198977923174619264246407446752569264361154865031659349443779905165465995724927702855097717865445535769022315879515761976640764521619831651221013830074961846227424455041864540433771477286749092321424146468804625399898099558912081538490000505474488609162733704689122487246105191515172328422022396373970747966946608547935135046706947049345198120846683529669780929418061853279206722325948272591937386030216676871623073015871268799844617137679127053345681642330601970544111687326098184248359078324830418012661949907510287691801649477244778906466535908671860100358214641380735199932054680535550280015654018067862576542882060535158757573832504160250689173574553005596970187781511061698246458986043731045223154237109435466818881818939969108017799778168607619474705926550906598881398510266340801213900841449883797768715432679241455198515353675283526560262936600392553172631567606451314938282865738149650207440210263484929809697602284824015688211235626273472992893716000027657917116288234415874535797183149307572602246143845929460592993435115983708064541065215043707484600997865385442059624336864560554570132612367304704273811858987896449968096461414500501890499753577636734448170853321166038028702113457818967781672084603942880916055712136457927100950258832989700866857753805023867060821937796220870342332188047478231543678294672995431156776662688582520700933632239205620508066342574542511163555235952970773483153222779890256087401818474982028594671253307494426451613266102805504310546746830818492986728940217080385086942758249437775232811836165337157077413981545071379351359052718859177517191196430878485555460631201187195319628295337883149602820172222594963913837149878758541621736364145059628929130834640341185665764354408927210431745333488258144616354844183536505040977401674822796283027304840571659808815471927232617746891394433286501427575155991692577299707610860186627448844575039623942568943050153222088435023650567860179930735334692726586639579276720825630128485396841578235881249021607001685034113969386020178639457398059665376686695128806288769864660574646936084782563954774717937916717756531588931181382959855454253012798068283397154841105287047342334722752538000386732681157587164508109735085831663193313586878916345423088577293114477644661812527135651749567389285486896817691064259197415034993216101179651960816737313433402628399629095528162405349048926119766997698473073186221902144168059671578142463666160095446893000590515620639974573099216775279713625641294214688780212551498432709406337062494294116643045751124248177842042495970015826772604412453534363686058771788109187836617887030207361998190885563670509834936620659671138563054015980944761148014809213167795583114218038188462946176419504481084837038910112834044447837048966596754262488025372587916501861604247992667233481396456584341032989157230268451526187874271534910256135359584501238958861005410487298942273955976321545601325263232480159930990857260628169781358522849319031860469453319589752309663070910435314932045223035517863282813958363547211490335188319823605862688409312436955504122150195759379289712141382623522608178105247116542683684843942626966080765945808862931089748350728167197241903690550731704391428443121938892195068681840587673600016612156400524433411237126089825951024989922175118731686570297123324049568716756372235730680829428221670539950439458010793482968300997698314812537415447723592525246120131250677356254724773197739733284310005791987811385487216753031515140982892419213098129751586092648532920620663759231858189738091513776814413752965842034562216277344172604637435993390906554892109397646017879516774281015206153039939403057617457991093646530200095401413756075557245862005806687177385798278578930302822057559955854480649373372056022237251638892779160686681054309327322019148594764384323781060316957587674904923313697171678679385701688897965451642865088943176038429220845749297730569720706480031785264254196350208732371273743718576147201880820917958183519788509602458544568009772063803677271482460905640983609452839594516195087029523597112469203913905752862166442265913858750361974233892211969337257299388104143354853974737685019238579193355059749915257412192355102066277548708153859445761700220185114664084004779432174076027992376572903833323411276725220720235878544515518683951200685944320557740269987901480399761515067748012989311793129417093797099142893949769050735496322128839647907380357769740930539787089610711962677131929024369976497054214488413526715651021135060595157585816665936877193990393580940704710274066601172507735982522550801131841417353995343132813486579101024581096196807054846660262613093520514291779631556355556934813419115723978744677608453501412221517521216719602252379426008983894982424492260502060226231344552381282527173450073402953685676593921171790656575112974619338858901508008716429716210315619781968628411753840014494071374528600633838888855859583206288789354296263979945888650865230725195844755306304556681916199075233424928219210136758472739781811440883138391685806159306902998317598279131601801294212991814909813220548251405432867734488203865502897113674488601428881000701948183145390479729906562935894422756279464943176641285263954441793330287271109722959437876504551262979339743508395739825124585608686051907367277817970679882794103542917649734406200895718725156519461059107505842124089028678819607371670720983735221753661174868944609558477799613886758450860394819726007275922131713685254758901311405285119471513773317463450459031020601026881603490521701222865390165981909259898809232437360227606837140095916858041806714057699918133823267453085064234761271628987801575299290507141283644390983240839819779925787575954296415465309282039896635938404002724814263838595407152402467264598900659949919956146002709815885278128960165610614965766521724132297519445226017653733732977516131225983119995625436307803536969691196642958298811555768459902534969536396914894276313257011072503003168244889593439357045517391327916697392728499139306455590629778403998132865607683484492471761276567384768904796066861699768296926060818742073073134240061043855343502342447747167650271875617092157266336731797521077558981287824942532692084424048435770764828246167997274585106793523517549260734696937420424774462352606534554449774756362563128830620378132301223519625309730245889634310566590963480613315118626154396255512295407438380138547846679694751665155829325671931401688633690469063816190217329827800102780095912592495268462472670574492829561940104496857521578822819586503739694389886943848191495764211758133137041953071034079650641509751854532595064626273750713949348366444941643277525465857327160837542549842525904347996130902328390364468035155839250898535565406410740727938316003727220165496493497021169769059031486975732786992785253864140456292001675247784443893625142269228845148226283213760158712313048882743006682933735085468937608107631715520688005226340144812872099360473063549711761592939197490670868984813722254067170844794270337726533196320189850583208397921108390985782749871543641359725864457764770857892495378958376465739751185332315536479771798072616101423128009599962801296743199923064736057386622323061300568264494167062172294772096264411265047281935725100662280327540197738285721705695746210726454844305837508383492331177262830332586731380215385002107930868622313337556305467271682065634727096078488424344180691095630990727831956205241657341551963422325837813387883321548556934356197041302432090559677134614212729013932975770546136248889425632589892498492685726677177173881469048796687001814560249825790189064369959098719313532355759203832497819564076937079786476394975921295082866822955654651639645958891495383749587208736525396304399423772571571207076064000085186977801901766457740732374192519626748720972731820871552428583084271299861661691884218325161463635411362461691210723287444309960128879036484854485031322842148164113414448808622012347017987276256059259646213278577183448073020323938070355696024530196279454370287141374422329700226453578090093779366071753128494398199578362093276146774491565779994350988715640769724836668002319406973409847514538980288893998273261220919073858371126789287528278407873658994941937418894715146778909604596165102126158946939797177136518999869201603516167938700961695247812819672806430567289191479153622891408069014487213414944995683517425575187709931995682320656348107695167973053891912259226752929994731311444724405090997037118796789820845557648980315774836462786685656930415498498038774875003466358971891324272711249433715663235565670994663168832475309588485964325140016041778190996994919444325130118684214933240430974938186513438568578050343435728276636134880382700062681213628717191559780590321246740356566675722204407484224278017154253717976159997903116811514879656525895416178937815251656559241599932705074339072209371572835280264323210852245434078290755393304748778270865568260317039748203051795864512909771109235843063211051765117683737446491186959422298732616842937459708301249556662389167865859216698130549734169230659280561946276984521763927061331324401305312574776703045997287197821988243605379821592998064605434005822474556466106459757470945930460001041807970973359772601508954045821697148587253944152145377279786551731779325582864427843801727364550723855021609674901247168213974311570553275073431235559688605283785328228845743956251461403348545772158348544103698686735711591205513034384157125468039759264767632216916909763010812574558458137674995323272154530204407348293857683999820928681172380050221005226960894387261220459467771429588151596346274206937563813565025898994581028277429659147591102199859909846509720780439308330387712442279229737248187889435992880683798120027665001244953511220561995489868364685031863356580160464868020664825263673452644561671956255608711746388612963056539743928911211130195918317809508316265983000363796857380144029269397004821510291426091425797710025497761738478642125370658909143409475919263940275203062016428277898578590953767904436663801188213023960158978972117408129737075493558146338436522331215562474404227600052243414358041104127174029680157446244018496275474633821334627060836507016444037964367496687505809616803977844314487289524455913174127138150578989678636339031476819092569739051417342608150509870045076346338147222793373719668485655388557251514550169450467759153674400508878014086689038397517538467275985432019984984297570750518530272979172613501556755324281754760479758061927717146841235363432267201263282481057609998512624027358140861208770198881813843546887792175980999194813591426790433191491203064573709886250752753561377202769111315910180862521565937946851416880655564109727548295753309788127215063644876767609593519857277161801100638994154734354004083231143048380765071406193504545513739400814980021963180462127840890298356307683424002524891958563853500981788289482119891910197985395653138996565085717565508972094942376762391255808168365337935187458873135795061178076845900289386651734157325149904785274512655531022857501586857656774692676506804141150889657649640359647010569705224814666145477681704430097625762512827348781568921209011807515983838245361354724129003549466498792471362023806998910207408869675166394064600729083017445885511418463304876105893146065307969531405327626974794128017829721580614488588104846388764770811498284258977142098591734619060443480336286697434244612821268040756277512093138412329556662653647419983569411804933838450190226754387070303229083433507032976631233057377556018668702511634280754514812891364883125623780615094247113559478669651460085199736234259925166114350318561045212946566425906939130759555825012496691719066954627128876085413893208565363281555181453194235710541908329843833794624204564782618976808831423503150986925112726971422099805968485005641681563953115692585270353371754316578253915628802278984180240286849593256807904729094142408623404017856637696269631152412692451558472668293810840447066118212858466155837666619783477511528989521966076294403690942784900247523166524363619292513024600221368685768607214090132667579140756125406387595891448680211443733299609691723948234112628977721663111868086468848261276286380621111871686558737030487030083994814871393440610759752511783850577026243513067787271887304637865283577108649743420348578261762256065435035889827463525591513541475607805737149716114827090742412841846974374238980406701625295517048010982477849468139499201632348454081851967375212187857227224628306364699482204416853641026795843886874938462494184481105719143992971981661486513321457155528478648324953168369812189571227527723405099521065784381338151401334680606442957460874883131431480107286291820954072809921647537072302963279553179894862336177135795641825779733825441090524016367796343140163500763376336705626166055589152890677043990071564926748956771053678958425048318230628103684264703380172610691144289327667551171387870033016916660569746342268199989210459306702368019124886858724187210889100040951712653994880596265186149004272465687397229349515512167829472001412004675514769991426564599381713667026963231906646729200909444968941598549411799411042956777436810072925225632149209352274737627049573980124718587776644174752739119167559680033533085716323288467434084492080816868566306054370977053677118037753306450165019087825973701262375756768077460073394036896395134894840222193287641181645134845962482925282927189790274452756060138886629263719658124047106300970252592529487081311278237557618787091179671171501238540454903897203170787669623053502246225761623415434587393473084024251196427127251496035937614076290518168661786480894657738190441027707068991934123615896344252508959213803620196937868949053411070012581714472000274583323568699767672227621065921672497805432647737891579021351891501511535836100106242185130195567696604258252562269008451037344299406869436044045639896804426822408449458102799729044937811682565496536098194438215440258625784700815080640563327777154077953331395030538042627726531127573390833261628859586070275137348267293426133613009689923041800382683768741202357061868244769304378280837193135026780493472106312101316932666672397044644716723997044219751706470502860042980842950950216895661755397244598267433631368464617348561003056704634584134263117698946157353966735890364395641567813181480075732270942602522757335569589100539147779002770268774121078678890056278902225382776471739819008278885987322429125471449417673980670427280461995310672142440559311146868687596043146863796299227474534183646274490977860167677713432185653465195224560372944933701641364697223055032198732536455588305695546099329532852581801066157963192945619501819429772828309442866373648823947936297054726698422390070143673701456556576879673286468201772699851218424451677011608909971253539145061469521928011324504502710106483220654234802123210905498434168369440833346406211631409527810011238026057377814633397879868511748418193081214030507227592764608340021205931153175218238651471670845545705115712404320620521528737886404154818236648979935680734906550539414016213361036974108328086137074414247027538418716919603504901520471781769742630776965488560413929689321926395397593229631991297763577384943957703307809618919093298870228075446434890946796507389682969405632647589045927121852826735963546748707544494500943599285912049578540437803316185127173955141447085236726631388466588884405789868474494856017180812008412857266189786575782952415666711373322963395780691530647155177796590565970483461832720613654294661738509772063385353300764868810950576624819155262170713774982318337336902931910887626879852845129399088000017709416301448232955687499580163005624989288203584970586953174432105545156670679070317288464896100656018133947040665179529807022001344245193667586658240594847816873795943008913347383509707745080537886181638624035479181249324167652429308054730164051708007237407564895964166295809364371686047261980131159436027177776408299192143041933548601714005128042217503644205727722221932189940910409612553869935019447216043150976547723041415891810444553657075294885491171023402722755693127171241999415179040876524240075577664593532699171736943074148162476542722480394294106705888000774969689333676440535940259840466989896520544625892071127250280698477291157152760802001519115265354535241318707384733865186942388268281164462701523493733256934681262757926294208460718266356101959583696534880284114506845970657098392851509779337504308065015064983191566955904261654210587159452272973214678386695230341445104879484842451148533504248132518802250384965069549516996103445831943853541572185178441780266236930302290664478656310003588274906831293889603713209778079896046350732260189064543838051762441746772402853280341656587930509901425680325554381681126209963065853618063321763305657534931750452984190418868036820441343904863973299866688767692148911163655103859952918929359851651042016133735021067824536845055034470354628458190162627371828957125407493842460618022769275687389945003366029372870314499217256608339411017708494057204856514819041096212180573234364709527267785806291456123130219974132131553259107842192507092170766562387156751417217984708823866705270661000872393419113675892956260957441287976751549784992294510361124719292963074127128563144736103881193567415275707081277391642683339076635764272644124363290502186555655335215996506203530676026407205235705628670566992893734087902482847146373570680956909397270250331536177175368116831306499880822674837072201561592563259100679444932418227352098268363673944591924003473414489783860881199468044286722105481079143014722771987175559139031620221689390988811025903593920339809636184300601372389503670919521832944273474147148753676378989750210661441653499315304168680786382346939729414526002112769554427050623944303620371968910961883377208900893857250268230793813525492806220698663037347678800179938066077802623367514127759401218405558728784675322750651568605168020646182293580089935352208527119750633958120344014736800483048668563774226341762098699350618246721559132836021009820638801213313857672195206423153610659765357298073653262066996481608206622557866536630497049498801159315603667703781200250159801388183733720895059472544751138631408069906346420482618774671599385931379608420834187075679537805754750841271264354639244743634701350086125535829033235385676861867119749329258456307847673564455874797314051010010785385790272638910033022687040153257087212822008510426197783305054223465361685439298901652802387841693756967926290725280258635645424607354932599167881451073783474324152332087661830786141132432771806378052821946411754412696178225846184101006437567911640803505663201887755690095008650248693503338853234050807935796834652854488940241415992476190867636437405239316488206569831329110944613383864966896778597912331106718884355140739480387071752088420790841375682322301282899268165847339285907129012932326056055411087982567087087477180442200568903288291056126127827581217424855238829260725348086533380436615833324009397475742038816714637905267923675240378986792038886390713241757019221213966925826229736183457968050286561702917937778114907324120248944218030091351626193162326673232008498865587018903322546373440045220479378946959083350757357103209849177275957706068896723195068494872388973978950747371336513579473486496579840233996159914331285466857844025704904436815304232469530816391284255089418073693161850309217050644081550874741077969135645449016569747657558887005792432861360032776046965127892890416329283714314421394076447196895959152671422454256241191493521848009285590634657152364351974656066868461861347885793356248748737696512788968170003651656890960983046343275558233570727246208844185802173497904132866580482161665260175233092926105343855579608267226142284477341384514977476243906124050680949698655235020279610833480924962642831824172976408881591826310145008343740576294113445070840218524516165584838062778072221811000587780386577293592630039865931369299453372302580469420777720465066667033356644905038288633541365476197581702762416099587770228351944882268738506398992939557531070325403345140562154069000337802493123921313901859128491438790762719190293630969441739823267708338554838531787244391576394364636989952205824718879328965922917076072481870517855146433182270932135986083549525574109322027708574625993872637863322834690439938501395356122629615236353033300347754413833976157502970429842896238127850802135159594665081998584558734111366121061886066388968350673527330831941231013254525194783691361758993098462647040819083143201361859447996176937629155409945386012993785117076739582550542837445349131647883499157079989953973668414812286676469007219607966861215570046109555867307739905352456028342150113547076278532387489628586605535885679724514171546426758268115148839594818791050254875308865670160153688520929745883042028658016761773703722864958144939472204955165709891945466386725006832648392578383824577628542675967020258609454310643365918597589029831927286379200524045119308433744563398878803951459679369386252404671185930249822613015818405032061488884804842169396967074002614052413592525463589395917438220016033596160678681510356984757137395370070154028693632753487065604946750997265546136184472971035502740123707661872653122578129101567291028979972788142120666742366077664207457777576701851802263195693224268216458434209925542691772432713436530714771776262984594635067727618416160672457880288653001266375454753111966851623384140142401078572176049970616844166465543858279706336100760006295818509325448526834367655080601222896649329258468723807738679287451921660869731502022502409243067019564913387564936485501518654241099785257918160610853399737501602124868592174030932460365442686061694728708602350370932157369060456207499849264721218416562172670929608972812358172837299262228524584820536931826102124615365791214498775836904846049918179487255329153064327608900899965379023359778351573311795147455950479680879796881686072503327207775387704387234064866850373021548006846439257906970319702729598518781879797136027638938971834415316062489280690636220035435543095240307435053361230215861135793709050215394476360013089858327404534506230744925354401265264684437872577916882323301784402340702794400670293726789994427767954548176060040129667187169126531188110842396275389156672886188940586553187306360094596509932175584502735401620377167329473140497210736817459332079384279071905544923203854829218395688180109599841048485268867866485429649942607089913888530276828100111223625884344737759186567760175885513009394212673233836992153200744130407983083497495765806425364679046765811370433537105699292233025588051702457904047504775714801666012438639846311751466998141121846173610487829926244688101932572324550988982411456758233060971472089586893047995799517457789241988255906474021035480046603380125605376018345895527272322903871397622813855631004203905212800603713467305972000124644450973575394036676399139089341517115837469279124036209489170883729446513116546065182417337026394884406252343537720161606316900037007399082422578488620027453325815891406741953459618572496523682210711917676273538286864723291384215651497005203355303864626881645965301505648717434732966391076134186026437305745958408741418968114349854131303833184849051280027401618148760516622865368219446917462715094076496642326963334851940232556810343374631820742870209090441423197388367329042097352068182562060924050619344077039960345092451421236134978726355079890635156591665778023732429835300794365106805641154723355430193748743645727076345989213084607241945969824153543449855370261317232310786232919214374928351413795576020902779217222572195616870386684885035864868383081925910412966217016022522430939643083985922247181144516775436241507878350683735504712119187814409556152689058177077413640825878580483987050761206821973236611714399467176884600386766952382813223403353179721242212793447091270989857609932560244540969900232246414709903898190157774439753187419738954768777897621386727220078064840672264710941209311212279772268381202790646483249779062566865435591409683104914670319011928146043691505107107627998693712167144217000195785248042792005092098312515556838335500379235718304325956975303144181436766292211573766969299224616730746970364331471473285175017778884211734679441480861259193169940693385493092782045784645500228781613952843292909302333981884332152004448349362028451399725307317570933848509990954069066931321775355221164344557402710257445133554064925742796706845974658570623280020741865880266127199063729240482271991855410905968162560381707236671363292344102510062597965787967299853104758709904279443883741098292009288373047687830359072666620404585904444846166211663554348389209479979570081021470211518231349685749750298985072970449218868560372609896908289175958756867988015820702524830616548397648901525056293352667875533598456554323403553304742036383419735615866848328542719480139738144555535766605500829858125516183140213397768226477836390953336039605213345304037904647330727560017975812711964763645803631974964012630610930290584396704589964127154044664866607141742358252681708013269192698986679957187451805659702584705400822247982398623364384056659495861684814209405549273561397139931752582665858833199043899692658932537998781944359758503378803653251603084304708016964788608637078008167722271335883355563493792428815940705931605389910459526775368825872320220163744058409690067189773742459259462905846010798163358424996037727403431155310691889054641856319244981558259409187057885982935321061291942298168927883454056483021375572196194688725962838511642385334033277328802313334927371848526460729777774885119947853958497369379057761395613134275430493846092411300511499736119921833047556505766281081157285554046175046739525946740142358882905469519367331748086935278511235317740414399025721139930785837183495724331859015445369932668935144714171654512072228460368754305776990310171146101796830342883994025679239246589888882498755801641288742498728145508227956661723060090491142682357040674762239868087384806879562661140789516757009915185154494791551022104716200996537903797214645363331188557502697091825471820194549623272926714254096613653329278083730936814052979004494510270341944914530428968004770659490214370691938690828998065019657207041939915876557707629372306401067973339587420233564608713464589135281040661554470363841581227644765144534059965158878657869633137215343226919388063395758318069513603068105351527339358100888147431861611206300302965999297932359332005108314554370748438775312848652013574733533474334437503119973104187337291961010591394558259533909855272967833414395125144760743312793645889923965872191353831057546285410699558035760675478950857915953165281970648596462391816770209229229317644028727651270498817730038764916637569339724650128613297541998169124276163811175992125727737357087835106121878339353946495660791374341654070202661195406047422434721298033170247537964955440526927747032149498730708324172584271501854206579703152732833407074811343823304943265799135069521280888600813934413101464927697729079711420488442271108861145393449219328544001615460021834631169051957456530449372006018761474277466511832610126091320102260145139579766303223631507140237473499244840416614682302033096481934296645387799476242689644362687808624348995614295932991909769003516777788573223739380738183355173119187173913035800694978628793477771289398145790030947160419803719828985413178565946177730004918597650526217758215678757184656647524908493479571591636669092711899962194559329559507221702664435658104757792737299024722321525368412739211730284722273785173394750301653642674156428803700677642410420044259129832475805773454969472724231857375973318827396536035433890826198784911347371646110317246665976468663965977980850932902221267959256183670779947710636549355547594023977984057526891997010483284590391765769492751505535321844748381567565894608201471670844473295143129202675706972321626878366965327313238808492178774895387333655292226865317140210866773309147524915738462973311133612574974825245020441391041551381677155143658572080086861888400594488651891423168735476198465735549249619313719492215727837376812855585828759292966832678004943400939476221492293733632094932328300893521743905457841774202486886539776192014375722712118763386132136193817149634169756492627546797442952983057689199403906305533482361193632252424671817901154614306184455429668795216876288592408578775189734167039361865497917683778986310362624341924058583991820324301899202341731515601228095980466320894290655954243951243226107952221042495393534287322057479471951178375868464782801282562460844628873516028016121743176247605115517406733426643113172221140279441395829724570465715547255449316602373411597865745425507739672478499595628175350855760770813371175333900592288056572927633902256187639758632453193759543872063417436358974398773264331226105628215986030003396439051231908879801430401294627698784475768816065171540362218405970295909188726413279969439544255087947957702388215250458849191473672471089139188921134560244425362295391172637239929491919871491841405089858788848347701450200396247107651285039072426828948873434753107908254920149711010234587065893971664652139774958821826152367924552216106022593176848401611940262450596747162836032272584787488092199953431849437864752711971112344561642016214810006485622430264568830261136082769945541764886039200127895826424401585687926564933697611182491799686286256026665824675251285800366293299242107116765121110611116004512089121941916308989542973143728495248512187487847379394670403934663989787885999671177426923566320600581820183301841902228205739853945307585967658317665390609692077747818942404933945821694819270786744892953165860185410754138622041309242952785975585608052565223083780747398562182578537928070304326756527474739649756035433487940163465225641637361660788211025887914679179418191584800474619431920870195868600423751443344974213048903466907683346721257082015189023763271126876535509175093462509241798027963091411739608304936791793943088207187529984150125979790451894046759024398546336141724024198035990203920293063459005026479855278871670291564477639412063143055485914111773854186750575253206179249638775336506102223503539127412266813583700593744770798671353445960744054060751307511886193674431470206503806597580397808130690338420374191517448085135033680036004553419247155404663444296583859619396413065930202437646858639567496566541850525696270144243764171580814597377854823235334236510500582139216266949156150255842627280198605282308798442969487674677160345764204329439958331236900848117900750560593680021872212254392611183113590621096263901296127819221026616169383723894986171288943614729730000462365536834044918945090393298473570526486582258905725849149997415094891689089047392479887338918515296644005862968331137651899845755106105093630005005630077330419518933003187188858996251676758937097084898071546278134575351224203625037416905369939784360968766114853080842872345188777836478351343811690474508590780778112360134706342678004662888699532000110301648689361631953395529622175500631009695000141888892024026845519518396307939011353232689961474710422749107787554390417001122415270275853136339298007506316485647675272351365624978875421785715473870535378111926267067081447274490272249057158135483570062006494584373086491785419428530987132239307331387196230158916533335337547471560343733802025898470006347237346261773724005993761236300273815071307810602629229442322889919547158818140143370940502662346269742517277912960176661323354088762979664907602726469764048463284210209905450319753063453239271271096965562431467536355269438076614029550662036241005080358921694269413668501133415722834595743188821694271574841178646796871934039627485925008987546964962614414192182076295880840359114368823586285737138031819931164960191729127820893659866665051769656610725760503083222461306975518220047046781477816021123352960905567730212605019805961432431257106947927755526677759583917232777451501951995461895169634978080216770092060194988082066717334631172859894518417805216182135526980028051573508405051343239081044026766248754873758421388276453964293860569820917143541290234629912822452724416154094955161462239251556448572083067713996206886613483134124263453884496633634020950232573494583268714276196499813915324509519444397854183438331010585611340392658277246224617896885850176722095153533942043588852945194693630505102795445292429535343106206777339376156152547227456483401940179611791448959818341482956645467127583102504345833173993158863490019989507853862497677112727991147821108417326240493843527634383057470706283887239030665456100507905970410476082574621892615537952126181312511665174752788391918898353678543378356501169921784873387508650200573435674308594706568925182470782978586665751171904743756143423284368509607880102009482451178617700665843813070543467037921997595412986220604063410153919877625389959212248637475957604704351394570092495696104561674623367820367170587400673383821395440094977851618709699084920108096392194416761284284184739596605804941575873225484636408258230768780242265854321211333364574805946361180677245290763118527124464915773434862814619318438510169194405501152690035707086625478564177329796064795223935804901217163625912946249054976951190566422548185637016530111727131901646016460038632309593911728391212402788450214777279048908952833060853102502641163026852637404237824859709965417718782929577694019123805143976248488031206923211221917064475270225989238835404992194849115785480128265665550867690996858586629974439626914176137204919082211493540091548347117708832199096384009821229345901789688368364841610260816188517930821145754201983067486750781340232218925818475031294083149421868051940902717735204124850655615023606104767864611294394879005954501001895863071761179896061165861447044133524619828002140380721618667305087488268238185650633959082708228664531556698282315907201239196969832611928282426541981308716207248203047631986580930241710671912106332502985467897417721325242427795602542254437781182403694785243353628208458583427146913955502637875094078508332806517654397594269568865073116158083013369035449124070431560987676795742780914010221843909811095746341434646271403910563570300995600364911115278758841796466698680896625695890137271591468654897297670711864140012363554873747141860535057144973984533349737322430020954239288072831155801745658321653048432180612669365836634538344474731941610396776368964102892857774541403563175225178348538302192062519501405630749916254550435028731051590304483826855994842280271605817266402875583426618652524616811931154325877938248023894918420278060663538820932608576568995745230303675828163368091755510895750355061744852565180278949534052780835214132846451934259915747441256416614886233923683495038041007211642358572759860190696590150530207933037406671083604890581518670193503314968321524232559563582386657069209113549393764560130031751935388475315726368196874944471257035609880156740275780159367882566960359565879847273787339497707110500590012699090027249726504073005506551098094041144757477504429201111092008848319042221669386142413721982536894178359029387154404474969439113500136962733243965293553931951273157510632261214850477134165549703027975296755875866780738353352049076775977711705564580056222330670602383415190962462856808420656264073123083487668200655420573651630120494185355326665561685353446193899128758984350451008247595969777402490675123852526474480348464775161184646095263311354961863525689916436321926271744675034146083277239438934183200519916304230140699224761619076400004416239283587215849000448253198315274518644597642826501327693528621969297616128815670233741297727269874183607977413612333655587515211691825768946396193522922012897702725126597069557635803783280043959546680137243485674843126873142248842582311629869456586903189582112183234032775434229208895015591096848176524387039299254556887643474092848725971595485973723709762279367511738440466301356063754415756346493152179191616038617248410288900738957378703683893857354293118241721466827865263162437754788345939363754679503907651415035751606749096506271031327044654533443963834994301659394968618180653039362918676580065722470101891514163836358439409773856433374810282348854213336081107843099979378732359005619208315018129871530125968826274292054423668807089911708223107671514154426638634342210643989422007767518926096195826382438900204201418063882931387682703892818929472394465297510656457087135182212733628544894181889697422022169431464754278399236162273859769562995325537761326465592586790225438333097414840370525301452525420191812663697353501531161774096608233146012925350473575693186852810510385568694391299038328692861977258791347480036774181442479443549095777305778733453739892958288110792696060224751282714531109063843267297938257418038270054856264815929614281816342134076026675765693476105460400419543613495968923612781363683550455263667029702007445577068557545996473291321010869197492013117221609556198037100592670764185747422139130887087378483583205482932876607414288567242080383667219694105469295433645686212832929093299960527321834216588524195661902491819700284706983743375173878538229016311823930171824286318963021737905466471549720748136017902025180002707684762477416512067199952564075733306941781437314320544110440538400566882156225742623242481452253230230909318190365396068935285717877043956516891624051736263166728839851106225318050673977147106695863321438611943056144892128144933342092878930906443009492295132594200479782925103374710979085265245843659468417709688535700462763920324713221543921304810520256102478373837354847429532265451758074338657481729360829831439430122724141929663128288316574637204574871855479248258404165412982885631056431970374732026763674788750055402236353860184607542823726061501983266257372799555296527542988573582055967311559097334016013384457041113009000848101226109327498350215684379176128839732325351043239533761933085249359012780907559028082281364013738230888401348302666663614566785692962207594707816889413186725815799100458695241878074109062918169090426014775723520399482837559697548860661923947452418762640625038036742947515303609758839878924230106201360884354614312871102609564330207366719322229414066634603794853678807409659569948405880526193592964944138639719503806645243435812487606757820448313851660686351219698528476294400788081660434923582314886877800794855237399859413695796878349616407377431256459367526147510660449204373676963013310260172904784075829673174314016131100415832624743119201094206601837121491173095697889807067021095538035587281263126209436693849254197639465489132714086730096205285855492267087341479740515418971864366081202350960786360038137352794436906465861073613790789038306526194966166822341087660251652623940292364429265673654259091499063940672699255947562057203941821711622644845051391631313907459942980294713323190199284064500097928651534832094661159588446980401170055456168314151924492824283889216088129649507701965785114932753107031629984394621293052974715318039186724164879452270793241641378105372062719232921094986692807100867265529193202876615448860650219127122884557548765505743964606999561039319030018008958865353769650259941576872336103524960323159172838571014515577996356617183968798154682218919360947264519789003638378248512068570279465863963744242041863071928098895048431401434969775158651095897742424767717112570636228409425940623449208611206926419482070344547978206689005789960283858562542970968249694386606943158952965140151528739402950083080139037421156374368684597630013373474873164782070862349538489600455800115228813003380703517729555908910060779258685867796571233972938688825941751029819352548108829795666661421308037481784488667401481597796570691450128371287416153886044672652953931522841892290472454966029178132293961941177223517947735392602013508646162785747714372116413543688914408004692198402166637578126406695035883461543641876534452686924290174478632649623670161127292025901976384839961643118017686564104214638244817879308638915879490457772574882108737696284037772745885579998980604099546596504739177206020197284751280079676700706344941893521536508801001599975524085885184577523141836503515638625649466487697060135580530100844929262157562575468579059579973992327359777508185669428838827076575881506720831162468198259649679972472859073473069097191326252196378293571301846971993879685551450620746959537192385561855181134306602591678137943796692862848814931182962386071218941243308992820159439432815082900535422037294065023844455135978676253144499608961142498758507426766696336339090961929141562768072167293830759162183013164044078553460626825809908768663848684747467036628294556021544219002770274392785073689214892075789172154841762557231860838786929624340501488735861051664166390532445728273856350037701104318309837834555160515544016583589518078720989981016158174496968871979464634574763201048023321438978986188511717491397192487802492224465797956185430630505891637557004067935647898560225369495095253628567896227929809041323721586204110406028483995600780614322258925358801655517160325701012948463652483822220771451750292392651973960125576592712818142183106670277910337069025566932976975289762996093774733285994595168941612405245289189582904735648750603831150366825892845672700175115395854164653609953099801992842772237733540581853852764226386368070829881349751109164400859649580629588066467011668958502939913852465320112175152856765560483638606380722720986849135114333574331016737399242364923403179889961132860014189435889091397119124254970793797607544986725607967785700262352865331550408088285779595656796556186204516688759101387943251768202256164981027231793981661043038773270625777418126017532200438392482450789356220671961538535038517770966532966545490876931358492185058951684996571413883551441267960605857570908418981501048405290646092181213845359654875048967219866296954873745629446640955549249288028369602127457203239488256421388916385450016061987911506210842391048673785272546683978610000322666301487950603724540925109653423989093478243367795663487626017208652876579058217107375841781426370749277311974701388682728466319280426204368578856699139799252163414814214274133992469051591559374443727861948391652853998883861750766964099749306666013035587485050995184113030047971227421797105972644348407701406055095638650888567192760508699681483061364087085080904927924657076434226856570938653728630606699177714069442694204787925336773801363170732653882308969332073910286614687694539811843770833455685421547015256174512434974812053123195685363878959012835612861033761199935310130129144229067765117459874485629918658689313018894125928960423730729730561999686034690004475054201148573356421740648950626134682426717265529315982200074183423041029157195907039262358657794547916880831880108316531721860407552051021879968003931161633756862183424098633807449329659132206475556256077280598250064905925376789635133299538739425881483497930886308471842343207606326729496296009234984806469779699039625524198547575257674694053137592549659596033207042247172646328641534943869503382983392480978354832475090685101197547562104957278991335426240289791408309376382787433720837302613233931511257836799763880772614897261608661378249179069528295997529446459962984469548765519316418453044784539690657824671573590591579059406775307481405592576125759307309724757494544647498095253086516611159897243813546965997322848586910706071274709947570346889864383289320262184575843077080494343116392847537403290644372250074004979585437433899026639325204921578298285272463609313442138679840463302869800552451879963265283975217156319424047098923809885638911867542685139720627678728711941491922904758050800501321718575558924342821073151108223054045421036354774049719868722042305985379489944163180310392344901357866313920903231072106746513826646072680228248637057971036855853480587485362344824011202166300039203497120564403794680804973789261815498678233853931022943879052876408830601594224496011348606151720254637236186401047689837785464986972008309086286521596867738237067203742745272311852945811642543543104104859104799019209190321305555789718774422734508291563051333697199943745026594099578130397239284121661290087722114210210617420113389756813472270194813212043466131660566661636464176668158983222267107591757547353194459432792814748638912282370384447303226793080014989473825292087037356792358546400156736055857075744443049724829973663357020765095788624690741071611705517844093272054733225787033606725749879963711658567303821162599979188818779865256552581704128263307624068528223215537250168298361941927036847941421091039788155904641664354448276548325738472396986088226600143728670127006173748345802464247125407425920767319269856915039286108313296571517152701490052479880775400079960505671017110306032976598855650842210822618062181629620915029994823163352351661460153759924754755893444400624056510120060619382604406445143017787667999898453291120318094602350649029023563342959230128244616220711413592230170626925522526479042916131280025474399587051192595768960431599210452493752837139116590154712708990236059190715605374826430014439455055829755714993887054785704880218707337561178748829685640737587378811189032099427558744382928606346442155680527063823826201542171739763243528080899004731849224663599489621706609856880233754462934637176934553710032272829806693080141188418078689666826376732199208435054446449177557937808270582208754702612196077130340926828534059906058768188531151075091721928358171773024318969151812633873412490490788296181458628486653688925475316988988744849007820397263983841188168752494947435070946931806301195853964752991505989867918417692374730963750303043954296460931800692329853522496222625275930866027592496393884073279013160379175413386631550752736435653766479268204401188321159350552693025173881536269969630247057690762315904028502929707945039287972279179225349168905351818813185691700143550246469076478847328907041642685070952322238356008366054906598007887756242423780643911465821781725115199081027950032969542993543617662632246592748491207364683764531024815623214113272909912385340269852359719882006367459110161085842739039809779586215325170921714527470139166642625817738808927079232033803832013320384735137155540627124309921546815374922367171165862946259083120563421894789053992014219412908233908247161449470356334615409008719864826681688875950512995249223414433678743391852485636743948412624178109835601998403253616003114803893955227050077095845444369995690771903008434024545608957626777746951354262259675097042826075841276004604072076035476945973151346976009605912542401662052662689856284523967571889235002394789157020573195068040625485918830043694800185377716732268940167593471203455370885192231598813101298880459028551955327973463608628990757820865532425556100442151328281968348551612614163213187177946892877675596193863123339530748422201046071919130215639649552858855616737009090527714882849213723164582610049628079140921458525714228593214611994023225751416963253301888986109801120725772001711202704224646950467736376832592373383534459774623875387261446379509127201768183157926552876867072150635461176108009536819334416756851920449161883044605655350017972704422298538938207453281936700268564867120703331356590428786556975803287584971717393511446001420462523346263937664319458704852771601189891939288908551286978722589292822867655306230313576395063928280372882658298150097400745284054217876359613240432631560722554175450978977484461839280724546586661927669871411969763355078966980552818829264452136790676575798850875031754807437937167539330665498476891320537834255704036338947357065297073729449348941042637463822809339733544579038468685414041767187167981702009191992531912754009650139913336049139609037668845452605990095704169771068712880570175460543469633241628578361574498680984458669207201521192743632297723115424735179588815623024800871507353294322575591682743179456694609402711257390964249016135016361183647160702311375852188435781267227346548819100782596189467501635076935037355827222894605068320243186113075249605402601984998862769846259796376186601212717473932529054033471399635689445025528179610329552961929526752692320257059225241148916268935427469743128558035058776559886041239218916079603534362225870438350539858395583119354498026043287063215441830300072386118811928225750214985838135563617639288355553151613710056677035102116399174247246246548985967511929655336159823607175429422016318527271230334705066951514736231080454859817409899974417911851881369891260820376597614583439066451612009658681597161203608787143053227249860455576567397945167848290962260748318080583494741524249568644483658099903081957347346921733969679823660899701350910731833175313473474130105279115881836530456295463087723204325386129757868467755809546379911260349655319987921098735381175543127975942823516034961767188043732433834634506480458805147126534705647690422287910488382065654116878690221003751708947965518697830712381085767267221513604895513625485292358479302209770800067176039230367791455488419181977043682857167907930861994573851180853555063061985488361219854730744411326370449476443749930459663188844808904717256985670013384765579827241445878037322153419302837754833093857466710070851729224092784171535183718190420874027312890681847537357583897420115977161331726914745206875893879012016112828238274412225447053273691220186238911887815847992801338251647796031935946402468959562573777024562018960773699640583011892191381042120070502903938334471744671084246401971026991449720436322724988635969409175460187130847312001866276387945684067738248423841185914777340593970334880088496617072418366322920157055996215449986640593759434208421866225583036585830227816769526575541510882086448890817442507852261639247789548856608055755539835185253303165806109890115390979858055221460104443917990739617690726711441432419951931887783887974786654387177330143604185867621924920680177091413139080491656295446802988757559366164074898225379607587010031336172262690666019188288629327829757993107118116017493362626805546628266173023297837191011634135344659509732635354587258888468454669000284496440101899792967080303660853549222336881006789689303819401112097559872724202954203171770156368135303422623781193442247404134369598418747484112884105379647695371220531083821626574982709766301177493937395238527510397906972946599253859443351747708633433258015928830702097888889884294059766071143515280705732187777496456359759391964570948026448863463469367235505864145843062666681613647203447984355207394428000880435533700455100366911932813525944990415087592864280989950691352829187578126760871458597599503418626835248280654974969499187751256118738231466280743313999908786936934589167834349047086933758595717007063818385893971450821427914522841078560378230250529809212269059030722318396823333528995373468382088347445842224230912833571710297828743689128982608114249621086283358200970653869589256847341648256241373151660703164476253731723186916257020593809355163394097273541966840239119801317098973476899901135780545302131071462174325743768726571483980809195690154385032115848424890830536940056858231636442524842764814188691110112564343564372613367067207457174407853678136074991655470206558026750123161999816412189848233909996520666594822973819640338611679163650821699870315827293831186215679656672905351370265322369026884560692568302765351418130354511245595153094798373195897494011727781070280414274499865784146989896545732786498588220001472594523384771744867805850849723489315271427435582200234022520535623603500787125095494322546156820715961977042857411384525873510420388125110449834111294299679251613251117922026896232280919875691557129805390085387183399856970412924200540726481841780313003679180288976614492840611587230700748951052624505303502517239657356906186491595599389724567516795327931997424945571457317172031770162461508579571835876133910989662437686463757607300749298003508192245026138929788459580756138293428736214271940835091163776437844405154682371033412210032420155578998708419257014266183903440934352700829733638906226791572131419136905519083130676140487797623467631931276158263063690589272910172088180421309920908833392727553765588938167673103250179458146926617091534977774837806102662670194535829292751149836466949413535703385228871684135293560460035298248124229048359647048980023345619459666576103935599776036971102037079921511952397978209376485486211641190392833827447186653756944757421912631500918028874157306595395898205278571139357911402754351247900016469669278164830422494305340617836388704756929421633355750008723981588422603258508953345865681896952398305359212658844105321010599589755035122148395069529421020620464243201734798486833855630519377874668020037162070601218055008615722409167133657188422625479223814338308190304527129708350007881443295483378375715038407175673433512300123876626026894388599295743995783255513974538792759145691747658568897866170062883266825853864870198405055331862893416152995405838219350672735178771703598377871898112444503280007447453580916402793727873194672845942603746522935213296109027852871202728892989993402789248711710024168885583550050458677622975737603291036230384380947571272750181557337448418916402502904593619458475616076473238769070650893881936068153699980565179790983690922587136774652553025684259695746865298044409693787536262786601758462660508923020631031048695061053071893126756604351956530450263675400908103199906539991723070672881596997922582522200631579844698859463729094936214692826508929972827861264634846053086145175107177333324393046458134489437440636290917941421217152672964828842776619144964566160921119471059306808867641858826451351756040878632502766373338298903742686559423502674922010869212348712758991273716663115042478210007500959254424834744763502509393926356374506816640889454955656298784053729509623124009667962252187040433230769303504357217001626836557820268523226122476146826189822022091198716847426253831612417790982891096378175935594089786755377206013754778924942480633672637230193746824100359488414525325445467696023179602328161610528602954561822073250495568484093711099892134850140107651311749433355619921313063102583107346091027111049340401861204262334499418063287291734705409709776976347802575905594483750123944443086038450227262223938878971035411757720118152067972731936850113645605964840406422491095569505160496278487242193484256351957969151851073313126746447018294533500899213619430580523250321645793263287822801538897209444705122391996182114377254827478819627718143886792605865340609467826761158625693161583658452661965901764819410897312750933432359055309609686712525642424668161594912039693876486513059376388262096300575613819689699779072428700623950169081876734759318066613347310035485890409551951463077893264167353172311495108858739185630480094300443400081955956181641662097489063067799862463945642040338856844897028943106298145651679537431999377888301169148961703527739854408567604178955680489385935307547320850767474249801128988275011873326982466905866253953966560805960093979729550481941387737728761932861954409472400815403244006356581062588452482605402027997160436292037586119207880494884021677093526727538162188297337808285785312776795360224999878989895350144067334730867910929507963125580741402276281980109602462466848074859809593821637469317082886648497510670834525147275701169516813388432719500889912624601471674952123950382514290751244625801135537017337476484042166299835610614001221071453209620264550136286815576297622022560080853874453923753702529023188712515554578361589118188220394170007046165375256990687102688650293647889418150838058247197544289854933113610695070336069106348323973287977529669151492608311616198494460804794084735238232268190487631700439365397799691273010793526661380545467728931561904649328120139824121598868094909521560813481585880804477592377379399879191116380192184822736132093680373254331631146488706772219402537560753246183451930296386939348586769888289986203376564480085070866250735569848591881453462687811298888386642376205352139226482942176920310339481147810810330036411827001012558779513899378053292686631099166062990322050852644526767345807184748728580962040119764709548598853155042728006280960043043659565243640320281468946388479009290657009100320583355508553775018497089719701375763660150165392297254273928127933160016939317974919252425779157392848493574411914156606941023963405993246053121089294066303700856831580099168174894903316312755909399843496588251238541955901448430008836849171988266178774119683932236225000290772852207553195444610627291328382928337777414553403036160414886552239334880490984324050427017379423543218408897255618201574417252584489057508518745339400773495207213704725077682735919913505996755934804288292309700530068436916043594965429989451944046590467941992605421113096301661730006708315669637017961855941451739602652557542602557930313001023396244828148545121506078783521501479317771582298029727593911692658689814467792418286132599405263625179594716681244970896242789342677671699045734465347936136154437994568619914968886649053090139002800334283316859222023309681068071653438442763460794258272986813606754980714864769224866876036687554577658582804727989959554949318181678564916429054898673760664401581252033444592376669428797978372226815793571019749963318581925701401337986211963222026572634691377402369956340146942261142627373335206543904598962153226575439634181997836660198284674403229731682591653463280376281848821261545471954195806676949772076326645470841490370100583353548629589892720149227633462928050970776357056832340558956526449421728947398462049476614121005295524559848197949327359317460538869915221511807059485480776122995445526777315619280132415957573070474598628531119614944459779543064966696754698822505119266325577331965412489639839509607393789488604552271563337646233017742760787968571129157452303013127107785960085731469702918071060384442658221391637017791571911964870895050474999234726959190728058471177405398320909253000405142473217729520015516111303037368863155604117154257680260958593285940996891060689185362569819131071368367614058140214070813896222760996632286400054030735607379855674395614634631998776631575133874381955710650538457623518560161617164178088380273068767783919232328955767301351256538064288110793321971161452464416738823324112487092897200352537285422144680088488434812785611631144432523790977231967317991538509325472462956212619050976598084329667855428331586412374892684024705041081055770754223932890298425707703618226182035278253647737980339692721264634177130263991278223955839839667050230626270502132169201288301573445638151189750124474213563689249319460221347149000688082196709992254202785635894299901634571278494773756254567768210428772122150344521094479889359015049125102560473194072298152345258311438925810889040679850377741442174579659741589551945437434846103175778802494097376962241571754996026563824684117616829079736476834503594361552385458681679481395170815700437263957279389048925653533261776732611285874891186586678585587093701599843013272730820813584939739351403989737600215850688830309691076595785195787516854030118700255586166526560974071070502547089624936942133998903896258960711047276999399379440898709386359837122220100813886033843066926838418983707853525774154703516834303506912114757272241053606531817520659097655044626129401857217850840287042313068252317718129553842704569927373833375280959650733088869055229128764033947257038265535311149299354375149321328043463549043725730238519861983452961330896082970877302183091467510301079316601990856408404827514510837360544514377093066375190954832077255671667534888429233499681615788400738001927287395621275284410998803502407143887379980139759317241940644180729878499516100558889123456043503475259769282315033181392141359469055964239755629567895993006046124907770472576623780441969043312234636073001400648376257907059008991437727372841770251850768206885062216072538076128904550893087962514621071345576453034670968583953461041300059369717644103013341440972393848757169838725268091170910276593044800967150979060238494300032478376806961163164762201895048509862261761100093297071424811352693999909031168121131023975293769068887795652123134787104952844840180487629427899771866165822331761927323107135610387332664419917885044859196688785833693409506783934889558613189761617095692708862718717712112837050328103413160184790554596395712818718561427353613573492983434978268485524436822801562390491982483362575564563394951716859585164715615576584757511320825027624797407197371910102507468122189155178930148010104562086507465894821670433397846472629270177099054595157138078168313833754631007092186291839856555194344958005105434043565932121614544115302959383104201991967403360098128423006143620005653897062987058723662581420203724514777515830124062313838163632070610182712186869716649424257560480800304407188817346008576932201511636810231989778158890709317490722556164512121580649702582989260685242578006879166719625323193635355439910198472353810500361349160688751396419798727378842532738472648067068021568907870040005400668605483091845275713680488577915729029016013955859461661305605202156027867368278654491596336516607258213668836467733357990224449667397259285834889604670554683208541654792291372070007134777848231400977395801774478250199534616870259728257828349156027719197424887052413318515388471652316879926200939562589316973692248117346415546643683561329130411931097088616786240457185616625216723331071758994307114026778077137747986758641082007216893095890662960875402504460301777906494173267336800536898352431549282289994467330499895052673580501936417813803000916953143610451989749808730080020427380842184526026553857994850339322981006504988776291896732859466248295738532779879573122051666906039436882310917095429812539471310901106238203601118836332922503949357474277857382534009438075624323346800420159832085417104398299125467511951323542057452382638455836690185378793351474232289378096502981262102230647842420445250369097128260140083641117674069139265267419229842482426941907981159235987002940432079627038230803873572897564017433110952504315973232594128726738931866688960426251067959862761789718837487928269757472551178350993631348806033401533081495956215164171955750716350171334368490213264569484342944062723123205658529512932537730278919359377732575281061063230295062820565070727788858412913390025598507887467150833230679186215811247145470294936968858964536919507485869223030679921179414436737683337255486226967700901402518060031396955788719712352208233528702098431883016800976124360326465550463321942573250837876279071750876175906556328630692416788609310123811296946401411133116638610953799958838898084156575796473045023618272004375740592843746384368109620118112899783300938598733780298277532302202560246961847526190267665837503298241844774878484433314647006009413947639158391249432186316721063159953235072312618724317277964088147893519154242917599262531727091132189604696075294891496144940120490053679674648493307716320821206076136714190062051492385434271990001606280852683159129923927817070741011777371001895776333517962088612054138187513484412268591416749974299050719829260541502998938577506195114017792035402808939432102983497578484352064650304088721917498441732763550681957144607311447267320652906851613220051750094527347453020475295916139374903685662165434044306632188786575778441013998815554846931882568241082829193367018775935847299868534194340346089270257648087644065665505098531097354561169141248952457094721480534421995068507443083403483233910819225209393819938382671169497167316311193331886080637840225210925196015095290320848766695761418670577617131814275353900105358488932326492641962609550389070580317589603890081231484360658026879255040940967757037923314307513338123226028106334403332694729459668470047233191716039061126957241667664033599053232588872544708247681979750606548612374230629316096334748642899503819130594866281708122748592146146199561493044433153719396485389262321073085896152922892293748474750656116700135621607426155396444898996976378443215083393383588118845002583530097350447183220925930167374718990554836677625191267500083387106520989855716814546674025098937254897782371943011443463978931973986944157067005444847398772137395044150724510196373955351811724101938320956392493662995857494570658176037829070358479218845173990099582531068065965447352119792027986366503467198229253470449258981340210967835641540480401470848729854177796426165667902358395242952606346579362754864085378418614282726843446567133338236450389580823772133340222281669528208897552790739145677207731993718486064489349295114858679998737115150926837861092730649224462591050735131506886237236312390684002197035526892202260863026981235682205493494602108173061861252457363011493988906632615959947075121244770696114031474016026989097668516251823969484285229882287926625873927735299819346061217827774786710656277402331857803569984411193895703718878528372296354957772343829193607827947308994650636691389164699045883655668174158249110998544600851788865514398107238767459163074438662634104796676899354009239999689532942676238973289124193256042257522845011288484807152422468263727867770003821269687201021184914134346897583363796431603475229010408248180303328414207756219867495172049146276779294742018848428364710296628403027023496434809968723095452965470321476622588726088443778787234779182152725623757205402519871597977532282753782403763968834661805015656994681994734457079146707897779851448591922978109304174161576417002910171248833475926457468664779246692350513769602493596409923626180826589420357875976084691801174112823185578565277075690287967897374921162016253551578400379284840888886431893057592693581458463266614196920585745755046177922973039171583118010251962064977840035212977878490904910952580520040586803897323971073004255368361653565475443336882367163492306781449799908492085920516118787917367542681219838405815075740367570844197825016113014275151628876105455142494662992689132334005588497125485113372916951828655347886743393163616731956997444786122766179674848422490716837471431782975862566307365152398934629917942474118510712563638805277250777109678819503419146919730456564155180329655051708168130664622461892703619928279161037959571447075668126118694603455695573496704825490160458584807771988154393244398770324276332820814256144066082555185299554137976071240581175872556033669470559501238309020338896642813598492750407134624029741134869211254578128994501128169733532904406557412069555324859508983106803841577152378037459819266480655185740748307821595025142916161379397436800066106159070015116972600053613558448348789254938258921614689613734314387397795273755121882304717887623653373511296182882411531233627221788834858359772775771127312055629048086048460052729380991718931137498264056125113291931688669553840061531545804604804158799135543961229868770857789789700289294637876777743212515674345926147196740911183191292245401656351338806489093166770793641820875422966785364381413048805321107241599911442935543574332690593437047543450329638371567430813729542683507359515410832397830144275069427412042608815095972387133426728266293631167997395686512872462303768948768450140218820188944822977586830463440336640362640818989235182069850632769215908964495011638218385320492987885334045124362014338686629186424870213498410969058453703216703626937141135473482279598288510108216009218595640286528320678316773523305264633990579154904625714928487186039553262483477089211266853353992221864316635950470949680561652116822456390336776554335016587237582525983285541875478183598893984433999796741949469884036816633437419207893101684876112619385967196422929518720007085182235784209765052706853123742892739065993630321608596674170404083229854005107400384843733383149453634928888344930297203428702852124406262612126809654243221217412852182829529414283002809704791697347534334829726913201014108172027144811414597680003787956819611501343278935564232003483735985185751070417088114586621761454540312908011697019553140563818897012970648087579572765565860870319134567776149628094302470302827141988127884089779922657023610002203716482151688701056146025677678957514254915550245435584099389929150180223220962227640839321656879049583252236553884272211400340071454377683731462543104699078284240739020653344061061528736782769509828844859283352953477836288636866813376764571195670512211932756602863709389908543996716173990252237559040344656633111395888765382991213713884593410208865045755804860904521546883436685050712593670307071273407534265394342145955586413177437560559413078785142224446427728113390211112982925565307056423974933016008922425617886631106730047631540063832888420061210130852110153349238562455997755347378239122447992540290110412774766371244870256703862631017297642683765110016334952544541479007454545869833337015063458954323376642727496678148318742359705007941449340950401779503318932077494082856648685466496023578438584491987838155686763588704594714305290626898641777250434912607594821877306828676714736788834991075106751627154783075083837142827188149863065383982780915225878942624656566932819012688468184991487581253352169284788572117581592190170403971869668303818874188799131687078703128356486502597351223108943212128506514362843178480433138970331133654371244643677323852584344921763072023284078064199802059662718724081849158536328930864624011756116136246348673692288342531626609712973175946460754326197284225602271212062815972151570844448666669852236371462677213806120617288908284781315785309092743388534161429754071637321297285254585616921909899452010477160965679281354689533603497764521232174875568789953062800720557989467309558332003064914915754611603285375707828989660484686875770208532802991751965559919013873232881286615389751110027148294639583431691093508242149159879554902401035837956786368472402888441022240688219674302014206832727617275706233996876870785123845709224556529416053200736917682325272918756327288749516094407266239528679979691005517415870171187577246048143015208211849822011897783151341090601179978275284564171483232278215843427180512583877206273046385840586237526049475632883651539294852837865457814071594596405912468626224713728312990629290505482446673604596415063245613228569106058151019087412171776690482204461881804250141688840718072050061618459322429516265566800953556988726172484994255470481725740195862426989967204523132051281503975582517264371373695032581420735072195567403722889978762245307351470454856844156866426405146353317133222576757518081577992739019197602995832234811934435045587064128807272339445305452886249056454850947017982999767426117802883764224826701102701161583643113766548922842540257095644772968149131678578195108710740682166702225379024401541140533385086825935369550086746850402815426983315015095656565243126292438201167929633885071707796191643621334461325208548810669999980497894330431240956491263878289415228278273390181418018698143278499926125295296903561953827016347884608028891965525575475938338094288122831810742932787692380162145462052964921115959271548745811939370460495666112688607429098120403604800571701792243696335596677748610104370982349182100915408271653454619080776490609483294374604703223893817213220365390142212731014358907116338196884966233386047111717074696337587683804620043313820948806061908642638437455679388815742083490119485253470641794658407115664095375294839871876714439886719456338835100335857439648712325696620505290588059145080693477901297620611082210734510801114776737187293749100655511390838110760281496458310553204775160271760946221452889644684662224476578643591990363741104134510225144680113604043646956916623231996164210672097378282543272529872694572307303917746836499507401413663286095553676993104186070293212646515740732651353733444494144298483473745611585530357454558021094027131514181582741676986919100013744156845871542532250644698882287967234332844713998820177196181574067135824124156291552421017581495881878228802207363834203845434973277954733169768605813743190008220310046041134604939612101160815755576870406414932698713940694119726201646139874970363336300031388465129119569279680232250419554076215937684053348462961696163781922690738470871034210915051909000469980358313612787374871145503582818880025758727581027276619103087840047319906422455833000715445590572496374789132094136569986488202026410118607677759415303177088615682109066178487000444338435260146709956435539507358219999618972556931116815512798005503491148409778109199613453080143895057640609048783418094336213288883126965981087376043177086592059654836206649146577673648414831762272138999795302224845827031898369172190894647155309811374048473232839559680754664136815072455606092005998176520434414228965101607377546816586017082682646645071371558355442848225349918514099500869220736937254329986515100233532614397585967066565249430734196419210292341150348966308324371427266745803699928877314583846668900563978986805798169019683472695840986710183282333629620676234234722060001605310224270459160788189488866678751875702452783970482785677687714080736573818385112724887193261463629809774650650658126129629986250085813870665370844555092376140677174074006782193547340078126991894671026549363185981979106241428454003235546267628014181138939650750715043552596522747447702049204761290031021491493043327676713971331800187879102931884774897498880315348841174765155795815179265387482363696924493199530796033877099887587812971096476183151650050225500463124541406473020269072679515246633897575862707852638133201918039468744237765435238402861020114336523849786020923588840404673353778923148456790366125664004655808316942549576329547706753079646223075757541204525899884431565849552723370220377985748370147677230626085804473881710686440425587144589857595464209369456071869808879171810433490724899289133085627540567748191360485072044262217846442311178368368851736842784425321494710720643966487799472359504570499519184728718943321596799766363271753724054422342459090539688139386697998293928910129517637606387879524285507898503847032474606445489553116272417926633431997354331569305908892246010835176006309386750504237315888595463432375853621905752192959527211454191480373194464030284940888424226813013926233196273959533938754133799736272835478071857489110933288650064834559847069518789164104859080819746623123982672661111893849191614312885552346524892780410757874020841274801436733029719454743996202901870183190872807760173268883496994757509173854556260174641398228708553744259691207118015544262743183706474546587522702517692056264389855037291708016816325992987165370874024240074868819036826122514391400699788530540112417072980815749033054728701843293432782718733522983119245226383748478953074759585250025845935202293190289655448890970442872177037971612765508348381750207088253374029596131510418092635442621341358953622805300259365331054866125184014990340090808729845937191777080246827667943672334965155408030553018919623177343646428541443164255917907488115190447392446588692633097707364712401684948132980690134510565273004731498554177515997906432778586382316468228107535079691432033400752734277868393339341190736397230388093143707839242241961351687272266390946371366383343727534602632504871700861015766195338264315302884529359006074880763159992639739620530622875492137666529229803723502938182536221320531059906340935335985879298929092982481836704333651497405816888077650551220775921316847119882017893419335216197266053990585210216034027283235017128441988635044256071618561656140331538110258523132451783571846808444410277752635912497745155931340575378180812787884240107311672536560373801112570438549096282992134567776861311304143323824459520081966563430731764707258197106951159636615000148275315914240689639012336361509837594369990859147591747486902906437561186434516419752324878962472381997231087264396308975727304452525191110142502853655307326085652056320721093390050848290947138556301696959707993499055983179589836107675694082846414169789246477432970351646022272733248882658371619988356972512138242736865103919208258264497513476102663811958839037999239028502935430673255160758587008701303328098737977069095346668525364222463646574396394209051162470540921166060394823979431346120985276617559262928683055583168469413635655903342744715911813838884559725808554931108791068024389823762419422403828705892165560240022855157681754503272016775547204503818540486609088769771325924543683532380160828674864118277233547887898325392786114581900013049965679309122326803899023077473669139183962157423123738541828967074359916087902610286131904086664363715394654110568405118413272734818655440946403251041032004119459262684268348220401997045732545263350540503630114833872109319634388393873863210744682209524733451006410193628702936770396456911869829164505568042920640987855427471549930426676639892324111086475287335458202127825641382925100746306010228502489620458419057854934517765461944129526358560950905617223914858373397152997153819688828537925181838882675820483956360880069634174627283204850232384081335446663446891373595721454548683878731776381478893570384979835166255669298308982745040552249287109671331696051411908743239702227421773904407971288296976389073278754990425697102043624501826353354426120360653830747207922190972249170993912004041456405912535894763376380178657814604626569625686516559868716266616578759422206766350424972737865407553854795922333301003487122288544207572490881832754281375064664007469991453043235916042304307166610477116479068928574515310312683982858253522995875229957113311601396078331544287582350271076893532672690519824352105819475792118171540948680523786222251676592179450584540301587014644812255111178213640747527754927208076595049370190834099895996170062910721847323597413313378826026257391644724273678002313810253979756189967858598909116210157535179163001684633827101749548794065586662208566504164689609228014781462236402111814409545360858893580672931489846881725777596923052305309859334466776806798598179262684401636230163525074093571652343737480123563537940958936364734123731345458354825293960316073114518200404465846097748241446716248290060026161216910265393600743640904775234264794571589694461228316213694020902594474135911907300988758396390734126530831327706611866209939104959876258125075222645735110419190422059743812173923290455151363874456591639911398993797964152034315818135300144023451961763094651730424452799466900685781904056760856407638284029556814948635339209246924074072220610775083311858635122982008452790610069274305673666692406340539998269011166579965638273342735029450680398732893947642040630248997588313248165011388374112843026677321045395285696123692455941388199193428259963551344257057160660546391412611912324089701119633113491667206267816316422044640559091778963482965195507499294467848609943252343473369106106477698793027756968252376732403536255951159160142204353734485797817756315540164576571737145636360171758448683866484855648833103358165951799466277168588342945359119391931874424650907623218237644031587682463824823790343179457369168200466963375276919092843190509145221396046169065006770807384493330261910185228622976111313005666755330342918436799588790625838192164000433159403790481952226642122750110801677260029023679362730171010623078181571483175717028964219857529255991767988201443724369893107539735983369093873514560416768270780541199270254180378799584338840945922390797749233824078756415407455301343210081401515242844544065049657648405837357387743179750062283561163458977940532908762882608874827929196720424458777180134018825131310739166676100090495049777943048007057977179608098110016802676847136746516087582850391750761752847214528981188386199330082295239538927252406897600666286320203449258986530195818277852600092477100857207432905266459639620967921904939896008906787221567344383567965617237781522322661237232829929573015959239167232026021638292052801731176118006202704646273925784880688055919992980988153197518311061378552953465897204761031113935543631579328737539174368824438739901109005386501973387870820128795262049847531247196652166289342164907824056744128068481435290861847635746783394328528788136871507942926476588359018124878539619277422881006007169360443278237870303232364770726072982987484266333671131595852254415205314409585832615756740174425035311062339678307144098254306898156355178449448082543117479090398695130348276928679785261826899136405677604771375591787909931675746932916698463274141788619727937234489363067234685555224200298810938104117228211097738057989605233118010811344679142246115352963974804327406685972898665917985105984021495759515779363775678267193888894215892414221004775717179645294848473126417851017378589822680934738157320649900453648050605695470945627564203301502672340452409849567290834090435333483030141163361783857312884763139007374780897362148510352188419645543184711822639368506486030736312470038454272363796236965967137757447263281953306364364860885626773600272003533992733246589984022025288890318475621809219206707092675061929926838837282966456603579755440795593490530045162799410998998648207929389998889295609148020429639593041849154557054255475737284775982732334017152518118931899138051256975498723193301209849188977639694891549599304188158870124859225710375187775031007010118857991273235147914231301882507467754986720408502913899645385955223976519271029308430500570671446988244996903847743235541542968159422003906719330672233906441876017036559476727668557355560267451323889170580261478386430554725166076259751155191253569311439233018648282391199754983908452452425386091973873476015502701283245657053990660566126802724194038201034648476726526792792455190519236740977489484574976537175693133740788387097588812884157908158227241163717833412808676924195502489001284804911958200064313292162319274960116849847844750126050060529128811485157312107397093489195573258378548629069160920448666395597560637101971403689673275297688890010932701963827519361853215333515300653784641275606428738404068527053382999888553284493153811264239080070314744722729924111013111813640610434251287908309782672319775629978533269854371675165600304253741065750777718211080506384198418008310513892691598939939323462952266406226809435155823144578708944250747318146025387409547806804547783451462185006308636222110420735517616808534571620189124990329389596779548229550487984191707112598894670963398516596869592636514403939780537562507114089995418764812945639840660959822993158564090406100806887249045382304196597113778276444833734916961589451098946946589583309433925222579173569896249884462167163636934286490535084242572181449225189330489801940158243764238584707276831627862583972234589002641094077854029671613485641492458978841371594305307830046449905065862175985354579015790739531517667405047973425704652099459226723103269403754659140150527758175734296208565584137173915092729267608967648601265815164962948282907732171136750111634164010237179401707278733088094453032984240646259493603275925994059000507945313244803263608362040211815355927486700168965538297409058165390986796185616657994338570613080451375688072865050714063993549139567532039095251825572880268034309587076141271399619759799339118787126108294752104819459844977424958279289361131612906264701704113381944018997059032895081714588257954468281253281026656283323212649498795729787822662025417100153232925343557773365197948839051126377721580743918447531790995805852116795587703854936759975493165920690771083245376355759153272703970609718510379724490669413146886904928462631115016702472730414805965144848111053464226189159949294162769769958669719054984822218301031259831454163210838186314312406835084025176688954732149841018020647775112917988091746287057415559951854843270810551456286797113340207806175029429648656895269764045408355905275882520334139661268788052028627276975573648158596135106110945151584720297228328456770915387426980853482278093135499147068898960258561451430604319776871860122691405110815925252050452227153021708149782613998445085974338944014720254046272344448645576496288949200165510463290027722792939084439814500845372301634675130917011870780483241530451010824138398391004405919001873962461831102681033978178651052241256926520268149963932872989253425771712527670609498255365746350485445913115124356336541180036906934881531360756634980695941869853212984910414489639804147355635305409500635697482697227411251543187557705681233195086755677882462864021394014022549840287934411618618823175085777769307888023092065917666859515877067136622784160862826811362782246861686854907607518483781002969135436358518192206239042607691192829828108400400956977669705236961565629823627538141567470082248112928786088282495882667028069544626266432174379429801816137145812306327505428299839313342061496663857158096240715527851174057281821209524284007161144048164240838836439390268068711226074090838957058415761452078816116886104870729318467723229406914597054545515180439608752795222311322004641479275552418173599012930959438144633390968901542637368401067366528023399172592639737043253301810876035813186456691070726799197519626910379599665994317764976981946760065050769561368152431905143243708309939651927309835724425887171412958320878946312406625283965346904983997404207045754331258495495210581097300574388375173460962911328471102656235129090309685119619071958109633930520723951008836851535325765570019537837986327353004289225801566843146628350065400492065525835638261468904336352129374714164515894158596143564643794802166706592120176577965706456051613782858989335780174648172785928296696703787016453366518353379173884427726995274529497891970726153547081500469203819259333061142537061156857613626119891170163160605702454582852610156592659834126748468611816981091662799620978886424906813182048969832153682872871783906828738341838792556221336717645229759015919204079020326438500669415165042337668436499163039644122713256272770072107120509054138901771890933196960310055621438399136941657549349026425032992990766313657401439991471094073545221570854821412954933433876292597221855419675455104073919452314373363969405877532376942279100443699294877837497884837382526475230754901047178374477408461229740699699342078674564996697138120371887074522722587768617419067207343270908534634801764025314136845525035533558697154665161164340211440374319316800092059383641689710590337433996130406662922155593779712354314034780456581884326505444053074120038038831072573097746640477477663108806346878837083480300885137151969714920957566927970892090680326143641526321485289236245536164119872987723861164591551092524480612715021347698079503984127772671121457264608839143800775346952608909912373117755736273264613347866904811029583962815257293213894271637220965183386253020217156353690937942617606749059374164171373523759801563915452850940075119534571348616761420062680639918680944641241277573218392592409819889738085336037835161640391250071508662249577106045431589253390514762836086300015853261404251902133910258771241659259883512768628220975163442822054187933617445810558366758737331988353487580640411356150223051704375628067857732616405735347252754352862026624839934001363056139367943169310719649542488437183788726223979763626113417058778419971792657025449635737281767606818928304644399327813882361581418022185176749923548178139139316204055730916260513407300711034913746160545445434569424997814822946040654503839173811397583025813915030409121131206334519034851679912403366994871017918108676869038370014562857731010452319343711015275694338067597722909118458594702100187033165199454719974847431836746583788647199320563459167716948809670711989786355774320338279740467976864519056596285486784114888265228910931192268197364336512911420652143096609676758991904560823029382460597270296290008022119338106088469859192197886513006599364098826330470782520077442193561409283426087901129373497599673625377316925456786762028536957717009132558706832954246729605367634178026886828666775038215613931815988454878552792680768861879868177921089380109381057449041622745778170718149517429904028220439955981800815131847945643552147576002638784918569758809793948664010478561577451285126896851438712532865259928095400127020059107220780246481608215872559561301229169935929004161447304716382258099780619922627370817544193131377811755265241455683020666183128128706265201802504039780960558337148339529025572707311070498387578153019606670864122952434401626898918851456135294037137260479962924038869899973108835120943790889919534515512575636041546771648308455246628513743177558568382905454535905791769667175478596247754948900417195755446156709326417379349504610132025896221630179322030657200920910126149354184383964645881707471434594906194969470235051189810369600918706832437615827868663946253383825084370406440900023634744449423167267918193099640713185258995733514052614557879061996277150042256536732005504010586657919170069648478792852336395361179214262621334467667070161482906744291376029452346943961298017392365529823648431985344448585335982023209409002810581969581083798927406872711435131676253844555887019978238962120406068942716635476325500858416361386356487906284022460570304011967813934125282481574149073221785153040123608916733909288781423479353446572761188929804551336926291195392469302108610631138649404143484768730763272246124635940497727553009893251847253366792306053716797739332066622857379705970486923767403017297865645539234568047456888511865916513254598662464376392494941821247616504593008254147271483794937304980261442066956175044142775038813673065142880033455364151121511072822797576575498014096193205054062271219197355026087491992993144765593471863957510608480525390582759090537643578784473010824562491303468993911736412035405394543743745825764091886533080878153537337280878358348214485341090763273409576338956572393688989221345872497871576712888338432383409792345847156985600804930187100609570043401630448458184340539615364683495211758986540810118498423811973649454702694011743412765461037325641498867272625111165635527318288870029215150255288608539320572709700239184932915304131015527653591964472703311009726994488227621242974221673809220347991987913850771211689777949913528838655215068350205306168026569647190797522669614378124085624349991661430586266789092033317344528591787115612181497936784900700846154558026460359919907442180576590929967823465418000504447329891410475478030556419778464149086239626915053172561253065586221440294127179359342694149779259239048853071555772165333307060793378704737739295558512185226763398864409289777888901936260439423574467703803760966951983156156339998326084433642728585644935675376405599840705244413280840797912462001612730189902374786191962792835708243538744626450237739420509092435134000783280702752134753891104492070676053496663883505074219684318788457929570776208299949146503321064013473031359288315594783129899109209488217291287227940431622932921146547910827140055292202104703377069438096878861404359781389736458211558161518925797506119249424766160514938816229275515698572143813502914210301494988340163356876098495326298529313614877073990729076632104133495825498274712568395757452301039834545400279143872932499135105390276976039321765924205999217491971049489807576979488965052937923883745554895919840495327858403477449596440558478898347710918589599447648795650710903306101190043238221541759103665021477434003044284540797183113594574423365187304863887624359300942014523797852936241418728740456828458879965566131228820460813132526838288528912882925701982981046684629928608307575541479122834149405751261332172485754813866309028985355067860124764672433728818277215834536414060096787780008023256838420105916818047787073438820268137111648057402832859091028316163436395983873065723355078149456137434286484725600617983334911352542502091227272543001762847279195058518094300837914110022800158349808548982240982664824451424067283010452491993258327211416699704737492070673590578847258666163144184162976901496603616696935073379213359516090451510527613823232468074537122130993808811686415480657220964237560910909364462918745228842380510685211103276653462538872775561126558372764768705307780253024963347068242123587888750976754677459894389807099569978262915308426871497674247341169334821567532922870082120818151760556223767035974491454376202249489124868375499450472768324219363272340129725433962529657861749102671189205844015665781306441608789365061333226516370801862823519307028906290418594083768308604834601982720839215211280290682864180458198308367775203461370064297182743504264797047535442661738770836105765142452597802850817687200965592052324156704111062766156258337898001546640019818412402370479271750541249824474017014348485947663169091993807254810208022951154998593278719420519619156743157333382513995501710603000828654757634640481900015481718603143549810000218751317707702677707324295326148658440565156570918659936711552275988765168496910304874883874778700673098187525762839562968538614673139403299020572614647053688842489438829859870644124982160243863779835352452228775309882067909287742162952856710963890927777166977414720170565284594609497009864075329872689031552565562544732538546844473176219915640692575032298054707217936405602880410682273732667061478590112263597219146432030296855654808999888501965348454643878582502698243979909927631662966281452494547472882277943144514570448174640530043044584665655285026430543711974375185686436221504552345642767390074003281169669340689706082346487587439207419813444425892575422990481426587700460258710367256945902762609958247296544708387695118647733871558383837421733583067727270815990470181525270535919273422568551262840454597482994064835971455521888180102657946890384665708407529761344507823546224318716723953456458057199364287577875604956688016312193951400122937161066687875419983983429418601037092798771687125826081944743205335196052784879692472264155131552986769637560280410189212581683485576783798149064601855490925342818236966009684712008185355795548618864011576166833198408670844601308648983510394291623417122134242562135923416204338035899597911228752236120198330991967771894509466323980000878305880053072853135689934296356544659586296228582134031173769240813064128452303659143234983655527115844029294829259442411108420317655251189741702084083698764778499655575608711993378015058205543242326427497269569149467332083043527665690423680610300241655383915178725014200526949116715600886863406632784184437824141262266663555295345383797970144133981284761117479014058436227821370266077396520968816379311333070521678481366454819133383539364553582392989664184873972056308978820001673327373880996413604103345315397554926020334184674695226878845959571220230408321512191706269676106375150373604781803200778777494867548343982098061168710819808395059694569380163325217849863862807478824117714244559377474259170659252002223811502604326858726823684643693281141783781143252590521543044400332331651123608794931575089985422440729547670790169680958439958915486494264921561752675466648422362197565287371819229774740251995838852793070442416876300321494072922571020209245963910354737169699584643518989202015913204021325400344397507669258945823567174219895845618831578970836316696048844555341185448750104237919822512507051852196936024323722791912416376128953160376088570836585432594293941886724871689250750344824983433080888758377108231691185651767934958658545160311063125593178240653629879807958841453033016073995083649930090532836916661047246095637427051936209157886822155341728317434235018124156408202060154107912227666628772242660107776450983084518504066860811010446982786549264511426657181595948811554764330384633085331866996472235879974577869312553276839379712212576343498463216059462080059202240352270309148469023877356635865638678700234031640390556829169951865654470274314461123988655906820891418347815238285865971187495929273280946339073492438041832323063721740777801265436580708226277645060750178935326124058284556598846161499940132167515942169626357646362314874216718989617473535041946658169003940200953753418635804292057360316092617653795978824669311234990377888854643759667341494687892127483230213431923813281128194839128615040882311958449561774280808121331322007280449558007170113317794503726087928784730511556142036325775859686712373337905404834186086482084664632353997758589002930252187048851046690225707646804110793203130473454232480782349876906644285578481947177414899311345475741023273645269622450901517788690053610695753485298457731679970649280288672798999802922116365321851031013156386771118951075424656414604360298369605868880917961452692395141364850328908968594067896434217264859483392017732664461638246913312227352741407412664423718311653284740773792200986847595020113576568018910410541538045027998279243197781270524293214727804878764825274922499187308396754483805935797582233926750429694057869562267366604288320502762396595581552766449994320324110405877465562241077681239212074000688581849438251458048796104019209467823659010259884208710510382110781560607095638341407487781418086135940202071178696811683240161405657474162515406425438436687466943834536856451379727246648307961334980263206532854155393681897467792530284520253979779699896191053679884308332751922591382969055766246663801604460575130548533904278113384014202514887271584893844272824958713004717875279066072386399497054833747728468384741166487766263249223233269041548403826477000399456237607207464968235595155219311163852466763486440443689910275753550447486420618182105185661088376292691273746385837403105902413746381453861623511880780295051834579209652475719303554051926963309720861764625042554269798902563840288192314772209932683373506296336506030672592060632667017673910043395623093835112562524123318668926148820911480379807076864725185801253633579980383423337225005652801149604492387060334381270485143956862855886866299755934526951403608708385309234708004484047532198117844639048024801744782706770238162596822864281391968471883723242040272604036328268619365563756478928500229606317771226452144043349685971853029519287415972176242150997183017882728410722359031552046530891370176454274530408483385937674680624030505767623838412015387921795637333046743947744785964255849783560292741541217045338320051744866357790342532154875904121007872960566407927001840718631640719975639080265937997612074438242185447480738824136197926352176730044164206426899309843414006814030560455775212242429975313991427131763988505998958583411568855693483170685987428273782051545114873520870084848376540659995437096360297388670052400898338205714268538699174903557601246682254587949776077704682446391455253078915176325132866626766725704408461587246241350515183269399698161660959130706984105015924793291144119800004682859919736779014068044811265457224768148088064098221240568813803276212923940875156241584359566083927325584815687960962824048959594446974110470139883965523396829572821768659930816675755644880710255420994516224132609975845048907738465529374136864924019030421117380499078935934537671020695971018379487330114443264354888738120143185875274039313938866303433832565296352672205710674881303321897926131691805624296295579404196891958820001635717488554068917647161549405127323509583669678339173947627160239226264062052745645550821040092237197540284907894038149026383858220516024382412843062867710953513717627515893603888069932627307810010328418432670886160030439063766038515342988642803651126238015317278100148787649227295699064946299653196583554253567581238899672226010244639888778526096562568192496793353535787463866413517772848306144495797564089617078938636857699489718726840429613436732236314455097601704950969107120210213181645568176982034228948149316459843594271870513855371484520310967617491133748175119158568211218781659077602497109395342532271186691536408356018831480132275232118694306930071993420561019077162179116137707266482917116843922394294940422751712626806073521718127308015186132523858267540139454568275884210978050554147374181507647709543078438308726984697702672039158097659027029965532365577957965225663829398294207395981003748144204453073229985546100205532870088567453196961474252542970646730710863302036380518181547107285620581623043231084308258668325574334454844503712980885866320021579105291021141861864785945605071161371642297372265218547214408027459683957859168675235718822413166846709166934881034736845859423319030696564956220019820913356695058596778679768344398488073525537735554143112913680377643374915876841796186029169898524685545166274673810062517307654026248999367808603217868130880444254398770270937966785783071239027458342525708532848838501484372257512301168246477163976812040247832389934278251454024613573328277666289037291077234651019607278576335008228848821971937791609305818803289670361949326342857514534310363486746062864652488667688886602328976077811525640726823542620193284568054273047656890216313021278043035333890392894329036916272903655066165023956251593811893075383065452073389197628402922520520909516947649612996648495046484913900230362958970120700978658218031127785973265800892518894404533647094843090916750535399109457220242394776794100377322632036502286944323981111108694537052473040868205509090884837187753879953148173775780039663392004809943351613423801976665403148805158447857146787955772731577530221502333635926659615248249028909849405101503704676120532111312530319994102191914539843478356871071891873251112343567900418805736165453735112982862213498462231002016662722209408810286273146759951946749311733100825987418369586267496066702009410323541625113060655601151715552463766631550511138918199243823405785397704788086889580549881688477185027042338006340962118212391950817525639609413258182459825056016128260624953538252162794091364838355461317452866956647662308592943250398044104443415332124761895731501995363528881255146205511010618753018437486143693373058887130892810604043431764851394337734012512154003610482008582493956389742555200979558291350417206343370180455078514562855794813995325519081092094657920265479652385302280911673809159277137581839826265845997817086011035096527594227911022598512113919379085618352257379236796626392038702581524203851078640278288262592307904468704284524586126777959100267580062777707847197264117859011003535062497421159966746055969686302080719559326499146045178611888217772938142256881951487653105220963373116634994995181515142638564581086836930243833904915531580542688411050128411023935706762527978915128394333849965416619342512764199376965032930015250070680990231036580724209628529617375622738592051595603414428265912968875991026184011627040089264926511868974531401832324673708604507442061670571402334067433892506875001530515746841634851193625317516082011536739133475480212265686844421771436527394543298729397919708850612160366562414112851083038778765269334469561664825658009214311086844542689240866284134677524997239188772816363958692506210926219466732406083928719842715234738900063052512436142950736238894644182527308191359511620416958079096566241924630371835453035069261028710071479506241873586638499206950797053813193831132798941861874803639276931595363931890388451991246553115597840510055115365541932004911205962979979779275714956905025384587501319416428646051201416339574386227274956036383189815784988296656029495490959776853829224982109591847334933026612687360519503586780270324176081139240475213040550419432731943870262720962404083106450014114535184410119478297334252705505023271191926862958434205375619700325174956214400894163053047351107971273690981779239193087070630065278460481749755219840834807063280291497651806639533159551521536358781222911304121848193848278789390132912660136960425132787015779329140558690832629791029165155596743717910108985986536534387722358123723453175725422107787042300681228154251680285928113782112447703435733298469296706166892817374886710501162085272362352035968343711669060148319941056785980645708672267776386890855868579400697850011684067008844015538759048426407241636769549352802376628456898298943547826579234237866055070972472614840650208844930998580919616145667879160165735549488187664266393245570337993935463385242318332677631927541603506877662465326775763879101724339867044016087143220573204100180547183880624876747006885083751870361613646610005424663258320063790659114095017962568289610709997683391385221608601802756297351562965592794216532443031902435259964051150210501157436507528386332026687764126672528357491778584326013384913337817809566228378372073315343437678450067486721316196912435228745679661556507333638149543057677320084838583963683295848094849106767132854483653949856510312182371584932982974936657298501235446682049721240159166582249854152800716887634044916773387837558836023326362407547518165305046570299958802047309178797576487876260189251367481024303248752087917373266705561399438322600563328476686602259973876838028261497896447886008438686053188559002095975720246079999192043504834626388961373078749279682550059564462049234948266826694089299906367925827821952766404102891650031368655838744694587154582979971133745736582887821153492058653757036120979470412224599751134538214110401045960895928001212128340077886762439151442577554732165442115402510037745244221365158944243074734590554152435605817450420067730201097916293858996067985739964914275505044908752037829654899564843989429641947433492020518939775268907254694827875763581653425949198461838085343011753657120534941002107017021657408308048381542687134977835388462235781981142966684504310820737777142362266787839250302739489887590066931267344209329827969113073413421875966401083385770342084254788607047915709454380663059315343984550072278569805956888861515670472675077738452879588366299681336741806206860492666884435984786258347375916960651011854657064386709400597599011971250533798989209085999479041243398365991628050543444563775335927239450696373499207246050917274038755734610006116448649545747251005978414144793785456005259176717670243294151946003362819251123830002653212865504044106564366775259074734291192843498850108614887836787001745535661563877200964178947843832014023072805787419580488267011358311105408240055510677822226981522102588645969778451593516644225897629974767750308415545834974592461106381118962439866256521074173994513900101893406382083386173652177624884012393138954953392818307385169857434201781015677660433225697778447306023756427100292951221478549733541587150203660282439453258172778993585184936225723081967342442491952207975791597279311455695296842842089207314063430381438000866820912343720263688883010501781292729423467647543582197219810880028374056432269393816439559721597624974903969996429819862069445321687269287229849396517390381206083395042571974276183498352005835630771456793654073902475318511119381293035797815658910932910073404162162888986347225577726618256636629877084721325944103441308963532495764381549370022940459056762838849824452944982506256674821308320949924099540641135274327978017241975352694029337872582677667623476077133797293458907117203111591721049554895092920306822638923297480358018037493682764120180924101620705238344958176339879401191815023115328319722222819161917836748209901360171578785465238469168005346855263868426867590631216657177488686264482511257096616527322602941543995150052478371650371069192838450167007742061724915752725346619925466508695000202129782519749117729613092690586622159875943902946563249816447682445283864975272652557773660505133267127796406772596136928705887830272911096928737275828864499497900780727459882154030672000061206254750318164080835920005092651501180602485604156854068266857833352194625739098575192873492890413457484889463917570838563467360815540044870484448091783329573914631609808729644174180407621344750276875999238638860694689002576868254660518073173502190926524161676548018227320647462277662354085529211111413232781993153712101329725399437470969594105563453575561901429225611208755340555989478512139132516162299497945504357215490334353424953430027644748483834236981600501567646200530239854880429791813331723536268534854203984268038571361216468856182073162761033976547573356998408600074202360314611355154512610626018150666079058531990753091490375244815412151677282070733190594889163952539323193820128524911704199355132931574202846471919328383107242560544429560478890767111647604808433113882262415617806537996282038945295370118077917733704090247667483051286185849355285266243895129146601616284538763232144379602199206473301347818660752943918393161320731004447699956633433706251583463025495956844741142148158510515279428551603738652687093022648433423433515876717758739608143983872572722160279883451960745154504087750840406984855981834507760809366850957573547906226790896420750339988825711060566815054902272457372117825910718169984918758816643305319080921883123368333977713958921238528759295556517703512374795764606346476056625521238001775390446402775453745514785130257332332652412285914444859045330580126665405795391437322063120246100294095882198122936265959671605853599461556059055412316942831945196402243801466404403420192526918390425344808179077033674375327223267010765559574273878092687476235484636008444082662668546485975451913502886440612737075475351103560368386088290965125976151265952894679349659717170967246155947618745574712183024560277633097303096176123871873697334147126666306159033580592824729963434864328366820391932349208973149433326018953628116995175793713578450151118333302671923508936376557155160008122264992923541305630996034012440005229059483135353608193819884773210362226398256410167423027860807336300473245294136291749782703391356414818676116728746099463670488096973968604054211070543445222837620664469426741093037182932909708725134266459624734033113194743175650136877115889053363972114469732870094894497709971058167803288192351589675340397702740023673197435281572394166515840263876904847628014416858630809786182853072797232930785878849704891313517688666521930805743428347858159601844767270390967340185740549827126001262550611195350786891975200740126737280022010822209479874147206076602841181312875101926458304688443397075134238994315300090251824010599523188633673701067018436262170616960013187653139250358937197584159296427377511377916225579819573544384087419323425365806966175531651098536048989743191868237806547696431501971461889972045567299274572242103269514170300853897201903557498373754548116938652567318656459861257155006416338424996982166617595536182547934735958613072900755223611941802382362404567794261807051566816217631592202229384540101927709373728014896345784394614160802908614741328884921891391525264572650781712522867010242155646430166861155643186541276098941819312526269427654680303748355170452286423063038770978838523605500944916934059382244059758610440194656806988020695147723031412516198313525061541959351958929363198378425403216555544117915320650910790940447655494008763149856105291670412159111252263905075948660250196956654339690736969323970773962964781147791342043431752195273806742910553715080747526557612339453972957130718898098115068594400989236172062963000779671777400776406041250041385923961913719934276319028524180979228720674246289166359502226685189653297651834701130760954029986068612831237690036222920858345697670173520092080081516588360946198778884802089447474823274294773835813957169731095454057549903180428229270057592030427592813567844901388694002892328667506638090825475566707248252106599525141757962835057508536243454862232120198460923013911857481060939963333096574372665524691597584125506419070162772452215246300932153418754603952774123150216257149684268248122825927182430515037766380398000842591204314181581906594642856019114126813045753213113542578924184177347026425155548421351269807244413978600366705096736788774509555322571785848089344519754448375078284322355103504761854891401051816098745467081899321698154763730011899444721167992113853021989910350751955092961521007970440216824091410641030652583395103320508655133502464606552046039803761894146194480702788724333443440799821339088637192747152959353520004944298014117512552197151461305879563070088473953452775095619504151288729917636591764725498968422549259948482507916798860938023416392307922380596085927876173150851884325614045431878823180308012829113811902282321946524119314219683091259350376286747915455653838096367731628817893994961842810241668605560260614954419158705494957043377497481347388733755240606549213711749216188233666188902813595662025309347188440986182418628894909131880209567972978574578907904764087188631465518193158820128479118588505841205385816415968670608951048295311675889799285952770608231197368675018372648795828803220915458832001746785160282891809939171500716437618408035196342427625452266517856206437259672833050635364806573500586731961028946688830171755685717777430534647296368671946031940578102969678725723578779564590731413932750077373980334431033750382473093559076185199755706826200464492914997022567519457408726197619343486676891707222639610805499892311072322537995065726504903412304385402786587326694618152554166002514270500754112392743443182238793735859341763778201866707280484371281623733736195848630519364122607441186566755861562548189133021652195289197413892622745598864067937035095332443453666416469361091984840847933211908489812034681727287082653226957066373835402107218462897845201861213986416918416734717883601365197816904009881025361879702352836281483388618656910293224816348516876366556443887337055680919842968997177567137540181737372677859312042598627969714019050174846272148037866973512031679993187111826724988643720414264120248379100828364091144699706173116594431119012628122076702051577014285474231502066617279332179069147813839759328408233406960769740390233150674105404189659342244633648441521134636575533200199369503036689761995317169614436879976170718249600582467907831614383555598401604812978391687883417349932143842638385065311092056634520223621255851345745464543182593584379629173343272557542925969177223409185304134776784866819457566102439849336326990097224070956488134981416906848821497420141408413286612108164715298933884956491025400161471715018388158963250206830815184452668358160150353675441859708780261873962772325266426201649685048462348573518131328475657789294895475457925357954596936386569621907687710223784074837317024308879732401639181060399555375112965447918113535588824487491579471606816365025882161934180954062536766322647720369702642295442750752211957895682972847631283936152315443830590830511394937709817427954596903555653284090521207283423028541643794798240313425988915271340416621483077064384212998000942857488766573955750336709027038924209990284423859623944962543371682592810904468626088817638443770878249689861576763634312555005171502992321508689781402910737315479833265506604877989437705615295155514460209724915891240939565260285603846350968769583551002322336689685884817716399622058636002598597484696189725172623926598920803199087576376165894371198021230319277169016035074565588935267391919526189285156060048396711407004352170932710962517996951103292200712042938101761912075623130727798784769463837959273847172484495014864837367936259628534413050663635712265804508589424574982656488134379011235545360320857562636017169611745041432311751721536479310066449557034192661128047661312262130721207084374817624688270548460928148838482350976728259955488549575610864597004520548388451225843262411904591347910008721577556388580226035241750603214663723756889028711247149485059091853838218526250125796819775798831085046307701807748768924453876354711922445344942226989556670959417780442825765425947496250150762026417154638720063915531553150082342690827577531359214747097960970440824292093046799797428661358705918092057338045947048599162000005150867082830987297548628322176713272565143877129499454927556680229590252396855264304729994571298656042013736298601855658510216691565334258411392279398584980760703664912659939608697438419059823819797596183107831671987174084596396547188159171975567488999439569883575007213131630505827706286645908381779011296514190606433133107865951001623483142108771880184049205883780523819581239366596251447261050752387985654917608465489868458306078903750518318331470124321966144112398954149545752898975848612961835337549989349952575139379076747980193658229852262339445027916867525230559410755628234810596784898387130848346610943657427230940861970576017859423981137811373681166160083846480878620603033498512507156073871556971513947540108332117127382148998602324543271591026641854590862057046537326880923534453067083362322584258429697568915703031249017913471480337036788859916173588816203025592323197364108448284988008211016383312432831343289354910762737835245097294026256241228956699606531111092413005904261402978598663480670205682335797205881568870530365097050155884875244460656364175138388387954471399779501548168019150063998197848722123456871940658863935599994172475152544567604502367814884860107131209418688512194920673312313868198605720465305093459706710523849362194156132125894785076215563796274387401021604029362551313174226392914391452072552617412443254580453337581892977202769939635810544357048118942162830584729835096181034310816676614484061604181170330064847276486244385211826692930386209108093703322501658448189688523373759168770817002287897974370944780791362606444315443108199469972306671428427044784612796823773883041171177391294316654221869923724886076611255945649836072437646063310649042293712895623772797974210732172755981977721744628948443030673982717178067367229273386047810342160941824797599984479207261597504711092109389265565467954915686290762734518988990909597262369878947256637663143976483198228735884425345592002095680539939845412442068766720419025439459134988383839651430090236284715381404966608536832877627201065441555249092848474379925620767499750068442113868845441649787684026058616207813242591726820929975339232383508713460880245013725601109810717450446497187977065121011055560616808557208478515604742255857542432902829065880485472305300838154352481544432956292950225312701892035642309896723577633280887298931597272759999737970548037742181623561911756113841224393868845804794695383784748048543290791822037548056562506343323086162148387877078819629572399929947742039016989444435132289530988829740760817711779495516862050172626793111676195599171238771032752272422257627814250654526348764863417487139301944450415568240360476729538607188719057172609425265504014294400314712318928740984422057693795919542020372606242325126372043929872161265873562198039479726205885979347413876427668507366240229250706208246036891179495957070240224090293399503494546197219586988195311495759105165428474742296903772393307995322913452305343819655549675419759706112960698637067713888735331963650816748392740058462267591773672514387642312721329466163243663260130705527143390170050071353486940910236319132011438308804977636810799528781975535873816265298582685193434183954399861388021991441175455605185752662161686116498489171064705782932395388681851911693613083272529341136566494919492426763388385691894579524621276575790377838352114906093715491015602126208730700469429245612987171251893119578098810469214752473518924904076272801038476318580212224685844027482190042338413469977412051769541305803473324718429786550659386977694506324850732063816648318905437238063551476662300553210474924772553715252517251666892005497944584236511320983842329127046738338120236105622488477552637123561121101821052835291410180644977973776287449613945500295577008337256143677573472153610012138163998277502139940417654091318415195518369930973539451196046098383080459126002352332381557012959056499852037560312891678717563359510503136758443962162370883083313683900066792012928460772006922051585526419218216386188668026653314260107013958965296938591040795648587113101114614382128339234137694002365608512804386234801466769778155405038708629799578503322047429802419084833788017300880669278268434744388299947299982813342808057163567316235402240110519938034054980749668411086281258018142120288337232154136245214402440917103030487761293769020813079948755627127803098323145195485022537835802355883486879207403410883411623902129611272098657909831834814234406657298180349141534815023694443811706729607747817946394205731564242121964884834823020556844745602310057632520491918481282019122814990215405592296602409847199146609677033159765541777121134614270061414241682229844308738509116579348248274469115611530065805801206059258977375278933986194593637677577223581622147142244268351113425634406984953232922170134522428558238016682331489044988357305937197399699351250645966165199386544596648042803549892022783799848627530415780304323112471170131598002240705341447254003054974127277769134521476398778555248661679330172301166109660293900658747522800064060315353267189726826410346557311666051902041841451537835923603087160409263826244775326742071818618270901883943811049290052829013011138974218411005440564666147070674875136185015830688013571598763062506407198999538919183869381929699859991932201921118628382419349584863309699706895660338563281051337406461294466427695027453828154402434280483743282676988978378469202520668605348410931444979660987983146151068588658252010688765980544658758298671885700343128174868808166520788399118278898104288322011348120357909347567576720414153975873176909133755153017575451716971196634838624362868193571489724015353962677160969855083964977063614334458991455513305374640784289322863487122971575495161302764268980851959436247042202429254255037623495987363956424427246357139856441613345173297415784509814277885823909888314781153942593491275603996115793486221090456860275996043660700534934212744198088209363481317257156445653957510913653388344089952978131562845689324510439267017764226983252882438229489709896558932289842739858672969698954765662677337853507070335339715933528280924432174130603064672962324715274618980926586728712465234133558149885844159816172760105077578510159799051603434366362023901241840261732458928889933055258655489204464664549963380108311761576555893665454587335444985933006304132065525381136522700211418986037238262139897044648156641601079837945350901210104881862829300242887111602187484222860580123269489652229572773844389107653532098763863670628797920289273617938563270901638446798912236867534477061725397408850501094463131797376946182814300436440931628378297409175990212822852824908657103469595039639683111406709744653036159646134195218741973299099864489914176628027831208141622681627072241215647782461430654463742955827987287887732383373098116811811099000481263060584625651706341447064792840334997611805693674178320004873878320762781546264448181280264491707588606386609207735340932198388580067418166746179513469801621526286328213245931916443378632593486735249843938582126484540980562127904533865055497209794637082500618266143669819380591455580639092228918401660387377159231618430456113160034243901067493570606673430311438508365182838309304268148402512271543947651866873949364811585173285900981690868988002235566277945347728500655914643707423776955011279092103139658583958965602902455345427442002474003792522323546187439419007673950298801846150490771278358388938157898724523867217935099714622967721579287726586630251536628517866468284580090162776530880646098115015739959540360078013133928447166400352028933789941510476208622653737894475091612840193327230331158362112254120909193170466924954495656609789600662620615958936268791502549650592213408960778870954201391283451064173076861973158952924246957647524047738360367410062303935802475621709271602016390024134477767260474493125884052975963167044320074651566854230708275299207655698997176349403175031765805526112743484143744042319392569531613794473887502577154071473381460451295819890067095461609260904806548703504428782718736707369455974243883894187264146856106513096013197150200352781650315218999621706440972713725201973429044566693399526329968960935612249298519349035545518476462591236669395247563565607716946409600089887583239568470239075672546762544423974099107102604143798998339235873273370728176963238957911863351622366846969236943897759317618777037271399816966182594507283688068562229342321659111947242640396400500935768448472418812288058535650142609004766942664589879285692777224386127104567358181578083548382015788170745899206378318880788510614189336493117026339953184646318592618339145170477282866741079619338244633968460514246105030376137828028648170901116809495398941566500837750424806849081384212165370805070679841583477678834432587641610011995432937609636714695949577643851476953890792440691495969775327460303015185603549267236805208077247595233074272746925897737248407743930546842841209143622586917010322559336205929796993581785986842027990860327564910069014042511399232314199305193744113234547958764985506651720605563725568381113200896930024506050821347454791583224320900893452336778076663490253550885459099244656776762158565328007926376975286547494498072656721647859418201120548174991666417370175017255618202563382419197447759700350444504119985137246842230136804461838857466935261960004762715590656905445902026877617818176759479579404794661068586926562477845564748435271358719275328846635507022598845614097447099270887624715170157481893999315474645196670773451227884159001036665439851032473400525231313215400798873499053671144730336809227846896563777251449769141350810595230100967224137117537057569204585111394758451046390890339335063878998509460059147982009908478803208184067740783886475318759441761498016742484977477948776170686453261291040828792164759102059593987717719187765515891621839829162564219797520487684918480135785827172723465134195796134770136346617344681922436685615890292491931196292558582380412258754299165530490060011756709004736626439238319505209802826044818919130336500074964737880547902917726889380037859606388400777792181163335414247888538363268769265470974330032374591553470047155968005383453335423451302092046695604466076712255608884203732017768309440918104565427560109924351820205186021186077651711461506114850773301639839282431138666289897895342874044457501190428334240364643816889622879757303698817557403583582740563657335981254234036716555205453377870502977909549680656699964259989635680374991523108604807394465563536982230685251114194451750379936309128354733186695754697029809455737596350991798070770609904267612792458500486705409468155774341619138523283006228183284831967889112295126757831076443564571706913507474729789711096757815473274745581062439995015802987970716600865398500129265554258146368906020090414412222118597415504932899658383190890260207608723141489039604817357333481187284707839241078831427042990764939372742793248986879577911728481145734989969068762241303267914443101213908309331140333355878693520777251321035784368484795127514930195712147796949677430472180551589814298140302241145798027425165517543364228355843603681957789058247834876093614330997224558123994982138282334564164577776041718013566953019635780343969211970169222197882687425084807949735711202947103704893157296532712633764188683772045604819012180474008049534327020799060377694443362756415309002400860771281929918477609929301643491519851757636939781403262874239609813446110531611458346189417124654660375439561615019557446664974557844258220196303702694121458996462347632150147598040717396989371422010214504615089325891098787933621388621970470502537658780293669427195718130927655316511692110171426862276946227899374825272128651564324988579147431058364079788772983692933441862559078343840085260827147191840271354519627642085311951804971428612086615800773415497820113025705047591178907731122107842356084681700572306867158762933437461423904052009140338903689695555920849349158294426736468761447885352770468701899557107202440720638679359534537845774528426894154811863260128670635315016835269041854806528231927924972511065733649094886081159088740985958760059310590033491400325130973523173612574901327753702884693012825974388059437311942459928318838325439582023278782366012308314441247572022353545501946269179077375300714510492950201337060864023400437766118425237982040168653313375947568493465116199225955881603140532196004096178178890434968868640350261237077510278738972268680025209851297368944458997252729924913216979301314018238099220831128077103676765164252113805008139635826320336832525848799709033604575410685008434151883509837601845030536186052639365603224153941231544501087450774043202448874275378150632442324463170030518149467676904391102865297009523277693083571750679134721785071823106533650595183643087655971146945148645930392998960777414340033497125870101816934383033012693283453326255802374665933517664238052486545849141614755841846129384597205196633610838526098086515104847579855389862948136261070598918059183848938866554904230290950325302996914461329258822311579052814896121282926075727234240729814551637918138823705516128721505048504738733690953362623663068117504405166272316763715950809269972846961422802454178343767185107072705316884210453901184816078353329275376877761308723464454659457394091149558163934685417656641344686857191755633390860808361445866356817221678827252355282553615073139931640579265857468204332199201140193767193313927016720313569175978706901478092767875727448537264958755099295124465084399969198625024057394808700212402747184788186984127757198959865946049474340664341633724044377208623712493896717047960878308224701011348649736473807046240014958211656285019293975747665288687405488463898152761773640382636199239693466892090807953646496096881115133043907923086594066648901300205782816414115496565102810440615760900360833243837061918442515560863432925496726652117436977483111214433227734017122418737331655780895928264025357302390680920023006531457280276013760784070165377820286522143491388938282783860544977490884387742282580841272092404401539652254064618229615304991138124762317165094152490707254066015278436476735135724680100786709605953263662507616138346066719472186398004570740723909308580995990874894782035797055645321787701242614565012143829043717494455622030727491225515425059067545064823824052822444925326796422200865457942350297013627544965035263685021755718608419637436639767111168201328990683560858769968672180689111639099690560686148367012693046431161501091299609537886990398638041889060860264232298993127535919129150990483533014872817057412899957562369111477314111065438300338826269916911628045194574340654704774140966237433639885372503793430058102072251311756755127519011921365104232405519850287887754171451736863012884559316307223065628386980078564158975114995995483555534252821829590890266744265753270269316472709481943451181842373524440017801791496525992900738046835500687642899834673491317528114359914815051205602164338708481964626539531764032183314554449443910446282281725667218611653543151535085365579701739951392665622826852754641243378126930493043867500845088048549554637570232013482775566558298992380274593380622859215413663542020540158352438599628593673504564497758008316888605165056012506247038690578459954746140692781815234863765232625471659068507582186449668378289542315196027276535398511404066155906684766808489882632999089737021780459038461007014574048422423462696880752027509282833651714638359550505141194047910167611959898818869426687899642033105300054555930141661111066648384768094251451717444891031266293049653208306639750844559584844164455516473330819636816108947402891139092049088282171602765003827389798588487247729811685390579630484452797045440211136311496833233605860699460718191565445742736755142132705575641067316328592880085386945960527380728124958357480262161604486475972055822597298572678404481690901243245939976686478135701112844379089403664738121620739614953815031710428520238545209467922357562338545589315750800194690652164835978370810908039734897711086943231898057399646901538153982345147064271374695269147951712783527373377633817929874196948459789465210116073394254401955209429903635785743477207909413894952676650352132014324726399990996654848729896485923372306402861721903182893776933450494552781112118523862276215814533861954514487479107129745065836497927020880494382145124488474475081039985568669803496054290631524861337152628913398158046519454910513494442103641689744389294996868172093485873705311906006119709418828850996343579047575855011202927472126080767697532689245793108683960186475609639013594501512349276303803479356404927594381264655046152147234602232725902626702931142581116469977560386691465111190450395517185174433933161528286238205619042521637477117182996878733678742150884275326740282665372147279986629125195349613109431683889718543731740346305473603431862595487527397008603527963882526094571204088394006821913003221784179180435024752835606590856647345105409190536618480226379776373686093046732942324508788524603765161672930245530093988837508281561121180272630704842060230938391068068358909412312072492869968937625880173343160935460944861771284150559020108596545827477806661029065964480082680841366624862118300817295807313800015234809676979784947091705377993826861827314579888336184181579742251926107022017886113513115539065749107036005760434022059756230880373549674561503329663737397233652585232412146996843095942720580528708149820213231563086325161234909796467719637682574082523074962896262996116342393414178282453378926139669707518567005224972324976350367246243649641392684859255211605018633292721875942681292766423590618559638248233125642844861405440308136278085372608048717305776419841435874900475892577911583972040484306640166434032477105955337664340145195431446574029744156579351076029405921649041180266527108883771084224734472850043421760595112361755998186968610288110950460731642227693881594288699196557877583973215859666698570347766132305265510309968078386516012560534898658624592474133580936268717888733921407631921890026449694502751193735129593310865291018071525427584277661112945025449513541921938533044407525651328972141102173150037232574314389799514844453032428105919814289580637761100868431908547864208643981726391423111254911439210752631814213300213458909259706207348477268507814420129191955922137056158699838095364978094331412262788069842619666759759976741855562467133348753443529752928659225867609829707287952880837555993079825402122900003540332096381598761430772533462167347220041214122968325460893776752657776182917584938012574725848571700920048409449683410723291815615052503431011474170478053969799447340328188642030171511171651030134612592658153924760611262051344997777661734891399657179643074944436948331009542313598409536947054417093312555753523051384787194837174680616563632827063242519095629268234855069010686374282186605571694493553582378950997294938116989382977930537857780302534604153995145063823104116254688032292872903530060498211620422830746530887360224255798575471163252310666972938264128332403542778641964077837705371749790487625906564318457873321817646437355176362728325947431855120935023576335902816934432896933076388505956206319996573219026780383569481767728102806093603075446016115639267690977649820696040137215234527901918454246554767015433333815975402498451588114956327511611808368741383321621438103847231410904834344769923299984778592768764799027810126498966294033254951385636986940716408508067318253974616859326745955293494063236816827896574219124548718159834229452145484393332232256228072764072072003533546159576204374440830328647201703277830135852080275747081719679552558675305866623266951702637730600992933881003260549833467134302987447316090468524432891439681220289589561882154607062055015709743060634003774587845453210352675670361297024365243919329062155449914345099054935597661720248378731139817613060867354572586411639942138031932710060073001817321082639259020557862166125675450297771755364488091432594955890383578291950797904578695993964749674755562585555936786374623177786087285058051279046440288778656756551250403526487482432413135334357352660424638166416645260462325105246490383627170340343489837274692336626237956804087134082754542661279945875624039457555785409362828518356013845479138710718852384524499702566090794506734553229172435728381944338608361454818452005336779401855064891445234125327888752706180037081249353179551474708819257597859428608573875556017928798252224808364361989163738530862254255928885881192014901691519631958020075433785332377703471106577624967740888285536761076709101620175635773680166294725607478630576224541398075592446338806149945094456372258477664570066233948544510169667301939252924546954320427325571904205468225140168791346105394088423143885695004890833976873047891138219455587337420014010970544022301401037417939901446718117194008555010043168666826994661583601226843038410345377483455720755068164143328039809447658683474930978629610703922947274204145541550775551355264188289842393121040208965288395093823171838512841872207130047571123930891956676922238848306360105527330320124639624062450461143129805302894495384989481548511526424989948091039392374946687927491106613529735299742139692773311407977997642019624597574505823108386794775030472371256646872057819495101595768752137067465712282068162348707216743013715224361785428037115254258603753048646139933642506552161705919204072611474579018601087109340988429285352900586238969795450879057279254957274229087430269267184369668979398481520654485578551441768008509132057421317457245285293330754770276866961098584540031687001849627186528917725588920608079236219076003831747981959733560668307747748408097710160891418992702824723850536150788206337496684700072685182225951398935451726517186981571035034848515579821652452308272768168514027154595639713201482939487336926638848772437730629094412204171998940224132215230911922010384732728078825823116503073045517306887038077051003641738158256634561065610960505158561637199831318031125383833508412716697338517806425067070914499580482139255177164113886662617602280734690640814732212623936555520422560201182103106321854871029132997099924422480533130494642357996634356912500400788600360414920337006124071936882046124144835854006906806222669155281001779487249545783852178033519167598106807291818955490076015797869824496575110781072493804473495286267681477006340419156403335361288174503739423454195235860730050582247840209993080460274346631483174338378313120625639351462382247438368193887486872527103538103666169811829326159834886018178889771682456205518486046915933371288536516111888412788765718359535962268560596264217476774618387379683372650858998137103664821345795310079819557912570596648619308357148338325806844815679034490932960629185367777795916596216661680500119548335874000297813986317239274827214447144975188972804820403304002921287468144778290639694599554251054251333144697788415537187114011610508042075035297407929400720251291004126546288502571310844018812889345937812852285713393995626222315027856037801229301013847378659091272381658003159338888355113432402382762752315700814535577953827047100746677010294242805245321722177115962474804681030532463435279791695698040059080366366829889548784478533974648122533081152685214968698240363972142847764398350506960684609989426545737898938112716919306194864353206340266231571618702807446074161244938508173245115330671389998523776354007488393647219331705730765098085611055763168496488450345985235536192803152516592192000724655063395486399671847056053814883858299569535925463814981783041039175732043732746809682668419625184897766489667035704001975686775540182293527496751913010969974310325971130991337725787311411948085376122717272075865614971984652505200264743304593702757422634095242473311460960393340619507167504647440170819797714308358562430227522691313218081266771887391435193091571407330605753334363327978259689921246401056086022891298201707251542893328026057671103769766648483729350511679800552047823085144021631218945424033264913969290944779115251603997581787490950267189672328097160668652421216264348803294469587911173194347210220591050630128733196392388959581980214271128858010337657952261305769465494163841456044353691950000919519703420579023029707904679522379620359709232409107668539869846245479214922126647253042059562677143979773046468894675556723621764417488969164122250210430867237276648902288880387561145165246266569955891455821246440351428941612836403448430050561397910928851011332723808192950117950426372920471087678676431379884406916181985140663405427860880624735083601109526630661752631732607195246147954335977382535473269238850643991209117181051286378149843336552531760237375413839906702718035869465017676570677100724992479871873271596254450888000156129092923532925739507072467699248802089020500377476232603683535541295327646008356043507337042305727215308177873294946803513912048727465425882210384755188134271321714512336140734193739136809242905524103829345045822560010900460355449018831665712787218531326494439392136143714804608186893042296735798494276612851126785715695302128112044397384416056883460777752737388507707876717795209805335012279440549028656189338140853261082132726128475839190290974286707760841114511139900210445395833211444226142032513231222609722396398654740449710216643781033564274799907283773401681123845047499223400868921775381220602700545198974564389219128384263670101298962063796993605323030163848384137843709173591330926170158150911642707231531529772437813865879249660515820070881996906675341446098980316024153587265842119567086825966409652515682761187969478856889422860847457067091821113631396033952596532505576874607186803828268479712289069195545735359766011697684849951403197478404157329616502089982258322754433085518460308979331220729475851131421173438714326773815530099876323783991351231350013356256139971506037588761634324539196753283269652559435888344319196944633393176415240951929560000746490143900059731048814319766618596099300993023207681504507259917911944097745995576861002481441875083728883179229609891074887624270618336978874979264424466408412083655652378394843921382638163547063563147403122241504712958644225316359554505099890087480336011664163035715546673844856035338164769853071178179889266412128307166181834901178544345687786924419382621617311454305460422566794542260994086797938606962131957613310896144211090699333702799989425755631393562282299289445345533212936167147025332834130218210011065193759200579446064563451988407874265947500705021763290574667806450504469298008780432455614485389783175020560250709700274803908467302375864534934340404772217087040837955080804333114707902141571513505393674480780604449343794641815768213957304498031628698658865325044886065943971825748839373751879978405899326874755567976940461110710360370846748399452451487662007663774254060988289722634782788774080292213298542518384682937138780114581541291490959369268637651524615190491754323270194743131551518563044755974497473876110493913288629027275020250113563152988017963888346945440002816231484344848859153590719917645272494552555541876946502961618745732920929475635091628060589536300574799311163775624614983661865375721133889368456637254647592552272316971769177846339336589301173911602906915436537694381008592900137995013288865492869875476518424315814383089188413006361120864929381165608887184144022912077154726992348594423443748582164067220959249290414094341470495232639376096673927674248182678412678102622867748638810114174566909295468196407925964251768322412506904676583744113934201678487478749990940823061312694016704452550827037496787926310860275172148005783605656812712419135953916544223064663204758542597161598751570967236594222543319096164959338411678562080607121038348810230820185555893893537564140084792780315283571154025444871264471630759400242419642444236568829713953269771015317307176973537527389615421004605758250557215931173990785493876665638523222600031390236993809867928605695962431140079636723687182262947094424454820035345818178494648696715091802171225904466532730600502445689975349519151051219818322077133221304403089888142805460134859902126414452450593522793711985998357730265289916713034136157176238541422429763372393398281374951797640289621923446494312642830740045685316549016303749248464405796148781999438429167596047875642623973667359900846772021346202876554084061013878272748477588468881981206631669473094094597457993489602493523425516672543645578561355605160989775067197271484578059822060992322796929165486175794175236333500060985431047060355061384290848646966976822168968939514566667518454934672883792905275474650268681823304384588771688751506474485721463591051739576776604989838596312136554806395232834321061088092850533766754676827168095801926895787771160556036822829837121527511189028684269358821900000583489544294126424864981224612795844472808363236597961492036154441605632533145221577495486679097272292213818532048792807482563977407652540587241396478003612484173341411043338735680010198375771525306433341164214520393500354768378900656812818043275235974554858645406173721551315042320174547496307344686324564058203478564762654773755622255854939408201783328275036002237328363374970713593452470952193141099973018339648098566800452968458651341044273694803588039689668248641206677179161884062119090138925375127697910556828483677827700633975658305849277631056763285284116303743772272331076203123027652253135671791872830908767574029253707080708271599620603622437043144585888633903598258093132704174606932014173798386526178550682319937354055138102272230189956447726054160110974975849848284487487785672593955980975216320920749508146351327154369369995438373263946166909944445673147490216278201757057717723371968376140525919627788079816196425146049025002716806972161995663582604295666142865175018919971377711075434897556775814111413613865023310067856641778745336818339861355615185942514664340994833037719267548841322844710402600631591329378284753179776465048412847257451024507950333341733642785118570943130981126821965237927799669201266162175436876419168499987484838611623179895168895802880349363209889504625805110214875694391215690945578583628648789585619811058023500898261855331101080933423545149174664411443387990467630868631478163965859682621075946920315796886384337172271540971268150726277372634872895177196326798637799016029819415082938095836436835433415531830697641611910311388573538673591434832500824226190409862974920489741580634479808509645677364551368102534744363052204335592241667132456771155150786492708457553089959967278166760334919278747387768617632476005994284292572562086849614270858199603569811073251849012779496573310529436916448919821288250935551744172774791589117412581927103372939065778760311707287197678279324333099283680012045883300732400950379064876280971353031907220487861277462385496276853842333867025776275632083462744583158677189023535201271706454338140423119031897059982048246704414922503550027623933920138019899307973187441737203024484205195886758800886254818630170834744554214572001184175404015839179158374852309420923036469041746890009862675962370741009790949070638668154552120665085951261684430756216246749509948207311464870063601856260342907049442639239576513049888588000772567538317919802277076183676609026840548489246710523920111007054853586622275629516740822449642057729431420602211398567678247574598518179945736333014346682552224816257312869376676952444184714137209256890128349474845041975924477931679633945858362881638018944793177498419823247856463524290031915330805250660002221968217381349462584858186284310179957721730855530651905531472593866196742665206873953761846130859448867428509147651254019356914336558575961995752906250053157112361311553401044462874117949067647934212019426866549007902045725366885882043647696558567154924862562019490810691305093947230969780258923776422845311738819133353343333294602257671782331379385001595929355999614818605542842473973356198668956964118732761275743571217722771781861465049179202612978502365678915533913201907483953942092251487626401050393860197923018507606287113778733972232823546830717375416845803586473244189564727899306447402185944085560018286363078691101378905513208376621311052940075608580483642361328132717158597802096273616268455265557612349956063481952279795649749090554337280911338049954025998560007929178456606347010355907157281677514614837413140218584880983129643404300744943740161562307171504343792629457056667441929047193500698197332073516372691757673515491209746939540445558684205212047916300324575542180485122168430505470366496889779877076151770795573948470437231009883074977971419497457427366349696696185336526528474739314383869029382110507344585583179266861236931525140662478431235243656933760618929804465870682376887296642588508728190954529183876763743411498685774832810402251776664031672534252867932964567068596629662737826168809229638452557323776654431261319792835463941666131757931637183225279621376151612065067520999713615285011165554275449311169943458680582755391169353813630197722328883363953504696515533253473184237905820964927183013960711242178171500198927749382447296844757741945705326077820647035127724327648831017113291272364681008241079703473040268108373077452074340493587269476892918603776884463913635387040052246992508270694137545521914707552367979869045482272171660161262737544294434245118162816928146872906065874465752474727879034132356197754795540467045357437837073678911523817072804308148496735496553577534117951417358692024498038358514199235994369436527718712231963851205655821317548481676367077465048934222179121621531078064000360122228622528215956950907180861646838018088677209555522108427611541379344832795034208284194833256584666634176790562272575893234001167484355854746119306804425381644673224167149444648063342325142417661133143092170296771100021209478772261951556056535090092958123600738548838270629776901143429558455288181455327997103514220605014591609409580798853493603598900666974766717630567756242980699386547121153070653487608100253863088131152022624301977040206249719856920649771666923848355185857899863858427827698626976851655355491978494514760656914024784407756532274199053048421323408295562063561716320858458359651433609717626857940492923430926496635845364346558230297961398759129567143890871550181566336495517373595816392716471981332828974897466807051330993372488560462884987542931348894429491813788721768980501051098635905080903449809573163854084448435886965935196521535587989380243893412550423009543991635408372163217709441169028310056713849435032178197778676136616204773397285102359557261687688490885119714333365735164818037880589757555874993389580099077708387908537446403974413292497947973001931546442305529384478097423259230973226744532130532423350147993499502610348647540285817084293113849001630317281678926027504589768243937584958969991355437229386186330806791804311206175109329124106386029426935884136919810456740612407829049964899906628417780690810554377215136996961997125979811089327715531775188009127228847226303817357410845094802692897742223342304246162594495397159649453906173944705146887591653283067589643730773092797576357057715341730659743903123814402101765292802829915480810710349280275176619359944433972107718641213276226468818883386536924990427919093432780277239783244263435591453945058325723244366129724216230981321937062708519217763892142566183797892756934858247530940742921234704312481649758130818122042350133358559792746761576815415598147122645170849980638034478833873033577834128215348763123305111558465458880796938954648582378669422566191659892912674534390084694914289795100543903866987920735341331832280345529327723092697421657734554898702671698406289989392246544591904157586433786810160802726569210101861996838660183801816120512233889643985372477664852156465987093802285915894501427336460424138774194565265939895998192343425218778358348102309470041446015304099082179031936176810488255598754789893030835537575538514156858519606819374744587702850492831648280756617422895711610194250030379620262558143971865447764007776690095750273941237961452901646855503910376601299278003406291605388822059217607115416666618528962902468809330087628068867972856148304850372865638772006190971231248394856577508851729389593983745318542007868679118506942642091634543492857489536882427931275222529320620211042560668324637635737346877628265792868531378144189501504896810192199609728655075478791302312789307514194813768332955277865930933694246834158966557253604273379061091589115603484258600651388321461201392997473117222846979082014953429574028488986055319517207831389740372458385158169303455086351014335335803146026519500657427813937366073148811427966612968301708577956188576018377794335048022996547244137494876805813644911567053555248005866730773216804182548071802999666324494984500311408407882531721106342920202708723886820728399485192426354878713998012961663590343586693265645941611611508093842708047022616173391329783014858180172820106543868512175153339244381159267225309208340929360008592236189451764964039366075046596285600288583058950325530621357436209793468407575715748073141532102640133524857684230240010268044453402534923879876881492140384258874415912594354264538927395762304347998657993606385882153508238797200068122357678997301517136413442142878199062072904649666750586793474897364433912499495431103395234060972295745730267115355729150947339540298095652671226043453068515031791323060887854305671196118697286596938660614892321087674496082038059929184984945303043410915730714442445037068700932159353495797049706277039276661001027450401486335455503474004724195401455244713702081608461955322482577189995550679616357179131678170249059303942947940596187162169197484143348894125531888386013136107122284977240713401475903437527735499231162519658377265880829567480588229636075942483265585143813310215267983215410157435086878708407656276512344288637386344512869068419907531937625872954480055800937817608356939459953559836443841248715891997679241011450399121989174959322710463384521082402294087346767272699489856191878673927523350449877295296176163535770879282747544121472783584942005581991468245946484874780362028910728221663569139762635690312570074813382581842722557075545947264723337133023923666780609455932209652636838500849901691496254496712641347949358708871913656734416516917535765948379686428870450521767249692068344345520533135613468993310381883347462281828564349846688963803685759472162459484700430898553505520791388036774669284031964670730595327344194580531026335388620236381503872778534281415902294126886491341945275546406513357207157168617501597745205250802532963126115863363243722986931448895897428145892571633376549041321213865869334853795815323215156851120574307884297126797077231462134950645231789946376866043113964016920073461438214065985762518972955186402544462094247054807952770589842393412826331444969053787490736573147243360181003504568030712596952960878974424034228938466497962470340407845498400206055749910103960019405419797437123772589901606291252485505213438940931271721454754680875322694885311209298975942222397130889019789699356872542420040306622862539102342984850278235493269640845603846703806512247839030446547722384063075283204668494184485439251758965906986493687670090144954215549593581126733398604799984907405047787662508948607518284487881044617302295519873831554626751354929768564316061688639106289778564275089051689451441250382972338020408546672174866320086658966958969139499501922251282004075852887141431735016342418577004874069460555167471181665115418737635586120461029483593347434654236048985389618266102335006050491622702370170508193286111985802208278996803541384852604080069502006087986011086162487172634403351750470923518634405542581002413627594122424521086850024475474582871715613119753868731245663640395258805620064652869369506095495610001907154627596723183148267817065602856216826216213101317261567130705275824037490722263582069203088912753392146196576694634778657931199843462899828543285557978760818823475869960937758044544211786475468365787181268460633782078123963528940895137084930560244095226026702769200798821342551778483772352563732560077707742969875024793973452873479543333227996988373860467009257049221662811985783885708873817206811479944585804863700728772475924077447023346454038930847121378115019149784331287619109466521431856721340326024796426197177388216139413436038316681836811707213170212344854453545626262149381206781413653708508957543071469533972922406565506074991521974098467157742132346676681210598146179098927637860972387690576193262950529261177345516493646150853308955352003916792538043429708814421402010029539339446352535835716313928438908351514866144553517216897525303662407389245277908056979531330609003900992601369512792229098909375125013959337172721232882381533320452334891520399006697158556594877223590273689344792851127058094827054868832024020192540106393400503071739631498287386845761045869215426567009997863928381654422218554135634214166816933029213401207871337615819616134894030178137898721487233290575515886950759186870240995753648479476776388738168323873634682797800774527829891643836788975159489595603941362639313772172996850034117488142354345004978763209995598170750279267141871545964942304756004009107503103955896145457674207507677157117830107948580133188615519920623925449952447080732274813248232741342354876803572861671367226601606866922784819597616638245293983382525131866390618427775954515996664297166811531509391833462377370670016261747354139635016299077335735279286183950830465077354205479910059828035141376942128175116905395479375956591771776363640803553910686083192892814446842963676996054030406188304538098939700582332812355279889163377341129532393048049468269269854388300044348120106193149928165449079926568262867096776130179331918559103113339300273337130495223951278828521323932240505715661951840226278428525934550407876034470229797933580171779795052361685591825444449190032706611085158410761511119884561639166981979375603034291068280155801545549733635075691158336728724646415505539738408428971366909442036348748888093368448758369485372674754654309592313051277956925869570561747405656282399793529551712884365571434062204860599794094960131176913426519045379251358147892528879759365378546500962339619760933446853680565471994986471139025900676932376706514153903009068967559630614441649548653236362248283780737676850665045379144615976711329880488483077015845187818912886454060320471034170706654229248924117025139563148663624272374964672963559809382553684337713845340930459499516509398062880862044418196005088473036771027856736634304209639498882472596918399171540719714730627650884800395550175797373440107618130211369608589881393890253217159150151349382444262815041166663357162821791807733561997838259609354882389933910502075461807459385946623461324260962121835748068885592700196973549304538115530079137399597492236423202958028930012253220947800438744743257448268665947766700057931347282069610254158371452509024289889496492828232978506686405632335135911882208706289370636734414750442144766370291175285535984505906683659540363432210584835833283957248882265100788699780597821811002285604381809603929175165187240135034153123428087750771157069393656687842960621023540259570713062480554871186639964491228836886956048565082414328587861820670543664885559450261481965675248529507646117733746186130651100514695321832378470752234723551151193616202120749891227261529680604246180339415127333160917435731257027875142764953503372119127564687700733710290218594399304776429160925662274553188397405228049592056039679918081914973944347457713285960103853198984044444543403788095097116305629668418917240132702760714148414858323662102494236804411217211781475673298878666023987892353268648207769301939524483929765172161454341570167943500656704897702405037165506557015451378037882450064288726901334013961599742042168980400417594467568679946518019701191836780089977812416384651825965854784773474908869233513017967489309790993454623867303482208660645961617483187101101434974763567297190303989532279634839383451483642862403165568235205084898457504626314038892861128065588674555302174770177695942429129677180436980374354335768563421117646684084788407013225003206210754857733626184119977779125727900730644434524884861590185494910390742373543755743586659472829032696618113382759140631808353545804674255663708495472793943728161953432879249511627027672686704973213457641288334429006198752315724124760704439442595789421626884289653777454550319397266063926935409183537449308124308833822666662909389830347405366773951822611032528370865267853467488884678718812474690813081242770097092373697190095154903876776998420039406514776612870217110486744986288903150297067610321088775869446363358493853855284728010454422106817223632113234074257077011359142656006480171270318793333879928970120707178992377847396183951072622494683254850126294671803361465720317137398084411792524981683201849355021515519948226684446886136151020655526165010503923708615635321067417071339527077212348551958293799571577512583366866294444133381537932166741779431363709491856074169307595332354436242390482425608383435670268060954405131837009312298992159451444035503632829410180567070996291188702462123172224399986221465218946596571931464094013080214535064977645790055308460841907639994751014684715769382314784311762844824060581533152117254174066116325063818425409849916844903231027410218104378741249670871963108884331430187059095044658779380683077449806347214252681823872251784180752787755737884180763510068401130829200140025266705878722269656870812247721585257327389090251023982431194341567007746451185308095667062535581524269046675236669853906047201046189955911596529100796611057092050523442659047288771263990408197500514995021440410077000731822485676510368149292127986383710856018566758710028019141895504758181063292795284366439760333292147943222217459166182342810289986454265248393529933457860026978508125855218104132792207339302096149228690654734737973156510770453579402855032473903045137801271955064335246323706843593374956310038491475818421247451853831221348097481213307280553591040783891369550907491565050399591067227865938194227233138138510639898929488473086260483386403568270676061078810926323053637199463707584958901305439227998310831668034424173843465044402919242315501935592466346930040985184889531044296125671533299261579742031993424201352735658178840779016893436514340743973812334321381771812949122926274482279575179128963576003596672454643136331142790730525179016689312416694445031122483721150856106573226855105389096391822916847056172454662366669274159296993576227214778905949328114644889373863076558852906671604031114792271316503800389681514046913019145737845339252423360140816751153891494161799003774963517125752934804661604030455569808758622482597048621057021222329915203566985030694550523040679141052259506016993184816611969045203214100780779232017293486014500019410534031391836209999472490891460653153472242698311053852820934513365561229836669448697826560347454355984044097228699543968204593502833004371147050977903874410425586269555857042245997118277134052189974645859240395756441545851323349872954343819881787782322716502988742599857848604607545731778713563978286433738285782964669264377555096875167081451165079562318926988041168655370545912119597737311208651399208317117605465959854758920904108136777627170550072435767802569200357269457247986237689982230071430122665696203030959051688224407270288219322834837876127040481627993682583165763605525368168499506499582620842525895768247528988133184443393040683508996089357741015339580903335660715611879536980850659455785174926014648976338252561205585871918682294816516337973274585672979034429316737587736317751710699086641488716688159487096580408086737325520022261350820353498930165846887907322010041009702441130389679741230787517602418202534192114359294481736275499513889029857410000027714139555567719432017353254986278168192257466156214986793765288794330566157974568817654124440744424689005275427566534844465150064119762106140519630850685705947187067035563326882343678229646903259601716297744227078242704235653836343025891473293176767013248918613968224012794379030229466322530413608604720054086572089843254343740964941449604551842930281985653971834977116334002767153769268582218431426048949611059604977933590313993189845693032232484084906073020314830982154992458048526814445374281383655607444709512808700087629288677521169252168171907787639942162505068202639153413390345057059652077096789512769690973105923466999785326685748002262593711739818844812315221255435697352304647073234968665932261234105464897655627000476271514168029508578424705372176225210956856583099009611846178222049563783189038791269711916399741021563455586627773711959847865176750214299776418562799919912289361320178133270854280151673496133358175995247465731210585531548759875422453097826418063649097966073117650369204608867263502521968046919092108052175817660501784354561231497235898166762383657154718716448366738381544819529571248753451827219458765447987980137675078461952325563224785163106517007585805604415468515864716298777819961909417540522142702769606686771994983390059980985359561116607457832599943100942072429450695125384012967724277964496565037668265658375721491601217314388989076879863932437935624959013358692222924921949104557482007336403335558811824304427424132554140508550495438134576883216257053529455410393031091949286593924081995285630855710532406651933837881873243815233242318428877545555192410982423140067663996086756469909389534805823800171357870244535029551405842878843919500260706432650723143323032552293923720244793503884371034328210971949214526446752315184254782095297718989395506511587352542005344681039341721350475458350380479282639228459149487618341687681794518540166660403677922746600156811118301248288735122855060632781510579619745560770004023573758000439524213011116014884395696958686303886461629995120920397265163296368670268195946847545356118376704899510538897816689551299375275996785791347439658939209328683339854772554565415263066423181149187421670070035060170379912483754257177154237419737948248389397583303724752382968985669548813820989277212480197011075751789064426492367486113386396500747652773441356903085225814395480987407237717765300474276613437820439012793567104339170616859101441754666193795588078800952821130685353568514212680959591062204048528975893222221784294717968003040910317042545855452548495684185923149409225961831417829993027822448860545547212685560953718443615150641316680918067491793838992075038781575388361833438034359543857806303217475896368961621386114277408144239318939143049311835064680386391279874202952113224198191211653002476016770967655949315020596711804135358653154233249200025119427600103322149128753896172411594400791715874331514364356731201653748696650247940714183590368560105072410800827175490532205235311134621682394744350352975319445906745961130828964376740854263216654541396212868161340025334536698193431465709470406934370908362915021024730687203853801500302137658279560033480135513927682097005004824441989772179642191714842530727248649371696016487101205401364673755247544186570158639670959211251299657988955332267449959110757059268980311940373954378989108263268099473834760999598307487267079552813982334576485197890347035487975547486998445633023743838527364633638398921224989570089704472510741487134473895621378409310791841840022480899096004179711179021506067711823999630920714015222777606132976555411439074155432246691024994205809408945251013973964612873511151792932558702475083377651663761542300343514354090063926905394948277783647371072591985588277373471595303942307196697854077586923044706154557688409766965474560530825590832548015985030458666807262756296581811461645401103001795615839571252621304166932979945785962071446867751117653357764378772384089937547932389975598843442960103231234846853747273709395067254419361586649383937327301528581673939726890644859387728669496109388926258733004607376442721509990007611104449553828345650497538541813963656274927541407002785728940399486017168896024827708241916973238911746942469891423796728075415930286398720805587992613966335571654321762606817871787852245875018719926776304084532913043438262827240808001278937234635775911846647214768441879457320661088439312747769894735274727466850307664847802248319419936841174845605565812343604220492919628956766121073997349040955890258181386491445808881908123266284926845628818372838972666883649299943082414419125090932202317961843688693509452982144417217813950247910361895241918732242809442310541871538274660380472568630112183451227999448401257444352008005055523571430619343344517962343115894078996437261896000224735474117833077361395183284665723074511314838200201487796621440080177322329985332499626462504003218304277496589792161631031550460529193784569661777609946571302223481880046616494308997628344281125976172577677115208994180077455389304512859979080360491981472842081791254962107143739254514230560572326374300148827918573790899065938191937990455212016404600548586460356362222579857429911270118686129415739172662734197444913549015262747879941802995823879186378014099611672320384681552108619545108977529243035529902340621444645654311251804138402282226045590396610196522294736951084441738132536814797457927385738736036288927780990936128924252289027991653520341896015407190807181415679050478484170849469668251297819442179734803149422110465304474824042292313587909574087526979539893317487591487707288957467301194973985549991455402191828056902677336079790073606792988994888236750590435022329767225684126605714114912475279839976880057475030368172312976224793256346428453750253111612304741246352459959649848316914671863883190097252775949040881863793933547774918542006569357872694970654097230929191111552933139440352472863945539842289076383030393324002317246346262841057110263816452129655547957401115240887305400311614118363329613648323386586411417422609536094652736917975656011129832150823633406196507215553080535365017123111300472531597783761517399623641189306666445946605412254074715111776539098136832104855133670027752788419291715898355627384470074156143316663551423245563640196646909071893575388015121033943595944969710806240721601816736119684230052561115384160325273188344651190286289927860271166992358044357256659317594389544762519583158746222567379448172898995522483433703451394633665405828380483123105624664040669118205357559139435891032420958283741536654346262861731872317799322391419099322953579909003579122846858174575997657204578313207084012660954696212088784554178113500797131877257133642129019494929859819691859738308146499417233120012688605845449389835662660526397103603119604382387771263225968712982545883540346828687271064587982200297870545958031401404812205563379407645795221321689374445592286358756296923220878255359721725142716110534756361052690941427038183878776644265091585266427622966604229866819521108507468331836100136251755088638065811424079855157295496741869947180364608671538054965845661146796433594187130085642477019447802724413242933244098014905811207396076851349327424304627311851064581232467176837299424297256956717296027427844993655866773823115269584511198364049176931951983078995908378056989457124574850729080375622051118041299785479703363963206610065177914112586596883444247556394815487315770186909805192807619481247507528974597665839156304882884758851233496066762391832516937815860413312602512652609322060660087993477724178304843542126036506997903150621684016230586824642055749644519469040338856756299844523405423351751548853042671991738931657503427362331740324931665638584584336229083594176336855116242261637279878483417272495689347169772288143890189364272854219605875227411349099718137117589659390607699307729533012771766499660441538299173235649773820805231005922492787521714325012883752532618086579659072088159233516498861888336993173532451601527780601337883864451501416866764750076557892522752511469200094179068040842953474509211611386172790385764956313834602677424974952657758511764576766162306047786747948284485570746968739135084426821481639511471733084174639855374910961375833378872711681415470034792113442808187221002478085930699508678523984471993539424918734742830346199087727817845134595145270013216873628476523894759349511730706628011401829093043651335083363126171779704289871141003572868313500076086911239765278154459745340812120206406430407908946375637389925327663912347287007621736028091655169731512185758756103761996928040062136621493189876856542438174004944406776445682691109354074701723615624164224181597709656567949602133725675059036186995680883275637480191791006069267443272153015459924370857936166512298145869547898320986135419050904617955905440918039911259899291452722996537210151918596324328686562077954088248349379831994846539426950764983162537672503094632080081447426012056418696509822873424354802917580722390182887467739662545943468971475295454469441449693316107476276037230463123848681861986860564925902411898483856630441725548014327259465181323019309189236704268211085303020568268718815568842815450161827788337706066033097615962840160664143317098515804210569242468276325240969785012916938704125111251586149099923819751265587424557921653775837229208396932538964971803592521665831680404031171053096634194486912443616640956438858669254572823297182295486483615742749218371573534253906366713941638745072754914131505792024317085550583097747617787565613729899638200630799077303351629670862708825609777840419911696406314779721423449847669256907641756404078563184381107108973777748166062048855608043968777250100489393027319424205220854790174740316742897652914186400532804237787551345222140329635312167950256887451978885897220605346765886010803249893204849294589060099161618529565330326433580944567388522567164816027004343912206317926506087181655528865580799572817281114010922555819144126141789599138701407939479302234633785417231354947972465568179294678399201334473291114719289500549770748940409499965317428001204971512955876864333550774160403316559516276318242097735915511016124558632771413139826204732427727823178424788003639229622094114015356983252026863338590900610337389130111962504264021368149447306470283049376186540079202886897198316552476847610039662953695852993772271256297129725934938180858618638302451329126009496891516501548258508677870678118524940342726808651762533528511961238196288344357340922475278026114044355377207631807475408881767342491926643059294341268788400731659045798320875586005571756326436150420656759335678953907132159497389846584941657467485738376661347296912320630850263737292788015043431567935757791079073992648662622987194453905929381189730666827951292359457447920803490161460347264664896869627468179412326598461813497036901180413550675090717934381910262355645760497427921145706435843255480610061082165397190741147059551415292713648681775126026513097344297135949328748959505419899152352585565226979935704563117639348792590868056036011734715571405762965870462569542297298407744664497798013629751498038867330978267778903838749518442005233187770534745239333252775372701139747911551756894453567548774428195607604144652373749645742389715177621733440431911064371715121061310435091308562901765090366230163548986648254208769101105074823705352366076946098178592668894268771744899070902907556903452616187258643862702316065284966668836578117856876940214692216430122438719727371173813797545829964589882884687657031377149751186048124764200913811027505039350943389919098118348967012303344421116674809870861714041553572030406797539515078072396701767345286992980368968164717439277168616052823046408812478450742686559190652964700781160060556907921658134269095990738204243598415505331632851601626684621186387569239845040850663025428065644146088465056338115371304354228327514293644042396431980511250765236104489442471669872407049610971161365353476441042916257116853846318243844337143933815849407130790617808916150509909620495211800467120482513599208432224391801377896811749694198797279544134757481743134505572121294693445388846157910613385489804563568383188041412403381463721718189337628744165084495810297038749976968010900163020535730958987635492184735219843815946220517497771970436368024334896896786698714155840606175580916843167955847024174876872576356383652842035908553046412600332260389229350259449365119024661141530592600273918391351444581387644771657803143751527410202369436472974244930913517383839547991119598776904996384538167690723404392096050549916525286890870502737588786178318467979597162318516101748054575301211650554733682564006888177958622460099104669114652259002748095512712825689477152420405146112446530347730748108193466946268531739705466073294650004166433184992613544573759312570882938901771579716762359429021193780341113049673324746319780099635426858349286836797640667703686852992048213528813604169492596253822484261504228660859413586936023201003761282987257381011378510304866127073356747521094404971004383356606306016098800450898697365214677958371301942165480370110582440369205761191795001115464623282594165288316428823645120471018947328083503831651026253434788776169436187396786420602744921182660156353338071634006748574267710829342246938833411100215694619863610722765881720024156880897473288525199755108711784223624700067975512841972191640439855381060543536489877408695394262112786597567202485366105010465135467501903713214493591249895725236956511087917698938775040721438149534877959215563681482683071724789289084376954502023093198776986503585687630985757418925468993444042562628846245953833490029802923443040893881754400518761410280609616553678626585070800841085564228188819454570411789168652109358313609985795955207651287002550412785820319810885707346556995031000437021736622186567331960600429121555340435278561861975772523361784818458001998060944987700250208281638989232406467625350965541577463548114756867377551021370807204507540304890455176523077879027520547941552944635570767179072226039891572336665154610820444781222430269606307014317377056774910996766818009299693256281309547856331740164837136833800630990706353868381380631439823279970792584203613525677204627293791821147244731403284465244669842773861859378361346865629385951965770030584790485793756993410255451555822665535510386176690514494649887635479904505143410698007270264104470413062841209808160239887375604906674121017569178112110512891556538688401577123800426192253275668760751587520963935437223366788599809434756138792238922322128693544809564358434255597342383072287523882866298805374683268838584055455421020129486563552015600044228123399578985346766181992055438211681406949915614959361031624440192735299471138048100785081243358610979238734525125848976010948587466911216262260601076638455993307247323102733706506857162249165801039549314823392944779541507085885956785765514301729689428196585145559101515440150470843382981946141525677170227214133004694967713704917367242511259475057675585498823266105854398102813655045319525890743728955436734210891153239944279442760119923685867507434072788315454406625693733871191511903420110475512581145995932579294396692414993319702931597469007030610355739645720314404825039594272967333422649128163768628362914163565567423715051179847161111872573473717057153246009652469086987083878706119268875358511685752313501032522529598535229558903389349578976759791574664263605398029835318120738439281449092073184211660046322540341117375246860939053432866337059997608460214211460016237461491794324573033287408098605156716538388862544930610183856361535958855137786370268213564429272848201034594902830847574356944673990074551220757522880539996271732835380313519513757280207772952265219145322924203605038492474528170666921750884394831452668280503601208379975897228349226322247655215267143172677363022037958484498383034545103262890306097365430025008838940825475751495391673726723237135438375544318847171568076125427060549113895579343691151066729689010598195723333392852970857034624490180576334513181342719237067049676226587137412512107494460838965855377369247861593074840896489863285602635891321144918908803355872022926121663191323517922325512647392366542932949240854494743795761944632215545109364490496936662102449402871587695318691625040247912646354449525513251969071877735697565750152950937687802433594189564805558333401138733133215432800893631540827655659341627443030682923552775272654990248778238136371199877989995996718450691798950333991766984916334150071158250944069100569698003164512741163391344591827491113927376760564461440939535252226448584158090379555645025708050109899210501649066675672436280951665514948524397025851032964444096195250420576880558869186286458378558617313603739354511326542512901118479399130638231472699310033238925099801557318289034968280198540342318921057373251361739521801885266444495710524149825867199575783868462862341325632996894240152168459947002410518524470199963073050828674189381662514884691160346458753812380013813856137499233222062517274306131687440409462158452241820770451930668425879591604111739951913452919143200667752780145379323802291544358385338251300739197550540006819286297906757602877803995245107315098670611659242199911558353944943254585287234043374864771797480876262324140368814400279887321032353751762376703846068569625273868612835729597536736490965415240934884353963422778940537765907493156820146393869996520331167962934400314996594539020033030388914658755934776046237200765176410183740584814999671543569176555409958871899016206997372608592128557380018614102629880337041541357692747987518823682787147184996749068085970189579177282529510385298583951889794799731793280201422187978363946812455883681065066939628239276452415520976797610132767834502131842733656773439190723775215552411484384289547682223985397245663380191672580014879791541085901311957457021273112433844009181085631962124694169396639209752167504065290413847228705814855368460554736706558848198484611536947903900471523061950575353295987548479775928792965026619488984513133153798825267443766818943153730661423611902817838633693380196621147542690152148376253143014426936857229135465557143532378937749010216355142341689114738355799940390719650940201024185443097457143874686099057608258481132658522021925026427272002950129753754920635317547545363511491339707195677112212479451005541393597649702414192523630796236577032041773737394370821360723195571440045460757742754357518953215574158827696119250783830094294873504771091260709589894582303812048765315967605049465768158354714929620370301014333048728066489267480169802447555966179426073783703156649602393342617789206123323501277071856121681730185850743479854686029850658718041163079248487624579251130203359662993603680190765329651946066296369768158057759245938441489219167430982414241752957033199103840128623407369175148799570882750320816031776927099501820767556936900733176139555006361938052763656421522702119693812190133757090403931851408479206722543883676130935767380593775711433398762205835644430633773671294759827791175494915630386775252039174117362029332415362900745629045781176948945395195796369160996055743722560469252220548035470941913297867022801442120439861793730144127957668349662214062684791740235041795017838949167619795779540388370523320593762904987838444140707890958215355731128226887324842841905696740410091159859462641381967652501518770638309637110121121609616472987905403748155736739109612309448234965320637220313002758848851587781983572383693230555397820516867448520467609742173056967229607398173774513513177866744665299068526465023177973478193259020826963498145654651838015611765887932293091284144805605578016427189231424792003073133975569368076256497608242031635133082629704387845858689385406168906326851018302806205113563534172706647420322215387467274864150324722041332740402082146298648276573316649782882403414809065316455774188155155819804726119373448703037177085209226785653396297309480888764616072203496806037386604044601284602771151529882995490581862578855311349113177919435785935953998586188052231620882168857513990241652679978301174724497851563254724995348876061804799780483684867019381677457102243520514330109428587203489471727510358707060506027164561294015666251405932613846824557048517569063451425147707020266671086039822070675884475159625047164247371557180786566677788259136265363560443801985887340018560390164527413719397695443882993109702786702070212735316050460346276534568090293641087604628302497864318167463524917721623028406360323894773475217765738594906957412107870588119544056639182382990832785963088060712202419216784522666287205516986754893408977487105288155075062602224656191060803330050715096497193880541063671950347166372916328854424446408930118626643935099502949239327842626270944539944266205010452816930823180756359620762008908884951989455289465554948046997442900743423113406095263596230758219220993732576786988969382927401242983369593558251632464754158914287235041823803707780657675301756689665899428609144637197217144541005705150283788863357495451142779690987491154233572075707584950072576011103355848551348781425446911608816508991084181164236468826086650637307788478000359622396162934940530724724149355536203927944681860294380725610139587259663094481904157424907250087636518404085772982488830805015082663119876215274496950986474768321376541914341067065143612508324562613195378588743205215733876583058306925495714088913672568184734112187081535499482761313804455491737781882217527573490146996822142494266074660278595424050802771259031118566734289631056627257669938236254288858993843223807463757961089383084953283893275423417290214185605461158739783893526374031704841948296405141924275243330515792748833165735275353054855377270362618285483848818590454537220878385129704143281343973253186265710717910580866554340878359405950742386783112381683743494468173239521934847428453895884429658109601600244534315004702329167052376151258577706151470675354402356728168745784840865016472231073468587144528652530911037579904610864694933294509458469010515889034985289829966969650976073261379124544331706112594008624674029677975095501303831778761273264660252384992549893571540704465503478075250259584910492526741536176418498441323229974310431423263243221752099412115601129305139918497775208863113384075823341749332220449723522833789533507710655868554276264162817035569467402697954160013005473107827570610523400583639829967646903654649225436672517847916487120893745590028207171200819356017052885397310083514547215899728363415561905684346640263596204669052971045543676547484454643885096409416842413126703764470334887333051934068627169522867644245091274305552655035691286887774421113480242960885292739914697932563188418268671179118543755709968620913889513294799474599771914890164255677332295434769907603972043445419710284438695323436660788621022817541009332242628468105100090656702209319056837903304952056868792718959036931011705113699874969714915094869992378455054724998110294740148538938995157160539870148620041659702781676800169039760636381368659615104969910563237164535096876932452296715298361091750411045500669339267051132263092891791102411945752228654940127125901819077615883312938030266998060032925775536653750291547363551068107511706909795913808686636726548895813037449540765638009120013923094171280357940983713832985965274937394134909838164032627695710394142526388722485934206605416588525424967754308017116616921461250266544023030615675231600422976278606977841119289021234428006680326492438872609295780937986003810718326708356538690937822317894322681599790489938918320242393037952872698747548676781370654068323076840014335711872615044575615624901726728844864909608997668412387337312018413687387017915396432620650065975290574764403124439738591326283351298192225113024588415043571096209671728390042410270333511952730100009800631781150170240437426306106537703121136957776106211497460351877259360169491247271230749210664134910241680063275167206461618149428251880353653289145496710025818196131517677745565214256066537331049124153406147896439760368697602316798963648703542105395379098052438835829750797480723003154220725767343132774521786952038525599714191057000787282689233899185994849885064868613746210164353594279316174904357050359247115200941792962099495620424471207924455093003730903203689104748455229453603138077358796086312824718781645614622239333356515527175852908047289013164638405665608999442968625518940132795452933172063568122284463907145206719318525942570524320093811779548205950474604940179732960551493799868813095465161243319424978160894741163205737802899604385648911974809083232262153103128432295534573434472076563263314328927130666626725569993554559531526781696759453487060868647381136440587124040023504476511179795576498105120237253882258333977172282992658560819102098376254422755684527969349940274206208196115985421759227612327733219011159879016313392659734069063676552995947019374385038171787570648577151395463730873837313528203988805999092235329193470635788849023942401046775972785414581106386200898965665641784711098390867635597703315798675539530477802239858767795180924263723962227307109675563278862944496799387994764270369308313284278518007455361007678491606880703389991471997342367071714696574418334370711304647571582370387093255227475103103260237587885793008766759429612861415693098424172012512639777821100098360694473257265601333251554567551850909333954544077098497114380393703383010588811325254459827959689713934740335551108814366615688027252994497758791403284177718191668380270088625533391445822251123442823663160523341506664921771281134302390163493905339139537088022989086890452136155604650792522229812122362453000716794212792637054879593595229698772591416279702136860014550033071233262147910527903719330180260545973260668899331010020395199900896833011348142194142177481542809352588509315968173435479950770542815418705420206940509985529202473131678919482204079384452117882756840496188440534618193864844579525380300182889301602641238979406925080754898754846134582303102732394087777733645216597482502250384411595177447060807718153576359644851612487917271270917943204529526263378248292706764258286354361391811164123615630506075829700899702381552206916292129284615030011828851777145706965260407880939987038615094769672421381212154423399084769377652952167464559638628409069317050105456317607570959877710695174609956968691990339073940877779295744143953887437067871563366165191681379594555977151520485508995410184044391718060923859102724147581521092822173241775439302235509665231233309297136376304646125296113713259650320622604077629074676246249640763421441006549507260058675418734358654502975209186847321424959565144849458645372014611157670842916005298278683055506811896864890263957375524897855732067120446689727742184782623651161229384784634758296143009511599019646819515518662643617993971734182323733467035566073787360838123638559125108667335527355680005006753130892243726755109046630821251116498445987168344138721235958316899386652312965357023434308353745498456369407542304350532495147780991560564032388026342496033189186124019942110564657158334866892320603611849964459683069759577573652823174147004247617018332743977386734028170283230729429891790235649772189908497293464249506591542530002364676073775912248867951042008391376646690682157790594816219122338762529269070143691895241762596581096195588111049182153901250963269612963367874875232882579439406938525880109791569839652261393698661880811382211590552908884237002842039324635607543118900540814294394280343303902608889798596247531005557886000630755977059802366103949237402779394764074997114923035165385470192429984784442279189358962786494442105087594079516087377451415815240117354106395736672838912855709795156276469174513893515111380345118886392327365486713117094245472836045764602415975487736439546884030376422466564374866491235713675819132109551965687785412428618679702257972425288581883035777414890433630335130882562987229987575293530582370962730050522744138051713807593329405649994893916533993849342831539236157630146320879001946482655156382248698046514505538071391213901168646439549672413629862791825623392613039598797999420702210570275660584809023367409602565090306417094288061257153605351024824245790194933393668014928127977572133085911266477275933339659552132626900556882127797807714788046980748277278569706665981474138937909815570768979755853933527029616831647478932971007543131964347336995489365125582521996183850022959724718991313779293209551485157567596159755591028668865707722398670668753495261782697049012926207728932981038084584504724302685566891973535881783331153298190852710710426916778733973669050003388968836356798644642513143323430657031470234661198251051515031934056824142044395231690549030013203576395813101748019614057238204141970420330114324498998509786248794736265654995203700023221533311120479487883554811840164290854816343156093749665886454101124016749608700383765082373781640617623737928888662393986806089745581038964445606360523000911727413867746502488762354042497443965075765698565928064681786106517295424775613127946357112413325834019758036950447918628660767381222112405111161549157588258428435681095724027563336858471458641814391936781853150704740000762375933056822735695489550585431434103722418541344942780195682917829926827559269472941915646543792507470032387627958909945639001581033449619334902652786693097689549534864111681329088204655465514797118043519339171749707202872831819227825329242955629724746835181066822990110976907132386988940590663230530746601110493333956087206151462808006087177681382656367183043453211683989635359320795337271506820148795583222957486116821940734656021332739470360656918150146169960359456103001689310059807213646310933014833265156039392649042011413084871503105730095447476855542027601139362071567984805300732039760004504323336385571385816421195036737289549159240430096456702014419928330397474736311900076221032794368993701610089293080596675778682470533395385982978449580936720276139077880702651415874327905426895829869203281271769184117639642571487401335969471837223295218788670258277018745632237577288700545955894996101658477524191185402253859248069745683202950166759447152091152028607734085461779094568075093884728798397841662584253815720643555482391920790639084035458410184600704545329715274811639843203155565370727656972610660735844227241820157528908030808829236842203995357252514857569926914898646055999507183410339659700392295600518300595220339119858764249827454172720261103304997781383106281163173966548889878419467918951427622697420735966354615632442949284124903810089568288796957174962609646184130366232021622160292127794216063984237311713319858330864085702077118710046574918614932699493457016146665747476533101618478405147082818070195667898856666261838903472893638405840745879436141119004796799413943985389811531166085872301296720243104087604288646551401554302755158196869784089178060390339983951629027773145421680005952010263525521989659335779012973493867806614714943639211009083551517421064939134454016100681866478950081156046038246078900278104804246021492201473671314046517951040278281175006708574774697241786073142853928848111170242992025366644886580348498605595606616883813121669228748599831163633230070385884386273139989292329046009109364205257623193375113695935651986694052841404545551685580936960889877915353832039567788354150327662626587963493789903613289176989329805703434722696404063986664473679924296756832050362018617215717724345228550548437521721852474043057911305715433333869449798663945780159550439820565893809815049516844954746905049960692075259787462684179741672020319770779622653417780230202892452842517150908785716198000322037822305041497022212717139455335357248777579950759245785031377547287718830033032861330804687882592207175671117868575184768384133638308978209705324092424639533734557209004918675504978987786117734887708022925961209154105269164881299650133732273398499181866750604652320082212280266076301080502020290113670615766982585067863865508553954453837322717957980803287544755257210998320150694491756902417826371947417348575079023431459835039984595640517404603800803221732034721550998818577221663025558251877645984724804800591064608423612188768124212768676277213607097594856979615180270642987852246138420283124719065077567215343353611975898133004324343120230809909207692121893830000920758368251698522888396425510550776162708754895684863902326303836027279298775621443679677943497848004320479217571475761269688775221085490793918490581922209222729549941999523333814400704264258237234985750101056715416795320969092465188056636253155060713240790117384863129214739703929903613701815357433104507667276220839794993776305651228799063060339559723800231240712206280134383762112244436646727512139439315211798696529562920383301061246094437636914493375702860693796077999023727786083596124945383425192676297965326971419668023599350938216790329553957346703587714103921034943960543873149373345782235835675106919609053290403134929690981123045043490286858428954925209308688430080232232655734121492983752167513017010003704643816922118877159737392913145121528630832491070951094260718999075768458035403163944947275861880562894942056454437045834284679324557721021038353906332070661827460148136680125975926760537867558764172217816866632090863019064711032596647269291313508764775795376285724147648332238781346934331730551056999566448492601312779578187160094410245404316599457431821523335848612637676729893958798189551074065915375115205546494709415309690978123279159866382376301695706036574763311971523558782702618341551315349906013027416390597752901962403682412262857948660796782320468739523583861234539538862280413638203613037680643369811308061688840513774453928108618007215360513483272641379552171554695744702065540812380136250742544095301506940957292307529274995047202470526968165261145609079573248256650671960511069799913435348356873155259106697677274703097205974904057339812825359082369914078306063213884495550115078442815732506837550168351047821311321687011308457523646637211487261971480115284544665324329144093754517511174443006434980050186534763872975027086676354596505155531735922991675502551399250753693842859373186425397923393284897681546912097004885651106294131697916074389246104663565070663260791882153437491035893939564207433038371533164574322958921441384347619189418945818550016550359979727791471956784384286879318182530161683222586620972350135871519027457548653790868035608470335195556553804106982982406637630165238903012434783417821249293864494534033744428115633052502048541813194218181873129682316597514725588438999222369203707696165444698034520007380117066893692112663940479431371362891325596618276386919736426099317906931045910415549556164308597554340407953796229433550528785129285145059145204312125101959780923903390831882385609649425325623043730028417351517543535263802751958179308117266990226314045348157789972401287126805355862915447872640923242878951864755654739694106944374273349909526969993434770399551081594108477907488452232290978234981420061547264219531242230421228483572870083672277247475634034815366491611311365150333995535130220523581627743335381896249627126802810301096920784052436152108512045114416282452462718173107287967732559521756155273699567433837331433307013897080571572817032179900620217897472546096408250495955025063076127947719419915201047710932570911717665951541011010317376188095556280966716395818762039325649952355500066734660353898249276868658359573597682019070293171325272267491611229733057822050881161716390389367253802941965895276770036242803168498377420741016841882286587358142108435197387693944039996269479670378142099965292624608744536803065919928695641597541298963908277705663514827037459608991531770448355593711662351953180949027299863751154564810120818161221575273452778249447540096900342943881178793076100331248511101743125742593970799209695770786889138088388891244108209147828051549627172203507975297688431214458705085841393829420918700934819970987751760226300137303047793510137592731912815844625418873626016802858804184859582471042036471218914936377817006552640220097405485825718382419192904588287607994998468944194312503734363907665787475212723934182603497498324201913750673636768081889113303486281732392512959760256892509144800704238889394891055606454548028113481930483841131377386244854080645939542832301101062191155977841200434886544155802106098354440543267041651714343320408621725967812926926915160836558722590633843535025630924378540653977308105842248234829284736822860607493760130647580045870665730222597341672356546784038355611478207305648133929541641880983368773759751755682927811901742325669493486806960167916389416160095885509544283070461164710948378375944907773513119041235158240669408199773594074538975907332739360300502364300493926986892889277208864287379114448116848455429668502624339866265050179379878996782246390979087426221895000298274946130711332718805649486754741107492445021761108165176374423734708624364271645413901716018776361758311730641688827567924639526475847700334413194003235633933909137027758509093912702037221916068386296438396838650394846879554657761811336973957222246197130125395752754946661656594064980434757495070153439582132494570588416792661487202221817725682998195521299125926325000255311046595793402251555749921431053544285305184436273163498825933108219219261754489024356167833174189994384610579342649240098922543569987630668731543844991246919506476494213321667405266609065784689474058674266748976419949270487694548310495848292655038842482827508949639670425576415370369255827139394645414559944550457744092439548332686819691227392156902877591786184402661659182859146635942078434272974411209502638202719687465782882489222194705473102086919563368538292204626624787426812673115696644848853563784135642371817687617110559407245831762488542936231622730137278423496868505343341982065253899392153488216727780969552602001509406577338403795808346082643446282532165920871338221160775466809927841742324913264770311667038726893700724907704537563795177846059183487439002927634140400997133599410087747053250010052199631994679679678340629638512341820165676599759819637278630874010758576848632613475709595747756918402302699226774563144279841894715484178169117516682288130496928044491585872585146567968995416067197314568452473564976367008641013992085031237111323642373005011577646008010579547113281165694519766332077637986701441292377719303202812970375774600181616770736882661685343936392352593771199584636771974421588073749401207488768642149017010491100497431571220780957599673465858901317249735186814572018213099258120273521434017658141021722095151649681244847719360516916870931591346367545514473730610680118815349178894663018731481364380921594373705206074017891994604918388463189511730179128073986457588618051878852382379750983146339329464115551853925053711296283733985033441233009235495767570707725349275487499820259678334039158511108848822062823550996242329571287048439742783113355061319764333699584509437082024067781956768585302735923343123396202293394289521567625325135950755694508795957456082655707350749158262483282207087218719064090400415314952828571925056724442374094658042724041292079239814500619059707977280792878917778566276948268312438770633451275049861148874679231273160253233112450190773971348740034723184818119280522469875405747801618695820686860530959458896240737548856786421345787862747931982511108129164264314241441408140701889938962982435263051739069449767194378555764627616233964149604334937215439380559326569223368620696922884385500424654780834025814443017929767752761976724641469067047195110420617366794840885686747683160522055618379135936424256776783223866863792851380356458748274960139204098991182519840802385816027915217409972545406513508460196698279376061195248444232410686382282039077498306781267618840494327910426523871566565416349970336045482671545001854020677044994608166059986329751534710957138757794533439898664796948251271980887479508077169123461260296200003871293644815840623196131180513870685806327867223614160948717737487565166324096037167885774310103623289695587433740113548775937287975119875017052276409970913340107483877838623569132139620543444622059167286688116724263433846007803739732805876437501430434483601782590255295946592702077337475940760994975529965838244100650713858422655909360851849598303290298595153736449663979002619649437295583637121123434447066033634017678957971356863988652758329051366305513335145643902459624145667995921935352364027958124312248442392566891341717386100372897931367297736233719316305367024335132498455953873896500780845038717050952473398270616195197795987861628020371927969775401011884188004330279218529914277260567533962000300794024455949551663476904799063981062786391764921495614004526447896116912465646479229886837754984277279600081020001441575510090926781195039406014708916593197002861276723345884773479005192356150817249880452690283756526370453400192478630425701602765072370910850100332426250389043236852675074133759426899866256931038524515675789861066121702999472390464332440241699016187320001658851945282695456745398576594752423423753655824849219521471634402260567286474783908031122802505469224568220984347078074992829927669519977442575844972884633140649674062961799770991825656977858011323288068659280571280923465949026559706486299900859438274249602001559011669114157208840994820244944065034342153724382438274613456600657780026145746000101527786703979682577634353376870430044603614867221326363089829433543788372729429944890530332294953347471583589069744680194453870240323824974684701092661711585955395078903108551043808638980204589880739555580882952581863364269924358672305486730267361559427694899364452986953059197522439415449819512294492497073355276741273051889397508296601530559750752394356944398755792854733763133132725692229848309619876117811351637193564323626290804305501882534204281150485828241422648827632986222863118515373065849114456725736738115537736470322931626854348490405857807791615352268087930909491043950572973124877853728098253457852640444852493181348679559999657212177005928972709690470898525959012689180229745000111553879147712830634679456818961925939714980424006200166324896355230232258928064031770383538883267231297191451907080144771414554734430185563000504677885217213876941029862844925158156651625035776550151230627421419479193158510800084126337938438462145103496124330563770381711988265574396161070933581418069023736020310499925853406580836690037857802002317011582307615089936465275140127088977337901737444752422897759482403950371392540838014241072759287818928791158511265987232769434972891831660010205666726297217208581092038836668037810488632133557175093360788831516024161413199250546376689943476005917962822794151398504168720561828889362236098638051527476033112683493190894509767149085802127663391853085270097855846525696641820798576205399345334157049728960735663684831615194887306480857704148385720718914148307227365514156961269459071839080599105681273455771897549251513255001155530579261060489474993810715791152798999411282917125597396444360400367704238740334593198891886009347324866506535919058506091363519045647028549055501826557304381222715168298404845825263464033490428548706238183458265946468003130135123420928671715795484310903312117412278462457665980993789837584245436138211413416403827588081260698250237692984170616988488819233143583672152584983197042799171282410027009907324691674250074955623452301611320465676967403382397981454658132195380065106779265480547235055361016139683414690027034879646687341169193449352893879380139104386870853307806627578253738198206984747734109179606737414918902997430542991797658268842510863222859630522912580602579561553649280186626022828196641400251721963746571785723546391228227589490192433366991901077053957489305423908529723844402551115048920300675151732199665709004366285388715299616952353356443879430957549247797663854835190367187633391496283390892966950416758176134542727733054335085088062880987957657497689153683449746985727247080030359569912591658802925510144662945930779516840698902743721759757961918147411666989744224350475347596676995276768813137311153625438529835349639040882201636327113459533703025168964158608828734599506446794516440778940764752483591904302169343543758070365130644309178895387113433682589889245388799663679068027438931619995303571054700612799071138163427478342330626502124460587156498379499447845248034018302718632757817814222401962871934425034484541042354845235982992143649474026663754476242737387517739080716128426616528863215095115473306290838635603984090721901521092841578793383666523900896812299020605830229205799154301398993828327645006250412092418784846813461311214807428494469981249139722288962089096784247386405028359379150006421083899389227779389196097367791161016112875752463574109410486473932247239156197379456144551957127759808679361617938060184905174606015987841724406777303358584758247158249476431598308230622210204964296878634540702451606592546946528738015943126670688328063785913011235384902860499867865042006749019919552501403705262308850639491629431032916719108659884959793494183455641469324379867050890410989202244475124782161305953683786231888323390209158572148649221961570794291661426188571749091613159027951937049591766488481097855507319250916673723936696280583339658185246479731060662716166892266885327764089563725292575273927754408344939500062561713938331429132251396876143484351201160664482817643101627971532038670838783493501306502633655121245747120885109969696160457648058167765340073425052630042506918427695548826905424377242423554138730737955666997311921055327983077093482280326091097579558642455298223391436724742381890315797533467507327343892164489902141104968269739529553600794604343748168113053206427247458582498950675434326594895939037011390017296154149542841197981413472771668471881828447004990774052431224937223228092792522699006666144353887456486063690305106975970591298258720488737478722380729150094318014192287510328049669923181096456234280407955240190864057246842590743940698100501009987876660584518639972582015636114736288630618680424879232395457609725370381282137775989805824156469204595897247387210203541341189713866515744930499417300955639434057247947369717989077349556091688425121566885810636060352580653028345307234438853578762615569034561502541038081998856938767722191269758532267672506006462659664564739266296898305206875769440746986436004011760926531352864416726386083184883888835507351134157472876626754924148591717967189798482059267285008133328322030707030794607289382318648573793391589493500592910246486089480475939303109358414446261642284227939305545178197740728308907200713346762822727150114362055104452712275895347409280807703624443630199335199631955293295099151946503814313811326094798189747553701474112763967489490608182048515754694827458174956638978333729309749150440515253660839516923841101062911477572302437910687862840610139027247631420597570583551983237029036064368986163597781135099529134627842195841257221136942774818903105058328275723589245490772064075025189215198834438368101859454969365806122380824847585688605739704805850130593698075689468495414460215153519148880608808714597756533096962801878163175754924089219250423507427664398719965853481057512221030150735810967685705846252460204902159280120262091368509685835658683657077155854117899604354621082806082269670598474326888877285841238436410921852025349457921125139130309969663756793044095592525438604127150473808718924852315555047936408734777876889356158842792104340203266351579386537417283675475155181750604752738338603414809667731927978690524927106289005214074555258850746764166945904613624436430161097517175936330253081705696593449040049485331674840009082293333488489045692273110231922946954466288292909774596176463283854781472955286193567960614533180480329174408761570713128131714239732544932392842432375424407350752131178484639653678051718858725121189419723569182501492172811393505113624252336251225204284855225801291842973701232659061818900346554139643781241093760695026780244514603722156268821314363416677038838471925636196238606503264075008696694389293543204339222598109448551324542947627554679668366341027039247176684137854356141958471581169844688776528390243998730563155281263883879029915446351179745794011772640600041827561026256142667604596946609648272016213215305168491274660889175544672792328307062317309271191403068795546281589571993848078268961161927480448676891768876079091569446597883332232744637141022370027644999558832566256218519865662839189312115476079641381211073002410939595568983555004959461015548085261862533251277940576650857392085178884751249722856625941920440283667123780302991109642183876257839323129902184089586715151256585199819557599251824435303844352126554069126320782911569184273754247585691627183588669374739621765238193558182402058869369404245795164930862334602603189687431094315376699027151106765873050604646886293501215565777287748547387766631829370499645744760776426003114911996648753722351856026654773412950891257099924315847281861520523155705348976610583879030227681252326280379817253811738028006057787329260208394584440613540730017102120950628694623076364293006562930228377328818298694295112707957098662851259871132876873412659345283670660766072180905053598449428914782677391659372008831707475675499000122925824772679891234196125838602227681386913954931446275758882568743623532073923650884673783466992893257156986737218407219101936466001322161371722993330756596123387040662127594528868195184785079909187038709048994901489926051605406815293469344419957422630098510646822472953568858513062097917428684211810467913243486647993615084657584816455825950197184477855449644527342133548108136703048364032039688268629044133723012453128315947518025021361681391572505853128630758949219142952378276920855683801446111409587044403675659254116892975966335264709156506892246391289309111088125199478355605127064226238507792950062954585212052782621858114645595506020163626094754864080128970346843188631533262246728903049407743758428470503625505661028899999239659192998933389459491872383707617891647429814041070854990578954055657728985634182438165770555725462608336482598368499797561794667096394898108275298183905988316406373128981362658075667110724330513687642104124974294420289614384006755535047419502763065002951326709544534786625739674931573850552683103323655417377890865506309692994053275296236462282937754137892359599695275948363792640845561589481258062849881234145449681749400036795811174337778398994037597710815207969727629192155648062735439990114660767675274478933585916856162461909423943557668451225244141870648360468496624595601254324518495873376832522824193998365627010615801531432578898110254281449994469353846766152204631224623590427761374099360566143813556812161255707884382473474764435690929942746064596969322553768826949053431518678459907569244002224256013544456419272952205969213473559075893382639098678631043172045394775946091247640954467106886897697196998594905102613124283914668716366351511825431700431986989612748305415963814270709863144024525330146948037905886104752385439656216197759868083340668692721386526974333103228088216001034945827937733798400433199662796543881469695577253247609210261825410321823509995419041033317298545807636350429446943708130722585397451497430415722197295230176609884603812245332234515213683026078046689318051922271290586632081822499602725096337843128955076368869717752879847305793994535607772040549283266513806945131045425806163665227686943640445791391358726387501228175889448986699516918812374740876575290907184034319099139870910035638002605246560548773626661372456801180443914034035142803688252141301641589363081559122637500101577960790327950340032830125170653861666744934927634384043744776362996117509514732480313121982313466026535282531260404701501135547111124564990061440910566850968827501726430843690727802136669677083425354365855906925929789384641085246600280642661845852434794867824701073856822304247746901428403368814713799172930953034948390620152791788629979771346396032371648550542358042723779456979837671993122277434378507000712265895241248253339238873523044568743448164536411114242095997576341281348044323145089108690871143973864163649297815213328890269897705249542967650204179521562710866652126623321126790895597031310833778430577783825738370050628479932225254716419137280474392843212832538248950362733733047747639082245173721017070839352404840501472704069315907047384849884318743349455800320436785083971822779239987465228002639136800185100111967495601259089042284789349550274404736858812930766627857919490389374857327772093193675663029289754272964277321750784219166071726591382155994777571152045450364909965035916029924368611500742746672581046082004029496214279014136365461994365539372833270005608205267219912910805341536339329288364677245997757180426007920573438366498225995696051281885485257792925625905371022718775781975216104069712761078901549155852088423131280798374293390455344417981262094428660825810224431746229174495514883830888991567111007138653926615276975817755663598410764520858576980032192298720135920247893830767275881099087494200180645171931872930768906966558866072810996712606754535625485491544091272836950780134714810451094533918415791272920092976825811694747459641090126157974691254397727141300116668773899602337072166725559000799496956032663036221151162296416465448874282139677194122166403503958967123883803381359673049043189375382899423353084481854821677167832670470582240797760907419642293488388802823374998531688532440449466177727373048779982287245416544791652680909557193024562550987467314444197040251471091747299439762228713390148984215345134360984929287543670285481845455747070995319907214160267877822663134435757820679417049097759954126497131194663633942178345635670027514519636895707951267166962698396283583882899591943276182972712059629031709644466965813090407968327467194393635079393661051696685425078738057606325406933566524977084666042208966162391378937101608601994271688295811289191179663213564802573413039966597313737308682244456562415793300893026948945521686565525134848232012662792961907722151243125533736862843961982431948059235440810068178207163770034396877384837030428907247425626767657311924801505763439088013643236621933554876075859374459681224192145686728240077363036511009032373314423317287404480185584262666249934574458517048587139114121245428616427816171098357445879787996145478798894445432263420403056627256765258872313664468674174178916024026531877746084145337669493762368186290793860597375920967097194118717318121026196790781225577409580287307568300873241158745506026285504817100521843651166485740831768446342556277209239250690164456569638810002398260859301173004336925997877097452215691417379006513926681840095329211703125824631385966185709932606220589659964440870615318875696165307143451705188400973272648948408206268353836309326305638251078718219468398797624363640320000809648108910802870478767114213206487556524176656101126446302417505181509610404825082339641516285065242086383919319140858771250151392793035735144184989635509856422093019928630605285896141859616767019654146376763695730719911172163550577004641714261270583941239518231712470059265965142673837885793951218852972307918764357241053763370283132886047852354842956765636804868318874510805496916407057748499494806285803688054626540572615053741979031863762231623956513022722770767059905579137257149056779480635576736484819247240799580250164599971823245680273228767769918114095398873646566111566950751200704444106110757872617466464065513848554407891148305217265819026126017369268530625079608401550885975869343873206034806793136140660104687490094822200908291416273819980925891701493880490474215245821449429372068682396485635988177148484471447343715659859223091103431267193793670692064943652434050241074282298309695888892389316086393918550129414367366998846025274735748796034761184046947293326292768795159257820885704333265739892701722608178985282778651009147079609234921903245306743344874481444437970218037301006438772628361852103851273161460227881930664355463580762659474847113682945007033933958896107862942474962319837002389914453265806415180844348753191853005263228726734060002152866176064225379222377898635168634929356472963569658321711104586140595866789138138629900461398134348331548808927889040027090333342541207041618608348924113142286186226694443876102482898746993904320058566029061591446378104935834048981631786931110278828694718927009086357584841999222805746279578613093916301035970377244729260162654624701889898758034066254884466944022875324739564619356757443365766047929036356096848739741575788208201196739325839304630936391353038987013004159398408111006632013849062968348925753895024155366389675641680860349453500299526863190289722928351518557300603594334947326445489375035227219159496608207363611961791460581482629696101890246591208416312735075154945478636726298284970227549882458794836275158544096213608577086771484100733043413777421501765476535337608959775432835863955620063171527272869813665861032234642694773007687410645239741069397757860469105461597984939695907499331021986959287776122756602159217182859954625741010433486700559044437822951172636181446373127136059954724065846392428043656047587758664611665801052930896612123694874525301193748958721120141065579725638587939797245865755741748543580138639417052843431331970210542510618772568547202302666533417078673780527158967196691548325832259352510071571654773845655006368473675467762435449475189250422507134218179052404524792581526162778533108065975735746415437953482256127233777765330832010005264733160606924789500979964136074865309876591345334618201743619747798372993207138867855035152367970493960110031726682823951802462873419143608404477544712996500171710801110015176817186242819076565100775620113126672540196354757138719051294484379902351694962247237438053045514778330209368924371398451627875602302372989030450630746803537403779331395052516675704400444929224464035752241868793149288110445108239109232218699593206919653990154281890263506454433836843847808413431680797176932324286077716858177450024820072017951608890325070164661408322753247618690237396302367344225477537126396327425760805563835985185533641396513816696565135634970162291826456976019801303557399614818277827227332582023371015582326633403128019027550319249081278503803189807039869430784765342390389232900628840092484213108219806685105847463088259960480891661981905299922166267718920832564852404092891305157283691588757291145455933997629996149695447653060845169904470701673605017146977437399269624776015697155581403158403783224384235794531005151751520524357684840434439147039507899669459003986251803988123175037096781182612118904704972553226427065348746625054887828027853299652069966020456917815337954545543803221616541870144483135674529196274149794177517994858971137546024647372356918703509938089481292023877544063857313119861563303968885570702144440110000085954887866716717295296475179312276979175354641561945841024406352613548346120251742859515438291090542949803705401464789164568827594081208720007473536614463573431569213642939741832276018608911126817714769969504302380786052720236875948176584369356848066307253238126320364929414970193404479363667919333777115327996608385494985532399373664332227821877545307836330812748344771699417583028082776850224184073001465790883414037653502184130127087319639462211467274407088286956888774592338027776471281541282493665451708420754334985996957327897373276555338865213274030724313635915423636794970708605852762466747868385097086336037529594429989354328128996071660721775558324432033192821783755823702759951887344312916423025801026386814977412478922169316799649807129880509955217074051243590559406560762651238414700063565045663721320555051458382729906966189322073296955590765870326544636541038552957221296029280778798180857039656252176387602064501236086130291162846629673391356064028747709569061005194562608101123904467003197961288446211770421993542468174893352368290643425000089581855695707079981946629294208143020479091665598832514681648161923643533972460989370264371367374006690081218526640696344693260670282482621081977077800012077624325055901040993807181394233262342158831871756624750012901051002045187679758013763604783925607779827790067473195302757349549815206919796034530122672154104604042418630981416972479104795632472422320175147842077559683489979548555431344891496419811412777818334656481690155247789205823316109609321845541412474784105980330477144345175587945463418480292603651342812721468879617736214381320839177062584904862211746583805524381022195975760192684207722886344743090189670386063045830673698541009044024583694800567770230268211881512431904682952776716917518177159626507359202129547300881419474352892910444959617211988560486057132257499192120698236066863543964054359473029187004430833840911361415954636192454389788791146103937340598976812618673707588758281523190115645689170293577071690785660429698576449796193977561904303190250555737789260274770670994406894566491844125592062881362662053304044731240377877676836138093147722763357910569849714496855061890842689302086296387367527583040750483475529291397759423251200939552381462059941733115774234142782444408098412189496758740426115735562894601850204907420106731515224963528430292388864287934535632142676782129680318935919426237662223229952327165615308925243658669094335084343588286835869372441804153463678553800421998426409760951602452042701150739744026287855524532178616793683305766849599929481559731535783303572707099088659542365977100048466990932711128838829423951845300385011921669851262239677861645818821763919120235047358803791152263391454097267665534399953081110359065193523019564981181259575606230568977544695807848755161893382311632278248948382668759753675307307769822093663532586810371109710151264239601047015604765879195601911817974359919739928554949886683478578466361113411177099897055705931710511087323964348367852467300727315764787091450447356574472589725621634233544110913520502793510549583404384555256605528197261913759742589455662765985856727359637491803711682398689523646409882604071474321911129691756615345658959504395433663137643704711764447697321448458234401848944943220098853846807038581712134459552755875461316509806172194478924677977130420887598549699210403066849028349121203470974715120042996593394321434919287927320483187261457515731082033332102021902430562410819857071870677726540066796554780339498891752854247293900724994107236939215204714159009808789165192327804775248107576282679643825602146269261981246332399034513317932837722369535834636842625855642701037041511622933059211074492320879045915405595562520274590010404669220374585215885403105909483522350271334935503654576376641623486148826748305895639239378462419552024910648610313143101552019562104630181199232307373460792305366232802257039457619636804450995858442419537333341970498055210546596259056468629888675838536393915809784299466276295656633503130441649144852079625060573620935729414194669163598099854141694289143466591858529502496663659207011037314121997993189683284727328624300539802180359788014156027287169767096548145487919824221017445167500527546754007783538479434816060038122998258800102544833295348099554890579648277432498598563564411901843226406277381890881111131490496444945219158227247681096908066223838169990160651438744517882668112010417591690530567655152411264135249784883590043756880120545281655968918467377380112679528325771461402135353003298492291148659531775632534981550413456798420076241065922611980984334044202190622065908493946429164654502598741334620486510831548187294240429241926216288951076973980385264163392053099995027493216127110107763478988417312326121876544560403994198140791370099315891892604239215794652671263903911017815504998735068989448499753348575258925501529984911840956154571374291492288435520171746636097073231337313587456512681950266580579253625759298686005351916232773786635423439045154320820507894006515050135705767572359305095889771680455714926726788609833329160025622205729778392652267053144749108113360164646791480907358443625450732396641014551760669105947325584329684809277966957519479289438776631693540345516313628631904939417559005892875451524849041716933929293411778807774329914691758711009268621034718731053826186157668956311762754401731031914553468219482280162493422194172822615651938766597521324323406347267634944781170922002411660889140267680122273956656745045181990409400130942738172643302665177568573218811118167992489375667554045327575145028180419641872359574508722819860513840619050649342115138336980778245739986104472993835315454399116714313087850755796868462682524739592428735098168658825243854146501243280082627174218676496272712129801748816416969266616407441956688854278223554668104971442411773319795986860146353962805570572110622384490468309036345349088310745546682352276398089231457442666362993962519934348535241599602389622051952788735331377529836719199582685068942282641638779039710820117648038308433449508535353449232518333890286953244693433729475725953047301535631203090161801338934844468060149465336610354154176429818977352389869331895871232123847472845487630435489039429489952471136997436087143186257531468460772720862448826971186757672102200976315787972817933072989861468970746627658120125933804715321083876478507012963083587176733343405190892755326081409883708894492889380490204313164471223381442705172156408195178608041133801482581724425267187112463781769759969397460987324972076703153025133933870704165828225070628669032840261984411488415276672521070985696596612132463632072218058590104676783227249313143552044580405131803767481935927963210993583409814497412230286387066335117673096060294140615175909785679123529733086135574777101427852090893150665444647747128862181644971956082695426593113593328212260643691784189226402446448762499869286040402443124944345139905128575858504565569442054225360637115082274157692782165682038620835833725368024954490111101184259588206642539666899819152968062222223417437287814206347879206227161588743209946707488114871963524958965919255493302912128856054661954279643926643558165146357653236501390715060448444448054173320477675073104292669017435662223646391506995467923381324014887784462502160044650261794267258748828598236731760817670058007759773464835539973004084248484705107993648532347767221536368323842009595792608379778712204338046215349136283640553971786739223278121729669516252271345395934694120035707327663789194198005833306869380509211068505067180031124778872739079116421956226158128664239943527234932465052738436008253535553310500806718653550087353167402775987100019464137953495925234693608356654609793747131501151268996544984053537611808286742093337929928649474046827141017082549165148657438727654929195109122071929984313859664421393147186255473003959552309588723392947836026221165536842562598455677741964411131285634085335020560665630948340415896271589102453528391443675641732714084760179848842523023014160663803971315756015334804677627215048946123523179233620222128132003179118981119023654325200224797205939757436075121685367129988335907518615079918923420210023298187763923134540186328038581268799288757589553294615071397307625947395240754249138464939556670261895892204736650400345711539502905528675571912689531553579202895276286574264579169064174108863844927152563468905474479540936914779573498827575469371570669365754283054301615702863118741965200798383193364907248622222865413413046905618849819524039543919523209999416310616550039379300631259676515104656435293308793634487938033665070361882693416448757540181134487594761448231269699840554139319007357899818785393484812025350547208818779597230834495178699744320314812246847133467346481364239446181507585377377642801546763052474118085204807892618780583715462891475515020296249561482019729591049382438813602739121744538877629788779371497203002157122486405592702419775773267101644021850757617250764235965723611810372059546802589278649609370879902683762978811741308124322665216290013974206721251152443071559092570826022569143851445717823566393986351502398259836366420576243328285138713562117846844351569766264170581140278303154011288129656798794662231910768533982687757422961096992387626325334154583478589403295420434986680970425075678844767948427284780160849664862408054656462016672898081672861951357742371771405524432018636463371679405010106883629708030333886604745343025365804801181459200432273916053301570785320386353848109789940983383325371087054447809453326736570141013088614214907615295510123187636992864211892652761596724294873619311411985376031245385689074450866289068347543035418192375428027692117197784979905653402475184482698351904176489300730004955784443842738720547253165291148246138261043451705823755251996955264440855031155029802479317315785827800599321143206991016316685082465576296154780689019592036548834149345342635002900969994014343029280249444810293260843896625329020919911226469376717095137045687960437803282434327422809469000780184307846083099674774060605958258614501624767975888666531724490767673591014316870196784002214021149738896330444030390667727320589381305450832944672863714139424884908625124693264654423602536159306683071054033328675518069430323695050750124493852601592568182020941652233428804841412068693494887359336518578375450623582788658948789619370140931639451189617986316821264409425588467425288787067412618994380623882170152767500282157006594426135350802003170115610269113520129612075070927460402848031860021483139879349855936387036624492164819048945417829646372930099787331187984139661027694373166758179841983246939812525009265900874445860385522970465538718402540019070843304000672726976956932239830409350717379134459009614487385073389959906113701644688383760359115633584246689735844106215557433672925175141668358293639151504764324688327592546420612876535687686165266609267150654305675830490532934300069217938262701922803717187677711303422474591929014305723671614620413589149248667196334470980797508199665133683296938217400358485778028541447516171938612831290155726644183796107128572160664358134112593177397551571655637878995887317613656928266637798771254590098954247153587093791671299168997466666629235813633685440780160278143013719085913765111502190785899273624666789836454657639165633713603347278097417710841868390618619974237443775483594202870581117390035883841870152241098202939405993002746439306864683242186563121343168020957663310598620960027102238040374704878914786541971945729454335434451906836888336965850979539616960292774529322609082818078618535224781553149005925088217572280827249709992113349970750357826530442359937273074242197568715579565536527744782064826288389967146314072372243150304759851004956756036624545624167667885883235294217995032077441875289369742262390453194101283083083614630696605380281555197366438466410718595401477932185631892237144452909347134821643152386190043371295849097320661237679671400450638482990589576479881862168852472263546055675319707235516565251782080776400295980116675315040630764945274035506626196674855468359304241947092113842652005107083317108777890242391844246090480236658444883813156263824174302544812645771152705874475950891911182586497348286573051215868205624943772286006055851494099705190473899066357187299360853119636103009913318324097803574440158047704026477269502198666769236065493394856268590204931306367897907332615246539250679157916963388654997653201226349963450073183156794889908532354563602611021628274305464103769070115196415400525665922306912976971473780047791105401805327098300639831028454637703574606412855331939178227237272150648331395787476299395372357278190038177851235360313426443441587838322352214007657788932463858474277705256238783941650080055285465631700655898727108564677080494111874301011756502960744282752936433342710866345158251199359180178700309905265832052428651673651078129986024244162233213847340503343556792381482131938912339592441584952791251678379344612360723166707264700445788399560104230670534932951840504836168398875219462317935693416657124494146757868869960387360411935124707409955695906478510289349276715960714564090420511023355271797774624742127526182278921888300514606779157443897025913837476373723100681682170138584372835684980340170111700537159877538817803147569677901659278850958863805215699741007994588943709486959326495036900034587975512669044822791798982343879889277464017269266328125555006110189180378134023057790546379130080998069592865783558505198800517856192183301699738448341403973002652357080941985289709673139642399998581998275857480196422686656749919169552526624019980233945139639989845198096290392551084957706112190676408180759315268436735470748698422074482824667879811140356188714286381549796536914377545508538945608241197185409442440220355561258539102934011373566544140253131371695924823032535927657758072413120763904849244231785636430264313321399186384930110558153746975627469345959781089308767733248345234617328595697231429399194411290451551275043080732789080370238998145524421313038868740575295191250901147353007811561787811821167706508880469998617352788133528639643527886746365896994068374294936345817546598616384870813576494977768862660709226549262965183572853870373928713924844196557722666805597725343178037264316896143867428361573224790724814011585731123465569277547649857148696427847722121838337054305350934313853390869463610759966343931165493986706197987905676379801759610884787158871921714635990547502889187202525574943055598609666176758921452501700703276289813912216596396806336160749029001999625596511568073228032714813028005832023073193813220985390478899083817018813855485873599057805958881906670991570946515216104222836703218538546660686057666523692637723745450410597612310305158466945056691651961170918432999213871302404529109065203259197623523263035886589903176037353776154578471595411763449057785021229825958145614335851428390963272581580415530139346261385454135628482212266222142218607120840625108026693433054847972259926304096236181388174435807172824653004292345450344740478424275873531320815929564950337794911864636895769527799284013929123832864594421164228987855772999951103366137025434103996102874300238745813743416598412743989121879510089599676527261219082183212623700959208592660489298526003848368347856450600119601732935478867045811666016010528205291371381507105990323245342979366851854837686824869366161189240466497885678817382564783795508308662060302095188027419308645473219900735098570603366554984591836761079956416018778811651574139549670066817953416887517999981095874018922288237376230323513336495622927649198929101905963817133025014221631930793603404484918961028206385334340430722941972411865186233027127537682167008055213541897951467209657227430360759862254191492489448977851040403983477135522428290363659682667893535630912911050000479516991239570291508416902881303769318098775560922405559362788582755528235789327907516941929461619432299244244121578402801702497132304088630204389802732774343201058223771128409585492358635024561900082845756636007115995683408745151915645631172995164755967814053984517098675718368313105795140914929033726977420815650386302585999823636011167592461106344859820294228996227807961867038508494470692518484409441545400039902553444593376071534653684324441167490260675602918644042109672917409367661156689356015636038399553627057895580426552727087396423832925660516001311277016066007746951609573034547105380763191803893835621792472356166197374817180607758792096772677226583973542391288983016447834854916759265813455311101521112366758846466331645725780521578182838131198277661659582373052291701432298512024968944780801530637763770574332777698871217264820388005217531527367983478513015264031582375403340034476796676356831451748475308325201895658704953495282913738481328059532551835056873794449015656640356582763404413956535805279866343101101836698913341210308948916200808401344670507425199363775589288736190964664008441097101723652666914754366752855521636636301230348835249699338516819509866702220950983738632282408238002011278173105730124117158275198665354217549692056977458633409251036592455786803869815531551154249224516692450780154513532539368958800445899788800229601202471457090325807922774780075967947894538620017191225446219186403019883780145132866031181805270245811094172449524725786069328164839814578137378294444216102629808249135137611907725156168675933901986791093466315801479333599991687247288292596969069596416789457542638570034979356477443466659618208707419829310926789063372651928932716602279505286586128869839461527528103919991211350801542277353701640728566941932219062809138096674574030482233101101645651288613565958204396714898130170033693328385277176660026373395149340510836404097934161404757446084608360945615351592042632938673946983835857454849341977156988838102722626541893488691219624019347710185017709860941617419397724067185509802577838680202336295946586825175472121796516186728631580431168189634421559414547406919029448017899529139774757263678970646767547091019026375800153936833953964383638253134118688912861904841328197363300823116793489021369384808050722704802879850044657707728416961100639064720166793758726209519014139547584960415041616975705320713279226487310368250868270030294319250479533232460562761175410460018352960567756690034958707271626595824787013948935868827745813005876689164769440948668182203872337951337901314538450912476318622564161796311118562077186474733919761640910043603433264832630776196012051580250486118839918381388624486828297866545139853931913390077436705778340660546795459164163967082362730264159419424076167728961614751326240827535374401881144152408990205293050315316665461787039639988561786989746606928404543321116720410782067965777961004368695017015575752955228217369929887423562698180566678749008682801711339371555461062808009163074515653056914977545455990753435018032918842214600704229274080429437671449845551280481858376427566585620491841371359616328905654639583948547343878159464712177937127425814477581621756368245729367220309242601112762086089711062611790059762494057681470751057269061533156528383972480800296636441032491979587272794012514331236913460018371928039280844112757084020463052517895432460412592981072340645541713145316707800857818019814418024394410284113997508292839763079835821279073970637755914599953177559414211873681942338227668746399956784296627570367052725519098156283586448369927074908807349064350579713559621385759586108732131691452535119555460436520275922072514758716800101546491368796445620686313456132495140512389931678526962626817479090865872528166510403055090599166647956075925606881965177961292275130220925576147141163164694075256347962996234641827675725001327259286009820792010061064755290172868026243953974706201334964781482963129785229479605142601094094835344739504475764019027012708891999300047573013224098676380956358838047026513756684625634874685299411306686598356638471584946057866779129173864829627384904224417196361880539707929872166021511414748945714285968357730383915729118383768439389461062102935588404095862583991001799471485401011852832558260736473019592498107350714228798286881217231759654595251995922538415733309084625959788812791714504407991356676485118079629198195517262176821876603522327335022572399943036368133619109279711623853030820923575213642532682882507638308513938129296473123221208773857875320892226794380934600119184681560662059283753239519029190750488173746748305653584604479493951970009911307230731660075735877413176455297960091099667234553171279650762588256207198541711039997302891662844074675003915648173451558745353326692951285102467148237909175916538640167656666488075779543393724120586943924143868732193216104643434767705179391599525408928949333831873562291433240905972592803589004851833613649599532672091137204841145412038664504925634061297355391135547766614965411570672173276127195791061789337244757259246809789998622187510992812248582993170077541806782904708461295640260306852332095128353444672659080863079969850438973464081388205787551319475132960747636658289915532489088930166136936693289580854243499176547627832342564151341383523918351906843603751423002727256822225536492634814571826684733376826905073574752244213020652400554803669441748898490622558298241647646990357072656920947232504790804671296526975377852638215844584730140200808497407326666202628739708533445931707289919856981834626310710151311882063006612704422373270008044695938439619034211566066713117688887885497306786778864475301304320352237704477853560857820382421010614180411450940861869973130276269382890707486233695487845720122372062108668563966651090311397714148295070234552591154990972472037995429640304314822302834623933482305820624385797698579595691196174203562912180349983241292665493393350206203148770886210447350970858377272358268659025470360282230338268443885794386629738458688374035835588673408526545910755589308261747815511374547128076331328822821718782099912176040176352734689719770678857483383977308641647912573324648541489465559127235829777580986673432687455427322317597950767975165085382035012180132560344143953419045870155910184173787242731761115020171464468016545274043854371231499731629286725687918087585480469913930240892290869543675313616936800967794537045307118713449875127104071499178038517909691278328338123676006605893490586557870456023194141339316769154638383160186440200806075876007485228882451115513792584957623790056971750296278300973017203824629812546741185586373399452064516056896043191186311622396957772640643269755458134543033018848629691670359876698846197511535654262571404801190690639057374295750794183005729305655854578016489558404944782570525632776854089709270092864701916376936572592067409215649953301900074357818796203593719860444484038591774685641427455150394835019279484575713814737787617693965247148489871931253164008027022750815057990910796612252868461856856092174894221927399205627306175977137961685815818370416124739016239879089232802129052026722037646192997032993395643543748441426636406382510092275263114635391794416666633595381025189050461245901313997582946982666691517021405012619337595145916806954703017885494320246486141199071101478824902852607057886793850356952057462710540043696041149677411184603146794310489353240427499669190363143886839319008981828167539077138603086209068264033233861850732913316182323419633883260213730632092008068438179366710382627936916158428805966917935360905732489135338306399750146278443999403991796488643937243872059227806709671083826806152549300209060318192579897307882583327467857287221747316859458571676600898102730335366937596472638913670729782624423283375633849293107195735003963266698701250100412046841829656805890851815885642411306540815833499319583142431391033201612686557396458163944731213038351197544329348955978124771900225066503343265765535418061729015583355206055370430533622495119234152006577969730424833645451345016442039023668335300096906916830461010952771243970218950433437524460239308195654297796391733424227581954981633945518315557240086510870297604449729163190929005401246604906309086588822451502470468551157272427256885718775216269147487882855089717708271073506412878122652522234393107120886729321784397401006219759874489480379258374054242951857357262967780292571066362597586015095889324972494828794176280843901910317011176860808206448034152294065018232044529995880945496508801876122416439541918306541559838516222097932323631578140731567080291538192535115288841577498437056048421534815982903450190424953099356023078298938346200353587739870964451964920724407413642158646481699760979326753710369119044896057358464894336775848640667953285340771138711630908302732459130124145964229719245658961997828327519319404542750018839697672466668708658157203835245768787484126994383030422341513610493044027798366976110821748657385080893331184473200548821336681019782747389976698747144691269097996772883206307988800918944684980628298903568217336715038856718600893111331071277745668081864690245509528769172521573303467752410272670457136327286849609314521075283734862336706486453846418208552779594156884453225379003902178314609251429011535173414098725884759961918991596074390700149778491348367867999190435687039843788698056018946115942610300395636725542774810356589405482786629016870702185858195896902352754153041780314758310557110993844698492860755560858213458799929289966800450315874899952603762650125061094234556882013213373443028301550569829532325339455173298263435541097628082184879651739539661217909616473193604449220479928785595394547533954432476081565263345679182640858330298230408465453630555978656023404281051817802974247003331421715679595657546504641924429386715468024299495594866574457385455502557679801888192806750078817518976798624829951313248434032492237817664982243828680680589808123263384714582056140854816574015117715202426785766139951788926067278531025284373203102332263185849090160804186379845857870439379790522770532951952134390959436544687167841455178820735439261539157592898317765153490340368516338338336219482565102311538008814026966054079081286353649298602800101123622514474379235389733774788154786927690578274515979392556195345093702002877524616097317256292274645251818347696018978677822517528522362370355099535924322661485559407593048586780614648818079507450365998692998023889193926908840271372379032188155283680130053402977365525813543339483510928968513003621657248714339981311423622909269977492922604785879134898451186900035259176021558658829551034315544840174703008834298493329603541498139346369198977675418482494548900373481686177267927289103367236398270797294083695679942475953567645184309680795467275812858977028904498223861644861602525540863282745203451411172268140916120283061481575477779757450917911899165080985051935771936233434135007351076495977770009155769206594684385702010037638530377657876989988853563813933618190629802798426087611736190304662046608363960331015517325363029077964558595486908420604577045893265401943602132640146541134431709515675634317014038712362348310904121134129707004556895715821951856706939159807971106096097375472599944224378930237676096380334858834420723997113887848775485102142921803594552291972158720120832397509548280662375810765377551394036433142169984645552927919853570145685797736228650340010840207273474455563426032127952702673752027186906563750058537765947445458268887867831211401163899836810236919732737859193757622257973281404592238057464168574376360908941683565780906213123843631415782787116392652540185209935813490722816753737683853459696682687318246568178472131917828158808692579171320354502433477261448572392966041374029163447459151661859702409921562840331780860913820920137198651415243914753167498840989449005542158186610964897348123687070784624171531949598050745197721908433673810042754205324748520156809335891142821714760011840845012056676861404293861347188261308892909840704447475880147364048784781849570295914167887933100395108365652125539937970444605447388130582738353699932259890069748789241910625455404818075877982428181601142909077570407773521549010036128486102109043764105788128249888894669790447854688709867784356724640719853058933909802836636739877330203035045346656314265874321218727791223760246794505827112108895315338190259082558831200147023923242838571392030127520587062417154059018767050236589507627823760319464715990137562715359317220929096013955441345013941364358206816914364646050077880732076594913190367402003427798806024673705981279311318362793102790659078568397150490004293802021144410834768909661885763726100739208327529921128805526722140217831754092696557692004643242255609034707472336672344386057610312544768748646484741583306867805831893227545897961682107595680805442103823423912538849305122867666955934332023614426145137947522657185738313516657647496251821684548220677046150446950977360035980294980372704422450488864174659230428128876205625837781755073116800652201842898823356603462014477912906288932470364710163940656303997316421624944600609006692773668701502900584945689468065604519300073745222409395743670873809765867069727492975687347404862448292374131164059689452728981713647221417397252555009552746825830195716068207114444224405903739646340605242486567381549982777357157501045591017498742472409423830341943384337320054759280775717322984922648158314975418054405178960673848080868938426916524174731707013432795444298463797015011222488907480858502609246939469143404801397845120451955475076162816682808768075050398247310453391556723431578316103965294866044258830575179433215811059694602433179171681452229684525635905860239993080639449742811558250240367618927099719471834002892701719005381719889295030636272766610908863518016468157459335719936305733929959687851342036447136753532212515859402430625842216476321158820989109616647580376677898381634318833848790927525294025423911930539487197071027898628445645211323994892925787149138519801678262008394393138312851257450628790149466460439801365062436846235215307704085822249372044043204685583142241303510653478433722920786225428137247763880847800142954658793312163355867936919104150364033058077367045666174904966643167609565580857438864166726484264173316553571923961365666817271631247846220661576194332509547404560325388123668190375616342573756982121558894175470480741538856419032791084015960685294508294202650609937755092572138625749315544134811310329316200944483145703178996523232305839724535240361047243026584038071287696291951298108655379411494922032125010445906634196823011774393867657826822289604974427707352162671375791833141491486680862339725753338079055581929843507118314141952436698880093876546508222867046925164714801437120778839505033676610384764054107629738158724157557445236962924069835896552674104485930258594631300487899717085211069908584474982810707503199483522629783596884438791856774390754637294122639319369023813352456845109422900420482636409202290519821344399163549767448180160339349517802289448649890770683244610510271015463560949233048363807399604956668592664134113878746535009148380185592044337830081423136449512270102329879417690546933076652886190470596134577836254167393741755657152805012965834071476663542197798660858749460493188443285143689823710450184852210871548184631229112332176177687421192094454744331557692822107244949146661211296516228918258747089434930660185059642019886880335101507154526644880443643962341797901743510034760758661443084704932316335893167773648408098317382053674840728409537002846736980312767915919866678642983224184621035875071230197593724741863849047605422442286201527112685109636387275379225232250963060325905209581336029061610082319326794867877370799015952396821531390998340523081092367073173676462333743487673910057828923277060630450726622301276207247615991932367450117569281074316574457688745798593684972113917577036894563586518350895335148089939317383199054256436435407959021921475888725036946004163298283370341598896901430538213060354836378912411313516318801122377472759935807534239381558648503368935992731894683529435213013140505887090847672988895612163344169965190601574220541805958795776739175328015281156132329465179732246484572032307319479499505949592268262363193561687953566657371679476327953609354461141517269363871638379453403025290341389240643305344514435433449164103506594073618854139387394308873455854773230886437679083698122769761073245477736736735229246287968066527129344429045651383162065156480246833148761301828916749985314324793930336012615323357719294232162049850326344989616938566492102491898135243107619428384053098916517428095450688804411045849052287122300362223411459178842129780233370054602122914371103215606806057923794564099201329067500949859989269954640332375772624128224114517468361036947327307094544582121106311867426278774408163590140286404596218497428433326572168799413821861148972709922767082812863138156080904131218009868467980080610378759028560236904429756574837519275450872874057985624882825625796045796394548119861984368349468004561193653011852414803793066044998538275507370727181689104200936105401018902290259243560273339337587474168177383881655207397065598792390577132218032787722841959910424593181039059783377258156676377473632979643033623018946677462650642673546339386145679013374217834675823631902667737322537762485552987901449484323915750145530920831372151577544364695392337192758910123598635997747631498067437751044549664570644673211064526907341772726505713986979891366216668053353670848826887644836677707790489497787439577124386358772893464510263043031203975600160994545577080187197201971427174494816837284425015871089928167450532417687191108005285889918835229755905975755624069184756346968257266450198819145961707250171667080020416901177981429661545427280070763190578703658970390988585734456221777271586845883946240024653752864287734074226031896351483928027926506256999111505052564096510526111659131267541952090413350844974859738960483459606841588001565620471794599840114966628389556822565891097476635882298696006263722201166795179833486512658908004229181155341727430444449174332188334166071147217073564579013389454231045611242287577138860632087525860376790483455843415286458519855000999787124391120004056327765798589232789169166285522511459553799014842349634034445541689535354949861740536055117317346249301813615169477026622756861464088255451073834950356739993731143503162454015294203721887379851574643864069048240116295902297706514609658530823277610738798621978829015701794746757639254560873219785036398768046495572863155367466054291972593802931186058406526178529071502029096287184417744573789003493639254258996572081325145367792199200607446739170311624013416180999640013137371195151205110139048267922434229906361746273803649950858491334453416796997804981024469713946497052465551605173237573035697694017732602303134172504222941079500111322051231145608173035256423433640645838494058012136944274177163754370462665433640852217617984843627260096603358975630938250126852773917477505619672591944360530862918094469347631726866258519679387374962389536811027861683132821162728302925454873382844223100292739678713942996513279843634972273080528241211912846955092209216055419892504285957084935097299555840825626627512128892401113370887159717930154716421077617184576540458121756290696507765119222209989349190755793365307524472358979499894507754775127998989651593576616979287152376758015668901437867267184109433843579952318321445517446904929187105441477526466627403642850490108502301693064898032551375178288232091107550245150770868344219536090670166630666945265119586764574509173038148165686013262084511058235121069771591082640846963912304191668078831479942238914646713409509115463836152587648850737354004722448763307428913917219746907726061895878411217026621256854776611913475089296130450544901363064546592145964221602013173766739372195121277578369983300440966604583081837418786095003320870303283134113174184721142743763077450760700399921348294739612301894346434015865674983140243952002129126534684920744154960997860352355614290566963781347047780282901360076611023848369861491539970991208039537595601778022639132067699612149432881336510555923767016202941366380956714364859162691377882268498320408969676843608623245591914283570245094888143626463209590745736187578713044814127169293208474817324844091618235154123109198360515052417145473105090994199172603136840716354037145352355223780142990787735347951407810674466209733955941221305051227098948409092410672858533747999469670278420422147099986727874444230174931349929610826642148530099208415701294588033108525708396561566687724139257593054058697653449656580131483369501125688640339700701050133883729330356135556872950498634835035022033006909612455120041491322938536195643337753741564454872301616558356418593655946473514388592195026967645172303145951426264088176679857447404158006567369769450155428001781731239823679857122830018622462291049338347892867998548252767834258989443672271798651118418053644773976644381207861414231920342903877742910949664483976738147001387727291946715175616401866306824947881890396141487285857017587943557210423677434593532610539887872286429279280629425001392059637158800893825241847582379367750669307474662241865187223087448656915342746254006863585733941831984587839211659757636755270061473436343924522819088628464076224810609547008711580832126331525067326983200243921379217967559516004336458469186964296862418635852288265366454891455348356608826146748545520440607688313737185975253520106772754731382996922753743521016423169692298906940381043902174165327127367741341018202440310700930201168515971555776699617511082526232258145209151984188245751138240891405379869419179377057430490137538105946808405988776826754263431486073173897995641063338011302130750831302146382663577317516634570438223187720035363044535716587616202018130783141750981933196936297956459119175655040813955777481864683245614126934478144742940678674103784235802011747762483662551036669845873678521467731784880232278023120691106656020606352639341653850647784948513913081383517674342449092906832754406976172585507996905623568208759700305271324905639526086171338477427326625801179955991567746534010296587109617462903608293923173534382070654372349748260825726335251313484794570047048339242770973768388869348413220211450114929936389331812720683295387739813839151304796856847991495963797919643965412094138348964069096101642037585979381574958795049818171874647947408641500062160248392514494569921967091367869079917063961409895812849332800553828395635982685510426641346533923941828188325487850103177709225566465681055774164227496281431283820853007262756134829751202842294414337120827486592531309172891483451569994360000782355567242016660372328165600588886555698165287613974342260194517215627358587085208475914417342742825690742663305539199403864907980394769323871284857604205536180807150721175209144473447631151446208410012150594754976194684116855128526013192296359623230987661187657592905579646233479489431189722338145211680246655237470491800088818274970214260607085968437472857924157483344894690180426639695404604197411456264117578958032921610920684487769714691969099662332983026720818442865396364234317896222481465310378684462415624542425951873240294137390942922345928886637300454629723305243585593950000684456374034717955273758104830588393109539664866977475496842703859123820689772777034482071099058491394842858718058062975617204703230434598343360813821969808301575454616870860089505829644670756483681008660968475177472929892658241282339719757690349961585391325886814770867644910760950467184880298973646340580112157633078977469084005114269270099954332234529596924128647919666997818003368905621154573280495125280788903193583842964309970125906488008581225072068161175109597481519779330719385398829753602803703109547616316877432926267417249181899900322640347090920301340630570466557698395760026375830160661857567327152263389757429476439300162467597117319153098314656839494885982176951780365542393098810746719754694387857183426992561687839238799243140863447556757311288463457235156745335622366143304257681860934905474138859001761401499581700916852448528935074385295283131492559345020741887896703329965212320266501353663991049203686658786448303093016156836009047262605668563155340253756520595948409167985351992510604485439674452189933932876897257840369421990389367200401833623156752475264122367389239807474028021968845732160016986535438668013820604627111367480995231322792186085333471767912608593457541241848353074435282935032882810443156895584051844689515422907022936017722168863037084213224276251139645080930802538213810406103615856548433056653718905721221515991801408616388030553830277368523672746486096888212200860658250793878270241697643447720107173218493059673360621580394260800684750069069538609540915111135188686609062431798635929959325331437728717367978782761949736459794798633101824414626917759162529575325991202704534399581117444193222543915061859933240498215483057324791263525014552118528408862231610258593924076209784509329328907262707507508417263681580410660516023786032347975383421544186838335813463467181915257692836718287332845730180941427769788365474715824247640069129532136238372164533430035612571057367544728186503259299491076352606172292549506380120017606656238567095504855855042820808828752742576626103061215682717241595346859565524119192253855740077016459056932740541011780651067918595972533954107652175590764640964394635336067052062777719121317795391885918237779376396298538207410380840353361558732881352037323967251326709183040898835848745462097327303266623650227699040280212577039477626935813735582494461463055170106094050559308898372969750386938203799419481342654895427994390307721182235423787044438524605668979271729040376605879449207636142106145688678398526731344248791976454646248613673968832694295936961964128439624135070505324374024572092527881955727810922353904525877854362948386915976320000097110862312975288762876041838443031048113377538759134395591934389388249893695921720324461873559341852446625626429476331248568038960493643569956312191584616108346147409885203696516888657281378760533502142592750918580707544901522150509973097642474496988723249003271471083103197623354743060921113538570837959554862560116733012309646732055476116522661877293927217610233631088121644452321756921381598718136327603755839075055614644471704270707061541858798865973353143100629448332042307212231397716837681923719173440678251115303797229431032858530691543901606878259355026283825893308627891295786955709388393240969126597480525696495337325253544294241652895272546220288682018656828817085269791150386054703613522506816422228775847351452424778190007730418623320316365214262241242294406792572577321823534965951622738901221953253246677154598773673906645065133682148719026380272105182080173928788204444607850395238847383269524343790130792104647981340590319487403599966152687717950608031362115071516349920565678618854459735344362373910012910023069895106093882788508134193773305003309916050588649551491991471937781987704919752217256981282108135285161308581082026959929436887694409316664789129398445516068529455740367326475923237306269193026900767121796510198276205832230435332249451132834856134884011378422874229871248424298731341315589999306147280058925802039114736708070786741404563426077464877653644573067886091637083983755506812914000165484804597040038970392259389138763161285604928127045825609939210440704522182391077227864665173575809471116947743022771908642408329403598885598310843898604459706452005567397090762642839850200346059873271479754023983563137790838163742587225219001839654148811386886738705906012325187260361085167870048760813756495575147112926074215281787506306506713639424380431437774027720081717118354142079100989087429915519485650271399614134249890325397644723033851812789732988981421238389108840922857776184886805068926463600006259622778868025041696311304002520933256002895127676388086842982605370079403278399102708621300825095510618539155312123556983080353541194425302701757287470016153214157129965956657803407908513399388310958315311997791214082688911754591358277156852543931498167676060100700361075623566324555633308047843536562312861405638431325933414203774010675278071251211039194930118025088937528514331055279785495693151814278341451353028830125567321044265428634891216098225234113535181392966702680082371739407129901469459878145388519544463930824374367406171977667654605198918245598272428234443418981279823239729885416636359424194286559964448143175638226013355376838014285454653763659734694327172247921671133657734166948579259974587380715842170245508211971358292913138097203653442561678978807591726450376728415741205269293053320327649609358393539704224781994252027357241308864122535453008149990875697993052990465895560717215541835686930898840779382495383736523175175777148983680587809956551746148295778405738749314155039069114302025966353460709183931932261779659701259088335350780301800552522498767645657292245363854151910025588333107568223951750968598572495930205006572759207152359936863928938871744138155375233389663445850764020495412739182240441039482377448382364201234500676448729439418756529896241758387181496293943007045804894896825127551876191184365004379943325307819847454715698985772805634098443607081168088092205802811935047427462732264851248107454135307199636497983756326197300015938823674485593497689895695578735473017469632483266878833443025371523965778548228549945005622002557916959557931339136585411714936761072999516846595091859456423095919344460881677889568815834918328859770669260773657620717216638750270470120761303392021312991981101399527044716233908897256808082726259980065835558403165851888942326554222318553893669291002085730237071767436066777890420757708902229286221576047587276237230013870063247829891750298019890879963511139749831230994614466411953146843682624686138691168943371677908122200153384221617588540366633840721012245324452067948069636108986989304771640062939615402844435103724960273052006930187200116968229934965674935589311893682155008066317012505526212769593198575134913344800435637195724906073661474065945291605196694321928772655238018618799399537949819472399102238250555479939760501980183790735463111619160242075765537687088503160319801260580137698582332018270505473615127362625609236388356386015463727666400095440712733856001914074067059528702345545107295040756689058894069017508458442452399607908218903071686839225731218018004392501749872669658299115935999662450947514628164771295637422388808734247161887237072215037250325797704454134012100337174395558005268032796808446860886023953812751925938832216096273442943332338420654968636083565560234003327038023459597583569989354220540506153847114518772680291532475920178158620802348100735592999007440493478591513791045688415361475640051658888696830987181387311915746318730650229303764218186872129524015992306627397594726557717525022208321739061812943254788132225272513213254079919763026286474412789035017105830148478216363035008388968918914695960992356167266642731905519010376638166439279642139827750852545131588623610280212909545806446057508293260805809597835859671596159641095048508920943036732824917549951829013223918597344080414430108794658789146488372137542073737686371670323326705559295536839574073554747447789125790386381657208706986234750381917795057783407773291045808413055789551516915469872475425251714256261047125696986760209587269810214778378132321918120674384749038766139430776769525757047465883419937714412602541437866063724926770847611934389000046074627321200588077234499163896738490304841642578305825024712848403861833698670322675867315663043070064489868765886091547333092700031282285347888029906167614977994487357223195345578427771848998023863671911063375654131512134063977218807332033704372977381731812158134777076821886576350536757838413227916853378572665965108199399898536006576103458845751160493814781788972235645565252858786956416687543153456810191718820638155359461781564765230815940296620214413660317645736920162192996102760696904135929651419266891126872965116755499283501935688528086836813364634262217531868700734385386511086281841053116687143216454284673035711670802599882610000028017206611243291912003319238281013994688179538245928451032862022061584780257271920645822350836127548803768855293866108100981755489806725617664564620661983300268289370415538189953970382733400978274054894519985968219215399349404847877042223979847535562787220872001744001208777349376377356621032877145918394430507236027990287807826777491493220510540325347193425446997234003073200959676963079329759089615196152386313320894494701242171051119241485119320297076072491980120079682932748301903414275630641961909773672131534084593113096546391283133063948069162133530888381831809790783922568058533170468278916211065143309384952973147942070239747906127903748823172658825531511514437948014547176298858069524633759894185868861798440682923792100655941982842612617315768475040455525779782702944751803308842693204981739327350768519810427013161830440081036897024979099804595647637466427460155190367211342695609044266789049788882471916797991074396676828918155701278898134549040193879441857533815396468249139929469190924542698706163123361657896838373097174065581745489423673291253231754564261727873440710087330048382849214761423157418361300236615771150477724998461895601482462165871606483976849574843988605174612567279761480079881076436129710460255678260896785726168000859873389603802422918718876626466834048455153134239687748330041746764890766914339180987154765632483712407096268202010853162425355356740303288485545805452167154109887010437508575489878490023193785403975313770168085972583428111880308100382069893181484456959413264079802639410883222009739493040850583751110184449908027043320456540791273800262672751230124847358738319980825966722398133332399390562789194696595183511472700298751405833342731365983188169597844844053084403829375156490392230757428051391781149924980608324421898818732865271814633842295886886969528745173467116326518531102745362226630216951229986874798341336859578969436663086922735850994380700411002253278302300720560270585809965317946236547176897991429402252938830109320206202168948371964652049342953936571580011418662181970164814629452458486542541868996406908017370017304952132863331628167584194917505826295266655474588062029957516948368461517755335044189998749804215203232554771682765909211319503958810638212804518470099995389660019536722725191653627692973735502775739782440027264815624381760965175061028153622314820318981301316037334444576884435823805138057384495495127130312725055710589120812862455941695692343481477754470675906514293017929023194515507561704476588440200888132807635275683807039000190232600068574404926006106741175227718165890509730156039271876147706319664936226975007633440445018836759867259007765864728097062837776765502563087963618725284482922016574847865826009495809484731766128387240845761510218327256836820237030622620598567100236351526207142201364004513000042528332289584855628762345752756172698784147927336865302345183430495912592772426900684434088650527386561617728892736445217779627426451821104672552230922777174600719504091839244569562988292855221689847381628965980415729934202626481450193548795446228054424883522677204292521053250208044791954767089993577826127388511246402058494427974715191592338582730122611320897765767081029798035151336681331864246304468662979552683061897629968215384258906508999545706853374424344469341478201356571560747147600479787937764091822748994609555004428266331421908040425250018042072001372424433830621028411091740660834048674590471982976447886605825884292668313729224254485521430649561218246495302406562519811168246151070491336461444341684246322937832013462607453977998190331074976442568613620965552746960434960903933325899350623282319354554404454225564642671118067541141636301342823403512366843573443539133521883861816481191914351101309192983137964619493299603205288755891197832996720281065378496987986970014018323990064693434056767611578300920776790065772205433340839780314907699688167212920077847839000846125158363422570463292253735188685705940753265268371840889480239189746679255416597971601866653014097945433730466408799584004352513582668074692281815175717912646889202684964585836570033766023112127134227072485340610601326350997822360836763371946342264803948719866330497774112102273377224858857772603411519309036659589343657469533246643795212060782773422833600128928017232206931939415421979226016571299205242402611226295424717501536437582905400958780802263596842704362422294434359522126133147952799867856478604622916723972158130472791748615421818929824957232370479989323964870101131688435513439280886801372789923142538018743521196645615020690422977542821332277441022608365585042056322326461038567708036853999357103075207707787519481912999170380313963192945910484520411835014614931921388656112342422374101909408700191644238865432282920086611968184562339377709484925206476717759205510508077317584497435481506295201998104331493138667683515309214894282418073447053440909676657385216287030543111754225679969658546762362901105309806525241933553173798050801353044119709560809399599066068187253969498418017414530187170131044570356385033246511037649006185591125528971504718684125701822251713386535915364473937254608837191020451769620687501746646468843359174186523057120238538046417749250203389173971180201891297661072508176338605840922527741089377328925449519923930870432434594164370569236267292591491519814358046615302798940097566851189196032225537107158767218833832606115014633175921261614554613756378510140225614165476431301438811795663803836670386049324177208224924432625992403354095869220425875471437165002044396751069182450125457644950376091251975296356919165127724071122832291775043102291798698259734071629022514496437288713384059679622844587606908465722536211351102042888179800043905972478361818255776593155975669545275470902929044268419870586360354462819872470623885347108695861978552391664613978215484151853286390892118717021192913529158271168769628617462883429918215356589727503321320133722482070384497509908984709092502203038960800360115148896893879079426628709940853608212100564285057252193985246741016972762386050824257024829056470690973615564080180310470948319634791249151008182383388592239820250536837328613610802553122875966094235235639781053233848920635176820662799453149326342093355971075069982267818094639560971751622881874427969702266582666909161187047504938347280646894741454751844127526994663343594875524031208554745432866501046836691034656920817080878220410576497505348881114986270106732672495872685676420635540362249139337705623649490230579376899762017287102686176950897749104986864194417374392523154675428649488958881497095837551454418997832506158772823704249474364907910246959203360792280560746450381474957136137128114304156764594377846741972280192448847858482605621188973788712104701898512628592141633081936352636922952042195098096815524924513476692044280397014034733872317204330157457344530851417342180651488755348574169601731831890888323668042385039655860594987777112912459838607474016931079428647481609044724911495781468283929207232865812554825362668981852909602340711095282883195301788235736335682861519657898719711490787103820795762280294156857767134785107915367027514887168551650811297483763530615812084215837644089144567067355464541635893737379425333902823085616065689955501401988457872193423532589007264238033784370332360763016213132745085236081915145051253938855506925833999296006898997593191180254087475050514978632987010562078772470267505923093537605026327849764607873553401480866439827390821674562511257871775721200764505572119307858718416075142806652741682665013100771939204066155627300006949792299312398380604603886029957306388160114109738135587789123191344182346652725630253397723736782588612960534967576163863464886742088502489627890733446264835309836088902921909071083481841379229157214901544776516422685624996306503730313641401696222775567197353541436604128798833660773496965619117489907718953959860303083350314210728312386128819096920037069325993323625987320278244698388216046941460186525228826681573395235183000875812620799470664365273818698837161736169240087345748575956010707666249800435218355993231602810154079959451222472025818013651194133132419841195782219796902086644803646889590412400984227052070692569897923741794470673717018697669714242103671129619352855758647595558132326261598069409220131933997204205516223488141389040676839360276213511796040488617779690278995479997773801625925701225531342148006265105189661095718720942849970996424691257012473441098709646426528591445964604636756754741261103584200517975287881124604457813724469774641803865423271440819282691470588503510320575266862264915937437439317770538128350575867325464623779560282219227472629936336089192759612275572148973993576119674112578474586409335839568723009337424091129032172922314742438565422427349315938070480877043131971267776324001215876872100887167283593514203974187904846129987859364634315560315901274796018887681568023915958725519160645426864117546552166650068830994326121030464281985181087669076478197508098019300168499814242957712743780533426842850043853692823678645283742939298231596540629419730457331424901165353710117565792086446844075425965827635813411067778059874564743312318737079190490673574057082392222069202544924362542465716660183054936136167811241660473107739351294823990521317693593602022070635886247067239989215392275894492001477979005850986862554984851461661352904130572587551051564220951708365543444078600009798927839268153480305514983337007822399666726660933089692066581466769416488307853352460199926891305048884808794329505542734363739350902030083813016706042128337304416636167686896266196805706200779120566117120042488840752467805166068628168936811119870788826221400069275925337960483190345030720967746620284919530632881990661808230404037719520137678403652186149467757421073018182738689591449410877858429169070787812763571548526872089218614090811288420531411812953227522366930352573829705573113910181041058145779338498295853373550161650465084437531757099283993148962566668480573369840849619271821958252342325219660779878774355916428412262631328422038284348798580941234652024967668951719644928248310118184167977327696162482850797958986280442089290435827379935400889846695984894206332180169241435363989828571345271618216939893913798558235769490136389503968307785149801769502618773001225364430091697263315593802244962275415759006992355181553336652489165453591627935364349847766494347962550931655981665316293799761296748608495957788350755844798451400895789586469438249079125862968848345560145075346949932043842901997524614885676554371034997001090430290043584569109449459357065271394166849505878459170258661593350994603168902185304919343149393645078043421722441095025222373272843328303471463015513984705946307184939459736721105055171491980721622611879459811862247070636320360956375707550261483546551474156242185282926605791211364612272828056819156579511003915796396408019326331441322977922285238870073391694118222195451181800601622597950499929466046716301315921335273408859507998062818812800811036481942316358449541721894071070842148716778153546911887236618763511831305024132581673220994934196599733317913699141210605768956792440384272887838047271452275425304832324897273533275119945065815708221152083390964347318720601073605934418008028579972549361466747070213690037585717060867527971046791455188487418740288799361583381821648787915118146052091595582584464123622578779793730133919183108732369799587902896791968167810282301255401545995801911230102187919434474952494164697800636010802785916095537724262992409580626808979550372469210752290808505030982146095654768902807666422804208671324893541007571401618496520891525276223053737228250319017555943843994501419111637778453163268470443756517677490696055449044366806876599579006960949386547134768285933590390578585751481497654388981305395128781700875733778511599324607261191077930136078754926493625030076297749416207846468850512105413557413177423458071269490117588533851781115383981672525185802734403243669029710065727418298782397247639634676113305130268710495944324035874517805279901756010732292122848889529065278159104197392190602618845284134921101128556415478670576756148560210111406981131552551099298455286329242728880129898608292408665276896591649277387792356154218215149094213526901816002366258445753567468629722424767546354660040069693341798357467795889914874658321354161067394562744262846735971330931989328225291422225475682267278307080441854491306102900572852430005745691767948845129750225011862038577168798330012076201244112793667604802400348198659790855833976243204358521586873578219401757620869349177362689968680567718517542149827272609366629150425034763850286048250154145820198991461427774343606157477240220058985192147484354347894051269431136897798736201446887900582175929084833843458573128723847484383729900757111020937722799590344046205040392640480142295857923681598959479233719527386005953868365599875951245769958819491453150402176324890409514735524278557515165942463574425467663492541475910877175450553017350872852767354872755015770346558652551098062089801367658325598574085856732756881240221167727039834309991123456701321602107648624192947451179156422393202643127150617558838191498016977488165568502267310460034096469312625011371014248087860205068865063900207431759892525269863485421011399033980283827232810182178426848069156432061453121499664471489179159156591125912803560144988047795937204551389060841284678880878692138036784837753781096222682481647307799448920557661638346852970707223925702324707260905584532148192737385514397723655026180586561669611285472954754768383974166926581014813009947674728977016435137998204113076604915959477479714060490817401044171310571488858728254157393318775338209718624005973557301692078967898029738220974504697355673604531198586403417851466516776463907180230705559482916214478700369304039005729089152329721891346442176355007160270347491421491670561706583255479171452644414307980429598891816440811319582429349077292240543312771147032353725805953045869470180620754995413130815404088880395094814753334297007525908844654494411853965244449018360147585141851777962288361525285147326676277492092420489831027627286797749071976290062309206557800130361560501697011850334997077960706716080898022116338674838078710081115849958956926741838108547650754945935019833360948782766325836656628588319459038206171932131070968951458051178358541847593610566690128382322132017755985404097051985477074834417198992112205055852090403156500713074657126730321130931852090971211590163541055190392935588847088891009802096172746971948556975602956680735935343559548490158639362230665012124183085697360421296575784013949311130851719340662312395895877509851495696622538713814540665881904815872275798962694329685043594486914425278221550648420591077861168424092026965974598072978529707028877303281016309420521778246211825753078646431801705037984956212873578306800609231801373761908580754909662924462483883290071566905751951491084235104821781526553845987282317728465938807224684491855437262815303130096557915943496883163844765551330938894597705685998493344940354350150149242664997611365093511975879954679293496803857233852422709781922700269436950661352877744093636357220746095446892761593963369012290852473251893857542861825620044935765183922585146201893377094230632204215440540862973794506045703725237447530040357786039610619060664179401948489818642911884528072271893247169992605713531516115458210282059207267528034536083947586474263059387853410609495601030876532031008562973324063803136959453500591655345781094185540557831209400275831595879986913873794743064015287416999539236234691550293832311358076302459935881000927562532487510834673476754472100904986332383295431739999419095646212640228422708773499846964572313758608789867122247249516850241503328828281588469634312414332959633036165395242658664392870860011514876045393599171723722106848010645897076225821516092700552346405409071555940964515423119026908113305559115738182394820942139370583437095596385102198320839351437154677380898736884643510621968745763419873160669521736021448931453285459142266202374949138494333896139211505072786111142409314101886628016229767404179157096315137919970026891760281713359205275017162899625074002235878761650748970282066224828667706636033332820382533008329468315184260078524780930792549621199087806186719822280615823020288931583831702320802782193771610864450701811298369637859123684571939493260173009263598940323067388329255819320481162672848531590803567454468319884734583335278678585535346603929798681932656701119564971091334906639486589805175858592601949624768570417101705578156686440198734795356628856907227605510691508986104670548668528862476894033685106917695760441026811128078532972405305919438889971785753340837487185627448941058068883089417599166180216971514712648004667494693154645144303845309657716834410351582458964974060935307359074404039175760674981845454004905247034766673627487588940504451546733502345052903674034759736315508165417204563407407766531672465891512599373293133007999447355908707156016276559143368509383397979278160962091594030495591689847734580087329148526901865143061058379943799671893686202304449778617592413025214211238603339484792853261262638713306414039724721939103402240785852142557202818211044600815577503513611764458809092206034276560043589273497201035139312457423541635407458313058501661383453673961718377511988355467548337395514511542188729567086479027448840687229562383516659188086463716087206588054705914363069979127544600100606751978867991985773087387035932383751339948628108223946716925271605001905857765889006569910171366897226805897249224999033486978260524761080445395310324981025370792597080831039443347890755437095613885937918028933725255690088602560169801476210483165729427104672638632375260880630117881109944493025530444548143764995440145752388841846860654713027114696882704900143675862398504580705915696860285897536851179562726861514240254133514576404464397183881480129393551919454966934841919904955771735554177996573540678968115623455037085654502922393909291784312686937232853941223720570110790196204796902390972183362549742691437548314715693432150964709736920636943583619689047839836356118455485833187787452028730055161718498558267217506296813154378447702618755421855782276984734775309154754351109097023047212270470625241075455273241001972979054140989799878864849288136497512414618194965440076974671440756238433447019728035341937176865174809949952166912905485433791130389758072948800962743137489622880476117066832527829724874644768936080404178782926535293043170247885652293631682002219730692488991410329993796730313803028783327467372143900586116266098139984598541609504224289285504061630384906071374506254935422787044560957300314937224276664713745424352152825458212395526881965146917277951580911080685965570851614993434345766984132099041422678355274128975001332823778237418931690948559883588601466578026996227490573570313116382519832445662964612257452160542532486174472793905001100693859584701074846062309967749826464060890914928076004662857140359621059352410191361036870797275805614441278367598545431955483915661031935634063189916268237870424256838636298839591076375343087780571243528076353598453164346095592153431614394391176669466783018233012725446116593835127745335970685711789616543629026342487781477779091522271786970858550434914658240260612457181555162838031248555151038846933370109558456595016929381767350217233946686802474757619465271690693351937083476860966849435962735161119115465396395981083964588490486331548573368372398770539751738868198538089046344121534838986086801687763694177727037218074497373774390678352233180878290194436133844128615556837809608278074760398411012743616608432470946346576629754399753489528186076728549347064727184853500778281386601438744457852966695354425688586623565908709261507177047027125197893839605618352415858091021446368897610361063537196030132943048021336746094427115658523992177886143140451591219776715412476047465642185078787193571176080217736201503273298774654268982745485289890881319052942418631619697270063650418174812105167427011436856989061400551191354256858474362381689409479417974715401036866444780507439507012214927563127933277425983341370135740046610078166263013188054446417720749796939557538102963215069563852840071890677375862668383114487574228430488845241559133128452678892110085131171482714156207133284867400266242761948388615019132750801963903754764516607681426961379957182738596412127556105387335259494049342047310446092252742208411787119306506383701789591784254590041565235778910806290909871610166307996457606429822422016236054555827137782396180101136262161404590472239608540893847157036835185872414810300342784821937985977289948264858146495706432887476029875746807423995391810499890843486130103807613775379453269483684707284733716621853971431683141013360855334642483799512013974508324898955682717462973313222446446423018313488755245334902092548368175746133589769648361055247097928669128736716489996938610303571097564169619144506375985270823095812647136821645226186415144847505958840973339832491719037649896282254829226884073709766865655494261719390948211872193600694701223130107265324636531506317981451032608584157775058106504008884204562006825585654737319415865775879608664721997358749524335982512124772986709830547543249826408874809343299866869416443550779209780584034104587921910806697256918131799867636382286403787315556836591908861865372157565662839778276774386749829269668029124446979099324062817913907064821369133346171284213272051363754234543707688131677587324591378308360833410667453258428922493769840200143100742742122107964280322979039845206352428501130710899019634607176763056102078855279544623620216949660579493447709389022297437516894382657788679336018490216625109797552094030554341145119229505937483120391015671348949443164857229247428099235985344045056853721046450664975515900915323443460318480082312133267405867928280899979806878092561552644059470286929281920784534948938107529719160608256661171196908979637997299335708139446861025956039992112107203057486140993278913044615197944439092539593725399466847359622473110905792517723809425461245261516283277328408908781509909069453998758423918177327903256880558491326436475191190814061383351976881737449926598196953638013540770542799228884535702447682833143129992067781165144281266447721696873901647585690308149111833880706375614508848831109374142246805591897332958862280618976308834825646339763281208808916025405910678097030124415607474953945537505058967183466864602248653040509064208423126752543768178158240011773068396001289804259202843289390462203004441780267175498645517476132641625669288737535785475029454906158034341676194548659546436814856686557280864123467157811719995042971040675217149931253008254287020033906897268572757559952450418037100463993260754890748521066909912919378039346380323999946949829134222778507740929334656956838276200937094783413517030550754947516498848719036111503917160049233881442277481266656764127135232315349289636478135952951077013109715829579613535522407938859224729304577754757714922720382009166320907523327612784877505410312287991533059627273320807396169203736882060749113328641796081239939069456967688749745997273239246713173911273192358146883772527832872478293374707162662597922215279563134284374113002882563906827175359328836447490402322669016347814321225550042718044813367056375636880317917765984924943949739683774005852438878942093761120234782118569634818062241973793602640275448888208863149052391164981727670853849987090129459955924516036732783508207318346689585335967193736617186453218923338231011422148476480342788355233701556363455021861851811566547308376536459162642049286868456991846214169634079513712957396221640168024339554248633251390640017350799272054972993725478443714976772054902060573002698330754104041653570345120143223180669544686074976317712692177312272880592950689355955308491278305497817658416289937953590843268726278604908899598225909914095495706356266150868478494387619024753713297534648138107431703376040539432628935964090626629837392823452098261333589224195925970007502008136113915918304630205932056561812529262517792351557845045097542601109610035408214534141814329671078308692391608263345039886767796365867885501477456701624313553635325890965730477707487540359802163915518830193569009370622961937906150996459172176538413296076275774209612820348132351063300459006803473789182712165334021391070048484789762972676432290380758790486095680914461723266227773479670607423403551871380178939004154263453956950569947134748698491699402669767155924534000004815847533293850408414955942177709563012456368086359505899943713654817755513687095631122543640859963708980467869544373435845211631841878782937049032104645341370701856726109779860853236148178806381272078747442921101846549567311674390292208365284835506247377454039352498610163595346814490476023986129988940978715792336866036067647379139313926435390863770728827654817912989304793663632328758502091545916852052639177771431365746903221589040644729085666950033199071531575349929415670654502283410575757895672501558865710226192673827714664824060533245802907594125458586486346012753896620931891528372358825205406735921470245878969143846698145935907098630481059474663813416589070243279860424299425061284442883967341551042283638835638691274497877622188107328014429874142960792324817399902564258145931516934393373072686492988978729360939644457535609254672716568530551551389789226536367673702674408518466290839281637646577820695047757292530341147567399392091986490762699258438833388337628390989292078086551023283656052438295972678569970924444801472482642354337442758263998731477507783387553017064772687435169933812235856543675983653275429853961593052411226705594259274959975116212535006742650456762508522331415796770807422704875802593763367378551083696319995074311246669098951450512322747449486573091971330485888369703862532732751057497356953401978813810365144117371379346770290930675601917643136732508958560630593102794172490899313472860864748043825311307708524846670227785598575930358052697625409776982781675883300110666984694033683933916556329378729978643000220192955817981383564617068730513270638035402753906416979966179151362813270106754327300095141788777515926156445035417626242052038939994383505894592892016162840403568056315726380085963661134569065885652439084517489947841031945663044029676480756626526837275137663970670424914608267832396992489043603180848607807656214884462136861806893891580897190034043683565259186688319954944859158674361769175653256185750764142714538845335946895179011183039552548956351771325921580131419926047903917659047918141224674182070543706388102304193943731767232694465583871142389829419632179580901023667916275393714450885840754327665759851183288495043463002798795459379266844016001081823381609424341373144980446848723450511635576993554532408256811358087547118625255255508512936942443418095891587481722096537368909069788836246088165430926753299192173460037414911401083469263821418111167951400996607860545656729891310657670529755570734956622159848914686856325591806275046978019010042409908475964467514120742522478830493520735987155318384621741692537683881399461769527931554084452819863476272372706883574316075962750727488190099146114269964067297668910004157635592969033648357952945520466965264376511755809380183514775581593781768452660139815744021582548509447253421708926319485620309153378523994052096432899183875548575930984679959451205397942702371765732864791296626767012914981203993855065774937229428194147062912668819011463714771151925560073551537655117492777671415759251501900139156044280058262940293508734206593415652339789138749344334255376569260150559012306203629606948852908923662722591081719147584606066737740569921989470056799794839863201157561903092264055443040208200622780316235749871514211822878918576359821001568015000374496907383322566270166228678792226658547763166254489393969998157146537592540024386330616784226920206709999942447565535209509203877308741776516482008752877106793018873751635163614476368560491489619254431617107149431238542661816877684293537285123791974398272396464755734681472975758151748521089503646552137018197891506510457062116309909390279002184220332395372293275889508889041615954264676851737598191453082477992190409776210831422348469133148721841498554207687210511298838212620866855069823072024401527373408867507943336064703910247319653882680668307266911714833647660178082907007817601424961047832173795028120913166904151255911069044668061233851962707995546287772406771534206133098861900826893543370720404553625751296344159135647772385706315940853534950124477740297103157651867626027479795117370879825938920340109405731240625087497557030094334985562149704882143460307339885968737183823961009170030300720565005482713084208263797697472643974743937047878271104821577021951954483877123601521395049165481958697226775969095712847600281008834913056200737180449097596312198268854264426203431020103132677528361914224500973764477099501373412072768501712071893761656119799133426237038034049972435724116279073465319124702516456254695821940901915106528710175641503182582928945233795143077408142062425955829606019104895702966444069116059522186767821462629096279469698370675690128834724558609776547989395773451548795280929273990680641676298689692196384886295604495165611532608020062833988540893493202768119140051671719149847446838829348743934290947255214271017095117916458274107724410886729369170327139159578658319684924546599744396897923582115349412113299120969385744152165987914247794822255758766444069165119851677871731053472355558586961083300184226873987546143513612390878370735647774981779643368202712826332180766009861304411679597265800852687396427222950051108472462541616150967127341840123066890227307567711466120795873419654393438429642144521792949467446761487388790087343760808017981949980095474098248864208434973388277235906380876058522758465581081338764948054123642368371394095684524615331247823840720527592810572260890072812968920174194937674292713273376093883984977785687128368620135389593117098086826053498445163420306157008456488563364299732702537312761483117318030379108648376553245241344165037003383423734018677947565130471332093341335090910414815969288023376331585830447026331911723938225848077871143697899254252629731074442840093429657427911905326791847935007056033165630703651578948643124212729889210257322892368557419289018554110421615415213505231893939017569801245434195985584029110396308746578929171382511443156437215766091949120066372583434787392849253301236058554291815388905103031957840304501286808287185656643053331281456713530168797801591903229224441638870649208745634925525751066886773759317389060054097266491452873667172149719177591348226309453149739563212771887359414577553391322317320985491311989876461853164440911788656995013996118218119352293036817978502440292636588126949226794605271636165315233141701631167884198936167316690244440849276801042928901393782355771775146177765422779099298713810972399662443188715948924630212665154973529915958657630289580068430620428716605444800155874432581432260841956626262092565299081246579144179814330040623326012682957597920184670902763829317658116036832403791625040874834719454723452204067995428341434071350007155840446222483628987425978857968551089237673323829402789987550376598065146639602008478853436298906739697699801627374571940290362221332353289317451879947156305961609312938144048667195232850322001251999766919506496757469345972392760024348369595689587861660478000827303551995877886334212868639636105215558297168619275155858743560516010304341117727953441851838240598267506049525920718614397956370754920652119897719082422904285342931366311843412719138963068454181687205543527539636841888985617126940976735656690048201601053601989868787939243893443154147557907964423958087435059311333242320951310535291959889269514327331342930658041257111655736940473637499147204490913278401545156073640754345111588380710014428436804861844602350106730756816296027039586156762438620343375407737339510409389816451223205348325696884838687954467643636854697197691341632066807622429870563097300515395839408538921787121334656487325632137496327754878170572336334213836092584723983621880283794051269807210535355024757126093405456716487376295135344024602958020050544864835956563626461617301242937009600832463063205411107232934976778129687366220910345296705664746904256365264498584302837348468889569569092677807424892738986579139227141964816595273139627131679147822987451643188003872138847199615463005385457384552611291042812274405214009304289368276552662218742014129273515575486738025387780020831699453520589567863555668912120056383172973180839055203033246612439548189904111626349895459359655935426528468555949579141617168334792977647318032543936445865622666568290136656230401647191592156714687321710950826735293732418602907673422686032663458997498952664763811141335524522165354298160638526405512577441360765601622288380187846796777927457282962466188724952919093535699684704615386181557335730479853019348119284404586630274315341490876693894985613548022613235515777208658150969223235997206443174953378498495768814674075993851281187662673443776475714430647848247636404900528374242540775539102932614964034142482667025919382295218202122728570651400518482312010554078363171855386504928569729625555935867110307542008115780316169200407852303303273966608165147059658414541789669549111215728152485315657560093716296038262730563370361624529089746527557444015891573585525963431739163112427138394255842464834443795687616913883851280279386436479657017013926686133570461435730428364878641487628687207441454550361219773656607488702641680450171726047723728500873811280138314547931349987947248674253789016930349407707622518235136303179568760867764341388189110244307870392382932350224358301944657983997798059148815218061770176468561811408073312594096305369705835664609754784757638325637672887273748306757811686271141793502149702637985152248511647304693021596832054103485373351176982866597550132308430265444376483666151747990008499717571067980156062636020141841625971064937242252869787422253822562165146146482846914836309017772828152359606275883169537720682982627057222050555108457536338710222430978880199538020960178955935395670654739808033919148733665121678331853888124537825260372873420463510397479306167714507230979824343092018699263725979879972300349809051129133924462734161559064517903551378700025545944399105369582608133886109695021027838909273519082514899331755549120164396428931009722338991695891952786672049476987652398237877270515637873239687959625091779582928431739555041637895051426217025095106314723176203498190053592655902253144645267676317105530636283490029117483351292199260624459241144694009298177880813383213132833006519940515262440911057450777760044368699043075093415061843208513942762920868284245216803756519414798964397603390600770812903857437889654625296871930620854337972901561812404040581862475021569231115439652907271084690314457218426150066591805537615996218517594656382695899784095556987627192156953776354780726671946153051139059626691083605002060067729065424763319580846010629345277879019767702933858275404249899681478263591626575612567556540940996929792981568629318217087364060327056288738666399084943462487404040663824549148059988619262569887275550763397809448801522832455209587004130069850973283880877559413115170317680193942154720682810643512132468075895229922688522273008486437701081793678878925015795813489796048602728466245240032169802735927705333081512481106208061536644137035958668255020294279669792277023398936591334100068967307983881374267529859570200393184756629041575729968156016240223190094075977800723146674895247651957276499887895366298173254815684316924742727623555819177533460875869640118113578150724318164239141337198141039691115315095667401976888175207166659936016644778512092214856657534520616445408799871091338669664052604399429237217855568146602293185504119071672392324379310365844817274724588352375137440874087994407832253142564813872294037602459525032831077801370111902535101042538437106526478043141937508716064661127852220317066836621412713940572808791493262851943382750555747408078928782086823935590276971502583060233219467144040578090801484054018664783358398419249964738382332457442319546498183221960529424679317572409971535535510684258926429260219431739439309810314631575980038749976566350807603743997543833410594128589661846234287432905542291460753655756307554941431295914549738982519720547511613383012630706524272916519699201819924976938650240407649325233375275308273821219012831635509160091436296268235900568939096348167298250490137499762726275042371371665061940561306221272162407607724821107552089776764212324021066485457452234537157538585188750933575664741504131702745360204013650408114711111812396228274530340470661091729473308817979060558845988441583350573509176865584445624671143842452142453228681997249610547126058825642330603710145085794075619665371923005917052545619272806763619587288394013563430643802691423118269612185344483774776283299639418317002219772309544413367613909136358212505722722704156271896900920114676272321651707871281465841660219075745075904512845177332835572314092878215955273271612148806259807640002117234796563428653228477690058169966053093868088891999656648731802183503573055507826061842538718219398394560826942115960997556256527033669319464224999146938761525926642541700853948515690195253537938860078097078039630444868282623972906385665082394309054937570671102560561007876371588146625487753175562905462241145099722170867421129988682329548706925357880755873092415575406970601553797216931918716182072032064194897068690871423890288299289549069643100325123255057244261637449607669335822259812776658846189295570970168507806253093737808816868363838390845754924210066855326103180612367833735593786311102395790625808206120369195929816310228827520696205734848399096043985545012641071553105636761535392091422340127101389665824995931424819952338860782968297732304557598054583747170515847965038559398047006990024648536812731674314002793457680649499108129612870241418372838471811661895779805652412042242138141166735033785834830674564310926938557175584750874684490621418424516570190362994796016201609552857603862459014564121902992499677840451537071226788286871933163757893737374826569585313152897561142327970248848438784259394415702520140637593700555199126150959334523509141681079142234956579514166591933870888634606693666470076598936382320124455188001458017840251601198795550629846457498410244407367191897157584339315973094752547376919050264918777341351110171580680466625857420388250734672494293267668317537894312587438197034477649520917724336844793286880052096416807746239435331716435553341857630320637953234167463393389025011737958837105038011344536642360759477920359957219197480537081966215431851796027542953411413504214164093086488316512202087517734252455792139286748014405064839385900947112425948817008236661090584258106622054292597709650807838077440550924492462914163983985681504447501502018669704121656251372608325271896014231202087850411934716980152907769740188785543621646120739268583308412678256581332549888372152685460594262499754924584921007182236396161244352012247184699846823852086920232575807191971193039482822237930348905039755166448336666163348254841662147427250834684849062069176743717756206225824371613479882651852808385705729909037939297906231718063731874558091944095685623223166239041790396166210899254776753063915397890344205308169768246031277612082213031384084959908903149103828994091129649788425225361378123956678712098436411909302059818876878429662810756711885112511672910437486488260573041607870274050714383574806737498880422867063490045068040715719908903712873870457134481859368334409705947533775471686861455824287597275709542113191704400174404598005674912720099112050911515224171627939378053814176508353110664696474308136344382482285138993203174615247626534685483244135103397299153933431963926118001500229142686321283511033783422481843469839618048509063971385322440800151184927114426178300187045140078245072815958603972828952123266594292511699278132538958176608005160743619966184118103471428936351922473868543139245526653948428790196181946420839227460463258563072044213206394541512848693970460780490174080985984083963087670481929224743270816837787641653669899711677997509170951926675816824901182414343343558659178234731522194599442401336046444140999440869367903185444131970299708126419495276354202926061223075826461164192242945367310003642195768667753754416824316212717329363569081204734678202483584869799815301127000343988946074926083443978804902220893506824114201583366438372925043002033875758527727184471684409155478322538489224868106069865983174418094761847365094880846708669317325720962068340104081673189750304186325326386719588617455786438018064674968063220872211254423555425337062775383811070493447209271321263130969334850790155142427814505608038435643855147955728257707682311298263866276439366482286800726384550841889676899850302041524905434110767936098221826464043185942684267859127650085324992750942085158375727284940209641766346668842918738971290649864110852762233024333712001276251369192566730947991054936845789683346577555890419626712652114738588940528560116958594821730085365638532565428813286644307027926462475312066484227570997952760227483062548370069485723928330022228167710295328091701036758872189778994191487962995941702850073667078501715715230840776855107648342767003690819839205505350470188948851278285476502400370667620749698184870164211820524412269196955421892462221241616794234509121991787305299188769037937052627102489866470399488616294475555381576700169342748177112044466803324393870359533274677511210914745345822043519276950173130246169209107080437574204825110179021975739463603755727836389969640719347523059353119939508265386517806864060564436134359966296042617462718565928702679190168832051534754638328985162863372059898993414440576064816725438161646160029220754731947654495399852215987105338499830278803786075460885675014410673851399582165146256955433062316065020196543762196229817960119249409440638434203564072876515057391768016635651457387827812156988255406743190152564657206363722393459876839628939985764156260138386470674263198372227092456374152748617685516294766404384887889466631763358926553206065772209502237590505091200825906320228764684365652623714505976890345768327433765491422687527056866687443907149080395096799030965457587818366235470392987362384030283394697941444509236870259703318630227838757162020116368734351367836134272036318307536388072140355347930045793907552115327842955292189430305717139928175355049084620568354420980450268001178554023868062013101271772540356170592429447328799078963708005314226228099648307580826333274676054520127266080147732384408793217401240821566167421669446625326936551413776628164590871125487700756178496003450177760209136909380814501571284876099389698424182814123291799686888512122745595210900549533222152787256793683959723574678840037860608259457492291866896857789593020411237919916642964068566113338767188231862299382553755913396655170110684241048916805814825221890060481482458421256604318745703857469280002678869190911789161267765000932940109117912666918162550501935200684216308195342576398857457431927164585975122511025130804356446767034273670883341194267422401923949118510215928943679585951721538155061715597050667076507137751641277123378166937822881850168597416573494767077166406309975720942945527892785243367233944588630509244033613365675558129384613383065065156317864724756738736147460242107192576069434117450169374066363672718301318988732239002856648177033500803926147838919647157357960819593714369640216635783392412515343754683870048330600434025714783425967590464074137036754779469287991780422904714950172336517951964048765335180548844083356560446308164428776812861286344452680274445380800799323340354921105677333034947844264265809840684830330466860491482068710436486758873676104363617475900775259110642707597668954289899799755372014234841484561700794187845829285042955413990215446754151627796746288049683143569391739626295167913332373133916157230713680663834617710277061946962098073464158937236410988462278039944633707256000828357893467880843414555851565129086688467845050717312469078606887542599364271012823989311552954219569649075692555032105711898359345755868709837989593562664586183353003205032407914809244284853469043775193405243694133220524530840365241823177293119113243133253945241896783842322865963264158515062168160476481670454491169596816059081812383188715313248790879870340327596591967296724306616023839480604276377149212359387799715532277237862278970033058888021352522353318908450231775596833057146504539914209946025214801456624854421399354716511515626781179707428991361092538003380980191043913461050367777901073144999475558079445723669415322280250323606893387306169278656519434589093409115766618938828008795392308084952026603148643020749521892891811696483099344805241229598200798185387034085298332694137368228702531196384040940859542567910824648806165785055411903781280059279931117699329350556411346339998109729010735699065456370565749260901668443147776719493854174989431713656972327248315650962269030536294211191910680986280859662985264435678646317808420813285259075675488402732333685602475093216223564995588490061241599299021887451670793868813185234045215711385342214287227640160609231904100538261034535403858871897583063319617241693304646269565175466709559615135391871844432566997390121230624702844520981085304852353449249213337664366141919581919938825444245287166884557778553507803285739091187478303696957054628720530621016765417243264429098224720425181679453974867407722956162713862525576244393623816305921676289049655584027777068527850522505836461035131892716196766540637934141485466950466988121460511469174258858733611188875927658524762527218015609953285263283051754260811588919607683690265253930077773460680376853026304069172584765619632924634852903907226394652593024933894167493360347294560596212519467382491613770127687088910045228691201799723511834976972935990768278472813797142419902021502619485709038871402743327329483117979172901510240739552849918755938977692551332342388819388205255412224329689620228058677817697049008065143914344201182830348605465364530403999599927591808394896993789774947650337266352345514234992830693136233351432828489612361903075839036195281385751589485324610129593510428892914840140612962110854015249294777075716793326015447321959298765153905731774813633580566986841444573744677546738101713909543485043414520482317487825093717106290110796591499882092198772622359355135998085783511948365471740984785891212119588753829817355240877470987514296455007656752975676897728434462039327208720961010503827030263750986361257279829328717507328783999465037536526719221495171729033472473851096150948761257806527852184909192785827410114485018595596701227243054935511507331666070646346508989835660053014774711239106678634559712035213954306914556651152804036991197039805777284332090078342568266109288443637548248196004058874781420545380241040403405053899866990123477543818976711227794341207044319307312755824914067776379964844739721000060453937136276775263920569289249633482298557549399294424440749104606688867968480681229575434633708935792254552441343817211873954064795302836444566934900769097406135245323193584323337654796526569145991826849830588349438291498335055782830188021724068994310637565208378323490864519594171321552445037976669963723885023215503345585294613675877600325868549413055437499601340199293218295135750632782536036047051245008689293076154225993949900732014925271514652500451524953779996191223628996264156573269601663089676920774434733024082695385360637434822448403660713128880784261413875168932397542308621145286956231214645052479934539490592764694867883066753790089029970238794441995242410166500341735359007507075475460676157026857913485237964588194063116252229763536032932282704135962117328213172943520496777722365016794280405905654693685707242573105489785263717613912110385451059554463926768001924833744979617502203442865400293933813959798235486249372594501262272163923895402266650860875400421030080842017906945555504679755058564324481525177105807244032509241272257303967779582543711595269804962303062868735458819701259959012904107366632443642538980686213967901483717193263806548878207428758242681586915013400657101773073715108146971507358190373887912332844224537588550162388005123470810489999711602607172180436719739753469054319889622358611385572386884780886320948154645789126058865056304926993582318215222382070539818695053762019875905569885398232135233109456163852561168465874963895883740978744824077760941134262141901816707439332351320820903211832934943908746330514951825744339451535354093802429985063509608503508798182521967519278067479642250517933460483729844247503464734028505738118525344962027124030804492878125659513628443139667995145834495944645592950989580000390276317682272717717179531532706225854726332161084497261239460361803467987454367031427482414506585421792700414281941889331413260290521721108901982070563044556217640176787514409322584343632876294061024218727217277956165842760357235912278521953185107701362058895487900268568872455485035573181872402778804264246373983193296601834650317367184553337086560038425535057644228401103315163157390237445635071999825223728434530841883190461411538664123563754260169660171732905606376556673076717380974621580613757992979579737754880964362128948913076394986779695875333524927833948779618741606042220047366085607593004076571494780107667921175115511474846328769598319566108608615515321211459239975199830172452797492078097301502185247946965371288936866160500478200962429659936500349577101168136350486072947943140086168777496728289773641051383580767014498641224351045247735512521636739296712119821293414411291880869211107901862759365248977028222025165756435980478474705745540074044011402851634207393119832981382030332007592689798762398629377307243438863847168435003424719844286300860803573161961733052611829954561082184003599678233575003176365435053252656702238910009220901938858947711660474824533549332446873551939357318642691151689462870803892071419774914895346586859402204009058010545394519680759331898190117587072693055105042212889839095073033223225755966567455668584211823396605337362407891596324293061553434767010767254867399237414229875212830494342722189315942411131181145276684320295496107442580599921676549139413872293659457653682091183991110066140189927059746687660560846186357483175275230494939643255565899872141791458834447246478671587326335066432179990019296836573147401829820772599463754817942817724120894714861849977114096023702428673709137410734235918862925782205909381143142081979089168668739459124515620320333540675028244463104409278656107744457068067719551122525551523657319286805132281697975150659633643662970692519866569141334955004378118169966169110629367966329713710013324443618615763426749826997176359146006687126410209143968372120507037024827049073783673576375498454645227099981251811335107732579950842193314739914374580081486534485960954674880834322631445883295623000143309233288015726230728353641889551170188289642183564038362732816029056286426018812844110601256252745520206548864339879229159942814344632479445696209969522220690373472983261706264486701031357575635938904612519792651953621613459385176276312174914941669857030943119268606036712728107978487564376849749641640194837109787959672046477747940046234002146290627014146027226839481815707504642699137052341473478679172978808992978791098656979504724578898888054969715553216776975146524815972649542392292913485650030054962798390751424916570659971916890185788795862216865510588625527104137012043701002044423714142704900144192752111344744298478625317142174490057994429297962540178388348666468306926325385611683826216086455111644295786780162921933067848004363442678095322603600974515881587996379594925334938474876375657461577037009229561515336796133373375197509398658648854336813391988100329549418870405411894841116907687505554330670470525447052568351731350543143492566876471205796839083733216836035007063141244410670004129987363847504936320140999745612040613870539953078011874172429417190186416503042670791361421391986625246766898207605039222638813637411574451037624167420972527442981710850184330304057003672340143010553862983643565342316116687158485993117574699242740733254033773338096789123757705869610136003543176655549569121877716094776211689279589664711315026822758917678037139631586789700616868993994382311162846209200451732994706797863076635351636654902659795732356983244017354152409124248286195088715482101155182544876198345993310616192990610406201302929949494540313242852962192052973087111006061969199984117576921940979178014727922139385047891588133069940738981882282127564972761136826980241191457162805132730458604211279575765679994698940031029731778611987744403417997875810428290495041392364359712288251834588287921281330038970261441148895901855411223391351138430628143709121151087658270167182054547744696690362026838980317985268862078273115111120840597800169605978956915052546161969058892012213159665060545085537784571056176397878161421267432792730531031400456712437754095425194600569042838805298509733549323217856919343978558773336933400490496472579757821756426620668320265361743784255771565704304717953928973958961294890570115985695405926665400450100531800985137321885587082695690929763378316676148644734418583791203319164936827764993912462526053893360504902256833778127308780164999116001051201946388667419082588355522514851102469225663197564910181655736299959001985210151136687335875851967183921540961315276224026848205987368888257288907239912643771518299827677749299841224262232241752833593222895014496720934186276087742044910995616529170731168528587346330722047075388918082445738247335835845093549230909014872950769909804750344570022588159289675344637656198148610852075877948629519572516313303682303244012981070970943336232620116952949573707068887794431301547357845236985261940957476099929038151872189067748821471491543704228780812173236998441075232871995366965347609797366386840937760764702056730610603625924297740714967829488805239179871446997764926492874120699547918705349791778334356745911952503721601889162444408097092189405523906973672586704708538983907480936276304813509225066298211789365533800150682744400618706295408129348923813098942442539538850429813090432868125161133924479903784680298501728744150754144935473863020408824985234014600250309533560770497144734454721803837381806149190866293110688697559200525434917471953841528210295208918848430292279762730470227575264876084915597799810570588621068844547265413189124288295627887449759878589962845910999189625234179635319811369680421171141946368458492472696987539903508091493683745999024122693034418207593984429921063772197479754450592279104332538985083784730012145192707599943824375176097244088043955976896066573614501262672995457123123771888221509924786089318189125599113630997626169350550183207898448542541565241094922074129463197265763232117327878736091560252564587245750418510613640314954407797166304989286833308731571800922029926342819652056378863024986005893734322463756739287767269137239985219005063271147847571359428248044224016244964509313733069682903062880050826272053894990421789195417276823998283049134958919806718576832376439274891461390743303088539466184951720315505992236121430494640290846229063284964391264533053503667861324858909972180088043254470394997007256369916070717278737535001204043823130799084993459367121244125186505647026107212925959397952265479044891865554174164752412615369094227975611904720150064141610082487062017356174105106169580788985007382461020741098614979297700421807447183628315643654410044183197808068812211483710115812853424058565291331443517217754056913850579164773706406962923060011469264722980054711677391505373492786385599355035309811573160653473872269013997553863831585036831801774457515355431453928502936140814760404258552382146903529921681902109213093950286249921399793490507669354615768910872314141306578325041057112717304623996169502821563224800726884936544529947485311839813435968512571090093042619719320672083444633960004942349024371107415769512970258690443913517714525015684228667212579885106524540229859893594860549274866192393239441784696570066369450924467863072618242916317775260776077680664296574865233270543397386256848692913217020706054972551811664641216680737407162347585040348479201262597435437660407016965394369935974905872650471678625404286528521700272265303681522614856792876901226211018306177728889076239915994459974147884323091758666711883615060010319232598398602501261282693599187925335080797192899064756004660333563439058681981288067578427718552148036931430339849412856394901865266882382164061914072533430669490831888808318445952497149845581416805274073221185972853846656343056040777717567095728196154792165810893898242956031186475086768704241617441474946994374768368200019556372661992787773643389276978760130290429466925551514324938834782103926872811090944686459781255976291558405493709420704453889133364313593838485025272752539465521929150747182532421997872637732320500569131514886552239299280318098071927126525491994318646470505816434961328138339183086147446517939311490038471691800275902879829709912278899586355092287308390440501880959251117233509963733541853874958708198785172960947870584131972025640395655789102322229379061590264612298208375613037306349100203908386012723406354588053730750127006661059459731192835369829307572300100757762220795698098715774512488025308687096791443414128084584227850783339368477839929684640908144507530333962583485236616496618916379175094843172958208026762953827121534768192651908403482872314204292204631412726708593869353352659024570845060720514709668598561331711567956653628016538100089327288179698457742638095364870132036411570428102030685375071782041400973703935738283667832228090924902610540205171746799351365243744162852787479462403531945893064879690677414143904842808169590634558754716039682842692454249843445004080031093178090287170997586158095275828585435125048588120065420296841251080235189497283019321967254112985603991315617043953662032468126450409408261388076767312722221267796606410707150314984083750131938395021272776588776922694174077683397286019083893866342468433922032350467792997206829669097474342184191434372922518002804280544349290383595865363079415615058398181710382285156578562458886370533609539971092457940956650582269039398197311830222645049838808351226045218563640748716008296814224253478730270932454017420005806643513205238055485480220892488604860009750991777434659071566441199998972840703815311911797043695430616462675648605904112254740588998138070079908232274210764404245042270916284346949005283798112769558342725812024112000148176968278017324027957461098740061052840156856889028574694715162227502167623031478482416940105999879702619699611684620638888679594014923107931090784820433389719878499587166062939567081208969690868276226567572268450609867879090590187443501949868967577799049002673025153864944392683057516216826735841732163702138075824839021730639498638217987997843145348011512343227360943408920028299165896421572231130252417259035729017722119358000639092461664031507915890764069016867791157565424248839867860927343403846302449201520354918613225009331430141509811331833641523120409174607189864967171655079231605772046257751008152946299820929268322372085768746249543485477004777295839470558191110547405639749108742494521559817562194069553834981423015910925980075384587551115526083796404069029900899317857750889307223064629928888069540252864677949439426382969623483888041208426666202668595668595303381675545744264856459540922827962714483198649623237294440114978304541387916805728707611029773053932810120646482767000765066478679510400285039874251742855079767571353837841540544588482469351707714345652355142934634664463836473002387064549949313640349931466761077110499628670870550169131871812330901484568280083489716461518745728826479295773443707895338818988969936979347125682743269502918433754335325765577858307346254316841498909518854385264808530187581526192898130973577253781686251644409603328411902486060580033343350811621110372481495603112349932580487467171156442622198089066459930810330558186777894655647040918009774170020966817302470697077398178977105527025590970569255088066966596340571551447926852603092553108434443044036459607000633405179919557951506497723049720273036452081062344618941010826294330847441932478544994676758758295915423188726774464396296210711436993731446887945217786712528025435066320170670975214744538056411283161298421377197585628071635357870933681629341493073598653833429290755586384622550496809012128881164012497424434918646570333135909187259298609545990534212495655854207001427806103556616125233811009173105834456703195083340839343877256787071627274363897398992579618718087784165120408234042829801379602803727669069489797937484347860970433831046439904877708239554194122169047949056832817830227961253119617544146003211974396906466284110830190626362084736362101848221713238637403859906541667001544609962777982899829109704261440405260749426805108978603693990529961725449864168669095608767350400758914009250428013484602164327092158732508193532714772868437654562466409074164784267499993186275771814658349999481408918549258274386185284100077903254579884273188775429595647342542637412364765361573072291513959748861586391510391458997679668171831586486566582946936268201521988330465011593889322887674466299991840005057373598848552074521389081798494600135424748815009671566522057029499054950850554953114464368844341053396711062949986749805846339976927983676953141755588760641905860626911944491930151238793604092420135612406360851744008261799030238590605368670139961267397174962272831650553307005425187311461404429698373203648028038277608544386175339561113338741054322964421680695317910292746720773937378452913793123186635009871315522689960941737333951650177956236357912958183312630804407561076028600768187259614199872630264050465337182545057927012120186071365368889761380259985971785635516754544325677882996628443127289265983448104930961813651388860084796472056649986345408124484778672105317870166807162692571144650816100739864170216132916295115671044161743545366267345290100491884613049285804438116566738478785396431292864758920187915406303158966701255604265244093624676193535112498299806311268397736383529510755241842917884462727569118939586521142863777372067987029123753787384698892368861044997677465600617072592895900758825706506693833439402245915190359091481916368482593505118624504895609588787798376842239994129611846582460513454981777513895797670876673049200214031770586496782476067172384719574835453197723998498838819577959270994212111128228327755180841533572398717156603397969831317129667569204591220340341912524962723997795117855464271705439518262509106412088233628226456815184995873434376523861234781817277120984222754814664211697028104183011095642803062990344632596681461314239211955147445438769695649599000335836724936701022981067386102848001944198898745889898653913930378120904938964480147641017611414818157943063665739760407042633941127782930701893840875028036098703339456343558984277642369388864893692987771293454889541294107780987466568108561051336658102164697704798398769372645117909957373577883002147838415310991717502487644491633954311576347182624162892142045256318648186636206640783779033559505978885268612612426487370876048727728172399448800671502277355911284026001462609014827060162839723068060518528233660980844189538449854413057399947271206342208511536742761804077285216585918351532294003456273195717811652462946654334284875714482382026924051164021390267762545671964137416840963598699239424768562470395834286881754734281760859433353383128610204439909015325335312672784036646255054410474371444391851041618212560240605044686133356115888444276955118246525740806293998058536807413098832426648537141937007914726089652725843718119944118935297852165600251548882168160364284662083612349318239327415719658452379957987272825889604762793516113899577914517482107963973030360404937181287663126531394180906609649324106348082490185067093412907271534197008620226510689730516348853604595411144898664908599927734195309633093573745583446002693084931065095361955078231603164283392728453390170064798729448396191174866417795721153248110848915243326583200943683129204605913575771050574488720179277965695790899512064572090709860429659538572598103647707980411147835048338296480597776677665561824942545606261166681607203649991488255289965702469400415887109905375461545285591521669274769549352150351631426351312277109959987263479919562836787813326357561905056614460957764444685302233627528172070583817465728295834613839796891626242936506420062764634441631827356900806342553796964604264641043747419100258035962066427959875673419774148835605619062583275106952591051301548947912430543993944687723008705065691503156152229853891842720522751980534407199660186934105780072755822960671726427468337667609151768882504964381177289471850256875529352341571239822923195658268640079264851177683955639339364466167603660840976185340598969689919499768532060871271847694874801797445655165925931568342629734210452346082544017237830398496339604406986360415343040127355345432232128303482392855501415148450775690854803119371075429525455752146827290844082093508209168651979826876277822771880818160786579727714618073096005054132671359405709938409628394770344847732629902081658162338812854850937605280792921579886456774532343806206320972293932920947203867776423194047537103780099910040112511646029165504974642218430678196761422855771510442000167220102652585492025719208506425225886422243678541511731309068941506880987782616522916728422563552293801247328468800638581916948006337277667813624697284843560183404602362305153866904766826096559788427596671197337072293533534149746071157512249863251559579520010710824385028101726096583942727286500275931087682290915016278671654866050599370068919820987334869967559196295306431201276606755317013895864084093197922932601627197681455752180388367755584602718727502078075665693568748615162168958521418113640443517198259375867169135595575649374313519964878093330915612126811342134173035109262556332144709769230237022300034068307042894171130667593006420522818187420831454317133809448522910378948562690503562280361744310950148131622562049538721235976802082840625723831772749818077882508232104796581946676456526448031880910823646425355394054362353114217980963176190788583554520165172877914698197446843317700130169616456531468010549660910001000038172374659798044961910403278503832806952481186748427781116456936821399317610889463766546541195861321472445137344361429455470147252075608325772889174309607364078952897839913930013403089804359396091452582964099034911298598489206999074841987849763737160430078816392926523332821162788119683891873850923485700261131688078996744724013631902567559531778629570739568878520490953271263769913111409764697089807003196672874953130320880613180089833938553048967372347483737729189287904157425284324131582342628716301638089853325252585518318541301929750838563082098903156276764041184544990541817382640160241073891914972899082792053113557142514441277676719038484231309024805106166130580172193980278623547059699782612845111841960119935139767908009247834627232743205336835093896382425240912620531775722105831743848467554316102696494104367807381815691983716419219828667872129784855214335435378021545764114640760269535206106366704660951389738389919298780845705518511158859340450445685981040596024006584319597331131621857635289154813820999174624479633456715662022107253329533379392202132264113700016749943663960067997312958604781543823248007960953484234603447348758028722798571331370593423759923717991065102074900507980693093964634433509961433558817489189661909371174298519406064141312998507935658042280848643110878044501603541637646820092165807241414929540411382488813090843320040671207321243736613624189067514351995982003479153726173948015719645176301776300388084360654101519530033364075739179717443019343890425029412666870233113824056166299899576938889565482593906372685120163299773077307848456332526652712405754466278684132959309976952747139252154568355554851219920018539916343038142961343300212500960242343872593584450883851058357435107564128961867270304897296397426614002464491357601239752821655669103596359918794787383344201448771816062888641876406447352246522759090813067749311556918250848011350746431763601721729835258158126470103201562645904801797213779731436144685857534486948263857220700607351894641792387113131518237136702985338932163608980308582439756618958655541847217630586102551599792576421279460517524117330252716635137683944252863973494237922740286156495363120543406830890105672127869683272533824027145821814027810658024045364723911636170406064397099688846300434874173878680609354305300238346491970126620451443488562374655338107467759273520795630776167063340909066640184289940225509504467846974548318015705985699031331164762744574439904798178195429931362320549443202556953452770258942999507499487378370721959481420546507773573886198865035958875777140686093725334224320813106754885145561012453950766968341001868860223801380352139986182743029957021707163784158375339707754239584290839817101751395370183824708935714461397307881460737876339370567472790809390295181419238183511129354618157646553296047984859711680153076020948443341086599887221391860677596496742982211931956795426131716491501764825909357423119864350297295877135409267298051579797728771850287419699052763245259046150835671308256378985484128472013660513052436783233657551263137298220536953397327395612222881780857123977995245120107834448179665296919224611522103977118278260754114943441711835984202195596724162484820424026902452028569324391058862560052977649639927780747623966116894534548422708270142259271721264461637486056853746570965528052703858454078290597824740276320578233284510058004130208268878216045332026665776047685046791003364157318133502142062818843318144614877374513054262485166210571514030842957928505853315908843282593610125446286199785487404320447998169640246673433968249663705560398744482663023245499996747269808708690244147522580734235814007464825897476112975788708283833112064570750285202632387145703647750047193548586329091520499773437637464252117515249093328967166147868022421906247099349817762101237425249657545467070511468782792645378987562295108713929224373061179820990951666971225822083460922470397327939930715773740194062511193623952640621645866906419446792492664688774049026369871110635708044215153841064581504218672324107180613353664769716307033040625485077444211856439320236311725586771208745608535332028191654157559834516731634811370849842899279368965878748056144790905227660969287265983694468314922860319013792196578060716408762481416469849498656971806391321784809324085515405917901103955402890019666215991999464109938187768563665736564704496455586721879963270749120520582438998887478294443577247277903876146352868158473342862156450073286130069167544557379258538175642547910624144986443913635960709458632943350478003869389218586951210783426273323497163143844526505223672379842400320544521819603145595759668760488137035363866015591056148940118728958553837750924399175195586333107030010424848060069521392029233955180836679574802295718316890424796075432329438494813961945924660186479371818267709259420212006142090878989001081366693351941079722618593549772150420652499917185133236074038521594136990503673342882711526403986927321810693255681051551763047451456860835776254927447346687576469194277858196355293222957400183596529581771206829063019718482349471344415275780076201565598239932697196824071340688987825111838908043810668032971405492120819799820221235418265409223780658227052032103561842901059219010249141173062077729678203357630001715471073839756486108686973278252145920443021260706757511693024385865292139262105542483856331298113184857479666285274115986087439142305279779578126549306496729841126535373231325942771204972751316653195379379994309246974094554666811266366262893088222008495881748414072309415290004985130063348275372498329252304298182522313221538279438129613134623536726514453488235206087349375904444688854766807850471048915497021653722629828045235558389597757730662154153965089580871371961760976779182394231194303963115460480324812582282977397264450378221142197128615736055743483756645114447476550498793331563658590910347765102815513596760742549754501920441876340375108708760511357032769053817843108244753230917295086006963056613312157720872804022210202368892430247727949426296581351020758162825290190220640852448267855487421981993478599702936229978541505803842165483500954735166312023119002962409565553925905765027855152370629312597602844224992319347245323186125087653822261648748033617948301889443710882832114513533738558729422160890964508822915904888404140182367999456603378545862321204276877652772043348519686254844416715049920452996329855213376345347339541070006887028698529364898857980256078200341477945783550928227740771683960594484170356587818466268248552746345769056749967343746499543927672792198818839438885622533563914584791761271081257312538451836070570127248971787538888799832675445279903547960732647411179600300558870520334837061316675891511788651909694009761653276743457880917977537866701509067727541488563487727998465937207386860246927753155069862812833980197341482062790370019950691491630163680834856528386272328517124316797226412364414493421508069174295127258750391583502137041705704075783476585923116094316473840045529859648724221721192604616298883198581111743495939818635223069938573821901146885797823024245176571053588520863170433179025712295737665378052840274324532330850688302998331108142335371518184437121739886453463242964216135379810953711484240780337546850045698612256261210688255651618447193389372032794776457321752092269485221128921751671129567689468396834016631617389211795598382418919400511258275556826896833130029944779553653487649705963167578858507738467612031848700410684348362065022862467135177025804810824530973777296788176016596291324933377721690525796530054372694844465862506224615391961842389835146257946769590357737745466868010292303271701740959985249872994863457561377873524535472275586628797862873962643382865043034613883699052604262712298642234049773683928506770513442725161796946838962143659604067971876599496328069332233013663520618211642103533836453305871391288115734071894125694987550940781745166035617846701870492539440187814549659800629264722164069401935387170720708943317996506898423534692304109304193184365937105945420394963808228793306924184224474905759391577065175979793362314160164436938043566227383664710992325295386076496531698516958237093848261738096567023956836496993384446368150400401532073538314148465275337894052232436725566693894292170116715686622895129163707436141080609592502921119586687736961900162798652421403477873961200771881550264796036233625602922523013434880663389785452859954431551965405050378720334479195525242167363525545322666348905676728436000712513573985892944544491858864832424810974326896709224121311453197267753361511525511080559728221159252454101284016444482959793983946328021938797230627187852583240130892008046961513165771129421012496410536093369317093263166994149755985519513856013768441215951264406991790742636055251740156444119432124896816484717817121922136833980188293323444717244059859452053657830064147685738473615658332526746377662869102808286857791246436250304283600258842711683025380711084873036294436657976499898407582263024383606243218705650118169559639746412225656379170309998653813187455165375186609216171632239796956604715652045216439410097730527336847560499971386292582752542388107236883725100983837853823177283884178723180060083372233639700292262476140490521342441741624730349774471596011790226789013631754841307367903980031479992717070459709714131450920319756758209067385461442681877833976116111210291593428764476020885804178871907891122448656214941316215029164577737671269088119695292390365090734577159939798581591102324391045683083360333490157430912761742168878775236753177691617138728102384682378058959513478942329821081514162670425016285803168368686595371625114573374540209582773921393466739044078611261480606030200623729514247732504997752142667619211433234366687028794154975756949258044398860145672475185024486925894727153780562032907754628003933674833156451960449738104573741572166905558430140511364510470672913435650149395396232710347038500032163062793157351316913995847997840838828542320274965653563977996414433414368333951675719184898916245336547346801008104365494054255382012434370497185187634564505904929518907931533715255441372634863064897690616609216221611221259942554945095384544760992019524343098034749211782047043721358664421057906421168009972293637945818985132844572596184653456881216707376334212031899822024346916965499224901066284412128888359527140724970657866167534681975757827662066746226366714304251438402779462687768112128588199189008828849575176158947752972960569843811276076515889232776610616475347502029794649950950129591041575549935031872490521599087362836748644704377326249215773382341606602878931644155159200882074468165754888587717938374422446818213474159693808687572476480411739133159803274533865825099532781304988112163785220438881265088050207806250314280830341671976909508983361663269236523228159690570648009270935960687910382010403670238660803376085961240649329616787766447614005188664653422947808871831372987253340843049487713697482440138439968336922226546065213960029416490510865282983232244215079235028752395120764576816184933968607168574807540497206638525670579302795221050021166083461540160322168427531986723962005728735797760564530368250233553875718645231398131524824189887650793905313103619664698475012421589822501657847805672817524869058426852088570786694652773694624966403489283515973641705762661792820025309139887175151779561463372404458146991273478356684939693612468749788295804577082898313329767969596658161625943676392910481556108882999468829651238944325925239770355721582159427339779832591392718540634665136327474424429603080297152016631555522567261416923975651323604838517196080958374976762216151585407757531299304675908326901411445479252690988001686006747202417402542800510694959278211741850009411156096622466010128259963298366804564638167300257528118590451539258812715422286572994561584396115247734016878620694153007461389228841542060727904970762471242831469954909567076802599227959369284536952199960272567583041986401353100146590318637049920824732060632838458981760997240568905158554653673404702320118787757983307682989983418673160621762009128071930044914061099503891793122439060424911550945606432094862627223027054136385389113300398162526732456380692254579647246384078327602016590294177598431272586249365275005890914847692886667529538981774021764000890057371467896552917212818478243172792487863710414874419223432629957041210390221113007511229865400989116571727808956370163927870189915150663657581571845263566964814895559363526337971427522585157946905604818775523124574312714399218150859899889217431987048956033658281440357180513381076003906513057566547296333088460714698911796610439984061846027130668191550823314233262757354742625309628854899789997340465441409475670476625608318695633281866000057886715442397600660908329669662399147644301421761865595332453297351656375016652440571777081001996418933233616974989395937889474530899387682238587969506838306400298769838034788920676669071364602517282146797357752217842649534623408568884675230515046711423585280302403370122725717831653193339691120650466552138031068738944201384036024172783130782756834992234009435265721161179961207610142954581974381312016927961737728588974150501456176495251024843922685031548881735150775259618744095581967578754344310859014233775285145450743457964234218603050541198897239005047095187729703817872161393709186675586033626929688003590543055645945717771392670612938842926175639672782483609849780566138403388117401427030872939868243824218940743544360539581234042604587907864927361709785949189661383679589367771864043142370849143882897162651220395595247857547214155008012200598796531889694936851221442043503413609679030065108551741581130524909828129668740739468616483637776285569388324075198106235124423547128473040571639148944580485483149118060433092204976959951395591011801086166232933175216275772991316462231015604269712846299967230133372719913037359664282931331093015684487356267030018290786831953313303651680841701208907350460760324149396673261315420567677163683712619365169231377667357176982062230482564650144499247460238676632423921888907163393676805728800535108654377691026262068961135483635863996835449716327807549545380985807561259109545748058763068610620947624697890126838051784606902526242046451290215714396195710852848427374056556431118212625454230679314042266858382846365067435589399573635569299684340896972457405438401195260376921448848648664185759283922444671739588757722610430032015495335367289289993262959021906009690024122235420170014567357170665785842872515371146365668721195322980330915228010808547853427575503460780284746444936198390789586414152405317478597985809279936415164449227237550957702840173057482027882078545609435334816243678450170943660996448078948838550018525732124150445059913334748180206962592880052233427207380072758227927172974521983593494937161978445472350362143257234673849390754592768045543124550942104350968631575987532172108254755905439728762032483443077180342845668532489177810749439962980439317392205636712881909427760118096291659370254186268506621153146941701163589939426759949931239477251036764573684397196109417365072777160960053960028997977074277103328881807614949766726396402802719091123846664759785179338369416772867678701392796907409430797426544063100410981132733912458268266137031791819019847284395863613762158372568862685898461776515054331885222033419817363203327458619987940672603311483024572288596823371327741685795219096152740851637203235879984712826681307986912754035951621161870195710734769614288472995703842621024281071905662642813133595351657904928194683899446664989043387502918404742594976097184492400669340804421421929411282066712968393274447142816466126490087064466730802046935326543674152824490492475484043215994731663978301396799782180129739612224054330530775555390942613538278886127907268042356066569868753722177417563191986541676968362098097199541865707707601541249538801815089792571683804234850830180184665338733150342938951452231198221456949445700307665130774776982731373617978420050695776039278338887735453862884296977584238947890811040884867927993851680601908586655105105671282390362457988022793149179723152303615204336979606501515397501029115727892495747648679972282490111970343044586584303743701468330237400569858451850333257512197804619755398483680159296979647526446366453806797717859271010920411608463795870372658103576320448696990942212841059923989005234433489408323244503150476002378159295272470170123196612742059336785530714655073250031646787461821013587559187881312448022430325752527583332349525117457236989122744711884263307332745349731062998570701228590693006436024528616772667268262060412630130367951701725784105206956148965730643032924019234611009124961359737899891943424373232772092858512144684390993320989561308231558728851551403422801887940979609055209244623939133990803079971407654864091171688888088418995909658792981273371296336673909596575324839090185590899502455031993745630018982487465327107791301132970330468854244351347171399081042021050323011823096784968064502184109960578600504898399456513139212075890874523485192045821722973325724906301370803087898038463249183503632399564933777647122528810081155404837945470422471342774442783040640363602638755175493078224503123085988187177175137781940905865152392414008295593341588735499829777212697018528904118601125947515012952517345388478806685506545200964720134564104170280288338243439335982479033259017537701171382033100838338072881114990913620443237987569216713370552474520153658868480713312994649839696372509288813206478459949424705821586373717796579451703937372084124752253918511596097231925616002366611914934119349029333267145508365307812000522335322140767461174670499270296540003764249535777534260490131085269240981223726165869572717908892326949255563248200357488652158056267546341045404975034392340955947918430101008922937740499191505474882901141552910472119725744316228165955435770330723384265458108649704693652451461659187795835452165448868497642969453465309223724071540146795900514624869812878989098587331046274934457576744179421121526955311871209113905342021478792046683607627573222319849301300243312652434095727243011517343805621709673430504593715131117454901824163961963134557346525440668325669945603256646283966300630831264239624472941661335648499217701228849347060140459578535784888247797371714531499836882037487456642068213298649526901649411655694619589948310416876312555498809324493089976880031999751512100491288553457361660437258534077052300264022120720832805309349110305324925269565423218838475174686791617348255198943843442008987428913500878172805687314252058992682571009782745648476564607894350403570940221751893254600641336842178962767414014323948248731960081332132278622608346952113613882654716170266753899615323304738074811788917331866498526414296505057536948642849388259568668361724718290339286691210308338442673439146949929825275721338131141197653375572084892935800554250026077964815350381902051288074198449551615214976242454921704514934924504741123049940871520925019869159613022124090910139905871073125411852404139191383858433718050593065503940780293438397984916005757345715484477134279981351445571527286744964664912594200232429252801504953262742570154409467956715710208004691329228462213040787567296541217319498387349549276770463038928126316290403308462648070363093513893059699411324350095910605232178833493928055813032335075978044967102838847001515673263225563599438928187530401520327892760342561709509388848936879399767718703187673390282373230433710356295810341821380462513389637241426808981741222362746336015545895505797689003188974297783358491934501277903794733719449265696041423150075176255458323737831867908226001892698146471414360071730542186048473150570743196683720119190733512789828363817609226506569293128222048172145355136921718242591925748861880919662279547770223815208326764106145122156408220370967658639479627663379262630498143446607082533779804305565758397046558560218550828770397558109166015690355048269974235382825745156050655884996874329845285333494430683270924513393218844004523019697546103469809066875383133653219170597608901623210432916384031421921753908781192920358096697986392527247996122679450212521800599980261095593134528976471455718882134095796337214232123384725374453718896118408363782251535156972912276454291913831245837021730948505839009869175082351310685607823938462747702489149834156016260244497459146260643787890585622846377409693375696280107299589245089997703618808180360436280020063368458344529706766273676385390548320324810149995801821054504120332627261882495172704862318806615890512413058084649391574870553417745203593877774695049786596952481789052863804800249525511428231633560705605360811941096361596139144304180841027772364239922038807706407840805924517717298828264711634555410735193304539608344975674808241888510111668089406114156562449626927275584634174195900335069882694222078267073447788108205470873205511930462159321350398364696290103013159551261064840853955807182341552831647488923414305371254595459452511261296758368303353474260580088923294496997876114189539388322902759569772708302594247456548160644382954918945678772945811377946208906498046260356181931757702068981866751079154564899956881812563132733137776309499690210734548300799682352915606533150693414938728116446243299465256306833897973852016198012115727653624522491188211285454622240611488770608072122790902357347668754025180757575063610259188472925406318620555493087279939554796959740745408333243784786513261685819529149912596983493792122579406284657336792420476223315036012828703385432225725564846435444873105645469833343963732619368003226065180226999466167398883550704603647651033384910057837565181623215775593131122898204515163156967307110059743728743529347762658388352134257516933960599994141723875042694826151133512913064597329503917908781699964766290098629094759970136752744589538984448191025805416577459295241240506044407112441981087738980186807517553781599111640832124334657042997863068148281460155598867184397779357104542238337634626748381482981768009371495977225593373744365988213257280615125233468890449408215923326288352036971144854141016855485272434102161206209845685574358362527693532743809508495805080723012624388561555978868153136281188995197720114384283346463000488710876672029792200813593782454555286894175698240306364688643284740918402139962575412593952844015049166139824765716651875906286298314640998027564218289092227594041415638137600110733061710546635044056208219303321792275943758629492020913136326771829878097838086090012013201102238583700156448527369059956289907100635600546440050607697993675552630948384248593240842584973875263800114132830412174710700251980966797128540259998204523995650656164174304301701882960145705800756031953232489760748028379300371181693902237623309285879824337037433123054550838349736890733427571040613205015355782815558018725202985672876675600847619877018055238188851230902232052379285820012169928109872718432269846504288385953443122854831189843993657312621311071671661856837167991195162442699417672311772499989953434018646782483315153267078253191556303275337366479724119211502747491204841224142165984849215359264997711900614933916804189410368065859175936992897799422282905523412965228727849737722689788009700347062649925036312364935823644582060121890999480338890015347866115162578046283350407226229103939227182558423114756430033016123641285623656783900857363678957759552524857737618545189353830352844660073418910955201007000651812240158470432215139089583419500977308884046950098581061808958037700405983537332885258363232579021013251452887081326751972350032123714953886919909349468466252997675455715457252255693074673897011918821087832361152229301281755192008445565051437034929726450609255753535097148208519337182757286712290979740595327809851732016969032507527892955396226583521853457049694654310729981673804348938572562088284332619205947878878103381428107773029970293991066396946869787164972361438271918922059904326376357307435590661586891002379142326201469798360437542385397436003536028470001106637818152148221114979700378143040679919973421071051053394037848973022560486838512866227410034396209074859262873063578588900863538874894094106364558434330516086605379389338640790153050953967257393641093790361828542693114542946565394979836234508228948927722526998783004616649084699756286349423970163041146314652095901078275842659805933531933138478366048602562937812505454445059563234792601461280147648235510806534221985764441004248167107759879416554039170103971880710717522735498321568021977920561014887943875479862062957999896988983979519963563063340733023513212391600734256164743657220081233022613466134031081486129843131261110499456752237436101435239027053808132898162167621763563571508682524454271868254121381144311297731953377848558930919416682069112019843014048931561665539078764847315947723117473344703734064912462179322335681087732514963290690796807159974264736533586129849187762175602929498828257162603320147330839909027678224022475292298953785564980463887543748234480066101810182839188332441347605137752478120979329480519208278344299466998991010492703502707716257607209822664277860526871693075396075296871451324152556476010974003415761201963433289534083592976157615470119339937593751608322374172870746790878301975460747480678303774060053257640527446279862215883216377009100094351274340363828590671093089792107309144998168083428458887972748662519413594458329894514406186198731212321036849809216693127356186365809083401024779099459183829058936845459822456524370550625468450911455473430759975087487146884017850690374418068790110681681588392374182381407491209525489914229830511420413083701365028381008587121635238897056801063307803704459864448900868252786568202902224083969259013154276025086058453014842440233617206922199485769276435751623189103842856812256664645573399052505777363356103302133570805633784035007751344618604621804400765952034723497340541509516854470008987380316608827816244392993314914716918072041557473185427564598374590187903057575411072230726797651992096569103645284065811364936835689789155383518826382919400762989547684175132943831231678195832518110752499227969210445856567577974787639551189687164440134711390444032787036595191959251392007278983681853878043329220024713109338356293351118482882685653695315029629637471639305808537965379587611056967503966948465635324973699658295174353583093915812542739037919979469670503390064728906393081243547801851061731874537677975434019457057406809935193377461837546883838229233529976133245612892986551295148507790260023366798035992813291111300751140779476075833723189378628723176456899086361147880920072901404204591787764136621585988262304960993635634851258093525972055736236839701394123211146974108077969590411267785688966422375296073737351378038648431905275117519667383249874114624211723894167212316135392211690393626902693855332281183124712150411186038787362268324949481215019657202643119156666824903527726906779707485391014551345164517593107479809799257508155660399368831562810871744095682384614123523294912744214947356067034522362228570737001468650969187462548735042016407764637138299540852769475131415203796839191724384887377914374030227751675927365770989960215338317990134649460530856629636721781954429492729991609752528767987650191990855391604344034902113274975759507946625934511703887756643576461004217061874733881373273480995883946151984287456428035024799337452249325613054348409749895172434161539679862204656551929113699882263600442076976608020749562547364339150285702254277901391601757065944806795037886336986767254527418095683840198674819249753302313262346492965968107090250782930898035184409282997826192310661693993754308967616170164337809313197016678155883362533451489867837308764854352699808264207288202340236201071583670616901855737533137028639032259114034126584448347271320932515317379063239365049587051672580018821375056478342730472945838987647663277140762135397319775142709868165131541737139519368199536571935738366666377123307526575156156424228693429962200844863658418226686934025082321418522968937110427504095356737189773502851864144340637440605783938224884676615463954420161652842139660163838577432955686478691978080564866407844129797649074567740144562542677365808196422973357446117564442949257190192287488818061849037017158751845306401254885047326126430879616958964337750515430118864928731294582758840888289283801445589658334543683781370235877273765795321011828966562943247356064496543855105984954414984992147618405282476711922345413642601280870544993702985660314593638406175697544909406771197725684103413038996454900148786466953580727675913952178864127054617829777571540316191022232353602519804374185420023474960225477454472291144921472542704129350618522584986201545345502411659663944372632764734708034721581997483853588100838268496479222500482909741505970250904395156246711032810308139900589234604891413925164402196544973684206822745349511325676955610916097394297975728168207784637518201983382356286947660351637537963627964654843381336425543899616997299719597056978714277042193965601486566432527566818874068872080563664769897067159701327215039432652958684203179994069875922941797367130236244894287181603669876435041382618322041484999312807179142545229972012246279843363836648150279337350160931749867191569631659001136453224365577528200544369162176204256120925161430566009953405454103521647904681444984836433966286356414893318976279919032527031286261681631975712682725130116014422562336874509189052416690782413065981816408904274941492435794822073916581931649288478910487033291908085471723115293872558825778489973895698299974959542732431352752863560225491632962989555583447636608975146957450562609416693438610760223847587093541642403996573638391799666676151208479950312990952045001470038264889589039096936698507013489104607918540453989661963448464840298805400699027071076276784100130033687336145029489413249709212794980827723078349616272455808932769781985414358113465877491523705471449481863364125457175530033740945448222001863022126207102557901649692999991149078707222842245523285376409957283679277609039583598654856790099190585700377658902425453169769727835461528512771526125835837490035795754013623308566327068321106002650988674571418248652865231789708619110048506684301795812140423534649254552044565345193063938774288541723871356468130871212845054429924586773664397016192852458783761689701833657511818649747576196876271101958983174056094019833093350143393429957123641184867000933090488277413634973179303557173634386174837269084920584458174524334916383269884817999767019300507416196811412860578324232721665393736417163415868463075091494427538169984425095199931529832647405497600971492771059620613693906620006436266515384021917974493841069208975798764291495068864737805690893288476716517083547759505233704130549157088497579935907324410602616813259286914568753083939157661004859125836489962093401024423614681559155587046415418359676969717732016236947507114820501759499637158698580029909654452022580575265349740025949719655810817324217665755389048204693840759743760853541369031754777800458425876303084132869089273592961626500142094762997683304959397721617513688525783471679615289563414087027966477707850055165764926250948599844906107052921112199969585241323554178208945777932726259430661322950246929251475613239403282369750706975979488395378042495039362738066584767750063556305336853857777031334166397667615477656085623464079749509248409850465785866548597684649608525915698298644545785616953460701089976546926972481837365395664936526315754621041475402154709228281616450499161886782133732964137275367031288341413546624177619003182053701550769848215318981203371698127559399033487562530805850398548911533751770899981356755401358398932810000864885148290315450561874288662419480903285805631385369541827415722003595781909957826446747299819258224702293115642513107399483151613906183309054027650509156618624874379442472221230103116069283021931693333506752219833140686446776282041974107219042166538789599085749206067643240689184320784467610272858287608890013427828751761624217191041564647976790803369670175688992802206732261128629929374218263523626071197814910663346966997451478796001569605645333013431327216971040034999698746830560644847673351326514709056420352435387857084725958477943642855182318609874892579251960562187437057616677901398033408024547346657378378957793168091058185043453726853218307533193967206679162146461392273436354358115123579390055299436781522572897833476008047732839390909562750450350010834448658115131189408708921634201924449085025297839746690108129421156554361701872918509468702372420813919721672855531214358473656108965567285946300503817601961453351243945639503397936541531031847064415299849671446029527212438098927544618488105215488208852017211011787825439868571755320486511517892045351834621145297105731505772876379645300676477891297668784110378178540960803426938098229441997206801096405044438417922658421605107755690080083844890105774073503177465076963675772646707099178454794230703260229241231583446880110565403218274138121146575765297928159564541592385570521002563073985807279101245690236483278719494439537560579025810342245837468644620349531167121870579693737538523521922531768271270186165434345241731230735270240891755511953952731056116356312158919046205319814481727052829485699419083914683401317017902549992522667267295157323252788307825970467457076391387931602469181599404670345616180000003946134543051621553149005294869917307973823322405596820212221874825401383075704159842667129305309070906924200515308674358523790750167825955105955647481690100082396656348308044846818337335388631481782743504432080969811703005028921256056017080473080310293213111985799798467816415061110590807726396621696564420660797052548179828279663924519249261533938515526800907514052598058291649328534630436442926000589842174436439513386583886263348223908449019293210343778856178045337975342831327050388574405101527641391284877769062725753017650884761588571276216015291962033564726089621355837237301440591034837025315470269986295157947012798905781545415511490124962716063705869936039556131134964978569967990154179672629620817735025654615123417583932241753459539195916387745762413624070538796508297812039130185784914969084232348358628564066550186838758875481725320780315607388569019670917296902139454077870650334975372063584740467545349532931974005996102308094976076425172154996829045197764271122350475428512823228133729952032898164249989794942735368286054280171324597249506774170759042195428043367015918288954222286674647640516148094777279545157965696502773469478408385052285468439650370279249239843050785619097384650457454503632228466300318095241108086332727792540574249959884647962750158554788552457088689211252177218851494519034911751429884576750117483595779052469734184550182900358015684141809236870485801005208466015734379267565523420427883678767772052539692077843364240493010705272016169873471399145763879699179733297225314705085113308935192822869572836233565191439990539307601738815214690564385103213282668082883301751822278950986331368449160013685160774980013817931071561728796580433474853530269779944266440953050880360240525073086860553553050817709895032162029814752633473367189395983386312115027071571950813795915028565479608882097162847396262865361441352445406543427174722538236944322981356361979143155381697475691311602254808133965454829935845825040761672668964670639817852645899440624960515260634087464234624427789001752980067416346235718785469105871182880311709175114148768920204177775815055001621685507899052383524033416594783545287731379678305606658359147579977220217571814689560535269402095444728959233145634707933372713939799977164300904502610407488544975501859960796297253568120400953539017697379475886639558460462398010460878588789264374772730440539146872398199991500710380781724175894331036755517848233832457719249397977817023152090039669074481521158689127586752242049241972079204571894648904394590420638881233420554667885322516493699021912209306636983046261909037717682142001067366445798853857943786696316612652037439094664702002110727319959179715336761823932648348798613509923965023687627738769209194730977001542306820905103211069274233979958399890204523939501295835328938449618193056575159916341655645356622259388341858870145591465691286162875307948398386336757460763965791840659604667686746953183275943863666133508023888966506258395716645615574193255429751910344186137147448947968042813387608514129419158327145008698424403229035802656995395519886196680412564013958241548854948246609616154699195074214227669905341352299054564687794724395863532359484611794156854110777262485466253566913200233552738485885071116612967793061812722553927101570734108333211503657419830886234832231213046971752721963680797968148172920691632819334878728518640074190371519508183410846302827070738065964895124051898436421227120263684350274614160374632798928584246600591509763659853430956681980028090235784414923215807411473796175357435508765758555546838667424681565489307024791585351220949629988835559262908228339866145965102719611190485259228565096545919917955579367804458810626882641649656771571856244965428868627159173341085425685771136130280636014262683966100559583803732995737654625095342569549865456278974022409784310645632399588374604068923660185109915952769667711779163196328108032539619265613677734159139736961699708945982194474243833427443760339897133963476246182609970590163879269880532838624749813034939754198792995999204070454060031329405718126140195184152418331247439499504238638392225833297520943563610796584717988717726313943248923649603826598557147131695541119997689645006986487848774069043244560241710116740817415231779741467009902291665167477846120030602638212400867202159251923263177916590866534505662917208803533819562059345225372780850651433944057020363062728705012428359119153302601154538947217273095347320554866173682160511670121930403494228582306215166095278289578317122249911201246564133345167318863885552779016987029593518220432984696719886161221667143761411641638968032574281176493923663802085977406769946175496691789136208589143974834927124774318372850710339878278409819149724274926310060167820079620106866454147138965912783918180369845346168698782668309098399561337073584324861892371243078930480506782340126871864758503611555034308578183101070709291411433613121898442037713290848196953379055188825854199802880546196568796670337499653062115302368173096432642756845181420251949030828114617926063266434734806930328615671883071852732320151548652047600576621141949121804295254856835276161703130866628067367106973548396576623787154664970229720240484091151183530606337784851142847181703198796144631956003994129339046859808637371977252122206814519877852908338784096939960240926753678683006192913617112567043594908766621373744451589906109499669066235528527406726321384561749252280380755233641476661971674306946715160489331524755914095830891207951316036521694733727904987638847241842833034336200915907663850198871169046983794533516298148317253581586200504340884551630365850377832321718386084773295479436549978593793461190288574801989846817254384242771934707869980404050170245059346473858505054280083228704889965623791668661195194364879323981425780264310749545933860109139152199904148304018850743999221591868276905088715882345280748297489234258243198659377385496318767373556619717542479405630780152672985110363371082172936173745337173280926355078856140165281960688082293386197638191733576400365485042865418029736948956029796861514923786912228185383114808015651659389750806604328866407146482313017612906056252100390991737539339291978979772332873966386291357065361127877454545695096836456290938959675973734360335102887955800118275298030545978602892937690348043137301431201788051934005021331427447182194351786034263228317725006287940119307095626923486739736215928467579716274333066588208007329263535136676915437453791862501943816062117076392296172195972824668569006678847186019892735929700016962484943487769006864187354540065373871809692310153296305170735446907370405513072993089953187879800929334148602691937744339300913873361368035902262663198037958177396848204688019608514949763492536536347431880330875157998354903883208828814015136490001115855175918269655595693953989789612428584292939512848008535008084502293124428329538572515398538840708586556844475449527216228357742112577954093492556352307871423835074228715992552750774433445641176797365602054865593179103418922191794336009236258611094647006974148000565070311406969397776699532780164422857373146814803300309892726264696947934554101323637935206180733778293112679370598131599892067220417183686684123749301679302445958765690336605701316799341374357598484964484005205459606298757659666782097531272849455662891191397148164102809517209383533724723679034681115573888622392748849881287626757640091446826006432610657393071959474811509621634265303392001740391729836474269639798399756510252658511203106059122638046481456825600126487333885325483535907241092425127161022760062981078813991922065437240784906967730579377301284804570453500045239722898339433269659764292921660052212270953928309730203874936744208458451477572623258628132268867322470177149432010363228340260782502593660130214520297524896118060826255819681542260026229639060892417611238894954184612072698453760789012009486188520282743147978197441174870717014994118454859610154525080791777921370422258865239727187054443528071748028385728767321433734895031561747066227479037698638586277163825839667682884464310648787964909780871583399404661348466607672060981576875597925023954290092727589747021688196612108539952381743604231429129403860924913294329684073098045787882569627086162251708461420778997961731395957773753095881636658699154905129128766266927499438065965819072433342971791494420874731373814349485115678661939267355099843021075883305378129478000724004431805750802117780541829849303245137035079470495699237371336912010867816406930055497879931067370001112186740727678057271872307187832210750733561725306764420311856124178899700369915097852546775557486018767609726891936419061505152721952595270317900152788573242134377925807417099547208055781112038648304815622532454642227910865017983310803596140631799311442592455894366436500392975563875514053914812333633135804973325618684405917013354637185425379291502451424063337392417558304663371263497096493570392183735880332632046167431677228408467048254391024527551349959972332175809419989469478793558354995578075825692256195666697218684658236597161080900630516344325594950456944024263653080296913280200217168301339614280570435936549070950467920415241157824247448441573384182247498370622208616878499444847895394412519231447457310528114687546314377609786012605884724685249272656525956581844525496543369858644301217206318170663337109558856179539555248677190724111887544675487667373919009753328376880815439586952361508624121253612876056296195410324433629092396620543068131223292495672489855933703662404991942859595516290989572905778669763478187126127583047743166514862349947125702549288015028235699663443580312767085259687129296185625056650832120445412251920938321185011720299436711100647402746415884431996885299261299136397763455405223272435586949308593489171648521439474805431732784330719208744594125823254294418027980499209726813125352322948664689573590340238247318394636888451118528124930531351089132947373639265769632061534269543497543991668786793111100935115823266111637594567844975483075283227105268056356813800679799485430290647489197641990870515805435955068599724666938850003535851724227578062501651401599366135622940994280150292753012263222812050586811215973281141621175904399531531786677737148511986109186404471935983086664356815190987361525708721545471758190385521551929499205846399235783756422370014157859169712771033538134453791039907002421797530690295651730451252648765796668444190704635890574203559950172265002609778899122721243979560128168387746278613271753687718760013201169111295234870718057884509466881304514218024409381258807109546374727650695874938227819846735604793802945809617796843643025164475320660941945789968040848192449103778396379473387112870725612592877485538312190900336736759432642664021008121811309188326020913206608040721793292975060748752111211547022839443241503548903973685882986217277249575717778390292782727469783822792836390268456814546581006522075709631698702597246894544173249854574533542300653677728971106934619544013691964194198124236092472302604020971856495156423941541599925330060291705081105088939060600273432129029311168687127310039010784594927333225228817205202719847804902927737234269072219749784278776659579750606073018419072978395181995686827734699399839719847748192805257468046530900727209906234079261653158231375331217492574373789795250061197968275421349106457302275916910260902816439577431809532762018179769298080900153106452320554983358279716496893445794584090216362580345057245978870037236256113165897648979505095841478779874039291010186175112084882932340980104625559068445725535509501888772028350017241018336579865501386107455471800616215416273821921474129275413588701689661561721260605841465358141144097881296713827781644476424016524333683361969306227005842323115321893625793775779709691142460414790169827561288019274462362820369173940276312919173919492494907281841963134750142548257337244064197079209160389710494688163585790756924443946497397772329617278956465298434495841437872292984411884776957529403198623572336317559521661935610828127930170583540312206961004730424043398658123823328636344998454847691311946391946902163788012452050479314774994961099669680249135732121277893835121618023414217749770314699512924869298290698658631131835053443834882703380084776616174583161116649849256256701405576414011774161284037467492605890452812021363770187911436338002572250695242498214666876497628030665930544613992305697566930442145720001334996039258244527128523484392996817313238930684254598503230458793052211238639255289169517927363038434000488184838194881936702518779477225332592517644703663877293639326403513088779656394211514745188969190657770230766144415556318888150881835293410380234958730859445954578637860184507929372473813593465174804401579758132940239713956766992660673898627045227118320285336017335684787199758685289167212364298947903983125014056262717818945838469506150635295970914364179731464601030797121339646839794556321065642500632240045702073685069101083409971042266144182058143588000460757344076617345924916658975147550694531148045421760222042716296972268151747127461049662500752116247557186737284296749175637389261568643408422820639765486044156475781283133052704558877855662917911204382589858146582066044859062387872504073087081118240555590963228377694565072155149484334275167108614971184963962322976804123560614568514037957591345316573030346809877962551976775596587624045408307646932226701295152936251418440342771673515915117557719131196275651234431069712106912841831658180867240209688422809924195801542452619372926059132621394106141237675641614697568083842664252853226615751512437525409947762794649296498288958697365526058062486337523624525526865362209991844790931836179169130440700446007670744334199468319790483712842314025760975422354274905122353212678891288015654591999484221819469955476727113190038091378934283877249019909948699662851199123334938389575495427786515221660157724995478099669515094512131685615597368983575147576550938666313375464482575024473200706064843851289039640457588674262516597038386232458885980233507313491245534307484079108117511910765899123226905271756605768687306919787737168843885718062197150115957921575867920219561510833271005754825679423629997706036909306867433376368418415160203448314968168248961878106254552836295833968604633085741282692772121673289685911694508425413939723751498265790577727024716873016631227274008696997273553617489190597766863386555644238897435988060460528758013354666682997771700077749120493148754325194552243325911707041197914065890495671081668329243200952484037609653909536068227718185181399944242765929335689847925200795744031867028852351345098463922947110600886611943525348131787609909839768112791885205252311217446228700072028982641679899831001958095719534026437932290211345433226458978663537802029677654370843453788128918588314100281675005369263898232794388481599207586149317676688506593105486059633668765474535147910923036799569299275791092756831961983811123159703832653895439259695504540589695849741057807645642290456216911232854377048538817450695268303992783189435154428009857886785031196281093664883993145402610951510614693850373796971729655833854282796548519837578467284262629778831841421575640990892405750836753384239657497184283507221018788478738309425070846973167238173134122590955040185533836442166222373246799155592033551845881402084685678304426897136695954623467909020926067732872916602286082921333639449015379553902199980718960494917635194043047388716846568629944963076517003409604608545631502126166603035790253355040221421282935784309188509922920247334183912220833489894573344557470961132819871187998533744239206857193223230947695554678221781339795263477176826720455618186472371494627325350134600514012000450691952125070938773986686270035518525019965546701433242583242319687359683458743399429782409802596203618090916563478558018745622514080350308811309236250179154090093798526336205946169470356936726249822922079820634134122404008752087550621147805960413185123505674216611033357912334314814083834643048381993170391312459917362180646980376086143055115093849606070548943948691621236722274487715013448609552388908535869295580888042464999333326892300112751189872420354577596737296159036810635942729457663050717704688764599536793480284093309999837585901875440617755238711868521968361884511883066156644709440488887167560305369535298397337585556274330827483087447909102714093466927058734873826278172288028943964448170948675361064173151782265699930944099852149719238426739984705990632888745656272113080440374074109549571106180740912128954725290557594492320905652252733435578130130407555237024775139353036281317260514221115308431460916661194084390690471125918112753554935324486508137610411721798835712386409376879638087701563027960020298434134914119242903532076776249703726188531661443921419366213174709713259474932501380771081131483773518022629534448602931001012146993654437064838152286631442391192329986755549916989770579235663285177011644442962132735714470640766966401333229749121803174477414035581843440401684586330247226273014269411045965911069144974587583198814582172685279681376896675498610687837844580620714768561609991993328233810755350627791891751381730957481878880515090553090173173844305126358386598581288060207885034813020994884131349608932666704252492719326332630037622714209727032620179155579832051016170297092944216672901631542860060161170764363989866738977365521639155432644959120419251322251974619368554232549484922446706975796082466477477642354706053654067077812119629437023739632675491195981861204237967044215299149057489772133689646376487048817946506044819136137431271583844510966342392695289364994192570691125839136646423264850064883839346604159946554402738873379873110663290715748060020468616569276796672555590395787507548506914879711480347012518954532849208068941766268212684521858782145941707929615867193930135036607387565920510135637151126188761528150713974270539033925886699689479354196549627813098635566982600232431967809773895449307466330020903614279727388096787821773705334940189931132598783084146981670032529152165333243581009027821087899878313568133462406881310557905311127019340492972058737332978006490607223964477687931706748291806137331156200887567076279103845651003497258019253448074034952063504318309841904233712168740343810156233532572668027373717355757125199731521834450462338255848846106701563256611210702322225047945146403432720681202521905250689282410018025740081440055555509441869073986875801022087147608331906642810658196971203980848100924487690196833645225547786043260714674338565749596110698856309582502268108149212378331078193249846312202082366639853090665292983342355949987347044349907943091315667616266679229087150331655505260733819442084926873436794310118227052420288752877673233303004811625341019549844854315214713376318333223728954482700390576477287754780679304306211946022871133733541917560967227595213462125939957180214450358698788579057635334646897669192408158053213624839598392401465209252329321080813604699175646236696812379500247208806216726595139154832631794334512316951436779936430523198726742864594073333544586183863350950531333198696001178175422843243618017360556612877538354687746527309756208503696020885203514257466867156097314587329697858406322581562573359473970993397408642977699384980607156696657061327519248211880828709842395737100359525841502572031077411246984472038248167433076188305655712990197233929034719247695265736017877407084202627667901224275994145535290287859228750263355669498986213732375713921175837443499000774464211418980656316803122194371165921924235240035283810740965476735860109120446127637891805211436349618391192778999829396480673422664418235583390340666386153711386645558318799617392261432426893640667496217620022513794465476008618180850856972076841838923080405441335267810503198764721363145412843407267949223902588932956334049563832202250541882362422059646412885924974630685285303542522459194652050391471652538028788371363895554989889147016285787124374202419634980217598533510137902253823083884165607294771505990170795432371047708914596380900366640712594814338504007578350810273807626706218323013040242857768707489600583004659343483179304784216289010479376968353322257842107052150220527099043810619404474754552181593803534398135544271397265978837702833520802165551201598375784535813606903456504335964632652670226478362839178723420879864551642755199481091809533591295282239829445923777291027722290879336536144361080848309294653818700804191554967817552309238688411598073250023763024661559538080685549222971043003810311439564413447531930367546228918011510074814519255397696516803506040706595112476160592602278432801501354910664062589744032875208866660508588034108893370618443773390413262869149244255887707522364793754797002797791400006534304913346043509002542133994449638247774914473520994109557142967570525833829220066233755366006280971301239975780857644995698353996855931223078163883109985889800604929780154947355187685483035459785857742546566460489076622438886084432989067388128393421214219361130812441255017282530114873203255283115895319002809927160726882333723401854478261873860030802494198162319247828771480974517170487297946906261084478422640606192125128650737081978907330895546415556994161299433207263642568955865053101165491936495127128766341925819627491714179114908904125593084297901456740344666527685704945415166231087394083040351407190289621255815573995734074549774900217815111353415231749516233579303428200880209442954119581536774047988769044454046346965453787367026000566219094821037020929623718893305585450382790548717450513895836720768575632914075643355393104048507192425832344531697311269821174690855833844889939784044465229369663977105638581566686837581672759331210427930490421008393513913077987724895509962568386852817891415253078409586750879990623355594558208453637584209507943367578759467027433063583971276183295503208605971281581659741443749006357482264141086083784744727030990605172273533194790054023722900082003206828551510524704091081617365271411959213238176275927394815265190018415312008155837722051345199206483231596855219104715326918136198567448250388461698230777779476847711335428941918013634380260225266825118820975399697385192313000163188435581188980237407439059176284330518199553395003834729130057979112046607868547347291175061989582878530679112389807762231718345459567536725400623128456894803039673159337970719065427485218102176333965928038191186700251330183401881553682568354418979236837854792271509347291263394152694001779544483211839412940970977115310715514188894554297863802285330535640829162848240291991666176493653379863802926040020964883325371963410541110726148946193504513631113536144059339682719289503794830418641986959165540005962078203132064456462259131146520138703760591714082642987333346324884476772528441973617775462563256324088189552523086302318118928770453733390764945081207715462746980600937395140212248385467696505372498815340154867839853258074423661771631259341044992475444308796555495400503586830903493616250196676727495449084678328630578093461542851966947328413417367731131962380560939776385440327301385272676276827683981989602143817740987253506064805631395373725131646127147609383104919802604643887700827290961507998729508929850902708886349344922031382205751148008749140701539186813901805217232687856535149947531937848622042645408944089085749922212637185295668193338499665985591184335501121828611131642227872419599094163031552998694574446807927568818557079482956521415518097838175932841456651249489526306256353345306251220746599970689556227911288106048847420283140592219026359675455619242983140367032829776505241547435130951819515045700178051191771061992921004674918333275371812314149975320511818933604474316768651648240555108585395087909972186485773257758366693732479779524488026624946763092666985686606220384214723634312161351299273046743092730885864700527781287641122048715562081318408165564427379392829921515532032628612193907483985730241645418020925320447718793208776001174720881635410761441416903534777794364222066428310567996247908691572972723151433572251585070843155523973997122203551004440589755631770445859696798795682303106429947564340325898925949316781051010122253461410565266649523921117498422583714192018768517698807921277479068252788342561756536837077391517876036218703068140172220421782481272802712283504860575325956478154098878539267148633748094341573025726571937780441433660228968334068551317076695392445733735469105240975744265560748739713776945575264132056196900944050833047069732464507996137509706816846344959427044990192384271595574396081577737762754052562912242979948872288046791632440970374550917413777205122902370475181398751620305970106144851254657181278842874041906441833055625246695876264703712447252416419247762745447354182771475658318088158870348181421124683681489215261092207726123400175948145664628786653822624674098475161465447281506488123680146105779451484782024882479472238205332409726492571409777602667517429507825476786110615269220802906223094190102938867198023286735330089704093534059028302645920755206791874343708480894204777552676581508163221123666118506600539274277903714432172002219134185136594697864576366887390980749444695936737402009589020823401262012855864227698081232362863052285897199328819549047067703547363660644015789539725797804050280242981316665805754068113152937771481894422574496301800802169662415459710203303857059384616584510575925687770787443599812886016237432725903400662250125021444533452054419806811599688816666711504016383543151218347256172700862339958346756576249181643932939631398740749202607666454295191719740851302481479409109738985598148869873113514027389134793842117670806480275250874316293144552626936836226859736271129350976752992638712403546488597853018997472968615548705097592421068889791763606171908904515099292125854809773895572762264366374918661752806668404067693383766515020397061273505881719236861460822528843710385920696145702430395449674821452089911450047233920032836184946738707183431508148729131022355479591392250077211567458030430265552913089255667509185749465074901769605020011790069831194016866787663988277635879276978211377304164059242874162199405965204831910074295360765937168150986968734291036267537012695700529627906286111265652585018436051984295842672800291673343381295590878774633677262534176175081747508216468413914359898055124661100435866583236644272045712510650716526741330602835072936359155711255683836996440942474102750825867472424588273503654716647425192824479061249274447285649218024224742918365543412551256863184143456779084952746698935026687188524758469071492792924588390756519064292850277304250726160560722541465029944572944675243352916018590413086072191800020080565069009162457979724572398889294386258414886012065260713551253723944072110880174961328288403229126355282003579590390965432582541937140421430582060476486016409386143315377064745890557423865693772222488314262258458263353150427541554124129111707862038813573064020757602146982394919846109026095728068706325826726543091308644857008826398441635174806385323608525837989776577980532902688877608446602376332239650061680760207439120292654402599419195739790437170899733476140838638858965139745691567522812109942866005121448435439662299381108531798156691619921653685313293550719340760103377009003691746882650039743841832449989515903372916090234190898817184350969656568387648527413883063220610784720124541442627828675708934617773887287643479184358913557990225668392239202780028506232607791493469999065945986357134359550192097343216989915513207183180581046735803364455337480945410984249557033751638763079541643435956977300084782686991967433666375507902451667277785346128543314497730200423376115993063278142580763239922802162219562564608950350217964139137552117661581914002759159573551299140660991748231194632709575837770276426082852384291623126798653440915514448045428920732012547124977456180323197570509112234627741027236227951684715074082782852532008930200985378920822970532358939228216385971648101467165987772411122626494080969940685411037306222230798435947309665061728990544796315836598897651183947061160976133684090548007749821273258034358564951041526530780563511376735654463899139035057067446398713395851786648565718470902088662862590403474366331650218631445199346873136691551748723006132511119543712455051931068464364262694919197607109399599440745166013604458789109007650668544511291557506719315227508216935285537270577872053186491862540558940449195703290690741770567167407669004895700585875485655412207493641119942522841198479571639681787007621960146638604720612939084848079282579089665235475315430348976098693734028887023441971239390098769447878748419349267248570059032652070970769908872232153224155851611202680502859652512913020147953281575349178022884484101310816067108128883506490523112071540164235480783739174383782008915855365192834539547165941703670899096312852324152711614835663652735830397643613456614031365004988292350645571073058891081173205046873494002974060395182258365755226742388358519565324190845954652871309308481322007929129888656877631126277952916531898579365035544750824734880585194975056530946315822556682956669685970805900805568922920356349162776740564726856945489292156325867347467208714982758251391242477421345478592950400593768413593648418238786583487030845389789138530175916733384747448707043635860877091786368092932578683188145768359833108817420562653935365768829425940353696911162142903098882380092794368567286546278507682211231756474127461771444893186789664184526994312770873374154264943227928401352193551398249102213543303732408103358675661540003078342345296982801711854752623680990610770266461071604827767175678530939674695548815753277779869541961645854222449426732876384027500597652553874277252351441672777603826012609721693099060878128402621795526698986167641155828585575599529097029153075959543203583149710816975439295817886190924670613122125703707454283364379257383127975415762862553386990141691261045283154235922450853073860018852945883086317276706688290172069180955374942895413337598754837322001564431520944814236611313720069737395417926270836124237826047060753411677331268413876209909840987973246925459082590114174252462227013513739635397041640129311858398384436491862695243866207042277969756495561488379203844062356968953431420702080664590447265085239751737926133851320405871167828835484128486770500267237926936265803046176268665049538682066839168371424919595096479764598578157452775687215715515459410536720923234304364056562441950042039395074296373019450500674703358294440493787789516420609073663008494731053822183457173242770151719566033506178925765697662470869877049390443497184355294543222206892051353409292104115944530812815649695550766605966392294817919923075983635788764039310106197798842158345272254068069679789085032174544893533642128198598890065772704587530229775848164370998767818642525928394668731543871612486572071486248198518141431108133344705447850330725665563666780756735807693991883004568681670594367918044051677214356865331454936204503777007549529687059708115752281842053976315404316885627572200500343321744787067660019787906691639074729113321564277513818382027900517290772939714547988019249403157643080591464710980521956515493727158687557077316627254854746772135425698277290907660400973280628033791666174202823444751122607612922582008751071813459679477391250245172477416067517207807994830114320509345000039671710127913459107794333092890239747623751163603134498806016647676627680541159102258041789070729399399884667045992993114280357246756833579244183687798273934553799622783939260732491080384842167646524368514750455345769242287594571257907513185071357449594922387009957887907545758003744105790065806630944202524265250481177026129953863891817275686960246531360861256762195931083175275784491117184998725459602832794011193793485905630169694603363089258194939753441668239159352485570414005591551148615980981921064006603404223247675743966384779710973835138917490552687837918139701195642729520350593495834649400742432909989380045189590494435039060126886188091367237336211205874349899556201198809193167305919796997783220937547765867939620377591013710069607824888041140618238191080251881511429151983366050562210313996838041157755535288307282481264529488410051051908109178403826168386980277491951945791949844784659359765007224752517240988655731104507828549570912070957929098635898675445912415514201784927567587427274498046185993241047107404291087015696634425708510399907328625705841866144623174942276105781535942035081259338847331712430677944470787913481936769585219148458543996535773940207532687604596514390977077392553215768548583529259841939302996417395529756683394316188446895722023088706367552995601932934840218133970984796271908216604519026431844538842955392174017299481614699121223309729352834697696232775135507776436743937003352279257329917037925752666556721799723794182650269756228007028076280317189277561518689552571584043555580030411244985977438912644794666862026877830192607851827226792274321121155628912769136599891560090848568434371139846414097804722656948216808386325086213616239711983085009205332979928254211613836409692720490896041392506158427907725386358273114360901527819300306514610815899916873966143286866401619720111795504342026107853247647113318348885388404223420073484967052886352431529469345100674541347759533269860301485845339860155012586521872847369886883667522570615547124737696110188252196201707425584305748319101036708768932700419353824997245462221899496722859035108568101897518638655764656641122855384422110462094167223260416798040671321810551336030622510395110068327479037955391578323584056184179042222978136855705132555429781382110313875793330728652599167958398899611149720457000270753534489217275129148744019004111463135020024701761781076171480438526710937328262232995629226300650549453649174688763198803453433194197225060963473210233031655306607971514699725137128902174324845127873543249656209773220525794005607348751650299852161188800644033062734009321764657575688962364561664732791520834089884841685805565928676590336828916798232383690202315896365299956292609226631274035709944709959499848991156189259658614527010510197382150769077305314173528164078854531267344362568571834070290592964127667746667600519733535223620901756520557521317534473087896719843302261618012626780615411778855474685136204016925817370625887395401192508008972801690379990293662510130134955528403332686391030766281029872193830131151121731228506943769249495415965200717829870686977787715651711691315910734967044620462625142020001534080717356113590550089984625551327102771995402684838547526151555785222237672025572228189029315729346567479962420798596328416000108135506578319618655721266678366235608121882654373929451164727773462766496318595846172704672936229315763629301542497015052877220678255495050315464619701350553855763496854866002178300256785147627105838289425677643336166993547196429520995072648632253773025907718103785411087327607913832473058077379215890090664780908799677931295624389882908339769892698596285704336716279060066753466378018122648002102478774543435320935352466888464814754766918992736908273218363786890567234414149582574794348066162007522666894383757471497015869966186223748042784098098274086620616151947971367631908031937616642611507960455375805004848902215112254691423164233201361061047494078451123811177123726936532517194450373283671481473305012079764679900328965138636485723764236765924083585318436868794099544695149435874838601892756180936612511983622641599417918226498589482617553722091873769420726003825028970558829319036295344640597419063070003353740503308909380660608522709218702240554971169744458021340000088604311878019924549309603446484547265636127299355392018063187187758901922727652958712943147201566955843447912374803190704986735918919241994588874249010942252924840401235034379099718684477408012592721523021221675520985879364946587402803241238676282335763147254746226510020005093778419230744788971508619860339885790856106257025381651351351263537712255126630465594551861144572641085057879710480141384561001133790871305246094690636674668725417673568607384733255309464749712222917205738589444582219733002197933881397900783913352545821428114079320982681980459166365528679925783053581945427347135947611679940566527152367384945219653381114926069751391728163807009003855562842543178979928074509141434411950602883731213980597929185749501203251333263224578170484226401809764089870214657245871172884201217436469109776916916540144716641716650778053574037179972360088589751335608813561544650218154082610875407192381934554738114511904564228038818090277361543556876763439383259088004701499586222916254894775095879466415644555708231149519969144816682482040301041827572133238609795277663684681634025000772655224286845846743449617210889820461055876722130928874997842557410973723291150204009867740545862675332336141863205853219223353256697780116487395290681807607647701948549427828718228947524923621492237584372527683122643373518084103970079637701026046173934809105098204711473475348486962521508092506627292703617762577613968482874568787501350554947595726815674397162727263686246711567375086095678283639365749056714043964157171501596518638602023392846858898991577992245600057843373334039975671899558803492643639384275356715200047963149875561138067837643929467965710144823230636973670764441521621435530688961966109647946562322700653523281680093404449941793625481906871916291455408803306212807295388171653767880527620322886508794317340663656840964206637857566157863727851453462286475077176305421813959168517409229493141879232398903086366106049365882305899623128451234070795945767747851519641806376140567878739288944755397395719369411164678476127783518899011109025668020260423773927514647825511492203001586029321017023802510525005836989975914401068764965756387018733495606404334523985644717678364531054560490281066726380934661443986436947412158891102868792957693779531598035650443876422937582154903441431252826860129316590755608638510651748384049798794474900195132980075023401560042834220168102768902460929890468931039504802598108668750683571477188198381885402935282085335445267218477370459696440659685791350213945516327473911020555661399722550190946760055197971156653101361712311332028822522649564841014242505218674771033333708146247873465567080032674300521705181232294713585566145228254518723115478115393166104861780259226277576920238773496516479855178322588773904743029152784428533851131564792773468848557396781753782246587592324615071651683786004286279557250137846039149562439696821621690115721883000368060025939828451982805213927295783639760041233835277603724215963770023530143041828587670816159490103650820762384117747977151203647011650069436186007437200492589377458303721269661924195157220546693472717773363823051349358992863642187421448911112784920656064332575316644268945247989563920457581475776648275386166567740692841393809915081945350320051067180200068225439329187073361188093757542643606203736649030495340616059215390214147874940686205689648065239782742272566329604108897002265897816379516479610089907854404453711655115917852062808779356341944389154179471118410212272418736122133858753248984824334760571828814672714952727137647267136431896676895945273282934381818676626562722133075667679312554105885148308510598675905528703377152994322655053576605035835684061458511235790490432754207948470219689646153859721642698831219038627752399647239718807276325145497519074661217977694415129380249349979177765046405543912995813253143432337060044789517104335614102239337620388315186521014265307332802158412271811884830044493339396969791415399254132321137770168790788628112239915982938094630639809641183982332568581107236693883131178373742381722781349814938918926796621121769595958575701384112958530327477374846402443079324250616161910554654325346148291537097307063184677873937110545853494126301352085744049476046473315076239530355661507781441751542684600593643776902795820734655858833745571839879051169238745209836749219941820971535459006921100363218330548466119837804863651284987624565519380092998404925688984215510752793972666975481641185269434537636725479584061724213590616218166969256540832615996282172632362572026514533358581522010459900992977309592215376271434294254650619356358596054940044104747684943231830792675341849301475438786683924821514763464279279773996934661359673251245221672842281578597000599652837687098467631220653637974641086243528360646906596938942868029825116284901421705516190971227016852235899561075865066997459495695857265788012280493710110019867455825146315268113270580968592715860427818460974833854263262286160461160218143594540301543086046932406027492976980283812102389379281237063064476750616261085618452385091850307002430369251051360013266945213007927908355867635243654462375657105671557297805657028281366440506384395349479564272295771478906267447285545067206969697475365783848366225864382311292792915021580307214740779133243165090386097430690849066851426288177398114796494310594970349471850163114488876023022594423358953123103239884762437497935085328590089014925842784852833756125453387612855151725437346096497425445395632899522270760455109627778872457046737387644615881685317456059622406796307606469738085301002294439050226616992686189393028734169484299093529769623410274963641478553988760079426498044879265896387465324946574190072833532257803903988238844497182713793479790726184598862815191892093577979933287754274436595766622031962884659946294907647736648516738453880553246560187555193945637107941192842758618430195833784091146581088828491739796950392707815996892010509573447143653695836178830185589434517706496206883032213268645920873061956981516994709916993620046148555429413887019106848570773258728322406178418103684447566939531550902033788486022692765780258671445613723372861931348842380437808960700585153255325328406227879930782434321241316829783939126165258666723901211388463510693307202344229825381499148070090351399066068554750818915531861351003712677040809611006501816141687873804818869213578936842047194166292463652226056940430106615754399169386195688186803224464358040699024870606425937215461209718214183173731638487512209758474734855972951811008741754662804386397132269877136299215759892429038522640288980584154144113139630873492293857370875776534614269333603189863523531521810627261771901654406872145266261226679596561251357906489052050413855630199193040015697087077740470754266404576373302106204999846256442039908820404318508286274813211474077981296335644042250226757944138589396818232938876100266648625375569462381194118829054110083742693023429649628696311011068995240445013049040576095511419668934178370056625030462229040698186618794289221711575809712522164273739430629313758508524307118337117425135994636177131508304787153146468264674342715599974970326547389713535785371962408133504838631271810721903767393502178598889153530684941872470835340382825531826408273243725608474144500809783077351344178819846548138785946600241069708722162772043796968141626173824288076713184412477894415385953382487134081553930064096735193446692405645182893373238936466278810285728171005097419010070017431489215421109217308461436661072203346438959164153800396470572004198508290045833787042176394030055416055280489488110530430911228932679507005104114274769188582813739138726012022871447161686306459991496379522792850988889180858517564847806607223020350805642112782522295495191528487406134703770134175692708385221219086324038345375667391006150742301673595524086431582432729496057601797043034253122186246477572861787021840039438340887907463452714694748938937229329687609361234282422588206174301537550340276423864003024799081807659052860341890005083620847462848945872405250568687988951062030764882990552081746731342060982386098633330488805617077622723049006099567623494602093648807178995570137227834838862901427223615361716818813399562494254666221887819184243670575063219172028099479756696805704519166733249848028803706157778234569982012853707408731325247927573488991267739887804911212328445938875745787013202608132489807770810493904124630316847836111255160362703820981673130238682199020478433101971388056261431870647466724026458184974674749978367105823202949253627000790590455095164059661314891844105654476327505408080652529565999751492301949998303956624591600735159323472864752284894930694708618539110446797319527768640748049113569713648417321287392633198418652607792829537557176487883644774627953196161050201245942317025622940445663678467477922262194701382785239253098472811578395169783998966881694547470991324005576865567281203700850364295939860632143722543797851018665695891037784113875831601973253763270705999363471182488807638040263371363082364185031499344356921552342478628527679231106555494862826360652986099506115596154903154324917526725785791509074501686945977864880336670161804007563454300070799356722461231006138362225965977172430403703850619086512414892889526352446546681501340187249623681467421498740324859080533149506909906889851447632946118997736776411940747646700991002861421615460185691529508351334381213662208266134825655849625938254477794027120487941780354330304905861020230147475547496265270097407726257169782029927122365741321775484107001158412855209204422748254719518452157835063922016355863060618441205946949990732651551342937746371911185192602522613074454081431639632512525461222864530502302874954582652370807212906619801738926064655687044277455354841129852388649085272598476922526531221055438372437786462517538205032266685182136765798523695725163476451265470569788760528989213973491482259931282718780482789993064080940356564368498251097930998298665878152479605589371161066863224570926280653270297195890463027065657937169389427050684551868174882172072352059962554931693213515438865957143334990959964096457984500245824272502491359468724624834858922890196059716707370678662884266263534015724535511573090360150453447328056524032831899247744056185761130043119931456222487338041093265184257796678350214322638664345269708314523235685289763022887560527317044739895551716732935293265144013557269899780774181800839157729948376975638167207448783367417453431074493694364402818563662530849560564534099242655269027675143176360116554361263916447278211903967741584682850081819277722206463348645676517080472305120771640175002990924039588858428606162900110410582384679718146470890915454787146098720418152372709313876705546791718959340892799991993969377105573386387828948287153560440043506082369864744102216520296423397075474708792935876889524005484974215362480584519937269383330015601766299573075302655976027847674199056807641567251491883839927055429368402883584854776154602792750281421358822593958109742942167942447866729956119790121004883772970872133299858970589788451403328315622117993463862551371087406610064724169581178658334497131757352381038974847946957134320247877521042720210496527016683158701210093694070959804803383904112771643189114951085532676823637601451695219148188350385027381465917343652747768095364092187960735852317625802672528803224043028674768821684630608298309514614000310315210518170628896092713504822716013946622341412311897437310534547327192240551922410791697286475649409907913194603965128629837814545939895664265768366899299088819444942485697495466913750925639372541149492548322640426134065070750821098591306590439345449970498769081452208709462295959758091271846554888644139075154852357979359729417181899548483392645684973653984520140240716798988005516602848850947281202612345317721058146825784694737472675638676059946888567699061596412957465964101120750488257788624330129112442291491728594283637463711886856909749403898806918165802002868330316044887165699611973126354925370229651954001881842829404892293895941767441301461355532131772989711015456434404382533827544776001194272841805937883896730078715569373594253909110372180321392161911253822719412807339960733930256786824324116428261871355042905897975759385726923383173294715019272623708969595800516105594972945345030882094689112669451657353848687903884910286498727445217543796744111570491736887161926152569971516853735694948940108040207578215349956031260692506860216062006566358403093924480598222258736911298698384986430743978398181451532691050657438878949200415634301234238181078689984817271612605334104459563105522050212353316444154990260911027677638174071843595990335585358876663304283345515620651800829010360522656203614085386119085618147133747217262104502424265837821739445451186521602614657391206129881577222101690371980458547659401351707352946780242523580971541957345223762221838517911512438063880014945688500052318438629817976366484456382545097129747235669677315814464882297510485260104609502479938213149811151351943759571169277888406991648210386895029269984497251727865705908795561512546381120575243476403562297162615547899265181027717838431207029222264362403106507605995150926937738620738445223117066958194786792489860780608358015434725528253348559928631032633624518351349647707036854434466607466932481869523540596197085683887453307349975563680601564585763088230017502263304142166250598003460553505954822966293610478501401070012479121173517658478248881537361470050784297162058665879001035883748950119834808431610494752814578081201548304590354794756271826079560078805884636624200689447100594853376726370612301176069739509046407944689917755515632307230681027316254118004178162164609265170176519735233583638105939499279151481628271717084809609761667511379130940414578585965322370855033328647839952178223880330042680172383944743418107598578145413381516806679183310381068908454429224585212751173828941043035783066311016023449593558710262916677839882821948062416698917032002011058691125287970938340396791853048183773977011941578202828076588455487468421257739164869986604247166620458825729030686438906566200791741000086333387443972115923664417285950379255368555954001635102063256546059311916327135538856958334821643911669391087290730620048938821704647245761186337648910093338916454566858371098554398495202061608307123562481980893600990471828805018686747459371095601122464094213680119498330594665951792651576087359016067620160218592292299016315956072362606487996029069294274393309293636355519299791438198985040128116109860014030649923665933292355006676487615033375550675396584131061685495080550507774087385918475392311015269626294392005440400423942910883513888805339235518658651505434298565790714191088170855485772738899551000280001940756736087233285256937412317651946725696503269892649504924582924137481152649842493961394321264976280755808671803079208402139068567179188454742020040371796618496705552610978996355411755008768524952336475412119843393841497702486588738041923584418197205665014770480147912879423101143303719524053740592075564456657187382398510716733649787516252669679714002068385210204011143857858284133910775766690423653306357507935188335808227378470395539980802428263619205320973731156270150289653159311234312937547064188362082511098639124805834055730943301398252176225741604950866802852917967844076921202259349939787426677512659215752375081641694292433568202809178066325196731265151312466220846519186502042325243640322503489275279109765960766403704314017283076777504657028449452346166253429435669055327620542825997890354033180334779479279991107719376294419257381516049018815625626359676154747575793462899261494698566761857484486725385321176237694583685500089717039875038173763102254760985768127692154749781363652001892079289974875954310434642610082639512022493833201483617645168289300670939505899249907472593782212857073553095769833773484790442217871299212757525846868934618356261885627974813881462782909139924965380222522519057237727747207998106483166957534208036670559045253250756529457375838506125941532366980978111681601938201967799731009677340802269374230322193122049464905083123769395175368822534736547528122138836112087291945658693591753379994919434755724593870393849763317721996524577806085803685986600995887779869504599078984304316850925371556927508371531454228230799856030857236643878856440294596788199199883583115232276161516882038400254587187841522614280548649497207667994484747704060993921892367999760318043378064626421038416561136735441485439710790483867597719306924060058756376598550250231260639689237390388018773334547855098262882304956352309430072175767033711951276000002714827821219024370070034547156293636197522977408777446585078262792925491556630447961944284536798860972229913684693759779502665305656679458822318524891191342072661052082270305247397200595503535324393306898383737170228207686088823325844126907748081814956306497377785716535119492777102575940801712173736958574135539226429762797409824464914895337756333952889258582423414931086159402097504906748143990783010751405345248112661153823122449639516993676537806116503491960065841650341672883654431701738898534044882303784969925962204161142444677706052007381621839711822481922607865741577756776019959984164352630978332616002306530209935433388318942595882601999867761612803464245996886047018220573288893639633849952390649760595752843442358174027795200603019604126295844131986300673472800265480807749080791198851113856747519293171285398511795455359915373124466228938783562206862415640061344808370167818473778375312037452698114495470591402407099471489108465166305086300968227324488983070258185796793482929446511067459024504531511604448892517301167262014174421071713143136392691849093490478203913787850778347460964767011329783409172536163495968464938006362108819748381316373348955080819127375537426683745025500735613891266998278839763088616946541504249267834199615777518690291033742257945951784557691355312512032795809841978431288757885554541772814860183713461194982000476903344433761702668144446524474639023483159454529240587023277571690727863520624246268840249799016458854407509775374789110919320551470783209378749055834561391414284147144140789769848068867596008911209247780624283305105411018196830036879139370098437938270835219508753604626674202658642986293453948634017779713348044383032746092162230512715981092776984600041259537290154276050079875144855243552517296326440661620082725317546715860505605259233407112213770579185698895784843127514970440399115630836547721213522900154359655286438151752518254740520789215202644483525089496442226712999662065089160898426211866135188788034802304106772235024876437921585205105208452426549568677644113547277082656278928210913795627926639265561466031075386398667026770119838234516609579911923863642693534160342923722466627186976800893027177387448310009224299443676809716473482842828219175424124279860989889171657798421761305593367704707428187818259575708803764791948158229529598765362577115569178712802396449557970323707450805403241501127813685016545603928742777362907626434624520078285588814500611746311910103418813285421966711210867679124038533600051884111976596445686201500432405730862545340467972575176915289189185410942543706678122407471509237856769660906611334242472605329440846825292737682531129891767418627745625570547672253610614277272364774035877371154862540683352396629483328353023871608619410788949205835848068484648999278731363869524600876186702885631712220474199517390025448618610461129496503607032684892266684697856926171597006023412171972135952030935403661365775019633295093833902722140390857283425583134116060106187854827568599879131191633138568481792507766941559660787911581389072159970275864582677089312932642488544360305794370937559692934330223113261245947894945972281822841072354268394841535120789528873530260119040990294339732536397525335314174058911592990846091569721713408727117437513351073288768435136752157182540539702759820722089273133828810460783720632447170333398646867994734097985546457202136910526137616168336519657299383932756323152324547433001358535869875480302163879967969995335888039942206670676525591344309315656457784032438131778389129182843842382331947759922091997260219108986962274542888054470746716661895917201794751462937186386260325870814710189752974440531729220710607293909238715616534547828171046756083880897877160027490053777096574514161561792752068887420109277331861156604777454694995930285112361872295270436246623567994283800390685958258385542223028824961822478122813017803258447566038947344073086911247627077778829746394225725443044147197040879802360461011005125039989939498714006392094485352643942023003053590989237206452936775692134741175072609143427141366179783359013510712205766395176696027191883216001700893731128931282273363608374927431170008237832534394978990602214055975803241972103199983288998156846277105338971891266431752733816570762835396201809227956081538638749221007424440576613633073091699516425985755640702720078572039312529517897620178330677836811867158881535905021054737386485294147866979157194807769194991509136895575310299700221996562301607077978789712789738354227201130019549005635434508883630768979859099724408538460525640715390726606073447161332863355754280568336585223338045917339050998269423837818728214731529574160446633306980031736041256026842988271167328007414165127174697195583369421118106182680826585438652065022793409372370461751167499556412337910773467432660506209078801324738064113046804564774885687429514989298719296181396572558840690826518045834425235846816570322933166423855556163954652608463709228399785308099262579035172390406201662758790992281983199948835905237899804378628674376114703027860315964090716835823401103972203581351478415564295925440048388152803794706315777212935915200323456223896119793521242084558451995347862279669787774413517008342496923308574127530869487404109680224656598855035800919247230441715253735553259262941611228642902844585149060209503584573186266427763902801140361320279130997417922469152431871541159305233992879031077510542098088852797746066813114182802293654841774399838365776460277056928704250127052468121028670744375568333447524213077064861214046384574554264494324085485727955635089916419997952097399614362831110645963267299411850327287438714278937913440098711169659784692200466879527552995430568493416300365843669211178362475357007408671645538994294689430513679272320892971170810560805623701481298441038482874107896120483064886780529784643776083533157762724161472163597117886896026887003119635114388815901838762388790974137241157431401379750310090357865831634398292963352092902317694217805875019120679837113914030333919421409164078072868185857393741209238529174062003505845673893993262970508083408701558830863854884601076665899926752970216559624298204688481593995257073207050253349958977601081885554462266722366662367881411183677117466185881072545759426608679741992708383664050274375127820306620540526364853438213402559405355361557292537256166959290559783114276083327637311008785804468870620150269702145709520298805200340625824911867879758622123737438186536689577713618213228868890642185998318906618423888717174107963908432647388118271571742027368095588292154038486143255930406022957388685846836946329805160858592257758577150665744738247690476905819004061632956865291212894731380892745077175614322081485044780321724899099933841886096858083842659878767123789645562769179490453564941101563468429345354987918103758386120094463042296181073882196855415206222219072786221112450884189030678425353252535984209707821885542890080799271762038134800252050607936972627171905045563254066138356507007970536345463078050886505612372673382552838301081649015104832250624394058204293941377424164569203610964801647202608799990845549458654498323310094462667794615427647589121354613794592132746064260245586590154834402775236654777915874864369036375559174024394901493779295012130160389111280385736066911511881973417196628920149231337105957112078596305417340051524203282731269127723833542130651285218484215812517607964912815297359793215806425857418459135652428074086138917150677920732039485708748889463269705747311458386907475428109407934077640869304790828057525378003458428961329554060595116049237411518171665167503964642502762661294677529841317413399044278045263594537185251244220026841565274657653778623045069414345380275447617274654750899875877270568225332237916534463726015047056896147369249123286525420577081630462210533824359088991356970610990768565482180348143444340179462803463249853643443740828170696178255602755262690325977353121509162241558193820827861629287450643815873867101392736391841337056944611218488931556143572395350782324659788198219819960465710412357303983955190848170194069972930347516501314080279182477480502091952656378868975621664980597977961977407484136120226439894342907229311260823565957570073300611887369662997034105512005331332109267251448209931036769945427643645127363620664278401742379967485998091737399146656014189799705277220296109152787035721428006289824453217997732738822189165928426542481205379610702155559279288342732364846070608465255494405248170044936000568814016156731674628170081817982533213813243445752612786818065182485308392656660352473151848915905654204442222484535816598205733796150350429958326908265646575127061710512597357947658713499032840565293876937937873743551209051161447218541011969917088887439940996516338353766911001986622766387433792291903587854702947865635606681877522259285067191535395654543803889985136107444546545856721634170525119226867138401768850781380677607883483621029542212413300612356795199682108142837171135339912927772260421942132469230616843725629376232128454571780315152702007356302210498627490888396184174625731472797614060715460878942570860542726316145534575506873468809027957663335862397204058884423585438787743367810011270412759783303600180422087618415875678241606463841136851844469662344023547230009810137220738077107493125031973126894570437531336733584341990755229808524054000753982400666460388418565786464292187564043178707735905999283125501613585184483153558667006752202635006353310335698511010230108619218877798501585538167235955182278162716464144525932241153888015675920408766386452878435071397951826065078251810061084215353395190955876373207268438082431659818955200319988068290591227232870460856031336646804007625493823719988325234607343611672719519461574273506810688751294638125641529324769498121073536478366548218884078093342673244845996392689866532388074813055703766964571186852457997571583497053417728104881464141252859874481190150612921978608389240271138956298098523807953239296965252538146038275683629337860651362209937671174363466904106720973214454229603570318843502170285788063711010833563794410013842737708676498264082772513075912834132404042631060163241896330790176997444520453917290622995626170819707795316628076791686839313696578681390880049478191020545342984246228660600143683187372190792890430238113581865449078850937545002011167724620375048043622321054355100116319410428177513460653456907911053689262674352718069383164665592828774401869774432997649189057629495056718275463885604841838435778047645831019834326736547307987769420353858250477304982490539620066763068031956463075731702651565195419833651063957353242861334719634016976892582105131682713283541359747146158205282575624153065244262422560126720279489760951671651526146939407606473790181036596785669214587539359441350196776398049025017829291841858823986413373075172617814095098159470629665371910907479713535176443074257219972247808123185653024085333364991897643802575449990188993329586730548129283602745717957112914006385574553932770355233369470757127926740476740689630749412900054591990361522919071072170128170886296356509654039142959610143596433249427381428589788125920972851089962348016204794356761454648475634954308608754737215647947020722302801602774527964039543985423033692536408739093913055915911480149321507136545629149605159872113230326256425792979944278965160827460630639616438721882072999071388394247528033064955554839936881017259944517631066779379503393232408488376098779164841751471402336294148823786529592147367921513992406901914951824851095805858117412317634958110161868014114420499271781816227127857346679904483876685340371247713545291650695823851342903504299271775101055226835716872939148430412393000570278714212805236585839360422833360887093598786830432281318830978249243133308997444806635770328651846075170803687413461434796827985807703133748572351370863722376330961985902566223569737773767112112633662937231176897096329735913461247336263317362372487598109182880372745333014134550078773851142451063593177124101596225270466846198293059967591952594580622197779884149455838949582211757481198937884508892582917901961182603523984721413587058418470324609582410749184634054497042085135021819463960995830180758179757900471112479633314079912428168714344270313596684448820552690518863651994698553199326167345279218010933710082143815624623170358867751199802488728636795497745684925592649384428107466413581676469758297866847096274803582932069227077748272106582975870067226311597773098198691246841819001954711615022700837509899545699190215532223686229991303813830914887695333039580002173704588372441184656937250848778437394179029146111718819029128444918521800960003688393420170823767613874561592093043021899638544127212795890455153175278157511470571928103188313733659141119256631811479164718648231468189240055787208223040784898941539759442666413171653398982070333505835270472231299310690102794313806136536697165316544407031968012113021253724453718997490193816029438247100581038966740618796274830564637946085779893015183552968786685490211865054621837694133820247044258019423243350263217586019696467321574074469185229529118710651785236007079969300548622183553245222848948871617045759484832430181407390934330310233844876157226142311902382530934262666761188105290202207696488343914509684358983667302019541737823379227200914169976464698121302057110833421753122380969263790712975632390450077888118542556573203183416350135604962785430042277042845020436785439671029760142809435175138337504069368838155518176072407897173635187857291567569852274180822183386119192659152369828793433261722674660286000606506496505836629991114564893249310324540357144596348421972059192972097086259647933518422345206298255312035435364447218781189490620350894981029595624945449250571318896065960255615984015226288295734153528288854001806182142173135196329468404101584621756938279754903074595196547502495484695753232441315609672465866457460170017505732639797618688964989077050907558002485854585947899420071339201568708083010876103168404171642456798154076323205362219389397541381093125418904327645025930631595461632402941688765648202675977094839325234662953340256015197477259732608280263294740994309785595308768134904883647980048599976737885745802090158913111231132107533714597214637580698660604816946357059198105145541024956048419887426376002791657966876909063863126610573254022439944673432219977465663419120249246349826364523582816618950794756807667580351949340257918602245709511829394960747657342653359457252956801067488039767371278588222476678382676799126534466779160255857848891754530819649325151042732217011385985410742668606323302001337279812576709500758946991784714991216478668550602109124745606793855348512454197108675779970966332952122533811379725964326609575939883852251660050835428155425238170575725738399168097746060728000034967716163891213955446645437409872985698770116473607528649910891667269581691497641587414463438776745972610377991944851497177842650618205884153661943448266231867321557485067383140883217651625387504933196835497414137955841412893057647169470195389199584352818495324262930886846336363732787078493292301500931075204254945027735402845228971614749568739350694535013098622945562071403571205660943092322108250872394276335474945160574514378686954194556162781100559994240210957078078967743337290306304600666506325316297987670268835534549979939326338029473684493297202780228519617829483640942170721034497726988445805135449496058859964700693100221860802019776591596798210475434691208796265775858527807570469339110371378166213175618806923562035304197560136926154732850142848467112311859801172747014372499009174465468303523428076843572551230568681519233253746919680676465162808534114604064558913448488453187676150148217984608816982561289592991277088739547679234953339614902130731089770765921365324553967791893778741772044044603933055327155743076547112436346859186791288277373724978825827958120354610405409740576851608685486725414859225492081140839053333332088701451567827958314477263366651727316425141863532550203467677529128338990835923500425647260328985285637157812247079359493764816107046961634277611278651373785417809115274854539976077154581432548570479668846824109308168458147624628397028390072920250596141906832430069487850932160715136680950654323818730803098658760525108553640826217186969136641070033331097328247124482259464317284184457614037867533201201220165553736195540709920522707819065498584880919385454693582300569633006057218832556894199447114260849258181489679087164153602356338962916704446434548921576181612420757987948589487346975045638028423920024769668519456342630173009928163498140117968538176657464214448566547592546110895182547870865619678059377697698052937730541392243451116373929992348783396214135940864007663765860428127182382411627741287286930413243216103943047924105044559401401870704495600026746791897723414499133907339452922663408038018976605535290450605796316845554088471499531923926070365530240889496220622759398002347830487994886846729912630863128631710382653950625132085984727055230111513550177994343228785262395266979820174060948135305045784675706486897085972004645659455968655522914401711836746537648699710540864982482661667797476559282232619225895126934783633421494545241413344679859515471876109609922576082885719832973626042036884730216264413009408889907328241094141822384278833532592410937309134966991691370189085096440993667398326552929620346942935067659187442794177871149347844354448954313929140997095759870389517314693959287591501277394484178833922504629409037969346043511825963174336838066149999798625244883181562160954291023372561552996271221580218623318388831161497785044941731776151743961778883764699766284555723261989013178997141508127702581184042958620724637024251959763256077898647629095714494510562221012930472807888021742947349279427895314054590060758801062166751178244505542138649931640371545270290634054461972857448437157903049633802763694249643771072204229522470653591229581125865378763756177916323321184840698135594399096819153936035361128406301607717467029158007133366551819257697795043520875398447964527322409499726059103800456456622593940856643307584542593832313465816544162698537370064794127732782734753359733287439325073174036068745512603232273982172390775188209715600697891120846936729790697689604297876632922945526052839180209181556383002851067473303942007211731698206773957779394663600383635114860276592518047049774697891846817850212113527233835757312533885772887935530295728989393202919862073720141060626054567597262951565804433533133801765006320095708022367761037420767043720507212815041570589992039017329359986338852401000328180846671230690831707042657505643182642174642445948614562368399089974536339467904803440196063800572956009851704423796714011960933421978782273489310265704872890919813492100337830906645725950588397761286384588782786996739761194065278926363224169218193568316396882404713374098367008353224094973030877413748861753027678798236587277624188225017518612769997172743448747096652713781245621999286484962158578240266134289670502404304999664976897733199128726602992979338943588365122442945833371641301230398318610009031809244520716516551332327181703377753076086732610226331171706323697378949410702560004118559516454226593449634502296591983884468125004815678881964736466465501675280360944505727668065834969469112099112401727569210295783516208374982390926172598734009748323409086386486971343560502216965289144777897292798264703891258802178094015539807572177300719521376770462374764937495544553382777854915026717891307161905946986790471767516780529453581304420629324674984201106866829301420211716150376059903249531155522423202081130773642142945024002662062506214874627450093652340642880480569503493789070762471648244823735882961140739976197721794576818671705039161164147503891987416480132635760527898082445383037916004139979632695954187161762003356682137596017735101054578751981075023576842353360134848064910773822921205728337510506028024401281907947269799451063963104414921078395096028887372707393056256073594353833374772378719061134846420090565386885601082433876330388166951616159251005868924383254906677803382966202813798181950101411773428887878356083093979738102404876705598934477392317813574970991393363833338537400874969515082243504173027685881977810990148496916182674260061582566079604463537694791873499508105703876655223992869636592916831647025901201220747609795884036111783865596973200189707515122849256873900312076832876600358267867465280492139463676103036649219107431671030430436233922907894084481685155378527266165570829832867098464509479776115935521082685664180673385399775518533534777640528238738222469252420310789950195282300153747140738314901709422811142139697306517601302790250474858821474375808591065038804456814184569522075019426323808799576057201178633737873901288645971149205010287635014692340490690996971944307702951448439653696957573195042065663607989188269570981548766051314425165515807191429034405335239680329288951386721263531836914825597184555809967044079122881890410396420931029854917132704592407814766181612980829798345622748503300003315469414447115540136926474271052027442633513242069783754008791296986589776591286231786752623433808241626650870178131039099702017177543476628099133136156530283019530080605793343445285948687000553849569107910024655485377173744128458367604840242044609906288452327065886476568197811375476664151956896646063244307337177930944975013310879402979258935304769995306004466055673181409702347887954033249359715450942301162648989906950343682238981664575697021975351772830637597618285255758267961617752837504158324832763103798118960126647487197104472379016053470023709113152716829827714750123895023539415911555884693683091250669128971935304074335979074334989739928557334286598508268152296302532412228294275839756623546180255414552411010309712676103106677741099580378990558310979497687593326070677191771198727357698450799360344873095364327448386727751497463245391816779336492037913109017648517019224079740487040581951741222731343745440785925679191706402885519372758607195578271028555427161906544513858316002167517124365518390071159826838933788843897174142408686106529540976929195184417957412081515706688004628141318726320098110625462448183309967679640796732933994292076063330776161127686553032893909537671567733837297481244501619205327181107054703266296871569535034987210134017618112535041560950351463692051425681584456213797716726643456406736080989731639800055932499422173035743189544354616405038260555774601476206180611955207494222864636794224422246514869183144302506857207902816704550304428483913069893674564473532186848001600542276944016254107074780464760815575867536884944657591811367409258315034233276080191619150095088533449918725054888596535228758226656907753444625477995060312398030371997032832248604415796516115217727219859598784473650420644467941945734062627232221541132259249966330174790877118676138257921490593270775084243183985235246601541360206932166440208326433960637848478969994800474579588365740593701704716454769345672317483585060196051221867793054318094878639491925230444569516258429583618790303589399035749482126738034620000690592682324834775727325202465004326510315967242239933645615506996164221419107379302356085330903040050364642874235683672045372398069086443972670951738554148369763430505586501375848359384426956483624231922113031480639648938437227572718957468982787251072828764518415403701132571062584991674035759537718198790984363762086783463995137593850244016258071212195352600983936142135176243952159052008561944974618022660639777824214633423855504827943262364950321890281394206758355204798043461019456086595811704243238335450227575758694803145225854787292881162910107994044959636260081585743546888664281996925977989588915099762599875670579530266495670627619818280205693012397193986176124268438381412803270973655923885659655584089972840147738346651255167617347840549946747973817097071173750040719153641616228444245653925642137851722452956267449208419909795406205386138501797205474350610974851776479725724965606465833939926680732752007076408577558900997418831681212416611270972412639749587391915856046323972066171517766226913000469405465954825017450429696109502155582067209471150012565050312544853264169103233237527882580893280663551450730256800482547909488781870592498107613664537175313526802175243794919344632947080497893279847732047433073159877188133323483384931719071557070960069792550664469684112431704406350904010121808912769164822477827520008755535132511552233642792933848088843398208462487518106771588949612948207074681450529931088983497412543972878993129610935082962394433980148911433979046360384647226559067098325937622507648449714749355707413438920813859452389461117576364528064474107354592052760716574079065617804357041089646117424095532135970712484661972866703260216162504935077626513637246765530256944245600529243059772342879825409322313178085466209800287839382454168305098740296112912981510807980754968089629878631274348355605133673076190384463292437747208812474549666369167301920198299405514165734880870325513699726265942631619335244649054458645458751366991861938507727879564219170568144579324447322107604669779773368711320201478974379365284431623103664299561827383251210817320711765797382714308396997201014477916416215152694500265173948528297138728417860484634037373730531014592454488592436587785589569283746652501282561287251177116303104768448729577182659713332541040944790574171209593334860972246629512918431151752787158857938940504360446643370210201921118282797826942601025877109335362618817202476273870612968736481595435649661525034465717339107688602570762168432085330161598966724122703560265282037208267561400802391499394978500667966045695452718237489635111704499351571404542663159166089580827264201313256898753461223998573862971823959783948901681817069679401382271070992383310742727843129901386348950926986797737536122622190075865492242721384148626904352913424591687249812152949599112010996948544361070367313660848909293428594629135674681818790001046287321763809948080375578389244626614287011296800810859239676488846782767622726724125142349496170303507174748034908812403758660164172744011265514576988523864788303674818728424496522983535281879694382337648307020566974194232811020895679004431899735962335118083949238523909129921094613827491760474407663092052488992004831893155082691455092062671245155488504388090146690983578440714288850688002041184554416735975496343800626344134121927058860606896900657222274484897693113233232626198217425464544106783178029572745697552999275092380384821445605307503415788429478384198973754733901068058259335985716613811175844421047843154033698072060166295950057824771267099238950047576814193121812824908561274922927327220700898780737202260359235665370944684864726707271875972300624425562606715342626061506693758007608865687567047258620367424840512645105321496095783045105925267865216053300020252163151074485261554895053487494536785794812148137769308931351327426122645931388147510867946700343447418413532215969326819964349422816963623418759024541906645113206513903561360795547060562012711363717304828444002956575721762723541520193310178916581680039516976770369047404960746468067467849011373831669178618886276145740299690222628488400636118168370774069003839177979313414405112454609670608129334850899230213348729647936306741727029004538909497655485726390218671924891775408749282765134712736874907078378731262380391983827344906373944048659016739650015634866431665804836127384523772615894180593962259541055933295034908590978223708524297120396889395389150052479087359071224778743020079301987354272463046472664825698051016464054221702242202939736806861220904324264022283062841835874397093163176114036950630945692558344168848644117450421666016453344257247374665357620951622013056868080416969681188716495772005282536284947518218398503564678888976989024396012154253921444557336987902365408562303861948608744860666124089667905459572310488265485016433047087710030212579257387338708303031125824872818278145270584766989028044546228805429615499761213348452999873205452231948863668255388448754159557907587274808884882990363546760096336812396413087485568814560423026448878582692933906203889081549592826725029142482786141362571561058421350589069542116525496073098011353212054527931549885767891122677689911993476918078406407423791735193188222180841096498170024289337072234155688576350811412928395243181947532057757577275081156539532858238047437472122861975170522803540538125239790530662038883804465867738121070773283878733745667517338035120596969468577898504036227179038270165623877581801141590601412972002397639598405254637698741721040434592292878870879137466445874927372967938475113692393020458682746803017585043977862253904888397524743971635946804984482582637823014613328874216447333237394410545180880252445059689065422526686163494276580964467567748194998994095186874266826548105424738448585667336335177294840706486041946092720570652070156598067386034860121838201845148247290139675563290220465354401460509748756575226678521758281174244554221476169993628129190073765331081845211398558246045306781753591614926006194925737600564258339026216380032541719125768740594398664968292096797381575996622302196804363583849462506994600288192435096376643527205734757722499273355039801514032367384509776959446794425082851746526899631837822833023584254863565154656258675272482170394765522307648430617221027452879418349352262050084815504967470541344161431278850573612859417827903696543787372812516441620148326721437944425154227356828803279363373000942134969764638233475895330162386848442949578078541497163651132509331561269535871525328488431785233413184405011492386106076610530763571698141759051963876343351710782855469922126705204075490524323791740386880186397643845303853426192495982396501184878278590081873676588162219522209403731146638724880021648238634863276894771222269939574794255644224846714018612727980650881131201245945680637539576449768739791080634370199376095922892095914626050871932809033706797542425685574315287110987022325955976677144451463014181489312574726869966905056588398338120729460921553344700687572436460505454029585536456710354496837359710087145977240907191376446467257575996894928454553543186949301984198138893789816591998852526691971490377479618981556934755403084097375403007475915940274735029192313466474735995983318890428653926860179246506716898181033091978961056121155229872192105198607229471874310669446827708891416214378542747701315931344252973729691319761746453786478890351453165739987163181268892182361325649331172101451377359882188399299475551810291004020744678947741125142493362818160751954591839954593939033083115647639770668846860745317525915595362216592578970665497820140559603943588982636379702827687594936580941502105804611542722583741852989048536747690910201362585723510795532363943452526720699253559785502899807554255488231256010845484150854377402821316112891253198012468507584702261678952341361489647189310625502465025229457136902630929738730045843748404694079675835089386230120523864521834263565824444831457247197531049338510415906449202641625977070137114237737741004634707293308749585906402870027214856343182785823339749846548698589299257145524500354263773141979857948485241252230002414774843497986029120944184164365775445883637658782595383845072117584014269249418510774022602101181510980061286477627621926238108711695560714650972333038973268347791053503065724445884421922941860066039069811111841454910200730966667926224346421011561939459301375564088630890384743617637167497586117765728715337033606278292205415191119946651180097244902994911207749914154987925116278701693205312758511609155143996606905758321594272027817240151826209950013375557710759919367241667161135541035473769000480868410595578212139152487649074708204385925365002736816648086788070972455350673408445627051808287373605450486281438525890222594047590564158804609154683552789118931883706322422633382150849999223258662315635108895071554154366480770673518810419220032662569186165317773610444801238281307460741376391527419506032533546545801626884490992279011270764764575799682092629738471381179573871759906993044308243151931130502791721559078202880567660642129475864502912182373970013651058162185600633434181254537516050974020796347696852808743981857247629614150252123486967001542994703537679549130698240751182766959930920110300240949001011375549334455923519185335728443645015169906792437874161937068895989757812916536663492819094699560093840577596772048329941213130922337910066032891658251746588595738256734133568731525275392988316356912909212284720705157901944582043031811318803373674235096293176981702765096144548793458064470082440446408447826327281227615703694106602914531024936670392685183908398906392238975565417111577087328297986503668579324248383456831497726140974594268750759913278650796479187723750968614722969945503428926619187933668181923419369525405816135872429414353971354456376328345801201437136679120868817477078127726490037402804484453470923893365418942371616633686460692540509017763643064839148651343738731777729821766026575796948040567257397978127693659446909716714068208605694258284108863779137287871573361789825706948281449346169919301060069966260017285797443261334216018645994727156493393988251839861639110423261219563409202096164372826865976917389687049551143014626410325845778494670497956028293781784654182951012935780466522388653108623177873862714432142899886831674998509165002493372215362107130742384782440788059059289028775885051466571482048560207280136452149281002715832683205811206758600977185534025213871980737177694652936811406511046416303115118919437137560915624877687244740908617629034335212247066491924001087129949424444042625321922204130352377419561234502158030457849562624581190936233748413612163584837413012414172681783376756802757954523897852728297551282187966161517265256871691942284435542430610980255471209307349549734962268270943854060156715032267200464253890244087932434967492780056910701312492739428757372069440445634250355227450582199197478071485693219875190392673253903446584241698772444682534833554496584413713596340383300561264534122136951786348123532636236376570509447082480692069442833077110196797168841170014868051342732572791429349177926188132050015061909099317256604137404092851742642905910888055418845223410453760982364402139180249314087087411406433257595907100801966859714592740339460194583659966630665391390114756375385087334328348333089192725659569578401542857336968520183599051793556864302655216036581508859922457806313731416038086287243689038455197945366846248781144431983274605936216909729575473995155487364102157842495388117282033170177992268687292003242168598105371624988618287809764663739830009216757587534844429757390053780651764236971321656369966343810132202603550120514902351342881566381673797966563459814252514639025165155270702611200889322442077018219929771055821817041825025239641639881133573644076152430165220680610481012478056097656288841290723658121648670137458059232581549302583936226500344811463792077719155497188755998477333908863125685288270949434466343131629100611908529984616546238347405007292047399270005741025032049090092593386520551785424750280291989496150067185022686833286094899408768738237760871587687573023333683860373836927680961485822940170778256908407043348731539531182015585172353972132061279953410453453666715294619238212968517492913886837781472875276782276298417598844196817497330941858390878909595201843896705589278053600256484696941905241020369582303952317678406184875466690646394484202024891612060489870195586315556983824148779660122403272732497266174624154483586222653472131762014737402547932820252935317851886510152676386886218121558030480878986001478658996932767789307825887574515703212851357325085585224829764169119276066470376746161432965038481406515087449576541716863033379685928471922307076075614920677069771087611918079377146654327924439199480131737369914114222900973417384423502974027016341845877765892499304619797065109700658882863225721891968659752682564156444225172616308475328358052631089728575412579658250304189167111534934772969436927388026049007395163653598120569463789958168306127627770198097844739942731392496686381326418474519046413523216221876506503992340317705190477431185213180406070709790095102518504909687334552324503195058967981970061437518212698981309864370545616648998883613886306076706494000820863684963500102568833282904736835819136162463754614050092688413813339148702168988383916475353138829423170391584322179340920139820899684042164684445815129134223625851120705663372239389640982534839301449161851807735913906144125706173515015336309909040383279384947435921792881302773702005258235262049402838633444087110435033484241812946965334251239805181766845790461887596326821221708610696381134482957715107422101454667064820973780760591598998964081014659605323659490075641338186922184394188147919959086968849762344679291505135726664242798864900076475575775071767094768787608444961321847506498417845602764791460761289832721971515090781411297433240355333458134742390016893537876055431185031545583966175758553570053560992556708290239142707296376392029428910095285120836996594541274933144637479174638765844069792917346201416068037593626943572478213764593476573458508396163948431326683390580508238117944433153455255060122101344191024694623471692035726852111550100589322002370219963264734255988915071620264453089497151977853524027661174710755876999783449645242092967524296297789238554364171520987540258400907279877198425934094359614709480978830237391034042602545161747264666888697170517139758929191003218130256198867056765982498934503988992139575891783816551703786226179953530316109705373627304948150793831069082529660780291413605906090626909169031966214807975018528581688313668773245483009641384640974316625248591923007440820441312411632142054267308948779474088383360595095427198609352394459343413848711215455558367616833994529976116420251314974229059307098660989302646723682615790798309603475698146923854505615395028357763468160512354997792017934090728716795578426581492696892908968625260516147323934931710546267336098776016962716693925505399152850570927513979253262661609729048070629026590775132731409541907803123187872932692659773872787383919955165422565479034866013076746844356735076175966010021404371440476019863934262543962771327081411240216340179153699802526305866692831097783073202099560543169258137766507154986591080367378270790806252279735507602889979473679434883889671496118371226504351401111026283143370407296074676669359085489799373280294764928876105972464404649384908801305348985696359916819619038787864663694472258519704778773506842417189590702054102937323540469684106097227488084933594011312616527494308635817174890216825381463828291670939602588452731502062502294701204141149260857427087773463037110114566766256905521680779258467557633977537419429772406378235886559675200843934494234035057209416084496370113208037516892592538474793437988000205952561493845204277913503275972648218723230222092644530437515209044436620489687209827240391737126554015922958793498432711678055844881336182611262099141204767932553550399622201342913365135030251487018069125946903866234798473738215907738600367373553019928089063448792560167824272664329779688760302216589179667176672058044879462800155519206248054819829189871367164416683498792151015783764038162649924695186412981220123827562996269659954989422866023554311137266808968014293142736370427915783552180866377102436363894527020015336601915360069248982626901305055789217336733932397932655021113997872755749246977776311269050763678657816293850831823437478579284545404579231209476898285122962971593651610271039761196433973112808393686822729819156413208844547630962197377197280885209663633791750414758936939268204925168733356940940754580999786470277842917201648299986162916571032932773935271356794649759223160780605848641073845625208159271434477887691070683025747113627118909479722822007707454222947042693520673750048822893198325087853309399206792631613122800386337344895843431583909287776619389242651511092524958074881727137169767443220996163530534278692027853436081368989574551998097590225421676236980724625443039404537234731546236823815243046179935657172594805438377591706446069384515334558677776645540542781389017968757274195629368909279882811872880467502821575255940196262824214752642006229381525754596880827830762448858675837393925859975635204599985557592863867533469910892585743020675020380219304094214080664782413351478500157914787732881089096069222425406099646120918216056410778487727444618686943264048580024657617284727179073253015272068308584117984825862778243691165940565725712127919320428797730658649215178005261889646858479959319725309629049137199742252948507167884952267457323874944285821331544156077097637584183411380736781364694129605152168445662030308390499219080320688881985047498115831815493284098185829236118183158950001168531102927121404126012305709235942428924847641184221873628243810119571967048113272213223160401129579396242382704436346176789543196902060462530703984313805632663193165326857908831552358624732210356099994165340799904865747335379383958962928676820040574907962070308666611477547077799165350016421494261063668543286011248701061804319049767087935258146021791215966491470557800436598212282205297050033539416312692370385981969653230886664354391247488585720453915897549780718657531809548560800557195191902563606687712899592224623834888083705235165913937305355067287453792189689637306097891876745062049130248980303596271437109599018871188470400469003846727575302999367605956007475108427033319137746066993117719792360457633968093225738321139842970784575297978710845934803032320808526020214722751469187556324095774615196363850043947229968659493391360783591958830987912000227126274096384169617270505311612130917835344787814224000016590373145349347483967700212562855886477050094990861240787340067921918713074318619260953804644437162195744327270124109311051882599088889275910765862570399516929902156777200821743661896239462420914135706501124388785426564846584908281645625602875870552201478963830777104571746763256805079355909384476168535227694714403559451537748972585068607218410023695679489793135594431215931549701465980722786062573366091667708523414211338657694443409669172244776088321021650561004451924998804382294296510538824474063193061459958014180934229296044024961887581273264687252989584004643622908747731092923055959988763283300243705717382104318453757686560363072751161966625589539984217077761799358943466373387326402841023402682770759054038239313976913006976247658542172727343956606301946373311025947337623677845343848400457491331584304740474326781731407982859988307909881210715408569694600012374131447013188140028716629835363607927643991118090451035703703386377524284282965556999577136692602126148752671588404291299176662249566942196885591320506008993824036069300629191922490155254596103950174378110245321535303633254567540595428537030854427038480613429369485460546337287301022909808218736117645092350940683761974219337100978100770712107390883486207790284961644050813073829657366696176021313328959469569546793717554488529036110515664255998618625744698250782057260924910090562288759858707496814167095097618613102349994574607249050618373404742596976183988326682567032904771082940100580626004021787161482185410254697081987471926158121298055027773882892439270476399934175903869672132136107711135096805898315047967463669425880129543899130254155062803183887144420933166868455582508183768983146351688225184455186569185058226093673890534440563503060589009502285781731800798561154915394655643026764534292423505217585474578996200803038301712287238476162044358092673865193342664253105669352466332381631832936895735248811773408516071199916123524443878525955798022161120909597700087791412755133285161646824278269101410972722570689992502749854205786497401971802091607957426615650827221395575908681827919357374422938527641191639215584009642923658082880605142896289812858785888841166635338026214006407403792199892421017826953190168289397742383068791155200134008133121337455880280215612618901048847238828521827407955432582454619404781474718042197611641098292209063950617666501318600076707868357545629950822129947344584247166181226903483877176092677201220413719571921698108307930584673524932720066427792504320327429807270933232858224095019323409985329632214715964468965731246460889290091045934027460700593913647646556449243392489911363475918618408634238891425218698545794695172866826320363010325691317127424163509447141189744617777227313422603497178214678390434860631977472727819449843091286161627568816586196480259139419700391827044153848060027351319932212208686554225378389514043693344574848654968000806481139458981811106540905879867397320047043069835273533776843035384133726892095920050019494593323015417256273329566590444931009018117313743205678544826007887991278953120474846629020162458016107763990652498188756999525727215668452510590014939885512819913663968591314451529370505425640662672392242788236980804243889624096075960877075940986448889017038659992543078170266474962048012488408758587505761741143225890584658279778325473770163180141320310043309403147128929499466921324538895925994273514777632030111581856468557967258117999317065862142629619441689694406123981346035764528255009636730930267731681474978604400948198361046206023404453059614567780328861641879192986518606218856742176128354432719128962040680282675087623419664270379391122751672447404696227894803265924086022082357130554217735826519235220059234801413887814049832574566334815173336730466433151731448774146723895114829873855329424128216457745976514896468441508106535272988912633876762969964821998330469398597308511332862506555616122842722069329662440934150622990084543440067827020506116004135343656087339802017809856708994936947993162474093723799861109023068538774259122361908694786636490111671893548626972576320509922542307047190774450596428374467358842560645535444560329181627830184984249605841903464653833254175002928615705314801308680961950027307755535672130773968545896041448244170350079429416974962606085478460650873578465211524212842940869334932578699355039464722372916153735387938629096206230410529982610917380460076839784015810845287364718534344997906455137940424091625853154989422198909676719096036855175864548639317652479135807789258998086982400009983087531765612477494323920375571839641458881011624797141617333205246122972442875990321982033969968378646583443330441003699302344885039525912021600467872028249099823938112030890044887221729075280675792622561032187228779381984889159589670008777419252871405844295609094760568058203192771396193337750056167484208599430001336340331335357485360065553583526937854262793979440384604775309166730291383750333066258675189237463596787377139218761333457749145889565390283279715303020212059098648520802992357472033728488574651865834049379777107020725760712698994827621766844683202507256444609690718460519225700549954618653850422350937751149281292997142650098063939281802290012240346291281178384632600066502890186734664251267979707013543179681637395890565997555529878016631957115140960712395665290973492064278829914566733307980711233621090616167446117822606055271653066243898356828270849861423902414267752086285485951227663152027873056516982187551958835339339825729406097524008455979407685239603272592557142832321495611712203656708405379116901724717761084763587521567787294500924598053548702670687382729825991449427567123536023480344567318096981163359287483362863286554586519502678852845356711304855515482298976947853295679776552712980829827482609544170603584228669283172983590511925756406875177587911047683682513675901230287485268454453987464380372437538344761591150720123993208041805611895314144335615753155595558279375817205734805618589037009971090333836891086417712745100408222490353045279639406749729831742785834782227154938608471519079168203887278802145183435639709972304293244781442986705807052576936895196045326045695686095272129953854235629119254191112508812772562411209113046002750266069760343609983811546481074674175515826364927435228857008581685376117483479020659204921438022835126134674474500128292127083383929287059226804337173401945842927405423409563045446632511805176003983674109128289204138673727014065929090676386720256082635127731981143870113918776613674165399255710925945005480438307299753776209912909901107900103100589611972819888727941960864979268193918011806160630988563503771309614627514797965915670898871574968879867990815312681685516041859064586871959668988814548410565691611981502288527380045591905183184666053323490502542521752973028404170016475343007057410167453613138377315561290138521217176928944308448336244988119048360466309861032261911511697967391695138894851984674063301045657255838893075568386146022368226889702998233974356934020031880910965908037361641957016818221467989884010069621242923302411581881398136138494833423486287053744660534367989879372518110255397706072573906658269889509746153805896195073438025176414162393747394577060604101334314770898197227379803011791675572131460881034454504365060290258872206359423409254056892638314702553485262512854245198963814986838434418727034959490638872489632719059190847749567156096951855438606734193083689267431977473342138474851596242896525187525649282510132603496250411937827230561930734814604216437975522002980240091319237962541424521345699246890456535468241800985801403160908018993325461958263610458866164105949017726632127997815608451591102298555279225756694683335519794382462303519521051409935511720340627517217151248421101308286827670993777336230632262503231714730694363206019611265822112912030707926859277403737797636317045333436518149282153328713772815222383586268362014099936853755361112692407638087718394398773839730389472774897270018855141368913500045647334600568823506729396236601995597804589335264308972851177558674591019067077892032329132336543159561425186049746633824867864814198374788887739473991252613949605136902216093857486357678992618714201069645957428277882917008268858624668905891159246256366342169458832845931222592292286888856384870621626479401288388193618493465511685587768429181340007121169852562772500058068610056254212529604570238158734622156276354371224109738224763743555747927179374629912631864398689581680366906302310103253938248052158357565117251131992678987183261011751962335670433210164128097681580802183781858580253071261024127532988044690326334978103734963372783045947761456410634340116555566509337890665627563808016546260184334006360466501313088621510131873541496293661432700918767766172371455070688771650214068454365224292453045193600023645252798651498990930896877779153502088197314054382220318788322367772985618607478898421462626374945317170157060648911012595082329666855634702458487738427349932284642809910097186247516389325874360544547483252025229210267948258610882927915166270684250687092364416765079890234230012038909769557443849020264685760643076629053432309619278938028185366420189093824383186214433186175641776730641016902711547518985029605729075284141935532821836504294295848587093391276115447754941568022596270285347725391123569710800045037149445358956812206948950352317158031329083824923918822015358659178898608575632394648613362592429008673273610976392178848159309888338054140562721455376394422735611992060368613594548264442731729474247544146154594543493033429822958991055356709608837246139685550890216051457276374388935477521314851999829828208873877167066150241923163573477129840972646426019620053825967171480260344503788532316473931114901432233225910845200305860661994358212927760100199457928628904072510739137592596850397578085505199048102915019251474883803518487626799749198725145625695856997972287291356156428896370554360266400104344318025698598751691442531436574774920640249005906392069334276577900731409275535371631827872513277028304077284686063565195285774947997086435033358082537739818712870520518074052516092281942732627273789654613122777307945573876899327483589707660131876058848580603920051166322623296623526040494862784032946938309966380704302388157836574356037193836226278060592365874964820794685792244754443259843116732939115138316381116731587894408797326852981838544235874798814368204066791071487065381343510617620906232268971381277841610486094446086699705092555535981359093335722613049025754725046064342838059971119465643682975684697435562876098466347477374622462680327957763889472902572523802566223246232640692349136414111937647838626868287604342364380309380297773121654205132710273869461156895011247714803148892960722699734479713602117911533179135846107968525031638775635511279704149517700445057404656836532104520434565789431248753637793465733221235555246722239328127888184726410605852384489221900747361901394935351076283611041360204389269592999934489791369610301724449384159867650403431962261926187326998953234520951616597446549342694323433709622516662417808753196686820054428564412329519691457694176689795421062277033441738785635696826712656339269185554667047924698425797568007069014818775863284253886325803336262412997844603759762414810540839605054202040375584019312295158642145334635476064335740496939142718580872729041864397975021590075268521185131686814824625030653204103875537835074330603768061532164891808429465888304013691074593137458127100217793538091025345249406447808349045767027303032606784583052749592374923528435270916812995362124395859718729592237955909996433721226800214569080191326361463168739981730805276523961738407927491487266615068684940550682798900442927219186828101197102227717941779359202610304480891008254651011850423685983660733856355429658402952397692659201785620382508929176238764215352726748456989388789876735285635886543418653961486101445601815842974982524739848587323755110760367248235536516065322579961301721458933810725577685314337096865518771322643665049867136297306215553049487652791590346805838659481628199571348045578373666508752705686677978523791395320467842424829802696425129923962128632772318976540979440418850032303548702525885347970949357647167079008249805651361097283625533193835050687880171115304943149169675460523697425071864431724181580828467332870675682834598268150076762766444087322961690256459451636038456256591643468438961310837198686915789350471375932206688648516345933845202593790580862012892810051637392886975165992830993176197052156877950845587483522807526644682869164319234907704732854622205911185026058951921888736959517962103798008178989007656934063704229435193827265380333144306466568192488316497928781194192440024834514807443887003145520799613471267357826212957947851267858360463810696729522073913515664040203576778910619924952779306394151191250432021702904931568575037105328395203573749345955805733978941596345439514987083617691531567400366783537496225531917826948809685656779028831333923342877663737216305235982473995257312075341329973522961637946107627222414469232017312697093160350704400677580415218299685546134691531957775851565274669291462709606867702569794402373447409595467658034456646112400140026609333024998522035205517089790847768346000072362130623136635881041497255946749719051160777335063462944147485374230161852396085073320086844083603378249053759731991773220875162480022672954340466541135760709525991352272756374848645968350415063043979942513035098533258887471169116728458106561131815100314923724431332456417904823169344842785912998835888916618898114558180468600883146381435874448442604204886346721467942403662009199808370293374480135828190984637637426704251410255688397786303530699344268673797440491144029436960484881197762277384651619640606543481460764330992854908959215392653612486030164309373619138687396110375064641304794232853148995706823878082372638686108260953790179101892595828711880024497728268065772637499745553919825502366480502948261103350455933554943263706802194488749333174963260557887731585103831544616873112365359485208878761672583130470975982186996546377153919212131680692240674487145306528940515188552300189153730225657715018972409909926341912484055444386186944962968318538139667034688899062816495189024221783340569084281111884912259996474798851002649152722106313299561360858681063156314306188033147611501630974387987661630735027169274934505836103093054281275015630305704153235798192349201308224941473529552139893884545472283025560414264553857916984073553476259055951723123488319709005203803188301660330142668791849786869310831125721091753571509383634439531769166593349312814776807471824244473243224457849312112134729574634722694690587876813809568936869287588852090316441919829778650228200721558098797346776336847991665411623771440016728132398623572726943112290454112177823573775243080722978538574837998963543926814069626948261600857280318367052977323694713924818225364977794036848345359612633858697050203352179910916104220916294858274189848776445978612981746425770415520418086265421543131820943408466856349537493825641917560242593730061357410229291878634327449572543563115113162656671327425710306175382380420547215913895196907891408938905419981578084801014586491223491743339136272318611899677657787814092426305117803565249525924185168253971580197759645820943190844081823120184894225733935014340255692473262603880440405056656122731796597376453842464508745811650796814174838101572264247009105019515394578673977782624935088272327512199378436062117772852695956394499975887895792404545379002436701245201770093963913172360407214705099635575343560657541780841137387260522615562342988840963317867745446377761454682744014133151947687895954895715629518307778862265036042467603566165107342006854129056895354063397569240718694048841290219052722096247882725405134553799743467070297269074412797120999338338870933704650709832161370596089123868606427257999047457396864446263044748706180191010240192834189065608151246671048833979708026907456075202070968307671103319068241609174691792620915745862399789321209336490911602986860466995822241036820429642440428068074122196574981800872442080495695037374553431676848083386549584688152620531695937945370217797573587642838117716334758467810353582059747210007938400707730728251278714772470751580311197563861647207011924563425159886264335967601483192745010382064467887019519762510821471816389059511921658805029697996533050125703648282238904159993827994175080128036392567579782313166421180366877350840002960706480932552212059208097635602042794667029243332009998843257773751479632642673556560127224101720290783564172646944268873345962139720166222483515827899130488265804276354083876796186653177352976566822824196441300529793189615005077117426369964788466531918962343352641388132973901982729233660047932388298268504539487977693663655710755799695286576263012116147562457780894612762821455207738879296187733403877557349415931524024912436809641966954311587067724221300479167435202224542469483978870492032907738696696120046213184009539582525152738128763836993625524861637180877582905854230794284689952075806732930413975063325040057346247899804037494775565097114246229612543109091762294229156343469884920564480132125012556718138307700384442747500815908433994858448406620834642718273051362966909163237576902395139567674881958743611160640566659701583958207300035686068803825317108188433034801742534470048185236811706619328139257280707536275035005552221814895081877668720778659692285792252882140403459074691554016412874737971356735404294306583802401307207677765753620254946350684405482143951444084763246207863537429519544227329114626499574249415944658967501898466861682867150678683693701781815877418086644170655347217283575925445446619339214575378288320302303759600898611770793344015036989382299829811760134165460381775226354675067819527568334927571954050781885769088686457720567639528384198219991785281704457725043666394633356058120531574360379397777331287746400238151646944942928031028458383834072789833105966191325890749723031731774633063699683172307249820809630515947031986498879691739178430258111621864436778991356316875166754143498971050642082212413838710978608147329621631925708755101122510990239203120562466681431947605649464829901263403046485696607032425171857627599442968830996754419203031001355609079603596011435336109750319042465776675162047915709126628907876139878075410855334897568194233591817600215318060463545475780936335760499906576502705830158237958103671719743575685132407284813800347822788662151386246013907322116505660592052760282667498023132279444270244945715197916808461182812765177368496242168932955945749978055793521179771776365298076322348713672027211735384996150972886176355254513468221325994147200996552782214318549514662748624076476113479895367037848445155405206059820885699589005838303676469516949643018561152250225071910345976001030929295808361877217800154884753341293135176173309174054083902920090467485559335348797021300520985037802543747252919458341751856762364866081755060008437512286571465562994386723672195996773877337259529734240910494310609953499432380090406683716098519980192505988695780153326271030420049336680845183814852524843608081701980661065083313613597214659308061139874715670377830050030042212620516023171841283453317071503029813398775483629246308958084341818237085819675346654130868936626241630202162395911061644606549529691582367469722671900284933797986306924061259312440531578230261583428771447478347744265574231296330608877480575287657865885805578121836838262202194995605591969910105721800720041681133775424657843124519172153153666385590578224950719412585619971545449716226485821609593618970974837732282084688976490423177956973351452302087311164928490686900925983818637609181207025088527386693326570527205956302089022475164634023903126434412757375542295572677257243294379109520389636839167659510316807978151897642971628622282464695377909358222948980089341182222249535637395212656058470580535617778715692838302200165913211083169836862702742630716781275343503237377388823515649053267998401754666899069150055181065467184665068729367813419610071449817575502792308346310357071705845257185540692820460051389015348505787570823137900837754962202764722264499917574756161743438845060550267447873731267123894345863425643930398797498541593501740013290296655212519781030125244064339229450704403866023648130833352801735528834264316444014726416601457065378939668067328106852521634982805475305259748145451203753598633890929590141528054587956973407505335400645182098458763503736543554003026754584876912231678719635491093584707328337553849322760035677116942468118430976576524905065050018893184316987949577715307084157284956600039817725366428621225656907769106853260083876062134685616579645097233073901800183801669503745462947313559126489398344646249005136797732842642390182905115292469173884398181936434324970658396679388847738447990980871070830213796458244072376706751159568590220506452795280328229268060229885005704516997556838506375376008568413794482258781946001970670370610081062098847549834046188480840894131783348689735234472900010480481923737817046702717850317744889949144959459816072837099170746304958351532525758365349554958277232502201555003077724345333191471086066786391126966471242639648655354743293870234424262372358581074611593805861525621066031740639300755073945498943640346151317871977160912635621780719679318935358168017807551126405726221683330189168714021358701010262751313048649621820723287424544751496279192979234286423549384136908609861716118141875099969181909173056665168072730861107088292134860737832031296957485814607695113626436871609896521074762174352663013886851386236119388480373463657652653397912368462841178359806719667829809430099528714578078887172933095749803616651869324073674846802842683562564790526403064278112040884217249692121035561651563010837710348309655133425578910856593096719996579578850429999611523744862903686851258691625970645668538622004227794751753456499622724290574867653087445499052542806760964414402868941317425332550154102078370838300544862055458372876284525832401846227820222385625468621540537227902324373807876215411669497512673099617121798340040375777142472334128565624288662196184874882806722119624799547629152075600044847558403746635093110696384931820952208272978075397397025559071319903232156648971533480012258244113129451072704357889608629533623396312478200738685220771575129292886704846598666040713696768815948245845831945913062340198231515595709776876352353258710425010368046320520203659219930871448376068242708385068706704638839995970390724444624081585151194647649339173485901296418290470975088194497624421903068050313603386207955686414311021228678949539850204143636668456638774184598177904996397001717991845803635477823457113459677813263455564628701722410711772053413946274369326419696606578651570178094234489869729858437210080468335062091880084286881594197806143861499262479593444358359415683109777188685752233693068203205694135811999183204436836547154106776052799208236301193039725637253015309295408387049022126674288547053734354440241324597108913538931576895503155002847160156709552318751652520669656330879973555933350776257034609481266671975183801161172508195977079328719511335677639251767355894869787605708911054206440611969503394519946135975304700618648759260027747059595898519287448431270354845507565743716004595500055766792347133648059026746118561832449983627759186638112930327559385769446133592838834211335197614065631115835293187038511683291499654600320681368073707723668824815976756237579620182079445220228829271584820190815832175632740719740538288066304763282251881129964583485238598722991700700288868089551565450120711970768677132595381283426112489093683590716645062093307907300777812115270409776144852147003473841009492328584503100475325510667772557024293910696631530219678924674037520145397782366793248605440859457790508935609570251176008818496938821930489502182646168483273852764146785190122441457497363487089111731992859474995875025791369355000229192652773160333089675865290496861335513553676976262676033062543820343676270022948232546520938241420323778701093970809060371442979242550445203710637346139851449075495858534258049591587893307457401018940194699741953482698737149366364544329994222191417049144644084816530848165720644478225804515976175761742191794830865664673421370080708588993396819685155322100205913223767864607651430889933398605566263877109803953958913722959283770806024065843436514127135271657669271195003004490089061016512530885840704000785359788098986063435659154001864477809070059125077994245516618263221663190673799395458403707242994800294101227244514404016695697765794637027820302839003412644347809030939668947410916735341495781204277630438357682652446597528314914635679278687450316177878512881603375063937447395003464227489053810788506274396809384655914029745421272387629371905473393549151678376824121426414782761391465451122716774552290074177889242392896679452473662782031648760410130486250036874562705808651008812766539599344257657900375407755358518696497137245537204395800194618007515602237679698272731007659378049590720362351805188345692157830039766921375254333042016770838643503328734821574101699105694504973311651953674028482788404131771679429273341400263324697399985187814400623567450125935809122611185890355254092355087969545117589130840959910751632658694854248832965639978827980234943489307607762641789984306305214718548708780915204383334962151388723939718477484795811346640445847338454901298959921360601941580032297637577967581986584957446710763562657341304953130634543093443632614224582285167821572243788496114917198564639194590264423207620733033479604372016756861890196373087540776275162441038503136362268600814269427860219613902670295319605993601673749164617892023341902881328831223165252670433598754098705612501058048107542951923008528287116412903865745256150599853178958518761232891829215256840952840597424283619821824929339860971781240876932882127103991265986410594548416635350440866906397450156977280454242116430222325625918119694978493617766961549474907723141720856756861648042359686767438513214024508217645152983783703273670873011274247630834247280268159496582990626424489847414742981753941061510235953783104892964597687762434042383944845144311273199554855599036601740067311181131158587800352150578768042046480521696657716716774374353441162923795886934381864552178963032762401396008306629940030101474420869173328133961957210646015540908502593199033058426676697685491622733259233018310154851864447846126926280422762047474638057750976450222375525104726480688831319722283391796179641352465855534348937953787266547954143633310544114069029704955601030254612642205518595084328721626302037511636264822341086285121191734494182936101295073496410988913941003841005842070518354529060920774342983802757976604290648886255724912677458665184789966017640600472719582762665092726461924845589629299384745894635772302580874753799014279386031086720014282723875609523563412763250787469009544524212484252768790604650912917768194954754230635635474315437210453815899837126093307255508844268860555510398764525825407430456923557511094185896210308488452836708989785359432454726074947053860095031196036521642595922821449730498991471247824658142992888459209075859773107535395053878024631508127760017866128118169893096381753758754166012868543217422795554322239160248644356160219591182143954590872317632594394590444416825206283941551861450176262194669953493853409772651902152750814518671849906511627161538576661248040239483185225386529589762159551095131184896972194011078386359803186838164553980623695864232098112531421105948077435902967319251223707920860660200528357711910850348621737842624509514847227156607058386326343827734553342522869603448399261523791845398007193414176858257359245826314409027118275762611431380167366129339735483825454477022337532967436392437658533177055824305628636072118104836998544755909652319351932181064234392492657624559509834283363504322726251089024316694296550021166342934500092327803157214106049379806748409708927616296987558202261368024857932832174059894163520872792891771484832046750067290608142730105846764188083256849994055690569297518901104376509075922274429958471698677079682270622076527616701477996314714920851754544626180156786919983001504916761940897146138382224621368285981530307099819785519092040584210033135340226883943037544020633824055611190334743335779471175123952328120124620316389634559450078171750285737136000149787794796760263118355995056426003603868997463487240206882799360256725930786626985562605884027810758103858569808772928123912281197430751871349700085737346789416960136597095609667098540277684247372668894132208415118200142528598166100788414105181747400911916818654449540134953659100024569212858811685042794341815008976241785600825395134164712144119320273678769200701060912802487268911532099659807887649539999627145902812408236023777105522339063272127658929965650021037798056136080593945179911794411942375740860956585316272465814592608101423212545624342514558647796352685045959316472490668998438424423209275561306932338394171948055491264449693516809815702206789666072788905895150613451891347022389800023426976130146705949370543035996068513551690400122772237125223105113095090788529518013451750196812513929747945050528522824068904590979398673221001579584773171373781502398754919704158291459944124847244339807227928723229961791851258825069083950176758732432979322557870922043407703804796033738102765925598251537365154723685926933613917448187496210161667712028912500000658545671118624724098192367228571132520214990752846713119618133243817836906086498387987601595896618407620167235989375598032569148248986905935507368596558684520305233305927380910617434501263942335613644503147934023845358919246758014376879372753244686532649672015149725847734185081553507218722457294501720502274346778474657861615076208034626777022739059511715752941821248125287557171346334236451555356512629060703264668347274363641465081829628083237168905045922007416600481093880731671844987456661122165123728704067894710547502317392138545022804554383002328492062892523407537005581293447960009402770459569222517284315766636186531070336444382515693646106554075798366972386153981433629453507451659620029285577765451211443912006527962715188081489488998441069742794809397011556957287205576193569318403848776616859936009997656772524964263975288756146522875774926869414916833366303617718975180258573622711261405449715284480985957065692212112647032565859062982985682922389312353681003285025672710661250900209089428687512854594534894072826990822716634184803283531118368170946167767161914672806678433561739379951140319024157731699950319609953495776748431867870002107028116067805986973402627977753921390305016959775053397447531362642860715557303958377621054325173586853880257880401671665012410166235022914109947022683556812648921178097945523573274351891069266672476188592628365434117735794338460986619944102817188036927560321761073604980447700514389790915550808962614459601411586923033465223792802021232848934000800356121394752698995268588412615822417245704414328929311839850485610166148672366434404327961627728357040964163368153046947539882311737568909864300277539165703233456815326737861003400513653987164058560163644400630499155882570114438630880818002237148206679271711115648813698699791995409375023124888919656690053041481693861996203471205999245771161091386829844782166881063184776146908137001693622003372060603961363838842530463153132726249527541104539414098784301668368662542924804998377953590369206066839083041701707084668722606093794330971477186723037048024441349004449713465435313715668165780367515115276091307185860929547037824723771711987176423449082737898782366145292437389856834079788931388349772964752055648430820644148085984155833526623395656800579374417831304404733022623350968143105604159603647331074824011999015838948113479529855434161509603215332775832672245878858228454613384105805228271938491608324330676366613988056661520589639683127260505393092208251876799151408192457768565239795370383715214418533133120766012305827741841146751780084865757551394267635435077912504329623844504895698323370033863702655925147772659623930074250596533112417539141162236260275807372203571930988669036363328855315613028707987573990592518959367045501958549922050592772455570978483550258674930800673102672620636320772065019749410023956968085104987025167797054357961376174786785387129898335638531257091278697542091421470527428270414302974264820877122349499118267669465874158114561759704483940855488470556992643197657246489888143455087328055803849088621949338573115356061833980115887370486555006087698457610340309705562636598882123184803142697912417764135678464781939047020554048808259728617786576655171367240634489192237626756222248170228968826000257272350874935439880805829810559098837130191798063176124338965797490711295333705403473255812510752232915953375709942970317836441080372738749225942833742539688962650565640668487306855576801079556650476839891660290673308536830536413979970895365681274639936260565813541138155832757345585782783419432333545465061648068048982965228038962844629290478051131980025531781132190808284756219765503219481619520980823252755919937588899309823565248705976851603909621066370282022766416638284339784577987015554098303549457469393593899672959417048031396815871615833573440164684901194599566107982121518743084681778631744142301953445211289114097390182056741198163347096800020150996738462686441331650208023512883011856618300744518790510916451807608551895280777895499971838383658174035345532700685083701188658891627348589105475686409440820605761957535391218230849992696316147358025850593426735189200453796003950416334391276574019829513877481715376156542990275719748916555869536649536793401740554135549362567707302832532000541678054479417793177437362840931956413365398439294051731391793281225395955419372142945919661431923522179271241317045836825157874122664126061378856856177600806649212724360379088474293237500287707764941120499649406670919143191832645789096993496557031193086370339812861449298837256421913449990220890542044198165445206455809234543547533669129794458453945659332218100226910019182580050150522412013538654029027014837742108371655260909513395100890169748124965618046592326642323423101414704114392293167536146515694910525481573574519082949006169852565812251441885133878968896600665521671311393712848448031710563033733909510728532457033452149187295222282481278310649334455645982345318914611279627658027187700360086865163171215108059677273177168453038295771370911508660856796980446782045907664735149737665249555491879880777398236647813019733671524310774605321284250131405575710930737832806811894401659437606408065054223597863824925772717284779403311931861524048074612856671979047295843274137855399915749250112755143615328137600552055767968455880504148275592820278573363938265214414440321398064714859534409840401946526262639163661867840856509038875013038917148867120212235050774135840439644072151028206788553687437397275845487746814545220023312997906340864042669064424612458333739226695999428264744513864029972401667389461720368514828016036027143086483396929564187243781997802562380006702768728507102493388092408239692453424527459373122996221086265733042183162881701737609209381646413354949335172369410776371632843511802728354403056446150029497894802349901036697600943200666747948340829706638545664272754828822445588597904171306813844041589442944742508141037603292815847074031477114845792287309526041987590736596479168795218101846825773672059478342183601839002347316427645584700812765172848039934645154457877261188137661240448753669032763798895982679927535984729908844964339980640857068141038529095744836183606035214815712785908218012461793445041921644180793798919311559627166558277228141554989274982639732588569167411467706698164567220390171915687712989992684012267735544687020125573958694548179790398964177583570523064009750598260327655825392841455097298589738951693377030651447683445933751205074484242577970471765734448837327067462612185105499479893131144598577186831202463217295287510622128910813679974378530798398355330207244317646748457836202182858560497278980590933472999900812777223882397272445650615656865954366313766038781436163122843502160404153885879365656338816129913866581628655978453143835981639618857731883301543309592866931550274663320266332741329088005349707728738021001336071422594165472454666544398809536718327528613076310221335970224212926734183577898783863632191013540614602858124981259853151249315334467717678934935126648633455134095252277980322948836496516309831358178239704089353339178293921307525380225561515384674407394674911802153968784123940143850337977864653594475014554590284450921131391665691799797144888638286457541880256726569283854454931049225086519816221528466014882268398704977068184455587888801480792637142073500754858818237986371502473343447228178920477310382208286150381409718964365712117955569941218364709994492976665972634821378145944945246291065337570291404466532915433225776209875109719818776069550393398784176127195765272086881561850202806900278360735380987430530546480851365459125594443519660369110646860684455905302794723079116140659698559518729989184698902390812094916205608666536239357562667355153799482472382645668187139921432068490768169317720406281784515667281838822496579725701109358213357851501124252618550049016896506975557211390976844280694183769549178985041809198714830145291061192972208352752942806148580646286204821589753777082668924940287354761113395733960433649941081879900072991398308538793261900166509289211450991983035701233847023681719325758942821354627751758743468852518095253461719212107435258438669420068488979472315278557926309546540524663270337481684286414707567022702292839287894497437231600267030365786030531664097454945546846590225952173661123168764083930470274467132018173748531718209012732108742262709509265654672850893077363418686818669975800460765926909303709479808537137563532964753296172222898207321456078571811275856678020901950481058128144209921512298055037932663521114288495357067258444758590302533978932807417962076709474276574262926306212694245127222041430851398664597228292073870582606279814941193402302896922355548920395603689393182800409410536364712913017010315524929322104246631528337267361637345855330205412735265966799411006679004088903113330064593171987620621860933953337182407173313697540340669493889822774489864321854267711339857176996944634475767370105739519471282019066522573793362761739516424072038287957118049867263256468725805136327839865484063211267453153488352971428621999915022759858111953885284708108548638412702405781860007185696582069744689750404861328824186985333359546970669241284308448024718492316456178504261750297473556102199480432762949188617609704486501177701539438652907449552364439142426563238137779056099308308202315321898057888950613388159174337224674948075935191569693676171953593384622368479646029668576822890725845913254861036721048790221145216889174042303504056221729544480913228382053880611791872627339372519182281526673743588959906039869948721230843169737169244950275510685869683306944869633551022255098576703636964230722896224230071801722858039873158847848328976206832421089145063867527103354541606670229899729391154967016318090300064572702742902544459196131962907605060293904536356928523345187703822696026339759137178545968250132419743233033370141868215539677914484720796006117245452491880446325369782187778745197712119573838945003806387402200527644318330410489917928611926775988825432435783340849168628001108430879819371353356807867552852775415376993242783357272038688699486562810587721099628685107676045333637197812371314911244885703200110212676831153264097221450833785321552937450355450563694740259636774660147722484449459538935475258792988760440285407978689814873625361648451283979784524115292159401284495985613594901876975421454392084256227452960338709900294785789925115788112803384037492615928707189062228147454952904977756415976427220087743207457669411831106828799286507740169823590102764542254400060474764352667716443199438287699377944783902955282669971055928017502713046720335548657941769834106904349207049378341046745421278903844609198987550115081758961258063584508322391857560794675104225083884414523392652502417110612657369128215924271271058858434538215589168336708684095340667932491123037724197889474659805732667686738254511355573481413894196019112265354479764838586676896541878993289195617915413010211010354102331068556277998863978720093792729014508200855674478073830276449399763177269422785131456224225744252381823978819968102430039574051951015041815924876042302497654487452014057669220560028162290495928683962909031190033705001461680141158628968777177245670390936331615218865705992227861589787804172734278817560735453683197630283030990364264265786137066346849451001576284959342597246673567113907111591007622723661662356322539859816873928529109148129698979337020937921396056160617732985250902282474366426803024359295678430466637226293470640273964180271315883314801924932887249226929804057567095949554480753058272978514759428334844593675221876387960714781606710866688858699736160969876365169082382620253422774609849968335632075438470481364289635069095982470325787259996636541477622918789119963026707382521382878297090184261072089741693040900079405406337334929427228363737481471302594323795253849007142151619572308395379057937371722037754857816264425936164400680329971101723709775174948535519662656522557666608356785733184232385976713713219206409546933600791038337900276055925719321243739174342222318684394451245493828693606458361474444077288990569923997133706365503513742310738514584189286854885967122944948599978204847236822532464571809347678271618202841772934289001033685994809213614204742477063709235792959110167192426438705659017866077655364592808701971012328488809901113127701581454778226559315146084199044339145846679463309353156005608163830624017273453720959730275494108862741281717924463180765298872535551151243315002498905306571366403011389193746041162531987486576722772092730631733404801975719408327805292990725043064095609258216269011447413958371258885023710807082050467814763868602549794992898719932193117386362597196213082020353383056382692304381801315111614405559133732936194445364143253294252362653282072298939121723644430149041298284694049421432630826005086685945190285493081367364910742961061175763933557664435614432872895844178901088484493184150356534266137015350915634709332435801291497700397699085993965122832484628299708801852552251025659585214479738314334481174064569127736852752054687170423744029511208150286573580588895285033217896257669006099021073589758212045333064803658841992365007429296985841220375515449883229485284109380296821989131697568753273070347405413279007557384380412775516424047023582304410662614268431251459089010194903342011175603185133230721004422213525155883430642640701852028013925401942002260487635394703369548664496041070607327977741282466813812195792602438135204683205918532172881735592113827755439069588263055915154427943536180466718803140224278647492097613729096535315751219468717936720671025546914070884792736268882400615507524266100911927578500753186189039279512769446819746641677043557854847672500482707901741143488341407283686242497541078573766797545486428273669581664278581716946977651305456645249845321139092893870598426146145701763808754043538528854596479756054894588252533316771035440840707153513187747534600602250096547570859164007328062082273366635207374483452490154796941538015141489451052571344626555148096939954030437892362268066262586750761542801484109495272196314022762398182465185668837783864816457209821315364204235053269373795026548035083893524997598541345292502758158010029952492207616009818780200945805301717356598757307536519495770040103651817060498616451273011406152160748899085338487363544894943263755161362026134058443808570195913794724538856165978477900372424089508676437598551223980118669817008364928478428659071499411034367930576086519347070143751709755076134019419201962297145591313243636488077083484220985121793914967348099798405428711213354815425960596048532512648183720310565468771018596555843296010734165008096104686448029038126119311931240096615339506429709394015920443362255604215424472395826164136094279209841715731596424202743171519914776817719455258846746805928467529375281122693416322765545812111162380486545729858521364008962835590971801685095103052435979199769574413828951830928100556146120333789846969190708038080882245568273542756388002453782504202655634454210884667921606622725137512409209988779609542581017487870005635235462391337752368357140546611814966368190268960299390133499999916972934318822419917039442762496860769497486468152033866255656821244467641756900371425509023215309578902718879878806402810368780039613461433819489480212472899606867600247957116163560724320732693865648863976347197589042624137648414872349205155591994409799361747805030255325083424973981245452774376563945076256207388334938307524021215091988730380661940353485889839012931703428522040660033361126413925636114997065045558264386182532759982562501239641192258501473827350021590328453958594856297879641005446536634524284012009969146817238021504359325317348694023805798512431812255059580523934825517688913958408838477122873560648261305471393667122053425569985191895741152077265854747699494322009828933033682429055637534620903403072470401565214845381665043184411337517622068404673222866415305791387069842796858870290679239050530325508333580453333999696195886435915144205690432891984570135950900043765655976409260091295655862211916552051921154789786639853270910283624330364155082034461615027174504442702536549223186475092299416653780592207915310473699838932027791346281710907093763828541123046982949847053595592514073961975167175983930281034321469883600557769785288657977194662001832083202343977782746081350713743345426718820580306099558489732646382322513724402425768321790905336595353085396384820339039639210671739059582340694283929330525724596397288212331432626111546028942342520760414259465163506612703061898220100289244732522793569189339331912911719870349593924745635469137011633834577563374515168287633644083643657950147003217423225592773697719202171728460283846955618148629444573540807381179534715430644293687838304667907688738048404858519311829478567565311866227416766690768332406735947489274266763306253645495199582879532239444838105687071665978126538512852186528385645628171966731582118728019803218864498667534834463323022930385328283128619183536307407062686311391107597143365824982546538519676498127398278104486571530482341550663683976634127295973853577777344466231700398204217461539723602914630497884535500716179865509710131361649936935343711793093483332372873444066521831208782899560124075589085160044911341299911509560730400274355313269939922730002886241106864320003372036693795835470995811818330716032469923978000398705134335006997226771964066910136305499517406335040330763481515945440499798872934273554792806215961385692162245181280811197641363164194907821322877223085077237780585996294535578784203842553251549692670736498679228301235407539854084486929129697089978444376843172778355095683057537494504472286868729794985960938718032809350011999594883130420895536336923876070660434407236759536207288033148874077057862912255047641608188130490897889250371397764123646368884215358496690002537388972032813887586534477629542639253998693117869153414778278833729696474536767291768113148630662266915763374149831105670805764085385173907638762383784291699563347311758255058992903854451531193878454781563398789198297510845017875134555464019950143485667360567783942873425118093496205101142510301619944083406047383261105269089916885248966675944180427313598843260981915623288532060729788663292902862882750432087262653183019585268190840851960515103560227285451803546221823544270109609605023160101531155880027053835204122545550012058527976792263911539620530345196291087469268552391969400896895408781724267988844861896581041139341172905010554267524461797739211312199376056222932663072833495227359152400736640731001829441800220447246022082874996627738996346862197890559986731965029328668440565858824630383787427032040938227967796539634688594495488847193381895607140048813584724523102977442672858614395730286007286163843197742486373293362681290499053981790135831777028103316040714933355382406882181690328959089405837670869977381172485771008369539847749533582339733708307898966890366898096218939960017958706661307669896732834710158094317041807259743503557717279211039319671522400495471057800672970867378906713227944294785909654796872636585508482311980978286651364675236555967845361845626078029243313439467152231966712127245777050169731476478623600750070458413885270239606444300355554684194481742117977874187382753357795105255821615206419528505257549596554316461389384357197135084641489168012477636960126774703840032896718212648980306927999078876512797065214256024817930240011730234768312329760738797955403188936738967233043204781273321495835617673457269838449269280880936760055984267082892182381055344298378189904956726871232955893927082476974006551521072875446818489007945965631635003478573547544069098639395216343076660350852914394572885022006565739904239044594835693280498101062557867288403363481098048981719820387189191062468696240628837514674950447558487802767828486786909090017459120846715622396174935374103594617111110336152587964989422859687062736207161423218160091525434298991075428646476875691926717937916864706687634182419032258426236819575047505147850703077818970210162665489865378125411225719682856480886301244708086774072311627053814443238954638737633707949010354633828953660523662694683447729693872984244041836907331178170873011528746127621691021368052343202524676689723346940238408657533874015631137748533297220119080269450804932088273963308029641465536564917722637515915305353557895340844812246442628221597212508033346450255186886509200563742530095998196553524863895494801642283257875755283626808615231437501300746428993068367115163981217091785331564304929253643945358108707746669376968294356572913464953353932465331776415199311212634151758750516895394936862035915466988927615352937670870381657421949638166111577858474684444939705624970416570016723260080802900992268916836682237536291489834490626646263322229556312122067793783005497343891610266378852455686664600548443676542302589778378270164339243397301116281097280123703511016482185508394236239117424010491913742540094887320146872187300896164606599867307178519950027183372664844019761490019705327812677773933661723143769559091224548579294199088712470081110892200646875412559869886729794257615027470237340260948270057200139956411368275404816362413245157817296988081365156609248639665964120932487088923812511792855367655025011237353632365822439068459797213537639128724388361669759220542581507079274750240553959376353472918570446113815103551925671543273280724210153590244349778315205151056726615504324381383131084200191753404366297923896110106206099619784613478214741948149084044082648445146087548949756957423615318749639413352955887955422953273407298852367186895762404536717408684479612519917607653859640745691767700814939389678626462391108430730737826896670915742454441630880237343565859669901968071162124135988634666441986809248810018066737381238296440537351783465551232944688587721156083304111073329949270947186408750483520159333073703970531797983206516161709382150726300558948708894837366870261503890121848244766212818350100026370958151751764599694109222526975207433485085451452187751310976432353992142326628179518884957550528003288276797866902036203976567101049344573613868243546240971283190973616237667065365447613418412400984163521777159406718804947541154467973261655491936039721827752078230374918624904391738829089673484718045563366485309937527268065648558990941011615071229246903866946967813532259484853241177518142328362253594549324761380000106014364684289442123740487423949655475441837936352969239668446160800262643861791267002774904114783733389144735271892437533754496367914259169298125307778955752529863670305421749110174156773849895096611919879185656948715489819631535226673007006583167798725971329362789649408131267845279658401227495925739183655873608719398709384954647481964349397377209556559440962549680607949641026079506926036188150226873324824209058853395755445154679470850211124847129005566874417755527724328117191644414189416268271901545948754597454317034050565286655404828881962793676422253538958395819078182905080033191345684745902495154633194388879350487417806023401351374441278863435951747094746376629102978070252930427759309070086497067320285609196920903750487226345670938547924658051238759955301620996375360143590650671858038081733102177889634556069923389956130809402243072014150774470975507404112212195866663097139401709085429671893608912893264675728964102866590893191966837603269932845937132816103137033082887853671775809737193312269720428242470561085871944767662607098718439187676511370351453840751624553854717528196440657009501762670382490374902291866207624209131156774163530536322818397490317099485984167625783979304044545369333329767156450121267682542070364747302611518054573611659313192914444571564395539775016477724275211192546796848317562638324302517193323266224217795950819804577583264645305349580371593532173305590938967440308307315170581167399392367060288701052519125649111894452944409769369123233829485323532959410554087529998608567990188639401943747414754963179874648419236556338126911593616912318370923965849090312791263274913808869743861974933913189039039456470861940969281926178077333612349322315952712937765613677758228279011352189958705286370584622921751854743773465752133266982551877584339041417646488393543294813921136240059715124339465048317736395229862334998019354027548672742833218271320535184083376825176464950107614125754221035529882300583199961635557776759237597434727675463525700939085866471509606420988358116280152414135927582667406480771049488929947537163079423455834730024365456835422995194554846951480159638115243530570816293682476811879086857823683020790018065688765702717286655494620093713123330273645511927026995634395936144638570443085508634436947469278093289644349525487181999227397968594956880424115376411926001530437722585997402923634813485983685739880686920225295152637494138255319020898362400848125586387032132386829699716820164503074194007470737427715129044246689384579688791626848996940704942983479520153987568022400915336384032765690129990447881943981080321935766868214757624553616036886105394005729051103158514956726499923442293903353805857951102106568195644884675972337561721969911550199202532831424842457793942695714639151991331633621637697147138966167167655247840212407450498065320341710026269245024156721602836363327151153243755045760191415266947311362355557755961949591789951271933672607174847055194178123059739834294274343865233018458999643166853378323064218473623191374874252609190814448137265979706842336826595134525230090957855668026903625670593113576970316758216100524181822736682739964221474099360687632631893871405340556828248070341127294809063025713112654411765141404190317247481658684696142764047452225657722091113706318537705920136509749765860519288536365939801947313547661905133843639238479614777474430147384816319932435257726095199299590499005626999822931922948514395171131046979055650830952626538510508151659062755505749842938188597087682833108451581731110078578690921986357639589602133074780404742346214090945369121701603420274291152847910447465970671895282393039594060655209618197850561064659295395004624449241384798784682720225146748463261541777682467749552462179722484269937589468418811152799751519843292964642139755232623461812674804229520733610870587001281414726883496307358250145700128066969411082405267535289623008938960659917351796120814420925789501952465844188922605353245654979123512942664911559485682110406243164739458800527539474937638304160361456661524661930394386544556753441082539764730861046243502833681941416113979153161190941347735770711030085186290326399337954165528236908539563854118179908502432232586544466205293240534724093991460688803610900111988469787849370649798341712762336971105727438320715734617832810434068747495485072432173149529010347041531727842164894654456687998500883236652591072543341630447640558390505262850370258140380949144981610593878464362105205037209105653638100402863549351466628271005531399837908861155046471108435180492854661622891112385424929633075414510494729200282729414298659653141545734167715857876621531869651594384166026998046523971025737359412652215144625362610550137775683413750561158546923766128267798800726980332023855306772212633844931488544996568347428758221524325473072716019799445269790638251805637306946587029825835286907600618659034854160816410327099899967561678770151325035187574951572150118620682214118172114117862581154397373767677226804032110629098129472760874448610760561431873787156889309207613717618197093697914800457367991195706058004090359104087245236292761428534631727586119770744351587412451788554454880205548400331319960675167050680980282259772156149486358070060480267383526675002087004327173803045744334463394179388882168049314904792664827991846361122218210659990956053184360328209052697542366449196739944435149762845397978624033053784091448259117586328330110667737762679689682750700002368484110533269759142599763839317351428250317123010691945680936732070145105608635874386401027787478296280540845806131796499487526784190408942233024184213376507608775709041261570304750873311174240716326190386911620728266529513827837437614245210215918335632056015243383614064746824935237914505087607899228936479387580925882720099118442476613905247090556226203805405314315043346529209095636352104925986629816434667979941466695726565813630819707680371057076387589925948239837646509893920539328542359317947038090884506200957289740045939957942334509626895790396463876272673266642031286812263219995642142220220982186400812482146431850477148765558394996224615035052628035371020895375233826423024778920586755336873096069115626839034575173812746385981092431590437346926457871340930629457509363773597111187856111299668737757531909803415698251867308069634506515549466389028685308822921862865385229497816887290973717123754278315110497082617480134384550232634706227398230696491469826690170423651624772285998088394375261855603812621997140722894773863651262146299527041812560721993202263663743361008131661555451741531281058440133936847165314499244553875229512021013954449259010711003964846848218083694658810833191673882850669635820838789581636475624816831637318324569840451315650139912240477133592220641721187179545376944813187456810491532457123534664177081142531792792532264563388333390393404603101994893715262376277948180969794656804570275349926719295283615940282686456331735065382344902258038114619910728710095450989758122556241854457062269882880652075843456098241372503477302776859009769023487819753396207109762925193491685165877888036783786992869028780840345254401720483129200550429414489246103221121920386045631799183616198731209330340378021781975173151466870507121458738273627323254625781833868552449575056514240265464104928414490806017370425946775244238066160262549256255810350964333814979326037571277941272670322422722219574121108155564840299372862390027762077365510595786032709767690977927913639833140969410961861271560502673732527250475884774485640689926304024774394930093098751279981860621834852116304106154143074226611731719103514403706866901929152494953944704638452576429934098312229833927663254311009585148203198502570469565891876696167740050474530268190763090364343808334010570796652314271200681814888152803569189645292006876506518813028777899366394243489320869586267486703547149290682376214920344749569851079159804752508936932434315991471037974067284678289351159789922231311343967038536256961295874557136396714921456384384562584176525983205699518115846375636455674693516900782181305898143278108804281103480521314016797392925096846418064632599924368296382448615648118109997193560566136571918137456297066496888290710822987302375071324952164289201116809514207551618996532761271017838755459861625974116660941522212339296928396293178506712471256656196547127771171906048504165517428359338910080932859488026426721224270459583931491673441414033576348170852489001689507053068076111263163083184559669550829415125626607389402080301014478332882448233201780863674132047502433407868615511532058955312041568281430309518126959222979085786579083124991961486852153815066641090963049081084801934442365661891688113391339930022022629159168341949521289107229422391840637376184748287552065026558964119739183086489333817400148111051279926140666115785865815223871635579341310014518682164474261120485168840807736687312856917355271161637423001712471659309264845290634090291861683770033426302271454254257629524756475521362651886889787206871316145789085684217893940277522264024785265355547207234105829291424182910403300453870246852908691573185853022812154411934940776709051240889060224273857875339242281032008391760847992229673149085027617060832624494512157455296996245656307322235922139044702151448773314173960343608102919333544124212967138636000012735267309882263143396022439648384901239863578156665434486446967561820309527173748818533165977892911566838718943238327431002479854651580784644660453277669514134720893444551109778982062813614776154055053853940273959614635103537478105795226535334185774242811476851850003648490238327842713655805055954449167527950321710555619114717991289547440548362429974846130866111583437421862932007349448135871715501064289229012624512810820154746865524919190449648687952747506751444574802517108501717084505223297064564166443806895663583281627170957423110844972353478166518055144178643053036426072656647098205151472227392174671941051589986465590838536337341515932096446708777854273383487966099617320336128383715823326616413878807594470707405095924276136606109150022127779043167117793145316489553263276868227169374887277347691759158045334151922844795433206705404196392717869576244918999636028789889476113194583743238367457671885537150408915371044353561852108749441635659565966214196178233619089655747054517166358152612539687041917545947037187229794253946260157782672319652254708292816161710056020278608525401095492157282325203455553876361035067363958481106623696476569366615605057908511994781410847613853119981476057190404187288655859714512245775297803951895278545168625637806535303188461631799895174496230892458850413015768054227676884111650956374900266852924765867117970836709371084235422870814046909101491379225567335336577734846635448962963286558137433420645356740877694993808709119943836235094095667885548451477275807191534930023456066625933513489764925184527443382163178859193778112198147606611652708162505598942064638572963832350598014840468791921354615952790217657486430290611228769240968361566832997432317261027851987563992793236987759019633524449929984851088119678133598483826933667810881133431979579739995158226881937364221837103259257350655777387805112668337434596029134963890775070188076572586106848603561873946724480775547095176910885475809307511485421802085284492473349500625205637243485344763359231406949646976788032612782336519503390539372783139439016680794435249932282797110581503462368128461574528758712377662626555569468762271649197861979495837530579016702028149026873792352436681294913275800901586329985502059950935963743122467505157180917795413625657358732162657123949829788098552217886209298417596469924177825189173398175686540828107965205881933364950825974703521621130801559185665857994858518670512154817297622007343584300263474261228193119908550356502107524281189102813888667537839039493124717214244912375883531779818807537183434423856979521320648143544288032625821736155046431094234593642275667301766288802636392162315930696531840225767930071147881692631667301861330319243169339409564578935294866413794615344060745563586197113314140590203771625628930187066361506647036286677365632995579306888119978996832038688920365794693356983263388615245195361977114391930042447984744694100006267270227766198613007099057024351996447121864550435519936854826770101048879319615074909041257754178066979333652827006889184410532827297968912944487397714476971617832406732086552194489404716992933716513642092491361648154448255848072386385687739033737360203109215473040746851981710301921457289626301142807684228992181634859396703324920961844549843174066518028073396895718246052999526183960358687877799943051399521187450623502873304286874534049850745170544067913617327327467124557378219494308460393371133360566115683233350999674514095652515653250442960245004490648821991231015238212488143860755764040170523477148656842399014969584582246397009264241109072803048231200123224997728551060826570609059289150553395988202587142296032260296812981865633864829763134204926570467907943186963546752908481726867962398894878256128226924222550501815425464450501296388380565473893752101068820670516934324199750805047670104897353999809174276108494399069414595351890671660447223831475438855765147833241198005218559250846534535493301200638226286188124567911067999292156292158654458501790339874737300260953771710822542780027751024936685099658851615589054343249151565562846798656105433248725770914920869088281419859832096481113819677777828289553406244086489633555610384605326443210381847977093954913357250765297529548228769132673989543591575082986285156085947866536407405574012650077912609857103221705183920430917529205889095911747030133467096418006444075296407961072936189123613385791629401490503678777469803790582187789270235943589898888400350799679874109492543524294173282639334236919460880108821496874986997699268118639304622818211082976594040256365548696047323750451755836620593180716883947236975805672878326055544183170068797232784355487819244572419667378391009169641828802978288232544328553734585006889486231675172670796043727543759049667937793492369762672540502023164809804482154615913922728215827210135777326663145310226008031460557053282282063384456321440715449940792916958535198113592007129653732817487737738994464917310451929068325239851631094243058093361320789549742809413886134178312393816087957156871958061354300201291687123091282088263699266003092380042199781969665830759509014474396188997621961459654868703321261582384858426350949316552535230481343771067370105759705574081688949698284401906144063487903468541789720903928398392704419254866645194202146017907504062128951485630960474483956071317250711995919860603454501296187782133476245658113748556169446137302527269702544448395729309767008709671884748271331960865155556415985738216348215545012513357990260515239813487920342283225001446003852354938753043596922240332742629038851956008978900224584261325521553899909613548745497243205573069958943867734209579174988789323830034985151595175703314299778104090617692270965941573350393939533372632684140409125775919922031168545115225290924466641951061191417700639681237382322835284858424903328393660577251398819382805327391418217594691439415375090347475478898966524072287142516829385253103426396833580082805185981012530927945600629299117835476928588705491850169314486368188249585872854021648224833711272820230960939280376068950254762885693535293569667788379100148550281950752889513637129794811253653615421800619004947437267688032198442370220066446982977382909989036396769625478254952180201113747250063960320295043801813149770237783004117800202747290054990979370149270669734225699676984482610153661551648822777588444135519976666168025250586774009892845738512796170550993202556034969398466686212679623508635293039029740358741259429853737148175137163837014239273503382649365204183049821714929406665738341501314427904062548076024763980007626185769942103952797338056851039341839278729252681711524530312123691956814246280880481003511725573730548004923187012650654305211894082594064004917839945517683561913600618390980307270125062661269217038988948185702486893170093423809906573460187644286630026176692224659253733026320161278606152427160923776649632166285202466315620126801819832528637572870898293911970101211708086686338358646722939319943720948186940073269296376581459650067386402973745929397339352988875318471763567496894298292243909985842574328165474265108645522326207847246689552786031489196347264440701728963775063595129363230560803185099208973889186225567886780474345115461813693075763316120019995448043834838079788942987459379100385863907924996295192243428710920196826292645799200475500348192634230370444198153606316480099554973985192403384560079069719889756803466559329993816460867542160854499411271120628194142137842088140152860113419698228733339469561092430083063118415562638538275053648462036159036150833990264419375175276695961086181085659166463458433327594466564186810479385590842173402654365037056977590627553890878622673131945204757068525876445995251005367134646300516584215305752434550812928410590813947049658467884985829050830711157305915783666413003929161752083222710971704624531830082369376268639787316700932658987246549063749619428241096902288612268467935438519025447312771073329843331360751631242853108642971851307522743906768172786177781491065825561134351213913099274593253828738625481302347760816716945914463074329315211829679397854997934517589805897540372366853440460861512522295337285864093395268905961698875097627845401931769126193341145581117283242052867185189135470751316921959313152375931605022481379479709952650046708656226581004798443199984784941369347624378003968304397070178904056375922217051046570508490942311674889848410212698466610220709111156432658388303066472389400883333417375298050348302832115696958043460057468345721275762664486278901527952961057858233565446449838254738353085822990240491892744950744434127251978662553580708230456427360655169356106705733042049501794117693182009537799749903998406320794835142206386824503574464969254517074280693064697594811615867976802843596049307978275475212547614673478669203858287903285635999778531553460107668804616546292899955411017555867197989549732058061500979547306926546489447690019163447017001506987136726898323589006263167983321525657639401981022345296377495032662027043398030835555665437097697091154325350824630073313076261649190622349720545074917687964291014980182672543484924368374486998037351525412880372419541077504853365932647713179918280168486624788866056195796980469587108242870273753591274719886499198881216893347711531164050298489784596260677669431475540909706552549396122971714812082811514609989764863586543632216593449611680947039631674381035318478363257115317916048322974049843466270528785852779789395316981027838873807649212897917908199660499836058329597099953861554745423166507717592238648821323671283437167515303400609975705320047322138996051148211510366987120683223566943143601154072749410057235846147720141561516454007259470570807629387856129431181937222722451398712773779784250635891916000860188630582952130278491654527583538548904301335321024355380319573363884020713479853492395900613690594216771649385643659523248420898977178436461806077649671818491806525329489703459691096150888607357161189696953095197493624835390077610335468992552106751566264167687928414338694997734356121897296732616841251108851578043687536043102998961234945597765684733743525433013688488510240752891979888432475505326908022189442922466503443283497263382656242357780647072802780998874143254359986192537114522362613159707997027594763505253111234988210904399576342125005507167218690557658507081529571991881922924957961078947092809678615904157590358566268124862183918035248279656250237325609314810438917221785866796320696900485104742582581449081348196027685584689496026158175978628586176781993150842156166997497385625626981996401550818967268984662741330342709579538375886816349228507689609744322645978255506156173741934095176531534120910499513123354327737020620428433946764852792759395486092059397153549354337792541738274770026975605450169549934665540448257823916635541713997736075940323768014938656017124271653860231303112361536343791334918606719856956552341388390709662691358134885963506457558374531702039905258373582168115484451866803462329825988976555146809233012470508409966464192290736102591059152103056980350325798155729666184471076060303603164709452162007922176207306896817999411153653915149658538263163316280912526497288662841620798200374023764402149211731781058763562697930101296457732391886734440700063018481557160249992066559435080195191737535318430452402727440220823230902023802710983826937353468065933827071089495235489831935320216263449738894078841883505084902029500375632308835482935283531478773633716626198653083556959537101283762095779548517473239860542086970792467165611996153114588704931018637438082451928488227619089124805103874016263337518812959152143060752517180243463198879232111848352312463029283105324766107277588196780249035558784294890289188602257018727993522385766310743311410107593893147791416970087857241981981300187247596674232024013071203631486274447672793416867481111754972881005161559534820725964301674971116057567564369530236818808431227507675999456553710881365120218902017408981599012699205044957923829718663152343649236913735477127840163715302590499746401314632079457584746376343521470573758884175705381503009291302559302544498594282253396897359754448435244813448695385907185209468653531631841600317342102347497120486307729007676421809067546211873090929243301384189902317957944771385215963696994248618723068763520485892678705997660259545431335624752386670615881408160252876871721519347342718697167053310206904308622965175826552675283064725543333452730863072667082016823586942754559574216922003188194523960361716150115451525018424163839903612492243442578872843006302562712044820690841590909112306330389086769888862267720417238836481275732949687695086406214679019261065915249759065801492520680617111540270020832124043397404461704226788051894272582389951028636800105502971953037961135614292055535164529079618796517934428366962009057761799113172044505944186880401040503185670628938428963316416078765516143442693501476215487086316182010621155671275709681905961887384837250860951322909420980346782430033332770306974884250002583111058772665900920157827738283992723198546453235202197684272951206027147243815366929788335774600750946263062470756120567470742651625645663100476872262825334594062654147928854409977628255408834491087344244857935808783935584201716754456464067127966569686689485077327182811150054823277563706673043565524959729145859175091561283173142993802958322977129080372129154465753368466653952065569448114365043310905273021744487539692068487745297313167354399193579396008503291711782689976597391010626866926419294405023904055588223164830655707449976898142328771017077117563647785220804251518501462248608602449730944442778266162036138723494853093282946757538050090684471500415245446682434856903671053698080381276368781677795528831002834404435017284818249616608566027808242462690883609566606547715481592981421159837141729989760017535502359328366671507937895449689869974089657669237777692968846863530846977565983740187524968218452039885077456646104669922511680641534608048526544574140564064482757415057001921635730762463828683045659875438201426817454347266772264163328316870766703894517161205392036320142702464353770657172371522491031404915152166409764617653767740355790615248889785180177444459648407984247593356696659307047733461626667148733935766170274760382616244603497341397970673162693322380447901550911499631717736269541977058535139172796324382591774802098246000999543897510720510743380319713052397107591217757236209267127946516925185051515241600463697881244622170086960646236861912824171021562279823382646777201226078578088157191607164636455879696708849488736698039067741358718578039118881671747185313720969171377685639626235797272575986641747251958988239310470020551158987611270787146975218317673188109909894847888578079877333951328709621116720445622723036423451762481517846835286157512063283034473318620983482969806034002410725353221052750070015660413379381422807017727156705417986091664005936970615396181912352900524544664909399192334178590298154839935871083426744261080335469278937915259548518327726855281367643463693430603915573583754317581945396095290430853377751309583360730212863453097099506019974296142806079146882313667022690842706192857620005874997151063376766951977715662322743136525683500477517851061749099102194864726949167112139755097348992682916205811718177516216470045101512048318759028499112682798536005957835207780174268512431416854930283292040714267280973412209488321889387329862449880865062368235124776206249299354868501775821646952916756324470072946439516131255995641646392992146080886373771454700443495635998769605336209391964412953609739836324360239325206794583241539810739492707162804707022072217541258701378080486763682782596003859288496950057757809096483905170831521088109711322986542939911985543984864257379795919314947474959487759614516844504942569838275913664584697322608109590415014852100806315062249182722677856248285024117981405326414613783444550592106716037093213964694162662498444002289375812942545761993189867367158517558331101580721195585560317479173037663373604978450954670513549882514933464282505172829154529249460345293274495427165005793032365511548381451651523889466658082033443824065042431151831981011236219537656511866337874926639265324608123978776876813919973660595032298616147417444092396003957247177464040898003544068210139828170098840157951027029092289106528781873923586795352907849208964655431041804290941531387088847086436026951448005871523397076161812852324750456123652640110291290392895923903966346464089405507526889938059561976213833510590207489375347065110370581202197735961522414518832731879187072355271869067655498830728153818262575798716329350984588334237313347036573377915012100437866719039129581964404107988627655909421807354076183613470925747383486192978507704851650005296574109165573582961350167318469174978232997098281275464255724845875050901385987664738954256158338997929005849000246191609785366874417639533551385898984132455275338935895633392848136346049464384120360381158314178460408869013113308612218664149738432643503253281639472869444953524955157311214164750702336500310947181879675103294439551966474699466602470312738575377130182908359868913522606240056182946814992644718167803043616957037750502145893544542415757362580847869131811518711546577815564539961586046843620526119437828200646090734557715349670771417894257413441704031488691973235039467049362922576860745429744959999002199694644503664605070739394866012743434601578207325522488582268599806874643044036328288053721314207594663950452320598513156475740245002295295915875128092147133093469964587754732314272008149743541900682822253944778184216496998517564867073571179115901348332227750545708833494173426834355838757653954313147226539930622372673353423356418763702103693533773986474952546625438116577054759944491465001962280022069934182743796623306872163144671595192203323032142572434115880395809651870496124150235071676231238866666864414461970634327584636176152824491419607167212052029658119378731411745825620571491368738720898311551725848965840996588832960331540934052292766972579669348234706480864421941961343285605730159385778738903042165525558135654180573798552443326268853123418019087071039298411062075149865437834217723415259188849487390782027865814125227634358796719985083157202879108154100976912144051925422095631158218798288145850270146126715308818100567791782275762707992769391974837775791937293826638077874785896450577914209870197412862634267300850688178886211972129766319079297005339264933557916372131789463241971473008165949278596066526323090019907200578504437688366007200253321170723609123435634451410523137055363015374835396694708239022507422498640094752958153728306939996392754698310073178605935125783716961300272185667670790465073453070075637893016874251656413333170589771958769431247968659226112734408751736867278870153793059834812289019529914679092560114991034333784982517197484769666670144608580816919077161046938974365507082689717180879542212958454841633705051697316801783737126205656865281722368159048676786699808069530190796012019232388089881854516775342930651316527590896965324251793365015793598218216551097155734325745945023080988459686813242978982789249027027020755669758328199652250714288896412999695515170024944354416028555713945583740932782530779086399301803512246019928035657807344661112809326433164006728761105691292393275946761421673909740362611265074852408316381108489347662275525560496736050115153002521845907835970661567928872869437476422522743516580118696944615255173990413357489215476391190016131336300313264141712774070335167810249721703403228362631491733935897407249921972453609940820680480970816439705183535834456914942325625859500245579438455466586652773341201175947114091046099665800181540823328568829068666771205684805139020952839041648678353868102504928157140021104492370082142253095326204587578705030930396847004459255959963651851866050607181356361118210292704301126485134067181149818794102822513430831943335320745450537412108476538683267371999452769675001210271104700081957205952878070957976904391040055972328674933118352873525025549146504308935438845671312147840194850508930855109368007931554065182003085525790342340412568068695002791959536783569255416383012470034063979330573700049151654005393694761852303478329663434140784143401205534317858517935869250211899802308432834205853209728452829498407805644401746517115090226429955404839135283573776092602243948278911098551303869399287414059642637430182255097413917239713516359137506654097828230284355017791386600447395588590855261421846433463371685440489251316471992113825748411086958304607950773120015271311093561430990668758211464028735517703895601185733678291494636691577085398750099364638378129232188446560108135077386363515097999529868913980394808466275346183784434048918462424816543010959356326420135083130386605358813310250868057624317458486642185496372659158745793115061663637397714702370861732004057159740053145772890606588923874117640854590569053563608515873795152126029514622737898680778764443642292548026424231229967461949301955615453039495722574366728461605475369812688020766141423793470439101191055396182322531223586334276615401646958138661675741989592213347985862159417770766555583821680777984392594031466273474252580530304307829509312999629752894701272960183999973391985478066534848507954937171768985188102440284286440128805503106028571635915142071122870164291902076485261530678555835562440910295923358806536625107440639940443500759758076272095400212621228168339201229034874420801675050994403665804915452514524928836579722010108706562697685882705661198466680237136720636457505563724735632246985203377462875590889168322050543560569017574840013010724370639407748329246690537361667714408404215286337977142662216568515935751122658486676329235445710076498085312967812061685735460901293726691393947162737838596408485960587272780709685037398986053509445257879086245834614382695991171290984244594845044345956732017216531494524223661948190018575287446260004605827932589042122914854297785895716653303488964419495171528325063006925706539717434584637843501402475795728980597179650819496556189757800039406445077742588797334180848453579916203728265451715778597095778670303033771603418497990846277217042215135489835406993572701247871732395171442298682476954914110269945713917462895922171097605848558144795261929399026960031933966525845450975660327696768762763694384230800882424906198209054801506789648234584826681591652739943969360750933904644550819425483725426815735291835857419156285417011296774350225986414170311915270054914565225259477488882969031674817304156997638717780943324950914719988472786313828655718426525732231938315856363575136323927454003005335268023850444549922938854893053209556842927208692465537606981110283028789898209199137292395000259954141286148789839693098272705885127205400938663502987128588935359599029165416933571234232271781764830562199533457467045508568434906309478672728996301383637619755637792693825480046770218115405021521360259513821141528113228252609411591290435806540106211178681583889174816952281776756740536853084319685633848503210526965433497218760442407046803222041551843127250905928920188527829336148024614120694383035535592702018764712482549784973731319647564257222456036785654096533480006907799826336346680799069015029027191049458299872815136893370293642678870107074714974727361251599705898044178805341935652572397750821752468482693805679135859081812925617836548354927277105211502664205990176198497722857223110958088256807600975554107257805108589860777742835320210591184943427731795217095649512570564340872067904135322398682196147800992952905485053729449905814973786598525181170172694097617626180484602143761377357046356810132684975191801697524923504158989871696795851693225952250132908329163981492176630978213646639052627876674803142353789531978257809945517556265170952002719489683234754850564080587222678291263025386568479219419915811179737439741050151538581508389969021878616865790738111216490301186553235243842535399221094050066775759844416004605187155452196441900851276337642988302667862912781220242230620464718299319047766731069288691694290320008182354777915096832630885137355195155721922023975047951087352229791240188899545415024212249228106273412326719496717175559306291883881081899622544309164409741428656891764868761778292242301112617301698524245370265431111706658570465990405615969700733581948429260638577220941829690371054454997181986199818344505215580495690403770119987458130647844702883332859864886260592368510734435125368459470360045355538021815326709428783473741531846293565556696102924783040356314247728989281137501085413518810538119299012726053335766319026567973297458919754836782030550354208626803854266886332192013069062883741881993243775695850173868372618643989903901098788344900706006656034757056853144569435008912585097250529438948149783820331837312382481005186709510131151612104427523807033436123599894894244954021810117699025797880616841252151964907955802693409969424303587525171897575414663937440362326909345184649268681901307494308090392651199388739967707301597317195750513996954081885413769623631310139502775489428883219855714319795656460813412115102926854642764166411027756964996383265316007950291371269434566150178590400457764381704814452932837482444075299637417698517668206713398495473583205947956075411314524424604581861087523333168770921915085256718771685812796914701336646987422813484978253099326153174261892233179077841177751789005404773597964019085930774508426650029185979004284996628880905953537944693924209661111684380250406940252654795416469405989798704571021559616934926504568022918869119852235655930361339437457108503172440557670722575774155250424687455201652868815931976940487032983200150067281809012125843945654133095502939281631127322749549751967691128392312877901977897100024662958116039408036320445637280179271496109202047927928388005470397981003632104701130374458723845430403277826516351280744676678134578626324611097387282363311535731072349261864474748704790786227114575072175624975702433221531719941354182803371785224043916973683580529345001623905014636098716877217736816390395573324670707700851442619679452822098926972637730420169560791088053277657855944528036657232455759569053919314733150499464430703640578553082182473296736042365451630487729465503865766107957236321914340677823464640127702637631238917656231627425836177591908255984932237643634819186902024075362560956253727168562979697685419127439044372150794046339389175449971523970551173426072000083573799685614913980143763069931544768672251713029877351207093496837387695078270850500125908616399691951455427879032041044619332258027901614506985548462104105011503409795937031859725693577252730625494143850695712442404060616207858311311156779306906966020236134144852584849241599035288664604523772189331402261879768751452308123020216257896244055290561208432160225281127989264654554069087496829600791585048968100895466648523066737137960496981672263311158505845786581174538244434133367230847829163334451357553506269916931817111777792334749241180759728343611340904991271172595897648154410449180015755799957943217438867446118271840872310916690459175703009846725488292310539437358374855970496214075257589380331826064196597173934848485756431110047610858123675360229841080349750651533834184970820794908835417289314031914690432103367336526961781321965899945719933117215306890594172689622208101262269741395457441877947746000097801282100364351935104633424700818355925261028108856696902879405883069861628672064695541594566684936335660785170551794851658636600572249339515742735998292130372886327703424423783604771997648336725318686389202417132487315237939679884398316677535900614484326873781566006157972010420728439428710208376519927239382939440025961961011585281957487298279419850590910302687797281649269334232714030212362248804681586541168294768440564864564490610112362275896288696890255803688855582290173970284751311117249344092946438031581705039297917261779019750427013828699930565009058444798600928821842046203698807145875888863675492859563255624636120452831290193943229116685715520458585976714955012486149896744322799993702061889748975939992003658961410367103624808323017066009447415626151284205364985755527534274592348374544626984116988758147899237624457622398230894125759975794563940883074535201349919590257794731019465069086796922132815106830911299013105610078442638733375513227100657576056392301959112759715934457712750550327938375800872886945473281855096631654363150318878791688900760422884175420481471074591294252569476766942517273071104803867802503601954443649235405454684627836294562752111330382105691350221432829673385163038063901054490962609094783988846868654353801504778169594892469075971080112075378960541900848467697834323450009591556976967424626225474208839241651084358463552267865497871852145487715401942724999777400512763029585930430554350050650365841206942589874189779357169208691756325226318267614660514749086533731766691102625160686619925713481783616924391489038594214553952753863406767115775138226042004350663762710692439460725223973364758947910656041440524382656986622739637179731518532414874428119124844313792325501431709022830547520032143712797727678310043701511509937727457698907765380386384327866041713942409185942979844426930680150817708278754695677879976407033403300446720089161251648524352782400688654670475027041749916063872027854658018376343731028726401159256129648348915996697992319917378767708380284581473637274163035251114171118304564186252605926168146360410291044353039328131530781785968042698396091343103619522755251989974723749956359435035349957554509036648710338991919134822454262092183171789748416179889833630136556788335110826611209057204940047215228588202382191818176446471710241529744983030104610707763690434580620630045488951328484982948923676782378813484548513275258880087442673000819153699645544052152496791496580359906344765117638404281715533904192249368401279119558891140968786554244104422590032091347034612888896940217745503513473258735901705812204599724857159809343010765170697637538094114618498689544101099430088858746204441407120316476223353128572991736076676104064293342765440544792258023003928374219009000667750148176834776067544053928100993533624256950323379760470407156178244855385561892392122316864480902365602731102257689653026603657503856654979182742077668590601645754708573772367487580638591258926889566874361748700386962154205552573586222285878787099351321814335991656961548764255794900652832945852814139874421217721088970822446348487923276709311261128202684856669401315367276152079796614822736852292731702528615770348313725890499756281251010378826699742239438251884310761503748798104550678012656569473679367462652751070205346042903427823755279640888194832340351835176143900858528230057156181289387241415968914964989679828690150993630632492569995575869048180476033982540799712092106048635760711122760885297812737147601493590510470171849272802118636597036519240371228882310112981331131051082547754733165694316665461597943400842427025759639473737278801897521302562465626447232079065247427797333071664168376827861582702925167354588865199448330950256544502993979833602038238387880765563755934074228403151192279395830813941712142245356704980250771828092733749275097020120380822668567049442253253608486156505750492041204222217347625651623751970308797943630772674815464546871077298672991761356890390521030958041532891278128088366587101527047776608854413397969753605215613497580149425539861769641822306203276957471322202212627411284109931315546889765069493176290145596736458814072751654799854075026575533230209073642884767326565295465636165322975963238194450679331346765311855456005873793908383109972102265018533580020325611168823547271837956113569345570138391633765964831016170674544080646748195354641408611498425203527917851437829166437960333657046546835532839007645856930352707003226149209756936650738812253728756744514596142503463588859369452772406129433501078386767358790879937435715634230098525358275455370545780676872469207728453361276755746562216798029409072148743480432532775572382699184865988824493217719623150637330896954076947585984245471229517736914204167874595031838192919894027245743845594911224483447309422339935616933958305129763535971847750042578203387294152107441578656540143273867730206590257110999575614095399412575719160024831824956812574569707611269800491128960803966358477412521858801459823982290151905067958662473127697232275300683193757405164231673797469858015161751867517284691836667204158582708226198307782280476297653414928358131352139569370788754325365366541947718495818975438380629574743271040201716548625129992641625262718239262262167551252262746506511855806599600823511208892984215345615226766476919986503937472804279147448821880260050651964723999944029966720476962989890724937090082383031489376743805068713966641823732263887577435100107444878196576114971210888977448063827024902297322362129563260759152211572386588203646008587836374234416476654232266777157575739887402598305736787212431282702933270384125489951522154058895488094712650872035671197163537870434409471892540213691085272520688321496296650029878945818281223856639057757794480040231619947553057359645343241321064578835936714753174852025172791587419057391609522413061578909836857716591904077987316816853430054157792603680793275537495452167067582618858804097775458287079995837411697444348101908978116041389946876094171282180696380359957091366356415482723440697288816115357377784468331058711965287831168421070520216058588355281046818758568470486566473056990853907543732870207948736596342017468617644467023676865237161285724549429699233340766787498234716177470613328007330094592646585335353172057291973172823096027989982576006816937038962400022094329790541027098863436431647985373355607177709067832482978064934960223334502678629531884329475938200088007813301736198903714021318871612874751722420751845775630327798732734184498814200039869260088199059246025004060956224188404823726241859709200634891745500586592980831653936574583134549974022755230502936335994610018151680128506148320871582529644171964150162648631390807631379445988100780834987313775016784805382135954020961275115641935291532150291175579140553752229638629140188165927519032007898630175834464377310804977870682830027440664270487990915828364844888424946985189343621949181729193157575646536025796562150366802388430806290992512080080718742820837225524520716902919369993077288397248892421548646658142339294082016215767526927022319945104145541215642630186748359533358698949064962262562890115139283563679523513023909781611663630577777802048016226119044053709121152590294013243299251775219307186195781159817154149613464667978583907622791115751638767044990367224822672967009083513123005519148905645644529397636027993117915888704179886885219890484624575117535338448722097518255623153713085304978679410023848578708640763374201366147277067726985232461470726279598234809094339598086192580429605737856351264968666257861811945214302228616639148368221496134729863438859628403379934685781536522256119285114035366879173157369935705786302863763764051934179998763603013055024154188775880730814473434230086734780348646067904187085995767279763762035062434681426142825498883764205667456075200789293882196150381851767783313545627926466028523280975030736280359517274805698974823338287308475669676826598180250491812739896092973005825671378244416179539442352757740756100017821838731269284510237636412600508184694494031613993729819315185670914316260858589029423383365529428169090557122751949181316506831568101829241880109066860119321242135111044259260290969519320847810071030863341032880157549299410643741329274233756871134462919445260970646855117336625292447223803727989431055768574871751433713954412956347365369412059869738779356339270137648752123637275792990530166216823394015989696520570597455809727301897727399413372647189230706755401754897597560098513595004393608218424874785784829079469854856659166540682709067495050414547787318508309002634584725089767659078551464436145499270358703891275742470863375020239393371397559844472953468876284133531593263051774071910629874653193549011883901350718937634034725602840772437088221465992114737835494804159014343744405814861688816418528446291228720937890924803915366257157042910040458134511895198999575967354631026710754590457194913816802168508360094519950656820421260934140525708660052005821876667840651737095300807488989555247582657999704471062576850520549601213681615059672746259176372944993094450101389558848425975650987690329125703989474610421342003427139350558178155969046919216352134812354496443177008066641414149503035931351098180082641693470195939069057489985193637630164457691518412338323855774358189440050569994940845358891643677167145245526863846295540607214241969839391584526919987298243464001697485428947929091015878279186343419085896661125533604514057067236148099769272580850028892098970085631203651350029037638967342533752629845297434821353517935286452955091194659309374099658140000169320554388734059262099143205442814612520015621456174897082118405210183473153307279535348797614435517801827773961622030353844506435669445871204356661321854574019444854516373302906532664663588774062264414447272293729361288849682867531978514480897733543821108106765779380929062961459150995881635437542840267830956768719575575042407340730573175318850483744033726020787803835139083607062894046838657769152139276077109231290724048082591367501004341264750395331669696121696098773449424341848601261138300790493568552807553662248249690737019809688737351340214676322341828441103352407210245247550497103650177439327596090552311987844173367608021518732121086532131746800191639118896961818564681754251746037398303239498710348480248744637978535732863569141897289915471157515143220288821683388806498106767741421695485877120892813901015691568715920597923714438823678425979531000286448355330509834551940151356817984824930044218183994317144854176577099206868221395168117081145971907654471853763210013421768070085536951034562712850098244628705612931599020890221695095834024656817448301721314876660876266887563877400131879298842394659326041976947736875379017492388522609107147551674862486181009943252333832670067538149399581483919915453476202703739569269228129734987006572163227494888166894084529634313156825681208659158913655982550588649801421622664203999626750364206067863675737217929418417552900597032019911689031469714501876263683960178117748493165202534809846185473509822247274851950369922494534504364195165604372201164773565451011034553671059075861809735342983364497808866523227936397070739731208301396245411406087679028597968956343734272312133979248820803479341492254721918787617987901052167064199108586419743339770501503225368795441257719671501098910722536918315236173306060631731456812428627453162283179648812456987780181736250412380152974310269031246621116439796541105136607104627446318597697056646111710771746607985834286012987783557045121598183711325442649141772735261526904577500588073321579908824867142056209585460050620644414593656897131804458107073363948360673338574978842629258207626338404490063147982726216075797426028804995345518865190375405538795337877288960357395092594080622007391352815451802837832601375331939487845134576234130593109085023825586789871791193225269310714039949115637024829077895146479734806960896160324437416036687128393687892455904971667133273491297251859754347882223400864358092250564886601225801365806816291949385557278340103335490438805359856624087556954059482522254823945056252114770479261696181104931567543728771494050499255876014836430227777176240186976599893843643941356554934866165646958298661659933151521541082360219951284024634767096362841499489619489803167291335497899667664825538738606966485303659692182674381043094353407324927917289652956958090201247473913038966510305367652529718716698784979087507260180733285531497116415411652198038571327722535754256239026538028747705378763982735852962890203111984157565681731223624066110986455965892904350742282764636349709984971840031335417856124425747238162213116362686560022559232669162207856863913552532322047216768191783088724213815800046574488286131562538202566193054505531045938942521313178432764251346926034052163135180074926173788180761831290368236522135581753049510272122457770370761120697562098082478235578055073832858704949995949334191566737559855789043430559698946232245396692482970161964425481136705630758599698604772190776157764387899490304230453514900070604342558329258865279180272191939530991160030023432691998094110809925455106196186351766557746593618438405458847094618801142259547967818186267027088895861867944629679810342697115113356129828652733990067960768440445815517880908923583877465550003058839842190836988482109703621241488616220498890729841849979544677152127673425952231274308851517756450760637296295372498587831501025987818348596989355186987772519251464069014101872548302097938968349657575422870322800658308348133895949327570834007275758417401408657392210716564506175900430277735012958796802369111026684613657735452716039136779774524336271659634357103609853881770668732638418035079778486044270332615560777440595839458410327508532614684522080753488286526343619739080811424423038223307109306241947422824940534603653909616070075307800074285171049231319505885140689073190556077832234850108982558102511765101093648900800568434829819511730486483104121253841976522980138426488742826157131371693182735341521864292502724165366878553698711101424991116342327342454123081300271169511784550315317989457282851375284988475421389389177472486242789517158650606310335692640148544782530459128534215374794470103480554445969136464171738955176617119033576870479178458671877320957971347800094237366688588440033976452675919627926339640011924015283843512847378182711408778534704859519188967124993929191596848807416639044652434002012957556918052613169553553538493389001482864199261273730841553423880550770985647438528861889762567311590298920604150735362975150410793932077069807308029282613391175828882174257578764704535863339156772928885123211759883231902583857854033967643664778910065243072781052981405107078384822272855356838380772680495785729023836313891540709829721958463477238883420439133521792977052774988029320829958934587679239837731942078494568582711414707399039511623931151815556690716570182195983129547431361731974383944322629681080169579539940936669025843987340740071660221614374133178367252519770905690484403114225563538431305740434743045823345316879565751877251452008747315157645292226959495133685529156300622850071685222270885871751562537843188137516854542313749023403693718499778629708749393468960576533179829228272092634667624825243160686478249109766769504377680886086344577482302492080567085280244020651657738717342469343285709417138516553787899734594912632245660353739959938710260393622008091257045833227438635175194054799543561510156596994459015840267133987556621962665329918498018732241506597574711345144879175379772426400651954598508468760485706526990803829740118090613258526807308311411363974941682075201917765335250382651203432220692521214659028690841197054312643304486477119328989566935002721375061593535909930379361650684285792283945264061819154410295519287631283289566918873851516615367614606998449302698750578217615515457422630326351428770772330380101113134237353532701986131955605494747899300535475769958825060459084803479113829370612307558737799558662663073173035359098043062860638753703692365493213649798543690886597320940521302867880129251430999661428562603620604807761573251800181749946197021061742670949080222257757648938975640362150706458013030882316244416963128137122416018057943947610605178423228794579097926157728926576720001284746431862348900606836871553791363438348697584516445213191100987870166309487912978509700475966223076581298765335551458691238236249053483703055954146450773810763611163780357335415013460486052436059017491632171256357064183223353940101587465666342246714953384865982665413476087315923458274752930760682983109489480424865009529866422374185028637928004510468638102053848036947376490441875393629044992677520466099810091447021342264709847271919442425417470023339441347417903274621677804152463606738114813508017312338369626453027541383255821770548762009484303103999015697258830160577926819039654662983550440543371217695601173047933802715287882917718505681946912950111510298201234363642925423640008534707109957550738079626375784023284926782582899730130666314763586218071222757443350552719434986059609746737001959220676995179902193744315054981369122161767577109973070287844753441356151405494317697113239253339111757113894562933859006831178374987146145805091822160754728409983828167078956233499231554299796679079217585440906583437046694024502215710158095277030486480882377465142186302287246038560957293846376570086725473805301951458639940461908795698583975185275123387300125459323623914067760038039674643107880731722006240363393315846423603201213894717974248051725336105408170473539223324692331170076129627249712871146539223247492412270295648719053288740629795902798554416537768821231068134462346887163667362943784574194468276416642015679486858255868320168840972126432704274062353956769668490659175419301659241631505622509291822394124666050889301648195425841600306200943357315601288736385991013879968929020214656651689438996818371504537200660186197684305943186093220284812466192998727249293620095272625113576567203062016925765426322222129021394489782370161293310937622003141654591244883581827217845585375435860158327145666960947761727795844669960333947984288157294639501287675039739071689063491385748239792014724442130104497775741012887464450318612283085104757614272835814504337165827659910228866976672514910404384551604514956383434405208555723078690540506380610983992156430762514704087545055153344000685883121266076138014943366967771616681807335645291776205086039150462595387270700210504140313679508243162251704590526561512452268062066006785715760252405896101833900778411225064705282371420697100685457240256838851813798869437062668731173153079463780448805971423782711040104292840237655974046965569968981924845533206094349020074340743668120259900020199423033050501650662792302717514408149842498783815675942482023832632515733647828115657775300220589593359188731043905901907733019635424663905576904711646555461612385339201739563582911588272930107089600591696228844944217643879253425701349987348171068396916678049649967029807647081345131821319343788954346229283782327990861866558131373134404010877504020404276290496507466846161264205416448728364314083320388714982329676650229916068763342320098414557596371423912159182455301151441095362290258628894221868851113814984872028584862305465238942876356187895647961855004327218155217649662284033474035261112586923257519996326107058721831922742608066876207408261065169317472457948187180223818908656368240218220705280625175038584137932270408725479736589820360970614002741340167204159531647120111674812700363904507688643830713497409864637138645176441584441670998526844393764756734791936307897999905067955766990222491294616416286563421804017435534879232336882358345989844814290840255864179567976446943088932880433926445864107133095038880167935954361018943101666058159197537545053592606934412435861494275088100706218305702586791897765557475067126519511385392087191686011442182602384900559052501884811403080966675551194277447024236034781253085338284164149751011196294820159198252271884976562918930927901685030117441526018154462953790184297470960999632547249889610178970401018135302356299730515499245303702705852552038490210927252432101241865298399980028126703989470513194841283997844460532495568925591977975095573087667550020817947599563631247209381451075347905814972132502582714258302248698943363679412284471071305769680214168407813853623697911222071273269574312442857048901994427658598171103272540533638581741809461006407463890938099392256484408677238382763698500044515989797340168481488631449211569698081187028856148229484707399328795520711105649611988076005774452602585206175190223404220552917874102752047510497639684364216511110408532179477190791871475671217044596368853582171765275450167413393585991000400207590212418277988596144381000298217609828484680970052571349748363207481297826126901213423212690274592557680425340712224512476216943528354231230226687978759385073100398603567162750903528298842444192107110879641285028718802787091916919073067703657688868768036761316088420763832029498663016209198547730141538044595741624777779702145031323230852647329942352117820189851686321216843319070933785517355651636900010088964394265007218127311566582632708354462343354215148707504330550593526331946018338841051043192739662825620950159184996896668607412800543126890928795226628599094578237777985102134519224066805043844492001215569060373736284580462127951626774963308831046281994799124349695433231105464942470563126836825408294587552546254402984172368220110454750130189771217307036934558979844158323995791470272180824040423717188948634261735826960682487068313008259536340911748547951508176746768385503860812091564354346207535944878041124414772727069278128312321366038044130184391760352744768951367555705022535884898344325164273689589934718355780656019790216126152401448552244925767232814957734594118313040021282776589019642180240772714164182970890562050502331911555447096731816358816528496388099785228161158484697327598011261402518139949067381734981934666601394777455428582711504291276974231213085359942311896652272828463583630684703374471356737940001674229773656210511545142257537633213145495580699290715356097876917655379519860123973556512637531442839216326514560539057125147318682323382815146815673357103444719173449000600806859051911406370807830055852383762498835791318682440416052167216203629938148081608672485242334108136167547426560854852289521050257492831611498496542898315717720255219702378551737840188794947024988595617916690157083588241781293392240653310319386655344489273300349174942003654284505317038053077328339209302995087139492436215697187041829952118788849994625364133006157244836119923911436629443993642133541835990589765871346869032712743210596848496218562297695764812907344557903435584925878082134415321870409472867498064796986356826386099275339351550402984211096313525011458623895331885295275392702092175151979279307940104635096949771877566417149237929913715082195920689901325164245963415760541365072621457740108927922192825564097307029958644742142293465141109941468673135047451519421607672064391022342352836530965123005793494286773873887806728734250434716063445705250831554000765166199380313046051601278222712956548187930483486382320158965880835129976086500216493545852159939800367694915962558540900942006933659094976848427569903328745895957428877437476367131036942244686290190249067577202061271026277886203758213390066368308700883151255862479463980844810862835034256214076581210555425394535842559899678269250078725675318150417400265027694674861599119522541415661992698930869737813439554024590601379510927292941333010697477239066178656290797083581930390355253169822083758198482065632160335387959903333201711938730205088708121060080382057238695504568512517879565554365995479109765267407460751719309908942246025895691161696109749800280060124118116769131847047278008521368377029253786240678928796800113681882793433018825481612825506017173624693790873652690805276369722058558738329146490180415700928408927115502888349190739056622325021891112650399071623849688683097753398356766759617168809972198481795174206152289308519676438381615397870884207718754681934472695456361482987480971551191437270786991901768758467166455895382311545281785286333825571681872134243819203265298306822066263638980203275124264482469381889901042841815791604813792769129284658211224035601382456339221342539621930818266608702555281012113918272674814170603758943029344514480520422049361951207473076580361367791917657213715671071459410487774735443084780841868430736317167314260788158026327823573755786264368473696003984592817285367681276467462553169111902585441853046581322769473635949662763672947902351950941027670557807674630045983379933019457901261014210455023299807858352610629548782310296692284738592775951455318444284815208953036060807728369218222575524546385271874653547573226626568761580307863476566662945442766408957923307405533061178545806355310947828249750478655063937455967864677759196650968125005709707738668918818121666706203398740280622762816935072426914939730565451892284955834112362350982635708026435684785106295298869581819633529935609465855664498518889569624910301816723985654791459754993338986457270723734236209020899424557374805020558148919422080318800782791406882985097655753064100119171167969622794902948126459024596180248370876940631623081642876852951712933336307820470638912403411486359874566693806856275849952727202236787021829747059313230401957612563245069997478973197409979743535592229990443650401202417889874106143873521686800858640555976353662607526361320668667474729431581608539572752600918824086154297686011396451873889280801892296048061586480507837447856986766294212696887181865007064919677810165016059308275247194036592196283279400774900694878541464908566574104313327880057652415020467527663678321890369564538708479835772555870092549575396056833686379408500055619208213705987263358037951525797937103993830367431231753425010619796124466093341590215084254530595819152411224275528607048127572468119082657481212263529109908452492709996581573386928018914374999526133753142671672376681608443472687704965156835604924229335650773577132899692231237957352223980859262831630424363956131154490625898752792002971417608529218283030664354193669780478972859413928876032363616018126111237573966769676899973527711741063723435160923786005555299235608726749293030300563105972337180411513986010070662000951024440363372161117724257773383264317819265460752746471825409857750709597167942117715044614422449666482942922086728047746524171153182501348090752724548145520655758044637854942186189154132866832498484244374661768001075466123340242033415098459463333158873716431657732382681217942615463179069023334075039294255185911344093229560913784656749332378617570879871788825389570535741896968139739085911898608075557771209742717017715345851556881237453912270640281167689410028926313088069393502626199241259185892933480089671218099011722750180252336749513648650167027294215261941109916291190675042112975172143317636003208550949754138592176889785106465536115061851512043963192560765821599363830121018558502166450242590187815258228774905869578487220898022231395605438009455940488260256394206691763960344613508227599923419053134122073499262376725284515159625180391498442277523594167530066737657551586083802432651673345065612635424090935611221656059357156671991885821751788637257538926538849992373869992013830486997351601507332361194747538816884949171773101077935710900188846885100937120697572099655271649854722868008497743137900499670557590880464908046421844732931687256317474719112123607282908666162336289720998164216257530117078953000221718368297002316728948194713441831205548716325836701815892483127202112849821795735609583291041877671617542212449826057202887595162429194186177680638818665744818804143898377548595134692098745735728800325694645103042944743902132381619786959805397762829625731374154031085745794999994501195539946056852328750524121011547335179046107549905658224981877872519795775550351258237116215558607592587305591096657654332542882518167862809220024252386178613032120235689283737453791871668819874516511596590976284657756935655824762710480502734468158976411104246597763856257979828954724238763150687315250248619664798853172624835534605740216972769007015819790267972383936443889112886724968671194017091081951986977789424014287300055907705795039969861127192127027936719511751117429132639877160789073102834308547772645242671950333977879539214534615959988008607485895491274888574243175665807177223678084540417913938452334903638714500233541927812319402908512389024620878094400689505631856502550448537527010180500299065491448784888341549258477114093600721477000122229861530309317016600278213402155402447049133266121804482896879580434282239957065956969284741566564573985535550225275038169958080314996236899560334158658510546474009245080736896155839683115723014175613213675606472463295443273465853996426727448155853651724851927058546409593580044383718385205379414497231312806410536959502293396819159004767473578111322403204245575594792527824346838963781135045281979967972037933960363044210392385480443409439076759111345717885195735452485061755240666681124127522133573377088613254365740172730245127722832470218511367296533221946219080086118647248949220085344280057483767717826801875060628116756898199083525676054338464226712591572204391314463027677748346333368748063459141243023688871467352984416166339925195389106108117584354052636954464252216810560531906828860301546979228662925490278044655405911275130032896352644197463249064272352715027192593438235932671680647121365617855211574045737672744215277187920300104009478961279086691852036728356549804600797182561090638943094862386992200448638201151478776796121978956378076845519128498937635593317934579380472486165995284408842916879225752598340684846347811964825075237388594299389384804791672454455596207557094059493564514132324650830661633059463535120652719634695438401198115043561405505062543205628940074294456682988367980289410113948521010404392066331049784040685840414068456977419404768263007464655883995048226650574012546349709104130735719285633968731184849513229552658784381855838240592988459402593554201867372283072613137627736475116240149660349670880460611447159252779882547173429509873503241725961581750214609341542414043443278226060955855292016330851303427349932525178295580603634631821116949021700302294162516536940981281858041924078896053232178818944758991673341499634948553224003102249131056567059334458506069837989128579591044434235390762217218154416984998757926749554354395951060261444217879057031202163317741218731386545737221999187163051209078327647200890235336376978386083033830973985982351522706156101830082425506250126626738934610080742815204283857610501660920754440214510714505946482349630096787520563973882658386019982843950503808320248821929281417019538708444953604681862187413577259270014916007991146719935602239908225884619412341371802734154107169114899978597429651067662444715318418171145902064803753224882348311422811743962137880049496613649444985268347377285870918003274170717993004333238038129570644066557464906660318169966136490636900515502427292724994121321163492476437849341812740697863078092713912920567038035150408919465362160603510462057089764790824141190537701391590379564054972491287202610785953702845355532683699351987450231149091146028588644912304834231378615171070260375568989847005961044975551161819978197071765851108595988888228859544177420679740952970364416403074492487081528172179097098228625011593639979587229259896990022912495182540087745062397472180469878843811025430593601110632867390831750920198141714923425639571037760245294183414420496627339698026873628285828119874594913647063551356329084273988709520491621248938440059578394869253385577242341281531272661520876393415592856002005460431378049562621149556520017012156774179985492674074160036031642640484150059139793447072145764378306162943928651792749819804004046068662879547557383669471245387739009501465447881404919397276789988085652061893124813422835153806125498106053456646162972943526984464979056725078350092395417790403073590456992531623452552379925357575837258679835477893279708430265074849143521577449092245392325404356487154656401578450446972647593641463019318066666449258026429795454400939257984461093621632651700177195798969462259253737371530150813657241173069314810805947266431772460182223819904815077634156877063726430279039289176710475805549134336602439375348566844704604081811262002443336029799909507309786305557485274189318675648830703722985572511606055176581544791588439804756002115059802518012908544054873315634045037507409601134348885063088873758492986486388954116307133869629467616265431700042916882262857924682445773261880523004031103382008778409555683102210446869576459947481505177893542538173723402814837548407740294943308508920931876907481805388407877491330240599429860566557084779973849065636822186052790502771131225891400482434696871562235491283581756943321371848585903261857010067322860013399548567706726159747684721294583171170385374669779188429823015103072153574927655932206979860274348340982413794116508186304796329451483518026525175263990494154814527458857382062547443890248058060910338766802310230093225250938725884764534709306676330984865734638970559848167297149638530067462967988439145979229700230178139810771053970945786940714883332572921008195375563529075141117451979901839829327695047542242300706488614400380818617440352647260121431296419742104845096717872836981109792615270520144714707863442330160170854835326299480885979719227664530594658857360504041022247018363770236165439296108730886559654520695003161307035338286860428007969131530869341966090773813783675897992876988876514212667804594850489470491926343518007874644774320384553152914111508052065236449277614107693018535947148132666983420361372311942627883120435401546797883246405243173396932551703137396865954191805247583054891805366496446501637165434498109787409639547742573459860855175088209885843675499382840104895904538792303073655075892162834393511982104733615333597347015591068305652703509808957584096511992168170130647080099036504414845108745735742512493028479914951411444160215583752063929755238375074999222162251293410795294063211592620511836672513400528416140181200957221039999140374846570000657870742788447619666047953792393835272185474671700729752036557695449100471303460226192693464623871302670581296909739313052296480040154759781152016738589504663719657018650451518403297019742044251653560759568706934111630164754878318433571492000893320097739350922803703046114725353570314492744500754107561744761392315489368313994886903887085266636250430625623120995942797390798924554128094278767457843525344668235855421791010970615577421876810217977546090897739014889595356283657305585913391236615058849969584941423575851783545875102518666824386084674628534261829317092658219315345338023641835096188316619662594453269060384736246650302809262270860240220925570889308197948858630016966173704798970542398753470827573527093188411959501741147677197814016508027265386552016275646594427547008821506745541649135239096964108111845262194480053614254430915541141334436787429332143982296966318637319809087025746528898712962139987477431261761793465722065787375356105164332382478352563554775418647002150808896582439628805766966612875169349374605945634098983852788902304379904634097727682239335435057459376846346792127770816523662599434778909144466820977884052792793618895851551263643857448149836828222877623955734754597759875490422470492168329069076348631708072490167162622453155169068568016252963120107308422405736472348720815316812337086434063258589160741539417791458112282161163543211675029023643521284070929359888819951065967674913353282123724200446171706857461358094354986837584948527486635262692417286617798957484449152675398543917843593055049028460003401411200356864831715883960078881415449464810015913342617182828813011626743342999658620747674629459760534310578589760108472190975845081536063332955228046125506785625304212151510305192368832646344524588808128338787311403414628242498772736301669114371953657934272685140182884440995454671966030131482127598697110515765066595150978806380660191945728434395110120483486308574989484271285284317808349518630318530296297338507571452000785630182401980781541685129302727331372187340364264481112448359200004622253886846138486996394755224236308341843780770680140600568309345406535252969535333146109760960096163984427802663385304839087862921726514381268929088135644661688174049544575157207213405135534575124892566743702107794632969030797693392927317705652308678252418012300020908509496129612722678647628033676542975816889962731884609499865132971233551560249601485004663437620254234612747079860385287515638699764265629616563988419824215900220806171149195925066576369290766183812477836635685540435595148401149444147114907201640573377849794631505904378394185473409056908412473233580186973631716435447536537114082305363158709164074152027485486042216844110921386982729748310655396699614577140715731747991284632027994684357825368257540451741356792141130253661943430305666841965129063085149935019861888684679524060488005603999419721340186339359095498481259839037781811986141059090603806838226416555184973925168258004422789095670361703635199872107090766815175107944853882514339574985483970041769371240140551450257294712938711523736206389377709719899215629097306668424731730841608897179819763721109845701927872470244497444873528428933835784954991725523671020405003865240988199871641078212800954193482281299119200092266332900352190595347408369609242621332161612276874123570558204477591655991184593598694702221645278114950592578297773039341963081848717978970412979032464703978007677920836019270419079959351074838949587623220670301975461096243674818027086211779588476455042315736403481527994397979068121761452974150459650504405683539845124202181748259798652905047756672377390290836357326781025705702720434132768597021789849537612887300406884163231152778025089151726902241430886749237237879108192831264958151920295153299758160245930348298193080957522095658206050943703506928559262525570512066733976057055216342063660075803084841592200485801486938150528112208913019348039534576472209035066962037125662168583063322627043712087598946589835628694622891569765511571020154069084639509904364857430161715211457817933377903334417222120900317399372400587768056969653530141690290030812261714444867037467705048137091518080663152580102615170845573159702538405456179319257817169230859813522236229374677916562435831319423993554758719728860782125726973805961462979544312786071058170320442140043352776980423900086155498640196435579723927601980937777747935565330987253346118636183195233619806298852638813459199045922393319901615141794318650302899743885738101333878432906521708159961168407020057250305520446261551568105361298472970437552777030760060393531680096572743088433620811636056277663815752631227658348881291514394916197105268728680991719870547618114294644982576495962098689679628826922298463144269362263896043663967860781569006275292582977189615084665870977889537308547995109477843917380662399185847834665163346132909415286686961355265862396173223080780050537386734309906853437560501112580354830803187323074026627285953763426103009962093433697071197776372587782296628746610545794973956295205709196888696140797466788356226413786767839728139927967377964120422544313325639346826278104923625166246132993708218204024715236126650411613265793276345395945867696382722872725229301004157732640220650770101068611437413258293580047856443120136754579025119267226273555807667679803780373878030855563810675888177046971632065159244004253382542263451485731623363121951534118244991579321927493223061976550136196473086140752351671097204667661118197107406843009446818275980982201474323274792357733686193731662304711876664102374610692103101687437555691759554849389086931808886047437737738783676659090971050171285172983695967185329849514542453837825152399522926338420895590855373629948051644628582377219352555379630679720307022005737861702634412227371357407650644861416421342153766961875890083741856963620641458790106084540880594752335331650213665269494346333864231562705743314257325886211696204651500531885383832601223617777435073545580501574179343356306217468052064925380651992365090619855442458021167280132185217151565006467023367883935162419968150973796908149423473805864860203348559082747244814618724723142903847171376944971036240230739745340129938783116925059807386198463917148613073022680235821005713766036412416858383280046357802196708541484360740145650492324380755338926511546401292596346541879795734419085062680528265750638099152935729032608899541846713781626804585132179219630779688233727916665914039220541424902283261412053482387554743232924379450003585844432831140111199070954115705142596081936796841348744379402320116817765868438807416880231521599357786310861913782345032164217160084094182207831395133284224010300921779795392935096111065471312965200267561544963311082684906284569564013735411474196534271087938838607103750335779354102807075227652725326901090330509277555386674481482718416624433793595651174419145785223011539334507411033905960146534316555801695222164361049106886434513276574226370178472328214010232020393157228288236759185875580518362085730774464143001278981685677618147843254884987670568529197375412707491666134570365834952197077809757932121633915909538976791200374497738612268733482196860297292342972554285152756259886739862665187211683016326349725929194039102670913054269656463271714578944972295519394035538442999623275695930101879560736313342447590881301480038690586454417884014809043253861902423769961251168260921907361877614041829780263436321633974582024466897463960639111783383796482643734899520226891352366124193174589823119112338817121390339643831252083984439159229473504181896479862269675030560570702160642186111453816747402039985481067082650385073180735151094199625841654305814110874221964700721107177767020236912176352799079360938242698322355573273056405139903979510142864595645775252755910825819622234857425282499309132559859790222498752638598707293597862217102122433686290567191613694454047214842537998848749162218128107599307665792106916525457806238445313574518098434176516246906969597573240008881727269004516985398684840104742260692681399502181216525007117764810266736348604743329206074241350907386978994256951651933627692570940119012426521573600239919057951227447793708977876700105678434878031515476259967532232635894676764956755450271107663927610098461157435577764808531149183301931284318669526983010390354114637130149679405287511771620844926039555905234823425675373257827701765992563765402731772232229751310377403944665281780596423533744355893309658585773427862399897162474425333607835167092801548698291354232073730552899671095623296171842332185879810492254818692733834803040282176422309575625315863340230420394550547857826699708615929908238521642625422457079221846824923821444130990492109596742695937050282922912079972340865457031031590020614599499273422993021419660505150958206552750903611593313493188722267552405711381539403722219817352856567830661283413027059386794788970905884391592858482152416102265666016337707516544305194475659747466074651440839995581515330224780265982412843094328552949398297097614036076040750424380962749678191708491305712598772024253034606462658629083659507034687711724858686597406761724515946170091111818115425815960616547156752444662902420231599420740091353521801977153526360902083256121657819596360815211410700603609175758351376865564319927290524623431182232560374109562819882429841995791162937795714512009214022283678112211778150569682126097683285411704714715308197669612455982361766662609708278055575096718792510289853048971851924583308780447979605084924602233078203645703680866005675949293697453614652217296751312469256258931594285021193172131502299669422576331032174479643937628806279687812494066386080602971399078251568685718924923137434654586442114818101170197279834799930209699551993761170667914023738232659193887325190882733055481617659297400472793050130373798772291603202709684642715641322099756157419707032604708227625232267322892158189948084819886059085175586462005440194677397557043976799525091220934565214533899006287722275524871222104184220425988079555789255404916309160703745370980393460222112768704852510239273795041707001840540975064139605272045836062677259032780940910833437076826531875853055054272940681690406465854819122017394046305739340201641219493819410128798182640189972412803737249407787239437912955756194162438816428715332225957511778170060028926310571092222071482402966629288618728580072120884746180670477000521668886879094203623059928992774895530180878492393236417176998247256523497603610302335961741870060459612906155117164712109928341787854782162699140083819048085041042122346102638332507708926416393077522122038512564200079150696547571048983004445719577807775089994125123893615334660028577518516197810067276169708095817588572891057187796911559205172484441118724163445957271819874583295275414648058009200070384212498524657114491984185946113234267913786765857945671160111145671969099194071243677778920492191652825572735933085273550591693854084160441639987313876177192056574198479154824130652156363579905170270992415894058718468544407258771822084001280870990047629517108028340538470023632271468351032388750478962936358229607718058358359942454193495524671007405603683327384512968642920925998513674593930733400846929404904491247707397503624538862721073510849048478323809013797086723742096243559506225278090619215098902359801015520221950761151109509858362637003476930696616084774162987268285348308709141007130341151960133871274196551095906177565882610788558761045297720376854130311087388651988272845130467743386129569154791551161484445537737582224683567825400762600263806214794446663374145511441090554908521831579301750555469746874321828478005745877920633062505349178227942984735195190312867449595774553511934683608876619619307860257024763394276668373705487443878540643252755658673888004223574679889106492665277233171849834683031531553824159389098857581109734972832142027163841541425864862046168482587985279945956999746514336196687800818380736723909352695247159391794357031485955357107373530950322429479097906970149977793604821984758493491303616066317917623426280939491762335926001179028047607632807174471158483568104293324461926462427794447928194179084487955635590142852229056708665746238081248760671401810295155580294732309568230948703520622326627645858112781085914467651103066632855291233435395733533085496075900991328189958212177510723944245754641004216787285643120498066059269623307981394079152554172949481274822305147631779090313733792439965428974811960544317547337820031869716938962146187483934781218075207684470409249203965957440783631716046881074246309026390679101300014214935521735790906942066468003163425681128986113970464128016345361307178411542533770127414688625150585091270547402647608386834769718774380643128398716644698074267213523852053083436673595724725131405864821761320420277998645096361714435583152817388821565949149235651656436318436967444348773700393962092559580868040747016893024539023685170803082126813382173427604796576432795926361111970377923965673157641726999794200694163633509419409132471715434911181821415214445513833820316069593104071586367385378272608950150683835008219233682118391276632509385378967545712526992862036527112141055186265296645873579699792899911778671512835573998466238962953107980866529481393025110626020817367897391251127362561587123519768240333397898607009751346758496383094052324165229940965292527991692343637359358318882182996464128338201031276228987722375838919131027309630902500318629721933331230452886507060258410648037957444950241417828019188146726847545008597206780563272239739101238202205364521524304826609861005855726860586462080739412926639862453661917932233173420972627337876784390212367746592683210791875402525008729093172535796607626709395532649883691344519854960443114728227398486733275780016095304907449616878027608283140020430624317844688513385740057531356923221818304485225166239376685052962507950882137532994739801573689988396110881763403769059967094878890207853826291010154135309134079282048789729721902156945066699350527242093509643392274014785110916935544856057084009095761739363840189114434081750383384180793072260873499051340769203298036929918964100439023960675828444141294828141270630646338238950761134083723221374231030136889340788910981890872264232444254680401000211263245384718275245785609934477873162528872211162545545661938336177788644597454158962804434643730246018526324421548123862550077474005514600963511213891005559825456518108370349467639755285440062566535159042181050081580237160116031928762795368415082554555731851504391988956940407567308587403596879156232984781717057142035129671228381354204787539195631191777564442140998692376034496452834585906203796927452462968611422433604421208748094748772921377592547322167284798372176873898963933533024535780866191181448554775646636513206230323026462914072949927135002501864357516829905907552521801599018509425085274737249888648806504984131948842740246709028843572072172176530484327591347990593040350549280167822592252176479507019369618270915854626550282725632881532421229484030675478684834251360873649518869430501393384366018857262993582815956614511007743823722670989016314141328511172635300041843663915483258311179404756059078273765868861143537142263693848041697245350534094449508910671362792308367012163011803063141586545016288347281086032857840052363157419361978113528154577992781872200172443554184897345705623248261155300767401276976188888851327062943962594665809314368312469402807675181561711314303554113955263005161507020234967789980377506929687251168103550413001113232257901916265522001994616891915354676638581181526858085965096453606885996485491159998622618315235998174591063983295419185674106487701072415410189104689405807533339131834340153794446826964835848502273950519260371802866366893961710753462074363420371493527299746395528438978906137153830155786786765912666083709765865008217108295126717486031528080866502249188876187905293625257228586748464131752877040221553122324504613970451453888839488857830001954835090728405645552771184777992808359421373024620194337390218927097682784639590551557197700228502792555115536587883753159993970814866433722308413591724317665015952106638217902299154852992287361329046787594402085240072033898597926907581662803277177952639708206967120807201114439226733110644438008368555993784593884213185445739797181765563375857088065020439686755965928423462974643132252460113713406957887912223398187750915867929152750048691524075260682109644094000861176015417324079007644528421121536842861362585133371436537431459768295002050597749457296562109513385814936393781024349379842931224723225451296172250605301145902226114882484599193623393824782669880259007551172582438661838281886036960007621343573984630358197697553405523255147511122963058855820848665887493261221135068342793672061211809702872813501419987795226404039319189811544009387707133535921758067624953238022692147931728954035165974562191492423831180650842876406157910046604008114309382477130190212482622842186659738265371284060558832636103389357292107586574934283412065521292843385654108416899636743997378638930361414282103677928419810850419955882097573383758269509178755218249996751519340232273092204221554878670574392856587046732826160466728812478707283509082984902784752730814369864696919610613236677934901376023551767165097407549653871203442308943833959392558404054666085167212160201499342038928394161666831627920890082323545389771405933275648666602485671616271679728205984686883876558852976567588326070056222495491491890382940845521673593411344274464918807330397078694217103990097389630134312831823915196614369997651334417693725606438844905484470021760593832890608572308186766804985613493362746334551753655095695470611714981303347357754094671536855207026319487662117501058631767731620740458096270727514169475736925496074582710045554767944648480663889983338463243710653850486060249465817945077359040858106392768168279671372469644871084156602979222781169720951020367832950466565124498618898847741838228158589657055651206293960069396987903239668332807464382444169165797844767285916307673866545430569482299973712800129267989255702131301789397858914733191267354889313862708893875382347846440295150958867892103192251131176398908739145921183733620603932635339379481134179623709220472736400616224436622003730980515060775039146776185044963704463296750500897916452346212943437984597880625098406965797365135054533701976137894987398996610265994650955359913162985540731192075139395954827578440720889861199703833935128780425740962650025719713523153075788328128872644984652637649832289244409437842719617179402456647934599910892578722684253049789047358079739826047960782656472541031276500863988079672329938312285503381332425246720401772069495569381075766539084182839965603536571015342386050160762911848033178678225599516796323490407249773435938187277182593436674514548428442547510013848890685202723167483774823445941103604955483302757098463579609641249775709102741673188642999609512218026609225952753856368641469514203661342116299358870792563259061142138487533237303754021155852290764773216188569475844351599382725844010150843272896704248264794209677843805857037813890904801564248593255902168634587166882490501092639635130535381806794854128726409723401119442180117651495572578776626705423196076827904312790698371436779767653639296199592368774740443381258244681626178415969614847271915877260098539922047242927180636225168484030669327151065374661861980328609258137185686447807312526133055833196876227966557653377026115135628228848748814686679804028994804012654265899199733532801421424342272766232667020124077410258137746496319219447381833508682301104212074090357156647871165581230320370911967873882303345951164098556823472161184295327533795147641962324987362562474499686648579878551119651592511710552100890415724953514942260240362571736027404952623388769673515814434531230762221801182890583300414007900379332032870468438043793373249612629470043074652428534960834228670909013527869330155227732799580377173357973240355649561277713927690537310428845866776191143281403653747113687687889213662301459573129652690447394544045116684122028831256285938079525195128269867734391772963521792783822649189742111411434734243114745250185836929342419079625002564246027378276496262628881220875880025448874212268347930478385587458185609459147933218714753978547446240618257160423267657440291093476899560451174103430948818772614288096091064635565320948288616754791084684562184916906258636437543117329543902324857222768905777832869277658905554838829889012099571909355141813855262613707366197543752894618248339939523891047773346849257711684646449196097275565804276476983219764934584510569108620860782946136144594036547253532555023947538592908816941496711176889161854972374950597371110028813957214527968500100021066889377456258332869996392290423661893547045851221352262474880668004492986935469927317574108732923850375407275218539520052444836207315392653879045774098752729878568707253306121962036428698827235710948300988336795703837876728356447896606893747697577865639671768010281861950994462487664085079926925104238172612383595066698068822425124900912820384301545743149734758801734724181410875959525924969244919982982404784482797088315567690609504822878968400980740576786690458934056626056028439379113677137422269967909739739943445044348910615328602002479966897883861742968709018801843797886582475128411526272786828843731573008315128153317143411958666801574260186470746596308711609744550546232031719945349015278506841949742570210082886082925256103846785291860420364110006370584528754099514467016036381914678888650693998792721958641144991982409388508059476393209793293631328780391296065246466068290170855187719441127025445804146653308545738003210160588397843066739144254251590440041080082610465113136424397104797699895904099796343353755438224462574397895166690621759255998745722717363602157273343628153280593054774965377921055029954227480368759466571391750604786321777135188932107551836086157229517108690121948038579559523595629048110147754753335709652753123203277618021578403632045989661377499398077976948426658648715248864545380886806671885179659380090441122895516585891257757480610123532819903560508480078316692734283533660512861252240351592162776576899877070346637521445175614324498272026998246831466401354476766332062316272076765121595374717549004096924243442607504738078696424956220514603484861390962208721788985824457781509019656162939448941331976409089077040685660431316751152509830367847552618616247406056893059619898331005378279160630056967999157741638685261502005354152450638243354020903523305431767397432723562524299881617017446956522230141594470539444309102587843153389571501657390373475198838405920376319753289121737603476190399863180893332566444026908145638413696431934368591792356950600571774910107409801656724120756411154143680143552728120778521929459227801300213596103223152035351729982026349131183371115166406887251369532913363830063185243624059820960083516253939025972792160136168219623957887413214087079458407505540229050251485048795936013590314765461401865406997853507247630524859177204623683808392823502492443559890281605962031896621915482623820120429754504384384269674823144493255297568568717725675981551925832572286105587515721499683954719694983989807059304419226831416795421735517239994027708818225724206189816866836417708854163824354270848815119821012907431784242909593469542135119348323238455435280802084118449465052982124255736387076488336123161509177505514852812814145030796042475947315336050573636706879844921088423651245903346796470681804809048515414483075231397192845959934826163636250616022687876677794469429954397498298846820802850142073617183752441516127781320544254145707617998331939338547640401693460906139521188744245815258247231579223531507003473870494170182337956828650803360276660529897415463039111818059935920125768431661939879671993192406360918562783731426062805318623025117390279891028965947075438093458836803286535020792049648715903439735840129770433967540838473356769520379871004851418035969828943346733242651754683885241410282748722167920522095278251842235802924911981048260662018426868334463530060112754900390780975580128421320878152660789993264183898977175906701900486651998222826621698580808951381540540472765275805900856086184521940427189070315830843869471957193108375594990478434798682601213315243690182221055233159819658300449035605914488586936364127012002145078796001049849217339200646171256580990441760701786800817031747531659119762106620095883568547794631658745014228749062737271761200141100873963110173683535496207538118402025512842371114946505137101447621962954776265478119707625454109397069955854487951856510875193253193535676170712467999088369173388690624660013407838999507331038565512893792550593040591994577436793850520255186256941922718999836069973317196153141348090662533415328369021290202522299319100802360544646051212083295962854692482912492974291473881211714479497007604102592693783173968542452852195902039702105540089427691386432140552231948980443459326115452426737566038449266564783830470722465917315471753205733370106915019798017110077856590015784690919494409160929101115899483084393623881443253694661525887635820902812968362275535156072733236762670169805097387398833756782004396167284894725246131086783531932234513772003566824533672759820381805915166248598400853447122956417692386397892080119694025518660761811274946556238062148634435092623752015939235417037467329541747249067617372313213527174781509743259763508206686800088024131965508451250413834450157515511236138081412674266580398563438468990131760820922349778433571828976456651355099039974080280625387671649740046490460964535445583870059177734768225567075103891660921011056445372663657400376684856474388808766007992310489585230478821758816264095283133121152568164760281540490907489743983679312018450293346867861715641168178045874500600737620199927256280556048310166924088192932139854962560005658575207080573970552901627596192946155631877566069161401617284597250453320137406431816465975817227937630590687939520462148568889123251498071742964284246028703945364027991603726327310582750299216467120332841020142786872700412711972762172474533712942386366070022605028422667868009598331355180594791457666026007751884394230906815730317551985339040392056570060292053836386258083111022176843164342234145153488684641890705251942282253661617843935717523095890208879090179495893899474732357773693543159411778921764880579296917237843057201943279822764436269159242935722373081518923893247459396356857980118357443495856653699947552935169204065687615205364851710878270372259425506686508814490793452487301944930192662135886111074060889782001987866265979271031983911787143417580448188153957168316902527113037721798189529510106034274784306651891395100634106712553543007591545333286497932524528451990330431833571000771747518799233412840509965263053881552694673202059973970855904776476126217400059981776074101031011341720666757516254843396932999838580673888388572092623469480561223113835143114516919419397605720483397118765737475899057024986948371383306012952788608688673714743040227930581229472186707377262071347484886282820708506435861428527547275619078479790849717930967381390789278485542011370904075670613265410294914931876691732283396862288682230962006899447468376326753275525376995606286754894787830381429531288216779599256681159122279219562948535681439618330352005267675151602786689191314718343774500076346727665563280485333673682427866636122988095247919660471386221528741948782224750465474177474622463536740977031182399802383424919085322806730659459356833544307956693728587332063940920250285540948370238124947790382578274889124081981463239967603491663698215756976434358604659046782154719212891253112029858314061113873661598559022135244031095260081074830129124701304794688342923638887708341654654304541090747813834213186415091182114521198825188571527364074611647555352029569923304531647412057953778917945873959228404444167341341921185981806077743919035530045349699643281058075329362164837691389872457829451211046396341765660698854312803191924826517442299463353298145833916033663152429355966665453190293096162144707973794304997237511123967604574273604268618563387507596336613897004852342570923426388045893981878650678637433559295921094341815480974631903989822351688835743089169449996910096033757605596257638120843982368716136034557392410263272500285615486894774719177686481344219480568467234549972257585508419847109795222951769967779772860335710983414131537266733528585121100352669837179072901784610849428365119161890422677117104927700657933301284459657730882455088193575203754490319923413455976192762785339373900429684171038955451582752724823713781093996437943381439796887539192950947734053476529341637728419722100249567009433873995922118714363841630507627244936588997781589064370830811823696412883823887849137738239090675657873377322467169178848844092640896407907449020591324772388157451662054435195928353209882652858882071155418812534607771069305039942444760216502874228366479407896317491829242011767367195483613770578171325879465188689206342215486171387375467543418243957641001299236770387532125251503863733898230492817926811001675336809112399165265469821296312402581683168223220852675779344870832433533544054976179451103551639222293470167307451403006234927972154687952493672731452722923699947908890969716936694282350394365590686220537089020300349442843132498361973576945086352551381652116409836077053849204725189665693074369468187821919473579584600610724603414483440121211917302641235839995784048583837962340514867071863059322241346941687082202964563629774233148835584236108803219193460947081883228202472792951900177946645550407933603032771888497056651390192566482339283197490266602689081546465744970850337649944768315735367123144786443795131797225619048699595248688559087855473751432667504866133513643866402075563187828661651225170663917480447885259252789723208971483039574611925477701204467689945427713118096647904952114984034647744357701809423667553292775306212311743626862928644376351893073841081180861471147038758453180139277166065983237575598897020891511538024673700050796679031598967281538757063308521805316905047203365489889865052185565219672762560297358554837790296995675886419840765766003526351198896828381763904503115413112105394443049343342176964752214485691092288103917878382254890406445173621670887860083088473802315770373706867321572557241313853534861375063294621825072084443679316211169761593157504908385622443742833795315824402616476500111783654094658827216594831954261448588086639867965136562207811817698732821315400399800680064634506756853000348850449712529584837636504253270230386269991393928761660169770648411878529061003933309412066618662822739840388471115818771222134488114325340529252885158323168665602445512544744183663758598757059187523119179387299103768378022236469280408862020316185109223476541769579920586662833896622374722156846883607556014161925561841622383353051356274534503744937839046124832981558346146115480092677305860679310168150633467393674714947397139408130227642012422964299471438961604771152945053342548648577673784082355934111985704962405072135792540215949797101563556520048559804481344822354762231943450971773972648489264999526433889278230057029113658833795803765334851723168470617079246638778030398716163731014212631101759735027665057628015985142783373339886148147690868991316184825009957570632483619657052716353972087229797115526073954479801069434760701589457282200016074291242835474540537846675947674473089439197466475785641426585108411719249083739352846080714886658900945618321406079453640667343929312952721351889027145096630130004584236428535680432831164552069383005555248348604951515846927627199983469350199902820877111268342813514841329287002757611091702649711828948980641875486638550275421269697854266091368206565048075137651968252724760164452681616259252849982827895552456307440709142712943007853588137937139915439527931430813236637450767327810144458661325985806924016263166905842442783795302260484158482038893195245355855736157884154146257654999608677480226469533330055085659421529586459031163436899419940592427517388024723563340997361198597831676889744480622010194579535187973785523097648932609025712633468588797024214036355882916898185308961677206847292713697439905617411687292122195016469620934188684288179342689905391977090321503726164203317583951083070991234270109457068941924666310115499699677240259757543749056150683767352241284047072902256302618195686028160408772944424575830346060780839331621603425299633991398187795706031547748752050807070175135691526269141439430099177669628839461128645057348244431403386040758322736914083592221489050245989071763152122189584103793961846256807831945071300747398511577497908379950743820026918689434686113024132615931415962379248205291226716657865449103765738890474777187816125177107188101195731937291111479005638470787405366291395013941586189077010025227976264766302018306337695369754937343225631258599558639280072431538247044791523267518822387023746594512908496519558457745889805503765428622174027285335713374456176920826330785037680974843507262397634521577329936989089942982743707589753157111939252038245618724755286129417611220504173981360808105559426158561744738156078569734020875294640655752857963155949573352389786589751246526706790935908849457480909260542348113296249041063576758736033436488296678978632487448313905518879172310172846057742662266600619575025717816849059924940640144788819318678781643329159181076550948052178142607044667973154581372972696837462225610160193672101580456551944012042232067835272541889150535830934188435233835423671061857620476236194423492717214000411810577984666592855544638875254351227449190467337371251388859106328621251847795376622964051399693202688553285536672234961034048427258554259614622525278260216946149742302857637112105194109458832644435094108662575016312363988053762272705026888116696523028237815837908350027669741392193971345642809268856382864510826513525698371882642835239172988240436950385466314856041789898647112529856079454309199934900434879703296546851320155720752505348102569498104895165131608036810636543307735958277897153525386388315715714881579108389669168824947278561935284845894956556735766662283588001474673802120884869959117958524170109724048489494332524366984727723318344744696782938709742052862423002252727232151539015632457160952944571774080859572820208811878554240244282594057498997772854915482914218316649584339212216340773094451729716038945018787739949176011568764191136495503086086234995481308775902918628985878558240384090121694412089389708781525604731413716508474426313662007236078255463339101294760027458572459119646231798096804026013283488048425539317293806028210209903987484366767064156356602321223365366774074475668179907531968861113340675950060026745289171769286380850747579222764363968322587978882963105222563183664883317256943693175771724499965044385142198747444829492832985271740151047264722489817550629187240433883774359912741943883413139420516102503880040975508033513613034404375814857416712678973441306467745349884938584935207073939386992459204380405552265770488525279618211291788918903738147582219168155360669687534381203139276362715205367943583630035151010674353451261853830652152526292917155609212402077356773039372223832926951357713473727641371033989525347782379955702326298593454771862989559631318640999656989428992739206918938395169943457674808638165525235365839393408092348226321722304768940320607230273837596504099629902655587805349349119809480197816376760430586699785142417572558418127270622732027771429137176875974052008482690011942483323406535281597649484231477341598393834417421890933595963284232100114687438898187507901202073239817038775316698728071478997670498922761093707648284445736012385843839285326898538861249674464436926417031915181955040458794110394516089740146337538191715787118335169174943876964192149732420855052035388204777017421509563243888008130866978304169649881195796601550168465018737509754945897470486171251005631301061470949606584621754178132734051774755698021561108849243463415638969364249531782501120002978866686159267725830888140649008715259131225714949922512695645003633796413839100565767110731594443178328351185329686001949009030152001598463149820539254035583431141587452401280946064949878841314032240218043610520141476687569207394876063210182510814570505485595719885761620168797354377811004086234545251548257785618265203815247565396107053741355391032767919944036656685025179968990314257947703867952506020974189006390877800408926921629081428340773775340049243285427763469319141651216665515813403497137593775069737496527840034029529126980501701876615448349471354159438174670525652031606844456516115400158186289210847059873617460354797837486124224755337606388642217307770546729615142499163992039388556017727493064134962435815420574630814752547389906720566242039049320638919996390904178302919133461278696551426566864058482092731515843061676031392651501456602467710337756251341490924367463297874687113898627708305181195367718628356372100796400185675848360434954199743887835977621208938909186988329101433076827825134754151098508221334503746888940661880255066614393646129223139787591763798779485610381072033721782232134712459662490940804021412570387999945300137942389257704703040461585596023322829197240669496909557297442946524728994241170400743821560642175896750697438415267466184520868651162986595048153456672364062787875734158928820496533863691701333883564856751131257958321313468027861194294444057442253820010272977209157772666498722243136788162948873694867104719623355094834452387424162223237350396206761571638995311796549045730724548159060594479013136148193470650492186236261031102757857283374455586065161466652200308132334230350784317898146106197801995971340927382295345014067009892630544700396823024688393069161007796429498503917778546255357308071317278103910731447892799312649851193046918098261716531885980873295922167361677351367826410380448148346380161142616821597089403626117014582188499849632414004861119402749648572549230579242354402772613538072911876750562885468803167853097490965465880942824456633660178017731043616315657255234560005406454845698839866414118350221632311492400960531498255324848993429454916336905802778340473079884182057366599965356098884601419571287324666197219147209908954423683296603633414561858167726549717384748011550752631108340625142202085229881754244648576018401572263574970921937851586045125946069598106110398313598277865655219980636881424167009281498044300051183803720267171306111013171982758178191883334109514322352804402314450132339883142649770987785496703236655159014442274086390249648931195289962645752500982131988202221189578627965446913789714632768937912028653929856682414861044721630093307858893210684733365205241980315483076130114238319001979833761877711816549181946185166195567298295289965313568959676782981011558708704367121071118439658280458116989773690513852061467660155306636131189966157663756066970062186939039162292378971962106354008230546211989586791013813532036402395871147098348645787505996125538469540686831711647932423689064843459276070875140565772797312102303408176751625307908895326219644031439836266059239109461163997436675412389906652498634366348008257761272421189887249706337098034584865182181760409891717602854614545281521718989586960470367608690818389076388686505141761003628913181327869865979820326382926000019109342891833901969209058864460786556840518219974296148707892755879685708502615296187931966175154785193231102872060906078455169780387785372106252527684372050313081860695735268317916503739567501594948215148852501547535776041168867510118135481785520557636136380734838925463277777483649909478663020253078425837882619572991292480613189652651995643242976733036438398238679837087761464473127156621598293389973792983045732014861811627359116309454224424299842139226056760691609497681479128956072580147144094923437670611659429879718486524952562241121626693298467133464924832216735043572465981919925887155463368263270047628130611703112882354271686095847778247032826201091983262005496867488360697468115039774502265362337268785239174981141880787230147629681669558730613815873771956214996299978719646534118466866408974866836322363613947836057089644647178039325946692231147054700427518477250010940853443122574816783739563876871174113281766062891797827964530195767798991025991200644221349460955513494060793675099309247656376827255435534702540146917879748447323496097384720541466347973808482939613385035694023115690530805609211688670372469858257429682444292538106786285020600275981782001155562249042381738451421380004386997948951646174939790784364579798277744081987788529752879237608914810105684457025215419034578007508750547101591308538014895597171474952764244838458414263135234420189771007248153740170755923274131953102988609896907882743986515273639700807347325756213824988841497093784872959624495236623633701158747873100170626965917330897170853894042510052439129633913738448200451170286083757537610691764873746305775861649662508474682299164524897382908073412833714103920800324666974932924393277908079708818651654955125777183491493904112207948525384837949919303223328229749657815206426968150275359392112088909328352584269841078590899307069829749251094433588365162532526905884006965001494205100651013273183097983832575235937187827611827818146418178965551087708634663363694458073693548564312104318930343559793763766747637237586202904145221127614247961530870640383940403256360994824370889944201311001052534934331633305390843072336790754420840386735376240875774247498542966588607073829519989872074960373223764552811017512352870937141210284735816445250646327172599238273528500965083333895594267120271436342811787994176666380934370282677645541845196230356096315138869054751803355499911504461905332803347120940195879759591447536247623359747954560186822902980966535495496824423326355016638244874532464590199365969864295670374595914811275256152911362952722006610253005059907262926219682714057974700882875260441780768405591420748409122617502727577255656651690372847215317196730151501478731595599185228401022639735360114801764545858164861152406756724145505608835076184116298100459541355485813506079315469973932607805115072543162059371353128301982349383250550767846660811098513395873218345648295036525101010556213102185272605095355993431220756842981705097752581890325850812270990921229009818394076129054995316058356817109941849465291946841534029206151244044218520944664018141264456585603297167001334025913835936426676887742288117755511489953450679699410073858051837481603564618212808644764904576372807941657112659713940832513176139974859693821250463557466670942100462638297906898984159795364575834235589014238563183031262572159651845379427917884443202463634492866153624892887497966769608146852666280813613264546405357866934947086822237539165493604570240340961769586930311245875480669455730508763014650159909061235073232072668009553499969457446234891052976883391457723969402794366993999982200165410155104688929774587891833589334901530706617041082539254975073707381806429256562783212347083963329709531625305177611192388052484054067782027041297521064130515294063750449868516026191475084956570375145101659767505213519483785239369322459216047447209648553833348345035926018864132509123982170615893166342041217263923935749436853915073959348077979055983543656171118966917401142818754109667030405648504610478287239523649668304361580623126613563903152777485967388029237034319801005504041127299055098885138990899779915994864701515426587489993689259439645522869249895667895306393777568939139869541447529081890140564198141400884569775222426098094425719960822474152023663257722471568755073257637400426288145760600323622617628810900304680868124305867561516372330658862369194708755020604458330961573233901946238008912746416430946926019074151686757956063458982309909034328043225110806438886436412640155374650315346400822616126663943111175344675382055410804321348598596647939135644379032553878106014630290648580052081429029693931379544376365658882402188634458158339988532874437864086107799531107886957728618927999788879890924344081809471354273650337672228959913186586917569898048472689590664314344420252237334330490323745874744757986016987441397366576180655112706570520181526351750227087732279847746639004772142875752403134501013877025470729573538663875640209745809406055111924695257714681838125333059201524540123471831119113403347749132079342733479723832611375171372192468628071394761601112293187160945049644661196417410623145774588038433142348167760239637861801968904566158263703384399279142911108188070827187329804343713536507930299024644900182198224502381106632266314812154689569624329299372622668050558846314346393823486684605266451145360387296081629239311438254110027148387362272278310416423992208097705842663624310873193496647251415887937281894621124849119826293970562727312651746950150698511005633343348373985440423411888969066382747945729876210080167027715785567833599538782936204365639236751524972689558061510960144354217052867932746248337569229437259440579139143690764102556821028186096861935601105575014680817735281879111157883062974698093746857870630052155887691940478536085260055564998568644152678655389237568604243475022404079363963598914396763877404863435952513067349345193713174743157770113310403688947593719704156807025261529109197641773000944519404704052858381106073863107762117449563272010596505617846196754431840669035236907527903706350601732647958555484171005486364131068972247989239408562632767200237695124351309664593173910377134652148216565807907072591976910634159718010332089733506577084796016657958402679787420091408438851133721157604228738217464165572015594237608274129625081229040058757950285988705670081385604516491514683292307077506926033412792284411851137228440236999070729904616261500597441508882839439167783179188151131916740170938476755144345571976352766920307914127332324340622802824239083853852049634983490636507735833025769109934719340593434735524248295480691617015145326585324968554883778308734682506668623855073375757780660211241878251679539797496290199327014033032206612259027621267958707480062225862554851341071959355950126726457496370952516765447438483426775065316576935881194653025319751848838186530457887740178558222835715713623055123641125084225510438682521456363889867627236861019251407983122853531004848108215597836138745046252287495031398964737349455227811878225913381587254811657902764944533127500238028912119234184960528305454291295319342346265970173937284050710253679925933667233620130713332864513336464676574849381941671074233636629690620135166265991970681847347597768832800528017295428139823525620152858168856814964987627280586859094767899972712385286652885647131320492446236490945783533186211249238987068553512131297568518663441860060193166570989616936413437867000329960121242722642452574705967198582877275418038835020013318787871486664252297528555436900997896617157627242017020520285366452562483656996627895109017102484627607466130009982613453736486514038952905203039944324252650303318153401282202371068443540131636844639801747139178947840262576955990815479195094046940049624024453283710529199074832002771206491925544631123352435732116738037416281342773540166851160171110971536812114810061025339809810829032904249417567392378115727532154329378529938631771385210199178444908855283573740878627496830420185985578891633898492809371998252899025975789196960648879551721778078283436654518522224524420209820504710817086232323707928253345778351827898702880188605730641947681846040708089720657002842064697601924557967754258134639626243605024095959806813352975109181884757722666011015059422738304963601822948933317738870098481857476628152333267378194256193230290580269748404435049245657068499536091038602221834048769981636151321709621228470899400319975729794805192690587128235927251196884932590206724168844974745360771515812719836470408190691941271802776884122479271585214900258152328948255500100175528676935320445257531967903949733423884921782062396133581293322190225920675493680315978399550474907388185577483848278475946382813514064046108447650584063797269733050758740833574201071315758856549105229002093401925909612427386356843638887380520060043739420764693143516422670599388947031413988541194065875629614393154547163269404485251913629624809001284356251608921879638583280866673143654476260057211906098913538391759166538601817162099488812663054999473108246194245848647403646113316419386251140076792142351825351831154126963704496528828162057638396915029015203106256581332305400742913271703740107437014263099343632152590416877293691915025168754964685977512129931903671190193054599594664052714033021046502631821269685227807639632156397941572231024730262172678719890376519267733448897467493364615211521611205704980377378718818300721762909353590938422207536640052846829904186712797006492522758809558165122768610879299901788065444382629483824271429746510190902161226994369086396197532411087093679886524861644034510331968709289081476045643633441244110001522558382636360634025833105248912032945298905743134174611499184069053070906835856511664887219430545128323151019876723125285938798021948014567581791014108966982189303835518563414833077836675044332128504873152764060539213066010315372565371459774601569036196119015652276994218937723812465125439223583999133981018172330031575496150667599431516799559113958418993984324435905133273413526314437365555509175634439741026275957252722467183564160423955126174667922934637324972587334656191584126060309733584326527118995600556440106649757511391898147966545842816582075389762868535498153084531658270214640744904750347268864419570856690740701325562890969001444753813168683485695194412128756206303399383209485803240125979421197839133607736846387332552901611971500559315212430074722834244567607105069987389351310368177889407489269616076058206235194987515990244701816664530756594274455126578391798117944967345228012981602331624854204580553452332162435558729234673245758267167838706042266510540042338630677020215910915021720089508134574866526587375248436422970588438488063112713992387080015555372761576390255404819090398765077065848436802856683007242374614547530133711787900055096565043791369608532267715382550464463652531269647010497276497719672922001928623875252142901444173497938986174875886955289562266046347987386798520674938422115973614506005519062321772047514902478206193465633722470987771552154752110064060932114702241722108541648956620939581805944760330286946337707884589531572028898380371109063932182090512166628907278309056535179518045437450263689705576617729244582080437641933622022050510091647215809366114885176696981826997574557223231116688698231100104816974337665170455399420813414642189646806715263699047493813072212876063768651626093952500024385333785943191999378934753620081698352651986114221278430677443852919735749206700523896525300823646567412326878222297986451870161505245278547397125557663212340654571376493875337371846971382530385874373934577220507005007342181322180307290240503778231950714280124692831312760610148210902754099504682507353640958681562992490627894100212105718663791038834217530311942453188122870383563163970313483084714585355370770374376663912447887524560260005717157465576583243386670518334927161102235101749007667780924761539894172706975453329694835647147370573523562617554185186244615823876122550945972841790441580835795898250086065544722366184846712905167296558773957988686760443204721192892564365371024358950520583962049516567692496183132754905953141778349119359993306717022493363751121447673881239048035376976194462157583557292774953404509313496573410393470257400461141856742308878623951901402282949372748128738781087630430010431980353347097694570537332890739188010032174849796625006549297679475323672061934607034727308542799597418581410780199203206916119391244031984751951258748321296688781133267602892834379969055229294039966211899207454531077939014891355127179459490066499734092311306931429708060854365071715971753014660662606292363074936429474807226804964502498409939943519332386555792396669255006661135002831693435550489673644061285593280079721848562420004101304979154076331373115047368324918418121448266313112731790281941050812884531980329100860948098348365041247669056338693494530478469887090485232673136752367072237080778283559610343420698108933757617550183795086122872504462713022236339773142304422289735959339727963255716151703036025216049545567854753017707901963966768748760819974068334112229435917325371580490222042046482679126922617751676543892433185140922286772128520133646693865331634706308654562376457219448518784507456930406853510658195872126094759952013034080435513338560682368659440786861383914239159884738335204619542936182198419458191008705495900937807984224043621024355069221104364589264199728782740213411111992492115380770186820040237044627739616930824462292901034417627228872464693557518157617674712885643157202764951668790761647544843769542583026664781991772450630317678244018949484891807981758920006909838445744992126752333476783367041769011799335806890114087517670656664955602185826688597265588129653990937975654669912306306199378130414550075515783231615966045622569033628173129709433646096313810428616788004591941591976177726073386206175507336615970980213522712661525066276738587968618453075540350761965568999596457583032086815160696836196828528376274298961657221167671115128925919911201510655500136124366363370680469150307888917602192881088839968371840588058247523105639251521871403817046517341196968103457749695649781648259529657313917505101302833376246934722960940743448450885458991632150237151666200577835022704987564413470598593396759958714633983117589131588449864228724634843940602950895608353545959040910497509610605095799116197251848639252311379228852086588015202004724155768467926249763557319854871213807754492276450221823229955916148065648712084463773493146473322821429709907897541118027145333158083142338926019803551435380922053758684722786587281597138891276622637891807938245273172215273941377780001717271815330559599966355262754137482904377130147287934988461298909826453755759476721618252676916607175851099795623202498531150551836070301573676173656324460051844251904936463600614295363800369147235549359449588414911781431810283455458194385782193303786171454260991696790383973913045312856174894235570890646926067203281342499695183642128208033795137559843114838649087032879968221056100447310728905467892027176188874367393171626552759668530398696859324169516732388601561453831483604178918188370608120443719462484756253687832117422589010476073241500578799666326850557238066228739917906796892231293498454877188881198183193070282532942643517257237692272337055460947745012661595617303080546549586116509603278695068950304590071964777251603728857661278611155877607174809145327981001706944399387816488968798925607678954062840328233870319185581381441036421117223065181690807971962768467634308726546909491135382796938166429018743184883356602076546097195250594727799817376808280154473423930335613898491463001165581434628415612555220205062769580057966989876564117782344654327745987153376465372304409432350521671427170265744107457257365288741745534398700578880250752669671065108245366692762360728612821334876181765001614009720113555703754838818488273026704454117322718330507473335462294920857092942737841954518199673075759366872801145505904043576717328512766025997260498005964339254269582661168692521722299952582603031134218251409643342725580192211272695398168430337606152811623881355615138810897164886904882996898461362325299862507127368875448864678895614020127768221471075109514052331104964410989401976579375866823602296010200760648112356149800927530120624366809010566652716626587914495852757504467878866787120280039833425826498434234789963281004761235229828404333011613756462414236841326927196127930061126648261206551724363228040535709382631872341382708403691279957169837766855937319170758019753732919628248171209944969396471514683857395017403632073099801819025671163623103949661376628533336083221972418818242410394846949701480759537021074251664511647581124859659829916456418338541616807765822468258716751992607586196728851221521228713619680043749195822915378652776919475732387103743297912437784186917230625385043591884442931951693911491247893379150078952816089053466762205058439010688250266699031462303017978977521671896817249473549593071029564905453776095394968304676229024416674400199563148765717404404672543761035775956823164571772724005260609257328284106509053677086442120634353681442484344608432449194051822544520142282048419938842721680918293873749672693705533664711433895013280665813616833117406743169758451282536717058511267246438626828679875965071109383509287743011399922777508502302318177978794294497405649759814472990863777198228036475931838651325386624912466381679226274101561380716880878230010315484061291897959197304913033076055977499488142736272843239242269746788994870934704864779794905589452005793196353218001333728406746178141580679694381280421854763952837158025866022856777401053457027104884880251723777326242165150600393238078564821411810898144840730655060883586242307192667374855038156654394402367179765785300984612339016515465965576594567589584138719550080587670455443380214879757593166677286590869794902851751454806168840287981097718967294626581000115087625984875986062816783731917838954976870570669473307900673580777103763327394915448366816652723767060821720481137294482402495177605091246239195259985042045054330577045589754773441960309962995657908897272152804805533257808675252162640168873815885354448469039300816438816264850257299894183280617585759846274020161507144091010017144422080910674608006677456178537664426600944118138865058666381399185058432340267735998951078926837716228319100478592273992687176430754827915552704698524425117069224421947970622746103869318955364087935725757160904562033847601750664205314554607298527848114140528487450046735870499676365294963646402018922959807454209673664207446094781553271766965125967761075847606884917574212304381844214093013254661552584892521941693055730322525225938412812921805840003368717867236194741465095955763082577581286665788733573997825552206187917124773807055759602087621510887049875874915352239245939630045661221819464193192561421454557908577953759426105902510980935771146994735876340495488990667269939623578232326021812784856446941011823862450663875429578386317459215654592057719370417712766919427560430698942528246251271736933056669917023011549103493079094927596943029764270387185619321532395551379106676879379809575242373233890834336010144383509378975944185437311257671751335873227281446057675193313916338722481167598768874415287534638460014573010133840452220798421997433241032016660170364595425954013325836310887500519319484211322551186822503934712517343024423704897643035860855072440229797605494705563106030669493034066962442124470298240122182300977479699317133823939180379806361262480448456861283194777075824790701748688618345810484036083856986474417017807709657634236676739335842257112998501477045978853922464921306254437549289988452130049379552447482212998415704042215479344904007397454420479998414498482924832673770795413508302795577477493240959916984752791435221935892088549430470438563674913936237151688507460033386068342863054556085788319542059235922004894726624043260427398492236634098738826892589318425839064169718518554885217566158333317196039167161378061891368391908378119473699227939383713829355723839252159143685564838710847134139359001118781889960807159689048891318450939801448405030994279959546010202853949686778135952025555765025805414669239891949176202601277556127223528744424795749476213795216847203274093672148963520368354310967765862014829458551436871029565671813679077255977567267991751834249304212435696156830216726811287178862973019064835375110223347336657707997149176885098361673176830664463127748591434129796111151169033271355509859959794147765777321633770295557033539308007404208408927477321785682444250785595717133417065437814160282714042090812080495710516399409806678807044554328857186351913833586582945716146275865255898936705075797851323822984267207406133028115452773454582118239515696119513644856298544601956521051100645216040193224905075526289108095866696101571272319161575572014295468403160168362708826876286771214847562753449887729725827494955455185142529827517745448368746461243425752335017147590634259153782562811149407077500555585524560351246004285891340647889380911992545045308610059807207539363422370247073199674890570078470408666237302336345025560321340707739686594135230821634631516768771929357815140512949012881888297136436528354656101374603945402775482176579432143466469035759230528181777158955084700770840644511036079537419230847885246775428677618133183931761847376230035529161713106043442323542489394864292284964374759783356071141458428336289921592185373638992176147068158258663431902189850887841235466169242991122452765512338125190962247369699521406304295965968572136448927078236022441308357953230631341672400575560806999084414826539734044586707512813844277111725779276812966624471929224053963623413108284488768847876823633458725406794698931978986904266568446537991897339643633138967005956952466937343008444959638336040095306740353881610520083612322790418684949481144158481256442196168946573578428342491545421590318945431647302515622171729017297520916930481115524681934697014840380510976213815102328078118427226974222151975323893075491169655095145636131574316093664522741708165789211744768984087857886248569498872575564114125417018004785549723416259971290297854843847991713681375774538878892847657652065357968447174278010447238020111095507001774766198446707856104858100723346413143385800403504878691145800262223204993961131206369809117634252953511032214138138666969475036413678533172922371791990561872134010165694371197624122251753915088728278089362150923376579423568109722374375551494227621658448148833631134454184107322954923547730053857884395875346194481609309335103983182200575568618006702859899166120399912277610348290917358660559992249524228338152165244027152340381426634948744718878862584739348919274293657709756335758867584793196492955104827192087075192996521186634566912964026815514916306365011940498933191925784490190381944323135684977663109328809037543338033111441708290167207648022177091873157996704645889325782406466145286656672808956418276318686429190128321884804837396820718609692754283973567811024299755287791717244359367439877626051025011841308160578323450041012555255746093241189135993000559761615608382086339007496618691453162621967662651845358853207002926567543738676156993616618776556827228364539759259694034021251849379274367787076823891754139075304380203108772907860581487366607405411601941844385583184773208212218155865364049668660830911837484700316260727159231622095355433277264582990898192033286819649146890597551432946780216412430473772805462441900856027700439667864053043079711227767612630857469819659937627982773301262498231962894384480592671817616205480357214872369532110432095411576174668696383705492518936901027857517339248191543389326593594305893739319437402620782808714871785901175082073741523353093446357392516091538970295202418831525842345002070924769236109852639923166776198027923350250057221260735606455178531031596485383951039346304544686261189262890671939719624164338208155858522436305146369728709037068135562755628853100897402739228465812378675220810953123868301576192351145793462493080660017958362749782697421312698162430567371585189661224916554576637462847862308596039137672112972781094691749414354603651330646276114096516093687922516955531162645416027509193788013950490264378509899091637184616937851041274931054115823675310339746691241527514465716518509296855846092208645576862908908297405827235786811577002094759790072621026463505594395158428222740840195294186118612790774221118416420964181300897160156334152764369766403838112352663094094434864760657172856436232410411235470697345186143462401641647212533028986972149510326535019828447088587652010768894693154813501209229271878399994059814328656139904023027516232254160447876943876492589465682610403270011925592271726077311569079369214593852342835864437160250422486880186786644529887144295895819473968242928497954823029525708276560815858872517463163943269307502412453900843394765296818058159809970506709970597851204597253828569136979594450563029926341893788234967816266957210217975953495792767731146568448127628794033801774768947993554221147862797880954512580421366682733895729429141196898100443099624663957847736375358139430327927506411168095583760891455717583560890542221204626939424929053804625957795968906402129483138926495158575246699178645335001670191157326272334415265753363186946353289796273911829749246121820865589889538040049372613454960441839550154742658494122832881228575102379980101696066883089525903913920441660234711817595682711268984520039510842401822881414999906850318843020562451614132611558945162714170410982583145592145538801600158027728840220716275462806562278837310380788003537642571984986356953362466666272069996602637281035103794133563494820437063322202453102953981022787094891919916875997364802562786115124398639173282986816761601963586395303935216112305328808687707047169863008352645718404252649851729369871506878922060399577416271444878668477446770993018804825754293624795927868984208088281234770777258667168192843380375996224089025309562851848022957045736113866636588777461183931445850479156965346233280607700968960900924734474348627330134886464467744447476775893062450353821092309858718094499068080796444551341025421988797039401779889712153133505136175548154193387233465377944013632239909868832620018534477161596391111683972716842237808230626027799004591600145801747306920714789390750398724633076213075111550574880953251144735977166947383535352820313348958487286620534672459614552195812329614427257832457545623503427074373013572012341213022667478729107410966159095324627436012989388904400325782542153065049214418130207374666566227689109437435980480498727508559444985504167045855192273224951934256976314557895100461903078933359515261410227127133086913750281106846787059391596938637981473098876781272957585956924000046145077599745438760131685425838216296445951042040289552672261668899002883005276804150443797710444347932177527985434631950079174710164318431632547301781313589094632784775274935681397704845308272282547251866306812493971756225248465266078251751661891608972723429055132609588983786530000156740889170169410112232568987830546510974892413616554730627643363434109971175054264915244079673408732317938624157517346355667679999267739161017064477541093951495417941458654650661057024690573054969350383940354446684445607120851429222228088334022297565856668554663032058021516412309899091544104183375652365033335671782424416910005854966237410832803042439413406809910961505177951192480557933157883894145957675787067440356779142010107250647975223027694145105938705620064728935219132258296653896424964415131523123380499064316641223551418582391833066372683201948787985556996319005291242198344505778419402420219496721094021578263720650629240891438950433783426750994815655772013907086090560845419357526196962807787491930675924657143204654253699049805580309461151381680994034490910601713990287255410426402534723848104449090976822337447110677292497666768567555396785229901770545308302614784477626340552416983008878785408157888326496258047135283735093413305757170119432473923074687882976659604133936555291994107844788833747551242053968335991092307886298789453088271753692346910496978856033519118517933661946755497704396450069081237025201445244389006209717250449833574782138057349392106225532139645251957529330376061608750761751416582818595878228846928380475824184861578286684941176382930222929890035471589198293011471265509643978903015425235174857628899731926409907564178892855095789914533597839209469511402255003500529334353315536353147444575505900519109193653141693837002489966825445794536771689591181682848747680518856537866779352221837685398992215980017159780644460029308607265516932479344149456437696891321249372302225119130612594698278514779159394298912749365719419479340833083402426609943902630199922728307740000613324173832589662252457639282969802520646399852780226129515624275798738340076965123432962006603309398257699381570028427842309354048417567234566554307249630571750470748016497580836931688760699718099042186302667596860326789278223547844360253240932039649575242576180049458514441513907503004661120893010167415295828481614063166660537458759019986614092246537605417610301993239121203901110439258247871618313231143312274359154634168247730014048617169214479313450025681177067036015023161136669028398039059143062217134094908239385176579194306020622686007936600989602659673308075063416486163740125427635318056778445440335526221143444683185546742549580174121532836460430580256168505957756330391445984223578177307882732967729384715733141604182425441335825442962422005877972575051813068095978600903908426186022347579310403781486798780356299636682177788301509911449041409288678866301121572146860263265383361224516507716184672525063791075397279082815067727385544285401837453810593226189727943905803583378898990752951443595849061660467473567741651097560956755022552340731706639153544561876900274266566473813513512593332861505230071530397479595482630938421598578381212377123671452248712002120230412715237349776865333604538347496664635884754202984179041363399252671800397529412855910977928964535551170866408977061771431855958470026976015868913053772054196627080488437314230504993621687036644980815432531471911886668263368968860240985969762549535785231205383979128070637898293393716981505683843229217155876791911311603007184655383275548893920449495468706372317679536243190434185499580934040770263682126161048140721361762299744743299171622008307973734966677262133425146569881417937493891986741113730842993802240758847196429389561620443340124221510545141559961833057762677698439892518369224544689569641558397086686720798129101311263041303984658045158525477065589036660354000650440220303178431703219081522314428630903248292742305438242922390360239643469943442740282845822989378821439656399339526826631922451606692435488827279689351011335139987784162647347192955399857615450162786697370970281210521874640433598073929063894993217895081455073119013661401524824926785085315189143270275063558810458728760307105176162633018727589099485964012471359664564523484050996322188398232625814571082502392017470820425438846333013608668198228936698175158377354714808232058334801319038218965019221006927475821627402634710777604586404608821107085487996511552583673176892661549987019053720574493461270003561829288996091419035322986655789750149513445254191843700214565612259247299769176424420966297163564366287348084254016834061038352527026065800864899100652696257097807837012914808795823654958461324201427331080409918980450016056385730592778310814156287376448153265457742094985449571459627745698028835010874357628526652042264953298199615995816138213313614778593634543757774341975348046445832553429008856051617128019222877262137785682312454083449698819678797458506313339203310850772043229351639569773446685411440614833977273835718879365524460882815358988436433461892396736932897329180766917866539864810799887041233187535104343358941673343447897510953728904125557910897643734834814027349187723354801118589972750298524957895555973742515156119913220988417649774453858348742799649149195947352790405291022526173071429773065088551702078437577971308795849657060474032114296911670181892746281177172930996188532562739987468055761244353139663173546966910867339975541440982504587481590539572966042122741507974926066269520720680399433278371466617749541940365247810791902771517033760169199769503040610718552860189316749831733704264552822560558798360774638250831248627569127534946875666207424905285147747311696024765545194859994855799063520855710536624655729950890766036985885442171265846556937257967134331895772993653633010471551890991937575360257204603525317411692115635241476710635313022400004623780655075342526357703866394829185215448960881869702469921435956521995033165186386526631187086177318257467508573964570848582529998884180272669066542779862027915523236177853660614138411916234014027298354146828491545897385019729741008773258457492417526276424688417658710208792398408612606368336030950008422644393258051186432758979775670837633465848513383070538243154490588716439499236210270532832245993687730072216735004430712341521606692826594951536920583970952424483491186474459716446512073441972677048013918606297529594081502254078849703327939281127536540601715143229713153268342434591055033482667848149418791705835841489442808471219845375646423618032491648940164732934231875998228057179373631977625436374304284851978734129666521197505235955106035438057100678991334581890166013661233791332077663363577872217687193560504085929696893809149803506953567811732547713258263343363993100996877897752376577735217147184020672004116854441789205834769628017918990617396198364507037425060969801521532236014655449034887144906707984607306103956158252613917238374333599400131514489336557522533431381312847894051815503944558846351846436601590214376693059430513713070255009790433213422035942874241863188079259436489746735550988137954032929515694267037505858760072345292284151579255245943215883395675954348461136978941810439233817846911753193295627310733656182209758518453530244727435992368993577342772034452421255757997543551284273629772236583416904347119291235888148761978398113119837864955721340930549139265696445408502666057149328014691202949577358658213813843637196803467521454685574034542183931559007636477834041722058132790671258200040499493222713477531136247707696891277609159343579001811628656177511531324832036267306632148435169488755276089700125560158959127127770184566476249350113246689972877213279172405424303613679484709356725283900978533809217791163841963723907343523750414549551559659169757512278931558993996410509248700986163792894817264165054036624693858212883444468252110280158948671522649593460147531609042426328555044321889060220370077706898284433584898851767021219950189936576466628435640185749613187145126233579333033739248522082951068915779944371880194180752756886896669935677341153390088744188306205271648005468414189886441296385192448389707816065508453131021268909768759359893913628073702968345739757831238315106700285945308773345839397989756320738004396758298060077470897613645448899474434123334000430748295441414619113587907547810703884938472441075465184158561261862091816341995804690455264762000478624319478342773742640269248315970407451195212007511457764769001902108418437769915129539410784793226212404923644551380984685117028546526146320996426438540701935983414371018204122715601964151225953420533602411726819052761691937979886732149377653847768464464160664019142161880932952672987244069488671345123575166967875362909068421798965639780126161019614454714221785357348832698959590321609161338781709158043376793004824893756195440364657677421149679197854699938458951101164468077276803479040701582304174133923064767406803541870660761725350924176358584356609108340212218106326487295320727280719553664220995332195944922163648608166721897834456997496629636437919469299460976129496154061001924698097703871841770209510257880926691008265116217348443648233768879928074459766693377518918802378736328903303223445545788732328545416007645801169273213898462374706001162381958688129324393005582885282438389755537069560948080636741561605662929854563072411259653173323791018737765998305652630841546303364242011055694319078720665619524441668772185683703668567337846830907897475808465684967494573735457509717354671689370639631565270002058458794995671857622777114812951545953026202915082172084188004072158521451737794148262148327782051084916551078571398768687979416104426858569983839790510655661345245946104853204567937359060612672151838358698482311698569512160009145462693882338317515206376429819613980255960155644975625946888136614020338309787102725072388149002132044990735735184771906553528709090795054674678960884514346412932060248157051340054699573911124291023445098067100383023380921218203738805942110223140942888019084402052413085618968128288894206755070519472340569643104512533687817105890947672293691248194144502732192989663149896731413290628093259277364772640883045401473114770900441330084266713897493818220399036169311186368609083081436265621973506663511930930756689830729460856746527247358323642529510459932648274069800162063804591271847868838190060909027313871171831080084238520345261230645753644329114062591272743477966405405123628217931964511165706582568712864183711506744414447831679748785880738692435865864263736391807856330425293824491455248284878145179455962504504670072367708223591540482133656314271388218239133901338236347256339458622852722546539183010060407678859683048779566062116805535390430730035097665277527136536646967162958573774968143820586347390723113709667446955682550236207473452652296713440778098405909957307157731474473301020301142648326997695558835529805210496165042250015637263023012440552323042636334380785056898372118943933924105706090381634307969981263659333866404510505577255509896469827219735326878304413147481578675447092410250668553577600979149964226942912896688963860738129207755445205587717237192741571135873936364215390556001929207050880811081869602597032807506568489749288070924149386386496928880384465957644716152612991218541275855598867955331362147533772522972332393945921707142278364008349658453386936764947153881474906100978970147263799944007289295608948783130642660202200985306890685411404176620970722424609552230892500663560222418472431003149936576030581547540818676851742611969718803985864474088349788719480196861398201960919603977756554745402530096045910816551360061662573670688963254556230221466740930274222196999634516351490015515512026492740371078236874179969498144968383107806369812155161322898699351652447791928923278552558949616351381065082286621909075512182164306816382475092579011561257701903074938622468020602891008085456463484720133203612110956217819488385641201821583024311050686942591661758172936233536739168455993054706400955513805491797735530905508394113847515564419521385218631371660728577568122920601086611619346963997710914504812611653305227550629652951241984202784404655841311510022087411903358397410384841394510131998592009162515313650070854746354780801048193906372636826438116398750803219193683228105285075814852783046154573582698170854059585849609433631412139752269205160184047363705516516221020748446251495387252249567021797183843873315216202457557688841034942546320028022555979461853508522142629940815571250895282960586001080445057308055853418639702902416295974522511361346377817507542479824642746543842796845090685353115144805676612238626965873641470454273290456108850143932621632765544383792944919190805503936636284375309665432328507173133370646128986476082033745664424637049912824181349506112086485569066360883845122303779082777590349310232331233143789193024278912945585465596608947202308964104144222886379385852729713680760635681458842999726240630383793692933826387348075518793869198377079727048595737431991935348080815107708627167459268180804741553668989212228775914639830590389632909436378019163771029564473426277267406373528545366822984319272994068776985591173218150822963384128902452412536090244338433189297790362203956849155440899275179891503752994391806092963459038413929712720597641026882904820513201609697929663651540936800091222636496087898448445218539250506245902484508923582056231254350996578891900553045896604837927344976486523571948217400099559238269576307886191132392756452821499866072732247388364381774341425214597194315093034903582341509606891620856726387990801772425437126511755322858628716097329338557726124927263341482591607958758642671456343499328154065262766833004872871665525700777024458823171507997808402676154574069533022200162119905474957038962916888419436286691563603177480320594945397363652756810321637389042839354831802371521569447321692184303138508796971826206423016038309796249298837909903321805438448102440356883285991608841144020843686281348187519985542988893273795563184089296595554516891733131292173285021081292938437406476271789570782765692593394850207613971365881248720243853474918303648604661757790307940700459373312970845600813312743017002800879005916560038797344180891037541159502477423303460099273929538987378277961716510699473023999223933903069438087448098383636859998689911964206690947218441084947063380716576546909883613645994372260629233211497718096251121091266197540282983080481683762689803337718127021420096673811475998579417378031761526555059957407362611311334712499905550910018036081115834675188298704087136849215459798034898577465017140697918978153868855099382475219348276182746394580301686584648226095116556449779605207124439828749029794550043814340847449220521206909148022401017560752324331294892269847191171002433622740646306604585140150807982029927715640701651532404292050664405440385980539045352661848095857204117922303055534542043900920942446028974081052126844643346993127244294257395047047796372946565293603912625326871067966774271129997573276018138851156811380521463954748647591833102158107042309099627327870926740259296854466952043586140645281052673970752839188033852922219455139263596758411932355051146277652273381311369947963941899337485572838135183817761910659588269593764834990105778799311174508792977243773826680939458910594664478993955901334191333878117990410083455271546485425249742084239962780125135252002027178500485443650179899288821174952586738003122166674133254962778314110181331762263280175451274144028263598005316809123380877888297052329637864002503622507420521161595591314066684676103887117474851905040131840663412329880047124700119668819024126398254162075233034083487468127272540364062817114105201279066997727408215663164714428284618482173267438708230300542019246319519590696523559831390968868181186921473295788201474181497150400146255773971128303006312676726619384571413154296310663096139375873094398611182936399969087058418380794139697654550378519087384613200681575866174982201929690471148328189352382503403701637286874124368823673021174120899640099643919511419000785870797361255337200257514347585377339594414527125539051857125960543675684492328698700525395705678665373613992094687615032260668553833491643107062497226967816038937810936904434050473586166781117406437651844149272841656187343175705654446146514329443575352845632179782552899930464335426162081057509762631057205062729551027633913009817833966489987466138024561107409622693355310755131235265650599132707159534069238954378440859594780899712960380185742189278078302922229537169936338758703179751632418598083554630329639876703891873992755342074303007774076945323113795084863443002869769216078819720781928955661396607696841199285810442954980213675296510164895403661332886164722702284162459667867782746628470338678883892861647875661854055030688737888976705400553612484218658213828831060922235508025946241783662448204695192341567242857812514052773491990050204456452664760831849685238865048529513192074419945431134087178504841883843277897541846368505314089644289277253470118915851026300587220554356844855193857866068657325297971832258760405449371343274215665933841454347539278566962049862503685882100374879663306804636774107090422428909823949565973223676082141654700168157863629498052474484468694683470817732994751933460513086977566392646514307850938322231085973588560885906418060152151362542923545005585126699926373803123585151489466336168076481263208397169054354562850921045012152195397807049571593765874169261367022298992741956485511355509318569360162595713558096900769781310511804332371481628295912752430504967036325449333430716493195386634849687124420551480952312396747091970171203448863258499695885255040107004962930699739098289299752542079936880805073828526398626480630559411545973186021564401824107268869354279623570183607652327381852965180191130872781275618929266317494678805352310298029999910762397316701628357130869439843008953641851160050704273195365376932716837841539938584689359095426459833239684900646394229319382861045700635079676706373571776100175887940512943860094184602523533965051223176154931357649769092666010097869516004547580434341685944131292607125993469593869385984121880669138555511063996860245843192067236380805753265284446591095963648702971903067159812900250923187931541562600887792576512583136519794646398811407990414665891605047368506001130813872866531690850830439751719433028553386119366871642690061049316245923456226700936610316605915334058058740387932393474678359033017593946597926751175979570150915285062922955917399886229072238519425911167435190109976311527926154185411765499560601157188514893920025731477963440436956495797415749264616476116398465775706014164975801681303302883831527222437147809108977365214376084035005058862337579760227842836604830945429408810958327353486137373177373953518672628833239024952220526270199741121693750855580378147379251564122254168019420910231795289852166315933988967799939680352857002881235716364801950724379291418208371051142375032711993059430956880888227305936887114594176655655615142384780425586198990684236224445024021543223967969512464481199479181807526497269642163043138848453814620158887665432230871304431785833550368242797625352366909242689434756311425567426171082428222094815784254071472211545751170177941565961404707619594927063933214839363671200245060456456390563151694101438304989026350452826901075014245893754780630997885570387913814835411037962495620179370768910453967682730607936851182253076955486207293667989096201656789421719613589268318642225823524618748913874249071556303951756982830081064139677861777315523026696034312346739697178517534797272571049860840844118142994523911956376861347167620144695397427204148560014092714442449827526044138198958434306903672120177723376679957869798216073807967320069945206076118398117425320865237116696389768944970847920260824501719285997967831034170584739667362658396517726702545446642528614041183006677391880930228132214219105697283611003934687971746397054242463242694073419286329916862777235857596756553965996151473113238733520484374427884833593384082419655761268215574626131013642793796949377934575946242201957851036424183470627944564619280744707833926709718856123159503182977448055141171467303376551464329831865084623560596200870775898508334145623140179484462305766728077442752018949593268937355441778732285537300717133853995908398175531808781553297367895122838091970407508888774862540830925481163445016422630113758256167750344027246432224883823382180730735533840448316904417546953941286344517093870573462189170243437915640318255354197416752679686352937108794438714501392849431420597325567924269259631970691639616130921948387548556065123734166440758238530943503552967806469333350119041105105242155714039872852716170589711532840056432873320981943099976372534746714126580374939868386394216711012683637510491031355886766108273775639467716040324141030675366899513300987853733315295709530576899541411558982347455506913692999849833737000092725601640804413747386663495935908796215874311033709121922212693595262553398681439259499494663310219859468504402118199131813908017409591871197535256483873351818675648556783375828790173455888415750448883505198928379003061051594501409544106930768578854571506312454958028202815986905180577245733047871293009214666258097262601168791467291887083787638691397777042820258749480544411005323479719199788913215251266331671043420381161808332953573388208699550586127009498886132279481284677195349482449978478717158711436940720416810044193924717909987401603180146960719215071060534905315635535527318366357146071778649315957345919770333102676045892396332639965212347189788997275808165880780773885458579959775950939715760629722970594022467858356739106320560278901766711750330308147245144272538257513626741757991223243402354641074713959962137713575265464259326363934501393465599226109609705614952983855648542162133613166689345915204798353837396144477038302292289267626679370104019923704256320265492247235627389404097214187624824208913784535718393934859451819293006632731966376259219422295800509650035763325454672610091917546818710321542272749800535940435906319849583605665449013931143451062348763530965965223087993478429782710513053287080907683590995156565177607766052782351040717260889143613093303248241036241898988659832322039687122473577505559080568070749354293848017255066007178769170379101917110789488235845812980250347358980953565859349636827108544026746407163675295734421253130821288459377226991662480566968359036457105185167359303247763258136575456001078612134520939226354309107163978805218027870950065090185229466454840732902501175871337675726482424646742255753869742784832036914308508940109477335633131627473604946122997657066426099993636740106288247488337367691066645903328074580843239719247941817514773150591831386719606788230805396209318818540405217706959279209095791084121693877389529929391482819237345675454773461032239581152097053917785434944688083198641278702009306870764095571051202980533700950811208219174801870595974460786831409774529902767172927949829354094733217616523050971913413114125828901873954072495638327448621616213919767173029447892682140076987666323917441268884614190782193695060548033305588578824104004546168965669440049462421326221828349393889299003015237033513258755275351067057172292818346892513907910290183534908496531247831135175488507487962317646053649463413730242307961518241954230016732018383463287640080435072770165679283998900779461707940456399471774702066362741400672124901750251352084656045521698576537814646259397606064242833008078969479256622070179663860847600771982018305856337132471805477744064552241775361678806914293818445980474533119259927201016726759050857189032769009373126926332302180722103196284974168110220339112793721830473460160802420079351307360338502322132929750903010529633748342153074760652172451744201751791434974853083695228185105989974738148696262597127809890004479039922057361017471403745877867488083767457592965719663671314044488534172985683344464508665224327140147376295937965259600777103620256088593508692784031967813402903115204911066585263754264989492463266878244853544515713618290223803647406337960851205622996326997752394126117907977630381721451322358299052700023484627647150995420848800829941147500073042974602607274509451322057954257576407579668470556737930772576619892963147103099031552662923614041245168027413583416488590729426608009339599054347041212468449918479815694965334383955597203243762078276209034928477807989782423517252292392908637378111017142009773630502062050040725700862396240833759925817206929273919633492521535056588890152586759819644345555266722506604728630484984369503627657726775183364289911873968680870494556182109548032873012787264655540262857787975565977699811132652562858754059418898211603509959378414031827836799243236391823893568228819009454182672875774492627597128642802730303579463289748742544540521839960396189213889726178112434281627163869825994452238627759799450931505042530920506306037268192456222479025503290133307875703999750931706006239014651547789324515387490530328744770803366909966532768905176632173378484970172452683920973521061318955144087115355676077388107103065165150312155797881280049566322598069079317630720407759196969171785623307720981448495399380243615218485637089604824888044327929422244738196612215310679763395302279513174520513631678256187635439938146576209786597296914137302015537215708179882751448296300060274352608759925846683946683171772498871201784612265408382417106406899518977849721389717225403646887962935760944555517464449845580825643466835366721854950288573788286355293694231696309015908228221839221986362895755995195341868522148286895495544665143149653190231130813235913470692603795008257728611893594003131159380649677315533142946080247495014142163333192983883893152748555503942904844727637879712281804365197320931497862907521446723748614718976563666304036455889464453646456584619434486589570060110486473442615132820084279089766668611709082675705939424254063391739990917592403661881751876765082445095853370721948672570421203402983858572121625808970831691004132107303165695452644082455061108906887586334563723160345740386643445117087065924535916007288806082017053828425387964495334093600280648704700484230020007734536810169022438892733609509981656073146052273203406453681563986370594973022036568159579841959724315608658142608061357287692783906657848838276356386256805553907416779738363592788788658059500836070974272172245354725352073638668621859233204284370981056710283421106446842830928438766472653819044178945735469337344396643684230066535095109470170781925881169674035109094230346412377987278259667491180951768481320909984159032738022134121187794105191389310597106088705581592600462604746198866983906617572816710700210685933568761822270463546116923906954406430032021189776061412634467112117965680859266821994846239704913483793155709446580281528235551669611853194613580038734275450293973059051631929325990680398517373700864856380723448190034539746187740141887846271623340040636575918818235712607938202810141141678248007938689343682077278326400801445790872540394024674912444417102980334060657877064234381056752917940174021129439458475612371432720874512187359602634311610252595233583348218192797177147995710088662677537570656383828062835519784338969112007468978754978321606107646715219859098429884677276369550586148226562853018793234406308389677400331290994591630333515896518630892605046954064012719248330182666439889453126643473780561998042713149476982134752961151720398784030980626408936138804494322842011324534790245264555441583003619324881695377768751442774996868964207164059295208304721153133136416688476050476336638292195943191637611793594770003836543778317557405090830863608973426732249815117520498460592807930221251151547249615700656135553798752444360951517389626821372501436314492965550863126356132940684302589738461905623412297146281194179860079073607196638179204384254966805003804804417752955029372826537246834032669326547413135963630307117848112580381889871170282689817023543057617783067053486354526640265395701577829111172456737434553457743157862574961560126108699771458779304161823144054198771280342295252534759742531023499555454276575143720461067800783926855036350340699487217522644728307031576036433712999531252481781990149470225059012757388914591128446459540263748932384873005887829446718479960524871998291296516810203783104754579140981172487585666106778707720947454671865953986745341789321578057952317969379684398910640645253875640801474169081243978328144830507391071531450408918761393639946885708948774008883047864023052539359472184479686006615643190661173571184306980177792533737037096090422736494792606484306805651316003106451379797480764494550493693919738870548682780758277405598934787132556933838177176252447057442419754352289451258470364758214198738424716277321073246784332564389177891912978819126174826608763650874919531786162283272252108718348495813972280857777828287648199244162240043456454864301861409950916863061597698915094761892146214914613548154651095594738253311568191739822362368409806555315130067266731180808418405435709792831301308890805445673600362690419415948636069360858095302960668838085335227858485376669647578786643988464192603614548177699510037650420569290479133149420317296303233235345261826877371872268772375299420609949160700241691313048250204360284566683182758353100301674467128026061743689189497847935165700016264657160641062171646146783078709934021385887370092013517225436516126789978931930007922314378899911861416349336454574706645515658386574217073520042408650067064770645465635895562655788930094378756183303344873369470284286960398855874352207172984338232498276407487204786786950058022916995902131469678135060216350968302186962038962512129531395281361409335512010959955021250462636669824900297614077073024071128906327113039976892805213766447330808626286352845913210950670694824376437092097591800253643183734751874151446495383432676796373049101481086326059503890200366674234291732031475618859676752643147103296496506157547832238140465087113746135486610753865694902171332189490380464291436205820286495149159442624537370212634439070641649672620665551485778525196512434965967989517902619714806228478110067522441355260282521614931276886600891216723454190761132514929785688176321465331912249611034071611083416174223404986223000146869999890932592438644146595095110767957160316844967488970167384709920769522452263217198114025337206742029853460278013513690365320228726228315083482939387225179006764109312396405821871794954584842332679542183598801246447198654066631416016851145550961634102220093140895019406694525377539585906774861297306241377528245571600882994673928859892759811541797856700735268632242834405445777692979848788815242152885048977955983784894711638191153887087813224095213367629799509560091494314809653867641725836085863498079346894600794850009984080794825247259937515170691160992206547979905136836134437297875589256942955351598520841960021875372492360749658632871967237327405445719248733272225078865493835186783771944271302420971244202456169062246925527076677612242655653272561579786394165687941602697799704234349086686947373101028353774072854153326070434648581490179526893344333751006040293187195160533212746987639131486627357123168064806541222166497100422823604598681157627616540740437984510926496533003578832042319452714978324670300246281447759327191177936453787137023591140920226362386036717094795924554785224939483993842240911006219731079320947336488777493734714090883947031301473445184761865713431163794445051739799619591814461379710945349802860833983682879530488766125195383455848560469196615712032604898430130375227281213969323510108080370121520177731771967043679849575179723574478901865703103864826730321349034309251021682899521055759116015910812994176710737638975429725956012713136890770743835968260287990140377890405399720876812095688977998178172528719755745146120495031203210539156049621233855858701746425325029290635378966008681778693177618766726412141902841493533936830331872406347302131080598203364662419523728963453244865351466206717147062226071556852981336691913222373168325241028360593078218796646491754956613469625721106073674181624395023239545064760645205064639483920709488402642981649364239963650489048259493197700842747741897111932924252163468426119040012294328159958296533985261163067593038262308189800560511554348319397349341072873860124356575225974089477048149012499489605145826297310862635216855150666306632403662307967556576943782763388407278720298255036274598710321898481039693550132610252724609696449202808258638899500819341830931881388777269542318020463743770370008939449630639839829417567780092048447042369315008193282148182896810870152262776542531123904519758435685358924684353583932122346287755836793645738987978612487052426906294765692549003113190425346246758336678107075325468043491513685657279246803347541270681870402129107848823431194988161744463914287704064010377717862537413395183774087908844473334482844983833230902767071532838217909967200099214324290331952074014517206143896710042399310954200701042334887773397798438454870684460981298927835920146899854866173125691598309403089597527268674818689178506120577465293853042209793965784015180064245979751399614502798639079871666041660835736327312212950255430752669229020778797105225996647213175179699567275322811858572848224194739324022721766004019350271349786113312974972181030064427414273238300387655418135996284002845859943660349052058913692819567299665404759956281287770614952581737247202712207728355687385085144589035524241890434326785898337911455260407041302057472566643198201946460262493148195974786484636326845486431009775835114487360850131986436767310478924582132387697490160536996584218805676538532689791859779322880940022441385891854580058178624828785093006717500339732727748580652453905272434440546287687700004867968929439846754613575566982577766123970216342155791705187999840629080833031836519508623788818340562084529125007318076705549707966858151371521607444530877929984515303593803622069984862684481795106528980885573161073756716472631949041854246964704693217470644757415454839554014112968416300056836255197437655116274643959008525744814363309363226549525729968422360529466285805702092745987083040069926987168262807985923067058385102144340256424696343142753965726813421122668747459206218418792251622477575456858214711050340509617873540900855052687942493679081933070951245740569159088153057159238728472837007888418899045408723983065612737623429206893473398859870155480847920059492939709647517305758399417888546279219879135916192618292628102142167852339235544662068675512907785353816283560360963362564290466981619965978884982325013167422749288403516689698180419447423116140226460416115351606813029785503981516603325582313122571190311176563817684367037073153092049920078708178808213471273430697030446151137844215037325459434844564662034199365318312327967254200487723947205812571998776051838918473430926901033500522334666026989650044906296706628860339418453963505444124276358597327533841355360736106111325785072653161143050050844552622320992545107579864329741481640753056400548055328613606634316804421050675543422585561598349760455793521619326872162106620385918407965693470334469744655611735386247723828180320224290623187959904220844114638578874246156828444063181397559730790579106898195619012800672229702890197497052489501482786333490921425208748154414200623971560546437390760238845356744429065533176242651063794533770081723655173050813850431746549010378563072424804947263356730711116332337651052621658029598627563276277271617238639784690927285435683562552609455902712299128571322018015180502998085410612063927731210732447360104739356848685782274422782495633084218038924059556442465175519771636825602668736512756802167028710800921769377278762913247378827746642437954161226399780105839029465917344055602133209416278053951592293610216959033159650368241307201572170274955436325622835215286430714955365037060167694651663298210760134008149549139253694023166436624940532474770610519624573441399532778071912305239939948654276997533048192690056131768476814125855635091246780841273230077340343280370222259181633461646883361562490591664490171670032715256217451527778100665099390865862301962475113293361811469395192998253960483843208617523480793044752154579070131690081216042209000535958777883716877933271816623341183674578383422989769296213387662053621815095120950569434150673768731802694769352324711266711750892991261258914615758326589462795479263098366544686415947043901843190326064298448859249051026508625678920282665119643192841685602327800345590502472577077715129209811189035098367502822149012909019597510849438702404606242911603742441949061872107795547662065035932005012495694035375969337075052288372431452045666819631968460627342993509188727191898300532398771074237982631621119772920047855936244310420523969637586803482876614945135195650156546729564957950490371866536210542311456370295192150166254362813092205270329562081215956597660516731986146535585796191719284229466618905873874665501665103774691461996027834264407045323479008144965309523841752030174575398507802999654724229555292514426920101224518934330325109693305661389390248969971694303714590336444084595041593939705682697039338476264891183784763447866296990260607191677149013068657377060128176684571329040758648758856304518957661925496332652861298978691410757326862995418409527383338626618075752436160806752780456426757738146468837911583246026447785623349093933781095816321232069048627742661106200062147726039743834086106669730215361055314753646587512307458518883768963463790207115752366062416374777635859840475248627960412641575972056360555556717502534529969011991938643773253854719339810112883268581457618966233251859711788248745661964322525550607203023907032981448896611649975059924374546297003048360702192437408398635688652955777805564415321883735816268659933362712590790340844824902933821327891085047890847371318974775273607376872238097917601979041774288229155744016714151023474823127881962287108618259473550095778804208094792216513558389695269365001798989890397958965073042176247620337612613788706767197658292320927151603925803015278034642083080552647181134090543760502599522898498261458282800636046696268692118623404992661889333719087066399788468561126524213933930787042429405589759664133580984404181899454874301266737456358172004700794371020744397105470590734003017593758548743568282192017909422432041023138089434943024262609007391428173365876903767791932900654392868159872853384434596295458736614570718425531307647213032629750726092923003879940041938508795189034276813880280037553234001002640900550460054257172934810297352847807194967962130584748282456311334467296202225325310956550339875848145723525661816511925137261433934917108406636358311296723329764337689979790601766450128073558524087891392596825717102232931961583906250924144211555629888283003502471517328998121117283819801077236086459879987686685936815431517186617657181849701147297442808145885871623014249808029484886408516234546619777018580388237844131477672344805766789405906086400604196296300621833157689254204766006738112768269928066260814235801539683012835910582960466213168152647088459737841899114721797833073604437567823139521450880258478375051431763946861555240599481096914479272763142307276981495734345205646316445447543662696751562531970741468229115621563141169469468652582917935446546664855103413821998115165875589878692479365245147091215584921954816711218945363896203459360598937140836679696020506995252666840302332267692425359563065641539274072283987417001690532461591371289400225286681706379600429625675961785286034557426707767073331971735766250523979796644944362935756520780692534417636444237885671353012369292772477445115310000730893705472555135933606056048392486880522312112202248644477325249678594756530776318032873649237238029176178833543257849056708452089753965882752593241867213563955151388644003116881721203980644775549464008864929324454369889906344754177005010076513471721172975510820519025787668338666920755655567648786361705326069590357622943910663751417551752513341396067719516279864848616016049647858323216578388199933163984639464271578187602475765817056918524599251480174813006954101360914059868772767432579065725442456134672596382357548120545558699926302721913065261911009019532339836161435470572771947515365836703409264071009276967526073071322184498705310364886565871495465976745192023353590255054270397230786186976742425865720546463824846922015506492089912136207448705233385467613581970603746952769313596093326802205564867647339426155289277898721698590320518870653282222530138847636005234294795010533912168958046000908173620733387872161002022860646949349058462731347342832257474228216273098112851707271042930524344287306334128190437671170382924447709463967736241641367359415077593289643419685074159998414225986312973170537781257106805535622948763621821475046434329679916189039442271472695673198833199502892590073891498436977505067400050187634216141780807758608314389073353261224828093933395311319785657246972676698032419191347235890941574427175199795196544952472227670628551797322293085507939208385687411184280913821314503569518545506855440108827571638116047711913930609948036002544860061227611703557747217520208854608138008772317716483147448652984432338362581371027482422862719412704201454902162667887667044724810340948566290327851886281041933489105048246821686519455217452339656795252571206971258395203255361107469717158168173485274676087340862348879376767139366406463016676780906343859512696316789094971657475188180057572168294349531686072577946350530635281767635211412740770578629892278535987198202162555447864359384559712255767069124936992364071045718667222404538571731065388656923726717716242925775298240195574478702318697954944029408363261259870548917378102548059530285321463117139033443985167336181817263322439008043351162829104502646591666963587340966297292384577011600085338863162230254402483802226480845513185420547716275633930065932142966507131445853090606987013379215734493744162124791933130570970383984084232520110431076711802511412453412073370551009479278164915794702658071583970229542607748249722668461754454089230649421712052392352332047460570721623793677930977006817152075814020838532262333031128446048667784822278077287502652377598736186791405854211975115572481907128694708349817169663061122719486630332801067939344883155339881995339309528868470412283813072817879482128624604361288768790443001353954081100618883206114884773686272273390953035583150315648784789999613524143440702526883341658788728306746627630136504275088488457905731726249598926012874418326444768634873638685106889076121834838698028156225980796326891512715494427049137968244604853235983997519235903862710587819764236791242884821834886313743815604619711434984020299188246157653927292251126376541234637517865996661417677125042215289391735691460980830968362728757791571653409801063130362063463155777231457381107818822123976224396993724518406901960840389165018650108091567200997927585878970523152256072507214084007348551349121284592233175148221343865000655218959103112461595953918451501173752547102488861532471078316922889839464555514728894262268957855965661462644029083848001707345500790571826273639159989888929624069751955235841333105239921291214737442183636490263630419971867786069556675679707008993686104876900821430318478103034339641073570694002027202680722196746567957206071103056418263480050866876079680991134430323171494973121087512037200136740778456493221116002201997824230970875567349010092817668969691233203459201930925848268316853189639070402869829294472962136560373324403823601793922597391767859344276815571458733166786422638424906611672579791651827681985547498494991042473368164441265010569413625697991705344917565822226400425744275882830817943817684278807998681765054383934134048008335871138435004946570222174638728534252409987195778292291597511370416755822112881756140739688040831991008499135466183798959601838222384047275101770909279385062900837902436887157570297705692083776169733048397428855522964519686556064862141696958884747070653429752990682932820858833349728299546372973499904075525332459756404668771479241890223920482941078016991486698946337519886096878407687440776572850129826234606704446533981373355761888026548458724002202039334405547252114294920300592834120615122957615092209998013648398185399408642554137174093935364407802012794401204689223823137455423721599914558979273942248757866838205129308513292014978120743814044201377152530429261279884779705560555553135591726587000098175634239121952625052854619851503998342506405105391604212380508356733934701453166410165675654604947935900924083215295040415923073220509250950057009690757636635709909747828731016243575618536683705446143446966786627536965378872708437525018985268427415147374129783004079706004315178798050984554180812799899252445841716801436570829754460556711501693975830740777221850768025209682761489470769694348263784540050297875667204030387396419990008256468570475237887573210887696637927149670947839462695923577041269297698162928550765386040237083426409851971669767026356893699066127119195806848433490532616168504911352008553575181417713088674502128948857920778023341989025829425498739908438870087217544606674646775132202057365284403317334775830353929728498617182045152923461147149509695762771368902100261284495675998292606660431320630188658324830350734593510358996065427227098070579692753491077137146315357509322694341696188616047434247489862771775613918882745358536515222722607787998250732479480116601055409119589912406123505226477930285017716641777967684062251939285044407981840643334838758053801559607104952883697233151039579911136312977881058878914148138066889034424306564361140462482013233529023339553331230189357345088812871585935756848806167463777971241761390132563618696141063967623618841907506110810957826791461547117086985141645193504468642409856111144122500339685299626842976128854735031124913691540349581818037197535459295391523412061013182443399534887297444036592996851097294686789848066073381147345012219691283689681753134559859376570057359996514825783315845064501795827613966680884850073559978558867905231849398496631243546022949128808104480643345030267157761843168217373305583124448330650802156709528195664433178476227796654302917610650023025707055824140871319217348723675475225081607911655558622522433942924003857483363502876187794100338143240361437421317828204243533694244553932896190230591679440261571258866225049194008487064314209262370705442673478697590168214123829504800611158001442870106614340024145401508758792616520103013607864602570154779423971231983254011170291141604801087369155080641127843807814407200476670649299776170120204913636959299807084194399344558973366455174436577974240608608515086793729669981139762157392030426871489212911489272950322691358439892304779121229830555089420292970675578362479945750871427741243852551915903961382766784061485089387126679896198032908976561924908854528226147613977895682919528656894073459367882467331844842538133268527241065665015600948488620529609498002275801107524870591632592610579411796874398702222919535677539630504284287097260072153488056136491553365921475799333600155808330249171845070138050288079857195578828494929520757718033006545307728005779522830756575229265218540730769754935106800116779780745244891509820334052662922955383817924420924425236079131392026200537046688054095000883985223671141605491557031643541587366860645548479975118251542025596348316801633023338794281937943362956978448978032507776705382551331760553019948765521863245327088501887592861177911337341888471043273198926014603286624234727776881611217365486379230211949574569409831819469958347125477334053425689305022303586722066446776350803055855054932313281805025832132544521149721641089233197187580077986337953568383820089487567938303690032729162917976354046304955575952324519116424587838077934838358898210755372416015899407531189989601927540909350191766755147764451015911327126094834485663166261434841613939333458844767426164387979298653568010579265194487320607483129573539915430377044418339584883486726123379846371215841540418422168747032142396710482447655663997671431592157400034311221275311350711971048404648605266168134620035538431989627291738358307945375989189515301184561454710345994859016144927887394268887064046524271389489308324321891627739499833862538316137709849060653609119825015674481440312973918565051215692831696921146069886817795614409880249871551950186134597141684470722812659466195321211314613232679730133304636730340482338049286694023421833450285940205020667194579512700823186177307724067995404511054292572931282398637023597452567366616970261689855410393991073808870176970224323214217762270608937216243697423992610666815401407898073817948471428726784565486450957208991257690791397831614450954309852562430384314578450494275852038012479100879504748118967712560665350904323018166772986426593708471921724042656437054051433043488253138265870120494185906162250537581801580607637320349530493581510265488256100844422805573402536332942774773002120528997832571251983046861320541505092059319276764561212946357317482917227008569683010257334400606450525897102260790693636941536752537727979995970772339728000902947750724196042382396093824143119690306527732246164229957612551433726593653414635213575176385952181625176656082841509868061129610206679114218591769440398405353218539786807919439907373781304742075226357183084919036793678139660916535441892188438788649197071246753260611654657734796844148301414827481668137788943544657797139853419177677538726087920335703931036304032443835595961716241207818453049205688992239716155844104924049196545162757726621669535254503322513268469414997914155575823938511968961606983925513350113039786124404228325248690238840833113640838704781601136117923495025493391577686816024521232791349601117513044740647172149136580792832767391287353598612008818464467349396760167885154755692570525341797567939014198936565002687986316995755191511494132303828855481257973050510119989219594006846553054406808069387069951412150137588443119707718939140173109431047686677506411229751752479133585667668846804935765209073768823965389808549633997492974795228130970974216858995046278359239312043750750682379459364612621571628564070508961347334575025460072106072209817185179196199066278671411093981404247765929748838836484337000954730741337496483759246682283601286948775874275810164084786485553445042540804773492783426338318705956292763732604020424323002411036904474163710393845330346844118193204470722181539354981473581819130542615470285647003370824181458746690739926347664594895976649314849494401925714431536724640765567172730467357179162872397031789906161450178313341263982764606441100751969388030131232828708801012440215111118082582215858260049564808711523543629892002432009277280758274852121205547160185897768968159507870922873100395362541778788322810608820836485561334174719268102490129252475017841603671776550339114936594076599729323690569806179313318508229093046546820445141700296218709432899270424988032819634072401672445233097673222159917460852579834083147430220059856951546283513703545346906396782942550589088668398034613950110869584519996690925023677470203291973971896024805703233107655502833163955408307950626627389947328097009542542204270791513911084526717731315258399963914320121466523504526267099416414049398792694798656946409408854634169931979782737048538990949245161797146956680345145307266952255630701492394194080153638425320266971890238153473235288328894875698369395831927921298649534251250769669499223589776778987596023844253378223269767926996071521249758108699303891040522676934026105421266439738853042441295240572932688910233255010036288431530370245262477852787183774705920050309572084881212625019702504246132030804906877731878070170060951329191652261095716977348249725872767245715040481710896200705821031921075858443144038377044677648449370090883879425941053192020642299311519017237698163433256755408785629042191403040286558935356526094666117123320739600851422837794935564658865789312428983984925499201461199164542743111011862567296840134491436556011925487565878396738122651260411433007871363673375844727322918466559644950002734479206055630467656572558708390557130939765771865745736237892304856948122777576837636217452446837975038461102715259307307187733730146641005711400381076944459490556651504275806399442937557718361880328427049907133748167316900554703817041564848398541256941558827384336072357072486489653543998677460828537248919093183422907391237699284654207344179271563211033471760216774041310253540945337284000977921051228701820799791033710583789356030884894657803448758388534850823442394915636091673638283307044045435534469164028004145195188313375313580502885603384932404281746646797740930693016049261500546097285587299648805827587591243519431612993031825606309585136014657470787878240951935219900975892038923592457211491914830019723933310972232574435803786378687590637001238330768114570850141565808730410350361323348603003621699492542128289437165254283051689324153985277170121677047880331951909787980899379432409746470038919905782320277177255221471084600276764832077077684761767103337234835684014439891399855910624333693414581420907859191803333719830558445431428418612500143832841803919702601708101489020795161432904900651061924342083409661420774999877317637997148067683231562227428057741386661211244564076580857592773742165876319655294488489894219550580887780715977364338506779014827269115283162685472709325340296816510945016417961050062630553796256924990287625906357608790745374134483654353186446403849256777662562366584908804416881403012359609617093209524322705834177907035658969823292636734739177482719989694160571966401434255132074071120098591675920658073070954971390070887865085413175560440161778242880098955464964384905096386216879779789323899673497444101309659325786620608879964859675815021893920788046363676927170908385551553921627389107666799862793079441693110425155990121692722403429829559229249845235470257182531068060061829109360310161920778907603155200066756989178717570901348968473936290636324515031792872915558604502400376859887068858519905960203997997918794158475401361596215424268084856158688155163380343400055839513695880772905539189766791777380310595466773480139571711304323179076738325504091178290814677267992835725826930082258695130212213587058875116634448498557077950354189756931207679891862627943327171260821897283239943593820039330910438693125755883778743727248877192497529464123513120894270898502642224045101990218919496253078584906324130800215144911278367883713535946243354043186267732344334977984954755266513084414704420626933534377988140857149370074115905810919613885191881777771632618500639795436577353353842084924657693368871309791722221930895264002898139959054043841688069115552478259525996545004894934756202109090836211260775497802134299637418399488643588721321843689891424789500959038995112150783094726338042899222651191057567215129546370994544335940801333238311266471012504858857350088243348165287179541089682111324260321908480289098689296154259230519548628149182420356746690447447943691900764161469577674778627585735257574832096544541286326484074836112700051476936868524209069271170456093723171730726813703149391036316940988294263515480025995035480279387305627041703929083096317048191202186294086097498886019929788558259165502401357065150837466519654117707695073483851729368827960727213384616274984150777338060077498664884937364185833625282359814978194813443889252141074351651522450522103204548406942434033103836885576249878364572692740508973517642997644182823249200272756516401039195808723028073352219134395778745699057382548569610820268770482452762766633583708457518750061431368212862708202014679748874436505764887681689041681585525553714172845018030187578867858223461496846604898880956758326259543943696796879301442016238916208105550154464185398021370284235689205471681553926590551220864941185606530735208274997683462923711766841662841298247256216773029142711355551408399509727843184361459194560657029828856872279434315860661472671166428453125724141958932727150516988877375639995975807219923358201334216142302915960638974683706926465885064428928253630258297379917310966611312529990512275122160053256453008518605278949341025251772721678618429871829230624213968776767169324772020060766850491446427931986918634201412020481962618283600648526540344353871063990760485630315116742925083596541562852462013817203017264671090570982419847239140509039681007936083164177786561765783077730347136877088460086429294521829476231111178505568942586750577828261987726775191118597180136323407698172676774773804084973302081220410264461893920842402497573227237006996558563857441110349476371380082186931142755180023794764956624839323152697661030632834295045245156561438857989728201282497961358466097739823512364569097540187957995198833829952633072424119836969646873255078719932144127636474065260391479616711482327521881254479410680571124576923554017210185032794124628498000807395511638361280426898853875376534730751562096645577401472399976593600574298505499222623536915423323837871745740991624262236056111978806003480768526017087175299665363380533782459994665753725560032357780548027210586425503535977772746388428887388674951018568490748196703783585060435623524216625538058262000794674253635662635174607290593632800913031692299288223474861838268724969856754627296367032839736638379672465109960006096651503733361195367242694147944793684713521181685493058417851149273183712891594738199920773043771951067208127328253152475783938648875878933029231847525315601966445321014190315822719911465247458915074131107294701261681608617476442470356177019873250055892122027575732492354732391397487906914820840234691311298959415875718709911030213980690356531969063489863675279411898693175778809965884375074605209812754506299207246735080941419608751917817204341203205962355561692634316312682698732266948049547465589619924713963345864960082992582712205843220328994879391243309472058478418484227935414395646142797136318642235031426215715199213179076730494303587377946854104694351099801986545986710905963762191039629333252969365213564661757099606842817309289052819068058034705895759911795994779706429610111693223635582809029507593801836320907683043113048936102005030313575971878162951756241366578443375589985718678528401154678711177581974594669779873113772022195094934565745389501134642879224296392363345419871966283581434965448602332622162454201295105129667355705253427062769163798754834535751316290756394978038114419150444154744767094553222388974578239358066199971641136779939104865735547946915110808606090782378181839659464670987168223576834951793566854007855945132356975502121820417024074261877405042612222175155877783639694445991103842998724543420368366541930431230546227159507221196058708720568489775708868418233369978659670045636501886924999794336691034893145406695846608759481704998131571795544920342078814946346436609515426856203350137100871198323629052626272618735541238556117108129758670070629339478762101988753590870227346809437232860234247701822523213887350644626960805691642790640698127788806396904095847464945315557240604155028113519246016459763619870854319550186438171533995263901938693594672016948331020288240249388694235247449467783660918442853944624776195529962208651068481573486085602552976715689877868948108826519868316827895409126308897656319354291011698519335643546990523707803568204300456101803521263248772777223832728667654395894992478148855222929548166574729877937915491327223464413113698599672500490680830664882229194479013537146419980105715586079740753037905741893116217184330810845673308019637996843197348047508523606071992460702664302222649626396489183275645814423478509594093785544504954548486979574539384076021805352489950546502973179644569829831069789831296838327120316879081417279302887186175926548407778678965607440731157726732466347097509380628040515092638925544891674326034504680957361310377881840608168397541776745011641919918381799990500542422511949722615719606071985461720137500158014841198851840263893529157517641362812574528548272914326819242500618214932749873904707862198968416875186143800335006320208517507930003956625951776113761500874253174530238448708526428550732048806518111576393364705839130824305162870164432946972739262146777629394473718165892094162507372038774018333329861928777060106367309403972568868873988910546566397917281138606188516778601751057032775520438745684850867174063616712087959371549765612124789891308732036424947195980629423338542321681536736076893249882899990575089779522270609250577799419489165125957518259785612779394385091727809628920602022491166394005488608010141097571451351768439363790144309530158054161768341423460661638376669022725052341352995701109939613542934277944387506826134023195743541307840727993472451122035726888596549359259211851936714166912185061654747066071050864278365997940630324164013922212454789230601202019983464175086706384568109400520413705014996865239806098394898201889982716232180037515483992430999126372035646086196784096358421811145489227988763150404626335911428467064281796726104076642115594386827490615060862807084616097666898029777060130710379109547677511166930974232803197740047995446703147801526455399313596937444635939345526520390017347938760547014311243771571799431819767939568878303214918108768634489777284273734194852689265222709764812450817459647274930364455469056475518254288706101218390329846793860861235979349424012323239148874404955792755699451833206329752410390982685014207079447957657512358187858838340451464205014997279783126377797345325665479260981407533659950703766219263082720897750644665070110834656637140980723278889661810050789346612587751730622885675852369885071893870526892155956942102594093780096473321837814188626770146135071021503131595081067408369236629209533685710892229253975493602292871382664447043309269818487890813901496200575647350697692797893345180462694996945465654883459139876125346125305717370068406500760294066243332157496487341626569112444471062760503567318501278881790741801334223955825946644003570062547505942116703768635855795765545111556940952068690187064364059542040546761870710609208841192273342359183244316458586603560742932072862784926624116613413238956240215109682314475542082743918891725924585280108238406140329087430358525778080254294512746089588189373119466737091759487274184226456760674371474329303383858292328095961363442010306246986728710906934479842410632586368218801468615095785084731659765126546762240640461529778185977058501302162628656878878153934413497042463618229704946812822512601677219691177468024773223818077369090281461684778920635019422793158018804741102653396812379847629936682065130730159205381193124113879799028485297999367026258418865303511322277959395395971844760747502468358032768406966561517102279284299078722008088213009196673316711964980985950042997732478736903167565936574597625186380894154617695839871467683929065020284545992480695452578090791300885462332098593515803030021199965707672485260685823765127736774991962866963902825578231762195077407949367231886823474371621977420347615214578784027681243181804799339029916732754776519672814232509375015770535014937271136009168410493416183687368105836817248295796637065745188699154352296000148151375356972354794614468372446723806363120382653713443141710898028536334373502494381599688074652164202918414959847023158904285291599752563119836598410102709030849644779729018426645564515394613312829988229689684842385529270065008325950473537678586592458749065692415889321633804232169071181010353528518444925675818795514542534796815149596477107144477557402835089081944861151712691054214897565700054606526922455649071895209766001506088958284269975659774261679210984384380187208743323735321750285551640618530689030085055331503055401634398795307143823366141812075344222228641707500778317988433580299184144145796740947392956080191456217988717325327872707205486968865072182225618593430129243152881637495240824057961449266612984301295984158073514519317067968518652700054267848869003048709721498053281382011377215845196226934432062612745925613205657666473469226230047223078110952864636444982643695802983662978536995231245017385857043751859689306374814268602338285767240429463950513505036616688070412600513229570848405430083136364252460231135977896102906505072794187896736573942031375929780536090976265469511111966577671536579695676149290587078098479653052643072713922413356746444970610282069500138344750941672306230997561166994202703476533005329057106702323431315102138382566220386725657121268227481105911022915058817104645347025387605567887118946471357614324187136783410303997574374490604802767354007968187122800073977832600749274964204591024306801404725169359633213248941757885363743195841476167338615168157840405971764169559549176899174615941878556515818083232201553977097581160482106835835895330580172430109204308067973695164395068643668082334594133916587762694570592465012816211218142653141090581503807795128146528343647513878181989813162612013395350668494214135277199456929048067711338281821941358193370326676169358242122211763677984709119939743015579459480736853937359411296163907277499856008814386242244376840027159640578851309791814601874470664510957108980007123849137297656493257530078599420769988944197469708104081540031223255048997772997828650726010408300677292600580363617215285071933794172541151915652350645739908584829925414890314451743379466367218848290642846217795793737359166071132775861363449929474439480439128152153399454184564662238693535578228442422547494634728915647990171822811046725400162954618337521131751293906321869697851793093834721372740998265441512089254951672818951848842613905748465154603778340073189053051374872807753975025280619126651679674953395194093638263202178790332285111175655386598276840553193378894354176259896551687303988498017051807880336175879405508981285932027850894074912488467745914564919914801789409082081517205987712282837234309423704507024389913124806914908106016367305289392962838531240972824105447509125890231100531196416384371877837795799553625494543388553125422118175305664919698588432508408593773403701467877302135573612222205669733504074489321367738036484973532165581463499735958084720912421420355448966057405987446014421663280241201584090157748096925403029587626741143309738587442688521458982949589174043475852607419865851801940039032261466169106522852096211319006080930604273590246378697261214439757074431932148522536126600773954540439307747151386881601738907105164281216661635488149550851188353993447050805792858264808443167507195418338922044675629001000705793551978291238755577318642939522059673189789986186221047934049539197497843767944628816697633028548828955533839812396574926308495980996524283804039721795750674377382778009333405630894928849225824826946198676071168124987512625368286312518112445965031181890237669226269730807095921607581081125425790349327748118864029127270375014081742044028786834659745087773505288399422632927600324085959899659669673098237111084673867658322798320336384058583884458996799304096239404308080094053650864490737838316223653166280373664033205171128551640783647989722988146756627915403170550919529410277125226193360516440183936584516036453812109197786899641905082438665725633677383872257697937076648825864353078512305636084792153525714215878432985631656904534465916731272180065638457664080815597440014225533142491682859237765870471609662011933439459677915595983402652557749401566710609285438376520063033323866861105706667958444223675341283392434932830501081671994494063286126584880146064058627054393335181321353627394129507632850441755477226615906887804792786603816235539832852943962829933129837084368197306190417618858024463895937271893466921600387318742037701522890459633937989554979329512507524393852672236739377787190311805646947149115125998108592100133610063111496394190575665425424620431907381006984864581826166464677684840992828935679106212079092215492149117077030272286890768540379114436489299599870039102274418385236957662377966002770220841674698530688168065984119603518286871835065843385693001512656275106612196942936808351503162805213121950482945990171932263028897991947921297638408086276394835713309550518035425450245417452456120409266093689044502125643621576098807246800372681718467181513499076681422648368578299624844468073170046121768792914054225351344901912811036666780149416032198648114214631105250603654115373928487275292097369454554120420256165802296340481269384988543666354574129911424449012634642601174601403460636845829570659674430675093627490673832818747392855055440964887249391186769369142949583006988372147930738479265705947800470789030798127090885600208409712446339962770286430490975780786411607088613193172811795956006013469333657970740218983033374406875940133894119695663708328639305618744495640921026511236382132887872171688107249387841116394179968117948339123056499515291713054153011223880120238477016331281675329537730113029608217347074962871280926103536217373552701883040991829727236670510347240828998854587663237427294817626381361067302441206147461514310098365835861082943278645811147255202056901174232734093380314651603881229011710835898016928292304343259891580680173393394142323897388189920614850172129619993243941803329357756281411303637477536093774797971728418368616486681219474403060902764061442770412957351514311819281041682934365426052436624960417767725755785173121857347136884144081934870443925006396831330092167389664282692403897372947260148426569521227479867392000543260713414656614024859911634801142110266393576127568445844655528206632861564318658747659551213034982959057355556626682562045069307147312626697532991486227873724433932279084365166485325958827763762744119415147405841014249215969456850471424625350751653744492911533668621436154411539710277992516979585554102200389846142708807947705729137245070165786092895660334863312630301796958349638668082935630431638458881047354143003025654013828343232222366358173556965529625248411500816575581401258276747239741436321196644792720595768421787655903573282563267845195221318140245882722187617102386722120476613643342828960091666370792096179201239275721113231804844605415836584246550004480935301178268278668014441925417771919093866445312998932118780065959826559553066613268282830311625050259820035922723582699036035024295097718413694613769717290384236224743086592816355703923726446350698853439401434615397462633482052655328064151380795691279921000638862154086181129756326680335518202782074082526635498037832364762336463550568944299661560861784628060591256790405813387962228685152911790646236764184076416296762172283894753397018911482786753237479976771545415162262320445635060702699647540111904367561718919294118605594269837616225664156134671961284766095545777939191468386807108883501606621002810640070334420012199468451985410013726618827855406650097971157096041140074732819972433090570276510265020491035811705281026526992274202810848222593688234299276341205795562909631674162242234670877776364173895250761483145377605601311497215394886957193662610116107017112015308679390850714967011901299596895186389990316747265519367297844487201647491792622097968684932748738163594750497926429572677303530571548361783470913805271227003909898604962034251129683712445725407575519668129434751704158348256099800827561923333899197701404541823605373757976601582906417486427557788870923467231271078665937955303873675868364541708051732286185784422559473228897893950134086466001013800596311991339273293573691411849677504351417052416159256850534017552090783963227665270961789582218119677758644709328231247446999800352253696729312598423200745688591141388947584380301901074759416739504492590887480581796868440445401136241952683965419863469294347971067249645069428563298888676679678238144296673867604242165136738728411084197242599115406050543994372762631361282078317395817699409939114000267825179346695655214675109587455416877038347536583488825876380515917825699602386214701818019723417317917268870578894261197340919774630058141379694864070785203396613855376158651781865649483559628386022080289494293290716271725675701977498197467301281611680853192577080708662002988694761953383591451259593745906780919492950238567126188680416293051901208473955676566694002521945856730971631143631098943633150578886981289493048582091215049652188770458553622205472899946881920380910381125046677229763474831425630321052573362351099289922748873142502242522630070218870816973298921289109900869881624900988828066724978876258970548750111440750030254861451818747879134972826698693270987248257007340249910657762936578006160891489998208515136878867779832095662502442582318626859074506162337129041999692984051542439027361778669341049218913017847803467659043330446889280420483376727833890376740805523040046792380379674452489011573445751278969471493978630537801187569272936446997615241242168494435598928359688689977765564388323338971410333178213951579685894472670524869560963692764100703701218842068067015112589460817366397799238227658635917741320325937480461403972940347823648773325538911967798582616163456754830130305126252236866939735721923350332440957401885696910066428458037805332053559310468433510448082925188604243016842001977952751251987222496394202180129740360407057808504733440397220010399337113532010298586072806548839604276281060380456066883617998909756846559300204083363260298311465233407513200046317646992843254810465707698816539193984563440113455919897463682137324226752125104853712212748949674139285405336712633016934910733143386541040122205028588248946584448991833614546013215139974967698972352467879669073325607157737271341336323535968392981775348119572839857176596462508175008989370881610945662104039674623900843212941178211795232203212503447491957547523356104992065036647258527769463276470475344115295689147070169915243521552385968359064290654841551827323502686514422496043051756471669142930076722866646711167690279945092761890119322285551482299672750621186343527998888113317584084494520564431438112206335645373467761805691054287999109599665518264266076330003883671468828675348086530984890219162733274644110942165558606104876138260282902297352257238930765365187271292701734686305258682439487169373801617479457141242962681409705931033434499133020133905875847767026363101185384913691783771061435833900372682367621865430745525820261494533317933785018541609616868849246227917930691339482835320488491289397835450235132428910182082400965438231951389659029133444583287972236780725044450151839615618855530110003105878508612726146971261500532982354140581158298009670124001479036974033859036830380106609520477455389385411639678583238971012186905293509793242806501644707155596413019740871813818173166941560568089778852813677667827683722743880622955484262908729378727704569355641894048546946132843452217086774518299529223334280727306096155749604676377890210177355627227197813642669493970245360261125630640460960948656627303343535719734299362393015472325561758865089398005476873322413604692583439882020845952427724306695231242545524694624695905622564750905602617880242332385489618825774452525870677148560405817016400288319572499454399981443218985700431866476114070662958081060555561911731491760076951405871146079591650760667227370859180451431658257089502348636207405068027181996348234651393352766722400306357702083418907696703119368762764700432306499396778741277744969409825903997247350719758870552816264976065998912431813378094516824719542842195057441902320561510126056855101993316504001212469431544153109418535183873850255338987823219938842817903567231129792146541544661487318469534254355509108643157815802057418905896310448570522287912741799987881617482223478726564066638288123331671456372577217014605661645903562920245980456888011502067175533340750748212641386781916258614478025677121251637717401415681241670307994314082168201555927236820798319996993020031423960549409447564311430001228052453731820233217452796852576329538044489687378511093536880081889717451280254986392903077766631691286291372024593839426338210371341742098662749822089412443338324715582250490045293414638898389622448180383675532789520060575494726606164659537860077160514790121986416651852990577116774381825691419535010396042135631176619329130356680911072300983843227537485932934778892218173536309007482809263937868019019077039395385123792358973546881231359120235604852668307526121400389566271900995629321292796369439897025805188070142828237351428735953085680872017347825646297148874791619985203959797261919908741462846459301975497652618018657061450143451826456334330618332207692842171483182740250722623915432977050041587129025750881066455346628261681571943974928337576699996198137177080601455822783998475060931016264388707333447193565496772473353990110396940667696630400872428132029215463291419077719046733057817209009141230744560614524724619517755582387427240053374918936389401365950776510263645454925100153099682109784189822913972482652459169173009965127715400895810286146970231548799810735989774339199230123797178101575983447451041250420108611858670589285673526333196775595780075948347439146428174645300706430512712153883075436946781007031169267407952592444188882128146747502464083903053749490647318807317899462869818892123213549759560354994604173638203659552444992021499142088423641666893232305777457698550125779224672103187216816961640098773937131373042915073587342579233869341333090580170266432753853308656252909876060576509241703243798610582177188075632570234843537639536770922979217437582850894442764993162533947648964380503250044208206347149232314336047401372063355270475333369604397851339942393052609023268429171450871450864960638547500066592918523328830223257770093432757736823582855035620247103652749906394990676154378314145617783049876900950383553121517296770054105623534914454139597662548190901999509623309314867389413819729142248349357823175273423798482976911990169450415761884949682736976463658809326803239670133213231955542826273109962893361587052058261463317831282916736089554924162028554078708474495565360209551579048454983913582024832803133472395102573796546296113938875938230000416312322009494923489967215801737868758470479107045059610456593964886575324779489657320602706895491671804122555521781755142215369416224933309360880899577205192203679991066880696127688645467229712774899938714568270780916359572487615252755715433299241268845983715161567636476729352545368175795309043540342537474947245585998171588973372102124696960021786588003184132243200367103226880180775760960656030983635883605090907126981719801095516231774571709318265928344913758376574122272157790449538528671794354460606028206352593076874091999809781069526842041419853379957112425278245805835976342443388437510531155719252349977571805360975336591852906879984782590640840504538691774139667733874522645155967893737296449212443443271463588270392421602243278814268069262529800881761603216693568023512017072328672696840245680663745746635566739920942361815097811572376459234319814427115339193472734645757283847855127656595885825821955390476093462046029758884112738692208347526006901518494477294154219714867685242673228310505898268009105685759621721930466221737965229082875239483222488052445295015047967560302793380129486527856169520393698547096685175520116812557261619146269609471782693009728663527272558503905189842105433790013854566378582598501411207535618284067851294218808307935614077173387819186098803547734996453355162910220200199420551400641638289919337106423706405971551530756535730118791556998916268953014857429967097841624483658068660745074946141521170300127228593035404718550393691563285200658608709729428418375777566413034417641019902532181497802946980532628190675114254632324491952546493864338263616936553535139014639054372866426298093901243046656984248750703220461618112944846103192841434198024861198778429837102448246581341553102553620668209091647339748755055465413713447165724188593765135763666619626514400411736596252213508107549519557268999540683691774539156670541666262189651392751136974016812390157549337280655037493642543019631934867109459093708683149814832232774451069686883958552129712475058764944260248698027456384980404194437849989911795682482868167018554219780243678883432157972223319794729811877139466355979724775843846407183761434208263052967613109307636517321057598736998248426081526349624404522267704220985121440181881416763539164931177769608342358344182387199201974516393387384424283555040448021347885525083711874465160489022940035808257299776527023070242404652679538438505109935892062088230843882045828637731622849398989922696589552831528658880556717435888908822543785506082492114704879276033730654502147625379442617885341002716746509209022053643905791535027929413757033086164266988087857314064341863876167169661333979712035070139813341153223523386660381945747707140839494310519213960884650188276219585428969205390539868910818623161409272668179643397425295333464970256152499469305395638098955526745125177538015884507244394297919309614299226121365259093378788436096918283101676530249804110454311111684196242612204204250564232252126928127750107886476317751566604346065595502358524048889702207101542995804455443614283769829931889572805110850512304151248058354476583112508700652869512498952700074108713198932977835446923332213376346766067268759767227145066418197496592363599084070576418190446756166430229485246143096012504458771539880966392780521959762323886521440043423666698429167487489828232669349528174706259587400042117754720321849373996749603361850926051611554936528297380809150571768046493965977460508136502032363880586767999289321954740621264348598552325411693849702529609078872130951129815868851911276651599839037669631763299253909698086629158290689663844740258013375122892437306505156068875601935443039918533649418724931756741720159015749233953177325642725854174009059593813607422470426250360638178477106103690745738133094017544117054752235162827876343426414556531262284491730340815902275807740288590804396587676518748683506139480484601763791290314984940729490942625553506355208202874182091262203811860550780343142613073913890971249463544578380125290595429120522286876664451527983877274466911119248495051973330618678058435585729222977467687120978632986681866399450995207761633771538302407621060631657471210584336751980721555235130551457890893219661301768127702124247513993003150470207540010260099882254495168533064370108663289989142999345996770347637531801552692337377557643829694632116373385730280984082755176005080536517811040424895369502125619819279140573957807608017876673917433679157768677514474384101461502386384672546577696898068290105425461284373765330967212904591938878748961946994452310723253658375652137437197535811107480579083464772510408056972294480385845467222914071281530359836844587583106264511304220014438861262372626038007037144567256908331909961207342174572862750458721551632818724492877640059170919612543677498890247237461239079501504676902455811977541521522096866165000187932857424256192524676468084697313032000907323527143500128069927402600207603029951749929277136862754489311867692955280653749724087099767063502182505670193719855423363493855480230309308402705618150660780199998135741987632202089891327015214561026214263446392924741367636732864714255938838365510736798888184462652017715626006682559164363477817355307322888428426056956742579977408723628522576639037879854168300283079004114123969254610615981944686198818433805832601824611950529762948225868366651536365541088584125112322001812975107704206570185940555821072976453459593092951979593754469876081215396717289037524045912390948688223038852715270555987735736560096328100895696894119536507999138639529824232567949397485889026666314888351175827643292320516683208656492443138989719790167654995204247611381637302050362385056881540984349697124320039829549893064593447168787548598889427338627317855757846938458150844536235387425327100519662588385465871553668781795003062312505848429937883204930965361552313794245728356695911062896435610464093459426698052642092119849166380191504944094324555774896179831852245142043679437674797389834834968598334341430701842422583056591010942712375491016760692298627818842274581436585613741413592868212873381532619888411140190018651431264326429538293462391478996100340453024951300039861255867990366430827942167634665129100563305422853349703839924571426962844889978371724493698534771898270311136474458386679812795524867171917339303235260601915334718390068311307456998326274656630308575364159017682537820271098660263866180497112626563055876076064206750357486577462047043077304048858302656264116322193200886882585659378964234780025535895202517726012278655211576012755244072670156625942331093757436360819345985050218646825727787094564867421138667716749952223463316251274058259091319705998604334898841601778718068063471150897593537622786712690265979064661400463448803893061558538300740481118889276141630509654725094570630953117578804346662055750228498284103797195158780096160064103346249293953136195188711972199524936435346738227005568443241556866224932004070811544725907286863713445193382165337288963753210754086340877947470052723817744123731561820934192965289866538371777433392289889102234470041340803308212704558938627255935251635927989173947356959012082436764514879638468068988098450500544431082323151414143413417967412202799883989900624834377402123332742730084034438819181017882630673587881217164547578147603828085964254305775889608192026817622572410036364238149366639245518420703651311512305357049350894567603452063406666987141426173230492542126264859234635236193830081629211389204342015125188672674411999227301714146780746882280506236961831276844985152329757740828394858197583888566016010383309295100872802437777277057586987679059980704607275051249348566179322100755071753646404048986687970840132154209034102011845169021596405068847450750854094951452448047113027092475398284507886848485618300920108294379777583852706329636336876684085224026138792560654812342347808141607438606341218084169382323080570002527709428461153939477215582048420187114863101211194964543560472175500748684676367639634492251834387804437481917381105721128742302818190886812445104692591285011190324772488888973376600973302259261583187988466603851993420249937764367654677364096036020387004307662123736134332073599359105238846359841523097852200467855456596223477206072349932663869434446141873238971084066682532969522177771211734491847537777896179779625259939633101256509715423272392791692899361648967865088767982021869113951252068234002518267778589960103041621719412827575775099230072157136393038327098445449571853721455442780542559777588167072237293148080279607265549546594622159659363517992175293970049481156403214964095213970692135945733567834743323032352490050778068102576052555299162441503456042371005913253826050944665781280769041493451964267669233936319221533502076017028763793999567957754609636555092794857653666892543317117484463390116751983731389692433213295007886754317421037688032072197429981156589306712318300360166472057530369631900738849162995304329616298952351948822201808595364457247298352419539148239690210954141331638005176778083509751036557534051574913579951165930474114249127347289755463125020934879355833547330097342837237891243403040786058902949868394162668662450257529210413613995418017211309445229543003821929126494514709160151633387649919499490885399593271467647627516632190023742735404109409136224614155810760659417803791689684382893998198965439100212816605414990076323752055519021125722573341184517318655586211013130464577441720765726600148652646331073942504931360071889554474417032235865928273044979564897068946021618995942241196069740944555482389057435406483560424618434892758843442291416043587835276357108131096868792102189534019436603694738078953439864983741855947312526019720510043685959528125745628544161910912451454765095823250805801047559882565047587979009100293066444442521230086570874013066690810485534986292994141486813775135270114749333730225304457423746834763110352832823577300066375833760357062462163908739663650954020445585647456940370320519293003242466494206148026545569818287636849285296859335465412367346149779529380022655115787316503359714465469992768859997276831378994647354609174827124742664929285395276648751441658041395426473330348441829997982575593288979854282645173577758103618735198125098306668038542325238300095085857213628461280917131297340199118775803154095225101024314771511915866357669931996799976181500066660937117139854824915826777811057019049583289210574824115845514768079325975790598645890806882657731916913936746775271220653955288545223104615664434997934541524072335880907635293328578542739827282873820305117755668973689419339068871068534886952344024463396384046167551505958813024547987693805958728568835887415743181823790129423660271188344216898107163336604535381347377746275336554496459111619012628983385007712309442486320182596844960865670974590341373737913869361897989496382740073392835570122429099452441937776863990877989759773877410365730939564999633645975302553712039946043778035949065709971732649796884467964885706518717490714539189441445422226938378315132325805238041098830358736903424111510459702931596879258539758319807966438672182916966017459796296038031492646781146563133480809092611919096313025828089197780502578976687750611063332726546178931593632828564660734100314942214478772446086575111713401570074549777657778358952114874963478522664395344390169085095941883181415256903096146102560565222426763031320824736152450402014436236479571464092002061271222273486149450038475644148684815430943112132348175742890659339650698530542810794700571450083266939786548387332034637150528523646226803004320562018226846143489516900040677753293359774700609805330680915519686167599569737947552484952608647938622662819584883852910316667108846638054543647541925226406254376606593735152435235146268095904409049310189741241859224493263283706841731549099907614405957076776918544698100058891780862399042710141341605877970296132275736131318868946750244514961859215931073257323601146635989901917522006117683082520385693405098201033031669827402452344125946527184701562252332950473292284718883093747392573501837210600421774040010118228544852900772747008064300964180529099728695401735934524914896821325284837247431556510264664670795424922969837860295717108966660944269207529689568402642657356455228739063663192813052659942802154732528276551334093074186959526616122353621483991138139498911887294409738013468052243137371403225779766880546938159266503052709201616372704537571993913605351465012484305462643302397834622507758601030909901826532807524485379698454173857124185144209223380357403536640023239874489804950358243942903911262867151323170391383015440583099604388505555650271143084866249936411976180382103106966930467885546823602565173982152270898463035680855777700237223168112821370930706891407934876334483584232264554583038822416272751208872584100320740056992539050733798402331269571124919150076562571203896692549758252714008467329647331201372065677304843013967368707471144565045324523265256966412902624043442813449474650169265630592390227259149019979135075650262927706975534390753821669383212385860534520421214318575400737913218229293185484471343713120101335851775905677783523400213302294218896589638801544871266892642391553421270763461758285199408414972552043992831202575558992570410775339049167511490673871071282978358799927295180422439666079652012927172805255232744409727733507569827975729808262484203956812344933876984796005893084019355496569903468681683649080066725438412082311231464618360737597800504628796603152403913976391235708904536062073294712782157369876747646654149554215429655398015335292370695453790612921909425988446405081100796834820863054333384739240192905848973132270653787962768360289490509219571254494884238731346801189764995655058943584267512518090591691660043250321727693005091253740337436952606760811488593569183976170375462179078315954576004393006573023304336588032382306993293980941515423717533675969542688127479981525442485034343725647179708487675241147929916486815680067448180840530996652038848138171479567926960660686506687808953762591812176000100961572005707553525235813380488829777843710231997343286976304267798459656949865131167184635745778211781162876358023743560195242763238933361911010191656225675896953188975573406406395927669327713997609857004580352294733421504496333215080714465471528906921012792304636084057791423049969562096568753934293988633188605653358766778404393210722866901227019692532166479130718323824865414118103080350655345198402614530674437012358069742908831487653554674272399585307025603839856999718116340536245473345207860095705263393884202352129981878419330090347478077922463038294137256190257354910043623650609083001677537261446285687820512086291451652915867554385994817989271057141476802737125766020672782005182151792639077748162349235025407192369307272956208569850918028380673530374787556716676985941273027039306377353473698878768841824638025101348385080295205716940389626319214875405029512464967037890628443449422604289216405881344080395590866186099638162741543185713538930369211450652985709091102713713851511298624870728820114933562608201391710500287913480791321347836888313359375950568418416854933191979773078884655567253496132373353429587765635108960450005037597621332683450433132103738376048874507941910861313361126384268974218221371628818389487075052133376639834738403521571337509910889351250477296419300730564999506917234274737274532282189419574513814765939383824436477588922208817274778443413279850522008728467116001780201645381447505546105851974057921113735214738964182388567052376494128738395843095116599394760912828589735402008641895838644895426075548116481173882562022343921069108679156450519736107567214435913022581485809133615315760436294559972944727777240665384978347401522214378463400930545273324868593342813350190797279862965719426094896187833435116603564390920132053208746070517765105992084691512686638915203295905776457044941111275888811586154230750666164331179579190411254861395979724877297979668889059656395331817849263458657311222421526215260380153178719118627317561966964598542325495327922656442313755911990825796936214853127533604603586763724352844975086201279811046454068828731679819603216362516428090648124498906717920547286428204916265474947105876897435866642833425733890885094205359233251735854172681112844681176504809248252244415332977930003556007735339883741235029584416111239110518343811922627408176465978011839818577850003744655019876705310768226637604937330199079071126462290335683971385871784922577834854446061026373748897508503696122509592202386806360188846987835003770860044953254779085220079180111025204266082382584503600298998772709597477227234672678384381785343108585573039756273459866956538255906996110761356823035346830928909939003095116343564571185289156961734820803239783797560517339319157763374920930616772280239631901171166527132456202868595932736943795177441026067953636406986514316506020213330210478583427498700980787329340325469965037985440769782691471555012488919496701559294320985636169869379137123151309773675090641466947554912584415085560291356693240638734459568264766817042337879688365806856106463468546911245831377852033866437543436350777212289134883709826908504486036267717206491108824158739252786515823625726877171257389246946156769581244835085963766898805876746427484528348388345598526317366033236334974197351537083278623321458297686817752175339515452450184932095560088106002015802336056161174214880346800024405374216747917061248499254548473557512492731248041934716712564737230001798129075128703305015253771520646576059617272560855516533173929285537951294736040219152269868406247993903370813032881309294441514665838507348018570453653088100615022221386904103461491224523139044440410435221039674306323225881532801242736364752872456395594810674844800369874419803660636459699340033992897824320427982554274193904500030412039379990492576576654967601754580021487622774049549224000426933547031032250058514188633128282316646857097503413195316689954774237678124846886705663337304205204605461183013427688731476373771774099726339176535135852674352803677240369494591514324011822901231240324237934261099338285210752401768288468273106731649184862942099014454448189568310372932703144991437846986599609597986652618794482624896362618496758044546043886761502980319490448072504827785980790152720628264054927086834952376728161992247618609870329452370158086125003691423072704634367979409594582565680368296355532403006288868296678093693691400997391796447262842641376761767561531259357844339091618499366121158260039144375398466787591879313151819755417128994218153336194315466398387655436479239717417760372165733395381207814355755844216490875097379929805853455470084032552178580431412259612856823135961734074036662300535207119680109878233457774369660360634308215928689901415184690776533367298393697011503084559512932026658342378832177194570260600303106029826759360184656573171654764484988574427146979085884155033650108095350940946142039892182999894629026860623872477394142308581810603606597435322979843664925896790946359419455440498045894458151465702488492892770021244493065624969181273238585491223589148306191727053976818536997920542542711759190582159501072499880709117794088688045537592875669888235956453395444292586339270473909958395502502202221115871222966144882836939293202661332649505064786886275391143595342847863507517082539138065262287570623318551595861255133622123035914344367923751320356518541174127814998038883681605355469193311989541460561787686622308533994057590075783236212894809054880263656142738762493977997756020163654291605247651129835251242232485357920954927290879816376807864010395646053824773137695931656252092464305136949865562205252919701285366042816882036326605248922023790006298518730993557357012615461663627512559075321395530111705726036388246142526761733123977842737533462573549311962566848227122378720688040244135723162768667525649652596994579073332051906823856700919142116883046405185029799099073681814154533395507834099339736751100546868126393848743815457779344150406350254909219482297831739926469246626237115854218209078072287590338396694813878418568667064581048034283242891779861601552324962282315202326720971321902411631646404204309430857301797899769120680115487214667919397336005745426984836410147062780986213892964161735513385631878199506882017887817684504490753546230561522752240339449647783788122748306829383159974354208992583620286076467639644860791657918508924861596944083740624993175351198059131032127873154285807965875672021745574634569807042088689954337852255641092377429781680805955585951205776897914535739576400510814826315635503183218174105570874342877745333753747603831833939277548383429417441821640450776468361443999944797170508129107754669127508643942784691323838972597487885699889431781133819074289013709377258101944021848760313701628659749381913012825006946266167317147982043004349236859886558367765069739554924305625123823012719979063301594529847333981356914088853379017370640487556703833124122561305669727553773444011380645708403355180453401020014713926578771803803883994836909591083847484391216094445614640876414188695159148941234643183978131780283977390444881398390784594893255162215209059135047524760717152537662771260526694735983829138061832945781322629730163575038611207195632536673129034317881360827757431856076187724699850053539113617512709973691740568001442725593893046968004996683572535661854657181378670073643171887721325690906435108907772479376824005770513899443189027789289091018898495292766855322513518483404063422127769062312794621168626802155081519113224933197331016158526649581063772870348175722526896525622001457103133659296560675545758903689308987243794807727747018142558367663112928773036866517962105560838636882040927372570669612412658076135365238775483985848010085569943808834510969196435681971666429346810147540077773564388607640476447485891034278254897717183749220547120222662776982274300353642738161379154119639734193986104725767420227101026433611386476468813962995783408603275255871332220112099638513151617443419271533704207513062955178728446049243664736906690996464324418205726077741209864648165732241245377440130828702769781401384552183367159572071195995612787630645020150201799153117180431205308583774016263058814383560384871084717151392737061600832295998006416587410042605778252274645568350446219034076713101817677165332318788924898444049798031481680686274380761364543952922359158108436125678733944280582935652810864262009744848068269143600623825873311801437959463267477053841168523990254395245517294595612313664782219995308570105066627658615198761423293676906811380538052693631815076846108637774044230193270113928062324761999901360033239579804611070740553347909259956335713497267068990291830050703840941529045373429234908205040253353965723507572595644703550957694027302705173575355664440473926593405384643777719436804482152544239235883704362169308253639001916483297391497809752324121573177484632409769110306303306655798507026744759677156106753622541565908089369249128011572908364215768427812821911647794934063425818425766096760364121677346357298110863648243476426107782297810075458689583494216824019241206402045395224231678404535593621187354978680931830908651307220579569617290871151778591214339772116411676560936707935392168546409134231469029704650426703722015287674993358571010330941423544455176626365372312917028184603543333737817624300229419224854105537806100260748176595457680582450787391804048257261686800306551051585339546626670833192333048337328921946529909789860325817410325113671990493924864702709862974477840193696847469033530401340673116653422879820761297967502467420201274842093923350309979248399094901643616924205651641735344325223164195928511446339915067967906709474312089959307255405612311303673874297719591427262894712847217392025618617300466003764690428808453696412720289748262773231656373346175344933237821298926832978540417761249884156419103606637479543893833017974814473408655223498275381562555915439165365334521471961692998989811045016998017971343292238998129164912134083769599480590498034134666622833959640247396389901273616443530662643849344324011248942542171823633976460487408136748604401922553856432547127750664524353228535336444977360849533683415279564491760061689289284240474378165038489099959646808577327557249227676671194909226932584464541254481941406078755198567858434747375079505856421473263744152886395294604850281925532724474071661254045809477769037732623853210994093519663077308988831465430810003960377408885501503079626154430627862080350294848150565965012055210571381775895440938876763854249775995404407884697535858811477048603491291020875208955097005890264577572256519147731529675831841146822745271410340624137550570994578445544643977382137820235506252657911478591483039321084249390076640230886608733438520316279056696931212147293410547467406347726490061374958460518956297154923473142932316707176395336677508214619615607694026958174828250371738011780748881207650860637984706525230050004499637817827672297895923414200781965475474310703893794320712102294049777256828147295536568859759510361078424813645874182756899943235503713820032662011781435901674334973941792206043508642558879112266515274097617958423427779605569879849278493136969865297863757997858473587660476318101723792062958968744975183788888826228906680419944707880190784153489078278586891408676283477869988151911801992811227363103047989524677763043934017057038703923636653160037366201375223727124657618048644526935089093563724473118646663785202241174652082425347775907747945547958198539270324231982397726168776428154621678795524546737954963648388699148692803656098776836469987021917293804007448787437270649407687075237131934185197024310915782950981067995294562049200734362336583566506143880154220339056235380100351617556503866287324793406105868072220077053753949643878336052663851361496636214299592924225551854978446598284696228722855115127495427872802388675607721657786272553168363272617816641369061833604566365267866953455820473726170968292311465914331521063993182476631283123756570013176336239900446831300426370512687200993492964022642002369630123617174733441005207439559458727045924620077580353546161237389886567849745659191974496518551794890507190370584913198333741577875109331736658891306473283896790756568523685932295293593532064272065980520894782048073575272786502484881296153091204677270531451462758603500185930389082395368585664374019768747642977190656607475782773525558946352558632158944363605870825362021124485434506098534288475386453945256558851717366680986521407217169751935266102520932243775602915045542872227172182460375354356070954367000215937370958749847709697525246105414969972925494174096428489274360604490455410863200925214835178308191241814355854693991808338397855858663643078150631926930395354070559006486835714933036371918823965258872696030094718032440772590775320124388602310388465414092187186823981567190080600034125969676231666247176705428510955454984544677524672757181538507482955938734847359563073809486701460806591933243900286702513768400044132406807098874891007709874364512019770736765814632625624028987055994362575086372407727408233964082679437287333128646754887139219879982470924057172703332139481589030995629758963056008720725284294535123021604451003406567391766302581817648792168752384165405145163331245627177679799573826098134767889316313114654438561570597063017130643953195404728654302775241394912515837937132318323873776214416246093423133085462961123836371714412243278074822924937054963064495896669217736706037289146621788841605544634319470928495881607928521639482948498085687587267524751627705713764460718515783378545727567080737773391691605489244387247766870416680129931889608069113293535533877518367611318604436084383426315953713031691082148014258716959468136048052211008237978610682822310043220885563930457412717714290597369283609232957516229600053941372016383563296218045317124644516702538250047402210716393989885395429181862684375665160489231692992087148961125111020101883295229998211479446145020140009980758217125584833200724278150200882281850817955214344426155518930776696787812739458226290594744051969779393357196254821934510040649482100131403950660275256351901848852752132351821408560614066883659415148355403700286050732320252650110753968532882493545919409982050104672235170489332295027032155234697322213892004032790059520663372948468779422162871139089279008567367544592560812714161790578542703177696197061620207875071311230319603225494985368266785216612589829290944187004830027445715073532051593934917563884031425626262128726444961358735004751626917783294023207382641717680702368258465704064870081972699687306592978495984156444888298720868533452339600334000046159090687356898851584860521371217772788792158910707133120555471813985171882470488739036935958890591808391075062045961815325087939870869350536504556023830191691617078615336381973893761310450596324022820297908705042448512540488217004384031526440013065997582339884404062206499564379881877145997494336246974182211929683132985678812281486013962129092509457816780728281772682629208260121939647425820767168402318812410837623721777663869172099763748138086032935104943161965577760501161230349504996301714343214564065241753701349291816850128412186156457985377052379495035613870559037903402731699467144376625328927639258025664660771777476773478580194818532711248044796153567102997840314919016586309303293111541769738094922896134632164503094352250572343484196868187694277983034110075110346254429788908538116111225032226361844140138550351690668514976588401378395429363061297021173472992783189666548319113599162333319853532282639593291499071674776573476914251546732658964204491647437513848243181226095843013613886405951948140287651944155058113556412680583155180264841488694313339504608429677747719605791626405321329111680553080337379727579986307265977370056869813440846666265674018047861552650968809403513654770311543470934716675819111189086828450526731521538195500141686788463401805501333706258597871928790933051486691200654266871426008693120849024439795820388373871713760743033815008833637872088755680332736647279047056279391069224128826021625672584997743748386859224589926176716867793918683473712855015292775773738517208085408466593571944849190646540551813166737876065247121055839318359859223884170646122829174434643104975755582767360544075718860834979888482634389998048685033527061894559188200121471685303071272597272845021867474113665903371699294375260135173512542593749414932982112608198585210833269373940994668747161850942917832861609155688933924896563516397066704458652255636364749844910020384998672736950957136692830320358353095553226589281204342447977792349616183242516627460352734174729526384833210848859532932752571707817819466136837313723797281780030956021494130932710537619833246089310053999356605899556239410103189715308211569759663336586149906874030759489031517075154061112723670512083653834600549117917008268368990281985083537224638593047792691077119142654061686480441726087947088381548499558547431306562207623386048816992585852056167630780946315280721247705995375484234352680936801498042515299991591544349115633260670563654532648171737003210547027759344733394515545189600061342829477317232734242191093778228961097563981089211853930864643705568543047864162220468324940832003307015092313090658782777875892158219530456130141379097037583872305352984668807491209873905286239060303232172629320670479073437301666223499824747987675589726939637629598595321493798070390295270521113248629962671947025390826182585757552486065564738168772759802807993533080672123415603120854434570045459877430079499383537615279083951229476080352869181853363246191603915257706173669222341352585868938759706827838682737780120481256731897130535758274983188282004909713299059419479459257119297837793487602356973388530177278543319120978828816556680168775172142912076439953923389688653241161545036522394594261424444500947848098622261180569466937829676420954267664488632651765943231756904187016954067399877274726412275396403957974712016007586861311835471704227389609642575881694311078053520326969477183507581050686364988760898439437960833054493674848447946208311464242106062138685035450771133660989914485651198576092172488099763452371350109647778568659170664377022878034413544673393875232696809597128505018695401568610482932095296572235717071848851672845417415601894144859075055393440601357526552668952073652192680702426461326821551341191561879297663879230148157982683383565668609039659880898254000596382458409854826020604706733192998261964060415486011293738837692834349926065238746460083131205681525402816859563171419079812052274923496362799367754282330148626036961160101382214611732973661231181421970137875303775037914584515938596352276857549724519982861914811400012433198451208836411573057051530877480960408971079408975766537220606407753954011458946834405552824860326494473785841513636065805183528774762495146505571668521062559373740952898089246603886785680312453909805076295644154205792228024038299914959688952829103319789453997122283391529554662126518220581161782071392356438073270037116388758714487587744606513143665197263573001192178628600170327987552347815116129955423420820244834207678149485631150742683095640340090452263572784166301935940174789279399858537478819413438002601527263085371229515989975615897976477117875040840183075974750305242358619783483337765129379798981830689417053152594525560418151815698077817901173192263529088109574266361912543518166887495735071028299297464456950779129111298320241964569585837854051704064174039478353422409993433329996577454910707780106855585831682674434898382604771711952173713577625541784968852189113165610815718874773393661949045034471980848600745706377101677992855244073861502112166243390689707135659123096536123283034859094231535044314049585471704344057066735929008182493880258106734191403825824186322656058504412734611153021820155218291947571771892965865356222794756578301283164535378820326345760668781628940276090218373550093170248125356829465110790924640206502642437789675258510185673733796812438302756145782142546901866396632495971911522702853147994023870289766648818592602879124064025371047777296713537074232552863001725982355625293961409535618894096977825716255084905501774802476298355310298812543011364607658973359705178629518971473649467936961360286058951544014279364392326865984055915309569665387927721518626519778842535037859474380612137433870476494715901663672257509315063087161175817054391527279062932209807004651915272570602347987994494345582178267439946843759241894807950063739005222675229400750495979526388257158408914746246322145220108232781913069579228859094155005923842609017428970550286283567458559546304785685344380139437191823835450010640050347462618794126479575850562889084283993450450386886686967737405309119433218335299361821101737941439223489308434076190296339857894657097862888144284697311783123322615514155158684448109626678481616875271531904274355471406684322207190380655455761475182763388727788316648369734594378503727975076379557817601952241505267283563759981563321450787522818269299121942389693157390406219611402872893509837769275661227881156764481436375204367093286159339387130563869387287336930980465832846233662925865774319995949092874862068184955874975863231897560478528802026284421685625584567139689728021200030411511255114333607626269806503366924810785111971796604315311559496789572944975360655186345185713699891867997810751969873905288266109010540253876986902938848953600661536960559901282952688880398036846027672302148803280931769964952969049548779969489022130418190094615115113137815421547812921968016330647313633039569752608593777459751694072296463010457624077324673468042347560286136570056616368605195931288543867451443640701878909491779765151441791439607956907464082772692899589084939234790584293518509871329667151109285687963738086212510761989153082509171346896406670340213096731333833855642298720227358703541452816615429043481350859499625381997952743593824627138079729008199441390622357648379547057335830778282811808802127059870394564925007539964662488250599463078917815856294292024727857090616622023874533311483172641254358990199923938181248058367437919904839725003831435014619112415901928803938864290394593330421684102573746429156335155775662775681037862864059252940798589951045849643733757613593317091680082373661633341105824347111819857274154812721048204200202210922528857330051625016018527852623741709509671835565069732522527486806661352632966177140515306817751509170984755068445529411814060620527657271468187252941977597314922343399799970515667820996832726103565449601834368223236013779131993784708306800005315391517755258355928794969589046989089993529611658393634078349935332416823979014293865371612892821002502412389427222483261996305194189166719085828575319029763152050866418295126779829094708763444834862625828960041103607840987406457654019223186750127026038614955844618023295536491261067016171724335515492926988453174506568777386643860240369227803015536044818244732084323161140349023637232022414069313309667797895314662176441229438160597973661117501159990206151241734777105515002071390418354240476626811044403095624015203098816552138489400845428564669331508852712950790322692632525650684201277509237344075804666987790795499666038833270524263500279365469349066921099868315111802021779523442471148084849356397613159120167890067020190734095414642380978865382769064257772576108038923943094753365908198262654861099626394879111966785676446318864161651436855458286315943406094273239992870217487231724599946970151887271631036708281450816744289975995092902516385849836539019680801414637751761452450417930742142782430912594536754908276714606270026572221600547293345046691558776512501319546275747809187181791148294701382315790030510669886168694934185438561176702970519341951032409234068970044334894560333120894610850262327217580189943233797199195359006330028259897843736046421490354389772726938961293181236109214003715084085158698824091126130580050420087464415105765944821523058023707620718238321670108079966307031792005791556225600003588624705605345498630744018920261980844316677494252423779917317078060755457709918406983492410199088537547269839886616822100350745260581388559783738733910446215643866393532076888848399126174280071298844322528728283150740906828752926074953036507600047251595339917535960661790977821579503614320937212148086285295374014144085484144613625199356478595207742175750599238270582205566018860303128750811625284234951187797093905431874695856180849696611961038052452663380786523568110879342335340245297392563329253052566276565733989108428560777671290311471421833009356650458275653948627147197993278423152848295827336363959388492221029860997508474732860856237473878278542282658821810082173911126254773078064590157810026501558289588737607928916833360822999608716592524406679583794785980603135940266337187241597718951697097522528176134426984648181051815266667144174118141104662139711675928574223238035068669624877717124866272573903206389183729189644263380337974470058643278542273737760372356031871424204226640087440709137213608267706761250440232605431153415356854288477572241025983764551736850237583063411045838757964599047711220529513113492207765185431523096220839332248991787582225190636244954097804325270020262184452534610721814112998505594044067468918266630032864241319171059187594497585916205408368667802469697642802673455849960036878835300403381576699626195463917289114107764009230097291455346295426480098635014642406410985300642409262243075390981864431821847344837503956815966337204179101785063953874589349341534922628036586160080632113250558371187990062552956612309910902008807975440807559271495916478666250402708028140991010443781197229354930882508666557113541980466074500423743113329202453851943556063499316654442451978389660218411616124689302760001587233370315723470878143945188506718975233787396648711551970951420715162339172018451588897721444898969927598186284847901846790411678217188580858693337037443981292081088843381971265391071156870485953395600580493619794679225159976796657912951600098060751497823591288276589534540951688103624169183676929953592328799970746258733733436662083755064650352779229297309119088638322034176880819672863929209664134694443576866332309373380571383639971969715815437056609058571395311899336466180843006675903408456585159936003306180790278512202435950907986490457448164429793073781066041236263305286139480941182746043323876769569349655760736275606637012395267777860251025265752470362590556646548932936262547584565919738549993002588580339845798119880624438227530908321656674432976878813661691722257847456274478233543200092337726884662554914258458513522986519174854111827156721426407583898274127132655684038172286011027501985397776886051897307074515862539786456491662177507529389905065712639411446844235373042329728927827256121662487971798637795919600340911311348174948369314153031664752465576555736958972617906020583441999789531499282634322056108380622747850354326037367530555379785728199871447940754203413926204059937649328235966743393904994730152710696674207300074653080597832018984912577195694610337774132012373536360617843414760984192148488767503179642972753845401941452010932328038101879417364649539266109774638378626208189365022280854151264248196032350190309318755940063546691924942134461161017988980648281613967587343716031167129985142543783271625256083233863695643876447759930134312680849927676812817229207640887147524023685902969864788953828946518161576012640142822896557470234617196981285753925328164565555195088292464952854247693382331678813865451949446904915198615940238186314213354979326205306049028445127523803883573567035715556502595682448314752906191196010103031282221226952284044197627387300854873511511451564121575365944201250743012272463823848951240632849204657842008431597655696833297706664984330768740147239322293390621086389368489238063799647529373467103943756057439461587107312265443354616647534290549276012409172626937739867957031932329501621779642260959238125289592934176117720597425908948237718747842702460882704060865105716391450873788491995898584950126377241549404002415717162577632411587668890121216553516478683688568044010710713090329348416882943969701002099642272052273826936414461733386145100038553441263404673629671925942225117344371984733006030998520343273185947113990598872401910582274998515662281323700544019939725393056656038777108580740806099960697588090269836881277309417861301988435172687092471805666540085978040189814705190832134875556149593252780932017777411579740044075965794519842040900301261751785605968943501319019624621984797656408582120833639859684707703455314086305840352218481693145450059629315792176050464724380540488438136475132527458322887582711906516195912841738453827688812567627129922846853397681627107196930820671524718689811765162456070438169570344464301250046496988823348207901362771252985103085545464299757792377116730872301855624807751367656532427738562781992012129123143860710129954199607087914645442406098875391921022612076781383431673962504372951873286280603986245697854578304235904115548115182007478441875292551808313845617174560163944884206925533506476860608598037913956248109709127969819042204692043985799164012439931159057027876295438291269421779455330656214463710841470728395999371123433238743293961736665241046331185523996968937452984981511602641627267504167864536027998488107804206870614756436030844830730904736735368998191850206047679122695662856897039288393330854477548178692924305731289772234869927809459457622136026084365242058715139970795965519025258606719340533434492321516780069899247733200749874753139452757590430865541518449549167768664764280264813799678744402720878381555735741280330950548569474895300763823639427158676802367314365984113628386573114659127536917959804249689908125860739331640046758075923782207728839567573392360907590321400890837842004872349421584063976342245911047786070861513433259519944648812838331098773609258910868781859949058049005714893552968615139387505082588557302801921293391200437209040206770368903177782960875263554480669354501365859923920144895177877000515098341160521141579755383148115419807283732099819434599530600399115597887314601260608419506247100165603595636052652558734272493441270786850005657776834512293413363700125026683507897539851509282163652781636332979038492712833823574513789664724278531800574365546902582815309317725360112840090871110024075175416207027086571010656885778692795195679974389504662438109874360229270637500717041254962015176586412612528163592831398321917845108838954362529902201108288192947906261154500871094956795247871940582351163958290559651728908802096298808516541419226007851446720589187226049476917116013319058472487631793374153519355261703208297111465152332765099991596678422664047750860971332674394918598974035276214976431319703135832354936876429020000002844653237325778380869568901931600441075191142800431887861439049730420287443326164128076428107785886272303845538618320413674375026613015894589792079623779670947884224565789708364483491179797680635436046353370260460768208619497212594366494590197385935555701035467084712254409787502719505187204169513815316014911059254335082571078666880408802107185656470748495880460694647178683166216557085901980668311706243270640483404172230262879932106257828062830223226331508421390197144278802827763907035752824724611719136887666765023478098565447493225285527598673329756982071510739244747156367654044459899220524740637419911249415208312924016654431545666171534359718585794507874066346818898731163653541725016543360107190773703750501584806974244726131989198677223033190003152459229318673334620495318798354687242987516269385610563648651741335197258420212880244757876710947942178111749761557497836706011816060204172815911045081817391771934192000325454707174660688228563128457619921502748698770281553397676810422310042853322890917180277634713028487104712776739137177188688128146115764673233364307102294760029198167654150382805011342170996090432133349957073278288638447582154039862452590251289883429849340132882113631086176073921404599072696465652451656566579370990687830930283002907255612321131407184506135348875574092360285480397294676603013993586515636341036703093664474685843967085078086185276822081826604018840911948449733776754405761912194479840104545269097765277261789085783883026709563727103344971466959764243269860494369159025889888690220498370292291089200234457805079576791953766998713122174405349026082539548660399666686810320149327227654425708141061670058110909187559972861510462430366580788203964174112892091085972876670951280617450852896081912960305003696560740934978391055015990166683698616834117949815679826196808284272351920962168990178575398045005210170183492595633559146366871480918351915325005689355155511064166761806451117071066002079542693559482186055359578081796863441673780427483318935974351652452132005205021130739669301140300156242617790386395553117213013163853380127485364944494229480974887198697613383724096278505309938168935000237357231098376795688625264148134302302158912922447028462152058109245930107925777780103111090042275648232271632294478547279482353475733424273797972859813355789195354914404371804966244815844749511797317161365713802561697126321831478724414154921436838407832570696530272683199126294970094142542197726238056691454715929234555140252004545361833609800615106053548059608971573064580417741965238897112613062252368758887188562622266298136756617128300093757754670713868465380750844487378401041424788141573119265328300742554907019035295561788353775213625959531510989980077554694258613413428530882006495202484397353748390599819974559591871893424414784801768900478699964656672983140422234212617447608749873432779102674433674708074586307526983146655348578154699001734058982689658961515378929062704322684956998499246688105879875549684177715393252491634123329122721002341293845629315171892149623803393007014012678551125982764314749366470850342414998360603290337185827298649686466801137450460031598648734561789870036494401375593019958291890967630351286908953598715923208556085790431942769038815304043859330815705003686764772089403354328539097272086963694389330044409761710355870707844784939322170622843336627550609031321017315513662415699115320991028077584709497229662345830899862579550114234657558013315633828618071119880540557188314373452019420947764688392611241756797352198671995145042433030594138211334448869356121360083265420304141437463306947457865287417574538096993980973853755017046656518143822803340666932355790944248314628757534322626064068647845978330794202103892795861846445478907825447072866215402161554927536868569688928926065632444657171811548268588383602747680146124040596087143415772906924614202784837063253850402119875196082589388416356849907967674858168831083123482810265302773447357798461051100185673090104778492783474768210876116188635717759643819569835051104710446353208051444593330831441082626051833589331763018354999807189272103432856873467985317522991467820100241468360524840710849473089500078829620345149507928114972808688545200035267522655026912940048537065056771923565221073305197350276701393669964496917205752369442871131081431899088187431115360145309396559317266409249096069453325422931476008001840829864223807571765044052459708455897484138362777135380555753863326946041404432034528058844021878072019643413364066676264979433735856701910938507588983410161942058982208286227239287392704596758555166690583126226355418257576890849543777823775218996197438361409282713665255602251553998939717722731675140646711398736980108942271882844803806507749261387118211948805270487818502247404276498477246014676336511420371891720181628813229092014850299108047091185637560734694922059424595864089049812641921777194334779006753523575340568520337814484622057516613733415072586068262929672734480825324418845811513466479913671799113596490957253573751315183192821731763810232756903094716808228294510415858924150098541830259603547746798520104661187679943875831503349228089617531698671267567065554441857073922327178830096871110274571969052457309630337216186035341915513304149562597212711781175709054428293912392833028124761634451978484774799768765745694285425359263658277399443158900281280238771649450504769910114516184728733886193556525532139480843790402906823678067225467143364873317190806773131570897421567206118030909338782753235103411206626892409138703741599633458380213003907303748367998863033844883720472734595368620617235721789135624322825359986120306657756520693722105643552782142665445321443096108008355922768712422781723568282546964247403771192035850039709788292074906422630771180555085627130690777225617095379745380650292790644537327198762141269822569289259054098492488242703100063717688921378415875237156851548006418341390223915270846485862778921545452013266126249407085701342674290639372884464966818299875246849799042667016530094454761002888071074367411925431622274371711487477611352492037101437700899372741566121617649838416951553343830587109559623814227303386303660233382959280821638729320341890279604244189417711200467167758692972045018360645285936676283007126827986740862857655994976690696636231164854177361042658021250847768647093701829421840225827370582000147656565906545182068123889960937506228833000727137384013769083655188454250421060895847906125542018744572543330593159290915210386421164871545173602050263033990407990552035337353362495421510980205339229893391491757047948024986376286797216997322582832115275079867841049665026105267892669169339186544330535417535716831757722124321184441545941629403047002533592645626145171224469645256831683856861887052304725491879684865299864063563972173529047206979298641030526050229355688486671843844924777513373071370085463965125050711796670478123279150402478464048623510976162057945444718292702826977959729233625340625697145708533970864827267950201180237129086120594023124771657131925906760954588977622497662732770827860522126763504873249386587341405009728852266547112182074753562399130866148413362799214379629260686832486355298454487117012550694394573523959246214502599069084302777678911923335084627263869935371823751713836152706722472564215973337287396580623475023544516306391997882997541101358647602489022086888078204677918593171288329586377836368374693039732996908949238813780105290731757101684583787722163012160237953823859381212836942048730757560111650969265761132824481575900725120449317168079245261275470252840827104408477423504865281653997742757791667579281054975897943474294179265851957607630982225144337226877150759281007328318156458192107826916695093592409228870356167635733242606777759514601677701596723695848417410838633544858643135796928232130375007780739238635440368259692709549587626905778125343268862529442452092616039479568909746725051522623856086207636520597594053191579248948365538880359301539344011778936452920441048866312202432659231311069321581682130911757653198534645150718264553577891941669148214752637472331349513190106824584817709043408661414594891921848250138085872074127353858084688390990606989570762316525323040376331807058076687794032319226563374110424906693317364417580061072163594486815775702454381785435522111659367240560455759830983852107318624580151597342707827999218792846433833581954851758528368218552715532232832533402394393852809588432207171582239648134854982968101898144547136509548039958537354239766291784532210638115142220039238808513548111446276639346955911880385319659023917135415584825801793060972930166855978125831599301194967444190992387924663729200785375010334447165901747486414607856887980846839315463362802717804285017272499552114957281834228209152625158362183632142541621698128404340733265205061848642284648866778151474555968336136315695111499065590039301601269953795961554754497866524364436818056066845660683053595576007808683082978686593494528670432127517416507091615411693241424150205325095410366794775683522480214968317373799740608170028345185446192225775226422616981697049592226348170596898153686069884326835002238656120441324030101539059445393780727115627895382131951023378124964563802393067154505625661686726932934356042143174560435153125344587870921128080260680819478724411690527346691066584283375971923829934019271896903380799464118534400691570966066763702468307733834451598605227934870404236226504188559657897993603526066346446186939667137225449168117897322410941545224435955200847405299089366544138290028413525625162132440513754389574238818751583112190383314371859762836345787605381331569571411494021786847473847462836281925033835531445214573861825891896374633102470377141411895117542549519396521169652980215719367185823238897132131715921633778248974229644814560388719461023374363478365063901710957269809159086660153132372601772198337641998558138445905929796074370655711580304845921247219450788357267935436443031183162738002891023738314973877475042762304616690955257634896141363705298342505970288040278643077503357747388920860730927464895595771257951393225637267057360573951182031365817340273554160721376569753830895411986234044864713211628114479893325268263156969067873611827494549204206012760640718917105901513293077127884295956843910141722388969133160547332829470507304499551488553209433987310951211829090864476567730297146804090258121490082959915829239567208914252599849794870473551054312516976197307687297512930381493197627826827728164361540024341863201232484989225730146107268702187852202099950726308063524387998857992735797570445905681695755480720907831784112902550100669139631145400950082318362479052601512578972269959463483717294871489525980225211109616690586178481957331098367059887660903690938534174149076797231902391950782358332593485240044608865345611690496649549990020430647816555176691799565467846942340871473692341232993650530403457659095254519770874338220186239310441445904898936563630547782642115489455942383956659862225826694501173929765736412400454472792368773335266654272438721252333869096713495358357536654634648509568358420228795200836365839978143809327159562577217286596718693501703545033436047517609768377250874183194661954889904501946981259835035349453443811383174758514098456233656052536852064385178400022733931371576607659063866111580275888392728387029787924681980465631945997570632499312721633777831295182286318236915568769300487941152432614490256732819141223817232543360182142064226533748325175490731487460954162398480322157666183549266559386888562251094976181677004658736728250981722110957175290517881951397357213327046553701261346958113456062791988404875649356132549227755509871250026904371652236141082763690932641768720783205120704601293538085423140588787278992085014318511500019063253504559363800131725760399216881789498833081435367447753543079704365085333126774613631638406896221406794362061688067173927479674919893090057687720792520863988490699641331302102065353046334219888973640634478854864583117883493230813282971044960206661820945039044169243621307427963532098252664784983558117674654409868809268916023099986065277316501884522557543840575897405305086214832403217819323301564219168384671074047136347477301405839224374428739993203919765084592789980496818839806558004566227166458050547481528887485727153814297096793635469059823531432767134910949462584752732958832764090974938788005346288785145279314854562237373005246871851590954937453012438791023168225265777455389472907140965932831178514954779450783917532895078502164995393644132485151424288861375326479872131801221806033092890547238626420512795383423968540237629217661804030417604087846367674718097439252628308921779215216531405343685326348834633441851583680993631825698925732723879772935101518647306708835819831414519339276700316879357260321519066613759879103896474636175370951222985706799388928368350384697102442427311562066685030140426929787159636671030337951420586359914418305078617021394637221940983430747743884254280342010559522579958481846234826335367767612713537755615804280884110331417979220710194544457646239915645710768375027141618929070283473322141717861694447165135155070429943881370367189716157809407057096966993758779709352998979626389216285329716703681537345880770584014453413298944639923594678800008794101368561007159710702416173249725209100888348993473592834000660443798965914442093177455538593242930318743153637038403089479428303677887317036875506059894448060180255212808187261586731077107187357077673304537147031702591779539344164965930516341113504313154503454416444981644619811365608649765054349582073900134293994827020126297076788267256982519011873353200834799681299538173312064481589603320288981248135613623174034662798867763279157545557102170712822879074445163358472987905924894516821068783477216147832231708799033362126576150504974123326306343593368985557390434928966789095027975383719604185439975594070897239230560389095093779959735333217554533440700849356069871174024763231972604068462984591679976967471898398988527961200109081985193084235559674908127530222867720011822194326436540199197443965999314897043951762836307051330798395328807789901519197306961564039091218654462181297891022080153901751816081122646786566323591685005954026537592694821936557201865561234380870374847347953299907853670698005293261297603615558117524979949701613987590258932869383393212633222347844432629839386993661468514737971512889260613032936527971034049776900804999738772373682181382308497486770858608854310391871273953627979317955373153550196288218425954143666069678484827138855537333494314346385164032983958713879173717015392264194974263554410554747158607179903134207200448418171454506333627704770292723572358751134965969303641871749359069676438384786101894785554678641630135943293632145420240472940664663202421184147172860316983932767778131631207658599409445300588920534532845795928120657494724634675117531925491229955831895538773366644516416146944589641088752477985292512195727291543052653688743132130822408016130188465854014371117627740921925567083598607774741713807839912717831836556131044823030446013899608767689691945097199784891982708745072007434640435778144098287821031604503384959458095728894982841738134908109391067873046308077065719323319370815638484924412998472772031406966329443031048688978546291014615421844270230248630594493730720476985617468393431920644820233756353410358315253946813402713348017598935229523643916872123342581261420876267366947010360574594896291109161385420441309637612421499962100894847250751597443144829146374024943467783861885846265715820933115114894367566237738650243009447166342051842937705218461941208694408078796780438768021181046664528862514340423839374815741625071816238211212424296239555840541565286341555088579468652014280316864789600394258511363007407961995410999823071351838458795100404360774010497808894473984434868335274800766642185136993528630487628168898726540628103366459331808641262548389982945352147774680689897188210086380359977749963353527059871509707759924533195593447141687375759828881678748341171301502073998486780687574107434433421136984597404408418121240919900892243266437712091740847633746143965341363771374055777338243392811248861365412166940558270286711486832440273307681622149315590087196787011525278583828397231542263679372733417067912973041269710193460590345871452027353117329601622888678941139210424701601911745675514655756152048463198511866540457441080868598651201764212843039006117443705819077241082846327858536727749085355920213318106785374561218605347399503015321094888312806193854546718525410310242968418524062458971541476063325329414593933073107904084626040073854537527587912584293240913331032018280281943230413474582090710474772485518950625201106350807357116939374660964487351253203706405610446317143353850269670956220095475555143056179906517152266395649563995337418998641339866604439687315137119461669928687072150894972735535920136519856600437054109388842879942713273715928601574244452391588400789983026224426887997370015011618417821308798592856787968194838770378373043625445982799231266110889976658000045345796457497871728678616137673689868090313215269985749047699166119280792793434979633304911077440895827482175951282128865044737456434934144466123451609774980241282409688046716954216477584335252174085999580535720519712510784552204223956932626098397726398924032636845217630017782052267007150620581020508991465758294701540125329290577834170990245499112632358325661837234086796544306797995039147134729155323753048397816320708378211889678830720358271904724261582901649140640832620815731165674420377558535349827050938441821231770496579596119291790281024645642122922557411769013692173915023418078231889125242973770276085380713587245896984559435654585148699748094986640989586084998086564272384135566190092554338518137914584229133026145397134347381201673298032900632081842409962133875597465628181896274820612861509765401690402891373772803388584985705239915148707550559876618078799563526141547907321005292981454006589100340777183166475451640285713411615320909705030525697768285142582484079023814545694182163805767096756404312532419951261318407584901313145874529912073954956817316687012045976807687715844135387710794182925924366747251904701697002585440722911016872607488044357081597231269895562203838819689934128229024243459453243479713180102601636498590410280741772088335322484329572143134511623044890567861134048940418200506858529528712405947229126380631161329276898582210403874333586092045887067602543826796514551297775914930498193945964457287875882429982388314702331965222942726711702756683690382157598676859143019153801002612788477548492261749503346830786079843804631785194179114042207861817241796269556761061850354387374069245994427471374498661803902833891054818145730944607335546380903381130149842528957310542150652374288639196853789175717911629646424424048273170947383469402307122676306314276125418908740529291871277983395237939151824147232774072553816016652035757720547019833590579920287399379925019866176327552221244450352269977843828248165051072900224975091790379833673525410757008538850724111731002759731854958502039523063021593044745577037617322931055609231713115148254499426648754482930459097244225810345027544145490163863556669117559080878796564820419696630787836511954258673008623457747941933507883893752442572745867048577750780944516748064020522801469437853312598378237054942317282236584840551668472097942814324175238072594605859016072291443853000232665982382121368944104994279525433079021049030925747549409089570993000632779746924001206242361104835418727261019661906523903102123082819852073639183828389940220313778220357010480882558371524489790796384361292884768381511802866839358349760077375896301134057665315194373111330923825302800710517780484779222373691714951644037698102825420101957745311481836352552995328864039629376676071988740689440853242839658403269151328145464028335684397723997144366558698756484151593690853535397585902537057473153768583472048748206736441884665591770823225722808698651941891169926483149077465863207840800725113016612559895445869792659135521643957834342707596736985340921797843610749381729971682786709477978098851155983348971071090408319750624833000343563212159009666345294178063961577335563310400609568145231719113511288945713726605534235915165289831825310243778987669999169198334094650717538843300487624722274994450914979955493205521596173791121528467962881539762532930125952623025204971947640576751158009707406910030249395518996512739347223939897245343743920769268623847639530747117481143588968344382183202726649731558511711930841126798666958189009153055816659712570836138396384085535389971950676638838608214240222070453833689978757926114542265759206748469462658422065195977232084308130062962852960009351229768037913945130919913410793967075982481579951667924932625796230979799096838506765823442161055563183689657433042313356830494813685009785897152949110041419853493924855871954666078639302021927786300757792856813270938936075533982381202276449544292303344479200115833692215957513121558905698378487475339765787493076071454284309368937180792770476826754866250619777455157381145637090441918024229667474933145745976424107656998007013761211525270793121493223874050324631275544605132435369627415581210334001893294322024778590008600419605406775911785709607525636827612090569407597023799421812453087273203431551868548014623662676965519065891160805676085410848301178353102775671251717271826427367261046980104143699408242780687670844732994799597144819687977652383023735210583479275043297771941836667179874486004118352647169303470683048584956130147931830191105678073612628784352312404859924456004652057406121397506684204345954713809892285794901863517261392006078523742359908503854773938846550959084612672688548788542089210288675419144257579727688340283930851314584312438050278337501045182262148530997951011857377031711178653573853460776278168941569127730728409667664194247817424920232390413165215950777057198930804203222236951911456067910465415731293017919924422997528233389447570883403684944143475278660141836252389933348383817001984179870674762841943986097672115040175918647931157775007853999927899508324538808909103432725758782037981663495046984958058091571280419417411528155875406474139997234833364406963378779305024741523309902244395133031470616487551718677230974018086520921094121362491752591137650343863496421203774322474108715925872088411180780221559245234115873525467659794338880050417993558245143897298938281014339631314983846976198633307758816557380694874817594398204727583642059468083883426911080187683562490819394415540475665778755041835337985049230409271075118817150828774225826636841165234275955167533001969086784105630069483181291146437731188079090923676852448491854546492018851215945852150195103612806807592109616806495371876876593463043321381565795617037891924581065136451062675835670874364081099527821391146289640441397268285486207669583314630299554387513221962733350671537151097915090483714433376902838249931516980184784673922715019638713518358172780069412928928160308123281797338907953124888560318639906001482123183494903228096493390667364300295521527516391513396885858298709435221005041511431615579064161213906568331141951383332330689758505927368714386077612022502387182313938237651429462666944167598057857155314862446177186503359305694272376175167742576627825812546002959645405024038942855347617478727746178678525359234202236710574429688736379897680551861591819738679330877263359145640464691205702240533077643846361359894390891737431189305005110685775792734432106204808826334282028418015973550664586064996893896181606818982457424708835106837328701258024334486891521925256398556716896874112887596322371643481982337680541474259169689293640481738935171352585452966253870276622488572119856368999362767941835553422544756635967405953955696535453411100930422418234405887055143956055585141323479987250497206983271975146608563181465752468416025994137004238779175841706943159632448002675609190465384382869402948174204857742179983470536226096198620102882097386678761147045881297114345335203983296472005726110903699807856228693659224029658738515177224633100749042581119484927706809240644750694475070487347141793287224034547460397337767262848488402795867117860432576298319452519244241160608202808696417136019473119325843864498527015392973226868813670082771968076630199874813127749155428956282009398731170301111463577467206413430713060471464411209530237014079495325816768018348855919476335848567283938944947258046749513573703198659878295053750932731618484210809794287189217916233830420860363071341348076594446163667535467351422709384516782417366071972714505235401085350046434805444341513432231522368987627728308676813169393229896197835414622391398341324813844927053124179103144761100653289147237910996819450909582710204253175908522587349313975374288933116965404415649229539042017369947000748968608000198202509408621375301278602596883066665650628592898259979534004988554797586553381239172836190742780235966766454992858668795267927604699013979753562818393493714764419941951498121578641986004237769805276740289240192742360041491599829885453559409240077496201624605749685675565973751769624381726388372624179821014499324899777610614531840925841695895984022793843684663888418204095934252196672298218330285572989203003127065325095868174131850728187028591118333742405834009997813740467730109099991514220658573513413993266334000337572458846253478474734969051716039991091613834394419947799553441895740826230190774615323463624199402382191214941508824200663132156536646605286687521957286639074630813496525195847373949587556472900479559187740397053048459320913247018645517206911698016438366865849475118776746432295429813728712074091928816919607557960280788261879914777410855592061111683810731580468528305684502440405316288266778998359346198937438225387330722372962404469992285692169225531864843653413291708001178186922765196667438441834863487632456203949047339711403311520964694538234909229150970689542911438215821681491734482414751602752930545938500985084856999250092736926699793409998879064232942252504449260456461696025349270003270963993525989466588167207794076604765841212201389933527908203295232895776422548210315491232922588758757117550316710583682564859590542969756779845252777906228762008458990172963218875631676396792020423837281071345273832244155954337590367035041073467721688638948391053665447872038958388708775636499557782222221660309577015721042115337838289909103870084943944603144933707650016774857648169463112656294777607634307473356796181682086847413518872397763051061367393978773941356557394447370714746495345008154796011785876609981062629007782817613184056651451245051022426838353826105731442260490669632321172477860201302516734912463952242153238348662104758305695461417546483065819621871559974746038151581443208222925397677904268166836000491460803166727916309640870260790661849270408549475689052364045590048395218701244451411056789041428786380229221006378433685684349925952764191709062154711386344570144406981167837165089379804678230028015481376702736948156998052182854033635326763069717676715286017773637576603345044274687857663278060819948459201574795930506507429742767193276934431532881189719157451270255485612622142302334134810695187005874108962231742793726454995154448242192784120763466563510039514960646231701718226447755280346551500110967060560460401378410918565517652017778882836927458797908517524720832737777443527330094784968803522383849415250572842116143361301629379654583632927815206754436541510283477898045982383818058526586856207233003645144903480492528171983223250746549516526633542816907334208113104911020161936651899139431462486865808471314452803110543672364804509994390363536884848313529195590400474288130872650380254095607185923630218543230646804453189868585989957214157654186804764322470783756354500470877199065470793836471436721740784280022044479667204062668647474558385357497863529238014613610326210759882561189462912154472730197419653141421794569357906502191149565771414331876463627155294443528992926099988892316557392043759553694760547557289094596027185954799971492602558447905323668073480500976197307325948308917589618138470409740888114770455491453107038619967885129447936129559761616305985616269151098800444656481840921212485267581371492539244400112237317354177360754434691136067039101203292271005243567298028699303212474386912527287556226389952247601806203298490010671802736520958208709576348679761963607491091756339806783304912463777366365057990081303696387537641097078113477023128864356845772272616353531138232625978434002678247587167866850197536806180053388095991608115631139364630675600169784942831755794237298420284669376939011800885631707336954626848933594372922235559768225672295392458282966588276234878442677301766217861444229617424378294714062276425732123433188611735100969265001961505297929765643753848305760672999862908012668921131254035570533736429859183317267826069461274094364697168013174866706912809458413787175339780395982274672647466923298510220585805659097414198111265281536394960025728392376108486882785086588935195149868571098833442780329442781211438339008784673036238958644663474774647976425475757519788012456949703800889828478673302127955810680531454703419129185195133371607337038901913083341666815506688971740771618754091786176560721453337026205445896601908996228754210534676577241794746531766193420927550922584379013820867909863011551062501571479382623790615373422040533130013878788041693309983590452025504782410452999455213643141266818360734878953777354029023592968922388038623859741110278839005329257205720009996579525937057954068175128065524798119122529415164807174873325190333151286822561454462726163912706765061233967196362906757822515000640616131794782976827798904220855467770283076379271205542984257638260873483264978984710938216766118444640104413624831955098192955864874363752541636768518592848753768522212788318669937194230443859660146753716235528445753532656314732674717484103800319190234367876440329101666862635375581049166868123760199873385741698355182038447771917263483494006496942413070092334882106325057397956619156456873669176720762176012583631478447526324278653794792241299142421868617623061158451537158019549631681023280658417434514360986053182832444775490706736127502861104144991571260352965221738669498537002651341044116484272308044260749824750764456044625563274588989152896234797913963761784299881293486318237915660438536311247109567023354699500806138759302649972180363900519396576151944306425448939211344181275656342857729337085777512956268393739905429442520501874496150754645228234183144687390255152027593490723066772090491502016710530097152689376894037320358047535626068851967856541586643951492516532200494723047295913274122288377815752216351656551634504164841132750989542998864852809088425932395181120377797250697023435247520842424306036634053906473147896249272305403145106859235950816044398851001333144177543551356640692385006609408020362707505654167578706118279077473596500746040706188044868696076433467015881184556144707879356169251582513931853885504436778114968893179885632461808834598000554928218933339423059533576278198266416786572706668151982769981308945379527166650052420383666107850279293104835275653401050661349343862092659002564071486804682780154557336847414312349855116044631438601051934539170403871448097838946073366350615094103877570489277882350828777939962976363534421945015661626529391881913995617909465988665646663245682628217596547236883765826805322371926354142140452540269333795537026487023508138823226048668763266156338702167158244756768794663916850921435673874761335633839896251866401324560392634243396640414601068290562177644876189398900859737723057896652554953931287220448092531967038318555874617602494735268991629586529850616717045138964496461313886852204170305034488395576534732647883431018381643219407161404316095557446402224370260006550190810256045272172450130456367235123118801304006077904899972359856361210152940631521868787695084403550786107328400587850079927520627932424260285419921281471519189669090205423857371381191442434750053045616262285672360415378694676983382389623521967078187867358848997209368734217911501046948181035102886680635845009729316614298098921265489434247023765082336101212565198037203027895511448737465602526626987668315681294007211161238669476258796165730063310026890261470038768973467344532728369890732063062625913292490942146235995137655160103809949728119827035894980300036440885954457098275868313799348266923777871590780656672235507450548788444530260037740786461431513316996515747987501942116208904246364909667155451447987222115812258305707297522398200018322361774500967278574048647539663365270188162113040151991384391242730902470313383137988342740473786969989804901954480103638498404781893935962614283342761084627567033930200426495182002815993462413380968265457532057767944626128289462995409103873018137012120970004101565920822922831484816377249773287020865835768288851220288068168881840928962738239869051909692445617695605919911270699531960820511098451746393978080389761084410057051558938022157596094174462438917021095424769404729099762507269570181677596446401116587886397074762744322758981531489910274311382633148667053858808512487622606387556435080183777462155843707059059951360771890235508886138627996349242008019480809299875868603169525860788757905318837650026760412425184713707116801310561933083806548048573443593797402049637507982676699731900172325146719033812029706657290972466264052954706058649952733137402427292150998717702637214929664001005362526590564725844265949358044134805351436457546829713604391901706114792929334679501316167384168432533710473386358907336762007151732668549970792163136889749734792829929078719916301612897258043328367169091684801094456159283540210171336631331984372331581677531829324514176684779691806626955207402225185404044452570859261271345988958497821235522613062925138377815110148303556064118534087188851303155411309190876228097482683480551382498408023043720537151952503352476348775534569478608772462956295726340270270139992013096888562341419848600236043045976552163689905958616105811355017493832108987732261046063321952702649622431094330898355526383679415509392679334841685664081572607262599429505781856055682944737447327165911625619482866599335195406909777705236257380389137884441022608076772592359945462746296589967756612529072263122924554739609133248731103832933867077482230417971978945368869212713087378613859630311028793841260700938506406823283817001822418702944184315458886175558468394789301007902068501785129707583489611753655405587880644325196838807389511490391514541518698259105679561701861532129697169025059623994260375792311475848983959812199925702221808436661561609814015573776166735871309592675540428247806915571456316594370150426118794761309342021054402113301529432219430756843184647098003280885674774687538872414584565533488643539943996091800056370225494054163154978051329281424407534793180571956906816222092497908929390997152206575008614676138962420081661852937531833400850042875789366703469315942896437351427428425413037825014700658578791278440990896901518442613099510593461332111036181111607294907148372748890792258286077342434392396891274323568865967265476378006886179093307131972562530608839471306751113344900834697401479805531159787610283827143235736489203002816739849100479462083180996567809615241504455170552502094639519117580179177302659871459260529628492995978988975840362907011070636886423058282243557340432860883682113099994785022444412378342749309314494941909502284471694721035997558087296317160949323366753776328493824656162487194499001227492100600957421552101996968592907840940723708811667474643387308214304298129481925866138850852393064635578748707323921330739633578121388589763358867498344699988726077306188293019772768966587780676570362949792007362317086862886016907143210828398112579226421089776685382802022350640478776844982461578924219248635746760447812155074966907345351816729432777156902771357837317187064438188118861420525352004678608519773546358806976985352411657487336040268098215130226913046874660738359922518993332852801169686459524333840166688714275590610247277103714200713110173428220995330728453969450163112043024380379812694537715366886932439021516207386431243453506253052722722566799573736359481871976597633381132633732141754848345853805276672990921260839948832970526066989117788176768030972897140375547559342183185531041976057048886629809576251976396501783393216282292760331295781156880760879724064796014368352893214863414413186443581274958279805892278710401809292458785743017680638413167005049932169269812576267318131059703474097063949607714660686994169903462932075907755559080635835545459787763416771734236319369194181215935875447751518050745764902565481977324688127984376224142098692691805241895389603911021648277074934542637017901474170990333685593648717536934369171550777624670267275219218156041741340784931059131552530007397153096083378176741794555653592719984572951280337788225890814579296784118676351404830330724124825263261874250539697715496575967585818701640093666809886693626678618364915415692100150584119847281548083965538931373402270862307700831256449422944857534225552087245132870711083520590231703685450588683717786313463535892345569643139961496112878367588001433653214041398209097383332951628522924866376392968268245971531248656757222659179960846486607676863810868269176665177272557212763218892719739008845487889475689012738779462925197399607929629858128150438920311672805553478443322194536068145616281931364317213417665736126086762137479392159025704754980898831133558319498069871832426655662317191577165662202178641857105578696545813754272477610273521235122295352180483562033278262197185169387934888539104369357277731194358296994424141017538259505357139886856326959514663800110709881736092472022996700749132425247535930197057839814555125379255868163401621727294269493190064186872717426642613660069619054785724352942946930209294607343223107590000220358146437836619287250756382009893885671274653861111814971918401471328788792257977787732893617612489244872951812749777356160516116235234782215189762763700480122491779517483473736423777638046904766764351768205855495029910267764988260806951762056125520839918862347633176232138825247396915283351022380324977801247647215194254013763358579523595668307983380303051321493838033349440418476037832836551308748594757096806909285981677257764524112727264278493413737730440125450833586698516779382847486510200991142737895511448277164344926644084797738799142548465686361882045423118365726583038637150496471655670068859605340718810327667403393315295734019493726306793344756646015219358310048066277049641657212147476668920731774010976970025697182729125548017868233293398873159235988657473080293590246910968936335793361422597815710765551788271286088267831579719845806359116529735082189710892535425428899724918342565223791436036210928357116479271595930461717653193265256501903736612697201269614161176858026809143352194078509574094190421084122717019157314325573960245227415827831468304731232727771984820214940458615287026083543443288665261406527634742393794926893930326134688079516296354984923814542448350221470548376897857007913659023732247298306677183504845093287430423114035832841126142982484675158796821484800698602800671191315854744525414830055982740366710907848030662264597393505282546890605247259213571217106502688370321777343572220120032011380857431144404321145318356423431133551674736705047522879688692548396576145031411325689082743580084022668366132149783242640261810286249046890057932075157376841996828580866601731197287795843340843812951687040369349496824276470260441213254655525784006021014484868691128674406455241102783267281289117674719607918064397153923226409594168813281512654427757669407687554807263860705702177545110915964394206129204900398384887903941844511935127754078657233682929395706758775196431415479840784193114905801092141390919297270347506737066004353491573925549884030663267298124684283260509287145511567240881226742502826700988096719569064354168648952687467752048766878660061002712486943120094826545725466760486922021519342666413906932531560335179817832985252923169665412694346566583798072824938903838224214324148945205939125331143389958398131909352003875418854919792508265134408956729552274363120740629515080714526241679555061470866861586435189295278179608140081374644522648919831139331607156055976825830407247297622886503559832953230039729818015845518516606772166862688782276587010384115027902204723777123899957230440155504180899968207477348754915655616081274300804818269105468417347260204249523969204318102935552419499001684115337110289223423223813008624797142409542955036229506862077514315037711287317077139225599692998260531682144286102426003344750906962802821736983876526655597109185249624669934366261783970592122837281827193864387726295991781852150472629546700565096663941217013771149645269412720576838877717503682002406865139662563831322068516274207950247588886444071714051353838570869818662813805081944277038507119273880938235780336016450998648216957765425422720118840018854084702898639372962180850546109707844148784304422910994375416124610427716289711014227230129213633376272165250792695495545183480749572195131802456616615807164018223344957844862286820779157181089206603024501137283227125962889017099630652794314599199978961616820428969615531596544798216007157257178479174694825888537299856303765159451067464343831098568164803683729426631069508361410967252283527075966750058593255083454908949250971648879475612436823961349535027876812459104069096594137516994196387710577839110926862832783660113595850291145715282020170763783346374813638338135278024899514085969916032157670044078094652398374861458200668909177322859593028776703163069848860276791145524861604747110205512154460824407962471324484074060815781085430556508611187959517239640673639368435760911867582136234457846057379910134044182397655925066262016470546416083365964287903947965293794630568132316788740956514595074120305685345049487380100248608361767607003259709683148761327378081404442540254582956891740961164370360597837283168953567463007222094645090203650457150170097214181148405558461456979140175024078234120495123286671699218777676779333163197625840570499501294419153353289202780370478763585595402829809599835905047371118816434347996180726616916193615627318238851250016733971357445016604746921338456234488384582816689808625843261882442097019975529980359413980648439703552741171995256086385107360847074866537902258728004475988070787851111709860591493344993641693458713048886664127902059637920655885705024708306883205190625330674838403016130305710086516017543134448653535164362314836844523694657152976659572272570322178548356731800686978984100301479481734035093362647109433684643638214364180098659296992802936428801271377088582176345584498618296753713336514644538136311179523408693843418974397628428635989766867310680317075814764557843497311745928851055496518886035799081637547229809863156506152188363392652760337485088680055331017245839349713912371209926529448822578068585426346896118617691473310840585755866504837316584709505273929636940646579929145545700295297507274214815281514530496609714065699837109234699339130025016780365370442189238519801703350446904006120923415679788758580913933750031253174576035145579395631990700622724689450152067458036540791829145334840863527177064323307118532646409086737346104267853485007574189639717807294542901104838324498115850866531716532856142162541421105935962396245719769116326236206602408972360399152611002353532358957600914872490374299762923197382487962412795858358321827733320877528855051012974714662818252270721712436088024035257412362751861292782554412147031413868747621958097880386632488936666875003829635795345234355757608196781622450907151179389783126993452865427913367656125554531131894995760457610221568146621133493172923726175526148332669474790389154745615848984106719174043315606965451274232300865919122852670835624431164380626133277904198085051606373280771319903696022392855647370652280372994267812307389861356912676214921635012617049590546895679729766912987213095450562983755155612325475232250254691646471413238873354414642404906578901592395712412705008340965308559193576928167487581994899751675925266438541452629872950492577835587123667026303391331285008283353844793501207309951841687843218919316869267580721818143374062958313858169628707734077709406037941771190663844093608811633070468980180007039612664856861949187005138372869652997711872091863813421456797781339008996692636766962507777748976347102169067774388152723621427206005219132150226194084416190028980707713582442606882632175251417731525185273430370163013767992439022697984051115042630967169544273699805761373058840771020977586751005730073829737285879484533491460671736876707855703939690551409890597285338736355557012130307486192178461636040271090840166394859147004338488337385887012017636953991042512545796386599909802343141578779797682584816786496007996742510926434863227495103360534161954795440047668664603923793612030251228812976096129259301459515191605478118544708815546130375123793972724030205722015880958515161693728482794863823619907542843808550637622926421904079344243086468314244473386538126466008753518413155240827902937942201101423787456565260586552447870494953849590948189423941875591483154977874249659611252713655174626794263193781939838708215902077626198448039985070101781714038148740994817732602993735414714208461993281490238171577086963237416882341217429955102766995959121321698511642360351984337867178961124869447115391698419633227314796014852294250204118502280123807879735724859766820045962457318905753243370247267989250269762366218595538987604172583240025614757477947484430491081927957018757165947200452848182075451280361905202829860272407705585076317590088264384295911146917809129617078992303680030000639985208304293611347128512109951032978777151138299470362110733441721498801968291736433513587022042456166293259752060308561960307844858639090809777160988313668198483067359539492057211623248743975328368852946109402288364944004915624694773348701738150689770282468152067079372526380245281587939273276620948918540605445966112143612425276591698288688833504691115288539658693395472175834861627660211888399596674963402345903278133236940814735238237087007468154866044834460040825317138273798622084574899480375661580471616709166633507431971482808890673853054731354822354999897830192502099337536560632464614522034682377418557577807780513846720698888602859954631670562526603433151135830908100980188530833406585861301012424163540318486600333545236100531153632290925200979392017182179919433644289203772380073751876515663463015513345326527568712689714016477364968579192329822712044178526959212344751299090884541790382066305342448755582560274756991827975558905935160645001064894438830884093004809694287416592058150537802368897399665060652188439795698674990685404144050178579848758603999803314503427306637796925175274075317112393885043160086565128207711588154813417514248226106185626431474308156097634570267344973854361478713957516655138509882494411237935032884112876333700022041481680911270189108538187621969383261650205913176968686260861936372432830555426709289614848588472683050937945909815934491871558663922571586615629063736322973374705934852988804794789540107938419279844977329146669084903590538212590299479323255936426695719690112038945329082937949067009745817185982335751979198699592807790880785782166070767939836387194368667721629056965405744518740759754760596846894965705940213325301809491842645886071296880093831940015779283299247600976444767995984816472860062528078423109123519613276865711700271661048240866867887970516456697639713279521901970873817207171674546687107451222961968363578664940497270306593479129228565562875102212350452911617855557555850082962889899933041330278716070764603031431429572515043950675052895224638256022631206880075871905103755260900383953138008444641522355839254099980858047595057750168948574672564985426632827893941531176350008202645295906920334273438191702092336468505641342997446075915054430538459923348200724051044654599292141557529390528248848441878215392794734314413922447671147470554208390020581409774700653121095601923778095114235467380047989601456594408278038880597622002258650176493516024299700780619308847218327655983966489636530639070376970614339969907524731685778194038620278875560840760700445716594957683430010537151983199854152012527665617154905764633323201202618950626479951688572901113600482670259136853471354370324522600938834330014165560581228622460245213067521714944277630748272759862434463930749534277784059015859083870294677912586972086656165500499236228210185246738717963831503918999569623301411448578816198817415162477327921586509767886913711834578413031240046396639826519013784376285657938550831539560195806814553240301062040439212012110250280495519227128238481007311594562798866481045783495228442760634406048856341135446252927173236099286524063410438960344487457482234805835972892260218065909544911555635561191384261479425135637334725075601260661116447613579322542246635546740069479800391766554392940212219514036130095819581906793444046360072398506004538227683549573634438212286810398327978926871652355101735897578985942141148660294977896273132457423090355377513402520531348575384263708016656327828325037690731315563814828011326815255184254636533326282917436434852398768738099907203001503723033571952775387873204355408370281266735998641580651229904857860784039143705219363680825568687021667490899444752713880508470184847587905875387831653966789205792598147275740226956043548655957242162837719866563738502684609794092930335691273537209960176076706294040928401995366224839445205033044782821152442476493000466905450955710214117854396722893926701056766411764855901118430238322030890855256512880907823948878179975403883468059761637645322758886547601293509683170739302667985474737822042029871216993481087524671438855888862795039854592814490983843038085110290625064035052679291875069364585970121186155410869546008767260982528046162316354887078718833391486924982694772250936635321988675883065268382387745898424579681444695397497429903325566545040665630358084959570018821179117561736108893078009252397162665202416219160050414536587964885235454316547740734839412270740071139573121272362214759828009180284757599070087089670116452757473640199587297622172117991748907923024836872518361595740059921165222071112624165843239650810513232937291645064488316034522321963340584743022091736919618346990585082037560574619457499327530040845732908555120495912518235957432943569023550966550884540644889978638509317198068365389267419529632073968519085034215807667453745162297810216369654619777372033195812611229761196096776928503357517314105311926243352761737374678755729337617866605245232661863489385029088119072249878566434031909535388363454249621765664022864696079286127692061833968998370851980464819703684952550837854296031652423815094966101807271212647887121477642549945367165722636969884810571906504988224481817785674209369033381980835609514886631346509486374052266293112840626837448935507124546382510552073598091348386447301996642370839495291768851681858299334393296318214864863404714323552972871323392832108875362030175692452076602280538016303294888875056662720823915610514672182851968797936489811699704196585550571087309042370563142372380364765791701540680000409594241624317918920317803349959549016898948003744651293760379640999844160823567013342379845809043522967936976559126402198864418369263079878993744968900892382128582824853058667296612312395345550603752212759180009463928815917044801709056804773079330514358455262846403233626292215316444024086320032556598466629638731545617145970516706297652425645375135586093372147133871736684119342282150527432056581565891676581544656404102257249537486351603461501550803458502010033866385610808568222802627800963887920472722826029869303131687925556685334684324090658283837745734730441429671762625599334333416362462436849499431647144967460281682436342840929155944101346223011712006759513123711817644609340080530050208467711032676210097393236263361379353933848070146956992962294637060971633512905157413836868310955904356374027836277155854226475086461551593258461354049179815362674842951404036507621703856626610856805785213272526600362202374310659604333030592136897007103690929753766482581859926050607299961251633961761824495401987615656552235862364250035452915603945416530859533152973294865639007633500264114779468234060332915256095606623531682014707915597654453467112688279875827730803465564042864886533780386281217878075566436570941283798917567461231495761626063962416417994341925672800051010129120235884564725508908549673135402915622305554147375608046822031402024909196282458703619510318286649712015730428945907845531771647003818978048694103216037591875015101541980014921039579166815529283575159836099877361619310375724629731919406219133862650126324685233024891331476960026898405579029931464699873306590904432948741474406919322172940744108548302331065897976883879152923196508542846107535562125117784477906959921551366034730317192137974359022439338927055518175669134489487046596831295557015523992864348214673004919642096989540046053272747803549714049604834420307947583563984728920702696939292507920756254354127112014288616932520875331734557484494493396271540981589774814631138343133232833377462244695467676285905051682210236546112594900514245735135504497500384185508636870762681389720585168991549875446870799657175659406271995255902530421540413669401916032571753702050546426736027637592569855306895925904851695046930277603909695693322579577605272651863155899883066698157524469407153770508476413011944742810173788403733445312043879013955579367220178822835420486299163481762163469266455219819458305628733292035021067297632506654380676572358689446124607882986850038848137458185623757408952403431030946325406479327771166414506390583883305810623105423466683136735864626514566946102754048217505449571246952008832106578105102182103920703364280055878463314768374732398239072223753439844411469392891498373766048184716214399009341132249862575222685929230442328332614807371259857498633546635165147627889044728416102495720538042741891485206719502439498029500209606120959381980473736680365743093701911488033193074391612684311533308291529376485539641456149830423017024148811416185205103365747488502533878678969683465327492279240610944440142947639765689094485970876853536465812691085546001077666159318073403240979212002317628848043254208961758761169943735529813905899693899451165660700558648166884198179556407406158405044650398676530947160871226038849819387616704199358304618479074684629472304036605984981219141416834780930443576035462427944693474628113274432244190397113740733315836617446018694184225257254743799806304360581036558437092444657643899228454243609227344076989740681863058145817861194556584088984595872005610107206494663703189186351324761197093278019840768064879039666417674379965887720803516608833051351507571395378196038433229238236453117974092544789403654117062338697825524415351027203654043353958726511139504859747037869574986569073036140642152147863490645079807955063846380316287132572199644032330170692138984622129380101282170769571552411637651115915674000016977913261535904455496006987617761655134113166952268724644648566094247681691486818908796716918227745405375641055883560986795188742607358455788772093877859431454129294043919044059327649686994924661698373548520505086569172842027696477996060705200621280287510685433083018848661318731183049561811231617601271816423912142968299375700382946401426902997686751893779889241335203251608804806321799364840658475005690265277430325567152635942527595437355690070152017302403480610898082413093945642302460344233381084505939904316322947538022016662624148772735903427029790815186412158571459054591643002090212982533072626036633633593133007994724456790335687207197819465593600890090397563680216688929405909609928749572808265629545697107303312436986573689473629359691022728192781650506778691278645851500191098133990960511780436871094610926993180477372547144030370218440997092793790634366501977207548606953528445430766234517323417856086556072701212943536976653986978479810828789673114889007647667237521564379138678633839576895695646046732144023947462899278635699110342796294637559244806186074944561098790129478295006092946197390535404320544988396142926083000201268078097204656593766570933064936754023205741439019237990124892010784089889711902640130413572665585174312760825462276972287908761644293219251444995171337971534680787356478418862073991151311252276392033156434122658473045998636072711739782393904862628636370975186420720200825323185823699294203825927942521778039226498206715134003153643469729786221831675208485678430912997942879610554003361515901892828186153040262530240259677753114337896467665838285012304929930528414588891031029530419335337794222515197485789071191852840375895812037729496584353493056632182051053994643193505438677562939154246532227720612348691478031321007691501516086391080833876172566017056253182806429045284641714989450749986315808583879052276370720870003037397896744452188879878544001125118224276736959862706335555496797182829221919958835251201980869364539122193320600157010975147295424547891221866702568053844445299651396970681693738960133542749380049581614074214285157628742159704254396381427336122597440070156010494325635316254515769934129965916121912183998400095914646874394194392025195270343450532426717803609610397267403477792920328426069104899290546268962464493286526916499626950312614349586749712759445058195476697601837142077450252337167668973714983179724797187407095126457144461693879735223769758507885401614903002259758322184690820896366362356833972624289621399636181566972001118151730018934793616672803604610170967380242646003569520821397033101977721723451953685419657843626233283965888605721303753557909055050147182803190930431045772996952345264048771918307168659476099645969917150220112931310336474176472447934832603660514027317997479141776676121599272971040843141747077852730204696833216716978728923311233157917335218845369218557749632951165785271203004079681362214580423647618165210829464759821853174028687209066985507698940972620256074401840218280443191988801766299644975419265219520690969636724577623473388228006233659238208344980856637402218563598673901310155492309523382069519220006736525006848008598207465682039590933932051357926866324664881806728136875835905124544109372548517999769854037928046041089654538909426943057056987614948808843138674572488036590115201021299276737564363780608813190455708426465171268774360320482988744164760046701305685936630460916126208952792776687784775540506914227839820011898584651006614486967075676038751764009399008047563813613235159834500279636963005600725414974115497950444513445691401082429456897077752803666539682991784728314655987762536292613540538077660791716451766836972342918013516774128977039223095505880649687464691681023366350984696519988389525299816793478138360050274147201220186807943870310912196547219569777665472576111881721531643101197022013651876957147230205392084702585889232316490930969404928053903852938459621754791912159733824397711548852488298736210793866688563862850998520805420185329343583897748200897788948746502829063716812555178475719655739113457203274394512663872940860404214210620036624782591760261756117191608243697744526570637809498137770166686555549506877367302257291405659112915933812610302842327685979018707254269380879309660924085960187076288457854605764818886061471326119628618338332562148543628074984841590447491343104177644055559043369977628874376754812324356754358064033939890746202986789076803529570554874109706032587804181360134761142614676963764743030557010477107964075827078312784426543427858505112224899823000226246432949529966245514012105063863283476298133598557570446026996626676405012158472294127495651724575504944909579119472120800475089455675399434714847876728834862919777940179695316986383022001222553606769331788113575586326571997801523691217289297931117777120130917943721114142452371819985503418140655922419755602037498599657090517453899763114858591196077865409859158026882448263712389657886748417143406168202539406228646947410895552742205835610041928346091067108300647846222280345423470303235131374358314384125160399818949020404146911563529216602967496216312526581963818884197156441974144465957229853347130511376184823769370567647789418684380776043370859284773698227838569526244525408786640080427233725777923361566730273787465148028563959529667808564364969415897093536524018022856435166194873938878452064419944886003899865797696165184240855175981678911339253593328664001381824292606636166390408285956660160740770898926595915572478784498213247466768114939857079433204145601573395574225257844916983755185075563346873519299490996435014857794908273561922739142888354922375856094812553017260415535347790997667715845699336802449930081622673764796583361128986478787937597598815427118193096607383497534211264501644166930002272844006995085456049548591966795832192683434402080444557613878067286468925919945549005961389910691627121045250497482550537104899034113574940027797349464381990988787269591412658692782622185860375061820123881097619223154960147259449981770924357340568784721616667337868897657796655144206765885729638404883864168407743553791248611936717682309690514294474362134837546475746980438044064760796638793325488145265011858244469811881017829495370926510053368285462740284251146524861648090911218475118075397904104312622689772069234555381256372322700576512591429796954390422470565956802263481731533489653854799225103489760668638672816030863887613031908028611404745899366784104866666441897968019612442515321141559375302176189112681394867742474326762824446357200243219792010343158973614749289259847963392248388029669784408350959646724408437042615426462142960718226793872724171129588603082586802310421212385177667876718502230293032344005091143954313115640046579320819727145501845134923580212524327758779601757494401899678859058897340578665040495781106757576067678737744882694272025707472610583137170387639775503289485058196011108819709627417521741424275271840656100339739231089618011481954482472279814346142273988783194587457880255146313126693016008396345268428885614100982825461621585692913666098996577774941193491243755460553516390999642409298689453402085511303640833405747591701526452922543272543052878292140507550921073223549979297072408026828561623259767171388851175621774384063319702712157862204122151245660605666301033125558311382072801515876757218218394095633658228124394114986519420649193225160159472566182564415582992053193148155578779856674972236364123829701583665993564033486159504427858372198038322164009769194103240090525827537532009690888289704741840079683915885035396732989045951919896278201104534298766918348594986374604182620624020864445727546816597352088550786158482037105423649486071191886248482411880931295822361598736401189854202962107089430820861730010917447857604043380595896626335533975022820732926993684249810219839108534948449683153376276782252834409189390729738306051015316659936809800474699187855360584996920873337645613978060593985805172398280849545241689278541811898541828443570927886920925366192038748583782066316861737145532989491797422779328071870790664889364287319339149922964993950374568893905074667574285730109825188753978289667971895066727557268698084401114444377285947992139047147749659823558766291078334193499333832860493652935636563824089237514873654523725762370648052119281858210755891935501694261575776557872034361778269488904478698348517888897406694007152481646810588913880169548084215179427657438652460710791651499817087921271404085715063414477738903093456683231132027892818946721305135414031842532575701458814715656835281820513747152635303904600306704683273985014533598491164214407404948579733980811020305158126075876282827814550005928038170986646453298387397337469802471785398667544350569170209411266446287284038202828119857001924648782589885907296687776187274688157413049655043860570938165147016443089156113047461075498419542813029064403021887984094676932921868111470498441850724876837603361476848846320008736666014914032700320536102469857169439287544373043703066530359255504966204947498160872695023205544686016631925583052848473188922293316229084922250270475062345750599933947170087197425592696649801391093508599970477032472089111809213247615269578604577211327412817139908020807731541077108409885352805595702320189193609613738131095293070923582895627381358684169843675955081261439026819587140416486055330913886772597799096555612378631111184376102546465290769325580340502034764371844866697752785546293333701645309061605353417671980818967853997901536685612455286384471413941585245069243690289101034534944867076200589190262019010195519009563732984147172651365233106056217730117021508277835346936856532093522875365833020833025410987346157284484115659690939896641418726826095286681132506227157420684396701115742799995744906290076633796124739959659760442468406611067694227030277362560249928431728524370947629355762871730320608697532813541696715118400960522856711729706246288303365353877123114532928497460696163790689843618875801640880079693378939744090753927436235437583514486751908975843762002840049861914483563000810235755763346649461458553400139071298683208841042023894437605566258751017021217514103462411364829680805101205055485393467549347782784310676199436341271483863098320832139803244727806987640517875094564630223534386480995898591873305250267586194069625703268249958402310356882259040523322124079524655780980025169475920787894455131876689438526780993459958017746359197889921521375057451816551136515626146663516672550493816327297019013993829162201746577234005169524272984814347161165945724162128529984373099536633590000451396140390898975804577446849578551547808300069122609162069964351247597723119875119623224359049652356703849880008250886274267500383778285310564422820785824438495990235948762148912074748823237923667060750391201377135210880207794255572144350341466066130980478380425661183200569760324602327589919387443635818134135984148119475917136761071648772855928842959523137349277903912367844940184876803890121924414107204136554756175387741296442660781377187834703375254473442730083989753263335017322312131612687634811696821914700791218560972079408718524262484841712942135695887442704327076900725572341324025209038686863488468900479994137556364889239736805126993560681565178995815568957909807077538101506826361208730396381111508228046540766590253299258069234336554155609656488484606984130267597672545676397547624333122118600550463446176650630943438132739752208541132593030440551109458459101938950139536920334207368987275406892241522793221860927226561768709840960706867234363189635396856237130555436750024233546000438564645405635784045347169321381037038190165660655857691374271078000125076645424315842472745360219709180374362684263934156576326236773113749433569645520728345964215588447688260765739217447909630343945168133278199742816090308777520006573004720617296426313897250067846079021873774542579848891872123058716851957765778790779680998832177628441626346373186556269609802046411958359273687818516821217708067395750316305116412356540579281590606345739879237936056391013934006555097744357175843447048260474233730072708370466482863831317148623688820356905847700832860096272842528443799347434382398397450635473163212788202692750862664318539760972652549268789895305882788257614631361945582920030495761376442568769810971996024991156871167230455755066328689373665013468578264581946923378746570296280384786766167715115463382214438837967900710195054391701083512282972216704211259339707519693598822131479805167292230664075114706753915116670425872712497699959169296287639236444723687459553885728931788269881784032509062331220023781604227129441256163499983651949521854099016539030916128834377479582950807741235344749707288683847988612094329877465108311806624122198020627573045356494841296439717866170455604855442089067759445784828685532202057123968535678459026722519919436140562163629377089927637867922613155512693776620692657111990442199291728400613428015831860351078026391152915212697410233055091017454854367814625787554847876452053599986815918477662960032785094624357311698431953318009595587559557227587070203014660647009583756902816564710686802859055174372390608211288524615027165088580119624124092853229406849370380713551935610454837256852565428626865924688721268643460651345955122593739749126976849933404490099653895007167626942448151035526060843767688580705041296781538733583233558608096935229931481221185136813846516582027886563149822178361351351035996241823698795792128883036533923540278787156705871574083016449761904796989576795376006993242138113486682728463995124038626195968008561927332019740241170627250408099950246927189267024866642366578006944499690535393029748769554366875595397138985328493327171842099752238872234177616831032862874654599669401829961942062461601190931187389271747311679980685736449782425032919784142393743906699017954214417516501982340627579299895171253303129769864307141446830084743220593558325353758295031189395373943488445462167206407095555565892360050533912544626027818258378919497474746657889734114049817384108067501523134055088372770743999399127285773406817380570537326707932104404221181808865796973263638549779343598609245639667056504872150761454188269193833111237870464428561675357746664750575963706209173678393004883707282556518602776983705163560213946130668882681760314433057209151303449958432255345054875256918548512894684914281787529185773842850699918985422237055883569889675139843405620426474205478021123777978757449512998495200860053278930800181178211367319963871229461018113853294334815966814373332919042699285668393032021456687016500188842626931901919188837811204637297500131585274194652807493344150419981682004701858058229991924875905054707384354118462121251599811249027627636314846223928586640078579419978996288375761808974971215449746256195318211388314121844194061411361873818446537159431553180081883810581049199449826354878868315640284312799667190391186415245674179725827714870766228545366173509650333649352238929034115145150791861456111661204229166647004958831241613823129493250713650032129854010833470833673200284509829562609258180905648833229469298683083486717891501885798092576134189672323812667168655543290671886119672555992427265521758654786027100991542404922392171982830564632227359248033215925055415690357502651033480727811830610864067962468841273970377383046468102045467996344782123192033429481940006858129888742157677100862529615742981768124837789321132987849413486347945233158248331391546681791034958416956840091239739913511101939824106821125287929384750481958444488529770835246118303524391399845262564563105740321945661007314251740616964348483302068160818216758761522367822553923608137429892230382263984226244284711203938423691026829763361843321384003457162538583432159598711496785321495517530115680758080075403438260970150675988680210727044044478498829602930041570908125576534365807263238257557322380516935576162647087489707679576826563928653636086157453097554815873928432561284092806438436124051420838189146653368566510768776272746302129058233944566751385896476255842352731696788947052972088723192228765686658136529861091985761425267449030986010528700567593305893135791261420656241067481387456863011705883184062228746686478890529907828292617360804970714075095974071808936328150142155551806025251807786032350688706045517613466237008054004401896281734817224710802358084421471136026540592656777963888128235537241790695493883168823448726848977447459806297967374991648979513043571258925626544839284845263872880060324153268848872492385816392127592872527632848133776830679207256646700857646882195329262344647433449803474901587020438439000380691863295984024086948692765840629405510691624880377189540148394217205869378987876476809394998723394494078678779375540615129582823515174297153897004574541444771136740969366908219182772662691864936480308505285887104287000523064092191911020408970782888292307068359241796704780449166027767011951779696888830926366636354697493580731321403127357397329749674436099050421071388384673320084465915881117854638483297366096355170929635769206668694114545841557100963106147877363253185317801461766915641718963020415889050936449815008409245391397068745735438522840145158152300476843558154124977282974055153552470639957987297803610766248434346747574457360676179810720287824465938163515339377455617411254800126864796518351401349287492175631469154559953877070984246947908340059329227021556407022548778618174932003558644245015938332983279648504493726642318261342501494905474961448913171054721002342503523905246252878987672173114356096889620551380726439883383767453743527070677334606610533803023101400637056460729453361118799890208629448016203019629087427784504967622199362416708400631579034607004519088919307444636046411399104302437233518398372155858485563579209070373531493521492665365631936179424893907462096526524958982980972519231130770866950587021128235000586783206972344928379820476060957769933552522968653355688500944598015046992713137653298004549863979617382255109320999636049580754020587849554506724009861757746861516989501229621926700160737263093438713536308026886708569408796739923780240396856417002192155909522508094320674562244831009156232699239154842407448118523685394873657208413345751177499367225254228224620802966456801038148112731953700719101663650106487562374840387647320623718098760394686635908171185220074788201645230705325892189123362942194571094459260740841020428096366111920442960103034572119707836979584435718081433662944045952463887013227287321290464249675860258835942494300761718313237398478929096041413932433631170157743021747175268271590231291863918135834380116299227780933725797128671400588874810524478067549703989895461215645116849125662863959283969841000542590395039445530627432438994112818155577527417970244885935077169448030541653158349702237790767318128259507043455775303944627339646730948534614694087506765249700726607829369463981413285306797723358066416736102015049389835769250373673031015883499556689884424858689167038157463581080782029127226109060502760907016747865295528318619758906629464205003309273465967441773740422754229124382920191656720536703390220217464472087760181391363456325437546953823145401958949694349450775474116779105383903737711556963826889133526330029524107847665625418718081512461604752832111882289919659711630786127355449596690355512260006855298884020203955205388069402518859259288743250393771355884808554058918855920621838168775421220469704256693109094713368030633438421304099072169683202301997787387323772203195008667785162933799313189341556414285093854040308993212346853666114682789413721105762460970044743633095375166331797491803177781476564782394296680055690653925392657185907766559253588182781220078892814247384560089597366295067117246442668074731190900207342744010901372434497852737295262879023604938783266501378081074135946488475374858839840405865504331718880230064379002280913354342877626739622336569754584931260728044490076728271033141775148673791548818584213020881504609155287057006103334883228163362766283020151108394851839304844686185643008471963249450427385927356076468956711543287538967727571282497517945914072184200506759082788314809608179778333925556407627126233075234712225368229929063839703810572978665754577111711923095993874479566704494243540887733540093104626687639840119839207731675040099490881891037729331794673721642820702798932853268457977272496853503729075589706887221752954901591627396957075064801749261323988388340816784844893910177145992174756644737426848031495204394340650739166845998018997826783121080013137965902170393787382799541224492934368082298936852696692956170082414512296619082902451809618337376680738839979878744145768761558756973223803775169946169406425973315575159768512037848979315621741760511116408507065947098931612842049280597465439661908580830027862990232035831712882979318469730062775514114122380732613768835321108977147113884079481528641178590575149342014438985382512329035862109591486519809276528145285932904324787949548815863818847781400111252368816595295309621040994807689839520107842687994342957599964479145193029214344610617110572066018865413224387444977906117338286420851632018683078895935458902436151689468217800864408285987517413793296720278592451494412874447049275265889409584868078008627703123261428345804428407006856219389073961568396840262452169687139537931997853623669082474857090034726965772306398482152235198989000998995370215429607760547139616445640492980383080028424549832203341357418763315227680030218834101944291982777324646647998786225577763568288424515287463778831549443205980372455989133018538346411566596116566139489937397201869703802069536473678366746829843079087323127343212293516100145428429822682636219826532891719548752087502990160280407718019932828308341838025468388140912687118703776390861782053514517409895256780942389447626348016347518604185848891326386365344136222848960111926190387684986760472250444793239859125414538200896767965360400890348188562969458407622957882122939428660129016230485823616327380986297770117952556335023698861021607071853851480251083479026424671909095508202617513358604908047185725478297478311212467504121532493407231613082807600842065553834682109151123249501038475531624667754944753133969388789151207679407428290275638027548511882656445436044479254145834804305015217228913087417544489371930235884741756196136501309890544245366142939295110963986628627869565330424740523889513464999539263735943702027035610608825579625999888784514353198934422057148087773282531351866440805336817006579903270249383313832275207549566453412240832440368009905510118568989003634632629564114721307999002890969409518890838036707124305570474572132178507310160285021005560432370443231004781609995696578100123239225832665005357279147738712921522958741805462272186354805366937907749919688283051840757491655316153803739285309588871851707455032271115238851953125765716772798116104018572738237140490923899360510900072357286812899182037620758815444962678899358282311489459032740335302526392385909263070635308142341848735948935120612415899399694632106328928051345012084801825752426269349509951214179369069030714601312495286335523267279052363995763586255859521659042448383314837386748286719191934612249769248456433207278030649070222724653286275285958135949085629322448083153762677270497055711403780493626189227840607956246341695860179396850375889263336600175576265384614023421563614747105114579675095067410553619411193919050865459908757355223528935727447299579084643729076313015809723156932782259543333682782815597006015652573393021115362713682637574553206175753752239651414713260653035203409592724685839214439876774907721870557321044295747422789460948389707115158845522302788419383448622274243916103493316856270280480031122103634630217407295872280287414748052964671514868462628871793128390994312008138478034132162372189236925426517078993742379350281166294656319643689767658311940356881133038812822205604930011164743364009407253784435520132257754765980173570755944046270798761927530943944118414420353623711728735105618006193990272278782722333711001243279005143304791917831774874365202546263754734143150135130774127965826214823425755854559394597873681267288503028650717907936089033023946205516662579205582102338273367492715274080337658283333189288797993194335680522574748546265756730793661735034295125625158039952979417189497866752845151256250934177589447175604007003056115045113819789740214139033551693175107654581626659593038869250873337904258382285207059520194072953424126012319283777011646368430440407082920564884063699347488454870784517883455212621385276863023163405321576926620047488648527139112201213510387464073273213670251886069690694788834673337793613646522496919742785401725756812959170954607033335841243275552652091388418689821519796031695898880894130631890788771552016527652884226897232125274620095577560957116770914531202336734460822798039436797119478244656604418888993830412486515076669613097024157526554678260739991214819152314075785542593502768476687900856049025020896449910162275083395945485457557678818292032073501321415803491846368551466002341810961224290766578798461541965418026245749264798025319925184592674781441324225265896923137787649473209013799571802052966877674752861236572789424392407041708307981947003091708235789986940154378602296280714304203520264986129855947024930830436750179256217587105673410815670730581205228136945486578593917380690705404541544270812539169320368559321817918626129414505950314656425796625549325055688607861301789788235051699662835965681170812723347018365254353884504187727544021570166694516906832388295322289883797589968699648126562521288025751356591244239094592917039571550312743690424354961493878506961953633170540258631460230634456154517486229712659407033061111199710705065535854822448127581760083595318735634273421001203072311277980274877262666840364531753009347825053411920491137715724088286070620284961989053773677009063862330500790096742385123371444032205618651961016222652520687559882331147581441999528340408030227894985652991347239906874211665895605429518221212381638070399825448691325695980483992344725303947084928590047264295973680026414684996682937866132474630206716799274063255205854409110739682618199796324597757429360123559823309806272195794649639166226127460634676861210164617955258257990547067517756298172212626085728480932667554510211741983851596271744554692076696450777747452223874945252760799584184693332889272469420817805860198385598216381137044718059974136305440177726000166968210498616987537880294618525929211178675056718110400673590984223719934925688734838912823682574704868394526842903208879889083915239865227725840664897992637064277352650579327246907927473258519563472875855088173692496056361066110823500950951846402070118352914404427939343987464707658101577208525003762369322312395954021323208595887569291922106140523337406675612132574944753733736204868438685982264572387810691118614545447185616957303666696150743198145034315484487272378228844788728402668025486828529393894630989016533301652101842467645744021551373328766410716035491188088589968241860043619006087870511797152426139256509050860206282196794591366933670731323455196808992583042731212194816276862984321414427079870963257152535753241014569177102842388811628480186084223667907825977303570571863344660444797809603092257405326481469560273677403102072839988798280363012350907145756074130569648650542447420562253107201024672791421146529205100426575122279218322655494566433481055037756717304944499301237529109131256027781030397699600567465413413432713534450454380099505191148466212462507822016822398863234992199882449859379306537995328291504602933906739359453211117066330351425575510622578731940339888525675020043223872214534917160254942233880842129148158358925306858667597455205724208585544559771505844661994663413823607633603323205385565324138930229015071246540988789085512751036019300516430268804637869675145676228014432061154980117861283164521385729247959629532355063005572561958177004239033002039045096846067625807093456799083713708657790233000394725731244556975092507857776622865059440502289152557819026284216488929671460535953113795154936509645422804493333921142659839306399441056385789431910734873852146708574119253205707949843374831708300568846458154839699891891479836164822941380643215307195195363505049429322816514604661667781251728544502385707460051632973931427216750513507118134384147983795390406578980791038866977915571474602532280366900404028062315905775654655163862708964559937448552728890661110663955566292840778097184345684514487836470525442196986587038383247608638742238028303278789898147519173186708369970175183586737150710352672080657093636024707169295980454561990695391234239777496392602901691658961040719236588660630697509702883330048503794493607677825205179456156800944076028424001662554561049910916524838432340027375074505029927316923097287956833838541579958346925298673837219694647007700091080488099917280051537904088127557165422747192634729609859626081139711632189439076318851098765707576129592047567106733974332046596021189672042784070932537442870307473373462990940991054040463384485458388917896047489027725699893621163929403561655448406863934654074223818570522277522266827858155301616618579036098037032611579043856363919841644705061238353588003480284276950746993523805074973802927015351098357847764043294623913927625770133947825823155613809337219037286446880794005911342974997560697759041889364892297535675371121006152953192504869615320967439614136869118670191553745300668188878428079845815735810327429085107217507912711397871280631886217538547349656751026970904188961555371533882149437305839010315348897331793885252992952827123251428934018085325315092536851229258759807929178500913123214666440184930595374040092074363672604469162614892127835223962127702462559291221527255875696260734423744569126158072764420824452194215804522741994574123108084925662888157382527931165785617836301580554270026216282397466837807845338534860808250841831207050425751475347573531237614658314558663564032546734387703656870547532276303047248159463517697496016273844186723171270419281379171130157601827138881339318664035195228622858199499425928197701759348756559654070842174733456804038740253569535834746369766625322864308104220809630897829345353948279152654556155249208541606277847748530899795357937031073433613821300421368709289138937890851976398723315576156749749444117677883313129709721240405451136096155270964641383276703261997876523265661910048289514045713370108111644431447600196688676723456645554098531541076628096485129938856400744508793675318401835240585807069790558885652578625443668706965159325054503723780522950725472841666379579518105976665726234324601594706374944580374713197480761761669115127240492735495843815553137084276085219167703119599716901096272772204194859110810177351419085737062143243166957045538987767403800974347092319727203835206588514445936504415440090490707409466869288818388456820617216467648053031849078700271012520610831092115338211550087028672291616305175552930573161109308542963455654936639242982673924048733424914696310052572326676537741192943284001576458083582430240226670157033567816405803877020695207647531116712808973687792696814122748766947735808229287458619553694148899520371699476462013352849984087707161973215760347352432118128923499889954623906183525691806115912386599184656984796580060154614684462249378342008641425113018200124111393821079957948922023789669645516195253799693013596833111568669355239949643935907035510130995325901512625324690428139163610600628033253219211670456906628012468689744749845288368434192807684916152540161699446737732626877538584669698755717382956950643167905203076048753315017623141506099570161931394453035545149112388593940862019303331294511879498472987701427908416192952226726660002469202016929541798366167258621562056975262093941536248859303583456552036535771728587001802626790424816266368801575399164287739863381596774265511752560636480279171278174141434063048353840316614830098259166226947717050866887039146733999593834537592335449057040635665654385077077939745864808764139786727307167309431361913429950655702282969102915336314807695425267926779012037530713923581396325511234970768857526944398610645738723341210506512414224496404851767504151813059275521955056041323913109142416900701816451759643839275097946437604572843372671076241137971106748877955288144291689085353335303020384822433425014099841415629779335653437937702882537792281684264005056833114138043813916800234464278148088838825590947703751825926021371882777983434288027894709662548403714224473870964797512331473085195377139660432036683072250659374397369896345684493864694442264353345496358723834773562091288689047963897381420900906917382986403170649807356015239110562146399080665213057555866146410302883533570896245177178023736077335760229415910245232938351718245923935088642931123863838767249916738295076354229587640404768366641395602798837024388611048438218606762130939171140624837602093840376608130088459135174936294652080356564182931813789014174698310944314215077461744605914761436864974568974900585073391433744461344723512819247399078334885244665934602592262497478182029041115073480110296088784362447971355583175945452521920922998175683185921361392257446974196960450961994896767065358744112367538529932065230201194314906326022122287264784278220716690480113849928306040710995659986718873986245413992983286809087406523640993706692166909000136434381604671342095136939700756582023852834398064480354871562747797524750538130296747772829091881530532292492834718382957971824645081376639798483625016869728373059783228659317604845711360208112766325332080150495669465455605374670022226161078499159214291763813277566706468732674393097016475185296801345629875979917558089125882859430355452193420526175242820686152794410745679570850861317303406963608123901378809037992818788031074224968063141922443735694989210863817620762372415646250678347162673852231762378942120016273927318286587159932118621339643188537859758393495563364068676569962136369089419960274647362950191036539104789424082012348557501204386823011265037306132602408792103655885258090312959570250778495808708741253496391071213164806927630789240592572171788847788265086367173730251306692094892151608640778706741303490505851083476479534269666237070460687852893945767095883884082415172710630858469312778404649670897502696094900657387759206700722379590978891033351418779914321186687021742408528662332934224491382548722167421911862943414047442838884880669461622111590907015984399099526016601428688505533105715151727713354151568758318767773529769236130061326813388533989447005417558431328427343480112130541860392803585829947461281015515860716977913385233899269671179649468566674878073207320340469191151465208694648753334144749195063008114218322500700520889205996980622043833754576411571722390621450258872410230103397020068911631949289474663464308655588800582290551106457279938348967354165535693670439647192984287662017605535963534024742727356494041102685367320166134049175179101996114191372882108309281451714545742279967788117333832659028565554092739801044942221124235913786465000658248731970889704198888150269131564220737305303836507435217138770545319255756057440942232815394862349039207795828496887918481381671984486547017119446723189794564876002794916470514752045071314634764534441923954296549218782914737810540964822644836393601101353085677740718585077157295336177085486121114530111589328857881042088369085293788600258935259734548258205446347938544416629242959236611692133220488743360885537110753937541960575346025148302820985634249158090376839028134171744255883725648390617908538002149131125455026987818352233253132389632630694857440922947973380204082113333258841893092124936117325282555106993676716006189312315659700653619916334866497556237252672853437794644091243290577389463996456977751108230429481222837027344495041865882520072465829235016401537245716623886298625305242527278647876611160042814214178388174848100558868267621868709137139300509949721259916379495962793201438227060698739099434418006684737282690080806791010363950799008423493937953098906998174130978737383387616859840781349843889499238359536178335051911797935315539208910068582487229648532166798155575171163829351732695504650390561522259913988512171492067815786029863468920240837094029668269986208689346604170510971124720430943511870133123192613778525618989694760170392023829813660059484023212418905169462115340688801855587664974891665210875334499553133543567474842306971144980071184402865262653050957293052231121106752707567911644109750808449822964032225926264374405830522060427605104575159881345937079915496946401230002386783101233219617286161536783420104696228668819363976879830639459211457182536662820190647270630245397880331996922956191332087383591939926318632675410427761937331303367972565890144942474513927956224381313594573560079614891542238418569335177430865089940757335623930782258274944980692801903771191283807731693457039308101882391367510180675744007615139166755342183166830261765642365097500443428951095068389015605271204941223774165738379103787122211766271344441143727835755544872107218865320810483468499379417976081101931086166278842985850531049973998139602199387722195589254012199722798360713607912061428290081581961420715003248057763759697712287870127081559081347369336228169611132242274864092142591794622941088995960247939029207722000204479975512841361698177334808194477800553054862629181313533346251057948375441880837450529666995328681668766985394338489877826973704771100116115430157887481115330206786081551314070844607068289092816525615511722239396022754652769421448368398796337478582818157964801990334362822541983520095556470549604625984893363002748913973028362772419469789854650738180573327709937465518830982140346141510300141284276809828029178803114177331786504503303804048961583213782987980924923891983899027280191206550822050796373867097985254311191323366830596526694125088594468222711161281905598147010826909057387004020787641935685031331969025911725864753242645342893248482180652542742254830425419214013834873868483848097874445381580830691584176344067585217974314950936018206253385739476919452344703448968765849620838740848337463744719096813127523862619654684245075689894301736932257845759470718055404664336200402035333478443586836039688424695848607708932456703320783725049288173584616550981571260644785528731475650644998681349636086809901315916369737204266085661990401394234478998435862790066422141666613115356098748698810781114128543612379268614236197421150105449855940437320907475180822072499420658135375733667130303697065339241194939765355971681443174442629751588237530656207387470703548546964111903632699287474513618266438910088758067600917370346983459392085711377211520587178351216905336819248197646286259788266440541342863933844733448785364099241543469616079881643845320352927833740810318000908971762286780908532821187218843697378957361994783734406448447105959623459378748852350069671777812668602623427177617463839321562226796171051929692609541731881073301501298845651130785894970056575003135548844185955579880121258356600468469974808333659724826452983406104137665661844047029959955248978104547152012845813060904849267906186881121837965292573494189058755935757203799767228008028045649457150954724789505523015596734737041156766756120866378469437206653041245605736125746433658208231603868857840230446617938048182549867561993776207960540058450782183658183549598376696065968861770189236060933653542996753310736051641915823906075783480863793117398338493988278122553680619339199532861796995071683058461370291099129818447431978517963956325635686514851808968901245886341065281278844583373616994700604664702807794983370975028901532212424998402775971817298975914998534193676708665172888957156717422601704738286902889329410893396171365953541557762723760514193216370909708517866102614751263664626091819294200642713856904360533015888010785079212202329186372974969545367884632399448064941382993685489530518552762790247149498274959063177644395773747436370597654029201925288842072348980308366443891870590607074327288788802424879195847164744049359328002573224530867808189792781924210482793718715042942592485492533529106100847157475905397422528534189356997527964910400372182639531592846669072951127156904047359721034084768888769249560294733520900964817854907486161919256556514147023847534105346562290986127015018631506464242218786091617741731228686305656309493018841556328182755448172894623864831452423393147076384928421145481517680076441414145868784313181705037271847044597846590876047219897737400254269964712384880721600383944299503569720628464839613449821974261930763105182452960333342944720472758587098653879568095465101526720872960874280993699649299787465343541310330593446572517564878595083272689355168786270836398349399489725577984219193979567859540679951694399621282419032263366075734380853106118725001628167397796484522580427774804266872394475185171669467272340128343817770203005177272131397797691426860597943302328614133869688534039732858962181216667177305534507974777026873215296829549785789597032663957830368969867947858998038671137823932301564542828650712713735475022648955362998511505492452828367392304751503590460696717165196250648155287520952654923515535480747945321225924047414266389061318103707163550260162052433838277855937770965468900368901609728841820328632185569860258532205557469972317777055051104350085077371221334841900289363245236113180427218254899125691614109408886420260563128483934312868489864608730281482318883688090360657334218013693551181608705828795602673836265664408620643462337014114196650345408703464719864965980845775373329465932615004382627429342174198599006122617457593587788382479419506502247992803441970688516500824993348977895250333193133296270697834066789881862263422161870213006088949825408491498469787265768243887750444941521689131807780624936476381366004888600997704571455215398799876531947786165269982582158012887476916333328432202242133817680787367009830141736218756137683720180697090929418870706011262737040165992620571723983039727398325202731570634348631020162752045292728164548331135478949826370097027252538541725189943908619425613854764358559474328215984597781617633623123961154045513553434032203555257026871276753638984712234570767253393802077580201560423741717565600213861858189256686996299240795917701777414217220498263951154019004919000213050906561280689995601339441515415973149427246301074252385307671264395858104793771598518422820282401173345724671589873323407448599951099303429014508914056581154547208445254446613305386642542876061160213820260260845123428265698275845088009907765349636237366170609336379786497529936770920377384879700906344012170438101367117409191662198053357453188071053264880374283697415353961589706105226140330945689768904418602821476171000370189919499275506149070739535086887597505441145227377505906349838586707978917782569364344977390106983945324959942122242068486581196014820035300631403872885130398057677661849297150682935055108735279241363018190386602869854981041061359560391536828157568795266195960933863526539726280271082643528058224219878812186788996386213763756791334215555369240250133748900645022279524554810146774515096785547778391588809632979349477753037223470526183841200186246502210980019570014798073496954154239415095861526529125329530469918203036763127334994270505365309394888837920265536266964138114600826730702147328375044058586985597492833457656935810809272124487451231654495474838669747277438401670979227591335849352928706443064624668886646437039085543779370381446519364952289286750434437334614878850942685277251391525928155926796692526131997409609539464952901525824250849384951214089051303515229273905840614945772957691411330177909666737748069152859403673990052106033194389821686621216345210491235333835307264550355051127983114499343193635591354052780804770988794513270512171460889548706160461380852416667830228371534030020983686772261956080219439004051882826611957594046935323905924142846359552866131920149412118530085017369457334891733654918436696879476255459897022584718269438885370145149762024953402683380210272459188879573866228758235905170279373439297603867742286983760122743952448520907624286119845697903131509662209571446764658580282374712757040097641269547419290350984018023104390351436542559370927894455807222591712557633253618288154619852156664494139783751783225520819767088077544018190444125034133902305043523955392264723467553828490487736170497104256068853593624860608616288621611874430902537860949994452389782770871554805806558969145197618798057601997378051907679851190701993041781760899527744721966361507626667655812428395407480073296114299916854017200550118628876907244498550157044291519440352181199582894149950389705771677264656600632131116116216812077405357243628228784140327913943853360077121763409682934465668383118448765033641733054461397642978660832017056133005290174037711132493705621875760039441436136015697679057393384929697205128341570554477591555656133805577432599220597664202570737748709639432465406600847125069772410745188760815581017181780287998210519160288513239130702579342820795676622199719518232346513971677328270497154370365540041255087835548984039902466297892514297273284532026302445341635644910214027108026730937924248401231189172006176963163476287776197735649272783479709634866773489239998364754959184174992145063505903402448902938763391594251878509676281303391035255494771570573695460007916486068501770036953635324719534798138767247195307190154809588510078106371450432785431965915850575490829965164323308816274054204312272009218665015810297302485191331223155367613817455931249778829172989886100526084795776948320638851791842588555499048169679676872544243711586919807450782028592793919267851601790310471602912817717278814517305457849152020003975485460847994389294816774593921201612895559086086685518875690371049384565125446427673561272671260551788479615235780930547933410871582828604685104719671229084040043185969522994006226301159808600651322238771784296679041233346886664536807170015785605952868942721365908530416737667696605002399931647199664114259352399172963488167659070102580764541814070818920243428635438046866184065041739845560482448359884790008275692647424464037459325833365577764258281941787371470066883140056819284927191757930714411935353087722868411960188529321174344036254314550883915182931617995887798705388374178552938195117028405987491717124012605635856062218640053383710206885657589105748144892834124295791097315882530197925564138379031238535781751759217710472596293622306808972645166122332484273229665104001241841258035572264276258836553034006269532426829994692125996595432433030902482248893365953139595478009337090851136160536037902680875333660264102329427445952448867174484079383471344856309333312641990544704541956445322434846034309502160210320659254136463440518212878663612132390374798824609639405255752306063718435850586545871610653812552473139235275948323330860589293355919841676640977846651229275716188925248004492750137792959484419756042064697443637939266970503807323673399948806428538654439124340809394971110692362598827580019309471549643027012999654909438948289010868249954371162264231880074991792539432855372058101364819104364253673202153961292972496594458573042089565231721337030565560897949498532548431262852362755608095477191183292118803721151588419917477707154818884078693135063149829433453474064905815590692080595680274156147468184453962798836609118998720127483061828395672682832567111000283059679182281823619658149864195295348930888621225974498134060425409841915306610755930297636075996802587030532742235413421398995878776243146088207701506465003330219622080271123844971490062165792572672484575689674833025468545759199816718070473571920322908186645758168359235115764535685010420684664273040167091463320870123954815012813311088404525190801024853220773759435814179100148012595918562362287892490121767001894427477483929856268615480264622816086788185327648484991329546897643997081116590228816983630972076767079270669793443976558370717135368879299877152484571662156695835349772968961192489208185353193486125049491064735916616565011756950052308702380363916145045076603111083894370764103108630483174331329898837206004415765348832708503340194981408459704275460823393807540961790929572259406952141398889796160624603237278153281426011590414850431358806286540347711417940070729386203799092865472488187201471475454505029386620871064564764556408586507428645398114449679484438262089146184272051760793279658810721977635524166273486974378855276743115491619287175602228235133818876216532860047953514686946644379240502245711079140874192528320493327206937940448111416233988712025140141616251894742792329179631620655432005273470570252662317046657314367794571802327986214856383018683631251748754201465892040123676957408383151388063299493980075019909081683923882799211146132693210352210364388502626710819156440986817015503467538063595387671449557962256211136677849972165133081413342270113231363909400343806333338913716327637841816923945607354273123762291007482375618176543905350221050401936027569050902229993556140296110688517967649485051223852995874052141848346664624605802416562901737967530391732548750191846060753202345382872252149916245784933557102216550135086111138415855749862461973515263994875513364712160690662617015304257527363229086710610450868494437168720690760467238576163972283422378263206846877837289514526644100356549136092345218282923819304905725942364585253557685089022634879872940718025382593675668879782873339527417946032110794470416640068996821017247796666110092680698821815445671840127398048576252638852851137527774936254582328806987130942235472303976461236678945118386800765472209654988713480035542817445089451516055195369165982727272109464284102436574771860832981381828903175228454700476292901701707157316043669101067711958218545374060196258017468994840730391681050722720022026079018304367765718358710851607550591158536780167276455900780467628524098304152382324514829382729351150238773796777610255917691299764583401544381635733175700881741023897930116208658263414959289312838783748665779309014434483586765618735111501542847450520689342768466109853910039111398730951744085757041364965957152514101626123419316211645484011192630386196885912546240680431074845038360374911116440590515289011138559254151237208755760514847986061093936348279706147721169575827834266014609083089157244646101236456549073602562218902146676485748069747194012978688207312672818118993838411996826921017769137403622657580080399966708390979719333541188319926622912204956952220517594255701952237206016073524743293606739365789399853514150122784945769899205760279344333062093792764485710591881529456810114427735406249339168167435405272931472285391534096286468701390141097482259227593552566559834444299013425834216982937102970729505033279836969240279517305949967812260445429618058726990113666088604819883017549249696784858286478354737981844093698607389122364977318076003802490734178105193325554526197874607158526323548718615575319399672623953566303918397677236072063355894141415849644909278825949265457739973099824042404843556140229791652936134941833083820607362918991924055735246898964164575393084893967778562069784403638812935175918947335374486955250459455589610489997918992164990351114306534826296806656268674527204361974648397893145393044493297798057015919437853270152101077458059910550225929057906667370291824051095035365368837685065964857319121565363755107830922023752040251442963914122036925957127850768198366212840153935190429590896739359152894274477948829920925907620598912837673582438569108763610311846277434856707201997959155957171445426595143550349624817091095864238488906040284261743686192567545312447993844894773720894297089365228457708900722015606324955901432950510758117076054773986671090973983142875304266435036273891485730994073374843013071539596354600943998909374151879563197396306401342913593749664762759557293400258873117360459349172532830718566505664974878002199438888480577914027870001602698997897491086323979892752287839218708740900005267687589945002041778797088584653562603611275502182392864609735507747206506909301426727158689453638006600794998568685506467663098171877681969842314566103254811476309439957225683032520759082901747307680473708801397187662425256734421358901232876312035157297993889626605660646788954726148140447697931873866311698675966763687671873761513424240859883089420947108292698507389928720348532979957394774313331612209714887352819719312602862067240362670807520058973154273631477591094088472561635372253264379632312607639171225804984538175621670298128042729246211965235941860263793680106588504521760228687645831904534817985796541395922213104477125113908536651031587338686767466263573560330392086295254787195093502854647557268025643478102439761342249093680102679283813937237957925427987249086817674067696966089397807536287855767569475282092430529402083682816377954002208205547605680206263232045449851550824492941002259553847278680359911148444895357324342811771093150132632483452693716790969806738636028167050389124622954245912511563208590029759404007703103407874195059280739430254604104233492718707272710536572286965213035980636921721276822795759477068860824031706886109357559932414396067566197544149915611947546671320791580701861938391567915468499891947882523752451834922602432447816369486997384324027052101647477741925213617629133747362151157283426275339270221872267916156300775050150527686309309512064802374038887190313001444367000564445331299978965619508783415013874419597732518958600912103893858712027068252833994023012192684305605643427601024037322578405279507153633867768703613049146682774977862288699357783782847450534386535729537455794949873867043894078581890398352459473860563538356906573958666610028725361650531659126642126267871717160944830566376271363439709916146593454607177993039703245830084466421591192646701770274218870563118118106467950392796053308654637130431507969681448553632065064332548537088857456258073623297183227425533775462746870131559485964470773713586785556657374356745958805171883097672857392649849633570817954974827589748642847674670150074483621770449515050018765413734861950495868963107449634452737177747963630854641993258778034333110068996632557639040547179031504546247086340947151625585761313893802216887492459258363311592318839429838735415957178828507169860329612278796170720627951192627005734295444395761790216082379643019918377422844819755308808244729538096076054493025528565254611858022042809683297408596534039226946143878944353667784637816918555550556005625007112492722709454788644910243110657012761280545337607905448207844758850713307489857733960513444585490086643731953969616031794700031438243523536183918535516072269967930100694070305683346299353239735980195896222123206475690112492332021107360959435702089221780221365818222497256847669420822129802157248333403350465529679940637600864171034395350602065050357450772581048833459454017772052081793536468385666616212276892249893944529717881828187923966056423053850163965868446924143017546896399434126763281992815676427336756997166849467138575559283183834518548792832706667925690077562268147007567956467179937485964724877519196437418945049938130412160799553476894305266718506228377938207724959699005990032955301227837697344622172323805627107506594822738795467076123754256319285545503920065201079780734545805287767667741982614690366711339608553250338311867462076504616329077448452222466860420299250638079126389816369807432576222256939698915346184657712699252382786846735616954845599835893285519715213400550293552526059131936511958690811384173514713525228124736359735926760932834526834772271718998704294395146774194876898767802370856781136901636173060763016996804989592043700376391134916283210398690162300905909578297009898846261034022824341555687011408342251554280631731232223961482059473204123293723555624778718900778583620743616322737794193597317992566665705412341416955666561008531317278687280341095919548765546639108852948604699799986972131145148568806393129165280950341868123214670144364057112465944813129594208935062530575925428430022919465026950912653030503343209703916819711253061346641682301586028654830104725284470537397559396731574564922062142512252042952694890350666395178264517043164287625486946538050837415949464152182985903351348445923701128520666872475534277400842543763142582716593815616569152306026644168010547097440463310990154615073181849039678966569158453816613988676412079726575381109530560352425899427595349476183641442863255868163370203092708893840931897392455689448192874199651316103143348007958588419617983659759176219655748111412420511255036881725757059812377310188209704265982356238870681579325462583193211787454046196877071907679650542796495101345958119543742439109521464565904868472559677755103534820407917310659451430859768599430974232222601117215848654677527007830858053164650121659995220990785307258856202423727913732758970149379418846052815918157564070499537516875767261245685630316527332434802441130088181769022351294364789403237426683922538335871671855119817973689823289111924566469934848871827535522733203047946250799993291184098240028178900710814433149667050145793929834855171507066587351525724099771615147924483661470360362443749135252980174711764625949695849087608610962586811159455450701360635316788909697330793669061135223516816737837180579088274979068952352703214197565824203384923193022047965477388919213531176645656727542641757797267989670077006299150531419409492192394329218124135711871328931597189704981892370977134949984391818589321726261418314896705077242697330214431945029232645241565712982647310491986307337563870289817063158851742653604818004419471644585842601131361930825553804026824313174807862255355729688033534838648298660329649569182732708422568689122684134585691949018973252944888972942960059985984918346594100275714678936356624597334694434915643620355364263336254384071282427974337294566935397917730117356667732722150365560102978551642174448214379012248750100944997928331754523187840832601048697561847816720044788309956808288889773924934323249294049814521924211552988908926387038890620685384844925601111997869929708082318762783770111264634481963655901363634743356113136590042929584546449944750677840113100597761459589022609780515993175563486170458656828023090613601475952643980621551509613539611838054406036290084117756771002810212716978377972076590314265320401593259108081738160155940492176296202345927571111893671154388935260814640717013374720811140261891278084932914893331571132157748382615081199463888921260407004767581302773080896642953740554762690870383132478992626084557201767518552242587103181319826220998652417060094745984754069236794685508243132098601055883445014386277384878415748202126147968164722547168054787041895029661967888026764146914924524623600014045075606530610198565762135129826888839130765047153910362163101239312216703356097263809936467217449820884710862113492638272847300968289176791354873896269633517813349968262615151517343324496302323664014151564600595803526514602172245689984223924951634382464411287725914666246865184499990077658355350137098566265831134625840466451468653753988210394674503140584160760846697856795957430713855018051968836694650707663870439179509730624728857448445521090219559026121059359155953872792850551005021129434672415982782695047140984416410695717901697814336063275681059996977586474540698623722719871958033309531064399873127819120674452403970498834150049366056789405807006329569051492471110507852882553571138403199766659667001906703962185072354872274655368300542622613967229267880118255236180564035211718706123747815604739365344794411115036423072643953993521663730803741580673571948126293792184629147621887419800855952624161015432976779663924302885366519591520279467465516956019957891105010172608322015753769639508092160310667764821213090876289344788367791913230106223867033999181312584794761325022499478263351630409803349200958480609474018764198853709052005124492469206080456605530129482110392426304044690392909843596455082514838670827496165315376753579980440875463521851139385165548984272258251465282773574157903886537774041262330565953743166809112319244325594267270196813408773375704241186028443646245384519000117400330424024197403952443149809174857258447755742577280831919553657983263074676006324128354386829499485715245755369877293323198753468316094102106881409698750161913082204502996578109713707038990013156688447215804486461564962918205578234531058454545221425679619155513873230718887782509747632775959940451066083623339850330609170974324255824513968008948522084226655383684301956160861539007555398138416099204819831446547525184841387001978900886734145790537118601121475528283544921995403063843819382269391340567783118293063692983698463096431710870041916324170907771987930854262689037023824449433225997453010384986550942421705609195467983556395209355642079375303986590981342731615857803778812021813275689783678424825063968512514873141761465294643867516709432020020847863160421556217660664628757552340172018058965498706885817096856470205457305268922084986038692768075169142288648101298189876099630709271979040420541426996983242970549592213119378086176482490778345752346686155739052210670627540305058065133389666221156785604098756390194640383763698309073750791112044767533420827188184200777859497457777149864132497437437546115008121753185187215115827352500791145590844957971790326994209078501305829097863518536325585999116238917127043090745419126687007139091840247855744043379223158972531785912467387054160342771817819033387165027196436690918554192402885339864888997100927876826239927360823084258901318830575886560416205836010883890477452022786577595603832937011398583599949662556415717795151302002208902719573155655639781711005144222942823549514750444549655876680926892312121478254128209424757209272069357015218861659669290122993215214199555659278162814384366705299757832060553479162160386862624139218851833044941429292439802170101665303447086020835133258998406073797571353016053465509484345203970958431436504955227295706099908749257162144854620962461826630934241170386700110674543167514714828889398815525283853737906242118845624339479588089295319666388245396113468838606655048112602529630576976607212111636300644580789056241620617824145121922403193820612636962169465563007389955318573113154360361111423898465197457595528758421926813099913823306617091981647942250875119392089386132362757763484478905223127098266928063761851536952312937532099864163632104698527884849025773670090085743258004963886105926558662010982882598978230527915140521479448408314183964258831005652036918912461612467702109516544576440995870899218778241596502963307898243163110947959400668947034873923553475151184529904915059914329479235758480138002619647018557792630251100601160343152863273895577209381224322531702571342785473119922129915259960641622832673411812938763016641319212422200232197548032342575129868620078314264378299661912981662835351933489253207777300596357668317141753329849024813670171976592347849902959559416814665843737676258134956439276853437887495290271258656470551156384407856398364232004508467914689635106939162822522335548867257450770771976656380498883793610723214942454058797429049920282457551865246057821001156378973890104634031939770313096593579140611652825120081047165985633691581838277982222077781074043747050046043529851831285613435166190943906793153727946074032128305917030213041656856696663517266724442252572023026797573563595452591239435978185896318208568081581710530106032045766395545112844440237718766891636173916069052115638193184813858665931317485282941085701773946292763877041201342750651459363404957843129877416635034769742844857827859376444024750335841651770962058198639449644563937614372029385665683662907589876795626267998418912995613484598526598449544626800623787337639355231140419760244238079609211744295591141670025646286618838256159217288246388921005611119998509867677742191205522811836679649576872893898881266993694552041084765811100482666657649255835963407886971281293588811652890365201911554060295799983241959706818027517962525480221645543813339984892258781729385462305756027852409520609923820860151972012517079214243849468357905494251784672714904602169659340454165806769581425939520363286856755545739464436879452306831597900376274470423643800121154311356372560077768195355574219061752609687766206300042432805038625736853255720447111843325310105114554924360729702386350886285928370755107154593016900065585844767535472753752270041218405206472477283581340284933864783939074337088050465891913000159636821017587814974532522798520749809425128046427632422303426190095097705521880517942198968524810312849735151825350664719797578877164304870321720444660396807279221363691330656493188963468887225678954322736855297433376241475567935297104591991507979986726660687735372926348700832408070691213829746308926506305810200098679983823090909253590886734353972749887957085720740985055741896083664629964098647395927800861160614907542784958588470200901351345825087983229811532942534785491228642183562282966291401148156319613209620481517885034548107795744542558339596618665444751359068215003414917668536407906752661276989733852822780817121096294978982543255582823167353196443277323936926479796387846964487074078843315827396931196873799596492951625174426957004172271240055091304922089548367706165753854886918033972518989472994874768014867646250240483225213884906489119721321708630112929226326126946282495522014604538427089244648415192901561969301821038281262851729762693965836389617071054325124172262831333533192938106973626119895552389827402352351482265670361553050388116421949924619788351738993388125059396082604559299122203246031464066147017983675703076032740513885002145921531163460908907054193482513038880318343997362953729024489711468744203710987567118121380816291948020984242403531695639426508414317672931345502261969906899651952650382666428373948428217087332580708844473188644441328392925847603512282636637862538384453517648794111384368438637135227666464375641532996893296273379844150854516834781821271630695257261076155988739499302271152702268609062756213620601551224412853801839798228501156321498939245295970318937886404230422848153618049230448241039086021274154631281042495405547361211687129800542522378122835155751466480634045969785349472030577262474279845343071969786234730168638543898438289730475514259640607659634894736976313311675393013207763970902806731217267824849006623859888917441741922465179576053131482651000666652870417203417272698812957278545576949905186218225355833889776182950101738503012888558510205823099969088401713945130351976444547700996721908224969016908424322458008577262754115130933720269670270434304094029336286559492644593482146477214804787788373096802044461137629411091956853367667868720371155133422660609394887452001153673700838614210799876862361729086386519017118312602474353927987324073770522366810696974041835018766935081223432663843621817495843313285557640068936783506643739579368004312950217312195519066393806456833526015061591924883211618809360021557256093845553944004365848740163994339331934309264695882869110299772489227166367912155005273436404791739204504406763191880133590352839270252571304796783264438456304186681726141513023926039920340955903115405214782593284577421434993216283087089575576400307633541999423599672965958151721573754786429146567959118929403502627697203029818103235941190795746572460519251401440707960325672927260162229005162007655987130151116541990500029173944753395212671783166013698450370381652370346014598695533274412361830759873764894926181414961758384005347309993814733055525910288023028913973764552154088032793479192399882454126467322849063349554493421125078687430759176981436609514216414598157174056287353566808354537120465388870420113962483101460349257236733617662321857719776839592934265671430633117679055707024876639065004184251266933867567825611068019353811523329751861739879750404890507794485311777900922423305279099033774141721734477356473286125455879673497035562364442845044127911945462668726726352875614034493767120496927171860784489224668039147371411514148412693087847817869008906033118654275139347591162487115157249295255555146511827860954639081060977632648070768169587797927808544036178394135333259606709248929222773308188764631365505098766481673762506781674415584836098924915741414974152522186993377361244910664022624378385216646606552066580233881994519733490184601439360725924506830185808905921247800888375153986547610173043638127888039636858339125444733609445373920193558267985380289721782581833929270361360507035133371873100694011705290188828800115572918628136698295531099891453458277300564163291167670947536671408346648103245614632605775048435738271343054933846842477118636494914852674762765028864465544772144892470084564103760488090306818634996054092453931698861120536819472058678523582678935060802159227635387523534369810807827014559334714377808335634125018857600344047244317778198108467199610643027156392927646454362239612711506622085644867154278369691875775971509286177780513011618408244256421694566818925995657372339755577231857867049945698089416329567919259831467619338948405896146915437431022838516624144723545002207782256578658679233069728350239747347091391402510024235475902130761236583770325669857516990546617486977202044576331451222162447392576282458686885816231891062996720910937609528197369227136643648797952301497650515880567558346655666230321056517858651752745260621119898653132727852898838354738001461870643085944561620624638251402099915893105544837513752223868494003767649955599205805341875043624890245228318666927538056987993233648091560982174639088819060445921707710052008616528857157167427371333805651822545517127718198117380937336079911707212835727682219893895276538511746814892275611376867395705669202068292916530791858595291758907509239933722997417628506833402323712150730330337719048391325429694358054299259050940964716107175299053778812184319697882127449442162037921582676134930380931346851671134552303013604789799527777453189809033261999296508105035499960094098763611086258815957248338691776619477948675980221456161033694188105548731312054194901675413045423052178205043660544629537071817967581188231300754799136461386976177401552095764061375309886434789988197383108185504178848711397338648475440515565627610110623900452877397481987812033826632005020081354519043490097297427568179877413040328531113389336772895037737535430668055033775447317584491107816445555291651815014432607262310743790752566014111782754243428646289382613483768963216451022754844364669752964776269067785401920410601140428709902472694826652827078780861603577512835651870267709764707091340786915349933508956517318387014087963717918722638947615714782489962965878685494843700151468210398975580063349765427511494241795154646238882441503892610681805385540264109453738734034111551054035249802995295370521468405246787836549923075364616368967103236677328943571958300243566820258987684516799631096749322057597841041223720861519396700348526685066711605218497800999636471984086349318475290474566907453926021946225467245326968403849090368935333890265320691853990871088673199091698576031499647399421915058263423112796907501144443572377768836312369568220837071470932604881069378979798288986919724341698321628762961738485235321482294331465349411058339792511191405690924600388580760028579567492548081335775258421044259595443422604281934352643691988345903693400371345532906125722105930000556321241177246457597641681575866689439775002011314932780592709448039982531242142575341823095302270179665902518625320368002371765689847654267509242879279820735839426765152190513618775446357338567348334687724661606803601055077113473634028051177851817295507103539556944349848829247425685245559168240975844306263521524891397073717708177118226244308827127850076269045740561129292656585772361863004348915975112552242777752328991288424208532311491813375999374804456758593814034434654420519728204948634286765178451768167625397738508882210900149986320601343461720455162044512015570793554154218238922721729338105518261138630873584835524466085969956049069349163788961675921149184618369521253566174958609921998213716260287059387555024896130426997851534944632238733893192009205529062214868776587907051904759193326007160255953287088909643611613935711054430210194376324890670363246919835843832317242532490602014140369778201038327608848956363797897904627029524836896849759877499469758845909285346155797491220810651108560121502754204108107312362445023368408172751007343909677755184539261857754142133253235938325574209531507016203801661295981958626046451791287684026947619960939727069040300774662653109803210075354794567398453753392675554995373927909777616128754666245562119007512426907335829401465013475405252131681036034971103382891493328643679738485068557312914537655611580770405486708002162705154329270727152716530142508028710490845409403824849146277884741134350985582070070197436490816312044837372481402889798838032905977334182763815769766703878117002119049612731576459351946354363920014679141760692431100154041633803849293498626374689507209873455891383589224144852656644402446319575213957779118829613594359792515323923125278826994435063017701139820502271433504673497272858490263505158940463528183138763679068146881255224709174941585518120874417519503704760853442944712340258215925421408288725317838870127986854634774783652688626786428653467729757943958825815689386352036220807912268879120068444333164170662393016836867971597220966583008427292383257173337739296849660397685757385822373696082367951156480368313777815931574857629548638916733984588326648719350929482167820516978135666284316873620432403703502627749389165554845953047972599080973392109806747711596412984189574612031134324630233019594131644410906591595588640711268902095046363355567278677690532878013553272004684234229816519953609575345638310751038622288849278041051802439809333602174167917173562896606015850666882828513435004857750681747819017402700269510086170089729166008477996615654364390583291031988655633799617227944786916185228639011020099354264402268864497250553335659331955872566857321255144222176305539156597008272632637353919300954700929630835136292178961355675552735304930777081059862954679847738229898932010456834742114425101009229696515572075445964082351117414654699111945149907726637940438597602240467630214026169625331410880538358542361071087669246033457729058680833127007331922214700781225598947630556537528872539217973600110664435507404436216110370178184904616345581740723644137941426625073651161276076420829664993323654509294194429885304214002884427905965456690504455917231732758440736672333014672479529857180512489884377087266207667310548131458718609809669241577433122135814125255940735840718500780875293470404316119522206148624639964276942438855056744648070585449602391081831061303664447780591747090369852040796359089653629644197208165680613438804012327203459532924078934961679087981215983059283834720781823502210286625412928319830524687651303846858541849972612997759326252090068026163015841049170101484220439950735054743690816126225427860187065594609708392750830175398943646560714629289478754621837293785270543086174834827572506271363608366255496801159607146605006949794328508354329637377431718670112273741369038724333476435375598961596618456381094855902391639405044796346938875072452316798090095974423328478518861863450089999366608604390869830624241420217405765940531114849341454919120186215440012747536191272290012105750074134480934840158388690325827859267501828265142230991541906166838774440021319895668611333753948434349194209309848020284060919036351063181655948535102587909947831094116902440853746806562128535689738354064477373488413673357603912907528669643905855718366892085441388706122223499956499599032272219788941600571822738425355589037687066790586328869699812754784720491862050845392856383700087407200544545988305279588519907200642367454428159144481192630480290651358531930539738646783042479514887632260345917975308182317822280069749358197433772824098149215156497430953403317128083093368829837682261022689260567502774964467024956432194296929865410389115381867566298022379121560757293060642125992302287663531956038520427489914932060816655273698667682122420944916494706668142883698780429696281660561970784530750503121000829490985773538954336678202036726298910212435586164358739512445469342196922365519453969392097744564430164738528891743850727829870565917585956542135342062188176819021901344416051593893013741462117079416812540582236615335588125752988529029408204541736294571170704341194122899627952202529153765325494607753763479501307013716181665307760109612736108144849244584574815184718251980256800991940270187485726482902398624105549959665868170397498024803549621238660249386313484335556939954822022999931658625356708965411644120492712810272982708199249730065950349333157419580429642218544931057229409361215145315813578257594917927375927085149025422607297874827209052882110999358363388217828459300728053777883632792029209680176296274316192138303746820421751115628101780525783208596231183170365690116254414339660851316582731297589663044939223348391941157889255254314325847644889447351564580653047269154429790859708752754966255486676738517491151090637889405770431584543518664271741950855482871094684774611943621842611491365611922844622803468286465088257771176829413297104455565923834877791633970331878769996247286714610855931055643285610964677859398169178213576367630225779897542694150414785932861554852195672728416041452093338590923015729794813326590573278004112957266866840463788826294720309941439416665620685532820388142199802340846638373915088176422951429075805875744017674358462087812271532746799880155244887645939651852586116006416757591788555890157276537061583959558234617746228466446044635699104979821028221030211914354287122423682847306873453243000858586981572090834033255823581993832624739829948574129101480517604893255472264401972544555931127714310484124064359545843284381450423169219787687185187962748653297539633032954754493227146721653244817352174641270189701333292111531349848209373919932492890904539058668554694791030763367677150776136958876265696099100420162693245924794051178327258809924832473276412375620854601408015632299949866117139292777202342416694564077016196358488791988039629598177752816064838554380540937341854216318790917240297269262287456932034088007269226923425980709707935824775948056021227512160199542122241581099008302128906123485076595863623207444529171497621462917159746287884424857937699972803991456673770001857132265648416719073709860247748438496834188280083674374986852887399815846725636982845332751319445855461187645757446301147757557995223947043451848317394583240820277227313144753515397453953386192712673149864893897012030074373303890297677083723715308812643363099665432764823485180684283992600030229908514763861217083539434094710251229342751965060428921902006204251651483807315438951922521557141144256467570825386319743083247615096364757621859967883968230367267198684434407576196283663920417047857334531472585546156045223224799033803597962166818600748907377372073397383241049714560319875516429280125336902965062436040767915845919540681874425957232710354805610663249207493318788573070216079619947446938518610386859197206922670093889758209122156034554171592815134655009108597201588154832518337224821450233748567746373330101987851863348857058061907152663772206241871797819768413420981027992855422046611751046088343526090113971276776679818549035955107828706476422513439567239625629357201771447664907593335707600171509358073635849097213930646725402751558465770174148833070590818723509950832505649595374217754867071164595018985797465159806630064923408397039339079453745245949581611602113995981792817541219443519317114938001257707047494374656315469656406985486515333818032023229761619584169630961112067083100020638456806707202772664210386200881503574456626888435477542808813550019112160288504551489544241218801962813084746493725665708041958161996691558090512469544257972154579383227011931642315397462887780365728492956654362699301669712379445445205744531319739862988416068138372667441141751718673454970779619448523432295533640203315573794804205271966524818098923966581693917195154291953111411513882867258839042264528909940458134889659451268977130735335469719544503839601278282502584412313153661159048596734782101183848350859238460076493727020330852575365242051327040538802299308656034722895950521260971457680139123762297973000033225448075065247282354640544035236593246835409313863991762754987958993853549601764474063000613155910209386888624257825229981594904766962427378843544037025033608230736015167071755707141633792283511724167025380469918490947519527916416392638476188598598345690758682007385449389480799267721367601924966581920054757565595623690985010604338339440998973088410306494662202672629346053557454612338972842626193847457778812574601912787044551689142836119773542800177049218757058259275552816945969556027092029665838924726658374408987927633789963347657502036938234321599733931605495951901915545052209303198605519075041644988148738245903905036021152730468571262600116266075255191521953228676226393544921907373084753083565076531721057202730382824097697494812151960603550858192636854020178178067373281003887204396878821728837306606383275894001785472111905105071730075911272859946085872898267249401362711172115832448927755498598272057383525414459079745758379968687819810765631192699951949896965920600191969593341864807850527176637977960398503339417098525176469173665854061486802613596078039881510926961862986961984795293376843938188129025964998674129729044971039255204111540400950861737067780438430942170202743361596059851177536302006644304701564965142849225306912407990630265682810254201468707228533929159621787596914763887772075678336144388410921782387072072875857896697720884913890264497175861543203636929461041428058257593643702181198760427178754109271203896405696951086204738318061056700081101845970261152184022974078064189296324584377901097425880549027576754688465722828385758110937024984541700972546786506655998020145359436582145801465615420594701329010589267514452611821208645446790352863842968638532542590199692464216770058621862187887459847113846602452054120837022508888292675570515722284095705268569369366517366277726817116704852675284287101905072277041751958126070963671533538406450120495671044104013511786488774058785025044473177102690640896974122675265697385635515055054309118062226766588873028503016492680384310108882536572050705006361530412471317746319097670312501719885143859213756779497371333939876075469134847270839032799558957923762430005748587678458762110146568865635163131769364273935629703114389726124568614272746614410870648499922825840198677279550183274459737062947287729345837136214814282324018731868183861453347848509717294668838966932922241965677104569559436096153873467724100647382508500895476664472369140466082048026492953549721965777743421977024768613309378788800039365038159763909968697714288174219124694553180035131269418309912746582276897502602519791875871998246577377539855058344428415144349200764532149617773396823092350207913235350759831423156570341714720519643016368025086321176172402228174814850519509170751318220971210367884067077022326210853653393303901531169267988109598928458173696619626507726633915493600425899879912213734654556582658095511719450310636802953179018165612042220466327337578778216487592741983354694121560475101178348948224914437795405454921521216411242722173606686855968896422071547904030609883360421070373935822267613160886811671911266760316693645998586383541299012525728224557850427666260504267756509693071685871442691613009608243181689266185237193280775750192519840486328743580129002359881229303284404971179539856706328904528948963692475785720224783503686330446457449828836795162331557081960387535427050817017365367922702175331404522786314149189573590150776086789943453987941927635584058533643751422415788666220802852984573689485036290526973923601702785395532444339320084800060419940642365628291629080667444401971332479124425145324160085836702749572481590794246462775544093194677942057844312149895298930947152574670081273632542089747603751625489373854399867768592123511861159348335580303165414505628023274193060991085645904263440501380296461695558997181879309654431165427888752205085447745868595350697397482297809940500434556375048930170767092314678291200421571381526426934349722718077521373295916167394956142777986685201490419120051972532372786576862066614018587122187249354706978364448322480787850534384442800787078119286647742959701112087936288976677825849815730521574813670359043733194347528526259234620708715391949160356955437647086845748734937621601849597669223518161546683933394413349954424253532105765684363286071717649104800502101478019619751139510193897671021547115657835843569381505624551851942847725300110120316105752521724254350077387656200357242807709551253977670867402276920228831483990765270555149477136634520709448525616236327076853642656029409006389375048772271963014629076584601167706358738313995733782894171557189137534273735578292222931122482099132487359816105711305276621002083601558611200442259452895302668586998867359767130577195618174725923526332054503704030772379388253675927134975381604863618538552429459358574327842943093981592576874875806441619537628448866361210670571105093949053801324652993981389017678252219477341717743871186129706611338619636980263159856152855527783043049229512022177129879792869120908371619153676093289920139104640843285180567121422051749717888219279282957865035450559874997195707098624382193184612401385800116919364416715667233410261469962337407759176326448137677824519350351748040821066658452213510645337909254875216117945889302585666422874652408458695346419261423353744431540527458687099979128691686370984414638152066310706314879285025943511112916994763776573652172185698770683031123269134106275640471077608335406831756917711084439713641484957934537167293600162828103340128595762800500781762622044294372786728722236760295077636165133925967960307731874821915846897685930857054698898098506827989826540652286284748227854294045848435199909097898864214909332312062186741678903837154050506875516248572214430717999520616623826522779620695374654626423627273840276346767461943874121591834493028038538059558470595068978233146165782590199077688954968883619513914912945058671717391952828456374675515434276084898007867107178052291143460656208947177460693481119925759201013176054890770620982261236173056554112997379860269586693071947381562651323645583260724154597796823995785090537081986621015709827428524862472005360302424239898072230026088429636652203161626495729095443231261338082219194217870127472600206417367094525460143464542600179756427374938065152527411254008703193417925271556603928023472719417563931200222583009133003931408321089349956690608885915392985982892674134230541202347560485164403344578796890810927480531962772755754098321289173771541580339626481376868349981381796183799058643215754191209962052732437476219361396174895184135200647748136224643944733263550683534108981035032954219461912305199078449689600008318786771730983950170585637552692658876744519820577277001665871605044148069887551959146949459263177169750948683062779495891131856674516551416848095177474494134553111832532008972885879590710056955195157534612431465656006076394107668413678684861579349802750673254319571011758613412502513699799179297232834208243840474241688882984788070764049098069340576885940966931423144686925546299894659836760574609541935017671967650010446518476531089393089065331098683801341278438420168567525955549468500305421695685527117097413479742446035407883009025635262874189576977402291904281793042142961946077440318224139125352906867344153765427807796799442154761709950436166954562188928707544993449180952359426040101395484735827002629827218298913103073963297060164025532453283299680754533791155799932539899195063091734136891422538781923163133413430176342376774816388736173121051249224071474643416534921779675197944576144976236189514795453778227741064267542375063746684016998448526624706250737526864845693606094346847429582545461749563649448656134365336663481023581612310607845821493669384861271378467753991139241241714772775308208456910088545250918309727229550480740248507191411225877948640859449473345447903761029874602844348294292835422015109624429577275978702222520787321097887842666456894210245115496384998087245890527692980960604585209646662540815371298249894203705297069920352761080572962840244491888259336243432740594121981579082221060381662758697985022130631389939733774223820142283688887175690163968088244045773105423383944027135760200766574936218530548706129699448921627575500936299065483592833701054205251245676045609467101566437947135382046599148775098638509719715829566541839203172011655485766137458326762036819461986717228228250904497230451122599940867703259715318300182201186531521951567661252828896292266737350707035916696475157832211477219227902225859270681518360265462597628893157671756473785953148808851699778874756781462265764716053278581721451559053103642333068330172846441683651280335675143565048766229025428803040037352179376540125918843627102317044871499945906079350254340424749742957495858912177890843103881723398609590503319370178725622492849974859764554043029257688926924305201217376542005649036820394066253660117020267713245475902200092358991327244009968661801335178860326658318649468022292087527820879506868144275702054822439698683528203966696241726852134351872312761424500581023476576115241939682307251632946427722395843406644862782529649460953157408704389908893982270223404908797218746038396055844943025711337210293192876646836709119281729145445051230601035377170090293222912072250433659495253293520543940775348656773926734551274689159411918250741093527532257876974991876618139497822261915843714827839768082111161374933262259988668367657182532947427518786927870931177275982584850669022293517571605354102927510472815668843867858226097378824648757050232814674431150929153754852275517906019469014874495079861609688995928463868161408149017214932849147912044783290084315097664551591269817828472756958525572168092346889826790280613695498878336920225455902359608340070775765071854011794928361272231397822256506617324843684065161093905277303676058604818881843401481240092365997644808111795896524130714899904176902480581167992140074289291178550083492633399848176396579487463089998107131837952935261748856901834915731169979893114235525140956078262301735975692856276918018319835613946761738483926174343035351949270553226857232677533300233543697333022665475106804859163517123203506424683494997007997331632719608022613233180082025945126137683744297584293292273892561430911876885119886936429676427496309434691790621875423046228925660696997367967111818382408276776697147387838861429597053509826592853922185610348397063394492836662074033355960507198989784997160375531608057140660234489108635450922353744936109250175678231734651101228901705027457414141444596029593682109592307238002794643239069463283370144616008802332094250210554266772319825694678404522987767619783329165956474537376658713191796400392216441218490119062923670510367488370708567669229358237614863996150935712462157597755504443735172535333851779039620885664447040928530908902314599682756675219302579168783721632759764377329578104587465400814229379982272091569217670675398704311100096771849515314316299950413966824550677844033074848155053056496244309164628925005035647895046191636474856853370043927290059705539810330856740995814757971525492834825870804767517808562579995738874591167457114284378932712069608852844327737363148759351786906812931428495611072531868506308080858838202385523433708941102513080339851296992575313727490270195413585877426639971517123265235545345871791381803642493578008850039906477235465203243252537465974091722381786804987353642871173419494456690205670166980819574487907607530663929187699674416628047101976688045090564254600890098345100869867319034455202553801156080780418895158528490527223132309800877311011671425607115226644747071008178562130063528080534153779629861710968639538351484365002868085016089272575249522208413445447644782810547947969050084526325233176629908458677898352007292158975520909521537341164461087341225487889784801731140089296028842797781290318078015695101088614999888365955090585376607355046459751346857071487527094848956154386497778510957413493258527841534241305075427619367601008981389867445767566994484400502481549762005740509654145555775745589745423975126367437079071897083761337171237571761507730277723852898022787046289348493307054903641867201579966721979893388605814171432122942265293547236138647976672925515877485320142787354467832841094814332933046142642295574828910989948286628166267089111112790751160645228566308986934755299510942328753625943744116278678396997257976125918922819013632127329613264407452418747903677911940297718212770976449572700357383715611101881884299954240418771754248592550702763789064580849205531547049893721653952324514320517592142372002250692361507629210973536183122428710148263331029929033787758757419172329897753390806387294571317757624299657819629041884120472517389810863504538521963161055403952408692581305927186852466899381254409281655398631061359198564248953398990271798539989335517901952607892584648398277399462018326704727859739540117082598246683421297392527962527589017287627114575906361367997370213249243744227569788291589833594732589287299183984451126120304505377248558151273685131440327232617910041800662732117116305823969503926780144175739793114035100116351283097251783663184918162164808026614488823005750954683859339176675909713896231121408472422751334216301479450774072792169213611226092493353021690773913706295719795102369559841711000547493047112383673135767248869138537829674932944096285688954850499372682664026056374652302406029458519564737008506844800345491508583276924781082474336412656116428809294762382827037475871349746015262281763360512238832007028464864837575659423269747855900522289039487398295079578761499745582304617363928315198584337958014874828731399677974830821967739976744624376913573174844665830635469633719627553588739757126938191255040553047686105125268334507813918910609416016939025886647289932949161507316740095212442648237910098412426663709370854211108191560596816342898832498209833117219380369713884077788178989262661413654587113918429971073582398192970992099792944861576174921397895227002113743958058362559681185055721722633802122175938018581649433210136148233479218267745260239692862383872445297461545814308937758949674161211282912612066125141234315673486560623190954910573078537750505997190285562590351224741149159557858989958019701475376934593382259950968342230646360675188275673880303444264553673376297562002554669854866898426059496617918621628677888280213698296133917720381819918300387712964256073891007345498093117395107270921055971455544936969577577964412160522951750273392367428643733156437164281566656007817847180597055254034051508110440191312709783594398827828573641263914407061222610622776107827268711377570899909183124844107182631982123420098663898265411960274142016451511397639672052151824528273965655663793369001286800784058280935046321392833894468481626057003962035655494811537707430945638125831194167219494576786758038526964113317715224848198854018302849633241888978647311499814461233143986372933056606126209632304957425072923515349249987995320357573469330838128742697615654434510616300027410688822460710824743345036572167361191179399897103453545971981824690755477310639727673522600725963923159640695036422500971719455376484953770238943354607647882413227332151134378894421278423162502542336754479537573222705636346489961254853513716930062218023910704222891625047901335295429821493357236886460463752410394750538884175745979216839010160550732662649308031558169766656531762693246920078105283173075504114803881133860435001902642115475302022486403495403394143298841686935818524514769311663161774822233047988419817650264089610790779810175521543897548227167792598501585025302021227704861044603754393882172332871020615694950999828745016689106797917827929082983303373183858045573065425398548937461161284158633543939242510045787164021838182992899358303625019152334998174452590710423283076477600291036355308585222929691329317344979979696575473562018036543673521467057276196181654403214055410846442442502864637220460050553309268673706160525797222906085969917732842333341107829256262587308157138002431871017905915671507448369544298225378018050931799706147030549896070587931354175735889293304047963233158101547672902991027761316410441281008296122499402085102652993110912083991063449157273943836158980139700142035373643860924220979133960938853024233877512843242209566681342408145013492199682359999101133936454121888695697161470587369310444003002261109351146185444433362114397812422261140283330832075890478705785493940486117027663963593086910600751333270560852753612071510007592107240246854748870474916729911582558057678842870713539322120478821329205932747502441166403352830608204084191989410499562955415095358213856330378264464913285302379289151021789036566564271586214514161898455122045370069196967805767127644522345227256914202047472380410544430697244722991505943615378829305657109980562080544443259231196289648242170812729455551689858641908525759234973104388387045640011295674779085889609500321250157815401027965514146902212150239379324632497056351867685524168344826992802754089457247086162445279795621596762128919972308575741895148470630771347217507807855708104053217183347092784785335572266285626028559276712946401481342023881764436560110973341186582792617210960834675296758929673369056413355080844906556764251449545925352803302376688873351044582011962220913802602680110588569457583192362251990923032761562628110834370077776241739703638280679028760118292651440989287147584139096752396500130704627961114397334043274778415516278092287938097791607535397786723682714517132649592054661480895131838570756767101823180274293441664192143332410547052601675244945157119097442811490073617288465803735744999769416614729095865495295728248549102463278420959328540106827734666225655114331419392918601470944034119208807090608174209648370639734481214294110758128342260858609829696222502144385620441752446418779710865584710693625200906377668038504346399800790342371955999769981655451932764490024442296303851668438852498341610367903626184644325591827116598493154210087628708366162892429335821517521926795657442705197560528874093220164948311622046134853954442242751977772129048091862468801673844580500992297489832533844077218413736306708797904359746879305570650623348268006501267885090128289445194123905424730168478536174983714954700318975042841427647081555595556626971119704337285706008013816606296194427997301382319368571462773603778463722122124042004171887632481673566713191966021423090990696074058414717919052727894632164415088557185555533614011741346627186389631187559794826602709303965893772982649026513421573366732482604960931158557523098179811384098071287272661646482671332599456153192122079776528483361698271502588898533564442591155142923841335278394297370407455737131246562855296263750605837963597581432112243536385921614890234074206984686453400221079993614680542362444567372324258056447377945786733252813047672523552754849471214599251431006042942183134077557694734798114804379478835080716351208892168229454576833433776301941886062722376384147397581201172389888546009629719569022023628006367834425447533059942080584178649846296697199322431795258691360412793987901364443793945505496936046850301234653201773375158409826114729019008910947288284462305967312369768094166395987071680753278216856616200253882545718178377122895913954710319392063369287113226231362787245838150538524236066375622583318329106919797282305430690149058798550183570494377540197301398880459352715045433310073266581134455358475160162645498666619809667505945894761478448361263494128993514530107010902642663134151807127213761025927184533616652669591170711322183192367436178535576958866268528170833023471966919415705162920427754536077811074744752085596772484855516626218015657750958497938868206705104123885229963772013380245174870764618701136623491505854565244412921412946493394549423214440080795440718549480418285061344585472986211208710681363068401282943485170634058190069173959791823559803890467964774971747311043379219820521660075407199496579021832577877624534547336679477799220962695260603297932951197033918734122604076534482477425286750487198550795596446429164472395557837217646119845425537879039271444483572084950312038315856381530529535832182821693224172848978276932348972769845970497861473303266666795520929563721572198608650090184336846657776405664347943742861864570917555294870618909666775629788792695665906350111970732172554719566857541506337686822925252956430842872205233495870941775068618449416583400522193410157360902459227606755273457638689580682164138484282033403353359139902006982780254446074314453833589708037129414771474078903948962491901726464273459007627036512916058232542684555262133612607603139998101952736616144832504710157908046280096615787865756972343812944234192076178752498282127052864034731144368039505890803487545006910852592399540981298215695723953066438885417067162519690228369260853595663276311470201793654356187269320351417687039393140296248251269563073084952898945810504526721607004666832466280146649494729643416967124848289004764052023142123838630160536719294457774157403374057077647242394899858799474535946481448229272114931147300972061311750997685810823885529679071939943115012182336894903403628493238040166828426961454446142520026660032664861475093915651020487973480147257861836468416554314872891865711595964459277929596543165392559371036497771752423010336925533144636032223170302115787974784528700504176730610968138345995712358261771792491660940331326597507890936325587267290363396957936451059888475980388923389668732801881589597339531379652560659213469817888193334763060581188686461441109584410089433859016563731071829233358540482367178975073465210502193782881879570813976294567931436732945815621458481265671083046261152987856748086273888058847803590619808564909819603893632031531153625641430396086529920653527896426223535256047347726601164885351049226877480316086790038619859425833619690642661048448645540256912725283638574989496434102701283701585983538337846457967121735282410687523185945650286123276003057478198936246380001603862340244047669279286037003169910126537143453101995300551351619338239176833744117613560163878657160780237031450924282305532532854034729407470668199791832488961571708718728071090781433903261703491275663891166421009346199164934214576581004120106587293000290540956214865432231093466902467656908016350451593256263013324506770092572797120915466241948949106663633165410654119754651400452216208670888497899004566087436539042076433620473170853024164081977185108756511250466099161608939701584957615143656960504298430037867068843897323993622638448621737941937163290073599037051115585695424500714739277181268092704461047869216667943145623651329030109168796752531635121110054210329999375219822507342190161836253741509933064214744820047836121809031949217268965969572121387988769863150627983809078963673937007464707399986798735335765720289875820125144966636100231443636695908408385096657375165535139697565142219230331287270557925137795666121368240218442511575694245162245509402330937574881189758014897282809691541552870825562051250151313186019362161900899835913602314447347232956312155446030914000366155358006152628456595780493445809483410124032808380393244440634242955433854248205177693617550842778707480618147622099665094848083663412990438144384787585581284333374447989828555699659676320215584301403822986556332972076998346930614475944385553114451571012337940676965442562508853632017071871762380123758667019014575527271668191333768603794735548586403429227297809865678587752631982301262970519627235243916055617281429781472597317442420004074417484916549940374266043507990095521506583112773502014777051481639569811832344687668055537278951813778036274883667011604469320378185049181814174641662984994569672789227773892966594641631530001037630368784043035986013161129418674016651122415226247102363971216220858227457426257141411228252164849688050280643860634952280291662314573421863510093280948422776293222083384595814651898232185703554805731603202005090514888496082010611289445573314700908731411709291156558490727704410387410992194859070360859340935088804051156191673570694778912504312666223449236239745218832381119060687973104556567783081125966160157079746338691877824682362186751162336898067392574587204984256298386046776765836187650995531395842094973369969977271058616367668668047957751748420599996990679810473487544780246761234100182585435440636987260054394246824868534228130828574442010743077586165050421144979515899784122932936850135623942102708339854816668172126537958261015205629684395605756820002721599712101044816557754113372156708094706344220379551063061281429448926567749294035334143934327853550048620445412657418624961017578187750022902618220019214488262792551809263587533325431284101459906189071928640653446155444359572110678599648156412886060143851898686001786673622199814886210249870082088839869921967386099340465786813307914338684370727429713683255049318493716585048621245687675290007255589247227365351857858640080083061031233100222170819067177454804436753104461933858481441275523998470195526089891402061883617027348541727067459922456814013301643463776221517346597265758441205577426986805865809255687304371818464846589778494021417962859949054275354055156908233098113825839657701775009732859230331571645870463781845808222763856382763840950524697746237138595997398890907187455023280949326598426415428450069424849635497610544963395079414440877194063829632435290817838139965809432493820135265361943045938996767629890592228318522119321341455376925414790775825503022485541717426814674732523281430647774790996694315913035668259486538663048313514514709212119810062408318396071227580612820758309251051334975951672388722137936156377748079481691037680770992075269855457637105527766244444075270120843763480828328124556695243108782945417232500606954624009641394234531839789657621838020527996567632845923807008635708072632373308781859839576586531299905600476501998803287245162357563489946940073150231525956969172802542791213059952968150896851140265350120253980928555694146065844144100245756114087917163504690702475250014401984978999216888571301033939664447515695863361667847013102634441179025507622761106627238283216688664497712916848690378244280957429844269357312148408629601183544386308786473454540707217177911704443003330670461028716122517864276150629949622173570189970672726495035776656356317087995911925140299726591491931481671024522931832329404442428837485695823203109725746261663119745475153455502838680999585657831568209284487066304203284207990631306796495466032395853776508727792475086983612841683431398186952202226504826695570885359083228700766567527285813070323749960462346663074013778228763991150713292265289320329463279785598669596318740228433332401581488669390306773935969847820700559066990709353467068256170699940086451615872314067420997424634559791126834883011056251907173435067992032199867096286373838282691315370001414933350884922522469832442667262384209423692826831717040809543311742799616697303860388920185554085795015717051171959395255463940900017008898513664979408229666841342577838927306265903616792561041392215158928147368773926606597588683871173804911755986398585032563220109341951677730661713758809484731017281604722986021831179140056628938832530647972176780935518747070334035424720586984678032687009521051328115686520098781921076089253370947006015801306982450163050568291129389611961349160161033132999938363032506046102165703083118406035848033546698073556537886792054888445368331754930038265071419083931277222556902380071152157521751599380437028606270173232057603216383078502534427743102579884183390440298264109389736765061195144830118698352540477372299834130918015164444009379481526136587492239084554131782231572418456102873572021637685025217904095912774331421415806322589604657436744605967974425517720749132834652107754393706468514541190769644534731915029959263227617368453874829214805831959458281531948503463808926599079522168219969237049685384197121125517781833394221702068941593731628040953278222972203613700106969382874548982005567469597930147701666961509784169494456173607082731075475275521655406051369287582600524674598007851757916556766000077295614866967008390640585239666741366090027574962993667034164704599405300080254275101752857597344075765974783690474532066222715994784941066101231350749902237495282948348262243449981403025887787268414320378901310678395643341000643633287214493096953517464906223526355097189804885094343623632122660017119878080081819439782672026883653174861220746458758738565733669786246081590572618546516628410174119374557627108187427359850407165565860190671875702383275362914329455386002647456601041065722343123417072113568486734285507060631177876541926527808097922608530119406161534339724756600505136844418344962804833674869056391962378346426365483501618642615889009858569887464503223579270877398804592171842278349780276156607716988736856110345131622368064024030945959590628483913662345008688405924124222333926109305626873438270560085011075341025663938877960555781169929672703005424079636975339665909327595639052026679588723445034665400259029170034162206807011900154286043361486458756013310358216358743213394262498445357456832248781466803188375923454101120368850576021310664404743117909241109914342863899982848534232219916439283665872542590256896545864331730189181273747028888451001309711119445747370660251847383587559045397292360565108422938734012419328314832499707356478631753575499951562661845507232802874849745144016244996568381599764481195874583072608735364092186571826256887332824628257742699927685083342891766753470651843446074164827809813965349656278176650548990785921447083096270844223331520360311671174315456032243886762353700839941723655896217689834351881524013526214712035548922647862147412974822959439375171478965094985822979159031122986322927979357890554706355777702124740646217708729472624626285202273348925748153610453628847930145506903980720183076783087469729712208870163123908551824842080092529773841421031141472441649873828517941330283823170977967027995586314128768120154426242418981153024154440382713834630511071269751564066026651475192074881088338832166063381962951346208082470899325124503977416622605407456845838318274287845611534659611083849172930557417407107029988997359505314688600883214420565253407870752990513695997297533108336956591811449053801985498979196228959055972715654652290489934528254908329852469703080577683547173098327099799335490684709124097861177407807862706521060015942714845317263742049680438816263579091004461042484258912174935865261830519622825369765670026878081006942229125224438201369786671550717282379402552549378016893810725638223388913865319679937015697256928117060142847115247576229150584397591225597472829548534116745240578136106714698321300945710065418898887385278516125553666483120227031222271690638384052447547755841930796938600136572231716733793919953135802588670452734818083425398889299652066773391547020332136845662330921064492058506368023656210370328704754790429083742323660021449149342640763081589145546654149473040605568444329010435482214991807281200061037420851592766041279953831353711061449877681151223798184428933100168249871173091449012024180037076552907003356958776478640120782770401583803241732005543050071756024073118545391461213610862695547028920989324904055454460712606261044871544087874321347556576918375608050695761920239073790085895590853928747118604306690338028049938561598034933316914737576990374648246810364639840798608567260059859182017149450866052647987976720039781347118111781921055692963262090795180993458674892261570288005928437315215596772814646033116171616652770889613907854311425593191688516808912399415780812944095024752066846733748870685265012884405589000181003013214900114370233290881188574999692211408082083312921476747774508574782591305761149043417739415934973997773640526497520375179129182779412076510045824811538901730775244852430872647340306924739771664722776071766956236232564906793536170563749325896347380838292109642454173288578540499428528060648268963258742345279125332744715557847419201516208135955177414865163741533889847476525192746947823335573276620320654925604644324127456303191443339990738225873075928851443070616102636063485190005110162484906814815028297213886660307316525368027122833201712598236878512921045927237095182131971068901570597097176162788237998031372889277519238796188606334247176291599187917480600979841541774021846368821933120099706692092700312977706854307508220645626805815120848118619801662918551091764693422238200615033151831002087488153365413300049446162497783300846681570901428084332206069284267401064358763008021744297425910776461057630327370692228194724059517411344819157066705115723578673940420093986987915592505229827958135287930554624427280653617390720891249842082605313321932031294483273300347154833922612680176404673472058994623470400859826379078700377089385767925146380401747624839428327658475777715920158742285188665598267413642410382142341877467385388107268639529261942271793097455297453558373525084072646693640233679422337892727692226082000914239612785464927516348786394331856504809392947229447699172056123962940021375248410881071365242213959001930354725169996181023146113768456734100365712375568628955165357032454388500673599308439568300487973379535557331607384259011578963649061456625275367262967861236375775502224075069810859732825026031241739311667794918260905961909324668480383470523180545720187205120983044806465326598085432274338470863773143999760125666254019244023964858200685523742292163816663818658164824385401105905075849098131379537722166832048487400969585133011010397231127959886950597758811747691932598400752298145200543634222997211432997302088376071984945049141605683037110844433031268795365502398469935995646037582703441030521831523893730869702636885393049403309147155816244153809516857681220803465821440710178651498794167396769266688960515065683427746083398364955776453732841890223352494729062261984124794099132907333941535465206900690634614901631591675803402432683487022175759685801075803481716563274476547944285224641034728653597396263536983383199516105931615732899805586451395970777202891196560311786009029881782530664091744394835519606607350357816231348023227777225134310716649298754402322803006560984821863803807520648030745968549323966413643674779059629689591702357583438804439082687884799716707290968687951975668753169912993767089915678655353953748821821067751752600506958253698932679922148233328051867741547166805120939462583106279224073841327714308377786077445973316770789799626729042683777338084581431870973355989479996117039081064122369935515434098040513829910340149289267387924856955124918245558720859337469490029050531506221280099205928752037117728310332116092152579432473920592433246820732920212429778533403089059354698763795065685973233683650769991567621053996190048629978993313549700866464007896097258700551996603088317402141574082716553533365258043269691585732238087423176151630451019300293885047402635329138908808159383156211491334643702678729964106232049425767050698998357560344700355701928776265893916395367431969930229650291383251188084265701955571106096382935361779720571553460867865343904376229583150386424187463524947065018964253925289880913663934179156999266579527822085361204367714231986229318271535112346777040141037844823911658929996096387225865958405110073313897731129009016931876575018547951620310874972178942421033674545552995904981731242143086834003957688068413705251872794385991181126879762531472150126351797775955642167402357525874810092200672469599173248523893043721433561970418566306879152436386210406219952445480733506143526483797591867416845173135306229789427312186476763777929012373349745496450075235041610715720555624594836397319371224692419483915167446933714315607138663391077579093746953949945210751457993373967166142053356472843236306779280677486919976970859420511481704749576648395105272626470519712721553154939863147934550097306809818614269216125593851097769000826908870529810195259085373453760710700495398272707092526594245250345930700187653716343498457089712772688491763563413638984932307519945049531342097267813186006757554522037520187904942188238497591743279411501489742221395522001598687058759417961119365564784324011443652234375827107407164367482168038760663612127954654510811341614230453542082159390471179730937944308190230805459915500953804014406794527195018217675537529812804198354166752906243768713265192319943750640467952646581069783868187912009183885115896528994204508480099905664569684541835993800102176318697141397698864828862615962421297028963383807015759063244358521843335273711407808082126496895436945582699047073449067054203439049194491959361351437073763948360962432410229857296256897202357082891120656643654783836973523094446349087446084921594632674240329898245103859509641842752199525113824785792615057134160072408056118724655821396215038412851528761680309983084545662052776884045570733507689221124681491444423936510295278776029703628170952792734215191147322319502890992163778559280463409730975848319799760773625383697827069601138103496236862413203679301605866095683202918619922856197822409681042897461734595402823280496125702885809421135719588020862309074200653559480528915548638594555559455920431594176432878429303530593864494816378192088822797641637827520560469547112396743338497599255825785649344249337600483704445937061285723601528188649759278742212320745582675395084360554411224449051064727344264628869642521106058300615392077877615028115373372273116841659520230798966636660741924485651131886285985250552658175946760999809711761441208269915116449359067556023824056923947088793319290942047971609902561673472891910966328386770251615018354173681735295432140052843074542525215730385082378746621013867898190425892497829642003841882441319515259821066506817872398817667735110879544130096893452032237085531263512866939788753478072156503178938973741351209814160060252545710292893673804009977122633482182468487362920931184681970571310854235693901193829841439922412960282849944217189182829028234325969021621118719299258598568390764702837690873883576937563175122491845200732626515205814002433538748827592383075389834587292912566223137368189580499998752193054464506349978718826617773240424782569631690322518104119280730221218026500269374493905047954616069095553968011192120937696010044558185064744311269789636890367682051650713003960780722036070919404163439348141108277231505809830680819576755875703242184063550454547418958065590677763756323326336433319886143499987652878088615554303571984255473094547535955058217254519314186887585304481917245534360761233301220211796865166768063771746665471141744607930669127293095959134933334732410037629199900791683382859651643962598854614092493816795600947938003309593049684669086332428441773271168004296311781152659162251431447259466117898660108211218676258395869567875306052942233834910204622508718483592926689041226511523057908822770644694123830011997667992072697853509759016243065528017241147481370805690876231762552210935307106168042113447481675734874358474188701299226788182282825177971022657538352144374138297914396294772886625967867660088515490086465777065487094586221891659283645347983321332167724353802381568553815650992818839883516562044420354711876303369457644915851729338582411311349753090532229646074392485607540675568289254649511323363068109836582578701624193427497500782730827462975663852364612178402299695453963622056486534367126905076524734789017521454253299496617371649937701214433061198714260935059752129313533496368333522934565606883851857672543472373101493298735890565864186035233614873621421586840733099934241280287167376592445360887788651544277419557071343905372101809519960219160220347332764822690031937121949835278667895289957165014250303941086206707937422916143861238980596728943433966083193439608303706125755069849846837585475368973658358570138518629495358916710097748784236186507803784669482590500494842797519505613181454512936067161984386360332727924906456832798973423961732798459823363824282274002671739050349374017749127779404844613007710180922985589160623265699403849779007448300122727098677199322945758690052401310277345128996034037919270692222664777246123041879351881058518224858678129311820387134027949040825627856442426901322907614177788629044599172192045432859314438394588392701888897244800743299171826312967546548088935395914421775839716487376331512286145997307000319410354149597463517081641447676754718016471842438955877338292491914412412116233486003039557623744722046325860225936504255905304067462908406058965189532688039961215944858099788826732549554112607577698202328488533154262911024963287598961459253998327016958209271556444332210728347930595561818226887613224314558774304154237175780764784420451134449017774412741236242686091783574108650513177117214445717404032149444440057352442955768649850911514930870559842840398302158038914569804691403082618186658410468153567116563823471102648870404296852583802706197195257946580167215063778099479336133898173514052842194048159409302964632893401879420451019791463699833982854287243447303800797075171181313393314957505233983662574653483978776655321724767766744372416382666211983693560249666934385929708745924462421715982866150414075149862698389917105438832308883006063686470175742861709896195732294598157688645693344747874691713141506576510729190593214014144824762375082145844774974969210221625365742784237188751793296343949975852285687379244342319792543199211707427142491477224557459021039526057956312652860749619972610326071188929660671762306170004127012844750306514722237043155794561000727618710650248592127776257134950655676601950285606925267959493312320638192141102963505042222540890179779210518845965377973501118446128552561273594343579685567599269203645274272970302249403519032574672049041577572772495664907074432912398604222826405693552236252640287145000666490220893404236465031780845229591353881353397338694368009493727811770625552439883119124968226602513685303999688029870156504210777390108684443959708742080977807502842884586840514551698671050258762640671644049128842253147735648712251098963871956249297164915243517190671802553312730428496864102669188651558787718596998548705733284518001953434694619011371467279200735347535923483272219652779422556621300611021384682204386383133050805918313485556772011331426466616428235622301749764542586270092900260649154224601752423838805923530053409628144376588110211317180268071721627521746843828599251618643996483108661760659611497641203173697193515892959781395397006820861356794371915450888898591402448494554476251508011999772577913332691816659571600034193668425237772508495695576510182557123838536207043727487209190333787149873251091091331943925215969486902232358670061669098798167267095431083072646431516336268699324547351236289325109381369474588019104897493730806943128045449514646802875662590655097208660819941493929642063383191220447524971461747448878526049113929059916893485018034489561848381596723782587419704226042587163816092705681296247673457682959029500766218951864068225001499262614433486571487727198891957058987282539110801161293450691581754419958231299098116018480079680014773128656973202093492644014166464649349771877289689403659674106097578584200316132855377467195916253020334495967209473536589773789718414368527662445670944717084608816698715547535897506689179696542301159090065261901870625477906588839171337750771486031357457528624571505132139890469674443764921294393131659872009668446410298319167695527517957065325427554859525340553582536368157329518171393952201961223320103623484384769670407729856516344063092723071664264248913976669480099370548365148085947295799349003014777935198301275266484066287555415492775496522564065150442935183957765118177801900726285512367611020833604633156376264196913526656387344248301720781930736588265087904612376576671457276231002519068857102904017461719889063417715871364882261769500752060746149992777364132125277895700584937834530225567511457406509929029216683198692762414371764468707784824695844962969720048676566456693231275810292612615855686477348996350366298793497138371007292822327062340335353161247618152147047457269379876027246585510732150270075385347444806971465154423439018094483885877106558500443802448910352612119302402296074678410557855790705397197026412419217038952714508917863337265879153668072290030522255262357045792508327955774600455775149196027389287195269976340902328524236714891914305671297829567464096890810867070940437850917076482891294639713127577081828705871284676558893878041891748904547495922924635366347736636751749620455300046889841719549305276665185085056930653505327040164583799814294057237897071025255307446601139643082271620612377941254287989136330915498251679256313200865646197534719244198100642520186814780928224609066359965525453333330600896881684977799219469531640076939472246923526680809291759625881150137455610609792872419508141943008328559970454307625946075522176412319388644593489766068156256559198503727660131054117925481259228783466768556640069706489965105211997153070076904724731255530577791921669141597544291133017297937614248582173426854859957896160972245370179119886686747261543054776498075093900846801213703699394461698331869373381802657808552396984415350702012872201708603974855756319830300749049852380408796335538945210007934711816000096204585677050914382781186377813691475851393927965999591683517226193657101334508796875260007923360830717467226398342386440237929732759369981085566941150971542892635505754877841234361932187912986701525388586863141805578453160849853044333024042288946725869341324280604289357015510292245065580685810119187162080879848087982542925484783678034626071693199962647036960570877766866927974007497044986098992625672272116740624134671140479204285765804448049299288076219037626619838504627903136941042078348296571997671931465056855404973337239945089463611650976253549897575441139479979792568570661020899437651757077591119844413093107838382268267546041007079219108027082871126355966112605492400767055203669691041323490789254584726890345646400427158841772091824232440419728997631883518835150817376574662024330915491117920232445463346500396833864238363216493034051537057129033198212429253777355587872594342922320353043754916031289846420771533137793523541178106217197116542448647441138805484484310275099703229407188421420400909625399978546759362398368931397882971331073690849562111426628242380175687013783767802245124808355101512102138368708482216471986136270384221107372208894549855073238294142179470945941912796716707699046631355441093081852991526769043081825701652038505158776781529617603908875272555268237153226821780641930146277168128133749282956828325511833095353563685415337105353713742758972345432508676216437754995397478698788287332626969613445531151747256018949104432772456705485919497514540248380835521465183621569830536485260298448340527708765837636054831287047398567877130631703850095186941008569674146291071907483914651968358316575766159330306593550684314787189617567329083400034943098617796313262125075154951279674303809458940035557086022128352452348789845513316902066057910281110328873109741873445747621480076234002977572394736890708480234253657404151484807503201755224054100789216380832245126433532321221319059374045697989477346609622617175953291802691439016045169862288879977554388355471575261726058679175417115963140905326262201824910857915589418510966354330123883945315304318890128300601380426899180648958480095993649026966354905311705905255450676285139486331096291601654735835380301153445209627151092721224748844092233311305757043078060440600208941025184987103660414915533783396869845578107136222373851731174793734156701811895471480528459148843044380547467760373864653380634153284598424438078064611374109453352798035905716951898122491626265616658640630141239951088186659534824608082366878321086723355483029187451264383881261188909056373546679742646830455125214221594544108006268145972002048479568037316557155187329846784465877779887722319228564380666836977733063716181893224373756315518045169767818888830284381436999000722473024385391169402959775675394251472382394525327905475250245070193175218195555700011473028661221663581976298524744943431033224619722059044243537887920861769378592702399816459372875087591822788670790023860840384659185644721858701652118996098344928592836826603748415872001335780627232091368365374586353195083248502273482189814240756326007680007977295193556721017129459894391543032660259537446401152687047218850107099119465635080267771323052629277665437815711822547506805747791481070841624010310986934695534049236782435267506746561387948213120567183368320354756332878530943640412818119782053770159762550684639198594494169150711246991285923121200097214524775164332362162994724002911592783458331500635879409456494865588794731080185172874822819963699970193939841558768537701642045276257610833681106390961041239071471118993865406658457069057922475724367913142435505654014230813511323905626534938810051938925893188263052431799841761132572298730296027178002720778422975020014216376956266182093329898186272637038355565744462148371558178657298743128797274702368958897803268745762343638178904103318552099598432959000009804583716448344826467020256539499255786272257778079945919275416995613725668995772611097348049370443993852887883314953799805344966363409355064528492863148902118621187686115521922149515572286179150253497401204640123386266229003989316558513691219960069097152388994642541693421099855441909725645382164058217466921392160526804175763764144765904010979074324115553012032835078129920571639760152177008235900748583492354499453457127946043046801450302601807106962661691291769019991246353980732792975693526698522649765693701929489815717493477041225564397588263687184276782456135624628310835838397105981474727003098327117047467723431200158402000813466545546009740539615305979085631936264395380057472183839490723740298346116895919306290431478454421454268923010602391775779239399557308952742864688889565095945793839223475848215268940012388080720877875729074909047165953014814311293119741237123906491377972539065722277532882360023333590907308751441782498066734511379530283872275086160280846259405536569225085413835238119569456372442259140983552886911410974392456257562467301307493131441722014481457648605799063289505123461779334335760279442239530538927787681412106602157698662735197651320767723569673056285818017530422591705529109750821272647779863150728673866286235772205019637881513196039556742397228120072606673070925276220658660650475673996181095884320367555082284817907274144162221098834820902810496644859176489773000645975126820887420618776202294720406630508796902621281054779992506928161059731283586546629127371596273275377337997614314259639285653213183200861378635873889402919708053153265916187271312174266651045868679900365863221157463122500441225123891484377646847959727879468752541994962066556545051591865716253859883359072725079295822380006465462201480148009475334030965696115171975035928056040501493334150142186232380181620751512389797433093881829530475424645021564110078433258948248454264712923957120766300208856181442871187487967059980619534406507566663907546989840248283698924742249233799152444914123199503374327001840128938868600843731383585702780216164926820917603681970742086667819551618408144467079285795714064574992486377449854245652642689494208027989162244705300519402434897966553683456530568564009930593708206093403001006626405604865209816640384494736883903876093589065161170618602980952979605086370435387579089682305913507821158610654897375059690367828744931668837841407363006043625264283912134042711117011990489784589888254606521083885060164627832520920838748502649813721874968312929907282325004436442640390075126324862514225843969275516727867635879335295450588296446396930758326694804165793173222490605091910559390396546487472657871063867819199335523410248343470830890284823679995452032045462695412752944980939523911862264705725407510160299720065292354513807271244343372645746708659762756953026913676005757819903546574017007760798059435375214041168998290735081616811429795464336239517826719003846859704596125125227857828766650491197212494876012071032961996695124930161899459705322148070712100809562463690160195333991165528620515666454424806314007401504783755224236889430454715826386302683608162344013386180565090379823377154795324201509436023731977609712641796711448734630088786734445594046127025035274721554531451410214330437066609602005609830256845063207312386764591441513377281903872935063024103764848276526549223418526200351718503765341488751553688104282987488839010543024380201165815913300481575569774388738961650016563652276930388478281473063018867339619394769157308142786271035239216530847334015488823752033367785477536620392852224367841260801559220243923292577680458983250099981221221390705079729301331810441472820423435629169400328124577792770194924963737840307918555066834539232209913139617365054643983484226236877269039290639972896507439304580348375027360784426613258831202609516216076226774924841883440408704996556778277522259552552316247129707260392531176718116125901190297041481249493140875324310428161025410610245554010675803983774763950276836337688573770194329808522118400006218073782616002061790361257415569893478540048966643166920005023692754196231671148103660755203988795826742912323825209684414209982199765355442216758620318465038632559937200185822614628066673407701937755565030939121247703049654416957023183402829979457803354706196819436573503707053376032048745249786435289466969333853598604881067719872217785396745916992072311916807489800477772064628506702727091251385425912668468096614541570947925871966518784877209599583529553918313267596343408500203771333122000552909432493030164478487845110980754895526576503196365347053377632825029361775212068329459000317859207748073498130760747777058233555971457735198236297069283439212647646984637308270081921376000148805381133111462844178479955895890279477287424164191356267538951763431101185593506764149692742453495651911842831174108122036766601772572371652793898905253272353812257735254127892218235597348297425083670131936205965877496049703027688285739532420310380126876308585345314585171301714746027590405130274277886538066709378401801320264143319123973582594017845381312055235592656656544181583539903767860320485842116794435036609490027334708647597857290835416741016900619704174016835654562761535300483686057223358866871566171874459412583749636914479943541825925208185559078026996032716216612537843453790228380175706010226148739531205322136137585762832352680743466996271917366091705163303926816642578432914144822685901241793318546228184015454535843849072876448772845783661016842308435883463525428716986366745003365724693057325622477924494838234842081442672584012603724631877724399312646067219831323053678222335419643610653537196730060562137052394437308700145529520314427942345172756749211806091218057113074642788707302749199035683891429887082831482564458582653016550195850735979255642273507272537934819904457875758224219240470371077176438064809041637292239948544300186135530256662978347544390865850672608342877410325855680626030665429111844846226417256616635229107994421037906333643937542975073648978516817540348098265470435258256162052116669665237658913231010057295549413948756280304498590953175432158928258738486224211914948677816569248136429776688434342614665099383659074647470140689524017227942057391985956531712196962263322128786269463943705135511445973945821210700958933738786500702039216797610240174858538447799443643965242053086375731542994583798970699875528819324590929480449571423951115953531948188836734512758314497280997134258858311027918642784483879979210622932493197618043299012607049336911556634352575007213796427290730066577739891467421687086261131157682215000091137530856117106889173646085379943484885388255256548829987676248585573419998226630197508665003958180227476456151212921877007534661236512094681901918037254757322775390843806861052673580565475139322218184887513338776543323637291184939226120967790980272546162109357082894810127039204780807114744867110450252684283095659550487103251750915185173712043154575379831488741373989207823734849246098476606236576355288164471749677246397701064775121741586637996816341165888008281044875959000403834915565097058719543957559962945311929001997339904541099656372368985381960437330711781347981255575712736144406521927345834095984510009782301591684200468611395936794127191293740492377657509551079322321909439337695550861729115280519738361091685889619013977341286588938376869808418845933205012544066205609239908281469351213307048213074727031366112922655960905787705939712608388568535068785040196958162933536560071363370180618693291644262594486375847979451892031574475371593139432999389179878706097263895381298768054784362034747540527741020567411141424664745637779570205187608259718561135947105336659525113869252122692375285353214884385330172684505865186560504351803964931545465848742949584740867410767631096026838363533249886313222098395357375137386921031549832338290192184663967141249940404537955516066983049985005636502670065867004290047506923289635036212697570979593995815991586150398112210960009928894064317215120944182396901785765248956700329257958614717604637101618588306185976583138888946682484669028247873098167423890665418659093551022709588953797364964107155350626764584200008728234068397500891234464007458299917133933426182373930861510295216280206127310672519753885238650206878671469231565487943394828519260238772013464294389261032395114514032118429016461151965565236281982912299834545460637424963833238905323968290939336406170808543847618034061698138612175828103011315840942178520826710910992727594444690103951986533738372685471708914071583447319950483956807437579897000793697545230920233524733297062565238954596013411846229244123393523685924752669821627044838042665444336271000856675199292180416919713858912529938558134812457850402622319136474532721449625588881174705431567121594103281602196500482005091565677137660541567651975830374891461140268169033920056596892893790436976884346093776859860443099875592947954781307289865609088335081759904502971630806756058896369639641039182403973237270884106077478990014375760791157227052550785742607071510719814601009518310950857368500055192222122552087352178978271645650915236525351970361530449061304070168633402825046526411906827769099953288745740668030280556311359064931732067722555514588622073840586511691079483572290092863478180962319514739423144715853922443295373081221816799134287760184988313688713865941293527546809717490728041551993466198512799360178981918346818832698683292320446022617835479346372539546184360668578490174775566071641964683659475396101566389071942121548999332565141457141810061488289700161842615373677298288874849253171463551986383600915334966135606806391797462153022075081468139083622207017452512062784839668726091173346376314475877587157738586037595312495241181901420908075911644586376230112034171480791464374702500579614037323472503439890619625466828852169244033648465269326002150603496020301296465754651074333198316619859290232159676830952285757591686108169271099208328712534442047473053880077621901034156676800137839088452696009930016470415693265058502082346247422558902520061820577587321800519287238382115962934684800018678583356933858084964691385569790580467937927890429914873723023462300937356148713823587378848404857274341662172503745507405332975232938732603210267345171653479902486486803333685912295322449866513500463315881221310558515986389074969007609884462661136185923199374789519326982180861343939602614297057612065512087746516021206958425439326619686462065789776487437871897052191190230462777204679465909460618944879883041252287488683760286947744510614039330187983230973693541307147990289373350456167587268201719083109075347952464213420409995112507036464213863635821593538769332113039842279730719525397340502611047270721509896095831124035149567786092022557906609652696081913028137355931993144279365551786821344320745896797393243712192566321817459552670963152867779854705698667156129043506381507357760090470183668018845279466102014372986670033330870284151988242132431784703240395321497844283482964494807587964334797644121688913367761136481899440112083956897680389267150320123727738223703912684454860626264074314454998569602557151648874929179999758878977108762591952593494312223789783287842772920566946120211793625391500824903875910778870243537118735895035336891051653210280687789711475609945602664280036564911164972750852719242332831273109053346510504254854366159665523043627724808969521879477834415172014103957048051456354960252367340311716757407186570124467128216267199850723373082628481358480619242140806663508214008798698665360191382844069788943021403509145103193548773582370118479805552291483237208968334629240420606903539944645093521751279053902456771343832402178349604142630430754611815099434314202513947992624352212118579851744548886637815462934039214349817207016059041253874934810267206322269065518841216901123766901436906456086869870092617938014032267390243860702210786862066133225477264345609422116819826677430557357238920191305898978257013674414314581963641227082623305583427524784776960764778779383176346570043184238034170014588019412159837210458445564196790655313393373807133595049393154716748237024302102342210271014905525087315540757961863706326020217462322561704935629833280099464048082151229987783303356076371663955242602752258878496839426713855070274905659313243732270167275565714411535429084535538512009483080559241945919549363768436584929530956295545067138152210523932789147826661856548119286192175764946476010177841612002168462861818040095746878108983110406483427148306303320247272062344452184195779614316693977953538744658192593742991804932986984228007648620436577706906777134212737107847364365179471499275995217552788395227300227764240307848330847272608364639295600507723855264118081035912160863433606929667910643415616543348844622050168889368110883416406653042965317450478194397501370945858688629070910637760936614245637548912095273138496551424206142225636142591563747759814140359249331764497866482246672916694934965266805495752294797607766371885799864625590316582044744380717049662763512189026176866177351880861876776384766280514993319424933990518590463942780668994569232455328135664845447469227915405387171449368191782825041320904172271441779006930583276514384476590930990790331215930419128850074815304415481641905053379531489351158597000245337825733545416589611167008786158376390443770126564305799889674231159535478002316835040911925848730007167789190287205440309936635028009475795641716567198677098299434642649612430715201702829190087611739461656797201179462156084618795228572179002209098708372895843256222685796849500057508031590164223872121229319168950140453260494733746165656730904761115516504953499258780599684029912009298555156727321100803180625543730438798056731102814376858242259636156606050926813009046782458746498372283550692948288117206280556434814023147573152273625045095855673907151416563957838798670036626921818995618087784075111562550139500608171085522809624570842670087042096709544266453535274556347942466864584952576252651263341824812793987480288101348569361744848856655337808076283834580757138672864594076671250760860656909005242091336582917185813889495813367074921282075980261133427348092668225248302575106019765967145150772262323522577537720480105763219181119127906851040302780184680371168741620213058763980117814652696028580983549880213208958536988071085636447860718363266981657990962074815816665494492603218360437015852953594086322320395833900534241037869611116009647944766050744911738675662390018324858639258450399247365842514398847511104315995074379509601370500906192797493725356841833990368240985839079267719646009092206431734227756317920212691034522503069592305022782472725309459247317884953854415303568262683270402213425048871837432113212006457881651062916575797826953923913757136176961559653843880129073746097716262677395897663717621705443026549258209085784156555838223331025154362867541053942923242445461363116771676846199447937541781409635129654145220022210887414632491665758251340882502836434601603880269143950747507192114796497866495858920274416279126755305523418109773695923210180655707601619637502893645563011181214712684551110577145272172907996649635000523130755015727080830342387603017942961109776499346514985641346920862240214854284640443051196437159180919809738091672420688302769022214766542039190352072433680290108966929166557614465411563235743292377497621625821980013628635120441378925982967442416734901198459596151862123959972487035367532575613765418389565380529208041314822821958912311192038561650130098715175732825917300379087801953045215643388433837363456091779659755774340508943423055739540401753876323970374609233688734062468983232250072714962197422509726265322217907268668814958084220853502783490915083346528526319698312297811613388025370801683287626579022739945939849112329925845813959581807253863204374447419055363909115477793748346673272466360562764541003146098002349755984210075143479213748484605964511930910750509689134663187490489002899632048013717822632165273505575162980172052868438421284140604417087133680165238781988282837337839432712962993787358684484785323421037437252741873128850666827991880829608728602802201368872089277110140194822903224984753436339760306207119574053918957603831281309942597495759945525647810950468157029808122355358928496715332749127963942185704760829626630621312536492242030370918854354469421465418862976563634181412896418723895705044129022689975587088551315950756152691687177231774725446009854565177146462669635826405380574556522085074718905633590651504992424961232960139047717312610684537040539282736023321148076526957185482445686992339833278796222675913923697906835907488985424490988909575557695494553936549377101264390052841302304596084912905835011893050502790011103826893077733017342589983933237804793938588891003288948227255957091319349710063446424322759079911808619815101624804630028087451942607036357208271460755275926838836336419951918028730655754866163215482168507324239943546576882932848320446665010535077653249838099815143355541529714648282737145099527435694636720795870608551992031806728538229762140519660189960432869144571936970085105096070304210571492003376644114250161571848896085110167310747162382827298763934253810527443774734050199379355657054512406224888246482223906470047207413500261844370175232185332253024026053928052191983519556232107068319564668232012357501583890758406416651348050346166391824435848622293246308776606360729299058784166759183490717187852701333835349332604484447579645318825104563214368216815603364148871210039613509341301739561769761336491395805347180630698530829403488258818513749457581986934665131641324897986598101634041259765678822789523861137359085863499029222213437420211130842680795986288327451672608911795293047076504529958922088178243239638943333432088616586790146482756798086504922593275607582373511025391467513014614002473017443889425813497432044170108432846857379922120309491186631613067517719710358793549164701582369906275566062434960063280098543658663968159893359324374026542019048952875950576860515898255108988269497577844518951719256802074920680780691426620260209358990075739214576535730437154316048340992992066743513978926941083135235404885120052935791366218457271836400309101027116311197777804686974764982734824300464015119977514375352112575051324160021287706958257560480276317121826605070779952782555859443261108567010051577313405313906734783626322416709240051515475196906023393730566706884634752417730691024112711524145054468782170167339776597734879771177343363194731518546405658611732862994918333155813076278845489267273911610528320430202682877509503232225741060096248631811978035257137141225116130371941385837519641394905776227512767052590263636454838758292356633763858183342105324098827062326277986498278613964839254170561886269316393413416144357727143363845841371367521465326897070113553329382512892003595668574900829163923312425794340355979231203779140581724388821741420552237342747111617369202909401357441046007249275482054577448327405098686153564493792306369250726906092625149189519505008165655715445038955777607118995728992891042619508645599373601074288610505286399635449966241797501259220904418936872439414766644014473374324770971893761458270301332531452680984299710372222479084350482886176452089655870868038910833101176541822024644137136017212455686251883301555086590010652268544260338859524594137014789001897058831319714963736174758270376644355381822664579336974487088034410294102246457113603088550384504717730200435139017181584665117088286491764960782062555516201748050685857450836122577012919977569378567730145834680713613833034050726232894934068532576441327041409653887418779720593520433317392752016690799636246921936340967684189955647413240459686115780135607408793594436886263403965746206946782886356919817969323690394050485916306462473602113942588749366854667697226445961488625179974254884881673223204600464835675965186411098518674503923805405015853175068254545866246337604641182789247514572903128744433136428059829589928388382909137688601488808308675150569419430181925702481621337605418040658423360335360085393335227456155141097094382632413735740473741696822234459142167179846900128810702034919190088494577776208271679922868680752656290268666046503258142397340665407124166476152580345558108919809442334580103301545259028754985734159668990719987921421180629637466185958510940536142837411606003238992473153030747433627788020834968598038522906663068974270568845358831304409644126209632588144075748281246561927920391714399345782286472664143579894144495477376392349375523201441370791866430053157817780660172520957802134182198213619104827122502565987389695512419547855769953591624780422085357883935854865185181873607491858475379885285508334336268906891131279656290220002472842860922514302353454468357554584843371204625777544482521072622542795445310807399838286348364152061073322786575018463176889564150489651946960934328925055145820750736212432477974040986653166319084919960958220014267710262304176646610279890431540494052444529508860077649685114625056613174250193228015676321373786780085698440200192804186586022035288097511839832759095189166408984766074524977977334002306159918375164241072930525695701073235850853742302870525460266835526457641441700636101298798453485893335671324461666854566388967607814107468375475997408056247533216136174422476098705536579263157321311758157606894291642339452494950990121713417002780298878441407728937301836300453647105966625574333697688005235251555747060336414063718685859594175145622100510736492958802566711427355463542480480665271304260468126228647050314610836953165321621869998296567629655830662017443752319196148460657850573598449491833687892116927334352841809417952351324382249180250333431439750574301700598670400921452753001378539360477265711509533031103517757308705585865400346075073631362985084929700391320996599430860232269388655058786656517530753619085324989989870205004630953592249404043163151750169280131726311152072533030625666946404065416423495890708816752928564492274813717504505351861627267809509378476448182240074772698546744884929863434843058749775221118643910915050725674966267113462832277136431628442604555884739083533111440645670847615409325058085089574484022694039236995650886264166901796932211962459718098697139792729324011560336319694207459624851037641111510036724946862316411685647020730665836526408742501663650905475454954623567491151124595690425475002593275486726458951092384095254435941197356790446896933621881449076352763465500323955328199038210408255104548748763382750547260317743058871570506552585359563335618352042399707743341551081581797828524592947473481584927231796131387150915230386911765805801634168892344920976121046173462798011958038609362052046360412453041614415116025042846291814518164987922612690862712646257919435418503208268897388615749057088369551123411909932965084740089187935166951524389876655338904180360531234747462953743123471714181673032150421123518869389366489203036267545934091763529236857696247917889690388217898557017564189672730705075235766455814068858215965324403637980448634388411067418974198007129180908258052577653903553487795218557844184087478036306474102592556021353832250113930131660984827362211184951387458212646114028315999706254640954893946327988782857423796817940137526587618513948767961212240387904226338143533563934137192387989155908553631551415479755403217186709590980766864050462381895450250985346254663752902631661592950179648793765814585019332889845428253208305315431234433800298872458426697399074499772359160103030959115044130472815873783739767146089471677000183666323534292389376676474465219346592289858310116609578755843571455499608644358468446150781190284435989187556296249644309978696707433228669147340035691065509750775943428196490405173120975643944723082957688474091432936676879691330792600069189133110340183648861717935757070162710730569722532888642807259920358577482747310727461929758208629479233536477849499060503107660376801231209981024246076227368522568185963258941036322225363004463143755338368169245662887775676514628757521258056166269615807326745472461362603089029508963547223257745538716708983949889846478912353981632838424468586048790420386840747415003853618704582112194234678203317934656743312194252509055282116151526780333261286821469500285279738775903375316367831916801559446700877332488123280767283855089730295528865139743691251630591469638133761400800130606063307489406757842042792827060223624281862925384802007326058864298000560173726129094398755040009487050882302127223054583289352146965043419160235388827283547822858270872968419795423622507170121282814595889195304709771113397390269105668241492231888432252777685745494523505552077801555746702206878728712420133449325025713244143811486524238731951219448680654872995050077504780534357188456097976281598740829739131279632579237570145549343406566088190548501283453146138739231235903647030429141163955988663536097987650611083853317010305609487388119335325679254640602068909337607879862448901666196285421770661854161647616968982902391513097138600600668209142574775367261263767350697870583601326583438939093163638310742513502980130150024469107721553189205879753353830728940519474358079717227876451141819923771136845125230335425605044730874236082486068975635868551806750430927080083896627121076236982871046095503710370918467211899074749367501834706576096246796395535748940546524289042408286561138476300148116624171751208934025961158413349174043632981519746004914784773187415540963896262620483458759523111495685281313661647562812761517846944274162714523891104529893575503579823508796378971146106740775061318077345691560776105279458016695223925015548619187075463869404750503855783194279381231610968115084931012966333805995771487767507204229937925310794409341377728551103242403150630116538918705393308002372868949913970342418357553374483116282670685141560012048796823900889868723538611674441145416044051551873097140610699956928140483869476161007872143436395736006411679952611268288479578232616174254029752664899707828629444003329534818713571160737259621785088478553198647276286743569479009204995463276027803772306090066186503924551765932917360511179417307305061310936724290518882300686995759728108299724773858141953417492723585097149406343222377694652883470901584815496588907115648209920810517796659863148205374586836456685721951939961530603066483313596333581960158006563081604643437739952538768121390571277244761462577725858499492255897386681097986576617627683071945669106701596458145052794884507598736275880577027187241112214508790964848095025414423691593519352103323031739809052730348112742335125070527600705690104388060504246016627174756196411406515096757397616097153942521958362343595457063129235363673989863186537590786518556013454806757730936868741803301167577083745753213479214873575917484172497823161122411681397787285473360175874417768015378417878173050902103592326847341489823737138649623903427555130181247478325738699556895178944151510982139098475173678441264535864581972272650688143296572224394556815204056968682815896426300313593080786355211424267927192250901173969353995825361289466135349387895180776845235372669411267078536943141177977339779126822017932611798769873658099947510003945244936088445157594197751778604794269749352226961380219541813264265493304647575053838876191000445088892011365287850156641832369575827156760930132261085839064319281745799544404964420875538599352233439528290288698871837383010961478272715591676605836021631174697847407299302495837304494733799860110688916790149758747810597461108441360034440342263336406776769543087855838561911418132690393460201578737515373085775762346188700117523646582149725466717199198754959911727993044841888390217560003781765398447038320493863038287583753800238788505705313416515174254674037537284543382958412245964330463397333811372706477099824498531735896548544040632244059739847028886820476295691019290221742543901877426206965551648276386467715676888907539419605790670038719563630410624580207893332879626984625807217739186169184385772404097746190584588893357194578831856296863052341330885887061924095118950743601445193195213605016932458606694529059575879624250151967745401861094619568533579821411707510061010395045372271038390158070702047927056498029616938616131023858001168067888063771070021071199506563907878506969862928619093297710920976987458293949452780790393706793824387174342376282520050048609043257720499754519885168392580719225066275285232796153613120030404908028807006135097015473373851629666121477922302459760268367496319833028004041913734083156733042286953413320119412900794516082998180569443510659690926128874586118805743829952030297965090104063278440889292723261242152947175346944900909110342190749525049909521457751184969447170028031931871309315550204590852403557659916545698781405928647241516605336842845843031335651300165147834089916055361995196827530516945036403123502379234819422580480810978429413490959713015453459378105360832291071010527285480241504025113513290407095366969548688937387271496406419301044725705193459529325469021126369648359652981207385674508134115603535023957553343448938874921258856626340937855739829578675722767204844787518809423044751984563015640940869775146952844292145187561733809040268203789461022247955734248134963902036150392385934196015011257255478737409905428296467958187403335481667254855075592439048674750259344484891028877003866185042413378731018509203256529094658068639536516123936514943218398308783342838515654509231405422041993512495195166469624944875947491838809264061133359887711919291574909238818208056584855282377297533232564050495262011010646649152670236682949159400805983326926086413131160768279242764401040225397620814270593434391394764253325044924197418559243408508651243254490970282037355284106693358254608103749710829229128642353243635734625302684201377735149526697809366168414810678791189919276882348648450187748714322942052480722334833717659499400760824687141772778532797628154432244939952192042741864665116057015776672791187933267848724801387151186714779519667945537705465973182865411270447204700665245693390471075812919066444183610835679664734241862491303661141206355497825926166272206296047489621368787554115706256546983196362231119479737639657879001912106835414478635508142656368612514079489455482840242526082922342593676319450245847154034750445401085493361773707743572852847644693378317005226065741603650127325756718959777471302882642102653339309450026833157986228627382188868218290633240781191313988463632565366663312564253166949621079209251364430985164420562148372697246980288116251087208927639134455292064114719198933014910184461378341425023521197065941012206816334000393055689154245536718348223585545607603655498163332630863272428865444858941942109189812204679740020322355539188268188232242023658113589706188882604610579623600017122423994779051511002192147304828009378633307432839887601376356314624079196456746743726798925689338318874737423444148527443491943386981516178078978029104082352409964251450952037094713337591187849481185561088551272967780184593334948875561041897109539945522037547831400478167248037383095720465219007432661180286781893859126879192513684978959676179265989476595927623478603269565149410532428485523402321644532340656090413253439463675805959541947241505094921689086621710557781097969628426160910903700663985279360841061704136852684497839751547152011991150739413099293186716694165684575206866182219574904560130993020551408250120085668492249291071298973636183787196721870582404021058451844593417230493014786002959927661024232190019776382830914264109101008140266528918888994277774060969582817769274815895091402122432789119756228905287761389572078773981934709736475610642805995909677801972338504954341713433003460845185690980878946364511497864526609490717336206696144944969073721024831027990269233438189591524868949176810811660378719318032219200455650741426534828113213037743883974564054898986600169036201427142232994580862829185943548146629352740294382373816042436709684210506470971954289782125613092389780831021879648988642636180534577555573091042043575443745170507112154537713329977936899177306542434494582706446101628664531441504889610163421838794400204616000801670359317690374335461191225318848352981514041794525151379920504953393948040754640447356889461739653504291695918852781386209924060797779733382030263695986028504772712885363851326899541225087518837439732097105966076679323870939608592980801338100631677707474883313308389474758063244182986844517833892686058216269340937699023201454768390520628973956316969633792085045091525269924962405858262669983968614328734315237219219982317997452759218538831070997643832080637234446165939141445317022998810650368035997326322758664723070209522536552769169276741104206221432594201823561799740359505296359528716789950244311482819946141989558320715566004426797135597800722223238350390437615720189016147068450826975628156350649900890903986945627081171467796253567019258473759613005158017962830764846731206390293775553018289397377010252262354800314194654596497637038729027955183044651181729131764931325738352505516383435848838642481424349776875333768839433650903497376005198546837705566977952584249703922094520845591740720198083964995530047922470696405561382171862847054453831299393416646041583798294750151621746289744240877820947908639769633647990941062921882670049584420766890238491880539911577808654213051670256672509167492922892048093148541101849137044702442101738675896016443771488615456058157055580662867687172558074313087723389533793484379177603107696441679935208394660759883156144415396639570406612685219915889826504942748168523811292189306394344287759767285562525227230254312093508620123412483638739331780635259707045446871969193699368190542899030364222179559088612808035494590383378868647319756856133790658855431350536117960589985639611499268159624055198312657410227757781960935396374677537422184826391969293817544810044472001214260390424589420137839266774509403518697841006951470680670775556267674850068463190329450367882360374245756257787569655179854673636805407901428827486176920684032337982292311066987319240813477650501008397117019467648890487021491712503918172325961934191059861260542530768430974510465545962273673933906520103031561486826697871615531629599028633999044162122147336295478376138721305973480350211723381739195717000168702954083543862155225259446094264359687649861428616597813214109215598466242306760859419583202439936832812793664546289793738642617016254138664733193676494283569941952120623888622124226165758809988856800515077891217483170002769832136576650588002075007705145510160551994675880883195472576085998593554201374127668587019165277435827453818652457558494741731848476959572229859144211983121960215726139382389744738021813261490134555691156330796705185331431640051724173559266846062858138475628695358620834695982473207398601342145726735538817949676501116573808858600981659028260188335652223821780067132189438515607001949561657849415983035170760733876354603148723990862442015051017826255483474959410759477412098264432285586876761057252544981084534731399074565299778903724927941772899020532956184728354682209843281071038751621929168964309224715165058959069754773240151988216211029351616383859845580744665565984745299768490607674508931194591449414050276917636047740111715817148587748255763835885231808139688332620079227672628181684140665861288514353323734675495462335837585800703347318945559268434914582013517103611985493354012947462148234942337520466714142155055749042421220057651832088858960952438512356702022453370269342956847557784615440560392576407885902069413904430732574631110095152015954727374770937087672132219601103048618301574938663070377926484329407518950577403720175382096517836600708598576120347006711326489389760570875362208690818674995351396559481866887808996654321735012962673758898793145476719074573074628855236723023634705156838861304102063217408683309341333848960123278182367596247397815907718761329521304623152577175946937595500541347904390045367821735803739195396733420813920415035823613649321177942932456647431326061018276885230879848061073249593120469427934034245881982967844485208037841313557977722808323205884128885690412333589736880049195715428051377433015230566639494305024225567517204029713494178447458586209298656002737666584942422198964346513842998580084173197837945459628720567983356386082328219314144059669773124652664395428255620222278166926744767130125603207279403706842334753176233261293370853661784484768915220075282997237455613647987897824583061470555554527441748384490464281472659995803473553739911080194030700778224218734151007493287741829259670510895446249762352028582075414149268722222148995770640061439852468992806789937434764247059096619936694822382978322286095670777189431474219409132334936245565760447919122679533758480334941129229932307934575408574189561356335408414153762140025122002609320733478993430308187539037136518563320280547210017218590689493530855391452507288607677734056607468076062309671516912626076524535579696498471857881194888336601344107163968002528746636815869644525072404959536793616627515237363669822282211692291224104407492931211843072302312698973721660083384139773415249541379440789475871511113669996136374389238688798321783448018270020918174386816267800844685717851010075884146476384896785278400056304685140481491594841012897088784614611692709756292029833260543522352711079289705137565650607152373385345935555581191077880091575510951121706180469534658470346808590263575267428898876827919254120990838705274440713891928445489410756514189353855399577200878580067524434979411078782440627235136504559316952865686671728362390504604186944453486893806947360432136974820469683141285571960480754681948241439405732974817527293141620079884964686878381929172354022704493278158883244608258646115878630319753231628340913554466128291470810285111839893844521538048466186302430158227676121621696197896487097622017761772884989057948970613412384718682387811408614410920268477857405606133713300454782473529018277979113864204218985308677816671303842781623259843602700553001746325559251563493918080740720526238276049952724187312428164038521736040006789953230118408708561930402905675626480956938198990756127825690314744818585698805477005099591773605781921056103312990584210637987185754367196824273723489260631348847516419467235564834984982983511186015971066293693673347423089670967869188418626738858673388849617068335442532494561118724538128079618195508278421332564785817565734978721492814185745926877749009233689793315672391217098809176991604536705430874503890626249987840975715600193939456061061928162051400957970733310209858217109015052132429576282119936317402725685348672896709030501783729545067851575808967346766801061134339278403574343723707490326601030113748083033960467174022640421261856517273538287223641129905935133239129939974408042193660809069016015999950952921435081994414152000729954581784408231177142839900382982690460433621561793804632193867500863916800477903786798860605659886132369596895914732942403027158744734049778951453641711374901486354337125635440258274068258515469843888345076378510059728516001846852195361934337905978981246934904096852685107945250923901974761402450741113756843948341411229829250112827248379319593020589880928884662908470717167474784569176446094709500257805047143749610243028002141474191532314908257240577614261878757455746074842969091058709888118556077673877964282518695052884850735916787270802763112882013286471982741581208764114973055236368974249673810221253377477786086852058627239630281325688879005380998480230604475616568053519902181335749791069078151902873701508005137474419469735193759832981766846286529701952475602248600059557507409744859922929309720796357441575210918927692095373070252614535980237009008472346642511304730315411973206300001109530940262939556711594945581997136874879861179805645815847709772055513511120388956389512760541601600366232139240922833063650466382827646225186159987846091424432628294967000532295231606228999698075114846831422194498110035464735161451147266460823193034502381603711866390293568357188810129329099128474173061013393212205621878158035762837683085627242043435157358631840974361956926351213878356258063874911279948124370328190012136264495645551564556068247891087882280007555690350232219999027751896710080322220604413185512020176580510059399816377130202293157850921077008999287512186812068854507890260765684354148628913155741112105201755986577864352255246997031181982855357098578090658728280714923229472362534425923182533188842423237650198080942344140936353066896149772015720333582677290554665772235175757636064433755871023556255278150195321014243399695185932302183605030625768926346612253888294625911874567944379907390847507365941365928485717868406959290747023519841960884122464980344850600869554805125780240689159554134989904842625071932584012109322093387117796587439745839378385548619725637846836059245004643374149404992654465877711011253809947612689106097135118988693669640026051889132573690389847797163773648482087889533753529372041196006795695398123831687458279839238797051730202161102977483605964687882372087797255767011169562678632558516560983853019443528481661924150684088874866218421309136362174917723917560779612296180096908521258779124668573773669847757775657779777507179017678510166089567029341206538365255702806478688418505331362120898077372538398956430201794191066129247535802483397545095060971993832279172738025740098803387359065215675047337687325600114509752661563635471403590507245768848868335269340866899859655062749269690346138039628710741285794899459390172505555004519961242081351258150675451529733361602847141939093951408603293589948687982901676637064013396115134640010287064394248026121839430975298071482719353968147200775395715211994190120243328210960809869510753467169980552164431248262030289844472516633028789572518408582514223670543293857647704755538862750815241824116480867544792274072200015883818847784644988394330303133176201527922477695219711123991379893931897677285878902562649774802015849902218342107692851960394926588839995906224739935373371767532190376843458510711354616895808802252030660666152865811611907739009939400221895866441568967412355158651835163781017711699172059744202093602104576218143676601437813199921366705681062848400169248043886288928245748374248286078624424571957107512933385233974419887281742921087514431917223175319633509572555162090412675043738152452580314576449994530094962996980729166758016911220421216387203482909075020950496440316426234362068063186362860137975094372109923241254483178279033285162692093426044771486961683004471079872339858310171084643068373499501019816590637453464603163579968230815412623620426711283288398726185381700548542685897162577828200918351903542950808468038283931192685071845390204600248783828222085247954026645279596491575635790240171567848307154688075532288883971766758302502980212390950132152172645106005158080556094420032427501845450944631094385889711330084612817302615330942484257110643859037602418963380777097365517253875780827613231174762929043208433619865773065753247083265560669860334065627004971265091070600508329918958776767515079709793872540139106938091047999131698343773007476955052773976322007240922686803024469444844023517434073983631786817035104865417413323863271462928468443714974717123886863145895777960281311937622155116826881139169371831094234993046956021847480604052725088503434130107235274397885336740074467431525534862801945396337038341046315788345201718556725634978379217611402949794890611171429467097166738072797910915584530815835812763940562453003061423643431558952220981880030485956188094529501644767616205856163911701284688956848214471610329184844402112750751805466115949548399380768254184846752614007350342777734508068003531789165009762412513018606075933972894260977545729367420692057047773919185106068526764217359015797420723409874038398780225901358149905825321751326015447831730202086013792582643848800102303612045135155827649979022673472087979620267311800147226053105695912006380669923555434332895999710008411869916469559225581038678323976397104635145294168114324880047787330098090684143221541935826045033065749412210319059928576340774405673534689060045829434161818936171522656226640138827401612649089918188325115379308996196079719249959726928095515892216566777807390884110243324773121666154573326163105603028402018421512072427028640330620326131928955481095429132306643808880256645082849768526062843471735634202108060700900126526615757663241410529785260591425688619662178739191677638538596374557608694178777785801018598166442790736838480952609902648584699194769796854828815720570473049351397681559085301815533964375472233465664366276337664144542401926464592383222533862645150861952393929898839256330187484247576588278461354055398523941493835772224358371244158504117846773538857394207775351282595004745462788142311402712667047068973748441849623848289293815078208986538889722826068970434731650055888822306562794736713504822146676299341041303897272947034795719630894823543426252362779036444964566339168291448591470764350848309660874264765838360473449608116585517658998748354836018186194635501328409830016532992590044653086462211821359700173283089389100958823809443655285732767649500174033957452740783057874685592807480347217356229594406441151217028637354241653168306432522828078322577045789414612734073839873139398704707092166065499667608304489275050554567322513531488741576254542144196142602009388733424998752253162432239390221624320286147166234546939487752229063394335541986522928998487908200887073155933927845578346379762295602776258197562545734992312995243345688902979134315629027978873058896374111952409783055078411204449078614045619936565107340244133296287280195005561477991293299818791357706006763074308745491516130178148796357896601325456927733620744999099472817068369158382722211391652236087239756222722480758319329670531091247825933806607802793829828410133648207386652876758847384619103948704770433198083698315680199445645114385798784170444622389577306206597287758886339233010706805556357926611286406672420810511961276430730785966004160867418310713230852189062106944313585699037351004796474591059435223930216996096140946597365265328353501574789866584735608330758150454782046574286449791336905494181488750712243704131645540078232537297029000881769979642987951984172519812433996624933941700586021376836868832821424399352035492687732315862946628258481800773821349062477869894657053803341180206225694819728575772009211399076754672871167453130718298783858719820527257637857513786412047728548091671102101976748444605602885513628410596159700395724706202726167024153105024827808111917411026689214150117912533489204542427551525655727051229519478101386315192060026196101123466195487763612387804010011787598324071569229228472032638220324390333851567396070210602726499410180289376029347997366455932458205429977984760576882218660476226585285185236421055215958490076652490010919280681634231999868027443604938321736085368152617993618246699523279830391073855143016454748647958028686259342790843882394086087720257284244140412387007307180415855247355131521317711640475517068714333139581505352082618037400126498923919167012313782494583476809665365236219611473204242875368502213302543404202939193520599589206999439437297459526834281073451648810525696436941302085413064783558256618103778724706546785410769938188779715023767605530959754741484727825379985813688175007594319773268983419172820006516024275222781024164747888961872007358702910387814152347649709798390175440693898265669284913126146782405048453185134728018122296825318789305393767448643647796441112246594571719146125233681834963956358560423839974901896739289190978363434292273745394156059700778083508712639337330577131765924587874939380279554559462189263476007784338775811432798494736948660088195056124241085368658075204185264855898034693576142597263168484098846243967334976800890924215226889339863059916825261220534909053895211519033029939455634671870284984136853433465214385923315999885117599064727106391452913898607030745502998900803076583669753470879444086874755244208583138572463541785870788376233572687420320158038611946863344971958373040163358796224612487051773029168677604325405949716250731731519560533467922894233577304017827214352680227646584014702692373414685136064133229850691848018645759186648699475041403827944407912824877886261689361958101587736003065778017871408443547884620191644641797975529731080652321897839471523144484066111917451689764723187599257894348126597629202882554687844208629271254685583750100990243218111949664168137553056346980601787001179263730476739381265965924966867127413743263423547097559431148641870794765018961233615914328599793824302893831053191875666901395682360490721234110615427773991340354416135240875470301167315976932410405195690107242484164908150384743356154111735767989093397460388956855355102408444429956590367450309561721353978443128877757779472976625940354561483145215233440460162927679086462250487490833322902964068729973924264319593593274901484171519720554797625376639553893450074367420605899221370119609853194012939633145617991979592332454394619665928222534484753318932743611190290982501057855893330271004485351025620382029428520831344260794940161620331421050203537926101232780358868677388754909777338835279754861754066308519283100238158730457210785926095541943178858212238883091343090316416248757456225566233065566275886402097179896888555432745215401630946430560956385382686463042421046119425107368732097155937922895361573388797089590243793260716648393326580839796877647236669164705859879681385430617798614368273041090278973448421258221605800688705361964721072674276652626144596659483731410832820764414899032540452459206905477592612395591113618359297904062332479645750677235241905211460372698361090034142945931908763017991736230579902632647415917255544035208405692257575563506362604071473776189829835454485020788237557341986758473739425015456693234024012665234309825686278271515934828541947010361430321623261406434518159543051020767204397834694697642975258173820359014850498392773131707120354647077816539365451533995658854590257852716566325004030061866136084860876871236457213608271075588941705091009382050975054152964922473574268201043994180531206694323701571218222837281907555202629566442130607921239537886790572018251600408218797508777565356196106793868503937113097613079175486102839218980812827412866966836954098241312489426739460356128866864309894336657836764479685359190923702680387914642745082424613032748170084318247702533891226239634488210092986167309736296129620204578930302690614027194871006504875964865945502114390325745119008365090467148359514695238076600880237825535005645802598242571741562743945797676675147185119181707386006214883457469371171310002728983889618963759807174317358471628813851031677386783482553700022119662671061290001439017388718921351333863096331898869680127399618602032973913232071109862925767693547155644547026782620790196158494983873515164644576088116916721391784338190460594799218619229610950776843889593763049302643161924577705717873917778660507326833361903818107804796335480480965694853908630269324016724773853274211364953823982235607392386001394520927208737483642804950480031567339086699724832272372822249727521148886153591707655324436999411957510994462841584138953379904937666489342407390281412840243646975054228607301105321753611277019611819082322331782693377920194238353497957761209578872300891640472266336305652665875113654164027734439246140913842494793544805184317044232146498491611989105089632591416181403438165579834640786265844373594747365444633637842703378222514119130485824297736556880798154932167935297704424388541511050249142737082352381012233095920400833888270218338208132885923548540631692205550957556969830276150325453781656800869006398957408965253332720608255350171134922538927226039845054199069048348885385733369023645166327770692430014282002494557702087790969266378693541101713676055464081135151566555527274888932330328491419346846516185337415002277402632131292302659340744604840347035149132571375220505933224599487081293786230631267919117464892300151331763872142522586971112597024690553233504535063321766419729045184054695655435639534859435424673819936129861653229032038564895619279083941927010926259502762537147163966298516278283408502885650691813798373253868609143576742145830255851710380471860065959148149817110667248541269310751768282316930014222925083839716529186096421615346996437869135039084454853361187209671674233663039164072633211170822992620871693323769438880141082470453662487884962659961282852139900373426136715079401757906007720682088518804782368701533195971931625221124051407575826386229386752702315333435788286244011533255519855370983495257026596716952835795783412189380722641925526166747480390553329382598576827607347890286213205741621907522937718815897123302365884511075611296048640388457315401321081120520599035439444924930714359035872893108832907418025439794443902231653428404856809957606708665955066163524533743365816423517662289530966209146118206510405873940350982536884833407449328933163284124917088450451294872542195153627260109233409798327803444387968009056408830648239103841221435665033797939846600661925779406455196577775793786402038602709328459828843500617856020715907895596676721985601809432389910743624798817913098314109380600473346264852240945287270453847687963438615997598000490346842754561716124007215818155936543550338997382053938780126553662988119118127607431638922061618950568771606445188981662426245937945604437007436421622667775461735647808592343488368317982297946565895415221444474982530795723536356516882431040858784103154554821734887415446420724855563698252008781850753716500661132257711164919888789800336282601999074466581736403232042799898977634764252046174418426074508512435597960530357147118734918801964465344643005746411616928984773741267599123252173439578651082169754531816198165794609673944467323681319729168497825101996619012283714820714210474636169232534568417981293093700102883730096891639990346873262930228095651775158532436801701083955568360154595594592591329247277121635813204457620112023217908670269229806379823397644950389110986000848211084936272891746651409371694439226861116632729412372528559351801605929509657399277064026096573167308135629934697901010920076114426231731779293013474778984222031409012500773973724900362390087388311136929377205066993995337511969658346361724246304450582955500518681319255442209290307045672602522807522195226985891395043546999030464832266564092032394244784723573520750616990025200777795572619043196763674802743214450603822628790622196084902685691803094079525764211330939125591101083924368934071232250174456390722973632195694368782607112000922651368500563020632873745679045382148159542037642174010782057603961093323690199675474178447420841290320937188280367305785730754125714239682087778198423131014057234803130742589462483423220811282047823934078437520655867928045692065077957570430674137163460117803774412346953499516198920575063983501369063472647763366891716013920698810879425051660885900610447829465009732819349230711051100282924895249100184029422153948172630130628544961083959902994360322311521595126039792820494667949956539049686787247476265750327273578182807013085209617495043631198145074238992060315393672843547220140121326048762537670079413842649218587926796985336200878254043740991702536380399978655905282071165306298711649192897678304270866097500075351105630856673838740100822715724059322469464031767715510577393210668648703089088789390617720987960828899294287910242613532755604972550432699596251961924933048425133137720279023916990889134911578502428674192425167127238931007239616209070882153636000748651920524953143266495912461498987699526722911759794284943959759522398586473031851775902999244549862830025449725717409641555714659084292844328380579805821475815135246429224796715375433767108865132759889649530964579674503363951243168475869857798644896149730676955912477265863694652044686954530708535382679935780834094306638852579029111832183131858880056838377757205602343469780336436577891419610829022781173309082217936914603161163478924041807731180164195448958370786813138959807854089352324219799788586466734222686343067888158607261738946813698291286702263718971486152656340086274269082976860429279201294887877270952937287771928050706554684631219635089230113245613847377418675954197504656775382916377918586981996015484719479131775190277578445807769428672854817978457010048630328429346223629220435064656530025248731264305567039345008541905960557484784137247674247104042918532237077890394409076887459812030559617864271695682700787289612898792936468121011747864456370186740054294690930575075661222420197246361568602547870301150269902924500521669223050171722785018224037341400727994597417877411623420542990286347943262174670143566315847251590548008717469781649117562866936256137101598536235703102414729467280282758601200702954228530375477475254068923410318882631115221971909750040836473136515113771322553207850508721183253500723523677161834834084142549685142937056330092595880146928100433124599480556195203254938228336555640070814080519094436216351704157993711144195950353865076275331452223358788430024135999697750833801322453100544042441590667306790348894165784595810923680149682245769126369188891306506443990121031041325253285662133986309381305219823000632690312360210409598209934226294904577554026001720691714195810868952632257749610969924986310639556439055025410037617192005309084560175084909887724448518455604341989481640318987042478145967643235410274091826426871625569207134024795997184094420911987308339110534656404900185342373172754454849489027310210767110349114298035696437508501345415251918454041242862909800456063515220090577655759835206467591962949121241507812082045130858930143687855427796897481134875400212508414107167216268212457553053772394480714780781355603691920894027776776658629743715360917369374884115324990558823183425885328416547033262142571796375405441269441273983527938230754744108795156529967081964090139429187018540716860899101607919265535418416211552907774028778579448882786140088494549708563251724082027321038741138396403089787705329565640697925449987830410095258127345176635385461326737535421710293385545135712758149011386522588467992420444455779968529228147729876778659343290294249001723643919252940931531372884806821372616119603099426720865610597917671935919972196766601542485874139861879069632330122454635469819564505523610954079928288457461325974369258473109471438056696821772529240596003371842168770873156837443278609746467799601611092042861717553387171429029813086065691493935768758485493795859106217274216380554054511730140655819042229117866530889914505619919485088166050246600286684280512836311323357708366225667627427771319492137321136618247393077745629111790508784778492098676825381771542974209127257320397882326645590501008780093536449486835034784316663339036003133258754858207080492769899085643068280768957593766773650187581535225531559125355253994155588466355014061427376791810222227129315539677629869649253792268766642623940018476027304141857121281008721664013391237869962718728081905342639428582393873612575624052819502506353320735377478850290946514221861863087655965767001372275483934131209646796911802925930986424746170938973677076259314721602824793614737782781537849851338422636711050904436004148614647628121831191137286180082060024410418623676855786721817893521534128735940646671884707693670343153881813444510435591046639853426997579917654602173185312170825207010270224034272217082767651381585810215223457623035906677292905037493773534901283546938748213155854719518898505816420190763256761575790989692293707092877471858036839513773584648734373099189393556737979632374072016925547794011678547042874459883257731135515108412419660509327111164262823169020843396868844367685934375595090993487546402685970449923121542841299168692323817331820889485071208201300612570698432271999540870519091243854888263550888345331083061883194695398620070730303724181331119635842072666122648396378677695661434439285970823480579231456785962691994478039159039941302926161387141293530653593346361720581970698918651254431418889467163501505629577344319379335003402387507784356826717794555443590056802904867878665270596506779019621426666768512658014793528359228321302194361154075999188314767406439305657749139500249659674745032242451373907141166008666159636604145413300023212614256892860790054318587868004419389140277051082561257955239557424157661956558222596061831600907267297805630585268893354626042606362125098500715748877448003921740642933936590084334361325558742087952992094030146332906874983868623440710350932551457484660480387955209487502353518525520656915533950930710221940283259442342872379222702702465514390847678128966424793981742994822355667625457904171435659086012759069623385071511366797641309046443565706859317532946836531752663238423868574429217200673406447014538338102680289004723116117713359781212244023541039748745289745066667306497437499147883560050513867511582620783165053625346504477399214445061645955313423897801199697952745882958414128822248219570359747778082298848292764705547919242525038238257634119187595929029613740600612005814735044402472829159417544428116829063300133930907264812916810094434562746436991895225901344537176214650800850695367568885986528294246293066794677156968005644699400043959188477437426189207877655713087927612452424121001542977699973589616570195561045427602151283411189609871760509881658704205272307922668924764226099976308522110131619060472186725242214155829679674045875326655862940892918897448116574290959836239773103856380860591056132079252263939798288022996313080744481492024360353749399100901795816709442062271304015768275954538030355113940393656398429825592696639262936862370661401964720175483520805281048160846753251221878143871451040755918174276654853313145020023675847075873294944592190479733097237472340650761062501962355190107949600298671391750313040920334430642270522184216342335604821622676868542642850161036619892972462350611367531764572987395153175090183903663433156553415509414922989165440204546521518481709924109670443071477599222144679998137560578793141431814689383895680682031654692174928897192549065791903152358058996927810555557516080771468062056386962476871698628552393438555605532564648672423265025763792794648410059462110635202036294999451941362344433157913218460247282750972009567937613283018782407269424393741912197138454877726897649856112432531505273416260788089818870443486603528864326276830228104303086747532044995372166260669263163749033310874261925777671929043304309783203415595354095645297180159755107153666350900690882461944775437303929908761115282038251813088734762694054917885590122052964952509501960316410485178435756506063887523029133236760440495059205808823127327620241607581563643045300718303350319775873404540249668432478743751069050461874470962800838901070920405063886175293244403561729633319725570259691565182402209087655469300739148450260501835193971779590399290409899370349826402361684561789820616228069664626478834264970004692258215575672325662467272323171395307241826995644383283964501072488207672935111616173382447899529103937414994414917432214543826855012055633263574275397028297787172387908920006766542555205099828807298727912727052726646657084038119725927891031468427038378463885152133898438388787730987304181168458624495526973368656437805926649672893119649366356374179621684559473940712126033228757386644942709434633486819678955059672036471064611654737298959304057763736478690067053310706720996148197315367463308561878634472977604408405341795873399829081083088272787180417295075995040264289105557089376425778249867621285374257174442007113220256623654770697107561455273297934342655426911139463640669547217300393999685964733503125377874648262300982127087646255258516610210957237986142634315745346164059013805702796770393338452128561421492254718695938110573903759121410867926121350401027854834269528459250493588957484765698929138058008133189261816158396865578655456453695064872601227436922464731755344389390504594000540960466978563425905256591132960474222451638335778093482327689017377483129018857444849876847653666456472002723204806623906957439369479247198349410360270451284924798997182632891450449262675451418649352263605091975385814116377153338449486334016980440834477553585749821039043004557884917620908887704937295088358110800040376249161914290720255221723267834114477986008203149634420080623877707021434714030793602111463499551025661833783732924939815947529324354431591421158863518700650142319819597071151884241925092727805363602600389349137291839143149543713814616783019080226649524206895928240438592445038883089393557733264219030834365852850340184734269390397026560920047392822339650200020429443146793777565231900503532868872583651036279249721653873323670180460761864891016728826177582993795498109971240640598373275036301824597594659340052325463354243330850047506419028677110956343599923240847318915528958657365983409407002128239240383325597291753627266412684602141426785471580830170909269878345187339589765700412786245209607315950079062000638977958367285490843032283497598141559387043234801965862312806979108204033925704724330953086443984896038956519432571243599930028785679372937100455841429792919632871499560135275094847527558346805271519077187331232161244388544532910089772340015215062975188275449979780040675699710780412671845789632923821710630596926704245012165746563912253451668779173006049299498622071001501189519730182230681564851215832188647993228913802547855978151861135072389802612458585759181000591410035213261662144882296568030476054417047285153408183884261820009422334175349677320326411292835496458113763792304912974953910280343006823504677038338627427835004844916379431870891697306863557679742939985483640321589246735976368501724188661516132162148626312192512171808553080857538625837593642571341904956324308056591821130441346119497145991158307097459570065641053107412258964387112739455303401076416830341934588642954184657027879014625820839724929526521301836286850101494905780113050668876735563359142236487950273134639343599680750790618495327941450248095025851238396577004847779221821713596615418964842364792520686141783872713977618794404865930932902654779642369634992880644976054538787134089665792307144229411885361139106542325357068728051053596763075262399317223031087105322189098406985962545890462907126157924570154478736725459139345840604014202280972790878752070856010962028874245892499900717949978618793570769508483743884764199132957621340312506394728804122054742007359461345945408151455523938582759214461886666919652888100720194826942143898049603946706376798198727286180838403293522893800588386715787564685819748734656796083790219916157995539850319210271017145404278717271375470083121272030356892344959912610212052742611983773688459169739689158993096141421588930934723805275836935113702023301986332132765480646344564904112607156672988557632557908803965765196320483444562275336304410125010329452639296652330212873933726349441508491134700154135934694818660371198935518619765808421354270238568046636488997261435776585011896114316913079511047910512947354365467846861408617102972015562241120278687870468426026385590615190844990171821219357828801222011622024256783302377671010558118541701672255898704155824879689577206421392709996236613572975409599756530269553746660937906261767033968807433182968806525408943842813579861729705691768359611391686653980294043147446916423837739188815804258642664990045034361938217786075943559336227979733221815746700650878873617418516476066025150845333702282601755301199624070265405134953464945589319344163644893145881191409845920695953547035495739700464414447045401401625705251201660963567160128767621118553173353308846994336846761984798766321151284562662512315526320558549510285696381521116515874114843367505937559438324834223144960119232361260733971618525295160035443800399284545129935403698258942108877361516429833151173614151303697053923684616474297434109874252524786936076507028076732349268813631556988923665231516678386933720948059181999326073213464612543791191545724980630240315386714693147430706222258224266118166061981347683614180670030361164715514680663369995850933992025640546978459493662633074263747238785437577997545615101820806945101072798759460333464685551314495767988899441558585924075187142460355124652697874522982192477880873156449362275813266227346746748575038667121147212989953573836184729892506637715194081152229230233283924392088236135928112732991895402997530244512848130632289579552402855752973611589226579158332342667156641623015204790066723926976318710986460896616273702664535682796610821595961005653017650413724977690190342221595551233874230902389758118172718100671137794081653908646054818803240019463086057103730819156755246812798169747917960164968052965640937188980532580381733308979383338990922334069678105896755755660727716710884249363653969241308630035807774836268194813186232065105512109930470718379106794601263374451435089100379882399516268896907059101384508678025413308342745867500378506317875402591787236985103923236467311648590901806772356688251310057969993506931723705669168978090896575976755263514611173851752410723928318990137961384165861954683474561975122266820459684207045578696998170153854677812886263628419280200620193741255141954516095382734106836008686703062955119369724746017173405501641395070570863497060318876187532454811928501599059038696824319614275737166552060070756902984078715256250431474171719539022696686520103971159089841190646280275316180179217640986955680176416267651382664433174012962467662740128406107459486027333212385529502446493025082327371489374024596418890427319679753606972923376025195867514573554813053850220993615255811954109849292938194673704370845716174196603386020645635097036192391033466719728838545731810073303703203424337125660339529990700821551350115909219663091158479824511828890447474015382236746530634164327601811074017046476976881765685639922980806410790960475281150577068145568904541159866903594049219977383320517930709521127913651854357441707626760737305445063999651999224297118054924256392045185810404084344656175725922143871818946365298647921514776551004784168417583438956174817265381219276006054986844907228896699470744644152505183809068942936685633908047766883941610161341479422525998594961730449710914542914422728087018664536373004834389310261979063007735077412942646222319103576658502477268168157975411457903676732218619231228452207915280522180545732211431178826458723293724744799259033004798796705047101477289553566151330063192302197992110315529512674888688927127952210071564376363685656503457281599657880277687369135084297598370041983999471923390381838060172994331913768802494777754431753623761897005207383394399938095181571328334350241733191605338591053754407858081880769024524471819650910838444971516131105690338759213607787332632408649431643743663100518222320202219439861640861902446602302551133978219193300332322403941398870595500753426595984192618027611999361648978187673445010753726056936614240001478498062274040662883044171399791539936288983609228380294775867782179990527804917304027840076490836301251630266409474720480144123227023827702319882938637259031565949855792290220801451589667230803253565760296914955153041180889007368491259964378246792105246427525668057128315919614381469194782341321599259825561709063854938009501264397483575684986137258043972049932514497631476515119655640099218050622539397299239162372674817298097413895367822024632513205934014316457180668567867159859206886219932507331183944531117137103219375622309915506583522774122146315191434505365459330473913565591421624297825948813545010835773789013873991152621952525735916535016170285214185486344866960676209313186400673708170185178960505044920425430928986034050422094752411601754234876996417414216554367557297656738160228526585284398594021014057498621036804663837678018713669547077599410213019996334568278524598483772702143467223926376473859075640586980012215418303018798645435721497213227614148100654043280791962525447972871442787104624913189385666746778856245574036957854174687119885354687408222159904774016265488321695536611904457436099026829924820830956887968560239146018233468596792724110182374277972318596904596985020391414058146324844551786515961544959899201437254131850163925298221530268144234544404144015586456032126790459926758196265096707803349454305752311008063003072555791878983933675484852856874695669467569320583421707776399453915300529620802529024821377579644822992391602721152258468398309091049103047353689353534885735961888491318929049641782294311961770410758170707512428609819158205911414552418584789508248846628292461839415735910565738054048394294527876751654188119162536786453916528680957313065476105514942815561660705894445544253758816936261000905019119665301784767416168301077623095216803355558649567553576704095907853528765718447219063528812915381877724102639410600605790525062819572440555399910770702425741613020630903336028456832999696378404224790272287882328936767708931412793465272406914193225497407399049478362044619302501132218376926154788741313211560212680877485144561716537024579802267448009722202461871431835157076857406954078062667899258346590736419466120773600069663722674701161385311729463096937424486189893053944987598058645912745832449098902143974598397727783218049842104801783919864709850767186161927474184542078288255804290101870466160122173163332680076201460233032569690140476143490995600398219629492641977343235394141021510456169107889433028563331542969731114653142437423556968253022928438589736129882412405665389072830185357539961096607584223366745325878224542521654895105825654259044477225369546497885575582160263895816693019586158449453627127283771188415429599298206407425292046472943229362565670576648046809384401036271950987347740380432038156050079788739279339261703218522941932762824392686479174210382529748290813302504068844311929469840070362999579826480822776953077120652440892073872445827362230919334378973711242392872094935296495580549635091675154261070672128463862274749691755073390248210047475353419672002435606810103692221789739715678345491940586747263267646902837892472182470723566259650256464974020547550253007102528734687034613411161768358092333304254682618568747397340872214527551433819389065572005952826253717265729237766560418529992736287664738963522229086805514278579688824482863187214869499209765998995653326394468022680191008348874906316502774285977381290266517693254811764440256412918691714843668165499227022249871475098225361549532673993050862369327563415204024274628766162996681508224691645825942297674230946371685291748475443262945845314513747957420984074078512878167619172105338353304020519104200644005463318065404023491250878835737291766103331575453096130962899996107379692489900628455520357692557264966434144829835779097903527967544495307600435963259932523945878158332517485156733822044895919043571114765504119291649626266832144762305753421829531544195340687009768932050796483755292518740380120467140919331274146149879148245600231789551735312603037194348767889592530755918460357661857846521233512574672148477726740284427943526317578042177879702825742113455466017394975170288845718382904892230300851554872051760954544697025588232551960153347186079800786034506698029333075401401940071344644600385396625656882941445759706649079105037371889145702802597524718843639593685725265328886943515702530261775480106388620085871329107649056215096694753710568618070948270671321767980243445893221528194546014559641508598283862021350428426330353356429438171729053806358373547690629572290042379305592933927663555747831033525744121585353338160365989810073910470456482817029204309322514150523656579743904076501745960018228258083313431626565790891854741183385764521958044152247157112459555564969432010148275984157987028150728199627154066302651491102432797039878068027468168035425201570618042196081049154265626332216571264622494028670125755935583679515416279036506167141031590831707514690298279203890311274110102687091178516452949623032307482977639130171795279044848273660326119713391827758716743363967079173970803856327742735778484609892493241321141100036817762096005458124697352658643957275715600796179801217741231164827810790728765004557217221377757074932491209676133112957317600571190962853544426184839736179585111803823189793997763260558165793827794344500481456230840676901819200656691560266888216378797088300174790159112963630933623572037660846229292763265511641184139494657938464718444265193512241852546482528931884060551813465942740652388005204609260695208664487157703318011889289743030920780493398680507809410446781107242532529115969522523669344196858636087752465556315637766334408171211064236720703012794787138851263970967918213076823466106751415858592913185454683431888518161756978773909504782743564308832125434601278643648871604107006210376519871872186337736430018501182521166513841139506865125840460465724792060907461214465795025097724575517847525560881196302302508319577979689823246479128108792730476221382798856573188365814180982529676697097022194434476127387172561525095150800608157738839003022210484502757080038249676831586170382444254680987601115110028882282439500212818020437564433311958062493982510755042618465127278450232723564279627174888444051392110391283645975825206870880969481026043822596116448122843969631691997330932748852306878307136054963895186366109311911750111895141711456525394216766851730570416773023297503307685447216320614331725286388343695421918159879607335195997108081728851975875798311513789213179678894429274635544204789966571077631929008369333935996920168363095214244102331996543508642739176944009899024306862808445863079281921272974100912940968996543465769252517901548736022853708439787743257414840785245194042566788834607616892628236401777333113861644066123217554820875746298675701113873237925679045941174776828801829444876352025869217538763643837449816560117667166006476755405245787773359925865502645601013003453481233406914172418052480852555409809115965584788654745308160148421557617975652205839686467365742760272296236426168269921867732229717112226563351246529039046922229265174977269443088722966139542592832848700827527203150221086239358479893359974684198093337065328402620127468744636941109313332648792412985575894583814391225531656987972371994130222447914466919360445216239376515761594350018083099220129565001994695679550721183583399442894194077497984901696690904690144917800393528580514206360556571422095119664825664359765305788327785861632890412687115167662288182150159877144459870921341049494619050389936319294198859869919840307868071476015179876913194721874179713246869001102306002203079085532954557201756048289814165702035885063915278663825315745234759259619293216477823984242627833053157035060854533587122541338707854837309674201539045453193926398417444723634852287961251898743921587718646087500613741449564882358098588816633383011746323108534260482288638020392441204712358975348125266500904496850655902065652863876980629269103954949461796767640427437862528797073999694427488755776568801714299490273836913982411655559261983165139690102627051448914527680219248990570474281271494733918796937359066010754969661037593649355919122270351755199317640185953368521649153647919936182079810865967799354387175965938683939826365028607042376291652327776140428130721830601671551530561858937908516727391234527033711628510886913010562315756910351467738470613368361599219130077798330975647419271195696429468216246909847928410130114679238361964148886868434886472042690142544669540344039939157343170974195193104336739820050739960683178186002038916785570215082195687318146289082261557065973301999710361893377732724634357557909057265876857736220826186827620079840034064601834333059846704209904933673536517870230524730015572194221405091561639547304992187291674029840312929959523420487211022338514034814668273411173802630434234079601451211281038106952544822597360957585221559587474347735169009604784832311318682978722240256608552364557977331452437468498270633187780649337809325810901729076792508249688040447591117445009099464530682775760497227807333387614338534454834314297305225678675109180483823810955405519928888792787716639647643721207662797909528882142797518213499426695588006835359029845978276708522260498075642593011042875141359514946613924668557836332305218093093757976980452161897159335157992886659267081224055456892487555660046657957790977157832757370898440933566023825237188821699366022454599422708533903253180161532312682021800824368622446386583962838296979343584412302737315638797919007694251120652728635032424498172096382559221072052275167960282199666672591037335054636989597928608411985092884588534274722801052216852351339481736783635337227416034284300030471273911838344006542851078987636457066852959745040341796405032742834121929741782627679559597079729396020628992856191387314615574383006097526082246137665856248113067772523373093244579740234263948455222854434989930664535202063257979988097309155156828778232934541503857466366953163523535153539997246223237061355662190565818045713170139054195161241719208020734828794762517980990838277422928947295688017613339858830164874071576657620087737425576101772454887434122637943587094437286834546397161190992538674769414379523144534216442349466968198288549913773467413698708093486445995252415215979256097726101325604022071197459793919512531272978535408866813487424990095038735021382893113881068145804439074248414672883522154316036340759648294172835659372905606300806790946734566078389523790486544253851434974746788319035909997251657729132867186699816627714346235982786106129510161686262405889867990629167119999426261283626636124444523824374412388338161382259380453429998305648655630205181697354975148208940027727604447898492554655857174828377506785267886840235398854835302386400144925892075741237402976553043903547317950861715934134176518798306689749274262960115831423065316210723131308275828467713323335235222389793643543030907074564537078093565487751495953998099200323687982884406272579185598454761806162550493275925298044904543053964019236942025092743731909489683351815146079985619024593603949276156125193099810304503204329309355512132885830128948901292245614239836670253255031875026459846518946154932882879981314542747098242243252754683014621621203602463547642525526721885706872696170238473439424674252889607184662409907914670200504892951341077953657745631205614855386500675846321079494843033227334532683041314788306303186681420773878070746828503372369166258101874389622250309475371167750583792083469172429820397822866169511496053497097883380428432304748800852459485679083204614614687694195960344988624713822857993109568877771593988849985980241996443459895904084075729307419711594490464366962699008845900627702740218793600186499389319834314749571910212155540736208585012877592462408054221826488901268420421127728871421421487512147836846381216291052425717552099124439685119573692758331894555167477240089333450755057847206628959914941599667279130773240516218576916327486903818922580177389744681225946470248517304657531045434283253222848035242536754921290529120037300053348349106480113412296018646500975819094948424837322634599069015769381822159068085512695455001226800238930417048512360672620616515180366773973412672233417796408638927649943753413783472995952269964254007091945088852460335033931883630430039140199782470177954649441533749597693566190694445025165878913321794777112220468684413686793130721504781319469740156126835498179388336422879652452414049198765677505280805639779239087166596347219520569424667438771940006148789794146118977765721410377158667601391808074004746002905461628234648363522635061931795509660173114807029580545955319093997241361925920898693217105472671236006371202268901294971022058442648384048816479134667457499805696661161142636475651404459069459352325600761384304998993366530811485015273245767472331430597296440949276589858991899835717030570524231394251795612164453039376253113650542321868112779699022932784344047684668967753142997117859874329392195877873934804167456136623738788223277784671274420925992512169170474834766640386176396640478460715505362752702115468854318796134440425696120651018673007850052245103288954237850935856868747262856620057149655573322912764742038835625687101997297215052743389425036464820253413307251847210205316557816398516660618484665460432723147559491150609376556922749827893920689907796955369600085807771297452375037672810841585179806229109971503586526044282495154593629311811644111051299615340309999308625271514478168979040874299245734723019522351903386522138015136219567440722795220283602750089825093946398464379831647542812889676839193401083079339505170941496891730074341500054056069599235646363269404359760686723376589814137039265036202473585597878052061367973149831993199143560824243034735285535075906549756074129211325170618925239579868971789594701724419783119668234547330073334077706581826265295350678532341855030107294928241863088846493052079909115741341741002223422910788432517359693063300552389992602128372348210636166652976305906915611217944325530671934344410466704224826648369305540746493635497216621051230591395940036912531426328855753098640589262858148979527005851495834727473146386309752458505510892000598144140061421686565085422297753853875183102932902694550060783490363447868445075631974445405867599221500849607698242195248417205564692976142198940315751808612428362721229619684612305764695733256484176815430744725603734262486725489380170828678454825402220054047609937782884761985301656814180713381905530835994422385960806495076833689026278870114884318131603890327658258630990151643304677489858425609288331452985463252461770763048834563972525740622312539592066695916014674326819161156273667254534621706971598914121820324706061029768359772506322316281316384105715630723476303739765239308602538554126087796075633275286147807542481185079349630335046639480005213082188261955289156785305624949559680267164165459939398868479875010181663420611111798394100426956469308997623376740218141723174369998666929001013392346765822249987138836211926101024828251819039195627790219211022750094882379203577210081078722207340221194305615532861260859183434143639235287736766826109657308948300815804587711900907579255024905527265266482664321604616663177910822293463063415465634958850051632254125612330276522283418951878970035339712329141701833355645315783327549048805998912483506229033734591957466962458439626165116145121879361243589824887434292370780285284282992630949124380614180459931982805148916207852968672152031407284884244451013699917562249916072876743649765572386199486063351460944186967324714549993566755624743675435723910609531549359982870686394162164287247036341173819821591871061176515510212356386644596574025726932896975138510021869956527794591338397853675515782725246749777985588769267142329921573485440148370537015166657786946984669527413870719107546355229835378423878648373772348207404696648973060068006980347459296990487115518626502807346468097653699696311524657545260099690657579367318804463882605466130320503003309766623399948527766438131148060569177628472378339693015741446388210622224331637241197022971453159902123080528558221565591373928174111525608328860584776986496720552024586063554322135727569180105948787996148984460583272455314704277500393414145460339243864182746702005102716898440934433760070422624828922556076871778974310944851864017102724190293939312562177991916692574983273942780975605433736711944634235033857154666779073821733615453970618440495752273528357515578025516585496897276223305816453440158709780067843173853112432806428137700895623436952905778311771515762919349730442760234221349728973334181537152783242546946446644678158395754941872267662163569237670108941039430004257936642520272642202673010321423437148188107109796265319374878487741420283584464900467700196547279903306168855477954602637389104473404055057380239397117290283328638658351230518370375622815350580682432540939384160397748826482777713430921973631019954100936418030059587245272082307943112270652358695930836884562868825840195349934687099048690884621409611677463285732848662654338594684263089258459587030235582049721248641476555882365371500392573407618385774829106499022351253457397976774856478616320827977789078222493507715368582656320768477068596989315302962665938477314207163354814515110328397613359109338775089125731993071404181625569323937225499332103369822094844033155808759832721622274721617221450816562305959376777304803124227327300248987199590452348633111345028182293804227882083343575897930230464796305099474211983214732549015327227686744037625946047024336862595180089445058665483586210271697560154582048114267917031883137764811349503597275650870443224609353951102626485418836997329116286830002507601940170401178181935064248302016340122574746301417411528844410041034995943194241379304278361173707298737935436572406709416222236011909381708067381374880554399016889407859450128424198418169898222894649872171781235003386135846876410911037400249054572845951506602386967515320778182061091493624613897802819121647071309096672079496200177204952041831999444334067938306789418584943596464643905246854237247164830144344898076974704216455143634492509766646026351114392317011175177878945422584371223245059552942443779397178222845103201369067550072633317391341263943754511291992690862572154553193754803487855957120649696014607888502481071242766036017370411354110432980844059513299893145056098179082008332177999227180312470580922586786375687373528379161401616591103443529150927896652818993420694261921112287975756196206299125515505717204813495339380144160244253256556205505498636155522887831705330765851026080768117232663001167489492253724000770461349622471470569117885994533924846814874257067696803559555737751613687823177390546903499192958260066418409990977181727718068921947181613563583938488370582158754417965117706018185060675618014305225494641286656028922598328856653136503546621021847658048712875644420668659030485665230360696513449868372021688124183038348968865732625402251891326378728787367061399694040155787611374910745273154114487734648683170164735475793344271583826210075184399517780184748774471490245170961910862923174241323669316136239067029311519390067119435245428492140999850186036838657893377995656012182591416680102058265340692809337631633613045694823009816268383214287703723233212203773251075126677268874047534925815010077013889745976983298188966115198176922274836876880714282244620748531278847791854197673330112134543627116646483555781684732600160642935703459089113960681142684576137779138314324475616193941197372742943261786283494501013953033618773070412344095742944796672539273991815527760285823023977827273340279753842851901414343045849873764352252881434083334953838415273862292928274123939307076492655594855364463775690622455067786582095759379373348817421425779139981828469853305047777202392691519912436895301755523053231651187388839181403086006235374597939620739831072479941889194873805659767426003233719121836535945603237411308003769321612568595377756232451603032241459776844335459471331034061070531165119708276314293088537124409453157701718635335582338520775590277653193660561429954107512825076151106014111854265403816462669593021845190668753195877063330389146023845340675718319671108039537452907542579114568631166329621799551439727523207064246804471442935704926745091241244319584848372503793682476133152995577126877690554203549760817835902809698927553056727785791090510321540358785538122896288098584860367645294341066648800239104178296333638445989815267435021563110071975753054693419577324947796424465411685186144851960085065740685849809220539108540705220427875043236437185332307741621006234601614933814800551705636478460080435717743760013473756657050572813819643370939485480622245669258128432635010703666150046326886485412222387136637987426634206159370206300223783638898807741415071978020444867054926451776727139623162952992340717708034703109951135197983277857567002780601563835588269434844255725133851102535572868045333420475147671002695999294431867277551264742675270969441416667284223456620995184560125568438117933917145185591916667530289839618954466682790820931431464481983964710218159819332202350957402722867673892828872696949995021108608384681545051842363832042239816653739334341212591408757629569957329510499639608976734599417331272238905131617271387061676837776462031329606600954928260515631215159718680402739689084441817243880029485061901591941048291321298042834831319907650843338929756024634488480444270820049522347440696455729095568044597300910379896864308493140640111200808036879252916863866223334535589933965241320461575707930917731821190859395122954437036751261517206994702774526853187938718605771202437623953849830235008180358864653684567692878836147946318891804412970991121691470772609124700059916056040660128795185440987887991391159257649858496749199491459940225051683369871543298048188261661106900617731642279202831875808780360695968164127800971888640821844993746427522753009376591876183562432794635618046163900455258766060778970914735858200418348151632027851602568145280089739527264266051027415812257983154791216624874210167880847381062802974025035102645040758062264017395718359363504543416728321981671942881812463584023176488942697039386166777925296531229337101044241309249889195429447205584812599969798148509950141949533879184296384947699480417291830260883851766024113281375521538212304250990820866074058393794722865022982047722894396487470651029320241654749129556667999083642446988098473133964796977319157636841896392572531333953637485905323775902890345550967816772976831277845232786630949522145094048125175246479533544147610100654379340000434447043798607741890315233433710034578303453821316204329288723869132934545012410913891176166676762170072014359306314744902622999218150289540448883223252259982514355404901499265471501305491217083523616780536566864880996059428959818555217232700356244907902175781099994333044813330139962519007507426722825432643850084442956180307943476488856094378092197371024323411449492753656898303587482471834019560470011311667678814201573954911912974719338828773491511696563998976999782597471630903727892282917234606053798921791272428831607836829427908440482260055066811280373167521382528335232289423756324708423724419252317571607568427564561598580638323429122435291723212692259763612000807242335647408002844803043101773588792942939601780525674201046557382442646827848109646451101007376592751939116833085845482163187547016005089595761758954510546112610714746358633125213493804649103825223133524287384136270058734924890156887942658900077747427872381521713250199022562419807851873761502036485681655828969669652741035591051757037912896727251872092306845962470945254136876162379665382132052388442151262052039698601632847363544835810113319226197137429893769584229317994961405135373381870969438164135466777473648632184425700087797022245913736330536245521240908003042728902421517299154440141059991857047218924586021858095434244736883113152640546671274975420511001046857031234522442039961639702350180396720427124404584020936702270243944924267409749326984614464710726198396313866227764002541255211852901815151759124884276063242862923729186348004439397948120550579823408463761065408315153351770197207950964861238137377892183364845047084748448290126912557182305279913685591356462522752683525506973028440382541707718498477052772279743926451556104758166937607567030080699954633760926329697849406268995722420617084171725239436445634677778775035213054908291833799089755446256003559827814801294303587325510233782509420281392439625954548875471849871317542118708379789786822469387700380888716728717838052888763829829745295231872312234213964834376148873882930917800819937826070165992527208336689969601809276304819474664859660243179523477172386406315968006193449731945928380565810298115717646691538307902015509759825104551137891776928532845464035675643164081323052760964919424219131510906672009425649440564321729687666917689074432266156431496138713783702624151190285501712462428574877255358619841676306552178950774358659612202654776488121799321745024782363179443018777774456818790797286552930015742510975044887265109065770127824765986143204561668586620801301379800473314881704391346200057918729344366626296941565399293502178039904235683195295351004082610967679214097134131274432886313147725341470402189898059316743882749046328437637771857928488277640167431061654292824053399801394323408628789561975068548436477708374803508533800473112727394744926845510183024360894980467374599889270082738656963460718798319865637471481720278467222942128928242063657682176270704550310466634697934197763196881932553223223678541902038218230852419106835027003439172272027564359691925367004665001525789385757683377466783149710853943180122489147990791561359482758931516060211984627307473459296389322260786851577739662949761847149909207756091915518458461842420705192900095999384289118995477348881768425981765038835326361463906927628756344805806955343706908212573141969530083463181577732108066318400172552885096463101361225228578087165847960569072173683259157297178536076467577821038242950732450110839713101201216007381581050713863938718394333454663231427592824080987036669949087906369898177550783083060768035154401718835487603207096106302511462272397157112579249117262819984780323874462967836323811323618215943174594437216864286894959762658256134390912245208568569407723761516717761959161604111331170132462853137452744660713156014814630780006761641353040504047139419743579907601986114843114699840956777484629987353559225504894135753220447504168209054327093997767302326959166757522904468379323048424284890819714621788130339199063958781004953210656945841783875046507860333915074830593157444523894357747777359527655931540084625439447984621865528377749795753478835261470691767604043698281354505739636537016525346283336837121845061616319588737788373414981483871284065237586894304686838613918619356557070387863862076337470456199469418487327635994979288322840606279875492944577077617350506191118845873227696757356210746809231940294756462430103554653764692048389342377280212749049277009735771818768339242718159750831030987865211974014841901909494178108648888293366875482954118964060964112481173639219518545723070811484591369330943422501252169942275180229590876409545728389712114723671623312640947257827022902198910150317033326817822275918952983259957414205757995021713787368828421115306234390465278995814396725649502277834786671842369017006839601207075785656267706046980311396749299899418081079823919263834305018931681095058923980330373112219581143558948176753429293695025958558863190103204307038354690665116115921815183569674297332645789450045513122868503674433056974935030143836978701748275116659043339364591356729904589852618766157800393568600156319234875759754638682343652209015457296248365745517970541583875457510692513799216291839734048401577718178194449724376073056366518033599343208326155178182959743889131461996746759905157376343853190928503275539073597254628324315984586018665726978150457930983529136570420156151918822675824711745090039001521025965088973795529612034449116892577391013102923175858568198625635172450251557019502114215017760123072233197587378347951164604421525231319949064026054746083242342251368514159748021812396649143367822082368994338536113352811173938548184649327639930435061695204019831486684311588696210235515987410583704295226142600824798746149836860316451217762863999201830759179904551972183370602865470226172287975262215324503554208899420253403280380088034554751108995090107815466346961243235503320625548995791914359953683075493461278611498011880161157208993583561316525917053103067116567336838634545119966302118129578520904336259282731029851329923323152539436887235467696456353250265938040587524155528466501852370501033058784409936285323634243891629444253617568041562828160309000210287290745419291793475192782342574385042407105712951231547987324525721385746607454860953770733027569725971511549718490822388686640160208844537239097361254951693217221034884454084402685643696584255607775991502281331141389099178098223304439369446250813958430423882688788774585313349218855907566146300018376832833751434059311795007780649038238978850558978180910783674635540997260457402177970981801669412333012693635674947822893650915707385119197105163225959249447590327378820882547017857074186056476107762230792877184147234602619345018578449192554297957618660596702477440097600198523829951155073507972433017280513923902642538446701683967901133318096698853604583535610328125303776850389237001853894829214412221561286295403220031843076492998990329949636438173105021304175997547524662655689126408788169236015664160394582348715187513733554748778784561812913700597337712766924742672874246048797552857728863827128732323796923875667839421173761325851060860549737693521747783150497165315199822684449568747958367261121072219407573271979350562977939489092156203484216407925168827124220508761894700259025154119744057947757644275338827749129557556088551696292581377542507183890503891679598742887169943881484567941932306664181758951494530290929636083331049996164385943324330240076621133533851991072276393224607459188555506004996151012195542259373938681229277283715044604907407480419004382843285559834140461302413011562978536174678766170156903676453116026781171271819995964912089261821529371624764489620338082981600305975193673419084912059779838855722671702313345595778834658848029478041301142552937539728474104506016490957247544242241506176420196024958301994878735466737996047246939401118835223523087856690681218993058091920287382972927363866265710043921705223245028405521311928637820558078627209353786254844320663446988485007550379689509418444326488397003614385126657673325760214393535476812074600826110853507139863493471745956981489041825613842532115048196424937379352540551490446369210472761244277208110994618727849453832983738213496455960062652206966587022565851212532490603376407719014202699571285148452568899376929193889205295281289770667646607283864990116529606947825246637757985358507708771965350928539553350020673581309236024309769136461717956241990254294549701521551224657280376655852407116197849945894008103548025724807848502414969632393141449946078873985256730201346184089106614872922005696614701969173928032864153926063177303577395229002592693923102554706727669936569737912611147054619975434890036760814698691707038055447787200811220197394117072250808727173550158102230437927370349737818270248132398641025683047433393081632115275558773539738447938531766354612856514347292487222217461032296551056947230961574094656123078516816307980369925952992283721323368734845047418544017306887915224506112840366458633617667532328724790763541061999734018542720117370133983025524621486133700896122450064168623768601141040591692980270558102860157294204050296221839805601655028813142096225906128072124415861552225346907148224025876934061044814701132703565864848299337339959042359416208666167557091235799531886884368287603071319921433380788080216682194105453021256943516110218707937811035116433223457777529139383597340866351358457830007669763620136645954447014964092040838240086461846129635996904082249138519272337672426657059727097633016780492118257836798266076633835774492600024267855937869261165384839634561720517094280548198144775554738935480587112911561960356999974132841021991397748261167112943844864400335864423172752331802837697563489789852107329568853110086127367889540304816683212953253048410710230522277936353173226799970289231902469816952208702711096473397565072922479092843645624292485759237647806781326293053168925277959981345207688763720882716980666322841030140972283072456380150782957433313842967443986691961472524059497639197748231332119215154468948599719348542881201488058341842079393412698298765373647902064451140944342233148646605124579930583065321032751626141111877890292008390244987038811877635659094492750503538077189821302611496884655202068927898206050231562395887333516638448882357267627579190663821502389112732493948054947570109182842141266583479293576534742421575889782431739546950199682067429212457178648543757073715522600245574205224943461427904071216193061059064828443987149566070858438228940429113045926128764845983863438061388529417672769586785907829045660009616899632013090883730077088284907647223203334359555129895919317964446869315404082278231362006524069944504523382171529062507431546021697894149244456429211726796084268061573756753041469890352506714216719487270764364092833519745027123037032197841766916421075964227806327220686287868700755686497530755539630432590151763250757302953666928437905156906374353863702834364140280328540617856187388043891922576841349706029602796252570438147442246059487612875226343061429397793784855371770279740633053144456561650237380209326137466543082376258381969072067472101318825038276096445269022008513837275506739383663778499963678093068669302436263894667990494163244454204774035558551227763635811839966338428474644338109188380621712451397997091969405452552757806762250025347289738275238128474251978658678867131578906026525287069224068148315761344916166818327576710948362262219948893749876278173530279271965939050919570681377457510785723997090878935342155067066399429388684719610845519195270433242959379127337207090689193659300301919881327559235827057232102221382519091383973118641481778661784324358650522367363074024452939694749153211777326837727462182240329650336139434302145113186302851792121089446114777943668321757408791247415680950417805775865474487073231056829607555343210578617489124542524813344977333263092971259312303774410520283940448900373219408157378806619361953362849875519334019605733745517992067978621631747825802347396960301982429217535846224153441851149371003967362479581272733148563279130222482378373652024550870145184025333182557860486753837906846420063398107653943086892116051645532529817360018085603465996462127644024780053274828255694449814340106494802004346369855532951217753649345941814007282233829238591525908229907198931971589327488865234733577148633239529108118499896344848142909493472716550447594516178114527430913815197444862487338548251928698812143874768854158553372396247373387012489910629832396279051616828546310248626542380501153200454980043674832401997406342272514556539466115972791349049084130560027905430733221688597523834128116188209637840433644634867506549696555052079836276764957606674924948513089459086036331518123980075962379514326793527434613710428903681486780429719664682188239338465695955921312674407979996767929468519218298332745890430255888513586162053170145345081139205819651703571173907445157446472222784295850847927217415812446732537427335855586938172279051563177466656082364497919712252179559847246196051435565141531412109095394587208274720438184623926091971236184339062608952545155317919136151980661432426539539689134951666926380776559419132205771379335544007134321509876445240399821843177881081585033227663916245557636902569345616538008874011997409238430052375978425801495400662825259909322583964501317108977577172491763535994634044012208695674991345817715769957393786323773722913795130229042656090389001842665813327918143909998360315670720015817999027900569118689471695948437955248747405939031945448231178260929155934042389361204175473508096341294910786000007006816424980846972617752749754155677732903180335667988725805709749327878518825118080696882478896687853254087534687471368829716718456640178644118950638996165957365627239548002509929632471498779313015743303014955575795550166143206722903707053039037105124498673492965924813953716880901168310084079537376354643352486830710357546083558706451384083651721903047757947136622519210636966668364532057196996756448805020842785407180351510225104620147300050164528383190882152338170724909451518319467527219296101013506136252115125596191004667455277705211561654553670779721166753238666981196008064121276954236320881350527052015193980561266933553254767290057433440043674596753047147601606278378753956796821025922153217265883240555096975543254153909554508417878270288876114338023840793448132964128070123542233409312157747309962975830245950265968867559560048485273522946870675700360471679518501943381202457651062229048897677965615591959127618797836999907331548070605009290775200417665957126032519190997225372499899755087260522355640014261833022279216132138517030499387743304614440079665764575658739426873133687545420698311732726399577202267811182945844409861380868202312183138387598561896030089573470588248845393490194219986521512128636961951845757423371134707974351514620175069859797017487363864615395868997220937754066996567842363446575190732310511784668371972973608859877862148804468476419451231598985865246910138666202250309799530320785908288366278869796599011389736805930964400681616076893447849328675581274171825025431422816914052204077492884791434983929610845675981752341366991188058415671566582764461736364283724563407973922683109398688437775246039954802682061734674103350345514766407460213488341275505659881883007181726349639390580731886780929713288591584706513988575697092411906171061603442470733986833392260202980277906794070828096926958035831198719098920721761108836031444452552123136270813572443766673136512133595196819773967474932035827173080545083575349157004885373706341260106910764416366176084427935051314878530154655362374493604285140555499840267327929357193551094384906129081851773491260027204818905569484307042764576884728346623800596563375072710881933736452860936788925590574356139797723349874439470669342186947958791417384005293819141261710943783788211415490047474782075550592096411592445947362938676055608047388296551373090656398246990120399529007685526153924355925579419696590451748665766108772018593508867217936625705548926527517455044590525141045924592715274301706700433015924248487848736178631151422785558180298924245801705106310132432982848260345982999198489637260234990843881330014904889494636624355261531361761336572911130749893137258818653747934807312215986868687777732418448388259011500005936345954884053469754414602640836114149349012194989199990738529474176390297567462588959784987140251847425239822187243468293965830133443035301124855995687497116449616748204434193772883925332087910715627757017090021818534264747996877262209804342355605427390923296924450823770378198678448936909722338186479852109118817758308634279849839479136155590749987708665264074618601209468277941633529722833259265455176689948741144692461101185512061966358999094185256959385998003177269362932502632524905176773019533017632598032788868140000794786208641561808383029395295934812209984519816387341732615420990499831476978586405770701012015183796793410772561337723112658889564991889112865643438541904459912482954170725153271396274994486169335420188202526980441537484542557769007311284068893662240179805233769836107460376297365437839375766175815451808129631116096793025112501481402943949793005302302641948090004636371490348533615895624674134650299537210002075036837330544359297720026429906003101607416406350338424179199858003020999172843538614531858299158565116341279939297739722911037377744343717840440440772382884183466284756085163224869388529904571576803840911692571479536338373489116466214188395413916988327117863455044465429969164903772158013856258397527460676659231106301038242590229736652758928012911068779081104800523070293149573931718880955112814575436262768387859859810861486078166436856763111785094141758851392093101843792585822651392865018854496156145313157138910720814735975805766628758096665790338929354102814264076010436737491406560970092997132192602624314366239674015337459895090060790973820941669464795367155199113751515352390798834636073663177544174709026745115387401965681995703067081694942867868818359826299259115184453757716374734019614902342970330113508836735814410704188011979989661555671558274188040048034981222246440254587185815906408336812379719486809041858994013025259923565924273804702077658010114068813018536554571162507304928490097589485150261910396672239304446940153377120864237717730225839892107043864248516599245257858419417933967910285369636761142260849929780132045188070016996395152380483451620238508826230584244437934261143345776057537792001077460440271263472795779224592574200952834060131322804429475612680275180156909781151512404988592039476495263588321344934966554544385970866673216426996058606934843511302777068881733047434587283748110186245353786540227542068770389947729422000202364410669437609679542382483190200347456569539853833510959510229253154303188921552801615103615534622358721757380136785612974803405399800261871055881709371525808934788385793512350047988126974807703460205590673227039263231856997034918586764380722788337391924539916832748047944491526689032480240003155411003656482942137018166772407091562342466444395977145822987137886985405956135024829632749592061510228545887115947732241339903738813961677084779595314471703873195401003526780503439995227827898789472190086174279977487850696251164178482722810154844444730205122903744812497463986351509340368458069873867319895083191727064613361221961173030444504959948071917652354861771806728458125185702555587638944725008750191185839166134634941845594980121118865944502398057438391517986388852035559433399381504938174590683214179958862549404492877142344761590484963835570504235294104303223843509307308210700047316794522339810039422702659192908603355644124032102932748548871006503340377730951209780178511024364679248292917842325572889271960934469736479237858597498517246508261221575068074313649738831508797879974531103662392929468814604302212487816170066898404567388925982385923613369325171006659494360648341675213000199364539276690814050335583415431733769345935266830025125097441586489721871828237679689675126443970483206883850572798990147015850262888850306429808498007213027006522379209308459449717862597537588405407965711716468852158200344405884947536186468898611464172779360193957124351104041929147163827906643311278709104598700863042963125151591196726389008548845520887342696382187753204609089588662171780276095112493650082792884927734096310299004601733613676586831893471070383842381290709955036904677671470526244846143253192157208087823204907454278504405087441203464021035721713252146686150623052651886276477364813068175247964398226103958651697632184298172999254870793018631405637052149128560670264361704651146417053473763551457735047738816764586122337049936815600442458865278258097147329119616103849415644589737431046845450083207134233803577013133343820554210996096050267082025766430808212051846478985587491420195894907992761097693596323525376424366086266071234457732224829076832664411715115847223834657210077679477097421241713083744036190431555573398671932165814272924616915489626820483918412710190782001282702450781506771525724255929557260757658388427235459496778585950604900162536398927859561105088772241265807019522896881915547778422576363603122614814142525581780636107399946003146310358266779542403422500928636688097462793934967935344828383497901103326614110582205231698255955097665304509502122982750997992031565155975439156937094531159189590644270861091382598884660302375994674300805930900604643108464142377735994802874669169966263606401103524203999223989115024520502455013764246555910288357675313843327043709691776249779949337252241140615461595003447275188342967335773852133704234314181227103458783145063674829680427357398388601281773283343812999757723090247686438914032504729469653374200370052418596665853320908500424114295984395483288804548492311609045360757874474661503990600051967232074112092718365683583415161676935940971916804532863757164310373673089352259539593573501496463548457909875674881763051746152461821044051598238403735245394084719892752100563697372974143126943916712713856338634023920323270357598049592191587784044779259114987474745946940739035120726316374939426616996259701630204928742162438359396848656006554926124818637844903827851122378383387525050087718247244917080869906959144353724822781763629868914725791022955275958658168016096747464958762930917203421429433643480047675606359293333829270264697164546911909544366592915542003303362256892587065500320498215789258934472687145514172941393336364430275778380688814945755421476744327618816600808342764218886638752950290182809833294135467839083889735993295030821526194521164907269134770712610218383392506000619701278180774338070274657149967302592231581506868910505076640145497815063047207266959265435778810135823222958927606626181681527597416781663722352952344476939050772805007292283575591115879121436564308813232089779046532191236432934318904404875960695466862530573053456307339237703399038062780236621884356501877136088552636687168320115124553213068380271370178401400068688218633704719343031746548853676906860787589385242672638552418897087500950600572267355007623505464483171657158529144802582997409643335132743944483347762707324928864106458485411421577280435658762411831462130182901316716114659245426945144394312735553213553103111350003644872432348846822265459902137219409736129777202961261824604353493365485557573035763212039654498033980152423949303444586442672288406373848823890723593286186229537967907119827069446565804751742027093553048542148065866324780086941702175205187829453328423351980877421852924132641513814317237476232343889142324030237063391620254802806477471304159208087535345734897014425418828672447824760254453838005810666932519516910076248106860847893314004034164289929578960765503206433285593464492494963545148140402359862960670869284744327354578478018653186172465994311199376186377329057016284909587013899987737277167270183827140313596143177250375929670366538499649659782965413560449888856413417267259376784309210941648079250770828718508017096840285322950039853358692647071568635410799009505753984242344855386460304335279990759166822594029632774648034863708023519200599727648533891337872584247584759845602194871390518072619004301148794205088040334089565548830253156858254819059109482380645902950415393640370894418331170712120261917394278347659447066022860280790819883668590187886194627351216747825903839640466969893047478148707353702911505182504909648181995133934157689841202987222178219003064794514540094343205503334407353566616516176894435520638723485006417106540527499028587530289498258464057797180678017613134628728049164430423870513523145150733931457151542093546629410343083564963807180219244490512061863964250765255292386117946820581470305845702599751131007011011286207947504643242276943385131819841300399200050651918314655376914578034905143953620994829141080113882624346451712765312733797286913155804763805390762005832626594736648339727706981947589869762019562313193546749088465008638265017999169472858133014372213350681879922676877311489857564568056474387282338977945455056765436232572954637663372952110683942070693848182508249261842818672719760522780150145996072165671730477890406357362376077000021172046613439816854577043389397578113039773846246731074614031853648717355643797957834419418660314136273597709491200581649370958552393921029689062196679991512401111086818493594567011908126408255246436816259716307149635427732110237680886283633139775382482467089765499096474104984526234768015936465204809266310334865413131198073205736493353539969478185208848937646839249631993299804028538720150492447957171462682786358688114681590494196480254907558106801404241276402691231114405250422468727705928433040468997224909070233560676298953777360933648278852449373436711327695504410475325078310927953348047604455509695039731005611282468210528175526625496738270820190396752888327417649066556771753762557726861867861988044274592325506966900659559502548033484665693515979159763542297987774708622331226781074628610131213074571813413573973282002019395043931796637542174573391349632815889562858886973098209705769885776978102419273496637010574130852746559214955770474492720684703252500329103474765772597982044393391145461115237332664468325562762331725000833183003863733044454655890410332686971880413745810355315576479940048336914432636289787913455967452044531097613360523755242015210005604642137310456162056399038739920504178755112591726596198826934880732256000114840213202998699255117893611318993431336382814249134065062789055270757971599803279411835533292544788791830171844629577189872270171942204154354519080597056939305028923823998321566618856500192037271274348213152928832525784238734144811333637268619762922939235743465368160234964042025703097970941347487730593728267486557080919960400403971766242642492210820320928473284872212730360287953312671947701936341410421101682280011122288839895580377452596138251173198159901223760593019957552293078615628426553599600775779252983044478526477203623615251055839969565923323452345168726073085586225282956856818766849162712458160017709170387937318250525547565852061402611507703736715747791173014926344109470773809715069093192297521529774601828522703541105865737455683564866845187599546772671859232008455495654570670085454857349772120684847657586547628606179365104141094060673139358361482332073504675951053542613843283359113924421414951834004749296121303383785498451256141622333231771750434718712591230484750639840662092484956191531106147835852421235949691357663765850862692660589738547821998450893205419090637486279698206968907699754540521924762124931773157199671473231750430646055117661459691185119004441041988971156118843247213095141996986073347787199847588859071674137573048403286658364627102302935084595719811711370246295984916166780974648633399629115011501117430244282304313612107276891447313639371735221783143765862444868061253044491709900918062652957650735372242623658156656336593517401446379105916010595694673132758753744923684400286937386870226907787262596111509128652636779783638534628710985962887231749353025048805383906155068964278514713304098971455947288436362701113467493359317809027196600370276549047963378422554293187638127568797561162001887275250994221669515816399892032447858150009701207431338995729562751593254920052055683669487652744195712187466723921638510071890668758460583634583467469208375609391587832982900676492028776478448246233844007371381514845071616079302521734043681698012789591498111901567239342422930213262655408032796660467829973286665970080135729321585099863329035463145044819055117595031253022074378517867343730859027425575672462529469603222548860707312386716628072547696660555953472534878064456851741625908667886762127246300440124691184685730458946991922565167436811441662224122548102437272442803628241452055517867206612224696851418215269397564307605518067114330817584453066401193909378586699942285157485612827409419735766501624396868326818546369897896831782524338337344838032261475131406321519316864362500651800146835425339621397991215859607570118123754226339040335590335189366703131362376772193846888757645624465268117905218868986309788087861927742613629830126800175183159537210622366178098544810289010698328817126127294406384501887332363365737728960731825402168749279418975748739922864353203978805729880293804049801337684619562536101600197480798298658094925079807717016992259821593665212870627807105363494821838346113624304815685075029285249794007247892520384266328511247321648024001604038406664306440989613775528580135278051713275228037515175490058957171370023403111259783092409075455566037474303121727422087895654896477657663014231542510975064195594309295269509118308837826373857323715099621673861720334716948357262629549742882017469925953688255155949200599450218218286501630069752489385955449442706925021242082528829498037459927564670020084044398968414972453449887177208844928163233856434311324587785891049259707272993092284499566011682047076183632756957561548445346570454067057785397613345101663669592137742410924183347485114279847253998162316189763680322086244309684942849090023803575673662893439573626445253373318431296314509586804712839172138831777479300865331419572571233122551962584696258622278339822694427747953305098981277598367960878029594067196534988841679567827754633316349572193086010720941075589580506383889804285573449653053420683582593614625811936308630404053945520188085676555750400145545834050767314833210745717569636309075313574931138848579085757268863892792961831020247337862637256115238856600296166106701317085862748863403172566051877584752404069183072913327957515844080869610375094401115814261412841811434751787180823072943492025148498834470034454402434480715611415135069801480182105127340450180649321881148258935064612065811761052805668594395004295508401158457906249101716452188540001864124765401097817186104240841702713857616008233143972399229376327964656772043954222925757606270333159094815052275187284123790447909841984774743286495655776143542099321602298747674340349856540539521592795768635088728810469621804918028610213150864068805274679212582338420877802424829513814560040707893879379963958722861838741824804566220039070267777818625891099560045333712461777719755555857186773198205024629022503965092526453416379166238072831375650030949679679530062448082759484081476450312747013719086181745100187896391647614471130460150303933223776677283143311661834556298236761069126856009701800306130103800096011212789551695046476349200171123438153345785130203390330427695748845016091894822282555860558937318695616130878591502608372741176807854118941655850036403507001357007595454144676458792129437940562433278238622034569101228509139834819754921653130641354350822762668081889207487542087026412022841715896627118529601807345902234996518866174890648761002245571709486451062118961020141232077464000442235506597729359748979952206078060482260483411963413847323422373358404982899684476551624508377306387578458895386129648583449597466453542341866128391960063295452025406419413350259301928109022556326016204063760914575926565367178258878540405570184603575041943153693674867973452467198289917092691057645073518874045712258401370517455059692750889545029224361223796590082239200431772110638019154479593382420748654123503549517877499143731908671950842998743379704233746209544341386218805592348428702594175566812112087368322301294982039368227590952792899463190037212688310314472841863160811696768762921192304641424710342321018665942456501957064131796314373922711137492467600517949847150927095303651255457377941415401841663645860396865710517421442854490528158358751520479923235984460375181548108418980207098590344214009536792392603405057843649922495982517487221384176854013623753867246806420072345333764116494666086892045427687963146189942827607820450420275573463376049197154965192117188778289369084309564057520841661526653012486585959783650198867211097913551141542569608989755033580198056833047381019746512996814184107931210717679184363465551729015689757380987351764042749494922449558228552337872101859205135528676847919716990189663269842893244898601596957276781685844145970174911002433728350223721403686626442705812952675260069622174951930472769760220412089462755292935168639875394981857183134940331493097863782978089234900976131323680568986148479480949623127853249509862664221770393919386718015008493447842040584817994274406270128033105519907089568027845603650252140533080158212819560373890771186209240897854433103861958204981310692295806714801853802720623550362153181783434259020408372771340959291896385829429962043832810762715822186484172303061969807196307772805482098028103226414895926695217234460953248364673057870267442524699580514780561447288892379654366137051557915914217397634987904806774807114468971122354450278964778347601501120895482500185175736527713739527094263740940434614468579719762860942512445220235445785959701686922529288805832711865096098593553147013706836219692850266036734094298547481377821514243219850081361229114665879355102593971431871928351605512416614703846485350230823472123321627970332952435864603304584767674337335432322584460884381548846531015547602641175007842727060340863009572453464859375906398539887144472406688788601570336665327657102761630062596405944863979737682225790794806501796377410346503294780080238559182752915383923755778966521533595473745986007622637814566669253232005830938815569721067591023127691846496250453662797413131916298837378827145844107187016663549507635320682822454532688026492076700099636319305770666341848499691735080473406099845216408286801515670181326938857226594022048471744579016628246196722627704492601049502114215503966918223076089179452392261651654777338653376574660152732952461963977857178388789680948545153710129978685048249779459634252943296156180957421403389892133006363990982208984426995142541647359970544823926904362731216639824438543489807029470098633987971290220179475311491004291230375250936155048338808107365119283293798304654055900651084939049654065186142592066610313974167905091894197400448474017072785719419605084337694942461280997400521689497703084698092656366583130169034966235525799353769288713872755244915854589928627816761648818858804906607667029469528464770924323524841008007157233175726132422874576916233421432067430321904878042159508035946745124650941598029018194362231512058509027544943094955579384966098085944477852454530707108448647022990231258551681143519878708145927137188270817578123487841080002456740638501772425797375268744192750071042132387841220774065372305597758837285208275435559164533035784204461974811106426712568974435502450214835452641715576627212639050682988442855892447572523456677438206563703881487433325198383169369806269293857278691477854519980591811652474341550263689095790407470608870775645715126778919284993334778945837288125672765258604265609898449906294495161655702783401960702043619367667189131168671772604373564794106530283239654138284938739645116851200182322039863718942828484553975352908720381338089944142590236406116772761825134015808800019106421202248444677915385148079811668084272504647881882411336133529983936321131194863405230733136981815560092959597489356990526734575421925335517616129905037191359672413966853589238803908487941404279299797370449908212124130237726681062894334551601849721846908028702148814261921635410374936819240430010496727257079832211991279200206776075215882728555311576456162898364920043814719789850112161769961367163487482656863998928077177791573933693374612185166438629111591074198425740366599359993840527754492967765258205582216449575334342609001817818535728705138701302896085782655347925987313672061360407391700729708340295879044045623622083151514627456347568547201080586980115817875199961776983221445272056960240864862455988928086663770856928858952732891317788968507579814939674224327815884560977579432950450738340053766220316170332996416741185412474442566192634328435690864887055530574596373660668548926452287936181203966855759969945036155511538441100305449121340499299377072835849711567684601124191204812756727013426281954230549330943052540081827411156597172540502784565199084411657335765061788710499794318641934703865720925026151414318572865255494599940990145201871787665935637814335460031955992581597941183341655096412585537203861299604080023030449792504563171241153421465478472113600080961296865588803558648746914947263142752523683141180874844947079253894171675312069174412689514840742282578080427030046694925498165192686416374983052331335691001048447631829569239041173870461830180781003523039494956306780850791407992637331958522117501553265567173911381386341761138611506869939079602072742309505386967866755357662333861425205608416051032512216027424753815072020755030857865956729013069223348040714202048928779556916895104162057646270810589472520228765472954396444184717739859680818919042078652993593291410227531992439298612532635651213675958118904631437832358712327621558266656841757191091536362067764369095078734467700448084761374709852809916686303447332609365429810365920203946596499269197306545997434022156290787477902320607237218053252017840844801673133313980544078110614393983652761808489599188684616221906933570677874454335395627779233628693290564252044658710932088894002416274397495907137222896334562527816251782095441374432022650215834973440206191155281679477660505676017280593698120979339737902935131249642150444605836609959445233394195465976726967389706391503690376706957187896323651317641687566751022478078569749679596819185910660946493745055152515928476610096782623288999110838209157206663149506472479140615272820636822049356428797788073025657186038513952502662235615576910187042826285049744503758978703312154204227306373197545165944821198833162956674641705636592743519657734697036287721508532330146537171502509071709621375471069543059958923919230060835800760426997179597228119331635749298744213728913912208940123660291147701763743020725050400442293506092773398141705702302013021187880439300977354812832060004413774809930305661042041673205974440708486860976750928492494240510812328296857044300091871152866569026770915920853611140293323833452416299581364833046915486253408910433010993151403732394160805510657884026940978874205320374162705648626747882192337628515953912754898414753936696719526691928245609113163281070195827400297941475519596627150396935664521836669297264920372393611386311451720402373862342752461776662714133630124700594539932849004157672036895232667049854653497311961285164547504636026862615817231228258424482354168652581343770906430035188311707112436263487582094307241914002400561848838436241826318220629024020807995928828230547822356633495441555885495167332121436504252190094793076602187598636193057638572465386929908459262184438517186395859650466043093040961307965561545963368092957237473547854898909756517571824437726491993461347509640469666323070787734583100358597150154914900969942918861836762807754974787135523903621959244321620011374019108873471926103863956328807973089331187280226258948531560808722716229167409062822919213980670013584046708048799645657456427854936227272139782584808611321785410671684556925653257700096462315159251225070842077092382753973708323785567515362341797892762509270457917133407097698908802844127352296953190451387294051795777979047033803316798853695871838602971689982501103836159243021003745529199109567982009020176606542383345890257650201143110478055975460782265092911778496969409788900363728992702965345611451658032782533895788918549037842943502869025141409811459145438241773328562090724592946477263682890272909233409544865239415352998021176130551361858753517177125937634136286645045473657777926467395560747284987069949226976677254648135272414648759975177573475318568237951816250711693369117480472706790590195555433331126625718100647992398121394606353187415631984905946468216614447368771529561592492513409091691287091438402957831897184385319078930780589782921221491495622780191889119024151021770069460773172020713601137622062356454705642961240875698794428441048055788199925128708293811816636180473588728727561927857185574179194557341885622732815238345777360847548883134878107378627365894572465615048171982127587921765971247422159902713515991562332647108171605554010216106027912634889449862261005441578780156824529307828294855841852502949863292749802818331850753632321569234101445951626622796732315076603059685904790377009781874625760940503923433879619369029785847539615602307239995283637352500255558219473922112576968528439184568879982651262824325688920517343310427397759005602329830461972740315792296585832819604671505118502857009238765852538424615099888062313469632207366755540255494817331464954625770748873778889440958772754229945047954850495287067194870351037981055682204402354403003372370354911007055238036122603940642314965580358815509564699269030913850681150317382746665122844235924025465617569519830779340055172799443502754702509247731949990273760092980087942935853238827493953946267232044862626889976372861098447406730891296785968067080795521037221643931302620192902973551382687353306718673104646949735561525260060385406140215747997371941497115337805142632442087373354463557475139495258052049069535355944048539516076140129832065275801588116177708370459413343501321709796173604746703936006132637890914019681955514647782142793397632531571832993092233004002583782200442851355806186595164815476883068318973652999391436374418104095217196605403017367165114002090009653994540984000304822942278288185277276216963702578278157303510950092309654238058723669873008766487504632283001780149004624150328106089834365471522873869776633859267518874223842506615777405521611426570032382264016027571292358198197409566237246424496114420034210590556521509262999981052085655114870853596650140268431815962122159290198556064926109877264506065371796867302780938431073499239219617213766943750787529745881322066279665151581130769336453492656305012789801023277503199215347201630452741285870659329612647684800894367786361240236096098114336035733393278421724161163146202757422557000984636315851105258511373745906244118777785258058001308788018673277370135317203662210812416214240512417293281943760926698166054036188744208594901418431357044476822663874127806440566391561312061571767374901375802946676142176621566711730993295222318620797156560619496024138665292919318372907902897804360500518746692771724564558169699855770401904359357805957950704450494256437784915158295765117922321190319325028241109537626120908249391614811868811102742673190116271230839125156293457469024788637131837643878470149487334773097474416771557307275366046962430668047513805290114593529104418418038207848824795779485999978518199460367775920151858311992983211475557299069841974540251408165590572174439329921769092115457870620632503796869122911521244498605440587362304681274768023375193724206026481569941011709599738325285453017494333657513484094680208843167651207572867319299278266311542188507975630846916359563630532024409029297221358834343363453907659038155915314576212149566612715124403501442957679393884064580717292845325675920000382389488198363359559372252815154851386311680026853991744914823632791902899406232120917918175978933810675257508969668110321205515139542162341414637219364907817331817477986966733003657458459612285321644870603155209679899280551299543021470948980661323155379902441682589484247862432432197513105700959189163670030997253267782646000565388191580303806532243271704771143215478916335720192575282985075576827915018382948675800566019799347338343436854809396616727863808470050238979677728563516473757030743870107450543062389464409689514336108747416103676447349177987796772391790676238046766152794667468451957079769244785453541296270327901300059804300364332206109785326986250020711168081683516235338241524178418698775383264248733092300053576362831221410093648826953205064057593519671070617087237706459445193975767736183769434026271879080289420961814761705833151785617486596368106309322791342429239896242219754113782169859421831470459351873010693569124109525801781632921770342768309539643602931495106005574550018959315010835364438883318724151067600255032417711353625808040120664450575769395022627177320133526766134851531620321794194350630318133366798576938416430270097170410502822488719753570467101259675933562207614535672226973180651988178062864293064115306323740387227468623126401731085808190140699231083725709003437390758878315256942623666102541235613800770287153420657798320610040469579785203955229570277792259075909557863978328337946493487574784466877671697423701543018798806735779104300543192409530617698074852005925425043791603428352649080584662318750004723150400330600995145693071331809135340390652646062082653401695708020409883048164092641065816850549247589923185400409762779572849076133639949773708487428921942953333487737012981785547936184316465433093429887996707612805498227839728889945822771240662347511248734860722399444068362179523656164236001210971193531580589808348306031149381948474857058877999289312819094905108487063147561638008585168465613315054310710341287183367978141471493908047373124580184919578339064210337633628371587176651058611533220516647179682705513760762966070174381288792961622298248891990929616482279475258740959918486683685000047785196125967110761720825357917117964622400123538692092441830659161646127237293137020530510398315212040126526063950196438606144721563748083197654823405041596490696446454108333160115284912009554142919299157768153799977669443418414063060554482299350238543114139709680733164283062276503857912361337683906977569263761794686237303196793905690899576626490390435724683902135992786008186952574470776598898534938765994943464713328958345994803877665803647183065061645221241151504938946473935724893113085046508405638976089184618699623823133386360685261496857616613452463302289123520789551020438155127751092076074573126264051665355900938885234745805411049733302113830266006346984526129161051106390210102245303535370056733506647881330591790357032355848250204097767560074971642455960831583242993301755343494172071976966250404554116992524849404193501492024320550618582943029688290757244272211809254203309836027502015983301333405176779719611115845841784455506663488286865572558339834265409019747236086980115754828178525928785561906425131184315496515946156257281305731291586860724008620013908689599279196566235395008519190008417161834353337884740442974841773017739380853465620840087154470329785789395967615016660659501266400607431805859335460334748937979389427725354685561151945242425456129741153587671280454565739353858062371751103340603611312597313146540637047705677843720296183421696996753858625753161700353619547170527755122465865207248454258081496860383883129469284158371846385843206252564421469718755005851551389494823128852753216149440546856313829482857841776818346827002909673979154361579809731767866200207670790873119823186759167684784285186821052844225083512921749448784566587303029923151530048988265901822214478343666175474037735456273666001040688908648988754900257393169016278342009016621673988544495412908268739336131698283492367491845191712585009028074508788448352476510331937418520396800191735628676487527990079039334770196740771996267007349813253281064730161063073462291813882305173870895668095566305924220270702664753202603786103504693458503414600480459125982307874205247004224851431724934703259067376828807362773702554718918661491570692598278428748075898601220576123290405503200345055374134658822528319345210252210055510736177671443637835977091098295080357492359829662730333225446068152454820007653580959732170866893063154475249636960084663023661765022892574218015625576694664526789690726397684301376017970366881388704596958806368768596403219273569525174030223015666117314726861877239515756652045883677615767827528830949346215692180990629144851663555510070497346818235103023952431951892769549689672902731390692941980187824719375035523846115939079644470684587146843269190623224666789805884885141457773439844273575780657068457604976947665283688965294443005007410147605086823832902959156988311896510896438738588452258012202315125209348873984656394319129018428806591487613978657344763775313188072264071974086726901982972854390984472507818098171403524338660288870728333934160545680620322536069841535304673082628378383459683487540056444574745737511768179368650448541582630878768280897242436398166340926578040214962638852298078984692835755963564592464648196702116308564024439041996565962741867431046348062873520670152953722585906428937679411976244752654532149231747473564814401728552089409284839504015655543979690436250982472320437143246438513276393965160280580476819137707141363205060186681397035205162755672263659253281748334315680299457022650197933351556401507305961533907162397001588806768603633962353578058269057287511963902819501615058864426210782682232277455631742361321836840193939221694234835193040233280694631941110836358895200534292894999071409750817583339916904390088898059916756901726990836591807787755849058120368358243776979488488024594359856118707274866159675961641194999438701074393488659136230502769012691689362000285941113163999400421978989435927313783488073245805142237295645345844507502742662936477377889166344158407593043974115290656440365850252925875111823999850916294959708920612311748359768757270599329119268223507926326918001433518224114945213434995425331630780017142133547560365979849570944209196789921158543411625601098557377692663331395896417493362175704687376791751015838405399017992696390544100904467170349412974016092297773045324955890551291375320088020091649688760338416302905289970525809075710581128533793390834917901911965026775059862092967891244644734597961986782114889458204073793789728987184267448011220976160322187997114452595489855475957669012894274805011496076161841329274869919560057726744455551245852777921634673965249965337156579590465952364356281614545344171303753760506134615121218757357581388293795325800858595972084707828562899119879158635673280062724103842951377328891688240688331917890841080486819312597573223186043446723175735348513567599906844193416503485260458238046922192867959019454530890792941595537308161544449690116349476566539370868460056315325541439285700293651287885690075843016042456766072307098024145660531098486530208899386163015481710862432766742534573873781297300159328118045247257071756862872061861434905663385590840814361912454212222442975975458393842800651344324306230861231047658278734946314204964624607872869531412364635013879891407260539053132970033880459272483896630569123139617281112156393312033945831748362640468097093929433010364099015536585399488345464130284285425316859381623188987273298498462428107788345984924982359526693643664003724232197103171318750926920928591344272942971310448750625194448079981832295282299923720898890339473802735073683999988494664640122372391911450876310195813674703013273537052574264727636924563562481146228179026820998189942179952279640791365558044012317313465536743734601081648152445497093844818153569616205213777920170859256902728053303681225846738759081681931859566090195762757019379933557612598020487178988715703686771080880956947296222920470560636117078394604054647774471053088863201260026583881477569665310711867968079700895673524913808213852363655533547877589571507972444873703072657074312931781011261135421293671188535238280145209260584089771658055627744811418500778133246970236330258692373351650965386114366935688486045921444167510308387906825503870416742838900723842667177805746806579391155154639552281667920332226076976182737972152684255112704076793330183583003683544494418149161451124241752613302509552783641395212570439048294136881172440146507010933263790627003047141808811841302464190585723353177120469664786025703045480670281699550523681355892223972515937861136299854853287817916132532095898635963605930045842587475341649076477753251932577871494742199610274047951551263998858503134307405612648152372426442566255323956546245693731815951433295202034796499658450701714260529122862432422430107291019462542547613609561284266410621352067104737458739815859751300319080796819480348919516194735080453608632722059090944954603403331321048193740934568187620111151789572967585588537087837997463905757626551381575544998924776953287625360702592238967180661228856299361923624537006833909320099824191355151630797058592445810543584472792604829423060202792239295243002596300793512161968864557911538803191563833203121516053511404991865963933437777005036891211296841334042845711928576030118383172660224517471122542301609518301132126564637214306888210619494936347189178315146616121787445936259274539214945702226658137893749475451522010018815683589267286722408473207646605694551581157277189514884075832280273328931167999813039459203821044950722761149677068475695672448823535955184164910834986156903309390258901085076767867835210764676874834678636596945667210532052205979902601466597202156608730552199022211572125816868822733869256290158811584603076357521415585402911155750161480346774425388283136459237623991469560745653932572474206304512685898534125325439872492244003605170912596374020366279171902100629108664044621674905673609148384281112769896284708095870841357113500955701667028110482080353630083405782337612265404132227342067463090435474824904992122148864632375423314611813767931742628092691790993727179014694012874059834043786520934062789480571290851370938459475188484673106773077186396355731570840497998247290354913224706754439387974392432447712436118946304722148660581122467450116844275069731093566619619245823481207067013379500319583851063757065789186359167761335694399002021386655785972241885309106936317134089219159147383825362188752139535554671335719744869423704302221826845692235570218325826150403037154760620893425372684469181394762755917827605557980245527931347962778466263467711300009598257459733731681183289951233059238513500748871315607336798777249482587840900370235489607560162547577396381004107517014905035682946178130087753603699777306910378252068571115394235574107622276050835324025614987334362882781216678294892863050908631161619889249351843239352882665476741163164403488511188218373052666865474247033717792253498500132876973942765414297626020534428103122409690859739814902845344624502281049180162677552237349820341310902679470668498475187278163235936573142838238212285878494112455117488456498594481133892919648352916372087432306450327886725708946479360990260220796931676458457660953835077771315981859522800526940301261983986935003184079792384622551459826072530613000994984808932817731816794437033795755922017089930450923219820981982129310285857834058592245847651104467067501506809476910270808926897318401428657398742364984271154856752922979985431608254462350755239471580602888506635689744956676419188457085901383035714035573973430575183768882833487626498313282408742171116295945693743116037688087674256160971730568247670988178103929916110579060722488591834379234578252347670129364336473719342484117131375095207898807127896607445534444784532147587183941337945234279993948449484569307293422350787455580293390639037866112487384180073321793637199023078317253009430182074069390323028934864581092548235936252607526667260434249424282312284186474035227988002079675352461884274927122181148877361157435469410358422119326832480876669298484251400417592771021263785463501781018437463033434571105149185851850221796299545164710062871671999406703716088190649559972787399462512704947727835303177442551984548162759994773511513798189722291950319675506134377931045198573311658151787403869057945485869518180865819895696520648128863429861161760401317260017300969191082607700004055128180005978577545070251057891075248817477071556997465082406333836039967622744048059598437992525514128382784747315841120131603986021736124397637722814698250528268381420408031881952352747146991644725608601394363425540708881905558830413152074659815868655383993831507778755074000596453522153118535943884372596343197482324752723542649416166483935413079051298336486120360124098758810383249394559187504541273552568981545763540038977216214846522616958171104199787755375847583200238968297371745253952590303129130519181984030452507969234324360036529402023488505873940801827838439272317727097312983356929179230326943734531878728647000606163112101577959156063461285993273510616251751683410412569346223894627169988892976870377506563213201273205221907859503177304323583142530510396501712577593679740475659874679640899147578140814780004772667079168260911444179042619890646587097337710223701503959423725568232773616897675099483916271640644831148048076103724676722475638776593941759742543471338908715368441192463098630707027840593527470234097477889459425614076228614528391158020112269872553470339607309351986670778473580416176853623485428733377743473752870230632490951503932744823972782447501074177490770383709985139742046426759294460085429378588807476607670904604664025750172678857591199376692178075321055790594031478475356222686479558803416214378961458779200719630892419766837550069706393288888162169315243307833740108217827492286303769830371320268741324582146400705584069880162341247666964931240605640341360315622305792627957440907476245929436343882921215519614093683032363748247845991025197208705398792809040378172062159956701624946300010714469007813030485668502610842854309373899313283340925733103288715761302481229312376344533045078982747725139443157767640432941441551502456608003129990159444504900904714761826912575814469926347494676207375835796536335743490606158927524075485765806263786031972504341247065601124673955088334510835295505343182043087700437683026014352907736662943741727051609868380244778961421335995598661932798702515143594416624796374521156639491551293678063897026338040689939385487412175741550908608102288530355269960196850952130749537153657481116355742835928821313729768555795328301780165906609256401336069596363360867586734228681502415614618358032077791200780325021948125559826585243521010073068011724137275512649026798600367372394759320191831345723138544607239971346114712373144646585196907938166127150371674207912468428483974991731766096976231737607323777596701318815250212364265439568293095843955835729336715102157324163384849125575783946753906008591994962542404348915527329649401083505133715168438963103655644365004164015655721210912939005025832482384896823451076198575974550502238548277612847426742740793184686393536047375179298027558012558893188534989923326422271358274409765254678744303067959828822597587159835162375214320778405226440036785632846443127493895600424296369963107278653979146566197903409606462272883126642589441218294146041607902689340933827595646004304054207492151865872907869927857860976219684835711770109962385672016329068229872163203354591894491340174306980101410660774475790078523949603071656504797495671703597723183411760330481013969935192807152941959973128605113126034750806220815235714311990353130512160604427266190840264103596429395114287264819496822098102934795058879470447547140893905424753052738820881226923290605981978627591739970272076259513222631334300673421160817896370704818641961954061366153691423118893303465149041670264996491168924408027331218673567320209264100565515407704366555490803236743025555939200775237873093502127368597972894310361611092284769275942222532600369479677006328657789715699224009176709553327146578035506263741467654683258438078822273899027404278399604807571063210865732558452540839043008156477687108106645598421580038539371116449610444295292324334568258631710945994263123265114210367081251217986561018076381156738512320317466850512849125308850358993800708213588279937625362705226607291942591372774585559448072641717173433139114468639566749559820244942184428219747399783163037251543787377246245150980222429198164557433145476094808706866590180250921728267229207351681211694972496662230383039320331754927460644244337888816045653449025376192651894501371799171919811493884676590286373963125193567660829458041199161569379259417520807846163015829281672530988596945171343042910407629515964541780922842077931569851403703617641139869625917081316792968114624920460963195721862226524674407065610694036325301592582575619470876038925286263999534978361278050166858180925997183288247583327943778141117473534613206545895685578757431424583113143010556671007081403066623373897981527769703030561730027464023802703215767695026133863207448075160937029101848169051174908474555448300149511297126407002423953330663127292500969608690007849464073623796196612605493320535304297648998617792536729365047692238249338758858898504971318672802751880413128486752624057872805589411785375996021467125566883565148957672282049149262218259040385770773829471532066227221583059562835234065028247847052504926201336075546081621938274281123436331254701678287007818386986206410813136352115464026905393832440670064879407170128467378465403480536379619315956611375518638870545273881937424276869388093685761291574589890176671377384012067344716089142368728935668501496398079798530318720599087898592680738167341339910052021855750623439866721985365048258224557659841401604208466902863310658107304667708041780000631743171926276263991350102383553834183764293364630775120674181030359588241396838955436535396645333605829627710519222146516997383858787786346286261836228113463984034955003056592292192941921735220155912567242901260482609004443759633251259038038736308946562126487658500254259753539657206514642151991677872202944682985651574192662294539579960925024557563898582692704401005773161746177559667747732781966269442238731956612291213547416617417362525286296896880849344089576169388338358598688088869452292482769142563206776222005882331421943219225880795982540709827244892330256192295889481173278356121334373340762525637379273158422688244430704462886334689201917334243856965743008933013370372598617728025550161681758114434651356483064229231999986194038520398253240805482510551689870046055802068380680669010907683632016414213057252150790250611986826883107446081747253440800140752968788897617774367317726419523246696868604349027794509280345509644697202737216674651045908056081172303958156754131767368307134565646311620421856624986686132601367147739035044577747554491250868896356493730402755752658257562594414606594713332135369894879906263766304903548419859356658312354175358188008210219289105758566763173012893633208878482388424668591643905380127078537708484493375132769852943306089777996399493001107915271870070062603531277280724113980114306823949022581327389141739499021279982349262266872273660250723239136602365253567679655930594544707851501080145394777628508007840917832989968027803749878860034174563512962622576868885982538520229520762415337044763293336882065410086916960118409414694392376990302011966211825404592701643329011374454484658629189683771059934898820487364182831260812074467328860760903018415868306681027305526379679881432679985021164725950249270734871664097919380372047621726453233642529822177105598112502726654718634257816222774533253384691481775382432599104227759618746844803191281693337808582112800860898896728298211576044947991083378252005776169856991592501398335276421488013994662793600192537554900968414799564251588305336366423066372572806336762382968339053588996959224691560780631235414753989312392282145051362677366613543676593962896544449945249383054797727513463375047661840059901659032093563286844977293848423270291512040769011361512561113932305784282734256687532138505643587307572897809987568184382836553094596673630895661172604662611787247975999451042035897612934371321466066693300506747473729672220394320428902949707967946937050912569802047507946052659925280248911786505874565328072554762935845904434491083623528084358341364576796729331054855733586808568746191252850697114558071634054403395326251165186297236229997183746609424415485239768920330946443947374475450279639738081512344755089206715119920407892152483648322537508679362584090464090956929060347218597282907135948702004642295224367047159349654418723812649028526911792272111171100749782412649909042891059670486154915010369676211313330788725041793095990771029992208949713534762487203422280050102015135906391628619236717709292240563026054277607773493455558113080593862072243132157217250296228253210302119196300598600085115279892973248178578264581285280603544013322683198702929184052169767255265177195388354508453020616879736043429175900517066417810658192271527798050707085824575330281655425902057335208075435346197823252483027988652134853807299688192247415958500644028054847580054301350731048145109330891863350900262787939053479247887523047788386257441196711721046790311446043257417207597367770457889528022763330955093887558773611464584087215722791777291995289291585632516974227332088568256176569743087110111806976505503149898333231458639335847905984775936905333694084951998337978856975407222466216198894070976184903641548132638029462192612759601130503519340663371424422376820507234408125251112960196801078833295279335652680359119935330349470775631159975477476785319712256490952022368875471619746785544688682634165020681827326833616328476914803056161685746588925457015637968176820064463492333108827575742195572728790174811069961195417478299216689675708497774597740891621565593117310728977950298999222975507241398172140188560463422143295546899435341858875129738706259387324442247751958630418141910123851749254070555067954251172819904224185595202846735869840719376138920351446093756493113718800715294802571583719191190534326650085826414152734860154041426156243761037007628201147992063964793081932716206590398822818669861775213853365603424209944191414128974722480457207820214930272702640339508429525171003281313430073531366297777168764373371434521304377402366252948294538789137962674961399461371422606569819904293696135788023860458676287796644338938926504444470531356966767641289948112114260766763968041686179211054256866429114635936373748160939795332844637183034101603715393948986506831104291614178864981937431787733611708530514470711279058826537217565216136581746930080322859633384781900881667991470788513063903771627949342591738037577735674258798570283353606731389394921377667036866146138462717931221820057161046869674975839084325823754523115144628855281976939765693956084629211652532439874309270799852555126632819256480912780831837176495688865212101249670999774180928488747801266524033741202029550532630620151279071289278662951331100783196710719903554735510189923214334107348455249425656242777283931491552212201274350930354579434770721155581340766638627590077507960915616747277298884122191595239660993012781290391678555150277126686253140137167483167133509851905130804599213982257781454521567274780701204213467156313737465018903243292171885946484824287167904439615878104543478885584365912030682203949897327731315497018045793745363248059690434812993751478712709067404225377547558380760497364336776190042108010918342143728702293815836249048834287598972675726802819987000873192525819041561876005470770665303154482709225001699440454394451563020320884802218618157627088650568072948348991554568679646467996491627405697600595909804009898581366631988415620228084230854844990598763298916257096528142762526800627256075913640406112430221615130507114802407926335021166026971584804811407059801020049117954129235578648880057683283441960833668130254611582408691612605233770506811373120245003885355664890896430047697017131659062937787034357375774221686091965714882757180572763549848118094335462492078077165859106399506751682787346591908107909886607111831944126248491953715309271728061333785267126951435771859909688506732889942652886726983382047612676149860990639205187511170464577217966453859851759311592107260719632222794495026966210371387378984537713556752940954062735085495772610392202618747145082255098510190441250094571156314837702765942450107896441953489453748717686073240384842231721189284883311424160082598340657411775353848985372933968909643124557972666656266496245385254202621866430909597123459617406635063142976731887840017839368478531498112117596739198785266167302148014118763002524693065178289609259686600637314979350757431285780500730300973260032772032790871816739320518146917405979675932156686820553632242276742421858557553243934194397297794860144596006078654848164990851498381682140451255353921424832265880070473038514334708840244071316506189920545529889157396650682973860362352212812773004746258468656342128143913135272664494564796288097307031265356656828291925273005609595586372062209133186056146322452159000809835185736051030179212108157058656115173822469272759890932481514783178173448320042819141962879102830300413590416382614418305071041706837031581430238249103559717998955181518043964152802102787309312692088026371920753144853982502591176517809048294237387143155930465816954623063814547654820587071064787409007716372930265288065546117728185551956949632540797744186912676960248675881298492849197775443990116050386797384686066266565058128345807803636493492695289545520841248554692364339967844934949395465341606209461278375268539855122507019811086038444942405483949777687199465661251867482077413728475058200419934591085431680518491157026864670314523383450925096374529623775138130948442530269247917313027328152447768534679420658865355936823082080697947449291016249337520048900915012083281700896261867027828034385053498900448353093678758795263909152254983182343780907108322803981791058558174785246914406748628561869576767681900189882301303299018934042272518347406377607015597115901346304656616551922116845212877998933251796531268702144367362835482164818331420341754090190479420224955013263079744330971442207385408432305230501963398231362753381044556517374502796635407674805917300847695753981472626423449150932183098490665833958479774796681025154481474247054255595187319249040829121407148269476798805372264731614065000064741197347651880035809944587807162414706018916108504639438723271292527097048578405168922923765567497713764511705019121729334311205981654670986769829905834604911188926428063691398452436522774199944690244161068568871444730258874918874000192600917620392808247090609838997085666815124242036711949715738933908994652100523536375605138337113413608139373230144612218757621402394552177561066472339445960708880562269390012236178054349288803692742355636084965995941976796307968397076017121957530823248567893212955424446103506956751433741304569601799857204824918729166157260507622908885186099634562900305725239550903049999797024532569470436454049836334047647375214985593049861559392506984394358438517645121399992339184369880060368482060574496007727395717073802491425441556491212148323050422814165735410634226540287741552744722151118997262001210049223627931616532169526182456106543091669485348979163916148267635257297652765473234444694336679435562855390493751604461395216175432997562563528859908056386597629243093880630896369714497333255050483350202085040039995956448058105937247920371338389900742458160122456522542982667718830590884436587941956548591958512041463518422579363151723384883721153784888118558997017829232352939391701725660334763373986899082897194572525040999885172995951811195476483046593499575383224312386128306571075280817852094716953982598787759922030293100648942239120098527861180035338497509063368346076722450477714679102671394623407883991020101619558430466505918492872571833523188769643731199865789353567884082702271183079175199710097068108026423705517595276609501146276089166432691048751820012820462197736979233722123982405106582909786142545612593393525941824857821738590258778933812169755587897143196736456535657196441340972224629522642111482340441605446318693509611035072319114018277456047931967918555513440651383448421598323069389237928787760636429308180972538758186196424821487740169456203793795345345519017624245387095190213474657911041575995259063729003429727117811350251649815048551152213261917821526033388507475466159109575583705796851670432239495743034439668374813067936664873523221243530931885614305324391205492302451672593953584696723084702795554069145280042320631320120222283554020180225715208335665637780176032468011594222626931292926990820600381987049070057663020316425137309661147526757163462772765707033063427115529972147686840243894798427405123682577321176122513288250185082409792610857365294062095181864918544188194774008771617956893144359685655774406212912751879059429695053710025086588913709562112217479682040943642466168832847030759421361230325210269650219066566345136527766133693214390829420328038698355932348631461999829754937559544141421597416057802302987880704856819558845573408402045875580668147181217234181560698981698067447930344420892377578124911336246951975403140761904962849534872417011200080190745318893085596492172722971295560340227477454890178643605132224125490560019880418816361850392295660624044185167985040911278544909658451135037628807700787733436656350727204915999974814699433492065616504698990712370448806095849969683033157521940463451040376466314660657162604106670546660937891042669553416523675025504633393295710689254677862205468927869834850767656967215713553512695680881441300292591096258185845026639669325860328932001867456152679145117603900383771573737633079686218174532889610603120129412317608672539158162823418279195502302884167007700915827787666702909514980178984876706784820439243610582433460284707931800521852192653736782099658202957194439207019045392730751905985248351446112356254621875776972634295079540494934674728636823020770523568521235306807625745948074641797621302695561923986277076777123093700528133130419031440843771339911873150232163203008431368317213089187345602785564772459711965298329931042905287468467986190084353635317453895948835158842596807638116287166148295637036558632943778634916191561997848115963410998128483055947974193403349610314385702981520821961888244392835286668866427904056810565071182868658993377442717455396785215568890958578450762656044969979702865354210355956524203669651333830724987507368719553442622561228606273423864090257832752135262570767035912063881844872443577314586908157597680556031655509710919837080594161317662202797862646462796072548756593799946607039944518735731166897912549858309080718521268778009949655644895635101176653611082553001265469794285741484791734995441617456564108859477687110614757798769867500002882125872465760627243705377458699378755412425838084194585605992906883652647700072135063127198351077636189063905938064120513825702365810934814982463248211388908843845400258928938635537273914853437562540069334214219181557802290979010303493738232680472920633740700233381501312560966688804671878642907590195393876771257573743316758825689738714638823384983101822417376940209735060725999722790920173016005199691930280795799615561203342705940923914563785656366861438675503646512270703191760697688037226358718204131626905239976002379110902512237384820666056108135825767871647100020419758191429095098756698745271570426126789824365845686055322788733570445114689000412654243373168897343622958376881219043127701749969686475967762149497288840780037396443605371814995671328438407450050677993091121475956026063494863500689449415336213844540003457560242731461104323340322187980524704779664435254744097127141629200840803761636938035669187279603339508889466855503566320108198786845232739083791355419320482797159624560912606119974663769697058160230322327691769104670887398667845191865341009945031686391699594958377131543518133164090784743723321318838057458612803793786669605331636437386944737883903509773374958505048849269252822977241333416584068436932691265613431273152571116013511044717335939878919927905029068129563555189525168330098538199677546865543514322480991174269121975912824972809575794762015781023532517599316811547052257521300445271703678731373567091162563962595161535583481181892375617743975902104119099447819681064867438307169974537445945758216315047072404730236115150448722095693473717545860386705732948351780077852650659018698827901428756478061285148066510028221646868716122097741182890728074595290205741613596783497592227904405446533711459669423850628059047693710550620858860653344387471011099119191005037244820441946387124568563147087451957838797865790666700313079485797438953693920104524563796493953975338981499654708472919138458641382056935492748710957816213228484853446923049183516884000142636664694878295733972741610777270653246671778737771135462049413369427521746081016448682909920153646648508936058021780049848117431700357506639719347361469195162561807875295498916680394228601296501565861612106928725483525179937639232297045763711461555950319570057239839215604088917332031213458876856122927437176303137701488072331202419810831334274104122080114247800513385253981580023262375763225968806020232041074881162130751283340268354351169029752015485974612765160654657698773116240659755251746171050652975603722378593226732644917256676527700454261026488912037216963961605361394032198873844612196427703000562290683367181922073005652764628615243130047933937404684232662801319907812933372672968871841753748944914052252949483372565445457793534117791409024203799368890832133242345862333472036024070825464947962739456211868134945251403239501544363667106281842250055897508832472591188801826923213517991851885770351979376617639885890184002947179514586952185816193049663447886059717712578608740138879674947432130969359720627781188904421750819941355388351389954984025597097924839105146251977654191581019129792058321739291479710822367924211927016397599091748196278931807280345302976090328881442097912849700252192284940702395689839744471415153775460688391578614788313532459398421091303198721893779935240564481269811503764963425262413954650953283149209090542761566622656980908155962907620721834878664536096776323659114962394099034444251005320509436959384574374742710216301849309562775591220153699449570726672148325502529228748137318006391260782499850697942873913889962789508874136665397824133607808899519997824088312625957735992516450718065942368034057873235774269705628860779728034566279771060024505703874924515276014817361550597616138466752499795722685941026717917981970792305904280604050217373491942547620007602788991421350911512890403127691938404923904007952474539210659108537305578051030457397650984820975685434378624183944503370713751718696830391198677084223214879307801553367454385493129894799833426930485551947555078866464469546117700302708133916600817080484096719689071984706288152020541854277990162804788315445312254908887118213723110830012377554944332642001123111150813450935854151489744564217457786448673077911921486047668888913374914092232814019483798354263415295435365108141591725416523727242288627721178669817040381106603674951222927249685406001372317997592861571315972617341924044256417149786553415058783462483823510220610336944017246611416544423339843678045690716778884539092626197308614418498953140941932280597902013860022713250610606311488010192341767348296967881414011834830832134673718395093516015604619663366658153821111186564022632894929476554134838504195056237448267290664908846440041684501658801816591289825658303516867488634191872501645935099588539206678254822920766959030983565997655786478568458671475098754662294583252056743544137310225011900888727682275725014440232745507709768452048993076098000872232076372237700126497578547907670449154185813220443643184707469374396219389029506897293451515799388723212739409225639174073322291438721430603101796067022998402247616329781356999735387566843636567635997588546353296350166187236370582590907983085116243372971705579670977177287797962771716765855638384644842174823657359469249235426237489525976488333187967778743457493228947401324885038364865953851159558387587764584809491298510446130024142400779851545450753995601420246893984072517548762360751823722666395144932054052128089275693222458628346307480718068969037538841353583483180925011810562809182357800778441191985560548359032480194201643808330916423774449629621511818722031004670824121516221304318140559330574073456705918370453038671506857327643890097840031047882077059685366416870864146949327681606781665581488388954406773016116997653179871057840173758051262177191706207264782364173595761064896111995098197895869202163172263009517390150211113755766881113853605254253113825670244698240277721572623131285676241994762202685328329300406545210202041276798042826165664523673174276202840111936676385289546825608788706453378585448116156212797415921227509504357177319251748478334746296609772651638197693849857221141208829010749803221456310392454067470925787562662972922572081576475561432306421973344264801002816418273869552941568949370461361009960238986552734010739228094859533718653748653166250510454914513910718380722509725819956412292189193771516403081234420772793238962043810387127174872533154451515122858107737837368011254871426333247004540829843244971256667033926534778125877566367799050560934697711651206009456717115717473886898588483359202575511959974011216333588088292840633879119290558073309449331044798780343534365984217321808765567226643679675266656083052723249164226617298584574220447660473462421567107313430501196229550111378467403883402826571741475461090239771915247414643191968662576454227060125054247884418528750584573658575373105359153224520779794733446496670336796001979907385747061702086281881474162347524971190546264319458342901181755501038868007457634293259875774348413059618614146088819068978020307602481529776465708717524754653841256092999045957332283941568737155507568966550651079223336000490582537142633608071766067758734078188137113753581955593801238888261390754784652946348624798447544313508098008656273355846827635140774839871645852891492403768165148927817479271305125117504316248096618089816244207058103442812829565723700106196148056759023292508246094302043169013334846142851325310489073415696373292483483279915230339304336863271221784340397905805878822132021370799130695905209605545927586544471007451661027318896133575878853637252849108627986657965592923778589769543569535206063762225809380243597906260440457303670730756653814440684422772791867449967991853793338557289286592904621084311651701233808225172472812720112115440252501603009699210354174964282418433263029011032051106362033008857709724820087530753048380262515686245855192770242164033954504725791883998784673323344634590362168122641552020822340092840227828147060432072146658518004902053808037500669504815551932204102338523514053295273801995038973728866950719361143757610607645437478105885040537984994645151623670348260229912371735823605129727479905341838701167084576070732970347484922890461178119934229362324842757182757347096055167427065888122819960056537194832321706191008088614937299934031899199273971246087000877769297631266438428647360128275647258648674184857860577484332922864797304444816965172470391607917866737054949742989688144937044776086115825747434907074193988177911315797013170547030340653057712908503921251019335695150202767643956442576460362091318352978051941282192139312462131335120013240263775250372760895569900339070145445055323806095270768507856549441264512251566566230421648223939837060348727910463911022852670430035319900219772123990159852151476953555389765805492069556286443870953403385228394334878084777662463833804655606832449818944102732469293696190393660148462993550118883863729507884599600660102598777723932042089965485163186539008962487402192756519073370166593770162552587362931186343484312142943941960579129585420590182287570941920799197863708841124384161505871905730607162517510952125487722550339591221411655992444841328050434812980438100896591224953008546090021542762894828150210312420397193577828950547023220297392929591608360852956795240412874460869136257083239517433428295986302794550438610345137066464899368708874147190785378235623517601475895948644788235888998996607631008565402204365134345618967388725875975836216892142978253510017582325742693908463704281264041911196424006375197443238624372728112900692090053159986599070382163067977728772301052401778170661551570177242073008939486420339621613479333552982246867025205603818254167421962915043328596735631635910947542075461740090010940467516619090642040891508674564696796099217594877041949672298225004489252751723297143569444438164524023145558756571668683483258956370732680711694294155478639654239744375566832938890871499919285213167429630164986028558029705554130904250752934225311438720537849126600092940929328970953693213136250156600819700560426933251852793436625160666449379428156794999322106581368604203529821690617993601322339535754481127744678182190959484675363256475685134319704369893933983402407023254637495527020274814107211474797456534274167908745923506062757984215781143113325022322569231689823387065031455260671668430317710851775545155914901851393216321888431974173293086002186406897772244775956505484265611061683395244795394760039728286733796467410066370080849780894029147072540370864910035166665126383232188396667520396161658475400759632389455830331944981204331797010001434412869180027493801298882726749641444957782037768553499872474968592398687480801118049212000599912121577558760331606842715688708939924342001706772645302729562827832283574611635519480011072215778176831283571285185500089748505104049895036944413255702522009598075175390554828897014334846426733076696088838380431655070495065438432715013998181801635702766994564075243397335578090586713359596023320368652980040328449535114189966000392493039762669919068521123128057689779306174436400051867820992029250837599840233785185864314126781641261944861546371766942974405964177788478018283798324947966455314835800222090483991691741966729936721861674362627973353490116927620987709045895557297992909105281511240957207865523809594527511279483198375635953883637069057496921703775851316322556469454434001684653612928663258202316721555843590242132234357398045393602050496679317211921935127692999311118935715159972357153342443090640337656130479260028051049181186276545511918334897423827018757367315065640521714511945070897692431415221230494665595175017932466607313519516068979040189221600721887203569774584701781819837333166963527737614364260324367380969649486496991511443378093377936459273869745340416516100465154861510406140957959876683598038047258438935936868041726407166462340135308104427818082031398320212168132404122507981052468222895803363601074561151809420938374310736228706518460224800503593518574169820890797588707460486952125930796540558763088265223069737189077119284052534556062456449476823600819290417238730658224425212187991470074400284378637396856307646011555794187748716352280714503550545271823697554371735975671986662123342607832364971154635781161978941724898883430348020168984440690970284407597625359796326139002077694633555346612478434575514493703400586761931251157368867273314039981439265589176932069133212963669363113678254031516844639207988283597093522705351718404592337225424868920868583830392553148641534326574035027043651135407875166330497379744752979201153767739299634735596461729971846933038378664265677055268892046177792552848190204722956512865084320778662548928660936407169355678197219741363224479673125661972538343558583871421020754391439711083785244828234528514489977448320659446203164406991285376882533411436640570873384131453796676612722895168374844956651794122903123033908737871509667097041676843691553543341546624772654384842078291166425093735877435809022534834289066275699654874399323180925579839201140354568111524034394814164533505729284577344873525441519904102733742165346280920657507302706669587850641343515902302973810342576748255833670438446167628820428514858381692342608707505157858791168156057838884050464467124118949597697107910647397330124056684472107675703657529729597479909324469191586043016042000379560433545192989879529594572982016825164900726503014486769878092676554370005419637948715284627175813106780825006941932784245674589445457407350948167572177843821213841584598617603259492455729415487215615694483768331888556716105957874621016166205459023369411859798126861225000843961176024792536991276581729705931518520650302569710443747484067376880976668486702633013634401085342169189878189560711673427385416516458770826964810758755179236992334010864858332667581425648880759981966688400039514380799049844657299578700228022710069981115557989465224515825379090667965234902853836874399697869589077327726721948118389110447698456048911185458721098014743170242478270624204989820864843504293765945033563691185800722479850649113568776571004463566082045002448355293881502733872027158292527251013857287555881044881900612741524669781260181355813570184690459254781903117740466097175151806783773658687129722024731122869486268489755235276605157827928732281818459903090228445350983880231494947627729091050263511437419896329802374179273072074852954926755074237739671475017223988881855109838870076810764895093487228575921067046495639304961681542937409349894235856829404029893408826558700243656607878264777531666719874233394536221712312811334653104565809297375035232183335754600525220302727740750553129863145156226192700102872698222689122882585243191222491318085894467833497200408239785079488144529366748270798819422058649204885951375970940137306223919681114868008344036937639778352168684678120336399989072330868782000727006301572765068478705231138645411525715720027508823488886204314581777608176596226373920552259720011277369396648901153314995993515811019261612160607283072247571447358686804529679893774064080064970401427917081184980401088787691397464993575722380022867599326635565839141942583769079544462229936861988000759031241519487247144114071155155926396176974891581773006234910707590920461483983908659715861339125194639666946952571539893472916515593459134274464627713192013983140309818516321745143910031695102386621742036726700289210202877277917745735833409822020621870015935789233091008772718258551083845318098484750008354859260771610803001482185619892830589068520276305022737735231472972868232038500390825372094050390343951732967453151789281825731085234344846555544483543559880550561406841353786226722081908221900125850572962167992357404292125113138102527571203773514126259724043463784079597741127439489039401740893349993176093200034912962820990741908678566171483883800282330190503103952914707083305478812439019610186936768525963134832297012413389798689955834349807088311355074082740014638596524704106977600785724731897021343311926655015161861314672000734232847184054834886752801100681909250947052207857229722691110869699147435205796851165421745659099666538903345046280373288270722508099169409667384918450915812016648539418690208933385239917056883393520622058409506696405450606951080197764372074171225978799683105173511276550663439465312788623802504686863820964590717323817949719551301542375531791919548907713062082944243841498989123222967695437910047685373257673777361758686157461236465023161636314181822369358020666007333245358393619524231542139159486689057263131085580244644490090082291302546223315930875556611884651245547688558202225782957978525728780471775616861545928346083454765023931879183450228323488921291955749516770557648123843522210115624782236410885947133897049491746443130456348604840343562907222985776510957051959374125890990342462206491981152411096070140371287801490290561728973319816410552153560734930109110174232339309542483948880938124990086924829109693381497692363655981753826916462100110814119896296192616493439908131132310516010825224403801767680129628376005193913554639270474556971544197621064763101098344928740998637539072780976950972834406673310382335041104584087246686819392860352595005581126811984660003517813452717747911303681127870876061913161927160590240827676588048967375018379674452383737063036242929724320532490075727433341631917326329004860953705657046202600862504752188730741637208170144965053279975230468021281872843796608990033307498414667956506113446834440245067091140656233182349125057646705275405829677854388732042891067384787589159822785708083299723123760724383050592198161200758477030755670813168469280710741544994202390099128981841662962588374746923491406998684730988170892614886690243073708328197896789855310132966311976040263130618725603345703047700257425044534359606333986041596786558882344761106207052830228827268955054148520188028193347251797078746696191696406936913397143744147567782259328963520781841306660713566419935204353092057777255876570077960268490627751744845563658010654250457985007794800052764303625009351466904448429657570438466202776721632404841986585243223050503160035970426511538357531973716884489113445311224839309397980955099979515150972722911874486459214528152551118214518997133560414932817207801329696109217214665098227566185785720580912084929653374789916799824762996926610545275557460826933363017889324309843849469067830672816694293824946786882752588593915964233847189473678968089155323532573971903711441944819610755303156072839585099345732376018069618859428253867463781922364328446141618753366713393089122290635577707598240795355604481234816120219812410076595564455762546852154050258741080063146737102015914908071331474136813957047809615122726863114637624824098642068393721342612706762739735356828098331924767882021629048116134648977118812452763490308471871694581519964305545539590351153512428699203678475441264138272748402467250793294165372522352129766888600393605047867385036853508955287415541289887885661998559584946889944058880834491710508574806253568166860120531485861317768031734257498548553968825183583178167872845187258350965597388146058039027161092895273710101344158445689970054577846111867407769519540351688990329403871388842856879337341871291817789077917106637531064398703524938339372298241150833296077413111775201683377043891221064857674017389722165656650547109858735280762789003666529242847363847277352940827425738766190482706440977723449426276205235962246058033797865521955341883174133680101909274746550799642464748039599867354922225175888981263334452819139534788111879609134091167548422657421811340711450168858461610334804181549175387311351185830436267024051005531350015736701597367974980732215610013126109115329745890497992474198599499789637083462237737478821652938322355727065907798348229908270620482232299361234198115984876962610831156296959028583129501182488392154331968429621504688265429453246762019690453930501538871647502844005075031944680845920377780582746716401366842998649999528636669285807246129567326198050911221575337972145797105128080747304594832421129916207130406228602708722710986689696002535261133726431866198095958110114268076704044148412274546611396976939176521259952171503891394975783116415956825238237795564414198509712549775708515949735857871196911099633726736863028419921992412279527349838308007528976151140510114023390111631829813985315305521411928753717496254416470535212322311791662678354237209783250008287209736658598575396488906114508342934943448509908680601602275224834694402517721768033320110090109270415630755640803641634887717673944481674265228070845514237083843125453265049156001987304256234692798489690448165931714819688305825877559687865688439295606142559498148079085795995010523153258717865391719745268135459266210953787348055175378949017211320249808578855243428476914176273821649598906759782842135576538154921660209796524533843639280207154345151881558798918878572877908183198633786202024078709872534597942983322962946441932910298047188317491450214989061843907426195541326224076111858745564513956748412307535924118013586027648559041477146517451592015283900839605316682708231783497349252561032533505415082898026028840682978085119361204100507208333977082865669423629600590564777105515371331972051101483912252454395085229967088527896252035037304636475264910772781914433845247973494371084673183441518574612835450562783444423144951741132358729054740951732308988723869405679703362632940808701383087607682047520873148714736632625069603138938515947787595667164294478013475745104021674242643370297884819198768937827897842313349265087857608078838087104992305010702616380117173912092214476211150220250326035419274438075329783809431934547086502371674689718602679211583206137670815963207938151129020643891780897631951616576517760545993111717571063648731656175132553854025895745352474160938277764340288481263604426235975564822790285185490727246917778106066008010887355743385117701887676856629525487568266398803337550529063792014209814617636160410891445404747991770414404019979706372864360391473760156350126174743166026902310472112798731837344068185099324855280238190078536590354644404204358517071174378232125046269594353250325049651940390667356383993236866309545549042668465479702049387973392629718205093131111492640964354840436028974645273611539056007431522428870512818962190477193330586661060380739325619568381863420244851128404549903949732475562576903961848934629400139996805848394486876966148198029878619863647936185343250213785762515221368229325121456608652332663546476916871972482187343804741183100207446255520224693293259614095113676293655295792242374689714532285233477374044748474747708336384896024246430336231569512556273931328842199312391794225057470859282850599264704518477487373493333731718027961567165867944966258318470995316163384453613134038644029498258620847290552321333495191677582028242714729015443285267286844144508307096962157620651385929200672775050575405082845001710717173019402901522064626774680299119049712060211154350331191567011090236595052913254016923971801783200678513616623579438891250258642185494194431839034704090338623757487798562629604184348669285778310142129725229267884406708418540698626451996871434138742184605510819489724913038163564291077503766511695911108610121779421089091906834541651910524479169266841225725494565777094114966590457303750766677638015117014033886597095667268728353329401489880484113163324080036826469634406331852164743947595385316953176459946647532930067335655617445449170576507676432567805116447980937508061702614333556103684010361993114178992860053399697722849264179317301926039486008533661067544403433865059209369327499990175417817635577386605451261324690666193321465571925159305408304995535134391650347972680857039360266516135051157826391089003009334056072590108436865140179160458739897122034856346195826705242653690092775596257929179979813542385782642203540110190801409049716632216505598849026542205016145096848835199751573923099408808584113030618465422194126242300823608997545433259597211931616389434027294602499261699911576564359776763828591551357939957279711127697690219510200500396203322332495292898863083710503312575472463798184374167126629556078996295363158818979407373814174682282196480533028427493621652869314483754891067489368199383989133492111441656159405868476631322960002540668660990854262077027240748109756227258938691253470042879333840262690136484225738925324542266627111897426030044181657810495166117620773116936644784916451100448723960876814087665368890862465200057362439184529348004788232330813426274946782077774885836667170550591889578860142164715560312290824842068404633099671943054042685268480866434849385920831471265074463249496587130814688390564311757860243906918592019822778339633736876752371592248827353408467800954009083909899743518938598585587719542582698669938008839520311842416498030457203339791833521981069898336384279726123525002883284199071290054797636141129166864439732125611200110720668344236924160954865237213147844331446387015785257105067514344590695496080070144172305220857610029112586495554754298066834703037401204697184041275439928459827332119626339314958944452113481719406083152947503890041820036423136167437777412207074437380202201331854650764959007195003639087114126275483286800401289075101758201494364227912883422877066300767898597372106962212632925796564418867017384298022731742967298489439137284653753183082487854976108863175325021764673671623328906391632240044287190918035304283015562991354161603593131346930402332097218796214006512904188513942283838684788937540898698231840683864103092949518045125963348063857654014064320362361718547532261709133299288780482318237351678142512035848136842285231914856907882263595243887796710043801877273311837042079329926500279948771416056718157409670628409654367043817418830869400146173003129102925737770200768369752580565655704688660436010246610965363030169948319561214744631032876288604537360636106465136046309971167804543994295881980070707668621359766270697120015176865233919619521771998458907192295270908969544293303724763980649917309267371808061501441818836248887172695257282049068689830090523336514547932276907966444257171326745268299329595956007299926476132723646822619803535923504502906146220573723662432309397817701068022061653873196662110302942886658819122713821554301806115995373162346700638779983603102564898905080941864774975230926994548880469483677985432138461602721573996503842337523115614402547069799973093122802940930337895739892627846583309017698396637427270516864969468845162334401181010173640424277476675269910325042613921984016072311270709529329551170797428528830416387667598460091409456646914349781246412335363880036552023831829279343535765522692735431468152079185525566348343743915516972599390511224014393317275755183309960721585199175240799708496437716276062202425663416504429530972832970805086400807986799708942169999591320412722898252000258920188155144163919238249218731350065663173725264949263239324873757241921353223308746181322829141522918783187659970547386476565981922116908394833851413517559799656156200685673522681230934672234252463166250590383028678077484859387463521635114275595830585493917673076100468362342130268139162273793103810085561290289076203329896166617204280392728940105213988469680089382762722124750978273805726024169333991012691980150461580970610720323985014433949893239726100578632487751728245443023580183910024002078101821808060347864444545761975987458897221507668594534950054944080001697408080348618102261878416590748707779312027030621595052253436749103140028048213885158795372919969082533265639506402864092711262497502303387205396090003885879848594845466770242758469678280530438180332692342400692447594984058190049994066429957815750117757204958069053376457116241679205729936000108575306063090179204692007909277205716557587132656836762067619416112180270717678891641880428139700737451653745416404026530911948996388233213174252715072811686867389150806153823173815228806639308473417828182112051651140491840882655967886633814586165662537565095562837895251382259657016532613498447226091671166425477671103034634838853857203334306779719137354810349802530692598236676253836020928357636637505035376274813971235527978204609096557644487329244804075528300398542904819608095280452071832891545995371710801964200818064232079551846326723434160968447013299750861231793205730425353401641336201910792192802811470132555438882237738503826763196877843033427668492717509634364245511655118800845745829237333533500687328627219345272459422408789427549822198161001016050939509597411897442428778872008272533460070743582670274922705253253086041846810571559646976451609234329706748142465417280023309387393745592514152619779436803917970439833416184351210757341666323784996586319220983622221291833343137423602874689381695428023108632410202927785419027812907298039068014871991645499345447427025405374803795679875355937472922007499119884172047534381800195794888671248658340632776537860347975842852491009783231282598966076667435691259877559567052434833441779936298878504123203918669367343920467851422779280502657561777517650891704886104212357000286302539870364016329075094987650215831768870019420867668191534233661646901912277105957251356129983923374559055854944073887734193638150187231277587779845005466711092453693521843479325472649286214675407939219426139947077671228459065597740672875813623085627080096883410403406354028557116421026188022162306843024200443380925022541007317410330088791656175413916459679845215693661451774824025702308633133017784520324947794125581682134891218959313269844087434975912799940260614820723272395302547683351045165851862031473137735500321563837422285926387056559153301341702551701531879717472025718755343130735024792976815322149802845834540519447988635531996581554858420515155386080427285713586623368298439891027233743928751365993602827878078967011908442246355808626351147951026368175830530309384046238313005758986631294621201693738251213827569285386971239002698307398436069884554839527790040444051588486010688827894919076050102390944173084190591369698125392207393203560920654292399313384830734652051821944136758865999724534841208752921839699874882324681286842757540846538873370151036838915247733490566918507696285994270367786905842359074859070923462762714016335356095318550812635865370752396937140185455202389878258467428094466231837121863653602047577056040206370473805384331387938574470005946359346258440635372534903274457101306290427477430270159687047165155775764053451925994330114406890960516045771558453103931592566692124731160624444014157526729071739229552850931701039149245916132350535164159928489218657148468909154463027230223069686099786165331553386835224113978883233541375769493193041783578912097582413285172232930423402678004362965938778255854137121600755004562234857100276795919240717634595959387522376253299766608426021234958747997381035562318943089399092665366092452917264526111409444233022596557545534945204217965212227088693833941015486817267660243662975828305253686454698970928585671527627447226449274102431968353013091453343005348419270090381707131074366718501305328416811884470403892249956093564192554916393900039159359027186866834483209101737718284518709966037774250610180084624369869145361649702491300556269031120623890032668945611500026570301405174629905240155703967633111877840146013770373615176029627901128545607088138625235093897850734383427035035479864147964000634177674473661696865475728714722959520168990857986208555201647028690240867874429627394110566302607168427370889002612540775713236150479884238154075334538115972338623903768032370840551412867765191470185140236461411369618329797870320041314010314143495201273252097995807436772310920161674266036185683597521903087191754426097745819624629947239714221327784707292518521098534959209887502465328312253874846394409546609058086701298346536073399817117279766487230429845793615811073020143433655483407678376051623747078070369494551458554215056466511500591876637612841126254310996047191796237023458756934881153769418406474986131060337380366499312550780266215643459922782427006897851501314612483834108749540870665970834813665612389510602244138140715697322584971082654685095621118428751931632910740894227237072072468254558937750688297665288314322968356497214252287034083576577907016179165047486653386020534491291853688308140657319350332100945676831207310900054749885396282901200756046318898302573827940867353684282916183226906605025099191952959206812444086060311872525386507121852613622407683886072053707297754102647191899625580227712794269714032716483721444091162848564646798619552375705027450435162469907197776944803157923340603005813712686876645194825395727679183682027633145501322990488772671663571918016535938314738642065252482617016273606107972285018298528084074835165022799864266862874235687940031780341112192001473510945884868566904809807765194924587101711706328603534888512327541927823800575451759476279136010116079989736264255003207282772223735542476885150065593785751400691359530319274425170299197158467962776115535417943245720130573583979337487188393807817843802794979760091866161137670819367522122248021744314869626803154110050783571165620898828835469582407732462564477630478652246885339297853627769701076373413580767728829208142063827601065582816790372319610872759241692992822249722461017717221125365630074221648366488099332575195335218998077049814479232227039173347701083203718426540924195202064330789910290983263261127174323503823493231026925364047297539612378706702944953618683366318755897376473919671840964623083294423069990417684083583243832377789411941818411937775617070133580608756416829468831013823763372664686508326947857378873151101077206301474971640264950680960558044648874653871745332366932503656676766404848543195248799440135615708435132111560627485067282718110418261682059978807224389382408205500166556604358516012439904491652991166749947159161077560236982714900636158186854619133851546049115183633381504803517466537566259333705226326902827895470722925479598966785547784157337503017473168185719807162813323369947131185057066244937799841184503616059859959385006345370805111695071399445105243020836650667271199845154600644746662469440355912152167113812971147340065619972610945797740318489780167911149609021788897245759572891108736970088266109859107854037397501761101084063400456061307644771695500787825722199985465276372900418675335353428380963772587214128833105684178228857389844860500865987932904662124100102857838604693570619561791519409201678150260965086927423381032675539367634408256526902792832690059772401231011411136846832319597360468651552981908910078513996237869870156435226825190632099113197285190385917980712955057450495851505530526077019418553342085026560827839047712338763240853828135661735581381500564515526033649392903330597552480588522932203821689536291320357436138962835037163741082655370091117094734213120503036125333299783216437362778947806809362374278911128278725765117305880555938041920066695254248707824428042281294128474265760534279819694024161459175438230720062345765822474207387186767358354718625096482917966595177824908208848873618618816599843598321934302224929599738793742576769378421107648690329972769050852521363376223616636509855546856381402138698567580478599976384954703883995889796822054366008693453963375215814954835251714328678350524109726950763441883163471667674200136636370874282269526840380498583896995759795319575229813080074413662202078966300554591723834080594726267788112366311308588592932426613125869103529601833749584013947053482892186427978569383471112151980426191252455760848631220277667633064886177905126429602386650313478168668766494030130747998365692506362762888332086723822135381690547591911002268842980946795955924289365594662950302687491641697212049595235463363917961110644774248723488369756512565050614669275978464700065122021628230585494638843412934210810068308885521209042582318937353072115115036246559116407360567875380642874823520182246387450929551014066398043629814532984042148716179322496094734196090930934083666631073722345834913066471790735207485542384151457537891439350035403182348956760675893948813650073947341741552374577478981114642696979962198875037427172899025186275597753330078383469548653173018344700605967496830516081110914108215483268964124529501639348340248995102282241622599019289632886368657976842907105251473630668137402555254732463727053112136063871533375400384656554845940888452135597794645983998683682348087733930563438695851517558461358477383463565687874847970129977142388516050180901155944915880501198816961818217215643330387741798362414450839222724641053534288356191070540173533342599071547060932590755769980579341214465124537469728966654873038922443779912006202209144867921430962969813739594230667573352170058525624165186870742128520987085854416640763647520987474947385884394004628259216471074383064169065199350854375530323294135251771512920565834178430664140239188132600113611706892953088367256224670794618985240561639844074930309069176652215740448880730330436948327765047317956661896521628768852743737763134452414550682533347571785224463474080242607831700518350077991315001668391163096160836479245434477715148776912665182648123180266746486888655138033170422212713874726230345383829291508251715187598746186176862839707429358797563865178631708172997022000155345528576677711794977688687919416353540844423248573927718194415403365567529467651380630034966157539586504263827237041145115929186554005652300978153641646121336565730155864846767205046226912699274038199164586006308955923354984787496015723334696912464312505331216475001677515376670744212491371341513281336488748548831711503435529082698217707520396889668004606879884456548703300143437987974175012029423553551533424263734212671845299337191582229251097057113792504997326929215944690750140112337747568633619108670338943369724092832484045547480124143864333842615146178507221401825476992963887087746236280254062298828443144674337376703900831539119284767541324425380891059222848218875626957414908495620867031664140976694671439760060746993604378985495277112881753667830592606634042704293190094085905060721386031501305404259402737586557038483233529398191779339610417295390372221197122264113258388490635547397588784506265007537380162980205818065890320595235650493852334995383294179030247499914015388589401660618265759900825711845379284044537873995143833596843841623003200795509916449605269917887343979063562198324172309588055182189306470047887973949818349594058461372896515295332199648892619658017522049950345132289373271731521506020373481414420249529872471824992557113477292722937451714502438062211765776833627046570408999095050462542103279142084413412631750967352380640392192122633521099790811489696395447975259890329945152022984649438192098428040837363289582373711696993329313486929563484029933333248437306202734697148225765194709788413238076433361403960032739798623786546685793125768575839398654434077490590362358550702997500739026711419507640541952179841150665834689781130470127227320530969782583660232719278476915437945199808044185492257468506972285892590371441228062275573391625144868162398361562817893101456257159583075246851407496738376569482296397982759488852139873157966215804918128747390022044157214596694524460611422572878503655794807558600659156919797217372103418414709576148592342525834751809777532574589192594141977022203033863513323725002460575038433155584137932638822798915678024771009212162596855546275650470880823741210068080967012097706207023014976555667309258901862622262056313477260787157841929504104708474487168738356855878070151198433565545213239090829358364593199690788027638956034269501278655199416758519172951195836595704273957334556642549904240292910582311042095776611741845641787275009779295062526649641800038848515178860995578030815764346720157965612544486907624607447958458697127904353223613861137290673013991624311061062221694326495008026193893933788671125085182511039079405634994985456225881368223346014917061952783096696394067005988154524855814694842769452536465568788378933342569061571142381807215585092864759910652777357943020233590770244717041155281473258572690311464680904260421843009992500787404378653468246329539677982270897472355068059712290525687668465884189085119473313497992527807193759864407457699810816447923860460407378685154864911889906062032952697287217183208008868824608160555064645658608404663905298248185023416242771777452581989510632427964132845095960143013897244955148548294524467959798312060354082214991321389012343399875134438622426794655152687311876517990862681127292497112324257745519598854100038683030032346643875942436480516420499966717140098809778410317228588452205164420914741150153458256804759290859195771377806904897491304581835993095262292851730818541245324120742204335092797809806534013842540142924404661795096031844661110322759286736251758899045625724433097500096184084598882871939020523370879825391474500619139659580067714541133603323854049914598896613472926996767829779651080182678308152495659685834541260470752783680064638045430022339146225964299453866131197667395689060907891121932101788613914904481222532629291914037852117189057078267053387703357659417920858182616310000458790301856746675157156781252258885359498283933898926613102322869213532872535314227460341533605215774627673511661849861608392153583244551711037593889943003179054619715504687883821960654706200565958433308085777207046549862041843187516334268532719112477407198665528576176747025705130168904110059971841751007977741380480774357878370930403838727085482154497704120632043095925013373805021212730273176097658568222359327471894664859399940730902312042374274674687551728272748495043102463058514291795112794230321827867492727806734769271141151550482688060849348875745554672575561000545133673341416474376349403818465906637705127329926724391043124323787250674133777414723629793817573847540749096705153302408750718200902785693599004762033878786868300590183655980928084367619860413332499379782972826018469269034122382824701182666220825467670914934762831392977177067967509157210919992107840790579488900342073000304963196464523537834126552312488236671945732703796748281525141626226029389761396527525107208544647462668393843098141583231881855395908647008609275636705864896171637845218816158319602910339081975090601219216281533488426786496009104919309888914415271032135778373072402798702194393024334470399383841706781438266915611558697541159025334274729116739902487921134099500108500721606301993742951332139212823656772086345772457816231561854352924136415784770913692471079489520379049141774701714112438207821309386591990206672981778440024808732469743112408670980195127931487800584842891739496699875124370930265080945575815095551075775078610097214479670542640256727719462109347255567247829667291346030547789800868408234317055753720827311666150469489718550175334902967390150020019950939884123622554328805859716634306921213969453181375707474309581228852743329246497699383594612249729045665571127907136519456897955716948961424309317040879397167247495687673945632368993961202729655322710545987319028938366189922968923419126303259050271739268632424924596485838398382181137702537604615438822706160618845018573305802889980665387003871687814774618575513577540338768673887726140404592673555381360863830678951075592816608695035786540552777664603067858580074614242648262275636634102956937679532892515922619566899892612520777096016280558416452779748244222581370740164265164096962777934549170820810341478469780427306933521033147138272525473607258547670566830701430087024836898711212552493544989395254098822620675365350661647387741314371645336415511285116472951269117460946906961958092176349715644841509234802777828725461491005849514789849991947973322040771747534580579009815299655331315329342120953092654646572446273323881116995958453665582882715727913681820454462604026356919908028551813342333373842199754271542453384921002077804675373705275115432720198407736428561614082620994070789374702849840686835067764950004393078070119382230711365844276502052741274281402548064015455341710579963575881541360596327647762152738056538551309227989002741274717289406354626281149733100066283757628205995918333665545705764135204852399572130008518111115484944770404738365525685241924152360756405303869952162474398856981915264858217132665057904758236780800811998411414703021505889617297062169256060015108518224370427786621153108063132273317386793487588901001003498013599220166301450158563905667025980270519461373697617389141983399188246429812273984151678877908448306011495917941098974012693048626616125385895334927324930682864811481279167481864200689077671057444562569843733575273004873051608738021675833622369165991346044704803194632398780463816892649659129207282161584857117416353172377977670882506455393729087010897926856154168828740271328339795934142085200474761046817067289446821078055589946794737711923464266564457093730613958053597158914082862795105639203188542070594732830567353416560020547784424353626385131506867561569431706342129048573052904342571183825062726006013516954551166315061011143844919138651446519538456854998971222229028194108273058835223976232806056549792970581670541272794652486088147110417482569384943371971534292478913882276363793954518711601051254587113449166663299869733926993980097642096929477310911200089586872462025618751305876312119423895883021782579105968558828743358927384158973160331350764232562481913362055211284163555663549840336512340323535764267277059849900531322939239359274119520779487964307566945659665542130197635040427697063761361846852288122452579650628590603454247596982011814488727728652018630472405566995339654256082441333613066512167700242136912132787473976437561392496126678127617839957216420098155515879920987867629643620127316988221443674339590305136917138469305860749072974666514666354106000053440889940289780758184050352575598787124939595714097114124960656911839318277053240364881392883455078034289318734260768625395173085529290397888496457256236906791682938841001882439549344410539832362545340730403743645245047117301818125474563097214905885739377778905110662933470721936003864792350033227602351200708667082872598565314082391658888042049034847563578433918609417158623245934585207718629699326702702546270342861598400806510324102353874859701333702658106824852491108291240783352764404423832765345348064764679252303632554752475960460841444987344403645952633728967371196372113013016653992167379746510152517044609083393302704328508111180546597881933125546967521277485467387820691632812175194379551626308637247856576578410904808337654487805867673944830987517532600943232991114570706112690819230058874945766678486396316851985356636023077276402002723298403852454850765352905951957893959763165219940173656830814323592049047527522499562217818078399390037172069099817688406240469817120214967133905020016819273126189751174593076096532166244156380870906364380891700411431918091193970202072914272391649512769914445182475223357997941755760242878496597975515984564889248812155884230190405373743220604910123056710162903029795183428847773914302106467170063907372646570376709604310692657632521483864679924070962778337271346883531061873377842788875328864315862580941428932119391269264330015489169972707870087060124858342093535507872953562792512364517340787457228465850989117844026110819767470203814400939244354011411530120135548705954097489685390542130004587090506906418140605779266496846597352603852335931549265034580353128711602846128850074396462927730454433473943079848547535842569394717566998710753403156148843304798410230188734672128351113473267551209259078590366260286481847654767094112038842984866043647872845887181706568135936356481767850798589666311201615963370447026469272801901734157442252867168684511970645824301540025410445131646248562851060702260070807785163653317502031155559953908159803603664599247762552747781040858502395399773835690454110717372367676343863654142974748422597717190956542085479145957786559252066217157080870684198339318354465848805109929067034277845470757875697392597243925865796169959212983476440760653806117879286780566793229665917665338152019658674624999477985211930511003623524969551845097552808224822742065210730396403922786428766846615780137897717288626864809995614478176811648796154921426241754194554060512099898719501549386164859785835256787819733337626313986337900311166553121926719645341613311461414983543077430408960288617544587658601627982444805470448335737108536438675469848354774319346904322040948392981455488786293803270041762002262636749577240414183977933842129117958231294679796496209303360136176295545578058212116045573221469976537705422328308100048532364288909694180328700205304401555876437172899731929183267075504612883944341610671158643626988479118956577082215896752001403463428881196445995944027059234328602854515075467611755957221806013611579065185276412063825528932460830258965569249424423684938702750646935144071871898513560898724590191081156598604715594075310722518821054640648376648195525950476301085038098365731602801871930028055641753009674322457735796367184607940776521121893642186566237005714241202568172906161142151271136746703906244614980207623961603495887433295983336927462036800324465729224298292021716659282119748009307246384780116774507776511846787338444144492279484455128734764435866269095341914556191849064888637955041126552982001941308390084896172421308997323259107116527268380677580783685034985736987746051158227388058703155570863130875827624333970957107265349470943429200828927757855115276445969284161114420680695279829806021450238514390541792007025421665901027604128934021624303032011928089634535597188131080932648839856301319210567633015258017752629871828700326144479549926552615798971166615607627483250726632948458546057452419185182646527935393353605269065161666213677620483926311773012037851933474735402951225281900047429407791548303168987022861115273909138785447209531971818161462378556122272918402369216202662565138198386232985370921130593269567516148277121761254727514084061997772462584311283361300708972437661323191075194544328688479065386077100935564695406038589032028355728268231039368360286663978172354703597886167527578902277060608402064605125140500242205187132925322079301419905916077155079388933944321610534689748004687035574908307169092677286101645453753598296557025698226335335925264749373079557548017610160479330411728812726783197868976423449842309387722904987068369801820224753358882763170440423571422647304241258721682961824303622734838043908231178966334793744081778432864729484243292518739189419935209049927294752410010471736945562621106457611715194925254788356352951458410922322236852708694988559688999012997724968886130885482060165731242917710604440658021185197542080503001849330787940154165254978002781524280237459805173537612017042063677215484169242077142556969514454402993521697212706135158951933955590780296871220839158525857922369134514224921378533748112644816006887412530782692931485089865364849481504519983431232301157779952175261517983005270233525565939106855144683989605384652044976931724770551657769762473945025445821548326732753665290151701139640387375178545275110565837011791194349793852932376232675035354839924734974032180405425227223267948590453643087217966095724830251073002383017850051274089593857087917045068270240430632658857711233056027654406705359889838194898777337881754798153528470255679361098343886298840835200017443286651187427470764944720063572727174888002706620363599168029489014470542356643603476544965880079531747652636546342574424131445137180165561930828847432481911035661699778914772706777568648241957538978598764722318550801206089967758059362432328355355054234727429932467817496222046585550178746668739176773348320923689969905007803683712113473298236589347898114509388313026680252720985588013966278769582688355247200096970120962637259311068400530514252177846253919353908258992733372506838665777067269869189049350486093027743467681025068093859832568308478895231073421536386342773506498461053574400757389941324720175636963654512338221066676167467617211417774990504744178187267146464082988702383956981601414960329495326787805253984525347286196458673078092971180979630309560777374172832647202462175317945753250246329477360452631948182846536062690984258647314362386242658216708980965402703900673078906888191256279790152857955156518210371285265698796301545117440727658989189274402663645751466946037386401891515392173468851594633037594653402175156622689303292793661555409514500464712994826752982579421546182084573867425345883439373541161784535932064070286097577664284622676141918328974305549728940312507548326137581545136717821571237467852066057467734349800194378163650135255861288667654210678980099213873323570304746757816976665523417721213967588367627725968279032704761799678999117775366704239729424524119977550071248528327774979193991126774317771624857169379098632500977300772450156711695732904403001941078427558146916419454089245425125645313247698619962757986541238981393614685425108497895367434645920798096062271955429427340697483355789554364343266346992076547971782545819558821611852786312674777209866174939387846938261779883220127075276052401821253476548804604210752587343675857666046481237927701948744162253739492717936227741480810435415579886909722041423004280147326248678503311715208335514955195096255323351162298843424236832713785492703077526520768079800040755036432095166226439988961873729659437544278746819768239665860944567284342439955420154334877559162546872048663685253856896859596636503795631506674964919635118024976348314619103189544791869980762496777686224667042986792679133225847706864804711505415718876631053980116227966131065258430874850145974116005058188210252465205236223531166289911021008075161369071784551215104482238348140796197004965114636473677069389445437869231603080330074129654017198218416625128417310657343775259402886716874639860119415608586344806911942087257878576915115549947378303045087342091390080825511214795412535298247588459787866965962540952263771155817049579431924774671690804203724910155747627724363707515237558136056145220771762161330425467524786065880603244509248143425466342604676214032689568965518907103996116236944672962419238536528625704796874701109973224725400564966356753472859666789568105556747892217287071158625826840309012030597171694908174784669456223522909800577495304323915495924238486086762494898792460409196505684897313361811681070632769844783901509620341065281525949490993978153903152530952645554203385573650007560168945311420866669857473599338088489203133473555181232397747542095057795514822430700906600367104452720769064202086229260248257843875879151262504040220729341401139237499397434180041301705341488346546450055772475914927012141441728477204504231121200644041498064428671209060819597008172498842085001708626713503320705420029640587034269670890129663225396743228640271872652050552535145591108473097840480335422130425388950136177463212846182439127454541980746464964882550939297210912176250327944651796332235461033722550487208191016491124476968847800651652896883548144022843252032471988943194389860912688787231544266640145365580310542471032914274896931077708989761034292125725652005660415990644238462971799318846893209102376881789605339524389039617569178694688886021791842134033140067600447684820436949403308131728651900526772506468213454961473766529738193147078714283964197482629052766449224351337805046156408534615626039533096948363069288712812971316343287823446453219644183313461279437433306955714349721366512395393358853433356502131484464277194906916374412125161698369906752833426656787176349865544118710534341131229162372220251451720823970169401593135839885619427128290587779157274754289491247635531164149553685284178679281452998573677835249307182000152672253587216388869895813227902089251517185043970402861052062051829306823061176325724291593282489564949275918795694324593023644163934304888299047049629099879107451117805332107411584630667193717822490377378807097349330271715909837654363584882397896224833441084162241716046444256994186161325706993006441103685238089065709298033634938288482667239938403635682034249300460792260557873816962716406051318750555147008223579399373111370782075758947102023309528202481700591958109772088643581624943312910945640437139599886598933985722598739938099660864489850214396525971313343443911743507565839148636500107716058877022668420468028540294453846447283129018327178662506732213567514431535884095431217638104445004953287395778819824273252857129871669654808427952680338486245729472730776320064793900594413123884669329989749373324979716588445530900784263950436504448618019017940491286264504495610360630081798114919373101261821718862944482276952510544183655103484007141150615350607753646444374128647996706515242226536799927747996405756941218005694740517380163837503095557631846420393034828550400861032094223130246882205611147633107042263618903963570641689068120529908793627745237268707677359807121979246378894175418591818511716046365226589082535756031204029809463712874207343398440423847012470903693094049451629662998422771416567848710499354896093594615319304690471369103662303735244588274904672560190708679609774300455964778834616844019682532860839182033741824947985866399119420113886005596941718274777136364128730851541186094928504072987548741439855242320902904331026522341538124133053659456976463014039622954875686916255025957453762864030304696373354479365544646893598553520723770464922251094786527942440941137817149659729866456721930612323182236225514474045802248841009485361868256028785929836720275360676744225286966866610555557963027148329584007898006943650164963182537256146813063725711611324447668031570389250332600382406679178299016073918200474221033892072662613423666499183979794151846474424167707015971150883758417511338685101294001163695919483133422951744365609852553102729851990184389482241117851147450217194241856228399952049954839306199366520357429792280273230509230639176716330509711148734714332511170519730379272605557481849858082181195425944294667037581887555975505121353855861731502570657763947122819077127787352931267352879317191520847703040550062750468483903428140500722810689145890636112681835087589516683513711762180233541220242721180035454559833732154455992382867796162890278389473998461341359623647786509114875179300889746716689360828143060974185299816954408611363219187102661516560509139975673610248224628897367174422038878820530948550016479026443669851735833363843660925386601840048842465228945253760803581522618900436792736040221678370478182657281284054340073574796151339519139917006147582752602846944195325236199324602226598667073523713474396860075398196477319629369473776214224038104366930872037217322397853155767314176421498862821525053524396713087313791991433089319476523365280552196169912234037557716507235715126919434386082656288170910675711309023856247798088445545115631205505167648086574488115569311742910866232022716584479703014355504749142907054426679784452172656145719728894412811113024014192256124360489194214960021000271890005029802205760353527246273750066775785213803549359658527912838939614603468461639841644999872095654497112447600484477945933052769948828674953140448974560265375744157436837545433625079527069381892245025975137849347570967532732383685122740811784115596465116131796190940982008613533794635198551049185938323186289973144109873481533342423683682088627304561367612480374258565496570878425761173832325237204599513869134026027354065224994818746544641209202546417040213717342057794448963741236585112775627809431531056789700514506664002192302106473687476120118284336934254418712121120894289806020700347873236696276404665037850823112736043543337839655592714862696111236604769250091594236636278793882624588660719170335376123612532287031818464454759577884121765577541184887246270447337669058461643519547225828548790674882213036338240982481844397024712986363483511561371377922935237773516463360611495854451571932241917466971651474094766094577486965977815803003686513354821918381099857827055170957296546992866910921800866116013816146959294906209271268512016733341283639224484690414161000450058311352029768503032632617451361208164962752373971097162917851810321543833399148765444268266269692004948952428591616647539835784267811238064403011837280331198183356409737228401054676407942972155966237432159914880311285315364219136243243857186837347366312394775454269337987433031539421640653154258058347628409830852412086037603766853628006549549542784278598215472849979924446895061104646905424246268585289778383067535601204918505180610441019195703753246432696206952498735721507262995574869563285845955411082199850200467520810883137417062597034752212480972358299554082568202770467368191079253945655076881689599132187634449856792356347138500952489542079063362378847493498938169032476063292343456915023090669266541316577793370362951888678959048985305944676559761511912074665784156604135003977910655980622951515536685602326964729160663582322554968629859319381993163823656031414085524367404511752404425891049562170442690768849944031310401953587147450508410080378874152329929802922308272943336789699363892602885094576634660295881121116078910603482458569205608528082893620267431579224838861760489269044420086690301298337677835592758201502809319806842021308319102818407806636616986514603017724800169613636229713707952723833485846240266026600075439972253273768910917713863133829423288765428766002764630098380868478176247948458962188406046160887752835226710060656168468960787055494832280369026346157010154651598842298672594619207721151751326410725591731469672796270563577245428829619412893987165597288981777184591927334673128080336868500161054979639252711578377463888672246616078724892699056961732400494062904541377796588004721110083497065169139360945360732347289014023534520365487513391484235853742308901749349528320270053716015951654522654278664875690000195197956578494903053259357435754687178102803735941331343137320672695662291049613964581249795903231568283638130429384691202483412676273789454765801917856546500788745497250903966892922994184627867540556121212470045548343661346575126762966918803511461377207187527051005767247870781786327918803530478946552767820849093746406519344098622692842965003472008059220639940079839045925789074478071366197809244340059905159443325807026281985633955020133988816441958941252927994355144902237310863184824766563916372599324792361474378468441026187736334360738947853459106285230946367043345396363810954573117322868553230150005482063707746775145822654371101538540849621500305975213539493755997915849919667539713263101108863154111204877360429032419308970263771327272947880737981340912269049691579522742928057480857603579872217988731440885782899360100230933926598701044306851754578238820913611885633847505645574525108165710890685184037848185432382880264231962990190068998017073428273831864254460756182376439615149727599776426362906781325408146592469259324649628728359802732276072603285405257704743542273142316756491072033067984103368249648917608955368847303638963318066692469772113246589279641065052506470737420525685310951041653381025907299601312635770755481915677772621278728183486537930558322380589556476330706571612656156360606288613212754871876440991585789308667758988702643351114660417025376699432345385572193528910953456437232948296660679391016136350379578178724595377472496572837265359312562193720068520399118491722790530072616837873556186117456425166455660489380744428573898546447137860616242034705626500214900566192284219994942547424840131373664161578875649894842436566875644795063838272873975539041238476263352070471676069387716236145078689787634123848442981974528548910312377756608076514107836988315768265999132087802455520190566065799604813468361312408573587540026286554870046331725010145747630815093572526315909203959704039927625175455375569566124549905607101299853680871034649917181506057189897659668206818548947642429769810738157389916226020661883490120133087915974619072345927265345661736477232008301989425509373216891891428044284575105896925943806716524871311550888056797223651045318590198348458174803907169910197612357035546301431341208220423230480678164928397155404455059372352355714874997840526422585089753464272743716674395242832658784002165761536498421977439326211127156527439224352388533737045525343347827447455125981222857209989512261042600873428796526115045664522383258368288215856218264869073982387817694511795748936052995953178843781082505175197914528222799190843188422264238770883425366519949390639608924612254776703114552194274527255149230557702216773723566829195071561831336072574725957495537119351466355813041124489444990616462168365254258443643865660399002786131359699510406164556269115529524398260078842845760207243767648758283950380476647681347111637076482993555249204008199427910008750374817783457440694063220002577064930585414964072685918282201147581814688624077239165127523739035715894941892832425497118147002354768479745067564057332457015408892687518196356424425084059781612347687477765502891701032921629909916043048577391071910600576559621808336857978417362315203107346387568707952529021769709054655063968869844050801305050967963148377369704957484371913557866103924977932987278279857750110312941673293000002161237270609256539637948521720009418169084998039361510463095007548948370546094480710456874561158820688859829527601266416645620469340065963453472161397383660856515149811595249312741286268907300058733624637694235321170582786880676032702493780495084367354589756896711106490900745807728950501581165603900525562331713981193697187300953739139798037167881391729998678240638701464561067707268027264053054041409012648017707655120371856484364082989368864437371891984338380935821355634011241653272009452744586323383446602438808681589629714211949191390275863309028277552950273806639414985037859627815854009577866948854387831955512193244538239791744360410536366341069989217310943515935472361252619228280127701574135261709922194146308715072683377623296975158227561685518698441691427131816438998325596460788044359938529183648668979892173043746045523715113751372484381471972634733374923476593295499118315164016861588082840153417999899791842628382338570654500121267005060810498995539364194683270336215872568737038663454787435164335576647589782353624489069245316208846907637345281081357710105092880755784424550535409634063678481316059236125069304805275217403929130086528460021272775629554524477818634622864835282814547051284051463712425404830033635333294761284869587708620881439567126780534799621867902572465276369216227024251336386203015430282645215963332650793463083806563105819017301278634906874173195266982604835171045636697464081625864666580019894544924326826473434469717689876704887937374391488596074538106825635986566009666989996758770512631495697243302242094689601693433115719505017504984141368768449086746236155466258672795773104770813498824415273310421159371013828161073470922666301081544251780576337030277569354860592358148341833797979006378148263947149805417280166946512392053566724097012109267999448290984308306309659464411985631302340420979625175802898686550955276000990144511700170283395286120186437574389583235426397790555738174548328455521948520770156837461364827812634208213560835112658063521565122297279411797100715513964783407127239159447188452318398799223795273422857949309417640078949689381542944424594129602039827584897414434010268205536951397202149290384749983859895795444316752362978013295958130223338988407806752993641452915859055683414991322786664541924034246976236919880462140064560209569320003888787577815159456659358704412915738071881021533187066644316632988384242519147260847492817966843971308472306727540257709788395977946787571872785055621505691083384519122600747282041059574614112059169225113277621786884205414980758276656510699408323892111937899049331029761913598598182940143268997559109206582121533649838417713303071333803328929686034557251172087803232359434325687415144156114466166131466517170281400966206321583555996349621857141659360201882365709150159949527390894042030687984541743765907988780253365579976796439983047901816017545784312786306326759787743507363214331964377203379237461127608298478537361627643614944260863492589795387173706875618706344853749741551016890862212369500484967946038735531310918904396517656346042553563521655932220106578616151073564060841025232710161709501934280018089450865491229654142603884852272922041328530016336610314929311078712528920506287404486518701983362646587491329390493578064019735668011461932624193707817345251453175771618256532831727278892396842772898395353383650624545031677996324371839837858603228074911220660681948968799600013831841929125447863418242937808374805219164590908581143884329599813654437687433157242691899612440563492548326277691660764537988213338302826298784121705806917618850063621118010964151075638491383852621059177478710290700363778504413147984502711850359930884012461924334940668047833409588277556975744041960462681115516601001060507599015309102587780504376753677441083371390460130846472565949539714063367791515244168316478857251095976072776762302345491266108053681859371911822346546794456858381615249472941334120779626189934784792806555688890896668250544337704687419036418289052406505222854079082327142691067147259277084256788568826368684565909752658925348185532520313505694680246294173471629318908586197072352724644201961756400897713661572493622288294587094408989511912408032372297364268160927790068697841342753797276444856764677266713361923501054132377373459860608595613776489414019390290826563127976805513864534363151879253259029469166156746176975610378130742084431437016651771192895297670485918955777430968397088087456736769203699075432361960496153097490881335616251062570271245231862555720140427911749596840134893450192370855381414046634543493551700490793706006672342715674392817504225111389198134832600266288187989952501861451819617274079766567836045725414090508274477732269979217619853257871026069899907345605725869042406038300480278195388453685121829212053312184789137824779648739703009874849014335502169452757983307270572125928470835098057351991632425101402986832348031361069669247396306208700664447692888716267300616116397191638131392771359672870792683648956405591475042643047451492419948695443755779440427675796371347859990061264695086237195006057280565679835770411174466266771952817230455380398812280298657395069737094951850080020003458240991060085679915501136822935503964198189611224226327090286959297443773561870986733634125273304647913566737141477820745865963049938514755392967023093151946665341851650101849255784519325385863377711052182758076291069403667050185019151190754715799575373311134296259499315245367415288040968956243460998763223729109818585441346435874083429415988603853143515108418584428640861416475976273852051216859762002292617888134531574138107228059675188792796618576366735343964575410535602875723434411102420443759464497926188678077359515826098148626484066773335376436193453459502981115114599165636911356021593554322738325663876924037594397877225839411441793706998151577781937952498131581717238646093965536275732024454200415130467447126672798939926818375888617641258371869105923058536433597866441793483538746751389590667023374242196848038852458117611699787665589462993248400752176862825730752884203551000895998771382915668474827970615089685862440130070805868380791360212846572380095779266339075650213504818366491325205286573540996798758610039480404574345105738128127281617293784797444674926553411972545493139487887690028660103749817556406060584508696920214279466236386815816800054572002476676057901742899423351151394599147170448722716337011554935708766580351726537206451639056615379099426903797960084103029168965603425037604043918647138090115729818289429681576006926864195893768126399368358673789098450258530888213372705532438440425473210899728524160140761624918662497892801162426221861247401501433640885951844454344158442573327648212477020003118375957258499721958226246414032228261618954465440475618154949367301981665450780708874978924800512246551725016806149286987165851307721687668816202927880632995421606337337828941366489560790978493543606261758379570859524658448496869103059046331733458684776047490520596629598125222867921558968690551992696467278381000520951812416708348101031419052869446071016924805364043911779638124441829874481816839594952154555363289842322323587239684406012821798087060919236330851948195749890497079841412216536358226903757966206084069482926353936634335024232217142336084316884908624410806510985596415407205441142521578828123169369943035381213339909978861460934181924785705376462426817603618926951854172042865370951898593177077602391632214540095789717073478644887120909668250761050202571489493745567174353889159494333630919278921436699017128262474987918160290722160925659964046512212192704275853956893932778896141580717601368686256002922891357451038941753270944873623534416222361310181155302949702763083684438990675856702273503888373291578868289390987759635389974945387170107703997191765845300616454623789268570932894741077180211576733161144044376953270479744246997812996740643845820152125584309360411380236334368071775151351270633436783124750343869836271058505574080788301118774262182015677060470346234236384689728246865396032681225827889224219993472903562041482774499190722787206705628116238831043897187986216573820764905722419601391316771880049628864769287506991781297725672928345122360014154224339697309709247928323159239103484472182107537882733528133306852200540875694192702884935680184792790654636716297684265753568011080653343002367002101164379167006607289861010003960031232375416141324303336145198397618511071599769424472456490260390118535614002020673681509136042942261259302881088961788804636725443471753620893542629204744987084772191351976759489483523837772038253674380115005475889060237024543882814339901187318960770866455026097699932355406827043010157097554122460926169242345308683335559112770982866368344588521006160558592694539345151196955745411403683176218771379763722878466864684140859530181155490380956379145019891500414572408434929564933602882774493566259512868478568689985903076873247030866515038147377125380854313598003386202990348093714937614951803450840130351583019685565010805080602640722270122584699575300684253523356877404396994367043925919589643516819636811390313051813750002299819275642806116147220712654838681823995724975042621046245665549785348404576091434829785556761433219817031856766916209672421021924129419868497393178255283198628086520065976266030151506547775685713454364357006444864590818344255132672301832700574208831647284014144716800448655928906948630335969608642886302795419681744391266192323242044006960143854490163348798067826804110042324127058368996553375730830283584009867514249060095060903359842378898150733198790574794306802676988205251550623695633542187767418093751761546898975849571228887051951637141059209901853009133138491647976767450221681609392698577333505692143611887019834337481777919118097535394521580666662736473506363028393090589976883016892721067283935842177233539990004783605644120162720285351096096884829211484156808001024642671891722766303512199684317446190172922210105268288234446056919791633583803039176688528686741807806328506553319444222281760235590117166702603832243663146245132128320356112067922008661732609327243821871278276450979688159741033140558754842446646020439443854230577494390932356519416979348265165498637144221152752585813948042895982543671586434394416270120849566120486116032282942211769225149949284494364928031068580409895684472697193115873584660791123607440899072917203017987088319984186590048157715703153435269439962588760614757763303312242828312438512419934008038913864257537186944173208191612322889023760451614677414452609236407340101780901460438931945251975113479549772915281342957183144580159417935576322125306514669149339548616200008419136859475335921170699408081165750500371653532436929938664232344324989631575098304863650684247833856446667855309769139836599101031801278306880580489322997964586265853848409906048304935305266193040069329360432864286552789988478106379686896043442880772483662895426740600969063922448831712806031137574623855367862870887531384103154967874161302356166855787946044862632050332492281731926917324634901281176596197414369426086699169753542561971626510138903395327529008164288341679931518049355291643844604623087972284722454321973591654249758138269209079362253688696135915057158347963950278693095439210208306046753195008104716874045126969279261485176564001058969116606844511386732823644912016186145737132283247881695896529397556351095382957049431499719894673349025972029581288372763377260044912171982075084915130090410680515205774707220587834769187604825723773657340566863060877004853913363280298472749945220625172109579569166841601497334911787938803882546727703486883992328428326366426564935602646860431057757597839860945502535364689673612349396859899705696453636520363922389737676017363336340949663510996446792293839512487822594974045841556711719417975800520033737770090805844578386177275324897578830588157077167175059774879296514218386584128189568748103517038370051749015202155211009126403672711888299443937489648014659894197869401788249544920248401978705489308411984481249978090376224060412380999287618329634491691164261381943413912614944679512841715346063540428929644404293559883177420636464289432145807459950381594028751343098163887240629541157248174803285730376188737733900970535668115507548201285351944211276891396540676495102163725960165193485233006706677050257461918469845776602398849967590024629366582494731595938610694614795284896552901087226630788938573487360306962610433679020976796001842069040183922341808266167316584199630277081151123378224902591293993234185039472654179842965235163952847361948024197325473686696633760499968501770011327077769080095961553731994189045868012801400761971776747570165617503794834556109499060567176284512051954680641462998971848922839523970988211993620006065911290016574287880921688633855496730699638030400155196523015613491556027231112649834785607570213102968205648626616085546319926841241041598753872139588047859936815256788233688051798678985363538329225620435290389613711577746517084804208916554161685975440581783060110596204101627283288860001957853630333143276276536890895443693625245667838034827475531552165016002191327036770992456659588928988386805639374204611218362063133214286138349555410506325695460199451924673632622388518213808101920460567507273516497788916560487494578001061368579994370146476116732454275708774638186908137382137940214797567686958784608181652634590167397881564549736764025311063562307122094295266939876628545216051995731427164960667411862202324621139194302290022108661279374012676254563202388834597962173777263530125318412043191782332668907539006562908485057418050825836871940615406790236853755936606556712018358594227934568326611087600114319331980205735369762927471734908905449724107418975562250494807109102585418928594745028783642849211479669550151691045980676381635647565496808611695083582753511953868227854627629952572098161268241360706972154101311634407897988651116238380819715467612091204204618341003052598845727637361670869730378874305216746156557393693578675051586007036699340386574686795729322870432916721389007099654353071373757142279456569970273681363704497558549508375732158628474753905413607155560548219310310137365355826235341229315148691560882203989427856221858565320152525119248766922727039517451735321351832788336167478224736878474204302174208991532365474038064057190792513825780939272999649008772029043399862566557291364955363354140488402557485616165640523770296403280206302125621160156903144044132779352479640813847067529383722356927280599548125069817256871646880410925795864843812830881554563965864059974872147985355424343511189456263743372430552312335868297900294866384807238842204850675991372230116859034276897350990620461421721907425885292181626269192265303023867177847783319656126772047808986620955320068792786342475223748389528531946731011759165242977873186298028254164322224444901440267780029888712540120490888333501795072497247364954094640241643822516395755936526867850185360930963551664309727104076695086526609048338380705337887860663511025607025272620769557435038944242732855927382075780104446586304773603679458819469819111179717091105041132297216763584362098054623396878969160432133393219744141573178109151500164627504327253526861587568746409927265111982483572691511458573054503481161292254953812580599647057995066774523806845102446573495618070942500786505733295328883606643100248937441511702734915451732558147287110365926282790726484560455464113839982199312963398264999163944934249677993612229533652196836762450553342835662884921881021163714943390076316768024594887046157802087019676716239938928496317663846853119997279229303043448862029441508744655594571883348787758824498570626638427251818549991562562408383081878039308939533838022368816966144799597566908964872778234920181775627244906061317551924843993635005351571689944267624497678436034423991292703439799931550694972262891082215260178748985667926822245207690194192317445197219864221480738563534042715207060010068310898367451638057461920908602676254194031337659605887468002911221716744843683881629488016503408002123236247753594825369182150955781274240997955775389375568497808529782658903001802126253094034359227579619719176206296448051853393934344682670654082601527283972700026898021159936925742639586374397158413248382339084346248406063536238777149848125978239490707332538057109993743873468637282805910615275008733559782875034046804844762286530353932888725343399710833383773989076113269750500950629894138633921918038977046026630282161087886318486050513716808371303435232158960537738656184140997629833639120327356800493701552771028229708933183083517078288179920811264564742545239930672676055484167863028018095842803626308324585348920570850334255546399450540882341966642306390811164996053053346535209549422777617398426209368884947911781691173557761421625652672467058044455645601316793215000524395630824797483034615265066013004844213430308874203736725382127775959844969807202803915009183925004578465278423684314904472085360784195115989083775889820268537888503904612938391486015475178267708745340904886019714329305735989332895788856256079583025065817759153129137402535639730427213207604301603112638977947896071833044985496624948379021415716080975988760529079156663283797580278924107064639445474249486662910575131799324454116212544183403175670308754361641209294904304069159177726528154595886160770156029477540567605224360954243910146493222443744201657050515818396403296523520894151117144213420673472213215317299717574680834708986861768038320471524756205594948246920348824151652005780010088693920585242748443438539978251595991819033535746070755256553762587239482749567519091186421513406860286076132629534208353850620214726540315907409402033708247655320942998665811950530019140660900041410617163827473095929700380232171095314794139618833982999576205568243329696276076737695466694272425662178882321620115059377199165495287874547160406522828834281226598233494047677401088179983176499216855430964399087547530283507182965070283473095133033486082707545913660790817788095227542025083344337393662536743145749224098830446080386676055486106101535768048630606710969853850157315562660077667434054017844863202804507633299268662383379192166119483659676368547151418789969269401575189146236849723266697183988222212290261294941978284194699447131127597912564778559468249580215846935067226498629581410685592971484875187207465017109297608322965869713807290727414161709839907419317792519547610518290986329964700672982811985957583622340580235529627438819896358595861499359644977406545094198607174548144761635392986635622625288558211146677631449724326329866228071386041211501949299163585222608973365670271049496767933628555541906280961881150227855923096816489985981166869848279635403935052544889178867977885156620539097704593465793008830488093641767988199576605201977044201979792501861901906019220516786359520739474693263021076552441955587838824285230299852625171899501318033218633255373001641937230293979679406888832422785462628821068554958037358267597371989281243599658817222043665361610483657468762997513466484828313231103877860208124416765527432187890303303118011625793712552892905891287196142171559329882621791197167519882764228372943775166897947147647613482145948761662647504444790835585367167583870763339622460202173294437906280281506360373100813801005367636924507861199283808986639744376483445785149556081906654023511024711879562209631029024603169977695889152355824173358981313392067257549428618980042596002765950228297053327752944044837410700079496263265453874236278118056308070483045553207641582772449471037975704850300806252221878075830224590274149870621165174112786346853767503249377142996350892145568403587237518644144371969266904169417830977734786641938352687440687406308173567360849491083123483940476238492462158433878529819622737805810181234855153272082021997713047328878686608844888679104015357157177601799086038593106983519335261414452600756409660249639277338013291943377787304002008304389481046638291449789176358059063750470600449515655055866611223247720126939575959332617047830410818845496584910392372093913580904069618330942536058101555308955043748370993896233640057085479526150208085475423626071683380775984346989976352080226259512709872752483513923546059928112467717690166161848131378737744314751840178500651815519539330812629839035787662541536291455580322043646611120626903544222490548892886135399282100866510154692987403629374817335040755340088021898208821038212706747039619364936543522947845350399152892586453220933746849045194906757941432445646056780145564749763102305409239659103889051803530366157201079586334758810010214527500345229011648131814722653163630296233573602682767435700234781356609150357950078807229733660245484056201774535226719377966170073462513970608461416624714999088391318881584681020860114301255744987129893581867630686747060068856644459434720159192669264281841799704596616486164453584450636717229637596094775544807141283790613183702980416170483845335207681937477863803900348344866157514753809761462331752500003908873848015702697945911878729784164108582810038851981856386442437687392821803469219209309627249433734444997501506300158487073013069687472643544797399607436528375734083770471380726651382962877152665826783515287040840591137140052698528003974000435667965339830778183105152781657925606518792144852279484342092940480381180906356580769130215806200434040655675870775829381190449509166050040338104405048362505707528180683482217927130500243078728345158319930885959329088743670070085938367646098965996620741529456544863201356602237325568888063109383562851239189000605640776711006777260145565817931352635003713987526494456646481388927579019206360601944498553698817258334675884038628599934970147274380406498960453766331235933231733068216966881557190285566246690820834734424193061707856800702561399113045435166208322393047337661638351108069447856224301162943150401526624162332240847839652671877177684142806027917003681761958999270886136098348976544842169321142099667620253506365540836656252348819090603031137923753808274271782997187852531370504399045921189368271165617534838604282106636779933205939918467576727087166951811174635340087835141101584216154550397683345114482866864983402889443864068213452410949995543230702126724073792574866915512967154398540555917048985900140304234039316919912427626390598507990917711855021082129369079276992093816672655104031505680228597571385365969607497089213885470529669389560816493849245407565640822807506938545130816946827557218255676107969431511461831271557152841294698543654536158280149935617249679674660113936910244103854717237105196505223083942010471736691652338703318565971212203550330970136836350578695259928191682823188890667843037212764485813820229776045739816707588598121794006620983859975971745098166390665215275330977414926816751970908777330708211207071080285782306889322661711351493334822296172470656148193249397689297017742521517172818235946184223707998348782756233181492572057194878709498644462820211190081593159088493197477286579329093894749723434742638503529482803117874762239148943976654763371731043416152920239473084027569494738811388003243720020493562808061150906861410853736020862487751822900725895771345586937354155264031399653146398979592530154942686847926002768394394765214995734937985009093246645736291781223980327184933469928276602720277447513855460717251290027343119799390627718202022167055941699531004792362852628705148434394777327170211904316662333309966785904936210222318801579244895272594340315940898435084935539671354578048794477444442191970219626451473164904072090394415951686613293999427496350483324896760187427850565919866452699707317064695102046589868735341968904137244582352660694158489681291623713195910429199059613051959606600301818146947092125405154620429697973487566850772666031597013849840264334715962904097913824326804982809376855120028585674837010094636007823609705853429812809440203472228863123584066461453649193675561544585416669367211337462713641404756808826827148757081299316334891216899595900944512177215081620220149781290442408279827057515025602411153005544519576392294157737809292094123330064589484091509540956505984082535037888752286761221183599172270460353547091750475905937069282336710422542685244743454873484024452787858135607132593766499121281198672590560282718423721763106056603568518270825698247051573174920165275768374626407782608757799970531616957149464203442603677580677286212493429366597824544874752947803537034106809287508221230904840146427487611826490469054466382745700981098307468365184893149966234761715182289771866059468776045060488970983451821429934250888479748590375889831629039869156683675860017443352756949368036313463152806619452501936153139716458031255280550878012623759380572527078757545844861474970099991741211655601106396916731317772626665445658520206968849854042766988041860340087662162032838396378874094966979796438928415902757383123015548908500810877435065515959864289373074133367692401794633998495805231144084790538396564265183396574672312508199018671231021313183746028789511665956156513196283049275041917861401927098675666887576786492135991683079395458888359405713377278165254902842931873626043593129364291994643434670426149662772306622527074022632835287550408286273674132963355414719697831815046643581779855437423701018519587904055220403326076683894998725693104673933341010631380744019017077111864963176102591112846485259737490949070971261982586434655575974552296908507797531117091235245608616630194740728085999030970727586185186618408331286551351838390867834235691876082051984316602712538678597964747165257320287432574083107540978050891798834256231253055167300186651450541722786546422653509506698530252338322108416478903420913798404742545939348850318550444076378538395205503679665181618004005656804677918047190452573261237843556392778911796560670872095643747515712602092327655168214142782853695847903605147647964493901506725700130511678155760254155907199216950244568904615232890152593561985383078397440685868271135699045272719025827138389954034732035036994821430340559659798097550698866379827737829013645449932888706756749037841498495096136541648268965659669680791889299522056169480374086010990489341368760449261611114351109111899155637672980360392073796456196604698046588188249032850596417435764638497573145533779357163286358549482005884207577613507477265882740427059052439030139869156212572030374806111904130879145744352017586922038984385007646148252477024890159053577790724666663709704517091732608225425885814543085494013889122737683192788548289267081209629474530433856425404757731634917273311243607506093433224503135156680864184865200100854432002698218437698277083803726675076700054368491112222982089441531424356003278938850477315046922863600923858667758137062935178799291708984258635190993048712567480075649818711695419018272435245854200684843652990011599563011964774772102266277408120809363182487212786891244876982826201453428119842684190454679585372375251175413299097485964751217137744234074200480979744604804502898874371874751606919095182413734385761526646853406802516816562997564362982894505456009603631382063879014961054910723385450017255535786817134157152085576957447656134191244457815449499928811359251375964344920033815940910665464103302171570994403126824633186948633978563988149313156669863766364745762073849521037917633694433998967846547467887461110963454450452710369453854004173043475385688738021956986152024759680967951917899198372061001467523443459650939132401925616919357593552160273357540356239685915901811024754194664705306509388030260182984301432338314678802003456081403875289384653958383005445673155575439058522108435210814208679779267921104044597155377780928439525536780541290644939583284881338513279018678306950645841512186250945135335977216511087004756329027971169163062636014006884253050592552207028060173117661004063943322704385772129504362630956002339349675015719279529447623716669461675954063763994626738881481294706798018919670436993496937069057060833663752409525867170758066228567825313236612810573360727974685478089792548955776829939776417978480173517334502735247113099613999136904791380988615237687096671497229636843800290729784798934336365152965820528069097635274157106362035151121840706790926207374018740770196962197891371583019603743788972990569098415206682279983421200960732007534517546654331608423217972698102221822602755725062720148457468514530555258489180151702305188803329985606386831245758785032584164120560101387135669137784328492787236522713469553994014828584553222341824337251488442197513624127825057151610279476385235203673999774869824349304654763557164159006009171748390466559358719320118479545210547505757634209213732381438894584724960063837353505478561231449535549481461808298340014984749686063268305900069855436058828714561435971140039828141612615530604968383307065835958027600452665525791506925455894869795476083641728242934125131801330872403898791888352384492250423252969955631337928474787063191960098441032764709228918187027668009026741010323104109740250062484954254329338849400761327354381914157181615228402995546995897272641802908510695714644791586302586735887224212554734822264394040769432414567463015507320495663317656325949670509718096063029054922114289239890704119344018299405257000334791659042360641843069269912256765342354201726623859155521224651898215182639063022793828488162585866613123340917341672040607693254604806399657992701677818833709937381034397107512252565072610660027764323946945340008006747809651404359893838424817615619169714703520913588327482124984299774950737055932860689269156029003850511019822595537694480236716753338443472029423074920457120697618909867810401444403787463176865349760712995501371246309590322962363296394991760910227847849321465527053474465902119423236481126466583254534055028640315365775605019232082740762714854646103400392042279900513942528539914964060704293645589514131684062240004315064776949199337633734126764224944312879771107366772946767967494314327421293113421207603158723774245928456603120612542842550837021672600293692374556108391632977934423162473066531129004602703090502120539636042940528770333059464514179822481253524151997712467349045096678213217571613154117406815281446669955850188278910736936592082351218759902400895548758153255564818907581503340011957424347763484807718776259689035214763050046857255574963812677650676530470641972800316312896378115736779136654996781188853050042883929407544975057116152934047764474482237770667791645864718956459469497392360637930663005883135719723678022591722000130338685949414126385410347964628524567521129215380122354903890332936624488605213410071005505481642821951596250484390292896487181097528509252806098689145374950015085961280039790477623477865716544856424103546738033888668498243249792252571958435388712769928790702180763515289998159617809574285350739198661426313427670271772512458645740955561290258438355085694654657242468214968802460019314564055869870193577778679589533205827332385127534620884683318040178136427144062255710433093693690968967633090057099440212468549119536988465124826102177330891157300413265757066448083227221889444911377178419427591621135763837316983115666420283758854121837554152791685836251862236599434513760484562837797378062071705442345675707358650759883013624045423327724772220877744578160102899811553636171886613066111712593486374015396292227167589534827190027454985191560182333870452301604806868602530348976733769513750198687780069767268296924762519662064380408814159650120318572325547976961168703515507651635907948391462578387571939469888354950788095348033308724846303931819684374360097811834366955828620025588808146593739694013460668500850554299519314324997687525031028379692686065675234725415912395830859549244585900059920008647277598469037755924783969330221612171465745090333376463390397391390057360035507665784876731916347422457047335830047271471436206255011987986283891923181810827255281175963959423578942884708910933518991820720877123815386721512624881895171356890079072542246464479412494750385139566167363211953313868471127868230694815513295885369023962405469450916699806275569366720945440620960656115737028835244203886869341060807055445978427378125431804723286217740250571411449781632159269509957021454323904550568020918670568990615782294674867955583827769833341517015329391647165090905443901328348292701345375231561887387181140408186966277834619195690625934405113814836076390411347722886260529037662060232698975888858988424163288345261008824295654862728321989974590229318228396382351412064778649441866015227111220297314714432783655128361555597332850316651872299580383327501232030934227131204741219444348772120733679592499388882204002483529589223151994439668469235306052460598184535392071009347772799126148715933369452366221436146277293451722778930954944064891806301767242606363742050173818057514109925009784499404822713013968929997205974514842311134821535624980737938922602449680376985245894496573750626625001515694119377727886885955058990241335748113597906121572065993808649317485208445935256399600032517825926577204463806274109577029443119499617943108281136917407598857246051028260648884845210368967652810624010941112347280534855837993500387611372962287500477298725741485290141962966742020832766497337395011140417667820566422189141213310498749951970607446695270489909057178041786083392884908683644520337237301628196873763995388538599256417466890713608794272125957187687780430357842329660384650804101941257730851844920964257036388262599960178283272126667297319638249865170949546699926392290698871941566378108849956611543937861852350782258166607442151964743887961355617484937196771375563548843599468648210558417470019918806137644309912627648252541311188939728742958021348962584760535361254937538445506011687541474773871663317548997451252128782576720215005085039669755690688504231358135536855798095398055000168805634883175713128874771083092852747592501562640447847754223202206253427006707779100621542056794931912035467804251643162849558436992486259020859598572770468069506340020778392184373895154624933762324669106707759881682997433336597174719814382046935433283420098053674988720185050783708790831969445905059385089777514888715668978936937227371653495755624408538709954819719533278729140215500954067928127307764401595316993039215383959232084885773784339426517091876839301201969746321803920707646509679847154372545960303257972389075769825312787684217856621055404612138158979296263321621834916438429998225596779520881560689783772738346182270043905207623388822556548168735885012177311137227470412299506557403901132700708512932116256855763226000300746036967082464116054580341285037550795136209819447977372525676095490112090467021987327450234641780545205045635552511909368476544025064789534562234759353443975845408449704917871049646986575110214871110499733849804443413555251376852859160135686584797105793142104164360101138299462463515384503699154915604662892689388835780896154216297721781741127459733425646732903021805979925409518650079754864846290530931634302317200298785945550813498320062887286027745179650693972484165451183588719285666681735414958119948156993633009743192364206705895983419987507353561955045427230141132827815258881116491297124554975945763452083609902891483017807589131501807920145122702816325965459463849028351705983304846983101121313470785880068612220192076708167480895247363783845356200866356549897097931756788029528136331981055625345573564215587584352633099243485789645278386040025186240050115731215224938642817253052927150876873639743893154800045349040683455801102550706662234672577213301369557271159657528712413554739104799887985511087324835017054158021693305907314723744707077040153286077555930526066835814141626583544348831830484306516772404834244507390933211536497937976849745085699510916467129199019952909913793912616657152789558388095541864453060438448852873705790550657578712887281066969521419967409695176567411710895962077381565412249012061710960859201099657767121491672070140357593989970306373337970577792385307733571427771155307271872981409897509634664711149226783147463538151829425042282494284591343040656397893427811675279992516745446277785454155710692917350460961028245585816660348435710558893980813451757390581911311270297647157708817728582835495517128422543715797616686273666430528569977204669450684253844326548939108098706359484688363412258301731388610103848539263580330883244687491213370536982507892994814367090018094609551898705898067480844937061196151105787512141540552015668882967493098220386163868362214300958895712362373581340719748442268425172605849571271334783633078996388025461615878858592146878665219772124404594070299936855214697277023626197061421217732375873086733377800700615377846293436830851077541142606066492080765297315411521524984768915371915250812952065566490761762488909597177473270093540488567681652225280190961297311957180652667113731192037361673169983505658328110398795881203273806723717526663264162905216610040337963426854881757903133624749352234039858516991559839696370432468538930529314177579306517920008239805120968082071749905634327687305851794129878672630809680233040113013767295832880733542264414231212525314407189414677630662286312762048531350504194788244250408443495190562925200293746926536251068616624466920781280241625700156207797300194741145019211873370729165428717240462349784436184296757780659319602999556126756171695293301035396520766209232696260696095087094519925300797230330962207972915499232277560085265848449976655067769338168310309722205612622253093444040885836192263958144239061039183822911532642906528931930398830754687862961223868694503591371348940540597240348181596433615170315026085803794728222926072614870866215023925496584021258051807701066609619960048125977533992766877927316068564520508257494343711338073907861207025110031704448246764933167676309467062446593657649791846031056535587327511879691906394839682813252470110993139502836453861256432435591774560399295413465224645800880868649617186506777126331303667023210486954923813257266104171191271274606737804403676868729637063993344404644769895741751581914639178076686674666046970564663145773926026706759677323903659952059739932284978181298494605278920700457758112029217349240342681436488748716285976694064150733492965133990705951313385519403134729922951072954241744274667210821647499062032426764454216884094236251805475008089964050887358949869996145654539954582703904217023363703685425354483716481972131547298134153801483952111405235299576167052259358380174651299228628060769523475182623249321623488418031177374010995397710206702027476856981781381092691427190230253923444203173638089541769753076477895971269524559800314032996473902207079834207503631580697044495948189003057952776938814262606929500349110772136588469252513284163439576419393195515173040286189605997203879971434911949640451255765982611951324509939069891068612655913619208313537368422831282535377732135874277759035331905465110913087422197574269345355241817952421336925267612609326392421030533847450156182027227961557850413333977856473554227194050664929871927489728877615350366417341918558096599108949485032194471652535373272328068636184863703303908528497660088005612316047136532306381263804439559121549444042601299243098755515571488726259444305314388410236989871066307805530794460367158042404388804167037580780599895598501534425492304187078092094712598446983640102370369589558630241572228655158514130649526676157279687173653625034935466880250918388574283055636183391930779090160155963271572658846601963405239508022995214815514720066002381840833961220434778056092341738813499958795164037522744382892033251531964232582050260876499942799018173452321823786386642777156137392823975020602309909719768170062915979650693681247185190403149540874400872676579163177593632064162329283267232857273395248026392147454956798357876020998822718310600570349182220395678185895763530851914582497270802253585799601818142053204627811160790146913760353684325433924643649071308933839018801486566827080576409927608993355595925214466206115638147365956374988219182178841992538043125550062137175280653616961243658120034328628813321188695340375681223849387393035995439321341754594689995674607056098955082788199329123703631491337228633585819684596838274116356936926133007407653597027139132800569477778609694345392325373488474719745165868564570765347645365132829896332868044803509623960497226527981587037858990225401360937947283685668452795568403658756433022693757718023183456282913623042049268607796216476302523567228843952107932079244728570343202025866442701095569300994722753312514691806910127215121088341028018913926226214673289414481335196012424219890403351800078595566359239717722366536401512906785226942331043618911180136740017401747388193092460395801427222419147980576507807970148413964698023493329522347158679855302266677454270374308714874040465098587672332885165011678772026085886183788090444283608345505961545698664202531224661531987938215084532016220577066168726986457365620046401343078202277383963324184850598422171343145777462104265912116005323545857905245715938555733129712170483470702586328664224787676689544346256661435145316719098512742272504733165606414931338647602485431791750397742825817893447855122603005868526988512616367904734281203392063302450073607000083223076338435752680856733218066652811028510973778713582826593921634328804944119843238431227606944079663102671020772801072787380531063206275607392105507024679756565589187261406935708231316369246725096308445068121635155799270746001315030019416529963650667060157971139054378198990810333587915917245741753350742760862893353986456265856025413331716127161105184427016402849630483691792670617961822950035715647112868283819302504980676793193441838734985598078886893282329213337821327255705581985503302903038258394192395079468652491535089374557715945997227762234824636570127008494314714020585853659925250186953287383442520362806244094184011780239150763022497554720091318663578816170501582197015821835803689033729298406762251060487288205634221573507384585877151329562889990881700122224603610067675874971656172889338473687586838289142947404187727396549073948428202573234421915069290604463087791304172716947249467086446578346584107796200074798008974905618099776277459305540465319030529541146732457594743191654498293036658123358878359821206888970948743602975294189811993753461957831374960699822413877491028347234609541037695808891534356466531825299538511939707492653489281569508306670352225311731256861123280228334567550445829659438143908448738807393159447095914814113378579580093803005910583744797632425111395026192781529919747973407159005822315186771804185258397889054535755627327820755327568184076922366744358099600422146008813631838110008528801919373030348141893636717827355810995973316670769514801357363122080720054802973364998558580145104247160499143375679306836633952881771217998647358213694172873152821149445092416649323175919412756816845740449702719354319845286005597953147776555869409463501234759397572066798999147134464789568383510951738826867211686910826488686957632885413870877723872309402456784020169086290087229309146313083822633337246187506833279070062665413178059671914875611633422984804596379586734276318708693186651691733978239604872713800477766744089009872967199443580320543197199836436667670984051923470526446019213855350649076953540300835092905490782856519578773215869579260873959700106080669646364066329068771209238170689053163360940423696235823407097373214036613087553795156369019777830925627678045756407607753269828622270755387064729692725443417552001865363849988752887991350264397086643630116375163759999569734950925073936221251652233785642147051478039846645405776911868888072692511763830085165386934325122639376489008442689899076131462530775823556022522187688287152027617718190210781024484699547032596509980633329235960989985738669061888383674206377307470185180101403594055812584759721296581682571022651769068497818008715943082287093123590926817738362979995408916606034160040801648157079829692913205521964234933057523861328119430316766360799870025165779904311990795362618247896465360471370705566769671245861988893474736459664829860098024246728937277297467466969235409100823342208153006683259724487017749793446049971837302010305424212379395572631532538824899702180854959241156386367538353445905503984578775859720634562224100851591797541264152652933751645983774381386910039003150788592086040302943994889569466328849900042059985970459121279595764603587635344471258052341364384913618748979366322760405697343780388196864120134196149591809771208596999568818208800134192494477459503408242745803579231811582928588860228338721485662372213329986952273279816650414051915617209563012579599673479937957433398945221955331862034762167201667125399853906638219485226891987672797157303887578496695352175379842993879231935989955206625016330052394077109567159683498665044273975704399094999486030626961058561397476133748310244492618288080425577800090531583671016377096452597516589179739614800907574432874590446935180169056146277806063673076169583086205391909653809751197110188029508324145667163370360851930014632077090187084458347699031316688310324826692397570662171324051756504559252163923436935957770791237201287352831403701268074140156164301798556762538621976924161399830712298537355771404413018456719430420242136283552303270761782583421356609165419110439700760721097925465075391552254027980964004416252045176213492112744679834504527111529814870455528352148849016519744781846813496213184157468235345821001977914220207418746990866538990508830779002347939432627596733093633322235675143665946926337743693038605922026600939252006159732680810616444769641409966827699981422302021361525855253849548920016924482741647101319643495503335050974424817643404133954906034009955296001430611880538013086081078980393018033821703824989243265956163250954657806296667464097673821726537641091251580038216667410799338191366422772864487435362849332556675223011372697258314033525010979782384461271285514682837055890837611907377202301102325851180879406223106111967755661708483445292804283018003287910880477637072920287349202631548049971447678725277440325079588993766901878307715575151821121267495867939681954098335655846915001676135174858527458575753445750103225669677188398561645575069064588687675512566894413982226666250104965480630077022499726005152064003403960462655001462755433484979130773815708567307628955082457384569573554487175747521911969684326202454826284885934081888289616167475686351171261864992862954989255985089447728396276782208349503048023815142772636697713345865219520199244523910070546381089526425632339689526363672295057264676982518748515758300042134086781714043952834309343075090837698359447158423311973871679503196600119995739588506780708505099116369972519474143295240453362183474610632931206571831218536274766970758971252735613761488925249083633714949765157275537756182975045465226932611794548767844506640046746305807521562641104472106305481695945965339220655485216194131485790018921029914364686660525224576696647912371739193894529407398904652494731281592883530534476531048284404251748994827365433781890389168896952725635974138171850154408593577515045870636274453271793197744378740029379640174067563842220941051096585366062319456794968544980932612818376488458999711851252561122472583153021691079334748144230738428094847897641687305428837917031582335891739417709054403840143632891281899434024123055308433367365093528959948307543341347483915807457622149273101702672128133544615336282404730921256559720886609232395521602218528598399633012077401158071332276967780177011329961499134055276202115363726242812013596420296664081496266870599291393372920674453039067928963490619845073025073537549813203932866408555230020687670422412841898377453737893496550198355082495453909931435692656078233573300408197628110093632825257016665684816243256426000615201005589290004622457725114464024982164978399167932576810615474708130878272595794549696933862550997733103459146236542601624432823788738878830909183197379821150632878915198882080983631996066360492871330966655236871905635438225510458332591395605666820379872979779261462565665705450369530335622289837957815491596627197210924738900686342743089251714313464819520080857193104606751478738494596145154343538819179645561240555050558024710211110216296082170468632519719487931449164349644212417784205470706985844566992351052283586415776635546115305307614139500317937199668211934391733823372569029693456238477528676396018303989599692449860976962875496857267500979078405158167916239602966955316187700847337916951937056415536132824081676408639036771303182238465713457318372774942871765966315656011428647752992917451971345399811828869897708005803081807832041358357558531197085261822878343587486568967860540525285725374234564967167694384237649515766279119403580524131762152005832518177566511871572270723415396982891875330581438066127634426209990007155239785739644953252659713407704633839540162925247142409422109116916859873478605202770166277820066896454671935193962094062552118837568113227411958934991067642742385468841228021220276389246873043046869892280760504377952852787517329629341405711287980255439248163944434434497107115718642568057390875159569644580549368135773139395313248390017319530805415295162869735428817751698546471208560601171671745821002001911440045098186099657203841196569852312431628360745950208492452007756389589405573340979069443741055315731241726871650865960020162571819459287528353720045727477133444881309606840294763154564488705682203954171542813092257234527243870802104748176482491207230937293443112602511439451687182654912206079870209821482042268836807649622507450336824539600958578556379142429163088730020840124520036826477006517560914135379213471119570287823729297090113367710799396155438927519274809093172566275840112423180414849168177526257350142174011557308905891396030615933785568056923130244602566565693935488647766110278645076358165028251964917941196869625131833595939686235165814279548939552521665435014753810636217277504580130428741666132880448995013705336295012003726053883714918930761664620600434649681965512258010633889683037715600373504340717107386400409787819759637684680470244228691621163313498268943252429486283252601924592430995154765652421332883656976422151548772477288782939809902107360317050814602092947277287910971799765442972296843053599777025802769445390477711227372282615460712188498023055306458045757119457537064000644147035143626551851903767102782314615546983055334923968212963324281764322867394236213043512660212015607417883589551260502641209753786954537002608813313327069780134957640167661374519232454299571728008446831325261107037262798341249950047508853849301384547975948751480932773415616244063519043847883180065344872278011772079344394146918083294081440835244992502136250233515859821136591422574574268441605172005701342866729612406984675508172387127127164483436768767702654307004128502019279982578067050269932541790439665469952437793221775446608096882601393747980312846155901345764021080895636518119644862937099153729252759953296301313073909676411923579206013915705909292996366731701615463258183965840092126229544125579179590162996170253955297809009968821886998387038569234680042053851282898916850756405218900320566018260754718020481040498638273977911810358491767327120745362749762491600060621198544441578811018571697986493243468673866452871970616643891689450508829759441896311424443521011532890029565745550649961154958556377103060601017238750899830992541647022750613094593397566629323632104148669656209926224498500577753428945883138613362297620013521526576522867864858236872905208376788584138274163997635623744067212960087417969985841862459343451625940333396982548147250332167840511605905246442126341600207903961678644764644735144282864383529863289053258735496617252847743544453191124206804016568858715764107939299950111894967502617867548099815323698075911049256465681337493250242973623584136492252813701191378689905685375008698933414182965274735123416479213934523849969331253428543865737585533599806363968922493457075789832808962657722006336672425702573438316453217909332442584050811145632524522114014502825253022381579505373526785674715888451914306016621552865516093365622914772662944162034357372057594937888317770662903900304531043270531579598943974859183347653934039332992135145800693923850688668615188864895421702782586583093046019714641552341031326605207929569106831083595486218934246358827553154689328923772618491726104462276902646114645333412865101714233390684697738351007495953013297136872612545764048496638688930127764833061163803897289377153137129268999415421452515696654870376122479356603562778480619149912318890856344810136220072043020461994857523496742879761389768225650766396058747972211269543218707025599428413233538015787664366591659391304559384066548616414891856878939230069953504932469027349930514772433414130022927775372851780741961163926289484740404422225353860730442728900807967654618181875444099812971690530879180413757994809599518023789650175860605185672575645924788233281109045148088292902360469491722148569785005305017214674327504660073629383626359230668408135027479626429317452579836869780136580657301531608308881709173937368931811736916993190948856579232291669422679581540325139094620365877995752025803359156940423145918022755705235489846593493434694245029093239182266295533967076985808110466529418379501349959668277054335417035892922164569833185658247360612684300233109166284738145791271953559605771424653769352531058347030600144910998762886780784305469306806360679028650953849913606044030126954983461964080084954395161149830267416305922899689278737122629482456868744541240598922840564897666528837575769957187605413458600394276289359672478641446619008611998787501455683565557773465226020623815198453553117284266054665296090366928096728293672195732177245782726556496863009601247091270501745362753590057106909573290779498585905558171650079933279562548462426053606694272131672812751148507300813759316840920585789268377211884061822829219811531186580092989073744122387517975493414059336254489403253566316468039945449757264902539525441042617594909880460061865320579205273829693369216030170929492029635671092777854357770580727491790476447135686263999373107011886696855671209844216816046712323533670279900819672331574086049447285835484468980611135717000776194720047869477134199276484326548824941221453674590302069924313150332674394230726851811833168864559463790378123578457426703854063634254089582922849010764048956344218977820350778678687268198930125098696383807583435390223569349344307185561795292261704678851114293956577042662027564706141305777970140375294173547970274032682269240124433462905813726749253344923459602859906015445468742867293856500886266236448371367675378632934234941099148768184988220075351803860854761291820320594694579195276954573147962940028865973124183235950854589926595407516808871104568214059498353496115863228965208405859807451663653766615644346628203010148072030770010382314867294382070121707898760706902183264254016299767192547950921808038211905780531160736972089549298626628331399003335115120052312549996903824269338661496060372414191737064977703466029618641913118332124270612370696932676190231896120544925148601852835327155416102421782698772639006348331847690362878123819675022469539092361625091687665358090966402693285604187893496782615546383260765284245469641414303480412213261346027198074867103461150328632611628090684559932275470298389309091258273160917993947188609672225026890956399693460640229219312175501820721413853210558063587708547900045876073156146573082288316038029851984923938272035587669273500112041126131946174520091953798375632012489514601265947427243111945101287422459880613032991419589039928761453117770057122991782129636190705355143180656033929410157621899064159281796992092327749867221947384502360944669744216327776121833527568139146005785738259415123927784645636702148455029367342585168402678298707239592135815284810661099812132448156686253442376048346230948558037514571015579543884251851080073185043934613200525472056532179460791714533823640860630478381224452471832077503871973259885959552419951604783396885942281015387435797237828550487680927272938521283534944382301285761511862795986674130574533467852504635711851383913054391105443900565214634250864570108789697118651460690123380735013817975876249785435968603012431218056736401243282851033196511972231074875759358222196770957776640552032001380034059702029633782731806979936024212264173975921045445826342037078224118963796232090085667294871938833493441781644136659773383300673176398724454209281065204274462623698039411067576266375165738844864085590528686281897210157639518997269819355382075956965451217895455555614930834966419231035779612353627067888567180705483186668755059450713156862125032939099033444213052319670870790869638925341930212380092549627921796138320250811238060017506592074618912968618851038921365131876182057635801326491625964367521424669933763683939020282379964978862961122818763791789991822918965359808862444194010291899058531864904157393611439276641102351366452308100393105156254735086617436540542369304439459616111933600865792128273704909354104074594276240461088369047232150994914118086582587163315734794740172538409972236692312319976044243779106174978787424807310255952430216198858526296324942253195448461853298205928612329589194588677250520817070887176173965398124032574688568613507593923601493342325564347950806016106202458935050937083834820787777484746977744736351207494205148143485553330711928279746525377267778229616535365844009921817826349814775698881898610935220996230593941985199776928442716667632825792188147610743326018914675206090101733390681832078593019851205368216214746513816097763856608844540413501815463032675438007473133310421076869338652787402669942282773319049111596013460901103154114782488226200582929099074507424120400565828270459235027120686593162165398256701832528810216319667484422726861471530024532028796083772353565244514350530849329663429915255910271448570120100013002758659262555901714780411028149790709204870691434883122759985391380325120937955002090516095068210764694839181533332338085962810866923818551406459421641727756139914494954906208307272311343285471030369687673395047375748130552271472261952598823191631713922650316782788139585054742626017255781443319366916851634611414213964013350125899416362767003716849164256134174253172083375842648618897351413146116927438484324521762951596748933943864626285825370787539615790708343721327070390232385110947161406227467330461940994150364726618073522312653625393636230378156673404048107322102875607559442465131017162747032537699353519687071983011995474609431980221186038159388115487544290070351821500092065379591516732487672105476574091890455758832100030365731831725005079843928502729072581538892982143227047279491997137855324395629774327248472012709183247385457495672011781157230380489867427408135336802120518232350789484129247055639259963192551255050807655757448796861074131886614600717761342204315489758573805694436590762476477029073332674462589106554391622571135137883588515516226515009483334032909488188929691997969520139233021929767172966141336852355732086839507177728773144545761111672114782042997209397777073744926063199771123247097345359212353716893712660164987395009728174664541502600396430729973376494546122535245814571105904706699411382699248916649037140737588979176598396638653182993161169962806422538984936704041188258306065130843733009390759614403163345619153467298903170570976593741426672694837366226625693892132619798228371710361243760585568731991394689272189275524602436175547965545177098897183642804374626033192556198351286234143059720492844437113904755197366256995515255264851590660673572637017851464399360629364982155732967681280992180705356190899442770885646230780720506367463080100805814674886622948521698425044069459067262720185826300929543118840264726391188300817065410436029141815210175555497388710835967093471806807621307483184699654111068422786381194673434648979392604765113364573266651787077017970173450399981861794123779538531447436848801800708016987439124367202802004818846637292677010822200413159153128499760413369475788706735251503403996383802769359488999836880102552728757030809439132772898737972045872605661449827877436028003291980073230007089649973646199599916026443068384130038221227106421040266047189676103230191460335931164718469811176631600379921931543674197108583836661508938338958108708771352028031675779049266890184492868206823913292209565669652267712921259467190130149839274644634767098265941172536987671775326930705214966328460813163787885922678115924067343387236631485058853601687282588933580279994630472758281718264161578126947477001447896021296061239827521665272397137301885063933489151911856599664161830845013459838445356065203375773178537345519324792637215683356104151629642087796939332374780371592320711173615118717830885944232931432677611407095295988263616014622847797560711664252253380437148793819304487012652181910004944549750604783546813986544217962938420536843135837649993809307338560616906305130692918521454273309582749394397012477090123263371211918697410475242726031025839446071996734965441347989098948117690783379419863309898609834151080344598055390400945147782123945595654124102499139270006501366671809332855379058399856041536566081402357694618431946796804878830601742186114616948026469157369757858601516962161704511482588715582695843159861174169545256558215659913814379644805309458479897653319455767164053290406262156779621325787637962221372122438847338548191491844506805737791065134996573470536590867113417719107009243988341353693603391742016131089777525861962781532045031057153813234018848404043227184249925706531070179957951908696504704919254251654990244096894058822549933531002380774250933791112429220585996369751139160817012649542697998495534906388845812371805448704734099871993236780188025899733281545852828214308523581446353083484584401834173064962846499898318988622872166666420465408103742872508510596105469892290010751504155640190010683010821306937005631775219096298273816359520811080435585017994576833990407283016410120485144917832589380353817037443308808801882041233750458769497261963953423587992581037698238900125067947337932308138279326641221378889009900718737274577479029654088547549634291670084345921600064478745295500898855342716080490887896020833936828677448284657877321932483489887581177487096774413665522852357346359182990995021330997942173399498794083866159331482046092192891505518214031387344025306524715855630662564735922948809367735617762155833756189959294364099559922968356891296949092635515994295112013190874123902050211749887413709674603324543856850787833327415786725078042774715687270448437982805779317352903081556508861355113398365094368106679939354469955880441143128671311557654544786911600474252558461366280013838628627112752601982731335664140344413984353922399713287707075648229654190511037295349660316592292939613218688069351082306905549793725424669327996752526717233688910911364952813477731109841757616525054411932677271188964362543599828395951640318657790477427426927493435518525836449126782891468946923302955400682586472492562963760380781453642553560088479609236057141424522239097587860712530101518235278974032991236166295535055037150385568046342493735890905850097034178287505310972769052543357235306125648252929241191658364766918589561756980923687562294801988519664758935555051980772180935355181807536114298842187511723607192758016131060788466893268280588162561695383156887862083297485798073125397507333704831028011014885183397880242875683951271074565591688056560007766234686507298118519998416805858599331391138446957707972888221674063653949359754327689304994402794421900424659087397679397281039556463112957684993491343922822053738049387372750044077968613640903849845805931442086031494222854172773206777732449186422982987762882893219533882092252031617716132676123964771876728229318340682956156632990918669488510828592271866690578838434497461979449010840227423465107437237174762853109141202595469870879315340962005329110858371663764527787260596963017423889827003162482665580117546268304858602849407559858233742527344919734189172990089301270751565992916671190806315298855724904385599583910034127314237321209398789695975470274439658564847554321421675049109741792977110517459725987120525246006309394206495288899033361180001169211463895912466130965816534147407424316343959528042755191756027207311313283643876410726578416981007008473833435852597002561474556168862031497643791671346321700319327752479746435269392832092726052167773697367399312351092142777100616686646533093972872477680644797053355289988338695866503099787732620512310900432205545526710843462884264213444675583377300089715726530557986198999242728756690048415674021325659271771528776616731715326421316518410688318071148162176890660762237913826591415618603716839618056562839793096922608557592001340972580817032258752468983697966519733181308270870144356285842333993562862451679109620446037999749711984413655447610229280459449499164300647495498227366453462341830455392277939684804246419825663212849374407742359921138396102755149934779075735175242395857720996627642170900401826185573254308182436931471141509056354059624828893279113798198464559159599424497289387348517586362355725194217001122210924242200059208885758869789672222390428058404677702607799639916890893675005058648606920570943756431945065578465202313966699254463263066060526167815253940492659496074218652972064321244410270463133152511142609877570951424989372982755331494855423785606496452189720281319492759217905076746859288485084956353852350904081591664423653376840986415367359070040548160362361797462502610787788918036940110921847230006522434494161204011339090143893542224742712741508224811645949794617609747390701225737771062965063151456311437322769938112717408417181037224628783817398911506852806531218914661223696939211403825495905522589339234782016653433805755615823816804749366931747570778688033606707414341117942501963761326127927419680309679209354877030558454576055137919795318945242952027620235613411886057958960253164019228782633189244811684995659138148687320242361582202926913024407865570114284079823291519076429492418624738308296818619189643804556481399523163824110743854088031958616552638422382176065533772697100605483380493779247561385296164600744608017351499844820945654441063719777712426418181711963005103890946229564358920729758641081861156684063713347510600546129997613219925408371707456578980590199099643853554820090145436736485487630283442537705195346150799523357233182361490386540515060823309300290220986285513450558842418217022232628071338350006549828942411084277157706580936255781702297277531700360555748245648848253355771240548801011421661395583388845535314292319280890861255889138436249257438421684640010219137265455339480556460812278436577865064612296129398118150706709966329462072001542941719251114887860254057056888313488778427662730624099594129845725903464073354431012918364996270339759260119224028614204002286241074351124020274488072415468611120410679294480476057589298630008636227107345148176465073531070846778485813911390503706375061122547939811271665482041085877923673097527598346507442791405259770497781267985067979843249257350376036685116751819986332219165496243297531790803771355029902016165039105440226251114932086550791294055927486350885274218206444991668964572471965275667373100459580768364687331588292567812650732598945691275054505096804640943614113923222887414744547612767051963829546355686619483957340812865466392770687444900219532406517091411804333680497934831524827869519565448015724255486304704865474927495493400743529613344764345954729570863491895570735249101277795872616778930929539963046278768333303327096896348950904283019379687959092130053639119770658353957970525002312254587350358573320780196195943022353993949328843125267288650671631854973688494800263156087551186419707869712396513656820956421395292921808797692645176414377522263492345308150034555761221233294337759232229606215996140518871972530852221691057403584372691370692321755811635210845303738878325887816878968660178621233649402366865533048899899156195100188209854557988552917384000073501495758803082211450324905475287746421808321926217622054295657652061848305975848347946886132454638800117207874494246556740329483231427423514726919539188052026325171309039212610902914907027549805153612170024546042591219661674794888539233387516168633294084421409843280747839912399991187872794741618931710929819252384382738903495492788508973829511119259442821205190710327957552796431331131665924642093815684594202594250763495483003073010082521019004873295792482878270254488730788152119461627165568551864871231504595736809496056081721102083999307919850797401615772448383132036522331633056468160482808805005492173210154620914083008159893756244440740124505929797066254563673755180376794416107194368235185283148165913157305458471403191245005573695865118990290103172217689424092797536990054395078614678450621417340415024124894029581832157084692002021292989838004660895361984954046317847076361474893543579871191562044894016156363887224124635492596293875864119851695974534293307562666395250887490000303684617922547978966609463225157727790148765938457615753500244954313791073774099706836721184561273060588570201431327315396228176739742062068656587704675615420945327689790442762480150710088793557904790142618106658349060871413215874819986389189426349698650490372199661727070387434194976003804941683074631505616325707271386411150774214382569280420933640673112188904154672445122920849319787438640460541821876687107753989224629611198396466309122649414343075813363560483018947915021027552217731414140423946182718397791841655385057383607383640285496458344665333370389052928967657902849063470587160660711621714162710211957017812785983772817736998636925560809247605883751373090637374208848446786672498982851395474728488804803644986648383599061865702594076024273969683945381593138889534895665903301011765129953892596730536540504930193274657171458361992468691509364453060112347929481719238270397543931014431366033165755771975664344689371975557230551900448096671148908698063162343401446836255229724261196092254024162994959883149544158193981657938865012874570586374213471069965508307927685477455500351835407553697699006118051634858125742947766009252020995557527384562909170515370641846317773487648496291949173684403802207046130097903466975478583136947949262451271336948738230023518292194557502360185991515454619063527714958268853273120871460552736273132296087973179978091927903822703584744243036936327517642161310461851963510032260992606455682043661036366030858151649673377828932343296910807836090515834956190421691188834232573472221679226851527375010668171597142823725796483831421039414416341093668354691976621753864894056389630735576857940892434656840440752694163527266805210689920142705138350128357603133483916551867925677929524612862422227100050619428995836489087797771885977737945178003256369215010034551384793980350833052786007345345557111754578652360247182441897182259372562705266043410618160333504330394250064183604658958608990595323539291841673377852731034138403735280832680228321543679154056759635395151764911969530656593610150924413582798486773288191985403694807991354846225579967509693964505714551896494906791691467695310431605442400229798690617169041372737285369729950910344023805997494614280480292974395131390062946027937168841518346609265163976246846080980403203475636630247895224177907383772185182857347287806679262473877633692419419147054267368231350632618244324260347394235962241835246916860051564910062203483535499521640277024032558264278857810345552142291605346551045656102929359896243513691915378541202376781725233795978860150091811784589373708429531641281715838182563825275837485986158985022757114259389903707309159051300725394168892922904292470909072109160932312511355268984770114447567761525229492278030847460664950555534653204087906141126149047697265051116643184111098979210716810894961735946232186805161817024283978626661651964694856919160449309933238147356465124445901648610206247574059368765586449510707059465078702635759265876425694643815381779017930165659026755971570593194329189637851049221440238856388194687814328929922589767700021446288969682825904180532734205715504287371427756137460132459928919452640133480577051634579930777522429672283691874364643331825848383179790487484777424425465528116858998230846085676024390580325804605514880260357866060313087259945472404213107334060518120282517437069495343477604019896805920187387068206315543549553060900053544931230486069304034001982050504003794429257984715143587268125163828799771291331799325404469837275376402086507362062237329943949366239823449333001762029628589478277091534098440921767739007749033802409772912776065104693192717742121406429513007198107430434789282823178487863928907605101665695080939469233494799951283791338538057265763940312427841197996553241668413294607950087709002362805809359592657554098646934428759925277664498277338807762917072789361913102174563495032974896769635056826097257100670157421650707239228125393335846876308271134178496816607830443063977500788751187003961998055329295155388434298736793265815230327230472907296915849176369159670386271084741425505906218014814294399739014197081245380867738153801193596596736427632092555868327449603788333746145442385513753973321959452127927641092910100092220118718731227431919702940740454977802080991024920121754887664835191296722764197714057478614292069426351116181815211368046995047657377474369812354353452801929758251041331922711146145907896633026194859411119771783266133736908436586842472856099995771602919394215601882593596227550211158091670551842673953554187447172948561478619848705278736739415717090426312871667474296769730248578996915409691290379824472593570805618001293481831237627316330141066435578872342711810604876400622875136750023209102531953457953082788342346833403871210147925547604114147669208566756959766419635126211059959118175411336176134163078794363208803230061293742155700763371304080829610425921963817856941760716419951193251318683083945324936943260378190397855750475273018574136282511248105813397123595716107967092786607495829656391627450810900435440305490579441766988597327253519436708828605668649966129338011929533246769277392348661858763582967321750806490903922741235044387099673426283661339813900270728284609222597124239780985265968490325598052455027188307643094771811079626954199681826311440144123514906266038654954646736120816933607689214415271725535710789849182662858157777009614898311458067491557006127405959042913586462478829367297736949873092759527041175318756595747005233270657591382995990695841247077266781674237078928852549631832952317648942886528147137388299553868147867859452626775790512540729407318326016589712573861916635985954411569891691706141556904938825832582734048126021631384373034444891143304002735347883464753829744431650972279076385121781192581590401485729792342149070320962729731052568558286024473325862247195726508125679521712497219525033067620245364168967310712887261645521855496158542154899008651485625323622315959525785100646112381686782833287222453466435426663789906037032698427810629655142404033386543553889435930750022780051633563594713709436922398855160774670742964629800138634906066059550666491021313112013657713819637164813965579630035187733312948662557919992128900693375143931042078302581051055401065169611600739997971278871420563716963024195093626775940609362335546907503144614449162645806117034281680773715223284179078727860049763178816377843160193900646734315207966918946901091201650481366025080806510136940099073475641893459817201301151738920674228028045352215817516880852265672701175741932553531641017739746395443624955588136311520949592847058513703971628660701448381207662764151243336421391639401686520912287920583976140338923631015628642572741306193935665991354781547336816585473677311252023836471908099894835457910686509045921013643011607130780526594401482810367576829878047444399939328633877257908964739824922132865815237037593062921928005907412036846031848207507422791250335018420088523782684577666699378124040665015497998238405621215215762037714879323465321683709535221159834223526069899009695037612625675176681793073856430063885795438259248531331262866366770612744508726365047073750576346353476905378431655857468005991375324756789733283821198524988078440254642597034735222703014594005986570460777429466623268990319240346823635776419664863886627385251373095695152331062819935297990785412611624329090455644718100591975307868229216103431767008014862475251482916104079433442433025337922567074998303809626764359219317562225837161833138089466985768563794164644804218438928346274323154403718635074080056570183657925136598589764108950768784922404782501879539521505150672986718371229334783260986611899416989228540639994704505706552771954263598276433758970201677866727611336711599763935142723920837693341699463805469499745697377705993702955751362744362885186027489267449446256939326779641323973858382988098744538123107060704019055418863198916853904818340917982902885507163130565877364336740806744885165427692140276627951413495309912043996063009426446183742446249951539074867486915626992934785022413512990157436227522392712684792283158589730882667317526270260643100707703513516054874068078475828836744445299443653816811487169905488592787293969617143897602049527655312533604915435990907796471219342278681525072029017818107657166764049768395540136929828999693676818537342937525019574445813137421285854785737311070823030127770543960673477773390449817567415586721836967342484582515816199617153593996399420222860279379833668291537034581517378558788816439344535361087497220401342265273271857800652512826768207528699097537558420330763511646898660625488306484040830204733746766457975378690224369531941104229129322369225523143121918857839420353141627573983636867736816224090451483439356018061945043074868305303309414815622805391125595449777520469525314275012976144266206739732725281175843937887085597730826566419867345857066083157669642698262263402863491569834320309171340782024919946044385880599981232689877414231421775854446224919031607426360142553464669316773497165613084424624395533690213543810384786961991667487553478067779020118687077558060444624629511655361542861063198830865547122512977412490865231190206752945873078179168514546903388268984500707259380238144818631131169436100847610186017760774401533230657702804795354445327719301726843065090737539835216186727265199033597644532920813994686479765081608420828161902130227523316910222695697616111726463758281911636907622222808417162515968397340400325124036416079698178653036426500989241478379746070228542640281249189598708570248004777228783441548490268443507783900801859745831948566088946072896781750221130105325560673543346418208152741587281695532795389231339855645099040418242036290111903842644223771383682791385701738033573721103452018298781909644185040792710851697965221684947658552885610183939921288501334865035609448256450313601023345789637311551473483007844522263035799303292045166861468762253165406056651085398957305279626231741046581283908561488857555405576369852383114397040837793740799413938045793604100603173893548309335640637222708656473938198439944920035736209708600917412601704981064424485356836285708132833296851951484041550173813687000208219452932467654379162510504219026658501350769662041859567809678351422009735103544029183786508987386875706515657574574645589346609037569695756642644914344545729938590231709611524500677647745828331387033167049386547068264709393535471049443015659432878282390245234482139784043173412283389361520425342229534314129166710942303632145099119936850034417779327225937835614357351329342168494734138768230272723303297175299989987474851664020743607987886259636170858488765729066498929112330280795738144215287205513578646097160180994003857264360203014559939487450591084696563195191717575814162787207519034209649742704373606394808406999569767144249989702133134294563555681133465037584436388455291134601920604575687235815825168729217007285998518321842072217791295160455773271122639411804049869899157468992624095504414293735058009335922874164081624059789848562924985338126237734417014504516498990305461686982760764227027527615320311732055174762483352349132312078079614632084058344130445849824358445921822851374443568361362212703925489047620778958719238124916861220917116748523336183107436579896974364376017029189029009348669635984529573266567342162386858339386754343055812200895717295402198752258872884491975133937783013944419678922359769352102734558988747334197577986900923112158472996753431539200023429099953830118433218197566768136315880901052167209063894550152207309384009650045707627016935168843260620104727280187563830685210034635743896884961664302770583263700813968332011815899637407710545798908760631311177043619815633291818277273067840668142110326334694359993341129245125718360554563006037192987755247893654374728247500211827974937679238973905179482682992538377794714616686505431747749771530250564090542476359197236470066341717135331620462400540540187039991975173526335494400545103257998876709801048071534550440327066781753061069774469737027536317723826513744830680773238486946377552228086727332158445892919749122510974472828453954229877670027258913975286013217855105071271964684168634114195868420041658048062497470777111544765788138598786029540175915666425331513293426634879604398897291880342467982700003191813099087885787533751302318380301635080455452345020162993111973280594740265312284428676376488332917234641040218845677616692752473108157311748423233205002567956397124729682489891101686692638886155408626311762489508050123899127664420662248475338859058370061564137315218323745674795684852218099669101563015871387010267500019018411255325802612120247535969950177752849500249437736941263836425548421164755368360656828521206985885141774465242457165737725836148976968393936790057932119520384155049970074572172714560732937782032946132013697886498617539357081853357925357511908956741918219123380441111585403837222505288466570503792328646452634786004989468542375910333468729389748054035889367687546060964585723792703718917062248367622653085281417439224469597860702239974587897255942802558103652417345555377188688388896137439506365490999125938727082229543728808123521914228710088858703777577831820557670849354064072785010671748386538420921470581035616655802148904846590197210814701882806562035386942817099226352018301922084645078462487705562818221082818657551701632929285553934858645296385239591255267778309821799937882620997784273632278600822226483588614810847027035230689927320868710644218131899227252871028522980840372808621209594019057179308531225906083229775567363992279247011405120153652569103057076053124368973446241966727486012751667826263946177862649681836633391365292948790612016767355025428130289381742267585165394411512672460880568932153800701349654828341623023346839769971433878954621255321531287688984085928856842224214241689325719943493640133057121485562911209306963179400386726694829791744775738682757998715162832236185109696635084440979886964756315184155688408627490121400987144482279269431775852497455712803051440536352685490881675012472005024666487878998875636701432545953857387898034075747187889878047528259085142953445305683356157784711524062613608986890114843456706384584730221325038674608893470466158020137811997168656834320543551706243962846924464742199960671578537941033547600445186203607100759307057038652180634023851606175184433150669928879541461940147017365795749302330685289379456589708855597886928685780798439196910438041730192236006483553197391178519360062669412359939893100616223202520606134813577099327989353019337419100500620999920502429232908942144343162395474512240352915090388803643702295486255595218045710539968718922962241738246591975520254920209753005717734059486290362659714336337822015254485454610600804139335736679451002439183015715864548986680861587841388052594619663092737137658109805406059953175886052624855940216527117857349148692293870609835693486028936886373520550765765812691720529302398212091989476827104086128417057563238730194804362084820028197825348626619332691247535131469061331371258839669747319609937820152810790974813202889583989360590141087597612872025584868351925099915179033297110875245056077771472539437863222145005707947680949022602080220822619440789362816515153013243272471726118244649293144542316645681453904230785629612734412664983953235623912241162538602504033912207545593671357817626725589313452603601994776194985495255299640035852702020547628238314040133521558719180801165670065005259118550389796642961204015258169829794598630965780511353087885287226781555707870899434377899642994870136987831499012780009117966202954123954355462759200119229808534173510198406684570218826361282561630588799744913426183156137729354561817534960328332890015115987216255939610984050026863914102503647000708793566406258091320739609004597940830928164176468104003972714860107942202152362681135063850219318818291816161406194069121092214984295869491375228519599212939995095469931661627462395361285766460363049037753422314944699335461302385666226442176373302973053827223249498322080623892914258981865243165327789191736086562654779576342577660641821551202067103521176135109016537542080701981339506324455357500714063034513629575017053868599041755807290657789245638579610469393547380013786117250008801246552118192554526549197198665956701011755045056851239914075264120265730506131266875103379434833078574474659288797656841286832973797112813483142829705426200581527176071804521249296377615843292843184919568063840532477000626562463756910101252054244377901655999983008482773227603552930505615950800095838661876327503942270418273069945020017697397861235061290944592801706981382131354679280372001851666273766868868396994732031822992974896212134285221990193543421847754326462742072755380651245616607427827646173466873292844804328034591567212548989005384209882376102957202692216947997400555420567829981279974035187625699027130282035036180446657007113460889523396768890564421540899020760153659793727126798831193280764759802420134748002006632087845143645475592517045614839239968227588118169879443444819929987205446866655329698159277630540542218633113686364299060491027768794914500789282771786867217989492582770068315833452477337615196221439611996459041796785684035057480178130533158945568501894783565519083229061633386830830336389908919623183560808630487370699766638056686513632389064637604587868711184935369604706882397478627637258915923434274457883388319065121339275200564100044329269937599529991148846207632239979382281329048238452235330979398961663432512516418484429418685823845333822879658503739810663986343099439234853835403536212977715073193371656797224090667908752140000667610727342298749303841769631393923868625601396935338864302327421552364288787386765095994269039724583846579997456145559575027449243794413399049156719365392986108939776022131901076690851614574953389432456633529894739924771220266161524459659262222784352291625555759490787751092369313148247493004459901284229120597621965752213357332991256210574245579655494131253767665050884477354413999587891873613122333231077189504737218208461056547857674781843381597537030313006669418158245427275481637926903535671421943851882945494515256217765466038264512260092525212292106527047408333026465066429775092347782198243743136774209875376164514213703817279488642895597589887153418386467254915184091324808002092990614246802929004728481068282611792059664023863804138745070411880134391696638409260875293129600048953221587705135529508070239493000935201990774470368806928760049531169278718401990456721171434830949196348916120092799406315599440448653064564620388816518875236833368428579625500609196124448318026304042930190122095759953307164859166038432020890747775321597222629886356238261626993112284906621755081900172747056635725013187495040027945441790915429226073732011231119729127775551752160659393389809129874923679954269426117734044500189648746041562964247830844017011494094394436112456691651532386263542421071156917172474862059052388215305355579871060222608460668910240595122702963574435917159054071269635372444009249315900039007382608885573059548737417832535044434846001050306307951370783952450033429932810865282883661569707582949941889205019909704534566261566069075577603290848224859076093054542760660293764453100756192250073968161606791787659101079988604949641411934479128217341581362859708564591113502157671095716759764327735375396254377274507740994717850024029598327289515599072165132267392573093776588838063648407039891212690682188351562756031816896812531467787664405837307524330548788944715779999628498341017729749874570822516324825938072814334938248256125299309539196722702361132625007794747601063522672191425117647446070115959449274590530859078432401152554826153086616593999072840256939714715746831952916301549225281798395753301573588644213356623744407529673645597674144594990158644354152733307270616836929987978007165060148559023842587677821796385629263320838951106594952978680867295971862157165240633990384953216007526507709531988786348521618512970675666359249462534593520624178771642641058292880915372354204556745369589377401665858974276896705609225488853646477785755208663513779245696860870537947550335478720896677298053377834697730739613371158523625879852404301619883788271489192202452817357526824139238230088758299150987910085674167096477733185592974709612578219552307414034047852723480848302696617931342011009471562835887055940270453057221792956660537125199193816560071229709102500630489405945947570620154446604417201411525004558670479894675840354974408290451320668472629548817622192405998884627255044421621483234969014931775364153489618860544366061821354495244063854443597261033106210388705213174745653025821035900784746995400879159166879819595417475779520179108257118815676717122492242473835695684968867508357323699455806132179048820122081110359703350345147046053000481409474248345000848465301020376677806656170118130015411212642692255879033250997460571521435433437903473894669610783120964893240726029912370808819743300739646204725809538663021275689658180743776781320153914861692054079586861270593125851534178285986332986578625748427873523990006650596499993948598385377681716344379442287501536324733776507123371989360158079027008608034174083544728733551346482731881424095079409804458693321444177931782359718589618894971882663007694713072452292443892019006542688474301738616619320268716613493374400494695776291135574256294358955214724876604994758348250108364802636092818899082198456812766465147404382736962308064208702858127097438917171742362424584080054272416531411483442662552509155370522761785247846149889665631503992887583794750975210586434033024187180847051385532665532141006007273233878735871777213572015453394390113364291587176044486186323811242862517541402985044267003649363153713297798675460910978047331455287016756908333159940982726659406644529475144534136706889742272877737654353714340201652534069763878394304029467854188449798619518313258804749664823975191028750655234676932874300467135179197374534835986269290751610640765341304438134838617687243139446911826396421769895764804077782667668530634268372869259920641837319492770087531089236981279757834961754730688281057505507730250897799331176121265507335523045610020262690217523727958724514417134214838601556687386377849667621812787730395812196564474718471458695821964992156910023344988897534826542644757440500111868635996032515916304669259022368457787864527689495738448789819911585907757496230982302353114227529960402553374522130717463180876793290557209649668220990427635609704413257580955887004549327074448445224280742516634063063280750454537492741865980515135934219068104747394547892608658879319977113290443968563263822386079923650259724183916052873871705125198022931439045332221676964940726156503494870990607323515288583773710278919610545010244586511452308969748176419767993932346817306828156385390470622123614706757617230875395315784814212464474566408751931590798783737138747829171498167957904249615440151066625492120687094216072682732817828477070478868532604659473341712989504463687649156165802337821651265331810498373679433911159591909419705179546162129515295730408355326834248960862408770628193545962799689068414258791198699255589976070974443365164374013423325742336130607077307174907403869434310436474082000913837705909770111852375502916760264671935466805901491052396724080273974404210677040848061357780676855671213985463422034355801902939074745249812490470136940183234830961317663887800176653051136462650878958767910441976981718848168325999997404740083466236208958591837668164898925944917874118359338621926604206117019542085477784968689569442406883404321745750939687167620012100202003437601327889733809521686246385847610815673534644817555635188737256683165533575787943189660295535118186239708927972362632946013740470559152359949329011867294943651307753991772778876756018571002779536825993333048922158578885891375516796918742556422921825941528291814608943700253030530057424308786505506121182570514011376978990940157378649297396855047653357219367366460470640225041789809651597261472446261718298574666391256481858816775958484512322230101935810321706487085755861364391013309470149439679850235167883922545716199979343306498008510356754902431976403213147990599812898936535480384503657884658259746129889479045560733018252355719206121829519304901589606489605997087966340225430812046112625957443692548894181693026489982727137940156411602959610476856858514339915122833795361430804213318071815107335557299625419299116631359236999488980943811180031889931430391625997460813889940484990945443532562945197227421619919887538080764867462967779414642372757915743170135731895448041687920878444748117211805817530207758654746193544435056631252402816161510117258068409083533427768685799545150934122644822372252298456597632583904514422215962915481748286136514721466582097764160032453969899219951281336779825026485071909112914847077666360596302613445229635735786895499361858271752729700053611682107712559241922434987356282823982538403633607471238713715630049789108673356377314405994896689351215492328927517422042191326306967979768054705958492034782263655568908211485236735191435411554478656828768444316938674442404997259145045060791300401342245086604417085756301330383709570283872030309715538506807628436979204254313472755961662075684547009521560483535851045534250356063673945391134736177898303658623686884215590658662891309150853740618910584954326944515940588161673698872962512915585053957019554843552396265742546792707163349542200572321682199566726806292554007668230572237447834443483557918195524092728936675654537619465146564273970409297199996488907140636990543924820308810598029762393447739839268956773956771873221266512211900388889838298318486665024320458516006137559489285602220923543040574432132159299881646916343030361613217116270340555315306119542918437879298885081691354861769851033276169428843921947105858213270848344197640156601129587448422243558622334051349819252501806633497492084666294340675699661318741714064800045434201054000949277438125554092940519192096628856747957362532724094316007010661733231580201094476346090360264525067906175849050896743300293828317793276400117158761947100528213691405554844935355463769769936644142109652955807986732938582886904915378139476186597402463826461925773946553958421769521664018876811431906143116769683623762388586262744187216712315861127107266164749787439716614334239420649998791540266052482799294810517576335740624512331237917384997872190024112279301287911901926929176556772916930488583749048123803485352150534492344622811493021716591380089623577421798323716611119939754679443877987524124399713684854818432754491099904511844949615067856295896691015742308797360409606655512074576192240954780170736442849728183205591354876340942854744771551287858083402861371536816660830210273090168817359601871614208013209899175762867118745533521306970056760720800687211133420298044528360425888563548380215515571597811961382463974842949572937603031521624326828405077223181287023738336813032038515999490601467111378822520090324341790174210270144087618669536460365856126136864655069581218709704958168429700002029232721169084344102025752741679741456192991017351388214134570394831703382261288929587733706600235143717361053222395387590850615104031852748875457848928155340303607920746718822322449187587774048402501223526001332329844845526591303436756479896449343458397078083041021394814178632521233712074073539126184736341263386245256236221542866988188695590735740398248029810768921751955930034930369998603166920134374043903135067854460259658726985302790169790219565914229456736455957400904700553088901335237542169840102941913631581111737310480002863056496310188838608761242629844800135221768661972190194386556272542560738291606712829486472150287742596331324324400242178720297346729015267386753207440128557725744663384079014089638259437108394859373240314940688313447132153930161816656900073193227695870699843195272678627546056051513774175861998947459485761241055214920599360234505582520542878361341406691899229158202628582964574352020118358698705388586544013750037887231516372422636012432765301712017417955190494870361079045167810572733670812901911570552965561518952800667851974187373878261698469925500508325844032050736001336453194034039066920097402480084822124720462703606042731904078354012417507401567376700641900232124403926460357830076377632928235503820317524633957213009570230243568865953661053862255676170667604286549246135408033130876193355776172472270084917965977986518710718199215108084083249372903570741269376323689617692492007944979141367250901742707505563873646990564166912639090504104213182094039877259921989332250735093253470980572942473751771759360900744295710032911156218300887711238702991877966682165102645090726181969775175997180315992866811363212579119364736766643370342396848283987472116087895779226738499667002207163343678227055734639283155715810961210913070315254421083925652393154841820566366457297513727087270120244062337457829531431972843380934587847454175755358678501971775588618689360573975655381323319137789596086915101203714799101140192614215190236972419052708461002635600436065095658846600739667068851224683595934375809397579033688275771508866604267132285617858382721342928308164688340743162667910412238380859174539715440688294338809234044594408347060149709687265466423959931029943467890993197042235021504674607114999789705175366675446000033850145027576745957768171611057917172014819094582807384097677912780651021717867057255876985835625282566844137566186781367750513380926064814837686096055401284450406747038985853086295690490693150932021276687773432360143463556647551710960102761341211569994236576526262818408050837261322548467742886968676855652738299642232515932592815939191751733721420008821833410992925761675749471697569309914020757495022565243745192010863817946109396182676495971696257087986277744778439800574018496457446033644588988387344056013045586396461356463048468774805261362843643616977690590141914111616004759028144139337814645383308800726926367260601647001547031455870473967245149727896813156117515512670489016805086517069313066237522597833249397367426587696942447706703670259416180675469661306798743215143603511498184117155378121452880935960713149321867796751507559707909873237477206320839429955037293849659054041384816332333732739545083841481689362543519032073268681404605222533934780026920857891056739160685148434972225053993025079172534329707912124290073349414248105779786317300699099367694177785697001560034828712834378740534586490135032040250826319649080752370628597732192014209497520219996554971081740578349734982670000269461502264623781237395771011347380626733319220167449439142035245722597193324798596216529522027627304812464216529657202012034664769557473286889496800896326076167468927675111996279407665838592962070789391102926907805014453730053912336245477542476385171617348660791147291672468673181480584447927176077048436746819481136712442802429681130664390823247907893330205534184611659826492659826064988126475461340484248496035322546164362086873227194255397135877729774176631790930800047437778550714552505328297173794867187468868181594606440467395252764192001163446270973756317267517816357818936207780950261850800978368621149136167263948320540909912816219435471378563584242442966498533199459263636858207193042522899682963477121423489768725293013045013033967024198731491427471827894033936655540809512562922470742146145503087911555255314793386717543956865995182196869126384379651631135141007230859264497134691639356974719706143804504554023951093677491643143026338972808342223462407467214217036083873878310722491230432978210318265619035528456484042200897641488839669050296763843504901142552505831330408413109984697195825710243721420244971024936406074185068949403615424650726136298370351382548250549323904079737754658789657219977908773482868391625683739574044581623994279582802400579112038006256873589880480792968818651657622669767779961216425891487168720275587534598722188712706300694600932015836605487701735077510381935469399290843654384575224865657915788547264227110279199680247651076498997667537487162433136146676449806017204600025173224083234224960686267161911304652235029980101323445105746429726789661730213676135441375786215949469401246030383865112529482780181831369090248628660134714060022027258088967652864209975610679527608708173769775723781992578004991080966067657995317362316730280360405645149089957042214423995517289378519882453844783765530813179660226947575795121563150026590098474023117238374070683161812578511575183538560159253858625188826966590070651557210386751056094214320237408181229078484734407019673338077299199488797487440921228491874934203429217840276534093283319209125015443973485533790439350021054566313936656834170072480012257901623732087551159469887228282923081052222894159163424270625267193430408756389809913581248624275333247249697633158316013788392423288910830892774949401087680748172034892123103318023948305523364624751084545934005392538980105639001572349115502442781525804251592123664709138325843223170116899023512571402287065965424793258734214721734643461566093851902204393784228070600446156009295335511957269680072611575308752088728102669160665409777689724721254221114331350438557940285878874354715361113845216112379493257662716803025330849003740016305646034933470523421564761899828713923031558878030495408561197531487515573805758915647013490951421815789085304179073220259561105124739741389513157118584928500585513436699793432142691902759546976438203831595974546358415090664149067754308820757918408745086835657334196364033031338033767460674350691949965898172990002985644854100500338950093265193551584120815859650357826348988926333110984198371797095104010354336793857575132804964077452937483514474362313600499245616819844101125511976252497351132331443421686211713453785403254599632690530490691898628952702288089699271284599009068827033662145790068417248267832418979045038924474849686617419107497662964862081643898092186821986575963090729239289211327911634115528304005916802591733693771316775213512481928143582900582144906890584419019830099424760204782061237397579436293550544766674438601734995082542868718322272291049923601537265560938050701199762530752411590287068826935353113591513037695911256957469589907672738871866519124919718845729573333124058744302419735930403675558771437776735187227834196438177576663325465302336887489126583835293771955753516839126560872856998469997905687801968903516378478032439190401414075699150477151761403208062224812155106149039676126398532830076513541467871583820616207380648495660340804177365261926985820108526412767541614633576401030905979944773574789328062044609658764024833949822882070168391173604759135889608648005856482880161651208323417778603901137198951275204688050020229920652223092073023990290522056774687206034693133095945652153968406864053948740265158546379477278864036559216025068267604423851954467166944469281037998805233883213498691602884634668491460829068451160811746606235489257626987839134805458533501085070019784559243843882886677038280673396907312022331914625091214219371496123430479780985065352457438821366705969143629474428123000080186408308632487288806654657075792322084277882035270760392042336223477120261772022057463714425197524491459490730771735037086615445776053743120433933819733698845125868055569846063553885514142923453577244293816361994115199489084844904151798894238949184034770738368263297478533947166864268805481795246616498201267196221481953676313343408613235383183093203187176316272052090251835335029654842353155422461335331005842251928327223095724462344838939683358780777412697057373977344800298253537360336170390471429903890563491762584387525406930009152146049537822130747355926629735786483988979356865386133428330460121823561755165728756678153486107726880931430030244427116946534766568318347215772956047759701154565984380197609279309552229814014741512758569946305843060820629970145035547353505685424137947767237526620532311285715095694591881374450225704582984527012601431176128023164978390379711630202775014235974861237583802179302256220795306471683686574556572651734480872188140578566732303494248709673872165981623697272018727538095023501861480628364518824910660866337576347072688800567106732410254524523434689261530227552627037898333364277046611393414603698886987136985578911563842270575885829809198713274431948591589509634510426215901811296795319354390307017722664222061647143397856219012066927378473192129852589153820451443405606717880939823037226184107588757251838906118848382117848426437245157509339281912195917540741865768096085470352805536719380983172726460087041446797201643988195892732910446219312714724158091801280717036276349080907122439031161459014022614923255072270215297098494748389838567067904303020445025237530514269570247725871285900244273845657030701540211839309792226939095224356523912620073279612417432842251497701686640874009276347667985270988251699891589823135521280414602261975076069657429188154179912716985027489822946773126136104312548282163895875664735833739525194898201047462881485120633551246049735894447946225146022053141526776767029370338964731013351108289594770920795035131695523422482035997190799108082505227537797451387984293527793526728708358352068259943202877026525578550613651620645559775199886914578376150934477424584264369334391714170645714751612506952574172569180697590155939737448104975427910273413231212781686163894263161674897924292436356000494608746047090356102495268077775579329554368222486882940122723095456111320048918071969035041521242158902577596011013480093691881345756571867111917300142571572687717137739962697390672368973763372620099627541219145800951970479395682894605472042932479059518496696931821162956389322020448015626328768442217399141199722126909390037673449375017958664206814017656358417296702169369032226170576720709139012607329081890464857695888321028235911399864452925375254225367927968583486143789293152731611047990786234473619605137103660981875107464267599952254089223659249324592182446645770821343748394835140360459769093908404290942605836329121442963620338120473628493493918850412911285050525011190888580543540543651344132618114072139938607275209305402229247362977212431721006568408215523182444810608458162430162702161913696512368488992486091756484141694539104718552283310893498217469588501000462406003397054966106111921117121914277397559562181613591956339832975036747317109916012481366970613178844854962575440477704303313045718041408070915545122610980288251495803845097777083738051840164395689156981433861448816879139812637965560809487995789821392298197699627479560416080944020190656749746555116165227562311699391341908280690397727514190398419911776985185849142391774337251147196420281585027719147801559047044164155600289602346959534786681070614276523956831198723187887309705847038693164080844414879318531524278551055684642131329942297905031392908131405100430608610912417608675016516670391682921778315143060840821877246513816138329356606186023425822081837930284039705782252482911631686807937481983816054281260728876844682893229298978916902855598581581949492632906406787911593363603420898618872489819692453529341604459623003570053095420103977954821381848217225102856449883561778709977307874608276384418403067907421551590731782804053336940691752311024810875253640871433940570890234205289512679291847228711209582927854955428540114388243376348844746055720180424674014438187776059641191071870915793547375662570147112025660401322228839357766345689718464060722113218492945742540730592530966525744093912179289991971951779527924084721627717494368748653442526285275054331921412841281697399509091784077604133024451673260933266453998284558270462417373621985623382442479682241134693307228358579797199950396588149678113802601808865837198147656698474478767922675941948303508588169136650136780254452974254464331869205851417511970776792854506029531618067225293359691527410189631563087279100021537162080043795291862630423089330353252900192080902208187535796553982227466589688007212735773285422275659642269350897833063332457844121047335496294272173925692566873688576825985666341501665749976012260189483110044078016434156423294106156033292057097886878508738776902987630150132731113218767903101519685195453886460323138436378235355447240818473120403871539126006412819418325031046904335036831334564417724544505897971105381352833744865074984415701824877598495905007856709931403732248159710746906879843127987769703307411622621308265332466054037526899515221279283579991006103309541219318771273819661980776289531275787030235589925411177919846053734924278154442185818789180542545950033380497325801035365756407352265153080605551161507965362506240164652798725815480550461980409599642330255295077192193715268278746237779361858105520328142525880778266361940485103674700134778069244207135927468675009815316437838296857472040815329683549731531424758957645515432328123800181475209381696550136734765831551865933429962540557670816686783198838512512989273333412798687745784734885191177859798694502555544267285174876174990723554283654940921874275198785077844990268062510236794378229508184065730823469992727095850097169537861002436301653524038780529789310612838137343245965495921662938529673280627137320022697715128152988906452693742532049939977850009160205627373763087581895228539838908711693020788614573112922185635773236640222767166973228713568423588883456695802276892891026274220799728016016877382612893289791540077722638293335408199106532806311126362109880989003767557004157678216005066115387725644114279083239822271423173583493959600422568456202432094827159968989099029340574358113058511894636734619688693466030182816521614833244691919967123964755031860482048494475324416208435848702932862716799845452138445151463689470341729106535722807645337768884513220744933844647108969123362957046789580131858131263526352283298392535279322124898484181145878054608582189358872381736226477014027961808949830045384212261389180508581038339621686640249775895884706250857317643472970521350142454855867707547417467872886399142997411632520390661088526442349245211578625733189905760626823818622173671358230789427337485498728230844934692274228430406393772606183950178174195146632045833614428613214759712951460257035611579154589212281425025138844834166110505193754217666335322417525174170998083551965313438219073035873950884000256954255515881266744487370249616797471856513815154601509264618038220339682316553852239513220314838656072386227059662031027603503835290462823983932913500468436089722745946994227441621663978366993679567763845483229805466257968891418583592335300581267824563801193987524222247360533168947329309665044771660987454571852312012716181147542385612957001346305555229851519850746451991457415551951123096690503854305585862223124402267146093507995654691098254050868836192390254870665611399185688569330708098242705866011900810205338937874257089941210489645822079522084437775555955577698814414791237870423842519645365192589950626448216984602703774160005568683382247973012916796613240449099296774393035857807019334846085109421259801667946576545357097103238072034616393345022380000218009530697147142190079967319190191322354123133854614586229257852623074499420251422152084359785768384028693103581686349067389966531722190652337646819434942094699550416502213101180069517418200706228363280792980252435837392377985944761805391393069280776282869714844094088797895697825766301757028496214419718714110685543762203312807713693006973387705789075509968692115068494144154931542548123162790539469708735538911176660997521293322456058895709226922323049333944849882276768624635732651661989484830814937775989311464962817281035621356097013637449854550474216027487113395077298624570698541504849602202025604681423402246472527768819992269936835764028674715989637998595654701602826446614354171793129503828238267096378978017405752067144578180686788132982055805487439687292037501922616994534680162695052883166177999954088372090428329840164409887234363757351062745859097110751336122405487724946721227613110318345589089825665677586231496203879846010992765779715861169743218884874293402601092067592460661885634713813682830171283576987449742602888083721905890724005760351951094939548337293937070586206168271922161639751201990753832064012169901399826112107820248585885058321085758961546029963045414558920588236047094350023227852602493908965314564673329158618427131331207539962173677236501034071410408489598249002594030092625287331960095603789641664740676851627840217412939202555500402649703402093134726718386483293938081320604321579074116476904872530315960406182054707656212302268320472148632705874031210266899107214186209955649440915906477168833444659302262717073673129983734132700607301013644208458144972087256187824609896258006647982676532776374260764143754491792020757035442871728339926378869296734727982654755483968156556831374189730052076439005341877184394148182621233026539126733659696160111493454135150097612439440155710956927252616943706056727023926201201734447564494883451101052970418936614224984718708075160113145942955866840184791935879784928337694222653423093332247341659385946868793848534455848337159987842575524973071892407560852693620833065796317076242595987432224932834476764078431389537675035112707090613394350704882787761926095893966619227672091689368048541873253134170556329629522569809876854949672786170129390853009077582586400411927296610467948489691570657165050467458100976424101675165038962620880349470042944099503217697246558248039365181280933482181865938716401730188869695607944938063972867678203889466342986229581038573522727225228842190526003463804315890715795045319517289299142500650471014011108057959305758291284489931035239678373872132092414869422232000162076426093619393994946321054699234293364423059857733019249196996876276383530473335975716744581776882711719856611475022080384874187174198915604627357474168541483514268852070993125495635331143434753712488318171707587851345601652538879036521809148464673929933829855997458443012432507646837966713840772444027463027116534930916217292936928102901836428541723394028205676420532762106335016399304244379571995218793080882490888692199379473109246691266749347234518932447208039830062810698443164596876501102138533985426154213254697642100118607503303657143354142010786046791771641903740844953669548504857191638196116077645720082107800633801841105676864664644042241556087768828335431578302008074996599550698097527825446765447086593742384701724479410260657758107764910257909303359920610939936711044874700264122782432400831824732833774770881142495556539519433487237024355809648491013362294252362563707154446323209730250605334743973515393376055447279078961595273560800437807857718505532434068153006604555420767327507338495817057868405567587435649025765153512094236026705314443323062594308981845832189973347580938183842510371116616128350956745105399417158519817484917568525309657456133922987048778908823542014153738546478731114721362199179341292173257434215993156578147139107513172933631555402907397666248706996851418886875345680367990988302567959104923507326214239429652484846309135401349760823857822922383909298399515438918871516468077459328497912361016449671914427778281274509997408071502944615093974783997026007728103827935501703282202096416534039907689130288161256153415493355178810265340562125888563607081411362616182418252715999088910822521106007374749612300042302176303926029602212204740793065894812336380799046586913114876615999190120151268683562789106583561258583193426621317044303826442129445499033551824811567464453524947286008288792089965613363525667860803269853456187105094232669170800613862352479420614327411222264412928414235405343995800575708133057442654448490335160747756200774289791642342617444498267099476056094642144374406729993436392577762873334257025122001426238083944725783376148755938304706129007286181981293340615417472639656366620877208005300534904349839168512811629019624872948658000002276610524349496041139763687447130947063056040406754422145858746436995015779811910966353331876882315831662272714742585398308720995778148777926516375699846357943753927951096219513181492657404860760120079408387877889057782748910091805704692957034313087201548109758547094449886060834772238792006164583805188659108682554547599456478889534804574517732361416907098486453628504942799274474004420812924244313051881847931633496396046144501252054921322334329189302360579083783682685656222343123189162851848043964484896841187594487768400415717676702855781380782871172209802285505015854225700268848917743079289024694084975807350585915254721987250909992391854076975025206483757205542524696167898812512870934703133084104227161676106820283330764469829842009194290406232984010277074208274267657893836834081852997768085634707161382354225350286643932599891456077860405048072852552285092665996076970748782423934163981913574904504591299637452713994101584779973510286127856167648258138156992323833519105668234509297088589805486804439844021366214951893714990832820691931581295324401671321259109797620992724262348600153237312036455267337502726254802970609602802504594326961328252251339224434423097906405057822529975388475650457169229538167017842422762674337012669355681964688347741686657678398797075517506940979253638275014953274400865401194077681054105841587704909225029957961931831148133972497985204450956812852705592827072414087875552319203885977637069771897155000349939891932716782290340349398094261272756525804184948045499953655281808564739870117270596695654121566730734176686085334550943875886473785649621218994093814970903777676657072237388204677845569567267062891478818920719414319000360911333662623499993276014483937108941655896073567625785015314039719956135108383693839656039943986755592477304085148318794573461157699059846819246178281292551024659501196691405862059531956656627405339794472652515236129790295795245497186203659170094533750027194689359475445832398874371714135432587827276740636425061162716458903565167130032313640908387925631457183810802531826691455052453903549376365622978002411081793007071861084868836747806769281738927547964942566240091748946050673414619196957391571833322531716695505658085828380510022974217095645498818275219957971348652718484257082668094318988876436706495212647700161751178696877104361204258053432730398372447521355278906173502580651473629225453525809580000659551507097114102084931497506530500680918334845956906241571714556915888635491246517939390907963600907152989790235534467442761148440342463802963447575638528266529377524557794952418137054190935956461037542383482519402866356931411326139841901588231964565519105768921933445054399255361097738423986208033795339896454242117562935028392560768724932338280631278613456815662389183111113538147566446029046457389460736485255393009648423273964714175134615948313684413375967535686491766672406050205962797958793021310923065369688485262041317840526945147280625848698278715217541543259928962158732069473160029868481332620558409044484390811242238898841827749271651616897422297176832970656872736186301644325072805658514240095462534202813738513509147857127567711227931778419623765892640929034062145635854908593151991197328427572712749341343036431420233929632877197184640250888174021807007139597048769032415130078597748544622638946229774173598096465697540511371087505169210984835167886591329912298901365364066668341720607268921492198953166749397832053671417221217513250345239802516882152415055491949515787666372382719231064744983422581734890506873985551417817495238168599682588569076602000658297164964982546011916371215778174076150705952032386742658542897311449292890410108344121497395991837788047736569682862304347796922093092598953781396271266577714346386872622207687159690307335602581411926138561705101174148265557006555157563991402057856893923337734066434805188743441176761763030286023630659282415716005531068449976062142438363533882972972205437967614251181569333226409818413456453700803091053292008922491600477652680105454439116439012564303735983785342851329998835506727504387808884523708482126675231509748865452772431366721955016641341371541027043745976797523167165863534782865487147479447859720509192974698338443476221092401413726089340199740683758102801482948338837433349056959602351979548834992240912637523059444700873685226865226043275706522401461601130712939189197066134107432208607251331057871474795329085618554500175262006871538342590803169951931649428597196663849355291553152588905445861442073688204980238852122508903715832643055372601260081269133190951299448986463347633302310335467184808774052876025582863363750208048893138205858370427757661955029976454150529384350633574918975973316804163483972885634017353300088911983251725874051855039082363585511056178403089930237137911783581716025413314353253190940580370178580807387295265519441125396189341385991701944281069053107160619536628558805459146133621278578261897743475789697806334929722875023238787893208838083590647938483134987352747130107996251550730848694551672164853456875953169428540800365408151713967135872074403850229102169416354763133828662621780876433363928980985547691921213654804135195474385378703205750790044082036309814731664101809770810907783996186770302584370249083318187186488650213894139663033739152560987227434255214035518635884011623564663754339634438623583643653031985217122496218306324375955634092425813499653086572745524117437226043808014079581291906228817391521850894205595216885096637782220015525462652201168693730769373715530531402872739725656483701304116399060476015128336323568804070938240836691463860261026594525996888370565165927199658479303552420056028525376516546867230949586309219332774426162154612755583580872383880336959679323910097837368828567707603086911121237165069462945170918805992178231031575283013404975841291025001978083368467429439107899726035104183434446982801438775832297092525818019066122403627027164126239785024974735563819769829129900301621850504610874909033207831843352103650146250514381459305297813020911153083751485142311433401600268423661692465829153322379155949235419859473381221591908370127413652422529410849372399446734173826098208804877753622810664295181556799596932811123551153952457213152739428786117431980234948663890532315499958804890083144380204224394077442007570725861628821669329467496024174034550088874171701197956164939797410967518273135968428583685624685173814603147605414645245712327324619541769078532937533140180451649344779783440411402735632748261711087502660936923262183310440733392614762268203970355484961499406864625670083806542893212126153026171411363462963982573168973197350460345685412323627677714301524860001407016296741050140127137094559046451538609919158144778722068663430359052015278418276820783440822168370213758090258258158829784041739200137154520803936987289198559913521071819527765050097339849012058704091762379375490094473464203200497845488625403523496543885773636975224352789591303398725794477640338389214487312352312229430214827248581788185389427110968616933934850012879668214321145868569903129011761418657267800730574932864215006484229706093407963267602912220407098507706053915176012569707858235998030368527870663556146627469576428997750806491279647481023877848776193351360534973863855751140195913690533533343088066103383600140349495829591506173904954046424892665713747893081347277596462018044837174593039685813274002681958410913426368032835070604038265359970610852754728611985732725019274050576522572349490502642872059203185458047101725786204491497807242848388892549899911160637765125468740303518026985087281971496438866446367283591763932225170123725226500995604968558755993670502859986311994057813510796092835595394834877572567502574784892466419346739417982975095859825269650383652918923085259328761574524573663926024357359462373349209609656550085614452475911633948044580928859061721715219966230246552784485561468746049251307707352679312546762569105551216999189930044890262281330392922604747596798075267203364368324201426658259696199499128732771665662202945358653760469324275144689904290648321825161364739968574327605849517935260142656285854815699618891200230204060894130292441827505528710621056391820137612199275583462355193885810631726795211658679597974142964779082655190262066072675427430203106414317802324809493864390192700134023909712389776801354962201509662062907502226795870135247819166033761397385587103861721714258153142207943534700937158428987877360900781787802346475641658847153893486123801713322613872852090564609597857137235172205792379198230885323923058341226510735888316042692956706706969785254361185728064367094496788039651027381931330212682016396992808512270520538574442358213721724149413451906673919929984551097655605935226902764784655419224093574261582844522365703403233764623430336041404309088270195598938132710669760958329554551596543006759981901051364394765295095052005770402220989279640893914174990541923680635297133147616327297779961813410603395017542911013010361019319756470879578847832743809584476293920780037237750728073375198392667491697658546149408759264623380067383304878771963932222896576959358992874214807066293175093452723846882444605961917801357421548040279410074221490098605650171421196747407418601211154404700859012274132465858717387915584282579194634228830400685661870812229973241504245172457942500633731261938164769591298005303331405344128157717928034259627483946961951772774624555074723162931802704402808157882849895889259857372328631200234557447298505503024628390944806808202738396082527022127268229121937754924611066870463554848905099244529857586658735415031056952058532902237083396353289169777332122421551941127099490683870111840134256841174612762077357692932708016084649897143960038989846057444344677934498092712757251403631115689129903239478373563769531454450966147371225639722730006058663964180434669277375406958622203723235298814989753569227331583833709716849115172499105405930083778637199520431618544296586023425140437885768314103432939816334794282281639578275824848879479946354218219903396560870615802298412544294741752668437081229661803900915352833232892183546170461642711395027161665957772423012650937120834646962744825461038319084034791046600186184951159280110213533470463850822707309919937554179337021383014697094716343279989936757153306015751663504734189671477113043112037204803277599048252905045609635868529829374514712596236472622676824573704818062415825072051847053781853476500322503635589127080929700477163860961954201009159817087782658466895404602540729868393324407189258929952918499886339150099801469741736678868951490520185407493818862872866879665088469328112432411394227628671351022756365598805600893115158539369899242777537054194886640622951101441864213811869439718458760973135593190382485716395488100865152254867371512468457537332691392402959084961395908210620017958672304442026246002430656998016496656218127069554951611153685156062150213675089959197522693850469021361996247800652960140736067528788466546018386869656299879664906033846229890320849287444280778743074111489410318575775645338302865309294634175114211795753888623382608388387428352514609136188592330408978121755908351602918810175957270707037816577224601800008480043570916284462250204968857745513089625940771567619179564791086447316977545536455009258258395757060423579909159253202280579396732807257267856908513790294268586650838121983859431540496661931981335137454687225935125297281409746595711171875062938714464119652104837538529898711973800155179539089130244341007335010127430434014806355228368487500589036969597600655375354333812930201705793174664509058130072555248500354778175770789455703381246893158136878123907502082867673338489034777094077222486760798814788394930689963199032447007074599786772484984592426598535718358969711816869591707096102403278694812125462273057618320583037391735944455811900622500142566984832997896227007878235912228722512882688749356363331373047701844038738020207822612199556749836279586296466060981083767780861435004281905765909563806419442041855155382503172596203483551753435311268260824164878806597034228850414532590987644726880604855449235186024087234296681261424965429180260163162517963578720336181518992029658524296677159371511578764951601606804064877621266490627480267327651758162970970325400738339332607292919961472832730790651410507411508880298151221594727249805130869352122334406278808129774214725758806955321615238127144567280709443599847853004553525653902141502823425510675478855321086548642708144584068907531578598543834915643612058534914836691674455516236424665488776555352582015677296460539855418856844746333026499784960795774160940424558149257111088790325134732245737710432448506874275181047845605209552230835719527938063522567205248140034531641104104878090105346389465189379870795373792362442793171368625873770094476333011147513853913760361513754049214263006180413280641945165989428708231428578686659224452623558130152749671959628376390898158352964981991496689622347668529800759446303498069892877688767387487440727481621132085881623446603632840236061181347065394103205659170077041903486061078794690540011439777184779856975738410810155079005343438364432181130205178506166463000516920511062551716072829869311053804580432204498199943985856483527703433192021823974659942392241619676680349341295275629306481868338580789388390496665810345658478266140550438356615065776246170076351676803848661248345687278308584187578340274509890671471409601528281906219186855614243024826785634944335591370843817042066216686699295840977280662261438950484381050856407519983457765938451468142934288917424239449303138666699873468812394356106394067826994546686762430616771387693299558683239384871406211496749249559752097420408986723234163805931873719759120131227345599228359387333324421319910793413006084405237716947267916167626784865312787695181583918591961942885645934975964617093881518062109703032139401073995428184737697854385620777228706873999624556900297256478316622152544171861491367229834071508671309749708113544346310507432328389485876842338230583886652301868850298304431954840452004499292887887830197347902723770342139493231063124800104127171524771947302622718082274580747948913569308633695222422740899378629120589636109950361247735397359331266459683942162111225573790437919817187801242829371079488064427875803492517022334104496892988012296383130595612292421889832598214881496516384961592173908278795075795676075466537040466320435452506612897321128266378338812698712144176061833107747736450129013448588843843484194435948301187247634916513653710007800398613743105739154716031818036077797933956885935293388770289144643307833316241614209258932545853365342292454133408277849146888360163053728842996380167277409809073174533927064691099728776003182286603816749336764226246365764977109380545343359449457416355335856227184803974629978884763060775158237700512982332476548682516368717720655187755859065098926430985080211227407251362420949759770650416456909383374905708042538156192105279868443058448524546850258875751462966183119560804852244283153349472345581097922003428057972326445597597671836443367111117692935427644949345556329894931009209876600979371655577304099337359579783299404748690770879494524817258866422242272535007184346571337553735437962566071202024455826063879779721326882598930896458763413895748006713616317831466036534401460269519053982710693787828531813945936161606425850444066081712068551521942553917093232811150027472420480442715260359974659511454826545167923498973551776932759069908290517047647614794527705900684859511489408495533923130536163554332285944548278005187472503075049877185058874125477338941980837930176013901984595531855122365495011013237738263235713685865409328056237195414738370632751573138075474725447657021446714683093493563672521177958587905417033714301010565358610486996028187618424360137214729918358972872666489915719403196169634884382016025045895546663531641029909815829771397482726837545990920077700766126773833403729121865200867901414984168412649153277878669661957568864814438896840869558366942087855484128096028162169196579593295147020983304433383516784533886028228718531166413411611351352320786695509259127963828266840284464749030308038780677230897345692436415254341144856617579519488983366230249956058497235419153226561400115714060157009498782145598936618040383338743153584726421827787048213122930568627159526670504891032044641196522983142650755117409374595779709291901898078854868016510625710243283119364879445846344202749361691648489755304185972392276765175831386176829791932233484107113025857572735853342470817547495251000986597769321144935867946403514616027035379824070110533754581376777333602039923793051143908808586154308267119224478722767731150093950378724900347546979287132552356145299439328954292449077373552396317467545764856328267119795056869345506449589989618228862935040063870003185093074194481684179711154223399944825053395734138884132449623493378214729586616132103816505380216089975084493312536854480653368855054253503836524963706434807982726292816939454839882925626174972578301570899281361494394464480278645454716774719777721598739864554874310198942555635675038935778125705374788688092924864467571307373884362071135760157552992364574641451240394665471559341788580135825661793199997210896831506221562324009131359382636141039199274129925868970986124189141494879533230656419106912395164541252637713757479871941130031426123384075350737345785079913613238792315816922421431526680180845513815625907332580634613403745874538780531697054761801672785464151668148273470367064170541580043915464514964445913237765636044683874509193346677865420197207676123479031594543955280000010970854165455214479498837074609601313399620120451085874757244792766526164061587216038755090540683324718780776720615227855865479784752688397922185701419064628701729112277573632035565106239257466182127129729850779075135609082625440902229496187342753526267687655168062105410737764738318112444143335999427063021243661879435624594023693939812392784384900763246286758334248056148922214192200214237547658817935239103327120806825508808228767883794683648768080270008389658960921038771270376128744879000492135809537982977622112907413549479601771300785153915306678133725390618117350303500011862762130799341303305520145346982327930078982815301499754817256248863284569436557077558234934511675288202583247663674324216163104670582245951476792174345811633275276353006537026914370236099640939895892696216481693324053879650873183613537903687338921892889091691697391671430712616831321926954643485951768421732241521814929291777958510889957770344119681607801055766679557650668661776970938044529991761491726908386649248466276623861414289548097321306978085782463330424946038928749462829079994649787653803166052961001392390528441186233736992073388395228273009523031447240287588468672580166588892112038980869701891657350115063170226056529459436048949849716574671585770331262856604190467655123565203428372354341910860051156243577691875770126057495369718613018386490873603421604773624288983371456381523469247706619515616423345803912212068129468673907357787584372514767901024357069886561637652179584199935441922635873161731805511842561655043603684034653982375322625264831572325832719197803928171792129638308935272209702772107829186387105058751709312147309108340804400104831840566490216117566639706701423376913949302665112958393497853340823372194788432582760312491287440395549850543452958795825431711710508886930187506322621430930329126519393154635244652826250071004688202862441773237606163785896147079820768793422216392018251421082435608693317063137507629797707223558976073520683012691085223655698239387044280423169326713517987584065339125030500630467435019381593003980748288054639983423066976918799201167456191122762305612662993765576486788955453390370169448515605925752516257169479926586524061281005053918057567604499678757596756177596786318302914054445402986966222523382913133777548327636690041399755439307659517767314299689479524939766506825723442675854710701919240609178146513908187560734334977255072436489457832972000960334175643876214331454539886069444260205100588791271758437980718356630367009033309035178449235781127416086321638594173434732630649535166341894327287270393832572501022277559459179966157093690386096907746077134477712503643049124717569215949333423044173058739820523244101741386962185739640420155423338949739134742012389564258231929626249090320310382328651047991683848098797196372821846077307256418411979856311803673714719954846627533085861246085551414679095291227795256623128012471547150755916124995840693220369436252994228147903557042788549722122349916781046492148717572532299036554088244484446605793406720221406757007470368477526560686001456363211080302601526359228421299972299763460288890323115899851679841060776458963600732120575054605699710312140340797443753806958807845223257668682382859291876905299684497771428566902413328442009851665819765606803174326559498316133630666217955284168387078383868655372752136054576441769264079301787892653074858985535725860480832841705137602339103964620305295666636404447724224658130245015155973473822340703577118846983128484171906016092382554085117866301469739191881683054494250612667229954011855284906152729490438470073267657540894191571722054589358430203524682755636326619196777257303639566538283821665772032871620319422214397373624063542323037752063549794786267000366709309454216766208379225219667224082412087501510134798093747218304022423612684127436674446981287944856547685531809838409940535471007193966156550660127807272538194923932479068926166778141973289609590255267529599269766758996874719178743342855937372295703774194679979752558401778459518889739060246075866913534090381355810090043453086204963288830608315081231894574560118877477084783545619062079842291248967060861267317741425215921783875113274809571825892083827095980660047082524140195004264608069536506553215529312843077458467165720956161975189365246906309830078673395439201266881394511509116702183014399094759987052100350512230085540752866038877140162742464178932492127978280719560085233881124964195384551981648402690889887450081357484224727096273280691741662264929173131375618949806897235669458925306503861422523379852556544398651929831880872399371777280664420746097913837634061054114347433888523550593974448322429917479254349198720924121706282771830937342671269547997024847326140292459450014126086636423071923325985320424072333310405162759583986880777963072960718479364211276198275626989627909065069346504321298799659361514238780788814694131663453855017845838189103439194644005201979956774575760514976718128295184127831362550872364466378644745060033725538056784759464507684867812832211194132734154789452408488630503616035151037476523401831178196404627741125080164427070516579279695558483534245755835699653772712876822354669049340525597313505667540291519802458847769683891211102468445382771613680845637829961713911902762165404664280654650650446881441124687886836827671283162949871962451185969248739246932195920374314380416600086411060222023207805121833617220676584663049785943974472139785697629406662588985885989742417607278082710187964292205270135962330341309462753580369206001534482194109160164446089175509536407733976050497199200451565153666965535376033741707603679042420941605119668156353452506290334692195970706793892324682336468907744293389024470170018466126850430874345171449131617598611739048338423153402655692267165075285977799894310735604928269022379665027456485130039942849240295960613826845165488496055516732996562730392463347442059108606628453045592984648971360507589343897458428051594748530487473523324382075133788707372238289099566227260142110051695126604452559511312804978832647369295471411980548893082143729803625177980921076282536852420917067224066118445098347371471168102275160999227745448422354872579585926623857000152681031944566500062624123848692993861336105325437707859204785466016612933296997096858820203814197626653567891758723364344965891519517755761837741502390481944853931181993607675502540701180235019586976598322406209982976377196168058077510599913124885818249234831457018875598223797023034358737864789391242962805091835622498801627191377409158749714215239449429379995236383402624311267686631935759973248524743885143657044941032932985813221880186702261436899468235662315979014361965796886459156887626978524938100113353859059148149523471283234176882203142749107398021423272994423462808819493701220418560242854823622440504206932113597053105130513788214769068938377831098786438612847435704908998444851738962182832539622573496549386942489265039996445112780191569436188905881815832617346306642384977181681113367581268534068022398150744071161499067453253785115083582628214695355372953937791330762546632646422176855841579484938119926285653522386975133390935569562671861713056362958469609646658684619125822845705515423224490767027857367134838231154911498978303590542465087125156491786741795556016091108947774348694940385293317069393890347464396704646405255273010656277280900033568020422603563850251861765426729992589050496870701392524275376097440940631377785722875518197771552343912752011588971150954306948939975550081567262105776882514408739396669316390332356240837051092934348114856828875470175995577762808930219460951721150804062339362412516190837998089966316861782603041135299800970146724605726750891502539937646076007354258616377077527196782338879427914750356974236993419974688573223526191962548182233176782858428101238526956530497689927873081870148967711570765793484819855413645927173377378546828306951942298761845530994817588073502426016260319165924604708518881706803921333411616415444507349657373726817581897607996470992614807663291520497201485228511237816668622882568977642741111702414573518163598379934055460275508360824003459517840956817391035164231535044558391873412211496887836228553629277860672710845285909644207604870663856723760638887460281782693134754831193991115701785580622020437774662782410952034616389592901929869065231966734609096896692954717458516735149018416675898649873897799020204474256948429509377490608478642789022492220527682591131529943794038394731198852348740142689161355421366996468188292180550264412993635368094201945216907402432840417929031670057763143882268054721575100417171968003248840625491149286708809563460375322588608958201323754226297497526923562094215151573735750986934673589289002519105552993118976675191100680179343063899899525580799687122159773515435117807000460533405023245019148548841645695672650170929834958170799017260446892066720563114303184819894467307981568567674652110359841860989393376715096173764688465345132972192964372784629821110362758497093015065675357627709117332082927155006850521501696241226979396469080594169306036775981579701854320357057682450325313842822222987231789580851081276532933857619658131035116003043359231160228599263383907910010798202418580998702699503875638081110380083054824598040285200004481708842063817313707806431091733049248795564851007812771487978949317420450191640649417607942134063120453612049684701821272301656755001156129832379506768665339032581979843144560976138778424756328460028871220553853316348414788383648638327714359652624899397451891967056873286420541783599173153441538686351977519307385257228959151448241179298143543815569132021725299817104615393603407634896818613969432808675005046323366524099738128151248597038223721879143989339638953014921414301840779340162602712278891988417117257898015290150529042122382030627181328661186359280636078873143482942029184590734395967080188504418941880146997386820799804416240137701259488013494198124410299638138588307577220055512576481053449669594258908101612581431986531433815440215502364075770299177826868666141569992641076674502750994387376045880191948452878703925580276924180522449688246743470030455440672530728092997937004329009414668597553127603064930575822012561498059375947683982278834154822685260484585253302084925824539218549824845139997240898919452782267752597311997538583042212389415059388897888206919814193920804799752797325167830393600976694581967876368908322508154923270549524437414125015524886183238248859430598322849298984401854251852708446928649211361357091917017314822192495530282002711800629516983621937815946363930108347215750001898851880450449347593621427402287442108887959176166240608783556735040115677621160826827205189249929107171211655168123767381283464152712402415893459399514625789048095913599429802045830207913624715239566604032939320862635118797008381306468926252394225459728837448179595856018913245383259055243248818534071715625131152524630250180813995507360446751795070735225017504795476277105240141688852497559993765883323857400350999375842981818932051767546424421888811564341758140234410932444148013912789502373807857012738528536032631980874503827012867689313137810045610058831019390826628181258513599789335293822147975908650521117315727246029395971384368381383914625418351408090550219557482550693148557804365837497943700924518308880675685967269045862300775331599233011161648878003433721447645318701243182056770273986569339802403923589462670893425424728041090974989717318512834592500769575735326296459471488411708991457988004532953935113134934388505196206578634905147829409802477567565653649986225320156156901797501299642824366451384908102809788677093953349976349053558987540445035149765010406486988608061864671614007720706471324571854450094335817878875362854019216694733364657865720233195767390342929518887797913368370986043526449672082375345549909036374472344044358182160150493906278720092040260771398781459283375028315469102004950449269699425327403322718338904144647349325343905081706782666583108404053592324236964069146379640663096826729094100011667199986539755765236333249349894186872107163709889584769384870457053434070011948391715180067171137440317984529304564558189734624817868656485679476039619054188731075359051321822825483482459765446387702564167303879995900831889644606089601196642801196314079835481467743930798306325771221551159805471683584380218578845373929121847818876038703328148724259941684570238698999178714505744173449880762005108827305305039683478848387399864087848369058801084982843237309614445497201387161519021182250051052925415718676049197889089064162514006957137442455283944422021073133961929925906507427479150587089796349819783478053751385918709098775818718213633698479695853490199864027794665105520925392214974441098078571250438750557955987334150718125431881470979091523854476301633122123688037626270644752927722421837127135471487475218978007200699631894182387545216217343959735310545660959373685244179852108702977668544305888696482334625155486001250410534702122080024878671665698615451653121665966766613485168629265884948365477776969794715067602151774651860911682053165542797888534801300896377225777933437976952905796120737377816629137753380221988601980254082052904873943842723721066847458056812146281162979151611554476883208174494255070427449773358774005599874614269185845101216913430093597402446250148134299174272297298927572876456985104203453328559682436925697799841546707429153796752077158197742402105978185295619024730987301330614666237209219208663862055637629439572555112749568174846123870098871840194735174581338115631913204013942092483566308361628386129837129201503821025494120510864509931741855659044886518409742179528220067810351690805189328017904034363965878798904607180937393769912085579719816858453694631258686906527161374861284907756179243641092311402863405748654601357535720748796258124350061639886870384202268103733767171450835082025030677874813412141003972138064176833813074194234675323265338729968587223439445004319121668388843331298139876102599326709745996590756659312452967565861994855028863534729299312770899827956126078948783362561624170635559884502302729815562687702697315539053735384156712043565213416735326943545729679367369420377013894224430127667697668644711525805070247933160946891490929866896964504715864798827841983541793073319263106213978219052261144600964562688037230775929032937650272517104960250944351869777576868364389921299408767925177703364561113637952732689782379787287091679105819482385809358432212570259186329351526194085844467186247978684280729489274879074680583669904132788701590889316742072675872640746111658015292959939244939608456929361395137408649347433752755861619990190279722063482164126722671772190693505009049121991011990577905647530576768732646536809299904307262136191139342556808643959343747112502129182852639011915431751061132175868259529338596326153288313760135110800434778105112728157065695407163378889564389923693490295394248088498147426924592424065196408765877696292212705554024226142268405396662324862504834265110497801870538681392223367432497828951922638622672583778462147330023237966709520265748139449857757115054961164492308235670903196537576605448433243562421045134055178195879392118080673298743773182992689047754869218126119448053408069628812038576952864992188331275652969670053729300937356373314248452191283967731698210408754300168883138587773689117803688629445228578097812452368059775420152647728527701712980223277278615912839248178182231567623761227606862944976422166328206838050563795443473485142972626827949455087662981611085657427954467811988171160154158218296371576404236348047717983291688937435402318519270192943895800096890309186787847475290431597244952975135984176665955164093055633182767172575235101770578551262005434314143388179373297898545999534927691882684760936635405547794280350466648440934723369667782683620318013661377683856295068473926708713450211474003185543580155907163338275555316397537970278885798311785486995312252768204004582398735821296196312623129216982431834726632869626779358281633650240592793435613464476081883226619658314667680467759242599723120570992031414301072344498341075979943519813996831311279429625197239233421471460474769880514837432894024579885071317840734427745326704939942381006453061152648706264634695280545192678894456103159669916060132414911908505524134327495005899917960893984561841837963196119562069777039790973966162412650676641007968085192057156414622197513551068905174960036359799405467650719417398675759258336769287996824380202348652714612446518268457685210399587803670766715083813360119008215497140466358477499048240877248897389884176141706794216265810696900028891965289894494636383837578096072078582921597446662574270648547913552691454157365128159917166876087541488850216173307715099276912896907067694628863862456346759349212605071165748671046007136287668193805326904807439964372875716452188487987399631394202546727309625074136143720033188189054514392630536696688511801912386139368819182608991196801672360616173731384152046356932557029285001161508663634532883912641511789077830777218722489970753993305835761249870662894493470751507774491650042753743910435630935956738044418820730761618161873332800791063068379085847628349436852302583550828903005568787755528595481108675139572748531512258555223756336086028459131640435139862182077838372520778916768357686794644446819928264343342768780869070569067731292239936346693213959426552318269203591964921484609142299216698807874126127733408606582255410237262059906582191391932167953981115111655773147101089360664774881723474358467616294958567761708036389963118911380686276378791702796521669767496890466881313420179523815268001340011494492460555009389641331471704375954667536139045588176637517312124109530941726202272412357957513540770245944740004666711475968829646348312087658264003814624845932610956507816318454936292519295653429132261450959786455875345416105837578220224537551841523662826540433405215009240684134449641056214854128824251574177566980358080367561930118693745103285718628183440352557807757137686007805104311631214591382815901922485924460668667478331752399183328201169321634393285843923958983520826263514372942772275599525905899441138138999446887696924724440318610200863821706839788535833984622781218415748796608077991059719235591106825018176417147565691523910919933272607706726884906387243556429898658909094835637130405411150191959627199782103764314312394708145950028108813482659719188061613604161277664003191791596211333281280267569183110058890525897703720746351879610419201173025779940597581539060378819627003122820000003648108825915110724685659476431454859740587102925840952800768717498177477605198026386042557942574052817249390252348793166488242717146374899889505638865961674587157336280629339234393151739471214616287326948296862546295865123508862742113663504708742400835705595012070722659189127656838350068570693099878528250368365900150667913122594859984880970196179280808238326240835566546385216008989267802252490329897315185884205838822172000456053558429886833010271607208669611993347277033150545606433747775376464396416756694316887590901467753711430232387602402416454026814825669811052366377501714612402110464443124348967442756745887535983092701296557569200081217216742712666146160566917337985098958775759696974797113822765586510695826288690039237903662841451024774169576470138756827655458356997216833291204818104795065006512535718222142108358115725929510074738099055327501880001819362122976655342201083044262785418425161511269216321304079412320946441223336783971758798904539943174659308426849509518040230976572273883062465372364013003172777640355799104188569522633755142353086685344431337479285099276911301305238777982421884482465341325639713128325517881470316376378226717773563122693800750061523643235530359263590734393217255555241742663402997209945539963204231221497026094873533790387292933653679590019710866738454651152885811523078913036081354499754911408177218012878700682750347649399302936857597130519567501597323841627765813653474952431602201954295153895492366671764656437356402849354642780290296311378259192814540352808343236966590769547219631466125967806837639091278420496075527755802332266420479045670863778575632661337861343133301309067981211251016208312286533668750739740658878046689533545988003393460350814419756479878407149750431394167885478583957516520894619541407957776880903990513436162552334817679087053353799255601653879022075115150622884474604356113585862190428172152073440532614215435685727105079412592375332261537479140657686849175059772119339992854958658397373226423440860162886962479134141274101331447215678531538531353529161894485234064686782885834353049254805994115110361424651271365583590096789894941471204429057566553042145778440407497245068446821970915320953592635308224623071540626895365011561806485180117155701646572715454796146125057179473662954462838583250274488884372303812639262811508281980395471431414056837624720735718494855009289438918223997606110232846317676839410799127785925871296329607625880223294102846658888309349210260360460830176819178256958265092994801197462223584112389206043083653030588564240421319683431384353601346776622150964879750569526331039648915247808592122411776541055614643888491737000699940735820285026061378239674312666952738860198220140536069524239266882395882437575531708368085706711067596334484338025372138578858582860876554511663144861417829936634690035902783882674916396757184445259875435718475564672735287431662527486892850342899932866688704163762829640876931605408471466135644619223873781533381491201206118156619052905721192557887075292249425111432433588875215174356134729858973439785877154917577751891433466148415752161529171163195470570166943962699791708993092454073442261525061375186000933935974257936069675575390163906408190333236835758520830798792187820596489654231690000872835342963971789381856314364013861783313873759501102824402400196285449727948230325024026553747008762318310850565539278359604067614833065297826246572529878825814893711366781380463035894993233852135585074446378301164916055964296881066856407273572912135749669896158352782094997465178115235193698636684241686177064399722233776719662071613912814554518125258483955610897668468199299576507079165312587635294708921886419175096815987531614572303945161752045046118739186129190804125037052338413460971161481876048894446096882889045597129221722914672706333709376445485811911668618121806361457238647638473708433780621918424759979901722679544839476432841959591645344922580890295209903364599139490712884494906165236900776087151393795550557207257779220835799711072025424850286547529785524591877208099952293226115681778263814497027204974539691764145533310165379497449652275159364854907493231076602577119999238223927990562740387672847619021502117751540626984493410261412352254754625073483104743773881268787286373380475952682566023110806743880841170449169674756223908977928602744227016530815006619540322531763424984732135130715109792647302883579263229438418927971172304221842337438547778405769131228414170400347074874680669090346500298513761899635361015230992805219011919752300428902021120480030760677335449940974273761039469170967094178398484369553829751022517267972271744735883686254648525317794151324880031607720540000699394674222486208178177468380581962705754480931680866393989086984783459159678177201715584330123997215701365904834379135990427720370550055530259492151910575935907005675378344928748168217405589444824375318719939230771790245446841068214255362910181428686801809828537571069194685300542251116221140236762551996443152219216890009777369606248422256411759076349258472683610930429848548410721384862695534704829926366561756007673998281865123953520647784217968627516502544262680779912670346283059839787505395550839990418373728627779533586740812855593287145837343643987450196557771697564087984359844936592495663096861223469644848458662209696565788050583645405188185346279596388154425887715748266367377226960488688861158797443792352814547585933147139832072473217205088941678182874213946062645803983176070325198277375133769959742287661277990654500425935126526771314480456769344453816585655312536313940085095834770504031716372186267722598462676573519592927087099661641446037298860824549889975743958286408775268251829292747830548485210129497222079514253494932796161337861814448016852169235240969527960320959332216467153977456952169158242091653672670886121916658588013917564488835052991221462233485626359515142922013834517473728396095016346818527786681091521748303965547920026275191347810700408182445849632406092791659154166918641276022628287605982230227960698053832114779003865067473574834334660038521535158490229870450588178145115302276263057666378552310571767835378074398084899050771714280452582435134705648872410225843710364251626707222926518669840510603356719131643296099025296468627793214361189292431825142695604229565885278721663599521354186813162169571404961488790208274003591837954000533322304384822391819416060367748327190788334316104018037251378425440426925329430920834958763687058282105338724472802783218678756714949389197634365080232174606313656788216356890066067419471209493602498174304094655836169511319356857997577809326080093472404009196897255912095215665017736105477324248999325198631644028691935472396923942129513932164643609488808630291983099961761175646427176156234448832632007999372256057720296242695754997002258078653418638195530327356617213395378450330438703188408990335971605085300625421810233012378434056553350367789712445199185574497951873302666123333228777597358025993451013836804894706528594745185325118927624943619387458303222972422644021100362399061092463654464374627990038043085805277593439459793838182947423187240221157508782290846674961091433038713639048930238570013033724194875872031628242883532252451183802576849668440169796418883554534345997971978285261104934186726161171492675823625702966043021084538765035629399231622689946851466981971000653807701101265494675824675344030269235984917115214146032766186296483768690698356524908664736343360403261327457616235857698426381958706507686511615646743148333441876019457087823686218355960695229392122689666526525280355533296885536824655027507341129038322672401614354170938778377294424834357077431940301744379386809427832613005498260299313885405486993722062239264652746093269639277202047346957258678932617689440333335678136200038722527799109979060672514370165538798994545959364549971532318110709976865410525383661105064877799718277914022491536061914398803430609038280631480720697595825758338816115133302492238910047656802396294487338569081961977939183641233850833688609374227102865442876033351014436778009404452121146302899814020354310425233426898715251778583083541608363751356467542688350351717456038553558253676554649977491687209366143227199986448161511070515947699920883153235845444283800046782860079383486441633567461382986282254537797454315649185126139348100530315212759363772010178147671227727875473106886020761773107111547364455446656270000132107798094406794116851781665307097399058993098697421080449987887386582364927497792166378442098583015745254035206707338108188204379651506517493198203684479300282713010235002514730160651020196190058824540946511916036049709508375581850484107684933700207380584370039756838561896558106852861304487689977199408063713368940509901225801042883231032150255153011776606999631236666622279333929266154203953561775338829626264527133299427447879954270408511476546526146422213136810258081621107505286453879227448447329642306208252248481116079396929741177785162324071001073829768489976254250824210968521019911626711069804566499928160119252394556866002810053473755309043127257078902819805712411477134252235366641338275933020652466912085130825649498321089259266262561705170146843377718606110119339911555458837125617389728925740378727666056462585145135841222507515268869556016908699551315556238685834058786292268174321175085222710177275176833552121880265630852002571358053188747261172386288093291356300854841446960963965022424990007921148239529214786612284463093790403582358455220398961509188091169523469557532646425301358743830863549250604098477122994106929396077293867815032930565215235821394118085888671111908721290684380138803023791082350531539934733301915935979464268630761440285384383039628639742977873312929162046288247029005044666544812358872057149566539493800660178567181688533540190605076302643416693941854435524741723181876125725583635616113513951663480082215651781017450469500080872154435236157918386888979791186756263731910952284869725275134146475162819194766890470020107506827425145854984999964697713871172582323399989005247415223688827812088183196188405775976691836702054194215256991382286322329099674322219520279759152725633167036932508020454510578620174575037709804554970666445304062348854885233541287408982171253997719113462625266148314993899990815809860834553419926296475797921718068656916849759819949667478419284991450933546431374255412716154170945695137198061293764218382731723007723385391480565402631801781214016755936035129032319947082890950377244062131095494465877652265926419434736873085239978397551387782871703338370265541295630802846098776942486693307588575642932593777949366078815081631015154080621125398946376191266736778181536697010144356909254930040692718903626726188747116372090227358310193198111361096758094928651296952322741066346052188607649306832979524059187182614174910038813997229208377134142543955868198352022144935143746630763467161467373512291002561403417002780951400521897873818720611736842659197083227519875649650556583905054543619514295820882996305560974271950267229206222311459915627885153294110343920715710778016319866731352632157719429554554576330754480808744518600670827473308278709761028936189879528780429354048170494452006840221058675059303265311251442700723198848981074051241349337792178662763279749926265374797105918328638628258303840653768318463653789409737878129231394187402895963772969498056408735530449501265362903079800890335597468665712298863049021163850498308042336624907187110783673582645846119675863995591678374152510797812965270613244220071153037789667422102559149310065332560756333169959373734721754821222612301168195736835685223355757873473170943486203897460046672003212315561987584968026913595324487487249937524746814716414899090314146538939957950229921988041053295450170741975611716815236996267558607072075990157717517066733977090206757622436513787049464620277000252896299811377547434539056611481721142993344926121381475166532499211937810889376360515574937356183051421455107575752175656595842006408078639708136221533831241434088437522872834604861532066515804264363287214880411037401006561206042707811712167077962356893069205324569481249837273252587555169212967106817370504245731402001214202170724982152245700035583241047574704306330890272085043680556784910305052982713910271156758458779251544837073653562902787628729391781875981899336178691051071967389441123813373478728473062160648508732228449673765719778991634658668152281983043935149393327196887766236812740155311771236567900247883450057305040211122563412383546762279527498967176108560073514430995389790268404659806103096314764148300939990270449970333565853890600718242244241859245551538407297877487785515679881990607131189740230081569065370302421139565425936673410314924482379011995809315250584153405461430653279820919067623462013438068619539268339267653595089012116818314807517764882167373097117161954458828869850573444033405282546167050326529808647280519623150527882762234202205084145852108985206045809796267782063753816886280336371754893308426272471949052903887988170941122781837369808332581335381917709894615146640298254698722025758402172664317945421655388874619470322179327843254471912902981159445434657792840840511162017655875021687519809797780179388427481448547559820288110112377088143871273473201714305027924481994407886195962814700429737758075887775253318643763779566708622265124608860346002438981548233414425687149500484482309636571415186803355821871062215099390478334998431470797068907289751855250282168878794098801031974304245761387273507376415203579697506983812753906248105076264371096652536377797108207460366677175865089181744305955070472493113564345550173586313268203729144938964018763988172714373834713731433848702684156041228326893093640102113133236795518461435359003920213647647365183527571653131630095923090564401031887222634770666900011961594529042425144793835966193425528633092957074167532952133066958567827642921406038919013487561515304373969862107706351736124915649948458001395849965458788538390381378935588516160156370124308561990863963848287650596333197116169592382870153269412149149364021608963795835257535510634590627152535041332663734188701472451284081381152588974019641294936412534673125921089120441864219447395463546869119119885081930949420318673600434262354357616585338199101832309364374460797966643799797697456390627390644343047301071771889592211321502011784311380465203779201162245395466349297844987230013697894874659880232881672008072317786491298529946065852405792339248261018934273935456028891200880278299404746598525825269470587951361335525060861378079249604662676904960581411009589794821188502022620312229539093984276500648240754300665280017770738754739569404315785582492477691306961967305348929024978635670264347035500356747727755636565455838560639909031229884209408885469560631616030392856537994978996544596085757776139183756143662498677989852607112842594158910113443015565412186463403300476009216305630382066695666090536095996115932264519627088923219494970454085199735958623506471699022819334094118403368445080362206169256310006678822040945439483793283687953323649737966524840980488623789247045776461212631979146018645527523984199087499527036066224325348426776766893427154073343572936190582444879347251083317039240208791236580702096728946217724955110488365361374939228713384598949720611553804280222097595819949346619652471876685559228147569264503211268718552475999826836673227906306552897239294373301319483223002036443216905718990189730218641561947369903288783624472275364134808192306257926820672046514538392907358702517825978800750941254540093995282359796494732620146544526592875250688984446384336711811076939185256069816350548831752930812862965464678180728571304814646499597656931343625488856876468542854316850738794789651035977644629430508798271380084702038301450691334044318478587673736533605600520292978596520788542063658071068044436050237344408949370294068584000318844827002392018155085374352355811205283469735495878472358921845653920043264868892246928911376739607090997866593110499963242931879078127031825691576544377620898607969311264512094191686618036282210431233598807984428077943404600623948653666415955608320723808247129509859226776949556445292143075152875014219327089587711922340020196760547220971252061743698473022706602264676843548753754322110510257138682578426007613731537987720514535036521591264441387001857127299360276127495804390506086745037438479711216181192593858118123875447011274977492257769416451766901932439074124220221327403019146593626292405375038801644184634428228203271508510136398529683339609133973771506143316619256208285510058202974384211702370284361674962201877076518997565502957216400428341484030152923631469383734557727909149696637763282741798519289058958766457156213572778787591917461385674960737399292131840456587611724560267089722710559979025104832206831824942833255162360495485309401876015363279512768091780883656232636282146051159265857550434571257988842028694062271633294594322012404466701195506907004417846655448291872037684191616710124095426080353601120080969679116637345647679968243835902352141921505916993966696479756623711226879504465345111664400369107118550874732029298517804842468130093729528499835309567913372755452700880523858025479958681123355287956760965762680861497662014011059744140774904969839532817039260835070560859863506790264158658622015721493797891659639830557733335039163455945669342563549291142471470654479062244579478059591882637992416491848711344901155748049596839425658811494881044504046581361544530914678147115217699593209813937216832499079806657005752627946545326669607362191632038797044948094488984436058942597169067822202315546653743943207334982993114920157286174335778587183212979715479870492796501697438056226850210363205688575903259417615002788632293640516546165097506343981738836493749390376925067995087937801554778278796181962747082126517683412916755009923275771465989688367184996709495846243335691054138880732669055992949262301205819946360557811997598268457946341372946589273426142003204655749728275570588504415126501950268689319422350828279299928845160411401224322439481379946303290629319106730198202919867253038368862218064294359598188295842368121603449036259601964829033558322319586518154516392044548990210376234498619719324664494166684870118226277521598436773581402630807796119427055211228211702940005753961239684423080395568425540342242872953305192281276676280082826876359271140313548229611813817103399048950025016582153453329980087003461694280440838676646538935444937750524538333193191120342732977587271309459097361459501319705138867785826531505304435886768279561489664303778539416380873614539536136238458676266081273867571393820966445503335597336159682574234985091309883662183069907955436962481872790942500757084952044691492942099889854555716768162683404593232823354028895331522303767174835351573912616360599726852452718806040619652855130693129292663284098756652908378294347471357619255731297884630880353150320510361841624459484783449881045720952372843316101522206508970551007788698766027801619232481917168271789487513818435789114288949409926023019324773670171382933451594708150759418640068758600804875115280711059660226434206924124681342356954282416401613860547338789778776417288559598549482902054406647211666840224754318634105366613538404259754486346259094542102714290669898030766419271837331052768620882401326497653209259236678884701352680475998402656347091220259691656031713976044769971303086007467291442366763370449336084373034725761950396564201516436565996925760518735136274408895205713773272108348097501332575256766892193823825085874285795444120556924559794660971246986757697824394716078665913723565207684936488830138982189766393043280469841328035096916778883585141385417724719946920983808151196959910436266449588515070925081461450777378268667985411437433351871460989806130967508159187043540638879601904432827155320655074909584616773121950470614239898777656141243097467581426828739926375049008724067300553671108942986940525602867926081536854432904439999317395154020126501079777243219370328167430311315062593939486011476087879394573121904248318789694840405152608766510412596582299098244047859015839278317105018813121167173386500038165130334003745006673258149631244662834146491105922685791248520725417659408515235388777250047931244922977049688222086314960637495376642178039305514341665313418170393074533199645230467124298935646831770289519336168103290067254681866005062021064503655121801668317618036345593691135006627656096984467512066923696194320085656227506205876075688242327474485319120414001521152757334329280157836188524912403707373815189472679971685569815725949533922575430929713880903722937738985664487374281750968160760451662839409320517621790585395249310187213361754490147896969974550306308436229322852914885643818048161482998649048376241009868882441464013886605926923930776133455723510473163357987415649871120784959972104191753116255142518093886528336792027569060960283593044366926118010915588700648066155399712336026800942151057912690326597045176834478047337119326903064776049484235046239778049932298541532236067487345299575620826143859170287255602653579977589184845966881894373594701053506639335891785138672040290613013698426286528979452010626206012141133927460754693927237507396491051020952419809732667274901572962183669511783672906083410993026408687693889767608025726201282903154875196226945205330832153910524126799703837104922253463456016014380937811722807816094966176001863375254970029876265909871508999078299366551155348710352273165877309883926874993580868240298016288337316007362995093457223854855165278157173059552143655267608432764475702691169552156652746713894649221302515941191735406970506061049563132684358566017370235699268590916448493920225544813048354891568525794550676328659505199051239002286176634520288539583474226646494954501039880951370468548134585633793648970492714619951517623175379765027522069916845725229084872057647961531381835634695202462782491909424267469684843235337750387863038559742274077729703641341705921958107762365571142360614467740576204735770902850418603996992046529121725766866951845290516548832405018372613296786449608307218371880231379611449167495861782118895677994274679780926986845872983292315770472914488042743795440470679577423739025558323579547850417372399545687458621810416747458171140851245424345056942285237226399497396190095731909476579409430614077304956011435958219690964632253743326480390779804015615296017102666782939579458755304647049068379406146591475569242965959378696092111903976447175345602952217552995961618522309648204839354277475182053366214993592729432238232238953022597864866711872036224268616066656173642329496753269894272014731190653200681241164079521901126919890179103553456478041517347104708925297070253176301338596514460533339075729946356111896039403866723964655046729706964439221255765840015121572494505768215316298444385415059926379859365037206603250286530051365445334434030589263973409155584307904274718567630204099796959270161630738160183721021781224571648983782942072562201733184980737572122548284952422175412034420670439149003000564749248040908125250394469438473261615682488700801610628443454218865013257292474913212051408763689256458566834472136191868898026908907155424382650155180591095640121683260191169037680183432262189392344664934541822503193309121503145604203950373424595669116661463099527385831683797684451588802207554469973399320619963898094545928043303196153395271534235692313057908612324471612244981192047585602999028521417208916116766341667491880753359812952580467190674449473556329399642042298046855473715373859791157433185912818884310319016513739951515399080059303303003937391800482058049540114080919407538589364819568897089401374454146743608919338917805412563620798946867528617526525118922851745068551782117230291327974657924124327117430075784614735934101272566635767992664814148901135988695530357257457599394198273112887637524019861943812145427554883957722567548571438364779969131878970778733348504369742152175880281748472328143326841911113565008382301130890485664567487969413886295356739467939708991284315388362150011843582265679193545226547599256909193196857710300197389400554842057852916470780862310219429674400262985837181128133574981374794915574684128031156008866035718825862611828545121925549695044424395782184404371493396721489181781674486565804671252695675916217786114225719826366475655660998788661957912153091498182199519385389811583279327673619886167982111925201644682231376063971322097048172128317416268797669729410905895482169514042180429709119590545004674204777352587613688899846082021177399416508719290924809000610144041823418890234165644720776225784293356241617545888444880657092291189719890962645013928516118245707992340500495044485191687414143429008118277096557860011517088293114855946419031997588694147387666381378966159120460953138148756056860892944033359506209102350190352421892629404543315695052312457010858269300985083182810026286419926468929117269362673155490067295014575769918254008595611197031111018739458517109133283857114282976287942626650187494750461654339624566035269657570835827562718573427076912965413084355797008831855060862808428986648427307443719488039533427698082300898744284704340897424650755716763122228603706806524864591004005031651748765533638168919446142251987089284748552204084593553406289564308647232148928641144157850153443583716212946914533566407206106381296137279808184177796094380644709143484334178788795217787857597021923203952796707046049578754947785167641917530047800490482667814778932073460061036536645160986272346628033378052251959374911981265595129727318661287413527992480063608527043951345930789541421171070212618402161923887161988713397969306471230193445478721853123039209643795804888230680137708776521792024545315598518453338381276157519535105590302029705400308560033299146704654694164964107902708146119849122757376463218240217645692133465130533508175782694533322541471495053154707124044959481255778416682851242706479763492833682734408771299014788108449722549954987447008483149141647631272221974959605261700830078892459626122376239532760478506785593915832629430550860984819190326698411439167391185471465682281564562164504384246403217601207623554883805329380839671504924510121474725142880590581454311988297072449933262971128538374219839701636118133992798762149237027595807599873849876996639401778037294079701550300293191533246579486977177878321760389214616200291306084377426090513567145175089909456492177235876582028090604963562567034657284000272366979037057798935374766380464744717499019830670196321413816771403128808528688208290418564803729386506757346143871809360891575087387956020380634400897838749650886370277362604102168368060681265208877304138909956751565045180084635261432792398556217124596358277812077693946380442703661781561912871068268924486100372801219559243039257326526488911401926929796043628323897468210523209081065386247749665966451834629384740254579615826861653115357247428770696710416529335643451555148992855350756348886611903080392703560837900545279492741910466603002989276953882298874389345637734040061783118079096240689292853302152308549490858185136141855091342073738500286584419301542063551184495006641894661878241221718999411947901478399364826794752851518303690890634788380306261115252694364125529754178910859799659295980318219560612468765453536183733690625477599065609807599548751400613040243129298368257053649609425367189867290004107515015452942909664320575654408835979575111299565841861305192945483690249860252596117149334678315685417469562729272754861645316005101593511229704274604658346158885636189963485167588808800403112544648659939752825240965784879404542453404709503246127654811629392700963360744025664959381024209628588143961690256989984477021540795506847241398265487711093970161827200021668728210210634604343589516380660262600558134628397684574014429671943472504393065937999486636133492266989947217862003121348644468819703432861627908947685188782726806946573693854038632197448808263834747438695814667869812700852414618079922187645837863035342388946998464766238464472196360395025427603956118894490350796068675335756859587864747403899174337981593840558639490879131738319788776263942222894595854709340761770323271012597002052134519506663732289584760910819799619868956614693008525024742953271301179126836014756748794567846764381502227546762995575030314314582665890170679916948099124620164180997657636605703549575579404389454576481171560106300972713751849614357455903924152920009446450479647009059480554508970037706038804086225421083661169402533985312238945279759712804011308315725932031133506054201202295314312633286833666007653359591686596707160027094066357712384266545595904733483678419910627495413608006881908786940762962706515841172702740975093010282980312577196921118236122399194809294494270796711057613461622926090350593232751064635021349819216523090071395718228234473500501892390782128190203223053393040235048658181861658567857333714586418946204032682428534893281314885362752925278090614198841602039673813338198956328244256308676473575177528116379321376799551493737841258869103670257613207635620803753720967440443181407598860822569013319362686683079279566636798406967805112657583099410775613476202833830014752747720806422430842964326131228252343124214948878772047776547649121932544356633078397465287022844085206225778608859928607239134463952374612256815710866691357847358796171984802075695485096452517827563221004611378675155772596126517765499086712650237051070956144672198817754662463172561456363249512751696782483903600474688835749890933467738332639747640862728711408253169258905655889014364330910020419499296109357976401919803340272931528986666114450524393042207340646175145333910592660277639053914022882617757394831339882492077051390082408448913951803251254172421061901725763678470221747887908080492591196325342649489769338892324556832846053887998250876803074091781453510906943476051319299985999263881454013582055069768055038365748278349625216225058653478921938709512997726519781621385514315753603570794252818506248318936979481166640599015542645817866371316408026604867680927528267938893880349054010343947343906973744430209257088118831874139145200774212539147852929496299434745818240746391465258313724506421847430961098406564890272189903223840073695520606627089984018950592872989350452152447647234003495362006074042474959714169585716275662441036613000128833718099680893811380444720442862386431492752477883754673509513039174378908123756683427953675897256447868075644811274772358221211389814634636407371077907207121880522969766920237061138331113296223611630298226274895629952992287988647546501562404280133742923362811753361022648826252495702070592621890515720203677609927639870065955760993643878072177937056108620244689334006946474562109900023053579594272660176223364982983125723425098793684138781925968113057421686649237477860436957613628535863048085106797199155612371511378947479514606972271925015789635273114056461983969426000143004757572766336232391289600881311186391188289040928181926667031834263379973179763841723189397898434535702710936943232851669453742680058937659623625345238467174469405958635255003255286372587950226065870560091026939355712507919617606931580815990376981596815518047303457867078389670592030385022880771173388830131358794092471519045417825329632091021423120400628540595404411850178040776246159104518053493225857324181932678326246111574378257623692565970910249403799943912298078907542058648980287072686233027421662874654452902692592027948090590012650167018224604305422861503955639026381311695663833004679712469747992290566708659990622044191920420533276350256246982208380718299906474815519800602744973210622755336636083602496810622338725794603569696926633480202631846702065889868764372154223638822560175549802423457433293733452211639076820983152448324646749695178396885172560398678210640110441878033504504462317270708720019142819829822747925740532621646043029935633697944317734265179025706223628852276208734184181663143500427583017578744169997244132577118929075798586170535781533478811671419846198102740034480911865162086303295397814226620484421589657618375747653856341510157971210104265376657679303257688395187412913986304699748555395354639116431541366472778234522188534600525812191094503435649371898198570659784781337304481709270700292038471651899102560493505988582111110031926442722765752585928914003312166505128244089502729248171642252845196904523972691135409733018717224019894594908461627852903097491550639008094838870997880389995789867520865128491554671282029745544087706069549330526626531625750621871029308505055191344825527130272854276196960274489660763033482634697480168434328289167509435057284134237502315642356337882717039406128181006639845766955672823902219623491378534010050879817758343620960502880969692127487282498728891390735024607421746729556108215150920747077454241075260624847092436874449411250820595335395648284715409035304868560461078230358570831021101904743725554397186877135278653915774142050545771137939194451879093580273212769675225773136736467807143743633144754688911116604008109619593126571918715819400441704581496031803639225042027085270160016512189076118596749357641672572473533478123613423049084685836254276680941527733552247358966424177245934824376411002524925935231300774075760690617129602235614264022867701772277967307365747978306890350049242425113772442136659519919980975876524368947488478525709087543438649028003268498252583638595806761574456976227636946721780074148920222700269754435435092970143557690390738288516488533607253878578819504683764736111593865891555714665994446357490311703241678946138438202979054965822764385170092392369373737475722878410281329796053221157347725129560856143910723759307312137647504058384291321334217907515189041415356982508979742907289783540909169335246108966663668451519270618730911834027757647342556977611152038023756810014548389578148876727778676774684473059916622368027466019330091379639105351421680410008268316956221073394446274750532147355625057006153479611010976867477405882514742717854235431697794840825245079444052955328656765056023799991712560818227273436115399605015465936738502076830910778237891689915671870564214523194109700758955885368683937537102741904552975196960005942987034484276909079525281528750933484733593358370813526427569470010501009175354775469222958136909099516879411621982970577707721351098628072782410759843517277608650716319460204782095841500715578113332139121179962351363537697430582767275454759965433430320161997300345886598632742888800269368740042122580477866784122290091001842681883004097298124361604005270203931446946778135560409870923112088206034483880433071092725981413849350181132527919141099922608347551063092283158559876876986093717784034681294738839310292291854765858472913525851602370054373306719812396792778398011387660282560054642478862482512041488769946101708941685467969762394842249953380594852700985275432698496576136904945711314509846646079335602039792060558391459821838815281185902590157252745568644314289407698964961519713361489348581941761859167134702387126214305700884666589047259365384289889300926486809021502525796272761814381864799885856549918504621265785604598102399200402819746677670977462537257995018623921249149870268867398783806709498797256056996585876260626532185054957251922046038102024940685250824534143075940002331188980242320273586338499002841318836272276385625885731673482733751953956572554869403646254906920414337673878055588250501884601253845748029646377247344837927302429079172652128753265825609359664391196628973801397302678290319164759715756181532787561458846749425133138310199019933160679666049078362052532757124528581955638213430423017922172512041511418282992353031356699318298036474513944711863181662903680050632838925111796771966886638098515696826551760458024665592571335422002468607324985930606337104928901726173418123953695056446382007327266813211901875747810616240911291270485051204301104843164309386626808338885919969522783760639524974918600539836388110478869468169221896845983434405956967193586539028925878169921367765792995417078956101874594980926078222464819712205839529761581279162351268489480375006533048107539443253643141403561987908958747973949932442172614651430672173668331012136628396907907115116283756456248732610525390970543068685741325227408448915633966138140542298707294148939742202325541531381488147532610914829835110225633389064992049066889860323730233190655751360283956284966880466097751248274653669462042957841308510051928356699020773533128801307749342097274093137077915427713661143018742206456771835823605269306961145821841809838852679755858455155851272179703738917621894459952235406868665721627055217706812990633524962876048817179323272053857575640671589632712462886187093108473284850773620298009383409901310723904508234124853782848623924268149603075099296907950838289426961394395141824167244997873166332675642307180941894119320956327772401612799030224854073642748694935208683607649110758121570144651629122025543208546720116946335666234064111792552899478611738199806998538772385594084660341761335262280433164579511798997284283264967699370314911971340815963482357229181503374134610777239786324940343187026487812583148068816566492474657207051158581380504816633284801662264232383539814225942396389249754221742113142896141429397172403439773323600076700585121177505130733316461397748983617466679138564027931869130094462215389365559077725749480099512319242516219940929239801045914074110159601949676022908762713802509821248442879639076339925682230654790629227499464322923743876976054058706051732974372193998055062509626192976042018020684107075648357063771334406629830241199584819760104640197952103347274957935066764081075709492486819179810653981334101941622269177537549249304134609679592551611121837081228700419130303143537034975129675498922590255233005665741408208056410252536387452177879123383874698780968151677787451754411124208880061594921383056623170127272739752177099918721955242440238167585933421079514109544274060953905881863139783848110059171915422550282325051583029923438694855569120636759379778332334951932651202038172685465343206206203198134004180833634411617705206378158912652791291523548812879532063483460762566971975077568002984874041955858240308202778762514587327831146733995798779129583596301990510870853188000352275099237178415014056372003843099691998661793681796996927521437553291459633212210487548097424184414742818084116675781452247872246156489690319179114195365411048839361188288676285562390510637060555389887726023170738722133060156326320617160537698853190220681438468300059734704131825238184358223719580677412546060420139572540176609775759101921072157332735237067159219708856687172737051947626949659395888893978743802370254914191496389014103059262016394298651686635562400975339413987830940289880885621106307284052641107677510063033574711956222006506765411892060444274370750190879902605304307890770216687080774803080419703074079813510479625043672782491181169536946154592132144781827261264279714965426079036407461631750210808761566684789454819308556717040762779968516566028645408287367673661899879954750556006945476888096772093494520193026327062421378398019425199899549875314604241455329297494810119292361912544756106077422791694391823352965349061070832601974971490673904842052400304079091728888003018904164404305454635681003401088296896310612079263273529239222092446482309072452641912277308152220871670055133586527356074232457375904101934444289235318555703730437197734977782586002984216799739808427563780943655109997678521124313422828948360963962530972946646184763241445653788529338147814775596680414922627563851524058245239464944743327343679016993337597826168980064721276532986642345238642541507510934332398131493184688276747335311824725158869075238071644587301743373900327665857823067687005030923804200181240769567733153279919462891406495000063124552643232829626563318168988226836924250093920956879410260318568927407516435877020835494159535008178006160054330208217657269727980941309583496478585650398916899103642631564959808151112244502629819818672739937945548291949947936600253763571885739438059764564855568809655990931784899231027275092122652699744065890547539311726275244455941718063858134805107792220407071757048288705916937811256277689236310271867045031547358510479017364177667547739745587739150366719730235096737633265884565483960453139992423895440290741570026652794812065011569577610805548234715886058652224301840285049621483389029742935353731226560421354847498721313206396207189459531821581577142292617901599576988115069584395989887222115564225165006275842498932817131776932481517303303162453525295709027357552548871512327283918877975306128354186407914154185507922180477971198721358081940991008742256037928804460468582674530259340910976184110621857209729495649102518504162324687941511339422431085036497351441439109185702158715068719839282235280978866693514328046476795701731997715692362469959533132006117770921279292632109618918639394195729786051734084035941566318402848189033399032847802360292388289892667955507929969092643942527478709740606278526864347349352979038659027004150751096001996089586188539444637502096596693728639718384952958783273396013715500543876468462226848103199048248468636401412853499323330873198741757733297894529145345161444023085615031090340257818216775776859642055231915831031154961990575832085541787531102125872110877784329081690150537174280238713184706443357155085744656332256671197586301700492954875176913430705538292957415318520399539722042025567939574394082524567432570346128808885836840089001654348073006258035248180601180753427256360478218560637317710011802420160603125232166677970685686394614130355098722095581370096797062408907996262102369093361213130509421352586556316634097086532936140479747129739356820081395273094429012064074647479271700401156987351107060237005221022334261600096412109997640800428668649476790188370965533647263420290612130613076745845540478177648834209508436997739545995853363215675693010412792777307164639335265695040098408808371442850832440830013168459239696635217231487405084851651704955222499780661024709798993279312666165545190196708879049923668800881009506360635563741709664331812385312410876317620185718690340717896848721783545573291675473597343066339035741108750500891037528584337645351842724054865594005303922812030735160888687057572664292519362362240189351974335420031778786740823805833127668192946372758385703609284038555416122455874071396918278413347755468411491533059385646564805897993402740349478913117637732455587035304888240964798183859865508698935338605225814440253432855769087834297614896536482592158396237894375737320936068085648617051888177378599910637942184348420898510784098574266299444188184421710676362030832388951100720284465614672313791097622458279606941226685923165445313924064704410380182346148241872242091312965145903231375638517756875115956712236927499817784173669405296464472042827829730597885056969230083275562669649719348741910537778514818687913909242579347823877197290645619121841274451413063077195209665755129396833893838214778880874254278154079803008891363026995668482585001631994586542068118035594970897771431071190740845330815317040382820973721297346015968900982961431070978217315235265979674134686106629544231685300793786533463799750805944637576531207223045884391854564975328719695062049699756153680392723975139237329172644807574363453212026317456876061220051262486510771485382838926639009225671445252242514268062296557200171475417032641563304362004421266275527649536715975545946778777635950824610455950452122021165814498640233954006448711229152023062146029787986421357104097163621787541608215662608923389398907588756737400771193584121307420255367064394249198990606638987138165525284225563073974453486873132316620441115440514999501583237451265899160282352846764996245151326937818121952264799871804131053730554511483261752608748415639360111273556059648369249046677016753109773346503463847039298367789708952436300040060056923336684773944920658473781191549731104159791189438212679182925137878367472541202974313761972150799310710256110874754486314396474501198797614978507835943332236339767064435782336775368551731498144275841163695541168205527097155166507530437324243563130801577647142064077217480350320847749432223264858094646668312021441086982354006019210421788294552399188336078778569661701438632781480656283733868954549913752145437185066253233803461177968436816191308322416604307627842871418435978573507441303428742768268743952656094873411015033835152270689795800034482821789618100014598871212150028161305097385803528455315232254316128071273208841311522353930797613084997629902872315080232904256831836255916626094940145474763340312519466045010382083736517040175490148720232770881986795684341282753955557958256834938571191508572141682285177434905833865134589607064273168882583489888439721875994447073354687022971971153766826504300203319626836848483337514994855103038080171225463411306915748274262404515641521637268644266568637438051789111338715432311133540859595790388143524579423508648817710792330837097240149100159417938697184950752058555308836335367346338283966044868059691668629405704603086182568499386628997732189365005052837454564359799259302347220917488085880302126919718164011058774967782973787213100776306067080998600939001270411359280113521397502913800172015215229295942690143945834484887314079343276658364137289553685889393211595851764473486555008301721723790073358888262500337140603148528049077907631398260130385910133533549361706974322173776100974714861352422222216215112741909110221389461765323431157800518885903220662137459995181310453397581151121527297357997497708250781399239545088189917243283521849638089416044364711601606283327806994285165817940296333724598311425156406980747213664828865929292295161106900105327771008375992253818158446017807191597412255703602693626182670806029434190377312694191044766764673006185531731743320992763461401758299889125433187730752719420419237357194163999756209525443249024380649034509753737613233967338082207435917977439505648283184483024695163749089606681144827199361486427053149730129269637690563063048258791989100804648534832917564343967146817856264874959886348308222671908572745014556505494598840336383359915682089117330716235723788480611930273133530847929796728030283635023765757537038721798126639425560153832171066409983220899432945141442263929519252243711487380159636715680299968084319887188773526705398325225271896495194411739981587298048665399379716358042649408139865814250729826403164279214018019679826597670795325528636575128528948808476724311296889927115632271991198892406008688950582727175909671459147982989704435940280578471605628922052406491606165962220262727048134665876701524136156975678137583068348495054903223212065921803085640511267392246585620647709350237621668398605256336551907894574276664866789638691565408786070511706051331353071921515243157980340813178321870084923357412703822802159410690016780260109111974794050210673700040406386149144778182978342533766348699658453708091114951850384659291181409345764019408461222139709563857098657009646051148695062425074253582295652303166951694882206136686590985825272578027341424300318359157283427532151192379693548091338576733948971886781651959107930891800797824736252246136863009765975275448325748704436685137487715393813815384295968815358375670331177077410930470978925415508968257590863726078082805718592566526202948941022194892592568719952870470197521024006044182949306701784828534932931667587764542030859027435246201218976414922535840851842640556242967220891537601833484648148803754040478939455815077343299370430268093029444590249655999666522246666514283179443127264016529439855769321496584950118397317504042470098698373765126350611704361114499866345181312749879645107310335067373183660725978063299826596098750885698619044994817143393004744026657369378486790740330076809271381683552816403381584685042484866134266111324195339628765710123316837655311023361194735702942783035668362066234812102884546078409238826365195733099841605408187255315545022959048584808426464187737522854007364784654280574040395715829020760812827252933402989589355934363485161034611448873142270928934551367411358840359307414942168800163495683870504790650853574872476424363210184006159258329962531626919101398653281980970945577882532103722185684954604459918487680623323705882257700720438482295800549101128902226623812251690717834231862141782688639206854769745787296590556497791856351321342797044315799981548932765294565810025285253093193520262104159932505792523929814973322096456712387183642217214798965999928743127479373423550208445456444475037981726836639207424149213634883761245375767357676665905927910099337260345277560403245935988202099916286873150967667586106726845115234927884692818602742912741718816846716387602755263281750063406281935897382758032162934338175461700566975850529985179630908629168423903095859836643123143012272440839732179055598791683706853126113396337263465775545966684350525944386357784244930756667975836195962540308856728568063845085318363598146227421315687487679037138105340079809790127049508527961610073171234818714753682028496878385574771617361044358688330810076881575259283420059920779734640697048188062786290527677845827025707448158476810114503252331507945105551760567942590556077064018398335056393674281627156417785484599907639093427949291158083553238797920826066930277699581026171517925734963473158304847182425278491956417417233710070789168604005445165384776818956629211797045321123430078992097857485797643012595778727577906824037019774769773518062607504162217617412151530205082644655037036582354900508771677029634862496031115740705996439376290406532851695295307625357756764126712054661377389898966393240178626051271364285893660249126496429657807386702980413451620992658456209807190731071163452721417659583436630760262135771435761807807621363734861706150179113082503109037958495587981272275237353187056156753999026971957936862510093872319248750848568101060826038531121398754956865641525855485434628689065082295670495117565186601551799256095020634434193753090971560068031611113756319398322907619989142043354010051204398117219144702728761323871602939991159629959424989655422627999038954612683089880399032352759356475718873973679271715556104830630181455652361830813634276157911359356915871069089418557172672239172536184580772733690333944912455012639497772457209601596950219052455552960231470757188312080178279508217042595359206408866812324460867077803761734397993690773662054997371114107609116763736441338965359215081634753160004903496047452021295547771061916874841222898160219515893311105011823754251827976014022471525187508845371924847837445951723340701581690536403285612409262824298851401400962845626773617512668496971649559306942854432525033439525677264551492729627281990646169442837549995105910979745482512421147971027417084335236042353471394430118435728437846072577106984285859748742034721141774538362173645902312350983729282045258795787627061010234862779285945201725246246232373835489457472956224785863180335550329172140962652695587131012834101720082718369129380947108307984361208047793955919810398319626433859333284953583940742216599106141010268392103902605764622229763538304275963200891836822058003454054085471481499173230779224667674249021571709683587177459441253052661608981394257717033915959848466272797779648249386376152913661706297719697578818524000998193949994976325535080462978955979598901177230157932065747331861846522675596412057714894171868983370808575530598503105904792305888792070026157041866255355586808718580961636831354316719521712106414296031325610152434104356071316619757612863348058538655492149846784538057161877597233455748272002954566801646647347318647761710408687959951819655595999230925193875010866714820630877395704779450570748471407444358334213084692806723395422127598266547555710276477834670045253471455169949099660562306477018691796831642412879279138211310375615797510792527785361208307835888243783804625285830172949617291109870085016202090212860565585561623507967692996226744023002919183378659238907079656307424102889004463329993680773976516502938937672201798021994285210038652626372454550516758357913035367352753865132438699594739419322408672693919377735729217410865437395070679517334505930661524930439928201747168619806810596374977585917858590248986800328063700836007545742242326589528765196378446029803296774480847146094316307928022817907294917880712619988900947649477899330515332343304877884506271857143658024269033900413682421062785162919894352350579533927021022707288567304223952300709679242210027760214584168511824169600626703660017622105230115643232209138165445417435264322151769581327072993560081637301486631284107388210775941972077253138710914820959499103437880307328582690474904473881149996069147806317013995736800162307710998234832216823966392410564004970697482572195137785711517565004320910773208847285828120903690393357756461074825399200966754573367273562990287821531776699388567065740024776120687198353722946340231028427650711564271801720815406618048581638702047649809517596074972787969336717994818456672038419062353949830734505275184778331968580126095514027254720329653664695887495285092396931987031752065277295351172735392708273635062207241029749706116201289643349162687761711203025412069619697149372977408091520141939626064161461823945082317196799269327740520207805572456272822561484712866140952990320680426191994702674550918423602056655563162082475830089742741169488898987277817454395274745593475123259043602180191997666080589929961820962361568038020606460312875061299992858166933265636579894157160198104181631516763786088038131262579726981124640195239925367112510884278189072484130879070709752012208656024325611680462328841473753100735187865255359489644697661824141020892448766986018226736721197078474723182019910579748604139165194076090144112434182381908390381662322541160249070274171823918979035975460019925288361098668031829712147642668938697050124790810741175563010040852456501501855690830065831616415186784678863326865367730026735368496321115961985499453178511549293750292749032739305397468257872655196209968400272162425544878808209184918939817969849191663451826941507388638533150406946075530021525742629263209461254216406868228305461315135207341202403982615512318752711300302516431186308271858230667220682543196893357753156099548263405663663721849745396148341171686563630753057164017037009056954663161055594122441171672299119973233002149100577756043302846288801313207522454470739865220472417370362515848288575465707208614468904035536125465092724688202699959251102140359918654606339907242097504062640945993895260309549067209764278166391314653001998451372007955605833534427602735788315492872072950558683980672967060847734645220393379651445302236331909956346080269278813588699970270355418484605607914648999856915906983545334908506995954912149785946467448091368853552252999061524303992450999058534466905360353583596323659570474558493180368459322031660022045502038124886090844186387768263921740600860768292491466241526982674978486750068791958275051818423706832115985845937960342596151420195431926723024033282066603289886798433445842797351896684983267762953424689249454642509182521106535884599961837194968807911168909374317793063680448559598884429372008526174144624746892120060164493409155797985855282810048760036670613090961077134904501607462233280965571710776733978076738890665944550126752817349737387519222491779164916498497674824242043353452624109225779281133446015617106375576987309688292683062051938222606339633423704153590957700864506263401875612632934577029099379208995659622207317606020836115920084546443600010139761654943249085562923320039823500171994235113682167622422128549004160666217342407825649910621473711311501048354060612242187660264859352856656131694085681170426473849068652081660942412377689495277925858400109229499686281480061019791723859925261109317328688803826824391828463990477887657789210201589722293064668018399163522139358488930800273824163324568036550651928527993601715087981257819385766415293978124113633970734374424205813064407498884423923168404737077775244891562214211606456759523679990722756583745723556510433067206095477803220892128867573968705941651318007801618776181685269332953092170729008421157257210127833659833305085910615896805031443538535485961382289283856693707209385136742516437646563626440101687446774070308325986900396071965017200439791534674461174697142895518131270297743386427592084534457189926761541082433507097143009108257151089982912727964489504714026195602137993240938398587885708252865965929150959555283545633585374296515591957635089766746975684030466856455112747316123708709600884136993495751900605269001151559529247366887782838613962193657395718598858355086578923906239048032464258495494638303920581590626052373425288984371995959859337768047829494673396418074019148605523685760630934705415962731872721214156882619212765239930897512043697533789426341007980865233979981861493868817803130086429062690687289112658964182830624003880632833273729094147703574765088774880185205304906265107683461872355336765759582009840775774393907508786200654269869154658528231269325450061795655350392125940429830575679931951574849825929714676974351344187161214223306189401713874842749650254325430509716867525535134579467078494239398776137594588892781841560309185087163288494858442777979071933181369923774598247188415407532270412525961871490358674581878413145386042232595878324286514570185565370411896159155436333959246962714434346896099265083975598969322222545613704224885386789636810789172716504215246967667430130416039470012105632639333640373418708721393029545172925667589236349454826254453296567800100888881824924909845924242727505349616662642158893871975138774448034320667120240948232528211801944328035986878834129204715319033823215202166707761686438193562258772371033352788790693861341335415971702738073016751669696251970619339649195636090188996187826558668933959769027892893768350278661829857590146299378595145034769601155988274133608326846709737358111098185944572397471133263864244299214082866550178310095395764514773083470730041369966615891413291450329885001324356898331788065663821129627162692946815204683262858342375073664158260208252289630962394074162427061722999622946367712369855019372348645269467824862667316997854010800406434307076325605572430543088396185685806837827552055316428463030647006931636865934446470960065068760835304715805095828802793143732149119253306627854033371434983557760687110904149267681806316722660908210775790838388413232777759643293731416467776336203468834230097320960966768404869414960226697385237519126035009527320501310188443082382381977162548472821324208323145700894081671964232109246439434628461000681014492458131295535879789360209129034181629689609022765425148258867649958111523742663134835137982043637612935635266233528538568591293647324297826021540950812153798643667743520323682641784145893108637173849078598037645173177328080531746035843430030149113754232808660401830371806357911368310521248920547083553536559222389221969883947849655106993473128020959134113298793894036308127018593517926285480220433787293859438717807153373325078729348956913773200432935296415560472946830575587257988399219625255178937462150704723462935193954578658847461274248213104867159857893789461645482341524347082605552483884051130644523160934314768010842668624371105997202477019106848967492325580775732528749946361994221149894574995581718003199580011932056263209503477617878521868634847006626344521649553358071490424262463217535955578088748435295790167785395665853242701561526572000081351242679222260071365048798625773586062351271618136270261435161434269915967856909897613484977132266988228627137037346091925634730172693250761806011778681400365414640724607457967547605719902686505704381179150433236820045786344493989022837718293332325031154662126380752812156914084374338193237929343408361119880604750889454869737639249501157509917535893465953044020337808130989625065653175705886597615877031999242344246776442778501759664895574534501079978561383394619381583635017287980338550844071968410684523404050531253585014759454152338008821552252873348886045119363103738142593584796715176940725605858286081268055350624278647361724844235896658744294380977381866198595430039776922246255417538190826538078265902878332889236845583749651225005383300583699077484574112840633898122742124564490080346685456334703949521078604300363481620949852590087603903320194689197966326888639469962610401915482681432242094775347201939633657574792075373077651808250947254312148688577137650153868134158452287252300668892540694318066036358637818154286296407752170863082869376342321242000992877432341344949740990071235979576681809883991465201550781836069100072616096424604805520345051112122033284139941396176003592296694126517869290330050075804537017592042709147944293041764433165969730206831942432814176878324072882663783520419512647504906294434167623570387234107171262732962409137530831984141614858556422210816332140278591025194828610717266721289227405399954037277715408743984120994645021860760645800999166896589348036060339847683294815386519057623631451323375970251741633610100216989970936649970204240729271428753540647058086584656313216458856801955291564242806622855293728664415089130169858655404788331368544474532111455779190839185126640801324872281015106992036482105039667673198019645358722915681905169741659926743082259821395750041087965188020511128149281845921056789497249826375343095693328624267083621716575583027257006157908540914837845050119996243853984253472625329535667060876432741065526692292675050857298712605651557416998863590014685606449655480548510565507132344106840871805041295744732422756898949738898795175283822645311667547171614656398305655731884109224276712257758219751731822658507646437361008897640945480496787919988783817449315971318026834194542772047017836784764018165179933013625546807316856649252600239888140564494604167258372297827980473018657033915105496436030492834217062879572256957542477195398678468029038157079935055220713450128056611440333275896385443226198983712384319302019078712763503812541907539484108733500219940363365248871157590189951104587069169766164021620689232563806223774026142968142446836640447439254568400850035080843683165687141438684530411233956319909311785192163831368304365328153588994039095044087787736623754422922225990656956410051901095716934957331922614344428308893376747434159288658654643410557780198281701020625073667372921288908778244153248289097396775300730494350984357949153977059833182410838206460521668749958444739473262502329873074471150016573408260864514589382827778723053209247360291522194665216189237252655671930709689363970070318073258386181274849866572518013918611036838666670687630213534065715999713092828191532620661138933734419162486160982010016609691055847539917577137304746235171341857902548065561029443758250204922491819068044661917486855358893451950864708276623729552345098252370097579205997257549235204648003733288542386871233668329669814397445198544776561883053254151403725771422774300465696017419034080449588056046487118617464914655241913367577950679352284723710903655470333878318792595089383973874640783399219936759253931202799641858035405822549154030568432891421354052292433176072703736220912665275879033671369486619466479348621103684468016290685366749723873253373521526339928627424834782173294310830721766300298690073673550287240381584329218198981981157355407609813952270474016142283595985766872164119825677446563745375652642840887608965709664256251388060990939875747540166816547184777755854124999665567489751564308237063830200166183573274073578452679295996774365787395425511442539417506129790484509925412764711593554552821029131421589470762497422250977850506856076226678662383418158951562699035057242268273688392630721955893834127099344229929433241237660372556997419177539349645779361781706606227028653493201211869593961318276453993176014702926877972145130163864177945332421567477891909771115534172205331698057823917311956343254785402066381701513207143999814233080775511866118598378206477047816342149977527362436030896139966379830517319347714826705919820762512550568679254943945372140316867748787846880331204414908958903384093798018463671771177202712288525443489309739323819018507221224596735534549089979035322914254637228437345877227956662728996431063906521346820387322790047032085601163417111170137811078985469745567781734777728027807321872711208425446313128345287394147834353221649679761543400191305106562363819183368634895362958491220168423310836642692661697119745594234673112622037888941626654866850925124429289813682521142778498285729976825428590667490546129858447769349016043529102806925845440695537861405120688903367138608331321355747651933730436497387289596219651122680005518863394422920747115165799630639351416952696724408903969172712057583544863010391400922659728460720606770673106084508787677800799195623720607591873959104174334725569493527642192707693257891298575034276683043085335455949507129600951988033082956745738624638647451229499303215057528242885672328417050834829717517257779816741181879871739558028952725030639901504316424078092529023970699764789240927866132757398238803971621257550110824467324518049894881452165780177929329956342804198596693575514261360467442138334755513548336647750917836522418140417062820058730902540821427954714482845891249828470679134690778700630402109481111390300963037486548269896304479086202671716762243842078409676854324461477184157712183586192345024468761692654081463756821921982374286511085539152535758209301049655422360644281169126098345425248329163074730856645503381349769408237062412268448595935548087474657195750405549332456898970984187681276326006274556969169572230346427630719982299711183855730885972167363956119296050612041301954737847094291160568239628904801847298533593892127954152055634247201130835654216109296987951692265008190222630932262860073063128498784687046329521786317223921083825811828402692723341196311520898177746144092071803193773824312210162923777277151731825781771544756544451913811032216691926986609781492796237607733150123232976769865502147579639113532538431432097751957481243786929762048357055608116472749429074163879790926030046506979983270461348302452294143160642234474143105531293784878666498726487813976575124415563941339256503265336450249002892274692875033838498303000962859653430988572309413632149404468763404904765292785340994896018726977010823680889958825797106672554962945643223376204064979317163522741659851806491724729396133537506010348890859483885811069656943961427171264688980983403305323676752995014338918204677366885919370585374239060703955355108615045626198618981541127295407948658913263180133681425860260506203936827601391927604589516317618043446319318102912013032636132854260375612929571672950981112458349706897131208124787139338448080800003048952017827451865250922622353010968421810065108533678089960050136334845621098634331676518155003207311948091744058261507398788264641209642789508324718360422943289574215051442771904958191240630650273937483309603460140969176882269889872211907763126076755275650572170181152959431926326366126941141507143180959923966061733086636588508739229687755992166181889740395885673681750658110243223946427447896989651741664050850937922018093883974851569280737955686099282724018548664110350656193210914810444944893616447519349689526770012140459738016391359364050687480556454090277039249437554424258488337631172563028881799071583221839139774217871383870669360651196223862195082992075274825886473245888217718829529754387025680581351459041752891108531485425144385358124254101208326234547187803891437675916529961542955548014901168740519997449421395088995591071606403779206911534718889009268972255697728120836218506249791302588965553629940370563363629211862033004590476930119052252012673005775364158469877590617813006938755407942176580759824953112419469561972088907902857647443066073229440046827663962662142818351714785058018887234758465555879115501258510206041586411594455357469832584538322219297582554812180658299545981000976537215010628000696516719192398607164025950512982515212276929697278174448605683697801791660393890803868479264657769181275898179066756382088915242710211011855779647692873756158975427648364385116000523337443325275151392482202608185459225429741379352611097693432099445476905248906098063730090076634459321549001209228472211723719787927425884673649855043152040293606903994818592591574028417779559004431496124235610236919634427403745029245307941036742331261031312273744135274265215750964506579306838341403133333331942118210734200562720580108469922996288686316133667317829970327760650058627655106981263508668420222990842470838736327678093866930500347642318502092206092026911338892987757573684813827167142148471070945948254852176363664067247572840103362581788836061057616006725428802395566128671270282058735266137045971649832924134569818125125124241206459696757079686054188675685387634029108176225795017893925003550694316063668994939958863229792538731074165335396206706696334699280823694208945852784578667614374417391077179851172178607215536876755093172993938708610701661069958271468652518162765485651875837066642730183925125985396723881185161503972805993724518393383827473832793939414535234201084172173076546978703831280304452480540980705500339187106632244344722556469771494310354522189406318373379289892551938843865613870448836231228514389293777321455650984088076628583630668022596980170986588736174645424357366112835278383062474057947420208679597700106460858771481573608344041340642842091590582136526104277137678599635711069898445354547183061498155532932987521837142282439835226172396400737390571493872013932329325482804690990547045137249166562589356453393710040244839443168817761407194197079315955001653704091564322174697285216955733028414924845071307959839489107329466649649393522704182232817207468920146928951223870357248748047647146744979075469632747719770583026365551404654806533445777720455219030616860211652124366941878463996331077039296320826812813721115558052144905796744322024693353832184992128862462643086260968309383858218910977683216187217611792537230103853384572793776326892103787878756524617805748678088948480630654826688862602284398400612133995478515533765821667972997052906367130673390032565690890229441481229545745248761403942323044198655309414239420777949451976442101329771552934170872420313873682705190836037230175019177134506314836204592756965691340649382842743979550430865043816298532957875468610142350454940776518060451731858378988770166102011727181745321492288078288484293339185115769941758000017301755038554304059643189325476324038272771026802075660630259162537452268716869643664466348806263974821562711118696797345116594173846099227908335536833679087484825102063857668941945933171253786153286025739156155417160593557876337680567717778497464354108449083410028878275600175401106818206568713449474794015310308660473254602309629234600732997334628770364203071937935962717815286799747128457155774730266637740260798202400655808080561343942351341095155921038256396713544573563294023330874984211342281685813271056832209624263577489313466148107975597885447101792314818779324780660794256942315691949024198189575212518868763685891907062588283173305299634624938317317622881589864684720600644123826370453710389690217696149848745268584809679645723036021625342693899550546590101534667175247401707174937254260140945072830669286964131256675732845038044952048865096438735937019581707664526375005887741974643991436716000192911989023312705855716032516134607544855326229429513854742600723197585632000573721231971588871245311949413851847263371073568167986703736453781275628178364473765508331024435211678071432784398834322660523698934031252900338557819152906171015934566361209368491615572922699638888264495663058174092383784779048050429989493931511173077969246203318801136446195415653741512063576423046445733906291332697382297650119148458553266887138527209280177981364187712264279374360109867050288675784236295190537647552260129850372506102210911463730075764690309166487385582970923332878851125580389535973648004083337170262171245462121203382672654871100809759823044799794818913895333464409619110340542608235107769423831936553137191879721370010987662021808200042052533286199276117264154419692925112899956146538221082925141376692752122711638885548389088704275575726353961221804020458886948908613721176103046293429334786179561364297134564700877039396364311129392100750466444121389113186653813440479664855107025761326158114235263040516497346975660435090932306281713319518321921792170172994550985391059395280691353157207286461284373077875455721473565593533662864222986111369037428457657057280355370948024838906971082801306720641775140516278278780435069022857118802106840987523605686923428472175996973195376190552510511214146762817046459862781947674423485218398291063721575338027367404140629205579917989644419211598967205461663937168674811496111691686061916864140796040685817888215251268063220065791360733274245648779990320698033478287967094361645251988059354112050862531930172857758163671892411823451349429082951162962123625386342558396220252093604573777084476340382748910841044412670601384832391145794512295911119440597618451366687682000738738045745556011899573559173636097938561882227555347015680585199607729955697749221561630589897301182623377163793016630418395220757978841086541689879744790609826475502171825785635272535305257672156729271155577152875279547819488344630774957974262457433857783777501747399266781732033188471394507882978580158717916853838617433506441655551526234578248828109496639367163551033124054880427215736305916854689572356926483494227391147915394733040471685697051880821178849382924908882736387413545236836392411284001840131925095727839583455105641912477764803105659132916621073167825800295948826979928504334609545679484930889401926784263399970959132349982589148851550339580403494646588325243254560843269021525168863787028478836641810399364048554630012299669636572130572067023496188191674379097710735730332336670643232280784548109814772596384983076509317057145681565303299583062884754216913234813636574322161724214783057525238213332648626872781422438739836879582453974088169254820417232386627912722196821488156160571140208868424195790548907711678555341934157667921662329336471148242438372191123314290557592742470439450424468415291817896312390817407921108905775843232827554042633385427649042180417824567341939713512547691679235178544479583284091545446292808393214386366647440399560669548156267189889761534147395469419048390878436842614754732385878253766907710750680990609521487626252086196039174211060329171316421250796051945341686861853562553708139395570696692126403556800710405408107838810174492304493750179052209325018144896140856199430347304851943131241880722680024062547232797815257815630610966196895250047688514700925912227782119630323040723693789489107458589700980901746508044020554599871262170582186753867350940372492957547602215358241892129103247916530774144983771139604155529605436042617281427153972403945570100972097949108887249385198138942359022410607742153208617094330095326153883388162803655034084942752756796163209055523389023128929376866951384480328499521524524180839091834514510208110935485130428345584357520005271660357955044259149885373381720423319297268132321502264031755242573451625239265261634012178775645509525846029499892437477353271947014221747072144025716772446636900830111886029175662869710215535019600029331898812691683854069706945696030574730982004150705241362685267671251168702307616697414614769313013988687909430315333501058234089836784351821793057559909354839724566905103102016263909211383541702299059837604404548292211063070957849081736858892412400951067800265094035566321050432495176622034541866586354650454271063624774654432689920419376712444767802975565392851571842643038078570359787688473263771480076475199791813080164192586091718730848199477793509367837798773092305852573674471566407360612561278395547666669996549946686342609243438998538932989372638744061250449346778458683624666569685426284366135424704776887663868101678181858094771542304240867006972456879641582285596851341188779402480092364310503371343337688835189847697785403251140514351413862647838056306570120903232393435277417143834065502853781498755159025576809467523776903064308681700928307191811760902089653109564864286010175010881426664665215701861723338636530830788629192254672991185599661390483579948348260377382228907338048477362910916220661323461444843707644093862911518800280627967024621926746764287875204040423354280697492649131502237372476268649963570218612360644368741959130404311994631828293907168182365062886334765246621473384395506456498883502449490630993428161254928314119671200943033693124409556955941502479727700279329842527181466515450615098638704900985436279531208408033028518386566963031470483335303269701916975762355045465505729275843785507794239890016797808407491194051616305832232209972803039347716754987806414611707099665179677017933070686346845214054693326601761222295114581349347661089053724153707009183803212582057278500224977346067524422668742549480843185642680775790904616569962739210260730122371151816610756096992763501308423698408161172635348692360636935824081902879374279448110735551691211248052763833047855437674620420048272101945060748477350641065300413737948922340276675784498051403001689333242828089618979167176982391550139773646471051966988887360598576622008409975812197040922873176120930081024598432011570585044507950223294192361870826216648466804681166897527059243556372697352024657609288576909574605212838047107168048076332120418947587312902357948810401911307192882653072418314408132495727708768698305628959823025743643289992346006900772067228075641299631891235124076250167736539459330185030838356416677461335345187207410008702632893232343139163517751283652921064625824400530677729239143157421313926277472183748788837254767984237052602210000528258742906165052592598007305395093976265358138313647427681776432067750695308957866775924580205152400922918669988970302721605163092606121621124555252593225445123281545664030300780989243233398357445383116840003217249767818853077122272608327504923670085989131960382885532647846443498604075803952927426614457498545768813156778830986069464927331907917946602383177021968988984534290923203601363890978006584739343674281332781243405463706967663990056299166514366564492600834271131123880983878643421340558662828103482094088954107474357700281982108403897517980094462564458831254731688047508108180039000858563192786646166090871958941205862410963707135684381707297370321812739118539307897778195486463626627499212386433124416382345675734333647023171074913429487364971559605264018910218905782000916039414717011708965555234701319476770213836143504490305467573943132481134092730999054800396983601488326989387623222243750283688255314193292890193980408011700402112470569048545694336509110688038543040989781777019915753437618771034110957945411927465376695807819871124207074841798960833613196007185772734435356068212295691971280566205122692723489348767610451584753648379708354693827133734560864449491417056345004802913780489029679567356180751007837928723645564349543811406612778558885765378714137026578814818904717703867608038123503090087230082123123262894021767886128279368572535593551013472593367351482112326091149960969693406768356141998939171226498656267590006586956322541349658532433115197623470471694577906275868932351516201242226062770896172294871576785835945257237637262674551646117150618392330299570127026086091655470640425135981049164893117637706784077376702888892176663542868901403644821859825201584182742501950953218772500095134912111778676438726319118568022970378214336786198328702654541269023874281708391293833486256487453603295222850700334682400633121844401630038653390079458368875119396356615346456623113365646573990791515500843143002847484790354580181418917590533646303502999710471635666063714337238549386498070953209813544040494870660155222508350495604553618942362104179948965890493144752410249540211196414969161908666789702734106874975979659419234875531223545764660039506675513322990128498010699677017410430219230325268023899359468618546777681414347895834406602031486800432757200296214109810484813902859978421405203796960333443654518168870698241082448579955917182762151065635669996615362599587534784060757512462211261154993673044657114921521693354821745310536021991691772642975038599330431529019646724259148233648502779059472287769635634925473007755196614729920650810158975434886346882577849081027020149267449546361821100066953266097302048189892892662898537997601581556873062807543938287435490126406618645169663554709208295813579370603704953114751776867783596468836088000676190969112504569931531204918576297891951707554512477826222916095494782477319044535147841152152249252281616217935357432070576748771242898860244306781681494323131195929539944431679861791119018865670781688842117724868703388718232037672791394156690280225875487997754475457656091663752253756865441376753555505020643747384864142157343947317479945529964952120013078991680255456711935912774362594535939547581413057851724963849677331980066824018533530745357328597175958570662894654695328431586405374211848080302060313036549019775346398224586709466918945870435148359369540398237439460675891156701509968095381186674046111894365440428078315605985313476951123058419534560347061746580746411609176252321481471869512710496833932422152091842699408561117720921323953318970563708354477155063358144838574547663392712263901382321176376693219468583979304054910038226755232880517337048672532790695880070802643228231677920035579647570754739511426870357082565097015705187228409255568816764108886150446767553707138417047449394311656534499602127220540544601420340330765930643891649601151285379066418346970553459861169270948200069056934216274373357140433305574200327906749042582139934482970754952516091059707948667797840044738518925697184181314250811637614014728403833836874436258520988945839778193606610372695195997606732878756418604259739720527545067087963512651204074431053518783697950757340160044169876632673635873700094320001245324206301365101138666453744459727089206988478693435827860644479139117320392847994026278909152841656195843476285566257929308802523079505322440894222441708741584408959671966481797785102102762051688298648763781563722276898070572301859181033716966296130154737709160341681478063374600841364695733144286016461760103900844691002144923503214961050826518331387708074698454960131228505628207512535200992354749559988114578317631185889925235836896184834983311302284047229280207290026686681654321201761446012300690511185777874840419480707049973748733891141548745631583273028868728663138447931923827937282532026190058436111103265920438277602617649151125553696449784814641006767697933880465591073579408265172406916255774294854339032320730623343744102110383612892051677416328071496068484234499739930854236127664005781576382983321808118910804375937381559689840143557865658545390881243787358757024151144695150235319889046362910357902327746419860406589446085102235089288786536199897106548066616957114855786238297773973211638982463181116904283266326971389132265224893178108435908413505868125059299318339448370246055042387009473035416570993318366351087718879363897424115358732013151221330895155082898300754873507379305833339373455121091781593330109590990139824971993835340343115135536144910258095567331697712660376625376824917327137044718184890068407991752526762848076393068728502624478300986754295564485308891346692131135626530890339318355382465232988836543207801869591914833650509687437651973863446169917595306664187644458210382482708420363411587312329072186662477603767190394591801491371961189991908712091083878004253467829935474457430586725372892618987127447784400996021326412275520430201879747855902108447866821547798129269418452210763334892846565138661107462698194033881640724839372580523219131288633957550263021821588962174139166464153302037149987105831353568313340330286029884457375541226499937569191620003276498811106078894213490510696629252670253871832058881115158580064484014207959862838629462543654923338397470197063097844200825270423724030522264479426155510203221291337524510491357531040629308580152911730852291253086753074612205121360791526645305488419541958874657992820559091311540943822148906775913760840195281350981487490118976647813143994785115970158600305530940172058153429427074790043891064320495567211494134917492275770263132266344019519780044286422584409003772887423896563617271033040877745601949244547879096659458618532629130238669930054492949158050661332935247224634971036425569135871744931962768431790148695045156093364181817272840804576501459896446378873134867658851480561757129226454274704963166487007599728908660631512346776665709752570301712492909512104432740791156531217723607492381964058309677658079791444122392736912112470788062464235968896473864617431869573992399984134213594114717407880811703331693533908655219441096376750371205821896683322060865290707840684442412505985035709719964637398306162897981281654865180028175170124537036019565886590592491918674571979124160137038990164971238378700409286708003210367620958480531645113235295678208553021140842091438375916045285907821196397759759342062259809779996941563686923972286474998305472006651396579343351750912817563898396055572082523319371358650949460665263086287793748216191861423905689991130905702092416121416406422235717784324165519552857349110273675178623213150802343861568631152578086771340265589222540171811946554941415531502145778126410947222121233100096137351681431610238714876292640909060277092656949597669211938313558951094470682219479147736952225185718245581645695190683625889293781046272213966859046869071198024658296696329493662000826373308538459938022950059562892596350348187444798537306913752383871155814173355478570204235713060101955650176958085499488253526367219659221509073931334755972657914692092176620115616885554182900837933035842576935265662301910822827405162049193758303707044715973727731259034053121705733726645936757622922712268376802657109395109545056564429182615103702954512562181332976805397805075305947583699490770874177338405720228312313669924603331751689436612978285950202755044774450329604899248831427758397290333101685397150064610272988126234105867825046911138349735345885443889051372301124785195010400616405190323473585119394496236272486599387883636079745510853940748073396290938779791569081793950680570664063474880776534476275214564937353598335144691365632097404125575780095632492939237066049254498941214785366774426801794114981451183226472750746272591700089912478960724241947060879815186629475950443785734078515085013216145521766052707838897342545273067799789273968455936781646229839352680796883754919152115638904277468168211524792887200613056984575881697707982346288906758753146562148510461825827543093772273119096342162910982610362931204886548295267065732043653636010677146768508625917505335653705300174273950769383238299860688420814799196217706167219156358640039067217923216933379857168285711525514446829412465251643268438788299489398140911262915266251925587141689284147945234314222262745808223168188791616490760292571404427450678437021769395554359610792723373161117505673568999925071874322840917883794310308923862666235591800551416427311541054343081796463056207619246602775340827689557308121374502294290732749534613175120352338610807212299597570475332671950117932498538755901555085742015978996937148384555675464762165061717905444295248273197439876553989192593539003887161774039504316425860029562984573199180774405865044324652109732263364966755346957895897076584324537084574203217243623100684890828689156746510710895958904173589208325018186820178554953144412842389477077085391858050195949935497147576911766713301347821542371282100269938121159344168693257921989487539350477485781430482052335933100703467972360956904481989980952264786311419814240368146017814664622473266224116222527794974677367612957408208074970169337722464987692977671446780554605517391264016905342457746157762649615968070649579178417070291412893718659967707808828988789032299224534552574307360327040303861573307770050315412391851706577394946093347725854431234960748515457457677960304889404697764489958975638787567660959831925189998050645341055323991777903450403902869207324525807961963917801730898760288359448875729757587497003343474523680626324569038577644054147220911156754402655649663102942316499458458568054447494357123647333463346213528855576598166915351517801608352261043292149829973483455926378990153015333377931302908525956444089336611696670942345217016889739486835251137929058888288814440737839649957906164781031278073865015548962861765756438604829583305819621929983648240968134125868556725712358120490581970794757445053232102508650256750654671668499859257338870574177912149428145051617172461711939163740177340123797415647842232637263268824076663353233444541983673085903215648621831754057679351632645325637122280360917013151601350755780485453188715569455606099677522312377026538841147224908620949362264216665808561631639971943053332523345345428786783171849929126199508244219989760139525588440607145032352275903367451475684245980690527480031034986864213115163652576054120763050427923230592605774279909623864417243694364769063825126620721890047364027257917385731993365230990577209232229189135306669270260863599865657198606837324866497101399909893567025952134807713962816577673046726990840590926694494549177812625559709076788708199970298695524627261865132549548720145920290593235014888298976018926866487155808021071275016585699446477772905723807134380713336413267953533067339318639071981003140171555491249313479699780603471835025866734065028665481953474004900083018099225161267815345594219122718181928511296361288003707874591936295838679263457172364795825920123561483878409896218254092040408843594500211160314995415874715435232896123910423695479681425983370005211690884320125603055394497675096871157489918897675347124572285097164347957619328519565439600712475375875869711701031843069900929386267291228652805333694357569323164379382948231446025878934362090351047206873106228796797253609979685637776409989966240650091251178836146940515364614359717173691319823181893000491042598575700880938172557535996334600080927914524420580031251507910608563012784872800354297577215116266171056749016549520531844935872607157129783703502110325255792666352126626423196046830458707175350386872711219990176997805095247282527759915468511399385324844832762066386243854931306133151893439564570845722994664546029454966468278944212310428263821401832500833622073956515305849227590316482899268048472623213584144876706958221489818120395893427094129331520494669762431218038009794662985883409576186608037085144363121181995317322140630462150601002457764479126403339581159233724309773703717815071259201482660223946457802733188789934351534955875182224293063867835796008198012749306267117028948554993593504963212316783327132556248152555431470926884197451941854397458337506609425713958857705451674262881313164031018197533156334895715286078191619646431344666954685170454286532936328891966988869385140410678669436526204882495034466995411946438453379793594760611950624407222018675206774543802833784663155358632118555292334147440810790239037846904367745469062196609119823474639995772734711317231805852574468018979050671928351031128687510106366003072534058181283053144649340222709367480687016772596906641461927975137778945946806894552682193391558552780471780818333627079914597662786761053441900872363839935529097221596672772470018294316241943232528613778725379429089530193558235146681467102733399676301087427241741733039151695469099265447076377003308613260909534144721098912868417557362910217545817172696091838032308530757280862320096631022213770578993757102316407622266274916841378078127031200532888894156475533387878924613967202835625401335611863531256893720614316782799534167464322017485706973485226589249272060022378117186485031869776664778379306193814949649951970161397362741297245280940723150574251324635211364315643157840583652849145561987146942655171281296742370438366936380072366459886133776029587861492454858078528962973928348074585800744977915124421832368453222161421316896521991872866615062459599528820304252116034249424366233536022574995965797389880079984368106721085876094049767625053251526905272615699469651243164397517877011526720888246933077907015576080130002817108016938567497411860412108343854110563496015588545618279383017376705850689179305988105455215545439444690184722868607244904162828269688667220969777137639772635642228458787771644066919195930979619973152566160605457741616357879121054026792823081976189818884809849276300990978037637643350297985142058489183720822981106990855937813999441383761819624676063386421782571636916760227425131865484094973591865317028049521882094814616570746886886281918309233132620457621735517607419016646648628921291505400889980274771129297405714918649341503832917359910059421405523225612418936463555619423613537419012095403330075776127653047139461405193395536252159274497297389439752012104738729765448758737419008679924237030852189095816914798257453997324912178160320570298477825253391756352759284496913005733535616314740194812929289221901807147217793250752325805307369673031117582942651014786403117663284860738033186365497683347924770375399625931763882693795004388188572434598281621853020630943544354921581301684444998230618968799673912063679694841666167674326953708155514392678033208535160548290689138323177542830709307846565423933308221301726466515657957149323122237815382329199832452288019013865197407928709747194213141617068862879514106151439758064540680274604049452475759929915330449423091201797804311622806142567478435410887120442227271571574666466557502072843238308358758744803379647990827600866975695447689915703674762434061816655743575339285862026346106999364475680621718718407139002122600093507239596702712006255743406270049090121405280527117439288483336576534388288090151982256684809929351087054547073931902267037201105773676804269193003480107797181223863526204732399889500267053958679068690168760440490146063750994721512252583701214212101378044659355535621036750022905701270886711406639672803772594381960598484865022874935829668278505230639311336571783126552257511717901588946053375469838532907189584535806774492856727008695198126522911799710620030333398870528719568947633417240349210517494872936030559376995182616452671197977748369202066590608260599728204847881868318804217607657997327039268960599155880506183473370447657566362181734743973189621980347126967025885843783496974857523726843017404784133677134130831396709122300333146347463657311161303633474193628498942393859458225278697189185986983138092741558832927603629243710980692456938940265036207530037290863132673220625786039665178561646287637039109996338205192977352285394781322613124309535051731027546525591735846346252540464042355329979844253306144057241577342829999826260142654138454982607292091337707553305590622623758790460236061514718742226017341262576893621620657404880396882039474070793919892334423595972399468524724676809437141786805344687005172240596765680237920714599342526034511568607540340051932908025581460419428484088181092734712326689511330504581213566940619302445295939530987554712263265354162112938050389787583975736932134251333377935762880465992692448150005117695630739893958650624674366431206583025019886870230575455419628344838130178295657043857204847335929111959769793467929648057171011236565982769620319005826652409782571677125395383451845281423549036021018879564077003357007817235108708130418746508393309616452873902968038993810154824663854741021637745285309925843382193733918356529482315035114691384853227799504429257125923043178538173827518284386784838675620833923375276962562923022474059984988205990169663514285210443998596211649101437725681652004726776916043763893411852441485161105161246710619803038271711600777626280956885137816434871730619772653238045909915602758533102387065023326217468920325902390261109612313015343007949775201022360664035097141547486591815250328506663622851482335290677163152004923283553556378482734396276222393600955504260115622364048795538528534576876935546006444433339429420445777464456221910411850484340231798605972624921037077861985131581767122634131403406690344484080436168407243338282867559396369769361051534856671821109361062844184536522021097762934400872044916340842312362378546418515256874549039183629435689619809839729896714195653759764190902565778233538870460172552993587414211822741662251442780570442463220862710755151333450414745579045806282654025801631155089701001810908348420860093518120757354987884983103020058454174740600227359317497880090165800665734143451685868827992447380205618231305634217547209870566529025598110839903963634082602949443697131683618256131372441887038734669327917273341064788460611064559719101831147328071255394213486672785065253322884339688829477078629330301028562912608957082867221521941592240097867462681950014197881739708756517190896206930808335131831909040069036125543290297415407520293236215851757079826753507748191178277051887442541458538487898512479600723202226901263632013574986592584134304566293310537634093344586752840079451981256203661608242000283379696481915293795141724268648557113720430217480588982863141546943134515443360896838101607783196074116888121964080159009908961583609286928720764066147340489312780186397056452131324541713063241257144294003544361594425623344136822553106375655391711015550807287028343894728335211313663018972376947383533096094654597144025547571979322403722832925903684287244316401627992600585354760937296930438837538399119459776041324797477272085831818490397952009289913567136427975111342215991801570666969218895469201700222204269248073676338141126869572174911975113677896930142237795831795172421298389512412988457474209552617911308816099120593235211511716903496648277362203450783932289952255614638671019849431039221453127329142315320863564187572127169186969078547095905798635757988849071174049241551040858221759185055601735631372378185986821161695243408903119497074006129742978670004421857950960810701992178237326625969599157516705997142726842353510925097359509224460111031991871325359873293421693370855746772053711235655813987954988578583500797433568604126918155250824705695282389970240689551123897650410469191849486073748790025720138462699751876609391270076252818185192870311047544143201258279062467973966011608813450210795778645569704413435397380917992023455784097655803569094612700425925343033006083419998445377409030411241691480992634992574241310176047294788682264961091776795258724759673937007667340543456833842775467778313719494368868904428354980580336929462512144391856928880574355811441763114890352965168055977405789971866393959964599754747001029429004794876383186710214237201857703740500179159758365833102249284345837211389918462794915648679168690992115878009635008309096315543351938192545016946341264714986596485865506569965352091319918188607597221974109316304681065558602420231952858874032675251177343488530836933176485245089122610536448707892781742792340626314757746009496269810618156787689598568194541423348456169812167298920059975187799974054465218509841048951626131293866948710185775105556144685962953800026468347702458773096171130780530139540516123914652208030702471937011044230766487713255305588465634090254160849327160654575618739077490459140143615864857556222631525880102500361749166253083686268208343436254010797214022301447237303899088873946538497405564180769360641681416478366592116576401290458628620306007463890578077163033707932836274269886928628354722106048949027518402158492797576604709937298047929808219122340039040105459271131438835568298061875928575725028878542377846583096971056061815627946222625886398832661145021244941891742437336282775599494444112839958786468732189396588259482071681337419689860841622297374822495093702662530218002112954614914007955842302716062432887133821569514720530591911361755002199049858830336280595123457969600127030158127610227662878754237636506417184598664606380275040523445833810792665537147442018160050626138136178022580980983780923138868539399663945529245477144416788311874008890149941336123371378024728311525555573695955441273483982406241319960650289476971722656234883492683779431048740581046020401822929902614303875005939064377287334938690919647076773352542114379027249118008387221736937894247350430506722237693762856794194870491170552874131028238934852615883033867591117382503384428740708177372646410124318377321221507656683510880494794092314167990905176743521479045629380274926283790500824401070891229555540769717396135684676771715962175639107592815628618248218206370498779392053025517430174755237812454280140422046641167039795977954978243814353817824844992076297002665761223815571509102935733158609092644867976303662943721935888320391481204367977196818604036880363750865484899882513100533351934984128340873342414310891292946326722899297956995917750982368516012976322621086027452245297544200560037067033311459755438072185156233508002291012436317103202839462499772210866935125315274625084835902798515107553653765075028827363840879999138767746023934683287366457338478692549129523596177268235650564908620799535848218786867110218225569425110613846248721555222236309420887267558624033665068010072086102700267980489289464606594530519792425698480476196272770554401595801317429416036982475971437344416329324014966013293640959381576305635789821252973151377016843768531323816575898146420585340978805790893462502356558399311789372216483810745820722286713743926878999385027271720012786206818100752611581549863272859914783888384947223780767598088249165107770261105179564217521334202201701865677347895860610164903997760976167712887253709055355227242206676046773236869226455806864546949121122247590622685914515782210163268500852910249663506972618576022379700123199508245997811801570697236924945871611992417642555731375530444845813326736030518441043624611894041172225903691069871782114414919240613821523824939928436048125413392677010694782228736589683523561325509929614731283163852718992175293289551875346059798900902219059544784766795910720382400773543157254076912487674163130698840550267575352982352697712143359814290994263644970315942406236814765002917349993862453343785654783240543233928470549919805837035373731383864553022983171961356115444859627876517960227114711124550230823518708278499710951778984157733564960273103395560247241168777894320359546441286668196047745213209365726988796900234175861187751608010174115281747798820995866200894430741150723608734222466436449118973209576768299730214688999382600695653478379285383883028240197985451592794078443880350225338815493384107367010661177671130924104806584156151252525015388119681179929514816063153307552854828959839364381459718021995401497519396094686009723736162474035036473614345304269006297508997719415337970611566986974199521687135149503819547054378301546974591362769873827152539844367504389817843675563916549103324897538607482979743398335808980869983450057841479105936881161812458121411843507486978923497009942604285969996436882083032554287365203527070659844349765619545635444914398982730381265731578776151798557228426049699102468766850093166508423374235935913292834498852414694044535203642003585154556084344859962436788004995279247472464242125463553092527214239269301664650855595461120541522619544257765081555777571387988872296252152657825161933641052210131530453800326659159967714399249107298327287465466831775560001060843217533881164832264357837908212783416889457056060609968198352718392246061036107631904333738596083109172425892177679822559279050920346296049552917000481551540402267024448017437520548618920840179616274808451649872045661261033396081947832826412492905438912314810909475095067368547813026367382333307776168559002916915726385748913827819714608900257792508152188065159881157030189398936298832506216421044456707237359444763559999611594864034829897205431768690452948929458571824462422831065385065769612498114052512918512722007262188317157052130824216482182940808354313771045005539245649924818462169710685843445762350750896695239853895277497837353069027275985667961400312718062225490319403721623835341540704614520527867732545316775470698352462113845490539634760520417844593398357419475108723058992043180672138780953069523756786971691741012560382863772340727251371953205125369952887657058531848176486232293028811623318235236096118172489679129020973738707652105836785895218262673212965613411423072409317974724253185641886227879013936171965099238788593688442812843531069826075634313028766798713900769383781738340871958697245298242512794566873807782842412722506597621414110360107868918253029467794602438772484412761700605724125546296537822653678603019432498030499043690647377347315895262077810103757175395455455268898661202993672732807772247829701022671519033950432515640102695716328575404482360885793941502901102963924118694447639227481423544277179210286914063442450336491227061658441337817360763926198844836873620832677382686906027585082380487692408453713532494564638762947060284487392967652806362732144503599239250107417039082895182660894250068016114957160010625544457832918328381661010824074500980939052383933436609380752059633970167852711971005220827490999695467901509164371876265152107864621853091956331968242140681417617393149714341090832618310791722280756816844591037603978528064323586924290541478601040291466234643563030795897655313855517952504517689116933953832844319850177829542192444324249742505574587109484586493237286556129463724474264912101688932199751378772104023061965401453518442818904704446878956641660512011301609982702152767868831244628031732686157242054390576147403376506509612961479616877800058626008094060056642712785163604409359608326070236514170513218725663424906373748009651229989063949815080878988406607970214921547752991156696020338314905891586637578453687760881345419607650057838679254061938396218162849467197012830909896404001256301792047601103304418723119724122276767172632605558591412714322736769219576847486731150847549826886873652683124221709933053906458192817053493424678589748561621445143119871942867661342360374410668187080088421654176377583629160797241601083590870830175441305645649052900853431506885730010800544053642307847958443374054707547584917869437953657697043401908654785762247597107231650315609380750558168491069678714260759268518191852375413130443117653903303154423055621980416027981096125161862378156412850231840841291737471006772261818814015001429471410300141952846114690886775989776187940412795939818921391948995325332070068189322247506097876719165410567899291395320269908365304209457154120439036783024446864829659669627727479941526251689824200019833090559596938729060635217675220419073518206031833507566671633352870304816751603343936122263348622307298011409260947439430044293071034775620970025698520809137284366842098779991083211113354128204647727162689956449210284068387372097013414847124653388222785028031981409324404544216174083046508367181730695385441864754383923511758906870355113487131690382457645985468373973838142049254964924195159838126947544554731022146371244754362435340660087805033296218191042910069387839133323833647058185526578216407224414226369182031826474382238315238599284190477301770350085802038402095930698447825008600828720209063793349573197295653132428114930499950687824909258582997397044287046115598542938787125138274751011486984846163240301836951464582042026872777851148499666900157506811873722338188196784214238926203914392218146858832818020488248135401391616500140883934707819969855969735561624678481817432204275917510453472548580638385274308768753581306429868072512313186460187772951243283882786527091609245375190371233788468311180652717275430981280804022893360769104068568226578314748547172551161725448220944142028279398151849209220996442025279660815203051775358620473506220389164588748444305253831957863171191586601727601668820996282793037684049980279041074144657659498251988700064445023042296387517314093495292634888627617931755670693707834664842178264995476127007151933094147013121203972140079399115085270406321812583225225555177954273602688328379562367166632431335727681442740338611340191914074797869593246618915169439592178713314249303193608173462633861769135138271623767968147751742854038765763807334021618612956439704140799593366949470861597573259062496192460051703444613203461948275697082348733075821689954753387812828163947757857459083640900364922901258919302418062795372886206605709662873305144974090681264294854512063293544648730186135844376210582553512372550189541678114519824944219976406670676787622688001546726577874121175023692903091450867277087049551497673312775403660604385545301616189530572348167036884438259339740177256525503798343469910987246390722222367644978400387231312573782959623552413805064926275317467409200064953642693100118335223590210201448132768329514742891927069988161728447505533847632985602994650508466276966658823349255768024493142328070141142758907263128998706804348288222010959872306051091875295632135978907460595933538798106424105987368085878508380252300595175222427655345314588908801184522603403610087882320535085744285277994571862516916740543453619905330866307482758303302355839945649287192763577886829386978439688396018992829076288495635370143915462401913803215044229731243476507746301535055952244257382581770014034572901764617574912581629309627913334239512996674322404013316489718778964333405843625316056747331727343881461127448655694066047137705059717460517584982473189172159199088375260817315609590703750978599646545197827582372697238305383165811846027403773376509718208183080545957309729550792099247303820862744774987309812756998552228448040935511339698877292832548720632795099846004480955901248988612286404206321210639516800608861759614877466300940930108265585326625147097503167484299954533743173987114768232914991177202304830162090895292435002771215347027169254079249683360701863881126883256317165843640926637646587062805810510652508606267642369354574991554023479655073371043551179561156803186076864836562010043288361295092640173149020235386987600725550321465028184336335475167979339153802501640735119080521053410700356853504352890302322962366501350668146743630013368870765302397258372009069178729861103762025826888099638357241312996044660685891494397987794296769272915457498963161722340218513199468051893172264706174423312124274177888380630764239725411832416422193704338078162974247839986154253889643808852618121957522715305727974792602088798869454498137351186972346517854559736333493806358965656932154137241144866570956822368856216051217562700092999526236507820746513283280374373885746771799045608164098030702208062626569276564838039533555853129977931709492279804827141227420504139181904568537880889788680239225720162533626023487977362848225654766581519510968788969413404267640880124419350302750376382250113944244230746614484708770785660142393388449098275799890882287141388629032711774377458390829910725960195934387358868795741921571213061728822318265172556298515022886091831791177481672828432444423880172100200995893627994617630396116122129021028252820526716978971700271454614753649878202259980852565301279453232471639381935352410601474507270129949986338456749683179137347291354847479967013069537934038156505639641288626756808562514659051861702755044781930116596989485358680175210594104648376683842258613751680062957688197938270424769754028229016709828498263220787596131290055798583268543758277681995688137297479259275207244581156036562922832358229280808050044718323324451396010655945780303618269095679347423476486101210070808855371087540132451761048946962226006536835106461970447949952035680178714695751017873826377803282238306255305725444813268481891631231895240886346007559937845969392527675232916269861807032377210589623912844380467894512127737558948017675859247290239174215269378064032855000344430404511408243619910440616992868735055427117712100281691568248295951593553626357152353041920041287917626806614777633628141265979420878145693876282199151321794766175190975741019384477302708863860828050670281080858269787319287947908998034821205457441303873178665383085564681956716835473205526698830811029016071016212208732724972045811353457374248650084223013912877423679615642791296814795645460696956629259503796146618415413160908387573779514876158253657825245597795172332294748984937822004509614712343457327688847433914951201641013147302169470683542343785452349864464807871689584051618606783886709996120917527609623484333256913709960617880067612835008075325910751252978623732475117879563568393674783013601985516082636895682277483891913757619259614936978461478304928119586038713706334650217158578190830498759504266364648623252562054872266747790028584972455685268001957813951654641519089271259139309379295502329311834364874083785986017780023090528757758518430380552515186878298707869725353373631876696876617695618096450258465138027701693070128212514504987878507829578303171854159079306703685880296622405402297134978442328487527488137455773752924091672236314696756701115658401666573532742911889125296398776471292011204215756924247220608144701836942408825025143418726238317009998798574223433345736621601264506559085909420863854072028472421140869778913504953598916354325227500135026609415110766217795722421708195461533570777632016549262852956074067105636379371088999590532970730657003212672922323032198517298713610194489746780368848804179506483551105698017929282400180483503893800969340043398708749746146902825852328937265054061231238086699669030031852204898945550457748877051250696815621501868567514341023246623953540106182203449873061165809241522417329062467062440608042687541998593828048029786691510021661455670269079729339269447173121036287086287562130897755492495702318478329553161118762185601776583126587506201323624349063022421321944418386267364945394044250660488024490059915658811951243800520396297032615706752222573353408894846289817989873195406097293284348034138669176674545923810839086789705202666522460485971251892771277669027722277539709326376895331633537512367586389278467877365432309444478767230441948481864583297573446868357784153120544809245167985518910509474226766067059701559882338729151147270884325136757849978181711885770541442810521384302780877122828806438288178368838316222640678209192629889239820368323589506212827525899416908500560409095080184578072182290897217937783349933644918404681339251389776887541523335499605786644737093968911910748002292940885441556385226398689910090353817136770643286833963530776565428370355159754280227921953972100899450989754403089225101533991899446696040500658290930458572592421202705023539380411828916621626569146152774724018709257470653713529159930344031055755246142240643520165290768014902767537927668128244843033860833128422006698933431634042999648380157898072317510532615514237485853908160602977092108792813014218881886183207719443108331230305118090337880590010426272513539390897071864800754552476875772095596514967735275630817491322401623745907650994937408583298837489481633306057080574982587331725826169577219533315552192902189093006980461206621814157756075864117074621617969846626163396494982296678754362746027023438670295001155318169400572667773609547634444569988187946655520974003117481364040206183389640000993202535972343412638216795208166167710937920641978394142623723880963731798081111289501675817554354902523715994017715489737511141736599038137052569427991665701200756503614030431560031902917254980010670408569542446096825638577140677478220940498737309766425912027078669718183987616562700525782960570462770610418780412595783689689986797708508424605270062007589180817941691977521129830903662334611449641978551070491779647907691660472648735149860277873105931736620459605263392065400349776755541240992755848945782540048181611465912524300119855416542319199503971855398117296553547067274501557503172924344596614800117062166634588631516975491065011735923794840005597218444139415450614164821143595807459359519443747624571250175217587066015988646975684784765437339673716061030824482486225538999118641361614469780184387910468112647005580241173048168051431726324288446858675759209919065022683113045170714472752179368511775529663555400109284923554926728842221046685613304657089733416178794594723221199160888052983713427525398913608110681298145925643427774355221736280860819061631250270685989360139162260218345999417508945761853873334820646468708356714133559959566997952164940671726270274988461241143637887628474861897969941970060970514886936056096453495725793035315466176395443144540451561435328620733654627651589472038369507797542499410072588559099819368096697692797093118490804948162774814133127825232000447808025697169970233256227379994623579893780944030581122538561935512990909327498708408299216205415396995577173923553320290272331968590781007268236690022579409697296119855086020806763562220281440152089603510215962242470002851570204567702683493460366319948151564677903609679313693551816400521285419703374274685648115068467997314176227540526084951767396766374414830665777669860492674010710383398323910558089284997758773601311191280618230900472044529417740124362131837132196899512871205304574013114553940723683496430779737487285579347483213686899338352762391607991863596226508593516870799711853085038387883693041706884965779892679053734334437309099012312672029970116409986552822512780986293792718966853188489620192180901655929261222680132083455661688360559204691140547178151923941366388005724353724923544273426443810153388790631274041580156730968485622584882486300625998510910193549023006668511538935069292710506019200756857314301400401140131986558557004402909464625124956350856732058015048861269047312060113039089357596185818931287409317711285564109211807771793129539837841974141056494570311779543247872418591685442967290078891898479815100993850321043645804279734668229712367569577193094107453652430147252091656546926872810538898712803800837619349394031097198413903258482123812950259951066799003675365885417170116777343468137989321369788400651139529460321161087388880712453505689666257678600053729764827232581452516203303044248192098439638738964542200568314817903397086455106885727930419234371224825912439978198415652797672294868539435463522763790031412826014519284329095022084542934738568730224301994841318694406696693036916477255515845483611587366014149966520692582866349016111074745456851439955206755322387093591697274225302890771937564994019101873382657418067244317762079441421824893477718396272517718853532373800213047202909799730870304572897253662415680502126073068650551294049254106209394446912462311963008439303458547339171968216910784381169280014805029160137887943307292326908656975530950868515152887638387227087717461727562925278327336912942135230686296661504521875115456295713251409174755954178985761525636538554528821912043044231435367768204546101470318020534390857099010244584583394403934849486385698943490392964330679794332869380471876177401774578942619564941297536216794807884953467791740468441235292894023219238493798029055915642557045381665278483244818146570177587470791374846619267598142785427886235626083410434157838997612740455834664903699424270591783188450858852395795270970410367141597485296792236732909582511861788743182118743094146302979689206545929338302180548143089956723475006698017338918471260290736079979213392092847942252289347353207398148024177189863375313292821474005879190675546864139696830489761849058371887387953670149856071925648753613118688459175706417118730951559870291194760652005038326577116119982454618880168567357321182055951315838938604200732835774730639677209490522782956147490975553719337620004335532583513467980239129437817469540697082784142945055014046160214586166567629025134677137248573812550254049955777772081290782163897224839347892541466537349944847953193491664696664568062028547624218402083261026711880009250015380238560898610789096081036980807152506731480386691518110206929435437359479622497084968881529911761997747754797240748832381388689703034962454706276151642373643969879297840331565166523186621033308853853115324723306220586261643734753941774114260349221333728310309284548407863058842593037298033380329466500443608682407720701756690534169280133565257331416766769840203681404465482546088306190420735785194893546285260129817512195504015705956991550136668761538208623366823633578178487612118904380335880943163540275080123363082442095709518283963768584004387556527022253005057061979412698039868260160347723706540632451033361714448425725460039996359010745881390290855129048869144046384852329338901753513938432915223651855475104727577415039240813798569474241992730261372381078404764152894572257302868779714029393208467793393830595730241818371493121828735042535536556516141277243011360925873108322151973863699408469144437474279798345320990544631322711232912891450002243662973360448686671160509570739022178902099120637018024634072887247661466961387418771880680342114796668199305041961884032118709964573644561211113646440466461398153300759656509840587630183744526803313730345757278256639630752568208334112506830520155527167164228178647485992179657932917163712288895647463165341886409110143724049698432978303700070419455151345607254134960562565011869786683346041176256659814582388624834996708272518200574392052208081369706736651730988595354696168813412091757823608452522450422669478308808657474657987909954801088757088123775329731541152054758109710124839855415049237890843489458003908342497525589025022916509042155150833707515428547295587983596901059979564835564383029578234110989312425020658830180507601886537540107160517158095524500585358204306124180283140105630499103978784011810274639533653059246622419551041882425172707101720675579045040950504549278830352917533580381627472970212729375112090266778761531963795756548352708377391542633099578368193775331213949766073351678875647848871344011840634534366443860713167477632116212813167683165108283894859794051044382850595531786208214171831863350373269250834324504927195987220865264432318488586541552407349511045350611264685251664030019249060993265815283627948002106344691422557812539247170454451434969167557362237650066788866275853586339739373751826773209267139291330251412639791904487123635374554021118517897549892485410113837367664751379368711626345984900765879734360939347259370906272740122181438940907225476877567816399527940664450824080495660220280874933910811135365525687862826893496179380759105974938794695375992413556206014375503965817479977803432778912571049534345989948665028750883362323817527932268602419860277848934717035864583127350010742534791493172458686548762232060822477519476706194781959645486686549115658557123507375009539337476726957589048263041899662573207537753066435516777715150837609361052024477623873117627784277886851724741942386823910813602697772921965319757466611919598958692932699247419739495565089536086440641040659033206904287194521644860117970259589080113048711675356938674437811810318548865604256050633588665726625172424035754606950123855125719575907075556004759835865631265014682202750263472395330573734289583214799729569766293633491105188125081263362916910346859432497861111612577069505190544784112333144137007972334016746192769230739975948197649577153638757088644069761153357050422018546353756958686356018740481723216267130531157686606904587280063709918649418573866744984534984143449594189821486719206769643474218280496535888894832536568736707719203397475713419889599546545700253947207041725228947462643836334335397873544402565187849440298522609823089810411448538694121223291568481959277504237755711126652391403437213784060230075507440941079865172508559893256936105111675680282797492345975918051120361528875250794610150997844115053927346242425684849295043094630121438425344063251336678894175112263222544533128248427886273139556568340447596206726197941130109880417500831617344199435151400127587381727921436185486109488746493217730013984696110102884526849123347977200976087927141415683705903980378418042676378066902130782123664411280035591132963787620998100981296547120967177152867530354272830808276748859383260097897861802912452620996044454045208350555648699497178201877222561037736437760505347204009093020140549028633787066417489308188021948903003343496822925590931437962635197980783317733209139537533414512596581965296375144558294212996909924564329352498748852803780976092143542008475563303177082827022015365915235871857279576184416181474489053163715780637572168386534975920483352948677555308578714278438298874298957603653646095848585953658878451342585230967242308811101173373208498374015331715134878018187066551551727735127076938506300839441578595835834763061442013228598416546637956101648632980313849098411911737093741386632605963677684756846617361053828722740491874236573355333738309049253442210178059189310572759763228556072249441403716990361822571460974664865845541179657779867735669355713638158228696180744658660800586908943505718976252260468610732446903104534330333793385316687688359893251870508257208769086970314992050770715781834211262721930896073613627803639684001312801814595667591560567217080946364812546398651578145301858552258896839622457937391819555899417322402433409768517735165842384164953534010836831669966001489364701832109715425544242252219862795170096665050263779543407116405308725636830196242334756875435217807628411471296781797285426360250391088882819321436615758350477957864892103984567626454604144747358841471938179032028134503663393431803913200540603489876202269717897630263942738095418016507968519152116251869397336577748816037929336117739130824282332571815197781944663756493030061157888567213432078455850453855495242975598523960306114371184687968208688661915483555112681346772068852392548266569683023537492869022874775510654265553925950901957855358331056477681631127353638431864242157571997591007984518845458527412396754225668260333522574476312194919362997647410785095571396761513407712879941794111642699007344605051255253907322018697086963984870042674781119502271657502806477198692052265165315214052240356104755368195217549715952717512786931642004917951133021686582773402239389755747207704511632658851045215281276513326196762177351897531100114705921251963804209365343281902440693572525708388954116069564125925250391426176803795756500338020655042954195890944167319878158272763717495651261712153327001184461840079366376779513234455920618295538271333020458797094096445525145113140879819301653895422308174289608108012121901042742131336594070762195480867833753050853516693870687817320040381149994389372917373468783551659396363374787641545303040407292122625494895663978087249393993593141782980749514998855353808708036110033058333699225689297594360694764414325962443353314766326600908084805042904674666774794135023212388171238386961538337586944687913931899075549016403372945793967203052065314979742538904071613362751523430956019371481566919229581503393006696544887510830511098388495707200951614950301339351784744112482772141905830686884322430514917142066187715316124982432767937453936833301714662456690622149875209829922412130947721366666835481827079751928739913380907801070944843630508702811584739616129034782303465425958052509280693155645106119100569978767577754011674982656342520803742982589134477969882539864336704098774901156797018883038007543317355282420485728099321133080360033996061736376176113212171590832671407069098505311341311385702035934063686509767123391179555973042608872083934073798876153866970566895056329039941588315150161625427571584706473543788533387709108946748315298516230336577791089029034792105932306207259229305407903252009770789692975251508097672998944818667297717844634269909637772432481550933241716269904913067034084179484763866137527279711525131448815894747820401709327775045817799062149727760632207221068107585113282852731474511536420805586442006050964690940972086110307866263653596302248098978585486851975113401033531211123929842926529980806347907218924644686315655006599504068302071863881108416452738891065685834647772199385867692883620198234645463563414753982483216367792773990758486320604717523915324589041987204659943078649889847450673302459274000819115884462885587797674792883733356441943512589545237327748697661444413908281384788850736755945284494701757514464998442220483984169707381984744853965115402502393859009761316723357295520222088880572679786743074133196578397468716133124730385591458637687865359816503938527957555910771324736016813025741941034348341192613724988771622912810685399197509832473891998210331387526327484605318156670991433317424614123689049843253195014181978824428254662902108620711866019455169729056036126974055492904278328303326056018993339836858456606916761350750530320743135719448093494709753658747855917415277031316207683512526676387865940795118502982583168451880057126866635991256552698120377397663804481568282312930873996769844122569508426511799929522948759734457226753908127511005463801805798592075329720639935276864091462169995498446517448473102854187773842296657259672157427653357561253487549429450584563350270450388653809051440409599113819859612795667480384732090369140303662150694876878161717065356862334347609202459984685988413686518677640499472196038416359129184030273621040641859248656397982004254992025002643198985744924253187078355279461516878734120223558503739531258994445310608243467432476405854473825203875340170589357472656289773572797548328298278807829605378605946380666739417053726657075646151147903976008366088437878992148417846927686710183568315735104586562912064987249692249508977180413832521443402824640654649455228727555312256789809286463037672002487110938449765322761486057156862092061133932695176797443188981338872322123594352886904770703229443009158689672313623203285484717016472658256067525549326244991874283344924057774392597380386829559391381662124242292102525162217139068164643458906874850819101473045060152878496331184994284084637881305091984700224671252368539029088368260763593596639451802696623894568923094022772620899261034493871391530256105177432124134343941966089164799171792539857894692345695979383669664283118654764504210543827527895532966291591550890171740250705037082336211379471163009222520310049359055563995798854919994644111067412637563275162158434628186433394328008539271398550011311531750233870564366095383906415960941991129222786949856926147342154920783028165660675215976141977657704324391720507518104475737326615439884160187063307661612489843484981739860951385322166397240729663599365667117076889890886560068741124268013295413200019703208741809118860040278544955185089075108431520985582789129122766905948678421728596671482262436390796723449567120970515350146638453730072286874429977873298736678685968837847195373778980411891077294641539460984580600426899288044253993775260889946946987581965977212328863337993860815001282227633682896811898986274658255870500741858737011982689881217512900648402186802300878988950384969839114026722109939685507798434796288844075439181311824144753240859243275355095661796137573685065126234331173875433228385308561028522039251135715226306333115120768420494272893155687116216349101023586381402404792228970500627132148947453644954586884099984409714908842600343626528664827694178330886146611742457524529019049404929774819958804716488225897639568329808317218268879626873859800407015468481983377994783180820050570916428965427118363783749047903540435311620796996179069924096524676393784726742884024729634627119113272649444320682283463653104931244877178884470389225573238014306755056258395179259128643114331829705945512892463937646345234500002360092661705103194810866307238713376872602516795209085176755222351150222795074796835607596722737274565226673264973362362769801404916925838810945651211218203275204397361411109356763352160420178263332900419692100105356923862694070361060912740319681021545467903853375335729803338773011306831127847649767032095952078688834127324273352930274062476710729876907018392322480166077602071362632815180495199065784023022802918216908413733488109690359711173740663416889856027074410826648210430414691238758687715229840571046321568917549629268692069836459809872261162523514975861646330913532435708801526782585868511210112215263481803305956844462740918829158252154854647722797473416934956264205765463514356111683359263192014342547147027254052501645416181561942472156727704417218755878289348068776795046104848947527053673556003630177370353584218886789743946405058268558710572883017295836266256894832116622076433341719648070679759312914677180633472600094301797980545721369755691791773656445388081039980733720714557024302063623741493901203560546100671468071513895480373806973185483643989705325174311239403231416514919090687010166146661422396231530566199257764286435344681619876478061934772633707015190331810721785019672492280916714781022870197896774031755444161500001024527540012036908816573254210512557402833133678819739092850504648907671027028610947913695540899931119837390080666366513949429559212339939446665909718183810407906717836792151657980827003591918473654313729858751295244977879177490872177010835588439676274670178194848456772019454151970808387424908159607831213484671472806757150896834801498094107630358455755516837218230583408298801367878551088819221484821974313340408410683447945578438966856144580744496243562747417982806454780295351593936100138116530722377505804572050124819359494347301621120866314579958767194937273340880788442032742980410357250100609450111314714352230718460310334731800641392576669723256006190164364815605828168708937332982168623682656097056981226895522746632718468091919498100132244423148609507913496019071869808906569441181608091322111956202328749132453106164703215386103256427085946128053492032308191539370424435414700965154405742874215086230653539238366788621871476594001060324031663694073382021706188021183135950471931403771546365988883821382934993266492133044956977376294197925400748778434931896094526075085197562693037332980514646691011044507036738392732973792388708136931459454371978350957236206254361032711521757830893362640056482809051469032653579645418797557123407671754017160867497921748012279228144535081856265442384415410591166466501175696408617468070651510567750732624511791449463157454824487302738414900170359570745868329343388893897787609707218084196784310758516142356546652243504185111806493229263702498709881949456549302400433529228641188949606127031010348097350925589072546548133877802059516224231376294289870761307986127000834544867397104662368315248362467756881280383143843576750495127614152045638371526931870381908977594776204801988739420764582387199027881159656304717751446906792200702424554075653837455676144728681553627608408021514744690423503334416076938666581705881674918675617978898439204293847097700903486013703348688350520215636813346001244441393269231024551093955325421865933916520976240047407483389278023350786772292334898962341936518258318011592028286866776467595709560817139255013999215114539647776111216805465920001556820901257967962037819581619101576960614347803799649413539538505491300914426697361011096665712788458124934630253053839945655589980538009749618896645590904231243155587888329339161893583703227207830713043953901037614087687344630804458390214129114254725840939312501701045665760542986781113434003425304578942981723232379255310229320095691485995694697201636732734056594122016333209245641993913543402103256608948670684106359838422988966430900239500199580712273128424811980509920112419558330858311751730298543742803195641531615368726156677114156837871346628095710542764847544999507357388284200162288877179209945159616248959732686883284330442730754793147716032525912321096305920595208944523038191304084389651530557580057973274725096783024620114060210941324461573660528583603074007492087061946535507413603686520067734369092508123254143378799798245419724649714294669595744778822450915825178335964009590936638550590787704151966320387875152112541835778339711564019373303045273902937267526697876409338021590522547781731149798914320979207311084499663173633193832339440327391181126150387018251722344108152227745462299402182503519859834179638051164774326588001754906478908281928415737422757933834686309828070026063884598187944424841120652665271926376579915775975641137321658269600889045663558689181049057525585381992888256646098754774076553995196160961891282333944053551122147739700570263703442228746209573542388925976299648695568611957579792593029674962730975251832438196426431625357913118256636551357118341716525039985484424011716514142942706299780518277009327713932023186609796546996851711166109166367916965103593099280139179224943849446874957274323723613844881214640087028085208412280191613241595503819776330698384652677603879499743267493665022476047218261766202945720782123330986352030480612397947352330363384788754611163521065137790011710759716887105898653860211492936551225273639560896056981725050188564349219634907586553736891037421039499550135342370449148465441862798041745642332784347866727030715280247005239064287041062583378216809228867532088265288086770516473039931430151165015761909917378951413129253492769895787846732722739321788949219372103679893040428685038008245139588529547232844303984914666512701655688675413160983724534269286985276782380154408172007197805467433324632563206310393693268524421887840749179550345941128447306069364856495593855620866151034599229803401825995132094761415214365527530263800842348131261290325611193486782182412017299944712214616352683941208078768425125598874507006301853194751510544579502744526366599140038810611415707299602151679792991960387687196591853390412478692095416711872089721359075719394231501977681274554590099069328686702045902846833506895106787892269664472614875450060794525917840017462025149832265121463375321735023725860720713111960473947975844931063140404038005918658267916816492552740894764962129990599840514057500018720598596597570334834537874447235753308058897416322610142506469145210168238548957423512855497377391850423056081795712002557768150492028119822757068366627971440537215162146831417398238019793340687729716698937362008104092190399721452737583970462034064634041891845663604184031029812569553140042479570998364936835689455652592621807565569782389939245380966648684165903063826618532183544382982068155894756472390510730543337603630239188868450255826788150580983528068430038952264720323305190490412908059947451840406757898905867271539773809039459911081712934595912365623690298434981498524434222515804372480477895019396949691249261584558411164116123841553218780168655033120872975667889512567591075876477633960401807761083524874970455303766046405735712953113405459800648066903038770528175083365771854187921859214755413808339861037734209462659737115356271607328790206896859738982350720383807138871227659875506100457617396899867447953365495459279702855775884322919114280877930140029772177479416234397173539050944663394113609588047362390374138242830803486882935059198549346694679724243668770852331051886944796754209804226777656006742301439307908756028085829887446613208635949921119243004904164893523981220304225182766954641278736694356350978655110404190501738387018722216257349375191641020503713864887596693994781670866958868954148813586798579615940667489536764603778951768645170222077087639895955804080042558895399596306397946225955265373025065131869851988495438288182719900543855109381427934342095465929484894678044751686063976708073024433956086187515640664336921394956453608332541279921218190661301994320054304738140119134521642978129900106865850303976468617269345402900651742980898843709453776497050886759696822642904320793374998901410417871724850182115332585783423775054231541840897110960083696839557494011257940193663283401233284733888073083523038758631678203831577379416167773646940042444267065782492743872404763096084559889703039911363673263934503476901824221767863629330096313363655885271494366418106719338471620496108439722931743023885586200663928255779616680130133839893662294260043990322590378260455243177826520053087171991347336942077957681913759749938157891828017666870083902054743436046699538357245654291439146901244697020646773327374612523046250479705681734010570144235100495274231932853946301896100077386226685962489130564432801233629523629536100694856333442548915624809628510689752695453527096260727301230622808139188404139846634677364355954850025797573897710135254273071129870419615785834237845162583631196149310702798544146835521316972205048490010935088085696236512126338389207990650234826205275267882422570036416748088342569187344178188057864390676351908270583623213400701194680185389756771986062586361765361749332190615439606912642035133861816546237910336827157925289313603573953359694300572952512940308919105869868559604551732088331069811196362158776547433387381317470819551683323585838329520009417047791918894864881055731413422732242837694834378282623541022015823204804227651297030779775730639386413811539020715620215685156859312281717443634773867019879485082549140505343105090200939900973789206328641858352271240566195470109200947951491319124877782959678551319194498610569043830470548388214163375728275550722503450219217890683716025593836214977175900394285364823672198208509915581138789301611989744642942149575007489742062910334704502722405244017623786173042310651957158307126536820020748122606340663898525425704321050330522857045511572067598579982001348613047629647199747288879179855999479292572671537461258299817764486293219739527965139983011349027339129369587538682425205531343951320692517389503427077419827737106238480057853895984039582029738033868317926296171992363079060404969345530371272843718974303054079783097539047651371330236428453466750598914977534750200546540339948302163349358407132460820930265915649374313828676002658850881620614356169193798110393205386792576835576258048823626600330849885467669188448966347603351892592097685863346333221292006626620421249755770816460943405088024752321901694502963297065983665612223478146179694025904587006005858270915478507354252054595908194836559807040939664254186523356919882928361449705377725216910322378579945418958968393661136327497105137660822035956448194364605425610860098610509478951398698384539016778141463491454231170547794971808091011140524479954221207907723023636126177638740417616577590014502462339225837393196725364081917433772175705879618607014785485248151025629664792525661307352647426940270424191375083191012746269177443815991477626815741276924574971011641312069030950026435482221028184820395437266967267023023021207741739488761580498721359181978501036809849161369193102531200801275702211928346700114398680730235646988268784801609409232401007414458137576645966797153969595191542984008471732945440128836727542639275333976010782164981455961040185150277157717447767079343143863467150353135432352762678015194905818360017873425444434977760618571034405834202166915896892846470071435427990483454027802913943717242550857494318893019964442141135758135973100238472783005842946549183195143544868382358845608356321320971636471407252342243635805667395613705619690788167553336667662106606155734878058076957790721689986621716631468030130289451016502498889446772306182836574016161205159686327727854097658212705634781227687415893979465373615417427321215145811999994761765547720214085798141277663968060406948916311414295987258100146583898643519788375695952447941226027548775731224775112923494266095214186461937126693340403629475929376402559865477307114356953639803039428870105398940411833228032142765793712466702071736221410933712995598304630912601979738310652907103294731182210773771197292370532688173641250477759147499617349667882170673492176159168821114933297225899639277326048609766148456663595257718662807670401571274566445231095226074073671609052518489696956417867630673394932197625962464404065559529038736287340437795089713088429761309026684216909658664671085001244624286259172470304449415497343454993195276057913507979808349886378435268461124672524338526430308671907906918358043338780524931653343529440896700360723069195716883308080148929630715246993904975309151931343652880097344295647376387819802397537021429811173248835283228042785832886965955413033535263232927864717485427083745906720546641849583082486875719077554308921929187779592178082802836083763703257456734040537491194878774815462426027288031947900079889817110430527319143245136489438768628035507750102302348416318405070795517896337364791647015924600413123226262261434033203259038581987918385269292028180562280127527517208655005630779286779808255926014912108452906970023041237106272441181456698316773167426960932470275275397160800328951071216279815503289719265482468023458845087823220192669772927312327479019123701023813290409296807853870561817499329916818878801474189399936742522912278249556398082161413037518000050627981942704958182773492989129659836521584928792403210301989488057676792186916452859186335411953935040469024191774474193382727138719175929043803329593539966795705334744884443468973254860311520344480519557102897298546696566515787444418977611210035568043031105112693723906654402241713270686799074974066917309114722487514232413325196345282329642961319052395270704083959407067495517345809860874691665421857808969720957299363590809169751144641620914926474060007263858193047425522603262988404928092180520261787065730554185211947009428626347858396244565077836073436142116770954291438269577931677043052721527256754307908367008578934316210678905802942344554162520845274514322012900065725894948407860072837137408871138572702243283023004274128596713009899235648259018180712340578608087025811279638210614833872587844854578331114692063948740096312531730243881702785004519835627010144673717373285516594960235463759529104914652464364332708528782459319493042229069950503728845575281481341682712590934636183727600414956977021369194865638372000570516006624156549320533144193789496120309232967071917940676603241138898663689401269983812814977058231260535185225789376109941141914117518958830320597289403049880697304950374441585580694325628540044667613175989083553814644759020024266817502804512500750980642872657128949491210435410320988678606820257873595429845879706457511996438381338807648140597514845550497846412214325900716105767182791362320699876257612676179621448080186867105258248161728741023636336540845195494553739207118271807842892995694479232202942646089363508751284982457785587624316895978723691801295009931845800948006678805011362568047295744124307155861969650528097007716775821522167880075305625375522695818109611682812270815056959871842394809796560441272179961633552278862821477657997090859763364674203992351336252755170782762496762541502620206756786908218457578930373837329305402637216335957141282252707849365026791501401822080413711595955075068223118411708299315346329588758201278801134781386407851055809234251734624477508299943913442841049049057072217552154079655746404359256024600773403571787751916619652855837265766511819980421115947173448866372855757294784389742178087789118798497783445156088462914481115720547700739876250004502666594738680231723911169229672961733726142278180348774165433591534235484741027601836824655647198824025749120144615702059219075888309508574803458385946879038033136049113394328243970925093861553394419198911804864095605530457945663912796534125644704437758605817326422286778937527318652116604405087077790212482683585897694485888088097683728805474709376826334520100882787805698699065803037088184669801583510222215290206673202939540033315082320653898348109913874978608048293435660081522377223233001028497693637042001404814097657725238695923600810366578805358419828697348869313005553050251924251843424784064232773554379613663277474272610579875970177416350294258263213180893939428240036214661943638280451320102406534060171604817858897946602864945070512346224852390542657697096232478864789817480538316892630205480646145235410377162217755190341226787130173935895010073436381740674036717649790604277645036903325251653267050119822182518838073398246487454090050415036292400146160126878746472171606182059542817995215950232647523388869463372413071782593442442658881616664827157298211967332369448059071822903624143348664640607909724312984791501371389841372523090411918496236239354465256490132979135833163891667356162144692064815889697305010433946535533457923894316546858372611976917359648841048665670121281175102490308887910585051561700775805224950995594895219837945995785025137390552720798226510554025414721094611189773495757526394278263849436125120584937594848559174627499720390041255231504310186298312707042580574347482792234708949435874432570517070537716905000995003464239680726975599672733140067583112024471220253598140900430896392899251016592523294607984613151462206896825794953438068388774807438411538924308860408494242579137197642095480963918778344840801358861135785750323844373946083939137901442427913271383281933795788052811014097395060964339549410047051912613636809258722926946263531683552475468811550643962766248516781457036265344916735027139740066619552165379665105305440734553315938387059956623433625614289529963716365941750955849637008392350559598472260834647542724916084224956202863704843813841950847549236487342770400769809551657733430003414609596016627875515063021257517447727030652299060314240393781414446436732541607256058246408394529228154819715780671815619711146311570858747720654239841084079705510834528006903553198270798717288892207801483615090118614307923643321131531606508415148840402630367934270748670970194973884303783122014234088325805004824232940423685187291648880078563483355062373696896117235907321247627348022909432188960626378511611761144736549932653492500358150747224070174144430371442098240695349935227087446763615014905717930043823340231827686683441730501303080573421585527747110121894610217029005231039394346915363523156032975060215570555635788492846576373340806773082505872895392266808692329427177005028015203971964231317653473153277405447526420070320991124639959710232140292416748928634382372244741466176314061172408320182918909932225693581099242569810923882443952372229356704957435592317544582124851429370498038352333326444376768220821971478134858237197363768633338232964863836498314116324282005071224641330163373903170030003037824132998519968766762798568872801110105022099742912321598407725067072155433078519734013044986876579932917329294227596860312226433912495323613595837568562385686720113756057907994657562984847621235098353076464170480716394642791133901811303559604302687308722709607017692873375635565132167673980394317629021864783895486323548183568564001524030627640978849988917157061349961708053677436405400538017586361109779985416699696589782906878508934362492926009119844027665905396263920072958054662819641210997950099417854356272754092848993739588018854548896762822145364385494493511005524103583730623849509174653761111405369606746951344642090601047857198030954325355278879424459715347661532990810667885159001685070381196635403972580257079839618369130136876689276243385124569417298246681366090697194810108117823879275056550294060923692710517347291896538401634688900055823853620559054478300996345520446900170641126018277016503765488993435620874357972840144149323189464245442884322877364362709759112741885253903207177498806632453924647217771980538331986926904118049803730024822620638653494687828073961760928881251057622753745551708037743911081629279530780716362589581034142904018954146735440605938497586654229625600394065185629149367592573646715874248965344888039697441349322259909659979277440065266523602730711504815910433572959406080902702964358472300838172071243162643872485686026443287673155210452793834695895872174743444156021428422461555801005935195031507880429684849429423858204050020208737316494019321216845723241628273978030566830599623942792788850936488595858741038693733620229829380574579276596663695959693156159120436845522670626065388631704212875461065732145036206739449387442748734366157727744424875409338689193694176822206922446762445170445751260132872620979865682569425340829095591017747552349070653477345590015626271471203022972676966540130922968736380112716238463537014502299080226086852619989467618838557814803706337553832669486440168190548405596124241113144780164130100119018001340398229620668633895649047254014308577783998481060813272839256204684982053189512586965444702568423830894350724118448073418678921732108954213640082278067951752129524885646847860926503933972808105046386364429947635560028250948054915021846815142467560622672577851250769089225343542343717246514643102706203329030907871995633082184575656373527763596144805197874418105994193622587360065146354309274241089474735610005689676331348723745368921839707081767299230362491265844657510994339231096911942754718114971549785310213935817153686991913473990597649732059476029391394489680060096821294968349437311578156641532882267381325385623677910773129189547571390877031240198865644454858441503732214256587089945024550576918511478641431922097471923136198587261535074446301886907273093296728711292891722603158451658879680457442138101216750710538051262478382806422815947855910286281316137446505852174006282928069566016067633165506725323024754535733898306883416345749426378703080474815942705828399720291471142647133777221483481419676402241965089357690672197830277253726668428246154293126178958056126246142042413300377172576459953310069583168383394753929417849923364118274315413153397437355680023249819025036811250243300642155641147084147649203184500728840268359382925136145299865321928836164710246693595981505801215895856241376362276190050949851027252358196660749044708201072120561147953815485580824416044036303360874022308360175283273105046826501735980028958741333829640628538802638984828301669946953883508849063244967419561620743271568924489540377529577597280183535915369589779996472588347032997657669213543847443334038631602375228622193863858182979125047451341125983231224553231617773093542278134434893900446372552009029689561794003477988529370863474349625420323962100924925280635223805104341293163153231438525725966409740631264968891288731123486968821309893892624345081806751383942490961540714165738356124298313485281628025995772486374358625601583288992630790235138781385900086852790544776234321610014752087500461774712931021520409789308089777185577585584632483789402540621931638373519362796834012132421856307623310453021840444223691644243041174316214989403875460755496680553712945271822417582681547377004678429256795945282069593864858511795506222989925879805125304014528280683927527358374305280794605330170176042784761623674625419840700321523811376139092999648934103440211940446783884796398838082649460948002217166614976891768498527085260811247156275212460978895731016026541301358891118169831705825204308423280043641526502438841061779402119749814787132056969775365195796320039894684136211065388031313636082084795084766400852565241108671020660031455771848993896104336556934752335355734293962147565086421946967745883880835744927283760126155893419021432811481864122288378672719229466928402225196770352480122471934308036837521956963130263044115880716856467649233713347057900044483235577062634323943921480866915939000269335209122302843596852420721062564926094720204374845407788598802791922873371972985809061055700084994718238412223469427932974594789394450618161910153038294082389238495294117338233881052134307291550690723657476127350334379763325879653786234775937260726004030964730577483202552455835236296891472996117036166742732391918821062891462725831324072531536772250420273533300287357988194328567312270514002624682380729422348251454310143970930899434970525363768014500110616162698293403818099608656506188313899577160921129944770539404672005560051365178921414306109791340075295999153853396914203526090308147938292699897439073941333749586189643669946673680486312120358609910976492976009815341554781510768526607223226845064170478339215438046520680242482844151657605478292843640827186779903436449385207704421093638502085543173590085201925149820323963558768715611072601170760658495711451777967168509941469962198983603616146475327907474927500028385148568258553528935457984795948025412708371361667319919806424518853090783294978175703367527273889870950789341564086204565024824419890919653724209698060414341365670185199552839788530597798291147436489193490795072626689932981331330828816243660367494641236993258306955278270104778324654453066747436624164534958419598813832239295962631210573828561077162693708368418486345602609204222621495014676107209315389611848477971711161595118922392675221577036317984211733754382804536357361141694065886900230759300582588697207502993799549808714489329535600706132663145495021555678192370027716641948849368255907955061993061991598803175961832236568482137455881087006449175377131109450509674705235114101773496159979256762259106662639066479934515336704860524195559886153891315252364336673604168826639365108889797804760395328203574907306860545481854457323347904438045697922319719875678067392626615304923381889880125669542193411524772746105317753320047447661922471903424131666729172468386550432836364998829758074745582037534424569379721306226833887799525363287634994940867199795429832194058211688097855536679895772569519634296964566738050379705270601810504645514221328475869750603754187168910520409009833096951477182081095485862846032352328272352389280464671724166062016811466826901403045078950992803083187503799454641234575752542297072042932672484970125196499381433094811783959786907269081621539487276589119065404570298163519614283847744010159372094684733995829083600358458299733453968879228060047258992052695523160187909898010347009133377101532013433181702087870848919389797821812056732448414390295885547746215473478417680544999159658558408209023916195672432311502622908950458100785676603614760669787648701587932554561581856090679324893740082671805274184764217911867893458654761533800352419262493229938224595302178556232090863064393599529048189584709967005142806289219191223371451596137308659278556601414444158486521178625656336901169160723230413046816480740839934194155985286149835677950037230306590457369309901600399295653079690020133905111026301342463376445010945208788417514581562076932063867162428074949671448695387614788109428558581804273503606712476224678108819117585163631761646240386032881966990672572281619036304113720710825848537331824102309192276729906638407774873765407676620465276869663820784912387109994048973711141816957007572494682162310964337135508908488142605863184968361441470092420207115630053713378220238179265280080911839613247703113007414455143263501560112059925936663981336640896758176864732099041036387875309283400184533644645907705585475372925506730622307743346376522924664989093027893581327696891771641424513768209202274992486613536710445564355614282404727583735057537176416376558682311683248449200286915788286560650992463973323201402228229982349711061035149943081038981375031989710784709727328931351620943879782537880290569814492157121419540533998155824985543927097153178177350080067450211365173935269699014566207161726338599376002322923366145495950052884354463672410552370438977279122806995016036695744949525658817549551232269240087944306028302391702943404101228266981487083185542801522408400292799508116908752033173942413798435407624273699066579240149332857397640813691305840291430630670321427757136850739334660857406882063649018189678068670931980426162785823153512414999643558960413010205511884361332038432545034778012081598905310350302472614520270625973265937801077000749187051883387295307507483636305567757385221110841698066007495199809693196567178861253877699511305631504304295949111329434502466884520234045208459146005765989300116301498134699128147711483174706508871699514739472262208955385378038488400109455844596644406808740716603371964378515304816362611124507185660682680844997017790961447980163201307008554774996343186466141664970946000002920111417367242884912218927562212460078060846612917176287978166526379741103708530844215726384766224371856740564108308425680826193365017458094314526956094351217020855289530784316052829761935531053832925103976674121639627989151040850000499259441214985461534295842555416702400714171038854026924889888153282161044637364205609803166837419538502299388426524035988239178877385431724001371558702220137754557595139572119262710896423313370942925679061560924582401945371015953675561915910991859953593321296847494121117995384970871140902018755171259601690596792666046161863841210540610282571601203148277541695870728828258966545803290095705295900129952592602502114328523172447963496042826270873009336138932125207816447596562696591932556061731805223347660007564467439784338003886593798174204351325897279472653226283592158157434532900346465932283229778870229129364248948943379945335915251633534305102660050492382176041688247919713069502824019378649336332450743319733657851016460946396798273159367235885249875369320689809873283687241240294302704627260073724430622194936460393246048385048792533418100705325710067848553125391239507691036759399127867427113446411499970180627294657029607518238167908748698859536276619535040085657456090110934481923668366812175398035287619127040521270522169006442337193717365376627582773018918310465360916830062004492774585568526501606808757636806453848894604407622608189777739796192583902119405619349006108702266252463998615396497213327580916214998423684991577606180999286712145093174769281203081843230229875528702762987377369192305898058111056403000993364719895740002396508704163017111729294593864827902441709199555637460895778597357782597248498327619661630724499750204693159295963527757696175026922327406161633934463483659448853839106143051064928211890267259254041987075725195118286203395986699504205129189239952636484655379972350170188685019936025469186728629684377811254887380978997591027265825037212968208096937998440415600021671466749260763136016472728532185056420342317572690855244000466243996218762224208196276634557451572315495045913149550412994968426549296696157441873114858132557698490970009303001736285548686520077304274799572594837255937542539891438099398543283442621705304804356244015443765792198170602090195251964130406881510928212395942863858905436703390133356930578196267970866730011555645362810966772398926385302644351001294314166184185498672368096341779522537256731471469366270946080701201996281409732067366377588338411844988177867694497400567526171863274527032072722976383069668128437055673977925197702740594919561482077302629737453686909157675405150744624657590068119102829325756253643494636313054529395221152366407823136709557374113311091878510900247757920456227295513701119744170127066275070108011977103151420101893571691016386167388726287388503152566371126568714690903959875816242079060297463542646773169501332464682961540926179458365025892824072931052098281006331559771750026659995307242532432493836288671717688952990264213890634434568917777722428880502410340314499822102332613133572490745374701592267654923026669061903801348356351791490733197199251886571392138115350646200685547173753027885628899826697869203330388663083144302600078987776841096550371212993528173369851822146589490189269694146534469794784742269747201430026139485831818503483089966376555263406469175148982415528847362922792667808930922541309234918793766864817429396623293648473724949840270043757193871640830672215313867832814957931730679485542240670816760733324949616315056841970225484046330700767295608209756148759310863913401498962871839430599294957008969666020185832651947458169732153745916490935646604288800362951278058679922626530674254645611223383563216881653062276436610379028454700068134676519346507023400305127939818804350212184461475236655758275625429858489258491050720069483159548823387191498364141049372268763835308666143424014337316216946757569450862513790332310777817013004636532173877114914375044274562906165260313597022706808962774466578794303152879686533105073432394460049142020582719392954356619732491215659978470068629079134135422368898228906718425687825987418782302978813217123838894055630107687619898418176186621515792382440615863706276746239152227834512492663510608892862727645375742741541415818310803914951101592420991273880946110637290907092077297709898805131228885367436352887597188827283196140958371519327854547701713347261807021126566005655913097364244520037233535604357692844618860481588125654120177364635239210210186062120175035542666396500716357961599782691373427688210451865587880574041539133518140988701876252326822259748703992161999767674510652196000314862419238989428801279267956212630131440849777085321822962606456747429699244712178707623589050133724757019437798279176232767303535908022469257965719855174692851705917655192882057918606302345655929716463544430786275259246879591202708353069972086417075237783687675675293746278562245288405869642554947702353780736814786234747895567739166832688471670390055240683033276489525246355308204826899340055707577890460456598961799072192357711885570363494911855678891412869494678935470908988016575104672507330974889892644210223304685900752144931708955574437395923813509172764774521118589273648855589224591851592828868226609203627662066101505890840573774558555336474074813225624560996434017353741856797955354713003368225711514055934880038540190183471018534289626429795520016255860155292672224813415992270993756209923506924203537810924736064074267131287325285827460267164200596201406722464540086328781863686588763055179072838253800249339041478360969860232432529093975023260968145575245837748828677709886995263065542822573378036280797111757533948376064442298878925656106959859181847629260590254352743079939622416537390926218133843082299745159593731382914068658617673201555097546141352615152694027036962812752948206703059820030836830334761289157549240907480874670700453060598748002393291288921507988154379991386624794070467384532023537983193328257666944275759274658030733904199741652488326491900623215702517931975992798927708128466797815619289376940809581692572083344979454604566583352410166838930211091490873020820011729784858011554203240810985037249924153414000100334306938848087564349018170686592755974963802495009428222524503369594013056703767763219363629043419180995630253873425789849676978604181339114261492403720227414173188672796623657627854022177371291937147418915634657846471657434608957142254965989816509119395283225582186458507066457449499143866767879453589152309574349843194052196084283619818988034822406929469958068740511135401048965106792852740538223046617770822412270073263865747402494222721074501091333779924492816892184444667619105097917670547486405973713632606080044119618564849496966936921140344312290966699583067494619186868112398136138218561174729674230052908849313174934025184991071508153049511313580322185155959629867523313957712115599449025760305041098470896607907783618111117974372697822241229205132149420317009746186304193258593216544045937198620667134799695286987778310552421016107334970593682946497421367827587477034284611130990472217492957204529091477763899235081672179915291631519439043677072136092847027733796001997739927846079502987485757079980213001282368349325709057137660022886264440116925161382257859827478522897350264505904104596782840429213937118713372482433890340886008830147986825451689647576718927921008288127748078741257252975061505596906090492181576818829951663992373130656534122084559927255365918082081687979784197674446078257959969296466137737622855323533831862313352690878010113799581860634117555262933346945029877745316517498473332984280531345161626086886548782455575993482976597335502624819859178769496181155948448065982839563436836809943759723797882700621421948040215859703246221087732379432726241239997641839674502987635394876507374536800502317901260030467658215480110740699836797192758433617028112367235726934022917450193357225491340397910707782980666888661166746312747654159802330585792086305579026383694391508364169803290445225510790747690478243867018759088477780055559449525267309123004280277268822493578672117762277716615135981212200988807615817981425575465782595864157140800148204317699712622707271743334693260554385355262597850760765204472597451685550673224630829830569859983434133379116429952788068015436259526025388598071420356299865103723598191147386263593266905725346038053589951205699523534806484084943610956157195711556039564950191010295226063419067821012527379148767136776622269432464912848423398214950031507472835936376924577703873745238622366505910520977071740605674933223861771674785329654531821224517764200858979889376732080992595433170724213781640074511107504734607554472488216265780540774596514877218208984175704379434231697895925156829653622839949083462961977212516540557471765604139500377587893824215503352229330863109761285916073748491304955372638794821259587620700854616662896862023387489192302701082080041391750052933982556954191390812177458709361082239978830454096010626113636459414179670499500413072545272159340371343766186759776644767236414905135734828010749819921187534864885616043408775171739205155099139307727636449854797075205493206159217429645533599752661878937776237414205185495135166775113076927750255106476134324441257817886369390683573576887651269310530656696536226485494085456269812588808580491554873995293344541127033713165414820985760381413864408466085621165450426219129767809979224650697643753281384691639158566280598737459374045171960383307882568527580002709592567297003221417631150538044678403438108048185715652370572642087234345410689916836359778204098114220661909616704302241720583749770638284464674386959488613634486405395000067544245108771974537266302239548112065513983893157147666357788340158931248720829404676281480623923130114927217467807886815388277674888310879956885454375485446962102453122600666634156407179353438540910468866182367265102057885236665051728372354890427159873367271192833862656899671209864914827380202764273559597072293948723044492658002781641544463209735402968967151731563661721875051913269087215582240380419277880781509555806941118682504443787770278443284340320617028093556178158408605969698565771915202865891141560417750854529469784809605149980831010535819442981964947499581187238793609325629790487330792078611276954139522731349019953199997461130647833032094899392768268043036346939196157995316093844791913738777267766514172926540846578957734253625464740106927529787260943855308150572100689689662558395651824614146990656292367096449567288700254285182532220431674366190477607785876001667225589075271908828474875510474058291447090528601008540029409834155496864243899294144772389169936684252136955453195455290050384940414652227880364808249567000219967294492459546281768318909603916415415046104605670821156283049398048632906285874390975281627869978193945563105727460706050307814191040433931344466644508892101087244087003858563766908313225645708823584642792520177126081960131194764112928053176728007781617752598449130679984382165785542990466600233221073528225478989874299964154092364763663093821323155775099363854873044992834704768298957484041071775408637994417845689941157235472517791569657741600117992820735039061409194515290074131795466961296659585869038733149488555456561786239750495709020843215282529962088417334213587915482679590974996739224001529179947477231701812421155264722500341929372119635459980208614196714602596315079893164353436366589027933982492999593006672360201208563235207218417603450034545510828457964093726697408884256099492141405453209229590476760235979089562702093211752940914844902505343848680506089131783635424447108970664074233065013570172795922658455369802844711206221783334790933223794029535791500722868351983517387146683415217013441286240298447911657505510533386252893888670284342351385267068228070246646795113146965149481873835229636595173048100289157319404963589363665774367565252411003110207913497482081873114699521905768849080179017357471489948946593109303858147002549601422166985746516328005802473051888762247016403942908471352346498355037884498621442528602039069884155970488368214224335776192052991651972229196268414337389215442970713648777301315527474804221151035133596062276766406565082226274212923730294123161702768033366877336633055161124974016427956230549882004363863183191258150571749533402976571375276747297411529587753063041662585129660260250473440958530200186186062664757737539079806619984812439042794403446018947062994334385641938037143857582699190147462391455682805233376594015094480644707683360337626958756065679966986859560543412589950739880383780559843846312179475586551805682957134777640587809031927666638358646015138170627627002945143316782658820758092656627203918358470860288293884170407294930813002966763966086879027422395081405939272626837468539221806178767731125424586209406002859225006705330267981520274806809567269533046541316121271450647422813669297643405190247034345740830172483502155939868725040773630606989619899228775160024748589366672949587113177544820574438605806513848767423066684021379219146486060543333430890765977207028773678364891887037375572415689571500152588803835261158457657520625120928729314484090962509840085136370601114719692825683740058493075648760201021077192704056099146162621520494974267201277196986848798352864597590145442984032300780213563332004290087916847925173018219862779240504743382336433392194456086697324606855459125318612488807871935529885579921243840214702011675606090563170181556633769015882627843299106832317135150920077576627847601691594573616145251595361504579314991189652409953792839747607604017685715800259414176965733288796823669114906150012797686203624678202895369361700833919692592108377441975355763694812557349768131918449013078558282801204561150011484220080981633969198357105688440339398687542219147764490051680398933362163962056311269976256720184964856324752724886452673419394840215205793580431276088858504168776713954307242025457894095657296607902230973618308978895269074006427536422362740993916052401451515297261129426719456498093583927377879669973319438471322013038583241566818634826364590251396982621034804538037052833048295509133575747094587269482220699199569832398218603155877393703537732728724239829974074758552915758065305713654332486452008800743814389222625893477546151938150262512891294342999686202374915685745368303307643567450549821893986161629721399397376483362270648374546594952551505937605431052959871652637147068636416015479287225714556082602648230581985506059280109438467661526216787719469508408097804750381375584370302105823206818522253005315894128532870006797734558379866264477216947094332846976563201380812551774905575195844731423955322553431871414694102481944540405114324463164272591226888900894120632508032409350859629762161007990224901866587985487578292542930554669269145931604214888548938682413747856015831534552799641802756428195900596458642794609014426832699646247698327701617638828081854769650851110900420357188859360217812377809000045695075088198082911660070094282088208009924795703936146145367530250845725641006249102453184362229308921994408649711113468411086099998446702151236947745074179728585789112014542003072043689266594420613006062127160744589196739056361162001938010895900972195561541643315705376184007323228181736052868965837905457735291787463970798618974653347216552601157639409530749684144637379048137908133359409050872158820204372813309490016034134574432993589356562616795797409011831567385271092398230336213398597395964683460050643290122507199581487305307846024433101418155368926450029149441925924008429427115291073859548514252462299271144850288293195016247973537158805098180985159437319434586696889360771881554095974747364834548438585561487390512076687531997248250116019701122611902980332746981579440686165014880240434229395760028303410291594676316517026537032506040566578626850042555773570963860141884135397417627193200822583741611114906402380824679106386602696896146606274584378816046664438060727016966076857891650907093360766545626579823965545796396453162418276795812391858050505026064524600532048198175219639746680437923460936354505697552839102431050322587692077027648149686042761621450016983517795325361818622099183482187125854737233096875585367445796685884339289257021167692804568072347090597642640059234716976299365749581532964392625953407551108142461373659354140548404651565944211132222124477406815402958015730317393931437911551577393745163991080506213206529408309353869884818273670372951673043976689956273529489417335297065430147115294497458634612986653178034560719852837107423260935133232505826921002855123250832255298695054873117907751763723632887162198892201047733151769222899480665089497636140192751840974754337548923968240080103966237802390631098302600189721564322660628793344400381053561912294243441996658859397936346257607256582059087080733255962067185598738458008781184943481296100177746970250953563629839745548128870948700122320877571726663061668160036458778380508744711890368026302130587037126599413451499773243285351937848335772655321676232781890807273417578474745063170597604610608255783925441449836492212163319991001232572751818331592486541646707811600013548753116417923925628452439305291775901506745834408722803355516007489449593112367299516630683352990663961041101341315158455739291268594042902580291682994500441476203722311914089151188968239559003745648581211123810778975776212085746069831092016931046800748139399376971245422280619405609860082035678940514959782344368097875719864584724186609431217944316443609367670743444242248942087151493713625424650203308687448113827271892074199980281321114723076946251258435217547741449756416182817394258034415582605130177251030423401853962570061858715697684949045142348870191071034068180264356426838069954307161553319627652358930988163788843149176419650051277926468421136580409586118067467754597983906775214243609264729871507703631408637332053952163717852517522084145045808834226107370698697324314790019992252809012895254646205627122241149107642610227038329478695920899283225691292559515134325341617067053397011557862634025402640196223824634936026152221789016633660524587521125950545508115572116182318295099501547200520825626716244714400571280861359267395100614523556061495910061840657781424777899207712175806211947913189513362504562887977846412136204570795912550840432451120079748597638484812838983016351735290113059834905512562255890532609871803027188959489801649612404873663836472987744980063046269127920556871640331898865991297430289381246073975287990635794491219879159899650555031867921110820491243798940918377340130298129757113868978596951427690422686865290511132724343357425430287017755349421550885252370217531584621010243069316522854834666477025031764092439275723803018418899272954428923617148695612494949333071914807626254624794331660989778421434157560229803320088737294659747713436453562038531818610003858658321270612640202323219926404275511480567482321289094853549105823191507421586338429731787701471045861303011604855721679402213456259957983701796852635058644649441126370730155798067977992800515323326174799334315095059204165481597139376264908219209073667347482277263527158925755759653193929689845768183269982043200492302976313555193284827975398967263621994447432938306169102198132940746593647747483250581264025600982148235057448867921468032446840107991565798920234663549326911262703887390888337002630588279564791945638549728197587985403167494755324885003198170216081058444748882056160806120182730910544938752877526735963831813562396503503797647528751696156301459137618782763294978650200589738937293011835732747627646855703304022293718157848729149707411776425266338923440442218244005264639610449735703380667401769842435828964129744664558838579157501569640066566263956279318217359016596050666289057190985535337614829460246568669982271368734989316509191111899813392935756164769719794876408821839315845089918971731041079884497693728161206925015117296570322415046296773382613086067991422549094504090101966986238118795508624872589879318228429536252017193020324762312579611695835383641098604854954371534980431939542681849004834619114362328378618557664851356787816071347694364802336060253293768559200735060840253536917747757744055662532628223298611725610449330866616575720565973293609679351809279185476182736621894955834458002087921564866256814626370786282429077260405224279886879436419417781252651940969912736524098769505032339318168648720177829997451417156182760938099207895807327638505240912168218311685477593652732745680001310571135198100257885266795085144547709630260696845371471890972609254728888559289606116320037572129746617911833960421639474572902245542267352425389617732884978333309416742171886880751963911389857604489038554969043716869961885325006675228662552242021304794727817080388277023746410927003788447977998322449325314706694389994844129040200140260382596611882412656087152957813278804515942089514082847128301053278969767334078454175935995781998330614229748716104408238091761429487168326041604934501701156564380858697605705153874292419868618509569707284588800080904628184406871880382276616066854754692671565761729426733438740365413404641841461882798351511935256919366009231509689247087584782262625799395349844105136579426401301340526916882335480072945052669630354652413019644507039184584599742635203133260445505403472120959872355206735695857127168610670878809572850893373595602983718799388725521275602396317359344268290116149182857020966644596371085976164094483617236473431759896173081999365310679704297738386920332823115325625375469037876047424970607418939652883315810698983032838355956114514653907752616913994071183224802853505337823998815411249949758632501510031721718071132889767188453598516713117545394716859316173381162689250807094595343131843465528678777140283381609897468299905968776527558022565207269747950506761322058103119869105371470703113361858579908515611641842639567470528028236160708839605535887836346329401993273224541357026950110242698762075023360338463415930046741932839230163580473385075494854692886308916754371908156821393736093148977669118350970753130301742337919742119861941145269143666896240398110082495687170122179069157410341471711359833855303102736017741732546015983558838139296098144423629959052623515281867529705841520958306048584940638062007849657054946786332609086022960486619388436042430940920067972141776516263566136639047911916936946282355505672812811323866724352689404747458234572126925311685517583083271264827918262118624798952268731506380722195471527992530443948165838179395048326332042142042526817496137912274618871089630135219525200303902271651154319825847222878457295270480449817129442096627452191938431519043881729645780914657400507260090108682196954813610607039924991983836196762988533810470170463984399277451984659839384381576458581899302002224534605895393095702231776549542805662118772907542460696816479908057524825561664729889833809781063942751027045869460810065175857994470662867327714290679053616353842335228906030030735562015826275666628354082888844747997455181156472034698910549729891442051015217325619459283599974884940144237871188415596444012575670967300360603163965198886389993880738521190258745955670274165002717309228174942510430526184414826420558986259636156205916444736119256436036668199866269455243307700500689502470803508824922340054183857225412762792689762793210501454795491431427223880090205325953987184272811405510545428294319911833713354239716189099081415146960625456375387792940173290788776413302158938283424304166295332734484487481678652158389036522020006026809750945706581957142526323483202086329351299725805030707237412013304698041976218793647634822421193069643933026760946520912436837639300984953193302318336733979945243551767754444088390114599423396679149205241634170700916266231974332321313003374291800451017551528248608345071420284523779074459986006362833053651128546451897975390056244687414983961647248684996044501087298184344252710008508698201823529617702313576674312476117151310839571631421025402615905431968787391140259093101311636797072777542668328792182304749282961186034869589863238484399682062546163250575325999371502669587675779729627800482664077080726673922384116146397731828413406059096715606427270666109619042628439744730842058849238984750921714652849602235461105070021039740856811210670748754967848320176784396813140496596733429005239998191613468776053099618065944259112696101641573203685658178701366842138680165244282847515384855863742433540028475246988015267902928186782508545440036125315294268982893806832947589845436892014288827416237807144694275440966873005513818536912029658298679461899335646254930204934385127410231892285575029451958542066723957125522435239846708234837525741875219764033037509869713799359729273862918741802699333837665051081002079723038324412263327182476933491887525768448865748309166482149918773631993347155905897035947988674940172303075701792748379296958473376310949334924195355816551510810656360515580365006603278107896518408826374577268232470693406692029453243878388029962603842967171995062321949559345116486130063562072809505759431555364164434591650615328201533639753504537352128057029623153562551685196170647848080966548922652252810107710577353490520128859774066067650172022737076337010540008994049049603711152500465750831183056651447626170688500923016301922703676853906438491500881779549856223108880958345718680700325453841321254891699822552251460883421783197364217913124266390855916551722181098797712183572925546945341576006189550939187440061551872075514214566265345757700571709291766990862513407108222454948961984649642640021670384096624100737656907256075778626775088687491809699401075792381875720159715961137126774515547521112573835909949730613593268460601835258557650960449109451370191686848065721887342596412650861039075378413781429369016633858580881214117173642645469042760339986568473106763102872197006004486239400739370658677026147581863084821628882184806970520317931894090148999923746312537044462710349769214559635538264460188980099214457594399473201216831231461886410625379354823093582588311901998705138481044229399445481129548142810119921017532716919264938414733336361917263506419752552549340766526112071172168874653426619104515865317474107204349801646424277597578392510495972871202806045379707201351911930802479321499952302842935219184159702392482102700136471784876484845967001999350441596291815149464257801482922288740118781696781618224491651834930248430178502591471971019998537022890051438991033973583924409696226794066536969446929701885548034246480722094556687986869619028615751170052070103739637578211870056220745940898181707474731861638495461631598090029701078626469332827140606316753049410040680812390086925211141840889391954627095627411067756223605838286452650587712361211189530850622932455070402767854004607844228445027070794606725873225182146846957442727418658663194973834985009947043677679832808979409922231786165084108294410088601064563261959524030160506302381895751201975628107643314095739987904939740516133922227605574387745828166814511001446780889957467395267610043731336481125447736430659093095512976972218349191644548447922574500549575972795365502251073658437209074780135476174492790281211901878672782509201736669122139863205512982413662218286618495740728706833260567654203255384301200207774107573103128788802155031763344405399979994835985694148742627996287417722716270191988265959441732666500349691491132805354589444944952180843263423451682148770208672843886703606856281084546409275646895169853793787238731294851783116594397018397577989437693365737169620641283441495637636843549903231008095225843118900265375890119857848151747458432616097842525912705639617827861613876545615920012352111362804573644543356808274301792786552603374384834915358120789465776709792539225161845904477899905658724529884695216229347281404559538728805034240211490067614631935576972373787854519354514259414351217476415860189188204464242058351445990963080415790399964009490711445862697755795518498682936230919181701380358840664297832168431339450283381199161085112690380574187511013334568948593165588157385172980585673498048402976010386945918761544392432738314047802644502081805797806280629530170831128982070349119809740772586027880328206266207840404631664842599631050134821719446980407546382383061403303946828242851396670453941914651527171424355613393024771527952642372552060490802636084039795404561175388442017532848492462253038043803486875300300978198289092493986898306579826744263583101165403027917954862533831624949637090029291553533465429401136702649037738887419407526324503866471624969404028889146428926671655019966537680222974099111223550127953375355430082586636849878483648461336535063006725355505544925733860697608738954242369482502684590556591657233313223946990739583688511301724253772213607590755772378776620338038046911584121713948847697031346368097825926477854857582602786064744629192939380568311284777857531060637636578809087527306368472492728037574010157454653741781324688802692356188521569955847799083291769772750625168455828938457108316693214568114164688591932569458391860529233290293567156555381167219307593086336467890573267448848874879974752654386168853823156563088956282872452303554447240930744671067888692337780839587015353873283227977846037009137090791443382575301913302274067280032705626135831282815207959901254592845595888058900932014316621258858556002026485989005153370215267111458973228494261790432070826042500311855815110026420842932390612379347028488950591439707614788551314639135261730668040912413649752667340000056672346453628114470011991070642449610118714128209690580948621418080681249485146795692742113243588313225674229908113556342955250653936155936637951362608322026767165615813039838090162542134748322918357136312073663283414765012444798827923438653094706465308402961147366269670799778806207860656912746047018061229350085821696475233124525320495780186284269429228428949700069290166141432716008962545644340017074687402326944005753462977398551625427104486293353177812647082329154829270866485090763390324895403099607138350284524031175030804132564408273021336478625325355009837001446467380751004747928747988759025322286296140665840317015965763511195908553100747659225396890671081385217834281408650821578796948791044790976715777202347765726358046167196808967513352018028494860128796375649753200168357273399481242062931695351883022457656600609765337590646565716223128357867377722473723309162750005425099499828297497791575767371137044927628182842382047448188387725677480796131410439089930782155021630322468159889720442307152118419890695946214535771979838686334839908134611952351171615722082116369841148750790611135290571677299794736857047652099871509077773511624661825426210030738789159679394324828868239508622097695678754655603122629628726854609865046887225759305803172610508967745138835276568980342948802781734413708704596153399400740598164461094142538819507398401099504054336608523000289905070219114298907925771650884494111790407882332860412460547418508172380603040335905349682199666575290884952596082421780491770883378263185937479856101247107518649785722449837555277385232664475398389447267613457649348574750795504579056267101826085876787372409110939321954945526544496986087090535108449648204281936721871941307412813842131961381410844654041708845380952289097945497092763051364173576415439280950026693793329429462471313950053593228697384010142158720985814599833452481321251487427429584292173304751169076693122479437161511512760108967933592957389982622292743375558381234529732199935482258381553301078727832538216567763246981593078954150198171517441468286639688083120202692268723745333287559547932589430901467847111902046752653119131859698536119095784649374187615453430451317639677781489837905232727798531162536065211224257916599799612499869759003458722373844223451491280939068650584372962089679806481571729995228823870837852842467502358968703846912285968514966658415288562783346903536169920573747322308678933754280562442906251766765559634503546432239822496039104018607133449509625141037782193967230869706993941848298880535569067033901683361212697079290066061852740230147073649877358974437223756645674135223892000980995170851567924778868947821392590670419177084249703274133866208010768841112216270168369506209389539359456568120770671894690225323062072102736540423984243273717826762300683584729076285236365182462661099647905600515918619812523940506370775783165781649705013833107947642800796782449826818010222682874059647396878768006013938981602405364946090333015446830455924978252643590304434920917917959511486858365775331851839690291559260663180545459575419049631595075636819254034597025570353183143779331974664165497924921278920872671230883957532490611895548485606327362929747055311219296576588669377451874333659988585544967239182436228561676149789040527666407960127122388850329012544436817742767854396448940427378846519670080990757308880165257473187425497966810274701980214821207782223999914383193157602107407489129759856948715227358597125788904422430465054556171654330569169808845505488499113779944442524726566315324667511253547871430001424010236801248389183994253651541283687872694824477882504555780298693970779444482449293886868611649838358011364722354738686537260752165627292767920931494165147446634095869863494644016989521809997412565378985440982352959503959608276882033860596382672674145667120965499329703396217110499550610101444639038563183237463773925968670484601492079048941478462707543049769192120847681309146244036635397824181761589172920286148835562293851793539014448741738864480333263594338563898792240994841418634395120125378670763699420570773341964274210166774811026229387226709094418220453760545181770653082082920404747776426526195025474398825629346216730436919491408057160437945774669802114842185887482000023287469564885251483977931495094178616425248880969040265533901418423249279833917294457515988096290319806206298912334506126726769143800262734217553040992040869440198406450427267501038894477256851337405226224073274115754935281799829644009908657750202628780569944428009582180719972982686285651331184289071859951220946041266409454618587431973696318261984179007924760624356515143938422396700356043041976274167094819617632143186151821449369587438602953390662583784228669641757513549326790585234468704739553870574602581214154903626133314579434127076096626399156175816736327182160715661644707758201235716077903417514931963094538482635642656999775003292519778634720117282848700333077742553227720951597807238425349027747019756738707268018804211604158857749727150664201500685600084817737929634313820506456517150472138653718119988790206359353808371671460036268610889851986482953324602551770686157118633869811289142767257578793666450362894361907171492861401863769485024455422955262608520988586568816678719133470187204079456326412264788281044378830292615547262144682040019140505383014190252289176447712594265219130532514656719340483280139773826011462127040215742510720571799989997546444889623448436719781728961451613444481503147490460847405021370339687221536482093883232047820156573976638005211698929684277423857765865008641122995407688601226369493389919851376927308573228955682246694704699618492388186958219984132861195428229599268844677257120972704586019506671333827106496092576460150214857722929392990295101092759378587936261715784137656311243901172832950295615757804886612819691520148326090658710861892286201838277540031393994187300360713385264168928293759533606021234462719033195500566151597147120564320663990292162318698908392375845457034404227527867091768077300258335300045500832022408659842837953051787266799558318591719778035403438834357178393641106094832241315200710118249373204502995931886381048464071689060411367398770601796133485877532850701988123276738740720702714545795640129236672299355928747381545557378211631906919628421677239860455152611470001416645802156634491620921750633907858221796899948849395730036812843310503391741935704448080250818243239618422115939900505455211923627913261446234920615201522146785368251670482017266350336047543213706251723030503941118502306306203369828952133412078397698572154549315896277943011579695244458374768460525111106198558172726836705751911471600333084567275697568208785848685822081100629433139239451854499386533032449101888600829581369564458623154485505915626957089780518992539997159196392103839761936759748195799990009845712483581441642527568459145162953539996992950795579789830960179864807534777231904857823230927017209738025501586766058417141011358487478203352444266587846519633587931150303243831738255514221922969148701588789347417948916864751866739950143425868140688438905395431143190387570982648711261811446800991322454787853341725164665030455148823712766879240989626619619767354831382845084158735994202437919190142163652051910176602561077905027944066009035319244546874979049937052278696819881503840676582476251976876855370953599955681894446152080478351293207319850784285325595284086135605997483388613581226131063470921339250214522353153665746912899741249129051027084855999588587198090944891218372241273792875300350663700094092097738299178512336681422866163278532231106255438008253539220109802396673645772596548109119137438982173749873853246598641654515185776930309107528634590460519423928846461285312403288922300228702929832417947546362849028940041011230764406866863197332603942184910316342208324027423527381938084001615330761395437346415961898068716612587487023409409238103377059937147813750340124730729901455568092296183061895875249278983392087070337508781366361737269787316774086139149974402533023065262488169167546060436294388226563688580764723569171291189242340971605881731912615009737383309060571010345495870435804885680244290655665233509040912522864228262726770964168649943650107923823048254008840930574553784453534822895752047310982044103862277562409429244476743376014933480238689884871511892198050819758268862929661469834437071172341373739757185821995463544488341832469369648814051711025951763966543106507862419088538136282691354267989548182235595647777438412405980531038884797952479628641742781858760241212581418899224535388132408591910374128396973851145675368245162880527329704008237610647600704246067555268312467821186943610582972769251015492781630641293910316693215327035364218849174537645982882470339227336213876392803256105934986401635006485578506181643811154217410225621754307377838851365894776136633578776582518227394007991037658438831123688311167554991512232949802932642614493554719584327635375962316290567101848409055967230830211230604242705492877892329838283416987155020973641828235578749911212996971505833135271001804021168744245740366872121828688971732444995374219243842554779852186622917288174528013053368039476187368264215943096655884402763181296915284445034393518608904060715737130080994563474669672639426557062140834120461903873616013852341985507585890679051416175986722041964059815625972058533499959724982333001882822548665260689487347485780144905454253492479097129654665356739274841380453212919125833901939602537830208757175198517920757112593843369151586357985503217060050230396568587682143409108901094588974713820227740411110881821403357817210586840545598111066926740366593037708373862864221715350314145784642713481957175835116732370843223829536398835457853825290544443686646763706407038488980498894584054700623402963735469050613862651111125613856903456282578577651039505997444022684598631475853851230255744099109535629660846304331842256508585038893744670127712551699015568698476533013559268787511611208998228866162231729812097244654884207527887418672532500294518035604007040251584978930897895870028011566804223266090750590518295946814899965348590608826809920301016161551328378345073746701114171961708909869352745336914577304845639468054610834356063554403089139594623957965409265270237748731397779996590696183274989252495455929693868922262337991602990000010927693911113767166169161069393734698852196585560643007284689355719986966771114587067198282172157581644471959899344077717143823028201259188614304535227707591686317091370093876052018829280937757325958633771687934590845700640667081359548683278185742627066043601668148341889327580811020483425559252681987994224913820771352133321203511132898109391274161684742861065604440838455336822356323197823049414359385468715580222771553982336101043831912247642669910071071828672437667694200772567625422097509365743013357709775490100595282853325642923275288971060234611984306615543262792979440569541511699847618986942365355042467467882243721495837118343085014974205387588331332419203428932206273288994798682326152700553260081347216616539464969987302827424608584453932003323910153107685429291174175529067690904280310639505523880760593706423827489610590997399499653990262988164315318986435685940898240222578746213502607718326928103207129024827222484753431802083972049042626296061074211314449102183276967468523390630182476749446584224066945871228448398494927943338643434943477925457353904271448561676570211811226004136606125426695169406129354536055024730869154317121245069748537547165576201077060053184944295799826585852231810006782007192105788000608541549661008365035763214715718125585959567555428114243091384229827836485632561731014756915994725925273448244727096583733620877465681624311215587303812748763604397305677414715045896333855908328706947709917573766045303854151694273031359514261314599817948313300446007969446222841354790532259680262990892988731190328019191795645357744294419326188261140935036152074037296608650220614047238644865003636148253603077614878462303156970416186224409751019716483435065288955918173361393028966211092070711009007702697729484342890486064891251201038052641762666365900433469084141329000648484463716385148235695561445529933838028646897705898152696360910390805053319623561839969920882645996567880408572424041798412563464731587533200429020587611720908589175611016757408641930647545102977429827782850002666313783364473000738560004270773888468342088445267984912608123485705220446445548535873093910439469781358117799927779965248023612716503473733360847843020632932634701266983155321277004260410489003113773538222358959013866090462524524731194158356165094298609909682468900290421919822142704180713560723871248405186446281366209352319416752699491273845822145461668306154719542163980432579907617044750510323202194473787556270264481650815847880189631674731388256167955073449957223506733788869358013985254702509863677261039002258146847576091773023371539466006425978929818304741727171716470605516367492550797088213408166536670262585166504165654575897422370256532704256738112449307532058035809564061379235131623712599114473130989123886694558741099669841206772962338768608291110487860527081531907284384449721129294334573452231749511222415028264999582410976478661544389616886556599640840445623248081770895366463970405670748925541724341455253031844735284093280612842691023153879099507966172577943368310590850312226941623873087457346082847460168193780003249299384129153900946655230730727006122086353967311582737888467448166419056587258250331659643335044965612797947043513538973150810183637341501290562063731989121073454490819139146523739239742726869710648200846443236510374747984783412153655158295668271120370892801230038952469228598901527788510247908123052138830195847111542915774608973860405457205364912821722846639293743162061821049765700838374248929939395846432379728388094827362151000662971955841981970993812786258782887431499825296590317948907977840881591192543262026957737520031388954249320677365874979027416370252949776844244537795365719715626908534989499334651241922447968402102634461333406583685497429876339423205125527028269075015349133750434750781970452081747033268345231832235226340873225209378570902737418412175334440825149247606428202324496646672033762329893478545464244462253921815252638344121381094344042289950870162360544078100886968426555278481138128552110052824753923401992299016196320361201317292242473171782548950391587157684569035759604061392432440245541437731238604058507665101711364739195122109171717556887508311381783210740443378419811682913836316792298201884884712109702666206523576044093191090200587231155320793209775117806051478370916590319016856852502379692203406885101716408881706222520779943303307739050989938658898670755705173039048576622647906280600165790402744845102403661655263546900057292590108509659970108084488517735015942258851516060168051018494208584802826285393735214588579542531227392063450519033284694136382505720672504834879720667094467124045170071101227265761183541107259780480389364472933604544045250165803415944560571102136574289779034130223748141081140105758634530606694180942248181885309975836243683796639842816160686431297542430024097846085489926990413419523356111443059066901502615954837174178575757724544121168418442888080471210667956815439795989339674320735972936035393533690458113591908136955889883763866214987970943445859574611060488660649684362868458586996769945230123688131293738726612969441431929253855968575262258885260175902648387187399713885824237278399276387104892213175690536815249250747217669816485586499397803116002251136934962283419714201669468781558445818564595463151235490714265886101795506594364573476442306197980878009234865639258571131563826583086285646178501594546523468940343291221994229524633883103772397625655689875347117593032214019275464260170311824858937179249163160579470576102618191570216047330707692017774553931305763987885878218036861844634006947056596788630918200718513317923376256279428774702539942040149606410769881002395870615608682023708719267326168541267054345334966922490696882058536615863109886810284407444402846038489948209313897448696068601613383482371957789868424458771642323136214895620594578821247332678209547620851530357070692811652579516637849295015937473020498171926622418080033456161080776233754804089825787103640813729231863039708361981268611783540296081172895938428967875555789220188075274990934163975352106783565855726162762319367368634505854680938334296358403103833018475686819951203899417173583508718364456563585425287435482857199476892694541001851887273184294855498800277354640060546301824331959572914196410099011194776785485664673996369715847861634842419957610247848722458868489747096598589870081362488039379229231896391048876254050082917709409943748332300055650110341440872942578343377854873145865075385080746937614454809092082484985702418222319609378008789024461599454229941689628928205803999612216348700883096761859111634741730334486318234711218546106044338946684291869766409791572934764226356084356893886600135660102991066152743685824938226730749507957671329520729846451781081098209338818866707036967475398051879917949419913968201029613050803395546579062507678400792621078222873861901499700868040532849807415068801656019988086390949649825032949729302642170051161612174545187079774553945817102132860407974183901631463477284109558685136635589972046399876159203306810708465251820193887189290573053229271074466272685116015609156519789633582617976478029467172601925039527073525768028225129517861261529336112722629872734569486263301736739015553806390795106014368952317419024431234074787052851054582941072900929130861308217950379301994044490951199081434488190006116175992402630299339999662892232729234681821896496862206157016755476252290102292480735513963284157389853557268771785185217046880536961598652782080382349981787698955673037391200342861800261422900518719656135621814831632463311154625927380671221386856964956256364453713935047780824767646226722695954640387617997727815553627871200638212794577847957722669482175982854417398554895096517273466185851946032772574925162903700628479616125345261413104122718482580893664202948354488341633957699895745105879273304483487758182970794515450443110653013704120097820172782404150185841167056759773182579822907763778042748141982090286868624215878701141012952617227014645566067026884642379917589786578630346370334398509510216290158248674949905846442471609731748061339333507985982759874129523450657971224745917268309403531682752154062467913386397424571879891657530687106923625044207197638974159981743490055570054419871089255393196989820988541152594030180559050549454487704233299903729875075913081204811810039126773048570814754809880742199706452012202691849162345851868651131828653030496880445667334181816521423698428263304070563837968390625400381079667291402364622862898998482835025781598366341450319566306857694071764353236814346838519032222042792482656276887007152881922271857707613318155366946320405039814503049213787301247932968897318941720452433765764010935502534401502925334825377082733304949134309101562841128370892868493059305738036716409326157527506635706996193904080296225754411415077275911414730387557261008922279484816940004466040025634660864049636282464813746144611499556665078707739177811118602469161247436307140223837576271286573350659151680153331008773856491888992108432649027613522877648510978424708047916073085541931639781917636492897853682074895064879622376941550245650945520205144638560655205701456629913484524382920411484583850065568561517675160108928016522667786324092167737425431084320608020207173338314673340098656362125141133655722824302526393258254586558738478783480030255824435986149477165863036620977668442012904357844963941241355958571108143251295843052590491932017699801853031094565084043299783192419403977320165380034433519505782918755387746528835567623376989687196479729401400530296674176133786221171258594870383895797201765033935297424380977296637808096726328407259588250602108139720008579087542607381350175377325577596274186717928342030168098606309772639701404133741182380209728588107894850232901575091707322451950028139468565866920289284931666063125126723983858694761737349530568324858379795664200801912545170742153649038525023780486261726347211373649079848888026835902430355087014111344945402384899237300248654805024045710237264093558669199468443664981273282101469118175848706515388457214158110507653075326637125050647865218432127252512459011961514306939026289970814486334870901752879136582158113164566316390554525744659830718479767531497723321060569610639976950996324036322663846234523666790097108609538668412712381336818524542377191202260892440894782329006987540120168028204173158739541230992575090424039822126442187227382832661494442536881802607147226534470026202597721483412201586815242479878784621143713631592537555596602768769191829091546908884529854531415622804789751333099532075828150324082986161896669090205522450885414309471646050574760211101554411009688225400783154116650031809022709475379479663077915591429094258124519469356754512391838497131592006378646574395730878569282100560063198227304917593066007803814744743705603353259194151471718652806802590813120930746110679976084672061577570424361516900379029465855664155895682706832319337598943996965486372626753510191193071340270094852476413466133536520677238360092891569762411159472206320766689227429565801973305583095748303388858491338490472110417653775673073607257833344366671244528256096890431391599590107730916587357051459777937761337089345686391422421248225841993198173367837139213742332677302481163236155741875889023892966872821276185951128552151253719723429599484792184353584505357113719919151185816961604702257446226651954841902538874531616302887763629525264616571414690348326652435542516807495596786528632524796555250138024074727732661857088419366013900194769606354135281422951602384046114277728343253673505605118761801849555395897105016090514922226544401890329578758644719880337982653066793237468627997165782361007407023739866669814019656261022039164983753266882841066764002747472469769492127660637534269900141630720731771699395727378093068025782204351377100162492671885411355722297238356868167586540741866510855759511936488845249723505036244713316833466578283625736810410924750538285037391506021357523297739732394271653510646441528348841263065136784345155380181154590003971578246569478136320493810658738162440538302535937130346150601571920305526188670097556367812258439695182770871830267822436158559312782537198065867495977683311143696815426826608987080507787981088761672251480981560555292934000819827566026710931175825027277052866410239012940808364839540456960625213338568230386505415609636495320049255275083603231407487262377064164995531366701242713692335550657605414476471732310745660256165242944431008591520659815726194540392901970914399713020766026927858179568065693096604254751556027155742097551873022789263886355516226320686407295113438875312976224569195930267603920165279282520388777195655973161857973438468950783829380650378788098945418960629171895104829392314535074626033176701000290279583040535490651407351505162432177865526671466942801271988719320687892002435357528428210688377084682114819311182949627066879219738173396317773422616046087454430873664865474695097460787183144552460911474809796632659526098029170377053729076172433970949563021418715697328513225962794895699011486830975492409399106699188569102160037430427082400045052534797264953559766409411161419144450618875378438689470362133933388459969787036006841421194978965699523066746408780728553683950270162605650451814776144724708157922909708697219436920258266090270103810830425209890163131276511403179620712299370740563272485656066288552001283385593531822833767780742171177425234471532037731777938797393859940960060765159358235330591468644246640714350717245525353874034248199654635916569394933314974981049603381983954784438310725864012943961824984526772383986891183575288525860208060379832054716496067098574131290844760250021214530765154105872086577861030704525545578657597226317968994662315545621646568633474344823914338704664414697252609856847319389992093608094037804547892206464131384826335266737267553312544582841787892218971916376609620309080227923836209209819968722131554886649466643770540518528811844143409605196952675294532660813998402303932323481328504697211130560858071865971016964286852440323644509267211630829254673532336974021285259050051702735681486966438432480508582354181902577544186403670450125725436925496071315498742257599059915418363323623277418299963432423892554117248936156806705491034317396525680498901904196238756097982676590302363493220132283658199968058061426123663558497929262696385068107310421455118850539315307086852149713148400783737369497427019752262528049868554846365722128597203672512762748831296046001032083261349749033262255451789265276225165497661162775688690050681446799560751148288865929326128186183432817654367473714446007246767127514376652542442537475655009668042849990238056727642251123732842726721044989562418404839740914497038028721477233495460732084105125609453900126009056640923479136302941524223425347224299630284579423796157064326903697532786024226085145586446913213361722787998946100281144333185180314660279803185787058552184154152739261299265497759204853642656749734126183870608299589302048493265894175118763573075165094871794899074100173677093779442344201935035004438125375913094294693970953981199154854692266154391144430962854260521178101433868966896572963535265337185156665376731625293651630043357407085844190008538868631176161571411956091616201486126233683127921497810091954612236551500615691844766831880001465497644633175073096284108824621482184536907135088807488259817576127041604107286596105011080270679697332545734743665133771544084485642163777882527407055742572021706620670244909784226159975276920892950425457659448319854279659033023772057133129537645219429249269378752149120460115360757794803700262226205325651116158399939750131201825219285026316688465108521479143978019775162110375673736088760870485450609919401945137777055805551323909528651894635873234840972261143818532434834771481976492615980571381017370151475548983527630777829351988237963192972133286956907009723358666333493258773464137658648683214993756129930898342767569788295125744562049936912422842837626848019052242296633274924752352642292178119532796906951032423328935379534877292349960310235723070128405076442503706140426912978714689941270805965518883949804930186723626707828362151047456085070072072020318793863147627525110589290103192232909102735034714130629034861547442787889791268713321404451178295047144220716360182984413337109170176664573735644594297180293533172424535300963891403981977877357911433263433633583366755819683314452627136073718565169492439129600693506593976486488101125992770241645276344963872701732603811483035316761669736348732306268629882330818397484432103784139689039626428396376961601439630381420154335956561910462332400545805364255103240814213484122841833925636979853329907386607067296632125975403247999196833097650362821301741072516824583571289960305591496390589565782979783728101610290815189757826581702662384816637144827965047976782657199042598986467067993641143770128585363809886651632507485040266222275481608708696590259453072860826373249062164481752208571164771728159198327036303735955090575889520813194013048735997353454755778537249475499920844953383104053679058874261426007077007979531037227024278956544605366849806064717437362223737097931882429482912823505227382139114847574354824294473396353497557213976101191116246550278606642637662038893568319883821380282959982452242926226005538325748027186168794304770664481838383262166050282442743362125291311224434079511604071968490416406340754616400475702792660677017710824434236800022719988751797334103920584450235238458469847324408982156365806468364340970860487109147926669425853991332612455327173535667565960075841883836238635458768165839537129391774527671719307039231199274299840233643047029357249458377170138402489919389810533892615136431122641706493025799891154790287599757732160590129698789235062022848687611027282482801926858969642925382511450044182586803092962468785396674727294899555876202653931970475807831132600768286803509313205522266114555476310811378535568422795490412879618536759918503712008259653450812976478215664016019444359858836333627281422077897156896673883190974130922971440585382640552388684996748022959467547574490443122483936019517772478435637640130428155249238128435657582344152315242274912592470055363059380664627874828552142825415397291688595854746122197707894005973659630000079508506994006955532903230914897801205474025450150401686015783900272960993954173673848660559698464753118945636268870363026051223737736241117270424247095469017163446066030149101960972675055450947912372442677697889561701323975822701389950398453319599241900347655936565361874953826564721020071961535745627680398392126788729552190213939241025427001665964031583713310412473808580743822934750478825236436611837321492797548225444311559987955704302620022422538854515970774661195423559197733764723539478996574523396746477097028461970358951519540920575790767211669578856566538597527940009840515853564679743719111505825590036529193162822034435943263957621191124741213782868316001430734549766237022312682885864480839112573633475300286350753263309719783129742822648698467101206383740278917551771455642208295545669680319146907275224938024637238830288297629001981813247836740011969079035113897381490937701375580837458435598210639457030306258402112943683107172103499955179136357351518160815521420325117885369305222270356020181215605891803295417186629018527839040454720072797153453240553587919141758272252221964187600072337792860237069495121170974055487016106608474817032443961175960233672730141538179566822520919777295068809680709570733034060916057185504864323034324326110253269713372036914358686250749843525408369399498419922986914510835453246393701661662986334088899894761088048285130803014751159194842569328570384436671188281791498066875169377221689098587235280862316995839011650174347767599912751851412308649353304865450995891580408209027357338842624105519998652410152240961113321540538398543681512849546475783992080454840524920333340420393009867221190314598572567388660851098820476657749667217132589565933374296460588065461113108397232815298055969503577126694099469589006956006652554626825414094309771843725030228366439413360562034865017662631171913964976295769252177226677727361158606197839623645868744773416355480021662665641805995224043913132807298402115663387344679031947534154852280782762799781392311711644384739831561913798746796872347754960905615164198494597993971347497745852209996297429821042156015546123558502678229046740457407344764227507954019073929864803396136689109983423633281975443022564966411161169932651611898148410838067697198735585824383552192956280130803442528547605214668196513374910294809377442310627783276528428862493826307034926973644537889485665425281083022362037661042953992804072031215049963295022364633286531750024648595346622353890086565625393237894756914808550613724982451808314644086643949258078592268955613849402091722104825552526342917480804809771820685736834051833998308861574061313603662588527632772695830921971212078636263124983560945107672141463824929982735697388310094575795034574440164875851130217797851577053980950273227591225478103146192445574556291598163736828011503007153508694949774968546378771778144853676174021484988696265584085225981252733494383206421746525377484633932791504141498040079154416851558898803094239374965631810561671780581288619932774773461696511477317515834558066067389613189572887262084430983490089885518627794536483428425928618881403469958634057675035660999503017714065988052804003568778041946487442221916202304906769461187567308605595862472453757838952676672576931438785640521289927270021498519118697662684301277904912960210926706946914642864707469945893578014270349087020833149085175015210490140478925465877081921167609592632794030019529858137307210618418066935454988722061438092620817144748697610229106958376713274002391767874990545889759881403043455362343130204586099493515007697470915912110915801109783727082595211500827162632007130005800359722163269634340957978230842534608191942771701745386545597882621840192164846114062966411127905469129349370184667749258699472273247077320721829646767387387130057779194673551783211977269430157356829338829112535058295273514816190945168646900056474589308157055337803387540453540151499321127244257817507848722722845000246670202839615660454001250458285624936262778258741624115337082842276432182032819285137011577194691877584107311871388542319716167529115418905345121442908278766478935074601416492576901129457393403968464610455520854083810699506280719333109586238557638962075240750696196426576057037878313324205970963418305518145518402894560869062800102091085059734945844961893506962050997636658185558830831738597545545976749997313873208334225137546753715076652351090362173187112254212199991372883212038142752144585167587666190908810904047479778599145232243372146199849783986812880886654309883632826102517238351700014799045851153609737297221790301265184383772187989475916701032492938194575892290868858514504134046892155121883012362749743260439979812352536260800420859119250675422626187423008338486947861297670780781669048484650096989572814227209395292747281466041608066636197244994567092969692556015950004867227933919582417665828061889490670483077960478966791343021957371631028507215410617270503851623559214525825835951118323205708190791955316532560350474029656817388540982033226716541788587868378417216057009721759783920220789760093404693547921575467662960616397876330745253270743804692469132743249462669255795612804277079744361230024627643889300377197936981012109482222164797952050485511229008654496060446833255723072931460112616305972872285257468862691691251897321346447105170707051193238979187039283223987612304347505216261407163639043415119788041195392917844298331756385337786750098698808809178559737967806324564454581439799040012647031223638989039471804511530947519632298887834002905175991011882373523287174074020973015138895572228613299858806897297231301058797634894902126716047463382050561849566055126988873597387616672052655899499450442490720607420606271116148610571680139902676070357332989291461444360793056897672993627946334569306687549294899642680542225639359163061802211452099336807208810983897053635281107503132716762737354761076523163462840300640059034713503958860800394928907062962581938954082703661340858567890425698015510023716837681175464042797313486828150274991504502776227716936220493496508485643297737856922595519300659828499780418658795783604319096663191371012069859388626687141262344749358957121618308548724553449883865824303111177829807253732945401833366048385121072866626636684078793522459777514460444306730420880394433486505997497125185541818539899557447230451613532825112966050535665847583729521982919929945383987547833027468727883178699448034223641308469818856307883857253568796642618102696130987490451690218217776637849037241613087207515446092324592431930264334729952763451358184441407582999201169639158184580569998288424802898229284623084959960981564890155511383738283539224089937812516094271841943971745066978823500976821693844264459328678653121766605041205922238162266531545053714500585808577591005255510975494021059188740258822063249681839265330695464374312454260418019210318885341337549232661650671005859345605692209977407235060133886886779984233565248640832441484014388887288475976371681563504663920787275809215937757192200712262902028141715964474310444990257292309533174253007745279689529846757523012296910357773614637983039617439201393499804791854067556422112629190993875826536413665132847078696171710968150225294463184707956332569561521451933383543342193108402324976006472202257211133101889889739763873141083080084025849366072979486032270499406267427395931713633998060999130350920446859615523458292900128131343918757025603581940844531463236704263482022001466508990737166457250114079137196603289370877490006011122241689163358500605599530378399527220903168518689698673905630774968067835620029039516471423303148774819014341396251528715870783442115884033017628522141957729078403027432646173620739860440440616361836763536647169117820860229578069471621686171070491191093967834441727936602354213437472721506979438466558242894710694962875281096798553458424865657912353169936577267080549800723926863473482992554450042981256304221643676348730528256122570164601673389285222099741269910551228048545746255602249947720854681723463567646233725335691985859108897542791101543323890914149660728109920841313147584945204471861997447294060138583710267262678099176289670965129095512431043195410636237448837790463564559020444212381396068269992457481631649769235118187723190632148660074840895876603329788913056338597887485694410684859757690926610802996304409770269099759911753394708964854820668629639646447637313966688289788341050009971332708197049345599527632202723211464573563453736160535629651906439580031592272231293518517812426369625165985473461049189568041118205543316050992355902893906915145757623572164197780585772377210734205686598868958606339786936555170910595208355017448496743642085019255731856306897117602998116381939857001352860493584790408174493124908292695837751305001706251898636735193680182040122604981419546175107526744242241814772666094613166792818225125586760678029647638151436592911835536867640637771731696434686975001112094633523205689629602472568604939821090136602050274921866527307796282627623952612268876826949603329942206567498733864076392339515513247195733749820646688782049678844279147495048202195835145660377107396126018733888633556511247278694034602045913939640799559927559384124640212159964084030461279721698562956277743567908783869976056985763265011735815318679364394253899436982129656334542140762203623953390013648054871165016148084510228771026498733238801580751047884053561531594812362569454064598561352359215010852486508735695919715138781811731245441719284173193962881671214590644232267631986411936611461989647159381514002658291267121388170391227521889710520257328652112884681414380966113159208013983512175160037535685925251746437238499145557538646312320257242156199930755530575614522853746543123689883840070206096216718125630228278639517206800843984739156625784945682286508492027148887083553267718515553110746882087807759357761055536100855831680966290124886502690960250777793261187187422403451276064667265877737337239694484620170058155980227978130309671101880984908500990527110147485337212081509108232816945728611854751441633321096774115882991529529989557917429401475299036288714122126636122823053395239571991969336405656543881468328763935961537535408703420729409888812556185560130917387395795323227422046464531785018183988837001389667375980956133784753004289092340372735347912298935430730082289251869317635309773726951001221294096958966220542518834626389199893040504235808388659141229676922765375526490954703534644222357499560212964543977625034368166480550685560039196877068943080110244277787389247777437388290957376044631122778647913420743448531650819250283184983785342968881925907616740500171790243196110396532533573385581412759225966802735071007211193199425495335056383249559563409111477393777597189189163773039542109999089854680297881768628321088893895704400157657049145760852373893641927634771645291190726056869964753411110952736282534719560679980856967410689343986888933062759211770744688239347711875162615461167405746243328889973950387759696245289595523022868054526462198355937806392619652921475178338792059084388902598242218240880850648777645083647610787806499450503459457968423664380402605483280059169179569022212150799854652171954120269787453087171054469332850609357524401442153809683124297320891205489153252411025455374216223827626764753265333488574777707179415711442972001813995983436950203941419201180603270483555707109640288588071908760468726295312501418920819277358231235586864560852744907906191630537929582339201473636046939405099404603699994327549795202341970162569058570739547680854888991025838171670745029385590708597156565182289461948724118656400762479572036551709395922636347812430914827529354819993800569085407905397060490388016934518250833209965756031904293825867722674049822465608582476862935146685678478661932451735339538798456818316960197238851118102957251607246605753153097858795562128398909021802937024469768423428138379114468131046909524408628295733790638801471203122414114620151815023030508939927353980402753633582982395627766870355084962509362610241552462767274735181127225712165738963859661600456529885565853898831929435892879400100226427407501247031136335636189237778215398680020863334884312311464374932405643275023839073688881024145559843186265443734607132769512417857540913211345830360970697530602700891355305368055445998954333615626200000918627044608687298568556795160358473913899139716335299358362928753989480570415577040486867825009962126467008343089786941777012563336073758755701204869425824420376375064820035056395137559732992407812084565947895442591426952393110132274349979917449713965474548586455805802799446456554497037212156872368815746670193731011457215499794360817595992815778638157471280651830219757062021488669164255155392309380392586392289271595158266196505768850848320383655917365278977083013402134127311025351993355809218673943650289335418584898378573425007380149575611522301497007946302430898674096792871600027297141963825107926206285402093626098691084503914517126994681993179446572359522960860857951789269745240539510661138549900027148220293441197000494898031218764872613640024062375096402846562633341922847250421863868029818235012211191152342398421747614067833523518009930149351001562758064373035197718273489051273855077082488012799802144808261048228980543519690770452676003195200483247331498815462701187165866179415884009328074550138716148085721259546838495903037496570436903999947641465238312249987801899948214898229231012582024033317030986329970631673550592850121525780411109682066514413084686929654677816013186707941887924091170293559281770514103144158123036912967742843598230424630882460979444495118219438575993179726878547386327312713424473968691902379755398664200275801615312579567991720048443457710069475304575526939622924830532988158829085607417758469201132264016590712604200837677840302330410808199553630427513422842531934314530005707023368513569026640194668379685655614015176854662373056113278071238327485338627825837398940441876837175385834539953750248111299008098763618405800281085034273020430113655668439218406457130570007508169069375764353705621985622254723637167146612476224955749239976323126112642632592579929076011357070205049728503849320623126238215502027578902840170784397664033980652026472376738907976372631296417377214766016719458224067584852824662643740517939547834521443013241859594414024366553862782335324969557511679289714563998020320300796562014475426262690623019570801405238120745045001843338643933221130101359649932050080992149742687248175926256420968220396128855177964421472079075969517932319826398352616250284680439882964624896585616686429768803385232633405902530411177976114062131035298418686718467931351962982515991076642115081226831220864890403203507087419669412064684877677372041319995489609669205166526809018090752907908042961298994499109601076406278806347999662421518598592947314851188185714916343090145255413152335189830489307978236696256799592976174045649056455116126574383733054850422548684809786006759350616462412481668296594185947129536158735428566351416377143762984312314283391318944002788078333512854386078271826218590242273572251176034925083163648834027076287532391348385686161046988865438646437435762554422381076959912974616248953412565739164061596557887161058917917031045452492405505238865767513348783033424603673653851768466271058051865776032104383905583940648874870920904679076522962912005603534722931928174637461222536992257271633900572442016819617568227671960550861481362243584715795728290918713894480214542440796159344364202419067209750983145488129604323811742105409321161777331724449419470926799791669294593154983574634800333328250129985293067172104339723992261967314463191315504650740362611275265113166751652429059419717049945404302842973313272730249689493368549120764229401374139871541161299089673522674454336050571022118203505451365931535760353210587791969177811410638698914440271322016443207855146525234501038172936863890706926095886380969702719993817600698937760169611802898494766776086299770384694351898647526947565960647119701909333547853726484835386270657101133010072490963282000061060820624108654438277346831846940364106348524053389565567742924633201535848156494338618539481408009700620107161866651942603116865050146490752403315552852306497390642230126364290496476371805605197714380041212211451438487018979471318571614545552631095561280260783136291709368265233264940803859333904960101324499434369277675390027761209328903679352409431214790285509419458779521162576462769526849945586695171410492684580469699578926403172157104416553751086713483739894465688012683199884401285055321156586709111880869552901641525501646627381228321697518877221451109817856217519784563825539232606722063317407815397172537473278190158066184301437625235417579814251962216403023135969723603590768700749668655963605597177387119546031746362056332641596285983909881509269130660126496977276318940309379619077385343581391099230508718091440224555219845464072515694877539223077344905305338957744660367920536322330956061967221076746496140916621014483374530927655653663118534511605395701646006371629384851487584687561000243167269522947569993954554062682093179029575754106519720843564401926155687227184543794375280106751899472680239463270020482422513061632421947344571449662701783776082870589728010676662325727149573942221594102698868122120252707875962277451755758385405793732434446195452501482453913364968319120322466825622523126111662046282557266024579187128770076507578232099822272103969494520170495661698619282331967567084195171149134042802660947724311856925874486207647156297338338881164256963024457844789444481856389762562678596275032237458597104102284902013579067151090446472880274091967014658118618922876292747608639876128507161184299510932098843729389250765882819980920754754258861133215760129408424105957732539013102390527317102632954937417876809164570341828362769228177573524467504142113869587511923793208039166114174377833922358283511871389809739311842589342115745845374163401153915822834086319062467984648803231836783987579994044517230192108769977385246650114008065261750183228475140193661343032189643535993418082061745286313580777389663820446042319121619844468295740672923388239814891214870880138576573961291956289527015871629423974172853837111533483906975062057017899922529548504801473879361412530041682684691626618329039757956275211044640434462640458594595105539466488064900433164120781506527509492177257915782470765957071814504726506916875718878668319577464625272019201487246520273529657096635560371291791067697947894037325334271760826250992972714926431151321178918338928437471227235705418311132641456912160708862356857045008586227008144153209950620461776361071900877700176165009076021000706993113510566965954132844508839963507111116873334200738464255265355039696304524172538836985878581477714792656460433293866048427003710694538766066374185617395567520741544154352177410188776492619492664874196772008946215453442302968618670218323505115078779305998123433075973081139692145535014753711506459422957088588216412172863335643712734491741995763437046576849423275598697737142135738014794079946346897438504424631853709249839762387597807852826148887796934264476976772603079322432314775194631841276116534882977262063065963776262012720940654914375557665868032285986202374478793716160189777872911653370401351656356216461108294270735939022560275379859721724854766300037399370455620319121709735247478713985596551478565226521073404883225972580617784231331708126165540989383997443412345697465829676230030696408630939455356079588014677300897096187792063620684507102854486551193288287532917773184542152981963147078999735205490645162806112257188170269631992911868949035437955901826558650279474074938582620544404699698945189756921567889467359824938596749233935282365566874606825305249922059788859762229365941251608859654467362974113308013199764195721359583504744288054502224302917440468240731179529762951527387380113736116826491457568090475582769156817777782378789137190214806817440854328285067731245401893103605182171959414259949302979988899383379637426100359044623688976580828622030770844109634306841287142370799988888132508429037144805535317601889690860377238167174344267694276126388384833821318591701936518639912944700735565812343967889279752070336608473857366977312968378582656720969235531885491848228309114101718180231260985516255488857713624750701068754599991844027414891973868775672668992338267293079317549189571758923144702374701228501692863042924016623870379443571502527909515926071243422654122411505752839795900917597452180491928390594053407125851829077701162933674266508491930800945457493727020504390553426409852447152574188578568413027046322962601264751172765667032530989762117910727694551540523670211164869530417569969604196716598139193397289420625846631478069784430466151939007899251907928978336291680684827662149766166280678191536107711749924064871609895882089173879350898725364151679279401054801517809349502893742342858486112291432449755388442173466716178663125529835993129962979808085248461869888996188235265864736562106126065754098194700748147253502031480155568036815036336090026813193419464466153730995316136068300980975647959738337232058563919838332355775560398261780554688842833727494157071517396833147426191913946538356335782629083086725463033866435418729682543423572112942594263330804217362673437009085159501380786574230127428467329287755192718747565166839735513919986356353095828069174582709068655048694384444814125668855133244452439490335558974259570640788216534675700303965295995412283318494727027222301711646794305815186233857215911185139384879541127914648876491836377840938338479941518109310034574387291204784625115084164899274297324240299109230609513612417207378389482402535228072688192325328514801954428424411635333907726360444143254261688649742129306499248494808128735097708041325202378142056042697521164572713326586896697386373704747244475319058396326616874987625016212208569348059417221714560828758383304053379727250764590473946880197256933897940747500142311678832766030219252671675317921059037447817691691297049697084510546414110263178211745998890275509142306074087559730773330754777181073408359441925735089644345005336479352037474511327869916650019537258512733450740461753420112568615118582495973944869313458849452910184779192235965713605955252572534716331457234651615852247975855412860890048241839692750215367181619144846937020468139502119415045271049069546414605414810621121663404825957570817861329526330579083695702581761489441628011369717546210285040339558800411447410702019419668700344065792790113387713482651275642737211077288845863410432269559779554722183813929514654467858331078010853096832036316376474802375282276460122592118585073494527319303998364355362504036132482698624973207079570812604906890603598318733667491436647706074948281347110671968306440015259525263145236850150281527059202433021265910796022079339931587242527643859749711000174849763619386141519811266541560989402116814008583350156107045996154529555598376582711007696149788812784727816998054973655906051959164886890071169790645675694111439283877787921823240800608336003094250232098647514479487942299557393663812966798912001371797061014605113825645519542260975523149404917563831361167258530499423498305453741065179034386203614986969368375410116878122064614959810190636736941309875972065389725432422125072498844840800668264068577022373793860280821411486694599587737402130559901914384069212313454535915037936585010635920237452572954069274928669713118857414965056063209066220549997340017591756190030478242705250163430291860177170984616893969955113375235727519713857940437315847506414908316532440471933697802529185820078110732836864809688799417878423659865471951057458506719892990692082922697875277658399884587501830925057158679014965441104832093723618765577341949615170571382483231813635253646514253183090379252900900152322960530431103513108355636090267597950781501257060031872732001537927481181688715702725630166163787743297650123507659902852045082056497425989951808179362392548903629398704490703325635615850111944747336026340059468346295741291487774405135591178374938749709679118860702274402141061832361532731374586651877825982815648131965915143867702208470072828918813035934614487233908450473204435517969817335086102560831070594998791362225185011140549556660749003589538712791135607362905499311542503864093095372411745397689442336929389149514169250729814629575442170438716213058262651101083310736341286708683519132205840943061195302352265249995089747386116694373736620504137313235835005592584195635477761983593986239449764016637701789270637425333735796857846216268053233363332946698498917220576105891158958579884416981598541906790827218001644070445996086501053054706799830947518780828608715701317848079087768854027741467885556068421567250812699054580300938995685610938919310065967498705352679552387455810732287165587906671443170435343534117580206989062749666144330168801783448884281751232142530499299157993482751288906778874057498157848238420959986563419752560591309589541035376081241301864087760819429248320266343702542942904573136340047306945112587172470489204170345384813768455084456154792685861623652462449906051139040225764868094994782457480798866716648485533457444905851937690307451567369949227662999553450798203225199246465332400893880681747501127142262117651324408053543703238920277481569352592745256151986848121941793926384984057169312684988414375009992584425658812041986775578514269809412606371122294283352649249562726992675747157137472968136065849057850285186738543539352757037092361985112801761618038267137275167766049385884912006242767215184744185488500886554139370070296729639704479463004595111786008700039900072603025531535190428961140104416018584940829511909353057880749013952138519008290596283758312118394714767402248907476568383167997010153009185278507532005374362733161969512336568749062431386186990507730080587588517105808154228166977778505002077403745864018479163102196812067601213309659602596398555893313602756217793143202566543465468132434944278906724319807125138939297358645031315548128993820148111219221303652670509372479597061367400404456703523943060863304096520035117078213904270844096048896696899886443768578678486735421330586254652247620763126602801660271595497067233000976126059968533084479582571747809207426131517031661488059629703462766435445544186760571911202358646027088660153531023025335598135626256252079539354687976681503995407646230103320144286049472093461932534463409515446108486615125966418204201034123738502989169450299799117480006577008187514210957969408638562974510020684970824848084812896086136132685489260179617547253686669511544860195722599758325192539557708754952854531655275686772407191199883954037710285620295717522791642326851249156195850396655529103589786370391424890046958720124477545268529528680989469249159597134466514898621380554668225459836733560186023160228070536223081852565965350285856108945162850837996645774775633122405560894737011548687047897975621919396002802599675820278846271168812286867978867345371490153478338208128316897040111317805027639268313748521652771831332578228284101441968599877947234303735375960622315242358332069182664735759289012634795862236477534895647301570672790684216024895500401073227244300327418434864219399870747950111066315814784328130472674590075070362056072630908140941518544488349221335950114310356002616575471625766630395216676374736273292135142712424845142763199813983310474040834971700350911618351493205662007975828598336314173873085623457778161514066707621150087993458174229215173844375272352029413949001864287674028596565733009933586101286100074604372639246819948628661234125906322243149118381707093388083692695115793773686873598174810764279864058432036176084073491081512216947741154363887927045579696822773190650316771088964058713173927602651564776530158179734025133963623869832241573953270206506613876996519442612978152128450740226310729868626953803623076922248773571389201150468009544209362143038379391538015701707345498403068900600972607502851158795644327676090185149435875102718366504290498165264115547361017240143691293861683026514395603760023759357192057847546071940163905439342895811231223366150104623103935256793489409174480377362064356866393791099620046551523543387517597407687673980547543056638573534707053363865311221423239901569286951099486865036510460834391654522085982299472588875830650465563969951193797529211696102027650433672059600899514298720600459111379983046500846294036304043982761414168303754534687486205906858504267266332449107251269651208189259105611418152641612140998916471494306937106197830975645149969072642326994708098114845425520341450952558656841406760451200536965867826899585271026163010251589844780694208160103929085623146151931800768482232421035211745524813131455120265807240543029577836467552152681125145291361326483580693804246756150211803882765929554981767885590462788519639065058146343538419638809006512566603510795936806778035783126947870307174131874308469734214004634712909460981777827414310802875367641434519814539323810642701040611619981825570998340608956569511986786115221805666800034558335935866981583677020825284892463374547596239559143430130680798898564061523738589493867394979739182404812947337621438750478542085662378569100005602150985268225113238605595988432453292023747885873581805486043427660280271842133059433384273953908661100894716178375265400635753727604561068490376120147878879764543620906339772230631865012728841111055786882310087178978392900012434143307116348048910968281016936937941362206501737556487302841634493529257545621871891716960728892545691088819886601338768323456368189678046520507305989014345413549747310433505665979833687492546876731930087727309971790472949527245294289263924076508189714134950278362166768482339648405977025258024206227748085168124533547990662832808456261945305355482740561490721264538158621327367292683672036714361094984820357465757792419686365366189700785570430610585610465855860989947985076752491058808708749400164397001825278502831917902869726889774846445868594829051971082429580106041889647036972023574836308476339920701742411150749980933545920083947321094859022142607871966185659944913611250546294565434541169474342398789136515156943848267482726947994506699065394875990795237807507256323288088944572748214902848559236728266829902628625463612737988838649745222530747919932190137045463756635911000392081209725496465874388512563330357867835426820166427597144532803182732838782669876227004289551561531368409464802133446864819362644191587851342371383049049323434740527047572798949981907415945836393150433730037818565191365398208697290831535776462625385991689992833871155292587574108377868822234039712699414644821895832775160783562397739561251851841138995043635035716740980475074462585874068217311983054791886901313746590595467718894705175498859715012841610674868378773900422925047641314441237098568256428106308271098924913178320708297213302475622588993103893217206084935343162556726289709290451409151954803035810666314224481766014502187240071052477576681695695392110602630302509412030739776722761480009971505252510918263081982160369985632316651310265133046419886106903924187704138511325885388317678746233544199018971055532191576547943530483110359935252883628503708444342022585373641109725607377616557901080656253767279055834528705960678941613879338946488443572125082326521217821743096971855920013677252974062737236165482723213196123629272333826555023945989964346656714521266473560096139910716518660393298765701871701855196345160126844565627548563661138352022032958040763840753981580850536550523312751529727909951442932618574114266848052975713127559855340055727882289132597776107307366652489615535173801180071382760044658269457307702758984981000260991100021411372153706868782886554645411536172949133548696538215660951284082200445244493514496248975877937607764216974016082262841199087691354989255552542605488682459741846360123449256857068364354371989005683299369461674797847029811959843846821106608079529018155460202994622270326098204879607026001313574214196583528762451701663546357752877910799155785045216732262776428064327500426170000764579220812526682293114758567001599206291691686023576728691632048017962986218739600569023714834105921137059731715030412026980712553185380297587968839199575065351814432433747419560684190358858270968902493801416151721087982081180779509285169728097885383348964201264557326555327343128954038221000187367423868146366580701399913850020538464283161262799595750679518464156622148596771941930322757961755938998783926467413379435124759910593903345027470231314801374827130941963394459980832504880841203575194881145426722653564688677256579485197530609312240145723942495018107738293072957812856643838455178915461778217780522374031879121248063610298440992203235484283785639894028025696693445350498880743340775878702638144837983062481062783739927720306806747085226818548072704199962691570320286983252966987114963704828608070343293196698461814602968155578201991667410524841824291227826089824273605512975574065814455786230403881746405565115958424044660726516404238485937422669388719937761314199572678197238340730644504946837884335649946886202821623724131155480077914569510149689771621843774164061857767547689929431945766954469424404195874676063586681748292436534133619590268466132490701051639340701103380591573036955740813261922283798397893984232453374215954740218923559122194021631446367738116546842402657462789007518432663788015514054409719475347839581984168275207603545275461495410236388967250522822312207366860816769653496877329021322062580823163780469292587721782518972300289849330708752842128397968966668706143492267672670597821474527493893301024989875110763434694027663836978656160694400917080106710147928985781812579485366138539317326683022859310997138892776103907708722744162150856807167312141677972157655153494909805882843276978438008632407408396533216190554618713734558193712999044614272768103908026342689354829475814931788838011585369017061482600029935697200238559582599497339322324352089063483318282015577001831453657858778726242300464443872337217020571925384746584352024520437667809400159677008138304971916095632228191812008056872265120818102197305875643174819520441689268135893828467621920162724207796018541267501688945425502736463151247947184856350419282540195397515443862423994621167280997402133080783127948105293145974910544423125118983829868842685974092991172877836540100774789574593552217215785470539279814689942950353265831236915716584637986634953186175901983460181023878176626823818014159668532232954162506742918512600617988737695580665072907254922955784246958455385171698531059105750626441671420032112965095923237110294973710254936704013605211775731064877269558573047893614881599022720534032499356988263816573337946486833135437068486071787097426403323935401707090152716790023165502190177351191912792532595467902984970075762521921885984439690126060959858028568030920764697171092078156606926286906392735141233822721138904686611263472608704660750669012380574709755827092783191021455372080622249731606256141931521249763292265376018814078089738457407206657297187456321550759420274058675256890840266983839099938767344094928149005634166738218209091268699587644216871552382355154257269841138827671908840476618890748419451130142437038197463208788384501490623364996248204759771703060352879555955578836191421265089284966182671597403887597293667615429160877049609055925133930914806854995839991189309678722098087641467503227210168622061305617667695982357749349695115795575374890409644739563701598345023680177063485054001521207627515759713331771439294282563276561646952962331526402064137541998209055523938758387594407450862071676843422499059387526500497997663692908823213042964958602079290391017043181087185144624119288068238362249647620073502675791538853040482224577566883578276923877792174264604352185192173719156146190938515023185534340839816401396099717125019634106521431673377239085584764261865777981619778211719617357762210171328319971497331720288576554639103421648879132469576384997847708863356073820855770378168952796648557490133778570526754903669989515609392937539606961481937000176708961107681787887678015116983524477293608071668289104949948741495834538157298875223015224408257646386258035979980888104289514974345921838961266202460498798425948153257466698631879579378962914076306842479904629634602720305904032539688730258150056588105420475146307410112361175171688249271754003721017278276268384432839248004968987498718087340508031639525033643424884048171616618952443428099472894459937531053760729669838456146435100558614207803199042607255647318019167211198414756681575516220345749032110805397238145563053100467727930563296622089955697902528450528405142491152283546735008982188029643128933811982952403219189895194311836893193529354890555386546609134210202066563517468403177599898056505361175080762812154062145819505922340633001274907675920404643151786194920371004367630155022942013990384707834550006617673797898106838266060003814009171553823046710469931698224824167090164655423952504014180878946823509020847050218428168991628191717183433491228341223925324036648219749871386183546010568191779901404027372125619353193853262726773070270378329868083350721366906174718113116386731491873938410877213320533018364536508700785664819483800413154769678256872852285729747952104131095812212440680560125752718875236741735851233110677217015966849301285187136825520271939478036673794276925242966742977643561880136724772100384066099977158752832865290438160245354798620904065828401807913359584481537500950359820012376661027369731817748935288858934733101145367667704748116866781749843298976348694315045127538711739766011577624219140500327996004584816490279954640502657068725414316850782324939908145780331251341618218326139982966232860768823528043662593278803189328354732239342482931683328767090837315984262363243826576482521138415157149847564057121655335391836348026838431057272240758911077701091821295894360600868397242026736768553083835168802846574994415728517912768455971380255615418592412946987213147586640279597920935784273739595845193345892284836260248831577071890097363779688496732829817376997321242663032501721090984317273505783064169799306495302505265191385087613697357393902186674955153947547352177524355189512126452656025599645105281784818965031571094307405213176052751836546892275480980503130492276598278537043694007231310941489737976281745767128935965096937288912609171830520594219175233865043411911753380042056416256777178775043809306594408226859255910700395772017892786551372642223832962422116994671447948766538215387709161297703556699424074445757481915273620416115620056192775138234220470661141308923962634092835719887243907490319449035951719485302772700195066225598283322676273262821712365250848977450270811374664773649823339097318886788225713442644371466706749110578633705292031730898128563567519696076381138174628247621405408027597075112760268684074329458371884089462807365549086291678989658411023119393448926612838370174987835035948695048452222834597405979442315476480762685879025570720484615181670939981884873055401325916310106630878163787728799712693384802399223002706514530477431884007927260672370640602896393561139801840354920465833349603659305581179096114302359377521755962854565004255493554098485005865121557050107582240288313033436591247006041493226843758068137726787548623014660617549131546824421441906144874757946142124388812672082232048265648634342597364442439824213908769219735653249841715418173376778512411578282209187785294422197703502202857781599987603385088266592654960858094564276002511803306662527987212649502589111794779583163112963898156658765492731516874092556145327464498871584128741872851438929014413148986220150446665017866767276911732879109589067610908079691266131417979612346815210065341520398527867490185345375174850321605262604296204465350719746131698399023309752120508321036109021485916536012169736678116546087488654849948752132962301225353272718483878476374168705751155811355392341504303942994862299215047014502972092459627898403841242354063487454311479832897075868944401158285633214789557813541628859698742782929220851231042642218676713853809301114113558581187152476649486845282921073589630908505822373484008522550164945527264684897344983953157785187337243693196830995584155748927572552584970570703256301751645283161910013359671180730259466809156117616773741385659527783785423228049321710931909453479513985695538636148554805796394829881595718685230833231158394977677202619768937147546839514924707973589993672768810137424039353788090463298979267420452144515656562850581130417884085593042999052251200231131162814041263710749017980699339259878666540581302477723108359317228052880299276118182204317361687088908348300774016072397739722361494031928755812004882277672402374170499582388044220430476189161156335805317000517626458341413914515361221341523807867264475389244749113308081859206304884016438012634581697140005855096054347220546836014802332932974785004428630686694712351213031989832132314687757117412270182391433436026493132094806623074734963504905077401089640012801261103678912352953838775905672335536853268913874750000563361109559279688636164993573452971935794103156480997445470282865392447410819944197339598259546362269571206104733580321604078846018027956320893704197804208360412099487763719917462622105294556622754852770851393281796430665456393831864199149654917026106800963233015888613241305554240144072071428785280925026090591458521941558005562511084418353496902816399099458535222588985956366998918495483075771682493190279720667423602883805772399873873652045483822807187475455144643122319145719253369987092265838571340957466108382884908647294276261632744903108792817525638343391994163623454372242928284437191437528022625944165032828189083634007929653731471419588886040348706135624697435186601516709633402024687384947129403944154375739394448104456175702824120928412631025947562349937319784885521393208089684608431462411689070888454469626092271499814180470358525348574622670864273560655945990775221321769565604629704339242709707000650320719769555096698261646335356781764940239840676587880249999310731523636125541200661346279453016888214281626574595541583146752290783550097809570697275572347683603044227510563208969177113250112206415125627787708121820397700832547706600918726616000604214802610218282164997644508895148067980618335322795188004237353328062922864440782420878332357196301158898753156720235550206451117667786669209490227746892517381419657019902082569846732725447423204398359327412793869704257455388657727303947198945845163112744041105225875324066628154379503659573173600822847807936625669609498918388930320305583126366407417531361770841496023714016858262286312927802516083307923038146518278746275444832590472923270454750935271970894668330785921895491299820074787159024010374102096400856394159378215654734470448101015615838351953186618224434292355347315109370905585341301616799082087966156212154514043289171079623882063274805424836084211038210782451878482434902387774923280425273228632466207141857842760150010089711819174314034147886728650899710343004226488524556374132989327556819070511298035206023490993014535977492345297916433388503386734510925922428217728394159943729103732552538643459731455428656550782023201263307520869189197291478684961703455615623101601441655556784879331362952241649046282752426673635224257970306150123661330737692281650695924005013244297177839111075112488093539749255496337524279812543984141407385981072421640849965211696956644816933287387077726018010402838278773984388261062550425082789914760539514351466745708887145326835269786004079389569905265031074090469749419366586644630186912646939363101184764608278344998118658984980069139281570555749084751407562341235562809083221430162174236949001634049220033313634825266054598250325859064189707910105678723335563959775937015875668992140618543173259587820001018141548711756260350016517222031792599437391252871247273526228837717625860644620112128361911005579562137621582878989054957696533378208368511736746730876573235786841834748056012953617804519039447323192222584437736140659003768347456338859691245882877071677793069254525955867353014163855820614366466785671200657822136394497004168143002865161953870540395448855985610308582158374842318373352167309222282673001060478087183118575113216726892473907805083793081355069043302211631344962894431090232309914777523328801554271119200693295739353839342624526316623666319998386087851472070318068852118873436600255330624521934588082813256800075184180213055746134392194087199135159683337384801451737980249287785063598627605383036095918253128319608033247941788940560514479114210995222559992149106583259326861426025790698439705015783296994360700349701238083009522513312574527152974465634520625558659499309036075957599257095578447099609230601005494467626135823458529599107076110738445091368652519784152205069201154419165649065675122341156712691118161934212454932244599518506312871451665093069861935486284904421902726194686802533361871125527232235306889183055607452844716643730450560042142591432834557076712251107891061789939170858199187725043175649323360034489645338870387531056951837336251339447617143608200275648687275968731856751712262044253141690540398656686746690592996189568642008255448923210634962380050730797861292317755563779271713868740841957633733836446883192270622255233222078961172313663325502631066010267541470295716987514537243304372372379108650595366798872791046072409046025538645892490503975897186554369353246252326217878483034647871822931062562382197059031096987080025670582527814234876485828842679501683970552048287352355838526379058939284700721678660608722179272637991754709574678405785095234375883127858570960329872428926652179558393234157907996369827685899559966110349673085338598380859032008214299487527565253357660787760284831651161586138841456730784551888834662452852449574538918159027125742739350234754295898946777650182618586285087750070981590462370870071311919678455358003374987204388707935881618636891007345424075896158456026599211902254115727354459391325296195928675486579129920958979386399518442908336087017171668139033056912919349097250371867670157819522365470470839094141123029724965491272766502949028879537386909702872427073685067902141540411001609137781584140796026598293883942617064580563620711872377792673235243038872672710113502409066775887263201477415907879729111408107326719574820486455818687020070217573921120000258909331593970220599720713973744110201880005333665148110425319494419717001625715191694285970380556354948657759367078776801259361781605826255672051072958516373085368020950751896519403722390598382922122205626158194380081174587770458671717534927206784309552370354801898638115943290706333245429292636365323173439669879023604503089543805952913511905439165255977760533021388360005822582552038802790025703381202663265630162382222555020765828253590997230261426252270334015791073661961745546823558696929538193557080951793899835407098782903389955046628587642378615288385962020688711339290861655564039949443788982177927653109276511131878529046821292568100847101754342956138474935611194172407756236707771221384589140122987643751093912834233572212862451670595261718984937920474176972934726968835369197707019057745469061785154947858711272625237838407934332078287236414740232808515506037945260958508859494955087381437264819073460385455351467069533116033226072680997881533162088092567553596954323041664285845889637202267702884433057204382880693681571257243556586214749197317195406675612081479993846792889719652341455550568605824576450581933368128866406687103442798323383835566335446336792767533463042136837152634560019010906153192144766224130516875759411355335184640724482286842063105442442129561275855273067756182219617503513896760501574465501916363095161880131099985410891134930177219442163971182623287378744592550272996561085627770364992223200049388868129441489309079425074161696118371436957385352651274982288092893090155543705799016418389119651613494214569698888798433247429030072110178560091033199286208156724828781197265343974808806329763981535928533394008853297206112511417441182732144192947617738133208773834465022774191240470972642694371153247417269946842949902955229526673588462459018225065774746620224665741089146719113760580924375111395301487959382750356515335880022192709455837722087334649895550701249315972646128802913081810562067668595770154910678215928166433992975672678728204367420955996963132503810123289655199606283183372140427015854045683123914582784946077781487846134267594276866265545901122053157435539760886780798293025193117707899592696908355369987837236772895818483953572864752217819424876546672735169792556926057185226009715976610578321236026468209287221695674189297018387426834922097204732080954788902305221311020031082745142523836888601554255463230155022172988837619181926557081583390212910816194456478748833817901051248541224973006490182280060938585790006541036371629433902317168259512760629956488662544762343371077934078350480316304540832880970695274362291892660057773342258482091163216510578305071752930546085936634752177228151249810277574501527471078030197704781358693434586104701045874877828657404431488692780296614786447205972828408675680706871037940812232085096365769835537094673425559049098601460123220530290080823116963660379495002950962341530033480288700930001463819584095832960627073703031526134955318828229733069085575742244264641009735805265522592716272143902076944238808426983398385314283563517650817545340411787493995657461800822789328671398518931816826680587752709325841596904742345098010873057400934214730106068560331713938231535793759110503344814207044510087175447008729642860395840320668474775993650825106422450540983574534301900006611762673586964883927573389212434365434728290921151172457947892975648861419834799735792668352997711563903883650121715742486692444370964691068152115181662677875230223710986107616071517682675262417605397895956161822642532994707356510081884600870097166831723138122474428600470822256340532324402238746589280067918410195527896221734868482213742767807743289461096360145419374681261112606882720955361491267513640819520316984476601136155533870669251716130147517329477626151988147512214146932839138948797260750291463836210055666057196176765583565321904197802277561612805155383575853764129502398254574710613918666076886302115523176820392031419861840337544064507424746156301748576117107243841532743687273805703437519247576660810763188760341376501002779856524931928133713799246602224572076109068895166117774255279908343335586741665864813602861220076833177984974148805020670926911184054049469259975287947067771182502574837219403778624378012765402220337136054940471735564885635094451795842850909299402717401316939358942635893434768355787977373691690652814576880448930296765497490037972553103193854488069166324510353983436471710627538514787493615509246931962331117485931919723015919466421331787678485236580170535180516386989347877921901324844265378449790430068736137592679373306280287862179697586922642263638903881736169742058162997348509936611363357215438566663222533915279582411577223397707200315144891192769308535131959239683066929264169820850700722142527479531251372587824098203229231087746578509380770224125703568572395092026142787027877724639209400133312314552218973827615019628724440192585686700621270377827583280453140308609802888834251691960054721224669311655296885806610147351830427027981890125842777926608006451968732245769116435934868920107165822327133376888211792701959352409070357542542351733892850520829200071509411210565270781209909971024884909806430412648917315997191512947478736817967716097251489640237990609697199633307476486998762146453055342820429794157820387912817187274221944604118062013411882839445785914795024575019548787036087179344414744696137705471748393903539195340343379424482298950153909514623537015854578798828449725443995508392069446293614099985937333229549447858615484982013268940163358562179964419501457560291130862794544239730247311555370030199402380257038871744763210909886066326673833412653056014685684469231508484099369830203801227149254617616065017631729465573079872735861442093643992378526967191425252770864425002228199973217736886457310608504840467055100509661259471328987104822781701212913924193861121472249335152220191513126659997310283986973571406587027884884349785403831298993385485170897383221209644050280811373414618167425075394321748994407006529438102256399202054060606139005428800932259802610996385700177490626076666933822051462693511780442013292563941959824380014670699026463622303695638026657782574412677210435799411914709048552901535679349648500838215557709544678036783842441752029159452993314611313457272171646526911450450704503919941272410314091635772813431385683778321259687056390167068841040528111919767706232280256354146372157229511913369367778301419849904388549036571101261351156277170284049172621881641559972938889279347064611093481284285016841962747063162036098772279902572416115690721426830519082399514741942415774939082086228029708484713389077573419515143937624931944839487159112167213901628687810651530418515586739384631849676803094521488590795653393035448596998348747139665221490586043004154246894107585802744583284473054354452581174497600669468133929320202347159792815571895800787500263767562162278756003405729449340258436914974208767112670852594490322735658404809491083240058106360276652450130197916329155691769983844059150373204134148491140748278788026169991228087838381469987113468050748045126365816702775252441724303011095291891824803055875978685095724466971963898027123854602761857468627819399363308712433251763696548058321318813721823531175657106953075619905135650626125753283385374086795720836943649058446046881305996531591955434676124662404133493870049292538791205343814121725515755129976387278761057820675730379778096230856803762513658794880931177463490938852250791299244818817443035399023775668924878367399337778258440305581848106452923963128460572336473178656245128105556292952825000690086316070825572942523803111260328544480976796857792924426279267499642897568634919478580350791999955389895460295483034543493482368563815709211663213091386814920586611734897183919948200377186006358741187610017695300080323166359994320054862417018856693149318295523858022942762177598162851704184785306749400278283137149928003244370851416051936919448215982742593536338425102990775567092568013172150818932508753470521210605074783332231735896141791150470214582583964666262286711923556161343557532603937529240342531989678205995144377591949887312566891935496996828532910942095515077755783069562073813629002274701206709242928761215911106995677515438276720331734586688229623871957317511075153612306096751163402639156405026100279231097857226386291764500795380564658844700908134209441249719647684163182781981425011241045100849291486953261821923667616310578071124907910680100344446305443427246558479969651125204894617067944267124954534126079093249738583617500958803065333960958816452664078003897450080269900582854359740249001963344516326533565826043481559894365560022118539059292430676786952925660427022895258594892038730511355433310341048407999083678037299389555789376876841003426236858565249093729969371556203938790289805411982373599344624054036375439179429549987237290671750173794102554639720398654002189396015405770431953003186326232738609497485042462852758484690649038710774800694935108971089190428116782111410119572660875477113080983902581410078002374253209220835469431927047229012827873501563956059235795324771272240083953393767774068543043204635499284088831632582014020256185594668453056322525450473743579476100702699323211926812983630461847575095533213750034367838122600864538724493277583399416770381961615180557639662549747429946520765343857171676233254499806644494056951162289616776895995446850328253492114051984126270024257908651156364974500831700523247729607646567746570294583602373108959181622915315272130713888253716027720490924623863184856327722246459583950904258924021815695934582610744762267011457986718499594836693869130982648826287285896380196889305949328412266303042268446630463946561956493792034314858522161984963056374769677421009257913122120000757461061448114338401207089994548232195123379550793694580444991216036150951749447326033167580184547821396706929939604702890313454719633836843810652572849796530208509587345815343661835240650622135655194626530680410257836176353578674351509602692988319108848297433720211120995554285960135948407972842181108926103743739791567097880839850768095828414010956211670784271821225771506054157425085266669302777063850116037521350661946012078639522103299547577299336696449804373033304338161441903131853543192074223657473784068087213294972067655419553705830719322329357582805293598671454013742937770037040253439377629550937752489963375612046195441692635214052211793234608319359069106923422429211066343013626027308823940222635061565118213926005128260316142196832446269188903302238175721436649252769773557622177348292205703255750253446843746880209151625960888710036096328615335707764024340353154371379006202880433733900424027056516283730111001453907971024470548719162835283079643404090016917279685464000438420063057258957533328503668008874282774096364814206841468867740383402965588948124968616056262993586022908379477187717571830832878492257055839050610170099662565227702458338116620346834466523279165319719010748423086472926657803805527795121454813175926369994311816651311563422433760221037322674578007255947363650318577666772792602499025020354816233469548810546816149565536894069641299554132874544754618131772878836499384416616239562342266055502839451757063066739968398081345686378914539856942067656356048317397512527556128688543302198606460006675751770804496390828453394228867263614122487699822755124555588855504998997826085471048799379407043550578831710333543595302226853491270586523644470380867871390752294147369495243416844940265947885667215361850015780625955208927120801588632146177153291677259914110583061363320472698087705706023647876291825768934139896064478201662866822247251982784829087971228979856443151962809296618192186256325576657270880331255074719457141048586137130545506585457818024287797818238183798356413476523414731949222081129746018870682948412084932340945041247340974457315110759038114262930680617680797282525380806903774479079430322717588359493733794509426553002283401916358035575479661867991814729521620954178003319170009640207748536043696685621943915826876618610741296188681539356525853528134661819451366821486466246386360544450829381383908832706867257495876301028347840663085172796316536148348704989116207388798571160489280011835594868686148298485605789476694394294846321177913923159869657105533132758308353384882119003031220274965312302931886333254462685075825888830499269184898285777153450006372811614951102558793832898302638731309079437774794650605769589055834320725020215718922806669827616800507965935639893557609743653036204838021878210435478785181721950744338548354583830123478287410595179368410781819522727481433994260532779161704593231763752990334568476568503618453325862175664038798551717823026733213673319186261780066078822664889751928786931333755057878794391074845430774988439088939962668136200231498682694623101326928507362512495364492923878435954019293868327963233573159463115637191763596688179606725038793962073217002924111663884751834685359772403089324306873035202313809818368376403389548416511178089627670699325412267755965390391422691110876189525847572677106028916678295939965568971911302953496506617717700089694290978585667747221671238512982785196181087174707488757397623522579829322308027441098977838035929461641270373045895994872235527448715112230096161010103958653279864771424402091194412285292301713875197836353184234666896847860689029848182401207815895535217791066953759780813519194658585757286119950822972148952418194246416689995244892456411076020081322540791609975662946437720734866196504773711643461964988539253282407327837798626142109451429954351222835210420586099503168325337090083324944389963691678112108472855287723380953049386058835343596518215095015959634270603411809576906231549620438017571361760533882790207994383477265475051817764252701756058135108913192440301962151396346055239066101202534086618938777620390102391608715470698956805537371574494356842611161247256187874481915123240037243565709258673081673908906942280599349386733679050600492946661166960417853243225658631562654360782512686094317164460817996652535252245932152686041329644586239199754122021145628053695954792104267349046811206405598945474191485781862942166332121842812314438539062453923255098443566317619818515276119721568597711331013301042962496502578266877596727304648031391571387090940026736833196986695592973746326244738063558631772908242865936415189199689505393079573373313664021845730655628075600566054371703299214022193923982519633457419610148271999749013801867772413994419582124619562456618079874678217495453483585263301243757597968198411631202143477667814419254361760346011676030602720170819066384295148661521298056737603705256730706461728525944691762403912585720534737622580491719425310290157460287176310796706301268045954673660122474078586157049326419967958083631060741713264792557385880005164683581909893156327577842729371317318854897296114611657826169074941204050819589211201200681706181945197161825081654671724674201724259924412020582445870509683966563420517878772041651545582108635357276824829854772663108361413978324882232690878660563757080376770949924235530547787721342571308362913187775549519096882337366200500877210162727753986879187111478782394825623018571127426088852614568045688866248443587357035836452630766803360862953692201238209148048589837508842044023451324313103566192512121496905990541642909332235897488605602943985799145286657828374009672216379905412252112359089887174770555645752534535388189797286584381372160357325190269815693444875525711367625341167128914894621911619102150069962990339132935493887171274016275129404023555060183905965161519314605483889778195946923327518898904140054562677465586761861608426576948121733802467178767063019602694462166849132004121758160404576288572350457237962162432309290396599683553155631384978617351022961660423963554140023676621727185813002884193330421947583769492439405254170433806847434807538772802382807555235904929600407207538657456362397465233265060577937494677071469161458453918040758935461064971595957374974318684480864911666814602130624529849182624449409993819626700941515905488347406907259749087145185780763870136249008849814738381825307144840490999727726484621621926375982940390392892086981198547813563744434098685059155779407352472446833629298497652332493433842839196729898628478833669771679909261993310768810539412782223063900955142527032093753295398085575445959187088176431224884701218335915901813183954389041410889263755994895207523778554338176745568231987087494233154700569147371630015711782035017467402120048850491767934425725667937091956768341867571461387418679716607384460408710185161664835377457494224894169662034436401113224080616292818203315901295325411454461697649051146135972350741741236172649486409523275465848438018338661606742785805694627108093175525201470473635817855664500536859828717984409752131217569434913499253409757063823670055920757960736753921695538209558013598237909780458444884035172592058427480495322717593521384752977191726315865313608510051977954875663196695387673560451427383052516146288223091969254435211289175669661994149536209212893812312779529495794183212692737471017054225075870026750758306606670624198590901906507184557920999559858726899837374761388191374848606612735752995010803122089266522703747464936132673775850840774560557001948254971185568322372923420532754744825857505436785298581266470374341427799691171128051032190338331935555974231190714429660728682608641001566475448487034901470059991400669364850221212246925167966414300531944508944602664514074995265809301805124969944664463061577390201522394122413811265623127556937471459173316059050311461706309564324356229896243308285248639423245592772513740554393534525072184560826420805369371987641986929736387223641752365894459937061922556877863062803704562639549107407716427063407238034135136827815289505192568517529917860015706120650504166128099665172608286891276539545813289117598561677721809194669030658592484826586486960812644885695079164743463874125045157170862639129791228017294959911246455376290725302239798962989829901967825483203497082613785536923764671751537971990752874035000667002091359032990848004012981963109347747544128373451757272277888585386156343344383699265685449766501519046546458298878667384653108433244324092275781879194395791453119999821895435532841756646166885926227788883060723372298389799100073993240070761272922238551764281366869337173087468374812981474740511425783343276298032851573624598342126187644977984287402075868312509528076142430779626623698719853573132132444310752826345661239055479414856037770412464934872945240838461768866786494129622800343170804536804155500319826182221960761764058220665348936645415384773805504971913222416084402488497596967496208957600303603562965860725943037154116720975504406810059460742119487845383856665661124521280432097968332317961693499089785629715246348835855221691788343116346627906937119808163173760678968471663541043969319580253356198166973702473158694498621313041753208064089375170941090628750969997016867641549194874861187481485648475255775903703472255901818814258349574025507066954646001748751212436289332348096260801629541605856392252588469108947779139550722332816934262655321069910538753389955135622015222579545247161433933759861402405917502039006271069292687953357611932820157036455274445528493830509978128751134851520467102008306286020952298288723836162270645133318955406185199154128704236909843457562775287883852980711391607685025265566146955179571219360899845751388263147955663752102905466838927917031626427687214088635406284667823026665775498120207875997545287759755616043808833496912189827849567149833252926094451456106247918609864951224832415467767126210057113377274153327093796214190054603143068860822677878238401752287561385598848933044762596534977455802129615386091210779306677664045916574102003052825744441194684176464579015033150252994871784756879389211965012504598583649075254324733363146812522065397591698291920230111524247754269206944368009475406756210457687492209671634226622006860541406105918338803489186696957726648102818699821597911648707903020542291053380139021923430044713284642845241392660634620456916805428659216543291439825175386766786645703599352452631317824885775666280686145689539478187461815261792757890367981670207210925300984312561574867781012926983992609987558393528267891577242058516792546915091784724379054551662324180288142089288197896998562503707857524680589337520411633786043916582225313310412389581324422804506860257262246616358592412534812375912650769887350002693095150237830740463019623801448015670936814123281083737324778485277240841437347749221090675687584055932921619276850597457899055462515423346579577093157023597535091053313361368528515784784734010647714464408475147185243813635355038439850239387269941609546943855362503478414081579012007813103668583917297808265420357830432482904579836881047581731932143127901425129146601993105316513321417800174339076197514976745753105920730982520364431583748417824611662668242481690022551642930947635815733377246437415888819450672325649373244058307953809848335540111053657621721076690512248952997781502193123002096956914952507334957698201503817081249129409443543374911852249307718752895340562732721149656408049222171831045415715623204284179933976025065967855456320398376160508431765244036780501078340779438929248890605450372662852979918972533691446173737755152593902957402364067078475934487014383256581949355180600664517419596952078748735008250404047383356593620612845774523884480120702189538859185841120865100376052501891267036203758432986199697674656108832755786150494100022363170553548503869017922948876822069936567845140596595465466108523210152860842611960350974088433918459352070589775470863991997419143142047753723476422421452144257405024911118662443204571441030730651702322217226021060339942995691408412647001114330836869605929145321916485558186380997045799900984974384795906249104175310182248141947402412637078708930820927985203029524544945715708811631716870323090744272234445484358164305081245055541158183429354660546024650261662994416859502784779151187335757054565943314258513512237766735340337310686298990765029186779721295537283845394662748874963692992449581124579190134639213783387553600944910552823201311706519138832136687683166856929565778224696071209023138907317437482942635754322148416249728391050756962229719782302691753989063452637208543394110151509437373304338592521765293907238336512156562704331078959582890915788997294443569654980194044646502626829111094421354613541438440976301363809712024469536227384381518317726277747546882710483782977621934043959454999301852853967837845796487105357318244058153920153550366229005545725148964137304496191514885651114636654867287274607937116481497612418074418076343933717460513544221265972237628515269144043739230133518275779230976798685160361608593531190368401644076964812055690135716267698733512888057229222119231750069509127313425209456000880954482134164779871366802873439322055354319580070925610107071450142102204398596784934769269412676813475368858308134522503360975671348201741336605076692757526891728805815004267404889417237044209925335162317009912560326645958170085072827722705700688593273786937054495593410006067253165400721590985060236512632079846061403638502572793516497977466653351633672161647709716900838591012658481571259551006257951315989224333686563785058919894218574471763114242160055771761200646774073490765819685038680814978541411400130219786546544216950092191579935062495222983218990887332383334944653278689730904836756705971735843281811376058301115555410810754728342365175716221956793415082281778456531230870233309234929398122073735381291127246751564986279560376762835143069672781707114087101315723885044270214358489130296073112654821265196411627771593656513597396372242957550879132625442575404913550698505771705362746971513940145175561408582059645922713561531996217205660554213730082642377057354294149642573487736666832433165398259899340650151080465299444407756897030708025591638061171683963637548242951676168694377993592273142461106619711444967798643066218668603584298521187547804649687673546234033400975554998726336790764448127530567712652156138210751649760916325737703115273154756659883977998494053897045020948205121540522647260995346580997099289708244919576554265451660463681885311312725749821324438849514176195411039193306477943174473343760137219950825218787649172566171136360203481625044023927135786409780307360387751090804100382243126056033329364762591263897786914983555819112375503617867016874553478048185172985578097020207625235645072175060682265893538715925941813588411256557016576187946267460510280526976033650608807939602421853309980861176736561218774113230886324068940425776245798995220196283150306236306527876125263830904464103015463381377462292965324454538929375231411891723109376786684729008727179585432341865736122588516351950780891444940467845397041089535658894395278001771481911148081760290043674489318729950184147250240404089702519457123433370424908516128708051591855733374771074281007902479695293571197627660959699444436932408715039350244191540652168308386646964967997835186566619181090680062565359696450898176494864308866475270602124420582777103055631906315934215463627066428714113105417256317045299664290097328475314030262527544255588638237060774262451820823833382512306438719754231880265164468799996499219237990656344028334340331001609884556132929342030896961341074487116947684689078042751209099481824703305800307271864118310791867460833763204339221427287789003738771676146243387224270300403091806677694132705376142258389873794660531063120637981643837058492309753188058631685927418286803335034226943950271635579740952059640492498487660335480130680341727902720613624195674241112149371514235040857249893486619890770376270027137296652689223730541815286071820411265726556701759383276472748458894629032120643979512102037671722834479457381731200351120821019536623603040033805142774478538010726523432122061567884280979304405050479248577506962236004661217786051088834214335338630391616105361827043608820682144295130196266849408320726401751312684805878051874727899564196364396543049814043074008635750213445281760589056373169231520520371575599430720336767147616564191060557387311093631950404633969187389737302463729777909369807055391140079554677602612029102424567775553563469477837655578853656900989213256321757078209950365347714359039087251900011733883547542263736331070217927331599555582683890842091983372842472091538542811141108103716003981403061853455140661814723311333137959330186604453837876363377883894203538870360001879134454683950273104135414957314374968969563656304203502339780712663888565990542517386637170874448438164271884805348872487335172547023742828652952518140604425487015106518841660637619582330231372915638837807370397372112778639069659613770557017002834407679035440191887541184544416216633961538193099323457514329374179004056581510332714768195413347304847927952584672001123693834150332182166920903782275102581657553288648910419477072465665731360687238554419928915393419008613664523093015519911621368102730541222373824035348501443781576280944824244584727072745054424044061777478762945663435694608706895882681237701972628443234901574645119477128016219690249170655577376631984376542358919720726740420815816861223125617442330568685635965801457013849387605269316012445924773920124514868484660544416065106304429988597193024620921536381352056010784936769807727537677792750154274183844611037938640115631493010445445586770832379112836316698214358473176785728053544510312311057921663647662789176704710942052798946859335089228646159463565306357673204164120838000975572423559290243516895824626597931257196283137227303906017664297295249696665301817337854365850099347964622183462685551687460967695477645477424835798953848750114097724066953524780748103356063987032171259433850798557057059922190753211380086085866533463769365387289681608768158622991078794129851587205014061852272603496602786590454852260594563888512581475183709911336792921077742978055804163659874607176551214910675005661114984320678778646465868100738436574569078021321256859579564369370719157396953084494071063012260154350618051538810063548401041804961828816425386239819953158920683516774701072004632584639228894859112433141056618619985649946327831967641496185246811641081758832930198440069224923421065815993139678183685862814854604322194266198268209658235768675370235791217061667322821430275712884024494103110696544326049512022395642090724606982095607968848317550593564952238147515584747800214012887691343881791751606146997567324049945742396041715379443396719524970631394471729523841253104196524871173932748534668889107922124661327361405946670572612534407916054228380117422580822941705319753832772340259570240628862209421045979396414214783658512241133063129296843543365935022929743804868470574256252649668695302519872691327798797069691722254848125998334996036028702351892547201140319195470407911551837995572041642910769022309175250083129254463908390809067624408007824759520940955730840996638212066791963810967852384393578459851735704851394855085565824777746797460170879264553584580146200740839020038937925998046292583695559798801956791473563292755687331901486547837086135907132449843150935815731643147520152560037657383192167696664783693750386793825645199188488527339097544436812405114324789794862530101640864552853572106198331841006773113858334932757610040815327809036145724332966207281367858512418420408094673535483528553828563250514656349924311489157771841307380247354582592561970073537694704362091887959341717393015812808558017366643887984325253597145520156070958005165605578349221483654532638036339044455756213784539414990224353159751073085062315454275105360793650413899947378428610541417945327741148331164969864131920797156303172651564465629351776334677624997464177041297165056621805826317304598025994906182665802090566338090317682765516744610879218416382365295531414011199697811848481313603318281373491915301622976078199857960400517054924143432725928835849844518783776630545025750144205830609914920108837066665389401845898083135616434801314475036052228210831036321952822326150065386027588790618731946056415200260948600631341852966503652941276015177746214121575828833867103656440303516185659451917596506437614906688603195105094862232483745593285082666184705637262243951369216847551173860382556725545831548414245595762057510194646064843338892763798623665535891976755971997250398032284307110019530067255726495467825831324508082091837710226188857885864880498213958484643576480789304095756592739866831167257730984850719746547807476315468438430100447455715308855196695383497080026258569366693813260614977789058618489545402600147072858216932582916805205852332197206413990270249818707199341220894287584157046332217220129114024270265169849264924559948100601058865839193311869820836617562759126008917224052185732547149665318842915123303387215898493816619634402366017414569466731286008186756971503252474941635801579872563935328226940587745577398651739023091563921567357463579834799628648862741453225374187252376346109923827739453677733277186828390857770058622232022000492511468194428037563850525401738427710275667791665931928616134021066434600705018822637793390138423533139808322479607239535731713254456813692187455851670567384115740039432691695503744400782265040325016557763364330225790283590141031683142980916038924139146067268651437736027954025661460910797698875570998249575759289170321591540697405820087319630731622621169472173333350228385778562661317084394188970900438184713586467279231944103965608276859210378147813816326453531620356185998782613335105979004216250365292537506945802364132544864501172617690840559592795620614862714465054187405032340645775193324544308719597170318611927823042727924572811792962712726608177816816256116300649945041330058247324875230103996903539916920862613994385817177349403901221827832625072632451337086580666031535982039884749728007591496283138778735146116710389599955304441387077405958517385683033582298490774440445719742540301533416864980462015560235322725902321036988406728912921486762218391788210242304511068786624133989799017660971708002003296055591398652767691185946554859965581034235431033665612503692478423367442636500755687856612477594376161667342304659533446344483297896364285672543188948235351711099217071026310647574059706540454820722056112585116550208285476083063191693690295830727420811423272412397295884752097484351692249423183045342476318024793414128305106265498816793619668645291143452496611919162445624928345880617660651424923864271453163907665887085517585165445975512233374738670903477779508266239461271615427619793207456916634272602457627061081403647184695878843202393841116046267873126802376390972904976217654067239059347158600621080756669086771224223036321685761832635883756859421783924454762985539900552001652531081293661931422926993712934317819334855961343116835522874665226534041967416566289374177089606267798151097736114259172161239904080136032949716138656602164884119264824770831260299339868146970776343556572364803788464171188442694615834826007709697424269859734868981424703834707070934990770127298215221381424600179898816304479848791628625854839689148140181112475525276170767557358124363328019031942177433821472100417564809133641313882542337449408989192425288015759782106791374379227408408586471957108512217015250776390289858263230281215024956719091473039676096278071106728922920010447110600527587235673123294375352418459938408946784569091123411518357764153983012326092245134720094981122392943533194879390028643018453341470285293497935630932842539008109126950479784475412072694837373297590969902661163435664655447656659755275637584050084288692077660885058666297040912866600443656475652691723426982194572147493376888738100451298438106585526585415995841356708085732767654905386071067264756703594251014750851835569934796911132257578200933429388814562744981333608750426466891653963702377942739919827462256027593727548703131640802171575393014802149166871704045568817174103090464122569033250665749652044515720483551060456688942172385316391956267940603441782473034701261482791707762332493915011476770584026942577733868431168705370031402909771240131339974772356482271940082356866696061246616956807638759798545574243099650750109558034214104157925143769788170357565625904344341466108802032779263922200628899270034427292716998885301331962312162490100190310246135698525169109469350791049671892089687702954974114427667924790691082189477780791021247604996132296652741899940720247012544028365905116363059112983813143447630192466679604925571053331049860429679597528302266312759699841775298139359695012322159463412026091825526142096939702272545655560825004972352470049896558933155405670569663423099497022463070126382462833901490976624350480696980095381900938275176594085208326995210336972681600443183393021576631836797704427061267798453417446222670936038944468884002558049767324297444151158434912974186093659275414757711778078481112050898285385319292327349775170643955451203581543098331020789161771354345549645703806206064359672216630828131353768549503971412824187549853640844761718643837503282392572461341457973761664715821216594947619274962519258759270130303615036905155005671135920050526591200048761749029347826685326813271969420304419379797730618490594186728873094460775526565938410436833609028817543982349824108890933693356499765826180704287051888518317739374284463542808372855544643840936754212902990252387865704362611449401543536126220556391678226558653321350905368518781110128243947838653895771654300952073586737078314366974639944294274800484115795977186632060577191655264700024151344094315057038253269960236956989012272991720436403783058562022534449573299014242612662882964659315976674904649974296152692725418894707111063016141321460698323738358215051051821879632549544346085215027798908734937954433842372029016331981461468180477825947092867846146302677358109216852175214984990686423219381402512418768668822513281708234266040748530337103432855533933521476517434942215900960438910638725405531601806822504304959751611047387057093291675036498570819558215619737554993502488160778729612053855682648049778647640792969576471644500259097324804453523744285450878055725163848561087539056851133438192171518949152575718324440303399071256487451327985692806776264550732111526959270901042961735670506253455830188618412089749978578355676390300964737471594974010140087016315821754401599810075338999886501228431552443182704366925163084961770657069451428449310721986865312289544524005270385014158846069401522616497486535627029956910258979717039588064399245933458560006487616499267819692367548723931816710802144722049021893282029407514279473718252822254123771258218388618551037074862907130875374025734346128250390811633258719099974713478034989109444985554077574748021950346855550654282297351427205552890449942492277961268843253159629419008550864653896643276406796891559602923039270312584950363238603669381196464808780785800760358355189785777849041345202676593963156290017436500177234019979662823402374296129797592534568663282979182761069648783667042382160750059000212452786401176206631787718881206734180006170495947992423936689950739858223481299335310061797680447363609541151889768264942900902655005062662762788868242824767778685021886226388163543415868629617181314554892803227830023045883330236523827613296552101056151382527932401825872547123443835937030031432496071980693135844859238190367622076424256643778258217821810616249246822448322161419965196199465819180304471099367893040214247409807770027037570016147334747823161381463918042835333757820427230368907093793282366592832752537877672413462786502491683518752662976607512047799421159616990336365664868150868456186521997081428170931757790723457509999103471383826837378123639945150287652468684531317285698067513650814147457699064164511951750616072173553306228923817631146764813902100217640321719444825423852600900097079330860169638803667528711180972339158106157428945008959986023874377509816233259849596877856287077684574189308837161627902100913918923642581890426334598831733051145405485441504957703747077144789984179042779958795624126691211602719117345112395642510221303833357723654031959828343104755474069361650912024340986404637155943314917655073221207362349882573861994953916266260899438694282161441524305468510197389540664154985918222400848511288801415140028106225489611010230386513924445822988611726232293532039529746731452115915142350243086543441506794185799043202015653695322172663533005403789752254387625149336314458876820224899798114507011483823006445841775124208098217683097862207688225642457252532754243685006510475185030946518453505008623750764251103848059365526369703129440731071797917332977377852739642458853863544938971576614881534551492235607457164897843744654603577863675649472693720637347320088926923495283823226962788541276367926029726299069792362780955323080926186539194114461117596642622672839517435989324613017064234315062572518939906497425238211482908925926543154092409041473978611231162967848033628543351347731567115101486475600828736837635239576470747385427607787615927986737405190539630233317069096941027264870041209741390452632680223854930899894169403826742567558649123344925526536368292983755921421042979161374266455332131957346943298494823346671711483855957280315960917640782101682645195425524994806712680505335565350340215237839106554976136589079614641745097458907159742728505790099863059782517749445472160689768418987311828620789085217770014876749715707138422534808573354141171404215183515642913641473980105173209172636931903533195120655263156048914818609074618991199170154613847889748921060059510105365480745198920093508178722803705673652866215812281697869890023767841103304117043756910740094877570839987540933029722420220200494632865596401503132787506101524982920288165870184650318209640666230653620176365384940931321923157223146619736952799789828583415665689020250612724361265073098542254111047859023708099542566602141507635015816294225512406476985171980211146433123536789412885184713644263222361548564292899570166445931336482180970195660354248997158418948281197973617797206530438051881747420257978584118494587540208085983174667809381521067936729676380029047876058240758020653576708100769655342486826194594104629644605606176971580587704177968776132393201280774040666651177328361359194400907779967104282909627031140112412156427256426056230848421054897230591985823648920803619929556825803284691201466296201029541324157924235355381425563071032510384635165562207518185812095491911177125707046959618215838308200504808006578880695359285885557915733351994006018376319955684658829991883590093581733157156767297165080612103827602337898483193097779424825001425091853500796991971915564033318670897249938576393285572648564159446410967938183677758672647857187412659825704609282195216995268073244081365591716015699185529149463575078179155924906223347695414686915140617625868363712833184758664181909907341999918017705010954054625695771411174953142553125562821659013080984600928631815804756026543817151802752934305474908044827219377001538443654353852043469292237160762968622205669810064284380222987863556797894553666371727068511570692690977015888110729234408715894437953641949601471036826879159711662452774872216125569270913909803350456871668948587069750148455399157072598981189743018445170922212529789989336672946292164118843061425801671802406463721742665385960334604031744887874399767611872490839135030120188924245842860779575658402224453761520143123454789791127343418897907867365055724517672586583790685021185784269747029007975333584851680656662682553087245155372279527008930856218981665883720619980430897847321990545310849172959972006654116772381840855701568011905328244407239964117527405223100966494179526628573891986869655591839116086321949737466079266434144841784580602030237709663532241468196684491246944082966101519046592702021958031370455576081030046660804448278945476383734268780003159084937569428280771787454023565079765921199037290930311573987595713467762462388914043606755705991006938255802117983183841063459405089599913148619970379996625756901187663102948313384334724198193665979394584320645745541639356564515434092212037691532315453321539989560363194186643431770919296842157975393215475126101293633783447468386371691685042254632763738882799669601777694972996685702575207070323420795722673245292537639462726086652076187018531317774259897934874108355627133874031897334177749949518858090651376171274586061117408833508423518743082562326623997698521456543780642308658826298336971179495008725489061208290290879599751269879478023972035006238223401075535801183126299707759433202612450085935109907831598444942510389983273352249495759414953863076120105053250017118274705106164308698630083269321701281160739937984356351654235273921110141264455297642618592199356384294706409591867658990849376111739874105576125574649474039083921513417451901612706825105905959425931466785030138317085638879941478286181052701059627101735361913443828345383807513692120082803164856810738479095633285684545921328405867037489335887044775182117198517454656540638854652748328634547238362801768402768806938774258277028262376788150525768802935175351037413620177459451203371559875041093606646453008257080355451933622177732770517155000296390050162956875578667064893976358057768277632216169237594426462913325158494777503674155978502150706877164911040518554762332845386242711136187311713380803985990204405461953275424318403337692597501302072320358236925215968202913709120091531821850522041915069884442835129846212143310267344891568521703105345892677894080446740529330963471930748545715439384030035241932696884807200767400622268294321557538536583955556898166460888811670102120617744102468990990120735898261774809639341493385284155632075205406955090704175992310105353694923285453640146446897435637510961206886739546141000332204498630474895029514255853130848184124931848200094766087769983341751238679109477505978689713428498698513164837500721944469936306655499745187764439949234386579742435298456940133014036327754982618183917298810203842210308770341681754288535032947485007330387279042594896749854139090672080988876851271491611806042625232669096874227270512612786066889649701320606562975347437305840916171860944975159586683678294336924591000496415819472509548470815365669810387580208883829731057793714408094202044257183449505858186155548192159070812189747819157177807380947940057173653237954012264175302305436794961827225285997259536576024733073001318496505307669605911994224176698151995829302401078415397747783147269944172218275454221296007140065388496232087585903584393055537103808939347464081916981988986840094235637634711341013840351234969101853443865606676550248706246804217695116386296279656395340415681291108529482869822189992863156778884458381688102453442181457232620036543571747054217217872026009605570428427256238983396902007568894794043194639374882992226381123630802077271904007973719415691088501364067801290195683002512033564803213593171445279936161385548585662234140813116908731363423624012050212453204860743451247672211782400077372409090363023801656966372454849332034710941900680927287766502189716538367436164995024765799899328156479794894590814892941921589538858984985417478482109797566312086876569984351692700642412115832133168729898299254941076669524494653871797297696027179303939590578239442443123185502222394674497120362538335065846820891184859181982362641046905584168291014118320374151507823572323040819577089098877066102846410462499774542215420413953024868909228294591177415705301571390176393220590802830696828693965749141056353423514381631051716132111899335216233292046471605537697969948028622877856525467129014760240558379725542320360615773232450575395744114503091760721674413761120711177796920522882997367262784521856376020264825284322732216330249071848672324529072332390239580145661638758175638247798679604708056760171241666580903640672817093238982461191303358793871292703819363273930277324401724430676119777873797775084112868252597222852855259254465314118561619116374996920621071395121764781622989736852653493063662620111285009234212793888750849575698349730057649705463309187213286736435392338053896767917962934730777096727429309265184248504059145790553838245762140395166667074071269822157589886430388277857718588474259609786686056060842732332212655326974062727127973774584308883591417612693606671210108533255435207213316290639368803603031889434258439846792631046837725525588641426738155421360741091090382394382337688515497076000827401669452381158210272240476614101543675848028608956523268596746962096548444632865772662816666288660688282944934428568225636766596686398607613236173788821878164930196166341423796518936076809643280003542105947280494943849518679900331443556149486604101325811020017830764241266676361567013896517769435982617675001173683154684905206189311479789471824228888748812429336239624613191376737046858787418183910912781284417859303981623058343593935602030007716068937722466510691579100980579323319983329006609388438158568309001521087154489078887458433259738501888184878215183666568612910152842804039161108397705416774661951046011282910076382700414385897593824957487610906721345278682064109395642969192304160583252384234057540197060863454636403410907657262665312908163776122392781704490853244605941967068227467488597040817995145932294027027977420094415631749026716406587857812554057265479758525000883956692938188154254186610461058381750100355065060963606254408059252436396054304867053060276971399637813151964307585184487557790108234003684237922112649622762317991639109586514712455690817170372812925870621394825313552857710166579566111219128861699020329414664633384472287949117011998326061998739169206883500652893388670298901904889344062427958934625265584177463561727974044461789649728603425008945320456895416844541315841616450893903540132157979868379653893050671550356950678892853073748887568257588832970963116721881933509240782336031523815679652003855727158876398650103782693189571097689335621120081331575091406557692125425589131427366487285450855300102886280080639998010360253104115313312088771580204937553347071060568645338658251585828554348424950688627203008284912249447274642157672103046873871451757055251976294744133925485603734121975828840311850229258407301310848698175633987848741753688192596077201154319038285254668182443817555364687353732776726680477419801477852048029195253842327762246217461498266962199063212215151067779580034164816006023054153359746247416768358522779432372080671898808588319765268784893993196763631315834771624802774708077977638790576367213514754069299882096628591305006541504675770073976777191770983449678125527260589049375049365516775959587957216965344446435565761021906929255258138785296833819926159761906427157264061885037522436061313781311419070980047257981530147235675691945251511352243814955628536076540949574804643691574165029515717042886856910233927808931948697659910760506758763911140925019436904779484229351682972022847809295511492761472399092397605158027034996145812365537292745461311156915899697166025401007368881543173317140728669670071901452403576712334835243246511520705915410917879659683958619127366125918440995983036457516684966938529030964869868553539968503540861869971269498871419080798639296467613281933025549639306786422799947599941820760907404734874377948419960782388289417110902458451149872760566759202680335641617799558135605798426418945142466173882471584024468490142180144693376081803104341368678177767101495607710069153095175888948758959326822642476640071803760457967500180226903841385445118238013340836225917454697201073999759212091619761100023695090006534891429224241403092065040989280501199392323162792531880376291880862431070099424003807059255910264107494928206150221196063178830887939243353023498953792173766517437029149420583404398340365920636343285873711342943236774637593320117455373805483731057965557835786964526367619891355030413509504445150309973447763093074803093378166678187919489841455866998957457130728454002084790969536195163634272436476933422131874846469288927029742446204096002482334580968079588178397065510031981330545668415685670371581032514246983255194825756518639206443242878457037505471130423549982244077486369240266573814441957541100283881653322063610943528731440164864185552771565870565115413147615712510075580310384119750230473808978438907790939990413171782703310810970601357636795550989513850462429145478730317059864092213651146051220742803757466672813656947097688768389949162853397138143743761041348688288044854165703895531860519006988153673247068712589028626594040820458220183665628293385118227324022707046798225290048079784003686571290122280364161520951581577097420218324200487903544832895010696176714746753365898487493149003536735607867059600068860518630230679751680650258122746264750391939575613936973479893217228005887550190251063307252336358860790754574861731313873880639632577870285113874726920247177447456871323091987519094480991989246379530375469862438530790176630089402945698767774577253299039290209474476994333381914263925569181269646378192257139244628162185017415342590095095371820906317741282037462165681966516618311909769867402157952555692084119830303691774194208314074784605176761446961124960663101862257306137593351375635473623772552228627334443397052234870160512307390117371827588600164360933933843164912075529839877254319483138048648646859067514934083700741360915626160590307689945117404511789093300634689548394019253867638260125756815849070419263735785242339142130297830669255438927094200874229813791923255049464357643767449582706437949052358136182534895101608153941871964311748099498763899106179093844619900523859524474126923411256452627679599429340737874942251958215779843233739210516132976846758166450203258249112266214092300143357324813522877633097436551955878716908283853821865055792757914203348690738372701115301151973168210664991723051881033577644400465595859674822402265504605475046293467991938299304958694420249705036457611874925212024750188541003901174741682715747747858187050359023068583665221091686321450352528666815772119676403519888088098844640558347376527057286742843567107324195036002153691033408665529717507522708019496742466110866890740986376252162714319874918039078903061974021712521460336138403434048003511472665710706898798993244916345910003750279750749757959842802776830821809494035379114360963619626717129820009522848104762985524544106290116242253138685045434586803794306058464185722078189362579058027608293482815578332105546969302868951458235269622988449476632450923857389241077581497910989460947663552230060111103575522335352160950855374895340840929572268327389496955051240833707207871836446521831471534464168344562792675706697243864994668105573605318148314602646832097283544207109290659917350809592966738199190488095285697453045920126130021149300329335029658700214372414699612544629459885486286868797606392119487962519892369985748585783439783571355314441307248426413754476870068018257048254319134790657341448435529357049742553462141544586328733317181285425202794742076367392987223742232323951687096926648805714491780370425371535542213119739284381453204909498396512146450434437014152574183660999433740067825963663091578046286961015468804331135144607158223590132458218679340231795021298133087171517039031076554772707397136520037064947387488971760574307756635027723731157718952512271987452715671158970608038427044399960641630899111878297534212760299281978662716324224466577250375689508764798463112973181837324848565394815321098907005639590915383278432729963993560004388442972802692442554644855386029624901371014766909636646627915364385587568706425070411408660470914075058672672922862544796515259388777070179122643263706994838916069033542703261129093874191985360489060673709504091225255123326685352253329793486073820312386641812045065339179160384390786489489248928812675610201648097711296583104810285747942092398502323161490910932611027339887982740889086492865984919865380435389468093555054261105967210025207826480232641873922889665632877835633912191969894761489643077147873675106978653210068342664169016097557208881446193252380805485018386197247229574799703307818985433044012461194528752370083040561812407501671667044071652355199721806904152322815053596254275026811578583703028249013395604960921353590363725325979913140422387722621366007404281590884808159076635144641152603243047842343303825716886394990753575803857096352636430756693402652885905817622767435061544813037455984885718698956367360209065773186530152112404509955109967123635002152417423364055951306152570306427999709059985045661218453761820440405655769704060393357806918560763275946593620689165394409502320345352220136500062026404629087567703754374477530466905866117825368490435386835210333154031372130725173010672856825614771650054008428469014645536969271740463963334486634138856289168800297692972669091634959819390128666125426132856416813731243963910488851247513259873782529621147599277061054285451726653089286593643161813598964490670891097358710134799027978070571956791605530402306384600062579645570564421491459586759715429076033382259090463516266771773288037002268842016322628685635135858702504175862800234589901928015938323413139534359238507039592817522612125124470493748695105109208731768465279369710436770928327998453356584236756411381769136835829460519901501692134453866063140176751078035562580960448087692091912887457790519418697091572336176502788442899386108823419866956433351668379424152852759969887121143167127298746617424608665940752005757141222069020570231271990025802188562246569864009743150224990056861821324116741365682169634547614558388905789681296666439731988733761563367614290933973756195889023774425643539797754110438830409366966463679372601406152140475917987002960690913096256185071159569732422916488135274038459160461491583424372605173001195740108886779035823027488716521999017441811480358927178732325537753850449210241402383681211808302850189831881547827628581767911064057386974003791868382663421593079316995297366860274542535377861006841420109298589558216410217054667805050310503799287680842445548239829756156311082097813318140998487945342804896235686979983898007986049671056781238681077958661088202891650177717152185599266672498921234375243470338836023253178759837280702832952870306631939186126470177389640527927745445342145671566143920293918948547783625750441260876130808502791410846953810948278050796558176463061675035056099184267680086742172559150007497088013472111532747544639511543023225770130213816635191635943590743375501499906550339986285482928804917292258903647143272814359180571946680615759900012001358889164953628324624678102606038111551358684609579103052103183974160034385177119000652260288822259035077228740457414663303078730500268581684138537993722421661059088587740020654121784530362174986229609366561537719626674896701644801703820146138702368760014363341806817405621392123638334349725993215143218124453708486791103597832320062465148424747709275156021210348165904461943692585849617937457238288206758255782722731719474102159472051647000195127864511520649283930531562727611959830703400584820738445880008547164370792354887464446292186216507960020703726848541502977118365128553610229143274559735646022708824706811918657871703069262051262844044220217127176139752832009776455632943020932039822714382812946000114161357008900908301419481722863868769115902590304635929542893740670836288419742150409911060031427692688818653332155102261633222299445665935202085075917507978769711083488028391219163910170032863276599438602928213265685303685245741394140574909164398659152223055346371487851321897510807970024943398115680654874748714334460151848746221210065450914543753852901558986770566315119418593641610246543138435384687491415140285925917068122934248265218218395673454191831275206764009149542874840894903189472255566459852618427472092763714234364365278350467257246422309617330113041778672470989754626297140318411821750887714973016482603805000554656821587665865786184319483720146592607931608965225273459657232384010561923543378099812909887221344900394914706925305532659888280053892311295569019595316023571670277480625193392845698875415591531587381157245893321844512863242324629566814135777393874986394385349708766935261760941041434882375317153079448772975034922477305913998415485705515864373543857217944799128111063375268783992945588834297458898409549499304885116708578682027654184902361132167868272367351318609246623585472133499198152133377787365065442275296597149799853306065118653225137793802437766448767240323939622927925268370378255180338966301756752326671564588643267323766961038998170594080734115912685796530307195197245046578376104239582803705249376063370130377658567029872625558731370797326495284194543413842360837310945036003354896084217359147843186153822218393266036090182535803658768646054540392067363143688248584680702089459787025881246185295019137407787693290386660137332797801920409051042343435192035264635284605482946812022836851146544726990130934096018488926240235153244685411266606701333727455204146390916240580226317652656823298076103038368615163274356111946247172555668467880568700405345025586806362817177187887392070481555638769033942511803626492286607730540333560989010033812559561001317636238228252117124038815031363329849981250588345039513153253305485664811709521394427895180743372995542064702926798466527754152172642010649826352162757638951107203747197456222725920100940112970532909182350833697947832957286454396399748619475660470488616685981232170016075092445947536765805971790346289119870996846706574210033546921124790334698767378696593629420584364123073738508079118591642071737442410886173652100839996171202311913901241949644505058535583640914536567469194968849065943487104330712602046677269441526590405061741515031859727463807015964394483601292888012978090326463069714543315404080360727636690979402377617989155501895330131739064400699133223898217684292647001351575682429161280739447858954353373879918728470774196672744312009964961565066085436604337439591943138948598436567035049680520601686359702046684647332739744093883991351145708444267966277876407141699050391631846314501606613056355696682748988130160633762652064390945559449956007803321416689620981044707263879769002040072568440166422363064191816819967156018557769667040220292269052522474249318913505043552071505742798240624532932210820964936573696187299869837745239322905566978231517012158193043834538432140471250368665600770927749292064689736689397434000933526989833962973728921986466183870476400982856038563784846701125130403111508837126302508301042314797810330208208987980213697816523977130970540507891484009292800025143332247175719687904709182203483580886788578728856995364612503843684998628886597121542079218313671502933128454718544396415813490735967958136503183762657501493723257382368677098374157550256844108831607022721791172378809018323986696830179519109480507772719327913486716331900482973884615685815615690278733490223460023545948301609084150037839064087094965175749202731852170963240097649040731069973723512597980152992135159746277636093793155586635071409952185388345484379636086504747267908478653874061599680184097563787855849543984963566038963866805381277737281688697998404829435671986416874685548033929888732651751291770171011980100214606085143533769362710565817898591463761781483625645564256912574560338481308756822250494317056898785042258444150945801106027745900589657300169824042823818933188782720725268301563006655154213712675426972074718180005391690250503859412917297523623768737349117953011030805001070209777931350821710754434961893912403096145609080803479013282785947993773442958908530176730349772166557019128371822454354880628749084360617192095409699570931972746163458991873933434250096313593168005480455831092892878724642358465601193880191574439040133087967274930778047377165737748272918394299751214332222934187083463318440573635032995438960061784663745081616483371201076739949461227187402027535686232230035592648156982458025429003074967227119881382027424098570096918056673051199746848810324919657110517398690797383888313167600064319759753359808775500442243361870829256931416386539853382740723168258996504802374884409342953563208289886235129379885938997216134114996986190888702508315916639221331394955499829192922359158339909414206851793927147825531040430527284310495066733195379765942784010490070199831465319196287221294897954303598619976891992391756749583882960893866076172497873034401086588083411342265139213601382057152947037607388464355706559329188115244973062722615637631771992112346813566780663970246761996163572954808636951223931955934904895262058372021034544994900229154593691291543015931752815530079939380744007740584337500193686075940599702018370936949504057154266649977882121982278561706409306800333491922861647974444519158413201872401111283974671787997322093411997493614909292037234885265150020352695364622986960937070269256412488038544877108206223438986426730862655742704810569929873181740532911085422231308027223785124018526684907695929060679451421215100605373451438881011014372867523844286152125966713818467126841303451372683514958673315489362038940015869663759100260811324619381868630567879853049705296034793412568592819705053500238451255565140469526483706389839708126932777369959150854648173086556713994433508279880279560437915916798304553988841503075562516419007303347335633947941132623788955564770111900969410514312107433226761624243835679095997435327364096226749056733584175986144303604552862491533563187339950688819596435569355440098678133141514470933684089963612925297311014922615649931020337027825560351824674818405655628616016420761509438418698492031390074261031882184497906334025661304648042990283536336151535008541116690657318742512838759585036165035881689189575914976248513587139016819221848128067598399600111731865087315817486742539978660027720297581039519016510645444834453793516153387500520640871515159382518063782115301395366945662990262507651740467207917596877304653238110234538871752234008742513972294283926845692425388460477283518698409185852461341089010141380310364245848771935813961657587203482539181445512741979846662849926798475309121186517407753048150753290714449879768564994120572241870813571720601928136042919564772645159670388185339353578566665479770313919969854236966693763118729745917894600947834411224220490765214335800251996968969372323574895987018436319242126097664198379636540886154133905661268947446977809398815610181591358743329777074923559658765666627058846064004924592214794801876238898549086067555416175788014720356538675623733811901744027179420062499603832296840339867894772009485207850567469361526488049379511693517449879800546502339832096797867895375219974888021447299839391932384262298525217892782298596843904884640389905639472736610037535407521164737380126526620430369643294315745033887240986537482200889229111899863503766928176229936074329339515292788135000900664398619315311551472020130228044405948232919882707606733715644772264066406945988467010396340094624947457129370356914310263995410250619447164972348903302016612658738653944294567771000110701798578107856124851619659772384751859940257959638492802178946342339673845138258819480905950974341298411349262170231881860457333079706791254005714979552068747290325083633133722272724890100733186917431892942111768161428529417714434647291497681045021952452659955309980707265385463900860906490529158044399288867494563150042836549976796885358312780760386602101614926631350787059404544675354119827930777709053012270057323955609680519220366420239731392152870121004745284306465479411556061896901767880601683721846006149568664321157656036768139722449766009931171867921514811334444250416351183226524586991388065738698415997405534960070291769409123442560190303586129154795617152843815063278167773005812564130844480611879052527158605056443442886739581545302834153336400492605633342718958198081937209413337380289712236198416687877652693028399201887555775034182053347729190526488738427775115856412705196800015765070895642986323032450882405440992386453598076292192257291153847329320878310253315079706250017743123894053818804537047111924922608266894395283696090029558995681246346383644331318174796577846321942298691982670344739709465294160379343410014622901830934554467088122099870594728514015926536731075359581127636031426520895064206085267387145097246611104764991744358075273249997587025935491769511509366279522041485966246861869411439861397214249897313777484560356226082009846136932803976783373460094752576050259742298152118287315790486193569802652210078743921855244788529981064819631805528580723329577199419817362676300785662059234026562043888155376900649460259313793499242198240728057790662019075126908135752329811650657662872615437570464066231659710140141486175392940034731179311611532299603191664754831311496075667208407659122199652324458855371538774654221438787766035536642300138533986933686046567074794866630097995702180718812461776403216842838310666292093198689432131565396050479617227792184067823997845649680385757427059983408101750008384336119783049483755970870729606845389741657178862504749143003500940206710973257924242108382853891895991641454388932072259200347088226402064090621555092384140231083876673902553851185797105962623909192273984217031983425808256334203782870363927739899657751960131951589605180622564080524748797241418156842675393445502307913209319247456342282843343846784778867856919108305514596756243031861042866271024897184145356280373823127655834458428207377191570717394385367583627284973206055751263276712953412587553033965716081130697001642741252881750738051811061573730129438540082877328655011159733665657801353550090414285475514989106058159564063840872232626995196347430094327933890390551920599940196987403925565794806802441478822055300198156755595504707607218407014126066650309624049003358615230815704471738409460421654810707205326827625811293219045726523667816322009539818148942961119942033655318369293955267169178031475590588589308898702511537232085478129694694506052673104057356401298797549969094040806497921877496346681128211743881165434258188058837869031675911700279292523055436453423008356826229422824270479840586105855796423715021652834736470773008687670937618988899184502393664034307385577370159783200677003564294648438841151429095737532334027823650952732086958023860526703095120206884676260226237768188448507077573048307708646572548235727736531452697594593099197924192639759487083122491266622806288486516624785520007296451441710974508007324953592507726055577285522273166689980472618204171110453711235096017529603813730866236913102265784622696570332249620879962420774441749022231740481549396932970025329543804919483006762955213133957084213616248101898209903388827442967057322699625841904198179252180811079612161247124533175412276279805528510890292673904924477591327243396238063788984747275446350695399261648828470536067600347193422405043764685108379055486335297767319071031441085467584259073027456383061631849854399893116109862244097755768731424825102147498937968912551033278370325229552839526839311990395848390585239139052753096302204001316898676527588165699947469178163242016260768451871333791328664235101229851372589277014167846836940494597025744024768470038440030010780321734025228299595799209452741968269978104195048523664759697422280639617338766373760067239875750598914048710696931717831733884193564947432536974778399311709053304301184973771847298247689096631640521613245683089961494911973685376701216626103634124960515287325603846083163221183865084980698232983062784251307182787536196431779173986228708009809097802101044547234050890492434755008516593609593353670306716341798441817406587307490549126972473905517493587095631312609676414552049768321993709751129319770759474577285328694841131651571382454151182483103448558597154786238747831549994628857349839953053047407078884983142310295846315932092699884018578943821791716593687283174926588527432624853350110259121772549869318447153870633158997490973025725954703294830242498993831495867243690975510406174518018260587851218242262246274291275911633334689472777200580982546194269066186655672608656980002602389962776611810567954786274209495713820347952009261471900189352477349594562616563668209945963546938484145595328795652706099746595078578831958482761143872028577744645142303795927953650642370147887052135442152984135179102569357040559216741408358875633468038710055738539312871931579109241224622033600022840013717946553839405573972531456136369150370264061628932480962533122296826552762173943470074713049943574141408213661275878009815127199595066290369430542577027759404360505095719827824282869790274614527734376283298405956201417712030996342671101340126483603438491420483356838169064141379260102663881851620319845522956627509403497825973996988401689013288901639720123454223683543955898123006085096577508544078856889857212710384670730683386480607763146158432122450970335602527569530825002839917308729239040785469815189869980306616291708561815820255934055984240948480707537920322228433233457225323563595783611696517236560014278202320568832495302755056308091399622495378331901911973444859037230600032621840744405920838114903303012830487621345071985737669915588152760673809117877957777141133237135731318818499453113127050662778346935094222536956768653426525877752725147677996052725442055887418953493796232479743503216187659667964500088400560924870692709762913318460641124356327777440732357844145046807422280257741105955532485313591009157325126258174835773827860920029944740736247315628535242885823310482606615773474592207315947679034536286651429979766211744420736800749529420097756220429859904349372214662315471779705298984082096724741677478807806446545986461812864101371383924139703816884347034188255411594438432252336957890052316609558721071595672040438097755091787112124524656697524645145991389739188642972026502768797802852497005273441077527911100800211118300163306493852005978762949340509941222412702849078102339825197683809099617827516369262612571274938724039416596356926597387952278324174619690821645464074771908346254468320519469863725275563239628116720015304033582849012466405550376715303112633434748866215310713900424771937168705860653722351046959412841501918169992218006223100745590678266969502197931129785876504300833098732655132706316044325259055692999590866512342985786442168431317866279879227736484190932827113338277080955920589220858595397902036107164974736801989009715863356121181008037675368575526413864324382368839688470447807151560922435005214904330332256449491020654868601376099808043559560316563745437394862186331477874770068915923655464471880959895349584184306405987597997351483874890839938989726393180151161177776763457950462179528925042633214911585209135301572616256446944299343676917293130605763963204591199546584929651926133570919736514900465655634859369691632532586895772806106883363415213599299837228618576071824580700895524118032149649757693019513906539433177560398870054282408982662516070491824093330518108031787490549891499193706304303447645431121541092922464395768174266939344972628037317604565200199689666292082206711617652074167756686295593063936253068916797358303515242273402555184564530435686199914269150894894589580100991271115616204722456124866644738112667434673229363064631851128435766554236856402745418405065217236034970530314950616929546647027223666739359567926368543482818852118238716590229953033049581704667568499041653728632475646051738794831586124830668602294195851534878642651343116965520215626698743910600116333000127866723010216709202558574728491091818459595368288619364853726706103367899045901756371433920487920100601314864216675175484799098630766858408044979283396611116506610566140294418142793483921040173844772687674800711682806928528517104570284897925569667399742366190284856728806751051667949488303244883683921961960447801562191200996103316769967940328573606334008177823056804242095817042970664268846165470747634568193019900211890009725400840326729368746200806406982874153921893883185026930159568701645889924403927956984830443333066844628285050267088053484675775300053863639174635655599079886129998770909105138641019094945091652658716395935718213872872730300449620232030685547315031931277508003813491685333066817747989067290572635024239927955416067907367989287883933731690675043684867307222712921424602441596809798981495143785702857476834714918247121346994292373069046841045323504236676159308273744621328237985061837123660552633751716304786506782729810190530404633611408115488238823243847461053554018727888126105482784364818230388502269658347176709400069848923015363805645243004839828414441736885977985543342784168096816374999432422366168966222937234882523070635568726535024769145867660337804545047026270562795113792524835833832679624531729376349894355090776992050754312466532311521691829961843790799403188866472095474641224170626380424698071174458201907588276798518861374992995065761984100861756475500989340791658654011901503763691147922801123111753751438740750295634145419668640435591516203613615357603871090772089053852784632257873640261405422843381955667159159481365110237382284423339069156925157013475762529289487044326299455621777990618692515658675335708752935012393335740051029139054757555963372897234582855932143842655966582096262355706250549930557675303185837178010226940733726112474411782644782019174403505549691831261820782663233233847183894066435677426903781946569111315484114587026688717682872300524438055617244993252681792348160372927718342099292510282426981564094506907680719994513415881744341744815102164498679153572711717238611253385927599692067283611314515196943990389588578132004803755143764136169568103244044713125351612751388448589697489075359649907120041600359658627706807485778295657161916663330210961075803976595156416942504444461359940243379134173631790985207657530984162881009328248180138140922133404497845488229580329272807830201123255337081838142885708997768810115702627616385869756122160443290821328717719541795497347572208420515552718982469835732833724731779050999971485069923715247299514966708734456224186027360904099495065161951147840288979308297479408669670767662678204803664725010107484312241278602622940780808936965918894409093359882661532644088446315092855133969119734394580599622651994360099225974433076108960969222567427009772862634401105199830764526684712928728178025536901220113917592167217756682658399481873451006884002290045632235111807440963600717623680451314083690570015124422899776680709306993271373990808181569582744937448335753555707322262064929601782167016434422814291480764379615321674664369273840968608799944370213925755599413306649500946895519444710774767072352495671178437125902526461399246324170207663876149195105790847398746054514573909602938268474156473825205663629207326434831137200554803641703491539589873033142699399640533938726995795254263600189215835793218646661118060110690203987304643724470778392758396907184118699867991539036869866635503174665436677734884315687206965997635395746248330309694451884640963090544715842555911197754113175585693845462340872360580749644464937277699795573311576423548340664082481637058817398865466865988111195835005111898582521320089033811147182005599365499633266671462500590467373094806387053113219468180898719807093044450125582244950505283975901198515726017932402859112184787801222306382529042729111016307010216565732484692046386555840326206411944448234996607686305645439372469423013462043912446827958736619391354922133126281887585136144671950871527621403303562333435387913470381809479217660877683291162254301689016071161820474156121140051801301451509335896420133556695958190581568853476516936273356963351625608334259308141333339142780753276945695237273179824889462969164564857904143840831970544129858235527014828058315693303937058952374142570946565272305563786181860484492852707446933947362484671506703116575764043922871250911556378066148064825686091646992124261350780191531877546992286751793800227258865447211203871503179856528426461327390282514961370484996276112685183085486482084694339358143677131211619959744143747279818961036970136771875834009544906170829560121896327484139637287881352670280986957171369157248851733151788311811893128964762604758078349817010858039018653496961851095841959693812723315088047068355119696113767920877065189278413973636816590914485389259950845965583949887655337621931637821993775191479738740423163724760529187741552928013473613301489985145226664081548337106092826688448804835385939926261271249383036386202525607344516036884565349902728228437594952721594428761387651494509639709375539612660561563869784901983704217108834076557700588452125172494330251480674309108952616107689777616778546087477754385947014134304058338781905276437037963210055695236614621006771975518993888929484018425828238741078499828150643325489429899396087700602656506012932336473963532374610158154537559678843969781298481558416119560863786758136850467112438694534397061228744494262429745998534310211239033668496520587711905273040107943508881676320223717923478377741979131844578750369962407922879695641083458397267471807085053945553082952744401915753421861782986480445574920950854936293875091869312457250850306122091427357572209246268585635385284966183446111889475990374400384622677772967408668581407214111696965145504201785681142876637951283212066308917699710064599911786467305894776491566155150067736725825803820330281133899270963970635963579953529029637813617063070356807615379382386514417770322061446785604014109579837770504026459811515046269618607392490497204808838030365469993770357832036318494867545216200470375139186048456049596275895198525526698657225556479694801776241558732224052650384559824449211382272534006518460232583764243625213358068906009898650664535456155727974211431509862690292764876915328047249293875205176534555611476676514270070770737965490833244420185623728460674091695787334368236292821056346715011887910194073216033980228406322104663428059479611841781883709633864571232603578030382629725678439962444244759510450505973841303297720042160763282392624925283867540717735980584183315189109610068884718025023577184435595516982765684237554971039477264819626408997306231001599803266772065918740236100046176466654933168853375688343610552535543311146778908877412579630711920213431088685467807167263128214511009166062518732761178853955984618988105336171955671256453390094816479179253467387226215511162215394151942401507482445358141777868195714634653139284339513531714927222715667023772516523620492162085908892893959797635744167233660096400247299804093756369781321461082023575409695646037500345027939775075940888428777632729985324425680378883880971905246494133598846975174028613675214926720200935190646618604901558358924608389284763053530655499861616254777977481761037792870639276817524732806936799628609455994966694187999832519630053959981900730728562449762294892993683993637982644980966957406272192377156501899757445529993316810322832353237082054771503958219792837456040102999679583087051332189566661472209520101167767649678446905288425370646831788036077118110546270978602817867225186128346353192227560590942387548851679999713069706164065371262514129603518458107772863303409325317664399722927171074134476512849564030296682865580936982694567207628382182112825938070017069795638332827083770405454362312305689488154618035074719249862853854576967250969237221341581180599758560327614022696867183797406521780837461298012697981185481932110203126005960757840224692096494736660586811520007116126291280391358912087226576659375854659328157874056123781797793290066875313330318385392496553168527052481526660666743034565642518175131716771246635892001069861779214099287006875346424198878801963733615930318372320529653155962980315307808001659142600687711559709153013667538951658813372276378957196065617564743992002416546432356905897903578786088828051445874253631198018026579510344849698537126479361549190008883340799100106475559163397106854686768427897741140491287916842064203511536456635102142610361384693983945714993752443268926349177118935621781379335205884948817459867735595184475202835236112853351088521320582098019739918532987549909991122260082985592788089566933046462414237919196324100831601598530512155126497333468196561525806855826619860418157486119304101712287891262800969682656412262846128874018099012179634994325372513542298616762089426594094471526705395976333494953502301170530881413161656115620946942436130421472579509660584028637337658324401930603118760080552814853737848810682412666101198547252319893010277281049694784697826286635675181731329790197617547639662111448411049877293109206725557019765851077719215438299948092834462517923885796182511278458159389035305469673498057692118090125169732364621023276317383882594480864459874854412131902647273295715479152118789622415932403241920694473568249669538093311846474349825944799682906779165012859893771942809290249836613746521742411552005328745143667785709425114831309684676554758432528384267183958364162572102535226186016910433338984765737836558927109134232066221435889263557725893953759902930274872461316616152892769452065640614606401785809391182505725430407559384534208277290570064292919456101141650065593136860453384493878087513000261077953841835262925124593749690505895505236780238508267153490119566042782605025572430874915616396989623298541524200961957224196619118862275363674692443008570721929630086230041890685232673390414320016337118863654950650818028373712163827890797603753989577496974799947928045574384948671982728637969662134168053694215800508790396889695135846669181069869696117802761035577838230336665956479682913852137941630758202250919331945620000188876685675822369466347165559928299205969023367997415921320676531086960485155062804241760257760709068976722005808946026598345761646293638350974706055900303844775020407598234424615734971482730106577343592290341225571503064907306079897500030349170367444503575572186104164817393378201984823764366938939534215683340103431661484397491947963611866935124285803509118742836263070696726590945095207151618140930027174606292921700148429551524164565339743137378643051251742316857333414283136645702279704185423377150871727487758681296958034922904066686187286244636732431042738754647993918469316063166300588311351275403137988827213735939061111025330380301559569392548395631967279500244190356054440058067552672964529063430191858200179786236168917329231770790733267329560611452975762086960424827373916988757115740783339589590033340286659373462723265784743411121650775979259882922670051723532832205454014926756070568998404959711161792722358413459363306629505560425682523848909836459375273504569057107584229744352341947182148629739907037484063633273681022311674592572365169888368325118543953552608155451683330464327615677765333506269565100333599865269092182146939453647407763818563024935950613779841531703804656859241279858256711576741423579449454068987940272388165330729536576745696890839749238576996468012198789419524371789623058845259935794515512979700721550200600363027119644585998813980376291228080461263524931699093214273299666228879277356008857557694425028849041859364577190080378843758015677758885685331949315710051613250809719627528962341789716875748132438548795945953402851000172768185913676679507412710662789478664087878248707008112861403914416769046563748574490131845075010304704789221221461235004063275412681155357570362334954833100345104817946797160799775164249712337585066784832912290031106348300924550590044509390953594839514173492531440309672668886843610890709545862737059611209550245298725172316926627972371040515755159429696786513118262782736844767683967405327461680728815236585924527883634667714783428855481778907878183710082806182929370837492664041106921066318759627378955961267826883456239300757540250321879179475397926350076873881312112717281976440550321709303250742879197991603510181490439172277029767322462489889158888401671860498392815936359006373401356537998173190114846842710742116168360332449129467145022631362227508516328489050154737460998212667123221110280287033385932242083773132042397208002433494498565276162065177297140343662257425354662165248759949324148184950697594409149770006965479514223444095523415075428063408234127081477713536911955674791663654481580669908169212143758605362389762166789950891302045381788107232678091068511617192663677885601486003337722173241915448898266167398776523740325161373466097962300053069525660425642785029931514021507710177550999833503476626622021532643778748392648445457559598084769675473612256665343052467656843589473262936549645702015154788855750077993071627582745506765484343299567447065600750351807804014037843858577171634214456419599791237607079144156466107131612662106868700830429216505970462529321991316117758249658006865574442572625968295835680629429737826782230863168782019186259001175084882642895833329258915121154238505405597838422987951102843567182079039911469929037339838020916849448926088715579725376176671544711352826983290195436052850452199749551187393717942369668698841937691645904462862025615021458942326424417354640497150639444698659584227277737154847017931948000716596057510640269141503073310476703383906205336432731962250308252569655404983136820872393656487292073153947016799906798419212854830886793051702999472808121820939034257876101145201222390616992753780333095356886453777935652330008780464430813366224863925532543476877782935715402315044604321559493476973954895934422710644836690074729326365705859763928390423583437229927902687519650503783641656447310814672153318150438247059985474096817030486773588309117618387514587065028589021706290085675503330943473875811247368665029424352781306871937638365405233698915904836084202650521695417501426692734265680174374729866564249632084179432289144671294610909977040462846337509906085567721067630446754353498755232319628074998476161532940334266998065143030776434531319468593925395335265386205858136616176186430991884819144857516980014955149032549043691017691642642349816802170314545934411845003468345764331506711365749907350793371786579532250084930875296919353816429113059506907614984487743067392418385566279540228840873673847864913055042173503359854413239955759212926141949967015777238513085347455555023689780085388405964506112690396157483121083581831402507097839499282731377814553058258651729091668748755909692163635053779224163655971579839951137736796399137303060136487974956589763290687650754693384327384545943784918569409940812105782484502244143867303238842600010585467371264914910989984697406353517595510774917610230481198230446079286323933027502360119150662439805033291461965023226346309018142224192455141311467227822174159470256590839207265373984956471613322511092696502124007837041331384935906417731471599499704459267455054438216920139345535278530502638972399321056926678893962216416098425822342016282728253278636733430408659450870396404443762691189608198175680610449353029246037013588165767817558556441178748912326803223113029643047253773956902982232149725499333969294119422723843535980647212137678757125050817795975821458327385700272417618515580683358679476688306104108573138361775500721473546075745748066119739339029252080924124322825630154405997642891441277931392272867320786009109649992529006607236669140424925602235157774248818796851424884368497827240964407258063294801407259894903784125212639740022414915768395452342093525335163718092006078820638181597325614412877209568869936279408116994812274423942813767714134301137911234166781330922563717643317138868107882243617320264842300175038218321390662653240500941362769931487340687518820870353845935750296980432186866856279458817909497341358543055183961528818972753551800627404839158892683262873988267041252865417687558851766554552978102582759901403276313927960265884050995163667864038997434081061255754387967399185200877255741597460206882219182641523471517075972971338185447038991218988880191280331965241662413497447695977128136783803219630672604323162920066469333563654745270227568089950523793481149537703604082881658916410206501397626073361086493369723523504033912733967379008424122848584779510656273865686867448992586860681717440091481214627235576800637026519940251186404715809270682338619520548542399322326712799882292555007187940685487900774300025673377169859343879667726958924093344822308038992473425931709218797039224433013313559955933971325217591410713184070418506850452788636414096463938022347714264964250781928376861367765587113809514992907186466943768240541428903746000349750603484260212310715406510949352267000174085337492791828559062313374570919539638746471178301398521419820911191429393746617052967748465467656853247184286017567554287669516098731777090781383331057868498153881251249288081750514404671690097295303264803752208274110197760539367877944547047778038222660531174970090967121605433322889850048933563118317280513200054177894871519446285560930431856102157825175128845939871466393151303221463070530470765031291910451290258107486651384470757868408006096067041738948750701949920724229346760648290320385706993590323926635786204350196032310967372205565197556830295521505250851413177458422266008238404377266722597701897954617939199329426263428554012281845886681905342588284915460071008502051844112819671204445062111337796516827505501249198182416239706047670680142768075103053115567106794031332839229391176641041470824333608917130993788475166408956573785285587997729724543954125258139803352464458850426245662952758421911410283136274474503564804065126552343425463116577538502448727566060485456716249273285894018560131983565544479433057867688368555898425529448120636143638174599002358322030298363480272698784665780449289010015679949271704727419273532595896778998563411033297143134125086811363541057992367491613779487452575298047179521432783314824549373370740508724309888251166310442623053172923473582982806463194907803701248775251105000228440063101654841425467949232613079838794022961210770029192994702820569538522840726878384897419890573983222888274876993310424528613896017030680524113719264755487650425878634679763484372809255786229024676863542977908488655985330204766483747599009534491167686046065694125809286874088519281053820274313869675413818839831841954584713134799389457040779509663273219309963716435625688342459044949944029684205278602242932549623945861897096278370754568748806964429114038243231297168806367530537497641867248020640394167148294368292727019566000086301792591174562193843190267306362307761898285490091233469422772735038970285098789429387263985571795109427707475500373867741951790684521865338227928165248144879782526903866208212286998354936132525526743744100500826230296335477555441522951469633834823856375318740203586985047019191363252722386812297216381134286788470719365867020690132172706056064658875675059530221754673764706663037854693523739930425642846468257526163186713480508092111150320218624865439249367564034318890089160821659461669002615453466987888743239409883171155117237644233294295948041058465382669840513846172818512128773725651307300347555770595275494200452724398875142464429722435399519022253172805834767371196595115659766009017247632093153770645490331800352583286578055514994843727650173200340357168890934053119173034144290669461498535405920334485279040813583972998371275094594392007391554509302587236574561949806680091323973982065223462782162208097786584975250437967248254615729620214024000989356758284923236113401853272129123872717866127460276787419625122921217585417477087421450892768280433706107424438693825641286858309625861812839060084683984903269690954721243333918145393148233214037174186783383802950326993601382533487494571182299460276664929838793162997939918740730187570024536516327452770809426463863749443368668721203073910624057809117404913846197002339353044540378362844369186683436249617050875152453549552093461195640584037466383037506603413294059654481036727969876078052743621850852034518073159352695599317585286398047939270475778387739243638495150130887694942658233062339227615924244823773922823099948974216834733979494349359499499999065322565241221823142719262649958469516927115597948139370577134288076416885147249659337028629220830546005901304111085639567956003412335232796696456176025842128750381649522164727600404532931548664841193760299848032119004172561152569984757618638037205489393556112688041423117560785534374702417382256061478008290987696028423094066977568395798656366336072908476032692099761621200273705400782761404225313638630399997525492698358464628931745117000379776153357593634263049783504534210772178135601050860606169149041570423265747943078998272081491539024527926976184217289412527334241123526599241869801108393330662902158256923021413376039074323683309876487624743199310938734791097841980284191956505103124488103057894143904979884897214250731718314618696082533856330669623749678249902061825013363741273761839952363181118968929900007717761999085051379755101965582870066833988479712300164593774062336824065561526811195317769148586751343711210137066165885138994755000976424664818819500504850918743169115089992935655758562386021796111331301315266258290201880959491396387758685354610055999666056429812459285353462419255740563401500960981882095408654849801427998925102766694943821780366802645982537225686770293817160861700260249571600792172159128972545899947387025484327441669443324450127321375276721555028883534509082967441975057013706025456146073243425548200662527298420145831545336304331267826845979745669557513262138641236717501038448752169617107917312900662372972005627606253250691288366615091293714147170009073927784551054597946886075090607796098815625319604887363159333095608682286238491703127218888129754527854532463103539279721463281005827294597440727702092385909730610812972747003541790355123030645463197871261392311470518813439190100578304959967394847040760851892445724047428101742260235208407794165504834491317977176992781336036088819008181008650806834096002640199593837064056265946050770287365740577272523686134360244027990524705994269928866734174809913865690532934954765108184105220646129409492881342707851197811201627619470955661729675546638093505914290229473056204309768623933566347642147201369061189825878597419506583996490552691139719111248560478944541945385329017298722654382526628162676508645692281212228802608260722257353756061018693864015237092746294821310983085986600042309601168737105405464985164652065226060547608599102298304543363469192785580740164971822650837089741739322532095124597286073289420261851946185658491018632669416827062500827379817302228861392644806908858103307357116331656333768267200914150231182880944999512666856949030604026315455479369108838283072572424421445761655194065508158397943598049018124085296903328833549593998369748483585937678639945484444244716378685419424990145467185569063813122313697287258332752232734595179919927078121158709215210960658108977001508302161492084088097922568344088372217101424532043172585151759513279914337923482172032750881748074478397594153596056725315582657457603018711011983823709003941683343525418978930208637350821961690437229239178807367853156019543218052738192335811393209055079229129794875950444324023526020697184670059274583773691671513894223769672367868829128232453694676597798626252022120811151575565090573479336169957031592243766843040807405451469131885213633284106787589554445721992523114702226822791594045922310270300463640535042034866323715054016654150602259639797495261088110803408498969154839246471974168692040310882589390462035254938268974030642069190910370006310103066113493293066017435254035007286239729702016686194436069286804887952680100244146343931722341426188899386926196862036507374641165915706752441212947238307821321031440199557809399291969818449616244930517543733635110123724940930857549704546386470913427907010788437685483962569187994885724002604194742542475764866122389479616947707344610404419334354224688216175107735678990750359131595947675680869368178168310880997424082002352876402105308661886455902001378993889819508195349870840040802631463721503020496815484473624880250160442988862223775672828853392065056007239053020752059529528417546818127853419358566740036993995886805270513935615872086946561686470248185644811765727303727985084847889194311727036350862344168106742071954938731510724403083425079285004741778853817009844744490019037413774245010943545070807994616568980892395531046052191631924489310838985486543601824685288663375828500311340752669059099213827961050639173181049011768381180753195878653269713174412162608631882682692959834393679038983909657118340143119879847588449876463627598549649370160096253419592622224219305201612823007103039818599778081260162116607611880484098965910756671936430982924859301071828657356260425455838488779966723538245914122779077732323663412206943509781716469234791256715520692846002631771734696921027474551126670173262329243091866639934928773821164379656055200334809676619185667265706622116904318975148284479421061791196342838186692126725244079107655948466784884806135159168011504576369883073152639171648888712213914682937047133752634015051467147099690706240295373939694721430040110135640516523441229471019966921414584679883161958048516399120245806271374118356412083709665362188484325283179936541716504341142410284852764247485873586405126253573747032448779792381130950579902481239373906582283530265640433689387830067964787721399005223473916959237487741552303589727060691646852488735656283323111198892752638834263631343873244930126099838369512074438755223535960951903076768277798958104512214671269293574900494268289873531732078199906367079495801661023429678647616272162933287724048877235408969146384528374309830171808534177931115448682187664688241193080927347384622106838708234336499617545035215329011905661197111211933066876521445933829771085286683222734651728094352668411606114310206008566788831797207240669103572477419972332837654361756630326990977877766881181724192542781702722591155550510714232075334626072636844347055346327881985663373338495337305078099016838214268849312601010500004513907505479954385044803105053671598341833580882721960001907851867050714066929081037939671497289326556620621234677193408900403727308132203954199526506625284166268650833550559459166605179633027123561999135738742429651013402004319703864290753228329060432700409502056842264535298483594887771395552906902001959496240235779111024975481201182127630232345002588978509110909035841429141790062576936770621581684839355341219123028412206389275832650253939376899421823417593424702183427135017808221041942304013221349775897309566600907776025814867707688275334615533493973396846173994199826761651700020568994856472371203062414288658318948923671202572480592528530037297354006591157904808053536980388095187325063726619724594110210958438334121208047398529298041555956885610547641708542468043196339073327444265371361292611531955521719598674131593533364553597155163918320331118985556588030512055847342226928439033021226279057746058186488542471658437868481233761050110307808483621443439548902516746081567743513201281225487638637992165357731054683947084556600589805775808837358314640904200942329171310841622746109520523588382047210030833672799476134726113104123097151692628412748710142988907914620144133627184946222899154450026049326894706234572297245305321672327091777984402766693862637935675743994915092631234509020933401241477677925040659174661520569784811501102924949766363845958330471627523123662244876665184417773416708794339556214787852509388207905040736505783696353769925858503390680839068560594290754393565281777641520081047978382065660282096744731733326746932350704853395324651372035393861471472352213994575846819293490794239961715152486271623607077607426862298829689768954815095319324215717471195080036111259269761877647401561389665073667128176352703065232211908277551207957425327810236435136472849193846096324641615246530207876536704260501226994897436554541713775821003942380046175782395853214460631166013810949689349943117231892485605913366215897961309145257515409544549757817396646155665378610571115910156814326484410506054813440351384098787297084639354589262999168212636967427897449369350422374486646969018779630280943388676811663016683309882262881392617978587622722386378547143822538378606731187951719357622898834984826898608131739553211273425004910838433764988071790958649490023261920273321057989579257794403456203809053569663041573014286043671936272533968869627793261774585416045582634640051489718220885711508423730450353811478768164843628869715941753844948436655057467503312431581773722570984736263742282522415964001097812487978617208810019826661115782293977799917422699957212575345414664989162405053563705885082098516446877634521345721036191459040281540920879717674883130364204176265451824319842697919249332671474287098682282002936225698613981182283373547096648936460549985478269243945963464663875284969977120531334074218267242056413203787406256611316249921681752571532168575901360631460993321290689033671263405950799799224238307301713557614201888220738153880618397432218136365100704296741164749117976968362296048364365463340120763924606167273782423662480532144417496101785235412179372779914582377600615165294426871574795382581198190839789551386793046119844696634245597005244033956834274722758194587422815322048217456421872476744358421409920527754203367907284063644424128416136195449545470079827928859759543700223474236037513875172797902411946102919139258799439377255762887404515520112164102258916478128921732080699001950918132776884791519878765985136210130051361754723535951388921388060091235532686153573772330878860285654812832828137463405300471382154051302040777884752473740171922265576309871908136885123606648389486976452360630678167350709218872662689106646755690339415810635631064111635001993494040730284439867679172265439383805735625447863159315423871919717250129386788143325440150784697900878754434425965855135349946855775073959045478556910936138403464912514501505830333536022205574602525678736214399249123764031363511160102284605274789302844676100264077279537388967594607093308684311242418451463130248735039670377508364842717353046244481873304992490560894751920424642517142474906516036129448821894968815677554789352144607363444833267753889624228443928693616240377871112886192861657850043964944928453192064657676794928734226178509372859167686613660439158531129934267423385202058776540573676699072352614035176815797069428088548829003494426053712544614030792507572347636440779273754320001294633900280447424392325930883052872745047899273359555028595808523489447876337598013076467012243693352520457512088718734091409773367490985446318952222923304155317900771120310757879333676902271205172916331141392854409531299082426835169913264333629735706332901602238453378529864421312499577538579247971309791039618844263789344863116853506747188754615579565575063854416222187811476175515129260404188637981408471386555150362824225384956543156350923719691133440857439578455714281467007798548920853537846969393470766217736383450316511797547860595549359225573144890776717908973413402753998567449127243390017235270510208375127357928407201897411450519459715619702589570933804175825605363180042013592755803336719477826370750557629495880817768054953105856359183467114892110315706806098115056194330790796456309881641957226954884629991852376445398637279261544273568842093130043792586503131267589651598392798979022931267104255299431918797084229786770825384681301619835693428552775135920233890245577069424244147233272547461700904824478612150321233574503150037881111082226777732499766775036961282059202195500419783740621209683803077650463798129595329191523991749323593450018313934615171639708018061226318304017712901948521421633903773162359137389319615509242681718560549798649427626257617969231341075419927308448065525772710359408350703235481439293117378371349298735169393641562773301692261172730085310126101980225143326205277295638568346098360649632290529799384946842306461184879895543397345618770656022834619608393369109010060659783351902885204565463625927189186498011939114519631947682647988016283374894573746203315377836168389969444356852821779341978276823509997268392095157972271995472269441297934714363224045245512084338740853443289982789048641230796081965660956042918597846874060635785175237889389309381639611723310725940220688747250010971297522983177443581798130402060839841970779845230895137832738457752864852189674834182366518349049649240887797751046311493363547333312541966198983736017164287079653851561830468195656954601228372885319619226933220307937445464413632087494814620177269045041519562089778368592590400940169141990020657432402440877092834395507977717429400820252506843068307803565801944455991284991544070747114430034090715560401498837165826734180286360579576635209708889083427021540838146321721398303152311267631646869130339683731274822162150995811306560178876542045541932837890015485247580047476305278732566821069523380066654201295440790411894183498058746325198549725079275869118872362662764915033973043492716797063159707089293109057903373346197862387146934641686525444089162241516866482552218436993614163060030711440206166904419968554262439945008187450844728054018191526845675736814540950523957009161494416796713176564263931042604137737409525022198196829894117132679060069038568124330400224509717813077737457822911587221705618606474694806954623656301689474911286049925023697133045494955723395454523323197541273377468117991083159024496346363822168985079773689073502293191187025318452185874357955584436119281226540160979930981605984181474839132042957214874640212276034570875653140288084367097463418666594530126802532562509138236750534128649868002063412403270067398481856494645602246795350720753814657613655206800729122630694784096642924481582194594665324319137750056963309372713671532212141722857784816840282534767650793249968543142155406190180709650797851484124893753581672478961461347181505603462738188419388731227979123975463620504307300665594843765215067519680940097836336515227418246701873607846893727237703657181152465857696709189305777526974167110130645789885719172037889535454339996663965238044596404363379423458805201230107291754583401186194885855781425987825301535843190016884531507067539077611588185938801000193457042655289363578779636893440905059938214982359693200106726346248705739377802434632537528505344828039830878436003469916695182333155227676351024742443784698985135916943477816822474566541853171509931813546151904054857243113525966867920185945596731891636088045654273389931182986659410487362361246967158514469007042965830494446286679349857719229784523820809770854791655571384145875823014184851953591068441868218117851244067920459297723211441801964527448205461204597018762911708567692421353753106450061656485398146749906264557149089444049162318331192066070524123592916542760196295907466317594873671436703058062707237367927817816424622437824677829455966625571618789322778157857207070803752621872392904604883722132666368697776579648423145467847666373208961957718109217191890102197023015382197159205375497202231094723955905958587691633927683729301246022353708639950772739998650369936808331881013666385740293541318367358043704164958755995547144714182980459254570880799421013557194685584736468102753471805825464225554061154567153253933709224436563690588431058702571947226170543011331879043209132661623901313953929058684759086138881333685952235391602103850047579586938207767723067362745980335511825613964181050072870926639970714430361661243967304988816568679180002012930905796048969699853136388010524933137298966368063947741476990760581182803183016873293619554790403547516052136156941966662638957401493020229318656316780085372581636086061360914981997132870787805610783344902005411346215934414319306863087478547981566346805570358825771024887736884152571409161540594121176505786147683333449926383333806298669239056281411302768356615501221119542358459394263617805772517010222258559180778976412086306474333380080601695957465826157446326204264741250550940545952987648800501775519290133040103813489595125537756774577254682136509944343086427286249837541557272860601865658854791662807974316161518760913249189569477150756659246871880420126657870128265961310835914345005228696515526959311534539794978635078049173643252005406893392605889539630517237542062324052019287236500726372543179316929831545190297198183968058206470584247155089014032423843329090193741554836034302042684915907688698092301600959498566601914621635821563698488804127199857307865905796141002949373963899004722756494650767297860374544280913439274038010051861469631431164457089333325021829657398310340002120989391958192598237511252414435563731632532345193897359595162397189023157949963275182077444567473709618900662662255544866610051880114216718178804548564324226087233591845566415319038254743684106644473587654436624597851351995803714541351455699236265294905102617282552666128416978033032133419364123827843891524941607164061672914407381318249345076214744694471673457301508320016331781861397202169040959903782907051225464766388671557587751889947849177261878645592490261391354082566654211901993368861565386274850709222936077594860391818278520398465876131850381940695449691910244597882284196157481947344149374879095931247170666446687198530563468492653815242170825186801429734424845127291314843488039329895149071169590524357785536307048980637729034538571307003475022437714309889714859571242862714429880022073185581618412813284809039597195855834807006547195417864124762997441972014068290449465840858865176754649895909016995412186354749420219625603221643348980754271521792549588976955252902695176111678500553537082259508473261917477341980027756836250493435249099622117833542103410154771422304042880537830772819167598791080362799495346095858969522650007168563777240266401854530228524308433157486064150074244328466520483636532611053137526593883082172991943165101852697765263349684442333265414941532346470434897629213408879988433319266403954250073935665191400807126931686972806700002855103053452734564595591723662187111200898668747096459283032573914397501233054960598599400651678010040610627418997677778482767061950543232022532959933077766606321435806216494838206909809839289145771825627452252494610704172232866978001498784621839317026395820048695163155707933077351478082932859813806542384773538816757720069620994669890102994268176124835508179875097804198787921773507441062503101950883658239886542226347135769127423592215920502121928970222343368025618211920573976651750418707569949084064142544418685825037515208733341188111926371418698688654511297348848305034038925146027772819820331093972479030254168257472594360178422973635346494340352908274541831903949796500575236864229941377573891499873124930168992619757346874802913325005529283942678193173660290805440042193549718233186947722833835169015913479958228448727956509123412266841949152541570462930283271815322616715035340366388628618195986182732878042235076440340867983556887984684850345161720335578866284474913599885564383072298844658470705014499189998826467918775224630405976185932897111452184488907170457558399727794371508989917664674189232553364737606170289590357762960689938418992246480257736264196708543080517390866733451881128547083635731803521308991424545804208879854175085445115433325905455755920820477509010685990712741557652573849680007819665532540712447043212203939507382988207004982707825215442723682826525479474503735054432267395551663816391692378549279272504192438706978143193785228868321851587901833581440984911674972724188475717133450470094184488504548392802871527583986654658453039586944190870144063140119133688169702959693432183765045640897228386583410642324981175477245294055219661420039211395803928624574216985171230686101762593594689097950321149251587559173412087949893406977492690927085691080714862943749949185019295287664385972625791568057583108715308112693096694965718784155353940099738692457399906759204502297305809807052157701340493815671941825471529818968822964613599145960911632653453010838442581231550411539746474641589963871158774437893913181453019451464505084088166120490064992106648204240121643715627520089544571753697793839723376579981053654018656610705051235314203268100721426483480165554822470652597058068954250191392863318367073741646383719281451196092339923568696457352304546997064681956598650924116749326301137732450963488095028064391997341526296434862517406875487319761153432946187899840903717390198448374374296675364546685139737326179763101845139081580900640485921400742255095996700371527264010783822390737652854479061503228231379437340181102856093848620070482070432833666823959719612868377597841445027891733799372706547703252902351983328290740223340915612053085997823108706254091193171791395029900406800146922260779012418730347429984438970180152237098703238406364160227220305582518681840913626364307260915797987192620276607402847841327243739664460744491572400713349991652920637776703344713234582695216092766891263089470758962839019440687400147436435679410837615570723251260686761155442970719599537280421565409762790691249660878606060413411359510660387683577819807389085143289742948595236597871200880158073684152149528893959430489698696671656995740850386837045618015566354831267294582191936120004032555543767040332627957945463963463058444514814804521801599402880651879453447646258832015012710618501976983679594042652406595026460074427661656646277018673524884112455893612355924801630528329915208412972184936421450549452643552544949028848340726200635128599178102756759598320908060040301123290876911599690052230968552777991093713670855163608917078521006982362125797425029672593176974189793287717608539098758015656129985060866876008059001783033009944688094728841866787759751698419827633934960191448854586972052104501070174454503038264375974184165647971673574496655815857526935578307650537358308383406286063443640362554606121785745533070888417788062332292582091933313593996728126203156334702214510498639297511924998174867322190442185424117259495096150419763207350137954769537125934438416859497868875302522356283481595741119399862508166386945714247364988114861459152559871757256192033269315207637289226037866085789022444066401996002098597441098082657498303011903311593512699458888075094973124621602985844641925550325998521659127035393976422823368009930855203588163479218332100017724915386864797787953082741574527682388915020890830287705716706281952578302476122674954228892020431136114052086907882317751150703534299713631571449500633592414374946411063620981469614229377419493568816755894969016545992439229275352709919361763682351445626891853790361469009533398061637669746519427708252554997064368246154111121533083191304620639726041943136597584467741737264162579956327009961461030701283222096412327833431166039141375407955911391551403638910030164802973238724113203230572422308452865763034842452648838377411485174369520922700995337182879290477186338542215055881194081217510225167226630277931991811789332467241727144772487584171344585625621698399099338744826300017869503124126601401580483048136874935981531693974889077986277474972094205081047397908926147607998966867527899546121924308083272511104326936057089049424970623646261887430266318093000398371660232945816171994576159054124414668633172388612180999441448928082670585336417505965086152852640338872395309370245754078009311900604439207767697926180504560893372835119712804648243123820881652884887674774702035505977704498213916563557381287298705612092372546038189250411092028030237095174998246562977053886866859002792182847291006142608015018662199380670758127301076916426654880846060267824593732605642269227113918424179140356229559345209267348586213611900543000069086865371577068191629052958583101772768081299562637708833143510637745510200725004206054717638142941298073177141434969681144099789248765251026599448475483577256547429262919302987529585103981750768002256367526442805186529058371578148013406660917112787144591757319759873413213709889793032069264810417977974282059135086749158838623737222482972711907593663761568851732293935732589569895451155347786521260106840171086152053094596323678510693029753390408554459626981216554631085152786173616491159979547739840478446157139287234397215165211992457316288295585214680015357177155273492592853430081072893623315283011334728797915285791975021475035684208996909386482639952902825344418351817380126786031526680512095290210443390903978887220111312474271094462343327384263207505997200220782611482719875544102615239770462209647603519010344104640881468890750876642718509191897711668096270119389917967189125915878028959865860042962599544830991141720107267850561978908288695700901726836166001087933782755235491246426519132059380565136596978526689133541061803599775598330540052168763698714801230143250192847871056842780003379273741286684885357942108447631369791051033965886071951182247645255332827252302747157852479847080550493656630270999351081676940736362813626515562697591968143517423597593975940995483068798132157472428167453730246565276048467880644898128125163925407074482827760727443252448232200314740096874213548955051135478276914895489162297112688278961387083833855780831698085612712270712024510238669335961336476907893646639140857087801439354939199510972096612284467688431832072761476882358869233151536347529386200279218171669519821024792195738116111478342547276205008504014117265608605870908312602321546308159443739213347868782563821235530192554184068024651217738451656958889197971122377076788959427971566447341992605299046619144621745958442842380892923387249512371739559316753945519360822169125976743549702714987021555888723296223828432672515239328567677048830348391932901426313292917004977128606977292984526906842250175856653906949826387869526898504272084505644263758440112148358270538553141644581943205231144220155067035678267132471131463630965490469550781182199731811573085610495141255463763905819988131944837809766658138349891381642717669773312656429990739313640497605992424480639752590151959386238851038242294162511155416970222672227651563282875025285463162434327333060541876172337872608754481853281243377753185389434617343016872837503682501895664634470180223859033648403612679473950770012273144122755843643918804609671055578509576773946564136750197646805497649569472419584559752447373164064516781472365456126638430866931604066086626194187525702869476810586320030905679732921322816948025977478017165841365615916085658516913059006410139097704394583689872937657547388447428123231015384788344389338029280394289030785538420034332885243464867752120490777951964562055337158367922837023923570446571461473226358213220809373737411206333080861142621890967234856673716226843700159680124998479864353032433801069368368269907580439480034180311162360167728789686045934323761915962611621934273952751039473937368611033249096718132709997484633900067162885210460228687277941105500733058740032262085050300587114362351021385544108430510961643748590089335982893587183133290171290876701881058531962393976920804379546689978302902958960416732607894412031134348238328773314999650382876069712362387963064023351585122359277029435690283957260332264142930423930647861138374787770901793114610364118440112503002405720351990451614717432013291466119828886378366475190498494280730232708029734819777401840064854542397183531015771066155041314906882084305525610159952950269858249981491499546194526503441558649701203532041659038603598202350132441120755159416771064344480668731338336091411620914957549476779390476914576565692896833655613030399073341473640504454640357539855543932453209419458494366353418804671489077505473253630351047452034391017127302974762579440708476277824172648779080718618559875371442599989996928925809461796361920708939766309525117550349058231236529619822552558386975479720437586225175753140971182633375388323756664133990691070344531147715130270904353229334186153515507076753103242148870554796913645437348468336412607672589900708764518277879169035977230740693192475937045896922138626512544864148672805689509826639256743144958659306121547356372513148023134744613045523775253835650492621179867165680821077681673850779035648819231267090035691758212500874723759312506862174139016520972870917566363206599192815878439935454662148148644667698989511674708794119230434617524634319235765318488115166476611529861932082017586407958200861332612262216336045292897011861099194118930595396302413845472312891977040221529269891008504990247567707507234108337873752102109887027473616665200999783217940260484329907720826955122142037842208033932576568181726654691274462744609137627321660896192094640412974754670099378558272804792168927079483963649748079405535994105004874760688884919977603709631980744748314754695149778375650539485049359460308562648718488186841591655839482612793536677839685756715633242673617739198934530832739537281102366539942239326668929628200901566775790266128067495305737099626832233980521441860224497706268181031307381822342285044292115614149376942269417400083112903771779051370895091019288450173588392062641175606331884848745822885377008199090238535582528438630705333117950179050704028675689772752581407783182725348522938052902600006097065427013640549844656629365329254652489040405124303635001533722238020873195003487562988813420663770120836978532399476314701375813041439821026685893483470164063360304545953896929800894537430216492453506047763787988261910072952680053049891044132110642757865227702809075204855208638208623096602851040840836032663497314408446847182116049211777370954580459848213748900109016288301289315677192387927461833743907645588410718339352851521862401174458375904191581573693801849415867467533001830116415201427330731569717331517408436762680100552365833325023870753978319186479907222549092137156985702683220510438965183915009691510798202834661441919072348719993987730016002525695597109914849750945175888425216452370435907069644366153279383241195329341706113272927296116265268785890388480079676240303578773321191807368269161790558068450082799604110560774216178718896003969645462959781268299160467620804818335927744766818914356273208472922966824322460893106268351079574520841188559071684334750384923037311987565731481525712804780659269222112751249897520576039718173784200987451176211646381346129781712986575681086763805149658735604605745138325302249994644879917834681587861921004769152423560274474189872355432668243256934182429831286150997594046827529510303930091406390783037626077728199642756604288463883966231131564017400393819394862664718630987758976160892438901798432562400788247752367473065839490677504180851279324960507887953368315537976372596709254906376081190940343725057618284242684134111669713053373433076840231926011898045465206123937315107410098110812013802224127393029615597870924634979148728555532134087630782438675823727094649552423151720852252334613580481932153948345321037972396697090232106213196886697273974335943947106346865090305070724580791106879621476266926109576159822914943967013272083449854720484261791916237235466009010487849138202426706559219921528056882160191257957191846447856359176271209570063396172673032006774916105991157529544499535719789880548994663236852033953236053618046126784279147476092402430213311017868973455402942877601120530922101858728088654755381967689135294346866666353199936344479826990969952532010087361266169204110724250659521823641871313144735641300272569244777569943636402821997234885305433709961752977280382098043801756400861953049500903112472405097009571974445194804660358034480599299375170324026216758075902601673535928404419633149717154930841322172296155162878382695225213477542293077992428586400706449537289119761233145462371086231944262042951384161390597480086142111104248085789590510121869459766605645688208351037000146406210144599845588278822813186667558353350084837584572761694684861744084806183577262195232285142300909598556971637662477087175955939212621599456145550503825220710466891257879195522531001275552114035151160541430706650046480479161975989677501871446041576593845010789328062068397031531533402635699673223779700794521598025857481180934011549351252416330569520490026902087146846421754126099150789317059177704492550375068554211081018443854626933031742152336734439527628418035693323266734942667150835357208780832203202374775973818158359938726023704208109699638677496462904055187130294666307760584674565354261700204458039737605266125090462400111148322600060458782138513742089643587199926031262378361082792437965566730531644722249896025151111737873377074786227930119474008657447554861799737651627002562560537091610261750514444792000864817267431386023083030236360438593406457634389129020875308814939289052306807865232840378897659839915551519885855009471213597243448643995975447023032915459212973227787693495325490549308951025672451122889764096408728712794156575196934477808743713493925826909827874916000532869970324691229636990915977261117000905465198328582301247646972211317899276866364967318658159599813197701807186754091542651736525522245880582744397782690999836576056481019344966111082927101505498989144735330130503185634247112789382948611243937547988001264372006257470198466252103345021287273318311733572243916441777237579677689231483647640922507855158872756193687704260130294468349713749178419962719906971963756519545749418750829362456635906726461495507547711608203177198595449221307160797653230362202449430616440511396614902021951729479186540671576108857906834681514993911168137576505677548158731945272603581490001447266322731305864654210202379413830871142008817552358371445217684040530777981824148450488569104800526944168178909351267940357710383936753523501954112580182779592988353584801504907017840498595805183994911471965117214921920847442539946293780046866081865783947502466276511392281994688850502617545276442795717988060013013046034316152434919452975765753469903585622564895109007891686047275306552874888073091663196630616463640461450826080596674717308383654056330358604967199072769604690735945714981780102909672410834891400659783701573228637066047828974015545570828766660232719991598823030762118430665222293003477230505754846474188939234724854153362322464566627155600036485504932709077297780144476856251673509778589640261885518390390686603938187818368995345064686649366614513056800522996552208925699853450513473942375918672111970742132205019361195000190145352360217284611156623506793644248469078461007427377484638498471506700561010018892771075739932658074631750464149491036575378158757949903061773377712233892687556729303518501780914000698687756101276012525530259517578915878588062662343711454496882396403891407041345846177990964285849054067493968699621600378681345829672255210729679052851603237940758687907823403159624146365046043315824531761549254529363348213405040722191639675074822640169016379309877117387306389317982978353183689224169738743144644564874992244793263120908935256908974804368060321785709915098702310394837257235927468711600052822454984103815641054514899058667015403027086811493097121776728436346397789570272022551383227233097914528711425333502799222752279330788679855433969587844807525154199411948461648119741322559830123403425309339369250776748938398656566592477612425829640801851565401936592846778010985710811500527415810600132235927052992951766351006427286559915901677895271731073752801437415261424902894841581323125197352653667168193582421635179590859805990760316101470499048511136129513585174184624628858753682092100591405713886848780769639451654360371521375210627547501594677859281950107102305271793427752058312166222312606458366577857025757879609123058439734184552172566759199361914419298712704696259100241826128927226493094972105279547394487831264181926246622153933905960790096148362381306923286616611700366097393527545907963741556419805260968455189041780826768705556680292984478311352201877746830296045401447987735862592114949839516905083615937745705359111559574495459691650146308667047490576916656092777369087306970663830727990819779429999994865767235002929639856945123249451361910858812106116897598345034773888243506766530343682787841943147913576629825199127585195571491493183398964286905503541403814692244246339042426564987570457399034735607881926790540536169802158640393293732731056802207422566123774193172038145424947313793853721852804316030403180119975949252663954704434097270320392226506466368835097902699582265477801146675877976468934202690566242974382173212450607759756735501308953395272654330034418074885743544670488722555319033188289614138012988306284520797858850035525882640052909824539490122776256357844589260540637151926091772896811531836619782661487299044292864150899295022383918713083593558372405606476191087111638188497714073787295673268858613281241592544977369278556868493559063406390023696631280285350311101866996372676210275106397283312621326113852948332672310441063141334780367468948784085585993716590870197273584134399453155102582706557498264685013314639458973678193585768989206048057753816535165054371549841449625448760449554822000698353144012102205503529828098353221055794786059367208246952052278568114933001589558875415457147387614871798792266222673924526613816562326161138091737531736658669300020122119196840106878476928647285753766952075373633856752488275430765783156816199281906162436161984631584338651004826338178207670967995449173665314702367378442025866674094575884005363126111411215389212021265494365101921613320542924976539694262462987836368891138569519828957558252695393221256891701659635433342721316312083756402502226757484036925422298690028318243652559254502132538317729195453828610537989192557233921334171049277942790347961877209287420845059012752482495474861560592151337902324177860980364781034535861391813447454994448352067416702441966132863899476053589367266440927319110936392893038128008931959108536834788322715779895834232288823216545748073058128564628750284972607746045096685815510515903775464806782212616838105842549084672034082597196351105387988458234540343191719198836043399402297865310308695502082441284016571983988953404475552287124036090480261209702156611173399523056430038480991500009396629452571295514250876344696227093113572605908907356950638494088202439726567625450938620805496376410835492446707803878105766474877836347489640055127112261922428897509813674904990651850970177702412553283457303807529716749758678829543292199307413227211922538894465824922226954010218222209086583000840986799989164184531424083298990065547638924545960137544155070680288457235479731769114787072557260133298101316261725318819509055694894110549270097021139992516448260865969134817515274560352150364397858136891657460941864382648159625706956695402111577948035061631525416933852324981511437916744116607700325165857421024496960878615271304575815402678996934046540996698242387310706568158020880677335100865529304762400189428158442816728433595537451723319281809345581375897503246087503312378421816712947697821722088920542763587353233234976891429358858324044213807594047645766986883999268421056846464112213403514333429336114211319526369282855132503549088515398731002232795800019458566641751611688925701502715806457669586148863399937451525298410837228027338917404034737715497391824124420534205203039530836433829174403185066254533926156672991565933656061115726068390901879001382771597439679941378955739280998755331257131008776630404167246113210206657281073245484459706735710959754591665881086049953223628335689275745829502360763173666489633046344129416644509324661223792500864955721012435205866299483041288061246436279841971097283735651767514665828105164663890308636611799605116715009948081304485964666032293273417336613582459197635354464209905088945543952232150950366825993966835816885980333764548594305565612008430493128578856777015211501176755725614783445712629471620241752106165596822453648615446978858864060633691104275914891898200927035432166017431626080381399526919268552630256570101976392158837788122502823629451054080217616645827405620570310041021736515948198049253257837345469605494937177006455040925684217263671308027211489286908000148210088801244211806726593878482882791403597158837635813683077334711591121228668552080803756826185774215091094361226788218854724189041784522725253644790994432182327566573327492837830932237467466251595572085277374305031448296231444339418633076620971041183774994252984145412646969414243415282933590155610743885618006946394627367968576979823246309297730486689090799870499378232927705552609787098351870845677150158204288996272188961474880149554078516553452735356189410817214214508667269446700956923726727812470691390004641457978322803672303906185919259873627465933055659640256509886861062331252724333065744191196476774129509057806324604168503147006592666152363418192059342162100953112766329667806839981193882095472822676753326649037704025662724990298517138232149526729685944115736414354638920012172423491620824802720747796553489334678814237083734375751678684245879171214906043441293849647393156133119217428710277376536470549163459668003060254529392600127772431680830212675992709321988516367536340351164209213674532517159315189189213115095741314099134751470225372109536670717979295848227089914491646093370489285254643008311063384780369870717429470252416332179169277079688204053288514032097789460962606392130929862350942093215046276068682735571289322916267383786997840183777341067839976458262671690590266342390736587266439620980106433646247268052505498481721352306236523966993924531570775574816627776846350715844763615994787703259822894490323422569836804644533629211579228588363798732761655706115392473287580709203961611867775886929744794171290996234308695809725404623512264009536026196089794893544336939538622932787709728457119216962199720526184574922237277169281818027553113415419838907528746900122619716739262918807621012109290991705992063293154428694910735895147850416833975356732096663739265478795230788265300533852098165937164067347664306746694973255835207661001701286985959085909293633378473406684267166163076838950405758420310195140664566180835084510130835433828130121115299049148646819858916407146977830558029906723806402034646019789725391908650066808278793974427764537379328311515180396432029097681843811942945683460742216678125873884498616470051946812674896738392874345512160623145576356494803796891817934539930805611876037474328951360820068033157691383932269235027852530775423740195530471419340609201276765351830786279652510417926427107812141572706148069567922228405368510790461452775059195435564870769968190719781900006533311566223715968949263655032917682436399619141679543218755370438601322319713032911014421368603352390903884841410730627866914785115101768151744483336487330427297077426059074687778866438043124279045848088656793451921699345123910027373626623062672333563018897263542746673113498814911614563364872709562224863224629278676799728074161763992945241527772721708357271846384141018229827810153087775666325959598015389820830574198831027386998396306021121717205912402247060372305409479152939333155075105974229944152408983206196996864871466883524920045564940813525832726736505640813242039634892427932204251052017793060563978911662245423151982471567524439524654484434669376784598682411488386264561799582557548246517342706924823761176406001573899198041421499584478565388101327827672748886610874709104794877159500316088236679714397585833655685562953583428667227822929534051924095398143288798690530098723315065174711908504677384327498204573417866260569250711414470201837068999557215982502062165421478006461314027131577644214661447543491711535395156238248353116057756231326616057001996908123081373599306323457049060883448254500118817163715612698249309208207399456505806885196897313722244260729084729174679465565446616866356018051611378757999891096857884905950614216575572193704223544036307932762384750936519968647489837050547454611865757556292754961162857255789738580899599125575196660056757087761857893602115657137552026162693211780639124027466290461337145349962995617537510720768179241584257261306876981448191504684241817144223004670889143986403505591939122386739451744697345907788045072360734050078889083523577319275079007704121330172238314672553084252192267654300184969373763253942113079869634853024487963061036819359028324708045527310531794526855739973996517250151717465056041733082953437030423879181569847216241946719492470135393472872514626998062106328517644655712237555720457259625375256438362543010522368895621152544324291196893736900875244812669768539531383799950452754732162766869514113257405052635449168844736920503371421270699014795405009526692487327788336110228549345589895633578812235777775696690085974967331966746087764564838844250172566877294013086225125960119286297049163882880344710565647446392866512492642330098440304737480497296477715362827376682164153248987015531050733251070023855208987369432263817075728975935433477858784687348589595120765064459530156651465756916143444796530946712068765336138455556844419727560225487997125722706548679412906715787100964903847277036433337333951179324052716413399071598135177313657188801781579784527962543350947966819715646401111828760753028963586502655266313516838140222820824465433933745533242594568667239937250380023683077492893871205897454977715147883260871437822697078801729138101441150856645333419427237598004605882248372863943529997270584710984319296134621816125524562561913405514050077859967605625844511671833903082509924993829475221351806415880264688317922070040996168323646776843090012955976908298079678018831668257268624822040110751026544308425537445925618784770420232132605986865279895454203463605288561829700832572245141508715102683330628700268248946290635005918424672502743556291973160995376518091262980466236975094266042053492110272890483097893124366458899648347118275862960482209353907998679323964455438940777681901758451579038028813565485997118315943410777378014638896909290389165321158874971054042774831149190961798801866093407690093028856966137139737697529789055386928144569180307405311754135388118775962740226680096445025473214896970945071915894973305802220377689393378846811178683413058198280039596642908219006840279162509953385241345887412393898711443299136600154713423931894443778712831540857601569678210822832988503207598901442925275603285013579645751646591836551004785761418897156045829208766091641579732133933046358452327550066027273609418702427267680959065337041940395673033741232288895516617806290069351606852424298947808771546155781863630723588730600448266820604291522688802549370726881383659358971249362292774386779884912914773900313083858382763165857130187358190346684251300653514476931060348559088803904289612181035226287592747446628874924358767940246105977893078059661524776615011754853982867268326343831604737815364804554554225812492361218847984658154294048809967987919686366736046351467900996724402429721342853115938078730547901680813316006636090743621383339562733632454207852882260650148589753802472357871611200909394167344185646537458181619122714404678412625940866383669452384499657379748742171737401386905687859363679581014557073042966781088674050709880924279333876310109101385448141080982955248166992360073289869329400011867396782107196006630626495676694486365003034084504864253208108868801627264721593900505142189354223138905914464718462970595200472582694365977975426315366050723820427271108342378386334419383281514911720220494879163393380791963446355618908332931319641139332180765886085885019183920372220207811409482538206292906363916792301389826904467773277292409258604171301270521948967413331953051800364101474733632145968547194646045640123605700645819062810334844798889999695636580058944043894287612773976274945871230998700896123386417327822520328072189004288670697371696544559834587711000963012431401309739709181540393597261621845468830435218238003740124791800964757001604945155109742370467772845585715662143560901189217235702397593375338525910423360977214297044383564308667519608744410082881756319880787236680935647362183988606442601520245485013069064353212711150902144826030747045557949011957084925032759576495802145750087108821135163979377267389185585972775291182912003556066886971530478813542864264472985246036106705561250114360514353298791725244967173283027780252008771082667288310783434432957771419259103840806507676838066391278895239875916507246275248553315197345853847803564074263339997665524114032123389174068253954368783414689748334728540423272769382062312302919536921001541040718597865477861768234305135376688772152140687999885887144840113673479662031377647526485658897501667414961780744200485232998835624389553918573551874586493793728150226407181649274110947266019100440641969395918943870472140914864792546325415313646820533915302645557769039030772526541984746001308909697022648232313735499149483660320929365946298266264239487036741439441096556879441781309823821694851510189155682495452672678936994948427317488638891969406839258114905255539566570727975238054572383684769655031180578899337118041511155843841274784342635636608986555256612919315388380131443559485689699221214298589657715989290110030975069963333091889044388186643027751040367849995908568037350550404490197440897393343944030962186243992951654255151497838264123239336908271634395152643848953650576292846347426717892545740410171573617128063965221628229380912377321768404199348480812944508295295712168360746874502617918302406993309334056463394001064025504182919353185758694084561453323937133373553809462938868010369282658010421858837194028275185123439415008456515880828705283042923305446057372925839132982314059522621413851413511295799861599433403325902949775755903003999226787398864954521319389969813314981300663046249546944825453513177689132986283313792364375667073192428522735484665902740482434118942760120081503403578524569062533915029256929850787095571912893666008333724762651488134701977744345215833908063481157354797521932905031248627363815508259026313233142857483009411117703442340422660484418241823469376131407996992050559302053185588183323379269412762122919277432521950875725094966209799455154924505492164153342406842417367066724707317010750348122729154638155904209758818908804735653810897953452509247751295773859916607716651585359418947621754671232169941492965546100663942981437033478358937278595300513787435412991829978828425413968025198178163091116425576661283380275080764935711062767620718044591096438770001085955996004043435212516712706908728032858359355384071960989787167239856112351443862123831978466800514419357304013965464812427325570098047593781047358531570038875700030160210050746055063185887897684107759332651385761541764026915456476499409243185872330701981201514328636394429396631852295123140204983982431533407089841951299327206410059657358592117656250723543630495130117564523865557257118493916185853628251386382997229447411946039026502621861413837584416671181426795568337682914847739041872626650101401180692714481875414512039860474030039682116342962196560364210798777253619266523557913732589509878246441993071050211493283519051502097936437340916317112483462343265714476472278650365585006991896805132294553099817881011956683929293708789481245241704822537516687193704997493934256623055289330919560135549841088001148458118515216041746604577701037123858677391486902447948128189470432328630090520149316365508234417429081068226994030684821849794125496854368856824377192132347158820172749791332633794083014139288033953302017699379947688429127325260616751638669342962818367339389520086474693808454369048318533550882829067191485802245641838246970022746437337078750105310928223178435934631839385195987967143702501204954110977517187071192500305127760749912792269376822242446486665508157051401855587451465511883551069985388054710672643579581497347913960467248963374751181755995343079285315997361944168049526946221441549284183502910026966820761617285748242364993309532277167360826527388475482481470024649441379693160471972959320027429912103317135704226501823394720815173367893651491021069579677462463883510608291467858305170781950369008664590430573227438270901378390017380771675434693041815389356297412539527670153480192566216705397176882510638306953353361182620738652163129639868029407812638680479533190610090019517845307513889763375037203017648977099460564554629505934325603145463118781032601476579605532179379354230497505993893876927515874188289400926806582933182446336190508628067480709739402944780442981623809728831336383583273699376923160515039449849867224510535129602133216856902960403187699313681888647843181475787151728020806897596685182322435353497148168274712596315836808506202246033954699446999812659803904604192115282754179514194252719679108332494309626419678980660598024647630817217554884242389100894735847699956702803644846854829635072056845008424207658975236416112925339459100649952366999988406342426254698676514779954366528215747596482558593114489899523821323012166401874248955132047702291495517335747525794209539379325382831255753151363412588370510929987489664470445655536999324427495687709027079642451721042353645531344013473275127557783412649936745285865363810154360515208805394630000749128226438864483008035491604000235288192741562799098596579920514331627380162263424317923831846939667234666650721578040477637453629262039385959677515139404962261579881425513168667811017326359275314058227194985087180300179761231881701317014832054822006675086990576463939690674832866667276289059893198279523428146343934491549715807713757542818531827663603216060570836337359252495686562754282503998200107316205740733941744545273750223548399287883269918088527302469156692719829346429766394716351625624157013682242207744323604611384925229138846726300842928743036401937985592881199985214487840397392380281949475508138436630108603823419340145015633735267446264671390205296814488697928646573863432453340148704036894746428976155882695857402604199352918627399544056033830435326952838374073980051475561968648920407795282879985956730611065066733214140382445019793783028146816290118956917167643969046115605313082355724953013798776065218347224034271048000105809992368605996284622533250460993407952676374909313475690609506192268136982980693150041580491255951716373750605796836190988643358808624581458787634349775016252963982859849668299452438929346358345035055229209542286673297966586862797150073371005149047252271772916863617359073580528175560980409734278093598852037228051611592300055413698774691114614388603672072246548263811676718198502398930249293171123857602367652657169032747122712119347328738812681575790821951015435766248634173165950608883954715804353009799234167635641111662911266469648733361646315925526509010945721175804858637291864972355277647889788530923856180904292165281635825452029315831220822466002493897523706927097867596922406806869486147877088606447065181153703018779071116741823417029527559379184157882423729537415029219133126221552498833505753246207035874327633888541032308935595563807348949087805186490810552814264448518365242763296889895049860999795369783114068647757498387161734972261157383029762727271682029349497981551969129675383903167315571860893274104248841552527701598354444474473586563785037406337405677684837140025045300645611424407664814824309999088017180908270192596706502969059690006509441667329014032576993029952230990720428210595237937212633525956038883387387951540473144505298366440051338692659207923818549380995968777676467612392465135421864552957087629949534231208164981079454300052012382196019737883077253239829593033136976272312787671752380633011415888961031807305329426665616459163491816129414142813066324898884034357088129859965864972853538201773353255098266642035203163643489015387727593701029088517530180566166722274634394189442146849769844921613142502309541294552448494571725777456614608865094309567739465691580552528213878993911922221948845449857728973987570530584145315323010241606302575757813718367937596764839106396112098143276397954497877078547427565278785806798734128914644358453149864568395793804420728405887319257723079452484089408664519529987012898858719849823817655142688080748106181365268883844819623997950856878721332062787143645324398575870512107736592556492770484481636019350388928309914655125485393167551807390259000736602958984590960094343534589722777485535441593529528875970349186318863463987735843146389611788248445967110501458338569971067198230184219544451623183226607938746512201250131729423047658962357900811166751094710097012004958448651267759843717193106874356467622768044479704157725937877412118758426787132152261752786431112755500520927834470653008770656177292740946222605454706882187730151987785177037042844593292333545511256006977572286770540028532978422078675753371912083024173189212864351885247669141127410511188380742705948182985074962845377228663084997916436506732159861229503299601866724977840283632648790673349454327241988780018777006931147251956662505657131525213114778013570524197544152283321945680866615302514515905321654297630153544928242654825367201085389831178980670020538813118351723027900165121443552323202233265694643153267124037255061729036507211150258672921037156823530824844517710570789316926586536381923890093158701701026437132635123009945387783828735110215701873903226494102929941280763606148670585045100030001584816498276467054733874135821096237484479387756424679953814105377583113638826951624281232981096649832595744662264550566859581756176069425409933700377671484571071395276398223284409903592000586506930242871512461635435092185579962844040450195844460695629996875731004310503361427841518254954836016573159943257421523947976564454609251906359029012077554938293343375923926988269435199787296553988502751396390263033027731969410026246486397588312886618248720256782589241961282508669034308205132019725154711532540497657525835136132665586021431936533996732753467491425926852060244075485975122626406578331761313835350059720917998998616723650352515810770002376319053770577373707291204583886426642790717730725724508295546990255491410409029684164498074875097090087138117761221324903903494869553815136621709002458700849063960443534328487336961318129575268947129944607789044468810971053903635537509867507864571547562729759231459937030788702025986970214315783870082267306666507247588889671361163524379696550320017707745637070275947698673673934440600490469871838396962167901692748034910314064528403585591491339734437841318476507565462405693084626197893703661436434495708120192191525654590008963375059944106446714123688919335948064154061414084675587880942579498521130921872484442036413041923259215427367500839930362416156173913899037112821586848594826551120567812523695328757211188658881211554035571924866485270305758473323402641763644893891086692785972123401948514782517767431694303509079873223803888020041546753082386941834812580813036614528602693123982677766951786266236295074553174093363163608853679693911981028781257816005795622239728059586018621640779512349016873050886706947597685214618728431761656011867105821512789077801147425198283995173006760239540081679482959800111045920813851314177575544467610209889720322984074343195225890530162023224504875104221717469158603483920701374535314678815994889361564914832363645570024715859111634507085120610453807838981768541297554803973422103305238078922937763509071175404640719870599833643554131002465022330375096217192116381395459356487124464411242096870176919352981949526798230579443289282866842339587821000665727434496633823138779471882678296760240791308211118934061590008382950702044203151031227744906051562545716882922277115752086691887791641767926119522941954796869302476050650319018644873132484339326414227565087907956489411923915549473898659775147812101817451808082690251786368071511885034687841515979546619540353037319545642123851702490368072368108335304976977792736844588807062764407359689726928980141128446416266145686793854658146797380913770909287166435960882107211141756070046634710185535003650679757169869975488746857157896820707063260156377651705969844295906606389811395545060430173009358717495228879248787298837905624592023210870174609587613270332030376933424452415860959131462320394137009404930344921676489015867779431454961454555503979412152749276823171556399307316540004420042492494400101627474973177845240054798765238355065851267336751093972519114690808185941991844552208635746257155992103064685769702829619793373295932178352900403929063126807445481185862665469707691222877997864279747727931284918931461755035243164965229730734645435775809548474136042087704422459296598566828683415964203499387842065690471376449931066997604201138142920565829168715963741459513045659063716419004813203010937558122004897540829678907396543085263181645140402606324923450569524033459167255401782783807010389578749762120758090533430540543960575111999477314989060144187855650437615106202527042266052564299946334761998174237175785988153698593966619186677619037458315943428529872480509235794264019094703686619282408486106005823759111334794760987526991672497351746145480335743456501230755015376843819163914443279469830971052124825253815471894513994679294730048709984579846606714416672383571243855048724537542648356259579655075200384090573948252252237307532133233516147537081375549907991084113418608887771711204147500852836996336333718554898045014167235265093186971612643788311221535831657645750093743841402177730421344998550905453641131235346586978720617331500492701562574440854730890200740302966424658447406991502827274195175365790837128225762266955468041258332101541303845708068041095384184775165358061741645457621561706532450149393954870060366668224807154578212161926399054272504714942656793948972896099740879939704467754822517214101496052088422928358723865914121132583484204884630325125596097286559343691279441128938034426564572642629136463171688613329467829887756689594584689383067305612477167550993871108484217111737363854495998183075276623629487025604406872746115500958598952116657935082137168550631557590188285039350505257225914101250217927594743193807495328034635095051410309190422543930291511869722723434563320622562018048332960710885196169110273165518792559919593666529574623164940557641011280826939801955945786692825665247319045436289776732809180947049647453437577502020024490255479634480162116049081428324765694617577314221095680827631272757231401707735903189674077806749844891996181559140061695603244457598311989259536803785089159667244277590128965640127292006122625183777278555415802171542258013073385888573585075080627091207186746032897048246397714961818705924702536167398366250630149439110329696537430988064091468821970021740658289316894095672350591158075138298005668427164791753819091828609853878057556415399063890595069930717596250253613291547269093445001509894949409011672599018820529765743727605330155813752682087377653203118802028587250106634299157025861850089665395642526619558758017205158311866028233336578078863808129372804161892448056898646070511477767991260400204755185088521023690986364873474602870629066927398671979870642071744224621799347317900396525919857119438950556998820784605215607984608715527177350564451581023164679546909739563062499101237509374171380577106784571877440492168140912810716603116405641315839412285185749061209738331599423363276181595208992198462897469741224759529624486648072255981743237473733641390393851081756334571877840903834116423925929871237978804520578997777628463420403753214174373074848117264867637839517901588505622927064253434932272744311080427535125006049501192222164334841307714665912746227081239255203716279162889407957203630000570367921570503229143333781647405800614938123960247627417740642096428316309122906555624802683107176033545248887722990611860946879396234151198235219963391714147960739358529560293123934232482514036297902640645873033255815483236587581425488616474110401835276606373003748363879942166207800048843126417862129093897545754889748640288218392768047428265797794513575819225263706554116798110621163604818197594584113173362440980211574683878659501466969602734874817666088633960694075830325491787744415707476490451957857034755797221156341147742291808307161999579095749275221210921140879243301260140548459268157928478909832577749349455610125754056235265377753969404067173510101807457008425031053338791961578908103165119314663490179870296324685515004451063229082514970956055945209827566302260157844960548975873244391928979255985769141007995586354490004926844131610317632090475974387913381003529853419759970795858665504605794834759712311095320486054428045765897139851359177430730616066184832544722845299962115054877324801486250743826679903598234833501935950735538895115877872650989738848079759162873645335144463829878693150151713303428927709238364669794584321729674065734958659291885498075738625413058068110987574566628169635594382229654695736523748019704611709774556657096234342570755497654386054992100185353566747694290925644336167836856781018064371455474779809150157256580219114748336061678558318642011346501351911709575988781970047127400158242454235244217970026390175472668892874631762573569167682481431283458056344440311175960254309074772960498466512123367896182088358780323635008111950219113911591879617929083884232803983371963225207993134558067663498336238163265311245770663879426287338809780610004747368768494015389859870016853765704144738233161865045253500231421224352128778620372562388292229576697705833495021735241059083960135565036400142490061476327306750871138801139319151180545995655450225948128528808856617856254293306534732861612621560289000028065247754602740437675861458705345568177690965677275115781565038472461612550110068277877564526479667104904827473945772634284907607901390988741243787628583557278255612122173557815624548709723822254281616954781092064660295442063186401942287184305323094472217257606561428234524604835641679561650258137324036503848730623881853949329073783778553943163978701145259562777043890843319533915971783786057767068898412802266441242544464598348260572147389739670451658288154149324976309992812536344454327093857988294633946051165983765814572268911751368969604809593870868226217470892950915320567226900159906420386323136906157997179581978848438944414493783368279563285360447604550148479272315368570128670084237264536532377010555181222012830119428021125447255996818759538813627401478720186157199272899017297233905229749117134514173603188192489940247201266029643770516005314214995471713597707775230707414547796175282828256962405652325466682690199335355579319973110555873942954557259258368436457677437539292475665156346402853487368004214276332246778621432514190616031589498252827187498651521473029578987247693816746371540272189122716351223149218686781381757044278161557607075428358127057933688394887464980173725007829270725192997941008711356130938525164264068402837230524053125902823159583743730600306617740406082892500998278614368007751756285669389273930859630574504600770041540150692322900311349180877243910997801852797499832248089753407339764808212516947923059002686276963455909697386592433057502895337285546621162148880197798411507662816232645398281080460659206945385016489813664540523935169839371407527868515782220409411803542310223403050124373739956033311230527760901326754360204936993632034741024251291475737318544356543593429678922399697173651796692328660774482640693979310611765029513508521586217054799680896470416021479341507876876464549215800456785819535259006367801179352908388616453762334226987376693704606423677276007500342670102509240671486287244480316949514536424729552196100910275458871485695497115940476571965415525422262637122865613016688230436467289131445565621294356933376960888756173815950878310980957181487198811767903787478947254805243936677521629066333961645448455659768916422528288026538452939381822756291908519448177937095822331533404923750593234549653461667907206321952330702845268803293037910297641991175348799835579988029345252593189057780738691062614300573482359570851168811706860201726051359500958818529296552914063106547345144390810325026241284507341325706229467151602405758625467317979458970415693213226064633836047437724477059196544860499612263325141270204296416103851981810091253928345532179459004154602783134728804470246324857477115299260064208600352845927535331827584455503382594335491325812941503969386782615932332428025577659212398252532377193759727853073616432352455041751818343331635614777184619929482290502417678472278101597374586088623489314298560280161436468638083744782097912613656673460871744417044622975809072530637127939674374392123625214009830965375372636494032257822998357711996771350565740375357613446153232303638300559144254084259640077717585603910742904164721132080763134888380994338915964002890153731862308956645761872579184946879537022195889776289016251862033631455913720168132932199262597379095390279131140847091775763641446143228351980882026414294849136088800350764962998342422444677342362725273269550381463316417508555686529196833657728112611651242086629079750460389218412424207391026843857571084177849865821509301087744779778185841089879986275948323338834338226183843798040659162363022102955287468057652500852566199023377589838783464538655228348260847240152610391780204205035812053242168767038717029574015945785811813089111916099228214566333349213598588586129991978397475678854786515662106494780323192331173626594582837156063449557077220931393930863968827194534903976034096314999879979891684330315435109532086191559293430861344904675279364179360279183200176869340903383567235735828288538658324102881907280589463366583546419939640033772032094016434563228396530264977809593832380102094238043331203587567203241401312193720865189128671021194576594818650822358632197537244170071399992097830700957826519587055503701864152731811953075844567068959630727853467603270641843363247926440502344869184956105075065508313766943827732241918919474910166878778701796369670890861216582424492887999459059090787469071268276213628329259273602046221573448817782185865516359551132102136678051905534516231325650484409765351592759035791546220670157232701639953993450966490819538194692286878507048251282278795986722455749166398166463039580818661527047808162865139984246928874003911407757923407175328205503548884639276463865321859180350489724604384454455781740441896878150303661259746179716537531764781386391532893067872094873118505651498092109716020273770064028608233213357338838994130579366423728220732050015971949800242864882669838575730830973769816860718204215824190463526029181592521082852713542025823295463048781111009183234948012789810058555925922277021107641825651047986325309010464472193987526873397838029013088427698519311821557156320413334877361237511751823398502210338787039741471241185029377490521226997797214903316057839447421711173600267754258782119726470642409482673320468608380063091392586077961184989571426007502622330227975374941000722042046271340725623120076669021409943489229889897713365376986686705466667389465639687167454719049763366399514336607073091113021032351240129588073479894737175890457388110688405613171838950959543642694484655348632449648232248919629748634041105220497731227792602347397919640606758753137671234858067844903124430221522295934861914144856825300741800740400276391778450145371965394529330842605913707840752011653748942001995986325816576241455611188695701398200822206584252870915721835109340608256412128601561694456878754604735731352021961921176097975962852502811241472349841250174842178354358530406856777116718467559839679369634279163906489703676022498509422889229662526620394325905199590215161441933198744069902513047343478966538885591419414007094387465570953886939684546673800869199137419138110487558830101300884452892991264856569860889935265650054664018725232007571058774747651880524423070377799829470976938551200438051417619379787896799556001890815072049176913678764399447571777843008242651808896087669552542951072705466952792781322688576863206336896888652918753061981013491541596252892503976763848245826682849989386890766426518181509453424364975813836093130206530173210898470297674002068850839088675351099914999166699435518967617265191456802458906934034761476738492987866163236510117249221890989749618194868039792560067319555052273349362561958339739239063690210040891318297256149938300022596631283173004438445287875532820970586131170450150978118740199987642950697655988504007341396478074538027017115944139748997962616969333737661496249190893537529837894899806139807309790654030941933612342817009166693778469516492429677943236848314490438914032549014976314468426256647950584570181716936313968158242506537895772607941005848949748670050238102572793385684700457635620482425039464178739928620784557223543785554781933682035345834717459355920531993358309339795220293429385646294481262909454145413313432594636986738457949082401917542242990308077203843689486021605085880352431527007230380977236362659884280140016392104510120317354197300371954861970618740100971410906636371116530444946791603183129827860775594622397979623310670796757561087725325493457941743868831913945689707564481670264395232011021153216296082860751161648720760586995689807503415103357497181195805715020578144147511859314440327806825183764747217655364661772467618790945485608219605407993808127361185722406344466543856239677928942198666499501480336806745958108397451173960558686827720181311054579950337092213965596247721279967273344976784845505296090393945890566106789151896042570344000613712936286878015523215976697763202131306551452400494401356874744746131825686675251772890603323665901398144962615534831421600811613944716078899009195136292295503650252875571514356739248292408657619307711302728268041528440387766062259859158428400320339907381134011002461894853840912265881088174625272780722102026262999536184872575979925468502654454215236620613857772822917146120817308568732556257462986086573125492145686485944339166896865303521007644324456709505806863985034924702478147973804053839194845230617040132937479720750076367232714344504511201746474872140707850562940107436491802149496055020273937666558438959595804719440421458708645530834541597515386632245084166912455762547400302784564961311552642318861778905300197428862946775339502608519518305710907512963587585735455761441461514131556610930080067679230101458861521007960010874902761580018580102805218113171109886793932375225142628179972074642502402179828599843507895945205211564985437584818580811154235215899307592549099488370117634553515943337948467341121833848522315063212477878006668441245024607850234436225133546085216403460182701621084620804304075483013429053505352882833195372806435727677788559536229476050336175247546868630684926631261270635419624078632767863713046972144867323676956957735214864029747035506820488342706370623955791982882416147670375535424266919409265397475507318715193547417037710616144813916715372241242522278686029208612243617527301889131163220488059306570829819944371934159795860063372518050205040888793309422939764263066502409419507790835109409807542738509928810580478852267240243196336663836193998712319478643248639432311760775646685301672142687301685658389535034747548422221572171332610771405685927147686387127065536666337944030021950744263730540391865504746146898319604025373266540271128363154575823919547177888853853785404793852192582763716382829751673574757598515713437435538285305949245624088702171956316252937576794272354318071866573834821868789707133893521092244360834153560529622510601683750617612289714482452743021917242347013734244624363437999272567831314312309960236236860023180020859147229120763946370744346316801316937415102393707075793549649685226468955353815050983524420891825759218340244155230226247456875945768154713012151426703202102816225965878661935006814895759462445367761163412009714702457692337988838290324640427295993352400362102841175143071970422553605002404270930278529845161944404064648710236826841244791970940148739465540839570206116886306487222045357977145845058794586444803242926468663970821594818057291119829132851476790761394849691792011678117894490150304222539872536571499241862440389957512138546696050600804189291554553330488047194205771858250253005301019081055319857093911491604312639575680991042943085423075955803163699030893710982761396421643607812791273726321403831432214897664293670822763549076741677881404341739644845895465275006670915810571018486876477116430937165534867955416390143345260194516079220440183513402462647713146291582082254772660259693281356212165009283995859236002283497692619598084694287597911034624643148349222234455806348495618793559018631606541116306017640973944906637169304238603169040219451753720458057334707309778014454543871009213248948576542748147961017097461585163844548773940617497995805318256632039501093257022712352336514830965492822713944738689331010863289277901541658457736521191534888923057342680810057483761592859309367583788371784723812915161299442283728540387528547443092604674725929887613470752541129319107132927514398099443333957471976552246553407226895786549537507467392472780285275694322856585494333696834791792659979136886963727990230559287737466673925468360882993305812741751068424064438266152736113730814998921119748082390703627232222450148138994270598078697608063516251912203711696924519135397340531664315001111872745514854671553645613329494727897910931555582308064378444167658163511261417427177680614637087261953735103807843484505915128465609097344771515388791650055654846962688954149296092254060029401328166353838069646361979337017746903632283521890463137368391730704177911579274093591412407276995395802669636931601103166934017969001257037905726081547857732873393934306291733949649383910603037458570280547157710769126936851626160571183224633994009152816818703239881630511282930307419056006914373685926721369274843961171589135490548513387672063620585481302195313560291597222939810350514377978862952516215993675964216175995945368113876866171925413226704403808039343083052369113316754161730567230372765344624207860626977746776443514790511046064357714612211334507020442165543730436708288654443009269676570026211417928765315040656741252101382738169630789371036409508888688781893411156449327258006168615125514908817588446447259973243157737163586195941873730736840090956663803462320390915075729733161179712687040742799008195396771604842003693008924252742539459259613270154211298876283671261805924717302784065834644955850495657048626717086423218864084315852339485127175159646949188854871443668356850266746083112741851359128804642463080519890049556667065482584134027077758731833350455409642765595953995562061430732085131652131067037929620851894618963677058686650850158949098935365688587116388402234328831118691560100719391767844950906629645915179692358764000203116636289791561166581814636454151242954772578446391436785373224142975579526630262686084313549698200566777282424033892442242150673814909648832826276243243759262548357900119968246045433335998773377134284238189934834843966166600084157418617770133735817002020258866772731085428975625552105575886140643878906599786564204864517218662436173192027034529505218107469330760597155327820143953270834372433293445890338980541947290892515296489295916518300833755718677529225515399148345949472136233919713892275379445270865829952922885942989130045535699914887481445536000098563946302158180139707209343466641092105311254352347588772495371856749995781106626210315481762068426600182611830150944052906851702448462460865996880899756841522448809849698822646950297758624552328791359563249984257085882855709595902480211493493270327675576516536742897009993914858145414039966001287628452302862171344708747682264610765966037564805183398445133871791241377162871743663743107825934765845651088956772845409169584703677793089113566368077250226395042277127982726897252452372550239024198513914735655128569004858444517451005923609437702858283763979238044381796798113524300978862482903040385259233253631763109075114645776456984181994620738203855855479940988480342069473114424282614419769363686500429768540584507860457363825448058189094828981995740136374450001191128083840997476907384881990414829616393729663975797368539763193564948239246018944613205025127255905049777859882334855296903001898586599984216361165458177597468008037875260719602770258709014591018004135196397468181357067908831963892486729369039724180933472828899512667746789435748727399795264849994519951380359291544176160849273197826931321136312919908540956661634992144533121790373229609289920056592961306751971894733971972671148560743150771936465305494177770134576703548101407906498547711578346021123702993355714561434876821407527533488617539892197603226985324201493474067626558072903703775001097290796034807695463711458403015276215350257950076876957309728303432197360303724065261000557810409925714632821851983752358102360057294555420214443349003278199330897898634721473673251134369013965540462003201157916998913615979225907659828731491195408085683026533885889189869859716515431559581536299101284483650817167472756284379737244966681529584272551662314567821542920143939035157606484420547942092036895247000336518717416884928222970583228761688445738633462807720011181496224557344215474751604979988323599427700495714841864358205577078223088868056531096067354426733541833951248246591011348971114698788854318008386233887194139238873106104460099793578318383663204712468475826290134415213141737214242330952933356200157355453256703711411216348755489813784299710562456042045894651982513352182456735909580833405404919167868819309901959535208132591180132325690230497792806350135454841256637409833769230548915607165038604132451158306170837975037693497951159552824169131355001343615092662330841650270339178319735088620290116156467801326236235385770654404889851279456642785942631435222669343723242874022486693220753767759455515519766170880242379659208819861374681475144363642700574604699710825662923288779672880000550041043381207359900712334894722858517698264428183692894177336056536505374052689481488483325320293608924676779605037194429306260504280329461402390978062632441288290109352848751788610059586302951468614449554513574824949008326961024764985575107662927777697163895878627760224279467107236131071938345737717932588608125688864947013999222621081383809153267616558240788989603954686668466896162535584120820402061387373567628254802110337746783954146388389575720261945129796734636814095223170285414330280824669624602080505602408663117685043509036727995185897710780580409690378162873792003652239030796187378795640157832817782959799516704233293458220980875884725396023197438692081585257762724186344859954447767637046261285995842162857970474123811575833526481722056947298461690483497574607900758524905368196829755989455059270850096312311514786072101281375560811583088755312416618387156708787771685412562046913244952475625832658979725843910808587435586019678388224254436654414926559802768627605423656923042988654916236901007567010042531316630649565170978608785206313345619555162758510470425997320395335541402851321082514622271260292582950085774761219655016535088962976934594804712044349071038104823218997265940569712629061161330087314096830219115120189162567984874299229771793249900241442414399746130225260814103332401535647217384552399903272174499853925501656941212629049268787489671870845432801636353591371258687283542531820676915365774444128291129811234378683149265913496894327428372005903263930544389312542480112848466759141676310976338365309003257596046611124760835484121119858525266205172839212289614734118887539841200023450521707619014182889610844966459779484455332177204320992308370713107215848253283791737368674205888871805590461291594157578861614976409030559566637127755166141010552989006773250807408454250531793901148103367083490899044661644231263898130775555296421273302289269816316909161780879471863846625330095314134532087228406390879949869760801097293248463646402392989092959289799541002185968715435476677149179050757710356119852555299496719996849199345605822756884666775940088100834291570828130106598499090000626041225277319998082935625161605989726620567183431158697861368516515487416782242690986507817029444394191187444795628302327350134983999437154393614562415335774479117684686997848907214851583305657297229275077591910295246739708793010046174578281974014531887455483753202951780531925653387214772892020026786770993078828974808055174978461043591874866825718275836509144181308614726678651756491465550045017177077553609951431136352806531882454686731749775813952418110663770054686046706485518500768251225153370383904069194027914001622752564518682899056623928307790605252742638551134970152526673778998197941751903323920872580937222620539494151989379766612421677627467093829146812678696912431113333677986448694989413437125959494390604848954710069938907293391586167587822198749817884496101588864380147131887766113731492357448765617576344962803378476882758463589833714536848666804448466621566594075669178156904931623961946036902356390058373680269270327553182847364217268915452504711779911864797571346868693987036699656351578055569330089073596875764291187790028739959966919457889954387827599920726681116731821370438688856956121721677330352255920579855969526812638435139760452286102908737229791586496166951928767252281501560618218417615459086255056242031692436311077549582441648677493251426913982747511599115070124564562877303199017101043389831648941378538732851546746131367543295327241505180624720111168282828870534521977545371242983263016841033133826222390567909367221679743409786628993950978063030713925775955492522708643471036943361672796415372064186863944992880375047309385136517819924386559129199369729984402285130554048450011445005817682489554044977338388956304832195595031506453409245958724506955586436820007256122757981355668121236329647867114288441449406751040086957799490787950782530311082701997056165696738234680732309561594361489112392134345484791267661031989674174413687057523450550533904846880618148303934012092959885159939982277549046658949661075498700397293027627575848098720225969739616508783365957318634479380702791878190274373718863014970947869419549322349215207691496625039788986379188765425083254821166522987595248419588754743890991278524573976973128914857545357072585678221608420829342845675569810862436708584607878287823330497320071278588861583212718545025771178347326015808688087002502231633386383559173879715455675754075519529738690442472562616688079918987133205120924610761374411890364544055457290072077869523023309620690123906025151535798366250110610200927610571780897815967218340281904445407034360592376565043045885822651273693435618190954327314240737506458787362640718252055479211632708521960325165602191147768340581305118358993548193154909129608690559637783122606727356805950795111570792185523105023192375174956625321727398557594340817076715044980793052258557055141828166827173471185240312713018180440406414048410728033467557397675830915522722780749983834071958433905568891062701111982362747993639928221308320454620420744315799435684372875000277730226041788131470717062217161399326035319670754236696725242727670471172943150409068015518902414433755074617052843603020340724357039421357533883833958014992169141343580731249968734553909975883006643031370820966984513204059441235313487168924693058023743528683851898982496587130021551977945112831803822685637507275202863102488443716353250005566723344778496262012138551775254108179840722824172784194495422895279084474068172440390728723580935101627155433333098335796225785260522604314269994487103535734499021727463202501436623948296376180235372348137838606421693374067627760812131112032253096576022522308362815021175436673825123655434714211966634297861409915181229865763560139278313348471080791321721145011716154425649212167796473037652623179562383072282798322847414118323936921343299176143771296010490049205287033762469389671744471728948821014306001321498205648084193265269675126193274950607576526595882843002645162151538251975100465493613241945791252520417737539825704720320278898331750229823761165324475468433328697604529147247410428761546975303421730907874504285005476463490073139906561370268664569415115423121966985939779971962724335972326781824669814765417862997458920120010408470622779916912548306737325619304779430294908257522302529311673971317915390449299935380018454424826627238526343129919471018250443352128673497070344260379359064169115508879089286402032697454137229467136689220142891511132963129042654320300518721094839983004753044537638650150680109584066194191302682071208063715397417784883374615837365485199160081699429548044002887775760974079482923572887107853440940334851234274641767770943563238412614492916029309050063507967643223417182892166659544916671205893511095063599197449677049086362124218323504476273598839983212156259756072843866503921893363062840277515091020028268478009214324080340742453942388461821265703798576698410643802832706325104925482101518040510423255729896674515013536539900189388313002835132406047279571995341151809720111990555859408847025983980251043968892365330883048588854593664249859506616624514818041403782311238389699114126356100264512091886178065569255938785542027386940416471493058274611712103499058583833144176626032610197392903338128668956825364954518543033949731614669700912078955678264077594464637089432867174781218367218041699684631517719132368220807651884449359984636821136415789312472038989578832304423743123198225241928785982059047168284103721594804453632493458516533544194838874746094490158941986004885838744231965065242911781098331834604787702331281831800310137848181992848289083884878101442460868892202639508495682373092533016392898703278198643194322663803572227528555426789621853564524418337743883983688161964766127453146500986349342426399531705168004561652463878608894745517945675126336280635533542327833580496546333697213891728829547919381130637152623197849134176364616584822693036862212706595121312535725070538811272782936400167635491197096021039789775007914369970113880330930109639166390658480349691413764880691256526803450334766923588732392055289634793275621168493715729262773177026724095577575214358790724368368288585416562752752733740771381348591732218836354131922937094566226650105279463212617199954484965180915498438110578053973184893586118815489515897942833858897121617197158370741160249753798112880090577283467993081264561886346446266473372857179830546177577513716577043293572902811682356132568277899468695243431532169221935423340159771323258216217507271547045558098869929719407015464480161890073070861313313646151880302275133813311648333621272285524512174966573075789426374656100051855339641781949485905677911217110113444898916907416523876213721671116305325710066230808231432569138761449175259920399242485644949387490318508057408506125032599881178965184170013356362477241314647689312762076839219376099575655624137663025078143955539279632483976426867254697169713255056792125058826115431254325727707202353307283626041503105921165695567576290587753028861153098044437586512138508732792471686847026923557605778775697352733847848277036653749917511085117235734098006629340021115242333390705208078143259930384824252643999175646884584729448615704793841937048115809867454261257746953375326750555757811611798812029969984216623615360520490898523470375784391294661499522284705430102620308217284520977811611347831196259909358750746225937455886175687914755206350241760506450141992106596154347973087559818855591927446169273385075346973901233520528420323173871402113015071692497119619440608756199289388423409233931398468620017930947817515406853164579547365632661942971450231058294147863952336428753105385574259449675319559445630095847403315881894332283013645872914647869351484699755359377742122859013850259592976663010157238309073533887376781094501430809202614884033774727749224524354051301466814527794231117697979511650077636583999949231219056218738039864372125707189980438856211455456202962333845677526666435524662224799510776927263864561870882844001214475076254304332615324291461829245417383493680528058088984988713361582686537861414095297303199245197053045127182636884269461588153604365924829834598056549013652551201047172890328106386975668907394157099068811613425059163848984259969924257974728713418566832715367798052275060159161216513847793611074597550247448515428804179532498805496485462661181900873134930214095011395686431495526633867762202806624574590883821866099826504988387545158417375608554905548830300180438162927476724177717562496276038616707229014041739779248235923443406308157358750980749100427962517663227747662109992801326326260819349928609407012767118176132692549122642230641387357579146865314033996529245883541726471951225715455099196869265687985331138986038051208881566154604408451706305507976359526088082563673211339672795965496704364286498091665572901145025174497026137869109124255627883774662394288886730478834469298166107205251955895237625645093174188357701390601141261955735486031178090949579224800264056766921365889972575221408706946854811350411454763548966333791918925411629611004951132414775518287915005881939063324287342708492213901322318851137314384106409171207825813599979182797444824484436492883201574693913903285839338867997845770376881357144697607855609288546131480396647316285762206317960474025568946482650986338749122153599867679993182548030858002680128240421006701241537169061103896226815258457146489491480403193030209587570979538648930715604222622283231111965714124959826421772105388391169711901612821597933023690583290060542087941008887360005256568206867486092355193616943687734758318627746941889390954137158999169102645537986203684508423663396596310899244818157584780033747183017668319514291792573432180741452745767593540608843206186813295613114073157040539927366807891569673714865122844352778824112683592643317778033809490721683575583523576325092923334380245276094957188411853269486838623347951823216962488042589210195872745991352702601801935431796463927423157805304006280549457044431601096323066056835243505851236543233760066560149311383855603752840361660002525679170220843542829146082054459894039671993793167120135339410652059147538747120374580426927837262691679189470260730863403844472759801298172548667780969253102616512949902288799347649728574452191676926815601664250129944024418636571677476214229580669323635918930479239211192479127319876211368905640852757789785325214229786840069132853383032282516117542809682701197737334749801513746060835797038720115112507101275798532139832828085677026845269503957306269956284493179378009432609490200528589021212437525863040071524328912995313232353147868022183831639932037615248227553150770521080205569806835271329212714931442505633317606140595356324859163059469518154057027058208766894330108852326980526422853407542128354747150547496406755190623336479722352529785251538724361745229346182339911016400331062947969342260715948111887121406720140567918693045875920219813089933958724082533158330205355931719055888134153759950406935475399520380135061840568560673113114049635178284040533358859164976928487171840640089585686305211296600046604818948290225042609034431496266972267782259337487789210600712772128724177502856486571903963023464775258299406996364276701996003512708568010636804330651482475795072731130891641902769564363768747672675700325812627660559705791513301475409895594586855688782539668454066446835219074896364543854131376973778012348960969684888680083824434554328018753013231494753175669140573083369812138373411315758205700574773966770679405117351338107159968876818444876394193316212321672767948284743621148508360859323338939881278959377563380183375509543218868821983156342360437805040681832239431022827368723674759026191220077442650274421119734494446331443933725331655375413004945076036110719771376919277182345357410954528548650803694143665154712802998820587060918410696129380082898100886428774089511603876091263503428421595191387582269433179907300200934488768855818842284644571070522470794749079434701784366435022471717489850921905148696091243379779921631435702617112816096010405850906340664702786885490184859983327957124400857198514204496511556837930865461206847188917910533440010193810028066875943302100116025261232281948573149236870460903065198939250196057537637107234035631864083426333465760560547332342197439348632445572562889249266131084061866157369595432527875704779016316745764160505949470652576338387138934685158832632925799425428537788306751042583605797490351746666081690401656309725453012603839789434815121946311930198277054690936698465681529998538598555796874545350158064734492440861262398564087611296342042312247552729487607966635735277190992497486142100881431742456956317563763396729998485964450707184827969367537435623718986873925305593018749224870069999594165297968209084510077072982020707254982042084063671628446067486780951199663081285410296188643374623742323122209900145700373965696549334316468490517697681452016810221201074110202661101639892395033186210077056144284474402174604752908401768337628381941158707685008273268058881420804248513761410615554339859907768068121731288192537301937530686603936040512390374349922910779095506003013423621808004065664803051656763607654167684111372241643630973577964184008569388059557929325960467528151761197481012741374106071517986438854780554951936644122308871560695598411663496182452690378893600601266621667523742486023571893958570335730760853081137616171957701618840316380238120300056166748165927613442038608645984032992476833898339047340869946875035437607716867586415538051907646007508657797916736963632992609313875445734866464790480374560342205666050707202994083869316220310259376951354537004694182548303599478640793048356978946470849935064038976765717032880420384743608284103389057099001597141591266689667861145645233282185338314894129146111454268017924473512014376299173095196537754796917947691351651172341800935649122555651387501534229058389688251843405540592968067611275014353327794277309502494016850001424310784251197242588260044124271741011266706193284565321238736700557019374252450298630967439477411658060622683253546115530119599063309276076139435211840558660688931741693621072699684659058263762424888740625137294326874765389706594813340582066899236009986687243465100003138545053438495195891167864954468886985832008390309749234824372658160323299453434142153804219455027460413056248447365797265758750015539785919931316021516906255805504845281487006847762853724828514789998584685859649283012271652345306294736635612027307960605815024350555796193273396380860640472825093431774602979128051155741132830530537343805055187737462422006095653996445185697956654406640148022091977548359509261014564802853275538833795877084513870135261457181060728305587162188066402105798574918976205010717526066468755630055451277865171255277079749055420787870429411133084120313502264584467340697840056333423185494779332821327134233424375175310959451927931860423801826380115968847166220514429815573550495096043457837579396019507046287226437034525466533258075095108386839291906140039003567851470109102295546651262927372189264247727338989180211092318849926157093726204444452554116089058592589279483482138240947472806355026665779734847767300178615176508921921362228892743760872033274876427218864871237638917638704133816621395478999347231202447330355585394086643348732366008389648410530571695167117123575685356102035328959995920305964108466743169523117728965704807713299172630685666023324281002222152704520608783969348117915195639464643198208823763217089568292483089881699712314227699639981896495816844272846090620097042577011677785017528591116702667237717576238570468572515563828337616737399274388522533504188110325096766840596870731666964827337979495727265982754170603985610491770026350355461694608112693841501767501079874568051389983192993716234908445392798036031348302434090681836286251037176115701930308323635883695078404678342456249151821513854912523992739451995295308831997706877843573170927098103348987386183378180976556812455846071596182133818697937721018793045396445479287543324927045862214636990683959440855416076770722244221615165219260933707680418347506616382204598006671833678834418075216484474967868589461244777723570475696719862901551239333210104145062569719358259191501099087586270430741537008907989444269350099397333965447986822783710581665744614800497757711427125838331751161555056324078791019641755774642795324186356550693793161423979588858307029397875764768108470053555505409850726442337008525867364848544355732309372114837466446247203011460618548561265211305614788114086605411791775193604920528361898229963067426925255826908344077326808518641952335945775935619331136763535691628848750239771055998680527344418123546483372532672456273986743830780055117978168927289275521746761644049297951730570020420809496670159282891841924171193759613077699175856969340525704389274559631039900988042538565070546661536526176406268628435772784068303590524465425843549095968124457610143285086741200969957747443375673618975590162849288643973061073676135965287788364637850182342633795836574760763821481734910503764175588041495848260234492863664425722590855660442838948826885012597588900057074556305585882716147045854143239570777421875912478216026886888447258317264082221241640169552822400871362556200615497683528784282283403282623196487710325849865716103712388258936444296007096495251576603106761296332635680174954125039073298481209021113781749323509492858128460008518729603920541081245506883319487246388383303901277425061101373579653593876576270517740031265222190208234393995308998428576109608151426673575395573724629045810172518352825206938858623025021525804630719568066176613872073487528843488564081133042680528751761458508003742583412671501277806049551614853964589749243066406140307820472552138694594344867516263272382546525848498635199368199237366008118095575331942972050155747307526642024491228617311694287942008959462937415458634792257886085307933901548264129919582523350998279141915309963280479381220447592697972461022446736914933615962670823258015525837309293387929246144075528476861258387695696892771408324954163510377570086542796219207071774160073080184625505455241077937806139167266466856703107889666597977347930407524476744683525894926371119191117270471389356504980840171038891235546492316773302670446488150736837066058962803571411789961652799243598058548139224560016550243881764045263897386924402900656968626962815106484329700647631836877004940158401136629750122231978119350970014587882419222548004187516424931372024762787041229638365403949756212900022370869411403746437306416772468102866059249114454104193279270150233578417325766770810671115150711654293203592160752961418384381758036230522238527548048172811740832894646694216995547586159877126445410097937747713673894856495373868919981406351782143066880442976807258667611297056531308868190933746068982968725109871984497319985489312851762050656719247787830512639213632900718330706864697954274041740885413734716045019165866120200892139470441982263389358839212430692695290343911469927089320598288255525078835869900869817614060245555876109788828616399333362153400017842501920718163711103602351249262186429201121134108528411542539891331046785669438784927623287254322043623822171623238324336153589118074148349476206455705671372750956652675280783170749550288370947659610649418298061557809808214932708354397896570074840514422623216361015869638805493281329659000593852248603792124954302642225489136592682094685811475739895338748907337532258573303281322213115279920451621389855860509961834368894247158024801404781490003486715478118756467801202628400182356348079675102381967061357918891374341225333831330639377583346160313648595861370614583602102058579101275728109723725060439995199065151528533997322059096820585765101775089551717419634239632840567578594107917512648458775781931248906773566975328422862025162348962127630723391772036765641884315877632386617943657362897306513332703075052445875621909532109938996557596873260750408057282314043923016499539826104704915160594744949073084581643093736771310583659772804528351816710379995720333455417774957801134907287351105024854697810480757546236748967132315042322780506555184368995732991020416676547111203894637687427434041112559616267464515877011215419037028856828051216003074596624274792263970812181984693352565101155065404157951194927926549017698135870571219415817309623273474039780732565645412265220984762859758286942182383650485671366469553445707034341801978479518068778337490929164738225389301275303066187945403952046234626971993167477149059680826133985070454565355618436601394224862785023902906489128336732736470967153933086373589797264823283421470223598288230746125228920367679313627930281982820903538199853464341212494395222022564338449444604676864215829210606907760415606937880955907809656509811758262296553246705071092640600033392207580474775455785412684702204354174201007835303421945410544689460443898737094935014276237720126995150265829294225987537450226276367423844914616801282593940680267355767659092889672200261178004733902323091317173135755557435545057296827341355428672339961534030156505035842203423403332512908306523478333840800627811789819866650883465996414230166413544896661876755265852822967707847296502798978620682136865533104066902607266616747248355724298661463116148665776182378414643248151933812397909367950967504938231937995085670498297741559537115619276660162175239568166579343523383828097052845933864512317910556489243575165825328435458237998449066334088531364672430129004674853296493927350521282188014008113059525257269915598061711558076708086016575129248528015393862166649250927195665853058625238108524693889754546423478931264974193929904141460917098448640618956180462361639916472226726121229503756664720784235087305201916453782597975943037645540687213713357218994638206823030552752036013650192780815336346512851000141319577083280447604424242964849789376489542975574579681937309409584891705665526571689032647354199368998379559683521105560576719465018447212799695399741072882115337879290285785923434686311041828648349446407894664662602504285129851389783262567181779349420771564868469384762053264984379399922929742581851686951793372314223637322478613244304874800740634531598449131298296292625526804344176712014240155494379670779804247779306730369217653497400295031559665940477822490298078952196243043208292860642342210265783266574220444568242628852941093070613910088338560657418494001299912220979579776680767635617652306160726467778732415556186656063796552540352761711178167784100037837545832787606056724004593235678595042613093281999950873516975817348092303995312513824793812180711773006843837480738974083058271243994381107187252249762576748116291763501380897364867533306816430685868602136963235459973065204810248582289956748137304618450152457819864438670834101946820735759907055130920441111141070783274164648844234027012057088500577979768399476651419162037198545951204588644459930939534968932418494700151715151937986983934787419919689658791534293057621050148992065071558360100174450908148589715635795055332968617990828265528556491894807976585484687207591696725038669689052794347671215033253152136968529075896822026949352156357307906209339448544391961913382469990407015607162024611735880395951224868700246110247311548558932904901271228854317431604724028459170366048883099657383947883350545314381392850384727195098721655576262346506474983733725230747247182729780670161136576307937143967614212609090207789409810013211553886602470945099740540500927934718941183964682065326699281628257970421835484181489702784281753433674235260852147772051515749878991985233631126241457054572173658525735519265892453175055352699915692664084932157807352208268781995044684986034926738984284284267396834927973618812520826679408948539721078146055358920932927461381035952823746225937142290614418289306602973415227485736265682549989055282918843710061011534873613388914428195230526423936346320826519451056747913743563265329871251720873649868451523947277135587001227124707332755300309504615800555705284644307703199761649276114078121736939520508060810095260732363276083750101731042884343473624879528243449017169609362077499664691924971072282731777861531760016787906191924593488878366525432943993720166883532520894237998113935431336694768264234548533718998347515461403222337066160933541690669326232621024030688060570891105625563790983781783782014037820162122107114782984111691167651918733601652616715435942852991502650983057848600980660095097794773988037605780564595785519443073637756172867588789500786589458072025846187979994384592422122907655600372012294076405508040361996805884186318548278177810746638966238945180688585428644526170351533979404031426389765308693438426513046355531597641656023423198860051819690451862145075545719975601147850717403736921802313523233978910235085658076388422500120016422598446941625386183607090961336896876943688850865282503652563661323223124322468083495081593392015372287597618343791615081892205877576220764613794523790214186097747617691905594793836629658455847838227270274634622419936515355015261276577663311367860877308444093043319327250520139261588061850677947042429118895929384187855297943659130614060472454964766680385575456579306551156175393797585076504175397463255491530851802334501143233255948601666836475664112742388970009577998285211531313490501634566415522709385840057197564538881092230578581954973620309902582591154589039452101256493376185543137530684204602147914423303921596592236143972457175168189713927185044176910190737284399126563816271637551137561550587727782793468901878711709602799321239908456879424484651810111442333484988823195188525008249748907109354761279637014868655112402134023741379708055099250786377098536233783145767671740228159557166282374485985056326633756960105292715849556121451333664554061077011153085595213972301008224322637039368751528078086686243742172053507826179965854079481493814149501218952659797009132382816835261375360758327489342255502712233589992181475597445313938558008092883092045502895753979932689038317630546761839084314320045082021041727139635341501755173349145197044699879941478303392575649512648469279600204658502605196108259443705407680831273372122620588100334810302617804191248125411003513870879305410643449948972184393793017759720245716315613091004624688979687107457009006871944478275283396107399771270958514648129097116000601546307103240508403631343370265531054716340451198589045427653328068684980481704072516688647291575680265722578751768128055941252312766574557282389140491840604900556528757968036910300507996474917568887463135324271831604317749159183611801241995198836331972181825971933897654924455777146514924572137448531658792953480332378504406998249955412520247663335467814833104044559925263721910410881761864848357594747650749587450794495498422416352030731137887834565702915866542753021709943743861619064992301358773098375767166178668468644551205816723368392937654422989413819273215704515143512313085973215116126116759762461973113333580171849382919686326419798763920176385971803435013650738938994306738432983887511291119134847391045110316390968576581988854524891751286074239384996857835022470786335682480265805004052424023294105309339935772820972551388823606260599950898168814937656221562591026695497582880026508509855724555618854690581837549087487163950150387126817165878670431281063089495298860893008741063682492384967945587147691313188481280595298159879314702883220690971187173141922359218684037315844640697089766818819655967789886089064584413758614150817994916008153893717032586169142701356894458454496663430063855404461353911909895657530127082271435199834772092893342584513676057705838261718945216962198269189936090069905880221788529619465195928899925519479911439744888473868653046952012869769621246943572296844287251558004755702995404287089309281325215103780814057051424860875147915913227525210909613420285389017939825557292762189464445549853025402621635468883249534727980290196451924865791375809252744426875339602382407491517417918284609324156706014733677440618540546317502238732832955033273397941516871977731601197114574606417137033298599316262785015437571939298072615391794995436185496581928804288827539142807419483456644572133378612971949174264674397855275809421771037652043313207379131020944212208774930866780977070253433508281112053276221980759211698845579987230557306141130706442993891545533205225342386852391777624763606388250444494758965869459743125794325654077544114977849372107955481693155670675032044868878112849657061286476113039285882785358177888354707548397769927736798485215388027108182652938896416379544382149541076248852155619882972985494656840180734903609659134893327176611967738512664403933506326479205600635632804178251633445927907602583016282594703582923856063958580489119004217369087974297833386741058326038907136982760938046518716463582596805396847379521914878160560031729543498002750137166548821956649940497584776447028063799424514484348682747320845753781121938503380117868981088776778568215695762434155489179720205997127325470042542884657499245909366693203501272635640810735625596477869899764233674747385606292691429583154807036645814621417379116601881245909064526204830071270405337652763432999136715275410469282405264302692150436674247880113404472695028424209080597423956431792561390093796622424196418069032370483782324957504733464440526276961409053435919495604497060608649450455240862729533564509255515557729537685407087413812919395083140206695507093325189278735479020311843386455956893126277037110193746191509623650498004034094763722316214081046038379065368061941435312104770554987024461321250545862068143919686877449806125185034560867089239950212813632863698242004218503183773256496674165704643706258577235354452465628378274728611811156276738883797052099885207725220336325632229142079372918538827785979710960741337384575594275649463415240346818257826589857576870715066507147857492271947984743199463195028165823058134584804330465187064193289638981971405003789936440199987820026424576334878840085531430166818866074249359817843501564390661992838799997787116673752234151492977441404787619776078467446356902883752351841990977472466405651744413549133594058750496360490801573355655170038485892309476075427942138983076530289449803628281709380102251524413112674085240417923623807098303052799396820339580418719393464570547959899892020384679875554418989892107831060264540468984036757055812912712772130396401262697380785872277416046290639170153962892330441128759663566098489976072254573219033916194544838480143636376568337549282127132279077580606955725457049653514480330305891472251790023982776111217447363057966151132219137278626585230627302780539842816058531761959447158394679469229259508357815781970415328702830554817243609313493982094517926928621927809569676085902834869692174054939144250190759424600194974753467266151047027279005494055483892059871023542647831741436461317774392202593904423863750080237505546008785390631871757160966442524716522462957072038429738384848165788574789251791612018767607167426683389095899148108710796767726141360418808177006114439249329443333142102678166308096794243433543433889761428986029281479950656436781926815440201378351349602827760600372086470213720417640782951182771634284081129154595963309118195221318150151305893645392219726383205728235083579984453517459945430115435749291806969498256978562346585534338129317999875575659004893139611364729297232432289923259330408047284951840304346876622612625953238571739286832623102555212548558054752252838668068880653534487826764591301574292046604177806811741369071386037100944539897285404653981842243627983673587099753861576426691895077890660368415349777239812904163630748867777948569850074448883151896806160778513907501557432387765296081726480797580593184414047020692983306854677860839519373234659964968978246854741995309479396146003436156563407952943035377209358417065207157486883700506753198567870597123408073338998065765325354973771761658392895124298580585359901310117116330161072532650049349323086442000015466918237280858065159374256855410923569278645606290586945565726829989076664325059737818498851072698989966677195991447423396901994798741310185796983151401260118866932889092946264432358492629802403311592490924436465736348000698406021821117375681899457930624465715780302509183352592657088569311679084474110816314856275392550986523918775718090927877016845989175236685075628490139673493678556804389000108929618221289483055412432457916634202533633858707895770490954737339976428683885301692496039282770715708870899456949641259698605758001615302905345762712523466715728517900621832238426637817432134979170862601412911088887500916699338868433258720006517244528298704665398659820673906724628240814214210429106834125409268422162574149251978968656913859936484181880272942360256653974870110962975720660561076280394071387744191747663460863084721748131923422597272723752647002600108355812299028137125122143281708796847613078261417835589273846447597302234078353832086268009502828870529208424511850789992494469616469330589882789870797250725027621059994802244154448915567688124529842651148080640893556982590048541425420063144598819689719377671051552837583052909722171215705561530656297772216118659657462519622706900585174858154402726458514460264510724459696046695163847168813806556795764916882469270836145713324186984583566878215988771166129805179275065538561175360030769218958656918061107750887559388580371036035096339171326093357439824671485931800917296529352538365934710666775114725561837336714305831944143680869408545892496937843828785607921206808678938475382137170583666844178201746509165297831139983277803472996723796273159541486610804881449166853472060242255822089444413476643104895260695478922235673219714985265409656004531820404282231553945654890847280093222622142295156775813674880531166373409810558885188954723038055979484140399029527285004402768474438733758957884209601154339320207031589976544043479524780416734243561214554289426301919623304266886728478730113807133698700541047461065028821962948171784129627940173806505630897044911890996192648312634689877479569162825294518474198550434784999573316507124430741627010123996624634969964244029532844972160045249421502922440702551573847898567077241939686209929454156348442779236590723009066365597074291452581142136106802394376474508040790260389864585924387602142182844696105749778585718963024386138584350796602659113808114122230804986945893029032113481602408193057893494093021890387718372966565069400569953079091977020165794364190293746948442677218637531686026086014547488412637020292610479052224551240274047295569621270486175344719680087637448062369833980925588753268759314855663985713537889173564859216406065430369845409391470676913774597261465527356012433474661277667909857886364679143089490051804322237606723293600207808985968950690941432713051494650026828940228807818158980936806040958362518264382956747162506205475396633635864944574751033233874273006447408757787628004780024300426184812106383435426261041637531828298556789541124786201760764426918328341161218769902836729108690014439377987817787444528118249785539402176760023484863189395188851085333562524000616471921875833690283446350680659093404025532553612908649582066557984643890165865927948183896400946963528601729242094846025021482886725047001648556936666027227354915157249108154478258681412983793451858078250512882222720117383662243842618530398245762197354732906393403730891717342502999208641926428607025406973739114916631079551979273564816286182357352686177619839564488194419561240337305627842340840285691278938919632951010381088845788449069690516243607364794744469886886546138928219593004065952173048021125835162585058860616493144980588164476115990289142351824318607532426927507962588137963082668049972351490334088582572261046897994910427128048323614238680151514194863898799199963296260191076276720231315184539355110689601309705356536728379247257702850926733364126854983731048400434905396772145090089739007038084803996732520005327028809857878289669072850504974559786493416269569936255637962210521632343150288668651973552140629528245235395030247718305026763111950948946912513846571072430016365666996921078454212649053111691498116913749785495556415709870669268039944338314304048034980684832628006015446239714166798906838568768264293835769549987801374017830871406002398869868065142813089178467879312900375345251611734762019939630040911880825096228530906317499031603223841182981829972449507116723596510021493014092829625962230594629442883639858902228650902368446625335525581939542980850111136146354501519318031158360733356010017915618994812752632151373393151070132141599141854768035106777388648210598273384535502133395853847782629389441299181997760894912439738657219910140773482812595984708869309038121176526205149289148038220073652366963866134350527586882477909221795002884942140017031421707496563269817687866867637735882820861496337524772351211976578702311097699718064325770793297970546363029540190541463904447151222810454886805025958082465560835714256875929073145885381484802935081170050523196099884305569305458493243335022433066607455764324409552507372861591745473110800641749881004997828154730586364088259155435213932238321411826933710471234117904262731153156743458627523118365964650285351146124959805818887674156069816626142389190216979910298607896634322711472155454670369716107294467470067085248063354471443029706513245997837355032216740115705623457125446694542428448114895331361231066449557382350071160907616688046630965414304462205987860124484732972420521509431824436558176787995712666723981265548992971736704600120775516804419588811714108007521478201900027300128341431498325052207622726366024617965859919419060039039866784623651651459022856690998406281685923406707951604394183577561109562295478155924614551322689810615654181255805478747341302346942820718235245492826864101529021841242441668184538849788253418834182750107632054228433745067266631214916975235346383480425612213681893160692227374238018179948990534527093557881103573282675546769447557368810004269583634037662176411078716460733052841912303288780933228508898278722853863399498643962192639099468962953367442347343394457169234627476672407866968227856177391776235829936026263524699495881736474327380808828544649692677481739262212107356723415505826635690468000820901205301057100848871916592811511958894735436685846074713764018830374341908913812695339914835499950944090182107816668245783191013470681821524764748681256566655781421853600135868526322498324645235787565122398392798458748929836005463803237966415353104996848103591215637844727631806471385014905284146942486232101578618383972857874529690248075947715358660704154165256898600692135155938301639096879408357072659377806790383938127877843315724373414559037004013885343898814353402286114656219323859010251608337288621242048546764219436863287274237501721263553594070469045259156756624804257108999349263675083541884599066138842732676230943918295728312438710147438915648660275867924937655852120845938458817395082676082761737270283568290346732739236803767864936180102860177729995484357379254140024636555433672882650577979208974022279225994542603058799807468143369630416916872005162980401847895684302128753301983283060761173990335117538110390330075560840364467665224446792456439617260159262846298598884323132160700218496961400513824027844405277996778121923783945088903351128454567450515986166603124281329632731755105255758567300055563333045479425432908965782081706970742067624454571490649005899845833050956425466076226931453067614637756841282885770809679270893573195229338329798145627921411462351249437541727257803009630308141954459815622211343356186741762920414612608369048690385406726052031760540498425824094744122495097571159283136659058282551174969118904228650885219703797268186900557829523340695426864383435236315013406729257343219484760705189253040490203278548769330509856164911015658704861654835736979136948611059898871652803178851515752584423865077272419598862698676360697287650782481859679185337192974871658494510881984849689795146366719899622306381759151833384055698474445614960347873662218418999583755679645843525460457120008389437148181768520229223945206329248306165218335832187852860040412755725952566446867542587505890555417262202976152692155491818230335040306492818543157506733116059582588343977746018514563241151429513693515932475659908613407268443080897085682614473146112690822326526550316043261192352005826640838781328006942616934633417313472552173788613552628628210306820448843363486155843518636015110470500037416827568057441807109481314608052495288701886695176597910421129944838714723486652523474787224160200946427513991126828737558351682057520424012575048194094302245730932971347786385016535570849850841453497901354743296142168182784828418494268982784118898258877410274304382565778960938091595530328443969566107488272107142127542635943131695419249479942242627075757469722710358581587941507108470642781180002709967093019264752692940084697573950339986357824914903609101295834061748236946880422474345525484016112209924236278744892389189931806591840628824253546755879663010975143925405853861195085507307602349305778175727967941970856158591361137824483121334433148543681551774655106031574842141515582676096104551212941693104283945544891680100032474267972183271711792454556553591506224138688995894371200221437692826956637366902736767458300378650642285167953078453859039082846517450248460755464765494849896456610616379793472425873530525853409536053327137937312452390592565706090064117884765649429368203996921620451941762257372337599940180825962515265344932526868564919829700284972745015298086157231154565394882162194804168195219724974979211949078535806790760153671290864304551748030511256051976402493564435646456633245356453161815188303991726162068324969007481093638544036420012278656041428173196151662817058293743557610876694377974470974910114280644182301430031979799011555698521060433363588578001173066627925586266989817531193723118985673618733562156404473890992490292727096430204650893937753380662773940263461631967404739494815806790927522274353891811100726826186742406797721870753854020240157855838110571159212270911929886016778228009890625017408831414068883993685968560771975140505965174271015390439757503767640094974600840039902620107912319536159871502906045035850790596101249883556786033324505514327019123891610236764964652459007004432139981151049329048431919586209521735763036490716390017860428530377603662412807194743894655382510233845759888063512867704665882002010801535521314404633105925042356606586088999655521992488001342875214407130862953046418037843688021768433265930742417560390610748502887977784801997433849252781911587320877687353069274207945853745755355323927969739403324914972518384958977558247154426008180658864037487531018379138718802087280876398025180813693678330566546682605731803832262429493435739203904083981516417354199566778495957538838525215633627919015846945330986324517460446646266040795171380185899089996650929834310724450506280280728140359846078560804266875447421178408336002555789757702393057575200732519858441264536826413833508292388713152744753242044769312431681827549500655016811450771660033382411379356899482544008574622390080048080936498688260588114291788058590836498228371961314212839014270234799982918094773972042648855990866031580075144333016589577060714936848545200637956213977298106043551188879441019998125923029581181201891963994867413528106727404442180262678335055981084135041844871535266331278296419411007533097348697400562123064822220012619683015208499591091503284121217370685134671428799398920143399802848576959219429269926795586457175210334782893153480159676940137080928290606789314063929360694593147546330087117455545214110787853112593354135021562933757096110854212711715175871866287382548440296134279149166598935200852246128067175043236231590390132071338076981316044917494001517263598232913392415643886043703864040589300393621733718707882299970726654771840527406035215541578136124467990799401462415558808014725485834907925621954470061909674868133677747593088716672329186797565269833452266583123036365125625474686867046978695715972486513492824614830549417359653512851142108997901719042018480886888217527081601926148498564772782297045689099748563382664621102866235504956777695908059220411114730093926162585653766418142867793557272326413038580869722879791835543301691813969233845435721894402179411368963024493066897073473944650015752558275316698273214779435163238362941078060835196675933221722690127684005211310279907717310075233924544117945749145283475525948742282919366728372475702196152851113088135841534384462404453058773816738267069797265327767891934988108062052671359058078771980371069280634669104576609766614864624544229903354545712559331019006899499035804966546155822489177293468245959250279828120307807202535932248447399252620492465236192802278486382358833826987579620916846421033919308838474846455567613738325110522473885232207900212139545511731407105327859491292425676557146605657751091042720114595137718926786053538142533730091555645164943060075972707366214480369319812847230517404570973003870858825661085164997659785980168654068140178724830004619629539184464751559789963127644809824090553332834102766409892490809489620186596273817881127056379306840603700590710848965977785365187669003516019594683008859492496299028693798027525976033801310990626602735640706028062026548815861873003948661155562817328651886788100100248085557860956023923913706877580727609909220104363723792046921151120857333799708363939325713996304124401297252337644595434126771400970426777665802505398663582255867045477437803589930796925602195751274443237027658749537903312375835706863998151239739683435125557433401916089133042585575324252133884923560731525366330910079814440014566885215042647223661210682284696085208025737240086015991286290540924519456973088771031836887610444181007991596168549581357731978185346992617051138075648314028548497618470725207700055036145575938007763479335558761609353679559001732986907343381734502560746294047775737238735435670784228497034396753869813989309236150000335579839464161374194319468597377577956805305539466372904978210949203935090286564265413477828273047374040020594128702121845420060302436412178786723121911262610187721006900715938196587800656235983688823549159395528678645139814365193331084927220588087457473941164400441407609334104561882591384750685072557913402744490300690829189965939831158968985453606321410481336409388594705800604854584803888156490267860815275941978469482439503128320113051416204352816974007141633748908007278305849200425388552215165695794489639496984824403767557065068130990686950033394902797967797321991792467901161581604343764318811342710556481289734658530802447798932670013418421397108706346661664626470576233827040122775091201322220681985463863090275253374389941335858336923499232734758264092077813220711343043652554148264663864666225391235516426201882406271454499899849516423165988154228141359166041671553125923516086691046081041332864356332816542187939886617680796255095998814546002258882733597792640833854589131341216204414226209484985735733416942934270782082964803968967923654570365866865388870251653009606890073877013691667909962524012850478950745692830370177406449641179061998256957024379352471152586401318149203541907338512061550135367472950013222246308249548158036338300373470171579079165892723100181529646055237053655834545152647355562530442611323470464156637206754543370777764514348635260144764228409274406108189882651973021595637422122309648348665781934369785669117392108765260078660273382406761435289772549111068583030977663849577062771491336479792678239212550608368982342531557181309511827216315517621132478009923003073576020817050969570532175200986982251586383846250259959368396956727182230083342393267489945689598417427584094618179433515075910536639831349397023113778157003724045273099959429973621405090467212425138746576596567215209946559328911309163569024802749606166745803809307513770739449207346834909495799842574826068780607635334749060160599958143727238128705183764103387429770711713562905066943395446800150249568570492317372258252624923214876538918608397263801586070648413262223615677260925976568004824082896719989296963994746343723560837642127379403534256024840188995808343139614751983080168289816259960785965443250336266510229950618366722989774899779871526168914104198871015688796346485342348478454261134858684134169956307013924674996100303347655713995919922685398654958375899355139799353050304173772668140369009047222140049514637381981919342399177780927382251624574324385207518089986632392793466313234414491389644460800899436973642489506927459056879170694331435661017066023376786356754168435558343164791418130159278085665922752632602256154742493044356638113924474759523110757023070029087699979110490185953815715878527490202219673217969441416367966973093934493119266532870269292130882218559037514268412473683537961878320228465040490286184526968249247256269823621148722942073912017077364058262126250771129236807649414563489947450413234084174406275421657739591811862083232312436421420034797585551633217588897975208563181919656469058021865863905097423869453610066760759550198109105292268961029707825752354756021877938538826246245481452295325254205441059111657866613150749276960619485503889849555235926431250293919898550413501963371900226134761836249032641125453868816334139397167558966329253075096654396777843761747580335452119937802064126883870519190086546632850702487540720661164125773221340695984291943572471796966012271503063421753618115648085881541547692070558509553960986192142620343426492760366458631499867323404376040864630229533567501534079906332394190501904326164355684586301075197597678314449684516273282608745037027309447721730148811779176595920269738775408691519247009324817394990663400309215339793644602259046561413498641826182099468938678169751465130296415644061639028439759753792642981741269017196440898998988230048623545871249226470954991090816671648213728011298087993502031394841381301073158118731418459083996037940345541912199445526246043589737894362989477657104763681854982382022952105820545571664694819448952349475680125593710093911723485081568409686694013420772286624969650863152310234221743538336343417542762886885091214116375447558051928911165283867030008036185911421590717363595434539423953932606213329691140023066481681520599845760935448943539889969451706469506900219308746301791450744365032553658961631078897005365836000327624171301886991824462158117592791108271149645216885524258027850275805118514894986912953405645782561365880653873175880963260112958032290819692606037564595830023677243053599806383622854489877892504276377218314263812641990562733680376753699495482052773983625720897355295238974111254085433041958804704390168006297860930655914070071151410627632204396125313021805564958035692209678002771708127586571443885821370697364406587617425248491376248271911967008086074118779110468231542841939640857166308886655027625535747068966588720485462059772184760181202127290750997499261918575518020166336183403745688293398850923649074824301530494449334804236605960131727298447460392623260323073098290765975324261214948090710510753717360683160491493226602020579070560383652880722348359150492267551179887048792163012951751592744844796888627810331339538216050535786272164129921403590867561126076489755418810063094189693715884007104478561089408721747501821918360175431407530970282128564361993326380011936984749401185051796660925250499531485972370627462168704963222187598307023611050359896534420349259200313062277877069471064598875730993063592824714050946645672663121059976233670839245940081679021934310879964053245079989924018976163570985237024686638683148773181560641648364358843222290275458931327905382464920466639552354314080651623226679478516622323817185353525249305926843249740183050776218066618994665294257691825583598537198278212341505334559343951410698516945458619262071278439983152664998514255879989433036152644841409088892106547341174957717159169665592956370576910460089974025253781815817516847270992441501306815490649476202682500163687943965252349726627264511008602659350035902873569378588587101422166182423075658759916951240276769274206243459009155348244193886538312650373287725798715481766131927985695352061683718639745431685419096220906226652250802703638195902661045708726898636724954777008904868615278390515201219956401858027489179279835461419419637823374856289979574811879057842454785046270028118015181865640894743348930132577466702563052081649581167786443925177535095772360218059333428365179301944015324409891872778310214267281826789521610178876831728879194813310593890731895925944101117026002015471479667827089702218943970542127338283530569511901597342048042280174409522201635411793011475508653360574768722953546562040523225625164863816266862792384361885515567733616953507525808525760341825095228233575428707450379669895486589439139821143323275229954627991181166448246914623559937329120770985181693991859618674998469627470208221574307787172834181168559152513712257275899979191418276887735315171392239850520556631304208923174870252304495852812050668038365790509746383700050155782495921777966535797849923055422689568662688151431349794566860388066591950450633338635753443912889401259379571445057412294872627005409357727857407791463578239136630956589352534687003171068478817153921537406548739565866793487776257655001368812498228779123104178815562694747525233504010914179915026976410038688540018034248847080463543358670124337445770625419029428897477642616386781879003126467797277715158787720434674491214308316593074071022479178168783026298171178902721724033929453758671309103981783764346503681089067752584117442354498294109373731604264250793277286844919756938834312019617723328608032782253347275591905555675393227283534697626688781978546671426230664778847879107481057796448250526041695204413146502803221427025125689302978370778188079650333396755305217085543757744031946294732068510635543598817402532951682834086257695306963686277021152271633415056482073313527162852749331005499110889240730597377870717909809659517346301037375188275506321972579509330495065671477305923219430475689434338909362425264344390198199895333353268703143679840501924410124457250131960366600908711355484595585173419498033306199652736469274263846774626395771641599986974179700473068930333766009381858227649106233257618875686879174472584184728202488955351225075935825976319613075913935808666294113573660319988152826837964589101765871976925452143971481708808538113999552738653423727954918319651084608868256384652174090755923795993061454249412932142897463535284928465240166105855087054336185146755217115991823697058471388571065768890072425045655278988132734079658148542944564753993116555378057012280051921258180759214412682410563204948185932311976322395352972946519353187375138152122816883287640501365224988711140092040642622035154186664893434664285045213512882584322941137734150692637524622387216556758687618660320753622677622779066479334101505521548161130178820616668353515490676116194081584837511309136918738344107454766050785085988233310171574782051738333523277908470464781266824429680498021983452009597017868580775053171341696811195339894934919307192180569715593809533871192806531701013522982488489080068316088125649632653297288448040652498663270075913594236056813350601208843667979485377952245366989625585279467406604442035533956295640087853809118281819359028851830866678182786512749148881924482942965392567621537086146968027547559206768687201364740324528674732424636151793657517865985583591713439280730920268828686706485929184514719428427911808166999563395895201459240340380607856533761888191058337504675446208358812049266141372663367587873721958550123811043588451809710851639735022714764112405186985243833307976047582966469455450207006580599580370327260137554253230611680020503331891107113360806336598205386220063177922679661519851786143362518666681952115394893762207264149272383096231632445638863439962618464037128570758203980959341248284154117849736942848775785398542389558834992127698565603819296650600422509828834018589641696931371381334074206043438623592193835607395927247589013077683553911947673710549229709710857034826134895756176102963137574956411639638601537761696356799766503864132893021173712857748001126670257368796663227628555949831817983974335166143450071862777670857377895358861751193367348830669528738729901599102860408142871448223412495186163474063341930516097833421743598911230436529059455298106604179645829475688660049414442167684063461104470744962003707486279353665448035273675313323344464859871643943839240811509485986939939729255374643117804226848202010264733951665524228591558910750215155723963930598892435866171129872657212101946084562711316569650859345679769764102455085084651063091021562484598970544987406893705487369137158307785849157487244102010603331036074120217257787036627003783475305973489479750409261127790575106948247264297592058049436252613338028230449160272770215165028661856436378786190173097298888325275594768579985552232818095570051258504345678334141170269753570625954338029431705641738428645004920516679988167792584778671447939368586773425465314633633615986599630156506533358160690730335514621601567500056407512038911932291763105847425806804074896610387885498187642152770628056185425161430554890724843733683325722591997912812120564882369841108484496553101049189496426726227626160503340689454727902898243243659028183679358505827923841145816064695806435126970584981370001310508415506689096067379283956468167758895203070981805356714161170599548052124249879406410689972782530910669795107104013937179181685296965642725345207737789758016183692289252452932701552827559558661256179979324412462877808208867434074853137712559862124492723702431102345630883455015837796962276353773331552192303700543574351920007076556082278318793357911094688555536538057497643648235566806058026588712489194664498792662917228824086275946535689580345356375120292834074335129471829835526958416849392609979786861679792748897570443044784710137389245456184608722281723387275447776126622242349647714695355397256923502434341140647932412330081517261292501525531080021279365834860565935128165158559804420123446458762919306755100740437463870048811991376298202167734731876541136201227593802814590080690060547500064191527846207767524790955776756765986271434855734461528705827215475822632538899080196448390098450586187147299162351079349713818586500374970623939170818981354886623794856591484809492515248521284042759156700505928721276224234097230594955433674219688731040015457660227376816438973340105498996086827657220237565743830631058548773907903191091700110129889958166995322457175602081698701133921667857045323415579785872194040488051903808315286179942432945059503951195726659639243105793255397880326540585836864646460878778118726577894936403537368165046923997823918862870105352349103117815826721025099424358571470602425931732061071874534590676290390745188005050162623059357413858765132007674116440505226754483805584644310840783509133138544734336751596342093609602280546019962425966465464086640065017300015814192790970966573628685299797588274196674840894805414998328707876118280151673133969210169911789890178121577656616544164184113180322938402089934899173598183434212239290033598300534342710109357748454519224124339339774238870325764005675235912191527609368736666507420137235231084508183001941468833078619090005599476463040345286977000956175375295691437571756328392618685488200760346187458096259538825746862047006968911362330961323690939392122139401695863075355935447986340951787686520149557060501305387407158411373183009259785060204864213926605847372482724017328332691048731421715344773045254796391083678857473837921521715848273260687967621126484268882509179518598202425539771609125264089616352699919534503128048744018234236732093364256985089581641150149604336019585612751817793248302998724633226906785065576627157807617260610667012952433883309764920862007255955334181129109509193779481810179061891226859010581604689396067355274105514931386303116302020086463053505557283883380226281752909322722490446154951969964166402935906190338342724821930780253005391392151521869108774570359301772128281311366944385452548551132913478717254752184382871829266867916826163497462522786877020430723019315667481354360236057840457570568769487931105854968715687153126231183099957252514120515607322320148898714530466726393200455242915138139387647723754020093717860274758037095982663411385280386766266269694969330792951993037671564020484247565547404000539698324550690992174937607741284211698203090570532041385974707486793591363722819042232198203371467647231857082824206848586545044343819145628897371604983941340462705199750758971504967660813401518478475701601444674952075367349835652878462345617381143315234541124574827730706034350033715392835993981255121416935199877029899175855278080234598409702401664869472029583793050028056966958959056241599137850771140719497864046721323770799143729027431146259064733371499818889451320560522805388874712022841870563243740222007636939459883686651473163806745154253345627558342670715271740577520893929907466271097227269406816610682226582956304274714656888387785671415053751461451704573216941946525000649542620640360866558764696905573309955586827720752508778601652199306267031332123207032005576343959265073252590429234667752354070147230825343075426883286358403606600545185469945209016480792622803922376610810616465088299960849759785409555615862975153561862031881862520978195298026379179897262629879695272524061089675689138916259557053219839663925226625555443396834974060238195232785353522454948435189419400033902563972451985232361190286498845553317275060994799328312939131216942284298720320076383116711012349853447314743777549327864515759043891473505597853032165359542619879850218019803959412266692015017169449393422786557096712046886497374475925932449628420351791911710933229110510663340111365537053258963092509864008973801503887894784922214371773951722396837063880357830866029395163782811521224371089167245744722491093835816283916827436026187463452282672880598821742804950748675454472432010598603279610066552074099016225180910752612785769749584615400024029926571566637617340297546344087678643896888541215765152503483785456230145316332044923831952398930511689356076768273790093100364316989863592022434448536298589829800228185732279887568833882953854966217077988210137482157376971319325255095542656452501977902130257702805277531416344732899696962318622922297442430413742177326232949018179058562204344124652371892505522542721392247742186308575557025427011158150390579934415577625043973245717568859676213152083623807590454734678171779584408089918765875831272910815454685731352525530063730375771688154552103650105569951100517876889814666684150394713551902339918935903654115749614820277297230842425230916839009816465215892559728266299844039794926173039363370720687769827288300984812314080591602505100645597600712672072493372071762054071122102809423835935249438488769483691281310616815491555486385967550609539210381668888030338890202349475522056913015085456870394402018250403293870623224637418803783672795794916336811830030658532010238789433108464875480952402772062370927185619441270206817221639449461426418182534154030992699207953385008847099534995986111318262417947705181045398879734606733693680921205957981129241000092568708959244143034872659164218057018657535731652260609027070168692038910217225814226851605450105168830414605897971757762456704151152599212898336870816751816148801406994212268055129137593829306607879889861885852599763647508901595049291862389618673965569047042066458722131535474511998664776312026365600945314711414534758463810312703028523870476115053833720973820064836145656360999271577471572927228889577171900507271611885292514369952601678997357591155798176756524195246692527439359922141515507787336621263061152810246965638603957729430412161336686584165608070555782130636297506547049884707809054586733947354236506345053010791146863506060547039520550864750751545133210492930094433316030776793469494266284944923118073225372889335563932785392761381106762298947397422398623859998896422493654112144176004828246577452290902126779244491492936858003769679611457880880042417118281234271446206284814552934435478291544359145991646736653282287674893510439233822205688419380307898724412774289503397897649240666298449660078948585500835491281395975816294043084250529431588810823873746864102990413408294558754108373523402731960610537967756276435651536377002512530209529857915876941764015854267450254178944736847170283301390690317972608341009859325706450840428916316746567031439608149297592779689155284916664304768374801194327964766450633138436754322028123087035018471291613442249306510975368317281551501228492938422569575819747939294252897417892274124843419959744098338046326760691032059651139449682695005377731035800785796456710249969646755490240833665953859375376208414799831503079558622837003102004051006524586861052847246639711976792101585376472901474441198106780427868837178340141883914547661356478688454877179869896921627894083171300319199882301431541136349506465326411687123007811054559494354921101984421390458093279107885220913999505130747059046281906967884539911822776992832334653723383349382697431803036282967147270613168958808581101414261784201543267813635594675479327579360955596393398409555747258351587923314765845940605825535365167842071123591824058245554636680624496795989500242236223260197437382038517254928435373400352911130301081600290344310302813525644396017587252675183471579843597703101921501241734231998607566747086089749220722328357349050266188832511634549816858683940226379558075474025000663337151732215977553308207618549716351414870148403749043514027167435318086788691214520057649620441452959945751641323934835425401054392749402549915162350356801794615896303056773418746839067074093404579460886210352051346712440950473942492863288271287511978633873053209256095183423572038821266848349546574806679834084028889671134495660459072100384342904668124078075146462275693915288034377537294629219667973384182198262689997850410674779418989404974665284062266407150316869059031666242751020990717884951110615860889326749448774567574746080175825668498220509865709826256185264990157558838128962855865835946332151337882292993693511308464273934129396513022208980311832771390629248447771885135341547874878721314136613484241652506698705046916845516438840430366581023146401228042533989695731493703691723352598470099129016901337575104142455763310090781352279385155349671855431688881946613545852294587157398353836699197219506210157815746443041999834958717887291264887923151287734149676223544114359393032863493033668751763949481572524642585193061625639843776334413806621781288362925147656438314106215863299460008006080870582695464875331919107707267300305203292347588638174084618243068709750404305988929245580075573007217338877133153975001626395572012903334525898622294178763653027787531284010326845475864534626432862946155096791095895424472254647361264470932365432358123329482735568309248575500771741589701461259487923407041701370869057635618347716536493919696708314757329606649894532608485643985286277759646773829268450218470409089657365421428062465517791238707197143346972039930605543319825218466866294853756442353634010329275603920254379643816026332453912151990403754023703240541548211123489789588629818667430994959911487194173736792928186966781424122893579167623145407628573282173230337058687613208860396041124477665026227691044918653475612566006311710673762173310510670786466089999660152007786620052767594336585227645252018808510883598056620245346323920051097112367431383604534943458733672266376569178348700035705406611300820031579946067533715709430374431456824654204805615071252189949903852128963596975515222720282791120011117909762687744898235787190320958620439613006937691386205194005371282245149915113745249444153602006116855005854055465541283727654454212652086347165159944384060188108223534027373486590891593676622104426384513080712057250441016199172059003789293620886313507043482939005465593767825631666488724944399574134013230868165584944183503162995826181156370423830210110472042882942637995179141204185759363003924135384986978665916032146918643105402035812162750529276764271327356853863695691436843253850931777826850974334690306826824342584422404542292479520888630740322914747698635924953149477647193231337475127892227379496284278286497536725130537423599456521924551628659817402330571956199854963388648143750873672603985860011431311884969823289535807660469689824467434971238903541266984069078347989932760182034086280141293399208659751333974367799260302889770680295710894686210382671348697124977384212311548815034397076596296959260713429651044191391490253851290241801710043979356726218196306928584798679438335248176908681621130748289876723044354478451771753197919324673128806906682495284629926881708236768473286723631101767008125522471753940124904702056784284483969569352964567928318451660952862818799891338714416477172568345039688367130623373759276843510801139839392944073660205924770450070434440291628461711690575511463272556510443400534851421745661759225262562355435189143351019552632698194798976867048048762173657684849764180936346209508591029536844437692650457570265984774540031603332843310683620850432085234030223725275621215934992564479144755280925560212421712342719617502947922913089656329562746611533791165644167571120560941900612827003450740203051265515907597373588524111811660463337103095331898627978798535797132576999487029733760360439047266340892179425469981469212351363114613095373429791699925433957386387286209114859879777359445465575066267669282617970050621835294706230261341552054278586523958449701539708517712404298836752787614378726669246674672819520781935364445878461469812146570342672952038720359255431759136194279299779247692771339315180111798086108408544896842184965536915415123747197685660631550760733145816070114359761405386980417473512899557372537673203871255371918704852931845993942004056819719442748098703087750199335273289619088363709803348440376076460938538532530405216684632969009473071622729132425712207568346663255704141632409732029884554461673464008961112644231066617836603757004932543894669082789687764961614145219750987385808982111556257552383224489418073092247537939629103478496676348444040892171495872070588959262752166378340503983817289649913010615902008240628014410127050934759648175516515923076674671073720909010082646984427003305522254191231731885958786006980934901858151919882007929367609641078224618769379753211040634997340770731096071295430539253836988532673864469242687355614305396114991541093040695853793279157177014222752772535319986701141098643928002724219876168276142133793824566080365462285468367901606901227655097750370220339753323447973604705282597472825719984149483405193743067051378291776856495666715005337935474027678404765189027788278892379101513578487758372239292938441614225203699939413116935120283210638230883754628802580519245036639009346325213038816996475757694586618465548023490374893649118374069076632824259366825900197319833659849210572884701909996976079602140161065576669542484600669250180497361069135080219468496057079228961006886723035056598286938475101423501563936346118014188070535728113093051341039024100475569254745903839496422502808828490005651711452799085481858260317493183980561013427607751015106506662392404982169046606262036737168429704407285873098388020225113176701641744366572695883047813170442408955427309308381596468589937662098940534816019365512103610754980872352047719314242106313567419701268999357401182045867366924271120351863540400659675137284652011572253468393778525522021772226544734209173454437300585873395466982078142218302637839130043815311838320053491199640924406093431085526269284117482180827958920480172118322860360044030491723642629351620214756910755107505165552885132246263555367539803640065679193628991445288311233596115858224633655518510490297351410643236791655815617966491432347782265935240534549928626168342755926897970919253038853772110257930062057008024138840345598592399848042489537154365500368684624535501035680745647353857097021094053499195606528063556500681879988603525980347600214234394299784077181294070427393930077942655079940925010342198527542836333735265261294748115760613061563289733132103715955227687479283734802553321243419178626836232206451797033120292067995576050006219348057661259385200097546622946771200535548900309083100579520837141919518885397900517017015026958074667639248782688761339295440143187371707123627625393218718447192378265258812413199832553205108829444307561917340549278202362718686389911602724054067692518603748121674789262305609846026033726229966664402608608889033790592135441876691993645600813962651350524405890721535111525453803981385130453097192916941428983952330075213951953237760085850085764213061594935746697931418992840113457497609625645276903938152177481217351561716608340341066088605800493387029168466286001541968970871324362653907880883839271761167353441723878134558153067178233745341891957254063551758998648264106186575745303224912750457686512546142722177330929337558834311985094343014825499303961728669278884135002535964588676388575627327887965453191516235413107412441105416370079533898048052313676286225650455013407429567877874649467901495892608631340189561071774293112229888799285293876231693478531500785169058239836511372859567083854842915165256965951054313702853898512437974867238695542719842974891334070031445362554955569048500700886160174800329961675610174539934096169707248450492550190879416972835312038676303076524076748294900481152170075550147750729647371625666314277575169372937321301406711433995137691273217387362553024379510731937382764379447248321839958451578703713594055684719127463162945797207406653755211669208447888898087559488132411445367319146088653719780431358943738183545447315243834153609232592919731703662996767292341894547767243668447957605732905080808248447561387555874754531445424836980085397956551365057105834306648552526789965977231595175474704023764264241893693780468995602811123572644576599815782449713577516463859074366828363461443221565534713294725551393306034475399719535098411268281003703511093661333889240679131715998300931099782827203940571879462001961939965365298664134336678243647978416838465038532818410386215053022537607795569248683385472309246880023251394471096717914048861708657844943622933873815399174043809310806101925950916887976608807575968648121045717885705574584701928892125629271356979806470600103551911149366189115721065521754310304862324982244847122230568449266496344711531050410392504035586076852547090569020173485961813746053347672394957223070472792366602961304248394861182193689327585922098599621300887485534139078621001704178314352159028396015331243080173493500422865123082212024612686093564441480565040622641596191205103635446624574241061476353468572323468235973005628490879548255257759147435363132775429674111971649946926139473636518848918470184032609348137206114143858617323445542747460109257338426357033242747691515988970254831945488959104094056971102637705190046063505132215400941556402379452133294467675063336897360258881557220515142904264099750308854408244169599239599259802019732977044035642392558587468684553551493924818349192348896207317043979022892960084541982551128251011732491767791147517066372736697091667785505449269492136198133139199813944755239123673558654388721473135545641817990421198109973578231888389746208839205585618281617489847299749985224538239663327436147209284377238525989438932119284758925663065098696676261368160586987175837951668889317030266496929490080313478201232786542445148078748648387257493568978043807106684617774871976726121575488447213130114146149959777000098076948766956723605801000775608877915126115146795286422716377450301243732046780743281095399827737637445728476161358176507120798612934862101325037589837979458433293399063758581886398091965545483256636379393463660340935330033132134088138310529498792411679520151433555265585300744394479136528073977848017867532491996756223461449026827292907626594009872511333488425474249376074973232143286309661125877684907809875226309430149479506321436126898621761459759153312880783460390497354130300269330083159438022103076512821870415294018309740986529385870049079150236516310310093675011964672280687279635675119517590763237062923868476645482965384526895122446776228055336614375497913525665314379222763781322236625893212255961054141440246286015574087412282064756003207392923223674964106932793026235301997459798469830394474656668828887958455409817841961346460769235490641839595711835215181575570251453168033322124291848670063105635917718902001309479322656507455423343900720333688991049721383686761147353736543514663708247553102912465372958931952090124627838363932015049490820440565681547702161038756958587182511912434191621668259964555445209756777587991976527796419431412179749800343470192029265040780399701167588472234911987288320621113758083535206487051197876663371184215621771619286778575880996651904965013403560444738904261445368328337970118397540057746043011851929784879702744864582858431325046430774690314014042532391378888296274581806751089037756001151343465640157528441928491410833119490702499872787891473744266911180287407130358453713076940565125318733425034552762360445537176714045593274602985501778867518258262421419388324063517121466501211916923086696416704046190010028807079026916288151488412870362135227140002579641539116184748652970875149725762740263759053626884200491504881896705974372011037804117743526082180697458396679932246617545857267698732254684623047112932246571181099844510595295653682628928755355388629068743936588852943243460909139016810194320016056697665488986885702937731015422658572876940773300139297501994850035176402631132231448952811504578573581042458781819998326103191249637002420677942863677498458673929663096341236211421330870260367630359844403711651387455770117801659750255938797139854364879808670351594563580403197492684057927899661115051511605786062382244115869639090586447345143486920052616846442381900126638417150763606445620613958961222836499847240296887321730609946924397477460941637447712173003158420364560215907394552308946472780328514271310848003570512863182454461732506643691600062582556280731375951026650894401776379407319007782851963735569527864599798275951076592895832818721973423743489058812067472253568453753607561995401655632503573585049410814556489488166644593818440003398300519748033938940628262284608308256019481468055441191313479691593709157016614286083268358937875672006277993595888831660903014334242798962274071075403409387440641034378195920215810413522332379298656590284390947138006662428821957106855612783345878864707507014543984551748743021311313623359433472482053429256014270519344031732663396508394710413669305131588047866379352874769614296104643536332294216358897090541455030169776117704324213993897408758658153606386004267568933195171322753048035948483904096115445193136378176379534869771901295688001604045347033271509027705770626402457468001361690112428202797814507509593224037127010261543797406256719788885919090375306102641416335041173026835046137077605668137346320012220035654379399277453165543705944178157247185111336165784833552273405403795939691246791183984796690194243183814958003069579068612009176784238234214646687990581027704402507131909803937691386859593983986776693519857329893541329451050502260206436456426184188407791363996563725565889693941034959459811938811287102856562646829641052111034772189273666575672835677861748534931553636498043816390242342427936510053687846840792834696501097429647180291429448768798598338913725581998293185919872050914907524094663670030722197936461098083162810232218241775393253447283739075527539120287432645055421224370011625515599164083863524922977250670442491664614594197339614324014868810193849575142408364348892251730357202247301826229619721491041623382365363360079925501002953140638086868257860887623355715790082533297208107654888497117078781628254051286596658872159378473475503127555230872804817495867142984323888760880291163214905262564663257954804312505743522462279688499556153535053251953931276666490197656219227679871910081075668205187982342020580932892903394960002578860232094521242892785718583029523680026478290070831719814316744510454712345407266734691102223932577880849348431947041876465265369381730054933401165697131462918258638110340295604586960901828281418879047691737193991469606042696287727516025378996815812722306775540035139167674874732622509944721044416835984389875156214856429955602093253443909398638129999045639983429458400025617571089637988094653753922365709874350908948333679602548009032128509951157839479096317753254924222530405380862532975065722179289389135883323863017441829286213537634914118477984476017808377679957545104354476921090345456457196908467702241415039169309528481675640488342496245279674858415825693202650560433493273021795168300663396110740178818566996498208377592593521963352560439318864708496380308038054446982046385945119119405678711555899085680937234898919513840433413028138119350855229374631385799175787856163968825727913422236863369077285098209417594661436847262073986396364919984905583786109271943050235165378255418981311595129425645390196561007235045566616850180255619379555327580096762618877035858628690767240209742901851324075403461107859936959450361638262789770471525909356193475722570915202472166937691550949903499476556481807404075970045165862727058436607374798594035668788895554308326031925984423544351618078232503303647022177307466357743239122626355380834987854911088413586707513678837238609464809861765526228492130632471975480933842711278865030866535829610448512628771776549171041945253236152317014329042481722346547950897925861154365011468860487092995793221317013502788734116885897258400727871688438456858537617087239643022852589959099367700389425772159089290968785488101222271185200890126099597667744292883231084355326768852606449562447971646376767789366441998074792249012142801913528845358356703707793623246981662486291945026841444390232037010486183050765732172648439650999081495921512501332743848425167738470297957125506506272743787276187973639222819167080466090565716925790321825570927143479669560994249557115329651591839065882733706769032850128617861266835439901207579758984593505344044174196032920885816938528281994242332129019905762559888272748535257784149517699576539283244837526284093043090019114304761714535345726319176163661680143509740644674278293634232245028828035165773581622644876659650958563602083366695955707460741510914542299821494427233302696211156491813754891362778229742096696261563692219061234273500419405190835529582824600230345427294166293818746061330714685437372545614788730465042718921981797288300767534730482074792402052786684055867421896144429635602419110518358807898362918613597989409067728526718736294180309393368658572656771937640436458474830261299351255044179719567476852560932916413338174337445578922267401046332225985577700098274968160321825940413814582271984546180671511531287945919214958673426745125460882072078278495594945723929123432352062986714886337344006991221452788463270749426914309123768323010348136223274584016366353876514065718506849750558754285419953571347170904049352763769496443920447865654248077349440606921483199086248958449352595152623920412478207350266344248716455443668195022823826271271708549914653701703125883939403146059259010636464880176619665877990421240996150878602376252753275223352378874052292400706033951956271504953702050639118956784751420952549642725847664996506207397513454595342067189408199441185105245319191270997288234327630460855564642279986963044750998403742131680945576744089002376869452824439382017179117271055111967229884094986229810764361321523985008509452710897691733599682297481777746275888113759882891095409354995125352964977524364616495234517448109144272429459378688913268693619592146445180384302961142399526671392648392152393493103325714479026138704014947908018977769076371956418736059123086418537386622648862975539182572136311311052856606382262014099442369300769778726443686575384290940296716207609898874357091671530523229324990208354495936348697224540679973909838523231135285182498026202016090734565603734355007804998655821660114896403996935523709397903267492492725590893316653865526935750742666117760556011413073170257542891045228862417951966595696334019064735485572594237060126780664756889037684948532616325855469452231943006652331015389179718289464288864548003604030248911698546330329022545613148325012257478559962523725574348775357297011556293981326122175601203914839658954890034645667568957854563773614142863605747934441369005161878049741523728779854886700242501190905508670424638349566688244877718142269765828850773515930317028792094304231718944476122340492925463325796208785734207151485096794444939454714658794423553664986547572495616289671440361023705242058489679298717248510007875505546450306136639037944535302041593093894617873062732126277089340778105014251495388760923930315029495694498933498803120180814630213460180187586201959866896705253560341494469929316946900519410263810047256332604420061176446996366521618276590905900818203593002459673130924652093671672309725736663333199810136273667003670453564002092955966814805520736755859459749131913586834374986378417205352101116392064815479546215535582278853448472030349890847991534244635900313237725108684236578144012537604596083652480560820322905013466708961657624891275065941874021739084508751546683422073552632176214677647530601338247546238546511325905671240457990704773261372644603324060536699061908216571632000456600521668861580272933613057805567027043211183348896519685201510627385508003224338742848546645254247455010988588264717188781885723085769880412091322790087543255192082668993716352513113457031904057814869099545114486528039317461155895739295003740576563709750152660921693702096352753414214823648807221208592547639981422469544059198902127454996591377152325880645228141092082100117490503454038545957392248173582819570062008643877929821996241921854234028988001133629473439297207499319564728324700817048715732234908899173685121545051703278550137597561933075585774693085070791345326486588935943956802793013689252273722786732243295106821365282650939995986207336940128073880420293412888986109594594283318891934000631288941310885694989303790159973261175840381015093741786511462348903767967856974830653404110789652252533497166564918674045911027153904865089860665371312582604136042539299669809728821003649911621465259911697089781686609989816268486087623769622476582849074308980948184124018112492395839354166395934608504967963132361276900915995231107515307567207780335724050920011376337974266373383459187081031977421778494052446583139697601240801786404412995829878075349156668874201515015488906213322923969855949297323135810402541113279325636731124073029667308558036580268947046516202397079039175341224669818179486655874813872917949405098161301079667258276204847920834328497282268717569016157572826590805763149937254445551550267894599016021743863167883505279681014271593063213231470165970996783497951283211855800358991279815798162250678951364278426036040857558360922750096666768668042683482749042366180099715816253032275556821470145436477285196385905749902263073603130904209331858620442434479106435803719092803706467895297269892575921581687265698443346721327360858194155879518143401570945604959843424627994227165152692271411542722986987821746563264118676030619948365840692110766167961572998986860482646374440500000619887026000395968162048818046996370035322054176320431809600602653136314998294402872647225072876732832163798985361621156320167646670400980266328899980204805123727458834419334188498321531242763919416665626650134917498515912050699987013813361990960230140517691274695680873293441453046822173190902158616148615713462661918580766661183633233326910826427908400590567143036453054276649549819263058905108119059447166888901371544057038793386090352219977600838263179744984108178571568653378338639759919953683677412364071500505855857021201417357539196192403261374699820171944966890095220103261203055490992699468643621197566629464152407549905238224627618969897437818336942424309252860551194469886439462008353040150152225302289804525122741920021706124737068665831951331350520780876692722846840084699423279098593625996185709946992174887511164014126286175696947983214682735436311137389744180467672199145283899889215098523685256106020205019987049089114133741238977350296213942525675159243895025041705453136109132362217342042923890770376256614889020434449960146631271335769162051193429267762458826006707217867268209761906283215238878880414809715924866938867169222961550099737765262965252149957164017806787578279119062372224395468633493769932822137568357109044747076774377687798005654825446770247375237045672620603213556558286336605465551494395064638977387189191935019965600884717018354163665619902622473795619977666789198710202006024770742240896146212044234259103907100980606669621508261002906363380795565058576676193295402508270200456336391716255048558068432656731826665235989278332353475650938257233983432804287154173053021459432606681959493561604866792323608463534249746408803676933794021578116100428948924963582453278971172222182000274175713055514962688059683333329905388376352342108878009534642338512228596095261892979750446046715969217741521744741235277794406848779956888085530175494523371608459374849990130356763296864739649010785194217837890498897602859968474609055303413849113108228548160281963675862346285296480871818964606382405811620734979383553020190286315040154657889818774186906793094734032895928462076495265685364445478587687605571420334771005547669458607255162707304150134515165577416879491009077188836808700503214728291634273788362414056366415648046767899820017329651950717058118394902486359571011650961859072115178195886274204267414337807041656398700560551847996085955272815887029795388578999699834864493738036434790714116553394526309830107403537612413684030863495367649399699836190381679273058000699860627598486406156118726992718060838194909729037899482008436088852405859438855334299041698422544424135837979961651908941561677851965976715890644018251553955798178384868615889989316550467783767998941021576356544282097627966552170146650173140252772992132573338163004695065873934836191934520056268669028267131609390077290897405498859790910797007158171903505279589135977814770343270297660028850927197976809566428713073522244870464466421409284016058155299493905346043610003177804521830179425522157349614649174895281085350943284854671266402560388494380423002725214196201458118164982899899137573041857280317563035246660013925457733551858983567379695407731242693441709009369805791573958470225838235568631026008465777314355072072561784205522734679503473746105513273031560827828053784136657668398889986538444422608581016826275164258927041422979918248201110057933730285124366553998638124169023366191250649249586381943200678138939259193722878647040154216565949016988742254093572774709149769360178027187842655078166307976123752842351017256610616406838959878810415611063742573220415158869058485182643006678949854600448953626192399901330613295225392589846591029231451361923394454001745111029617213011990999139395151156814852764368173691010903703666190230771907190279690694289644994591604021862642162444214366895361175258355354293682039739747618774333864525509812278288758418199905730196014759900783209940751110747123069114066793380218012666012763348321566539104763428633876207773583759246323976757060083513421942198602684457442706441126476898410965823555763861538302783243471724494795316195727067851516969185031271666911663020301546948716149033995809015604016146599069041356124380484555364774993306063850859860279234048987263229284980522641384119245859910973237422025679234564261407338731422969636932799326691576465709281383196648055313963445808498521554933603256302849541636418261910435077071923068341771857658355760543862945539445206181635092214204227150778867303846054605238618473391211856958893611708953848885479414151578656963380012828302759117072213232148915984108126068530714094311367334537026838092245356082666446114182410910770069877126090881126088512602615544458927746887898118310078722597895068075854237040410533114357415845196725597584437811461574960032840404469751049490488054573691030449131726998002737978027066879349517740216211307826889542383204157391135984537908505992441121051851096353689630816695355996524504262940659528252892028427667123119200876338920408678972260777273277658857626356893055234677145195932980752864145261729279906591393436557531002510763544195590478623162633453958346366203313406541316772079737909734536969760280504311586984178135576099249499698813059501265705210962459266611359177786585421606919091389763872946620933193661672728923073899404936769566768148973047761122229542471666433614740648200472756538265864948839581664431731688841179021264714440794974566773981052198895918439320144339353188398434949476526741514730624304217225406340491554618758185746863795329055182415507891211795646642179561817535189289535884709110700323228622189931854433222083742394975294904785438662539791110433006729906537732980883666447619832863337855249327543428985784334307584531628262329193908606596212340960110801851054216868447417123082998879688679960388273927263700673723326419441469612647724984408001611700355852337876197403229443577740107841105897863238489919352790401394834451538775954095227339091301153701884087688767387069840994441211631229676667865387189854719604758705510329585897076195099312612621430462226541915729005565108065368776033752925000563319956483852625382803872840417685804060899417599810019237695682754272851905855749372442339304199140536818430818740085993579444655509420510520365378784220119509358049287938569507216522070988912408951785898899628862927207313823464169693606902599324316558707754171689850327069726915922225238267261140022845591161857731305497583667815170849482282602743686863178839041039256897645221952496626036865132292336934650005801553227495373184180596980842312457308348440828494506424569960707081868425340407160907365622032863867057913192697857669586915878530386886034118965259074804283318131631769578328095953199655401148201641629990646162163945830620757553300418283008567613496178620315954610207416480026046544173187822465169076180965211931121343108758818067866612292690526574776754197656185165081386690224489291488974643705486013415052908903417347497297135744554931389155480204320249279696624622575934964032486924859480080334755290890406085532982626617780882721877925459410650049190453293072738113437840828857937131109859275743050932931294291704061873065096749072472796717562638235713955946131612566674509151648959613561293042187951434951105681182747380614251237015582570966869024693178860231075630644870662950238912168420732204178891953019824335469673257089701699768155723220745689720443434162499909413948615692764862864723529219533427296419049216377173708972261695822078319567780876085959374142501939886378977101558174149385345133751133414654973679221844940885872773926563441420507392709561929982625635373141057008438747848459474135589363351838106818091600915856442025493329743250430608352463382795766952552984501143963495432405093484068533545036982434671498793402599639125165493618997724671880416031549379325199181535978770596114183491568224495035925756471816834467004246553568504727297791208667489323027982313612454649565412603987057489704718666467333938257394212809732298151480039291840883707961948457846228550998615725618956032898889020778861665429269967477404504487206039078472236485918821600409934258130592183355813457516256590792177747850837303702193888539911704310239284968007093218806538935148226778301039607808995615597859998902487275507288060701358842411128922442229740290944405659688947921541304112003954178842297337852413318206489148457760814969908053014650584895105348396408400859655345412594854732690369567792298381354552660804185745836707201373197955985166914537777073113497634416237762104934610631116447966837708274215607611093604795411005468151225320774207686119873332848021251078341236510666153263064348565022148127063248687304834532843072754057118065807124105976276459154231288650590608207621911794400750951612815963440439993564354548899675108444617570066586960341045790164667780626442317608123183557342851740775001659947444080885210792660547282998216044701122415885119164261491285809554534519285757095012638954482699809697767677261489537447758601079959864541704142082430219663427515264861928989210286437072212058148202897106936633264823783530094375841994300665528486100335437403680402564756367650378580664255101353366716253865560410002988506964543253725319117433949372088533188653115608027337359858154749527404715438120433673336743825470257966851274722149932470336243557907795933749987685046207778044343945341934457020148612262719954551542697814905013811400544415665884338231805430281851304741391747957800922736793925770298705940286701205363836411107740850510522576587961630555669006931467986008926350056687271659972061473224983625549980395665692027799049211491157878229539883964074778697450866254584424063179892870323402365469900584527657958426384961496127264844860051572562399479237711932948178097014790851261229270283308022445421013076860917103868995312282924094706826617998384405225335965384638642423934062020725548480724534289295117031275271056834604133673667825879598934812976180766473530310533203686040521407335033647783735332398823381830119782279464989459364827568917541954019497815521688913242405046410462614073626201876303110758359277683464694521589034237266236929568902476031340920261578589958078024058378871343834883728052942930460342568834482549752569646719260337263525856233111905778361330624864050941059311726142901703871268876661745011717726389360351040800278529187581939663422932074633853566316865916274537224091128407427430304934308203202239205509652746847543018027802547930445950202817014888767507576870798413164766122298137161512356110710517817266989904890396267202279408083708702223619121207016993089831529457530519067290753621292979286292186513188778370947066615842727931287339147455178797519236406628983180814664182897470015780874872587007992008099210125848225645171831301185595738615547395412581545410807807519410775557654549855192995458824904384131654578243356638032118752534883310404386702227771688423630940440998088360066156213393451345232679819954851911591085942454294712037783533818001155289640016866285931513343993284387754943386381750826594577851782856245709137643466116587439937570743946626156620560385545116393701759517892804358805237413900904214081854736843719953432826669052546801287077379638827862073583529439170032276297182308673392387731352975845096819237778353900311318657676697365970563449908335139793766288302987380997912048110816812508657047962044595567923773692346891023706169956332120020734498006984599817623144398960309399333166071716671654944815457965957270207451189095053097751667402507104754363085757219168347817674386679546590544982016603848810347249243520708836891943612642030083160464462485578848866413190248473102532946211252325280054907329589753279236644038984540465071687600273316758964059215447717248733564191628973086128321493784661459125673040321341114586572016182301100365158347580037367689836190997384431961276265180636510870728855561655914763403734259225286422739901734348108926799925006915525958905862037629713085098655444504879384398157616297714111576306600286179583641421584641549079636780727799941307499187031940381706476461104706617399685808105118675339274929611302844592522855975561474259682419308844162033493595052270720322955572130186200390115058341994789011644805126373217542416158985400432007565112758108888686768425534662790929493166760386513721613097265494925517604639490491918262960692172269106638385777772033578142327958732320266939579986515160855460357657832345309781885059237296196067762589399964027725345831440878611045572454589383543637288818922699445753388392384744772032151395915880426224124453611210200357085124521144281034296836332907291476812355576960041955871843023303693504862771616531006691944424866827212592219269867596162992715890224968421206027829838322652122010761874517740664253213958432843871652742901051273362834661673236804739490870985105849768274885344031827229564643286985615479024177202614909406501526347271160979246876383617473995657141080619132419225908006634804454881925835221386643374767351472446590558120093166951944317683239843889413823371567085779867177440463963597056836944636168615898546534539372967486594528232055190403305423812359814609537726718436251430357431815335003361158118648646205926697135891580690384863726708354256701736894306606364867078313524636529652752710755431817197427770551673594575340088067369993921128384667117052160211193971924428526544349444454657877016544255573973634621606883113379889389139137202889682612267843694124005366792735803997106380699313506153903341697277675541787153450599983252626400871549204779764602801845905867799984330958881159391591519883295584881272655954968633033988965210746555118170492645438117485160363842071743736871866532596388735059147900171573544107725872547419334908284254231262304228746359911959408955011262371953473290532040044971215919095710260736159708420783028440104588430643867610099819728024886184152690694974932912330408893781471261733062247274018578412684256849428879998748358658320527836401681498329498351886282570796878611215025689477384671271932998389734045288290577121877890708766817129095686978931890026070395994173602086193060345845002745317628693434520648687024864350955210212121471119878883498351962570443765401018838213142431927282593261413958537652629068653716997805183225240698341268380577539643584673605201260692351324322130822200938222565380962694213443509677519336248068632368537484285163231665136380654389418771531931341632581393183841593879204838287490474120655425751675550839086607882298055455553953469230586703123499226864630560308720116669261742458030021008042815712049940495600574407214655574990978845317650881831902800767432327770774631492021347701025677367135970075922327207041157373410507178700056828707020637491928970197181717154850642671864843102575816815161833552834080294078260618354359751154038877189068731596134883982873508278953644879038969917469920353851810809634658435246999721190372663437396643767326743688128428879317458910245391317607258868227069373745760685007257208515001074377469669071951997941772941739167238031957406776713803760766171063159954552146666325761789971918177478632357116193492025778581191053628297683975958799520745203490063301016905719222019552525053972566994286830428694473635031101297949345085984607930924709499606192031088061666630163118068792512468795252399067582041866934116333444238013813661629152570909552656494550010748857334219406559202596828983614253814096959961700770835803928924262591672225549212804913055087996261996779214640773343235974769711800180233173943368013521636965750280905333113586594909210745953254012950374684626023461541216254275859282148808202983667096880453866166931115463496914249228302232411388772397028740283768657235287140373329538675276234026047106013756877244814231943766189829914410052683416890940955950821434765015377484108385977326616637409667233088344163037522568875884771350323757418165026854773705386537472557473681231274307876030650469910628229809087620491649614227220781739282099442925224437832415547242851211655950926640155357288513931659340450899567465584077949944710255765256638923857188380784965836309165017811905176411661949788204907229740681955484923977463816001685757973415008006448229381698642537123988031624884408726388022207369013617944292729268885769993348894299030044084243996823071791052064810228747880763516051059162796888071064016177907817438778351836006791214795375615364116070447747534844065360354868106799820029167307010094411417596212071185537155188621872785935631409997958019976419870489297234897955066504787159694255306032020678341042795545609463644117137491879193190526575500161509211596229279582571888029735018457388788318728320190279355566009051923596660593614904791309193436658692028464249787468732460293305292504828214826958821275864728704233197324140410194757850735706716129543060920590002442336293971155325503494989861434328766017710012692043060451402747137956946418029212357931042656064807908897515140993103950463400948633211961294745903129844905326639335913173675327219325615063037699564115065947740402884184993271447568116394045112046170900176289516101408802528954485862420227791079146624995818383918213456880403031305586072108630336569299292888670559442909546266550666389548523539349728206733924214759723212676506088062409241895888081663370428378364706678085961736787628026724050553032863714163665706812935522089177763213581072262598872808929244915920638634227147710275408864952727576718639125558407240236667083401433745264121908893741990477630767943779036866977313941883345061785946212005788745869900932268267669951858156765544663050102730886341048134082196196176694368281902083529372246387979428976517769735508774338019678806303548751085550783451234377138553470236637753984319632189621451526814043258197396981319679877078701188513246948288668588523081401701393408889501662753354398385171084931407457732814555994507508639912633245362831500359064306698769723424725946146445420147171268875209975687890062258939703582186827630580668863996891476113126893164163070544074786508916060734294648029558105566928256435915810688680384198551185429862491598543302884524510942493566379904279932259511549566749485790808341851939165648238873149400639534495897067151583528507380256174496900472966389576049005718286792188852010089045984332085979015488322733002764005010595524379397054974536486364796805890161388279632906560083492912638833841109495296457387019647572708592131178854566331673861817000593552066614612127049965986915089208885958111039367794215550174156515343804283080726832654253440684969802108605567409777542874893446402793558197223773171937710790298875930915562122622565150329805912586484075893750881571637568087855299217758258136091430312161168380437835670620292146563286788051761268326600276032059070213559913478354359551163331761899284272589860726636566885554041065889294923223220259006102276960656116140372895686624098372487923040042685966658685571612977487861476191360601527154010280690419070314424818528970525255031051960880959419704766280138884198437204500500740921904005708717825312324528742644743096645350893330642401646051318394459317330977207988970895874954078196886947897533714459564495557317992114341116494071031716313847055809812490681259420452135466517016395694672417056823770389141557939915140939499361326645520949592111704609757727785126222968637523781433718620495359954218916457052534437195601381630152907729923784564187629958290358232311016225925292423502811424612865284614744239743799538926367362893319643618725262208497330930816086251759034384849561820906822979157704905861834579849114398956879618007896877502902437815867585918927302997313402640198245231456345969282562722463044479656691492280967564776337589744623642278766736882538280108205743377828310981863456110866573352234175800217966213495202139169187324033277730283445630250780816312448176955334821095582045588971273857934681252676451467916807612755273070456680595123457979309008669720845121935233938593427525440394609510986762332411093395293082097148381008528885991314907165944696840393466644893355697750122040462505068426915211198060180268127028385999016538266425526470725053114390558892659535880216140970356093995875806691534673283455426613143780800125519854787475192032369346483058669989584908433116008307796682013818911406205647343947280023974890780578496809838487184402602398305464105960866228281819659297967927816692720110285225662289462267454952145214915936215968021947161049502017706899305962103078618590422425557487178569649887709947628627303863566758736114119447734535160662541655463665309424255218879722728685692482121404549524292576659799060162624179068889152183529699543118390576438272044650459295535210839163423022695577992371306626138605608291990657871716116003041235167237283593274452189509795996389818683228277981599090881978908252556381451233868030285573717204327816125678719183536794487442060439911345884462810301046171708797829287259412800519312094242012097888217715311322660727187884434848755254972858446743189266725196694574986839060216294368782995267516397224539165572244948837233251797740918113619681292314863821758843669693829126656008585392198341816222342898054331075655649655762264409756036916627499308815676830093143381528359560484050230916224401409147807198254014384929011907152504976027159106719944925230406864842701157506177920909069087682432543180916200502292281981670269185140387866019076912010402172438300933664956121202462447065068928830511094942152166101672164510798063276776188649003400631895934023640241194671829229032453732146015180807792497924208169823813474175894154502923926246281851265038018559225557463957113657466071989308831243924368666779342139112228400870960807962388373483404578763129180393266024003208451164604069951293634459425536692525910796916961183508120353817326335383004926339948230913234810242964997199383883274130389370292461717455441972184593816099555076109126324317550039980409698514585544276300257891199146504585777062902604582232896493650884502543213394791779858598337004735589497039637532205793933684477131561076467330774620243284910528109266544066092016941438213504919769202340877846402323281121905458373535966006836801432082879395756253253597567302933201485544735013101645893008791538540408632755994075487759337643430205119602616646376608807914930447903140010886983019356758773861647144062196646620532114547012583587112379552652866405940553791219355385478412732062562421281662480205996819842867616158057074794859968360400633850682500118567600009059743228610421494840826558539218767895394863511520174817098697206344007842823561553406030844670391749420437399632412306677965859304102311250940448995335620786987432881035921404302249375236104536276909228601981352545708558991283592046700530935030751982441952292949271893409422037456639859266831378021846817264527128169677573071512231244820976361787686644518472919327569981397723573182828691323336890754609167092993453931053091094759883327350136959705106506791673158309320304329884419666647470560209114891024731515162091682031511676406236769459620692323578911020096361683761590505447341424557195200665194618434315707916560653149482782507863581894351759537748147119576246652198121353797508669075129308284120529316968215780949652021634451054846032754269381866742840527517366930662399845706373351968877735487246162873176362339434623143537068365291922265061493108987724306571997911025659641686085716109520342775343895202775900973922883368195791382122179053412774845523845049500000988301361434941240119396966623661070112130188348997783009763205856105510824627372297798205345615686700920726528062549038158594510169884697882612131125512183769014442466898009378584700479436815638637677618113871492233192341512285177245911319945156861734908298119313270907565612574975171031196244154295674270667304411689839606020135260595546956863870411540091540458075351691813103967431251500180314896327362325356015021929428192814998985555463373277388117981511914537265552831194655037980951266807785037004799807443276585603527407020095074913582583695096584349259094849919691810738525968789466703598335447209052965939104004996105192291644131057210416138131965456021639652943853991150766786372175307419331270048665121723153591094784859623406994283101350415922507635515289655920243827632208352299005475219817674846704844127787541231511348367269886479382606827569546401719673563912367239236458596234788733747490310814063194311744725819315185628900641709775783628997802257237893298762603505318971845588185185994058532341549169475760621669090233937519634665257267720412933400295780641382711593531394564426265343320069189957540383174636678111201425153468923143740428656212175987639070268483031466629069133103168423668353794072540808087669703420805314405694729250399557958963339685348109544517999729941318514737780606936184959811966752143909671362184037739762364650173037399912133177145753680795150522862167711928157818473323240360982403702083273953633930870742827241444213459800742999741684863476443726844847864522720379846191843224957841423828203068925522619315837211314864732049009383228354044344070239663414901133468493930172423034656121000613496473668267431040078631330094888983574304318363180347608245780853773146351982171591997638790847396946758478130691990469439061222482009322032669655993998958740043872959618917775888303668420990437880928280777846302460193257111354575331805328308247184074983976504381893862380546938310495050551542022080807944583936584634876751706524227340767035718240779980744637931185255052097199709664644788250067419434172749717884573840728619994346096078297980902123569371107189176428467767018434558090778751538948099751743441178616568013756226954086617329971197059676271077726056285752747229480571983236151490201972993090358979481926116836629618843651348248312816539068976449474203630471557788402415030106447459103601682333779506386332462397131213133467371782837046714149767077332834074523651094419129894702274746242386657755632018469827349835818875806823924376067132935190636422564853172916429999916963615956654656704375795654597454787876708367987822788987195599690695173527837659366100705244413238309701730917975291679352336978357059943613134043483217915535998082331637636690945857220392251127573162176124548885801090114278295801248206047471070024691694659918706245782793045704768401503595661872256958910086747514891515260823964905650101788940679127302460432878405371948928715476011619550886990319603081464503673057393982302347051131806026030263270479998339456875886210623552460066334890611827431222079598541871210013673762972476265526966383338039385838606140167570901066323349263858230063790770171424235066419898082429379276322650578731444477460787797854384854342200104092700153859916298618400874813267585142617256188837590885603486317456775595846571179637054980202104956858497932943049481536095406395599455099024292781694976755528803881880703418716346166134691070963779202728032753872035913124282775280675701864610954429262795923068523981794458995512543285688974921044174611339242778036300666867708181372624714822052102267069027104604017018354281909071342434932156496748843241802292658060117672546272957222256642798161931793654638731777501681439556393935196928212758467271159703479051310649401619943452556102431391374574657503176785247114412800658315168906118961542013450478635954075121739476042824257864919108299643306582547848799805267711272421917145751630132297429584965869137587004329431609437254854344873503825941744082126464925602777990554484314458259017212058510235483530280150454911741939028172090541911351981719022835106123523507854673046328289423668626133305815557820424661989857832825055169882926596733831523936775904626156966261302662146193680267598635354171581344225505281403471568954285809463531114696400047115587307200962642822075810644901271050768503642395786780364201348138436326132688623027645140593597006684825076464936994977329072116805502563729401846375179894746601785602858955837313325624542343779288487688636832783071460043509503757375627637786458241108393698553555230228093869948320317256851451018136059557964082233168642501704732719037489857561255847194779490013507366753025663358272648780856208384322213803266899408071573220683074585891667933882177098313998500722693736008173589272333703150169796359172862637355595271073216882129399792311884569502420513603753189286024605263752569022034277815628467951584557116100972152184685072508983434250244279089186279775382739969854214534976201114283722024698280065501915420565796821518978380131222368442323198932134828908582027637204577772444337056803733445818691413109224083260153949078451933045527451229377709444475635995175060380041562998297278505780788277200538572391434735473187080146170841173815135490176378611280433897175412881863857628049717275648738584575388811094014067302582013791135616877171725972082292860630875326454061655071721391349322797588905196372480704816445221141162512145290205996664715152451783603269710691587105187053876753672237589349111583255200392940196517405180065302132824518264157180508280543952909695884529887953217852227984721935952709118469338578504260561032009686069360474484708497104594154269513008924032830694989520996673456924402511002886148647217056878999065121848181326468344244205542766338407991416728016162998944888795884986276383159658898642979530284357691435652108635156551309023976745851187076424786345878181496728739761674540836217524563706833374031126470623618224282627254865011857512963169247525517435723687257191991628147468278527599534739764705465881769687116383035238082485889229921094971406864276782270205400475713365077906344112852019793833585904423538485120383396408405480978095889689270922440928518705840191370682232935525574601521810675509647140199147388326891371203572621390860877821608435153336232679135459378401554855852642857255675167069253555457905062129331019336383831563856995404679073328185567078268383020761935926958916593311549985346493374607494895425188127946567292380556446100366236541448186299257743921403634820348580397324684542166746482792049621691752600704398069365515806749482787164642344097523880543050883147223424885671755784749506900551075915556035800180779519852546994943634516737104798958463791388046879252484247328311780039698130059375027283109730164528564928974055821721919230705761924053772374476558293681625489255741838815657524377365320823069458275883008885419632182510975830354576749311016626750697483786029513853089042316253085818386973430177462914174721232919393499356534721745952359622665921127580506608235310056017244424246885980147245228930440940969879724053201533967506425918180686770409605842284135768020599426639562446356261535916740780218356646114409493799665965088734956481444878935191555245934391139262728306575926284032262457674029457861048426104739640753870551699195179261609948937368377808387677586217628857453646660878065427166893441464578703011827354926835993433904969997726560383150530266917977613746193092759071155314491171012703773906758522411753933090361432881977170409920221689953108701372186763401673864633466994268323199672890718263088415616308668991471698300155580049562651058055680797361007313504358410571814485819020805786861584619386484311046941915580468581072401127175853864754677894347095591880507046176410499509112169401526828307482951040644255580945683262538223622295513319493023180024555274781500003074912474542154821418585405071697717124016533681571913216556024736381753324973475458903597330786437928521122756510978691646301658422677667383192871773770371912913366427137874163513263025003907675714573190167881834602831495168723542583878624495591999049979608737782333523357962347763283672956505326553982915241205963639679596192600938810456982731323212009592522150686644334723517113140965823744932632209308384957499829028791968678295300743629010612442111629259778167877431722630341716758268596218761272794514505826967764984772419274975042290188253152148844858348893874436538315038574855810503660762491890789403135555334479542215056557093684060135757616129168971266352846688962218267507725796000679963111863627983112347458169384820851460609061820687946338324589548160730598540813825811765084948034596927738153383104393015864699959604855118434025614903628079419856701794404282028043688826041610235571477993060431980960160362712582005348702407433574536080507706453568173907110524106479276293802347031151308977737887027038917222119683505236709812068954533051656310421315913150234202577788402035464268614211700902601431577965616784172126862930586512845836465761472618382350548272457342029444369212201121390292296624849703996074098773344263285758827374386431803737262318839100777841916181573678618130889208096742587012553322512978611991909999729202415729749867978159072577687609097323744634163560986033853858214900749864029560042124978109658813944069811009964185872261626816572976496526096793441029404316483867710502016738901033399814075139188418076295243513843431549915471752718407209316075527168507494766929324948947332759895452055418313530645923444713021966052225054136538141676691724215827822863870528779281192512432335449727841179425403211260138448430259520304542962572515352337031302084174739129171952739612802089148362522286133253273771176112152098017208426864400045322699347971440586652160392714528022712899005797079970476025603423171475286033288759792077098086066985593674011031659449993872355656956185419948202665478919385276330847278665140262462807935418302568681797992675331004966134384166556002281788095813058081749347658380085820184471525662680198645694867087898758018673360089792914985932359776586013326775982720242745759903399717737173185208741133621902592434136195276824592179796673656874880295425774638256361535304035559272079881448997189224794234373923322225812807199283667599925565433514105446841622519638112046469863998028230109528170298415748161960047919892851257329335904282586320448001519890310595285506042120051976883522012531756052195355698021020414208173066078651050731897786240617629766101168330248660956185557863579227683085586036344872089596992923902230490325884747840361997200856882338960073137254362620903160356812811383420057748404658290427033197154194043996205960087470387620281535958629786507549034584395325192820118384432488627404291025311758704553097461521191225113703472563158439810491728154987207160351805901093970450613988931462307983667827468009892072746578073020894776040135151132561812571637291458219838055792284750619902397971504168530382063291939015361822314989133400339626099226435474734829359236054234308067717311253272593137146979829080451848143335892924178788004193188600818133345262992644106500106406251083658679941119720474548831174144724085206235415111720338566319690712865825013873430700052093040753008243528914920032315706619721948503330315715152361401429103376000069800136605891734279542480143635988033614640696197502799970875567519194877691855542612682735576948072981490063153464260962062772583171313631011221429779946008527066471988149731458624541544017880551100784367386132411277492888993326382440534005698177074959451089898030365474036080401841358265058383254903821453233336570928926348878775988864968025948484178460066368963793486024126687633517304110979660494736591229361500779171927211745495877589175731413163567699422886703109790339709557644432798319667834257697777916759783456519826469884287177940898603030598443394924527887824253233107660431182021900095140473689198806880755904509642190456733998823449902291751153745880371190476001115803114660275676781329388022721613970926238583035671016574061903388663950037143008231539010275181363752886497342096752827352380651422338137980317490145227896225267609622934357574150815078451020363259467625130154343064424090637089602615360736454644765023911917335423585722667819341398692463203819610463822680080025092345658269792004286312896215548910930468439644679850142314525645265860935712901797460311603072143320668173947939769862136399040845495404909544774043660319036369143169782681346366385548516428820332775507959022533296773386305936750782775320287734339823235265049113470186259069319836133202696590523351699679132604459765671567091004577107325492651298851726216434374181544108413446367892651843690898559117473652055584510089988137177828748493667656960643483089550194106713496871651159375076017082067792734072758652017172729565076608035032600615428985642304890165767710507344281605047301807985352776008250072895299445542453303997028639351197116988915073659336029651736220728144040274948477593869609527086188623211271067114088511290887156673436540166802134783604827081271110633895273690862594012396727266341758030115907400459643049649221963393871733002970259211093314582366974779370815842369927956660284444502013202979669664594520854181559794910001385795385159841792807452121688900874504193122392237597767376706574647717801351481681243959962747564810787290637814121247272089053344813359483223796315797377763861493760555384475124498473873624612926969826052985509234628955974366876940123481419383423123952683777987282487031840291080891112818735027043514174186951806620635444009668227060555772497063935333752028822986085994258937705414790314884445548654726631777635426185139122468779351839238644497945579759058404543389339474531274422134612796895170593807617035721894772736064190044599124133185038725841536586718986416195032725122856541435904893528800937062127134749248170168774134354766009649030934524180278329362376453577973479515760142325306613977253836538888564939629263682250173597511222878941394749958835833308568031474589714896467687951042215666604225437968922923612254032433741154087931744722502184251356644163422145144135279735909250115451959288961426492255575577911252768218412680513454227490193065639770568277134383866455791693917511198349816647052598604577455865659951208256552799314621158065374514606425280598529882825454558811505973106625488446284764906228210377574697680029070515532076427848024521487258517081217826427613820188225830701036183905312586677849057400904816249655342451448053678899389599645830558315359892074065351738531086087222402427003076461928353812973561097161947184083685675754563393319219421664096217159044802005164865221322917901937070902852391512631075278400841251320859152550116337677014424047091156996059837977148896334769984329916859132053311600770207725737794346860277012321139754532756842442184879897009882770911805592515708040590200018266157799211893904228673994704667828972798206949178273393562626166076318654269492244994876792647794156943586290344488332538601626332129520966934515375737339431193924259492609770436690683171233596652175017072206038378326884868515018351698164899794578270729161354133876960402549232278380758249859014575844328750451053799034617661231440575266236654531023724726101474248014630436896050000021061375976092950614129939757059719610201479181519711730707749513869554204443817264991209569532954337949950089126961287105581385916980260777338025157311796200569240760181710882913186070766342897208231889244928001034341822446718135282715714548488552239248858420105611415370897715330428754682644816756082716499053378772077260281412334030748360619137325556301425373397715052668269266039808957162512355939371069847848333900772231974643795476860559823774311934900860588344114485887426199868952678398795492171422678693644053361550465134921660835550763460169230352114350753662043305295274320173250119436483415340212379527378871680450544165229481115543446853273097071862000794566376272318035959895066719959199410757494636976053063687364178766606936979873979316466323061010137089057003419672213834843955149417834542547492894899255388336432185796442942467151742386458538201706252351553737189588579394407065881891584303632414456894957282487916636293912214867538364345248092536853773338670289711384530868173209420500650292795476748795597174035989201665932761482894003564576386763008263356586583355800101352669220927094803569360073561972151166523185952111456418403097046907500921369496694988011253729454999556560205795168425589320898371342649977776213491958534208685403214300656416907103312496270083398718083043727010634454534399370379557270025513929031021435678637115425203483074821582992034297093866201598489136686245617722765241219256144295017594987710358818933939773104694009461273831091059524542723075221950529759029168985773889544268599528347951548128029069284110609922043917381441382088590470271233578623357160443810358491978401984814157431539922336028159907945276605546618612445267914731597044048774541328056603938861560387667166756946159844578724945196603231789061208482698371275385644703727822874804884577511353381095645370166261756729145830284260049267698123106202672864475372843219212345686886268474867482558522849778268881208996864895356933236130364615716856910803202076895165125458255073756302954851754213052303282563850002281136342378863329503442908337846403661507802122782906669806552469312159653518324172038890149099402430340597120920273502337706576803945319498449871660361825371996648139794077346576940923817379927506143244096385211653014075857132718775480572398907995150832499345142942729296883147144078906402518441916454220787181758754228385780820341869994162417453685324173508974561235583296457970148236696243953803338967483950916972339012528332078146049165256845774857529145814230835472815499064437607861468035033684452200707006091329042469242860219047527759302302646785208786277654785207953493881925966225192203314971702155238156404660278683401488851332872539680861529221414719415486580116123718395616672921142190390048597931458725384921111160849361376913131200294771362159019433221051337995489254115916674732014483514180100430677461162107966247394731695325969912192769584735749445859249830197953913271666010399275390799643771883361641602156558676370913769959038909990133501751357825562604920781109428036075968138957858403434945015388483637294609399424112357431357328430036715420341227047567730185624454638957677236148376945341179918775526467405543985884497958443851293393346662997993927861252809719129888908497641583328307144541345273837329367248354001798840454690202455353004715888191144213851362324641568370200243391146422452311796266515867205642780061718695637808561549606651625588157594898015243442165690737740216059857493538773648554068875264572604886123320127599056861427962042428568026577094279480443567489324489923379145560300259910101148432601275607870456580930987851822373790420635123183460007907998263569445341681704488679982686037969192040516573470088733377583609200083529495849448383607854525131524230997721731073051270094229720908682331522414108419203421878930897141790902409970008960154637615078056443531808377558977448407018609334735618323363956183546867050210190953268935539895314003025717267087007932103823835186844281782564218015093126435499441249019934270152658394590449204092834785015171583780516788911537870312789139724537271093706925037147184581273224204478311486940766010579181318268243623264742717640920101229783117495805627690115685943824697523279077088289432401963331910502834098711527652341963421308223289396607790551088725377489708525822705091550541643418885860280117728752586328169556656990873859015822014768435700216684528592427629208786266618737785921437910495020696150929977336046924971553439957446457582008900513198139931528469917617658137376422063230662601262492350161044023746984197599725996277340011588039504589297333545722157683275745930295289505058271225945821657540824696101372326427242827489025121984355135267979418153306629480945975344527225031047033922954409824861908870032458468249311006398434745848498768890517756220152236139618977215488596778503559227485854936295439096735092422680213703116889563434449733087507741635088125203569856335085052028553929778021252850216609605130731937643282008959485664702444578711324210152781207166126810487690688449677771830687771331613228220875792428445692556948024252875004106007904332740794869402469009099328277220400236974605343944912387809548922036610707918066341593292338662133648751814920678397641491752577997754655161128848560854614725152675820698170646182050070797562108655413872503873196419202620946809024535067235176781919294164520595144613283557766447317447068316805088599797694364677865572108952217225990559815892833626082894837691559550424906415307862470939044589668442720986399477746180740368816354839705884595795522888691261763659508961685609604916768557965765383704261894778813704208140532015787454024195757241592424972348393022347435931266949325277198815108551941092537896207620140042847702572856649691558307140305873079486364846531332500449444322110450922330030819638952822923568375235242524161061258603275508853682450964349177392852749305828675725141483331136982012237673018910843848552193552863020180559188330388540219457091029583537947240410622516886747527999003333508772994856675841680679456304718439140365621525882497917232732752266304773943852698612163713371185552550066783466219740032722649874438730394390382886663487143222807299569372658412357586508605796185557763717917471370172699627599541329573913944775025503241089439019056457882022811749250883863001732729051268274838895199442580154194245969874578281433445202242590240884231458608503441483797537605674794903786753754206678790289097028941043794226903106684526298083200309315819303505926677484362819707621775591235875435234173404583440507240715051452819684925498748126376473278842110596562376572267762325034470116029715006483380072458633601340332677677258420671037845110361759092575199683131756244430936765570298716769422838418932732168074072489461368276613239248108617053080676247164680408035792766482807586726884306190439925244741777530884437165314230186370996651799198343582953499751986547143520144142361030219723616025349228780082626055411614778020358066153793444196938484371368175328561391809005845759795245794847281554435220456285412313310045095782211674793345245343701417277892589413286715576398237716794998226675037026052643566851835425551780703116100124786497661186648696755377129490968857540701260258489242437466162679542817211498857694428979042612008833238972731955630513173364709275922526274019214941044607075204394157414455510150646215179367201005822003146503736493306107156856522115076830827504770742450567396888383258074409618849614968808690367498384468134413210273783003026934412368978150072736922963693670372923961190649723490748050636927009697398657877346915800300072572591233530906868789607731079101004562414538332972522103824370812697759288320201664386022250621965044711515847646697666964569346432341243251580565068810268537232839707376255562818767361681990822560972781337883937441421916913928987978288351658442643583787322100915372926287086247067255621776434451703472391584142337780596895894683262008217643846320488237739601124308863131326772627116059788903859140936025663156885901449488644148497670736035258989784849485461173156628996761587408202124836015739231329383289794286545463041508774257789493952959551267554851987116152927109693913418141408690733917514259713446478955479949472567669707781998548416008940485635416361603765540726458627969589844443526849417808365822649950667945417844583342752572316978894511017364775526547715356275190190724418590394620255167170083282092503025556869788480726375945165595547605576128721017748136745473623875248585954927463270133247641392728864940242501368575355938602644380080650701496045425145653957012972631609613405573525763985733349717732793848967057727970569532474496710213630165758922559061524548119005446030361532652418453955058790067382093845515577322753590945515069706627861456733769821830960376099885873208343349688767701323925321289274811852111239515623639192861699337691359039892242204887619601921921669173137028007184688805011796199737956311047678840031103442836520127727149472048790398885979578218068231840751109315831571310456284869728683921489910020245008046079352728489574611899634809786336857667765018949070438918029863704202817603412289525526429348767617137099853451950956589369129450356366635069444496473758479829063159295023847122621423150560937910525061534654082541216809838907535594439777073012263564981099666507589910620227018376279107076155344033069172038338004141620906743978601978619799281685802020087156837098000567966779893603992145851347661937317120661740406808113329462990927376691676530866028160910715887212697868122493457008570646660500556156402350640033682039265386487638375840323669412969451043381370246035584094443790291072442586273063368969211704222016024868564574171225266230370116861380246001096663024719202067900603140912725803467469896275661912647438034736758891091966485419659558873972756507489742479382254027165358365372681509375949424908125213839179335048036269784133578588166997046519877687310026290748442759163886145118260761744541389418571249469217630296806816684816863365601179867601938671352107398191469145574885782588568409830632613259099611076228522486172434181342730656655547557074503175808148681193573837665502295119958837711570647700934767184062080128621699681809399503685389974296902078547543717123879088987486189308032261288774252227762411813895115244085561255995840415735613588842854720359317755918600799635200068488348356214748948163733708344493125421000816776632317754108185256381072433072744403092688935131724320611951936274612425650408092324070452744891887091989605674542677187035514288233444532253889065060982886876560736709842211199882488115520701048971382828675705045517645306111885625958767336380310922082310555911181332496069114012673076531709322534786429908643600133870675664157652661064948958130751230224585052975256318522916489145536629283845003610501298773604471933062634730273376675893843586433398467860216863653801320135913272548725118863748296794142951449289600052354844853541659011348662604256213952946904544108682945097524956623966593979535332745890629583691088403617440936890654222034089747685122292288418863743249599237645089546429016228842311592361493982661757433209101503041581140103097598301754966480515941007647612684800706032752179158703066901009701700202298195827683905394950380420806290366514089546564971863662412527083225378824834577783338997917760143362364846873446843997839339821026149624026490855158094083337276101610697583640980274169178159605802579653160675985759942003637822996168803502912017066542066013727912738568965963390016469512391854115540199177641221771000470486016950561659431761145270165530198652945920922392985853106035586146853291632682912660417781627486996476081845462729318426757563804255982113518402703201555027690123182924855124026605473112499674640125838961713346139080544463893555690143874478555226775202868249493051252637502268916240942005870365596884037703981335502671208587682910454139213532797690961403235550312562861778187944995462190384120209818048794184975275559791003611974880997779273062430502093864530394386962108387917725005046653383643092563630720173468646051043905767484592727306689036692372190455539181110257896647387280999012615877468289529067483930367336817844012654847166753368178457339173134923258776770618147234496708858462364169001870711415119934188093990407794734329022285423819346432565528618458200140685140146825829982038894565380051939986835170150148203805068719093211115507477939659854673338274585723682449426080560860397694722515200247246722885835946085466487014005755175824622751621354793804205841233373773239172667896996553799497801006288613792980737072268428550874656006126028145788782930214527157691636622695502764538919974723780529606461157275722975462255686822301106302635377956765916536079072328354572073092680109498034543390991676322248451783350931907097933861663359603363864508414748289799230777438682335474986230083510747764984047052510320513072495552843622433746823399996295008282441766530048585235980332918451169036481795081436188792925668447416568955241183733040992413929003866631394102110361466507694932278712291138797714375387611721295518009601729229110295836368920538023823647125225616314960609763276674907982325865741812178574463259027019800412805099437230361726573533092537322081844024421562466964092894043061711863553649677392925129707519375336594532059350411786457408591249322436813348577221566911058169268378309435872551806728483423317239805980679061458128572979478387926507659875892402007971313744920248610263907450939777894306185046227234872439182729188153242435040384171149895806485063352056285380224968372836502387472584294495772540689857770639941559841296752777242853159278229011241215946850075398914089184718672047445493935139977095299668832863917858725306167187141936829519813540055278465745385208132776759905067021993534451333312756065968148878865425272370511395261427678936775246827693573379740602664994382316895636561452278768881743633338204811919805635860392571156943419624047467143292218789682158554570547728839145793433260936603734642725074565470722651289781549516324946195212986624541543555680131598417544997447538144851937499208501342104776221357152977586201792846569838524245625860060298300275030862401232692084262791603555125512780023230301846817289293624391223599813543696474987566103252015243513488321924385621814815511806974553064332554541241849117258522814738763545895573017094510461500699807743228550274527448367769156039532111246222385267919847557992577568452245281637483909582288036838570916664198851719645756120540665318219993425975565512457080817218693577597321104564998138594031476424446057736093499610111844112028896536455368538987771875218042828581925221913978800128343409618398909946405137456804319478292153276016771244653944775511311867902459322415216811181908632102234700273360689200152578650989202766594051325232577153630343276268225455256874460865285982758488143839093304929131146426455046217776331818585618797528933915215925575011085360434990395679517832135673814534382116646824723798213916862827751494941752574212808113542658875648512050299347601203624044354472877572987198071690012465072060118083738149390892763608266143074984515860634149030245839207683695633980586857520990216738283490319836362232602408808998779725846080608729345556623919453897338923797439178819745500539003309410796268549539406147586251967819965907253451216649784252633372440720291544472519224148230048713696350957504888101467092850504518256921723966466889631103313877244884181890931350279385644035646503715360038807548445346699889287187507394888239017704889579272452881144445482554976340045952421452206294652886234219305765235876745130479766857727337126112907050225071221187147408684762250489050695059430201292492441823963548978767858877422442526674252126092035552799243647092867275912387944860398724375807947414630177067446190686149423337722589333768170907036259559471533857408740967627032241911370218340208427621987428311168247611738988660812426457607208624263667812724628994297722311144028079663122725399239826104225022035334886045591822051240257169152280412714449219904487752070558169783973764362125477689410112672190245090081069773347274426644848980481711031644473583129628962683999859614392247079556345199133596875141303894461313594063160330949566552314090836202261269606805505300678198001016057528234330084988341895119828892059227982344615910901913350260574116240557877545203049285929083111288746155389495916012881508582243618842280285600802412836441381243328207031297953622934595442634808316621005972787906030699113098146770488616514981864264696441138921394274230113187442248692756591115561812791568282776142736547342499113285492053649802110682497695340548015272389806103151462083462877806177708865706029538396685814491572209633112460328699760684832161280795454428794416995848960542966110835942161739753962493385399034020137298416467506426775255523297580519067256576710829156653336288250240754618199937028892765555874547383843587978862342780167963476330231075909869062051089400752962831638354396444155344794976475005040664787152031565324934585616511998435199705309479142415104823324662299003808399692802451615440196732428391435610494393381055480998800135865378101478297602736910820421090659252012819125182922767125135270311127981952672934684551378261630435785375917927560509498633586686201794636985668745602781425661832786952138908135045542903469126502669246134097230088929391168161819792403778719970698739065871133086579220199781316407468687430731695227847589401732973370596788916856191345428529420897090933668204575947145259528999702851970181825945689750173930748924168047544940017061428465715237290784618503757493458609412324214799755036625915836785856035265684222961125425951230806438463853819413023056945670324259938711016487930871778838304579698125850759059934661000236535034892000904790435143893238732686026733576027224621929361926323287828555319122508904930455104674511236318831829350409362633091048547623058434209978825048057670167663360901004473887835920605710739899035162094195183411462886373346445859876016163226928776851905398864376234972849028889922082744272481814959311776198930587115942719740009610443605045348899797377154908149813860200398876322974879358861512374099262257318984211198689390748340408857655153997087203997394304602332758215917457494766644999299432955278008558791513369113006502297826109591180525082905172994500120563356989562392745111523672419380154676098980676748248747606494939648836523406651315376495824664816586274244219707403152238767356557276562747001076775317226962259529589866975143445863760333143664331983861099562736622560624831400372227788127110789322672159199639244559538824951334646118280752511764893427837963378370479173523233906768132024507663198897722603434769677669868510663455475960091737247486945560653391309167720137955365117938112791774394215473054283923541072814322778787264210264409144192712366476210532362526619095865331413618437229343013835620523188683699381875895500799057846064604056950446475665071867187835528022339304174587915056049829559650190300125920674548906017322636133477731614901270313152101665862124641219335479783578625223253487832804491625367728808824981014688788831764365688027757618817820208044830000255125138575211937248893775188432094546839308867467049467377644995827934520086077900164561840634058185089268430905163602335928758304373983608004710793972764408493867565330614673404894328611927570358753813429692331755355548428666696252320844446057961840702458845360372601371199682670356680663162612920747998261927653364977790455570819760045895039836432420304786511106873518446485280727079324932258296414481026458513106877492340803199700190017941760722937154050349176837099922252761918092381093152864837396737706035807863829446881816817265341863627288349234618733426856660433336865356156672196968202672296230783052037336771328338091666889592126981671830444618750112541449180627494015702009961988800411115987786055949801963277158722679800892997971322463350718179815756072602553886848353771427233144555970998111700021675485753566900624724782993103742038894107887199365166504611718034014674802371949131269773849325308973518455313198707251766220656469504222534163860640401553352248547068882022104622935764937002749005754308097718177258798557883243438070201655012881295691042333493029450581367970844957501877312181035685011647336257495964350496457323985865140702158373407512593004151223301292421572975954841642713155017768163902223759014431511164810963262987406870584758892186075259060859545936552579653197138437283394863932987126079549126047537885271759809495772149733715114982683008976553252595249846229611502456899048620109321881986432543472483713134122070976576078423565421575157227163702448476268750096049674741687365818512688504161864107627905053185767081822747795383266557805321871689520246222158676820325528422044631584807873740960164136954401422890971454763946188104529696491328203234055804925688747694266153800124723095396685541600227685832351407832573773787206351866045154100807751902559119154693459142324559831724525726272519012550714342614203182665668160087689097198787969990987495676484820796967588519455419561482335399469961981576158388451128217112485578029816608965980727691896110770989918183708783851743487597490613884962909158830631435321936730924045059855309833369170141982007108039195615398967812625525070975558042938170207932815424180314713810216683269394605470471535434640425112046251703523805686043113838120254080238036916230910433000751541924355897737396852992633858317323344962995243870611564145913552165071134111945834506171514618450552952974636216452992641551094364640974986665943921115415711362547917718727453569675920931261741310454062579498057481935143598659170363145206191552636860249514255642048882856149019722641147675669262870871593536348123068385102009953443797718638308288179532643566148229853293289417705079474891788388452521739804454525565646903979303270891463194331553016755498150544167224158689316049734307832445743194350526115291096914860076008458844351420433795366487633541152832057900156440122260736546372608503184793480131249812759962167111945763204708213571383036461980726438604446250942583318039880798510839223333118870656849925895745180925320235250920854678526450535268011379961594182546408965641129969318911850561188252850304859527240075758797693301537266635485181222487672832874391694481734391031905208087835094978951255769734856165508815812515536613816507879491163889796618614402957502422640945284446340605834322872928961240238967164605768939646297810522556007748393047432663250711314316836726344721740111756891107636237894810888720579242258273407189273098120197438489010176533705781989944624757183641376894172897030550486715859355983042290903714126884971624931024737811303742815638757865316949756244134144704998487252287554441062932740048260653882987423939786032885024631521745217332289690790826324281830106657694107762002867489152070022862783421067851739154717489264070809287173294613689732151427522579811231520458038229207604167906125550135582942378360974149310838614984214390234021875184763753670717388598611936802281642630713345206869239539561874508696207468282516880638818971546237011012291064132209471486180888896409401887555124180786989218267852045339227220524145036044256812260525292300248470470967425088590889960789826862779677192035194369791663679497197983473136237155980285340804767044370454726828074062485616593557482473931573207629344398059962809741366802723299238786212264827285685766742019554369864128398417155302647914632389562048243487528463024333581210266747890260488722401465811877809434915453600822632303358063778042892802908616718231224348885462596882874172421235344381867426630586035154408979747292217566950426996345347878481789121250026649578005717551156541185712965223480443006749689703645390722780512680990676846304465798546250209017354680413443427924596315153932234483285538101859689423498264198468895469722889143428786124957226444433817535383200687154047622533425168388657980798286210980210820973598060677375579394641112884972262598960641404419452945351479707935512792428976471717769052583870224962955456925476788540369023574174027244543682903935350184839966080586406297667537957245117177102040238739571728416305276364958316724726779340853635895590372691342276160962009259512922854230753926752519981288576543491502036729811735796449125696915121837726568919143231917157083942717505461317870512569423420698764006538621409209481059877519733236501969605287631209158524129083953076559645101950068290969327948310175240559721756238594225323774361549289870271003584284993408815062330841726319235758488279430541402499240561968290048929647168647342125207968586203712502319778500911489503357646726576849804728397700355339762534120678314771714194626860939763894762375087405817365072280805634990169096910222599595005204741351357905798599261808276125025290055422620093723432506496577677143559220786851667460678705792106500853632404865691796821336873057407441848013916968667012028608100589318752764851352134733976671140924775563791230884253446354592456794281327949363057016022201167261916113353188540297499681645046887676929880166470068412712980385739461425096538401660086410684373188016076216391983094131213270593715431075955246269532731340993567376076450380151435011525067865496872778793508449095501939799766468259268614463756262566551550334426610065775936414445445383849251116907730023846739325879178894577317159483518880920262624056630929255579262136119811079171699980259864706737135172582454121954749130674745141036473987611294227225236073158246889591885945251529281692233962749304456431164365604619863914682809219971528076918875040658124408218882344841995875040239128071306047852405182314127243691468198031422641593426390120757123832056196368302591709242092751806276589754273218768621316632913041586123057207865004875897888225012484333271922183051409283260490390755759463531138302970504404282709102300114428070657004185557903431886660094536974171377855699833616009268337441153029761717408968849235167472974198046823572256149152607400060202601151319932424179364518448091181552510789759063913526869088360675425840695347355200194112517277577554355196356861024314051786894169805768650629291822550242430499188487680498242985766145013974375180336162658225415959662640451850060906874921013908180330218482724251621556257113323933796555246754333937990393249173325277273971682709933358486602827670539516449091584198820810723405893508923414695144287733119516551218156803785331062033625596916639205178422446442156358569895719877317733065608200708440238932269753022627266307757154554702545412065360581801143288200248989119653336918469292707207579781096103730412972803627716734064007917335083750542972474131228703376807988803261932906277408022565820634694698414619555521910487132031048433479033961241374632187021462364156528251519830756741199766750313754625731521753621408074932632805998691540868293010729427634011052842988377645747664120039918516410983305106438837905164577524460974066055276766789287565743315704452447830029063116192606538214006235762974912044631547670949379606667054633597444451637889073299705642069713048088755439643369350424478008488609830830733570223182847971354050523236964847470627209417346686818976841605686093474363442311493473907094817279947062247986085667456146498096710805488738597703762835615949702552937986390286635637503384674842842539873191081047188715155610980153994626515116831195770366619789983977480615260703656409362025575461195898014143152868938468401885306784880137369440828242131500082542245106123568896030101670870568109359257597202135372159317619760400979612838429407875487752232375310964484652847058562919850931209312247174383962240757371184245814655491408918573914937129662213611673387981187547641060310641771941787174089439554486086308617956884020833178658916473688366646525156822032541396960363758189607660892059697733812756358811590658767575145897807714695124796268426620222138653966457726255289937308578834044755980937908094120635704876668278710484065146015594516265040209859923781600617488923053200373000106872710876570517769027304673294422959897057774641530885628549233964138782751415432776456951905139530857173311224752410966200938143956233698256258124443423705724968816276439874192472873872880738520709720543883246927762576501571795657651508010672012695617040716177214434566309517664107101132384771982581035387996445312181581899275160490034073363630188811289739829869296070519418685350401983517661381904604069762501200843062725710890374872797304532955977432395704640178274123739916473756067171386027281730316592750748615676432078830355923065304511412314098828893597810023690928152254280468050158698229776467832730597855908376744930691007827199302576022445685611215192612606234866261914745109844997982808133333207937628646703898355510274507519238190774481049555048408773638457696503843116801866394909934332208720802763055852823840409022369219944334802061372732979366538934498304959793511315728497414729452470116379703813435454404222349336226912691841060073364986636839744106573469757650717263349252711179749728916173042661905136054910154562816440281660171194074166777433406141042619582484230227291164460622491592991174358300925138482588082692310408233013432687542019653679408437428565094222746854505287183032474961165113933669027543868128905979514121543494457642839606616553604080228786483119886040359234318809025907217077771601226217679615821071666748951919641449988732914024214507718861186750752532659682240473825572874732673189184126569693852460974751991581212505809389751441892067955416331784993365826959500206156105819080754157245908470029256621396987209104101747812241244899101714038101998224857196980495777751380485038510655054800272447747962029294827814429715238490367275852345102134903477324305356537203877989224203634303442787379235156792964730252763825903211206354653206217330517673967248723854166515111147009362441890456348093818876614224262898976866894842098810727065951542375219413614728689969933924808325715705672111257772081079266247979894742988477210790553664642079576768483672683047478971578910554777403511697116706819095128084891219202868952922680274997524696781329300064852124794508391124806441032061953852402897931917541878221921143503557155668813684152378883156319367803155366715348003892048998349117914705483933269169081106049570077213964349865254516455155955105701611515584757965698640984220617505125632241772796014750047289177431929962707426206341120522728481764281149062145570793845687095499554221235955993074139069801430584981200821113904189849723417463953900506515672766942649705798670788992840200259623794708104948613345828494834545834523694732852298382731764486668636644333561313121787486729833321840902035101517083169866565110618441769763668217876211977253508132259558158272565593473239196609947555632207694619718547927860980759273558952463583528367069587541546175264382893779537093701640508045975696386670977587757485150063823865028475593859476574095163202854356190837070558374633000519027987282961513595071278447145616670992033393304508201132289463725398692713924471881587423020841368508943083611443848618045113770605924775998200493529967651242602123564067084975257998851833877060606110262264687963656510327166503253399541197155222542719651874843462370496453209330568817164846727560564102722608044026637577393028328097608003816057702167599443346729827297563565205103050755936094860879871990638677398542780332451751456023383909391850011582049010079104069352511584364259777157381065406147630840337955082249556372796711326094942479272062756454159961968399725362084883098544125907056856006437707647640056102792703499169037492041951402630910086345438900376010728403887249029506755854696763272800269676894335276535425315213957752275369142973674440507887110210150907315985638462734982148387926261049292001601596480388788871460753786599387853213421673111665907520025067409668113829576518116337367404631955370081660845152774344169218789376576217752981147895951052958320367839541707118774152021832690882166809231146361708348691575213053844531131621929960901452971393744299043123253197556571641775013891817262293267539268384045443032879223430023036044259799578996210263278389376673024835501108289600629290281621625408957410445807963735836167114748103720096341952816063261658702167927837724301616088624726168108773388845685268441439648731345027881122068625095434477689280645941159023446871603121456372391853691331982898552231355367967904114986110221864557935959315401944994663270674866620504355851792073346057984343116249119720653145191584027766546523297983512977862654223747939828282586494398062153311810742688304310934002686996736580346421983009225822928837403636569183045058343039682514904321406311426318793710358057837630145457349125230622857677102543040586461145870984451274876711191696710027856665131243043779043883785449264988557159907890865003574272392229868962053915411602447736795321326781847046514793767051975101632459459690895647309942929925146617668820947198841427340317401181580958858138092670863193668806473897573189805312822510406573453789323972688737280310664750787526478544501103194559000390755618802930286909815893600104420662714557477513205937095378667036044362136379733848186507303317436571640408108587173175920515846324427313231339952743560364507350415778395210967754518074430405986586490449358193665157582223680330130906865745350382172455193492307350697907132909373268094575324078909883388727162641025466706569380737597596388585056778296335521081738344459142661218727488489436008505286008191504577024170618797660253174007389879707469688218175233915442577846976469521170887016109753090267274554828819361228739629716584675133006724410318428467659391142142897955391285710290435282376293347554679851250539656751896127054969077262474681185271243151982957122028878498977098400765865304588528461873671834906155651498268043350681468456122274786661146248505726657372247146700814132248069221195671985859693406674245238331920528465619206903482474466971414127937293867568507851305045496081142932964569847113228926987190931911343809978910021297899794369966969004166676482447608085675508223648052546497238639750754763373729690363761754557438385358063276675013456817758923126823785705014497064591040781738291294579965324134281496543364721908134941817665507943495741653144925634824924570790455291329672587465989185966026959747550628945949604632904549983140581510839301406633098278480348190763256612851302492340290306359762552778014479092629430885277191155400171450160711567533689355940700283532987150318919028399846102269793758907903315045713084876951698094947809418795894783726985136001263005268349345921825407227523757088948257029067605698779201419483592757010865307809432012817124853278790128196560383701440142406638839273573200750602678728496050455349290119082237080226704425847808555209010652181856599281223817983776759536597072957351293396770253329832506705855974307270685729016489503751446465083001186907475723321625943831282334538676657032700642250544543764315847583942074835917415739247429368993279089587793299021182825655009263803159244813647954701589416011738062272342016382994833532721828245335474649797852566660480092254705519676012003945177468457797883226598278163407436860527215773540781302513225018751724903691348848484341717865442977972305788788968134524996876494100538948268444208094803581303736685706495719447745163261611793915548711791059605309275279829758019093862674484250296842165945975991982796922256772954140826643529221178956563833295407960751377011831021174362871119525789205045008228564319919737816982265599406153701089455424795358679454955078002755698514923598408156871852845272268138896108783387263001792186423369940438840714310393891466615239163074692660699639293119345340251210987117543093409776779995842637894869795341393986937085405354759144899136813796460581909273867228303171853371832049926932244544619694413864024541961391764676533542000659389565685768770015366831170883179886733918089481279754057014231315246206627832146976790636930410048508303681157812121299068964544526919395313905641516024825517005514991749635751048960211196532852346972445203950489122965958501038110455013966063112141873423698187278185363653872210049406664169240937568302062861771490198817983296116234971099110850533969128333122905016857974001673829302090215450963899709860805937816642102048432354560247181540227475998069206420255589134489337494158156530621054181347467431676222732167333919891832024812860180103643328332778397422039396571835699656997461657783491975973215288512549646425811910055332420284354598774187465483604197632586772504071798064203212776428590063497639771506457444497527475059009827407352823743691247975096367479879916657477925691626380067744626835459798729217281176351668596626146278467324484042589053025503529946482275979198779371565531768855538675115906759058398702182406645666952751851655451574297092544836851658956964650101577567531201348981568960896956862937786430960378139628975217511497621964849924401518322613391451097990353971430279051611703828179307945625323972516376064429586751791687549597369073382566609846298232550674796495165427847314003291132944387266063066092032488895155881072931477848789457973366347524164244219095674190016634164672078700344036535674471433127027411756894299434470648640492398594910427197873930261495721289878336944303741465205343113932555751096552084440750662092007724709543926132292705349747324225729423218658825026138002535634674496791785058313291151824809790256825838299922199006625302273644511957373994250665700574692359707060292262300594033189323940812253858594653477177312978122556958921836391005870045246500871950055423506750198852373260849322697494503956827641397523489634116174395920601276550685250833066713113632657902995219851666672270293791506108920145046541680123008740505913231291840752874590230790085298436399547387551817116179360005729863390711735950129082815643717772086604801718190647188306044704223221212419104591681410818832803286428074361265664747424752502192000537705838401130482786376409751532358740827628917458336236946043136699754775703318424592671225774659740987412120518801952723673288169718684977461718201969015319510299322718642020533564280386965682625385279357766471857168799035418507075211200523238005139772310377778300975205592479677760773237792655976000708995354978328552700957025214360189441848939921586479865687838362188929219597483392621171682267914130758221880872944663582291165859237333712473740744552807458664098438289547585724638500423107020312584604634859962596569854540097877454764617450378197158046908666703323102903624800178209552756077736893320811263010483122812371043546675796407293454981102800019127593740426454143921177855719997679687771998790618319988092847965024563382749192366046158690932030047849821454591856984940800052772471744176993792402369678466220154737535427050532184672400200828578235260653109451077969408619423612112570920003549434031603516958774301141472318960752790903756698881702828147256089803640088884366145674796885113826058216087681902213845229283985723396430654162319034173979811965567703795466118257269768219098413070373785273650102591474630138304080203375416910692549513009878283930367032468914769586072604492717997190619904110912982655195371312620130750419219288293059499711242348022470373815436283818879520428384173636625422259775860775094778337564871974673585284348820585143817316104583791623836803777582064580192913630084292787752011027085019912094944996160494062680133294845738766492942782423147104293002652191254570048537947465437525633631890010917558909874188109111501844987370025042550086202232941614126670295185736748405066188939560116460684704603595081830991993259703632023622816025092122331124537871953046928502124882912369411607663333931626316139236142524503361539467423985178581303696120186654159442206779317550731330158035513335120579075677556693312827598688182926919409144458807513250537852690376295465022528970936836800102300103496850660071627038873397198047497153032061909812768320477825672212749726478956528926202603518495673878413342567425795568281676119188354438471111830327074810367107088350189400150748064899094252612802437087257759327433269454732588310421492458510419898222405583148569023492100929919052219109452801658992246412724658499981531513410484416019766595687364199144515440540933440156559932915536393328298477241666560523339058706749131710698136300801092500223438008500095744400006370414144262940333323307537365241473546067781093319016634937667897322967219824837916340333882518257628198354134444697884127830361169084550573629699496801416063017166617784960023372241966665628900973336650397979474172031574202675044203501753214036215028524517449849530912838078205384555813122110404415645069953310339100277630139443532502299882171199251884048017222170061851896612094097515242354185449053226441373871927990696569843631515035057845418454796967891898179812457269400651466664484189969219215841608360323226670000078620423108923370145175380686348834005247675772670920867386705333429239541535048423364326256180051892390065867472271521166888615633821125722151207358917036761624329617310329078001399468702364582951320995406779797075338899458988309621983953035227228125072830521485092974163981683742688862953505938750210153873897231927070356294510862539758180147492320021182834119084872194457824858629416755152507600628548135947708042176032494738679171056623913161075705483478195432650360149997380005626750962396869816392566932166229537532841796506485579478025019902214861558927456413985455753961529029154324797086656885965474235651400009882061415246456181357668290938935274617604334587201573394058333818570181318870740261178045349253326186060625434314904099321026019108309226254595443886243013086051770237117787215207028283165301763509868692779490432279695309292914247786508825798354602105198889012056997899121690915276630701823180895903140754103732015386246086536122510338595670748126309808517080268670882699743724434601244323445177695337279794456567030013924910736078792088938119715318349709614355507996418514887337256026207927292398137574190606376490311652327287939355066216143906194348238292986210898512108118889422666028463922343166893728222126206257446675241428907396658302157767423085368687978787488790210350274566051585083349738928751529632924029680161536817173727507611934152962378663668091099303554038580685532894562930112681475934856681264735357636748499193842235582337943599401662624406531180517238830625192401857284671677507212345698241420544808722037481848361258676050607089748369174395701990949205007410376793359732667430294390381805454306489780669448420477712600687592554904624002568525229202643229974034820390746076158314150920121506735258303359646528419856685715012146221632231226742271292173047723639941691232355026834623456472242188908885023122337440569182337086386139934178794793306968836640690242036029192898221684026213418030462089370421622543902437500187226416576935665011144459647812306493681488353112000711015814965516488199340683711371018836862324180280246201457499332560049024092230753182391991413899949833250466913458441246897064407610528069400626625913991386212240677241541083591325036431482179652181370363184663817396464676076127172340500747116751633141510571689256706282190642179342132373239485780401848641240667747879672401527034026154047498311916068353961011091449937157552635055642086513030351830988850897188434428333446063651092383866835439511498367920074110023779678541590571039816954539691470499971724736068903147421063343093312044593235138755120617050131597891117152185579663436821466233624579977786231375164742967142844746492591344832774181429681855498390565069502681633592836949212132407234926126755095148168111334977151706935095294322025841709294789547242648513345741490868427316475592240745779777206156461095493019201135968748067975848530039083562326187601013123486941453636019452333813709298767905531109150721630083652201549656595946709586824347817297329318184800015001643534085954827933769598336851861651710712227791053258577279293757886049298849985761945943794386444423923853240330069399058995059743145515825132799798432418489699064506895626731951752120036904051717487733261660534582258890217237174047661704250810879269447747855878914224223734410826911370551913443351749383719066415652646513498280876736807293508041484581408812678389321320157843635758068026288152564389579743098113390888679572046838016000366086671311972532469708272212570012264522579044599365069803209234027482082873188718839106775298809304666993873400394479577956256926959866213001522303237097328661264419937270789130347066335112069909797847371822544604881277071131081476009232928422438392179680924363674167369574585456425290809243103231228294581925028306824065129180559912996087139943247856958038741364315262330150372869188927431268799325231158779602130744022134464669136176035994498867884161651097690339712426102666561324863431323405683717967402441332730237089155600667281838231593489823468499714418527049787682893182507479430965243234780698721294762961096157360779828581393481281128978707505407044935979193165842643960047670975473237564344985645926058305052949149415609279506841082187230728495449035818921353397647663934228448517907769268154644935118407083366727224871832680635890202265072789361444178646190031498511714050489189743423999661697180948357405791226598060289201645491074865673854875651135643684220898573503945632819177139152152688544124557272533721210221834250510833840686673072999743223021840779288353391129305453813840292406055489916984221533069938267189055953482838924492916732286661172446909017659862280115863761489676906395673592895614789374517590672078457929114844477344216724293252847183741425823538979867585144185443246100380959332887561938806950364695772758634347135029405886941891842074214830078837569773208750594531886183211867072247351348553474970280136746785426344740218931867829166640266826114889178278934114402726918733781754884993937682348522993351468795567859927696483353015814123077823902709042384478797889513748887729002004707883021877538911821767658969664745547515731711584557503177092378517543020077220323276321783989052155887939467710536799837395497307327500101234284679621427726737648668354713357411489516000048250852556704013519376202090316478520610533666805580626498984097735260494343789172833406355068925426512464710926191788869478971202130551728776696111295291154073492168399248578246758730166881684735473583282557151723296955088578866448663628983516987853830230169806933421864985587331263779831075629992595043079669222288993887572518282395700786332969984806512901813194341969343393073029466817147859138222060428243029281274204466430273615632169975485638066921303822534373098216393313092663555308589891125043645818066458314665467073440511064568190804791689502292790781965194730779454358278319611463662335538643576508683872765100046529618584980065437883759065261854988449369899910548932026641779120165162500153433722606872749932003959357921343447432036404875738556194250246286479336864238880595637840994316467784114770687926474276788695486227396932060715092146282073371204026043385930552274074956075650744007825658383434817067721210568304632539913166508219084842888131715649303089143176006988072177091947693314838157355919686994134406093439845684371824007233793302250063066800454474891309721297537933238822296113517700098626675953179897086537575598424406917116851376163670867676103345209619269553806612634767300159030841769419554837011752989589761075574460983165982950516696515246976801039234337730420949712213065836965747838346401692917759912369627451920181328199548603916964656180474843776364253434305573148894530125830266955272571034328184996521354806044972635225255607013945809821565516908130073355038889262861154429349679463227058087331201541945379606363722773051523803225289326427201181411083966246987518074220117171892063644591711731002623717830736558913901374110502570781520350149260869371356751742474455096496218336978676270323150394609333587369719254572317136941208765596137032437513176815241431842129660302885577958201473439828325850163774027963749519568999917104458432632163763546318598205311657456602995069055927491207166750119444707679855582055825407412237299103780992468207661210283952916368112615381484455703555252615932084177330194140282439693212745898235482457056705087286605038519484257957132665981720619919217185048108092759293401329121410487232069761538284122095519090860613151874927547682918357498318216461277362550951500210185903991901605075493916625667755181533060559427051224242187150895004134553861362954194061192872728048901190850448609541446550140764807118064309681826011668431103131247036049303396636216373280171639773992618546950930469037405136462118998800571861791339554046061898937499277734115606543640428025771721585580532425407798993957780006849291810419081577221237151989803018000051138229123683317295009061928037939259173660452012644122350376757288821637434094786728480484127955879659865493296212603463301579300198892440718118267778970978226839078309343764881979683422219260723827017260007308975440863959668947756198798708741144481734819201648368323376743891018815437121836205856424105456914054076099844622656593831848156814460883182441224326387061713682082867153171385869900580036190395137916030144980423721213970328738517318619579547127972428232440465544766651043896892760651208362224807481491292585927055706108189931007780801894970851213767828015818159881656335859513012399241152177309570752645876396856161370398289573572956683423216199854715370159907438057726076654974883199470803457884084167277527269153251270803268521452472614821567125209675300671279540597759065929810468034257207844783911202417241097378073145820978515067275138120189799874803077692396199133750699658640688758130060057747448726897238955547861763240017338585896106648534756521165407554620615195019692365749819546068819001947504989290003643065578959668919788703974451001885571947164954966240754213823409447274525240017859393904250519239711034486583271354786299885752075452820683376362180190208222068676302087680015058116349465937737557955133087386223298109782101681882286916105614426168299931586767198204028341203799000379419834513248873223016938338051379303218908052186653789267282464696117609470746445448950839370904074185023299888607439361682284651583938343645373156715189913521144561079060101410531466092473676944934603131171168875885020116033458503863654687753134144835470964318708594298913779870757186490458097728181238468055535920856723785337545258857016013561658089628257497270353103729544833859406852869788091667865443092092539023851616210939404664262099258949207733606455468698682129266890556179777767430690109206108837691964051105338868711262698689491210125567780481274555953523154040271321364516012401348987058800840526731270826205471900738896218729184459563323497617402787205123997077374778780431900073750571951895229392546404104579156539604224263957444482353905861697067685804046178114332031533979111894946943784186265987485567523803166674831138378022402656206137724353395189148273601424758327408112479067974339463135556556564768377603055901124016334583533731208235720717760037208410099377211743540015591350798980037528928944190192106037145893108071026154584555324854474845541935217010681882196383530338171175805509629487722727256646656477363737928360852555101094909303144683980239262472298362803147320787600601386944243837799028261978700213028169623250315623964714887079689650240519793571640485341538435050060522536561342083065821147492833913719627983492771400696698597539463827512235765027464657028092996958586159034382232332491170336327834326169492854835414852249985790899456751152476652259471541147630700922727363917087632736595889144161598237781564396019594094103198619736479696927337784066269471726477757328910916197051387593317386106326821746637230749073767557311070550615184297694462894983692386658034165031293100234112869413424963094473352430821274075429749803903106521232279079105044865356947723816782657349766981025534178923570606661371146163369398088808131895771080792767378312254968696972520141734209789564853131414684653050780624491662650469921534902109715148256922181014808248063443430452751036369742464615423152095659297806103067103685318138744416520998690177252180740000471443128182213570991470005159694661099362229870906497761847660210116176193754784733591609923883479102858705286992214158423761497787236693003361865093044355861543655043355717765418348304804506286670761895648156922356742668831898203765475735730516216403822422713683564430718246677001351807618219171785765957318591827222961505240759703093023305292584118372193553599079908920581100119550644088978602564174889002572894917808438064578545956008024409943115359607316843506696389564418475375674108676020904149083363118486896747843036158744912485009366243652133712240782615112299702679825949637761146735646617416666454977305646651604545263014133430272119963307307640001858476638268451794311649529728161877565977964211394796871306490346163433463080089559232785556092161589749341181404685121492806578776777463596632733707388699363706726700471542555917348315448794549545754383577730479216722774104141607462982032034377420342844133473518924332282018709698125155818812340816425015234348119701625109339202183028749164049705155279127873311355513475768660616304290785801289235222370514307070605992914098906222533396202467369328758309468575910550521217501764488699243481948554877683377481270431112558530096282126351713621289104169072294788722366561113817538338753846564396928012881650751004483129340903388688073496310114129719875889177885025015787394557244583749446378591593894426467428787915365510518628487082739975399172053684037083638272469186098397270294981263936708431836360649338144176430689937338250937045904779011332308225899889072098820431695134602671871993199766116966108720087762715186625478754769445017187593575309649177794271348004183877561978332813684117280943742971421277465284958265383477804110840260596726982298084391389952329073412474814208941865762052977420141735490808183082050426811430028531171170185258232319280318952281403054459158172814723683134221081686164620668096151388796097634043355054154534049637400581132995262028797465458322999536430551737447723364437227268508766249937265574658072343568627407316513585756461825827288899380862571928499843194964293760686451171418826156092388587440054449709846412079467043264211409501919249680687988281943933256250133875974843419330826495512309283290934633076119018826124020001874869141528056217201490500570208332034450116213404465518137911076785202784041226426009232414759297105204708193322380772380463103851830199561146143691578124775034808279465425581206522933884134986954256972314862018760165704255088669245405991025114206962787396047830224074301637614193444271599348127676962263703546728403217391291823294795589635178100619760219565580125139663098980932413738947928810940335226893494915152103360418535726840204877055894719988676293244357929965569641212421789750009735674828981309283619632338936984968818709451643978709352334106240510470866821426899691485606421034266024726372821601793612410416786619234313026490484207476003518241146243410399281447731592869604580022388302069629228274877427738177067927543906307903506844556804297849885767769819424702830324000858922750286134884154792415092571631484787524007182049238529309672430249677097168781833230974381372665373577084941413768348995517401549855480838393739776782987934117668425558436715213104693594158120718398524035817945440873512585851876435263843151732118257209575412025156384719850027972205555923286297270985223743266534088613438362493217534567364508442308017169590709156754701032895953809652262916690843644948717861603488520790982331552709556872612315898378006726019053247768762924384241058367473607609805240033912488961130452372432963596401076929961119855877271061845262587693850230114636393428022392892013349612081136357767008957630741381326089672551961318916718230652466785374875529562196618831694887941889345938221584116234287967109763895205039144607079070493872828912145673289637420179576427030352921084182747828584653571586667497536063636589348637798857682923919074575704360095693039116777056759360280366112598254116035160592598735162021016896139012799907752922664879574529939625188626663084993088902357172817371662640443532771395224581490452843163751536807487578162462969843108251496792116854081743356801814420467378143512839404302336032029361360620262726676572362256096426579275174824144491647983088359386945221654948156146352704821640943456783302516903725683990247216657346222369851326760395163590057039963641484867854884534308018933153418483338470075736689582325242061952138927201689281480079984525092702497460051581313030236651552140922363406279150955774429097902428218541356692351711214043262458905804811301784320055258307695602667682489431587644813176560895408399246200270142524369570090112553212414873094108839821812121940652874397616189825645395244546033645676536338146362066346667621524683533809426446491559830272906513533859833596894520838870462031689771592402396149744888889166997550198666906521975594018430160490246758326396707561742791289327202960039855670475760943927977901789967821207665474825007858640539160700239390770409350758025237849533889541245173349349440672328399253305384812805626551311432858172622066673587176054926115037380129977460390196147650498318966547761137181647913924504964573983190031089697243464391706641283927527371612835477584907922912159096206034452128505332412466797172062180208523203381464959696407159366483936486002254188898386877226698571779793045229892771073089035196018585870657608453386578382375561987518125106717888743140791823106393018465688011834929140859442515377765080678179891719715355913309208750291660201559351935414813002528791818179413090148028659845037291228096492966846429328436375060164809418495333588744283266121660127324650988247401335785033450922877800462862492762224723501563663383647756912142660903915799583030537419505640681981460183362553056240655938938632753450150240958852088425600955628066784405128575223035747782443056603138687288080517964048606125958802126305891735889747448696918887226444980517848241079930750358763289283914601221528515177258351013538357797190797761259392950513555037062647960815502487652593540842175518697961839930418965276550746404345054409928907656244766734934405474581279037180576829416710953076894785968255659242761474682470790467928668658475075507919297694944613057294054041591263462939674796671221482432463909754636659309992156995173809138845472314945357342944305749346788489122551947556811670540023620325149963206745359680348781959859615571114099332801709528441265768937375883657377269134224230254573378750963447971087218839932487506157071514439804248402990546399899712669123294212251483038300084043027855756715397186156352356627183069715727968703103147266954438609102870195970090331751590999071154978691600650216192155658943098385050666537295128265684846695699876232486941852062823900253132175330937667543402321036879325669216429587085164851714590100201119052441461946097716525392203964892219911660139426088916058298999536836279431863966534109565181826122680243357248592670267152772452827136645211093921915157438954305531034304036113933971817691051875982924583413600951696174726127396506287747055020666682044703873905571566389068762290316937956372235581865913402051481465346613880636494452821149310580549302032409788472884085470277468276188063009847943395554945128535125703552801191314206257263697391680937062794326186259183759759748563576215063747654426001203739500953427662171920326846502314256036536481622930648065265620501752704088298017231235346656543791759214859920782018502094963230187588505088135799731969336355321788971565479438050634985240654931293891276746092117745096412351483711348750582780572316878120405348828400120087500479421476360570537819275792271912448117395996599023086873629890153789299717004256925892721792783379065971572487892778500874581834263116811474101420129372277087579169183366038433532932616682403015083834780974673680206479428246694057034055326011616748987583305345073439109391484523555351428334955487560127433314388593548821318960881922045346131811477840001241626317390283039925518525174057822416754944076110187162535510114645312731115400672676700979255301542137957538336322608477045483505571531081608722707659922620880226511889876968138303582787300704593239400445062276950789419316433245543500261358945921931786777573839823314803193343465772554624396595182462573258685937820721074390853804442098656643054230683160746427258614822581919806399545218109330605214551555117669157300555000632239479004235001351169973916502888516006252611274934557150804209114569922460336234439445433365123049766928224607694433486406444483121517250126307319805406433017947182485055014181985137657049891236356079753180038294290524603160989791442946048180018742977841015872045989578479900971860990000687820132951545230051685670222220636331939724359863799277342927905893056501731353560504497057466794096772487835608060367653300509553232441481075048138621308068637582788006104438075437720423214929466936405069509988015205086762649145831257013657008782389318271147164364927494664945462364965080929402981473087663272149473125862223348239141648755691288338067502869319336319681931608991141644790436385707182342840764270366453623600045810077512958793656991136077971987029509306826045120914825729248788464090800188901564321711702295378491999629971131933466540219059797564010986678980912670947917534800632642430541478365178281916023875323374807488819978759995900901433111725922903319744374904751280617741957506399555831970399791506758770961709663973324282543215130767583468212846037106889136124542374600331473273519066542647128731224147652616992641003518021532746990345885250665369589613985243689145873320546351507124670509103342135849158883525781287862676782690327620875616044527930801225405742083711757503493911690207963810223880312330084647027632483743327862460705572102390297835319998822541370090932508215281669265669107805356464568552566320713294683494509437933699682482414994934341335753025245931605145210162875301407618668480515278850640000055726097152257470930117000516039004585082906752241730090804504611322442997077623642693664381455353341483277864522396468853153737361099600319364094567685705275866712110580119317712964786849324528339431781041339259178467375375799022039926052357106413487086554098022037535140899845813401370068563226963279106237292067691812145694056614095235292647455590746949662055438006579833256963431216627249686776814993440013796439982666726956472854103716012610540428066956293581675912497587557051824574657741252427681714683522998397756500776826963466713209741973306764368823431941777669119239428087370027709405318356505572576335629623542256222549467332715334605425211803444478666907553007651972106733325083813630198230256691742805514336744354518770434477866602446715925576662957737869326905043951973254288684897863322651915039219108188673649971530540930465421491838812163611096896020913419247035406831574547834663004089927372401607904644863461071046027698246267465428557895791133065520663836926761066945097439355767731840948832597338023816429305551236941132072619220885182111646127947860668217500364962399509307497338916482279669913556705222214620655122720948339161217891403104821702135147496867737569390845432888020480350491488234542209577921307293514075206633687184575682433413109739014695458096435727308734970557609687903534615319052580304946037114827060200946796751524037574106013092673792063071623023886624363740816015187816604973059413455790006984552745984449024471346984957272298718626525465293785695322870180964166216258890951957680643643745319479071926670407992299775004793594510974918465351242145863753870726980013148309165518921931961612371590490365711690807091783813861760867172433946470475043226903317866588124862397713700814916501776899503579801074106359682986816015797947949876727995171044064515966196328137534182092094114096712444300822325116422145938703509638599578998184933938881583451029486982913008144064340351878884001527266992452089057902615942313128233523372328507228272662937937112509959992770648488562733143059089199911001522659900429556051769095853480649480780434019454883915549104403250215161593167757489412214199699782491187313190631450762366292287583494024580247938270938364374840167911842559747618410873468226057188810211323446883773229553115612859904320341946353514747987696241134556654227838458946250550069175381616363173904212981314453986893573812671629185029101782182869941901845531795523520908205864610158387543401997882941866556318897752291687560093338984659641756362091162898901668664749677723941079560621769101979447391176069063000034475879611097611827833900580954996095179789106967487189691472620369606394051639044251244325408032383121275741217415148030886151815366165927147245743975209568204751273271162854428237216341178626937722696136595300336554253795122984308603619327186442894526164061185779202201703693137632197727650736592467833467371663577659194303980681236135621211507835685825880536783621991749205483441519779054836997763374858902861358669404123895216009156795072382859713202116020542109159472474724522784514107361310639851714538277932412021841467634382572604685168664278123199272082731011339787892144444884047791864645148590569593532726284728221711213108538793526158010904126435563107232973594750780692500370170633892126539813979168864981232994706624733226713692841376304906280526041415145673931576551886613649597375206895101041748019927546540615438906345777450314313768142973330259034262575589843385147591598937726464463067900566646327733720036021012888700147993196865527979408498980118270487658657656993262863054338991285490321927543484107914879300391591036740629584146352419860089418069801230715605400874329736837930580719969631478460415263907770655651264538119317768063980271515302658520236141362312759635921685010746237600543817876931915640228032644030994227845092508074830600953966792144323928887811264998390214502251802804200301183640985216340116357215480336517371721025203203095273532695717356268632373749744263934968887000203907607546189785693347786144396393854548945234636233685552504711581295923013007119802036895573487603619139509279173359843137088370994257287816864458719885500283687284989589746230309334584148478545028536368155732318200883737033562018641355254080281185210603428430998088973896923893498188042848641938136527874093821862237874858286260812057665216842302488324426155003376735859154176786593602859771453179476786549005791721706416450130948713054554991362437864229761392459609097736645715085948175139047295352527238799128172348170727592367296000084390502849554397471826156953009176843664822060999839806413968879347845424854423600426179225493660873885533676028196657450176539744259318288058711612125105421113164411197228146845134701816032138499858971579487918244536250742044987210163088808174910793051526564490597573858407400994255966856217056541963777341600991404190591203754996878530474861229704158360363543562542581422700989865087390241454222056605202674771854776119262997519821168337653942288496770333880265744496432372227539479186762234408881481354101534932127473435464324737696404770326744509543631028222564183901475420540579454056706475306502391087302409263933301818111742465769556603075597135811868325101177553697257439525523093875760162822253065381523599958087238995234836826396121060944582089094961280747934647373530827919167406757228284752236301567696567128860612266244065493848518530376284034328770141774934943690188327241865071013669400350260781449401882615373713849149723855101219523236461196747801306584457113604514124937694238814591100001904308399857827411504987871723137134071111991558406596181281089384453675930299067925414890247066985234280578040128233082327063927962758842362086781579171512962351592758425870999878423417059875883449191692742400792433950825218974752041044743666415456814351170597987014949986704240466455096936412953471510426077664604030698504462547315429993940684499864839661304653861074796910400844288550131083409351940133704698875116857231433125027618056675922953296522112134993017847927537903503127022955909106942474319203387729798800474382957394542216680511110608668803192442539390221077144434535475669836707607662902512391292385064224531342096863475080084868962267361932736247248984940634090760300035035347836862651298753532236677594906868717011948962510995300908939429570686573489075029406439168006739891600593430294086510676693834036298862974967509381484204454777120517635824363221348350811458221699519522094918214227723258526745085926208144194636530769912574702275919337049342995401445633539289338823901941375405564107241719104947815731919629851102015514267800286879071154954538183827699815917806230975128664666590080021753466979534912999860308440809391414576554861426841900630074756789842497799904358638819972256906163799053891896988282084395388584627156734282014033638783664223618704449948727890936937237851096918538575140828227323466968705625519292842506040214163260414614113872121413733911649569850272037023243816731133233686746779828009147305844625821527371684391186905559309900876997149438319838053551279970439244717966458683194266286601687328049124370005593614460720953211474661123317721131575417064530002946133860997859481453755540345508663472906862852509631602468256484214639214431353752046159987528805826328994808050208399646984272576105741814983103199074491522062641737888302925105681128306200662526178649807321168811393422949361673547466411720362508244104364240492490725762307415349851053574089150718545868113049159081741290159940253479063347779306490073054472656096232076086969343783349391106656691322560919438888976319835828160008979036564457973454947443550587961728807599441897670354941050650086797005034997309330522842542142605610112041798898051606036034257002652354436968537491871393982973046843421928575852830913468634117407442740909378628839676069889220611743643656624112719016543914375540674204606609175364442585219237773712340851182045731267213842733638784035745751538761188868079761845562899451627453579273095668919353058039833021975572740555898506468274735559030902687958714963837056700009416232543238247182552536885147631772584792682068297868337908585641818700169450287848821136856855437279919425045668847213735218429928006069205352016932651823439108989101550318631508998004082927262005730657799692093519556833748036658096153276679388669680262085325743419860126658002642339114017593297189292336248354757895514025322793072817634937703235828019380627700287570271791265740559360731455098710859960402894287739598260163018614790980346772307022458830968149228503833281595843751567855178668594671447463612630605380714573789632609576181501138946641557763812365942042271675489253472029750407465115789830745550611013211448878518209527111376218030342594580637122661979016223876816159511564274631197529225456461191353713237883146526781546810201204736487931978927382335246184012496974622417563942563258900222249282063756441026466771897893946234225110328561435005193348122152899950856102138577500871405921960608257216062265862511738074971030711520541102729981112831736580270851426383412756214822085173451369693327187899043841156767044822045045407582783171809042357876117106773327301256980165979950838557959672283197314745508202588476217781264580752183546391752055838952991750560710975373145402011205268910820653245090226323522499570448864570576177763900559091040907695316307475117613457654195013637203874610369163785854290689797616823696441358463097394543211680266025476055343882578582850869543066491663554471420607388045182039293876406708149105466775652177484573534445460730580027380264402868934040347599857781332338686065632371750076862641351558796951634872694435607375137291644541359246281998551697245901737696788635723431543172453458333422094216236584434299456493163157865125998169709191069847853173801843396061570400726016911842516528329855990321076582725567713422676366736454252070888592134828644305226336217577007328745203812159068875986349442806500441584447884626571869704758526047207015690911227375719055335915317990760645190138241256089308962126140948505911970994002187489369256135330865497220526854245049410864028166610078552787712457894416416612783709259431675290414561620220926024683375954674993862712349000003605798659553140689488303076807811356490431161607745918134270686878910772009360250307515138382633248522225618057132844605685293735098477200374321630787720487541360673588645094795285715912501800420603293475393707611042767748806695943996669691032713025519866542970588673719307786410422045043816118946057361867741264294691383522340679120076965426459062337018016439973045812835346600819220475567576103640157762223469737370001072903857680367545412314638506588124905692949104691564733898178209670058052403774331909173359723881978192721309545202241375671449420798099772028229470071507886030551183836167999639481090114730201668974812699927180316412876604907850699139826257970095638907772412899780303809427452465490376171844412638642073226661356729301507787190094897195854775017251781710301346598879349603027806209224839156997914196020263079274441856982913658532857478313440900966849697088861926428078387658130317486878204404474013572414839786735159098065371039447141276029772875384388411486056176962279213582113495936958788348219741194152917214904713555815553748586383758243159782266075703842967380251514141853015440158290774116724604884597863377533361729158455917690078993863979012855093988629160572655577657711761137748002372307234766553171700702218075912723482233453473451540278485045508911047999698182390388022478778552624237641244248995842683459605054559684706903275240240593268717221210487403898754900339672219711286987510904504434403685083534416243367196707777297025742082734388167341176862044743184624752190951846288988764505410490127109282000818550715913524785459256862583226154802795197598890401374524465891633742253225383861031895866120049856360180687948204626732085703712662201206407528984847470360908713201768848297507366384835930606594431425479214866508585286514369818502234194684521565750368771603175340624594795240131999945052793827445448256785865913328474173453358585273205688509770370979926600268455289180982525228697358579681056530162203285582345719204289112562016369795625525624004905609492022856016502896771853678688987376684030995795921972301884357606984104465787929486874784291113240996778344099997638986012596570422146766020791214883694739883615993585099784440284188253457775421894516216064626583988892591442391945074795734829398566241858466772286371987359144650278382359063965472321412060806074884069927006312929404989334576580745431378658564455053093185140078581357248997841191465562186035755923791260133133620470933357812570763153471521203198740267174042807034897630642673223847991875873270370030239458400757521890424209197686994948626012609713151788425276745878697796658989173727110373464670702325474847748401976851303843952915536370391529598195486518843800306576487045418105243037951521135838093448725935932747684067029533356711266870764252076765937431425890877934397709972785575120042504437193088815787314292799640525346664745456707088527679416376307574496490294276955589711514767150914122272707378743958618282163297445270591717626925332033146766750988771399794582910213016844950655656545780650124076193837539798435027081534893686678203138716207890558449430268793529353276288027105485439334663739006173340106491296461855792295810977831443618452733357341479318006044981087999336296876354261876788677317704162297401863000735598367924111989932657320564588183862624703842594454182049845730871324991045322342690950309491207309562586858115506322673712633726333438305976923045630851389302942930549573439692868155863893581548381372558343884580620550867173679696956950715888726313685552681099547673155888627098255740320176216183082326906509337442444954462084221620567066764793162912706865717482202522167057085736677869945406589873297933580212947326418228421787587366469407921213296260742615641755710302757477500654249523482876038016329765762738281401798009254393775267426029335148459187380092360776371109432857308927486951721183578198708989170177344485334115190575492166781232552388175759486098349269831954295478088475963387956876413857673813204520685972805102086941479288194754819465222850671064553340233094198288628910131961100106294520874877771551598120879472675006862698985608908171507287268023426859784313651680980135314948551827371319631482249417341292403648192195890481367426059946084309935316820283777060177397900289423376938345016609696989518682652320706556684695628232617011118722679917698892884928537982962752981398423298417392257640927791135836818477572190883990927953096421258302401757542293388417602189283230879547863079499496361179039345140485852808930889267767036742155799098160873285398264797544175458659468266894962907580221975588626564814719141405697114533503577683094229124266803837265014037167030262555764407322834716379390287685696303341331239687331526295308187850261549120945691054485221102980066456592548765347201234307527734219675586874993160563077229818205197697786829889804382844338147081017269637067386528750056371113286013072066266637780258751220772923945946722704505227934463977415370774834309684386352235843409673632662581139831941018678330086945927208195909290077558283331016240494500885646102376627771022386811534656749486845621420342709457212749339999052933269251856672849635407795143320662605567648887367099105229318990951200546849296750620713832700194074217627161812133102855643246146864623562372774353780866698930040244298609868985913628661835860752372528006118077356059557951547581801084673001466827949474502524656362820407159792451539739327340880696921260875017298460259428276888121276069747251136147629691750279694334614593751910670172441831643923998524130693207209100147584270466533732259176124419086667777995745333213586975121168276468311627372641503312176372635936271104720235090464742990886602743037679340715019032867298750001415124644544319167862937778248823568504691025779908308863577696008680962122971395826046433029078993917407854038682379198494113415853789446965176692144354504268760318791147012329415946461475291443410674322620257267576918844866621383887081903607087296286347897441794997002681777558424162235756912861657896774837278095983225229605051322172162837063077352594165235660166290303956830035888389998704781026630619312573063724830714280119000010524133281289270238186602403554497020652991616045377513180788440142427145162594263656694357229547926021759568321791668681908742423708369591634079403935445963461668130769948284084212052364070384382502682849562418672187986946048080168824318933926664507818290994199458099832995682017560886727851190884507307323787968085777169743480853601343127438773511058018662164198890231848495713772418871805987548690338991049558190538637464538847390450056781676919922184629206239663078237870064254647483423139005926465248948741288486555017096667478195867071479813267504967579173605190150423106197069905724388146321700361907513825102169616953705569172173063939179796152903669162994804944181360713552038567647992004290831025185287404769712945940531915122827266102113498967305481653428201916183445238174970229746420023195069278736511978700362518106602656533039786868295022911414765784500870068244759519520078704756403241554350915989572141368988662087640837631838004431984437135282327432074080083149397458134484748853939125284785247742033610488752264898764211446672850224292034201053587414014854255331998001940156161768494240676517096321347216149838405413201057593794895047256599916582223693780932567586221912736943735966182489300982391897811339223774355113239309141734201618482551158843383882174086551577265546462408012277769594645005376433268868300087317003736027589344824548428917086261017299415928208956676987942119011066632714937928135227741349472963552164560748523474109688641825030351703807971978888366296594048569073921339495622505480093288470489275299697788961469158588508842634997383349732224806437892100455558038703296742088534298074276193915051836651298950709918216665034661496725161156149213344679787504173517754423176239703839173238060903646644194778179799076576996575558657071599942588330241686106270177065950744687534113745815865885310809045658586329916354032466593496648800650616746121868551848930883451897280888834739652494755314894503487410872155679023061465217642459126940740767300312124783469841156935104556724398938598159404779072999890754321793240666995693993290883511651040928596951771035015809193726804057776900600513457355754681599075663886342469445387941865375878349748035051345520343109212121018278833441303104485734627558798680126607975706385804931700812105508982385565644190425011087930278125165547509747269767908014705164090479720471842761627670357577422639654611003310505283475242869043665925769420218765643842870462561500253594580423683061140137589813731752338424673825580620586944681496803479171392421625918869773586699597244875547680740916519845297815965241168562493456771750321168433901679923380217068020296870397287036118514785030687079322140665140025668104524983750138901511710645347212733987662659189420989027488678897000503112595638321292257914597926408421172697283281433100672560676251342296476980710790129069897916143837694145759674195480420937915769557148618972636223101991800838788482396368454943618078287391105273781646953712082106027301763561730046417943641770409416491005605987693964433262386331566415702825821906669872787518039642923182718107833187207641993923255270988889659374249262295548364062793706451591976132900393949219090651343324056918391004766359351702939787059686519371545216641023837242366066232395509275581783742784589809050823124880515015060179095368812623088161263157230400893123752560566473708914399105256771868548581288187928398633517198087366205781382803141517447050465389729869285516874369836615004411038432011426304755633584291905309100331848964035356763388162705424249094001046107626034124102596041004633932152374595961871140557688140261173607659873592387839348633932285467092722236388229804525070500956525660719906014080789878382713426939390740285977633202467512715334828960392122952807757287807248183882779195980624374857390021586813941032795386437656397703459424701221067174854826029406360331834230120320707560208698809764211662991858826355379085968477542233354906104905155362954540919845337750770395733211417322211889242480061831085718216958419354221117710339209541687224594394383576040585896095171561802646219802920646828576576078629987049057072457721281007654204357456478819801820234812595117033701125254223481953780140818937093508153148759245477441422103985340721275543496937585805367708439400325140204737536269656540683993046572773734172142508441192793156121582355562344268346668712480980163645100169391581517148847712912408338456712874161752578806744247525037315417181812291378533850196119254060277767659356769958626009389382768776336695926690265877481625210581865593771013853269487762609166640719890841859030725797667390653364721716618908102819935226539410092055504315163019833015767679473106763727697347502392903396259178783367716427929196301333167343320357593372553166653173126364137044069822415786815189930960200856360392723542347981722498619624733394704692564841034989735959005923891435471687846672253555417198401808325843857631321293308649880061946589235403139813568867838528993324197235382056002478386742597285236865664918412109312000883659982839647929882102282769217513804789662536282696271834439209241930197077073555931327566822137547481932351291079107966302917633407854799419348210166285610184033978108877603625876321973853186779446417487215068918395446468568186454621589009266558059287767378294994398873027862195831087415352106671282978793666487920936941723542857293777429519352549962484652705005617924573317299258447539278377820078190594162725060344050930793575992306214039614514778775818461589839152566527315747252954040747841650670651542297927050534726364167115498305541712115676641383766515456031675946734549272361543041054431790590853877911373052977379684289277976842179828132300160262397110132209905484840787939570842319139375829846150436292038259733929269468165651361385223303563146104398579644120330973403754867950567722697108750453318876160071998934234110235511002862414643022860739259682492812396408477386684813969805817684810693828355719233895270034474055875051241793810231548013738756847104475302179945098385808388104616989354837794526368559842747313883872336368610379579342301006746004824227432899782054203901234605183751399215026394536342074310924156078003758178426345680633590792591465340508226853776638963514319705430233143893328103505059596721869460586924919236581791769576236402657217989322378608452114540567090895567474530790493383763796868302293415475184268692957834233099388676450194375730208887632372173348352546826083883517268262877999035529313056252893323263214931941079070249675790795917641605358776724084319187863990906399266862096014459359686084198332614084626524681666743225526888780431904323089648992737576301565568871631612084563482132173616486784263918891462337966193574408553013536275281167421897578076896551414998025547284407129696102092716687646761422794044108868294654703422328900212791645276920573555388195945621792157770236021990367304250524918797381684072736099071975162452571853733861617919918745971163593861164785178518340479820695225474741504216186345435795139159456115894949138524510601295565352080007181852249933311596210664693715358672307000410701034135532261415612731803308914965737646044778718374344312955292191959517562170619419937380951460724362511030599688115205382906381397863027971702112434377743112565393126527571614734738569658142377471491916701684536154374941249154194542946699734310615248339593469519178462344702677198950618051606368866077344595790348936926922795829263376613170105236794779341977101083623806346460340094738167553837792354217919050166882384654617009149578420963755200386032346662874782147908442560171476216788319226363781215721895722274377777307494583562686814212715495773439071022275467627862999609937489497440857700489158873982117263284885192220090996783655519090722639550317639705413662288874306569208958138762143968893204554796974607515601897669226277663378928685565980063228677590080628466795339414528777976749327557955974112081202069665273662770983963748297681700066243874841119310011420036618550238495323241071395576358897940962049850494996342978949379626505048948773657088034350946115548589462240311781749176727215441663031676883493563699984456519698948227962296108240334980054519566075630747914997819170333239128465324246214745323302497468814427289405987516771604090815548884027963273507360924825800466145847789709449993002836248740066162269927075677253379279142617888657315430370912465114553538322353736530986003676438754321403080506985861512682705881280775181743086529623526657084195270262744547143350636412804712334854260237874228319255642694157863362042592130584997251717295422519687718778730831979647393671644585834216511129814031552336802426211358149772997387281163463308003560367733333841207663938670457633031279370978044293685600937486947893057097097442801480208218280651060003697342132729758100523291661902135811210406013093956834188058569025532416609119028636851684346514107121631955390444700748249160724125561859902938031299410073972336310230525357062136944878135224300264709389451383330733681778206235595332570107264753989692654689028156499936508313225158396667633476103758999421681085041260611557215320069457472162358000803488440959760291328354185339997823447551834810498251895356783783623440961621040078758243639029504875794603686429245321323331209469174362347305325030738152314159171917689015635239652301119806623916525913995562745033078883580986395544321131242088174247398817610150958660324415353389794069063425811694364481605550311138849927363854745676879224148738998851257838756886221088223466630064327368856998711917781199914809568694074477453622451567684180931565310842502196796131181940804098574542460894505581287262095099617953918463296206913481425410967789331212743243846909508728314589580635170782119454502445703210139588513739805475179176705343133112306124312523458488762571177381849398283323315743969967863035791797202563712293151034662971042058067418355788857761325239218165058850818240401085194502521108788636997118513094431868975973271452785311167152346001535035039885369465789016943349304825119429906547852961968194446617688521082313604377744810749720785779590423884098342401270007020912622044266011773951421365614797876868549418692867399753314914933049425576635855903564411966022545776420173233167465450205646736842878707521452689614795822558176186457515311750006740802875882242432962201354072716927765152093699800440924500947063770522335493177243352381706155172281536026718343613681424173071900411306422132968666173010229412580589598884401187529278839862409018986295238549171279536717163092653160248696025657739872844500015887869140716542675762570502878200661082272277347384796720589797993895545249584888969224326630266066034345323481893805113279500636235407455734270251789731863804339044080579894133876094682100881804711610514059048876077162691720549201228213989962135826976603568240265151072015245930399697093277113953678761613202779183912062274506879075033691146829795703788615664618446434454633545900242015973383552065229019919569312850599682893801197409199615569635835600723705766766058020796055884791884714854494043343373912140164700266458661546783219674289631871066748685859473032649781755405695247495839653188666649012491092082599154718700733870213681731058612360446713105263390022335972543477820077583322438634387103923666023071774232322337046655781848137325028421445754429110518115537822836229314653151220774479653037254491321433771732305255731656105068652427847838541340027524609488009264353447402164773133112188327518677648587948473036402873704595345066508858421602079448753206111645933709048890009064945513678802083096538513186725194976022237467845841637267114921095292802462213292481878212357484850414627115265097644935862599927190482702094855796348033365607536234272068139041534862770080454496461898507630282381122786000307682241443405809520679032755699944695988176171852012890461900566277673029551873853413197369936257354810374655508728079768451209741579651892991160853334458608788938587463387092702606691653004025188809328601568511792164501070202591660530018885509422833776323881617834995038476134286001504809827177955391307557945362207810625224857753735669290585727422433702835018075203655617264001735843626897082838005199982834372290791939197830067369356924751824458306009932354626903830712421660504630702987636399291398345536069925819396747073907236215036568793256308215765229235968759470256674922764935729425675162137199249957240339957983569061704604199429936870170646371819178494898460998272367550356298528184831258857173246113212081212163687645035880576339694497382736780814169497682129333177743276557740661760131051477554237742874275820234068241976944771463048686637725366465626282915028565824592652002931727786500566043677927344873298764712855059640831900155585789709280938761886509452609182608635833019113456178494620011648280966671448256220710341892529252614058521394153189354803835885131786352185406275095285097093364095803995866755832586672968089750134526863080292154116739023826659673564384805596431163324336935455691061545285484541572264431473442477705041659892648799168413565558794377839562355735829851766580992615279873855148522818939943303470377297950401256726299644357417140391209517920727142808917668941991140195029544114233027562503772010726997320787349583852886154237974941290563161968136278667712902489748522591517587594870234995775523915540136348138282497773763648918629344452523590653524233397600703666023459909634280313421154706824671109830886077013541731631582455864553466339914026900616605263604001578116879487791528941441530386818489753414299661772406107330236296105837081654797588621110248527340624414480727977343977627893161313253152484161099780662995043979518337213424138731756741643600854825468523931732741453463981270434116968537931204276412086068551344037083873567509368222412121017430410613876071401066628003950756435605707041686726251201226501297005937180182809277698973063796545989601537806895966235770027567173595139011927346888506752402797747823077915340662908740429255560727829015061948338586157656105311236720974911518210805291955481679912095446031146700960716861399109843813541345855216653966079086733613196391516619689466699362416696373219011728302562838471951373376767709667320924715972511687150574746462489317220540467906651256041392637021660973581126787245572501370199630122633448262823482499391345042448253596401961340514534970796705866261555722847652799799074894603356880263049780779060059537874484664986379855032145024415399743524056308852122677556372714804817628771323206732241010511587319739930439056598734401786318977077392837569604717381040017513369949364119063250866845671411113034662064980544314209543592422442973274548657937881670652601046020986577869154238485287853634787274801373321748601260684158617659513486225782566125581956590962230692708464172837983179184420795944297063264004981988422483819631944290129535432661368169088954851336730132408501386230348241836694501831947777772270618754252988064828825230326328184954790971457603752934677699799657482841126829387774040387152499099290244962487386661142838754130708128504412859091321936537394780919816171429549956505582397481911526192777798405941294558439567322565152233335822293510334565805093122396093430359792723244103178301706748317547683210240454115760075706367746132934573838424529366846723270223451422189190131551252623410494038304254048380982247414735138420042399985448165334456238847205521242796891467946061212653648483256740414350356154668328406981480578498683920854003805543608984540862290038045753094179156829488817319267628659836394405172579982800935723790940193902769273229639131601227090442786150209521050165079778649424854347209985510514854019152099563044335796605211158764979926347090337042334006259064905288856950574323598379072824529024429937227014633859368635265596420344961659129837039300987114546419556211324602342161882517195461045633998622771969954511257716711132457054428134037894747902718460130945917630631629118073042978460132602974292249998897732014786079763671171462467890641612396879639140192478465176087340092624894840848951625811636974756356309021104183722240863604271058258952943865939815296266180047343533991494747841241727796821280199794257311067925754514931391346727674030524399792524120840672793882718477987804239239813854668622157318563911560699936515766495153482191510526670263288967774145148552818242652731443907986392616416888414890030913792132977341422643434977759763058760433511193413210555605253492862729231664241445312093316374346633254060292027747900791513968602198188256771807320256726276756501746510457573668885064287843817275427035009905475598105390530996710388890120079074669547956348604778827232265483331299143771970323085936775816587766637580169314739267127137085834179142502558893192837668958056988283534521065800230716645772798333544239233805190190826922491419606989524743383885633551732111188466277558283879602067811872453096240763722379463618922053420408217292146013618241583211679015922646191060922629030611953421896198139338184391960291745759483070392168958303608565956584798413581629686996794693546624007547322091630077809617556755897868991199305977559007003332853998775306612361308202841960649533694667381063598034017206439007395550181798531144041040068279910401680460219688341905528068109965315414112710924406754291626498987506704613231457677602091110293582158384784160230089709215543568571500758314198546060068681512374335329391433861920095196652326689504719946761718916494780146864545971867094339801976215544741687078874785529544451442688972523829340122446114330641876046597995817230971652411894657510603677528043488625669877306660026201601147747287277199967407603927148144347294343426410238746630790158216509182273860632591230493213669471510643327113343445056480825636654746583673358613070145643751768190221081771596439331647057289694955207158863723988075540991693142748684316999628871349183483824332894149670666051339364400195087743105534543902171287902502877837618095580414897891497966482965753883932265131332116972878700432748253192967237002890933841556448124620940470484605107030182461208776478478978245028900918268504075935601156393862905596149842566749342876935396136946990597206369679724786881893361806064724451584207251254345221716223872800442021538022037194375248418182425987212767175422093619721973430734938972320763013476135682349190380993723678704191975701918336447941069313288763771121061529074705708629485941785051475129278839954844817430190251112491342187761846999913329049072477600389270135845389732437456229582413864708133024489487824402493032261117311020434452844470122098270071684311618204091096169410029055791648475797670265886861201572590744347809503487285559734946087433608790319385379950943286641295468215670562052038008043824398039134615021303391737173465091919013625770730556180107902038719005522738445980498891729579035196744962128424978371968535723878504622219268847262353074856732068404312327013067357990006632597938090932124438241907590273246947446431752956525800504507890221863245983868392258065262142256534053872356933505604985687053170834462330258853999863964434946826520327595042239919575339744277806242724526849359457815531490811565139387784210142935437141218338473797320109096255818512948591543650218832862377401011977773825894868085535083873681361255429535418003939230546775472030636458891930838998436336953657627009500394326788281931124976374482877901405620496259722771942187172272075152644832348865642841284474675923398371458785529184603677741514129292106854975432570040714980372810596676610857345355057088776011979797023914672472753854089608553357109502133362781213308738070111684476961011130046186033687705444723773762542531856835345924432566518508737331186667671275277655073394538961721596538408568292118785695517949279471241912336435521545830591911655747008220311798559601073419942404445935193453052680914755589199105690337421343924737166336304738252114033203003541993368837850741982346844797643654405633023375535960745185220120211263597221090735177185934190252658656676321914214046742986808513424894464309253220171183816657134169395056208815095760787137680297913294800229493156522039404060739861327248974618201329785330469438465671552679916871731272674441162184534954718855877125765436848020948457741440758314295509505414215595902023375980004307885890653616631335281993244608022332916922736427181840721951220973687237089053543984278677398280314238261171551917735322415137584435695466202487035856328476507404529898743883750961842677813896200738756867481167213486645497570515140861465379163023872087131559811201376473719789995773568520779450850592885780221978419446329238802840571573571609965738471883697598649659789498561697163941089619994816694550110282914272624591634431056715088989553080366612531240564177246141570564522692469297875035782250786917602635522579323780974603924103409989084433810638634218338660548085196707390854070532861773787906650380215432653664535451157360153170392826321278954773861526492086051413450617697120485421970412603338560063350062923852740237336273368948612164562712651242497458024796507732807613934053218687033188054089855886106888521631557561549625123512726245100416646314906169539610938835391873855593500503971593284680933679514454989094362922091376058648973378385370408469951297668920992455312011082681527312188087391877096957861747943595916016101140806253560538810052941961500585740446449469118658869328114641378030970953553384226724505390986400603261803300330738129310313134630066547617588067841343968455472725670447738163106232913944512491733845970878040670741651220543360806943146446718269124598756337128368848114419436298303779826192882543556918927245330277737833573248085253650167524257905539949911539213508603101227762453759008960152153782777571781374113124776484231296760686556673926771905667581991546342697312425057693726419041803924348942647173660295088090062026016830709341273127930697419211393331470972977819644047417789834625406747953527377767865418866678932954104538957384339237828047264896187621729981251054951429077486657111738489816689001823586006589141380674614501948751546692489328782445775037051679481999575962442293821684184222937863555853808019212719964233031498065221263731960301753822426770065829873717124423470624833940126958176995731710858106734710887102015978819122058477874373343996440731912969108929002065544293535784668010148180926746472231704344587585301137868348440355353810518125457728904478096529832953315219048654981506713988940958423448895286315541125507613748029899267963988296626120097930737934646229828352308430752639858518222265850150591916535811844502548080661577899114423498781664612322207975716240408246123881904613007177049280336441485221049967917163214475284233520618539556605640504538277298372770967144462017851525421357130965912969525166141224079878776620947009221094205145405198405574701532994518314294556774991065687860480137336978351925686768968795101309400843800569109026351951515957749670955067847611513655257638566456828490905063477374359021181212896184182643757233885506604593501267584609637479199249686800946834350308135897388198706925010603174474310041219292959208701549220382908676096770193351383732323940243907339795568898219232794677235141254845269568593484223941483321324457727930175396141515471710406437814663911641406105871604505158735588336019815340593714389215526848985768616222031410246883909461315142486082983263405593508291979853510704824714145928341206522256641360709397501515625687945236700834000726442333838475342250933146163545395662803791370080983718106593331546516598609478960304204213539121611373679739638010111992802623293197093080401961711697856555722732935069043845674477837767751867392949579688581933899764025305305009902310511011038379254732981323594356264819604730650321304890282269995201926064520150300307797275637216773927004992667824327794404064269014735303568408920364362281129138657942088223755321560809806809207399065669203214420250491085510202466622413966588610275521702789524628239499128395326653997545038531350877116895969799055750675736026158072019638344348428205683504628048663132011061353344094847139579440887877383339885969216847477060864706725218603835739316467448499254243689954136979876455759082203143731461346665836569163854147825656453832381496431520646546669802103310025247966321215639119817412266648840716710843860326421510121743883506490848372796659133812239729736935576451431461696072326694558301678379346599112164953505575573178594303471266071175817780418586286282466208510734288984277678248141668713165646527108926717917388762948147147910577890537988692985602876174871659631969589706709177512662317538430782217795786827663538419781335758510464691813494360501604757142282057053455682191265023829654136922928634266943274236820184823056948215161832929674622922669081050349631014647757463474704684190714610239881683788259843852423316332006345593655056338304610352423342490799518037030544407628252111549802629073187784908103675184966523544507802852465327040895591296181128511047413618643907071032324263976160010509403039694970306629644446752584216698125555555321031338704755477113309573640873777011398400242806492303291555806210826715471419138954337797485330403882399080421506652239642868537979147263301009639345763724802465335628662831498562043536453061097854115470959795340608535883178109122704730093753993056055724454625007401849586140204689470150712248736461098544931638303253522052840013523641521275442147134070214747413660605346197008952927897179666298678933986558989775783938429307925208757326801323347109510330513244368541936734110377966346028127350678340640180605639203910530394430013798093007837772195798071076250261890039468615470757485549881291693600955977797959255070542643361078560162116475894489406062761013178153393636447902333305888582620044255623356577634054846958243528942795732535904187831231039004851270846887463604482655079548695350587655521342509964663491360272810527981487039267804718305864023480777387986421480475106740805530698335196500367968963645809120894558829267127473649254992051254881952050414650771889419030094969280658115497976747506358364688113380503510816777510225218194238292635249680980795887547226655930201007260246122609644596183142911494138118699324785796110005307491373602074145143193084286127570076949409038587196161405249189078915353489547057859818738959673315480858062909283985669509776586851817896611608588332267156324860279745259029243046628864935985851061278409569677375241038437659250441312647833722877665687664219850345752835512015732799171366657132310371951184142098443991859141028335485789025425118224203525107515595796961476548974181018597490274329383058350113655728334397291509837614873565785181538320586364751307997256730190158287535536461062550193787315645252650075716108046152524295410575524891433821389890641661919224666807454796365708796624623524706144102067665104357423456665060348215235722589444160459908029093546561230522526914517600484463622575759152160468731526275473345485744102039114682968811596333838484002513869951009799712332490655892137198104960524247035583710801351213989007681629937356298341684228810517436441700526307418913638231936066469995242759814819811716134899825281115443230121800143679192014217426323863835328793024661557361381132990057944622076077298239260408866071332502912877525334606585845647678737622075395624785112920449656414387105993407203153018450494457187651055535511890466263739522672147532693009741639992611068584294645457025889412034010286321503778193193957234927799241302122178915449969595795946854130814521057061391690658718557260681711647058211497891072273979694177573211156264593651380411642899485601321374349836158142652595691349462675672407773399654458910611680395505627708664394772291727437712207524106985816720918613845669612312989292652156240039291812375244111022242439508018191750708253501825413801618562702083223313045978726325352731611800018549089264966108947482740142514297924276542950141174952706443771239315165048611471956088106413580710121140023737058172029702933515390288685934463329866717329317936605261572337800840727654727014781701357753286262253278024936975704981874037011058466526223878422135790372056882426607927571303586270775288319848939504563633881748264524573108350621410884158010966685345435110332023372126721875375233329949658867482193148392084010532586080769638792589213436228895831272204723892944595712115400155447050169778477319065927288614441773128574538174308434928582039337812589500587705241144694138163350878284055066568361420699014618332488272995203077209475008601990764259058768027706002927094260023649873360460833498921191822247605410636107358632948532634768161085093225949239041614495553536765125415446021982382674078913753810536290098350970948448908387317274048360738124610367387500405734613675930947811136606094560881764298739808429022521101107289350065097651759343657158561807231481843974699674707642108776646993086643312609734174900435166726714176433867257710232837885004945045644688406340183106810953276622295218061070955620670736895654841329841998373889551179531006338861634956272058157653218732012979869784102840808388253960591036032421222785525352779595057332077503269042345572214066249382953874429124262333592550877780191156451325285336570201613448628862735014730560584985060197290641543929820838479770115348160693089283798203640223751116999620678056800512650464708853320392206246191888025235847996306503008068702543336468116023830948521080327885809676304092610859265173775263797815488213478661634841311180721885099570504516530107115240553528162951910659229631508196311711156451166597661095961157874543063076491463897747907171777304878755872752143520907061155339201631727348285826187970471263946846028335562432301866708287452097642602062339605265888871012971466344684441690078930830384147796071986612902815767006405254189893277695526635025156479026235876873601153482682549455456864175860108328905372774138388527654820367092230035761151127850419684319391376837603711182768307631543942836367099465193813650396857465711636565706640068210628244255524227975821558399913436850543305745438089069537833050368244621961627529772029462150135278654595620032628819671969871345022284130911280080875375718986323196990550054196234341484480473495598538362636193733656829134751479875293863075240056438180607905885122024771848949425197472074024535158503494342808772416701524483273843344195584848757930997980206966307771762508395755162021958562706089128928761574244407855557459013896049913808450325790451848856185466484490382572088128479636185941302756423721626870176993430118946286017938799787439197211131544673762878967313046138921307114334409117983288767416125512086972013285232314441052812966403301778010157736195761913702525838445207166113531135125453944696773233164992272547367808055381675751066992646087267599261987747247250619742341466729207926973786142338845102849220615701207541078761041902772376122466114631769273520638394389618167609305666384725332964740063150957855140413904011064450331802351706771718950648061250461692225519677533633414836626716194783952701828602353307075020197623720051034905764553020218516712816922238866860957481258761061584240765110814625003811157585185017647988895374382460924035115250028284643745069798928131559546196512010925757132558877483808224670237015289848782590459252547627672965300677216030439461378072833554874944451486199696295223657354040604542959396946845429164724181023117991930127268583422674978076742634913453201359730227735829116244170282337028690065639971674737087960953614630312576917843008969826998821359549274366643798108773580275628381970161485076444911853286622195965179655821354629795689195015381232597810850415661967855923487551813016097129699255660254223338952932503451059353818877672082887798734909273568045218611217066254702669112666043763757969987547740773530420232926377149576065828950846851063021900539916217171223021974424583590940454948160374677492739873113956678265137588783164997769322579633642914018368251745877282193843576886138150115897606610263151884386914142906867244867631301372581242120385367149817320807235721472836401431165869853416233423679710698432122995007606059299530229363846326791365272639261793684391149558029228663151249613448900358565432490099706457117987425957606261298839951787364477843260895254985976773483021732464093150103903825089343454477950816445910932953594587022660506646501645461424832508763120593973810712427816044295465544833773466479970209541010454914395339328241977073456644566776235881458956149080296282563464256873851419218868958015193264170999846738644810969432990493293332677834503286055734094768740994619673603591006514449132924525311905865774588977910109044130525289250918158368509182091330786659385127907517611846200429790733423765446906425754503386162825819735244943734783135566085610096974096567586412048549302827657693177282675772156824150061692742051883838807351206808510069345844034065604609062071186749256626079589941855764168443608747609822621683292813555006457771493581137756723107483875189999836187470003071981122489075917135818896871512980208831899377012659425539114250487953382218167076324813262929593746847592527441004654013748824363645477632794369320580166146446312698623598609382647710936820073358433670324997334386094890658475813704517838989391852870476807384844497329131693266642080743768742855648948102370897839996856874638807728718158725098462621898937916240908986027796257293931925775622453208671840572999231895195705098887121989046774041897313451862109111925900747859680008004415401879421545843559305819155879077365187473065039753105093982165892740104649945462617327407279696293698927355780982148382849375758716270586531829954436089743673535524562792520657259503331785204144593941829505211209642917669183242193663136493151133676031421271304175986559240328066156450759769928558232715168829058651569092430555935339206866131014067083818739184733402140889270483608600769455719439185213810773356450809071407659114168745125945090330961937780246725791767297726362715977972840978076424035120747339336121085818440097645039896092724016586859600164964073018913385726033302968080029946911224916166020407274900794476857646182075063601087187791205948648519283509578737125494111898203180661598805273009980605149578912850081864832547568572373016716254745053032272437826342120010189400369862769386863470375155153586064237068228219831805646492726197317487040878744887477688406820561582123686830117061353857250784386004026185483067636769803889487487003941343716142100926438078618857010641244668521131594748544847723892018393363396321873778795041365642673553202340957888740934511815613909821348220141250800071282509229159164420469020601944475447651858214189920120955707021102342254358228480977259963002108794718557123696322562174453707402833865387523517279364248025809460497822491110753588913745956083139903404464891104431027082757013171375878487677744849980544212851277807204676719567676496250545008496772966305529016091724581990199028965222531927240609937765748254214889458468526940270709089943445556191842226190394076912504191597248605139561625440391645150591560571886270199619878217804816708189390576197725720726974641064838161739564617354008637736059075014474483202041721086057748362810832001317520163267714810857868663902953316566339569711634200256574009132772480095820031457934895014450962759218729349555632534378179364137971362818220573310254478766690643376813409484665500232902322364004806318841358996907568835191292697831874222887113146681964493630883137485372033776750190979169391363346654334865404251502472137962145911650160607976817973668644299549985866185324040154808498695401015595975978865347920406885657150828570961833856321925045679670996263692206021611055794795887018033491321513007711100631780215164837660183664432722242934426696896257501346471536203498989453688143078563299489030118164293236255424943791919134188533376529389136467472543685209167531170954304614473209345703083030752014608736932717570573261855432531832063227158319637397365023541082090066866715315232351433620979023426744079595237601998174740277850000831050867760804138365847717797519347292651716438895332390967459875754563063381516958473968784895466055514484426221503044467079986642248554095506652565068113874115925810323781069521034826117479773337072230713296856818476085879869494296231178051222811722128470234848853143382579470211544064652245544581480992329267277864902318530518514979742876719109014380802650186068164092560792077634149352983807071343636720622059205987841266843116159886764878563458909755185671704228284608633804810622277174016720776907147151702831708271239841402162745840662717712217785095071881637052145692683444532109720404461942259967539526579529191748950946848343918876002806245315426767929891091083828877099168277329331812136217848325879597459154072830764007449543130399465271704726021277329516442100106004093536960981012882287200403865543889766189626494452448056376873561156787727212076997805535810334189554017362719204898564910378702449216584802619669461570513325810109304115406602412257662032234095338661122771803934107490708287366282820953265356879878607470223742440692034637921702505409502329980888010507999120150783885377702160901575054291269169823553641931099086034468508722367610687740623267086924084204116325068452292234266010249356321939295230189918836768772464957854723276516250999134997548067236690402936687300193153659310142199106460455603176315486881659698897167954201748769408103970705047205419612901207378787288848686112521475243251903564598978106591264396177935804938055648424623463134826201066239367847935235311305129186335356297844265075183657309141972814090697407143608753867418911679403841082480401653677870354286973716148627940622347218802824088433647606683626193286430338254740119983633641220970317382185956194281453924927850123322733270657513489220486915088663189950748492913440450453901350594822873741334662148718866065916569841738578359926023117164027803217711523185637958547379100168508320861049149542038482480947084878824018774588727300035730807511886066558929114082431619202253460581487682091168724373896219875682796640035499197506108582273377373296223651215447456067862852334378636768417993263006998998457416145754188308333863917199722653434429921128072127049296665006388120719072284240411183478300031182697702891060278742509465360759302134607976256860555908086383775463096288282906465535666032753650497931322819849105906910410481303070784734885375351356587571113383402669553932499548496789876843622343104668652159644784424722890426718136642496047004104620869861492843952889911193167141604172018533464983299235345432429240295577144678084682686565571863968105734999030930425698707603672065800153446510745011404483338493555401641579889613909941695456659112653934380262972819418082933592991290746352068758743322302943131379654701245011766114129549969917071343863048290108158038373778037930093449446421708769089113321164104672656764965001528567361866956525582648975116297795574059466926566753522503527793921269668812169714428593014234768076964462217168424554068805300497765991025795015046363845706312141438903208355834127340005575866752395291267790218670151825101008108020721070494244964194575137845901884151868347931444879001382622649879166682148526337822022213988543268158836584439448340374868651801585945036369112635407151435539079269956621465267194666923881969734199437934785574319123152624493536312399612537333198603129129508881785844737858326795685921366397134229224446025562207355945172040355497125778978118324823078325705509034578911294028832375047680967754273744970478143159794388734882528753415994917002787752193033593488756160895405496456692344729963361533949555630877215029355668758924195838018891756665525649233063709355784399100289963118075926839982569415452074043528229740022593017796689242629953444548458281437144747874428721989502504072279728166433864370134014229098057284602326074772238886069967399395695188497803866714684802655817742178474066092414544218862232437805525108779383343139845007830077287000789375768151903758032625623892938443710214806611687433177623037964498040796648884042390515406393131834073164520858801665907395996744019146874476855850723611686384445372349393521109825351135148165625382811340301609549452851115392647877921636574489137047116338431936108981732720708395129824162925552334798219097690372590478243771847889691874784247905644785010462035809245575782424551880841379325768829374880812755789394483004670560060180611317117760470936302324419789313529905800546681985871804839574546096473351511476704523782007975819586131919213130854176427178565868618059424766778576123391129585414065957405590585414503520186709174565184502378656123580238730293695743589167206548669187492750044097979413369701947130536382567584362162684998023873200917212814181682854213156846265772588935112944138029611939275415070260136719263824611927939369396671413613361023667750899071880356791206572416314893405135427669472864234197638520171769682738261246701729937297839199099843707713125877286633586251989592647920776852603969538080305997155762091034809362386393304839287215691028033353326158146515344460292041714457616708842766402120493950809354299216391513773898580090403019006879885914128886949542031911989831827003341899378971303337365690038468961331949055045642048010390703771011843630129639954180595425845491017851994265189684297995122205910796920027858457579450268329399235388458433651900258449557305001777869322077723771649182250496375947842901188277509917287800340575685611534581518281555192545896967791205027255286693040724760177011872365518564956072030040133929206815745280341254184208269109002401088559006873297113269095664603194098773410260040108260299211236952224573552664218454028270562575282585374341215205034934914337806190797889554666144975097964210270299887802613931358360143123732770333832449464979083959960907932852007463602574978298218765448000891492861615313504598387678965086369509880727319425494272067404008223202526979717919634680992416322927601105295045435284097304955124427879600005242222811801549546112060098591329939881128741485302215380320009954351221400375433030674501283212794940832528652531381001707794868888965104529883152715921901523549029964131926452432726890242185303401418394404992011832176206133823821066301013957612470634323123866084397672626383387077039125834389140580421097044908904604309090161909369867174053252234032345596954791082890115672136152594738065206959618323049753366385240714294181090061567860561299669854146913284191726962017458550772398477630574093378244761968119194971811996418142633000828694495126237760961621534576738769872660780261578469410140382444580016403188662858292156470100246427951038483311000074883461077026653483880489991841778614328544371707386367900012281872308249585419608648501527457344343446191465324926107933832819290125942245860376221080816954218198881372781240147319884829976926345478271920370767096430823985428904166491411788717793108469359042904069165064361084871085665018011158099084419571631244775860322718648100680912972704549320459222733382605718461734407121003149240690258429237770453052224580984957690724271850872353523687534539697750059093058914806207305467154888559007143852679644617268860546861186356744482984869138543089657355738450417783753470991929046937691206211543986476233620721285261308777004896699586094363113129904263167406773956879951580150603503138660556795695063614608988523064387702064960812151431645565067084004571470617890470508497811494293658513917131139238599957488711630743606785967997341319731288149726338543965668381974548541744603898858449854350441769582788897476767491710338634836302526343637221512892878512278522278053633572914192066793438331070483134742460766333141662311287012722561763822762177945998366335565666301420513712231732170890059651504780883084487676379746929380202024814989791214749571373283347911647364031547805011035074781235127340698035044589413318699694826115868207190493560678813509901902208643850935213888941281883497959270224652252314649398764459034615695628419217037269238415865111708125481099410910647172356454751179211301563276283491061125390372374159083265309505235872795295670670500567897191419352073857332705049637529648826835733356796234205634377532007540763812355191670031458591708424612343942334675997264105430982809218018628464826724933192693329726639035735268653638280519666462407537272758222921223368030924277525565561848549047659061301493061142824191945136238340603521965000796357697620279450973961224908741616214714368437864659286687181765808991141600882462628639375950841815589922490264863658359098837831983775338241091470188622921148439059977647999460288475840377193822004056813959308684745705677741773484946754141827349185984721182507599588911331587435176216136099135226396621368091495852046414738934150987853710073667355444752349702032242180818001753806153891446969345569040722675425361527179176048622888377446332643826748796162871412887303731338127721611500966956747783050294234147280450727351907153313611505075712589215915725570268210724414198637953512198519599949965631161422461748886885742687567046472651901598468792517955705792194018568333059318774146493413046300480206387157090855511313222586071523468530373086548753064037979508676196749308901620916069329556052013741355029113951720862186153511462913041558913163268772624273601264800045807104278204549491017268010832774131557235248543939117996015260071999322472769119830589401760965758554385986263387054730759303513920115424915810316455651005376137957982614529008469379059925816139544151945034838154785643289334318758600953586307508341750269608530806379807655051538500840796994320987286708826410096295271894265271468125178164459167180662258838460878890640924991151370725604592086854020610194665073804995504359541966756754644926850495747590601879777083159575799692994541836398022044466692977801958308565598390146306551963683979886905767944642606989496985928490918934232156352204205014646016470355714708196444347718058797342874616518619046826468412032772200836782356421633996149303006730566360918623066586133447970638854481288627168493881972179930992367664595597496231472037019640103194621142925091806436896834604454794487845579141641170042152429401527823088946935183825971910263394621742841894868839313203434629677722299787896507093762347855172140235378753652643351731556762195679560508873487860927374131633896894854918270960231369255878514032525888285327182621296441784571615664551996742049184136362574853761661452038758131056810824374874934512824193774655349678503072533525215369257101215058308784177731456480549301830088419147100579659877912074452693076586314417503714772377631884795851915749534290609713055664026100912042791250111274022681548862009716090542124262173952324798284396219340003856676471967969928363287087962021607338393594622093550027560022283303762184918648738948117620589430375157805531925533904159413394276454518982570955114937240778702665102525649128635048993200746340674888063716581340997647046317281702210973350376997985260536151418468796586826610815542171983447450005923272987675040415244869282094607358363682175140477369489250969449781573134159336222079012971658155895480839667311522069624928319871811972958762583953001408949461010137935743616642050127249695599874431318915408007355927452863927410167280037876793648718699531461638767626570109008546635292283654903348910285801341938238118519405042993946057329245817269185259480849636835152395623854091816768559214481100692537744778754058285631799629661663959952121088145750749150760708111557391218454733764978946356057971974612251175500395166187668598238112157486981751866023806694260137222921423764970252413865442022711472915875164388764724333307139202164190028221894592444625640457695444115872460951466336337043397359611733672659538982257517608774979160677069876238960048247995158720374026614478316713903401100916800123763509897917218580716999960985706300486921218710778246594596847693061494704718196746724174692906635450922617552510640293593843547861957712601107769651514191466711520632766864362984084634435588747182583077097971970672306670023761588090195883642741589100308737051168101674188897944224973839748042488150476525760584719103963300166439003427358295157442797214796977470698348697048700782650346024206231349842148222148027952434421076940485882795873970981187663232563922389122247375753265494040766773188899061320617166974336460389068334788551175402462871288425657503391159149231040223797573677066626196056817432535450847003050686318568162611540646990209312970028299191101380444460922080988432431772002338221241989513313568921494308603707882184594257312594185874244931086422551832735218291575979644284909612310988696456229542661055425525892820733700708431394565294695376122770078448610257502847636889509255871983167697520839733035613121581032513259674919468700649036003967290863787663258837498856334689431383091523778496092840544395918557994473597281884485169342313162592732676625074196740284959216528775861464969088545177648568128753842215161127703125356184450188678601550463116211226163658157487511502112197482086544472471741144597334820320561731219169784231820100949355133997831670051762302891748189818085146197654578788337946197732000317050585234833037216704230956466883041412766623212438886980390930255834070971560166119518472569703476444547229796599396232911860459747047303348172479450837718985097452882902141498095298321610444213045848518320100540875633523443232884833434144357001566479393391352720093160249800761094526667078224430326576896198609280670817341158478180883019129350299739602259744027245583068891857126741723225726380503122742596322949318510416369784440453436336684887254011227791845160585966981620725317974947972379213988617998860637837109077392369446234021099117849959820707260896324804474250122379052691769124905888262521056092737646657231566695538942808310585074712591243425044454148515764877007633471266558976539436711958448634752737533946936778841845508818772817125765651032666671833659670014106328657699316391933436967594585704969781407288788549699828049932422600208799423559632412160874726183223368995034820237373506353203566358507750141808507298974782681479084629181856935242679175311102133979241379531995426935357690763089771818640095827129849568997278761347687744087486267736558634489296014733242237369955340696047843536973993239515630453291201626236396025112664770217298397443762768310812070608574317380529055851048016180027992179648131059719296266725988589381551547146101520777393915493294297611906411721439858628195354493974117099279374584157659320989738585673848780901291470044627004827194735388330283349386702477635263214833842953826071131301361425489107926773308403737966951833123781295019489419842561665252037217596005112463758523019104843528651802516898619873818007636405964490670559639357177547262762387535861611365066202034585461114979387426090618659238331256202997837536795102323705417704175242956096352355667247132758873908815102453158827135524834079325901634274903705403027992026034510797015926325805204688836954398801131475859329061131269557677706039261646766526351414501100158700463323100903918404820373845494841815293097320922642488244959934599034170416108858202260128854912063324386702214005455561110263091361888954166570134868690639009611856040843224828990281652617125681926711695022587337485270633881087345737491033387422941931706967379850059797080170998076188892759250372235148267397438770146879765726750834936902121487413902498126168037264411434108962593455632869158243463788558040204879607081051128159209784952972556119430336889292005451299194546391810212772227977418005888503926916872592468262274047865535596554876863830789559479307988515894860300637490280187287461682863872245234222706559060678541684398261843419070736387871174248605410820605670783221825022663115921835349520285080614041562845102845867646860505056723643942828228827681128450599187160696694491687525304868689008672701252469256721995713830027892368598772296989192871108546902281268090574133587132401220757454924682335271546231561341272766677199248393624829976153522299384059125171079773562482099912324550802342507370610981685854176368552481670215799978706384897912813237239748084484288408488496405330759115773306051105728989146072770698772931562289184604778552516974383343106589573108220969638614540840757610491567867923555924746927490722740055752922534237776060631638222522415013609085849913563052641237082335266166145266123902514050927108771644691098150309440503832425407028153258442877474891955819895193007760247991278171492646709512239915708567212407470152479203696299669083012019911104040690516749996349328213918485601937559662711428134454963642365273887599824831880891315209478654702974650515704041298561458400804651453371547237104967739428781789052335420765379860350637290610695835737748268862160185291093358622819086977726971855301631577888275454397943762610316128876218022768392649379208022391168048351963531477809734039880693150474450141380138504290824536935288607255083381326486477757177592776837271883171077361794321368564220095517746865352611564387800937769673003361212016327298773920516417682659034472052247560773066360939268783129220891482806813085636981859875795290058465601087563541301745801082886825153471268664735024164215816419194256297696596014921614116975558191019336034802538000957081337010854753317969180105011134574286970379194561533357007453146232642197996028693431187200151356820010214371231664622221382207871559462921809543611096311150058249302232450111516441371928059924009245735552678488784795480589601094721629108265299380844463804746825271733867415809774906045362906344532290491778228842405912790294754078764695333523417779189054905021510687453948452216456431197696944356917355790197534846797789681860562651140025764194876785123187583909801849067488378028368370892227818453887639342810072259497975128210841967302949364209258090514149136470590403848183835697627966461621591691120051365863658049167762103023455355271099776433673079426024893158320888148373852234316799212731973141385179620275292303265614199302598255116877053190068440501546117558591188221298115654072312678594626303496566775073237339656557835919823895013323027702937558376311570442330725810119503446895616997427521587412685109854385006762180107581572642143602426973613829116414327624253489616138720187412204800343944172130971510999521293359808214819201808675224684818970632412831779347406545891361713134152239516197223019079183562473720410349901783489431480749275295788080159993376145075751136051048933247125846521725931174183138981200319619265453885725328256353093680577816754102360315061331652052709633184923386293343835232245483014205788097551869148036180400934308313244156496765872263991186475924557118259570239503253406076124553032262354442274762648202483278254983950607352098914834589249441826015079078488127809145653541001852404410226931863780240021072588974054186578730385604167678496526326705116449673265897948160223072401913532807930531335989323472672378165994324094139893761277114555910817539931562208678077731729953758689325319580123912007986153989894693561396182560983165384696550805795427214690202144296358382804822712904690553224010913945405545162529665835834079935645986580411262898807895362626386338617717305548605829532424330230186311039832985171388229152816850149385187214102898017425986477697733627990917181491188383291515111514685030898512900378172110388997290922593630610241594101026458823123863219782469660836510603945569491363299969828019418429248301162439146860082578900171354774870341574337863122633012200881768971253245186325315301278564848736672475458754831643006408071750900506203024138561393817342025074329230944263602912739045742160309873121309832347203154857112032803448031765866422511828893378243150015373555756348327091395332033777514675318708521621602281231588913523800377787305697525989751516443389656735542522073292098655719790023827263233128080471462075331091028575065582378822192278220694723761233599045135410414699337682835901303472146933855062628301433316810217730974116989636421359273521359395422679077215825270797640449636646785854075560765998880567855243335781487098784696097703988060277506983939331635026237421450532421984972272554770223586387210219070943466052953255212626254415644709647775834086519517495826673503035498588654418311491052731412302219949257302318520083916272678354574174500772405509823406534363569423090850168915869641939585862945344494368201677196232885223982789063739593423668957955345572523349539375895210038012136170089534818218877349155045804068433656257621018001945610596695954893081064966172313873833413495728620264438512681241291485656892656040471634075740425050369805478126272478025530976521966421069272540351087104249297235151871273724372947478710434833856188855835734294496860735445252441042280950407309432991042507602615559740580993280942552240355030915784943502035179755941936110512059749354693616345263390425172330636148996722723406426048661065344438928900817580797614204950950323153389069872904390814633272955667767684760594121749541742936271384016338503900988656866173261258599731320006259051071152412184895043063584397204127295169501177542619531033099339992390714440262390298439035013817727552559526903018664735568773595412031576990155459015706475940546501081922739599194856586628681049329374454420001364773643545809813640035749970239963085231676345798558125923802471787259752039671304708079936217543808437805762468332206842127640373815268119071397604963821825824913862789877123167998760745102540717380226552689211337409883073415994258433440685399423148408427042422753000126224374932514698825289762349115120771542246532370273970267507374302509232905032635004659169898713334875525937147113099786624942013076171093018220526117514840896527017098428044656458089130746348645338926765129750390276216663603058031881388983628593925469704989396142840516682272869891605935516740978390489898630192850978193043982440891022924382539685562888849863865334864592054802504542611945808716533927664176131099810868260336199842799924887197369250078412616694714108675235446586993956096079980884710983337932452249709485859294076101083813639794860319200106653086404704034905328161104483370283427961471401806553523236431252788423600206788557700457782170529604990271254478829429937431921546785165573867419518133917947627716274987967854100757174559793524994577054378778553379424498147323769215682650488845090802166038146929948247119403246797779424645491464503480264281222592612690517774346193470969775902292584908647289136052173476964066027736074845138615941961032867647869499481187915985325353328650394673782902767348743073358611337448745834675283236075066198378433670291988503496614971433076703379960968704735648379378294388731091844280085409622509503276181176609377827209808574766700197543350121697373153002082071791782044739623894372447719840943434915326152968101276788604694287554939254214075123687515835179071444897105221714335738248304564803144386614707193706503210960026908863470602283399760808584427457570839850411489425962915070121153860358343625998935436049666436952842420391212660118497969184596218381977055856585138228061323264369413935480678487122692614469583372281651265354880154589238876343303297810581331556437686668691044084044261671983807675833046199700377284839158340434681025345480875029508371338683834395627733396120858327266892499506226044935151074314917498726110461394482308953783650515756228370748636534174907201168233789879057950538567786445981386249291309501934445997461490497433263799557469144641165356040302865015178831713041978446979923931142709993552900555617038193422925989457748443359130972776413780963429768237455244456208923826058717216311822023237868819649858173831935758779954239462012716160024664231610173929471333559099751059305311333456150674609477714729654010064073231370638915874717492641576124409752395071171828622942169967354516062408949262887347354441432919193038812371793788449781041183631796532673950023392832409903066234078787619901491306109619872016523968036138501232115166132945631702040971758379129983305430230699621944041447190605956679527999282846911861991436596278071148697110088260626192015277958513542376756892524110841597174517958828257474861486577250386711546081856245957400121237297084024552648395180712793439731316465352441922275722044845563541409048113515008202408080953116559531351792487421976692236336581638878097683044821643448338155210505366452727669832623071943387736093957176835232344022165662407978420111432397882497414134309415165346753371106283120853412196069528939705436984620752520589355400106170564165327035186189797536490803254502239595886815353820273603652640926033948432825866882241003306080214632556006195902275308762389922832515216370983713912643323363851382787668781199689150434525259435466727563156339433897089869571029685079106712175075281200809307177879012490851244775070007576412277311388732185484070449977752329371479402337546359217145106083852278420012221415597332402423092387724709694384483294308272669705232818445491845630583578236683652169424798994983761294121232433687553120895627085125303685394330810635704858974162928229785851158035291786561963779509478191322013392623755792884879639748784639790258785358303635880988029892020738113855812303042139499299136914269961247091623513676048927711811308689098901700744253761507748932074379590296640329239028230078409018232680444461285555812384126461659774658394823310989087739485571705701402568960469068223327028622056353052979774028938681788177605410424695892816187754648754591757749643885125866404536202053541391423156721717104275681232814145924614508666268775308609017972414671764445315923512293851845658297693713406519845170557931288394124826360589954691365937194775492053810071923019689400544349267928717557183625668504543741312812449244747551475042005096914534969830381019673075727831011232151163826227136434911503770596335725194872537809311141762464209898487055489037521752859505147160240315302510691964047067577601985004622973290363040139349549028677003059774193515717723125472858134540802438072046894658564754313334625401903425973132080012901008750812513087813734206648327431582351487371762392547487448016444592188684989241862808311249419327890481497653203706953649808906019378268710854209050517608416821017460636393785866188091668734868392420006793595782558692703038555595209888225530430399459674336578175177657863252360934938568709129180746493054167395959877456509633356805859824441704424154807503611371217819142161021935210416665855517633549097135878136998107596023885279225173143719580442355151891089174865512023218658293819653019058838040767732621428384675218539038342629467402930488824087955738524755223280545974395531075206699157749470321581193694623994172420996426064984949202194290807359447685836503818604535509634554391245225558756573939371770978427179153885823957252205487009658302021348480256363234753791472654100972720792844487154648989592117478325866743668586211183648278408113405364242312419984540473629979988595410865223015945805705063449040586582830148847307801676247619493735767615200069675618863447068382836629337380914587322714390941452115659185626104712109953409007245755369021069413159235068573818803089235238317523408774311377618747019130960568544049055679520551642936546790949421984589657322126974814747819360093246833080207257828763738794916448639352467983578354280191595887853446842976775021521828324056142984237528509926777726339412390443549195990129152606300074866244660464018533082870417538157143086953722825547745338955998188449978880941471222480287344996712539247440612878035572301339956164059010669914576724139903268992631852273575792853834815502024267044426510280977427208010982319015126744412169914880051991093961398804714305558747518264393384683105704151341711492304678483512296024458165543585678315066163921658248160789935565853280912916868767471255950584841664776438410568494362654665628526403999753142236014407843412093435020190604166136803965914134985131123459149325447427454375064426419436168368908912115749893195135217095352093886336006617365363315098335361515890053733157512778728659681148616422790905776386706726255872921362422480396969665136204205412846043860887388569312500724432194977081319427961777033345964174085177019792313876678216875047899242878379396779324045417931991731352045961587384748527616162367111725175421270354822975755289486225394370023744160223648403704809171530271673802982055291588405871437782625315010404493401775094692887780367531588197952689848279667018904020987278294746695406975357092457354138894062403183039646100386537064259823114577525888390600086739196937431864590305804698430264711631933046892090322698347072373569483925488376585000309542226635959010583366569560088644343131189546963063471603767256809493948565250385810851966602349782886333164177920543029838104108838546678052103472812779574814403445506262629912329930451382359695109425339284862166729055690579652528471752373321683878079785496029626841064906452980042885904511917449136129730923718141050438221381893210142299627543598178576112255274921623455877084077446818301695084947637796972394402808394550552543214826718395737010047053060455632774692273524524400620622269945191673098531981026657950091236772346898147574817974873867399260675442784784869436922729809731756382565251372861462647046105499874041853230883294886196890764963927646848309513105313917344870723522719486342911305684715915205312769642571429720121453965047786014077354830164605975904655955786149975429887038206718743815404666139787230572731351445268297433253331672875348092549462363568940019465347748496313447032928327460185058487399252919793530995801774751754858959817040085955100418792812043856367918143798106527171425549611418384573009455436537016520930316212296138748611616223969911697567371591691029752647968498388495602749217178035685406570520835369917244627738783699840361416876631826788369775447811915433788014194455305881804359917726033156401783624756430523098339178575857081135644964143535246143195177099145825282004762682537563891696574197883589139081108426752369911135468503301758581508720092696853074635934827675067740394658557429157493220256730957969476292832549668909865137334484074541404354954750926982713928446919807434902719366354093713578517926490735200054468694478281769329262020011258600653638615570333493271267088934643096584181722200079426104300041518290704499243085375946968615307207080742916229708050950446180311101205581630199216059114956221314067205223536776949609248734691309449745560820020927985564545978344689151336836174068022848344836666255557590461367493103195630588880166520900322199830471564654472896479328782264989505270626112342883178200714864458254121202587859910493476164078922778304380831300279139128681519894239586558363516730861156524988301469939507650478327829299970769150093196158082884635980040876082634456901062456236629481366410993943251327795743557241928916732048875474072976631191288032791664360142962651242271155410215156418229286250303919077756912451454796116878727889139839662053768136941877557848776814336860874028067923175862957161624626365309618258003758266842604881454654323116555674837903253619735296375313137984782757574187817154838230157682703146727702163678131377248520629062613451622487755235537804901486178424787795246996572235911109392585654110030543638948530256557981283912929259551383440056914359478920713640669467059348593192884878397687637633627703373645382180855737498704639386885822881100883594341059566445337283360139041196057942323332031698880310859604392565889947273986490716707363618891613231413066682273258659043708005301724110969190539447803480807725272881568883773713530386408272705334095404574828369424104475259951000367699192806574147016971632885151120871540236809561557367821759165095214069190048816947748895405906927514886589729168515024240735250216307332229050604779521942670901022010488501928431213966835739622353628754315989340536187561424646075787710726399750162500283864865457277637835301115797025900800564232522035328333156400118022189811282480765167994132767900818645043810555758306003815696706684844163036149419953781093167434992848235590335723263622629229043751578548169381415127955213144776588441039719993026001411250632745821614506976668890009457157491596681207471708249722570642175303576023941331327149130850958032321652714347173451317002023045272185281652302132313359680550674792180203587380141746196293349568641759204890941682215453950764852291874193299145755629826096109150970197708621116768785990495856268438938670897904468451633372785463184794062696383074998595949037397410942116591900031192315522070264841218997304983165522735954312335429203671005160554635623610869187405904717556067781086377957892115284317799295681764787580036870891308494129301805883027961645592041256031043859675685492620073845302771110879417133371670223369272965721830235189387487125603096437052580204757155834490266951046519740302537634709714598133154898118856085256766750085827676548822940650347402447499703758513180287144173912730897699009517184578796330371443543390594345858084823765204379379860892618744221788102177035763899735030833820798834821991033700692596686032206706666207955611612715214316400901102903211188401498632969944880479117085758255891029341996133173923843685279020084477798867355000286851517917870501975642872652057444840975109337688627762215550769611131508401122063525838339738452682261283532650997772637244327648400580956659007025188257937764402956999487769130583393932648933272281753102685911657924066261035063179387971505967633794353388104037967178360588553027817332811253477300398128903000098522604869013966815746069123389818767437680264213592383285944481416701309903424630483475312174791823791279922744436419999884938912346174190071120746427699556024701080921360475999322965983940522604245171975240035467319458951941971856579989206198387852377828743812214068690473284660459653766513989734507306710305161102647152637521203294952594603349177964371578307243765904930235229737276598824081439181913041494112033305222265012257740520292249057669660534173732549596828847624296246934912487981420414355593078048555116268850591368912635875612544582333312362902391973065597489740891335595951062668824943911460860852829460041206520985532592035992440241132782895575683906394813673134205975284588749517853046776860035560422574865039718457699475185874707833889655281088984497056246973762582850587001461137708118377851746093367412128884240076515650988397548425120960364527503510241442785178569836175828681805978909408026198768333791591580121466840342108839314260452098442902500503996530426134254869136641045132573234839489689325775454809804881766381900626927447982090877875605696451261333735363593442085758680570099187488266550849492601575747562736175192917280805175243774123938495614765538663475432908234050305275021153039161425991590228026825810513965386124301124614401949411864046428809894339528514972755756620997936898819227489236813428206765496311929736626331667832657628501037385713537422911207392718083659356959162664462294156673885035221254580414247155036912327827833245809550768796222816791886195073735932177936951491452279402544210611652601737369322420001918606082761412448711046920811989505525987586009614572007574478346577692849147729473841329648352604233132553449512840174080697899531464750662463910481730569019505134018532957151084992048677593529048625663570290604742317961720581791958306426723638290992125516978789623429076688834502778470639911087386280856405225746153473950219414327000092240292172261389372377050043952846607285629679342078314194063970559795920100946787116855080096307280808422496123848584457142624680874748346127628715496511370849028420774494722294268210492986632361272925735901593410374380060800245471409457835895394848823882671944630378091067406607666121852369268478700939686807296675941021876067923926995892958153654652015956183253142852686310133394650404523200696275379666962022230493812541089059351640596230422301667501082763945341675570769480740590915156021318061508262699306845963316511573742449418855817336712081079577307242843174223592384604265181558818206896705132456085330587161671569538645910643971392575590142499920811030337806487733302527010993824072934819005784207246533977408531814044813451461295480031315324570603917784487219475233957406462659969802236155541907030101575842519895266483276095699293326204330525452626594861656821267883642224814150494339523651419965969236403275349028221922025470238969219872347323379813440781579205136750225421890373797724197532872040504624517794611677593605422995872162510678102393957046923080784729983116740831936098706318641093424312072008003647266499558306490317128437705917331912712821957267403048793685110551587392453796619344927637010632354422097327837308353463177314315479331573074385508339679685079669678126091975299950534917277436876504265375415961541066050812098441483667165967782725415672229585228126091908497947874659808896006814887501141565871086626428208302329575776979169052094691243018776874511101564926386309252710522743093260884604878721323226544557811921407587254103124867143647643408060274988422991369048694023161561759158721662805430654652120575727860137538173035800099976595175863870704730925033867173277716707270146461930297911107665913955215451769398221713883534901184452000316594190431618461482576967022720997300457682088191620565525904618783501141073248336354997121768526055621754024921113391103826814757764691465947506663800965226956266766198971014811739062209922734612315409346231653120878385783499598005460984485096275267842795058838602852697438986014141153564138040026055902813735079703533761513420732599903449285376220806674432068386436314677245551181629373079795019069842115720447665611851254753149565456769397009262142582912764411646091049415212895658687449431043104805305955975046178791446614240882639185225831674106556598491110789114126264644238272266777155061102248366531118301578501862596075314219343343439995965842697510970730797509759394424620528085348347299074237623912457956807943584932801730931265008139225064059040641003619381669531273334497378456157977106747033486152744426990099228067846749675116914296154740137827278913746468082714237749271644093197547556364182431042658407887286969313634605249880004995758233212438097149130892746890266873593621072158869676515699990235705438808756125433310875667979834327529784022033834810776749624067998461037307602642875155090386200188552116160747389954811288263874427441180080809928514306515741762688435449590919612195365251388115996180249320428083796918280067657726557055605938637068123425314711447836840213051824687392274756204025596703052266963881124734762025482684521141697326816577835408472864823519867587419925344411541473140603460920400072065262819714823230581340061193123776094535178285698964214157465090250464364568840520036478957516886815745215440793577809464303510724724637831989496773539710707485421888496452811831365643490984992912055694901132474973063660208987419141722507403441467109150194646456081303934936368568261880684187504742285283013215355127228262255631777545098914256589554539744363310749384535739207570412725192587700381141909348616660468842084696879699178154553493282909745805065385782562701628513133176635985837699486061705185021750154743313371712554446423669033985813120241859991429097076649693604074178420329823338077523221811419434489420672071562531793218887468430395539322625610311615983500718735575287916259689601097910166455808516220489238189387292933245226687426419752927732090603334815652922744817905487803010197941025912407163589979859164613182168449180000647915394854729763642548932688804834273022950939998847509124675700270728123994606188181793775920171658108807896108881744358092129559722800344006822499837390368591029938060875137679799170979926778448887109623281707955881763138470792958070337037965137949643262606073305356931589618766597855638489347584914832161598070667778832696923108940582102919251034315027306481654845478711308974188163581071962330129847742990843745170954794400106303658020998182234006549105811389359903079128763171117239604442943625211276312685595903060721148334054927684959053530736201622540661743429907781629006439093649060589049049290121722518723192060832755504537934548005178881621865394651565389410176876580711814664571940776757250114374459365276614653887123497269145615140871067974760017871094329499549323972479365457501982937604186781137342169441716615729458654768194533367849343551037663797088434653097384587652173303719850417807115762568954866339372276711136928809349211800838321249133024502052991533869211638746281546859551535048266282988150625339525888135518056004484192223406576646727994666333851769353727812306248953125261258739881097935216818478772811950900512335622312379021347478033394585891135121943819405626640595448545914858272437667944301201724637351867733667703878338994986388135720141004750729380668165426600155909673111648563459582150022862900320048148537394420470891027048658621589725652117435095988326731518026891612720891683615864129716928474261222076277215293575342505768104932511181291298438305424665458989698788654333708050437455792314082371770430665965395483647246870545673735529756171110132033483889156780543640016940274825716003153136010634732394969912237532839144822392339053931349775649933737304975265438307414958409369632177842894160472644903373660968425473813963915322520671359055939405172133053787835189533709398393365415969551825005558179159874134261053588488696117669420821528886925984635554952365629504313892594058129570512227454731773315821749320457991871792991456809769968862960765740867482181724954739755424196370196781689164708478624616927000485250128411102751433067177646143329436716313551930407722854249708272162541490644084934507919639247100714527522766042535693506059228555595165922931210197122293430033183259721082004547128864120646061730314424118577606924653540564861265856364029306436210683873723998159210763597735567035560547397481070459033834944218573416580299924499807369845378004346177978354328135167770696602874975885789933253207267669379865979661608313610402084703288721807998396312053838913590056248909838951812573476523723044302719844394692176241385513142247647946317817498603179841097135965475010896606354135919089476214831085594895658960056476494846171102639850073082500930368020932508343060818301316735764920076564925410230676318039385424467381641556459952222224803051212513412290430698222561324942646202409790701112988378350122964545396868484062685054708317487973317632309641170188510946527712017189088842597103138540784485139545306976020080057448116183220712212142822036763997357800638811743918695359954939577648867184796033028770515472342714819217530381345945922414318081378349246153818612844882753439933137176384925468576703816008708308843874074563795269771494413573102326382212045346833852727732558982290321387721767260626409575027795849448121195327281824889873384203846660305611373208610565337002822869817440616873379155689910143815203334167594877812337137974349159573267134102864967697950913718797841099361494388237293963051736841283516866475867277355427563601739470766565293792668900632671862224910494056521111149959938795571119283676351063903770814691949582622139740610023364975054633177640925933273708849826006519407624217239394285677048718778179966949452857802364166640209490666939564731392056006481960226958470630399976148529599899361361886700446410620398138106345773086524909529332483331870190571725346322767008438026680454253713738446592400803932236570275692793791089999196498974646891272261546103638145567417191973941490088795270739030706826217328280306725073410863533648083006171806078073114750158214442869019820148992462966913986120620447219025466794251850455052123725823054681491624889212884076046387353451035876333425043756248341700005332431991736072213879676139478007839330416255006661638006181717123409036819047239903839828835061011787771163276147377017024479752089898592809466590391457994859087146164474754994017144751307328397961491416277832750104577945772088283797188476897750467688378246000601157570187836046938242317157161536860469624833896226528304518939787368915016915926955669351584912366280657205737359704364911725219394088227735999281727864328811167800094784852859699907719701788539631660336053502690249623779411379721566267500401299487839382981217298119266520323844492772108640936626113931623525637256336612654241389157897528693927411726608361459532909337768207522124636616820676324846591276793093584601174014340568337483319693875761561957988043882892662044752253697388324126790927286307798460105236188257598908481712182534161887261792871453942260673530159478966403789588245347893602273781376263070926072599493038935839521501295232961042243970344025416224090598298452681399791297503881860672471031931047462236466602676858984689067476024653852206083434574063448431028337699382042300441541968123212091208829896650657001659349446305203824814254549780061076256205355760480180612892816218338069134480575316463033916342423337777841201147109153512097281563054623615029649208123562237300789876571048908921520530776044916939995586412237175134010363179464839490795441121924787950213824413182424386854439550090962279026972899088414933468730195276310061679985496689374933360861307530959366040000638552081223147034902772386926486827287298435030390725620953455914889394762690981400879671954864834228613348250567045382574116419946159325860600362331995921300922492924449036838702913245041187018223849878829069640761046440547586714505021423760497710385018780453270828074287891482827873906233770829064160855758151866312487208837396978499767808729490418293620528285794710593732221850566736781991653839679005805220215692155361386537787576832438297187749309285427048099226275468138761479923356933612884315445660175046801827297249555299632987489393980471432726696480814931675404014224226998745344979494115326975240777871357788487421714585081425886934853208572616372245578392592803963434450160656141900389532088098856799796200090832533640796516511528885366633517251520767588093540399861043391268710856842415860849835345235119121209284132834686729129571688195163534701008542988638408804441283972918914036070166919514156423482921112971964420953087694667157042917181019777296482883086896054115508950393977489089391205831497748920666385484750134061509408854813146368974860419252627831186537868796347300598416196458410319993415191361319311319555524671760224754882300780906561896107561697583652152639628452670773427170489436229130323740995588141700178573656448917122965809827623554231050164716348164593924207412324014459991288928519830632457142062995507331237174994116954843011732175130475889936114023429952906455100818258359204463198988428604238063032153063057791780398983052385753681016310233744993644377441595752892778834176605025505198433401937606200455208195971195745864640525811978281534766855426691785249763733193268666315192885357635732898141053395877837128602365147042651367404166239239065125190273732294095514402814046654697314735102345998922451481773386343649698393804500420828786871445776088446400926788113176064930542279177101277639462060618135054856005093539335423529892898030846297633791910380042548392120932695884907587726763144644887743063811159650824247929614224316280716325888622786207349521253133036440173865305231715083652096660046018055196052090546167933626194727392508599611013839650109126696823151833893350156208000855301977074279805276264911200796549399909899698979199938522114561458930791548897031490337372618886415710310457071555177417078960402511684220111488775252971979842850570570085747423220014147469412546579215913990910407796152756609414191349143416176013103543774577655253150988347575710509739482770868712399858059109039999772252402705200279191220776345655025137120076806341458569419913722917741143524658620673252231033376076727601189439785023554357918222536471751592931231415117355413306207065035283856356434967016907132251408982303312142603279860402681851789317003138150259268977164332191004380967493143387813615618048255194150757230529442616790332555406537505500867545037650538372741336090403722511721348487672723800625126289325052746117934132860666703602852334377337153813956073439941025207527139124277938890865261316136703906750618666817537578199320111880558353484479900371404437124959108429459510342838604592522398571755375539005787803890765503558601957037173294685503222972645804663390622805451022265119746306239352726093465965432883189160737740772307596559410761128354548184431738235176166069195953655565484272278605311605734899523572091974166122057153663878331487871714279898021643907865518138781366237130776633490176319322429858793740256191155050992453850313755598952271754543909949034161718773512259945279082800036096568058527323460365091737442987049781277117557101613667959850914411861641480091792025978474472542753627896206978987600799214358058864391381857312331585689092542318425302466111941001694384108718728794286996283601047364373865761752694636857652858049359563247710900045771380519022473356031104163830144497355201524558994512296663808504365987778324689861677659258583680529376411694448804864962618846881927227578827648320816075697537833792055925333238573305304156715154759609363963456038480661673808227331653075937745060488532270297788856148281168820514190665690834748331919656884157327039460499186477193419694840724823537611217470038350434652737391605400220867638830790175759915739869170467300354419951888713530537345017863707076364385604948546010003086425998077923862498888707730992205922735240143687470510469555782998737680356862702003156067959796302696096129926884669555130744722695341584161080558211384440359453756559497813316851088767890251272858534725647822963210213973541893249733548882803990018178835166696090401681109473862737822403801969960868608701031208299197216738739113101345280630463519353653415996325454225693157322450297996143304388806494768164869104423872298127283561811997429114364624686314701886466518650021520244934511051354940642297031838416759442338767238369270869326409927225550029264448962228698203133319215217792991108168079908404251809439914395521954426024931911087731998142742215694503635433771325223201680401649305030261822617815621471860591704394806025067557406095745092047048682906694670743088874837489960362957532328207341534775410189409728283005620594884517285538051548000811741874682319754997732055556923917353143265934609147304082243080459164800488410789438442176207948142882451921064887104508629697528793066655659582198223224824914264525300681586203455248299796500985395523423895347492090506067309123780215368119859326685255030118744124143286382617007816787639418398330864690694788213705808396506336284853502612760463998180470962473746410431784338709671716437991312229134004057276959464692889596900821610538115852299642799044486314342825495959809717632607943424085627299852728301752795590276343160585871980085696066112712880725232538605940818304217793420976140644145622394239485379140964449672938405471577280421804167850664053389142162791973500429909336084422854678194003238091081381404069863568051559929683106645513616957981302925896647508962822727374353626568356313360183888335829651166364201098307460163168019937199191396684363015049943272371708015425073563994765762013979130970062522754299493817264919929030114715645496521839482635611618500475099196640435914176928458122883428064221344264941040236331091576710877943385882764191253288910330267038528172167496548099483220248414378669415005371067477072727713194638910032016502586408658465832772584659404083664910793582318179065882183094565807989188877120781792876638656714588116224020458596760178043421342109248933063788735969848733720980174557412302819200381240543311885116859997422641302614620567470800341104276127594503422724383786099565910652764311509862005516162926726457524203412318669642478534750947798303792236396554234764251012998902529185315441445766396997376957338711687604264807592498723606198642378067977969289741077138621748444534631021589451885259273297583489666129955367404919679326178411567456854717333674929641075541158161001195631942112705533670836349125466988809251878048243017470263835314064400720960222897178043071128007663793780941807419179298065016754102168990124798409344693122462144436979029044495774695401341701052092862883954194094455454239531375567987029302440881466979599664708996581619385155390643364427589510510366763999008777369172186182320782024584712424825960833134915693183872791965102588350149887982336353839895502009530856653099428594558859890513350211437904221746283829233678646676929937073994961764344461002901728975936150328584494530161419267800545076740007851271075239927074799603734466601926142637933372305906657615591921644116521779639917358988277352719175212609931037918330591410394108693108379711831051274343840401284310060138673849648186279178473293764278235872534279561771103675486087333330217841184682261943434588222968630800572937632267791772344841740300432052726585100401473044363012952540398708893487475554481369835963624844188417903158790629350290272423985133355348375926768266826638014002880274601493274654977748098899301321708877083172115240944470707553513685042507348864197888430744167796806298338393855131986299131610821612315316551506590954407947346441207856202590648770674231798262807086664184617990180370226370719538781018545932105767635006691912271820818590408169398965919588868681510553178324227178469358449175291171635165824387056091730253019594615647688279450906199392176777484063187657964314714968131879330037557037405032702344347541836223875734019459063633069238483807603864016417697652792008041067060491092150060297089341748758711091107832027042783390013062874735280580386505026785256000514750045891578073225136088830759299279110806960854493143320822815031438523229946135891300724097798000130019561913163447808305712731528752929411705033211188268660712041350535985945079128272177120852012591482263878253675570148726158134567200001937368947044152876308297074578325941066541492603525740909896198741872496974330232611627068730761319710577292336512197335624312905569272591377196783153852726981622614997535584233693567476281115536262908778242061825664096928308919131427418038688085296657179209198284816901655118898526598492990842822651151819856532703575158129809577777840682799352516168933212048441133220014111480120678326811000574805551479867084490566427829790839868206100594585348149985809416863993126074681701027966690876585982404289810003035914365973103328725231135249559753479897158365367118923100924389176437229320867204302980483479478095266684493630219938891319432166058313682673429193105028104533131335996636042527821056080162344091627240287401694041794095927845624472995128391609672029208777410122691098505514193251040256199501614561380957462661988166475352555294683375010023021373574448445151198527766356675444350188168078921829653311784292631293883767142119838360126023228031160871289006830816494156878483933150610416902855803207855370712441123451760029870360922353377377894916692826597646211644508921055781396074163573201260362714017761518022771440385929509657891398452023238779026206079355518226661765191074466003152905320545514509220898403645731238037554359326351882827112257233675144302131843996515043828228133689718074466884567018371576951890533563544044871316384306796272729694932598624157928925427079308708210147531675991117790740484060356211721925382887275845073419284307692960212575726996295241091829476393132347613542454165950534548968458935036762511848527922470390452682743103670306054715163104703053789598530941600724069858827596892683209027892385382145587126196789698384923220081889589508292927157784160534759755645430680339896621788619726438965440574993843683903142989709337639415437488052038812269652126767794102142309253726140719885604710687094549634566235281308021307817640703427439808652785136610765464481845563637276879534314170074552383285507888404833255097567158575233027767643119896885443786590311903005976177872785962345022586157153270737880715939630568255160324527868448232301742757388922645969427791392649113027509158792747284047062649535366731605302567195893688944436724054934424737119191246825391138785140617608954028976009968085464441921085528302291829153730957337652577842693173243061579656728944221782202027228623906268335713608290749601624813837604991632718134497868057707661444140908029479691861584234319370400472395397258105993333743714901024981846947578525749188945395484366665129216988057283105111312645856079398384764403157341326803683804487345595579199903925325983794725161611986467266026962913613454538396595262794644994747760981200362995637330112399441165080976687060279006093157690843034282439285519272747987009710442938990690857797663158960076031969805774781872939513436820609185483983278808585929355806129494886293538237377849567099861067773623775504317487968468409287507609824931288872100114698542754858269106323902731691672808037594528881294181169799593635617283525075529991690914843371759389696997312833839746618852185419127818286995138609198353256638134996872460109532505291489462474163854303241220400929772007371091275629524481577828934877408410037214360110895885035083722420550849368429336297589160233000691523036276017524367150801232628475410185841541256914392600602334183020449203611634520537789495655379324659108921206814540140604132519024634201152411510523909055076123762467275081289443406555700441069018479425830923983445752989712732378073293656534670228460072918940681953587371463554573410472549352419037805856482374858875965596689172619847174551718044693956356795523674161368261895439382919774145520320303972566147342809157372349348309098658026986767654760692611703641245142650963783661142447624284582241653320406019056027638842261827917631765050024401049067860426779614777819803756145124164168197529990731644795285009223003740948911869784100818752338271488980304227900820617123467602683370259136633755636415766784602060804058161737891481406693184386005909028649714921900906270427995337096424059725035431846453611380956565588127544738072912090623115891837655849286756391301099397052445891434668077210205165136238492988205944259947753086231480779501135224341334788244096352437559895237617449970573067443621123884565000507158195410610356812955001226065754051350851424510343762544385162889719998186485677465495403017450657761839875333796177797816370342294622445109089411337536727391572794307500748588280149312135575250424134231855192587641172233989169109511988965155164218199172907493837216019917483907435346439136730562222838790524696156807795453389271428128866338418979553429206292888622471840319579469481787564019193893273524755560748437899230445100269577364973708794301673332707093332957845515210053088532880267896099412842581078909880824206335129019193266417977344954596593915637968856851514635161216575323293680032201644055863882127943620403629334385866361597386477529190354828088688448882994007519233507111806836156460272168847580943570230340722874910678099301240492273474317129476513274576647753406766566555103511083836065785222762793634411223971692808941790885711130452924018110951755339417866812285818614899227341965227521188020169616069583781629994191181623495870715723616057972717347501185111822569987959418725749836492798122165691924673695271941656229438403223753563582033905334295689788302574696681640909130290056861474522777453830258712435759854500917624159470194536738344479474352632409746194036663754734132169449937364771317067283924058834559551343343604247623676986976653990218323491294733780212562272144721155187369600367565109200493750754435451100240012001415133635365787014111020606723890883839376710201233062356350335925164781970603682469383013501081493612570086968763544140015785070298576658250982985591078040911497516481214966104558530140577063917943947036673419714469872849019103188754681730348551261499604284139169346186825791134265778042992039101759977194025222517338591418797674402731071236899166176491503837215076608548911143447849622794274844357288377006323798693542823442549100455285074725520741271888451029892492301309519744446494469040156404680895290183587022104377623114231856378133022718187233381025350279513087694497601898663079113085827041729583956657417854530511044873576074991480360642727446938267914706087423048866668891155431590726721231341232502849260812592065990212054693560613323809381716375770393574022090539628906661195782999254694346828167669940408323498329326020738882929566921218702842646438872063565088218012884754042294102731817883702396204699749782456749507732574223409207134162724717786001102936551626194357579604460910319955947963603746939334535210508179809954772789173158095881942898701702408649182648433507560663960029311371572815505685772720844088622514001398210042740573863286677673970895545366143252988026448834803282111511052750042496905414624235848938242003001132060339363257093174675187658454331096519972942764842426363422973149437770375174988667938979093858252329128612251357563055963218198860425693149120625933670074787837731199370461194077446476329974308565508059406597855724582534480341327721683268048081101765551188173444406992437479366144080765488701099771731711092957307121154661452974280856888478201913447430327912272241670447534224224014106489897752969933135423395407059803290377926975552586683696388850000708895147924486301125755853544211235851424479736781362612045170279162246136089360969419111050167779106962331374941038800042391500016813526383357805651319369780706197570571574768232532018026791342542659893522199598733624175695483568940577106620118679781593428890376819504035144543209385423885401791103705788965212584308862053098634678748677646881081931837316932984132922353908514506151134701350821142515516747694865607489254022591116306314419481053121688745886125548619167999521132824391811046924748670156111365396082252532818283665685692274226540948651309628686378826518193302258057846091697145658584968568809284992778428547571855557610395456055818382120455070950561658592898698268849611278930478527661174896419467647363661292901861197609324888131248000253147687981376013358629061294796351211696715024284084110207372102887877498180336132343498851624200369545525083905247366340912647494820527643935251255396976799033541795425063054904605179703229716386715962007401764535824970945488420869281063030811392115406008075279263937162440334987099070240113646405881517486698957120686915040671530129921402453521362067079415705261023128791466739607165768025833024825660987525663609079864369822169469102950665322655634646330922000479358492621039013268841479833760079192796745946356678462532665738818685478824826206730903135076109344125858471456335029136613027390688687908294564378497599925755994245195248132757050983165552367133578129329903441912508810293500529779590227127199403997967113339536429712844441841886866207073551555529554780687685247348754677146635590528227104204488623734581468794114436796711021472426097907622529826179840268483451730569451073631778932045778297373712669872560537347285515860755498560719526467958131242529851027371194177932659210696507756294551988872678929178850136842617859623025476016335372149751116094607964370501276987614539576114969051667313245623565409987454467882112428768523357805645198520472202141446029075736391184447240850422219123071878878342109285328362515348420166147392195744723673737176092927455216095301808269382437219419717303741072622979767229314778208885777858826035176392508490010863005208166539840335809633940888322862617938875940798230934492162092422075418141956856725260754679672494720553550483345362282878782379713205731037279109100798460247644820415931155479107138214960657004487091752654579311162851374005117388005145016207311387337494546950328258292826303374568611538874955886500899594958079343718770106150199680885963108511748281328198396837491937494007951201743163819781693577934941473017238880856992908630131769980447140362206621705553256933802684761690805651469702113607351081170039599526804867578793075074486688023178780331562970486471359477652906532024058653588584261910476333143561360544698596475168481202400713451089179125093030430369014987237039672974604396304854553118388215823878557073899849204898648199406204146480570566516232776676672125820010699768011324461310402911585766253276484928151063547337054349377790410319086011730889420877674903708102518666259936051774140010753996353020769413662834288097063715939294200765210192148434686050140806203975953803116269645236932040730071572121835360248226092103938130773485237040180143119380091009716174542090487709502415096225250553998992571972411939516886678678445079899551770273490590978641098544949672005530843837116849310329237937575120791854132391198886351596627228217074190444129148480149585998267180510249602170132593428723659525085177354748905156103787656412061916589569869080727342435387647344121579710239483660417501802911392563187524693918929258078919943610964223815563976875426128836702584433858859672366076624064246812228265872071227637532269092016440195687679982041825887209414783158899206428218317461610786255433016499076998927911230456483591054077416434252325849365770177944443819182027792834900916033727838263308945278287522416443366750704314217812509767110301251082373874875190236387842035797465455051434377926269004065571200254990336532778224150502312963897648188551572335696403362179304964455317138313733740033260210159959752456297757322129215203720324181869285406697930995364469069556592536679473174516589521288115704032010988737447329945499353265297906653076711070582851803499865660385452323898620674341667956077361381510582757654850270903602809732276755924183330318810145823425895445512383928070560006848737229104859999224653699349424038889318952105819172344631062789331915279727683913956947234577243572774160768904282691458000473936780352138847398742558869751835703854436499850350273587080951252659803534250188082080444560220457604568746011000274305852274459948358282355361147771663549024387863767046470190908283382647747804547422596298406839138038611832314622791185234079318477720888745056853763587843205449900168956961812823473012035409356014953856594233863338781442700696016085410541179053606322822037259560345081366668470731438652547063031106146993131795007556958693225655613109306983543177586543849510125303968144666563681151755576678768103444935846300199990083314249381646277999479809571925574796565893210222822642418359543467238680198068147882600824383368867004239076525910806830250946524076648234509362611495791375064447439817614344063044659180835736059065133779727244110557704495905162636661038209970312485414648885358458991955289545842766046293988533755498261343349594548388723756398910177643247953374407276842748610620241644364254064051275443628109686225631839222921514822702319237254084428413182283796841281496889088112620109887605426773022663840830368442217541422379674784215420517147696113916524880944552412025022032909924853595469175117058698558464383180973544219429996244540020780089850755949674447870053734892096521925324551614673752704259345244606811761665740444130220946736836859119082631153835504918287214965488988588608856273180873536149123243152471152917601070240705088005895722863250580009070488994499925543042058396136058505282349072229316130371466843090382467998730633447411860733072629682040183165831007174156400016222109226350571368853802989422259948005283822380645325069922253225520008018601067646119176826644114129760204145942661289656142333621073511795021929818859648087726521660958781943406561397267676848653323162247352190200370984419219173264121806446572319112978582303664726006043302502672418128809479839357744577707296517927346344746885280335416193339646263530792687527258412572390611162206185117896698245530345029792960476243603931091984047354144912136672080077246392553944679631213148095342855029252748500172479231251223786109838674222919238158770290029987222274442596169389535499097543081006069988445654061440323876297019182523236893999993684861538981828033274256125065416222394901987416973690690349443063412639656368820040668984295176025393246207184557709904148143472035623563886479557397438869720356487552715704074344529638152365894892060520921233438238473097368332795039699575085074936412672025832507825093540015486374916755813432589834306219967586029691443966057202845062638066296844562297647681597477683829275704634637889320575347809649093384808036158072227177772304344276501374763688049780831827905934650986681823144038029771776500835165869927265820805877290325138994141418184364521721011146637296416929080542157645614176712937734040288127013007988945563407369732924549325851656466984275796422780707974105628420002367979534529112191907460380057309856023073241271660561088906671721905715083008725204003960007659583340985832525287543137112824388688617977978056926624893553794229182830864202735875665692260007804375042367496579229812634005207522331799676764022926210867816370977775704831386640323909195171523139226264411583460744830085617974170215411506571969850991752594157248770124468344944371085008137210274704040744763266424130666790983775238983953781304379478153182099200581949813581295869327515733064002554541585900778937672243965792447785126489643290429473436575208042187769334772248669172216358761775521102070081851349679296193093219204630420826885207303734843381589059297921403751476290919724385692959964467533232591540435699581124731150045511382958963777779373565981791145703942133068715987271836942409348690713867396168864424453022468812705460109033906757065922122743537410557227587750747003068470561368685227734842108271197556441372994628009310348248767058457134069087706881150780594964674536969215566793006214847994595053756076538072007213688253765675109236232651448138116063025556140199813706193486006636715562060293338071252189779564905140237900880054410031917506039538176686146174391619738933676670424693435927143037380222518504263356874417263396598065500053614518606742149339046641243733697364423768366531400548373394741870327681255561405976695087573418089444017743458308694818488178206353492547768963053981297218531189956019180842785584098179513011107424665610140290164299185426102351720140977127187322384579413311897879760128750992933199147283855626345775229039684564954796377161945165415875173841538542584366136851109016353613264379634785348478700831813905361690839471467632088336229239989600629312227407577895228047611617300128429646265712945667658386878619537082152533755440677831607145929778998781078225648091744723710528261465610972628588413368347402037442058425819352388190329432998526186756565583300989038148267788202914876153502076291099488084942163434696101595447104712610532528179739658002732714786574170244435664677597948283504827555680551337406675703744122042036890865111343441009823443427550635476899178123316304721504158106834356747087608021465064614801488808094724358790269450124162243087434543767461346926810744533387132425975684552386877862590203222346087197262327104369642282467193980889498674633626964229175136675714807752904120155033769427360685480912121771361670371444132062195240943050298671818172566132694537740577732529711922102368202638490407784902685937655632813392142555336345691233828342109954059481102175695615036183360043999876353560372833777244344805563283816724404192738442149332867844021475850733995861424889708462891203615394947297942512826678599752860429633547504435964363886271671599587373198632085649920483820235861950848385697111797520816337106519614472433684289949635431799685381174866293542029533321808612003488226379185127173535090584111213707756098762430137702851308447817562344686535560994675888644167929721548634918238721587839303816204127752113563623781085294308536396878180715686341510029565382024930501260533743333049419998618158733768866195326147742774360003593867254822953666634454498843233891345149823975957463491063055581929585449017961451544417271899323206400433062572514379291958940795463968720233145351126163831374904823142749162268006824641675749059656158289586010366084728522276134385994469775322381013804010356700487163034523151577442648689148738823789544479431157351546173920390877915603119670301010327412763463870089381435928319643128871414073988683825439889051013543530748699318643199458392682715639104944153320012864367661072158554667019252626460985488606766808767718816883281962409201739220275525760745052580554075549896639432634428248050748150045448673580863814598902208223663292348821200699878594835432371728479113636474500369825505421535613284685619256478232635694108874740858428078898033688928835932667745770844625148018131987024387314263209700353351003920708120086335706510437923420908563806701703989376297235688353253031464341105448019176348116423741385082708399153975421559925907488436547451509394668878727939085324633797977350143831927537402202177884638230500545155182872043733543483958215001864986546730796544635576134279081896527343700803276380055962063178082650674607895063629814864132559360228935586579313350574270977996811554891106096754248660176048380797593725200208994132435528996166646544315888438672535462681520185167164591345876396752338291923381664620509522141749444111686494241809527740544979052657771625230141122392772239287878295502296703457992024697555001155592054027502221903455492561873478475550967078683809037890567714344394737057064067776268362520606317207877922772853705309337234245018340183869729320079322326689160888295239871186198274266293113190462447242487987891656279276612999480458034274055545043861120186785990268860766994189255703954299552656050473091516180299482477770601515688592359203061302699836698685333748905823256856505793826314284808181569113971425681774290867101015701408705214150496641331599936393289150866749113572058668595279998424554829000311681326064326937052971791105871000901358059510607153515787106017045137159245874691387475049514428480381856735968639695085479090015366662123223756229757338242913331915890450771391744676561575867442994743513378137685247398931871954181585878632974888043500969963070782139563164081848775218175517918019989189962405090820550434327056238192699635089357599952322468808558623339179946134485178207786047407323201143843477514130817914236381057447330711926985830214368744354531975769847120978913576419987293302880614921784056205586016013960642941059785416976896465158972123173365035810913210366876594902282733611417830503730186562411972553078606021441587603188343668396776628252772679749087181840267908869675920918523768979945918053698188039305273977520772712454955953081346635598348327998362294626580452439857761636254625877050482731142683824699822104479721769652994966107415930788399181920148683273909001382089123595642458488598682644371476448725313318630910905009390847829570178327894770934656007896289118586952878934546818106012223335715608293207587012326798149737777783515259394240141409593954032481629503799342477637582959839969204747433585283021214287601638883527491922536848295361974581452538250302250434152542935474889191593478472160360627606281898742579449384231003598357984674905075531992677296443729022716203607764579855943579776537164556091444614244662916628224819010052546623525272767376968270052267276679192777314178360288193797121400906874913315695165952251469034719799619876971856732912900670880890014579837418370727506917819233171708774727832102351732605000797171982871858969891054525361071916853186749119921814848343834622682159948711126971062807162085899539932745867895045014889456736412720311195514053856342458154101789970992417618366523372297792025449726461284283987654768491715866504206678438215989031865753599000134591251946835803702546144384311894477455198108039679307342766333144875713991363305596939555078409110882275254227780957530496521823648709231923905465599774471362169396330016123904767976443209515999133590098587937408134279802925712484531932247559124727706932033543819234444582376197907160171009213890107254619141999373964163417995747542888949710923329541828661398506881435956786596331700409398114946726742044411221498305454983911705045601997245887971463312736105219915865511084498567302589795388908511087824173405651552429986317068169029356571276287673806342276447536985597838667544012693429500399552059350177933098065513909115201154632591800474216758817171192989698732980092430340218267913508854217178917110764331838689599165150549830449021994304681295767683261733421042336284098163897679268544445519833977612936278943646985620415113472440541020280795659475802828509995443538517673836569118704791411552585893772323018680853537191620703210361485403572842419701438456321214026019074230377650328223376761885650137850239313713681886488474051455756613338858908832105508194081828007803223804588703159551645831615243612269718179653632984891214926078522225684513510822491377084341698105150072202436193073327728750614724990188678978693480709648710557391521712556131407458186837043409316013197169681888872653985552245286577106226897295056032728929223795352253675710187879597454230608177596069035625202286684394204381005938788119131504432429081171086492218620162052706968923638140805941424332726859210503041063538758164422587893486666599352413342907194024996604435264889219477009422667931474374179793593056068395195345610371538999991635410949287729526899536349653769309078402791580061595482766748550743574338825043201155544993779712462301722266906764843347206122743451112700227832335463753989087389969613137674441382646230376333805409441535572512517129938049309372728138110139000924702508921116528721149719265964906575489771355368036668385462632408889609095163941475776857684552733083973864862140033277677094018642834512485344869972877919174923989744228632761520194163169431694405180547107527609990136145976581953570130126651076603165682128033223099748601054861388086628473051025892781651265369376082369647364946647228073001370347579511893326036114201856801560422994997902200775805129653229054310085486666528984710166119020312396229840935451198720369143113532249798923510838362631884275119160996468222209137220054184728215399464936438302695844688916236359722544868381158310161068188056283303080199735356637078024590839262665172203016076666286994607507311604785632033470280880472105407865541702374778778723877341092171523993823356005372438895862137479590224656869925999615977428456393169578856415524944992139319987007046410635284746172710948350858734865440078796350751458995808847472600350081420338960250471683530320625010605870940937727466905704766363474517931711858551369630399126357765480743065267569158551857910516469055939618096023753642681305096139552754986690001727417614421880204319792086498153062228333088126099375289337810082880629916414481013960795779076274901906524175992456297724067625740436197734486934387227889233142673430337865823021648748801129684841797223669866284667122634010627361384313904846696568761962838975111060446747794549561207363251368803966678478125564095345624592431352766206210740511761546044891223932140807793221095627015866843207548157832276552640841670919272568584577436957101793266707722953411619628158144166505936738589418913127260447074442544211288406960948765087511734493660471811864474470843691915943315516398196715922216987776522293425531806656255627113414637785216501937474377551990081640658767313476890378925968007457280779014254178680801985563555201130216866155981987972284841319581003029823086941965246806123341927352776327569830082147701379690962371073187207297814627473866428047036469695845179110645886846449361537898353516341939473146213642684901292637572302102179378151103799715265520114691673546389684551670464036494639914551426146227903941027990070997827492230871662403482167644111412131723695622732141212928270291482335455596351606638582989157189251495592780415274937572954744606807895340850063290474625464879636429200917605791123158231263473002092127170930330430271466588508368445251287606910030763426551458702839729560540892882427244709898493607347798283339674229130358638182460586109637902918965155578345977694899822601633293334585620962910580308429447502628437051735030077064704028660791252928807823388161592265962246351288010933852449438662005992753426104941111956213871102102907341019432905069438020127159894859941754929180772138508959688581530440021428725730115499913712786653856902769795770615383817197275943354345663686726080639837836732267931840714188543028491591703050845938374018451564257915402583205090220525000051806834936697165277566954674280994162436611413756382516671495644433136668942478067940194934628737866772294802368166405374612913962466781081464098582006100459379668590722640169372887398426346599532058661088253571581435449127834002437012605714703104233480418755210753221402756253239385028680816475505370356767305131432572854823920274558071053214421650917806082742670918485700837564714352830647810835539576212001047637812806872990656223559768969607207490114727102910300121522477467804415903175808453977168862097955195454666836509509876665458652767447413924121864116525825976994138192022296518341774060749553149428145195657019945315433047712240006291125464436618992956386352602212343667890822403589507762542328846740510395071707420676677381723584687522561175982119797697513253049041851789869178863529496043821991395140563362175904945107730710185308459291011393286686148197011683292893451093129318373667088918507797472392908712330031185781638579104656214417397636881903892139061468584179618327670549593319537272015894825089576093619729806769067303051593266533066106094099112377130738943177740115208875897437445133981839968659952605470551331813959342594629866438828163843847990960810313554029092108534254024052715292000431447083907380847329162042633924980649694967360945633671689113125591351599477312240302557559181617638343019228032045749324817063337391251061638962083815613120450190887904502178056389842373957138200471079694809244033373744951360517040396515761888615450157778958417860297868440714372438017541628517529926045513880844075544788929928802136032479423420252759205613425054813666893545243930564684961105736192707512715067530603191426979298590823786130628981552998320639904697288917470151334201852730004408312853641362414106276168815176257762373870592587856885267488862686487579931953802106930197302446945883104496748944285771160740812658679942385972842771048884750641661950061984708683099392438474544175737167033762154357705627232312570758414413319337553790319484500283422517642744288574554119447436318666301734781681837270031482866444688684347293443070325206191717621261139668864073289294031768063927488348085210325287038376407119067284679461229861269617608419948732731053853508070817444029312057673174751454760843730070398273267522418099461037482220084482183100882093671795967783349754611670896324027395182568959647873289868597663858635954210038134055466350113214346354153960065517894934039464823327950478159044520725871562545076490275948116018408592416933186297363958102283300142426207681333772319178148726628780984704715969103189972306973271279080123286511287360313487383049389738126438650096853023141782546936541701091823674855349729439082577635053713214896349418299107376877111327507334567354287711121975235245001833935512817567459790359550233498863914842961839342440752878235013793924343161123916242680940892623533329873221620273973462203486715408162452158758961126225448639424180093257042853299773665033912498075424276701001218007517511049381492769161831552583422699240783832912905152252351908955871854291208069699849360432779678554328533492630923411507750446225698315289168151156152187221193713438187538629486838365143886400574098719587290874288926544113684459314670859818420634248464931470266506678546428095470108743727685108125495365766450910504632173088329854505800111029309471475990011339723944769766151025070285469938647005729565799018019983192477577210775817457994245341593366897921612583096431529960184110848362975746567321686805814384931119294723175152797614263215025771318716043586401229507520894552283039269900016108362644119578941181953601258175960699824399998932919239105528149632229375243193219663747941327153103006582501559966486929174306185930151707196952881729311805815441153219974085012105807106195193513329975473541153469496159936964852225417921890024653421470075927695622695883322103385162476409937336147177306044865532337981632247291079496584030262445538451677918707264248019524091887669388199999774365873087175992844984238714367423721253297535231068252459409508047603592896396288137425700777557332968422422411632155649014318080142751254078184496971562616985901568533472704833746699951263238206055132495007386991113501903350049425611660052818700076006644978729224837534337762073255222305787544466586426310163024312178717395326693903541336578074029070197677940733101317616127662995206438843781085641124701261455517980828140694466340620999106992360252004163738816009886516933716088689042232460643959173434930297359020201948480119584110909301045509785837627714018607181020160326156952306838790454048964785797373276002378584927936034010001788358720018150079467091168470192463532607096092908079155544722505188126331853908984097173963715442980017147011706472333518684049660161714078984104222449913925278476685219163628828026521916085461694473022241454188515794180993305285396187536697560531442724025728152426500139728944347258230495274780209006469354712397708117646502578249863885772369815231223716326069015264068806007361616149920391083923531510216978725565093475109510726673673733318341700290569333175571019349832293631820039814369474463914984448581602145079024903208739906725206708532491332181355523428037333186857182642477574389405835360230120190751622305941748676664122887468045110422069399350096737314883746914954352785833938656590780264693024793428143574464376920550926146462804092889992788722844485586330576573404719761821523319660561880349795615512986724371163458741644057064877248742775471768798512113312799365674382765565532907479101991457564435330355264137749604363388472037273771698182961325647253955070752838164827936892518071014455312246810425101757038054451495158188319159630915048858794854124767549118169242955271538864195843736398639694545556845858119924447232042917293150362527800699125017538379545730810127236305098212980906076870147318298277105720262506597038396946811081721857915935529475241866011866545284854222918101116040377802380528149420257171650541095469118643751322535014622935195188771227827410556863874739030362930333193483023281988208266876435076996735490434333900041986607806821109303362292879302635339173703006676946823842869366140527319600012450433616830887712867140839552390599600093934631587857568474874805597136531431655790116068600888677416293890594761909351243512234598315884299168001610795066680630814409509419407622324527129320257275291589651150903936787750251993176605405874208708640243769442380922967040310508255540816681289313510243499679034346408369564194245814134185845633498811491124340341041414305897962165600334903876400231687680621396767317897255059213166520392786360332053117313187317716300098451384072367456534023993196120954088697687316411931705603908093191185446805568013078066858632599210394221859233076694860997997780947770293462920096244556032389441887534056705787771210045005266080349592014016129551815740906128480514072364393538346329264824041079213912145056639690586654028667166133673957558230098025249471804557246217923398035528398144462924530568651222577639243492623011622553603438559235183962916941428214996664198713602205406172807538163627534166745814821225294873190487383507715163121863718887244779789005476143857096245241703870790019538550033455724231179731983185114457400156380815407537546235314744321613128403392199067088178595806845845268219848892571381926147991852868098928223153340127458245400547727493767371205775907742580271798407221239795331867944292920552563813244223904513903218080762302887605011930757558704571913588511879838216998451161232773347769226115571736385904437480463839587374289482696392253045562681646053469556723311044082552324331661316830987443095849491100215526692468647015242480683136573523473555315001627211018394534109185203588144207227853314428430566919434693843828855351615449212743527599627514166181592031153502155070814177593776257168336154808384795620873520892082112845350463155874212854702796174947087869373326128048984653770771383014615024389318659114045570406401535334531125635366794436827341853748271828099338372561691794003671708223333034624671252267561994795572190866132128673629360698340152842162298742909993690903465763661099061888518120856205713593626525736271172746479366919614059345091237766948849472652700472683542284715543292763641949167043949171079484450924195155626416058064915513030250453138802187569952564039504384386702378643428282666272136753304717065450974668839885349856667547642995665468967136144442744457017380614401070949680924726379593836785732788904463179572689489391375069254922397086805516590760555464790389255476059994678695194707985284009610374242088220741327512663111818002271307458746966555687740784911611610271036302311160136005323329715273984027756181752760963588497733571762791095732907204193654904697447698113715672285930268199760444125654564056673925601733864059802895851567752824769437872764089254848301370907082213742887535330246693374279465692133289138866233160924033451935391245934482728981241412273309406894205240873516686553180145843655697972780293104915771316012831501886011533542047265133489437196278418201494610683327610866469083250507226998313647794064026034420319146925124429021677614102419778582202686476864799177066788969796697233756111763420417054061694484748738942569569885308876551979029094077901184792349034020271589323270493142328426916093396922319701790937763966667082961033485753085378801785407419795253778338767857785838197622499894485027287431405309900516096101812523965313776277358269094743407554439862016838578810374701729802168341852407990515008885905754239785027532212162272541597264399011178667940938847826457584078559239975844840670613758165964684277447757352386163663562353060416149476840690178600912316673938474433965361213533958213742336341222439720869382498905868515296220395606245621723835758530732761681323154778036935504041530048039934404031901885178694853093788501253744944896480571170390267917462031900778127614625275055918750202420893284618290799480709031660940719991161962117556854053489694901800411350234507180210781187233652531683398008813079099804009891659302641899352845468581161992379920039470982957359109505378043716213407179997540863787285143055267936888410081671045692173230254429684758662727536041152732710703782491121334263829977401211385521025252183861480488614956734253545344662260245570342308615652188015814134794422010669373300401704338192825743625865075808210767566867010276355876744298669382910987005359529311386892062618367053659045906777390134528261152382551494721374032447547853865385630507505607436168241711694272327940924531096255111239835990660048586999535835585898915517146557137652087763007980979948648451561490969623699931170111556070319955432691357392811665651037300371517344981152614690274905322605595069558685291333398358334384698113367731919976383583828100220233646958825946641587716031901370113570226188762378838803406148492486432618169932800837070523768887585085710094117981219596150584714627110282282414937633371090504188260716832744782281120380060348716718490282925889372467753081179777294295412978558425595353259609870250924444631848873045472519939312305535502733372759781849552453128549596687540389360833255629731914390654077235818604414548210055292212407690220792418726684514599200660493661543902170309330031494674775031940492431281613313854669984301143232910917704490580474158330705746803785348698225155510660754268636818344744120543141978795120952096122304410700535196176756237439878040368326670907962031905733370940547979000290728744825006271008581949599635982257611648638918814413007994795585363222256073929374197880651107367629842449023690409164660738972132720944971975393997108807287634377031199154391942605545096419743589137551081892894610821954429075377433441397875288257810195752521388205961454523492861536982187583688688806849404389040510279828852945364564773801413169998932769300014615073908723798337823033145192351284156557504888140026819826057895710569934594121057723202800875197408558794346043652311969243622811682272158940177534615842974969321797155178563399700822432090588472836757516300837657137500306102564956262094108029239124470192760288793115111434788844264141248745780232523024177362146438924448909087031803567292063597979927209568935748561641752128700317748043591246334474026671243275799970372737712285934676050680993586181139412638222116139113183896632571360885748783708596484991182080913461866466698596610093403911859963567745331960936526353259764095103052380536482272870476420287153018413771445318716052071649123520686822868079288745529475128056037529933388255186650814381534160230119795047051604337790129041430036601703830474010072004494130029768756032396391527901028983919490973557851297368897754789194244302047181574175094695682025032785597029323348062905936042149416072565212436963129433412044224703209422949053092558506737494408909219157504110302968532479184005421759043907013482606296119863643809088381381937273258469281883022028691632078049830383701258753814345377821266063546972929442019077402606588199745904581486457971577957895575547442801474401431180808328330321937646821570093994232229270508719257660994453603043059758179100813915299073797248365740239789198022028246646125775873497973409497420879160398368300776020404254626846577082564489616068480724470724535935390328553231076958985264092275936372094160721139679918776089036139370851293651547574431218631103803893979429662031009647108320967191826417177759670302768068206550726219288027025870952368357299141654213045194617990802091305036385898032189545887810148012898192273656058554621164962629577890268761840376301468248030686046592451508556922419268899151170725265427090942290066611473019931840923879699051889168684431883207733918820965854054855541512820627235729991619232719250278733717438825569813285779674560459862774325077087154873419665870824193601315764286942899862921519258566811118009137270511924050722830979996353082171498727887380063742306214200837434309301662556735893201198863727986506971550106279058361745663946245324722144432625581652998771351722036079595849214023891112873985836595663097303452655553842837978810332688418314051190568692233686696950757367175104771085313443002425149717237198802502023195650580795879857591644142254082304015418230715817836852440743273023837644131934504205075548781652353662355069429553916301205688491561467980555842147129733749145485143644018644915016850209988581562721190254616758349169954938316360744490101464017284490256643293043473194643055533771442872967476678963011542806932764152800131378060264032932020695698450170687592901568094148347927763417501528913514886240743505697591010663065202647557493591075450143317602711983819166881079464333483242576287786153893690004513714877305109447264586954496946131156008703784909419223510126295300199622536821922617061212992465285226660083413217942326502193058479771405085605723488702737509731812052899603898412302377728842380109147499664489409315483068534678122900019734403343183182514599482462458010390027892212211630053792614157836739167332351996920037729619236900031788528771170375009035073450501273015750270078038146636320794963387155275284747147725908438094930072850951676282975861022089897627764569633029095840949172606719581761110265565978210952803245557691851011273803678005935591997729828726839297073327848789877453507083620553026860815778026436514721367159938054984964244063975024851161611198225366761416916406839744168395234923801102698745732822508548234990423614711552200504308397594265059120766147801901793775867494698170260171610379954021722549438381279051113657578140843264056510118639533164483160867852765001737841510562444695252008852620524014054182211085783620572393380012886232087626082752014111330846178348443004716745746065257980874537858411135145836848071516298549096208584850773398172677840994056223873446038958808318179201130554524085183794384438245003016778806858635382761345225551111892337400207969535386323425901226995921388979874790488240083306185232359157169255721260537396584821673487938220914409918141737628249981377421990056848377583303287441978553066246833098867263977034426560884823508384403066852938387107686402428781795685955372379034164144331066407805807697939286849741866721500520326741877452725652717202929397043290018276350115061164740007937877216898382777716425229426943832785682780978440070781549876249245119363151273652975518350981683762236656739068792939042980312986894725223737802838819728816430144476278010238381553787473736284033087158506693018674910788765047242077954888570555145430908781636921850012625803286727570157274478447626419832408754512170652473904449642559036150952413972980493383834661909052501338976677441586959494883385136555738333223582259664125432897374132131216840981527315727623084458284715368521006270367285222824679466757612842575823183128133236122564555676566056866903934358496673819052594363476687281194262317384978338232340556623706989400351432665467835383452706553616332238728834179119682054710805263347856530819016273429546811922404733350794655959668229308109005811974068387145954248083598023402366437151311673248447706577089293265393353711571251167244245080791013249859742342829280763717242887390391512245162708855872102471618950544865748728956267494261899609662128473718421701169057589744870462398113982787556413779459848710648153595030350199390170711529065192348742816692755572156963933126909882729603604868532017700565412476545985952250744433813955160907466228881860139959413497980088159881234496329988336195942047929006605446810483849238355343768137742830856749326365587136925564053725995141950486346983841714682341560264315890452307519331014929586285504886330101215943359329824028532488870593218196624603780375269460732773699906841365669313934066119342462025002671667853783779009898100534362904270785293845858887477551663749034716151007998567506986364812809099652902112539870412882130918357175001490768900876023643195541422368759972978298388280679974471188423973903382781669804371568678518404662089416787664757682062903078797292469061844776290906067874811451996848913478688784839731950744407680986435283583583852786984960532532650160060077911054830626948365789142327909443880643008832913978132174428387861536212761201708558685290670034672024854100164875203877747268443412553701986122479578497303762177039059230667115105272728540378836292527948612705727102209837462582338068019560832815656945738060616571029915492450563140213267208172053262111722032304795126364470741170740765860059503351513903071077641214305028173790081525106077605869157062390163737374712293292286026775857061661393146720452448648866536104906982463757922206280373140380802744262550469246670609325781677557372840273235657100675120242049223564736265705320506287817001691343007902124711718557838366997392366416002461573472421068477834265495850448813221787167855141459466699509265328730186630622728778930284512723417515272019191407384840623053930551880509625437054975260453457519141471557267854178184529946381329297205515892724269660295940646237845505355614884158808174969348138047482036378417343935519256261037563713990797314599909972975736654099003293321524035008970009435266289801343862634540362053891562505866738550302689579440711694612346259333864214845954760863018937480116760277618031610893687687046566834539334542029045499503346363085468454027568686654506258535417915548559587548639285188250856226171747384923149313201629877484577263717706777417676844811950138675655175199737306074768421520137647736603921805109050112408851178606838403473699997079849454418313843843883304573487051375626263966009545582293634883797446261187056473628499315516170126099265641302868548090901898666734747447274643564676510228003634611965925838525457439520982547376721674517656252740180576646726126709323188490060667936924928451863813091440882390946982484837599803475666802888853962294804143291622897813090084065296143819813280401516797241041251798204318235973643272883977284204659993160412427801659346104956126957797501018246280349542330877542953143063749447528594069997547688091260060246464234140939274037678589984095804773940227833000185617523037765201407744211753079542402682758256623820901716947153749978785053341149484913244879706303092031077223898873219081440024827058356692496416165823165045841539311021960406256458023330159468523607798864906426943892265034434781387008753926575477673039445928412195488543812225369955319563871795481699161237322480557705397464459699465403080718627326286760232131081560538301222962185255676064760190377557424332484532274315123073625421180924469470454283109905291159420428130034119490261216417044661926092533890268939295697969067095501603621936524203914241419024560886070862276694570320789998590959335958215514241548035204300681269176755331627954001473906127219043945064349005618509030684433946200290398274537250848875575259938220927285209868636150528224880998787794839770473138783099261096884224003598803964518373636138671620078462224490146736068003886659650755131250363276349162502917061744207521646288986133515874609923834225280119782219786634753672545830982722385207834542137079019692498859902500387353254018303092691692402685458051678815179154898883723128066298193498180807755925212530338085511794815717682508786185717302611797722431420277065690938698825377718557789962710482515542199154407030773071256166260794586392994415425177107165322669350290954554191087099927578277954609443505710500202991636396605194425632790311321770352976632570709105079337521460297474567260858331300729465010649809558530177249422713324383347870610219099357808847982992421039346965228534407319511662170897131068450121376290051295252635367488170886054151370174546562445930232865917964719081198659970927111699883097387251684615287158287526532841194369101527266823410245218368750946130894689802486485982066271549099244489008644774212737761215972224285587091903064265588177380016135226166923237590252838569805476290896509800632865473543382751769138547725757040354081556522469836380991918136891578730196884244640397575393672415605599191534530879033062287036711074637304768493518894854224265534005669863715600457373721801560469594937348092453210649132129759506477291637697424906907056870995906188692309782963557655638476920733309072467789545253443134473669068134504535871747516766762264594914821502381957159200306507723962185006210290191994578654090076073012761256649432644916395702546478777547923319937118581312831798082137824798005632340974703803815258696926991102655864297638239370594662173855558041697973868118302945744488450494851665108878555816284642751891250168928259717666460542612665025410111709611019132800927144489684003732803246703032556124785807350710359611711549718246006145116431518350981049961333928844840466546104743640372501580681375209382806473863346899043886694305642748763277747664025356758559808964277004936495186600101351703656973738893501984440775892880664600957856012135731699105258461881599255177824115485547445431417423875033242104647961234307940086061376868958742016800915322344499407974874325774512733981877924594010200302289529749255076500717621848145696840626997843679997819483296584595558480372535489277871301754185460983126308532031139536344469302706406790504872428091002971637482806390849623596580394311729152994999117323771915790876181500184995467513164643337838331408215532839862496928603790020979437348412545974716882703060659550107505943062231768199678835273652099401119034749385216156728040078791984775182942489030495332323604259055759919007820714472950219602922110208644124909832741310102184819413518289802849841293043618835117902705020893827258350880592534766405109789704591609213885951741562200249969524649806164473630670110278155915926293889915417652878409469607236350069993772023048905382391527366812809315695645650672589403616127074921127584227991509020714262751597709002608868536877019079763313009632809326258157837251274957017786459211846405621475743592408133494124461175181411010479791166192454158258257077863489976213794281296925718289026886144253175032195089992104505332708576109111452607772249995426487315889945831512571463190828059968023936076380371516436695130683129179423389106544651439633603976181466453417864271080827318495264020548278169192352569103712164677292656397916921494628621968379100445896912518353342053927115633168584333287920157271039762975024112842144259453986529364466072728364396028905679225251133296035937043629352467496988453005894929376759605498823607076210424724355178855405807355514891087792248299262968289001435864600214250685027557324452693344474129882032260259255888629937801707819725029953891550597843649816069710320941845958118290961582638465553457810419720615373755112059114131219659054827072665260560361971031897567999733091918635873316448907404244574035139260232450891779438789060516687166102094910716818484855477486350898647181191076487244955229103165578120986030442392025808888011988350964834740260312430852528237031373405591899714075628309749979756009409136304708958169923202222311855618657551909011930990747641001210356626811699464079050634422618973358902908574089923205997414831978271590917325429700565605774616030917150917648134110341127140675293985576867938418376638241594943743491137215656297310978789973971559447034808000783429807939230008741316189518768144070394569049860961789184109750138938288592142205775717401793129389118868553272623911232024366896231220210323789476347674294084551674040860876537799099117935648038620812909835004351635065998867288319665678494395254649124816373846158393976869870557198369924807651825972341094502423300092806008944097054558940934277695443370521908217757545643806484269720940976290328852704174316887804918246942812095681489483606518196870848729534257631010720205063026650029378433520746175056543078470548547655004257074067943436831494423329549659251438821595187299562471232334323916638060514242770162985988182502862644651742695397191091111737441781801010994022410860415735730592289178994903219002123638505367551898339438250494082505342640805984622070958414253768410193021255464208728846339064819833189140337463806797453520400044041333263525499803526049756779943693927329496115974596263281636006045988809248805355028212661397163411644586088007546197926891889819852910862054065628974656616345211323640229603442862100877001320667277113515687967830036684521973228033607894320853518941959452794218678523390746705177357755666663026053806024003792847609815132977737826870042179664303588067122210411468801889667758291645502161525802437170358815934022599639155190956612677401145677633425148118466660952866638801613840554191254060141852688256834567118567553445566074133432310025624141555592887985574685874076651259866357778744229020919422322983195074716931068306262294707548456431178834148095735853388869901920387663006007702972887962919293830582049890459842473612300106323815943922877792515327252754320279898472140352855484500512592869995988136525265769348122739561326275236418090472503714143110435238395109275717938648940469479993695204154713400802365318966247948749044487448402847730005862090296896546282952364996484496183354168697707645576850880313757640744597474810913683070206175616365963580611651359720555046068318430896589528876546044808429573104149100912931782256592629503981409780296803365892801852911558241240338770681672877806283202434333029724560453581223905002400074890406224266681671198961126488696444379385788835310449263185401262421378270998465814644564525369874559312879151865604125143245071640372951780214931906504389474300573836698943250292798003608978492769943917699516604821903599257222118006234275378643433569343304659040852647113691229594510478101559292831489340609323256750464039198069859048177882485625881415187863422647137907004476393246263212605207241861781620075516915656158423218449916861693034765102036919722264840787477261840231313438944926216297853186268446685670385266714791596003690880622608290169286077622921406146484382105909471933134735381067984395834429324866598724328870686016865006009954763999041263661456469478497606426797698094200278237558524197505523422634927264554370689421103329522370948168392914886063451086018084724406340195387120625944958784282034988823355990232730322169639166348205792438281674966944269182032216492756981948145541458115966731469055158550162569270939151430694411044029752740376449747810347606901547437724686516432891040364160640752725329670165949159984072403203513663978988635431422839870318330224335932023240288440561999818035411457852021410360667863302111761779689670087113842816595121840270928129398353777872309454849627594416241694179407741716629568626583612831257755656356962359134523850443177888991523762562761725002712265777465562679890984679797952885438023699523975170078304843834850362316676377695953261625632589317384639273999540718499857475449398477582208286617309892306714270666578372846274711069667083307401918463933701390036704433524872190507076108557941377412993160954102350992254130431330472553070530450384500348750446360882040789457689427274291616916286351761084750235517446798939922486953097678521122565342482947931206062118538056870310577347971105913253297640327163422761674298629857153927410014767172255796802769443525358997300647599919179956375222309697825428949380034649673723803723835030736597409298520078409292423838303175452893377838393296145423222969859896868661178826017416762728513215048728484738411255899926344713656927874295842156528316089666640772219397563241562444618722376583087036116776419216679457090626947191677997311114355069181017499371496039028805569781760936341334714660135460451671612338779215246290442554624604848607533385783292381093133251731069435036128269862018871752055015092158998061484843023435958807064926955915694685206499739168112700508955956614854863488139187542475159389482811764762720486410973031178970277660049242414061132956498352869913996263234837778971764661780095368989694628309053682078993485601854472038099985455211400239966086601267730707786495743673587126105069229682758737789212651860644503376254226852071164694082328819831958778524596428182576847178098961110911909581723913439077708924416694333885729177082227356732615224542867112457220683680232817673957134081599611819092024843561773530299375418110900017999898220776216979348041316179281116474495347204268251771541221160204596613179786756590631745184674950850263075045340598309714436944487446585044218306248325860075603946275820035047302766673462377633794385350892931929020086596502731382143007042104203807873364894173133990161505096417351920638280520508637801227962530787749591654386640834699689640113760311889690918120109954726466637043775189302866396912562185339469283289219728310531024354215371568672753756401365129325545581161210865837295172308096435240784480486602381333601877492460285976043320903326053872878862894389832542102676669952196049951834609883412697162961038132411557444898881393396143354456692356754257936323518035561236588620583712898106131604675653091234972509546148143323812991447585543208405312122954808300371945143280676549193392632262611736471068630811077639205007563625848722952085584821080153219396881659681183357235712429944861885387862228575763584811273560850820000002137194214576251226118948353801104970127828122496391532942365073576510160066533585118689961100265273349489493501303902110523114488577237101608424721020110346131230025511836565179521467651741832997088828184891722806039420218935836565813053358296449206297034763885697687376393529803550293554983692717432810092466312743940374302664501076170141543526001881599757064405713412708337251636655250778263776115046101491081261222187795977526481260930462011854758515137301359334730974127902581348431611717814323131226782054887761456493057393632575128201328527062578908733185434662122906752896854714371531679464765350671039208602903204268269996170696734963115075177628167406639234701347592990167570702818990054239577719605220174638872627670819771171802529347771914731517370863886624261607476300260676756907696577301351640889718790788773476921173632925117050610442142580748394520342532595180789514325673805815268163145757580667444692805920670930455367512974660966005418173016690879819906480544994442771225722768425950599074094243474191786571997088779008323509238983112475214653656382109469805560518390620540724980650397465370963017339681319705134279219098135950131010366516482853661503666204801339199973050416940982160567208408680998094169270565960041847801816950662595832149278705665161377166676323314481740868948896888783286089455426980512555241994837368013583919756168798504856454444427772802507285294979226357832604198330215120617196456479226858579265645655271883851193676263552043463844498221144136759576523238885101981699806151194656136635590422477969965397781204431134265811812404969141255460451429239197554679589020872966020810537213303874108266573496274628126980249151236901306315368281588723183426274785437850116410093055552538484377899253258939846075681968257318729635223209470147757412787752021786374026618221176555155853100383845731734280725247198331128365878305470280628674125161976386406633449483092361707212110070931417248890582501648528446576417565516484385589750926379188886045343743948451570530995502520444710037982010986343927599893699747012341552869033946633804549622646251646416409984656904374368699815895970637529120872754812092416400914857177387236322072855510212486662545424493016621135839655277850525651923207658087076695088508857389929065038522582125742223933197756951388900281798339630653228315164373762266604452964833840170205231261594679027845911773870827011427020325720411879471421813142290881443798303804218130619053672574097812910868131694800275523962494969476359491529231023444657894044522345623394897452807447115875151727115369891778853988701847988177089863333664001087743777519048466178427251321161178569770296830763570477126029231505210291642718983375110587497989584957527973695741782530660500910191995117078631289960024556792101920900649977285310070590419655948519528745351595556049256228041700874944428435545744649177703969921912994844047228454893620430518016506763834635451003240902252892925302612019948146654172430845557985516579457986452534930386461054912745852410841698222051279923607778692099020838199558440124228751567555584139508270132436136983611013368919250694070767523314546472813898549405087595339764536743931697963640572058076921410065346599640092228725172712458006604699848637417018651491609181268745037938497400669329511773774296933301967125315212204511044881508245759763366338787245972345685662486570723667111315652278181621864121855423083195629186320132224010246105794730906537954190912712352611781075524286335043652641564078319816008200816637924418012557035295812940150621567808340303591736057102951703045827830763432954313384590155294290006013616459739282911867230179725104586322753811020687108682753805507680463619865415152719923781012093145101302972518702968296934570012998506839153426414221946854940988751420901440002770231847603444939292135728311216961952027662347355872550929908056158645832732924564687576038132135050478126997254169169559628368108054282151281338545560601859347054700196698135948776672620825232607043130542326592239245234682455598010123829976646156749083377549727619344056007907049875715896075700526679475759996763062115833290894400852458879229645283065393436934050778253359476807240462388448014972159865378697643360914372792832870444265278933011459013198673220693796370983241746012384366750347234721992155729059089901695321438622611101554516169629922612709308339792152488633669877119883470193140323795158041961689308969243519636983620606611299467740916162123078339476307018233555204366719925283157191878543747198707280660537545582651114012927815480422506803772494035671244575411955750924053716157307753259792973006011870106717626842198639057032647273623156597338325070988011388174847032302618645882884410082730442680431739100299683519892821923488542558060305673380136526665362920966892317816439093786696799636872738932956645694347517247828479160249367779563782567853909032168923183428789858588250381663859155523077796040985001078043051077555718069445932270335961472871704755219911236574970353734924212150247984535508025552787207357514820139210783242065172785482426617020764557210018824201969749063740995226027958494580391511855493630693321018785418401179391919643426252416604761027706062165558605355822685038618721075582919697772434168955449889709767152853752533486067995343032109550797174862593088711083488113676168780934737736717915949785158694620991917237396672110990446919451298347996928941288855871644109453580692617801620872932527447205071175627007486531544921134452216065303137400187425737776746826597936997554189625968189859937181950769145983964474889008424811224265323799809457032133550993451874537480938127283761925451464475848320977516852609098786823902932274180491349422472764006924574633413110937065929290195675752795565770742771539854199495651523222914640313595609484577620410721588386684653419912963290932836887994361227818197232339065802703058815964803801142765836761807835154359730595520365302080958299922295802381842898076215158827826172267767673939236684260929779371827826657110946059009096421373338223031460116008824429864368488732777788839673560989966256088372688047498629722665447760403618852080819794519609147809430689500330844712367559269236347612170961392683690043706526487574724993069336677522343528661262937013656499063492770065945206427323371228482557629450670579428065857218003519147097793012004404997231736913440722688938991778856947598201023833429310257355703598281530232904699311927867268901781165890183076015110091195406125794099222894627011556402366404159193817416971126754247944049831687065204195206945665711659581627334421044167139543705344935852812787392933362893450002970967120242085359970803320697313286941467198151361517961427125789533775667613847606299106897004445626610284051106549557465548422080883036512090713102435698405836221944306959545514527497871677739074928187387420242880276436234669055576209697527303124461894778321070758771130748055459197511142209187540865983710657021478909645979990558129092263803744338047483675621629534890606861466427175874376113576021986932621394086520716066786967163166761520009015737680938368096554803916747309892875957584304691082932965097701501625900645192477015054212622944449362581634217097588229787192718908597339221467310153409110350728914588572937773560809242468861766775019540478771086081041389296094731046065109970097841499867880517947799768927218030893724034828204278474056459324684044730866984144096566261093050250154615008084054268416494310544724494224765255855354318633753696600922587135238133999574477546687578011273103330988193449123512907647577936314452535667323377154068541271557372259373092894475221026921667918206195452004788458667269050900935658144615994424811881187248791313831366625813788083196128516694197977355269900294543067634696994102824495039150966545661060098193688546368445008883804479386184172655608422002113379741531616844860999304260294830864388325083425557619740848136396218617066883208450904402649222125350727588784182819571373965100724524395381794725199201218336492372701274824825247200677270868371671115440163733138753291737233881319194294650914797499786645375009043123428741530724689399902494001857299509608191492069591995731782591307915895229329395245107639610821495658720525598559672522055264475124202041333602614020211866278912027798566732736969591575233624707380661824708235137900018572450575991275342691538311835439526657322977969617416275171504627684421741448549564455574732531108907394852735879106536067435362885969661308554675996382824689166435190453319683929133433246007528811428602777245639240572188900426034023742130315511341888659770467928619804291267097928092795984220449958401919277026194582633112207784142812747230763875219939897329879078789212181410733353552027987053938954039556741735812212559651336256165253513816160525281660544586323254509665309572400447190106201710486455112870494968389336118063891218651501310173609035627796923691111865061980732360965675992122872329053710327112460206367742566760282403252468578325529680113745197633830416004954355366312378123541815921683637935735221112634948644839574810810499680811298592624572848046984207517729798141333308831971713581173790367621001256830228683559106156571040298163171015497355909947559267497736003164939580009600586621711315049235092030492317318490581848244384439393624602242555413974656601072065574239209306715130046787260186222006874473850795668964464835753000054360777816093970129191174606233409800124062022248896592871670469162321350125377441109293870978236721663371754870510431864026349346147264709807495959983647091810289506796907745953924176415900069334026996404664822241550927844572350260516791445833073852452821723506199516078428657880331530155524519623400278729527312471070785139437601817210552002562722143323111222137585684775403881580097857615671384067417184505666617670716023100912614358723404812123317972959373002452487516288003889539854669053437096290645196737713620654955619771058080552573088870320802109487124158696195697218520242654309069408271545432047391026055002215738870850971872737565616505328126052508462705304472702452735559565239813175381056283594954848538916464663268804901672398388983371974319880812750534623892336773171610663038542912965626403527014215399243862989678673048679439556988547720931833033466179585416845767889085751439806139214525773125369650108120291219607079579382554625904497811248143638324184390212886587872512938072091553245973765872573443433461274757954399355676360606830052599394684460986985822016533972115212342567931157502850283237822896276189335812041141592178822546355435099919783995849013761824871370361256325033602842041036944928684949859303903314339013128455050345495092188815774669686705267267135651399803065058573987127931519270127914884570492382476982641777773591841886402547963417158219911231316169217612733441681960126398250398409527894872836964677409193288318515462738273120598350724046313717995807390866684755712879040340415086649477345033378824704816882618686262740155906862898465413426484400671842986114091549354782691582431736667829754425398859811887708122917131002864063189757184250280336867749889560928104331547144649616204322547357600106542319445710286329327453151674299595987673831204878086917783502396471748407403040240897767254507758750097752922342312359109838190892056583959926482032455900326845375314018327830663408559627479262446781214617091368100023560996836764591488178154980815269011975474312871469884713336652811449336051592852317838027645202221169135924338920515427060720792688605276012681054901026153425131679291990840480202328587715732323642942059307782084021039720955690122177417144069795223699332657470960273719954010537207705671081324967241623634639202717762134460333804102971664733246141337605637419690889496896369748721974210268363889710381361532198647518795711046196898801573402972889238821594237460751519756608724550931700077723183327636917023910887683013486606873704726686788885560984448392883642658344158218362740757357995377720904562683485066278888642687479460442530338440389104172306960357362985726816807362639464545465936070648260526788326906959049016676425928139742540414133979129502357234839800527086477240109868187403254039153952125359689891559469694449962780904035139380916568680399090528073085403659019538922968243318351857753029826191913258779053507812936066553534469394795231370937519602525655367872330753431310967385102203431396746801093136268323458552528664938973422965481339089855737876255604299111765281045066311647548232210048429649804170590858264077707250172465574354832096515276542370302573822247924675235340894854830081301183282130222518819727049516554717077339957004285938579301051921721658091299248246043436410752425353335691762201290285073780835378537496123649406164735767849893639091827952128086745769966100485252293375140155899123063643741853383982987301343732429179119891060631139253905727829597377492885694184501375387865193916852750676622569141880931478613165248973527402067867196049154682326991641992600630390986252343414477034609913664284831339349959064633178123241718103402312534673808992571197655713791688397455525228786701138013112691320111733361310619477880304707557105688485015960694935625421237790486574869247551188891722697910247642749184986043494503127588000386232198830841147179627266867976199186106499939057630094809978797562657988559960979556409036979851518499969895062158581231857343504276395494743684915329760125662456161149770273030430115570561650382752651010638051537268651312761262046942065434877933959104303639557797343928076587409196889544936339414226933766122681333280570972514073788320209166828077358662257080061518076812411737463252626901960844359842000600488335676951732901106483821303725535554967151269792755289035588220317760025387093488456823340021763104640532769701430399825542781662007253297664299308662752812237290321006731896694535174448926304916821242937620508768670295978027027015794708274201317052725898073713923072690777381689819099233885967460570418878211452930653800147302706506896034817022916278690764136890767622043123452867801692919748955361378544537059819111226293438306454552403381675314826024496646088847486096463047660314209754052980129816654444069816270829742889784001091592152826683664221348766456175507555809923131042195160357944038617812220632131649755690095189280483618266747635704723538953846474231607345266762454009744389660464178485790933266430919306295626159745867010803132652573054022731898374534893837110402357293189202224547828543925989585042268796091122806824762850006350526852367149902523395589596922346486297418273308573669770699847915502335704414905330414357023271984935913291669508051770014969854476191606909260087754907492787902493804598208244252542872606559301937084420779903826952964742904971908264114258042798865905085148588179661628421507206881537709397519507842848963392221395950831803237332752386551375804903753983456075905650539430493266624092873262416022305921110120596176412181257834865410553508409721165077781630764051349775823418768063841284166386466246653586532221099563657802278576933387147972786639110307682251982245004739893677289026719843852062004629922803073764810708373652747559029394317753008992200211307304203004141770554297085106752380493516386295212065866475960565097790034387253370006474974771967217636563802953689470824072324384768581126851243480788718659967839100616132898757325819600813041881909277160689442280278428288279732101285189250768713202556928002245806271846802061451688672352708710004712689859759990721531490295055705694868164557794052860402226989344037044845840317569278911619314648610345662195375700895360652668708970081104375710250491506285394942639082633108591435774035044914003593854964138704626281891709114369583969864227912976070177460785459199660188682232791691240645566294326752483450646664787928789088346987970739994086122394190262753162758658945070616295594392360679110227871514179814174772430105231423974671297643134354908909999379464937461659056626118279889381390409254441681158261670184443903357934924662667131273574639594848958941941992906483145745996977022010828733806421753377473639721590778300554572333871205493371972929397145086711287971693602187543166011052461631109885289790337147784045366421929149684995380045027662871049448670432995993111459339587001893916671528731168787504988352016009803245713982941536770627216237912851039941204507564641968699920423716040608891039279554373064441066878855948521603601656841604791996223960228542209299077281128440094686045132347005051762213943103745879252744234123662887092470206893580764530806842090254708267999557640366353390874978083779035480429724797468402705833123239520187133465470441741869859965536453323473531850891921354117239163030246236675509522684059089818726034757831437212328593524858826696750551933900593195181195529288732904371549930694425258843638808271052219221969787768932600709298386330783812877082627565526134130553754794256312253853858347767413914362125270298615155815942262408237568147072803787850002522934774377727020073980200554172286864987290466126372319316558292437191554360798109188473775833011067050580703069600403218032164886605406682164317258394801716835188833786786802215256348708881425493169949851134366610276263138604664723886696697420440793496658162762518885541437396468754150510032813507714151816784130672584932699666237244897221956879908043565183671545085748776286883189874026031814809493485942443291600140156645097491599289747799490625592939176379306134481280518359498307728091442608272369758743438558116585279416027850081810739034016445097925366099946320354719760859655353248626382553303075296955749932592481190327791146982041983925119322738081421991218402862311613756533418739199082298241920299289466045257218645385107179251979469064466046334035623367037402360789369880047001348567997461815572356664006937375059259999176712801785240319301020386422782284917841401429984741748162570221211185898001485023589375355369168301523923414692760787765040401461057087404647464328422752149982225556631005777381154162271618543426016191754356600355647620044800908616936476842226189286062409891678428098964130718614569795602970728452374050694328857924693018184342575892977251740871288891675741531456472947121079492418778169784314973488463307645615082793227834940309951284071959300620474373530329084727862938199890581558559065887541958574772108172965129706538922892247333083781210210113635568973394822269694743986039601722663096902473701770632569032198891733432649248668562872472058864540287958289285647600253024666015154713438862017822334223041158079438530437649245249623269012774910184567366669364340234207781680135124052081961844076822721566282388844085601026917701666473596649223257017401605621742106295852224557559834071372456001233340124560638646521393362810862444095443763770239145605272514774896618478873270893547796765002645559955728018383718229510565351192418639957706872215074821358411094161213001056187525274300040323267048912662363765156946057851453850213965574707025537947472469264863692331321972669978217759015017920718190183606633649132002877775509412661584096556512445119089310377714250846925872674036534696046327356593014828296884127825114860406350499316890624743595256167778116410832274781524721647167798332768346483032187912078430156976321799545348315479064111595871047646035759185743010310811226896244844737591713682006244735886171213223730980507935589877492916301122874509299164397185307811472729408753182382364336745588730930836618570233150511061237713126042426818379303359055368685585970606228904803679000558488262529356061849815537641039280718258860456093718230738878320321848315115270806942682427523010446922607279313078313809878153761893039691615412989067664760664065008287777089953030780460426373693842228134793768255262395772765965650727146934492122535235452248769663861180748153311719886023947435662779926152582668578836108744798132676152488007342319707516747880822894073620006304534217059862885596355923895968987631384515825334808935231089652827591497770849673498492118169681223743805865425648949722601313648649148197505324971539173497290361962516965093051312562629875038347459389563919652640605086057386884062108734591404015689881509153616665536684031912082420743565492784933570226320654278444149313473848230855660762863366288133645464229657884605536732885348321018675276086421174309568147338510336435883700142912350771526768357952204439688243112033356845756020201415753873133295584844061294726502305148688427603208997556038217090254027148096758115896869616018822857127611571512959629695052643745825253913325623167302511655566072402782264267106726792067165369935029591287895776467754277409543228454165610427482302186368920355775085384809815713796964576286539084200106163803717625532626794417830120586244457833984703352144802692069886696973361356226714685275982925680541201396897868713835592685030748876346830251168060729081640700163939068545253229491334124675815526815914851322381902521939062269653391233951388830821315895099734918441864041436588196444564623415332359703096190483125042612211084057919153106078804778679575627080111777192453129420014941360619817221419862785224068782453140750547267267464196059957954632012138281116341969666115243752031450728999610105084265046514986482523333974049341429521485053735289351265526600847642527889646578625550589962524697898889363693776574209459450918556279576149287226990268819663022712219000110756060824056841702364657348544129538264856938730732847364223886145834467064295394156879265586362179886642699744603933423768115840330518803512936219349776001074091611883890260947384597099357087422121613605820155358303187676054324403361938662135636184117534443804384409653408024356732311862700251726666946297348337637469045046559555754809651667146201944844832577139782795498618855912267125951440398896485808050251585081774756667914977372828909613837486902382485708783983253791727674557827552450689409228473946178359150255476868383814769210104330431225813704413036680682353688927974364608152031893445555829510244065361410129566723830635594842333694917016263586316164631899843480209781239127299637443770762573776881149488076988977826836530597504115283759338049839309228224150559121135616438266617232258384601400715501927620819981421604664320985670187857136010756278807199483515912483308669970008480909970327338418299567173040762863719918830732395895518142259038107150663288780398524509282760644385494638637835083150575859817555627349193231957624725126748800395845572772091579258964884789786609619078584716402986809084893447601273011560386020182911338064706835924884356395197085170209034792697744723905951706829445961019370275750493243506180826684800504890312492275471371865287917519073155455738497950907096733658054557488686341073251036126673973085083701512545393033937365037459097961321857316960946050036022612190270942222896234758871132317873834674957891051785377021565860331051526309881905772964192497116080825739607394341582386972104309384331013808166899962973832900203231840276291100364121550449847253043786564436410726948017558538030630830447775630109292681794897601454859855187761178253912408189622632050274242355847464629820664614966516196311282808665766078347812497657844181208676705708230191614138723105964071866302556973672399662626557835618784784924719104034629040217134569176102529335295809151456145410265591865267761944355883593760805393736287893127110628663789449695530858362388068141060296792121741361937247839019543728318866093289758057801843856680920319148991002730909275123895781205708797814910596636499316481029134579550676869879827304153801521284225192856127470460051190335307051703472784947056501251553759144872931809943520845671808451666594408044020766307550359419619117331974163342303474154883557857464334158360741001527385246735231374378275174981204279334188030685871542746792017508136171326355617447947521868392750050550475007766596125246300170971365654706737275010495515869396772872781964257365600488891203908727459656562686636432634533210611610018420870442971884316534463618932418151165619933823782404083733852312330169558753082353561029130531612930285612973775790504032902387103055728653023860613341368503618773395382967945867176136575057640793633132886047455766847791230523732877372429743358168883392984492831946611930432401814970267304545780672354137224526817791192547824492746992936923418397613405951391473653889105578887178078793455180892632013257834516654765731353872185409835520795145360419936697702472433237225047248085020563930583754808101350943324549348532208295975054993716724538859630927982094280172483954207341784508840824572459451909413645252648047545385283550735321203928193112995149350523633170183871045553423541419549589778431312384779655407900117689697931197789855321841519565975023082520817498620275550037397672788316254806416622939114920106814911746931977904698926230200338301111848546249673089012121732124461007370520035236668026165052663483814490669238220180145047647547508212744155050994398905098812496484421775645001579970555766022701997526983561976427126305478139682199192123728578492276125932020371052454076464035974546172917023537240826912363455734039022729519288143489994200266587322774175743754893115366130648170166097210808946299325047446263282950966649951709662426878337653451743802010986246797440753546676123557160030467849097348081315744851151979959166080387681647736351741935446949050917824016791270010581489309817950788033354141914013714530894953639986147601819191601809959013287447697512027550550202365544906238646914635700617798062637873342225844349647695921204379280247429175439850740200547679137341984076187912765708157171134277095519806022012348401836523539703656048705693553382772032870065922387116579503076946026682888981945602883878580834310126391506020716168485849801641223642907910147722034395565133967057075780992759802733286750816486765896009934044620008344813922364241739072773105083589471402134296937993464708946147592702776089065040598291484211269255701002154233220696473774758082681283669435192601598872431980927938814717509269805606477503545456509936007813501984714319326215291066157110920968368606820912381825524687738860052849800908200979958516082021808516868414969550583135260112774199759568355699976762919121665052833081248719509340140665176580822423856388253068597052778067516938957188884808946990713635642273961477895228607136286519364780721494771167304441897856479056902726782304631250989391807986710612233575920724872266837521749281165818696645201391972452753225225237504714889349017492247760599296113357703707608098852449414141193371272072009438548718579748068051876531496374902570657970543312293461350042968591303190448692715688780422833912420816701213302472005034396955225220352530137379138404425366675377896282288477757867175148616484564211694503999650909366396924571764533264338284480670482205826452275157235402735008025367331102997349562650524109148078047955252664081956137077541741402125054692924986485721057842227196877479950314200954833165026566054832365320460338758937651905105237788812587109512904119290508153332936672910921305489670603810247794120484475468574585657643845792484976309843407961056020076589435326308376639469257594823146520492090565524592279583043654783533000538276841978049686878470153430471872438794183680997817898376069546601299388601610245668669744340783421624767673172862769630193580324071599261650239134408648643576677373573988443537476197438730020570848617629349105840195870943862265157161564414302937901517662901073752830946183511205506123542709337240247910232456796535425327708008063835194895452042303179600865524084637261373915855098810044074134799645992357863544726265930277649275128540421246409234908138521095464475777915409636629594342027141838480781134024507479335156496811165876753699923683725439876552692296236770358717016316410975537836471912722038195070949393937694552921786639870444715059204906581673770388668709740548911440971766132343501447692329170626735563464521730967118690272588129063100495900739361449008227766533532235828621331521613601340900625515451000360923484906278276881116746296386093785250655260777602114062095192034424184729022198044107279248484501645757186112318053815602422006952018074989423518486644200587662522671419941860155215709883851472871130892542254778648748342865622885239380781904392038663631153018405581752440497933927882157520277832519624679655464690148531632031113556060461615636221590582254455227803694583514500680636195117993505712072298745741192306226196518135286297918391658475097909476411374556943394863005475680775594296647596384365503282120266561239757266536756241890648051858186179829642099871876970952914263153972146413878010897017928203376094906114977427060405498220222053505186685080019185980239775551088297857820509302377365795580629479068796757248215661021695408001378656487027327408723620829666667730230314540337436596316124138699351566760803095784921353298408322042659831245274964138207400239707879071420123412068752196434489409523606385909679787654169607669109761073530351961457349433699450281823154114351331555619940623935375282102965346321289520119599351700502951633656835661733617584510777058331919913784505640698545985707944191193312612754517684282350381010226204253723727022279518566421731111249587639606528010434870688050480422211197785511828857944822201908295906413261473141250999460939452733263691082874662763220893991965590961776525162107914588782510171072268965660784051511115513419252936335328484937306871971930805393810889313732785058782455329063781363917325672813287148490430563178762958595555545590248305935718243312768879628027886799407629459159937649009489910655713321743260809289389469112082390257491974382126189297604994409485613965499172710102074119669110923471940406176430405028281826820838444706636901495425845995385548494417665106937527476344938736425663152638851005765158279702628810323357404063088235502348716796056220250946007711979201426638242149333710730839790272767532369749195036240997942290385691910924028714601376977757431008903520165930608206068119179534580596868090263696591046402453126309985316695913145558588228849713612626964918496167335035315993229168040700642003172904375729062025240964414663517889121997988766156699665121022051064917727332521438583122700072844956952829749063542999200255639354699688634761341877575522946222762788441267861618453932492941469993339686202307849162003186602813130750851530515870006956793269642195355184622687681287437760386338318390251499808298101059971986986973045458934499416854740183991502605392203684976733554914682218402996270106835157789167926185993760868968430988875431711929503379740182445465515940265973109825433814362978672333270168521046319661136080480579226324024712888604221966537931260922441161205137344072240487342284969385213237348702995366317524785995338839191533372725644280804609813834678327428716805958322820475914593571631770919172218864902144099739263661443639454171394251130804061622685086298856176048664394470587639848958860886684396841948604396255007394645749461210066762729260578903815219555501763332280487700412454492708662682855679501585328271382879831319764391304281010588621207049817013612953039457028414221490830308653003456106861836148629131988571397133983162437353361820034020700289015560872080922324989759227951346821141587496733136456824758588535480774361181352068750982583414097531540897603634733702495842051692842461820491641409164389091917569887674713323325269297751044115444670730919180863284555060852797539792200362558960495393477160337587146089656131993294624893089893877369912824406696434736805157413359020000120589310449858137002739028266540175359329946819096372329882206520183556700351459222086814595964066667774208976191986685837744003316048586901870560704684048843478931366235188631739710666799735441045017203301207343646265040441640553203066426685417716560406370198935304171370517077532126786909540629702973866271035774348181028138559460254608920535632229743928720074993161222753668519130608329018254677016362455901189105895517992915500814588606126996505358461277991706806293610509881847514754948266281490602214726045832176184573082292712484200559803777410346426964810348678221910327084265701904645439250932184883841805728295012215726311095867034416922969013218769429496495823279162178345986565865251346418092050926197286801327215233864305390845296266532417073211119193580480678010936370545356067775185947392332355345195359580288768432284418484545791205419333503102100882828897750024892687707313924391404312640656829758704290060247229954946030318846546372984878430947941413508771519016598826358212157263391863223647057716116954787086925348992791622833351321817962852228463973102723049971254544749564339086591634452392248093990425015998663348255778196276843100196304563252438230689056908901994271718556175400518095644133334583621174016998289397771578811513365346241635496059829323227575861425471416077094821631485023577695754989293908466734461888110944781879712234528346082980324234933985942542455819403113630123031063119900309731870678982455236446544154084669290624497465650195822197629337733865873447876198313648379372906903519788505922638405263977228621077245173523392458849654196685394278940055590663625160882189189490623912855022152842720189889692373769340315457161732310275074373763016731886762139883238467963749569079526819648807197134136121357590602894090168573149288637557699510142171976662366935800974597410023577696463312993992194085536371077685153328205398664839385982835940331910989529565237761581803573073034443157394385464780187241764935036743398621380435255606092789124054163001219517470636663937974471445506808759209862463991334938405600521070995393344502437757554208926150137819019013197986625720159991845595384993678888972815596586921850114770337166344009625318903860968085507477487918203382294748587060777383088147450079551489048566010206787063678807669814654153451597419437084814235691866710079210370052286702052767946623478793346954826355244498484023738068789262949408165130747756490122946190293904193010458756331184105858178462028827485764366911989637759516746715414689684442628415348920665098823023338365482620927264201560031909254592748934612594121165448261900023649899747950237584452218442408176370244221065377913978620724688648600869437779601213303815799873836576284157348089268006564822374600395786700754184339167626646710430326599114892712965444275478519900847418770515481505588177078307012791003468430282400817752765726878940312109376972856369757757042019758497254495426337422220719454495279348890407978759352710206844835229822077593010318601484257162651497431731894465763538125419905727697231860777592788535899407658294414526453891984991476911129083940817842177297706609627689965487281616372660840810948123251262408815341119521981978857216265368807822870300618020122875594030899159350404055836776007106505671980667074469349191378642133509289139373960675937256951963162547618074339776687140516686233717460388501857333605085283662899881529642742901185844140958407253911069165657451180294028850371704424868262621508816459663955226294089355290387102595585870476180991731217935454550486435822402696933855990029117559987478223529609547371809755889207604559858358362489864364092354668568753927558427839059332749209468113885594416318974001001343886738481016724762158098504718637390237844432151802906256768361169625379507940100852451252656509797023184275203096436226029607137844820669723530046367734022472431471334063283204577077959535892996983798742119178194797837995558206667233400634280864384567073522534451782758151307867335353209358219313499353726097287384017203932421946737873076513647480015544707526521611803236838736940582460704856957543506879023549211237469259141088136498704416623083524174912436764146454766533650912234809389874812632075500706059539805113933773331692080751444335012730454157757196050566641040575290736348904022874233463431242530011127103866587795522857899976554479334791180042100441732807534791309256160656201709828818814296403654705634715001230475698026024245142807474617264062004173219346363550086675961987459750837176034368827749111503644126789433426848764859142950821393551229562449825401807343710307169756341335696281382188203012940585494599028480807342928470973024361793124149209835314094400681950241159457885122884789862369768901145030524412030876660712481391532123592037510187903532244106776095209873747587691310900602131241001714531350941785313885089991800160473945165709402419445887449144187810557326339261366387470711505186587602488951464220114113950230094607972175067096261245704144582465491087811505304438719159833931136777863372824723813660254523475491307155464131497558107522788206795293586112175855332804959888871952523938094555519271801503138673296753011640551295860852516808868897897989944281951958872944812961178266876531049983461400568869215901733549696957090830874103442774744068269083116538006583805355933954707294516076809501074580231539856894386972492983977356113117114390047102075646532500728169926329694643001951796536439396991644659953962712661048909098928432776048438600292610369209149969988419204263511092162937015837690034726561959000133492029938235157089013218785719834730773567043034791568803364697662712070438861946045189042969384129713182827464572027771719775816917540565438169063054439404324301823084251041824418629000382263327546521868752559217424195680669240358461097922963109453044707370647944757138208242851793629959380885545424525871345096816201830310085268631287991734059736235192904306560827347965467235208239078584434203096513601616927173543715511319742883619918622104598134414214577771373579258415610196740514497467011952428246126964539655513879476726240156523688229132766894731545350640975048660979039734468310802809478916794658015671772817323983987895681679246392242766954086870087896982337380610211352079975207318367551857363723091810043498766158309037415571433776854098645916166124851712169898188429474754581132380231407899899866916807983461120353204777658097906819141150361233730944625457870651743544251422343227395978352745641096410139423217889700603487339233159585456383990812694532809716452083357761152789224412721863509282733930563869038287395707572746387442332463176926683081526159718283742282753569282678331832689422960347957946912401196081317034531889928208968752349899227901692033771858529444250462279009426837706271521909674473978957177408155716714683061888030905134094924226277821890872136875147067223158533149635627506148432727056101017263965378635926841576422073442611603153834379300429628813559036820925117847380168495250875918982700910525627167043237362259085536574049988327261062084847247780160198347188328426061008064667954243001154658658792653020389429160371078177544377358831864019502360140656294796684941988208566152650291655044596807057619353385330914212489252214679203042129466309818951467513332538950963407498439471828646931672907254659375590031502230095981027998234684776838884737884941950790351158187343497160915908760765365154795764006794398824231110430199555515775691866426755208777111116736201513600021462935587284087505558677377285762414891940755339696240911990372087380757685763312996997904867357943880868760043547128689419520397675412864544431382411366435499823277306514633633506902653269749984672767754849429369172399853235177864871683540058748030109502812090681782989408533194024265700980645692706356445234287692258367422379422977835450034204069234498388151145065809516428506773373384593420760673503204357366214939253110857396537751259996155876725084735536417718591528130940580397267044078582700726136440724281149509098632192460265897372703356874607384332217101305987308146076229663190903553480407375483890173771817341246419281196218700854985856112397261195382362721152694279394452334746460759551301248812478570476170405020747640381340158529851844335202543307240915906919054300552789622229842906555963335974854489987145740325642060610842174777356923005069141828669189810542270154135724442847192312897289560621134331211261119358738984549611102752090722831377163993374370380612291060180724206539817042494943461940271134179820120141839831271001847836921511575395748183230683280192015766757827599501441634016868260357768725752079869861936255745916737568278311013129720116124516263831373719422490570360666399320508012382567338610498665980759558253628682515564321567608869950338550387110140812264978383713190271651349103070671390009701059260207267124806960579835917644604611850502672240698282037753323336767680499649119122354811339443642435873610511243725840676557624395343568206409432306452779573124245503855567685546645197139135921210082790445139575346326122988054164330950832485116807522600014672845702402655228342572112421140820015654434695194653784114349046198976972050175374031218250679189572218985712278680680673185271804282088521003665703322968245897032673276308112016344368637173128898095175419783250937280251398786161403523731047719736741617427154151138469713999945865256812940995650935047337168020880069626276462282124613167833919978420346232909888485273588639074302104237626370156574376156263146309968867948347284070064481342079123230517162492292820709865393014360642077016503757355575473310275115385101825239169852511843757345358725393188667152098465879418093867223524368755434173217280899796924197446619144269157162031836437800085216091228479884321653246191214633604471148242687003588453438000468280347156312940295672530168145708231808708608707859383091853159095846318404433889950362797165168718698150965566590943455777191091724887992618983479341306272838845012070111363670591658586584312118761373314365088978021518411397236602897553786205156969273982320514760044175332818736479587775001667889981341821730958141481974411957169821619155693611416497800229974587769143412438554729614098915036662105742505879238257169855059433379682937286264813286774616953675016188651036585882634822093865454843467212323489863567635170882331523765709894854294625359076039330517011758572232908542373821630740220979602528370975092857129422785160261475156545798986742257846810318458100757175498866702704414128605255463768815278069309628602531801708460973963995079340617511953309842258602523154421034753890271015085979009379695215034909713578982959622208946609336073082201889058755704679324673900655344310708282973014700701186090857659705380856960341160706091457932993170986988632887328402160538014493288229706486490749310996632173095306720510655912853466420608801430253642882726721053221410752631670227904737019601507656266462498306341770200219090660792751086287740408096029164907674675417016425797981404929131681308659498940238293602059759504874532675688576408842100061807290970951921882712123812767082013131142064615182696790142806090609148030832525178408118852076330098582422948290987116868917819066351928232324056675496068070275662848368310352341109655374303014967338542144032364090167093437705731151133863603506879340997832874388018056979132247936735522807314724016620740810314870140166029662688226634060833818624248651347330354223672208909246633014477589382680076284987445655383948310689636977486004442956808435139038200578428022761138558651689159059698958493255310608766681361640852168833290842622625438880014692633644856931136551138128526610803486070385583954103627780657283302617214199643657668209951553541312797857961098237422062422575240583257204700254950238053388251291976604851005294292828272293638192296050034536128580299797118182846004757250359554292307001789145712485251069342122430439031455644398261110910031693669813425727027764832349703299865190609172531894419001361000057429130748395909196967550581423930158223409134771158287278685535072390416026044915198706357980387138735223328893001798037342839121820460301959131785428276510410914239870945609854649073966578811929809322321472458902958954256112342562238045461470167622400221619256476599583042325070997208012762662489025677066220053788749370336419568025558908796100026703613472655320833750067230923650145882778275387976934810877785710417238089442597793375016251743814552089720840107851174294620009831570967168501606814225861654815203057313862348640231872207439581054323093146382271934949667798072418005745039901451014210509582267458779094354441112231254468051252883655386071489968647226339496048564319680950638319915258782938540672152078811828879110126065078606239202726799699974273419203546980493654102014692795401025956621447785033711226355307867095289042165346907844634025524829183585942760489412148519117497009839963082575099442761649751080166617133177881078172457332544984661098060470889548484646981815955695278125694169116987433725334672396532891490045991265183914532244041637083094857595518020242779917628059499714064922758037247650488523387719661032024031030408343881649070731242383370165421062352179657530865936548081024590258312854054694220825036734221781187446554585105885634166554350394296627847209766237024489051543337622974125189643706564415051086423294981559910803370026045425173988879585436632355256346952645128854375049119626742673254816759526512542317133380639121896035777067282032969081567256023051208767861461959500608622595540254513790783017578920464147313901372106632313524084272209508130351246600375105111204594593200569874139477299486467233469875219728240182028881682782774746393438743842225356458916855849518683498268267588557229197834676460699710736152565097827043526502601150334412195197136790167445518543178301758034477229964908667138067460124523233640439665640746642785770194442358314135188154821316593710012206393670878080180202866080451641640698214998265196846913868241065689855578385395460886574607372117739749771458844699330999339669778236730246446926426337990745857988921300349529684553136841792299399750944422134509788094305084986984759757774550605559291390770197562165501349762126293200186272223247715322673157608559792894839954871255199844843837018261294807806641872422897247248945879726624642415167823690676243096831328440844504209652570325300378788308753124341176317941686555016749096067513510392382949022868903160387599692252167784922982400511385500973203439354000687429519789035097793270208632620147908755925010284940164382010309336160652402650972083487299176629497885679260235846486767334325894256077849682212859470772147177205417998512625489181975906474005386041241469231440741070285872314600031036085777837599462317044685301470469163568674579491185401484078739730301749266407014057295131249346366248703290334050925274547189291299236860794570796159772329431491278428219348560899020125491862941171919439356572877112832110610419348362108763787046907200415565966718001361547736288487324701429356531966620847591728317467332243807534962641603907481021038700251412410069822444397413460446802175693641353529738673704375149795114672195746288613044831306445304416416326793155836283895024487701232914782343139358425963351220237467783600335587192616693773824065375073066189888726600817829900378398192118827081733396457643744454745842105808348948278084110722515704914144309619726185225460112614243540348063028732843104594506437891980585390039663892695252094844253614150883644395343477529669059037109677479885473214586666349952134939951725015946576936637578341581828415353707913845481621430372080196469392452048263660487498369085239861978868096618589317955298355728021189744321644950827436603535684033198150171767865760265532827363458505172976678804166393615347413265030351911648802182027866313090948434329877015903369369393420167449292195600225311469817951410678389375820514702665537779774035993112368070585352653439347939839597415522241592895103723754601546135683352688690918833560167348038975719639135285332787636327543590088150455196724003040530600835758798151270694983912917984280372175508729436418234782871257311678724719418519938733178914055722621801836899854679607731599200061044233471794434594628633214356568178101448927930519982503737409883395711397485179166353128177506890587084455404263918004646785986012540814417984703704278256530862676581815344886007013425412480524859142111535183261426839747630934089752211723174845602802670709714107290550768894852748990188754748996234388153460027103519401806419760847296830501455980434154065963432025215965562278637339681737414599863085353516288700498017834963458203394191397562529776682618229488469032703358081866720390854236105452871250095999527327358355305908771620940019706219131761798771645498894161945382143083439979172627714237373157947399893943775496610351365044696610218471141453596168555107964471441721157196443690264088694923783171003936691011067629618254720521160832955889588015733385090837684080969939292738210634742113537844606393855086900264711793163273010014164566946149199214471879096254194740840887190631387193999183708362446068381412413014426078732368997231944489653518814290555852232284533435721051838437983912556103338335707694514684069468956936471494281141588562023217609864745490902339398331810205387493700230901959579267611883081864442391320444851396084802818033055708655299321736527677323435235940052576253345252772530916057102730882256198061240282710953209597865200056349310422238661732281086423095150027955030634453480552508990586456705780484142833845436417682834864974530910709540053509282264976932622146795036504299208386765585175530667827465241320579706385737453520816317350245872216498034832600496100237808920158856784504305497846384523446331967470988996079975306017611045410128383608896507211068681472423248415685180118045542785780201676964395977161953558874375845296655424587403527782219672573329684262042677173505539427652318975572446904199753196822547996078609944579201004365074105343214493579701064312634411530638975139413802763108365284872554225599544465953481626012193839127239383602161090543825817224504906054140412917600037042626951315645313902564199790026598486037459151413119434055867426721363498122209549208076543675419954621381074886220796054495931706425742388352390826128804112051012264474851030996179322406991576502389182428304586978444468048915202304639944399387221647202346246469288798062889758548997004059487545583014454200941997289708764175986158329244292251043812703003806362052812881676016998625599786444345268946517583536933446277715807056533349923072788810264766220960887364894758671022518819437051058158866732119545330330888520192948329643214193394532155104580752828936260882951755024552135250481816354964579923824912076456758174803124758492735746137270636980862203370275849893143169097793273309987795428144326728901960562103021218243478444521057040550952392775936378210057620475769709201324812768057136090990895142297470422155146740791318522973966761444669446356608702862291251924020716935536666187379139624423475511586485456327558111728495347576252056537088757257638186218277546905577996547076647502045316120790838915398296652017833891478876168291041950309390268982062718687213675897162747461832524102114213689505319589984323915183160968919348152087731751909629206949666475213582045921819735431239203677360572382916143078482735924032812234645110443019806807398101450143190143051539731410329229147760967073757979040367599827245879695051829153889936897303185507246816231257323654407055774215676959748534473322703448581569285952849717337094194568982305637092462635775545899234421549985496241747316300031932109655432836736280397117952817555215568363215497486765206962571941177049164378410399859877418425322089905659856646370055812264087685938655995143736892489709014538488399349843462135459009139122786756889557572413092578508141875955126414004070806998764970882610192104548100792452647722946759348413292645023205016251339945795347975655648851793317287799210931293287428952210219728469598186728104684475202599368164009369465980264468721006789757209975002657430913661390874847878306765766052206219741370826255047838376554523575057435717030827424491776023315823019279019189348555958653917057551435172834665157185004531835419110358306459382195715437935089270306055065877188191825281196540203601065514521548217819148749747396284551430381141889031935112167441178708335854477122534343524165918206316188608775268655837920770191505164842965904440382283896254388733623341445773878147363888410349053582333665943390760679815680740837071588351003899201619774251015675274138541173206480627112658820903260167571603224649824109643295281504784996390860723393359446405498882715344134493456302778705845453864851392607163121841099453843422607695809743883476803655519835842996782298406929001401704934870120079573161858351614428206205621783528776768952897264902049224558910032883613095647443653715127239902390377513522505138296591502764296438720008816620385656488597466894391998636162933298893061012646198899892151921709375647801030123891544059410177063858399202746168252564227137300781388082318026068332691045776799993450789392729667992100165685355476493345744779968725575711579744846698555113732614924891789153578799543243717545475309002457141723128997930291622895284946591316277929193174920041589709924565018294491617338146456647008364119600888301186205126510584639207255669685089564008637812092563197962734085256893328504499135426655820716312440042354891709743517003496695520065825587314307437092058949338663015364032260129879251901036404986599837812603360610250784341173015509284871767708650531510819522143285285715645254141153095664266049633084108585003303762643344958152153349639440916631024097013954339043927114696374514391065956292542883882464641196686824933667399017008834256782136387429868395242740701966506641660731225245860986064696977953486744698543818262456870366343858780668530515432211052497161109174290377040079374596020358183557285339770824946955035169946962000878040668591470564931756596349382058798083637854266058146040281316601434583764659400148002058308208091793924462103682467929460613580342753574387020641819821687102661404356021783119380132379119063060530494623132060950412314946821384093830854675202949166472981929613624345863019281652115488357730558606160670097795714141400458559010911380356228615952466659062852123814246342715127263373176823673834359128714235718595800562797644444586646452387622387549561134370958263818087224329722680769394319094999938960032199246380706748565965550298032253890120760006794705237002049238515048427772381791686225535321019743585109043351122164755162535859975291762451009439920589287167572506440299878580381043664595410703746292337348135241837870942570145927811704342502132198844204548388081905203503159305264186074324578525449907454945093350441421065703052951636216698486398195942649176359335246284047774255865968508404493160650934969429818421409859435201146973993510568355028855701489433845806677570796443587415947864211220072447552370483524148519409534016287800577356563637274159245341159960173850343448973824059288651141201989203901402488939335970541317524873846341105017629597851239127510320171258726344389681465653421340408430388362744492149771886905987152462754986569875567314301321358856929287579673340539743487696215800148673769613694360326812744790364567257475521676022441876592839720012533071967752323826679969048293260435294131224751798404999672353733171585465214750874802753381244185464269167998253613141228351532225044590194513621080383544039484431307622716164512332464230137917565045831008660057559857348757707458890534802293787532285986508572291494028355492251656516551476085591545363886129225762160015088557549717838161570209431233188812382473540933690567434791500441632594622701786091548321774460058592186848042938162461690178130690523797801374397515303607626190993986916004390245395490992309409852801801944328148984918820097378352907465473069575473162483479528823080283975093494113945415010133790290219253498608788968115870996120241286912433188811966471357321122933939594504487723274980301649555013618851007578596111558972450278840724648114776337567679537434215973288070535175013959281761125164239703852852899574352351023182406735890803621926549589390792037907727074306329863406700986397243257207485744379455616866663183575985342521319572629462650599559306640143999706118929554656052933238931655317668435521235854166354514887003542074471067429140356670115247959776862355386520224019443377513935338763970241610908064216346545708301762312367332017832350669376091360461112456767133722665771141699183639332677002230125050106635413243137190309628229150644264095702125717637943564665045213551482180802356610477605759078338738963774747453938128837758577004780480237375379710389559608823406405498164769116190327233842196964170584251689127312198064069237483259638740574719768418955237097969132027299182125352069456029846289669247518121516215932399613943897267696776087907898987438445274605197603500878652107540238505051914217814252881941917959465690032288319324415364454960245564955128390006751338271380014162127251964309878251773977154869986461231900155010953345328570594267894216116449817829188032218194551955569845756485454459282163830984674080394091815905181620253769390636346881894242477162140931864330640283017172841876187921387775653656308683916609948793582440846315226680991429176716291162719634245207688014497092756226743536843397270601257010617722648818828078794959625296240797351463311936945061327792211619307240776959685047461544537855869674622036520117910709338993369649919634773105026397747128846605451149360832525890997589214550698436111176798340971435889966200241816190843638785258660212009891602736681221480589673017317114393499854527863951665100095865558957907384462909153959868804605730268735535934139504203885954164029086065057471200627134026239761095191301729724671449559012207885398265513619991730068384498417157434185255352012461276021690432508506009089467545122350589163840452890556113316341189973296612831616439083090726054728844423076156825008317473496616818973295979880282463814289347759466854761511087161879640148118139400383331683862109187437059957311815125023963609496203730898463912473839246981876004385874233758205129072179747368705660392502045363599102655667499482348556358050177721790708605290676262388254992944148252934322437891898743978062863046652150375834316484973491944339101574663629588009002891169483689269665887305838326639802912609977570756103698869485943003608531833623571699051415736161839902472519168014965261599260002332088928585825167353240257019161168844651219343318837787181299044857796518356941509583577686031785731602622053916672128935545631533376463537489200593682882621492122736846638573803967309529924167876500028968261477124770813325815055928091881589609291841594186742617526579579887667542357122925637881976080232226034871950735592095512422945819920453358130152004297788095675201490805957816908479636583321771158318933719001081146108817559272722138636863008509333916664206749675149768278029698186447846637367740098093474896144536453375392023852050072076133606756244249592832497510216741949051200818964236871572377104138447622933348472461551814470132706975296527846986113522171362252819974201535794659257675858953755785386630929675805729052443686738367872302134536121999104683361184589799577626695797815554945863540021355608818687263630665871662189276821838479434853446229097494316846565123312259092630901375939278188083011135997394629024613878475772034250880945477971544935352043699076058496870178292149465954297509203568367376191685996626490038600652371681672987773039769149806109052725358053131895098599497232542342444373685107779076710350784710459288842512644989491611386104374600553654767603575550228340421762516707936662052952306376105982881987058845676722121101903550517171621246968985863460372907199032828839812392967951982453381550589756997712603109527122650225669647164154538944848610561452419483351092294442595272304937389349691952189224290694785087526915175548721382289012299614522584715625268669458825377926678748289892884059910950215245976402851027425352501274155148473352797508876206651485337391790836275493611001454934419979689501253753379204692247779487952322287953665777871053874609827322476380287712717999952077591763728183427972386877344642871785935940824262487031263826659172461428014548783744477826442873608240211931391188240188974599753721765205519072671913850027368498520771386412216374393691597437811531572847960278696251041361034669395527820618167834878134328367420070027396059003894235966558399840107217360004129106884327555459445618106895574157338123550211484129985025009309383391327782353576170010256978572455061317938523820604442609114760976051049632911858568341239614060828871763534134781805946379103573464139199938245333991884764830134430462884067524931941505355417999617192211369912498120813976729156903370362955284708545336839424929520831999116592527389844944673804148898091221886894052493252563640010372718242178338623726000748540876409783151900998372603051169085388621004395191519477551703269991038876922318598486535357717752623290705904068496282011066005449197447590246894301041411419894683873779841840309926443553902992495333151066616208628265007136443445279955842943826046553118651239613045156816059459185827677571083610273429794521771393292337791534983077158614800271281773912039409729821504770784157054646050617492896875846799559534154149931871892168241222187008256157926788236943257495754727598571631905034476037120071934052335225261936348084559879214090929837670422270073847896762409783569519757809965789180971330347902919240231136796942097708433323064559389286469363992642329249203563870793062696912362109663708600537078969029514106677442202068991842023045025400596338420127072292476880416607985412077472355477170326105100409923499522173759435269985865781587653502038280496771016905091115073270290206820759447612230842751066644473154092592820247390087167424111725948302942742836119160035143389525866745962004831648940501308582017500938198794441860493841794712271043768658253696235981483336813510141396950867053482211998507206766650303636590399925463743369037447547800479550104626869724377351579060716892610343221413597879026311671164069250996231784414826008775556203730175140619494277152212348694429557390758569849933586052576559046495256734538256604876010555238830950963253496555537575845343582704062219184127290718793042745694296823539924060682412668783619236636312231582221087965965234387111823905307587584925156599494308882786190274878018515966823578041221904043438835329952333283248758598671464686756460658646190532489619144540430794499842116671659895168973241254595724889077504329473098600801492597052756330814970674808731557819045773597410423686607829826592042844153426289521003587049576292284703874647474397154515785057676606624598045115183985422095847500583558046478372874421364601540540973695024855226114779639875323545183916300241800347518655060873019055609281640586310064403592611593823462528044289849824478850027467678150154917233829408282048555711412128482566691813572986357491414088528522341162077176880690402183268333721351074530030421756686997099945625393147659744488183170601905858263181584085478613314226811092289297425082033169183884006399307602135650471417356168914179830222682872053245173612285417054042157766543836171537560558021874290110669757740742990761023232995080010096646519917510319428186749464115140016853721303565622224052959719233844678055992946222966496935406100999295078023157400110452039217449874285474148737513655820311683170466588337366237187189793830179449400578737187219058428684836407390568336561874397767609126215713171747749566092152261607662320715701318487386383044181952212816824554389138396850895582550710098962950439959286081716813774735392511235995158839165275254321264458145018722921667818915415122764868087291874340222672112873152886882067049719132119322565011667837863080751790040100088246167441711503257966612203818407392310213389712831028074804660729704175222043534667390797029758631974022281142758773246684665285796245598276123937346680839676878006735952419896004952424215089666293341075300477882838891751926488642383863849826863353495113140518176063822394692663656838820813125496695263979487917723421333667516068286848301775955765147428700638932100351646927640522996547783318355031690421134363163724684918057464708739861873789189453615291589379565572944445502827172394575406132279862040892194404390242575603879544194705358886586180141040033864694831861772583004588366379672429547305924308608945624057010677178208909241147484370786007238882410555364550798121380843454137725030191213388039107072851823428841842743596289977324790735963462158348763289312972491174030745050146823421613395694300759546433599200826500528439060462411309267470423380600168989357264864387849775913108938006895291666784086755427946343564397419321758431978584462320891040869959497362359539548620448003487244590934353439011017907691089499540316020382674465074285424207457772673370221264314417623797896803905872096758869695767747182348912632450084509824500935237620567643747233621342354438970086815799665690187308986623374706825858307327956633204159430695568895220322217153543599664738762731428090427175176783323983644567746355832627253932846935155406264660307164536850680697857006885430486237455269500218612657229538790591522139573863630126129873697143599917756628245034166823224626042917162980732949176226766976600240358050812848969773188218989511209393545355049001034845279863382684412970695108330386331795237494934059292183224360408191488729273160576138163431553759135548895244491314315660329478100400478385874726104743324425245050343492781659165849792321381952615349088870749384132165771126186549864617642649284373088463876682565940507738239455599401326564169478184710008896316336134101100945389692401716063968540600825722926165964207489115932404516947554800654641005498063099842650382665818471816941243851150593582378413741450902836128507897254610160774566140327512029816549900365207320030061324279620963461700883027255564874719893308275158091327306569740110617360923967281952791410421044327687101578627544353266378338149779098765020377577273562247573725029007214455709816493464357205611993131849591840066727830679793288532808433216259185351662908526637847325923388454330375078250478604754449506474596829283966787312820870469689242396949863735020456267761309833287989381431364302084486963716210401760337760238108262493050635992063070573933876470872230458408731546985938847257472285881148976178015208966012839224720974170631489047809282193484337561560531549193161276492692314692478030350013221089768533540149678275615631435157051439710133638070789005875829297864293285015079240898459303322929206678484103407300527282549313163493397429259029639790966340061573641553752710936562787442508461037876932408541877534019131128564010468754709550420743118379835786751383247988224912672186059239951911713551143751182082318784418210320554190821653685167135511568373145491867782008155967235993014582417893174385153671162059559845802704560425943970552989756105330697949002487175538717612531626602090645139138357489318633657940888833402830183190641499054241597582547497862185810803063944701729829814272707130791247002350825958769613815814918925683666903872239482999206235993688953306098057227533812673928460088375152738561666388368453857654928518248801295994376252048689142057233962172884247320459354251890835579971690039923976818806495223587653149196681203971790821101019829283640373835702839161632610339734838920449204945271262488604455754020831172969217283641564800616435845777230943369930676619336690477244517002144660998148662165392593566364490116621302603396581854151653819376153665817012813430165606351474767211874200129312097222856597537401194802062815657324223197256910348063563887166534271626281358063743731203391761711976201957211810530227390494389375028851306690480936060267444245757209538132924922488661221754314010775560023626046400778170578721465084028739567286315692613890001852463964957722006950023348287887555313349169227135167757547456901363433921128527516152697736936984410981419272675938297378267704398503672706848678549718348699646778175620339694750974706280796477749029636700441961858346969076060060657338740303221311605019546449511748093181592268362161973811718407733514776864432876889332862222110425051602274510543339824954923736858239417111153006059559671309778809153055880003327463689998353740952709907097671778620868732940607838379835455129531140571016393997616881829234951641352328489557819260488020916298578675241046587596566639403130980350911060056661853627872492170110988802425924638271637714826757663335888971636525152513015397119557957322042428238493128112808638079481429393095587421309997174017480460754924556386356898804044290232884907760235265805029746101249248140059662446275850500755652258983707746922402804633725580947009039436107215429247911575467333917751810962793068235493843022609576195028223744867691503069135114948063813803750765442998165356680127231113691986706461854366090844303643998467921210138619235979418424921255600708899259291175166048068622416945688003309264760568453024504342330550678119291953437683977551351807102253320386855558582011405214518484845179031765118435746069991716142222579512360076158765751315112909116517879723213999360781281856653733338322002981462609340862121088934922239903177123353149161583837093709655991633079935397232577653491524786715391848576735505230517036516145170292910391400534261917425986295565714620378146872334785150971286349664572188552906204635447304781271203576469313240635462108028239106475645113549565789055719999651073135162157921425417274979896978383244766357901942156801725375542293830532852942311319404020453335810904490066510185924428869408883844748311357419888292652274513878152427120154381230849789571476656119485525575959196011897707387619153931868440104821322535436720313342084459084533315246801470067109705267527337632417114245465586267844512762458929566061219258609061105647720414034666720287132302889790523459875626342474437064031559964506040573270596391809907315477493717553202400603004390037592143577454932875938093017427333638053226546759563031143980965857643827482165897571308480505530095911748362066609041586110028035225561149543399371860614538395879831500087265170104519978739234580332059376204527915130759586392020838033056516624786417083494055374858269482435554468832221154253760101325998184575901841895494587991590304919679399320671103706647099629073056785169288906338552139948233205146052608276111734972796689170881946906840746867351120555363531817160041205527169292071466438932672011523094698123312430891555215263816683974171863371659748093918337379595856406754778564311700124942018272187742224455260240287736775021383006726204146926309906495720498548603498355294617918293084638778051513416436614098890002424008381580665389908902598196008920875042633651215610923849943691270849158777665542633738190860241446193012991325486819560510865882068664564984776618004981287178621406280340324362929718130848695306504122304843285742931821876734938539968305876417299231660490173862625822387393109227987545909614181293617222877793069579550656777727065219034225662820139237362163831383576072297560220704568546530058027036116035669125649493382841493294337926495723690858596124282999001919811527387703282190794191963167217429634954404078750654529901762439025811955954575689784826557978586772441883507368914768900814508709339793304963159135578743366999347305847273144506752866962993817353588891029345675161719923591604661378822691193565708164873351886467805404569693183212986263816725928701277622328884541928235706729851253808790656627371526920111375716596981176974123232053608672456726649018276481007461186806572745364280921559412849898423712979536016440817254394850848479667297349575134104317299469080624927396926062234648057212443749594315171133557897151596148501654452510431045819226443276328941899269599899480478621575179214588663501577833397690107260246663321057249968798837503884094629411277311967981258995804605818188077101729512445181236245957683822303461377642457915686533343303606497440891565321030177083143601125254970960834989773619798019791571312273785944142014635224414371029629525012011305054151463567679351297968143590039652960160255634888321909091163010216014259012356517614794530905592512841863981489163157512196236644411578613107314449523455455763111806582709862034322642855420622686236127127839876359544795400439890962363591081336191973721748633434143632659042444650105731779838391156882603576972906938227287634019396627773483400790277520611480986907540215533126072163080386931241977709261250045929530745202265832782108367234203028671363337865562539709547053567923062814924997765564568466284856065387494002205047012734697745820803040721640554801346806140313277661243161830431346437583815457278241689874844830514364560784517422648145131289174305923172310267682702548897838691241015895265694350408907325990280119141179054570328695648041857421310617220978825476778311219256808998979826412082580895923283216546873396068785109402401843157848393477848949135370123344386959691391297620715900672499766088938775952044439142621914024456470404216618194166333065288769265303687094993827116131838678115950963968732794173320433284902777904454129366965589400913537669565113627201331263511717470112964443965272124061696044389133124461012908992126438823703941465332559478704734596266849299854081871059210758979676043443669345552612924545226746333061245492102450958764245116532963371951233154791939482701222665444191287518456732412548818342618098235975411156154386389333268084004214322110456501848742286909706402704949395595235112216162100066559007673024530670085497609504096307545265677154912009932154170865166401000112294021383186541292968299453751030405586280823310323023002882401093357382497248303459088894246719429246029798849954156263185392142699889261185517744526710143474446436566928085160698661453592481426388638333913114400229662381602878572945414442116211719802467445907204951145610599874536272026202180472935024699659391635235975136764227031709052719015588793887005925791015968703100448287291163981788802436778019841605307155059171772393128445056142719033717369472835953842642992386766377952442536885325339266267449312602550831649974149747777956612762750403819063920957796203406489856871948056495732790212362896078871787334508394331242827225449687990284572980759904478223447323596946600623957959290950842939482540626848263167986326220011753153888516188737009668917724314978316177413007420584095312907336588229021724961478240682339050294660125605051757828554870824373288759175701251355345402625997765093412585281292363217394974057062188794998237335333425424122533203044547492310660786237455639740006411442518480377821693282569040279869755538135245075536491549079706707377395476843785736927879640093616098212173292210053756472262930431156827758794475554445837539543153734633777153118912923259983053132196130478726582694228194294579751509914185133159049265718669250582225603391232073228763092111539844612439706338687414794411767317607455607394144376973445107583736255096103093763231344140378768665457598726129264165698971402491265306957876821708520455442141865731391560721436198586015142392907035053378857113086978693055168371981842164304430355450159812297150006510006077706641843833640298636824291734887468328337148032224988532645375297148935719903996158621246950722880561349284730453604010440027725899822093608872211076961140608630120481542034669716982278128014917849071630805914860089364708282236906055090626196254770723457669102429674190086865456090393596603458946426494782897084939208104205717415221250923646205337922652010479481730200640239115779957744284479364678222496115859489326050205200673689148634329080316973822298996387206303832183713444872141352032194452680330908616878436734160472395708093725119139190783370391849725155786535976697685460654680990518508148775542220852166841406253135013049869392694364900165672140980493172796674506318204008447527819200332568824038733348346902210459153531523153213903971206336064417622741211689197165612458092978302461489413810871022688655814053696689301801844548960604339113307653023413864068192553625258822476213580478223543995825327608372458918614566571979959651372693741358442860271274397811593898520314644146639571815418758775021343162720506882308150346295720236328462076095392300311804404127722439162508037411224698504685423401717631423615783034390632327483800835012907553660079456306066125115160707039996907610650216275549892704417331281230518820550473793387381058979003735457524806140976803361034666533911923725975517565064217174228364796858742183949568802890266805621049649135641594853520337375922705008459408920966078171441535968006181484000476290260155978986640101717298122933076711465580081148510592519400008404494213522056544091304421001210672084177801142984539679710888411240965803977583911956150675126425851517691858940514555340153022998780778242668319272640063850421742064293439465943911026016334324592995958191372376723657137655799286041384369516612203174600565930661715821477397595190013539201672477101825695107949408196774682064964114139337927030790985865547620157705478710846721741158219513483120105504172881196120318430887995020230542383990673930215019220823293450694005404303152309147457545708508753468032290945528556433579106981557356384072089222922946275230353236520215538593696129277447937611688760410209108524160345935156008286519049178397925202478349915792867364192276907453344561316047855703097124898895424331040253588999270180746319817893363518417440916728165762753631951292995336405682520893134703752514801506969576566856429871567267180234542133007281404549343219148441370103505170369256687453633691392636217235588604018510567329436440304232683788537531257396590740995800224506393483386754808017359493130309436853350501608176534199098124991129975461668475867433238443648743993605326566161288941281382172988526464894355724125532863105342214740919854114173973515238842420604718100909801725165156658672579455238300556781988899450632643177779677642513703766886056348751353442709578393207030029792435133790117416629702842624006935732374981408603777057559348602996405910649489827913804466000527955168727545975415274999016580440105305941385490941811641919449072194159696149703651742767288744359093529370516619284276257026963246088486386746396272354222027875054260281657660657572236470887268150270628951460587625641629160743900736752878414024756650238200407653965934311854108447417268105381284452974192214342047193744806159449311775867800119111041100164404040407110705647904055419485413385104612271629220549555282061192557897516973288341865246836616296267487276827062687125108977120993414428021713361951397442920361391546219780726764566183282421358901445794700557998489380417378404024431641438246422800058561676951855859785872919280653963346796451009721950803311343792304763542243871720132284508040267472673470707994928187542762719754208660204680692177969046736338182325236196896116050069770583281576704759853982905139963086202225862401432176664494651223654827350904725874915304391653323755745840249011452481986840006420527801720599024141000654135327841863405136688631279461777989729006838417449728197463066568055274255017798470333842637129454075404152566584550721707323294914618947165196998435312615469770307690276360670493959762845132303375798506937045458100214679886453165447216316022598479615102931175435915508604219061792647618839758088514825298517782440954718212124955763047165537982305135611802225137753436526823140815347185729678870699754052882375672470848043894335859528091473814666837549129403984127625591191652577203093754182580254071912632541218424840890037488775227431322618046501628158532104040824745972373844867542507087433132713253030745440306118106177442599679029292625584486432940694628579384445375306832552503835486308675954612189144260019607458230703237879846046224118032481190569036944709704198850024631733397967722511658442722181012626134586217082353432624236693490169690188783063921017156658611042377370405665043809916674480759530125252990317773147326076820947909226305763388637917319136142983427140050930346883333393582907989872520573647385089780332096379979661843377694428142399987005232349918093850147918122568577886235281245122602651589033158279482174840992026554287173248676968506092316019964937160326903281476206978833459231510652069119329061540629960136491816116624414088281978144817786995273249908033914306458028238851971783594730199417240457305729362744543325633303167437835073964527505675887368082137452106438647548494732094500244191957442505720130400837630295864587163362769838834309973798395930269269534693443072611432202347858310426477563476135283952116864211097559310718590252086113775879424254537909771316231036640800705160127662138866455219342453578541678830181394499224625803114506618112709497331372952919411765949894520752559763191063147417101298238128692991960745857698188288830915350590388466551936753612844219829625471495939733205814233514999426660144065756660958455071204956474096493362180000528963415704777826481619265730505471882708384927585368337950038103154987558933746610986714175071869458002524142428005151911315109384131859024160379159912689750004746881917539521207656484734542664159325512568013375778811201530607296299366522958735834547485240796022986775209803336429669818207995386095434514492910285222230906349842498478460397605667024189923637892680879042509288363122051893288419665040996124714674851327260539449500267712198895498224835481461956122602841154097865280212256048462343671352123364309251225297470371887600625125934588065482199381690721802291287417459806291393579545510171453041444965423337963669571277347283951510164220967505681934653380230147555154770051464992755290926605793233683666885919821146197532395991178469030759203442376617501105294750260420323968452697728273559768043063430009935901863657216190314968618397503167783184418149783160126542061652389119747881544353395328879862513729535267301868974549610329626938921779806676742803726450831385524925403346154025546500584361238392265067491331904754023707783863113915954946781855848635093674608289097558858478419461846376595332297326261056219670580761477493945384066656872289519609228311715933353896555503048126528573754867169359467336826036291047956818760943230707748677171474540753815761917429202434659289146625119941452754135225982437663326372949400263336036695115353079886059467057181149045231636723344586720937155073029934266939986735407433008731279005120214147547070342979006026468871194613734498050683950081726734677227581405914175172317494776056862566770214530252590856715225259971730274340418390532050230654478373698801810465341336129676290304852694560564620912108825368512212825509496652229120856531053505039130632314548548460643061971751188724537694313062044052662879125077729058563717222179751884836651767591855826619630242695610390816164686186008082719629970216071401329527937954736754654894469385952650524595136567312894695737432038111131456392477206444624972145348094176072967888101889188982235181294195737295936129990446381402205390158596813157859721215924078374726669959477967361740500072566700071560507214096883093317392310067834564675295527272010667147193010347339276464713147904403938373433427168087243085590998180620902731110477999299118253661665566704774413616707263531398590025960022698532295296280979603156985022747715793447027372636096378078987802037215401724436067276721753136028431236536908748677725370441665976215784366239137160247628238652805829718623763853067160851713624998778370257336166624098361537903056741552424402211386258551795090960276586175115584654342190463386392922441809753614400324406897128090391702528770810903644059655036017411577983458818486884936856322309196370085932583364381997650250814050061651799203839913335167316498553490770240488789268862051492842035304178086286041331179160354340508786760024042490484717576228256362265294932644994565034809967416649152206204581023696994986877785901715998475180394065667294222838370235426144830306485735409788386155070757838874349756635498792901862892110722444782675141390731214370043185906890039547368573490286458005876988482525334842798036164248953104846984512234831861419844318565962719253769108481941903204259634043997444140286457423565095109905969686604498248117937256867496677077838847561239213371228682520097224475667233401163370935214922258724874614222261498960940358336156053551607239268802569621307627959876230912201082076757353427496449709303604087292837777668070128251257822244120841806718012683072366217444832288900745318552232223133145340545735617284535568946985058983578202809592098941351762342550314637415040031723991420142469956060804670749647437487543144079169462379754420617371510682560232819353406649400843916696387626910494542024881932140553743713450756035902384778940076048414532969751367631353037563205714074174041549046275565038986626220866129016871616507832349328541482516430709082102202436851161346726633289858601886621331381775726711621551424000398693326905975292951789236378507385245020973728051392047485518914068338882541578282038143267809501934277442081360898211296437380194012378382894786177653397195094947067993571425012636922070513431862258655466008053732166504319504312161339598447057109237036224995222663303509301400761375949521338564502547971856172934941988032517843244806546559934064368965411294145198421673138716477972027015794336701609321683297070621611111655469880973179081785603494748942517484790614661141365013287921699816675121813861602005251873623327121996256835415154803635295167046694007674603620258908424721030455351314288000215557743766474550242784776620303761115363534844747009420544978306786105497277329721901235976910511101698129785472419447786091222502967401424554865431884931998697030817323368031538923051519604336972143883236390617928933312822494383858028277893133515098275686375328646798203933328049537731718586540939905221879806228437670789643971371930096577542171145510090794218388164731639270759178695309410729921552297825304621585811568305512454920462055355859631936540973407623457447716569297029280180158083789780267199566102249905433271891019685979826834422248290806778198726186684803911263616011636883115738443431290021062583360213852174694227656558114914351976515521968683622738546405323604862249265928237002855908955892408935182406767583067282098808158924837980662543984408877903355784722170324756117553926350445110738351419968595188536018529456419245784191834634640998422716953312013556568768588543133311641103494282892583467838370119178714653366022703063934964450912750244696688791360299739835980192266593682880002730909719175640934199710927759870915730257923075304065426170279102156006682593682215491890772121465790389276620397912467157163366492980834386220573508472930150647296633234621371321934368932164306352017418138687819740107712466141015387666857485630441878528460256951688208885145809479587346159619042050497892396018201753385430613805700015523163861622961261997366508929712144862006849025576111221671270947367364913128119693570086320903826013451996724623966119586499272268053547810469748749544705492062510601161801040482633597702461651844970320571047451907760266742310387829936459349387144745508724748263236423477666334369556879867787841985345328082476080591449541282289520566257620168067868703279612981051661663035801675375706706528790474338185917603474130051441127813104057130251715823070060382512266138262231207327210232134555476221609148432864830721245412173094260226999056086767798857953050547789120876227490758118919494797818262085861072748107452414406587293270434351578975032070258761193622677717408431806617796860308598418462797038246430661715880450004314441380484314745370006238498496361077574211750794621254308124412498265847483472450171168496525567429473810337693457243433261899104028179259294664743263278060199859088516071955670275497401668108221431431046804276899290335861469226375566562297523523007816394804243616636410097326046196024372797159970097890095568069207663801571126791207234596078190316772709051259053961421167611045383808699407848012947904066371290040999615872576240678581086306222388843759107177255669917421779812709200865650084299616534700291235846843165708211222916209833899569302414521809510437681115535233322759680368590167039945867844433068385806583814096995140958393727931376801578741309527260206128889360647278117052942753733689654525277481897557425021970995974873768850578742795788920255905846322307032890915448596826663992559379488548197979241018645950035024299720129487382500169081471189983629524305726403262040754486996927184022408311413226728031858030326438654692408974804209441431950589214011006422416847991479964351030391619441739794760608813432724922697591920222982121552502582145550585302644490962156936264686740954800470149021597505218059831152056170654294642492179488030917160524558823693119359560954632719840443022400636397202301685394127492235850932938885472154495922423162357069987450113569306937762966675218650009343454191992134503625892995668855182411554583648176679221943301371403035057331649587639553583827741720841263595625867949985840356810891744644300454424310734808491120827731321969483307046108749934055002833309550551531878850759083887519792393473560620009940102348075723814917717625080868236274581697029054631878735704468076820363747960565583321406850675632410005209947461335381223485558789508028182024061207545987796642561723592447930498638324044679181541986803358572807949125228760073732840253011981405756689613446601251738012597487349446281042481522125130215389078015278434931977594265514822980394936727404208189203024963840734529072212226759774918269877473419892436510211621067445281758210907577020075510455017977835691116980394630550853245772798219711160993068039892499474217940407891810796320319623473919751919044200381018875515429383905131809387609516489848780012329421359464080480044033676874955370277838277687445401819974707159456884724957871716753001285865431899826912046626163167926324191559392027242885773475014580974178159823508067508300332249473926578750863748194779031929492917952970950430005286696512425884158392097751888752910129752166575605188287097197504258494723013741198168623926102114166497041220215135325510318445542578890645580083299337015945489337462410125978799505631051670874416573257093300031792610376401940895852575669082845229077860448668053282101744078518014065303177142082258046930434238184999551598249606684242515240511001391520080844953351098607091209266091973697884447415021755241128950857226852475797966611948631946759922899079864350122672558064204603329376132024722167089776265433039103421247524500857294601693093699884651185215297908559083913671851487810177113948679671992073424022732669288080868595230252620512571056185226165439660863887383995283824589034260959225590232257353447309375613431732633043280873573673820276896249244120268731555866905291232284388236367301775665533619480564522201979253600771286421438633043429753033082908041788716276682113944960267616130807292657130632319592798182771059930717462304493931522078943903104012265077071394622355189146828211827691213481200202880508453381472275707732618579068707491723406141366427224921714771747738849126836937325027635623029524404223165561621248814874432388940063792098527319923661352529111356862339831800130002195614310393446781014927721567488757707974128785521886784841925340655383470913206187153887647430636077706795531396101341148985212359601705122748562857123798282825162785233278935188976408709078702229829859651213114988877984520671095292262354581061043059746746334118521897067193683768503804583361073297789824310502629183020395983820172161732720096664830379376121545440166723879947812930118873472279046615495121297897919821043309497057503478615638899408212148436476037634020859815772976985580067708584830945083273056231802396340878741459019523982704466697092705321034506133009582001949469948895667674724483265257040401639206315787593939163086443537398256758647283741264045868930023401661097202388219634829272589273926051285829584582956115099131192345579427581719314839820714662938455862063055656158909756920059644264505416562607743112860283648337481383840178618360809385673906084652548658323330198957534310734724390798523321082092072929466457701603296502621362895551594824328699358724322654406673109531878151126060590655893264656576376600655086839584266846813001677405693621933515201474952098524295599969785866785788593550683923107501777835140174743935443060695051325270520319126006102438808385864080891580164112493826517818429409447389952825818025933260802838042557568543503411350188361032152191818994859269539720081832488367324584804485930603703835807650371212111012143737064643126553980190383619254136515962381436617970448646136058449534868979284654580448380474605283871898553919966180064249767935944904743647188547050127226959201788628875068253870736819263878876850087010526792100950513307927560208924170836761199839235022075565445135798046543633566116461563159617850338535346382459328602184877447348073384337090362067994953343111767137127946571713108678033475515893466769240139466620935496114802671587359895739754692960284860861180493238032881850414932901339556797353339208423846826464271818537149179000254104112435939286806293830118574775081354179644307596029125322757375383764842763182235185161802329975910571974401434650184778784988321912248286838691098461137494942973517701541423472314905219161912353025033282171671328141745535324347543786370479056010797210800833165843423452100831965390909502328271596276684140983006995470986829279032538455554492563946704258489810862555678441892817683350250541046061095897647031646837234996929147964192426092961415903463745651996271033766290516586269459075704236111798073390047348382324195612206883521774635761180900175520715095261628967109989182901536909953153463276329206107903426625198200342362646663514692748344572567575115077904476266052095743915525271444630450423292262178295728133929964047358187032960129886017307266162453665077621544133466432934112465719175887877057970950940185782281740248627304879720025144589395260335565381230289802840771174369158916497603040369395857501720088159119731783184773546815863369762002386909793923742118653862099569712928389409454780311019211311133697081395864793713015097442785838525586623789999265642518657664022685801881948162313847523132250349946131141561196064905435431487860503665950715179184609113764174670956898408613771247715434844687192031694658827874219246425406177719902301088053891896316172235983956199839277540380282541144310683849175080397811781632462600507139309310808008687461205459939754208520016591028294882972548280690954376993219165061443027175645129587954049550134476582892254786101741959613862275628556694037709947961549402782835917836518438302096518979771231752764271914847249784631792331780325523339270205219001054017034477179779904865778126446047250912918434277920720430521203815331700740605729493093910331957798346851873849043438729787235671331358478836632049075413884137353272698135957008071319553877517424114042152029427217784110685011188519978905226849787956447226365060518198368354449135801666092256416604292720205916808470913184939777651284953781790466013584730337424291295054155928127393572236347885999784102863035935242547900238067724710570224307329030411812069587630018823442450092906512512778268176849134314341524805002897260421377437481232484388401251340622367511256637253931324078949558454635854777775260975691946131817628704751491760648121618393425289728023291847137496842067806270657144606243367592380484072990389800699160675311232168671721065194348365001590054806595009433884033672438930338771714025323374954245686454381303150364707331202872256767790816589360036377983306805747317807807183746045221210957321811179283091470419229665637889245203141260865742759107158680474980202539340100325887168047355950136613844613122043433614941542878577603975466603077721219110054416761383670027080736248933484015130580830692754245855847920352640190802200003743792656221425343672241585705314591127424831530252393710038204300849442801745141285638937079992661044496383052199285469999731011096363398866094504851440996223430291794718875761161136093342580081438609181343296360673546309301085359621907284991572872646117253295195432189853573029433886661042543981749958736481080335360858761517388870546315710766476601322429935320349428502081432113920633141285738536027266454647677381026883606304054711296455349099129331089453138092871242385401755861948623735484669045964626086085951009392135726942081702625726423847704808553168305428254565654641213922981264543986640083190841806090135687265827524671437796742653906956558371955576214455838777106816944610742173093355820703681914780388320649868136902656295460261110659974588417820624556560753641801188000719488082323036869869455849093220410834084127026324697913661407135483784833016920667085992436714736003806896051768009382658217105754204433203848337889869071525959376043178713482428070826948246924212119793053150973894976528932987219049340148815792716435086883696667391279342946694853812362238968990437766987073982537618166890034640579818589487088209532318920365116351994188123314605961940557940393964044575044490371920745662077390278930965279940627584611946106042363550559918250707273959111243232557189924454775516673449946488911262098003085720145327771376469777153651517933477845514542832463389104022934875050570941606123729257312285496465532542861172512814474819720233824767270770718125992416535552723769432661677498341047892824075610425155111299614080988459911033264715819372153110656276472102668217150684638180311569778715067379350898463566297867004388009776546674421317129082501542792066283928549824740446205230334662713863497535749019324625431367967111283204426513360556357683507866675000109144948167898824230887717607083736480135322903001363033015176757645765619682262595902075473224495156585431819679812304942822483165933509261617061825584325703747349402733992279375847122634517015112824760561564449553508743562785049707033959212461014606576034192780050667889474946675777900115508140393973534894202961854549432920456195811759597144570500492728875296232145908365975292406624970708235980330714412090358806650247163231562928293484656096206105965776689781041176003165773202930741025858445450303809042650219226503164545822209970346745686207035091466177709230150920563413218108585193851508247629257169773590379874606564635275420224782736690108439404997288526181292205433263385680147392595083087357153877854456512785934185997160961268596219981064492914957346523057164320614273962928856974092165792041798636412286590949080864770056783461471423051602932374810870657082982109451536399870240644335908507908857656542207101618573195902020391406322041942356455797059674875976468060753411561897963033549496244032365006044903772386009419943998718813772380141808287672708600190504034713996409985782811630803342419369682412746522010499303441289471218781490025865514094418824537353397685809619735621898400387781123251630740102995323528323493752728011269730492737327150103729913624904427384263133157513803563000060686231220226758220202325382106414329709987650824647665184328887516522919370718846313811035783633063972131927253565395643240289147881704626139351069600150427592119555508316087942841580031402329642601040570951279808289578620239506972770824625122475452564033707871724786883754303083571230669887199047083530451625728831978804820036174922785168816735936375591624596542649849260883643479991520635777315534484268774654376923740531174496691056171740596559610958810401902111277290065791206117865582834719480243018814260055517466538881926304485945522286016939764269823267253334683065253920445842868708432171503820416843043086856713681883189579733683255115750776556912325699950480210658046303773974114375602449063278401906481219626541791818084578549147721515114704101165787268383884996562449267346410175405756677153513647451536531525435957967228882259350515562160814114865103421543709708042374741603100703674414668733492911116526512344343095576794217253774279753098491756548190455120752884784689190446274197462280875425989313664684428973855767436456748058747319763270107524920118612589073967570603556610918632058800713017496738317453595975202881382751804380996600977530347271667656086824389429786938037775976976435247701294995633867066242977533660566519012869289830646369942671794534407049154737054149207710759778159123941583629030695057434358475431444280762254603722116825841491377602388235039035370113332410872359868210808124615358159609041877407006487448528592269375296404609986333725823470659695533754475283752457185042636683775629575680569287213962376193717807163984797536931122358586469667448476096579437377457261496170044822104068291978667074780015149824561167782693759608512339443528557275837873388667910901496407957455955701978333745829707388915143163439216997118153037676754789778999214050409334884118996856437422393859174500997030085597507859149758945136410855420408242908048036811907130735371387452005805756104603723071610572952049571233683588062138333043564360406017995801375552266216176271490826475662475403180941572197022744367682519757448590522582611385659971899014554261222786003899629578977188479859249776845918290889838426715272923798609062091261998464182912008755789502951736347353700088608866399290547177140248092930477737182516695758986754152661957788636613746905846777892246750187659150082465516744490998115993116596542510878181148530187661137224454192722759708541778864043314482667505535526519610731384010677091911087271938551369188611620160917096154776465783600777864755609802379843022992517612359860109209245746338452023158993369868324594513363924081561639873634368513076680528734460573151057598694081409802127187502847049355926836380136783708345716272138044595825114010827583830849300906537181275092509093550900256770368656977702823210636883427335810419041632775555728598845588069930639355883783693850140589223405195159287754687425530058509355020996316670561914658535587857528578183043607322624506207730060031895865474968284692681165748856474794507682895655691309226328988456631188204535109614482337101892156344705885071273502407265645323129531613947000783180665411175169287929816978993500679689234128832469806620860051549699581222868367132774994447340718277984082217346198216844812116492886719188619151291336096906482258210267386357361655734309636181154166339881059070520501242697590974419036190558289199267277472093966399134067512711848221512879906102764607916401999357698466700017229800091118232415136621206448326493802913134047891273184334012952315748024600078817431282717127065695179080641348834949122514117231602100931714388177591152429756990001928775210673403066929751867467727551675177516817329975288942011257002280637365336805081528367864759800876064228777794805213836933297325135532333354837687339851312377476057784962186151900755787642322923466034086973867521308407270810888606499398504551998281460832538658631062999304009357515379812074971650636132069422798101721223352949564129963094321294046632189807800457580890735607210602320714676101291639607087320046861999550822162802649610641458248885742300298628046947894720824647239709613877173791305801174607902809801751181659495629017709155260257422754787873672704113932433894569050111755486029464369408449450431040081190830785372779495963318225016123239001440624247915767843959543505378924630693754142635977900501799153270084661153191227222876180410231991346849176906048635788009983823447484346570184311838961038752547892468804645057731908605785775276423076037113698611908947158687136674208397834483727668521205069103797713545795550745344866886513660685760771380043336004166338355472357742818830220889378358494706572445226975580991104578342508653899113949063475934286820926967784218893708697508982427839993492872491737978505488268082567737801270762360229049297792194296377084621492778163545915196990192975074083156186489930609520437735557189683433366621559783067725567630867691832848898093217875385827207747055608622479897951481070893182752075927230148421413335539838268159432785632681850053258179862482477609711019620077221958833869756801822258416994507892754199528639022297790776149491499287191552414879381160169768071769259708997529990722357610303512042960736714813403825228295239494222894907936185492530928732551580148616501985993857119881423278933488224016237464828135263334211165272089800376417091440996376155642627216752104949615805970943074074156412952145921860813016128113714714481448641954999016886849719874649038143398011578657112303625259508337107055330651432934024785380672754446939140157207483520861392949194110693890039258310224043256076344797441897605985027713194989468647554432525081921978456822460259596716714531618147110221269353778748398611208131502215305551183080815692696038873794702628578556950380495656593751836628641950435046429584593378671971865334017923871153555686941813786792671305206956107212932145665416688596967557633605309378462495446227531159516416715463876555671837734988378422538536664957619666751556477326899044368296226572070582580411729246577274089278955963233351681886470219042218369197394621240048730325902716569409518662685629526728228895325193378478840303898836944923659070512579104793780241009819053888746961441770282771598172015828249226233017244080635414833173831079498837314157843846576941804192492023883880332951368701435646053872244243794454911276669589337188452924017935933841408075435364071822256896668995654613765692310102462075698056744469351640113214003112898705241562025180795919909629926907990108545761294271743337871483795128790712142614177948172241809801608508693848312379868265682358116781677850969469974953451695273017141963662032447058377245027748636904785238407399671835146409795495815097161013610590253883352482872499926813096507595641816207998493514755580444868553950813670211539098132602389469671391221141792115695401259761491052689760288144775610945607084818706270443424811363110632306284690519533106332412406671146533195352616376260137192106845400906134493457932234283109347679984356681898156967044295010275372391434941311087384202410564743284519227167527399205520582833853642067905240502539838781725328438256548974487973338542228442857546771921698138730814365113839311777002262500135823056701709452852202599174035475874431421449889857585062601803553981321195215386503837724076181511330916307423954637570066200313728960479914677750257583056521680686375892996896317248709776018357012753014471054070129560734725825917542036671257377967216880565963711579686361574585734015304038763969728148952553550651957339003347398548065815966845398562326791546745074649790031657375748462484143870932070960082618018603490321191989004804388062283373923489846577415780190635181334758142958701003131495320613019904155593492048731646828414927168023664480458224850539525889415377929559200736114491195992386601282519610647307345826408115585634972045923979428771651572652158033478124063357944043081612038968961080446212547135978206032966368419919320166801611760224325685643680354989247554155498830305052145997857788589229113276198257606309999561464346992891579521118275477428300871090662971354041225023214268779794536168935082483683546977012851193795979577833635829537139749509986035043016053941228735230114744242542833976941228079961912473809850948045200349060976187306818051236126400014707526195169495882806716320661462964738667475194919546977282328627872121124508316444157158003825004519794413275217976898591799437925930582767915129570328651516869423411885554776625051788804873612630148993576055757370960076271805816522053795368631302689838795001784665263283025561517488530018659099710431095262689218980119882424018167625167992562726819246472591177260951710637856586661033420815352462032012833756418079956324875257258329005135230147919137552404305457182747700125361741583151032474643687330299529710489959305198098442040568328388709012220752126633092053543298752079776295146576966181428112191444025868807362460892153644466940805546045910720708518664254700665024369729860435248828041838795070569723992355496856014755717882417147974645565293185782169805545926710517896363722794954819735415280898173246056430424746404058593896532987295877435242816419826675835589367830683018045828740072820902673314135425639354957218321051719090937517238614001752994823600539869769935641535671083212344188820497211479029762446189969883727187233809583319748783276652440827690129209266478589439130996363415010425645713963623602434265331192199751751052370095040411816747579327949232421841256081177294901682431290137403942546224854320247906485384077153862812475724245815541250564798232841167954488916231328165530901507358576586275946505512055529403772917097647379243493114207689918592474065694437219903599395636340603707355258139417444501801017299199603103913938588799918647918256151945842668715573468342346053118351703048736157739703066482479051603202264276870508989118116657799030250287470693015078862511616794259149764505951111326377227467302610528725479853478411127783271893885958884010956589813904031043938147033536059344693912710468010304728617962722868370861736555704064128725602527595862458171909715023702994310244775846402724336063887012544833965885936049732084651170467268488175305765039780337862076910450020298524019475818265516568458826090644813698824044852019293029096236456508532743531182887074638167197537028296476724513035684588320034654452356740224943602974861722792972531220817458523908837155091749362963342115154808558123958762354883638857647652644591856126877477543936588666883789484531919087150058872880954488250879772129548024993437161112533166374697832314568815960846868677601599062052033299619111581014251552627181148687440392142111729077743435102197302656369855284043952174594885848107011541936278732655126276269370220354668139016861263165338843226028913079121346716597942226544117648873719067697276977322177053506782057758461255575599660564788070455616218970963537356592918407271649768144891281043121355107515759445956181126929436109668713411952507721376353033127257224777805914944556250168028175710762785419224094710934119419508292499099569374224965953757857012365549521451629383526249664020275060288527280990353564585483172691241738244989601634629349145799016837239835858103076491638037098240996958981533367948447545730579837738424989091277969866574999130610380534858635434615752222507667005208489730825762785108224910091025958551572368900674722845705506435869846553641833076479146740186533454667913969976025948359930037428851407974716559433956478470187919606809340710738227310031313896161252213894708258074004669803615933284299663369739621516035229142099583953217871423108570355694860271371487594793858114569878530526199857433282551651621674082750779793411752510114291497150834975327762634240588088759611920916697867494235979846573547524318617021643433106440600625858883085956849674998760786543440981603181758211609000669368458819338999228333758650460730854849038186266535918084440804700834841794347891978824841664117410256910120942676791781178827388210965346485967494548285864439242238508383324540354006982787730691107944899545141998812504998496839730101875506795523794828475261701365525017542752811169368149888297741747478275104068182656578397595964532553512094841100831138412777361368569198100337185206302248194522734696908408596234326419836360507676025480368123064168750528645980310788743668574542024706266805442314661743340338093408426310389849858042069681575033433977236085477926454827468231102039474009693699173656027506735479942822776299179772642838712493395744254208169221504896262709122152636353473610211296882789389690413360410918761210929846158649185524439375187640776542276269171233289282246026197089557477054523777247684222461755700806998603402207138679854824024037297808634017688375416967593650779889418151988137217826394838234454391772425706099129948661116595500557391428190407847312351252217447924178607579211218621409995309976153518985412706905447571808800800407240560357187739868038168141295283881450444318678601990727782058449167248530880392534366764209617650491079687840186445937290819229611752170207420298074910235343375551323502189725969727689902096659880423080147515929242091938652842680282806908557937267114352395938787622128726303975546842114606313781767241369883488322444419041920322876018916521571209545941644608584048654145088818792993571423202743904761701473638733440643260861919097508584519858894802915596898320034379496716088264297275961395345644500588385239113529109304295137927975431993714610216985865520926491382813806617482287268954993586640711661494658675013657417594874993539668932710733880018696105176241571010662474360047221088149170376810814936275340433394491595103512691151043900902130083431538801409196017271552691219279756968831860643378735646896452796992738041611673221590704460011922095573742498799249960049326116511892468816325118151167414980482213142585275032980978789394106654437726528916915837929036094592843429624537536942931338995734541948190605147727657663610963706670663391199869743284755492076267693004601350152076155230732709625322237664795802044994527909082678738892424668612170651444498600062757621123335094406243582655818040994236213059348730104063681086500658964085049549571522951041750302124459880316242335237430556522085559713246097294364514864637699661836534163309677320269382578408036019122732848614556546073241728381903576500621261990581194139235038382347718743657622001330905840293819676292829673671587535619111366551862944994802245969909384279401011992139345418852118447931393098132166193801955464213935498109893848663195935758740932430285682602881190760179291295774194714125327971252614710945781905816496156789334190996431335158342956395719757929588838788298303556336286617256200403872699465582400256206317436284351247287109819613065749737679331679251093572042901559198943390695684346959356774726912208178203058927791921290439723683891939996598508854958389542656258557195443541447068340834407924571841244175350806419280512150208224576643794758361462953063667347242278312279684205036459799887625419496402166893907203936255902872188730942523759800557469895173796197887313304212145045809844682355183757614059711954148595222472810890299487634356927127480378339566848660159909725931046748854964027076680477474228641964760795989665229371800708955050707056551926521949182297590587501724581927898862246946404677593362865518241682769264117395730987479010466349353259265514488224253872567579208310479507560539541377307894302534043351449196178685482408151811960967385108638074838008370269518912766319733725842046804703741986930184294526143006073473861796674111872131330823846511968990419498291907422567108278438354672724922222776959543522459097419071958924910059940607097297864316917778947730452596083741903430587238811054235542099755119192586165988484188118030788604382751546545330050074552540681574082474882153687081159330816890597885469771345458130769250956878757972324708577960489089012727672369844251404512580122559065379380715292890697595702792164291492627015735682534590142277075257279293313431960798255566529990620482731706619018356203106736424859486064679927156112927074124048273962846525793742460344658667632502647083908370375138200027667015900157160513734664521369345022662339366609097943658748395638554364061579036221508569206613785218460911035477301292895142589403817985518696737083147719924636386324109344544059877318920024339106020315033383252936418285006566767563795550659987637717690437909535316812288416221499129186801116421771297837654129050759180431587893775681852808155229139303786808616487200924196329455767302307755866019872755430485776953440843452512885959970866596058233315358028999856202574853106631811949233972880741058481709255544673321864937567720121045446210734004980971529589529378398922249440781299596153924074340004091786855014980585979916988690939998316016811078551104117254561683370689775819576490561618527050515342738332179750100950676578198025558675826934354606175655531286221811564711345079058944365178415124664218315353934345641634906210515288825914504703525437919398164702162132059524940306948716401020572843727936081349008354573444270904487259016471329798073431899693666164110944174499447127419133683969454013527964781385924998099646452048219438768820711179607162399602011413943339024760338895765193776685249369410272877437435160773501026764821835090406317450567854726731097387956272563262986025857693619984797674877359553490765074597532237695902656216427668323099248203879891090238726099814752667277907477085036101506833030656712394598218113099751129980886794481555067549148646285425105240640007727332938095106376610132220246844806573351865474620981857876949630807549931070522963950397978753734005742366246530882473701356091370464840391411631315020067095157911922990959812449249851325408688418677575128897931756850279687786784790253868040819834242226636385274243646285947850339458779147279299561302630530704533409529412649353406671565985250847355188170061553201149322580657073282217553841225924583490563324919016410274937839612635074759684677178377391666388533649868481589131049595594383976386971067705110997333880279302339742512220312225127905102009220412598276116141063780052754438195158558059535162734401997151181465757675658122834776055138182450897835650825929490168531951895875352226078418807530660738907729191662828333924783270246117783904168587837352546755201558023228270611429210330384686656288414082839365027802087021108572378862574235637823414157683057210849592729625434408732209907252092218001243507768322781920618803332053056959493617511368638160457583846034401232787665110118749291490169816341988772356087066777995569104069627019177297044366768541086084293915400396531319843364075322838262484999799267851020294842723761021890231621623895544423837223257016198239507606027754591956898426536457175162491508750273830974373428583310921061799102379814295586800425095705461410874990747349358907517575801465871542294670594152794860881308803830649807340378904430798509590977724750338997539046771186763491660804257619993592799135100506795335574874607546876728560625435353484812424534222663154112881543025098634697751583619772112182515507840656307994163279168350797311255711285383366260038461771992779091489094939507660672542219612251500866489153308380627761134454023187445009324279704709736401168260756274574800665961572517090224906768813242266258702803496872132217443786141622039092069037622556518329416970097865854680713521561312299122978367743116868989757347793435402968942204413327629918918288572498800284349431773368437223856714622235121172216977339267074912905238320495858733920771993901647027837064917060676594075023632726187720323320580599693484908890082933703950513591669936414052268195268880583509254121596451384773707182186486208400057740277319975517011420220689136588440203486314773045231311193177000064245513465281239221113714196694855617640937295177666406387088261762748908189202671940472527916628811969788076613789831300554761044847557665667965549683082921392342149020984733591359462360668752682559763352431911139755066443580066696373028048124915012291572953832960562845455394463882365454273426248868203628094939991536430613561272801296892865029278141210089849865317379311768404146702340946212920767216288071563431027662940224638931887327656754023185342936267423209338602032696700442885795864786994558124672223131714698677474043578431675959328761279931363471845682212317222501232204183236744583831434440786626872398054988088908298379074595089139697581666739460140260484719187566832772752733381478502450128438970384933653061942495890352276243079308328695695841141788722245997927669031438136735144717283304306163102958046967687034175208866268295607809192228233231420485932686358330913866932626541014586922733353178490037160771481906973415847899221549166988624926310180568603224277197243012879666492358842264698186799524428488364544094940659631028171750336052162610052334931317762370690699586891119979898125810277181631720612717535611263394151803469181513023869348874430403984338173346868102399784461159367776898160186162780982831874544918442205949255419817529109080023972368692565289400511695365530731850766028170464553352307779177710458698403402025110646510771610425637140786298870022881410611276625884311555216911213607351464074857567099023117914771199275915222409106278906681747860939186877598148840600494567239985325160058640761429871257361677456973869549301100479700838840462884583957623655253865891384723398873666699100917063770958825691371582078349403655899036908635315353365868953789072878264979734291310815572757978415497435028648180107265456410684087516433928230674210631317131091015528193142522438068999789078050061290891632298588952569490224065200551585650979077700727560471974896248385932965937388357430573894413462762721399452550944615416068049679892293644264705868906321188623461156953560465879801651555492585201560800841395116188193888612181825829961434884649270471669940989641281025676317877522207149500139251881508045949057878359476656144094202750936252873677069546419196671879885294215049986755037490826770434404402702511332894124661616021931606791353757369586674829098488875647405465279908888078944990695440056907222982891021912971124155391195436469193846400788473606194667953671930736478441361265904809804605531210556603011625394989097079857798085135845244772915433918990495953504198780591459941624001123589833311254108788148751906004028219231273950927574829311606036727618413850269098537895708779465661024543529877160261844546919828787306473731482511835589546027857254356595821919796127092140040669660731871135068223998773003166691833644498556281698907030313072831201938726232026524865920166551527448530688793242182753964178202275876092833034839769889153139254716875982868158061702319029462515303837213102211064431666481581810173082113178342085500601046962452638637798461323830176340141640614174224300504970292808255409936837374783225202901884248730162523272736905005239462890328490380952978932818316486630128719839326324919087055443849475377231344271957085606776295195292893780172928236796585093786305894666749888380378803564918227432766049269266629730396029527678577832953127364770132001123393542720090021134293550178508373894558275021252320834120143846270321255257102382922215149946445205490100412095510418403007650674998813504825970111662733090688448235397450483916145512400047616634759106117472875619384090096631255836373480959311336466497482599407448292326772502215417571705653879878558681024396867161081480639557554029524170338910948086019554203972879197503406879247639203952824336165618526380155619931560876849824848678871878283607475402841488352584006686409873664262934945008553221024936357243367756653415796979823888166688938517768686313145077731627538916461104190147639652963536740382352615420843135438926217253254081846577974737669991370577882784626511099161915083592696312083444846459840131248822487544266304766795735040635036149838694970109334312012990732213210176955129920089434385472694224964193198012220398159091199694301294349249559438939460067668862015828194931037384195059100737669431720050068751601435483160557054084278983347235637451756458607335247255691056146044069296716576260381169963060442500989871069147072364108243873511431333564440839554318613693226754179931787899858740952058768660475711339091307131716557828431139350589766166224817332631964109313627070175394992127940495230287551716102647026855057876046304374688905288601093432416231464853111446339340939883423776826385734425190616921238645140628814324171036383843311215652808488437777439591985159592264083237927364192399105853794568946227346994711882431112627536065162756439842600197511488961311490424828008473093989179968283192579983280815408782022681562721143955167148125519116309779740224508978337395958497116720454391881755817508551085050173686066475247547740697830496161115917218883072291643266602739103119101699851882546303390300734755011994755437155271518461500250961929162273320425117670148479222472794285463749988644317235673835784196898235520513048976201997507047351293098822803857010936846908638756412721812275808136552781440973841642690023613185289296574881441239190034580211997897290090667132625922802141316923668399975489663978873111947896175555311594772763719496280740822781465000442905116429930067138176922509340324464463006487134058490190296095671860260746234878361671781544537655433625889117619916532651558050388916449320764101520353899282732895037394227455836143571487292104080425178934839007502472941565866540020144850441101143157196468545464391139496762781997440671934687005419332759728860250614830729338138788044468935479919483501411817210747193907615486609003647930468327781349370614997231688158160051851210851926720866631858108155716027051718647748128572668039978448510017995991515803187568356393306471139728128644086496966297113189846583472076883851977311350417316552809019710141935848687342839261417816583583421890237627419659988443581391591303768148946240432503414491761767244352782903390690731480667347312466485447935418877290172886224484289164922100255107282195481404066069229991467468027404682901614983031057737563713084129460032632706385083427225839070257893666813433399015654700208338592532519836332762452076229935360376673069551980121067901325942296969129185967962212969992913612698020568945841657866810290925711164036065636038185389100909018703894359529539499946427119599755933333940213859962797316282799682837663463525351953303406851204974138780115669014109609463932682539841440774494741847209034577130867190889706318740295415923898420847724937828015997779251946098886448974566506902856849553042111370223105726297429472340189856241403561863990548424500712917535175976910198095373105242571222403075318595176126526159546622611395605664993370071989369298232914248150520902994739378299857998812564213365495099542188180022951243579364132500141070099448610466681395225951719117676076758328508407967105532084915828072978685015679637602954648829525888970176215864049907504130539324737363951093756806832538473327214199189360177799596879064010106980253186591454831004627851212550189198429363475684927440670361182170760004649157527909241200511169106302152357646082881368531685978173816086005951038163239949743824785893781499780616785872802322345518862348155857426278086450822332782089824645136140675176735142502031266908522726526754002720836802750958900221199359440806163072154231764873620193050235145849427392923346229044872151694701763457530576884264166574927877830646407352890130981572051166798516542192795871837278321857986097848581457121808514716859924396533276166615345612086620644996740338518278347179542508081888510608928903771517379603112349744763804685044437548034059642338147733142846763806816337599124501256266993431923437862219107526936734652212257775098224220178079678980202679073962317366525859476868597245263215194806776542043363205458630933095431226728285178761808024462989561946086178831840345355216280660408877356043191389056217155009592849868232259153793171419342490870991507150813402740219484897312897029147963069656696077709504844367985968514767134765501004121089887116306030009165300270452898932532552951886076789173447856589303319095316442538931859704165402167588810712154531676217551530755349925085884301146395670546005877291481197378361978815674368798831498936056402171074722772399072968545532507875961031683039202967951453682297983562031677945736961075459950445338592945810419542392303990926488572847193487350156165450179610976954050160095548989054125968734550796410834089990413013731329168020892494365400551839483968209003953714952303972651849311450270440758772080881554430629253591433183652557834717370287668387240715339420162852506934840520817976580059769354844701611879159394937341487976736470985597986831433686679623048634801128160743883180437466903903074713476564929848243723409780591571372022275027636008346217708723842293627823908300138115552571340616929854972121689018329296448353586507926137409091526656618642224426012530298111231120333352298127867075044955520875218191121268070801335554363824449830828572376538362423280709039108888863758041688869944635571296672645937991796189769296002715977756189670715034115764471786370547437589442730740112080703649078716359379407025007680748814856270263739319835861035265310637292869315727442509981106560052307827951021398982826642703199697256776420737072849444477880315434664595659353063733720981167280467502177549355818266785938293863946390823908650413339052836667381257394872855106012640388939510787540229088551446540378752288903927025047609395849821991365322774430929176491054227384362548746277566633010829148699939869634897096197764042253841607711942004333783456844727669005914876570417478972269323053787640629128744186563441492571987148988222053836753671401517775937640598912921728751500717139531796398008449675980777744779075031315666857396292402029996290447982389486209386161255531827057960552839412788449386053542812492763852972351014298873900894121604640522824527785814774105610295416865013550367070001316360455490062060019603499868699403616752027264544487872351509862666804045212530354203168531846592268700414640321367887510824267535399876908889189902794289585004285615177051058970000803707370350474883948909491005964135151703056432154866466915181266715901606299896339953488451930978261411096323674359898402073818362113861672682826216380120276211318377858820974737275570968861998810163820445576600100550183879309663296690256077394320695367087616100655056156663501827628039257307385351637650125710421532546276983088831248050806184362754103694605535721640899666589722182969126173542057532819914751111921711080534606839124735199252752605249639016142993584333409756459620911457526584361863282523253514341794725951826609279402353178593469207174505233478975734273999038650062984993108043406595177351554500121638516383844423608494544519361038518788557207572248781251519532894209938050703363838786845794359288882349515815615027402817214400858000649238805923796750912493801106409934939277959517283070967358231628044900741473358374719175819110311887339187852297230917796088555612295621454921540673185477644418002489249976594770826168403849942804923069477514270081206885131086232171893542786275425399269370774182057113079695874528744920939629581555732772182467486871420201714040427732696977403971457662372099648847074762714061736842187345368547800407844452179712818771667306150227814806924650914697657442318338083128028948585951301573993117845906232716642094010116195331593785885412892574102703220733570074016211666363043073864963530871663173098396310667957103019433050639235825040100093813714079271082901847330837692428824755318449387896581991673444719112627522588565342778876095679035029823089700444384650019041050548533459715691635700700241766340375730549307851257371659265371457317215623394044524802116499372756550911908592094053834999885690723560275115931343980552521374104616399028797387334580015987170752804062833136724854740616347988866761456481870377723939713703774736324222784264619892610175329664769397652087977609197075878371399882194146869996752370202749139097897664564350453225320173043524583127011689001004743304301026804320159788320254829360215068721154463502351960137680427251096896091250264221558681844059609177295719733357360061395341349014578503917144772400239947763079523695203116128539072392011987672252145471774695717467656406101139569098979661861662476978740476821665751204180973480012356175279478378979291555738205884416985160785894789950957152561393165458514481853231831860227578422250369902103449057601726433150018977844260146842483646069932268799013525196811651001791159409877570879763889462610792617294781291389386791628841992915430365409357095065728350161833837673587676314508091241375847465621120879049621171072484924569949304395448372955948787302196516250319404483419979775173148094525241107640508924467929640217006921764286343575411285805439797103882591720361267252203907532098541804944540116123550538096323611055917034615268070613362172638533190222785345571697520593177416701263123513043896405762413987196089245911566736766825054732345415399349684135387526997445784840329449608157622615482461017218765820916411219466273595376979934971774728537233100855921661913215954827550318138556902778048894364358409253126211374495604214934851105527046978717784511841943948897712830382965203260198961726050991117149736594573246736702268247667847011063444763986900707120103005177737618044357701953739748852413714342466152161645071726193174046932877266617851330528142390792362511085351867995605211212967080956499270440072423250250394185945099713009518902846891747948423534428079384951958143984590618786308628432727839360418343789705177750408125919742049493137195466781998295404526615579213292150636810989646537185590459860925864410551623627886420980063541992172625605483645885276861536672326599203828128792641506804788359295806879106677107029528973709439140853001587120662100055023996868602388199547483973907100539610168823029446291056833499675090908450040727737656517041428455668878774687198325212472645550557438070409834449916144720577414869553864482070328807551675066075437832177747222211160861206506451645669168711832573310789467253465081744276254954000014698309093348898552721287268849203013207373607438958167453211380965072966737780755232494107748969706270225707561619177004323614203502653569492468870642960833347739610286833539626344869772424632694203210490191735815522018048284065671779434203611735059005231776478811054951762581442431037102605973499225708917198980586381660011903074456268544179090777701731484386573766503286100838634437327373948541144475573642428741829949596236827906420616444692750053128274163157765237278370944957671297297211311776222592853698596579803474815593680391904946353608564279767170117978169411447433623093953417992930646149246740163162766516012546418830680596638840080975117456292542320645713058106665631869202159121537521362042000703980208348348675962084018594516429372911895012403856797246520332271918822836126586161706704536911546149781481496033462884989536883801481999568027119117513859695922904852470212626283369534048942915190591637017672298186602021863270389695670481337949125711782088999582023380220894938122013215665484331348762761777431775093512214373674373317026282403440723141990374967324411523458105743420438976965865635067276839325683509265981530893103602524726587814061787926152241182465354256329528121367917323186939321919614338897135094507178941569627119796985156312065031802121188243201523293797238072140999204631393003898179027356856057024470884867889024012373550443280185008360075346758606601819844706043049419998752541045554649344931296481662873788982608469635208073493535107670828039875827719837010872081948162432386350450011239648165958123600574399016173523863439090106306624594181969101646697815436444077066863805153210766644982236593685246576934751034570818834976591170921400314569022515323108818530513054729670318700544325075813938025004289057963584958839486197805083305152697483256325578673125842065216913471638495225210177682245078139073228465844010394261134293745911768335004101092318582193915847453715943994994838794204587239541497962233235153922588739928586181957263945416699187698323754715359860438200045024686803007330100964252452692094192743383693105763213360604805384006466727726326329116329811268349918661291453618485396716526248340902583372527873712424799021976958881494766439932246430907747893879033510916175827910634661254762345677397454321572095476311125741819822934628928679887844947170903623682046991887195453825120355038557898491183396765039646824645920006792686984397354374795503514278165056111523964427441148865720598487885820813058552176658433123526711938194138284430996005802364446206521245240266778843304580889605329049790427140068101678221549025941547620382400589381596037930288974876625524583750495623683785583062362023097868092361163709224435576586280842374479888390448345563586150573783167378879488031546824321418885343081761070491435224995781898546685268677306493068281151117826052810485149514315444079875024217159340165654997785206249049225255746263893091926545325124116528457017544515728459391018539566574078093714467899415182892376715890372270454012193819777090200937805811073818577809123667021906939111485534467581291743031305751609868949413068972512346696550000934804761238084125768761698996276976593987773138712848080862316873496700973659172245492076954707619621774662111800668232969650808303825913117205773965341450689753008839587457560429428357293674621123054965032078741078656687815643336154548882383756486855208363265914866196225894580438070250173353865682012818794536961188180823487963380943149160945504868866131245084638244058374653724369516963910788863652623800799747853270614261136297927145741330187603610415769269147071255676417667458837915323291347843636013496347123233351692835456400864035320260187263152827079375089706175561884149979422883588667673836209050274545392654506697788173981190266840914969365913848797553076738836945925229303233038582698274220192200312138921907692749965239404751735419448944788429457532900272232890547881708898764683764375966339668308581359278576229337781876896732123397130396320845555302864257466777910310900910431818745761754223159843757880611265071603405767106572283898392462132656717237635210653416757903734775330206925016921495070005123570939815747132349866665052036570603589067451340042406474165342950350363947848800791659013200009082916661813139061773848471885275424704780358190545383499537944226771712422513612463071615560014941437319045983742669579493102520965816241130010782639685078419118619869882820765002233452239498581201304210108936764882136305282234029315072081453988811886850297980357897996335865461924863222670695778282445543523851963890883740335696964811225045931966532975407820612296921426824812578267975701642431924637321204452428742263691102305273493251961344596922754824624585524187650215131236280818102611447607234564697198348826339128925648522724967177101606433189837801359067690661499961622027661858898753107010307485923604068914296051604923171904100189852462979236206275547478451867122819352663183274702434123665147598056663301576352013890005598371975524371239423895482501275943863573398413026475016733626465307187693872708857272619946530208280217073142093573562890654652563604642513661437639650218056207242585430274988444977651196859347547691174341580280495755067564331776334456997003511940729603315424740273269779328917630419506312353996916818612947078272086534256288880013419847867123530128153241457360009754532099475783711498906714870488791518408562603274175496373750252217973272910758175617605925588826481600186259394199693569705909963394139769670068284508287636970621018845269647590648341444602475219145649784252426138599422216545350905526578671600107072164651441062327863202073867552423569400648855452412662372628718755980534518475894714259060934149125370022814032858680487775958244828611553807440007042085923417390277865026997549974097228050361381865214740373768347954709294163464071234564417504410292216882984685891534923957499732432229349027537617547838108483415746382498028895820997363741670891466430648074630211717689127579634074225689902377356435746463831519850457467285046003101170876660522947829435635295655784831521784821013388850678723885297656681182006987757826434624898464355511441496749240602230070472614523543272169841749348026133977276892569526170753726534987336293339930568929757245737860828054366973349225222907975919762689219663281844067457774581874406153050585296619339353493450440106822421453734420744188085961709673091614795412340833343676366896603246279480517888935505999018520258563452496228980819254562927398729725119922331305267626659402674593460922009688841514140370368799067313252750171818916431114465202118957285727708783752299199165609203744851120817887733476830637413497597114705178395139683558777786151345823870593916292206215367173089999671526289466552591688580774958133037983721997075953979310336425237254109613411597121790975946023160258680826883863002277098679843093368176436414399467034057937010004227856605774990706446961282133385808586686621593794098598386185350111676062633748339190813953969995339004374779618410423656315220532819070453966137161011794416520946932600162884503389486425912220748884833264339908971033062003827551886429855649354694844695225512793521003429445941069520055453069688787500866620900607318503012574615070725212370692379856215676581094271684759516706886106233702162826438475320499841330680541802495708841683585878335226174174138046455272969479422971982430207064084943083523968226743427128949021485232116361585011090313233447985404399601461083728341543243662105476454578197365246075627343117734903874514983542353381027970312790065457125522736664959418216283818275894761144258938426076034271520459733068125921739828325723387170941199265611842932650872489023026469024534535028982927333167813664283208112972971034966272472153150929619043338055383120465153235051218081876337484577493111683863807751193837461176320241483318194922345609749438141092384156341858791596976287760118676477696124448165420000384123081847574152148831436694021484080930238709255858324979783071936452266222328802411832312896129927134757860042629311848295303322709635673960520020356906688394607713096061104340267528125721301866601915661063443173295150413166610336082376961470422338808867904390501900988498236133436939566663826744436297194272057390569456854226333044390140275920826392788340372196349942445078496416954519663056894147575858273073138234343185985097443373916279854452377614756118254015952352019000076158383873380265739513729293218611336814320367582049868879816316637247388862191261743408927902884115719683704905047251840076591157403233045008136599638596409003324821143513174729021491928747779958350680157638963854205912545325748751192463648712504721107103545137570013272734860981868504770964128298254802123337012614571669317093392663850202206742676032115173397025878283504222690381937722342913163857048668490867169607983291287699674510358870637115620578015807308658748297521755398574896040316406895813422973265551702734046511779061006041490958825083811518183318971259084336752379709266927028640582011172153239286420340121742414533219824048098318716648547730484359159337128950030616147940966918703386787179426012259238720047454342574731980360569232353237404496286055228985660402024376136584348060516858016565274414573148524043476835416396461869844414508611883177799164060758785329733657714924865326066566440113933119343680190157020851186217549088019131185998909041318293890140353409761327754777997870940202492519890857350866601151148383655875718622467085068004449411704064972099463331810217564992877222577589698220284087512109317999265051982300431883061296429235198344552552434165601796694482615952203535638152173994033447589814580940631610038440798844002668962626262185316467813436763256682120582140441206771534517141241639120986250947445245298938830843482718961743372054448240636089261796337290638226341595348198547440399901339241476104260903515919736714111823556349875272208460032309404337380904790546991303767884405039282494642736141105529031188115665081885015759461359239879525936329168129609384642761083492474577253020385844924377545798638347706620103961562311630731741927378716392642040210224744668028760679656363830288167648354842319204416873062640422993431481461365256801576833610306652065415635290285582156180819750682759729820478042256147753377639442074177540923436117976790680301024739673272090764304100057837183419664698238242122885081961779515318371478680614984360181445235059987116895442677712537059691739731233214471853477074294443916006243075366687307222057488691502400739222957211466577771203188170464188818296373112694209878770062947550423878080594094557020674722876757464438822085029813739831148277591122665382302659365395416402690099523197237302307490337154546376600499933747840369327529832752126051159853871945195764701736308806455916501555665314438489576271556542658072540088947370629140479908538537155601667721474366145581978934373549851798034780295404923943302474591651903545878742960245188032242622960452285154582246146691870017748434907697986731626516362215025740344983465053129238837897463760480389159055167252733157023497685990541856307578844768036102176774505332126210195686629142928751771892478454014796229003742086200054462020271845502639278606925964257096206123973015083076221912202430849003483798645067615641465388861406473998659657267192454550566996636412253789907699592801168168027666008907267820642587037922627273835118901459091770744209653306152197659212132894204283932823606948682587883155458647596994686336907521824651606343276197265537997678055231431042562673775271493350144601830826348540624387704924316446213454272601539562701076692804668803257055209963816868844682206130928910900349985996773389800678595372837836480929585485533645015701237432867750906597645072927929236652173331806549444837041346917557306869567293358279528004648001739523672049276283444711860086600535312181072472045052822282722293305368352981562784035529032212396874010703715360877725136393924801624449152082424253021634878542835658988940339770100440067729615800192283273417519965976782501398817223775475758005337252553412849001708810048671363136792897328096598073957921892754375239339619416614074627379693694817422513738010978114127988540468782859322807864297069692109693009216773174573823232460941612976520699058721902786573582474441259506222325635692098341165363976942474332719725081085744895163913143477245895857210139104593937688434143212365472065589019594227266740950836609243833032744934785496303836125712421073003456035060720142152454580625187295331622235613425479505131900380115175203303539039607033768948971666290359096585681135573936847438258922258079330678322844947485130143711990875299997651927352449610986826875566516467477002534922838099155282738460587769526081565971358287516112695090933614273241066984121051601408787231806982381570343747116856097328914077211558639342764872651400440274990311067575450733420682567226830106581984612582683039848304665413686738318898940748464366505881537823543821614853669878636235039710915757959411127306559070054803523685293264118633605846826743639967678012622910335996589106822237200668603732962624811814637930918842050584262404319975696291274693248427245140419317721957063215739763990517569064668246159734991413582090904852977314348359596966781118142637523150124221348106108902639743531316011421363940635108856972353300170241204618386782626738326512428791048213646417357037721184124272390054778544168305474358528777376665294735066596459983421357730732092998038409038570790234501438667085556708387922641152373143030447617541253249662156679227071999853009072233138034546188874798234711371341304900020409191747627844365035334976678666247697873465863919078573352916529501692054834410110006111683263057431357920327769640448447852886070058958707796441225356875054077475326650423768351959298677901441547171899561037227844206947021475090037316389742411158918262547730390123811665007453476872969933506760146470310911393896156350030683021143397965418526394820280116036663767845536952576338096996727077502948008726171808490778561302252785071798589831188412262124156748762704479986642540501216807692243822404779637447125890371581663248496229691827872330994818248901141868429365046305885450790138559733181295205721497263940152263711723215443223344224280131661028487493485842398907974641505575689030195976719397613419930784960788590768963880980401129242037047489230720196764774895563489919750778654842913507937218768592311492948475599623357706002537417645205075921204939634778720035531291203028762634043535654284737152389172210676357886826165815416264445034324526112699972738226901673956342546693781784195674154340017925329043436800588172858112224185435636615962248354927257217224163878436340148408359263697097260048231641530806627376211391075501412634651937185444369469596534828009363247815478754065668867076154411597415028006418998640669791164807355317923653819554118980040347737152325556217086481973955223525943833283406725818908739494982088847013069100328251397274904586950680274207303356609567670401245643650135100136590158898577575823363208924678474578285704428527152109355437042735597922361319515329191243363464283166650779125860824345086190256700527817836281364339133510092961413582335047236865246421477688654275746982015737262197503074500866856097898254249580838585721168691261262535468580780426907152984941406611775483282583146695842022772101784403081724327031231359768239626227508312519479213703336095122907848759396770356296175319462090765589551323147408689320434968173050772665655143076201888799316960302290043469054606705301503050285349347826187868260224650115188253218962051748042334208588677057225391857716405360330361951056245955771746872942417396851789586565015493101248767559302565094440032768103906844122014121735554939737638627094632602530282049964639445140247419187658417788908136611174845604613995200240125466098154771063905983989349365548931191315971262077790732285376281899816897597717550914726704294951792272813393937381577536789331609491605365702788919071674978690634870591661085379942763548452767856733184487210317388201956763761663422694121057330394505640825765335911702826201291951263317706719685542574503707849545317268045161073426984099418923440025301931251134697455206433891686012341352023755320870746199736499724792796052308231902950967718764864217979386055981627815062397404559070748045957015559518545148342673608128027098352831252637878898292834460868977655338943659944148432159903458994775457802442727949551964953092287632715512655200161609171069076200140959697874395199536297239597648351399380893778760420565085365169041049519696827364840287982124988338836929059006278638238764645115533578392363934261298862499955103791795309291603048297569580560265911003121775567196013802322095416360630008387642148582059946600542643517427970606463308994665391462928771750467809869511319323609219905493678227380464230590797180134389995577838538665277194018990763468931167478398813739482965160402430317554794567628335864418537040714008532672180983959739740323787592758062229128348228165921250917875725966824768163403794157236153670878243227235079107787115030763417780965313320653954894733301631251182538561430672390840757146155553951586582028115850484076054580029846744265446997341506611907752574593299276523967798199263360000587102267583683200017510235359770866431137959703420108077497918131714014934792342981039953827945378054123052576706479453215988084425605550002170175089199447358560189983437377142757155190628271128183155746050442687845788379023285423619775817578108894972081908834024316058254344215929177331285634989209483356267026679719575843891195772181858588897756163987299121862722347037103858431588800763395477510728955844867056630308839422813938898370081877176895456135734104819953623434671062619480790069261970841158959415423048438672233882702830931338485808308147215914248580869653818808635016677353020175127723430218784133307654007354111338534620007323196757102777197006484970713223733359311991007722461454526033540880012987221356779148417498090455996631592115650706539419527313319570030514434521212681926542266717631666165731015329934070573151704481589373591801598051215705094052281338739613476416593116518481489423800802698475531116741375789581173507480167982378840738021682029271690111576305646501574295147732002415690586988951171125520363887915022950033365476523834104022526147979467971358723387491105026072701998130352369033846676287741018509429257029982772808127227143998005209694429768431758436344661532174210313015741478512065712593907025963631917501838296395486686534090926660935808243509951921440187677340315881037250849822832467844341170175748287969158116729895967962054647439632321781802269283340914254021756458602578271670831817534008813946411159994853997074899985785290445965945988220295570267400119644450826761918126688194214112753097174605967849171371559064992495997602122109628502114467503134800376404163363831504666823598388968364874063877365157745538867083218218815612543806849520483730257179416539423546923879127232093161531522026658097314801347583485122653338335495926571468536762743496758494019249254321472031588207038280768612266025938592586764254407004094641785636426668861440313553732913144197094070153812695599970067864847469770985800383086787303901818612085871585852303452211510522452827829272299846053661606400040129347421479843818767171400754536956869139832961541871266965481301821950565446326830933008590951615096608708262190460736395918448303372040501713452056212764158287952553839212365451588345902093193828801280232483665592456957437897835889077892561932019660448874241136867747539179550178063312339087650151961673497557393125693482197843601933759112135906466343533659685356291823726836490722560141830007044230228614214758865002272045980167463471592699502445991111190236480841920906418257636645848188661979813988316077796653676610830924377269353665448015482408823378398462965732522249519916825557514210260743867617243454413099140725608205937340671961526132826154259329052903561684310536135595533607679581271969883182794965024094455496842965971591057650348875811255842020271172124180715430064274097537939424808939792747863818921169304891253193097262600352663456526592006611263137418195161109106042239864196750742241039198610201198012526962686745040388691818928993870422424085562048413726400813750033361612696545934393864310901835474850895974673485953096886797912615862763802590503248171591371714354832655575662190065651258713187168796563647855515003152853568712592524092382854022768139867802686763721707802557095752621054340286637203429805132743048626300397384294377733445417047767013716229693805331888242686000386420311634620861465099952491826960671238261925586031853530654112156652973472639121014239925720568728436000657598144465641806442153976842450835462004129483700536233210833918574719586352344958580560322116152108104073175227660915282520456143157228444147187259002231281450434184380040202560693310657210449549219420235054132615181091461642765313636954452691624596444867510274494823393226215600716006664481663303979497221990314382237389948765806815518505080082767877092217405162642173545550121736183609856942529993873909971467500373553100892161878460976946938231972619427011834529005547268885967492985534721697379949409784747305664009074315124328808522880742423656819902965009134476641478008353028428873963651506780889110467107628334408959776249516974959817042562031683228441026534071811375375873818930010620187941256705666027648743764391263198591062639669482766803059695581674792859093568061433879516069656609870332887952044952923384653551455267976290384759575305032446646641360452176426066292157729035064498385930036717584108149878025245416744425602607468173750309439472518538396437391803337780669031544517979473657274970834501851395333684454950912149898469197619222238869165839213532594524684361737208045322956354280308673838310394219431282268568067819574299176470630788574514545734339179941540886985161712921533018103139791815809506821908598635023242004449634515817127132675800524661323740199400543191533379873471548068049736697030817380769009344795357374130104910833966680818628729271349657760625341202213009098760499007945803976071519158963900869946885095636008697791905402353583900757439914667754981479269932265472025522272705060519753509228458372773847717565268943095317650297552442871903716514042898281155873199553933686609318188367376271065566804068454229377909958180108040969432077314509398773618782540916413202937897583565135960488706797210897550836303594038200993862107374175780971644387440464280850272015663390008622432199073335583629283664613340708934218940322995382043566180902976175084162265867254535482319429218565812410561097407192703571265700605002917814145215053615096143218373691971191921362746208561169323150643369359632382918102898431941309058773759383738493825099797272797509682470131405939545119700954195520285851061550239498630667495811565481610702772702213376208136231472305400834093390387655520525661370441987881464830206505212529780222571115612942372023559078199844984245787392454656420601732880948690492345207934560257872958857382264281420701902385940909498814261986240425812466635498750603942017055077563449681477493859949950462906475884004066817059657268911302305020005899583403134172466486926952048911056395432927899627788259558953015654654406530995390090789552764714225544217383027923069400107866426098301412242525983865803171343201868882237423100448462786024119175981715734488213616734868241011017392877264794657385443847192034606067660544541001288092286635405652131865112696239018234648142546888252159610985087646427650636292298647243377560142726329632172436347860441369068254449624549995316898453664375288619089123429592648064923739636758538149441687872020416983100456753905651825063838130388883609064333291946013060511078006697737372023100096217054370844350617638849519895118602988794771833411677537961510379576642165566268280601328185054880377793388130923273887909888367157939129887658718191549029233186955878565378716790540397618145634765042560365818369072206804674196221521530498569392951584393751951079618506128612838737794135001501559675948148745308701558198269718379790354959839958011095646413592506797283115720299336807222370462253241599513859801156027057727292212650648963245078783304806384349469913544953612688339840932391056672048116178153978028866918999768206894658572290375490038533308673483879562946403058222170303644174745957152289395721997722542937922142042870452347010056605375612383924254296741302137816368506856380495466753934725064385583893691045385348993325283725806916608591129140567604309707254837699727858115037103414342623959016543247000316498281899814135031426712119707752746786092071172698255304752480848518507294893680253335290791816007397087967265478516627873530050763614325480620435342956725744424710347230177581884858877715551587974035315494894188093232652438491531423119577456573794684084817471196336999531091929963284183557108713794441025139612244613198675601082455095433280051270795127486191849096272138748037351757503992820323135369080165061098910996670528367682355254934554525909366797378289614942785260680181959372717739879235445663573762520261719772272273682945716912267375179197403011304899526111797631098020582936760402829981732057494407819055910398095193473341211124084493902997955251011409672388418905489935324346292941845629716127699132018568027259186628008865712221508779774308970954469696580829616899703854184939433077902023018838220013306980084328771002562389635094174096659877364700334403396746421302518977779883572234640999163393860748443576091100692783720827322191780146036115565585227765459882317227150071834776967067143106630872477108860987829448816052100878263732149345921813728427503160247586060958446121649268649170894763148218379399128870231445702077000310801362415185426470572091459594820062489189502515366667530208120001043477198524488521235543943362542913432745995682253298845595723684193489059174873789261768659185204131788334947590196902231353917328583933515324470212929181598004728241652583102101863905032990001568223359274634615113643173709802830814521744017281894646779487029544467364817231208052722598397509046196892351074416863291250543876037608770784004894637139255421285064521089319620063514509939146528024128133257559933137923472957524158744726640870877315298975286004379690296661945629623540681562871172253395594859790138102796239316644785596400856238711390561447566032707011090210264943793777324594771242495767293102588602975427335140830295165442720816840399709848080033607715643103514721091989422246949664755766126363674287312427115797722396332870146388610867626642948542931677848581106058456637968134523631687929583028889929378366984163864200731086295842467758553957626895569487314439488459829592687745434292687740510829405380245140973175849399043276216193798509153042831387360865418494566165576189704632918071069208533375117967305998448065927326938548026988407004958600715978315008395198435747733454527604062712624782601935509804352546052527372919411757068191467194372456750217298494771411827730276557144232379622654144712262732027079867738988622546458553620702015804428835797257212086939804298689748614665109123743043938267669013425441165940238567570307994779713060355156127081934847288403137715980308957000304863514968042340716657815830767337250845250748966231757076808853430531620555802701329430964860393918132349730126608337323977239388240788023740796101847483128510166877718249408332553357315536761206245270593160304599987410787467292638394509477457071232939531830695110216133257189954256715576982934925609134005059746997602005777888454510277351352512860874726799882461184257364395466860625826893983049874120478945997341821708311271254022079558103483472426655058351181942817445687874308050125011694529316563891802299889521435512707844160576490471519527360748206416778155787106501301422202305137669473028538313648573360730978159471231741757333812826090253287244262986565401970758786011271008828657248001317170592024019578394505159384166832988169220080647297943135285711675762557305967000071779852099262199743493099192799679324840776041503220787718471646183060505253831824664574484340650263071203531020658922972752875690775420282131715523134763718509998795341275360498487666834848245948422690047460142877270520913045396456685641179716147541462376420334953885619717883850159648864993560684436864686711919065517170006425068213834726910364204239355640060611820986486877616228752694837638979220527900984050639631490044513668922984976923701800045216821067241325509738451760652302337740334989787403837138685499009404067872137532753897713557280927919517513630699851736696326288270847475260771275867490906147365016207422004662148796162320693227313578951530165218286730195952146990301375701952953878939733592622579553662879141157661206827337470062754589460157506861398324842570892505659683385187381654464031959889453402835712507108482692914907940219604247332565262359761074982676526587749830083179602482602958742215858064642857816865158229789566432059762853124769730663456026164562329369874597199081892809826734664613083161928363289715953354894435596500571624493962614945484397495053878718313621318586322854411604160894082958638533538079229241936538623704797196859534056186417722344095167402149622899954680289869217535164365829804253714897109747818249975899214841048132108594049384196165794618540690694413746019521567440559934695764181832462898459269933846868497147104704198513527251612943467401884033449703476983448326971606866085372015812294383078470976550596818590735393226511081496617310427951120915050939572867699872193351099000544395935064996351769690018561520694032429153145679618796391376394372725068096422302481623030273202776368757929323676527557345721975752843064722404549163934770993469553865873165174590314811155693857842381727136982718514605435978400502343814013624036679054751661110974016970810496987268400756209350615325115465534581727733306494115614617242850066337828760769371629544219259930923913607156916291841900241642787194748256334435868248596088294865026326230965647210252221883584532214736413616075494067999990011796155156729134825942060802410176963292845396002592528039440457144634245399765684694754664413359698355834901871607471708405259827403712657681490252139370931265587515075881718268055027894547887154505691482486609022282905943818553644271986617713416822781959125212402791737932886789228492874900758404410637311095901497109514553926501088372558749879095186847163873708371051937522945416019052782185828455717849871041342773361849597029380595390340496633309636622528182698165654947237273716859532496205923691416979733062707691174396601313539888303082226227884378864238830166706574507812543908956510729437123221613519124740469380947568438174249137189823978885822627047948429176493564142369731577994156197310888580434822205669441141500803341054572370403898182044262706985416234529237117714377809489689989333527388148865927438992389027898092937325633323697554027092954873229775625109082858444632268714482813700142890061584205304307222904396470284591475470890294509454518492335711715516943113224577954140044184272285057151410539344280804592283577417099511461067532694915351553482343661389677004831840437753814206383669997020660998516887706632953001847135986242168926417011989015787040609154008614253637530026787722156903826341978071717614792573313173605879563061619686757566972872267930061845394856521464694149115154171990698113873202266852095371187796433262671001265733774858670593672169628485247195622901297518541509458763356323082229394205388049806467933069076753067223117062184983558306171731733357923230481250650006537302741148994406725798684036846926376497252189299976703782580592479764682456355690413494421153907532908617106355610184591505163895915249731619869163836535933882475758969360185242527555067382619151653440646738143119243212916793422091679528718402896283131378275973192485464779463776047042693182173950466261217149697031406440657575678753612836441541945764237887753694169741720075674491872166537791606616044641740447517728635284428362002637627565202321488918333729025726701952931703716945834215911450182701510447995338718536742278230359530215686400991544364261065306964957070536085862537115419275415129070831012064212716937755305456538281754495365855685782796780357938116026854324970100661042064177530924973416688582408967539924089304603332500481706532103716021735187766172953061319948773777339850505877205091282587988538979151100423900431437317656701734719593283525694213820210773076791129537813791848306251596840412814450241897131987068228997510279682790982996176747991129970637787591348976360335113568021966477935634348362486310981967342988149144342414108521032733378862487396451966834494738845726919157963045379345890947557423682487368037474100491519830476225131979182655881280978117389937592012768296468932818263484798739576897190046206743618066664498099973522341454186599983671524052287463695656909977381144895485505868311730236640248291765959088935979709732163218398824134919276234029475827336303886568404189311583772438746479118873277916312483267592647418689251040931708194958018915508955451039773682195448454936633183857817770762683626293265991793312498559734266417157891648049413002193026067528053757617706596082613998711751953007445279175005994917095884338251874540870739024467823887505310569972452866942775677532195132171949526511673149622968059933737105575185436894122153144951015992651609316232835490163241485128387577696533139216589996109853480986307907439627294336403594465295771911514203057430173309173386180874785735599325190318746501757096213197038638487700533028177855238074268216495820642134596658483174315866437045147715944647701800537359670602388202437514235107944219562289283327247442554808551455927615999833023958308109486362841870660788418062521286480614230353491849145569436806418589435954513073429806648384807870887684490295634424379257608615347803229931982060896123999880775130357602563857414352297358470260037881272361741173023548151426160756312838720456308710320615664774506152378039692695314978968747607846858259203243086970105266377600340042794117026758825108735265774630373715888459981591719702784536077682977739551055479306191176087399196347486558033152274177487956662442600876913098033544553183239235655209546626083868220314502004894734673841988696897740521590531126150706143595014892475480399368696820729613663639994871045048925694482152845364892961633548364877317496078150179427765130287112927002359605351086529469197470963461678891753256950107051669505661673253992880913992435643371529531779940909585858009717981001535116373939688196211929367883622028033935867194449253342622862685987172135031971308947988740331501404413682298571609001043812297050557593282725085052901848398927809412639088578120078328149026455404981699287493354619300900118407215806839938634473191816972711975222174514087774743509511654265761007957520727807686248959386041496381977214678144848247056881911072226776812568623651442134682950090226458084999123920163516162191687752800674345905544387143721363423107918239140212118397948876026634519708676405893578411951023476266781528981814313346569323578602087418158472745154568916196286964842134974731193320264437830762308775471407088953358409388966812549962975942703703884024254424122441780225935958207376674410320371502895840282279049929504337477330099081542763651453302818781824884908248242153346215453718598231476015404164317264188086683874572761838166094715401792981223693299376995789872398528162154751234594084596803085506426073399796614790900218142473749702511347094527938196554760358135169719157075381677986942015755571069490428876399207568016854964965432928711025827805009388282778178746959995991193732305373964448795261348567296841873516869818828780076622318382919291901480088340393778335995712991320377601489096384505547852511280350371566492410118372382079571435016095011546364971954804590657580179192455895515916821564087005813590294494767484549285467502311064526362001829916379524383540476742406101209384968860222054604569711208562939251166968842359966370473545237100619988729927341814509149535722116445551053019382836978125505951644128106904053571874148366882917676718743199597659634526036375101996182587448950175054674481020017100808425104446106380143241681737564869803857112663036377133148024295674514217410625584321154674655445554989558565541418006122366247718277349367922432491887085438084385471716179500012416382539341616122943238420407673190331293155376471955761656339147736759607054926798241649651498586853172842870257932005576702283388386431571668372480611288515442750094946705917723248957656272049649963722418038771846195544816641290631104739348190139380073665333056913145483467127070306109178536724072211164307314843188917999692559798096658408512196598822515816547135874565162888721711810324854263653916872336887875513572229619709150830062044710725861784440575317095920684845909346578605732847499790963768350002671519105426157105996637356951876434736490412632655798601779909740770961167557520741749786974077913947796140948161046420604228602829433982201329151916873336183735229537390599871675345158748341824856337568122430175569946086700861109620280818637028729977050962930566869496023954780542434361076528614426412529390636270960625138330213619501074696724427355427199972965848580259538863483307190816000732322652923641023141780371739978959138664425098499041413319864723863594948815956675156217825405536644266697797529673844593532346628044883637597312355793735201738961399238668272649633800047730429261873152954193537037311545692099628317267648716981997482087556437732303483110823660674332343628725896855174600468337065854234032984332469365726278531196693844544164906943931105083039002476619826913378245201440254507619055168460707281555103224324928890809398006685434866252714726135917901562771634806224866936285046715070572425007391080991423484677146644312829052619915189969772979456493197414283539654415611795274582700142513413708830070367082928861250095897389458828345632672047320104476739149915671275747581055636688023384256731626712036509697001611535817891987903709695789835656185729785166381207907516084176303517274152524122014134734186647411325710547257014566535628995687824350479440505798328559618069545934077269772799422575318745631700866417272906031224210459086991137008537975697476385626949472858110173813224139048659016847738213159009097593707837763734004033530113232978046429588544598620305276325053632827437119902090969657887796810863436019859459364575526093911095121638666104716252961866160689424631601329845434501063119386155263310821701106381208497089204297608239865468515044698840455119426035968905903431172391402738979819580132319293892550072768850680117233643405106207436616083840218201274874746734955367965263372950591754453212117154552542406222526344727495811931134348461863244599187887923423476152044071384118752712246001573219254970601107250899697935544855498294779762871880885448989372926533152155300666555071331557173961352886153281141885395907422430042113171488945584033139485922494864363429221278657180048342480348338308214972978579452999090351325512125571628835645581959136958727725999335364593976400716049270058127673790768853812678196818058811070930982609237351170268814639081497751319474235319034869273425933725119178704782847542990094681228456073903136263548162526017896235208269719087903027335420925887776621460340688014451722405553467699288102899844958291708139587418387256455938043166310145942156689833712208956577512190119078424997637129649601468437659077391897801127126390586992425444379886190824654527680181173433792173343399099618675979395666069438379954629920645990502012743526120940938903828323966856890889377149984786770903684288808869435434862356397392011494249154540128836241694049511322309107423628965369292967851969440157683337628819361791813405714503928535867475632898698791206363935612802658235986694186302468313432861300507318967197894592310132549385026130790525770358943657838440901826009439874771718309658126416086499446127419344016609180663008039161597025180785841343174306812160903582050659897708754907707332194128995442983025742133447681854063357930625730347425609926789828569094171161478918534375777680491573569090113303000136311616983142017475034138215721450042870672453458542069326999468942153988948762008277358751791644400451117736783403575300924666903383819015870641168336047262987443341224909942038920002180686051497150937198333034904902485588610770374087192773164918911164719277717447620367689425302632382317547054355262122634191694393489603315673400563784291843760513286055734448058753409874765828970688349357634180084183840555610464209185669167536311096362661699895935612296732810973207255562855160063423734142285490957914905158037953217564364750119157366665817639351409837812284569163543103870368386654819372239741931730375858681115574544602466173328479524772589116214157279159961987967868642171298775948253642276700153157356298920430352301293177178155621054249867430652676397157506130824556578651775284525416826671199275639522332694352690725395540060789806699741908308722299890821035992718255791800758833741332701212010251269406785285163648085712135366199758729775215005144500444455927574823974174635547509153027024691481165276580275499110625875738215609115819439867276419006210896762965139773469073938844422779599386714507484084228382399284359186424516102661538220324515832378900263320033850701919455590321697537938600987730452352111001460250058309143030765263187417448828807155749745992612417761438064376938174791056585402658894872520108832697507243860717744720790604257329761421666626826932428686650246967868004472476794790752012312267841589659829300647113274766612643684383557357599972694218488771662733322495964891428131392966114531374810515303665496773337352994206199286959680692090912454198916311627449702031610368837000230130558328292132485923648499872232412097239730251550237575770253649760381784100169944312738562052386575829091968147156013144336456918834199533882372021005712291386448461484498264620829106802296295798925850798778857534514570630481230837721405024345735582916959985846824603799422899058010641231916153927591095818571734653447959841385028630113512059770961155342147604770210557891487593267121869709399677261262928357316410236203670294880666797035584873430259907895284847798954402795541570637079775355350551926488486979199132953501374698976070378310677179971270998593992700110757594310435453237027661244132780506646166165696485170250267275363689927325729490001793293316392296038560400679910008532668278200432523744679926699959898150824267899234030820785925368518591446673449266678655006160907762462408138548996834602123344311547419454261637074042457581840609592957215387879420240792909383428793793547952491185452472876341970528281275824862343330568729501160571910065485002195286456212196039474428619921822197804239379650022949822574244408812477836832783630244135316039548897083689288628795881859916239573789886386766488245166734470853500096116099519864140611274349234203489915631855044295375561613540067046599056164430467794580507349940929946465171807060346583581256490758276077952427146919160886452004604986082956117604509487817175122500542413522277013984085117758901867045916097653272491635745697797355581827698206759910974379431248869177874688715160107301050778201441979312377008541255290627719476188097949472706198987538307024489610613139092911770981835330460446924331556532688904372501305114729981436695724869729736332949815576680730601340110036834409329818147930432968020844850436337662715639344466943564530096697758983951282281111948105712684748067649592087400605240972858136873597713982891422036378535586639798053887231504370137711031317478250628065623913431574147237210501955386995517957113643066192118590843011374464455093907879636919434558570741250831280441484744767428277129165336714843881840814302374543364210728174252339513454465573819508752692540664947238843690645768936868619654190749255164576107015984049776834238133653423210495490171747427442345730193711799631234694851446316235891116033234162750866957888601963637693367796051097103676086360779650610845375593631272029679703186700962844579139816844123755948281760711990972369563720324336733906543354662303805384488184458616237414657447925239385719990606468565607283442319390676161375205975032571123936337784661927206846598894772769219767446306675641146505380616372809391617079477340144457793331379879748965270157169480637288562475919222391346974362373113457408166870846077606739419106464268592737625463568001445351560195150100394339788229286731912195949902040017071155428769541838619444881899747416094924939213151281392595300291430288722498498013780230195066042227856285608489804245960531484366527397473770059912658996016281339129171276303052992506191358962401325108182238966937996600148398602850836046837883745209865164963294677819459042677670812333770393737419367678444931209128296271529790155583270058999339497694236762318168526313793093420596078134856981179962114295201599220902687664002681126220656676108572325371706756164624999043778569527643067602883689077935540938273668298272407008079885735458834220435104322241505954592692982271056396960108971864863809512977049651679844197731988423121831011257245015877883741063797377709068539831830180324813699491639078409236420584154580763858164990609863855408371087812719186050879718045588605645747558907025718460397686610022086918896636136791259606106493402934628627442004202994038853878138659962545468823594914735640897276297334090211338395962255312902798543252432638420107434313935361456120574969700678283539596330357577432768705692364987077375318986629699747461410261061017764113885996059987884654948808138416036483122397812032064621484155240573027666775191105246244035426017018758324066647178342565363444016354086201364011621778288197088472889119061318394151703352746767064208693039439188832869586002046507477718609996617158263810493355087740946677016800601632611307837358056901179482403411359547121327562364061338447284824054919570187788486121016310236629665860344624772277047282323447221599823039187930012410569147045618799859061145615967345087459128665563210640614512096077117155339862725550864887273557911125457716072981757012191272327248309943687273898887742230360930928934032992838995647385295798961197546055065185565720432019562967887781308679361651218804901768974154965848168776888461349207167744395402725123376342392319314568438280171553913247154175145856601831596775666425631439626160194917127021366839732063453685908103518496916497428993295145937777075354079757677851254762924788693944616896604249530847002944075498129458847833810225988933931367677625598756579884856654052575237575566825226924621338897018771547528170702561624652832253790375564088434527077377004354026885113407817962056704780517420333087380391016353025936090224005202948650758181861751186401971994678716675931293623183548418496153835642156412258389187065006697843053921281897880721959025783665400084936369065368948522513571474334759835778132409115827771230195648414329949662848523634304348610546509379935929746883623750615146862565091710588867480695066021527305080927241993534969052123055357196190000740657932076532860435039436072571565683447265650833251556887801445652318107564081894666012487898448032106909619595002263398951230533412934596016589474698032221646130155558913119614433629593019197652860425110335199388759681388486361479015480766764526435293446592940461304923022888799483035776919322486772033218906335989131820836689359686047818170622843428092407054284569344091684064551277606728495626293919291696492074439148035613764966439684910838778656595162233973004222694051557396878084709859563231581131932265791117581445215179761187054530199443999999432463525815620358918015568789436680800630835892460496934561628921153823205630189017357999042132970930964171942235797321526495251641248613261411966001374116486814337188812864014307150569198334994416191072874953609155374407935180722651087251914757838503282851683228727423870201966793704609965517530370119966449331642827565236693740748514191024421085616491582336983547197179619914653954622878972980476442992191985396002897974387421553068405384760025003199275819601952534471770163725444532975263393025052038756387266018097879130838063125665393698778427406729941924043934526145716482330086047473649148771232614608092375164008652207341987280744059667696830217012743390748026302084891742366904642819201569007757512868773312398890428496306500361725010430986368400110747797795062169261946118535048340325619415874698149350046431296715475615793851879324314880017678005586061876343695968482816436814056810053169359953400213116821197225914542450530887909816692413101057158329979304060858197668940176474509372361424263720751936778281269047427390785953241655265597660042760702566401813381268851477271080365313527287173575628429220160087452535545810372804968338095188477780262610220067502076010510982806692295297282865879742570184273520361946755377388344451540154555295535086406383737362372521282557963078073054445032251156036402267365378449527207057351005330574868746173792244816466200708242047200666002728363542565963360484297239780983294665031761786990807134536988544014486358336503119878601691765974803483328731371646122165814001521503826567456364907787252098305511098777529877466071669857953683848798641944153916841455247273307767392470863754206784507790327031986788477397776317036975408644621109435233824739171217739799484739537672717720581496196383393557020991226491032423580128203051276937050430708294741121038117660564914271522218842602967119134797407102104871560641923425622946226237859521421580520887457269411712054492421204815786772477676532855067175028772909897850649166168174991297559043658436636786949304673366338702115027841645252152647146857447289836050397562716162068981191362884758787868886308292895429764824854105065896664860647428326812839952746267226457852502227444533873402575802067899000178984781514704709217249795145530222970823502472895397982469782700234343754905728319553118797090498324031863407492038625866013147874631341172291120370367113785872712934468840733682823027783777953909978068302517375386715165009593642590002739131249541476521811287610608176367360533676423626810589916297037830235382277585590708276690935919677912614744454475574532469131491143149151774784655907563380537192164608008137883462663188867060716016679123274010598486830199306903285686456687506135838406116072269314255105022058627872282511777765588364139078588848694526832228475612724241068263584028542705013513935491995311928370799618179748836379437838988655717825510635223317606476926534196944159087691485067391822922493129419622034585943291916361916163222199893394485409381340773905510381800220329174506945671960996841245797799110197193279602696737375158654289388545566819618091917730813697235978859158358189552144201019493681589665223087771034331328116094368283586128629305752975220778618562523515254122620597761152737103057865764675288184632052441739611185738025607104893257594265648276209193986602996970567597151237772201791150624903838311077775230099687755046676463535877006640057148611058186484624186049619251646527429141204496286873050165064572714999358778288953338736842086478686603243973474933473863798997827655751868541821041801893694162115099692293450949241393452870380069824830597929874350191050729437737901727038512051858791922152896867294309318406780423251461060614707682078537980246263789491222493425317848741162291435842171881746700504093954930491015044431800230014702885088024699491884124586997470832607079650046013239570828035829809748108990044497980186279631662627392915554301441375178219152859860029479131383192745912788598639066984360238557662473306543891802733109082047756836457309668939748712271607897635665951652503243267082941847641434246792643128520911549665868441513776389243806021820867498233285733968199796412957140126301376929017014656070700186481701240374799479892295868935421433843851584611707737598403446302330718663294810217916212894930890431983674283419618880050590824439333789854663453973261384971668121937515529907307490956788811718022462504088730361572930469535752806888248834136503187435999180415677341845262067648717248319566334120446166022769234426892061763043787728237705254678733795373778372199596322379819392879993925091194198404403553299179154808048929318350077479686446841455383228565706013104753689591436603358532580314687358261595100218824914707325014358278154967953645001199633035694716241571002001611462970671831399763820723936615612441676206031553192493065115848333008512797029709410263833239392408807850519204306049047311710281794804913353195503714308494447870338964843005648858161827078251178187799399906124884110963747967232971873747977264383082097086707827511267420048356510946996016517351166156555092490808956051435094508455051241496160122845119742043297690199333345674391676844067263763408210224947999127319405751571754536341646276467308285356451715259042055492394960226619744573865048832267312307438622648115148416191011238904594890211851547058381279633672681091520720280229574944033658597147346838880972856064343807959562844022803311417915966190981430161304899802314631355182274306335687644181909679105140566746533192970520298364860559413542852013865385313398897036764960630179954533217070090968214592686149306133487984796859384755250848872217342213325117942269602356962513300208378522688149752281285033129430339135707264705654571166564145815518137242208825814499533764351177018774768606067797084401669612066820106418051013851765399182263967949381190577912644629710241409699858188920062504449551526241755904259847914552683232251553608677885541707690188760102574298834665873635682852255803853810816020819432626127839941287399452959697375524966711108514087348208919118867571872265315332502139457363428381840191874438776151729919342590343573907221570848002353946909696285790354914745779708664914692671399060003653963609737647867687904388689250294539034464171577740004244640309982034571452781941447283527354387990212963213848123154468768228095552590358068600208781351996568657029676458469410943721454533196458962024419310465011024730606923627120617823762341202770391196201416165511201051606805318431831988309459001237832943464258128538774639558396334037338333492409106862215173253569157581236855904428976939205365614602472168242117914572087489424566696064115344706482900596649550109739578737182442192908296860397099987416798602197482978017247640860927041356159718667840409872430163779307189014825523452490102648184245390502774209594944931545675639130625548951367513529276428172362308729494884425342918292946309707278215836737828110661386039895226758746415768790260194566785956340066642268964308777658455167937801044309881316592527758640697452153160110798047092649326224373625681795204615223257708342006350248419240420796221181604830007324238087425792664261970296619523982588823833917206768302056750797479371383573506921869303683696320604384059145810606364932809022902369497805353427476376545408279123403522268011724979938682975577185700416016267062698571774910881924420641803321288286994708628610227651125341575317521738176783863747935321666179175169620969611445088553758541219985340203469821002811321331331956899956063752222011883736419372057390987671817983092806198191738193603010470888605822192075513751717885652995047012781804793584998853060822112659598267893673261557522160565286795860860396858200144685222466585081788611723755676634522322796922770136778237785007377873972729252774130905075606514781170201476939999513082414225265340032698082236505897602488452448864307760289525663525018234384762542972725221230268678213752226420521101594428015853441911461931671699262331475579400012436888557541194275996482417878901059257994232325362313134191416130538387588194676321856587523402761627331557850074548968565393991825123675046709780015285549444773892731385836402742096737770602809123364584359804029622130028540769821173921555473749492964288122686780733208231742118578836577148914465049799546926518558388264250228584060036762453378596642270313595688563392513592437341359582991935090551123791542080343479038899207855055715654654990079026907634167331768784610715227331120175305631857678702115181564940328726406703655834621843193043226229180044176438938974079078731779052907401784737833274674536207625778790854414881865777864755434356852370042179474659408180973061396430369545474541340555700239554453712825062490767665510558195447317862228679169641425261244200311310137431998617793061287139278019765310058486394527184943215407837285277500858598476240179315808758972312860927011258712894813751467571890247697373137387043116332536473219676143911762107987497529327080398596579765144881101568973365486262317547208773155934599822785867639145985227602785566342242009306979929583392072532861864422081038889063673865634636616449712589373588767994312717042258636010438740188361913881348830832545586404376747472166836711752262479239820492306843679418290721844902194182821037528192377513260196013092117542337552247530878882249422196833652997636780196326169702076336701349904933340525645161813320694758956758180965008896282785155687224422844339038609291826539991420669591217464979374979802786042475913825397659600209560442584758360170739038937874359446656863886574217666854877618939077121792701786187214998361222493122561595835255212240567639128841766225936866646796461760370691195878650121489806741085651269307153930424312079159810007643251841048707955171865253425029737817054994094401317219443675676823793306532785419778009312875069197577549827528822154326488532079429105987046918616557648986434977347615674856972162107393679189257251430083197322262522907988761111350022592195924711162338137918786292338057984112223673233713731050534710372472345617416911062572494710578032682626347767940426971390118033037794115930915412755104917920252968339907871714275120166299454656997980431991565193770277891258108852581323536086597317564264117632746531236408184234319555481321269504993049908995108067262042096626167830978934684456801579037808485624697935119739213271548345680093495681766728010286154514410852338706221186597836502517504415050934889469062327869979671424733975756039584792351537999830664963313710525199652999286366840816299124716633496271385689670055489915338942832555639349763252880917866120016012467009697931451960290657036838085268964373565826315748060944967970823558057927049476113666170243435489343744823356482651740034372086238898858888504063085057294861789293409778544108207308796042990100698994962680388078352477893212609929487900172435659833083102335061295997769703224299432573630139511207271853703013758096617933782277565797892945921365552382325540681078245555077339427275962481093823917937379357781326628086022439293540961086356711015482092760924231463055332024956708341628624500153043742003268899451585013247509479102079487921547873350697542633483252376634254955681660316714496597393524339731403753573362379206363038998882826355249358955758128013580887979896906472569058413243719168984614493017035189048859100046980236060496960905671083972664671762107386758657988537178924174770320995355257697079252071188807332931438032788295951846611877181630204717077928650530858068694160212086238211524727816719370640406057655719022147542308839449596959268373285126971629075766369307742660283315780162633363308342775907235817559753918616259791012602070751608148767517333693038869979947824187031546836578843129965273420545643680782784301352014906632818898980908271680563760977976061654979490348747528637872160647248367732802723727132821507189008352616467713519230210561231593492685405022067336102524387263960598723087885178635397822886365139110626996904510426085153076525880261454618988905407629887419822897241948339789192021996877102838191092272993508426558250926038354888123202703739376626340001637823320142487781912611926235782127935042278843556463344384704381773236578139118375294784652755529099865330522045045365367989567641038317604700501589116196750465620274227157521869380572500851329529008605388535056189510131144988545535741172236458526736122389585819003751052982058270524357137803272445427302273473530823785083555126101301161093873893764512114106526456509064499947919296492806349114900740394426670032533827742930954268161262492427998782082220367700597994376343083914025901918043201658113204564515750008186824592043885159111587864083829157780454622155843461438266383813672546819316039915273692784179901950488444421997280051829205777765925300144144948481377381580267386962474604582553764776160853793997543071045298022369445814568033824678244605160702439892131215471217572051227089064561640218453621381868379996319750415371280773252482405271655139738173584972971478976314951562188719534098997179053030915729249891813270808602904948610609117739905182402492158836172978427310976845437528169615232811951444515119945298897110005588605592297418281506239613393854892611294706718735487160112360314523372284552295864035733824204004306457332416695088687810539893521742593133299118078537208517668154737987993478971523218389131186883407907954178584801436422200332739750405990679509626714803319648909440664502402337242829043440510912415580363008185588385317693932086452106456124260831056988098199137570282605127773147196072363529091504166483305245788061752591204158679774813209359541650460703051097359461952568466586633550388760025894863326646437598647173370432477460896823521053469962692504003373399671794795418945796266103103332707074970930069411736274670348181572742714197861210547416870980950712593897680731923450083260987574316233837373923253611761138873361777765545926361335857459315167357959021095091259148591904710419905329399124871158281699509168231924583044552132308544297494816905658017186931399621865346960985491927264889626991162010657467820216916912560233860610248315238734405379383296324171295051269605520875073060717364294270963119839395939584917979226687092713559669541949527253031851719067358602631499627997905420814389573055405966284773194088257584217822910361049397733255883498790159640955519965665022206365436678503694471137312604834842400359988086083923797448181793132502263107961642457216477259845141721031562200591440081484148914540796280339166146879624125114391640028118449474160768781327436361769269830328125427516773336748850750931846758565193592851470159104797368601406094932923605129047864356883128050778384826569139598923914640418316798415092494983221262631257764906366296649081085905632440964807556662703151989413707810865116102359226630011965797301733455470040100036152189092018587903941284067606629785451515021026004068614135669320617656583343284266902367077915219151637929131168682395334647510752089670171226717217854772298036226814938733726910887816091683576123657049333992848106060695189481100743701278640478774248346001364334516676113843743289330178053027543756640283867401426781694383963953767042972178995532128124784106750925176863666958367321641378991671412484147784233483474691693978575373859728147451552367803064140471250647005577225846874192791544687800298647547602185469719107560868345370319100314200322084173612932277430974760023044596604115356719245544249407280088989753203613693193200213224147489650884809891052504485874831084574079740342150697996877573601523409637088748597701548746866653865245922684412631568364179603511892785528481655610214304441655669999697226547931603115650916712710058199622459314224625709829989825487833870747684638387923497456530809133305446681267106762582650401606940089201076885336707055522366564431031129407638479411473459712840253577979591628049006717495790852311378459459403098342510328805365035206850206152768410270961775398065971713116617483578818526887900114313944659461756578807057115253303470310473858618683559019776051178070322646560323098953045061205096593349599010947994732508340104134181165150746030527436759585350907883067378976360787955123628489056236120025247592414307496561492833698041238674430369087241199857601614844739680342205980709178675291054608612990844673871161886391813182332081734330713977112779136075067165401564165884782146349343343381405362971009657643693798750519194235264140667003828063396070201337015421193757181328869425246267364602761910452102739560046436777558689848387473091082101044230321448523288413474237126216249931631063647212766745418983002280745628776752620401839333698716698356174022242639216786489365054299001573447682757802421687403500502655791590847368387675203633797802550659831354943761677741474775125733079890804333304219615266440649769577505635125975211450457013898863660086006034988231716185178629554686016658686675339003995022547918859987559631159612131570120883587459440410456271020696096568300453705293261670689553517872680397195537929670327079424460899751061548131684231980760208161493328429317738170583566699131252870787430716953830756595447129594785887575372700133118469762082325747885940684659483378907298624322164380369883371428028496055129893433849504773547971137106519837075900333742763506902733748444717488147446634163786047629868369982885494810516527467113575967406583985731905335716543983722844711201553751882150585309849732261004848249382047289562548553175860678953074121388459422572238718441563509158517682572682694895155553895452445952184516758487526176367247843912055913472081994023826988202376483057971346138685516330043297369338271594069449013795616745988706174919307914387242965874920065038182862412522286928749908287378924641707156239389982850723268286986852216548877827746638351790260018685667576384504914506586741688654795709726355886437280615930529841286980412604571679276382444646946272586824022608607398830904869451833678777838883215492749145776337946217164843388654325041182123899619900638210682241561441571176941873655451538391540682227597399838942157764213783992842111653957900994244001459803218847246247197669358206413227936372072278978528790203002360196951624215598856813767562167888304814475057334872884179152422801417926934491363106066182266093475122828152326667747254900299939410672390144868169433220161245499394535926867526673729904381972147863224908793496640287961818117145400078232061738294207875290005034371517573517093272338083029188091282000517967176533872687910839852685403420295782670040030249164041291522054689185756977595772793249929059173973566350681170640016098435194224000667964581535940212699796618395124460543060895317813819509716772226234749742632925808576497945082376965749309171583779062770840139411445672190642759467000511468205022513318633651682816672546618563945311479738641855005127433932109052674613426721873264033984266307453992259628868547691500044300577366772623798941516216005176242569014755328079712047721019758667167773759345356880151505808313251953617834805729286073308228486219826917897300129751096814713815486972618544419935394667804892634335673372694333572419617220482065682699167146969163904880318035278380694733095603691311704793679344870673231567578226025924389859706199443348281701366601335622741282594213323787562406321139030740542653663777984394060190728468104164740209759056391668527334222343414879238785684569503719867034936216957481940288141221436324950804448491797075988961531520698828681316885450999614771170791719599303593076372711435705421770704756851760325507056934297181977979885949902621443436153768070194470404718535376982883088472773600174244900048410262814627704656813750005989854323928110705465883946233010721898546451008475284686490734501051423791879019981234454115602214752347466090122157545036490754286073099246132089150609450064415864388307430468858715435704378731998236854099051371224535339366513158113810307675521148297418681491493188445870924768014588481533973816393573024042350597619990769837412726932554833138674396721566150144694287708633663270808359528929843803263631160739442480927971658193699653932390459528076629090217553475097658114951007079934772790980714616325286057912494217668227453757532340516146816489363010213237331438678098692479005847420067214553588624666790761684192636928867960864353999891224471692086149225225267236358180331927909093260035985782690169278767844733035315101661216664807084930221376694834200468663656313572548118172756647419321207938972421727119298448674075901272779695227229521895413423029576543116337587892277174992547013319717702262191274799607357615697495568333270293357364958022700872156042483998994453897459497980589553981150208975271728128955671195817742551600416532888406901495632911590910306344394582568887849198751592487204220744157139526510667022654842326498859632284908652635769607833662573370182246951154114903732419621225992439985830015375850663754887828678949732122772500384939683826351479343341996425322430685795697725009386011054801141140997413886021021030593451264427947415413548380535543638208383546466766286351279303477602479090274183258447754154696861064023470623249145546888900180886228731210833763276279862894083109338697701439249134683162860959434290219961124048521233236492617412863450267305809639536965077604455974184282895220130144459707779560858046481130719894934952662040419887200981901839174083797937719587527106378384351006070383971779213782030038520407451719172262356958914971329810809592200596400295187597933542856488959421618420279131833625242538575304463563955675549496224866478230399387353699416424498779190116099359202737980656933292469683555402016821803604751725548196103714863920532383106050305831986512031559524475324679596508113215470908280451338360807754427506073439301764388004193502713294560207259466680432136728756561145997717513957670632500023895308233048286071331624665480611849777383120975350235610181516283979623631965116381731841858604150755148781130509694465488172271385622197092160897234739613286492867820192506198491810574725653737840655436495952860185296529021049800830076010482131050777292527795448379662568819864925373235833274627881947496565565723487371911343428944940552990552829663620861147527842467856463698860086554404164759148333779977588977973422108148035445558104960105589595075629497255662574970424597253486736282289636541363434061457239921168139355260452188918737923324452702729096534034288098849126053713579992167626397425626618706243144869512227927630329287384589895350675526182345949364217837621970942157102360302060690358619031537183505400797740353734471885031859293534039606147346172172169172335872625425142870773560440492488834391407317386017073957651221630474294780721671824854255355149814150670825452848368760128735428332367587359598706289970038863023453829099526237350123243770637403247543811690166738162541840178809863953103801361500530256620892751165868385604415410805889009135517817895901214110470183731989329259358935048317797130391726088217313028444061264761861820471691941800246000229060882150251723566614813188147701071284304862562075742369535064582718762337327445403261086499969217183828180076899751308062318233487080164629577520884861060399636261847978130286024769441368156307710164956213228402178995989130434836166566810801720086298851481765654481006444276064089903007417400006764274658048310816428529172246299538334679886369546639010380053353704061076822122698348032378874806916311022551591639527847137209035726850104275607744718920624093237210025260502645029979676225354644513694114478198340778831296342340644863532413207584189078854869031899268111811743603099029428014051935135830105141081241516564626234851840453024627019335925911016816965788695000046414648356321087288846302543918438710166296866422181532039001937683449098722553195716366687539440172525254364820541313750684485884755650223725730796043521972916929803381538543262849833292833236950982096319925750310302283290924889468767557929971920690399991664351745703580309052484110216384392882407839827032412501976660542437641758103703412995461049753573707866336898309964072526729894539767470401293668558670273003640555085798858910695026118172608001636535316112072543762087357747021378815965053545458256061413502814476337315539186823201184701994466564098937638749027178877197028362899852712033023358859521635829063502235440107258939680426884755730859863983917421549509853140997942927661664895644287722359080340755674705547989717823411524352237734282752757090056911617650440340144095613735500543585599137187124750526667085741546821628190021446626066452699809925310023718630517036217584652088055016783628529530379801116088335985079198745155561074417907461830086533302029871157402824961808210574445073029534908889979735151664833243297046451497538370449229359536519297830233885351436829513083607266906005946993466691751423239335004080924565255879922230692638589115968250393956955430221207098037683513605477422330266202947479782990163861822491665190953047455599310095301297842474071488458691673603889206105137749115122138491706952818521435240224579859125319276450254392257147614915737001015423826965253070328150108765229885586899931213757727006784757596823874149232456136364795204951849938891054762252167296738513732529791759750643511177187893299430945373638806882509087160726097771296690828958499377670268864311991813750432520558161288221960111227491923051301905416627066661048274050994387423462421840586247238875312606200834258094818638125455043930662684924270693646984720296828008912026961350385951259415520792235542192393212683072706998114208620249306763130074579559401253442936886884818817112725613173084672958935612831369335559705220647828755523293740996652735559595980228318538472297980047675621916956947378068670865610558347916009060056156129594142748759292049347332353857406427219468171988923322131312529859695544274080664379187252290706194910610119472517209123847703845357481649619090000389095783282046197918614693648534811585157264177001233964559120238222128745502984336764257248710371361513505125366203640589073151862610050702806635921979487443237235110910145905563904035585662976828307949371928281895664365631034095271773339025297402876326451943799789535393872468225640764339505417374760986366445618792701143877907879181904446053022705361210048643216347256094053540050202436329131393843594517629504938823532452739309059838372230510614438281027584171623403149379509640698033617398218385615883561100855224660988192281358402745847962373169234282927378417808483976009795495755732186559533768323529456501745314721472951362230226175109098588862582731710166586208371469374001386747557021324456216490471392667723055079172862613732334251623346185687095368996287507118429942673902907528987854164632280741037307880742216237861631268741225530008168332568858176731683054075312176480533594700650010875018625284396534990446466930973617667906141894750340504240843094928741461755793085557412228374845680719664732409038031596881457749489639347606982708114591262508416880133681064717799067328343522955891989688448161966520022552707800142189829056260800020026482477511039794702742671935882014265748083024219399980230518621985771307618213491967114429298246231626483286373227411076301873030701204479841481585233095013943676792507918256729899640166459405544296391038599776124144098578725465062632555414960639357149450692005201564169560349458090937657815397592839025752268268407172536260174705153269024874186231628649862533040424500650975062803252774670519876687943998043932435803570581488669542793995416809396540358483170644097916232138465857087710365673399817429494492422325721753717751232646764440115874105259992585109464354690723775583165776562996763024870479064492363518859043689762693690457574917740346868352541113628928265725689624091903499284374568468719946361234974458290344728255297504858945663029885382852889371403690686078817094724732120747935055525201124723623123462782835551049318935223096561480966693038550227602589516814547490157577843253216180115317854013363266284001058511370210355881615130784449985431613711939980370563415182418441031694737028465567490427007933299435065266697456707337096708046144342966435083406073798427137909497655819887295935391803019896336854786999406236907386386400126417514560914412838617306035653841605800271162834613603888691278178224026273728950004219691061617573348942040227418571990879843322198069233027757321032177010260542163362139055799940482968226646345499516783694068884652349088778619274738181317300353510682276757640558467559065497374143289121624859676791915316886448960496940913468714683311124853579466954712176599269773839705151465144681446688064373631848593382699314684209011362320598722476731772305209653882817748639302923285760111443489884870601754632843546123227736783807344271410200188757772397087119124830283107480499581146187174844700235256446449472463559151000408619576886310371280055169836100462797498490548828482961923774533503127691946172337118019241871390620585797495293253391592386740252035675298499563002934315409654203075159169082929273945867109598533886431380999199114385917404109865443623385345033479672859050700372810132355671147963199413803159800337600414134285798011923724893881690621030850932323262820039701877380830356663500509669395939919933034067582555559603683346433976555739811599369422837915588928781693389972413966912039902273375323048844177865674336338167902433283786621574083324449212438458130782045926260890900168499446922249037727112805388283294752933813436820078836332527664424102894002019711153509185833091199001100244714580774933090812836637018874901934449626315803395936091997826979958551328867059927033258740822031377431961565745031334533928915199088493391429814312588340935616174176080985161935504766703201175612365505405448913196806501955213159439769126099479275708152976470168534025463200180071136725856874629601414105266197754806275376774329484243750977552926899610594611837115387976365446470490043031967210864051263812638909654342821684056854801822214603762363902938444938771450689448970930291233240324746353780347364644048610715032893881580107796777627190058709361804155864414811453813425793352536483385427431149696488579133734310880548938826860861932245261397935628617163504163583768362400139734662515245743750940965980445358743500590305269248051683803413104523626673012509362535545004175751726752971607110729869970927725297033960040708512042432187387458655893250591936729177258017049795439877566200886752629125615957769150095493510870229506759561102846001051597973310991971112357523996268870213670167612717653663310098323760617875904493053171810429389047787987184664606365397069757437359101959736665680430152343041764543037337158802350610813515022757294655003241639116851937021513842183358658966426512492505919062308520726425815862130728319376200821570168423210008358847638350814512873476381232173571009357724783305421729536233651752733505961109439222625259840701187516407180295488161522660016786625406328256011780542486339956914775434055023589107974014037259605626160438657082602265771721441224939460760719680214890493001652176761389772304064257404228473768337634852966146642072332829548850531110838875499968384301804444556246337960052049475484029321360109696629954437957383935787777516745203253993607500660522366263776685402694558462209012570856357408165398578969673376037108147634988177787082008251133342833212236844123902755168127944580009151616018505729022570362858101608088716750518846672512056024772067230369215761107608729920571954195369367473133403555653980875474121752412336499387108981714753535762611581641359356821792550236163766162795859579218195371135432318722879281025823619517302191642470182474296977849767683913983888614089354049339372384798842247301359382722199752916726214124386242642482397182718899616468125033867677338030997417103763467963395169932673684941813252532378573354871166877687203947714783747338372162177429567674098109974064599016980349970718880410962670694931183450554213755845662386509668268046330858655673648418185296526979142643737047077448885958447096540596900551384762624402577932742067134478977932303961686305362927491815982643933877733770579950180758713862129957128094414772062502039694253649273651241162883204848202894140311219801719650505606267967829818442959163298132188004044101312552759418377135212414698777391161008944662910625612599668333133272376907713601713403959285803233054910283399499615665799603018556826326035129123630092958456879209474596002346499991446144468124967989431432263226451236399290189808311721786212244669644504229379215168340791102065813533474175923264967739755664775168705801599587011424861881283312736384649247423749583293588844618788191322727663441424408123446633554180840905036461174118517677200400391200329161948637870094550787872676179744537033460762409858925470796775739790037896242354200495009298306287235960265924635863876031579655573784802991860094947733410304522696310768400519595901637146999998808154387828921834457671594604026392506177086920974831824617278302188951815699652514108124452982131685269423350884147257766629166818434618126635977435417649385899289047393998298252637463460635539789459900714049666660947034280601812761302913793963646379316075498841428871698864305118756143012094478459087161452127454641235667406825193402133984466142504952160899743860891215115565128758554663108835289714676787889658858637625716465507215049170812145164113854904458459589854256442454624182107596096865983122434152048466030615007961563400906561440206121101036333355555359399248428327533343674282316185666798575907822495708842951636317559853323483292261430757828311064372848830920782899458167378232839425577097576078714966656625123224020796982065928380383595655501049089727649818062746479849161340558833577661437526168984428365560514026213806186470368161432139822253220212663986958777317724383109679690186889130015982492432429212730812452010948633349169459489937756865042852425160914303172548289138579236351735496704819569723190523936654480435551309257890384660556621050333489712945478765171262705646843921017083755505488827752914731416008938855668309488468672818041262128540045617264672353066315807572723391851000918038787632490607999828007801245103859208045064767615757568706559682533092072055983786120865731094647122005471679077750853338920879359026829332102997453482167989211956462469723487945149238369491938803862981941918417236254541920001915088982648655645336731170465983295185603503868552006347533621379585957002848442812489541668207571018500193269861359640561849804024673951144224506700742867273890930657961871575992235941853470310902287084228101578190029686785144963002130016563547827018958794093747714286621284111921170813958761385510244733682683589895520089816388278769143125733594886289798713247390361582591111779405713909155106055583225532888891027659909747447531813046213443728947384843117387410624730082720502680609496837308852476658936661120373655265464317396141328121294490242473300342158524258985794346823044301601539195177857597122328340198847547062934051615894052604979480957024319106072578045484337432371159868438476813169929087658523907552816321423516312666835096158832155401701243417855026989909097041816411966617748599740984070207290643029091709259217031542822078501078579634149867652994398888964955833846021139981142339418153553708001779748545262793633739576010443069971967986440938319231827862108673512215401242488460960353549170122565585490340396878249333509623580659069307041982215928049661136831012396512186505005260365703773378336137640414826177712897405804887798969348319824809459634391102131386908491898259800331803110662348359718359655674408959131410240219085568048673692182306962926334116485153579915091320825772104996590049739083970130081628526386662249576878253052964243549061484953607867150520616655756031842382769479167108159462121269226185778512441919767607526333121154372229883533610900537624432116707056045862483648716369922408478509729309872159664682538000157361386703211505658639695118193162568453381392545257017539782788238696609308659751598912122415359555530227256965895849924237878453824051276808386296050109549023573942688963693844144694040078588447258473806879456412800361940689205043148080215410581136111489148217542839294669887545457198830405999634739045942016294559621765450856535643551593253114319308158015203510343030958704726471182415365662411714874005656706463065160570219490110049606638406109398260776887935550008459430601771261110524025082555094784023733154637667776006814919845673802986021032522003611966311757898214519830154448198469356412633324245446993412961876301161100339310072775604613084780512507737240394914005880041445334674679881920804882553541309021691739709979612757920182458072114354391258524595984283977576879320897283096468334404252350071933655299266439354358193837885685719224169638592801219994077400606370953186015376452045167731530872069635836641162330600203593686251449835338486223341717222907090624498523321327104635465864056821047149072427143292613146319883726589145536931266745044751475396399362259486793224932562721273898166088287376009473903131031590747716023070890580466235900094776563127744352424425978678323460406299762527821292920661405599856727174644195168124694420491613895507870203352748394535057261358638006983650014308826942676981985243176482490588109508763736736685108577747210569509889466701558422799159196051128518353841765327740060032163242593290122349826976401965073452806395498224671379052806445089740222341169803235880704318472608750685498082314959616847069498759625780067012687070262369594375972735303588089525351515891908314425135669822469163592422090578701955962300447630913423752162078938318827097124173276146397448611215351221090205456783422364156882543257244334943147399963945724082164244295826620003609920387521688093122486011820371004851452424920052212620065601564498284074094450371378550283774404897073714968406814997834566776337201017825193415783931874217116313926514356927419398552445591148012412613489591496490895665594950836990776555833410783168480525454102795479760446964014760117506079850656505529098312156103782880830169358574573126943732375978285551888163097053560022416822377099831305765808718086395743990953784686179472984233103435182507707597429997338040214263613619643165783503732190594229565704519822500127717610333128289505632847324854223448382328145304014147552019233253481726873534289730084180090589731994040645640192608448458814996870141237544740016463603235677963039454102770149956928348708825389792797635678325173959639015145815032216744711447613278491068575780714438677752573874182540831332057738882667787741789263130473056697820372379724901573063599764726230449203393820715836408791602979664738927305535781078210481074359330093422481746227505843751524018301493333337572249147500180976033783545749942648005879791324791769831932099523809285259209985316649174895788236829159288818513144729485568234441148613514693097315808183599053733120517770653285302543431206131711929953066257398219383261599673789552195811968350305955439795523741163591142888207506635311333744919610626084973852476488117150226858032752019643779438429811825141390802792581528615245108829959593332134378176424858266982388492493574265069777169673972543495652696956331929299228001968304824062132637456058717015475784466677449855762637212363089397303879683875358458743795584338588313093138231623388266563805173494014660355774550704256682689777519478759915714759109417945346527157703370079948829210486011301094017782596515660512921032659742487278560938690822263442883867703150630204251899491154862197370322217522586876967520534979060154812307852182055745329736965893387653314870234899170535980318065857047510874492545228358344220565542255314038516245623736852277556415715699232195276770140108880744000403588043968954050539262883273890403597463962904193039011754628860978538886805304979192754319421059251834318279232850356665930595885803131805575554915440898070776643582106427057685555044068235556950353129302504824361902266095887159809390405528988924244783492583271978903373173804195855245950108643189452341726505144905838775061502578584715126854563286547554169320189894924494584920224345087693602657304628521329024051763069141197636077618239058223946233392423839945422893333024320733535643930535881992781427928865778843310593399789542702531747160709075535184034036664528704982415945090614394145993867712199571265329772821142744080285443732074841152053142724250447201543847591432074938869155184337513433526529060986240285930951664464043048379223284331307076098570247918906941007263011940258098262196627436757886879249770475036452855575667708515811243675491666255222344667750254663815768267882881302000706916761681050568739175068307726373202965984020394059177168448905267055862135402152406306343891741740759976831730924902369497742703598296342348519056701036395172031206155460233447435361249813830022029597272661837484879355724382387810885930190660765005310758876356474953713398597301302461244965736246303512626384105898810495833615922832406483689003048477287044999973412279653669573894041667343197850147526450312561527927380804644398535982131498224161261204728106097275927928192961990880017756781966655767554997341583600936851973549954551023744215360665808249002059134339691046662668619025441394581569685853261538755091928810708721724390252656738301825230221829549446038277227800695481128032258197064789296366166064038249343220699726186881671669991044946936399277901029579798199804034479119859638491306111213692310964091578026505113978458672932466708231495070088023127773356155533467167558225607495584761128726049418798263238013913695643743296573045626037913357787788039712566011850594967795865354442308684987761249804296307533904004536381709717957856971505639144911463459960647367792804853349431118196021173611898566196892840971695409374969798413719522638957447731080660134363319229132837925132881902092030707432850898264045229963540198436751515431689331726833812293594791402702128127833983092964919647916574384638560311607333374130308826553137636600727833197941069050786208666904302602704218701004452281725819627839248636945599185124407272204265655146570077157093768949764102843636061271344278477587417920780834130831769306715669891208381555377494509982869453581878789145298574375559081652733644729413988389316571916895990345882814129810806058984638283810362833386181473723683562108221342199333729723692365912317326989101301108542148126743469140862867452517182236219731941246401436096521900715886346784590707560642049524327244263493839599880082170730651147293623606996297798713330268482869666977694283441600500488274530249016213046881438576031613170718375381290510896229524757592621931675819081936506301656899693633477488477139007407807303978260504142054300667931560089415431355098536884407614998706569375245536435454536910201785420685415504722272952758403756996306436179276943302837488825352888984113625203770635726574773544741296763105065517217353808044301249354226225619429998430799970434702865178022098097929976396651363958312550957291785762049050018651397911568365622488986582466250213107422411791845895977788843870431064931909145120858104159670755996994683350387168667244445104288896868331894186373711785914498514799280837176922699215379164657732342545524485719139119113214959596999717734757544683511556434514380641309820539837679374774584031655521936225643538421711388112538563514053399215737820618248446980763619870479331463394615167710449173394958581965851301292308369244005810928921400304165091409272019220204110334162361448717035440847560471707143051448633920491067220011861310909159155732484711560667706541104979812744103852119628691624854627913518783571707181758864476315322916240216338909307509553328970295831718145560555860480202688204716404740035652054238281292029512866141635257447754414125828721502088146611848233520558704616240216529995128410384021850911468696147478705613596373656601924166566688789135413132937003061321907392618693916813194415514676434335886387272060422619411902073799348485137071869291293695607830249682298574703585231451034755508830542114184593227308977950317392801613244924021256511024003559490436097034000962566324999299100234641844917618264506795654492041406056836038611560613870853841565249393722734356018166999250376378486808565127264628704924447378685371127706637658983111351813438053646859532465020506919929747677052356660465300099009537837109591497863388634521859620858794496510528081336906572648912052232309698439187865820688342229325735493781170071707025129990171870965955914765007779075999753933740749648958432431137913200809114902962987248095324157634413982611557283770563351890187720316744340675439379632959669130423298002269211399663864192388835856759396498972643297969053459866000985275854964969773143282188736808845710913593956132845738282420705169255154780720708622657813676577365172125475101236422906836628895389477715063369503751987226224722038895255772677155018687531535409087129322833344827472842370983022697761717233133963331088153503631796450125568933991256517122067571958688962739089414372986567380136850585485813884921536557026968313792746080437452098581521352193874130813690075434719581677757459123021132448176708555362900809008376170290659062928362038880050473221150769654624447441508830097254363688966720561128235158915729775518660141526806906544542736768604771881674183044532962868345827042758770965285569500809793301540865962195064533800344035044476448395958343954393071322324148738060011671913546084888646622308404805377413347812860527341615743754658039665450492903586682371880430743639993639426551701478641626916550512406031242963946141726506432006343986264476060989649763312013358870100051493319576435288876202474496623920061117393557310239722596416303528416115759506204822475062801613754132851032009227046764309177646685793967429375092820190730817400480042493811734920131670732303711554943869794175471132939816730355210257941955288836902812301854703908930967105751075051861186773217707916188402467360862508194405160397700977018887029659208749944133441530378738803706842298705822310286714457410068920923469327678959049889903307067556934359843918112075727748716180549483332195527794363091213777746352510793695844064431373705741466439471975717097254383751733034589174212974507245123909033040570161529795041169146751387682033615928072199150498944315155545208174708528116063176771054465289617053311275457826101042009425724528133222316466572400177486349816109293039114491832199765677637815045984735207434918656145394104267599779266191531366490421938204602673824717200890882583916080488442814873725123909178310003097158720972370582937454124076531326686908258716640131864414347273320681084627053074589326125075738491398349412152652397071289819852584705175693020705358054901797361314559925508527912111219143309535875010166585428139084287620620475005385259264537735220393436393980131328102733440454223138655709712047010142224220423136287011244845152864566033085062022906356628654971082496231313674300380296466490471297058411555728447719165131162476227182216417510500846880846456514961615594103560782071162423886371453172381869596534093362019098145766199215152492453046369820395657918880293288173606043897550300630645967885621630041008014993732515058074467002839814714314818041839913670105821084613007500660839337386059918385104356564538228751023559904022304264652848681311492111850034682603478694875751669470793353758419113717058074765529854794575948359677237236481557867139257894174467101627732996714943894475524979870416292720163013124591008017851803124870784336263091440612127991549602122880990684631744046765857468214667524876545005080328902284777593827151517210316257076973487063873301919786894388577812397095995879019157994726774644130162909018134484457142420671213129149588159735734471058146544428720864638532816616220589147744261598835518067660990972624782500576752183774358322380340092263233769129577845020322804534697262494900301800095380881564214548577424652677933229550166339681456489936009658766615808057937132421492111788670865169785374369961173418846021932365498548652645854157382232839985809563233186598314550246866383281094819128172306035009039101275607899165118235207189684491461526972524412022570608266398177590301826158204332184890092111610490702944776935750856430540637949442047246726652162484584170445453571836216091411947731388015033172079504929131989440091114208432158622297296631134208547060807480967087321096555782574104548577843094988235991889305023167208715928927345186924887287709913109099606943696789978732256748727206243903230276758440286733100190205231531581180514555014114796500269141207091076380522608797751662952019439679894494377809159069474542139692374839832119165068388422595067075055942094262716688298705938700020929516087404936250503835849326435436200760118816503005204530847537326336952670696662583451741899658666240796568102128839431546026864667089154829789341004189330362125923999042329396722474616766440757943659445711443591234459987336846024490857832705541470218041359358478779314626530542857032958544773401557263693944496290069780439454744793480357776163754421884403150192165864884536931120440486694953488764862986193178462095229628687800028952751945536574240735083828509150883323351101182160791709266840716612783678567649274128625696344326897856125652350584302491490667195327015803500467860862197421508697982885360911135948363411556072543362958505385154218613508511820472250901345762083738149522330455421399099044941113457626446436432803192397121781002911458361378339841231879602473132972512141453792621002102539795440812256475675332848408963441657353486060215907304525896414009259706530733283360792960235931990186504581619101680121625352272826924936425035371752562163447528354819189200619937969635968029590643098470525727774967598901862160537890612573231912265658827824249588886572172402485071253560314164130554064611643458215650514627935336185182938634705721529769107771566559645412702522740442764014230481265561655933053199178560166336150630782694754511807012994952600220198853032874559815990229857177840781898871134521365384228471169202409778229824295574363638828307959948147855930113728120010683058429204645723423947534186530760514957604014296327147420686511528340225702113811774321149385994002448955271601999537761097183749603073537502067892429978704456237212989770801669457926295539230646409995146268391825119561241269832678434819878894706831830950612416048112502645846876287617216571299312807992993110265316686947446559191628922657445584427836104041817376291452465117625913183494471122805172528769529514750735094808895647678076217468030541348623796521999646738214839777811158947503973708965647997193719531414954265125098756349183979500101026725757632149147111524326112767890041764261166779554897512250730960463530380770059168601160416308893664408365880091863992970701334228955407309896967481399623566827917418741585165540118559205469412838487207778813709834051197888852054845578464286237917631233546251995726598613779066977194630837378860101895890438022925918630658786714619698269256970878880381253267361542801137585710072200557342949452096426629772920534370245148337788775086247823759624585591277088688751010357358389257137836521715294161083168536487063979996681731913939830889826343755166062442807804312073226638145062703382175860024599352010038272413413297794875264283765511742122604741626979336568511555528987347475788156081847012263697791040059024817254439442742746070955615787316183628199888881847078031922027968863975755469939692726645283125985276072293973544599267983208459139036590416523193961085307774258240643132530822079171557923992219906936538658388849652853961275929728183825230796786226455083385979264185739299802305886673571113132460780014311750756355050337648341236966224445612471242187008058174283130543324384531446080999531921802203669218333450258113205906170038276871244340820162725950558336120776790934158158331441153835427431772392286702712403925153425556887190471455782386411102689143576624325607356116360935855027696285150523877517565292131887091701000493745289201762482742164411324487875547599341885760149571199721170425564969950320943077240387414069159907698480036820147443820444653272699723911291231892047740583979553880816635205307517315360866486830601172680049250884866498857938589463170218891068210453949022155212509477141771511123883050058490486634489612633034304557144033899619868797945776270212294645407392215126913307347152346841852847305489204705976425846528897588334699824475423005275438240817521491068431225027325885256830250069162339408814351998062525056092510045470900656763341883511060674127622339719084870347737307626053100726582097195775511820138534628001073797282518701723412975657328553919851243330656166568769542708825123231477469458734073290258886952063488319122434388698752806587990907318148433003786135655665306497377938543870874099024900784455753128444823013281789161871120215559294588945395818871096919036420462097917610955290737834031151591752488017954706446974160785412874211046778675531129147166600488726585387013198091754481858914500014958400970492894367596117575359945097265674663619514099814947519755440557796074950148448056618276079421632587065195733357224477865592101161689423368272879883827006745023825867574303884809291094789427209368577435065479090179349170973839060508480712989516674166408548040822818833070961823589193537948897424922801722099395036502833905144435973383023210026712275476488312935494784090949929121238423482262136893739573899581672720606773582129342526578576652924011474824694706348354539012277552651813861046482368486370860684961421811558801624667988246933245979571278999631572015095247623408676738789275431080040243410822536673604575205437940350777316691020752440643456486408509343577847351246094825539335091257840931830506457866213547231338586856199352624911772370421236709332423587401890257016535867037714647726743243858934617754950188831715466358078405671281372797200367479646320454922499029429214931141455124327249099512119979773590122068251239613291672774029967708113804612228063963448525092302965863122174618780136637538696176025319719362906584981404192956612691156975313740721840491931087411776034912887973092517035259819472615385534218415003194531286885703477148340833556340381476536689367489887246112783701222000190925931342855199764213087709566149978750742942711582903850686651205276797089208564066868743239775938235681305533241699850157903170502055533398124348210794422417338836601017091258833671046230420755256199663079933297698551361611537554274905238491049921560301438154881105560608396550602640070829387061046335836527636267118968288478516749807833010519076946892713602758807615398773162600121100426882038938386813658685305864377072712692068347787393483969044962239549355925253801978868602992635481104394200067976778120339345020325112004407726427289738260744458971371801695410439355548615191456165061428356437217935405437127565703488011687727037861400420661208701966529156036537421402615176468984207618829266739424677453545194078420914903158361414535540106198657823692747832792347975807231536443297029436570931613346095265327289602768037251825165791314253108662461381704636628001915318575053801417939665984361270267206146125581353177090522340399244434625233116910383086473688966839085389934254280285277008140350960088472328987531947533548154535570092708509302137012552435218851817894280854026321129045725525304662081684882712504219650541220004534819119139174160496371288444883458378335729309151866156269995089985809721444925825441066254751352693091866024733254661868728158240746222265491099385110736513804611261345756105025339360259724988667695915201371127235685930650950006282647026598531801955293661141303385987662151552627351723360005567135323334152076049635887493377855494191222127523571826609771652490590879523622126415089377637998451896159274756836585378950828533342984286405115442877655787548461093116164644098328372730481829982748292272130425061328456401369725509859119040730617516559389939065439851063642551845036917674668417356134083941893342855721316577712339922788150268803448438490932286435395534013048638825291737553087204417483233070904732300710956674784525674245779197266231632267826102446215313069482031775582558712661902462327980350095648745762704293613375415265700646431399917224935567870476617378847776862069984762988475348498601605361006510097623530064485831021938936460594044500099106266164105897164527351370745788321608129652592741588171257433546026725119683550684683953912594935474025217945787979043971413667551946512155697815662645294716997061019509208562389492500015309870221973251299121166522189927456915641482751250706276441521128296971091134378866486312516453406742460217993697659641616529660447515552178344391929526328884502703951308337335515532642839753831296704388214712001671721744024303636907034108852840717223742850581803408706304221035404079602532569732574008889612514569713664890385303686821188450483317011102338561210363331647415405090917192140020174570555737224140894420839739174621719502550382149806897542955168193192280577631994582301503292344036767223304737739717329837554767153509480917215100271264722839766132345616123787127107856174672796450153318950552910094154565250255869417438696024478249840299567667369420560070138895520214878113188524415819110853455196606222930063812811627800148139214363183491604374277020800758493997098065000989291756564347861769244680209411851256979043831563267606398889517123376278961299822968017391649825769627597118625667324202148806254178371578011616561814355699453734104036797754343671484265146798239898895310393869298403973942024881647905334413802171268829845826426139917737050091979304127907940383164165559033902194241727207625180831381660988088306093588882231318158882569418088117316077982811035967519994190469289125993964091553123497464195913276223915980063816350368193333871880751973567884593363896051489102821798075929193799831835602603047986874922390030089052483266518182505258749614332404919880804849270489462581369715400195141468573056846594855117562731549741789931063383837179861806433169911347301638711124302127680804175505996728111654136698762475285608903520954455881628672259745613653064028303178647435141890409978533964657675471576950186613921893741204792823652367207726736652552910974537755251509344746703910942731787192626258543951653788172394120917559878472417060151397204454514816579902626561244546590999372737042483496595727595266254327324252988710241790346637758815289068433485316190880803696834422472718271445168690553330624486308542064644883436321249408873361814186294929186125456896645525308281649980331959783749470136505410750954731526369815519268182275022701460097831596232957397725917030987378465600154991013220617924477652953205715725266179542881326512758317876286703591470345440284177647612175185689279730720222804995220773123437564316210530730795655385343789157706413069973942311012254028758421119422295598821855418101220973745236673579942541188430750519475124573381756695345473832793870473454875170555277747106971349972471648307970088419138079277651606756806194627456918566859312168510772311999549299810847194311014335190644707755151720759630820580574479175352614090838027437216757527645820620227105303233671689729092308419701766513475649961947195361491573685765245887603337361831847985853157650800635828206508462074883752875877480294686309722481707196125053449592457227274565994422760654037165390178919158784934618422680570561597135158680302269207393115286560925007839883131505103803694854145192374777693340898375095629439848742731353842329235379025829010769028001288822300433038310460844846761586141901750731753703984573658228736179803465039602328418347546799572770335941218168143297279993066473075116509573907594020074709059586766718516681854889009703982535532521070561993173735247160364756974853985253918629844421472520138370210527992863612608771901654296797323553175880711963137476149010467519648881158705837523546090664171234660814868634731714055168423684858452426340264220420144577688409048317934463033156759320325788048151196871896689674086503419151281321311424515342525209158082564749565902808575099929063451288257657470414270695777524665584225623423125375262617220077643573418711581240451447313027235848609919356741343697866377272134079307991869711551602407253602188821115401469998498605749760843021988278092240330137406928384652250752023587638305394510580938535437866089043949755146972664294417223469780610383155149609384495077620035632930222988529984670551545070175824871684322476534322244896682215474705134643790994068216665296624814230771191960567916405841595336587554112238027707469477745824499672785797206598000610272614527908064033873507601357054115594219765481575362392377194088574834926703865332397710478008625273732174932418763892618879477652021257268554787296711733111864715782597119434753481410943650751830867290181149898455792756432635711729956603767584373552257726021624757302770440962888654507167410001052910494481212681303644493819912397460159328752097235782451288260809549286907848235471117049321325472345082250230573556059997678034129316070586444575696171112195499338339751472989954372722218066473546258397745639219166476805474111982415813000167644633836619506392798037471516138801887061877290299674449982856954230180050819264280944001771012223880385549147790423154230294051579820646432071708957539977552231185642045488212101046150047905280411641751578413838056147081115505756807042796462079425976577493442722886938316511542203469248973700897843821401824731192225713569126724031244696887672471989145944034902873786045106786346001977522673867809828369103707408235511900999082454121497797786958222026619455498313544925943445705814639542359471851271270039376274811320179816132599400537730394378464245753892997248618138622042236604644789389845180476065957472914500776953107663898964534653490702390670347161997066365759482668203586945020091178085424360036174887379429824302732665691508724769727858169460659149401246653768080314132067544278977784161368659087310360416812166360012164107796965670464579309498385672509727561096645708081043256182072981032611113847633077716286916447581101869229237973262295130641839091122154039356423199930958485871890276363108952792516953271541171048049485372272302219875574426710428678659940129819875216281829642358069948622756578465840795395743840982022813300438534779192058190464165171408093309993171543251892789355486485664365085221846545791463873003065151721590990164604757684164896915328960812312692903436950830277793328975346408375918548575568659697451608596491430069386647490998622468052842205869632415138630274082926030056811742624109973643767059294889330592691475208549019974109386699637876727307608371290835193095561903635548268555974337087300229391123620596907016880827946845996019235871767009060263403062503780796167781001198469961062462953988103154831111559683599647098150999645625365458654347282242765028375867787352113887130119284762172504079427917563736368334554623960563496924395484960952059990464208175409546204963225182506143792106215780914454004742237929744559151179808796050568807351344037123800577732184608029319477044821795942087965382849308726872723685721500398100224880759327891172647363261210107485220976531951205797975148941719844046743553488099876470018067269321105999046194990363792699026677966393206529581989226442173012142145694524374418986772665238093387953533334730296719490480084347775468729643172773668240289255168353750720586266268691385838153072698726078400273501530002834514852181100629270662669064378476335486860699161908900487626806254043930944171586688121050428827635372030419029924623840769835355813642205384084136723211348524088191669756698939586416175982885256554070495188656850185882745353715982253354589775056654948401284104644147073492419383787711155995434904370113612736687693237434713303192229055057612007317181962551667842888175524602738257821131843449192834298786604131626618313714633062757049802228585085947473989901931882470408549121237542360207836267518602071396773782845681492357112967190185752771396835530170342326608083097497075981191776927741302901388869451478880057637225689437651709940132675177451319005136602958242889530164571305087054135769763646151221253004612990932573970184673410894570456374745340760010121466112566276535025635463353895195736844065008372838281873557230413485299941091950278689894373534213141882793145969172493251594430895144665823617285258671805555931708244964900298087797430532591464866400384806773239083442816600422316519545215785709048200625485757462511757027754090188449171544789039797396000362441187433479939945907800389499518586096192207549392115955604406866256911633687345336642628200818266392732349698161789644879358277313390089569055360106130666423893647716808354567298665247303844562660397106661355608534611696646234070464912563357796252148316987304888465882524110703106684571861592217838349247631287495963782148702506617727628722380207055832820183765415627418404456999652210212266013384671545630475438372583992288665717019872006771356206664032795970446791681366003492019018064451398879630320733379579984624509227316407391300162675341673464181901272042386990980113245690770019318304896367169202327699713910492722013731288042749876797644148486763654890269107304715125201018845259013663860290236111785637931036393870168070584363451306996570429320589511525069277195740393250754992000396575460299093854320056968366194889983590971512753394446123484260175359900143669732676945484522553414264259513482604323459160195765569732538820284086363363320330801824771483652772214423403795180521779114733306666476951482397965044200365615715187864471204013166876577157837629079004205668748867263544115904674247853122494655819053226201098391554026675993747429437486691772979310773121211480405939568721898130306255894063493467020169789940065038305405960685362662658967158151197089966601501438127082013535338619634797406156711583784270151112600345741936215321780798460954578074117675296876184485808162280797797232905223253455482644006281412252861240167301814787219114057271493629786207400825309547847900344291052386919224075034719537567595564951012855137720170674965067123314641581225639361429491933414860855176715359231453161030276667501841835072064048974672283494548890861208725502242328360825112168847327549019273102672558465408088256372844550588805167196211440162190466260613053787536996208853136184349158004495869732886576236111427373500468450564164303267090245283323459785267841897657086565076201744283361094416185198769175029829495006214295576613122042896921513405901270827859355117836119292614516801094680651834022309662079978639726010080033060202388904935005979473911078075449621255961959137024732606123331228838720768227063454775685601353467118598963535326766249015354788914886266744049637386330961420907750334010979219982574363260990498047225063784578002042691900629221480566714582498584121909550402341582619293647029511899664569359967847991971574494808093428135209752396230700322467197017654721737904234538156754821445529691261531768840031592109814018026763890391945285252832870704371566623324952569786310934830123061291186749895956129460116643927869683545235634900217449323136420146448618556089594049770346101321019562276800538350926886632600354034156018126139881195969379116253354665324471087314099303661400559623940666324082452021028987535756871775389633659073257902337189368161122651573230400485357235303707097405171139027433488584361516924734985046380239181948943084736732437829833658358984784734705554957550085646942581077813782195397173248159035421643722133975109067707570929835762653784773027900811409130545257075911958464369981092206880998122148591600317925597858202908578801953067242790200858903819962558650167672524294585626987516346231254618505123376863814304614387649832965857461781880604573377280202578492935523169469784924887150027463820499869897685955895012213480720420671673262197319080080795303964506774409089105513783803877952655209381471213214939722352142408710988331389426509859511504662470607402415668458266671931725940779169321998510100949076883148928107292785973819827546177085676044711215821626800845312304381262461330048379926670114052323627507502895089600169059533054126922708276899470577606019233237056365765556250979712193369002302979657887974617561388598318173636303368011160430958757791695141700512827912497041391864718809840440870273506829435955788017049768585491759833697937570318152392086012871694032979966840713071909681847735000590507428704212441070517579224036534955066209102812510965933504228411036777862902600163644287713952385953869606499815901390454185141594891628534362546949307921633851183529655778098357273792623429453653097683118031913920106806355653861342868962006884988964050145330703334138962640968145384775196225046595196135308186780461176009056003767274346136914554088026423875142801665474315936863754478413457906873127205703048101497832912567403928498517692206238893325828966903599043417207265618223961512751357834934241523025107636407319730397470567601991034527498972084072931539493764945053875877657065711784554809870553089376223203497772262257220184781653180566131187220919641102458958786673185329401396155390282103575551604687339722691058457177515984419532753369676716724770853457176972821430569073067204291503206077253097102969202871330835935730721463357544086651844496606528735346065027432923918488857409525298834273532238466704893261174264709920636375191522097429040040270054470707613602253516296651919176476252412101284306177496956319265418058320295476874155584185399364950326524384801485894186419233301022700082757580419355403724387742251477223459178511640884507502473387445823838934036192278555126572127039598204322947545548673589188533050024633796459918630551067463061197219089362953126833117451844543585091592595397117093297936467475388175188577635952287573324860609082467420045124280513000227721645291313744215391804933866070290991337347421612410076243708903981163260921996459763665791994548777148102979247392184571480524566034684378694368839345364185468827756593935222762861997448276035130088532748492615320145809722146529005484238843983236010808845272012443261999201756064611224486483673181546790011710646531172428596292748313364708727744953028390798290880357113907913677265415195685099240155180218895962020987631884031161319760335695857074477308266046995469183928841988511503117604400584441133742600683063827093730627541992827464555547891374217993420026394356840967433992083361704815334823197568346904688166120048899704367558392721647343204878839947252194985092311644076763623855669039113791340442612689148021750918067916692239845756257476603909819501393198492920614479234035614460708668753826236999624643934426966240280539355810454076311052961493129197030170572461654303513871561202029324416262364963136128250369127938481493616884751617499999447602770827396978079687038046641072549952441727766950617892542690034895680444539976186677660539242050149379041486803232449348833243452788569286836127234294679363202713189227110256692019601558438108842660192382683015994516693853895957782403676662814351552181852237868163345851360450089027784297127059609555918300227232680836044605825362032749642600920653384531667624061995721812340499469893612619236693454711399080934221497533586840756345609470876655782540710809685662564447923914105340148754872781699899961394606360228285310019287383576839491688369947959836157908726265693006573685892935792350998996077200409233503515233119419201839016131266613966539937247028826250111639873066462142601466522079285804691820427776105025184701130297191275773510081100194229865920063837822275804875381788015090875503771292820951514435544357554528475034191644343039649151409370672496587000153793542274599783924064975036271764152670890017991778182239667318722420000921682352010110656537864396023528561535920828008604232635755872752987193481270675260701797310084497988908370419294501918212357704102123970085701943489107100497908625078450143303260485776848499420606291351269318184526363633476030765795294482630878738126866243649933744697438462090263082278594682584588825698272672065466911396185313156704801670459118360637786710661423025491174288167033137084902101182502578374921486119426406083474015676608688872680072764231838457785301108159334533014657531345359168369461895424232054332598599915146687463717695307497142757024977941761459665165892497649885586173770423600686295249121332883221268476455760607456616195549999698969085684790806410819544370114361381363147243994977223641307395931132851504118308302908526427019036695224384846811190065740979009954931204089177133207103350118941791157154213791415849382420303462313936698425640786315765206453104218211826858151550963559931678191368638880195426307657052218402084947807046069770432639570481481165269847921270663974919166822149293100674948536670782209565804423133507222522784911144230671487814312100974690558863850883449611145740042612297360172589828558496760928762556561788669297769358865003220747256220440066864864912335649806845421200190955593374148675088212511716574550791944274076931473709632727569011008802698168788881489923787492395124318364191608623049340926526235617611504765575169829324827163330037854760639747939854669867293597457977622335146189695012247344832982271461565423255314526480699968130829036469614014232848841683906850708653389969487819926756820503005379739490763376160083533084735932551559501807101610631769181267555872170659023088270233754893214996856733329529657335232232060008352120897382673155694132882051025355027168133264653761235925844609536573177659007255446452975667700546833931422400993946112938656814761082102203780723233072022854015270793173888168523805076661549856237167096012179750641036816990772677982720265329177197244682348934470863559162564521573077920822504075639462543940070111608722959983169339859865209523690645332456671346811482291747038927820404038734439500973246658329354525342175247123735869496698751124918621273202049874444670315616951034483215889247250143635156143146542234880391503866952902650390953298942759896539463522527357699843898298118965708913621242333948394024675972677131257293408407833354739668167357028444347915132361122330180838853694947750693951849307676494904984673941372341401371883635972579021829610057709927360723132661682387234842101363732981399544361418530741043797708920292005663908418062696774884738312468523546685801602042888828326365021335782901328298729145765437373828326002099697819250020650863310746918875664565438230256321824200730815422261040994319215544693449441844021966269380335290012874753598514151789176262847889845446398296917408104332508411140346903503182554846351159712999419254650242968004086595110580197370845684881114918581043778983305681254469978357130034966404337539106844277725633156379948875349581065088173231931828210413566852484133560540339391070738328939552174850211321953974693150220320773943339158017745437644258304671447292845812473561928687537111978978660574402371252332289382997083495098660646322819495766766323775941285510036266214588652915322369984959494876599317236219781636050325263287301090754416320860828764838717823389294835034784541690662164507602414453919572404718951545421088493013280392499663935220768042842837887384109488684821643482333733874378656354064242164743339579161261689019702290340449166576049572926990444613821315457552490460494507027017837023097120646845566426674428234261636035597338614129942968851704491625852920960515950513936250952022741186414141990358600050965122861090622569451390163477275177525770687108181043654900036342603079527041899844452330198043613326217814404915997055374889850628336548760930253750757761851896843253138273044969177232163873166450707272075507227649034870768117543636569146098283881395009585632157625902607644193212548504164070804087366056281479311510905667251548508748587075751633913695244312177044378740640001057495780692022575468973416573196816132614776455473469751638856944306548669869743540405672035112172750005129184122850868646724905065192604227407665366782927476017743019322018741017180924181134274990552697789583520802696824601645678861406135995961519120423515635144382468225403929876889143253394032612959403054050813242463248750861529391509677935072308913533025969229961915413688123344237438517193537497018745634514039022157268692899543204683539863158108779665001647045797873937615696315902209273360611044292330157189267193250875609926146674313401555477052927120673316415127757049999450770087249665050098093951125076879400761665178621973896145551242283864483860082420328226095479443751570839059883304698500040672285303773028478574173905968028754451442074635847248292713178638482583266633881423963380083388666926588738214030315977439651554661414122310543323003147653860418942257305300192994511148575701229856510483686066946435937142262888379836392003410381385761800032105652141914534284767234484803909651077803574449710421893890794638138408322133574516142698181407608092729185612681573997662095218719427327801530416852242228271225612228369843903807411569794976321509039017843592796705963875028387314429188728877198113567686391213228621252246086112664555368256322935050284079246692966226339441502865744936932655028030203471662858556654704830936879528488387140978001089779644335771116856153574491617066875976939472440580564274590253221214386478084370164529595012691912997967493733138878540537166307242531060706707055998042481641529629415294203327869281775387652249651095471620741761250337468079853062183685172580856627701105372921947876090836072754571322401760121288932379758738789637546180769511157348486809449629979191698597398482845433046571631677635718100832379193821758472358026029014854373470996346811403173431507969764319226121736737626915647364068314314723363544585138774470243296193639832237637137616804442593977747791758022125669659713477239063897835020305052127121423388046534617492648563785762121286578283465901374554183962016687970856778453541551998495626712159912340877426766779444040357520687887249332955991186922012748451540331225103044557797437378328600588963764988763858164890208732132519870559279589822833699405918083557242572825160406346152144262913903942280156870186795507160509327334768903985854962662860295866356220985776204352652674043991798638869133950441339752398845840931430274804058977476410358899077021330442130827835614075062798454914466163822404024940409754454534660184371957985357266255108316036698842069931169692912054370176876783794621539792272073470524168901911198104586127805122721156325685542158888694891978479553673993199853549195651108504287181690497348673771504012649117012839069777374986219707744623668686356311551202809738386148530041432798666992362585431974714300924024996928111094663358667329644710828644224900070753161384158169658427276221046109474031432060201898037949600065254235608353933932976474064396129524211283744534492578104342255561230973618236778373606761773742437874155944335383636313163038099532708278580817219463100403782689174127461303977659590476238341009598306360144033013572269080361907351113236242448415033854863056139409188450439284492171579696323175835464985272330142210308055296046377627757323976734276990142141210169484620052324520830142013622174774686960870674381613638919067385137370134147832530991147030032132042871764732219490356831864813318377995984402733269066253628667694268844031078501192750180116674133153313657254765909182314928146649491422250657549373546897220262538459805706640099738672162874222426306401762813942878845890430379694933375603640852770686678968351218572654985923599889738827440306006349118189707334597728544350374002471708534097471646518345549936915581107811390675798671264716096324553020701928849550837446028535353633180455795064437819543275675292744082441689868552611606940652036536400302261737350791625688117456824543282109003942500706776879369049398481543062056409153816739278659063047628233624269313743037261530820574942963679463517614082239100024020034431497642999318442765718570867530620510618491327390545347927866387410761662985282059041360302383733255503364781039899813485458515909347187535267858808878115421910334249441837346757182219850129445992747255064703843549659261474691661943781920522827155132508345941154084941932838431152119877206326807279446648207316470236739480910444998125384406825741056190462832734512052798112382118928513916911184703142413350387949364934679815322701925712982779552135901573332923956897814635919202380893861763988648381262356320200122829535211419450970446640980378157595931800306597176953510263474615219625976092451909094855869356421190840962319525252850793844047169967726417983628152702709724284535300165562313004978411133428417340844832581354639751378141408031806128390678708095839519083395875988751221241646735017687352726296188547549022232222599135955794284832098756676839396288556339018515097680719642021176824219637807845206454943603466396709810483518687400211429666253563837718549794687541030980954403904311876675413126189185213457409320750919826007897348210605386379716601472399563485016939398756375123574655510107647728389854080392947881785577806409414382945861968330943318615366065884402528158705047318781308972607225961506571055771736235182633373309617900655824253227355337998964162338076886259894553559497126198518207868667046541018199416221059065377555749956669230375781203784383387004780303984028936892440320652202844593125322083014881448541996874943883454498998829369111605012557037274172273124767377350152976295195890113744992078955875918894550387571785250705408802596404425292325573577940310522268208556426863399211042002413805829917826864569872042311745786210172049153261509164893768149619053189700653250119380163840037758417575908710225105571585749667042032597186983605073468126514985885988592873681250066651002667065145979476976672252886746113427783330623975872427333260731150901965510247662559383489427794726735306256879934042328473271684372270518827922327506020359298416465568923807869672404914348682885989846786342134648124861442806306623731969923692563292720570492691243778432594579950580761189174269905421700848640175549976765856325954934260833269057916889897004402347130590170338968674658089339826310991148851500047178751784543063075136494493350067733261607625274068081271047579159490779181510085067019132847861709557497333417459327462709279078866113791736990013175959171831885999664176409278265828376781423829135988287457371300543310965672670421754808757896014010715654609521083567679756663375341553128588857940778329208871826874139107570232527113060731885405763133706303644090967351107554541389108058610807923179047844836161350252556937883154039229063717898799480701192246102778459387639317837471406368865266234244956383028482758602163006299699410082753108190490244609889430303946922433628492035206881046578460265756653227871496983944575822524338299458050564622108590704806643054152488829003095919218645313825049098690280668537167597538079306231619070700329625720642385549134238362247788234859882416812856601672419381332307276039381445270502020769172907716526491797110368422302270387700870499354773539558146956687245584602873248177477310421401617339210216571155995841094072858087884812130429739629202255466351658518273847291689357742502887625732869688993405077780072893897262460633041490797969654593164068373755902651090311831504626081300057255173980979520196068743008586066808467240427099198281891088215663217796246676890950462172866509320920464693875780905678046066870150144192012124050265546800041837289799813998123229441900856476730806713163033832768482414456711908806889175540824479118083179963753967905973247337468439832954938694554071478841242338603632409394082523870021170530718055873794401854686421345679244950806765997739088016057442455524134761801436583853793696619327281228428763057470165263564446771666984535086485921427936326393572800899996405725194994434800194019604617985774256107307397216197501682372519605856258870057558787965934960810627387482004823641882587921243182948982950237207201628925934897203543309884121356633806325344199992018767440421684799729323277238317243808023631360104478589295737508580458285208309334526358284084062365692782764252628153690152833883946610624898941987329062988523319221141941382897839449350572505705763860443035416710862887985803797679333088180237392470009041031307683904040845783220491671629204456645372243995167511399198448223425740645653013650525322753302230268845061754343911867395644626754278724022752179967096631621836435178386717531575540520444483869950003000532754819261898135743698672523969901254056955035320170636763646526257548825565733473672443893715889142494872620846051804147317803214703404609201090677277922047674081289787222060766126228708504808302206009705297693214860099263168632895738571290622938444146948515307957381801692927960169753776843431969733227713238482465199164121864220310046346579331739141767610214695909768073875213539511111184449694400539739609729695063046430497654994346601971211657707760613832708594631701155897062445778514975124395069801430403121675941397593405723600010719598178274903950900431797094303280188279250984710777617844355122200598012040205522813378382221876755614050785965444048845575953189286612031229405696053017665105351202934640671992615965509344520551499607530231712773818093294910960919219806741301478785614124795516802488029068801640165792443227862203217665686134869052086283532105589571066551796881288079751442915057422956077563846196130490509429193013775561307898531605338227878449799703927974312069811689973928814806735937732573229937982068516370652306821926470617764944103289596824320880455959741422439516252536463217442845797278570590416333154290716089969318308579966212469820101373051124837629800330551727746105999811690004262114799804445576542122825621208662957195514496955343396537835586157756664144247873218273247292748817627230394032589891726452595321050572784149594023789719850377205164431274712158020220263762971047989612096161163313820846455488530584646326301504325228967270499844785508744842546937095942619544403020312992309275280607546625205144951116954676279426958306511947394442534314380869994010814204039292527195826377420137012744598637787189807932669566490024930661110919496579302573891405979446543494554267400393547951009445517131755495472382336407699055896730317816739212199979544068056581778327617053712508074714100729445316829553420945734439028332885028170823638963393298034295201671561588490676005499946536143605619054777559044118493623480099200152247155318369867658129465685631912704237177102891932407627652045558261781675521126880970156232583213359893915377223431412037037044262808068577604245553051682707877792466218317615310721766433670702798114270912716677386762620617307185242213378874177973140675616661959623101118779626218763714068972034644786006339711696242704244192825959359154071492364291181337634125800027904824567340395598130716920567729988141020401496554442252552643096208884073520035948349926438180637470566638879608538085976217128760460760307203397598751471664165028097668312760792077706378741610138461976623857389273126458539766137414848753361793601506089661798346379097308102582983218534513264535298658114378264769785932718282149893174970061749971726056826190918762799603183041245194489651232012439136658172072633750325536638690790105048074592785667645888184151859254135742405538525792225856399911194549023965327697460218889136804561481914048071304173302636813393678195958208848040004813268776708039555337169700073822638897688044370111413343344484263386865838987367668727787691400948973739609971876226997403409858719736365647219820824987831359719746434746031683997740524132745517540481635061616885784929639284027260809400742241305327110727794731422619717309273023469789474112793346288521302367926632446334066843014861038209191586025385204696729043621063316631241793909067518409482437102879253323586596706465832935287023761898208719846818640813578825492567155911106918996421167784904896583058779847178125764365994362646290469944251121600227235248460490157239865316654291444241932206956854893753516383202958589646426650380908946826623092674639902026122986794036990048192176263921384757336129871901123304834253604890095041220040264412713069510669727504858408455355049537022740889410544129317792583298135326839167450618754026282559982885966456889780246655869330787984011831161261897425577895541177168290923998602799775122986766841373324907115887718032958760746783054984481584648140009461996080382422056854018089003547884930242385137047927996929567607207136755935706536044546445055224811012649581386464302548562332628481216198600375014873195624057054766560710335931281573840977637658330484063743505257982913778456568809598867982473301199757824984590148154933822860676547991175606002049110495996538783365527524337864498249991045280605201488549554008711486699495591256643658459032158273313618459244990168205901959036258337520629884318393816974721147363789623269810745560880661783134501093506540040809075388817052128842591802627710314171545087187140392631369015242104134239224647564363691892200780387334989940149296115864213869616840136280883330401169126352896208379753862166231018714088797997850869031776884164926184053871270687882430014659801934592368425771573702484921535004857467032191344985450221734359142270381750763449334402275752755441720047725816711637415910192155500084091752739915969048801498828305621013375716263602184412576628534140219229925909161412192323583152778518336118339930835402791903660979148913294637796513745156579540205348859901031771627604772492114241861700015458905834834778639506230522239485588242145156193288470100845992383026725024833422637841699285717049468435879336677616257236476595244433816599779918859207656484867027419070184519499791876191049991720488138935788403953438946260088323476649814966611368357287750372527989983417814243486159867321044250004010396523863223444932908036662643266870870181400904299048159148762374067019082021424791474198575216623031369512854723582119483496080106564412894724142010759311426883221145087941865995664790637008294352337769079811979728013898168339862114262602452077581115033075447888127594871369620342953592096885021744275377408151051369115747467889590620224204856826766000911068432546417669442761708187398304112820080499894248312097417964175131335936340006416170283531702126236299739845066767410637413769417925837654075356433718988298192838272375319562331718399979575659431372832480551152815954857305352038858243729861023138487716751485006707470856305583058815910693605574886323200305727061297219035066820969223163443912426824621976258710768873006072347861440747513661471383270362802772693602103238709533379724987797892623307425137337436196607352641258736188776731713321229948748061295557040295445845958061913653802111306305382203637854850875278264318840783473441771209820851782082792221941401387724995858242284386120475821462987217617768774517234603724075798272162782853977214178028453714877997430870639472960502704095220464214636751461992135895874933606995691795080798141822199274742470293295837696658146059935443595523818864409996535663883402737094643735503406396480310959146040160076197474771973142699434463575702516970620382239033648776676269073417199673098404309532169096395143478114438108884760883181125561387068829137436800097242882664948880514020547758323004966179404746125491922898288045150288896903475553862072046233439559770729661319938095478753915534603073756444389239282888649749638109776478441626315187376030877887193157505333787666065958101839879693372089479037846966708174979247320529475476142232051226268870258506645201836173151405508025652583932097727081994961621309495758986771913148316075852696748944015219498259913007628793211182351911925991233903522130577794823078492920887085829726184953647117537159635125000331410285870936941602229032401250799503678794022355338081869314238477392174629249691544780730549409876832969437856102825242111122784267991186233396503597817433925745590038877805080757442218722277943047673522195660104668000540010992157255067916804287215710473224627363136753857781846211954450875059299363188767475006472293816360507690210061367661273296730307362944730213660161366252571387112086988353497606410582930007700185728823245213143589376954205702672504266507672960299202544811878474798696736524444287589111615507736778954430165447563480425734065033859349241603989318517666299932453937321933311894733619379525309060144373041253163917482209298999662686474303913786171109363878095297972683180659761983284239970431487946327834783875756167740902748879294045200913078380516131735927066311598898197247363358119069489539169909548326371456705201838221901406148117279275526268151754124685208582028889968535993922487029847848174679898053192441859651550846437618725030919739511477839258763619826100867623755982467390951271911645734606835056625854077684957476172149012264083972623683138238145080651951832002932814181979892718252294822300129806116815733587610091897956859054753210038695148339959031515422962175860789993849362032167272914311984144094717341837721293858029277503798555993011284835160231852573924587405370879052538573393334686543925151748445921331462359005946452486833083613682159437705310165375071666479879075507395551975938088340470500192311114636421000432313397053731947099507927312474903454884869759535761350174071446585292146592368945982640050154647085943362557529386856178587553297567598257703359204811038820454221042171743856896605438551731156179687765602746447384429000476256459580848034050561531005100814027799670458609226819071112606216547791970616917064323425831958254179357353472659313076562820561948403579547889769427211192605275564956842168043864335121498378702646208409863570036281074107334712475459021412472432588533975677535974209835185561156361220185184197707215521148730381299429535153442590253590879359461128381459311199823568652344505865805783196249005207653450363765851756941353009498231743264070084037869408182623161578076521556655150232042568908362550660685547553340014133363030372569649246552516191685917839276774864465115337741263202085485200198676824570040076102827032944688538284036462396097005577513652168426757241412723675771961426377864390527744922525739758050479599275878052779624545153966465215154776874324890272992073909861158806199204442258590107784139290326233691298233257103734010385334392835143973526524921433137295217591954658689344800163108666293759626156887338156986464085745145391878694829986442433547505155914293787453757327189202791908718131671432816478346351819903921558174187968856356292442843114018606934059208331697473472194823283582059997670649431873277167633243316904183161173523041424937297908711753329119205784021227112302577771684901328621121432937292487218255899886241082749547904221205226644573153613060658273602929677545852780972487309336133927928548442939810872282689115687119279052060856011502999691411053688900775271411761465889013800009623977044520991395033830195233600533683028786587620298689185274685809632109034452313661706012432082843514726236848644541183825991836218058907764943211113014495253955298310984750145654641520261440913058594696188640486163152622126976239160656627075219806848989457983007215116238031165351752764238482807850159309480896145130620770971217976003911254669488565378319402210410118337263179391100699470037659653392461839367697756444383070570612348470260531501073829712360975609120694518064216029227166141978576668826091638356724313070662447805727936824501838201142389192123819703361728036307494520873503674997317622254926678359073122561594200659126502482865058450462871226743791454476213507573428696467750556600482667991069934420840680880018809522552116952825800405271072146610962279302084661653137676134505829080504622216214092014275605555412620439975549955295365705796271239958192156635955970446698725519949320231295141058399916528123816709225625602753043790293081102751576621693540231948660274975225823253697044355946258456531903654845596559938677453373303279413217868110704104228587831012876179689065085282751066971823725738884787630102562666316820530915395597241415804361381788706386419215757240522506038610633710080911893032267311895110022228228243921726655469375418245465866372758773007225993562299704085796435815298261668162180274514507369636076592448361877361492722291919720279844582174436711689114354338288448415357039873346397008374943609945432244392067370797683662910354422291191588537944504420815359880131546710308610121816747672614096761382360455329766227544537547819095663610882774573273057278652245864701948520538363527973366611551212786906372934859814953959247883368942413337033907582961365977178277043833813553945674860140346280527826856605292863217634444325133268782248310217565579544944754562393246598845244103274395825219615257427716439601953031634554205163515433676718529586982292745217855405318753311970017727803488916324468688039732987033247538191713186969518358665964268091623229735604275341153552559077390529324025420781050823131344632750821669696030116253631418460519944482695830246654166478048304108919493405626599161458596302234317304396850618567367327519530860719219980244277321229227955879989050387901000987693096586841872302880967971345214295192310895731741892618635563929471099355267898983098283940487165821375274073697626651944642162576697780080291575337514635057646425338750590446295178764696506440956230471419393444171485015426832814936422575722281843204954210225703007979490419272765921054621192961561189276513390409803875170722459587627867012780171819772607795426812298711574131625785380838029606470405220510893894580184526539356110602584003187865199888262257876508250308137790129403930282157028134258169927292460254024952515453025564943591085135694593807494663778491875581606727594384662031354297004888500577310967058761332011837230606655777433076261976229810392660875465228175800252405132703025491688234158221449014131490986684555832265920298427242873774143556148924135401480288295655973036342382751633869151925170282525880055776468075824183672825518745198740652895893279531494941448997846277275162727214510902629315018531558743241417840135173493794372006907752861251767623595551090409098370635100129558702912841331942199008607082925720205378891137672608501467381968653396735818938702703731047358690120179090925365038267936306835210824701076710020053215251672568878811695213273642543983020378033285803197025880305485881257129566076584058809114125775345476806291605753893459071450938607206297426256401485024981799455981032190218469959692566286813512345288496000465389574370340477291634199271945835780594523198120361352999205611741884085105933647207004163316941232628512981411430769461204736139170045649205142393136664592798323775555604914847157160115148535269213407591870502293946230681974898028516653833423455508281688275135540368177858541294382157760272072942717329892559452662023254763823739400216576475038823485582725726778354079526731113165020079384119939130494272949442650478401706135206064086657309694287698900985660225004647688020570441113281247845320055532883944995939123123076365302495919047022788651741692236986318063588031328588297921642597311781916536484497301857781806381040844925664381259759143462692762200222229661860074875337336394247913836180128259706091550623525743456273528971123425868643055250753612576913861768264815124842395850026088741566446903248067039893598486584529647355863399113234280567107719664537285080861256699454366479051133735756069631904148600881588710835818038538890616399856744312689978874766570945445720568972208227288596067008480389051269913931027335591556988504593662847940304045539682013956385024354408635954663370212755656771851611468410753396666855950337113000909246307296339027741704752980729511899936436954157825683918974964167715978212394382344506449388225469851085591457260257957114774720447752741384752634595468727293448550856609663807367437686034877049495908424746392944915479215771393401889685986429740743917320506609953184364679649205040051323698722515025123285446601449623689692841539182636323198859525390995758037981915102338441827391393075032128534177223730483686527862345076892090579134576433061126095011993282725901895740320921231210590942145263081424511584671110306439893005042968967200503134907823488012038920868954161514153032729565727020539184774795522168875027189440329705451900016612105951080230483106430756843603860890128324024212771923354437962934796196793454127137401800604545171161870251208362122587996675769056055306270756012483954087426154467145126371128460567377931279680149166353432083136141608607098022503789226017503975683292576224290361100950573854798663819584186308422509004280599315950714022478839909635334304291239825484432732053422071863141879521924738107997518593960265294274168702026770348061095177815856939895158303424388515612487604061399840705647055229674238157596217577034388817517536590725148648540087752585735120594258590031807404524920512377136388442623287474769781213826465334108914741616564520810130856220517532206563348687995868178302786139357289133880262752406949866488751079111180728868131031177420563526889144549944505955234552009406273522499095361759362637515337082779119390205912680852680297550016077994878944786608809177829469274144894175970642571209343772079148536101695676838681293625512289744412597789195732313055935066822820471238435493893555128154742997582201182423815462488885220707263158062675539112866155585745173526690555258374109232325573863870497599713385075537682103969881027300095074834681987921206426953902387063800121586948908560994623144624544122960381702442437268285563032111140660166373712832505460998352577579179515164348326684774400205376536105701495600696485042261219492442276470353754765314819259360893447465850893759567729921077684631273268808263117194093964946639122903357954082162347060671169672970701126163568920627055210245475528155993628022377954867476014338875620448613267000236947176359524595115189862804044151478540306277056201055100270272186892692871440669273825242042988692550566933181458785179392470058114986927107209645220673745277773029598571550730140861760493703539367572083034195765855511570800144118352252016549027109403230369972697676721513891017463583847177177250703222257000466163115211114428469289261164018245221732013111828871978928353519766986317177633882112411388527682023608957358888537095372223935999821656508252483331298151249587844134360142460339628138307948712652197383361496887334734922848410628208689972848423677797760911927098764857947247096924705536912833489409236330041082887404204487677834798877483366855852719486466341709818429294210248221560323815766834784987596399275995684419582307554297030242372653685148333544893760468601335266827688050076170482580748060490861732187829537406288974354745355190508746709974447525643048009438366797435519367648214284035112886141281993714243523850225444329295348913013663668265582896008673130841044691116928995409447530079139210506346524562036633869621400016769349729175762602555191651156329699038616348349197829910848155767378660164123228104903323453999440182587727773089687104946466069438083617104433736458198814295932511203617057115703788544480804426339570131834641480308164093831370566729379851914863921538583777061325668846540556303545166615086030297350925449356552089980955703654996942161628198494273065524311543530338992515717513982183995324496430413047241116764078156713560107004580444340281515640782052229398418034115254869560108968716625432728710536137082757382808475082498803504756285503708106966246822949373352066853459906787465929545224224456109542931662807904560314443424084642541282403325241530389543909678979372194155465095115353528811770881927504616588555938898538563846454791865910611997698477199089383113502402858928136822692165180221189020860963249277147272782938037350710222842188265988510720798848860026637474729153159572425045767935462944977430679680894337481051449340765540977706893620627219318054923196342203192741605221598924209586463796578707885048268752324045945586893158320278001691434655932946171676169435932228676466409250416030595737443923802640178448537335627659352397604343268630019404844817668761541359752803507106735115672703205793100524549920454305462017649978317001113352721558626473814638438881179348115513172002515078525976468048807157685022284574908542644146094485763771845715868142177696958513681848105176465279893120711620246584085585469814838168585848230304456973449094595775350136174009997924655035801715654526146045180818239404455214585793688886729878645080222625449952423438758407360033033056438692399692427450849419793432591608301412626861768883321872121842114164127504451709913068617936449539972747033855636053728096741719781172553522669953865418889056651937630514593750479741714355603390146503228739418196109013567082893057516400449422646907443598988239798513680492939784883177936705271924254465743885934739723431732820682695730536943107106029623366023444232288099030131442863786016572163525519643317141438766421895598243004727835425601678754159605918756850984756256277223815843292588290376041482349680843234403890033366876846788228391130610485723314131578979094347374661648379565206926457961958592880132777968396705011177753187342890422935635584124223565545228856741510777693482886150069938127715388826474198757052621081787230531746471131127516176519552992420354501028519889155042513413190691656519821061950100396490835271583211088756096146081057609955232861271119015468607201305783750146506105688491495946574910937637170904680704533631746613854055191304993185729180627090667255422503596404087810985384501230871598512555876938817463758369279314458363584582140939336723640190806635928985776286779912502675181226469718441519755326282459333864344199623280756893328616907796838564614201097809277285527304661449166415553965924585185673298004458284366776175184222817640503370658517114707819078064785983438961677998464175205964164552004998644208783486596073932478475996652133532476009836608473992220784704025052698495851604100476093218223285416396732566084986914798553789715941078437978424430669312831183724240998773356765975753127472950056574714820276581831809555521002959559987003260360329459448766640517498643022184373888115753416760793005282555436841433033381113108490037108858993080341695422202403328021612561158219261910517728564910420789606328068889598381161896073189681142699500655130552075933368875894800105789271021117983650781324293618461521857481160540943526042135355305508695539764848293668228077165768992522617588242374117877601690984371683774574328399966297966108739673968693635377754251567202550627873981186391458463320181379158781791339776730157248967964442347220755555043435192424539594692201797835105079942824240257830443029161882142107229777924005897334769077973492026201890050108190656105175333687246391340287316011358789595131916215453233227113744674659892116026633105345121598557160178268000508357362979785215824637651075184890994181733377845103848790335293708701259202743864268266153535093974215990696363328731027989478670784594327174599187902520425842892812487264553045914694806371395115272744847583825029389590274501674321268454466362118208708813955699487093564836389778570846608355208905786660509063006229495499131938158221912908245064798520873521108793845522896662000521143439130882084872688587071907670514652855867379167029707297746768385933265000819753007085945754266169935672364580212590306766053334913247565560035549438748979007997581606080599941460242182325012351079561316333052350834143208610279325660785066045349511242751913124160845455262105240232631351055901449321908094656681138551875804971804868487809822259383520903067353100492242704795135219290321236051383823682172339022928473414457740420188085424870890807990604021128454970778707578735064600026220936817774746721700462460180529165663154901792560621747382869516055110813767896052486684714093019788823075455480215457872747231685164380352657548421670380163284605817253552524451973133781640165285334143966293611918601947460564680689986415293982759515273957336822209251730796793941216034940274083279793384736618576728611047962622696100888931761480681440655160873230307407520760431242037301430635709047722169991522197212999142809929197832583886884647963020031213347158204736009068071428308437766566197191144712725798721191419949137032969414728688613139149858217726354877690445090869210494648460585666642848693550736911042900029861166746058460528143626685925198841970982250119368525000558635051489068273643383534304589320069728693271735098565071142839986460272353306060329641485222619015587352092978573269549151203024873065311386924493145855451624458554846198360675309259691142988671160460558223371138829470972699988384158932660985463479370958516402270807648107688744581529312116131801046473246226386176837392230648174326523975284080970307396339599502644246161930256047416975011993881333238147747062776030984268347323443240150988994420067785598826351116201385091543363471305501157386757843070242095885519132842288183497406918833420564790600259221382519728523677431083435799783962345862478874127110652599831714059596835453876183775483257988134509043750979854129714953242076533688211397981391296243447287717381497277032361937956735307583779925345367204147255196345535383943055793316500486745773429753878022597645474478075683209776657339206984173684445534473889119602413573975322765797351557511475871945836855818004414454939917347630358786418152156639353033945258000774138281607100601329394812031458927371272252537349549854912594614002308682932971749764681912568185525378295606387247534450529026924919624050454669711930145357773345579938444989834797447408483057783228668399733713660865246415916895372318367791789084581255184641889837639150702221984756393857967405296245312108466399897052811053203764774673785937594061444951445704482444794128323550858014592248855853661682105264782896400464226206252763096989538678029797048779961880686521067335700014499138873482344503442403818503648003138919251634168385281760235248669991313162173908638136086135348889776827134089859504342053117738141262976875489992112786371383044701733346031434734030968009741540512970130705946786832382443619380274956437119514805418511741056967204976840854790569448137346032883592017422858718763906538811352325297205753236942071637959420988696581791597850761443190090408384700632967596459656266769049212502650784845918570155427896386275816532616906644299376140208682799029663333536391203270180920089105796286252712344202904752232523099263253090754989264506694569716156838906446087151548256054843110321151093484731672174717927643697590482519597742582752453462294893915194977868226958201370204295947730190180040838470020884947526069205253553148277161603497490073578803230977227222826950469378775576381471707686465419521336052412428561594687733157989454459628233491055927264627835665920066690136393568609315006197484233534602717379542273313594114176397952697630234258751588362642972495261514946313079906240495019027518014565673121065365500898034506687382238051763547725385795405075086860946130118304901801772886536485571874672395940660230331954680707849309988819978064846026570658632428712588914781432462905908473942730312811997466538541250247069514303344693193072135748704435360665941994410727931832213577337358339016260839104183809841787803801575250451179040200491003168557123909373467750357190411936145867446540662339227785011302141207221483685608452091417484509559675556844586050389634771748709457024904106639369978739815521818663085049549811944684896550797700991680724497518411800163884741495974157124445758516349353852447816077705291243590074342964639535874764662270985639032394251318308289321612859889724122447100210267373042982073492495331876509779466583887760868362635443598483899924103948617559773042906851272112222099790812171074474351501902286043767506907891936992873772208943411557630878252186131462194578781409541459925897675780715670250781704579833742725934233135358494659552154953236665425294052536430684311267157820804828708360271498155490151532209111739709244396983568946736686324578166670637202714042164327385896262972426361156879152720798040476806167491694505675483492598585071626857853928290295405138686282544586491738647045440799051557800745721018357594532347688516009912863027564282308729300633537870545917271267064205947228766798940348967927145962511290680370517203456373960981103606112414442414014847919116752089795624096446257306317573129238433577385452810892799081770065860060693528020141200070318249387692120028173141033071963387790344926782860797792578445579833806918972718361626161163650434380183631681883359399997926939587751603153733210744746363171336501702886819522842905512002537079314765010573384868269199320335767030051369774422415825301885181508893773568236648293198721422243324235910504213673794482947693392441133213921484909580469618439399632260494502835723728943249383315918205000298246755100895100508530118675703175099711580383813436694643320102629459002857229851398927909847887466150993357228180639484934064795379321200996313240953058753677287562063914940903725574060669891148139399919146789228554867204794601257422285416388580342895291799440235125330916577558386078036638463174038245401176348650690106098051123097525837161348027639576763407027701240934185371380259728757000205590930963941239636826185752081961155438927225712926473731851122762582833500560745450600986614227938318333937819988897941687988508840992441688572912905719591799742390453766086865169666057256119367174333968932139834351667807478239739173042917836536323830241133895627886020652130934451550497012256587036719840658618075227655337024548144594785733694198789257299305200051495156750785248611341724453487470164630846923912356807253258965082935237820598645458101601285842291898753018090715648320501258261632258754220856096648263435117599393098569353267911173819700748070292260314480212859242074471318060927526246395215178902247388350106536446535363942082308460144569345621319980305117490254326134719698024609150725820877682627497614912273903656005749252467510214713523472774017874212699450495049158833628968139635250933888035643513901214307705715072379286616222533499436497520804155926834805618910129832986344041498766637064758298002579025457918486193251071476535547773110970953560200061677852204361199681772824139659370193440475477177629046480054237753752739316375957172553228605413794678362101208424971592698498916822744928473268892552108937818284014204309816822289852949687455717146801371209380625041371676681032394779804491583030113887400998408784158494692534310799462874273374895909484057079118877886095368888516305879493572561955045071412728498970484182325262053316558787651882834406006360515527883172605385903944888781806821231723940781468891519879999563112885566325673183192493269953397040441542906107750664182157143781092956438967698006015200796568345524578243199713827473338368188107983897456335103575217261614669694499701861808766104438716458254925631114908901295966739980902161324946860388642119323663889016978536472009850160783092494121471366676663816992232553094549244666161979842512713108603509157755828126904146528634290409853687588232234620397658219261724531304798880018253181918861432656571665543930673177032574386231308921182152770110767918685180445785470042561060361917840115942520423193485513664289625297960757608158727187585004432560372337102371847237211333236917367593427605341666083998646022606430603765221348286184321969999812259874822137659151454535015897892061674917108372453027877046848783835323840406062433697644844344833005336619868771808063537552419804391334113037403064212041439233477021087768221436703388712622443145662098924212959299773919700570685418254396377579903288711834843223776392550429050388487285344903485955963001894100591772258264961631488779604976851206571064594648748829532778584944972473534472738948392418741630245644159517378503012902826291155968855825955768094997491850576917612859557818035339812468203702299922027138941503606192508179245912237643269714845799579165301092236393580429954039087457684851102208316769070105676731654608689819824863753927031783701275834376471568632120842050395311569950445765212539455188250954401634615894366527265428061096901872769382656951724110688952804287500214137141129988803954843756836889704723774598172063977743193234259401509493734421214246461499994526203777122100875324980095898798863463915295798276135202977078143548426195816136223702925670642879028281456347196494069354569911409527048010105819679206108382732106393079088017178771726411328784784940823074003253945287613394569192764325139664024349173099347858078885218244556162671056662004933076727241089685577763570804681131454292147288379571954108768099948382363075811773488044911396745792990365929031157611561818277354684095972281104618704534849760082599954297971904764417059518865761944582473264537448700047743780485673731579957268009259445838619684353538404750865960301374522598491337022536003351574529193214986606783313743553334591123595081717319156747619770952589646670757382973866391173253678199065849700333564632901873755538367810260586380132258374979587152567969365651641869071618035752009881230025493883642023793899053434890053622333885659385217744487199713598296056103993287264713359492037175614252883749250499363369154810606885832062103964887768477641052502315581148255254344038447738402294443149191662953428870090176239742521384406912352233058445835792249122636080383173212989960392150603862705361933962034801856918081750344739143692959530962101447229662942403330982164792234887042079799595241835908844578412876444649373631946066842368337245030866500151478662813026820430638366447734151752310449405592267058439754472056932179847814425663525577894810561112810903375892814782124456617032551150136128731643131991988484978361463815805909046631760732361089449026496014390683282878257612838756797786185196687517156738708524081856215801529539944773165295904704178401523088398781109782093815768754336598761278165351064970625095329255098173023340990981172224320989627423989077419308991742661116081165565244416404150114995505896394210790351924085970548060131386169641527043202207935293660833829194091153352907585055939464258203152366885172507380746457374401981306537595185128124993918102409145018776304238706728986443110550768122059778118008005217172623177856947424734600061044729617442375839849445372297611020424641996001966480894991860851798748167382738531005370435295970776137128461553263711456939400157565771843985848142367648856409953301821937533117708842288748026921928908748373179574732299956183542861996912398008720686739521901887431936260873787579083107216575022107898747312579234492346788109405863662944135631128762859773936361405199961331545940126428627249041458132358778754378546079813445682067933490868021875120637209187877000481122560262898309665449938355693167949493527017985263564805496959283977549868153414800682857925789333288944376714767731098771276512615285452940272470584089956499464715946505707045157813866493907942243241691546730598230167393573859217424984431603658578723626235517871774862161538850911543189817512620316388170429518872975781427476058557929852765061915804717030593101959503684034373308752290165695798312301944953299385665134591487892662744210891163114398907724576921137434290605140517481885572445463601224089776969309354149680000329691038503837286380829353129021352628842890520347198337511839965445252019985588749719352552498307874861889784449537052499304152522134573301784745972093789394187639674150660864588059354076946472246366570190654282109088571246665114660380783995768883844275163971518524038254808578919011815501833062723222812885496349161746372734067697360749802365797588380661582314647217366736661061218910578403332400459866845624622461209019144110095767578623226902087308885192372181844271911853906328421035597981557768989848576922817414552357319375571839154894845406459838191055560075600167343903091252830399644177575636786610665985903343926996480552310887984281504293490897849426303083891596139881053354585291684655969157412146200626642462807209623276641963172583106411334998447550235366614797476146222637285590499870616788769333478539883070117258232714086143468505769667015028894898334653111361293207779197883587663334537417946586753845640636005594512379743609762259566504995241131270201971665832208347456554823416312670667927898163900131839654302200521321107084252380439409650520160618493465213098128536189602028976633821047900233016877427165241100667647634806488645868675068744721825344343438872821310685032700324590179644190106987185158086235320042094678899392614053794675806242847351534564451199895412124855068208485386624923355118127950557515634290892342774625125209008170495526528725741714250057295917738399123555844658871307175565847201504043735649758800796226923517854571635999698972650699058279618296642867664397608160947602293905691911523203619797276005852261866107963525549822174514211353875961634641758609358690697221073311877924714313920634762442004069194748155892925653964484411940535221249158054859478287449802750210545895328746432374333662309552542054375185914547107290968484670060360635976999755884492954041982032409228046545887252244315907976446662126256087316116157483784237291247398416802483035703329564208921470556430450620421025831469880643007451979411289067668228153996234101673716353592542317683086228271485150827460650374586969891278410172575272822392829638018299190953179414152961760403573453011901019299344950837926286227893516079997102263342424866899238606548374991214957324125203568563898364393042277409668284151432685411715518992554991841575694657833571751192790671315066616881694126128005737774545036559860108204666302633143115175661277293940426892949595235486781150567932538174972354570603700225476296290657955556094163899176235052250836622747972025106660822463040753556793412405857907376307173707988931127671202091589589358834666833102225345290055936654965549651613446117979416781219730801241331697979314794515896313566660962267260591616106561676693466766377499986316317235786022815126198316531075403264491505435209281877885501829183639293037192537836164428008275639566012210198992774799128623593184103041178528467879377699657239002296332001207509904885097897225425123380067304925614186232033220790394999521536937140421853891257589482212508529108694953107403638912222732669736489016032471348257182841105721268672473698649094124730480347613300335809521833877129597735588318559756873475649191164307182220919558950706116457345653213646045418313612032879914770488039572273643794707605433960719356967769211926735040846838034778016518315490426613042762909659536508648869363908987733497372888680562616519668924698905164949384049253805117700046798256885664492067492998820105803599107767763316616543757642696419366264859073132082013570013268014612554596906922778086074577404673158938611272832191074846609858826688040467579641064497922641349694208502894996459609443423069627444005452568822292618481390972155872405368789656411872082367644876099922704169552582021753545460779293305399235637868899211542456904502977398668450309171084954478277241420141462010341712120970274156899783355830636399972803910562297775989919619254219203420027930132786304210638019559606387586608889179467851349235269123792356688134979498893290395709202520256648676477889764816592916497001055033591507529666899428663274098619761782320515951523583818047288480683498470037978740863544808801749062099683306756506615880095387597965434780782394865001373201608609864974524886673293495722312881868178259302132787676946219819951710637018023557727915578039909868408041425049171411823104257213506353228402519937200269467031708891400431316668939141780614646649285174877002850596693280812493449885997641099768337914315712984517271794747591193691770457754281120927807722514230991162765441026193310431535042483313003580548193185965416627923829737690767680771241530790886553455371922156321855257375546509226600627869886375133558938606401233199714226757611681555362863796017838233878561654052049203052301540117551768352133113954442351466971179047613759258528871946689823118323311634922208855549873739315524189510225168788442454305144280446800468681000495612987863254209028537357314707169397803636563672576280371068247733315092102848665429565583771477618061177028783596269652834981214549860319058645272689379078900384927371119164934713908257751418673655504461373277785750653528507038746331261859922676075856650130761336228722264207999242612577148968443576172703180357484711027778452986773297589772396883245962235690523822631983180800750904474497376330171668672733524193478171689915300349490823241408807148178054878045775525328082048171864387269602844022733070345856261611983589711023561874817686906291116293759858946580596473258362053002912903313883830150170161232329287310741241269759086878956431543878485994713744748435984415764697625607667494000923836131069929144804741585408813935222013061680675180967749652747130063624158779663498371079743645865577419604563590743599124881112014989066355840032563983970065741478867615977995831879189595673548224017073407305628477783625214313711321225324463608011471745258060549686925577196252859947713944749043295002460541656221910428976463525893877525076283907402685208275188893625994009219388092352659380955818748703007251037197053557073402001717466886001563666926613186293551206026293279861691586123587962172747498518558941680413692333981522609691478572996431908203234786759683134310424772441187220047390906585989201091925018767065590289194229402819289619476432924796407103312833911151580480148386381911126369099164909415717733140744291967697189594536196999009259043186445818246190517642483946809451747168075197993618190787212491113164968013483867547443975272149260183406558321036298852086517598526469978265868187059095064880645528006633195278712510998515959860472971688892334526677020313602270478097258833785127198132755657684046104068959507231902630934286433588419915518369660253242771985398147309755761427089416282670921606474156415893913485588170585185623170050772306180311165923966468608999247640952809682624183224561714290551097115499223630278371626716215319514050302061463478938407918576081451429912689199976730089835205594873858235156022175969789535856725015417404646420474757460257295712238531612415262897357982123968904599237550436132677594192520754427493638966187556031553353604247240525538872577661845460324629841912299582398245146781984593215771410653344838305712152325893894323850873598703500487054798445173905159422303170868483765831961909361465631241113845340931202715864366501296312973506443723185585080368846237296826826483510013863708355477801352356973253392087653586001979582104827726929419673096622480347219320829990179987145630471228478277678199331060185704641420868297335394933089967186893021340172327879915323189591142087814572155720542540732738582199792635795236125137414750986241950827726440362379043851202173732081696271702299389536981493746416774274950162216342125776541303891763937787467815848456687694672631426246467162714613507349900637460187940306188399249195076669688286796677087749402022827923775520035285409830029263364511751070309887326893462603027286740052530779734992516469125104743374052547589006858242302062208274580554489978861977659575433957338579261490299702311354539373443651737960498772977259507162349639061997771481085315576616518580317363143030157103373759946435587874082640446016456144538515155289167841403007441834546663705079566735633438019723835696259459727198316640998994584361972589573575618720827979350675870101846517714848863122660476811660371206179017222861717617912771260927379740546114424253609576856920945072963629159353593307815082109237789694043218206356307364425063321221662154633466266901539353930195043530644070480070099896497493797649219955977814480752627995886759280594538522995022751519103182719308779707161683917947582243929504029838724579948188535633425841857464417405089912746821613346462572341993417031769695656997641308511659555477117804634166730628203480684587885507224404282708845718890639597978440900413620135987726036611310072277965411074448924750941692385675564946902778608024164960138671199380103875120699516777122287172717501852137434207719275648034746012345465004288185006352886194035300660836023574883751615694165104090818379243702302877823008394749211187312606457470298349083563083190784686663154034206633913493006357806313690719350345170947324648143720511546376184860098414698066097368111645660553894012554486749638675058451025185723212187242835269378694070085682624259151161757491355111621663323781579736483862447966842857998864478702529865832392214188310698364698444531127402379133896555064896746592475015582128275702727097949689840424170830767790954166396634437726818842586539160283894783770564295829483162280166126688447950966638005812598220945808629260076234475311366871377242700359432267800135683914266009565646834275020499340734592876821969517821911016347151681364413421002941118720998428057111659758518630875692605474037904357594917425567699237209228806504945060466686827173365477895138444522877077144063734824017576495788951197884743186383898754704435601783130258793081908095439690394096965364248698128545351906495054361266500876313270871926191412729294564065174509402428914358315863746875439391868683958702799195960197425340260535940987784986670893496733327045496231396829357366449035968446605562588654207384655124314863083567203681723865565876181394030247596026743564014399137370005238376933670361437718852960743749046881595333002894218023589518829839786849831322321176681996017246888428478202533197091788687225079872874344163111932741227007956561585046532794904934123284392206545662851978995082107598632954721292973646078380548137786890843076246891682821648518697897016839733478256605310685077419643907013903015928147505508943187551762119227609483204340725522884521609847903846446559899793456215951652251495330746110725465919212011338172735036909469755168607991269224722218785025516612914702967641575767123594776874732998274362932419726789114072146959456596687842794106958457476939797099827022712277285491500366750132030769873693628838610721099461631141776568660900076972609491840132408198682013060930140835372939562025916566566035249008403110939069351229760786542121693165627905200056152196371345071561409504118206924562447892703144614463307928211937888824568045019582644732881549510903735973637255024858434810017866405152578852353697638810206220042051891440661454034607742706357466484179146396587022725420586588489992758497087806791505795617506955673641548973507071625276228140046153797335913805224702474025810782729319229199335936734277018428982116982250916396233756812629167669880103447332312936591994177016916705180817069156626336217983727184753496704745148770040195616866333178711728864089755319389287601263276637956173036628208782683247695383359547209289512986028454233744626654914174590119489167194939258364418618114418113069087998251235829563219853456937816613161037881719884395951315698380259909270297367831080867566144534687887701194344132426976416967049419454857864935049716195331739841620327617916089546271414076070073604418307628198886484325423931414749606491160923490716369720734659239801513905679404402379941423513623217765709659502294899002755470850167746544186742599019257918178042532623736706790404885988498071927496929386518853808302997736418455088451164066280188816623267010485884362754564510303489429855463494299291328232357372795886472144081637905656686879394072466609510268763694069341505780023276751830882067801185551153177075743575870982746738750700786752854937638462773802243187536108241819038280300719705420713155259897731470237468586081105936111960379250716937547056174865872293033905306041092838183947692924943128520676577061680055022153597578532339489338439049457633598888142283606113601592711914541041913840562281523813449330505201293066772056190831616850852253770483828575892889971455300455480717428362799614655758046198903752551869955342839060986971141774084071945806313449840505141335019713434189280073938087967516177876626282066255201454538834672520643209481931035393902269097951864486164663704099511407503863723364118840633688898321702488273078685976583880220293981224971479264223133242080460126581453027467221381373621751615567341043119845488107417689322979438104217894931848685365931180863987118147983759580438683701159963190672079117961438630479362338825214353486584149390741333923042374072472546394376299805312067355057662777669872003670134926157538648754452368561312562798504905589951629046541022957705763884658634567971578473972225044796209872888017526693121493092394420637482484514843961926552477153873873471766631304461226547427480235354009575633248646230950483971606733704224158838888138981410540366698309142947853680788782509764556449214401037030195512036479982430322856878514031601453660201465949326039832964898760581250195171305639411278850529343745493955266307512805831088553157221514455428757128724743148621747010150325289587962222530870266050234281834428857568277243863466559868888762342560559417760155683313333015828278833468094795815075904817615120669557263937671169890179956625575653684121133195747373546268155800929719547933155660589717649223318116646430821601685799529367370415455595915421581647025409919726724510230019309930207043046350268354267226718839863326951940340149806418339088970108581161479854345515658250132823292820497522446317272448508071112928482573030272010543385308970493111621026974397597005490408816626509667973522389785939123808166669844223305190725765466756993345100423916090573349711962742720296249216377183619757540147197879409867234818235735684528076602962944204290159828305241866137602867919716045672221529905913896712042054879501265610722245778523646241146706431002081709803673032406745503219853480812785903919456870973162735954634513277461502258377870965635461365080146087624589095944454508167214493102394911757849805034491647783494062225959633335440975003819189797304213717453388999419792735798510614533450952476541334864114062781148789073546123857695933481667833041376794035025170348928056930625108363047013133149413653042910378634932353978505188129348622415266275831911798092060943042476910270381158265470354867605389243678345449214810286897422736592708244797239943379927190224236198418544340053153832882937570367513489613782063338284219926172898515124761527821091884215783698047276194396157218607130437071698342834374194127503780593164770039450560386646396090445735170711990983241444691031562052941765496012589543178004752357274081625149794900268151533506564703208479227772197991136983776235591307855845707525219664174755637577615718748200661323311465464595666389999408655283141567397010390053501254826708275458414140686664859386592365516182689007536677803002306574449683278645779172510296771699464476012529906643011501961645603228782048351178532309129272737341796575297795915642732969654958020445671272703912584669398248599974400923138511802045029329698284504063247856383530203865706691103269102615362513376647923248051955914419330991876096390292252474429284626895823890487156286845265828623800068609778273047513469179497121819552361323977845169481722452643380191944909286105930651647160166241413091017250281764046953191124049633262606862592412137631876684449322616233554601491944300442865713023763573320290991845745158451083186182143133554259475609038424307182050707230377293663400742089945056791547856777051864956242938750471061961356961938158564804331970009998428314358651658023291612919012156532097501436241094955649111430840849044568987594381597096253767230660855881775349349384022076994254650188322370170660259166929876358037836574319929404691314043352389260106039753089268718829291159133233567865412132799758290035404949996223654984781121881275724716413527790920642569896458494451819346534857629744478464775890569224184355282311474885342578725283891096280754057136159608529352265828656588732194983986902925351114104109234960529832046438956810882661536404577007181595296112509148784465146255688185102495441524392032608849929195070284221670302771091421714764893153814536087821548361627245876224785008746309821134109394072510391986409602124857641181096544173993274011890410196223854197786876790904090408712945463318068616862656946357138622604308781535681221494437890977786417371309109055550733056904337853845390027765008379563197348668645935880208307124967868859030122102209730826271437606321114859255871075338928081955464765502522543948675430313322596658476704853987390016272815768123401541142719205420447525330923553404980657835092075107735485806350262460836830151528005432051664848776149510607737364947399409453644807345574155488690362021122278366668361332236726283341071949806359188707541263669032249997183085422535845370540363451985385109737017221462866906683899124224946003882632432622164630816248407705917980708592671899582558284837508052237963686905969001362841377633977991422436352834590311330027127398942259440246876337483251209037318850128866023043883312961605227945073063132895763614068512039792975776167119291272147605212032591903123636768685978385849685595635131348558591743406131102233000533671285978549631803543587447710707200851249968511824136824502010126128109719833215842029231534852485721462675936318539030586033678259255432774126658966018034587615101482887298471555177143488540474033532932945984801668493385080906538158070456204990586405773156888175901815930721172809100024327552362724827783502142267254293271897703717537627696744308869941148945365423518474755731325626643108777852465362846915949268244400582138748260925019705157502396065155070091086742645663177993837374541075445266654468205899663677602680366419296315658505249276101225040971443791995676776305320277278560988466213421698436370684304699589054257476701058334593907393925407909753110461178876939093402340400362896628979948178324027338044649834034409029429037068133437557435981126347512583248140448083759735877734242309760643401595176638590930355142711492149912890788666154031588928683184558998594301751976182731775334288012223634159756429648747081544350991023349545397494952554569854142587946118310342736303311209026724271563347821458680601306509574066437073940734977452631457518576868329371444035557714275244499326709372741277669917431098007982543655536560240525130416500656791145733301586587912914473322318544219250865480979723820970357307500695347765404783753574366524408053925891839851945971551330880114307216174803449505790558702420625325871066345640959940185648636194937304055282587897021301714366936455459463134826899915611077628083008788375845943308668683137106938319716164256853528318140231508432039724750539073302891302873861314509596212156414077960864741421975317026128614022880387420839408201823392856795204743713816213115332629212767218586466754346934295837273038931433380972388745565259739541472803700933154069172703132498678665527690802541739092140059102120213356627076071731783563836942501080071970669415280367582334071969117512175812530734406054906016611210197755831293769353945015432508388631256318794931429339181625713752740159944366754704992384987689688182747874239392974079929257845513274999716264234878396048297227473609713796594978172304755324051596117961352440394179014537090101193317208543980134533565310995350418646379717022336893043149486578161727794737516324706667012683241285233585321342374760836773623779398820792167061201980503884581894354392929112549166920505194154707866717239375809440584780109280228876244802577668061663928229426119098301098390401579509828879224072194758895067892448784805266939830518866753118186404697075558325226297118062030802321954457742213123268501589006063940237855626912856609101324720257997774488218795269953209272631421396842050436120149390389200658161447302597654868275703644151598941571872579180780756245030145452928390377093988847940690108383435777537359376186789333142100682015860002715794653998585385172697413318574548439168826631054150950874931433389555958890812174856317802546004882345347553695668027075389483906884825321871423917500561689444969262720653171672673874959750731634024510083094400326285697984033296452179034423669907055689891819528391283292467194062967528716275332862615065192902028856891638053386833750963330340561599373020197904112412129893361156993694823067596631379080898855278448682654490740839679916310550475692128009563663585414182606067439210446634547232331004142786840801174267720513401474094043764124263429360913240573604053481326001338933130707187946596202156488154839464287668305998794988437832528785713183657344650071771678681155642742692135109714777004557507876130268518815005970001987121313197693797405395494558576154056923214798664574846987921415641207193838324155379972433373176410881001890493926856652816971067623451169621301486163709209975942441425245137858023889218792555932612260670113132167205205469098758603802009225744052717296257350914607661201241578629161641092598380327334034163232382654579873946673355962753872690606910876794509358005999634822178750829315547003190814767228023527336151705093270527449921253694961993868761126527310636182452721485804976927144058811702633000978424077655380081864643760446192979478512289117475360664440427923256557290157316992995195398474758528841257148681080238629259213915580907695817661460608844759367640960358653835214760793429728817730279257400842028483344221422199037241841155834520722442577833539215017263345767691010906293765264576212996512760851273211912430549839092108662877549064392938526761256686165653683500935889038181027089002143936821454591197507024687036020519057055619298114275859856563186383201512291131303933066871517503418523292679588388584843932569595833103833712060418587756115439400180236823116091208160836096351939309756418663246620403331553605096437667804560425645238126783163645414892087575144789101595645358258234831877672594115927942552952951434267550215275957806554279246687656254818486361193268728582476836732757832854156970886684287973593294811423432794151371976850936601769034399633107042953150787485266777681631950278574326937220015353842835723689502155227196506765945949607545864105778315288852209655316571801672549744745918755576743584736517980438757855180434590025139636052729910839936309892854240636518668936647339258403154603146975472300880021784492255201999423140595205713087074625047383031226911050345599498687704463780310986026332266056512968199546633199795413505175687450920170463102365171095085540629975650642176714484618711974539127678787160134515831013274652073726984364443740898784839545541764304622246398367605605730563198297871654410879341366669091948916836219573925853756678104420568331273374327326647454451235870668048506181948031676765484447423076411782288869756913403887580806288514019399207557330913377157571396381254164136393150971900336342639400265216717020795924499773502170270583280839637071036541714361097643784942130256927628720219288105877669308146983526145377739287140147849754738925730520165165206015678886649649483353268122498328791667458387487547925586642500791726080855518431137634156188095008269624692143366596857387274294006576451697477363247316617842765029275502553229618713967488817107679169450721431162029851000107193029285652484649845982430511779140367844333439493738167900883644673321940508912126184455038851063092534957749433829480060125502329811659688003325942475422852211163084669661941338641917237111400330731377112120429417571570257682198265433178999282184473876659897545251886802418544517147881481055348153732124172363879362244008870980110599224149905581183127182374979963994027079197413401147823699512768513031009886939169927521505807739699594851031302031404088693011781812183037922095007355609156762772032808502440893929164377493354255701748886355889384669284793703615121936929286867721276665058519281713784446857699974868412784829248903786725386989009045571068535005315562752589779693767302998457594989629648778605295873033473206924480012906056355602461783137401781432145884803135037123383682020892822613164173654144572690328637992393491681716531963742612696527428550915179669850971822987002283725915841054414738751106285624405803676345670354780603624944582205240736943495181979252073124280949383467674364932870158180418222044043236019021092196841277144153400603901317458439912182256185545612552958591142051752539616527001392243087453820440807925086806561041237966505804063443414897379813887133625618169908010780158244301322175122203838867231698827326528106117247735923914174514204840534657327438561323303252723192216822304270984867851376409555260266519066737904582565758441076227696000519101027783544713988547676435037538664528402151412801559276473063594151867969482622085191188641385237029123147627741743870011465280647832114988499552701519547536083616256260980823029020857836695488687843390403031812245167483062099153467323018565204130411483318882424195947273274320421985675610045042951845611618919703777480889036485840300686939812441004863231892901253080804420833881504352484140467016624856537613884186815346455794999618705234844665381408376267525007463193936571072254553261799623772798996940082139118455869197440714025195788025774605924873414309088387649077505161168003733093547444486226434064452101101845417728734960383213255788030411963172717630302023480220637213998738176517473839273727870201165527397730043225805904113853663139919999232671859243020680365601563485740603619643997882488115120650880085964712166422983842058107670358387295957278484619595165910890460568971791855846217888610529150602296721078889007958817400363439318107463806597766334820264805909030010017864862504841796037811138498072256347345397926952065286386405631888832045101022353672542511907343338846434964935362041422113287042413966286244631989427131900505546363843004714540825836178518880248829721628125664626159332721327643189889069408618681567837577385210731515434738737007264308988932141654325349163965595402685555515726572918320905131005596290369067810991739095272820813128729384967296302015976172237918751439635356172308496151786135417694561253270679682926714505250973346462855105865970913395606914899442870598440541496316880864972314741235792215129622774261154928352421842278984930638781707619062189086391473893869249887740285193100813980638866615296797712628357357248799532548103712771938367363829010774519799945234628713224713380288778172208158355708069208417194944503698450611127569623919589266936517626278502863389395141920085976643539494097230070902679823968328006327481562332760211542654471589561994554357261269789940529711641137469543237447971439992283559796281965293984759297917254657897303556486194769387805225660831873716195269186265979679496624852283379486738085052663265518754095671560566023361980115332218499966265555403283802796522133798833209224993767418693675516327974182155024205527490292578220455232315510158442283397909569012938414819996070806232575169926854558001830782150251297871878151872378361550775095869022387460894110744101094376702644788037383802604605791700928260856307224850547567945894922584441469393916361770158219862969736399052491007735814043375773833408953176602675894623237086063570203479008088352669973657342109366986112902618770565912083055249483784283234833184726911041018702807084643791633507749438308779556292488797734935894615826767846437902395609602064918864889650747571936213464291546016844320705656234158799897758692745770130255165323785304381896003145021573163873909845585964177494365809874068063620168379676401474601160709794624402393036909301122700110439055346332594008121812592225599598226594878409248027594912294660593860044581728593997926693885134615424380437864412286892920414819938997229975276364901097137305103090872267238688790265522149074502608303761806883335099983710889911852875071693114355454584916105356973555005529952725229120926350006810586457092962121574513247264139907336044112962748980605361778475679449648141323852564909837585803449354214945611069440213775797205706574211493515558120966871294231017472624941946868658322877732042099783701363509948835764249436238773914618730180877552070779556123819819920681587103666021953497684151526436319480584210619556978540404557738839158170479629573735983985335651415032429297667538045917670851285117128615942348917153448341504511495763727397964912465922764480058475267706174383210696695479816791685467608639862952335850380865271497820701920785163598086056270964831270786236489743129807594516194775674804879778220850847553986729889266959327848091918878856025274158867713416554406498618554374851494529678533250105164875880554980894169878252418164827622854095363585305477277758322858183694709494089944804908852727798188681749233470174462023242036677169490313716998840074317308616182155033619628088839226229836624381526472299038802003412460880762909434526360472611756609748844747125214298232461041766358468963959754331433143093143741486820819104835742454053523253950368172535345963486460058139541841473757464639064272060387927693009661593619188017661442487158976460454525992597803909609975167397734133710762025539296431663298466720166048164819398673692744912446093736048941878197316614590174144001288058368858093971544675288713327027889650970521653611328854719021217850004043801959835525104422921373768562881838356594821864457898616631131809445609394643104586207994509707410826909058535191167910648008533274746906377775503706309432383481076416189711628764965258202946364012967258523106202318731676084743470296825097515111941438730028370934542310707324151067582542848352734688368260080299193096144206293337951579876874699743846086908443180395852799757016835675752303467528504022262732170485174643545435000395315421110508612442177181974747014110876229523018755435464778931395186925688975936505563103739178201468939272174099179297772955955845039941335136758325783249405552408242585269396509496212912599153579531635555013215138334533883736314989043962826453695121096063620638725267101828163582967827735537800458495836865705662517440381630147837621006080846755645476278420998985485709535466927714063547819548292524337837189259672179941694979633650659589995431104952525811853420091341356578988938491400970731109862086024819537539618978286150377713679363734623777361786171532855690238585680299318933103776930577811856325457410608929786681394832506197924296427424264023551702278108302856350870151098408735391136790446673891041293147361286766259738783111914125728829834325156653875354031456134894941033723887607657412960429317712796040260405068654668654532928179905274476913216990161698409284002047990506846481414062345983394147119892744845173361726171546404400845895263823590033575062537311407985415346959676471508167151625198278180254529134293995168063912132973323826777985755889080878548856702087350709724323742968289738969432059825453896934601205878261067942034042252395762293697570518280307966245728042231335264899579621889772511087091582633204286718524346421565337805589717813838895481788499696003139503926819238676190448668842523285052569419153613485892343269219393125503268433926112860312687427540118062783796932363894076379146258783998992563681726907453229380549789084969428904612744213862299705511241143142963282407302386890759482611137813433181471674074296281278284921944740964704507932181338059939678974641758446469142175334888883753045735560704215127907655960873768025595365237155610099845292283837878524044964810251695626092223139671914640567931897801768384612964930503678341345705819149227097481619775156458727918727736695619140031427317429262932590497685318302907295020597290558705303303527957626133040145407178344737435250645472709411272691190754349494813049730174003896726473141177290971098653827632663379093715573605134157745403368391325587990569562744927396242881519094330449052932737184705633333753597014263801935127023237153341249606079712637933300532671247614797000402128432676937620782808407544403094523463708678198002984913624357450395924830562838180413601491733113904562767903958699136875570712554487904302061090418011561567742796635552734745198567288536968848431469553609412969935820369462644722200616260708699772772636042813965613256588990827188116961931088612894651347988969230519551937094894841046016281513894250382531645538981450430195508531817896931424911233629145646571759204147218346782723408798952139692009308753201335980705986690041347982602011910796721292923091983884490130561868720397357655611650906806227087293187322961709223559092726341129038400451116565259482327621416520121053241828707744682353961629683720933654004420104582282370251273791437240635910918296407027246327158825711045683119520076440993883037985019501019363457860250288200766977567878592396678119440890076924535381864909196084438815106988513891428066325945294328977566581405586914659665447770776274477643007756099272876899002112468042518776149924234142420216734542978874622720526051090141349899560082003297471771815057073608220844690311227324968252926529312701355385719862893733157658941838648885678904174232801401522778682884721771966602381481099135184705954164351774241051688409418676771220023739933852005994147765228901678322248626319279128336373712174812143084794644864449019464065315262582475915999827506865301566334606241942597809466957422953811888631253180440208925428320012239810659512098419063621060204897054514945822990452405968767485603564629350789181147090005119173795288267871463861941160279598460752865568018498973605888306565193613344235776154753174725300826864174258944658233869361538330851478529294406796959156405833362172977549025943114434830573171823425822991332065124350540896413897819432750751060974966623474566221354912071819165506982045081872409245720737910966976526815909414560560374557905045848954589792885922303831552729553919110754298467274184032804842041734572164809613694047798114006416001853693138172802273736807100586093476912381630189481712301806783101893014661645869302556316068235435491012949968431612551593324179777284528562906677228713651026431239577586992413299827208366026735187506990066754108244346886107255803417525013470342434791264814242528359183653549068630717961874730377098999308015003215901634722230384702783624527658942694323649348623867670011571891550136854076871307612037906470682726402592886081409565463443175599971212707906123890130640667692991787952869028487329632422928278026735454942533787057117691760458229617591245230388732548516317973427567566075844382919267235450532527945166671988277738086473749876935886889497976640539147027656997109420768392159789956920236926736133820617565241665172140636122636322784837599078219730310743843909167513904695433629826673319398181709619907656574405957592118884530890001451992169325707519453330690639698844949487517447598421539605708891324988068860611587611751631985526648740475545640526820642751186706044426485532040308544706185553947692292352948168774663385719058438040690102389478469033720801602083804945820632085077056562246736124771654508481000499195637210193573684142327553628852749186911052357283008862836491158907515348503203633976426527311144800013150825464655107450223056840298931814085793488776841230263955328181030114110617980195214927503870459254417537219370407711582213643590673781669995456781152382722403596021563137593677982032360711709353440329816022767191811036865432724934805338210395895307595525240774976453746195791892347971235005833387183829938876002715611531218709673173029646927214549197902652901727618092765099949737920195170128799154019364624432674910000102743247899050790909913088961987408057404709426058591315521182016582826850817413967699460119022696532953818765317575254491852949678531770294794321746400748137916936484605903677752322909829999230386105183936584084988280770765655697452422739270077094936010494798588429100166381956220325535008744279859907878128965706130344217239709240632811773058837194583749092801592770188287799455716495129482601462087833105840716945938256981331741608243813782391935721821798192731427866142037981701590051841501286078837530485097044587111552893302945990819966851220490547354079809873454507874374524969234222605877078684911464919493013446083926655372838620954445830601412569210422290468162947308548670664633691718447602324527773237251077467006073923516664342751916055038565135822937457747342267233654048537972803051498790500234749666131569700409545807384261313327432188538492889462396690968816929018910917003466761751188909398874275067363380184753945035768619988422875637809471529520159904934702225142026777088259681891778078405550940983285287334919188475798084647480938867722046220980370526875543093568310697509692618625949782478143248241065524318538637602004223297428425644012488903661256614431652137214181136249322239042496644112781927681011948902869942661905070307033297122613881679090892220114387304569135680822038725491310997759571107351715453525160189013191918645081949924330369036968169139522897835823401682793723174823450559391802954576070620053496313743772706464085180094212478250215481420080563000395952086103629264623531346974918371119559264802459830988255838953659785069261400744885973707238954075152130226288962902740267098506638365665464459871995048340618142481998678551764309344968194768506142422006811936411423525963144345016304309878933917687067550215384947822326032049763115797267099968684396052767782259619278021083155556472731212330036810082853757723331232841788653215250962361393643306449452802397253654612931083648905682140800958070314232367681544720620245457129754376212260667853182576654293232195026830780150622159281931691202137402264812137509710126370284946752553819856962905669713069444795696090290514496630088636793421482275084008655595067943570986326442803725609933187223622318800780938164122062472902268587970562321167669509001943585444705891690470175521122272370837445573149951758835954880272130107647010432780574519862149664837927896476784490676344821402748980152343492705622868283564088783976044967194977752703047199612514848768491383443155657193836220997848627245251082446246174752250092846099668674423349504596125707744845379640324689745183124664239155363184540979781726170298872396782019423905359333407124360184070385885680595155138521409679991262098037886972371841083929810888964637788262036429878886611966957647971242241151446057349198792289609181060295620832640742656745997590202213245197244950338856321103196029402878424421246747578602070841696704350761409175785281014295366564522230938239630427068378794065859990020995911532909099452968382873523959763378003590238513453824409934034779856223319845104858011250202164994384098304035363655119619398786839852340207007032424711451351740697525374013521506830139025185137166101651656655179675247314965004398824136486731322322573165183750404828452697032159894154755778805477794494030880879666647480770630055258602989342554880066335711695864530175214091012962569448144695738103283708531635324278858561718381782057326419166426106320914596105839755891730388034894512589410556128898434509319963089479807609663309096521344544469093144491977901341777874910709571576578776304069417112743184193443351103581037723902375409653377254452187807614936999732311713068167015626449372544535583775018732806829664274371002934260620992135415366082392145598574049285451160331520690797514120789353145762247924165055931436267804895745731938633892869198756926459155510871364397310609839201433073632576098330907399787396247445805471393000172948623759367358105195903068939800571727460896025997512831719503476605252849717110472591631653969832591434895280613808853317288297702681709800893460099647568107528762937410715214236575236480713043422839036408997431819293741359122437057694106602570197559529196489498317304467505166170365233878784097166466783462553553080199879661853478730628956464359928193524700602653417545916512993501112186317578524244017567410882938615743920592150490349400292730063017126337738198598167871860066074847724492519631085693553797242088057229414536328820004384820818169637686177110808555565015143188702765776257475255350024854465306400873359794257371742134102505520352265485891057561614798335366511093825817633663210394103786063871955389003585812540031775979829304947438278977276209890655013739536611480985074929511904800284603510670395279161095259238903975111823541039381451451126292501120443138943314177769204093449990547858051917333915266918465456082138014135451802822400995792312466750269841603251904159061739409279432741845486839962651759638491396876081213316673481193956100743143967723772013850885463449489703175004485601385454640119564166877931727328924231531229894139481663779164288525277323881973641311128730623645318228116445556916046342187500214773152431975676241331756822282778204727698087594288458645308568310967947156471184177459859754443272419690718108060470614661587067519237865740988007032492858086650568312124057523331467200784443991443079155165904194003675970273190006651108171515324261710119104925875331139772651480770707206787924105814222374949139991878522764672152891022680217971474724185957707712724460158394834406693647166820509031816176128572288751480426316992314561072791603783067361829169934536140837055614594404420488976499691849863350603192297896820492564889936853498490459087119225004524905956981569874936709806616898771699889995898775099051735959004848873119870603422548034377019700059367303876498677019002841368485034548629405986811737866293009133762571232919432383938033949045473136384119237542001527082157295922097290249029829166208705371730087420025706416028609798395824214630602516535097572209586817198862089194788449435923700861431891954946327711712651066044345113036167570959454562723168559601507811413127702322284281656655772282368925949307445830153418742912476539687349057250959790541090372844243964730843587493712293175432056684555118149219557533497759584779152789672361138640927960487384816047451646908954929879043651328275074986202984294980495600980184695041352083736750109166808914775749541884775150693556230804652290976338520219858342990328790711328248254839542546141004838850067706495447623316930562020327911364885678350953822360262829198894257980366168558875648479739574090318497514308446508647970010870657492441546733355764228126253489953008295663294493366239049946067849093784545380451595042051356203432821990074622483991612628636844878567477980158551702096319870403467184205096646260766517077569677886698227157198165797432290816239913609100228270099439768579057526834397780415899160922452806924786919381764353835134317576839265059041260242519813580423613964840193361521618489721935924797377530220593262539612416725320074567665761702539352936043781761497896874964615254696188199485774150137659951236074007035466387897426383449697401461491241142549472305166516403420853771599003369416616599508590844488586196536086227356797135932826956092227025122195821589539187227997656265964809616930667398042684736094999326828378797108311835521165426799103468866040921870241090415248447539348713378066932624217351905606796516651663843575966861010424981510514933974814075196482629745427700304094960704716447014648822135998020469379808941917049378799890020486375717325736921560410684418143032843255222396693577577219660685166460943252603101371074500659383732813314091791399187806502800552602144354935995335186337264843669400788092373751708354994908876412337453627023129152959269295772763546468046115402411655654991095377090638588981012541224342720737048002362648261747628410037212013147178393386549105362446821273327052911990405510766502036366307131547651511728367471391762674649892115345549528522741811113260786378767621079229844289362396161258422028241069931000910074826083054424935616175271327372749654057048960692689997753214209397866975553630923615308602766695435930664854315120903243232808232014495653416983191124676141773344447772114319483311728452253310905779346633606163331161800236817643836194967988366061784788970656998981722668162198938726366081166185581143678488543259947079593503682402096199882103086825955980760948431019368193895218536332669491554425040870103895131940579305199962416755480389857359614251991755218864818136562455330990018200977414989022014953502297837182392199738434506533383960224090652708012600250060508119974891222606449782550213989548978267887435005910193616733733859805727080994813246172800364574788325398425177720832872554004386841033807116895620412203556810083324911850827248362440677902797895940424300741285996851902171338173546234653921439261820681381239120462222756947004664404083725894712357993589877625138161505510602018521077976831730107961963022757382977189627403665620610083639020154908995765673417216740649580515640306973665448918035704106624082325831524207135040308190998891200512649405165182900101240321247766045600530931290379034931402713334498871914287431368477568271022137739317925806480507705720328821967841402385853172454383800197584652264161014514212124526572184891529227911367288730907576215881021954610059284896788221369814923284421463058590691441449109069792431395854971140737255269116487327967977338002103926381709812412169368118198561955568196043858405912161643845773290187983497495844138949081793766852329177167200921414029142940331066361148609912366923197976285689236637702244877761648351132280433578550656972338554855185919956267125152809645419678115902662083538346988441997721166435535423542282564105641567775585473243637107050835331230633933121787309863245593220359495321226220747109640468755803674185471167822774169870581430542982636166857067094699847403481565832741748860928255255074522796686551015295483399635926226806429477858629291346363610286706320473737684806476117024876608216245755657154631562571907490102293435446738189748448708901161244886376648027485422005484976766509286654485126228217470864285589484806160955548614095661235782981420444156581069101605579690644930179416135369931853199905159672219065921634260547400784853095628900735542152210083577550513425733406043774886279812529945999104736308144964764965780690173162507496072208157079085606114771532339434383815037752757339409118796651446621983025408037288446302046027125794323099364495896610578342363302797667407231467617346634139333276350913954801716157643331742611614350917334382865117866669209512274030145776363274330323362665285965993843795453365478807748581821586842619534529336815348412753662797658019057274068234884836132997982910691042279033392917321230439794515942636367264744426666389207497712717135946029887765968932601071574230974598340248240857710969934771242819699175325880491977208844608904321801206561077220635059375486224539320667803133630819987369586009476525451271024249204506779929978623431317520094115216679965867162496190716443350115482091646467106584440598461017960423681607201135728922926470612151593542691151283038656822044150423272413983404632627861935495763234414778711213363272221290634107406188479324093754142753771177481265958978615666912323030057969938882116820037729676064346746987309086281805058635241015705969362513751469856932454590558249488184656040662867803876569176375646598729842944096836058150760945183722654094675282301381985755648518746981914447192212019041699436519696081414628351271940475678363299644246214793027474423684712251949787045720248951529975698699659181086690722317110331212346146958348232972701281299956574600016176404371906564229524150905304212989716582612830412784531192330604641340656085225402736018178398722683274709778011263452323809535179545377627347015584667006660828900431347177815783117131115472421452324194776518714767047780465238539762840571878147475987186078911531918115342925628239745748411848871841482903354300059973313658442413200352141704896862988072198768100363636942517822379304339305034759484977101561301295016691398922786008258622793628272946014005859357967938252276775117432327509736417112982949289219726115713178619445917253003727490148055501627200688399247341834610000965193211657457575682726552216950167036069174308541751689942477993564237952608870902906674722177416035751971516505115012799633096398354410455457030143952653827828294232306646007732341236573475058920063142742727646481580825095052062487608989576207929586002879664162770389583501119158843653307653280516712173869024578842226012981463098192886165614702680466342821283583124725452111755115823838516580652545858368404622395780040212420147701874596069422640612512287495754015287300887412084488989825974889531860593441349878556201046759481797770630226243547952346979619373629649271783121982502500323717469587909614016954713597715634028309302910159771562548535530334245903190929947119796452382731463309494387564437291181270327773674240438697239346921392966777688974913547317207766491228794630937796012162183658688426604098350735134845224300006197075630739075279931764869760430151319623061408628753082903148470682275572806345938333643439214712541797939912405397754982132974003245637794269085476001286499447636321000369075196283003261860698897956845751598762362297699532687678108190266093567265875196939893070584796755399643525937127508564438395628814167851656715262657862667037433953522683998223894315820455031066783772350960091762167678153953838187214420018551206598976605466338808550412624392297156459629964111045685824393952036760861473208392477785206590311730252015661905939079493674721817936727508036253029189354772268761025751943648419043519915419907474720990417285805365487828263087516520264566273938822442413162752265278514279112429658659283240737845127340094427233373090475363116796387389000155725725258202816122537003796284722568314773094965816193379846039410432574464894909399005088173229607494703655755162729554201337675758853728061900099292144053112705019615560332201245866039614225631437081578183790399923396766289641634714920887713520528623970904527951713265882545577648269970279138047131230451859508669825907898492495897208672487947527272925622698130536488908337122683666974237815963684945892611776872414563900416435980595458307534890764656547882018209012109338068685428452232808282236239540634056398900669002269838440117098316858533218109670952337364091152833710431743255810146547337281922965285285462830367190727037004668849079969206698244881052019057747378980983338354384777707961368713674125433849846177358371609164894943649291628492183635638635741076804812066729377846343364573012490339396756304658575051722227085438352085736127951872244097592427229333179100778872947923461455243373234322140270177045023685098468271343160562056607799797426500803467887292993701947297048994940044070721568682893858693928903203193181538888377048931051752776054361354279391515054532868674123563679928549125818933967097678178343995385083778563931412844289837290366634376110915628698247803338861933752536902670650335091311481717225889158020113704199524825561682827514335802312978554176889564902462081773416797185339477779430796879656321439489951408113365519215579241740733484206367956597637990668462012817310403346098751881336408194926511383852540644845996664642541052232686778989024552984898076071057292177446780975263111516602109695415748546802771352861466331948473631201395280287629833016493726571430300660216351738730060454423011324380304517049835220477162547705132509173966793689357089977893812071165489002170367901944674379928065547390461918083204462797645690968709028495334294608940715730906564493042459840728375116228351356660846744815505045957489780161886155663253137316489358355513782285794502472917038391395766801208594493458848250677342119758482492387448165340325174819114080849922150956061468489736581191150607934535447040617797526984144147661773672348972756155451704419814191924996391346439076467754258212832299965859715133060489653339185173210219272395694432938580011912627377717054861426511443718294786732678959299271149983210682481165386900144348404623145253216952721111172875520466169381075202875834577646506682122704630419014065195658043675919009007701317885393305780910944958560050025375425719134041497592846656506345710059431520631267934282740337936105838835436748521289987904659304794188318767903547935611650775042783569854240308683868882371559215616024051131835846776315008677338128131345400216895244773220776908832424740663473141769704385355758298862400658180895450406632290931842110875824551707431259680540762380425313242491906041197350153964343209642942863682512562687842226266958887780907411116508433783250434289100284866513999223887200105159551688234661256355699735454536763431926302189879693529951971759517537049370491819061450061594414325171814050811506001360299394603485939066223136912316988046379608713804656883949983247593992472752163930714744719832750433387962694934539515128890233565306605211778355828104286365471601732158483846294178769422975507200421632797081050699204313501995796989108099500502640057446687501253806401228612151794969142653889994155817403231733169867242687742879615220171327253033969412802681030312671637902261336791016644479883578007429860963328137219904444139425949397411901336820633716932829303852449930375361545815930104633599302496207668512202160439543393864473641391076024340638999160513448820268022171003706625919047481358492608814716178272826394642313047739111000642584503912403207329135319225078239883826884609510276984006266994924832127811278579977478809383549288733439703777259066298395205210252071683512434094990025226195943257355564443363271370809476185638164037331169562338866820053696751336280059515260494154059992616324896432998851258161583863185425894749191824919122277990844879278628466608050352571601820991508960638604073990322647405737847415016804328038087086282510806605704779594020151021124690466493829028074622725022543572487035783488727787437413662695296292353200358311402716591000758543449709756727294614858390465481990098041686610850068694671479933288425581211769527214451052675565856107504268498211548165331012327137957511280814160624252460051915970164731164099374885417032101796027055398316778692387108415065544438655207714145525303732671938358679196538822845276995407439670045822691194516655502726286280260676419442038055895117285308647646701584824893506199709215900222509875761930809654639948536693617927521206439723713848507615212228118103567451218550054413486361573368552097161724026708660609833674594556686525877948418957915543601437883933505311009441075210166979563894645251574615658155687705713223918157741485650695718729651793246044693081895932829318347396643198099143470416504447492757140085109542670126615580650605528322347752641744118638889348856972325605824902260473380434991799584615880672543873761865970653077835386322492840340129968036219647488913985755636164401783289366266774240087038697568999391063835636801262389194848196724609264912846912898965887889231992746473243315421571698278555842365057735384156788606327081209359651377157917314565176479306176764281822377956491118964944634158716202739002399422716878993967487404054238421970386059775458811060433815081385972119358411759522550956803295430263618287196480740849438754390017241314221111097993521766716103906671169595112083851925770352238638827456532516949104633293065766659498847871373687912640737373260395251710545232025943453884560402987159599288067321149398843061875660191965347199262618295447173648160764337238190984113510686869787256472144754242175125997153914044113719611232868743477603405743058442770427158860962644995320716869370742242784432953364894273624663662051414620810871213872818176168764939158437697395668325163776501560331873930608469590679909406082550864440512881666121887943688679741756536091066263328682927991517228164213995235007032980401974677448928827862259549383488476828901697918807886388288365988610913183092723669153569499606463996495420034795816100327768894603753939595099723747125812748253232316705380445294123390465403592471790202299518008524824418104646002345801366961124935897985676458572757672215717326715330119516555264879900616850741742003588036472873694735645479856235158814280698216038558439824923781704351157148315199397880142266162851861080251541914917064775432021305584407839757939937338349430725960994320159433430775647495887847742517164557788947145171008494945192522442887292822495960515675730002758982747715677268179843667536057246802012398677857211875356638646373910566970834690981219212429655414525873114083412858215440800993726039106935612457183781043726280081428203499244183777266408075762339004244195290344076381255657831974774639866179735136142491083000353362934597373432812749190672824712330666887929369217524022822854170514413006107620799084059044966032239666544094079496587243657364163249349921293172583050410604910131463219728412720817912097729369855134711485980954285376449805303152908339242516738643179053501302522487560803310171670045717403753803008458507770942708480383716300904626999389554562239431352520552268300939905399981013984759220297225536249903368301622281047368871979543895574514583492823994794530376853676915905710893640295890359584747869228396688427900345964104907735465822335908521019972933327851747439019539909311698895233813366271309937655051978079326505646959475323922518275071541284094917838198477607474403890770736088944773851143083637932494376298730335135158704414845465668332580123077265809110254546093367046580861310006783816668430118731883257560797824828044709468966142334967859322881679044531958226220482364928594440398265374288917647947401572062284715763033449440816907324221890849501844714087726455152720576253011816734073088055154204886308250388900244512715686558552679093379241684341908829082301457497090987168391953567799365858890153773966746336252385137432487110789433979603591470296311440832155872390998552033158304876848910908630128633354316368016576396800872029892040804307749167905867206229057665349467902180612039531630046583842573584991990253022425045209489809170482383076452613327649679448831774667881577323916018032262158465053991993732208874977357645623268954396844361254886476437819739179254196308746836830016511666330705407700222310516742564365594595376381537514237044695169752505370267360889136765799775751998508021839295594923562715669858506284737525036798879971491324043797671369675330848116828353301025324808725132466921421110652447606626570646119070868084829331110378391017915453306438813303583248408028255139737529838818800003090299159345700596532541472787624212220803314774368455505499222629193551403537332629643040671200718673421904343579038282427810896663492245243178358305088177786034793302492920916456866096872033387700751443468997327853250216717264263200494405670852872208133522474974356453262713588439932658818719669176703706783606255264134517599252684877279036811515379407863595335814924797110521717974845397710535461996509283023215498375306040675417624630840246973524478989102001940334895533125360756142727828748177127368639388179334103927021260533359083358735753821814365813809325408722407141299277743138765831191475298989470544567401550833737674685179798719162360585102256289742460343087770515842901986587444079504724866287894108452522123532530856870942942347761447573554262147697998949474515851656078168591077170055349647879533461864856047944763255251583986929817893167998164381785501906770970662746045735700784860260456116267562379750173509784414494460498747219170432710083484019565508044611627414537241288298025306594145635312248586045972282530742568343176973170950853720911199047754859265785389095801713082112848527359442808031176412718996307802910256733511392865566820505190320412301031756736089395553826709736250755949537716996797617492892904289392917469406786037672485974828654572559320803233089818428071079296979063545447842482414804803351403009809938737275566729112009707113709120535986288105673823045168903129364280408426475185940312188322540449030511300107101573994918344535162740699520775743003488622237631642831806116073463039525193559605091021187978069746220202380776219429088674088060357045175480728752200225064369826163408389145612144975970446934464343578307809398140375019042808393334466922552090722957737108287338538721435003750786873984537791114880273813866055064377958309676143524143610846995008690941630239081272940790123618929547641230139043265919830444723811994894264049954827017040289893766759367253472058526373874348386330132497494681779576599996423359935054601800065850722742547086991066946182053437387671519679612134228692601218452256664845907595708457028336890475486594424287264498118835925834426262116309607257717032273665594404088080676684789269403037151130864365208386410030577008003561838432423778360552892971153365596137719198818828303226900313195323498326031797399304323047111572012736299615655824161604174461751052057830821348417040128585605486594266011848006856481720061802783826518672810992855688568808619744571309302851979607624383959756907583593377932040705881887564248289181479712921954098559297475038522378981597382810340867641504860846026197928910160831641400696564771062888830446653396873736365080587566140609107670306287405129954477655931313155100436900958739889160029706445906418092403242960836704985758942273207368992725034232718097757274933005339519949408223909488129156417866839017122551348757055800980220648432731257313315612247718006004282117612866864405696930536271435615397860591944975690347054520061493027393982541542890306632351930490232609187676328266864409928261689779751087183983777214260735999292220217154269242666433901133136687921562275700856530485517208864429200393883689613042053358018006298283291088395311720700182274181532801087028030894358763093182237058451789068945153822450331107095623922714531003924648392872399544295049604984556123557089143215735926553252969145745837757794650794446539679194343679869606671906415145569748534971517177215813822941668025097974225485294866022925536044057307109975626705016775576351823592526015883669578581427497508251211347128663084410032390142056084630057084758340042988996628009437561220492103708556436112655661941268924472995902935711289110525392392805336489162735869594081827595346046912471007208249763859715936381797226901627282928427194251517916513562064473160417051495741230092464793834473903446486212085393103198429584886757380824319675129469432364842840661256623073770447747589634093421037020611101572530956244782881654978006925906096042456878431022852942929027473435232381745344522468343047576802734814594312551413683805772153864526972635707312098862490141964521207498100698885019376205332641108410208956965835927762340735305573822930015403366967479871047421426564722274968097332327867049627311888169329119801601338978217253911703953933510857756360750855489772836240695384563788119064481771550788763397331932648258685317499324903667707289977800711892183243458226329128908936392927881380899757980241806287185470983342428164554010660997818651420694014096660180978562964203745870424045194244329731255126801377104497881005390210296369777199640692939711218242663168282912117401198764251019537067806713224789649509764998656442230509677234199472702556439510813786894218134807459185553605254097183754122562606202765060195906317459196127615939207736225971182661233401364499840668034493317646517512326490769700996556474768491871062603451852649011588954763714437235148334940456010604418060201949011276164664030746487182522034867063394326519394358572329709739561413586673715172620659534762463062479736242159923409670028089691452990202089305725791119372464424563609219724145434687835287368702175720340402082094856576795141084610527420860091457573214076975557466576195752318789341035839110324167057402786138396043823084464993657945256368667679800490521027261027849950680625605431146060873127468954341262290779613364607158077167235164012492590806816041593243047448683653184259776919368675187976312205591129387167434047641323664393335733384098275208919566574514477041547774269441420048021808046800931620651197169938119355819675096517946941135265705354022769317004471699421061821207661887039819382822122110485095742286139001377807008326163958481213940506405074435876606369634997133366872994835263637697806672276035712482713368567574224629695753207529856949004864169766029770653435774513115862520288890224128788655723447242180522725744533625374510264735826930748324316449930005304816339078056191695261500840586912107679578268033505706122352235470335067340878396121872620675277086541817426762618447255230621127404873406448088900338143045950258168473589517185686929880848892360210347045219607851913897323729370182485564075709238366554414554765492350422350432621262027625860462661728932888896043948123105054301146037070032747328055161298463480465283072097631243177373528679359583915127076419764908354684562513640194281784802623843681167718279693102711490125741587301272994721049962781882300376503337725080419668424631659372692195444450229744971088317865903555535181891750179850914770005593572028045821508060123545662533882860510145472766949830598581929735949417650165025321377318199094054024486242637544484407596974760674671949696960343073302208363955093891012534597886864567659523117557699249101232549273303521200309312258034202996118840678356788100094994798561764028670117979597040543733420922162293611583884502669289001750618880696523373884505647759092546052682309629092011855175308708870039774365901767104078090686746889554636196234006908293846478068952808264321274001130546078933583253982484241916443710523554786923995351313838636148349660588506497036655809465625637367473231414089672597373419511938199311493802404865183676070832639418794300049634539069851681988387103109759600879221894289230690714249122485552604929961839396850006276255592708226744195375990583246977583519948114843726362746019170232392566249902865484511820474627454074147521325390826357645993957318846104387329302296776709077156121200300201622045641146005846054337357333447988382192469726034595359316333628656472728401514109841664525385002689362758628881850392465670014628177212575957958802933680301824262347349301110073564365554844705040272215323494120110434339329115424518326134053640670369476284364852713361716931198784103433189589918976506397498446473238517121047993379064440920930641797156472077750227374290936533995717426426456426258470726035654945422928487614339923450241683515854276778288884589363226441314153379406737507653024652616957712405977513850822905923164541706136759398549072896577752678030995711140006792748951085608393060525854445988825594362445760894184883538151997206729291139462959765730778356711267326226310439751199878548404905447021096699634823909257165712218390171106924334544648728131940685462337049548286234122712036099963415413659871076956476545162556355342780241154345619778636473368641416768049333295214656676625907486878235993244190460396053617035430579526682496805905408799452996480883556239452706948072264642907990587892714862888660076492284534889669547296743126975969189128067964759978993897890434766322840693775044157229028136226075700979738824778689229062131593525388332604772864964166953452400174321683502905503082149984043896325372647355113215799927752929970223339218054879268948547887304763004129683093578485679512777931520261995873896539967382346088131932148876541820365115735955821054732428657988563071420484393685815139276959669831248199911914066513446406557230541244999653075005502352282447933854596063666828740277723751310396694767245849760640017978317793175924780261039913765238354942106846191738293415912614103608800198628646251732303436638665892487425205669642745478954748096819026200929411162063452656707469632481836038680507124797426180039314913591901611956532137721383967618723205869266665757200443630543650979884109581763535515336270471491405674889344906396928531414906384486780529358906857516263282729801615431052956826411475542036042924872326627124883999466675263583330263268359257075651318584018837152877799187258288167331783514581834120891877679240140650302247463466439839534302121873566783755423893502163138082425811120603738291454559552921598256003974986432883281126808453546887816931510208198503137978834626766909474538282109230513161339928871655504872718141765006245574601694552435083106721538004740451668758395756268210682380172096250924668741404267409555553157920222962334946670294701104682058172169309940029855986953791666517105602834735016702760449870903706808397830111817671508990767163059464260604419876198032337007294360400800025421353319237031652885081345550156520765362300441173740128682719302761188985970037045073653968517273691903079575943118227720015187156738925505378162220177402819065805380807565040321436019112024989578280731484240947852040200613366905698557424751441476798057102428435987227318062671824449473787882016674070583842849140240424668886339838699387977481297535120955856071332718705371938072631437151061345571564662670011162597009543816251945255951299765990356566497412191435126307317433639525859284938502982713878569027004672202012855519288230260714045302365444280488274841610341083175354637862165097700829186580039007233566714638440355897691658047600927131340812652950358263421961815645291099709539399985108681926380309310747464013995191824613304526047069213795756292830084854721227872923331782000086187376789077403217312937275458461371899490119898288500444984586883831133542091529226714179547553653861327465707992942217307511820714315817893111268190001284628637393826234503201050068403675869405477298457939510352045451681669345752705725732843356710484136532680951868805566318688663675791470176073254432159473460521130960876572779169375145017728902048761013144651915971445586035825434018890494068379867762369812769299890362059348529519028650452185659813856982608667271173435845056357298808447539763167255628288922811064864881154710906745400497069025628118215742021850570423620276594339761364544452202783833490187180282347713649420883635913119879525722335672471859632919385137751305101439779572552203432300205378771606184484211611841315871695581701087593284104169883923763452145767314224655902589043519255316684725025142706934447107948621526707785711438473168605771248545586751171345117384611982849669109540603085676761078889087617618313609633687153903476797405784112242214288579918440401077019230037337085837950860610131316720025859316845741545156117850164251837991840529763060658280845010002133256143731251379135876596901957721699284190906936062217451973589024762656549712927957207012096558453035610091376821844886422454871110937221562185444918960920936605812911487496881850416971633031820175535694240978986122597060906304256810415112820049696355925244265342210303354473150380932305700327466582456995720413162345094925566582412893659490112039558081891100822050819490324679238529910535257282255697657717157958580800751783994256102691809058349223451381481853068992834934222020396892946739032744827339921242031555797909562712824759606931227588018839726729220926900663799962869146707970508835929848313661644615191309445845214151343640171124528100545705151569921692090762948368288088479148002311949082929066735560635562651912850450655934197160818067888044597027745179934026606133535547864516162594708616116398873292915718567756846671886031764194242817341859045472590359642873608126857855459873424487058387536065401664128383048198510346494588823842369055601100452993145735579871305518859885065200472519554539562209542082369375712372424350936150549228972671873060780312528526749689077135728107208166205410859560892407484011915813082664098037714631643475800150333584246479096451735905519167023830473768890854716260019878739104849892123597055827409315748441193586363603295257985758272178426132644423979094314197221148102353812975637983547795933108998885954777498328720558629851853856121539306802751406782407930428376653799695525451855412736041104621884860597112957417587771163985084998504012336634861917228871722733769025953279203032293381868183699054807746100249152028112091175778114740030754251702244828028414161529366550597286948892542765128915371374559979962051643235362385755201725756616253325567666946410075410715729675684179847585651710857028102197884484290413445616464487079618826646696327339332769050422369964456445496139148861832286194974347044896879427291036483031531892866105480937071726709188994913137985271059643324294302161421245861822671442215252605968888344403255966193866760796897754718507124392143791053241642436392611980321310432699009299089915386435076114836837396384744605794668533228286650779471353308856618990563205097659573766075493452703554944365166599829816117919056586051609345371743774286278185289468062017182805561934235592673471705141538121946912239450637625267221952182580373010017745791784572809066473917064379420349040470493934687760996848726768954033340467514897725996116338402735882798629561998705938797242556205989380424879824267365485741715101705994493291247719380874209163736402357072103437668098693479565623488817204357502946953507051499535015830504314090174801787888158989311270690889762846791560948973760836260768720964645225490857238362541481212407193615428738260150472962683641788498057644548316376134090680462456307452218264200455701237677340232547274902210381754676390765929714783066266950612988415150239591275794400563067609230454633906857861416927805029380166564010179671901489794533392587957451363557270439809403237884211156848796730996022172150096486025106023455265682192915325236928731901685861039166899737144351444180813739857161857720801840225365120791825933321342617862804175587377917257488141447355370967864673906867931206746243914619092681768710612549397574448528910883582674896484958638297203224008889723485449173638661937734963551995639009705850264294214019389777478847814661156071834827194388915935629969937994642984738619274282175352851524485356984075401435678734800128140283095281759625263069294248111034143991355072577476994253165724778547458330609302064714431557973930282210346229375932857404656415040337864901996076711881627971727311628868933608005679131878648263043239288645791759939547412287477368148271914606707458828990451877430796314175999245513037435222403679067330406881311050269583895203992979825065773656266154286631749106202047405769409144862503297123247737071609944564873472104507048799471589076628093022056206487301080051243094215721916073373243685915078040328298399951395186807808561676403314328460949990140396437508267657139840932817026158049180272485659389434480241605335678548422955205345583273216150483333695932234563209353050084622394395247987951317606990061802853107893321456210278268561136031040939882168374483703816261898921721922687614161506526050602357147107604756192960306318797300401457595379754772787706907728338676860533434250153249724290692268392141764394258134740641880988890383713377247647035200467864977588545934924135543811370606891062518687438517326885657298028693211402200785589758800435623173178179797736638085988110121401540811907556433868485873926714967721809984866149489501728522744630878557701915939732488645702076665758518422022495617820433838758186415776439028709527847982587729362005082049085537540286144652159653065626260435855093130714010192000034490893580963607468908023531625183688607600236938422173531561659959342733091679693241965690689138415871718719291288945636905821028953669666384909053021704901400882417823460929452047368376845215205250283597016771594288295645406673271515455401764549111807796716833091675585714563337144527947903349011882999740966946112318642172619045442688405068951948767643941711440071369101561938403025555810012937052759867247738765501133918941633242520960814895663367815640735720107843664149108354139434505767335962131685586707566552313290792542508242135312228271861021671455855826322714098116020579705290185352868140571229113669325945950749325729654858015465899149231285557136383854477309139187995808610083880948195642625846618170994952281664917346554389677366732623433705457921823805753537216981286024415742164134875528014632242398200262636290017950375201831839929485321010601537460858869330074171982724905059083817590385721644806890732016976484649370145009095692226191239981006477837667627049780872378805983113808696197161268978698377649997441057145288227104062074488231890937457207611355350966078275254950746983074184491251446135958658458829184753511467311925983127183442866905803795699348555515445776041180844877388135826249295204363998930754889169738000390173667063640058101992249989929217700467186484638568242283533561641068408256723155204849063253769699980813472066669244129827665755448002381226656674440315228207444962320260642162602426547100510766611208677727973507048999974970295001425883737853005442226368723993167839150947318000658530648581494067437678977909160033598417165093979837865406928706116341644926577582403436743146520431291123690988584261697090733977127455403014227200502898551417768941463833120147430140440943796950579843195730019997467435436849907323534426683448048293735658158115211123389874839949503094778599418662366465989171221066139799368886027421268949051461624059323740824908340684241105211502155626969729197106801180087633422210155072192952269686355874571550987724002789673593430376714266672202271343883903344657379495499454867602403137938814373644769731765059079097708387148943214274604402234915788036142742670028727961630099241519358365561408639208618634070702448544555944709408860538682263518927777447438434789807220176040094724860093889616776257892720257878208293371101053279302177060271446765242617600171286605322478329402146761824819844597397398458096822771369105602226118794243860510618839128148544168497054603116902046461879022601728513785633344797299812824558514462748623694068788460084582307025171236686968871224468797307589063226808444559220053725643381423970571690698153346128062862915161482431534827438201864148014022898518764006999580554277899439181896017412756210661445773364390889643767349807315596282757896575216851667438163400346151783909534587495311802937691796893013395213550223125896919328778916057840740319521749882913308230969329787193173797201628938569281658232131519831017427715526777131302728659567184484288208410106718747474285178268327161889401256382667481991573004106740768771988560197307642720736616312639147064218416550958385084305240300299679367036518842787587446242124490760384837093768427977777792057074978973315457007084774973719234365083570946163564538060701116536675419101755504502410881882763509010020978080575376756831303976378022013041099127739873443209861392196801347589979862134481399802773242127413753043293059497158768457858142542624067475736496313388063528287773525412102793121827282646479946761682857396850466164234768678651915248431187373649880368517870597002083761742539563798205153606122514122231885001242615053414681647373573206201133832590405039433956262176178347756086378565434716736978791998164668794684760774644096874410719837227446770298806865915211186596314761149799432216907648749161371935102439987362692167879689368884914801345449129872234938408842122635268765333787907660936332881343699219496847523547100097533957517898103290842469339004133121533297229136875913295705890427578282385694425037195001567520458601216565101751138939333723338798994996361281737053971850063638618581944422442597999732195315230778230052713149476364280940958073762114093928301523720485166250032400909843272566163160943268850424907911194920812654660304239800852468735512387683875711863784511492753207102829989357280062510504969923364719509766688853881961909920152226615133751474436658304576383281716678905696805791897109277814194847525667788104987146296427994647524600468404727610521500797635660966614633338405202186318146691862988987593620971732078200240988217205943017783938808481635367633508798183737743082945087154884105757954607407322189855904421087998956395212503290955430832865809303314493834373901941149967625831352303495746510901225338489653401946700151689634739817190268662433538511372080416097769038301558074663460339049982254087251738694654544149502148431221624291479985662708039030167683562953397726461719688575038269229919431381859287790470542215390269918377502007953034248252442951207837602119312399113701402952831486035763031084404571600510690374921855066694200021686588186292763043304120456577361461841315629474160623983707315345399176924991070434600420566184022526813463071264725029389636723018379226451085907264054694713079544190482221247792506745008712408602969704916190929746689283437059632351616727028386690210617515037893569419659947267610162257776573875363831157185270643535929991979581662230958856685693650856664297503513472290201600793210963128901555082070960531444744556160441131593054270467906553684462716590890987906923819241766869106445939440006264014321219234041478848803802436951467908447012499446041364110268612368787657732224357483652935585608324536638080252295716167988738534398110738077763916623085773170172390981343316537972111318313973583322079870995761378391166885561670852045003932959612854723017177293292769942888627018033774506729370346831716335909283311008583790675358217019387277097989194636630072088170048547477533609038505025635415830592156618867211184207518440799402479667825828544570942804108544396379751085606466367057071713829975417690713758608485914842593435979847690061723744645681097182882954618971742032107508678699283615439586140051856037876893992310209198277140615477337940560098136607140225927415279564087620023618621674856667850539703388496557611323722982901848750088015853669753969391117666005632327493370618602333616529622252696819783099276636080922905488474933353345923681835102402588728812193039796079870975776131064087158206990191875193625137823507045061952437422244312799497392164731174903245605227264931297596942283635460062448916377333271294608991249543669287218977639667314718300201768160422734159154009167606540522855825146038082264808516616331373063339896469098502924238556129892573621649468221336478298631188719362155211626706179510030390526433337136169624704352806539041859342273290231681605881393003826671983023115756440296228636646651684599723790380529158034384179800210551165407661097990546042932975870455609601018285560046664596220296291544200033239441192224438926395045761924260252646179887936943671109633193161818618878679225461682030596123638072051469921100429703659633553507592381019066460697162504011372102553572630651427456449087416725199402483609613554507810287099318433763150876554224524325958869795776634033181580367413419070255444822752355499575008438210531210328303645423563602229851509247709123158909307755846604449955724682903385999531392247186808183382157943658723212114796758820375153125298747405490618396068271552304758331886959278359681226338180302790492847031682674605700167822338981421574815062249500929873362818626241533947367528148795853906584039225992367657979310945272416311759078463912769784319155117845083865073633698278700719052219681155823095678016702338354504142911692346653406945826738308328755062398037747608702112154448840529460845352066416068837296448177583284098902063220950078993564126940007087433548335798653747113629331463655586185951456530761021314442816207571404575301311451409568087247884188412587311934593461757278630327030373848495338781948053101050286861942796094569363971461185708136088077878999117673555821762269175839151134491867059681731866490667472135013168237557369812653686256302479879073458229618844239041264071762271431624391176377953752822871957222090895259450602551020129459170940964272961582536364506728013624950841430930319681215550559174640780609061885706275279851081419912839403731666190978317733055536451638833217425616367520401041566495197693864246273436824735231668409254550734731452592255856572528544798680405187585636919444434781731320729350071332652216902903499879995634356101198236542828953558009946957567955019714899796727401790347591414023978651402844156359621043971819417724168121108527150591448251227780521791345813925013188399534646559070994064495094136913339424548156253133786125799372581819987114733297158347650215364831112164728028966540097640209402920582030768785323761754217301777450442169565502902025524947480654093524359741918088378408353202471186338075202208542805492430205028266011387508481201588246324318237224297465100239378360963064957715948446974554229317680089121047202932027685837548749942885914387274725182164020815535970571610365792059455597951833377319622528178829253954585193873605321699463518275956027841955685112393217176461355314545341822688305273657789178238929888747887996007992441246711834614224744866310101395528426345593005901599589791054784674669744367685478800754378495482761568541469067323484261684238585264998841552333273429846132348206576210911798398824654577999207563156698204972728698118485048639858698178977801064878762040081451435709425882048816915980315897163223457874430906035476967551038152308307623979300218342380895892657907667115339991397333897507671134674828527433128269727361413119351139249809782366268181700843826085169218615502145924406508562721332493113826693393832533255661039965616704544590808460654343926348339081547081516509255016548129645355234153322078085346483578269978710040746503986326525615192724449683141215380405767154430488827337597845337151245856145103937918216409293695145309686768700406289463617901620099319603034408596841047426488092855415033829460801383055823233925703612014164912817404068936088946918666436925117355197720923036633390374524415131362365001524818639712222600053977306180144281120845653897522217430009415748394880859677133255767782077541362390633116389632164165854076726592821137819593002034513121834671441176446393033904237273368745108484446785519068989727052978079527815276585542023483911147819941453937907350494376798987488443097216482611680704671668391060721684975283647199183279249526457806402144634294078876394184719620462716335411220276108413050216616329367060221780002084831132894108313338687533163303110324975403605561010425564745800105526319940770429072887801400928914139903331785072922698355435677280193353823703748355009682788721653263319414304528852798290359612902359456448546884226336592924361083936744004078167119277252926125347122561314325249413795757516231688560736114136698082157551614446415871045428576239656684197363337758786433421200207471335279504067148276098041929351985898816981416169440043145189030315250301031859295987143261291693609231903571684838544974359842240984682522122349129021859348290669776046752371878490550611704189034486070356923617001098675012990803900084443500298792000573555537617828425673280141522852762477188616235893481561257898643639846492584579268774499223480311414500090339271452425010120982391039890246824933118771416605982937593456463495213672836327807572220059768435171347463456349566242717568784151921231648140581010167726982340374900217242815325645268041128770872459741019464835589053507925791157453215483569247879247542511514196617687043907695909978580635304402887079246174612861216509641307654866553024825594755640693822564750453558285950769164349963659802633216474052079860282398963794574275832489343477343757050788269337184293474885283309303359685954969193910877423701634343049782409714679678159196283267302738575476253704026276800899194367398431093875464794626713489974125137224109820116442031649619708300845749202739467693924859399353404494326960335283511384348998851588043439333033556628490663510657138716875512680229452620298116314785550336322470646192906944930951238141071556998358272114431083001481686173138107248817368376891178356628406725185174224865607489329826342631492171687021792009569681610403638674713834864831824078823079424921005838914748705580939250488858189142397096714545559249809985327944300025339603998330205657188799449876565061271538745231298922833633973100236688276130304972438443860777985675114752614921221505268904847109375222181473153432578396341595754603513874691193049136728563684252460792239698156647089162689296100902448279974992636286444693120096198420930564541498913811989681622504553833283422830338436483435094518768449265611450259387982565028791685310735773029364071483080602786880078625653884219059143329470885234705874688099170978017406733724020663076776701899573864327872251497563081581161545930352711183364439944181545823339882829752158207621005029248078620027647281386583330080094432558192721489154397905249064101802245921304241609338571058273781658675006060077580122808577579741624952028283694199799644592734405564102982504013374559766898050795426075176271160265365124427594218461472702467779541351046489855688321223082762021919088481897441530069971204077645081908863969282415004430801189007789194929805908663296156243848643555751700464039069694947577382115729401565530401870486919312628170098776313910190555489674369072022860028326938192136197972247990802932072982934649398115596579297126688387532851647376731407238771316759761134952319288891423656398964504119185774494110940840699042665284593030266953706553816750987382123707869337600697414591583646381560240381989510036884252103576687506545900411852581358726155112950503682253066015541841758775910861038521102425029077059938270892776003539313121298413741861328111776384703944109906595087171248157977636209974499947499395619686708894863009259753917866039940102235694324692678180567144960353078444909583361541693540821659980511628394574759957369132585375714287547651490388842292014700482157694720446521737631620338551642513397417372632852017315521692265263203709852978083893702267927950556095937977845062979676128410352460297861252437189628301999473300183078147339681848246244537106609341580834355388978742373436487322600056918959644541140503370611740658037122883185143244603035509440599752997668807830858124646802132397376312109796637313525501402879921673488641633525445737625149014205146747013660220881951138481161355006895640808872424781806907654856873073940540228924062909998905436659583491340368975457426506880117906978158765076940541094331913011830514334901960361478048476761058862369713466140165035556449129669812191451796033636652081438785291909036112385420822726186070221189735396979766230775900555576397191614982656188341877574900056495518328513740343184919225993836443407080659447495084009485523107688810544682994354600322905758574691114665495426807103158157570941805615273250002958568798405734132614717728966329226068144591721435093287620186892919535631484432447665695877452692504438127599353676095770725277750624375097969728165782073658285590582076311702316439256585968554840732166844233301375611611427787464729403864977089038889502751120198047162305714963068914332417279438918256170801610765332655571989595364305007928310623088520650832054250563527423084187023538308547145467401982668715470675228829712260429939825719140667404675097722747411596202489051426460340723125857178930002789937381091829844455358438945047234331220560779246553687933150539566831115327474241737418749655210762236470022150697123562616945981877037998204183741659457749172794456269245781765163455953400378115624518241704785094254269463347595321443091559748293336767117872660958266773515650029535018262332451676449057362035593665742000512482427594973010421642086787839148609652218106356901260639973214220130819753276447274295328629229708465315498642801913976753839992603582289014407976830537214719034631123702395602368226414323046340043946726404086599106511029915973832947718162500601725020437726554374747360227231216673618017609818481151684745005787576212670658841405293717606066568928719368153188855464590935827596875129235682516798241366184630752793320683102344600708066527745124480499345176254748884166043684281060281535666951757130175606871573621936677100145064677009868524826388441261320449809723427281692394505305745067713293260535739438334965361941709319497840598456136742819329381666366435009757484495292968324147883236897922669877565049852000386014008334391057224855149086685689252726099821475394226037894408630131617131372346898324638939299313375302642594050940662922107001182200843404654133757608676002840474670144652104925643073188987614332152083058444764734079079478667569156798683756198477085039558579152447775178546271172946315508130916328321488649738782093807421471974729543687478786252159446415222623826988065400010470828616500099993761113160269189989111385396108570139701384773827775463491916075056358636885718566725277134284477243582802804048994556895710636909752975335208123489845526981166064514064036859913522532351966453810602514465080321716508167841338420953035073117971094934340063441666485312329562481667096522681838788551968987973343940732235158425640295958032776191555522116115727323311940246422258916532584937304816702568621924221427500240039743344764362656471967992818579732050679854596306700525431896792125148241284096380163477836761431502052677038970029184067428827776740862526449613085371870814570286019486318561390395857221128455462557556688115515355694941934071034848675627682893473463868950029933149181744613733785729584444738375230137251539378644012899521794518682401952341645035445942590166913457191527876750580403003729634924846783402886204414137010473946019344495290143337881841064467191292418139327765650177870640089227069744451632577811168752431252918540767620761793844970471764342711999051717416987850498247104775115430940583364346842479113320971824681480403156896691854193904288287100702631488213450754270678941484845404763547614083369789093904945461514879179094347309207600288695475326572011896612632502692749898577221704777823365141198471661210650473892013846550574179346412690389417696475670872506620501060257567832656920784357347763798810474281073447655575232434349608422047757123664413816076638718122225479332910479934070729259003783610271719188390011330813635488503695775049079064859146706213419405142684043285367329389232530854376744683790083961829873241202172291408821917425343741752346791227699570432849226326843423464509630197624413009253940726669141058887586804981092898719488435067882224556939548979432591013452100383333969190360289765748866135880129838117589368406038362542783797375036185753991875739966572791325698218845077290406844266707633441789784752437754009802969135935481761614108133924819032505669183864310383529088046280927382147306367286759654828506472348808343411587077054889707213738617758095258943814598958459003564980918123375164351559615409381253475837642061348757142008244355126396338413554930756107933523028437386809756492648141745441470461741662778984058802585973560265030461178553520552998442434694267629618864923257295461373880713831448889212841366488104018656102887787942974153470235127260252565782741558014385977342555887141617236660641730952614576419974270099547525960111344697289094400207306010229239130563996451718573689367567483338329210658079558234328057819035541531862627435036331493851333933929010989610761432543049401867821115691696440506053955201254729038535299870144015280912640485918639158281278502025367242294506381536482819568613677364499897268931730987707029404123550643369293095025094768231535242183147062901887124628995241278886224892627286746537456592124078151440707116095099388098236625779582994236391844282218904924806035366432562613278035349728011545758957279827827466456302862669468513655475709693025577641927827552216211447478070214948928178109067595399628944191407928240055803752837810790394826384209975243454805416801091129027185478707911852590374743178865287744615641033688182461584278529181120122146144776627718370605327130153982699225064278486744078235890977862577674844183578411193471561529298132746779466052706799421835729135823431257622377412966322872164659056606676764901115016158080528103038559610230768365795710912466809363720724475850155779256019472512797493760872601484551187716037941808944478677256519364786109456758216092393520266304225819828680079630976892652631843449586548361557870708008605121100839375908742433717091063857733109555129486101360353136308622096970054799181237522042047115641123119286235825306210643245148346176452593813560489052180434889402973985303664318640858002550421200020015524676901010993545784702558077447240750797849787072942409277042314711888214091264934080921489939080091349710534374841162968828952100681897606336358441791012168043060964787340079658673733130698657049616395396893836990847153799810400802962276884486261946053688639219426508471603464287808557016017906496741912818517943131723900483104691471331804900480944854026180091021919515013799520498766373548420853507127383114977568113188832152938666887256450348502457027403753468874068846492857574684149402002417246377556901251477697528843556319373258002476744095454934262758260709778646855356791764541842529187952301588878154425543685628123182475677886848135017612148881187794998554529083234743063950027714885801710717689794965999575123276569442540886325594833060684437142944312022223149301245794587278743243653504359588376432781915486541158827492975490271808101343653141426219876217841744812126829785568098846582033839101941719877681718532304750713230215734844284449603996186710908074674157261301341753513121222780965591764443534401384625940008329317824818029649094358980524913663749180762629920444390900623561462940447471510091527132105312692042319002096396368966904116736851366838046336851917273227203726046542763791047424544315638480724994794382025268122780167292580278113406842761114218637070491303682245816821075422945457690929649631998139791037983565898937032598804742360707824206729570758832863456207746636574388126863305317854799400176731179151357332813708175869587960128935238596377746051394543086357120292636861083825621117254246156269735472293950962392585231554495424838538625635626462413439865961837798170029345234108800220927728146421355605707590738174467578555269175632650050376399916715940471314638176556767905635358926948999034810871528751977998820697876455805096361961662644297423037882220362559876195217786614226761716586761761950559243480727116800014700652173510361758773461761935232362506016548810326708282960294057844992272937610647423102877633186236928453471297616242062660041106961034632232297866618177208522609774740580743200621018629211293340252270059457530606382972084031615096223143465408219290223538123319421516913183304100366134249455343325635981410746290150822890437671110431467720493438586794946555941458393410047839295379254511526822905003880850797903117277456968648892861074225067195182488857612588603561519430284204469904685194458938664189570220885134834035229448295382632037106895896984152094880935570243263031017001910209995117262858157784230090514895579404398248829007899824276403893027380914614086247237801909537036955881596408458058696179846485205968944780163415542801185412449700863712630824124159982195447257962748886701336603768921901722336891157540973607894346994033505512873209889552396808010352473469819056199121329540106104993166563629704257449330169516226046391270667520979614229159671653917634849779156123737726802486352019053839564412593499054499607596302012411487307558607173517549813936232493995002689273981048697265139399958755818335617030307487400663210447958884024797592765575156447455932878944325992686664102287593907574253094730828338743349472777945570785988546880909369758159089746576395522413803599568073015611888504922977905816547379949872697614188726612486068233138616684944964606030167590341817451392028064558633603696314410260062769777153319695878341536448570688308186584208227215391636866019534944151159447511383869787385025455161760033819901601030735886333590417673547668770501321437231837273104146960929745720604868275292592741628819137630059330222264515339787562999639435041662472437804055774929459477771983698873869799465999842701359068325417647847359844352365014725739563532965892173830715521061854156781440868404838142778794278548695633198786926337676488690584660555375732952490352103735906290214093063984350767460135728428290090399001888708010751670066781787241526567800041724864121394294217514518047541796565777934261797741960158634811229413818298058709777121661926646827430582471556367747228668039395781798581170041834066614254320516381138351831922317070614674940054066640822241061934958330290770500128356802979906777846154952192361692022079099757260084777059105685832594028624587442495746249498722907331021183165616467334116297251832961935690489070933116347209622569605455646081108173645356851918006105577598016865429374769801772037228978715271698857159182388085417898276739040775339162618376451760883045828170848015598093231394527128088266846203525939779038928234872424743265615883686573843821625887533194215054816555437770237691494169103876642879672938528879759523058554249415234967876361374448511503350031172822228827452289060606469817036489377769891181926197935908957850271703612559823382074633726676264548605947236679811927457335932927505035666957572204012542685800547433500915630099905645830794041681076366181139657809421540832415826314049021566407072169986745596685068264029874302744800918738193955774847761741430146857622123453900266403828623141260861895883430273951005784427915840797998761444675920058321437106060938590411908309369664666533874923522199872134088635986384804663737753949516201585211848313562733767872089009255313636811831575591545305823533909477284582657696890373374545973194984839626709255067039687130819619777685994133006273055391528473224220248999408827471381683223547061582699902590588882441099039835753762154496128380031196877281074003424818143069738651034108239104220502125487497277857954289731564002794890420580265549390749033900772246279070566457225364125341317087244916471320580925715920125826610559736312633242834605318502235313666350841176804833655843205082175700696214485812147751938742943709640528758050150238770487308406832616130058119249475552095685807851084726260435194030000567012611643539761140537424907464928819253523538378586515218433862486692341168970722987690285497772966436838248766113139839558522555395027592938606822527925869160865253740408029737963009242811649199264288884589236958936210761770925691447930581687084617271430584644755225583219169037644299818062692196656414865474368803057674421073344585231844881790297334642923290845703690588447956160998711581968996811216793618234685012742371415470584809530786599962736432429004842367275823409197720582204430239863420597045658851320901563113743689278726353372295274679278479458853238634553557863433988307572886193412041641391747622262145895040893907156433591886572481395961894926555677106686603331465639912438550887807747484758286495225645460871257278675823057024593963969021038203295711986178350179934338413555558829530689528495214365632467166986766570769418335434724438754310379281724550519972294374333735881353498730454943803122625347657025968784264289353445750150374119177234758129336485474016493869888768116692452041527282082919117453054917169673345282815745294321428431323459255565474372147706584570432808807105635358579897700432236541070723631768480700118971673590560491816336116001947059406822919670956158935188827483705049381457277407554545643562214880173410623306364808968591658424217437378699440631459862012299235341277648170640472832702081041947876177878216036414645233633795760781100544885118507600829410261325968631778795350545329798899825580351710656137094668404863278198273822769021198745131076411836553261461922902082950916735544926669596625258795720471921366501800158660126968453456396924006151941708463705647943852124171685509488283767537416885260579368953644928489039118724171466485571352331198520288787275963082608459441532726524907003375121393779777083293801663967042247925664549096736400404955452567392668865261528876831578272323136638573806914529594894994287010901985140016081403596136060980724151391805432441819238127038996208463232760090649476355107386591885253326621520340142713770749529971827284725063784530539586583035870891733853174462516951371424262765795680495162200728563944316376382237570777263785062344466825002943013822569542302049593823537466311352600109329145233251606547858667176624412083982299705468507279149813563319407506166240925691312380149532630122455177012647554786695177805352164918797289918138320385593825201793842716700516256335859513838357720119106682646394349659971181547902313145467304846734906269454530787863923967642306560057440575590613430220722475718592202717532364271569729321243526393442635823342177099312148012443553939157206216870108750880994037044375738868915423327061430087500110491276115148823653529315497657140545315617472940227656335639201501682432104912310357188248347942462783949514077161145818447080184877963277230904589537468677528120699063347790863673465317837533917508385003175795585884404164973617686937613884079073990172785035863090440217141530443341650577105488039614066051446797203266210959007898341121729540164721039749120050922371789592793416796248810184443121763546639825002310554884329179897187777338071643963511472473724190857248140923573137605834497360366858156733729636373648080321524058732591948623095025439516704183240625737494654890180358816668314714517087398411047414984453527830740711905357434343897272165378380144868378893865531922807893442473155127931875337541642378916361239179828122239811445221954916991579216485661283351691232734034873960161726483514489890161877743335041288327139961445641522885390304008186153483634167823802039126121032788755994172027881111416105482514333672870852077627012065102647861343928995316808776864801199822679393474963362117186548045913821859010522548186671481999016762626505971673577154096688015932167640782835706763487856901668082581316311464449703810852529183387172051984108211266800887108527374126888111312482549794358991977287722413596309647596378326350209756984675930131123403066168233326213622711314710798905567055198945692974892213728044132428892505408316561752188729542424430199262520727440370663059601768714160009203040014718119203879090960219607301976530948900345848037456074088089531004085502210072681220649515755147212779317561854131205716248284351217386154311720344346674430801829357474084762147612024893011201911550165991354913453199021060521767532271219270453896530527351048606578194720718384023171908871367893625419058863470314565008152804283712123870585388182913508560055852524404910239376812660964047768087105207408372961053943298340932515133544635509703671486494498177450864933429114028965607904008845818004908039706556983262123123670133364686926264426849691382245033629937603802330145864018239791644801386809917338433949878823336397801448201022914460635521253853754608533247839339770475118377916141237949700791148340655207804030450898302644933929245412440988914316441213889835643325758237625159042328084475751399233617479801281844310032685572956957549618043623185608566936037667907033578112586764345759976747123699595596691586953246454128568289443861998769258717691242593046391339154715183106767007542868031506218968555319465297627827995330111520055299838750364176445458747797680023070184477691964494413321869965336255509761325657706123813926508077215407788164980793326367047658280719681284645567206206267094422452085984974411866844135347743725289354247192123507588557984872775680513093972336431875268985422332580550035613472361216056974643892544318616591161391834582426146100131466907538244525565913130581661684399379641832654833601388607530635553566661231536320668882637730541575500306053315338548661659873629146134528904469782585808839699193513531857172383506215516177505561663305434767086113432279388588781934016743999998434486844902261163173278304265596711855447092464038791131926151005628127445534406757413291761194655517396638244665732285526454508491017996548607504824158788617720851297217068463541339017692212760962663091027405929492903480218733084588584802794366375631862900846080523352532739773293576964881617942483644675456877146219254832575661556911698426355518075907697377741025042709681905662046651766549411262826079631250913931125967664899884656164177819216927153937982060661177497697861485335554877354081816115765373988169315285681124066823116662303893638517152165482506510913394901118979331033260071790511579393868968363037253138370101615783575094200743087637553218630349910633619561532057994220767196042634619724331661268849816979237765804185985328640294666274579843077344155237010729283889831893549336889712562442985413148020771136640865961736633371897921146701044012570208472866915889151649406399967486827333918557526981671143485794848270886992899944643499980256607349955571243936777792135825348181567169648029245518855432567101715929604397851086795651661137930959822565046240697456796970334266887097388058352976588606809300980846285840524361442948014081324734473157330769115265689429651242494321181383956529193634120011107279976320285029239181762481699826531944958891798553965932332377633575953994626158181793251350499494613927388478790697958677684137556490467977520613072783332750587373738453912853686630703121062861243694802888211310256792106973477261853377542967403951527218732912868252339760808845621132798020184859129063967235056925833506762904496171548767934424525676080828209895096009123850562305054745902631859206215208352611141018418592573599724564334459706416328417002185980857797744583397997826826138199434652977857050629319352646951314614546671832749202310885248396988309935897855378656646849373934508769774477937635351299571282712934937404469769732216457276377105462984151346908162737756078413608992554082362142771148634733163940914486918514474732810117259558506450259220808368038536604508365737321132436753875699208276280491064875196600253482846769488953025259370948884998665698768376328319896709398716765860356439277285452124272289028516085459779606200772670888547018720302649709483811523360140026435458735491131716041250861587475086130061830775103212966909857122334167798582305614042385475551038994980429455603162029850626473254445607413763903951372832789548647642152414099832184624420676716392177808846618654089750798457139386128332864870539929786882955512465501241610839206638778101688990840908545549238322266685052925831957864135695344910733760004401376787337869810775963092097550471980883051634022053032446344418452794914859250873117449114326541482552143923558343119822674396731414586649376010968041384735334109834617758956297877202380328102370578810618338300019157606025956862110662979739793197502749107791291541465787403066328997982105156951929695750171172773353701314705654265787351024899964596178751005109820553876352495318275668434125018930911454089065548326623576406915771312551103867794235955626664636639809055149692779541186595596835126624266216036219867812941219543331236986535776373698712499267723529873945905901401849355618639287028181473662892127153443278467911855998395296228635311039188904228339124728918063382262119941369135574543116260780547032776040950365204903665288794090055979771761275515870794993195791641635654872469120668175500354668916823149927563495503435078250090101928047067017217663141172431678495015230883657509969622794077986515175988071366297211479482397842156548847508497570011903750410784074811016860703565459521537508849218310949640247522095701555572645866636116384034090037537006072103821426340950299875745577135119529025082045240693437174705241590444392916566523618587885205186225206567609700304331958919002452089705705698276360132878207319864775366098588157248895578788673100122173931518318749972649781651928984765432480923329728288864664897727168543077400553068549828536530539251587047842221039585788612449689471073304144291639187459099999544306629023275282309658226514366834738431956004873312720681070983514024130497280423957139003397449146239768722603705899168100135587358125184964334720023466789581706656943903801110352737040893561411834550520266208129444935176099251469054492263252428343725820333321938216213423362665202646360075870009941774530827830076436957014171378881852390047783080686853572761958730151270562481447292229972335597513597871717159741471797766806009984210767973428337845169361747840322845768538105900781348032765941845734565730827810903305287770955992883469092245280678074324721109975211311196909328338158128604329573267437470199358085071660095053819306523761792668008847879359785355676334722775627029246677131919636741386820552546083133696582008477865936606373223267813473346727814356516219222221967456905743795080311711160779555597369022304382909175477830127650645179565317906207574658028493504800925671420898175005327173660559596772280844245484334302185206394187272830517349999044236730965792938827204914092015339835295151242636864587110466628250118870673019590228563278680065082567646313481431797037351807933804196757973368632006635573388663082866326314433786160223552541015201483048384046290090458597247395110891464412705816179250156985657241411748975863422128870251558844118927382806690456692091315799519090808037138006716546549522950786217436205054359204299796235897728185229371705267271583811205784688918151574837525038566980591331076476862671451210073434503672234448612175726986124544287152315666078994613165425739183034206428253231888837579033435622495961258747265121225183549197971203868224807369636033637667951619130694365161633473105062022646307889810474211170150434071892073885684055216915952603045623571987266519779592967408479312589499019989327581968297067321245555025396709459554454665641217548482432723101676300823024330716129823255534944026413766384690328258248331011760941518613080841918560568052452061786689864428861082574623634546189521822379625202418689375962573474411111632741408259687469988315941704931572970959631330939197006855067390154720851712710208488086444502653363287147857094908858720021679374590966797780418946211540211754398722338961586113042763002901867696676527115938311704853729494085397616396786162508956730257293640702642682971295839143715716661656435019286619519012462571529991758649882571860865565778552552319480048713746509258757134159464737406535686611236064870101926260959782761762617483638722004214271167064254057699187126361110924100320194817153282505699373380219105358102364908905993178131404489173499265145256295560639627809577977050021666661262106398489740713595618723630836133925686989661076591283792584058501224456948588529135425169251030078477669195787969303642680848932464921641193599333484531164995010786891182826115647749439594775969962388762664680673661086585713126106533727764532239097570422723839142715367860598474419587348236747258159400538227104275541888475452422710630365739685582313118402837185027609863118525422010486500032315204110057886752547443050762090886421018615567175751236454341807178451874465866033243708670998851201743606112675201752184728118343502729977518317814462431016387421102516148344772123305473128544495036186461306683377889466239710779715428472066291494450468375114261454248325878044428578644687947501909884808511945539680411453621826896651457106498462098248415133227566552804095299585438558827221356297014821866369215688871270024434511271346328592438585903459322597223684919734436278431240275973349113921801092037810175118965627478888917528828819783255965349380808386005368050196092042160109559246926754802299381373196473324623482730379457095265750339404110424705498298270391378236393850910043559360907913411414192617831579747584372685843555586303547896013969084306978912791923309534903110297236226038520543459874765728458544482018640480311769434832492211036866843339291594785165622277715062521168949331960508621917426684427522395295406508024539371797483968358416512536381274611692581794975568736740993886696801261473649106605607915458068738503674991576022427505420704549792839943021122843334174219574739894754615362832771501113141539643402100644747583061659985083000595375671767532286622636556223310712773439943964565463437823947081432177674348281856247380413769970163672393706207709261457429246716045514876392302170029037068773649036351033264146239895012512198355125718971678243265836808786281447434568736236142437541966456113120322040928554656459510459550402567933919772027845010439337587787802865895521033581906991355728473897771047615394528979794507843080240521402244632517271961495776820793018951642080676752552743503269601913142414795071951030650195714518462102782668183862026908935885703627515380968628142116361964450392558334601724926755293309475778789364019488150682551585640095441203590223684945386115181109965590581158153208745087897088980136277492852932499816034736436419987299300717922234387732014439805805615484387633686601865301285311704834832690505447831248752567136511053731018426826649225700992995644550008390631422512759054990797375123022183388300928497265381336857795282140546092707444297239069187273931577881515252062834398289582966823815782719407167882480315367019103935938232626665249762810624404439991133332933354117809356512175292727608170907695824662971891363532476841918442470120798570406026144202258564184196552455005419670341504408106874465227536922531347062503915928820545439920812336311365122878060978162772690800430557164616042009478272575046417355403195156379542716742454367316237022991528686605693501555046723933642543683842342299101737650506250878252803436666405241238848371917982552192718653908310920288760514426149662912213756672899076497072347803604186270496997150437244688476409204801928556318827253881930291463564798274871645504861043005493813773623740034424879677412660786010912782646237732068477383053909766352466453388676329740248202670258425697437766759214011349001615320840976737041230176824078228419769845530517017766599154068236073791252049692201256647761409065630915788852475423196326066785325843028630558855935641452742614517576665677497467390374820474429500852927688260045105870643858048647347488689609826042707246765254226761394654157650393756166352721748532881502831612407589671528532720303836490781836165886518127191140337799594866033500531883572801941091772075793708560526296670338508494245932943152857277887176614152999199456535883868352352518983614328238903327702457831084261817251382055867794922301089970588342786954156705373348071585367749820412294455241605234174743558308892218581591283528627126261760797466180891612612417303705603091787769188413038824151472486619727623437730977226241730177047691069961663318100063004514495257747700067891442252405893921869802755561650026557936272052829535804797916408849867747241472984065457527961614809778648815832485306438253020306090291450384591450769596453307911699377294040739072178066426116106373711575542351884332887459785984203353665408637792756998332341992417943459419644216289628563560064070032486311708035983203935741418827550327895828825014433326452651706858978665605606412087821247035997078232839473378523969234326332168661056941435200318152677218140204826494754672646592556134958992334857395413755763146004548053399659150634562263311447835351562384321617163910946204871490384439632486063146471846053282954359471044853042885765300422809094469134262406504511680226076910941652337767903296740854731208230144006821152320291541573061968050436326608418416176250182187329639995907037508830177982652739178290072676917262986726417017733690759333736422211929300472685299032493509884954707420863553671942775962631048476650560426245591277651038623122181626919129339841969183585081302433286047847507933962680402153529218466366771288428767186226313862830736418924009801830617355086744402309173209772289865770406361014446942709979514783999028792041480633266721068826396869682075447802947777288585295456369414723067574749911195377435879899417200719157313250443628884485771570642749546464396863788118586234454941915704728426116104317834224813445058078026352124931197836845167611803717926974245337985772063631248110284467286207155351041470907954244415475782053857133599860173845711946454217025976526958327631113072308610301634482269764820255831037733390227117217112028290944973844438691897003469238596619909813164302578307775003138701409024988428972187122050470502656077727810693831889452593628339268952377206670943246188699093154098320150329195872150981415560888927875350573022619334117167321990645335783869712030460265060868817425548386427749718624238002212238615539570177744431392350352021690803884171272363440817724032736739020066970826076662338855233858008683717392168945810083971736490780727527318064178502280769271302808928106230803715051079624186940099851561069479203729985687455315294991753551465599157602044983173480780079578512164959626397363170632619588566631142218900103698805523048301717325408251798942722210152923506592269175334850432146637278285560414150288096626096102008823662500005055212597044428078107543578211240874665119679662971385847786502239306766753919466165087923126758453444401065637594491783053546520222748344210335384505641041034596006916291662544831124370245668249060863526176730670066536096205513598562458941165388007678751669168679908219216260377425514927436018084227472771204115273709761291489566118060198803423150417395663037766936153675187336988503179611237802706822450696786637206526681356916228776548859931340106791627363454974433231408788171650973178433999970771636222343977273556034379928591568305391236720131379369629700784752788399747877687839087152808425303580195665236194668676490212421869732352580208579253967794009131073841860325793276641734299961905948349107133135175039841752169415216626421365780988347909496366664361037770806591202270769924802826254055829246918207286666365468672332962740921490957274329014307922428520453905504774398767838850109269026952900445432066704694444515262110017546480645560238719947401641135524468314254193304518481331160212438338001797242550365619207527172362185594674721371010992178997763800378395415889955287555049274265541902452957294962125702321137743348399626988659728123649658316292207796809717530932854477732629018141514290673467820303402202663540248327401571730538691563495010513446459599985946612021828197810351245899916087188359197566693026204320147579119273466484128702512759345239271861269189823733392561136753067974136749365268788725100502584698265120539980840026463885024312162269154876616534501682756805743791625820076946109667129375838573319793314228523712772366989769471737638820205258527651020737392109758610747818252260082691034054268573977314774689375755760324569030948172867047899913921642799859230459775656766315892015235446868187229786893589773459972194343744274208499694457155332986745995030525254768007625704131179509647667807623549323695034125832394861925416570717936351536347049264589557877651943702273925654379495704029184654611502514480354738841816619556356780682750283004055999004678866608772363107180195195924289021835270310666854946818600901150762871484634099832649877326207425654522221564650793859680110229423881741963522106836725454515579197606231939533277669417523548625482180883863406010570380736257371182899971192293003298967487811759517987538736919473864597031127338875911815589649363116846403928123012802706925514851814692774891057511203170679445975131497799298974623003643828499695249205065174080231494880667110965360255931595238174443883690113061280209697022961474341921708499553393448306943388983858746434807698882155612691060336561500117750326484548114937310585527472536441971053811019182224154938188589595428582159357261791499865241122769071858213179283682191725353426321871358391936053786473719202224266985336246720508358418843392872775613122886291163827474759151936940588864077456230372559852684576576706232768341545612469491347778902640245186854740687180525941879883970595389727169397086236156000229141911879333816026258584315974296463804555885820831474061571471358383448316396182635648647581262761788422966101311032137547800548127102279311554610431036947523537662345396799537320747789551197313379256658555648190889830245553263367860799629370113641396767937888546096229949462363014862444982051408652855574007750501944521279829030208079135506957493740407441659788515560627157337472324634624456369568426363411146945378018008022573128913014950736308087925355265557464212374108849456584291608045460897362834453756053819087516240042571062420494689208291539080288780097853892074172549889087736559466263054060904424852833616044375491745767662482888807552500191570186823639600063590092400633438863635873964123859732593867335283055784990746372474234428974139626874373674585936868158510986049527411453871285991441399473867277882999176756961326317180128498694046124106773412680753661979556344883229331164144229863244472402017694320489196903331685688573242880552529090514792054258831877953940707496227026087301832083869013519129516778560580006487374587794712398129118381638176934574168979876374762258142456480502330399853143810612501090311278604488659817499386166078167427883552566976267488569628897750882860967883023996255185628515945600190783505426936199339354658660931627844173932938759277938148402288207492317775093942154049735268610111581680606960386559479027047029863591878101756017575225746358164396890794623723801463506708268222578856275411322015314979265766275825708274295970280840782725916701145261655032622548011057754289582116886468737092309356688093889672043423738395330490375857633635686170491201423076819708589688161081137461702071773366189050652384233489026632910427753055770080422207906147305924543950116334378127962712418715484738460217307775507484759397697817788539374855415522950074586229993373265864277042176243600024951193717038762915755582021864750655075115082238452692459900780003527425640971399688209033278007768269427377096345092202453633452416930835536469705599390484266993074043604500665769629995781647568435203717845251138885755000688804563518345271328590345362249946563756467946377340934495994285038789161363303006893782605901267233497681905388316227057579153189843827133808886513495831910765295070648297240563734785070106689037536991198754101769680188149601882794402159184388279262846045803893383827935531398717189262589201874718781381076466771873667454957522055411829494929786489004787770416633627429960279989883952865439433090957176582758872272823432629101086593643753193933953112277593019904874669641929295636915322466838980623538539517857475667495768435906277676289133504431678911162971618200477605461705349051288215183528131633114159717792200050284513921372463092344514095282525653553124313412252036675405573773109673270187640811515680372690596144877579201522777383245728861698635623961908087826651072490865730193855253277118934761196508967360015048337785611502670870661325699078852691745785830661943290273135978911958455811713753817396560746600821939122805805674211682037724756687460846319260948633551574970114910645721557840810155884601497212826454045055484368147607378753749792409456861674380470788376957587707747509934830451877610961515543243619757411019084287592242142647337778814343014385170107483532151184602634734733520685617885871620423785260456498833130406810839939603289376696206696835443109027833928075605624319857446428608840277900583036376721730678613483211628224799379596825392170775021514136005817016609579237724630542632972095869330005815090979010786738287451103148408743020421682141465559608840087911793865516304798831856266256734719188824793382242839026703074658264344709064650994214290192752388315948544486442301347499801872606557044444199985427437261149218624477176106290782849649193514484090891455289833259247818632858322277772266008411323326966755468285186791168771098858208224119737154172077362738674955452557315728916437426637093502105549695304718981239569039513731669709591685204716105163218604325155445151756336717750317402250606583124503543407554715330248872834932711637583415339486658046409879705388202325962923255562953332590673008851914429986188521105152265752060163721112964949590213340527647344845772761829987397292021743209038130349786486379200392695947660567936549618709167027445583748796441938680692627907365544843068946970898084229079999772138436024100239543081092506892096070716219240201263172823147076108576928320170209701565634492704874116075590119357358642851730769853997209187598230163814421671874965929195185774549893638572122040423518014442688492593712790009681328243360661689690989803800169651234438661550872175410124096786001433605523645743048431830887463819916799560989428395568018623741360259711516802691448557165669010080690291942280051648737238227794165357415235509474517271245700415799974113775043124456940209028000221841987816555557540724291011878720077928804694078498438982045386832338957737090534926180538950731243444219252552737667532723629606829459798787789264447887062815842976308424447224198293905146135404790115405642252522931384628545357830007636481715561973748687137383470920215207615863272602483220022490130196266095798904065045145034231572906884581471881130747635288819192431605839120886292308841672456306955823445023743855106952112791973484303827698461583608719680191101153878128345236191477798939110316898095601272153115348008832412110359535859078642559958190875064676105086046530023179087206317760949959276266159604830449381642567361137049635625507792752834844627892905482234174856726807795357952846186968870112148230967551599866930696850719741176669084125899101035356607788523428602201014018173242995684286243747391064131822478443591416509492132022756513241698976563553442482692325427133555889423477455954772678208596524294033527829299646871893258903175259494227118445820328084004196239408381629954432854395038519157959939437426669805650054794841757624474188778520706301441695469894820343876728764462943806738800360698136517613553555595066726272640042144172084817510022050753104558067954879525135139193297077442861409025205865488643344613000131530716231734992150583186680470804653757999179138133417426602598280970410907824795671177083293886485854457279268025706243493081768869926712184302493295968289111782717305994780916265694338644184112089686708048183230110646924721700689329689923846176916184567110194634664508468798619440837797444662916895171691234141161964313826322739696155257097097644766017190714839698427353153165836243384290209710130241667060728311863760858118200140565593063322932858081043899795893949309771952040990148918519610123982176979397922478339046293671181146507942009352240649554925909307849829009290161126856026546331762038798822923342745515927822761122920086170411834692216676076301829333391901614891223917876070945912008700827639959325055122487737465122372583509553482902268292113507519183593682297026355545929280411954729196048320998480546435465357873713353121153939473275327268514250484630758167508042815447871012493209989277731649937791632181844264374245667489345475503958355383193060152760158082505898760544886268063115571371018451683620413912906026832018425766907508245085797462487867997487918265905646477225069112182406446319585048790728036432805062818521892158300055459713204867631767710168129336362172977824072938227869426943238623908087430054961711863449980039259705650362578188858289108143558868316834586386050419114504046302574937615969484078389977176880034090869576332514200709594847993333920560058330028241743878121076891984416247424794299929716083343171964191069806931038877098760875393734301754362580620656224231703546743756098365597819477997822655555038422282618510641897379550547702310617585278273099353592066725245644992239390659339574007808492467344195165965826341807329998708850549167368854972215871702666974981950036499334857973304279517568196159953859390392039407324985185700963304978865845729906797035118884110445149907735485125410698633470921364042009187543390192477428657210697678048447550527721930158170794787378675943493517111893017152441843934623969901727032056471478091181211772327730101706378207408097934135664549159888385404907651184131747577384636539898073750783140380271375008802394393342906908981562565875647381221779493419508898649800963960883209797173307807931574687603609516314227180841570979507942940222887043414368713597031715608783010181043990474246182642825365463326074894037684916097744094265368909753421071079001063325302224560963397052044770513394412753542873503362789791236975304870220098904195437170159526647549081402975787628927315918316922733163162882651201992741915471793618519656779022494741936756700827991055993772691919708662074034104899259523604018842353843284435329135287981873758232867845784428822195649323911992369371641369094519523186825772420404196359613657324353547437408093663740969567403245047264235806637124704715173982535082215422767272258567770073869605721062447635134671782634232025673783525586237813299834116434455687347236898961046507085909756623923439637137475007537616829788325138580539086456936090020074987004321690001164095409753873410412866160823351152581220195843826000114135207843459547695852555513530789091038112503140805876103688403423884603162734328715896292092911792733237540825489222503311042755374979501789008281368347174195654909396395905726945194346262381985553368988771238797296621756937008980094120766848605133471251347908814965389729194239808565563013309217110954727010749985045520234333321624802687991227800360109980355204251528645438471320866356136911554470913677242408010435710636328287786605137940277540817906498072885933853807565554054584023931262140603927987023760078658088515928486766795874837212206726340190301008952162552947589854850115694594530074231008156020071307145278425330776991718634508868428204954018744191610107288173426290079066070296414492876650230482347236573605786556595302525526203216792825198127154532932985119434595714235639645186159726999271969780516342919335584309629345205122066912219819194911070134052995403897081036710038945501524315066479799712011729871393664872642384698519492530172699949160762019751456621640997422180729560369182171910426610622959373676157215957295497453967598651930225918666731898379405731250663795559611975853079933248371203555196134210623118280008251095860985313479081659241962277023097048656773810769504741161121322479468943059833548072133854722406946105566619874707556641976088913856855873548370176843005701116550669339460806292327084896713474275870720121288450422478109138239068453436571747330309846912792172290534897931009099589399451710116321056054046292287938008651818149778526325467959485644973429922476666849832853912656064037605092408003543747454871478197462730283706910834331401682427460730462951269024187234030276479157777777166483022020838814668452193601641565937386268793541705489789907513128983951315409625823396058187732204097024605290988395810179241669321644107737901789895327362204049355197581730949753018097393836048757284200212030089172680065632891479297711168784609213745848289782347271263634556598646076311371273513407513940157518874135248607515531730267716508974640823874770652213107914332168704070376279397544906667001977731348081828672728619340858838653528900115206877199797288943569480583453472035840789529801117932618888299778512262404097524992999246416277862304558787109045897398079194143512386323395317299645988432507858720892925961880446010022707404639580484820062903201528724031153370057120458087074125489527824597140973038863057139456757299384496308858736368691015337790243251505234295325858937072760277823936858159338995853752739175815233404951233582663347239542620705522119233630214328335862857640168160717108395750496333007840249853313959276928102787065210050211029182574487018802904774182440183607562676933362882862851444913699556412861300107890372717618408693156034619621847445628833977019003804681430510413434737481160343167945241629202721003069721055891202786224106430829126081685722167400960951861331845500767387189669696919725697337019593629185426756447534855101548018084374105556586236296551440335012372576041332000072280629099397093808411662681908890460843221539739706054761747047876227130898924945818895707901331049982863139008253432417471407459189623255164354879943539526853335222469287049922741119812700745924703779320608165810799826199359790882473548979032517267116948175989482303327691358810218406784505894604003054205672695672768837220304286122004036121135609022436506282051675940717592511211019755783167859160622950033857788993512956246842924249528430181215054700405696094327892798484553605997202007380234007321098191826290971551728233768208159293700091215759315093621136452858976591049622181122516105362739629700042478980813609497721143853379241909362839915335804273740987888877088461622018779487778510672214193734791840028776569085048425057245142796075268959933188592234242435598930039138401626928314532210785909859883691747085780113948509325255218340800385060970699863477023467589708899989229377268147388355930741901911639187297603935069496183614216181936295869956232121507897424458498870210797617465358020496150642369769187969790082123574798399408711097908822545766561734024608877577229090631771728596901311543638747694933375316069819243125121057790282716690926454683886167498904969594614865510799046243319962773087905786118791081550657819439282962995144527360566021792375891298555202356569440805671289056561453487923851272799903351311420636616777617857792549347546449004408769033492308378673764839788605765616756991260070349931610727500692685470782810274918548479874431341372151238713596438698519163390698858065952901034992559384169752684304838845211428962018892651119373464202679634661677403408460077622354250998999343100655480879470946804419302458365795211578637109053375387143012426059735583853562122865327687580324409499191521656889277139231673676910462077788902752609070087153940337269910650807709266682325418923810253896102148111558172607854947600376992315505854478748201798676017445554937032720069647295759967477435698892232400242459127312812607896992812436502217662651304840201083063058525085563318302988968686844486649404166822844555609238648352770716139943658324679163629190251506727131186131889038398857821646919339668144721449920749364620745685605246907744543932673349386416114907290771677881602591080155803448551651189821376794969670731577801199668572919033975226025591126659966658011940376126852641921550750220285321922095042615303078532311787138573175810348775905916785146624522254515859905979734636958569477057912271439242961542557044176053597640591549018783734050064272069086634078751135703626302538376701002216053041776961499213319506715560623637204356771292875257188421551650626377618678635422625745178004485564253602859769697083512115829346015126053889287520659963625134064114568619226184974887008416091690014073160068087241800363570492727926872412156930338863304762018027980337224837150433591956682002082099524354160859240036003556619244741646699938324050469142134882662574350143591475450670237208016866399035722429977219686103086637211028504388157347986949832188252734241344741795749492881915323911038765951564144007168505047511994906600651417882585343159495953813008875453908757447390848201332612745305014832691366660321478149826615953466444953802350312764819336656380475234512037984165505542984224285941767847613831969497506241069017248236480432238130984326828925959410390099185275358951929424307681322141274129392886686976184818440566930255606174002529314127191102424960550117347260574850477284382332011129412817038701914267448211196270816595468481620316971857072114775265566341839300899437072274032585677697612072991804337897762554998120988331125625191226814072532792640241826168719983200475532327842570273779441283496428160568749727785542997035733208039958503531066799318933141715018092009212617408224056685604107022693941176526732771913632768773134329124817028711648105148830813929221370395561476419073181410789371535414170595519076829147935190885152748536723338681987270950069377837760071001874681708322488928581016883757631558710744372360034314075170906385218046872289334033686250216340440548032831524015881009103041578098365081233361350529800635888946833157397306471403130947763634695561993290350492983925658397569371766883065290175353229736306288586192310428500329081137103998751479245279171726910586491793108984247742819722838518491935815133071678976246812206824989785848137929032076085012444098927862317581952083352186575991565538554452403151512311155677967629497933525320746859885733231497057457764450047374084344870840801259981926181202359213832663482432594507813755721327127536819587765534118850318672134071014774853713224812507059590935600277444175422134874423758487736168395615731733003515298407939090574666459960084163233362520539664382336278686045850877803696959112311260251473290970992783568586471260718153492304153975226593549664418362062850276757836406964097580571490539834723081780704434660314363821288262445986715445767723526941314768929271698351812215734969235155741957757452226980460717639199165187731814707331801199433468523750486768111511156396937222485516457861595579542374012296497971374902805011622309209226452907725164945984946518934088433430263185013584355888589000973864143416009190070626528346385201974169033048961868472771724081139334735201621457125741813752613231085798957103233684404132215546123632212411723223189705142034317630208045309874634832165930913519225866102339200780251331302294835113017804319202807886447184399510803739038881432171251461807220360641680037010172777949576407741070445400077246535620090349922192481923033735258655503733483973122685097299481569411881462793904918955137499960252487428622161424022470709253851912346310271550774213574539243509034469677312482688589698809763423574488885785640762688138264922610229715747805439464902321591171353461647703358070647809162240632564303258299069657403803397273243859456837256759958063441394882467488930879317670200622492546394711136546562524353165979015694634081912552249267975005661971486572865951296141394731872818502455093939359850306582832300071375516337839441941803193589401673255127400739635251916412478482649592087098494944499907257022137735474859694300193096343370391106120757237732912706293714435289205489823429593497214019655956568111866664940878229163838178670700782218220432509013546879558613030791188366910370675712050592338594987629901857172667137007770015024087018541021954473239228270495777881354360028972775915932080807289042507354250190866708453657985815568325922441037005422631821847061656021888891852423959446053706227126863057022996395321053513031424312048788132598949193832990550736546390155245138108845783370854912767165594330799877466900933190367723213690480275813649557831682312921317129698421125085870145613576377073335527801110455701799804441043586216351168765787995352966346789145448534687042831148014502087318304603481742066072868460381588539523826079986144838696322284139385399398204864066073919823853888330729274728729766032300806213165508315855631853708316185418317664186674928409790818150676502759890145886815606626102321895379474118675272025646764962451099882590635382130778871984679479169931846288825338695403389108325107390729441357221632712420142192939421986394047184927949074833298744837932232575934366711325240180559366036510368661045409808845105102715550029110590777053471753802963933300175313950433686444953852673715813788755103075554598710757309421911113331593181995261216878793653078746450256765772690577129803172776195314891769812041743055294416971107168083924052843349046217892450011908224206626705694009671037909752769245658124019631154558185538908364220813218242739776642709495372059661640763364204741449321663871011845009086532869641783506538331806146000698734997528853958467628689517507838287768626428262639281700308940179548538158076917654065600534720830982261208566204437447808029042241449493248849254835125411442572390101217166778808520462712007888857394726138451427568974842650055390078055136502794860878129882707732043466024489104950216480905330008232253204261679319917975500564725551716807686215690790576309672829442549259497845304605043051997085860319902442479449609198695028559480997873925869241903363237791481958116429277616541933899681645615750813020241727996443109246833553463752621368036026519576513029823483231483144415497735970309763951123313006643505085750765003955225496271272157101624290040234461371713080764517213258655345895363773351400702240058830580321850628289045840088815362223407179336056781541540884320283881354343330475597298159052190205278485778999127250503055539624934934452005105340700285971067044819380900004627779599042170279178717093854323574881240116752258997798586252514102230385120349672411457509549357306563992705735447679750991962528282031664270512372378748793383645712671914317331146498805235928730237852990392791013452188263426763535042042970468102682787291858585937220578936183238245997181376285932053752432670923455945222675971615858127574177338995856530992650195466394415227857996390717901951874284294914213628377872529332377165521257156131789008540923714217334893316581538959311659649822096953004343936927056971935301177269784368103244165674785705794514357353509619933932260767799250499002275632888195031729547594901439421391525301252300800119246428019678329262843663850789115764596588510907127659657144427955897334921536930317739424898070407686003623391354819553655305089755988297443923265952476368484735800426340293265913226132421365600804330099224222438955535882784097370537443325322340411118323751383048489724747204938797707252156281712503518983084646820567387906058222028148403583551149184587077779466795890967875132902265072620198635563168311186825463840209988908040762716939103817359792713469372055114542212027841062438762339529622061602984262578190298235159235844985685226583572729851418233510021443573547855689575093359797801083403445121654299266346257736670713255502832195671524389433370860684935461817784820325066910081175915857975213166197887065294415454106105208695299728173579001814712510383096747843796143070144659351003084543508481128759827994774034928606045138103582415905435424138440141790156642788516870059744946622785783144578073625188967424198733724939847305193364964921847160074783016020117709487177072084404679153549420232455951893537857202387256776513641687623856984551196482156227671642746653740656064987110040063870784810201969346003482110642319236204471635037784019221866599243315034837177414320001681836453957267122003764101626508581437202718466670820425626454086770029079751504014485922117342265132574228406088580626168164326718551945511385149855524743535110794417692343686921661365701309968094155333253965305820540938040147903949216804088566022682402091162100276577501009634589562751930070326488891519062371610221436716710448508172508989310166400050882577637557107316570977449658127715332238951147386927946075697024553360943414554908557135662960755182968780975041495122481386444138287784199437478544957633785378300230571608580764398813141706998223347738814836500829543202483674519317930317320485702453881641496288562721221472989118349739644172418562336023060287852039652409702369767793829864517334088279943768518709426798101599918537000670930667392392716895063928572131677325627993541308225341732617363837404722494233788528734264211450517066611919278173641741978278632756339447599599767752000702707336121965617193306171019633976733375062802724713706197613330171650685877011913336041179343926084275250959062597517847735582741803137169511672319587327766349304712657821613799838611882990703108555056760724503810156544098770741397737302964779687954749576498095682624998435616744789479400087006648802613836383189000871132159188174386579026482958159000780528043380055664460981073707171756553605667316636110133741399102894880385459621312274771778247881614477738140704847279376504553252456079713814499153014886237288939694722724464779741856386789138195454226470764495379766407763596003332535522249951327872241740249469297867511609795050800392944586136405662391637908314002097165746238815827729745627286615947427973444106147167446997153236568566615975658632635379834954541986835060479050665153000639697303022959398421592482271665379914168994970508013217723970401308061833795461467427757436855824292042604903503839527985134409254886811182444375131103259688696691652369194645297948901586513330493951616126089896023689188280875529027564274296152869927593571200604545175710920422609090837504248211394928106979114417596037240628753194051027353012588631091211384728217070055443195882588715746986199842671172369698897259193604605338202367283890885055726885941292309845846422697525365083533254397643548187157954394914451743514969744810711889935483697304596652068270206529861491386678102948853634128451960558967745866658158924132457129030006418583555247399856617907238457087949217136484568564357354928407640367986585587546882739925120559425574315723231924674191257906308458676371564164252135143943252761269808665058527443212028585421071485638146132081764998537637527692627237363635657588185316074011476028104160726566182839086330299069063687129034753637526625768808104185788440272053579639735440644129880089911643050152582028699201482583253196796337279311729154538851504985048073974868316309905031657796196122135464702946937911355101382024470296294365672413117478006740734033494155087963540507013208949108149583005149097782452820206493481530582889269704142749156835731408733386156861261736628302421419571899897365919271572473200814704317814758934045921923822350460946535204917802707631454117717060820243995379635289513731447603870234538222716723828422336474591281806468074182768158316057429670672431187235462129336794862557026587534108291104980085069830887453858921646698678937026377329443911887387913435790587549657403480317337419779409376501394249986869595751500611901953668384562357140594455552456420557682097821616538063179474768718181211302585196293672033785534109245855269173716316116928122625219485700294655672893073089769661567167706244142087075264523096432933654469877225634586678394589895404643413140395225627714685967884648603047365217426315708626398686482823553770863507397906320568178335149867478338229715068760963002650343160524909480357521759265926701164494434731410395647957041267225846405264980009319815615878514553777075481410702251449336731846176068714411441099192333340152333794828556705520176931838001058471901753419799820904953367382776053246058936415480137202007221052237839612572387018528755524660115596944572150357492558099017001130297019930173174703457265649585409237012585947661490676727859420029893565640529606680149747551834929395468576481236090528718452629902822203923848120153773523239124169894783868603183321449226470149469647186133193461590275248470408024556330006310041158610710735316243761019198060667789276330260044446401225607067227935729888290115503749968594854647578796494042457968991955875065077558266854187532221924206839392405720487343213694109839124771505143027874869146017799259841782441344175659651149824525929868979847600345887640221338012502055260597829291307582901601256884987994325314803702412520739106326372281471746990537682642899929325927079753766660569606780843868828675975409138424522734685712964586747968743877226045352668458819016750398002218578419759820989038030292474747790336995112841443848217029267993479850490389690275312118325140164745762014385914985537016447496676401311087195721525360767664502742528148083496284526499595998119453169455867744705895410575896935572808663327052600848265832728229449386360362997160377230755261692138016470604128338070085412557110434944729522819054210918845719900856230073961114255693353576782870540544097847492474231775118269632811282579135925655974115324968583618095843180125526718724681096882205725883303095719175584199891322337977617141188895340248319377758621958178998124097258356209500043996630305178656111776438249436007219413647345580581201967682598722369411124424381926240372445769411914911741839525850998930059209802736737778170739537355085721032635919856161094050231877497852870023752976524356930088039215323309217428226681452914161004204625559100057538215777484784450382635004357192426654980610586793759831792219161819227028054370175502591263807555977492264325095444428184051502043435208268289598536061291555888728254556394806019329077190877129646569529149925869252011655628197840571128646736332884167698804707800465656558253248905437522452757457631543845337670611779075687677559921410861257992996909195978106466980508560282407741332862036850126396435669621441904774527223997842506378307242414215247097767971819320494756823491608658344485003803045596930393607170571727160715171591940420111863121146745625952643334072311663296354956720124979818845260778153498478911799786858287728228186718155318603333404994675111043942629011533325160204601316214002215046743107477136485642933712002684987406943235215401265991810339176194644527668054301222813042498421454317977369719281244868917195083691461760907625403884447336750230871197374447524659154969995499710042947106194868668569473588598842029542130579900088547002428783357258927884759054533051387778429716283310834903055716066526466176966140619232881829458229857845466827128825141031634599810742277727063335339245460385737514045374932436298213666147196035293466705122922480783034090596835557788438120476097578499188797944947443899938105512664950721545728573565662176522760489173830501169269503146863197514259692728058001354087935260321639103613351858545226051478892793015959325586781864008042710906288018804790463222556838530558599904177678711191301582144348963145310046269997005614057629777563286179273132624984627294985582542807787736652220938986287548746022807132785884729575795736693385503003656523985660174111349688986189348090599458221968501086387267178301360107174261019682474681787648762415981056658451639158173764118578548404769496788964670667722310825694154325821589162454219754181188723259403390025634409792994821935244120056401640991004693625712174227747305965302434539571979449715100795429759351803450514713416506874543052894143595364233607978919625744503136845078554457679633987846918050688933842944149937334970135938024645517082429249580085843379389972791202885623553867974155386545266503187370104641294259627827753471781659947685516767003436553691026865968053143692180613820414062103177097980988268230293620510922723419154231329068389779074061981517056561411997984077190755890975750037218644632198602797153590596560957855335337449381059391124548351834668189692067102072579121714633540550526900959258095035470541757273377302494374758975931091773061492588876286189221128906969901132672780112549328463409408855184184885688744463463003465179938121611112452588097119995830383535492669953851864728447342288118165577151049200110999573361767265851213987502454500820978287412094358052987412549662600574732161409875133405548220316079250815777559469358783554066911035991250725096276956568940717581457651716013671064252341699433661425047144956614490118986832263797549119102589142607765128526771800444425444372291135071730980105208503884664227407370270677048378070433782734207855898167949937333110886183186092070482295804440132530364616733224831112407345019599522766646857460199535789816792691242908084790177094138637051660158171295452357281451292439995855560480966637818021141814786276627216374341795559869959065998540184700097846497075438951490399120823042742463124717441402395167293539888594465764574523594452716319896972413013815632465872938141921375755431257106528133753686856419332016204286555065787539444245310577578255044521551376960656247359075618976629647888946881413850400099031765127022368366982389749046500588439558285089361741915275134486192799584375424523996635902239353052001150946189844617384138695738205585885137727889532020075736420233242341198001081083759988701069463552808560106312164906695183080013342181425618286556892181345179866908325054963802038270995182534120812413358517269239811508847711088807265500327141560179599675862576078354417805042265233936438464746250013945359710018251278531660783466931235346155838209616579423506689101177428235411287188440067564953996813248213639922843517465508650679241383809590402301456708467020634885831146894068227299617782588090023691194018280053823025432594034384629879832805235240158093508174867148690430332244459653480824909024163577404920407145663426239638971225156217357885234428670471038335845663994669598917309634544242216409485147506394443138375879257880301419383117656062100850893194381253128136933902439735405415170625769727204659862318966504951243748815989818226753088630251735410341560016741734372841864984696308360238188805876144062973199736016540004780538062979654181851355356114266521133000950553680805162076194713476672565481861309828212349257952362652566460321983382405468247286014393778231000272210921182655267778878526319571242499606305918443018248722829115407446045774019002100557106110909631120469323379487398824284856327601281879231616194787003079185459071524576946169677864004406318182386937015895416038126390140841557024378840449189176962151058936951193938660782226809313779920409533531549212112091364675518188001768375101854588337942879558548417034989461770667384598803567966226375694910751699244816360313309749443720442719680984305604407964286616472619111272356059621633462672706217156306270914361516918428398771423104644944638491574381739248682333158744628041491797694489826391670556134197968884246231756924381718665775173586692206409748009870680924833378477711347788530765322292948828014236839040402161139548213537755498190246147641445672743327460544051076626139472371532678887909206761886320401726448620591332515953039454112195529182037795278756697336164870244065109793067412369296403203456156843988568320988308055173254238194058064209256616139098998537203563015669571798522530337052710626234037681317569587533657259882736971997015101451955566541228979665239528606617146240400449879960698861599908979430939285433695983547215524107181859351422508600860710508136674091460593191497542890541597697516557760972313994596140567452120608378529797715233569832547191600935268769220306389138258656057735257433857749408413522025505876715895788090331351741543954934418081485005510009298513515889215800168002458832574212269240257176409895235811958208251880376434143780610632489743412626533415426959500260138529618952637575061602099204185842310174702928015567511046318055130172300391409111518366429881961051274756190496939526717062460748456678526727790632598562830841886857470518679068272638973546701392197397617806297514258432553118664609648701626732787729456774380208905107118648404519806003043977348344683308582988831984737912705132560115455240938111546611615793453055964216511386803529734028725631929941778530142832132215990386059061292250951140747078521173217371096777222308996147377587309939217577632640817983735748265001069619464227049672939587683949167899385379357538525807676212184540423393022659140823320674422616689402911991146426436407854597568598759791333965960530660728073363586468674755632706844265826202859587406201724217605607130549476452020842554009682769060942090153456385031705967392478428477869103473296595642927302868166830219306808382525568492181418094818115407683669134708307696241358116581595750185147804690913160708298949620455936650216216059553963948741207464233917639516094066412942042696476022942333786877383083716968436269068815007917287406722849584255761126259417196223876589448913245182971254487459293607912213981935982813754313734760030405130571840042232680116991804645920045238897127877663774515908167491967873379128200154335466102594078977434353643677454205517436446178278254860288932691480256153980427982304319024232125178188569125261432603780114552084467296422004285117031682989790106509341408167684304691410696827335846082518759224631374952830522761436133151579296606552184639534753437536100180762262770146068877124796539648987307014441907107235239941148843562584935315570358311777825696265622986080815279602653495149259105471227502375022437309913496017430374953831822512553979254328731797213874974199229126611364218273807763801731209371816896472031932372638532897032444218703893081368918437312757519742302157711335448155578459094647625722578356993825406336946427585395106176528709450216848539951912395279518580442272135486682047322832972083106394806840262801135560639450116109041600478336829804723860615792240754614779492805347515864094362106384422238875920506649376022745223766250631261310684389320808258232234070275195520614995867934103429592479907927892228223616710121472027073750244709653136983856793353852195798153317361210394319803400447496424391335323850437734384169446076959404814598403297899753078029716279945169847715310525893021281057942507910273425272277936727029473815148915150414649989735879983497836029371556567102803651412315203486496474878359198649648278370241790092579431498735499661974037500498790827479042210268317279923861024734518475945374645958054239290110522418118956253375853044555211496642641517002785071217769693302171464502945506564834016397383250538249716389063746165192543358268037552103837270997925139425129971049441327475393282923726101998303497828183978317991530973217914949540003441762711993162354384401106830968124310013620509208731322268477126771829352152789844726537151491604184747691228882466862962879799495924110624848872774253979138306762401443564118966211178332183189268068808021847502833051482042013586664402653309213047851465976084605936492728869600813260229527753509983474903672870981620053854396161982719219768362307521732533763728228286323643233270745239046455847167950981047218414024879578826374175772772127653322751017360835080566785973144270810684363310610032760148050458220368414548221872105847958773778302684218801267488874024202808980708330126095427529673702578667514213838269796574136366731878524580118011915440640885286539544375999787439818948021141472791959170055257643543847929957211363108325800437563473998917047956334570021424033108223466936125049069126142961641374326365854875349366990282580041290894862701673145451073927987252571077924835379749592926097335039553365762832893749926244704799917204212557926338940273220962099717229445878516349664064066030360762945712997948984632428483005631964018919339226203270227898623014982866855358740433547324586679107192006475160071651251797443724375720153109561144716625396097301502732657010813067605664357699260317419486051609463633892281454374135699391609982467907690346820936641487212327875761594372242546127449386812714028646329103895095421208012423176216856812213803670642017739719408757324922115512367812022779327343751141065965757033298884716680276149241087937309423632760080353411556360142429705729124448249455538747596636243971094678048642480533298492042919948367797531880286964480464408533099812329234736705111274806841573872233691178692791768002165883061620539261305213717935794515656224429249984568018593686838708391728957754727360807199662177025886712121179237640529718624291173268258134095642492584611395705410888895097013838704635838664518406916068950715654839145575344296088811056096265594964736564032332591086971731930723629923731102469905927274007261094655513148778834929097409337621487483262635235923885649433098229139492797936656924546344974044627650028467907164619320389985708920492076811714670606122493291694453083361348777981176074738585051382886096327609215853934442468756944980195763496921358821456443044759246129084752673841841136403922933417644163876306743789933699411388183301832286353808121118109937714637548554571121829176308904947117755843575352499146169397021385517590584376309362336604364919031314915333468811832536036972639740936833513721279982608864206510386497719512135968992911130739853283361073045066119645599485893817438237392698377171220829075848459670954472543069668685400331028361819234795086751591353691397991362769008371038051596198713399944489485598227274812950619163924348766944375289694457391744806117649299115439270098243138889703003535508056278057158151648237318142148890214772545369734067156585487605064415942280755549384884615564060729279799159875454441181613899454983168440988448311541634534893021523699891732952136230540815478321753642917963870129240240475414779364363760367664201890697923762706151000101253689498546044011455509949351811609427412250647487370819666990795533997059011870182591793929448219509927463357691893753215707893555141356747369805767270832196997693167215797713737485486964042976753228525057417798544059300354134247745754222884992159477933648174237668033480500816502142836246237610901954735282679378167545494271264836604638638766996577997169620393473774645361577161599642776675826491338983638405031294428360301563376739310892471840577400217435126875196300983956177665134119709830860467694794351136492242317318357725603080188417233185224448864569222404544798356849028637033634810816756485295053004744353634558730927472662270160012906572844473025626253696454905691037057581730802647206081042141813063608210539681203600465772284397144615952525604016469895779674623741246998062521213627385283219993060299912557785746465060316251557651117053417849915223556414183978231277616087564517350986147494926042443801930789099966958676403737450212745540055918563703566295588843402269035830914771495659740195025527614268081235250825159415450177346515703379983649941687003870484322651048076591242321753821644354742297507566132524475890292396150950350861072861361789541117120380735680773716340726805137133265896520023922241153504105009050900332202845577697053908028189395931962214628067701799225440404202035625857452305672336868218082139364234369000004002260947771392466570284255779853352896435981478542404567906592937007647170682942575294880221172442495798277308397789262472147655644046354079078459733184566867181670396000725111760467154452695000370526529074239223407437958440951299774992152818105373006405147322431823577764727381726889447864016427307086446058326205430812528020142105639119960368471062082167024413944718657990459053411883888911360067180340550471659972114565822590858259753861385034367813212269463355901183308972274450097475194792226584000346840183839968056478657211461633438005149349902960636977190516862264949676399579792381031684072419552358526333304098415574523287157884616698101586535163178157336765307037393788143832100096569396735317825107127842881166659060132066279379759635780390211222520764055216331721936380760408003922965514790301213192519419051816219116013374122300678702629007516962628713970320105540270670568681627431350305569566929197476049269052185582495873840399367028443753285996400334360436612055102843562866581513956277057224157845285264237079472736369640980675177931050462951059687464691166502198757429936709089376059829545897206203027056531251619987916702642814917703121206037913585379201927914693720021370896855852489153408531053507971232250612069222350932328012226259857588636616680643129501216099183318987202704637994327095761918193279793546401011511416107840003744358096514592848653410533054948125772630843626108336409584607917631597368010406715203476697904798066389829892744654178597746251479855221234284091720730187443998728553557960155631491890561553713347577361900336515893356783916149155616398007711825516054010730140323276067033954358017061396940915780968436405020711568995206268299655642873385787740352393576511279828070044563132187726350383051989509436061360980279807874637463031941462438602723715095976696927566045802586730426057056342399517239987227028229619954006275349069151915899332621824501132600329788780537136036470592225476708936789490869825674873363953727829886521515491313991316995311726579094924121416658494944250053307041428542891943869256444829705497509124866108433642906208294010543135643758708851895031367093646079249012548135636092309805258999870972299283704260245265395866953430340224121529396328667361384049816798985330958530212230171844555730976215429228286623543868765556737384765744969413167067649542973753987282437709369706682026711185385394180879303550166966506659644793772501427806994221032141943725985026503434770687348489963100182449147054272139227263758066966493000673633910736283124859366952701421829409961931493297435108837322431513699454707836977759625474695956815492363957577698869363016031974549147295614243400224391597654178455500230285511500014512720496298986710501557606960239841374212345427235112776770219236975653319733613391186841073106931884581572243440252078968268612562408492397773043265729640573449001391154600788323210236292438321532558216193087520149996814490382772646542851412998378195973827858155710993638162174389654670692788799805105905712360673313662732491439911359830634683463592068343657524986000496615026948261348852565219057358783786519812516368564284160493834082031542526049699653891689074762272135062313255714305322788110473387773629015528253365098425651372862859013255220781159254168977050957529136051041008454403391395853875743386377306055632699365852331508182158133670090311950278799890494316862428021083577137228319168792458950393006753731298868227453191997241619912904708490816657285976318219490026809214757307666030601727166720178290837326930557803401469503382671997166257663175099199277105537319990017231940609392632866472146090695623069735913011733088610100373126367250465279469409140289998356640216651528008783866216270051422901081139111380889573558434211479173252535711774558305843210862142902063313303673216720250628693129733797295975931425229050612673998476183646317305016589864356080016993064860402870552425641471490885372736298837523418178737175808174448631749609381011829845045566087389584171781298283648653033502275901661058657089418583515920334388528784351188494428014362265641789088358305795585137123488221787764116924138227132748483483102134191310781520039650800661281122260438040041454186117803605155110767839398469152003798039901274648711443781461444901856938471086143543511583541983454852752069923330014755704569205321052003730234047162444302402433697505833632112922926025599162793838941440162261998902561177428959916053012663237809374398884716302134207333500933116816353841440263967641918949247602793117073200169837231005663695736363256325760674510546647844557199090510456073468832827235303869533104871010431501638077227701507438615465739142438264048661547522692581873294316971319592651481418574897543683132349294165141024926234219495007495711821839051024414033184546078379012434814902734168851445920411464669215430601429254092512678094285008081836525808017999948753163939249324535232555242410363255838772734899830604007427287836927189275759546406855496884309334938952538454308012313945230073651657199274294478793865963905479051793686895865304073188688533030786370416425953105077707888274759110051324454176570565336970976219890602351870984038338389797009009324191034708463078528857400629610901784062897785003507058320222789380336537859045011682464508518829025809993984772435473580576170411059169443549793644940347404730719105801042316198509148269026900914578322318564341866419061392245156871574415608083909151308394244540868592253539485340895868495054041978971710999164452205825840655613173840623933448651431891000155802918285362527056935180905709028816894965469044821782969073587084403416747747994619992836943412581005708520558622421543121638887499355517117949185329156127539272729930793023695799768080576271115439566254222312436174304823207515668450226737445871638006662997082565709260753315432266316655989962613474649355347181276704173500958203537659106562416920611352084875655202302695118124836094220842497519236216876974494407148401307221346592843140719456426554134791570153326047100954564083991338371545667184356674887725606259673347206910995136764761267710754194792680946255091107800105916897247504114897567419843341525409881927001722265795066410008639928869344511435457238351395820895219536562455760504825992116937356598345965082527682140080970053618352704308740426250702750214219687843049027956688814313931943013092236614316678189069115034022560204784973324418688130580703356685841358357109766150284279651204635720314149719374052807765264245792854639780257996288775056783916144432658275487137176471559020927228816601664585470787387648157943646064027289721589120399515872991522643885174865154261995039957303364930790711636507303275327441785854303413656718308380819282324604264490565067760919880791971854373064074855344301088191877279993526992683508595193842039483349801726397519164600467297320453564502464557027950766457239025847664221896330746509619193809666146168856851792112978751234373949679982084419922486863877466537450831740480217423666414837823295615497886452901326822298177804155600875817328819826606621509951044777775814034827833885513829182162283237876905450458100660827699537173309808624483137525916279387108941829476978943741443851132439892615516508777404337608239632268528584572267048783159446156564424282395299060850164596906227529542028110136388696789935969355258823316464742071065012026263742044313607062966330294946914633850703408155238661380514256765427280310297182613168382466691060034276211041713121533295556273115349931655833455395531134406030258253813404564088663969618731252452896374955667168322444759891365106674552729879835057032370758556824770215829514576878215027637325209034954618307022049181297705023652432076458141055705109013066845527080510366993447482628126818863749263326106774525447813486878198686482663122324670588131469078083221195002986388992046342786743645501179860336647838227659585899181827120438311231348086258627007631288076946245974070379151240557693248605466569572679548937000929427598540854981261943201128980681548740226508136970699955117813375916439058017112622906597618963272194746894784608304777001081762738656347559941811095387958144631675939814907467089585723287835832744367662234887657686348620977239338884347358793659960916280915023547295375459463835352682964509679772174689237400472064119316676732986262346681095161180666971370364740741758050450253147833457117989322218203086633948874535660775999492676814640781942296352622065505506801125699166167730455073956220531142351952419480436556935216542098963942810156577939025053922623349189998404909254453046650102776597426014982645556601870103469404687262618963610910805296699391261904202212015921115426938101190434361580088380417279961909075407152748697339846330916511692736811995044709600452230397927406139764436275032976386248358705329448425845408715268729863167361704875737242944890526059352145326703390590601183225401868089185975064467405401310144432074190964751602227787783083366111974633014856509793691626093399193923190867793937876449373207722899050464553971967771282894874752977031088392447887492280700048374274291168622204843727352533338273333324601219610062445496417046604882594638885993687676412987212734762550333955572104937850721495361392506815958218369407779887541363355271236223094364889452035205542304405997356129496783724462473271180403767297263259928491793190880914573114685250863797858001383181780634537091774527193442732240802059345321037029971530978388660111081384370425821809987741687834693036405567333545854238504685913882717848111919224087059248951309307756227216635328112539794899786910672262288094644191104288144947368418943284041254081955660133794213822742507437690909886985797015279360582147639317715212402750330376013284063440478183022359921968515265322441836023379929019014692521161302893740928954677485805686767889043050760432933569583180291226450275879334848371572743694865730289003803497622438658049542413499763553823715013521929692444491108644840149201167548897093556295329735535715806925155231227527381059763044250928985215988923837736870846719546194327917663859216318648153257865186039321241090209751861852069642480368319405058402156825666151566383761185394117951380720065122869732244980563085374596071070112102646290584532307510909542221252866944977232234897591007208641617712085724747696142363644554469452425511338052598303334311852726750778796009325181346536241405633296135147289375086248706601538249531001191050477224651887232063695284624463838737066453120016335267830581734400583415648325672628555757929943603753219996528047090540889912628390853576298532274410839127564122766648916837407794058176886728484281954723840996251844546628189031934119845037932306169846568620903970259783029835239805674271830378093051724212908887016049363238328960227411571595234385168378511249994461563913981646370809252249116623457953331038356256567726338773058643058649332453915544316937668844199755554495072388054922196123766000851863628289134664324196697379627584837780722061079020053039476171955129720597707762120513229349640702384203464722631287366076892121095447931877472170315130409749310943538759112216433828191398852271333085008723344770134302287861640007540113066371397517660837777811166179577638370891378730728833855037813101491371639910612603352971959205477526000999239244523112555752952330634731967321694357989024717916619038681582554913152037792648532952326114950515897729946796107863577523988597415313716007207982501131296400971280984555094249048301283655772760960288786521068240983504785442715568712287655259402919037884032573862773272014460964952830796647848390213757038229570453116424183135993935605064733307940136915951763997424651742546631297390560213216783205255182267688935648888838909874272209457520592230288364788645198998505758205968468459265694488476678535588708416771538177806038882248426299590800202911054197502203922567693808718162973491559863741253545969146781728223629454879433065172153589639424146040798253067296968991940141161578475270971171419127348650266833544733173628302140466581808769370164970475748150520069971668740193286745717370924872496845749576323960936571446010092991534928782010075399083176945938816811539164804019505575699822434272071818021545212293558607039122992258210711395820248048361882032359031877537259023828541704065961608074047884539532457873909606441937577619007589767418931895917457541508964398902910929713638818022216421803888547265976122179514951358647161506515117334715937167888579932677809433721650170918092577097722569117179715881846883185227035640492613408338294433187251061417055023977349461316249772413985764694082302671117527722563989049968112643584311814818309793742425493311903673984514319262713676725501171410163586466765614201996991018496300853696216426910806704095862950372452914163353176250300433612563789524690049487945024013563255360972679302567588238223266224215096936547374962928490377792230232271386622260402358639385550844069792513803376411544835276839601249901645712211052810065074772741240870857048219241603758832222642074312006800584066976536568812895899784765462033721481557124513212058848236047373980348283611157817859442064674547864009091634613579726583831197909282815928867581954877206428700122924567060110514400014236868126941668715904584059113660609933664764616200985809121941760354742978281915603850870491655604852877411037538388822921274603867251971156832640643812954984956298055801022601976412822647503804922068110803461419848423720720438162872215692338134615091361160441508852626131770244633897028379238871281534838210867404784718421252268738854159300727618745284942175490804485464103849937920702567352072731062620181708693736155613973568623711255819756370838911618123107368728722064421837011987261254665067401006906169741366230959204620920357768665470486666436783857582041125145765571580979289621920345484203393089485146039577219972645395428195342330967844767332234826503878346547591875056427608590402589236574214127223571775761366579442065339397086200425669524732237187625018135590001738365340912783428924788311559867862970931862489117910260459491063430153859576077344192951783284888060244245071178797928349159773994073605892307842654710865513285419272299199782127086459481462692926461342576305841134502217491306677724337040488522418408804432049141590825940905769422271779352200288253606474733676010497221234127783748494785102085925366311908772794919274604521707128791872317937376385336263473520202283234971808087472171842969523625412440168688535586133201138697222436121675823840520263783049280683800678857449249596602594880981035137361821034968558378232153912641880063247418290574767587059865107922057511167772021978050867156333029310124617380202841785617531187316998086436547689952827300027817722992780145560187249402468949103167168190135549153706305632225190100996195028934842183114291411348655072749727561479427237548477644275874188743391365477269492235913686010071924516295481693174686752459625486518458098653609427084571528543931633583525162032018825356367752101093834837767812859405686175404698889164304369171843075219253417425811702555320548272742897429860046902542280654594109589028418661980128000527379059840539104520726893504138652009719379467603329564654249267653576827454103413327863371293822792006114179592761111407302042089828680081624318121755106067766955491138770468055301112475279083793381370575739878092292882272816236900393365348276551836543796599950653267420646307859674117782921486802256662804778117080747659625489796698337604540814083605501230854865596225294116998648988364658385055776119260820130361041867291993850470325163469331955031014650432694839939346126453463598030065051577269337517357204024188143666645747063458620745119610996106765009398999580569493920795926536128062903811868359677702828136890148595286577813065167281106711481296502048227660162427136194735052474390896341612592310932496368240048911749899610546768114040158073693115732767171780453211723822774215546696105374147567219019193859139656283080320489212422387721159466698078099749878383098173969723951961482260783495687666483780377184860777019770227305595250939604493501914378097134260578073933603009781902497838125241758629710988933045787279918767878679110464607277523703943656493011706485121106469864591988684319665750836550663251177559299323130778816147731317479323668792798199665258972780045807806885092037322208525485580909668344145873192367776789120750332324759716554034954488350562272358472625481965279215213731073226746152737627322679662391894975703214004359887895495240977323566657702775930729306758457211925689857550105744804346526135722253327332246376018069836627763462540068456111398655554307443893384853667351754674417536513827685903186747368199634179127037829806711466130850306698895161868650154176501621890818214657701254249144954647555521701076088575405288401048836225045669191482308292758702094148417329669344571893909617225020387564680655137081549970164215516864469598801565844520725666831009431399419641698308304158424186424918247650718869326104627318720063332159801805444479927487707164153654343430092495286443146038462020749742769920146093820627885647189191798393978152875511143893813086792126429380942335459031400004100881671541072152105264530576651852825158647931444565010661677518128088853373852639425283510140784814330385387656683814343230696055036135114630380961419506636066374886056521803141106140205206871862096781111315261164740690161749754542893430018593184884320464147095922126431258786817851490193371686827951142325269345853051735740697218135816179984033029156524320819752373491630498024248867652107999596837847873787096900199565242140353693925899062963000753310586554776760700926743706205801684357457202091088565654549974047220541880301160226957859466533799618290917398963101602770477355179327316351493576841690863173161411194590775887538805092385783095035375726413262589722513453207013075526627603612586258194234365348196962589001929237474867097988171707572905657709183332769746484939989723334980055790320025071727924959439410871796836832017455756880282029100697245878616007339287717706485056168617838517826653351395924723617866383735108312794364792846032680746727154532102500713475693892971175436919055904275711019240665557554856024879839407511783566818624561451251136450105762461221335630124707819387177883805086493889745617853234209424593136868428726191450900003067853229151348511016583444291724372162162935517684551073125931470244573311308996821331336482674111496637343861470248602787976797658928572096355497953534559722798762847819801658149745217519328732377347504052210866571174019990735079182489827513938667155091147370993699869606877577865091617541302659160164814616465718807819861994543996919854399329450718914975755727806203554955939944373000099170405992595463103811303065360389393530854593247714636317322569408208649158154954614399645527150892949962494483126216436682981232882936592158614588036177416687677334568080676490069570783774498275867766148559293564569666314766040752256578079995323706885103592031027529104890059638304269907808439814417098305146170482205055418059677200742369362642098235793574991144051742908776376983712882585926096784893308875429327513518690707039685318973410995521835156770640392201394362099498020748577993875462306523520035626596597731792935485242752411363425267951965479226444938214907455994041406084714731491726383909558982745232125865317639915774873129502894357291610673396618261642593149367787550718763247096934647357781111357262519065454592177829047237706705973547022930440213154879572045558563289590526463367563798909385003512887028429005338738129032928938060252838496277906107935353936150970993385938270455589311406482741344247240710731382181963571952638038355176876767446761776424883411149724518284348012557122656065555149703579948752965169271626120175053567779731276419224106978103464966010322692438865760714767218654991689390432661770204033853145092291073640898418462591734930858081663564109293583067238060717402041395515710681310334083907569253553498148070794706928252804263562457978725151836204808351513310292876547044191776655963407696671938332616952458323282904412872572332251834680912288699047003609356329113577057181757622868822569749760536428207572621676139355640609451492863903981073266049196072030100185925622921832231010616903117709016840324951213094030603531233170738956009665495532268431316133586408827025441411669318358583620508242314758501521084622063047971005220594644049160786878905940070558390620090277828539954774393799121102771844488617157717654182202444214501918551121278419329827041682855687983024796260184651721039375197359306557185448230160874977898959516471172406679967466716957506127733531648530044618230111526891145263112759649118899728326479445072664278675083731894160609205029104503440368372675384851579557043558567907355104403911279542936722835294956936686649786577247616498013653463125702792806088224615443493609564618335912645195396884886678857920499926503784530815247242603398440382205442636160383282520635325210168095446788805846109751684468985452315887532378251702369482847831483336955036216321745987730247880163988056456383920216459659654964779115605664228888327316803433734700147148081111859157955382063207292187321692191886178113235397163912885430426360251534939730482441569430195149496596606957200166000811379544705698547471008835272771213634159672444876663121880277480916052129066021383105094583575616681357956644667391463252582233379783580843626996346952660744695445743761369584928716094717912696687564300008538339955543315468485269839284763458878208549367758997359112805105219931001407036748038626875501275474597108384448285904155550529347884613338450186505778468233505731118970846102427499324815957045075443884412624402991064447965978843741569724005866931093131214098539278493832422496284728728072553449672835547155465418624454759437653573353714791733526950383317316063920439690719997127121304729578244836936611766238595792795916607299558992081383415389024368354388805695197401539961305854812522773492692723213252296976272234970187570283918833104881608550459053345428992783402791958613217703815171050165511404459521842738526547895149433533720524675891219255485401611969405099275329216482676591695309827691925696828331355442555203022404196270739860191546077123503017680029190039685448798205819582578428947285330966535529023096791643904904576916573124792124779441839375158700843717505583019589013881565225521336012657122165277820042982441595646728435279542121217159525925977226190897481257157006852584673922575399064100309063946286136049478972569446624911506965177338828250952473095379541983210176400614943872409988842765540365537206380430885957255069373609941659296010881748011673128006763806689763331854412325306943005599161708050394728444484665787133531114028688525280954521396958180026519580710404317788997419881682823594161489386702168527418870160432564497910992707396239732228856324926804026194044769294929212559717391617229246800658451853573651014894979659522877519249646631293581873353123881821103529192513474780632166650943665239997331616971174043976899348904301392110220576617320570873525584799419657199600704702467901045654383183181480263726347979474273312775179231750448616670226657570119372954269832371497081911778029340454581189699903290211223266721504489635036752974339212247331974258505549480986468782229131562531404460652853141825622536405832915705153610383104659021184955166360265564772130531689493337873019470947615280607474415379540054976867789654665290567884032880054109138595711661028514238048495332416354085040947161353133707949675016446936625294012521324924834854486031495124459242751045366280661825024027434375093275176781258911980421394900864039549030502361258943786670786090032665671672277437348320195174886059344403027839524561989816315800757526178545148327852686303362274077148122483937466760796216756064430978679923907536128143758026077793219856500757068357886412711210235094693254196299295770992135844254490281448949847214339017286830421117036401605703441760984136666256956218314402156028126855856050067340457514149417176274469340699694693167146478316667280086387014184834621997086485991431508654544739737995045115577841965679117805136621925954458827053966627210676782060617298235460710188440988335923505706183120881865298051461666094912099762723367738262221678825289668904641195126347762219991515345852671383265881459208765928033234625273824427150896439276071211568815111474089419115974161973459759810277942383293321528161768047222358504256739759887916950129814888284388366797173676468585075561364247474680293374878151186218088439380721028704701123983577856934088484346800102315356601214698554305607300465067721495801763968711451736332224508122864530727321502692745546925135097373748701770856500120174226499051587228695849641471879018123698654793600213180092662584317178879897502137936509593533198695796705907175716101814548364499886657997222702744311688197403702188709605541870342185425799722001342291774545567668103961705784909928051017764451091224131040552931976724629551751011141341701343764037539720907132945740627259003510380918090682543252959908641030833066230391672999479215566269991141010556515661090770108496038859603781550675258221155893961175762749656469736125773008539419219933271191293385957692595628372816603319800095921641549695106190994398717582830010081144697519948519826571685159492180303421133562431759885671803998019547362977948001044737032594266893085797627985041158509315958538379484297401206932400098106616504302738223411264363561392183215781821101096796071583017209212654811250216903716147082644910784219932809416720136250770427505663040139760915836865958550639397911417426922340282569560320489602652384824816108120846477772960776242603537196913235033890767637960478323095859448950925666020379117873768063409282277489022853107145735609267565850009869220406584832729226798370422748244189793429654471356085233768733158113996420086971989432280278241152038039491014071477484584415083487553097694757151223857669340889304497668868243868828479212856056245985535028290979273226310480690719282960525362105007941358338458415888135997928639647110252961116410951227221805459181423190007454470105565336682320698583913487914661235121630059691992209415748857663537209541055274355496674058542347945804190836512665985360242041926536935134518677109698827568323541322613460543994989341566601610440454578283482011579672608960820614580724808517888021859669579792576651374379350652401203009643074420461234305875849466620856408920874750899663085959724788978722627180129870780090359760095242241743665251359327926845195473519145245536899949119050896832309718581927053873160593984709105946407518045238082525898867375757279336241727815387028636614976118375138772336400216661649482701611756786409341452322968998128167539145233393292450074032503003796812720187199114119523822844241067695548973647274641710311996779006854801839155756206685081017948955860561101251775899896069366430246957859810666989230203505171826465386685884875397124141522151752941830873561536251338729769075297001231544324563824659215250474118561930713184007243251133777542135729594161049832624900215823272310021001739140721678627195056130727209766999559504142503436428166669631960933287695549086312105066288874357966177399058634674244324558441424314537800406114809362330874344398835937729522760623010750886416647779085194525129159337213653983993699575897724056108041506638003364409173650460283845991971121016623118453372553971022502927919957295892615888689089156172024488200779693354203784708283559443611269144869642147313766029670549159836114756352182219156848097356231830594071576482556209037340586520883673483705703571472681038818339012434786197965137057608420484379643324983722704755470536579471999019593033959052470339419022124313767275360225398835317875846376057637513495195906116296990700369227234714858531416677010722123890467133445148314020677776760425240081251757626918803175276493267511733973079945309521133374179512825451737306927587439858273045443415300508867750279589451426433633546911740400194418845633726963071935600061983124435430218852512800244817421342154592785561692985526474711438789085374704429501470622747264674293072040389809541016144642930096040809087603435198402013890234158952070152133805499209176914007312881638126401900879511867972676548349829732125880457152094915222304748961632031683906081868494037237671889031908920422435708376992711937243258374586601609486560387171573578374931187524806834875402534331490932826864547302506507762689724449183677695530220984125635207190066736168973205924290987540943948011220171505342245392646118557704341575128219587598320626691660847802122173580225251000029644490680199819628106642565310057217217743301442258185080270210668857162435609216774532921227883464467698243517379134406693714309864652656604193163297199015645681103295598660647011736876367928826013214550626916569946967959563277293658951929958934782827665805054995869087216292641346851829182798055586032970857172494190240850376596945512233428894905068340432047275841364389391941347105056660402943794151390729097533816473354706355908378143117334815092244744586034080175564469279352726354320980130180811205554877275787178646594361622690313812770250862100635132932190635768380582973728495139357284042590900616916090761956187585822791284490165299903295415894321369756380174946182303375902763784918535696586191907905520669194351296520218135317943785925061723547601136264552111178963046425446132632849373517103023168726210094976564763987793643422494684845775585214189918382648392256720929363785099096529084433162153206085916096192438582408526327810414052640606037931694083746283083491380960907597104262886505005380240961930233183854235079745982215209042789546866420675045938415753153651426257994816535506294934634967474817586786912246813390172035321749742992476486257088272680910414650498098813431452629518754817393128069910237650269936428857578454036684930459808254386169720012841569721498811993441497302744352287588036696275560819140931669917683655468389601511843317688844653174299147626585617236184161858729042297916334646185433235794926074035095411412893437582918675350474818151476367074292729821574828925772052220586227128665433188944410313737737540671098920643435996692406160390667095767983274267146624127220892053332887813157980385409317186041983877537760359550294375124319517778736602786301801379204322054348541744666441179777861716577235820349853771964235003062670006545475850962514402892031394265948611977377879660326635772563134586730942103680174068278945845299242665212871515637395993278977963703967506986479825008547548417877917892283600059063851822790638773810041354108106227185475486263151802226632428453936152684162677943711357295547006158916013716970901911820206342107056620129074051416288859479039784776656207763993765131085296497029572938007312972158864442811579023529573488493255522315640949144898967009938729022884657951198446876482427376203346069434911253277065315342179796249964822595388336143254537324853595937306244262893582917596563646049598413657198597693536382722368124310190315905200833578915103497333779967776041696275010969420357127555843669378052523363279084043208032535593443806924530439819683173693153720999535089556235810559122462299550957974640180836088098696987193973156470288460956346998172491043955244578860174000945913853136219598680829534533594112823671286206392701052540678297007565972818484824016012532763829090108040614786721809143001786871271320068260763573607687471928846236983064305968323516099066766768215464680549784117888358977872189667610553529186723395682915948943481670581082401370435437060948124601798415927660347801217334194958664370553526646169886771840397196719442118386358655159442023876724240161476107059670756547781521578732880969862268919701326250446261070247716143744966825458196034407463616148471211808698351290884450756067581453721318370332175441147948100136494451044071910993077867757018704506395463771920671414803023800702327499878765083729711166014984493287393749448828176059766170306800137025571841765485011507961913646913180576937592487911490236031153999398305068438358499266312879670468310186478612338305987282903716097519047714686430357730828157576056314028041102999086917595343352903487480174396485253316464397103330045513650683658400638348743378455476082798042035581597297352427731982331009228933663469170688571390861573762876125696625183422439990074122188344286616490075762411755231288583304534582895582091085908673624635401836340860127529595218534551640856027232154217901660363638361343337203958427327024993454373807925416348198711875911104064896816890328596568793125676822972987839442201429900407584076373179329162598814262800041665434811501955500150485936813449546639301744785463994038622239615947893046283825609838899748875893737242976210761583580443251305761043467616989556985894852062746127889453202851996019251226300962829511900489927491905580994737899143245831965883405401743284287153789056683710742582619117533309601104104381206160296176434995474801969279374566619153385166291859163982004650203181021429510310253353796764855990955952215740021329967034691274078184861782568394038350736660609516327527652780496107633079039957135794726745769584998039782014552228906767852855044133895603993778615772218047315185996705016835664704218081634860403442931843118492629565373480258043871568880302548526030991119773702647508435143155900490336298968784303336104358847125996631187069621769471776488547439720023312662954523566102804382563763797947465897671940725173894461676629417753441257989554689715865401994166670756506610242773151629127493726641447983966417212767623194506268173932157702451102068478595605116460244469329338049118103840584176348265387707328979244676790373003141904681710613832169114414111846962895815869100937436968688789203931323360603288197610997214080216141118833044480590755281904209635793980088157423303025743109704439380834980549145542136283577874918878430331005565125864103792861590592595732280279584343989744002681651164237481212467615101819389271192976305668148363697524618640776064422495085516463533201837294884199456657935722583520832062035296064053038728413488780627693240397434440429891860246495777795107445869543449413273651195363075186260673994005640135432013158569081005474550676094227110700767393233548915770991286513616302558801563841872665312504489358347996824027975605099868589625721139171753772935179718694265128957750852610635206092637572592920127062271140331575765320105482920060678202600080570762085196484282290793913701219555178180586774977398831952477642869613578195552192431761046079649421152165294405546073838698370805243073085653329184263196605182495084963132739011460168206755677052658219992935174028812740451833520547744705221300921521172523537822032869696009721283253325334554559850478989072521084766514870260650037601656005060071986065326908043205403993420777680411804605771877702225591168209035409153588754413296878468757898638097772140447130647659850326995877751336870573062180212882670090969174127261312573170566276170269873787402851835258526218807051114984626761542309992330000408049473225688950820504886210830979851982958538783218883569835607130840077885832286333046872442377031479823423991383272729418117455001151173142023911905928937738749878067476406170353775826298402067767992787628023503351388694362464978115545005255039961551436933798022401651729519271210286129861947461886817335266757612935854022922630155364186966319174259781009263540328242585803548924948981317308446526204611056090932906877600607326153696834799179073251790905081821467215551470980877744502216839027184516374653871261128851505135708513687331270789428242598274309468258412091040063710419635387747291141685476733963857941177103237643833317380745678000579079547517770909360600888146430757306529433635202001987038496481857467231035064924448201749426541964769025257016505818016212646832611157866869608272428442639860795653132382546392889449808057297018672286777449163631946049295521525663076674994303472499876644806250113776556342961774703021970302050452001859169774975659217399482668390637255889687294361162415228786138760245384167929409668736191862260328048703152093296635145683748978391114347863097808898152574260725302438657401496263277960244928347174472236661408337800203541368184715683930021561384515147180300665451044735855034362208112224874049483454942140834180086667162544061009408662415213245113556727211647311204034791626756873603567267323131735204249766438144891027780275430411224561472126531575618118022918604148985158549877627804040361911678191793485237502581094690302557293146478464485589877789586202042433079877283509910053899175659079736328217651609321845139436735919608515712467418841107361921973440609531608975815005062938726496810945907985777763249634791949867076329723080432157460977231518380048893426457779350069900992982452348542002476562666463435469137208036829011534401377533132421414453181141908728305071896528305581753156195015376315500394726163562945674100384791718710792906335456767497024295805266179506504976116124820197826609409286316889011840452654205260798222645467966000287132851265225705958944555500675122270545397517951906602486587236565405653512791364945902103843125347816161401172863324227725185680973515879039978477852407296989215896142755593361282164576932149135709538457797853007864500277339825248592735236888200997671762876755782362201454895014919914168522889912689605848803970182311285881856211138077264484867949341667277658062736073654902820187171077141124511527377635515680973497734428846126158684468255514514724756138462301626185592984845377056817107264725988006834297121762278791156443821646086731515677337577227474695932696084363816126686821488654275713720186340265375497150772150058333119750964834061074596744432347750287844041286866488174482492360078125097100157836667842832631660758968926627208669593430024128551693801629572848771609700615279569224882508784634642556706954614282804752265695692282434483866882605009851319008335560847738921871285204824787986172700461476841852619465835541603717183540251499290499136648000068585299855525469028420817722842710054769692292810383888422399079306226584476338537067367930372740048051212801604003960740817366384658801238164162607694804025528369838242692410916476959099998075457451623667036741433841619379804489245655658474992721367703499278109591501176742422508563432016411705937229035930335000885803527853771075018327377311160792424745255493391053338645152434973112068249250736531671684625846353085165972352825121727442482503562170096583636035888008344044319351328015807795244160125328577025536467758216444000185512344123370395583243879698158357147095522534345896226905410611389033050977185490456935408766977778183743447131635917187498743799409230451296330938808321156427572795532370258320644162707538755373243991279423260778331251237758668687604227742935576318265530480021682515263049426863427965058719345302304449621722921693347426241468392784562117316468971620980864111059512318448163650558802051528396228239357109353403662627615497177373402126875392268628854202275263733394843213056128529572655355408099269168546794581960769117864787662334109029056953109879026089429154023211877407301671104472480205657490190288864184605649757503114869887529124079496653862249954886405671842795292240177571675770131742803944757974982283230803366109977613609825531543499178311968106727410692752547553059081967023703944507863883093196617609733117670370589258662903948744050760287537460994181182137330927896603047980342319612797150464637031458775845552924273746569706674285301714855001197072705589945358183318765846941384837796202472671631906027797395461657219197408700946593954343828009591610871476345222293633093561491523536788006846250479178310556195985264400576925629701231590441090007010376856025530656593493791595816979304970119960955489996106723142141777598353970530735587663145128088947112818755136068816021142235396888677256274581581040758848915368250249097529313868116679472147488618488393574251948748717290000298637411194903826184902425136970677308294443420376643064374887521283910378335752808321331486765636143733187950665884242397924612090497567589126079806139114619858909830171797752670004732628901077420625008631358062792094538349188774615284927120748689284600004774932598047486057048897088465653798054658611962756347704044929503311681173875024867859080368554375666482116411182059509685172344433917123451776890475575056498529148444691919676620597959337399512365730541068738971975904913279620801726553721343458509100949383445487457668272558366916562861591861209970503174854216546931610883285845318541808600527435559090644443847093975386443746132624966890869407242346392898150380857237775460056019193088524335071179662839887618976336828041324234651205775333666708490170277229362886426309089535508586060156211919314785373509158951151272580351021835751763633717953681408579642861266999209385565478709077495456887478274529619704946032063667590203340915856537955164322098111914041295455145334627519100835746547562686865441227569284124799357174972089402862162820492603709055832528683093548756953512680076311179168172382424337705415070018222471792846143095779586480321324256113507100867960936415630581479962088095923159509891634913211313277062536863676049514622550179663182005380080040281819847460692209682918484621077526255475433837368458273889933334310574900749671593595373562209410806507294023786512053120999750699067410043418949285365625144128697350063170701396232187889353520951972297568687169758610614358889430027450195199858445907042022938507702616355155764465618451560430538004686148795313195229639176286477712738351326634541719209131341882568290456930407392843762453901191038056234310876966645417045340215795644367029326675355051378648363838129769317492960360498863366194046457266826303332987178877886749774095077464844973751051610469611309354629340170369935381002399495427618467267710779009959022162999121141975945228905077804414554948246800132392842704226372081759366176154551343641088237218846402948347506276649834437890943487832116685652191466922730285732128444457980428756267785712707455734329850824737561518507350384286047517634961442993523487902370282035606488386156650484677708433245823601481690590858089675337814782786823968372643638659646363810099622076065286399571551222273190182124806481565092826223105987159042971624590484833143754571844178048465755038959091480265649409118244709052314310434313303826190320125829269362133201137674019417189306875556373672934177498134013464075856686870199381966374796737900552883915708429663734282637574534933701716930686903978412139049447522398593566975779728171856499289804027425163106834983799717200931856659920149387609905469117356608308421342996309755486138224013838455374357135215592778960841884107753589449072098952961999471050929286914919153401236026324957455124226687360082742591960462649798747766722774536334280424766870305489510425058313516338198463333734658299095124066848236284808385676343753533366488258098571586937437737707196592300741447682645819712593835798849448885538995092236517241796089520094167880286560405563236328691397346532568293300350109356094279691126796214688781781553980424899824236384688876070871529775671961301832457129959166723798130873505964276305037277885230029960770429205348734466346670054161326938741401945427823423667280882452516542136565833759315754361014698409874697220160709923259258910797285853327950237154809334911456750900403134318662093364385927792563899673249053487373980458406556376089131791349884345240614418613692632926992591591352834609269339594224786026318108700872746552048833659877477177237998493440592926582352280914920049315290971589263495674171896669351341478818936526636806749123641476812339280732342617926404342804110842419618550767499783045015779379249900003520794186182216440613294806026345667770814844621460982544386829275314102130486256106454228145097197925465146829049962495412795265995585379972954022280560700631695301962784915177482213141456859009198203491460226062553298157566831928488782310398705984381851385794979978063486095272894343808719489262289390320409542894962812859546525857482289121579225794598074380589623302961681096250335953630752986192085270782853597722314421252018800993054501022381251425686278065423789083360965537854060776770770912628732507720989605079872873426144574550046711937161029150696813556786097123560664682648239331161144254943783434360040385432478519888156949125459164266009976228345271227866950635373214492223925075109605401766929868155640755755778495924602246417023380402387827346535039614365994715052390165721587432039054236198756917954317154001337762232107416035738652343496426839191677329751898876762432915789694575344213650007433470866953843640420673113022502958824531493709930481206708146941456279933072586714931791034200994901523283745187625989782236693702980262819400313907131780637383614448958772570375766216371621443080122514292233460987475786080383241911941111517716896480562294758574541048960379396665762179522502581092414370854865201789248291279298480915206877471323139706576522035017444689646048248273731059392209011888967530545437320993007761583031827234891840308474975704795109468510426516994890288629368799319271331860249142638379598081513549520222480647090332576328393102113357480785385061818147949184753575499365469993186613302369610095816311491073410036390175188496558188170596332407806897567991377503141012820107635655292869460239360003108616276692086967860058619095816397707073181482704757966881903642785507738944249304321250325061973360945052772633652597071331092208672343808993966952304124906258905910799536573429695157312215500010571824391571359524698745802598591371683408384046287885258194541342597669205732826111277783869079698299458601841644500821171546719433839210332891703738233853100585326768803034804114234674224463192393951368445635876953714184372522764911088173970764592970453489591409073267002728049720121518994909675703448529739643055687185035676691347317860098360796648116369611457365418026017487803713607978230871915944960772090475416394613632443266665626899673372433563545429512048900194459645597626055362513609833122678150524771061091995927344154456459934854844893792698972763242120924504945157340662304147929265413411209354017613716875243657112025420329128160951660933403661146321979909948670750722666149882108362498318930686289808030091962997666872378025815900364838864634345668706602615820941002644967440250924390957093304507817993462067569140494554047849900778618443642551082276413200280090941824417879332336671332851570265320627547519688907741495017024037776130526139145311263705290929263822102518470628657511309279828999808556963496883221481516156277033519746854248120391407604827856896683713536444795819998090134764174519351515181135134323682899131542655614979164194940266534222046050328976982964506754830286896872423754109741309241676918418320736781715730620653778816635827514115099570273757098981434053991604001558416852893942468860913878303373834915737491935349895345412365752450541067585602557429610346951946291799245522029052319236551409625435065658219331602739639490640909123578038594882782783925818841479280994407780683193494651593199405692675215474596020623217743721089296010171819467076508191362668891860581556405001762884177216040725550722142786157668973448676847427821145478381393215432671445217878313727625868322123353983180395948070356358722916846074614184634704354820854368516321937290127485488650344051375534373218896449794404655811928699576311871400334610356202420457778654786984917715546900552510637162621532040850319715931390467878785837848938034352454800785746878442589915375318993754195300488290180031713863946893683348062696804133742297884250990585881830073692737023950493629900975234826605249553719943308673800473852444736001615479134920032051565601709449445517432124818479683392051415526742954008557919022908151600558082146055983308861271621264957801097016611645450904304815965417080472853445698340421974299123487832765818120980973328325822751182206138757640365861456573260248189048779355414775093593238374097742946520914663690830014098528502545117359182959258104742670103143952498343038856973765785385697140102276093998945895798049052497976594250517286965188163140213102192342195298927459079800593493224273374104629771206422769388807133400801943553600798348432656153797344473339798055977015981380588825248375204436144480304719678636634329956465690439196480474832530883164842014519687921449658963725151092805551455413546370511042297627225472557529119006994332092098150836132427473460663651980643109326694638324411134384325568904672893469361208577328539270575138333592178231823720363598573589594411297093124806225208816886719126876594280858833805022730372189144452275140842219973690678623201144583170238429998342239778031723697739858281147667153185430177609800370200020840165453232944448695300258825686131286447417884509626382483276571942866086009276836295509967010934728904659588932855885081174837983998053735573317471153868085692619357301398127855999684069629823201223599107791392566122397092768806269324016852126008985576446764323865504965347825164575497375264553572614411966603161807323054899518492716776593430368547652278865891651967449113214103435918120486293476573745815627170765629383464777496721264907451468118566237147192001644333306213550815418948413415844909425991532811664241441527293595531687411612954457314512924673281033645225151816337512438697472053808415215619524541359677446980421760604802931862499786205486661131451706351149799499727864693022406752805505819529215023082256665092583801586792058428022118802220543615190443890413358951888835808658786375130049500192933903464485213646795592447484673081203059697868828968848950983103268966725135901779646916097596001444319635341771330519438785438822010586497358164990879498329566528315418256863131379462477958131827820466218957279081476134341538409052952865576609993332997179987126619548180739017557117186364873860590356485261249376812336319860018503212765427761077109904927628008353965769372446815298529907569259637127452323743708228578429720985421868139554860378581594447428362642026771911571944297978269068170302891467043378039701332504696480439391445180158923844387975639656749176554146011393581315479916219528199121602572143311802546869721338386492979696735357544879085243912304047076922579426784618216820821156035714075332805461593835934815674105671257789157494387630861484676835115778472442480891809440132421060647010492474217323057068701542589838495841736250876601439265497894774633150311221312742658181105533381345062196208002250153677377391880891424716764922390247395560019891999188430494421959421807368572909081195128560732030040240087552451535307826327387061003350960781302205656834477047063300613473225176919223679918670573968101908963351845233008736249441240376988692163802854056269079151584735004078045810965586495699867845921449026310018420803648675678927574370432996540866828178836728481458920519945984224731475192074538537505049890695942901977230091953171343892589279127578655036291785677372390908246653665739795623279881316214945055452462698904699942554752065685429113292133077916864033379405990151276972463239605767016296152362693535469816311426020013855252330653767652001824394660903861688488467092803146447024526145821303984766173198796614449247223968984160746697435149630303794301122052086557796388190061478400997893503249543946124316979828284338222558859003447249328815403445930156405561386927758423901869297672256147963442299167916659860729036579945486635289567002658185198796976028800328702976159082132162783038760376871292354575086016900646121215574264050511253264916087088200565163256586066546375244928652168979145924662582458158326369819884919987615769354750268027749978672764794918403270911376741939608920474906392687018048209307071273986648328293823238473818346089794887271303134412143436112231614272833934888635330217105812485644257742301198324261669305278354106971307906895573494745722264685329899991420845798631618853847720044404299730899804910471331550219616184257627064524870513127660428908676533880110178170043699917674837066248224631037214262715979495253482440251770969731679417797576255296855609204825480371284344632494025322330325906697815576694727353052223969405751935716393542035895470399765461736979944218679675357518030578670585875031587081832162745986376905782594964817453986366714565395632817464886525525898347992207115710187348397777910262077043711287048258834998874573510076248950863387093378194537271345028874757917702593259720342021871287524183462407071818953903360706435957103525628045378637761039115843557182994990876868137861797768645878056962927205795976691387805937728236434474856966332182392607081575319495001991429099299083368446459886094328759716389503866644001349408413671486395042731015755124909806862391435280471105922038660232362266102438051669249058616668198374679232454586234983528969205508594169917587882720926104603385082195888371111337748191148546551714682223896593403250849604909019505728012734856191630498452353948246968603441715763785917972264625729903357096087931365969179759737862893873221547233708311737279598919148365708961930417378869507540666387828287116406366576842880239989060468931346260290964529889807497875846297024927976094739217191352742928940308236446499036471780161756600695676375450695632273876622431097928035624329982726521797416182502712271557251668520955916130805630221492828868030588464380901963496806803872569649684288553405871652478917897056951230657493764459130260774836087147054871169080305081989925580547491286911455087602968191513303823091557000139001732841030181116999709110107099282935420375468334492158267528611091030670971976912934435200566301387982337970902616898259939847595330079235089200677406912856715142889127588672254653488237774204456430855172572764490141534442105780504003158811816696456639835939375302272221730632127942633400627897123141261588626406665353322288895079162546642293185162247239563115137115939719176694908129560428395398100859078563415581115575253389064679453314444871904176020373261048596986788226112210538638636718789171426964709467677873224537732018551805356344742451038494311349427669059757027031010936086136744754342173247320748931320004171358109664269893501344264494819765231348106341246635030347864881820831080445139028844199925981907797058955546038060229413430646008912963459134478559500567363888653205477114917863423861859847565989655687101437367951556200121025035995580280135716559437840532305087643496018876098708791687897943273882502314813498530136311297789850675909550119079672410952539272672042419364019939090917906474164581354426698199041530063414573179413847249890720546928128320240291426904883191130379924365164471167760643475477883767304306427219191161924602664250595261088963252355150115409733985391711328782800952498925770662549030990363563411736578128148494535516412634390364194357668125385019709252318792347345335473607868880216990441490715998615013349402368516729217447891347847523832781167155336660422317580668104224462987957853891039402929857273213099898157474634106259213135069597755382644849994952284742823765215081379273698363261359028868848048171616305674403105372412165184831314252622770934030830513038478715552232193829430802648485745513955923397087083081957527457203980458789407516828859922380938363322078109649445738808315375938321729402002829278124240353530796514392922257438512517185202917714501272145295036172433672413350196099401065542485007633219352119062297903170175065918012814594427338303935810581856948860440189404949529898748833035334094495289610770431113261421459588375066516177921120300261494416155733170959240922615583876532992304446969376462253244107048273886270155414692778550973367616166129866397401034151228119806050333755216084961602930795757369160560075181112429789003926360539409389786360584670690069244017892187898541712382475301968296481136416924620059161594198082404277009687780757937268910375080875481599060239665869967009379248572165495890436390886963270368268225746793283385668424010530202658783768484422255793703599458889471838522138790905332443318684292919845188060159145083283811938612782183092368570851738470492624496002815693563940790348625447494977798107519932579606358702536902798855038683257072225521223216375079636632783813915306775913862620854062047837634551508361055372505049522248529714208727390115782318542651200012865364804153043361692512565414440646003644466827869844919727663820870087454769215648526149386399797659802550936128052912759300804180744171877598044390558537491904704124867161583162651624198636604048570000939684641654500908688723154380216841363113218369486674653047133571459339217511146662801336488944449172719084420740093621461493838644533196576821330254536355476365387612394920610784979524185461222494592769702659819053002469541458240558300952105402471237324202074395628355706669722219258221210011951037671832941980088361872524917758738738831569127953569821697264955598782857414308433378080457287558512855002476779312444513910846484311814477243690897002633558611398473932459679026889372823251837168714574080235785295932237065676640873347320852048101170481723936866447149143883798498413171154620168898885301698209354895608341203785867366472290759285260841731546614428807724084141023900215588722015042153533573078471520315684518670460732379829034390551018589117588915721295983713771267931341038490680956127344645096596157194673642946019167663356074597057989054442788561341861910458423392216917709040320000863211266774842400549476316271131350314514689599239283209286272256143366186325573838040150745821904129782788537955611386481969998523821583918336704981185678149646962298732082592703170043763961721880112164382969971579614682115283235687747557148119734585938029136196067370659132697789282581182920191976983642698094693740973855375543263985742513898796472274195738396084013327348244997854315608040518763579161901965013943113670927264366182118245313620258095090054525248965509421457450369165162993409912844323432929859020634923083008806518908974423909690575046676055115016892795523973164280160986943383885558153626993829996960167502703877377896861345269171994282909490881219071511484543344184206471457420677094087732923491982317282261381090011223077652527152853131770553362961354899904976573452946467240017203013162629862429611050473696658443080829639966898392631454971761326536074309299109923341034987350933046130657129937916876021190384868222322133666535577025506860553892779060644513054218806257382780669306895785899866172953371431354671832261854531592819436787922030670823673594067156763433328645335737505029402390824389566081645226221080695375420016290721822579944087452969108292550871011216717642095989659395363757862551639994810448195283917861824575616609592976226160752378054535048962708683996854258074276546183643700252883077816821699355452352550141244800353878255680601491242620560626478682591249862139437322664203372752436533805112756075537605903518705996009686008866848326850196479258020728781034115741982811463726860499214731289434237144281565348882507635697881183406940738390878931242515232289771330438999517126466933438385256142521349735716236577386015827520690430527990721920915343102357399159159579323647941061440711963244614745672506220614553853054490188174574447156373836060378611115113092206476838434162986750079261721874537797171700589767332295457115187173567439992125164815797715212296571899605125053995266412057464688500095660995184372365680095162160883202916760657955092792815707928712480163640689707329288136136452496606936352737839847470061160475004039648129227006132319612248688558462435380608001096118837545577504149852959584270139820575735861707399619928527627978337712255215015518006157926922127780138854987982969983853357989200623659962921216482775224776407046993892602968522566849038209630084174094250295332962573167552298057385141088450973791585715475831052158541958501021567819357489406895696429185520502777819086025788388901467317932439887999436024959615683473480931882856096248414944503069194778888800136173786483386440237988678440184343656399017395429636601518586557182365909438274866317097445302166949380299503755257999214721567601604940481064524302577669301254995173783369909443070743505062605754955134851475874433988305392624491149382193795170439616290577389572426606554468718971725265102327631148396176256590610965709664297918494791969140796801997213331682520836546636014999177992005996714219475528481272511184965632438094603051134674729637058942861659921895169353176196511577455688814719880898721917699754039828599670680701135267346189548363286985920420821962110914310013033037418571973655345001823327131667589306082590121887084730359848455177153355537230739059981517847925257497448292934090554614979725301978858493680236136372823294853284734217479142628733179971939068700638562550111821788030763775771494469470325871953546574850135774526310535940536590468156913317520107212583545471949032208966439111178544481387966773841943376891871676379088766373678415905393437740872747791939610839512277633663809293528197934228782462569122713903123315789675000230731256168080473038321314205791368359037908236475870068583978344000646227246750997048385424283589774367634918747181940591981420332177280739811089785971833354035599407059857443397178319126189122738127122983899913279476433892750736199094553650150129317494852432849310962747503106150397196324600120290017842325796759547089673490077192220704676372742132641960419452318109672734251032727274018291257234754350343909828646532133947630632630249164094092770017869799739297477037765573887558631839852183230967118704465951101127900511564227902398028150625748452487348416406780766946590423366171276431736068793169243766306236124005863162708116694435561426395170279797979921477278798112459379622430594760227792986760454675154988989255889552924879504768819212811754013873429577073440398134283413708837548098703214111484771558006678184824465419410780374510090815840912397071338206054720354230270386208460203753990394960737707839363756434576191634027467001820150513765177245117274154740100306588436097262469657422723099424991388221837876898195818279859050744690965788727009336395753631888260220815316793949928513518185772568739472848590044647252668182361394533760760584513581680515428001102367379150742870164732809518111951396434043167033093022771793849502434683303521451895549411257362152452157053088873622684555084274202932043769331158727429659795809711119220785424956773251738857418463613882092386266923519888371869311588036084534389429447711048788820160374721775681906083008795459642300177926655243919809369883810386692913470435548440326243569656202138572620354918226022833142562730828427709193570891276651709554553545956536213271471081617859921749146605513488135241479258347648185094375238387905322608517981280384081260592166120094469621083923995306620927911061571647820674006298054152115755370787333932850175028013551064877699289859855471880016273834170469221445954905783065626666293243041967724721588401133984725953421194984533190715344497350924428108054704935185836653526766199751946695654402660408149314185801407350479737648960356909613353223444433070593353461589384937334187143371454075790389480326646895636326875850267271300777256244167552621459456403791273805105556543993661586316420184739739552348888255906120322253561597231110334335014052277548990539059861548537918042910200926342905159475292042892115817951864806027852150289308451289986030144912908296122701428756779853815080388602902101661283786544669725582517315248825328197701436118019109333224495551269924187127842443711688325327629410036988870843578704742609548546017540664339905923239653915514484392695897521280594854239909459072042588619034302388939943505489108056500327001637451629381948593707462653972862135541752264180255279657732566747295913760724214694253024581381691112871768905389308443364547766806162622701286650040910039457592069227173744400401333870886467455879267804693290296706619001962462559808491290087257847300688107888640349799892505459801197140096395275998615802016692370950454746244312259706716928115780650019871032656900400363374925678503771817044511869961379081499845875680227048727494594702377742493069030233677766194419286107628734527916057346432951553553660540768536446526086392692849045664387657598608523918850883687683317120413141145738837684121903865789956762637769057305801307387841015222613993619874253898122438971363110350931035056717223803495286136921116401081167206988132314424843081653597603604723128493485016402339005357900140728177578031407440670570540158500118614699610699734526173204150866800577109856150090510831972930239356851559644062400938038335974528518036020220051174326955471926964429576988646804095989739866515936044794204446125270207201119316446659910693065483769186005303244505562693666529804324271163828850075791759385922802139901294619644779549487664819646454730453794274346332616313295767570704503641685339257126142487309165010539577150961405614260795651239009589267321827800636785963184978741500262358198354201302782458065892412416832822255608028214152764988385225903191597582288031084133525385309757015317529531393816117622216031495648465857756259618098220858048146507759538141612750411208515681788936561884765540641957919958838041694848944734211115894927777812100753734312478180295917277500687134624283980625337676348968493488408096395155949579546226077286524912578442037618437473913917280348976306815602320768954522929032256932489516815448405275529435148446828987206920849503513561439488998284098830999540568228557024633076792189081349548691897464949281276242626518294839586035146344396587044172824248810279605839857858436023953402244976349372030642309970403230496070734059245674128600909087258138917446654079817256077740775056623051740468495818518425508660775541253536729132109045527824642780081917193350184136440772045768009908712572353675882446437836810727464459798566333731431732411576069516715900103972890917220746046106752593345861381943732772970368151381958479250473814807734865808015590089231999819966650449333279194553032858174645809658003480854147557381686536559717588405925435731310887939774406689936673479483702956483566090100935102823462823670311525839785388428436191739777542888486999615551196533473797520973127096564744854211477056630837756792736703010013334089687289278525231873310757007205127381259479608841596925023836897762193794814167008209574333026675814337021875506018833402005812005689098323459231278848008863603336192314089018331494357301437787499068923513362704097562289965219128056795102426169526549935757916827204459796280372714246293019814967666596922971035520207276470751250512938968743310882746969121148782826807213229451378189571791254976092754616398023560668612750013493448527100727839274897175023247155826835241784586606329279053302902120947851174502228288139325896740799925190339633910965312718257044967355930509192273841036735871810105076305854626122214083524298817476927011688404408113018288087612816674969001355448691119830937583283616070980498642799767485639805269044395645111947873670969398120514402317967959922562945660401036987202174404962505594062570805150511730546759006925769260122618476317507473671295307065354551508139695028401737138127471498034810739872934295605331250554695114537350897838340224198430447095175574608796192986514383450481698121768441339342964303242707319614075890465376526036888566738679167966078529875732488831989842331592678132829986266120856802977236800201494276813808355639669455988924621565687465314131479310248852132428521075322739846694011446537193584098246779820088276369014212272559204203975927208307233547142999142924204664942798056448139417240584758646782961719269497019609965904231860473896144717020546290111411087282739093888609106656067605945496420941680898606622960013547780162665783908153120322706826513467461820916536653309608619096313170188976916696863469944537637421218255000401188537292854177420846863201605412524958542326858469545903601015904250504568085572766926113531024976152162424802741106151391138802002055944203657356286947776833709338645696546169341031450383120270512153185702414049448772849198584331324497284706430274461790102838051588880523980139884737530050878100482808230492056383407127148092470294859848349086601340824956875716513397945403764706158309322285374152235108136681951107117181800628770718919557490498509716258379082831650638932937484729041332276993822841162209048670751377597486224519655124577082899084998105456987365431407575584291232341080564216346884551423889252053933150450875846107420003229316937279932042041367495492413545623887586650195500712447151521526493429578065121330307954833676362066317832905826093903727401531471679288677949713393616987718827354985486899517649452263338049673553395246812778525717162936209216500123654181424222966208156569860271080331451588080548101901082550381198688150951352334486094906348571016468937193488821275115172498473454551901661430596581266932868349844886078669717337770518260832618916090110038282823608289060065789440932418165791670304348859352946706177640421136526005935041359717735095801568656084877970839285568268430155930747406716307290382638534157096045264026579724996747295177567108796725619801180717644431130526001223245892936283534349006671579525929960564245220838199442573156216416322697796614278337623838111129668764347946628150439555511626166313313051618310414298695100000305993667369896463783098580145322793227009431154159106286803231070011876856585441447283787920916835757069292420645173789142074956384193838453173111463716172589218200854782784652673503301704241775787062245740912104568637789213678473020737303395777452736603527509619503941127264973850220024831855437201521671701151109221928554471481556502142863925430024448125194457564811299423273375314449897851719906590010549241248800606048636197022838875564750642542120983588866336015643973706687826795732987837846325986353877822620040920478052203588102206349500477633709448268774644271813035295747971837827036569830557547820537153549458799460133201837497585457343339927660716526587629805665981352455928302560725251898093913775774053727607997949997464249564400285032288991054982950051709790193445977277474207911856847286870719953076513969541182922526390217471611949962720397168061313441971668888669140947660970909070724540314855660068655583240987668391878618348119318401703629858374780799797773793899961266187421397514841341964766773195845361940295831123822401306107987367546364486655656880384053882161614402748569676775938167520828908376815223151335255133437015278177499130297533232623042604012937793526115101631131278822021539832671935677623367118729134740782561061195405447183684584378506831242931221950535719147949683881938886330475099650793950689520184783517722031926442594464374549211466757647969615559423549081900985823771782332308078695398210122847091820643895156815843125258115199357926145124765607879432751969067501492767799412274986292056480047586313508642907433869716698059262834006413745405099717887624048378719902815729164467488309891619433637166279053635962671192205944736403367211549374318196888397547105963031933156995197686400691203017516224612030045386927858243472561967101417811325375795459420615764936227486126317113223251378853371729027647572723580111852834264920451547849000066836162403162803484841754558857872256920600930111232209103576056604597768367752949093834087694493261183618909228170482219871070621587914908346640877891579696452810097277917371505671222437326306747554917843871692524952351246544873386697916777620141251226049352121200916052235784029031650343947230236883660938791238316681009736915571995563628794573016919529542320967047783246276744611077420486664314596266280731775702820552842588130622395241968200565513368860917442571703820858736891869771964746217269571648560336772984741552507795207586116710719155205181188032125437054144011051495698265345961989902063040464227531234087232162725815647065795466445346577525395121385810236588967213500665844572066141783459337924438962246979042241820744792060646339985600589650443266446177667493291084272498173270814048013082342867948845540661704122350928287372435685586380140877168951493199773526575451773117565864359799072504778784786637818258111939846163027483070091064341399898131567577143730198141199438594266311919403437551517355564464429954907809058642970220506297925004238113662479424484488672878684573003364604341532268963889855399378976890374206000354731676579092088222509216579575530284631123500803893720815773168858476404914840206751419516419531527636565807747472083713124234465388743223131522079975231819990731158404387395202411028202558446198893538866125476176753283385182434244044183528074133520176875896383860077348049435059415313148527761161100869499270676005427855410905710161865485087441797668590453410344434022072558134465229003060531511247715300476891518319815189978009224912030027377676973224720372839700305005092933625042531068373367062126683699838119910053629320642273368653292258870765166374541600831472309749978085823543109907191340554409574673221375939859681171758141758949119842435012758528878727607204265688829009542649743993922491488140468181417329441597017842328159440793579623542035672333424746730416895779664366350720223161166300544113333258724275646328877002659342074335507408879581105777394346921211061742299273351076320274574036223890078949938670108225015616863811421134583952991906695080610025573726897338847723189313960487065535671308214644479539054025468484679547202061225404909209650400571774159399761490561573699426988693591411544978613305759818811912142028877496045292708361818084281848385229422346329762586449324364175259498465526474407621193694419834097326887326522004434921790890798110546258862592066556420766520629504526256069968635432639610516185276447859284835549967841025717824376782999606048661659666553572561980542589261646287402008292564632347204326401013862082568950490194274135647242748012118739834256121282319414089664506742051445283433828071496692655816623464648400794686660560658907371128645414586573250969400214736626575299925250067956491911644075959438328915304517511703737564232179642856509249776403512963848061975993269873758761682567876808816174731058345556477868663588692521577114328296470825148555057114096115057157376499802838161180992281797895794193967494412126138528495588206094921634965023333306923795248659465099363008855874924829574245502699067132393475338474773325186398143424192796565757678188025329093224588427004189657516177867909467720623456329001894227157373520914469006874703687843430248845437716437042773085632146564985590406969125099180186909961875138168899160194712381425295460594922938322695883321026349629820921964711779137692589063470672038509522849466032359953881153656708135310392436146433127582396583847352137175335543556300655504590437404883359902545478519674326684797257684645662199548815627343471987425506463791218729245843629838265809671717493035479539909220564411322113005934014013984381916320109963673743033354840834351759227978557960722994047086951334966511550908442674172564281203377934613144627971120352660688022599053117384832883578597337066233055671846651648907954191266583244604019808457814931536766164928612006782566247586224730805780765677049084508206962464932345559412005329672618647434629286411761419456402970362807745096932869281156425176182033629295086172833871209650980783315866391346360654060938354088175843152723068673625434208261839493633972099860709255881357909985445972232743558963672482128373195296013320528178196303067660015049400323127519616572354322045888827177628824275418602837612946274357836987387105301958095793716404859883231869771868044070549226685075209960615191814968007342119705456368510432861546443021017872619029932876139075624155901554134995202532567598802258340919085598934648903444201595724854211041484950461252801037749124845349122935680528668079087356558292290933753448712793982635486891674280167043773933085073464539508801191072478181476184668144698309644449930952548183811143867828164757156629500887497363262612383157421675907290706521220023425901426324183561859702413263346138812061861973130800087741896969790648515694685079339090790540299872788209978080267487778905923796505804305018053412400471814978826785122093810655302192562905054789086662833702448209388648430086698661629007357098069048336827244226009443246394615845392208741398520822564608017410701784827697221266984387627140887396666029070794813151407266607202461655425510392675133809537873267529156695862409763952772625003133033632076278850922248252172914183550361518961047216787773792097901547602473650974327532353150038724253140077276642080347179721718828043278098236450477782943654170056572228887087883907151031303602432854928063642367636215959052468090552943864194774997229816257090040289954186297243128915086664167557855098189794522502421609476379716450817067508619401855153745002191203913120992862605290970976025456227302614914609389788162010638138201192014134653202408971300177527484214008276756467075471402961127621955732425600359708787446906074703996662801856247271090835720127237446726220946910528194108302453452107465934187111244171550881659630987772340680389419994040218538480566176356689930137109877417019986998738479993424894658835849513069267948559804808026279701028428448270075512599664650862282180854384648602080486703367332969735033592428628747299451250170640010765700451664065438806696738159151319328552805465298323493217904476538917521340455853442651971640231003471284176784476381766390455890770148278899694975638583718547838283067824320968524688225728434889726187272860445776091024500134003944731393461305569843577166224154273738866332160697591437750928910802731507578446147689372988428819058006854382380339429854327207695419797547736533580262455216716918136376241201338721270635708769955226298726248860822258036723543323286342532659994031186805767877754502055402777439066120931986647068189786029733273845586913519699329269375871519798102072952215747807786161440853822637033166119006343523445972708719113113674893441561373795092785920459013461303478067231264622239490214919628259910183728166585627533139914286720226563357680448179741991597797523161420441086693943765199238785810386198827219786487003409115018468998100178447532661849019476880978675204629982627893381654534471817265390919631636388714527788967650518346273836411252758774477304078956755266204351169149327249211252156004954381544032813057407338435797804988482871047399606273155267836165966513841664476407259558678422952374808935130289046217675121513382246798671166069448269932654089634172354076472412568794225217266557730748834203868959761064037615029553582046983819422473923835845121406498705484368907217469152921866795278404210487018627489180635563109577697267793199516425623183752423096557639888624205390171532425912135006834599909643031928104923384804018979159076843425114774473357319470485556531176766123856579141964337051907661223317672486103121935186394153057206077825674698392888671990486262289263769210553092370197963840939665193384058829915474148901965994841300757195501029732266251191990310607607050852194290327531090580345685903048189984978392570614416573755680691523168080309713929226881098543278900298556681444486793881744365041097347299500587248347422238922520289655082763151696032760729037567748343428270871494847307507456871435618106102872602632122170663585742905654358898403101426310853392672986328207783484147237045776150861282612866813675235404256667765205467959862836682097419568987390538892774064737450938141137438784355936185247460801789566200895469626257274510337464112641655598400878271586245256112298880992598549046047135852780146576954690092465710385762027006361646832896371037125196689726756098876264674775785404599591978073098070175626211217573916142773442557186783046761677812835275989141121435049990263532935990278150209792921077556655939610782905161804185625258954708454648910092272662874768091937909946635973239144409288908194145098800553088589741716826911850932106069893385700098310064100253525626962442657660778533973034031523915676510019339767057161193544063021216041747730521919697528805405531507362063360559474719442053625626279852439032643988002301374334344449714354170568844173258883442344219719423180256865572269813151418758332865541436659777875309017075456425288291582423214383390655920471947376423108320454348814198500573315280457199408381921385675187535081763242128704997030812516368119469083743873482082233598859943342030993719912680730570620990073507008503701520498148036029390049401378707907445274161843242916220172576112480028011243009863412163864699113075614645833255244523464946256342715802883143952774070350273844080865690303264445164785860449396857067330056185328232520075758965900891938127659335395009388315160366616467238619795854920255245804667511960038024179194347973549472331731634332879315331721919914791863092782980748464941136225910619169639757467723297445975017703527165642257881062089440887669670386532206338324015574492888004233049912519272158580969523918488203220074890308471119747139017993373947411946116186533330523846455375606791410545848519505783201280192571658433975829939818584682769229855682245543575795442617402167898266089386360862117904598765577634856926420975576252351457909872714385458241519041202979481632704870801247617527855791894236545776038562085155355559731929833451662858242611341617809275449431996760744439131432698256434965150298597191746104369362707735579276196453624863683248392747179811969917870056572212145560970874466311490792426258214170884968367011282733576194283398422558937697482766969656759854647421416753690666973039049872131385077386770342484607809769514031285566568283668205419728478506509915765597301313200658634047416809733356786063765383241446074839387263829570476523366818036085401645703425821910410572228661524237269626761684488113371166766860378984014005105055875433973147814053816690285168982871820294081791612143524927120386574925719272331528811232146800808493253985276321968060988293322718950032604392502034865055770093011849435300723426834482137855521900017871684570761390408708245246424728874173085908922795362789288660115411799673009807494662839424843320058722396830152778357728944432325492517492555245089993320106619872024490308325645898459430035906873769903894944177797435450353469042377254864115813347146436010612245509547316756948240622184635870385600105722174977367056489001620493132166032398166405032110683793732252983966306624317485398152234014497245289328054722028654838317650951924735807755714466455853083835873698346128269135525184332256548408541037111795643778006160142171833669871537667705862956704060579982182084459737328928321629118940739503445861972760867993178092314216748531782705248168212827644795050482040841791891480625361445727546054307567873094789932142580808856937812051695622516750128818986109669775590419333810026817216362447963757061190803333452257690830122287233580707187248288860052876115420556761245671244225989990469059351333254435077509474190335717331966064130163969647924960800624789146337585449384784371343122649318186973407438765087347553754820570131173862984934442761368775322353631106707079061127651233041013668979768885692391544684994875707613294292785787354083179201998709807721120577047502242406290354043184647752642478920312610113231900901989613460702511097966524053694202578431331791844182200787536350876913524835627652492696913032020432289101162434074589410964595884176027442682375850595842872786741108967817489153635237704342284560065265703181286031079331700206507055389959424289752920888767993230127538762138090918362108563107578433995082489351287488582485451309735679159115258371741969656906319505713934721994527371144676629331233056105168909229681779700134343927116799565768417148825374810375728401555291284337533923958797308369414132419103040567861904630552540449510131600289397289796692999269869835235640850203317283821164332430773388728725252516604880485239326570619852089269196235085343691064389017215905420814088674213569174853185758198729320955938052923196753724029314315471158707157118156440592134484631158533989739583786508227419532472186749340757241860467723255312894883207414857109244475114593864323171454164003506561208905069520678608753622417551729708356382251490671933703736549546310173204561127759304172146442569952173586922028807137840991122108391258585934574055363372744777122693845389533241187734409091622567765469860497336282471758513502583661237149418707262914247871865929037808201263972504432172099921260124501028042505892900747902105379204233132010126361173846944059438264297913297545657292835183274534740243850286471601736245898553074214671774862864930902250846896921446627667817943394899177880296185215494330892631220192720574317257449644302825055622965675891080100972111941379514641393598466346285053611987639146783691377033393387361021625153927105861171984216071319560563649401628317276190079033348864995175415738709893495306449042400990615742917823808162170928496011358152761065931862556407329511750662034093864677952657433751734697546626745283189519699446558789702304949978169226733531799298804884584284876569278171439552651330985107919192407957653043496924179493338985962753529784842827753435706880094823435875590135953430471597241553287417419238423297191298608140757225606679948177973260535616851912037260220734128521694328502636769589262646439790659423087711469382262716922184504494185937100510411684324583298306629697303911142382401366298822950330565450161249011014962596611123461445766248726199650934658763478090421700852344521399052699909343704659646266020836269164496459023906251633969709651579414576330804983860738581311579580381862422564192558212185187291122965203562190257377053803368954402934536807899105451868206557307147545443167933149417181432810130590844483896603508623370961264008521668073711329135258493904426386145435622594930515138457981608332524861176302168184464893651154255110997548543557563359430200705000076669235955806451121582366075045941283386730865429707521243690780263796005229248058831324053900098258761126061930524671453197072369361077192239326697082177949736535974250012660753616915116333582146000144731715084281736824268754128691235158219841141282717826191536926944478474571014560166360547650613536469237125652274449989500071400678439377956244425923322470122211466061477932398710511029056519510194480253537222596236369163319342373313492806008335944108053152012259903105377304997512631064729528011555914612937692411827372987212608715218105238108080623881734769158669279247969921338557189919619520987950293554107547248841860090892909232679941056201725373784968864157629010544516901752045585685123814592975513902128063892136474767438522600755484955377452335346271973901069159402723478428938291617354460741656922629205964900739163303047090239893581612833987101429879107149592668522792790897136861941542827715044549940543113765387448398633772787462984097804564790027223922050348894099981183805288887913551055834060810530492299627810033846290401205949457669970918522140159340619086477739207602103654705944411226468949562509301576299843675734635392082802973385590447949272444889458994797049384956380794939094163449456107347834184097706401641572787224642514121433354793390234971019724177250567340889445734136396988501391779195971182050562006587709654655050125612918741248815980025391357253098684815113821311508585748984767410909951704233442423063238829587832027718149415405996635069455913435692688630937895389917511157818186302203989284397533213951795219800490865039944994954147101311135910186713193776767148219971451827281546258304553886650265559902464672487101317145354095799985425568162403703222847493144752883025129221867730758723177152482698407662362316257982690061180966679464484607893513277071080791341778699846429369240262816995138971267999461628625833531510498243468862037735913793644315728317829738359483268501242366457508642622140402474566541754806809088271234578141725651710096499937460315815104261521165623305656281892652997377751857493156244131478849409757623059386920953754106168222443564865293234097329832376664137809976715834011410117846965139804402327799306726293177333386891358978665148938765964061138613659871080915031271578691132083741499701344599387131697376484615937809563981104654583253093895643313088670399090760356965117338887008370359882683633557476390088880913903740387473434592226556127444467588755477457700268110016170868102456757421539039887616966863040548196824255364695720837393068149691262360077629666092674016074946575889020050383344063086697029375593865944616335448414914719157758764085903769929507915892269971758923167253638337541323766535536373989014490256636839303034501679841356762932621013892851617202447842600787098701589835309850912449012859004401704164859374450604217034686416149448839908101774199546268078476829509583748782416557144986325354524743437350644457255793770117318932258610722166867318314971304623452079432505538544784934487725970848483005713019725930790229865943397385973066300140729144322708702440962190190553105600798323134944606847425387096959618119299800442616895032922557574719584480151211694977028122792596978525982850559387803510433310453462643396155210465102430642718375508890203218776875963043943755555650269220872311941268305246510735363795771093806177165269023077573360074150655418687624312357739948816143520193372852198277457773992251361878027716522192858203193641765487481486273884354935980196452970242647285677794924273975002654105959542334483853634627981884938614717950020891736482140635957297998250989060451241461447148996648509961192207849503256368180324957397986429835974720931059262562343420791216925376837492926154421098771810502239411623990348633550238946742827716232365732850947080188644681129288043281953452173948103835760384476791669269994124243613035328021579136379111665245846364535512161767708397807957100253151855080596678454556002440088727377635094999027142859116664980147338555920418958536611557705262148936957764026309250021099755124722433568357126312577497984280227618524440221112970245066848425677938259316298966449838881525429231302396181604121412717118741321955688188605271542590076131292369870798702317096785383535643273202455771262013956086888663738182559165047511628879403113150338461396130383939062379458311628590292093973149451258454575943300902050767096805775144634938713366784725252356550572360298408565159883067105762370446664979547774406111872134586353786737668660091092587493463358023296023569038862733241178324730525547238298804091319086373214567960831810928725142287483234064052172537954215987514901948067597649212999988709210993800028035596463942094428748931312190771962543852082749526849543248510937544519166470923010439605428230756403152572077115176260819590074299557897765734231638216128648321916921146050711504290273145541840744571713294049041193541423112570139285830125540903834371031884324769332797402409610108032034216437620001507764157133848176997914020400664518049503398916011434506766169594534106478032404606416558747937400312848175853618593370385939139410631416434362008549975510322110626950714364067955897848497048991123538971046220790486458051171541236280709500227496156462798184500317124602327169410612757802468097129640169435307487579373863197424823894025245091295493259508954986676817230986581569671345840077820502355419224847907441305450529218458391555248385413107994260546394232278429319778181620789879569245241879056827986518179362342632684130699801112537532505572410185824470662711271919385597689822874109837835938953102035021278262466885946926942140361926886279726523737848184123779973933323901576582080667688124979128814571853609497082729441344443822585269221392880012480147751420609929770622540960765408286023669085650131830351397252158018976045843613855091846143488599819426008812761198925462661219633780497819882461299141179917378632420246170301493579753216594803773708551761547018057247406589830462026631827724551539379274369362872668913043594648349307774523751977016814646180646100636897785374178131419654040029180842514445351415549456987478703484071936900241151741658053419410376034529071328913795366644759810151626867543143908418039146498202711322604443274239416568518346153719737470204338045782392714200559301633711691873197767489375590374781429285437068796860341963495490498786546549291670314884851011428015257819454241595147411647027680066020632522532941523808067596297799754562243964493230970863843150391558695273027845862860198728171994701784300535054922969507787470784099682129962492343489242701390897882378335927106698946306408030736759307310387972588411738208770174791918925057987684426252419614954482554935132207605462027281191307179385305085930162955319968996529995671289477364442381211232445706260400249957353811454566316194698449659357403368218255197932876061885363264624199880720622440811135850353823369162890913109175286701927013085632741890052277416144877367841745303090502608226850035076679213657364247297853912170202213779720108335652584641420240460248279412307760029092345365999656066990559333905431219002951496100500506207269797719398729096401665481489111168043551802540839099150223766610829811872438002088398485612586537352655044713597754232631903823099369541317925882431368967841872604521229777962933607501126534883624590527337586402205786139466138208610660699374067090417017753539857601884342014190389516960829991890906157300807069099780226657680816022760359043845030044312612529895671286171333628892862096431363682570916614812968864204631409784072280976583031015872207455995523183093409993712118441890446853210390064898543519711846371552447528590654016317285811511068612240612780179801950733345352541756408141490501422524508631863193000013838843048240550108052695799932575699828204404240634636410908648219713991120688387170119228351460794650860104945250868497215037661623949817405248327519984606190358400915917636294290135750758301287415939413199944131899281011217398562849166146636888150820595011558294544089688820935034567201642791108589370768624775180364593904008096963741832353037638103265704536250999760378891722584734381530560009861230862455099562184678424733005397495119033587058098835893913692245396167387788884039343772930913230851557469000011386168310567443615918534066424659574259468015477189254988967370048630885410921521956383749160889695261954808942269452973660283837987109061333419529275477393948936892748071649131602221056539211761888619248022454302594275429510139781050509604964143791791544302127728474055209482554480777123021574683285319680359485492836736151120947123096907021260568976911340292208339233330903559950457143059245263325158791392599750184228302501023389699288709958384968226920583673061093075125029609274055475927297734951704222981287621556021867234538270410920165824943651016261872625029392749421146596095724801825874634350032033608926536717772258208811441833210902621232334757413025983499976100084083553198788537808292961231249322737662389342648794814468505017195531030679924257567522299837042905827526145345687639521196571289695617480138753286770018294130496284419474366766916926845213981059657786636137519640308438298708869463598240416840684444561632643059063888537377337445806490603657578989043677940472742069103051590800219406191313539798453890302820344113440811565721268355968124777709460469007621382523059299850200160008793105001298543753478229082020787572911737547479262056029026492920506404288286882185402784171244960919763522882858609910698383603179062307737034557332655767049110996973683852088640224699378643716129753101940132407145963774722717910597917785989589156153869252607917086512003042841591162014206618433057154795594266498302145648802889560372576626584171292724522269226344216237036256320935395544866340302937004161335359422170517017412946232635255263005863144008734156400970090412598814074607230416364324390505746748261248470978420976965357477289894317790363673956152737877959860075112877871681186350780098905451868035550242531194226864028416343121734642536954440930335721483532943256195643275557811939947144083366800180004840780338574977532731655274491654884779932373586161927684378592990562145339079522297887701849853450884824050037923129099767707614983638034430688864270336037857040633164379328418785791928092299102455479936341021526309041954647852705270559300192589425111082092721178256432300171368302414786772516499291499488613676285303673345998197840144768287311776113739557997155443813990894730732738186770482693931500984548109469249120742461850606915832085730216746865056780566859955356417118011707297602759193233013817117135494962674282247011914678498772253503651670688397325608585862367584876500740850708244665371915095242706540888018328813983783301069251308527783508695830340960690640222617296829281729443525015086129974019409645052015645179863028821000402440218467218183488643990327480549523798425315085576871573057150662069953381924151070346829104816460763671721008663082874608148358143961456799877354578050180083474891038331043524448745874392093246223713442408311117089567928832264219235742368184394943216579874503707217698057838564739071690634137590348228112229320743043782687337598914693792899480986944240772049474366143449260806820101684949301333925474665926882685573568157380028007003517850602390299974132634751104155561079194080051323750276016674705890518094098796324482677257706540814619987475108791760304986898774615975341113846880375545734052077906032326369548830817168138320323301059109805159315145740912881108705844448333136951893182837381868384437456124011502130665898092295943408601241820595476557517814880106456858643877335552548828207091924685178589569797617987597907285909971135943582641014913735345520482084178996844209577265897859128366980670921251350587323124170927581359634615218718929601138139227002761296514398792845904401611276356358594677245836823367819730904767395023321946999988013313988745235039911927689816848605872332092335783791070575625943143109693471682863025304005988072273617463314226689749976125181481808416947619051362651840872899467386080893299572040093834512862276852101451783581893447865228249856915154153241275711162648583575254627909153788288168022687085813990099051536059570425793857594645504348609477860698909366511484752685154168786614976727180777724931528970542875154615515344535901288198694133546103748513411064078492243367704492232733838436398378519524779932529677666216830496137309672379077630040544809286128842886636946500725142528386313644096067604498546962091779510739466130809910568607738000695334553790393592700597899073931036568573614234863417901698152594541090652531295344530270083861560985045077288358680200860475114038870110870456471377466031389824972817379874663726077266667883083698082298845447649021370338470495963795149620063924706810017029294358552788752557672847980876664753033806397002333948965456389474179983089900589241243438761426255734533165749351077916751679741515262292255683537433935852380588267156401013843451089136441450137076014210023887118656761534539130053271100189515623895675214417987333161649479080582662983232974798721022409661848073082252286709594623784245983176965832629215796541837766049894345425981858828430947513606454854794699765683398627500638407096105178575744044608122188048731113470778305542510221401066334150101533680718620890482005738186345413422555129165845729090665116090061348170784191609600783402652307229606692824966855736491026750191450472824376218203472853326880687605315273173901578265293111623465761949515969133780980776682077624350192311771472301973862830767209584711447052920793215296451453048995106427340193503237372033005355431691862852176420236362285783079471517732770790079515945177342985033523047017808307699882729156357456042241866078197085167579919674027706337720972541801289661284864808331380583959941100080841685339701044211630019027121079797239448695321190811735011224505350396467304102224188904848078323211114260123633594478215179744002405816756289926922867611436286264644833540864533291704692772725412038818376060512484085750587030605422611101370348873503735621245917284216089989964743706836058733735379713223281223362327178350437428357969331437314228883302580726804782695470965928737362597488343900107578763259499205106303656313631752703365481150418409316338531574350626332715339282524963363801829009437470696326773062381572081219177819835780978026516345589511590400449345244815686281637494126799644248746725722955469380114387483004930026937695702475270247443878127707781772857349389091718136328072075639712691921936982084201584865368334164113059354981870559420892076773315697778859006494664003049544525484583167599879946120222877254763722001295599367101331649239799496465199034368911584838791448541979598511786665353407162320966010147190033153740376141511171651314891654560662003704909794577593756565787601094743782594286860990111504750980840048949708255099256253659374178057550697011667683726503010445522118849134849677532631469637608778356485868433976835628181879314377910915849386438242470047134968165865792526338542955294150966179056827672466836712112536082281909827275310113600486097543288356808243860563319301363999343171903760714638520658359359856351130535445564332120340967624413604169021316555754054502212453684601168216009263875368249928604445789231784044918328853108481683560936678138302872731679061235393180406618836421724457167615248170681239019473845866277188861649983386134940116868161089765665800512335411888512767272960572349313736345122949371200207959584483528983837889633769501303258574990237228139061241752991058925662456510033556779791841501999951587281855409301378019915557934703436518362552767714895890344154523389544225909467791219304889765820509263352772684915671460723397404753478896892685768793830702687365419761093141124795713526465315154824599529448035924332824303215362946801726797092103716991478921749160917450056897545721008045751255036677895113382017746495888225344932341289370600311615481222644520960950456794744052084365942113942557932465540550336669804512565210444276541117311266629557610090181589702437838670975098737298681863001226123839817756760546076776550879262913332994491355250062949485045019784489407748662649136904441832887464726250493966154880656586131937007100981503704196619995718515180520521276592354490822715295840513555821083234762438476446044181722147918373624126630603006801848044873857903548296231793714193536545055929700724395063466466009080468944156742286824779427012837641260433393456194212741484747326905846360665321839097979710795249317281651923011158993881500414316592645093159075967543255782043791313171198835452991432527570546736375829691325765404662339524280323871830085459116844351628609326908266139566919586027266949430107012954159277697252532818068866875055717025911929141564670808107833525255202419734003046423535562736767333462856829537391952595515039104420994387599689543772655784474315146249339744001199216351253655886589377772018438745874678646205830694873586013567865035695652400559713363441242116719609757889497487043385727662635556285480260241389525741324616013936284824745344871950768731166780832504874090322695287154374394046434571697154946165252979679105572383790448524951177972862551873139362565720267191243660594925531524426299100474801281508607243747455710177954129132856876052371311427650469146041508196989994597475003576658253243158415461518106548181052640051614256203240609973212510296125006440476297923578288513355321415973177783717730539730952135775970079549580390924666293948531698507013429350227028487758563805021324834731140224591240269069213278804307481685604725360181674598966247713854650264960721756835584826986655231294481704492700124441215597677028812559165815572012858608089967798819338581796307562666402743109869321090716759377005696080348174262716545861290380678216896852518301458389380591261832831725919560915792161652883537075474553970289596053940098495003001639744267993009124271429382133956328297126083646993429685360517358111945153457393717279497622113539190835233690189940592758151835206860713415197138472891866198936108197970835541807751197760474499515918851225320747745011717710877887216765233955587215870342963202400730910196831518817591707393990928283314759701870664191224735098271408791086247672861945896232517269354010088212123046599733828020618874128942572614915131205385579012184612851327400542687767139116406733594079553736724508075005553304653011379890319786258026367151381372762474513262368127949649612234512094216101136454816772446617560961211892514764098375532749263505600595266723612515707834385812976475966650373677883325211295529956631256301606171488394653446288865442050527719124241880416636550083419130604508367583289061226838097649518875805891852430995856011550436929237240271868844399046547383423612624219311336579560775535198360103294809191811803761482194939267035054838847560193773666676606537552671537467512669390472606146493501447847835691701067459861302383371418785266951145240168460894672585831058642801923370451212787755466984896905443576628213016037642633911716925617845776970997046877530041457750790069326298267200897826692975194575812284943095097773182955656337806913836910020852911713935672036104997522728425593317193183668734614116495682929543291372800890486928144914516899262512360745950396313571611399169367717962887088546044149823562382823434512082003566615143555353160652868657142013036129395209141858011237887612929907326793771691525824689906890866580305385433578685233117325183686845359309964602414633238598125496218699412716632362740899134606815442711143898071630577070389233275595618073208484129253122866284549259080221741168984013634043221567847018276976221279164731549993371826600871127992479456108126994315178792466686149175003928864012909902953892708239670959884513199858776589584183703069068912238854314967100594771820816404437056151725600536648288484879173340207901989773854956511393215716441543122166287301757536333664874981837400814268657341248756396682381245287827279019574034953091120849984899916590861220763456922685217234559125047471280635769029804517600966828005988317859883467484479123975375767057589192679593900910560574191165313667566163127617373717819036789001036941470145063640350614081125577527662196734993704915589110769139534787823737819975218526090264939967110769445092361961733525639239733433773020904567457084984208839419055806871497518554268464803631480803452436629251366904629111367291822497753133445462556113546009559762301263692771857950744002515810007333469496235391470406499041863634770616564988479069041578859060436749179714435272038445883912910283987754032298109044085555642642966747189306005235135218910362621118946663287257379706222109710605880591837674968791267447876460750115771969365410984895052844561962549567739025165241357263054334696505227632013791919233675546140627396849246004097290387250660840302205302859269412308778471631434453180867086607207801488393653959174665371809096651549431485398963890861165680033092425190653794213997355643438074166185504190208519168574520967775179717800932781537098849869577558746514618270413859193444144656716689576336617130411044679400416032207269679778665769277423148953861785241342908268422258362874857494169565905668534272627214713686932533478345386156411885862831737826714203283068622880293690244723165924254253554940408689446345503961870501591942289117415617371087961891805170371774362086816319040920401532843401166129104491090563467936508959588788699422810522146942668264977849608795367288838425764904739600066587408854929454735111452727728454899431122884653453197476367281354930318146980382406949283148049144064024858239455870465257750824166185796546757351016338345417452743452657934680427069709728719048105338606499438642950550342966816396614857289127119356275675843567090575802713725714684960279888431734943885371790248264787643869625831313792627552190569834242192701399014562211102900325041858366815089227927723137235123850272338947590174934451949958337371898975907329560884323095829285264802935192447656445952752871369445313764973219081714494354520798355995222364089098252477023067775389019539761641629838787439857174743476062399834512930773141097232273562775405850826527786860163303771094595482413486064154203862821678053674569796350397750996103169429494988687741744266471810482176473642804277912629185312263015974355034548285556295500848757444956948892523931809691978997136985253940047613359050093489671181338302876076725597768035464910589344042831062470955648874172063360400524995414659052646859896594408574836068757128727816454142927144207293369437703471137591424083700470321947334832978590114448867458682305001603770232781485781089993599175090000527672307442594830077506618700005150449365405643648051293169731978959775694736253315479079370894069991965478005574001126466210708234618559311761195979305762322324582673340132947618975623296480897742036700181460770752317489086181852013401508299092677098066977450014912082768961383169756997580663198471776787766130172184735766727341444102843933922327072677103950843284628995150481389700043006162134045282128267911671940044164546907461337864182973606742660463950092576221246833385720008942257424461884053817360037089139978136498264311149992447475982192878660159778783828017367426403342765962773146331633272589329446588449293743594945438723539071538283566011996221347918502566348300758501582996801478181568661922314704791042680667018366002089204473344240250733023959895466632515732932710819194857132660265680779072785363134519936715397897240170741967305878180814416707161038677880024569557665103890352763937491821302546685855482873996890070685452443663472121272380544308891821028313721107594816516423249289775404278531070271493783991221801736866825899347298323117020975410631321449788661964686728002452459719662051691061482531234245737190438258397358094367502958214397200491523273416213722968380480927013087435413179188032022480656822320172290729138900426729030769108194940343050270395272982396211986300228039257625117041857011551116233040558722327541937088601281757842337878596620258327709369598310396378153621228905837834495935277399044217580826873728989637451638355623451143740769686531605843837270064089561533688280403568945239366808319268825627076733418911207019980397287388837654686609103601776957445456610946097861211914368039854780058195770997682171382411231893468425072554236982460141591735043299470286199969247884166311119193897175426099913499296758667167622542743285637536596150055413094342613670068129900876217961793900862136196519461751160207099691902284842751739602680881017500345874607431982113975657474300949492455732393370392029866741177599040792035002853891338217220341420047711976175607310382503047782833976768535557974882481102596042173034282808208953831920655170534082647652069004013455853508659242735204207828212834296269878535002868168941008759136898417353535101712082974759387199731876767659673539651075133147637055437052560843096703150652839338700039055430873804700303016049533552138215974212697086206142871019908936557157939795824270498992850371315942187279820191866754311691156210203484871273677228847352539725756918235999092385808834755762951285280192610461524399142507601248780489644705550047549625107541230609394833127513937183785103968886593967933033510809636611274562559366411049974771481258506414592644458102546995209245958470056985475703477312118004516821716961891920653864739229927179548176364419293539377699151169036468360922913000317681408981104466811254401922261539919554460237234777576842460364243819640541891815764227704465787369042806705115864716591844025951717222761406319234262962252517452919442372751733873608841946182951116578182530184086368709531031643065058813754749611287220863839453357126165251096144442328233088487362457320262905566360883153229649838221033720536704644798131083699429348522746488396403271943516685897147124523780991467770459895617561925636337773727614340466618070041847989825313150944298650738146463450927359291254011169130620294666081508546494506132964411300996169884327743904299696820200454871464727083126163397980371685672474754698167765740512651827994107285783945423025120895499148520186657668898594063572919571292488211255186950063929093804156205094200119452734218214786233661544157742581865631575674270482295723005538765823438405271112066147224801839753878645358743671243365826132127804933619060055623094979663705746939925664578989441332669823102142724505264312601043150517148394838122572487251703011645223194073818075054884990771232210563762868367978969006538637874180626902893253641065729401742670016871587745530042239178044727411598558482141105624500768981779679001333976156602724792141486757378259886672720231611062320524885424618665554328823551739869470882297981853496950513642979192619445234776429471486081332096592307911901373346693992193092815142550271174868558005681066321891999502736485423732905306817065827875870996222004761329065122144965450537833500891283907360695320687213097442495750100626290968459885452111377385458256354242826288667161357057806201271875186279980840786750212596852401654799613819943083121559554298998175349760141154962975177333613876995602227941665193609376981060724822310433060849135271543422617075686175805269297833248746328581315691295507367697145207508197677401928261455271569983891929384009361709318127320102816733721599005960708383857211587658508803307201454487305719720395375540724266111095181478980056102518743311223178676052236214595964138033248047695691093712503145405350475643044349781819480555596076524866655241710394401307369416886247141918919558928543408486752880912761289071428622402215365654653837005180058460584431522820136910448160019122108253949856359671831166494622556489243007219208579141144496887159293429093842376357545452279310546396165665002164119880053840386185204831500607489971793268600362097704799427883847463706676776357907768796701718086448364378964438994149674806015735234802610054865033962583922221398653563006246990613890406541965406105924932541219276060090825131887737606100235603318246573923643097886586693712481516039440128553421226088451113505211608774711470964461192874686419548783085077719086319944377642662544400603727491185692667202835039136646567537673641876160092424207688901529399787189258712418395253594957652756026596286938273904168175865279803771693289522170985573827303769086845820513645894357274190437968309678859393975390844723661730032005945530965622703736847917870913382500229851534574434238938606021101302889776967098444725984466831780283050446081465295791614916657516084931704733164178680485475241533989166383598121273803488328902133311516817539517807925452453293833201462569223651775020641203458019464694688639664479071893597422756529343262275488921246240381502387189255748254524238871134220575990808766634736150341220006743401936845541850670076814005069897901815300971309670565694968872025406998538520551693013621135383738682266246227923618495919527427597850177935777145798504959021997269086142417052195672206890892772497651210859291472571831975316001307254523109121325545118171283875365196124074891927391470983596985047591349150546810485276198189567478910233790276475253169621031675220458294283570500813035869342910775783678703042785731222202789135612575707988191297280098024133194694150451953971073174959135850875849117048346848410533340484315532069101069332820459515145367978576281673841501791522345932310606578766164878252343937776125048453646767179371097380206318575509283058026382491875349313285556770728204166990332882125182663771269063045596157075515251353522456254126915369749309838562435968334980309107638542148442543129456882967196172158407560295192199788741405674771691856426009626714242955934508174887020206611126142288545138776253641127650066359390843571731082409164737774500398414426152081788811878940123814103957544292866902502536460901459952596633777562240784818926381430249553142401801288779116348154934266727341200200096550495473144140161960873184268060428689934702948484111300492081405766395832568258312657452324700501718549079616969792125421266206611971549561511241699886425920427855586499374836310533058210810187797130180338609458252233508128220806155992852987690799413800993070601797146340514256046118983587836552380195496596246222860690054849768593482775140208812537550206195072799651898011505571506712539825611881028525801611022718717400426717628661099552653271514761897333286904175484094601722760238022062562259228795606060268260727796936515942852429078745035945378647957849518362345584759406620584889485680985561496694920469542682523446191016040872978923709863449438371326639532521446653412644187714364319540276757071267262334453971538456733542816452995799397153085343376837508889188618583042969578833618602013138573068175671656998233419593158059265406747625670992230603070254952302990243364036055793760195998073410899155710033957193126723508179597023388354740018464430846468117657399063736097913888642022218689540878317555655518993349084670504702681166637185634666091241582781793624143531334749239709322269194537820383042874228518684791933030542638280544299453947451907383091738807447944186523392177901480127887745872635886430463352711713619400892137697068992601728583667271555411200314917875382695614776803003615971823260846243981781058284383486407204712264019124198907318570498497472167218805470344964119444685331863007740447788289361143783577659058851698952499860989508765990124895413815470889180745223921938560268969229701061824291968229335611561604540005754256976062630464673730136266260518374549615552201827705075267526217624121977975882235125329455516842603196641918226058047344123494320832418877330055641713676324633225070559005006969472114708679248313974918862457463883497216966419981134139569746346366533670476619471453462449072844059991418267414331505001596551300525989955315020115624835079298545524464965075087286551844888680704128182594026485471332647819411361259364400875642082690822854488001438440013208553923328573397513854658140776836418295434707551342031685493720656747271093569774947957701789869485055777138896889804095223268591996175886357744887033794369407849416517896831852134771243898847213147367182890182815328641889895401847434251951871011256749594255637655280378243087681388518547398276022416987814337740426184268598376302160867485762854767805143872231952532304717063766203958852949547474759488785206962287864545830225004653300271800039421726290612506368462426057820465688204600244979400401523173434095966126644228919960972099241622436169963876934143952773857754187861372953223112294088100353335938525451935675685396194286589352793801288402782369895931759064683524819724826778501058665913072153579383292814299205951603692484284692038276315646072735273613491659141953025047137809567343121823092243253140747429403099414179555000993773470028565312428183823723567582984480223188724952951421593398015060565620493657745339799867308485280330668457546940687648460037462490266312722760457792783678314700752855131171068276668315983744737208111554706997749804527964340493312957582733320904176297221725963358014568676417829671273355468287134652592750407757938966384987466423475715527862303430499339141871069513823318951509320413517472558092635021512392877770002500293552318839798969482260426581678449342529315970862678211425928894661495323837961197932173202335226971575263364869723996433767698528768957773502694654128375016174927274879675329783521178687771307613845294693899316201440944560478095204053147227337450383316310870809079683429405496527796796794672730921061260491166705637764521440429276370569715192658922781022586484715235632927018071858193777632500288832069771961640287332384558809081726596784205302560600439312738130882340239520877538408842123872469796039132188477055248080866122043894342266369158219474779486132957260421314186379572613971762514162768809504811548226856680322663452369816123676965911752452658082161705940115927753669245442226392894245126305999461914936109985110169805504201431052821231963215658975504856807550211154711954618653404088909327303074276410581994856162854439970620176561428554369006949480260323695594158644103088883211682917480094276413438096248918045264434579836784997756108304465253433211502703755169001218140854571190915710029502233851090885082256871444508794931825791117636298310637451261413573198022759738006816701692684565988710994124760033679328232699151673061873625005704406501748945032411483149115250636514289971275816965067646505904824448192771585361390476037129546681299562264310942880631203119260303280789900501579702287067847477496209189451944930433029591280429212497005429216572326208872862296385375089900011831488492961649083981301249296776185828794644560514496190695266459026217042760086780115504608524555007175495274339505872408023044488699942695079503121500736477991521624811026848393707822508035614124692258765139831844484317641164069880071169834952819259988046956815014472300174422128980068954719679775780719626746266049602063562925007879776850023488726108142469431367757817820826516544304360552299381401194622160675171562827665468388440133516795836907108267480500285244651541687776412747892155696287795533582488916422196654069041861602465080359772647623666806461495902781928581047823410484231104545531505209847621406908341977660518565392514353656447088567890263248548756765539541135793044980831459774474652844514408091846551367500379754737667331784774479852898573675711054504536246059563274272404067786028543654684109995336313516323257616731618020986434073590890748554792617245765919338478945139423438734407446398109762208547326439238820700486311382059030698883279235655652974490073763703350228761615057811718526836440194269792919405416399046053130719616056828422846815521041589974657137318856844002357723019820044710321537478884104239711782221889710520721658582956730136477788994660347283169857538883675695899577420990741585576413928525908277330604393366317337315987570797037376741144081800525528390355861366631565401716268144183801238852121497737820927861781540452849163716974651762199984518500426481993612048478281796408089906723752250606204076717224217249342717561364125922427100178662057012264329443633636691356315344679884554958353521223814919001941949139913315853144115847750094686098302553022341760953462191162954217344233698601784268766801101370245042295823609374805496771875654475313729317256556586611281791620775138320668875676124200611446940601059861982676789216302161818378817752950473797194405704507239589258490193931274622129171826364670786269487291400007980862303765945493860923638917760448232286380955802756359912542099018095311735461193695325242123875388911777970628574857543078012635658755262499052439084881938208489429151302964039862388793232166940425369568591944638039384139287561090266926938784441080257341517260709448724578202900722392889363511535300166817827333346441289847347494882897203890075860237976502190487001950366964282917551363932636480129905911217535298247138727599487570565316971908220638931783539730319235123944164287376059949137548114738918284712742653559181688126229863142108131992450744404305686449589428899754677037625733996222250975895188017630027990782862490445002193991046848826349038194030813171440400820912753604751246107297339123542499394099705920040817845016340969325133614711575924314947841122894257771979604238735325459647312206785623272558741977807242658856395087339605849178247740718044379121583999075077608183911795877134671664940832325794304604350448701722704156577929034555638863400238755792664378069011388366816539677352400959184083248296022899075270031614271322152417905880889987362880992545670370281205026323273388502065323463023550521507516277318184982250250594536629770655638722051571049327076067796414869891691233039253298900248498636661186695472398254161354986940857185369509708962558967696933019127087999010709893679647164525555737392706088123529905632411533027397879193720811639290318984267667867278359355460984640965719057414830466527453095063322830241421042097698246293178445261074370881522103735056537446067015051437693718874044101630750880384587568813967152471393600703012023829040325642380599032921068267753982608545845278500414526479834008372850625450111636239284746294547908394717916321132641153551956669125002773416504797894203331474350742796539034090073830877830867585698262322615754996320088374367204910210930192979258273634151929007431685030686933948071887701091768775662430343640959485767456186002280254421721818564839744722899706827918960125720223989474041065112916623026599334432027678719242389639471627473743777394280177793048270898400214728567772515235919642288545291495651186341393720028568315429063300015450726616357517737281813716875765141189528685185917351072537225685221458569413377020170236945988935480564073215674294078751690234992408633872687543607014640352836920711990051452033365370240096776849508628499028877656968573312864992470908435158141279297283346216796032329759015170666014793476203344267571588551393641464905746356601010564268727963947492626049075870263988147781359730602458287253897077675569325425071400603440984904474583787291132456791741199542900073304096413269030802022458213793223542989068790926045490010652926961715696994416255884142629502682026236860436579355807585081891507037401012681818269916077746959652450542873264354215687809293361411302500703238127295149360173830882059841263420020123552300459944677157730907921783794190767016872513121806805991825641513429203927205468010222379149743089387985464937405457011030788548867528040884517752626140087425089707377681356301283098165539354251013108090109517207900036601078834028646938108020171683274726704518801295016336388097068306035521294497040367959381572417365057905253081006962409622138346248445616055464732125229779887936364453530783648788863170465797645598895349077738674853019113456817714600784585076002856396511656475638138301675985774288738768130691206284172659032504694054849292708345076441861462949996868736264113658224033563019669370001255574697020036361619198248698292123344862247546005465700681527903874024382677542251496724408574404788604228561738578112578627786396185431872360089860129797065786100715075777812942317993813628273440831184048638048732686346446124939455537549306154850591275323532247091659072329870293524288216355674636974754085045657832760471324705100170652989571739666101732657705717456559946559479620081796627102714633233534562081069285514399233914760441769839069982588352920134798226435632026946229944420340132770706748660915450382855757540039779774756181900717713111646385622628004625313724200253655465170255769229383736848210647972786659256328698723294568467055520644655250544645825146273408712105374586751384374293424785858830030484285831894688489746931473783496662412237304865346275059144247133435472504895911659876062005455928502985934739524486301695124000458528151301115382990028248251451494138530108214299238539856906798558093627516782501713321742571030926847006641119699662526677092987531473385653417482103094858299772034722874915684378826091835151581564065230383194942816331330680697681137209762037540918583225135825776565143411715892821518586854704441670267602076531537966222250568798320079001605692979347681648989870735278707452965395020506369906366599591008802382858639543560817561086425704776743095944634667358177110741486566975178579364023797239078497240239366766083461617623406041213732034366725788415866191152320201786977342631863279735082789105584497223995770987884183408108003747399013812690775406325437898188709877040461230765149091571575431304476951101712437630998065561246148394110297664416429235874298813961135346641318944358083134115479923844300976567745038852536709910274443554526342306340680079070065911276591454099832685880213921758713475424768827826209799813129145797466518650994531330549954648319397171115102098728112547313331914641012756528644851509805406223629970483976177598525073033455149250104215285173873503296176638824280953188022654170263493219238002050648661788798975693229909633176708532560531875606067896897623951891620305533984463415523546361638203637414714106434311131969255080538943183496799196657982794761683927343285258943416284163296764890824521483679767522327846202341434399685630599548359816454026826463492520580357579645731557495676447837252770638947640696205195822239958739160491596301814156692759838086003426508388522146351520192288313859580523951973680827464710532745846971806792893835389536609229710595887735226616080650653140301585463754238431873528194393476921166719531787582731464202309042642454959005127159427068170612847406800637978797263837108038454398563303967294588492786860877051746955780901204414536027742554073790564483818643628733828114286748698476197759353295527689071094527197134673932026205875603787862333990711908209210103680495809823560687398215085261856277195847068268957401643542342378319738725523678256892587356757663378626975675762555837162842113050362219423804461947429150598908882815969841982352888180018160120417441503131410354943967026870847913983390649302460936029582804698137841945056661266471992215030064554170776290977250960796652579129107672022671074749311767769772372962008746438942627225327020167194819388342011621479185003662889458008927437464731718307070791438266074395611269894139021776022172182193517161552608233125548307892307619285677377502838257617651880704385224337820681174421187816943910114266195074504953617852258575987343740075095634947672575029765499236545110920989553097796919959511168827814447566216889968681648995935309510226655277498883500273902629856549011099252701059935210160220206732412620632640806031793701339738426624731034667251225480685969295168767710695299503842704937389434316573980262131863170996093881691636661036705873521403094452768885498310898858277840779102136796639799714860570338317732622273130419085645943453960063075331535158698609924691936562247687105906621190843347982614811683683464183148106605434051409824318853869136256055389698292031735452355217460265010294012908556368567387858326447314066029914069226403075356078386540113887934934267066118853801796846269457835061901175575089721976667244135296960709573036532799069129053928394115341341967315365929275146366186061432165202192666444035318843511586627326695898611957280505068862278562978667288332743034245012419714341296866746585001730075467261183932180074571356262500800849818628522869199696479467223590965700019211166169646547976977236656726605735310087026023722466930168552778605390282380479709846641909256688695622997977636300883158293670851267717334372646286984748146140990933565804359574909046748091900160359245575271734710873898546656134240372395942993606748688673964317710249352837019649338043741766083988881699381910597247539748715533475384483906345076501344409984813074528459657978752663390427309660204666363769537454363119180269667695595830553301415780224552905814850855375337433972719315471043992746242843952652320409963650463002778008830087633617270250840396620953865539798510185879537231160104836076561321159575534843662490696084316873051957053820392152312790080080034102496822726768396736280458482921025015766366615915739864711355521279875861429047873314214238543199717357169929382279724431763139823777178856153905141980606454694953925758884179675056828776795625717028826488492149247925279602074152618581874640763988288712113585085381677040696617972828071541140098712095181288692279046516205574135383375298917290561674273163633087088329297465193070011620863751313024164580976963121502749347617355944672398816078998272250023477631003161224254950150974114396053050630486536626199663926317123289615466012165817539366098047352086089002899232319393470868298744520355582672399270997367555451890756599195619619233185781446280515514890461090556098167286389313170286617641080176659930577401974820852599575245861139412771790120181685944965649518803507593130480287439510842814909796858701599171408232071540040421297013876315772286401280049028148799417489402626783799293120587603593892634111211687194677600637591462005086090560742877202579003987724827120334910693275787194980313742671752963153411817246396389897132155863830387626523182661870633893089462269677915906378610098755253921484834170433903157192646591516724082107079104318609612533479429057379164612030856032190021224055907449691483631455367312085217701676504122440622607466067509356406386775104759080808299046173447824774581262182269705349703879558039098138874404281349727251629958906095879039599929671607808534225629711319706988788488986818594604042351206716320789875079080810180769376952680104257965170022681168591084224919136364548220369112247012577443905455500207722952142672653494353533030885919770744476125833398434264895351120382378641712133290327570037493197280792228808289775950248095006192747335840131439680355087205351095980202067540742716440393999078336910659110694174596127228058555951325916767536694617362003262963585326776008944214240066986023559407186104773985805305666091117069411528322787093684703097714330457855929684038471973731087199105444674038637352375986082414325433387601929082792215225378341118749403514907915530982734067561013505769249908959532795235358806342245389951493643729568761241996215765374721199493274659285313878997152226787708442614258912584781381623819931141666585210006191811847897412862697250704052972553899061853433901815774625716233285642581225653452947925538002309521784612486225151123183909919743471277528476073918063820699117630383640896494007881642531444502071420355922571415785318592485205091476774219903316356465306003278254878016399687298279923596816473509055198338993017835392522836736436860869028208462318954387757971031500620151188257809029007136922324265434781287430407829300134226241332739342866773422173611466587853093119150921464981778842534457247861903775997620370462374621535602124940262051362250330294596023999562336792740887111555220506531531312976577493683914508628134364504485240731704276588793952280119294181618563888943365413386350937553665858918257500863666179230146602152717902584696878636457655946504366982384059245436938541936926847184179952102694969554767180269556480440675000411047149826036504087170270043449234824083331831038162893444149806867136120258157476060525812239882770993569654174290539981095884055793694259330066291137003852335108781986305508824170282671152928765046208755084832019132162093192026836724856958144335025300063495845193376519403696487820473307826127544523973109241952436280013276697557610038460802950023717864588134891999251951639894282742173253146537894044632129962498901858183800289830478661675662593940075252273662301527840882792012501891121003578205675036155659983519311604751737622256902906630880127425414572405772560879418921806048991106780922958517405766139361102769308398024124001610099490639595205749839199586823135442789536653776486060961030443309051496154886638785658605172637317713380503962609927690540677840201752450537970983733487328635663938595214780152983876458812988476317640127248303752013914406448296477995220106232945231346834695883599911254673821543938842752221010772336672220425189641439031896218371097807331564117808253003841210532053741699081339188914087865087663508041763632501221743527963719432805462888128333119446878488226893432072475175699529551638836968417867728311640333074335571547708288936682405652931699232397988618099113137376859930449976523109177181157938328192705290155373557693576690478924659473863694261537143310287528136749446197737163696192048589276490033763517989823289226799408581359162557183057983720523181928022289945564447971087894955988911076330810134479293448337218175922168302957568057790283180800103739074008849556791729160672441250148723125502651590644826012915014228282570996764268089819161058621327695752202072282160635196343398068657658776701299769979203454199050183006857960904285377845728240084397335670997526758566968542606544621520975846837809685315330445114835709696340820133284766512944362981828260837252364857514350288049657638254549784098687683988342161819891120761772583946878690761569863017111196185287695959909566559409805957043039132316653126098158204688779885540311049341669028578418986172862254957692071075421929420251686873072375786758008050062092573833501829962529203027861448688463386935721342522011709572036315148325303830761006428828494152077926427284599341816100672591288653641999363279980095977765692172816734064038315375691198366125278968174951819105743936875045682811626977514822599126185008595491862445090964219749728245013931113395789186207056940510103728313388004422770135613764601828562096164981482138229421683431277421513931312720826072343587298962263453723111158080104511263678061721795804214793632825469658247071407186498437244277855143501226033841558698470406279309760520277497946370964327385571038804836984982415020856199822649131885157868221052331672869205547813070000633672486827271067998768391614443685346829583947372681412244627185910633389265576271266213221623158851684160818697380767681122792043909783321364606060945986884588083888138453736130589056903994762937467190561764335672280591728025870183991260661088943808285511769598946973451728169728099416621255476710047464367776980100344412169113065200292853045309253788599278857822473957392384838590559859912242150271260271436188631247899585817955910210049311178963883513327809975682183402220096177892123101882400319291656618130780295704382418173656606150129452232437964551564554632331602808264334684364325308984037826942322301597827922389147652689772337507678218455346756786511831985672806748835268981510851476018575037350387837081411028407053529219033011267549190784941232149979522848765823195681032669886111762707440279011525842740567536659082680429278289815589384373893767415666067365490001072751869857056819626105206398299910471905996460620307117624049008009301452357887810329493744383946828593435041882701808975603091786185591470121447288257211889609203381997800674002644425917286151624832277131162246908397931964236245008905015350049122386659635861503038819522762439714082377915631882138119116502461759706019168707819620941518480001232572131276338170457324960164676829951440053358889113866026856107277801847600581947583988179130048228455918894896460326900356707715674651312055555128997787493148118187810064666320509085956464720210720691241774906648813978815086598164804616373631480690287399310396150028832487465607238038331086666422015772425819025861414366376108480904896525872089983699035734032885644682232673253454213571406983517593422221318590108942258529866970416226204879899202095180154386312367638032551717318133734687607274468144245264179214094359746955181772865540679702206453016072778759886253908162521760146668072893438287575321871659205266369046448719546736700556538657567752341980761943623226475524051445214808332776196301790260613914124887150305980873455318354932988776764886817790278576735365195614609588370330179529719950559640916702111179001097225341933149688709851077964159352414872033316083190896317801565718642822712177423537313794207259716182677108341357893263069318399226559050046521050600019089459606578232376496781215722217176897371405818102035826388682015684757239793809432369079097408583576933935996780816208225932788982235744723680045594049679330894712978314022533749733428353159273277548764840928649481142868827050200477261196271033570711514926248896387218546291171629179871816654232149359900415514618818270209940328526227567095059727555397508282281086603072810941610248943633396471579280896786805897934306127523515779354162501582022836923790267505359198164729782530639922610628804009822892699581561262260779321673270439481632006259925577257428310722269826737974062896230268115482260262406343754725585399638294002184217008531552137120923305951239220406526501768591302129583014431600283126315573378699400468361378871267836147371302763334404350156198277367814441315947923223132447767699348435778594842746106948314338132048469231306133176990566926891477399397381581926426547749161140812407817961229655827877656117772744480128275331888433139999262924312862607898370392325071190364289977783116936166736001971473688170378424036918236389287495331716834918487794059986992243290306260829936526457497537367956439684576290286358537120872618238366813029952179346842210075441977029877605892403545187972195890533980727348163553121151321552150663890236033626110896844443321506016074453215902604855309161338429656384542192757274091903687955594070086729045744547840327476960124444300459471787057490666996975658650412900391087381440933578662320934156630717346370925843390892472298551885345943645096333774373260911686100713148504435806125309247820444101462542990007756961956538538919098704750019468575274412044764746881624782172140521627264839420344422374006894458226493181431417160334472989205067200154669013573853277819016586116686226617130607909326467216213667659437808389659158464852392235363957146524855821751129647338865425586597935349880190966835050128894559978498943806174967317449139924303010988397701108193304579266812212541451482021534888631634034271506300114590498881678667750176324943893461470493695179947902899872219554882782715133014191945304146640758641937851840506900487830530809486801638389207952382096314065267339230144034880130059732779303436836574714549407558419393974030266535629296590944395250644359858094572989734609350079689068631419779694971562230518893922270874880960035068061277086372233489532237260980169457353203909561881157058248425878123518123112243461253056389179288203221953046538919954311527165370882383911585145311852844815212096912519251729322981610713466080611410306455721296204951103632422239893289334683392853334873503600269950722234370367133277738005999053689414790535291068338620356825635654148687223169352303285588466045046759113144102409251824159471499959818962540062799204716314952390456491826030584070290005203832137775815956773666449884222281195157743654142144983367907670410910725220539513421485073519585437995529710203739372115894697515227687414819062005561613018462335982854574524004610222441590776410983115358653899585437176883489185626345088317932680319863277401869206401644234051927922694735935034325247899572668329452955747830685555678531061244977064222076228658045940959351132661926434198550836059487954270662862665502644691054019419717660626282877076169538338238268166198607364766593136099659040788629273476033056274743842377259738478430670337237243939054664906951681530787431467361744203945784231074497440532311350330238876642297060134644662828622785790473755134489110840838909877426535827515046735851679941688584829082840052626508143493402524689833457015832361070349818844442819585463978863983747907029629906961344223520188169670129127416701837549970618810705760653517600028611436433030904752886437020452206350985041980071630278935485815660294277762236251775730110834228126025577972115360637668042704939624852773307872966753328340241981148608890804089681951971832911904591314860692613081528691641081316998619458457602670549367230195860922022801783384899502064165770175630113513588087556317688147248330254663139357580154028327203915173493689191011964341821182353200264485707488174679547420203536133582263181379448445222346536784381761880762710178641711528966101410930259713160976647831764827688152434495227913785209818095179096756891191233685788532198557430127314629215949934585689521650333189770731644693469364099755941183107832691197650937519258878339881867178504952499030781692085689415224113267574404835861390260796735828490713311908359795858478282048343883089982022202804805109492847133557508471116968014118428983917695026506853801806396572047610213381473711613681878217982667510137765922908846579857666192639187428594725728740140618379604095776238968968893842991433803255000770513319691006436576430818162502975482017548972650240382806405105649772175877190559380793930043219965734408823032104681315363494786890296410477514702521298979752753139864998983952759745500849619454964233809950553849507900516174977244417170989732701103094404707409872775006876141060196425090844855627240150833340463477114859530892136090775508314581333090145884146236242564411050468098058029647885373168528832798363910874118931879187217780872347554210109808297231070514074235362120277118118232186445032862297573802139224693842666975463777479298402992201346980060020512807468627839582531181486895196053219008963494594808452012579476227636197408512531188446723314811350180056279732639698611152770193679183026250595859487514130344503787828233422735899773542338291684348047863283173964073100450918151373457366398656221803061203626669518028596207120854590350405751727283908818248555747975795203257104004220027747909819113686607128205795146659213263298951587385351143984976807969869253289854296385354556469850368455171686743806795947335882765496202921011613708547252245473566772680868076887438349245611590238723532676816543710961552972159035508643763773391132272619921007463323629961336961029836086173281642244420456137613028795274642424351039092840406205079054973117596665482008891424140910927850092202391653388432614271183422496791667136346702674977216672620277023273696974055632815304711291587247631021145045743115134494407457311469770254429652365947499373922681815080306406393828838426655525281123091622286092984868225342167493662970423549229997129243828019700941294868729877444527464538987020017128141708290749900490519784584125950888474016794732967982244925886026978207462004087531487445375789134239526808907396460841426724721266010219168026144163314440842318699715615056111085288521187131736974823684245663724932738814264978930201551771813548581620553821482115613651014633454954619968293952559000717078422537020681542211146279041978343424862233923455218589292951219995148588844268689717621700457545326341136776052261815218271352293006292202394201090691534767374348867947569241578037339472427327818682579891652547283690406516503284808321620782093783709259884470025959633916768314957069953457909422705210502608187738983732053287332274310018124631664593384455719116733505919383735853830814077150923744509976949054943236181857897111686311958652613405661232621870620114111171151063529337276859637448282344333923788317199054396142166493509948836532501918252240355336902178056214273105627340629377181771053931066580102338903627184860111000508699169486694570462071076418614792265536429497829915798856357914090117421845135127384886699680442888089770293050656905257815058265937943812453014990773687818618203949049420505866235845576610610108352867583325144678384615292358137343908619960624878694976297143932689533977444094390032395630324106043757448137239174450298541121372437518021813585815573740394250554988209458245170697407997050468702662452475636592092342653818647692690812527902911886551437277131832892244820526351881345093456939826946193902909369516488843650494936916978808352757976511891247945972708131953271511049826173367237190253939172841475331174944784577747690208946692809277626099821907818105818565873591587475373865184323466617206367416396737627745159033227805231775321152740783671408183016999520294704206402685844710201007803783964643489227062069145594644807606869819187054588217050612299533335846298870057497854006504180181913505014872593897284003365932953752979069679359439674462532733481190470792189584112927919104890774352217559808564151265968780252620791254693146950632188256512795070215535477078095078032430888424766985934240469464758360054384205267188966157288738093843613034638937022721629245577816331259760362669875299538136086961595452200635078343037548735524788849550642246887637462992447832398671038731592546406901252562518737830340100106535442057911894747982151510217724075340990834573186746408757407438653777470122021275949837852309760453785343086703713724653805249792529835151555072761136388518916671683766183572244413759491923501439733653490301080673807092266050822090662836331174054139204753878508009537763762839216453364359620878407453400671140452418011657372666839425363171966152538186205291706857184777969923716105963843576456818301548623199663217995516861162330139499731710075872703379887846733656153994443816351022081971981920390335035248608681532803536036013651617439521718466350395230190832925069097293485983567957170262286721039690221089743136883183096905679644627397951412289461383303905669807577666260669431512453561354623851925221608693597209451931656211830905054079101211738279484336708744893612627079963066221086755998865290928988251604108628558203752640940238995403851098108935419296056321969374234099016313674578568167927349506646795093405630121335426362075111429291668394379362221735969021527217476803072770758845630897449384460196192376138527838916707966120215644599623299095630587789247423835631687653514572019881041122624352769816607651007422762863501775771512137682338865210009372503761560233661617100378999328803538678788073479345345981427871327321962602609054127479292247290438868250544632618063652336096106505468087754573560101118615218811785269053648553294321891720489738450971235158485395562476171752541028094080921412316507216831795231715352058896559321392132013412053087625214911476151366465601243179674525175173653863262730115491809209475849645362403820774450475765418891847127518251261380088256990908627464606601362460426530118341158488824758846140789441449734625948189238242751383140464600436184930911305553164384682471429470409330081103535929376394502191830453688186912144297128543373338476768727321924399893667091135183826042388430980081003223254242207918461568545968648178444997412650451484562001959913691856563738953670036293258302940134982442175825233673650253114548617277330461276338824197784878847710130476572341967490253643340361579360348702080003502220378791785142909072854575339022945712302342234669053430686927600306077295984217898797076224777404743707732921351402575521701640539373511597254168910881421697920441843153794776802244303632939877736868333605626496617573379869493597876902241689635787832348094105412703728772069984645817761567164702844003401823703768069565995581347739237149847629964279471066300547840070981753757975669306648809482341563335017570886533727229052382923920913505644048353205475652868152788306997535211679824413131375556914662212486502994219689757921760022543512293412859429465453568819363856017642173206341467714067486843267284103221687623015920441287676995756586063333890910084248315940260803411415680353999097477016493036385290580553797712924276368600012931301767855488830162762739834888933608129603758500078292221038014419201738643923712921942388105681257928643703539804195533652336438763169198553415655046405464997595149964483941582580326835361526039754131158820996222515639103356587511897555153049790188972536807912725169959273196421346371768004113927107981352287372058453863784727295467439129718735226539196906671064487592192861650173959380717306067066953030797862700680762976645067797580315409368581592961919393877775986310637230753292810044387568449842787809694567472655283700127059545757434176406586393655336613815148132373426098089903411823445127534159777705689755269519515185345149701137716141419006199500263719680660203647679007979537710384913302027561057583251322557831261050038484994190247755479041322290658847880147382958080826056241675563600485054436896418862854575666636572549723189230732587085792857350861819155090563415828055353206183279236868512149618380689538985886585620439147387255453236025799090208519237522312474840036373183802704502688517558746121896504164232479835717533852669588840590475607472213517900697313757685875342419945587337580011766626029465775670527219824425110377850617485846722829223921396320126017347494337259869119705323924413645932856717762896342613740448485465086756362865093612351899721332214917636928788046308632985258309960933404662823426400840151214656269177415091628110161065766901303047255500239194594735765347679574442094529485924017366000633150316220667858669951179223936950845399917538320053754012859504741208498718233048213235297232873601796583527039847442424760520895226044341825242459237823625939120681738786810158296822315160428126613382681771916520309076407999369175284684919979991455744159266967574791006337824915057479250555618364559584583538955743467146943290187107798731924584132929276503271498246971199932595441999085323863510471041722604467171824433356045111725132731156054635343300661343427704997690363364409432351412104333554127115087708205413870693574777028111815240263240315829432893817989819526935362934719392300134925311042446130538703335262448682304842718112684697915759511981357433358161087632741322230973406228119828379578053446681611354028251086101701860920172409043082997138343347929871352411856169553900425909232175778813923309554287863987670880164647911900329041623067726206610559687370469756003412532400735961470928431756989222030614939253824004032960006033752658341262497551442934085419510191848778209004850251208075875945952098869378881716483687527120500443372200235728206977411858019030982934368967280991624115748583766746282818702171188966747995436138863471122694504513423112287058609494753015198792933884645067312508211355150788332395546460965654782600908946153589052092585541459342269319653590147738933006238677401697821175019516273687154795855014085889158023218622280589991751162370222576111454377487200159771511476507336932668131403054009971896034529808948570260847159904138692157351540773621720893637604294753751774255151587764180055316820661031776101779832825974025328377568660803463480606528718217997268996779469318709895630049427059519278315322710031068746080682401065054422531055154974583905504850229678391005636637091334471003215927679975676185780216319627240217318035603939806141855769209766598768197128016376073278243195998957146807274905090469155111278288808370496242438244872876040348007990519868380990270502993296881991398187964357660127372836372341446802051156450878529298015421625976753196662554182315102093850878726944172218849169864283988730337506650832974959413813846520233622252055070704892299387717157101227676116858316092082554867701012224656482536567196413018222617684828132490286228470792050965652250499856540237293823400105386219268138511476507688702325177427499248442714377539141519257165543726911283083643064222788279552273933213128736017800481640171122471830726902700876502529883025306478260587613147471937494744582690027850041047327929840903838377089718786020002424191318151952976823244173055466726426061356001637539492243949874380327108114654722541491378632771253258142682521689430246905783439447166041570842525030305246316934149763685071564247118700252488210534560826119053574094790570348586647171826193990147694312832539385188953362123605487479130091169649618266451294752150366493510806100130690789561066571785051704070487224676632485126948286292765791410479574960259807346099727069830513673362538686518745447713755656520854811466315431791941484152533216508562009901978679173986008941426405295907009726896552841608102618177605576569453896869493665352360922834574814895159889574340684379436285197117283843174501232350165601404094236962120774617032241953605143510128723241426168680444692377027384962649738433661761499311823027253909128397255894417313982352310516226320756554523609756747546009300802011611339575087900401841063709120950982664161543999557561272175307125082296156585389111286732163895216830622394076917723647594768671174528000800786175311967884355862035056393808157123873681378121256957059140580917405472033830424200042166445239674289168519185883748036170227926849143955542167060334618534163669631324320364493144914169027337339039864279678565523244248457213234257383192719160004214392094294443675407096265490645469895280975934784101079675740876281875706072409119540985850125399154253631555837378183171980146597673006941152625238092427276561116490950728909556809218754710985948288299140277567710222025434031688868005392776603666228118269124048543100876792604272440074193146775536712782888292292073211592457932658069130779485134390127419683752646891693498050035669868842323565255471217559637838359345912483377755555341708971578177118448368141766085166419539057091469466585306297494841890206345847562939446497654575525218967017979214778527269492857834402512923443557709613860806560412077213473771081784447147353355275745808333021781926887417018456330243789854300919905619501563169112507295886166143963029149644233057211374174619105683167627623541255304903150866058774718775032520885702794893182435621856929328358832214256617798503169995576080700573314651633656032505160573243539580141231752412303081088588729763298692193814594256308345085548550111701757778835036932022226792439537138048000719190320758863374266643183652131183990474625424765473961953440144925776850573755259499233208339651503948145344980930347350943475669727329285643366449725537296868239054064374362572089549933847206603223108385401775447302118990327724356794685008067367139419458633614615563004453526268971131725200415669300727743676751537074125767013895063636481937514364098382772094013559438816163361530632267563323707633861730241266940871722218570680631335918308106649335709985737600983889842016708014268269887129937322710776306394921004830106817424432902732560000051856308739683825573735444932778253018287299157201479534544657269404044659524230470554715087041254046744056441324658377673111716650835296120063518671508979844412323207818432302401578703477604312352188967228081472852203195000587743738404706086608760061330836169147028691236616148916784095912444607364470169132068906464523466748695342348046581574045121533475234735611822881754776613711262439205504889618963279674486483298398567860634046562535043504876190071483977800657214563650530771977681720403876714944926374870008147220482898878272347535066811367143149255160136972538769367125666853987297374317691503175256528389717403639760204418687223041479747007889872403757188692220089906223381766668822608445578619776063599701385317531752542956763563709417334225717772969013787473865645759371875905223487894718683188098011281497412702483425621106885716310314236324181511131012295138992488600335307532420721834484748413803971753968978445923268815682732384488676330205212668613433236782619160609961688414221142770259395064091328482350141208341760256026810542157378741792837418459832389456249573007187247478761742457388191303684025904946348028307039455043775615900530127332024128301015595342368666990815072072468381379264128708533772945163000330280112647709624464732403692136430513496804607965254586441790929567931240372359739017585250285845926645807984870941013757912662487955562096548431166218594093120138189438178656071068616965277511332266211350076739071875294042000971504211647542999534619741746833113953424109982433833513956030882583030580169945934963394620106571570249511382127194193612062066000235000796466394169844154002919868283262029785604762866091907510100821448474095316528957752394086379027854532007860897454785925917359117360906909523654336464092965066856839677235758475508281663191838170584600375762380208402492386101251242603062398456954915193283224873770469299417218992666349085282055631344573039563342096759691228200879482193927061408424918318645671346157501925402094340686775176198635257418068279442123516001974277625576810352347400784364029978091387297906713084779385486572410005172834864404806074854098492651496752840446353435592235723173018995804643529014423602536478680670743912029554517227790185648481213785000156914749637376696390296248995826900725844949699416734747488295564228836148427769142240582738542290524518945788163598825081226108033503046700074091569401532478685138929980852742821750555926858310642129753514610462455160766886250481070230493800845973611019767512722010137373293123326412574301849455286581044461392732557375560625196450312838307849487733078746279448475876403506457407238607294512593547657328072725304115458445317669677265052318667346691464045535032895682014547298847972368830373459888249912769508148297048030969256565986055529851191379636377016980005254258069928171319072268632476144004580332699405458146292534464738494529097652752258346532208719259863491132037191384427019030932113778658029847424311405702012232904724584879472006257559399084389217581461819754423552744418602335254610237741061143189676864429404764388886924031161927064462749518293422975006213138560056613863468810063364208402343517840596859684252348504145258115553092728362186979032308060676895952828696440566259827007702300760031801197894875076925525034212479474944801352055897382574011920196352099150608669371859999636763432909039724854531660724952469615726975669081218759712186487783920894026228658463096464559330945907305907655555231927850821392254332460114659077320174318514351349502664920517505987193198983206515038942407521734274408382544724106945080319196822653902259244669441042688082646046089836387907658467327563191564437229976821954781382744268070454977146812981551666250623593106117216177157473354770783874231844120720056911099382130972074459459385082102574981743652541083115879088324784455912708113372369746978453068913397713760929563128097793853512882783657690987569073723768953918531852287907903742337057616046828556499614983399777349001572490329942379190054185395890528902376630828802003467382189021180333052095655699882688480272387579586138255074221628967365737936398819797482397102536655415197542348739859631492944275186517001734729388650467614910438207933261496166161664817961307435429246147974979430945159744597456887306591208911051839931348332850971484804819837107561589692642361375682627511667046241366791756611668116334514655541826104245220313732398826139704009619705412759436474782369872201131916045986272413941982792763846709004582927994655294910425751619543603062271013422135245843541574857809079123914990731514564311087107305893521679720858115175999918436530939451211835617449432393983270753569120185710026840019277944281136626081575056128712362464228500151409661942482477815446619984591175562926447179367728417320760692553711961510490493608275354783988418810206972181390028748083921260497411563479666172825545259761917799734050755568058365084105220060755641956501283277376290994904698640923905909154638559993724544768466312168145311564696383534304626453931813235495606565224174389594673998951597541887641402294811325257307078941984609306402791793862857825509171740260499288969617984209433605257928077476750104902039939413510178041202197864871750577588770777234292168102223981468523689129203243894207131089390275166175195198824014067630432216345449614969037555845731441242362720169112714911045092721352068115347441535530502633309226577607850593619637930981285727017579565802380096114708435032602199028744474720915382808243631551476074331818258009975921715686577837648356722289645832453925749810121790668905932347908733077638803327102680883567053005677920322492882372543686581035637357224456076979642129982904092953329054069145618988197112487838563419253134160600336305704301278540378189834058181409997846263340269028297531153210013919913883865878005786886052163712418417587275904756791488586429117960084011201767728863018698206817242057442886597120051997608426274469558360724435650004982461528695496723964393856981134758836246385595874407425997753214595196112789798684370985418702636152498120304982808864596237992606821587713370736641099655673719454080124639341901356755506584503581817470408124710322544941483872715448182158600256618264472776456017439016035315217822847115400715908293443795617885381175050682748953135090637132633749784557001026936020118504321612183452533981049022524449032236715260424738638375376464395861588454161342517487092337069718111425512524901696439543781388112734493853388312508408448641308197166207815669393074925063559421118442822617102822553156757577005794016487093667818100757850449343308202968038352968547760424552218264188828536547747639197511043697257067528397945294103502766807653144115789757617006542183197818463718379315962275693584055698410661405175295970788961664121015944380954836988746930111788389950302262914459567201383067545833348465273685014186446940504107553191351077594997448480357064287586988110827644668685079653360861123258113126016684739711514721637323390385054621061793785711809208954816354015839932506434167943037559004848518639066224850787866002841046370813449420431888323045898861859068620983860306328639039856727862699717821796352849319714851170390135968775940404623254438896973623560163637667644305733391533566526396448322576357746585075233145390181485801229190719853338692938466566818647153279226205271188012027076995582739664038911369521032930838007125159277839599209953868949162856216037371432619536862231153909550470619601435071374148393529856998244662996934796563419778255262940572224067652988140979727061631065423818126488416375969810683560391376891555172194183689639738694940386778984882027941587922866548952427356322639584584739756064007652206263382754227860176791534783911060362842804179025618324165295684919054268623237253377629942622117494008611110473025056662647405934285264660082855184458781623709939385344371920757057072319943338548798711046021779458795462926562828100801694036244526916088947469935784228191739562983568375385094269324745469841355664494833189912896010627887183303234164094042031066686073533168639073957030104983905004958034377096351978821953335283487180549763813038637726875013078535219788596329921077174302381601606270944905763683121734826686729177469845722728474843314735034141743294147893676755593264150982673216131620935635321322353505178690277722905056330545626826550148157644690591572159439080406017749808492872599598003090409000347998507320608794256447730144528328728709186529142575719229785759626892946853103130451049432565434904171102521810751385126886384719759507573407926446323161284828644339830110798430486266973125038053018273603201885779905914602997110612860974041775925433890983482446726011915816482125174796510985235991843011647407662374711280133514022763599474295823014166355257298340304398505485819959583988040173323787881298170232384983959178504695900661869638554025963556712338488742067673415019527339294082888855498702672213838275147253604642217544394731062009867528402602860023393818079523377443849854049041687153611025215854404916611955968610335100553030202024848934370297203759712732424639860194793687416420511443877366970014232721575244787381614736564460487672467919609884043178156354894236995825727644514296147278960724676025841162064258949283758412312023979561274899240552175992954851460961702632536844156320121676814714045688625582809535200550954765672592744388272568273848590081245557891086920919535064780641164850307701500474282491183054855549932817973077033400028865213531881751433812562754150897616317989527275031856206185239647284579453343224324825830384549207908895682625432526817751891164968919089703268265543572415477483629257133507469936215422347607511673517335848248211514328696844339637248717058210304903677863296183155125752616925740587054235385738225122647729473946671677450356803421577211522489441678774392954285229798124465938009006823187212257036625012706317327186061936063248737836298375197490416528843637524358070000950983257878496513050918835395047369710261167723766731808463415715421229876044643219194499938600284683943757017824181345386063847796234728884155003463368964097955630431568007890238280317162015432749911685891848872779450912982160133519369454113287537588117818420204083621657633144176018433197017763930766368263223073815596761776589839707610795224829077537301007476012693128254579934976965448704652684428694226374435838426722410697057885429115197020550040132021155356820542771193676162544196740761098346662787693231765910692931120427658228955661347562584400176312334846569423129357775632976263112653324400933224366492249569269905658710762752537768525180774229517321636215737207430685504693803481522434849229742604032163754828790494517048147235421561562174375560569563743905674493784718694394849116435136028319795297589162978930522816163744802686786979081755792517551275251725902015415237152985942818293658467691510708036795422589956354132318093316386463641742924995566912354111955533010003627843900195373700805786425917939940255932405734526519461853247895267858083601939854586334511895453961222510700500369650802071916334400558133618594148340483805682282940906787680978809366706356116182763555175556725109845315310520005286861106871008755186010500865728911630947226448573420537549280020923215336781975322177229582906522373303500515674501984256317048106544294598986390036965510544839696004036819212121006593296229219673560911133962498897270260478251307271068764437038316993527265471100702833203242191060743740271521176812599339860903057397793238945646055033684984715082107675576084881189351576935593917994618245876236716356988346480505392858783283717335540151878287701152758764840676827199126302482262918426813286028981519073576901939517490667543521713983656506499903665255214306744062778947162470226096252857602630408496033464543705613523005221741156101104007588068656686453320150298137268074844311470050062315403642991327022075279640883431162542273242440621244068667667983082574233844349859735382670525000279606893661062607429672447928393096901527921946591118710766610562721360901946453507156157761805897903817279489495475019044424322558896202374902925342696546512957921791964189535894221521116212956924283594449418928584986691785753054625726618271701331713208226273609643070781710375622956702968705098749739546513554715455425153941055887784239543700751191142519746634466028426916803962895335922254230561199100382456794896964995566809944631585470882794154667065347253213518635893554085187041237631118365903127358028134125065702777148310557569325989697565215225122340344247910709893224242467623476081967158350193481206084068840724742688415696875957452746907027906944863850417379283448074512313512764057370580358105448398027339585816482326591012918442139357005865367955939738270184017559241396139542981170651328741918444002298444567691959895152355157568148265336102755317428084699709098472378168548299583038727667848123607533250672688873077344280021111014515667507464627787475663993978608955857635431941536654732684576695187691514038743723398998672165156239466797650261668860467149931252325879169743095464515729563459834559358792334753145877653830180625842021057500662802122033158522960121310579823188624466403847236079324290364499740680049153620657535566352308294740007807700229320751185756005650812851952608949539866274122088656252116843608444683378276715411818331519546035911857156748536802093221988292538251463952945100820529596169214890821645698234195280551722424468512137952788241191588453108766239643765212197262237511082156971620001194622724620520247461729609788757146682014431817709808320474551971719443567771635928394232875828341650143100708232452107873098812353614590049158427000793471534515094400284288629673966854091561367410188878590703637689525560978887196065265158181003259292897500674300424186524841646400850345362578058281570542071823239632447947986002170656449642566761112647230613437861949770649199639140878157285704245028333347116197172039077617891072323258536152070557606289603409303118698265967322743878241810646658129011775698840845392765384067652637874827768645514356887317085708257203449549217387218970318022682495003762675757136540834117662454046662361656420900726871208919593118605130118574835241118179821531086337298446610757753650808600709328574888517087693113924797045922566798655565216683325690897790255854725652548634292973459781583674121864199831218881962854884568732749017777490759163770872051716689052804843072676580591056447697105776028033882449991035795265125479099592456277005793044598863623081006372055122798251842967363623088997122915866459987183292645003103465466677462441749245759554067902301939688700966178451446431310596427179368678759164505222559283449348465248079596326381862828893848888407602726247465787342005720610358560196276647466493226511931042331226053793140227137925696013420352253958986370604069501544791342421614030818377132470825888557387966480914851957213001423632881347796896210392402227575872076976883778136452322735581274660045724279852122327002772852549109162915262041266332738518873384505351885519093228272965611773982452243936397690644486422635228517116363340017758238238391654664707364431960229890712277527107126789999578969328526615140749131911863208570862755235325060842095755598364096212583921116048198399574923931093640949171296840614953129315526359235651070206742102595097015691450899508899719183016645722353405067749652512608940307972129085652398022940454075591120277921036807678344832842892824414405191376536981971862506118324662599773028541300129867148730257213068000496316291160846168737279704433568676293491112474017028027958605460464494013621975698958713111956692375497417796041373736016349710388362070946539159055938966180263329974958025248824689554477755259408573067639120266825832498809812807842105272689025135824657385108815165634879119174690203964265075928333703533461151016216071030471593605589835190948226643126336068359262661340594668285303732161753837753162216916888708152752485349872729051009386136087907183494642564394359792092064449211624036564102569924385822171984625037226512940923611934912329820663431234803712390936945344939857442907288033032984533162846265908155450829104404660604298993073665444620743355334083136396350285460419912823925778647762263829387771524708876355529861066864858893811675748891760060511145252153814392065479526824815870129367834765573698610600737189097436348774076776270464364226992844733183474360604378778572227142420104623652703348845678551138861585923805230096154945180802414407058552061976702230776285326394945313268254379464212109007375466864893957095861455028073331908692387972470052890045264883350947053496892689769906919598177665943565122958632301804531979859178228137453527437987154694020817057606392642991440528489215642385402884855726278060623091040101766784271940379462595374090081803766192929385263745546098612025401290100333114571829848253703541347422844402635447618199419889990564803354854080625207535898292879421762293235087989031373974772837226348091052771672362083663708416752988134691242796885981557228893748552737795656925670728151895874029333252036734416530574990756489620197172589672765119788768469940099657881749539317755373390938191557966009582367995966649948363529619589036510895970284527973977346796851844149633126541255090679160896366097785785755897555300949189531450320040748333856787471815898662474422990399285661581892317910910711168015726772535171541471694720123887246162290145632040208764005542063634195249415837718538479249106301216163813870036770719710913600223721744662216358563178108378993305843055102285966019492823737372948576741034057339888571553478952991054582384728135422983990151553302974315027741188856574981208041473787034423307800106159094513246874639991297131479510857512516744341791146203622107759231710957350572261639999114558758102446360251463503409579717896049759620616051497370817259578410276543883976176877734072006988836947553098033573841162498061316216524156412065426056325228877253205653202613790210179557904603108757170810510393892423184357524796235197817430449383281719607270312839657804716858353952751116983801731483891627771959296049153831774565976180491957384210351500080799619656372024885183205849471276316404383372994635276607515314875065322105921906156464149207455919979743446363000412198451906179062084863985129615113521275374978512859658329575040574926925911333348927189734852831833239309103004388691916193300634627250780100599384453635288068754829640400129698795308975970084994878683888642791945314122391484924162649963510981127975494988947713287525862276445283242616071000975375841689412508948063428095911513495259952924034199177411252248743273534914066310663726718849232716452398506709840675814566759851579760828389325420471222368072803986854774806226485422349736284069074609562010539520474658936354998483447685296459136341433566734741383715085659743839564113017782241447395962603097097752082034670925449769168234087063839367361912760818124225187388034995427067592647631374706742008377045619871194617379522249462213561518741512200432444637017505179368404734621421684787468460772274609016361473248015948525096356173563185390955113942056814951958005549379593943315294729025549737140033257009611641963990900249059616888861008184797076649003091718694004400889966264632100170267415690345630233833870901130908430792238344537600233015827528621096962558063667890123944097649805980497640095994122491899255352914099620692547974241052538712324157000776332270281402434922765685934403449463459950427153645493872430617722208132702530101450607468220890301793078030181655612057498405340923564505568926509752390376385712219708252604650935549215219473676709687861854231301532291541151474201607964231820225919971694591497029162138425955955167330621683188059386945628885537983214512684691337680913065633453075339682791076079529049030141902669972665801969887941809379807595917718118974387120972902124508046121592585801880801575489684252342261591830745185875196978752318508283440586946288826456757883394615738566948691232175744905900025384582603850721982023658802576705826283798990332744449954446028000551032669438469129815916091887679533494382655707853628622734760402573845431050078639987003158402791394508074875634945705574473216969515994949815621354392455085411554301507975916093613661942118544543341562030104448834714754151674370610423720330275356825996209513422666512247891189919236157515437027917104283874555466184071514106171071400418154636912569558825336292089166152540566319075013246321724197774415166733678704301735750316717876360423254682592522829277042884864918984365101423354511919375140439063852661671786348328823698290934078769224666875934209294113274246183072145502471800785062328936978702047855079466845705778500485282313097844346875984268826475222341976469926336634855702367691608693238746637453655173804035050447333439547924126900248990590198291762464475372308224425502482304948285387488959133635744618277345205152902825515240822391013547638656849816792824128833910733201272611078872281709286295041301606186905089495293592305514400389293005031447321461360745418879473391347583541035525972482100259955772738991273931155062311144940725594577634015990791680635279085416798622982471630249863399696081674831577264312370184350829491418783540716445191447328398346965584710370493652825687348943181396547465233676877134894031959060242121794387745628534885344156161101024869755923459774924197303827188689697237755571937732363021368609540296695241168595965833760518379895516172079991061315836683117807547708568331553908870252977195249779283599062916516967012396674288592837458642052521189477733613893647130172756341636147656394868748805979419435237542063910126921791182027691512289768184672953025238102417954396562420884495908919268410694601299788227735772878674572885226137710013936377877589572203787198645210865153370856632711219084584485635813837111366877074746823037047769146257378751900068870303560351621317117691650903671983677174457384916497594088238014286744713757505639953546059803205827458909913401936839383906462874053048586433824535057951982389565214757292939410909132705099743699141467013036074673167391455259898104406092079891563249282900888446154934908382742585134000662244498483041589096070313330491495339231127456085157026983928390248941981080796635494509656086421301639890109886204085446181044473198485940278347230946459282351791497853371413197936838883384478505867377509080380208361056121456338413897523064540053147695897151027670135274597465096535836940060900812495365349349232462739964077882661812723675254968158528328714880704806570703341371543895870010477675998601740408484579899689332805303781089650596083483112119669995003893637827329804123768336612245855394640193247323919663338346527170178827675809546604958517828026187028679602435657950824565671804382054136771387783361394789527601823040601761096220093861532277938828851186119855191758847553682850545137690886398945162241993236130879311661035358720843487540520720655418902718015412897174965544571108057815180584694542395102847324437425667784056798017109159285422242987847608312821194641753529624159137862662620888023908447862959499729878092793416842102374974861817230455405521214309948725749810876612427817597608778504051177493919932379130997559526501707089369475999179971887520373384577863896128930055111588583194613159666769425411368621167259194646670746902744061593783401625820549749260831705701076309350758874593972582070197017117952971436394955349908911360571090970675613024444956448597704047392142408476143537118014967036787476088071022693255904495160415622512481974446007492619226706425313449281244911007148610160148781569570935183834689812984196742682324623977303491269706584248621402013311942809504410251394113345927027468073859621353602299887770524015625377431418390940350247522616234062277370479696077784692090597314578394668940065193454207414690190535948303515253921953892127520912799346722996406530082759598660769824898919779963630924590108995852240251412326112826905385060416848546775222904797258492458898071789628519195613631166020950913475468453894367947616977874640430579926526380703627710965142866425205531426951145557275376089653413718233744766837652699728470895402514374207341559096801304943568700803892740368533521176109339108578329155353726010480775970918590531012102354410667343043839540829445381986952470669820916735607412101008089094575281616699961393670220312492094961078031569679075611645444236744883514476163691402526077275974705902033392896262506422446276350529771666723070532457346436565618763537506686129023596476412428444852557474385406116154186984044864783626007926472922334317545465972622441611242257587784589586547887950724034099799349909125762875814085524846172073332354134521560392234627569932785598771589260008049015281456446244347647970726774862315723358238893959705773373224059000543248675841606766866032128840921493463965316221863125409059802269067796230846821773485641954665701848360915965051550804875104572093090938222479511536746255936314537143834379260944983455976084324288035452060388190504958158470419721574072005087987577588023454374827757302610211681831878526658355404751272626459312855819133932946219622772403429345278330257411428263497361064628110554699071145511027235355564136706720215987460106557348269271282611267641965423979947304234644526080109273637217762849062496304250465989745455102600688481307939001865049517837719145102423342872559838479366572442581706558161912064464894079893875002201644396641919116950926486362754057418723659523528071325242056027743681016077767676254990827973776612101528586628667538304796110218725042747270339883175833585547094876388883316758015762135585596226713087883077560393785752889069298797160678900078086442921387074250513471890257415039167562008767523928951812877473303074385555579999847113615788999462368910277746161541457263860669710774444045510439627565499478285202433258345908079905764956449916158548611000495470923663530840011450354618726619407195183999621404060250773927731808625050467064676146324249540147002711932781100686777776244251716544836745352508380739968711605407410036715573985579470102085196905545800884206432863219907497490630807163640701862949525083639586600187395885004644005818207457003767473663550820359273028921020233075004256837657456171726683736853983066378623412123850674559320752411790762058343119944592623774433178003059461866165014279617054700674944675041972395560801191002567162130285877931599712075618317609903734278980676337518816492234816232462044978933489760473919788802162616940587751609061881344160372147094781497047788156264152849746018447751743482833026119199208023688265947245632458224796138673508645727809570689607653483989151483842421351131553995833461898487340071165275304056127022565867778540022923308508643280958239830398452695635845087242979607078040776609611449618851166846450191565936702975109063168294366314749005463490590233120082631402907239917368598425275311490063472625816839119965127199286599114229388630618437543138690379468482392309237891183901501433683616496975278171141056475237674514988281589162545214580047398250549080924841678517856062071017849117293818898436658627440703498556127067251739626040801262587001460562140941983481066598969382990929394120960700999590013174744329094156503218109308840223555598035811166352375863599923420316278514180324099827184829512871200347251828484678538616734117102223842248937394562307416314309081786753880444965674680522358075582462059462994734724795819962158839270946508215843890971886268507228269590911164924016625303108427425310113830293270075912484651932842028567016957433937273600869900516753866358890735996587582160928370499595769142391446063084940833563068500996386372643740351810870265386088000021980957418653400154118966887796159052402551856004499512986795152417209578676230046091758178705537797714685231608767481202204247604198238407625721693428200643420325942523646236457347081050121988229447419140411640753751951641883151200999739427499312956546225016616542560017616972671557842647265129502772263728771427575024048502697750829787111698110765396028417489824196970513149039372400828523090980078928602189672613745264913931806332212544604198528866727703472923280851049563210050750689356308596983820084018454077176187345160060700932226558308077476228142674833364308434010089073608931732072862272533501874470647765750222762757892715302701796582574973087235911730211718778210068186140173548594082390114859850803129559020555379172358855999267258491421692114951570878202735403350168937284963032446661280588085652479985112404768711948189164856400990559665108696092847776747181587835912884853507110013249258566957588423493774297226194903072743524287933178102669048372684887655667052902454620415130922005561366652573281029461138266299863492507651075952251408035213295599160870357049957361196146945356455228148021303756520835452987475494620796993758482239931654762960646419112370014361608481739305432678739850328399897658267576568146684111376349598340926423596199020422993173766364675769514860347098040711301549704446026344144459361236083846474873545213233034158253166335570468504764686376081355917673195464969127760861444868543058592076502719199695071261663154494617671635466502926863132668423050951909024697369794480863520061777972896133454131687924089168499197426197115941545212269808344139282692844622998719866821850530138102684564852761148877026467155037483177408413736061790820714896496796864646846316877155229631453142344208582581671299848645112248097975550526913029537877418031872633062575543006791457215476691891325289117553420259305791246698779203768106167577741268500581487853249599717547129691092819543250584183775885167325222382109315523464521044384168453306476823759412670710176629401585603617638588218187103877476093596432848417729625786342678392241851874279255690515383046510589580100751515511410150861568460035176133882845022688642642636287745986677849579829076608186611176459686324919245053087442134606914298400484552324346974825306615826972794085149104304839683778830167322647317065184001751346551392747651714475211608658388199052949271140860943996156390969107599243832296560126774040439264306657265320795221708030480252472304879100396077173702728337866869906050897476571537389924935697266764667253975439966151888055770454264802561135308007522565785087587287258072353908540813987516646028054219889387614615949815544022134592514725973641432420703511542706376137710307459349889332816424846072135685398599739928017038810318975510163049608856643944616069152591343376731674900397091809623219089099390972168075064235762622593620322606516836441148113518167221673011408526230319758591059512592821686620328575507572191009075217551225311839956767256180237039692452476417691164265269727477138920924417347099086762287017657644415296252656981642209775522592786397070127943173083485590683456148826099149466137872652474896915752721091596683967309360805964936651417496303448817075320879240472570871953512173743701593136183036186821672718344003559331074348434689474132195210830759783157883532926292216431886822843514182274008580328599406826157793916967032836695109653441847645402921503953332058705182489983622622669798893522835571519481331713549453188180611241351638670697439084818471956534438032706082661806809615714099809819017762909201126598836284970227937301682260495687266997791972425890734575982137722727577862859689982301080491229806173156833793898665871862936141259094858813364154302031214170529377029924407668848059983606873709479328001715410391006941884504330797408294183988241388018490327709320010150628583797884598754156791128857255055665516192012866271782244262340763021231189222363566461786726289801035225850114527868693353500510356242486695276916632641641752306107107650979327605195858535917447633084667777132537932658944108133063067313640912247110057049679360711318795749653620732315410299319606154072594128510737144009552351546937285996900403547444854657858417846520465006104264444784594261760632194006628857757811375636307687705578582972384842999013765066359235654856269984695322379593718167609913749091768338059981301457693246916941872646520532048474926932148532047624335433786043265177257611814190352654907335030264242464761215507171415204826802422402337084798235686166505975547386743785090434894179142983792330654894798724511442551783583089762374109837199243385950753036616566935551536348607219216937073250366212745701348858099347865388538598364435557399509635219645116253866708928954756963891437640114720532553356230422912618750069624018701655519549673237481117148234633712155761935598748645497191437552095081723454407349075581106569503507837127097229936320292619111480078341940211216239882625019851163118681054359822643258074417371456676052596026075421124129748284886426451708708523053399503356182595823881967447803995623061338686406562479729538645637262031866913253396107736655532523686701875276934199624692635460142353107320082588197360687023081020375031128374662971770103119001198115246450957615313631011188946281204844777388105942300421744121621448735139550336500971636954411255232304437488284316389796015681665833551091307770814429284393604876180492683693741108609138420317934410294069116553937413025714541465759700556100283990213344132525649023312140379841711096197999020063522436564185284324478552299753384621095350431012433411079136577178135899097287777658847000968651461640325327874892373770318260979955522675632187057961930341130377321762810333270933341951378989018747052206718364557655331025005647642263405125922544690254695743397935660057706603174483942863292968965406816813895108567113240542832216278436361764638949559116452779543804703348194566288637280985363953801207891429296191846333936581212032659130962788685066262193229464521022293772610095505336098693035308479496520542230820827880899148973087235200431354157739939803216643805335444290456955740071453105911181684892530534331453225480485178406894017677535093383061314067590354718668061463533341995286260358045430799593468615862276377823110798796239807665740332773948499707877631550402764083431640843105544925968671838690624305327412622050915130691990951758426027466896054582871286016617052561469003101352142361896849169674551407557951722652096479795429659233480313329089250459648771552807096298954690111627354003167841664798914910745486656496375938125558586486117446236343270157116424101930408382584883286053579095729064177552047458654154551059034612100527731014891684815890044033543616824230823644231630586610565392493574423670004330581288207567164321188455737639006903221882518066116191019151110653205339724143417285272366421764906590215921468290233513953236286996052879094634077209411974649005691768150775105818011034844414059123373109004323414924868353305501556675274563924150613004694839006507440124692362208160349135320108759403372527122826507348799377938451120938027129747081407280436307997648346578942076244630332969331321661550966980650092358963486135977125704828367820049721674495088752148571782675680567727838599802419357489552134893940190342418170515762942595890034099051244835302746667245549662027083045253201849586091078205125921005933539897134732238508323345114275592064249945031075905651393256531583145332711783001109403260217278491052433412811466827607591981863780853063627030812754913401185092593623589161922611078217756395114206950579159877702857962888055035833815792201571990225523240724163267828482145755737870516775305410779135280896993211033635844184491054216278825972648001639097921555738276007777931852388239382454985158642335948938202851732938250903511473071876026878930876078598204777500895828911401997572731994617838921294221382114421760391483776845398957873915503792861982449355682696494451135809959177327050384846755102912390739703467266025234517466685001390594388327491157088022022922273364988471225329754159967413841023894257693004450021314147206195304398617419245727104771690127835846382906293268805247198967459311874520412833639247690470631208056600542100798706645209753059325946715218901133654585701554908643668975289042804463982165595326657467819467492309639693956680296008787999371453169832153618592931005089699019406541041177547637242100856091440118489951224859151408753032221177371011815054102657043180482488830416031730062829398205948579046343237250473440287810783553546518076244027552161690048199733367794968477967329652172699503705448678340932327776676517017248582633322085465956553298270167836938937463916766026154537321463360462921134789185922752070722598165296313211118383483690734135162827652591801644744306084005201435857620939741770224460459543850105639502297252916117264252715083928750472131727374029916989579814559100361893849234345144069791793134820176506357948007702720187019735069197475448551528782510577322152702920502360349680180261994694347603411630414908762345848025577366134661860451918041440653217410278995961647643434250232866331424406637743289301366607587647865205035959289902961035546366991818306821083581425166518815500030956912341909370758710582194262229405050915047727157951949832607015606749138916761863372208255394818470337248788981103179914338738869071447455820235976867151569027919259749730182861261368053087162772664793641271872506880061481751961688179845263349699649000905358340937088269597468917287592683840532175013488740085957708639379156221975885735796717635742285771875253279874323398481203504491532852006590457076373151886559692617497709093485836735470073207424653703206083626946860277080594829704336806984439290707794463141349665293306423088193938007802333975936246191145909200902107416805508527657119353234968761139263007796716727237983868645110339578619288495478186912742187280540281614316251152365552618391695328336549206815239639112659140436056352181036706596514139435746361902451899081642621565290923678477646544555251648342192071541128364690890664959519225594876466923210493721230092663499923428129318785577548292063143961735036377194346505366780616241733735887202676781893920306952700918322797396857741015741608524677892438726817559666288886602263973045440647158207536406794773013587170711242090354589297103016647865016245645855375110567431324552608451746934854705405496186930082237547425701727511170298132409603701157193860854611074504584440138032613956667444105561294411434979061065800355060683061365504788045859907988342367293303679618815920221835130529309334645527351633957228681659195528407731279487348771687686374524729598326915122920307639954076287654289132653386766168228534021034424994667770373081336000606659286036123709473596857516877244567932504164650504373712206523589335801781088185783508259227877156398493404344654842031176189440596643443266995016672402478584694956174274325861767465587282491149957393900279893453591561571506081827472788923613315098119786949143860253190139860257868616687365390772099010899655247468937192745880513098445594542749011303712987592890015914721037838858793705336308577300578819540937785988542209582398218511271794121166832626471954396215311474827143938644524654269020033384007893029072399736275368551002034221912599073625922905607642301877784611357399578029165614390089428625490025747222091877302079507124196040352158571112992243991766772467732410947887512503057320945472124305292835193133542958879868671452837681605628831721845739785803737195653043574134361465613045482504631053338886926382033797566264577936184338880491170846460670691043974086757017276980176727748413659823638332250792557537380564325055851582229707067503586295623164663734317241616905046696061896461201206108992919945592227009106418291003524171079736024914338594753581863374940697858642869220273706086706320145032585785134600167955679944992446679120054725847738587954377721756874205212734016391176287716939983061411853774835627058817956692978827326792524093355132492772124047210051132623595092328126847560691546212465788199912065188504678853764633916768053166959159522949373798664804763468462974759578344975541925911513739493750390158614287619945444971489186683899421922912606224593023778503554899572994047384725885813614330480698825657011088980785794793332165306486713141848357997909028695763223166905983794405254114150442871094502974509205330102346206351077748364944472225213874150754091040957664673678810614180030853623160510617542176727293589014925859847670233675486887732905595380608306294936744481549106884062543996192982605471467239073448309962760857116496010590486629780493025572518280947356000819587629360471245874518300848666675900742408858929112531066647528668098333223221353064959203670241482670533544669407697428892325627077717691606148225174610839210699544888827537286176882089236581504376444888038434892115221713677836573442163986161965204737721718673739393721105107621650005946837012086411512395560941009491690222439627868913794322830901585721296071511140132789475969020706201559193922974356123950277211985452077124750939566112962579262959717263182996373709254290449586276737250042287275485574956364549306236144303617451000611512955387226992470378284072242471587245227882311878015156516748577871739149052921858899827529502533217757550531697978772345322392365823500972513566337711494319145481364490423783570995633722311157817649806021301268132234582002097193165757360319715257110871252812378184359409910199409788087382591392794356697165549460041303837365354823112136580808827763437443266466212199173835893028273720382907565299292286428098093437221526542561880387246624001843721014921300747696065134981523394525678202244272878717558141664802467343657295649096779981178052290534269678652361434674804802620476503764128528478912522992399454788519773594400461168714613925054335687895558106091059120972298163875922622840987436356680053050299402132371425325584380877896643549509640770408874273881814853358644185075046436260192988476988918915677472279708989384764206049675886392842489975098426654001348769445056690811182015149273010921066510784922498259718116402230932699221162061785968665615434036945901292361590281285630461748241976479661053507575782279946511004585190248435259680854315408731547931247260670138447687705756633496322062784012077438559365736874355058051731528473189254596149178052980004247307362953521530009441459316141550500423838245374356302877195508345184954420536783336476596656884229071101208584816844645617758150200135789522780710362443902373645226021271710279698974698379717302970532526431570455598367563838805548095466408372200353348780897407398083592365044682969137031147324819816299570873183524386373614068672152018055247485741988926873960886786116817509981385844563781541460200886767370829972991724484516548509539934378525905755464654986020178220646855940278228856604631496947719533975531733552674060247808225515828518058883375017013655386828725844681406613983316472855092924357177254427284641690058572769426656530328864411398986220752251372532899244848629148390245288340876666550117455690074840046483241150750877133508484647007475884833269690889299690682058167696143487932857703312857532142101634939675886220399770744171156727702664765982268453463875695196670764846681291586191095796903676437806964418506421402284262790243694311663900868818238351368150251027168956181199754024993169589680987238266644355672399636878428413034010430318505422083216330449733334750056130660545570588962477706485913172464763104984932080617125043109805852931069783824249119495483556544370383094632095267812941741113580447421285552817251285892191495127364744522290743901386452007338739409284972427881141503599763356685871374532065067928909010379011602089426481964823705178754510484009338047709479702281758619963493710665219213861359686788767381194855652071395238702380558784372708256979612279094650429655355102922298627453416609743639174789685718129016125312022347783449818858222457826582874551893487055077235371045909888773442506491067744607556779487076966344514886896550906885234939499888435646742338874902065717563357259224118804044225548018124830569487594348189307041481445784398866780291182113293068238187742579093747854421643443863762622644935357179777734793937245432667479606952555406871899807300705264545435373192110272522262562401640326239963793317912356062502837801331959861153997410184751208024259781328672654882134068810285264791264287885828717891772523310181961677809730332735179965235637505466083764760908964093610257842663718628687372791150928188273907401127903256062841293312004328642687731108865535519821910200356545281239655768157992132670096545617713969804655235839673321098988226552145443837353841395343192188660358743741336127541586454041775737503522692832658775366590034359058827141899547618788895183536638454983783074803507305390334900569568890177123702118971836737809025315944866493083198152058631150425332841294537133236811049137089306053102555532228733154176501475352016178129643045124012201555568222449631109140242434759627701299389983080241746249090227049080866833200774831634697580847361704385154620321690114742832941724636475447159779809861426675826094725086773260894476285571520410879884921808717048659012998539150095003443752552440119630984064487473113134070539865406906296503891960570083677517472774158795403074394627284693214093632180643175325317606650819602926544660489078760859165097645029612732440087426992982984795835949671328217780474827957451223510557306129805212600641754653537637020986784883996850424999530691218699973510764232317370388222735806649980430001247136095294608185565997188241485082938833558375210165346368663960208373080639310933583770059964452907781103532190480772185595915565093723476908917964636095031053062398272339641796768032625678134767792271020036750798400867236082292848300121615557329062342063984397670991173382253579753262200363961004023499765239241441571459930305047792575353895032478940480224517090988459414380930686581802954483892385154188359279503902998392542674706986734305246647553877354042620793730484894600076520457939247748890841914063059776890491134385596851220495673743908551412761412729629203183734320601908930086152318566285114045746235750682891729529486204629923740010571806020115788294925681166532390635488301733010781621639197626761683249081486266480640106750103134003979604953835949839541092990591521326149779159452413589800332996685523608951472611299704781762585534090054680008202866737152158814907073726472446137067721597885061757026781672622492711636540985882980452110061006470247032335078252603722454595276911107758427496752045442243087732414268801280714813040991860966484050820411642855646563244987499453226958272850234601052337566955976429633448238113455140274204581135416858642453587107711582500570076931384502692969001078655390613678196816500747485112396714596866842216115093162284401768796146520253550009657131876113982325932126772055784306118612938257121507929978187370956106993874493669047742439961417183944920674465986401878995783872058418732060266729395196127299905391025984153424371949548292171380760984981218118707255026282461009074119381429496370069910147818462807195256608678896077985412838317952004739375450674371698008111046288791592372601818790575469712634950509158346928977764010597594935784241387585566349770818156573361158462082331402470849065934055909887777446891698513634316679545523803194626654813579746829282616636858170169914504289637513844384998621404895997518428090978636696314424247264311413117186729010660424755643131988655283747021440739195044801278850364969251383927429055447327580399672339601057735187653970601056360815374175018125467291705438049141764350736597969211779888997381239818611920343229215507867608950769430968394835718773064990380967464197992421530600471245462927144003154975181605505264532710450753829531669350632801357048590833998239838224970243261749245825518860311568133831571020834541247626350043214793571885598835735281689192831779366479170770540713389677452974784871084367296436249576204475040102259044958964968662441148129401708879453262990401984395115037369324980962096235485549944690397975619617483823976231026699138269590746555875218160330346511460639103691287509667258083155245657963131097720546921795682185230200884810646241219039350274032464679893822963137061270592696446726775899574954412738287942202215942791820617378415896585836483266437634110846309190515654383603473466699655513680629763155928856090149169326320862745413204343046015950883619113308091286715365393797760680079355368535058160622347873211935218254113158729851347603500801307226130558631061124606121967341442531115459021890979286380073392214081749858104614712778698522222047861231192416584542229929032992741258090162691229319287691272551233879908408745183986092859221064469721562235620167297949225621021393906203899213222922374784431630191156436421322691131724647251796019762517734770179351960618947515738103020642777580617935418786853736083986535426255711876743899916638863287240098269176783715755384533096564763314456283133850576481181008550027013157129773876151725207653344564730085706273994569471741243836065987167861942378683829042774407574084102169646338148731850084309830258657814146977267772662355168252414133116477027823985473588802067851380840434376077598010893925172393675457534582537314578103892032081582683778696123086424457626233378270115755720387345553277932764094826697506378858949760041957287199892807605918081898024198446800366186047056092235953360523116903376511148771429067107589847870823423423585954377155286558525227429343773437116726008388883522366687193323347460653210946636644161268022501338816625261188589672842766518926568640703295318081967736256103051323199254915788827891173881584504347406629084572010633777537504506266666598599143901138335376009563675746064934534226068606767633816963890294604537210200552051926513798285827758528025722827102751459640064087769429203584705051886330676132871080180786675339746957608183528423503522677749831539242136284470953657242568747183452152315289786822519545813113280249760282253364640563725188282267246784472305235648530971387838641292211379316017734420359990496507299605788626116636026447177989113647181264918550407201342858678839194885749240999783553156443981827825530380050966125928282738273820217841108954042884741244891550578054689274108089764307682313087798294941447530293693233720171588289104688508391651592328261731481938891526131169521019001182371593736257727652112685617220970283886849459027047673756261957553320261485073947640336316142074445480402886270778394125145879926842952692239531765446171042030402835276296324714075700248486837335622182353760776949710673854578763904577779877959102393694829374666393160580355656941348524364750965481590053231405142732715207948777478437955967067815569915633416424144462094664478305438189257064042294931535988721674565253228563969003946865204470491548487015020624649936755059970144841458669038484098832812962854892711998524668508899821696674926073578142565815337541174555495703616455239373383160784532764885106976221620669065226341265174134777790199796621871816242028923057872936088761910924357315256840011646290868464639110262961152024749472479181014286424053327308706983237026856888182156185538687638022581431061466790239233526709715722708154166200746298801960562844935657840832667298755800024918178330130731653158132426421958313488354360564994857411619977127493084966948515598218879444123038725343550814201927149813326224778092176600211541237875948598735321505616313873462832979762065307936242078467387667683274474316438675169745318522802797582899645406209995193221738565997768866761026986452777043477837085716872308894994738178651897653396819612786972691364084916083986723418393431520752988228376000833623490250954273370184461785159700193104594013478580684862800016117892603582519822761845983829772894446257678073031235203052568888194044383132922149070120259246930113220126434913837256066785743702955479409559247424998788596407523367292636274671525689043100378008656661063067245283432482196093491372840071227245937017398262596401070807009349125863311707572918213334457083097007675976170366612972360556447502934148642020081816422184099491352262646953941336166954200010959078204459039557131624549735952322765224473873404470685897875185831188583782694082518981244394270137203631299384779371658631030827344127209419963925529455544254194641283646227975308450275120998875308368885779085126471255355737955507435639437525175940184339408805547593286953632929500782944683122833702237325754728854096303163947682460118574335955818774020011688594062082864142169421838347994605397022036422761225644054814420035560189875920299384990166912771469387398244534481515566843433706801676067834527554564374139392817359854045265941780802287520875090995162257432813094631673855094311761397240089246528768926691674797940478490888378451511207389705499466628786640915111349106414938506321123889413999103300552474877045892439105802333522845154985588767658553514780036121697526298760510739147873757730701401422275663936875794775923317568372328348235930770014260778889570521188531774555330477706093868944160731670354285002644503927529865619495649878930163892044944881936741564294443378134509788794511405434825570427048923891140942423076141871634051223524351851136824992510134741047026221444977835821463518195925519634243000041515941359949605990818354459046316715425897298778081829802397721682412967149368958501296483300721221143120298091987011193241126613587848046769226620083238060230759768306723295401458576788585969047701395620273961279044604441809274237238475898337883454587212693975575166412559572769273475534410464430980209223082596304801789687539554740249674958097512002757475643095699930086283260444917667259495392169704098762161616714607874150512057173530130201242115845423757275868442591048796428321844478227984903846984951525477289405327728146605191225232871115029540759696106109726286642491642787451401785378383621284444133763084020566105102549019522575451346303175141526309788366523931387348250170833419519096969875154247914786667990937463140279921253252843206978437916171206676191134571839125841527555888825354511394300729893104599417057633103777065616504910964277510653997105894908029733706676372208764074500653187850112783633916976945367651441856844347221124695060373163158333142723928751827758892964160868699511762904141484541823758502352283275947085950358956259115172022259306620397242706199451944551638492247441580847794358693599253691899403162445364090700482407281944554148037996430970334727436074193811657212133386523528599915258359164442857901649805508323507210951048532300214756106188995050407395679611597195414301626224136485522352269502450115266800891976143898330512097249366214872898345604701425636476290596347110959594950263032556505182468231037859724871129521427838535780532421316186474472298837725341335447773942723301379225363340495836589515221015525425819425990301403878948009222294588436615690478928344978932736143103490922470195178841206771963964121082287132795640993851555919359477502860778979303169496322421159763012423268654302336780015769407913836292090962706754205011307495511637268076471724154248907551720714693724825322735863550533799939933525518881886830048120610264396066373366809746035373487305927348092059877490302508451180396880109184145221738121798906880792664594120421033974303343365572542695302522603908327452179121937246889863658240577389475002304116507788722871813231246650902086384323901771884707019626388947109901083410325755376071223588502664482055906053827416394741439242205019487683774470890839027394713722003500268149894325767812521692015491323347240833861475864527223516285229256212060581776052850268254008731379038163671969204693531805660800861749444309631517339458657161859183771213701346183205986856788149813925246835353968993299705458692119573456532667639834466868534706503445815669769155102440350219970077464000852937160871535876170444620871200433560800193435121670354151621276478981423646067467988578103915246418683595616897359540780953514952353692966520590237052125183293525182586018287275439100605740576596352565526458221401125410455201916440379561141070768184629392231466241497071092378504316619331559756032383492647828505498333460447105024779536465797287579314441857421265370197234442727684947556511696245920018616637009839794744446803592277995949752268977921646068592835047961966948792561921276540520886584424190340497971148307717239720630522047555769953967891989381301259760802561311146883889140134556623849469817811041643933679213015277078539758076112847332497339002127086101079351945469062308973508149647224320811513322963515878027789899623367356538440789541725471083525654500619699312206968889604729167881780947297755394435328866938535386625682985736053652927423016272666704758373109791430399868628950123777608251214184934529141415219813448578456061995800305630942659978598880952938753321092183443096750605896907265462515046204449898136403288505404533815527207280194973475281450913766342778852009210601161431974079099183033083946688612201889895747887443655786031999921594160472843164413859394380850575359908257348112669016838182928239061168331001445389551601042065279221185766221103681632704356091831997346886535339821119589521536422168727742061396353914791572539024458342419930189503701469109270184436444253853715201607515346243166161197266974701542014921342664120287716392155813317190725293328713121112420003908587568476607972551289417479818272025299434003526403032902490968022898306915185301800538623395103483130207854964359188915050140790793516954010239250975696553266514841141321703068713581431804827410942743761354984276310866060809910559985611902645198485805039270169956623117412390220613027682528458855154915979604464495900812826871626012074554971917350756634782475820290871582715379930297976959207604814601071065583153587940646516812114301085653033716702360764229147331767203260175439088189757793640888772818891935308983235561081963433205368194523460646444251031670102233531078875815119530236143538726297816605584235310843753317560790644744524544942397009682269077369198786505337983092977293799010426388387351247170376566232378485260722940081890316601372405639609009454666525831019537047362087423318920585358517001287460617294623539109427878598152552331485347718673051983198000583766201756078018442899319576011238477894586256975752318818846336650228893121251069979104004735809478469342760569523395432604671220387707493276379896433886891585859056995410959706544750287847862805033290015435009369558540878748267033032321550576078063525558046250362589611785483407099585259782156288893196801126078625166434664133155591105030634778575400289408923592175646100976614270118095947076728660895268394018996703840584255335491937557657162078695263497442868020540120945197542368699866787396903004957361318204584197254441891738195824964028479882671875818369048406670848447485129957503197759947843568011806788415585969654855430891647879716489080233481820948287868550115665250307077666209658133533106511992849046532258526284344763385584102065733069688572305396200351331382843130832779403568966096996509620178017826067557837690943669967035231367497511230516394768402155048809155827129398530773900467385931030589330742832873931667789256855673056603051561936626636481505780511587806726768839302293296526097966145475452542740111071133769206064328684517455692710578676952533063343289681448674185824482448029866853123917859812319805436160499589383927995316448249043323216544097926157020219072162069524348339913737535850600645167008923524328610188491261155058932945957636742224288044825996310736781702150723544775369129166260631735502181452479538771301142750103010684235353997065499651851597940182843257222131621896533679125342091098751438833315741875389263814132470854318857475838645084106708077758771395232466946809089654786622110593068006486691323946736243358086319739225718072554414741038464114050436381469738429217705350535814301998663545443677831671098041668586643451370725020478454459209875724780465944655565264015443725609329740572001414404284475391534835586016720728363066262706988967891134490461787845326391900946613084455917761677064032678265008200631873944435326704805514680506060156399826615732559029062642462745924978141901149752486423716655255761971564318618988998093824203891332819619958839404379329620022180882469157928310867286987658591667015646943435371379850233950014362728644832335983955168655947073466608590590194564281805016656067055312913306121237954966324193462515352344955027910053527356341923674698227932740096500123540874340881277466413263240695434433641801849046607618284258762190935855282712414670077274414633570731991077516906870286875229468065740061926341357897938366726312622118205745034063706937190717467080942431835052322935379925620439357432289613306442906973180469109593916276126813414035785505546467950998724751810535281608905994012996350278531120992335273696085367703173123947379757267154168967966589620298495055065342547007457799159144907611359452446706631133101931513985092810093081490601224523454641934604112676678335561256319091345294639762250455549611592923553329915139269292837154347103241992211215319325198713271728234420327147932152491741373485703020356822911890778679839196600717557154846234573265945703399155875184339730234374360171941559604505407088652847657280665556140395416154201293733764831444374968618697094327306049230659755499756823251490822450587069947385137234375884111554225970187174992571211401368803822834730148277530130080104657878851170504695762043921419249502238256204208229134443342920928144321162510387187575467376175864108684294038588463206005108127135541301334251583331354950702120769160464864122148706270504032761288099218321397126206470971805995136960604749740140081294454166965583376978967910538264757777215824621087993789111592533957174164029216186408535033687354645137096582231727596575121982553791100680436505188819347566300590645686719777406430589760673801824940423818396846952810583031834275414615302079162819349771194189493966727155903290046942004454470893671097098446988604752671147391935375104604008223531307209088912711037456007524540812152731914579700550021039504373067993280183987537385529525289686215538175982505976907749919187540652958111607130199977776002310229106199340372914830156932653686855075763609704963543719657973720404402976327815296589109404004937502107652510253341506470206592643659294396641584156032584823867995850951701816694379537569171134329620747453110671918695814160640498046728837079224462480839781185986020671489924555325415943203448700179140493312888956795320760642174543897426671874357108858831489265622630516894956150815937934918983827540743611109721530979845342414837577052777599758244382344641343057201225811365319461292025602578014067464294865446257454026910781894100117072527983811808228626823461315612374568317770097622795846776578427414192362109727180549375956133578191907896493946764579069352131767205341675660890382377628065455179968254080385743485607166170863280137026342852029709373044580090659242234765435761290841678468214527821884810975009080705903638773564705802633410906144135886124336692866374755019813438550725014660307852594082986348058127532809271185967630385927970433734954789872004171446316397755355912483246697027561404867695301556913975510166904729639658764032658338357652495466684171362686584535945143503506949703610180201994750877411680217502021559535659298647563152572260683002267626717298378281345000440333743016034278393711717969547940183459358893699528121030585904326542268104666361552442407590025927037414056979083101889793940983023766400267299786117961519288133869506129503278311616593187376257512960108021584680693110918001402026989143484404357585999887467545235886092346305509184146563903710993396632639525069210275375467767061403772420047529501466213881882861132075619642524065498784376364439705213981512904977460506762813126051378717299180258811943454104435374170821826631309517836239332431965742778556626726677679809191941245408792499519902771722974351557301577049767963727479954742680151564030345828460086603447560335792785029463936203869047889955642496440334952081184477947063756197822543385341890279559191330504010707094672413116739204913088570235931473581738656283169570643718887948207602483806563380684887948666764052123759349602121443095577911611669823676430278366112783783557371782241278191237646065527976491592740919100339049233722436928775990216711939075220396027385070577492161899950099042643972434149648617961694332969459812638822110367493154671695693556968638980519340683717507769055232830851917004363312705122503715190250828227956381909125780491435074110750637609658346897301077519984554949696851239559721451741608595887782031196112477052258909678549008744423029181944489721772060371682431839103570666157554227919898717408496145075736093306051894472519806227034427553032721518434086575488344601838556596738567356544482435565483962834399498550664157370851518521183877575539600855044339641043428610154614149328502821692306579431426909995499157085423011391006959307769157425238686209457979598024831318472636962746443768290181685904485300789576293396059858035359377333614615622894313492589688571112246407274790681685725822172516480177845109339743523171400250939390781504020596080225824093739885394356165387752195545630547328288938812070444336625336698945984912336572598623347099552454721806670724988336498307597537129274689460696643282343293007686438916172570922838953142366887227408133569789950658193530514091272264725092847863380345933878084333965745508504530337168338216648010118631105293920264359330482807455288920125230621965099598376686252076565681542260720332774906584799561678558737940818963871965316805887996424461461374332901482565124184944603439978553635246556996112056992112962237092929607889267355016049520803430784744262958014699193980011330294053622750203662851039275700019938334225825183614629399137642119370991788820885674447567587583209393734283380525122199529365705473469244183977608011173701660416860119506184543109451209233998842330604863846703890880802757486655324006299569866853445144807938642263973847840288638699439797173867313092884127640014257106087308444042409069214856239014595954455217628415190287969792563765473061613155369305452550616812090457453926907296445439626821130333859421705264202420050221732850738584107583799336684689835686318097626150764880465405341389987231440574445346965065960930343157592297672726820589372197255543139392971165636357567898987659060364411008255979385872686352629776315724904913043976030273031855416909590480462648976806500574870231618808319794105361358708385686715664066782715476696949193874610722924573927245640660481554318422427200319692604246621970816798236929035269519242690459852514610865529663647649169087403185265005938806333741573054196622703599712429101293891757649746306873749910765628895868018241690630313248893082830569018672089937661966785882068826503527797068913114955975328782694274824543773157863360721486321221776774450778291682143140590853143870361625534616263152869419170535051525610710579868724305900988366420568165094370868627452798671784335845137533307916366155843777269246656778843706366860377529663181511577372232084880105159257307475374801706210623659150751944274068158498089125134489555623879143450804085726385812493757182241276043688093675969696779721221679500337961800188804509205671980951791388852697564793044722272679581643187891931603555419424977490412701145830987167160739034948285876080428298659022291573159641225745705329229597518318982708490117309708319939336201283225962522367533040586573612979019111471232553566553704677548248879166711932113056208128963370802079450030118565439619318106050459441345213170213425885436714762638490085191162188320671819371724037249965670569827529962511767718667267441825558614503959119835068790024798503988382711915361652821015505816512043674333936755185878309368916462536742098082366137791349938718978362998020011235311136214475053873572542342437535092065867854841324225712124417887784042588789745063489184513454860008582537748154864653445515305941369719897644680565285469492035751075777553126092803443302539177011556539747007998529931025278874356179998101368514116194414926365566534605520485128257021423959187269760601801060597702550058928134941440761193633078878695001637288574962344958398345786170095228038594943437840924824177666299016693019360121028491520034258080750095662988793108511186913400283834907683779172577795407745208786317956664286401134753804611244799184283218220869071962880328172770651102399412462942752130398083186507249434832860859994672645796494169340660416006947962313287658522994283606607164773066831311927136580838352260715045676228431204439828048238084914896330822607137558378098660686561362971889161503702894706792350691270561159402612641713182345014183965640684796519684686763653161967578633585851374059346297328438018427646223546158716645118614211137989437204495993889835328940533896128566956702825244800621057424994664732777650574080319001017506664637334721548047968582891489126711657418742708498777681793440970696942353826140423822742174821019257247844306418032538421646745082910683056846233456367409095638484084080164527471066579688959434968555701297921532777464090422384202249112349735369021864820475987189465006550137089661403532406448852886616772059195986426290535368572010080822003344761476640143809831203729448169304082532901031411460676280832765420648758808199770369000146439711874412098739892933589898174657606880293625524147516968153639110070868247160295808674102810261126288826093610573580205907935978321573717573981085553519056917939854100323720683093986050127492256754089759699199478823719673358936404500318618739784452831845238154912039527393529697779255084755785654775394626051886300871827220155480861971517103354061079559338620381056349143202210366194930998349049217285147883970712304694902711400611555490723535583664861055401924638761349336060812691269404211490284830106011461480792030127668054858385288716540226869692416269790692283714088376614323757069142836542674272237949749820714277341112822712823295643136875622071629686838828954469878182875552998034704957050638474726121992212990787424158007927822572108095489626605717228985549513533777552320552281801637428484822218005543242710426576475390000104454737995137104335465386458448638261812975605189488330585678078130613944426479291679505222850208824129008812219544076373126714916951943282094766636640504601155085257051780424217405832412650388971806105299143457462770460807112189944847642667813132420988797630795786574663232214182726646602082735728293238687079172979166880365250451903070434112113490930499987237991299915798272881850437128707422223518563242700012445437382529458099905368252628292346784294883168895255751490481806064186507586957515696970319152696224282248563382554886408102055069992590627113970906034639953298338153448888723202097000431665080128514913850399273400669837279915757252134949968921666384083295766684226170825712961539204138149464280503925072123263437950566758087942435587239897491734359270749719295310539186237140929563307183527442057581088519185572804411424792516365594428185937858143008865987639608570769702361281103926098588371165419835956903566518822586823300408818303963456107381597530153963120580188701924220351359720343852339569805828130812967213712413553835108194384268834026658955646710807481478980699609587202490229969555018016824317717491398256001639253129386842258680849308913804055388036109853921559800306531258575270193636119216259765088635629374961676943055255630414572068175587845799810689446207284300698266810378377893445998589849460896066503306619713308698977212164567240802933381110327111181138378831326860621409878318035762796228656880917055670768643846537157036173393316034439511504444379550247697002838492358999391870383192998460293568167099251486439116762322682706911359255761083738314957634597426450861484939708004190957345348013538268070924312313593492279502318332362565173613874486796802426276949710870877516396804578465824219103006133352879880761584635417198134749508472575730595731041944837701787895628521129971836258100227924716559347673111170049856255446316442777834826784403466528236493480693941871918152401328697750260293289142679825041444228603522511934620676863336036474857049868671496263611608558152623911928891442554225866942879959353448205161388405330713917495944388648328002419417271008158675264111244837583866154530861472485315861368762977710730245621473979379395536261139261265276419556112023625974989941068476339157208653046503814217492905767757828089772466195772932728090689032219095362118445296876141699008628829009943121807595714203583441995908376563752280816101558030326501727788088764253998550334318373658867690197581132442258138237478912766561458971524249140620959990467743717514960639462127827184023366119350519061976117822503613384413164571311736644557894216869388599602540908017482480043204431241615289200890001123808207172115610870096249191118680647074470765261241526724400106237662845156959939888968843527302109111362108503874935849472276735189859911195170361944351626493866509388237941163041694390831158363595804512524141148439912410663207427715642772578724368630687994824230061142947785270324151006967000223032696357020970705305969247945479853739961202101343871061249043419215872901798303608039925249569102509315062114913056357452282110443132757340403776779817702587053663927992407357909113907821320701476618916006830984022818641259512384796221840890454405422203017345313440090369476718046693338448513963822245512605663915872012303925274869252921221862336996673071059032049371675633407403999474861918718139417906184613992792267706347821609333603949755589386600191204519029876320797831137186443043367082838122194208522756219775615566247403072692476356786070100670387340251498214186763995045557673222001204268498903054740738966039538781572024023487749047437405956995495193777758938421576309666696032168220443437269211036697954846287701780200048431558097268502675791675854242705617591367246332566371690450474854462499183057761852755340962140696971791163332154789054027643631287255459664740633194780659805804265128098864711520801516263490425036426595892469739545808006655065715540594956542620446016021888867340815806241261748760456050023279385140176911919508568827168231407188283201306590696995904270857446605484742343931268121758156119482566826255546339479698150955165438040060496958445679325655449109117591782564846810301501878112801851439209677559423624186746888347994664390510785703908803552847108726284917473675494966279413516607245843598061260644461906501061521099991044437036832738671990861334140579976163869201770412936235084555958737448110083699752357328623088906453101995741867074835402786196769678381328170648786722927641693180856403921321498771969067562156696806144328273509743865215945686633485046036659522460491025050841451707212200348053465874122921330186811494940013174715133225277661471901429479799418363461245471590024158748056544223424857755207561105634137784048333826727775386541200141192159992104110685118978195666657190840872728057810162260775000625722879362599117478771337487101752045178676357002056831824574461068118993232664809751405503980788534273405850416081233081243505881032546007964656536236155818762593295662024252755691658835016288648699660963212588618980626425600718147526403083020045140540443697698054044132724545567587853054091592440958186467967723272994658345610496324125123712775781759773754363065466978536776940560363359999210423970295657548167779519252648345508646606170380807637698971863045358054478773348522570657490476021703054095087229471199933839447828571241168116158185421851803032153125756156795147285761396999062309119402916684132756600030341741925504053324505118067082246372556942263419722383893697471590449379605297987651730715889978596918328330046696454078253891115733029059010893834546612662246916086249146165291764224662958285655933456876945253888379254850937650168337953319476294588725562908854723751828668075153290765290494596413066993673567328316029431661629310042948222520613297073290300004524185338367954119994201313697559752019314589087684760279527354266354518183619098678736437297363613351356256921684475732461397074677370655879520188089699907461314424364307773953603535780428723419220183472310415966226697038135806787387020630918428591279911209996345404743267617362505637732098657983369591691866564800438238246079974760962523301131311412901958687411584555767694240511097302322747597698534226532138270787705535064404792301106130239603539654972599762364745865474596828183338055602675868274229619442056866282251221832095514250460062254857966479475272702868437016371264325576765500855991396178861351285504747130018038493315383457533496852744227687493952402808259877661346209176613378755875079167759952712490025937401877156234235303238032857874839968754955114664376548386967673308687249677472235345007378341145650089606997890702460062001719423839256784280693329669928912930814459783708526885521973868447755387757707696035289814335097855746069004411888161737497309643281532465407769855862948573160021102724420952494766976710285326890234950196595683765524512058716075273424545376517341798708420348184163906845529836536836758056037343709684770133505768179301380859150978507751097203528859523317604371825370803521774734746153753602225383377594842320751740766158836436617207372086081860831591127548191252598448700827569741780393621868756213821376271848457282439370500378822707024981548317296945238447178235867104266164871226403324961726873310419837390551035067403287143692979257101272597197817208294221419576745491798894735360383441241244996837756409164481557098222776377418414181568306217107941563176160519313482577230667322365764514534693364435194392997621399467022848808244115640454819986783891317291245570853451000106397446456258984401172727389848927086727442519409678864139950562668021653646177620526114938378819703145196286277861375261036806086347442092056303881023721500883262337669291530973421954571270891111255316873211275543542778697933614777781078270210745993835005126554931031751930020146512797268331846449954977012855522318311111672883616328285984718517399560354018622388766324114859374124819869160406856385757842259000321468112722499803930202683599053102070315327187571499884009003210600712185538305477625045398141032406796385083593719732813472502352913759721356598777108395689487989245276006350598985348198744956775298866844473981961880360593647853662450893292817061649240580013215025005886330752867237351674487473384693863566891593338288478774300067646527900453965429632985861834701034755455819708723299908940439887745815933729997934344242193420590817406863924188127693146790484456236642992394807970173731962285253209642301108265231386569033791931012970167201379871857668622441451651136402791164942057538016133067639398136740189575698081090955358593194489789909171327255381920970588952448077429294410939994482533542171980009987574313728269999112112568076176965272325914628457427130021922403852205209216719911204555791792487531340628668642642408231173412484542943678485371738779934013390735733888611551732754350030179359559433318253913044540397725035693476388129280124766288207491729534702503627110040450446823067129720387194872033190858390483630041804115415083904225562470932571443463518350968444169980895332702557698236520145563596912931290970310161479676010818426536641415407557658840497205409973924986738468785386458969965988434665909485237498971102884022409140174901502377475421915852537494498752695313315668277542970127146273701480704364983780474619051318090729199128919770084330399406809322257139336729002633489176081202668333257860466386228665682210172202576408589816184091857049871527538603168425607550396918590138988001583660795244458672559808663804566348272895993795572956820334638398995399453789018810178189990591480419742657422577006104174306549124159001558527329034514569087838920175383925265255996811326023172006764797911317784334789841358925055198368715580590572952919588142464851941573499804000436415014366783547563717601845435753521947569378030297316596269235884818337992205107831801351546946248482801123123425948324194160215222513816130775332536673670984311764811629774465193613577988349254489522181515452994995490366467696724188654614232672437506845367923937722501636777479926031231921898083653989863558473804147973236977796514335345659056364202052973245280336614796402039704571358731478077660636582449651233137599396434463847808746590877567914607541178414332470929576601337163667804324846269481862451268758580768846853396383080442950338472149583022631661421493102559344527548499631852317220753904491535332283322602822090277538422266924946288770287508964063335528247992143749561168109999566585277713882763281606428485815255745632430594609994283515698373343803108072014948784264679396759776010968518226372303538381435125897579017506342366300105421364852158730509372735028333145255005493741111197350664759678120965697044912749697233784200251545097328511605594234593522312927239852681052285349473891625602505135278320990370861182476470642142446595117744643435231147506038249228743192573735611157399446762441404195935108339518406967908142833595763234933742103228194860185027830442559440125024969647721266269270721812784661538027480913285769130390817435908219154876611343535789838534025498021189951508720953630249582410866577551710554100206021452797418730808326690093559872438034169391218872012074212936407469151780669697850536484951884985714022423033276569134573135423454167046555207471765959177626101914209304954661215464667127771207550351473894828395082068459692168305255463137337566558374750931572767185786765705279442627141363879164521637400792141212255149081201544018745215571428616045577170722480913389587064649171356050029538610666245527860103499474649160257910636030037346445088770154146860898120880416269888847967751847697247489556115083547419168663511577842304113581045554174085288436455124050598724623183209466430511279520325811661832784436822782783628699390540524765046314017356334895454358064272676930390350961744071248354745516571033171400175830429148436392028300561674015424130076734117281065575599797621534115572097174353053419244259637265719536514555584293850124205508698207965928566941512277852474282812969059296972357582116337369839520976246063654734292300274751235579377758468227647816741256106085317013239530261085991439135313497419721024788563268995878972394148435083718884756180658026447296731717990699645850905922708162924651883448155212708104291003418380755218005576856636042432073030130188226982445014613041008663133754314175798753064096178223818959647283928655824739064089682169878961566083056144752122640182118484828465862695764216260763226832337240566925991022298018756733068062055716905043723407937270537707290917675248109456017137097401127490454130210034681826139821608600832507460172373051217527990291028520543134371027689180761292807550489936457130241205459282982614577277584244587114802769617722623735133793171513356291481851496052066087742675980144707573873272024372546563695975981554808337986188898712446003324962939290629152054528690867641057478104485006681076714348198919947437421555696916678738291952441111123456953228085185396297084745888156791475200533434265727174939372273688686092458350751113160162210642361708722917100946291291418007358030239064195848904848810715426750155243382977312431596170969237246519426842919648106789200816685751133657182260536127185034757724425222122222915355725582349955089548636134420563577814841202586524173887621149265903030380787106133685654804763870167915952762531894717353581661632308708145604585064823530543453577768422587110128048233820292752157842855274264144872954716281554189858207158610284808663809142474691692996690290818608101963985654695803579397063226703429747023292843518650884055687641295285215206717981973434833272613408289918302376879383569051574008265555958542176231110972542772287853102121712053680533199655991840404502810934523005378562973231776216388904543235516235461890152212534812247104561428662196219825207216372565358332442629096536337610234771462658158961109033710416144939117418710609253982806876039064710520134233851088014799517332736403561068403436392644575675431931114632539293534998268003534570494989170275416190452741310072567186021310585930963080483338272397623827752517013484871616277388501421713137119166558240488063329612340331014924706057244741365818396753776425050972404757412617469293784016233850969393751617038193893918226438148658501496179514723077679882946810204193005857069702583256361122625387797028385309878437726753764871917708769156485859515719770444373698329350571709779194759737565045319669124824627598499828468633699777486488394013055062854382997090873809822900086609716002918903560052912738884364647430659443544174626141096178515238471485785270144424454670593409728334911962594884990580704668359503610207970397419041436740626377080138042305784329655618056645964796181865220133590418108823325465389390638677248659890403940927747013346546968821151886527140656687272053569819025867560986801514719083795026958911825911467560624868328065915829062844154081592323264783699296036083424457097210607105634940764440790620208030441013237488105769925558636367318824288660298914449185672432466522495828681788120050828646109985905921174854119802483245625832629837878794634892491376095970942971974849203598760318807215858774713224555304832120109109056647083411529892015483813368737594434403015797876231926625275220675142552815542554739609372895690785879647250207494547846534687406963813156900087238087979808438772312727641031170593204843543476818503344466561209585103121639360302446287251844243900146779988050035517472115311003260389423237165431874303663682573954748100647182400030389571088494524636785931077767882640576387304301347879047459646366382664992166940582332562695338070389346145286449298994353874581973171069959499837827894482082382970005144638516612450609984761919276601480285483001916512133736662745877798219152250617953938311037422008866699201858810361929313571887311139371770159003473107387336913921761216168525548657579233102385584916913513241040961151846503760550868674622658053597720231569473360475848015740555155524483038474737104310322646841870595175794865417502098510652762784632236279458268837548679104105721925732883538269720236612980992126168294798017632835422414625324339854572123199129605895426453631316170516959143062184115903553518124970047088572874088729616734684411429885460676078284848575442120246832844578021288451685068725602781354792629154620460568141224001052441549514817788745516999319862606770220872196697131195956216797242001948112916469304336178447243204015210618720174257216677617479890536963553649664732124461512645672081951941533746588343218941703071791049160948569235382845147861397952167813434172885334900251726176757474786833113130608098116129132227894308065527946346863373920739173542684210620403435644157015772001722826318785340135450526908912029920328913143632504512563998124737637682501090866283319576715710187905914750662624874413969642268701633203377738720136395955655980495138268302117553270467015068191556006550222056547597367357052798375939619803223645543432943000388360294697592107048551449145973047495725311127076084133319734480440949017850034765692603735553947566840656024274886409684641284002944277058055733303590356347180457418041685460482304510525428546508035147737864467041954091023631414963937149523411671372038717885164109335984617689985240124447764659567028076616658397728138948413949928942382656315047097687341761915927885294728151796840498951817336061065982229948556650601597110439542254442373624758145064073720071531826988933430613904051197114584008054084130611719769659413235761485122954591606609879598351683176089134175017142236165812473869098315393927198111090648209979211984670126780507269771057925856169803301447553962543025495446592726163218280968673961451141818914120533722229177499622004422056354714983339424465566581651586747120742753327403784497731612085312633770638729843500562234694498399058001670238679447370112590622461938868236338698544845376962725532188804669142037833439282028314033964803102688752754310941372525181301395756679502428374044147240032035074889935533201807490867920188684086114806641146369774004643247313731671761711649174641444192731505675826617261743836955065425257065346338561776181686890904554945508676474500696251006712200832518858724971696405864633446159615779073414907000366465982856738260236443421851986021529860479713921736660069532107269746091238835592581418625210322087296681852472567756012012174907121709213372567090119098030152367707017539458413560054351163407483121481329341068410227123483612182441129774291942922557298706316324206635622517496995701344904064461895217612113020097771393122291504013413987148858160868439001558964885643773011819367750308476531081090081099985355329253418163756938681277782970526150624278987376905872691179461006872740258149481821524145915122580747252263869130284967146371899888426192818663825075076049235005381007138341366418004842294273445045519392657814094023822986344582385542275193034789758895039486839650780542665360462797530142894885296121856460230910183564549033925136975037539640247926180700718793683835375761640728491950330087073722415340113099149420641827464037455112903114043099217440103847137550979861375712743796372118852410796901235006062818517436631426480366387817944885678176609017082288139946675691832991458669097476671450457755032090071229613830327905967942030793559392603715569455758722410082370541425675481653066504367000592942368984453700860566179518274811254030244879452075665083845074769626226732072188049808995945358760954369553606634226184229337450148688377416392020003620865319909194328919121586654295383262504040498886935494570438821588124361270661276248838652392281726202075093768965795825093056437169358630655742707891231486388207721528000870377434189236830702347164462000448314625424618096852453350157955402269842050404055885431566632347224081726285355042899687252382997763807860454449987862421499568520959638893757186748858921407359811274212867551772340890305604430458954961565099392967299064718772084898293829851506119250857918843226519603094186318323206129913151390262353163987976497662197502211778193922626002939650411174826743443067231627035251992461099600017323088619011326247715616845389928420351139988302325815300480985995669435793377871203133772458294588162766673849707570236798920915622803671235261205614896552734445555665549916091489273515587656399511096387952041948669080921788847513326980588976028992930704496738470837096361867112021492215875230058296798450058980451927003219787870084796965814113103135972328373985952762378908986545320821056004518502091939389171981204089582128536043670066883006471417207979207910675125662279326744948813202254575206255031419259188176179091526179843819327777473750688060058997399254760080148253458120070877383547513044823669596880656403195151737391325828105597506740338891467154609710193092180196058898862622808864479135084577174712400029968831017633978641211497195427923762283621954267180288473398598243165264452265924971451722508604040065661311261374512857261248187103094715147285339525536965951504346492002437880170948651783296684323182576507583020854600860200360029555532529156667910152274674522615596304595115234320665569069677329153812799927092062766402548103534762102350035702706204823077955975958617028203245756607020253153006046609524568148152951477164837536796590841324410062641121643292693416453339678049843263135044031810322933168817375290904757774081796264463623188792948029846877065916894831374366627515896210270660513716727520070284976895519339328511431855356312406227731270672371848701848981326504967381651041122716597011912733921438255686475524632226590499329229466450660938379249367086740596015946924020489714402611746847668077928660635845080831982576205457633157868586277791151969319444716658193788307250808421507559532000575280745654743610371629352397678857974023849903376115149851692198089892208946339732338076508137452960170634197712047138189067157644786882883642484096100783834396391206941878362581494110262848916984790433498269732839524106695751212253074937790507533962405779585721975304108661981004985014944687281927957486004293071917405844840603502869780881975638476881610601948383482327803744343364782709265430384444590053834177551492489183811570705721572619612351334660212693506777584962531550257216978270500555949105056389214856055769921455074999783859112655030490339597176723958053652500948809978705001091257501380658867698930992580989497503600974467549479135469131808330855266741520253239738095232185597642517284485395955792678838873019803215974060726219290604800570750272286618176110401134836722535055706537065234194071058366307213844306762368408724686884199920102565633819877704339136299331373997833580653755203386756403366672027047527124828008722943179466564241025864772173763256579019804998124834894524790420956558008688426149161371466110048025911294704555041308809983579358249291559093566513309947335633823732138287186754919309696684403163908915211808245262345303676795049308011965358571877736473778381154336041423394616703811823375627866133056686685730556453338452276195190471389858005454106260866308917366669277601268233411407878599756931666762696485806275623415245570695489557363362426684135109968725647064640290799963809275282858481192211615624655610253543811331100005284091459083106537650846806487023977226077845140327218769689549626595705130510855108854877007355357849135427625719811732882935601261230079777983435174069997403315189057126573951445457604962937375720257664810275807980987186367090188561825833194542426448531170491052812038806148084189025035746720686147054664912852136854756429333636107503057122740029280144390867704305570548852911771594576182906110448288302675985027264319169366766119981209984158701308455016409981621661424832227334911549791693813986408192894645894722942806322088522097389063263004676089604222488037525470277719425980825746426873822494756179157837038100707003244622461533956795089805921273975408404952623274846497679614388359197915738195815232549823745890929377289961129172393853707410008869977462592601893748647364277594973287489610088834861436339974809223919658888800440481235002244152546413973210903053877466984696649941638628594211375932492795647369997423174585368625882336029863687220102257472796821761723983257005951831774897006098455173088493615775393575401642070597540334825675650383523695462395603149295800022079814866778133574752545418158621736418234173319865822704212009971395660816433916780240264486850942755058730395324859613381150807205145301598636448904612005092100590486369217375501761671038944644178789103300407565711312603985103450352577665653397477321332660514907145727399293990173497455665108202378441525871122216115211257832936405157534253943089411589018877422982701863382826691442006189129782417156449114161369727065046565812058146667631195680975404725861151047855178689269739666157444495161175832280018631367679714442896196817415691423358582943972466065925790410772105858356439891344764473716323041403884941527850421098613223086821642245237749885031808900653771682806438810898473236777015089243745490802731949332252021863729024421887208684190448975573045061054012663172877853071089719056102022721398225266230497332498410269637749573882871436600704137791583490240362326207262070572024854407992436107955959321361167457024644016169600774546154403021346837671874748470811474256528887784147623140600158179059407653815908770062227484089118066229662616128149338912565999162173374926255839088605486353301629338792694446326117332702567429333474537854879473756480885406396855618082059101449355264962483588083096001564318254421041405209119139454935592307119266127441003189860528685815838392346066561779572443749248901895610458163003827982743058107274894368424603726669722619090566945996962535550997605238520911479235631797242199034235425002744874503400569998599980419750058561754843603364354872980760406347276285143412391535059540717711712966153114686068663882474177670760837420023046205379514495209498001650786156097418936704950194889387240712461404013759852861403036119024530476672775669973293937759305325021977313518203660086504797758794790878658806727162710585546187066642990579514018755528071190136614225970745726220445000068264125379610756689275499972393425571679268669296960555015833697159814342366872593761871243989156612201284981652400927666840126343157697692118585762502726058634654566009142455932072461926700998112548497809512117029268149623284349874686670448051836441437901069443093521973026502682437401744378229715623439715642072665131289666782429644522122060441586815690461806917046214642083639374342865869400130596999926374604375366954185092650400569240849056363958653832110275951108164858719221327152905475182675713420189237783394617549240075719828732793632928379051702273444571340849632303729065888422620578285030130651835425935145008199843789125074163698973269014950943158346414515114793582644659650548691394994258077049626203227746993764309508997886479992645512194982536035714314914420106356181144585322793577558597596821825599036970222506562606537436904536162887564512640049872256376661845554271162374770282619638761238872499946490558768082063370569956694122500050517512315653363331932068884776761538130319286282628578308182221034623066323070630917791846040168687974202095886974420245576860073246007079992508089024869396583344957271095120895397255331059274437434862433441874781090334318124033400643325687503220239953031971205061132798328337101416972632786299081213460156554522981321403379040640068659658348368603632507186531685187044468833527592556263450850598599030366652732910459795169145106095835126733436120876114047099030855376991263654829627010420476606073426609886737741960817527295659650161510978331059012546746978456896627215775580923336527167897870643309506698217003717905430000213517343587967663343752572663210497541752993286945138930318302454633353818277119695178347980868717817731946951071665946931351153154548351313025377337113331568514126110940177434732967767737301502877303718028765646111410139460010014422299403844685578660241376581613071821976234991047401712690844175354169103049530203416888089445254326101703760918379060466334622237044259213017270480753193695687364654616204292114221330160744222410152920557153896444691628903671578670038077472234854228722563996630047099318070275152526313846598760583254017170754208162067255709124620304520257486629963219115647748382845851575713948419614565009471669333195076754477674119248554522961692835370871290896494739961971528190527807503966589025251749177665683819478901278350190198493191494764427420259927949478055664451724324967791227664484596675665818855381276297952329120565647950719075468437956298576480577824856362889542261581947542296594691847639421604479695317851687503303279137206679399131776326936923852330139008365220446112444632706618632183789492824009726561470620865241813122172162100156440133531616985204010511024355473257595122873052452529412996845347237399805758677501068554789952807896428851131353146084801331727659848439401643269478193286819458560716490480824428300083993242658307616474824481867208223974266623542245825910922372456954605953931188050716378883791211775519618173151520886256819180204430395190587194550609816534913453635486495798064240150085476709504322427240276784039992920398873049922039849450710865639511276821530103651600722515400572758414963116255995576147527266423494197807247487249804562279525883058467911664786912156756242622655357397328672571178790907868664966428631669354436579040366843690473673468223478727611301849289156838218942270793595213930089140611179592173908482460959054789553998207961431370578838684202513528529803502150584083525729356802639376064747781378016858407244027049020357398533471130440685807958257070174550899322223068054487534594723819968413759646752801293255875715932978493671533090045308014661426085582823886154224745121880624271550816572680687721734097415577371245826699300889786207352210055777571622094772588768037276962402073375403882473770287393136647887323585891518728017125479694009279553635248771385469466608228491022945120420683915898701345021302568394484908589537041910849499041039386458899241559909753381664138116616760291259326419233317125794513699998052856145383901650102348591325728524103602984467035191088286469436689229582232786676454712304525681251552717068952955854918925980938379406446265926646701899225037575050523616034064344776302930091468281378306137379262694764254188588185177546812951922441539941345842352002333249859940884369407419661952782422259440174382254174941654770604177588514369090963681274939832834806278201403456996765189689347859595624395782473506745120476702131797857349900128360577837422383016977953087884392649000805708332284841901286012003216402863114270063173518131160268783674147687161765901053168884790823023398664863015510945868557432448960933704553080118068136990814873491672151986334895270557157831950794286306715860671570774869099025977934202009042236928585042328589865777990765328350916039708235182256546443252381562969153699369607509091585471283122516972910692027177072092998358600027434712250691478054334352197904532839899101607873175810266334608832308799295525983041392184750987068454666371886291394963901423843390924733701954436477579841780338621691458550161715292461405040017845762358514771398173265056423518327812187683354466730139677800059579923379466477968713418097329231187963980663903535665640260890727053488477673911636467482553864323038639762648361389994773654060426041080585125479176225505162874781386910545205687477289702382915585273207555987772138080876365275258852994074742679844044166294704486532729728816893901729530167813080900598873149690667199709526295583751923773178921699871845537842708854343491536768212387160549871711306387019998365107613244399883896541258441317393357728936640737482040292204708632838592264417694019470401250259083664331394269301342375024135679819515584632251343838901931997713139887251796031705184316010425460615264602124283846411888600008444472271146888391594667421023780755321955988189867703927388798557227255100001553461906412080850427728534304597312545613875444837090020735909563672530015856020294752877482070969508001863374697231478882738297789369151329045631205189241536640500350774313658387548337128962034572287522352520479232793892671119557437488814862318138430428334739686313232974114885413308342149171440742418306576762006057540065488584912842040959313350719224066579563034850803379242986906008329881589528803648261080337346129460264224156956218573071943004847793295847414887662655375730658240394440668707237900941822592411427146812807981832380840814656686448884419299170675361203337243768731393843570038308178286803549824292788951542524453284168056039160927838094053524813908083320329704337717992053783128875241591042296723226360078600879384651320911977908461594243075977382661459203947080940588189590099619852394031906860892749002115074155440584598086818324632565479523629780883274404980312175186153349538613220677185245102188060169818494194918617254617827410594360671878068346071901054125877741930803802594541434649030715424845833466570172998380664020743471266088169726201876236544310714087115892003956887945605129366346958122430833885014913022750414744557415674612541238614576447542636063267929941436920988822781005507555052465082127370263294880828754858944277264292173062819865024023907416579342495406851968281538179258074446648295884762007826503570056671452665426308498534996805315714643377446226734674827051500009490017851650036952304413862394840263371235478922726421328908769293027593162557933017074006355017436132925832070810616145557868244395149880925168467167751583927742726809447326463054579376043237052185444944465430516272409808342580151251345738532935673426158171886028802586745179245659211950769022682036089217702106505833952301632911463636042656081746273569519560033961586484820463685617396436237136182052848217579687354823627263754830709592668753225596053792625568474202769785337906071874469744161650794950463367735545634161123579206806581816339998732589054687214477716249448610476954154699274737074168203276168320540874956406222427423402012907089871984002107940502070613335730335322667259542034406546481132632475691583075595333492410879254549331829482264996353171022600013093045161891353449547326018276401771753842261509246375622404328609280553712986455283712720277791238730702099567180710560671843868229396795228895807319877521541513775325053316551827647503266059896042452673896746600474287675105737596308940363851033501175928259645481568240492167360149141194103358483412562813428361560729038985446056824610579492633124061854082314130513514954258340553284896103202713369576100861374848062797780120407548993724989878169533160565204337211381378837677375359742165637754924509280145305150985260527243318872343929122112730504540739591044307545530019300338520624540640177759004117436677544438237785815826620279175632467687601423140243255020739190612718057549255023576125330127369337121300596915522968612569023740364200730209387930896909061793023042225110158686950414737786242510244193049115422851670895703815075525337737143527157985552573429923537248926883326349555797901583345890308443221581830836046260287363637133735814591386943242024080351297892210601716054091930882136889829583756090297794843859824637575961822806609178340002140269121910154045474735025215580114474421200714469777800315741519600366152780732418629008901403182693975033240952747407026933594876592938756685505095902914251311647561046643948780437865603324535770637622562239300236123589092255453043873150566883594454194202061643408496370685934160532380371288579560685799259142514745551811986685308820502487556807578356811666963279135938176285865349392182312647560157657790626623350085183942269692328471175678553905446785349041837926192020165062390220920225542403005734560221449041054286296343327963080169175381005238671766659315922438802322642551054601205977798160077925152039332406552471385133110132017112359383643326985695951261845159025572635529971580001972686982731538425080091711749267741850873863229041784715524141013369059817495384220429283559884556262023588283213587503194303795937474623283436659754153071458803239840265603048803841152551424529808426789470245077907687455092040489863864340106224505593565721228134124382095793393037405820512317610383017022615341833303082160804282933969604572829685666342402284890602517157772359557589754491434373048217993647603409716006512700516213682563685844767490883191599932395828876783133536433043648895690448656811720076796325245985093546666570902136972956921620806325797349835876794257200290565216476264909682419207683818275782641054275557986481679765861328348445852109656355627839016476718003397230350600365723824314876339196757217210205330081068817194950262941573107250997843164475478693826201997757754356937797770876670434188529491679539539112028981887998908738546791223596548705191643707331079255262999843595028141645308611061413698909402878938979643575434052831824887333908241696953908607016050173276461627585463309552694526210313133211962263555147118119988977392742959319671145997450076010124231792425754502771031855503338256405839242451921962652993041211899541853964931419935973695806400083194007314845926432183605826065521777627787080772560301541425652101246708769189008921187394547334323730942373315187817212178235468981659856741271796194200868694409362230026502830973026662442232045500639546442778211741611372743870998886589664396150632834058665350374513043081239330976233863726777707514695346904810838393533696685300137473795911070466805518775631010312144253690895923191464391295825452740570118871340376382094631081526258748691471959263036575284772285737083726946328864912779648185317908031539586796949726035652395629739572152609456488621071918330764090466072746589265517174391348300580172852771938448744074665320871140045024393392865429676119662524048510383289482062696639260389027646996566986957658310616160813599320632171142895879174762419238218970084985810286444586714028373563757187583389967684873144365217147742237090968460407934339334902102089830673950237958618550885151687232578390912428429513463403573923604325853543692952268869249812426549034945062855554377482707388996491944736071296090159929301087982603865395400691459992942817298472801381690036884646774918738152086887112832815123280396295310435091052260826059478501793926789592380684681690712588213108192412738390327416598333687523254117236865817305904941046065317850363937254272686910555812482791047277368611727250516602947334661891250281723129490709264739066474419169691837998796030157157865966399540341895762361806585587892946848435504742294978399029195024472596305760039025805758701870449696703930591757778197465148043843159597799182653840677075918250274055460873530362753738497910704590631622683832183322184492940750960857707463428757555184634583176459529088909403657257947494066023572463014523540578736088205728184904878412744420306622362173087892684694225036349210741094190882455448246874768334105484946395412545890526864923617995177851122313822453360974894667388923099566940097572723010440189547184533335194247092878668403887961094249492646507029017283328195041902995209598000970448354427411913807040477782124568215825380495618171116762433104502498879335703621648489151369386830125615532561469872284566400137061327331745913022568595989114321615496826769745294280342612051621820043579628891664616579419123435019086546055294019731727984918633600123555869632157546358340091912457575677656130125566084069842525739902918810205628035163672415358293987096200715641564493814379049157739157087124010142683489493356206777068410856521481968954975165408172410428652452444912171151496514721924479098758399473095525238716258964645793478470706312782911734825327753784359102624729552495356023149260184938385970374151189931645158289458687866470591687391607344060897534650976311521848040127608739011623491279186961877517400732032608006567878917176334813517137361847633467053628337449817710873216605439106045747685070487278992743425201066856186444337736503800698729069621258233784269566690872333166572430383444708506990506981673239948995336027968093752218227525102877445583917216401548802187845744760081278978472299546118834810531438705412128672495666461295921687027569087861886399936684883173489855771675591504238423381353290029709833239931842875051010228128518211663975223097766747348736100958857168155237867082363935635879237213763392649379101721013200314677326339700644910442496895487443102240695804543750376304741365544738209121544053457689864822001076966532562537598912988018188702638319610355828434377214935080512206878670160933110097790936731401572373059453268796765583503751334374052825243334921035271128916199143071933271064406592092576343697183348127229880027581614973380927903626785940698134968651835414645832905350481289611723195327099882846202892433911234163954162523050125809384241458107383839807735748485767970007214347832293664820154586188998081640819175266344117467745924392872345144567917823320562490494567051176998769588909133957686597035788101386780164386736674240034040253918752676789660383409846076002012740467396861140775209884142628944889819647612951915489145087470630230016903851437039756739354882482256706543279179070770524190969053200715656903454070155306835182966273420355690129834393957355474558728366930001583913315836564902257054458006888726911060808627001196328064034970103173716685948993330619714181099726507233116082501052279740860158722236525555389932486851722192311835781811748570673468869694113087487686406323777575752917149675607847624117122758013528359434798860497591612102746924724047133627103838713954687782639985433246102050464038811151522461656091833388394461812066807450836120361704063055027600306972149513860721494362118613938477059784064160990021289542530856589404893626935603200619936310475283113724409292631519685733110199422154647974645730290204072835102439457156684963664465312060794339212660040621541174989663277181842720241077649857113651060177915855681670396264118985749569319097764662950646934291789665935187891307828209946365065361377368307978530881795505063218576054310531937888613112852456640721221839973141274412385272251673338989947881022649789362458331725448051236603094717458120560076077652989179373668383713217914153756097907562065512928719701511084864871373588852559247570138852143573444987203101895569156470331961301738789065238923344945938954434524754208089259399016609987876428807691033475821804309139980317801357614021807888486367723198301729302615495077702890626644374585543124007470805879592237522204418055392816488393916805575211475997436451687232732952926336761513059283293633642387191137451275568651001566598105420932844026250430050675240544196025642567329676058791571793975765254616707315552661799503755963566324416367687038524494949113799392199577784049090724389790871743753465022898998228472194497435301507268808649143079039670972920845496568969837341491120839246592476095567003885374941267560246568178992036729630673089635433444523409090071598626860053287989519809560821435306181657190945635297674102205706977041631916178293648967991983302745200833555734691788036834103132822488633174926530165058220926537536918398516177397608032066289511025073342665993307439273560522556106070196269838698949527632095980467966703450560210179162254565471746525484800778112031662218303485680698093461957641072676138458464046513730330071731374564340073807334314575422361102077242348147978161923912930759924548059909830515541153145290559314585908449178365136331381927478003762696805149890676167513204108896315327354451439910823566192129915762087304723058604620643475355637462076659579638762655388849652523522167601828737797470822220915957859875819302958722573269723944004942960010384682476169611340508414626802019104466509598722697357506167831283093299401044727214605323923829988055295242023589488911143884135514229458555560657416728618343532056844679665321919813583660808729029695342845826578294980469477094062021646940220494475395712408962902593850022036002816469795424139829997502983113185137872046083997543345422631851579975199877366738431310751103415370176172168630941862955949070800717467868391593392899394858598095516747873337469135683600962433612108482463902766770232282915878366282683876971337461275634910490943052332082062247683468939740988591323775396270015776998671206756309056665287707459080889449273297197441559252460129441434057532325669375927889779468321401230950666798172404446833482290925291485249896466659338715076580878118148717234668376811105475574205663908162317934677413218388886039960187932908010368940501107426366674529201326306426211681882884621428682221554165923407157761527439709234348482514700548801624129213601469320069226685453683807056799657402348267525137581568445078555950091667665342241447174217600365902351644705385943009950450320627731434870557695495623010034709685333656657726277141911825408012275783049118709287700206251231591849719415921987588052615903719680628663314964561342684809475710872150834549703100194892212876821977548633853726494003176265952296133080698583874109491012218944089223877278804873203311278465950721138941115603891678144449122424978425118175135904369841372591705758672724916228278222541814529711721568639106915361395941113495757967795672146591583498663757756113052653880813521633244674839134396993032831522390515589963082633575755729438647953339391328965250500223366095418389621092362515528586025252704509186500204450513405072192095692293483255972011457421498849846770553378448343216143391378622774259996558957006842524704321972847752947563225553778465131538865232681692861936923713468707724642444094486840791156601355278812775003507131313337574641032608759754093135601896443660229223787801616555495469078353872232427048969044888893966723390078850396717275786572062801778293305031167750463731605995065907088507682763872324467112331273332453940459376076017812485446829782620675911793930606946763884139751261003776555110484360494874104490510464883075257766405890338750353224540606964576622934591845170614898520909329429182529759298016195228096099602875260629423649781701349063703872171737845054031623951812982364730530646915244163332465151904122623767768286660515767406613740540804818562837196112593287912363012958495567044039424982200752169277225672233590708814188354459259714174125648786208082129703175948596004304533900999630277143534162729110522200000577105500267545660628245600331240174864736577072303255871944319539880154663403319285384041126993939262022967629423503847457240481895346497705666529562517748036740584240837926538369127646941552212636163257379943693675523795816344945778745754762274213684293929738767286225106459965369596081096518823967414269178651578482821163385928239842581200005693044605597008796831550027110148288553252719210339569139659763175315785855298527028214957646416383604847247205123694742481403783020742108145656239201525916456944587238240447039887196818212090780516602329541715127612352611079190655859160781314938058858061026779568629345053144713646479075003173371554423398764504876502507626829063960864422230980145013495659187797783963232910788634325209265194638161854742595423169509693918542414202094303508257924643757613235724661210206213599998808801709509296904961983227777478643071537388820322066694430469617215911901137224539547837699815066202848066551134149665889660319973165575622098541330873318124710043382537738407817317378020176843840703443274381543453867638537749033084997582688504356202666537823429920559207373418847376852799330239466092386575578490234233829751369517727502113825715103195769303820517707576701628620275748221171881040951642653502946649858395643681034196491387098862899981435144058321994335248217510770203309940051859771022164781702840341972638813526389598423062057411271477350140539261620044425314823344688244585998453747445196556442951932557610956620118046042686244533403235411706570155495180032506683220288878720413318258491767230024110117086218150403011941256012611675310684256962151630013341233390248310921065766528226781359408340488061389433269874578517901227257677322163955645630424657193884883848202711615000105448422133190697331674141204665355411699140940743393623854101920881166744121238380999554595090910915863336630337466742902699123218867062582055633178807637062723762968719105673791838801491877017863351737055280390156617273913469399106832360612528783809859328531954068729822685580583355196766471138467463419139282696785816680440045344102340763806380483315432951221197901191154855100514633319619783878359707173532322114889103264651222578272305672594509224257522436132122337868452770159658420783074099616891080029263073420638430271485512906768275646195262396994606508656005478916104486331735461926741164718602117006928502733298454154918931252861608230451780652434234146480580456031399258182249633134491063807824738902606065143323466918049860984482575816200476756671466816198398763835441010021745306119722694529240959996829237002662612965109178165510071692306560004929383891949762957917246816671219008632687781504893436094542223494285329967692543204068565041671901991229376812993781785130362663656702239769836838994362020071443056180038408981061953495330184844286894666100324218685933945714984390717314268328170828397789809707070586696008644271712989897188327837553222582871866203936012027775079358524778975942018986409712066714330782769643779423411561467472335845737166825655947085158795616073741334963601948649273752816802989062878760124695239485314391234979274423231714610246212553999560016880748621188950223314932589230857629510988320480044611562603162620912760510543014217092474658860189196957807930188445775669866311552435978998854207807837193501559497431103458363539366155908928633530024661923270537580608522449292215811815372247223937533041528568175625129206271177402422004402884298305858910439869978732912917857672877492471156372158915167037133068625228380464347157516807253760535660251162674221065393741363751950922960976052894499143764011602905147443711445011328194763704372478459545528829811678991108213248815119465340036777527202019020039348483662174225005990023098011557738690389360156773810956712426140971191760752289572587396248691038066278341164774701174087309074593854671590309709337724315929995193284240742975999248456020227743010451179830532072874060246627550932050093415559441853000893687996144786021609161697212919850663535472342518592466708615755360350574564177635762831073566801293597478170333415624553917447527125432256701029674147481629858291208543191045062510791048374352103348292071904345352533012800421256463154847094380131925793595616212022109622184706378079731198412359029879129646143804777718869897680547934319991244275268067173314232110922297578096966774597186145796828860405416415563370191387150891817199265081013131053213879783170039503767476500636030458876664881360977706166285729599210602625430225858033519726594488025267342028005169955150902244207824243664459489544628204055135941978911825115852919894560840391839943467688480429009620991104166102439871480327529581213089346646186724139430218043860394143960805601576404766064107644170482233365429532708717022871889461377386209376779660482883708285173972583984251860552524542563175570763152876000850620153419793590769104983406048688306681423658554571500417458471794251606638408356958410707361859100679809741463781764402572497841829533480074883266188290474124654874600064746918382880293284989327366117650960347743931775875050851003989119754835136656028289505287053290997440274494299960889642871211977317427113618590055871903199024479744495480432584753236528208051514194258285176073553850860052515353296399775113765909668841106465179189870226020356139030302190915557620995722985183653640819228061366940507818500139527852511955930962502431975971867635912220437651875567894072510320352041414917543164589851410710936205351802883287906737486906896766309515208398430041488008108868145513588788220023501615855013187921236503659187175725419445100464434916432333867394265737110408557471853483059321174518131856044025276302727125328093215895234472881154730726237873556213002983590169130794725553679875904647699260430890013491826026290580344888227991351158097642219986871318133088978381679146701434598701478874033927461282882363999695377395229165501143026742507103786761258018340863080597585550598790483359028021478548834792382882560207007222156063045948173900078647747487104257755254411844841480711924875740895966408179935400844394288731163586308624085456797776718807356228496400540958789558372671648944773906911877333370732750991314343667083274649501174859123171000061777466751511474811946031333592743141978099824181375834354710466538477808168371669395870342729694004353303129717072302586180677026239436364575863108414588775589688661843350914142043280892610491757871255295201074188955195146335986649994431215607997846354097942059437589898175210459556737215719510675585700153688458987359881951270443251971631555466128339444574991857397288569583554650407861086361360544192100955780390076983960182648846361196087314687311201330150171328296925587821086268835240402508658672587854449736304615740134824071119048749197589595757764563850821086251775336972678781603579749812263955981888949838059179126599776903190447278399174542488388521583289798857150449792995978802418323518496223884358674547349038702579436121178338974477693530778308391288133354232963290150965041200090281773431095937833691745941755781960837520872058241379249815232902167700847258477813786804275921501835875359082629514064741129855497914624998803003588289011626133307844729928717779870872779844298377311432848419061367936935095672761300335607530713767148977894343792352967732817348386403087853578893095808725908496711226459834646189329783248925673029101197370781617708919695914490888627380942958618697362752935390125297369652414687557350909717464661078452296905539266729246017188419121805656228657862618890154609418807712469590257020774975360614565113073161015698795015529387392615407049424184547534441929320390311242057736238761269559801386390522215469303864911360187916292080158669745308932432791668266684556039369744294303763422237275617550522554769844240008388465867783140621662581787014286067595979166083816633902682622885277719637904258827370126836436310174307552905330352321851062276317225050800058365836585024862979841470606817989376725557045117367171157099055505698261001092223109378676735925548881424409566527495018883917574285795612698311542245759740617085222844485684893101408292234015536880576203106369972484537355218973715939602161450623880168574054998033928226587057481700248229945268067031898354155356683550681688037348337590760437306880972230085720726665140655910195057949927787937240720463675905431266738341142333620375491243310813810748058386213817271706600864415135481526033141532198536682531737056990392883343644207142752336852350271529322151383096793440360362927184568373179243599848045990243658435891913465099878378831992994186217437075066393085603817857834583807448783085655398915642122546114517819214180531600657290585847156924287402863719333882555067910377957124381018724046835742850933897257054591748765151314432408115034515666613288539586309738255006149685234493283382917047153168613790442883568037477257668779622761178440440690055173184570986077383048009015197677198935602940332304115005640357240510501557312660376272776012363098449499656612740534457664869596927444380481028152804161205530969583831012343946874589753183541367642559160559960135964106375156562259002248764203638521035758252862017377483080532158071182480105898744354620536038909760380815053050788401961169772780910275730942238300230966573697408719576940782105886163686387225057154519173952872523006472417595738388453098427091517182422433662396304315310128125319181680782788586570229379274000733131512971526655947226113084071286705876157718419699956692788927887645998543110760303563689305645957992763049284011967510865674544009723605196409576366059676309947390430842480597662851246467410188504363019311514795783689995772653659804812073765111877208697125898351046520946885802261221311237589283483112328352369682809414920427068058828067370598750596903406697868541705763408048046845669425827113405835499780220580653462887901453498062933714678914984413244888412982811787607806693780853308155051134887687781369989463039912886475716928087201577024743475247337254208572776908402661670921867893043523982134301561460718919331255497542316271977611907560029188673714178556885643849251433979170625691794082362675050816221072582866361565555581336325259847604185655613844922280528467276128057323947216642632324706506869572217923719395240567886697270510070475424905041637116264227013404311707433257105124516734962798067109117556841129561433288108578341463757575412722518736195819880232886474902098854175235758391243248019420803926946114808331712257699278861804513343045244207269499619375100936201804564817342348169958669404332659433950083316581251555394765677886049627727418194298351514398046760852206052681202265105970284253925543148317192326735374239734805998878055211715497347565308194425943441787417712432777017397196671659661889279439763614192720609572657638520272573588372572467085235905213377002972989399185737666491274003009360837775862364826006117744670064534006304234811314140255759542926094458619917833786247331255525878032319355871570757209497514880372370742484550490665330753207528930664466508120275273870732509945919279315595310779229625762963656041398989019153436949203336779150497368549544436153115487480216480607592614692679852959925416279694839366682563790172278962299951436607317319207691693667444262757012131344126291907680483598882199578347819262170403782132409040625392415078492726544930749431064130909054249476157680283982636237964828784342943699381324092350712860425799592671832417005071585961983782969258708427627927062298170980699199948175545287280685944411057695600437989649926387011830862676199911170846702631257231635562913964854866413659781075809733510316211787639444272900768366660090233054421147236298064742242725778856710739368854803986426069692985219097490510365021276536490490818252994712019708452347595209866699527070443592500007661600313432461451947626727159961081594779272029338217554261363435685183769530166618416281165316460798040142640038831074903502603023109975596510939356782835575650826053240882328334784521562521994028982295685393003730616310011882081381361660191163205034544696937258063557919350348452480112293692618530919873910865878489592555742526610695822998760247414119223826990731837080514129431272890743555497878066363124099795286787362093898520452953897292266530636973370871757301782367187977859198573802788322238271413260140707145940323754414642632334726712228053387262474067364901357812742719214754598421357945708085367073679982336986415069540603517972453208969991434806413195842114595856202249621266293444198810929728781244258688516128468921188550746332313555554233877308982527141317057183917717543525744031243938511351544881417070120370265598719494681662008756244399129679646838852916812699620649933319554305832947585510234725267502942330553816341385789353929518856198176376498745958574301121542641193384436213199971107446222348694946424598593265352313445317190173900445533959372809401335539576238471450725864036943859168100285571871544666385695833710451733046422058776496770724108664756113785800586552547611974323316260645220978850077531301752512553859527943290583318459636456104871472521999794740364981296124190400812956600506811142214412699032716876172348405569550655405160706321805538965348387124096641300168592757714190786332774684645791084793518467268973476767723226129518358134421111280789059415411414915310904985365736245361392647275236929559454480226441553322322263102174557835341027891621236947721352004369412747778184644603575274559198073900785535968608832340704766362921135706891487590975732204751387908791692944073353002294845597641463993022490123400355154003555465203318347460773395925843691990926451735425832902704034010927651750410533681991059441536201228981743991337250336593984222959850550480599058254934523553272419371557981018769864061161764001871441089905322287045801793960287524786783514397036973214110471720709358846448581167398147861268199973114482838049872894947091926196616425275804069338521694461055564041508649521225600576281511658096210216382101307629095937763835853430302687482961188189403581978401906908755989740092989209470061581115667235036330883123532578785821664427896620194760973141590174141185810140653926515042266616984129498222407431072227679406813614406377509255874220091943812416205455580158886189660169501095033400026065280123147123616975706763844404704323805477051705413546567258573016273305798107936346231234933266675005282548705638761527036579655549248377748917134750471992352212709505685793787217005821432237886837934627995871636095527494512384990615569789551562386949363527938369724059161216538195096419516798185042303937980135399416188138666637063738113542553064679660503313556453139440873232485155434394133727231081888296682169308776246098757409720402410647838268933210658436940905737999099795271301237221919704475805702537837881371797769094888801708893302502572356736880598921490696547203794418606613490178638282109129084412456116313322408396288397300643354320968389248262243043340998398232637868157151820713819090113630101969683871911177625213554083695871869714575425602455145266358486185145710846486648058259399312026576581388710107429365520790834849193475273345363265186857146216238142052186142691871774277123457790355715675513439108714749689022194568571482009515956885570375275591253019654439647619398419098394595128672389692904919609154782308829622132128584352623224092905475270506856483367871054977962023415565332198634884574047998221001856789476762333395746700546352668421649824104089561377920116220548687999155705652897121061512521527811178274213640822355590178993304073125358476117944773941084802863265635999639474318886559395975786454524292133609719491757698984904099581551196844259009120540291391352859323166817962162619270434141326036477121235016763741080680161964170850362535905372763783393606238792584590928354880534590789057725621777594632375701783234962460167613083396405026349785761882141554749404559874154262005276754902691832075502527679288607032899968506705730855809504234400205282732483064273257246953164916682498579386146708312167510308575270476798038932933358771247946180681521848667127051103734880830564732279442110828040497619834007340927606017016680307900969745490259748512083728971228207043805489783781382575465360558523985463400229536984810480896170022908691634630221894626615923030171434787448967458461910704704403335385025683764122894044997072922329837452792663300069579237317804642567226881133391012303818795788129574377884551943331845690856767849098761183723977891434019375263245766530785456842733079404164124337596672273974561247902122816313251010340291361607299448238252782135052160572749384176286180714214174533650910493644518627958669668215141726777016256450309107028245816583673069285089258488426394787269553361924951507898506931541207157891345238578634563282700731977136846004490175763393963798727628699027014398934652993181081576548959299800759013857152571544670356925566440676341745916313987081310963907658836802158937940982311792806640632871567435481621309782238901509752737307333916206906350820131225414409550837924106974131692662999098008757106014898842619417447601430665875172368643563669081043571804876739544193958225550936037137512726118450706189175372195527698992423878372953298214273259830344033241174464998951427831041417967731306901083368380150443726413535031450004393221695726993822668506853058816637330223308979107807103568275052462220116011729455712421257290137219469244718474729301816861694528260827360232125725076744505561158315520851502966888765612789183330112867741476871194206254763992315029053078025953812307481446610649979164113694498854850494014499549789104863412525811027317455095785968623493284321063108423738471738737964730014376141158027350813218382069456547620525121255715472968508093679902498200883066958010907117523133530611033518001293621655336776427081616291167945343852442648746761160628888596292758799568299868413310790803173887776457559447091445650094171671761850754220677672061999989072655046564858849676962391026319407986025290858968283713606316790725169641004620652911508501056778506504817562556282971862375499127480725193332318260107912191770640218925530331937958791248453142401033662626359087677813010248570544170957741163818483525930389402746810468202547370425043391375964731164680565921462656354416169787658836068762416369226766850318454779162360508254452851740593129441093899455065209532404925010879226173095847669329340673084729787919632852075781430035263393426784130180914175214633745191481721257337888124928694077732315406889202616426372423893079987029293147364771689606367664712265242938486454943978962351997844588462133763534715540122734744573490505656332690497910091895540672406680633293677882607702293959004595163362493842779493213780088987670268712550380319433740646492831548229781477089146606932434875100906511671732694869703516053708342729823759918524165152947590507523391723295092997515544017940998399164428829025788600722319460330136999611652011558074991757740264072431131092291064243656349907443476271688338855750299537790186720650802825530375762618097565960907943320964377136468459598022404816558303394139956249989657689001421591152862730787205257680543572051930546065319806947856060107356373072190926643963518873160223537929441009827983746324472909343673799970350770619287527773694215429953254448827334351403577430778341760506483541582902100931721564830939164365862672984853551952453635721372886375604217408300111271092336032895604926607610869834594420753154168720749731559688493115961791793948023342587390157684141884755648241941098866827905863392933706716178981586667278725912515862986973134335386763605636325784781776235916662096741603808662228778643623429747381696758885661303470295537391610484078381921905576500811227862612070866454666949347385541071745407741931834854691622081087642263779353738643299510999320356223156690113280296914730733270745158042515721676404966451824403901885555884955220298531696500392845416553367667750751164730232611781507732627854858795662254268528131706804042972373433342663602724429968765799083562773825526788101810130534748330334149280713745101096036146771822267043503502026682435690607415409718520642911413163075625829822624441141305389182551714519961053297469954397910666173728627316377974805916253765372468720154159735917062564492482231802522284592155982301739942532806763408235188467053027961395522077273142308337463760734019277500233917769069158401761852158600664508054695896338235747175881389172095889814521531907012731237829250537644835638000665430394031027575029674429976843840101715191648955402406725984374238261532255018815885640692946444499103536659426280347603538076569492296789235103702034235689178053389913482681038571934865428374246252604213886037917734756661547373415455715688368527710824687942077044951056125050529967488303689419031049082311967455716912897320868190335704319909411252108459417133331087334461107374976217220497225850523273752668023599278490073875218990892344505799870779482529387909866752774507568002844086284039430259644405195929910983893787666069020186904207932557688921362987069001199383097310829489735123619133333872465512419018117228146664847788033553584420567094832237800291132625562195705182624585977886571686921571889163047591898019850398971494924829218403045830170087489865432301403039492560302317731295363540536193451307940367441821560780420361545210958104467659720358142404312677098528586141601538307677938754895885343685119492966257758926234252570277234822779402159454202799210657448938422188104615816727100367567221229577810124316590740766086903342844754473939549239033727079817532154501951337818181838721284606696973699225505699165050476086223242911385273430284641480339994123969480408505328365573488630724615525046930203600730346498075114371181213233905058326253975713905086420365711532307202283435768523930833961700052755574837085158066214500459174747150372470445310887105331090592080458032857264842219912761612892294546465796524303447383909222551299922685981703567357021196946787263075360349422857233716106461943569520784931210711489735836404196560990756398385699387738437433988560908396327524381450356742578887810205257267043020810032180236055279167577344298027405396181252383364769138517200559249732126363378721403325923825342540659905672606031644859910408362439480352932349856091533086943052436958071710861832966327091724078493869872111508912154013383878719254963598219264211518625095734010422966908114099077373410338370053944589772778339602407775095733649663471719163163954569827374777554085542585701731603610645668879529147411469940104569436145434645515266991623874855886772869904697049200086963620236980968040473346829463603145227658051259234493368063363185406244925913672393585443930413007934183383281813073839157282898790261010346632279694608806491885981679328098287894559871481957378024803732205383601940690875603670174913559270448353614583492900905397349932309560566137989463217383115454409900235218938199943934123091116869379585272009183157760108744642113239264705229502755908157405974622075897708703955675140606858566200642427050143811022711102197997690922130735821933516240900192873416252483961166803918571971596355994200814375348227731564177102489344727922026639551937911992471782105348063835592365714369560060381969136513091769093725593876001744805124398285655164705052834270555425576190895926499999428473824518371232785964495518115742328154007541247315979569515543332073028435239839875555982692239619634843664181155606595190971934541198210340107745370887663183143755791513921284187437760006188468215470629610405544233162916955965169620776629326938117888119280275596585407181893840726523574458445128484874374906787824390952665832415772970330072510785431627988824996418791875211022146979031047872771683778289098803942662389836538461279606454721926512316427803035118661913648183078823089253826373792158417945545714981030273356538696570412084434040709375460980541178825674676476925811814009330742777347553748051181161987202535743678808252508784453152683837122109907828894740323375683141583259546544715856519469285337718105972952769804791473432785184418040162909949096741403236811221166754909967123746920878070433601950650759972265949475626437973552755045412370468779066735881005775721682817330237014981657559526562836032981393475893121179849824908915829607048362669660012235164053782125049017725096314423879004922459182611943724360527060167489614043090364796571121592989815385130297312210291548330587407601474806514973324711753987619976564845543748549796805927857244691819593217104989205988422384511152186009820141170150218950958663383308548751515946044277457816384817701022419575029490750965151629474130492617893675437132624417542875240580532806020224914084207643327337557561702374517636391777380367138188992691790620188800113400274124104792169072586554395700908483616982919490594511945273182184347133519978127655624631189893392426814137870637390055697121322029515072372288268628546719680091291929844691066240013641037941693127323275424055814503685186427294065596272184378601605072622124140986240220911719373643715598146786932421253059183596893622437251373503283213391140654894546299998906442778171130358982041542522263243140631403527250318263872391012415326252591598167085777924247059912539120155199000529411638798331843298327191335762436373824069275918307060108878281887593300928692661919704065527055264084383684720287213735032075232520208673296582406892286491958245062595383957203511424213494389716161663507530461773265598133684186462202787605570691423065958672044978108115834656159109199963187202110984695920961898916962088304433319937124984370881536128718705206957913893160907927422804704003106435064491413384437882871103586031668542333648736400337679494607618774359840565149202021579833605560957070616654035650180399943579913325614100789278077326237653092086524137852154735911131056147827338585886018766315409683213974173796752623670323600036689364545095200055769641385471719782181354605810923915351477739119541598943244032143708319900021193775328392241208983940191628050915834183585787619001074078093818624651779830807307414962853249400681263121547003660627221827199895284514591973205556908757336263263263126111856929460140127821990772692670654839015209484140484147131531741918548419910751329847033316055943231152660866064155007811456531080094559238942250643679035876248078898707730971822516258379472885248786987158291835108210909863368356019311974461651614256252947207183024214648265060334489262764949308321997004901719649756037324038659719907995978599050862417909317066173967456387484966013103076433740135645075397101005079696635938485398894978960549511731103979187982958849721906293650209225529916883836896247609762999218550499466289307199317848296009571916878053836797098720572237241948256906315400830098940776793355316377581797168869479001695307575307174662848545922422604859097403902897994226011635561311664500364080297965323204518522254274589380354065301003938376063766392634787222071859843745241260431519719373947556003461745648169874390328580291209071006342366262359589331350548780799339536492150649401203504891843633760425606982029142470384412433183774544094383964861962463799592063368100232612473064987750500878478060696490176839499711868074443353139515068052506643260716158057357984103687495709339151194359218161972069879472259885286740462424928114691854450546858093561556956736976321115389019380621352435358618759124649548398737795234936512149685179468880497228920895303602815163380210565125988419370697591300475511983190563052298833043866903892054911396970637939607543088116045760642887554836196024746160964440039591013995473486677221878959211703501157567454988086493765501327348889604712935018794726208100073674823555093865110029139677312289974633388289040603825507707349003047253587273336933030369182568017823324754982826237194691807008253726058932375870355424797144138438272424907694910421604326446730988567053199423500655764983329936316118014700037461032893292040425872356995737034505164478759980930557167682487513143765825366460292720351825191041197601671624403816757437782220608927737927368695830035825890784459203790478224814428778941165220007900033352935456109959058237164090000999829943202045702125181336816618719533955626508865946353272584864443046361918161838404159266318130589305986607634567385930069279776656216036625176793461552112597391846499468873335627789377584325325705417048603769876252207661535272282151200949324984521869041527947847684263651161882483871807366053614645828500826127795918270125110451010901500061443509422982134348326536385195461036855979469423216869028680443909743946366908677372845424809177484649499230038204213393899879543671916379219565145118714665341437872391833080461449601409368111005273545843410209269529291656438445886244787754944036304652374413232875146497084723636565969786202069161056848536265531482369814090159699846179314571130875573453020956886362341995155482957351113126065491821811182183642117844827450468211708433241220624011027902453290347173782823684939572223952764308219810519861816170959349579430398068741107232021789519948996280774353289138543662730562903781330651831775937814599404823533779800561250948511629457521941998092917760489628474718935032857286319333705746389945425230261953572602992691338625151255516830122716725017685697204358392198790784408777866086236608138869573655378155259867331325728104224077434126389694428650402751983078262964548289517904559405195244085901889586855923053863275814860671982858826075411212199427415243004387330580468079518409789885332066362380375015663085591195809458133700440260905038968920058814516051698126037524519647601767120414476138715608081426778394344580798112347792870397140529556650862565954892405179662095708229112323145088232363165103771374458422582721050920782551398928712599314892275956939291073570578365491445875283914516771109657460722499771401848880088551668499909743703046511557772809872116609174531259082596886896238602322833882772326100986904972823008618890126413385772209785150485351496433078555708959868807529291131016361960111488749931809933684507003066540388095609177828844461599283780830382825716572910743524117309445839864355425826795419169105187100974846058306386546714532845000247946408631598042853949769040341783616493044990105351489893928837634930807708321683668685228529174772221279966722053258375447430141868659971694999664847719705211685856409838188125211537367306678461081326031429629880889309822423064501345023780460290308416917249977519760394536888341036896295170377246796090001487636727972259212477500904447134741237690475053377620266363272737052224794533532337286770146333776215825766290708410145527302712595440092506904614933083987365999010447758187198078899633892666036395921822017297276528127563741600516260155273876969231532033981105802586223256179956236383379890545218621078433869368776859590607914653503462895289220349512767131078855327568782619598159618647511563446418346564427663552063407780675906571076120729933989364727932543990703224443181605360332820521686250616400809029259550439419741843488493764424644091006387453412740105514729191361637090969759230411364736779901175420143029345957574259453197512557390839801822633228278280551162501618232547159954801624504240229919043503286657196238061001197518153844982928224276174602680849466820269443676446627361638493040241495868484883880144930010033937313203421273468400420518177092135881102203960070934388052204643463340916701964150415999702323784417746441189876010808043422613232689454732645376123694876853657684506002010334017914339856791305700665544820932509052089987797548203290650179655513586810928172121760155557356413127670264686106997165595962003804023799871169376589785811205538260196858100539042052218339573787640334001076257584759197396725400476249904604161344739651482700521016682970867385070301834096544744823169493301028849303660176586924351788753804400512740671217068128607006998804242570426001907615540765884194884039874305687221150800127115159081799036872386757951911261890643587801688483482933883456168126712067200036320110487937129634551430860566930905083781456114633661649703271643201720499574800537049105976696610374067383543489933172936903301205468468769823342993722849615493269792120948630130107093348521228149984225299369885558397847912620903700981001526451277084555899622653241802331789004982731233761674474596880929114041734838207057866834691994620659496614917954554251375027949744651906007451335238649814506134434802890572277734609241248449077311624214769044385151701074533310033521088701349223297908521796496244168947421484453626748314136034011690974978792636111412319115071571008118578668983794360648473519622856504931296355913186089906805715589165320792849722206662134281165230200983445670386819501810079933923008137171779400457870245638196884602050093713395054924329955812703283914691428608117643783481478004621647627336224970888889121927159886705291429761183519933578475954541339729822020315967661594394034835622953140469501916526608190262836933436341252667782128812437085532423515914686865196696036631916694420791440600751215493053005666787645803600281142463261556654760865209471294171182582761096967439223652147298819127369209688573550135591539463630388769177859801231364474647340394552925640779433205688877223028945057789667910059963162135161067659415151881722800943361308640429480990062185030721554752048268377535811019495126313863798788954653770442618805526815740668723139701815437733157421169729250782919316624586856401979971529376965976555899281572521235639984097552884225996586596147451919063936143856742928613672653201405345837661238217593113892477974794996246880684636429136790112552075846970994064884305026442878086263468004282053073609281618971271152724066617257814485101788510972315504525534094475984280504497063779546825858550157147086605421117951310015549149937175187538584918875213197193668420438889785509023592045984057122095992020928899608426499766033394134284110146724645045333554264341305793968040983327243392238617150162308535052482265059145027316417760255127587156777802789689780786327886538093890906983082944561429057357697459824982262804341748261082804871073540500315880552183225992171562870813682475911445259208712563675332505444785408963878776206393655485480816746718644669576748964457392029136871417307372056618132613076000200453657326453610384456708978126849526334080589837892040261223873126165453996529390024944696654622726287642613736438494081954775795960969691064622464399083481622496214929741468468961425689684605167116667127030602808791975382262949311572062205812841213400776467860208079577776194218631450790487317491043839270982122229695590926347920859729367030671161816732516777632034237933669584648916423383695749555449302222766115611737358075292612233153265555019904029821242300877374718616666138098950306177084790010208845458221148424922352608184956422167623328060554309589932409757335911475002440369700725592020515440953104001577356244439284250101781714606549554215104813945662793400183835394172625840894320753077469758876164954062181078710085307052610484384793638722964197306208488116573294525336204251945725882434708438567174656459072474360628730197074592319713199248207999920412378116603144456810200491848319060878465869174807083379051241744063198252961838290458757565857339882422066336255664537648737452267090533989388288995910226117459280813815193891879393823795842927787274714771596418209835784851062170904879366172840722944871287044468593502074882549471066580669217687188168585046328292353762699097633477406277395127996763002274955363222641914778287387128056352281637490495337032211761626264210315701656462747936042529700740493828108680402991849592444863981544014138360434193753981449453438296990195006739522221832012529281253681255192282883505958254636389869663452363244509223509059956236566615130264894627150452799771776920088892373803212493420551472772859879564123477557079407793556715883767124972151079758808922656392223344795719880490670416194935300045188802027965831201030757398185868571365548996216735446432665867685949620795458038741874727682082187014970877733968575155971605035766630998488069041431009031306315155913954351082879105249769389659720253885083834534590338493280744098873042614298930075074357834976058267439372915773420583856245983614992043935528575158068115173206882321270192035437525668782983543267728420956025100101749703706556440687979630906658473508269931359921592952463511967331845484900024858964846545800993911196720570453212308417761704938671949008979850167895750971615169225056147075194971802027519856540370754023034939964767938691532325211012072114103508825565258745975759973931845176625859959920284607238396530322651788547341549491074858871170235055507307869251464342766904464469160185100616732484550525978873717824090004716013123602469392200902434038188719225103595414122143028092710282046449879837287051254369267333082169899964577659933789704124981706166993192952737710833035117700005356245398591572962497967203748391119671814146147316930478451935245025919855481741768660407423421563214030662123243179354949294642929783445626784702396467596002572456193777418060228626826058036235982228951483969186373098388108302139707641159411528870478016521799154783776519223180836800211954697669657883711355433737215729422065237791881865244042691600916323353264715464090814713690564048341125771702113444053526436431946230606339688151952472173953910697190681399749390672987194113398977858388549495489922753673936964875757429357278638146216270227043006400839014099195813849727379817271884021813601852380355656678185984812786750700958393449667670425163285111697534111091461636590556449936891865716335101095758579325820311919734888215218745732159372616922654153029805011230015415440762746161488271588231310481640530273498114925602845805834699552335842898279483141126361219963553255115784445423242310478543085936783740038114270661331011766532310173767705254202813358984948794148863193852661808225186353720219830771421693902222401421244291152819282053417301859117936705739140730814585036293306463457256110667804557745585435258339251590356991049675692703817036517439069049221027479874164648348677620077152401887010522670996652042546278629177666405944902086636209745369686322244197245355588180388135531795249528605275194582377089732441766518599303179389840729083277735932144019421434513086546236119671556698364066561051357573276898768326474527132366546586344601617926805731124959273005843913340163971160537313754107145491245564231577416517552754078405347810418989832750981460967459139940579166857862823598996584176148091265674416791864647545118706399552075661623639891314814424300476431939459796388449313877880313262551080728779841568017523910548352316311467210939630969938186300009980835500314234083591783685759355385999869042347362327733283075960059442102788583323716915304513931044444228836899901434662642784891722053649871002947491265617639698896500352845678519686098849173596986272276410772023047799851629270488384903131534066400117810476597314002575857864798906067326143869930245276385142654504246181647065975349754525680255016911132365405525900776501007600870167604287272654386301455550930207131679505618104404043588385384283901094276422602590258401566453810444185604447846000595995573169424506522974130737734768452421260387176791686387050306269035989012705512954427446361147693085830615098954121714783521052657141724789723405027267783511810537190889742570472272121976356564837951761673736066147707881939252309916048591898578503451885979250643643991842193813687376301094911766384388233932551227058953578211775171369687812809560786259089591090361239147398364981478165967312844511585974865270639419270475199881617091221655610376812779510050335226957630441230355984744390036134251725446378359520270365832793367918941411406660417463005300976190149320669176594225761546997953084555945767128871003278439277632422477259673881505808468970017846324503975729239593871697267094786840025706496789561022702740956657288955531826700782954836157644128747036050391850599028675740811876608254014912628920086149940916831129687225523066015992351023865474870844775532400017841287834791637067393398032263980166001833970300339053036091774399021849823093158838713906093446290157246306466177858828853228495784961225400589245208732612667222043930433630909093209188377523410295389911386118001215508601196241588102880269109029962595594772253158388349111012902657106637901437037598884939933570436833532421540661975318369161718693176069328257662083162030881596139899680894114866442544032062644368646911024815385495123718776907511203382902114336526705731984967436168669720148328470060686849742913457907394049847041962964490326770362919427953252139707276105017221476666734199871743176896533713645816392440702173125428672378962990440689592879185749074110839912789688483632299867833838447356623803607020814726386421457817497200185775598396968773151415062364497184935091286851829401445819212247548211644314686709169398927328716446492819381846106636089078468084924619853136216478476426813564131531031304582929759327281222663538929522724107681709733726539000115659663839640625203319700919055529222966555729078254575190423513811603448474368295428758767840732316357076662470855797748011431679228240196782267023275982368700254419564193024244040056150126322223075110421822673644789441271586595511262260260308411073617587428335749877697797409626555899914907410794174608729434160712086057899790755369798996780632289407469677132367816517358219476722909560042930472680255930813187589498013380530546906610569792135041424605613869282109697314879568249233210682092395181345270783684841938756130589488402908834060964620864050060762002965255655499328869712763033598326497249112023321270382659133452404634092544585893151141418175637618369775922544654758095462318106476699238127074876329845849655668188833471835581710117955819401788222558057777035704292750675402138330141976202278489068139026458278490852815983314662057841708255687521806104606110710987426368987022284408557062614764242230358580420262784197574920035451185930870425615408830799340252921095443465715176846415600122174624371290837042368547883096471921353132175801489375188986481662709284329411647900763262483488740058645372953473988924923105525621665429488181973644746993299894229423595142187266131624868393563467470863156251463901545526659243099488912258203337292020461404160513320467445977676540879681291572357471295473395951225556547520667010207652968979503048220965803494066845576356569302113215363742112243003019743962438338652177730583516999772187588142439225225327273584589323655266105947149886131033290324283873746502085874505373318387884784913959782820633866315448173444630995618575673349551007136835917909846876711182891086839526064248541986200779502133198982492654334894291845141738836695221439043647375014991413793337924111085268964879976394353992753612676935161563297930621452695580603596453788005060622020321850932478958888028642151647792856676932398234093664719361472647772852021568796928195753606002229495879393138015372618613959220984430010220455155054841315595064259431696530828543147310319078729951799135503685376653229658595100853988843938128959584604840706542179223731280188971979977169677986400757009888382371728617464958490802785353435980571578298630080621322157485798948429184345201718104747048212286508121306516101024971013016658025019377316626782825890719574329108882061547003803468954018531195981391074668275639979163106206241727584584059076966377790781480989158734116306415921993178809874954503111475561294526978795758099526979834370375909534228844119869571025284889121433812907653096780203730447949687462989490779762055440980901006549213370396882939879125087173985881652385517580228369761109963741713067090126994370285049774003108909559441154029633532444596472391356630623021818669818583097909493536858375397646950020150923824930521708505608434877050690879660424666323478349567810896265284690856909571289241602344300556370670199873875022726489178687347402202611467708905836342859253940374774720440890272482849426615247787502577688054191704568455010344351567875552878703217693887767390235519417147742183146495860492953845363673051709368840811077899488210805941527885611601012382143065675909851241627915701365816760972480172573971879987581407624219352319800559250371155645765448338622503407076963248423815297648248272989585480195664195207438785341517075438986984657901190718003799896543812822929583873289029901347769346866379337622894980465272983817491963566297234442287305765130337762243504776407495407822250287251213529642122545871398821237874785297095781164156893442310677681980090768186730896390166093898716933279352306244063485764961181943029951624824178054188364503771601620493788414640980279461081035679716919726203002563266363307527847744843978526525107618317809568741651872175702164855750486824114492148581731039236347150202531504439157875636465215008955045952194389276579750874373676833752628002269655147327086488858512314896388654417468358844432818737946256109220626453195634750694996975171487355389682505081061636606457762810650714249865353737438404962538396395937029219493363482335042604269591644328429420461352143930438311823028469232561281952229196277379371622494076485057902005675558601602162473986446446277243125353061652942895347875450739134838676188879205375227674814630348193638946463327186188933403398766329139871382238929659411486433525087317534566896795918295406651168182999545618040095436219940295765745717122579076791210658899244371509958084895454288829989305897437797973394791604975330377351075275989230158817435441381484505259540230490305383005151260828310764973792748630356795608647870253479577995984050519611359414280896864983853710565988956041996634140176207224609467068622373291600576514920210405193313945953130811444178749879688796207857966077203633791828986241606652607734989852355206236371213476957031311363863054536044515176437770312626621205228656117671764225369168116102038881910003248429267619153824401180709056808089078180968147871028615382540530725821868970842858702332609118187540833361780203126762284736119444145533232063393746731451248550796035142929528913961779111474823874814917886316604657205545644860695126805901771790338934983726329099571735398771001297264744428048291119206012178648044488681948155593715234410228340536701355126788601245064084785464417075666971121092155280572413373588731540759824169005745055816311407342337563596973519279256068027157129530940978419818358978238805570689911790374588406403732647687981548915288455309290503949646033850442606117752388761003938335653421910547922791886946310856076717240275700952538033709971942090274506454609013719987555279349041935538724436627062222813955842413232571192884596873817290291046537313089024823074340974637357809314612516557777633655237650312499787036179396621170599240039828575510932504990160204139895594251032659655427022849430940501694014030584374034987492754403540691318735390705474797327740151370187823691817096851983658484828529591396011227911003995324174455767787144515515085695408647300239911713229256053844894855594660236557255039778215953835213271056058035166987380468220841668594284395330023515893746698035281979531856568031666832730509788915420473022094247559088727276036438774793412670771044165307793808648665211266745015917672396312912491586259095081614906849062542053246872728639694771637352560784932017508251968056052981551735923974499832616566332058806352934680013852923448040445171852879551573972527987512161598990494634745283728511787059709522157595313637545229625360831199750067299661559938710313140495642644431169400362331402674966112473532182172658786600329372330801836971180565979040185150482608368040057872785770270115195524083265521756161298598838438306146372267573593628424899083524798069440602224765737160459852738599601404240089800177611619319318517791776137626621267004912416465978794510891256906181201590395848755255193082715763360081825396280414320742846039194328550179054549498635495657742257310192888597188102991205602695287016595561451165445127813842010352637365619206590800427675083029664945924345492441970571494271449410403765592541983182159870413174052347768163181142066254772609609591458643436056659828711714243598278484523860108846100982765330657804252772769528596415921984023344197819345865927376217865295994551307741123229353372326925611259222870941384281970673533786232894141792513498090268822269206432513022496739532021920016887475714506519403719727097058184191531326323971219770658901508441090595881402299206187662872954757328212854509620884084743266997464409772651842012089951986277221575017417893854358103682789932924385269718321682432821726184513028807945272906417997720806990064337444015966888455558351722702671708383678418285966218835520615803383911076597074471181747847106528008932220826402719548850974690874583027777451522824398742442417114571206127231745926583511449790301357296411603804004706721810858273532122245441205707719756937979016329990342816766312883190658192184972311949801258757108574612512168147165778426388592997810820080283498040305754388348163756626350263711584710756780106220576467517037345404114086334850746605035778077645078007936813981205506941444488096773835831804471806905144606257469137592204061891557704615434763590716383779274687831768618420811974297833728312208344076980228801576056913208353667429509769036078344142302638969773939200462251541370508599583502881366994922047231445789425339117104829325808771577774248297200417673036909822040521646158756831057626160113646695457476045343071511182781876806429020770666516902113080685415429350696408964480180782568580747489770605590211082678948654376059181986811316168333149367913836702176011139003504810853344011332888581543736570194639213485966488890900306745795998354001387051591475241788521114643061886100850060720384221671695547051060333716712108875134423055912603361883234218552091921494664155692964764253845305890532118390535101927182704617349508518728060966222587012646812366563455598897878456482919598841487498979163155293343154282903111614596039951609225136652680192268227570712260009578439285327441449316997455640662173762678089845042475019252417692441962393546265334995630985835645658940672374821942539936722007976703161502750603182251794459967403051521588773729771305678602122233810989686071900534935052906018448319736483773691465796381283128492220932518855316788983257378444111154866608747234477115242507798251806170400923820176914389323680832938239806692117942006060429559612707119237952330081036346171212487706808335089030239170840798914786584133050179820249928021068845434229383449614706342494653375392628548015599103281414674435466015565337096411043052751962659159691302446051797706179557602191218625327396611675042391238685636418464146522110656129438053376314250083447578146362593644008803828418068465448790777690856673692248371004952484911927404513865877394639050181559063452776090351194699380121375442329034202093191578802376414164180371376143324259335085965021057258646218059329998757012619470693358281664471903769154790833038732325356968907896322671315719099830491201343842779892046594135246645959704975943579188476154893615157137500982714466614539409747752782382299307756060307023812382439003697650088124101440305328134847067560470623511029766682289512834343476675534391433038993962675220675364920401600034511021500722104423812815517407018304039926147302160500108496607320031439132576758627982987399022333485468184303718640758298406038542885565816308892045007803351868134291452648780658301875624821071106740224352488276148570635144970416466325466666551775693221012886096330527467203907359104670901671228612034138175812319007527391591127697773333999610478600671940156716641159096526420292354130521857213181214890838253530073023712118226917597362551670225222364978348641465767419286983091149422477280947954620861884778421682562357341491538434445598627292533909639723231243612015699471723387799612919634828009506152078805312947529681340395632992391985780904380888960218831753745040852961706612125048844025306793740537420859715256151140528497403377400765784454090483121121300310399803150905769260622256291254336962972873879958161271802091723394612304652375504203181909956440723997071545988220018288055819814951693075773113412594123315837510339423513889331662057778115771078607800072295312720689541343338611458672016470354274163598299251925715139645167456435844235505207032073070023162005587810157499113868838692643868629658209917290050924308103649490949855966706474604779092197163591353759629823739700302658510795772419706118764390958421226981291603177995763389090391040012970204298669950914752659224255307195104349094145774844158318432397246559302384573150080842729151449104990716535181036115392443682546169404798046950886115773280629968197829220399584092509095571918207308710275733655635687830099004527104929046979523691704430387219836771121743461074238340197474441701087297516754690981624214829954905051433652272307971687447412202014545958334551027022378241030227219749458877578728390590179434854649087679779143316350744322674629166429595231114132957122024248422368066673444008498390257017885468062048871479614050230517164994719165884957774533428462466266971033405660122485756243815795130057650042089723916874477696194642828344806835847273650554907445643160064096024402245572764514726281957103740112985811419188515122483558162639573359948260098109516062609187954934580184604360824166732771750685130286648178570945327840675026493985915345307928632699314389881469802115371669038930744540215381965067125439444474119408347009714747855442238611021485115544958511959751874628948491167310572038911944165605751184827737693346761000770593472497393125764375689525888760423720738825533851443130411085454550742387207390803032184233982186678486155155956345961430149545016410116938823977403307628528100876812046784453954324376349260834850890378125134031295807043436909562715192327405902594309342723741563031123879164255616215459490601812475441483706829139511652495371308000320718553244394785116348940997810412363811962597186631036247499858031331738015464407778656538795952672906288210758646048474456644463570824346469828874924442215342745933703164870028781928169608801838568371413805992786036411280439758029688976174683199396455204905125057936951764434510856552848019088629453972993868866801259745041064155883718122311902802545765343310165447856093743878009432310618722250267534804891467628927109963069733880405403262111890551969686004303979778542189787529064347873760130122158591103605215135088020386649610898167447531288618785465640787297281108108422657548851460982686934688398564794503482142235776906517529146884604574087231131020302081474305529747118175597173319819066013775926854418893064104360584865273751734413098630014140943849203872808348826011869029711962132717820543485280123285337795238231279931905502054924785908414016280694898692109148036463156240921790434015835904532364187123259336551493341118132440425342617060336453410665263832531124027940351774227983238545571337537231705658193822721961235230843526076208620604293398243643747619143572682060828051165684169303533254605614273774327688109359668394034115548557912268958919745640021806309699254719890125438705941816111280373882501562537529942183995167715051191206663760594681398912543441006048924781202086290226609105270862797564351599223186742925350897494064724314223466434834529335602102051335244115676328204025998523816221305544574237673911181025821973647312435721884199674599391134692300057563366529957922857812974519330828394196947406371018566875188512230862014544533035558349334082004049391377366303235519550198022973697818862857841925878366142170537283446071306283920184226758457620533834408695603965246526744636540940464789170398190241086566048821539668328731813395182751941384452968623389639293983224073585694324726573877538599197231877141458211609821308523619936336545617729437910160586706901768379591982218485238751286780527502492933701751893669250373739252284776754941037488164488028248227470115249231215777718012469792534197859623126442334412303959046503649934313291664734631672102331427023567818176948423127998954128849449817546855749025669373732015374910210482534819941517151194841512279109440783128731691265909291672387853590563341106100340163930507255871898353714406914662341764096549554684493151482214910306071230253906865997797517029987723960407628624717310786866273158326511754038786854855279207907819004166880740694761031698551145484583133044376619489324584729445054557923140834099503374015384369114225041199425092785029347779058023729731949825419788311711568850853777744718779857369539677944588026455941579886156810861647413205493945077918733147831313803857162873744972755569852217696316441575086754405993585342156384939884541061278654836528856473673737100469010963450352659119931196955163579964469027126499636277880013627334836312990193730904526770011921326759875639788178489504274628029908593969894808351965994852885372339430019700170981333904794902236510394640770582069350700266404501260217974651922965378770342477106524764080344252835560314522722495437548572154778639224333873039795329018006692166481158346311333234416302789888435428991776198321710469035069139065864792918221716769617142118759925577565632999297855326521111337838823329967300964383587655113997175427494287668838603994385342439010876647766081965227331108831419465577513355860513197573530436446100839431269342529439630437453841050025556603808683730893859727798156447189985988138127533181411850377762256623114718077104941872209696171662185335656343845809749788089867671463260216495356030605870796662664568124054796755296266853313461827280772083796175352024323557907936805299506042938520113852499558570018784209185872246371226310163565100305674079752674026819110578908169668084023107204386112906901009560185785476190565801005164951260186986276776827315751801364665248155030353179266438550836904221759975916921079423675120004413192729809414058269793631402395609931975647502496858633405860552756858959992590997497049631452113154808309227605557042350713926873028386886826834325071778086293182786731008156766816430938000328569032839006607371410221724689006997896270783521237577580567520589264704262358080493930865230260350668725904952161552186180804567084652473253878950698167999104613668235960210655776440500699278118707426880713481219269863798630161917402130841097786447273585088335189683043949159746360066367750608763513330188742843495526733603818963230280646353697189926654581014616423732482732698175739660078854132023143397271625914668664493478648802287256648367418856399287348935154615316022102356150914150274071962343699854173113151157719085425401039774224693160639308099975496348440541534509611788078696415173704852085963486248273618978510067218979516980095999793155812960694764443808065836211569711154751116608360228911938798331678367887803925791732331369956238975131900381275171221397486308073683249029332477228300419151502443960286952860399449726605469958208462847375762123204143353163939575354258711391123509173821511830212554528119815022300248590094011136084474659972906329020498584186058753054422802241334700026009235129750105976770351854728174572176855558064665494803331577032724402131742428140773277182653938563526000673683596600586974224836918948766544609562095719926101498559671628033092773393099997382275906422863326216416659292085767968851809537911378788563626770941283702536032722185167220533319579825770898509374431360476914355436244194699845861359431119971026315506178330277915073562984791917490477634272665047822774509443005420711107527517103983810008487996633109944240226911898966929695719561260149285320352201526032640822150988897458390796144796320832073952174598078358866522059298203890690204555069962021799080876245838075388902993248019515804465600162768213975206041060581657257766818015579927934446654744955608525963986978804392563081657040162656176048987965101902466179221211993805143505736547762451360276200689568508972789616513449988384812358991752641797564681244408557008299709304142922910279029728546166760389237827602659688835035282791152118998605792261165118666957410136684337522963630847838779369740485829321498671029252315700003338180955057126236769112781742176439816242207081318961756095981565806441301227624888678766833567779958052673193207039072539360648296035789415415076067640878217751661790573496439308187758480123830219300785433596317954743573654300085236653698413439227297389625326681090449154694110151238095601699507595234477688223411537402176579275997539262705278070576931769835335011597686468358966912009585074705701458374097064583659239422683526602519267318562781541549048572440378693169301209918710529958703709829421163112770039140275148276454567452929509258808235494150101170949877340627110896544949460099252912893199002234875665942433003148245600479686125101395978702096989543285714095586289678592449273931708723730640430612465800625132432436513871856214836468801785470412062804024050678150203496183486479833192384229520370100926632598904638190646912904793422483711957416541209880217453095473991022482685906082849453412035770981373580803970923380130099323178129339468960325255801658139990086559305332377836041641479314243662419813113952666330890762228389609403393240516871110994798517524645637194522772724707158369825625550314254053364857923537700373002774810965026299134381738100489743349522143019015172532367231784720072115860921365197771014787955914090803254210105278878163158486278743747748677666696975117782571845932733346516405370274943275299004939731542304250372225943524811856190510846377838730549006609526981579971761311990755971630240904049023551571390035682089873284492762995902927189911114117927411571272145545782644476596465946386500106165953165032642303459618621227802213114273609984863425634664675657019468520536550949775539065178507841563958075518578018818089253048373462947705924255574360612571847906402029605938854293113612596653347096285416974317932566877259452926572535717212773587749039719169408402312821646795804006850241463473088164539842190717884826330081406453225706431148449941177482745159340024532654514400151412159257539972073518223111381240580851873396391256866803741863834885123730975640437456713647207658403340652215428832565772725134737271496086162608503374771383952804127021772614820808630803850979229930523677888854828680532138427796116269863230072204856573593181890522682985045614969804031109152818644985589663969284568035753940503468508572565031877155712577389712846904192327118196033864079043456400147559679145884615425407139600673117345029304303354194986003297098162873960384780939870446552813453038097508639432101545232713080995525634216527867615470830099122866943580165972707387230134901739794992420305251766134381317184988541787997125304486133784821214621417635132816708963675686356139268114322699815789040090997609659687039634664806414142296478322980512161845002602631689023583451805302587052790615736271683332888097684568856872113072593657660591773445989294803523205804179907216014425008967283669325993415064826967171193076023687385456700356176250734055751247163753526062884275098284113613380813520493059657367960584924944128144040303820296302229664659808247940884730456489055369449304049269224157608049327229610442820881835282924520778595164515674001226801247799443984383618380828434777924809771767433422293447536711321596419102019391039075519382910276040565156744709936499886066389226408910019657602093806033807180155557411701715585861151541022292949254624775087451696753414583001350070689559350416914742424950992423058251332969556764529183970042123876849740710522722129473630956610513142136475768246319761580564755020966584478728838538968367614693505421504502895735032334519440881798669381874182315105699158405525444023985111419584638342744986067025872317285436157637505097590540906566279840572559693684616803869975461596008442651666435876191994799373950746125378010766353483387345335428629312382925743084382348134277152924014738733356157077332764764897733862073449276094737779967341005542783909831284814104140275823701109832734231120935891319085361553437610285905068472362716899148629535302919528163957090061134278568458381302199643991848602800835529411148067000956717001527689695234103283065348164888508619586226050012712677609786166005217232108934493705370293991657975329811297569113513080451425217085472674714858134377722963591287288529615241061836514967943554161027062572636947206366942290489697981605812331247350767644556928139334232924961694097367649649346326617958054567275663242650851662548298251779440474990550981729502136229688797304405606690115512733794721313591606129643957351304837824123174266114344150720373639727575431776162325227353028416150741728036788830295358664430867309150745825514557230518435520635772899746687443178538157848285743741100452710251031509972042823314607474978843172811775368153246135180453223607855501347011166492257453917637876901943612320976062068592432058144134299664784054940917644844561183298789474463006348550253762923936858706013445626935898233236510804668057299656569067186899009410057457273796315429775385852783364516567198849710195792522757178788270980445615940467146566594585528707508023745764513425871516814487773934590957392187884987621234669779760755932782227739036937507625162757821794994833596030306787416642784214507085785372190381372298218317420454510000002954214692959761924042794550684909266916800928319494614500822566595517498478210555583383299749270893486343704449083853492901141172259958030609003351624719167299187065747262724927614677799670482126890153686152305928006603882648952700812673752936894125227393612544854893489773804406582226247432223845416250786236274598907221711731686754254716230794618629706457947263137046036872169412607479500921599003326908218647997216194081490911215636685895992109412410335156150775097410415929514922252186286494251410476836926532552408840157197033701367377465177359747131962341650395287961774182105144691224765847800955968899390327034431717635807808370413748007933571803197923763030167472774843270833490546546472688349827566288391764816569738787602245192037405134981501429005134628881079767514717587802359182834800152768441999224145916798210598010687460070147398989481543043760165224727275318880006476099284299699938545374630018929046792562889990105810479769391397640787870222480289913615314624826995126612086533568450770400076779090590119620734721688706003391497370325931182631777243645958076261319217033240029779709152537445221888970360758364188616575835232944675256353318198253644759056248686206286286411706830651189576250519797321335904433193886012683742241113201038250974726081148127607959267489456504201174369417266170540137381450042478178120724554480688067522152940824818853669719106413922746193627051163502981126949363071079043111894069438637429220946774133024665706826343542217369916587797953117932035271011386641761466937311878804343527488859479743582674165282630787526493253352214021608917559842082331112712202868914274875068983995770409150273945119369431167490885828241462719496797836155916561182162916402295422068788051221991134629088599593634536844956172566090293728523820816740635410220951354306400178233505670977853790430322648713284858332012760311342828998905684388246712156195220680807751576545603029356151699488495741546642541632174438847188738593025518429264859635720840145050349302459113694016253384978907924728186494570560302525094983495403353177623074419896342852940041166617698082922226086163614988406800115108782355356788047193402155923015352096799862933666693108072708972515410828850370026058890970772703284591848697732629720994000119050985493848427066492632228252791222507141059508715832550869931094440578778218847444431682154840053388062661540501315446373484595560708769557008390192583373462291079652124213328913901813112358830518376137987276359826609350030121626418627246577839678322488083322278886755021854933672220851786468102824810582206864996519243367423093946651413820433937579735995872147777925107644682596495668529819309664828260002813668265734055635402389622948377331994515345349140621534112239073451751124562605365913439599242801306856010177245109527766932557039872408233202757923637735939096336315061047437858374475169000551422831466688860641766679486007107240636446689436327628533069606388513034794746648243309552827160006938158785957339015468829321629621264658657154210672915862948157946589755550596762441067705156999396979307991215271000392675638794190411259014487706911294529471154588948822201963065587731876909398346904503222791546933054521539623592980958629467348951433801215616792507773034368330459135439933623145016098733552500221383313588380722194781781308159350446260046741497068783411085940762272832265748835410264343830853590958033966328425786593550882861126796503884764670747643276129855021730182463279614381627898364930907321188647268985101590805976784726509332598653867905980056084304816737478901532480807560993110072114876584794408426777051680851375843330742970021638789346231682592596649363662598893982159181466010445397562631779312338235274878422878481955187248092843649586916667731318017145020227324181879276596715537465111630298846540299299640345315374276276688439007377075272696748675883848119313212094038598051147533230676254788890356578442369719265606441561617768969915635147968780084188186907244660507570260163200886281362047999471465832412736415674609261819868622310780639402795839923218971501718673140391852445013498954502839506034285668909046495070981001087680374140359705440222775306456245091603364481088391281832058083944475418608974500967580373448625353541137638977840472720950593900754479741355928041195588822439051216827092240681803864370960653645492498191073563006553962752150837383001054726294195715881587535720662726169804763793054728666082500145945696396241870194061187325429719604933116981308926883292867732107732076107577219416240451301081957143982250874690654440481818550086138522670880616312483606212485518692112230358839589997572426746501373991492953485692188890918111258847461938924319706709823102110188218609612458253849266002464447761468440824550460565620363920641643954587167811507475985899817258475247600163926203580178173499388007837627196320154581649769367673873183651690621531767762342765747660238877968351759033800691288550743532769657934019473266900254626958039278057896567061154868874318628028131312100451391708115615645955644111357687124530302851730239874943736397901174178992714343593819581236313034626201608108954012332335906300612064338307512499428443080486623625991867311872733494785235457164370573195172574499966758825143704568226120326813959769993903384537019468066345486879808692526914043770584216540203351524700485096801213154244906636557471834190914491439013104348989122008855591127418684604569390818478709863909972275984431420359963721496740886517441189440464003288565865170766351268414933201221962037739489625175777704823226894072344414766441190902546775449012598969530032738944516242455593817692391773142207082070654443878230077893949165806381290426180051574653418982290065160616090580063074177853717035697140798775109694565793105502492341680536945938768418009312201759423557093934244079929855095787568669150029534143872336775293647265062017154082294399245464776714873201998369506495496344808408175372046878551240168960627109219031741821093425520918292740980628306270014451141682247322377343771737653967399672712198053836789243999432192804860295622418672304725467580714583200857841095566920724538511059122219986948255213948721910504411780576632089688862509584818529388908137571201511586739863575691875631811851858338932941942667846279177707165797027786372336244466701665457868433107374880561337767834409036735359625056524955556151235960042464247469630122375624525446210408033199544383885139127083584842734170241797346041447513369326598996430772481346895259304270694064414930190957342872615985575099560180116379456091094988985283238866408339559076896411239539104162090817060166162395493647074604573099768721932674465490794452284229135895897085543858272147426843235399686904539232338206182690572712777377584043001510724577211674843826250470142932333383497735655096607764091752067519789121299573870859894407482854712305358713339380795582577512215214473462599835055267008877417703129274031615824773992966132415830570608066136499517736326371309692796689216761431074084638757350657308963163774900234568375243657717020433184983874417313729651028748399735135337231678358562831167916049341164889236573449473259589536193608258990956238769312172837425277640016626544508505977968540987629244730193807987502337562286974601101706304577044925406633160678984786332429721819594686679056545197853042325931476991370596952983784635268458651473501635691161421573535486409551771573516553019081254032626258260220415572957571814876092343304743052549074016715395716460690423029150957526987975547662448156699700930813771051711228134538111812454978388440079670679677202243460512699336887846280038727478742889669765421056647310988372885438782403318334991795382395995277650598376652163459349387133730498968376179599414597305947477397944299309550633973817390283053019664280197031261661380563352224915149912747727675537568305207673016419897374815768632775135235490740974916714174410350441882170178371678442215237126424909006898154188370726165764205017017726073204080244726499663820924850732297903003900501440828970632847523378554189578183068608243918105589902145169079754396230091696716163613691515457933852564272647143770478668901123847108375031063020693077669535856106154302549179139833537358631008665943774741894768229488238045202840363928067609959098714530280244705413865817215322171971338972414836498591754064794888824658220886182136586595323120731854653492929308085415759433651282494099914347279258569585291947265768152462362491779521259045165231662427669335887683296433003610371612922203080041624715097204638399700154263624034466544699879095114765920386237762917032914420741753960241535505401090918442934686612291281942571481709603104753726537588900769802421816681301390008166572698771427798848162146188408697693110565243661594269643796711305549507506840698144717325641255984803971133173952662776229115645952105388048157211982398901489118530849243124774348539478228068424879574066709431792598243567462663630651974699125268375423953901279676664978457260211530805216439547396183247969233949838195456720113039602064979437197954763864322184135058814665452261531230010724285420137989330252285160787671852990431377080060335799812485507737818654363123184487276197994589722689414368602624880874178771887350578701736371306738371008913746052603275029225952283513623285458396470528729836610243650289841071923109214910917316646267654562726682547190849824246144767857733940970042094949546062932469464293175083939434108072864943694477262322519135963525222180905471939575539985931445091894433566884987689445309380333939680627696571548408632065088138432030702522015865558565940490542605301097746126920489105502784553434254698038353200898997419576086530798471054253497800871668872882321423120227695519328003541218515423616136591617770566892305011276660978026173675282256267525389253088646533097630489599868315661821245588411050004104059871995743983203603467861219996922289100972522531145102426832139729834599072965607947851793565740871885872631840261653589732183939431320495325582703698007395001846148752561730660918527961338054984473626881180429529504736946790965643896083906069923752072245593187650132903090665347470572144572799753646881671024588200067942777949837517896027839002655262268902546960015432022223248726932136007147262708452248072651362983836943399676192030655119572622912757352830803064828200102791376110785182032902731152087533473971403676426787519830147073604476636416037038973507131444065291098772573000989594579389361931471392906198831095205194751072184502838833877494303206205798466325940836738629141913423746933111193593814115307018784123965393449033632328181169289407859785079181806970718594298405807509010239501076271534053324436480597124587160827086600980474393516409818703182231697190642010692593895026172494737515731479983626469728286219981793255060626126734312091050913215686808747997870726315990771789549965786365633339745538551937177694537364738089546536674758029838220534872820095473273161146747211550360352736534382788541772604274967446580674169173358920401672301167773618928332815612761581035834419240685912870392867892041327984175928115354825283569232473110841373021271220987364995403687645441862706738910970797899564954675304124657831729659651607554081645330788726957310775536198848660940306804113986537364707249399284731610788380693309531716336369244244687886574814026255479450456061635805914581630904477771272899002648581821564888405614780514715790164334256943356104991856502515739785702818532866937108724670539096181202318693902379339112426747886356641221640874938679758092009792438643855704907580912952091865679342278068620110384246981622772955077880938533256456172390574794166680077155589841338234959721095947336748958081552558029276314411277976768654447989695691833255754098513687304828151751378631010772372027433402007860192759006886937435014006094545456863647456544881346981692137916881285097697437229558043354904519556108622046283345159745017513292643832621350682521965169613098721784463434771868956488656803484052946262311575488973492892354607051237723854793961790400669499848832031343518401431433320900733146084613142783720936535242696700193637063721188398180240260726138039317639059444266735726575669028106439387322784692795430524501648211577628742851031617494602853200274850376135143007577022524503556222530008215329411706615418264944190121474646585204299335512647405406410573241393435284839844704672679296694970221783151641325638543133250574874024198483104024831514997069130642052639048419439002420774347864525461373706005410921005244742655753134441106315029956424609947055084029162076198285753085402786472744994233608671344041485324912504216899231021526008097906845808416572170521656413886944066635883601196411425653031578869779579766075197903916484841294760935722418165029057053026548024193459141993398412838195082795470400728111773934651940732499907001195444855201716145442735195632354355537670612691503916545358027737691472210412016076728685577941552679468540926769418494163821666472520457915502391512369044144541479981973600071992372358939453904295066471832302739232519082223503440708292832551402507082139368225532570651945099191875203164107100082944916650763422284480749227496062418282961660849876964384405309774455774448627390978856057603941886117525026620968208413601184460374290423099186168353749867294500936148489161107232688957133393999225018251760777707061937895789290429750772849440578277736121902752085768806518511806966922417557969424397791964868604093075654573674805943421606687451423016752980987454479188388318270806919039246589801639165438722495782462366956507537878208485597479946123860182312733282954335213327694283160755047352548895187363803267247465383348975575027615737361431086857609901243524024364283946861770678894247712927036213954970038912374161655055168922613123364889859875448583713613124764317932357043935316004996842245731029347271296775806234370536830693640892549961920401478572224698331481916650113395521564211098249571455340117184979996363857254592923727350515734832195569955674485776337601050104542676947387886417337683975926193263361609248681127075980260276280272957315199913501051773221769306082986150040638535582805511130242969121827423419558581758622445153764843239959535942590475566826124507618183433299775353364375071004638303678113804521327218718539224204866950104193550001030796847152540570239112817719600704824545025092253052518743715098155908162165186651835730251209670106170021854545832967549758024360687033560552235672694799766114323984415349715462898302767744502654158145262976066809864087453189398829445004428010328989118969016639335625276936709244283934194595937472861636009428857091208044358818675405336910696469249725878879550146279532992564659936583734212910995611837699439365285987915911997996377377600195879803048348903322970372357096194195421696344167315349288726980836613587875061641383980868774624152936417151549133417616758072006602706577083566474752047128505796395964961154765980464668479175972857802969674651501093795526748412719934022029352317441401720450818765537169190168513901187455114971652484004269269699953853654031533117635641064513010850110834548546157725112872467679439581311424425009876943408468407857703032829850083186849198829006970628439490673995930970104705815502905355732669574288407464776022171856490646763084971712950582247196157242927355521228668334150421479956388928989591650781626881409986887371973174503855081788877895025192407883320026182624768370428958625242285628935540461099062732025646969349415234893978822327035718370326814468244297870581076052612089090152941972561213751469391000829775212403643510129651185094513870597051215621335644229770407721047496108498983880782505255592685648132064104152156688721474169809009026615070674878477585338691458724838875847599022240998547760131869220972379650953813525609114972922425816878015560719864939242090548839546350483693255308128766700591355420237591970781706981223996817305356076776254207736674291196809276056202756057515542188948040644501471428349018674376088884193831352497033708588956555427986022859415640118688909810028703063468225868624995803797177999525748401166307887832863233414232996983102997427235241344621908759356482813720726523793663749078974888547465698041770743897465695253927809524949543326045616712450156020649714447145282945898815746141691611354019278059212100918462721219531241172402985595773571162359239841859141004168604834103315230904276064082183391524285351871346887117103187114183130971935477938458022357757057489811045211063813517718196600827364457060975301130222904276987340609466861467008989298241817609114670075731625913057840200868140089484162515371654213663394798710316580566702234586707172571012987731113597347330518525285412231459693166693135541243947769339997366189721469359226177165510016203344349437625923753789528066281640258518518434948793262051798711587545883165561355587266642813440609533107535409687944663717573329772569097248608010604939513635650092123276556140556756211835732146860182720272283947742715817410905143872950751011649739573583073113485899086867619118718766213770111902012396960497394127977278132439112611905733692086994405983883074448682908044084575189569971371511614327431340797204881070328963191355418295509247528108262690415920262177468599753237590486205413512024057925202631634092838386497192645635073267913313074634551055816663422489228458800998748807536513361504550734685508979149291878411539877326982791250399869450702919252252733705691140889946203837633607869000956322862268686064825724852821757113069605864998275079387828675987114619466855267383113590098220402203051798537600995353540249544419129997515324313696098021181145892625011247433933034908722561218554490267266032099410724799050683069373973941798539802171599762883637247022072260269594470328832653733056774006340229111291135239544223041450461776214612217698991311179536996577356113537876661193182525970626975272819553965958635437077121907335674726941499792177892932189991465400682336748154077343485549068915852987051147595076573038536446865046172698194014845652528615549523593291834488453348484225303374123642154253659467855009106027062080132763430572603219342183076882043268887958710576611791289936907756324187625745290174320162331982232707181968566088488125225473798752528767879999600599429678311166820649673047365550563849405429071636505780486455113039300376497480600248312861372270446598165970792219426208863436033829718429887488004472264316636950318568116899364683349371218608184925232313761146742095414671119072890830876850627266932956861617695769931940371258437258114740892674664938141540324011270701468003165506929589941605209135790601529018642245807826601116723924646108350584701454822676600879210870058913909860658127779867080279691022503056246242747859444843802735851063813427063898694492817284213314682411807504543631806212898804947200871071979978223382265058253972378047058212692648130949215943889835159717344145599058434774870965164400500010087523670772824176015713611150246838136157677113495537586614441427207000771562096294712974678365319485338027145968624622549304007533612280755294384161306038566625969308557376222016161725630901369494340105417579726317135772885357299211924470628465649970805137943351231125137759059436668099132842666982319564300820296572751709027208234973504925820055555465541155404456936463238213443918365673877691399659576349266027403645709999627156937598868648803093788222490950908481815963630356766913295549155553985861234182931336883559332869983712154326782987609418818836530218717519993788900991873372118817241543445611484797785860704284346904589093043950590196306124803778148593879145055267201184407398790191479844080454109304378647362332169521055092302712463097842286321031047624591301626962377888536455067959492768158706410294177734311641215360062485709488885584251820523594454520122229084481246324092544636350001880903665359345896713097290132514606115049561235667347538838422974871808595303854259518301887798965979284831455303632237866382883773079469057560741229570263878095164885443660947115477223203986927177307765803681621379560597964521488119366666321341538619230527527851459807273823873568051940617963323530335834207950034108592389908233748113924136162043324152381829704266727027813624918320064697999449056066439931126359910522628587905038999092070168025064971294705712371774067257691796183845895259072793379387222219170640909958245089197710820846505957127771719572795108972242572849286600257484522240921821691969490473751677962600312287353091894203232203331582363236225784365984479316975910757238468188569844835435509478329633524918466906175183461337916345954364045391322094188488669592596535431702404259526929199649952726220537249611049494158321667004567387480906851381478617394852607544591183576446389842385786715483781294048385148018789413274449497806164422877238023135182612776716403096759892715583715996027791136627280992486302812105200503251342466679070133461818165663153327188979627967502294424225458897700211756458163472280555947922532697443255835510380303589940555831720696611968896793847360694015628371048532328381399597115580272069670291809111341308085012803914012737487631755318472946112538511982996045273687793311604351962319247868355547422698894368347180032828438975058833754916161014642079744219868297152678168694142291493502002369508347541729715982940184339810170449162078262314626048089944494679348437135637964426882342956080512574201154679809428672731503138390695337802480832618412383121171940413731951643417301458156117282447517346757290552873946692698265143910849632858240417111084629676689208484319361280254795212537451728969807669598209980150781683447465718156450708638836331723232981750760310893663618138088271682716128608755829465751048476572591344267676198256414551223013923568122508701127352290809840956709747214333298346752468682358235218002905504626587911349957813148658817349476339204224461296101998205020343225002210089051429728233415306603359783477001554558843190037178236065993165342339536389496582058325491723804288613092312571482946991855222163954073189320926104447527417974163481267336109463091992820165902047060878440784091728232268120545406755872753735864899032645261064670472229257333020914958547393618973242153478842137423830281166038139374904035574924022690810106763721227395294376716669298643967836459963268361413797584451149402316163639312881235496882097787875636816532109338246963755113568436673366690889216968941323657531486919468837538043030554444421526905531187347889399532931127094654890559089982236138126784618133494774577826866383948788116727687861644278531506218366328695239520151602310110972599267271890884292685961009331627922540311428452190536041874636268562495363344264826702177966055703560735658234043192611036653220238414929911091822799345399054808128269068585096574512229246667257622033251613666211950904339281659134871381998443099259527192437025646651758774710700375751318044542118349513129850507957744887623934627305209695531213905236174898425655560342665499593575142160146307387520297978435158121165727125478750134565774880278632890873373909095363155511778916960131860764656778524549846056224327569101376059168489313917070661452308462293318217785122045533727996649968754855555182887030938183691326753031357266563268875152483731155785185507268948283641124572203237743216089884497198591680197200086122778313853195100405304789562821528133551958305624513432962545055521325612697653786738036706523282298621370310945506909255306900580909155437231883666848680295535756117779408568124886110151127721755559151779624955849038548101889944299277719112431893889024485321844481844185660150846065228178626479430291206372255610703168652778821906438075533137185034378126055186721483255039634324536951081008181862834944867964155526785628847316929525921849122940281998088595970050174432190653512522581541383383953421304967822139395104308434646794525404933177134743829531664113652045955491136480146790402059116950020860525945060030346072278765530279139470398694035110468516029848271770769141029577649548126793301604944342141374889284545320708995011905738282640339406640048654053503507558775066543949359618342217671995398525703921114941411571023751108237815211342063663955192968548700265522912314111912063577872782880554444804972650437931546981343044952822717338958624401808812297888820348574341719898379943570638689175681397030338485168511563719600181783767636641626539834246831133543695108318785464461538173462374688189839239293563347266146002522822808197940960416765866844020355127555745072616753857641327683204520370995213652860161452472063943615476368309256318027666181264052663226519186318171202651393468163543691757024133882628143989949515084626379390414147851271060654246953774908772909201603073436836030131252189818403183506872504401133413487660344065177845069997683955445901240978237690278552188915125318433389060347611473611808168879014916519392187924425895750263848082106080207489792237551787870219086655810255855767746649207467124457303057673104582852548288196513749932874401206447711508845550717503310565324365592658961003338523326159487928861031202205554314563795911247634267260935418356237314177360719556847912627795050236495166855445855088687533132855150857262700965031889949672208214000366329357613926732433518433054686575228137890588278846147589481344805654448020501154790347935770605365153122742805653783696810593280431197076644133237514307366059568222863773666218517770510750000748853899524120880358921915958271557303214604219982377379755263760225044929585113638436070664885135286949029952396804989749155413002135987357469080002118870388910089975193225676000724464869162629517507913870114851790762292547443978622901664816767600075159837668251176979860181919323195224822016698558920257172630668190594077089918450641887675435430723131611411162576807321560141812666642525496472285991330897017476668465542721289113008500815044949143969448447647148911191373913651047730752006931692314372992043313633367195358476459525010977235648153157461270007953508853313013907844865356926970606996321539404072877151040911051282473231255027625666053953932144977707282351038916248698785061198604952383894514254998718856072439504214332628067640871017348991779457610460014432582696823070222504353371182553913389472783672223892257359719196078239191618871003765067260248507212969955668209784469300977686076609024776472915972583642865666016173041733817693792888928032561875952352403426665469153957515902622597375409928759431674325304825169096843916275783625102391002652518596183067296301859709649691819853879698492918886608309877942567240118751392322594510514603871822867637770737022459114537202832919610291621305885423340557801299525970023814616743591252587175577721089912320856540790433609884542470197382133790059981074178999151695223869813774782653878407437683909239152920043824559245445969352203001483988706191276579770642016076208365844534314074030843917026166674690645020311031464953886895172711169388486641404960077358266762735382410040660373473328156572917126307250262083857707332011761346087825113480473927490748955016647437756562107107139036450948383762253764699502514982897733026909850474230900152504838242969138004831517659975393496660507591568473094135627606252880513087095311935228928075094649452995351485963927136847764656028954531787832102758262768019804539917554845614064636393453216585783041342938466709923714515142753062017709094157285913121399207158374740598454545031762687644485621761426043172453879171138843059944430451055532664334203241966488591577725005026405896416556762861123485875859053682052640640382784518701831754708856040640549724358079973774418438057981956776583907931050069631205496828547966148884475666976939558170370164993624557480169072130162029907140934398582740571504641840552196330525267860069311537524552494448312496787642072493677933120579372126634504859300086586606371113875930672182824668608146968263922205306915933353326283166809005039674701093540441604999249555022535991805659022337308790870052789769866449139762488622812494684635237497508941559974507302040548551858405172575141841714850875182043613778091846697136012331343408239782257859539721998923985670208628481678483955940169332152222082019706748865991429494595925694942246595859207413927843035788601027664179552241058529681934901724271469199121455580347372066057269769834815732571398902691537050981836435040033664105717461571167584181221895091463642346903227127254495030590983106575913197894570252028299524736630990355077666836328726485966400697009309749265723948942675484180108175236327144821195339130177772551486002911270921596834019335419961046760256726835568032246627628914287569002419916676323386227845421125058361465420903517101074691304190991158010921460594344207619474227688957264443700035864970376167886437435372431824896994797582956270611940517212571051835617928017918344858357047683713322616854034865498239296549489139300051741779332737189020593057071871596662833974967009706554142853267841296103055127767502672820768645506164645332285540074664750980540192866422683183294272256224239768379525113924448029608088123567555560221419470694471923061468554070316343072578768813294690037788961028026080835954946121958704737567877784458927014351976545938964477564834924735606227988612103344454427372064344488873348037074570163116351707447410317295736550417707887264879077959333886006706078761415166792394173490765962893933061814691764158718139229182845659772092851742311091966122122374273648722331617575491940608807833138631292190720547309146505411093660201790348495072633215545839434942654027423239739723378905578875266918533538942282994602518293634288165007663282216179047904903610209510416666803285304033679222466098986434148426151002642839995521102685028562207033958656929194337523051826873648653208071863214852421719813137904773958144664244809734366734276674640850238208790722828815561529270446017041961710961814511623397954149456053120010080201303335773444673461534647631855670595543547335789982109827353953454542107931429986612203155973614724926279518392414770219138412858357389328333767479280870523255608852597708890043333455065473584447203667425628782036638774392527499682098810380209680302282318461302279889855109544490735228497673670995628557999588177740288591527155293480417138777653747991946210118268165021687543086625166141526627256076051096816712192127388513554638947647800181018214069377746842814775961066383175375709939684306506059434096070700511566599493462881173204573038216949824698520807036313821506992445408956906167550663030567299835106335862175052124231078612125484708158326686353074163065610662431214078261906871421476337891290182277669745056081107232975110032876542253361485256795744373265606809639947308557132130600867071909931553421328544206224756326255503201153638302053237697054428621968834970212430230493452933932733930797601095412952258747016280191529736592094892483088557487637171266932011028584864885979588002613864720312558526498342418998466480920552978099716564222779706179924644413251087031449321139639466637187657577164067120843219671815766485939342114419997627529066911505079957557236024308545315740349432922385642979062643758955858592033324143297272048338075160502211364333839434544408748950879610607115905482356121803555353215552629036281590526291072022027726402988439335596960027432911246620462658912323139804792703225028662887239043202906797238191556043386052337088397581955667055097556487348179306391294127810800535685674797907341786337043895241827850952281617557244049986884277167278381493372745728913338720960482905595923616958496767659897080462639338583683933398847321319669350869709340645221936974378766276723156099250712331500967526238574280703313830516410121104822471456941164339861332207103454958278504478684926013874299531008862321898435479525951209786970006080119353006896953918376991117446490012778151124908914068826500547894088408331204657144738793425187231128545037952759025982192306266662273562131532744738732391328337424879668986889393699225209127580008400556076064370546484690647512690813668959401823244099409609721197651802662451829582496720417191131675192241754511719030020326738465423795614357026918768478926259422710265439729029871023772044875923558078612418576042052386641491460579203161923033535848550798364877868866312329267605481396581962722649511136217748488185554931554011391619220702296642245357799647080795509238324857738961946717380557425992462157789233283021495233249074372793879641116132431556935502833589229553698244732151033668983984381161404647613288771051395275295683230810009257718967209091079636390658495394465262476386420534217207644100621830918931504237039981460424886692571485993904729626805556743869892657029765139648094710690930175090280599123695937459152129695270793494982060057914346137023694314014558479400990357572109570046950136784844117713229431264679042157282383006904039223853416800433861479943809726846152544331068717166036631215848679504279984074058258997282600972745525905952039524832054704886529856024078354110634471974878634730332881475237928703589020391701546769014744705256482938341177915449230491921884182955262366223749723366991437576497943389677209080757657225789433328507793990607349369867118315563340301363636783866300564402123498972639740621736259690566524268789448936767464064206398486891782958996612752225348538143686374660278364659234294049430772673318505237276332503085724522102339360819149400290484683737851553055763582816426409711528040858369519444505454934297977925183842880964650768098842434545811392523222148289980356785951033749344249845783240755243679736514811491474369460607479719276004984282364887545889503613221803345793692779135591971619449828869183487829243220858518073916434402994832227165069692013228266877020481382314382424794415305378577299606181348953786112414038398263717308212154399909497701052068347345712018680073646731007655184511313631001261802885528299199559056849718036438976598268198750418007812431352221443555152746325332149426573499689567471316665484356804942198741655295106163836477015427227248863234512468686328846092523374877956408301890024877174233602523178820323190623405653131267516178292333027290773053894030630055205379829549058085881812149914197339123125675258308400666417329350837907795982694556701514398395010306474329975309805087671959838427627486939719057581352617503277582146749904999954980597322908895214854386159812876008369992586844604668953563659185137711301011111358369504869876140816841956513305269255429444759772564610134970179564715364528796827713018883338005036854752584974310720787984110802648895220498559664619592583522981613247419593619735232011826910593106018424564479414979186259667862186537335928852677067914606741160833399962360752350763622004186668677312393583766889107071301592152064340369192961629316323575077056067808212210775496058887886773885380156925197162909110969446459551691371981881147041347620439452330400079133976759954157309881544998066910224831995262460377470705405277834853628813958854851639399957628725512465448796546304885491812961877412912364277591925822009099742021092147612844860008318117944327268110480108858950411818939895050654659597425379529976365603905185977907464415386884543319744016797168662542389259530831960415261370727494028343356860339994090528892509397506231044143325831433942768323475539225483928117128831804239932155810444377710626398411741984347909448539531113130037247750598219737925493429864478370915807858219610021061565957465885771692266347589532544533983184957819894609861025357327559796500302541279311254159749234198398275475415228765335715046504877553459080262769858946817181395607755283463105960316904178155903980214954155487028834668626086523152720936969481671503972251960927411774734462194770958239753709956267546094883465653828889767302059093528801044104056218740035647945533296208004311548675996893759847577695860175326153119978611222621888030683337747771065064561171303649258621901386714812706582572350885899818400222131083892645053067603909314936542480811097576635206525426422349265690828782709540481749465280785819142201529772265568823519375206573045710855101981872643576667527552739582805552514079257645203510919522474740701358891548697759314019875735433227408475173000924702970005214993466794907402785214961716696241365000420426063674122162905618312138453928441830903014073601028101074989143663434696051771239813796376460377921503269050279435741692865000046076025035632999373142778752651490631705401804985154437584116915762372298487453766907369518077341860809298948237310121588375614881456646392088779637740739596102036797945584591353559493208874208781781351704204385231335466379451837071390175999433488888828433280230321082242271307482125213655360664242077624789609833121666747413402448763588525600076069371022530598906449441712996105996110320793838711752638425370411496691716353721293495121988525424524624850485457442767924320291111315708894976014104277869191705625667958879201601228365113759050803247935058465056674319608193051180128688167806491226022519883510602177108447109222905256705924164227244007834238915718691430019906619009534312676561905193905772449122596036325739168130402219619489534856175692244080365136872065510658446942217853253633192891614907691092287138387358905463466712742289162504855551486778512737929028172700073938693811966400329005507033118531447825660057346780563752914264526740619400555909697809771050291482632798746472904233801819068381169649375964803814410842601536828385162196083095145540062500815779340189543421697086687063273922551316693754967038837975303971717001360657482056210925156342145556635949193897659477396976213226567083999458897928346341779647722631509793174288939721893074354975505116248209556848698110561904199700683767071687469190406792685630741771735835209608156277234424997420730279935752180945697956149120153867156221180772853341832948951743425862561461350907068206771617096763604732477026989369426602912091289280950327782726738384927623522846804324853685866790601675795214705733728088600649814778358386593238565994934274334239797742979056237364210009553948007536992421809034333310685637057209484299812498380567447667478511130666009056972623640492889068130750476257939046434152877306634260688089088379539470349785645622235873613689636859447812046690797199866974301841790643984534488935636251947996741123386034637608717144648300661139097874736647227118174952389290666301609366711006271162694375710285424929990910647027838860077945283005494373217001372681969598242144471578084012486713709471848138846782139812445214138792274164656866839666597241880839250576158513372943675439972742470430867668722808846436247955032684684364295758147817181805331715655050428695239620821728682158004087045801332865269294130653535300819840222279154355490484811160542778325789453728668414451227419276350307526949781044197500315034901679222629937825265359596860395885651772354746083476494583845565434937572442017205495207117072818667499418646348864018407126983035515908274991035777965565011904480151629271489081737137682141290926515448026662118726426780582071224840176838120744963393239134190042188900845781101677257725121979139133738127838290610806707441784288238548178318685610536370603159208094885719974754508785050832434282676537864954555321127202807013288032573699114392254724655822458847872130608133309662364172134919321237524541955026388830708392358772159877553986378352199106807574575821267375541098791996128873383388810139846644538343355846773761523268615763235524924189899481780663416668375201498507175593280492202766469154936422133686875774848021750826601977224596168247030539212134918225296833971840504485234080642710417436873272389775465678738388542767880064081011442724671703612425686093430191426303182551480064733463418011588051146188780289191411995725122906907620663698327590223008617655409467625586304354621999925171142704543898925314733555882982533908362323443204524753026239547393541590966197009677777799724825794846372993962425814236967925747525441850953340543017475927012247356243098360987427198553462643190052983255459267410522368600340339101471923678666186122113327818229115913967779703657571979926203236437233132527104935322555133670286923737890594889243694338611138814969416617615300217402779623241931826930110515771439983024944594688770475441275285139716420526970258620634248634973720281544300877598229869588804253189597977097481397670607950332430406269233124052878566967021092186356007056051582104458897802925008423241911307880685028702619194682981330006638788860001274235097155922764455901445141961236965825166365109094487616260491404027055898162039768314628954231201963601768508865227160710192850386552992875146809843333429011346405813945120679673302264788492453209352194475194481145448948531932985977198333711944398933591575967898245097630296611949301465286799038706986791061837483538376599726626162123598095577194328233972732720024549738319067901708206232016261979083232238218240004938396280018609277398539386308453785620890506803636095176999382536761382829933924214458038094366399751798150192071617227470325261503503274463398075151877465178781940904703192874419050567645334538103559428803962826218194318899565752202691757399970861348794638807503069508116728921992307131635184842966183744731013487759451640527860002760680554376342493365881460991982108189515389948316003086780048758842931402017513265053249321213640453703443235869621095076516259283028010654608642540661656971055445216633348148148787790750024682259281738516428769810918149891686608411944568851357694980801658945410115916100258266381875779624609577287455639122436653427174239266620584625639626100466789980269830390415919068264479249955221034349259938665870751768696970023439192885516500353959269582765081477269836221439161461701347144065625772695408263998550415052876023884044703682732446545419472847615060347735594325435702484700132153376670220848583420390692152832010572282919748084164883566439019200629682010026245728721752625364539175969361703121674247350261232642873381973573081655299183814908629292952719895810230623259621467715827443468330132082885951080523873595575352856429342826528737461812079850619501809384709245082839497693024143144511814403947534670294399018756062963548241336776944107223133524502714034924649513312462594959370369012653965390893528327364908836235909512461792611626294337242015777864968240868340629678547794794955631044183354378957411820781613955083632531961283633297186286744548178487342234262908278087488146356312286698848663598897640010663823627321374400238971009789090219626872061738944229355957297114222768821506671452289959368925511439950550986449256139504333421425674190039629390627297897239674280636483647321411754833695285541432155918095184074491253989683396559817019836558180540264338146828479200691519704363767858646257251412833786936357433892646106571092072239396796499190444347887476133103248785730942134628705959182448570636266078212987183573146521639234604190153681411185949363873155822811865748994356810886999065709783517376693222743206719813429467308681074666816199427141474314555432080856257396970332885344924636003594270452284819491630163435637771975398693061450996885259982307327115865311982280859606095092162826508928731874806783485990376097014323716752097570627423297454905919093556592754086280605747261676384448144312482473116596064232460892775416372480755431570842369034292990756773225216777228267622003506057146626637481645094731808166266290875526221612705730609289571852399771334197973402025665042430337096803246309791100252625343783034007669140872708246988702433242094180167931291747903105069025409840246961728692364358811673183332506282970410974928049830525374981683173378051377724268992958913755672819611881619927268714392404729579134970586793172853801092507453522943267693162282906629160802067538701942157162671420061620132967026155347719561065768212300021804823207574772136979539978173766193755747745939471541611836624804427170119476232883576756729291749345238599040229888104147231868848466494401673460629929574760203952012669844920847213198718716971679959006533192904630064762999650969277057862445217654997144586028573737212403215383013563793070201230390492753002349534122520069635526331831634325565474144863869394194476641867099358872412004844755564955633369082960855992676849646238169677326536703106005771063123466983858425821496611209360635115499537773704099141863680715970743411223768792276912700749486123094430558811677317553249577913712662035412151802210321929047007251086744331528447714354678285620111380550307738646997578345481960861417360747189274174108276075088341336504211811486270630653638449052990636077072194237945925747716724622723006016414636892001099928389958150913158363378546533428075034156508543144022317772060569046261070788197870474211344471691172845631937186250732479535263036143526982714735701153882559691797908550019050348168009122794517778216987258429413076181727418680160718579557774773052878347550502624687642886077742371316551073381261229207478722596680615141402733481661555411921017712999607234457445273013100136263549729235766646980445104288274371657981426031491973415139469932050295279131560866334447762405440421524226398410503832960403688610183600387345461567623938190895642284950285083393744384645055154660397035992891338604859771438410661899421848747141857499819710634872951738281787593832635064811036177059207461647466059372560897408633364753711167426448783839966145633215243047399823491284123814537934594339250089792067533477889273024198893603751141661911185903867364731729351016269131988014871770406876296223345336113804366423992003551590602857133522318417273653276653313420996763376466263032848583478241759990764255641027071563282381639130502757642978760169622909552491134927847118705222731990826709365308643845952412288054279887657544230078796305331965802635079810988041485096573311680556651140052158872674038438751709143566036183315063162283512980323955231021805909583097839861375676785921361815507927196952051178502610269161423248997817309926371056031456788722692703169888059384454246393259322851760405083129538086574645629816513078656295522994048325782747930572935978084770920064172124323979208744232578276353902241813967497665006116774709335410890806933876175197484515052639577934441501390837369290102041075283366433676013040824714956489988611268836415543350188217069494207748168994956849426695621223051327054819618000012286152757650141144129947350486474337241234217959517977381940353293913926638959335418684090208276824852127764848210115234377883414457440968555066490305189571404605267665393736704270169665622868975959150071768074840007362435423758307992853587628418449857824517923499846519562810255208614305313811956751568183663660621372678467367158646072287230870646762346912659970375648048574470223879079718415811680194488438325027905943920324501425924549410554301857967926699370123257949850270180814246660222703989545627569425587468033626101798021594505897439714553227412058753616551018653153559924129364782679746419232921136576574479127717581783170094015754524722713075028956216376324789618915279680022140821187932676267025046396150394837368076517780581155674691640060137822548770012935323171939287737773395624200151670026248816249194170162321996269513068198519439672730423751679907958886517008294298142816990821346864541307534843795691610258993226756378679568943685493660565207245701716622994660885140506723250565609879452670242537594579170328388504727844060291479141712254032286372503737284215240946440957336952511303713171107276844953632472636799591084998213787123081972990361458300552221766885513659702998984040618788202766691669639714867758832722453272942701271969319696108290887326716459837347837828084057902245429554281058419148478866852585746091087790415780237195590870585259533397419159312369536220525663723952158581769509517916573456863397012078076665157911975560563941469144394540969294807936547603228597738529432353643463709519632195755107732895813798916477657851998812810042682399467515245014244826118725913936891968072447956081234568975219362491055938655472067064210065091931523139893935989965549477723364052161965023987136798995855593593042233841456534144377051540582725340317661111325071905816713429012291934770342510222228062926000908581420192358584403395409882975135206359657238180284813908569196411796389449506339120632068137388306436212775134132051978685408007413659354543696889390248287209541793244524950021460520501996983587167820719372864124653432032441296140298833365185857241953451572783198925194084020104426068787543381956125517289429383796688759665283499997991311278537086690354748815549402282361266535040416674222376235285449027172114077241158878533406438637854996107373736615177356578430920940339548764753229069554433584088996055782552047236645308563373940861815747725147134117936171198859445076950540778569164233475579862343181877870098365508677657853322486634770613516562090428580688668346608617268492051078612701560475098693016460332401191355339281489295471965918519781606374597990069802802991203432473378216650194100600156363572283769336897826311467657128705281431827403194582628950394282801722161211491924899689885886281838881660103884329325797199936683971099308485706877266333278719079097935457457046555479123891616534578484221675298808008839371498176906015487962240915363771471539289669053152325576997372854107549397945733557726738476318007466211855221377396709522720372449203295089340000340465885760883314435048665441721257021436656153162062760489793549957833771211391184599482401440089637073604822422636381186969256696885147913511352975169597179153734524571697219032878219916195605156752764310482584238963906476677095182410324947751303827777269518355385214302404653491014499847719085205265770485704064383644827945542907446080194695946305946676963933862620420226719306970359501358389755406145778995599861826440443848336380265118004787875508752768350694546059774759691930165306590849620956684513216880753465410515219417868129444206687128315525810101069859191379035960552471077745761663773335321338064903542436726629619136343443679660529960344503323356864609603529972339678053417421681185717690497226912074273500928758191696088246920541821980300318789318639473893041467384627806509374880407316433837858807518391316383278339388334484596185745224053767079274926906406317582113409270372564171972854177953655002287788478639830741288702852838343894915200515118518160686098697860561610345953074720270007163383997980508821764397125958673864977008820755068322109819487168808851266292139912216299030366399597814089790566013068219091077964790941733879437658673264587894626482177492748843956574589468114339187326102195316958948671031190755484401380016582524545252137549058581649333335974850712121418286027302787193133946730404603644680145009532076308787098295024196048764976584843043438174978416037484529419156351969767127990248106763383776319582042047985760801103653103693813835651088278483338718079439188178408890941624855656741476114794915162865653199260797167704729816210426231402516057175480151204596910386269283083951038760959155343306779319934493507007488902743100627111212167518414242406981400128571669226150665348317225966545918955191852465527007929088542143872572195850284107315559797989592956619593907330953410327249694883278349176409451966626697452043946809037247792004422387824335784987262191882360059399489781315459431293159707168528701224009266865615578370516829657348495784795197211296883040058571402575504811042555227993792995686237322978699437231905250067374537213165834991693486418475406224481244202098314135502324905897764052240821037225649470773041577302376077162822029115371396250200977758716893387000847809603603688722088790045803775959658896520705339514955559574073376875564804868260076022083357315593817500619673347883825155929765541220773355085945206758896937283603324464462691619786891543146873283448725966976453942086317151096220502041647769254584383432500183446424548178079566767721053911901030854666949094411857184482285510659655100010435126923564349408119630768281913300618423977447864957773241172056445273053165958370420550627585153826939223880473992751589036912244313910163409850849747107186110607182217347586336548728068447399023557352767686850467670617646360507380945186739916294190039408681181347345898233523245230837766608122926238528145418384444505567919199339826599692050080533063865495642649811566548878007457994763279760370295386989074687551620025621851382782467803324688815101518929412326573499330403576100223341293828995135708055032912054918231288488370650253984780578294109608657363141535723027587617192726876586449159766818901844674061067972705756064522631664588434377975671770699370032016993966809778727311120314822829615335177074786557260951448602409983961924184486512016590479692337434083785673519369419614713406537037714857874184024769790403507418728632654447567828732277956221561620928594848090421023838863766399052744070030073069753253762462126408666110519471698498641431723369810689477042256350571875510739075856189796742399471101401689075473689445426619985471186070327702870922329263053973820755251776284038988249592395030041320412276703794748838299637605706167476889835839098513863093762801709908294494741811137777871496736113566270130176318016585552854477004122285026035935149653497100899943118145976176841575846598871690338826929429322612225589149212029369705976273803315486333025958650038830833278551162151280532472250637439534859933984832844372459460886691362449272107131660841029402634360671300484998048750723319605795848172065823268048697051283693534803616268846530216203512200650397154492348965164183491206329087962628670913765780467463312703091366708023873016128122602969310466248703546624757866431529361478981759540439736300443261922048655094487831276142934405789697790332094527488025611269170526359531692193657328021878197132350681959889258957440364283521994004215067057925908029517334441413036179809606350171187658718128729013189265779913315498663479398417404565606200443381251617373890684782975925035414836439228787979196858737029217603077641985973878958915306321030241413673726024424970541657670431054905665035581569663484145086029175294327544596296815419419741340242815094926709759052452981529659484934458207321736598529918392704013785853205972188674837850687853513478305656212346004334715469325879573165065398805493502847434503967397941800194337165645418017467078619154369554509467343787324217377483364180617221931384976801196999374447184038238687891270463462979534077884280438356508143415574144086127441899791024032292322935098718201237585253047926264970717298034492092154922039739525468775160202843553131429026532399177334143643127308979160894492225696157294875103553487988271625228072241233160167669041058660919009022072169809531947262538684854344899280185792705858279546292212265523511064056208416497978087091188231410626095694310211426285724861176606346975162754542304535304983976454577885499164212519020518008424637207922601235119822751789522688028018396334819365444731856973714987780639646300164750107625119652607314104662377558394835715610827346495622160842652543208646693160580897909850599158138560038215607045296676754600672469419073037224990859122136880575864944279556500765091333265762063568780874111812240812505870575265018212270443298571857040586693422892279271674763130172557643866611752349520524133680309607674844076022722826985636449510225770294105628486541307115510888930867379297610189085650823671943846173858060741469758656918665298866129154672222650101787912677460439348281055339026201114945079758355486502001066441580772144365439448758175017373505604704422452670274118320401138704206788099846893128340405594558866575216875710634027771651498567978823976054180721806971603427984254535257844667900577860086149999138055644196738101508094205895599094238542219653193531636397825454569286923424911081432358449383891649583176095808482632144569589021598377948045846477211770519554959940684988541858634885045673116544320499225656780101032274371803963531958284607991150377759581815565225168073667004728051482697884760401956875535320707646697687083017088564936060571024710261301043360977111834143134036586270933997377017134718519830195377617128413401255320538172420111428934250313767169751015599683006910644940196826985998560175443751846717230887336661168904188114387103748184396491191327661472342894066591268349142308134973180929796924584165916670456014126737384432922757761163379463514344208748847264776447802570550870084430613868680958359837723511200772350898805233736802171434262363795299708899269140782355189936879477564082622958401197011779049335227138810475432354123874143427278356711271931435501878049882179687833975348502279376598346298107412753471571686016202580311354122701716601166377043974722834054013954505624141024074018397424897623339185509728320827403362259725979902102983397726772214750641907066634040228895844672311844251224060519547245265893354081866330954685387426775635863198525659466614051291840123545186154896802486391490669317782750984489841828684882108676031848316351493805742010362846789844988881403517127007119650913331792491533826743429044294982241435711505214393566571347002996587475813004935288780936315024061210956778014496149890258208399080498576878806793344519810289575308811993567225422451427558858424098559417876003377340058769558697523935315499116680729906866586965422274244678690867627562493838780119775914427836979520138057477991015451332906846728717337938453377324296877009917570323268599309312960576045559574876216051071394846378754304484581580748203476020701834711942219400685368494035644143263910587098624504757742639110886660805153795980157643373958486427005724208801601159157235176470261126615736173362508536086142791709513212146359378561452430833123667570659924841619809985358570726699789122669480094631806318389979823536395731272018115773751030372773988884145542587533140394195242337114121361897770739650347321005097988215866119882698397089709214318715882771095676052523405051074532227019698241624846571913591515760274947301291595755610812839995819896605042977411897011880678232794872562540116779339804080150032308811726740542862962400283660546894977005712082327880626265400732992420321476291311343380779523491272760405087438524363223598376217592608612684670158723948396864619048119201152408790488145969813426486343476996204416333056958430506936253770755009837445424270461150000089646325412797217943702738453631666814258331804589739050705221808855884093991313253751782589272499007227881891535630085410087862943867624039390427497271879364255165107461036529870583761454259108500222288384504714399177222243306340383628913694203215784568053464216129177885204766182039670340696014450433387580135081336411303089743011131897046139681862303060671918192561598660734088098179322614228852163735085081394726044271998619173143733362575507422531952944615361250261218004659399582923439825197721316197129285393069092106803559183003244814100166551830210656222174528501804292347755405390134348528515862351754267838446562371238127149582922743992319539603087523003429106393852714620230613904455819789189662997671547713430703417968684034768870875081817337869687695963409071320012742527181883699406596813165591569556790499451403532318952439448780284866233681145394006937468970699884393488038279358344465020612403176366315111499733422414747073832387633544934259682504753751191747338580553901802625317398550788655613061514823298601527237805411710724672163246761157063391697147546328081042564558506042376855689161526223632669611366062764722002424937458554727727233308851665139046676881936358732196596606218119861487989911132415270801093067965486288383969499002087764608370686109231096417586235926474936437896873241378540258592355256504774544184016704883655163916047060108021750282248732773031018347076685954317342779193965414103434794469636638029732452663057727738814690361965213407166071452158630777171571008534575382816113755306840504208949135280621063489933485858891045948866346984160376787687017642283195045955751507640581026830217057345411041087860898088513744508229646466003502285940634754653682992328759851187783465070888922494169396964432450187892719370524464112604327133750295811618771584869322773408769194991946510874774675937631361940457523376190360555888155479874466596831662591355540945329417495838855594508828262756384034927419193746243905362099010531229704759673764666900098111976037436762570720986857964522035341867714295273848557918295784855172372768746013637276816643959439170734514688371237448241598494832802563234377130497369156419983674380667803771443016428313594429077064584738206305589355474952240982033739063283070154142420095318203124458191311540304228624626823177800493096154877035935581014514260886557184672300233101327032669584765118997377243879701135661894974094203156650687066865789323378829717284364933386029813950689857521594735978661988833256935258711254830567045770262245431857601626124055755599781501238582547247101065023467514683883252333557026237412465792221143024394201866378693614680225511915136639770162187661163074103802815988982160605400069596242890611432472166045241849498136113252131212715644695154873688676676031368787597277165384131311801614243638345771600544314638073864887745288801576771056488800588891013637032367404450882657082132808340708347631220565486352632997313690133291291033217875318621422418913855465870052648448208175935099161254568926406663148397973643843778728721582919987787021717911026441442502047854830234605418996214801199302793276572801073774904705703270461905364738754680806673677502124766283212954621899132635550026479435037395127611359521250775239824070041253542600751468972205928371385435134554882901352863960985758483542992048717248071530033180534810502385404958848332082244526678844749387570616187169235875614845064041661949443294866197140607710572636900772612204265154294774623129698076033917425184582325348588455348180949950001151149778705639463536425268681457642082220494536478355843888655046655996348040368699482973573568039550924731585567175508746153609172251364542023075317928719179838211130460777271330304285420609376193118992288083061451288678419487824096969988099696310937819775699214455742484872854648045172194889402563937585117739657943581268987414690302377533574948327445932497457597773717125617959019309823965721040842403759236350470859515322029123512445495739871728334425943939172678048494107459911020909017545672208245523380272127844050681989324600410032667976134759734431779659524176753223261241223738718809278133434437515326275629409942075138192715747446053969031986233029728327269839542084154539362761115830377552071048061037701899789827944173464741594098001059812716538314625589595499447468902186086895326818024193022420108710974182865370931077852493394926683588567036121778877102859303572769039617108751634813955378856330019100390037237466998293866067313754849471672799317227971966751868211624172205960525964757072765541870659402872947302854234736029209031266967583971202064348496554847095579036706577747135290562697007172663171106799403100006565892343175588492470613099398466661641608917191281346088447185258773310888308973335456300650314186371567144320914286074215036176308521646498764340359578028655339672985113507724711248281196737947479873216565403660204633100599326990698311688648241420278872444610668725906831553108719373347375825194979252216650947949825776839975241661725064221118352342267619733617892924141680219887369328444075506562849165981615896061760709038004721790106214435232521478822365772944775698085271476681276778333717596970895475279431024396142560544562413535988532684758769654742903206184944459093756077835898954798466143893002311531990154775838222755708408890904629684116800494571523355971699479910260679212250043263020555754913927740452016667180903915826915996074623308578267490527791544450531952488359084766538608189558096127727433377074120053788559733222098815996263600735889524948740122458665961200099607666428401997753377272224008309785369922241172638766474620443011905381346119643380121413241104575470190629697701748785784077338524562785019607984231757575586369891667714793023441020554360594354315210890670492484479338250905809068258012736547328754326218554359067202335939081274115174362962322111535011940134742647913690014328200207768404494802148926715804264490369556301703787882137681826974581976976244250269125909075385945919002823624466499087562544069391732456362871601976198019005984439577483949616403093329740276661356170651147967099255616025518561218260025522575600373893504436615522789970494588365884509827934767354188456520967283661099155349460572370117795493544517733410119884755928230865151097730806921017092505506684105987379665516775562938502017686708883882768628713045203726709381336469733148311907404601722023508194074780650420626119254943241175181191013514886031755204319015740273730494347720279588838795690917639388205821816666498488039347025623548677671322743360316633638145926495957917405704630426347938033630547848832497264215640951794542292593544467733932605170293952408693004705122583939839179940572060562217394364652910429762689052721098856691181659508271412211860565330704737342186235951568325121325176194140675708052645651711711499960216399042500431051655204329996139302025918284302259079492860906458021936887058196002463635014245918878350011677603281531458748327707640689537441800062200474472151963484854681948765477887877376099217642457579351700786517081255452779939921590922253808577037719406860167294712627320483733258243660913448158597722957435522943013137018726153001366655520227763066723690867717452165498275492092157181378984491742850737282228741746795906099034364626320140165726616133858382268104136547976844456262145059521441444302831259414610551993810316113096722892128201502376569924553689396244544804383447340151187657958135740878919150580690703832949355050139517562347509828865337641026499298508229067107782771690146272759092268936945640546055654255989828523640070157582680083951815793580740319980695931162648066780386412085074867807736382500669542502623939907089673332302757208894960514590859165756698996996017653402265037905152588246467262609988391403297229158224828052885028404568075797572909382415437160894531108080217516543356230981998983556946468502779929401515468609363817733198528861313919753853667906643336748147521737847266119253365315607607531969195059407509488939267436734324392849544314216798681294705608251374089009141364919698897178014780497478127827382804992966124546935648073616805824609989645626257503580857073004275609463800144908489677320825534692437830492486839811905948231380891605582098152753240482226127816486257596590443635587691353626035119524660895482910881178692113937933980512633371371852103441649819040410135926724594784539372620965416563902935418399081252237671752818842064302175471151351701653370159265448579412188079454749784262185826936979633337830699458479122632531015531910762185288449287463916390122959603398069603492560024784263260527978465852045695213583884265676349279260139312909809082699876658507436107590599626542952006979087565824337886274992932194880623804069925160923579557904376060320443025491904397352064161490159795650154651881746418171972366751854862844415861766926158660267381975783300906915787357008310229466249722603839101207268540249926857128369150065907799400748483917110247430418265751228324274992667750975257427260953217171506083227885616347190786601101376781994481263124028873898145499504429659278979325624834450782035532311340119514506190063983420085140288339960765644633026594327978166965471916712462095721876735586067400780754220938810152546152918399210332607149163108976151614690172919090333899990154329341760285538008360419228062600384050572149042331034390300898880403588489260379394623031236928547588904281247073412507361341678955605080589009370568588592824549923566544944128002508865464620107716123865557727187600370862095519969343948910042689710754771758237828587097755615698075046521066891993422181470411868015532018536580069077248810437926348218390358144623424380898278265597672264183434207806901623397624058624871088829532827032590093954645507066013125365040041536768064446863859153179572752250150578339063904909399059924321408118166531242952884211755672097498702066256213591635376389997717894204620526809566040672625353108388506509952225266726177771232177458703287132231329180137733313358634567326515827063207450098176400514066537101486690010328075630142693302561193102938012714388102675421872202813214814885854462640723407260752528629644752734997229860396823425472048817866013124210119332917150682521862093339132266013647009465195405829741265399168083444926794548283805975987024886743788864980219129946598787882620973084235035548838635852807746768016971959696142068304039468065760439387723993811646540733779141774156067441242302078351043163440337849604230325921477978162371430765707480702124367745495222236159881992747499606668993817493656341353764692102253306232455687825469889599947781267291247249775025528262257552277168632600284423551725417078915597791701689254722183322297662645298088464058626140183086213484433445493014623383014411861588431813494769958634195694859410312324350913666410303949187405031253447496128654483410019009365380051631183187169194049469413807160859143957143818092137870814540967253183464947545797332331575123110602278889672478412859598805372254840593220841662315865604291577298983946856108045218756747337317290916154214207346837088582202953419086284322000530634411766012486242056921559460440568942168820441998946446957435976829538057373636687877390500947789294480617009509659104821700781702252529870801338544901981852289690636335304955545413725224881488194555012654798142944174297990818120312814563561944707168013007423965112523602411064567434224993666775367106829930545773572079925044617680073405943271828643424357201911687774575514674156177004643627126204717844206002946085149965842050832160764159337176812178199642476624074152827006325477219457377269976514561392296047445903791400447204471291091069106504169895177333293063660500825953869561748466125230266992206171294952453523686464794273923737771018459728544230245361850267976844910353274508105841294475861735515364607354151680949245995277190530228202488915869845581463840421479884339678583094467511307418090665328638418541351266359134234546371326991349864514476851443356088791736916062748894653971271532343322582734188332190692610239333583164133758614628706630005672932313637392059889115042034975312684679393564036698862237418954885456072792524852558053646744668655087661354376161256087981769825221234091300144200419585355339426829424744184901159047352486869330006452648996177170647759922050764892889951780304481546609028191795249955292538616084213911281658149961841244753184202821552657607040886304258708984370810829766749540499589760907595130455437297525057205358621926989486442512010715977438831457457338318863135909587580754140646988205968638572855757203318560053979256988391093314955318021356104821726418880741858425171283255299222898741082414235355201065251892982517649470811732403928261248401647427027230535734432582278804208352946206460487177904793930142315045363257769270827743184339200650505564722673610282046145536539960288217525127900283926238729460520236014924560071320732954581237413098380099857700396192802970830072772684564325503290670031304256191617302667197994225927533433237597216896889526346242039609009531531830588100434882057842623470596948207377305114334591643550626858526451855913093530558597422246907667421689418644524276228108802820636503397603696467549672248480506680526684479100393918094486073658275688584619871137397571903169916081917605569756839374920953428817217331054703944851963761931123091516341928815276499280516346176557598141432840835591221680238254501762717130998369954790593215162677048494130919294992275278465925950710769949513409925265112277210142437721201621525728655817889746887607133773558919390713482630863370936342570182566255763061597285142689231570204356124226484794956895123310167200775796415786961817444458231864697343216474304179512561709785431181530229268096063501440329667425452011236269542581301943578336099944126115168450082474064765668056728503857351861021497159162858429863075521616068628230267653470592083915209161225426098006452402696646514157704108059728007528925137619087924246561799004778298065957040423397908260412575476363437842127049992378628428564708523840991417240040542003223081191888209789755784308380223919946298737272191970623404221526245735663808161008552493285749844429582023019161495892629717967634214949108561187720423730078735915027112331561097267670673852358570863021060161963672155415904869389556240771458714029440916549012077557438270449314117703592564968139503255027612401827124684333086120856408170029894334611278151913555234237055225398920922324715310872254838194423887885361520164995244659280297438744533743748900037402956834141669340823774509503218508930778012734343173587390484627297882376650657026316953665628979646561821752569677157208428042943447185247294524636169797313159903516178741628633596631734761301674982984556064939560996745104413938288950320536342457893550777191875357159224905897172586375333854717931985464530661147229963971833957331493077492040854459289571178995649031630096604781836607190186568287254231015715174846169743136350131775505888912796178033111273209373893018020439914665974305750443700510407472147197568409211517682690554167761858033295944898193471696101088032822920476566620205866881896882940200742808269304070036096427758202076101647713264247886134555513888568495817962426745600822106991714385965639549231525225594195898731106520468759223619861918488913135155028476322596804343858533939429622948936229551000937568781267267361835222310956617033434863183224391492128918233278776594189183235423488380417895089355289942624232491246256782285147482855311198673580869235341304371592446900874621783350554965266631014978922590102976856660936356013736895381062152918911465727378984895677407667613569708326057514388623301909696654701021813980428246247365879474275496440737225720128505864048937724419202167204872641796985805572674189821945615548916889040100636049294498261728962613188408495572150484624391907287152895418948925984749748326414391050971549419698230491615042785071850299124034030554722405133882842943846680379474442837625004530443246438177372767909370475759351634668203417889401124141722666889765760229765376629920215088629855081873205658749971414153581873333863170364129963170868740181979039341725070071477029033265313590671692636589347117445632784032609496429764029181113888298699818405929170076632978951068030376222975623332591847118436495959122696613604637749558913347114971795228869569261528752752447698899753225298996890268226812643708223286186519263352757211986632142790274923160562390836033146990989911941327518755182433386019561646608698424086182440428709723337236306960068305933789142556925255850657164530357769162458570105635887975532603634144610888894915919516791155282710216796003418566800351889358832213980835032388957437750690731552066572540862857379231479223023220400119091944212853986443514437741271130750693741376631095089526545224501558517109680027767353397870293033561727777238550533471432095812240075529976263406095720399082324531775833879731893003361277287255019591835021782794154839871542147124359921480286030783930039169862334222288696472125731855507190778839247960568529834107822093838976202296174519088808437521789707018855009242744220085654572857774944807017054494889289982720890249116210653533664190979136401474240131491467884951182052802955428711109988888366957014733130775510518752247827160348650910551051815124548450466852214482795075991992153702512693231077073618128213059326161060054960204922398483009848544370337163816999195318025197241558983920061819325966688148885121769858328213798575907388183118079594667846092570137188567161818597804778128167870420305085725646736774574752241785741463523699090548324831211244974451543314692765009794308969820841059583097142171196882706693491803465182328409590741610001837430491229671487029038402404345719356076886207492251991836837954833460945032192930115176995360129447549856516617181779826853923798943839808987545445449939644865611847883731213693497804243202526750795737160499514587957350962757550905978060563522128416902297410476636468444499621089944708072035618919383074966983956656123603782008009700021619742930491510641976817723023192427277529493679414605338511205565284018397421195629720206213311787452425584680427728632541829105045196019857326086614073476739083608881044903488531722176332604267014664913114258584736144877004088412874360069051657480638295456515648920659010111139643933109787532427931372068871714605686967201882474170767394382443274490141319709585169178121237869356615337389451825707551800395858296620161325955851516941685808820832071874034600085520894254227079231288307948808693758948448675413600799129545638831592879988196232549784432649382403748601021516921929731530173190803641079342597692617641329718307210215151990692223265512815682232497911906777998837692512706991059261112616307730093845238641441379118895686021372665614760287682124298526217753317859165942750561887910312511388617276080265695669149039081398993415990720915019676057372473980428032817553636029178912761341821410554074261664648293612536095597802329375221313916892371132454257688131303678083856720334825475196661350640312604541123266047678455208943045200935212447236028596611762267135817130502284537097284843174912481986442819217809344535308948295619875765108467895813975066840474003024735389514729407898964659592836519444666604560337927982255862563833796243355296352925761968979466637716657741491443008471715024994811917114674605467428296309217811799811361239375278544377911559555801204782130886781130638757560126797583903025387094816486208916645653957452419250274698208756327534840949215541789925640994523029102301486688679433375815805224599374585852545309243857517230731031912737163627621114896107967804813627982420358144763171276073634324374651849035168405286025321320919331319086646192221631314039584547140802199362608517080337783491147940766482260291759890766058851324399557456800591904945334551946088183317386124900346587267793928272151711589467911686735804821451214126647762905962765638560695608610254192986523493318472572358241368297673454857051527484571277938504400548018852249021543839546786949684272385294547891623966618750235593276527798516230625057807326304563626964030175710414600785653923733744467072236237626634181551074248402355159415192191436167759345821997650944643294406783399820435163452705480066603085958431654333342395042485194341031652485347706641236736720049082838050218448650202515903299660504793488332926260143995074623296346231572786115958635692912908305706870527288070519974316598502676678965432507330467481396883101673622357431006048833297947717558228947359144646736755138628169281675661307152542960060947798517023611318950591263798885555052023565949013431738475299645997325158572396091050239999119904394606068843740522803659155151207904431359849839686671558786563505981319404208671188113570960404083758634256753541000186642551958473037842969489192805455428050446938628000963588223164661286225872777321735731730695231048124519812325471101855143898573329437491470984082674754952775466515364192409488412324492797068322422312409148042889534797089647486707743897891441817462352725199637315167259752147405042111990412550053224208398759676434509493036695167794825330144057914170765363811420465028955084435799529874707474425053633450486613726726902797872673408739923040535957008376779025073079947606678077802508700028224409101948123516787656662029597900692478354930430530843677557506676225978646154668778165561718552833009191622003569136064883209937807502114302802070475100252009785226431505894830470894728455206720146564587631830099265849290901762159093276824262672142005180968841286527656411945204358478261209737610103062953885692757088450344686684216619434966683849044878743903115004885538759757835163469992132072998221376857481459948255362712064451630026560483155950894558301999986261151976554036987606979559051811848584562506032808084961022037055262936645326036439518494377005786172597773486055452098297918652923307311353122099752058763706044149302206177635469598070034740832016241903437613460252150604309758648919300785706785672971988346579605942745346984840699958227600045909828077981027474548787624574327361106894348537306474647108057632510947423596966482532656933290630405394499163834107136493875228883932350833249916129916598331870534777292655924899425565117006159294639604959015840893030266820801232712542761932418847107062907989112517648368299219301382379040102275337383670842519562836163679548616034459405454123303556521770933303509775969000779711464019490980431310950011994827592539392503925895609335748085261174280506302776591148230167288826445073359657125640833979923033391294970575526006998898471200050400862393994015267955860108146583955261672169987077600705735443898534583638726803429594115213238995427239971412162530271539513686223370696584769252644577565194726093295644032418353443469820379987266464133747557026695137759750266147854474694409012791652655842773180934036527781062533684393082059288024371276846112972942737233290214992094299359806256069185473238338532487702640280192617513117786519443156522371639093921028873825979644732593849485989262738184993808582336980511793020696288900964593658882442004418989025243642092727050318236679685923132021067855036055335592371210301793057984814428861963898800079192868052137065333893858106298622651994098524201715864760507816728067740887456530542333761747681545226295861475661826883832525198789338831283884921372229871667466340233411415809986367322336450391201364171730051989555924472001944302958086584207219184608706538867860920820498296351678163161112878498203207007537270082701665099677786908932875950130080384571263177983445405306622114825998835609475804363435180526596825824341544856883341417757304417062673133552189107655806106004860566669770743983498643875113568165423411507170340281875060895553664827132827135716464783611242262651620183071471534779732420690783694691736414336287899011552171562048065927723336282513594332431400292335479033648710822910678877876417246250629219456334790031865448483668377384590423471282065095682623830523205538213300903359673101795274191579728139552518351391328412002415519229723582521176470337248621726409429209268337255992122243729971798184932462730388883768764806584177327918046066002368390079030993695413938969273901689318068307322512372740525215975655864203025004745981815020484636919330695709712639710213204783728689544282377741082101768558771304829257727368043172791172001302917405554853953738279738520662730409600521673997458651908016379015724873458234622003339654235398402359543855989953495202691366762321506961908478019870224157565768033366322562681999028920319524560227935757510815661945415196060270008603620136633910045549524130898261622500237802636011925800327098415751085293330670460245001021750044371925793690243196715126874946752566302141422398609831666992821127313008216019738578442118086629613082740486425295882148565163640525573735636413415789849192500579996793457537975247612683660268914876733692292661045216320420719734365070007267948633383368703530402503197005493427405416863333457446023094061065178611354508575332540611208969233080362511830482559735717564870767477122853605872091047524014787376856389649397243503884590922791020031002554322356127256112372297844048842378900693880769628246879292338940018966712918449102231870849474204909396222775695232607439296622092562513739722035014682281945302580500275198257819053733225225366526161694354675374494267493223251207330422113614008138978927449058696926537219504283226476451047947238953936093237538887516499736067951371427226344876841890368756614796717550488484458622938708124565327264492754399729050151233192052189403619692505444222470108244135496462434982123531674029548553825994029745243925107491798809883556955244561192200968622388250856335416013206827452613686968489582985239338816435832377431141685342648409955068456992455148790808760259971041906175056153995915938810948210450207479116713325466441071921493054167280639255991754761585940118075321097762263202957603065026797682182613648900179640339940284383213944667625749761406256667397847318895888279144404525161444312844300412006829011278248085792774703057118867565764856264771890695990116761303014465753755048765973437477164214945108609995193384675377200759040457154231266850362956157725829168320642391691076013449747290440959695465433705108742189759425049977026556986086905606130180632111714460999106266309224073370608760784318972021524225675115201672027666567839477869380355560298142370829801337789038901449479753261721055915425711046446368259702263418309328903864057789932453345705393295569129734468366255173455651057829797808228212468363021276311543232128572221709817795555522552842590006970201290011420910568831515220285365319263708006068573105257932412285590772622604355977208124506917005180921967459170532210024106224778529001618598172272174742135872353437624258194314681775405700403572489699618400176730801572516732022147407133993472254846076059503652742101472587484918712419070254859905561595095653988258158032559889170830526226076270165378376263290983228854360152192502002119647092045395546610850297624753043891027930558870919257457169602115480698638264316123088883932070771068929006803687322594771976220497243566633278793530832573425290620002039195089402503631678931380492343577526621890209347843727386038031711256756289187587516915046263641177020295830208500523004988731750191191202584856872012944175866984898313074094179154448600653936698121759751807200598491744036795623789867690625225837782663109201282254030936617191657865289891374078029476019709354502434102897704804141834716012803915061597446513576032276306327026384379794608528844508518285364435858203376662357612085574823488261886017256224334623361120753661515307148561760968447209854825715826303988478313704849486776126077827425042590502188494566753313720758264297878871676148831517556015815450926222768516982700463893892788326387364855308626033478226590872773983612664214989482016749853826347273326189158948129619162716186867493041385610369737553826799578813949309526975078520613365799586757486633312710233399309681101005487742976974175890344635420914146048453678111405041873249099377918530248837640630261569820330926673203734157414135101003518935767428181426448540317052726881700715442913857593128432970233728613915993114060435013722688869386770899776393412084197727708373076523361929240949183835131593836261408379562966442885170349822904661923681461300551945049125300924898487995974890752636693717903005605003723525034037152153825340457898073246978669361034513758393539269680886581470057760456328884366974800793514250606904237166325323321304775805087131232521546981475596863654142753562830980288787026668980725636867471184393660556381176661054579609632431350891755588976762844022770077061186185147917573212688589102025356527539045252226240148350311656510456801632994100128754770147607255669022939705815531148406431756493385485655564358102558592116702340389789943767762820464598545616525723799507275836798978361035136871333095585270028783725488482192673322438235911320358742418003845729805363479966755813976323452799950764553549646559389504751625398007796762881398027172583288934591474805799918880842235694940134144195744946286191706532626724376483943510636084563572027448700861185519866066851757679434799332652899717900270057809392663329704934954622792971369339489626481092652000346228334087878265881831399664945542719321433026468656648129560441360351239164904553877000773479313660744375988972426457966017661304144109142069859919531821728421159692016825027963404437205013537512230500937973831436699008262052386243893012709510719271667447688627410009597550274925062595684447519463696273554908843688963101253315513015808448621600206622752198495860944336265299445724955442275326435246338586622553629420597307579474802544759291678338860886133176518396367492196897559594103858879613764915738925983523241727107723674299608741243998195097969192063875639700659556925560177797778655803643997671610301912788058849892502812584755877124446757479055495111108568641251763471750604125655233563779223241617065899070804416762494226643436803764543767759778856783277441471720808627325184520080352163100049549602251359954364302479770198720639285529758386297434391690744082078681388854719800793468187649308576053844918318210717809529058271193837148692206745077137406688214885010820131237852998158871213237038447668814384363761384327120080590069289191873826229562680570098006313851847953935910823639051583073417689443507454294727733740940384169823518875164951674054479036859014804168301210716946022950805530130501402633234369049790370434371840829369141692738672351308143740631697979610588878547182323827101919735067048989848457451893756534483009646468654325618551460783845561306231584138770560709290608907033548593414778198225285840576585234251079100958441378997331765143608669781116361064612174443936466311862365736936219680032299136221688011356946141852748756094040611438986761136744675626546098247848884866007754250298575550407877531299586725164198240650559828816212816265983378285813167547604405493504421353650331169905417635084378533341033753625734961671992067490990086538723704118277659055877462556826006947653515239539391824264715549168308106611382603831896161671344630201019691912555203860542778058460064033280291166071231824427907863560707345630409867059168755749507916216601595739327496015930542682511606628444344986631326411843548128078428000396418815214021766043729521964829433812256242898036341710428020903700086853979593819188039640386879269095935717786252104134927300273431774352240346564771782082108530007097588354255206482584690744147873624225501385363348491286656299487530599203002583033688172781401657656161225327370159970500580178481513865159148864022826669902658833384231408241364867195719271840703151327644114238638694795553614875729760054703043088491609853795197293280267061809263812095551523867821244175837816770517155266497258330131675104868047158933332448697696457200839929144131948846706187552927701104060330376939691736629150272104320822722993116898049865836929652400779854487869235364875519362663907492806094339283248584179700384858835342860579323639499254305839205421437615303392874606980495941247780080788115933537337601588141418970003269887330124655603079627626521006960819500152696363914299400169296597040094498705527340314238226133297188709899892098102087826616463186070609681148147324078673589698441330871276339032368951747815125403146003501442745282797933279566290624997854686558482356867345715758745226145284361213730703061042369159112325971611215601389500745906947646385484631120576201011407103530699838041322557849795461460950045617573498160855102948071153192200999700102126393987206750464558583484360936210989539071439376484942433970865215246027375168926163594836015763996901834975191789773462781491202647714023469587538100578550971308899775029664899537029083987317625389301926105950787571125951423960052789929442066611022714632908005249126308922024089394387400292076431768384077008905900427174549483037523075889883773663531335877750080981970092507482521930946252580648956047960883500902437547665830947445680595247520518732215080196126040462754588733376886200949730221865527218519682197354514675404224806830611106794051199729316677091439933663812575914295680633334348301838894045366400434409536159678803943329135603111201984348828021922615686418831408403546655482246987074176971868312371002972339593689870367645451870143815147797034867804841508848999251571000775074881309061391808662364908258381375560589339269415114099824808910309538720712744990483753099244056223816608866392993564683639955719998392465718459650765829787271041152025765853916884166641120674601087761406572961725438777107513665700215204622759316865841624172529649585124764986229200130314836502377807863654561965372884738223731048236864114311706232994497930641597166331583897346060790200380082699001124189342665713109644461151571204089040252245106012645109386986375488836990726170335058973575519079783885576292654470735370932167552953591637186006253563502823678457832692102329751659396195644025277139110212765446176948894750635369688351564525917207570322251557386025891537122367528370825856322940460801386202438527704670196009004364901250808009895041398765006407646462012435213063225777775203175013669089610928760205629549256272431420358093276819274845210729789575808401327846569451687965488076139391826860794618202622813393793206965545878846005723098059877189949897445775653804907982668668100106968703231525205287270993789973967355263208266513664405887725219678896560624923557985063938781023978526754173133110204159259158726931882956602573426496158879354770724491156511197086578584933303669008198005950528933428386524799245095457979695111141041593965370918854534353893285636681642815698309371862467598575372135787286720096934924986984104057307098848463257550617531809032755994968661534277344191297820929137201300190181960708087402411004303660566681361907442653578062511875065166967961695447134076446388712791950081310732241336509996507936270085691120321878492265399057605324578598608711334857222047478432190071137623084079790960878801648290631313740735650234857816816107846441367786909377514538813675516025395563911676009240708517979303967158602821707916865460367540907834795867719707202747405849323983362851236350602179343250708529544244344534429507265555346568058759082592604776085146066925905869585917689363876015737028584607172035117229194619622644048297970363812580467275559279971286880396554520603828954431965561849604898567008588817751572437521276755000869711386961612478539905625099187018228098323683601042998190260587332727466773415842429409697115013480512240375684010736300615755220529277591700679397842745299309481865617686131740219749809691069275235733075692033897539150041134918981405520759756081471584616727667252571566412052552312120989667181340299315415102289222607606667970662023713925131519274358768777518835531061776653888122278841996032742494072650008730361755332436640052041174520390715587095440344967277623258484444020829326464258432463018122579765613425242107745899009944860522805250032939123068520917590661883489458900047631149296267112651800736258602438249448812654058704016014001954981268917659421133094358339602061267902928370273761349045378210022705917757556720928319335034077246370126480941967000617432126345506011654771259328749403959362034772747272080038821245108296364955833543618760468112433702305152231066844307995286668289862272551581414260324624619333336620945830552016928335792744284385073715313156876238134811513717505855986399429819346099563185453914764337456421627292209625549036495657099175450181023048083095051001183351051181041207811076025118006066248188901080332150714965156184213092645366662215337478014304145085118439972028809175893544141871409291253625564414279765722752874037827048422340967844150898951436286904984952398910442315773649338003500097491858842066907228252744297215131095743456312363783037707524996405436522721836283060909840975098732486683209977507169514844606476499197589146948703498504106820089928557877770477260982867914229241211559896882880933009062579789408299090691260517208311720924415647187949770896812822457645812757947151211385536321871541368929680882406595280774439613139705125514320790376475980958971033817496534069702295249930952615244872330284385845273900789643257641002661284035871323851290952193490053204678700405454143392909573940482758298744989134433704682154437833169345149399947936630054806726677332552358836271894476404090421899064271978368836830367267899676778653457452185120229902214119519983319671519482150889320450818800634696457024553066209172220453678177876466274143473310759081103917936472462916890562452399485181197633773544364624150080775373325801869028232150695273189660162911187440517498847719957435766162447289052013096229399552800313766313628120855274353116123439505972824610652619119758918842970413724318625297128789341242966785342259870126909598656011085793197705382358826585858096475240947988378939219972308668158659431795540078112272186602438433765884983516465488855461754691725394133761001474473795646599383887429375244178923659649045701342064444785500793643296907674168885471699598212027704139119468968523598797040603455541390989004158232418258054238512313547910660588853382713627844650932690270554405967432704876727835518350625304853563279776420535541501690754474436264799071980272834470912396940267819818758969799532748238036724440791347805333259015670394355118533113863557501262041300854736324819713883747636155709188321886546432150802837750964274495210851456037567180651690146413605501554275975212541682156776988763963931457354210483766387062975509617359778903500192418031167859863946713074792490447102532915616638650838815578398506769792395817952185040968678920383303609510623322832209994859579826417053392927066517394279672592904511422396194579509540210547283113533761103750914365309643764893648346001640446939133635310131197904823788459132713670712295491489952004680022973484964452874635815862370927130687719430363481973025722405557283555726725545054555212461765518823764392280202403073706200796908483159703026299499707099524677215318489861680652066364742653996863362824013804868175944479865740452770623273922909556045933621033899588521563125671789533535088429146189793245455890926235617145451622431719043114531284830453964930509461980190189467114100368796815595488547193046056150473428920129023637829842390397733644563466406393545298826809502422460467628053479994529459080850699664033384025996862131096283702768134769887941062839208312818597023447274922644821853436332059909239987285755858385941997850434924120417754164563640422162190614750463990057972624941624113332082024545077308503219334981241578702760446369800652804913076987774189798405818093568178450742051171062053051798015467533124293965261436601609691574399209590236932817974597474910613773272792479101689496988237930836604086382316320003671415015877697314442892186057904082354203068556479277782511819901946282228855227279397814018438591568279701349772548823847131512428282393962047480866003073458816971943490879677207810038184382156578549105182314287993894304033203802014164755605538663265722109600498707154303188491943338176461289861862026019541946862724195239375393623186589585518611276362464940281317185134014584375604952435785512523370871530933173758298483824888860821677309379042499978364658708407446887360011417927543549656033238375646552418233427842470110143323949644330427864572411223830788014294742322527246389956511399031576415018381131673047704525196039501313596704511197334317654679912304958565741992729722658126891163809615636734583168675611574675450734043801617055576336463210700672641144861923493214167439371621017678101141678904878702771265138144167624208108632521559891974779329558247377556306406822589979206548264174462886159931548074582369586361668775926884861882800109593964078714160647445128118181797621444179696264385081506399362546852815342957636408962254169568678645659605349025694926750920567492841902460537835305047564001267123189164913821708428182797984014577484656216740381678458567533108452341309708471006613293552275029430314296068243910364764744738793122208436142202939885149123779440915225208030120712647571163324596229036583459950149691268202237256865506999653782090319348011344140919832200134093851994233240732520680580173962524816686654331024502648331747163973981000156798106746755123809714193193018282608016693404874971363103875067446183116874667385777997137403555753459951523947218646481352861732070838157438409578793326381643312657380482546778816808088308797342064716227430897800876667047606524425046402072773061705783492753132997364383665430832792758766685479327739829715577057541985216722293647695104434724022351369646489089708088140318021023640444490881602509043709900150203443462121035390240788758766856312449002771122129914631830006130739397200018772713026685504598731474695274119937381328359687701682091132243863279195766919597276745484385971330961912788115215167661213176867046942302268584935140991076306436587556590219927783919226501038307280563945817930972071060349053417898006157453090818131685798759647698470919244706647397183960856876795831285616118728818058526932656330358138647690528511200098177836729662384651166329233029143196703215819762752107651558864107774873345984089064441762104537923535488297116801467642087123157755457988035217647632636010027436720069779223900965780104814574924939966780874774291720422209116996977818597388973208183537222561359090293832818987016905169222576238659215864551371761834674410720622876628597208226538152266385686897826013038562808748087527616263386225853960881060100253250136228464981781051087000410603403000321678115023307562903121775979050902952111726507041792081525687667630696351965458395634627733989914629966652087245925492190421436145051835259337872166890692029682619646555033435780706137896522514822470962693320767171702971631478601036987362747360813853555887439083646826007507508736045395035456779293458507153225714339204468625939122967643694320356829528095931832544087430486147686531110762207429905123993889648134166037274791258202345325728837195446931312676305351612020585337265212524968451022233427141668163801071813671307646889787676647641910216554905917584945698964468291782047192541817991425788629505797936333837657328228731668379787372595020122068637890028747007511156625092936659988032759151894945883442710453201121384110772789731406720839782769904517278092726785801827031784594137180497899985101439249302386375063313884993565667032040192798099446451020075222337954553501662447111300723630493866935383058240340225532548819996853489044855842103735955020676175161116177004761663462913236666197011875109136568988120981493152122617656069380958243302152024047636908952226487643134860139265947924013721263320887215191831910598975378974961856175158456701610753928245084225883776916918899508673874911054966010360703321449964053931802746345163699671543804239779485545264128877872155207875901803299996558409219247481576759297433127690674201146561233936837268082107265646319529724760650939326743467446538407829457699331736928346647149695372392824817606586185607967047280137410311391550046479580797930367095932825022617476026428813245779643293428576312838982165531002162057088296213420310939796582352661202298570237930565664281393463733061143968861956133712090856847151119958435075436716321646222196495601297749742850413444921678923929907796483813177995437117448775579167801805858077095277612167953069477170749231783863342676673979022627957400817420430604850453502444147331061473468467517539121879764703069111434651309677619178606130820108523171710652439333601585546086654484853476517001274129889653104620600916767586700649627777854703062674882703558352469297145004245473883355494494687485542356758041839451576311464807035490566377393758220805938732228868507428799136037138279921633566137338964074168948419974130841404918941089268014960837276895945156934492206563827731747605641173123045194502075213946740178283742373598983353193565084058395087096070654385748004989030788055414944378382621687937635070599299278117079847515268750535881393827020829059146651104484490609068167130917709481151067856259055929684222107344611387653150592510806761607820531967456584246060360391900677514387833179845173985126110287309855445014900167767358346628259346194628354384021071007903063474564681392938641059481543002741490871507485431374824733147530346642685769325629652878321930639452250246510767731688056824867249710480305428319572130153077785668915460092678570463110402359012740538508701011979131256275670032010028910870251878652730403640905499255173421294106245276749843540721005966146899483706545742060803415334503925963487678586787483921764793480539804003154324015265369074634643168056534028253155195867142910536541061964244676010592756832036192950487485460683857008647676705405071847044510600994140051135476214712291385579399242042054113850041314200308623605371728638815236833088162687313861888370136986387615930386354391613106591092008183288715048033555479278482341817854042723774656017962586488426186330039367153747292245361081002523082566845456084826980537806492521689957363156641052859507556582848862556563671963321856511968303698608565851344696360381475837185223462561411693321453002221743337151175965884923865992562143308462931500899923155596452578843565886052220070637960119647189229226533848312124184564990963360181827885595503910053318824793535792622350638029380504445619947281247878963413593042740546473031578429011183864537347810457357612011066840899277141485844450385111720576906052954100554557974021612233125974162091348929250156820853747115680525824712449937273942909699267191818190186804745305636152184593200240270315083836574167580619226673455759502659820326017105073112838548574894890986678529669528688094132440561340363022677926626627865480868211719627891299382036114446598877970726447394276085412766705938259659110644457612722541202445612712543589912539514870316129925684945692855786000614271731543807090066911937465548684688427089154471603199238991250980116419517453448517098643712294046714797882032436975812806892838481508544642475331779214903658678779744672199266045319377366686531336774331332433701942043594919134952352512005795412070104473110830947174437654605625803750363997264563604777774568489241056333684249111067602822048060561184128270738785713074891680968608148693624687980113195555830593499176406287617618950829937461850824401750517862584876457929281856933105167929713524862647834196054411135423523132241432367679258672523096185980139959828861255389208372345116045523608488493539921513403021781481660168773641966768688652503050926722279318355841440770970895919237134414311288584139975225495377736220756092628429708353389028494218932774076839093960862924615253672012503432601140623914743018125964373226547038916828666589086650339759612955846457907796150656046887692037574717323678524023388609323702690509897891978640052153148336147953749292246355784444159502942665127143106752733844147315298030315407636801617505078712009565795514552123640918203413091594851761356492456827975972136484781507139267720140780332842643461543402470780547771490089628626552032529067582781890019972268808121932883273194480251365824778555814149432897051960534110943571354387152671569523936866393974074967558948323203891219913168742587314605437109117266762736490051883543552426095195760539824735021860765725719801234369803966199993987855073401176175400776264284303921939273407058735891020490214071314258383243762638347314643856266204540529551712738891866298090361767180304800277528010941325125880081896472081864289147663181718415540892518695761640873181158056932279439986875683864981129454322873885214035330437645476140775976028742582921359145451361248276441940510787511412634321712554884869239085259744451278701223984996594769233804783623290922668135646510232992657411352166444662964586055435215747849753531832298802237026592691470906020294428345037730708121079998535859125225471514757010767141015635780403275628082837477141119984008047139607282621090292321322774316564935026660534059516699899375722707049447145162787616797498408704665276909552471181120517423048662666898872353828302822259029900617255301773083574957612559759614725132573725957724291359127517706630483099532401455267468539209099473661407532431128533192575397464371027193872182455532059070520140496895897369289305491550500000887335536113733205717737085097510134926838045295362801404362667567417217900436150946800524492684188589753870420354441983737688514267699531709559395516366143201089038292659918520774691883554123570316304288052592998406245692073051949658184749212195573806185516171111100294649726104862026968618097683170952242382783772839710301444801758574056099787190802228212048694447125635925476310992207743119705215461832603712843828168923646635408659828380425877455147871389084786176349169499481753924058781767207898609790633466566709293549699444769101992083092370294347270615391166730333830320225683605914889934776763582819220599777890798439465533985698688910710837901345851164974161419754486593475826531526626402578671330836306998511087425340273586642621658458700211043694259972251200136157455570320204480983269185099316630836594942266522804277543721998598384356388158018129858627488122186480663605870801948664080005482781110239104559488236310227037218668205079548239021353191400922974196831027994264370205631671763505966591813162756406082884998215465360396186554150217370238322854493085412566338985525508229424967188748731669228601425254199803364275289974768474829767806596373965393250442800691983333700042665252068532763794007619282792846739387170789561537266894546593793416775766484292771900252106463472612610021353796535535761140628161423723007560675094542137737780797330252023269897965137667413730877874424299174467216698642406220565236947605999937565092943468434086263392941403742431199515380097266355822035064244993998817185060107720780641678525881697275033941945374587832458615261731308442300807115282677676096459708252545905837776033041915451926246638757659258764640753708980085453667050778469548483482814836053996346646021902236830036350930046199440914736443489176977829314100954980328422635093565170345857217572437944584725316110501013016711353967691390279850405822596645729817047706799957904117403415546942053866832877566036168937541443445047139974785503860511605051869243960461661434939970121048758888369850008874655511949855360133857613765658444596254447361042806947904847162938448338121640765708607297917439380125122409947728387115912511490369335156573776005226563316841836892030521172625532754337681218772585718648315277644793573905690952016714047175271355356779113596789968601972638181522022168893570409607639445472989422856484667273919616487979721083936051942078314223444885895699229389322720400474471301514597425550235256631912877612581384853968223504556464209478224282951066302016824551718000637557225315157312885406190775421904727272803545109333062723113562329714013902435584118173751247075145960898160971024974546407064549468248196267986590029497192815401143299747049786025204032320225273443158720187983330502168492070688260462518677249260619272371070146718643071550549502591949745753959847119273430700773592269138342333423609323610872017826979533931601598146327728224138901508705927851683488528194099510105534622469927432673239083775134941950609883343678626466287563957488863189782031762984878070695494953089717344656305543760468141726438958227365442329238529862640842001748952918007870403458396913792556825157015732128928439309327687367507997433240012780191273148771783490921815497866237147435717104742876217930735789482261330440631298464833975155108616142663721599971783347984248570482265641908546784580970372300515245192939722849023939402240501271927698665490455187049744618808034956091789317167990244872921381813503225422989264344575490315986260878434972662693914979794300152675465100070444642628812926562607601100104486872903013167158490737371076981290993682846825232126022175838266987602152261343167961052831108762092604848730120496732855189160482291320762968690480310203311679645606245435228327620225747597512324279701659113890156500265836675018223743160869717783667605594579736859788938305725900079050213527715816367980930001342317538360910505642682356683074860478178516418971045958240781175107024673140954441000753062491164285709256099444165608502246202325178590580969418325426356032612390826743551505442145640557784105049599537427272209728107099972157654462607231675452664267627324241618801289381504528034424047687353818404237148400002042289605358203488713035520624585772561806481805960344170256415445807643075238959067500058102450272352862084675498109369323412704116186768354711382467487822317491489816691418243292197162263569095251534095594852365005499421408054682676796479483655138376881464124377799008610456913593343054687999762758505532717596241955641937960175424247102901208348444853223482005994410200710273316668098346455717655161307514210088377668886332921524856784427026109540981729272260092359786768196430653322083374674457854345799878869931646139268583993043674192291315602746752478568867275606730585234280358336778281789242086842150937215756855986380843395802365992352815587234798341320419761327126890977520579541110911235306699345815374847704913114696835762625168437018229676722192396885232649861018347169459220901473761056663819370125645788883277221304315623104407512065790751982542558934054441398470556472756194875859763175840467384577762277768960671844873726493761629447233076793297392438424968484640487377617740458036249629321118675064686131158957272290627604342746099858170730496652152418106136613878566604163262513179758085432715211798924919122959687647969242706524163439722126420417117645651352732412984155082598979156298647473545353912561362399219952423860289548786823115616510805800564862318977421962033794965620503062689784926745201098929702288901225809659754999771099491314696858625294125783543341913672416420114556394256882603983633806754016744660226586178500884092526263476572433872000745306222265363574383182581714011601095816926130652727931028301037767645848237870806666585902345583963343315919982311111433154584289752049247757513658084331435137542377999799163859564505761571478830001350410770694712991743984892436994184421525958152553193051978087786236456078979703902411298522539686843926134715440062552816646039898942160909803911116678340734921610133140994317226701191093323709269179497505254139693948012950581873403757172619937983028364559713928800805147292434506452790577675182331036043375256581117871827383898101439701737801019196505647496515297955274601640882957838005123566340316779825068509302905171328295918138331418089549321981858830020357377721920748624399274109788541431332810719231199203458553385315988403750824817593242909803029063200430084278786587194744635387894181402241679043425989480588727018347003821936728476298860687886419939727867718346467116148252267494319918410597873132812257768365186368378581042433571223872351792967968673095298867126293889185849336592154030809906077575154100052444493916758330531767368977072854099831397288401110532002816570423625068678066675680785144594642279046174634248129316405575458214143548192672273982180624960179764326665905326915432667586962657710119639037964628491348906971023281326788589068485066032673950120964127578735243675462475967959284118146142531630644847691566766898061482351560929818274989775389186033737163096532292529882496175473699793693729528611743438905282487329384330591104914899832294336837593218326342471424394574858268814275131188173750800154079090885186274401324198534564025838048131988269818662270180056835714825391682763510477957313946589382442862983610413391579188982871552543329341437005929434856063829006857785299152606257066088184954109958449078498409312025215506580595986803028563705556922088820124971416059537339480477325124618328745057540389243101917144930513796818725448787838590135983465854875724444625450915717573690337022696268841654472995411782821851678401734148875749381979570009682340243347973526732152840453733487716069451024790570801152162231478225598138788494588769522954861110412860570260109432770328478120683775532915403909411138708222266305973470545849756786025735276740526748220108745853701939308491653318040260607966926634382802304361850405622604041700877737674528693081714427817071736792024534992741191787580724486074942054721930259911726752160689702931829915178113780192582604613972203742504366444980104033622769292051581922193255965664816848553761589918656424171392340491425863778172068721751869072587279808077057758701048998601202017633068565889347482178824431508776862046530986110263003638887983094956688623599615369664353189651537441538045065829558139058861683969960216555696321536177653238748135500162636455451241409162439359138292097349198096763008634017372032959026471389219993978200367448978695949994516780381978127720504570525031209812227965466161171865371505154673590764906260644787525353315962922681467599393339775867762270481702744621311097838976570326441953036553548922441364338368159440505779781204141118245125470164975693181347284757707106589462256213250770171706401456962034847893429240626934632930543556440057004407460751809757859990667253630447939876249969099906942288511785030930985133292865117916019999025494032178354814933658241162674861587928928516972080525972278766200539399851157179587478260167955333465620403975089742673843796910624789857426630274106540478849203563097798379069607271837304972620727177465926108137731875906029392313682091313510987374783599777232278374206716063677931551422047932597169843745885970241559024342070097508060571419046129080563460710925281315374471227794695880753934720167711122021037838539940154106206853986118030299209824138969058808783165333035792259801864617497413456129820180344120518630194083471337062791335200472883486812159381671231780098593109183045506146873949582234772441526831222121730871001482965659644964680190224765895830017502900015136229053279744124749500285852908672362220701727678692389694297365883978106769091535537564341308052595939998603196549535923259032031652628348031495560994185079237361865017242425260182016659965137632306606335981201583598780627773440170767357826711451922487162040088429533287499114195238353888035294300162454329471815431632890474720335272773265002711201595431734996044812076264072952719833612018028278233027069454091380792806864939284148211457660606142911577524957148135241130513146024434960172418805150139101772500252410198770267018618125362592585455479365850915228329485693449099207532700577402720514414493538711044333437576346639696877100749722395070110880727312597972460447787021197348671358618380114586425000511416695766307441822684341781174160293277823510621763917774510135124101117099646895305951768439610061475411087351132794478436953910687998165255548766212246545524980392644448807254755203039827698616370485251211313598617970576174864609264097177408850574156042658492142109157898883076709647842405100385629030204738836513025798270657952949249142400738583144110078780127780461762834220456480333718128959316766781123945924033377784614726164983606869438188832836153250064226660325080939419604753769436570887533591765413853193576777141584783067385137579284683728906561950100886903441843794252293953917229231555067014029708561936818617586129729727860490569144465406994885108343468507231850924752300663429791643281336980258486283656968573281682928819122976459065268147965086199005664073294131011610040861638189636133102416212878117111433458326312394763095130041543664737512820844055727623348107922532128788663653838425624966667431595517805205868586262228564012324879831957924654906987981107976432506657932551044367744585021631829939249222144835318187375466499583119949835818683651909680990312860130786102892306869589583084179341780469262972549471853741945691858556484457608828253448372361325465542052480272737885390954742488204979451078978559340381179557526926682624803148782984761455478324818281277024500801742768100443043977537339857985028247621350051925280097760123383627987629591898248258849283188338992107854561208461539638108446111887372232010819276477589116078083372277437672524784907102787566858392523365690653281482116706000003170848386774140259035941107786999325147876809904875865620789799214382044188013665861383955974906569712936864174230678550297442971685192294701300170973897523270764479121075738249630265757350439543243770827506904477239134780433526611968502474638912597537213885531055178529124634760981847228048792768349554590083810250661832960139248833000796238742584921872051114401620852649295838195307795439635518273842157734654353662196435904511848989313405247922778657191039854916190290972617543497910969197539042767610771072399040401264365319492770515832142945575383563192905283157733097258600339581946038201702966597402817434643809939863784291886633260908763656773198139653711411777713145139994436092458937832593568187272812335154595564428901895267779408754579966074694380236553501029281802695115197918642775529292940938537026981693512772222692470663048005490222227620268803151401668244031504746436221098279571411946452313595127127391337254607853634064965981253858589488742514020344872870594805198848712540025974950452086080334499236822417966562910129281440432762852403877961915070135024482551595538935484097047856775086951113014485859174168537378745814976525880085881199839468437607515859589292582848983177497631531860649321651947942072492411649388308546358313725605254816457705491688801315068797500202686758322533200953553587535645989911510844627271993397919147898944240254840480499070009319626752489927684115458058532957141211274538396612301987275568557934035469220099970728840594616695791132885439412194863555206873377734779818010579127828872771921732954669679269484945633907584844000841585472045182352179302951854884374692377933984573866658337213992590567856593386831744796882368918954528972790735894198903206802182535312207336015589182652962739886631656569078600211157377011587459521669881443753262887774906509729644520005618910438590853868282408572698051963674985601672813543900462037515842688969954910771335849125254361075754531639133805744065704861670479457765240548400260351168210162007693858601684381354203967071198734713258554850178704907778032393922941487322602923738364239470089913689950327570729495736303474577386132669605395701577152753516295270404448004927206786586352141330211887516715599432248318444425626256335248454796467756831541012288835778936122751385339228439281852435006798634463774349226685064125594455649013391809172418352829254481909018602187822412334055464293215624605240945759874785846706494242860650404075404253751083798973326853934068667992337963969489631480666061349247829833251390621602964365827506637994000408761923795312927601812702667282022220053825283504699602768671363471892561794653540878639195218048360817209280658558961589251780151712240681348167785139648472466042054560243487202433895063426446920271310389115636206211214170007934301719951967154946728868230381863429632563669367322688790012518123732536529551994378615065107169019480212611756009480230803757193569313134397534847131691333526792093735449733246544794932032916370503712286654920221630264607043621224027495207613648734659663887748308285130101321872891673343827463919629521303360704757164114521263763215192322218158265968565028435722948707391644212200432945261075805771099705244427253672980906526836261697443733788106784485692625865729076025308519361288628412295149502133232758357945247215823177469762779624614123439156657994039967228056966769165602824814810061012480801294101701232065863193489960663601886865368542555624453794809700565571410988172008285412566699709894812025626153973817896290417934131768573247542465000708820643600234929952350142100367175874237533921630503013965375244659945511852894569492090999307523024686752248942241877256500908488352755147528174774878308810564990631103737254146506423771582197425661069787841075434969739701544112801069949376271329021815666631548558457087875112160614586113222819670193350119105059192758546265142204603000855799231432885649050361783153837790955488662968816134921233361725736473985445859574160234004629810562390870724700362305898821546756835762457846587156561560821865871735283073684649220684426551733300428135985947779725549789930866673486979530863212769205305694329717865165179625107120264291001887486608843845812493084592021785250031459014848426925936502148611716266650035899255516154749270278266726145141197330633611739840906575902975760924064040298137199360457189213888066831924297779378711305757519898966046043104547147598020853723564601468154812549559999179734490156632105682749470009588582813494862089330736027744614931138896756018329967733243704048328237691952410710663421725544360721390515897908942648105781850879408548668085083999189073054534362500948881457356940281683619343424989155235004201805539518215052220582455050701446020183376161822590821494787432873244821181358184419456624089021340223201013151630333068546799683730267417494137490222409556182012472517412598811529392362351034741585871501418066956801990635409181520676404847944716803909359498871293872498154048926869726925383451062694984020035695557866379005793087290810187627027269836915194168968124641411999819232661004638057941562219075157769042674077291591224063240157723233374965428386273278779720541036571491120396062999011619772499520984893239613681809528980082313589344338190628565669415396257939380718188719768820280122005200626633262567153683975802348546458455781514156479217012550596913303035842198017931310026422743820237293260199301665067018576565686732368465584826878537185469398821189254675053527885344607079399817884546036355447492738663448881160043574690567247611013218823149860610515933935975046905198744283012113853533615919076255851307927274962002141586267294762025149729004142597319830756431106574184919841752855086139990336233966979361824456408553191285603182908633670478457787522687577991262727121677884390816521929917309127667516045739558998752454185626675261186166738922906743558656333452188671658498197832294744962535878822843073570946877044685713480113559452384785090492854955061367713519113555793868036886891191570301005931071776326748947528419092638822238193771568840793863582942639894521179588196364548332950129956269906694416261978899916576005300518617211479629370911346269041800593819320669847333486720887561042271463248805946250419440054146836357371481853285596873023364328127629850146567220677143160195427884745596883766201986051731061688202716860571077509057828038305889166271450600558568426037223439292632790288753494661265255256362077385802304591026294857371865840015765346421864298725098650472738973703412051891808295188528716749422952119344273431597009483295533236272076998484581807415370709476273748364528338628948354426417420623798844736808573593660631144651827561714593716795568777339674718749551389924470385521339965049026094266865174619253415725968861443009512905991699662785731062620439012172010728463492161689440955740815472005026876979523142494049337407652195152492666026927677083872685281452215565558606856637321219181229966552361770334212255851765961223628910572824838047156255803972260384311845427056307458244446395043713268876937890691329778698088920193218105229651207917842885401800460562808032536800003017372533403923397630772632075285763183326839889404349648980617133290629702819815045808230308262947853932677095861199221869093540808104310157520650343162653686401995366797604156512669497664264669303096448666995524841169418907410456789568000751862663250628198452123852565762728908337448191696144812683126675259869812754945460911107537882542030136593655352416080761358023642781621299585806185277892492116750543338561151820278823967816004124524836398374558688474644111593392208805964043606059808095087779289101294779668638208010974232032706211878836392183559774113812795408014274899683105792141699474605802140388040161571762981422170000774688942959439944204644526776110494069540559985551700479536335810301279398511444157581531037306845453733609850780456901244776446859128921964478408235788975969967794537247062119701720220982657853446770632350107290346173683778744023781176700463040127440740443321951300682295321030017351856484156413837754356957493972596610189391054089987404333479886979717981525510032349649371368373745615036288283771571876884495738766103187763043161046199425802269240841745672336641192847166916472658261424716695801713739646477440993282677914211297452141357649765389458641064308747708744087743702606028103948892532421336891801679425616240057987976691464688157690167030556535027093582755836503461149903983388618909266247286059675906038573395062279010554889465448570004805850989815111044296553679732223812908743048751427391229761068434858299770327973870661716077974409114974583154726395881864498134758837070667911343346266306839541728568584600285424159984266002197385687328323600011975123519827476849590284549875625821432736331750425367416660879051511750230539396791363042269806433447692131351878659448503990416352476467984113522333846303315717788522698399754403353184294126792413094056740805470384089193194787154010855273512059769499778037545857375304222180130376148893826583990989663999064174945522826350928664370096624751669135112986902422833384413515124534765689233909336287523129473078057665865801907186755938607074392361059010632268394177058102313973399623283099983843264109212290145981438606703415430058719119759743661407291958855856150700552486148946281810628035648722257663353699332190891941428432778108746172782549714133664802930697793142495008918815671293594183787510086535427689489306950954051729008368285937989894499808108833074830350988875513221721707624923892679146171667140153555970084029222763835425315712952193128390890958732264320281456500814471097704002183343820726331362724749216153356374123630365272590008194837169139464214887814681194612223365268980310765527307153201691187150848206924686486108724892103633984997948170138460325949651940057494556268060172438932287266812157429815038384859569235011323273970662392259011332390305729743311337084939323714302140299913772786770096565777618124527251030571432011268220650691939888892158340988167088467463647578792152843729162210349504435295055233195721566886048235342260606817361652588361210169972759481714898493654829957546514619477336804821240905072925422934423930188138510967618044179897780998910738736063448142175549311801784939875879538287776606947115609377691664313021488005556700594121190844932193736831565022281693683498982187197102242401058374028142910161328514030247226202032742942611235265257552597949878566411692756050648027090103106362718719825612731938711814135491719732993148204904760906749575333422029403162295626002256316780898111701289923244236396481404828524418260337918233117201144518162067721186072283366803210983337005379301222442392157128231197218530569872035434603255864542969706948900943909144291595051475716310554666406457298912224238697523710680054135256792630577233730411658411217125414759167510298812436916064191309519477037686917312054063385433672535773962695543834940739967990509151546314904152571716671497159869227734725106054170990868015420334529751696770181564178255158597824666159544096818173358351572561214492705970012743297438767479807535189213841911528191784054359220168693200101807212462861088873521273318129617936835713254420003379454495881305432478877921692145038163467614160750291361448391689490763501002040806679905870764501654226860393908742365377123515358593019685928571634445535489334002363388535940649313606607447361519554914345145369145458155141285949869619851224266389644154133934365232404313860233260004272671193777834283075044013585746155667206869680382059609095693829033762492719386823589693391926235608242667170572691766259702683311004370827134412371378909508508030166553230219242619318103634797111336481466027460851136318530560812400362139625537574836604964851499580576323270629493891991246082781788517179320985477673901182113953907404256474969187049336263885439755614097371620465650067373969588621655598387520472401558373222502488652648077251650836631265055121254803682193337446511479612704414277601117292418967833174801066462817796813745795696021075492527635289044611477205747947093325201313588842379298302372182878175906076927248117877516600928109053449319296337019702724814738489330295858247352338518222375132560618492887079606478130945516931679767267692374446115196936423197047536519906387822365001783572888799840683955798141467888931706319352608992651673947264937800070746205972610429492789756504609620469330123189315842661019455618962755614962391701541750153353287092179931895039477529390904828589762753411679583389122994852172469823223646695288541112706551704871219041261312576848836839877554250043784701559215286900504155687276330977703285871328704168519368308478192674401293278534104257002758922830387893387772847763660635633861491425242481087074432254975276104378912954556635390504941621296063149138719605110691993410409364923064085211312960086003727587952613163970492201999701382840493288273959584940712948644488594314075175476017606953097703582091195684273145364589058671733563278951846664317023810073296965694066735722498470100722220254985666606471283882183689727296225408338797252577482878309341382008413611977491517853156552799750872302804152995662549688160935490263516955110149490456688920919223743046318536669330922378928586529414189193481230560898798484888701412200985640773194858429690985636141161582097325327660959888556914193228597139429886634189219306577474632453412803969464282075047339434122293187843190471929212274004308825963694498127694488458481634422054971778185056267578541654134667586585001429018567154802397852494610756966686012908002641992435609936453973449501086370191700666676744744322654064138842631406622574549768787404095986806738120807723435254836385547285367054025467913978022219866053575603845599589421450134179335088667090745391053881598636942768120516007154480091258938081396060106252590776804940424648234242372201702586213902730993746185009144841674074576573972716358301778971525112530571926414070625964785980559349717807124235982091311839767838531959565653160002958013744994070679837571966664722157807527989205459550254030848633251655208099288870819828931832963795727327042623730467950796147351591621926192376182777682482172494420670305987215612330771608466358378268380250111049260368122096835957921407396825220565161593619225930002384180043647191714943621864904248252642674576033198254939165897021313673973994421237285538943769023762966176259139200726670064354163789240997312128104970026848823737091313070971103059672165874829406060272784981516177845190672204467806204010080164534214748230662066211286077998334571397147838887193292398098270794095414927608189970090411456357367417062279688975689423277473714140730428462701407228481873302918271967369941186671300075750947519074151903998505119365485376483794056580637150137517444120828724218783366598195384178537281820389475230310355749652241349727244113976485968803443968772709256957456824302352084712534448060608104338939313221877932038787656527241152210420090123178060643534755040680437836452413321208978162422366613948060982352669500955406082748266115737263641862625944191298526429989671071736338712420654202949504237327683400170679195271277207472597662199941204387981174578660883891183883253266959486347008746517782267458512412511426558725511701694442837985871105064989395946877366403821866405673359679488703145038031663646892195639049635945407479462418260871280650421726481063200124692540997373380855787750290759204645465138316542219884491314830178444306498218155855150831909473086771907524569221494301077207904750601738752856912682154523517811882136421819205206742282648860480305721867216917376757135359260792603277466474384031625037498612037063828861531634839822552992161645010652593862683872239557163556698872787800876199282067507120833913536781095275824787568800477472018849327517681645592074990595717685372101607796989114782782840617339798248221581048547805262929039610058554193864691225348234543546316224255852249673248732503095260779376223490859513388327939003391322377554989080085979998720370861088490644711525759726592415909449439271251294416393470335352774028883391152666903806595357569068277465438475005419197483254128175949332644404837049340033511527338261873219714585774723564754662479667611700984244085221723564276622541497708293772279076692129941597823971838684984573276256384469047958457702972657250360980903711044624541830359927608294385293851628746167403603386089115312468344518826515649055569889065796045535744325856867560564129100964183567169244185506710000516717344048103187475579000150466751881524565850799223494204671394720165960311978056191657781887680097986554798080939644039362637218853237807899445406060633545335016493365813726676092864870773789907110354081502082303754435096816921437498116026525514009583342894092649703866902106977847115855302792335915898387921786663034241834479627399944077432308277993288738144165164671518417568179189915247436586111517819913662247171553345993664194038041520549506235155531188519971604477190417100490968918269667936133754197266087379874058691898266652855100635328945949532171552601372322060932364996789391719139070058570532814928443356553305814779974030601688679207485766451117020078602683980775769733568217028535959201231242931347287393308168958972713740479891017615896945165339315844596447500936906261160971089701857645637553167930293515459490500338870262259914247137829795012722720106663228224813558618936517039595163061020552383236835055937999252396780041906236661185381930394672517090125549112298545720241259074133105496434786966483236560829253170720891362523083351290788157887133589507313540779624148787199706029115914543329088634070280335499465000312522825072378190530810897295819715664240316829189266103405838123169568385159747847446728631492329562218494306721272069401290586837567609517756547195475950853859352368659349776547130426722829090710334179853541919193835040569110834954979573905791871556460352707063512020506211411437506984038018826575717085610738856300060746438140633549186730707096209099270131439526559797244631810340343396502136690224989349711300033100745311910239191030207778733208583305172171832971793502496130330435641403648998105302457296289732774536159954631190294863952272856662397479701251279690841943342153878953282676815936818765897882630074208323996644497047573673903882234433298943830463312316687682938487081040347268719906228817650851031218272315071478571527489326653176578197122491132890228489468266390244345340361720433474620040887863665026808599928186277725548125119694226152623384330313490583287710975498279011411106619194907464233786190165472189335227957848342243483578986095305367404491576280083737245078245599031835045454789501227581973666486768105382190340003281189269425247499048835991433041291129553388591494567733289823346024552463266442606490864313810753780889173316961733368610314133996792261075059239565207695250687660229142374826792022383752923059096932639321869949359613931091938604240886566285090604049620906278918718256510715958589407425086745384789020761088432426128182798212654234149391962964838562268354640345207700213623199658695471053304054502360603005148012266157172726467464889737148826192026473762513202235644707397472850812019546370220330530371800471930941538611955203316407772104870856765175135974623828488212826276632596621263914563910376834115228858874368260246490165325588732765368373209476402264567144858917954922430743622938622451663448817638492728859390253887505291934587790778861220097079105737673642454624024511438071133881367744127004140849510411334824664783118171423960966439953825931962905536610055162514041631179058246575313445144387681819067072852106887289439532087396755000074801567733476224860277035586611754549093443542531292729188493285271062795547384092756864082579128874702426620485795373221298031993256651566036398650820134572217107689120634436227347259749972766897448123773013437480120393284392457423421438945382560608161971731303518113221404052069619421854282964157468576137466117290879049245245140426555059573212083091213912785644083900984370506931544499034331254410768961981878530360717755477863992739875091258926495306528571533683440332649795964298275850765651800578510321410298476575633418987864699328609417626619409863690693617864293917922635188820907113388495941137718756525070810047382578190206022776079325166348613062133031883108939445023025652831139555750668553180788188039969288390061487782457308044849579750623049875363170219318240189124536044979329363257820196981969536835626986220346764326807281403849697451007001063203711731009545023571013751046582482846515269355417304954109165728987262128086554692648855092921618683340719621592685210209753285614325103604898636495684656584897683030450964734301287121173075736251350616819154286827897574915449890242465633467284597052696930103092196420272625311821414604530222444996832406417213463097395305437969119409256670351858573725406325552490726248683854694728754513287876382504494923928830905906852964353521230039368350977375765058481181869742779948811305534653444643770056016403468054481340421041865295350449558098179761925303586626594709917510156963732425387796766975995917023511415959865403866699826968594737562595550530442546054053871049708930580859544352789247817067829096656916897829042755799525826870888349592583142980937542025355955784243192309111724819666270095441035923411844521350756459492638372631709441882404659949288979556130204309533101038646194503998107197667728911477613550480299944758287318363442404781571579768164813011588183793206861420010422109107652241036674297038947741976504976374312885247075403255715037063812499513887297616922721504003832377857292638552474130904457606987320349814339232710215769691356126844922982586617501522813861617183786927114158218784143667048145048155073173397472032319928513900889266712647705126387691389911877930720051471446521988896775155252220557578332458947361587252571051703737778253650278372961631733601745676310133146892195158746919546306290670518401022053401819109994698993783083823010749593729502618740854751493653911411361618164616566921498118409401620402701427090722879345801357074875988266507417431527694940410670273116674827656652503057438521927777100158343667281041936086410438967433247989971099998958337080637452828702590119804897043435496857135576452331208029680592818216723585684352781437715926264085020747367401538401921299245455636042744685849429694335034920748538726331608817356577139979446130778862858785071917607432254998205861731283324405446472326753678033761679858314804996868004593096280377673517312634954005090548273510657463144796693259194126256716120014848621890942790472573249416106788472214878068118076727845480305960625551181997217548177635790829583869765613966766610483437058513801335943957917900605496418528039457007632653995318984983843833724453773819703764054717180616421386182022055176277635922971827472462758183087607672787488774550404409513394904242511534922639799905878570977689528834966588391470469751865902352083420950231679207759434961390448104341505365853498645112161845536600525601399223819287461048159646491989621191606089448610694383895643273670946784849265181651437895736973224810208536046843913638430349507834786978537879126013864537272394647745569417369608952720790234054298802545205312630056323873034486542390118830037075263588894484428847117495790217837145632352560058711624327820216050514914734934040261179195942086970628362733786813295692984957831603739617501607148584300413013235915894187065414605347141945102705653724619667603603529209186415743054844510609234186725840605384117536690249245755818176388171119913290338988272690494215888572411856265062481085728830293602052460999007526250810641291553401519747641358519383336840067122398928795183076781004490476834544206028855310134850234037822962479314248716908028252206740317098064690851299520598804814283113769289978500234002319252765549711896746568614733277853428174378638217690693477440896235492626613362463603237930282282472722914689804726266503665375477382076541632601973238425931605322451178868653262284047013320602803981920932473581819797121280655836281195851189576287669446688631107712045778464044532805258074048227612226998184282012604992663688943753750348356435732411727733260872102658144346480535404604532700602450845452448045469894998739178669403834421308939732927080947111349888507210454237058592426000442067352012724593748076551574268784154531606185335003535919658931117555195110789151982551164811154478560120257259637819202909354570205369756667218033923311796980618697826258518145708556867355377756239704667385061824288687893621957688481964815870576815618215353593303032146006468712288915696795005033861662760378065683125161860416394327432887347536437549206927743208896405317318753765301709710733728684479665474177919941470742804750268076910720014517092922982761808334750627871349407555617026097771922446148734438611996174384145416476979593523367523835949432576758564900462971835654149357523123806655715173795184783721997844162730085181891293260516119229895305385174073854154021737167771896185437709803881275779267658974173484691353133687189446456018103840519176957777559597188412245886682711601240569812298600373436263231740139943606786259499691980895144819228709970941412503752098989170689848501819372525400622447239416795687761925286121540933375733653463567051011328986000178169558391432729153357806271973749523301665735787373457061002300352905195113883554575850882320926755500755757152563230349657392140171956266130230441103145760222563546933697310803464619047882426386864331966090104055549476988355116894993874967457614179941485717559849700829712982707882074130786094655806786979966680838086480243437404030134702278868839051778711152070666130962617016372308250874910984972707097622619079888599023692583985628837667576868927163545777118129155057309006472262466717909662491579119243512881750790750614833728939792752091159439842300972968311605925593897198853525708235246153706900391403581844189736665086710656122095238014427153194556787750165698382060353829173715376789415359233130280737839950047740130556132345979022107261678351973845341668267623710597208887354435198307966702840348115085045793499186484644697147485694287919675838773376689922670159730117276171631860438414141558443024673980479679540551542739564541466460507239885269571075989457993380129084402202394022409842642982651458725703344940646742752168975702546079765157224272909025441433073116051916402644043454492882083210931897450682813279236393330502515362642647194601058312004161135799064441905007930262715015816297000574627814739581661005068159624770874970090899130167738185040122451011634495561869278084372571471999753371251711372080681789147835899905323154232140266484083585855860743306156148276828990248884201491780272561726796299502859017575015607435727325691471149850555067932112504915211560980103048696868175022605431862629383095850751994799670519642084801489639111758636759031438262778956690957876606885578402961253780404989389540184085550805353128711475267376347306415867438802360823924252673484013959377291930378126981815469147404899249037329391987574842880747082823022907645484103906494368428844139599130635817652596601539345568760896801554783977629880224705870122562159395777851787646246155587916964647748731866910556678784277371876171232840249598005466551858698747612173732332260057943955216000578652721898147338542986764199656229057346420766909680162752003091199343341333693725340738363607214978210365342085646139329092090348585404967379417974068841189133399846962475747831209134723527691790603128683152855473297372603936337825284827508054338340016633349091542882661169197681487104760553663581282497336575457616526677638359165247617359795563778976475944318646550431404896662995831886045320359358181922389787997328687833627778805777001886890259464483278401395157494062269752604656274960052245362411935801136175647122090958782738325348085875623286115357396374539884753993215832117528573958119621003276182578079343833774088410999290265508107574380360657653971183899861139319004749019709440806274579142795760723537701335588228142393609007974031657553575542990095802573825454794293610997719055034638440231594121933286789854294494065697308440374605169953476176562225045269303689220840693671482064912250302879058456829615280854573900249553082144981847457438701819850685780050199031253200056428055520612531753659598407520984070517855142734454750354002493586631776075111750557884985234615235282319450440965065737610240913249923934439571437423896113358704767959234973909503770864238286010027941899071175267015842388404663865848555200413206709129900819879529054931993340771639674700662457504533340486900594237069561523169710890507053590494087762580760526499889599547770889608458256538438259822227698017900113138336317872746638821769224269206510051823882181027735452696547482593792096933580515781393253058454017515352067877177156318087453463659804847758291960056004739404985652386342775135416269935173185132013817379069763191736797017569510792738956981584978632392775691653672561509863494079812211669973430622370940229320098211106002400236206524077203398569325360513187795224283318756583459837838545100938378459827135623282393052932557310907969795287973267992177175501860607010123015920533966327902292053940288228748129103204681001178933776743899845816365192416687638572739984045698585076971272750027809774246106978861205900056451096436049924699913899541868372458097522184721157694625901137733629193141245766435337170678301616603400571232683162240039328117171502039117784949944324512026508874136688263112332258069304318602862090746892886747113059462017122361703133352057575510591224992802367822815369328125566528611940069256694004939436756848850658363260913165345552456734303258942116701295983610476269313347108330526679577506213772571165971984685205714542660515469656887956762856288072689415357388800215934000867264963908233258987292348929476880939966266027590473871249083482094852763628197973125754144519417008052107283088152957708105952688732299454257474195490450104325716154489561913037720534945642584603413165135028517301311795426967719126942551569447044614529616298499356722773917463724592076456906385589216026806493972106118741449536486233096961308196612638608781231253120114156959642375092210296047749778937251178300066164655230527068562728466363932011421876958418813627250461542685693830088423300182547658708935765503608745442582639184091071134091821635522900354069167535480578162272424405478821582458434120653710456174472049604744779436100894736930591409000264848775399168219319058808240436528594874645756530297880262640090839796646637756266318257404855272856275252328986764332767125160260829086629748564019657499386399698413552515950892631874903305253174762728554184157408576105739142011001578043726059610974940354607989660092659688812439963173232005341223020722111438181023605623039203765063483356431253952744498653491512247918173101537924284639870637660694516336483908341342238485359414713082556399409299979388426957340229840668256217713216228232566029781573295091053607198515948583272916318636700556442348687101962884083463640797823483869934565989133209203131995791496514696550540143593085406320199864602293305076883599089287101519043711638693525969349806420052651150453671899372679671524516839877590292546452834500834155095407133084290444379990888916294073092828923613906607663789590466088896133934721906472899485932003018703023478540112995189794692363072746560693804489159848467670633366566049798868232711926202730452755049702238167297839178681232855038643911710968862272300129987668356919897759330026073982552719006798406525729409276635546476447456618221588478604569800142651607895242529188279500388428701840528733786236956650462131918361529051236258500039809534192913812193380618161107648965535233888435915175693585407360944578764030795772227647313081585886253031959801643863229786760140398819369579307642664404331533450141955858628369475135966682240983237529308526621743097721735938708081590682033843398919905935378265338545287993920927784578439437498473266300997174376400504790526684845848310304412814219450586332270123519912921971234382511177951212882771389911472480247893235153382548756146558888724283421889125645707283197967809806836619215027447170699063360724952167537460906078774035016715689434563502764845158317080141255387654431669133883945430135038167523336713141807606315212479440014962351633036128135436965795116356660768782527107088055504684102070796566556022802556931110773748976520767734414848768678997054823771324246766168262672716434235041131387029530272607525924846983516043501745957358437945070009621149007592523336003307419763062382724660244584882366960082196448964980328228220179783111633713873625250393715771217074203046340144609667627718308475649331334498691581594120798795177538586586286212719920632920521168872542318765216474136317817151369565829471776924903932594633406051336306091671237953692682748273816202729494567274593359737256403078667389956261723956703177220744761808586015616340872261880352979338390340885961062231983917410052447685720516099716599903857089292054156543823417701167238864655803394932406421812203679372941613152978363153551701632338960228576558066977908823282366830769302586597947804828590701226674823909152719815329816754017898894796754855425881532011215463576983979158687243217304402121759010596811930612640086872950587969806759501137519453280825513239831506190626242792279561188382334195105128968790981955550772532023647773570235296660941936089462362369316626436372909237039553102989141887926250707540778987614103679939911194122903128581099704351827066921528375922735855803279236587117726870823616275529643576525586556177693437706307844105343373503205998813298182667921433926090424134456082939896872540007376847440772319660884302481441003418998507351726551653383525455907333940642143988071332205341244753491144861013723465576009382452551823359862702424613452163182770305007288983996542384403498146928174278133583628283729423580093092748370351718130654419548703855685932236793909865070836309053736736995395437686015281227577490793448653806889897925581068779039817583572058064988161516021977061397395032586385065046165650778512636562828643752339795809398670177990479518477913685095008151141042554090244189170607066831391135154128781940748807866535713684086680565400629569000478991672869076647518375223817811328215161850174116356873306462260573635952853652433423974343982492415153452303600311367154553518710118772456651087746693720021219241507119795053936902962805571721557885691829476519708660655961750941529724718535737586581170128286918219816982045610128335127430061461813425846914609947599970340492561277843432783170349708901380867235846710404044996877064475721020673159095778972376928378077379892172897159728452811351119376802523390591917021762562596851744529859686332669733376596338052786991832386954564794334209085253474677287007183754315377610968659907912645869847943330669243253159330625787298514715422029580843216102080876148818258704610794081179612364043526567419650576404703508401331372632989197762754879357045456294179625146553852767062086613713681628055776152949121512426346751077681715042313504091942603500822269724614158602774607070267634013108250089313225276327191463222513929103753610497041096269984414423173316299576945015420437614168254194766667623064103993357573751441678355558259816196257344326686889433911524483232665106376561433412044457783986469783281890517056732018147674028243918888811643967093994145548287862033263688354204782981242725018350890109853289955079856840268409410789446765516739556500284612802258607426326281431410820614037082190121671875396717917918093507476657425239021161247612866294973609243289871236952749948530127281534126682876964232963298706792525064635905960242844842280528097956987794798324093651697072842214301219421329093776183490023699288438391375271411700211341670367132067642321038567576587312223301875650506675182755027483435487374883028886097316703944979556646184571479616831345623617012445168487171367881294258115076389815100349983230393794864537859868383260296483620390151526280145404224701016161482620474048149886077732022982353586176803575510122291022442521090071662119547083788202429720869693340826091715344978083192681362871699128888382984665619305808332263582411523075146950319423587127828351317584058023177901672408465364481624923494360999506733743539193872805639911850456753538118197102670199789591952005946442017959400563307251566302614407433339492642997731556528901378692738400822051104626745218860176438668805282655799336843508613093452142755206160828913409769483417961932932676540058608900887610146961124025752222788285275103562239362078490273074702011595982470384132829509037607764481013442391481780532893552894029856090421668439976533702822190284171674412672247520689533484070351077195032242614967508662210952474786852825644568715343356281840234626586199795558300320439591614943225161762300453812129261281227693852683271926999811199661642753246856039567001062359141988669112816760300826067831574212042035129539447021723855401237502726937055190875654142068122058005490576421144114766024377155759144615700029350011374084357230236059420907581406870039091916738779859097169300916323415309629729581913699672379100135872458312574324405106543695316912054904428289138483029723542035730498371063123558104858095675262190199398623086663137435339862139177009919603620849409583383032127842692898135241477974433771758138803149867567539396585664928042023361483600045692116584554322937072668710850434164488151710577160603387817191939589836210064026748109739791809770450506809358998997373479691974429198104071147152013568170752574469107076524781052966365088936912675454148279931609773573638681622551044798475483451913199433224551604434188121216535680711639435674457919868406400613154677255635200561075184309876589128703968517951582797555787922746109078333845643408048497983012360346331436717800663872260825680657159735470832938236937549829894487644012759743360436098542061622228415285643738006067024304265520772225791145154944646701200673536221263049950982333989405256454663559725203719310156548028904929541960475936418444784392790937062374550448255069074327284568017295220945016183315129965420979746919211405948417251252816851835354482094202941127619208022375445405496854776126787069292992267539759996052822553329437465365186070447283849373026237443130640197930359742146276299989345336745413055300493175050202832741602472780601366252110398717146191473074391416773924739833315427285242478798507367865537841158504007383939467730417895168369891905409971058861685855440382940048460673543131805174058711964095502981359134860758407450048046187699105915942394227430697466127152978255574710325687482097237828233127307152886084327952395364866514245426118673009333773895382372791572265806575200840996835106038769025890289572149399693607945579224632970908664469076420049740695484658875517769044714110871258136152790093967882634711342118522023858637781128344239753235322053899628500616739569053735703944884670769452286467597008337967871582965327980058939683093338809782570086580487491972843190681584079361130223075388036578771546134739743029333934147590199978435137897931437794719732222011370073162025545841026527414999283289718746310623113133975774535846598115707736729469534902413652479379707184743837666374839445640084529450182510021483947801103557831560700911627789315798611499928392948489598453736010580503255073427093278468696164445185586981717263547836643986175378332953134831332679498010634962060982500435110617760228994506969213889682333134789764097523008284028092294986573716317207036188315777788213736997182717240245026679988828573222468487314223021553740317134790547454536001358655909341005981991900624458587004284597156103173364923739454384828574277579797341000480881091387715182449248227021355732196919828626253054742679236773642567642021661197354523178807456064899271510738285420264693555840282883442826799253788938410674847051041416729555681886276792945133395716622515176487312767390175418673950400745233913821021600385763842301373586643838271423398281462072519205919807997800409448942859495440455925196658123963984752810599507181177241430613994037678562997362281543745570290281370410380066667194359094910363894752593950530404250563041967471919201112772130349989013999061869452073437788524900878500281011891145845015181211813654849301524203842480144665706737970289460866918043320221353695482609038791048519953276329093105388565790128998110996756547345462408868130083634898867053104175377147226054958091706256309874078358978138209631805419262285583429374074308050162748664249814793074038453458793250898645982656081165281904476864962299543279737676144860001575636808623138337333214163450986241883732255779756808610872814875922484742198228004929166391495986710760084843490179364136826124947922350871167008004247141763781030550956949791757006979186677159146362291379363720576909237639578364166746062624392016718911417098887311867032893755192551166278471058575299937831648612107443237068964731297486916715373798050511445827546326533353384034022313178645224660136008191702053558032821834767522451230272157510056754524340755176568746398864404185105248894282231149080242507019437453338728778902133420686310954864834898598459897391344349381848700347723208519090128508365347844994904004054239855673918756116848719202432443618287900684784820062628311757335755646128630899606183076298628722876171793457683215776020319970738382224576736324238552649901953495160069258695842231539252051192065610564452807899046303407100010629205519986373207804645374512488484310077251543248354070873445685832271929394672556670736925152618221835874997958977895994897008435733036553334283058805737339415648371722523525060324602786278898927272860430967053800930594942171169973867324681547989204753081545313084681770586313004215397756383358018835606369088137063862352755632271952006444414540213213105607151455463794245711423463946394148142072471408541835186883894372038672520696145744513490789089633129888870482301261801813297323724454747389825407729966087685378780673867731998669609590635042589559931395673008643601131246161993803007699772409008625779235023176126319446393645449982470529689190314028404300230700159815017161848900906541447292596197131003982905280468604866528540132202350343833486203860063734504338385985688993599544169488690887204265435909804164525148117305616167097080563494205729417664246984515507808709593277356031545273673539131775535972428944864368322081941675858559426503737615921085836011814458925096365740029079343808852829168724008047783984172748556155762308710603678437716594682750999611280381601336998242136641695797832728776962347332973799170099706128874421248607855258999415525400030206068136398546804621052113595259628789071907409209945542512420577146556334182168392283423120526370054607582040176489252389770625929350619430027647981300361414353893378308087301166715178002407452166176702337156584050068091405615968104376639924893941098762487290142047549007447166121048126839652139107317641965285196342851929486244124006793504933651548997208878482456433194059708469539862361444519036852449980487513802781376076146285324465211055913337280533757144615721667632750464067376144737332952499675422757021833638405975364914442977663048577079001913310009948222407422387282804000927370488464822454783337943920951297475685367643383499134727477733740709974568578702393653124406103165449829160012335613800487244485256935122608455272706385812706754717769942783825832501549846227162420227593386298069851281252886797014261452622464838448485688265433178303999520672993842315032752524413712541943420841717248712536172720767997560838909988891263872340943750766047122149388477539756772725452466605663785911299887553804753158920444437966411710538958963994979211706096763938619253550022507017020121630668691028351750954793613322540848364469781461899206684171800687054339030523098363104164813991766456770478007898021926793821406711326574547109961446052883774326840754581510642673806594845161301335374001569548029443499824370131142856149691620976274602668723369211880906244156607515005401389131640089545396040868479729844007314942640098614485943340803030777763476441264819139692603778334804815708352533639034354135829130143494093315635984909091983665596752339675985683023215918449852057925470533898669107792623922620625327848169251319412771305180449928185335102269923043264443678506543987275166852338596092474908540793015929064119831365562867146956521309191153080365258499683687387668848062063145143557190630507197576159996225095108431450422406170373369186754346021443921932353106096748487769793257360140388278657243190400595609227923572923774339386222068999450666252774044484139491933128263195017791627766137177505131276961655322972806044485643847257830179890798080828804172815423948989012031242657306360984653258186497051098804462371327051494407474976358213440471713505094824484273219104309925758722615909450071386710430678330907668830749711211548421254278161037472665937075301667261192024400555784989203541221364207424004281323532226556905110600743110644448945482560685930799391534124758490911717458383845187402801815890419764351013128862579336974859196671259787276400352843878870859137947578891924464142130055335677573116301625489368862485637080621867791989601960794964176201285698606744342321057565534342153313265269719929643037949872036660344929547127382111425336903423525066783632216594172373798115597073895006191463970146648982931168237166939853288905445323315199366238971749020568412548113519946138467929126411784021000460341773703209353795039687863720330585778332791857331048491455865268948427695528924777964566162568710839849443148190189797086057493841904993437351665704902066552178006667728538412448651671513486926606116177048306095498671552716400775645067977676521818492532016275007564741402981661689776182017113906808110337352643990109443022572696195408334270758695023607033286904584914064878556998148752471314395770628965593021775915379543651909781723603666149023452730967492093521748846421993712549545065166661761055154952031628290024158334618411396270523182810140394077483219614018530213796579908399062210436796564286605666522360915228846919609921458208253854130571700912758875369455148180921389855572681367428687404037080944499171014795458896112151041406126286935427173562846049235776693946346696706623059947615646444831366976536525428250314964860149194265435607950997872704974780106574722849381978168325744007799268528452285022239611799463300689847264478720336299132746029497626835219595060944250864741035061326277751341656997927540350635218204415171064748248924444124250039059071103729009713046776351049695662082779946725488143799308432806155399176762926863972936409805935679778128779003334742795493973265382030774817291408029875339575773299528724753588536557933209886057257112157802707316351277054258006749741530616979956825108435503748466506899139199244242176644591866721907822636479253428488997373253415974134815775382435860960904259769921458348447782856005849330166547825939910028883353740661637449995759266132771208858616938595872559514357041361820889646412358405737770818534127152749707765714347114830251136924921855030606539174513937985550376057359799092857047798338522280969114923501914770651603697175764550676783050912212649850035225103667628934076492055388860448327385206903842252471001862420366113915372767266415921333323465786380788514919188524380669881905637274674401660439613224615970516862817292211502526573481490746997930308182764955753528179851317841199739088514974140248616416367781255565843165427661661056046461500411658607729659675355021391552192081569581081695261782545609782084417308054024963271182994542105231710478003709508876784010319293937817776730249448603163870461813236975769345768012333561243928955996116098966124538763121239437566810782723433695680337046814030826707812020226668011838254897077378905670473333745516499564560201032932083284529215981130305234186059695452161180816858017009247159479469141408745829622819216579049880498490104425056249057180468404390822726153797262956501536745975951700931250283645423328307192514155730768415324956508604192073906607064090439476156704881369174527693698169423594440549218636757573464880002777881701060478368062708415940127295843763276463505268976243418970662601289232809453153343982588734838315448296239768170120952881942960203306704671828151097667734778854825257351992710444321740391563593379497626587321719206258591825646743508276828937853404204233921975584369388920051631481724284148967191491887605078976936744196948860278415110332515210684208961275891217727292051218110024051890401013592879029917987209837726607696755077149384403737406651263735981058995540863832299781421094467853577293965865098862611703742286493346227999811758959738974103288550344065339009238537320993681212059053574048043172755899060264015168475626002943725815307649349275519840683976500264046350037001942914151590193369078318870606772430785766254448099178283973443884850578909520237618819527700050354641808793098775173981779646395528186067498952402449748719679584755010454561401473565751229994415320309873817732982961699091690698676749638016749195613621611418233692562357327797874420034334547761644651406443770691780615749447153389599051140324328959577620949153032661567821542247704040458280216579607496677198370987784834274338084373689849980871627107178864843705240960911572911253812922031282450781389509120250945639248931222817205810896072508354838015277513743123858289412903745904003370545559876166551317563652387779242291611112222690933888508011577918025350790191711258411103968365679139388596028018513625729167490690509252851657068319911797847029044255911268399614955178895890182826576864272584786071370566490858730005807432573269221814550244677259653987915502357090731607637687854400069696274014740972001425682339049822260561354934622600594832430865714779288554253176698746417871836375886474415968163298602513988231142747054557205384673816673467433651818757591311199022602834609329840645586404495612738413609579853300670954014062016217814360500029474773592033876896837780372493128332575793183286975175561645870371164680121683246794002297011948992461606359785759764434360311282888855094446458275051287760018495409593796218108023315707363070844075335194226792804530750748050436276215065183620351622648076462036469361278062838637262280330340115360192186868274049358821040735416556358790304100558488230378560289897610601159435110894670202002545110241611240938895381667532363928798074702081917811281208775425948201384970092305834064843157201066478779489183864252205292145883517513963760203717701856317048463850555577275546457936194192704221607538801012277117885163104812030512786001193286329020775725409755116371689487515325771406424601359145175778968755381746291263521386499980854204620325747061292028010658712174606494026836600290809475484341696203157939068221438780919437760675280931650378266397817771531334520590009238654292170242963220216538419767034190181439955135196549140227534030641288556119964908046658031105262659340912883344917443483828463725771012087592617691931582479513941926668860047592698611281816669121837990124332174628875143736066238868081807188437439460963019955798636162931295098608443847366514136498251724205957503045573090179183094304058875316949283820481962708391230983219692506799800278644630714037171701834657457800144159331295075663178474214468361492868788550978542829257480328984845255600009495126955047173040410624676196904985546424792577646908460749255690258796096796063278291081802985286934823943082468704226637009725042071337883630267902478848984100960437665263361641525098559505966038630041259647147443450604899449580976026694791691789417197003713786464965457239100970770873733004783993769258762495631197844558056450876016535797883016328588625401523278190293431986665159271605605531968284702422397931769587280656690581268558707278824193542130230165215864347490872200545135951417331881826767247588497122527336390612375635411391064028840720236223766536358338095046566992686265486305022972388457041967464772097673973825611057457377705349967825279112949340663920695234977585706204911731882491242382800984731851290993015055819604400269201226954001324299688198686320385682284014252314518798915825025870975022252589527726592846969757464518036624562299850380918691531472541973643036490771761326542069179957762616288974698963814622338158958894135645039932375273991519614571933873108290891225121589369950280577073508307448527139982247585226098916175082402561000487829048385734057776636180549966932590074742180494454359634901304669591840601089713925683649861999784763192417971081006084055202869871969881104414291131557943761498960789998007246015729030007562634140374838644255019098810460300659190687026643270392788792186568597285193377191825054044080217254597206260177546926941148721115214858298067095094289568306826984569809010378222134883551756417957562278748660034320172408575836220284869507848429308318679242250145936518554960282525332107424315650533266456590035402756148998193051243468983004370930151740565325502177769456835475149796885567159012092234893252420047076140443973559522986401998653820253367650613742033578865369462726240441867868919206273792503749894561368852599229686228631638911835511900233895437611255600142313703555042408871271954821893051592010133663523129625564514345451371732223773067614700531288658469233488421216045780404691904159296084884381914639842633128887745303457974082121653843169287067363602695802341271098669095072879391943799288853290432828422568503254870728811085242042549910315784799715596380640666662291911615344858930421750067762013700421256663600484383641513717515117260986208112205316113477569184822562641901270291283996451085388111009547735810637123677671949464280979702281011976645811909777895153626516508485648822650794553248126577546426901573599250975939628153266316042763695511312038341010550692279758527550999640665260133990754492880949473628936146138626144389015355094085516940382063218879547825635669970755469993361246350366720817322665492841692314717040746695168484084191540998318594267373678795563915611388180514962443575230913376870235288543991876900084639284474460425363709819764940892008121731588950152142764809033580821515778245009336171227838185656058568155865930609473409262000525687448750688204738931614121408169608856908749860166527017427488793240658414168482857746952218028454542659697245662461965467378142074117242967617516480078194858875581247880884076984109917249319827919019251459842378557006567823966887257424226522670161856366308974115769451200356359885055687788067716364866881501811826472936537099699401079290940176364690452634222298877293482915978916197772301680041641708270747782027773144367429079813364675442294689165075264255990269792738297444743085089459022434745171776101469318520238816833069499921949880987103191404090835810521689231981120292259966487402889429506425733402282585500275680698909522109240678597710767244274523642721042210550645776886383861740663666323308151481704744741938938315811183294870276014626162253093562334834157422473935385336017970564153174789804039278977590606460254081147599862827469727193722109979254063463390322971911333443492722616225627594602588637804693652104524776614173491873539406685512779825207601997050388698107667411618968051386911717408577325091502348557788349127652223056885937269596685486166718000712256279535337315340188980551667257498326841855385896593744217764338584061991529278988967000230865095516149763424333867792010312424938659573746110349552077485871071416623630030776858791054102732125693277826612396208905017953282113296859484289825114568981584101388948434181634781414341252114773424628256388955773091841401837385235174426770192011717017500037768021648320063078803465131038679136092302335885675496994889383673070236081345135639779900608544261179092245291463350710857961078592733331410777845985385437102225237182510152231629381033206730053067837633846456391363872081770478846646332437657305395503888135573053293547689860950046896004127120601349044372891202362319807827931858019713046080739851084644331021232240154156431379932695552615796392662251213072077139323166788658735408991464291827061565196516214182981800687576005897174268000152570493807564550340737232855630500329031412879516795589279457498934292073453494739433111172760498941335050604746070717902689288351070579603807076419517879270386583943335208334199130449020240414363551699337975256952502251809933163477606658984943114261866704692158294529262227885499068382980841761905975686013333042348891435864951676279254986490088814386595925808506073411676702039863723578848063529755020480883334368028644833192308737918175122495921557924033994795870943311893375746263375103302547656394236864443748948201351439210407016508925234365092710448112908119306150678733020657503643183198253137781810821977305686294292924696210342839389170996179951473798124203007523836700320748998793915064513301305129405712065692762557035388258002282297640222621566921843603083779040231194503199001493889605859879808832515370500195878856891071187449777275857685892933856008238049114793118041421422079452828768694383009594730280789633319458734908966640325175348064761952189744878322727384496083598188359993514624682830696177668016651669973162278689383745156916441172706037335262162882295085290400327269473819147248341690590634355910452191099818857045004345804626315818464649167323414214672518508030911879642781644980942348458725334571274966387214912311381519667486837255880810945219258789858473377744440441811156968252430236425468910772142225532072070670619940745644530899922304065680271770996985570432571546509105648916754106171094202777036945938453958725770422888365807009474359500978731937954959609779756139049068186954318653569986239213099931552572777203422288886777242133859495669012153978962303490408016107626527375412104955193624488018940727525839688738351928009760646665041371263203027891805955376639452093577873886043065463391229675421250327211202892290021000376686521573783922340947265094306254746354448750675736985336996372018891889795432938187871360286674360279181532609082855596137594664482778553902589520518019316053008933139030241387111721320820798658067002002941382378646315673140064827617017824885463451770661406262620625818249004748029590716893757584365991866494006167982571994492472459232894749440250832133555651792862671614048078268794724678037951186910354620679346832473655616899927495430705634695634260940653346620046891723887193546302626996891353002723623767347193062504961083191106976230010988458378344499416974938328875509893880403949744603662428893434151620381447394166366237557406672335820965253174924120009700231645897171627255969401051306461315555864595361588611318258161745312977400925031889293143146453276880075420666943275716850462081414617829132216057173486641125461185623209512630216462275117206779304307519522833923764692322682984785843822630681226438577385068565843778757481168264068146862607511361789697889822356074634615931741552912097961367905904964232782832243447752096214923201028170071114205251858344033843253885451790789012783670330950369045596853162924812132579014350872319063036624494399152464033202952204201771507543381790378473031509987666701078818741228913779164213448790975640116871482633571688049016047887042716290672838685580379440445191302947424149641283712951739419443097078463882408086844705875625203649158194085619683987932006585979500551895780563922635271025259203910578062774866000115369736260786510980868035475864061791569530524004718211281298741076694790675758384480061358266432291095188108342439810718229724355911434737757799541634457647775902048270379234014221485703690878431128092852951781488378640254194493290525740568463455552311222601041981563021447551065249726479269568828611605911744974646353720193278167341278888078523403227969188755541874760359808717474874798235011630698827505471838890714677606540118311120252414390377255100201866092797825814230815305579140538506279859849434405204217066947376310986713352813867044881134384119695365734457119965658288179590609895502083807840516575132210907730827003944654343266536279703515135354929493172549423967277875177231015011288446041780904341719961610661937481006156768040562852453288388396174873816236424242871508172257945456926331955678060038707672667730449024680527200750914400483769136556588363766093906232783018876406899751911100702957227554576223684677411650797018783272516431215799782361898564938189720236068393664798717476038850900107853295073180233001478192348211011303780578318390931691806503791578194997897906101377466691990855677359622426886041686424399373524057654018129422984693759923127175715526650505426469802794481281358257079998196268119658188954150759535493448083857625665137016963651956063969920079398068101321910748690628170720175476319093372011462518271533930322539770576448086406090482483022307460373101876715750766212951878352613980459341672105338567547779702414487969840201055496720109813688374080288545782475790659737997896921273020640637008928278986543055656057789838738593765435587740049343701696601940797140742802627048893501361538190884135349878212233728833226530956505738680999912282609302544015127624585335553767197657985406369796532764942486941059510545519861243870907254300638814059465071360649571743577533229855698921275542397665564242103579443942606445367500198840123447807523730430492073359264946988016183085267484511794182223435302823355020880828306057200759286261226121772278480129461710739004413338954112675614135835947592720960112451541486074162639811204333145147103363433427288735336334321082780474393054203323077423667858461485313898753382714874428915211384687405350274447212846916349609697212832943558928156219334553892143474541876234238491339372923242429467223660103438820899141882641207095613139885513135694968239701365023097374201477904870701656349582897835764575933241614268130252189265533790616266342049771562139062018974551212979483092051572933708870110496683046385533983500111488447222307116720177124046932943927283081717560291442778911007540965969857768527668327369430889694134797643207590331577174128568409316557962063654966418058441664251017674122848386094727953729960255832176415059898189579355327618710516482946283657419803906291456462505073972632740328825552277750443321057300769364828914044637962067296249539067997522583820311819289151552933333447221740642428545554652559637928316005495623903637927725852994223910336828472281639972338628135121136370308299199121066469630204233200351679028524640405672206021411593406809873046518998022751619803159164403465188880370417129994620844360144557177984028906027907083416186190081661313038158505497215172406363471110193403044530132049041010913952592803828371615746205644848672340011610335039230426112879508056824243126964302741705109557530736703707378575630151539782513781131118548665942382239094480926101800898120538070431667147183627755762534335154670863321230758174140613304342238043368092925792657006872068669345322499898947631717863531917048281735110055050534402432589108064367689017000022005027113700796356848196925623006049012776426443614990124423968777007945595343544982426770811548737514272806400921844575767138424822932556802425327456527440958444800640221869581213878006532057989354693486833976392019671255974054320361646995964321272576478405455671491941827611121065139634245731573423210457948101901528670544415120908014208199444874821687008649367334220935608444238541082623991066866206257222379278557328685644073014300555197090476764440491934740469488138555133764782575229995313907904726301303031947584995300959545057453151930584880212982540011791807291778333878727630257752056457588667154521105437651969142280741869953590534134459493599771530789788346734751239878091375884689483048280829602000004655387302438981221402603579796778185366219193886530467901809024285067475447038356539992499505334579361992833335250628399904686968928889289982386311921544763328358255617092905444512790611758351611832286113885016061946531931391523739638218133600704554398690786961680585924085200805702218168785973360926160859869756654977696880787395837621516409782485850886545156344992478949194115396105209664993661713629443539540309076358954243982539404931272144051798336258858382433823961938383794755275660947769136043812874464685915817378991287368512566559725665782782049359082602059455359658290035460906845565398334100492693634329925848433760402497470801053908919237262029198518107266712884754526791704072116426645745614715933242373172669147619517223646790938244841146727189252150300916608008294633851969661398632561167146949665919363137172075241522002553079013324614264397510203400377427562211224637567329414785934705717956608356813170667743380391213099008794645414381082357276040464473834157948637367116296337495822504818329611857822043375795990795535904716064359603203090903656142724639953030772131444551486897153128273157048579862331849515127909539960584591099827722002804724831691493172570872089481746613777406945735313076712404279024462346249414683436941103450626175611377458335974591677331950857113727549520524889403501921522875660150781192819835934207643581699641488950783658229981696942982055441334922366531092128573268282549799478863702123805196468186829711525494672350082716663055986254367037247184476579633014841736024487659154801045896156504393222568822379632631054285992943281487153247480285395984274244208643294383824323808405688758248254075623975376050837681895490121076044158697987325790357988911620204879757886735987078247424608808639202377435953209633304671218094623428975122093241447918887968653058730313352284620382229923026993011778494925808552193528058328647139447529142313092418201819279494097949564095160622517851459575126205339302196162047053049159683376104161828691120423580971525544597340940057413164980152366440630893841625501312523458320381632720095088040890071083541664733821676342038065084871131590539949988042600043109054942931862179254480726960006507122905437159159830751529084596425921920039310693214448845510127979172678028194089420673399106189165842475572349949690322199411559024386707952473679509300470392593718308654114696002506925798157033937413630688634601790034691897851491970146000370003457763170760412531295832031976176220434213963403164523085785711658428575025884972121359779105674253652147216579027194744561055786107931672904202219826396077288881692597756473933902664900166008473169609389111699796055159152181302247137824495476578278803149626207202414926541772367546742217646668340865050280422947798013624518240633047562487428135036316121981901864176822957588182686016274715617837603867150112099944998650061476170047242293948049021615503179138019695335350942740828263870878015705872246691968982672825890665592359347389076852627857951651209523775173347280164176637091318237815818535910668517284284057844384056418204786338644894990213939632907535532379581731703929472190217038763106690397022927912146587312916588306735938258550762319279330383763256208439980125687257131757496028165499977889465551693442152302811311494555280842524182348952771714678601873415661321538581193849194502700751658858624911437184254905499221698085229207385266293868513451980957992985446443992746006198269821690254494619657946275077647890089446737069875709286431975361349805973554156528842718345590233407317008046148423555724598209789798544449227898137088593273686004486847377985011380638703496213127060089447515677799334880598879174437043721925953560577123314121705853307858173280213390863648639030822661812179796366014700393819855595581345924690918211832242924863187751117906912114005865432589677777270201578398602504911268271703131407603134762315117661091609248195064221303549145357074551603617601996286504260629179758577757326810066192861560938162325125638797918285938751213674103783922580328393185880213860780884323515955042333615952206778833337873207174001457642056616092714250313525301485716575325473552714417912111866076620026781972457165523754247538043390713522862292904389072748089516882254514384617445786396721931748852383744915822924369100638654792569518048148105261543650693610986546426183268682537521423285781837764596569937103006029573637578024856324733164788608336900126913096259071187402654526616212921503862616911289961646733433873817523534583868535074049138383446186206586800728351233440516370507262290841993818299676976514977474818300119559142818059951511972804817021292561738439637465326374150659323631488078496644595804318904038846222699003682560836658032633118930973737957461362616462109813224352786612417059191705254408176590574899539743561328888851702456350560354180168065636095258982260941762897905325011697031942569053267510167609372601965181580297598930758158728716407348012904490514601268395965323612001992002558027358134984337472860974266300085893758051362574075414047025811396009428674402874107947277059100115289930418901322244833395361850041458511085404799550454678879047157817468242374339713402514031525371099403161545416062974538089652899928239336447481676298625853154893233115315276811860422088198060096392331203704541820524801101008454392286151349673012041625685160054331588903401528142689202968692682732958097870456151091925195950535266471180619245844309767278550444869474575139369902114504428907045778614682267713107989106236057732063897779473067407527895433871287207104563472972948430058317466884276609160547716357797911560130355804521142079007514208040894563608472915798831471994951751431761093628043421503276665462727884558484120853964446610773274924384027245077636189248693901517101711432017357627996755832558260569831567138756882784980437382521281378399565457791564395367816284624057486923801816269945436508966903816887788718266377579569995961896732203897395248088655732180321026911795949321781760263932114753490431392764562331230375030827427911460650849972381278441580626368603589818277161423367571084120381617501625392781198582968036694704625261051371074454173304473229856365570831905512779344480649140560057561569154170537713417529872638713668492222684980226579073493150794748759584636302650265639405010763005496023576631391122402050218191268245754833324757667187536145254782876623560440377868899393941342035866763767852749628958962712215567778234966939086562820472313670477248577805084445533420472949919519330586299617790069161154859263438132800152127600465767716405706489170507079994574582505368075978396310775726401986943613692711691512751629321846508462568923095855499757184302472915390808410573920028679694367364513832327718020931853105414318777871284928753708420174708394478486597176818981238462687708468353111201735100916161914856972469433434171957179772481182992074480267807777356182459575081977361566769157370000844112160318502557173568172246789133018622771377456071374477990974854972331746129851811363198646420014427353608831290587854306663563078145080737342269903571168369252491680728278594166233161892053231668048363116988359150947858352071918327192492655377338972457739372795797962934720512976166016513752543748468425781077314557762365522031683231971880347704557694611859684750221889413728548071002423950856117764747990285411796479229548738080770983778038042662031221630025149864064269692208137113625281953769442264222124056720275744306744926619303214450901740348066940236886222335915500456565178366577709367506697728908044006329747393311819284096349534261411189794576743044766201108647445565172154949662369803077661678744922061826651186827816660574225232057993742143216418330545845690103826321355249774480260612610390222348845655121141340791531983119695893785502432405266079477636967884778212993388840541004808776768467107980802797625141656505011779505109334899701285990959288424567787416537963522840293319754114055581379286909278684016151711755680929214882442594765335509894270430583458403497635329837012881385191323885105050238000407776971105383435027404077405107359501360191590623934223051761682327860361561174247263685197996414659848288817011539751997164197063624861553862093224391463033727445888920002693282766258034091410552305613562612775862252887616902404219648670329313787406737015647432799341217024351987386952486076655290658179543565201101756304265578516630503854888762561941230264983581561943448423564120807341068736429354079046952149352391733725560401572160635954542287088014625104614786096255913391920661064536244426064382420048948292403671694184318909944135074293912310770996184696858760208180471383865553803464443832582558610814750005716015368979445990050419740711010246029483816624621451633242422908918094965137150028700258184497380791415031544592997379716905857025696581123458582878739602020197456139943920221708878629370070434477969844699283481128366493473117708825053551276823589911794826789388163185572171392143036926812009762987383583784030304795140684605626324581296496587221976340287334539221413247619949785148227670948409178134800762736049517020618049260162969113286339397652961846845996888148986178096606459213056721564880456707923286451363737398684643327867916687060241950474120481167499334488532632249772937722737332324261736566331719954270331538763045857758855978451773039380718745570039775236650746218744190256361881733526979848339013184129489382938128838152346964630063417969094896301909019014345109065403516556548178857725978005997822357098792109907035257299837775908130098878723359492062093355666018867919636996384262056667636799700865918642774109600976491487503374719515312940375936662969116499572837267801139327477137781573448416055268084558950626512835046005109869823054366842510440241973214170899588785324443748118145071988933655139412497601513861399811953420831889363227165759223621884599827275842789889224123245667631806869287283191204720581962348473561432113532904278723122171669055292910999636306390226855638612919888103664333986212942334702092186422608158192795477883384704043817548804657889781346970807838670911090853539107748069117919033900538576734786816568229366254129580012140165527062196731925809946900916679279097624649712090169939753290780190474947841604331143217393030879736161494690590706806415624903932005192130271842037913627585361782889259591530120980923779121762136791908971758849141656344468341202488406872886908847359540227022225516023867637105220317955312130175344537403670448298103095550331812783218926624419953175118644259871192132456564191973562265357784973347105542498695548566771112813474278004015225142555979353212177816060962420273827155310608003675705243194203177464367068270890570794975396315824228549208646858199915510725825575038704563069688833422658373188839679818344255635846803711424636358939862094185280893786567516941838794846622049556609721232109765721179916068520611045440615421938201364600033008392184024821409138639279393647620922341124332870667081851249220921753415613774699385296391661196651183976186629355822588886700390440368617117462983544090727697531580872623876092014957544371922891049177410557069399978586412933990560827389184899107607473136693038358090955033991373334868922701286750359797134062410010667387573493450240631073921017167096862864791129362798880556632797618366001382013302934195485896283817460710694472891527461629861856037747726645636684019474164279958216381657780290936082730987411659669840859583738569388537255150419411835369269278980397909844202701870726309319931834959764249136952086795778452240278101812544605014524845799156615252075726039238797937659889707827650570874288535061359852827383626868245751782906867700609152831457622018388687389559792364688690994261294678701095730623970589304449462662869862957155593394593511758766645113851001109220713233629324700856326445141820732824921592914648721048984777237902397860219085594670613978037897174391312585904199920719901639791757902513976352538613606806398435717566922441682825909866052281810508715723081289582352537832744579553343439222290840034422124269447837670366785266108174013449890733933344782979626534262800106087225880370071554447341247919058221397850175272535559422463969452038518352641960596845564892046357645107009186452118863358009485575328741317306718258060430780810452323630558616342699442831220860031412845677642520078574288368405234127772213058509407254638087068173131339672687978293515448681515910941457828103444545940734434759837896260465550486304121313607274448550307296183830368677291730649176454451132821822244612211639297235766980475821530021754911379365614600374928255981819368878760050015349668201971552779372419429941077456904916628567104729856769168677689279010656034497440635656051736446461062393106260934037773373327425849534403616069703055949366182874110892206842546330724906637911572203183760258363715266064729420533815460701033920858076695778401100102608395993850081692939340860142110384606131599212716559234837604245639125475549892486943123802354873832277040958341143511690880359667588372001971124054972281263724619169701264257706733137537926194215245478362326808919991952570374561703709159484719777652381424664453336945622858823089107809540208860285447647244129453544798407042930822598287842599201569934208832573775408566172565610890048586000749794314722132564312262989950337941349513857900080988719945013079421305169235217412657397484276719940348822633446302141292361744522825603849753846482209302388009017696608815320128771797110010391987326381339384441145319504326905743170450821855125927093315444705852753355235797491571611857437042960374041095722140244514252159967209252611337263404045273300439604912903934600201607898288278453525434452020431952966719630845216370850810204258538536131049699045678944823739692257972793857986196404474908639249815333001456397346613069217157947681030522555527524554169470974796135390689664036060853448087667398809655162893736241871277851694280689124844548426675046894737263512497354125526702956890626270328414463719502592319324377984107460621972616544085201999735919428424778015226112436184032051099501838238792181174961712036287315138796390817203594082760993160085836551825340226560141371146771885058336451856891999950390517400356143561569787697937779401982670553995037622517182202084758362589920231295998655149070382285794234708827148059368025278808092810568506769702097541314321945027028189882068469499935182134434915028240540119613008601114864249474419781393262089734738603710870097993318625409206962987679564256774800618765904249332777420997041902837449817373899450872424720255134709258711655673408908703921517545831158740946951394951409256486002063128348587332155277426823244316147649093116753918604455729528308624840176646166309626283842463697730570825880166987116102477323920594768946859475154297949137716543516043822766374094738967611612361358131410578917305066017172526353373157016188783203867031275497581309410162384749031694582471846119093910509448466666332455153814074287496205529409359270023075331010065053113891551487627714461224028630248080251375350065350775977726956308579419624819701782357881877826378639939542003381926258087749549481392256677487387010215585280106203243122483958640625617638235151962922730127935164968776882450353759936819067640929376770124003741760203041713147148308142893769959296741828164729060233886935768118804460381932130866160870303268719211768626200038318526531830719976101003900649459143439897916317819974012069910722949064869275893457849753074940523448177671173543507898479578320523548318755723666293949863834850199317260116551974819448879016007779818130989281020555393897531936982681212636359401644490439578364043522786852616660174868171399648774972260373472618205318987619312191008597531455083878353887259330163953146434856496846033979797184683525679128296103153641360324271904866503838436107063377336028692653402358411815497555725381941462326432536679753484179714870520871324435785496555754218577677785906609903580057293608827505766368552549701892498624500391797657421335865166054851265949514648082558421335396216755206686837548960101782112937317649036782651718282510273977512190446470775328952983776170735164771700867716548692467431378341282506680664844237794718572459566338649724771580071476074437318374056377239412533019741433684946169588004366864702398616325607432291061756230284506580717040498152131695959658029573720409443263178364324759513901469902366588925015893711068286218186656670008585393711497335129904444409352949902657315995972281908217346645661301136012409233710421160578980495178883486422633738917906276888006606558270826959294051986401817874149500643959846254077714546320280286073136200923647668075212470632079824858636318007627548742340564462574612909110603147933985295509559157194954297475633884039573889695237009859046346775458771198796968053438254309753824641664037465254969378559782505569342687325021735515248017702349687913293264149098690493489374049330579431443655888834687066780280290679126931535305544263275779525950989844971457505410578261302405512212371835197413008703346383516088514466797121900835549192870624172362243074486757944024953212537903197654559072008616737151570229656241972767283623236196290917724995602247550822662330496497619439673506121063495237936217854674372097428923837815146981541302515501595013937820834780351883205505221374375679461069438764493971521667540682429452063713685618993628517133024592968192398979861282409008334997311466200321692522714451403881787658273156768941101720318143430030616361488984334276266025230285528725734821036049634926984448191377724970011620511739800551030610181054984054256767682766735797079990143446081375800856670096782024660611725129143232867052843868400689175273975441381342712057871521690427410578664741004368577223441457183550632506387362216318133784381997094916898208583187136814044429167495509340826139324484894585093827192866994064744222910259443630979798876181142626847445903778502742345487337240953893945396605549672801966664927566438863428267896682664707308189830659531842637412034133959100086062765957641116751926736262916567909990722827726772406629251703442653908648992191758367057617264980215718483488369213956149851476575465968899424280168353620045359792861246487459600187132349581620101060689701011491736971847969502464512316172855986826279448635061447423060814819515132694603171119958736040955260541668683409954437003346323855047996638780833219396627126902334152773785148336126593894000870138737894856006539326917548248087191082213678006472563909125173804595139782008486099570197939552159416236583256326152377680739684723990296053208220264093597751244097567185985672437255123791742359187495355010849350084724604636005374040013999554724899529074489056137609168511928771748527869677923029903291680680295341891674730218814433720229012075222373746525747653214321170909146598915522793853950021729419060140988543036296268022826406397411010805414919531489466389087972819726402747729073921347891046799830530036921392686554019187507824520140358887322110876629825951056206708134493497357176267197526468171195580389817967418711554429625132141998831171302549421533046177151760603153759435600485684779698573641839366884132055825064079840799135307175734753226639418510994787757165658876938734550951837788205407836802198045227786188120126736338452556060962131321402709873177733774129007314528994261293107403659507148739405354903842864840059731727778021183260327894773709650268186472286532258744314422611761384641426895183399986236468168412974707087383225320442398262699650302352626118316398199205093157428583736004316407831966005594446920037110885540579162380870298908854653262084521734136907581318532595846247951169128991538930814190253852433611786909491066331739724374607924230960289908473768070792920468478844547635656076715982328210134131552577422118342165359188257970907569956173313767830815144323135736944230361306622641898660987931217750780159248370176722768567241299047238408502763860377576101348319500938310350183261991045920014123660491987844067608477916131427504232207718959012683918802605324705662022845567544675095815187700022993069813360888284409813328131368753545966280404335102524420505075504472140681666177512422915485794058372736558504313636379878957253276042101051484725854083174223548198706517439386646433905539477328716195917577598989444255693956302107574186232624839991139254319143316892892481308113035201778185923612095040434939692788282516217543478371438372778823367955204803499569425083161740792732371650816761208516018441817085396616669255493460482929681249577216379182931380384981964950546380752663469746922151837348389212147837412846247076019210296927286473397304283571935324264569254865656721199419100917501410841381109995415337151501460662623666999611293758022831959477586200600410078796582289400778890465608861006443888457551815205910487871555789049735102870779858839698542680993799390402299935276678404666030304313524735566343294556095700506910906587615496460410605647297103027298076221460943884168354787398516341744054114263236560678344204113668344988042991551207782232738379058466463316809456953942330322986630528839381461282393404195758907708508079849026757204310116397164017840227511894568343334088901595567994199397397582462717490795443084125369429066588118508096125181071545799095296142886217662912412646374179315436670771627420884386863790695913718063081473401314609301394233263693664976098104981278870198443818398685760741783236494382401485058832997950162596526785357301774725237679610246474702088052474675588489808546508694210677900280670969424796298269990968368619587151764781163924888656307571811159418163651350672920364650106953416733429956414945141386730370587988058871330343219312302341274040895874808269919343144742782147809246374492440761775659350595871697817975487088959689697912902582331552021968666963617898812408135218635840285584068948196399062651084654591110207866531871550648336620666153139288339513478085335732550270301276839152918326732627057176633134537654511370160259009634579644969706144948488953128389196503205322805967013807527178808627633626051208102929679554947139064634802610905178074036523346223406132765917519812015136091193391080425634872726965326572017512357427479169893510395541687342584894365209242170836571065824490529733879403422331423788754373773545617635733550175662473280642605066376410561399259640850919848881367504412405457288434752392800967408990896431476474290451698489857611317343615594714375605557286911211024598228776541026324697175722868232370263957649752776757740778216768514303865066664025739188339291099351292369413736601397037546445117688541783767920257697086101211787504185086307114470184501192436934163133905961050850498388210577956826744621955993264961060822635796764772895413078201198570779178196332586182065348142574484824033511159381056075008103533036243427875792344083440677403841992190126496868286615061100349931790413426661720106128166985566219879259422376867140830275902259866612936888896382385601348735323790722024386246015095013624914785536463170953280862707770672134465919575066974060623473713436605856339752844508965389527561375054327954037364385974277310553465271906143670896894080968717974260448476677767369865564012300800741832218387883650154803413243318317089209206908632246015857945834673651511906235421916698019563125553819800388723118351327517062499750772561873404897028985836954609210475641163377486126930328520961747764154226991792964086766027075236999209099430616633212802365868226669739216732764928644011202902678860041919582131745973410245921185328152950738980007894861922508573894178304090964813461700667089993824899892319796301193318337301184283526891680651142854274376475027421666982051642824814043103529797260722410312736243173074597675822339097226061959240792390630755660751752969494368127019659343721829511950779488163838682460321711224597281268849687951274676662622904811852197041869599194248885665082762209489839375054010732363446640002224544553868077805741363648407856781268082576166858170510169062105319501674785894329701156006552908000271654982431479063282697748640043122524672396011991167651732353017062120117599995418569214344370683923584401571667819012521897827772480938094406001652309597754053996979893148903899552587370278815889689304608889247808436345226270435810676417967026477365049887551488020466613753324727821863888211575594866040441387967113439754539136173066138919350515728845521984890130880137717268811202601086244012634056082847007423818582446015442717606592356817255887980169838895409517765181096060638223150714532687947630147448133151762472905185109034519513934323670396286295721619852271179260951063714293472909402858767899920351960191374758909089143618881842960121790427097302617391163123630898811735056284096240572939842933743804396421416695843930805451030193689683333376878832137537109857905821921165073518520002584001880333649976924755266236868261894365780717553906711217017168010779653207921295369642718203634618369925869360617386561216765416970357881967150114728310306896585313360761938017553831635985634988851396147990423188031958591441107505382333699413156632454794646417724197664321582216840673509295081566305449384974861470501126017623047131255893903462959659452790039867504587120897394004016907929791720477796401657174592225594931211166191377208026125808761473123017329857139143407768653069605803839992585175531576027393636659603229769766394584755475650487336052734637274318494207599249911061566287722629680309680291131550338393630134863111528374282827627387552703709378147851106500658199605815528494415378325003703270374089061993035319569117597979402098418881539599962505721677259451665954207491997633966721302940696080901354219801286930426956977504635068829322628619577012919419440376017850088969408560567209245421797741430856569046114005561768060049101581052066284838092855275874400297005044939764391516964663523933724682016737893088938482978622394256144928936932205186919871515474515772499767814341937457424462537992244214552293247820457480664895912785685168805878839223963885278717936343394986471447531646105400376380619503527141383546167400758321624265166525568144096374955355353636161120029974904407200316055551930498984150664893222782395867963609254892171194024513546840581302886348335915730666092603329920452891970967195091249163226496494302881696447093365903318778472798768912557658091145166554498081269498691312934006071198132552562546123306811503514191453817761923539847697260526876865215157788420580907446385336982530371607655395111627553085780672809684324525799307167780150381246908676186762585676931997737555699110913039261807827270140443820898778562988417048977313175811551486544515014621219905620314840980518119233915733764524198472374752985288760699619378975186936158155987189564692777595712504541835961351847196571574513555792202492248922359357100508979526854301357215076082623633713507589208247366143489091703611639632877689191984204101681047651644769890688627967757848985817060852085472643774664681362538538569170667990100861994161517900373305769067043776917619392597756038756543842092246992462964935237905308996898764189053261439512409372545475075515489381160750010572087852941152919851339823388391621042640676520110602606922120327918655749439782679309892374160696431672738099619025966639180011158692687573060061378570757747959328539279858919367220112572514677919024928053662043716699098322891453287868014165827896084545839437285645417073826155895167829602046654356347727933985893799576351131540050919379913356768181076617347436623070143642560645180519474986266285688984234515448778320458923589460858447741047194567375598245258252835587492304292085642967312238978874045664440306421849890741085936081820783736446653705206212111018246677887730861170946988925020569729589384948027357678803192937269881521195970877874262403227121961591434758174304786121757955386200714639678726836461088775738682210241523086098969614809490874300285488098955610652885560483332771434752924654898818713517479025146494098582079465107489259293961810770775789659734650014411249651638661847604714745165947949171319090806055493048790016593046350864110448594935639425874042173533475008498354936097906420907594852322984990016737082225067549144746396648946849815218084875714213526532440823302169231003890510290339187459951777568863795720702450633189704512222334036222946897972390277099263744865743450987511218009673541212418608398796333599219778625542620437302737649363365300756528212987058354122181698804154255464593694136091573559395338115286539566243260596407392317732041170780895662260178855962137231087862421262020189193031354026677852445905092107910488624202424151127119414060964610487850794762557119357635767865654944632954960544015918346345983107308267546777904403211964249015893929477015648208085661014094642592016251158507288818494201586391968471497798110846484117244747602037177344235180904735964439931664979972569323555546351358668617586015490791994574166169662798087509342541258793677800486065884491109502097915858595359418579755615366447883249936228632786736967297047676569217672688372772875863200391561514558069431285293678794563275099679210368418784593715235054955443753030015985076557218842914322545601035180184217436088977109119478143032612876401572885604079963543720341929086672254307391729623018890762404992340828308012433715098770180479690798363013957183850090456977783377312612855167832252066042348567431269285238451297267607527004504275239266372708623601516588126155852062204597584686973225790280803737635995610242856957698688316486260887114964259377989610142997714663597110368942627713858976893283105529836492664788789383427942265514579678030598032555021331714370835128825642420760815054822098564855688088158525708327259614654191088440101621185448751879774507171993442874162780344825190524577095442370680934774563522296954051378460900526511804422280405500312513199340877278969087722857756878816720200731983646140055677973096509678446382966232072933022393211747303129965722789880632463568238676781469294409839598768567459288850903031954728276228110640207710510819241185347993904058649124143129275033975320891489069832200969682799538398187651723897088464969093752041495933405887060479968609336245625383662537653844414680787345780525673177101361944158884893530039523174075162117775348735929134582056659132584111115533834146875168241743557737279456975778225945356991900753756612706797404787927985288047607731697443518578994328107034837198765078881940767054237800684212080433487705021253510565678737079270491789131536509143470572503677719978007439276175946528600230128283434572250819704242126482188407460259094221920927756914156510909356997308424640844698000678534538244551688594809683735139533757051917598334905157727373447135325143371931497536798861262485128459531042557499815701034691824471250336142647631371691683341379246078891469187389599163578097326754195315143517483334497168357395254817396933903706173205658990369176737328787290573314713176553097803274065403580869165692721218861066300524024061696033022760096504921731120967442583994867110542138077916917365786615475972399628979473887388251159777170700057950974716751983358476101863005979459526113951017246000175628122554745651136727139442210143118748118135319508478119792143279445051838995642219392095718647440911702736389545358022239360613733445803766078996992947295809971747843980749081830821732244147442511919600270157060863528154828472934739107806122438484062687679661577004399269575074387377172540059437485215677855298934660414550672306380841024832333872918898749487666154419384838903396312627624876358637793336395085107149091131732166876461685233676843739322107057176528750152876710190965607124830707888316671092625404190036503280098016266969983577180525378590391666791976735841712581502251876210543589104703304969348640005671370859078133388436542122356708548708600026811124033896991736280863118036377227565094184577538135324649624749699350696421787514389311801818340405040147173575441318092422914878929575824563540715774153847052600247936786580264565163944224444711082157028830242407641509791343370699031175760680883451756474340941961924296948531880827165993759065158509655964755857671273465965912708161941681232841065698464577412642048627319508009312148543935187382985439143703783909410238512403147302081022182824990361946200289911313259715237575957255010995863329919687151505454982431919690016548492936624896328020869641670905288393823819033044770656454118386459098989580508295037886885879000500773325132051123734762388174322505126819357356825875129378579404483341535769629571387017780362791215464498509392159397118879700903541209240878235924986161260089405629276610132606491529801556338953262136561935970864379431937003085081517810316768076006052354226231520949985542819831802732322408928495032441705153581115456568101537875899057227340637775735508504743664428117138683720514764797387002180612671558855133677263784881065432494743039973384665315820820430942160659490556393171319227048957536203468722706814075541430326281418567276983534982535892711404552677729342076208571275276101619476018035559276105677617484806978635125612693671374986013320244511552352980747755694570974069893855178674958517191536074492568079671838695984389497002887299693766126522829574629645594760058061601052371996300364656530440271995697344317036931060311908353152357429295470747893990252101188855228617505493911635156821249641626842442895179214749896854388690547517053032295618325108595247921058115622513476335390606329879154454634253133556851571751899626767055931146723006625966854427157113428247291143435508586329578443166140668638848224966253655956349805420434115342904612876117971284637701714620545096854474077377771100162359717078973654909356177900539725308145847513882903819276955978590015757647883553371095810785483707941995515356284664070484547642112194403250633435106315053541344324714763699242668318770320158779299615244149079033601391796595132374565807669211893689168939751522292577769876734656594310264708379645279823769802937441110521622215985558015370202571350097282621287043074009669563488862191034389726281010354041055298447633138343980445331313624825019424334885521470245639352880486562586707820163681722050222964695388752782326284980488435533495186765756274396113759777104986000416720639127203338590984063504321343773965208989671470213577935550136570707144512634239137981330991224616312131610872397272613344827256573149681841146910514477552395538307635782866425252459409306562138995781599588641356415435718003658056968047494739642736344812286818663321576405778355334831091799659515270334093334829884443178930242023212012783602402057513022133269699683245573416776316346747811565513682839932181988430513078016473159138510797177200548907162153917561223957613869920787018323777498796261640218024238640351277073353914893307805789093764484291197934479257270121384318511044410240158285991362802109815938592917504374899883582635776784377057237384140650231824428118856174401924535824759709387578995187651789063707324497577040009936927168401409083510747863780576758666062773648503850022773669271066808584817905667685812712868273104995228663888290275298082891498739591483712135871918841140076739854465429845218011615489392520480875362674944982928253636479894389526657645811229963903923465662411776547178268962419887253995646485012049104909556223080037219060068801185413249307275987176992743506359350426540651524650141466298227834129835442419007255527352820657685875048447310776779102420470653784913172396570844711072529148416818690920101678870970306318902937387159001095235353300274996621538199818208537440738660864885780153419931968563432794402362363661300856823777146551423452359618995379048909454010151341201066711395669856115940035588375653613680518742888573181862734590967830402798985509291925025423108669232677582346881640438456198527857429031426524722239451302979405291861532921884901335020513449860403628840683818133976796404481301052673322136092179115686211105260827209586260033479898237728136022885506645470029285938728596569766613778097663051823070625063403765699345127500880436573030952725618373045393825631198961421945292932057695753039984807285699418894217589060677874386659582345509452988258733444515552286868343589762869755853699804692688515978862936127277626664548372654515606728435797615838313731256913105132825939637076515951552963759022657247406302640843586765773110129887767501240065824599361186480100796127274744698240902936024791981049981537980405141512953034443862329237223011401416128777058365053902212476968722533732507278876331601420684397548594536079010244903149867673515276848797687491085122279175874742726032464389934254635093739365936468649838300939369007610461740926272672678711805014508264852799752464337028626980406758206645356312385739666763007587946161263058692569631332430178459055904757065206746730905815282622830856998972441683501619144671671018302122019504812888743152137775990712733114130583924094335332980987836606145137286755016026423248383738165154702466946950219736679197278810769704436964804750062816755440658858464342377193617101790311507620759480814472492510399136591285624650386351132839942119311809004662724763591917752046101976503480327582867557573307077519727384984591978322550913765152896613459855521407890842235468192861141629404258052661454319673334269765727631180694863775314908280364825218163573919439406271261466390854421232457280091133340758370476690470781710479883381392756134948546693578101653128561525468337449211689422905618997693166499542132288711317406145021148890968699379290357630378517038912889816550378530205773782914050799170396733221676395323266438033660005653982213486026214679835885359633043165298512433187514547919707321735984079889459939737416988883851827903024019498365582509630997998575862130516822668691481326877113340861309138124754287297255421841616489448417916196966022752170257434722520395056468329884974575051022659821316857566980898178910194528002485203928910696613449020751619839138191357009671994718579518678162511729738014448302308670397796612609395846173864786195034408352376146525056525595383438532746073600571558752863697504870946965478897220551679458563822041649616986865218149667372347913930089034011273445826938069735373412401112852466139438013189715390061176023141708590780663812788413713816308554491647181421825264053017635212061784058146666902379885891885169022534507043380049575603921433002028307795833170924493640800730476154672080844822665061583940125560381563620337697617893136525162211678649105617908484696362817155235485652252772707965937596206205504792130060968103942621399555687032915133158729502312096107785508444273193887436921876030248849633522224365269930308250464813892429359909502699486081757572084664578103689293848358596437698234892781703305960470574905259177171382433611845716356452149526689517481166224296904034734358980557940452700045879935165671256679433443557175168831703841270379940196744908082030439447660339315910412812868023524431797198559232954345705887598736050897619919056750324047122209848162194726462713824682334336443074298555997366742343078546996161680764378809544262550007795469328421191956826873927913241868666861637352790614497924926109588640536506370371656218459324119158494030685885785768167579251451648014456940050194287230628779567117949238331357934453253765299066447746408291057393854126492576477491720946872820467128972798843668006526663174903942899780785151716827890782718537146221768389087107236260625441824606552031496027844624870391066842926498850299445005062716458727720701702409266171458957089193305447853953460349855519194539721619466572842385670519733432833919567353622598439084529411159253082059837020976812276614348564753403780773351004071527560892646876827753799544750404211464214677118448780994175029824149558183122846702747182516364137263942267365862775833318565051061752338928326422190504657292524287479862441147482345044668357305373109425873685409443599790080685145890620557854176785094700873296968577752487036363701600751764081080364931492454632838731215075114720123896149203377471844707368588237052947353721478554979767470853883755312735478241060926909602114004528856121583205045136953994500757549085445153453800371312400652135187090985098167945291970980590643171419270710064889314417317929847461648062254579503783727505217147886371632123653109570475344533464710086478218891528975173459642207927950054424039054779104977659740953878549789124155933857311264876712724312143221070681689449402057907761870704291423939797307248569316273293652590155204317161583336109023318710476057677925404101612380420724483956859332979149713169557736986381081227303741175172109387907601510569529407941779147363901148576366670343450462250592187371839346377936064302059868663652309321498228004283855997448149970478309211695902054992076483328864787178519627743581103816360409332452476431343336091851887955950268019911243329541768161865475321675229612353019385460882629834723267194171372171835869070402545885722499380769778937579555504742679571710865783939693917427192650728154335331096808083125903422680607391332322321941609809272306568162073037865183087031876031020190979743628692924197720616507729636192638207714373040716531420150177541104430531734705656343755827172857662921629196279158108325098692370527712673976356595541038187206431998068150972891771597099393598068882960345912326157508931896255247401895047785411492858861462904374961292852244717868679795063425059424149837509905103027463147759229811368042989605973833788223024254855436358931372372898315095068871839094620916513801307886475628343540046918884587479329230099267770655873172619651829824955870992443102139009785490986135394273639624996025682916147124025677799329664618601684595490017405623853748001047991720451669466103985534072331406283957850904885819444853756849372766307981551712425910719739024090640585973547482942785327274654938712838582379941760549047192452730723109432871090847345246548246710098776338621718856495203281214992921346945405540997942443239309869523214430996623782351655810820878411619583357904342776720740645443876727867743485967258915565591917458904490847979831457119889277553162346896124932444721178149771892362411849625271636394861747121285013218277335616646020770911163395433276739235851079142471519921085993954331653819452921972588362244717823071157805613479021566418617296499080418014192496227307162080468833834960273738304144796689306438127875308531978823774309443263703024539921028834174299021593533754893687327218112298389311555963369322796107754147092086241368212363726933636470947740983162399627191873139749667229967659775031359876693370605612703329151698798415968031212128009444169441336606825646429190456810893593113740264868550045785736779457606781366037436565619427321132935154880766355041008662884801797044909125946487548802134344701193628033003003673044079670828038283655117348822753684923423838387980092406610540956156352433839560250848517205748203331011373390201019347046368853212819837849746609731809573169007440390377102778365745165299193378764694395341854651907316373710512609132351339281697342928190977463112170896951658365922741589353211329152221425617959294908486334786259636475748777922660579341148017643241535516069477564385099047715890326037178937591530100232089596196583817912448144356958271508827973790411206236309228986422673653866537866368376243777980781371317754557343115613715728253971328707959913165059666945981004835476081985793348687899094058077110818504768970053167840937726056961946185018977013766894603542008798891216794662821335197301404267704271044374367616219667552843462200473529580021019313670677140783274511308828156342250374131539996072209635834898663693278467263759903893299326320205286497077518531350814801681515173762351101286159735262687664825507802594268862735341726928879678629679525113280086305564408625490000267402535847472785687326858014350615571962553304816776924958520094439421415848590565845086696012268093851206831422237338501709902132727431054583442195099897545050666064869406156681004404556861479179959882513560150851786632332506082320790353127199559894509062727240652957388543420783917967501064268704260182438734357812395116638769074916828806842360937983690122218068651134895137542732584903010037079982079264063112962630480230594592560948298637520575223624270163463356498455930675219444246649666894600869764829210115663239990867793112561309181186597479502267534389531217010366770291042046659858802946625509963576981633672623275784760802029508350396031042079050656365443089223802622295209046635985460552679091727923835789669047781751112277935191011510470741291687276076004414236684378887614386423511934451425944192125101698521859595458203392106280420103523855726433091643489244041120510074843413110797298543434965668083269148567975507535521136358173702871573811500635253942039228524003386700229950404502389754767591344753347029943704738637755717572835838878337838370412202434604632462449793194405756815896735170480742503124671685015022144855107375836582203788377610876616387532229963133748080612861156395647103143111113199577827826066776812685424051447233664379232152935816921267513825751102136937862713239197595684680547060978313520906542038567537352176324670988297047992007402355405471742314227201187854195417402377048838156284355962017723714901488340610217930486559843983364235792055687849473322802806744841120064764373125457699597126509075612149240519648834004009308018602914455758563969004318739151894242749615565290478338069548545898631529645254656574096724904703279696875252998170345838497775108776798480216562622625639480102447394172802085475730008347266194501793116368942746044527029971651765238073056903008923730750372435096015625047931337169436890001103691790139123825814226809780375775857157134981067014047949481116162805946948940792610449061243470346846967341388417739875635337432907873311204618532423694843773147833517174268712154148758170734881282900825313167309541417263229213315890042731342738344942965222436268659683518265357893239940985552758431017326378532181770572658737183019722101677285569796623994395799086295354792369045371301875777052368806226233401231528331193340802053495644624928996451092439044342141033645604254016875679737713252828930344264172491129991375225475809267569873874290634303709917873446917448200976629147256760536714880934815921326107305725457535996966978393506847376752372791505282905581857302325087523976909011371307993984990164005031446327305321784671047285609817299049307942622562888609476573400103900891566860947718032671631957876416502541003193241889170221583673414482218979649724166578779571915593167701809584267748751007150775383424896463831296964954016982134280248430236671082561500999854124408753492711414204157862715486614430121917332796884188980392758278707302448114561494399632110861959172718003433109099585584580506128121735616274619566150950764143731470388909784117144257005042986536125233149544014138178639924732285828069741686492970001874826972418568358541231948690017160604848014221089858111814751618459953555724814810807976236161593539115554275741547255707596634868124901372314130324479718885103989753152255659804324172755997299949334706441787791622948186316622231928079911912375828153521145760546945713995771876193116961132181524165321796752063373028004546368880499675096759147644195584559521983744954602557642251745142494365740355163935518520722041785174226369799496950022814878350590755244503003050296569380479955997484890931199328539404352363910488616069600775084042680131536710401047578001775641755180162772176180553180138036406960616639239766028324900717702680279518501087297146328096705502668781071922154696373102248759499741740595691025215541024719462684737184166014390227682929917784911209974592485620124865203189824476211761666355973814222169988677133015827878968286839791460215784293247212003259943910768092002889003884414790034638637011385842425535238352469555016939068856129482025316346558987341502403496056829455271311743275152453124141988893929979590381119453607989221169923816949580008756265362369180153826228955199672001152847476782111800749130561409099088539336382027900558905340815123364281849086839485869434658624103008685986491696351961920313383443132822734106625862472086823419001286789438861119369761410060014514899826340971513324720969837203807393487559708915215963731960946143801150699751879541168345814757345074270618507332283866654708095121387166536082526929409830154536013129694485462296316511015766965309307269471559344820200676269253516238238695466843043808148297772257567989175909698295089314045670300860632328096000900084075258057544160651102609936701591748718798076687414072578824382746817943495719488267489370407358505338945964092096247210235617390022248520084697836173786953257398800147292274902456938811484608178738142487758312808591064887652539553401967169549856988308134324259938896110368411645659616593865091450319270238265682389118217735595285820290712775627289721038074475718916003308909213799325477026990686976742596295985190241357400441224013051572775353993822173339005029124104310491489108139363359857262060231345610191058994397278300209071406107343799261293754801494880488121258161242285518901724059184567873249165014123322809496868873314337675581700267861396556327152685976406118044825659203664222758406703688512197441361684232270574201768615059226915269641676206841866383824154785053046213028482910859291216507300169903011429328176470827588722273570592452438898084305172511004970531021460274193027372302313931452571084714376790650408259362363642988705942927055961015066815386300225401117410011099838656928866036748975765166439694816929579818936798928117181091348253256247389995370644448497297011907967845645084713639207775358757508620207636716766324774987155803909183528829570577559444130947580063649816224351056969192922119370044744535291205808534702150189279981940016795333652906286798449356950497146713982806755560778318016480195844438999634773670526120839718744635994601933078484671043294717602830303526280443749408559686028039761267055188007349007748237775028112316980798831825633696134220476539971692617178767505004253022006589465166879267800268911379102589415548398074287538870666958308892470524545275316775238129645453820113191203254870512455978300712833276737030549584124334688925501601043221613284167620536723239855112070469074563897556970341412563999802735285050118028527247848013068655920493164122393893025922175632454035342531412188163912913709233717153755678538068708299133386657332080536625347997001417104492304243674388822239310440777025615501750701063403387122588156881573519857548056730136000589982083105050307214986075162165301403577830860474323579791630213679998076065622039480065152200310632127121654214073358328789369712406406828529492183516022980824393539931555218788340765346383534730884173931630067435060414713018076668319936848507129338470112879587260106646787390464234410215830445981084234935718045347168819528610335999252573012183592962679139138399541681897404969859513824699538248554245907982089555934842944015791634193637002427783095421534650575740751029596206647082265660052205282380289701671590934307571906805469298032050411093723168236500210807966945403704058818359285607191879293194828148351700572341967000819523653564495956447698732036064871190859913107236371841188666827277101917195483998830851243763335584968395849459100967609874687920764818340837488965599569063019861453495120312314329439598109027307965046309944728014820635650005841323905593351922322979770131675477679738894679641813624552796163401697701179196152087974395615557081471257635653386013927901280669448576756782221939970769031359817578223177138866878926007161398583950541108452713034347162017200370375856753472860484288910235292761379528268091390874078094284204814901367990622955907713323743868668049078187553963804102041539981851781141138308600971000412486417779753222899369941589399670494601036038480963223924725846141061255200597012900470935875306656108015300873641227369416296329457531702950049458053667305473254997799515234632990912193878292933815176185942885638080934623386019096544531004603735395747915229264721398598119415547918000798720039315082546745161191412987941831461505978709589287022402059888577999478255227195470598599228453162595944188722889213566599361314713532533601973921284451279942441368001564759680516823061787278369957601299756660928337396530306486827622206034495082136973456678242411981791196893831577869167147030909597842846987387436926858759406445424168412376174748606615778399956019026141911286126343066572605740150318858737365678452621576014896271324733030656625750195350151587048317593788290915716777019189009607380104248429214986726406506709004564594587730801333326950380627075015272085857392122937453988247262606000850206498076817049134800182423953911224695971875911996172052101708769388784478799811145405494470725138886336595751473937692843323543426932548238685520794877515282987774055085345841200720249317170381851150376203078499716898613128945577661832110180106976263592655599303219300283502779413229642039289814854131877551193327499064070050581824401147006065170543152058666443588324477225290274138596378142970029070201856316098632234741899205587382729164504235675881235946782279547365125081242135648052427492544884263319284028578602013101176062329977520570480094285050804140962575234217035930841186474951683335780218912077694026749630363779810057970032069484364694510714386541809682500970295597550120643480384485823036611987907937484650371140495339139462558748297717412219756549126442070490191029892876655441555679096417381933101668761932080159540859208587407587181232344882600024167716605874284160043352960594510931610097847988579747150685686259666813816174861110427776783245159090445790751744858198482012152176536877888704472291386857502634061309407750206760423747112986743767179727849942795860810166662793112024698684602605424156244953432761581551232932914714842451903892710971877791935151525188342167575487183556514053805818497008093809199109410251615859656758895319950433388012245548967908157179735467913065771492567460955737347865246063351620499992439584990671594230728192419864814710550649054565190534004733757494230835092951365804421688679686179201642920776882366940846952834586017425873780180148977248903355924780697204297825688652957556673856697222997705705360981670536548581966552556901430138574134689693831013881412101625381160231776697284402310465121264718128229578796221696629922624155024560797608113424956785367185573736574510295366268917238451965618312466392234519418354535301490873312918049791820661916525941041053165654022224825356892300273946469315747130029908114591559636347984716760029143114224410590169139120549041653138530317631460757356831288002778741993329512753493839180738309911137438552308036691149907323795091182270133819415015058821696846752596213904482143480847550637570267428375074622016689296732051986237645772582806759849268146152653420566028161840021884368676630552954268576033943434308597764150894528035113469738022819607064267763921686951871663037965990342476527567650368477146416068401743793281071398647645131392503634139177836565014269396543013585676319015801395404956309918403005213423809071489701697878746450311665425525033599236778685204197738041656100388890774699195853625693727810103718813929378212424863867240521386221160614385444623853926106139884051702497382503788830783624341394348242566324791033623573128311580680413179512599799754016724020853665749983397449072567964798634668291346300290657449283019083743987334611169145563493790395403399503376540475369843902087287269765734381163110064540053150598781063067776356848386826335932082184150446282085753955264406486804406572980971621486779027108363726533424101507657831336830526286341168934916139891533653158901760053727122547146710073608505649764786624303679749811199643127887613791498837709604224388687682871928393790328398645651066086625557145971805664423357943639509935195831842095089502908397497240923656421717104229361046459350324874192464863578233821420552026693594121665934874103648435591557001808768097761330591979162337033545175986313953875818437425416872541794528486999613971934394274230648652950612566721414524147781496924886621864785617876654844404570535298250065012051850624261415278302443560504271569570542100159973508511201929414554067923099073973865926787615866986741181868729452024353562629147682594315194802208183347568225506380411003908669229950084497149879359660625913250360378636756299646772452312042065721218336307914352437310340257401064862532571636996650846086424298731258783733556288017244305338901976251135484299310742201071391937558889231112496077874204650425644340381412192602150132946918753087984101793464455747925490012584046827386717315167685368957412580842854038724030480982809640639189257718313833001929057933629625585796207654662638864150059748547337481486207810335178253557724888782790733557290170627445789200051221228563933530866906977419814554854508775997608339025626054845974033009007246536828820054830695911110788464902196767600364656901507851388023078083698300057973719187332935661814580718840993854634402343493753875849445345089601121139124921824663055537846728532108794624792022691684156218885413300522499668215639557229916083581576595409967024397982481051490409839034107373581290427147926446996032252932473976022202620216498420188452060700539815855455078110831942144661919087481726772371189200190829650780641985933998120233680339479143000215600003381347052164503765072863054225703396322849567377916400582636929781857430799325729739446936588428158018130699007404077123922429169667413939369722248983591647485386178938021191551900714310792991209510807272012633778534329806142059722375216778151340017625571351926419006665695019784234770125577389203160016406170509607765582481557796228588839883660617533038358691496576425641501517635922725317983465609729697934209460672785382981082992127271331739378457613643699798604850925222961494888960754813848477009063866623405604386048690000372224962460662590088711566765687156422034340262825680423937422095815145644488733196807371933211198240728564290154680132001340753976290990918177603464958655759734871277343936505045351325633134074534121813637379697242498635364428188395283474951987220057717577613314267232859405223530348016580725003840648585816233494792759628250372519951191470865559619968031268433210785749530553370788863790955610396601282515955098690206042051921436363331864455481482277361496387913447884681419804993716602317373790279376767057118369565611686178204658753904577399500262072079258549565405255444887708599558604076092093798789762342697942503617914984743106456884279672362622403418563223827763413206874669247303696047784519582973156629169605773622144245252980720314958417531936159433840075841445877741670671767330736724124723915447054310263502092699569084039569674502779986447000339263478652726172005508627004782635203923781240538714326270298542547335132517258915345109413057916721430580419047548857751786093573473354924139371652628734066533027574116560332027367455200695069840410479426987703645705413517837834922209698436447703100612293100923882184674124340037881899951736236007079860829475659798558829012227340954695577794186109174167751384024315908665652811906332090721720391104974886498466215147134964998602866787967592113992584866766584208692018858596569808924872227399426201978712003017694955970233907270635993146295149780194817860441694502847390540045253845567702760270165052343936942753070514926788342171248129840071891996594985092725689159186967153610422722290609424835406535642718030420416384934295680135092720558487797311679076025918904551245600223081214731839934066486105468493914401394300252432904556942868248722195497235984865936819017422122386643541211821888682367748653697862402151447907693552002840379588747678641885238431230997701751427403196138620365708166281288035217923775911189750796107081773529728636433375656713353107535004385068206328129570055987464874747462314062864459361295285024288076689422629584450971419632535938542318617774494348014879754604791728341642163121686834051822095930022339909416088168005737378279055389748468215224402508816672156167892647510776141032341806240398778746923282577020117099500608446188849544429838851972983694393649398402778143163140316719228278497137663461959424611595038940236260386452582402690872766706584367899508778712996194058848295343079129199322104882103821033366591364637786824777754913451299576717121547319257292344652036039759409585999930758301332278703251971964783804342962270549248521659160124489190540523449241354227069969785558763128799568287696674477590105205173483998781026577406499439878132155701952180627454692315869978163931515192194025979307099941584007120061340432596795220393900545555597944542282790386747361438541372097089616830580734225068955255662863216538778341751630552427325550513959850372096345632872198004097119887352096528049323065605566038027818530041311868593667137263266655266317948808670201260995535735670025422746430266490625544774458870545265784209029010554206294036060412956607608696319409975605668113197649084145006664532362510614943861746627729486226078399859801080548355762176145756250552215302406868702908479444456451152516677950495842263382689971338216349779543942456700545975085725006120629930373041644004452177213230126514369631166290854096339111676221444039184129085013056631741129517029701318948903737036854194529730050634683161925111182289150987434718658739637351090512145480791677449034230606083940366234363923436554036662584251371780371165261226621733449497614245416247585570676169050951049442767345512999750775547422998854849072992496426815039973599160488450474093997891303572944624957908453643453884367564314410639392502067617326398965474026863186667480220554118252519331683338195611272536732875422022674244528995701792251654368527100275102577953574942131485494556255185360434963125181388160839405529836605820170834819199612336927641038998296471037450350747231279357388693497744837163448124886585074785403224346455053961536711059398560841822911213108754478937904672540076561586409621668200454969892098145113021894409007764973497449631150670012003153395093303729353441310520542546886743319684594931465402263458329296183314505677456801919346351077636000834602028414183729680858664559010593618734367364323516445897718635334697642318809519302035181696851327753714497074207615027641793516509380698918097591683228406986144984977696535613427239625770168977521155148662375590287544909190837685194967086925170444789831344393038915818719207175152846140519193049172050796674529090074468981531391320708886811062880975497233506669424207605955208971709087276712688070692413325731918464040736079825787831465768490467769262259805019050467738800566614268273435790655676289555080107319312396788288563405659412933489784762099816753609248585847220602508330641521664481428663398402078371774239895833474824224211383250904906660748924847668934712533508821418900959031696695370858522075572526815853452960640499639544043543595424075585123362294464185589705538764313141159313248244087473046337608397283098578521326793890497653313199084804654242713877554043906466823891861551097108812479937133323120445118000673921165298872323953271207392429958642840832769227475023816969336843000306390381324440410256872963740107074908120080261296407757207720653376822221058410136479628615563022165041408928290416984318410019044335183284694308483185301191136396304610040373591694098959307260828866249789267721588654981562521828898449061046768981851806378521420208240367265976378985723342725608528209290427258059213426017120435913812145071396318369738069295746623359699725700222235380565806710058812337831951410141892108913501189705922826688995219468771831678489767711816946518895893645014536329291057281662430398829223394286370166738273615333456277336290083673724734619435106435114785220727680943826881966159842100660447477826525412977920871993809852234655607475438695622094542272997937556488705330071304983653182340696842487292491015262877328794979204847123359314744589540343435220779688967399500771042181420705997190743187042230563593619176451072872096000564246642213855125656641476434248921620058574924094496152091276172448640955241056031434891950339072618604912958893189979135367054057477360025749999861125401620101576703814957836249337155673153425774652490331771031005360540527530298552119172420931908209032748969911435934189599865589295548983488207734801326259739880435700681162547669299929529499622972915947334565974471460481858920166882309965737709870359745962942769279870995519210587221780032352785037845537578350902517601057073811341260729436949447230460698760867101804584252962495806135461072971284964546536989509863745151286958137363301037541018256212075122441731068525221944107101581907682390049596943435443300946639987680391902371545823711999718894614252020627120467091952887061965751942797798140567892096038053194960836345751774374054625021729050929322868165768372706810867005355865967503439294014362215170589568320110806243181245642892915829649657468406869597968132828232382980790154804325138453606500443871790745775803104407606839041978630637392477567661974021273111465890859863510891521708040646591614767766100430737244068433330854756239788538352556440710906693591486309359005487903825475841709644927781571445195576290494732746307227871653907347418385906700225307819413698499906683067939229730056386665724414246993652466236738160676243414180827394626765373095378726035249238489888020435115952664386661031910825234591735026102975079929453799528323209740307985553100859830887088203371127143541525494758539170121083878020453097095075030631335236163782866905176797027380928907594378732388091962095967931721280847721253916030634041470962355565933535317970902184680324821782020370024932466471440433102630530262798705485490798280801149003536536381152819241074683550390462564512685738837578146581771529998202836785830238655715190789622548311998284485289906394823840335756015126518106267960074996523744559210720946614727917218109698281896770874469790523057954630776756449537582546333779665992559732265768956332090954778703628617368259811300755787537429524235536752730314519176819297198992112263195566702615359466755233506023378689942271307500251627517668418375106947155199608243880007439361870428012833601659392932602843789645546448770371262104128154726412655997332293012617694008824807462644680176514549553263552649085137044793123199135602855582637853732487375656839590649264743551503908026813600342401902711979561506185662093532280470244483933774248111427430304714882035692707780152618832538779758214879605506804960201834322386056429230456235676122139838535333511150154304617616440928404598086888627112091193902995241523427585582846825483988092048835235385768716372402360944786845101779922430309447007748410698150143875742633657923077207107961408709767641672079342606531406553913130534373970755845280986236743171165982366009008489387473268865914088900221093095004556702923404823405982022827526045073903891526445748050182239408206332888398680619391709258228627561797584357093003793224506899002019784785834371162477572567351546584951789151086550470927523948827088407892039388761252571803209092034387570807564257963384957459722701371399064032501440017685322064781737964094615112019459953217020229950167830623529024954048130209805664722413627948497420209017810232934850445473597055134663988672071073998451577740536851987143581241350985127440053576291542804920751067905354018856298102404128818432654096324574489703802252527618430963303303792032915133390866147982167353988530104760768252561338914630556593471802466525258562902403653386865125672807363183166860591655428979635615762421211134214119352430153501166705489306458614180781265304123508919374122879403501461786047702403221798655505696597301281108474098903509837784189183239569355315372335054526346292609579571555404167933957269037645737405909850466526984819938625335196041579741455801702194307793956957797735094871289690848286235177254619545169779067200282145146886982962722386497059752700965594729019777746234919196467575812590995377916228283564279709271437277426303727498162940167293331839093042242866778626759061547043484297462023422412758342928798659925722704069760381571121473360630394972510697404010900518313704946073526522473935441826187827581257685386908890764780083758881740105174276455566453457040588956607190117232985300036388511928658732030617355758362089387423977715682517527347122396203496677560114192011488947332838996897703085514213194592183879852971545037998644013844165553729093388656514836174998356560958234936239637833860229269304490887386572901460104016482006443441634823094989996518707674946944925307401147754891817292960476133312486515755110183858749462384190016894716027740994544073761034013338059851229181613789287082046147622592002964477097034840233058037868555205651853771828009981615398207048500211555716355730548127862606065768511552502068625486954014116376954274779217086295137870408954204267876623398886797968940780079992045959297545508489066245953660844293109903251640288917583688764420311159651813656126728584014335059388033930801451605007962315617737996998767463018999805171917281406454323451481803476826244907209598914372491720584153729183269558583554074501909928501759197265256951209609767878460257690060279610561978795391376716857572473946740954042182900955574018938696897186226219098451612312340846766390015553004285834030961709696632491513275674976748466694243787304575975058110777550459268893409224880203726940653992161426952192053700615851642834667705981383798103786438007974973028204402150611574870220347765518394829117962077883675873043929229150378293540931182460586308597077927788889184842392334513605309546479340647012734380301774943586351605101187305240754187643851730573827130325139134988167088032624595269826457861788350709293916724386401204958297549109607828245535796175883798618454177532833543688536969796992042922133070779588493763154739932966424467702944281192487719116950280300858318042161635842443798557946894490431888709657618117268366024309376906201164584584115427259124316397574158300708637482330039196411635793269427863663175666832313794886258847058178758138404740558325968416589210413842615623873454898683036302214070490854277899266053770414452361107286021533532756013749733071712853542462906694540369920409654765239629269003189434889674431513395238254835483011367170013563649108772071502690597742227571298532201056483216804708023365040003651366284366294781380722192960651641311677814266768091571086253009650033340573774881878796355232802398737741465238987113217085858386463902182850860530755412624085304253800785681374282328533814234126167820817625834420975499021296635072055737729512700596098647567324339442490720207284975014860623295900066441751295868649649444890795386900885546235898662730900615026778948773273547806772326231192546479374852558171753260287107121917619591906987500013232948091886797115971900641929881661673893511604374233124930457470955752305914127670844576031647328145359045704066717982610312205731815173540823509261338230692123711742602199164113069456751358895832232787765460585627403622327949197709363616433088180512275509047879865687168049428187327080967673472725149145203751310869016564399133646610763640713295794205585016226507702287717366359510804473760719148914069646118915721109443751946399101612810767374084911562516557579121574106349447183032548355922690897257508040078329844704610091502764152164309325608046937791865879044927700292323563198819438230792831743178659904168022416514943713603140315561933640452462857451017585930276442924434680711361146722343252027315853352823840900023483281044442535502964673894620174398916795181035649148375505004383748750206511318949533428487515071271886496813640053071449959631146161651353054789214918969976537595344973029026690289073016590579312360467680011772400508527300744836203073008854119939322711505910962567270177064641300716970302724015326131320548746477787250817998335635761494392393636206700003905373755930167563779920014287049981099152963071744425361074056491982657380397738200650154609968245596917048881372656665091816712710568747950944019780019385506707741906930230161557570868852147161020392984254495741702984990029229516952194325711354482642605719768857769223397678646837091992587133748335265529911342829986803613129502013431629418532878592313456005644853555068284358664221475418522062001567885436983009131267320862293307823781062808710909628120760056962568113355862738611010742363574273813765261627793237378799316106094012074164952505890227409053532583045828327200895824792853250393553508709461631456896846290854389563515357955944892232814882153699776623426386951337183368700806153427952998951437963253256052283794089516624171034806128766124820095026539929847832139804393379976892429812916124287480820235425279265153624293413911588220590220358496229237470604245979452838064417022881162018969564196598205110752998018166278031124451538861619629518161882237563550113983029862999537898822954801388183708465190641728829850510252306242764683606197155972204962044062572625020751003018392704550759442498720332592896244965372447409978118826720208704102282539756185563115305356636153090300966724806865940405200103711614651711488984295984726966204913315050324410014753011132707590726185409309670903281234096181620457413348743191981357334225480323915869243570433429158863021932175655937695907948354138359339416870601293411501555519346267980249663183043968578206002798753636521830564420645643038607670298579588576390749784292759213367374959048999358084750395587503023076818015517951733952524496073824596924371912510817938945539152320470041658011209263098954666739709804436480666621546090275807548235767533449542714792983022088219557548760840496814208893197548232492401796224046216127218689757087922264998005198801489510527929378729144229128449040677769058884412477590861754009780168569995956084548485513512450887105157361532137813165202163840360926393748765061526374377794427322403977032666573085404775080318406974230292309786411793419264743737935996349247527338544738653036762107778745740127210711355385663586758234769587584442883300030979169875734719797032895743526853232945828261629140332735541609506445000302675011244915529846786427920753534138148106138266410770586262642098270689150300520724426944198022484587226751924207807752704512930461397049698927174579846444710642148143189251990535512523490034933218056225710187318789071118849656091633228243684712196871295479312761013728677561008340220352729351872003902159256127698979249261414336081378328416902262209851418120259491282340072693542217709161174575423466207658763902129527723369347952070294841387534463513543621681341262717313760926100697966226071369223066013227015428299821089545489635820677099093004891802822555535920674141761982456057179330416577467744338206391785853117816011906478585252643487733732886405640638663586840204496033377825117695045585017374707152607030974868433675063547964484793064536674186681869165280813743078908192943950407229264736850159549817552614564143776276769234462968764981670627259869625747357275889438525187096799508292849419288360367347209560055888689425882801330001900911264788518081382568718191963945343511949331280108703870235719703845890835139207467158434726225867062921101858580597203770365923257400586824173322062114114042908135850056275963213410450249917896812744687940184822713049736373691239441914305988533677045919616588143695063084325337567712887455668044223238283149297807142202832404334132114712228528114959009417996957623207129896405692922570947544503437929909663521454997871061795705108791899430488951327207805757656725534641277790432619750976355627238297104942730809973373030643625110415537577239396029824703094292778418883874919642699988769876237402659200822046907477331503839613209605257535739246418338150279374611819064955958619973490926047978442525410753599043807246805232067047055637140962019832407397662822888365554627539407362801281119288543808169389718234351308872652701075252489759268169789818410012536570486598751718819866281450688223145746419687807828939628485231366205857711594895173180651548379105580057437812262372075434510622639166593194866438889046190676541402614640050396348944354657521965166209481015128174701527616481871076654186041401987297464357269591144484041975360684929319049677653221704183355689470070805004785433541329542309198557393255722590246232992688322561987450701081761322811522098389845965235013554543347564266794186223056166069194517068729655445908587449603646633377210141823308502196542985555988617108190880867730073793454980738731480307488509470166811351237179651696820740422157820544559774781763626361070374372949832476570189395432352707804372395498749410812437969877960674007060674373021445965068345209428393550279044411969850841116806585538586424677465460488440751154441170984189239025841365460740817141024685505658728021702089681917851117665806022873545468561490414284378024187980912033753001833565662662946069843831982937033576203786129879049460010620153983173138981384929502032467178712256556745464932390121174554010066969822588710640571459123545448461325960428947980691403737044783027719290384282238959248037351945388386807527671989916093816025746871611611349046158608981305958121930863073833041051356677123082802626599779139364634622059056319309213554767331506040223538850284104204052541552944704235687874963716970769964472828033097737993733854692247458398999593365269147802082586014943301973941054893015708644576063570134321968083266511678834828183667344596193508920512254349318002601585549430266437387319734661975792215691318681215048673464325283197340758499094769222471635959963343440380443636932157908781657062167561591303329480262378972380449914004855345075248455374022175149740886684803582641002900687853721749543150531224356293086593949314157806183117181778414201548938600237896055140167993399016802006542001532200427825261537854956686368971191252369888109116621511268856829245779886284352114120575343166677195365798600621745408883233289766728943543015570648864284366878865522660720980367844471951226717452913058138767846535490351159665716781271313445048373048076890023809328308788937674534253488248795920113014399531676536433086012544472260150402453602251745377354196050019150509863037467487918353986360132245612010764377567833233524482505228207746536694049360915663403647950833377262443921167070092326514558007431877763825683210096096032585177333238828856674403188647126427069006526203443677016877925948817704256080806719847331489082691185404610753208637078193954833937428915879252741671389459771187525833317110180605475926746683463316390430588839108153162730848745630379975323902099128327497225216208387130479958361888591313857808282744623495604572032008058017176060525705162967604057000357332651998170433411585842873194982791882726298681141230647730189370628839846766418820408672852612906091328755275633795795901484961215710466417976241496027091269587145913785529458711866968301089712980064854161869759578748505241329103098319654688145152079647025096064699947910464431164076477090316647680153075020670676271828513449086432310997554139806997647882399520073703551822990622800103438956750547909184907071500850309517717957491123095323163375140069182384622620062515204248538710044709124856798557606021370184675782427460615506439488621575656871464230659373662216114695260643572564984793754368098421696395254311079638160716335811592833389116025526936301075214447881946379605987085332207404146930057851275971255202132053468714889225117830700082988661441929639035251238243786127466357496740698644390227264195040673573677938666761087310251427756798402602582527876083197127923602875233270172408515434883296876558163792763949187267501815012987139529477098969150239457554913707606945704400474693122823346546056406973716737521321731415787646337116947943264112423173722481531100721727560461087463437437917300640743545563891587677355634882808789156189479249483575497685932658381650500436595748521155421319634018321911392229898181064154841614461122072090415950495672430525313059156163985340404672625990315410459490252648543241512529413536912210492976097725241746329952015784238498712784362308797447583343414572556394253965779652791089372899187592245516286684701232210431598298120145586082683801301427366934187544024117006124011909619120944393819978575348772849337136875088658885221439202539678923871133166978283786273610649678090431465650604149420320483400840086742138916057272153144293980481983893898081043446131357964001915962303627381431738068659253802035334088288321086155046823223833816861747529362879618027519913218634326033517035729263555919237515830044281607145093783368988374436693905220823943978884819278513616917206386197267114789171698882671065109136021198111610963478105527353633684717760082480114213623867153382504776994138225609764417789356403850496400052977664788956733878428453763920949677741450099592126411598447226544651452449690614241436171159918916289996832233847833394540087533292313917754040890623800276402162377244998285989104838850495902911840791702411312402731172302408952621125374450134778518897365645033939544550467296770804674700763352595343266292738422803540655723938489714322953728612888656642574484482713101542297004084565769574657454507516856230093001953573212881572424953661508215260371604220169158262964741048454314915798796463533340769399571813276737728994241819587289274433646240266643533486629345018813253844280520951411468070822452550097595528055779077639086909290683655604858745469933548097313299825406728140759137847928796534870600905464812470501887777439873935989208994360107541057027849269915790689614569254541126108749720923463328256856582039855785586827812676559447059937625913667220519586360897081979198498751750764535643214844590429445574330825736199075651635323784357665671577087909372449497644818259131452413784674540231587467736982969336656318163711521149326622982750515721467792248487970296867340910159474064909474017325430645450173438833730981325942672841270316116228168766871932173272959253026463092367825977673338439617991491032047732253930919304631665848367242466972159680155339681845605269462513781563566901067813564045445908721255924679545871205932043187657690214417566400476940557803632005508200751796530994454884651607148066230156308946384620014795062932696049463364560088730680815117194670744430566975208387977425353974627763138024479194022953424600193403552101246785899392551684861090737367539418695260025640488782216305819934310682008697437117173601305916353737369504894344642433072878087929319840136158773655205264371695511542292168343115689258587316794990194348678573946365485699277118236454982189722115355743313303320344033361046840165938700560694427535207013983155200110503864895087056091968818506771047330081756330357939645112009773222188192804339722748473244692588420547481495893719804639172013381346970898422493335729472692748567936160230858076672640814234092939302665841329017912482586117543893930330496498919233698964246597467820241932411311287517050718372909424473139444473916014268382353161710510038550377974097323529564183398335011147889831930532624948698246266783813641175057207148567793370135372351133258182985619557323988969223243355835776642808153350088738318353760140361002646604104364211331475153548372791076552443941337503487605326626209991623675907988283951715542758556578853413043720019473826635565066036954287947696608728082747812921385433199386253120699846714502886592608919401244740676741929771733716738198330133587605167214514573030036511592981675204637699707114212656855309480129935666700285110337022799655224462409971250177028000598537584937480307324199380444520552552385252504760642990381220140308469105925249707286407517472349499370443293686054154224359962083822356378364540428659052914575340753740305196435191973230607607507488628774088311643749361632363360940862154935500331143973974874140455054881506677424664868567545791495854640794782030064579564439337341318337745205546341819247823110876948267894995407654786679327688739791851156374578397293902840293273625169924332665600647999938966568102196368884561308432931983581306883162191899687119358070223839854646867063449503786271187073860399101817447122879919331626319495095829801798072466464258898314850747816159061203519888654155749685880266712522205193647640000307232275531895392058003166408501489926000712838348261156012193413048092888538451333531230787776505764073120405940768868849962808334531305871147464160750176422864400101937491971709602569374731251080697132260872835295852149217861944881068162912972966931657226779235198313542953652206902446352176468012622168810204972062714806239304219534897001014786757380148788150375378533897674540209752225962347427092916490889905203275400358414280474113259102470276953298922190888409818808681998542636774035330754713656695324395669753086048327840578575430344398097121407094997195138703565448832072509252221507145227427174870499851898490802213765574122723432917080279901832707345985878112333607501008540220153659320104489432417165086171334742198798807908834656774795243470446365343863951720446284699483528385245192196210867645907099655079241567194941181012402953467808800917495377658643849969682197783735792681755304820764254386058071129316040432389392224921887135764283845065635397350948268596194345889091224311438518063080666723208180414282835119138069994726546108232919652703818826290903698645873248105166286535977170326431235841714965414417293932707920393679431096988353414290469407402858232086287584725944811588289517411204323158004373697536206484181267001479358367709012394665386730278410226747491973200875870926700079702896657676883389601627760661233718797253065625177728156580087082402211079702196286448539163863328749072093923887897234111173495300610547956421288441671596339736660873383187001365634491184915019382508339659720734639114287044540502721541195029152206797298455102500493222180112841314364784978726702555049605978002085151002665948396309223457912944807502505930092756382506363014599547094889896426754318178010021028533184710381236632160374951557636445545036530865343162295445696099956271305084487329210443866151062155205098981735861882000655364985211909328382426498264782032153284948864433946015205616234358670407507124065879414751293175607302564486686107134529162228097261275243886899599130509359179020683331932357142898702433661619773444804894440871613749882835071054128130318973187473064018794599551092425997225787476417999468573188990426499101624643204795813089862701349853818973269374788186294822462608894174806289552574712264481217841421915844541845001980384198892127768835447609171263040947004084176359972533759204227928044556885132241042759352762582080722576612216053460627365611761639754670167969883134610206842197533889980288566216143898298138264823164734074419359891004570886938453073262518199689341081156193466023956911879252400073699581258925012935311466079980510479353844087273833520465611724123194222915435082467376939889663434722781137876906495755746970550743641592796016999772608281132183903314299540024148136325793337729508822137510464654111621438914561267331034794987902424582743410827923859883146866676978919663883167635087434067023368131915848777245632012033785598291069751306468638912096449242223019876585214465791319217943066757697804307188276571933986517568098220789067402090394898559702519502866726419401886712686754263559163894285451090222809072862901585351576094343393413243983909348500047348236009449970729360532243013477055925180615732619583435649290574942102028083471952088737711379975056724790713804960677819092010364657939534728169953529649680697763543879334148741749648795440303152923954718773188997277114859345662769493697112495399782624158379108031824518090445697400230564783918595061865988014501945822950871497939127401346663627719727541817574514790406079195628770900863730405636985048943947662317596536958305856098675205462699408879517738821386274865005898296157519681284895715276140086451105767774514437988142979532228193034435513221441341293154713733278663434291108956449089597587274789827347670867238112912599503289295706544162356093455369933026284690160742280061014385263172409588190817681767747715579285583983515362645511779467191346397675054633174255571154191757389196210368040422379899740647977150489376855895079321125942540719374092513049193881593934000962468188713593538112184087150884170154183482842837239210636109551431468403907315160026641498341085545993355193849971769134768024285574582908679107790873963346687737086955882860906959587261299284172407096405150337893011086827625570512978723550261518226460432018154812509647135383802919264930731791204120778986800761543997383702576801046710656012844124781541208892303403912201586027691437620215282216567373577179442141760096553396906534870903783761792436180570822024313562909592178252309016947933695324810873115773132054072305218107115637298666303085278819438115082126406682443929147091915144930637985062979820924801609689947184070601497251011892891425008907238038190974970372691460789074879714174074515316651283263711575719311233498421012811128239880617423862501476342073421492622241919344359935423834481219803387361872411535354415127077575997347534033253414021769454573002493167079669217586239004671739495945508918216311679449113420418321154207565743935198889271440447708551799710525774913672846359689795958203496352742691677818244156466716194493510637937394982148475116315688038847407581092630180736582328565262994679264754662810410372673996400748809876005428343740286938424349924894230854276329410094805308745455552438025737798522863542527894244765973509932647666994134559413840176214428695248322277085235570994351449182628630786067428782353434612543529002127744081806664350087921944769995930360283211989958042027015178043843758841882371217294647186302392655839499859193989890016905524753291566282683827437483672570883690283611603437509974394319467743205804423668781322911386223848806887983417003465944587022550071337944444648660128250504355007028663042857500987518049906346986091775791823151601904012278903980765940554172173877359154525845257681017873824197336532767796816675380038504630165447549156606931512882814072849030895814963107076794240997505587061211865888773803836603926715063453786452909834737027939743328367643275466185583223319559561393632695605618621473327575883618949332424592128953990115642661105909619301134641728494973230106731956765298938835868437264611160917323243394331604043376885212982257479345263212833247857039442019938169550716128717548119820421066048409110985608223487842095903081200701165247704040041673905026429132253347855170405955671720196308378497826494700961105495457562507014091523459608119799852299380923409511731777196255233948793613271652208951683042950828152996801544236393765812820943320101585545747158406339519751345806894834738610094842244090741883490450287096131987367027243347584463503720896419432276286225039748837128223543541336673402627084253338840698289116630344697130038018032165401824251725798810794851701096337170810501127393024065698369068452616844748365214925683004784667003289745961532652854553442827694694604697594174179786177283341855623220153577610451809985583345767749589943162387333961123692205714327284549761100537693630978223261967631050435005713759547691643906104617681482986474717549916122011225182169959171195238769486937644700838978328740466250028711273852987224310440402291796915469890555592609240156213059404803407294308306745560690198397558183676575651740371157318518234670863876669119351359935946717097624038793289771431953814448273941472750689712104624081910310573076733375350806128401089921399901856756637925744559521130096682723883780009132138492907838361776325372769315679067890359146179423477872178385571014002578304369790782616080374006308107783515572167215469134694407579978288260232985634537049783337277654315882192211597399614180991358300450675096357750780899078445712044309409349127073318925889849182631340195275821482188787139516744232498702690101281378462857682631356163747791336196506344490490645438461145524120233547299780285812029278911823859216536653560868801908345471400405831914114805534622938529384189043343185642175937739250021734064718320996991689468213591974012566948202111944765451155373483676835479454916451007239372210084506053294900539208735936123169223668769696684324686056520315946234805073466502371981794931145659817673874605807574234437071145728249235632007892340512454007158453413506108208900524630328111679712207854551174566607104991047282745054751247746283823362812956154394911700304325172762353357466907838956257023318172857127304471338826725981859918999536299190678486211188774347570743178027332752411465499584539728971418162092152155474057168258339689548776573713060141057415525938618194660640677893731067609636166852792023058992801198329147895291384076094285569515618998530075943076929403229313112597183152036940933271599512812913646568199340333367461952283043415010640996443515428106454531568102914518754188277191706763493697917511803589026866828642023981951723386161496839110251341803281966219845479877854047210642161838196501884215018837388239472573698036413525472358174225906091708529804207617938025972074123984289158284278233384335365704052791759449917429059852733203987675729134787646345841954810872928477519898786752074517226618250054542171943890401968880402836597309240556582431336238715990439350347473403175963142400122722518352944888758106613867705163430550764361330210948433254469355111256757197093551906766599100263004954945618973199346812439700918913306971666222597518982930693823232042356552216042065449853335937454230342118203175464082983688998352648939462342574867694412586722759982693872796201286425206359535369774901096200098410722808816544205648518656378804849197279025305239196611542038017627916651270587714237237873001334846542881141889037919337694310368440498744605042796697866448000329810512902081253787259257812996774495905194100430712764782952288721331606140757315164456687847874598117582606456156089535801959818869781978854028675731171245728991203870871944540575554498269371009359665626808835487927088780009372712455576502659379565821216016358931109821100923140439923205201940767596325771571085908102638610765111921316263261746808135945278047893680695458022001217552697176921958611117499165248056238332247377618694656297927279398278986236902050079272147372789788817330955661479322669794778255372457088757833213114933799921205371069292186970519855893013679921194661680305790814261151846310319399935299096057358915405041300538484299032024813730124012884649145636491891015837151023200434678251439834653453897584313379143684152988011294951349743247871254387893864845103420864255397611502680928503036835522479367853013774549831999812800958206075376129782246349750306481866564722786915728460556160376119402050504870543675172174236505682113610866323679359834356875125470470594926190726881547247727185386922591423360493400724071464948808772555910887762512713430189644659147369739937791437319834384858300328618503700934836013021542499013104783234390253391145626606094425739249494797104061759263820383157306680625164194118339996605727535805352326244738972397702020519229523156506663044512930983449686679486494916332815260632387293324995655807750359302982936382002507227636102097997924282855855947813782077673885475548712095485363969239993505308245515205530558266108868735879760330968339947839460900422294397090026709873368338525033081316323520972727281358131110248249377152654136775653068111651337645116730076053154581920406681091138571154484407914899564602354843070352272634465192852050508486112776588059736347148229999562743992786381224473211643895999703752871329626298433949379281238768508837832236695302636913938711263447110459687936410480536025040123847433292199132583865031720542768007410168348740172534243787047654782933081674761473405842969074673922467749844199595966694400093996621670429235042801909134506843235598612298336230912894071382177778404127805524405900884435529202188776502890348481596362336474997090682776011683994040334114531763381559774753382866126959778320683789645723897484145477036213116571617964014088984735169824405011586768310113121528345370616075038327376717734976299065370967696807322177736785174348080770069464287445795428027959604223942646204952381632675019808895502634935979972803195055751489155507213972291316824518622943165993210916748491916133722523695562886153074427129124562919697711893590232570188899419357089761769964785598463742712792922911529655724465259146947004007334769785564500392363181827508386961200259437514453513686353405637257911997024349701053505549680205029656918888639010916963868394215042224818089471127667056903817229686775209018906320244162513831796361831914764614833396189114911699707167676503589312573647582447302852284951355067353274621210703561255974659101857989278922749814175022006077242211763547872254166708835632253489709258991353051379046130466384998798772003580582214643981609997151089670899542453526843321845947756311010038021450881717073863339151961072637750124628450750353756741611530480106048569084076021655701045938202253941901334027530331965640671720516028221959038807674525825500789395948009859421558888478561637411480282146299054382501553426936856271599993703607464312998763222890431461510208251927185632745338276588136091774953433456430512462479948732025379311080233267771941005534268658444524923684380135982941963387455130853451527349092496056870007694103621036906241149948464672494181811888158886499249859158713098634655494590315806081823329551144285315984692585129301360205956470387193217686429513547766106624168335331109844998908593379850343151910532390190887604390003876252217770638306224780268921385285446249186606203172770979417884911913975721736158360500837070559864910965147307709933067589100382760646964395492631144776225113913498289990270620548027222018791975650016931621147687374310029661727792115261397840379862410009326874450445097843479320618834255718625029399023564003675722433511650475266409206258810422441159151260783340505117899431787682492736078295765009089417647621778932154234777845718165542102659321812021435202438106690723453274404362423940026199170203130779982273465837351353381088276353815612700153095860134587141978008912895156263678021039956017804882840720634911738442966724159447784766672483410459339283491253396764605605141999648332441495925855478911186100350519654737564505539099899017434311679409661914814481578277490085255456839370401447175083301378459631381077566419072124759507703842614652875393267961237448251631899518910030771765015733249814345882457580369634652911342364066869071979993648403306051450616347638939022779125984924409336508988593003248452287304586741544765888620931329158790135356807537430723028349576437963897416402401914122662318784350115911273976411901751893865587800505382728715243541237030376278368218089190650730680775056876089080969775542843392026136696256332305934792000097534946439642067536415510460400712322045957294848529237727462767384231023771612124608625144690551285052995169448872232754077016544770884568394765428586426931993779907620012779454544861961889199202505039011522352770366464948697778172076414787885868352975578588730510363458919647740196337811774324729753671184947656932173855255339472573704680641039625440381115878358244708009098111008019574975199509658788616855423743143420736473892768435327888054217067901527563664622894620643007173980669871449607414981628400312608649982399021305169953897985257634893995279809438513869106119289324821304865701517887181836947196392142768285551388238755419499992442442560677735637407853770325363029802133512638990679327684187904517419612419878379168286423066670398371218597845593704131194464246596026504323951178541965804579680871139032737044400691104375709380555689886282821854341917186985878509249323485195249329311765220386155448418065041044824234095058637611585532126758255105838374535033145413664762626496935905969547716220534981587955365327256589308311246649878340312899590695483303174007033293778940719825009236578872310365607853179318535037363881485698900679893979506438769648814035624567551620536900269228923758819657439993515742394108942594390714876904070522493159699863272735556216925784678886004894163654074271362253383130676150886296717089447418635065049622468074607062113827977670947965504965824500602488843629121685649861057196652012171798598509043958537302540227133814984477645691339920678444894187570129484561607983928437985795205540725418285921733524563834794066351927650144732792260481554903147558416023647239804715030478991571906240551502435466266979201253943053719138979999790087533662627667054628227469445519544494369489215971960946788625668614716903212968875560220866604797426327249563380905927505778748812615762527747639775661667509749295792007278011962949767767897939034129394290976084002996681375824191059157667313712100414230507270268650138129478020112478219698521766246263605699790529929322421645546350120948827353414190702470749891429983000912166391224947738188055153722049862864277279537115720925103799982945634217208706131392000931603156357565070842500913254034509157966192669226088342419194298002367630535527427097175692835352007722578110068056399283822407836320212967368873541500183273966093456238399902771155437787230011210517828663193272176455916198610504982916609098096996224689393785707015769934951356351115635305199259602994548240515850358585168269992413605313141611643566513992550299974229723943900508316385672413682748294033675213001697001443701425222327540800309119120491418799741563330937752460368222094141347732296544347135421361325660106984721984808100502645981384525864807172904611361990769300644353148491022233046805765194446067223987528899422955880189931301541210105924953998103982155568661583349531163763603964425279702478995853177603755052336006715597781360161656026020611373840453415620154180031029136064467141811237779790302428796987421716849465702998572709161956410195825652217138133162620829991588939513714100376551939390409934016785241547265977250089224943428582374549477121280665459986024957787292847069086147426227983013929047068465163141278782284511025773000905352449901947954424106269211023705469450737957926733775694460803821382129548562660683000928038346630737978194007473533575104241472924347939799150351118459817242460503943982042364339411097990084909086849453484745933431924324288725848262130385496359342707685418034681163719044206671052161778915272407262573417065079089848028728599657033376756036941434459069611988211854977314038936563561041078822156737282509040086371459212910070751931756744485426039334855170467671136306867106274114705754952652389353864311205328774920315557707205103197867618109448071727553068397967698361117017499024645492243825089199448473500783971532331402296815346797216848325237180156461081604282411022137622190896071647560141690716474509709015499736083686588972667762823432361689397313225131766195952894280428791043654079161412002388484749926934493147273232769270412028269120388333704802020873636710360976784106948628223753440699456952594737206039320655119537840838635282696095173687282369073173180083695553525167033038905172094534250429823015599028528392433599782876592480185353468450253554180531935480146048837008311291223960584704818200137295218196928847439621136427361910591768165718225116923256395200084201489579597113769907457463218159167651247047286746583441328206002427576934066137643095042604685256071161132903914661420669076996093134856520413736478306434237690590666466750024910040334616908495340989939377344938284586378382895621685206225323246398974510528554137012456571961498731492827065411155977581614542863974498894112450098015548264194991323472150213413146353618990679640584098299345909833553345732083112164793017028607532070548666991621420070804098378223785950765486308420653796070445713834674925262710030453741868408477672231458646505215870649769125499928629871752715058296456993803965309063565734809383401592768706142955868059003289509950918416343858627835751529874778173171948802255223722048671258111170734005118451316981427310028491587046511753905900932076633437627656127089228853994469981008753905074636726369182246550007321958423886918431446752718527186193016613573601205965501565409148198750815727729834242819523274703491916068190560188215117769673543772353564522437233066612191296040605031195517110403250849814046434303147948332931357178686208953364185070333825994724389928599316417640750010861674661289858554128962420957231842484075572421492104909460612336483175366401992250536468602403884763826090015541768332255731638710547023026041938818965930998178690207562837366826288198294186568471799976398265216078808475660016879076195012172140420580700703541451528045066428919370399213387895485101526227422807056158337616355097165405592461820641542400206894436750491807286311193594808415985849908385505552436602345067739471813811205165712913524917041317677701552068043292651767712938990794892144552369664848834481722308477451063664266235152490953604348032745423936284134937623721831144537495870706757631423132875616077751640007236058868553498797927942033267373849352045930917996075516419160082692562809259324281510439712295005526613821168508241242191512196048490534405442050208120511239561245776938845022387102077538289117132737034479280982921102177063377522330884435464688123583550618397532030883183152463541278062205842029123519950995286814067627066709326664799042602491631126782643289958011738662720937546255863714848806133502653988946464434028616138676771643738713109691782777607569075398380730575821444628029016392682565537128213863714865130165658199221871736446022925389379722811219603042657937157119002580793516851557752664827613829792239195081353501125657838833108184479562737765932434815392010357751227024148682464268977685722298088163909149472514584242325800028677313941495101178367862381978271389226918846108633239584717672565520506652277088322611580727766736543491336742336189085490664003118396337123963486212749263825682787043040949334826217975848770753544029789021702344901210762688067495971127875095969987641365333477516642281853640228405577996680358629768472721546071428132161976134756217129594054751057119720636942393579427961801974022220981206963539862061774610202211485463619572304911510811326971304205820360109820819591567043964603709172949578181661075303906230649343423447883762909013830067737048514819929697502597721557519761614659353565716818430697412466185901652192019268655850618080129245049035623796920491972641547598950923791893065124062570646913734364609786894752214835341760886505966092058333208122101885336326705007399311594047816929399220551898716313943015332253346855523171741556137085868352531588341553075388782221758590312973835429928386206445629855430129306315917846343540051377656580815842819752504018784693930884782772227019217598253448018469613096389544536937650492418710960536352599397958356345180616817626129039066774049151500571886302209375761257553732435252212380946180978574091554231188861365524650410078004763315532086195692386436149021197459951619222568248414678520661174540980929195671505398296812178637283061047632633653644102723438401740746165188632804823292600700655396831209802645920798868743680253081519121165523457526460270374685889358351411460982618980181017319377219785726421288062434843670906351837038149200160150264939339336670896064046275499720869168760909824734265002771943887822840118939438701597875703025328064098830360705390421252802050480761514787755049151584314736313541935680032699887077869015262520978361503809490606469263002804540339121759503823531227133315478239639788477091083403294356476459812416310034420501877307329241376373000666140519549787496281090982342417426770972870158933961108510745491203646758771098786988543495435489312935474529365826102915948638522261008748498265714242050484629474055961945280753986313444664401958729113754328052861152705356168079811084065620023338074763416309480112127563810260905938946852152021978879159123771785334387898490220677879820070735785369806902031152683290928690610321610335200963615128675156338298367458233991380594642044267840409233523388517435240458025734259548281089881383282555981356802700705770377623211105095413949300337732629199643429315920472073532620602505712932438021660531755286040749850491287114786089439204345987300972856238293123220859675418244573911547501126435535316582378611797220855204579827070018950455739103295214607329454109302410272577115108531309697670985049516173343864461461903316071419729395966713195440258692069507614371591376652669261127884032606806552754980674745665332142290475027468837316397978797403644668742253175534676314205737614372021815744534586784366213651398319598832255469196145064943789900398697199575010512434567869864142819035153070247100639424969074940007987482224667735505394237884004193869377821338844489411805742488339132251577457355580980637182165601791318017312776296976515731193674285066351076941477662984303548706558404291753464196135501273075791343825787241707125516775373995746173338732590214633288421543260444652151790540838309729790912144951161930308398910662153192035281519678107404750987411052915814855508198977141284862736463382397198683702537380246349135680965329501964910048454137942590241955909615802980052223834124018931898032917332527553093246892830351507848836834007503613570873585450777498864094742960770640956864036114952996882208592255867365681962342522303080833694739873557150819396132612426359367944408371881365028235248699605471368836881552617349645434102315439768298495180618679061892857174867826258735467729268992032768536550575772194875749548067587439310534348449725795333842680385865257191474564200292138313498033226453140136391756111287437881299755447252971374262523749788299403626495906189709195197403108979971441407510723603716515130289486511691220811913452721789517025101216334021135704986016493834075484204154644202665177966497630289356877130649658897148704318480347986222657253712280717003427622254702228544331522689429693918832470490441330566256816397421509687901986088556466769171863321203725730301054630899617613766270853954931246276336649345367189582936976978182988739283541410072415686542125490235877788537183472662094673884711851598862624441161506082584689953398941447295603055553116645631570839893329169163552457514288911542757715090176522819329624530780145764005859645929101397352571566917030230833147374911780602008025726060581893102123009469588665155876413819792484554873244125107540228611191021797078692505262875370766382388001421503018022962978655636061720364209896678090364049126103152761505014551340495060647328173337984641913521361615843028735209732523741882999941584772969033136646300182650840095516522975382796414329733570486976790767105095173151032715863622758224873761678440957157297685710124767949531398878781678093961831221653456101054397102978043437259073819029614392170605758191432115892405270577710489945255987769868432789946578366460154463988183812380178875517226785397671809247596122053068579185004039420072211159779907995039450603885667067718645325945892092991180144704299729557935950195570878234630634309338621554115954603419264271702999406783042755914425994259906309866299650403035611757521765432327621071220689627167385998462279215374706840303140825572737577182173656333220848760333541950864722806442016105723971729481391031188300084500346072541634297186454561796288172444188841634608130505265304356167471431233160263703774707108678438786098250948360955318228288406212221840104565148415389448599125820952492501680948119636267188604806361206558819458264738876977859740011939344796612355281452377993113767153238341388317068947995877673054307557659365259275625106892675926391586029783681824733363949200852042496729552456231165883140981344369782727472881080296220045270622920240476006824969140289083829674031698365503087132868626606198976594185666508010485627533262952217190181377407507756052766502054980826877807452460794528133194200759398099228449573137729750815930408569658032149976123611008569333073878066099394565900520985697002089527393573893027209382664435198133447527939117871427453401023261702687117787324507876328919774544123244560908886975576692413893502558794356978167019067627082483130509654913114838968781107320873599334946783700114243332541814460306314986264568167267695925897715038548140339734129243115589687868334587354455791975503973100899280471125996997335318349475895173858061701052787662620872815004567726232855758000476509228277988668419240052609623474338344348526807398264659376933545615970589065487211679376575886220662802762578585718094181152337712763753569376343633463377042459597724183759956823395226465047884261910209270317277983338983216645873736993139605796820473334048979601433448208201326890336366243759991387291223274711802090432289622806581620107048226350427261259745120443237345713216996413422280691709434994413050586645527957724643159159394216202007548611068402098834456804043474092668922031166366686464356039578093058867138844862776516535567508120114073271897689733143470047013255913950072090484946010244204988659002154794954361215455635386799311410795613072153177280508464848398694317925729129048606214036431012570713826436643433838058894998967920370117328438062866616753631266788953083002200602123078780787041288294832125174156467498854922124834799706694026310394114472263625599880889049519614033422446297848566133765214392734519688746862659727893072111810400777175332803593096078512028310491681793021648608361075120649867831209414121511038706405652627026514345527521869428310534667525592983642201492570671568413460410696845343856038267724049720173947096062951329643393663841726284083449572702955859388906131067492005998449267105799064394018890937918487677905357865407175117219781166296172174478138393852945424999318997184790125748228729621138662051115192756999344602867226905248887771130284150474380363250644626707869559926645995924591250409327145529234037051586083588320255938533211161977921364423773869728773419108100172847381654894034930034133293549978417034692006287416621066091952737971247146812879529546580212095556089038812226747235314728141150232063389353922192224230113273099574442209442674147547501497786078092236536483093943698663667814520425671353714702178452649003395535714606945840183798903681407429660752782596209313832823129027881131592122487028164841891471708618880531240781099298217754341155212230331174248835926202050060571640640714863485012953766044680376187477661920318479543743174408846881829956271690532923739629927306587721649701567775760192536318955705799741982201045552939351878537687979577897444266343035898459513312440075011704065918387377138759476440793503372796541306246535572937827877489463221582700972467129803274487871254392104371387912193563088183814671843121501797828438835526865082758149537512901005896814824823776987518198261419509856849647850048581320317525111289486820112765029372565693178006758507694368411388254955933871662609805743855513586439394933058572446058309574727839197910224816768961022922978489359318559488908848305850340364261950813310565737399408925776315359560084545555396852440854157952869552028692517191510971330537525779856346238927806135797311423161896906245988011489583153053535964871476910279549028562917709522845134099068976993510071577097535338484077492909324653718135814121014685090219247258256464336391116897441360054707560703571052254811634317596854105200268445905031025398883401059410429805739773041867377324422277214338572290636197113769567020300968812658214597807730272264688723166081923252846807644102485197375837073852569837043618915550434773069878653710488189201595981280934614873418483084943172315714027090022671898844716892612784026476108615081587780026331448251406854642043021017244287929641219463316034894709372093295271435897367670149829336219910159612878683554167253955444206596096929219069738070781434881046365421046464106795543977889217417560025320881773441169931367976044936199431392659525433614790204389362261220161650117013237217690289862307038599083423560282934568582408689470169463517468716248454030275409407462543344541172044501747065289660314554365025976492239312167670221899261738943062887069558206253851837272635783047668615055286684929617673086265700304801298910649098515709034592272122268247740150133425367955770031776177598845454380599961273761097362751731321953472117691796801469217200148196842265020404534265262773024113523003836913588652589175772881804050985282457683796104550360359280561430829389221199491266596445981473431927604698863705712343905196358850191331014266826731578288917248516312091966770020588045477013182332832399305053023839408106016694101296882191202364025309530263499399365999533537194049897157405276387773711013899859317121827511116945286468652385293498653399209882903516871854546235286818682527726652282806325046160568225047265269336964717844507949674461961636032395405746114970196942666074599622148538783942943802904921398097151641350864111373321669981578180483964908300187405080851768404834211857072247339019074275148734452610572409940418437147664661630967268102970607648642833014707997739208103003706396347745301453323789590583606081846294883466288706264634252797510381550432553647445650137072379023835934941712199827762517568092876446148647865364048074754516424871490783949131960051459611035153862178609678723379486108976624703985356099348443353343614576079692633609660353230442636369997669404148742818922418960615941039079450592790288538435697418345594916202697642693884068862724012737224655424178930415181461761570132488884032204247647457119701967603382622729622389973200044940586312434356066088649755590315937221066156801968838225191937998757953044298767406144041557837932109140197250707267342240586593539051440903500033893552923334967581169124955278145299794288825061010065417095244667067223826176290482606737086571589387925442146144770868430154615536995722006556602490067279251884335690763836232641500505635315913358195294047079754608023627154941465106432514991078182664526222910456092958399066058673956630867070415146402733452544826404809996180745484308421139794377678276395017011027158809059005355801859821188630418541708354924321821062441455412461243102357761577998207718146917430823243096852885724207736485923730697873713772138315642292058748539345633268862377438442504201176489285066082436824503454318960955479551715125828838091116204780241946875393150568936430458234238204796687410223601506611292063617505349402596459274537867456945112281018875947929409554141593644094970004820165015120677603256303194449922517547440316294668010856781604470911582452431628385500705246058319003322621055133284935964667266982746558261891613307074626172310460187799600352617091960099267165571533601817160664127035786846997574009656279310269157989143328118994442739260993838303922411444277889019978085920422679550286159770972844266337360250880523111421703367062889256557901760132616184992219195689477639515982108801618930534196108029284736983031922037081324709361194829777143753794927273328645699610394750393003255248998956731761764678619376375223301793934410118013545399925620442676374667373485990624338358390970786289894648986011699903550834625289684242800541771633980521006248291300847461543743530147897872748376368101800248578378042078803172077715584213381801321323331281134903200928880279772644134721263446681399481912905529598280433767995360685148640962255290413226123666741998128863833356435576510584569211492475520564866239058333677381340781199951601243651417087550384389033207980721377828264484757149386704613712169277464291873020664895191293137577986102339120188466078589812286818166970052666727632412109208768014344450120205808790224078874157992524471471386475872667764336375106698625475578806329520432205365682220620198106143638757967934173012447119767962595496515160092271303401794428288960554905777157477661256297038663888442259195124563260920854258734303033443237455410661733055808642442146818461905348906890620171902246936446544743341424325241471154543489735227604929493428980143717358976551500711685961506896291965768659483266291870036964241192789322061702912183364859171487009449032482314044081327326047439971099869839226697709573838787102455034192048294282443899521005754918009955830916793313130721293822197618027131318243894565553730128406313986432123044263047052863277783238885173458108535897332672267754245311804910502203882250134142394543282235877930776388199070142730822373604507457343588176193045122209437790352586397385498273798217409320889463723995226239178204819613932645793331221890101573384768860127847497203992078754394118936976991932261637567462101892980550184697126322519760072488101518324598020978018591529751315878594858081273314686519933309699175428165988626017745155658879183170850183123613740739439845504412334144019984984696708490315522314069512607321380571109234926831800173623367481046529174040423928519819912855012913141589389860029229519352799302768259311159719602028719331419035111852610481317838526141400504762427465538156417551835757947818123525598931957589627576347955654334997607859772799710681858792313781238993487674045808408759601102866812410565068506592271473653470699773771223864733993799226915766581174365690766185435415568091255706400263731288595357767637371859725657613669166728399055373359920131284970835217509616429555763680175886976928785450717690071749862052101398027076048144482481355813672835153941183668212766260128650465406153707279782532078000347741084340656437268934613843397406246324664332781559785333477143667215204509757786689708132053812728303159096374240985719074292706095155491045443357903008611079125375298878006755383461574578683719345543846808387331606209891305050629581901028533354718313157974271544448135173248273924402464534512764462549555836974648870635573974783739834694725318282724282084339387565270045285565504111371617274902117558209762444640591583953741796494340862283385616501361467039047264480485205685463684242165687996294986057545389875340520574150147035692759869642009043125496991681566360072861092908958704271667994835383391362412237524545485592535051869142005707399433126013200476342483122958226729555912623338203062515262464781857525090457825763677555561736755732582429303212568799133908646741546909081736992500870985516540612883117228095232248715195252838619056388212949328624968921191882285150419224887564745582682463290599124674175363719594374613879742363888261903887170751234428228589939778955703452114380895456264478812753651109272913234869325011687678795276847131671206777869971681997783995423584422045246881153842463257299043764787670597640058727146384568168783037183840200805362588147063841397696299465553792008395957255891007712756496250411788296656163259288629910277919447626011655081125565787971664683954429578281463620932040556993644492950742600634892376771465930165068033599720886361396606570088541697426625297979290764921158541914862491229394007320599252000245460556826790101417680906190335924711121606796518604726446815610467804556245641012216674959739278603231617867995884001181057151529657015051449203584510324686871704057676372103882192221225939075861198799022502528125901212871235108198650045474833006301937277086811228309800847436081034332234026044511909101799380607632162495254354338653695907353449702232691403530053833584558845744184525338303724099231020958591659046845630753825109224543090329176823382721030243762375706959846444588214105771199545948787436977355384287016300738383320205364624774729096503466049869308372567694042105395275690895696150968700266065412956106607422551280579051470360638900282032968692538181422013438119866474831975161502122001514014238456127641922936002590056878583797854699781822915309140768688327037089905413185521113162373047254191688348607547054166935962957519469142884105922681788189903098722260819991913897128301170868213541804393973604674929063276444932936216638150197595853009327132788109589604659588613488440297149619998735484674019158102794678729567070785183151437687884514621052676858036286770130774422984449246203347425812509923813346482746780624051217984935577510492726552497892625474590720142207289102826713708576326353134152739742860196762082836383060907737021288684131682789209793787294585287149957079216117766787402848510454322913356943966098245877115657017282016755243781989407424145345910830825684306883310128715351575692431529145593008325573142225404572409226154770615096009913706469634828660128398816143342073686978662224572918400530005078031270100753397142786598067750460834510411983494022188950884832479048270289421805952028933682150985605588211304420723361980029718193370165615324126600594507899170848482821944470626269801361137824153412619622434356999462870829147210905100270232338307564324427283192466515271913768951257478534538594784908677995178264341585170367445937517618226033561689308233963566554707567417722336094345675740752578223003585561810159860343991570651402041537008492796941961466025072608060900333830813440985702681089254402697588872123394780851860230836674204181232050313838286813850881602504329878386307948368279839152383285300949228099019570101986959059076862319447335265921529315126863276966501691321405554519957575860507251757081998307971066453386451539413100299873546685668943351429907621033491712050609960349884704154853160291612476793635188878868111663575130256411698225889366322582944208186553804450099073632645509986677458818420859412622696980870555304213413127798824050764437601200896150130455423797719240966533137823164652661807140165521933471270635896341668626835649692837997044299739698441665703050768093869718536372043384338889030870451149042348607922105576805009007076864176912232907717991374763007799612527712836271040909141374309808238842230741363239843719430003193337960039301864186501292570350847597409766822996438342675077804720018409464452518228763115584695008310020274284745593737195613588529601690543587900927273356447421004880289308765217896930916286363582569399264862611692803511709721996771845986185112692702914699803840242630570340690636599667495148387009184257622758828741572751225648645591779132479413263456440658372682677687937353781511910193469361971666922026106276061767130489197705259650668381130454211823693164742769665732783637164668886720828380373664539355347838170978938991362141351379025896620263789563367358188648046516202838188377287474919530375045258483369471598682870980641635723747920371702295495392260730296099008158885686504334394384288138792384472733073332416456866114799317562156114549051955012219471715154360521157571811236325807795713029855100584044999990590343529849445444513680496088261082635398222335708994380354188963499434315258891245706717494214830065835629797891722911416162868954618109074297269717322362999520508698087204871418589412513266175804326701164270281458961198150968449409746190838011081549206955283740860709127005194826659231792770611615245487330219712479329004997636795879500384446985805578935377637518538749227865219103166607139321998194334830641814106112634689672630616421371121020270036062974821287421809953049889364057020917720816960480140160684141104636248481751824114020917568077787722620206790647659409065657863974147500122613611779369174456637763570422830073401226056359273860918666208431314794545537068868691755642942955889332784666485404349932356151405139093164894373326749511264093883454424054436774848086714043168193707770983118292327893889782056778336528553968580778054422565080372241291933297494252433471948917096953194393388183348834366638130734229514713310715642248785440189563464119174158043852972910370375521931726181782209192497652335518062558177531169260567766029548489362403586796241163045119011286592482960724076541083336435541445333292180399312349760837918985184576192287702146315033481436103971425256250848351492149308404292386246071704032557687002854711602811359708372085930357530661336863308491847539044131612817618136860422737325071362220333663200594928344832553513537694994950382012379445783322531706551171350141368669536712099026664703609464630220601730787939529618939308796092282287441003237355800467379783223957298138366592741596165874034990947861137710944087771716960734737699569222106799220386734948729688789166242742696942936751480748654123284866776855768504608060815887022271863866380947284424294042319077038062118358212215402717692428410595655175190514946743650121179465632117858122128925299950560209067394849574471821788607955428931880718015844002232945137312077721964010406527398790330526818465578733530539772144003586591762967070283933278100838253472333960584868597518123722087414171570209037014248818351692967051626643487570704047035505527864671045442998724139866831396667535594231923774237226015262386868660153261101295942596287321537231157215454274959667200628690880292983928556929067785362811488043256148619402458169104816861922422264169680577202107705339863024840001850524448282555954768399319489842706395827273960614551232824241431264637573147696315225869902486431878541442875812238424767858259721751465684791829382081214990271311773261283976144278290213299298929500876849295840437754792022575797673326848489976977099394513336307678265512104275406271825845649849249269314371971277417602795307779764833464287472030622091107201122317305318404193420985390192149645879258992810882037579117311461005675210570880757072472368628756142525170099670904801081813258312051866756324287270354275466590329286921530589555376812171221971025592117644421186771897252942327421112716961362947370312718451165979054241286392499872184203090910707810676968875509527948118538289106026872226446511751752141147484749443711786506599573225310925337314518713042989100688715291476972217657377122170707676686726822359052120449582895520180449738561064642336743378439207478037156165037929127089618983683664050838905006490721345601207353360281546718905404571063816858503525322464855287618426872114499841622355347393792872723115176083405906953266492492334660816137570039978780727794964303681520497906943634615166493799261257159508451397909751024874025663169875453350395432054088383570108112024770092838989438167961483948724033628139262330682365438669229304885795817099872700641146347879171670567385214630645108030738655266563711368432180605952640088650267594365245606921853717599700431435246818122383504604443545832666390453309683388369335742313840181000810593581635370295912567582877521931284025304957536259947985235819418778035688616527069792890684037907652679450853680915354261582242514019738614169260941317100057950168804662987527952304197055942785353045841281308853119212682419593400244301180429055916020460005742821124844256084903781736140367703801526443002570320369088113864902340218898430012809942070853172957967558938671868899930013844057266026180011578780103304238307993271777662873551822661636547562040752941524452317875935827022061650707631619629976800979205219103773477962816582947968057767284344397303186778290806039080355765097318697627566253991346913013803624305890958685349327165284562777550801121673327025856759410667612679352541948702170195220550784307829933526602270924115588634510962325573087761289887350703924818621000966603166219874646117744029703597596645119520165760780225802002886289178413623170486085553012186792120411839842425324820685634087280083278725523266163285310659801546144842620074982784827951630050205315630148021211086597392056304204604222117572182905689192589473250534229844689295863672756406591639165462056394189666832358138816704665510629583955449685513260194238810867155575484450964478765171087710391868687349397674795714159576577289543887221609076498945699162041118996300766528330454124479625094566204501088068216617173043759908506840769013644735381595849132651290327126412376552718362350313659624421614101608276671247542980345732360144359026068278651754128997806990921416698998063720585545102850931561140643490533703175219381720462375824450963139860846565609792254486795897228567838743736202663347792670055866541471361006389942555735751025004448823622451834093407800971765454533459249514817167670087539236613331026760020032440975939800212045558129892085315951625739391601793984336454761940166532041717971779489308312808844668136083521450531780878203386636203724848875801725018863369060167631648474577994281068474433961580891515894241279653802710831205850376297415154166219219945707918918621292843062649646969146655125368030333204564112692378093419174867368421741834880551933082852888988947422521892494999519780449822375579375417272130909799769923257749303691923817755351923628330081596849305962080589658808120414374487124560377110040281601193822956538866303404776897077499136338930044845887995570927316112715299808693459158385616235351793836673435931877048861940047319783094805416092713245872233075492831397146174347179959703366719466207147396945476238655126887360973478137456817173993384453022722487813991924327387443606727420907923370516946547269397037894258062991971370617735696257247116198705999196451292963134863952055856124198126672320245691784049505306964998334823944171154018296366858928101271377547021072094331879935603796558865471361254210128357438361016377418522574647989085549909948413164386515235573666288391884529717556704631019415258355452362178886774186569802561640246043842882280688330451482556363672288304305424326127357565400109988711085223909623684576853938470900474682047974510832557974994590188243887885811207995161074483551430216476730727582045931376275634238598352959615104896124909783972062864057475531931015514427539738814035564198458388420986532996828163026522677909938724682113765662191082827100006906120629904119605833790073791846210745512587346626461683467981338723353091851534923590319289918019992408134077026211663037121118078450512344938355888510323460939855710911468942125138308736502813426156424319241271417789504635225052288817402298049589127494602744874005863341994910168015137376264392151398601946701644342557210657615376072651266199132852199192390506075498102597261862780170502446540288040062242633347643918295974922755414991312662906607934504077047053964650555916447099642229308261078950028975549650471504956151509608394103277260377592516163215770149320044622420672931359817159102235854985647362499853913213606809348351352866029525422811727382295979958179575432652394984059847285986121696709290144893459502373430789821265646363834911695849190972954970946431454962032293334289542449950160122735067511321340100819425580936028293397300498655271002801000103635197791366803285579196567047238868284831865441873240728276034010858178097884759965863459339824837892611672496173854966200610583852589151538715544083978600034341106265255990646672733394427721816717580720288964956029500299988997426367562670451343112422761837218508319835128122951664527004846687007983397377596069536567978485078521076915485636968685882606793141344425557140149692019940825848339742251382238347878009413595288362927012422433107852228868308593875632213642823503650507720845833382095097201454840571266473486718113629245688507609200009904989075812867773327510862449613826205163655751346174689950206150108608372639255103364967861428036933819401827023346997738567866672380862397409189383187338828867277312754091583710140291401475343390806764012149427611187717895529281053317595767536094283296302959344895901037337868024405763928675317561289519558881406418232618497963494770620403315295681942431485057335601334912540765500176705917948978812137206701031315546152882352894391518015732647036922275583966607121191377426427254957203117414908033194942690382731614512640087886565316660834470110521554748944347184465874834265887047108686137567762366555034927984538446720209928094288787218537749112460637206770863305919721724845825572404635486450791724761794781192724075886857100886595130095026795002081820586346038779398524144801529900641311845974578095200307435608271725395520194216950730238950576998326286107247487287197451890044634790556772045057232198242458818026918668074166958917652225749490065051517575523215737493322887768702818943215176930043803499439867416169596527715913553866562161076066961301243000432942463056608844340377926459499569923358997030200311122500600293992236433982737466513314464782803015368526309920809845363694313403995121019215451105023600634453795680521275144705651777344683031361697499121582015532618333682522589626533001051249525766800324446057631519954244497744628295796745944527803204726599671449428624401705786852292485419195805483090578044408896413624096207474781498668555357171039301589049441511412987359806230446134084927061115150796878093867272593883742690223775413414838215392543925637953926947443576382093182447722895971102242126561309917057248400879211407989142893853180180359827127497550394519155423961157337376863204409154713330333481928169710336393290655905716313322714096979355239416977257037049160350273239638575279880701419230207355830847471389590701653603388650901139755200623924801577617166142452217927977073058968426314412771537243387601944348658582394498479738890594006074326355852061787376056449142310837731238879613341660163946552080147872225808036813623550830374429517482533166838302652575006831639703459344816129399727552885770768285615538091194214315108795207312021213646809017555608776693844620112925283865445855741405489124077674555789691977449517075593329942899171546534259834984591044541150041208601527549517227131794222712645634922342216729892723457574730485719231940681962934813501287120483219410671026941757488024904105646874490106899030178321375910983241414314795340120001042939912392695162618750764470756229988315275310623006954755564202316907165705794751668169492796302653677871943573843169666972000570862550321702551820250320460865826408074055484471255548349190341270022525168098759297183567189075919356519934219733875354667412076456773210581223680517670757475863227957205995370061078377206944157163391470916824088476818142000432702534470772029571217543221937295994870913805887423018390969468802575282555276059540608447921429924494208975356926005250789711884155323876659961990158873380685618027379073136922853181010550029209478541559609137793085569825646959882276283968295403307417140176740407970997526597239563676814409552046059826026694128158366237283722176267824630696691584500236485288542802616479344306313769795054064840452750293077618317204608100197693447047568079225890689518591314839095386314523473059679134854766289367399519631642469125328116180061156532260918670378010133485825245139363229242865270875277613981051414195500225747882679681849230886553792436725844781403938543946528922784023400087828706323586331700232624813311317191309093794986551554426879190683275185185138499609014630784725146038430215725302314169987687329824761873278360435225012982452932737428497111029793576310198730986058235848474420652721719538743437134811457903373381094252730529591408172566676741665035378663047228999392078038136140098595886646115351188397133592396595314663865122017803571061628894880349629058747797226673099314420197024034468278553237866240454673271127785861616098908698840175858078878744430518182689524910645581774974068592953450214240868254260067911464603761908860661500310145813965619173593769440162788752570481443872512292981360777677319778415668341057496003880353958500025333251882733853304744491115087978455165844022898974354560841473087296772490038725533717929012009918824621335677317196841625042772786501166268749927704524446120971880929203482656796977408469534669704986279252753492535517338817907255826511387808592131383870776991728511977874654705907727555632681828351910499359793259389491893015107662014816165394159468837232149588240125732330767887817301823976203904397201910060764159225180346912323234729593013565873196103353370413951855244224244330034690552577613356742645653121448406697011875619477172885439319185050310193491149020186969580326595804857988331894059375219401022328761015641847928110350935962124487177853292786455838894741156411202193934729659442992853675091309881149857608990636715032235148054201959401942882864730369862669893617016921237390243804573773696430743732962482334170663184696758592749222401998172226148578113882965814826214509847293622794468819108493320071275203293776057606537908442254482582000013774532131309810654408561678279466295122301138448268519242174519871957575969628403926305599831880668899439892941825059584452190836223754341103895174152771706105728311506894377826007041719988377366330632240560973686865828369705537733109297999720942571960914380423610063831864906661439590265844454837046066176558606788872482960850677823184863973562566106901800791092846925263776952462925125959248057522307898194539781962758848948179261167878664356174836093035888383415464685097979837739602813196405383216921273401895571411999348433213747143258650525472533620471460184284262840656915556722247767309928176929779200960554750241159550732086087200579087855215456497225699627177000417148252328439108196871599605754517585461797320251289949505531033318284682952992902837487651129430761042679084544134959076016917229085321790561068977267159572231826870525328127499462286190199032805706441515119437838996312132982727986675437866855400750890702250651220401169472541435596958890946885869614427671151204930346008749246587501431342793251774395482731968033898392794095294942196779895270135059163011911326332523847045120331145557321862374392210591523587720362607338658799962950589743641321729212347271721128245149823887639405175115169546831440215252500295611683241332587371791926614604167977137398598306557901457198750793815446601722998944099533791034695390830170635752148049734560052398545080989661509769271841646434746088964879769877009867531946238149088957411904756785526154359956358954384333203780909819041365298200636023961944410630838400488738905430369430220884789470242117518993106131333780099774042290892815890707890241598590248519947966632075343541939668319932331122069995351034504120180263593987253420722139627709382509574665453248921964586987452820913818037778963307866824706459621312617172087356142492870664979665516453482155740678470644891557621715700766579050495007744325903532730359091257339765471214433170631752826830302057060026140665227294872529946333341633185294907223676025232278359030221809064294048671903029962111208015424250018167356187668661126541887708802181721953507468019600995512282721363757854130401566851385902954165749538626337177113892446534714528953697832273416179681671044924479154002814897209811027074820703227664316229479439915382931315283140067762146468449232812615160953742307142108003707651645363847623388586066085713559315755112355854378589613788214493910609310040064105023893970129905964429650929340823165547794361170257971255678997488833053926581251321809103494711561775348578704882334462052981271621438659856772236109411788887099888349524386258633183145414497994633276028271816077225076503335042763326536636012782862510180685415566401185091535141277689418068089219260325792414365116654305719524984653408514233788874354734188351387694986982024935512565129987274813593462021248429502396100088009582806561051333754813804939688876836815015441984041681914537720412139651150443371770769764801994181441558779417147329190128069830632302544793804992315884762808307886238102530586965539838273716762384558066352386776453779750424966611497005582769266000794304756669749537831394627575171564485267638838977569015145478601385476999692372032192779964228541833204172866261418905762682200934338118165012204229241235594232231250101541213068217276654581881920738367666356720714318825487195292189150221749134711498379169805284358164545915942834099278514969364223711482024659393470022418400217571679116332795000552994508474892647103869073504785442130179056172973155671224141884632582998307541178519919943037432858127033347643556762130478944470097378734506976271391063212458166806943650741822574514271298376177742910846790364607465127197123985811858937909747475778147738755465332700606926678308392898766166831298235765583811627078700543664828649893253352058284626679520757515843342416860445851789586149730678869978711957034962159670869197601395388737263172850955586581750189627187164178065846017358472569098818243595643487176573975438504259572549136015989915486204418991623089279545600749350163596596621589365084810239817245719949665002791904833293019275592292352172781131327835775451467816870789753622035147583025681628098422956126375300239656981520098872157203145880290215317429694376839389601140559227346630893252181830107378920028773975225868364329273883475742478961455099925223167094424584244401865931005877904489758755416052022824061628711164334631048670026899569550283331631714796839297903410279737142853554164498156773040264696385774371668753156517168497768731076267798414808422554808662959653984757088024564140165345926477998443352929470855772471511252986095931304560867164988954774154931997559430116002544341935689084417592657493624818610783362862133226054726402029209434142517409215316787914683925648731705778670174292740504573388544272754613179579385665576460736951617623945492119242135531942145770709305106304348728844081108261029508416281556170194316024149959347360727869967208849114632837792782329798925274640843362358241289100308344442868659561267284210897345916068309363729330122070361571430376308156818465470780498025222020677981503505982706495391569769129605593693089817170217561572643306653418504172996524115408393123993961295887758308708637470507301576122629349501172622358560015161434213466416768442481801736415046175741463046423415920989008284046334523339078230751137402322984629945965597932476198800463341467220163401997911747905843281977962275869372543170014450164814444566634002583074908886552784364210011314339668528334916891902148541840971058002092769755738849447929158808367217989244219751257436661837633795110771687754656630440592940357709763096227924755909385419016057832470206413390016643961616535021498564776115775697195852951787340155650700049124702603123977171654160254245364039709162149348559444876125633137385321520601326944420210918386569053902068773177937070875969915743491685193068798137420588110126114624422733771544821116244013454666265892619615102793843662012734890683135103413762643909386279855733216331615659044045275286064026679587048633161220186222410176770367914571462465378453589848701276188787834544608783571919392313527396200726267463515575772302294218051806701224330584036704990752064307724741295246962449934510309376249563520162704728733802277038284573323023079964103256025591507608690739359285112433575471513529731535262215036001073665487372020370325704866912670352630712210175650020547686230857035167327770593064165056479099838981974129572962979020291918062364436273237525151623344038419212129494670482511380280303877729907689098527650554285112496568836686976119237200204856187180928054032293813452811847946936205233712140712579070049195351913451909355559399243329914915365008987874439287759991972354935178590890062725005559752077400536755075564681747087444843542872810990245535070731705339816851159289442516449631386997043868999444386005363991962414316406745433941816852862562683645620164359123846364220382428062733389423402165629305992401338552539466216188118683520240398299686609798051342995629539846947754154739033453858721750739929441229573615478971929524014065034030206951818604933470348750635899454966839094296901686729668224557691700957819776587879426306432624632453455797518271527851363756795949313626109863425914655690646682276618584800532868947772535049171679202892819508663110108744085867280403809474065927341929253976833766482161230386754310381808018434949841450373952826195274623937448502290975501291765317133212370136034346094558210463868282598963696657645127873403933324707824984382328758263472673366596568930726535963848686520260679973642373552006675452133539492053750179144272324689125215729259614848660863380568822482205412791491272258128009526577279147727351276525758249773797595222594692267584144874533326314812015775002575766861634522680117542425029630257705093399842292478610708374128260713581662867599159659258557669692430150609899267958832445044361927964325091269111089650845087307131043112194881018658283123514703788942291017413565875269467713542093117165099438657587548119833005363823590025013723581641348628624295561206898197556235127531062951300391437889504023377619963291661759099863288782112077608392790766970858618886103786421722682222554345097386839665924991729719576225248512388484086247502512885938533123154181056759905364875294744235498535931731387306954485580583242966911159681995899031864584467101049782468349837905678902165577882246199407831190035727086851156776839001002183283734826765477765194940289626318401680268017847261829323249322679616461667292594488755344910813629108415247725666053844036546698316996207588611394960344734791630369784058873941190936551908237792104637181184493583188996026799703785981407448968506243831008460194852426961138409626543067649113008170524582336204949646691403500143664159406004001967937509148805271982462256239102320893315822982783472173542839207638545487465905297212252098177295652587829136133013976877958809924791893905755414132908449472996473808905760201372638800541706849554554562811269645742338292307021893348420376636174698704758281324537116355013944851742333256233425681390723038956831818579279830186973792381951055244554650436098840890316507942905385505582747591416492426505829362037391169100854599523991220445185331301619446872604672468367704686016729616965693688573374632813685266952110523555037884281308671465114907201368107380530895316450128533313660918952605367012218996971774474401278577715552185131883420747773134138163102974712842087955827635138430259290510542838060491936482552175303852465417426829276350011548894640437566709911974718718384907285889598370503132444293017582899625650659092505538698694114086367159901414638177583871457252537677387926011739617946499156337257480296306934418348530104005356799481496298446599706537811629923841850337818096317921296701782762751641089349886850292547566654410144322967519475769801825782581563372457339741828356135459212029024994796956818710191488932138448873655139891184426773360393026781764338823930282557116984078231465475067350521512749243106341134483416551996137558062858776893958723973484836634439716999676081193318528718441409140191164298633759255018177622245280651037344962352572248819649501689629759301243513398660454342616408135846477879206616198158600930124492516975358350457202303539259859531335318589558143535251201774425331183270961800136606166101715772240213986544372619185832536732881164918162442850193749623402614684937289064369418672028558296958071471305659324982699932227130445043267416951488928439948487847660286247084839035612809394499494380638714109804631430520521624861473800575440770010166327441114180734401020589650508137978954619868476397011359746288467775686087412143841230867656195015412172287848893340746201845079158299816549889873550050661436370136228951893778825167887420511613005397968539684588016550450161253622179419718640859678869367807488052745968437826868266941361327894603997073621540119617593306904692013087249999428236485518085782269897957011600736461258302137786219497176434474903808752029022176350472550747678485421157380769691285935723351239001937093765048431957998831472420628389452901934765987082727444237988115685352379640569094348699578628481301032035756801468560877500436357128799084733385192842944097940509432239884453987825931125057908553824801834372419046344047536105066406540230849263930048168008423186492286364717372454136865383544376071714891678188369443602965907795567770353814418394908382256179359905076969695554189535891242897417714093764918674605877355036485863746338412575800817959810954011638030133766135216975948929856200378498659037667005782863418555932106909449305829603677167898807600898317682498118221757860632517516654747284688867512909624641096688063278790882597939846797467644354792127094735525949213687819364456365746430424544901059779781231157340143071938038265029487139018475160838226042862846202439246921319175370981251519145115285930927243341806368825364008089256897377616961905802033416950072012352029303475460836445330712039962960850759786153170686918295508075799057840040234412891612202307622812410575659458493674593214401447250292542258088710867388782164436700871366320701753614661583843612997413015654817940780562267264885314112619070000470445409303235868309390804249289319321976956483668900437821014836778041964471816356287793355881529659102711007714910971450356096685113404346616383430999990698242091881696720372998826361538052590526714486741266527810256715021268728859050952181799012825736569408374951403331777088323174666608400239594577829747169931211199528891192005540985916865656243889849310489473898308288366709829656356499037519197535751690732870227410224072379915924732746086173372781999578494816946348506378738580367108496300356275783887116943853258444012405812821909354093323205550395329365280328772701542729577609354503940197909200050410955747584738857355718461264112851979964590820672984629824991662614856159628997419354882466306159844518545674868277077212404743592568098269491896200437151226113524925446302737939866648618022841047588291626681815999207764899275453660862763170470956082221795747289414762057298741634239215175057839118059270952170363033907255393695488126169294181978832546789783796102020853485159010000467498172565533721522683420106773242274885881610325345594338828678049721712100058339381337851460948988760322925813070904917227959839153660633835912788120181494134945392940357728601883377626611364551113083950494829937053992636134078464400287538924268800261616805536540458636461989218655996517702095055034647982171021136115745019521286428990006894201266612175787497633469574949596360906039667627439625160478134107941672047219680809175972946429994147855771819429322686507611447798038489853674372167610522016188546121433704424723148372745722055315699220302880468190026351321140182156290196346029822600403375362554576468317944719389237968040610313071407214084964991846676144253606265774401985037885806084384169739759158647283026484866026626578213393653710154332818264010314672155437000483799195732487996227926254409496872709445875705534090120738639080170866387327888240095328021523410904691821402542430917073662368804562594920119174723636775129111698863934314412277141047893160980258135759421348672325608261242630489215419166935178183851398773147800130272692843154216318724969190191354136353244335008132078338729634853841446684101522192643068543674490449154440501077708583669048107930035052634905617293325815715042392719113166340171773473871351320697920280795174652650697518411380631123989152487435948916904916468786621701882656680666687556820390535083604708938206396979518574034441764996202332178444529890543944226582070583312428716296279107016064156265745275167994887798707277096567590295264673876439711798376882462459031655250568000463191876582200741081190847070889920598291246141264134639055611685652543361326067148608830133461344051125649425198589659744755951088771219256371173647641727071433655817081908491961758072402440289566681108124133076103173073672464440276723918664015159712832838731910032304311513006411672447641983664945871121245935874616718382323631262250064389747446041689675180186022370225482144238621369372448271251347160786706383099860173732679151603157346783324057063268527969046394253230895889926742849648268391543766787256179898205247790611520611979937048166835977856949314612708206547611233554311783157349926978190555092515475479630348357305993344703116612921032559844025697590340000709480225668045657064248036034506175354568558030628075512318324374760495872371815991775620044100960744789485229396146047075159515422596549919218946354765060052423441265816470197690704430281780580350200181862730929191476835841072074803448428802109991156876213329681015127790114813858437648869204771883595117017994317194938743649102837485628109011821922201492863371957046384296315088637624466738549949895098220608218605819878152920012931326097619511749432421024762233131588812587080742500531672970969356184433859214789030389987979627423226240485563247586696961653579722721516719641285626591969921259532125314239050424962478622937948848243011562561965066114057661423166495548773272707861397143240663430625541487431400313750222909418487160313075317754734067724178412866610623487473345162205378713471017976495699584702127600976586430790205155571825074753488790840718524077452580235060155525761363824649130150449628429904029147624005040270559818342998650292001891997620105354630064911307005810970254926482567922520293876662601054410819124450562228085320430879842576931278741678700736421398963363306983649710588239796359803298436180760636380306899623711205244338789758337171255796435060103568222538226675712767526825095885095357679923896215263857063514708335677087854548185671457557291347009242698911974944897825613703343997529165345535271218462369225909357436485151538421414164164210762501549070387026669279336219103867369709430743042794362725535306953416651254959531202318537368266119713368764065475228749264461671591079618030478910350517174049640401476235873672032642913333455084143207968237268976925260482921619847238998428592329922712769168310618614032595604191588338280159315626162522653581121561014947625941420647418211536491035794693054684555634132044182199990247066368186382994745910241965184673651654394751709361714052909530242138851444271190345209694186676097194404936061915042766471619989003897627924548043184818532902394720133101053868985633897749712533463861753815757912477574443012125502666290037615635783445674949896818446743051271818065364445048406795186460806248371601951684840980762717106690487566048017882371772740701465372729625714816240402016513380235147663280172170209550278867153214244952037909157490813441491515893837125225354541591482237518911565041243571356895953279023307077100996920299724751193170055875061954015234224439959021680559658987876660975937914101748217868191852173539036071182569268488794630081988107331321165406788047957768932003989241630811882818178079938589553733547071437449871416139686081566780911170653655216747782296664382547339772873243835004109259464694822471526887144117602564480911755141689748564830052205048097839479652629400880088814095322734625811396309112054007611463662007035575633911437188164250007286243587655352318376799362296189147098398306202727897638322721930194868286073420536777718259066521178519541046654311929361260266219171481435987531923615547564241668949871172059207207546947818488877587164325632479433003087586543142208809083283570775420340351081800021565633269814270722567829320139298091225691800167331505679241440984670061716682847617791087526484049847376941235611898847608456158544673723250853823402184507746762621404028226955777411590885350638497014336255074899798510757230267123018787833510112661047474654399700454305512320649082642004546978573081514688980303442087787742495945369159257540008305270478810829899184141241554856344996522671250219016442149821422072829095991996117246434076172040563233696707607545232946087847649823428004273774830388712122303007555296327713631133629470176644182017140092030809902167862402790782177868314475914490228075963983946458427950208148403006107587584415852633074175826717353634158663850259587566791084953298337067583330481172261883046939252896616031810775413122093190406898365168476311097215432745144083107780311554335162281228121929456264437494488981291432133464525059821552867841255306461373639910523265330060853087785763705620074537737648119388524777897284345156195480153161001766155788219380595055772635960814436210147601177076168544926673272774568272480928619023742174614902986299324050296733296758411882864641124583337047249291628847246953974131206580523532377828192585245037598661043736166635805029146416135381613676105374267148874853026395704259740858445664281370711932550589388700454874980864343945685742672765895116088376091487835066655382359450283318397388011291976849462535564682504055768152653320241511457202842758745472072374922661497087334591044755184083024702807812891242154381521392181307532626321822534211494691364236593107093636953211841720142486412039426597941246048041943260180905815086141365240037172384982755589674714400928063656513260257983659526939456406000223863483108323948405589397358481313543104972144253742567202452011063752235248485924899368908114754063047584191377508345867249933983841791091762959507750368717578679121483540956238751744081810474433177229694197588592995407625881868292821266343905114388534860544417189370356742323735797061241438763047548887073290615092970503384801333755765325269091681387470884362517096957249124522838995539745457899999060301661412560288679151168395289342292210663380424722980579795751458163466011704958667397775191741576329886064981122303217406476635778641812447863013823223560569567172895477184969215115607718456469456906471064760223238716903406732724375640067592624854472881133071987722518473311459553134789235276767553886294637714601406987455473486134842651763731715664707830944385471813286177850072870479680275970655577471851453293157455664887376148305582972765405084836177004421946094718542919061708467545314218725155479630994890363358758875880773381177870817194040417880074856423328108926383648356792364441348380211924640690498444441496722375590511415002387627279440469603910612207557646286390708508702481197114969328478346179583369170929154416981688751526150804517087003172776032152016710487914794872545759935879057670815613299017991578046573548337113532675874716897291808226193268106690896452912220078414565080218790694298842014331972450235148228543814761192630198718357205714807228255307812576120457210100969815171630272703438048069913440074811921269131090880952141922367133568016779504301574451047171231802156366068200182480399913018968790351414762073084136788382459858981707001728053356612491667453001847972560741513588182243045852949195420653747118935447989508546785918672483918901963974876784522959426056828978061391713193633788996086196917752285689236538087997955332422278722322231425773795645790488719524934622174257394706797070652872622811271164587587781552552489561070095222500787433849808988144330415279826478495593231941394428652503661029481940204593493253030450096321731361346069045540390037465946653708033984580216873432457593282014485265048560156224229498067287933681853723790831884667486889720635804045370358569453410898297338496015638525416948278936675193791016607811628041674040205954975618842194711523774121879065351989086174281477766909384274344112562399755009091303870374521635472311299494793521119545030081210922249026427615877161051316008759273436119106283488215851372080216210981011569097214903008760510907793220764863538296073733569764831750986369201885802807253899193381259763730566155956844272976222660007671637732706777476922088266942987005361594177089654445659698618866406532149005760411782313037056418193550087146781974162715543293288208484821580115753982541506049069523627446377296815392246372432059202246871977011572275351652015896257233101423006266382608754537420079702831428355781091008561543959839300940655433240804194469034332030223124878481579298079908834679942550779112318845604837916775311817208687702685255911503559340737592657225540048689319187071149231575947711182618875447222461853395075325104171625355849902840408338581287290155433394125924292149817553245195512810877655455578458204413098260768445190019494162449179961718369384457285936209829212202665562621751417725238454009205956338573414467792589351568028932086975443381137358358046692551262759569250697132072279225343359434934961992965696869286286306060145120828187329141123516336481676718936523907319460174829339470120580825214180647958611505857919289633053228321322250932178483357906288055334464335483961317581590694947745527219275313445707932638351128896064226732114928292936077899678574415573146509082382532864434680689778361263571350447301038295577122399209118077570335465626741301965107519656642617605665339189813245703058558292160336379462208926354957775785128797617188124261971733354993265125896241626279386832866063045407810270092560878900446532672876426852971988739092221740411212119581495906123601373183529157568202703940555792106388852705528589656418440965086285272204496393967908766323402377930001569475793738792105947067569628327056097324088310811440608687440303250354330186784724257481370633147178698945425226255724697367878313596888225442252283040720251004771627979025748783957748963012270500770504339482125997320536376037750134334862761461698225768307165974436648113826412786106479671493369476489593630589405794691569161413490159914277278188727857254537720817074526007671459539682930294022221965763914171016640518532923170876012345340793314831816090011952999584861248974083051179518793948160893466995184807439177903170610945330396832108118935139040547241720975061510539658597225690071593023153058277697952928150652180833016397316190366723864651176762099769581797428273299796091124415461283992732034470284368702033507824041759530496697610946783422983835574037859740264945329765672657699622120575029706979492275288621976272794768907711438955117519160288535140315945885601437160311144986199019216874060429411534902223305164900138279645246290441401307327248390354090609979506544681138214430582628405876631404844606049856553391398938589500468056129586746387149528570587673315373489008207250957945233172230962325840252404641388646688054626292249782992388679534952491383597507852908811671598136982011128288685105429524142702706785551638198110903558839157000953106863811546890978017404517706660921962687071421785490471363880460906880904131662041509790580510574643772705742222392860509417627292543421787512458051047113911062717390041078849292817644215646453602933302121478703529509008903703050672408538286669975966293450605234658115014041746798459431908547399659471621695660188238166869047062705213971099950555615080840451743554008556216495154642789925292881002244740074500490464822776486039494709731449048596828731627796396455773790039450810271472291062563633328746975737113694465303717030245287122978254309990440058026797417614179652843571759393034871431728051071651725480004753808502481555917889888162324832914676195212300876979580073540431684623211113354330471008024363776033397536323552143683191992851536447398108147618500718748490629586772226430587271032301582586640244086013927749984508292942957022648894991366646665911434260545662017879507841775502718521652296297128756732426900887169824538832833436087658965302885253269022228738408505730552203425162387738533428983497719209455426628598714257101263497523601900071478500426678670224704829753531823026509044950528040684398198469371429012037250088619086657779531479103605484888559124524109702915993219204690444950652754135630672922841539966911631385618500072533203580987745967038181423330203101070561958284844505061604804256803368451017802936116873136989598583667132284485599241076973279700852801123808681380082297881835341671094635667474837936210994143865814229283583402241030917518317846658044979207420344321021799657018521074761780435851480630060019054153773813014524574279046072119415946199354970555128231697203383632595981433364947130757886998200336132147499489575991182052600731208645137983620378220354854544821779379187511667997918063039254288390784159229444364720889731589145246827188955109606098992083141886792393545742403808768794037608449475392474364319518691434034127051112858229282479193717684125148064730706344043349054753881281501496474729583588980836575090648539278205996022630747491232834470546318759406017544622990854596104550514516533138232990579199921235557906810659879749335777381081079645313682555466097035832607169024200726466231145374850578247088230401338622455916840076018249990051107071785547631246474072229990841544766664068834170966752279892785121734270636178627770563065089641124478916860682069812686638516453705050999692624626698291576803948609070433046702395748326338757751419341676249454970269964704826914763760650849383679776320423709122359557763501457374115376630887266215550034299928839789019612764189526813213547625407615832594424391901209812297373742092287081392470952843838952323200458462778844592210358784631035096506991388475931738643046126035695199891437863646952006632919298980055662191924929283184948350845952801844891291681016903097066059585966110255814928167822963313763013939228224879256573173522069618143822779333189263636703024942312785340277053596387360627721701258621855115792744308883215395153058500005246222893249719763642525133969801082523221665535455145148477789700537293201553265967799845869847536910282577279528077370465942946122263067084259445558378618559482794048927930763014866343470699910340846192083352055693872754598283010308368398326831104459943795838866577561326425512491367585796980123092277936775847845969521348582000588449758838961414040004452759801151796474487991904961037105798398563464058807918321582013141370115261212603500650100518483430612652352835122259556818297721766425043014533417070851022520248812038831591142607050956628779686218437328144413616550683565122225437164642610887566358318827127337794006592403932636577642150920681705474254470134853918554791371492370918853901127039714154805932174087731746280940893946255644066605353643095544346044741744940785076333995793566321016759004286302608225608325784889185199308759059227678728762461773224158305637098513414853805439659685425606274511993963191149060991205686126852014761668744604897087166729169600307530632704955427054241090623268400238756066759493061680767019837913599839112349958848504393826927658285499272057919930025383203678566258670812801345546657276821049594011753316361994980547676179537471016385731709141175817292443058542153420217954568483757494904266899013296605952066084925428304845089947160885319359308647069090520905528434548217671395556665737700070987848193437830619590945499906974665391270972113641482619754076056406631725194950302386240290113390194318269183595784502063512002039767892930715391449732278924964438933895907381086755066966288593347179959048803678575019645170921725881950878399431582960844592321686616543195026902359876293190588204719390097203153493470479295336038388590612168651903926899831130693730533946444958303133703585078893142688389086301827937548116100788503167374124630748710894773049203979919484028726487639805309523342306295015785074345758976554506839741252842748882267983897480675111851724266396772323043791344468658383663323129526529354895472516541668127449008314719049223235834183936013027023285971937716383688916549368425621248778100298278358719418373800904356457582191125001432944416422783027334464484245000288139262056761586774144554787733876544666298777573293779287394748524492717557047331849606497780144691524938574964747772753086517613738370707795576274517319800770177179066375378230928913873763948960567044775855046195150902290388068226361734749476722268805853645090009765738090888557609204950739774029651797930576070098772510277103201702504407340573460630613705451264372109531776114943294766437604611102810745005228440946509252281997243313704346670374580979583792672765595196298743596333803627219391962369000218453509858887478411177421129151407568769969730744935524951923741604592308440286390977749482126782257600150348628972281428564337046638721359597905689512886044796780342714322815711945086186057412106122038628741344657429252339832392159573253550943898268486704295353475447616100258150858739980412165476124400584609196623427463274567702293197084463335220122581205222208421348626755175700129625612604257797004156089704534959159125473104460458481874587759960152404790877061372874713312847923729227850492291065949072144681963915294214592464858755704300415489865771298875163874408917594213536207563674466892475422410529849329282089288432478718460443680438965332739278308882143529193518209949626288468920147254650275943459797296146889918737102874979662168483228580390176942816196536556548116529011486513756931015698380926068356967162699921224836259839366542347775240765296372735573477690129999460805820370844347934251078410940979023198784380444416938947879311729929858750677005632726040920674151132516584152283439872844325529082091380244759632279914735395318689634109148386214157923197330093717530883840602598747614934593301572057612795710723982903344430687718565102692436710072151695859505735600865343204328898297056299609296450218806039922755122006303085311589234330989767174343313172139626065326092212729812050481024985889657955770615432177007350611886511925497553487530959634479664182717899060362700609533854524197418691085188747753539545945358536381303389124918302316285119298118025551347302488476024254967222863328536438157739182880646557090849738336966665836424508294770982089572935999077255140104154048713019044808645365799013903630010379122245089532739847611816154105816386417220936254256277071345775991636216662901191143866918783219766199394011478844532496099127018930168469034536661476545454037116825963847344227634671253709259404594658803520915501990365952111818504628475701035653548970748343189529854741929898754458782140606518452410436613758307098033264651376727397923507796399028419566977764465972874886399638532405180762472238794670491667263867355980984848816970195660540240799068680872496763122033369275912591649836791120020239838996962820750407721828263720790479544874513551981287034056013259519442734920933782713538926375859178349062797342350526603008695162499299245610075004046500218126040183145137172237184698441707063647141545535165623534179315833464207482449220445011494664278396744377002132284871542010223110214202106076647262785991744477561621413934216391779658797490743968048206776746110575430668084326284672089981804244157361628158259177203883361911196167581134177727348367764039132000675872801213695361436064996252471244100660727675449994180075447485357694293218872365069479173820315023296225493189285296461813849334501426650777673928182257987242966289326586683531169036118698123426133550987822144905725848509842084679142577232685223187610746932324792362479816903042400776961936391482683705088956878094293386486544701789614131919633397630569422968933141227325546676121042666767789647887477889380081425382123895266123280390534176555946504973438496826353916759168682266828107669687438725147796793345697118540459235486480018651638935124302664118156983652389949986764686958939868407545413437104797209311636197992637085779539381407154923860117092504386608290368137940252970579943950129259920646821411040902437681119437545695844788178528239161670049940931780025902914706561318397240314243927914521498490697802136466066175970325760595275445178474033212117117772467229567936384221947467240776753439177139635364318369170389983978484739529829433099344069917723320259333142954748793568593560718990936313048273845922042563047880442082153769666495518253712681343769777384305069902752094000819018502688711081752989953296873999562865109391916580740387445841210994948259641609490237645885205571249879805928529815739594354689341114939810410124522509469500619704254573470687786466572990720815626877296441294613777866488423355539492524881278640551250015248473127570986136019304191448911077074203400282287884386984576292632113000997503732575252576012180558039767941611020470603236258984331985803250521587879994089295956274339777537100217804738971860875443812179387878397988096044965948531755694340748844317323369233610807598487282161525928495283895254494904030018991168627179775248300767828144583118878713108377529841508725571471028152765991285622757416867483971509615768229427054567845734801906162386758340975494385496479213633533931718096613554519668880966588826191777198898254761406867480733691577123554760853380463562103069445872386111292978880842004521119751707158673489296639420169836926814853305469434114834037742610735248764049618373725235454871245355265283907390446047271178581133599458174246033079055721780296220312597934159094762835989081662504491744752653685777732397243962531722419216579248355583587569163759506395437037192703679267885670875720942299626945711461689476869443794346899329656842866407079553529726845145010304118336737389668053501293175396702325890228482131126640606127807687175023613896453988756535933480121883988831182990552050165763611011291385662825955487856850181002807157259919038508104986070842889304689267977614064580560473086296401906521415546027404188493319230875509513031211460195253607619956284297426888243795800133778049549563547096883577451895583603630394991612205707652003680118492919947158467736955109792128648625083421348381986360399508906440315134281824600979566661146474855044285707141419722288386387374460549885581510225188036935468371127541850331205555915292741311801471038492076088238801197612887133300593639617684498159354890420303858728649523396119781509315912938143345782946044102532059421474946914175408358885847142850689795664029349569894210572087979320840204344565669241715973667902124393402368048069197368512978871462517290701090113229399642614317811079144787694521569681066362606460514060926223421588650729732444271686161698093539329030625631186817179423150909432909288201995622179811348486045607323415060822712932585527561361637435693193559389579213702052472727744048585592298445380733843569795679355907301243878394175687768600589754960337080253362890912327143977304107162985304147145150532141786214493693045430948001661843462765429817402343543196812747954657017769938795085514477770320164698518215324521365598701573907032866469788239487067659516580703610421303040621432847593972819054852354231152752363955260177744352067676344474973922373682203718025753451523729053117503379725880766702413920658148419288517762278050847054775357193368223672031481861593528120454595304966075257651718318297997513221810906166772529639475939477593276285890620882302630333213608399591643246833002389140683542694699644199463389866422605181532040514285074707113615467376687924772528902361458915405898856102150369100984346586710397515806155159388623516097666052693851253746944829885584327188987907810997332211092483133993763455434943425252962924284123160342151664045783264542835024375815316505420895586437224140365330496521965798120853227445819627779128895024979370353371792638994559077363846879797156981320003852721037054606943678628335840708300634315641651892424942782449979475759432615659811985536765221880228515106637570438899387557125197518110658526399495360254470628166342561482094764744613307069007633295653930569982980655812210480538781086103829797746636034801051113130055377979496889355256900542026328461948233968528684282628933342960385689674746728394978071276042094519299712451715127389089302016605830100315540435266013274808624748406169244342212564085623589514298536559944290386409577876806051479221196246713481550458548817231398790980582515953380179227959582465597096505013230192931614595454855235493054668200469147087372045974612937293502133343003220049071075529745997974908395799949951579838762139707337216524068101957248771177839756396872113365188014043475913686169370182404885954994230560349800748465787825954015807539623948004648761415780134583323655881352720763153196616950811786272085096832138811160771211041228288298941929319617292290085612421080356904492479369284082786585231515671313761437389524429536840324207543176862346023067878593777144591062219946478826959726569572138489896469856911326484083310466916202986468450456564395009104030326848538919826754290706172486056028022525901586120743772041497418296449821970346724521705960010687041584715070870287711894204023046605395866562767266932927120138328543102778801753259880320095879032789345241862094331676546099850356224524589945772277532275941877349864598579900949073048932234238140949762014749477396221259218959550864168255972625877079106605733069743595998723078512953331130322689683026967699921667868467763621620338015639243615934161116545735804942451289181800475301708903663610787332408604780255055119767869969428278854933044126867506405016008320224313081509317358509447084355359066765536095778675455719613462978505719852439638370956735018405066924702040234129381735535431527310543610608467259459612286592044653024262128223168681730857103165980700400265603589245720426134178113276733526703811371035422825820519341561433603670708825327231711702464489648475265972782619949227627148914545021168694964153226024724841752372627767724990516626853094314024818902507215301969186409191341313545937449554594661875685678944426182764194847005265627059313403659435230300287899211670477444805947415119103826243551507205936318803139206395657029332514221771645965316445277146320938676350658834334350745834560063197919176838252486336898168216098946475286436461251738729502715126005844083631123800093500685334757120063618838010066532821124920369009397562749903168941319754931603434278341581852550057298048729192195510167485031039402234742468829313316985226619533748801107271987884512000535462360113272724198080104468672570092514449646799878972006988997095908784833470118460132752718861575015165758912850280124058328977096519807438392852639651077403917441164721760351164925145927571056634773677760875210536316142653889007804264722970061108792870386304585376688999138174164656192004949778112496441144950848849972940318461785699509154422542119587442019394790144301647093211479504483279167734795689322570355582624368788422694660398919671329466163799126304455330110080397363224474219883729811979888306586598636932695873835279375865585789418453594967254517284335635412347603355232059474617422690168109337633742749522779631995154312763246282100646767781804229864202541807801626085090379684381727176288250966012379139005678608950701832271168486228646808330851687445398650536165277860486661126699795663106433544987593323899529335329197925306128660063985237669012319683641700658708569275921689552982985298281407273411145593755225366286125101907126409594068037760688461623006262816718220217049247597898084762463785686001572840498349323984725458461334654644675606543368042686545890293320820553266247177594110822159270749279853656233056548534345950306035058621526268553021958993372603631986604297039399162215680349830503603008004414106124129529386968140699203550575406918449726565038825840479552212982694041939383120169161962726467846175371137045457178658312382895219173034300891897464478361586797836844479014445356517083565559148901478722899727181067660180585040494944866904048949125856079841983315658130538533503502146822484926028855962321666675670090463667562552174446019349261102991588938894357105844368503105888567156462088094513201720437417632540174390194085992873771549499714885903234183403159729405852510418487303971481037561419883373486913692225539920412380536680782103859679192387986709084880764592963788980012264020633647905870432327773059782834457145402377078167234457100738396847291461172159147179753367734841231263009918114955869014997060829861556360135889093058562215066363585077113510541296912310647762501814386511314281852904274637409482288158289569602023921163553816971639595400892607160288282144260607814415864971509943361704036976906597090218399443125829752703579575388186385692722996723684941277242486781078670961627384204226368061206871558378938012774743752104865275662924147261736750633446867462983076272947924776104980474598495540948246035717145930765403442576599796326731849340324582204813746586138329439838032737436456352884883046080949433813933131717809398980456175838816129494468046213282400324280883849687120561141687827127270293221135493699325740605807893988953354046023976207263677987512094342688025083425909173899069741439578365406873711841581194540682682184335949466929606173160564840771240890453050728112226820143547486339623287891471042255544596007110005751809903552311143163689510124933039562001564368680962807754399107737881884689078803729657292892908421878954729871158799394882280971151326798742611330502142155810050785815715588705061837900053658469929949929091155546924389839855973621416584889788444824102019937281205819142116948420809084427848912996561184443351928569295745799446729998741028680566393460685647847864572290101890684020920385420934757791442849433808189982650216192874621328361510102594937732975025701610647378475000113318094169927583700580728168869107397812552312172522832500058532704515638750941060935546281057452489039608185601733748402726454272646886828360158615635042122576839062447370295053887940760767068858931562410769728450750206504088133967784187087515726141794901310286322560776870112969491072053537164372881622605603941453131582236132806557591628474759627299287820114588924682922563008415396451523238502863835273222572629382680782806207520374811339586012258785530200636859369722063575016031216972745861019248623575529936302930898669910499277986407824503155197427492370965028126402858253404215023573825448580638555515092089165698794023593023390761044067149401595112536269938167315850772953742968260294128387982866599737445752457989377769655952054910389541395779176421727437882787163810364558654262631701108578603357297552240571422516718033363208361296231033185538496418851383784451625295197827202670332904154835370972639872152225521309110719702962448885102520456080298263155907687629145449724607516078001994748995409884980285286155335133134907890995535003160927656806818521206434707451963791037012305075353523881523295419519749697667163050345188733965394652510109624063261877358910730774289982741970796797911123886836907259127053334366405082744515462563491084833988455319197729209978951006145593504327546009710610880409100295439480328665964149720741356924362973732731369577567159150390303011122323626848413416910872611175280515844521995590071645889510637730027821616493533408826219772881002366560367810030872119940102425923176245181078880263929360348873172286824468747096966870144264500476210336302275590933385578772633189331026011868007095648896886749978988869769467597573458414821537423386742097413667909869653816266495942891386413546639394321086813269525052612552876821784606957800043308749981685509636576438227686176395218989666625148160730459205596201315459921804493182651682105426195679127227818302193333822184425451598599262658073418138083481738839622863751333132340868551853819968391922419083796915628179159343647439944674145992430426827817826055024405460213867584643236406480993160814492815706541987048640381037151289673867944090795616052008615775590972197206410339714009780713159631625669725538283834843157004503881168572579763977531122602056108260960319729461862599114456746508341101866671936121997450131706846939669671370786887459050528275079399625856185194868559854600658226748770764697497658994148311816755758183278989915553212515778040205318388118282717901689593311075496090411694562167779926130139925998028772845408750043240955201660290699127187499274790823331673985603344340464281716891058145927289068756916038680753594901052944144883988883771210941870261249196417450605404900977363990722366200021586808121079013802820573288772476829561516431834006163956104864845580417692107294333442257861291718196347221883554996439516141640466094805166435957530362856791211605320072243303192566421696786635847616453214285209424194014340068383723698696222537430036521846927372391132715511099549348445957860952331466810642198052285923844368538235073863498105786970865285428380623634266835701447883157694752931150805510118804057740534894920662935115937143927465344843230211693682117614424593385297443368660515662532915755390825056926579567467453735842209909440008004442540610562669397636785101257251798870913227861298927447843277551610231969055867612154854675625956842469678364748784892127686280504512129923619461718896329083885761311735535054851734806593914166585961323667336269469235869706023203683930054219111051244485890035440877421583011401410163475597586263218078599356234198465428956709268242533229889677119425588042321410208647658241051200145126996009989029747587263619706055811674832737306800709963159531414818024478070232765827036810276488905464401974711319303307444103319976704406157047630972036730303925088027079688040245484600580538211521404790239164842822498272334145975946503330016641083877198553313990822339999578646017576079889837439543961028340545040842902870973067169383452033290148062208573858550028634318589151969469971124209695836475998045052846677603488046865070872648754928349313143566701089087792942712318598237838009314733426008487971075445093922625515732775414062935226150630510826754448934584455178975955675723567507526783955392372526599496195469543974379977620295313575588131222607566787770740976731514117620824630531514745721017304863191441900102060052303083721529603693007395178959349096072723371462830082203932523406469894009517721944578908467383696641020112060667741526357109336119989604353585995514720138473611316673412455178438811064163523974375157880662113100991520175271793691314025774856085564803187723899063157396889164079628506366541634394285261725597053610580209259116596055705617555858498169204308166686319343315373011179803337141317695806871950440805183928252395537803948727264541637205956341628988411611196377479477194224769340028110655111622142523395585920075949346656652023110361184286893214044288506122440784209014774355608519251841077003722087611288594710741399135842963746076098651101502839930489422622585593578824703620747414664956942373697882990434588625504538228160820773021419530586606591804585957231031571612754657068748380281359695586764331366739028350342839625384070706166503824954882588984153877044731718256714987884865808945365477917101230803195194722986883108170767029453549527189603013723727901062984488503668079532919629991631894753830922395184483963518585460163870974372297943459503454773040971384278503795008561515475929261150047015299688066018699617707380259908609372369748618967897754471494198618278733775570300830184493499617807131604218687141692537786650155830379292667304683143660957585475220839032881694588200088063667957068658176567294944411838961370379431603840821631718868998048454234296738722194097129276842686813343235504437453965807546872367356548665101146531990201989132920158890527045582867541417607512613499491084729518474988143199408421254668079373606865356926723207727574598460875525359131015959521523651935875849696253575381428005436662181720584437450897010926551532787237510479108305257954888377554244575166846996471094405707187552300647188712539876833828097060864111215589678884559416821590082954732814423622861961512291694123252322506016341130734033037733153643874969274996829651095893767978095125170776227510870054065779332906334368981432007631620132022270472470541604310812738012766772523254658720192747618728248449111063502825265140711454624919619808333125134455241352265282244353605603285538265810736481595400069083461331472549993617158193589246786875371656147940986194354209471420570704879657200694951897567859682650691283482652411456712030244741490671379891679575646843008222804669012996903393584505859632623953062267496731183862672060501428796819504365638926253497641672962051659991860536441266677574615693546385096125027118376258183836192968258258372699891805351599276020584788073374784479821570945661704455429844956450494439498725975562044876709774066463641820350094057692347496593175809619339511156193806747804856588163547243675620094447307313536587465383010131130148294893339977624606510977850108014454468402668032778053608319934105997734413792397451362471842555997668934393074840064605459406647189094381718968774782922017484838213936382807004575614636126674093208844414770258502300897069988138856045693725544203682353276455148492892258834308388624794072775805684735284973132981113818106844958014085983621168566319140720784233607307297233752051373568440439402557475902559442568210774979069742546245926697872856503355192146620839863656032989694729816543779527940043559267215196160325794666800192765042089313586354911764835219906079847797744748621295927349384714158359914254383900187359214857939220198826237055152627050589481818869952850291986540027802017396460370289375163601218070178205490930876891710926870581747970532194630049164058259748221888856228271957519112000129816624442317871048772543966773557886135213523089686489925403058748786072765206131700724083042940742809201247778506179319853058899260958598572643640252273309149519204490031676663893661799103052794407674158268818720318889064449139819966599600562546233170121591552926805433368894661773945645791335777918585268558303788016891426054914564024098771981690224074125914621543465363342107837243063451273024320957831871121860520355893695674126951576096277788686650686710352326634604918252199802324649232881963398365681051615616035627597567465090929998963544535845756635273799874287652490549650126967675965385912216533924405094850392633849143552107543991443276652373076899323333697882068849444071385968438526346469914633378709620547951315422598932809013747149327685331724596502926893240237274136516804519631754966728616793156682706337485111554481459816947686686495305882377582701283217537758214340310479267173027681329623263510506637726768547728655180102590685387893110918255604401949906708559912298853440638779827957411186088356760678068161523426019884726023887386467280958530799435621943274241602573329838806742371764653909562350911025026873959773106904514727209705775048300471582031090489503771593390432489232066059782157666686669668878354690999678703766954579055883459028481786607574189854615336165553922532828119732376415567074859931259140951588321782764469229575956015535220112258764842981284613990017515063738805595811604291509109961496264261904263716236652023484530219457516710076164815128069806180316672527409584355195796141049791261235939618864880008788751455355716156195574271898589273044507099295433104645083565039621505781056474113319124477250328514297094080100428055689403998470951225606254230174195800706028838881385065201285782189298653383313084343983975614872394237085654756306254935328750141165268891607067708001260188803446130978405896935476026718835902833798144348624918991513621810437131309006833139352655700070515651687900807041820621694694312750967351973772176933390023149312290961976064330818669151692266228084157776709845324606919386857902101383815890630762370686509468310453046972081765967627046417032864163027551115837798707171229958659364866093988883824863633846182190662435186823479015225054767127711148286980363465057112374577792028030162902159531197584654790452140643079511364572704901855770493987487410689651489117411099228866528148802120355009770516666254733904634660506635576041579014214121840478378264722142695892730618822538775741358625904524433934651229775512319962155088526534577493608621296837391190738248518672219705589619227147294579118372404171431276194392755945278336551828085149890853687647682812961154622143450318167758321967496476328787349009491203468302157789332166723236013907610647284093196464517547111830109847878959956701767044602684926443478597980397696843244521823532475695875259007269815568668242931125051909233971318274323011279728158437398356651262665933933236457737211025791184424856101127820722716751548640859911868453924002809501127302596307380032569777172060232086225564626660827275398875815516135376464460178247551448534194851196135454242348740275880440428152519062395918047935802446007451799993189834317493877288793600802835444927253417559586193338986373964945866801670340984267331322988249150133276473644201633464310593893932498491915740008446622628480347464665981201404982838288339097092785159886800878969978668179658447114590304877877764229351465524830222357725871455465779495634304485573998793677715583794340370691175959845231034770080789061942710410887372344380225828503400537280950200397549267471162137377809137287075003873340049364760755396284873337117017822039127946881523618411595725806316239200022375503741765854734475688615139049935397695019081975263512381526468209885628364173083023026590254472326087455425288165919351525258552460812700279351115580687921865601957385409325066817136428714768142286516825950653085097049758356086747513350648129947953603782219004506264606791535562946147165779515313969894079253819161462363536756939069596368994904658984792323436862723085504099569435939826788134570054449581079801521210346172783774240403039523194099404398706497532943194611565113480443894950284251877028374722961865993264778532288086801045949091858162801350673421621239587178579878018898547615119323305991576608847548503677943770783652089314492708334237798592170051300145398938620002091314631401319287993565645258686474044229888066446920224490073253143113462830640211683625005070779539304859881511399531123641243822379956264930413707675627274244252415011491799333946648400986249235301293350553829872424446341469963630860850732071375182388997922631784607567259890176392794479531332369233934325765278150676739783437986278071921618283824590251750971062376344745271334870750006347830945634314122579220814533653441533819527329915226608208961879408490623589802141226433896786922038009272432901985872613591324767486780483614702028913880477914377243753712116879241977156168423830169185063978736883460137126806878386110574044900675981132441102195180175243397349750785630539675753228378362689675169343128456855594842131323633029275555534526128849261204168531015410706723156854431062025280432311722676909423746642804845567448895254829374402005700271299330573125972777660522933176910121732978940866362081470892366894859317118116327696046332257325774175683621870937366390648516904654304118241697757395802555024678555892097524494864734869578929842857451848041933763622981893394472049104390507442607363828971787144508695495487673595706806744042753458831090887112519461343812769582954660214470258133675412757539102374933136423441566451769521471439591109145334009302228142289625925035274988859844344606884144392768666873460104055219029609632536001540536163466182986737981608031184159475991546263055630692109870689107868106499235785661066742068771823995728255940090870946208682733459726532989043815800592851400974931947006814097698120660008202165415140079781353419907005973780124424386597963514425534911875298086665221755713693295920803754700234996554759336576188152439014831218641613063641207112667602551951610036732128383000489275725035806356668370043113849802412928052685228215282788889464221059538527417071840009769606973921683017879781806902339878665738796204587304622661222769803515945232341035556902041819344140997875379168807252271443161838275837780499030836276292423665103083536899015505103021807839500328032855554367154848355754069144055711056750778165733371309795767229438899726158656932579324091217076064727887361380316220928175264436289173650095036506870892544921581376482404596654083721949248350277149298234861774383254993663484446229617243605473084114698295368891361654707220203682915234646981994622084640668118901991588234184746988340609970287643240286844921162864698363866854498482101215193078558537090883950346146097134574481068486346540160906063052068846525805177047298085426099161840235797036305254760192724272491019893792290176366471558352550109317779450131578332735335542386067951080463687186134476969026734889921086229203184963192625214631298491164252120089970817016595577628214312586986301687806938151341443484857828643157798323482064536115097980524409391444183225845961506600317404431752102830353102631531965687140753230872956567401184946422816143477258000972894394721456902072081567219338215364625626531182712046079034573568744236515772521811566127147017259938490645941566894517206366166994987518065061385473884385210638307254601892193662042251504357164459590073226732686527623588162208856283140069401979932573536828743094286808004764827403898187858387600369251035943702541758438622873552870019912864204667922234416797372130064466075690027081153420174515847708037458387611962006618388139645574234058927934207344984863654076457759491154014033095910167838005855597485636472322558070187059250451722082276969849787702596847744841674696560084873596657674902686184198379411077527639195130181081943086970996919584677087664653369876752570045965144997044113468272739253248822247210552922552546453112512351118724586288673995101217227110324340773946185126054726547209797932115818114315174821294058973448417069443539877059580975628079069547409380101080259940432949019719718891284306088281794559432951413773913787965456605000388209635883763392384923614079074261765374399271386571095247286743218481024404756775053253178899457353516377471294175610510201949982245748804092701378176357986774207025197170873544447351872893897758629965148769690075095932003328170975695394350355901496545796883665777138541404809190340632347684446664132539348636649534656087476390575477695816560501969566922132566144760927349173362280774608307751883014136073316174094358312874295667468399455230113279063157282015694744207309883097157884165810014084335434768846077426838921426242534657167319336794270116684108628560112194004181985472088957329298004372418529769055132348782757445483161031026558052527855354970586268531954663367072110409712110270398820244867355007111691310741644074858737891697764475157811779224609260929166440331601976391988657480860347347667381086959446579564477481442314927294868060912436513579956934843424707272353438345941858333513335982551969074346559981507860231851483539213710872684426264438750990648095873702454648290230504767874145484139767288583353218190911356584596699937194025626642760252323024637871233415941909279054456928733775684277831727017032489731457429412560649189538329525495554693674303859722941722081439043975557020454711889881815855084776655837738817082375520932416462103869217381983390253364013282033820137480861818651887945168450698770488753592965112024847456800899493166640612606600104236126955653277725848033718884173504117032702951903500661436903949914613158937866257217607652121829157149189158323334310096707335951110445209130870050153787875949475546706969298302716910804289099558372294674100922826605761555444368079034777371372601014181306562365913913476158744259740657482975137104764806869761607457279450669869092331228326311455238358274736727561274269626786597270237264622780483264945549701210465712149841778541003520861031639469966409538950019784080317944685023126986793408773752135222962136016921263243998320708394643330776437219043869980857836379933804495263139808988965596157184250374467433947267617461671178328737319344993483882574281400033693921522125431976838291736392216186483855411688998483229355653715454524318319449096947803965595988424540075084462468779805365922523878952293082918805587146003387438071739634689895589445828989694648275174831134168391376438299710795715788114938590341966440769542389986424147549791468333712530717698526234443983602430063456762937243178164651773857252340106543188686606169452750144380677006787549644040056721369007058577546533289440762004580164859783714476595361427989891422771925301041550710259293839764098241204817993174899621278777112448569627017702920552358777857749930102684819976201310366888911563686888471133170946910642184718769460108854531788818046947277523943207055096867082675653164452343404744403178724455104552557167432672091040943286915126528676237475337568848956407826598841688616446883126207271535263237156990567514215284801187334890365743865062012165217349272649205048420797335464029497376143661050919258844584207256648598185209738804551323216650058705572927059581538984969702516542943965602633052654420960434730618490717733372006409252709928445281098423997940485774950738773506229076947679812321678601955493732794017246174886985265618452637336511380096557068972296755137525974728181912550256971294429538705837258915065667580919415490930733804464050685466269453610587049545394533675074587668861074496479208417094863632753771546454897639564049450265821024104047306899933424855538220278337403762507829611407851575562204045165709401099892236487644870750140652342900666189907934493411026431301702221243773510603695787314414944537721882260519006829260024801188142497997974154436151520954011083224078336407462199635439782380258967855291362708145291804790637684462616326477268226342335327140782204209198212635652025830075559868685814577266820802814971405099943863224807611014150724603160405291191688565978652051776753287462544255128780052518471580949216806210602241688748671453984780127558312097436337704608717632540878273793094717659671696801014797748457613908530999415532423248563049216254680684944983173640631884117439776151675865623180128214316789366436201589838999935070807833831254000883925853837581374725031319571212211393239710773894081329773680710198478237919989386589559760949929358141738994780830456927964819624192512670851849392308632525802546100872301250372880873364613139807416575661080684213275743208849872308550846270081933845821256503022630269601451611954734091313147666654697067255551366930608086964319420463617235196984547365750024815290427347811703269740734281671546626221571387021660847550357360608480926053114315941005497705913875990189503399466825783485311105958906278552122223209837895956917737059057067007230004620043257221708331292445039414953775566809264887080565920073491955819882481270983205307886570113064883055502301302884829488834045626312316118506159569339436554639537276041919701286160550206720894553622902696195254184697980842843185335250946691641780161716463907697046523689675685265354547083134473530673824655556659283730181976928137740183781131531833248274958211940899858890047828483077405957625871772070124506611004485783413680901330590032589900217486852095573656358733853867795954087988845917956233371266773923010984992146192820215950261115271040301830308133907267889877559879864130818638871288546905870938752237328081098575860159760903302926903362335862238631659399100078976046653363716808046294571894708615544788159826525481411865152289115148131475231562109652692741394384386169751808579653139313350526890638348426970884112298023680006496588787691145352481729091589272974984459851307644872014180367021517493050928278855564193107809658472270078468652524386832400435651063593141885822192961995410344631693047638108703494464357911316002238000793130540795353358243477112231613265816401354185113221171235162731277441608654364913543625647730937059072639755802432872502908747138982687828263266204358700122657209076998015137434757636295323978248534642619261208760780614427740601893923188488255149058184073887637188329252711423643107201683688801610524138860263607181637394452239209732605666036174292492898608697881835642166470013773350948697798412122992321591675115404544339036579466246351947004011922433002487681958803402758689402465222032622145491010502035354835698528639855105250995638457747977234021643987017112486444155410585544151223519437222384211293477076554969886350757388623586767148000230306571099263319676535942830595309098001181311626528166421404822081191891486749321174347100758279290997235497699454885705206928563514861157687346064757135201620385139406303049067838427318072773335498805094025294194709838197554677603124016187012925550309549323163675918281400743490275840802109269655093879784243627874449568298494986712289318560183933200978837187573473861469015871404003710717325257173983301456009808210030444160389993228557044114865212648370222540234406328055230064731313737267994414520623642093216997220843151286667359635336865939742005032397695497843732819255703823958745241078928628290305868809388471153977743628212869158839569363553904878596099135409181553897440090127490315115869484557899321155125802181951211939115769311625262928029756799628469430239568567581300269981148256983633543056344142254295418070156990352030025285246553630041187363722804246420748949751572142784175074493115560180612605288218908031733785777925608054583082897986830557221471283317318171548731006444370653951571729386795205610035473195391040584857159156653947229384384270753010481503973978241346214163608522976568300918778247471610349638167840097189514971553003382084132255643052753680531999925190474143315193766310207426239098160464476129391629875710859482603652673600660484566095738526144053464910271926552940994945748565205854594765126260185298236005966413221860987593468747119704516989744489126364526760223216496764211655537348939760592385960965896471412364317014696400085024413264243375420080638784570572951238628676948620557049992627651977248939051584402783239816957374379692864904824801351574540060169967250523206076605049538374512485755951853112697656831978698349792181022312639324817943721795367965519211105012088303585290214643959656527527659190946233002609603572366332380910928795536496143186843665208108917951880885546325752737383184245218428876087328596894533797474108355620754986231497856083787466535237289417623947378792748843364413897106989385314402337461712616218583925001456374070378479217038706182692572023064948689610037697060350061904040630109451314765168077721091003984775362137518909182453539326572291529442997666697917219777933016986413110274030740396959482281860105034088785822258423158585702830719123755386512284902571741777825644064803488301384773516085826505769855558930561251349540981837340697221819948998482400834323489026357623092860130613000394136714860978377694457136564877394742177752340570145951919286120266410222758855111072197521763911885378545687976947178236539503064841622043688933850577127174777249761600536213336014699713860404288711864047313947519153899132975449395644447726524055687147711963937480445440872939470863226914978935767996719773785772901864954140814813577022521055539959863290430433400959532279795769011058242099634541223714254952429531258003791540851446768745853927256729774149374505725072997407774658054507404382145568443625431076491065582223682345387797156598418069653193846886671864195696259272198360249523987716358331641250495592712466318184678205129297790012645178425295455205751181017927862327829379718155646092219251698043417049413377631366541391525526110552006023604430848721918450642137691813863222387888969996522415690779854444443753666579375274186969376084871445416237847758875937366550013974109035541463656258974368424664235329640882013305059943190895297688644552792133667619740795815684191548034977666684259950261876879787292353194590608229698413834712480503895946557269918160010517835451905454269496099325652375716330199250818057239566572854890470282451899652634071858527701914728031790797497897272133339479999700343417319951747011201022698960453949244268503125502243257134850314641462753635615512966111717934815428518658816262411216266428844143554705905556281380893164967043309097087456599146506838529673670707047428391028064939107256452397425798053483830780111144513164929591766069061328535782400254373365736184745478269444085360467462911778458654914879175080623563546506164688318241610754838513952366671924141346528246056767870779316565742916452235763609241771198140281007519772268216901542240325736914283251483165181259915647120488115273776106357994970573781432753787398505039071107907209591139943860462850301282659430724198169671311223831640458219467500328703124910887219133801119495231249725264871803072317865667793767273878303400042712980581298666519008228014143757538480507576507786315576099010408889798276969223925982376597707473922270225670155196692571403783617676007582791078064474313950713525057861183230758525899797157595954364271035552995325976065144517386481719186772119566566178533044214060336265248321591588688448877051505232119601920469017629437647104314407113418483455901215636962780731041050840048659957146520810585869737997251714282420908620408623509786815345400493626502239645107714512662756049877554941176028737687049778449461338030109776318597583176799803125781774362621124988344953801196718036025618723290360798342272235030173745198606787474487429580252553029367353025374883939341139485647900011465223139134317754519686865066351168071451945632301903116067302087346269084456395031525045068584852321474848248975954452227744957780229901975555724425396994184320012654071105419981366381686916500606680822448265730782968388541428157940584830604122802660948288275292760467230302676566705187264301852663259287415312772824914833457074753294181882130338602043434217141263281343778237073788778546677023601102700443242446351119830110260856021773319300069844587397998432812166304224905586840864807677221661559360292698975976911189959810996153983667132264355154358840684805360316470444286894262953758282789039007415004744663303266627225584642223455424362150617085053741006516343843081754375806051609532740989794778598124099777509907200543093551619758787966677707126058441629710973669423634480903456594757465788680696760686979514722040564149197936070148148762656071849438445735550422374892907836340970925228978358879778144440962086739150438234956859127454435402956418274060779497644796126489819417411299821418335777809023813397231847057101382696738884010080762127460350745358736400686190195816760863401284763341745968718267312433649827282911041317395920429033564149151171398331880120302559748930032344737594268520419944820162250446767610883577012655275496495197442716528736931954423105888844380228252309710244689495196642818834312141403916678326077657357002406072323038818089526338763478316077505104192065908763556993294067135607004390944319989878523351448297199765286142839287241605953511914953142938585776071757869099126630510351708766259741439745437116809717388315329725136976677484301621813840666767810056283201776630028002380154813764746236044437027551631948107949984828405030398104207656091401575990327421550058750969934263790264536128758124731044724951744680956992716121877263845077694826704217430845122953646570223284401770726317730485872401229453205081156408494783594593560739753491399545823625797115784930040258159336503241482445511824636867901065115073528973518925691158074564375128507609331372461128889976135924648522842709126424773119959032532719146207159130862995814614230094174706953869783999915919294975193481924444030628450769169655973514692182608057873458554230396450979910620868774632653602217257792732932183886564248702540098054105694639019502519389026988990697265590645214097590438638749199836026508671984130310847274105719699948495361781664188533003370818201482656364981908184280442106692507152496589701281308400530907937823972866109820951173385879766858604394865149028146708816249683200137617622916647343605050158119783033444278482885017971390331542111811634706976319893717262436378199157024516000040587932314844844879262759153614563039672220446928602883471566687281742514803455980702193926716216332642302020049279908036422513327441328526634884105059393482248733406175810336221409525056775480654379961048429817519242567322601280979821339747341217666296010432975336159603808978834697890071768646009757054860689337923973943307040866534750526414070135454693211580645807250782742897853100167315351412461163456112499233473578814049946363489547702914665143993580072453426094010531747220618249898714419654940546866415787098662129353054195990206904501526652008268502714892538124006571016150713000867994313466444076156827352910564582668119598391247453311380821502009892156673330981721684048551510715171982334798347097533989330513780457277974198904546934510094849770855353983447550314259433976308410190693798199768537497466522900918533387715031961013359499550336449265013821175366506340906380092550001936844324275108558201453610336297293736554020149648387131474466692040785489089257189828067205176969546631557972867423820822472443359026333811884786373804854561310035062567300269760287135261201985196648145888887914660224886847153696243845839176801213701015354957679848770834833484243431729814009192175264098120097004204282283763894809837991207141352240156567472886028021450271569450616841774130467923453160634410663457849776404965200588843363318524553019683204713905288034888402455803106148872025712620417004716571507218162554127171372363565225877551850127878262838523328354499135874950596988901287560394272251882329925921125464896409036129286301901993052160139615374217465355930370199102414831559107341180010209042574465757154922818605568081191346547073140111003575324845171672944058026135991851668999098742466942998095875185879562809775160958229492760283108476258807432718986958369997524047750305438414991352018824826424363243993054103866344310981643019785876056460358077697839669414461799763742516927175751213455793117081755201604646103267417237903732821096955699040990535334827523442858663677529890417260474995249309548863170709606761197001499994708978725237494416206724094680859435413460160693280933409313299387716942782562316355359834783073468381967415258966621159037494577651923136059342116013926519258601254804715528133017430050070739475933684354591000988580124118519114402816987631159107718173200019071849376754199563974291242650342797640569798070046539836101233094928121995717302554281851294705836951558599475169698822554890329317571970846966475558464609889165784342060437712554406929566333772442827463195911725306621571765698938707751074564775331860768666069021746957465126970323544194752599832300012602107037983145842375531557681399087931872685722609261906793564461797250994263774765582270493805412407329520306663203418570399708791966310063225341251722299953387468294956190715113253791497917410904190557884358379284015596489763814093778771167933771934354601103985719818125670670165948983473726839506414344491295988738445036674407429498317969284525243392933489019826006438530231689555406263812849965299037833530444395175904819897384971013850572767288755784956670201037219942403404531417702651234816994272645962249736555277929773231669543823320644842284228509864145070010009684262197678640112219200502236725059154744456815532691276269174015877570980021040316621734329965562109449370389714193582898619833057265948068213758392081708750507448279161710685213642372856466009156922796034986907952364890030308561738778897198852117533612360801024073651976753209130493554070864223514286271840420121497700862686417705416365384676482307161248454291386736793146320914466674189502411481350198250313915876995802834968775386346984340801916060810061721645466969987212657917661171275426635749206961685082293740487552591571398590716046023950747056272358387278453293977687230612552377290475128804408843033627267987519576544387289057534147326425349474641113874200687750057288373770967825871782954282446516876058691795670734369260331619801924803215932000345958464567207892716010738348596446650775993447529542293969166201712262521292420063056465051459979110784001491376502762411700667437121296251201674508390389170468704823761229277647798457232865898637043271554352474716870450970758313527366015469232694203536272214295740092932439886276036657755984027582402192774850634503132829913982034792652466112077744627034768665276565904695451822860414564857260299583896231865684466931606166182433861415068761371174200424526791784526056712974351020055559186903866538147795388752968705424870455128883406583189029442492097131946596598699238234978132551863788568927100479262796811508977758317479772840432372162882313954878599016968448735326066734079736863857919531195804227339246032169292099996190812747747637210889881202661506789054069200902440556773833996507316569878180827624890835141319190559071607576018597603048279616584136607938893627901209878737362408742388810343471598223514662490196197945750198918714482904007642021398747416821924934614041331157496030413716314990880406087590885382178110186270140068740656263544888701920878066505199072554901991850826534601514034504296892802583256711099459941376119107065892129696085901919003335050170162258697305193822409573344542932461821773817706838843669359835501091257074245365963810747823574792896691351478162004242156699560872260151533968869178369624336111699452368453355739935379918776198723652101517250288123702673892300245674790687069282944777589136072908540361356098282494761155523693917938081261033303287665666196648163049851007446225247842880928001236067025616067326936369889391517073722992239001407935571439823204276925989848497740634180610993509617464687203962729376950207497169539661615290383412955655980017954140810043736104494085573849084371612843601952111220674750503676507516757567575558289286542313143335345886010917106752026390076311133173605361107891134337496346652626103220608341072398684535057486174005253649571180444061178485471715358892193968267253145004140353451869654017363181911819436237709240348210015044749644485689263323150700523845751662103218516333999651790300827165996066789766278538988201208076867433552120964080608016567680730928088580978449645351194740781578943350758736356601512364497132047555696821266550082576653048414556954069502060517250245583896557272115054273374091642339773752793115540132035775637357053931279725926803327808433240941275061196034951253303759247908679191975243444668197556953327547603014764186259822046614209839201245620083980153713928204745923583225024662353835026444915199739260041165422888115998540001157346068563474117796601046678940940356130214710112513129514895480337181449023151003849159631697550487113552185049483128840958462154057459370875203586988038108931400981877703445985124165370041420187972955610785001090327549993297045052823206678990040851761894573656258637752567630525949809537441772163739566910061925034683558774698511745219718353911546651356160955871035224625149566551403489397082099512193746170937521487723878179154693672228896966506198416419913437836330285445155367180017051930112545970426819782826598679309287944979092043560728761814194187809717304647102458588672519804913081954994531433429597773654961531250869556268145268539126520733656649547574315842339644009771183885213837694944052699403182524946833933520140772751596962045957537189920611556531450086317381866458520208750074059959292105491099380977837431759932635196834587582139471981479776342761689775290674990837077051872476775627705287047213716274761562559101828879618811532719047182414369600622058119032306062732246785500185439061449859048756238120615214277446460066874857961540223458416121707952847872467163591967519321318853390220662529160989978613807226945564039312347081781002234811804020584362741616665707674402794435144088663609571940320277024221026683788872400179622652619885674063744920314094719059427468806076630982492472603107371188273350519320157483994841641680328420526004374607488546969322333426806613582418144862856505315193792056294725150781015147426223628166624864513067953193888309390661019134017187751884976100262219287711025379056666687779967765311667441950612699063506819483660500174169740754688593279432211211073565793317103687066347547333460165590350778415925636155602441501038233893827357529012570098978236682649837491301627162144356682223105018397721399136491813332460700803090167473918572621454410420259807954357041019320159080560666091710659529709100360367828852361117059191526487681518903162826550655335618606481029616314614403506959618745941893572018077592449286022641915859376058860684981414290473471670935999554131212516627391870761615537538228048573289914137784064000972922553727104585589997403967446991073817970383936618873331008577920872956524475741630280773593375991647121257285931787589619676917055772857851734821865180138385971404672857366133571132812040868998453081720658510099506576964694743688917932007118934316797225556020057100780067556753774306874512323999998336307396729973164064841034194213169048213907323152169508356315038457968726332124703882147912037084792460420910935256001041172307808273273214631054914023269629339829150071284931381179447921778168273423089754530346134268097144151786906918562064081160435650843041656466791222339881326208232339988951567146293396677240600387175909612068726261231368022741242471091422069839593488063154373477589553155524561659135423852479417081272632403905348584012963383775136904175567761169237022545391283686508458950377943016406381555778994939171091149543478026281527164536554965904235592246117104564817477317273997618858480639608428216951598210130447583886017963150678865281982564441695333848156374337472506183286371536083042489530984418735050586035518030192030781606556888487242511368196264400229368984635371830798362565220947007804756653602499311023731971986847032356164940063357177358099841690656293391236474783006744943956803045429525259949142503725523139925339844217223605111333422815371686637153921584898487187817122271455980313746589666886957432225676265126557524707275258460669572999905239412147428638316870077947191367054917938731656385053434368216457867763093309987500128806056923429101974509492643206158599123448587347447510695365902762310081305853718437706666817721430010555971344040556968935662604368256071887684571716193429459529264067859704512956682105655776431332763211597253874903089541812235021976841551800705313866768036371272838971682298012659878729126675531680024132596827236139170105194152716619363448318444373598042369709595921031595487868733753366562524597774090046438743501693295139401473899974692434812324957029446666144171007867597355759650011578124351634082007028916220470203170987351418816786378951151890598233503264173268346287444021369836886865833086423683462124015154821802977449747402994237096700735940862103821594703502360227398188998318908026262730473267921723326565968445681001471754576063970419373412227968953832655103282303088100598306595659475184364361848436940606108272729729837007980823741100825645425518166228757527840706678960407662304475542459485364507241250477639256739276656958533458972020955323439348524073300635315949693762492399538296898969135391393518075505302628872648925170708271211487079873216530108958985637406789240928105440208809816996446271184142806123803941728128884876120825564654863590483568444513644888213556540479667540265259334752183612717114429584924316593677390208571379144744263616300828597123121664830775048742581859297304052696221750011674162178211578868888152470341381080474558337512340242605272801383225755573393544921247117393725469369875165037451435240512895737177409313006763650617901070721633729949062056912465684681050556176079997024908404401302841477567896160530353858533421628885700514892314874628423322316474691135517293505653762551185918303287009619431217629510922488352964012971905091051316237175168020799910156786456384360395526362404966635071051011041193587341305436488329911327200226335881762197581343996588249827183370822961604003536414161550796705238681536263745969570746155618564488814666220353101526642155955488621396311094525537489863890254031997258228178388226348041585242286832582948330750423415022248973429681584498961088423822156831181914544033674194407149925520247243699215506027347577813937910615272099359693208320173779886338638303346635663524215870736942370033913758507748585501340954573092603707617055212125068915466245875375343007420588956509718717345896994469418342557458950326897512546264766957532845776596453172016854239874168844251078335781635221949321292645184074237180749538363870064391251471725976621554809813694944110323776249413386546906350115528868437850886991894923545184260968914776908747767765261442803714834766206640846354402369915254498757466990722421040426133093795172456216205505453270341328080870033982492179203306257962023219581008479727058121163927576804767458573611141837074413738480922281013390019058712241486187839326929910710211629417401228658644430171591312087071998058548322887378410779981502061167631995457568685256450454600759527539553262398859824133276030207552734468716851845826889783922586579824674854435684198285668178681577327016897717505299396919124799028123034875027279413413939010845870245882792129105145359597751550351752566196045952049291203456045364368352715379717690702391697516389277358297036263291475837194672702401832795934463165905898269891408899357953552355430817381302175156222974964603350879635380200749873706730412548921220731342795399975967508205429646411107778466486371098618082416142835632967754214103553692686308821458239061592872299946194177546857733486184386152533987877825252167196590084112676322690374546681510329730015396022964303930706438583584780148504021458447427198638891822530040645902365121739564311287858268468192080007208276221108685527583507217354562680134012875288413150808029313701935989243979129089501625910074537896688556631756927059658332461924386549998559261535216583192482088924571321290361945531897548485090490082489566389578710586398977138952060624515854552875322946119610405339921193871659180696782884625904443603479424171829911343225964353228105681973534366233072750072122647227919079663841827661377995497282252361922708176941879466154799609007808408788490903844559879698920747499199913611436732038748591882334446143764382606444150681540680400323014729996152733433970618021576420351683821856362653616753041859148369949046899224452221358377771609783400196204444540339210068431867015758345028306186505778134280852718432384288044007640300630936158303347754641946839482730715443593516597145655743481869215185215854545894671261353696128869875083767377373579460384183870706197266951251236956938575514986025171952209137745342666824286559600349409151229708495033554857740165053447640943149286161716741280054598408020430844366674716629782390248354141591645346108673458407919960443378450155284557663339888348209117311184692271999505770173177359005842697301395494406228153996275185956785641975912720970195543901369739971182485162143133836750968301345326408678116080530721627072827039635015248273416976869683779801689900583395162465586148941506589097440271450692425999856682467235316168316306962871828623404278161048794675691313264868619268751454234989493179928250488858678854702115380243882042653501709298902490817533924887362945882823855879758183195355344492543001098130417591985004359709665369368740682342259950572686827751202698542811870585548785006558795759358748690405381125118168948687242407932685717370270116663456669295761712675790813358852962448024081912913575508438886528824248082669667200482842285395798636819287764077457936907927396369176334286533029360886907350698421024223424878166208694405836916249854451034146658495506430928702278288621976279894228348911991095835595596376216043170477606507156805214915521941553812043141333177318890609872812683200866840844962897575151898277150190886978644449288254559534046158235953806669275353934988050517055939791030262084131843796445353841532925470536850060075203087285969612031825083108690823703194597240856363899623332678832421631761099815640112117713587720091454962515640116150433402352453920251004307044620740611700645313212713958975248449423472201912523782125754065529886955299224453202292558856242422214927759593306099709334482833547577723120298613169100211936563115030836438415141256195507025431363253201816898902796030405865519443089492015204921604054032010581608395514446026208839475926516171210604183218491203016106689299379165137787612748661597683624365116655789036331595510349004109861873339030242092051294795190578035356839623187320134470395018511270861264391766654044387659420444316042861885673628918204889952044029806660339570924361694884068879471282650296629500134598306426115134116781016377538311894955405075454670243443471516893487586973866518695747166321836503306556695088507197660144334603886904828894613074551514055398327754027170022603279359296152760503379180486416309847885329973647111494322309707622249492740327467967217116656461808426720005121532583219251335262591173005900654387300570701689317821139741086287651788408567483604682299662424509130045296635566956960657307486075432281693900856325564711790624402801304930238953112237362618565131318508849475249374361414677832213288720911286877274521338064934947029559845033303373166821068455447414317871024810782547301615072823889601588658223416694167412037925143269284991948186523263352723799786628440864532938376245495220756293155871789628839213501467404466231537070376135577344313150780699589377118232761047719987239450168912721796824853701028752532592078854584042740556768354883964430180221746069590695952903503732525884890057274822739399931270870865522899734529051627048075095052582077785563090735713423895963612113365890602517719692063148079944862157414810152023521357167894310606939813537743540846185989716071733416460517547319439410315017409093154222100794224519067444268222163861814960724259282533781908261993094875014353492137433371698002435576182699763883401382334976278203510629413313358288762448516328307125714248708200544713387635049693826106513536927433713529991793675673819059990042641564782882773006740354823981401037830159717368395184591217048218816851962711103074585742749501819730030035708710386423158255105505661270139632974836552534168978581148062630871817107743564261987062940225852671227025141312598280184189860678262496606203202408674651303447127312451417408613565919951517041057896738261938040703642081452852921912134307139582340754227335380709306284290110231583634345882297908532731516979325468706942052452057447052030606116500663336259181780206295314430754847661483607113718416058407105015597488124197558239145235670808484106377722697273441487584600417119437409654247051580834317902741382420769541690123596864776122654436751932251177332941621742435791305441824050343832644866502110881918069125649778298558058858839357194378975467370436062983803636011070437829988961752637334689056726387423891879571726623754767536736508524806337799701698639826734942248032020965589119181234902769291278426654006371609616663984355384065779808677490420356928482961871667152776395554444568648031203172418614026987202869254101955223323555847122277875176669520743749418280669219999186641125368781429980654409085495789540365980770724446173489136447975624760882593483073283135278639001649757890087129417207589608902250191242552437834133617418764579947495031648917981439798715904408012878660669931909484162581404929699829221926182045149280281092529679883963708368995118548779449543326220675381203553483903972271938662804870682689682504942044049733566881311796698085546970570004345460204484091548767222202470370037583317783345663519485597773980087246742177162539776710512148595539667561871492032140184012509476347035074713455093189036237023405499248909166263547630482709473104156294595691984141357943372659984113486266695176586637846885298163083465692383481723781504251094111518049534580962509208783724281794091455942957587992910003916909970498819318053530362891044108706489229390895675119762055504294169571900423224367419735398179367303260721785698583164129393413085590725706947382003374941537475664933334303838972368744366687305809747837632920648032979215376403134712018474934360672586519100782176623411519396693224613009511207181299165496751734678620476170787495486437688979086950523135236239921687031314071043679032187784418480397408218412532798968786924700005318797472942378735931849297064109218514260115094709852670745037574736324150230070617174080454696394260760417180866726280433938105914137091664460874479926540186795832624961027527124570728061520149664435881109795385225151917335716496324965354206216788462487835785030239572968012834249039635863864569632903361470112210389322869587636987287288726061070696427666886151199799498912897762821736437499283075409528954804356693142795515181675684883044692040370533029053344828925444247002321016680994245934737067461361838787755938297264181020895592133363511361170556615292189694121707463031390384600111150710375086627572385024059053598447790129631133051290668166036659762518505492816558430347835329348015073884152250104004836732916430982526032503233658897046895258787906878969777399963132149423543888943291800124050534469534347543254853897837833972635504368255690645588268539128891183241615905810073431108010274610076163540956660318388250562130054877650157692401814348993348421727972716913605244751018993696227935399482057653106168036634476013008767014629329640006926119392753053235105432879357658487062422311740348221601154128996056740383452274703314014813944599508265009433994413550194270819142712245351656920140663766274277286109980751066209016767221813268417909295143136065631677140173420058985194283473420261187115005991190748327940873471690806121739927296783004631197743998126285706413923109666789907171018203289609683707846993980038936510621177744218061524741414777807431351311507390039126080789646789670785644283571728527771771629473770433508193537047001459466720358547170594763940552011142193441381620075528957807581210746455736364582699753013608641444219412201681191432804731817559430004622079325176778879603179539484232439560047536164314576207200126108547448127182389857245140706682862422342521546228715418701777778318608897956009432519065697703918276736796293702315652227611916497611509293845866225088114985139627908242571311558402170036801048329790561881424510133910311315050742188120685447979394212437853201713656870282637984696443429585712503417359345504562656854218389585529060744677744737085076541761352577525441462786644654486880956478821490402389373746628830629209021179963327104260350908331036662556790593834739266362533373518634391560118718381345978561964942218625188892409114064025027308010215452656736845973056962129692882894910466694022917019310177813445125956042521356964087558227291862625713626635352983488006326044973738620037571642069684228605564089067788898219712911373691332782718855531532304196057294173518498753015541977663553983243323595550711954900024900049452375519880647226197799589257530045583341311671865916863619545747843683514574098646641104378406036071607473060462307318361056841378300621150078855898199370590135826683561790165482049445879088895114684306224581373642148973591875846588071526807745422059742983572973244786373107266862307081802529879829497830795802160035411379610030243944522799108309962890394302234824968447085234192458223938411706302945344456564112966833409373949802028775706210959489129605303726538218305734452061403254838773326044803479770321897772467925654881260265791408047792015875299428968403634755508076320409738878294923182713119514795578383883358606001506286456412319300239171097189334168137263368377094829807677986005755533120337255540073542807428641753555707538907005241887590641395243080321624873154019938387210014509459787079492596335852299078736780262767460657662392475503304994606047235497567804109199600956084330796945960298396545724613692243815271355305403866179273722404387058759767503320909258088350418495275547742822849249129328833167891019564856119874619072057347909741829498268017366490713975458057312406653307863989108366752676917520319666684636940659235960028741400150262185657253182574023029080602080688278266952017049435983048844306168226530441999747604358077639234104684192829234369331333313831374985387209276713622420155767378136620943540409983601347615320090372010177864914557692538245214087904908509146201753173219896198858784758050454008793926672161179431881122562289912987647738355712713067149930031126446572042797386266227789606135526991528635284793033592600751410854681585170447537705904323276906747202218751942618599082891146402960403808676759614994498265269354555666958436246952579171701403333735328799244567362691194205074219233891441203521814011893966454826746648005189086339647663658624823400725343442575811320885872809878912650386344507335876881400266998431726961987283514508377958953450155814105276959666902274470381656679590485838189594188789720120012594580501909095280039972592140512920117146117765609951195502314170365469465127288035329950457343739988476572239739472498133234113592220460444693593716257841994087367070827822999137563531099698730207692990176842030411488962584180651736359115985224315374561208896093190317113543851794433442189014362465414665592033462023790158711700095791912993350956478130254568282300602390287095083187709027270257324951708983986138893904192114412883833499314099030772212236966565356711980281594427186825885140694173877260460669639826400694751900407543852023913026696336170327532162874548929899496998026901191401033514131415629248163242833729846920794003902322547314377573660959766565097180441313063477290517052311721693833904949623631456605933163485385993731690678173009395748519389727050426670016517646426484714786718572846657205159007752050745621389913695370117273056520843491734696567715945176971034569769674079419675813674778234748613633374039346634232278374811883073041579192628263644501244383392957776767711614127194657907271554084988701867135581106412118658215847522880481684968407160574142926361554441728956159286643873087016877196281972858346982848395640505013457725408554871991941923355285222693894820757738418597983389520684217686185892625647291408045337342484509077729520674950698648303113312415574005089681748548244969598185633510273269520080566922887928378730761551625547874046315982131410599213510581196210279042158945463756006395310556236326090690842681657032734191044246303451465573031741388557227099972045388726013617175311259872838647795479736014191788173667766638756899494225210392565262332468715715248414945536472119428929780917513805280491406933990310530954759017633545696397337365719400965603213207157373846434811645935015908605143341138791436191385704459376827443964867851142514507539070189759091765464367606326585936975479470164326689905171637567969308350046678307599005751122316024904793445631214490476223195292521513530976067750997912132453105560520525882259748860662209703378668723449480748881781441313885431908818132152253381366444215034762090446041845852398427718296129731611360059178221433928110532141496320325257721279028758919821463867463977133185843270604964354190116858630286404844867589700959675809033137461949964958743362627014759775898807055537650725289597976987576945053670433401160128786371166064160718138002584832634688557869853294325908661011877382466360246335016978176790648410705220419554896910696349068170123798691483188438699274761185336866384258601061234728221806294084934573865180506384609490430385500129466813027518552035698149457087979436886032668840848141528088823173077726829807390162014028826040353814642766191509915059520600062401806514795963019865148084459209334217797176706081845448950018133860130436543956647261116443651473652139828891140123682207144635805561105479942281326616480538605492805106777198426442800612744025115026905725962520743801621076261668091666101804353279971593571704737410074503227053423893920176696166312997644876737823832771154100454726110550320136952134793466113580154293808243867576501643824282225632706573001323853977433683278983538493309952677248372359939054345564820522717423900525408848743417757641448629651702371175570726486267890756271417014482546209469467773123767190340051974471752214156718505240448358193330361415543185384198194298409763577960477565001788606015115330494507729108171743447296394358822615914386896351159458829767060382332077746093242560436150989399723252571591306918381153034245688089405751259166164177889764499086255280789385923199719607557610076107436287435056888162546677537496070483225676867311288197129648419019718983836859299790093713070352207991413461079490915099322915987113117799164751761084563641222174454224454889776514405966757226486968198180246978267629519681279504632284656844846830215795672806691834796721531892908272489364102197537964220660202729346097819676826153265592542341834254788051418626585993728548567941018527483967399247819956772720910652966688912717110873024658004455695540791984513838298986490393383503406710365962992365102438929959507345969746905600196763468599070991755542698563233506477761012838094967580991836920237033877144475361152748620984235552183556716518997735378518424400580634520455049384350531260372638813191250935279572180307058555303715418536140081024647312752184407868107838030319184278265990084377297593624565103626765430721076659395138354209955108456491842141004292694039962085855456489444601474867308933901372533918475346041731800692448212787561471983989190064307644808095366980713024256482523392727253679553213011849596302141843962150716763817025168402639006375068393940164315500876599398030690275986375742710286677062714361803982023473035821089487727573652803698551195896607036359037008257892445190503552059372253674039445539090978677943559595865160733896589612766006888668400398126387370748876631636943120894974163601117478993800406844429587906805982294611644685745367085019662615825103831734593073027730628486491273619523873608442831672529463367371482500883964632643052844930095530580341644048876824131585327797978263024320907338525469944472556962477008358864027886325759702152469974148909019140406903610767288480739187133136904583019201384333663888875305449545509143185563616366721607331587278301691466407741185428151063289802741175190012600872340413831309865990999451881091936968467694857022604499106845937533858214513284793838381401076119231148167667299528814151046058526296375471640962388871239019377736679832647162876577040697418756499378897654389805012969227961035598165845002393969241058357689244197958107528819580402227656390613307824668993704678700019564027311295003762360798666921186458255290013724767816632493072065357402262422572400808962751444396113172489912123059409521583740674815313312174872079503238649291300603753920409971354126950306822401534490331344800123161508675637845568554597581191512649463456423838515777547462062661885859134026607267160994671689730424310618284850681260442264131147234236819295078640013661064042077550657596465867855924909788727262630784447251951871677211874360325737780811735738712365912945291255289573516896516304424653875312384612662962228014994019962678842698770203921706053144857495484606550574043328692753774668413295477125286675784801178700395134142830567614824653017053863650881733329065002101481378373255033299440866094580906512879117775042903420003266128253952527648172881888167742343481390758106965563567828872764943383024069128675265659234086267003906295875746143164182154088416852866246695978583385562523862675363007111336318875005392047389928312987582646631608368472920955308928524272776934805923028321034343323124350645845311222442571515259212723613829128577290641139001947572931646709827492951271832717216471887806736854810628823857239891590551049200188358385437592444151161395446273782984989843042241948792892032539093428712176725115365699299230125953166375502352645832365448993001866027776933198811485023786057018967676228584812198791776975398609581203417030875156645162290725672196245426794657672207768145015690880926184857918009550808516936484910694538966939913778568125866965659723993874176042816839988193701552061499646997212457795047078340070178316559667828408317592852690230012250810989072321873896845493943489203823740082936979163367236117598663852805758771396033332963234840994271006880234145109958468790382005084858157442822196345713540944185313112522059490429352653684299336404036654166477125768286021325034574427041626233123846692675266602878801160845757429767959462854131089645216610926670203748578017383425986208514035643142513532383733413112773780937016998912185888970670692562160018099220791432214599148513586138163733176480415744246714175816104517503307539551077070185698946779508205730758962336258771820999387375456569854275899393420919564827190395284450458951428755307042344955594489868063988722828201590317152847586238974583487708780190801694779920429263575125791520359055480063227289176569152896978934486734481108230472766049174199232458396999101275625127389655952212222066197699856560427290738160883086499639722596421236411319841635198820876292552153139370437958604110043173668160081964672969404728973677927161044416545506643760028919568126867895122955815834297874396395260692450269750390670501772271228755953437013147674583416210150834713928209157320905673165393614197031159651545242656439209287541973903236685575775745318632806079267303695494067629318507808130334547649013751573397355982571254945164759582519412966495336681941262706908126096231155194004354403959895848873818414643230029184347235513753632134366156700350814163420919361540775907014212562002289246048425368396503757125806162179848458836694994595007345693416036396687926959641626542365915757876217359572756023998766120110788501336899973481034982328119373277206897889835925177836560975863089130849343120362667290602580012566583609741915202480652617874034086709505117243288200995264538154344093830032457352472069997129374209477318597425101085999885660431227790319157291355170305597549032998892154683909259374617504122288022227825519548160294549227306663842166326088645904796545833284308999965672601943994517811910974213234323315256410541592859409312673005566264848467477140987488567603543195465815877320619430784924485704234326352748526221153425930002561313466595103220569326745802293688159336643627930943828633152633678524944608574365528525828335296354094247444226460185988459400805469184644604855781426086870941470969773689094720047491633620793781803502287494502076976452134350273466196995692330500670278945194741502900936675408602545370434311614849746428016208283527740407485914241759738187441696175059308520497254995086892872169333323518649178393476096233804498438153699409784977767457839536199189158243454137920768277316032010792711871213936419460166086592714496278140429833576070994453302927084836592899822858880232088847817210292755607083169967649368959502890071529891296681721663445211842109789605792858859249304017870600137301750309474419903687760783602477251858288134877284185676822642678801383557593090331731522571751683594674240243731917151914354741916693363963511999729047129710114377796281810932523203194961554157778727567999040092296333144223151473362232944222426995679155156581359521740548342008830855431896177901487982888267942049162624226396436905565051256903143735040668907061609666073335563251541253777954091398712171809201774357189731038166904940853844579879713056326243209709704985806872821295822708195363729714622132376379562705715960405752266441317509179656105497422580634242619237837456127653129970950011666626740105707969582624298982611045145203034793607173372043617881091480904606588904178738248375370327867756888516651125552533891410310376301037132893819967332760600320594096981882809280590089108625801416409897478912879504787234405602221045113324733194337472618814533092816075052758038303074923079400024815410150032340002954418465045715936887005578626909160790341873099795806053505713701423770209026705135453519339855825142644128080917378714557305734176230238633492900503471823363528194662039937921479463656725860242453889606507036341031057161486274313320518534646043718127523876613491860301226545413017548419045557661695103386311125321263101560959366243757034047945480900570749150077480581767067772602637755962944369864256995867110064755046961273301763058375905010656420179734799829832464611704729307370477445937039519009697395223792504302965143611001593958666385660399999364414680859812613888665277574007035847011186051496445225455006251774954949402911443161929653399782868674890632928173382755056993227188926315496037751854513012163155202767987370585140333234380948386070444790162205813204256910874635806821681039863769414434439960999868170450124898703047617884619748539626226583089195242505757033882414989360843473381443023413806036739429552231468222150885415579334750156331358408021587653805243608850450653203148685595695718878730669830249593722982616469851236553669063175595009934096152093290308804583836333962028098922104564183802517175709081108879340238920983351702597465477257811377020952247470467143894362031289090636031065171222379557920996798157277424281641712704612808320282379183940818719493464113981351089952846089771549447876854124120314324891662991768937764209165174416465538257748672468194815008396115990055020381961857213539482276693652040264009923302958517971273088226313347168888669101877382103117441931167157694504055707303108424933049527714525463697453474448336679586310230030382227315839243045997943383906636514642903729340341032562953700414126116388336929716038909133399773144821218450833258744914937080967638722951173004976090176875069280826740022035459477019195480222304215757443727671050688502806232599942416013239936635216096682607317485407961520013206607461409079032292122848936683169969160868818513025460951540606598709892773788432824833687081323094889379564691525662001790487204559883130710826611672736249671499646444867579970160747259919034062845724548843505249546217800275399336942039677056675496705537777581300339094227510573336869232050720864116265709483752318764823853094779832133043004187166475319724842894309483887486007611678922883096392683814298181938464332528112098163268817098630090876142722017255189987992647526761189423937751067881155357091225864311014991737098656392580079110382240704765874469405204267390383705288746531970509762654013661921152706449489718372784104201781278190254372950384794574484427188895618737777929775214850774099250960624626479413310856384868032620868624168730408074096051862838113192329339400038651491291659345417965812989382307093431359716017389863398360568873437719733192963163030347459493580596629892970896901733162799960960304664594595499131448458325449806132218349863633135768526920913617891395984528434138852902461315149879811684989064305883956429313794362119616848476290902815967362957678654803989640324055302933875743820874327558683936982519383045533577943566449291479543791753590211961311955324545047538730910349984725086540474134154280594437316420266036664550409902586651570455091761163997702720930503642054378476270656181686036021518312366526436114470431016944378824097694836601356440622527218236759205318507132455113888851922721934309835153895473738584149035310656570913683739238605966089112224315679671012082922004654163249988490866593121971714121215143653335221627022531220151938319006037459479582059930531427978078898744810662840919031040695535074820303693209628235369471187898308500612276199448547590493671947322493460283640200024612169163029727567395599810825879944215680957995582163210451276794662745910609492219679145465724414224052607538298173547701580631089688066972869454064104817923848102564613417489762962116983088926485687736831318090191671327620496031109876942791939840227645111832320268661634436486300701604413711866965520261339612045841107129513553237419754034927408703183832531656002695277186396655815481008161726887721308566355934781954597815843666446591505649535377176490929994581788854880480763499072868002728405823689321986470543304956045235944900734115247567937946871880089798307416287386670933409119922484955042459572309171582922020488276453566696749830611522561181524022636222655071299933875935063046509872138696723163878717828612375503253323147961451310150331001206422672791298085517258856620649283389379873137098568013401649515555778153364780789970975078484331031038268952501728034771982582824489832751750411477497371325749110470026771319113865046254386247276465776605790992435554675909383951257043681557166348927395198655764983923591200629803288361711102953463092451391384893398182741378800416509932332585868978658639728189792579405148481440330188757069586050003478080484987272019324173427303661851026569515332947129268452805166684432775973930310142952714838840630011091667225227438827122458836395536381568342027296255851241568554076709737837620124727166300824629599353469830635771770192209369633537485517483906723411715031346346331687649709779480269082978026570955086900285416664865301008038477885302492857446633721649165701403701137953428660133676344765385303693798139718831709590147067158972162521297634970458668718531159182119303096498480148101442218981371204627030543484950440220678110156022135546845076464154892162380532909866058100164654405890540517111607468648943536005480917732174545050285268729103778907696118318826431889164591531512731109551295859640309567788912720172422974424032585337213581060818600528907375945987553888427899049578919860994026539387427722201953300998484274937711251481076979046370050376888368662620602846899687743123042069378036531035490028671507505705860378969419103422808214164757247722386134468250179421783809305582938886273172676219362204965796572419448731131059807536058333144500046166278455320173884951060180459878018926237645289420153334266925339438258924180860333810245356224546937472020695736662699437581298528875906789376891152164301058283343545425060081404105137846485840092333470027093638881682233396337521039259449983782169672619483243339854963100526860238447354189916210030690658037497629913386877459186547392572130220593495573535419933556508697376971410310469015682404328618238528709582566596908674698281262867603858309761145171416013166474843817263954495641536494206082438087077587723313731117429331033776144635339518259516141537034412993993582276436290461061161107156274658461025928939286780217483222281479655880834191146601418566005501216735867531347321051098384794763174057798498607061405889206238593525746516614518488177694285158719846077690212014711791140624037960759870873648768883399238903390372848168731419646179777572099870037636805413625879400668383148479822201320947345438300985203925736480208417905383866312501624486236427056692055528123407137905067528744744201965378431556285287457305237376616917223517791300424733055562526549763805238416303349336277303603448716248443728767139747662385673848863582121941207359830120373836242551970284895662611346366830147032926551420269380352167106467573712259678417104169167017490487745003169875673003206590637584405741385134735223869036354142988085121879858246956560591826371033167669981701176620884614064124581580432071088148502493656717610479756693139649804792251863071460648280114173849571260677459707728099802446549135510806353806584442674218977680044261167143449210263968646813294893897695907391959976134155919585178686646763342575349115793877041913216904217456355637224871659295871359447745401001084466621654460553992256191026723554197341154559021337473732671128430446992908959184576364585550594034355085164289758782871514463670726224600746342415163334337889451852950878769916951698075434347445125010486982607407824589731068535370001317373609289867179893978949043997337733016422496554323948582109042528817838569537102156019674998948725444937611803873493632347283133693941821553020574276372545284115889547566679020965461524725519946505027943390467788469182879230744656225056121264490044354517600889047412585228551413843184129280957370546683202795689772308177613339776123950081744984922296160574747388827338450288655011174925731945834219272559854947428011545247336198786632519464244083311068099491865475170062347674649387240222246374692901194903449143928080564440521106307242330978507372708209704681036878690001809265895309958657467592381423069270324501707958768412379339263297845637746184899611251344731481234219711221032112126917876235951013578008482373860970044924776921662000323052952120242042713099346511794204217692629479623018569628535884342445319598098160942631182320696381699997246678861447080628816181258529661210121198772934616124291324752370544942547971736093585083807277295865240245373054604541943806906178785083407521648397403313957375447748498016574336412581391541638542736732497467296223492926593626454673339730961896520109949007567317825290617617005954505137919139073684320617218297026414083105774144152775717494730982569228743005691828547406401847742527950644607823475877209621303580361418120162037257463194841947712221199193943718302507386099231487858266275203540816961973883123625871659835757904742816454218508662411849484599477924168221050271703560438667493330270609781929043123383025116747025831594424790745783387723650447071685604541758395167783078121523455420929834990653538265794890269490374530603746000529042352247751460883772128199494733032227445495489094024242264034310377857759193839612502985267221530534734969500774975102138796966160229523237774671832796368817950789512358037940718800725672704312135097057443041252113685581902867014764404402263343262675877350917362475677091013811042254415248478572971133032437232356037303534905095327200612038434774511422539573279898318682398251301892217114343792064058126320471821018198250547239753645087521377679784507289298701200083440227072887832752689717809969399694065982723055799287477865318758799313730451107218041771858173191456930501781782116538303395291245545991858856914027440110891936608659302821206992827275384456988806483028250576806165836064244581303422406315351005402041868776477797929585454180618523230607935272510342669724649286394804476757238105097274030364397107662504786215697037449578232820932431257670884401386772754500074611941879169543517927798865618779312458332052450897896010517004689117420640397450638187096671430212458157691679019744740709704421425664869854402262784159534888054984466646089798672031051406282991701254761306034907855947835026297354187547841962486124723911318514532957425405604091685311748008457638158786784030391516077193531707340608979909773445869957299758125624540475638937644831580681181563035617829692510296621745818598573804642336568513271092815474687199921928835397136516909446067604674192522350530305746253013909612201309881173705773597466447208249800702206304249508588976703897190711422966418319277924639580628879597047016120701983551709960858311305102841264011416851552512069031912073709086412700349592799077959363609671809312229407375506478815806632537693919501218224882326694213809556663156058223277640506124803266948828803859761271519227050382736630234838042462938689447286198467550112817279060831936652542209310861650606054232663970188778328127460977670821668396391846406179933864367812620251273776027530509329206261244824111599844746774559219922924561044425613728398341575023397727013058399215035432274605348461396598555289599966468519849088441426066651234389382818187978369715377434668821182524171232189385227707447197889958315379790795696685534875161238712030501311460393231152815972540673559315887976624628326412376893396280042055313521795325537949817799164727887815601977802042037287513711639641073500841517597298750015671832603404674842082997209531043248945259459844283214358717776526791407354358754556164253386538646220040783029691597529127183341745752324216109758697669199474997567822282925935545230069301406482445671886024781108544540004576833740690326181419317139200687273716116172113399972269109429851850234513658412227886845874918332006391795294116145283425828164598466068123690512561603989621021889980290133566701363828618853511474948661164071178663173144188065320174979376162236904155136322636105136172984520661621835535047495824039833572345044348784802924384919402651195097534458881275969151917465404100480279413748754809462925069614355258559097231574264732197858405167317509789509654349915720397894779284728174282197302241387209180456302787343295986645392010211000008477291256052969890200620730866901520259033066294407946401119710064400113175899145062873035598631580398416041894986409347214096586887461621252217366983433019032642636436442422852892411024809022304773888438800064348841312717614619946143198359222299318874667505966800017404810743426405656334060802533809329287636070576533021005456439710361097015713087627040339618332815711450916115833636521756648371751366496670753144990288655278310213627304686662357332459907076907144239116385103139893303249968193276276113585129478792519374692197264110407142383693088604463654499471481330985584534908279501699395879769532794295974097034105846840917032416289471332717148270848863121981095965705439490025640785503579823711280463573354760010863215201853027089289207237660312455817266217591007566325375080991467274442588213440580881158272496791085663957419155345543333927009917814601245802357291284581974884427519305774179667219644108330943644170526156569378607183202870641596625558951548006841824231357962386006909216780008341210906471864455788986094103674471170145869047129954828198075715243872711610266647359064281858025603852004620750607205437222731121258665594848603287687079323551407950413876337352216083486974582902626244797031917575277284091651845964872554791912028998954415825015993175046541040688575704574706946424170632783419939476415258197081173259429485493069856248371650693768905262587072104704188955511764768890357088872527211506642229593770513835211297250514326535030968237235269252327931129909689984200340530342067207344528850369409027343337556396071311660450088046483495169377802404783235545286645591434496413127466416705491531696176283247113569764470233589067531894316238290087447767570490362875151108614859181855780874179685901658736698583062294910309388840134261301066239513717074210352152665086736129359014649289385418949814315190745984405017641552813050979357512982763876106983275424403133468834761980577854505129193776311098209030411467390401605978486854555136999620680591597025644130401112601738364945604100984956566497379655375289800230356799327919559438962818477931885692590497861202182584890105102130263792999504044228266012269169164307568572431636025774948342211338297328075796048311009626148460782411225787341979494616572433746152978750972274286492280542149134926341340642474772594083969330363523459496563105295855559570150122751981953315472773454712888225469428230463399865569483416683642604452513892975114573496387005913837370938797726729802856921815958269607472647071647807190252891842867002293832518066494301937834001229557457164620625633369338216142678524605877842716919871830462739827453903753791804910965159953071366333774720168748409680746005266961997945526216367625109069690609136516682765157503935509916411335173927358854910862873718464709305830715340737842365972339580930806354415077036142769801336293326874228999185769406806745844436973226343023990216527780208341705623454639236823393411829936765483864983801950640366521986174020271441136048878826241723562245112082879173052999288579286892017543123394383858720942833520359735269445103565010936472374965510074788531765827041213476191108838568842982045325704469351785986880910798280325521749386287008493084050371917584292070501447440902557264084880726420061316297100553995624220747972948088448489672505247774762899344017092776358463730090504628230197906007736726668010711308043098421646144519399260364400940259931940028754782264793896108180373301038720031256028976347984221971786101992503225723354373935610792299516147358126964515420316161767439998313201512426930595981778323623400927963954969506762427861183403605683797891935240376289340627575115058486535064605135790269277921952757765711943362443600343155056359225321056080922288100956666010492246453804891830695273763199227546763259802006271330234604986769383905725304867725082437256829479135779388117921488696593227558558195213440216451144412240231351509360846196178333077297797217191184676498703594028655222055158610670443001552217635930416076561871449747700859190826180580804470674367238899915470607429312578048050189304213068749344029859106730088728117977387970060856269462975471302084466310174548808797953538643549272831989318519468033656584266252842237789938101310375347928289557166214681083111785100552638026715739667771925942870170803672611096244759443782109562786764346870135591003665337930695416697373334469727596039883190542916241336333538523460068412206877310678799678164342279946670220125790105647680222488927290600656259842831245894618436053314242526671526615644931589963985454882981823848363349973206254229898510253877634023687517034511958924066916956895340292628848954674646711510101152694827909087155914197294011354006806404174913558365581146924769263222029004180800256545859979436443745526873875843802298653547686180087626901940812935322072782454375685276954181352050451931226207808912845073389281951252239504203492499386121233734508624603756540514191922961828825078746575959914286218550905309311054888355969523943585986146344309198185510519917040216097471560353721240225269034841420239438401975267106622084498847009450065668507456190219245395608716203171483065331638314104807801416386169198281092110085933672167398503998952664910687052535803622811468903337011568152652662437949029822068991316498599560368969005279505262885145618474110082152204010517085531491976106513545198647670580443672541307571904950754463609744062609158257160970967797064310949402996804348929216094020565770425574571848233138869716346258840940054106849316444309631197812282209151338880630029370462916969402609881341295078001572461503131308701018323317711695972193411344732175091230171771334397618232821296755869026498063375865398118062919825767615102657008811255876299124763510600177423341449185659941801556064463080646841297414341041252972507964717667677240284906000662796110817922021111533025902135935752196579088351351251025668720497055750264999325350646347462413457499338338661859673853096303330459708177709101071653245391321362950821330865210243966455483379457416411508943224664984052684699006404813385112206684570053114989001379011867096124193266730739282662036384104022794734278400878660450200230118082890761703989743949091855638662567044397996134148076330364139666098282054564139792882441233713346866247482505346048141254316948399553025129828479669875910466124395013353529403643402899616994285362740602231122489842666531855647347911530117690139636190936677246246551954438457899345080659386801513403278027915829488380074103767401382461823910756739724221476341036435545144582928245225638769591666058243704735078855268288489656741556115608869836809032416886231906366983093132267535742945757558160030421028781864672481461769369997569091632214268593157304955888915730950466337207941216117131065947234929094774690970481419200720530023965710862269957644874007727537180360828573047779267184715270131047996954686987638058972546831631274196645541171902071240497303889948336169080983207177704277371665818951386118116518245472054600794664515722770475408811229720824865515824573638113878614886798329549696422368443317656961681113698374914533252127413819636974636064028222740532708509962579471491532367649590396408005205177767865504031977453369998089935069654876111180869839297290335531296518695264210476492865367963455270689008798440305728859037331282031626955525773577804065272417606746614716971835388798954562492868997998743034839605449101143950363797219577037939751382638425729213064210509830786897468259714153827837712002832466090419968064178908601596134529914856775817584337241901890574970370620849392056264821601112647552734539765775014195078105394096782261215825107158310215816259176658830938732796493578543415366213921838736853464114816985923580989674498316103167249319991927492326647932550666665139548479282345253935659668228098564267571604000405158039692555493336049439601873246893320181652946379611094839983335893531798803422107810095158498943627899940861425387758659471182567927019463658659670008537502605917382641631138231557171394058965273712921325726546015901680159417962969764777792492056609725482459121849913145662439808149648352078992166617953158198710409738450558181373740884507829650008419277992334204151920751664952332817784057664005094777059860496252551896012590647479599797686375861516871431425209122995736743629962491175291171149499911759644485347148353054300128554170684657120456391744495659440432123884851512308890099087806728443576800685285967131705370547888132307657470253831686249260448051062113790537663253824117248773179890538236212391290493398370794862280411366084419118685797775092402938769093856893039698073035764764891163667477437080168177285801451248792969750737992546179381739681939293831630918056888538249014337099805108962205682652898957017739787392007606096878311898931102669390427855110706189721687184002108885401020006844334337630237700224330257626247395278845834229132954431346584832429470801504156463000536458161598225537956469696835947990477208048054661925318947906254746582715487332991840557431570234794736114492487915176246114014889936887384266126510410156748224459222479999824983120686706842169023305482138849663351127314246145515731631676996380006619443153629838140417571522762358371120782388670360934558754289373626752417261587609435967612185477897055944726927627339649464486176798563435736454712765737604176867457946789484391008952765379010434267605092719850698204002187263220448689129157793517082672048859246189304973314924144553093361533260921652264412027648266882124565222574713496680021882947757471993173487452950777549695349536872639621181278072716674769944846469058407663606367708568962553852286786394066098027217682977157465722279655399432068062600153441024819420324585051587443759805038721875112618857572788079942131341704875180842648747181447741104712547339081865059141533721830393371235135291032652242031436361688570448326631108788250749092290535084224413709065531295163010471718006566735278483709458676770620431410067436218131013122209376182480218248016282840979380341169797726122170390999422356713740879134183509774938831921664257764955702534051043569670228311782928754094784899464267075301119010164006947277848687750484502963348947172072984534455937825673227342982925178862962197515898367419158931558186577291810183488863947526854958295660068112076534366300694743790235889440867100863805881341326244289427865168289938624197455863893148935568620363427423793984688877313877509002171187607164119381130825855913258641502504753822251929321467804890942034909875794154251052048614045149093045777875021421286212334030262444634238870286713146137391774988175973040219011059429596730388562292969237190006645531027013726457620657899134993576518754089884796890296887969521920190179866527684758783002939423704872947617925070995304072723560613372529156561895898952442424917177856258317764408264767049894290527980447005952017304017725849701210162790944611777546941849562224216715895072522012632937123586594470334366135196566667176311891315443785632818733138513755189008778451351671524802051113820714315094604440337483114914780974714225021494324281434611621992115796352297720710201573109019322048514430399086603432584067416087141204162622088369959413963156006682175374315333384114317675183844050079663783230083419634416953458624299158539004446771214067409542858384058581606238460708405434595889624405515765386694243012414711010766174186012430453231289998110493283358085922591190814314715620331965135404507005996881448946637821701388188746586312668245297189354493932206103350367013532903280016009081196576191063695699343386059931967842413994435370126967788449556603773156850100377529650580637695572218694144586795392723128039012867939993984183838473570984569025875726218235971431294199248977699238325921740156169944386403745427988938315658759993261268312297335010978151167162761470823464965050747788091943287212904460232701874695631568751877942852916314913325796260001658400305742146498268396271020933376852530449085974502119083730295526173707263755874131886609386284734540222438775145547119183498729848351405049705370101691893309585724699304511003390340061909845371366662747405903992664022518943197551303188917440315655816238011282817745711645596611506951186428951573685280245073851093048975930550714843184134365306553179205486006717011811926808966242300396976333455555892405758430490692302961710087231297287218755686446034680576579121370793072659301449423877581585349536558244984603042549386837030375148252747773838685290278093985751996827099267878411691033705913545231220813022386972061608959538009449924977532441313044857358416885590520276297407120542731872149252262141424642662101114966297793636463595955124504881299702847395155527750194463822793239879750764009722096935821869861881567451804483457428372415066732964371990468350858926326632534794798606863314078452774975450793848390670467142867504315487661472371174171459295102548923128670764026239417465479112031835066032038842092216950669373730621401884130801748998064931114073905975825152566872481124744998401029842713174098635327669150872792680508144085584681595074318884490639261188160754137687606073225791236852292119013730367874710314638540632946642742322525966552091254886741859273956830983443435234935887255329772756735226638881766903914364860977577374524042592969286189290616928641175643929699438033579313690803582728476985489412615014450711184449471094912058482819204056819254730457330782571001520164173721212008472147326781716637230131988813866116869583869683937907698310169052958031095399277315752968352586605160948534064370559095618250371278455102650964592995750472209551852353518727423522541327344865953701132069751807315441255780827099085624700351611200371840486463123792326872393869678597299558226807341070630090295055418627644679139789772656931458952147111960386184330955876341058405940530278325350776849248720589057364539358039393353516011445317482618502926336162309754276817639702187048686873654450559793465217553361379987662165287476829202339567095601892270612726147869633117001072518530598940722490435875956409740790320664757692765874021016673786954714105830529449637335376262861835509923893278107780106610076898362597033268611584055990336726597114251033277047445293868089463172241578486393829705565692970309582680222062259255649839860565299107553247702632928974658196158385487608784298370593291545263835271831396458339588810221845243494792577098534134995653475428958198385774858174749702625204429193227632077910464034522957155113357605308863163787996700010566860443556050124020901669730118265188701981825341551356479520639484456726470919734527508352062111327622228064613114289973128767133843105823863999589675552930835383304687812197562838883593734392909267081166383711737178254182156751864647928149860054241364172007130323758606950282473304978730436972281421237754041573361757084790442546348286590524033328211422384299449708215716109194220807910276046131660433599778683791739731794220064255749695083563466046917362993130433638387860986839592394732033362218062065711398756350241191590028867216608633810520056098912156390314397522294479278495608382880298990277784599799394582383329105513230394341614236693730670518784335046531867254324079525493304252260078196832594332379996394325048910446599073924682767661684343872042612396676457644744641258086668043632499706106055980858558881531979032372882028562396536249714305428865248643001490281214873300597062227347438318573981721581915990306120305554865023127805354133969969587824016096407993937729591696803259603540884897757103681877963513260319093582178616437628011216784108830248572862169264030628946447234782360328764771882062512974055377795336574349473945122826889508767064054767534306702145333768500782705988293738036894343931697222075412320640776859238900309079642422824788662039067425940240770065687594417218052785711935811637765799599982543086209986839281045048108913606331064092155331389766675133904085954022632373596334463295476354333625742124538470937148530329439036576399627364301692718100530130510850411201947862916454512615371331443409831840001202394022459607195873948678971049496331871858241728519253553693534940089765503137331192966903320927116194535645686782800875455660823675674172117403979833720623049025027051238173161168979497976119248774702165197621391498759110616013381756784644171610980146757178839795705409793281960287506737869294006063899043227605980780995325998422821720144936323090615037756743916850045960032025127521878139549302091495351263278323241326761851555830306190290458540256838708192445863463714263088140551954261717828479318005183973647554681451091585138382155896434041777959244301851175707348259787379560641630280240660557487366960134119857045545456500389546119104675496233344152189166544127818656987136776374405846310077529575211416056297992167252725737764514219067029164827475420542617331891917622085350314125461548927782840998921687345419545549720737478905423828425424727821331855607391043390378925051747671368293014258754313271678734920296184085019862900459444525292574254867651391038660842654174146457884601831763610733571133827451487657625327322893990567526022528195795416319030342622134868137380196078597262669587204961814840083715331908617450842975066755590079445774077038901189360358748003531349906423948943593130216393000101603264989852445062769070043088127114698256779678389646131693045631817360468796881960508299603180051257500393240298460849650474370187371740561085701043784948708895361453973403551934133575824437763784809261509863502755921589632076493303330951048890423005435646897203682661379334427715467956703127973972469578928400659694559294352716338749898638497147400511236849857734392513224272523888322862333293636332684480858765462097920099325643944848182951289390890684940002340174932493045709568037594744396851000326181695838117720946756788674382482194874567089683978110251270730291525313688537043125607030441249624132346657189839561428483607144926037426145593389038884979042788643864613778845856393798808370921297430048195214098491702967594237200626254931909629266320762792909099263899443926911412693712305124384466543345540929126787873310284634550152626729860269397818803793377698319130501555797081449808676342540650192070238099240754717973050306485280866068297906839177001458925703331661442931118226626759856057896723370030692353251785509989659301482222100482496758646375212646105762174728434446958327163832577709813850736555369111580249966169277719356203118959628149854161442004760084399776841908783529881016032582958805934606937544731571023332260102160213694772725857572838221722935277032394537711879757343755248821924291336619456168145785477606858578569027483642229477581685867792057935679582341022377333715407106202131271330229791673266542115636778078070405063337504857457334144748173391549137464538133632290160953405707888991358683047762021284954496565457108073609393192308550740586715144888408290027511761203880297401943635939517062381246869729570771497324857962847352100883566525598388411915875514247570907846386401496443123201874061797781342451304161764511115582862604932818712120653552615155556512068229545239058411733975125887959583562633120349801955900331758243512849896648029718332575751616352964291042999644813309405930100266165944073014508499401101924751177963179165857109534812670802509057659970249375818851400757190130861466453818133749613095074938728308394648577773519952561647356290716263610445650815990485839640271787798158755414081305359847839908167178709422924369784532977444511544511557295443195331301110366090855616383406669433173936422282685142486537293385174802694989082583609436465341949632589222357591968593850749812075522425846344048220119790338436236840456687996939546595962543217198661403530099384405288440088621382734266042104525464192447742766169271565001261827240014873875762925903144347125777532270623948691383143543090749174187636392622472851928708076861131785959064885723966995341629938546099464144644695221819173425047139157543491248342004200217758053833625312671403759684058543425172658918098115955200215168643025877628123993274169535615399626639853748986750491987551426536082299795172413365238217156482407717552892115227624126556006660806560461541176660126892647942176226399994635511812998135321255080947761557972649807737563874764115370621063597910846731650558140588712319057857478326193907197813593098801389903034221444607645907765018143242885967359972982554937197120873304317853435743991035447483978669453984353451984018390877641703246394479331439382906592001637638911761214037332122313588612499026838835348092059419353832986727501497740122634855324825135807703144246488942124213211665161202084492262530467037410577089055513642490362032200590020364030493480045722662964627237343159491896206752462380764256818394123511301512002604045099223134720852425509207729601386812324982272660408450403483577307923624474092885369310688647107043744590105285471999135860621717149794733709015500639919865562085039866610468820443874573163130190026176097970674134897579669989146745158209407039351322738087364402801307065224134233922763661592840481665277643563251504421540048870275347767319004262560097570895229702475679732588274539338815320840819789731297076058404768243332250041243634051894494072658119476267937593385863919529885327796420304313332132011910454202471688513168011145076271377444717666692886529058910609366945668854409340051342356172040185800301645464426597933762395676452833493057255660640560183807578591028844834405922337692944250231438379564729565722632896616284936281591415368449178004163536045665943536263968303025253368342786929231077822108377250188889602505712974916180367232140027217707766794292080183497751707270758365195875956863798692498245936627119847858133322193605648739563363176242364074471761291419292284207289169074142204751899437969789709644385837324818416688918309207205200440102126094006459900819310595539169496827999628027483766667605849572582389435278468175278724125722111915408126408557067962994734402945404708578157613206235992703633165936886884041407970781332613764620926186744651783174344134709666492545191548153892914079257999421472908272295403213098501217408653848295709233035057796416997406563983828247177335862335177869091318930288641697340316799635992518264090526210132399565228682844311584826771397835710048482428187660998484628749599690731146203108887095330208024275347894709091484232975898538869252354912925860648833871672690744852068155437833393009161760616681479406310010011212388060184592626951943033742635453815844273405970443436634993010620496932996708248547248922752440989573572427185828333613893409023692675491151617300932214940222054757827969221545825849708916438811277495373752889996325693660696588738327233215674833937390707597732456794790552152345473530812511375990605373084454851008701655037224466412198473794766081680460900726299456476321764425144127832268171131572692907608699764678006774003314077712528511195977821955195305289486577921624382493180600763182519587458028922946299056368269943482890987940007593262248730846106319614049389649379196867073567582860635495795555332517648575632456211879719983655863133980082894866453081379865880666605913782595002266536733333990642132317650704893160940661494054106240981618284126296921697635008809977291601405877655031642979142989444257666165085057895573126793048668333072504242330689626476361204823430604351867129900477227458274945739553754640920429829631115273524551616839723064466467592041201334336096904612313723520526561910588055809716088478408631932161601492975914184479490712143825504224214711239840620367050911714711385631181005467555791237214414379777580842105703301622049463844000463031780401968259314971516181037963727533831974943644623006646599126672497428789261962205479799871012184496192870898379281895695868108148092059703364621280193828722657881920954586914350133758100395442403781441064612449247256227771338426207127515910963860362639854501090238789344726046686428875791554462325472532350305137539732700285507626453326269138834868025201667086287732073129257908227939713906782460448436527112537871294016649182197240198613651304727558027041847066631341741750135588940400783594157900862536816762578782675921375131959701367583748841875220946652997137564552178029233308686653048720503898260387590653268541362815807293779483693861457545283914564591088664243620351753029302939945027729502146956703417672442592478843357808406718884648676092676802954716770445624716363389826904079239848964618317167126176068083594393393406472977968987071507709969220366364022766390002209684476341992256829800029995076140229968215917936526788010328294074335493920323694008635896926451429025180363894946942663097856248333604773607182248581312955742980986530301926581054385363412647049773128519381005850986174649753324657654314005424597394016274288393811572855224965897358600723256537588745407247787206521686517187965098852854730419270231854504236732257027124467312493740227383369446831625810957518365171407471402184731703960854876723250605749442021272491825213149240138857130316255685787885700768153911852728191012723094166208564185300688900066353070661005027390455627916639352663724039498835572072833860575798222235069096761743244721306713246905153258103529404966176366077681067446691209192338400039247947155819784141254606674960747503424911097748455115952567033433076471602321756534560279267578944965663103697626055013666623736132308498043890326156647252627664359011462734597973851585664241895051951596985579392593915824957573131024329036101955364164955443341560004616653838918427550017309518026884265664451529734283781411111513944194046022386562423736962190116245197443165751874505096533927322503427860638021975443271099216109001174822215395340629841767649338592834285361042964785224815966818382647962848149254057694663811001710799822129698640497202983791312445518371806834800552760974297890398208571996292802793818135960142168116838492395531045711026417200496793865313805212587162351756562482916174841547904668256349838989409629060519907785918462333530500636621515164385693452552599408450065326255010886164209938446514647403196639687017742181710109263993043931883576400400841697497366867304811949591815523845587237899600425529781063280306216312802295358909898284172433133615541981351728169721059113105395464254633675183281154078193166565798576407513223576949100229823552090391027622016455298849410497338254518494788718908829681761906214382249594465404064996827943477153491762568825770484164339652033586421471855080551861853013861442651998765601631094217677617611009597131502906573211400355058317878168785399324476027312011026447483636694871884588713240764944652170101867560857751743555489633114165700001585584785871828417055876727435294414768682249272003321104366552688679658663008967080530261513418001080031842597968082178629850468301920955429078398990176703180700930665243356757267231566021180055628630775091147903301362546443590960746425699930581798698099170330935380036388330244570138052867494449817790516213708038904985930735496995016951672423799957967972447021552449464777426176812496535752641126787137265361714669710849334255726906712336961283479330872983006714524483505663641465166533248969071941496579530561313656124313899582004169790704103142684208294953580046860006997325390770716068662334220072341550017658545493844561808039345336174589284015947888084676254782361419992195005887241413900476562105269854299954697723678759373351551719833695858868890845366039755254274870308432687349927660583425278610131861970918296370604356957206231727945652494635195631597500179020141267047034211788878118147335458139257144560083971799464400564798112120328188542328178877660987447968137278255759091641922474487869721502646455793430811117410452592211350615437952072254469966821991925522021528634171193493983572104824261191787008127428348890125708241378493247036255807713683791307215006380288163235879197689925298706554520733455797401020374401174577096430891932695063848384254823486168641216670838023767226123513138191880016525834905220869989501816833646638341450061442296891994621724965948423719269187031007366737005553429101498985111164933847716312031883447285945721437759548570831480468207050995270773102810563169427414600178599713250000842789844579907781395074460340367661160991611994591873915305715695572516509349868035581036004088871668716843582945581125522113960306620600763624257408746273239657888135592520890394051523175726915651585606158784019817321768654575780527278044317781631008024529765658601936386365747570155127711443444628402077861408721268253896152217640788940804621596324393759998751703896560403853430679213098681497350075193558709445826453784046629319433294243156069268273341226207100907095577220813772481203101651323549336860268480508202850618298635339300271703779590939336275131800037888055977120129012637907219688452960217239531037859627677020321858534754539077357034928453958756649086925040954806626536205282784852735698611573475095997194148677432003975144523045921228677197488948490275534728496512790477855707253347972550797026734284033027251053873228595035938314189131906366789424900270700383565095606820783293073681195942227141970588649461964244113340921927817787544465498981424444415112435576205662935940713853141950452098500097475882561581729045701511848868456586222224086368427969181978731732709857856292219085609236906773733661448408827565384074104104536949333350307798596055713722396673774727100638915764009751956351121108229414878141716745280143354759929100695233102454332536130467276538585989944615590116093427436156278182996963899369860710337043370788125958014937585264059225092706031549255446962844009452710150207016870235551674825819760984456308812478201796494484706898009051256691367151501137087920777830697792036232198464826523440737174283982728746615318700755017243260781514789714548769405881998204510391953811602598728133485014355554170483856168215951979477496601144926694789880006915752965307959940555955141308329576336467204457278463870032442179028089573254128896250525352999515886582325742675546701136489626703857213832623141771040426092922162436256088216400496365321742007169058166696680572255598661931333248980865155498537614460072903345958501300492802818691694587767580726629775928860446990179727802110644476036982314184255260314682189429042578449448423271656458622175738095234774721605190137501198092025975032138060874637749359713888157524382384305546620309393156237657611941251969607917894177135473916838401628689891716449723655612824924747691790592748092679884542655738347202990882377667536081106711433809747341411933400433898081456950816710880763715754657734011155623266296428022053930991740513397874751985002201648929925827751410380541658136011996385657135668461232852984946091006721555873528744951870113923716278284687806673471623709739085855181186031713274221772525010930509557287349273170116622584487082099336341705680367237035178999791344331976950886673682341383229112901733840776244383216516375954344362782964796578490078368974379730315742679780749567750328555112929904476918606702699909026036385815210768677880733469431064044683054099636593362861678591621598998405028808340002917767095459272102531765474918900153318701511224331488116039686744920935082198526101816275216269529892713154009981103947477041527245293105502237749686379594329751276486398740213793386498927815156147656673666734582263045231439868185842687245972122793891830963264168196180886920056925130953268776570334044231155847731537521398242846159076633518656065082515083668213113206805600482483148048168778569005107046581242520009542584152766722538113943700366093196656487608255714700459004947181927866682351714778916072569256328547399720417021840030420403036481957222414901511713497163773107137634467872107990827497573722126141209706858455634992821406753961848780524432576945770483555165948118700534469377478300046254408895269153159757870844462015919341093640114847004988025224637466902942899057500082382841384527493918875553537693943889799411879660631059472756923593352509462578233820747861325490100008189350867281084583080591703591630272010467623573691453537580680362154159010237169477061606632937223387492388995217818635422527003559037347321142952908033971735094525784089575074312837936427769607573943721631178028794933489101838026497708893276961843416085578115512879756539778387009045253481261627155769444825262010426618177492043494477761823580259272199782943611172207414563797800704133629335476813859684762276767285427952046978205844220428891201335505438715298271429095902844960510253765183976529235416151008233694349006499205806703186662563077869248165951775111538499615255851722459147044016329776085336987003543642366167269687530004213247630632844354813447689350564403296265986698590183290597416086008705590695682075416123681508302107947068439896922456366700462968044374033716395727657079761212068897274400353656769521010694409492196420295793667507060084306241659575444002627999218941951757443354861657508346406472055603081188158399954413304966998887378798427615166205771811562573375836424344632343448592791517804788148376071223079961166506617805455743057942920858668343936303372378225378582717772057816193590194267753684907592619692314199197307816858046748646428029490544213243630540676568809767969843024117957838337322597132165090516016579843335794356488611716280502208516124931698461823237230319646953214559303563508079758303617157626325537609598465941772934268636227966687034372790241778031204467659199548710601223086827339305180280916064521527719346975385154839387487247116408831161675057686971831711995196747323027070129437285486976647373723514046575775593134054886064710009224184053053313664211798495590306743636879348094668659379832019830808055079319166606438415183940840797645718740127682802815788044053550861509332092775093277237978241489248820854949113620503472520075743024860651014539394972840318496998901504656525723902961825578912185602966094286782084765863941469225532991383960558131742892017561197497078719090305402888009058558667180698369009128408920408867728165950514423716079751482967122109062743139506888267582430135689098813268752149568718312916539184649823127504869044307238065677747486492126348179498439309636531119189925428337648426991567671443099824471479732090369691855367656637539090262043692222199639262800767310644861622643855113223249414085175548408249216743198133455757456024471037190811592533458533609367094340621334912782734298141612137989965650537949288798015677419491446196066562220383435745799339481815679964345973089306263913261378052595276587327420393021221380603164681640017191477198429032433155424776095716976383780569872555996318376726278818494447710970565992373893402054781012339216316323766728868085662826043386710820515459446993675720688683004852283716918511206247722569110250903945475771322911809602981284460477671824847655985963760789461242609861624851314446019438217075917697234676530279285132215130596667366569644572543217642465124080950340747297647125948703265014868047605196341105027540205746959511729056959359662884856014380492326458821369461178097847116861539718090773382801877712456115991860208118149105400306144211163280272980254643305155861676320102342930387274439581074283685361379160044910329115382507120335135618954738667400291625474396032792709106510452204516901516855722327468730466423841522997783807594920695091476547415323283496013798054966162699796233901549375695243195866297164976348142641669985305388069522883727428157489077532798338763494880758760808753715422577015871937616037104353601652496763368414193734800350384299926385533646782850220424483260816546232362454837332130733422982820933489291752794784082354890511821620342647616637883971137122583867683780570743978593159663771526958763488295073158757590911479197010357831326181149382284433618301533821043841722850058927211478563305090481757565599583250170339543796438759947972171139520849836665712592420922206745898388977046745351939875657348948029485468354691806314576574958046917330614874833627948617814624040944205202803923698794404243738444217092257103161420802449606653949727689075361578568068712933440459881818018357701469039450770432442368650436267902616915041803552073338337486992479145085622272233554172443214881891461956750546767828176809916024560640590818650087326251490015438864155985669643339646394646930384803662832231990531275454722110871898867130658839506087749296299634035108177684374085942732122456556032988067324510139496208074984644343444607970635680439152771122814443837803987900636948794734567189191870980312977225002721347124661565512855681865157175237155799310467865613322890858261481171056010797929521440986121108209080253134703760286324358234456659205393586899892005766010868489968625875160192282652786675588776575433379833092345379041479963026340739772166990238598002252861750292674652040621903464731728709504961427482187947240451494154194074709719262128634069333017702361950882998393639924175410675549330880832481240508055255276775502672357992960161474008748347708717526884970884205978404482565164884941668973578022439665451783715751146484608998504067772156453694431071487663379392239132995786911548860055381974044304384832804802912680115962092041905491950419052883819212912927886305734237257179921669268103964631968022523967351738764416811097451926963047424292965632714668822230239444271069998768868636207123457899157802778138073331022950104744887581182097284318692886986572832097323241875283359562630743373133558927712904400915209269823372100371068277830867817783344165837364325167322218788930305814635396948056177451056396083174555646125066202012897153337652965981814872670664092220971731481702020470042146524727019876909241094513754233394978438453810992212489774782614042597210510796974136034180090489201596736207043302702972863143921369481272024190226829146802023347525390450114580908893755795066712143988536470684068513144894989892879045532569512945625148623020768827403839510046566535977222508434088473173048994457932367869261761206435565534161535771952611584672054654379965318461587652871471660509174877234825173096511082632511539543203997049082415722983201986126676902568803110401212408839527866183343937294903772908615962030685602839329054652594400394765502644828957691797203971653388046444927502675325548461640569183260531425199199444003972027042857552772324977225909306487361322896882390833079028729311134402578851082901323472986298813999734823594507275690472287443601935591786438108171789147917425874969802864552132497612253562388849995276549874059433951468658623553175051514120251816670734428468736205711275395091216702949762734444925517069825937830162793505070231160719739547839466629733647534653542114156457814644044443612533212692981953764599729291410053077044036865088783874803398001546211128396097498770635901977803200267536690178837545557755068255768991196093900770208224246216774953453901738117687358837440491852665452188296365571970240303196802242216164069472925790438013124346990197480501390964482154915077837771829190599783643071317275312085103794194263105492790855187403928569673794353444714510154845730784650775025723598848523493374278373624434242775137648496509275929076138797931797593902316450404771371093304667791195076684702460475732707495440682169434552191039005104175971257586009432924120264844689098466788231362036745503645638254786049068251026975536097652106963750984425840833731378267164081516845340759833379335331595934661458527253527172229355617209272118952862661593886492284501341969167596331816990311965563978274504709612963812429626234580421268992024365208846241986542562821203117711084473585086842434378250424929038397128782087033418261564461206263445657513947133965180164564065757948875740387110730969838602675834818379943559362315452634645638796603658516150915752047089244395775308509550782324268068578509519476644186926633267654583265006139476187502988531092858035140085007454667026061184816019592828558403213251876348571746201086869816638127726446577134111171535774420470777737319340344904760859018339980234709321701069174147740223195796102089342017660792702045436559914794225882085182573903100907315500180387336612414312035779703360762797296606098486097626437550621668577621468437044767908217117996760237963585492737457372709030915165295379543638855530426448930746567142022358712961237073466392361265835769536637239487461455035935382626316268689749428719517781202858123619176776096687138384870363076224648077402766534998709090987079042237834790082067551424268337487940891309604319063565371237618365852906249836474214194783004909574387543402368028023534949586533314147893763327861828345756562208793688240841430351988761712919372934256602116602845298814011917926912325254809749417207067014439977376141908450668010821334678583960195555979837031671114432691712047168041858489149169785868269135625096353831024613260900908494536731733488171596227624590282317924820633131726354837684549256007146540795616086870886387176211100600314454776319014902740335038289470120763777878077540126944638227422675012547463663822919248105607626107050033410465991711402520688525030174818193496067886367892053840947094122465339407131324889483472847255780875737711655609278986218160712489850554739177876179376197336636965954066838171429479014605631390091346786024238796922083597766029144449855356009693258276204378659791619474878957563522239932719993911647748872066436093677862909017631520963860097301459013194301334568608298344011554091047722176822455653753214690387157467946817299002486522712156608758706130284639667609881056643981929248800402298134927497284045667024886096666264386533430462273443625828168920667799123785366224069331919379449023292587070218478791524766369928144483052788754414138758240992842215701436923128077254185473830765031766994104162777611864278740904880844556633583378925660777759951798931010235690052906440585543718013877233637838146673363739580173101010376408371475694939961674931821376302405145068324321201538925754023155878524852394043457849126102701739004877415342469222087181134167285434666633056328997790715291789166622499603836553013763216231794777852878437339297337164204729289189762275991352195130925841785035393632357053261435432953382371601215122637402547452386492735725802488080903826897545826739814172269587782635231509120618713299575322557879674516844387948829049062910568831034676848832722292224480215332869736965413567806853311904093442393875510358815051360352727623511080016759624162020584253296892235892111497221108302633799271485153664427320265130718130608870805882455662307337660937891218671078320502482484176617746287079628498359679709337871263721295017721488309069136792680046515641949612841368164471379879070420038985464542981598139479096654639350157666327561176732324654840390456866935786294214473867682946912905036925679720171199841718275217680724083234294635079902224873820907994894182456197029679828101586645507754979243557498451057248357457414054655068335432320645439456564878340788340122770254128245947512564033509232116032072467746224208377623930583028400769839834202661948828603222925441502481230193141043233301862163262394944809663694223622029849241469221634833874668338172925378885864991439587077922589502338347040299369174913058618684015807100432222891480943244214932334457277816560615817564075764279149206370092744091009487506845588332253861212271471575190647569827602961214521605753642704291837512345199185260365720789921458244983842859714190286240004960054571684625893662195552367452911974990285306079527192985853929550816560254938766821740377797778429152207220374388485284796374163766815212403930206815228242962659857989804332286762564966719514421327767123531224022038874138076044094271310795683371602915394781320519094858472550372245816743248038468729824708326970687727624011098364003302472104426862950387309703283102646382882303731593270304341058725089289482776635352469969526080628021882536911799328931379219695799041724660067000978315754366017401622337948746385522698741554689996358330098239644631643486363701798652087830674398017593663167283021634429922325068970911017932135338479389928365254842841185406513353052637373929088959905464581136440646339240146451213725155989875963501159353993773763550896490228011864097833512437280655707717129111857991461269747633960346919945504503686161947908500161109834496770566683196590184789709901607469340149431905154788722095610139789791164463356921550028059973683625654819607471462700633985522039083604759777920652535882126232671250193788734691119717074652609986265203214740020096726032601781965186893605683117776663475490015520240239580599453493756832369280762803172559770122515089925307708651398882581246152367188598782476045782643178690375350424123914007766990134947666793169116672181987438791110294487572648479631943492029442795915778099978316671914493735232682228367562285224156287158296219186737922198195568521627297876560206455405781306353614026643367663664163855634037851899774739693705496893234933154726184438252859107623826370577482065159335083022080141344440450096582577035496509804577549449002257763196051070835614343396379804422791939881217705817385674519371357749937462293672869512498060623514252328361078548974517521789609197268880749166306094325206741767969717187799092694199960253619510346911011934141778469814920780518692656105636900793319534418541725080790125290451905849886616781398375288016081377968597461796943038610582654110492306320079109643349180624888308667087799976815187276897944757545040612990901250242977256184275193828511115902667069369918546520310950699127739254080538846672069453440613852564222308867971946842008586873697473450178026168329071336930126403848561409177756797371306778597487234899027597234832009317911653288731609407509923636579841011979136813349458858680640065187000900743811911762156792530162583134823173846987087947413515421475645322609320753800831115104368620310144001075358636202498963140993647729374748074764825854542813786804317066618928651331514201269917480725888361722267776409947916118084516640442880642355482352141712292079768738066924920605487100477208549675960566093774127277574512873525871626076508869863647128174667265894868558613884543437229409979114426688377779952717386509069420886660932883618576743756208033589259518426256231417038296393462464881409522339839159853470009796178308583486029939995691694871800174097234062767622630864340967553958484565683142954346388013028939699580772140834798565893148421568407737200126621552838516371976634640944573460499534423692311779597446074989056165862331648123961480376334139248939438266530937861282367742187406197779238221029158141163807609622100125434604092064196338913332717951350301041710395294693362470730090669835180106093363401418487223356178331765394201635701649348887849802003009252731521183354511774125273267557299403580156831930537773659566328937105750283694154488193908529872205919242161142527578761379009032621965176392212981880235765402923376741035011328474263548883266256347561450975375705230431541628154596720970568034886199430415510665987327015538871001866610126548525192328980884904799333234071747504501974716979687401182205531234959446968499148184133811340628014448190366558914958218865450672387001187407129744407980460432808452602862839266935985389570230329810487903870362590209847547267697613656803883998376878306867190699989108362560058966213914552677026814317887233839564093066836558748231762139371358179298731301454688547495803293154262859838130177225027971408982401975986023530374535969172762907796677457110205728350475378885495088809146603229432977589911684651859284204578449536846190054514899869041340517437333635769681917546110816321805909193448892254349423207005056078233565630108672432738733764141471702451238201852118563477615810903600367676059214000887836721231530872504936778029983028530846547009059666313625952150961558543223773923134680877957498036589443007019655758006136825733993993577722986758158331926457334113227052870428749410333829801432265251430893811737697375989830416853742508146977407718026665232613742362049046473521193191571425573813885169088839729568207142821203311140048319193978072216724014742624165524914736670897532715189217836980387354363466716005331030728824322926683913723685343616339902212247293961623394768682857543835606707216487333349144383950645088827305876874862372143278721677939431334329781964441657430751141869535286462124008101579844923011419309237036553640369708854878740315461984722703680507532249005361088898647933103061386114142107698572048128127709078975389356158238716453106219759703039253852172792606735695097779168051505936827681174190403541837438664532037209383738794452524697282801067170240098638585114252354046233279780500256218579250624160592381007416572648683927655581460241377103817926095362398064947827993863531102584486319371872075266107625820698973260006092393038813172338231982639281057880833632567062582942543398528821460007277675185513918752172804437169347640065346335220131157260772064290661451515835939401528658647938021456645806854749004322835238303628855648474613772577425194182816527912374006119811712273821828001431946587833780428161363655897237812626379717722802548456589763650627863225932840296949954641817214498506190817634469287731050937468685467778929752011591041216770057121931894661788299761790532536236092659072324058625268184990017888011616192553536080786358917917005751184672286044913970917134891775585095533813807713319451728401587311434734054682005977066858032230338825126862034144144468460110494612376480571183420962478685181135242208424253024250268214237146720112926207770619572872951924128461290991542621768047904040516759094613080105523189069916761192984494557085704417480560192233723833447345214564822091881973399401648079127604382667305702517796757533360878603654433862460212938637516271216292495964632160730317115767413164341140619999756514210354930438027909911212322593838367865928272439657333036785285267309041988231154858830470414859116912589835839525672129850423337939833835816299111310848167021500979029328196080216375412747461971587398572113514778193331401177984751495385303637531311237978315282695056721551388143236846437007247544901295705822046264609431122622993097032796066811206714861810406646004084269905075901178572211470850746556561989984767765886150652561175670096371232983087667468531082695826795766151696973769636110954717385562093260828557562283810902358989608161263363393540942717927583020974272615985627594324858964016135278717867830554321103663128326549799995913140197983838459195906000567951595107164612108560823602097185893047564552960508351908198270111664859023525416299786927384559023554702207987243475384375099530878292574497622871471668699173611019516980940997768725369079019871754285763126973218106950132214540209120995307625995244229706648543572968774672718120407879891648912178486156233422710198267078641238168343657447814884704289662288635192643250975147545256465672495771281719955783701325563995493917308910750892438764823861158118894305744576901985817847244371702468017587270470275237586363387339408640701330418886068952681658770606964814220505969949621206098084235246915812245213504323501428419128312945236229982780857122433836612490057464463790608262179681639929117630678164414771383487114357874953234873578162573596615686035169229042824388667389422221556210189267297216051720064812604605083865414179123052413535075763077696219289583007592710712714379667379780770717688824531173451125432794808396858718858758021610943108121830955701672518996430407799520607934611040229503780107047305249638367875680837062494962736864159709371689822338606669234066621635849535099934305446946690274583095303243169666934000355566164008805913225796049994238534295246125040967393520655613827951585223530873624828683686921284143683924916860210753277232060966803163139009919900385367391505655190723580398578118988001555198793845960362862919736937950259951179310033041175533680233572036324063076724204419611863783553394880686191273563737822582908331069572996574615601432355805697612758226031413133866174226163153515241562968394089239503647315639270671599298648302430621174851192903633076802510446451905426694409589248587622037198280170569026643951600897643091598034072514396913383650598851959940008506876355556379185467803241266380111004628137417986816864794587494798066150150359578645263992618591839685335263631357887438260871396774343101432159099220117774866100200931189338213944921815558319093067688165885329051688227929050287405710957920690236561179346040753269290891031446205304125168821595168921947929943784079382529574888216444708686766169991784562295120686902537233565851820012072917119878166945962769909849468383465130383145845784417594188499326725351828278347308554593509201960704753036387226260195608517763603338897149728239611275898706013689672211970404009643621376594105684031438517671472924533304264508145335908077078234359405096213956641695858007313433022691879233382754807259962727682502650574776876909348122685811060581115215763986363455171825558899101266155274832376149027102011180698664300308977847561824779701014058303089788039314644652596254809028420041848170686869147792429639746743705004437977151025773772476003311393555570520658447528049865159390220688686095118690601747296194499495269498436680734956273858442333759298741452207497383189313721881001215777497486322240982074890828025164833751946639374636896160114712441765057099460671111089653362251155936987689369273242469789039045640805465374481024043981406526795793445043295699366038449007899862733723736117389484670723308052569318845012177784509000582784132738015662967249076969856390732713440709586825093482253207627672376460324497449071296873769733323335108093354141348905797174618129508612572114385614869680776607004249543377820622824777840857428885166146584145691706622971797028833384405571167596931124370359493201680354929912987781357713753500149810925361588041435228358601622001706211708180545457950412682202125277378612928182855934912426617238868127692909379963450125031014165771995219477927691371522572052426360737961975026724338945808117446668058267337297770417958595923282129267100828469871937140262420435248548800693557789621314500105560493011993761759328994519179943474686504570589839403523804948656373917664492759110941104896852177830113236264272326573528178488865538154183714136662767216649987489812419806976726850865629954000909655680020969545936534399557629762220433471474967648185585078780315553379964616056464782494894031097552087789870050478153833777803296559476606886054073479047215693991070385751638993693978262925058124216816332463306902739120576505929764609715065725856413919891616021949253776180374917626339172758764404611473301817995265454441297775927076947076159716258542124671011190376063578721426130248209286007491996541121696248781506214920150861598253939346690184874042058613835862090272636458307513599626881287628608984238977283314214337556452250642603360478279313046378413041735211077604500029043765181161554723653900098664486448971431000905157491413014225407410435524719248000595540666342466879476726957562553367777501356371936814232988960597459647164161362420666560761376889161219100819991306197101343841657053486701404116338155538434680348141207541705858940749529111197236002883898420382512151754690931852555010038814121699339491318359952462248977184276548175626054119582082808215201913795693471252634982130476110867172124915009894199270012304796311128272660024116615254023942717382245718990694594755696828246577543674883621142598275694005863756863379921598718794130112028665024381786860398120965293394582047485811336916042870808292615337324046284714964533953001582620687165627527396680658158781034168467949136354014172365696195355023886826118260934450611558006322447259632453521349065265209727238198950248466347878190979876849531437941640662948388532561555899636605133004826465711137858239965423057809182515076357780705105635492085708588263963782890331038085104238044807772307510573279928168271927771649949079468527663608346837718958421405516782576200307677028117117301859869458815899327390689424754476979073564769678960080990671352371797170519635511203436416809950695279424055654874176087774686478687502382774818279200048818876436754133387671128745034809859420996105406125031961323392046850207388632229961286582642234884736448525376253224035329058685164366110437893518694296678888891022571131286300340850675500554455256286214203856311234005318639249678599359004886417213134209807615739525809548122007042012575304011846556219077423912125638054863296987565529821256321986520934855855664211237974586499320234083847679113045098260690082638898656759009338718161806685012900654892830072901870450343374267887223115336149676087052935310875678017043467139147141347433994017746601205231835387161137871792875670341736528712770339433155907048130711596292296964342982395914625965935473971988415429635065750976908419472216819876223988796114146889713217812878061135081003838633838332343411447366071306055255039504341560654122693705724105358430117953527352506746918477663991111036665877889619305013176569752898531106966869066561052904839580386383551726288496045324285393041135783981371560650103774122108680986109803106733307861669136495041629257008858210814623689292969241058063123306565288486897868018068419656444165495868554159914645770774307421568835175135118366576004662460415222689573143091045453074499776853116643915120558141633925402005097246234412388743812679043998173870239341019474404933897643928761668755103563665898361040018906585160490964068194840880601671619203554415000515852456343258918008484416269268387689917623701742456184746106196988617719239715676142087219588977354223853164221853428297508669869539461969138921460305689013772917472495328516610624466385263481108407346633906472155961307804452869361405384969395190733171856556295147057829471357179582770889965029945871175201682318840461457328507587990551722702344479818482000943624960213711434303485653037685454945685340696820391764104967233988693300784424881609191337932869575478029493615802891932663681251280440469516360027872627470505549320191859606123184827189318684720625076180527769151160185379900257221441933797589172144583873109282590765875096821701559826974861491163984889903906007719737887585081779475775189553584949947884338913529240664924279952863267537767116165910254706350010818102580060235409273945874373072989998273338456515864376510733902135447919651951350680452970321745325221407885883268971262361951181631024691471346497594182802675061808613053492647441308942619971230353054929190323353858939472601771273728146266563343256683843945606334326366364853561029467261752156284654485379520415662103749966787875933742430825080671969089850601859092186899842898888455709460285893944655605919556952701719331120790161283424590713321934786227634340045644685736833283227119780845268439977406004294332657796165654341765260690674756439151088409866511215144469573684093665483667750493922224977014002372185246380621846587144583741657524158272054663084361948376442462501684833562007311597721090703515741895046499353897512928909917525133698359297293869561996403123512499899294315113303540626779592888182678593890144970839172630570909042840106496492921352139344212060574805558650483024635503498314113367825507072569540173061208399808587330320019367611801797410358905485019617303553977672452898812826291442654840743462817124654820874006762841583941620634363085173821334073845938792188080620245636029090937831047250870564479275037023977977349627504070897078163572785005519266280949864611523320034995971523483309481748847261903400153031678203198899252013496152537656064954340901940010658850180252947449391437159760536833522194697138771516115901248845240016217084485343843033017627875108061546312034164554152146602222896698405982057007738657462768257872963144485079551728212208143637089347918599782918424164177174589095269459754132944920429920311677726875314420618886732469334717558254477055842735275880499102233706655394070873480316423424132352384982834775271077066246112410920466580429490486862210928967042698069426172344931229066961144936990481771298353879672494356713321583577974829695875187095222708880145078268811960562039230256668687547539858598693635439579435676421436887570916185980975513663873373147465790249178913110433036498706423471628549971576986633181137783628700182109852123550726062267555454254555723727212920413456224571511103692949005997989844510355122437449822985825082652826989170361637614817106930246530752140174054445958929838854802070260488005109203340205508029629618363977723272887002904715953821778395372431313766753903072359384427075496291989204897274088259217084497185443436697171511709243915584073050033956387215212258703202653473317745205921597405947496683998131911731327224120626163228048610542053087510567785648060064066711276036152288469245501432436335786137039879979651183784053593425255054186747071511934972012643042183822511734810704509020938192324065790013837104716827307638320288958058223014943071799017599521392547419484788800881411691665100598613574718392238663181854153204135199006333775774462217296688752478007744339146837638785074583897008860568365461937087933078223033382363054517608510279370768693786452977070140192320867566113734154413398220839796186811434667045498740341586869018473294242837244365613393845718631555739326942109552001715218883836485272734894449859688613289915944600851940851264516129863805428723407377506915841671898970104845838983230383875150790601137302276425300560265929447518269407401504216902274226039818764512608661673392760788317623079110364112749214189407676617183236795808773238403130477012101160684209069896758504233130355405686283143284909748779090574791905173875094450789777733473268138430442889627616413297766347843367798685742121952225347705411691398755867539706822660106799684709198232036645210673892402393080809273083727808503724518511207343793122401494619613000884115041213973310537660266080372334447795479588738366404787848785803787246491760654275222207911909829340632527950727450901609400209144825037567428680135029884734811353268111735277764371939597508814934185091539059195653078491139710538489038735173744341195109630462265011767693754237602051031793258993612829149127493683402698021169124170727127044495431493770724254844682978494751795700705153838786683461323188398817429037605154566188375492969488973344159879217292214878674652365083149273303100516965932648248378718549239721799672967240151801770586442259239162214762459538220479648828052888449095630472517633326819166678406944821074096636051159190496099869177356618275516710602067443328723097541706853433065099132046512820552241857099169239624554503632363112215330524490976128395412652249196045469367096744160559879693256449713680291680790664611475287991723950374482514518922522533137865930252222613299511013345240996700974175268147738820203358712397220505445372086018304393028981717497522157659228168084703530192100227774264745649762619531607353725561308958370345875378814338923111782610244925628786849066611997680982076486752682096830549943785689675628880300923743673175897753765624669104162278914712856753966910312723885747086297745662201456875892392965115932418344270231766223062521254499590661995545544850862886317002349144798442039616098596024429987435776636761601698556332390723097206750215442941891703638040205883272517082100594405747218780067768837006916166074682193182084772459555168552047395799867907805564941838970288009116819402352230662609511037733601991034969162124183719351995037763427352240669417186222922485834504477481620936178152553868280708672413574816813729913514891938429547005121777973119805885944971585125071481009310365190203387449666499937727813892545397258555117579846979638244590032987655794276598647938831081177750750884164911731025818850168213382671973728744475184913922693949377910140082587339361429626915705653639497802113583639230057789298216250016168922510718173505411213600296955486780075359496674909104574177886689305277169908658438019865953979691971109132928073060930198775551770998880433453938230727592452025256104737639502391517768287386478991443687923582006475019311058510385677283548158510905698081090669516571127280760011606602486412192830954135075695053062611758073297907295713757538673750786188282507134083778907601777571585765758285603136828848235410968850151681910925343446038800430662828782960655840950935950462905723104596163037562554632087238027214182181233208939096854836925517266419784952617738428620426850113868294020554008501244792676956091020612474019734219965040772922681189094987826972861026751802110194009339756498680379182141573680632000318614173873691612860192254515873783860922996685967288246003671232361441944051819012225573134475215360174024961626004375106337609420962117181104375272975255548204828260427643538681408485390307826562824939040631865672609674177879616410963706563227005968815526680437120636461482287154625668489165526788739767851492790349805226751561281476196430435203410126027688807768296423520661890580989005187347067977192854604407635976758373810164196116595568147058287336150220901591876912266005907586996682279615502274069557008477668963146124206204196711078373438125395203223381422926322146495009187613942919276608181018494495000623281628843568441808705435440657098388264575422479647908948270578982330490853030588179960994392682237522208230815729597086655696182157193068147592416693453854306611347408401491836531236048971749305823177810958471778906489422974853453590686156512163717982266498543593089975308614084372775918380191407530380779915465499269191476589435848033794647301266270672237931923444102921401785152859093614125773977012023180181728856552908872097147112623260780897849875726870751654947047213420927331966483097402482442569989334039536645432543335512090552356867018615557914075280428819953897430638464431420196372755249463541298405637141266402499486371695587258785911049437244165247793246711814916913987541933099616192346928463233741219145615085693313200884070754296175467777275683082673717076989372155414749813061719632832997028772727167907089098843369679422900200954059731200554284754884129374796172355582687608980718276841668776377108311488852763256583613256368239694001294744633675199518777153411929995555924993914630336820809610708116568347020287573304002724717978670390773210721620103183260637346598518287175892934907789381046892143568439299563301196362182954358374236829949287821191987285877183405123997963598660062580128283979596558147044595611209922386646431279666494834502538037899730701473636378465059175675467515803436928722730566682726434746060085696390645597408352299478029316266191732097334387369632236424821956920744584899678099486793007993879212654801849054671962212699975938541230506181799308570245353301987175789319813952541786820009551826352257586657274089766675607894352220015517256198923608112517505797599931547141712746741853996184262384382637321072865872103472529622109622086869446342085049679413194377181065655730638607248961162812870415747626555681625415551228401467645807588746304040793592359487713189631454750965207014939322558390235280274974826448842118213778180513197583127601579048700549119658374507368514373708552001014877187576649621683388955427125155397393649566763259872137386390704249302183964086776264028336402839600585002835113306564914130120763873373606005045961039399995875616027040582230639624298124617578207276206320173648661532392748450921820291835050275969280396361637503715357122572388703599919694136896339946424667187661686844164651476562917244758275579105423323758798470760813191379285295823119215274950271940014451959959727485035410643186476080955199764014441935132265190801614128848899542041641453344385325271250347639315836727794374216663209997072950857742884790715254127615198086903887450068516924116138422349815713350242361312528464429913036069841729145958354922208756896408951379041981217840131307748537439740188806156192562512923377755023567907619556170090353868774930334501721204489659188737600710618677309360511074420469172413171356253936885164702843512955798318117573203742479066539399098467908655021031363904304241960406095185582035256550284070293756895727149590459585736538046430159944793544895672557090810691876325765907462599054733283640516273871092736867769667341277325016132840975860504065331144907682041960467936214913782476172159407944876375772636868183878003936891759672787228445191020721543839830967287461820726392806760777837151807170620085174404179752361041661492149544884609346972535051983727289288991821547562655780522456326361317923235554150224679069825200969560436743545948317388506009108982050828209820376206723896092701371283396156358046795209295339168539320468863447781687342754338021680840128037803068303610409359867978056934685100820545972269352682674106530209099128712631432748094755608117653099854908545821933543387619603764346893485674825724538266427347739393971260866520109676278264031522921709603909787673080309452194766318584691485180345969673930295446058133307790605778247747399732008090771453806492747477170667234398607389695672718760232170458427529978055924838870778443111207194066959938875091298124709699381123204611143424702883391894542203727294381257991868829394453166597004019176202749854030839599952063577159789970898353835023824502391125140159513236928418937037921757656805730396230988471121301070658826053941357220013592258759443788417650255951116564820661365457454432629610829562973211339990930376739640691187375094902933068729361936729530284262806033119440191957877414139870961318790927417115743274194190204697421642281831070687641217864351675160364266698695630489740380603693375733671166493419074003482651300579800283799581406872975948095076552795027623457791790318661665284798320251505264110901327475083145361951546921839047936690262703039089113471852043696086644920220652630284751532434122752983816690360488703109752256468141516938424521006064081922252206001164356837568510171603380815483298422402164715586990902855938906962602335860916821191406294066059039231083864562321306607410212108567279824277348521263946301085099377279910289202740100969048029751103687595685903170081756130204267182255945989538389677170672269282317879780331182733650017534615188628312450501794007833756783411146893738366164355393377722417089843791889309598246513543518612255192299396111478471360060557216895203136560520625861996425973132958077056848176295957865668902684772901012991031985145332808814880979374708182211099365200965766606988985397905406656815905166129317405121012906932421366844784731818099820134777965840824816578169481926073446557046412297105118354655373513384455413722902867650982546963597332755194281779360770010646435189473060312529169145652389006940450860843792979523798131246232586579644436203056502640800069398465154136781784023730138052997138592214888146800595244487207389261275273792394386320794177649947271278363726788316261189902743173342650536446784209789779367569139709522985485539632155776639227040526263089501047188186067671128406747328843319333585577824921214736731410542309580047984748096080690580104498713572616981778285892748770476140438630306268332849282801014117981529519501911134979375304665385011315059374115779082751538213960301633649248808452892331480274410261898706371405186286764687473183920330297907572480701529877672837148638518538568836230736268343639244084095147050082554252922479688638288925673988305674971326895193336666200238730910450137245946544381344062535904758741107980028082020423239208558333674544969020250630197862830067081045959302680460095172678176400752288956768751173723109682409816402829652908072401798952256656917499743145281270131723663401235220451674534154985296750633249675452218683767249588284569928279873877294897682657464921009864048647646621787421779458853958463994813245218365730056329390822570503599834309813831963455289819393607207843712380354963517120196839746918911718395615368314495368631376806190606811042164996193400965195282604552955723729104973112708046961923150139935121993001923822867419964886298755727098652885925447028865926952424488101357426182105976000849023521854980766877214115341422629173221985389127899114998037361530852654390250706317603665034821388505935972941569708192443106957418161447860398519666417140120972882680413144962261513345948947930649928596247523407837554447272751894801364596208389911819163582480629012723955904408516240437740612513617433534178261389946384175144362471255447878030998234906750442329943136148461064117263251336247480069213933325700561871075356412291049219865196678875245004419779020000014383953111026041132543943018710064380029647698040305784294371875322624557008265171585142381565170602390906849179305483628818744740842756196777465233366785359893649113227544468663851628238874439304540140679212275102601983045627359222471867717327160338000588361813088845720024773612962985926644720804411655170793762337598374025898154536394561091392507549527352452598977539348369437890551938463338880485154912361913950009815741633393538300633266238152912776905662789963804055941161449221348827672511189562283037365394860799599994226641372637091744924294254446441818831982628521473307747961903733295049854359962449921668709809678998259273932241177342585899978662373873487085501763335730221668227355111616002691766537373002368833903939313245592734293606555173158222228499575945264550209710397257236448694521049181840051438014245842756629706282235397773595682641774411682675892209970921321767140247439578720938387844988946481138440333849613083396262388851235029772684188916192525437562538349459552904939657895100188078145373374674177713293193491461528601419952339989047062816688149417792161023361075216653527458984144307038643268085094882507071001440898209131159860524337286501057855235140181722330994403009437757210414912188732127282050863637251146061996929586750411585017306124130344906991557854435312175456669118012348838009752125901390342231397238958482521764522131250376244158504266195819277116466976637885753628613745151442222297721130661823800431743902878148534556941023616842896760990065508126960985718335671476408658708331186516269201870160654209060994531229466653491319071807530681799192768262881737133962640638626990322193883169997545326738709071216126175631513260162936425020851429085128547633780571542334060324991663827059416290536482804043878269069986854682362589135112193940332005762500372058440627291547989040324955900734533025451818268670392783242136049509784266089258924419861837527837155940881803479775989951756891305189888078971321922627725395726862842885010174254377084303108654951700834517175180420923441036532952039064810439404539520124040302394390150046743618938764234942246552279678810764486537543387964249100266534327345576314146836498667276033214975657709949184393544955674086528362419454066799407230681724090400571932990349796614955186138085287365707691230660375662956622592065110728291331973516340405015567374976066693991427453692073788338095733704597699463476260133229704493287655044861493359961046517843353106254706583871552115893229747985935572155536888566333223970870558919996742038197949840039013937143387403546235409148578095733742612906733167156304950831389271829617246110132864253945103844884941398535375386970549465956878089044865513698090047752016959752992948603697605460985945564061057310468974967474527013705135837712735571520339150970714473269123512059897554284054241033990191142314598699572625071734008538396595758108705204203045794126902199865380519549703515995573412990189235634658503233787905020602244923819702301479795439588000197709887232245721328799726827338935047212314796187112734983648149216028431589358681170498354880058686196165556714075201716585143322160665514341708669249322769034751224548575063170016823254756016107847289586077372357436969364964679188667567486466182907377385128546518827000027750282530409182529348253748170312696115097174681951496949682005710679552803916058436285306344976961318462885148784114362545375384847690904555351434083629197941859414254120789297329883913453369308133922721710195563682268959601081329390421816340244706091075235568395037059041699704460106016321055229349230190839619245421312992965150326602717827909164664349373792004063963143182404387809448091762854914551973770655834224714514480209994868902075255572269573452964928704278990657482699902574309092083684189338803783497707973540572654900500095196023439608008140175107145221785607791901050854367739894612392704128832281749384743694360613829228477179157299172082404288004613168775287040613532053102961378079568267082667746420047399023808535633848683467996446656442253876506752056516094209603228126507768226305838516862378730058751968031603409980606414741413527904714823101418732818732726466041921132393925191021176718943246917820348894096036330803440286574757472780813731354475634587916339900741939109508075556279029172917108242001583465438556445515190367715784830972655216343915857015869182591834564306073535644591143948080456190872693944828358911900155274087629323784567806382141176976979166629579616459966642912691277503216073755711609970945842471823093427093038385222952456664994962232274074333404890818518692911786418061596914092899673213338902422074918076054025417952119756681797106794948036793401203357449704391134474639517139039320589363886036357662386903380946643605832952634947583481349367499477757542225902650688524324235165546944685310250897352057071577148011102080126646318440038362215227521774527756474115276293319131048164802445963940180296767199898176275341272911216603183509348817027067484927762642833962416831167501887996222150153323328867126848431896440332201051658365855066347838464324600027726859108381734814765121637787562219921967684667872916856374005081114263691517693696983891590888077383346221190859346051141779211155496179113114865359970348791181793949122948600939252480295857763726686512760443320973249111731150084895263091046377653940139844406619280340160691650199877522497656940146237356530654124435867165747178749239208600161137289255879079405158379271131006576219001043427236914325930465143811014133968183413826156330456920230906801443898636595819759760755152329053053703447486252963925239919531318017406598207166085111492816052081166596578448295073641812751848403375116004922264667312608422650242478450549616340985075123106127659308046206832959618077658857046058567888163057127083791512090433594314682554629572861234813458903298126033738913332365121457153671560196528359716622488972934581130126491318971716721845186993718104016350864898663638110390696053146319916011246377772797748666878280013821219506970224114055611479353151513777478007132766404102175111111029764959470789236892642610801210900831942763586968095943921646748509789142899022571282921855232085640901325985016712079271528234884026766698840015625450894234268593965130041914832071341938255209571625604227329999846356899999832553836050658051164616035145965081197303995850551185537133215949237358157450043956851872107802459585431018538288357036533704447836358570002830895519815692617304663082791638265199328690504668606440785404057495566108178600718309699317712618023291772107876853353201139996391938326955482752372225394419508615403466846280209703452015975835917844090447551057737496443888295512558879946083570261009984384609880493730830930108198665196381094064482928387231037690283574961607531254628958134655042843849710931674524894774640020820769223941467905155222193455022203883262636124257637940010641032740704452912448034960183260873054826291483958008529799575803589012431454873683282124039158120661553526645948373466466846604475034554401443819849938963209054486389962750280534050406637812458372010067261084471284021206260855860375728913421342997526451164355662025137081060289139306541065417171630105909410736819690813631670093744010244301912420867627472364844886701481938903414385737300581156189810553587834866833502798159431094348710572775825187954979185469459551161646446174369961623478038516608391762119957117499622872401969195562889684063779535122132802595143940192670999863046874143640400904844337566557104496473097429664317689305497991885538080221936844551973679643455445803323739035046599794712308906411025822847456605785508098418192727425293743400916289500523243279861543698962429139170386913919873510357601809553856797859426539696470736380407042562508986182320725498365441846792923004628009305481716630089502856059669704532936907435837416343757178264071383011744398643135332829064510152189478440118265713987401420706366848882811591906370159149394240951357404595473282588803240104448364837890697559355480248334245344488958948061524068390030670129952310237643133791385763131863862489820890245218284927707388849469712821195840893713795181278679388231052199883802650637446516202679141408024684896458389470963100371323259443948972962148727115603453043496510543936227034479614098239768275188729172025007347218072437579599018742631338598899212943492806381490532394492346610660588854420853825734937091603434977789627046050803841958406663499180206691673037274962245770772580168725953355821941830759132072037258345257183042129192188976495990180646309571229438496830374236606431960563880232209208198185471139198422366457284078268696646555705338663217576142409996713594567005662993250175036920635842775505442994406338207460335448488436543699508058678322987167929150617833454517287831868860448340135220310794561174161992364945758384047698817222869312838950011951360632519128956720442437681428926479983501912549680323590825761083992407307277112112417468308422695369768901093596268499806732450356201046520596051410505187739638095409183242592101460379432277782349329911483260520296154843670971899339458546178979572791892051248537932547399056004825355057689415916196850548546543302099256315433076390291304528918216632648408881589611287811731206910446893611902522829180807091740508179948440831792644738905522358071396713273024474821068793561634478410393251898400776652161330629030936216835776691130953783051335657762049188824373777920877749344353250788751644767533720757757772750256299783336528482016018495085139283100517182712607814583412462828842684630396704616828340070432891282346998614742011979309504187682215225796910085968248608395405798962205766441637070737723928154846804367119517110323454545889698974400649529532649830376311975914889331722153455810304141746368387350756671450762838384661355323075516540766850034567233346802155771669265627802444842644657157697094432743151505394545068057848390351752715413320133636022461527181392710328427869187013825405330139315909128829399450424719485242196751255111273100298275803152197490895850824107248684033641899681160678671997106004550803240526578227720752948217401600696400015598061105685992520307581443128048641041298108106518236861416721469236408858970118183429251829371165958796232222709824791148955297808811798803404608451037323794160808322792263384310232019642113422296351508224565064205527783376672053822010349267946143379126813849840443979571349921991953354361111554678263132227008300029650110596314138525034814756858674223901185841079906422415893374175155980769559025800734386519108029812492010322391604959244424575656226759443819452016152960973161328149551785264075600589555916964491990601473071724765511225999125472151561212107954970371853191661486477831953710816612489472971458601697048243266580547641922390658906425409188394523265122829087757213778964328061406262198321350098980248138279831601703845103603400581701167523377619879861380999449568817905359361925735749688527422801395435763409732564039794717038240180402925340788082607283560875562875932808066500575692800893911952575692196912650089987330815710515400140155202838255082989332984653380887578433413739329158308361834238527565890534767247469937162045288921222180829064458560525538486884019036702937147538330863825886740879047027775425506963127831516396160252526000907908041907990897282537959216552682634592895804076909340205964869406421424958750981045335917669329578723584216231648211483592684650904780946559826504853784137024666643674506198826045176452336569137744698163436504510262686139897460160239772788894435873237837157952246686078591224169143039312314827263735318093501802761100985230078885884823800513463132813541492218205280138781341751717901084960544595410983602039688836209090066791643402838282231492810677626710015128989325459207276239452092174270025779631952676175718082710838613027858132687207163731475297710512411100930441104839947029439807950649651305115264116064428689760705212657207954516726931015984113137178985654709516771074556304631575761517432459201119825413528423839299074572148561474111618397155557679737267997732929944441494235362240137690804041557619302071568874779613442046752272510068252589173213377418874754468588547311294795236892809061506908259824767520519326399748321020915001104222152325351093172682910399941253309299498157800053941307344109746538419104785300618491684988132024782440827738508432315343635383367487759596234466808321315521643323041404345259706315581454277066073536015106794483646760847595625457058417045842183380014334899057420274439799707345566170414554011627139857595060684033501716916654697724891380677898453181118095423164028675005099892795644555210393115774904694846264997968327214305654517566051220648040848825905340241755557765771063263944386454917694230625127272991432469050851513420406301534232317364138020166837471772590761928209318243941973690483727364023080059773995726478770303608689937785162862245705807776539493514308834629203981601903942958891297389933443108491679484197155860530211415334693959953827178322987046262727377414473741569406203634344331643660512000422927411501419393271459645149626812939639558938697716789351318124409400503732772804420196458118664542811296592073237356373148164946898704794764516293749392101910117197304349694699219657977444475719715243293458371521928807983938699297233450300902820670512316271897628234205632816441753172455509752716766927097065580375094865391082797805992115875239613235388715530373612074341210396292728275425370653304408332020673265649879780939380407504208373581387346553150046099664387496831850461430137977024785765605008749996671321545596032904378721197168608061656629981299075408953562895513942745766327071956442357346281104946464214821274889326254180419814368762097217238329901187635315670600524793598703844404642079413478034673972790115818103741594428851488740887377038442237592456468156876824532872178906083764124851784166630497326869209424460650080069627019389868661793622049533831139433868839615055658044693779278675494338051894834128871768594464685824278956106674494844800125983860115183054448366141771100995875817486207534787850792071959420324695047691260310051692741280324759939644707914746079069288949400746713684663275093834105774500060573951841230989620549910672123896595291226369029000131297641719889018881420794306990524452353068964547501594394296241967219307656939747396614382806295258515764357868137764564048203062978811356227331433564269201878946042014876201286491944584686839762432353689360308175433010474002079236934464300483166944889429510603554351859582657064426866247111860003309042220923269886282094826445558772064775404877946648568352786868631833045379617934545194067346093752315102507641355713034802672325163405197949848180169138333982844916326479199679745482373573055132543544399338985873662975339091190607160241951643138776505675313439389513432554102422382061821519726697597769476693531941051635480356515794518342759305834149953857588971096344749113904145195171707357465016369029097268642828329108418439285856183983134598819411838565668480607578065934093452953050663309481881138695089649808187122222531666438108761765943582663775029389053725953985401131867413131500919418288329727588094848391105969197059544080143478581563165283308834422189886205850715770619813535964254448855039548873653454637466743298373211259576245874362059760418462373780746823795162032533297750041561356179863684256391923695711714195622657759817471598944764277259205831886656683204878142517541247650521288320112664059689310503816875016305555710966985863209668791195304933009520513960194200367336566785708651788616737577294985760894856384415469855302270654690073493169679707660484829674156813193671112576664283780269684949786226373940691035349917001293167367165680792496841919102294278434071715567577772688399535565797112081929813350902283284665741919397580380853003883241509203200352271826489051221449268369812280803657516589960091687251458068645171795605420562491557523144870237420370482510060047702004640597789329240770800550451639504016459726075250503983758308949951165913916925462969876770979831825189497941626057960650885517386301692183956952537900736160155871978739318710637569495041699453921306893333282281096723781557821827093894478261620891643238717006864340941022882936657029807442923902242825194676891356912068286094621315279652211513835411435108232445733721973748445317096898814843202608021681710400341529963809010115858273654243932820374645231919900742487313917158516947550634046429545987658914599753189508259736923697029929384356736260572873172049734830930903147888487655493881897811775097102347817730436826544112648930539261839224873013784199749382063216255740389912597392195909256594440740664868880077204155989683079252666659527457402819060796034161696307777284504750328104450386481077302486820449778694262351312173996212136001167948485807757472505749531717532002027653265581933402191297936848193899849405456101500058358410274282554973789362081363344225029313867993619951003123891676375899255355617684389674758485686196236919222126688252180085844104522508296014896731339170401670723237563918890991136701955619591726795158922344416642434366581728469775263333101685319244794446721063350238881896769216598447149883423572470765901859472993365360379226687852518808614285829040952346218414397217496767135610792827924419702217003733704894654304798385312584962339507113674083105944150970736310952984075257186150730052955906060702879830288353959769393102577858231262925456748850494758273074818035499765594630902274330283172274047819626955662428782901775143683306486507415846026744079945671009725101082505312832672960429314293873497020328126529969780164998568784016210768396031155754160610073312097965818475967810364150675084381352022118667884916632614747418639320477288831813089986770481653358785075339948765515038853798481609756671760430811409477233123811771794300069603812846391775058065870564077906385656477818131851349662264561544272209857686824641650775054167129789392399269315172548447242344944069053579772622886018410683701575726344620717063525173176888399943745333337514006151190809258601855386462013320507298340464668784573036119115774333141637406278569386709719484954692075809046484580008987697334974480938638344059590485166735636389857579121512515739649331125355214927833287897316681495158788422914591601397294012426964693059512260145658325867223396679003255694778593579632177753130825232293242852798176584660157138287828313989570863097400766272787338354226958719055942121635196244177177859145708021624675498316562539959592352295601315632338188369872763419971785790048932256714770114169332203491746516728261537151760699372727340590810919422868880378816004234318798921931093381355099009938820620833064364411714002620987650533036248045270588527741062044961439196437674991786417586070616061267975456705257358121813735269718576754773037848454484505210766553131731541231974931620668131926538688637111121340466356421522570600035297226459668972815106683043797559605459286890284449717361455362267553876241444465097820301709713209709954561707661825142530374507618720715612105534337599306344730501355592140615418406194015730139971507314648155127095220863978596331998850283959380114868123398561521661436643615041661527472507747552634016436002549473760651374288131131617302015537001930431370929892988245019621165830887404981697282064296303533023377328509765862632996660483535949613812763380815894835435703130556695816965732307890628384320862435659208044845535253913029907017480552602768237521049054148078248327537238890613836179640341820025318333527050529013931719693147774213059623806054768777143954631561473533552809961902218589394269955200007815411603764771169329887708587130721960640059221194636422623554591551454534553464001047267924241457130823943975851378648360635833385987875646859678090553986435402345192166561332006878855669144102852485421982646036279512589026651072470151340122802093202820392589645619341954047179223693338337281091315297908224585171643316845440024280612380542710458742956084712657055987333632420296969914376684681242856325818450602569168265541946035761715864435484220459776332939371327101817031321708905825670691593419534534421600058341688228399953502643404411121109207423835466689029945982222200562281845342060526615864651275319496044429451368780562267803097008729785760763611979531460156135755049067081190855729074433741585125248931470467466151864217004107345159656686933005097207700320893453495187891099032502668321820164428651986363417530644678480366196122143747536532377734038030099471114866351347561623895706636061523613894960213023628346817398811381970872565665948691047002040980129638174711146563059720634313949338394033475932869707652067158519776202283648033676321448379882996440262505587868013937224275207050413072778699454564832183930747638463603170521186916482761017156436386779516671130469584435346024575500207512568849000090931119487019463573626490615844834016524691907224925971123117795029211796926137032800683545537476188995006487284553679102070644493400969182424197494176436660018053284375840359683210213509247636733952230244083948968341623499887209585379087149947289008217648733701268768912315377108804324913557752461900276674960684962904285650869942220438625507156737076168229631501195790413980077556763938302397154167289369720677141252047672229753543254870454465844303608793951489693138760335000401483990245018688154769573656553210713909154702176098322501633089815050199970605232419564199724240353903660836508391688038447156947845253171547544692529648550121335898686539069308808484601468650694057900611347944933050825173448380790491789142433930444895148632427056010104569395802675657583464037733620601431489836739188997499316354480812096510608553457593487331071419307650807523723942046777244629839147148394105572775209470815051417580758271140791668564334873942639787255932620208465403075822456909519293403577882657594944580535407034247779532730799562201873222525464829190770384736889691448226229620604458152617472986120557296752633562169129833545419281195119794602050152601080402316668217678254784006423028266504576616757525128501025539876032391377456951641227464641302572141936410268312373031454995754061824741523876839647284749549571321964127146173679982270303125570570135848303220534308263332572441349572309111517347504762331784918205748330978332783498496554519188547748456616358151814320123921481577748326188922166482204411597508942034463382367969532550517232194927069756332629553219571293280442101358117569247630011545394170775119785379992762226623477780708679635783649633558470767524160697903622803867872012528697929711621794834601452180879679361111402430698780996377166544766258021262218555907549642012817197785893981882567217432432502996977581460267645087345347503876661191973899075442641756474550084746843356748987691007514613330183209639865901789034679357796672939069382923790183226009565712225683781014146380463296886601385503743620819536627393546322670150648186098812428276505807429197451568021482596439094566929347414397569848539552224933060543613173969152932534725564591703727951367763585270496295903794638274143203861281189958946258799621862337831516439232636780219324308274162049648802014768005343098361451417725140102044597236397976004134842979137279954198683341149706886722598606618251288619226829606668821509715957200162838531040579673417899692494962575936155892506867460968760503821735574056583181049410626842175566151951738304351403893709550359954140043536777950704899781435358713477722055907954945875239155588982306981965979712633263044969738301728564667786761758266119155413095430847601300471424287564083073682038337261826607019994830124069846191082317616656888603805637896910037381709344376699096214931821475323205497240177516419324017334981309504585558827245860800913728493164703784597116096790419429047030488500982408938311404072693337153481557072255115809598090790590420555407854003140355058607582511655450077690364995811044432243215496730745570741393992620517565850593913191855105728220502478096545076674121122263231708892362836009793165519646605321213484244139278844533418628217414916958692516350576927073194124093578712357227330116846956792174471003294183291177367554075377193581536233680576571994059983947287125456562795027751985393405491080747956501861124427558841702131524397825771729539048573019108237666171900425722135271934537104559966878690374233690757869012455527210663289873853312735527018997066202633204747942526779677830873550655194837966299288839335958874731016766110730959672081397047052912519298804199881852589902421394982684931207005424185141106234208485405670390834346453327065975509440456014697598465404642594355976661159605743561847022719583867471281483443009003859194254903678735644459615194399443167992152779556006021138752299600388173640581267883141405587017500416545648852556244779232765495022062460191956817042156875631947235734820304222381616132469952683762051282326958935857933745184151617167609361649143198061291808985105601553609955227925894120870544084346215245090221864022672194611084406255296997042281353615726619691177767185628913237960452181433570205090261567872761596789310970688267662200073883073707206106297846944224910915307047627929885061188818452724080700707270382380572557640286971354067112192718243927619182258426882932778536135303101366138687001289056615881627911622207536420750890309327435254790614443082005440253742108645479385799966710507500769603443557614902512468558427072139177702876479763208526776803721857821003327282645892137554267446312298019475018514135871948270931527487282335546679060061864562275234373459648216042079660383704343091750853514828526404491572575273095157354566284079911697141098254612627339700253787844333793429293628494170782240322806202098361256425107338239013724716208487525047447834519151639846629578227637870522423915033246554962123203884353022636951422567244532114511387257923496357717615130977726763997656616544054395243650686978267703168163724877378022753482191784489706132983820378095328725499693702949850494222278435034613337699814307689726801273651879345664441574104563730729202503750984007540896693478981995247730359039818682086419202285480171493925296259337781496122001484310005725248910835883263771820761128761763975084168146453923907503351815447720111543137385089326370480430653980069547999010825467653312738512448019335192115475795690378980611003243517201927672982227690445029680819350752103557287763882338724083386826019597972297646926164706891428487521441420927793355304734768596947388528275943300869267411484311683191093551789382446145008237005328056333962244474415510633774184063646734048284624333091360958423902895260602342705341718544370477694317638493352088680815060268634462213956094116849227912236187131012712543562649360306847622291946834668662867765047391478823007221959450664525737423834214629262981614793981143595913446708936013694937397743721810346340382320369116437904979215528687991271582672110740467953233840049400841245280438733025548457885945681345511831567434301255812737503374656772992120660475956763713780612657371477556503809942696242514229904240869333116169196262503180184905515652013636680505025432360259501843076185607690355368066960552300534762861363744983528131363259007620499978153781228675717740727321300041969176640928470085379145391515779736285430377156124388447921646400436316614913878489656619720613998916833007762819681005793674649098251622429344932178995047897141953980030622241044288455296826706423061218142611621927437228454064551846678951581394010219917162489327068654491158348041139046742871427708233969164008536344921615810136881128854516476645198219114172519195606239625291136051901605085814511616230636017812995858165079064279117434486395108281783453958030884550533974280379685512636143092448690886682186721298682222899624909222073298355895482827413296481714679445324861021354030060586276958421749012370180479893028069516988564679271516508089841160405895009032659482173539686506147916468668013098569904979011770569175688444323572770530482197519619631901252182737206170873432563448092992458703609051694624359334914195245753810264959079298423342145947548033741634237438325631144357776288768636686474672495788370161692747389164987464966186781675368441473734363127217198613584896810754763282688710011491615117988742066528393613522596536597992418483711499407227018676343307323040746747732771242320791746057358480009183831163027764495907154332588453044129772136795792732853344290340240318318221180559266485137584711900647903295368779360589134416209741708912434798597491020182250352905500022566268787107871057309927970321845399096430628472072864750390703076536426201004509102036551469802232486505725108865783699015132435203536054849011673599647842914098248800910828418344872049159658847249501870208980155966094652474165092132491168239669424734977787635983327913514261945528437749552961798712589802983187067517259240120611972626376605958353695071010949991593940421385653212271257515683683463488007323651431572042825742306488245027007601904292268360980416672611341941874462164904426290174137539182399239420342003755201253692823487942986470920208748534327897058594797311930419162011460811316012988785694048821191689243950603839675666318605122421317996911487651053694917976527510622442833395989582574159805011526968122011877659676849951067277958500475499051143548192677602556051044537111899236960009161956743266236749523985771387794607210566598228229553060611283511895578065427531942825649767484793427427317027628637541154906878060980755830923163103924306052204598490753310789203628550186199838012124646134787272829919318993471963968126046870781533457105999198948176873658505274076182032659632203682613512835288514081969037397973667145980731662679838936504993983690701251332896965447314754944063538931339241696047887206195625005254432523765008635797904585216154078517824599089352673566645582002742712112038647044416509701748742743298218338418532600658586428582201291594105366267393467778179616229352267782897012831025281388190278360119630044481448929156564345435044536096176651090534109685604598270803956849689466990992820397264218733112665196849417952241793450353545899174625287624097229640481349601029619357932669885776567774276503345458588329499000270310229435019484907303723911158881624619171447875335817050078483708172716451453493024417539396176290184057843657680627535030703405019446422050622278511796706979883422842082902987439655737347688531826277810940862652930173794207772610840742209979272996185413553067793405700232792227660709662309648822562262628560303026608128258838010900780830226256583414578562653081210165182256597579397583832505814541668023363634568042015559191520254610966569265264321183591889443819600860081757558509383834128167462949348995846821150736650636023470988950909541666490533170563974594212054849385362618807158665909474398216693458264709197542789197954898415566905763609185705860628395763353018751514630683210487834401093069607830823763657976423816807799601571294527599353625728624952462806161438008162415006525922375020949822312029642726603821037696232768795252062248418935541939924917238572743905429641046899468237385249054763617842662192330775318534992126117138329068943067356205614019688142600037829350465430219388116436097144581414588021247407254316283060842048901073017164868148017821850485445659039250382502770000028712084494847100313861068320238180349598764749549049120778609748460799775218624195695002060672289604241613253663147161024440972422412999405582845187117637178669078796781498632387052567805178478544395794708504307639705647757097142083416681313871398273856747064303523462984149281111425941522269244002487073520750115137479520686966393361874624615356893520462704031316097436061656115086325384801132812912053936818458562096006431743290216068975498582730834676694297411758976193246291339539670439802204457822284198284096134632651030523099281221732635461151549393963713973944025471954798137474783108572866878810267889553138352757544746263977990371289104082060770405917269461834298395783636243130103006103772131057340797967639210065444573271132901998989045722369027559096572764793476083444591064665944908446717006302500179858309782102287886286220638091312754871364841690480903274795253009918265256174182627845546555079006715374848122513239254832352830569012840228090758400677285821369078176374399911178725301556414451045370478577230296750004212568586777454976573474501539635960994948056577088660112186043041368384249205930272217441640731080251255622638559552741500435359776981730185868811630599332862174086682517817628620905067718199042219542638590736374561285310634884494665081629342759820886390223136220935341788671050220491892083370053627657751062028855208745597523705193085097918957202576156340451624907185507195894409010339298276447617602971679529989662724343482200308936482072084111183644001012675282374224530686640479615304502716581444110349383693528563655060814601642143910885521787278324855184407267629800870162803812700639842835702513728888271284061911647611935743900666307789545474943378324147216395907731950925902803245080720491766577427256989504272879532693440186447723955414569114771199529762095210207160860447328034055889488276855181512436949601540259634382433703259502115571795847873087332660809009148440506924205248785886183353149624533790312766293111932842160466075213212150087373710735804439247803799537918446660165507441373396536413739220421697024613830998459687406640138294814061913579424345084392375478160066629981228000408593130544643460386779528527469340127969227321097886680558458768976463073406500288942403744588655368199313680712432393375513249120605801751142685750173403382155519273230520409748898046133383006440768199045130470400668240535085849317701565088650260615839226983312142996522153521174151563977553394437109106170519549323299458517489654959385408395078311033970526002261333997641465561215261135078429116939292515217782362704310064851325114592439811549644361803365657351870730177839562905104101886257296956572529745359868499412535242800170361966437843996708247205360687675911587164694596082898030785344421824269819533706642092208542941102423255120322922373942205658191582545958872462150042103755658291880252481303782571129052745901910498451756620092382095815422417777631753174177107054654769250655862550179018016953284408976702991002453692358267072464756158471285935817261704727586456322123086524027594300746193073849270338682573659733767993272162388063757384920352104551232759742007757885367508192134096155417170058316132252628957951373012822036594150414106588704699887694908814339063968341210861034144455267138342402130272522269510013343187220765987878132745044205286719382822971124588614138929898182907431352725893232565233402738995601919004827732786489085248080803776594573937896961303027986041756249145253385276975433540211361922844848216027715728682823782533851349155523444342531810164595634274260685724584079502030482426387136911164121159500392477086957658516986812332288535029215629459415819399458174544079000681570637055729791927768959620485775717381340634743515378200904787174997142514728604386170957675440627124609087054310751148952663100917442159717864245720843233759510891886030729856250068330159636926606000792548335147594058049859950482325131153661215279780032535361752889216546374855629777453420329614818073348843005330398002999568241126176180025479025449262350487117519260848961832140068269042635250618494451604278806968793969977270199469072329428326823421990949483002740949864503650906756079273552386561134777803807467111770662089792590703559406987892817530239279521304778923280073410265381031068884071478546708789061234471249436188151096528783848977227332501548503822005936061312262165904059882130031710042212595977085716468645998939128811345721158613083532632528775626573843002778169360266201128028042423610174694187389292027449341966818255286920450605123044605993074157965261040505848996086467911417795981531211091757172993624653535009199013033781644970997355903897322701385668685104162176680345259272920886168621093303176485301536987434770896380789819876113140213588461103239983088148030719093407088070713468627400215583322886102112624755436489713615805387436055437508566634985174939963657770906417187732862677098221672679277306197518004974210886384647702008491215458664111146383200023043862324717620230011334593807668377043347341124035757987722967035726938521377659185562258756973682727241687877217147834245139318736950236562477241865383137664444586966699863638704213104991594891248529203107320743548307075662036658164222021925459326706137742870333561858929929170205185654473229574322545039561749211033516052016489728996285182240529127279221377866133472215275681866753331665775533258892743932234545089553874010431391604736869760525958752185542613035862820883330308877091506372345277191974104820938192674225303369612169549767863827968665247435323657625964619063622112884693907857900649222746981321216352983621365896009923060337142530218001587686237754124280523058949758858566741737841379637012756415322598677697946506806311436065917534819237255088566059374531921964903233245998695141314693719798395388993154083567274097819288275699663981431956679917600799535008841220116251721725045325448715656132552249591514666215923167571137155954303362209637047754255493160274038990824638246101873653761605403532943959711487905960005208865913847056850655906850381206690257842833308624651220910635340163675635527706549640917180402186795068069185242996237550724112374356874203417292429266186664283342271184317208512985347918412431257992126768614645851363953184443446940407062721233795545085609889930075282705785851801885368758385005220049707135544961330927646034740842737709781412708049068071659237469241890507387678221318516640303900332853573181780166875993754975843443308050370017016576591909421530706209231138881778469090851396178445657366481669863802590684646228519531489664002496488510090546757235048454526148850767806859331370348804781038949692856034484240701997614918658858433654400931109418094169774956263534376626493363395780715955426791947802250929023357007233756700726751631017032290267868288357666051520921969604345236920728541595576569068085929842323422062958234607760222340535913144149202659468893972470930906562228079865038683771380388742677534087413051662804692117203287399483843731345191405157655115622129398456558083469141383288155241342732667630181591073747055636820220887521325931520927045089283145952285253214012501892259555534344877051848789805478873458554269912799029308692461147513939637429367118197129946542412698650154008780869862508725964107574084115074255152970995987085890148942745303483395537558949158394370435834225111764449871754360061253574254704036968888039540395968502443007386740842757264174455361686539183249512873013238349166749973657878017680618845316835266980104278586277436008038741547958496778699576801241437513952193037977391742823346358051252989262430086161399167567408484983110368637709605256484695235103568495372648550124171310218939269844379980725659008935519365193514174295205204736476567013760150783036216680188371777665259476774629084511305760583389573993981751554180493687936143320939937035411357604333539474651740296297370315461943753708690680688511419802322336603182496746440817923604542429995520936643160755369202688064210815985627122293547711592495124731021617618143909470480869310796284103305397551015101802615661988946657298069345789815294460181202252991287234205116905181927108068059004858593176188383015581515580227351293677337105071946715951548278283221571359413537969657421600268857340047361044599325314638927860737790785853457438690483003420757723907467900269460857704713011953738843657327071732505872905572314313711187387056371474716718771724012375280009743169493083355222607166028450024233226097066092926146969290090177617997331805885382353909905309736897776317890335929823698216552327081189624907161932471093470302868441388300764791368636847726718117722909625997833839883402900949579312867682870909301039892012627687504928681912618740466560850065728796477781502860771538308370973018223521895294452772265132939498742995492298158092065195157311010075338415421254330024346810624896346349173351684852417574198099607056161501883483388208441767853379515148544729732485592611651042448331861620079694033109678570528018464632498302899917059695777484571984769119868027786107916137568518923561842279330213341030241161251961666975953934826175017685757236624363785018015354640023534490213176384985404143637246328843388403488182457211027175302572459836386531588345299070689037069543917437853278160758425376220506217789094218476668492018292674488654180964068842744110999443051046435401948075935829400647191874815503276649608046173001079836362886698830838315002600771528527250592177249910452400223888121500827441028580193380328047170907372210413768292083292663491163556696764154138548534480968660592323728378266900796978484322424736410443653860620364435731517989132508795646433005597048989719841778924728708763382388498629485921011205628657010270251328763293791828416439800790287953472726666184082400217860731651476481864877284145444564640879114705580343426296737478450606423530518596637738311658771149013225514885469438462582404622895876623055792869703753154170364602827938358534043387788133054345078379595314520002194413969895359341540709457370339484292723041182945900730259955548765931051305460961295780445916173154772603149456813503393262137803727073774300784409170375447590352862422416361854252279270886353298519214678914024446425851055055606142740896299570779921846194000991124291839537897803189882203443723433754712511074234000257976067194594794457419973113033700654979946038425821885905791728156195654663944203168458477125293530481976290369612197613434714059232185149711669626856429137817511936947300257977447287129825785450561989054769186022044494376657416141658462744599505615428818747392584972517090768346638887364176429695573920301358599422125946400477199906190449567911846038939177840198553499148200458801033863246902314893398711271114536638778069970538080932841840921639375428191104509459806981676173079272226312630032986832886319359439839563615361857644741509885029705410089155516002210876353450314738661313890820587771364433304703764795541380629131161304387769120587144137436065526440222673622901727009373718363776366199290472819362904292443213745074326572668473454430763691434850235490194479255812030228438922427297898667992488666317174499827612720067634946515594127869056439262583829273333797905043916528723053274459894554006318567168780295758448173665152402783324958669476027430696484850016942506061332805674261548473320080016704044314159663026417386883104885047497618226991500844528432190963979776402790321822640804167451832890659444993454068417332637256791398275885355166195456238868264893393223679113648859717481304196362414634609252263882187111948673206186201744026161704232637352191511842515204183758569042936387933559246160568641470537524542230926216315166624542198277158894181050075528307393643105280988532349971387254921732934923778008379021746729086073970584721888041822275523669124312203955119912175113771924385190861941355281545863192022614214410886729689419158360427028145175016784563283769574200179473780462404638692527383927032258592013527657197042641587295056554924206194391535780307640104848451641347822211263797888593096593124914482113334524299278118151355956745574988398355443641892430044996339709580508298559708658887361894054920798005577781634284640203415216103727862633662662043781851212851163799280475918529305266852588985745313755513350260699377528037475872555785708281476227701393718278925914378724158700478039694910876166456673070240969226609146542493855963718376498359862168804298230458967972724043048834723733858939988303202014039866699814567973992441221991926081529723981610942158243324547883851749276459741400479223942393644560415067782865698332376634148491257437175975837465491015463194391080969288691812752365459452124209925630436089634918175841028833340884989359396836798101392707120627193099625772598673832754194696938742475828099307218323211420343878768441250928061200079930385613664585131074313028378587247654647805145070246525216681045839381678161393218720220140887117126673705241799527508392778703735581315014481910037238760661108908679774003345063824625686457182709200899988397498313978729005992074323741153527578863453713022224476896973617650162978786572971764729669270880882484255806435693096452438802617091398754802239390057787644307982898669306111987381379027632354649139941673258817843852056756536876962974568156058285309978323579860757238583360611545302724228405140077341741366199310295729424028365100862882335042874307171342814003164351286566885698213665522304173683113036510225380517955678996110947478232132922167779761060407385488812462577210327717457961728659074790100517595845492110187828912575740645102356675756169023363626897573201579966900829164674326363910617765163565048586637333808155136103713605998379601748853549735980940947991889844663563427584957585965592080726459344673689692766785854575351806194771426601227943138267770842865650282944146493467343836196522768522795750174787649953813074169947591559537419906088745962192527202525924115039597354695883612344893498504558726796521467646121596273794285970813505435577760022083003874508126576418122734714961096444488692484464480550050034609313772377136270055834699128333020892528247642598865943742261791029057965261016798015844132557192683944947389974422589094992753610735302358294157690042183330410147113114036599473302711387354512070119291542354903498667647115103337921713541868094703272841369135581828857351224451303300379670376968184778426701420429913100686063455520935177872336357463126976527806692686599453266812216996101226160993551548736821984000409054817677599563419714028140029387690727978441886668295628345642302344989568087914915110980134327981678067786067926475766020231064614870604626015571183257199122154679709770405903750279266529077415656596686322166141974767090503778241549092317444240261233592326742360378632542629822741734378324581403170896687591821599507586741025898202368151961621811845680791059440806462520978740546567604766763398046664946968484245837915407609461060070345317812435110076278903515144740130626297385739785992865472069274271547086849889033518079604463397928990064597455907272637022322401046955508295919462637176416068153717629707362938365432050177277044315021542805416417425669634654337855965229606305485280213717877403144504672480511989034926486406719923882666211181921110827164799778656011716863423448107184864908314820772329494241405912042683367691503174507514689357499385784041275510319257833099637273470460740523721622485596113734138559758971707466318459489718249162430268424749241487181770686382051954171474738351580408475822140057721028517892159752106818634407823429469939006666750508629628358975125652852755883209038254879695736581984398412465006298786880061420071297171365600737209937410789518081080824164168201674220923276832546495242681127557573836398825617404547641072083414266220711688571090157820121595019483935563101852488431467314861178198091834232759582456501230537551163914771222964497618414196675863026133997320123501333421294080245791243048797717906220591685431927803964816438679983475899060050948084480374855865626849303767058770754374689823667866149253790315030721078073554216496539249422363580914510055972966458770487991128947901498673708991192766619873116988873965711887038529178876160105186716459688334156256038500619682557600398429490246822775893385514272471587375361852335152529149999205109386514758224770765532463588507435045349213055541434331276831494457735782177947478764232583071252188926883170034355851699688560324438364949827540370573767948333979386327743388987500640361463970422033905683702736004209608259701165467283729299375858795978828989139410785314830628498460843527801116891047667636191121195593432156449662583609215908950511001903617064302188754654160880519764579221829205192422368250327365856683929766752721750494047330561669241487552086136347406960561816837828553720375303405685610015369157904521959564473813876912939877769480091871187187140186350585951244740477804498645137412761904327809040984142628893476157024128416673165080514968009750748868020965908096680637519784904068772169148071123776283090403072313396063340435102923817321798183124197957169739894882160426819175637423636075190060408987182406361948876820677568999211042343308050978080060099027362884967978237336889895743645304611129215721010658082301926590010823613896130574797506421880499510244615979782169396065092567997308537108537490791768344319328724922112923041143646961361677160684848134207513317770814944891073460278023251830326818916036059998382696911762310423821781689514534708374594054329412432481600290801878837113898305403411244061837587632457067000928500731597761569525345718068805650209704701698225833243708216152779189904359399684846778618546550300342532245468934245111409428602509968737187131755103023143391342088963833012381614762023650544929201286150656991856704193192351427093316982231295481533690500602868629047806407686707472697866200607798048593963639461301054955206815851259738936172129431228143949183492068301005765832102415112477960217979837989893667674629545868445625188754188187970276313498782964652359319319883937529007802266792069167034104526515690612165095267946892433888357051586729314173248131865546248337095997079103441035035487869602268591244926726756398805616761147855187517492662251560861712210457797730143513665190752144757448619764348069971128756222144732882825851803058938836380263273770839708762983231058091979134652227839487971180870524228665277122551467128596974464065290568218106832250487624698481294350809754349646262614089807952898722729674646345350349397354461868737960026024082521470114467553465009322330705221611633421261082302913897671425332031804802687447189088352217465016523145382383983337238215231877418454303474727448707954443540608406714099544777069782853530169696813051000580644086132190914609648136074654259007085518628839923976902796853963416371827863591572370781309124196820264881234681422297701744396856989158180963213317861269332750330458989394373681462174975530949142190825706419052144462150430976002021446695968732875344488378913257997210164338013928552845499398153534633035008848077614481269823352383619538873295861099958203398680398474848959981449938652188646125746360661196725422820941238007176780615955724593775256860675555485564932369947753187896727817402357507672267380219591079205995810935361430911045101701447408442994743119789715315644596165052062128109262491144235454350023282529089441814192369758190555269536650357590774995578601923334602418723129343088575337254253965369300876102579140802724565383011690118285972082432443407314979144903089506373111404110887119002288798711828798613164670528096461525889693218446820206091631013259485992124172298900644923042949102153746488332623784028966541854278493544221769086154300838220153369062638833390566606795690230515340098999506463204535097599783025299335487743149289187434213458807128641815040580108652108578858700489561359316076283570761790693396590167372431840846791678975147322436612491352326189680060460662200410483927047141124431007837408240203061664431287613467044978164380784944085914404049639867889021440371897983929136224578935330933681114883869100686933981913893078210588226758608852798941741708910876848931708003291989547518573688670524708573206853726243317231327583724036335358229134678924795311514565185143312152392626750980657160169193355060250929765226590217529917243089962861253692675583350322919667462506323625879722649517517199583134144128710355679483926645412777808564014860777558696462359830581201494782034582753206426898382500366907540018784377280959075380497466738091166957582135947654935478503682440578862117442295385830261019955187204716231859922376144342242783464272278067209480328487032674310864602408725213610346582320187908927770466304620396306130858296062214585189123913237511412961134802490937390001349482126418873552180868944971722628883415619249344529082898503473549448548167762398808580402101535075056083042443572341984315967928699330883223710032665804534557509130371709546105854948491509167760250728932962055182442873198327655517015872653567784633909615986136370375185946647322300843569292064347927841125027587080663062469667201143867523136472147100362105151854621340986054821280948592167346732789689361539179020565890299177757676998688378225461382931735082755197636527132384975450157487054198715340829846252095820274432092722724890668336120425513888384747565301525566864822642534915031937940291063880604993319197587889541340073024075975096576541412485921864486201384816178397680766729973855555024792096880649588584995149974105985621137005879434269811700204113858531583999626463360883303384281849156748490488918975196623526561522709602902597753254130335023382248840386390791715450981183160232400294695971163076171357497146497196266820370892678429767616128286836865370820805695037327836426174322760662145163603676675962730182745299109184647681742823350058414611310968616256128385335403057469644051037813609832179554243851703187369279777034852731324719365095021878914111198307592867945229425397615188722051717248449922981076498351900199836192155470219162021600691543984527435938137852317536026440464227619339317054335627495235961759553042390364334100148504986109409011610523792645530826213781578234851010165793337279212606314914642529298746930969429832093979392945670252331418452406857540647202213482684769148228560639845318197478301176449874314471410311048144857280054944026611234854372411748529433660483468831231325138162779063458253879340727478171478035296362387712047064408550744184829188427085093691786233971856397307606995368887648488317536683711544700572321968723649531447686054391616025710632522497575289099202697122066664700434832655975288235181705185770312282152369552875710155902337130507192205487848211604872705200540832034974877453763334869538300474683865523794988719646307150477832014553692400099613689912799674100528908217500902791000351633426486798170082502588337245578990069175917146761734389956112465347697974219117705076049004272844505786970583385441290194081797215866589385965774561019869136077792626701018800371646421020438765440543317623370576398348741113646873466583830011515355828622206590500385585598326027813163045839036773536972161964044776696060733503010539905495329607736467750544686020408017960612614942109799435206760513383516981762228410858525006906417673502299791080197548523108947529877860602536599366004885428029964918700631400502296097440784254546361494626229877890150791169065337127343228675519203175095065216477832973907894779869093993324075723315549357728287848343439258811302283781888309484427965182969625103387193221090553520388355265539127839874587056729602029932468130185187849621124835201877975849351044022441699210820422742096192628032158529657585794984305455802270708770575807791417376918472804895269994289910039104111955803469403182226563333345716558386115676383868590242607548105192457579976632482652426748067660596240823484922151537718474538347499453625935754498329063226269185002798582241668283595355555428549485147164483962560163544554218226779765420289267652445385041002162964207968917917537724444075192003137099351347170320045571740592332295867500797335828070699818530035516905276468901091606428809711194478981176836424329297694316734078119340305480030623990809327002255747879804712691549110607689873202213991693116225987245037749536501519626882117116807992838005876029411597739140846098441998564855442733619038521334611604616694079670313039910549631596914332882549660819740040856975468997734190437498760532152855947878101128492903392185982418722041410422261440256353783727675051248029380874181303551929581829497940239577330679849729976000615388556083654013099948919957002111263810365338759054322095911869994552395980469860289492780834090114202257698034412395043990741727069521684453884365670477804286014422631065449545740967585770946679058024392307913033960921499923875657029982000200073106252503110926384819052858040144477146337433824888191409584914195637412881275432320301228382478960147430096654248473137536616207752777526035511667190108989952067392417126232623477152329085411562951345300210028020507133055545816893627935333312891873047479852084563578767280898956355013297362918241009487538799782937617639294104257894650946557106972370617746611682629730810521879688210149190775794622447941892192642032930095630272811833556603245389974792626497322401652746043399237569480917880568897129543467624784847537336982633277599325285569550600119133058978659507434447545153983298590873311196277357464534162812004600990556577375540792207389796162254754346226016957006144485601253674293493486193277478413182307929743354501408118942442586435428810711955824268803882309888263676429828830099939809825306613496560114964388364709772564103608402129475984701026658950268996651144859276141612154899885856087675631196333319365451161981979414569713876435449546883712406993679606995523445076563517498319893274736720634953471443967516592009704040496545701300181170672207249686890153518474294298083010036967596746198616638453820583083540878201928139439485482160496568465729425814260058761591825606140220464220108729681114062181242941119765846400874467579842287234985280307339382259471331870055632406155328426303458513530891881738962066540247732880551955526567502625927879809846569179272650958816118933095622197793673879585924743147419007531294380525541112185328352932026618445687560069744025583572075056883967097461877670464794079084205844665116506543280275836074311239988995323703599911474478659052435968210738540309152631704427104365966377746891094190555059042562712651436872448389291209180207134791069544034069742578702247303846077184790407458097533492772929798705836430049263904834285444656682889730372030929248268048672636463304454322321750066638747163792821194070130886194900197015965106615713793616394328470834372288566490350805377755610594440305380581245005471420685213246028513110590732786805131325539234518580361824505542779951161387136303774997974110082516728089284457148629485582109288873356381255446663809974535314340083106895861379244868121203637250763996353646524976080802967968868039331999328969557009053746848429321089611339421517002836714355988496307595772717249752487067581224948034064773497073002114333758289505524583779008500946023247682189528137407294129110588339932831136120922913534826035447454555764188252953283278769086531662365195271090800919224907227095916428825748182587690126040258010171647770933204462739476047370042720341693403954090731919241479118929338886164890131744422541365818309527784880158571524476735537753066827076749266699230024772443029321775622499696046273345743917300736703418712007663387127297043309660485646351102284302180825098704075353879550075652463990088205283778951280308375056949045967096214546773916721432476316680139983396309930464915131787288800083488980923744510402128594124688542993336093537560540616871058907432234622082815607082183996445275636925087265032468684180115087811623815728051568094447661603969255102713552895196359831013581805112113228748851371313152130682148488026207790214494189886407323724888752118311329137037052458214516688503296171326815337100483485418165700219205265686865759935121343833315497496684101799181063029365889336493812650430375232644774412226596909137500362017318035033531402824493976677912568352675720422191391574336984618652074842146579267925478524947077119001996596774225815974297548894496105791496667350944707143891095917774831277664738090072508461711756560921423425740549018556233022002361597436951256626136668994755665178995486592804246727770376043195555983987835513943683758557713335850847433118771244814479748920293709108408910758462567855820446063038638877974996397941429376934693318822400985783797940559100368081475548216624301377646781669477033824156770062319642406695388706912981033026702150254669951292014222419513828481018707382880957525562690202849895553472957849587542625913648464736753450858839453451867793363721135099440818878790339460760213155311644931652468339077958590263278648749371486689277381722518609189727890540438028835381007390227829781835100582870303466745442225422396077593520459371347368311383935005818277819426282719618917782274845464924247278557621001217149739131544866312017479858823971858426949713771344360888355553535484925594861523241375994945484757756222982973375752151208557641464240820911335868562204383076834229033286106735533952966597895010411702943428583811557165934412214970384645298903127561758614453933443382967751369157227627282350685928605880407387153589739809852257996054808741730515513933576471848106315557014685011535362855468140201684521460230328807625414315617560669550477026092449766649051121326829191174205364842504246836208446924429198097958684165643638097584376930149798509172547431615991611453289793208940393612982084732302132604078701351323664659277272269457685436974225334494862814375819291188857955235536235852028292854689500104041046637685685223225999534362943923782131864931738230733027711686350417497667522450091484377837098442089669873848632044154197284553984265995910536903489645751000602219976538309529068380387582545960640014639354446030409981242529511530899421552498601072609648163983071502973390830678417146694294650944800193766739199649736070303462347309982061196391141879405460566904768198322691150038441604417292331788111830811321257627526707885470264063470514762264748779893262004506353650342362662008777964025581701751262758843520294276070546096790653660701524196542131370354631753578430257299112593987312670810414365306047056894894208931067914883462548973448686794755461787570203555422798713364295970356427264494571662272265870552009548674954517273935804047737402904492624339707948512381760143236052962317780724777777576616492174996434917330650730517740722343885366188089769823253049892264096880496268757341161330733927001245999352380779754069772656589518123463595097553518238656807757301857220664130910940964409880454489562254603596304195502355017874095277530950933669967484893798599326220499347536777598746203956202922800424970029084801574699878005708811892372648582308704367304737882159082164140295953058399895580657012326928072877690337367024530226300170888086644953533179702878421807453571819864806425964375401686205752137188460959875993901393760733946012148561784314367322596095729900711529102924862793857929495646681804200691400013361972201168528806634611272188864741856576126719928597349663244389383625820042332978265673482582573127915629606013227479972416553374774894223276888622626937207090735116558385393647917736081267637486032502949759631232811753056923646730623926546123135864558950877844768689535449002697953772933649054668626765845898380830754275860672712650346250532081012532941339146408291680253350170234569340470317941978040690198230037811070169797241016915237042258452203292634319689013283643410820410180686425764749435220276072563036972274424052992334723324500335329282471765159492574049883089098151841943367177503572253669339893152344780435948544531235116443445183671343452145032532059713736433537725153105518343056911083108626436034639926781203559909206044210249527049307919308827036419442858794272265563560634520115253322087932146321431359277604512698049483407002978021806275192136190085468615893600081660249575710978766971397717373854164070829038021153108619175611458475227419820939974293593866145015965783922897116168354929488162083495293481364090515161629248975749132576364702348526940373572886080254996090769651953113050446089356636996145621222829797694939608597769640480434427496127612777027484200660152919876126359505784366166556966475965442057668928133277415486337072949930739299011966578452584116917130669588387961552293668070681467462473517650734332343034318090597289703573773037830869423413006466693014033313268348174722348983327144555603920455494062117976365517117437921193290860023646331716310732373604072241505080905004642850907131290220360441528365178907051835724844200554579333341398115426483622359406326342455344432559667508578622399362388187380398029748037939561737835248434980518317348442485623728338262699615171379070276944601293955723155462651130346327037147380085495653620508216088616653152058681654501981322021436424760491591475320602700503521378432234721872885855284911567797073704349717524408186989211714232396795647247165538349779472418330662936855877512071098249020636279378294812662863604483966710372568008076042374446538715325381350103975814958544472665643144039220647515344897731446789899558536792528531910866265383606738004462391844956887663541470320845635972685587690186353012966523066109901313429516609129028815603133045932039631717447550659515431990176967422081130160033211518376327324324418980780148557857373615692195445179280148097999590076397951642794845757646533979075737549366552828399521368752163238854628443699898489686009118456571478995157968324655477118789538232537428363110917752010878152556283550699113933581187530081849458319472535811781056670554227352362542242023735284421747019578205115331501894640414991989978093271872304103113836017021374808760491044317189110946529949170424161220135284608900947088076311887331600906578913703502608517094598069386469677316122328299121292532099509626612484819586810166274641117192978929749286455817019277151088210097154770250768089156095436967521902056851551089059340113434995574860303139729845299755093019986942472438273667830070649173335125277400394582910573616685473939420603932168891107794909065959463700474758095064111431098465622866349763036193845181120897736052168761500566889880879140785351486723051944195087444264137306937982572942900856154619072423223812875713937854841236318802970771352469888579497402252132801939007349057326980491096170508081021767313747795137836118143796060745257669847926508411168183045777378003626820894160633170658765998607498142241052646759317918640563396342115232090703674602737628629557921048688937178337352987008612311724676906632923743287667694138717470797268175468726464032563426429966945180868394218430974088172769240538030399010458638526676671239599141967163187774844633505723229390249762071482987768684456649632615842422888679159794161982864128651954689257397879510887285314933400520247073889251358573147840141085941463071614308629253774155526854072697382861122845061136660348257185378784251519623459986232338410147979639043368341438647782950891580259363760135159396618704659764251891417403854952693721275450151860481574065979019986365585853427383477099671833272704553616006200295683048971386697606968844782461894689879268717987910034741704578292030020943807936751117871749392897703402322305101527373171927701139922687829999455420134752842801094457095367602586199680948986057132518230035211775636914685012657379661962635574695562685425619775888973255611772820660167016624895158594134789596996766829641625290296013188974526107849052883398854434400617281690443275979442510340719214204491776331937666127359467786546653092462089082379175195430215696727507572326813084935761513074239066988139250758438431791377327262231275492784317501640372747760336554911385986400955624392089185532606431420094445134812406856365693736443029480024132432683642765317190870024037722656600071668406811679349006962121066283404321305628230543058744503295998103895658256436885451688986173430626313241600328731301991216651254404093316527370712621738936905434653115935410312790638631593280812932996117168761953912148110505069855926511344187909615766784386201581187633588903946918289675432094100032045178411568358265605627226284479770371628359348782176657161472628775136114235370045660158980465363397420403926233721172340662611497995105155638143687384276952813831038178880371844610842651962936766874491459635239012060357104432068516372277013988887225160678629024931676412932222657463408864800540030801678525327291156858708412417449965120438940578861418422713087824035809192760808656569338141080633253541037591443858939019116694890416640722518567200106455456823333526702269960316482813190199271244976045402533151721903395693413081624747712418260975512936838877242432790998478324005135730140578282537263245151404716258954858297175773894098013188381206216186681406230404064327852566185188384227153212284891718034631969230781429147037248703438034436430563301314453502312374549585746330505891309841992855014741086825996284702346583370333965389213259128889406013965348541432096998619960453328201857355811216190985908943398988414600176394952412567660350148692570365725623761003212403996091204560378665503079591240470243240274878583027702309622992073449049579827811210363623284517771490805667113977080463944079288345502404687415916892114072204349872532754485389041839686192035483335810105465799039814705390110524529806755037207126041807206166440952147085170483619763183219987904048459594113984764356339671973490943405979690555118443864531677741966906049027926614906105039372815922896101245664291300516808742304020713234148750604729646918513544516433410189188528664359013008599552653967882593151447792302847858918161476525335679976989564107564417030121084738271235337165329266734150329878127366926442137483743130179576119325488822865451364364059281399263283191361249767696219146431666669996678638865845079881905438367759282266341427562830168185881019452044735092316177361372917272507133682206970846402028061068539891716927897802588026950330638818768799362075664429347970339300164882520624687860126778892301934765113657559008940714797512890557032583500513188419719894371123741925828163700864552115442171024672043445307807523668584736090959596816961476210654722208679187102173790721240972940109836842501947630369242355944521144976281713684000926148995525504571971196038528144166771712750737172137141871017578114926761697600495388022254467096018218920947347582573937325169249397564426025124442566055019855243764267026739455864109382489243289275769096169235148928329855954667504059388141611563389310539788237391945456456242805257281930510428200591369028691644222835969128966388588113117999146502479624840536373314149268033787281033233669858590699567187755865511605510146496101423941255419230122880241220799430744057434113790337463644146432598802579266100692784464908615813756579201073037286150721648694728980655798757318725997889350132560599156021134293476043962252780201559096470300021389588541777444801339971109992671101380472678546722144305382419943552103606396513970255909837365547186375578162834161604162769143602637748380730102430938107698097863779713738146976205949333412118958429001135382115625997579048422065199496706223188753599602540637298172667480039638489295939730422592619720167114641315796728156981222255261960630305821137264107412488183476463891305241109143703972568982330589569100887213810070122891990809421329137797230698437136629091038417904856552548898009591745411013069742293914003412813361829810744588874665926941875491509823326498979074762124786241453065601268128550265401345663702138887758549524904933296537152689624502063145862949145445431374750580420632953932177169152428655514944566210196698386799125157682817111012908946163536314497138891043785640838760726964820160140142698209771833073712285140256080281444645437958250984682541941758155794246946151857320362356675336494032931257389056402639655900362152421356227040183848872601064801948061688668267729002156656048407583908062768840459582131312695076338731777789290380929354635662820126021366785329513166157970986106499646660449760995989998072806976804611954037449745439189555510750512261920779760549910054514764908520771178889806319111551636930458659704364730619664670080462117981407931489567984272587202546294596690477395762889303574426414262007247611611485447964720270586734840550534539235799789378993948907928490196626892640036629368537497121135160967161976501795212404230257571946961145264393087669843210268224885802100070181382295327153493956802349091625776266082847541933579188673354858654765688244368514655360835839163584368981506861735455185012990974443506976679836165776188138906424704655347777506107015720223898564754777058204159688510887308001805335794513261037086559009471184105472064165924909449545745856817194427060729172689703699461317233964923937382464461132973538292570046454357470854479098693991544127699458143953813311499776044302245237187782128957058351920125792733507558231567704303068996234064037851185997033780654137416052494694984411373246566386380853754074893926957219909749652178670391569214358958324252006304495534364058338245258119185945429654517539007062483044119396311581039028424244467153200828113429674008557578807000909788901957140920770120545607479552639276706454843540853082260949268559472027326491969822866317702309391955311521906162498685537506988610906269314107314512286473063246024914904384080974332316259429994345765548274872361340287812222447664460785322919635882516068390048244206865134944680914801999771779505409843364464110999981966714968209452217589687671462055037926399333240547136969151243262172746581068005524125647648298714049638891075525546296280665533257421145091589252665913276148260829790455951653016650410067631449984512624078047081364053350372962616592919738312755082218951395052287994109417151774337742659995575449407208206972785534253613618993384966413877741569297657991838966216742091383854010420312782824252041241198594304194940446937481024188389723286948358974540891272624144418247267578779831858015170880502318338406814464822214288890250294605262561850423680206242368071621463041198167224748603765890685652446383206181711804782951909038472628073663652272523412798213872108882653071237105043930554049943438350786701919864799160174938424919083934472381244569203426784590981240376535791704352961768308259012788514342790359259602588699796735507458026571163208993903649672259928717993173782702257715341581345060585729446071569579409144566907550621322430420867264300279059629070083102725577787619023770560589299810778574675478747645880914167186974082583563384122194601671281915920103140603218452842103161125667640600485453214748542740755592086269977127733844847709084939254762024300104552671822041068337026173558314336016231001784905149092758378192724138613648043734321055418554084572468489106631311240724701504144746226201316167699005761105666946982429095012670130794884058414133318078127985672494313930658945024997733692773043886298595879399417423183794432530932099988082802959923707386084173350394413083982587333399859349354550203883358043863761156597468043995847328880799851116740061786492980660908275390403429592845539451172532977508275391802789293625479555011657989660702134906850112749499337440976169463150086827199783319836948102845263793989620327990733977678069449164898396909947904793340885462554723171512087262230043246947195454996393153047703856216514868448419479711711415849451407060077069395539907432488293269781906556171403036217118427568637797759708877239841015977957620844042985823426399695481479719379004630683382534173674084760149799925107751074931063147378505013176705527009075506664336358444337047846107434247205037371143773287785977619710559301811042242850898516128329474619749965513927920172821336854112201974716007369667900353261223312117543894841691325925521241635650015444357815938432800108491392352975900184809226451312138519875347234767189415276804561865686006562739191717747875107780265664964162609411705514040897617510139437425613611389819910108209034065394852028802109796187824606198230568757555371138744064811559027857181082651992155905636432574601754160656941696750363511990970690005418617596973103385084802501672836244016050464339209582188805974710455891377763662384289708444224139569193728522985796211727996430789205485845651482397472537356824841223229353655875691715694846932970299042292112079463153004151464453453163820796340237636396811899207991454420979070044766161817202435277252762331238406759653651318164804373059934735682545118628151354677580778657772468364805882293540023197335873102261572584601381919874272374016533443982949132767536186123260660616856399931088152313579755339027341687818766020019591346890356858805965148208058021162692328282910567693887911339307953257367718713213635410578091968412458849502201577596534301868878054783063517946441214759998682636418204744934097035733469015584658681692266300246849165441475161775989908641007947564117029928249887411748104271435491850556168536654257677279870302414623426007606179751270699421408980874164498345489122730578338148398502621573024679311198862700540727653531826549076649215010499515134716232619429835940640831908710056393383856793638949189850378232225527590337100474179973722607722187057486383988284333848104582217773421715397356087805440808137046274696080549312827328650031724467727489663259579718796002018449230886904039149717400190872653603914885982907728348462098414622726406297580432591308164996431447829082811204109366711553396793298855230474666496072237746608975365288093908659060002518122341155346456148628923626018535053060653702697023953336767148800962508147338626300384202899920931107545974338797333609861527643955034323853602365284227851729888245894305777105732723248944345778710360466509729875437427273142789725666013459523522566636475812251023935650202852482931212870446798376003189987538134288558920811636043725800243191645570810593001279422414604933782914203603051597016487530526642816207080503946085996373666983468235170580962942491386908992297161618347374687284950238991414633630058975439500443810909347004082804890913643638587715970271738280048213311977282503038527638371648420077719977304763600811961501780259898361704084666591935288396538650267809870262889155586243914884662230384342464780377338110460851538881418506820136737990741043438839973351605146114559907544826986966096903027903632226721015431577948827644147699699454592882368677866563449390382902590462758876540632030510958458038879904988399054266888573470794790969715767695320655195644380078982382791935254502523518924843143923167803390648915503315716768356176482201032355962508355860201597212908674032002992279223923207225406948480201147091282325790594322002812886975203745734286251952285606076401605534735682325894764789664767556373011537737125810619423270096076947665571245572589978108124774006522943996884893262707727886396735002775779138707015453728490501018266515390486516807710961885102746712674412703229832161577343940068039400415740457301793647603294580083715971348244335090802393631380416034536246588289769132294892730943102596308027309784406630620549553021771291748656339941714664806101975849652473538676325831830390861264987613068933686715900917940812666402588416317006843829187142825615025712895229534134353290738868163988063185373541389038796346105420912139036597567889561375075598182536332065688037195236630577886216568592496532471434652987239283566856183037505423894598889618217352983840000007620345876531682644634718101958300606797942427432205724775768585392075503712571251329074140155761817498039601427463424009754664404834647195239859618807130320996264232579242204984303755662382200579385135127475723846445169037389782729204636609587939384956549639218335129934357429696642600968121543546736370278120496529256278336638224938157742412239055085118290842312483068474398923647041710031852006791681537493028200717887410219241441014520442852613235968959519521831109055700428063483984723072137824071705230611779419022798053061432049498478650324551946846127925703281247880416935548035984150392335439293683076824765632368969322021141049415798834278431395319193244910730490001598811230755819187963211231870379037540695253661807241746136265712709526640395646941127546290640950970028422991200636239809115221414784878635869302332975468959118044004486954158565890906118512788935873517351497344263276232443463984452113563136952250665113059673551964075462242698982501659937740248793767788738567855668267159747275999324419166000883756844009156513897151221930746602821723785614931952879363537945934128389801620403723548536513053890038564082068891923038690820626788848990938666569375459046298646313736026835799624316042157332578734157680612987231872307994477148935945600828491831769520013342560038729708287630640020698264789116381977001966160019105501091873051461390385314907000172912538973688370652048610246122851962872383490636618597444418988099809395409862112454773350729377707299571887150281644819247656194933712305935866290356520842053000438700564647871442200546274746641555619704425189504900510524201227025736910706311053639998848546200840172060509975401796787197038203464627703762088619035422830834470036984780921373231828004072645147450190708190755526070252848332042510863711568959467415693577831613386878754351775254598322027681195682110990325612272951589298879846655567629790353692343827417497667323616106345797997182936032788300318966453845195735897459269200537627566591443209839440567007481064827431049363581630363717066692065692667222330858689251380235540590769886612100496497072197131689664480416330232951577816363486671368831783833811610591370036766063438021440023585583917982244043015652036633773363981408396951714079605963743792920988656388116155672988596174968558214181390751836921065656231986643668545274184392832024135369391408054725031554356765879191076604334378999942677151793684960175670918638414238877742813217340114854839745101126462543063020018933803313466305243738918292699946150307068564591899741996165630910829777792689342809169486783131333015646475326697936337234319286626325969141431675935418302168155488942166400517213367129378741887834515169362428268150564481596791011483904534040108432654590297929217316214799282520250563682648977071820992228700430003076404470083521507245582001867388235883854879160004966500784382749559838008216814639304853938172825567484589791502479080036896258039685001077609406419016733644111976636749838907160302327426474950640706868614436425122892233504100765634188670841774621720480911568319576960065623003917998759870034303681237863830698065745172934189083753340273098617862269238455592322903961229014863817869730542320902091667082850115927292314360678736057297073543579673999849937558834991350543066461621178856697084885870735709014021354165500749423936404236628736306741970819713602416796205207257148562257704068383535517095666873851447886716920696666180600206798535525840202992287275052299541540502872547846212363819902372761192088779614953602222895172667069521512029109526426426050541699333313698640051955279773812653948747112989628503659826503470364054455683096734323755235593358867184345069317018011555789399260616333208979697309460300985202075733402258899353737503885268622671542031648966582361023082059947592305378809178877047957587936998707740817909567932629291577012817724080152093169826057789069219215097916328603570650229474981864470097138531094043575653697188082768297055819979798593861259385288202907377578111126155794349558134656122631283025995225937176511298834489181148920464672283824222560043895319497765163500127353372976410549486419178262476002569861960885663207364733204035764450996629709218138265040702404919417562427790509187382392081170103430588662192353360775975304669693098509512555722410569966133001414875854609055849386965127719059226491568405474367556412539182723038441339949529601198136883250294112741696112209625206927640517071392426221009004046684565686192464943699717319789263573796542189746990545774649969941129468695222183458896621934905578587068442330092306446217449447829309889392836255877699570984136460482506574621056999584035017444816450850946758321863207733677868712242146103018271892158804863199907862487728174391130098323771926356444742730650115115516439878713333563788627514994098248825790969874072075819047858434354973801490336945031996924725250895617599120523918297878275646532256983940818095853678880165776012997735092170809427139765303131938275788515346632278793611726825442435827098259098283320782535639450167717625367723409026223433460733734533807057781591157118674379551473916604673904225710688009612647609193638846739439232729516184832473803889188325355982543119257411187452535460412510042847746149143050838243301438284969062623749965624278292239793592577739069201445519455729222112364159421490345669365948321560767462012799455662592825908074190681678324040984152020748591380433515188877803971549532407053460916289688675398998752901561854617255749928241700350409768721149580300581602891388526112757708403069659749284074415783977211173745393711423858218398801706058394160789037107998768554560789198182311957377773363385120717948388512278058723901612882241120591929352052433490754469793585598347735234879744083188856273279084193107300747303851301904875478304243772822619603362694661245425092434558090799545418234033681579507504057248441471261518131990182670594830314986756919856309735174775608924459344054792667375761717544493651785197802654089861376737741220970906747427741562227005664443973338850792236743214653160793659497522833293130580062530377460630485742348284045103106409852889200772546734548816274517882399821900767409177975698855500586358181595096309413437854446493281344912431641997021404896488462074513865268098242344644464030092174885528656818986810326538857617849046996182601349552118946910934771824268089900874453524895603722408794489745760521798586527506535961973725481224421463469435722446207117456909904728281124112880630303444813150527907862840466050040484870828339124686471848191689913586564212617754134514804668022973888811892901240931252164611283958428021741498083385277978302653837605684004805558349037500897533054204038155731319793030951718484430957827471127808027383111297593107724098859425546681651095623291111246863371248178585109854997667519732477639434591142702937575836257240692433631200393629015886561755080032280881159369501839202153867126899957111021657942528832999741488265630319965502429508779756486516338057529899931810556135518844980603275516792473313302496010147559351945579703237715641455750583871885796632872204521756910353394819036697634541035915699815373771758613878903998153316778779220710777163630612724289420266267217210570511123519506954126767619831160925174917093308300592173393907260264986622736713928777481715966110370475311681289451492189257804219092821973986092538406199333177018381558610097458815474199408676893306492775300698300636086552770464660286490532438747434741080778424649236221060467713991289645860831703222585321060983916872956110161286161842925614686873636991245918476246447595947496699903403922713424702389019087367686788479294409853207105369928614418774788869091076382509600743086488536712757573638471086117601889601240576506543057447978282810774812011229671213742364020393424920675356764704963633986955701264986312635718467143422689574481101022490524416589966706399333531547992145701243806776899520725845934115060526176753298090855258866528638200061514578705533221766963141122655207120537214659595226819878562855395096605964336553923028611257243969829830395516103722468352283499567833978019364247532337222769666443037453014582452015037500684202034131628888481206012433550160247407779552574128374562843409959711382167451624738008022603875036890141602768304287347845736829032110531973254486795689345564227817666012356013446994704786155615588135799418222320120305405633294547985222452413047813690455658243491888071926029466103893241649856450787494021294692594432789314854354530171313073588049920149463355605949342714154184268677432398769715732033557344995220114965064867006112283550533934349003837661108335429829259753585044223651554847378356549862424131366663269227821662628024770047601627646070498221442498850730381542889080431076099119839373226802397806223764595424628917564124648029567046613471797004553954233646057115481153176930568753195170122037457533823194260484725461775323798973331649134776270098979580821398831608906231709467495702013167251787254647676710591752699975752197353139648173630750098406819328225700899241103075108768203754313882518044974705711555834844126688209675525644773707448432970167481188337481365098658365316748599224697446481700167441429501228435689617092444159676932526769608498451380211081062700044062940490113253414806212456374006195698215660171496936215735138757147555041690742465312944019697571655903405259885003944927404574147546832245945533797915548163912127493461084051949001732028001393646018602036408027993129875501031267976546932713658459981251753098617144309932659081187970857529287383763224446551325952743053536565181286971179186310076215968984571015755662904156910534563066787701688453785699114544050188489872004384229093506894726776780395722973355177183590671177079191310064106957772823636766509800682495247216521483323403901308634509898736616893166909743146772774565781245499650678968071364857044801703835981568111588240129227427608133615497330739425555658022306696617559527982086656156550245851405586871646945566552325716688356611253722550204522084012263665169142074975587212375538030930933679343826744273786268767915996316060588288877897553306548768643237467190648529272386945805343344226720730404100868700561748833636549080151888415466074234747630711876848245674138764191099992283506566632052172011946525977555932833039504663644840863592656489499987097786830907817103674026800834339850451684068754236433546341446913527780898760868190286997247530572547027372051447443348403964119012677484270712321042102346119572704607550364902602362741772047338314812845487348717705156445740500320483799142408110027559500027115112475075463869252416520318922028145296097603410144447160031174794387373578244856625915326342199671124730435756738691651619313548510545734005826768354150937310824264161551031748887810781727499474954072825094358892774081613867820733927541330254498986248075516307674028303469370530794038346563733100900697742979669677520353337406538167316311947542946201591340108056716944321014530374399062164649488812529431169637956696957814689041202794265491982120333344777375561698720155254765687275349415572680147603028694589771223340894329551756495299039043783835549806018046429906988633263925275179733624842047936996992010351596638442525813218637230244234044907085562691818944780169789733444829302790626702838048512242880647119745185954922991603979749838474653752550467353064583909169602499709109970388242929366827502376304719583260031607802448717376286486909700007240452678606010052457195747055396249991918156207762851153154416373626976687144832580551478271789701636585592876492415133226241254219278878146002181241809921504221304601845987688591698130363873857552608584676136169496366108426785267909900318339265741658495479277702263963589647775201979639301914352925864973120335865878259403682375497270158853284165806290230461592591592917560369670847748550214273594270608721321792331260011588599331707721385155412281424578435653442080984017294248433857498660863528962853722878722694515586018370596065479611087480567156974169571944879904350312806509963173104353926194515173263126687679523259796828979244704102335294891671284892942023093307204135811209721515689801578936578778350788451725979572921510551741711873559619084632778982540324884228212821891723426965202346197126657977408142803331504669206236213102459792952891504983308721147014513347707167314250211231780836364947466776555241282477846598261534790134239181536330987322767210011497461655429095897150446990119034625765388785902147800272039871814222230797735246572269969103297845210197975712092668196314000550241883377011517766048167994522343550879850789352374597150568466846395983389565753687039843297061975999200047575475988655698711229054584269492302406366626124381488807410674073223320997558461278169218474330689511533359527053408139597602440440740499028709535250610230302904607239081111775175593822096715442653141492873402370865531581888193292510183502944174494362879265499818514019895737576091892085416145619367232000523915811158598338038520499483173474040540484465858471573182467815451464121207191681066629646326102475436481826155824834014581924795871535924964714183062153583951212988171948314938566111636562827719677943898799804271212646537271329275280802821805257289815184054962091669915009351029277677457114345795009275157914818521303038325650431374292496870286332885616628702933808605648510724417936306945950676424963598017436904325853973732808871278501865518433969227223582530945003663241664220465391566745112402884859670185612742112860860076637113064519977425832426922152866750924971418483272219997426588072240315038283811852305941976220030627419446676619426404577276281316338224742756446188661335755674912121886635836565783437758895212455962354286609184192860749752654661154360206944550179725783350813142864687880551145055245089964065684871744822207192957779867001769438602831629787776965753335882140826497514553611008161770621518074429075444708864229167227009706728714285221703746990735786188684836247863390158764256417235523544030441636787906897720593290066243013507846944607700216690158385023553866201570724477714683863257590139212371048606876093142306670793080455135884549976056416378347090245925478834200548132154644402517832796402224637149927545669541886959147831871590772868227322297461290108347125745794174475034338602315513673005246258124077223209138674418296968703441705832609239032493447272542521838292842758220270486278265800191117678723697250037289089141831882483608791967331520462487317080114767548644613510611401453160641314136261238924247524507845539409809573707309190023086308189708503560450329979329245849487611395097516506843027526849289411310615982443857389071461280485873507716329632880761333817496285151904513501349081001264974257113447583965203843627268462987838567975346871554693817445434336135415301582735098588624234284459491118705814813926954009205896155191341099508679512690412737887382108708861073116275395847142371899047085615695576408872091554107826483438714484858153906514411497207180084286632287213870750427801454752362613802848912317553021620610910270939334470762729953380769755135532887286027141601213796944772409732058497509413029955040720162969532881212358030065531269925511853063006643918007520153630812550658791562676100624135754203174847789847798193713883988701242883797726111701042535973293581800371111681058768166203997860278498067669256835092847545851979216322064678896094295350064166096978971502721751306237156717990500563640254812962076264373689735999590517016025013317445949347495854898462863055661652169988620433093104046838772104468983595111585222398387566992611727138077937460926714977530031011285515604451714525192723993601495424223328239616727163167902887584364331545977968971989543416738563729324994468646712567041814401675354205702975178712478779121117767017949950852660206027511162416050478633434994295068081553478340771685804759495721234924927930740827682060359219297323995580516482222787557631049449831158496623541358269402152187833134749726072230657763160571935359366799663735582067050805672204218184559609057008745528192619356222190533165756712115265148001822653261354096226225474145756631473520627222033272944499212255456179801137103563543985721032611804111166714943315715047517899805780851819952556707445070357526412492804294656829659618017803963096190357958213405132273982835586533586888764472983823129620893103866284203792291770058189949728313984229250406491946726102439953163276057926571637564938217558537500945679367034676779539084281496760582828437408729562792947676011733636263959573362430399676743135724034040584321962863313099379163122971715351558796942184195542746338945186352553647662842082641034576345852495026146501656138820474087744279871542733285907218502224969778193660723745843186490628034451539842180358765440005010096639678821615390383859268632588140324994462317106721585825781662799355536069015709758875018214245882759731477560266191077793520782808086262348136290679328487291491910268862995928571224066680371422076975663579138299671118492420396850613856422534871304632283905910756633844954826409245074879838730569413035663049879804327023717114967591530869261190139725336687111871090283703520098929981501213603604860786058540805606971388512011843961084508124604656241210357210754267102763804113310220095000185683794976765318270310373364662503317633840061398360137602935117275949954905362886635641049859063132830695809259886722837767914260669679137362700957255340249326223520238230618680706189424420726778331772945386172577109876606693644070343619005236997575781058725486312316596777095925467135381757303442441295720835903026090530845755678378265120560299963616364415869697972475226965814919188310186824759345423564689791910180033957723795119595623271615548800712362304861906302014501164887993420296665261660389112659114757805978585904693595534015463223598284812478178484483803429811495406844574983879213005125633326186080419954760373035557232047575407323856536742523714177312395264374417193763692557226417564173544042484287499552854375055238530583401354642215599659627077391463622530922516338966275822450017908713012078818530181240731465948107287562941437805810239080646274850247691539570851285331321753864881378320870297574700743627322921939093742801031832243968615880378482116717462727822749449876496787717056158213349167552886171242491054813108543634906651937234536640832086722087229619323482148895836349326470738038046279016763172871017935639525655509344177204702270765695956439346410934557011244767768143294078619460326935360924865712893833465374401066053031069162256021593925836310045400752333375570593183762931545316072602055497140726108518715105067034118475224236739986888664614811486434015029452133995469520990648287510855492591738199693046905836773366156332336425720252965991949490697067726351645646938384185104854435589990704142747981079003702119564065574193105697841423664788463773666382120444983915373342116679854354838464235772541701860957351770593018601366096847899099528760957771096493302538765393906518615469711070960915740023555097078981146579504424550354245824527317137299431285877231266491702366684661412452427881542811939137074943278248348178313061443188790245690785097544648114173921844721282214552391596682360410571901164419942666509503349836651922136854326679571389082681631260205131316965516781856435651338959135664330787286393649411946970065505783899365738896625891807106643275724511148532061671018036165096513402833124652173972241501868544500625400917612796341386823937706768778205214161178232518202675985248883990109597027954545315361710373871163398734159964983330940586709523666584522156280226886547390645996433619174939535095096194916858044412724837099622887484803330210648843536660877076735856966768534044396285265178608148980186833368824202669499248969683618586718619581834942624317829734399384876300552187563890917738360959582481385503292781310541354017658332806073232911624003945442677412977374657004017301411457222102191600323288273866426886596592365345905549358093399632462048235794100729311362163911897070748644307456378926816765999065651345099768803473896819979984679960324912742253719464508043674776555973373466384091129105498750967603743309236638947121052495471811220495822416910202025447492820831459033795619641581149649452013859938091041638023197053027991655094132287789475462476938507613882629371829469381814411285363569226877514668261007070339203473150112263134244569979131566112498768704634307140005047152806341958727005347038624380636165224331895615353411158947317624602632698745146661444666348198977250207398602633967331654581806141208745940486889378949293076955055239836147661190569167472906019005450391778663637769640051438533715534342745006319950046751729847232744791488260257336498380196856111184749838535997697878301567197201713055080524152476512872492961836760373221994125477604006190387455439897002640290669765318634390615256194075187486793897201898364177010350427258024837140640844497973398418626943298714771860951914030977629461014022143091510142018411518515689302762621819940818241572577457809632456807872506691989814982246332737707525566085180306062283706129260181800595405936448826962273326218339573262711406397410641749056986343048710595966101680717971635089866661294088184877334746222150670789800713869698244078611416317239500165149567290177921249164739399054603069462133328354138986847153595537343818435405136501517110764788559282524653287184298819119974932684349098113200538730834884782752124057015119503287423911385080121970439960644010721401947879004810008964466331940784318615140929293141326018516962722583987286623672600176548496666672616028833539698447055984176500015128456282157320793642942948403571550079522788127435772443180030525932380551282981827684331736304411730909080406977478424521426576034166635001222914471869817794667682709036271536821659383930303380075232423364615349122610926702594832161149982568991939611872381397705578682348943960133186614641756443133965735988288460573426321282261338397958882503843607147519753965824757101126854771904107811704710233884469375449979888476077423166628891713820022458220674233969177685338563735263874501067788916728161673616424442917464067775088263067507283963459359249207040256390513050968921170511797567777431776531303863314222818260238641426550704628555177361708697466442711096483830402056026390630689673606221772756631717407446928274955132413439142491775002708731253071855090789657217279573628982460824366632507837728158280287888174695394213251846532648702576595287141227890306876038030606089291873571501401692039253071985478678225451768480660431582545070035371944523867702304246118100783055341707340906659161204632319163751454631945044146894724678439264965176866688598771028773788224581186924796189547871238778022916812204029200302918822213565130992370710483270073533027669174604063622131519386418274497455833652706541669517985156036276143278284648378328705617471722906814612727753794754832279360438115602287812386215262755914155036404264606793315678415047724024308334791132097240403096928594852106880464652554604258442519469624575581509356562988338868324658471334126681494103830299127019377566254342788880359158831421674562752992943229616014249711885634764334003262961734642130161913516222160828657100124636348715080777888767078964230965283396271384897596305223673472138937748437002450847168819745994326080086532139748426726453397057219148399102715047247583859540331033916065798442701057708856782846809288111378724848833887449177348046799742743441410916158759916290349949186050900496909272402347836403286096991600283316256391785708425230200232448641794595560149284344464703048022644317910722848380657727924146571940082524539398227371086919359060675000902567788663054511275026630232532222684314609422309499034298461435265096377954545936240759996483094853122024233757900133765644339921469353113573821640633416568969022690640856707152826144731505808061752579488678223618242164571632205526304773417513698987757824782494824238331719940208713899736310613516182991085519347052860120818700174277778288296277541252470783698332366094651664717826500142069795146791442787264824549667081157901985265981171751205422774014121090860829689552044131954064891605276576266843495488989386774051804477846612007766550703864696633803217628460795170892664163382930144302097083020388731986532174745569962824321257928277883961992604101620214285995675181612865735933926788416681059557955663608349226714949225322607757100061602589008418524613924692431935805429123741025407689846948356417965185780414437744088644946883278388460250742336115951161482004643381041862380238610312509576806002997648153462736043426951674606262980358991594095945014133881078843429328784155116662861880729070999830487999451344178217037364695344845434410733440592188047755984781969888189338766813069533833757847850484903686148907266785014515136600660842819217090994651076429841186087034334210226670316975326192074736416598727148464603675022334137654012301264491155794651313126019187567432323560268260974605397171982497856727269633223445062438603735942562034903068338492229639991532818274669935807532583158773654287991864730471407469772885003197195809313233300885276848016643783562628844672352844848362352375819021227157334049383889790968005938474694493800322758247475365269761959157688770069096001254759043998116519408159606456212325600973478924875846470593790891561244739114353443001467643314883059730294144660011109967802555479005981137280424342792628931777351719183768659468396852521060685339140370651528572304729192803428776470284357640144474793594459259007608304459190967667755769756516555034135299842262093604922452792845554583966164676802345086356112754247245687932038952614611974328949182874565190663818204712465735602150174114118351555411816606956643172093349797893983709682947244756456785529334761025406023481112096516953410493230511032436356526717328851836242421752895825206957482752255560674614420451205580065448697133329941583585420393544572161930512231868952195669540760956590274690504917340839656988186212246090796961178001878083193571613382046303427019927107340930000895085195480324746707640395139493476400403051807345961334385070215530219181321575883927104701376274524701271634269722228701437810478644354893041067396420097477561378113216009205633489828900763383591994866081295368555695917564611024868854885765868468762596372514848350417020898557225176987952672505109989389561608064330427484828393431803706338744611127279681170593296422411046157663555850904508706444928166320544413402587127199336626123328495028690324460910713512568578491415177643644611378894027095033877694124140102999160747672021576061775372028635706227306257398297428903257660060923694800686304915429839164998344599576385793513144034401951137152245441870014369644815560493288222143112196816872050959464974783075538233872939845018346846475943120216658843019883317905914385408318671534431566140328659973563333718771322488326154667029788130199777086174177983054343042090431816396822195580642748229855376671830711952608728928404229660937930539440683612349462391701865400625418363409317153764464680365915029527103258922460852007692905904629155635007393027724443174672333660522858558157355965791329862514245171728090161563683331073029115965849964445435279603785928618595628909455731407941870569833534264730405936400742013047480293001484481806586561745503515506590631953314218235482547976430002603373420075796528419841854645343026908426747161866886642792779912454274236099201806234244396978219129167978508745793076833333313732385289491196895534336460220723088695646236787529433563817954252569990799056770730057596322485567989372475432608116051289827096931782239475190470161176612752913262499033053562860561964794678729924492656062141253825691522386084217424334565454516149290427872526828283802830127644356494265102818455917989399301124886837956572540216962997762164258081128504732631919874455714486269584167824429886151474142390345679761706506437766456894656845566458216106020331832574626500955018070744157512178787129831912763224153625690027010650108147653240180197168583736008348413777115947670787928046504219368789438867036340025910136733951015989467442797489032940598887257366987638378681007618453404756530669577949727991434454819622558397667082219897389725986136965421451732642827423681775160333939042844290386999031956050440587851263087150066875858583832083440789415620719177608906947588311073496205326383622622419201983514898115676835091048455761031432467790724882135730358842001621607728592499500574480483509337458573051358147803503394515932273121649071351795670949482057450354915745355921974891669454661086349843652757448469156366542601317607060694452346560342775943114314192850146792176533544751415856645505538437426979554971371289427025174784990335375543053205573728315471341474171487744149660836824644970491108012122999461601757917157506447935470466862961988827911651383468025850981494925415571156744547421466477015482683098057228875531348745302005003586163927876361972670443246724869620064243462815324165744352129884121749190329303676453291362364573941724378555132961794563478119788572048949254442266760492776578508516549897392574452710053840204861392511596517550271359263023260302683294461487210211939318669113465529888414189934751790864820618126617592048379430470262048216921222834857096134548232421097057699247312209657264895625986572783769526432055011805295928349720514375985270338630481299632266775795112661281702110879161589669845516015822562080405135570560123599723277133660613308919228138215638111378563776775593393712208460681701525498025568710282854635741583632541611530873467890057428601227234084460921050349921411719216729508268978466539205423277211580485660637009901181217403887298376401055436841268376024565408860630243336010516556813197750008215067818754874258470927264194390590013610805661690514131291444243180626116279663645440178610024628898482923348183536289423772390774211781617582846745677318009668260727031890563318309326445540480724695556419396973667741148256644423824204415071524132275953324212476214303649481761957796027927905299274856648651348623496590164762000180335514361182620686226033411518420812368788869158011937966714644607953068536789894985984122258516973880145544182774261059892554043381619207082194221092090300749592091537058708807994840135202966011032625106584331800179026413648335336229934314000383368557006319565604553620523109230986984123070720447868316593838092505672450801308106818827858880527603878075147182941672639420031600218570075683921928500530814521153704692011329143531062684234348388613671753735486807803594492947737498112203305816229415728853398255054109962656039762915505711299173750092500052482367651343775707273684806927255584385266354278547631633324906508702020348326180206811972904004022646460039989199789871240567580257801759177985099943158878068036506651005449019442733674052144949941057944127563758453184515703047631756035001054374061593817017211639673541058441004137950836237046821479427323183113354717972541119715437710407629255375399519652150837608317245563147840221410076211093932780810055531264844031132085541497016661366402905908638111733718184527818386011337207850639884047917995054272116953280062734174980059539503414281201424835681947382970533917918710007283913210177278294189402995806041318854224624325695256311041162072731170147825889441063638671312486736625291004168913401249074242059323892415473607755933092567771317702218334912766776813409955644045768176451592017282978020049082529481510090373198479060602134252532610340120782923080534708384780573054450374159946055177138824966904430409832934065828748963559727456031118141478398476343627251984871984080174131921515703094971550138750369105737391637214570144846667586002831385437631492736588233187524546730035240591440537990866868878402610837205966804472402496905005266071807410264943309719642694568715496632475786043902853604963132632111022073824476725832390174035714350324062143282269239931215089274029899809871507451783709467260187913255195580955268605585808921585037428192839766989528173940879326044795564738743254501066680154499815094438128362331598771993162338195232715245858775766189065555370825248211770681793464129801675221907899450940804716884720232985637297742903105529504667166236384363019442436435612656481952537007624287525125063721152704115181241320101459907817550931847682293297715031542705891351801001503296716106604224097509870985052719949182450550283458742572960143051310991296479574515185057929815925663809431319788666565072040481130067993066842444039617246412961291992287322180983040601001796349129758026595720882961617916390417800936966764654074405733945193854603767385445977830494789341393702739680037088829417932527668399110702590984523023332173209921906699059098873776263742571637901323950181408330533352210883973097487836731138355880155163185182734651186039602451270660440159600825972528578693348559243127880280676446174857278889908161776546718640983363770822588558389737818677395895783335303502194483276653405911886119652637358750186105362765868232989223815444376477972472296152322527933236436387117264354272510909884435776121574931438248672082356466287258377999624581609888459520920165091238071899746952109119785505416513726250578944217055186196829568601589389968104259823805734052446839091874987153370638511314036705826812179181370393323998673436964647322570381971782155100684609156375556934708599015160767898324958378662547737113592976491306457623510276337020272302871610736613853583670674926323298497774078369033221097669422217102292400441198358107665500544303406805539577752440189367086535279353725197696916689165678514987807238175037400527785945849710165851630922765973369305209284619671558979288557105186715843995384366106069596818534545689393806198383040770667047778784258465984648086383168343880727909000306790486534897903481474910883826441931145949419332082566684201599971817048653075166937235729744779531150244897319450960035242296712786399115770073887595430990389550110468959165121955220036394772585197268974251540190643927640912005432117065951049069041627951255416976991203374578305261176818181285488781157976838401698621711522172210745177695654504964650903137542218563068548306129929387578395626187575293582424497655345860565550291495510968015900616154521528202181174972300201428365557747330123499019924813655987320588775790539611086820890313074609154285680636173041961554425970642263029248449122650081302417394917286368497495058392008021546251642552127701860423808472606774194282110855089986308488617574601041749423139196752244965570524813971202754868918960283531565396970232151131666778660519113258109287500999574501843240298547259426091775132334030469479923636942557554218359362687285136446958890986858863639914549322165220857368725912642043451946858725080369937303661267897001684940684014080835928072889914397664430571463789922432867800924055464961845075001395788171747646688016388539163622016192240074767119804240988888984544980839691600893426757651152836471360214740810853498917390455565614853433851754256585059255856142711273547228880516721274387826455082632434956892789671705249884552367746625317353848547688077995953030487895299076643798162120928216405815233746842442583343731336105423077507196521160255418548231825149294851067462886827923109328412783104409998192392247245056191194236950378827836702829062584328188472481892111402472830675684313720369863322697716282956877006016837850779612608390677656469363348828608201812957688375618709664768949353622233814015246142836642520502100292859977134144777297671197172206640502958970848711746635751523497180321052171977271157705733389555644720716843573685611805606205539955341466340956268819152800924531642836634244592839841398909322862616619400677495091947039384756698795483620818834974997656349243028255440644043102351634170327650616157933370360329893083775652800194630448597340674724211816650431157704283042108051507101260605351475971131168302661015507330879802259854198306741251018930463328266075011527743665810560273502066510078831513340603847152815864024174689441792668716612295482367091404863564471651515817051450768670025165089496701631394104851118199504590003190386132548041734819929875328354736395353889446886943808659732557196993278397168800420722406562058037747239959840108318879508902098710341146038287018323798293779768705638020911048544960855902486159759124804165821797609687891480042893028937604014571662415841756957686136621422458854777598041406035604037759252895138677016988871612315403108441904339835147695309028111036146377992833712386111542400730888157968611095900077823255675670730054420223478211581907621405185055513418196859544301494181885404689450403602595850799558291809601028090018976802708717006534164101005702034545658162374734558269688552912099927857128453127010897420546359477980256387747399422825723093121780390082666928405074350406116386698214698717668436943541106012560370965501160795563853619850645048148021506454896181653158635640861326122518090925341218793775341326519780666414927659037094358441385015257584308199728137094295431487413917967545265429911993141859910882965500081035747825876240141801854463149674425629096686861705249779776907819854427134839802588821994601831795977803715354699346970626348969616973541174846222025927220189239073271888779938748504721502787905189388986084578831200331156812425264919171525307511518341390173566824509936775313854117022589806558507346904057990035891906247047856452978955398400583666036015975842604989006641343668727274294868220151540548296644456594821953547515792409212138335230712297099790886160718596575897480370699564428663151780811563133995812572979042152418449572941072861713478033468007121256915858146796596857867802763809355844182566384330578966881173704687719230147476097569687723326555659316479648330074039342195075178135994589213097262161592233952111611151749860772539846449192950548168693170843478087844940743182673103730185235933823590176043639022090700324486212191801878666401505473981407685778282071469092824384196461087692418345256089109676516596190404006987161402765152147398560862450619315466697065556269856230464509062846281919600060766186119957477446854024750060498552811933319425141580764418216626079431370317041642428341943217334772488766406983968340339058673592676514711466883060056151315079395120207637190098330041593307486703506827920999229518523286852089977450584258657594909353101925237869984070641541477107040096375519645212509163276694338344164398444345243961662090999163857666050778325893722949156955851324557281119478304838074967422823605360017941544854082922996916742948245047128198065990861090204397504899415831789460456768882477623438354196728947002343484565723215101268556068976260741839091785046336709597291932248178526479547937228018589385916753147009331554633868010678125833282630310831053763844976665997907556909253325245453052433856714802899489566166771240066294945729451918842395278054089144720646614264208903276878438576509239376069791893811721255028588650438008802207329665639235311499529150806564185274749277110917049956267829802090541719244907577133283878092951284234829785200602497112717504250537923284396502789560459814787819527365085944173264399224697397187854977166131644788480419932246441764320887210818940084834732897161110170020661027740087131263140191519102827939626035357923152132804107537374098639799385694391594652033097657213764727626351585754716303147557442595703542993265626924786619386664389207495118104204604027752757272837613577703848634612734615860547097224271946601104909674526519555380526041350530736246187598032859982686886310167276650257576590642171694187957125085240924325835275687953542292003496042518478954839794097966916447301386262403105169136603332936064244296878995454586623495860486433284153166297310431350218107702478662587956247456069336587442624160326327325087549312726730359629531753569155453690415348766145487598926849428360974157202157372854567686808767692487734454679064247488501687178893980675242279672016481382831915043937450880819137562884762667380395332235628656668895747640464653978387845550463331985374165507594045454085085093035881731634316281787074320337483233704112896639077425988229307132606114262251265289040959038799144838725240092426051230864528524742687555094107095733856542411866590109880733789346935796218071103997886730420914255006462252133676161702282169487972783367372818489590448023530927655852144537151101026007613361123111613727320989318830567963743115850463236030143031148906576120595686409540427854440927501288078132809000511535399667050615467281912241772694260705228076257223627584855391702626364566199214452170955884427335919389055108600826757182585370052243720550602964297645457988249563204654036849235246517879786605489245091612448329052932263151390041605922020472315097665863144424850976861980076182013389120013717018971482552185215338380420904015775011676434853189516034695482275634024409724231068011357089583137038863658256999963162446543644223729515700973649281394598745731180871369821785769072442520628138953298849523005913243925781423750780892146723021951845407514874731748262795677449356389209653192519052988345686099208500790703110668068125803216609827119947002317751594435709692025108745372104332744885828487135965610089286582514857261726234476678040258919282383876687284773342348100245465168613837232720412707540874746667869297604792073184085350280222152352092951198961770268413009259089429819725473725967003349042815220769341247305320711484519452959367243744045348269595916811488224246847359570899105852852755015344418357949846759828110363551970707295391796521742919674405995936932626677337324562289243036760280709014163222667578620376326992325379745759291098670430253432139210007650516363114627945936056191195724913575929301647742162033643735988881544934341102686249879858885991197357579255548099370681800335953408898305913673353278312723569698671665140963583057549023723041850179545137036654745324966340726793288100301970598952307867253446556948725811440503491173583143424169322778404456941361014157695115172490477162369671686308873194933414307853878944419949292070738078373150872348354610177480063471038729818670519061000428222123490694335191210662975347947801293572746954843007350342156362202121978498324517637494614185412766957726169070482502635819612988751952209406438243654986905111882065162507288656272396387773414750858403420721312954205207975148829235009469189475676236846374524739555109640759197497874357764397218084436341615079285339146890904015739004919930348771198369567998214619237541931113711490112281274673794958397395488314973532444801099593525244827027787405304453061991364568652684127979952392400518090998580104836748630701728588644242758600139170352016343107232247700223669750094574789583649697649548578988902493984259866542706287117571488098759522636789720706439164027370104353924195314291923346131518294090074939624418213935563595755095622140918187881192001659525119049424705698509412332081446901543701815861949118054353945990642978655737099628342798042708522297459495972596349224753525101983618020267600436385615233462460910011976526266204048436672296559540397185821228904393764419419943610949054018091383627824134691022776722032521876012434869550484813657266445739439588932622261047301001829235607112257711041397830419179771551345082548319148219025869310060272066097988220831968185175173084461616771938386231101765286346544804332681535485750959828597319268338208069615070915375755930582154098508282229239470062238432051244573453287728748366853338451719272506668426729406302652626938403390158367255868391891761316736267466789247299440425798442186676900089278446192967223188451105130714146063046152894792125439957987057761590603658608222468312524609607007907235784491420642528535777870181412326375473882249409842901486602054671940332362514300131985443192805391022144213591883743890712733223329988194542780991251184550512663587679284708129201972121477400847233009807169161592593766443184136107376850591179114973634582681341688578859802941482169650909706515863382603136614459902163299012039125752722516393815596831084596593564316386942298256485361239750708774614533365961629875911276368430905177811469461032434097889224422597285029530721889799174370321174054940604541380624314455803006221603622331694561532197700952915592823129393346489149339780049778937340990660616082990679603306529311108681010399952616898048821584148415038063551191594256843931043316933585231549647440604379387748977343222253065846320839424191853811154221103557754732794479454972910158584659031404813601817850879444956054514755371687666393527217583025270435549074360417393553546475699790933798577034193747870790937481159595426637263599396415238248620934290123750875305578347862446969234804442748740703610426928890698972262913825912542750305696773432841894810918039819793995941791833486692777230024637038616759555426183740613177637008712039881671069757608728166788116062404256389618232991348681379473261924423457883896935107974215135639522716592044888274855114777437456082034481968491815726195155500661750993953963255347598258161951490000629699424089219229479010339490340446740845189375059296686722356700501261535848816603287686798169597272464129006359213138791188181169016429392240056570988190388409112912128018500072968651096965008592907680156081254854669729037991936572434170367963938480385063284324959540896318809868644184509109557084755273031904009250156722623786198559296277890876665122424878187319095804707543550151847830394248944453026248373407972384509031429840790122817747012149807472065711702052322443192385416985300757431316916252617355851342638139014073650339582051734632312001654830563442482861466405946766093569902077834205058852178298453106562980475923810111166059281472101792721885687929326637872395171030745274026749590417235750568659797596166295496546332999900830137794056351167477960194363232908411441992494555814152289549591772932359727341279100997692401055192376792227867046770288578754134812309441317784349308995406746843122469836592498104246199288682696407174232057447966064390538601186005783647616641101436719720816002265159531789370504654093909974416918238335044036827799405441619175821462554474852770521604406855181018668590803558327609201746372673621191485476260348253053277188233039545420323106138850474335730699057288675801876129741375621028374660576571182634297020472550884865941559765235130361567672709146004640576374510309381255337712813912310017329989452209038986221518634007318997759121042611934463458147020719589038842965896028885143161666514254674085200160886657453132094235821504172512916910883555051583651375214548773448074481578104655257526188427825347025937155401085594181573367192886392221647292568745611915098006935236156560043571529542900116262558452874987342052463999474992235003149062050946875432103145659008523584943848332542796431461042230821088064324901507589695216122118390528114382367827709059420875992949129745010323397053897403836333199649903768734898405032639616987203955750980202970725529582435921171032358165907451131562825109219201950555708663769432370392154505234636188886652403807117986228734395215203377296827849161752856002762240544110414529060020523924654583077310961081204114334102713434108739488809098759089067926995160614019121672764622136888971298309062219465564637987034593592471069192556102805966443350484875200738554764814968466793338981778551689534443869115577748178981303436890937243293742696689843023150334211042753208025662893878176726008996820575789570544518562716803604155815197715838952039828001868298291693979492845980505335910155653582877774983613924085033792708759465789592151543249624463394864582207975467454959015888528025933370333317112477202080198072942979472400233368837930914819518043325569791449975280142068264238909899691103368993166202492254424008715125628980719382821001361834421204721589428697592470973592050807336743091388677230107700503322938114126844307829399432300512513445266027366336773792837266198638731142304001632443874605851102569038149220991368117030868493456362557070842165836011809286770546964948238888423288439785990562919517972136054401676759280454197921528233830223317625898988669110254203710993930415578735181727330041354364211807306838011865873640182234274349650384247729286631257124132743371583350501025035044302761151437905823381130057809697597362054330025644325250853129338523121769395545095093256269339590380268830380300352902990317081289001904846514259561285825614321724294389641695647153316303562884800574108616027914689824965853919887401182432811508680163524708431218127516596197253421285972271671637238703616127594593361487952263579256671967691901211972522723655460108408110663206711504707102210462443230772334828589727017743869731408667326012780743905482179808740540349588195309949935490960751953126076920314070652496306429506497879942303156142992539277911440335125142925399864036314288788339674105069024675147395803039330762046923097680062778962459995321679657891519267175855354562521249999616966789427641422131286909600828646821854600647022565762438070397967093479749091898454855741868005922637228200980973677643473873442354624985386077568010733612901369712113178968204149657788376600117308653111125451913777369348380006096278463954375840356488177519939625009559978418333743677643406543589664555809543291810546054271283314721984364974027567300463719622742515717330195767501652996346537163595154587025745178910018631675535889812322058329482527671194065420574151761521245654257557295654974295170461001984998108144289100189479880628446770421108757439325672512735277170407214070542218029173930072585282692273731839285424709044644575788909040548510684838039289540981246992292597995369552914082494674206294214688854350580893782580687414768677747390925232998128517428646521200302220140699953683455092741241596924399488890668139316974621750009298605193761862081338069385682068281368814071110050984570890276898188335511264819154015231325106015232657609517096091602991074847833108955857337793289463855297450891950847958982548991640177186317027406405033781637054545554672336685792400712902808946118670564843601358589448652933816672152462047047958279741661841451807019224791158828055917593492575318060573726179998787222722326942284120847346938010778998485061887812073306916306067182751442849288936764680033084040370246670004917910530682952623500732108639860061965771456627180275697402120752409976619861561893341736054797766371350159953697528005010207707489731829997261117931429416336321412880171008545972726743029204955653322617203737887326010295935798000913860535038660910549671358204704063076039848499842455138380921292477588676188998190489986091749678874496774825789425828213252728056152171194921117457457788905283245717625210592203719670405432380578908275061492234137922053862171198038740658169809184162883067874092787058716010992029090106411296148310911382556655617334339163570923331168125973234850896680425744836348039456996947446508438408620150224730277047004159563172220155850315993540522406494566807088016256180926215602393869114804489658982532565657404268793314232502046004954450133051167120739897367400653561332620767394859957846234169449052107156721330243094359167753528887417270496295312721542790108281764928988975239009180065864698651269853378171046328802089059112371392034339069150076576575124667791323618231984482482501618933068268143892022481419955734426140282293617375610373397405533223527440609583292188886589218169562134315607672333566352639698373097060943631131032864828222697543869972297799275384825672706627238790169907994252854797176036748129059615011614152355406420951756844762510197223437301768624652002860273266197454423130405097702173596313467780449531109165357111719110225247273461777236617522130061273018232603927384895535106876291058607968749439910098130671082401824657996268548960856196712673775819442050972251755471404629614863137663707975298696109761449914842662965829414912988097202446709946133657338174445672611855190755401479076385890790283210046176493640562809922031058739252727793341220332054518133294890299784644036516411523429530779712693431157558342966114110493528480112231280224852755771524599969788824882217159383409033884149191660382094494319628567788942038282752450858658976565224672284301771603701947078521102656536372105500988166619668511642550883501449153097544377718932062484110779052599184939358702657878344470644305566291740934546097697138684537095021456524934273248350189589420887986557766860214997223307636464968276028790379326684625792074713462913650947407261178786209600499320692501715752903393584987628987317524689954364272486678106698436775304656410263836280309823967526685306126007616361020599675359575550156847513363115595564748612331039568554432493144785720160295886291607237061565659991722575528180321975942724079611857293333494851397217073696078429072132587493987136316134505217233260307460422962309114792532360926266908576106928129810819667283537196801816378608664959035560586183644486688276349807929775518989944361258356027720644224098731525052423945787386245475773805663303274743907722570920814115052738663078548953665139446845872319534477473486753878847058766181885557240473747994229253740820654201788419433653183301833218569117125267758522781287254984113291452052876629996650737119359060888450400165332796987937988331852198105907633490255486711524510107528066961223769220881986233602190309705914136417648276688379264121203013705606282188769752493703528262257257178764659860824965796155821932435677776667276463458386003418644111660067873734326226125373932263557279394666610002493933072961427222822299532105128374192893509934541912729429762161288409178174667295686229031471250966809222721538141287215851779500802661902310443218840401838065156730394349868016051942324295119909939358939053215275309059790347668342206864200635622137651721290159144733025639450590931377590431828776259558592287046420735120885032883097588775308463444611431505890875019798054662652709376694735003909802837086408307008722947045388124560047440335760304251747654298709892440559627476952750603400593153121984641532099850665318127973228491772063331749881106817291566294053140202815490811086912196691498113789301864525211384755172311810237164990407218700698878543024104707622054033964008148601746726095897162695917521574923969248776770909249403437044705604807636254620866206412263407713660901687515127234292442212425468656043774184993851170659717680431026542203749738451092180764971418536750659176278809398160054139501448036673054725786116900565272726518818900006495791555526917761330926091968306184930620036160857548710978335854433395624950265971614876997076050262216299886132055654984639315489277245882646529463185118416867498414920347360000483927504348970518716212026695994776523562334684156576782695116977144067912681551333715107789143403195319554000890511615060322918492074953539274456446551222714008306473369449387495034143591768979313981156939775956408637618675218485585881183049013306474554570101490420728344774762049287186596489890582599114964495796052626732388382891823867441369590358576386066328279610077382334372928999881576864160787629855840749546555381748286056275711844522396813664866350654405781607935836806089733753678235672173207699126930384149463039240531099260066497316346299765524454904504018629000071424106232510627002386683543688031383703287641836021231140268805112264546714703357269454191222173399600287909733099595231662150460300164871580463610677803510248940076744527532146761257544188029617161325237668846394445848555512898463914696983935326118612104457165219094936466582984821511196401458326355215690321971592970297368861731134927791447955840746156582154509758713661868732721069770990034463833979735925156207101375815279533403770985298970642968229683998487875724241091367376211476808667319400841946031870471738803426826201991573280307232415018738996133566076085576198766836047032722629370478758591950828540864262421213198669066640050308237070118884396542996710741396103976742909155248452028684417994632516677824761392724215990277676724539955207816445085066237526944028495208497661904601339683110073350599659857761793796171835310443655708156867383495449215521177795679041851271723865133033095083291553566512286707909563949733370269612163381478365940363574322638622847121483049191636930649351524707749760480156320768524813518480487050444691657111197615594490682251272135083572125717059013866847364912238712438896087946012691139997253030747058503527514496106749574425810336956347351624856542931080598786374018549614349698447641269017911607574808104273125001215398046867187810973680670169017831360050920213752254568746178693192268812949964921342708074775270533745950107874573590438567428173173539365171515826607140464973691021001056219195768056309614090032299383653451636089499949494644993725157398514048485927961296471453452300139834828343783455726517588810920594494933174587411677249144181508476179601580310330461522358157806340000697492763953734787310118925195202657179001718914267822655382776048936725982845322338586635522229028093651108001367240718156404951493164895574734472625849266560771786694142702048098496497745250610671581548563315797363569016997082082211126062670451309457547109972284168785242124564525737557718142046255167407048059219344782853831646649917236649564371580033367772587379311608847523432043672424827802250608590235949160294360268851622630009081209142300707539100442968755489851748738895837617997161514036392661265258866014712790569166919893793673723368341780873572350771156172591476957145331594153717867249615445399707151610562297662804803585140472967926880831939364203361104579517141799280042773082160091370990902703506053388016978914601853864757642200637571015469017231520790419808160817248166411075733064320718376337803098527012857616558570613139847722581281485930726145422030462754634448165590782505406568811718288133068604809325614683795810402752848795141558686851233058074373099736147687656123381075553658907690148325113162165946277288038314670278484751548577698493250059042926516674395701325938735982019119016792437949255442724247982356520271395906319751617386647637654040591400994773687987833210612445855421619621960100418037468391780937779584122585311653167640690696861697421619675852587348460665775995561691407869243139991291413995088388603115330066579078586513418854532694816031372343286343522027380626452487600551360634579567659458870961533696506283274486495811596973201783812014326120729266766228896384671793752904415396640355795307923921247795129103615342495835276061966526974788842621440734498585808264887255555636968765908859534187915840498949489448577003997720714535975964039190388830764968327383698200944877658885433968285270357098748503872356744118369485349702607357824486649492381987583727400655309322892423358547558993493433287189265552070751462220072297325591759218635821121397322282345347947476815276420295515627094777518620907369805367440955865390836669846475270328154388493263667815765906338294546695750261307140600834752194759956333025657958983552128745621872853582109629774673017540456888677342395295098641409514919105524605050869765643945960224019778816865542512473369383608519845389042904792836604385879180307901695616264658258979725014200948690530688816702038138012778695202088192686446050155190116008611656836793260008711059748811319348953783813281211859010491520772294463340550730529250858275418209520702586720767230364986763258407160461234748722371607237550803290532653242410053961879533146900141925141550039184133936704824057911226994605317202360077275669851096619993499857176300090482802615524264627488107894547824270416065495754585906301818805963160037803662794150608722914244463888765346379835835633775354840999158742088351705645899250998856769825714815676073543795690318274082617831987658431394651413888286155759366214988665087765699179506610745862433498474343816671252559606317371890974679371310289914877386998186276298456969271305466997016523899183277338389857305094364662657155178510957437543230096751528469386804551235624739571568723644988132987841192528180411897889716201125288869684195716948945058450407067456204246181484738604594612239720155118255621600788215008195606080763939386758916211319836202468594634884062044608239282893293343244769915099065411345577702087520300762021463183201553416899375486153246059262318632438159820831291165736332196889641383987026302034067911421354939971012901198229113917791531318954197900685294714166690756274119519329192645611874811820099209564050723874066204611933829298151525576880518425445409708010815046782180222188947831935329478527305344089499540686816425962892686130332616599115897985903261024834876652722517339501641567854628702071277000989692378011365621016203077931386820480857374895868411431753860061174801159241033243837522798981424585303236283057060947745406619278218289794314645748002190755088646304747150396923985757928804162242627000703593029168415268277457800661626207607117042872891673233065223776149327411883011465134176214023040548971205336466862525858425341172502950278128853657890654598549934624229358633059245115428415774299898877385802976195219736886624416330642896544964052791836476553098117142993572920302113588226058012346538131284566501999708084492205878281877188330107767173581792090313538572640953787442574510258699112540171617618566779378737364252410057842489540168568068912581451959330051447481159527804223432403770191878870005192438116348978803740969349526917003033854377652380261316134607901258351395034393528053706275739105956178572027977583405033603552162339463600248365510823110399631518568713751448117358549430242326953936669376622778817370453629025053259192977646879682503141664654095245647768060645494999865938175850606520103926724545419831735811322595172684536358598275278882075810038209922035908820044612944486555948733319878359994866492747961493004668153814419034862490183320661807564922385061144423572300647438154217981201192390439402712497679694410950432618583922833770968873325786343399043109803138997504447848398188562946490002277845522303909123796550382278024337866182591902585923144270409336694263231336704550779655684794710472249483267305458826719761900316620213770596976448146935208047811884350383095536173888196884614688633289872856285551220764346075033784719699507899111079033848511052353317079281322277061748329108929004887818358403676226169828758879582659735897901157863023605173180263121327987843014042017797242823698131728105872682443718484056871175983376232692045947453173283294966538819624686384799110090100045781332499097333354296849534597962185048837618296516929626913572765209854615719296814543775491928382398833375537917798701715822606116869632298339009476692482997949992432327783289508011213892834721005500392941103856416566861386826424834986178786732889859614579661930311326472787868785069255369502723107755822898370042909288909902379689376432451194184441345461651102037381507695607677467657735212716573097707116454091066893426473836199024642345796567900649289407221052195929107821458502583371733653072207541122188267194293675141271741430330833275704148021303163347797231595703812157188244631237389289630638950135492341033124161710105498190474183836937301176514180181383690504073402070307183608252119705099217877558464957436000414651005401106051611621065498885772473518443455789942694600031923782330862992979889376817780959966632532995574234654258443843314084949282180728977304417994307788225749460122858342218365668373730482265713374159320494653045081154559952515209394754475480679040803497042459949895860558063997874644304249193767823866288339159092579563343895614697635814209638803306713039596675982764389654511703895716223186841923725834857216265869630770880938079149606294473624317778221838676859001236160862336403439268814130938743228784453719125110926310670946809553002383811679149828410328792672391690282400488661980621466864344390298531334274608361744269336911017550569323415495721920612458209561441791848586494208521170557845382200326547871897137702926646834622130760486869293568301311315578058784345695154025122344238503050678058436021650546757134424598504786470191841128989778064812140704976402401003592727397979475126104429586829891738410058669479260115760842858556906554404191528371170283413867117638252648750241456742132478852657051519848308095075948552715324461940463458334660004446685705293732530511793158013640468639397186952247734082228274703072176824809657896864098913112155817105926959061243904799293140698610743704647732720782846151842679037843913081339669817283784207139445514007515183148227647752683930146074125317423361220463852331849323689384594628317510248974694487328097274585280297878614288025660112501074642356320374976525980621067951823996406075058005471138933558539091883271289867547138120844980288253272610574890615063182910412026931717008560706068280976584375393159150788348086809817439288257847093274275224980158169521422045290603730479162213733372249710151997921348524595856448093492177757207359717141115486257260311621264592893832449960413713181912324472988963362076888412423651001249363312868518008206132492155189622436454221505478839215248052103586358999621151082495749035589807381691738044337859544830808408010764615274584801447124320891643870341655674961508361983349288397778667509424634798319290691552189629939327216616463733811230466094492881264731007895061095673912922054388046950952834381277620614849292886875983241513060301740895204771125262995536138235902704166259622203023537692563860469926086133559370670165264498936967993654616317845302034980142345839585428896855081889519031550044564849395721097372019751241240055550659860699967930763729489991439177689449041941551139545388222924649792378727059560326896101995753602160515889979273871521817881850598770179639692366260810355917408708233089511995763580040606397785503010133427871137839818722181357077423223178209864207664233634002473064377995139358353152897831221561138110909510081441719350323965762678468933564488107649349522165119674085023671053361662353055567765546531188605647546680542632925762673426671442143392049847103702085996513207037452161702554657710898944633139156731147148301009439962245894042772646571911605028169458145063464101163475525372488256501158321462744100072316937775295282551920854459282780520560727189541296960438202789276821140458468174401291110368247135594618664792833253416775046147631438555442000526373929954875817683459951470399233677361409281645671442523551234732821308678737231394984052771907826143263696361578918549706955926586753689762193698872501716794565799530526311837000837232583981842011066726140264029669394048180740453817370948776692338767256416866195082141115765501197468290053310668426602530599696664823287260979803049890651821077344070792137253349217991316122795905023423957947515393809916361781050881353408885209664936798724615525341882502417387908010691484237084559028544535848296288393649614381004383177941195135755723889040107241998589143072941542043533778098304848511843567747423029813053541967140777328609029832526415405226224595737623668636580286294435462119788336668874536764530016438326330935847408956052377624626336176678777304572916583606736378289779622928625859822242742842130416230144593516280473268009676605501158274952148808684773169975259326432838119831719923437995714281580880492293492169752908451774969367145682921055239179438077516458484563746695676113949866177378054297765118519936269527712695635980568177670808543211164964654835580301226310782707219088488639327252138391619065734358244232766467987992429960588171399249279032412792383300086170829305017183203887562855477727281703303282475587622421681350528006049755097635837345041878934135348699335201785246640217413230419123549644241930741501731564355484482385925146910991176304166770913679312778339622478348238495576417881804460573445366919454032198457416714654757131452909866034097093419444355008309875880020774242451118453421514184261653616486179477142151348201376405877742464767263861166595576107311440217973185571839950744281943297539043240058122369378940619698518837908311943607255891341941961748358804729008294111902090988473036072241653261078670474992354492919667896166829335310600640102487609746366488411762495092431680940071337694832031579761982086038097647322742775922466931986115909610083684235211851910184608432953689479700067281087898977658996135453393299494181188072387604929271032914512950607458386179752853663253949825637141746235029426327466426891986583291885931271434197760170875383898326248250848895175886667894868932822774224180992625025874036483167239433504039363753129600684998828157211895081524085618741118384010402558450261559984846840447952363669931202081202067669031872270548938290299800463472343035127696086020696765374159063354452728887852667922036519905434383460514844422489703582143053777637511257639450728802436996463971539189129218876114840816943103191590837106158795733244985230697982680698765388471309950881495178569520834831127483546935359774749128091540375737170428025423192674544395083409754371722184193347846972830398387195559349353302226640533865451574436454857020833394796932063312590146342910268354923281075390376176108866859026577342798521817660798877951227552559202839617875273533193105044061120402645474028378518394747575768325854714257664065923768048945356969584650574002161252430435327477103102208418451364958887671348119289582183338091015192104022184063511923583881406367780070647022126103490342774604179280117348623090565627713101233278496005288215440552300880014896968775447740714684502620458769427646526407061861148663066142373662126009236470608252127328987840519058722875288681761550671502350689214339640383647789921532650620700239296503920485858451815186858453215247301460092770151621498439436385992010935636172200880805770766272920219450977496664331670449625654308827752911556993326643519777781771432838431208787227316473331601010771827551170218470994649902569437360083328257278615367706106621858443727459048150701243531261828777109488487333024112727830868035165004480390046988763950202694349604435114157678050977819144833433620792697625322920667736973625928678537492800532091480065345169819629748013387050636406957349889712395437418086088440146497988160808543020326813187286582176078558673181766964557090762007330684834339762583828390087298475839909500028123163613100465023985319095923034629194300587479503405701167814437992934696804345240447092203473119058382555334262250122752190301326073975051113039141513146124594901266071652277645266309116683653686779350258373466500128708572635649520325254042845260235483414194589334157959101380262979773604151332488095956616888989125617324192129430800652391065058683282663711068147085664089614233490316441858051760348533212426199139791297174659018545972333480420137855921971942901411659664803059801135905170274246107201809162379129776271581341770664973488038123448937444661666321540372800127165394247880355613445491909218433227818281454888309452084975920040366964444538786480762258729991926010574539557565280977094687115086359141423760938450325167252732778031434573935480232875618409457911166332647808004906507763755888876574584872383159992602445413364718843747793495469402686072920277261754563894705720374444426999506142709094863838268789996748955234118529752330543273433958895250072553696595541124830443974182998703673805159538622520364584738816230865654390200287330184402306561707097794275599756584988401014926662753958918618514890151182001133546804884187454672882585820639559876153098529857807052885824748161289614065981686329408618532379646137563052358742985823221003704389365737212792187722307338626939210520464466005776920996640840404722825968468302013957344108975866477801030663740756264543493566546069609783842551928814913556401167805214904187532953754752949901584681851029377661648526863544097180727776862816132195936706200210717280307714107744612995951705747699171560916088201873996351262748704557020109883264585353413878415150463172020517336717306268308190235365486125247246607010532961936922790190437264112633348526800861204858914812575835270717945457035548735013519242796355126819368786206912031779614357540030426988065684425537539548826614682682851666423664152945108557686422399171958522711158834162826068431747330259156224019600510306525962472528897386281199733379509745380830576197696259857875731370399761570092605288014485011276172928768379864196106922722706872808034636541397436421630359578186195271238651846509547077915503204315808972957819147302439675418128325446698353136343156778998174963394617795184640159504990169274651393702488587709132181969834042531450760545689224023510780995147754949942709461523051003868658177004829056163792637915859419192147469650443552189273774352949564779499259983846242365486053087482981050767498380798703839832550112199433963873018211989507428748774335985263425040481296997904491477623022026458586639396348086694447930128983751877796921039810483331916190533836660931605133944245881476822153680627218688181417933228221776037246104330273588676697713849157480941524064219650964270856330373508210514629921017650128264309900188620838402680242985392350073908851057693637174600184135049342636347276335998137470114608316688798883895873121649756567830106833717935312885163653412743996334389507382772926738152497079128217382938623753843802404397170083532128741228385019040375150273625718483794952326336825302907230973125726788081365707981523000859387440321679742425956368413232488992655561689198152974447233555173985051512064392822738416257162151435360145374759702977827934280657834368161173952320473118002314049453371850301408625799958406653497821650557078770796072199795788236842680357524719743132017498740747545550011296124276690597252938772274536975961288336946672312282048832409983978821436236867480703496302972372426062267441405327001814117948925605866442226682045799764403971873279190923425403874272458129846088672654094960614866415107138752005918172086586828978363985313930880259558334894021325034021227280673882422503533653412798118961081136299819455379936953152946058257286399234256938441027896114234162428068317205965330761663609622074841127702044439855908982589484802785921347633827667641385329931791836601500644582669712793817491636544520151232646333334018142479033220057119682563235535364370841320492870031450288929682736197696347185400269812914391328715791710206865638560418823657637753444086089635109743570503263367490372132450784388706671861573410084417891924733216904377241663291091050693532081495603468185931605612658350575658846182769165291614313815523733682099935299654035158251375341839105153458643906993953406244705038394917261456088432752008264181600133982369529624834231069351354218069404470610742072465426436474233237867788830171430827864827191473463374900832231520586449907783620294444632525567348146450460388096062324836890107060064361065063537311108113686578826707372120306186159571173650145012151597807071646583485586347125631626614264858275972775367403784401467554396179510250324466244994085012410736965162807501470773654227780242651255608050385809767149895748769629787716765245092851129343281111399589985608278915797432494869202361553522550735820766822406700557123968169715230504458316021731817735964808558319379954569649502755258086550414695676644574548633364314808749322775993066320794140742237818189236006318908465583509553301499798430089996480908360606349098521535980616101811039620437756797412977548682884565270255890542043514336801386591802988114818103553307161005102775976653346900940488511345396980947081371340893908880633095520959743086643890146899538208729782712262064029058491635132743286513713377170553200859104008332625894715150288418439829392779532978555512034180579136064953407089310620316054100232561214359361122923308803461365060629664737043286470536269046718233227114317343201175133457300796019904439449196030955637124623884098705415365662931254930606455048442113746037883444643582647471536384939456894116424612736880224926594959699328245473629153902668824415026090499237322672286967884727359156251380336635723220731962672694178326447794230820613057194209276122925912274519807432430578866192625269312495761095451634334217944518201625091350319281724601823247776363596588259199907495432338078321720075222740501084773909904182536770108002098124675542972996601767810111187805602050240431668442831005934332644433416481541881270298358415881276881673898398632379526574317157510999421180517481650275541153295591464419437125460599497001438700734420736937795920068576400703828288630565107467950472952312612351075271531416257915319096946234865107992896356457006907927812146103487064487593885873570282301945465904646345819028570798807426187503201703514206535549159854346871845882676735306420661687605855083262068650268766949549826507166077660138776248928487857052396402391378940224627001104836169557628263490102303075815802774880751025540374908790347794880273695714343554500640899025460476706537129573846678074903273330991055806560906660548844665364753381231610155700262726364562224409837861899248317162543092308835075458871639529025069917849946991669855206120252528492212158184167908208404074620606147712939803268088501797846791183008310326526504152955198405893463310654385455068669176829087765612982442994548259174268838954908195210609529554704202726541620545619726675933575637272805670518923555749979804680965589912222647930954829102334812181968306592471897894975837676689155734890864910838567604020602110183728186044939190072968982323145929479455745293935788295235196962118608644894679733458716452023351884716893183384895595046538466376538941844366961822627718503386801104077326190411348162381245907359023696995898804228390013177967697121432882533835146049690098329712199372245259937058914283098505943987695679295401991487108465572280365852021621646157387485758076584131116513291875494653623942317491589297356717472251130440377519318211592846860932215747569566151816029370061516870186294901410738220326659232725150818120854741231029693187715404524392501928993179548204368910271196012111505363000988382813976802223409430154853418209958349812627320641431112471106878353994599756219936281570037863094403844537687604315005810009357520452245526358305726541022860667720693976445833460729252714002170295106437150601028382311824329641250470621778725191899742562659083009532695365825670268540052964308348464859156204113037136400199885337148057252288854646673221515904744958874723315703302310671519942950937405193878983516518701694106399477984038886575856721674404208746162673645959133787387189835265059954559021093711423892758012691055435240163508246380982176858143215308091045748458586169371683372760396164608741581312274972018940178058689136035151924945039282123136877578461570153406150508556690337659196538405157046122121843657290085088517948673017314042708114555650271427280151273065122281010300468730312891805696057048335740171461971315976162368936461658796592108595012195462595608257419800322874203652475747860516594492175792717997689956466028503197476650427339467205027172224001750734982825455904435795684631187522688292038441465704913117248339128043726378959990957480420062723273422034174297840952749444190593344464953813598278333466999036632416666648758394890467566992253420939412370405988500426090974479631601840817539251311675916389118220603933282619949208891075163239367998547534508953755391947988977885075097039711176823063283335980835544018906337083218279963692121668877848693982754956904618122834739589203067571655816256949524408486409064982812992119628142368558042485614760308607188214372903140424848331358011369678273360073550664511209817287765276943843915916632578351919948827085430981092516977128035665878261399672436084504954504356120744719062746873131559787924160910008350725724284969829922151517745909708053556027983969187034586457565415008276512408386935813410151673899860925096025460738806197267025076465374828448932943493992950193232900743512237686966351704999442316234741544079512612477387108365651519589827558890117635216707066022979961045793019852984389717384698086912480541555804633948631078316285200442807726877057684625941209527698349656876595523671809364946658131044976070402470597023277498038170350849974064122870809251655061895874903219389813297311751773803066288005466462426859773763055451689747468971949572280718154658120617099216731301870689632190942819708467089121629549905394673729472830856017470877301209724436400491724613167055165233686916080825000378602494128911930711670917067790588013378550674974188989884768874510511173254570493359279730104984554825810697616951769738608811368309321458268523452777254032926031607084625458318169926944152188600748434732082338817677175478606967847537986940542701472128259664772539309659604907809283139121899214423559136238794814592932657090641186762815314573914861689577187522248962651797190098014305676008182151644185869960442556144118000187146963015030970242161790546867133709535855661056066833002522025043834946333171011010898117499602651352693531095359872566064908223606479145562039231931921588466735568755399897644354080983702850935943690303074426169376952993307532714128652025773217903690109219683475862971733229727743440412319459161649344332055278891581002857902238784128099929374959020478964610792816494577227061168642526008115529426070407177530154206974184407294672611382591002698605346767852808943734073737009251594663916996983530999328708817339035408133051275293321404853236261854321240517309430820003747003254921439083241250040588894910613276062669437228908038520577004261355650762131105127010979115189496902835923170620701604006643295048684859157624730904138881204121955699798395949638689333431437002386655570982420130600549980951902716546482663408200608249059689637024859776881576962492877382134478304286197320700843985287946757267647747920972176856692766260091490843289101666483450350699921786719874908310418639637771392526346938356464010898548640008230645865059292828105252458196688382768254494415381244406983346024193243001035531453103800980244175291986137595124286153185843354258206182384443032324956192478938999669064214799390914248135226166270972082180085902735671031367267145810793246274944429457444172821294948990007825608652226832343245888012692410509437315468074977278026608842585120456854501069286929749750145508260446389181557777517651903820098204696369426920870819339836810356643529097080387253210674042219984995075942167687253085086459095431497775522705628277597300443123657837369931085243521514639905322168603047054258264928844224810125346808479706478764788079946186151672006095390557425642365640938971608393744197935695252734624448906284857538762716531995555527589156003617584049106241449284147607844112845470400202007049835249645480345308832786069752845282445127608868514156249064209221193491547626256032303354080155064190114541260090209561207848753521128331414100069457154933568493634158513010095584883927131443068905963849602379685056029851596639357550608115057474648416005619119882040421574721039092421767175938186654686686219745178953806963283020792053920476604078286105991274511798372657069146892166692717391304173488927650365807130118429231099765005786082691004637665524955147865061167105676851202674993319227028956022924896280972219377395349810560444714916528249920501896551573278316234873414912981923277934480064605578759063614152579640289888359723285461195914507981612832800167729040901975968613952227997642508976423374763214716477441092128162426644203800326344068859259965245139354378681852453217283091059577812042270593869005528368662284682920658211489020071999842498369195790313495832462618424148586910715347623358625374689428310127870453990148181447943300525759583944046083246639155524388050409092454603568996404381630620106224209361190204723762353455596694705080996212497678105491296251133875533661333040629231917480400217157132430026431703363370447558359569602824026035732374620505368884168913185371934223346548643860843971299705082450604466109400734396508888241344147140112923184341441221498252086538278085583843431414437523954207052473033859909338837800223644455769182107567737534909017071049472891634174432772466936638242406932138795623911511128162128990412492842947768583103128984811243737493103704031022006363897924067775616784778068678106564269231642594318380712071979989608660836811691831987327470348616989876081427920797724507595921211914001749669012215803418824549427788306899101878327279913527284476354267974698842205475353479572892226327497000715841598317384178231690705991002156873437489482216066886598461532557012778654775813793818995866629157081864118721896638234633963365371182977855783181688461903512349911067561618838452230888596881438819770529118682744550429171837006452361985302543861066009986474125088535147749260112701517090961460396765899688326361777779361912857748124063308345283357346572595679198025888129043039969419777237920256548119284870356172362738089799573340925888979648088419197944967639251672598387669194771891086566108592219639051686752411129513189484885787062074603090004931448862147301306445919120311826668177134174401387904366757286542551951314998493347176946710977960280462018069855473228774717364240107808650288541713475168773622975630633525565027062125579640443357396280254284264156292697491375872117293456842464886665164331595518342198591888066080931519288782186306465066906320866385987510092623278685574523367768883583544284696434343900233169622252434436248952238820821366646381948188015222850184591058822678751665661899721179362405061279428037093698238705549481834342242516118565461951871545128686324060663611689183935405254824055369711287783080427301941382825330139441762993132066896971242629908846640120704227909543297685739791519937916551434755645607849648265619754178549939806358558615901582126669238341537806434369876968928161920437438028238345316322358201874069554670891005562259969033872383610307477604254095930390271926925691885733261475473510968632177875628075894086342584505158412951223142713372306940019288650273936808720549047547042657896784697944198341774493249350291742855299511387541455952839517976086704517818777525341542117714155668803932428805882649111751925976999987966180788780120888696156286279435193212589919946050699859563072090081127625239098043263698288275910941387606733335375573735024777008908137986349918591475679467121815680650538236221871426562765661786823289368068161656313164028562383791453099250669271509215199819865128869110130690767549075423387409898651139813297510199653040251348429178599583056723424683321143268538177828637787196117614493862481268021585787865282509298223284928829162624895597786943739265644999794059523681473407192304375133340317219014086902995468592720164583644415497424265117260394555986293035134345788891644538537847162804560048536226671650689024685976614639352814989018830752224102277598430855842334073897045793883154905565290733975081712180317455981209432778349879962121807746502425543938349433824416368178014798490634214336150347553817016773573413948947653170685944622275695960758296363331653472894623528889698675336125544599572431923095190957866153907127034868443775220631774402334296481578478098243126812999035817338757438992405520893139611003252058190163583338975817618356684087352824201813016567992215875144851118382444161910417577329755077868714649090260441841676386888766034179092252251264021982383303368372934670401952182718359561912092888735675407463996329228547864613918245984455956546483232534726809925072582113236004851738758874238979084646436165677737538809914520137129837381757263954882517157825747226807012758029889521620858114709834140262626516836147840509670543838584958674093739204707979390765162408642343809418626466223959822001903046016970547955835132024347714712406424320798888097018806173860055929870301648693072155302906623201414518077986152113015513578045392851034529876038739184586806856719335474772323946135074365547442499541295175004761575128060407857126347801377746499784924259197110369615424293335774039198478483759128168490984318891318547122305282842944893417935655038250605577559121461778173301534685493570112370570531639291659992742386426568364785090793449268985883040114149178674771565854277428475412646558769329215241074608732955972566587279349641696212378931888775845525631374859629056403274695244666024583883603177588453918302807772227823466319368224971232908465481188628114224845906596875085057664533465290458396234706610187466941830949761397860828432638305287218886703680486552785409566771506553438713239463128381025299907219707211614695046097121027489634921727695939499188910833946034997342452274396415869797457162882157329297594711751412971738513701235753590171848604891285755695980470803243976463399562300562893045206295517278840600930547511043800316314776591739214686056290890825721363998208855022655551135150993816277699695592820834973570900305123952453256671516464097665965724704413108001274755833901095027314687277033976823192056050526023212196266643635694902393379380485312793034010575769828681673470129085623163923259325328569909029709293568144717460488196941044653265607787327096208618702802891506361943025208279413577566601175421080090316318817325928157908536708774905971477760524962425500630383665049423888253973286256286470093385420614715261794469270364301527739076077707347052309172036966759847386129211462247395387235458040740613890975406901329600998657393001511413583981364519799828584112575702176696518593296715546975108677700081621497612732838030402207618824711423367613915711233194825521799255939254743646471799353256643790528294821919782910389486625024374099251193872357080566072892065268141315273189121085273170846350847465821174565131842650353037606667091640552518394852435362641459636642093187553276395480742066712152860505152749035565064494105599975073659717911305818352717453929941475786542907521522105276223343139575941694464530730372195289704018483298068371017465583675698030691815511901373732613480287849560459436581991113495426232760164489570774591515805606060783997372250173381362718570650530418591269550710130215365901182372082008851744705712696172304709164920285065209747378931812491223374725014456158915445529653857907157019436265988667425999536695744895946131914871602923460020019587344255688634954684828703299889243125493962601636738463808772996170944497291439822424877925041306325758857187719377324351558324859698096291854447802676718243603218567564413209184516212636008174143550444432831195576055432517129748818372061790948069263460986954318526682415426750018593154636454239617822456402660929763521615531860011564454370599008876719534762958261256650508206220464235677894800785433503141729141440924454068331835394604088317104409170368359153635533268431731730261008269318940400210219766883213345889577530222508158027410679622574289316306659085466944109484866701692903790733320927771437326776394145924578816584740163902136585349022581935865208728422443517084508694354620559348656486034707824695807590062759482410904834471926042829836118425021022393897798712708761728528257484635078383696711651406437071016446382362030121262969188114630038943372862541727518992325839093666294668451013447196850271355631602578662160121409077781325157683594565796907436870327678271833624665534664729279113691927237756935962220199121374711166762573369152536577972636335273564558970343482677704911350226571383510079367749699994116663655655085088445973552497460345950044219370240664376056912071145365817543073651942305509867883767877390921605221682397139103835954083569451268439389367657277653988835640823624249740934634633378341609365577667619075441477382109482301965447704734132757445154302622640417580218933988777787630843517266435618241047614038204874985102760901146495523193699670721007807857392765323835385520014080246112842261634427057599115420945504917927116122001981003158444923415919542562739405251828799675134603022701217687113793565833652880136732511377720621279730201434212469069690723883187243787317173446096364332766852188781735729948508096111877453181682125146285608228071361691449804639330682194407292374370176137759703122865860180697776375763015517283330228733263796498467095409049023562156789964605557958456555341954771293514169547306057601849532417492392326947184860593044460275810562990153390400688249716271904998000806467327873853362782872822088796827253178225969721781299595582420600524841747756959439788462373827742702500542842304800107148918721736301771704510791831346790819063903245360496621991559039965054990595707371798654847586847380307749431502643116882478154005081071484630467450520320803875276674506936437054350546950465886093914297730074422112011771159396213554611210197284445399921481109533984629075135352070709839064080319431563238873090437118208851402050523811085995490472464170567426228214863921029230916316636989407504770930560674214914755944878060380560902503072664569220168060357284354336542255372163353976980641678495521884645095460408705562616959960866913871961698523055037872643114800661845902277368894635300136445391079041485734643655035671776330075822849647734938150658494520181056307342570369290437126360697538461051224744215039290625946754494575450665075648230226787207249805841526296752202972747022999224176575286022422302195009358970922577202205330756668866906669491296982310052860307632124108986902617196395897883206103535847517765119394073454596300965782575844185102294246524178420155886743815682599440747609766248879693411454527901473092535738594890056285210032012479079892089555165170313362960666367273890239335880316577239284163894099010431768203231391459797896883901421587432062603410177153334964050776992271190129007428608352080089099222668441996261837797544826706451965005433649780878050570278196732044232006929195918898712410119906065820611670048799706010886738239310029887121203865810708354647851733333810296858987549305279538362466001064351577900849854100214953038058562996603577448406792754736747963724668625275358427661524661684186325034277126063983142807941739099721377339722215472744456061954057693039443303559107732322705045774814481142083724279078946985351514009059443018492399097122042358383906287914733934010874506195723673718692155386622143718310527309129863677976665684654287447458154970239827451031368666523512855146284342826089679232630367187254938143391142233301925682915918416034522385673056724738987641143738743734877459513166199231569224615506093903765352950468931191320675854063645320099773040735195314195476765738416104191103365218732468941485284575949778225295399752744695016952964292965108102975533533164572259215194344675861425732225665979568969628000508573665546299761732623355623758750027076174907090651439567626207116026811704985298956968143642673603663231695968039441202284932986542247182718612856428428261317231703173607778728463288851249801865647740227972785489347584473463654780820587870378963297848933752025225343811608534073519015516126725138600387717482007008726826541861421805415424322987309831204414197451681311081755255788108401778489950402495918268541501606045182998618745969339487227058232096497818514539470597745970804312823145478967756603181331131441175752422766021596062612155391453709442906976472244007498933215047601155148061162619441931144053523654769833611505063889877953436145870791904996742985810879213665417797791337023305908964305797459463354572632748262676111457855223615388893329717837597572494443720712548844088857049639342379814168306852751957379235927223952328683076718427002487067676952916053701691330646219626690861324767156646738010833290800326033712677715753090978313253332738534152418756330765214576525895757966180184044146695723536281422859903325733277076028635586021343619400288276893309690259493328150593681075935430172381900325187531190505289576252402122484428648837642378165806265465552735942282650181341928288119700899944790128792697322103132732176894155621087030289332218450042780411361392261643692725297844662345683951218035192557967681970563356905211245029538032737580369589051287314749713011143863774034433998805407931175181449726636965926817960099268171586833158452119214227777039216337989427334404425559433036375252988607029280777444181585652020085030174895141760636202631464171935630817435582898476219774799778385068024527464965948325648279241157479208684625313740090522937351237677538281605229388020685567118511329430518711126809773199229635833988959585768749538578575456606846719484064599123090529163028582260749457832106588247265165692735548088614065137965082513751605367032623768473120868863405079266235835946559927984841527277606052455381736658286915152214322324029088877222102161695483232101880403152803209443667589190021880742817823785331578989355994295552675303614630640208352979728267876032935653963154026388439929368097150967853741608053777818047323012792895549789361621445127865421449275971082452315611617682860302542315663939051058916185841004671639987274500574143794392511268784082861964876273543717632589792040842871818316131325777293569373363113123867683958315152942348800253374543704664053293115181264115322836390971290264828068019298428805421059528368525671391313973371202672491335195021629998082491950340958541377783462982631135061827826020504581196384824961233652966655807990093354358838337680033706790108537890556344451121903388031359462062324462050548134029793105600359684141456271711086513252430705858669946616457564033777760916722840372693922509350184831847595413526605150545509002572741758112039488825928910179083669323514508112536270263445055841285978437714223574283287375485680499922056978957042021970165732437298571743537273404967291955475522472085806457860927595882620655188440262052042948063764704776150263448555036934305010933551418575251428899335000912911455372014722784261107327062522773134895488822225765639691483886438690558448582874861269161240366483582090753656520867407488612895077082016923569620648907147957918949959648659834566702744263528219084865421387074652544353156082512356101153764838372043075761568254136649550840101861744684383939214287212685454900706082135426490208658143610294588722009238382322781005493709440893354580258054497176249381747730236268778414754483464057070314167544309692232444642916684573884811864087205310693203209183349018691296791477919257591664955873825146207533576437394124692410937455196940360822515557371289650186952330720980112111908105177144268127751024532852093709608745822507491196777916526327151306681554384685645128198872838820505201155746372624968014069241384558050773447056386963115186817194778106676751482499355428852198892760370192980606307445639577809862205439191897774686781082077040088164873025972975656410550263199868736642148471429930228715795259923983223468048275161686930836645531005284007197796737972263728643216090293332195743274627574327039110358064159852290771549372322784255459743153520413432293342976201735554539298192189736222404764362990771111714691329767622595869362366030936809371292673023161128711235238436272696812638143924776713467124000597007351263193320265722775544466222593578257675739515254335190389304300804426286574004929001747349400102166092305241253233941328773962678288738706497181828653961046457068071508148759575416906232944859365979977685877091263861931676712981335005805978600071612029332125410950565795927886405362925729382528605588606615108438115874148885113082350196976155432653055099005924170354842272075360099929062487325960442170469887647710004708061596703437816903800051465241394835894790952575405275436777921475722613186689450910074545672199220155314974271281899833912410199913361258836387053029841017669396865848720632505773868936382237196156767358927368515464563419221708369895330911448651616333626692085083758571485928595564775803925024509599816027058042585803112201246807219535355672311930940117404167638716006207344402859465113121210524676222822736452982297554491086993971404806828323857856072070796665795590363747852272948026100770820728626232244118009847053878342414378287302997378809726337040788697507097884555238634108259624099389718329265304397693446135938706468561386287380500488425316436725977715865175576363887851222878497979224903207876607119571853619740177119250235535327388932551082483506124048355642712830559980495967833400037094773329362998484368520197110077202867539444366917438186687927291493293432988068494242914767511090445689552682892396816893399290463285236039764222919385377962286437023920910595670204016318106101402165020068619460759841957749553547581088615756146010567654874033673663643804615541195280943297766118742172410735907393130421531361914429125184634734517768556163220357758801591702193750378911889465538531323792653767083595213716175937051647050432815030031308274311604202109614576516585519773216580531425522534028124299214756929218496109706397070439081020520172940410144391560371953036608745956814327840193272144725427816267570624655201915441465349427599574291961926303599737170662563793310834387920188001931412723541669396336246001342505781999961361841427174400126035392679124029232670949780355579214996817078131989051648386291356291092572888131395908577118371374040186831012562719913586264277174281858914451034748686204529073699125021632963237831453480022438460140199945975783968360650949502363017349435161055128266016911664586965323287144747371914148767519049737556344606715180630561976046398749294764657583595533861766793946390734446093622544415246904232989789012254338549538043365854765099496705877493421708262257034289183410196611678939344331824632163056580236525071264576712480678473161445069456504137216345210882253777094929867933513600750453325121314315807859005444740597973798847214808553665640260064411038441551142301636666158465362732990078580548977862619139184569638421305939900979906149118881465340421301505652615110889310511859241778421692880683174823138939820421133579074183295903533013624070979398773728609077020434939667282518749252722189585628426429918081537606693134576780302037184258223373568919262934068197623440778353923220765589928374636813228114206054731084191853884001041524489826668210225922176731996983009823153575177490189123497104786305949885321336573978424865206821856591778448138254012423363521636773080489750109344394601423337355381343446494716947033484398708115212111611223620551774009704083207497006714421213815010416955004075846438597365107800297167580741990507906960058148497820377148449078625296507953850473832918939852585243042338577477116720615092845801514155366095886314027888454491690865628219434086499357596971174128561978198465574593626914636527102443629411097297568677512053705479167805722757084601468489147428511254190495856525818977390430948529699919100050239319526725163421313053222181147991700945444995665923314945362223221105473475086915343412757434926159060627406443921310931659104374907515365980809763029348406551217226542282213790025706502733139631163763190297157776453657682593747554905600327453037124167428237901574072006233497187910123324538941427181970279212926179954108276029563861340592926986329840179108664845397164611586563462484177602852447701615828790345633015159911134578618783953337420095299562423106885154155064614642462514862861298977742838973764188051339489812556179278652835591069064465806500031373105735684583893391516910370173397585698986103541324290582969711515887627218004488535752842094313811380641640642465649730737271316904999442973829826683835489628354508152316952063611112845862374058160671949327677829542789633832999655371994168691625135732272335545018672267354339621879043000855720508314507090885001583171318246148795352829233229968835737719595279260325032807118412109343644047342834028260090073286002301763779628726211649811957414905962122326195305605211360004810631094023159717843807917233381254351809452251383188212990673207136119576780744839889411231547645188045975246841341430493801249157346509471716915381634428052373576282772615652321354496294404675279799666412412322063449313990912297008918162931452485184828161923525802791212175266902307970829095993596551582535853018898574045146789473388881504329146891777178565788740778991013398255863920920293187920070253986079563875361279731374713182464149922208009819303672114914526738613808906804160382334782798404474426736135412494234599464818570873681324212295280457663721041902319990487346461223278321773161351715790285069664071557452381462501868474712398858451033993037597596157106592966298779715192460958444975405043187374211302760195438021595184581020002857086945204881456118977730387614157992965934672235255334251102471818282597869087038267291862222742024047317006573117800486611369086662620592034770179980473298717487224756745425128361789125122281425411728692920958828749556800539588456338724332887971195996758098970216309277530292370331124260322128615822504612410491668635721403917343127431943202599425887541180606021684890388052831276004729541695883995897646877325105491923687462704425542638151171194642413518782063430524074045790926770224692397878802636906891873585109334389113758163873360836031655015955739892266005705370789939099878346970277060785521686047387314210416253442444424661732337020658238710051417725371330758617807300490457508584078014491356661469978457244349062426934621374780422735232166534253860004385889090032385907330959885290075682623272155499055754485481730950411105510015126012332532017699967741124612472839909019970775264708730144291769588863325983240901716948138342036758722696706284743091282196345976778555660734239141270102411000844523498749822161803549364496806268086157175787875038195057146298017572290394922685072875356659322088069868468525071600911373211385971311580853085617375227616403394944322204803976389730820289414749894267973223817963645519119989960800756669754379822047097573310521758274332462026578389246230325469251597229787597430075273012566127695086097932211599500511017147534183090810835289327111376726864410218507807217873269230113192970597089029776852095212202400757623667418512113234933985278717637634023274275882628314328905321601554912741838096202892655769738793808570176279565153836601979439936264551720225816043985275128804127008996308101120009285756653969434387508104339542580674859725813394163210396210684507161693396776629361149807704130687493723228039309164926168154115795693280319043845059653672661208771549510152997192428663920266443216102645707998994959985904478499970548327623580733717450307110431628442845874648809492208502560341765856935023629466423466404708652354027281504834557543214189277978533531152391991537957620065654490726626086351826317362655669653932080413389569332147848225853864228391015687271438597369721380816075926809103272184745874845642122445774206145176293826036497980848196924317107286222570926120498115433596834976713407058893608711188108259947496519800321103439157447146479843196118707912494051669341512441157813550782932620907244033921361212816528530697598816292076343824918032458584746166969459417698715169403259256468854412465846056448706218290636609171592756668002730877997384893455941196865158031819144476792537128403708132786058858322834008379824264162846915100107801202420287462694226346191067580305305181553031665730573013598396037070497080999012287891126363055132775786818903455655837246514598655725080561322460779153298564107166449076606060462300912813687724595671539978578271459450495586465857038180209816435453487819981001334117348921227190568155196975533563861159237894787580790505977606131912726712473150240989661381317308420633721365976542978009024838251977426092864960271465690064276089678513541594374603810731710402262544445606160734262194332232177247808966663294605770342625633252886570586352581668806407190982969474157337145346117743397021606121048590322639235750411325060595819528695770844199005677547570316644610326199146303129706128425632039607645798252592003352025701784241468351498854880044914193268426221415080568091068859977016069045257490704801482224987496521377068757631333016964941314063982327645067698408459565683309183020865233670968964654426206028074873080754436954370036486545830693083052983453453037657287864260455916639515821411151594576746153332456137938718139690916475947782751200725455761295622774132030668887477735485891512254774158070846687084124954241064264540300359953269092289931095570741024939450238735479406593907354888569256718424344769625669503952687755753433529004586477696897806307736328139375728776820835089281993272808971846310446299990720144372910778497508186928226857745862831046625716503690284663638374580982633551454323742789171638067560195131828967864221793660159493991337311324057592653321410014430379335664531388979023391797528153964816090442067312996991469657495211095693035645442414406021804237248578753622347623189178164498467958163304101001469574293819459024271685854203697782386115413270911545207088237350213627592329264367934146964352009727720450985300299566445854619257275585685239332059822329718417351935865819486247883249226882142528435418592398887655118398246375217551337084894473648650926020866688814031423187803315849661057810010101484902184677500551669211766261358687059280734356505667920777826880906816916205421876316100248819465604694601592534578446141386191741517621451918459024492212330386159299191556358366787365515447011906376994426377415635794710862078788544580797469477636773595829968997077890928881139561559238468354270881399544829282604117092984358921896471132179306791647030411154551031775784513074318032324550069349012139688388177633372236316314488439380535089090929636556813205489335873320183834361384568768179423074739747028744151055304229490653687126469137803395620036422415416474749676711466840729514634401230148034153857375669573373993823177961175192880349257232255476919993355595785519749351807688630488425631831293565103446226178314338231741720559421794079133323342201798465098636463102073633684798733564981927450775524378187487773538437557592713146222961148344817101776568447452100471086731389163273736339494707702013508260834916185424504680710399471601180264466017561528272089577461816266693997951597319237423742783995078037094850928543918298404360737921535680587049849468979564605127263548615640359836462492904237229496399062712864721955328548010075878985597789673590448238486748716111328084280322907610085992122210167725182168501468632455433453655772363328297668231798711242666256239107859447834351868385167182147471802932694989355281344129699752373759434757860758356318229783811531531440531675751941632949847204161155555631957383227013920038131580174502618492248058374292231360924057993821842483569434194834657054362492078733545240239904698875187076654644436973153292525216802341479319545928122416843674981949096957519387895456108141266754248522801402978357813786014418377635630987451041562438534010276797320908729708306112223503507297574043381225232510295191242726370969593808724803955609638436678686394887766719711181421404893150753157431695335557991199512196763371755090007435675266377831504674027985309000535843621163985811556215770634011481437453716218367437157753053784463757051599380806375528688070420957847605652517410000017088285926079995646459167966560186519059567724788303043991325403735275329847260001147804667890172981294944581022170234390145229258146950360040827467195380920057994639900193941514255419286770693418723760372887153492470764323211248188586390755409885849609061648370630040812592763512865196859894793336873349744550969270953289041247272363493719306913186965549550069554715002168315391594160838728384596733045185890922163092457198720254628342194316177027210359384444379590103994885592065260288152768091826713474784606408300273440442357457346448005610388837543323764032105191182276532288251408105288006444515133928285800925335131303199073472381784341693421165581993797812853231170333329238252501729139773360260223610384288404044996516245099917876484834429104532195157304419120465149209995741920253138968900035806607467650294632464191004952758092970755437775527634354217060450204612406048753893358186571377236516764253502058042866264259294026607869942191500596063097387416786454689997836676983509091529579224816897583999343915794635502972768462774325091432692820619116266800665542544799073532784106218229913457068283800972654850884177130158705818266723135336113413635110153813567373239418363221210514186838848714545138899438121496648092144333532277916432641798382044348296305454487342566179584293904841313614342464565629648914066621522110914114422704505731571394472470273904404401786516120483111513714514313795204862661495978052640112197166829926515395312483913438724423575488547650797819902519852417021817937228379580952232765382316027841302096205363005823195807779653711549109594402361768539838253950315399649694227802418861686254951256104397162303667165350532893874239292686022203732160302445838790471556320234875402859863003328606986257763534520749754661705913366420618844798107835806381610256207189889488599761953168518305717287890248102092804174690709670260909381046684996557105417573009776635503561965465823874047103185709115542020957475342927667816680753681662547279457126739248162770424960288312363685929251692892476040988030151589043769801468866431965331516933164649846578051274815283305797282854949865302647116221720014477333935318410191302217181330853711278127730931112751301137468742396275254256130548367634308703202153116046394829059150048306593677115806643483297557207166241566073979038665962701623138288247364120874934861314890444993738804198987466721172063602749419051802558381021451987783653394802587405147909854289132338842711381861017967879721824322249931417124612426527963952174117021856333147940868928714953274558887638887837525564247593013123357784403000125773839481568153016663936209380862135332993834236272955243877827734792815236950861211230205132382267166496324609296599245560289370878374443376378297328044455946233826410186839080688611753506293827609908563323954768808608522687446088587665822823923000916100877392418022145803222028047606591704799631262241287033525054382573579104453741755399779128775750053114957727326964840673204606421242118105782511862216095543340522663771396728467608995252348772220675694241279736984184512405494528596892379209625868905698783601795204479751553387885787644518103130787801331902838804278866186340359767083035955398151404213750027168449791004994320896857225380702573406229307479733193616273295552304907846888027185326606219177555368423384682542538952522418115647658930201922277695933726221412931713398360093582091050443786924648204269732905601064533329922581720893096654012914907628601301125770556460559500183964973085573875699744856594739158856061321362190393976865418636928048491841729750451971900516117707958220303665235470944293901638192929705372927165529729791304878110693222383096723712365526016361113140118442396326325545694173876666389847562132365383527305477711963552502943419339124015137004752929211031249297075909372784664877230713574891000616421923921050993637176105388532113439475351341148316182091930052220093530414621167994483635920716133052976463150924809561807121260588063307725353758045216369836245464153408247222998926867291847669571746135537395356027217209041904492166323791567239271095049229529091108405894106696311604533554824046849589436943276620592184152123548599428088189547415298117923256171778428301141649758622888797418549004546515902824914429174257874232156414099461728461902162430131262027785881731233467673183878162948506784057468903164208715679529442432197520139211745574155488499431391622210062915833018974986753949945894925472939218697069098245638706897934535592757458520998990422254415935049935275793663720193925106822224722558990467098065379771647463325033148156586485968688599761036010197385426127378281932976523921607318321098759888077698510960371680000636238616837197951610453649080594920842678511833120754873827659904866540769721997814524510023027126270184318104875044849155515512503202163756558340582644743750014159665836799401815518447008170818936633780311796169395169660669378378631351490637974208841125599366680285823461284257977411201031640807961974284882037069464550749351214934109290802111929021159897908578180333994459071041238639506218450866398416241913569480755646539048538730101706757023586544729446197473489656055261849744141582998632543571102699099452662095067406496821501369763716157794117879378765684380943946539214196063640546922116942698648734095677601053449795301253123554194166495877375378400850533516245160543022016219673193584620062196956997136439963166266780087728289987613747889096780566515960370632149576324475297545585077925328334269779156663110777776833443861042740480663009528204305485934388904537516953007316559797863713170939048007336771351477149317760377151850775327176603719594080736107999233148261644624599912709150369285240152583982801451392483144186756027320906366317989943826215874245809336668641317411401758584419839322728275557925161959120901251744956327749340765610704985787406205172837435101628942416848863585513471507518944477513630869499734218106742055772827723426824546488509550080114584992527110116557197356068217546279665769970741863620299999156304805503114760666481925708246282059879813475891372550002184923377863785629720941442292963792055356114723110158582174921905303876008589527992471715592909102879708327959935672562902488916540276122480349281409569797219674523861366923716136868400633353249861279637994964128962219432361439843139972965241578326410144393010173047553599044346256993033453716153739907635109777041058573766939038621649698370057002263086109140411313433076560251821929419947050519236108154706933602969673532329955393279625598877236002213885186111663294876287292126749158554837928796509496132744000594446722523248206869366073286636727187702134438239660330737253509474068070862540154665352532601006580248700715073590953505428573756920788858615180371892622526627928568621232510927149622874994858804174160293409435918008420085038781714598805409472817523229147701234467271909579691742064123891934846117226223399458764807006225899433536915467161824288226836193729504800465014238327078660943242908911462913531258890829323190695524502944039039193127177888823221492205682940934877184869593297874497348112856880773835497092815080102910107096718308005442598605758453817628654295375652337164928212887027728339969886317082936886046934297022892949727058904157203921210328334596871237268248920175087508820237317504629810225634115291423721489888270941515803422362964550710622861487628895683563022502033066110915350163573696267197935595112394063396579565206050554782367263281255664221298980933301179230414434125409899740227201447799075795750316385327716357881327329804545943881222058691815546182624872281160423809249107037658987907859501970196359820263900729893635947107625391363743679918285833988707740640656432729945070630169626447102443665200720393515556915842210495728556960598744157595674723546232253408053093275555095955520136931666909712641782219369336116002865272674531044946191063399194421701831523342323225314192522929397180566495201759652931552052815027580432597106762032474966719270528607010662670191022177415491567724887116016784302477517176123909494822700942412244091305576985718763680051000066980062554661549619465607833404805420265539048309439412542199609499381072105814025840281807716253316636511718320291089148782318137156569809762331812137185969018655320469419768685266100313404398386054789317689219466272640915104622539806672156709003953994647490166465388323982975593494373656666721368448687526438078825645898877095321148354705616499991554895052575397780954251228089369404083685108508956884138779756887182508063817558390725003207237357839560555745870203832947148883816420481487364922135053255059719743369449327051880275266560667089007169167305537888335749470000918173657790637576237534771862832369430094393800452976243703674275363781218101047349916039598773310075152157633535771656751250538113483747000952223449162868608803754054421388843465021692936516139032203391566097006435451083668007382652570440144156269433085243646029306692481290999107789967437192273336576729595984821908270602861732445335989783449173153046750181914029675554955735788931215556724161172351258216388174979640678875288841147891255826352118625867906010362305522372636827869986199455134011834751083896999666358986818273628199733133272055938221156645928917245541257522999340336480430286160244833894969533417960607847077830713741880100325813834179551119032405245232924870002188146460673377418535753225248237101513577033600356236496643613495565833648098730255647104378727873746521906094097890703525905837922005047945909327462187510560200912108032863754668909357942753898028183681375311508393862026425355736673622586035514562938443301088946819127941277689786284304692914566502972518214439385464118944828044243614710925760789412555478418772830720247605874619838966325030333770298589099604454344511803399724926584863017949459972284739099277377599850715422951854970769977024428396821897676050844604412812858453148986865820533165259434174725038544165004111444147751584539823464849282518466930309397219819837972692657746743068215434778445555012876500189364160161800128459685106265977618972105285357559666074376982097652099650735689017800452451073022317930005783041606777802786031706030710660079054546354270225409562614062254546101347898976243461228310599808351306565378566928709755533369708232182367528745480799040912674242381752440927782206326457569634373185314717819622842034729186310166365235071969163350293449669456977937709230329504185822988183529786616754764985338974143634331950645096872501067223475101558416379409976175089252894533758811976150583367558109870114490108582235752751836017896995933335625055752487312417203516376123175541873161032714924763976357376619020152747828442961370392168297435777035777528434322127109336447744219248698838185455678520054894632432459350798458666386595974880511787770328746541886662215701237006775732304626943035987159671832906582855910014623289192587183656099970795781094022904533044769985083302160012543077195178798601963555718695457858848503550877579774539342926069900300315378192575511226665521040470631038030782275251581935507705146106525609493228819367523706497973236837434405426558723412768815179215626378971466252007482467423291070602095772036408465391266862383741022732734434690317762828798124763989732120435824299092017208507922787158109439258009563596208160497548559913362364008332242393127183476845496474333103360136254579305011240542714437032333299581839656915464513936458695135242796875135432519162219011417804648226193004466386265998623141008039212368969501827818415408827151730475046237675128237390832686350780620355713622804630154273207554767906607141553755831990716688161339103196217397601124709595004540259689498871743793434106437076055570072474224067175521834214754718032978380625054616106937616914335563583389589035254357492834617265306648611274499216935622704806015745575425050173224280632663313552677231306987460789811096681851595358987992170288590194533692220569524262648736725174675286079830277283894988413523463472944637711599688518232281786904986371180851080066031945508463968637046264809638306600837213617303787049854539206320988959642812192451888386740010240535541313212007037555345215399750443532656408388009894972609862252718568391334728663328675562491514104505995987839248621142409179370356607924288951295065672575317544346960417999640388390173540398916853501696767197501499409582010144943240785725373264120489133389941478035636579184143044397681366436293790070194263011525806501443363635421462446468016412750558279937405887468268272748481106350899685892527674370482273712390595300387057624700659026994278907116123892742398226976671720161835219007899266149412138746562639887098702539998256185391125343483326107252922672434297527061199418558921013812298314814769963859587836860923647219336645180960715062004186243657528794603530921455433440754452184317729466657956830390402299450874904591898973695041519401721691836787184227881275814197620212969267704443682189714562307130586212006473537143255710972112265453787315274075435941278079625360582228265719213180570902517541251048495526384700508758203929650449283417769517509416375299441612417082719135649786810268085007130809525260502159425944627210151516974256765937359715166000056247657299873064707559771847711448571081184621201162463739068480118780707327192224422120016852199505165181210295597103319433432326650246897451868631585726801915453853040275333129066489008867131273944509206488896633767556713668254176057109625003493116197423298210779353576612656965621133782348644779487608308373901649042001405626802729110019664363169711596441262916700077499275493026945051556544000900053072237825131703266658694027604484337877219545405077132921816185401038873870258715957774746240579300244995596946805377600662636868883975909324395520430964755205029169319584496964905323584521815092671884517868793806658521557800507967545179671191578547516647835956292745294968521788889626333562603292919534924633250845075371097468653834483062544865565306056170651151484721232713563628623446325794886097485784776514761061126782683766358841995263277865687336946597983092078753881609890693201104673486067029144878359953676565050330358093841396086627711078776041491702999657121615373276480390213584623906351079502397376885586888803326641088932645356818375912826564392877919263963886848357044859601818082131497004203139265036585768360937639733340621267891738353533552872926990140205442812150176262017551556474236231730737217563934934536634230922434364804655267674964180225619415163929418885837681876036253315263871629327645861575059274263146652392080724023495197184573729579808966727421618158878888005381452497659342340288849704952294751411750669380677170634651670009460847329398441414351092076142952688604015017398004582674706640262585755069365493282023918955469003404966378025879294740388611525415328296820071753927500131466373190402426551875863678215409708640721876620507396266529944410492785843930467937025515138889133065964073141575123282182812289873246721163424346396438621098612662310626375666982536426514980354754439496612342852571300187113891291306221100225603794019470442469080781049353218743442272518215238403119557547168878725433234957643535043163292951438432035225466857071601472033883153580467222697846633082481116142074560253373831911042169629187449932367753174527633170508029014685488341809780860476302803527744532097877049864506173829895076326172231751762575873781249012749357403767839854609020212038382289282210914604145512915653442891121804830587169418578630061120141497774337019664045311362237724849420548119893411852596769929321432395678186284274654124447769897971290138203947374114844947686562927967773871076740609058076230319643774000167629475636369702335192328846036628876610218323657555422178563525774021791616561763463603139967440210590978188168430963235426050578548416521189359277911656797801751279861167450592781616405735539602174711515175092445741334433107571877610223392801680361976058062948285729841598585563728059821405353190129959251957251104247894681240129690151086629030702192201916521759463650645419452556035540970312306333477339180919618083930947917531313494428113105219241867843487262115513466511878567276318200177040256771454664673064305927638670285372366953392857562647160689329525772253207405745653650506795463990879407806630929261994277074436059198683759550296319067453446214430355279695018894519591289294524903859893173356524105186601581111906888134096907336403602107299211758864256749711695651785815624374254758129897504226376702559442930204773985522532234622314404435742486369280165729922743367429052788358431989577396137192386125051805570554970563958026879595924093637324964032862223943806951893838395824483798355498596561073640904551530432926801606099241470037839223941334945402219194359774334848743510206918546161381743360517267966978975875856420375483035397500342300486361362668201335466705836242277759556694552358438285929441082996041380037428199469341869224197283860852759255745467699745609292214053599971212655698206747920812419282236362884867174307945724053901815461967023122258125912862177686815465379868107787314298518098593485471889713738593214794778196479671335210984018272716133986817125553340167789130989021835713635964297677492903208920499427374407736494401089889063143030579755016280795903480616878618297858003268352789477945826606521101751257036783442176274773991818784773996785482140443939534882824319130540361196120192060157851057770661048795573488607372169998173364804984454541529731270923217398650604630715704033533330138393299762804521640351303172902699891470691483547317234832812161399537421778560098576852737289710459315468931467655048245331976673192462083294409982131034691884699139580410804920981000567492957996692996532522397439860763751335227120390078210193930643885819883882759555134964734182019108701123121167285099711272376594946286635378675502929040236628625731560279405526023286596466833127502461171061847513522057950708988847875176352770627836069367598696313238845466836557746943232390655143660964699566768868487040049270610398014763453413000187740696862183488164753436310746162469117257608437570826079478973819474884964252829497963093957960493072371869206073257735330512985799222366887339497380302713018914970210045485583479353024799472245261376191354633127001394732381302695224695200350382864496997259694759312014707435393653695009663906295542640763593328012979014922749774524803626732666879493338387476565507487777381625513534023059222602692700521041623437343331696620232581819317601687460006836035244677499117205784104265231088183421346084084443286817812324704305872256546585904879588576605666495266746549608137242643158398885990794130377044802903873973595282215273700234807366177766936303285319488578566665729988729229163837305552897424621705112693451632605268999205318434122729880265761194908133009107972554110725177671174276240684286550799091331205144079126295052016803080175302579087620380545364183064127716739540401641064262825860045780625570406884008145331173662975379176197946284750732932423797576329203310869678778090396151408781157013030025275254372317845598022632097098881922028501268004889541312614365279202019434771802375178186727635203828354220725279939600389277722791155448590860823421976928733393919730508356200060124761724582426795820131830989984914025531506050571494147873850519614143532120414638640386235930707864737282409799708170650965603336751306718549621193877240734189475256808859828284168821898283361136862571378531936566397645548212415444315842966735595172173167827120240296037181534487773687523173813321947501706610931945791972074033952971206952787685662559049391330345314364904698420210232159945008000081074472880823465709568481154223604649041252352714837020534275681129800519231800282053174555188137879207474880729962085798441257550755011422830028882212583564479157110511682611990384169031847746956806553891767077655447791395301705749668253119002622843299627518307941200090825958663072756352853548035936704580514347017981396475027857137324487405657914484613544120407910154076050810534099228521671530411149308420156139062665315445707623882040915921852083469297135252405245867353252800814880984018033578132773896976055284678590123337585464201675160861465513418806543473255225418026331643395725632776572610049390181315603590007380818530487199108975521154427632010365405339779143198122072427029012497152322827225527430978158157109828056067051056238926756112833541277534780367143273722873048542280969232921740054306361105979905864547549050912564332900269228259943273062521196711851962459611603865756704254555725808011438539560885330079207976162641861550769776927731773376216646703068692725542512484008028501932404471554769067812002904429279077864790378808289312476890284246125306940957718418900978900641006122255795574190470722494754531958954971145492105015362802538691684372115167808254686212210352617570626637577368208866735300206059723418559898740921842122938596663510771128081799269180900246189686661152595441837793446049548118009473620753127513975575070293227703418651669591705728495945365320139466081452024775710104499152266928102316520694235393530252054984866404603741370409797168864925555995172739206080546688681011866669578681991116253064326587267412999963734687373004645403797347621598184669152834029478058352856266278956542137253523620487944821443687683361805846005869385929148384399520383502907923226569013290868061949075758753704428238310620727172762256509935753085419024832803643344077846315937614576892539905883783443150537513408858083227683451173504434979798268563144850933420619502776443000140286286854090506367231315107482598673666405474612898422446363004907573865593409687265853395205653650670586022185307172794203536324696719191472099985490166037695680988938420505854170532169183683570677943835725342585214861306315843101047623612173755068953478402772330213935974515970154605951040178710434148794842076379850150128492079963103371220105379685391345578472791644770910255319564925568624041454212372664287655629314841074881514188229617870947508449216216631696809212932030120438570515011811399373485041098152924552859600111502843496190849368961920466447255718305499567630558414142966379976533320338385562582726742573595781360842395140888921277517657314085738378593856838064047306115344328814304364083375900315892900578688049058756945893260019135650050573939762475137611424068417014528605820387152706547481467800683015920032664815587576160668629233964236772597335737684451916262592043779170985678004729795103851179221183686604016651992263372538998287694107965932953225595306293443764473338459822029174274549195343104523066840386227991817892342375003095632662212266799849051623904862714526880483743684852836307262456890082925171507236228529143992512395885277858572913765366511741122724886929523697676657205195533883335481580359772450398480824911641872455265425894394665777865919591627696340493942590839876125984580248346442062768854295759113218444053867518126931944319949583143014641767065759132042133590818859687026969724968807361519346260013180493099255242444988931405723859052126258046810646622194529510896787608883748167118575131796468637378244487540294814059649847970323821967792899401878444395513672860631788983474785987358741744056510668693143287089376062758960118092629215606590016229852911187343018834543220236888379274759858195973628869025561002872957511454105908551963815281804890293704480321887377067293296049719009163116368275057890937245545398082108131742868147417047506718666170148856838159579432499512892505239808099301127961249691646750194325773047133065733683618664770714998821610012391213133824223659508688290347548656442510984196233059446161364419724286770253813927262701208199659271515852590765504434002799791380279228837589981074502437286166156971440008286135187450310944861107205062229627616217278619596587399075715094681381631919465034187480508153285603933434341607069913907738048039282773111580494843544401649077982600158342853112342111985292103870118741758347244092201082161334009235569751650440379628097558397530471551625840849718587915056250533725561830744754901536128013058445904216808605898589550527439037504090846006983081562016613883614115658161882043200023847857690669077977781475523735754120618102735972783875036125594506881477797467216106340602564778532349189898416006966356984321889109917286110320960257528408029686651349259531085119664245824144731115760892492270127875758029790555174325808265053056889168724868361136606097531815228073150366270593746901126565567609312422453353653353636395482102813015856402393742115492001251316847158816881394992929510325249820749326636340042179648600230506810937085334889906303971834136518572068662022059364381053346765163535560276326007035809012764447939071337638186260054202420021686969692914041284548454729371390849035616847690784824814950749871195348153785463667757322297771479703596590330005230617016580200803187947818237856023565852069306492798071300008509438664797264289174366263397076433927364383148940878447410663543739865261039161516232719730113891667855591988817330284523019851414338437946685133275471799362350585214772767436898090131113770437314576313755688120183997167900680334717749956916956470586640068061847081981812754841110504109817337989002961984762698121459869851512432150287251819877810753210912999264373567180090018109559272688878426822928165202616596629897713054191593919928326430857629193429024639491164883676294250360604173844261737287068491461752679655598258418912715291607382206742694150976984856476259086617927589753317641134195055358293653507732302137518311523551373054925925892686394363575489473307331094363500867312298271616126115502481720757766662721284238517749989850532177887597481122163274365756740780368571264753567717354263132899474752848795266051730672533576945564773185140124919737432046405557917446278696828668344487264120812071672629322483686125745378512799618304156110137323150531080986548574898000202328038029981425396581505003857038689528733411479345566271808814082334917970391146073124734799546677614465596809442830250700779040373913611851806213504915037753697379842731992300510302724685699008324023766836156667853995135315203816914611213249592664612705234898683366010306124328463490167865256195117583334206434081814868422689906175549239535850829808307227013393917826724218616756375273350099199522118826017828143384213779911671799006413923941154945748992748521429941449908392010894490121958554191978311826365253959566919902152633424284592297584575601499427237829583511496876780162132915158398835772744015132288811625136496077345324990583407935784557486957375109691677779193334207069072469010229036006595430766726056431767451696239819764344289062355797788020087449924275806566459845678666566142206452001174653756118483863480459955233928329850186727618761698609164118231896124870160783291269495371535555023474467026987556688917560410860044139086857683001777089771351888271409506338079181727471984065405886164710758054541022160631827414049705944146584491502310731128843532720872675394551550103377372754015469858554389379767015414192100126489224685332463475754883577886196415140581290372406222686331423877344998811916706233078866102908854224398961022629181985732587101709622008069791988999452553773259082392226908416927542155480925049302187066444137532235129199720670647290430249164053699793663571795971242098183285904804348754445426970889609004911517748450912468373892437220585628817666062830078858119558188356591183011749121910684942031693906285469632852354361663154013228873894162828843143676268476533007178687673068713539498141030323527588185735923979662188680446678205479126464761253864048233474624044428843716517887477204431163860981524019794275249698145055442172179715647656117672637306384237684834763981142461805455647086315189494593926382067383954670873738037169920746029485940989656739756198877399519248797107638688216747411182788970496227557287154964872659055078575379756527141753324719061503577243396908431524954197995455773082620758444394838899576211400372586198902509153840771040023374971646127115338978962188736197262619994921870619930556679017201955762115910891583638121411203554884992541564780563792395481034141014175568257921799116368417808937560759600987949392247317840797902459853356409731420075677733427736293528336336785065531200609286401361418705346974293636799448342055079761973536092081007818029847484416159744282571962055950596676679960850716274572974875425440074440872117854655687586142821966526011706059851119306024980552428375816835933416526906108494456871340676763111860797188292026760494196051599523416548906751297752307875577074155058180355584928063018356503373716798342875984269164328007224143223125717309556876748134935942761616364559492069205245803385463953309608047914790817288926282701532327785290360757387340552647483489464404842634463210505302080428525127755511046211776549285397086136586330131899224252709220304530717407936206516415509805151025624453599999681967377612052696572221914168023233426845926272332508869464900360200542662798799481741772267047725491063525933544263603963414771529827407537935758575005297927035050992598507172895529071101340636898094311285942599468635574515471096790505270710386495318028596878848580204130304317528174871333252102293274360822184450637500649293630704501882774476315080010911649866912316936867136016428986762746930459541483852123703589926032920110106961807453219274170037553256645677440414669435689739197281099074622202793899473097290144228411968833655866580712939603871856487112099398486063604082529409363269468758944941309966415563084800164066752453992902689892014508472003320492423185518928459853683350538376659439586112275280775219462014731971437198566379595061770863367352246086972421855517397403691808381191178305019890971823769881870572771537763531018933754079936418319496520210719488255424235010098481800775723128471326120887495309761420148020602240454658900052000094350326953835392652599292365498963819662648929943572680636550756883762851414089430148262389476975377334228159070106470045384813502282738894744057695332816846433428188108338091238931533233747559900676576577949392214550303560148826994657848976311449005851519969535802714844649753117877483946261190119023738909941486442666881039046138614939567409047054220874340905875108024337135414301138780611118245427553652262368021208482315137527253915026772342070252651281143988377316655328677358255056638775906047982199829351009844235131789807914916363210773751197538349980648428034862846517408069253052212195128489161490647927755270133736988225678239974591679015972856678419254215357177625385494653246883736719470662329412026345174035972783603606698440318656544330300285432387853618931260009377381795935290287653321758105346225712381193066508570445659942772944168884055393104863854081649695188670778995506896762856252337557771559826644198319981420563554639978876312675016202565731366705158372189543127677735804338440216548001072009623326888787635590634217209176071798075218215315947970115632599371854186987858914721622290574974476411618226811505070705183866560945844471536057955343917164413994323766261844592008964618994695941929931522305055146109582847022326648390175768397187391242469504448745174972973734462004900905985567162610948536524419175622852418979823938330313502279804430250764735525260513105687830073474007016730460580558083226873822834554054826972508793680250381497098334861118994709934841341200459218355361490760340583016968498687984466942892920348670717889798820609673644319072954075919918591133242148097424199387494598026830013166957443528283121047865520309920679234486970698583775758469283703998115856815218730695222759726531577070750545734283931030481512470255664357120583941526871152444359591727332135879178395027001853843379568405421623671013722458621340600651978250525559885301381388296712838392747820763241000686477160819844431479739234753435101372432478674172742231289318768259319155400162794920311481533671234213635230839278844869831561077243793919044040599310405507143275155964682729966158164501907141548521266016489578547551021040738873328181629347812832190062110867096071810702829055640535149076025677711444015494220334533318315093823463320342874486997231949642176258226498597115617202531971711188132911116619806049671660334496472937068357978354478486430611775120834700621969174630324414097368962531511070760245651670624486615575824226481419589596615459919956679878229843597037758911373326591808570509349814466734744897572915711053562541671049647508240388142136665327716985188686196613365429572180368811484729240601849684366989431022797446625220598393847334496601959027777124362094403987889250565312861913194158068242474267463294198918061488390364961550509854443620707444433454201325551607829556887017579355279976506385486305209340837348585802238494877147165856942786898232885807221138058002147514100755971259589812650143958544180467918844778882650051385822095705183917283319247200586912919186487594562651940736722730473792184438513753838171669972312345784659263405915341090141942152161724238085113255091861013434941858117470558696090642291213634729274563098393820833177200064454461697760850086694240222869926379320031110530381815289539930531665291887913385855093453496620168466198537979996127227362254033906426913736634757680004511922594969282625045474801453155475239645097829797168120526882306921110142696560151867867647057057918308989953856663820335526846169398261897991624616716066183473739537238517397065067036802427584584358622333223326621493614310672789395496242819962082495912513010347494154232192720833705977716976422652236203422198568570631144506660249394763631197010185170993048074233805948295058889054002761671964283199596415219398053111061123303281284053562269214408345778812288142055585704335454630998192984510497916750203754338775588368940129720872615594509947999388029489683172381463821842977485147575136723214866059847345830773169337621908351981076875131955660438743261572836104112923063999693507621842190297896288574475742271089261285401612229990945422331096639984359327742824340426618780199742891952242968792470957921250241340213270356418467887779886506844293552328481470127931642331926772540269471970300578883657653416837747256541370642666794591558616888670422407562465245927254639357086770985869013154453859797088515591920389578500824896804992124816852861394074239841687537079123126279246027950107415727641819383066268818340837545952037348696413382481489012738667918592981525680013778830001013062008165828124212804192238647528664850080091707696751519226815657518120230624965535128587540703205546260705741946929436946879096006306908333973594413472989107665702061450534192752879100531117284049154832045449055367684399119218980840701424057062496430344645633422064209935611567241761942214520223853351355040510218548418094052335522130561593460620894448475016537898388963287825389177710046161159561433651494830498702254263997720635655856373201038918062059325670592545452452959396149770148213915023392339536264843845546766165205011049225904558407143926869320843747216557481943362988224788261842436182236628638259777445331870777122616516931474377582371593198209196759332388825021783963436616970985383049709598640571629945331590876610727320583682929653177593630738405502419919864010647107737622068515314181857955812919887028073974657184997839124586588065562606890824680740665731041371839961602831252325015728135005688235269064736846231709719195863680743344100076061456087498614883449825564476756720477963958825383615629280539392396281903924327566914262998274161465886113996748544860103299645458785974190354484189748641476891039602955803389575805444244406861008745600757261408189025318392801559669752223036244781576549019266534441660614232804261960669036547614992586218818600012505483850316280342177672655198042832428126787918975189492835764590544562323129970239659077027997497196852252200916247783575862343669886127108361507670014932889044671060090868046306862817577337139821035838830450870362477761764885097639570173212715008006804164658257879221935997911187110143517365205213370944620353434794919023729708665752735804581906772837272360490830114612394927342643374053422321551043724580245952830304431982006599781135920749323794414515140204950897876966266773149712103087931410707611834036364808104833158890000175293978695546754610458798398276801110020212420056919449978081012975880966675123615862989547292110861638395847834147467699187335752448878703083132323082609525010517447196159801877922369996324178940813918727282523717227285836404948264839345379167987124003463396280214650475971081590277587738564529759370472043904726999865401501358610544505806256869298242530953967905367407531427692053194900129658169510811515329117217225285273914021341062907581441982916732778368269663771669372072062589085323868410603104859101745850653020755224136543994572092357722248398084280922688591652383745656934795096222891668954744216488147285285882343994063069280615020747930422209063808118843460915694607680466058224625309590126690053659331959005815579223127188314281924037477246281702874440038237343936310074853924270955907270987090090920672297359697646463554662321913325584924127259743817185308481605061593498728217014687967930884078656987588374237921189240030932939975714919206705962368692202804139708807884817377541534619236438977025384589071004766859850300799594241427144604996939445867067737708432083769150159990130032588050917088961500301574328809457360942257411336571956111142697103523178176609174581313235232170881440413324066140625265397742385544367209295946987813455186183659661754391491478099329914677921924084356129731898011240201424332608447139443768048707100606991588451939976703122851672134704706571784809095551843355183743640513577716487978868221834956215874061320232439928516768153758581870883735775005813694839789543367762981800264980027140725680929587802662056409709446046870474810505472984594478647353099064756065784146538626452128257255098147472759816326478991685120440995090466001377765182411618539190518724308680244790430769202907010034200833587471354348990415888720504343830833678764548991415976696889300817631664323616887119755273100685488462824395472167243374005842163096826666197654772468861904040036676223156062321741465766643318045226574410705215333909954343920056586645114819416766280053380289313794928903498815334118018804985857638231815679896366060421859625192344980122230581967366284861429382023675830474445970660699829130805843343565322516584038333352328098235803112035738774948680021031356959388696488626875936178588565076545199787883425877333822394766160498850629334048619575014311173794457512070257703301606622427676062314223887435026214715490390932238822543109707785324901052929128054313992854939649309762144176636374936170604658963275324046356433077131681271487601403967061066915787410017287922691622010965991673216985752770403692612184588126887663469918573774144534923957323966975141502891590363281819321352205141466732004158474665988931566618475801162177638587581696353646357156884030950425825193800463339369890289198149131523318767586483682677011929548258833839017991066406208822545492771784598139499582280838033957488515160667998722813158581685134417788025541818769428773040491338000975916383805402174634039332446861123008751825194448829391342951203623912507282119836271425219016666830121939867905308017863984292261170734158853169135305407087206913607971044353840166398135729786110668693785838246538080869670124127478427433700038385138909567381738926464912183582655411749297995044776814333946808855500885047497487947151552286824105594547584242978484124567253548345155148126356093827714811333067026197256185358991341742376013420958004412557392868217145129005621036748299672255348594424956183511027187622139647030505257769803440085890391893021091875942051386639884139968845252004655008733754451790336951743795807259491892425344557659404326855668357315552787775695189627981186973609762336511805535481335053866205026640629951028246410820109029703565658036305377164697300771253625111730863100989097231907157781867453354984523150185628933980123054413409234839630729959691879728024796645408616342167872064416643490891193691584098327535171447791848357116832199982243347464442977708384712230995971858492305109259802100774336603676797920977519226373394421668919045743721575096172983246542867032309719497938514763522370467718570651297421361996862337304263923989051250688954818600549624449506476548334014982087637269328380034612676275641651751506364577731513374645020020230824394740579827946107805217669637348578835005320633518532467914075997144437806440457678407386410316798307017558459988411019006431150416866902000352543240852642459886437167834415006420304504890009509428309249744439166132541920702993899014226672533198448489204652539150592324557350673284847806902768342327447557086520618249193074403974257595510443887384991977770555573370527028253404793670694031241003838126293155679547383261462851561843171063795742433246703656369422271284732607805135892009926564585315523526685304333162804513401423545483151278603605872700976991942046590425293331345781604103712293320585399114536495642844494250574553651776392572234756192004998749285346874682444534080477400604835521313944608277449733419092139853316362833509199806643711372410949163329502511632277633077083000061492549458004931172045287625532566156079777409394060780952948969630978693270004611540211395609751935356780350616999612855815046289660047913682258163772090708905624754658002533645206733688389340134444735029578356904604863888066363047024552914179878111112988443850635273330620454594360504143164039851293106138780412371486808085992564061948222776765372785531391703525077670800888170144068086144620119972256248812946712482388305373530217274549779572075111313969502502607317091937078710908601499162815829575272137005298448978826329841853887303883934732411334638951861755361757038989172762604632318142567747455532244363511266897652269015727186551670720713071147224883716998851998181640474958444907549276441119867103144285792818442791994110307065274321547977380464557619480687385681041319385385726339501206648737615702553134613357385242860586975627342944177351525986076559255535666354113762341863156279544255823418176631619096095811667640345591649109796736328427346298440903152383368540608502394273280047655792143460120033856053321819185843429600979241731532263030507015868165915908926812793133567130059353621275606661709352186707063071865901881708892809004462271427135038385862829791235844276947630257688420805594353849313787973447355786027983654803559199598121099060228860392283410702000058454882594209261666603352271533845328608436916553810591140982168934219496653767563574765074488445231058108186905654070140897065255034596317393769804868995887764316231915907448129455677991984743577934385749635335673659248534286405316331846483679119192561547900975064444788223137162337136371477164722626305289647573483169764472353337333947298277604959615935805933553138987269869196461266225464436619914286556796889329128185785299384535894173840113058096327674541911090169910571999232276702671033268419738881009360106735502222625339039447679935055960318824670992413951336688525409149902161587334696355326636581514471362795659569773472437375402259274074450067010228636298564897992052568128966761028659876148824046776846366857768324221856570035603666322552614080551040084086260717309720441659145097265946522360083161564953058719584742991589385248191500806414746558016147862662901229210477801315733498046147740784492006172602082997200843996011480937095978992360176598920106794775476777302356409576528464036135150280691045337064162470019267406014777363391634760252406496234787943446640722467204451534034008632214216275339733352527307933598823162272245110678805551123045210920871372038215720115553171608924887284877527200784146545883072830587268178114119095145775430801627103682998281823295997278048948819524007745824059543339153155551368182205540480315533364926535691405486684655582906370405025440813056828545921115235414270995976046979469634333230397184343318039643228427298032438770800384067708543651566483503574866509548244008883806905649938795638317097313577268872034508818285470859513851516837002102963788365309453074647651898442162661760586367934757846533107932305383634701467448307602147650903093742507602845509661175756058435746189576143870871181207318626003517244655023887937486123435645912716869149013176991958114904608545747549289725606761586982685718110361954234060148115488097284521101713739788607559217356845983399620702380976135054220502936427595617170117447953348618532807296054454281799836439759122470144232546975930845543047781163335859421043571434957390427451592118167567788191357698848961188012987365512101260381486083865534162123286269590149920093599986592388556369898688058188678217015488682376537941252042646337855291846994429615119797952709676113698678435910438105485531037670819061199737406795179980463574453814971831732480898237749331266779579917077341633378606174350766275837676163580621697027329515178136759530685206994101064721449197043624632610717892155571197869870588702423052840723376431297109910898504980546235540840308541025463999925777815140000090398462142588280620706484107454585897343662232743443444569147507053935612500745115975562424457328706160128651837875282601424893071941075231809263426005040690376283072024500791463371553016105633070055507696395850769658326938118967516529616982856557035960692305674056877108326699680568540507422873462563552112879526248371814235576656122827712904037603387391921403336436715192832238112743869667758493320667862735779103442783149115334158482147228531849080011844495908251263735412752745463919957770733271957142787861819796274765709536849892026487098228500891565508083086207513523620854420866895326610444726114061791415409859936987884734856863281469271457197429640940257814308378321705049811566902928147726735776809925163473497781590494411987364703737853650262452890574453892283330559382059813082658722002895629756225805088942139410808841316870287880562106235547624994114569061900119349400277626224702961596281186097386405727535047425215494541093142868657989959561339184307348250480470667380480686188848462820453701639533114651654062446137379986791510909491525485438909570257187334967347637847612020152511957559741517666977073896614573759899344448202426037980788471365173474236259495383332876933348871669942838346992511251692985575834039182229019569024598926577487402106160196172089521429161634683153620025596462435183034099336268209914080200161564171121297012724085417349123049531982153311571970488745706797351208500729780581163770145880628256823573580285782099828604360023663180427397774613122887422494412457460838649781610332659327268884980993909957057556745061394452785589424010296079534949022870249121004054584513184712153126650960238760856154892838160635829020365952379700165382250889780758566462317420639570945814520049082743262072176107002325696450179181815270334451791991016295132476278858860920013146412903113062821504801946804102830772494991096032281427235579236339442448795062583412952408747266912504116141729356192183133489779866062944460382029048924107103402984974100970907192982127546312571616300652083841076327234953807836066638912277266727262025021166423038088624697895848599048595171174458747924782076911636940729844430530272230545519223704814895184551069416479939908781638492992625983236397695337762694497228155049102504292216286640347315157011337581610011654965262114954073426946668890771478108068720852948020339968290124013122387115634961569591648092679867541530831636190303087883764874656682523684373252835340648760103156665996757079671832363006915069445468586322622094870133737227873555116304489108179593029650598040347086064121353531770198442480022363877598502537944738707198414876071502301875529346580678024435038039034767752031336282695984346621100964286064532562572641786736348157541396513184683727189918527160996433607361323844558973869320414837467557808837353567004336409115196320739648853780078896101297306594934468391010481672662283849431385415599315501499815442116591201919559864763393713313877907228540599623361496207896100645658980619328302822284676866285077427669330695403393309051316109410188505455762557090668672815635347008831955450735901503005456568007324052249773803402551914334829261664778769038989165862863544050619523209750571417492806617652500289240508553888762733553937026060515683868358700621009175018170099830981982335492528191520979040973081347864773341370234551208004827976062282323761976214595726304013832762127913837878432770809506464390785886684246871858879375435621423512730614561220666147730729192039937433835486765987211425222588111591386775815597859093230177869452142571680313082233710393262535598948118713488597486930263414785713388760068839925178361033741455284267716357800940641636945837687829102889867346398776527184714241338647469736739842283683931393724287756855014824121046176529604015867969850457759763166274169914811694891267679534281368287425732890679926626064216162403817735047793009759338138521776917496527992944685372743056638094424792544529151351213723809434530432994307902197811356675916298443990730165829252994994929241124938045804940593040204288910213250656509849006150202433654548048657448272021498076937866088260851647400378484021853236727221680345454976271155588100887778439367131880193499429146354531835003231859388761865758653037493595219205192679581723732926044176393186261546100279484045481622240757846104623027574952914033744080768489845619890243167247197939300281267912708369292583459111147257941376553279823213066890189605992632803452301802505074936440777309781045568382866685624872435694318231053977295350799198836144505239119866878748156494040511241190953634305532704427729578462459793143919488870342848294418342815850819275306862501904598170674331454780409501460098987987011016511618192649143016444322764700180806247850523446928422030308505249481342267845577584532009937030819973720779608768720467021209069103028537382035230711719241727583861848943446411688771441326564992739718012097181711513957582332836958929139694201567985322875331755084320365877285346466719923980618293301981995783490312118766606566705917078629973175730578007388246874886252619985598202359511673780988974975563232084708326514126166710309393659776744091020696408455486893528060068362198157679791656850682083026631908841897428532041636485720429121425270763513824847798747880414597673263886304474727172098760489379642155420927054599945865462715155952651259427589582528946500230173240629125319812092622611403378251176586823737348888011952034187014978826206613143159869972365150350350838733576236813572278348555948882443303011504466874919898363098577996466236336732174779729438621273594622321596005309089065684172620787903803208597678742101020550551188986315898510620582300194041290144551491903823483045715862147401680658269914671024281058951324238721511237891576167302289728614116352981888951304808928607248923726965211853659509989543106552117611115190948227988798202224332092045249073482159799525796288475188649186047801117000824529690537212107294871340874124382346948756455104104901998399300502911432615189005488462481041236994797459904880477905764441761271887478704550659472482050552397381105767483582212872654288384033700936749768326173709452312178606291545264555453172075330321498312509336651551501049888761080644154664942011118112469149250186717224960128278984700260239539814624301620799176312517997591118198185840404210945979380495437324015524760637920396637836268269996071383159584878315477497567276423540218608147992339540708209383691216942519350828895201398978961020880708329910277576798646595524502776248470487758102937655926611094937436570838719338603377953829852512794296482684655126636749861675857162874297538126405422178056515434966367281809470489373680232598736654935678124827060605585094592641016187236036389440852966994607234843124569353905525788464165565032253273328890849095453368835584721820017804989656975532108455635989886740056523006431400905184005666549078905663088146050452673402003989941665551853485489049502981103690578861144230501283897117374978500870780544415097601967046679263046310825566795488147597921295994567634974487242422721580747729462146077412554694195725243744959380200348565763401227611960737041895487762722072468395181593926567657954108537007341309130903186038866055177649307916034597966685914569089436936610674465496830560031478471637246981796775608539795732916379201879050908101352535949587663776156990732720343438083406300801767519040063474492613166624348601793354117942218545097544640705353366713063976862921432032857296182817371171295466913664332665195820653853019294483518591799276488837766475565496927173526712940514550687001074386461573480876116498232802378957652627062255265626563384386387380241534458782791916570302045311919464671633570541452020371263218731816039809784719449862679760990578509230811162160657446372464167575994257553861230241177042741231102559842395624711416103773406585722029703765936666588021836552921761772620423005563551038856968884349288939049998319944460016383459670107381896635409836055918352645177595426142972765159336594571717982006267584525726548262692039189551221616537330936695303139805472680636601744389158194673527463262805691765954961534268482063637499285285996046096279809268165751166102080066645973872700254662595769312854387428940306005441565447627351572846572984520596006575927815465060282985400685409253352316941155682726483278088197522009278275487709361076226625852218960944119811916552492160736302627439718518767448600289603140795338417422418652872839819972373764233404072776131126248726811192510257875073491411722096723602977669391748149950919922937250216531918157552281386211010232878090500344665455321526661609597099023856446865178941195144582974837843567339323975594362230642013619324141438297370974937840301511302658803325653230620966265709953167356820006317635736587857737362464357419687524870210274592299823256197040585443723518238354755422777152029902938958290202065971047477110702015101910276297205551307398738908361375488098494453300306964034541545141227948178930513033467118562931910324658799051116402695063919622884049078404731449629814429600273283399581247167821302901915437134364017015906998754994825173432539949500967490995218803514166832440388223895277314343795410879735940936271033505591443345758177077888232522138578355848541882666816605970715560101400719850440511234685736594848682515768321098076955646686700914640578797429106883972486795089265808586302626236185413427364185892315549941818299577125309928783200810473595980578409886604760467332315326846102324265835606889706934835858565893058720278731272130408321911427507259067397590048206990157732059145803612326665849411774201764809389004106757466061646687304124047783928289954007652667259224069940827007576020938334890749595126249792435858729023482031766110732261141166687277788137913133941030889866882545891768732064166725781385995206372293108342205964655766017916321775882305993807616151952810382942333525321754069866937637155565150259836274920241515464864524287398463604061365583679962061078565252481739957053912815874842956332859206705390727336861577924470611914490441321557568225091183287304744879408551482852128468532986830400501492984521093646164493874385572590385638658705535790007073729381498288200818621288381783697801384231371599957131292016823997141431454317577294743154614153770641751427754401441321381543520726674662890649083775337460105989814351362951036182791846888128162371818684141238678661847579614431608514752278414198504806059037635029573828369396980714186267412325320201802124525509987376175347552502790141322776166310733695454830603284557063643583603863973032025090180405819353194225742770524406204453966490045944102544203937083886876040234876087464052519946169873858135044119468533721533605314068973515662508344737639047138613066935300628814179999830523916713054084957994725016160071582970613097695782167127983977798873560015969782665840732696158064425277405053947371230792932529102951372844961079897737343349595865390649448990721169590178366516580636999892295428654976207818437511976871601455631059384814925089971994627156880662454341822830250614818867665109765668198143077825951469639013475859311262068577778889793253409162303299168109865881935212221784470133116058140877869373074663023847242935376961069015877799336019688149856180653121079394989513348667833694205988788130351110207344532099886182616752345255719937683514774562666249113560868577808120324392270408458312825352782441275966112863211543791648277647033345492985230834601881819936780156873684244895105389996821302304113676513134665423680684034110987525885697557714561301927960925399657635188269301809938230497006899284966754444494341856938668420344829072641173069482408953996458502125926380492798954748934781149890143432301627032225058456984870316822857468208261978763025071828440394100125882203497004305347883344710505654774381993005282415572899266449714029910344740749885762402490538977298575513429654879405535103983179333096922686130223478437665060522734218334126706512382241815758701852947405400315613691747532537447319177210180881910537962865861936836171175631685614662092628331201144095480922781176390500438563227617197352423270265477535361391033678874072671750817099956412676011396634057174729254772275098418310516873494157905306130135777719421121985245986639749966805485830444923253717036082715412934185087700313936006026150475274688469246014731398718321746691430771216699143852118111217397811380559204122554453035731605672318169161521766919134941807053993959851824171460997816019923334505012278164722247116006339276357622093189608706580050285259396030964151754736637318880251922290969304036342598668124305766304093463280823996274885626112815311024636576334979503032810603370555033474591348504689693336748769000224910719968698095198222818817468828278887275649696990661326778058337485988454019176957464232252350653948890974273739465874767328139824037357875163175295701703290009561550118642040652152444446759694898171283558597375255951911348292683079155043640986033801887928067044510922025285548563909696222965394528784416163936073686809578963979887870290081086963694859755903247744747930140926735124311377761324093727286094578287542537058256085871850640298978197150582175849560067791249961484305940967017083440783120152067202216878418831586102487765530977173974070778742036327031318468080313359192332893040310555912559681545318182202806669726359447604203941662585962724726305450343398965057811360476140784660056432031015323850499084020644767939901982686449020624853464652093963408913185343964020784479495577160253828336935548810196342856876611216271090372626561639395738505632615804795753007980859829316206504324473847040159886945132211118841122674990592530333214556604595101604450562533977108358868478159836863945887394224022603621976473710817316682274932794377900241132592406859359381202761488304091032986042409857869228520628711278155310196693213633295895493810195547857324341706550882845029925764237309815324294224417521566413420567369360382661472064050297771139767355409483110841284064014207389554100017442270289130927684738885046084496739402880432475046812701860145746669756213724612251357868307857240849909322921109941574792743243635863880643449418461439850097522822391492371796497185884004758562174693231927442254896801588206146183278947439428101823797910943845070028891772717314854901445312019251575347708724699029574401867086094662351009852679760415624325639966398976281105517136810262133989205510007536489299494406384822832764578674562522237285716007363728441793577539800215481136177312802448742284243585228266135752875108677310394404633750509640554431322836637722286457843735590586073938053942437725871790205905364027470822377949321501875904661211996915860065530564128266777270791674328060790498098677224235575465694841746047421688349860133827876335293253798948395597225436844798314591718916362692636372543490697447884003763852362302372699943152033626690169753738257845367859307551487870930965393908608538235959746070441417254929379510476040599077027263414818593821146075778471854988905394103216818140451587834413725399941780856346671734338599765421280673844862989840234639640768419307504185880163420030858087221212562174936506226223767600914573474514709068405039158300139898723471762650211123696501380589418481959920334362932349766479732905825857708174562142452835445037351118450869253942918908305740506822012181485533978342990385886007297647878246493664818477755746277749751538149661737024086827148433758694329844653055182403686929069600381717203303708886868391667543193146805100493252849285721755991386635341020616982949085740664578401377990080221592856931940019191917560523108690544969068931386027676972813720601323142959490640483127083484986463640918168607499087852331602981065572742497982456135386808486256964761662578370945732821074905801968905548102063532302344168636473222813829780351350853969131143410297701409053195273401513957687620695864057348735078373832292092550602950690434384741721256106845486038075414119683393708243093926632222985649305792628785373971505646076323685337981368015791203237662683697849221265095831095669292885529266804434740110104836627434789050518235492774263256350011129155628314798705378193752209960862563742102460207689696317935199915003977765557058885130182922718029149967837155793685305609880866252953243644643190050017123566494059286711162533857995567810777379472103504948930501423955011478891690790813396568718412450476540875017461699210560695272047700175087596518533591699228166326174846316993917592607108637995658375646859245007017555778509314149507757358666663529566485922985725853928187526298018492826960041579987800407083039612011443982325167361485256889988154400945633069918584540358808330260496291541679003589166555954978386466197618478043574591311453002276172094748690188649188220818639370176391693088971615311005705466352047391362910840390231646918183237762417221879206609569549562650385811985893678625894783930821107756459503741073856692641060983035178432400426638948785461965679228568600484882034620993317554369360794014418564156012416560253146680608873729517538933397569768295992013657086429637606501456025032862822203878676230206851889989481120341771922722669462690778963323505196893004354203982373609108845682434984063206121746656386386900647007362243041476305798114535183378252225963355359834734656439168764677484126743875680070398045390332992072780064065563583251270938893004627100644226067097284911786425262163932186122966370334367609237519069531305865130228440258892439598826178158325485453621507661425786957721103987797912445860695003265784977959768295706829694119269662487189049441635319545257801361704192555231064471444023967271009341005696105166323106094676913726451710150249567166517273508330377509705379917819057252508022512684691632447086883117076014869284037066608200518875996792499025603004847212325712931799837698086653316639717718352788216824433954287898958461964321480172478786990974424739402402165949705398127500748233158381360384009415212364643780104260192203277644756883259946610726113267387504569961150338456840254171490447490138144781460776674052047669418909936819520460082280190643434000323160038926844069662490920476916869715028869949601625558634796184176520155792377283815223302266189397108064333853185532500166812485882517886639705788063282523082971825108124908782967757078627247633978586700358261447576672849453312868313530249416250251172760314723289892968305998554080713578312633453486578837749244694926167753299932702346767497835759709563680569490911850205189810302342500288498540203061509217858193458694168683599386048597271849515071783468209629316284823774347531236576352124709901171531958314975696341161579149617256744498143933748328873233285798439549388545274069693892019635344021418876864543336708825854654611929274063856312323857763264606178392169053921254253691979639763375419413655165994843407732717247047484024956438641029506094175289344444521974974605758148303258830716947061974093482688326431650506558199865437063784601109372525874342074263578306677186978809175845481088263596421676279336393570918188418795678229115266050719743354050400596631080309130087899547154374957075576671077289133657119732547626720522374514081900846023244557331962836748726340175286983120211425592043912946052657697204326089118177988709072256995795878124786971676272310583773643874682774515262513019035502861388637811977700196548377738913878871530273573270108952198170614529617762598029631619905835852042913962861316196678221105038193529998923089580331506809446701006168800891674055758675229824187739230828749110536421906609707110898359167175984332281967098295787797323564805867022546668443374253879552872025073837747489364897015371457803768823411803133398042319925872854049567922149487351078894494196581890522737358644996436910327889467228032638849404254731451419225151982044240271930856420020678170385765480325039606152111547417266340369730687168808659658323427808929989333292057274471183816617373465764950764063724226079808150800813545351486865151680380621097738220088594306328220719102396993091821182457174411183343298675233309937934251418754598423429531187600908249663238982496397419853806769182949683749169454482793214453430540257510951112455614445352707016934682302563266797874420253927480267514600694066002713031545279442166730767289696045282209139360858623407784634447711893344052832972476367017613012679257836765751619226735000652931120514353046114439783626366278526211555096923341888569341551465072653890379530617363726604744548230454823418617122083740567552268829677538594738744079129777248694011839470241993422659520517432335804005222557196279427398646221644714243726749492127416680747062585483545616739885838792070184263018085915198028782870017665575975120027480959832853369717608001924120370605072996648545749184442821884255597299916194036883737325601524593400398895166642424482842019464177015130462328480261627783342595551566630983872880566906520814273599815263916465982870246915607907003925463165569618612792831926906813418646458768426522067872122176826368949635901775117689113088080931650460403817665383358885158476234333286345455710488767983438696021477457500178028038614091371682701875451154820087500531172854219402327997078584951805127950418029265602919146954522738781245168922766873418745251202573427091621700465482492715338855111477512362258531985491748457842531617706882594945674310668551638599860954942996436649138889354227615900414626965368489576011388824116895337582656704715798772594621705102506875854310500105706427176561406638261309412204414709699081808479837572264406850693186792487119226612908713862476628257033343375088672315449320954142797743624514698942711164806216929198013915808565480956547926196175425110101905896469697147285237177153578489130764849071150018602147367087264663030212808640377005239693776321662957639507487009461013549958685926811080348582728961833024098626218714079186742383562230069533467514408296534025074009821758350985005940798599629534343931550876444289361356634762587268742921772067133600873345710312038516048993655639177159612360299535426920578744437909585688270702869593133376983369303968553524100906486218822678431308502044852800751613142420292029905772958337136144451640763252110783622108334754611749457795590019363492270434410359648882421470688389263428210495087317698615934603071057406466973106281216191371063423661511861317979271209887637182281114429843644130637354768660346687674023632799941541391426920231003657718008658522217702260680721137392035248525553700966406092067891729739712064851715324476175062800314120801482239100477810673403472835312226244954535163419793903768633931028749276863089337622663355605233465990264725229131377306024631899505562241098721219115555924756498311324420522624564169410711140951782054166941586068405165051222790253539196767812029664905920154559202989928445373253494806976716079034621336439279828960368608127966902460128663813596977561236341301498224067162683376741457914356595011511520185341149064739385484644602483525116133508925376240120746165294250818359799483276112370489246640542913794674981501501446899847904878849451114223895649275586621850753013227814529296076231047153358270527856994573060071788462834645290553775335577066981347207896254364882451153668391451467338523351174365578404164490766158057601497195524646706016940297476703834292905508007954039044136992746729407387905217306529443462062772584702040348760147767386279802013469588942491143868170855855597916595348168045726976621009385391536671398162670704222917022503943417305624242733984985036031185656624498049220108471657564705778338205532016849935807907044952947706369562567336814647072701023875079779279150691623528408211330053438939235956973551382508860120053742570277927112745147982189877348585704508206401637738779377741785101981297030151292495252982434340924793810543049551290698615193411660899801115726199769102459667545788244002245548657448154179299100939535478015152262913703277781565554398152868813419992888357861592335358377391689869741255596371184671343990579040778643225434760830096107689753675316237399512434598517024528502788680385313515113913218495398097432652849755167715147789039496615317943597227379340565871624876102527322413395290853720021226952741858609228901085232153163908362117369527414571986435789296212227210753669743703590963371294662908862008816343777000747991034054936612534203634424731530886215718065719638780647082953510382772725180161816778578869606320580893042236377446409602355635639999690965869616968968364206884428231714565619583535101656293575871598636654629256786383560712077029858081023145358410966816225453378100720158573159600751106621238475827207340905061708451848349342217144831001643963816096089377925535266438227255764714483763800937303063569516523716049575228276083473429808549831687884117348176154279537453879069196590629804287912108110120982924363757075739324439302996467730296709914489259556305682099076883128715295880549552035253353839712720963723974452812464866039377424021947242427237849314357359752560168048986456412943265742085134206454188872888539202777564209009559212192777753397021838508741087238394115608130683490902112837304054887616374472806535261148109443275336544121146341619279014832663625573033228043911766884818533604040924322466503499410421063762532887656487670210604005539306075963292496959593433934746262172286159997872418190267089518989293644910921869361764237095179125867483660534129956721345383211326558691494455318433525941015360063503029372291337268253502271967189064920871381491927867250116816060524248572450268342241436751416486071439633381174462407526096075378157065268032094444508228125495202285920727807850518461183439709130936468146844261581174889100871825805255137190344413594093539087251854999120247253357713357612995768054279493243472589771845422791609553958303219375051570536611544806765210955764821863492428217230912123535885266535814164071062468922062116981089920650505316318448533144645984507371653719228570019099845023750466371987944589475025001441146134278456467009985784752144979592465105180523134727866763789423216795207284123581350999736520809097865744170043196708395134226521776361839331445757875293906390503036109337557787202259432184895735951897976431622837490230562164788678650383152190653543645475147385898530278339333874566155495811134814979136365465803306383510605379226420353192409055400332447914236293425295796005925539049301550684494250790950758790161514799121577626413466565521609474605917459476024269691651510115978501615230819627334918742113591105558451074181648703071134181947960198632277374610667618098313241124181016085068803222541105782698605767007915679675032874819397579602622204192128694339200170750731596449621585035197250463235126215372282763737659934086322082148582644066267079567610705978503520359292346211534100832865427607363357368592537625861141278735778585128703014702697393826259176017849114223426333854107824730017014310314426976607877280223836121394410173514898938817912502920995867929758213436998976082297406212006487545399106927511689088285586569445593630116153392470569812556282615950063779553218213498680287872897748518741478258906776463342440504233480129190313997670246367699082496598648633673571562422030676113086074574062411348368611058964652959033824073229343287539894592235618632351613205625699791028351501469050653877249543945590776719900737782055188730985131669895024303072304000482126858558710751164067862456681714513710049916552322696637902886405113601438393293697785629923026327658027892022616395988226718181650355508128638111078836108656986710453874610549816649735006301505830635566252358070345613581194737717106125030228126874361577095584849753172162606847257997016895950988168814354530247668632444160538940827952270783243883431976362772256976782971637114475804704351798814010518787446203075295600418046649943590275233348799167158206506503295059848627790118467894589568843034631099088868335143893282659123963572139096144714132817423204220370756859792976364735940647868665079276724187779886581200316737795357596774587011185320817970400140993600660236156464847858825612048828318788303565359164194440052222417199788519778953341575077566750153584804742319695489614125891926926446397916823677216834962677693877073676429551796714388887246223933204267703639549288758510660909793748228726167874803605929077807207001849974311322213235129586021676437721130654387330783269238159325077848853510465029174261773836945425134018331633342765313171158989035573937117081853360773562807102492512331587610311401866027537217904184969030614398812752000334026297829227782862274457948885775762200590389471964819314251214123331902959572810530197691819161688424259526794603591094308907028206089208894006096074928136465619544932983373311694260245154088501765974513174782652761620705344065940964251262828946349731485004704269284327454255117147191214116246738361963368459389091103811514971263109490252047775513331602248328507789971189664591301529808031296513571269245729459041613262419276612808390799230408190569787133402186629807481361849042716603158055920002704334248624244070696899911855310774408765787489270321755838479944304371677050392755723855096621113652436724859209365160567233502625878499057750773518765365285241975600073762277642423494469833039626012491867004639720583534945049779754303071869785665422032909986380818587183409878386839195422874240208225806783666311610667898515480065303751363259478234734805849994829937456266514266335537456652878735681695882633144268392871680969982296859767684264795203414739636426593157055059482754393522707503947212422898853942282926523626539726402981564794257298379533943708385565956320222491497103395168653137863128121383243243831806601213942885022300152903557949498184440396829459004613498413777593558637213463829218998433325390724286898070199561305947117712808653575334433108779855570644535092167474626360139085204028106123601913291309811352037112797648938167237119216581534745995804334582650180482863691846434886344173299282239588386537937201088027396891667624714076931840990245725884309337898242326414820977811269597258010926780522862909196869304208958551283744346364912176996424843776436857765760115714464658809714444305348787383076668550719867125550719625231685873502255610672829227688099109901063995213593694365886601633924424662225749350258086073604756332749762226506096619496955674063552859317251032878471224584895098929402875905901737150987971616708767222191825793219078489781180567580911410910958508604527065306497159652182148804946943363579288777841999986591930084647526501139027117284419909895362763506984922412590394531606892238525318019900717472396763633387153132980152822892059638188994513787155690371153048295688476551623941663514691765632296302918392186330218179009897003121154303172836641943772749945140358337778277645198213150248245340747041263050121965360918191427456849080434698433006421013380839896415822042304709917747507507509545705134110399593556695632316127306343780740603364690358726178452497983696536790656767028192552986314699584149897001121750515287134710754889262143508772597566589050780391650562406759939707172664323807419312017981863094970445821703918483258732942239032910610090135592727645850100747329879097771228222836725467298693573194796872990683592632064906832479177605533045837501481698219074228278902323482314468088307864015270839020750533595403269009586883356299352126784589260798344425420487035844557530413788097686761445886898667938366406519111564375234792650771306215509416780861296393161522418381932250294800077174318541809147482588705365926425837835961717188818186234581222724275349745451480632648900721982095405792932891949859550990039813988833742662860674630953894173116890411720600569763054057876035652235461308241562185014797155942538044872317288147239590486029723756343307333588987564918763852834571151751069414200360911926134805346227995364467548085762744573477839678896221854400935099415931284277412708026368830064902552963601021562488230874533554980536629728344698740719625275480554024134869440022997919324997326050044843881734929196779200679873738559350476254320675129439604744774907096466909815743797895429177550076798489745441102546480797873735295352396478951121805724946195295423561438333428149471431786032435836811575801856161079741355347008657905843909761699703592080348620599277872404116959758377797237536105984415633072268422903246071692678938818833010045292901352315734011389705244109072843117087925617998725855666585968628814561185664532849349867993967958812300336152173260017010750563223026723234720688212656678613672934409164817922651497834656683632780507986557577675128546474525955488851376987813689234978988197440441474764819203013548820602102979391666825082749672696200487372543432258531250801942531873533880320382046064450450777191111380614910737384360891518309644218431690311431484342022290822502797661362301080263097704405963005420499733360195615822491686106082786092049146620092655640876935518893603283878145505871060896417274715462207900102352756802091359392881635989776222698054283202171418643586186390350321068062713869868288795814752416868698645654468778562293194989428051556300502860894252938746733699338599876075279085177459815347662272670109181458345678805337267329803949563855307563661379138925174390019245267964250849353442745113201267273558474100433849622298052307479570327941927851620289023084938945303209223681317255054285533830116876213391289416950945040724529526795296417214514818280621176943782760443614800481788478362646789173194579315529966244814858459822599541025578509580806035729652788412225400468491927086304658351798622600353652569040118245936926503414851470319252858252645457710538573408530646415495653547688269530937559685844882211193611541720497202397929407598966784487704283974970793656969944078688066856235352952340731757948875351756835085071881868915008959575656566863993509038568636524677281168890789327090599926277380912849929571864363134054546671527045356454656037677126824428479290373918697766495247420639921968309238514226000552885677404854195138973325132664060668227200633358380930046398180404271621598215875147493491422978803359710918433577568896465509502577587290082699207571799739007264086511780077983126383617904526609232760911590746030765956522922374498191499446517240521867139569717015600034257235704051495241828732608752788991469292650865165444599496606402992596344485163719918072812174425362442205630406921396279292432353102013590640318200306198751642895775955333637975813905351593514471110585966321287764913393950254814830211769821342006301712072114941802162059142911931983198820662812750733195992099816747315351978218013515887766539187468764211950178658386024112133892441996411151803794261843674358172794579041609118993160315988458073847067392592338118119896478374212840180198246051665513562796676051292057719643116090999475246072877183432408403639885988631805001694362086583972259047439506376742224584904711369944289314188982991309241520363791426313967090186446117876601507761188914723500158498922306182888754157333796809744271698846894212792838698321781830449132759164012582172448602694057162612333657087308874527632383846035801983075301584012594241771396732565478794502283221748679630604988193509156970489002754060085956832226748982932398731682907039090581340450371386841608776922635137115627260850737501354565102364740365081441871781830778812145778895441863705942294946402202214389140294218451098659672659787287741469812099732472688706283048106863440169377721799565440691771726227727482804638993094609936903479630599021353298961466456441915952767961351022832885564337486751478023785499635337490593169931227293916566137626347702252657733999733246358507889318086267137628689115803793247239074255097737186344707318678414265664332763056486241205703398305096276268203605268354307765578158845837813637675860912624856251364150151323404349280943943599788379566888409068926901336922839237931490174369897166914821597456389119146511938912443365547004042816287568190658760832938997657755374125340902902088363295871108605771356555154226727280450346159066792403304213314694616057410954517099136606987130382702091803569660965983685916712109416958702496346739460250418559655059079640583924126283015603991223423371745826547999908459637882536672037668965915072682279830457125124374560787312037843587145793832481610335999545045412638982671186741330202908514014121372767505412742390004137224600779945107205648971263004586919389979213714311827105179973668407488123777667663706988332147090152726289453659153289105529929762689579570026004165160689669000444919009796088296773393281882041213418950361524359352045239399205914737345839780755781981438993380372438382859859713618180787409034077412247250106711321482527646115459104044255721494567299189431359364953379477405058908887834043323627047421010363629719622173707270556812522390318157820711854286649248561507053077595828613669736072982723785276503057135817177043923990531713968100726664888077958112224683326148066801408590881240154975503282169452268280913602876469862306173626911407332229990958197245595618055790899958084331168969950266860555625471524514056040324434106653000576887796574267532836645377175494464233424097411204275855273889343652888054040629432656204178933626143894044979177095250451207242885081179384669350293673030231375421218605730777188577723291338165362575310974760653285043804650029519058679614830240491013032577572604592376133757939529170005958614028969400741872307618728276062162383396141350658992622901900219816825785134600393272823566009204442752860406961403798897840743568241589337026273332024388079591132623304600405479206191318401796616143251695887663631149414857103240084184319160775358097799301961513042640779900536615016862122494134794156094275265879055987281312710389277203524163760744401343174899778430616922808874768791090967179884780847329509050386619221007413101089013793054269044253440899058454438226935009572562210566933137646244691493524557869696012727735504531652745350489838486413447580976580669733886746603497679404981386763196085977425386636953313039651894128312887308848676255647815476991896564965786728248555990172706898735255548559374484571607984371660909659766254409001195089379854254216885596644269404616624907841525693834863423488848448436525313195766845751787882807909877347627650361714354956736674136688010591906030222299892166397377130410769307050518950452064694620265895160953658044149069437258803473652604499368280636364874213523490492167707557240711544845380214812829503086748164702227310463831958559641927342701522969964852271105755407481363241643144634088569334662323476805388717252528186248784071810746387127097405977942319696540543728622230214973348663443527890673585440445088405625259064590230163704746985643653610062880985101167016404852631620755344268452648925906066511308428071186737938803951947086666740050702257043537785186508968898392196405021089761991747263186168308150348811947672543984786955729351336923991655316692688900230883697700576879252540602752494912175802049467953390392893984632126821501761387541459995712188949413566503922864096979487009271653167810681285494182723388883154018278422961907317110183910671374796930359999524851510423268445845914462988907152886416504306045915335085489898694827199180301010497140919147166695047423419548362212860256651112320785346915235486100021538030021876909899575172936414764950530539166685412358761284852526418554801616434476981157228616530926832052119689258017640125365557142980000310010709779206501787840166827319834100396299208187989495005642891082675339279401623980283086961150145359189105213192579909017820806356164951086400759398429955953044600025145407117884817225415620365972490069159459252906856438032434998482429175482078977114134003686968443846131027010006001574531274013756892839047132103930860919190763068441006601170628239627943847671849634477641372867046420022704673716100560224676432616773928830001096423437545463522524660920100989781547649408270733976261829525447759456236639682919818270255101024654889850214075294642699085956471933558247508197372356448863820869934911423434852172286377404000642562526891721105938142257837173982864582280559110416195526883646942556458804449200671398292494405293390446463898723418173589224646157788433801609589467212311845113850274848690665831538215735937274511043914447691713499039761956847129752812332361858111838995428914937340729069223432611283077752783438817320323918404518736123236397539097059678680918830071499472237069841317172813177532803108476192818965082004833831523671923014940839132428309330453109495407135107826916633817892443635379994195071096137172951483248461068447109974553791641763118588967336188048603004485959619703394962527905489188104415024769977837940297729581241927983937637293767274470418868368632464676165663217860332402873167240704644872363103997843695501281443933661691672797323929190524053571871546160448394266110389311984795277224629727750715228438413862404043484407965454425977304754628147215593775849217123413654805864466829283874743991165894854772053298712574593671645075189753273138335576831819043484469113843484529746399767490913108346312362509454828746335895468242087027342450748967216547519245460685146662635298584686999812511562929443271032856763317483199969220542283425545498701315712135561648853625783137615958059687257213114671436814349537000182891182235744360647282122795682020310266775219537037686199942909478109897735697786829207544977962016914020376450561156688626621999869646822536059711711313067979717130895922147061551899769178747406565479340818426941401421376481161497409953107050406163129911587372291266775280959948025819486791453043179008733497507324870265941402303063556228731474341308303452849196449647322689791391411873351942428292453465205357263532338320252821803549784520343350413662058336605235064473932173345949514522712680226709966021536313193896585285775308789858316758877238210803995541291400535188831216615631910330150762344210520647550055499129370422886743401731500734696937772681424777890184933227888114784605731478031944723474029225119241312507175102961469349150777978819806228649487078590948306793655905604229374149319304316327548181751394304749082329876546503128013008382733267303900378597939532582117981281662720631992016795809173186102027250667785263442583350532285307835455932531107072006416850302128194725255833608355030391779140572135895432392634466395215738616561159747293366770206312260427197153917453991969464785099752461418047858044627797171119667144100856123282347945439849053476514125689842384651077474157691194503020682304308725279092024826464703267494737859121351036230082050310641862262052512963393676021820640054231257279507336156411582490823864584766461630599973080861645121152015753284379128294763691635206981818617171813665787443879879887941794033140417216431445109397037451326050549682861426984586229748821519684999798470283520802212769294344796215405821721945918745819401016644968151644026434496068350683446179505952456144228727380361984449535558980378796872926439242417370904111397968175459687125692182526447465570131158936624940308504369791902539363831598289837164955731357267538212495159049149933007188836501749174774579701685404228632590048498867751718924278738741143673765822936536561980522254717062911160787682770607079719803366160105061937093136834001144990637426086983994556951140525136389003119130745339107764723849962998427597261002200967467767342135030957617001908246904899088939615091164087153454129786621899397669057405490784399645114137557999930024578737446983224031782883599840462287004432520736743147753585211016489684624855135158224587034694428666177315216464617328897915692046371183664687092839020308783611837745375932852379491012382550815145570718919314718324947054358034781447471195935185606913303116828345434433965996341366655350199119508138062527005556701598310286470873323247079650629926252867385262052597740477870069915003914304643404696789520976662659152738495980602535936545631500768625430983937564286041902020656033661163755721786911883202169196152920871904306889253349346505197045241595687181507070539340198160079193293328633017020664795209457113636151883241711834807246216464641065147907832262816392776505939166537999265310461412872544575378772295963346491670274299310803395106702101905548957031503092369898381855272889147387411739566719254522852846717036556461416624911225335601375112647542108896004121262407718757879618807716737490054778613764700292905683518837568197100986606081692142932417312973386589094647395262002219304927496151696860998325257142051021737537586128064541096330777419487715118157123863843102671432679015080783194333811545789114603282671719918162734280128991282997503656235394216415094601993338839769227810493566527556463563344760526331600741180317004343254562573198732103323534845157399353906876147543169403701375940842605249936628531173136836245892586127514692177557410127504288475505250800913350121211458016101139386531011924815791566586529760555175765831891080269706331671881397361820435721520956794977017593538475192995839041567158544948849562587111104366309885113106336669465558279879069659411597570823120861362966583867850644544525495063816551926002200887657618675998835449794867335985843777149721589906015649157993378235422242037495286072561453148261327324109398171078909395198622773197168568940752992295102615458225147912189673718896084068831297659015992842861298956029046719880840730637877618327702331448960064427203504277216846218311423363816302615480028848649642659979680117527694553665615889598232645794499504249820233435387022130820705763953074855443238236380490952201136081944546054663736729646369930636886882321473353918279816467257513226431327646773406863739611164869857888875433631979004307870004733210956818203585254431637957683180511807668706935866836354748420344252489595258989226352131059113625776662682071290762647297419721239902205474143727110234914554986261264715528293017774657967060683209869697232038664198136839916281351463034184774574716482670957880941181120134863635517940731586128268937971440381955777771419695616859855849899319799048267019171931004415498349116884633621544561744680224096374699226718538516273456998568062617260705677206733287609538540719354301178973872420133063300407094761848586119289139292691813054864711440063277785288763296519734254039921486606177865610710841650510064156112857718341607911390479990003078116161336158884434505704367421127727978065634538963557753895832167391131247913392942421885247816046012312969261285021455409993265880548583304901002349570228839126603961652518101017082506059451652865003420949613876302187303669541433957735030755186110671231908669329870376860679244312434134737263501356662604031607506379178505974756476766184294527962183190079406193960046150249194138800705113316004658334652952421901626867824103041940800205967964279208348229679364478507801895869254828561748692513090195539294133062480716365595690889832466483592752590556681477526328324943293874963994414910775039487904275594922591267970203598490326041271692385459034126635427911097812255901363257433353551254730702061560484137340808423689024579403820801128270429096641191112896812057675942091300005301791140028737650972942180966136641121120586086833016783557461046435116397739176430755601297003552955007684398893298265311798138312114488498290294031451954408439854397388452077280854581072102393552012635409119419457499305850071388530061541224653303499356240002923643195582268202864853551989241963255731342878960125323978725897138163789695103663377245508325301522353476537402100602027615731390506364343161717076074502579518274779666139068389465045270545124720054786006206311377550855581638586771115344755307670389827728437606999339614198340416787463721932204919912138104878698625004703047828791716073951187444605105505138739019510234390493000717478154395915520147266098135315154715440163110071281444429865363445565052026833997102921992880427701327023919970564053270838807452595246264966550414572342464941978564770804923415088781983995396084963203163321326167149861225054238634384788057526416677979612181092886659355784154718512372972890705222573704177904067448832102439562061552606983708789011374130076382045617683573824199444869419593212808834049027914983502818944603127258840734583725801066683366345262350173802884037393751866883161964029239088559341869043979043483770087559204671384096803654156051930500156410810764921698686086648930318522360672292689080082957032403902959378321475998408736963739233934108996638007966515773859099088491368790787970584670772099202725565899932243570096343409705105612173422454320200979013279130841633250731614353524593187479864591252732134229641508828081643242282058631390410050848178091859447318989639177680705728662961808410437578598442562402203152139609323229971698871519069172780102434209594011908040321764993176298871983712109366767611900059930788623710013935252199907535764999969514012112180159593807137895131992625925507140651893048874839902472168186365277681248457589639693516660777918335855155306193165945885015690348916731558855808353974535933215616434662188135534296162335027532672378671948026356442371351071219682996155871426847410238111501214994795179290996874857454625390999934461064911372122485357519548718168364421802231641534268323732505555970967504279453020745338241997764740183645511870225725196269254280341637867840955855430554755979046687987601252518409216216947070881147287281874977692680916096284342589149670030435598154339804391257410526068873839458477600129054077408360775136928288747696490993714510644791470905175599107757348888307174875738025641228931757773192574374204503966281323064562327541652973613950438947098800531394223134789261694263688197454507481511310004131883339730161592115666811366176060329395839309105732507616387392169478013231321075066788858858341320662200129134209322139550385556413947434171982897307397259288475867489718776982164916647929292601417487246728280917328036835675442483074037306599946092005973345362729964630787757684131885495393852707736088613593706122780342703675642668653952653572597614392966295724138010122375327818795727227126509023556141933492513892625984176641150131221234641537368595963798272939704921742419089608217350933824815931505813281487539054685452253235333853560428166495829979048785328910316855464695045145243728215119330442560014095761663018070347336377929661971778115744916386000063053471389705303647461274404170581659423188603009980974344127883625343066832316223673205627953567325354083995790699611252190586562859928740354177251235990562361292544014655155987661247505463413869040742517995743002976366514379858750089737646916604537779478394969646731322445474028484958374433422911362468022789462488011987411677030059257184271887039417701135082115641971808857649112536116611507609841535942789409292353107430041285736335471713260846341926303710247336712322140696110803714876106395215292376958530524920763676480002211588388748173665120514603516580441223826538526224683536332690497208386913469288170370177505758416144935158436508430694247344814509237653737333698503069667859408458545790730207064452340829679297660184209372111431689544018735128021457987768735138015729519904623326201081773562902347565895127166130097103833565696870127439269399173112589107610982212937011533341842743012607610673079418206527536866601428063447059917815745019158136753651969533449090105702861877438252849914636751829052352218324274847113363367658792518677036214990993240228978820648993511759554052627592005231793973255702093297414248725067347646378349489407192787728690493556535482141374573457688581230323550032346940159449564361880085790726049521156091995073910312361101417729472793056519552748744154550889000117645451688650251371723124316471942659755191532517432258431080655515053033700793612524364470499121949390158490579281314707650194653960601487852834939424213532109646648185193137809741891700083807501474257626727030073106800495744542574770995390339817229973937545390715616612008981973559248870641927137668600048399018672447851707522597205193627228760831236917375102093790710997541015448799277001517407306517633847264251733031447656136891704104906335901014834612352506904358287348984811330653750240670116791647486076089620088417976845379478280674456464856071368721122495764325247813613348190902298142400273202992507224350556798899637063183747827930580502440485341705165523589312767276698388563338099222167872415754288555364938163108517876955288971519290801076603941084584672896164333289407786867375845556100664665493872765508847199014622729558374949202199228873149292325015113687316393114621572149410561982520323067132946655660917663031571155799342090070338934892108505416315981011959470949115525313374698329939357011082339446455953741742609350574647534232145903619213751026070246136233597152112673308211848581000070387573487242400029325194166570892241194189553794412002930439940910311583490923914518584793044127093324624593379909138720304374818798179647192479433407768657113533364822983846883281098149767625743120006005458172844065205388060642590247770464900737073775508314154890009843874533866086003252835744641410937168905794505083297294732271474523467695096721710729692337970414806076388826740856984952384049671028839713239522331612563550898677140907008680786841622671649838282192371317336270501328081045071533765815894172281320789099554772037425218387954787988769091988200896309912530906898039802798691663444425524303792761752946202981044199640959552834533990537205909964889821583557071604022603779432154005520765761500314780174411090309773513148331089514296371412901664504375094792331739052757169515444382426378690941805347597541075589412451232338902245191431979394877983342783205805987540901356812718597931943132011704576606307518723834911979636348488705813306534047807332609012051211605891529052145284180049012202371384228690864071163153152929798542722526994746532007099078327175927013553141017305828397587657920022128336180401906171031091402571368093304461677918465323560365612569200311238046945941249380529313354584801641819472749994018275463783176482898631405522461528628894294675459595829500158039002050167086438276454421163604483200850567651193155158456255506252457123781742071667349473722493379848948464933790369837898557308180378304618165103037779315491953781548460298075285550122212630790506918868414152581128148850298170160898443035902561701547847239481474731298495558873363688389145050266398816982671196933593452325351183816306150366632286025832861663216464059120847317005972599396228495054536935387281403012734048295166232270154768165737978083200856487469318896099896653789242273183174793554000973607300102187895014503721352093987869992644193557371638797073505925269226313206272688083699762581513829349416677838696162202463062343850323800813931636524685115510106934504449876384936378239468579227943123460185517947331820451294674628936836493560508044285074711938366114887235148008058862390156893451603390554421778206736391801995881699396271886691685459569184845684815199498434026775341329923860577071016356598633568439233814147704388308755213493610563062794978411711615072955759200802383921724908734199987034821967341145234917714545116143461415306228348302771482070220337395888865018914405816908090808656494709781198328225834790903374792297497958098000429635198998057114624095715373303769603661862075474316720657403793132173914467165736370040882632841542277454669120920953610558375169888002894250149880349532636578535100448733523857038122498721095338236460395908490619808821524947459737555650782419110578985737236840885942252470878012653976818815145379574765607769244199828735146051162862409360073532347272610224834085478833150960617015468362828076539775905526766544996964980371769136478530867928917102152116365826292125544212035118527506290907192211850437205360058793365265647384047180026056680772442597619129031207654720612830813047162942398475335184903598462236588358910599350809711998233506137181690360211324486351784892293618244282822945344090298796385498051567624768779391573178989206357089306578474230531431924631915772610928766070519903111610971826943938000301674921741402358329117902133614516255180586180961213600883873411273192747583737788642738654935010987768997473529826251735729080224577147527802788781363272553763312068458412885667424789590869657069413894655441976834643841118114383766441444896285055393940482476202017652044472258219812560900388056554486566543028651109417391511876351354617732705923182826484700821019668571077918819392319700829301699864001467302451820028849084966555700628452659551998070168512068938311646841737056846815778081371421286211898913215786611255535543340110809822200396091425892189644761774341821361046292410600870579747533472958023398277827713805744309119454150628901303966685940748218690281665169575713259774790804695126469692518759052938653799435889644366023438552345540114690837302678549725909144301628998157734851476270606158707969397767675001968963167250045292606111793758326801804009525587561752034541595453784391116651305642052327043312982659085081422609115124390576053505538331267320920013847287760246843161050899007280849369045774391349541701272095840220288529045215461667049606942099388240060323532487900734446049932031709375402609573597432279852532247050834764363148874019321482005346187436794218710088849994226001070362881132926955973312124162204059022766277165684795172189777165655126517075701820470986693088663733373258554645446169303300147316119987244655333831021202103286943332723790619212402692195916206870125935299626079597674611109992811148851173216872655077682913807882113989343066436836737180957365447126659378392641870651984976967052979718118608351217373212705276721217814969260171157414769612390040178236713288377904210328294006789481802089031130614212006097418189242673129060320577472687577914962513794058132182168096470209908575399606046859429146049457368428512154690023018331366127193603346729857743571345959529171131143957768318457191266003816032655947143783383802886633486319291867369745958080393606887964641042093552285708167792572395933659043734070948460754870074837254214586027492307763198670580500452222830007137700187760833955500428857968318630127727369416923557328960369121076136656756782654716358131091633365661698230481000597756985977025162098139029711843840522950994716353570029685569482969848108915355027560393516939234877169870229818221519186311149453884852415465263822862857579825671246801880960125441006219833474561628272103203010389463260840091569598143086620308009392176078380823600215707513391258191431180170838157391045505855688794999682603079929258941392311171842873941338813930283064064005134370197750430433848516810912435037574753268373237617828776659872954600427067909003359242231660862846464478021125279700893270283016122182744651023608778932687592670135355732875702070818427659613266747247407666713248617255249937650332132963192432539149547118313491606730210847989171372259540038467133845127903869660598169410955389780021692741236734099632650342316381383264828033032385364917761925675971002109219701010874683518599838364671542148144475344948257357303940435358945101147608373825882833046852684395853488838555145472552450060511333042437513613547775988724945217313096033882125922361721055258125297614867813456730701860080989548442465577997590227415596422221341555348130465947917050302550954038664728626968048047283423262911029798162276666136066651144913654892342438327534783284252302767943637455271078189203396282442900339809595546507280450226424015412062539937237611734936364618032086756032548575704684059355411216754556262474593818946216699349834042210224711123289863077338807012823064984881946852244870392967200899195861015108379391304926819489837865419275816792392376019138739254805784071946912116467077175097583681317995029429586316528198180247561831865149574070364309693196262620392076771661922363934495352871321937770759716202122067718927271060576488645905830588146950394658612376516960101154418734861374439425433671508335969093984863850414167053841063419887172861037822279565781539664858858597701590157472940409695531889454796748361428808771343052662320142904060330283085848031951074291272440599807028061871331857203972144243553879672727454584143145067891345862432823128887602193001707026372405273176771135546048564011198965151646025974261527895157651944679443437410218062325089200733673155801412684061619342631118138045909125674395814368633272152728946215619905139462070770011087247530122554107278736898024673000477788766191993590863021759581588537259944823799486720968596152368794140726140719970421912906380820037911927087245015054116906838545083817822375465154555787107232753035029252069305863583173271750944400286197006831099279002021174984125246473627231164612465957325260732137936171170450011372450645783898944681191186596739949864100463842632229501765542365983265690734648478705518254834719854447778741996213622394466313299918426593213353463924845955626696921748744328400841367221034928466454366246583955579955092765877412044611047678563467032081582585704178019068159207302747507519324964482405798916057066917375885097856365175254755340937747917113932546738743690857648334215926448593959283781963634762044114217010818462278187383368104505160168638430243697710734791931595149268102050636004511694048394135106020288207373310609154618614874478111986017200992034026962455616792549172196070967792675622803365377812398944235931786390187402177429808130675890484164618136526215377464316514811082032232864496745528273344165818706317850198188181206295953970956006985202505937600755320040705645132100844442765725653712723232825194581723595043508745811329237171556205518131628995810513258230115421890903150626803966435943791547454724842187794557082513093985177913074164343923410675931911711806561938152702003115225593556932220209187126469572859566640503802070355726605184967520204114618116406274313695754138164303545248637729257287763371800746187898449717522683947977129278269944462206092139635657544192293175105449341841988086477639082279806222067092712098884927447909017541557566198360389792095093845771980711435067596619812943574827344294329648653241937344348137989856708027130218586600085377663561249060300254342380225740246457599817146998296451465470533316060197867510735546732520329577818401306381827330452286658109515192036921548504412264362071248955290828735512727145661379919155995764897153022605158121695611967214536843555393687856952138172042272407280329535210890322993346900175750413583827974386217849246594622203066568509369522814412321994404820932427936309941573610498580682234045955189623806168890116590856441134632022671257401628230158061597424794987873102105214461784989242322164882580758655827956396220984332344951251030387442041563789878111990350509756740491757476214943962148949337771378437053009816120880122483442145172936341464222320924798669511165020789926762099083960619298552581834019162032299290449407802100865818800691616805543924641422187303844366024680617310350753508987077431296243657165516153366835914842413083894647891755606156656489741113244489741142098299740529581276074505436355865429664316636751596797585649937528853762934199762517750617522667772680296242903084745974611348208020521237064700645785559161931160611526258760996816646379620530939921756899222939591897137217021358052239376201165796613229734024434379690107599598357656117950673609981245680558374146124288649791508584064964344836282822932846421695159227529597015073115746320729769405739388049812432549530662854219933164951762774762354434758207271921733990426541755664996669503193269775699286752569715033591230327871888186976305372286801379016666602430146093679271698677995409869250130337323497901981522049673354483272007641063401069580855222979014335323301023989640100674692169306647090163513314300420536237855692107372881959894179747773995810789623176399873091593776891082393685239880275937073855816997179858794688671595358694410877807679744397206529902099273154895834812159790131997116166587876034292831992412919450535212363261517221663868530774381727157052936634872755776445639729997681954614886779017944861504422105186631870527239300774508579830925728336690930460856649968246917339842764713868992763381749507964166172410204534179075684614272952825520056379261585728632396763611330583166004449295627917942402589054347764861161370484422427680304301068575173809578732112971022442040669883385468203536671335417165347608404972063466748727835747002448883048724802481697714300214795943788917228621292805618790819840574081746343221612465391647184831712388645471228244170121086228810566176839057030913760091420195158440909393091563936358020873119538269791736296018013077128802841402229074994813112760714410453530849761449285133392009844526946803351392081274048919158988060049324029848795215756076372864772009552059169135635852535093705042097614043471276406810096298303672663216253726774980015167536204298501928040009220252169712766312842687275618092369990251355389622908043775391538475845433640360756369395630894134859498675761677676486643904097447394814950366537691671530295608189946759737280953008881742383327504217037910922492589860216877352269230587123837965028086064435184478879697427004295220063030359394423660925108902929357526626532872167083039809189147931315537734624185689400976968411940201331609675506386537707779117728647295929944965723415752581001804798815143222525542616868883851867917703073516970067231275569214953671285416198485764453822591219256941923490949703093983520530630920155840167575768081986019866657521904737600270624758041955675864560367810142674923133518458751196790111491295746490382462174321393663430833309853737803173046043726570946242183970158471535756792851856240878970923473453847175837055807861591198762125129980608737637713073493712114056589718697731552020995611009099403841569136316823812761728718881067373582198126803098672171748250174641646994129917108964338707444838002261183401272203738201095793773969296953477284567914255589908077656016996596505608223206875414445246520237648243229205108799944318482287004117413323113687170314284407853936267171361623765246942081582721149771298364681145334165353668341405587586417930530376597824601458952966254167994250120735878670834234831751304689067707188042792588306272470163923613478830443861529066305958928196815411917220629172395694667279742495985162251891304585840662083641949314921453178862903847304458630342698994065844830251491851826332826588027317284532598491939158151173999275944008363505032242422129043384884246807709616127557195094777239668989661220104888138999940203235149867686476570502932441162021518791799421091398264074779087636974432655020882043463094765591990951027180492899471905791572037176783252437717440509669257037004000591638149991314725472968885904902832099073633134057263224851771699104676668888749915783139192092516905163276114253036933491392023897352454215219282131764488381377035896477675780713671660530638789021990858855436844059444952469510015134049360221023494316907938289250541556490673146186182598943710159545173076674792248911170417001941888200402772762356244378952147827409365149415383406017874653238061272607543511245418661078666774396309695728227129899395206726448113071100393435166608810921589335327904869404852573785146518380030095756946227240463609660714451872339088504221466965669370126602238590163059285385762052777812885598430097589277379285039539056779285617841271471797761283230928627275480851978458142686577449577815314704748547312147076215426503881050546592787891664948073456267750640566550572578490156266602935221861358782446919945022409268029342935818660357650047495196196855813710511908227172906301520090068515062416401708169758671960756007584878374931995333442982799085225634008323739122043407714981722400143460949485793688243815435738498750188778212591521552855537278330450028390547587938160562019840386341460076464689562075358482479597272956819663897456758375304108955460627198069934035635770104759955722272183319060888467603077751127982742522027235811287846809206696650171562764739480441638039009975736119052594239568816899432322162436003725551467767836078668732040117314658803390692828581248873131483325281689666449424780622703044090886685599868207575218390960369934811392095084632489744155067638147655231252294761724497323169677943456394976060046308894562808343501823947158680984077362569711909335880579530610381639500446693058373357190685558413581342000339941297313669956646977510034076190114924455590713407922606633046333304689224736677976343025818356665623959568473309924136710644683562021739031726253373448427958479027879555628910106996315391197939416035156969358351594218304638110011700050319978064155110878466285161027762242027144291028220950526289733949030599234823938172970627889141179662715763035173930664472978311372391467283844231023272873484364919957125953297712398691986276317841236559352559963427239601497595982354778465773933548577860986643184673768899921036465353760849320321904027604783800204600901664943295470113254826007139441312125858194613787010950864155100264215803864016423850297657102842759949207560538819124118902978457164552201033510846858386050774094060062848166543807232463029318216695789900908743923675256246536760127756023815336985473537589425315195400849147278474438256572346316676360331012873355900734273442422269776693420247076576654172675555749504297526284382278669198174390124380561484559661252264438660539457345598625467926192733955628139549880353616480238258356204465244051788294106633814611747107978096705228888911778337045602275095544469425396284150550481539827243540288022288878423088849304029114607870724860578198345546994890105192240589654938054385568402861639212914333944616847160382098368371376967884958376732308791358286169903845411088823014236914267094616836715552526873597506443289631264039115512409234224074812912949994661192752150646616678872370821662462667691198426992389326111065269811305053565286921338094690654050387422244326208250231412251297127687878893198539228956538339789803837469379587235518886980601773987419170913350636392588568432678465007543822802310671819584287837564275905907543171618889986887530455567489267685821281390871670701991164828954392127044701823327163333179264154730280429101629425511075398501042771414222107821437698530550388853538449505548384283093423647182183444206189729584965437443582205781568022548706149643110110077262329971510664292664674173549132021323552253222208155062505972072699585279236986317028517356893760025320060550137200158629283148242018790892551381894353023665604303627903187286141983636946165457023374090475998371106631827974136557509439789210965949162770429534385766273731664591713402102235051513035539855352026476138484367206616187370704155439625671027620484795964743840561986373869393892928864486997583156084999464676736249179989560190609105137887468076229060036614491517586178793442323052777239036882942751249560398538141491536227386792032708699233780142487669920444835786721274182469557140342703153151210305598202780960750067924672865284642525437705703578019272932285774054855562608331221279601972609942421669923456809375186136871901287362693563130407319998506941246755340991299492266560348528727503803260099195248638352217479300407949066862719528245840343139535341703488581164344782336157109300160391030319100291467434190539492708472123038058747595871718827429210051493078874644931817221329239018474144804388949125371607208422955003244184597011773661626765720708488962396971270063493527262715781407559040051010545277609406239166337775057257128748686961885401220820372080122718169100609235710396800744243767250746360987273643029316838880452699842255911699468860547919710255147824412701241566033843654587938661336177610483425089450458613524012949943339968139340689417079353522524511790411244095681342140552990515083806765498631468574284771467725471875805042578920093686539484200490662509595625124216928824350428588236814864055209811344390051176938775292345987623098690468011552270006610858574404194522928542796690050415445789500031500926749705605255981053795301311612833668776259696899806359943494453657454598729778409097001456912836834853256629246232350093406372550944091677343640641980189585806237440892471639270358560377960802855070708571051976511145618850085474048238235224315310881132544456858664376946371393228213822262185474998466434274370769130184662351981851649485080815736243316935788527328859226797012396350182578003819829094262032160501855181841063766234712430466065316090745244901975698664813237633117936354802331852340591697442194726910940044420179610931122690503499624726822356871232922420134159121379765956749131249890110164619596940223069774604346961972780163665627286935866829043452648554500044114137731694977914177304383366163793795047238804761004893299115103484379962145356428301395716032039657687670735481445495133079486238719303162142746364023660768291543092245831456559707459128072392546302698363471240131802833165596040548608215834946067797267072756179634934197590669999290091407402317312369879430461932699030452912713020674598330155566339822332613581764502645938598726256535229955026752365306982503347838120753399671759786461804829656127874535760689139183857323026294028521033425965036851996388564810332466938381638977048545899807326095158152431303432326768977882484448230662378844192230905963779654165078426555292602555548968298026932571653092986724191850747157964873375951601960096734774247460491316967256000317716774252798923717784801419365156873777474087821723342708967124589598972439238385030278445045944912078288480830320654096236560045227260638948858782519142504625213077242562654413269453406837142357496510897860552583736697408473639497826316199027832366674854415731234258951074730914171496730381618563571588950265565435021188582916774552859058775317586949675491518544159154980602862636421367115915317409760984103076666323755804930284485974521636712336853383025192549309280281865693930187995571623659832790130535868189074318051303456293816605119206889291639324379043285013396857076725627819637794569123353362290839542681148179301265623208621877868017262384693335914251283233084562666161243430666260912934704632497190372883354746486041699049592292241139481542310288969622295591924032634375222216622344388394349742508520946612923170596720344408939229694969611192632174641907121143574911662523396889829962783754324208080732300946193658155187185390550250966844713336153272743631764186498925756295452806772579728643264507600211324848770078964980512442642464478226268293576717589218287690703143415278331475478157447095697952275284583948356067257365792488523162990619644834123026840289420666383583734814372944853945643963674988386882040739446179226222801715234517612547976703630835887575166198100301458141292703531572129285234171132109187868103068775144909786360137052691882776413082339802910456822783955928502751663398315356085539684343528757032388407668545602954286991554673495118344782094483499333634788785832681434759922866217116299040292063900261264169926825323172471646235700440498815428371950167106014920495031820268707598289666375595303326852103251207264341598049561892393392605672972340583144140680546030616375041714310366646952380812392975883121445244466115713042395937401118945031716237006521631068813151718070258371449541814442521818016821348783633366277926955359141935491731372802210016500775818811685323308713258846996695967392172585792663406591281227807642352768937896426317627010323369508800804262856093328190134193218028779036818896490662465247614619903446603259634309346583482671453380219210848899283568376610911172544788625747017498521623698233967368957298580211029074898728855974103547836228432049913128452616597342983310445323325556880096523419660350145057071242695102863627243429525118267952489303407497562659802290992643142849715893224559605745995316899453081721180915148365739111965486660098704087006952816831634877430727617273355456066325303147257910707546574973951796960774114412216308634678479098366962209039485817054345563318958568274110514641627032634637521441679700662835578113210280713014027305847420006490985177376008247215963727280138563592459839532450485329173790627658262931762927012298176412129546694124567759803430097267789221596567545105289580028422481302453719984752385759717525724320227990312988008495628668462675745581559715710916262627081803490616903674531761383479036640324937583013670555921585934605614445136202249905639638300697494266066290084135277456971905441219280897443310748366591980628619798031538834942929034619998631884525443846126072506581678648138280827489256994759158133955706843705134410949679672928574872061595638530852912268102430414205459901782421091197038665372282513962654132515216380303676007980381228353611274902755553188299615243009020336165049216750506881219422812399680233857662004651621022557875825516042438804371775248448396819941613070451900315483324955017795916142158153060406467883004630766340356407072311605987692658594110093980418423465165380985054151668883779517837767053669213378651131057803482857181907381690319326393074350476291329360593084183977839892369627277553647100510225654424357554506958058320496234856188705727458970091572140866427722668470682426305621494337161288559686682899320605210335669051238081771263893914769493661281712144434290304707203148084299484026917179178127989002043873534038962050455399908754512437401326650371841325908616925167780875393668279907642896250623725630388117244300574944942833842494994426532283075129738387317775886460460434467097834164775090434489850617221079905869450280001356213224075576854428462198413355927747176344302204680398783515472132427072039962782968875698517951703781790423251366943088524213624590895518939855027595922992076444990984641446774431603978559988053268296344663460556891643002565890178369041764912281649920401515749994190249453167808272955224326458710490324694605975789435081354217121577548610617566691662457503435434811224068440803614543133728946801116863907200268604317872769024365973858967542066460274027434473043814196785166233912078690218491333033334042896747170955952602821953692003862469651202237385557965638119294697758263570828862907432381701047337969402735939941060995184083040853699734735420175337890452888654841983381792395098371639645982588364619026684024895675743907085404709463973514619426221238344135278495479814573580198290126161302078717998972701202765692840221448965378389949949200136267667005767453782850855281064405626852450990887203211162367309399523336092442076474524000647764461506015029091510780119515799462918222861031813403670919076646788151552327787864279537924854408514258609785397988443533476727703715954226482711912128402505914564744046160661953665218348579864345670802285842684813243113220181068803322942511398245323743138231414130336973400182636872099012821485877629538413205456776024211155665618450205770422341790325303916714480155243139766118706159460824281719274082853276034819452913695264079841212005990858548950781612888173592412181678005105318054892879662347252732599535769654522346022659653303245736236361501946263562201266320914854300224872293466058349480936089095884304733203097609236292737085662950309324262620480071841688307140900834184979578273132592437672667606506437829280882628930339667230542755487831888421890358234410567823167655106881189361675443527491871243541426295752090322946242774128936715080778940608741990301724796146350427235881325335121853590390909157184270475070291496550002113678900806983380755702169196587185130127674360913055257362522368542184094560246215411854717992649187782081402623443037044827191146962396908174013190457379143113391919235798119509670091847646848457089866845312264660334480075128902435510128050156932734184590225115342679776415335033335222931075434580653715239311809761700065062844646733715819856358436918756171737139474663126769376226916530005200874872488627487814913711320200314041253082302216103075215085509331533602627827121537572129998653452212744235367677131355505425328716653782885097547788122520146116377526911394483784264695408232368497792858498117101394023510004967941809864471771510443618141890977439250885703802650449030735513821529335699543616464973813851269526751828289111518472640356513800589047114380352224431684801424095301404848956078087189123617074050577653053410914741973783852941756605130354277531172447435801406435007460894511249902627608733640806212704689296520670825081488436912451607822130383631607554655568081506554048293535942413061697447588425198385656260659301026633891817078833429730025267578714467830983586034574677523959271866038247257779020050299186488873238264375807783430571486555858265761446665533474082025279186689943820425822433801771871773107199997849054381212429764169641593076309281148101947853866822153730410485765603712768206692741367925522945640768870736485641422774842085343936649810939570724271672117742770073210673246841749745089193155314894189150076596265126143254118080121518433337081234763041519293319068457721009855637295103845735701279817306156533505762084441625626044651076661700805386560427710888995881137763743246038560773456343962458850326131980559142443763838271635870999005388007494512050420294295807524075793711075638151296867480997581376215132714395500860846309225652639739707152548534581211588496681493191583524164278532123083268207704054443909257290621757170817025081869277317294024056611117850418148339272457607046079881086747200796693489188370270227938491408689128141766980235623617846819727333474591130581457316291323632961752249411219782828088511866607726928331103644473061728496936384056899196260004968923744605258067745187946085382074496487836652228620269212008794899112064155624199390248868146261157849664478301817006142168090661157035844610694854229701632779645514561657385252715203321410337009350322366389086928477901364072079340078987171696169255469817179918537200232786874154445403029668536818766001748862326254499266848582129212997986921458403151234152343253733560884620434254481422062239947126410227825208343196411219831211568650713149547955726927507382847250230128582126885279132806945432831927303594364474078720574922113015929244137951104198047255221705144469353163205713250766659429739292745776423505338606179566343300589200365167627969741748073987600113652771966317691017347804868983594338817646772975728176899312415421384698491686166932355547410660302643454973913392023856004030733386531789164141994975404081723650103743470022823512748473407141928949662632313401324969139386351355465012395100763598160979991538423195534197743095248810542732398554030429581019298718579450155863185333221904237460939569416747921055759434728989296973332121975830072136071129996063515565645768323658620993183583630142958021790421363979661762018670438031109968407845023113495756301172978606207108152819764920167677735929399652326985254919952441827429040129100611664187583903858567226277160364332462602911946837783001046548300048838885614303525211166766708698622261918024644187084317748072832997935060470722496555484900254918791015463812107596389016490042500297619588378474346248616757307394348008480303687461778990546528960190465625612505602441273677252460903635725101856449909979387921012495414171866643414794046178007522999933384790926508203568751791284326746844618549427659955965819244116472760564692335307036995564769049594735582611006644291274504966725401033357616287596900827962207608177986259731460132751249205843561378572905646571253680460931423368819349294763585699102112732052215912714276343860468431122845039763393176375001620422889857157856118334311627242130981682749401556655475402003120720149568310862471274219116195603144754744453356958264496184547291960717961335220603436011416854654781428045586148945318714844209800741471375761684814529443496432475521667993922793143093602534003135526505891181906325917036589376452137722432138991973100536233639521544308171216087991238959491213471250392502241033595868785023015895134005683154125071492083484710640684927209694091070261434504155890291960904752719570490772592960245006837238878321234035454923493830142724928102008474349257203258093984720465433091647322610916563334072242362096402929411293944067291654992874803393952551675332359464622451373702861276070637272227468134399683627514721206306501525281284975746876167619838414647539877263001336838558733055068203168531699913280807338139406892599046363894987600329794977000160713833479809292187420845013015393016202809222384118535287936797159306988311341806688891585280462588458694294006112362667405718265133482359043737678841537599208077398899370949829911943597038361735862978776212257667264123422503861264893860061622621864721192220742404362184223271671418983271390147527420837662545322670571456715203121246513761192635346575406072729330823122255724802988667008623505400711764669126865373780157316908851284073000986125743369906920091258102517140689989505914959583143420008239330623122375343177960388759316732240147587494660586756964522440130868575991651955574286470231487134675868715750264326184845862744543479160542406643914806792968651126177957957454990497084866527392157741952848723998221871796322132525273450751746632688374978025270709688908127576314614462564437778222864933453082902165633420893240646169436134813528914418304502770477593662883653988078954311021447589171358828985175079775405354888432094238121629953389677400235227068826455481762181059043532402428930850506025928197193076376619930736335357291607884107341997201951880101238256864855239402552779636631690179327543829441096118656140988415261196776431634461880533469168739766621713653051263696735459386207492630066740089174765721771625718881271849133930978250153776325124193812742432863821420767381379658387294968087255959493537566709868164609649336077384741745649895884260368967107442225470780586225398994785961876025150643165224152263744426849817088283984196617621958116598085212875802444000147386246684078426785472943538808641468483380952177829675636911203379238457376881244913167887958508729582738276747719115757428622380478124852061109810929107277608057029503549377047480594402130806940710396669970465538697196665031283328843118129683464974184958047517395870461677040497836972935428136220418019979105016563444689463639563530689753434782011389283618188103196519257045575000011689046639431852957991928507517806662048067104887079637152506531144600813396548878026589421050107075964733981665169557699634725853542355812688769403548993651802952593634669652791103216911943193571803721823181364487590751977569489587859195149476964313432604057840346579677750740245513921073281840785099234183831096938178286407079201344391487872111642110082927501088638560034166735036316773848597347925672022988112044700344162167034970439160382234441534345691979983949549007539552888721154715698351500050387285570368318188481343257869868706600973138488132988369537373426058937070729020058365729467033260768622279365924682984460005387413853991856787829667675134105415322032894909468863942919725747382229964155670749060824762570391127258273426301337081879535038971412115730840545829939819197524397916620221128690534085860653931343098009711269860765141394443906632748346978412958643858002417682892127165024604985355721025708079711085040469056644972700709039617568771557156080658585995374068950364989426074582738569836871345529754958207891160092110062574302780400272239902692732825465613195617598397507013282635904000968441791172476152267502235901080603514576989818039184669981950298431632816784863885805383348580918623206941718035195943052994397978414918124853888118042877329587329611202679279810412988157967700402814388690726135957502886122710024808537188328713773930093439544622067139198394592526551007156960860428465793748692921624936238293473693638006828719577062478390202274349687766227239629384275594462478383757562879410201390370105836903778638404162980092577831701236724916894988522833603865160887740947320842142850871166908411511304263360644235705169574571175422512686989086778729234438844116525593919974357875262346975928629118052678043028139335345196756421168404955703613506424239937832250410575281066266407750296241168404815799841683671535896436679974302067015038216252955294574701585480417843466114080670205232266053478727126605386026164412114787116692447637476103427399227214565094390956028662094008816838287320326512982612320038335065908957631005530786781989879089307482910177569472981230325296977446708484466105804214142315585250516777147012936911589907391226147860074355022565057984302020102703454723260711925252634756881740388968360981930314150688692616981747993122418548123232130432339226136524663839001112892352025178466865119508089779323100251512991500433891084922659617188127215845795697369000547728712380242987926614535811847806312677825746091916877986298055160963904917152891937829719890185803640493489936475965443070832935703750221135506983667653118369800681923150335127051926783366897271300657038898561526673113044783159877681664963098133004053478999251158216517193700596494641567876471275920883008869023808403641781328995121938356474861946962196541389914992094315335734857650278788578737787237707854175249480288912610917067619133534883395410200443800196502445669771122675735775669552771936896627468466368822944676021892148840102834316919901889404353305383441948781015880806253968555500749316665600709174041713880489887224566518650280736214094096711793402852353956718919323169911314320888373614407949460511444562725751317640050125338100047495240362555861365724146605252579254855814367288638687859634201251379036499312310436375173768059951798369793342743991363422051771201399077416061771781211994207089209828931632969542316853948124655874325803081480886391799248809245648654540557408109355447318449904623672664346555372171281113570366090548028729196611460970589669403978402028402281905022295207889945541543384535041571034745493051961077101286077092447692397471946518643943845948542291198369484232859462650491448288983100925913543413820356431063042018734408672488316624217057396482816307749927009495747985486425968217606903672675736494629029958145708400077182672474586462124509835569480953176597918466638431941006627945059952573715976662116051637735664002839179344273558226574761514076930107753779078457531584755330576030969461887193763261234944734989266860156830944696742037862707637293911544341676789679390544280875102598471086877222254409265000620799178311980594984877361538875081690479933650166422012876526654225997992117188067343234154641151854025319613583200209679048692846488690872730837424084228870804505425910913144229425042482878045853738263406771450829337146296415929332770730798432783375707855914875438743495732277146174449401925203939925079289278171894677605258854337350027097481460290362768307162328868700415420861915773991642278727622978679381193757045015878303730784905564039620294953542657562580577330565424256857123955416184555251530453106703413826333490160405070062519638507750585358186177927413025835208443430941980075821146463632650540000408923845024356819795240927234897098144538690386607184193689070130402198406461428081956405224894151115406280542507947690804865988120851491183730127434195835930483496200094276177640876494775342110053770554852529045004454919908696327790761901719537606708047824268304431091841557994158509697448852527079277659221857762286344159173675187753027560676945645893890587852440876485078223587470095644838323363217950870080867546058347455475261001797262930554901811149833105326297426810288757396886334332784604715366839153607769793585447972244772334441171408082552653752213005997459181709367705571170412464402903436370188685628023146731323448448420968266854665916196971346093421152776367016581969816094056077753775215893773627316098237195153744517690288351929514290981345608935081070142476826725791312124495777497819145675411126857411920539639323373806467110499382058532087785597297706533294963361984516077380351731809718949561193722872425295554587294001263155293482614685362226170351461650562468460196648202613748722483955635918362015199370683756199856967176072766467309176724393580177804800489987141072413454507840897024046310011085646014750662308643282318089628015218719133327856246711156253790689911248041697718231105445444115244663974214179887019123928011778295382457418479874994032428810539860185887713510273789869699806119219159112827145410403881501876129736316455703426332683284534207524536711608232703004506656495658747237398735716112965083534753314212310998220942444418308321718820027487218348713325388879704883240575901427178884077620401519594932749486872814076074430882772225153141725722607398668119874151316973418096860478446611367365390848803757872687459289360451643121956084439294890582303540842402930667212885738444491084197848011802476645893016042028171891902776859613966153449121057256924523504848880626388849281462506136403843824781840389713005108934664560514078345585057986481096604727542447345814672783886695829813342118120388340700195573273166409484191447502965511696478413678850455985253627213578648827412111273006954841627619668881375558484898689803185530960023710913638989993860084626859500087911798553763427732110250145840265011634586561018191807885203244513166387460169424042548485382039227217411844663220067665394806858481112364604682339625663602099442228113703932874186455120923117363664336824254454995659002593511853929905696801692338985723826404241658584128804325744061903688921944468101422499497532186037827936821365578289860290979267022634076471870137011861016506030579395022239749272875266604915399987110647634136073835235618664529468984605169448614458283743755505134456256410434349064497168970104606058439943586553962895307345118446053895470136619389279452775719565612624774344248717894503071428939542741878047147159598687955535483022106013754591026697414028872152148356479496379704938050370905367580301925784398620241494048279388800738698439701489578448342967652846279839022917108126110331485533815883317118760748820140820220141504150258353302911192746808069324327019247935610314266119561716736746516259689438120747227557450916525619430792665118085491876107975624902161494443074331108521739774261325417426609639686956426837075943802984344472811032026265769877587520022066939427874399092719516419906492432909409982873899340922783767287871037828685829076721475009641629534928097920282645304025030933135009224287140893137639546325990689975672892166345611901999621736265431741345055484443675116728570770118963596140515462979553107048677134598119599685186555202363425522275800522865748156973394891718915717959301237668043346763041896702421068812306723358629750371510486974186571479722629885390020110324464010155633001770612237144334376327678050384880552215285229189941388985812769113996296974036723245300820379073414307417439729785738676289251679609891831523416136002575059721249621465173046975386189263241972567651294304247078024736234459552910832189826436295439280024706744515324001408270410250597398808128283322290263601379548101032948544477287114932038370729571924390699516273601325944397335985120676738247938239799654447702755311474617267029143682871036449522659242762815998131116714277675372628008059043280227957594591217884134775976876636812896899505732955886642232584842638879142239067357077666598744660882248314965851957596901004403816763769983018363045492989297850776258268774233702706175273308452335605025840518018817801597900753863119547209148104584070460616788959836323162745885551876761146985124857351955632469853182873444287783350211070171526765166437413224018153654468226624938689907475400664745225747187197030646705427525419384931568095706598891005454369612992140406320061025321265063046466529505460302373213284879575699635013846051081801748327225039815613150539229147843843626654403720580682526247574026930575637338686528534119041371905332676647952783811964245003594617661540530723456475575242027597347274890664521718457496548297934491853631895459292645843021196051372601281669520280495135061936795872330000162794369137074871063262798877569661277226241518202554857555172496239839847512712719688448471168437708555073095179030512393930148103600152211765135629576195579098264961790429613755630449525171523762819831701745292008341328690444729453708710446475564272884686694224539404352736173090068527417278079838470285668930905474893442939672258086540087321970250161338995296887120287726594630524220703741488960131764082784536471150003466825466528850983689424247320482981739380288706136835848886127787737608785690673612837769603824529759919673910261683710737305217233842877969306970884572202835562539083002175662398450186574954884120800331040651973464318318535327072371767789787057707402584059558426568374952096225680077430941427345493780735945312443442704385778446343621649733438637851556677309782392338460486664092764589208974323826395589598042269206728830492805320979748546237731740289215469906020404164944408548805687420474247024709249064527430433176283090344218918712602749003194946610938053848710433585528048380173066789498561733727534192441941239138916707305909167989903739637304964735499759779578784579469739438227218363537576334740910792603914331547866922447697991882889076148395636846184821568281043125270893411618756575349205294059237255461985152006978443467041494680841262190364639117450370913018511614622043874087916625120750476784157255606819017017754970689461599210913387300348881628076670570146410180470941859802516092576830418060362617825132511236448490181718761722770660966715908574346307278665129941550855512099328113976085727052844950589500104370233760810277944720341463762697226201345035646388392735366775584655013630106012671376514072568656417309124420646071007362185650987231115383869001259616289345781789129454853958537006199410393007198921359797526087044092331624833336775667285956607581467877390784581730961627606831418117115219870061026239984358587171459896521435544939962508723739173925591631945872662243872068140206918658099962155388980682729112174512703214592024611415765718636838589258509306447168105560119470663188383021748497227755108431686802196225297902055741263679936822037767573821845353528513533716531041190381974064846220986515327641754996424166874709656601805813712747801772835559483951358105249961158582327043805421774398219722897464734033413949879177967167669026133949804458930129766831404478382610468575326917042062620832695083174940473465061440001031660428408484251349616198375262454446236152693014757861689540457068407937840936184037528841914117671486102704053828672472070113709766033299194343708572345019839694169323494951964858567621739904617334835035330013222034937161920932511907119930603757767568694963274314128381655481021113096904459844264783651936705908103915029591092406575111617797238714520779956683781667831175732371180800915279037391643232225167099531695256380378676687816520628630750287074931908133848018270576228893103657398059882768921357209194028066274499892235175233544406779397726696136529849512209562564214849794309301923001015333995869862086601130958077665182088316396620000622594089118306282727139189024228908216019848973298326854554085475956860309919007865688946682283420820138075259746169824875124479924479720139862162068142097944326864704490473866457476512452888529748866110465570869628653660210255203372119331552234206129905271628516188619536991059666537704089447676545218945165912828254357361134277535091893075764162572569253840858379657189397714191014077572887103913611312306323116993947086407029710243980512731552369789286545496002807098859623572156576052912096602834027150982642081998817980202563430510708673531183895035394743206163016855699528320201132108835701018817075979568970400063002038681567073499192855276378929692679726492974941470694962638511336299550834743470235044666504218883486446809113043999809293563338916966354902773855918354922190046621043904233626799155390154278718087912093509767229640851708528299905618317436760325926744153125260680274982622906046097568059137449961804627281131052574429837544628672929223435239053629528831361952169263512623401761404961253804500018876766252636148378480302072967929987894798744572404657221275818238581309619080698950177378556020612873860582370767233798023015021505801933436608191239818520385490626312603535462148454370618237766684861075041872659134980295592567516037859090908349779191360964587844994622005407682114741763805344565199456306737284118170567015246441769407359287046373040982412456620682216808407302563269893646790376035668882469439357631372568309110640085155328573798142529996542136561228547391712731941674821892922326688335733270585898439252086060193640089693958812351278724169837941835484409972909356208095630534965748094642543234167212358818332258280057137226852691473052557897610358001537006025127376567224583585234306605784203275311439257572584479632973700126094721166649541756110986127552529412534290283987562695290324999094599942761845624826324995721111614848105622704619641279699930159216530284927757141670158981260793839796809601616528172376509395139906546680460789431609457822395616226976723953072008835921906293769051183888388975804510069293123252935370607673062809506558265459422724524749946845727251102031950756917807250867779341838304770367226379284993874674895041616246433021497307162491599461099314603771165892089321664788807153011816387400432046392547355114010101728000370285433107470046206317838986440649786081351910716913703196962954905305736058466718028783616397314453080704558707578433601984526387233713512355041337113810864126675181775951813056825061191105513962507657423158260554050759368487765150221841420941487685217284471707633071712740899441042508298043909289973053467061521242718581640198672295497290793548164322727824567614453417304907749508961742188958645157542338176420603664188072691817383103150118138147337102106567545201041109681483658052965505621483574674381922696099154478258997859011005645008359680958747961567421423914129528967709815004295704700452140178757196090624435474064373256560575471718846628525908653954145920642718924190413308271166073123639464820676811071440377503996061837311588101905481540299601183572774128393568188378950411574473445624194400019241167438422973468392401740997501124533119746261993843464816207211722792816629401627520393387276510406831713145044154185968093518517979502635165203833046166480514621998734430691987396048433285288206292283970333520248871503482024336608618799965471983891502374879754434851225675000393596753762891774194621371668436538919664556982546519256774075385934359823083937588719087866144092192938540906530342397705114119449594566416101537558909898551204527381340474680164936308379443851192612376517247904930271190819994443448326886442535361694990884299168798657236678531148669213500634879037910652487201894204881561103536162136911262722612686331457924641815105385744754250888028348634033535580233598970522296932874230621717107841722524189964271402255438765187489856888471146548340091839091457216254120075130848303557043112771215346883626903698404654452173665299325604926846619374788641741145865940295800760116881578161921509740530611870284411269055883004615574555595739328899611145058831937248054912921479648961628332992333759398007810980385060686581220071176204466712768764543228073956412437800454324558945826549809527005491301935002377950143427292325310924229567579566364790660232360271282355109619085540647689325915740388687253629976096473742755547145315726216431915469103289033345868207273608470273463085536797241631010362441573007945000288704870210769573563171876501701161988493547787806427113762702920476354100458776191288171211943513969902286413123321024108357473005319964511020440857168539265100701241581442872993102055117783336333029949036201497876576416031791241854496843310328297259585775625227263909511174145127031726262650087243447642479911933454715717741824161187616734531852293150176901450559425859388848628523073502360290960947197982570416613957331796305101471937937439276456298570592556081462487427724927055419340515581015140043802730089459248471550004775993564720354626189030136610500635998779573149434345744996575417138876516174083034223662918389643240936153572385069298045895139662484551781569547877563941313175253874184969617683209852468138703627130460151411826948032699657629285529393699151372822316015016344233760193583156601048442594815744541879177692484483069300224367827864049964555075542738402658823535030125270016517310088930572774374901994233090585099863527281400255363333861936145117599575862542654464581392715499274190442985247805516858969340061894341937888084550606154007927118353218980299688123411135059120260897737219085629893653313191785885318375555778886649303724745426353978151863765530393752902979398327882961041596863721749625545183163763953266899203920014357733013550162915368472867111832524319419479016331529583582323754795910380043167555277518679738095853933117507776723466193677171604323202603487022211424746251058375500736462059411072746427233792097941267593441198717920938501166407768808118440735522605258387481152384177173287552540994457365225161698256650367760419353058464584880168146258616229428557128996176331272732644295843195051699945777702667425247275907975068153714881901381137845015106592580512362225264617785708465571966100091447951730228831523350402574359552316696057864039738407754420955264553157649057114146315482087353953450878969409483865123241489166680465121383584040423798028122956385750377926564809417402903793217599033056074531095717816257339827644227254321330609828413484345029011213340072608007088598111016095797854713839328697789938690478689293686475398853817733016976254412439436561762129006536288228076999021708356471161871140877142748002476871701448882947587903160150891656248123244838943869761872476040674583597195282259707776758202590684314416634662042133053831635931915139472016739275062021633239069707066631086185066350153845288617693380669722790136839933908322219813721138800281618952719766131158977582180531548739053855951201594807428183615142814647185437216497030696339278669731164933897699819470072065542351650727955826113785545709040041118258774837034709027015510890497297210133609448727792822669936006846238876043883279494416959054283234307046118233508940273396960257042387194552744836499578886836506034080282261267116973788098935526786745272761025613685052985287356194964889892188611529235155374205601516449887706833169798029244811760849796376889946073688985323180333368749633611300762454756789636066668587773223939193286940835348049242838683202909000326794186195611636385872914738201273560651323354467818923729030837296435999844038670029857608952207498037552718626988344258891814709122954481111778618943954904459429385180845371909707252774214577260965928153595417219614881422949744249213204703516729405056976770927199660297211602532606661182476930283111797970639981326393788203293118543134480482438714230442825237604356768366025019016994889356353598130770631643323669384891490473607324728148614316657816294053534074400102768246247360925530432330594237260205386769848936946103984996167861237696822876490815959015258407841145112898258304134676483270612249942309355673687447539876503887797072801770370186290587132643287103400779600981310652513671889153053613020639757378882035617701620816661317563821850715839018608197249704048222975046035855523173275790832733028959181799674775058827324052503164283273025410857602663355697175370641206335745492016119897341189881437339850363284295978817615732503758785021188534825970109773975884407168690792753263944035076793937473983609286936225453447518909187450341649784359881910618144875532827096227950809379944613203801488758216143956444324702384454116413243397284288296825033205852942770126069948024416205788889404455699424843878006066652350598958215689746562432389954326842312208751584074317091797726507793449937178178506866833478317401908552186036942057750705174149904650203390102013901416753061864985337797829849198417364942635614800344252707682774725809437469399767994026749866788702230559296252438679175367412995773938504574338910092071329315864074438292386328095782015757512952672317691793812502782333247079129651303276857893260921074383033286174951374880256590190161395608372889909405327451013637236216236868705437483754038008036203341127278970261375848710214046037749582878350225844383242997904406423901382239692532878530780985963079245545668064407912681947710762788910913366259476976763197993808162805098086108505916933857656784687842043703452407762412602930720070508499105382963023682175773136365845106601866662896413553572644650340211560563004426975656952867329575279030022349631462423255654907525259110859322328088933152322953610482457723824575939254497821407079660400898186685223535415457552109491642169263442454354775989273504012824958668475694416475761076858941277644521802390746668007448380607704408008773241286459596150872445578329787598706155486939551601501958207069633639631805697391990923166620462099601361114623130985291300760444380906139256961283324643303162036647729605038888420633696071851346617789360701833310721783439336994835997033877227255685336884094902531759582132838700872916221987273779549548512702319021826685387749461654349023387918690288691729469133206016168186712683538109303463764133750148813419420123948486409261700289263355893153037915635741549925241177198615708600606878974779801645776892763198043735036435716716500174956435634077591822936480802617845630793638589493366268815823872013167392986778301114587529693119591639543592259026535829496401849451488806359102927013061772778885615253601538061642811724892390760187879251133809949866813767203398226448653788622666035975774213068499169742049028275019851448555296361391103677339147796935724147671182723325221780686401576115092959147010218691520844501859126622523282230272194520775706769802664202448845342882459146422762915703970101877248600391873608717753088842368466447883216301453979138259107039528675972904945984476782067370934416237389752157237926702688924274000068106299708778399056554819030997254675645992875268360202156720308404067327373858802568674608502055478429634629791173377669855115713178766960182899508896388772813459019411631346041253185632027251010074645453775633660677124501290752943455146725331482601625233122772408710603221717320531849477582961750252386261431255025847020823397730127384525887952311320816606105558576848197940631093981855482380004251981569918852313230543530258615515504405822271085942969490128130941384094798092645135079137768935422028458595465665231916995286511881180120700315949939951152086523767859367598906628218717832351343929474237309888250895006959908870581135877962976284409037272335947270397366119783015107704297648594432481780813560196095482000695234542788863124260708927172817542477344699886243989739521227304041722708435003458549342418692708818217417329392945007928036890603150204022148230409060726455861328612462448847743430727196104310449684818745190717528609154020435564357861459452564296944696601824841749089468286053133744175464632836994713658368963490664029711143680892165450049175393660398192284277993501015542905165217855729690314413220715166677657254015462421896518139463135707758914030008196197408220207036078543051456714581311229528782817307221937083591035136013730938558186187463837574911137244458652921163575003153659282735722096565211223699660660581479094280837913952223410230017181174510697358979365146219541666694128814428677929331507788985181170599081270232793531501060120599905613611364360824696070551027258966932597920026435151882645692984518879206168482342331817446508131590596951429052891309289947483047841446989632305531881839530834563500221987855672453088311348754339955564806371703206930902733000805751471752874229814665808622787741840552008828512397579626074725707143686210811099302376719746244225933354837061896310929041904590855824286277283255787770228922098676878799736216202661264336113226746400613235113754334587173385433991806423597992635975550416882490029344576497942526751653860821174682171710514004015704014542794203248402706634303570574942459628851552579605934087725736935300346262389591624382381471084263878108398593324931019418206023405739721779394059396511036192293966391795433885836366125150464739298643000445059466592501470607969878229418704058169890232106736702149205313902368195366658400676433000297726655679808594729048760932408619355465083356834362700878013361191709950595426651275907592677940174194445228196337636926830395757782388050964821440648217577987879333813055836950292086161052278391069999407757820715266013230100590775794217126161361872943743657382831399920456437956071217465420567741217053184529400127038711073011040786237473703808813126035548802864959944728472654825656849555927577569046191070928826188298464339675900669644755844310279547368781777225859037260693313651269388921283732115926545967943132912622163986170769260102599114079296070005719258942586267911709705185887600202737188098885952753287900786150014507005612331634936261175205128936048067945380998063499522892159809665580097414728198455052650933405524093488394806696837752442860387740397471764228438959778016689276373699755787644467812189867890325543048108015476002349561809921338356054753871899633343579254686633482503357337961374519726083018170118244956115531534462932433307095427382951432005515387348348526278707027934095460208513774106581991189184718918228687638129175034684477211724482311694018495151016806526376742369458019362094413870475137990320997471858934965588757131828953989840019636156606940836988221991524837022985134895989075974728370867469221074577517719417602232489793541611335014400319068786681438960191416892394096471689626301663558029286915892095178133685024082129839424176771065062254082396588604684727002109910838268405306178488434380027431067631171498165610099869993701410745260944250159223097484471660779097834757336070414236085071530963436157399949750592574609080897245564811663784761085638772703954620733815444082460690877276154532943386414006294174933772777567443554788023027402193053034971744144136478096739965123626829416970566592142848489004149312152518026266160551467977586254365779116393439537902152024216248995815370649959941309843381379168955901339842470982684484491454869062430868058197929260898048558979008693273488558768036652143000097245936303366364118123180505169162010235429631206352342590829430609096517354462363875574924882723877299702726186857233943808764709230818201072348205815265395165385634442422083360578551208502686430176501057939524509729995703090153762707377867591213592287521053421901472498093698959308879794278982784811059896468456571769436057350617419593782040379083445326400770905024505963479588887675251730412789221321887690688353981741306393397256361010886554432450070935168828429777066199332259276654392060318664031632232903665910581502243512427230256520551032585190468069656076835382355773536340817869259090225299172013271071510165916665701247042689934179550807002340629302924734214611763743852180650341652529100520622122278601905367401856922044415471682714900361654634875695762108566788201115307146055401228106202867161285888145715344903064516614539904192390401018313219723782265169665676978737308337323159020955553118843573818902963303712266950529204119901135652245548274926450868367545547157997502206802962230546762193001952362807167632148059524049755727902989664646538951000341046834670315185464944586062638385327735587268129439340651292941898214372903646148901647575593209624808183066790263443214352633952093705735022037485078389121486490239075981692667798670943039191311121865082393895032900755079929697599971724460940025628302162377265045834554542658678376937427048936297790999784495511201658049316959449063738272048519203327341807472577877664680263660286832667118026347812227809433279172424350442048138597223993063526918138145455425400478997646832425001542648633974022294700133088560207240228993653811108427353614510912200051250122734532044207516927539084837995230068003537367097749004558762968189082317479057041637532089710950580046068590544210289725433774631835484912638037093150332260274120196696191526290403661349474709251329467351777204095869460973086720287369583567248671362960354273288672434655287145390145208135477691546029365320625861868151235814452277018202783941562491728622872221149150591666111973033938127157081420537762101035423307949970448838090510957065800313229899643338311153002288697445900621554403755064931217312786084545170201433929871732512854177883105227990440814699016670919425141597898628810848574929003028559847439863270854842220522452430341889859877511156713993347607336017591451418520783223844376352470366941988409942417542100628011591341361630643307923452920097694784291180514636657593279268304203489201118427045876589477907686721349364319794963712632776202540198721740925561604708846879658963398452915550247429582161590122449623732903854230459341729105666872604268721971452403852786835525643674336244355932764196766562968617560063093013901969186426433809333826835963241887103314221296089542617609542830010701876136249675298554209247175025168422836898538645850076464587497927918484977458544335556088388718609067565703734447828472533052954312042624006254632442097953587575172451963344512888241819951453392915703842295419802076267645101885400463065221530742472051311655420115082707742109870558777496940544932485720217106052116720609239875269584939736512942749870931361877408706790387188900822657528278237353539328807558928112338512286347273342289276890273880480234226043845624342622761466305134986531325431913503858738692730317194804281040363917189772929712405546737360969417658511218724212731296047178164928052513673637487513137243011440268469698804808262095954625371829148740623586927235573347862346719475179102086040278088023700735947230419993467648311317461074522931645405933988573525504150461130349377490029562854068570800566774819895322035486460457033535360420274882120949965278197973463509360122689083316971055777910901413155829365115272631141601379393829013351448510811932874444577417498932305705443019226988920352394629799820236890278678894236502306420252165755517907872866133622463146761033839512092521485253618584523197778816116989692221572903349316443031752153218948070745671101405852613553137443702231556037048359471784121989965324188849244557895860297036667308731730646344906218169255397513058180250648753802435890752199923286164438909102999368891000912754524260913504090023676565129005387803501159234983634604301823999350319320135350409366098870258766387120877883438703632384122866159289591437886680422638629973858500646915675090459949568865914669079509502921473587267151963168086148249219408585273688744418673484661469776279661496462040843939062144716078264273432132184910141723493318860953110032953277319705626197519062617766680415002793508832291655648412721333254977015318132357102268354845564476030506702630172480288434524254040325052815517783336201031550971599515132394171686779015922174966469546643889642097873673894405729387855683259463408963309357006380830155273550555509745834345258202551478589906594511796687377521236998113859478256895689732627130603782338119590394649835066685758102254169476233978842717999545485538702381434828776106676119469799750679436132912195801992925977898425793070737241068874347832913777986820229944171910150384044162787736760599193759370513441278256586919458346279319903611345972365830284726474308902533717405121861844051955876278609391093595789462216657362437418472087765602623690027227645268432360237829254633209661554477084677271880474833699654129285863991389850480411382000544463021853146681566089524307176965282985906547043079664871832020107463095746597995244999228221582541825263096829211152323452148764836386363041614322557640287820132609285152955754019652071955478627058552733437557535091504061592121249770090009982730629852173180353848923085507951297229459830880912854256967732842594078111491978278213871370417315791432559961489208029908814273632694334037154365986361575818043444179608281930395840081834095381078743671209026972941088882842829286206401586498563688524303759568460087316825140925788846335924463166165823048808168488953382806853354721412923008421536617485899721979467074447097131428285519959152839675455744730634340414113263794295710980693372938030322851732428159648731321755262703942541854746700621021525140598453453609911132422233544406579055273122345590197190390430166364833511306584764330642362570903048642305568451246565378791398769902984541204042304894027502528235729265917235057840709414581712958978570688761071767368905035447381894729693112972977181280806615943240080842716026541300273019193757890890211165150988863859087139590778349225262849890217287783783574727545594296119018921402636110698120643545173804846207065632222085362832347176615392985455155822719646640935065464973816907397775541047474002890670881875343146527181117468486187256922308655240182940200251020268399227866094630089635270943851040134321071287121734626508926594223905644855825865048554732549402718119411036126014794851206899090064401524278988533973911597786655473931837638216988016333386169300283278210873595792264231128769601522061289822399606851148338528184276092385353343096962116066346484821205522498604085612721770610369465441766594306943968881411571305195291865741042923952947659124131110707331886110581477860650259935377916525041319115326656756092794882410563465528179296826386806811928617894703795941703101797866825324349187281940674935896744405712740224725959598137209861387814946223801115968031641037713460786070207806745360410185766313107234522123639193338264262976837468024776671751078321958127608589153617574089337215880998681270900260221753918259317636697874434645079885047637699006331881394524723431623685409065159117569591071397114914378565313353603369003211788168647455266714278103474502617587075727795158473116439161925733641449591843136979003425286531871626926448293538539474217147975282480980940764796860025331346251387504061597193826028721210325833848669521942605523760563640423112681533122807343995594822021769688627067439689261093331119970622256680128707945573963293452052412930927693082513408357257798891018262888285680459723460425399476387209522856632893382645899577310194163746543703876190253910288080856783988508227122548918028839709387686243736669816341801222483197212251683316851656477748539971238181040692946198452844026799261738979142865680181709423605544744908318265266621455963570957683575972314705729016680781150297143336410261117159902252103780463528034217861173804443096098504996686729273537442414318743649749997864533045067399311428824584045990653716439154841817978966408745009779522102881750532276455572429040975626327262294976655589730678492076414629079283964902144943094974948919802320224059206370461412037335025786896464379717630699355516331180322021722244863388922237610496813699037811657715771644896350432688816948442718547193376937425328136111596954106295012561671839435678523701340855197343088876889907201699692307300624107555691568806927043148212246703614772429912911023347256203693943411900741333941311006020414030749358272434821888386187890300384479950744042722505616083792030357760387745073223519022174355007356980490358930337806648666688910455123972447905459418266296439198772365263798716057617242794289167777732691421649028104558398147624599232763613257389831038460360892181663784305499258559849105824900280976602814355941205989238095936019823896176094597983527775852608828215895451860625609487336164098296341477116381571825148970628857296506459421401334809961583858215220914268903383115497825547929332419991252398308067346738172998870040820881832378231527346871141619995834389031633498381092316744994022942728547631609272548793255622466407640405827867948447638915344304529968497165070517751071894863620712489795006522660964344701686992056724700384197442532235491825617006400411930899170781814591424175599044014046998871147874402155703754906435543743733370590514889158810478913438600036978315159348007868730399878936598379184250353067983372575382633640241371863031470879935676713587806005220673523464015070142336405483593018798843266831292394665533744775361102957382539190139703754444827532577785584892362244638527796130841229158583181894023832807610783419839443637121749347410690372735074183104914909967520535685389543022216545004766231484935199511487891508611030325386177488372065163723613231739460707156117985443693126622935802927329202608666525008909172630051826023589150322368924515982620396565767600515032485870510778337051242276730521191035374076726642310766399342636610348934416203275641791595187699192028939582798861973432150603615296378711935287809386030647157045558828619065606417468710251567706597251072450076185308058380377550743937332730366276416453566331118592770335139520655157046531145273125476304035411939446574750987540682668148206075546074211468449050779608087132669032173198539736530333121823831443975888686361486933443508947065002822182987389480845444346674140237662061548887601529177242442480785572172171324255274465223554147497260547198462521134394884317123255789043394601438413453572549629817300218008808704692787360638139317085559322217682313428091981331479206197184994461683846493202152704299333581254061379815688695296055534950109018720470816800941349863550856527205242088866258394224140771838708160295779630786128518529839191154603357682115620963760062639213014622719510481321403090023278637852961910229598162490148055400315408926431403298427329189829614905035455117413940790362576999408231808970309769688160719289115353042595064515102455814885834776696694602077187624323365747275422228616039183507276331135664963234625178551202693121044155817931711957384779821898394288719581816568744785076939767357265347734407223285313650921523495746141824677402078894308209832142045101505616327718500984200714393298938773595578576329845118886447092519102100236305393935956751606287373360151806569317607015585186287168346059399152893441301624050165103825033077158570707266446893225019621549631579546605232461339621656968094340524746180600379453987786863976912154989667232546129275301530600125634346438354749957262996350252216958976387888588664482432935189604770663016550978757131830001732881723306569292978832991173260601354921295045913553925612206490375082368693796574994037491679151628424113490879365827006186596224783876411398478593249259622497710824942592604461165037323185716301533009277838189424407738113194188269331041126525274486106498007420698208242386763686679417170492681343924864953708220367979814861344080586357664194658386644594727765258802158043261963511535031459073354722761323590174279873603462331496516205498874748936720993508567835845017829382926223396366331473731516321775314723621606226782027039180251199185301130090003642592293276250275407440750508070827902580922219988741075316959480049950478876195747853508465136979556776171036851971596094420733614138121435913776939781781634136208700431674160711780292459800771391868060949766358469550373130081033709427819379158224973463075440181494267543030502634321998908644008446403211487259985550959769637369619603082091939505693556868193481549811400751556426135474962508469945510140470738676208449690058190742565899972593695491386061432826623632615682231705307577447661674655985063938802528495030715346726641670235344471458394509741209118170512170171367834344077763741054583705721162968360860003170932732282677028331072432172759325135319907496678173008267175508638603481337604030666575659966784568611575413106040055351112755231672863244103315637458782553743901465031014759381775064010993552547185719115308906755324506876678878736513198568495536249084923904205027410500940576941947014742519616921221775514767645779017657921096737189602963923009507380925964964780029838592803866558276424993582931462504580313261377137484919585363364622840582108603992646788075522320672916701506631756511176335210477841183328660503037871385909682833021625319228852175082191381135261586228847452815923447334111502375556220900400982814526737734373585125088438387364552430861139795741692499915302373255206713940211142741778022115242357459324323776208405150457201875292874578742986343470074203261855362807669503600292015022105931998135517189448087652715461459124555638360851413051855405748886081792391918570027634986010195626845420303571728101219430064250728015826692868782621552328117280910768747306376773768004667009213272407723249584139109259394376660212993398442235182452075415844181002331349838076618112210465563002745389462658483004413749037669233750680977629779485925278525456410946125040008300456231121361729057913660947493791247132474273283664494323809215959514514043815350100353341788453642404052895078081050645349448931421068980745147002294937053793837007489284695532769087504159124965691788191535621897046343101481158903544364765751778288917784172738672927535390186416394407697983271041941005665049168333130003875015276541456732668179760365450455166526574059585281739209427693329124773893665341599914516820818747062839028039025262751573777379150329059421283260143032324372574508754696532675275710354478491128753364066489079064163057950122534666922050403105386638129635608568036718071521986084600841107020074858951066390706836547057147525611071774928116328423354849710702510227775662586627328960036709859048828545769588835180566387199520949375254012154033552061735396027489489801458542802404837060648583272485799593849914890733884761335908938853861853570444724567507516657051014084002944145505131115105151469264277398513151773809807544431165520436868383108746159415389398718408684032957723253694332803763449279280280037205471401556410534369251157975691493284017604190438990835704413419933024358508972383929612755996302453219350786556690354161630716689580786457839390593785276496250578367138203992476047981906166633237582829572459798729514848354150428776915732475153135198309220666373566080653371607944304671925149277081727958206809836868278473440338958768639988844839877276721915451168208298017432143910594162883974000264455437417879133799522080459551447167433157917655300328513142163393241384828579403474439722813047278773059301764443011111247716781897912487552735190375402303069455128268441709297558504345256834446739776863894644880507057969326297631950820171883391234750097544009423288608850728038320035675683992581347486708326278189302491433419039103049999492713248645651175759304031598835156417747311019212468469520116669020135710131496651524123599922681066291871483567080434262084804428936533789064139779571121144886651468468523479432492879342781193352467257953846853434319308098594781964359736038263715637396196025508385521677045896343212699255056250434495026031751088716339517372108249504407104013671354359415400749333772084625144660434996618765042801915563684002820206306119020412552030697353371903272289281281072938248249353516043048773819663358426883385218139035798463637022129243151111596328616561045997113529543562648822904646324447469496154971011353274525028653497578893942508939729957164500500219061994386516489550430309111373372716122015749525854673188991179805330152151148552740417341015347562112159319329490288429889235415037309772893353981470444557570156596537366932600240246544462117155541297937758909380457286542008045309923799183105519430408111283009624916150058666886999721326665544746041681899359459369299896973073594790640588655585040171337824314716333313927913755747958687839069582473085251362907967909777986022810752876778699197992137463388465788031749698262361950451911232373156138178930080528901172207325174545938392324668513614647446202314713592244564984251411209969835792752113212813080271866665416571831650590570713334084918357508694688890468393578613157132719965591327243898739317020479898568697104640265516067821408688384029055552864389486614953359699606179533092406440262323314472200035667010812082428072141758340053187145267864319513325597301166608358875412554054265610561980858893828778704847930678983997410770394733666416155490760725201172533763031983834910598343179252352276062934209602470997642040539371968045124665006990088286466278725730158068203655003442276013562881750347077235293835392963126354509969938248566837570607651256789104968094284461177409034355146398352109411389750341783676516094167830265386562295146922471968807274717474086769045334437379904134689290721471500160463793651824432591711137423499436316855186726877838834983751636324411413008970427042856079402732292280820783119241622397480110748447542830713197703936494482949320461217859045607131280275551660904295994493202575538631526762199216428756660926842171815428754974438654121461624274710168989143366065177853208366337571883439526649507518374403571820643729280313520332873770451333132164695281267101090887014687601885606288261636888584824537261755337910883727161247224799195050805520224292024965797093186266853106654691178191129946155060137728595150012590574490449335255650747648000066054779988997994362423191421332339926190535286240780217246089840078229351667011366417653795665411487808753906325601684867934637256106092532505440167664633105850399782913434012571232503077369543014636807593864995195036112928213859677363398003066583868406813822944701586832755351304073598385892939588229518762187279835545521757322593719393931327753884899176205406721150858540877826188662011376932921639477977884224853838476619724893375327600470435333182405112116401229818123008564472842159834020553309314896167942374912666718702803477596049931592206527716694923295978643740629940081695806841445357107769004794293769702659590851979908852995658733368196702468869124883118125277105267229738300473001274471415539513574509211050075361396205379995657291386828881638712359661256337263565872305690387967559068895853257936349340626358742583602545348056789164361414294212613984532672156501677694046150540272755570436423687177904168630563631832391990446198196004540604640823435009249270598305978916740859274702387349131894783631405635303250754923568639084137831928962493629516895838939223419622415373881829411342825590358492374893511506566099251922914726026972377803031838967333388870036254023681637359727434831772401401900428007300207594392796234406437113377177779278307532249038046165014769420707991761381999015130599304735471036210183219513580585323338880548478301510073361498198721311086397228238503395261959659807675758710409370682016776030250962751329806852785401117845671396106752489421945556746158985330237624341285260142979382529333519446553220841833394402687803160698799656297797079699760306599274701887080745812699518984193109539600236727098843909433559227978292843714985148818834994653169337688020290666332115016278451085936144983819633289227547254910661953810475893338743754296910102471318978267575788201396502684139260999239623960433253598305036624399422694419851047926012585927321489289109842155381089132090018664726170891183743087626168843561718375464757852526513589230112389606434431142022833491743335914177820269930061117385275224363976749045495794398081282670881978744381294113892918980458710000952288235983181304399190702026118935177744688620487167728165093450020106364779683445873404438771170629615092094812459675315939094363398783843600049038820096163710511892908001892857274283531870684811515063760814822594030898881200451392486064287810756622514126504939476458242622156717385768550122725831766739296859647099098907670725181484788303232200245837561305291246906820860307404397046110695188770369938549392725717014289476954854266123027122130089245324844020783763112299077597981795976036338825683755000794830827484402646256452339724476528328637787170139341359090973281398980214692577798023527643276622487741561452998120081936026997392223961823672454265440269160683257227385467433997916926325678562026749693174893450481304445856092270028486796056709674046074704629154819065659494633709560293245741642967009467681218389724862338380949724831940271544189381831339374564718018901694818324377746671841246581175134755039982326612458454962626788096238943046652403640189718401517818645098625464142009213500518166889177693315700247831731334351269929816026884003634032648177887650403379134734500024499714082787423343275312363397382539344280516438708335693701735536907198913731838664287513194081801993980924079686424763476814845882646286849677432429722010553315606889852941241859148481586744722536325572387190728310910431170962927798431676344491022636858229655077327427571197558700489674973993575988701640207860747717709914621882215143414929558425471263109213778415225181033865136453638112206453932724691118496356251904751331516064331309840370652143712068877235911929204880620069280969823300224561426846668825403688114859958480773752025345309187555017212404198040901197696781840046986728406451354684779029955890534987189334931855252789049826076450098365275754508911762168325500977146115739226148716594957342088036437184447796258828664580373703150728126843100286893133883379336059230253660886457624941117293095124836076979151021210772748174889303579788968551700843112958047393912083424506951371879852970655560721336043542567308330424293405972681242910631835735650080256447927854439934929528282125820005878995038711251683458820232185626056847098447798724212240421731061749811543840465555816721376754060949234534541173994287986261339141101802498982518727520960227713349776657607000000753978327443108819789657891718436417776101369131483771251111454646709157323613694645135748943819965382566784361870152517774727860013135178040720996738914491358977098181562177140131980928317804035491418851133560764811444728334567946442989235812773744845370298143852858719217117805225830992972186542239253086962827071883909635603745155066222101225119630843145090310306785189570324544459606283752441599911617622114369512765375924091928250216943781464565328023134415814940681117225430100202568606586547709430400705301894229382036390776936475068312282819071553008544644231523198350622091073391828372482955049460264256822187035662460927527437729206173092265925987375316661839506502816870742693078268091719298962273168688591077812429263598729362258668399159529034274854283826325247396753328848337408146816460073925028776379015330580987483084198533088400305336361038865123556039106209201907697627852917762064341871375923700391488612459601820156158674491024322131040776924635164348573838027407887114552553523165216944208976042000633300365424534326075230674678751203968643007302833920623267053372643196633709261061133460859126760978552221545447208867090019518429692790322734501945961756128590113624045690375825584730660863403313187012829496222500509335124926714569452288806406389427071337712150379891676236246287218535565467153247604771046107739726792248669592616890411376781767570635305002535678415736026409198308099758711884338186574156737828616426543385321437863159745899877015878469448420112780447795368349480028107068672613654662937181492177921292828632113149724574117595799347599403934966847603778639199880856768385382674284600431813633131595298980036299753519849869162677075612166420775486332026589333577478033744921123703758239067135322346143631344827770352014465990558640950452611575443820692986500899892300627180492174697390264129052946367122038438694402018693583783816842988236804358565831888162325209594733836512320275502227777335745169223181591174327329188624698267166745167167193140050369503197226793006497420562146279355289714353341286821556900061848713942104210145111723093998148037432880713029598390706992203181644652040765775775341628580371009160482674720436405600287444061445917416898946162215234406680149127673969718879157038177524275980110756275568017588773825733965227535063432464439463795293133167234354767082280515920334611106356877028248262766622504966676048620410199097500068469908820977331949142576187318814431539096832898930107231365050292537414957829368421846913672175421549690074531160957421329204374957613092440924883134642797945113964926456196073287364294434418037292749898786724799860928307922629827920934930210208110761060375581779845784359667192129175885512209754118945747811818087687977097212422510251602869030565638218311604270934391352713772877552305214161279276456628025821292774064323886107711713037237039875142046111339036659950706254160140150757605299343113580117828442250194464717123000478779635682439197506643391425918252387500453956722425513393061089212517799987457281277309816416486985270310609262122660702552554959403561159283813347455449091910306781759812221340250405162247290901439796895625588336820924066693036658914093234206454955008122575780120347803381883245240476322352334987236326158773625273258396328607510812290122796576429388322830153055664318661911000281612844781797405365843077881008886266643347359860274316333066933980999305373426290710441389473556435280147007800350785993845383996318436660882281034352929487137801814803396047673633493993326518998898185006372384360531017003074559085938035219388501938860226940069354028536029490182805727907349770619142832590493220737983404749691868465889759409573845155705583591537937769440311425763243624285961547658301865903063362808597729788822218498870699154973928539167060225307790537714371088313696203989384287999842375944956729314209439554727181889259558132977678144765559614281626387193872845372626082379451152739203575706548360627065682187705317502574459499767721494671143548501613919214379144907497562844316178970137491232511803174191822716369684416606701948196155740343368877576820677489072244200907350075182880846046423459240970815014414088141949608310254928279640788781145202203802297468681146085262822537729875400969959381002843298507158505006248982075622624206047377565350904107106679271840917303969707347205157039350904313788287207924596457782506990275640736349744423371401967222940362932726633737630753881213536521976318434717669648525794303700560654379020176196191800929572656025766683723389917282610206415459716705505276270085216538140500074828874321295292476475126522458945138980812678916347069834088933641968554481952946804295460193255079673206658567163878726620207670226443473901524953778858142362270228045139773799489582104445740234086976812734827930568680523486488159540388791143981920592140812073702576344731649263845229288656199118769743997539690475394794380894940311912721173032892028415971504358677737936017428847529960355961891444835519422917891217579479008652883533121513288504252692699685265879410147066501428992456625418238900200007200184002085136997941292517941421315023240597281563011920605464058446722549008705339015736585265359665526027831369079540524107539292749318415460407071469396331036422539174686249340278092668980497154526724621588857937711663634119054122506745693467423479134331053766820720212618268079453561087273519834933848812199085862645911018913023175891784916460557120178973315371260456450323368367909969027814279350615288534485928790159112290610060336482895976564980699143790916288712040843482827198236968761363093631107951915963082449145134404029045758739305287167370253139340083761499974211841919650288428688955333364030497871081090271955173888343409104068219868592489432513398743253291318991367897733200381348390155866045439688846639451613024816996150451119166992499125054820087383812889778374196326950102662302482809230006527044397807696635721001586584816549805518313414338360339115719920126513767983666604596680866221676326002215710545203154683623652449973756310699974947730367642622930973954210011908195033696078350862079875005822781035281345744929762298281994511140871505937876877024087094936963284214054693474928537239592820539119033391096122899556916997924652479531906372110002823333633671704636101886572688150928632431968780592348732828535816155459842363208106114525246862491915236662994411800092592581950432044643483975570295334505414171296174933355198160275594228288304973833713070237310385077914586799081732194284388872960409548662086186582236273468932844653613788153667615836952106175694662281828402274921176923935376524929607123912905252880239587100870948499473439732130858249334399125837955417555943870827732612751751573300764751241487301779084365612813416225774985669434649936341143310980201717446332163280259225894590400284022274730840413109403096542877045850532960409064528256167322304898189728421188621241818544930734856353436448449454135475193776216319272532122401713913141518541441580482018819728689645850702964858399827787704477884002731400180209170372042291023373962485919670517255263958032337887629411389649731679041214467099656707537544231221715633559622964113283626098493058987226675179879939589808476582811962871474940986207982047714903182520174813914420959192640612354546835804876668452273928358665585263022677691291231329500735596717828093104930959077525372706372874181131738175893108183516952610760625303699121373062939132362567299049978645307831637474335770595928934059470635321510034207735966443763296664419149889938793309768653261863055299341010214472709317531196137676678340543012835117112389242696203683852833876869713321150062866228537873465313696138367287378798146589708032668467490059247955466989291807504297253289423203556635152128493165967873843150663290258884358278830156175585608855331396428232241911297521597320880981518952943215679935593750313492695289851547214391373840392551050842399999179556860778446263415334716936541636639370779053214333092384347890252530615774638884238719042158841060720879596295042647285158532143566438870997908439468201230313000787214467955717662153316216364197741742374621017938174834282011975787811028268114590420832178060862909569706053127089225343168557659830780963852964481455907600711572553484065535928968828038107608340698648864913895908502275975587784113951416535958053513000720421188032526106392761272075293688314306329281834260752707867242021539973898120473986570983808716724899761374583924560446792412325391764015784600346455082240391094852557146403732194045001829188581583584626519211180349854852449171877542824205295214391606716542181299179375616631191565983079979266916658634230362425309277748121792986657075719270426399455479672231782735128029565874824366302131381402465596052599751961077248075846145214227311720094177901353522027102183851192870330085745007790489277764692332296935540570740811135265740322178652859547249796732606317265940552311528496493252839081086162844304793555000417430628530334734473830058002119229425081023503020583466187146489687845713382479312626882401656833561274366342551884334524786978408783448285186887433481487205600949505640697399695207704018721146175762968567723461187127539506741313679537261765499757268495857052771565045151151842197426432442390359093359773181607512898754230344674753008041151413258318636619047840652732942947294308477981017084671705332676535227877483008628691323152257121160049261934159996050971259878379982709417915098687621436059302754776144281320431600129182496671149370862203401571872431711711044219648184910554619257629190716436391145070358843347990542307267984813585185293982757610714887920498438565039871313248834649934969283017958978408491817797581355288840352008183564505629095870714198898932795441247693437775025935540048227083759992384789669135962464677529242859237858826491001033564638062088292979298629051799240691790182068769771282421735906646440618842842609620066499480004118234433191344419435889935729851117097167409997814159700265595859865735627428657887519597588415985162510128395771578493627206711656417970956847820164129741526083964093305550820140047490703219179440536526493148188497607309641669046184973987892297611489152811227948608676541212001805873441726322811957413230837920115005571721131008932538654868328917296319697136261248011157287079691191465227043113715424466410382950612187389955105597654780941934781770769716974646742317467028991609881566863201398038395324613179213877650528925997557317875587065236861436887058855775804584199939903912423911044341310337844781552056198154188968221866936742436653433571179854440997576521656076412663799275998565815174809849525856557892816657890123150214985392368219674478183000938155793857498529235653033550150553053538939607598937422216774484380470258916658208952079141440825558784557836530983885667286831707253245427879934204720892502409608331952263944982366131458631561309426468301251701322512645496126279805343145805350238873242486305480935179408235981895416172470080854840058828995005907065196011460601891094236666565637527838746021703727437773949070616605819115883055148857382411893090410588215467073361804772723311473246932947423786955555383335462220011817878902030745502779020431274850675574729319544117481923789957568916843554627600304586000235770637517090789136987800452701216821726174697287222049344511954838810216289054984032013410552555288627715194500987466606169880849912878379767231962633615215307228149893065274495625733083769585647960994782435546679868480994032335180181386835317217214211047651163919192633766901752716672363967604677076144104985587193313255682067604700061597575312398119916207652485933763272497853228730557515895852309484960619115469932636709071644531652319819156661054663034993041719344505392745670003410155438854007188274523624228398685795829490992409859300468625038177190585308050399770431601018726047662697417104028652152486666971159257061246907186383133011401810641187789231462420405500971237117221368686162294946451561574387804791584085480836972009532977738667993194817093281824211273265008064273302280519842760775813626503964376834352963435148493234564124421680868717252095413701971577591456772880752757610321628916158977423209806479714406883061336654741408547306337280689241275422445705583671048051735335838478667478573345109686683997904000304462579401553977776876385354096373358863100670087318289579809272528718397985652805138002008410687111166947491344593456628653394679400522422563619054207715275952223867905876297065640001464942526283657713299946855491155145959535646359108843265790467405086659269817967406787143142062044991361353449228361630008588957241079319724449521674837720143086464114200533272572638054413434843275699529674558178560563467024315673358248844489127630569496850048065270363256701659613057993446215207105714096191433369066247631666744781831839472320490920616710087466151747425974889275486758532997120299677980613486194496637032041424277117532788988867072423092454370390235654286245778201997296012692351713049793442414608066691317303841026946666625232563510251415798800929502221114141177331809672267147333375929603052714085086310873559772975132306244249613366450326683888813978018128200218423945378964161997965317582873546087102528425226232086279911525743836080461960161800343766682438907844668667038056050401642655693565164517938967379552859940677587901151933068855261139785530171559130200595817182868816132351055679137186795561797546179909492885917962333707881096575891139502044483079680539330897162117265169108260689539034584373023731188439807225100731429478636265034524517812689344210185996964349556097976981756281602408753537089197375064216617357054052092489067772002866517649921584583012477074649958654169377080675796074622926009023645324718122284961363543302594449239265003332198149994804309512626047889520816699766440819164894678421146878115703116349229872643890675378916879568051974759176027352599021431830834884104901697053424274249869567403727507601758108397158839857401222285427928348459178754752705431599095295039590392118029415533765407839096096876359356742400424611336085639158128601485410786548672916689426703840196100168352871280267114531148411537840257370527857285845381308102549282311736564161936534608203426947967383720731664298429514288076824935741313586380592258921737021662394788736840857772727251604094891313879264872257222425737552266571623145581802917733404751970309008195540249044968408183376091639246741877880109386557417619857020647248117829923255891086662262072658107587922718728784997606275083713832115057520061095731654808058145123950754749493668123346466272510912850583347924636222063587918324310660598491996042939889699951148713051476524725844811576503331105445969282860987569324203851782358431062164150808162628316921404781423616171468340322260678253761515721896461839655243662550383974071828835815023748040039907173359287751929705150110546924919781852093426965490158817591970300718390715109728220725189376881223374330733060115442840076880325408422812025713317259938728790009844855476217904673255071962195863944907491045704213258999284353985573252696084451537420028577459174638241199082885254225872008951873327221368050938872005394375645463132547607554154316392539117657291891593755606247655390454034774980987122416021412481223425668202884734776826639555429279259046652046765400583195441874459185771957292444972670931782402037978759632439525099958292119989945066630401085435713264539190299857886519176205303837576550408511892483780358658742976015695684086280568338956700258411549167261753770487468208070683002741038743532141596575805145338193986186138228603816364902572752835705531955299359689291673311508448713885534048545291404806048979871002933741717496402768891391810812614702703642653500316076970653000142115934708829417651366429247090925467738876139847932072945079576534532049438529324748313762607951205787298188915713908106094059317556802897960290739313572245056518515943333978228747754520129800368887332133626922348827638389555245046804864280212969584869942723729315862526865308770316422302815171009885575933746236720126154286865574626189310474784140134723020012641409205920324797231363944860144810022143379700040880001568056389957900174656995613924381100052440229369303800519355019320846619340005296890666734809570840004897816379947446154977498868923909633024536165430022662015731023279863113949803141615162815800009543820725008689999403141885421645574607371915315521288918911231589701072919961642577208486017450354062316934201086390799240222127964994659700071799247406100446074609489130280953567401785575962998782169751707022167046196384751287235925569727320644582478673683564894543347305073608980753841716109965236416720633596426861682833147288749251285555417390711461747779306683941751325598205708537969245816125929266947300380177563520793435126444939897345105997246028954154173570949720856310096823676454099719127199920106905079818052558215797577679783301909849355833773769957911110692785790538139013037359162179663946151297698489808238590009877510459009174601355693644534331930302758122476111889643451273402141869074951739041565842246092102487856548981671559019914085087856928195669121162563103408882943574328218941501141341300163393561410979322707287682382074216250678726702252903517288563894530235615898916521944759075211215841067109061843073139695964080252542490378257881866286674250396944816989328327579275020978205120248281551695772334219766700232878110288553818696726941339814798081907561890582669228543148480900358019211668575890409209659689183768949237992558114307630246446481228312774043177450306655580663435149039088449543112290234580066232149487178714473591973007270615425561277209907909431667790856222530169712191775251598800026183172450546513032296138294462944045384766577993783612179993084382534418437889914292881017899769629054012183041756338135828543827709016688548488097534582636619737023605254963685275243387404462058930599489406631979468787901063160923582312289858759018400378460838659143147981479598408706135287276362336435948001245760943303942848621250517641010004328521973528151761020852133761311230599407681781967169294981671060229891620941437270965858389801265959570785664026063984918143022232088121723955768206863746584816384716530655960033153563202397067973288472338089770090911412074409502566493626877537119823992966633939109858084764223876321897081389338966083924925373677391921527384160208039627290812414101524461547074715756776620958371653528286164276024289916316235829670919231414244183913072903944610536119449616104602852615809775316615972692407230685681586188648452008012316263897024079403212895580247275742531342712176871586867566413645707686992812902745742827145518412670752189056911917592721292492586824091607337540858935920949237578197529450610691077268148952586288419026435771136554874057735733627405384017906750700245976031523660955370784740964352448327436886451746592441667172865453422305481345401858654227622383043300549799249643990315246818361939577278244791896371449913412349884087411779653771817299113972060576668123147882275066152161788085182961512989103178329152456874071224458084701884047806084525780998828467372914378192974213453655776291733945921550492122762885384610319383561688262683783575154984551078420764909763904096530625536994584891784016173760518122301533672241508146526900060302595805095953749875142702131484454900607501001773965712907992326892775024347113086382931840159601709700278546618613370684430957445837692750805985582917815825721092651519535053743830725789673740930070741814542309071344365276515561616300670827672427994553161841203072119465912455539491855890545115117125379388736412473666839707902508110916868171437290364029586318017954652216485284125418038827809391651715061342520265265484830659818378635088062171259454671661593401842257289960119217047613919512525456199955838333740705459511274042040218305861840640685674499280620009997819055950557799847407080688330710089451676113844676878379938904617570141481639780982734208961162568470680895077339596289750581813894233380932544208124808978354872201382830459206587867542585391328912531012937681410565040351829714929557318218512601883982939903570475686613831732270194467828213240204058184211976395534623180414788569440113564794984779143544551386628062681303167432359262282275048916199069610953022571077016337018487151861682199804132766219649820183613294461812091728927955837512070782577615679896896198140814601866852764665453180675272922527748997877943238560693935658704583644120674469755773731111281168631949739770484937677124126594195794351900899940449105077587151363026425135942783936698866003414806393706695267755431215639578781152624483375412108051765538459495442080821263247927274136304607319588075734281948355567624577248112032301852828299667757011633024366484011620117096473939147998595754154297652306199686800700200289922152939188274255948585039632249507871203104257499573328189664382574570137993135331745040844003902974169138929384045013036892028588345278323648256777129123243034718390736254085397741155294852994175273763233547209489281884953556130898785312578375991134197472003509468526505385988295719485600764055750753381964148727137332958510756709406077365917793734983548803662487162774769020303738208613239879781407355884225540409856851966621051148376869584209105532683417926896167164342371702555071735573926110509009870581679705534589934829878864976552012927497059511527793462239031491036376227988170556125037818222189480856246686051467227084967058406077895674008648143430619552332932366284351521210990735013136407625073449153868065846813335534524215701730800493719591153569663444571551002141086588596067867458404591942517678943030049063801600933149825926282275926266391055800046139570520263543911952907728661210788661025978929572380347877368391387693090631714664723842663589781945046415422026642020035263868435304273488108689109653101815495816058328736035380041116557862363994213217813888844589343804952286535701021769968996212962487671291290751793643210417103313361869885323530207101825588332347002618539000705167397490174240302256602610688564821249873926704329512317775106464878850253432436367439274886856368755349023993794747081390856538877569128146385873527938734519447425703008316568169025483183615037653923671563663907288111329583211225433714184733866589967215220714799945828459994167003959613033446526548623622943734155688453975231111349294752215435889350944082241572412880087228506546072306325832505114694772723404335345283266481473464808621731477111145078240106669954049220968657262973110996236952787898054247945561778223427712866060220863934373495821287525918207230833981096815780605919898695507333876337621871776853612790922753110982383661866881950848074943736298156708810650194938127460035535565209881502344836095170281613463069857108277904084434306629264765433811475037429318018704199300181499147801850306414145008240816872219477967900769887575259039014328521700820095643098495992043853987436793059545552957581450795233291377181184065688981978350078551193501329643854346013476505580967458756573405808991292570352354676356782908182342215043153553300590112497182930279090929205102577119338032181868715963314239713182005256890455820520424038961829313241669879656002764187893923577928601963808823168769962816788322141484073191497784358209850926615826728057295727366517200945284500465180074777953295797113012723052381938986788958633609131864740999514017400992689448448429545506764908992216858763355275102933227812175681480372812408557342443237462398957128911828436259815216662686457950380480621308518852274082445719894502662144765961653199239633403301701471985235823372430191822202553550805082125638548175336762153384775447903698395895549611116833094559398653221008717891301781536256949840074162765869497141690695502369032036285735564595269364841147257568432074807576608704613799557212800597669662165328847366058579925137719036533502441061626428631396439086064351608797661043704904930553118912614922330139333663458150587740425310256796871791849179940680827312632666175737738986080933875631164139376832314247141035254614204677096484097355773825587828433341201029455284762737979809326444778244547082576361489959581868321273414192481647130997183431699618210267436083643308256534268859822562766420978894221043685892847976815289411272859605686044536418580262962277072754432761628299241394653333685007402963681879516377324772280406044283201903182955368424849909630030921760454971221835403152227013362850084118314084784879583777922756258207246859614147489901527639639137149553689770678379515500733478719894757424042614711268285457657607777255804226168063785447797809033697392482453850940582078862757271543170871316238951885986699975242537806058059879138827013733777154038288570700102730134426184336985981046951457821731757670064308881099155179649860611096298974306000550150902578803398182432268291627285988765910849653766281896287786708370726839376836077263569037293550402283293441376602394339738168243058821078075534998988674274206639082384580609254268520221409271688082698415091683249662446312766301326596042584748298245983524896475114395468967143836969516113017814581786714171345197417904659374160841085109930602474355362098582955777630458365514371866600080869522987775604997260104189949082167876982978910801342202644981501100502280641228095440754646451650150903844144551068855679018158666953091327590672240034359699220946746068453093324005526995019217902563541277324869014675380973977595262848955971770953181744869228464549217770624466962866667763629186234150245085045776001961164118503660727527232374932058819307071355484679518839760518536229059839105832376557778938179855799387865819679196992561449643731613125967521972819343707839887665607172313950567814372970590859012282884635094951340265012489873567751999536519432920699236113103541873744903260935874558301166259990865328885106747163488091310765352044523955913614239296507286788673558743004509405215455420110199100587376476933605697394667665633278685212830939375929121180158347966618939443012577272179375778123308191581593449909691106970906074551857885039401573776053988235064848914587981844285679371933868093779268219696250567325868260364287876565928487977054112856789211854927200842921141961537610082248054923847989866592140049483085888477405247754237271784443130549774339212739683891073229844618150418095604684970385152094539568174838865193147938366202494750630713576781052501136975178822173875692874718750948069101842615585670556951549118944317048737549683070549775333986246015462618292343193407940730933395529467597365340863706898856629588993351331461411084496680558838448389971038640368942856182863507177934050359082875889029073185025444126795408962953908888404895351030859900346175218322240523515611473173603459142846998447563662491229852970081922072730001082276892928743603858587525166405122931250000439888882071737975963409708517193184586597068629378130468266261587239112237441909685358431668544304709392481446710112670642426185884444406363151673519974297507943056196712423364940692656844021429368547220802654794629724248666260282434094204457313590755557537048747030811896644056683552072434808657735503539504250960161389512331596172125408299144182594555170823730517341400382881538595931258453488808041059156929129953966176147790666323328335758802183511697366705806760202167658041872306254921065933824076950230530140604860460664918972543804469296370514363738472000741052948174434160058011411594017245500668998696926492985187780514879756784617152415583008634518975667849712012591965115090083163700161723351529097544223757250557312886661558020372931316303900940290467018434937576673713726154157626841063939569765306572814114238331112105193961263753150457077041423829943084709240881739973598008314193446531645468670206324649123309591249172337728640233989664877346102074095870462727610930657600889776287291525489144765656874496915928013721130661931239137277063953399727909852055508319193779290063538912092710742759055444162655833831897742638420689592230345202725252156057709310457754326093594854095519199292039807175254123751583968774403470722605087366192172152844102879479055922284747528314551781152603911069446949297421629605329601186781141607389325317448841075024185281345753353412424440885596336717129742953813827158354486268238973445158566603929931157621295005549207897169936717894241583067411422316182520274146880502502243399830621050117406911958849013924088318317344208510575775374839653528552756352492637201467132268286773046543166531265510393896013570704699652488952491523440637170058132269953557007888726210570144264087901306041934185264474387172632768182921089182256115605625210837271320602095775349438994835586373382638041529259242898455478724247379400064320129156726498591600514186416017877479651960759777127595496404972301246261702178561838360080304502291959315618508066564674771293240594031989196827208954391543436720879756267539527178160264936384656973005025887859590376172511397397848925261794549676848688101564630609734047611950986105348294497106455981659112003641391359406333993615861703365590006552240506147309797442729233216222642444831517741430803376027867386964752236730637989124858419760344562074952940898325140467094657671168480620296124506002455074517736663914782809225706962276894404240854124322944491647414162438154730235627759242331461415747669992650821221806045443671930842064799788161505342803215997747759772342679958967352975325021486457491056608256667849742424487058286668913094633077381985592453930895485701118833320871883685927605705173994379983860941227733003019232770254803327100364596734619010631251233711751666520919474907383887181626496250586018804796789833358842309711404326143698682079872218960870904376154311634599112953988731839459629849859727691012128592154588672987340451651783727392495248223944561324318586285759902197850872812123592962857313869202142100906936288126555067782085807902300552158216713914971298066147006011597185061067356326285811101800908032230485662605653193953185519657884746706306064547958044843638597204341855946343072723547300445020272575171507318402229718002230323610584431757838828054120976925543570782828000353819744895001236734306595359899065634203781176056636994573488057702898451432259439311491780727985964984421232674369863181633188271262085792861932679532056373554242084691098861635110358259683628389861954251925990963048162824335191175604312778013494464096157511312736743887058982978385162453205776208153726625245630445454066560188870595853851583703400736470103824989256929680414998213222044862750661569144234137549132973645371798553575318997851134929856720915305537611943345129578032516679300804755875245703295240415216873840515753373857623734540258566423039640187498022294639025415927525777958536751643498293356680163582125608203099408167113135743700886591154520729487235762616042267447345863222045818247040683235680769057568708236830901502138176996716811396483917176544026518697484512838845497807018766818164750051131984663125769365510334068286643954266334062875628588859987268765944412720491221236765829293871540110876934237638043280340182538874834032016463018074595371848893973666250313776198014871650784465190273081439227783977261033064076483164216775474612553733381488154750242464138297727637365776647442897076490445632285199823878588366508310706140603612223582213780470793936708528400304806642883287012669076788202076141711362339733241821103029054339848203222241322023153151362732928567364084051354152206438774458672254426071401378821461495053462094591597034971935178125139755273988790569520398274022431124074503905649131986933147247038284095453321086795919134183684064702650060896512835647073891723139415306772053074207006302621438410983568551840605022526155140300234118413504509411966523294833157908425950942092561583172705487098123574494928286601045375973740139009997049867404899389447746018850923145072751526842243124125822872557409940252338407617588315779378426101499525358514519133508401562648072861042582663768735182005622953660549706403157957173133266662764373562294104455402299877155583054798227648363678919819531048619814759937150369019861441560067116857129316012776261807301536059800670113227857956716981682633346191181672904753553624744133486081470604369265032930472477015702112645219663368152093253629269161384847406630086207500311066418855407978755407617801427586373617137870451069917589145235203976738994151055950459357261424464983077651453918333923266812024984514940055170931186968102271562409745521858006578980288190652278546581692595901856699565536972140173184789734302883948175430164339060257665134022430248239243120989631212256247547882312640439475585113480874049103590689134089333915227497899368319702248728779805527214799092720931401931681543946302012783670847814016335640787140534311337557457468773502340262436238553392354594194740706113111061184819533133474280733177063617958398236868167164734296303133671486316986902876917695572624453899837808221923627746487939193963156461215325747557327238994063471879697879939685657730126675485239693232883454464270278281787229710901141544272266182382365144629918219150423851949495881030486574448497249520885871583113886960868128010648695058963799928213095637105046925651792140805530934761778815027139016567944682757680505530646823449872450232181198082856200593445514286659515154750046885110237104028744151361034492288038559086051305630911996250140147435431814734903906700506025901266718841326722286355755992344705928417343526539251652707333073954024824393071236458332233578252835472605985485999847948223728027297769659396971191085099637544793752173183402577804103504330318155757722262434706630581574347412611467887482586311530220082171403975705905939807791814642306209581688188529713831819127380307006481281380616270138957290729795071359548091310697576239623308443895742920785286291705413987997664400897416844074786391194707665902824991817412703863364198700266018183895321891704344867997954041511977550598898266251742863350152337096653098006699400593144575091648360949213118786908428193018008518547272172581078104993692005683738430432551934207918127242008976329865341716369829582851732282442619223493844964106760794326794476761365140944605118803223954953192038842057743884973200683276945368876331418947132407611422223971658201688757356326359968259291764956830890803487795908626003520586081076190222884075259348798803005395254198493756743110343408976749314777857051711828188243666816426430936602319766088801203342956726582857478272462475408059505244273319288758545509270721208619162160725445251052611779934310151200297264803890650252796209511931655585167887822087986929065466893824468595207080830963254716925317898221920776387403944496285670855250892089709964078159887651758782971191352604825675154859228839553777795417740754015796006117699551832092245258189575280774619589318417261667996106621881200403425954867064328514718836729877298589131252334909053590554344786704101716497112749271249593509981190590617007191792701174731112319903555851224962899666606791845999197341097990889218499756112734010867110013104619753783331825105303027414266811823839262315751908868661382502098682535822040597738251797799253035911132713794760901043356137052399953758102530796976446607531627585629436554396137541849386192668611820356188719050075087182296876307030917302167146916726999683265749603468838732871949356194521080755841063408507527774524611060574271097612550427955936958246930424677630236891244182989972744592275917834845999821621414209981783604210613523144992881120119189088687972770978849530857226511186729166181020177479248066424001960210276372280237413820986155638329758376221321261814058580118083030795577944495818912913681760927885210559643296983875681137057401600043249422618501801951493073089913398774297922477761476129644009085423718629635061198874809813216739872485745327519133103792520639123943468589789030568231977870618069632737693518334674594066499648291347109192154946538513494907149369399130543002865296788119560521357720521566249535526611944090754266342577678448451328458319966370560153199799280655809490740757112611772549810965744422620372869546655286259747757168626956027795276371921672051099575367583827529251063402289484076175199213639881602673035034145398665949593132715833260354671571800461295645449125283726238268118305884159961500009603037300891002959553826056301806349722809454483210425506789711770590504029674746861867992692834083313421581507899679842296089012557739869837254424101432575961484521417030565460521207692194178766847773806456624078494960978313387663278219972917950596528585060601920194192469898260358549247310893291701571676274187667832451285871942152661459907949166122535111256036927294249755174295164642097613587637270660315266798947253005805027903831409960205350556271337183167205334052672382230862212847617603156574340697644673530485128485007106679288484719129509688122123266133714009219230413154666340539771028536440883847925523154338799495101719041216026505704846751673450023435918183403727961386820946243512430223002493865943013164549170951465973852526358880437931356163965488060315806763973134646144753662268072528775636374888047729836731710437821057361376508201924555680207801925780564105030784696388640099518490888674790904166076618382595256374956231108568751215824952188564357972253440527164428248454030875701325963729073565256397428092991418389917647264973927579170101862688221885593541024866729418066497507874380244366663043893925646038027309682130775127503641182019250844234454500787476921899203743868668691898724369543260056314488470772136946830047701365896623035444367910028934646293668059914023954903491352808847185771417348689627417930985103525474074903697683058167092816858491186605212611931945852505883269080554982065734313660355932345337726708445601611789664560180860396794974161117378521891150020224012366387863145861810947057819429288818936838008052066715764269702649859259715537295094269983745588126067148989097869726092043982668784739798547012303920896237176993378184526476873786038165064978956426285885718284473398973967536487645356616485456666578737476119627943106232846625350368030217229755349244217074980267784206390311444586859855825349155367202422166587918078554525612394953305227216188743755872949894278705356275772610346108487320664670662127474555361866647740498287927819014953823203449337594919512632859289524969242058110866638443281745396203944936978309607900451141587649761922266755163561315092442864714106910598131270113759242384268300249880393565789088479240762936547542343663208691707401146713690973822844624834644835585471460423333571525766630749074188765594071531764686137410128493502995374838343587368060612088915517857101434634583592095282979799066894071085970203381382662230222964040105815092801391816368971755017508239871089814203591928498989538214013425110007583111322718368822905886150702975626389993023086497249138127752088449324021718525775226786351250098539115250465783212772129840083068986521943973380141156901094759323157987217575988234840249151019935253383273488231739408021022952921214704633429822517328273670026055181536577542490733552192624798840285166580193548778120723642149264071998431305946611067527090834532247448447569818723416626561858940944439176591168363344290777894576728870953305144653673534137944675032058595369068679642209904709472973827512049400100406456178647569383300471139503441856088994204594187557301289923739044866599253518546719175672551324383169315122708143747482372309300024618358440205652342633251771445327505175057326877448760132535118107560251216447283125272571380027224522598039114892914965843154900331170967940504671134227580873067776436426532013145135349636012772522665634889871714186241474306262526305768636489121561550420897143057817863474516029851855416790994351959143387956702363939174746729914342024935740250399598296015611009499248710366602894807319194497877933568394520110704716552861101067157088141462907132638253190987666734629908734476398245230563795215182367358936133647134878240137191096892034233193899236398872716322757535629245182629888779582154703901389861749222972235999102297939335035702051461278330742983597702435813638010783290160929382738094697478556228735360111786510906532373174071730801585143100819297913641447974000902430663555147512441512575459500120784978788666082900882530438670810199005078443082929070018129687904672692677010104062973048397941779006450405405083707169720690374606215280750032253205950479092494020354659067689335561061176361980944474672838658403316357519450822421616050390116496513831555165858675543846161291768703559861363826572036874126665533901609935712941152097629375627916108789023192981318704081316029168824707704742273507789714778098379331807055064738885948284848125057769056148407551209545235348154630470560957820633207775246245915619864081515362575776382551024851640389060396780175365724556624570000214966061383387878008663295353066490659751524149213493423280036960751554287626244442849383938298680149710653236879928798859144301251599036123989154708991288861646083262006097526431253800793885031306624171027355971522923608301126012029818739866181868839199099709497019079027617363327309135146824868397257638205951924664897108376182586922504739426868001012362006362468561877532507716389718251033690072247944499441561965965641737627216825673030469023409892543252399533823255718286904672562612246680458383274156447753935361612978972673405602522765304053954873497265480934820485683089702524290057473529949901068865668879797267486431299689178845212726968784603208397229420330697235658253442544326850266151719137134763269118318235240949421156671671785269918321355895656828657684464420336342774071030019680714566669268937689160821747590956516297533307657006589467863074328404380475288544108952382373719153008629757543389996953188170372782751435588686721068554057776523055479156287447605327924971372722375847527492745214136123621924180183836036651623996217671215372555454253355144815247111791083343432695693155056213127929031450334054920657149907947027495754135554589459321418899668184600701800172990899715794733005368158338392827509502295737667237312674518792855433867730014126843752530364289167104849219852086383499476729336358523296503463248800707992220978553157073631158015848436046804368398590508313438428225220422980084048398614744558110348665349355142395768010198023277437008953253648497773068662320906119451534703695076450935852345007882753573132331712904922331124198831337235797791020233510556560527846222159347240446081394950879845342480977088078101482861336779202726923815249608550451002336717587375881478110450399743548212618101527915378870196211491763899975555882205226312393717837869770681634493793705486864347130920859934326226231900543895233746232590981431512467106194585049101494661861597181107059832530586820733813409840854779717966077833907011864160817754509913281549296326496596650443898662290861029870732349575941864291172402133583637426743885345490001111294947800856250955095517796917273301176489289079332022250842876716745911306720345509886326868544772007519773353620956022117171059792095026822204634588178666906287509610949007169829961154184659388280555363146728343889335620852970897381786812931627738810032371593247886532871146747529703153150880186160221801718436628873024355252675259826068616231059171462905141067921698019458325759834701210594083201726891009222652018404184326800743412790116004400406715976047618737841120336357043849833218465453544911295571349713520851578310374071761235857898414324706587074734704172011547338024835219297743984067219727359960280823350781620226522253379575390847954907620067070180007312215177022107144355265766926866759519067786900401940068408842239943507270331207440791851946995830495593254958571327338028403591344402224803155492512335289373799934908955128722889636331295214906297550106932644326206668701072676485458896556667864380697349595233592689955633686289111695045379017522260363577187860635580039764534537220930816168942702949064863380102011712827881149479096534456492370542438891524348854075582283683931407645387314299757277315793362994558246249865237039642896636187201499979666403462224567049013255272988135173365365074800752455216040160594452880802874588430709859266762182552499064416377652936376401348526146702111207037231980670789103548036454972966030337817270590004338868854873879204430768255594056060770910491372693434319176521080610981634217179476345832705010014199483459850408838520919774395281703243024555536894252768192749429865449062740422509356634957363797707472470404906603977896678300034264908992854757071935982706153622005511162757954682456892233311531958310933791377112981073720427896956206865218041205446163269921502844463844595577952535151616410120999224441705235952089568625649047253657653232696326329637280027017029444372679405104680194868481448048611071885857163772815263919322061727636946051697860771831536280509421340305789048550275393236608084605198886509203346137260811316190381023190355166790191020629733316254883293589890550253105200952583811399357739459923990559158926833586502519461515623138899944453343325396333088305984963348253362700144432770681194073298062900965121593919916333549037155088766830393220454165033931045903998614007586203224163709514440045726720549014309591315106788417978969531876694683732543249339358257640525615873684954143945470168514170541929998988266691181698468639448660773868212438962619547877760808846319790625044118745293225784666424968274945905598911176163318405779578503698517126625976104411389696312231411702261263647113535051788175408754913148058460174771210933801346056672702707925297103106656289760148584500015055931663370435132834403994945386954594621946639845369403473553955846481918617794854802813116104081191385611094074691071710138647554668805307993524228853564245209885895401195665888451327359351751401063880753746405733890924094868365813227997203101185477268552927055744187368827963988352497692207852253906498545843897976288022712693045647321095888584078208347382377619849749765521083056157968308507967088789283004927620317487163514049651698772412295698108606411628817122175738777574363002062080093812920676940184620151898936694990724739573595941030335808000145915588426089427126993492314293089432421954949765205213167031292781727544608866201805350942270493744539053640447010019504209698530099893417764952350354594054167073015542695700150528211601723485130229388918759248880165725962299942061351937456145660793104507488357399656088212805328698820080268528130133441626300255494311282008690813815955919989963558667170114964633830985780650905370942282557503618455730166207352031341148365920874462644723548604602068925802056178652172747176870626449153933844500096374203263056230252514329243279557490019071762436556847484505699101829805330455724106246644243989149573381572719274603742492307412507927238806411857552090625300024905140821726713996223553919607577315255139678690886968357176944014363948515105675121069697421705036483572022509784487697475440327892083292042844674675146712082563934780569292019989217918712480798362455863274299526776622472522605761136062487021502016484402198870059327231723809590985020777688043437951386703205505428681615026523864329764433890411602427887083718908517138035499894329415255783470581078843941418008533127039188408667462298703868213775510463526505418934532771466473671499990851242416416288163906612376511949550166862952071530759780466572838119064498825952998578042514727563656403228494272530401454917432488854555504508721151289910414265561378084371947529546076286311988907407395081282649532051440602503636142388954770934556293544232348169860182970029878414139590307108750702766942500968769568003457542028870707959138958779505433802092663587999177876742428111927928974999347126231252046699444900129850956132494731331270025196738630316465608625463783832544800771903306236433785223704957519941693854444659416917876550721438743810273913725125028404317583846742129741725717752386870904492814450872552987330425034078830613255394678455825560672543246277193210753992041317173225707352450457203890277641896384488140429205715156524449882298146538082164899453246184953907150395636750451163204365471398374031191821397990339162180247699189006596611829372946675621587977613579157616226953330880441129172537797257634754374776237265172525837871257513716272807180918711296954755490354777248102632509536191837199485526670020405719762421220165038778882435967982013164571325849593418853327460881361476812018371351809483687820605256034639152311335437714947822255204777336714457677614375378095450251793199361916026096254239199527831719244956416394387308106198648460972604787922180793516519899961541692637521882766707128524094035699153353506411421956693875408383698239014685032145620401012188837372557570651304577950792514843550891969475899997539791210756574857536279499928077052688253198677343148040594501764433877235404314043179306648640800671314470922273613443436552572593341161712750345454072343870575545580056662005978532539717840207489202222789928156200165196762678076667210476385174231811688705138575770406599603933639821703866526081258012699608413817088714541518639530539837203631663609320091110134002424751280080458483029675793503766104851022145516860779943704052347999254574792662395826687233207819276952138910580833990052686795754781392144389233717152172530993693997283177088050941979379502662278248176305618233610508745233732464846655799912734484589896789217421202142012928154424734856002016076538478915768709423333521723988540763484885302869169630328608726273880247656910207122113180766259996611281942230514126119111482112931748804399628978890390341427254400582933387897707966699693407222288170686473426783040187031365246531752607774704849312041622996210987751373520308732781644548240719824868797917155562221843704572169351195493176402245844342843066450101380872772244297353081281672159215721402854898871899048797649329569322110175530663245309663765600400905658930601446435773092875537445474433403531910784570976328368066852474822250833968642853768311301659928618721387344907487597654427025200638058105338948011786131984137942497219557912301277885116249835566936641955400344317576695989400960068243429438882438075110805140753784996779323284604837506705230805321606847312973945755964100315407720958545226343744057485088056893264707710520723383104360741888887836111596772794058869277830205251028538604357954604620554743294562296464124886834487360404890642050160017927569466380029651369644407524401731875960199940586826460238349040598203051181635087387107660050972897487182135863545091300152185294011748992654678955413394598625293497941683395046115110862185024522994685175558242278721645820688834095722207286583949161230921829418603610547703828489183488846491758451855833277087816399699876366566286280935219566174037303617356550716818272122486653454736199468303118756201856365874806435389598411619284540498370277635423569978399538276102175480311766358207490723971130972308525406718781458983314223974015216251551531522603256711061607523758426847316380904422981982685120295472496891438519445857814058663627450333808833776138652981302894437464181983986365302895962984631058988465320174120599077949947165559315013019499154824260061005775628740698380714334608265844724267051895709985631535968460115612192575075036000163137259046978891563072572317491180855174157794753341275029828306571663090402761564447547919525164189078736063075530673208463753865578512685536272612106692635379459100178345362814592975222154920511834073171706517783217214560888987279813316171762730073846680394265434379418254339821133622037945595488529361585907737110623637583983499849830331046606063515260070251905626465389123847695589366911705316612187324161343101653963172242318332075182511853893938161962000444190990226365623424280103802761911751888081058541660832770140963033016953988289311374532692356765048151954141562161001463882730736289531342252016728055053632514841849172268236411634910829939323094535204363329976848523676485557971644623324786849230900586254608931234931716775099249803535621376650279711870147535878384230834653192183493670435352081138259336277535186097131007647628208559680822876868252149222532311235182614671117459571998655976792173247182138508961530902721814592840764060556507360327638635269205832390771771102518397753977588423664177651655235142573467246355882313140009715727161345528154724857844033812680083696954572237803740822906044973961773414324080312382910751731227619440667980321641315815788253803848835777074176211383334170848747436356542377045395503867041053959500406251899363708038909584565329938445748915934882893749294820949041487337178650550500595393913312102831428163749289525726356396932227801236222040745091410173779778775915225287313526572009488326332860313186344695865485368444735590984135181212799265025954611191308731250848420997197331928780890863304065908678767032076606387944530542385377990805840254495176514875167209995645967220927946372016755288901715150313848897477491966122066043938332292068362337531029640434395232006872647222457083923910954920137151369307118964844338228526228146196299344546769014091108265806764100428673359238073672901023044666018023957426508203825161960261249304188430246395951221996858476300916006740912521076496856582110543314213330692625504870843530892764830485247159004380185150633568634761952158580973879898366701088397090895807093608336045948537705700087764452837282653184528617740817385874711875398770777349094171875068361660391849849942601994333856876092863867631263617501229307121292788519569518848963647653544158577177956316403542286474759378556318672593559433641869102670027462920467686003250087072420007030699065900043712969502248088006523707279892005379999997554773783751476552972850949837632163186269649129999341842175825154436023237761017301754629703776358568760950951600435962984218743710825754442020708464601498510316792929757638457135713222921998434290140176157444057231916112253317321859264907969004998033920049207020015388033757864117598441944710144009520099225816630840095975718788257746950338552922370250422740069722175242410538134132256404708329112119797931889671809206953898174401977155190452411764107936872787835233743727536353612686592076513133119205249851341500646479076126613064764678966407824766762609718988730589673390101613956540208380398662891002862144607581284217747297407352619413629517750530651177505423407022134114140878939005946984527119917377486520445275722850419627160557135824290169266901400918463020531664014729417914074499271734167083932574312093666420035471243346006466196667763819970706439586355610851808057349678652970118682413857572042833742461750186320569417370924372573522615915707498057496721451542140382677094126025092795557390750388620366890861054748891721539475448837361875486979204823259638813177900772889956544473387066588123465643909492526021683020559999803097746600904023786538628747563492555829119659070379041231447994576478750448043064504534571853763400034900023995681523049650317218510857451980342381921290474845770255548954053574259490650136136343128605840860064942860428470703930277099289177507760054968704157504724220050204475465879524176790647846549365788935898152606142202976333515714275434517274506510074636341155114309410411031702555657557108270591250646704588763874420612634104952250741120773993871613584769189257988189403854313859726052998780148469170323599756421381155683354029311068957833882776403664357506952852156771514961522409717091940427051507836917551095083822972635835743466266425869709184935945303622307617687689493414042609215186912553997985198036922237731037976502073434725907911935426650352492257109731580669914129451408503264849179600678295076341059683078929704506192065269307561975793619327180842030338084236243225452980014485808979027776459568929412305583356000449848383391521691653468900473432146219501050944578879554654668551775465064179333151876609476797419878788930094337760536931770646981430156288836175636271595971265299844002920803082502736215099897057483171969996974519002823890704901334521862713184467244447490951578473382296142610537327670380328174364268269297957922223667283114197421629633123888239881568136505832172123454014817759932753060626792910952046895513643838131336098776917109277039890980680792293688799094465380923915045123932684722551442241018221615385374441410935022954982263370036305525372421004527154559988722944046170859264858978017899688825799974079925744449533391665125560293129196893360053307100211820186549421969693544278436728086080730327958920352920860145047026727490865906586332304216989346442222123956185368141593464604361321920691281501045446111858471331701641738066880968612166051958405550951597156342591326706714580015493670642895949119291994863909448910480335087309163086328269656202075031918302833650446305650867367340316576319134140455105008948386637474297435105055205556283484655084823965810275947563140880931864756012344320866965282426722563139142874286839359112535345464928725574169817033864882447852311298664170740920692276026594738374428343051812354464561297679405157228826687826531381259173484001800385680758962118272968023448869664071558584916013498064944197611417288978393896659493976786306575958600909392583231837935756917161342107987853635142171040019262647166457598873330072709626852593629730106726084270382934867235506819903601070983763054837256086250404255715223734361872490421714820736407598235105488775363985021740891828612285865387563979572787107752870825410129468695782771976291893140104517407010360468052621333346448669575745311234617982528947938961116582702534068620522505671625039881182713002916924786154118422820915713045465925412366190081940594891376850834168037856491527843948820665786362763940144628871694263565449285861509803623641768855827935613634217457483925656699934961318534931130313198259286087721543617987021647084194203890153145477421597476663032223492561748535202056764535468207640634823313563012172273197774014037829028749390801193063000834824966756072908965726825553932881213329549214428343073498678028938329467855555071125557901880081547812931833449461404032702747018536722667676234966911718910774476727271238942481809492987830794370130453451437399768829355190808328712264237130027329956072916315426705238245731364744900484016064081343591913930798839333636952782697568389354231871181495999398283768849459238599738651843420976390301278664684938694681961356577287253197558451688991455076909623106745022724832410691557828463136383168622086242623135308236271233749107548462874285222099155515480044759514491274631283366675359455623831197706415024732124460409830754935426349639122087428067077402822736594070768665647644479186082003704900431823596037570917725605461633932969324910552133016979638712328830115811049633869608044349262288192334733432518505364463327763795379414309690496423622578157589891227717817181860823011618158589903321160681576722514734962719614691360028132406287939562280730261437069411576159363746604134850785934000471578814600363602506159901323922990113670206540501035843063169275414378942770299031427231323850018049753559123350919527030991507550353464662603678197173441454498005836048267224903948286535887623646261337628676661777639298916202781056039937487268524646083608809608918746703286950501220647870289077129492109871432285606065948718543843358095986327001207936559173153280014330349061940218530575172374016205773811447347901832896854785345334777438035175844886389372456669009210581593398321217101251772181648867346688871084934961136390620261005953588372798248442616090777846903546994757085528734743278604143951526648394260298398744616862108547044833926175374378860579816680939262186577657558114334201819135481370194401788746431490875789242562664912550545807968219441295560446040987915084655571096701828867123047576791825554041821409955025331055211388019463205214000940722017142303643207949597602851285586322531106744406458335797341025160554990761343736703604838599534892667154081016498646807031661143926601365294617226323435013171578890986804073658673130450913156449631259352384117297380952828876924459239186014119273286517864161722076206113683297878959770006701657878456126149634844670374571019781272706277978158544323415750005300956559978590998658052005506532889223015856417893282793417826107122777947920819295937301296705181241968007230997251827719880887438563877772699562652566871600138173389024246161539222117021371035541262921675072112185368621637645518941689450370013681130266997693129634561693666476967144188760403226608993549142716508258625002096588841571789299148662589531950313522101313534748926510795879925663559691541349571243949784209926540471652081318317227067003357622692798318997247940759265227503305298324392444874572746247481007569723843969864610278972995029188828404176570875649511146129809737317471417762690539489936786922233332542948306714335471494131929429257939566305866210173917842197397101681141519270448964432336964119146246697768921179119507203129401832433703453503164246150584164366797640313211135803909371129857208237324286708354775365457433223963049879662186229485183512723368781474599131312623317322414719915149591724752798906733989012971790785554860692176371538651856267057030459747572571777235203961255868364749997076117137860526741819410702231373078091029228467328595098834984565130438094391005091140846412462779373704151005092657688203841510249326660633876780144949008472080308474850060114306323578812204723335685213093658968424636321313379268066152998867449612589036683092943113736797659393840282039349351495695028235962292309746104991344806308826496856553814081963971237859404085776461012242431095743475950520455088316102314850972038525938381385379085118593300840869649518341864956862517996189617761486282125269377312114129933140003171553378611968762339943654779004934727022073274555176891864550358049062607990845649747997456012974181798976943728250165919246257194920779552790498425379130498162083699754063466749026549911776511374488227494853684103072309872057029032587122957067954499078533373242477494424563687268111951952762372630570226251959312678234557676697933568195963882411127414863787945138013022790890617958042627638637831301503831908050091327915856928647863447649076442049910162270647701328244943896057158260842302684937307689005506778981248765829945321249995736065497476818945977799883665589363769352379172896166267227915837655736025167955159218277065935283467177357732789972890369539068048008246367610033158542870692694766249280319796749079808021380594192061349834692499310083214844764727079196291600033701383098221700550257113336702158745128006705845192211109609479703029765403981265591594454035372434671352938057126838999297390584852668597657303175714221487082349046570000120846405254074161205440633107298819980893447107024120556075910049950188954550372146489785748155729716170009096183798641726690255520356603628969278097093271244420787242485557982370863691658752323536149287553219686509649610345825443743110710549608995977204043745472877751996772652475299357021325383291608564838094920652102423211026139094561637029706466935731634158929179250687517132238213529852319710351713046822284097935983273514176381044964774226364917239501814404556715328821657944931780116625198982794495767157623792784101101524091744438661919088969659166759273346476839984896142463071198905304888124527236226338080334216676425062152560414497226617910160770946029118343859111735313360710337332368645262581340165023941276129914828496789029643160807686319405127860559572298902083102960127913308972277274511289834944449405903189735226069631155524311836825338061747315936742798114429058610754752396346500284238219816487939521364338766562306486082728612212063190193731827800361201359262294004294513193568057987618046847402127397976590279423885981561903313426220613641903020949727857914686743913141752433366001972132013154508503184255748520454094675865968676503266408093543749690210633836495240799164450922938236912713072617574120705067917319971011374363705989029679220925615643237603306129641286893117878644980219846137838517046212189801785406839837617482626241355721821772513690088599736768757293457759487761067375902918762973101999054683877982282403376407590740087997700800538015574170157326718196801645455870972770429693047756916479192330856794183332161356612802244407407181939202488033628405133131737345476229372424875979900788730667818629080915285887382062687698052715488336239747012912541994800901734710819257385973953223741175475890131058207212304199820208373110442618501817007764242492553334094065676819803529704788109005546489250949577820492630246424709058376814262669674929463380833545389319341049113914088535037243040957144448181874683559658240708495857480085926788052865922030233263536865819980676808704663728857788286949127857063590005372312547333761319848585519936763452794966881275978927655679938473423198681961902796997710103328502608803340940913674554123871531403267342532638583636355042835161877290785558900326767710215737781369447195953630537487664409095802395125258632097095943834778622972329822817662027527873881974270768486350935612753032644756154410255475325725048937637519047620506743693545307258847374914694638456175445298640935310140241840192203199473499551914421777952336299115702728095771545774045924372659248146658026625873680421860149425862162496489976369864933460357671783427372737938214182108385598642343139799642055236730520682799842444272439018497510834718922571141545417255230588973949028278190508436796978732897463645214834789139474587400402113325791167267803165895549494325442436734879718042636887365621914122865672624952730627330815463645403520141535908051428893811439037607463163276278493204361489623551658754145160629993703142178973995324839440729590967715717782609016057237734861585578846458108732707194849341627114064848704113166758723660386459089836147119860533003197843985257868147507119798838497850460417679649017913312254542064049597518646080691889333538192579312210102551549126283087671358617211048499346197367026318482337853581233530291141507825293211513890489756679206951972247205866702143552380123701141110232267847600007908612755834555349744717851524723112009766849897652572667985713841345618565725672890494844942762751224640817252535147473571005848535539781115728554602135131770729315926998276496389440084791224099382593904869145339038281640406893387901371505541267206908515500395560279485468437140267034359720738796886772581665765922983264631847672214402190108783667238935655888000080614636268188940237972760870676070598734304297496376464655890954606511942824665526820795311461862468437281142415269870254081472153596993943112897265357926711237617171064411753677723935163118207686330911234892640575744615998015260155168266695983285901840208061983307795260919507879632587096499407515830921380549499997743654134636667833372073880072492826037442373724401147296367131387796859045587719749733741525742038151436287196671602779168706923828145376871997896515375846733035651483993826378446214138840234503234203854982843704899378414051222285720192191356492290724145586099128942274807249508143182938872079457632203085899970978201055829480003187934828671195567310339763906221959234773724107720766671955352293009624939868398344272687871270567351731363920881042986643116425878241759023890663990974512394541633483988876693810388695826155106736290597219232129142181687463258863459409280341303594352610654225005785352153014097251923856043554881395464741473190707670182322145033601242432044343911774540205469729013316754024589352029742003870994848052266805506931013077041683996027420490896831003639118384044486209075298683518702293216613748038663935403131836058311184115762075051033928583530319338878334543719034654755174106750745543956309482347154754093529315817569956546952051157330299077805902039300199657097985888386259571598376533504979650307607084578355272657250091866325791295058464854590871336297144544497182341095828003200139007761624989439499052859142544658376095444356537556137035585824711491510787446804299035909266808047784541027494618993385511614495891948296340582717404532128389828139442995865151137233623478302776859554261894589357179446955676822707489260715432321846611840845452964957117057066908008527528426771994207562870995427790949076825299329638682248919144099740486263425160948528400940458769665856059254605050914616112063734366699485980404972682669384526683254969788419122984785083205696827530043980804542573097821242658283497671151434429378041007408065940883701115351942337516452294279792570025132881002469366475521436395862587139482855828237921519760304143093214924882511255929295682868347704846904273072700089728397997216896028576769476014723541948818887498833386922599306490884477450874591165478776970488689166222005407488195105301405564549842152050892059025928208506214520446253372687397374553354616795197569473927217167466404557887919378184361549132299349042562672704341316857759876117188667138479443131770969112489594776127405466856300015508701262880877617766984341227882600324248973519941397614495853905657997470393269297633319732605721419142323009251073079143397811540895241499580961268000389463503134244260733852073468076901288510010807618950441838687811134237495497247365152519461869719282765778721151365897633680464218418678729632244495409917757941039157946865046998309877642480936637958100656030502013146994480392022165725329347445960749003124582177083287258573607540420463300702005134107496354025259982544717571675200840733826973884563007791901554227556074324929033238496492640089085853861553092562830135826650018285222382144957616158821201835508973588199864596574584360525968698780849040489812457866487848661406573534708277460225804701492338077887114709419529524021248827777981913572520487711480922250407582937962223737582657502874924319559624168612919964626101006537972295809529568673030850957573323955056654097554545311328872083225356577350193984350663625470812560938309869247901035829559070178723885124739665625819514479113473270494748961366338494561781908930352104616821529911382018028663078523480100442435596144643656862687525273638449481543120747425944242548357232704749331359021671263960549467212426889027925550168713316841883413809540382668336217806382892289715580322577188196514012116112129143519662913096992658380837437117294660572838903330652342503230752504330876648505735444768450143184986724435430043584496528622999364011312437101671393233574918011623513664474582898157176418319597767568037171233976120662831755059844622596280276376281897462635760747738582533142385201552850305065139163674759256070187069861459728745506632666548512714650024377000045884663790629040333399296537710725828861972069117153515223674891413683452649904265724025487425983955832671905703101680992755210000646746502153144657297461968626289202300036338730386649642740541967049669168508130202805970941627973730013569344210802942266882427455058799329175319869079561272049623685271096188518852055833102732644240989397445344125785037445012591983206391005597514493600064090519105970989671095441056006137756818641982177244763543004462654381249666849447281878728378993417857496640672187233926621917064133153984699235269369606026044228198380065210970990530892828464004348162785388370809796238467962612687674155997118303235879257152716572715724446359149512626578487461763558349254496213282846846952598911662775231930163808466893530728868618512519809046049427203601129089073566064458516361582986038297160911146469569809846295720937787714819183973861002893553948382576838899948153179525608743943940660463696181973017790557715306240455287310596090479726016638943577081142511120477468401007301967023081733239716085378901350380942249995194311536245709774364234688187618261963794133949410895286812709872665595101072189070467764815509049372291702840069819234643494262976613201655979769141753220521589701465401759495444752252497430126070967121804778477873378663532420886460208140341409487725386347824526527693601668478690010155271823848442938491719143559467199145156219820803450817703969402695319877923721070899678412662889492465518572912668765176331568900658541885161725169053878679066163230058738333397503661275333724043105495364352102706759605375492029104885701369445287148242675181239562772415275926792716407258802106845437251761395618406950999963630593419527612746314108254523833378047522388351097739372657940730907446276135836171293775323888377203028853680255473405373790278978489941616858491658686164206521416434359955078633702385297573047474381402370707206291299001198662538762017881373764120022004335599135745837880112804508387173414511914241400368901673174048915976082751870100170483638457546639793853839875247473675346984653391289689765173118208538870905898608968196027669737064261932350997609354132353296547345064734750138798978481032467194446044520291565891806822814025162933737627715993773102787828280605637849321951104982295477130268327870830502365680967065923951990681073449064727938296236840433240483766868764686176675411207786893169526566460649184710451818318313102310082863571601648774037117085477906950894053253013622639369277975705595738166809581068309302081499463049402213815856001311423521956320340340381978439120414916680709740714789671047400476314117831418043972288946195777228823711017617270974126256573335587996225165956830245442631442753677007084361896039982022529890120977203841303776778540736116769649736076022184757672036751500134416724224231914588812110185237506929868452554049941701908942517359029323500127350300817984923775131525404148775851959018464649098790307415889634351581405507330120802107375180342006224911757723298957265085257468444019768160300189142467727761011433010275446271435410378086108390146913754226990935168623518782505159915209099976201906379040593997802412804701059087196161490135842215510049461248221469554716799234316919886209568876747576139587859244254812623787662335338280263283304955839391413845463120328741984049296640712914193997673523010279225608102179814326685764672224705542040907764319237075844773261354865704502171969795905641117607525420416990633584049465683756771402734904845965631622472167601905390469806721209812016959315090648097947424859717298200667190668391938835659211403560280799772213609786168338963120185323243042761016548114688877066961696977314437068136061096445398588870522223423510334377106685757475337066930542211348939930071272816903780873855506153139743067231971680248595413018062470702412025331387785558813191511679169023051185544078249645224921130474294299439015509491961324281405786712041228736853824087660617998153466245690508751136129792034487872072732329381080377067494932755204042337740818563499492148643883520067902956382053819671363289065244324743529909060052958710849439903810241188520960090394174905714958614830214378461344038231611051273438559958244587735545564851143540686905753214920037565072106242793262390613864466229135896104460774464187800387550315384778495623489000933412421066259740662562914746301613313677693319724020623821168436035159260933392096461882874700265392019959719754916628187465430752037953293633735253403006602685257656275305035591977572882822796543214448530191992159482568079168522560144103670441160252998667596515163476076887657491095319188783931770300936756190042746921277798919478855997487463499968014444969119142956953613482783339965443241641291903836756494233620069567066675210617946013505120508471459115496523268977388313478382558767174564144972607911854087395375118371939888825568180863354670449515519921057477612030011042526534305200307341325256939698245291743103338232010416765197794288275327363673191066045663917678502370928983348495415386103780945215891026191937054784610457060534656853699481510982999372268118348482009092150193897767239190684055798441477539624228141930091108371078788451016173047479555755020027872863152708775997130546349562839229541769733972387674871718574530825013324490123932580504158925721236953609815325677815317452670825132624990985797576148913297875737995347740495088649082362483870515837288080285860280830917526355713505932686804333310326779037293130284808475101259287413425570290135238403690375365486208878236810435045424056029640098287052574788259367513427879628276777426697628842361308144356113811867612895475079064651638520431233415204511205691646934675816154021248370188833555480769485762203425390122013976618488162822346285579382958794583914969980947433180817651244511821657228038791170266098107029463189871676465314314373777399215125823856944393098610343539045270651242167406668185762342452843743779737549063983692276704850538588626734719310218484559483995669367446535562154510950224380302829660256356258702336283296992397959838695796614498719106324440294587205281881947429092321920835191272242087043640628226361258532333516602172115163826707265116786886946471358415617963903017413641222086460364952922800224928215916848275072821776411378728431886183084205516424916367582957872649879915759233729136204774568833127088490933486246811410700530733335406781379929241863615238060219472233975114268534577751328886395102500341939350273139493777678139555073835888137216679386378520821748805602907947608861185311619572087655433303398165984156235008958092906960920035411863641975132047758950616307591835130389560120219906496876473862906077093429202760884551721672166996326656330409298597129589212254661780956896593337322871780965418405721645663622751386180227247612613483247843170116243152440086317563663268048590943583645167183692292900930947309625878486346857631293384219409138598038775815885417348054262082539882386457620062465856601203376169096161676517699316534318635403807299107812520972331629783782220543318910090785872115210612444744412422325392579048268482897258484084189480017565137032007492143566348856197624829602832644145292336779457692859881607715461439249126149869844849780667608695323055932504621283733364087016788750849676882833437404522312011241044540104561365852280552782182727925636997811629312720996559996053144753379399015437331779290440226391603654386811681747901686319287273136061204176491297850091446526696658057195599586080095808038270324651972488945810584902342715629616623661672814712383603157596294247097041784573762177778441602269592097982788600101076773122096729507519093945924441577691245191368046068669558193050735109339503544413583324927966827968440815522143841235050033236407419752715631909644302730296501146850441569291190828427797695986656829943413684878142758595178139157913609644522515897173641568498615230752103228733901067096360300502282715475288884832037056971438134098763299842371722500587607496134164239897890830031818530240095652212234606128711444728766108433474989630691526684960483858976258299024958567735471484816244125892041857703165980861164895911073429744612166074676568529426369656402725648093877342788364786472955250794268183451873631129033965788763854674022923949810020291001302063646465836444410446055843125790841293250813829766810324961377166320314338651486507838322751255460936654854480708122809387771258644949294563599789900913967623240749194730787735532088920299247089613555486250633543539800253752256269957872171539649549923261281869134407554807955705299638697465370109266349938668699764096744085960083204385745383717038414913820426887423535431006054688786272954523616019462100174546338660865369241183039065490323220984518394725369667822689888137029770741868377145323626181997712289802228102262056450066054699963984901810491634252020335801881854910337709168223550185823369102518025989389896967205815304522765532813591392333521940602360666706203991726518512629863564110781739782806522802648726092347820755675605865779049251484370884911866637551500318996827681032605914317248196173763308217393629852590310043618849787404608107194685105961615301705754416773475304114777921607353818812055382182625702774719721725615703759029702431817617195480272243870013118364266959793267182223370695455129265870514337566959758002240562211233146377306217050959260259304750278384233314473480005707538793791354412218345875416074392819148568112252121465490289669901766383408542023235551292098030271403550953488165989236663539833995544594343645227512012982371231921571845768295493485133395039392976498049783142449663022067229028742632594805763145781600941840978586317174198786859081527384556775091798404521501834089474294228707900997813153401691719748481250418613675910459197788932057482237842554462351290974029991827308591377849793166014331844323383840434703083167446664335455882089350764284194226067757488252425490865796862445192807488039250767210009170795814205208307338278439628749823888537594942879526348711078258621985798811809112684152952330864150223603703420447095177460118285562057010869519452676897610887722527302244379789237031280222763814587261984003481325798014197551319304231609219860368707348533669871500493979277677735745504022330578613249107361387277338879524673168801907126183574288958996802021181835267662768816837047806759334880786555421713891078839171003539004512158536367517324799744350987766415668817904249802368632445023069723004534145687270181463355165822035886318208477267717641619448007725962879511485717795452257981161043509591176520643645678672375983350981613633272187615706221494280919439498074147138044549180936864423721274689225088680212325937489976848103324517721472535925372652838954001022914963346585655575267398515558799229830741898571310928905778964183091774642010599832381346030673267083053275026844854134122810538017885537063098887336687481524527717819390700407708987496335574692246912248844127373468037484695816657800826185775920654202480327278556397468310968240237780204651502927221718198468190033070491064030939893968657743269856412510259789984332178164554506830373583495062487933379856190245116584785317385865399395651643211019742320610358699333119409644044172288304372173179593800316104764166682044708141522951314464814027908618890658167698308904400890564821524522543118313743003718095609037975393837389155531408595451680590391581441119941060146957387329377134798920549216776826429739499223683490362342368660967072250372100719876649233826199199519744165248242747700402375638979565274762496655257302124447601803800508906145331262768196070586885126524278331722341277157413131832040994559223025424761888970904059841674739090293683996472701785481905717308207808752799189990478846452437232232286860441860431674139000917149093229336260174555519449664581657481004167606330465314663965407125421547963198559568484507551903549912358850484370521453229836760715498956188325453587887557728174409163416494818637768216060963192879514228188177929436989312031080069454010565690732205327300358881204920095583192369795683747283973811713071256652415373310525507319766536757022629799603936503290876987789870683987715393643488392618036566476941075488139535108250583967202248990361504920204593223694346711188398946299054472454268728043414429551511146770102334348103153500984226737905712333099823832048089113506035466217848091602480738586754876345800257358749873438480884832905049030865956097220279922867369684911374693762567922751790751318248363902307553036678347484316937048494771975354294598403236054651697435280501167822093351481786632746099597508473886210162767256768057457578466147044315860886721825100519184037788821438683108543340791315926967732759089602327644952991246391236921117807427860748687853190514665153031966536039374149556989030610374846033446110441532820821697681115223556276496358901003028503678049107947630023689364159276926541819419311516873504595652093359393364223263831330843033359281359289311386781168426365029024580607503677786476933604825767818997267543033003804149406675819772777130014725557359366715218011653336709579740874806915578403377750517233856967286901350369938027032365396797550812392012607379811986728374244134915664177564309237005841718070742569287979122905587969178335196897142392244109899148417183860074132662211551824907895943792047993839618446936229558440974473623942612693995710870181583758227089000590512866330392802393041393884536308600368028362577942319403968891308675754615571441569566026951151664447186013109033282392055143633529549668973724364067941652442555864061859787755547663202835035401197754498771234058119978168128543293934330961274497040948480056489441021561122023781043041310383933835698329644668788566884797176261656378673670337753563315552394601975986665758340775227126009605844477066726344386215360734492113022657826826807363502397466597688276854794337441190188322868437206658140811473577121266202178602803117197326836836438829215265545665146196012009750341336016340663182759262619948328201481606979284406522362132744486532095474081415356616541432879773737120294733780460995540562621128879701966465238946201950785167700229047194388344469249019742979028091171287727894275551369785388959300013751157595558207955386623005674120426233666267887328691967988736708117161894427513887760788334257004411780660833839588082225016727990487453439459184014924205698159596002489367806541742448082131225873112136535054397631565446158471913755858636237642441355259940292394772022955978717397637971525858214292780611515060632496365255248093977805837598216592220187287648048517317910785577433418568002319199148780893741441038515054584238491895352430582426674345615806308529390957027532881805292839040198097920991566673924857061651915848373681700657345993771470738961857441631203651712298314775075272048174790588103484248895879636175820982463496422771160812453837337311258433447354949090938479155507710249183317117507181624488574191082696801042256068514859427565178487040185278297331418532864356776488951993259669621420968793479231198487025904955168803727043786264978200042232599291712478969187596879043191429793336601518482389492148824184226333409059021062244017642931191640640700519480035816040331674589223511434767920284948935552329904377732295453519582448588379785134903061195900702948294163891277180285704776271436352766711330684530872568897619752273918134921607557132173112980122511901492963011834672952713921417680483271984310262516562354678635792342197939765268014686992414424135830052958697512853697843936811602006491363325104914408183725130021054844973063413296666361274396112005410090855734856770909537446093574205570114675649630949623700482197291211872209590651574826455258107649951783463351912686378495868525054287839077411565224355670864070852130382361882247496737237775256548925524455107884009878258422626718884320446640414313572516080990767309114272835033336533107257901904491876829984244693322558110012574001578141279521517746602033829880363431425393558688897434247547139313244286022114982968161698714710577719244584108656662856269287188932901136711037695005417216195423715407115836521598599566693835042316826138389678854510691976115179970091210372098829959110529744660342717440635562632253322507254274276473640353912420560548353079185693607812612809860634263363205765921015885626369118865392371020201950515872132506455950926376863649156210021404056266717680114927534695970576108970271943013502736073785274017759297038186117793966191367632394884293519320938474949719215137665746509087811521720818401873874279537704367578678744745892801463692120070075801375323399685336158733297539172283116756618143722689730789514680146631690923825750126336332039958390311126132441816668092570111916302207357690984715857643244668681003157839025959219840600116549243258622138158859955758806161052513117130171019187358594721822406375903929002836626897989542011982166068022837523177960607860253971689219994974478077065121644496224250387368994554557469774415852377455009781953259741176488742371551817162076763602850329886904543765543183032929032112790849553772306156115725624510758607709423894154555026587674221072397752303211029704749479943218947849421168460953748020209657127020192133398733825630551352382711766057273210306421935620619187436428481586888057768679034422642753061333723642499047265846205201100372002068631254453453421581314868402988498653815391912357875738635379876348050583485154082468315630377727296217508813389925403643575842707771642634023853119932749009916787951829092654540565603184596864065783390415909894871427072390343342404180204074035005217919222205529810881589408497528047552136769534706105138312597128271613928323301949627604000172289599439040247055475561043493100261061585016957834050947875939744946139547941248654441539016597297351394091430575164251853315694803617318399268165676284240262596661937296024778110536672814030957013666148265575842592672300050324109045880174454291338683913567530843960453732271542670293796391386875363480650306093519387271702050608560626554547347542164580122820777501598225526044603707833075713772626467823904988803758742518914420255093054943683061147875136037123214949766621801555811680973678686946888734496707493101579443415200079864067607457285694777992977624126266143082456560480675106285764543501380176200424361182202848222249093762835442304808455336852489858159400004678413375720463321197384084837499914050185337350043434145310367794496021105137990890108920193104002598647954979218585161106509405014636823669288371005258321758787501993652153918794358568501315284301563992142286394290730685051845581368942310591111062766796138700095396746351680431158737690798264641665635642447811960737886188242197595030755005332775917075760688534598519968831735119996016461661250790438293202635233155186910092037403439957337876747912712301784826928322499833412232783610840747839159298853310458103073988765442197656598982154936858572562928070720702534700567207777602003307183943620019572061026311745152915082321063152635167081339453064319409054145893174627267145824771852701848068981557137143819623901211806996879454593020775223559222718160652922613792192333710911929457388510751437890265630792159312447290176335749130850033814615503218660302087289164189616557339544919055410144012219487306396007255346089624742763276204422221802400446166142509748452008402759203645633625260536045746868457030879733252204095770646853085914795607356515928762570782794892543987661592648500505131210283659845610575656684347326602854318875847070407232913856461482219606534842413435566119238191561483179281148267230635602989992777108932084374661742714049490042713780532646333161349122550353659231637209248242595387090300712382026735472351498110699372913291149936279106351230062761854999797450862864118164046279287815170261485609063885175221158720397601315896942955227659999885903773407869369929520203428584346374354165232574283143674176677176534149984426450539987381742619640390175298202688653213444278347309049010469310709548440285287536831176437506877092471595432592070782801721734631645542384991603227136811843134278528780969139062342576305676612163421094963014428185948144394440756374038264326284223115275057174777713510678988319301198730026161997530128215916197554640445350626663402779847013870479627654476121498780570821228786273277289780145760060550444081257724409734121823092197285097549399197911580389231740851111640991372055505322852710353737308683844499982260400108620708371715040584855638310388002366998877362834758702917292695952013435379741962983150517426833602211587485914349490409895702979905252872094949655038056216789127385767219100714211246955867030704271435012783203357731232421282100821062901532642084234461520138032086532172525299949093061734170333013579464536102147496825647549592054220541136895161029986486137044450609076705776149259248931989361192611798185280106000773407055636134395777264212493220627823202612194109513428187006442815026519066385869210888320705300015483961458581136653194938524656812648599025196213186228423930310556753394759260872528956455039049825635958991601822407452783388478175433614058496665282876034393092363273102025275624782331587146681145258123431202261801387623137834886185229359241259176889019995860645602571763191330544171608278895130801051920289791748635959998094188851613749909399407327212294767554804803227608225157039551797967423322846738470386875731207809212487163367174358214063758451549499997248450040856062143398561712494941000759815597932355457299929761716215459785175120149756568935311830386158786898273885970735311658934810849852552651639845181138294096701976045486062140261711066356657633555083392345940367481633467614459090554981291418786547040855804905760391842214443806886624422992119871507003064099819692605940076293073721786425189898070672403657534885870538756633055489305338334864295590199995719059522980981537398457683079884304528161591642684894881198060836509413775274500054619708342150690059761500204700347410758649278843773409553925721156592995201694290259895444567228439573181318761584812768351122471091113728468494280260892427480332780401174204849247261356493006253130514869837176115722211556361980570493634727922367385396018616576495584783402818672548053021474879935621958923829955437065379251530791367538128703866485655553004167286888493860406666251817451958204389826462615873812706783126331585643514089122405341979016288614921444011281008032727704492357633813635838452596235819598893523740980188698347106845318446285691399987604661635465743132017093104821652114343085283755444612077912571940935413504308836797918862312832954907627033186177933666232781243165512229790561457789803977981908363947881305203833591291318099126185763395096818227092461385822286851032739015752264938035173699356599864619204848815572013406294107917517517271702421830916844121045468400262045071185952551008260547266958115072855199964312894259386359896556926313182751607104482273467910437461459808415535367587452499062688558584480760560612161787504346231673423713158987770107170928630860275230570134051003966542791189203601754739014177593903739785817293702664332378455361216183298263787843466569384159480744391289236413002659253712868485166071817125891083781655122947277974457152934804444300398242131502338247467834010968781968192028122550976225481582946206271509545728065524303159598838020817875097282835381818556096867694166836817028560099955821429081063945894998016035248584026947767023825542952903004847254729646555695179219198172863697462804116717474094495948461630041687473723432577146407450343875036401561748478974943747897949283098216679401185108285607142402969542870065018436597122754699852601912349733020311413956198647122546265320922744353387924354839232857063941315113923964969529843849353785041521389736572173099301566960853142230566413460002745185817568399703818939590629179207303290190504000565038368952755210545249697345921759045824073671175255728965498447579858505346717034122872805183812268750767238048705823493928972943293648015987714402845525172595879825872104404524257227350503990426428752098125401558249939289752918423977409110595671453877339649884458165229497754462328097168026448640662018139880197242062442618277620648390049306317612030582312669711131581516726262291552317701104037418767163509868378440122528773501843277034032760164119734337985838659211320967969893583267920694370208393942479427394638282432473170930917601602695056912613117576010177600674793579696345381352993928807485814578890526087855604884748761572769285041980732632297507674765493572088545040428000075898457296886754835788403246085297918385081047363782164723823519487928394631162108913769248151215696520493765954793168263479543399353918484607603826644827282142032302936780547231184108254451613595374614381925947243295248541268763280506150023056810787922326407171910139871307673263382482236263895653761997464041281894245246656358844180455726446419330735832232840748800134971110930176478919793736471427015945761704103687259901066828444719262520916947058505489533542051439555260675134628388638572647642887668532363201496407418900734299218891614107794558868890590442674594275708154442077640534626851699743465148694311726530912189129590733507936505186391040871964570320861183868051559612743235670973392157900970736686582550764154526440773960677801233589854938772698299840770887843468886603435725315871261305100312429148758784463646590933178187227682354339447483619505451936121838975979267987166794568458212965889864710268537922984346129732261232840857553603845570616339659247132852365033062361492721972074817111357120478696108659402693313397580351936948176568095683540525534637357360909293783091112374507051497360775703427195826322319450886775068795967446288605632655699579249855524286307961438649813521901341949959743533355860872906853711646613929649171639285613989127474225544170351087125570437173227320907240655294842725988557064148368182543094436620984324098306311066880427538548069275349053191197067671957376997509994583457081487837587723560024185951611355167057165649819904610524960865693500570312799464192791890718334566948663406536736039552545778351562328329010235908347974029773747389863696862170597689640260484109278684844364071411451297523971983211287076966127530649032782627724649713680269698216820481069449692223267743820993158058535041267342416433066632241035207518628659281055474344445841401945429819393575797738895724700456016336976862830490563744693150041861784500799049358106365227809760155238539740649790383827033065343875819730261828181270853057225032966146756067497569354059542595809281158244873172199279701043959286491564915200600683837621486048722741635140392156080823206598542903023598945718407767357050680910217280809881886743321762135441520967734511913536150482300492898156683398051651287947129551740510862830114893422741110495994732035265021117638013457615828451332777407063343839100040457191541920909736745179599710042906193207682525977802163849267375160010533024298080526943076568423874516991601733849870617233727595347118865692636948498684771655464356790889644237099887115230455338516820342962198478568396206199757735922838233615380060780781672443863688594067864763179610532318876517454979648869564469616085860657018932570604354395656097727200138837534711373063919170823925451647845157617230715591742821750618085395908876162914208766609235900570180232851487754405943479365449067241853198597761807634398432592107381603333854748751824920038727743267546474185271868159958037391495695583948240542735317929383221426870863044180758877898147326536159151352124471782397221287253975159750242232998348674349929744891250505702591071279635763663706545489163802637968715161619906075571777917567419460491836151702574950419627182527812404630605618615276118905289977729450293645600091520615912591248381609474917644559432560937189567951773698509572430963980401131166462685005958591938679897305219594721145462471285529359556078139876569943679452493695087759189427416660307227399425015269651954512837646759153081435217108964631449456918438928375334882805136309424279050779555743838075448843747404058355126631968205895629400310912009263742284004657770963888844597787273986854648110413728060708709467657931618430874636576491946633997241293790566795135943327220359361244874392561336325214181952581491563131981213537161341237913186174722048256063360245069773283303873664129282948990346639326383334033161497428394283245797670679801164086872869317445155013300058980628141334596827555087244072583738729415625110540008297049715316211719600299908771707849098213597511514478591276668819686290469965960239813369369955012703482014680044751650278306197376042347983178374377187947498803989492048813462758747705160471300295509896017153466211024804315850830862005785969836369262889162182941989039069156802619431379226996951356500380173327878261325256238503199507975371247997548552727780042611643831447105742894782630713010982149923386414977375918422009799003886246057369217124925767054218978195848481785286693955323610146215199978442865292193550498779783828720471398853368766029813023092146693845787644250551450261321713559319140704346235243720219228192627033275581521258267666225362016167041028460011579998004514258259620094461216459489005621979051092593899532549391649827684972701338210966064205724822132308835425787253912039944898565589134475235536324056429648110968944621314194812876312342323169357444172332521517183928033739786850055123278813145624529133371898534856445242969303993430215787883134637339275851069303494627840586024783935190072621131268587158033734145218928014878718003837968811579936166153814319877458887446415225305504255758513970370474876666792116402626628197522735895498772794826268710758647772167657754744552320560860823183734190486056757557801391194191087364474997181867264777808597642550847739166953331015854097347123378299341348123183960862587633275844443828393129020365716688419550028764182766206336755036030330754690782374034814661031778325340197843292260651189474779820931050431195937614566139050822655605716433196011760572513479201948219621600884858389396939655526768911478045666670062480664040604496104190650443599780545949853268029608563423766114532733713872414743471097148979368046521071776272609653763898838376472759054863869795311480395871034376750205285384111381317193931861596599346419198287595378515953684292850338571513101227814865190345605445425842850424952128038249770539990072093462890423155662290028902204483563976181737428981386388455776381643697347114538853360737023408529655256866411428306374479527834417071182976320474488257450861033644107840956037309665835993550833824108946265511477563454597636382886869793438245203436328249240173142409830942431620861641179426445164363027286080177733223417202470564871275150824901318759700967660009880869453434648830162771409250412755413918575473228372827141591785296893336002687093563515589566378179154866068171265188263662240375417398703057804773189230045125865180046115236192818580859526484242938493880992309641803641207196916415890886611426555980556407222071145127978518402634021513844902984498255209840775189625514381102391295776671822884166915730779840940742411556757904639481289244146866870993925842963873208384061900573313364630683418265049581851782961576719282117959469347534651413770736927555497152722391294791966511953174216553620423575667971726928485675411360624295495199492615498343638843169032111108680961394183854962161016627395436848450740353430742889392247314724692173426289869664113433799969259250195283090965543093243524273232489676136462015067537772927587633533039166603628217044712222378703813886713529938085659230149419752353064656566946189918646218489604950903496192051504897747224265338104061560144914462628229815730383882685051557449254945248136509398593284340029384706821306374036461574830240832578144293583188867603425010210582292290571561883889923089902408619616514269728442492325114801573081020314439526775940198388914375268707652152389035262568421512521613857305207821909104054947656433633797783837597306173541112254990038001229971016637465995751276300315195504967142012038109694048138926802757511496549729974914694891704319780931210263252977093777607076399919223102056738337862558982471166819114410195791873203326717707341603428915087370633383765570081647708933043912600804290886015393805185391739181993800258958720202144951055281666623407387152404676337412623617598952151842013951623710739829519301623109654530059087002356260510006947455455379183995825015663699332780431821411862442167987742013699838253808093004295775790041839004379357401860894279593503427449128196051293359888533577296253231145201578918609240536765264718170317735124914839468573554771985341176259056824441514625150480806640869031601198225294660605389015521641667144281447226484446649450477411985295522762643742797314975179239457364432677724154572961567269957631149004333503261821152216884699236776257061104973669412191896817802794242824230025554982902181943723719325688618429211029285836457914047510151570503082684126271703747915730514998110993275922214597607147823313826795923308265038999238628456048728711965392097431859647695646114130552547976086632743924950246362143975729469969721886849783071427996370826426506274571835438886122357068593992132224758653077046799511937278132980077571779461806016914372171052886535379709351802595068585848956605753081887198785698176496963163709915223653271011730487120292639047995252432280259266228200476190172445221730938912691120844932517993648142518220198588264673174254672658554094451474141603086966575455612915555455097941354905381169909547246353267173761134514072633299283466834836737810746842230183664075426292378261087924114318737906653632035448097895571501283307132077900582476832138103226093463751081757517209959098441622643791138209924474312738750741819453364522598721592121567132210409522399376741140478798235433291511343356071916579569875318434913379111384499818518604897360337307917441999633586119775121016662368088861672501046542847331526031307599644188317303905383906079041535051233613888748368884398389536418149210922990146768398434961069129437186197678632768349130603326677840016031659026349442338583402870962662137861861041549654652245179115984492319753481789467073502862224715194400682466664247699011778784326844429898263093173196818699660272787114405234745019490563042140925548934703991275501509109115682424751074340759728847520798677426249729425541251637499578771099324773550491331379513999501019627618527231673029931712036320832838052489619730575240428089444684302890305741125620124919317933726232801661166052208874671073368158374954606848886962345073428336662060811916712500026716434910146165647922962063757561654329517073112218058946605315097124995481028484085439734189421449310412367006279327016482985606943859608700808903392199495451874215467354814210580579097124873361294639153019314019074308115392871846651485411030441672913448863317820044729674002809478549996374755755070895534893063169496582343190769913186316952916114041480863249787328669019347985378177258582906773210193201185542027495097117085265250612224246969653189480068489939319078540382308329217500170810296663787504538055149207367366864676690611622092630221559933348737791659613574612718650589907056777715269993349808917024801974134400250511649116377368834418984841552281420485389224543849616583038550492087315424944138241348693091622435795620035414498485121632161361358531356114546408075280738275045260034375493524178223511179206601408546013241382794445882157993754419863586648758272475925902725874493336208103702117962902456567483879040402280813608376496257477472102284981198779487865431317439608123638955351481273165455700909992070934281861955170035954866256768469378976856180070500039061291904085020997761477859088750958915149435254143099291245502545179425602678204664802261435997904877205429642559614811038841114642401490590894892387728288221089577052291496607363473842017594643087810957498739915144221878401052966616854088169404583527975733241241424596356114755196723646547745587419121420892415182824267457808365802100956068750750564406051930220380643260119821419595436846874159963036316745238180576066609173895976634405859176598322332484966434449307619819475173285909321294497419301012283280700811384690852651123003434335407528531879883057609712193763720852344577917204546844873524581978777874954455105954444444831226527265141949808925765812189205491086510018423986568681960539943170831213530514205369899724439860368327683112827889118276652471509686184036712625891431587668383122937309689120552608942795437375878529994436414093648316459826027066674842886896980734252131037065780821323626243647740904245118748124722587977647288944702023050779571128502695680460562088609047792157448154516782188919367624315568608527775860106253972234383083298440766888189375606266350701072147247045252567527056226894920915950807503973215157833925711549770702333547587421029487078822230222976013435110306765636791378116875348959205589249494618133177314540531995976185246346765188202319908113219489105990388887358152743539736933977326773387589078203438667910209826124365543095643867614818857681659719738062463277856523825514669938027407797079601919789974633269238699886273776990202593251955766933063646667706298621452996449295166324696423506176875687019715647408213321096362823220928448328753014172763439816085341536782210709708455839236004463893616773852410348484011793843921775593294934350737478820960995454740289443806077219023115569263467967563242432144809071205128466391017013269709857869114252204698524776926580708640982285664382350472611813700602960951696172523673165726949537910457297390933707940886352507350872531252991215542637781036906223622749238709129348636445874349689570812808023538077142204208630783381865808974398250500514583692114443086221373440044390835011772499932511671944401831489336227453734295280540643787369777279839164074757665817399280763475810893989579639882604580017637983472585748090876959163549482140596756852378473622462566644785270179148743425701406575265134032207564415129574875874725747163008521530909025157901089803376748411607333318599367370192519667856742198444660350302815739692765048255467935577966253327628496456188855492161503310753398700804368771958105409848498627170241906501869832424115975114594472681978965239141104142244219018133859755249769143203812473557364856713252074204095781199939363491068961392882401020183214383925001679863018595255299152405592144200813839486805837298463740848200317832626461992049372768426831236361729713375925035553883347245119314278855851475219000077060553187844079881424178876825173076672560967234183349778501438198045253155351013889265699200603374983327089069073103264292082791736115768310318458432902978455906480730407170189196530635459030034204063604964596646155786901828596525794315278918195162029229968908764469712179621741016285398238253508300559261212280335925617810862431183637751708243228157431326185587164623342402973008789286200490682507771262980564620397429304215621416415834946603663991743260960376145048130327646845049306722937108636384139113493689844611751651572701734835177779366607359313732751045698433662534759798542073054291055368747562032320161292093698842776838872578355656295945919580841641591589836361346552091003968981555785156542517024596361483722304150437808308439077729647366376244120434266355250311594763784755259349985039228727790349776904201891185620167534757092564290622343498870840852079197208891267147592623914939774027632149874755106193599880028843262954895936664884848510479317470231682239365834212693441968497636920305109748206781976257058566314715739537744581262811569291983810524437339390758415199566513721110133023669467699764477100069368132868425661143117181309644259063175329952378700319585751798201576266476166433710183614086236160402819657605519686715361441646783197803001038236834663595914583184820152180092652665549576147227594286092706436879649752492499991521823989253580286751009711957851897029924983836111230192501064448932593011116716862279573077045991355351087346296579627220012030490490486837411576384435719293005984898622252278986810994375955882596223624331285783467405028499108923102605716311647746656388214786744648498106699614865163177216198251200122379174125527024513262947676520392817457862302700686858279575222769830468991596001164489999650902955740620550861762863892034801108535649676451544530426311770729534759647822182989932114108124608531622172778846591199471828517644571190141581694641083631440686254412211583441019939788421226732354712159395861943824315954902138372425592359345247344300685325903545424804783612660852730797051807972265595111744969391316841558891831175910149206878715358816650683125916106902261527630342664299024332153625917972798509352730502656439115555732259228139268979532525870289111964864512613169098818192915348746058211070701098771372969747966562261311451165701788379611370284439392688426881001556999276735109972933562245750071779553501706735521881104983702968959533513467988414296949004311940168627336961076218715818897478392796727478870270738426992617613844769272583709177349890601962179336806141854519625286724655565197501708006717251762112269335136432647168452694419085457755138486712586853160413810271214940269643024935672679713319646391190167911705433697660631865855356664449506286709422437549944489939076896531177435792166802005667918441517613449001241248070029022116197689672068505284593253578309356411101652842920984389399040012662921911582400212946583307352054566394339681762694051806970010749976743644413723980144124402460330604974558409296047645667361461786794995887562369115631324566171778886364876286120115745852512954560050975722832434295116788577064991679116306161999737037459796509553777556510744378250945274340665508480019433679681065793305648618540032096931239421071230058802976539537435216372550266568976664958994669022172904916608289313059132193055366766523191697042716342605791846859549490910344485866660003443630191740281459468984235550148876659200596746756393260325249949605623417477543651002272581026666619155526170244177107484136917023691287087621813115724744706535286315984532495671362605253945336042971292891796592699454022473070998275484724680831374694465448629233943276223285503687311680079088633694263565083304541759180905975166607348456536287980910475330955595731443279013198087689254651916311343331393724383577505087827775898770475309194869712469691952785761103607524194466767763547222861830157219005268278140354952553182578293823840910661594026532573103890755351089012724640592706575222107590144590400071667163809991091405993765461728169953018004675715609459297431579380346207601767304853983992488013201912502932720912424220644002379591315951790335906279834146664625180693253924414475328980188035871356829507379518659872487915468212867896229986062105314502316476674470950754991470899694932343426530332584720895177728416421669636439794885678640404442179763214600758870129667402420156744186761487822370689679846591589842900875807830466572503493185694629599253310718605082521531749851731963128011514217940754269644682797783887437449998583400159746953004370945347730890385042258905369086458310271860930108016995087544627499176929314172958753735137889367216789421324529696091301167410036007660336789851318973746539338705451088389578881122869328383273295306384931019421831434633112061050489566819577451353988213521922463992162977187823922432649494715481371084296280565898397911906804147615693185165467492053100593887251862306257188022447488310874073548080906337862573499002263914706825840181691365476540001613550930988946538959715834336871642764192869278391900977584758156939136854029360354916521660137731103139357505694849055759034214901826317348230776022096395032795755261376903386450677484460871747039067003518365152219652538063896776920221558623709343208571154305085728713654533713890597826537424521488459244147702462644206973877285078785002714911509218922955368548309186040732979691242678068081160392525041803680504806988924487076609536781019159137848507501401169351073707058860476412413196844062123375180775731151279242367041087947045620932925825224241833607698844620884158117538439882266893005470035022198842431287155851331401250907669283654759277907283028586191698117637826024134691437929337075974696354315231017559554611263702526251203442512564447092161836579077428905507798536499951090626126948307109317648827813008685873050160997953060162257812582754389110181631011862220881863350750936190661528585354577130417321237596469005675070145609978274967477632681833828242014299368050880254321226155684546050949059160520877183201359401124307761772296117767043886467024955839117939258016909723394984091048539608410267151064099656465209102454111534677828996065463860997680947985578236546519412109767586245157243659660268835880629903467793810723657280468743451558308465775696347165482140487089035019761620188287975107117739255235794588165226135186160415989451395825543433903199220586469331056334292498360937498342024233157408616550500087092651255743543944067530051632637959270490713914053017575876683017510277636564608506488634590312975771942665727823040836140019069810443379987635702370680055192486658868349118037530529614477415125976691869210196787632050087129227334706600671523623613970474095821696778479207008483051733395906924847960085900136220543871568770480425909102741062830677119282777286976210962602056739180114074723414753230405686702813852329584549804444747119677393973335403960054683117949250327406770643737615142054794867731717203330663074003825204335617680854936371483195325453600824899867084100866333228117269538655557451439592184393724271999717691864558231980888781613577505071694568536601796518351106743324668405271175550061793230571747042194971991403594496136817214532315617320238497403350593470312313788708471445195498623222408110187736186008044503995312843299411227980633682544323335664964818660893845663548048039501710408813152558157000022016540976481319289513851629216820205784954613089957934433545969688606230976520713558565344506638578116961716897673194051006266770369606738446355333063005713902933993908774345443398419476865166272893991443043428551541834202901720959222237969934393789812788840306342493301364376769247020640097579324720977912003729700272565494697431135205945767098254251134910214827623244246290471423627598765005113906992961529998419153089772395892057302986609357315477819531403739408209375574153527010205858503282158535308628379953099892964559156715819670176648351535678835213997372139676143989559177434272069701903876872741086312495509282911694412523846818758713207986795410141573141438494139246058311541591109507464885001309930710030304198071931483931484133568309498392287682719541768233564420708810298626724145700994723617858162302637923656853093009076677269584317776004941519667425356134817326658060221957929927227049643661036157106520601570000031598525294165941779603500840508705560222403807233812987645783450010306325548335430409894926827016858485108225579853475213583909516438193980251345382075124349891880055599375955256077311403442902718349651017606169243139495695918655971017879708192875991952700692749988954430375451943727432407535556249824164037898809829221429803468752249823018856066958933255471994422865817407403165930382181250330543041511061972820324047983300906743392143859324726586688480956039580881880801813465795855293226910326113527941345414580327000837454290145928474872575578401373218471872352986974343306832661095654245254980244885827142938376675989595355948223312874287939199703548593442476492912072954823284555566324357232578947079838820287389005933213112998402728727333331874266008133590304106852397527559286457748927208045084755295942170248907903170934902812398491581675278064000817875485399235682679892556813914233045169290740879596670388453703561852370550954033057773881720162376943659152024075382684238066233426144949150191047882556735703467658643555353095972260807388495817663367725937484411206236879544233332956241259704465284267308478814787567685697722357354434805549166081245753833912234915312864377636294558717898488864040221737119489422770503697207916660677836668515311261986672650831491720603133498797500991097812788264165122822913577649000550092063701076117120153293637583531071441651002788570604548087926512826041146392059039264396479349653965197518862351984768096105228903031718750655272430027500242956159691906055336224310234215463176630634495907194392209879149641048552646888762857884858827723624075558662670188587253480974574724086293207873472640767292463789742192030061257479225670370907286579549618490226634895907610351352416717133342830772346377959797482594414924036165259471329989011805203655488668810042086864318670838275803067623777885469740810357220346058822984549258895165949573393391211061416071803101341200462236028935870944625531482403556833978541661441064893603231747158582522187352997913721691052597100009927662237181175170900867483124180424076437530206258789791614947286736757720009117976190002572248277016166841985971397667739986044763340142803040456243032742869834824769507477512024481080189304751249831477742631485770908817920103083303869679878315608544828207567572519711247611561171615037479488756787375524779349841084058838487193922300895045378755113653125373987625017193936569912344965379992267707376021775467837679382406100397279304184335744981652808698320384103672296869829373295860845457767868992884207720766370823879704236263824791009114613847130363654481205094161688533136634583573465620076493361203265036656311316574902380011845495741298935394808134049592937426032082152883861596538685155974202923782682493464342384780147395574045149578055786344510659716168727931758250641633438042440586343542746139365795738085822638079254564197345102978080602764912439528272365907682941262191478977770410044273264313105940033237313848701388327000203011150793763093092026002317392441010973068109719875097279742686614745600452099187505470482790460809200004674287972037206017981880048678718065926356585012155561727460015880879789238995394516666827178488413161298204156499680899868845252833008345250653731423926861723897899098682389173249331698257873772376463620369367255706947735853918858154991722319779130242937186763504252351156798095610949574280635013071367421587525998917925836869593103356790443346769086785319016947769959493335820470111726460625055977111100615836117869177913689239855279423450321594582058771290024555384551672252636868701307203303201577380350249430352527666426393137414972092822643746075232740931198019666812054694515276811770614154924747089565933202488339156317354058889260976399400851952030284040589795494297901485204894422922988255177844606435122093578077182592306653772770358499465161730293545713990810380177686185312426036209147549522677453337292773590410444826523917735362270189112353094727778656805775850307057248106158149895004259806937594539792605832062903647197550878260302641176451110246176407911592684622183758244850163188560556734281110901688644043237574976844721723168196464909894951941263344665492808976764798074329810873809585454600318496842114873305463706011277208473139005880274030512954621884088162733741095993511327418462778950416648986569255390481049084300614947024087967639461287140846188081926615130836977193967608571481493792201331774598032529120792420719331611147687162118466630620695967595114622778411970153392710004283640679667970786774386974390885007572103459038900991145339131618664711728940106715837993051604096971879575431025434746864210481164482754362774032641140220956687806164470047258332065731288961535102756288764963680363243337646133163563449732887488668913593211156559805946225814374283839509471002181262816029813295131558362582184687855355154660727774041688601800217157196708416882193610735517330443241110100923000391936825856747782759294076042125107239521982317696562499749335919873086067412086360372125653587574509696151346704899120113867357603293290369740321116559760837220331320821603517753745870978953292274761367733918794901889399122420322155489385379293392541270249124385473539019597932682405615473605165012465494700524784172858974973762647418817853832865908347266601802587912185519311861567232976488375977799797087885807372938471087619725280311343327954643253058818673956954627369418565824196861785629396459498588131602992266630190934314579670648895517456591770644310110973961197503050068719930249733239325650669884879813006542354442852071489480840304428119373250528584291004529799235217634917307615862523289961438463059986444981071929056951226256197398449535127201979297068642671563834259634370460251908129995358762809755739807665098752583560286141554661313712996709716914483612463741077328392976309723608756524003475405711099240102901161196436503457234596594147992117469521063321189065465248300497559397903704170826224607273749164504078955955853782280079825488455611349586517365482158559830144998289213355500695825502222551533629374212345967188086871317007579771122080322193530498520353861801055058242026945144772724752485233182195950656702881582016667279962115588822730204631502019959150406185826302377162809675853463038300672535645054895986165902206638338259373466545948188360597200687627938435037500176802300700083328886721600638735313988043903794753328404149516720777893991918613602238400911348937486913521486226217231553161073747298925293009001155955134966448126813771944549308940858213709770308117580678146336591739404751146314709324395494929865601471142618073267725089873459337819872514515104440883585853581622889890399912260209423617330465388969022985850619202106540842100951814739721061816568281508581438274017354041418659974266187229505828042070201055222462069889841214833755621495196908322074304209435698377692566854808298038519924395048414647927609550411273551770707055263574775573387340214700465129002543224889911494340352053927857759983358257981365426989092345281522459206228074146475460574559209507835100574408198338865220747506113281425699299245880469920791213317362849812015514021091706464692912326651596681635904018517584714691899387341501908675060080285550614727794136663071787585197356499122610737441067009708407914303621127232144071543964679608289374782341439276407694308005752246110420127533039719103137672913404292089024577266157756052718988932425052176963431975156649484047742414400998818113235716575995639834247847636344410450561654914418211246408480589135740806948151833737107015219865307085439728882155534265244487549845800958591426721923795387913575236529306929430029075577099622408632378816511735421323832267327231717855595711600313776338803689529855109013545244243414746957393322187653193973259271506251228492076825585141695533182552823862461726617958237682134319355727484669214989961495922878507521303208070169158949981065328556103428941854714823729033675175443878017483513132443241107976568193493539251936945295970410172493218703238708606677712696665781919070406357471347379346781764167288625796735010908014284351266627565710222729949075756910268302024766149963331936898498563554766457215479979957238730256589578463071346874870119607937156880090182691279767497578070305508580248776292380896432793995234447341464823015602011533550154880704065828661808506943480376441365038818783006369427278603591818054850916218293987383675525597710503320182718576969177643160449510205521771753472537102918351786295718314297007942374385252436083922709284208625234892788328700528192446133690429535225097173788549605086737099394764943159392482516252847252816992697108985551404890802818130477994370063997554974742344940848122821784901597574061373048546975447631658859895138985363681786371825342587900357960491576611506359470124040063995877627276386650641084355861360016454179635575880751581802246161065500380938486011991743338619768530099617292247886810769954994340923064887566907604526395157222105934417821161051366613091347675624326125011714916758402947715779784548417266274562195556537050672535577303106577879910635463135151813844905440371602191447562208860150073204859081363130851163778466284820075487449652180653800854966625537452371698088758800323968765651541162638513687077427823824293964921821024032343102333096832019664091432462110421512678640114755992327748565894531040162236148365631943352032918930566573912773819523158209650720810883308306894703156674200593713313674218872456680577409969590595673847524013156104915120518324840613852649896345138230718675382169636187948513529907053818514515996663083669943839924634672305832875221310783850916160329267702430861342232277021807462654824080835251077965220268730391943093522448043326634929173759503839328132576868663439213011647582111089298948790817478565079544641067301898511666005356855532626945462126990453689448273821068111318936698476468093135364760079216383860359305775774999881307511863112637099242872664485258358849105837877171568565737511952215701052480283300275446190421132971173529768131205256913686243731746310102024156965302393871750476468251774214991081893838485910501616024084177118421296128124765557921365622011154679852539521131459565551961219740819910084452445687097097596894037068380281340048630856345867817907608561380476292024922993224648031431359550358226322643134584829529103298674189164109941516668294921289070553691990023352546269140458171023742545765014356746718829079176610033671614138667824330462777741649965860730624925325011268026593198408976147122002705379248675020635640154220268304386969646593959433658757666678777371362567281125522047593320740843009588819679350356471957753003106614526683717442394738463960410586967982817360793813630373072179030970270825701957172047141411429154665413527896400719254027117072495302654949561009058963913270263698546796349875960271337072143300442181460909012838035904337659321601361119167848512648098594934003660204922286886885015593767516836146054670929576486591468938228638386915825352046815201853338747283611988566716547666552372192849957376911236453828561411933584158549414103840694227918522854740756911914413844814428228797152866001990071965705093508445536195580281196976478054756850928540017843318810218848735473859941585178394400570437869422925589971790657989144432295092809312338509635770274048996801679836049606568994098756476002493088489457108207965603153434623923026327730113590017154214371998500782963421898796341532706333118360591987547224924623541399276633614087051753715552011050928761903630969926531692842671833289500651449190308789614283132511155355907238744238043419240272356735405970916458062650689150192704036944492394698372782684930760142214654875004514042628647367690286810734448121094025060584819921692477680419547846584238249390958876032193484634027832314801923003928596252315991672969430637791609792020481826174921388180609377433861816523383744886340422712536727685783294350903964999876135502326611450445441949909041547473168035437802683539235652161097346349792651453526910726858391429042649289733820176932456436852737832530402397147268434327055321260791618496990165351092763877717050710724382985510225084757884458147357363401046711472928912741796871765493594216869011443778406387240844322992653580410129232845417132850409540712811573770937267297262175225672478358902172572586101372638496969324897439214120427839477093627447047467530879243268167602065828954700248409571969394916482272323027421852525794706943550001864283081193368281133647569474843559296872477916224297077647841912789748596405780975316678862999386037709500055641135958434863299617750389074124362941429046349140534813833941483475135103559024105148335995204097197305432069368524115186314015175776426264519133591370437827850598355494830635903405827392741255590116381929327335946601317385693558530571511150324079415764241324467599530890540537755107703735350692589696767889394926679836720704237773664335868178629948411735138835785390847822300864140394274276112433834133297113742875447522320576240267934451181341218986128612586646596069050609918012163135843584877878682714660605701720566647359972248898787564429022694919651002658382886177835388124295329942015227707302689325868526523889594467672893374371656733864041476761212772396878235021713240466556192174249723321775600737951808960159344577671192997673029459770649798868541085980848337162055487003550908083627280817048686529073954570282726581363300198038593224024996692744022183576850459450803111578814437307584585820060128889684467706492619731344725971130434308488591474837147795167239329098353536600588826393009899128950736530228910171050685044300376021576440240613719421169996878664453571125120800238249434843227711866689778275116000351635512209974566416678642461484694381954251498077717013108073209073423375693515299287593445739092024259765672408673259414811773722920916092718904818529531297015935499538386611699041265720625220150645448600933444457926099756615480873252763706165014710756472050782612544601695724217046544912961260823866720210783963667205220142327614773025941499570967733824790185475567816439600325047149964986164335672369245586210658195473868937608506174221016617100995587597201745844766628829882487321966791384784940288624420329975073432391056832495503654133159562138215318231676083032435406155447625403068391833654010501861122880917638011881158456695061952783849434813412960271409492854877927466024298215215972676206854406635093022623795640502504799981646302971401440420069294537736729909680471970574143708311072883243163597202017039530484892786121458696191218758208732231320417887241501715653888641013067407714267248899002274092426617075318008125299290816188788889448037697293232702281982430366768507544481902927722882161523156176691816692855837757680313552842915000305021181167339630907329066412567811186270292201717025452670197780949190818194577037297493073403495629709020249064630856728013897463612895579659140597993332144915632274546412147651457703073585314471540359462860572286074788567677711016499862236212854683063394232135918590860251468478069444529976715130192480982892495263499047823784809664178873659221052802030528786195639466234517646052114060226998255664506882837178515455648353685599372655193667334425278820078295117642075956964528708468093466480036631705679799525433997629535835516149308994151937057921948024865422927286006518165753425546281545508670478408877970259895520642449944263123195893141775622719308514707788789182872017041869675684025644808519599823600745543859766392431166190583712128569068199318636371385511505668385319412864816583792712413567136023631893826120160880391295162394197091268526625497499198950008863347966733769580710861068005574290751937453703012314092077523282551402720212984439981467932000781719341944853452632841899774787875489857229407587720991008162647149757023842566782541916683312402355804124123257759910688808592203304969163915451735273429628896472431194941173136726427427115774403487617813560088310819989887902144524912640276278288811490353215810573002142912643668025633133655785667720195758813906047019281582640993147983394698837743868023046906936450757821522353085708758143409796490842743628222771250585809635213889053014458532044096448760893236347359647394308641319543844872613102900378848846914916658897373335695288725215868660513532421294765852354423090746168146819716202536814044509171599885575419481179314569768054554588391952385985810155365130851063756834435914832993313533803354171386481380094928179151582175361786482750841779227054490748159857148508265733797140980395429240749794947446703146719041012755046655271811856993283370166638665984046937084883259656358604637275141099812526942225343033358328514171917874367043021258651111549258208860551578784110081885051655869353786806706594253827415522468093689058303751298971807954334049926180662127569195837891861313616206088443712196632040932957699993473177720576764448027680198679106941012734011974859527596642071489069993272978081391256734777041637740952275052909833517171040384001993706751884635132009824882200767224689205187488142181995563188681834222904411530559353231348787492492654280689072868524388933537891101832141516099602459736888873208235057662353303167019314882205104632445346959265070869797078749383864959042380901452036328860271098855454147049300214055632593294713476792021604767409307171252988173049146426194412168638590921295561167067962149869868573860601127073503776538810871306269918443799591864654069438791004894387848217341177699521240860773290602103027586013415445501986908675081279168620312233991422369155804586072040135669875572147595725763002845477441147367884810833592292079499982194445441405357974828365728809554323176837821595395013424064480202521701391767242096493523297917241022787985707874606662548089277325885914336342107450972999896137091677229370762787126966990081847766392766976590248693176050685297853837737739000003469858090766209492682140812305810067401515549797001323282089435309180701553175316497207126364506024828984836078190236941277813279063161528127045326886463346513420993696903952122559306985613217494877532344907340302055820818230226398072534269166582176802970468295275177287642783678883240457361965380466043770530062565150626272485390372564029108580139291983190453727992517020447391956365015061893494086908295603868513930477035972097080811489243815055953453137631205781661664523431510608364916908417927847761318915061164176579021667091556400517599368977566430892181958265067807576905560602266491408807515369601738209618862079594623521683067043296464348649392054713090277409246383092977300258771311071949186477304637946643802509739539534927763596841216409028988060829095340777150900352847987603570856754784351914297294286517559332757690480986382303452823111865980692385743483898490775592780880189169132217146577666060540924163137248223787639500849965697718578972278366825280935159343864952818952930244495331672127501497551475832422878513931199643814149645798240883566491270215317426765137281856550886278818302587082287252593523055654888407926464486672491251136291354678201997032143875979626833035500870700021231268666181569537953368796641709601385567172586887417240893287311407690752082057210441150775802239335034686698807127328080122226131270611447493128972537044646938749180745462169940358120923375171728382981456993781540152745763435054065914963055237299847025572941181401261771700482854410175585862693376840514994615237600295181721650213230688088892739871874000705529273203060004425620268032531001134611375977793495382557770371770303684398659046121176206760907992606325958275270157680545522398138769449812195165073123791882966375806650230023266634011249907929208731279591269451705325256484855100433716702459689984875345972027820981775374139483679615975866549972982053741167711643341113800690647159896387482553686086608182628898962584778911049110382282115883110363006518470272266832243190061499724584561509380928505803081972294050007658116700922182434108682215204843118935689254167461941556695437181425251942598713922652616966308718662701894371326495598961857834616663613829861473698618474379957657222751252134706611666208309238132738153504685375196758270930989820360773001958884193903331729122423141557457777204883117692703448977063588885554000041838221080078738644560093591752564842244090292132916949860832102648643256300826698219449741365973033290296902465892992435908964511618130947215645964811822484105828435767813552636067525356752674671897916960185401294757855563310427606187656327644072171756086044664038937014684061733021948492692026515727263781209867669625468416525229043055646054262503704956649007441502603689094849459988885711458002812724644623314800389481369888819890132738696727642763288960356916264060783960774311807823661524657003377865322198525839502845121298167800926717903494291952402503765257926506305860450213595516296831480656386528950798984371758865209569397189968752902918698800464682254050281222565217631399824433396193945759782983836459980833742967314836807957612583579509943656014337264590171404194831103572093314750094996278110982511079914827029174846397985194532035441449588847309692539028515941950098585832606468667661041802887537824422175038371120235846081483264670010819161593891466764234739020410531218247491575364396019633028898212064117775748046761234760970208620425062012644954011399516104460761405889176832275953492525237588036235147769132883045682099693635715766919774666536710444420789931376952204459227255828156784539437092276336213150482258270255452317857756331423772864240997004485221354541049556505941746116991468498697888367497750188758107558927462226750598141357525010131196715513369099543769806258200951083118460241695941871709766535832667832219081433048143197108656562628760413660878145653662164624973912004817341586282929326043759432762955120966165733081358212597302532879402416077169665973863593375178331284327258014826754093579055026614848715143313423816827883528386150863568577474504534990903119667435815284628151222877230394029841422240594889700015356019728729762813773314537714404505073146400337525906937878477242470977383304181201589563733381931763826723782316134082178684330584459969248501740563232308618051630746634492278994591269343673636364104804406269794712483051922213841424238942175475035580402006559594646503505640583482402091168886339292626855217911791540682517394248602435289849466839978395747596601888534780979820137566153439930122432909386001072408127421043873194171075993094100421906663658547317993483201465879901271453022389736810006713625674276467261066618719346901804764515223820480136647463945849465857247200278084346169063095191475703336208655112470508376902496116844259683578482028571579994281897250505668121428853655540766958464084004744376544648345447244127021583360752420206230429066464549049301698840533675477348497791787454501893196152676556268739652405648405801903038086129775271288991026090095645793071038154472821781421160768208388407834953637109472172042066807757288210789819413102581889486670061405737138402436854384632999627437509503791961242615368159420389168439421912504847971257013323799096998317073398558883728898046964237482472439601289194676429640374966932475769384961701016173632077462149781509827313076016702747163411969852151745319677970363551023076758576999440433158151457805360970227078741308256172593354330507558470962110380380270214158884201025990803673647577073354443588272624457766054195561150440074094553293196224077636049568143259175955347484559478824196208472654885981571405730078748807131117659864736020380190625164574224145810583036171404363736289361999477465829444031567058193379925096199937916035878088363916299082227843464513344569690964979624178206579638129182977995771802225109258607989694693909169236821144996327534510626518910049904460022567920072246608030492231115963654930343440989990855491992795021723422767260862782801782471975979008730332034577377235473817932460213566512377457412884193971032286633178837896479313481887243979819140242432167724498788366936198763611414369234024297678728314253432145767173489619833873963502404242826529901194364254733352123543724491351149636827753696359822212580915970662029937212885174851251236336795144288058941625425605676408105334453727344922941045278284257303345305403110063719791432603337228936769918129656240216135243424435136691556668328545611940098784483668373692489620158908737727215704283052593784111422206735047024371948494683283390044187684346517267245178693673223650910970335767462817080059873670568980580979176037510792039273770678880708155933850199530882228267608707922361801553931604111910000601449873065052840959154621881360288466027431082339157824136635927911805324713347916212605375120599930205081738048162852443286109243307462019174131683389529985874232335302626381372809332412132449086460751260583979717975291272405904907924705158831946660424405016640179038971520057339923857796470236454361585222946119177952709525975045596712149433234774147485513449299858781570022253486471556254064469586387751189918877244754198866126407973621086270017559360545505431975873713957563174280814596397118319424710827620571339113734193449030235162545119838464575353686064404123053166023259626682959217683717632227798932514093374605674300378384236735970731116597415817574708479251754916500109412753265086089626087878257060355947521138954684125449302990496807971702622436441458276441345352867640688564132278498843511940549644120563112496623752775386455534421182539599001712944944201112479224808166285285737656709693540528638861515067279889681940675546396098906456142993048149602633367878672983029826248049936312091780232359166649779946633527481866543581883007599160102194414346619928387585284453536741108293982883846758538432779186024728681007226228746988325495204288838138130756577281088367657771624753811894167736093210750546609928092472898358810298319060661232184660315927690858799308322175338121556061704394197616903941762634457896384267355218833022239217452637331758602514910900397067296263739140449051047911694488857786144126834474540707648780533004475806359807623901600803185224695406922649897432631743953978482361910768015675484238252819480294214720375923064557353700044124099816061178756698066030091237696337359949767316125560714449237979674975216352987899464102439003015232071064724043479376570615425067075873768045843132527687439063290584939913131901805143815880149522592147547074962295387508026888587866000210857661987249373614907204595735085478758252181734462126350021951471981236953323353539263325373757742057666653378529998275751040851437100279997416574082314342549198159071296508320733934376330909914897574607317745598867035840994981300275323184949018160705355163193423111327339699490955482358567804692444449479046989036695780513470262404104271426419209249108820631452605900774553172424687045987517044805815694632630365096271614568380411869210622115828687456952498346358090715043629329692638545312776184709504695699688082671390616069602005700483607074014138231754592628686354654263474346788288721093374192566139272188062710698045423872904897337330155404357966453292802909006755546480338588926364020061984863118944238100624104234097934267672645352516782460163993861640101303241846416852473984662827502287887440991997406508303374973553609187052402080319281534368343545135009808092782719526816085815184986037943989400584847531371518140161523530017661232809669281942043133609590730995415481985353230440448844685573765850277841684984516804967383771053593579135082587853465708020907656908773408583138230161458679298604441598051668898111488316503215257976026662412955255497196107088894935480280832943827730377188896911526801012701337313606760528577426642096341103269197196486894034366992881220552727982883879791954903096437361631645293373958559497342875900196570903191166790337372458683657517169142620491159509213305003824676081014309234058575250663336455896921901825852404495650499732758114805810982086873729565014369187281294833415802509751604105541202321860614839331023942675644701328404732513652902126571270623950461351101853616269042930355834927410545835586527740871218762795421765624439420813532114922829778985870860916892299950901070426716839389072114999299089149692878008262644359935083797779326746336643812409645829682717742024436457845416769517932155425782404112434850209989632229174108570638312794205474229364345043412667101464691653714209710236604068450355523543287700001213927032982162851461951762046522794360393491882129445264016144881332879256404312934668136944853816051381845873832556872557266386062372122484121740812982008156787597591397020668641993030541872223624579539496071307967968420258044181200918259971942163475992047473601718953277128999535509845871794935824411448424796414245631141960966059736136746148873150355490270525509381642993120001292310765755082987660833277277422941759268682990609906530636643762133939098333750609039014326811508303953650693474357388892226338826226427633084317577338960144721037025903641322518093194632240274362719827187092172259848266062291595414994596921902735858374789674184930507712200757998076417591651692216755495758047195742444974713172915249237477607667785367324623317372305386663401202572178717635987440902238336217383189410942837259028119784838976368320730476427527816770282931994013832786460111353193543980995196852877597539911802719938953735567338584227878563403673360076566093753122020222336924877916772295843136687020164959023145718532749387939183217237279084624032334128398881678917753016334227788182402090095937864761731443756039844429273727109718932916766486674807578893923600576461961982158753337454625620162590408835601359562059225872138602830405911623383360284872220546716099171744057398590146695710774124006841082729244289662452368592196855877933674669361244114870494838061533286169009833283604748005237200508508944614018548784816534776399980606105371747811341052807390208111979221847659085268525346974936012017038166054348397725313412104120539756757686823331645613286201232234069464121180562792784144346131873353290755883815165030373854627245050807876724926532103780014759378639086464758375710125198377179756679462613287664820543653901357959284638407937660894652596792566984724933208309210048434437436898527476917876628940747156657855263159118097680442937094348821130701415036322889023515012519640222482820963999781322384169751475617130357635601726275297548987008137209576040089423485067665935595482770562199717697197520348693122760373459524483880123428126799215091862387200605488949782481797046049782691404430301244526523738947686208632422647605447298532554400236314412574870162175442678306292836894720412851047000409573852770022630513326142367014867966517947308590247850491585505804143735589674111022529067543830619985464205434323757745781117046343439523856168344656976481691760954329042762913842035488454726417517879343008244334487837678210158394001165391332537639985414546730149373855752182798005562920879676662257424506891782667720140486175645226049552823658303845382123346460095694692234093794087946841987349036254937383659106263745072388413318605878195808964305250265233303990536324730173038496610792690692066124960089316687987310891549654916150741749991874265178627144185266623278861263458127815349171554356059940925913393569249929814401269712124589150649199512941141829101667995350026589636125792901729655492513713469222170845864940344735245120767987858867105160580626547336837280871873324028349315844778600652772114337147330421717237308621028929660561676624045904462792951888865730087312041122571866916066272466593523137670872386655214465088022780774203249027358836386829095754224711653806463182844625135933905466155709749749329651003019064478458228088061939112290581817649866149887910995554370961280514243658479479676499629902369858974332072515783398836572955613562256132464561215355539876253074535182579958969096621659052670005618295043070760993733118896038378567885271698379568734453259172558538112090235536882155051736689927073065755722349027437925593042467232673824278402521300196980737886096143306318281980884669757641098814556585734302300538725750010029335339606495675886651983933589656100124036004252969660074238002340396986822322512825199868152966874899828381591083915928166044365038437346485426726566484315144674458354857229735853602854727228601655478702237330032316321695668772085701522022529294822225130123123558881823047985040384600526638025060769469943906488412170939487447398379367814890395674553695806563031242964381748766441907558231820242430979848523054910815823121104141145220736573426966613806845574060866265792009255305466557965764975868876404210901236294977254286254641524947463519142634008115148095319945956131334781749392145714090097706343661950868779271686463523239440787178692533858400848298708100721260592893746858378361977232529309477126273092133947507555618879090653757513249459334626109898782540827932008898115676155121313752702935282803988000007582192217012251146781356434778037525167209196313920816887119790805362427804226961709821524304345313414391275490663516867306182267729092193909196737403448767959304038130882852378917479581665137705366828984818411534355586739434617741558993249062677521979246228146616793015582473111652851592027051976299495874383343435204623922796165692907030456932905038955934981841614571743311177069068290660129052450973807249350457565794573604880445254965046998650036615096168366578787340068408074309509528907195069963696368222716520003860564245431198415975699183607620790027667677968487465121827939082197057654653155604307161813957375973503911425799837872313570849900105650543158156902093518503139742842929740442179821243908840296276833580312245762216343628479323266282065044316533201749246088447779167388678186779458006525447582984197554924823785532135290179772978784617991387931864371285786228436764028036692129390676829308042610208488679314337424962032077235631230580059195609790572532407005761754359593981512451962429838445488118657143876371174096002550933853778363500859289024965732977496647144613282756603170034385566236742445614339471146623631886992564831148044647726312417919571044966041196139477564523709638528176475212401265772049824271871772543596507946206995873108658292300493720621183842334111584106592208530979472972585018335502265477160190598707647604183493859743218198782754666758449123577203393282520960334100780348903302848604861528969238738531066931644859631614247004695461289970878518669179850011312786968766870901744733689251019769192965211466656933016402745665398664675352693111854857100314955677864424916737554773662421688083373448084961431280477848865499307075844775875933490956612907373349174421139909855137305413665046653661175099395768369949905784896437921722078541473240200532553936090576262796005945325653221731580412119688226273046352993758106965222862272326874211345515932655250046797503097789326970505334350550042876898431377934200222032650945928955464713976910500212172446451370788553505098729602643935666152197350435695902480562090484636731466552729349574775487076829869171907215498447699783598448093106573646412719119499313113239109135882417482060432727787863956784929283475153029875162329862938093673995410213320978489683919234013908397199267931278762244233597159919120701503753141991213514720508568741513556595407681228315535439064423427647079272243241699079113539282310947891681175437501019742976132724997249519240512227021115312809800574429362066476543508062349953476311646778216245921576518252431738381688333075773071619950573947152839192783610506360751739870159981032800997050233131515493459257068934764464162640043468234837744542333935879729127663091587044184595153241881842247477219417034715292944511114639642824257427036172431489738921913124761006967657157723484843692714708822682507507239484080351176845880174158281250531383040852434304124475329192796737979823780972915820970222547277530214295659641324211736376467973209895719736849486145204045637785597395787679793869424740762966301571022363853553513870839605242428140836579548873306501576754863082054501032839282456756606379196217273825527530401559008900818681279667738736421914837030087510489099801231331181929252650766911953646754349253616302598019852561145963253237878195060540068676388137762587233911165681280771937170597747948084690544103815385502753263531142020489690963136941181381742033380985163679334456468966549130028089954676018348894144041935536102287287235978752972289590934511662521247152758684887571157323419926917612711337234192297371981866840150238301514448707631220588460522448658028988089954246388991250701464976468554721374009242455704621008703277014845722767326504189606591902083563412877258727299221169431794243289530793672450279916119829341622629369561825403699883099690515421897076473431627463980173872090323872998508036396842017546357719933060773491936072176823171062574860217803472883673225749858857372918164965558901770540205649888126354304912431837256788988094313219266052519617829879223377863963605276853327827836346286596801183328561041032691246286949460771208773546682644446300017005898688707719526386285464874682399821163063524583524063622016227532662729085687652160788901378232548510319517155543993828821462645888423478046119046062814477145765017293371131347423420808420415901344764523652971012463039885662672661385599914788127998359240546593598103122113453960923249708920033558300233505637213385055671533997608617702709461165513438928394359699414587544011479426022568213907494819617669443528166501637491249184115304240144739913618326768861223509075313478137852505424481804723867936679336289517662906643322879083873241984964611352644456109720552870466364657844859578071370454661702961192822017972750010692138076024326281613636987480268200610064553346553954145750985781465573009015130149865364801696948116806720621851374560766075346842183589810802611642376211096759184141435462463908565631193176242243377110127052502167554876643149932656703861536061554048140560875310930925808659840451224398835302820443410620023319614051999125682024730223769383364956550691665918700882260389370765418726486741805863883121021827496512451630892661897979579669994220182135098909097070552038179802484591925176384211143592907483543263803259446649823301067145641662954857030990808278123583045800928852426694253167280727523194882574612226022933844188257396323736160336815447537487579545016495311180160998483887785363289410078574789725955002707293352114348338362542517637129579425939188700992568419149108148809535467532791883677854505205998009932140491627865674911419274087159210470609801624518176665804429665101972843369427739043308376945499981093261046754911919829579349640387391801281411276745958521640013851983996118427388575042480456254318415238554014483473010909621481399806023709521925597800517466893923484388517109049604234798530332563396120708121036059678197152053968671557115701588188335005319602793959404880340204744263038403759552371935640269201910196221644086035846016395768759293535435391874037516287505539327840466859899424232681263113343466918315233502018130035025589456380073779557412730645897944628024363651462718032610466169594330258834394416153913095195294711332955445663216017357797551607901666213192817078430342484190949560287494150561786813760237454622114391551412993970938936831897339102736887270514505222200632251829460246907300626229390102621258194462613275559380120408219317191950408503959547761245296302821458273959795715940656041688275406676115111475238976701461389038379133719567551763555593340991839790389130294258622821526424058691970594731330389175346121515725369175221961782654066087284249868305401290012219774467063921281574142407061075671226727392248347787024195131404067112318056121726381455329689959275149216768830060477916454548449543757603842865607891961543454865967098622628141581266947012863277365793231840455812870384784948218461182651713931143045271501407732380033680142665544914551186472726582834934081350663980243650071162075870606175978538465198406607648022162752099971550134086793019756373331890642729093377368580909993042460308621242418927187674861794122593631920639039768748303072276550017529677810768184259482338731415187162399135506019367308929942150318753896062492090123052751367160440924458804474921019723006271365180852761374374196522415401529740191151038546468583284563647031469904803124216738827037452024150909306656281353268769966148301771071134919818907449847786250376151715485245146732973013032199743168564521987501700519476849817400050989698318126706237016023918140840019014739739330626419336394889240838461003744274962090122928179297434556160120296220424453800529242228048832286942605742886264477969743899312240617171820214980104134598513451243385117213395077148798510847302077751137118449361864177349582805599396312171474814071167837141643867294254577467386404393793446784795592813831248294150954599381606271976801851159672932418455243246312718672018418572657142313453823650177019834914310089477651685191629494518304483859093638961582213196203038345422209433279685893256015103538715315835110229859945351616196088785949982671858005061806786905520626003255879048956084221269343443993690239666116665981221077440898996379442748381079452865413343659451621327137870386842691990877142461438757330767752725200657948468753354328293475735364567165234023529113860665853653078105193933095630998505787208086208904098636548035567231340004848903488169505473789833575757370617373436541402516205362536354879497728131656839387391097304606734074726785208869577339938237396529393168373229578763835102694408488288633266015323190892652481776478570822872541899531354793861570439012383725378971483835447371247264785099678248382108384912420267097872246002107035593926297062376274174884443210245545348492554394985056273554306673540184562056711962402235306969931957630481257076770795208293549796125041270022942008268180579140740105378606612355502115271027601040270084764095676090247452780428273051777525215377932622273878113244954479751264934133567497879920960667777931289517489792332708213204554087142286870617694022795535189765631200422989606547382490201072650756445722480755002124304361679733429182782705725153933328131706375165732117654102302520776908593825427794442923562301719846948374276441298522375286897637331392956553186614257101016755680263141574991558939354671607089686286683473896345656992044021357099493967108224288678050983281861498774368473426147161417819002963868598512367829854070757554286853406381896095388698334968167163368248603712273598769693951335038472527325728532954638073656028340236505764381818345474960051985222277962956893726912697766973497159809272383813905460959744150082345936010270149561078051102318169549806381956223692339366289826319144702385977294499740788301855905347803325262917881959275884396775256661919455338022146819567355508254086445731546260313192490589599637855076459866687351275130888472040696243747711518798228632721068801212206358853252946443770465014585270393480098712241953693154712903049749337988337172939256656233327315126138428815883728818115550179649989978552645935104654134816843399937485170555205332104820267162266650347327025713663593628360148113030337268370332817678402149034972498716269468876273112597067521635489711533956985224573724866565568023381570219431827665796591065352763248927574481372970638436294952939805007774311043136624741717639880311675435042115314082224048206512193481516749865981814912349887824116668748751259523168485446499131242414978398073323337718511115668958267830133412694714745306007599040219024655170725278639222078814671933155768989689786208504637598623644373512511532450856700933392427215602861891277434257221319398381223703954262585793084460172363813286809035407164443144440618602278253964569612771690133199625840404666628601809679774141829773071455466010169409903463003715945301657856537603094607475488143549340829441241100422907151256430380386284416625690159929220826783089199394421621715550307733623905934527144105972940720465677037848711016797543362268609435947747995482049724012222574728542015833649290530883849638450672836637087278021580944618743849145630639760177120302398889621973699764873021245196948498536770567803416902858183733733316070571562337739920049939996813949832241004990748355337134175616194419218714939838823075644016431194251758420468110902238518097129091127549342999471882047039593181643254447196542595187439840881686108605066126581668309002483071141294402506075133232168511039028743258815725030808311358850608203157995423042529196108636888493494575196464491755014112428305771053933316394718178250799654337935708227434343417347345653230659204255110809272705332614000351611298385786195514517978333767531720780301963054552923015387553456427875839714758565609353855020752802018372649904517052729158979859271959488862705707950610697392937818498936440476640269323559662627430740947858909433572814086079673579081577984206831037548036727234196897834626593886437889671750704833949192422526712321855988091674914597738214267022402941892646291367798866268689247401031825456028151078421117004098968202912452465356573321216680760016886201370959716949025341419272778667972751280536334747769426754676113400227353326436517908894078588388688817708999658991565743579869046444281867404105711450456267934247523062619257309798665096448936706180749150682817806161199320570238562607683650954830475261275480662568104470245228184646069022236013369303957132645857627073761467866448485189663235412122250778328355253819989374911090409115186495544603760885354214093415656363308854384587030602357697754783861769356924391397508766813917007910205061911083438010114318688776237519760337060159062449423167660622978612672765599092773608198457581426259830541270522369978308277350837607451216518070750391339747587911897015636129332803359027569360098556354058847483557966238313073577524270309273619185630116167042036618288611652937211742145569461041883453008914694431816506264448088442953040146488809426123501431062794832629660049286164070082352128306015914285066047503272719766969819384577034154474250701449039511099870779056381439216662945136008169688376756037410296155831186609132739050957627236958366525130560273374389315046150632444040237511235154940902965500415402827191864304770288706792950731946508967944347324430061298314707931554886881248656104889459853959349624221744668322681237353624490096357377335176002467617603618748264151309929054210183533974107247248670454547545092296256315624765236411646170575794057536046398087516708423074153549993128709059540974661617419337794925872220116663631424940324783819666861248944268098727082502816276598282631329088881472232941941754282794496652238011285919591194697344366891457013837382249249484804310429189814961205455119606663024328789953633677503580890494882231940080852719739516569400724875525459780312349947115709313804765263578699689195028624765241280577595109788477713781417691757945889289210607831176959264517596919759479596971593911207611663314906122068089744611472023472381914829154273196177929742146204507541272475855765207849970021118852730229241038875224011678158623324367718360318410093272492577741341081749033291204534277854375931920099424665544882373302842662348901134839215125066283740262480880466964172746934699442376823549946891804066724879418129079160083977308394200624577687898136278391486285951183132330173084438850155911495295911356021448875598947777933975776301619415218207019682726470044229968661271659924862594691378281636716260202125667675584171334908465834461661537371473538215898873754979597031640963048764300757257220421556924540035695864494380114156377601236356890405645728522572409495286764658618367522182566791482369023942748244439107157012612960025080388755553440670593720506656704332085874473307014616419651744349872686712355184969610489585354244058207913371149440935677262048735309285666452948883062567553761207796338396630091552083362887158639233505467610339741860699218631093520364368882539397501823620434156965611640698215301156474395688843493270183996169853773356195078597573568081760757726674912675882347090420399146927369295583723134524561113052192301292228431759397510414249248909706652086515161091171763291883989164434719430227161240904147542353620847070168313015189510164743130143517229130820086628586775353601789538016725937083859035105814423800176205740990070388285261525107938055302319819533246058855959579514494854553409330161506220685511977002714455757264307402903113018166292381300572737553352191337255885883180376361135255015529816217754270912819194613878207241454070875838594091964388284958973330011068833886583489497162667233660339307658626408530871657917267236564778595928031052139702595244826995457060891335921855102256146418364185671418430469659793464254237228296342966362677270233077886527594491153586069668694207174954006681114779095044724179153845554084969106163487047762254426231960729657219549877886797624005280607709889338870122913108354575253650316398026926070353419712303722171391369968228372116122557144381976555855698638103871771705797172328557997220700554506541010104904070129745595942292741252774849519962979935654942821174384237554534047071841864658617666101273018648336597546502988372052760746283741258464121790963957599730372950400070001040472178977261029025762334795758185981031363311320284904830141192166790219475631516175860754700339151295602798914813881377820400687698721669874624122770486882525426350141586451075696636662284952586669968179397972450893248891767967440766879250165590638006646260058316076031093942028185855347424580193255517756148727407422520791828421360017030945235705637965448593736178477887712183685493039953747258513829754052693350550400606837633801048192152291261910357893248140688785853020482731518981520365970045885033273937478475262949414325626168123536411931127418681981032229020024883542278362452789095982407592971342325715321736620242425430362151215850504131860198157861958692374562022601284706053092959272625549499778108380683394789981850433693743331009681957484375991313955644344819125591822003946695209540205355043658347380099543849347194320855531020428355492456675539213992590670278016245721147532619769972134038028142255262437601863803035743351722914067149840210016443789044962651139859089715864564704849608609702010006812799539415272408232523768971607365451853518506408344202737728514769431191507939894584167712593047760367006656629290440711035370295084131863973850142227525119283870062819235600755273038183903119727110768344480723905859146690111041271002962746125172659655443723801818127447025226993683904404518273331461042008183455281176142489405200389073467215137150742073421183580470388169056361790676080053468888241932844978158930416929831560124410251234066472879079305058179568302224667340945560117915358998019445711983201746724149565240828638787117625397205889121188846820223053862149676721442957226550441590926877811349896756981152182436452281764382129512460855567647715693173401437641477611887333912913475274512423910184307983373330032882532460989133237086063545082617015831661741819564080563266267562142890271775298194351359814156847032891137428774249089509262701540684022047243480968680956096237107657144905160142787789785610995546846645444727051727441913814801928773599273995096040590632311852138488796074409222479436065608252592370976561380450044217350591700045737814751625467759267359804091451591768260916235568676547010014507108728974916986943459127405534281674557953226210484948100837018410387797713371248778511996212840222328496368900054129897505744686918382467726233198924058903587532189949201532139807853508191094620366370800484021039939428184094835985850267421392318949687984843922549961576244690002480834000023488867546503978323454418981904250216159126907603495422146452072335543143395887868520495683755969020015838474858344045677230963070675714555751516342548703444804778401266268099738323302261699834114231570081523670824143111535729625926453471971324479375538466089296505961774778024597673320959104249446415689937339127084156463177227984291075672673719586057611749236796868594134670628339856811959874352213040155536062415933689886052461614123304128911104769502972374078568516119313537128502323058972420024763394092090528825273568232239076681687870966004715475466483181108553250517415102123270416750905067589313161726678277797761050604146144286151297671436612711051938847080770178333540742034492672614614147138687382173906422394554122913332497863302417307125189461463140361354910733260727802211596706258028116759259993673849401032464204506801747128458602338668829971110231550959717504129452618490028383882374790498926565770138290036736591219726731065769034653289119559145264731749484510927553277040308186884309865035682416514345905004007642168312290822967204184338736379193580542506796025009671858592903558018962697812573300577837183441845653827738942420127088465459901688957418351037105960681073453742388764460957091463812407319827198827865188477050351523284814034600448400198422892459562733587270115617505584141705893302949045145210446749339919670006708934184273505203172863947668243844937004380205320202560361937276441560218854372700847121198815542006661642134240794437757716983901892452033453575296108074670245332573537033907957036848443461753835468982790668344460711917622251838680327006747271841093073798620604797491513300536214983253100311064755459818480630840349170280342251177702790197845626713268017611618627209546797476973127692718703146687527900961178426651970746894084870941440829439460012332043272452594330038561130487390217285456527202500632361481445901140238060223049708968020392681677665263973865250824201974742619616311206916864450678544944679056979125693855021684649158493430908425839209470874001887673460161257028271593640795664430809456779532227791984125621257252072043619473526807310867307187626429369111719096398297692527777047788541443124817945946212060623390971952417252976581247223063316131589803856964922632680574779758924225949933873428544023711829280068432259701638435246607123053340856522713773989686363265560709826295069621395220684114798253145719644307668913773482051448558234720152723887071044209593546757644673621588656614399042667015028904013030503810253093409552929346449153771274316239011651057242128317642946746585250563073149074293478680084808361053967849844531152650812123176463818432856202099463333590715406869011596175546377941267587597604721449145527631984791910231861992319322852492882455338413068169141028540150975034544711768645574917743417086925535517639440359272964613359454592125871122082946995893086942263652133586259150862571451394250832352808833489962527439180124713917950015079443775182310353545172886229902094513315774594231252039876722961439890658365861456894551342520218392352453943197765417117622098820473896801150144078315126868306572172878439272804210762505379555410327496030687469572051678498657930202010519319645599348562927953483190366257528145853355292519202032622499572185721853079443474124303852109056334021187620216083151495533692930568826630137698761150734902046767845626440965835377156558514898710086582142574084859246190896264628848290137104960275080037043574951216836331839953417222521503145082154218942386450965288689508932184125977623796330275039486863495909482582832270106438450446509840835223170945789656499822439892285614673354763578428216935602903829612136190170185283399141575374542265802519292955594044260481227719750291663256141213795017324200287235808098288227441986556510344626316349397906825238807381548157084974284359435522205412815068927731559040022144562637141285110114658604572484917126623174967139270977112380420241038801754839201447032654209977218393564922566274615368216687052218738661866627472431533015693422225874227802259241668262532732087538792416416584497211738678063858447642938274757150745603047112146381990004701908717013022446561750037736697381266863469268899520878610306386324443079778206804168158962008671843687716585213839070223188105517564133203044049947196455103406110602423554584187099996619307203954703025778067344228858509478438782064262672415680826204757514619662346534757827831201113119178132027270110318592737080842993991524660352041627929467368345122281136811915526861829320257610053487527129318041323435139467279691667372774298668447165223108857895511637690239668587618818661408967967446959320266809607479539366131206489789708177299412204548556734889741264695025532263874548510597387127124012936688201546933207097766226441919726866921171622459590644597829991944902017596088462211013631716547296878268644625553213637533598596685605989368907443376658659195177829262576438868139812599429714928282685145844734172057476271127253660515740575338343323264429640235440641978757977631845478229239107549508205937720988096838957787226962142743479883126676462586515071195601108951568519267942217407269298821705868748126105240252371349352259138027688953221218180474233292339207942029237601362265012932949569116810135353157032165741017014468420767971043194854043806782555967272908110851560494152421215288752996220381916807060501970067562814655351307909568202039948705520990231739486663492942887510972075315140800244307895746720229177724859679892826560493609877865952590358333638876362834406502221049432135721911266610126789853152000417638317109330738059792762766680721900030998145154836901896543685101510779751733890774365066909822496180854676930608157755168549785737251296829066586001093135874328372046673621141939860581865962631778107995023901935962102714254747238752503579844547299811767966035591782439613852469145274311985771198238174532229655529573971264016451909210318552202774387475975129169308926652387270933765355601463924935662269406748631732982561957240721357038208218702788897773832729936727866366306301609904714363418780511063152829456752510805227306615397264000114013523104406968965402342051785795718331050939678900952045493019299145453422003458133564822011528614019221705451513255390190193928584069580184280183051493608973306646518264635106383830582947097855932838619683110729126328534202636934961436014036060156274443101287034926685172079206860525977246717202104232240044174439462956955993417348981208575137965576928565000915614027072965859908862749368152095446253441794197322750826187640758208021504314974853100269083568240200463140548220187114171783465510522135675523256593588262665460907495148762158788181448441818887284839085145708168196132793443934032057807093289888536184947379858905496279190424569694581278700623991987619238361659731699862251940599104643812996876439302735160890058619344707286723175273423410309313933961234951170161219327158569408927254031540927180709300541505518311650380289889713495991645150939573377667468526023031826871565309693592835929013688662199569632292175917647235907002871751636415829731353433620493789436232750545455336754968194105555525388298160594361449295128539184695827144957176066275668804436131672769979214930657851784747408445417656003318299264725140715528568775683410096109855043996308763606265693976834763822114584917690658961669412265821584779729675967414189134448470427068760079813038265405799135912387476371410784603980269872907950397557799686583305603458704513710845495017365826587974709897141222741770913785640415902908662629043143763178403814103647720237723785041959732525019283401313285683457886880490237289285406403369513583287097743750718215591836090976085078787038672062006245293319187024137500005707139884464911819073968503489233536176086260739971232361219812856800085370696626579609256111014416526363831962199300213965613492646422444398993649599731672415202947782945978113550146342657322559446171211547213144012924156199450123011769612457917459439945056354626054224596276830017018373019430956294209854874128419048579615112185086306902256967297093173707693799075803800479701797053554943754548705498522516466919606455461945991884055151857573382692378238136886711835924957317489250643813787473080848971378252063249001777367280654261477374343505891350620616073219490074136582926300345141450286641813924822628035009002617475894032804314563917160427889568601951316076733064978606809817790663788845675493106122438199976432044595664219609229188732274344618482913101882625756088542252011806948070216324240940788866069260802501049039214158468882967130660306267071963752892738155304754164977028166589919804714892796421341567796437334604223711840953601175853078964624467596793157933269893700609069601304133070865912089847486263295171463106242977647690566282327528557723335407813117278726782508423812875897837590681052849190202221063672009081997421335153068404690121390649844515669866784919383582007247052170239842390066501917621319427481147562107510535305744747969311960550839003719039998234165549110254091887524544314750162776045469198304530443993666526127847860525368794400898662745553760047386542490482943504347071625508548409943466381200776123416756721816269064483840675860758131781656508014096653119285140176432747980341860493622358090027962133921692565626774986082584850699780070160659223497682288731558443930896275402401348235561822958650493741957808993690076809164056764006100195456672992020302054140835451488545057531464843528184325864339664972405931407396341580436151325500313289875312076541581955661225088576110383455427084582077612918315272615734786170551377705607935485578427475349326053864485681192386966132378727482181794658073263149150684446228258847310983866174929077803692206991745452934154023970662919312575614173965680068025616292213086060060653481665187175037146753646842225354451444908575150656777633733584594823283396673420574384947282881593839930597802174779918781135409240854481586674215193204586024791988663471185384742883778317399821055059345989703626028065407780776190790576705932066802875163983453063503864263821593214636241367934119708465388779470245355609587007765745824496985000210209399408388320238726708133379151922320176311909954119137515638759007551800879399234790968485613157498365225219716933254548869697212172439063951446502296725068539211597968388372884384421161271909809723308083629598090498982027175742833150602153833404950233687287184870547719173386083760408862013343799573223314507481108859436401051319320121580238658746944746745711348427339789953890654753503203756400558841379162198684995878310736618470630524352040974701431094294985023649597426949089484968718892726051922901754488725878482203142539490384449418223928823042195923606668379179450092456406735213557943746886039806649670643063786443351985234712610804126315715885581160519971610203674224694137649495403859127966666636726444790713567736130661809238408671427122039994706615210370889988645397555628705318916090788897096207925237525327524011101562659946552665095253483980359560326018809593772088745354871032568331354871339827668408215003306529704831973200492464618685804535551755828952057898223996493677254420570712891372139725304010390398833987250527346029636034958040356138815987772416520507952138890347204163028329280809988302800723069059101712919627591022753082361947810483284472484595323955574079786540773922968636849898053280659980239051113279392105955190568625911167718613459226400780284595284861495782756091285356068406120166589991303202620306990825958119739927858224995430003632876753868579270614881236373474256850724405400015245322208662347661276318005819313645772585076073651759575554518011039019037090946227727487816720616939816249670634732563733937492948026136421724852944935708242263059780513753956946419366010219788786846525732772763261783807550805618473595819245431950385075645651144145945149957009867851822662630008410976044130864221339262545211314115207913004207559498590046684668705293037195582278183125424984529981396510887959165231251537844864847276011092114812503308845721536032525808534405488389359358082320240179375205618429820697720542482683322027713006790603044349778595053248477810481028599770928159719854376786611652497426166009589531798735115047394894466599698782851222316355451796310850499762341221402188112396809408472105976044933818663993639457209767816008207396285971489693537988508911134862407375046699453123643537701848623236229725811340475587060847417115085991187815655824596983012350572807537210902404532442162131847285816375589000232974539766498053419435736478596656545421063417583711747144509008712031443313920078190782102927571078606895990936995353489909517123242151610539413692673540541947065783045002203568610817800723776821887524163713299986725690237274993569544392910013858210332990899298915654224159622043061896701319258823252272411773612770459993052634829775556974491124772309123815520067846476483659810911275413220847801491111512457298114258162109735660532842290359056696773203483331874694084673441789432901524053413660888020422586978252663642771260934285681007241739948726017774424940478608710662849948132691265169277997142667378137780630720166215209393882609490216789439137557620128235131215694163812567970158456726591927499188986334159280464402717874228756605055439192633810667679855010510790948764947556405858696069834735084471174939283475802482052040690224119698409550206217513811390229352240839672998950369101570376532378981865574015664843676925036164820031348135763215278000086321195926476480715695815251639052968751754519896742594717790563977491697797447617537919382040970905820048520201397208637910839194083482913815616500719650915781467289492399945500790011893694119659835816484162792846716118271297253573497842980665632257357355745548913403504290421411376233299060407467771913166413523286529464093266987484527360535742686302826962694223517930773639746843978094037393455189697906939060397786780827777619802510812811001197146357293181508579776406217901835427887607195677528525977844913985803739215540657027581765843190473311751379811151601655903781639879768108638649489995111569011010279512476713758983340631191306841749875951817281009890315564681971988890920795972454979033728030870144178500246564848035431877232969854444486776702641962628154596709483703853942271374305544576083681400453800110826676878605387827907523683841195646739576384587922083126548872690408816379663814852247990495834988824020484949493633092960301099964635634910609738291708168035270387413758097294978847716650683419730692859893916152696740979298983476831850054383128660279665266059962974708734951859206868645960777922931969998447145446033853981099450107416334079423338076577945390445096195334528417234143859120243986502891115459315986843434448301061465482645186436313064585631015508635847627121087867251547713100556629242205695822203256606630368290209986513161721835521006295534328512427123176353846567229812335880709741169075765381977021463591337790287783093198219248228942297070107030333425304250289288554141247211665272274160082023509560468199878050731771449736334941077065676238925755416536842544011281034930876181464052894757347849132954584133567401399517114149703028744570828145334079086468977608713885468720716292618331091488650452754646745252445586530621045147287487452482196309980405939860068227472694553842944481037897971541197332797954701390736706822591206182854821668266768816564913336432866348685272494678543868142576832587032310337977792704241462682121467671862454116964952250762784879200112087251331985614521708501219668260471446632590102578350965247212081907943488829348696568467983992792480687813731583725110236524606068662941565288563732920807237458704697545520431273665204616348760827777250810627104764255488983300244751730036880531061118634136676227569295236678661199290365662803293497742830780955489135199629023792986821396500015923428944943973655279984554790302010023434819424756053497927710667364222288405395331713745054055157589894376725590529754001319786111748591314924011031914680672860384112310011166745314787730030812621775225015931138135761955840940321082113253708934441069561849323100961104680088233028923783187312286149564229670658230868225218071966940323478052352462217941492733180220989827713243906034304663565085443674736379771793804838169191560522913390667931071304983373310619963462181903530807982764078921557949125239105273519655729193374908555378065129422765481308156222378963902589121890274214661638146614434152775623649455831182634652018135903322451877817300112433854159177801997162444995924902893381732686907699431773029487027950256701657733737265429283189843764271576073801707223691421576033400402908313093927297254968429812326632086911241179395681110395673062656771303038355493308700141607564606966413358188055006825785524708482534311415674849174067401099709707918162766512452157016146822600024084207148281973397737568174848137074503751631681489320486478030239709381138213181834027209329496018898785741837926592548229456135922443680629707625121308065041448253920733210908967459821240560223037603396861926096901530758776048108349890919781673411898467146247250469316210300523694465049697136569717860086384618195715532496349007557503478426362888824460912334909252278624200557148208900138368985678987043489210853817897920264194284217211787750830436535209863504655236863498644378530516001894596190423219286068778694947314712844416976698011811000995807557140032687087673776184732224721741350197559240258397487594238631839215199388897619090345997196665055713740566054732413575876611535462780366484382174229912283342158165139967727254284081187211727574202502897236810444807233545049791547184254177601374872494710683060288709230809165576986906519683533550938773107532065976442250172511791349079011992098133219578443718559871652207653682679480600166243882421186892197749486332250934776187120870820582562256076615658982803277534703550473317000384025686128556142923460497274984768561930625980824249177022782722539019258110574439427921572816084223308360930110233157844278799326576200205531990095040527027361543204427218768417923726128303635941303609529163926108700386345733651219102238813136894715775596203280531659867964599696673920238223408060910327943733229581413298231230190251351399856835004002682119881665408001239961031553200095571382983249352641049467710071918686002949990425689595186647785655932231121910278034186670383573059886530988950063204330267302293310816156232584770284623660869374715380881512714382094501045783039104077722352364145962220239075757596593337820551596935838192803021628548557245266163488294181868907582782257876819760720376477184017989652301139810110502967756596090961769813198518485183294371403437573591842466072892095328766223016000271230485595715542228276397933155578191328623997207192340226723678445176238120749858851292222668459753070216389635554388542457654506101595157791712593454648584897025259674767899903096153221033061204527278107569357251455765563934894989180429720831924176802588261150204414070363644995284108554612932123631903194683880474624999842478318862127204999370634681367249024550135454650136718958736561953240498373923143354187860972267685368409562736746922408389786949319627368472925917321615817204858893307416363502990696741763914371097206786942733503926163697076396450015665822989544016113675650041749260667980158855880766019940198324988821145538896038807514764662459769296163319527039829379285815031242878191823182155151578901828788935809663785913923353762837762831822622682555145282951817070341697863247220231860663474154380827966866777468951671980075044569395213582962964548858399810582354072725754413489342205484233209330037475572846166917031307369278573379571804093670313390723697537113582870603402487615698416894530987194170912446955998216106874976648273959529183961079055302320445698547977690540538961292023076967293879652331996789800200266645185355478574943854125883946072949429104701648975510727488107695921026907517121861796409652063081458790605511994244093028627162794789616796462182884089137845260858570228343922867210991771439885378756268739553363290094593110865586242206861216644186915930741252408752893077819722451117357684702807503085727151797413935212298118808715870350439233209048102164970890862513033727919219349892027317295954359255276481159282670450628137933613525449582930348502332069236276214657715115843534746661509519494021934625109849434305184766738037671785968981771708924777732076531855720404319133470928985359854868713255142675150067045066412899705637425280278088173958490594506607813676046731452699049186407995486075999274717612134872090306315053186264742083311446597325381668830647730270668273005652841037721667926171773551488831377006323801063930159315826814733075761390531370673185969174822829034457664343117293898978205044891369825952130390476015661468507416858084159684638709570779434328340711295514107676522502283892080211184084842199970099191760237398803723227608496237006123463494129357718342538860921505697107194819559986789884792190246355828534127566005039680028270972063115733293638012244665020790987800321032804282490283388868966690749099733751782907770500081053313152134601570332613940015811100131292025299089885942520115423585226070966576211649676883203130538268233659286269743690146634670586295853071002457652231356456807164282101535802090084221167649693576608001586307345583108167788453415175015877398594030460967030827354136569658616950924160384855914042863353153585883843309623409797973136959906811792616215540569329378644051935550258441908278199737975797931170831764112388713796146975788026918175299992134714857028586088949861533764120727767175167500411595500272088717587057950501997760551153643914928905169370242903330593685610201741686255034765556180874465059391892100548427233187709283136432380163483270442185780014637658798651603849253826039672991736643036271474151456281073502467125171868287189949474494424282056952393496874941224211720204774873565087905996960989950686033650793340189098820634613783501788137995685921990239187139394287942253158621825455736066144095233856360857794812465453643468624347878404051639780021744354695297648299058918516869654797905870817588580590183406738093843018320605044204616071104857195157760877835820242800270010171374761657456672365969783189540105108770411982955845019087226606572523496226636367435507358562692787356165970159598254065543964471670361687817055948946366667460346516963482565126368666874877187083737059810193458574009149915677794221295738346826424850396248740804011857808624726698241903200557847283461146497571472053194585981953182952982422825657783803769316011640723832506026583381562684918563645662365234100704746794719751189950935859473614715211433012556327385466681801825244149331920269315077916954207271895951376608727772911472920675636737926561469143458136457392945067024095084067984428667983507336234831311422408745645745692569437147898132685086108627443139583912223758232185361201285050266547680000025155218330479181897488019883008254715766632143447500106110412955766709723042029859730655411946428456661134514940103216549388053766899117586481787905438436954121674122160314951954782799154304807340251839701141223154190944758488352103621828008189665144174637510544951983108045978556149993824222117958863443746935246799407002896568448508268013121487326829862320823644174478652407345010356903757373748063117941086355019524736692653837652402774350094467597765718240807301652264609856910817455627739459699203191345690973416845102851332321478463494497648226427824748511925359264959155829349587131943230771434403486444711963757926065087096193674939388256951665729350679870265585418339962975015001487342262000600153517767322699288196410705950449154352119845296738441571686987011938022246724010311445821526749994228313964074654981539502555040751300311755161260750670099572435878693428051588011513526227880546897164564462566421772399357991261550793235104566905016617884185059982028032209748094451069528971442100682925112477895285166694687569069181360107482870621969312504870273460988140090123543300509281308856432832298322730335607773645065556086721850785993586671657386972912153490282483290374811223303192894710587494686844585916628218807567102533915765560128903573318485790406602787633076267608951842133389792529836098908678425354089711494291465357457494507443277658003666828241328330436266739927109034171199444422280222365219737744753009043717953784669707074307428616713052300893650285512325138206000334400328141725817767298454168606604856362373390799418442643687662151977461758784976545181906237422063462139038701676091114265074356780729913087685357528210721339106402492081076282034288794809993810326091266381505184890457905691724326832526017172781362535707983749882640328453110085294652186784132853543303681927121111863236180548611123520783490558435449819906014946794583731501874996324527132435520914799074639453363968822344453142899808400355523022102082716630659130461598556021883737016044767845684612692518690935468851592786506397503364428722289432845840836198903596627267733236824741266554696498505623492856818135768825590249075229578511561109595667982654431553699909637734957779224891199146883124029467613613195801034201729573599162900723773920074816231651811390820618082911426206922195315667601154266266699519991137045703032951449054510068486319759731327379600456821378443291869105389666032738477875177592534340788893499947016228367455784753525664783374882065919096523482263005316431334149886225621561201715346967732625085926123500372794817478997731540569569433405004599140654699764115381434363420604042395188875995785106738457317430790649907898242156970797886834292344778673845431576707927773000014962689295666004845087998263065780758396904757551962526959661281884307077227971523351754604906394148118371102260308011364009270512466742356342450896527742211900663364264793485529471974893699326231036107203481647716474588778510265643674513296603865128978697401264411962197166112161441718310690630409261765132549277134085595745560240137983706376740114527747999494581399003218139913115325748875169712317024106010557817644659541718842526619789346363219387877422124867054548380106004664771764699402987333885485624909957057768902358528754514715898456981358193419733919250156788441892374190298166461363262624505460532110235747404537005055099267454112968310863872742288940698725069158537481268536244457310950850575445115319092884237178990116112226110212159507707124188573394532799932846635736712702329431043642003517374754474331048167796767594306426371623608074107201074826575601552612601834848659185618015837525128249679953067450428388858818556388967439125822173712752381565122964549373075086558912219842205549610930462377209947516386871826740713171368708907698044538811457495287559838904340455131751190055133104423556353209065221087342168362875587072495585272408368360792995479376603808261201031568548413508171993473534798574965238628264684536944254415072461383293003749088908083691753540619279872713120937360375062503886864190256725536796272388630207483034374149198167194246926284304065985508650940634459985319096358533490810673897572873269599247545224377799489665141461977244830089834685399249659078006759971619882312004966394035962248075769615894078764821324146421615326626309247845435335823149164116850681711373611914621933937226979466643537491220263483320921756180201300602384996042543025698647279631808670025551257148386532096643874919620603169548596131765909346229462394511634743213141156262195333266910059065257286588432006153582315014298273309127205455052101862424600810604600021104767242654291766975350621425419057653733433518736976358140007301948263523439053376591093072281913913599155778394481235320764526421611908790985707016452710314053803273612876422455293205673175150860089665825737990368248113327476548033402671932858056252488788298519285803038817079041643484396800853513783229208972382202761488431381532907712303585420638421634753574777193597108061274176461389744234479227210473989459645639664427282237732100727325670209540755258424094294021102560855089940253787120112716508184379007038113169593587784652575136575948099660690847222610277221716554008750513090132511383096721894248816798012548945971325276513526555907116922224272208766793941751700680014139781019633019431180737184528957448931953389928648087546375659902744169511321993730385876540019942991547635984866411300897169507302444827494803932918261728383234007122329721090537350550842084569459391708355811119287528751234995438870876313699527411948595376246071080657098743287328060259854508425423224017962484301171677608846759942147172721528440432484283209537646465959661800107883953674539264071116414885074594236745997471859682296600628114986107966696670217197045057470735252946576326138309717808234111637082879019598878324241911030469906189024084047504462647973476848316996727914400296828696035146609173133728290240703445707362687669075807691530677795516625624571457328428312013295597086021061904813611953360713867409749723353381085661447610184944340109710223307204366053552110090054607743270412283801968234221933584812690480970379440247361744001830238273900364833505204188583338287766405736707881112239533915343233453170431394634224333702396460402617306488158685138923054062801638602977174460253862213005113304795715020119259182590376705404613914332035586226692608873364364738001549888545979900006073652091975997183769008801025385912428953797494518840197384550581675678798150722510501963169446214834469237199351859753114251730260991798482244430804428064215451765044886234747062345292193903428446705904041794024111948885429296031264406749795503581020292260122963316627756700466870741678962124850021573569033298076960873684723331432979623461063317827943352346188863339252586950821389927662147901172439362979921845716621723360509567451190986126593042545501269446423607142092209417730717901737382255618068038783184246345432043549266546782836492255959977477124128583063597027931706680106150393011497578733285178125476578711899249867776972650988507610070976937768653881872062519636278901781039160103642761506738310417660778615135818165239016120696425199536871593354277243652433895160275051967934592443501756542496737528998869185169995801748431996384107264726003539172464421884751040969239122253999900476687868868614909275759834288196931772006295465766157113792768462601153368906114199424340944885539194715013949470734557733107058391106073197764146597762124583392472276324363093451834846969331976913569243915513831642406633132022034525142153815110831930960901266626922078992041912695463663936456919259288305211445964360856511778502553813795640004143981882785353023789244201025417372535905817787902046324687302627929870279101425782259851844123976097271674663146685869555298461591773043159137524433712772177550453784107230757416892067218240030470653039070317878425611683824412461441924027923106413091940041189241178144697903077409527708786245091850251984045969390635282298479123798850791014268241636664156590846536060541295435578088724204980401045489085433177666523457014447111328066283645517151231289153170018796995720050674356205108885889180679541972011966251450026440190309946740083849608875128339981041255007157470772979113315735933996906352664230640574554080718636917779249926508694539847913544819065059002253945782716335410019249272420781920562442928148325539096800410000037527727807382425646039004376411378587506780990624034454052817690150819358852709078312750935435514768062773753639374656487132780190336400022112940936080230805558704702285173967671132291667081609598164550582517104948208912831031070965661895512152950173385538474325099919827938874236941595771267426353956301356772276836129184812236621868087778138761789380801354269295966716031079335844505083499886809443704291325786898255516488480155371539050188172095580652260594366768986386363513261349092828946708055846542448458103371348378071345608190039051437254542832907780769007595741611122643508965957992528478336083889438931139436103440851105105295950716145725636354717670849303796342210664824020343281866995963378744030839858623356800798014940112032320492742173828867207251172408181381827840687541265118770814018941283004751246814412539303323310572398940267012157834832179057027473639764082912897378641836965458061912981408667645980328878644102938661142389252040649380920978631110861713974457616337607093827303149174832791861672565122710868519558539358903356657591837174981208507016494022188762716815749135223165683088819659916063748574015453623625213100145965706536272086257556654801120798821290692074586877304764321496255595631277816173209478985808745098020441469471652581816930331026175838891068860410846043735812939866795144891086459325294135107727617665033776274896759868419474646751487504341537254566238559357707269782028436316754030135243914788355640499402907432043669757391414322255720330812534240849148317467857191361440498419085057416013571487202697336904728173502308323058404046086226703218545323776433561459168998709065340747839604207347065275631189121819593527263192831736868713038774658487676258673145584894611437991649854255132295932734892460714519211166718724600146486911153908704317872374772523572977468796145058037668048596065683801229484688741222800292053753358802252971221199177950831026041795733108336507261464110066214317550456961710741957464477552652203541928530979942146246368125269781207603647568535402871709786019436285914474246998129746720630381374605587270822449729063486623522006800988217186184976814434702901022787150057192285187155341528790679872972502371959414260113020996740820221169545033072894743451797201763238323307446773512015403210924358891588438700508132637136838467634906792641237692811381728463477426621080914730671595549084416802473073517155284090978719218687739977715826344330953576856737824645329185013975782461614342625604444899281902882728225729778447028048798931733387497361309878903462427185198002926957465367048116871843675632875005202879590518096750642105949809303336894495809728915427179774798967370688721533813321092567375844936477554189681613462124376163977644937777138504778289844510724410852604679632705412970716211638601116144424194080929181341412980124653140984411167599732609149110822506201582035342053582531286305941090343116059195113712786242962991037223056778869608031458795638180074914904159234710866573100048702150595377157712415475732550918485465250875490530788167134573655596420248190569903467580203857532112369228652356385095585761967951121238008231400526142442657582299884907353802334389862874095414601872401933671278015009590449647422173381995396243947472584306784374125394844426157718089484956907388560413344541871477702958911919289838816201208714662760013270770155230993300856881875856817873669045310164733112087317592184329275889721925079089012794618097304998387759640036847243018414019867579455773138704763464559808693114690742611758443717257061895702281049849432014200130293263950595152051312272122176522459275441520326164995719501470909034188361148162914179443189850414855695275321894932530279962063476422275402958982285198992358264538329770985987275805185891090098393730148601054676601185846776318046281467597385179923937558615825146015687105653136078903137125550209378970021785400495883182448618500518532900705695959017140038987700469054626515317574055429779996151271450667234212995751335337143138193480795574668026887734100966541091214538571071842239040619682335025745997739306511490573245872271367726034612765777256554477022492530994654226882984068387038487677788573880194886196965625251325850165468226809976559771110507451915378711784244585036345982337779533961243445509979157952093435535684663167884329827387253375597104041681798633040738685280041956089119147855439993006512831134097893649382112211380595623570954162124160300826896945309527413644679286733391811882012526145441833686652366602351945575015091822079952182358418929951280049220921758895639724311026191823648391436064249690914079438836640123799868432028218530529659790693438436462047571886234191837385808856651797228056598361434918761999572020495336472995507259181410246166550385109880883286884666483444777764857074914338148213185186670112646844663724086028118216031012582426359704086596376195738510389355038954321996961380178354495121954966650087463020628512528947564272568672861488952583924881471795471069491870404963418296377220344312841748180058818619605811473458973036852796795457950950881206729495822823057019652893538918503204714912034371613879004156661225066859156051419091168233006265945773339004732827162647933264155719137146780620089317638506652624957668087976862430840537555877876637199049946520629909486032339625693783009157175914287162635329617149526243029775973835754741177134496219562182810526238152187511863585528547537280394017707204581188086721807674391894205857155602836565311759358038548498390957542762101741114666045869450255365062765492385252098758364948173284951534797551687686015576818699858102825246084130281135668067480310362682687968922567992125446077678601706073148773232893596878600630505455092261868235711092949772601582277590798776377437432833792181195258234864469940660095081620595164731244122243507442737999238425582407990849297501279801660984289792971783794644285202103393388431936756653263157097445687924684863650936084457990450013365381931605638572430373614005753431646275983555240124552820562248369494435531249032433260008722937800257170409483769115940561373239503419853323793332972921371294295752403041591041985996309797445833211282843029418226937122499551179919905454905374533418197335408255159130902079141857051095404270610971798060766723028245988194116167996299689115700521262897530910364720956763895593092382076178835600322170868359835383760091473526737558073443135743583288231596914471919675324152429035449667166870021118373208494405348493648644830395867459482240931855160835104500162329143544483133059690916864956885386620691612658438072983111252916475192252193416014947288245811512705157177370167035434430954697182755557389942983022463489296572898087330977446799344836843940095793108588718377700880889649964938701942634403401322524654009199778702320765997879168402388146134077453151155534462799409591730728833983927919846099094670824846195497110105014768856864622955258431380565318298336138999238724115051286229330370536225111422990362295665352424721437039806771608470713952518567992513410805409799598564539278634100013733935695869331891961303278051629201919143780473979456589089665030924824044515240336332781312107532494866347645226201100385573741643073241479422584275219497792336650011570044272214622481174859076909772833758222545356010946633563690656053797242155468904900016321284075025716931876600834140089599420975353668057006520523934835491424051426412256569584642623543215074285848312907222447963128675365673288720982090810669756234868771293046885497344009061104851656880584180709229737621609179886427670780317649177822947616187140068245970654392770737030333903649125695906537849941570319867222927577381703096135028249367960489734347507000253614896015631967181411120833080564724581103318310551597484112492814441198535907707178955768772144903160772522402142870312686260852081560327699525268802413197594504003198351352055693396989392729846771706912550439759231566272676569593272535753859406643826005194417473099526916112673626912934758027059663830917300552323075247180819633627373864741666090535395214798085143007051310354957787538862288572607612665227558753915546996872277412694798066468004299900963846800567979171122676894938989399795787995525939325734418200548247339073604504892994165689436875988991529142202025260872187677677698642225604416299504683294743001355434052834701519344580966121893683285960104287305202142366362592831739113607111528489725356530005603992198992789929494845183419066805021379032208255444436714129923280429068000138404343255176252515007375518697685024024623739812943590564618475189307552016190016425197835845191989783214301968828457271635057679897013855105509645586048170860239810762438311024712282813512043656847568464603594951209427680837593644230320924001924630194365210246890762835095817790921173919111491615867092249591129088041153197175250398713211131537562745793804445134860961074050117873770339176697187662148668712002881494998720553197136786722635500642648919306110651111205570983051147131650481338035187577099832166808172164553154248483259548568955085300465892319780711815492483080967842254574499372432453180108933519679027987471884093225418260785327946520590856601547966372674515032697840007081512131036113071011598114448562329102057520506192534068655733733376483213043786063570748557570536473262918207722636960895862901564232846801350412336748786793071360883548579180556789157876920830314399838628991136810032644951259602827021202306248052202874516836788742131786546314834990589019534271933044792336400954857220543230602085033018620980614590092452336628206571981358340792799755856424661819568143523699308347942871609009891693077261933414031139014011149669279695295450500141613265545844695759850440419669724911052033394962794266305576351064501747489111203811339967249809350044734207329161481050254187581555422918592305908285889476700602132933540987315151007799420144424339124309514206587021835025893094170868263427960099857368965984763269338355564678121194289848082205059573841780858759308370434926754936640545953981705487991176026218370205757251229733758855866975710653500235050560595707678513239776548206234867513707201309481207451464882874907451499559036034260279883202168214801008131912573792239947720094625831757333643078263868536760120227176334698785620339326088365302801392314417854782536749398917673826074712445913576385467582018782909573171445565019022832915084108762479225430454779422891988959436645710209342443758968903972506350119739684854562190816364445962644981652687514057548776768604864418336619172822288849520088132944548397210671366847794033282151534469867185839144625444067948883182434911996452138029871487270217097959982603003664678107241870481013654984997345176185385123671832050785962160479423420564352354339996316714516877268895354347718976455123202548301423048088360667717824616118929432618438636741610674521094104029398202369412836109632643736276823459981562195301124846720466909772440949462841074558633686730316673535773999240080652689777874125474711781306894766378222998692967492129941903843351686751282638708407373958055863281749128306673453626058670191476249736152187609625307390044453785466480659044375928513136901208372552279122381030381852688352877847286095956831508858229920340117496733235380666489811761057213347043754345295806818626117472338465912915093114766122969139009368822482219184796452709129115721909448312325157538667560798319288390852304371298077837090210276738887090571707562493854320563452986107433036565988794859233176285553505293572986213939435284919065373217473105658782446072641638453679940041928824839028950696676793656626226498043332993140251125624356452662401317034118561708816032343275866071163397175174283868500657393024255410601322099113902938829147084158195190736627946968067314536999433754555293264881335286678685197932474300288440880184439931504159248108504881823276458153436975196192248747967912073045058772451303948405256418253789613358044664470157233630393941823402201834549891095243784382369910064037819943301560607520484829930752826884924417344960169743424595915253119592508363136909915707938466877685904609598778804951551935950028552894858740697201884850453677519044414018118516908349136327924403066487998381094643110105995214165570996196264173346704592070504716018639554605864116816664728066354745557213015329216522506901548577290637631197986341400042118942313553999227593652918661549077756090607293083222922400904983833605209270277657173051119000434439969431601835591065106461283647981757114134565590181350805973780035109883620442674362698877715475870707543605882332968945156706858939839091849684732815312052338645666280989622768163878977038786905627547519302911931480554409362354619763592337241705111440268457212478727604962045660175157802421383303146168342775729391044736143259538191373264725845297525159871143570413532469224737973910828712046108239915156593339172037827579118928271659323938445314569034138045991785117026332162366492942098887873262339268712633694598615015965643738921746792794687318635784946717086009586995839162939328956432674472607937987850250484364737785625315431165263816697938007197543648170232286389582545308707339470288229329159538503078027093620517921398310646842414553042548151794464173924734799122706434556791156794606949850817374850395319931709217677508039145248218930788021905633915799165584863334072069517076910106094345396087143156412111620341006198029522581719412651975276191759557526355839954502523129916491124126089689938981315502743526859379775594290745158675556744201174652330809897028451475701594968807434477214312160967841536129833984569607700292178967758464561707049663279619431237951750969429774858377530067693639045149708060877377960117007049158458341718511582866970689226889641748286619217498544208424257576088838931217480194126720645460808245158913849778884806352134663782967730475126557389028329736744162970077953213034179612160974800589177664868559603206370789556487707364052403309071972192986401199998513595973103697891489655419652646326692506890362347491334307387257312051286873355015709097702416433546266002457473076092946235023976069794824733107570816993121244396149662917730355729888390504694794112804261437698474258898809761752194908060943084960087332447215903970525709830496474126636684455444795787896451915416786689543512420627676327278624087884627134056906414503250951898428025088336299594697483874768653117701385237296752198941342503092178758894836044865521938188902930101940180303822884238016492430313686089287098530944725608240933282157151933717140398556713621493385338473363536215750580349776960114289372896230530842460611160220304209317520133455052361489515595166043177647149809741904023264087755876921922173662260420621769343669217706053463949539657198335237653822212870800414269196177765653693031723253921252360634584479238982189169749362906625096553187981605273304919508968348799674706401794324197307307162381321323310427226943201917139228820005846876322364137556809613194171821305934777663557795571103063897268086407732286726627094671209857966648875421819467492621030133041607203711630658819897796905025605530134463200091743113140138235413504669498877890379047574597729453167340661388077253976946295418415408763494723431122014650556091503868542798496864239133392992113983294804383774060620352270477094606300474563158247512363252786140516586472704522983715836327705479277512017365370616548139076338331098647240820024811934222401023548424743430413018165032717993764585665933464038913431297306966750549107542210022211215627314665656008596831981500410557750691340629550527860637969858997338339800239841869290062929387473578013317715709794560316137237027840600224173098266668077531864991552923757305167052181973716842275688343924750222709981474665262309731535749628812023168792186768422417824984318665598283440036134802794535344634354727199039172889414795284856544483563980231147562967574635241969042520490246834965589754790001959499325191306103082301950946889917345061866563739514499209396375043409235802399801356137712030687790351640762874393506278398167907904656566531606882466998335358139028079877945083609216268599575834120775212744055636605275939596428806569499620604007536479408535978217625905951770929804182443755322882847888704789124211788505684550098404007247673285683611324356778103907622552410447564947434413297908153401549138044797105652726591015966973311442812060187668021883669770339359683814125479260773515004025322316496802055020403191287123142434404497952334362852064363692630798804928841709578406068989497321146370262841040015347854334683714946264371200114964205218938869675597413930670172934796874193583070914850892653428265890978330248032900829745577091658399913661311384523915135090919392315028674069595185376391517477978327026026942300621137404108478291955158511796004225439539817710434591367614162063874164484528009468825869482063272161127970403619764573057687497525369434844327483386651309336511715025690534035245227054625641946552793761690735060268764646525796199798461165487595528791069254315721368967590138671765989504299870414536642366313057953694701086833325407780526657148774747583611356915189770716929007233825764887792584575095017588192523701468446328034714449408779694712481868962812009070523255048590874516516808534403421706336921996061433392732354378290911174010114945419143071959543705725332460033032960172719257141090484940992800758906293883621199168731698506286309832246829703610869365486313239259397772989066478079043698692434074371054205789188102015260419955528191810890644913925069175739628774857805036213878507493250697858085090184565835036777201711983192599452431769207478826006648686180928511212985221188193025137942808843947118600053563749655115232227081015295482076995698192081169100325659197307885330540409608408978970853746857813641453766156149883817197950709417796152471647827914192262967702026435301660162290187231187570715342834900664692903890932495279988531230937039009150103189654633441630536703760726860167218264067429186295425080003333278475783151242980254758246207964963769403519891123353175314080171281517919984018149869288960918652497671229232014684458992972735481065513196822006463964113309151355697299720294667941363481057347975626769102892635432430192743442429597971142773607234374610351398741163032025232888917914700284183062707807652323544521175576863494322723143188101719458290813838910724128597535562699075601888606013658147231627466483717349767674821726341771276141951290084433481580259182533380435935538637622093311891890515825984690553274000634862915857290929308995753406075618405424878738267005143959943454239746555070772774940792243054141319770055953706587740052286426989898536901277601117723634154471580266298556523213400483763146671303033369070693527466314564645081076580197833086264628209006747633563073667222705920117878723207887323629292938478723528669500115097473262315229051921993554165595390500854698242503012490753723219771602202162163252873548919242568306855146035061280654813538603344615803122131383270879827663630812842363280845455922330970195618844816736942672057591035888314272699487946151825710780241212202706387034451450909544656192906027883561415606173013623610564856729054727538847401193511631485995645125275491590302968746051034291139310206341862757841866067767159969366925776145942087016625470739689145175911889419966235542071482932170131187178431017173142752423452502289276513286004720243561916639304957073165056204814493840068619597678448905672532128472510954588800543922033891578714640722378362911763674915899023099472504652753334169967420559949298865938564499886588094301249137208592368806295897769864493625630116084028585009907006599892561178451675556438956529396945661020124497175401336746305379975880074072570028360418715252749084478503633845569422412537632634474303995657053259185935144341777647272239064485064764921978921350661621235223857590999172372878286654442473798185510841187210235854497825765135108481608864076526331573437086372818127107924335108941639775737798584158633536948760651122070827337191436617206990576614781412258826142714414044643629204976114243978572754391010923808177255951564197424838232369344106762780199074191046827871683800870177234842483203382849856888484052201172840704583803363388816620140019211582533552637029214015879213581699486408560077859528154110084144025859934260026603207409723984782867049091555233368475177871118349338386338862454199422187974297038187385455548438073089851790519707768460090600327404341890768901720838130385979644482705927552981154472704247891034726809356920374631552376480020533713791669197106622380721803276687032079676517266879831974002405839719540694532425387322499277323711820348298057577022650130856945013461546571614136369267672816322759214500342104054989477882978271537813760272139672450960912231531644665003945439622533401884870485540474925213841184710394585089689515740349183887882070951201673067212869481435922077734733426789283240912435280134591164603613986789451680060866079300529729069193921946346780405053389671913221036030697012842534793118596376190702113719208851295966964965990542571223419105573481627790850965796962894707169214871037327096867739354612097654124669267374605428014943373581282989304426749883875020142585505866541642033244550049979803537375010375800555801333884837796418283046396649295521861112389518052851497764326452373623661714847237828769655547002257208631759911247295285378641146834663726905498821135193043027763186992783643277148249833328031871418432439561881449015789729671845864900520400538283351717459788680797062925447018481883028472902486641324669088879423522906358728566019539950915364185021392499757153300309085846844878150378604216088563576852116062944363506217507444445215901383849631937379855188091229614422992320463912144614291595719830040569361832699589170836696817287197872351897577245023886829151156400840387229666360094177200281100693478000519709751019819957810823317139847742549739317645338226243606335735029063718918043781708246310822914270838433246157199064786952159134635358451276156181143520447059486184072698169312789924865635520880078706315905975687672581778291092053068175208012460119328792763256528408307488133076334842466909833468983072208873307928745596065202837909628179361058054667085186828435551951168622348886152322154603244520515259322271407966328741722501180768373695943782671626857076579816448943521366768396891565424148439828385763457014369938484761863973500525393598943712459302125785933362237772913114028251413194865254344677148426946736256515827524415947277722638752290190809232385303881568026230657151037743146169319576709638204405885463322560834577755829761479400932473062946348021508261827278639960743465659228643850245313260168620835801053284435470236123445241477622162101620850956123969989393504162873045508899486772776952149680413892648009722495094831116289892563855854185538189888616626890355007748789520541336414955190557043324266295608694575822716747308486010499714482765081791951854107424019160788852922147836309820924964853230539193241878762160898432492274791297454422155934518940243452950413897556015917956880347651872720599220865818357723419383350049001188351982085664267166649591827197817679732882535785456649098992832465061232390204974507700617790857555802106573742412083088506284337406762101820388224497857431276203621742387049570313869262631906723575808339834733845184928277911483121374235041572306392247279464960879870738741798155956972873672433408331491973977721118284225625913116576661840928141848301319054518344421509711358820358798603554290075676352062984783844807573858440417386140409835201363541472454834955846680731399102521493970362452601481002736763195557389257015784137704641455448094949001463287409464815846858402750436508308278631550196769369158761643586088630009311882730353179957336096291440960715332377537297773797334084760466071358150898450024701411178604888918316866708391986245029975185315856559469624473258458601956512243533947356536745018629990291419277017428348715123438845966110540047372132094364035113364517164056474835085307362629920868176779258812701864932425243050384547142565304833214082294769288373009789546550912325305345577538189696007164302169654024551109869173253892013194163928619995424360603282555846685884583528522246361421390115194149082451228058250916247743913400908031115727312724701762505090061485288458931032047705312177449066389244854970623568335750508941742437407561596376144396049884430796922592375294966702647860254581094654832305797130441129120713819767616136779451286796290419588943575047141408470750409773435069787535256716342617946032236220226389293377092521290853133263269328486131924483545503497609420128832925483602027716050283213894207197603687598999293034553172522914322387695813808953727158597902323213742258053482895085319004775159287559602120235586939416289992727993996095499262532369444376891423783681610400649812715709758883195196912275722893671553363955091280731361287308007397918647732704054164412223659612046159159181467400851974877278317405440321453990117439835555230882071132384096963736011258930622047206835747388570096482365631569662653469443875601426388305670829706223930285207145874706518593818786259327054609389032824863326818322422403344153067012760762512880353824787981602023052391326315407102905121435982665619781924247219947979034954003197599363113820403668018510597018667667841156026907478714610380593066084531356193731885861631260851896298502597192672370107438239572232139866130915025896364229754844276870698941042333929840025535225289132193174785266050011064134468154754832684549134956076424534693001288400639218679192829459528164080060976955431862355748825966403037933342730302916761870569204676010638652174231720070634706761994815022533419321210418655993766959610782131067463669235907624854749737888163601503184604399541090635334711322400363348583283816874914893677864147039503561584771045511409841675581842430184473424730674011501596133384455693860996968188435766035488689968877007728661715255698106815355725245891425928996476780753416262210692818548632079031224749336237469926999194091684177114398313327812670576746913040368135810974492476733958453077966020110682225634155961578452266126761058632760093655049269832673783117005795906592325856825957845904640337455658055342562370280376781913923143574641472047183057540056985034252534051294963697515050060661132116288707363262094949232409962696766520690192815643996141766878596448886377179832828613146643717242451755374092572209440635240625615161212460351939709442898168058069848916558213290603104179776378127242235690044463860795259776207292909125450829267640605913404299621924386588932432215291956326824556829766883792135603255893027228231691019699857595045647568383846622439939530452543732902326354886470122916402163081733972770935896197920139032163686981632524269583166389937075836123406192634988509327756875307211129208467184032858435749273226666533433378046170350863312295706488043105202530109190173329077677074421746793493377909899205305003063693490715774677029339678640933004935750834802940602788532261210202116534710614488013172873657253960129048027109104408629642594237693246670183634729741273642536034975417008910224105279817985807592092955969725764381752797186912914768533018824898141184540376770175122697124209325189621588206554742617582391683035711779776395674849712622437989014888454930916366226686675939465142833570609096327440050492099538899663096851338551107814382486041857962329089067430075386472578844120233534637502152388920955578627039476123084437912464083816854996678197467711951424075178969928277246722228451685701999690336685704375186641662143847808782587319068313351576523114955525625389371722157322741856438112442930935015757893850330541742244288929976588406936103906213459828449533384022893398777694068151055634505102964797079406193942386583720962307428154010338356472169163024279713129397758136317539777086441968307047927607776037407035344760787675761304192733650904557817052617273513251678960758635496898149968876847959884934625128528696736227166385566106490868192715620636796068426196603136453404818150715843104057955982322544707818584996015830978378059151524746994633269905730836478962499096394022813980503331378577010333191621521763843816138366982088733297660362671386327192604983634680370217233158514338488802107550768116227792740480392303536807295416410061930975769545518019624408296771000568004427634624624591868733029373681790196198239555946941994507971083537449660056059912209166198518967085901608609151990873941411212895870509595825537234869156945629878914479253369097132708651529150447553989393560707769428986053947913081945775347593275156811681525912182007150042833203761999509329191941434446915249283966107684706507595190472892053292195307800431795849682107586238582415646188135555781040008794080362037547720236346088606964373732881503168509779825532813444927978750467006932095928981711345788365539073558066165975813794958298538740799012885000012674859657464769383729183614129340269657800665112309197651583545860833766537185687584160823569272857830884078162467956330431361396390450858377007108622446618330532919529692993994481345016590516200509265062635787883223655800256311272826831504260517262259730238848735589960577958338732298698841911809066435787041315539092219214838450555791988372583373630165095783377858090013187202774027242140139853784261324932245887209587252782511659267644160717782044560986998511572206671456293027096261319066798154494732286270678548406672098043846032169125738033166096082721826832736151541059369713809500012893328518866910124463958445900387685888732273016159258351978096839829532394979538548671194802835835683164262789991200632582303688758408957183108843237346713651175831356167852712237108661898101245341702081090046031408223214128528654608315285633796146917231036887764682141904774504493681583578872565671499388765496942171848940292040708961247485845820841609587249603099071319521817120790855102737434843235508089502194996080990088875141544535281708464946213357754316364704017458758925291363445940151251791883639598125147717111022757483573958583170579614764196998368586848717470670124620557373807977771349418633151561616285425040089684500213558162210612256921265342150148036290180106971368248499831560428493688312133974248858971991606515531168671943422565008061972874503505217641170970002050132334372809007257563265722016208193663377266725015831820101265357872982511663928265923484862209562127647949841404514917379437298055452987546366859236120142900525844989891332429062919500968474345146175312285294251466252065816878278182539936116864077568837284756440643062509452873369536940083368613971283019648238893481760127627035020675701259351029017442802982249036780010629937788189946312231977512988547714785571259183225224309103886114230498241761723003300249189998223050310329444515666526002944059418305151388835637067797207026471486319159089639279699700579311706744043083989389041794743594728812156062712182782101655990194714159439929186085156327469118179352244818629450154644786430604314328185961450924716772824370346384338897170998738348286799488416039461932175236069151865048024374636018114093446932355438488848075567132869275998795889610255460918768171607017373442688387963225468554175250040289667280921458682193839295316788587893736807390879895211670078365787603468856386381801739315342545693494253624594877884445831281938068146651766475258170705016240197693317098835343412913810332455409716380121468293922290677518915959752578072431230360942104389333801991467242639102258213388763469724003524546789859291133398079325362444148099327222881485502404866085031696213611978820062740679796393240010550502915351853645803488736618447127976540409063087735369633986126954779825666115599995818446653009520114936728003268220533143769750574669021869437472570205468563933734086254389647021899454183077159719599605051234936957220265311612710707877851841295901735761969619051659662427767194944368601965210067584895816268792321075110954799953063046506094863350454498367861746404154631200525020427402086397272558301210564617760997650779616046158805013720821759135910489894895997679689562200102447735888388856695578592457660743535388386988490779801573399588835712907697923955226248680326701936790398588967948599294066501392863030982750869499710447664629812655745565035189298341277999806766929459122266839024088428929961048988049285355850522425183819009141201917166958338655341430069014701539540359543799589195361193434382222210690818839104823601984346576732921597741330857836814384304828015972737397879143019442951519581429077811370854526148211731639308212644812863616735406073804021475672616960369630961287600276962097834373764194429989829133972583390294149980390991115091057239658730813657913670544273555442079422440753788661000387282807538509198290859343638674101551134453334247860619789866792046917307498100512400466975822011902790638022553373859254558847014130424229129465957230545959019570450357984554117596439702335871695826025736487686828785988393353346066222213950977073513789236412401313922092157253789852778042161024529254128405748122994051447162117851032158052623605685072120161568536634543449016840213767589337223764665443053010869863553521503740310188088468672262940722428195451044374710914469113198065278284424491425747440202703152925054633878477210329821190822905471618510159774740826830938171173677041683373785322311368867932359954620835340412881244352643831240714774514919876719237646031468717118251653164753562950981214681683728702055259102204743076645763323856713969487908528009130231327176400180034649924635831760481212181740519149165298075792635383362888194195457434510240450553949020940872668374436900107738883685444331456055816731160579881473040813201637845553293397230150448153757068321227844070402655964319648607148208480566557676814470145992805250097251930078705320180152221988767904207648397959801226166156537048020901121031143833056133960640959715081170472232419554724286180897683474050576567833752938081112211438822902607038568770856416398745854746971590402124908293550521078935328617907581723435325577670493547107607114239611448245638715667293268164718402930626469653735838379859680523213626271079548633472733533817161128909610166954265849745013731285001481807004951450681513819164690698661435336928266474313049567217827548116271325429917516736458520029789090498812134293686313559348239517941833208082228765424458040441641378218014934499417253402701949578964400646670539150426806890478405686039852838748843370449665882478894938792957455263040685307154772164089119247430410609810482583400544272206771315907908684148794788150504964524838050879186417548678324650346953317866314250192310077582450726274950114618835280388933271062088693003534370481111125109333381429863913861045817166494021515829735227030657845309008085260616448173359001686433757766337508209559387201124798980953642422746248113055843735297492336095534277623901204788416658194972537992719303074542752329254499249071192788710054963600252789356602624699153134012933492495079078702567293138071989453038013677455288489608890005914364843982443076121844639673538785737748079836530713372497895149970963110375844814477947560304075214377549158028730530305255946556219700493908007582682492097928918429913667125683635718111628345013456084948797795494877230051818388645892458325921598437915359077779449420523927047285308502164641066161393835776467841497083963208358161331814155750927506682802719153457945620134458480336931113980611678461074552943978559686116006920141064666170335394197074064634771387911788132801706402367442546629199215742633578353135522258938983741932371517640492571509462350967764791409275278337003308494552116049555077851552477909094450712071149156054724886103982572820614730774228416034997641320431894345413978215599111721367514735163666974297629184093429854676482056530528148388741808046908214137177987169399326709665668154599475431516350625136269757632443729517198764452821272816727233614098669832563339241097592463754139461030595806785828180789743433358236666459861810603690729949204776358960418546940462288500285445325380237577529980131530015239464735151332704784297803375317861682245064787531512679423789446450213062324250111234788204309947398793116287549141950752214478720873577128650212878219871477446978851832593075348343514419151794565810216461818630549456030571793088574906657303570569573266595604308157693123121569012793188594270084012833269851469717640135143349336334549658967317281540264216514400779517436039823895019527465515161412035435195231968112839508052422650448959872804739332351333153856543950599576312262288782007584688925570127407950099291503301622213280755027459330797485237915728779658983113479292298958306172860585363312910938738053457379421871679155169897169333162858764987814952808282331054002639488399993353819450829995447657475407933878801265430180928459254654650837035189916267125747588731200966898199636816550995356097790976668299482200349688118181046208470351004075390444000720104754726927854283500995011849518070249641394458547491300828543965944073683646220740581041257693607778679510577432097927078290039606486467220736563171036151588579718288833317964455141519125585380967903931669607471052334350376918029416692675722010366127195957381033289914719179791788203791902099211462613019811431204868679527519969367741530669367397840608602489889927311340887432200317721797057731380294640387909695954281183933238437234802388854443797152017819584241214887730929880754602713966072176964956818973568855413987984032757101064666135623947470971195316922112816595511272309241861069095980887553786156077054177773685911798632197410518454659293670233267144564028838227340011110866715582708730147684829935602360182489618814179132366289364691805166806730226695999944802931366043816829073274275212665983313329568601711961479632504107512134110056136014279153458442960222088755705481176329847798285880756407256029923937722670747628839357828985714745945067665026467374912945207969508279985704057908551886543131293340705960724194826084665007589503112626967511111928662352460718170861755652337773300688543051853720851562627839948722058458537878156915939176725616201678665516211234129810714040028270073787664347478741308105574449420705704052433370382852755105649896060110688828126643181715512693745283970304312859688811411823287946124675045072682293789028666631591778784629680772356376993252179202917031550362100283500930361781272049029480953916431739996505705329591943868025811363111912324047452995527452255407573472958380896452872471106780370881875210594589052306535638711935208009151717752234020507000430727983102089321299721289515031953141070043089141124864847856552334682577593886691950839806195401048455128378021813793180374628343616367791983324047691232514614314218723058900292895591349961723178105750257164881479776486233749192827547574654777600930717893662520398808654438269094376643412894564160537262541947568233712074700424019465325834244436217001344435587738707934390146587593710643430620139126076964900704630105127417575292354424665891310740435437509893335964955144836116227667717281053843852132701255601330607045795272824707986562859191637355116437772005096782500387849561921642861829771768248918143238282154095794216940880450192759497460481168431843487357179820587049621833702885183165094786704024569185410846563475619663761872786249564892338573921346044681931009687382477680120418320986357989932194415936153080021874465083164728629168345001154232931703924106880023415943964073280587600151585321629659731249043721240845339721374638793197645991250740939578780726372180706377718879607174168596130064268564393822900872733988431748529014355190468180510935899140990273269651975439405645361699780656710866467064318601565237196446722671677921935411545085073775059233918766270020538215106224936318412902556568331694363887249018989709226627672142299473795784762863680183624135889701608519097887688476031797419167619532015409044397093409834126979093104223239828844112709237756913968261763455196895071782826949244827534642439559546072044494604756222347892799739248177045608055259996204838263709052250283003338226637779778000170389513716243235424121579020341419611202658591775714691802199841545473060134729997878126745118118078798676593635349901836925061197414517350632216417455523769366309022968523904006518041328066917584187809235881563325034614914086169900044093851819734632380422822635980452980448626705218291072426601738513625085393415606946915096625098952038248962149239426272888037576001902742619363845665612516920567530342818745388636456934939222069527844465447982314113277030621864173180054065390782929038531338368835308926223976886028807640511157659368162065516830456308128119594079674163088203861351322886203806351747087160736196333871424526174676695952587648381611646592129834105368205569799244262422576552186397164042149747965718711737711231533207761670464341240191539944661038060612671073920535913110248173272745500321658876082594454162856320511406900281628396950073774478111395515495880300575652501729114298892884254667754070333817424418716828334846349760638360740596157254755700458126900387639580034544114311215399593857172052556502154130396839235653941487037738702514138413648271032811941761379355626638110555596393546581028676723403478022857269304692202622897270200706233504205443127052995699901639855482503188924353031586067062441669616192336298713755301460757448663640702723812577648708526780369437002935993808251999646607345963049990896180392422093410268287119150215015945023272454722079769383705108610049349529994394135485385137262490103555242461305172422885100093104158887825902604679556580173747883484622381430692590549940713023097313226017782520249719227912338748809378309683079585970812879401922232393390631397380091516308082921333932099611690543132375147731502789808297341248813163335197094471861840039676815772468124574214291539232104294675942206179576683519829960836225790233259691820199036609263495871431913767247814458019843394336827796382657738049117220948858371778945404906131519932614087843873905482481341880919698016010869031766383118418450409771520284135227992403252877909480915892314448750016891452802165500449964116000996496280174049465928211501315410231440065560748154650156190049407614486248984357693312924559343908444731955105155179491968641806953033793607376615660943947888302074759559839958478908757559013931992173176445102057285051963215924009594184576289941076712458691274165260900445696192989748679621246582289604180936947926361728591959664604159721793660789530197457929347546086918364704486803350216926830595612424858653517038547993346844854271805328814280753663285249581095946483521431641914175506053324437068226427677528044779855489640532235898875216918814934810409121347461617953933033916746656782703270486677100268392924397832503877042401772167543254777628300991294850924710687843914338299989578347309485066695794468895891919134955057097670682556537838522206188158898281992401762737171946064701262566682378761752825894899242424136740377881221004801358109873419910459315296339542386097495961929124848526659291988468792107433237405001407772753202530686770931085877271334625489825886611782590179358614473696266044659835785103683417989993160272791494687086651633848293181798870769743424732865948617927825948658867083300988017248782513618212629401297500830377024782429624641205080495089133859754488014295555817105098046329847781003289793824642773694383725329107048577261315975160461478164499815918718586430091176848918477271390526278777620144657113842230695127355474664253398839043912533305452527580941092578762749474109564939441732605731242687734344832328336832969350420441169481337530934399114627877409079409332525984428512791867690053351464295414407680217772723369427969397713019523474325732811219894736018934033087832707863536726127570433819517134436675734168637990516016311538186335864011784557609461199979371773744650836651054175072714051497864908058356567454924957296176497197102315049912606057081695418771664299142670067771152663133069561532964469003673980280950467496113132732712965536093903342338070065698589973350519946411279164854151525615035176640984991834720656753121066064799206948309104248308419944001850956405169877208653865657856403603096005862755232093034100346409041645315686270901004127646182773128657426864206588559735384033513853687633228724693719257785774818710448867035713533799895455596846924250632848986196118975947573975064720109526080402981668765664873477973928770271542539391325457330730137178719014611584675329646490273811427016738610365183883957178857428447720104382107031754231315204184181213611856290520191796439189532045531987032497139506510377452254936889978413125231522073498165759815301117325273434793210530466175176653481831188175140606207276736627744935146146727800449739071745127477163589005571027362549209648311495243150574460500658347522721758347811974904238805620646263751229738498760888565454678988342581523102935632636830298843031687343689496015921758225009232440484170082011169498906795481215968504511303616085913131511514122219666896322712878394836114788172563561642030906269286114676214635572517960783339935538284534371539886674171065780911681308698198875109736113721972448368693311219009259153991150400253207326274703035373138574511234033048658408624428136069237421212291525640080608404173615421569154243777588170403091921527468724324067884806212059853900563089920183529514500959163597430240964415019317317945718607655593661414580923007765199513747997632781023624312614314113758139509845150212095445942263097709158385892043549025070086968794922479472257713796418424414744228113260443727721532708015444785750660638159779053952037684026613551881704851792008897337694360044823288756150820588628887370105909990525352164461455911748599731755991989596492173061455494644493486177568331500156788709347977189914918509528727074735977795306183654362033508031754907906343815661687412549161537884364342815636456539652316509222754281567772646300179926835724359478130629201476869081370793249463758004394342305760945394547491822631654041905757387357744828278578083388985839502306335270361064997258692679842372975138102090090865888866631497967348526334661247469236878703720292118778459340043367439307921174810984663193402311760739330222368320623329775438234885781852535351332485638763577467369504148370038351550023413925399491866322681398542598027709297898773045829717427231460152262603622745744533243990762327303878247971912515077514107729037237291005886175362705057433575157072541641355783509608596695202481036986961549080831677822604161931045276227579738812209515538715958423986366231776864467428649765304369027179275428630395774353078256528581519479821366333768568029900179637948907872307246477025825759906403419244692372624266899301039357568073435980891665744523946878481103839145188193854600955470633606571904441724040451231333110286265398671915067830975425499986896091535465066569508230069383491601448208944756424375949335361467173205455832930026519386530118016231325981809743740272773513689411392802413098867333259567476012981829172364642919380102158567493100217251905097400274819453854112782771686375026764556551817824878887678957078682352662844775458815870852418270129086192013567414135603071661751055817154889056518404956215483202480309822250650679568476169611222998796048273108188241938458545395184502284351082665189191253531390263310114905924211297615071973173239130851544925699260958052342215206701993115392983795032984662739437580728187792162897583336524666838105709318534242347269928582642436463132743382583590514252681981741723500768324018971909924803130206140184502719280913616775757377052675250864745616080503716141047369331666902720843823705492058232475403031393066337104837867661112163460904707797661694940756709586600516002468575252812297877448126936095459173107362542162030515804588391227511551194163550546326242638556745005395354727353365156379697195044301853836256173087918840942122212864518093619628497012903507255525173184303064016657957878217980071245691798339016843660699039776624640161426273051801201313704245126101600752040889601235069884227116123290141749855250016688447777305154356205740903874962773618184022089524854071597297169706874274767894994641817658161042953830818362704681631704347414319818593087164102167608788473828492940072182295901249403021086603071603835549203929059240214084177123809863923563171498165919872178006475185082245842849541276186696028927334049611067502686735127044183473669755922138511968214985640853286806959129788083891343323892232752850230458962526088422323101688953741446488251294840445351299834993642301379612534179159593138626111121682121664639599638716718754700213415732702571089118662079820018991578452918196097128935388893699151684016284271539200572086538814207308112723368291921085590038608601651212843055777308618726155504247813042083839108167848370122335945628787337747938880046526428214338711811776989515079463927359540091205414867326449871968419565921278628249438108937117799849750366238753941081338122852124864214233086113474898235827235217220458384277087856719434734782312923381671071845897288941298356292125268375518686154334042500830382907892402120566044803891983667536789621869349713603250667208648922852261469609933830211790134843056941764905405616976478034332985937362950732345099118183256939779440606672089315279273530731127699525251665281601925197466012708122169640624085748798351763643639337904547950603891594012797425292912838082295165849244617415988852291379767283043357915193479221154544870088583082463858677382563141605771802820712478008796396110149739169996307791835426706324097701262359159345170254052227135565643174662816379433363355562359238584632861987281406093604192809158587137719728004300742449994636362506343457717971979616852801765115150368290918103073088672489940537203087751859582754059823039289071353163063638378172254680121778535731190732276209992300548173996001514602224414473909165217539910758252373353936139603303723298260240531618303386025738477434350496640875510637035166512377373165889784654425389663572392541759575814790607611270675892643760750579805351601342117155081683887735824502384305556216910430429661497679971980223805452364744928627537704711092026034714504028366263366108775554735893255609529255796555085106525911656577168378018447802676663852583080622072197042738957041151649074451403054680829703374962172074236176352716449666252078484079546707291048996448358140579803750800711847728474846436985003414654196523412444066338751045516239407709117462283536087929120982604429970820305683704256830975747491168867024271623378561349852486183079263163549866695648245656435911487433703632408028042842197074491645525075793351567575373082054909539989463488771426225201679606769646202012984439071212350423070966448069453383248794087070405627145118147689092137366769121920499047751515486229530169221936237680259040075761620229463625828218823682189991725056655677779466194410166084738941911179552661357862075199121985152302567965932995968948772141684536974645095649350501309155269454962095340577910039130828406075999044850839361728750414747640515566634033573020249963288813541822608489385483842639675733774669047686500577349330080428265124614329539494279594838688407213049428884385335209212476740951024600561655044650081447406229765910672983396348318911992404660355873080333818460367929727592640679396428308357400683355824611613218409041477248907090185633125944651168325581396620849033849180271309984890576746914691781119888796274268131271713420895281517242492962695089009047441163285340200568646803073010847962106809973274956313453758524356372179049812567579416486274248972936188004491182560793482373785728425443401623754324492421388723639858219171096741396772539705162848936275102213771115720374784221023611212910262557664510674175172415440949412278919452893499032878869652675311947195099569888638629893267570222335073096753229680015307126982682706184453217724229561360573235477332524878894711697079379122048112751678733384135237577910139540185269177787013151310851806128528123829876749372962673881578819621854533667412965108023445058768930792157871319341936908849267329351839908392455301216554748229283890401642867263268916469961585500085141555715303806456221237973882498385004494729488200644858584655978993404258856694010654240634257079154841044580022857280735225102119538174943864313746475729158661326387857199339706451989937002979901831058884362418729529167751027192894100155196998140443216971170902232966089637061218716893308661773161091627026641117930316289768962196239873722738984171251119634967816325288605058402531277699822101858158484788011809275844345665379408353280305179758054189590397599372062694729869652027123887313488237392954350642060160193003672846642076117780790823248639035957946008485134412492710096218383986267193061134387026826924260753363718555898463231071515682914110998893209612387002810792573081175216039792255359116199523455305363247427399474146878777668992523508380657027087191916725873964883438683978151903165879899180983425526399200404646085791000904444645027911584746415008483914567658178955264556404099205171551664248387185071218133850131672777564304441700038805116472602686731361833909049613875861975615922688530553097822064798717393816923752570338352253959989459319664208864361503658568557171083887379352825839877651260640257151643235911078725923716061069794492876084121201438835175160865895931288102785193692287270421789997500504731887537755516088890504099012812258038202294136534083098860429128024016108834215781639961104930461911517727053454961015464356212897110236567694573672471784562906756877910539652223276785012046111760177714899774906855651639854920764093684306148484502753143901938655063541705981750504869225373600625357755950134145628497494642093867625983102182638291266362520919644274828168369824360394417112044577021535325935321660847790942647053626318020141048929891949818896187238073945857478745457947984264499234854370999824610121689633049253773513261634226239755610216191989437157300101962810407193591346348201965658872228756536765811466148667507591995630245136994589478582112260743500413780697025839447854383326288374002858913700374164520232568058379819462344502827351678960791714781353403614422629330968783740807242997433797169666817858185910855845387962839804729885962097255849610254773080547773973484206875494609206152834762379188307648952358432460897557886849056337744663742033622283206175031000987633069389751870414764643011183267602068734747500142760346109535293962074731684789447686711276523092238392741195028134061587793917163453167526028917030565835269629619437324363257624260849951207549033269738361712629207266368970532364139017108377316753822929607618344083256840398462378522948759367767719365860650854508323516646409907815323959132481356408084019642247105308725890695745738451824385043539324181874840015343639931800488707233494224576542797683836585774605486209112173384749210277206362061947168080548313216826838692937776160741284584365811304049565411714285396404205452201419201559572711175629011904789799045594536796853982429349359704527620401355999690328341982352969825097038317373038965414704149770905665728798628010608100886464471816215029349899328856835031403735757371975403470519082634732394748351753429570106822733879580658717969939058480897589404807782690736150725819086437692284414151347943477153937466384834876342334625813864669314308308329731858793609963571811681760135877603359109713400074772242335422390100039641855556570066400661596626111427190429490416247585481189208684631400578803177987569500541914401235969748603436493119759993866263788307616988566734599532258715752431332198394985878366809149406089272394249053748443281256216970366976808318936484991177079497409965863867010465887139513931670413701657929598874135947684263835250729424100606550208875828791004848398887796578022217982686937249491519043060835877355098678962508376659010007278693708771690356234638034293858826827200504364769651342463305104709984091082380019929604131886305960036877474509493351854595475069163520698371289451478678390458090186938778413567729759695351634480405702252217723138302004057848051122989551133275731111490462425799661007467013241353259570831519968695759537716364849385070565869761180806161105873785384625275615455612194631399613952797428955970811474186461424737070992587218247707110304961758468199983992368617220134714331816808756875076210107257013343383500421766767592022845163399181379730519447371669159099649450497826806210278705683771492638596448754322318259413982375524510101903463384547140069458634066370961931921111068022194150532653122041886764378393099713217987953157419537261045834407721359863898743563968307853336296640899098388680447602103791137417701673994825918313633246239744750896509721015156615621776025202179519429637624738895337855577934123662789862812076350010382477733005503864335712030834894571156841776325901064788239153725719621584544436032634331275864280029697951468328199157304374346899267533603082035592747721202865473364546027363858639975264827115932473336550424020667033761707535161712798610285433018127082045166363610057771144320238037341045490047857562297932765559321613195068914203258615967422015774737523313080147403436390251221731465304607639271892793440392510014094435930039918820812096730231472440062336087805550237427393590454633401908604179649248485920707450678757970432950773214220997403405064841496656906358731246998924318365244463265175136294026058324399610643417280841766707192296219003207102892545029097231650571087518491202300774044303679873511113867232269949797027019352071625507650866307726331446481564541618432074925117410694906429905246657323701553051075047810422954831892474659969381682329470432066859933986968528376348662650233485765510517722266807385033970150116804659973660524259955695518951338374802687747082699904051785703945725316749359153221849795726352743160667637538637389637194306245164310889628242515212136771819472947976808979704766605216633262965623864141473771849742400568550338504360131906726074334680484431501450077139736321357267930979642902474175887017890095487323348936107396236934197424713814253800287360589776137157003092936161745251839104281482406271917539468282901351623474367680265182291833031330896118414738952091504976264778805102819408166147590354657096838447476369051056871703576196631209537476375210676139785483328021677913936091405089320703049220201612013461676346768154449031178848732929469508168511571889737270345728027382573837189809557006269765250335166013948895102429639828438739144294861913927824683281690942899767720136069485635058331417188987137161319993649252076853958204595027271315774784861299352729999927146209099781214137794531219098681687403892234778606004761229895211881795447902688285981567392814408529985115788553535497023111456113178689394403876691024423737992279756304564343442467652319656440231854024286706312816115594596899721669736598950416209804089564874756465858375458252625408639516875801140115052642564120547622408733426252123357782760212398781012329916614322932676242837757720496898499860571273254784799115716919852933704264018660383091859831227729354089173603218793272586914510673368224743045375674678668833511537349291335540930241651521579853905996959539582456334339867230302623558735632706699861305033030673838683524154174755157290542937552617666899920999930950831997611804811473692022231916326251034954070714341500362751219632715668882469229382676539168895202127002028273539769289083658632137178743563070480116369037949328858999684277092812299621460764587553387932805385088340221533494384710838816001191969450706712962393978044210519964868791920222785857581683768659282804743475518480414284713488462530773737368677096549505567179307168055263061145545908278028266981627869975307004663313715535112912925997412893494247644564490398081140054647658234317350888618986473568424627356191244152736126413465074824544920646693903942623892369219715790626134869142512269659985842702271162190435176971689902416668137686030854226615839576744736306248131761404254687939153350243575610977818875827049542300198817276703232603028748397235691919813599607305877375687128224910625506862500231244608604500590506182220546104659936601914733373727153699768043115484338969496866655378498389860684197547663345176697978475726668552970915460946826373172588416266377416704202592970450730335247588111318587810022527346886003314391965142029300223522089977705037635793626363013546223282091060963448906177264116128580810457724771205410442276406009396945791610389211805171458949276690596800694865822027616407241981564303188882937934559098833081926271376518645303235911805814018738089523650143359945679178466505423884079938255682627118878918809813942573082618802656993371885399456918822262053443997391946815892575047638021595842754759951374104763972841958461243499011313822062911207102717643010487812672338500395036204767040395911165674960187657133483461922626943329669631504182147767855775297152827489872258570976240720520047299707727923738868368020093588906104668713677391981669255698806406534999292651170109073787430745608234286784180793094576098926962761727062197867706801438052480855516355292775890214061008116724585784700721569163897454103631096011770116803387760279894475318655564524846554786531895285419192668993370480725202133742093017760050680792549395625337701880388230130437619632263626466306412126683713256802810845067548788378913864634618632470618486979771154417475465988085380517482280288298484848113853869214027877516679775488256159749409509201509739165417237004794963487561740024064449046530077661709493251937324240518624307936975291444855234982583453283706337769101769002736037712316409797845862070730311183486612400024000999708530636568474266834752082547786192844686899774757515703555499800566737161801783189182086150657133451670872347789226190271679568446898418693219405704276739889267110382992430871136183621421801911083785940452250589904806048414723330610333112762704647886920226615946764961620048968326372622579907701550494882611033841824441833339185537437400657760559692655532484517207157278581696108790203464034995002088835324982733935396029708510624534476003112789908526550192251141982568517170116545626661760733583704530230887101737020531431746554598225552792728271987650071502096895628907945156180105516353150973082432903992077977751607427462924707266258937213236197383119377448250285135644788759239530217251503872402409648152294583207101966370878469923637709232908792473956971210647809142215994700167989188482407745921665059660023808536883060717416837768261465789388896990842610470328385008648759973583907166285686498712362904301863577777239162451704953712417808619288845464467166989788770190488238808629135603947078695352937120032681125744070453425818919360655021391945275537622263059635454769817152004101391465802315160615512332006425533254524908172662374229845755281554294358012551953185613907677211924968738054436678720654847592753049035031789517571285545715825792493751209684581170667725033490580669014646447277552960498475716491664042064617273334031292533108259370356266641717942020461319435272851571939640475854838276926324333460162284981618127836223916231977801642877196984708330364095815543261189135791543912983480974750315670722629770234727413799687432239984952500744245828207533908528613201320950218846626276327383401362026533801197520920470396025923144466237101092382889366501895806535998093697856996703053229047956271985507221753199295730712990633298760058686084513799804401712073068776985152446488432765695995520688514451899594857275015058107766690744868799203456089427822313273860695833979459711414028707233742941228471382983675369767947956715293923791539431314653511312865712198630344595575951912549620906194637263850724797907144850544185663461332111990368416018842507264808261020196317831748789105972753170204335151749454532925048118574934626713900638681554518432655960867198215482178819694330270819654276896240898800581047271175098729461278024309558017532716294014337343075550367750914101451205630426000924014242552717746569032671648697183817955257859985561088664355525535651188114700877377939998570126562172767917731631630832231682185430007748253976513336628856277047558104922088705382778150232149271025790564701540771752260899498128221829525034847141939014767227299382150989267665182523831234798526588936878644323000002643784565458786915201435782334365930105185273108833620581655993467419567356193130824548777316017416104950264847693236196456827851722805099257576166733125505192845272357824970648342520790463162750169482354939449507386762659589016379028642684299375518470157216779423752642471964571872656574809647834370005026568517081108535391397345892591531805722045564452193478030815771123246537759583565137974843583304020233403357586616913789089801627961747966486085290826459874074776267443776189388677760619154346693257004011390038567236259305311457401211917741314901146841618108872967380457014294729516316683608209085913893169342124310353725893589355736710675129969853497809257743805396380180222823201025631556940508476370040618097539264464475805258881825267741586085806196154268771670784393373196719288206326465411990907629350940060645816609921148522911506116526548606771943948584363518337887142035952238822400970836694265864594636811307318710885899542770820523670997908441146742863830635966443013724816614906473360547404660884815279480831762405509385067128144679203156417221815567015250732045605551586535249988638760187871032389998099717331182899602543529109172303284825323867041539398251758072781370515663887219754168581059679536441198664223840257452492388074694036500842110219010202217787306425902994148252002164771509546609533996300136801317418662058820521514941366534646467340919563276537059345947510202698587173444315333912759465717777099036652238068734370345418920481359862479792969949344643325224951491016632572478861088325435810637394437329778059856287249450982352413291557492354437606083398489242894091947203454139242650471893677299828584481476471943281224960260490257221336669522583292429896023858566560425758402550850619067170251035516846496625796378434515078242201631980287406533903124759222295340751496485392679638354487532026445950804638597558803147715185042254621525237068301701547119956980178931861712370550418010320919777193051520937185909839398986039313670915609934367975940149901136625713406810967368865417259103278105757188469657734286949687395892328955525634224502621114635401488816689999093037830766945827835730486193293373026995285243668831438816694784755387889744771306376596942841144481095339733422403992604033508971568870162270747558519273043437085568502708624638647428095415515654328703314357837951839386755015942880613981468527850353487056316720021766436724150387234743286586015028163809847342034546724305158921118728840244727541112297544577819359479661662380937061874063539039210910550745188595205308777485426808077253144439382839885763599910008848922397150805539986692403566084826085892331122445111657618333803199940017892528414333935898993012051056937854464962833659832360117515732740914316302246041089376821938429110548778171379372805489985173377225927066500530653959927703703893240807796948431272160443008273974818045927079455875646399917492608903110593720550704074023839760384845302685294360639150804025997891089703490327669099100243770106317455299716197328672151388500487971430937643731313710441147595880690606159091915340165391482179659742315872240566605944792042193246706539856805137685320022145204525433456495155301898613456798264416387438159051237737916450318524545801191059344538741324313479364520264783333659481442362081546764829349086218235040442735604908778606267733273119847783268284667121840145394503200083053617311335354630741850914206833169755762160786761733552044728380682675473840568284598258942447542973927748918756081765673440976799638097527298082297210318809066761914794149322927584599390071245022122591492145943533893351722818445036389559231486087995606027629095834841320243377845849571195093564458238159992032708872299881402279826173900306928982876901672354155201876364246150253048406823985109852804126140124492349017147859436110593942709293695326069556478503325595457785323760378088273358529855347167379021781470077333806519352503472126759257607879791352457396547407098939954444822734957897995618649013126955549385449092465173362543022846539063737921628686573930841758176353793218591294081357634774945726040876811233812101966729898630976617043601054659096770683291106905923010489766793790542377016496821316887845243088877100478632450930279295121753233507132093333843361511066481815194131341936528037308906957063275606899950206586734713062633144618455958098437967301458143844272869955334479948860859360153768400248333172565256194512513486746290265424288158276700860672235853258299709120172440266679667184598704306896311563780060488586164386877195374611776581804825246868611541375844511985779505067077997126901819815660247651582898398632580283517708766537752043300109847761155066152067115049498253775273961543058677851389856697279245962132039673901909167631690300361886235562200470304919046546217220072178421265469985082999795966613809635956998939434362997914695602595802323518626744611291296359221485202829677336289316467511528892348095932674370009324461232134045457578319225029703054628240803783665174242077232108482460017294115550420058803507650497715403064265348256340897989203881317450918566914523243974636113316237689361898888290795387560138490014840071241729335286382761237432228389440556351993967540283658821414260356149951477060542567655172477016040437872962456724901360033193669416493411277677410662695003536767562398695699830219174325473777242634826890146161087315036736325364525697264629980428231550955246483187624345644635836500452870318273363519051171307540491690102938301578324454332530290831829400719021641104157930526880349679402287899760269051344909741012768621626216657425192814117910183869376246993391039067168834501522493987978405278537133240974403238128349534329433987718990857391146173918243917557887705331627891260593415039816357112591537571503410301252217008844201421075924041610347032956147772083165631989099315788780061620710842043066373798705759800267070948126186508233412723813860497051165742063133264386140876928040127352623120090076019480169373096899183347984937009555897021546003125864730475840414072425611366344718788371639406682674381801793870416466124505160475971309495233041655722534357700636429933168675984199387950022841596466395735378031175619327688356718277929916071221692668245132304929388281262242545662318395572925629818896663925674741782222399073659965234398449346748720204527206569048001260440655902246002544395057104882845088057900625652813315718433681657702210226175936363424879771678821015005062188539530997545147500570244957306628405428003214553862120318362000788636605853665888155795927304882547228125601943852385239389759843160604801837410243339393226805764106365560030457368178922563125753947917760727640335954683486739337549844813666114887566774946415953602844571941510916304536381479924071501809448984511341081245414212153262836822619923563360127301276609495322414252190617227544148991502773564448346024247379398065568623202099362556515476229637896313099898929493194859395607654976403696484848623628755921609612751588860870278457936519338341573239884454865496257700283631513295193689752608035032774878249025905389496171350653934588195366216131008354492736264772236168661745418732742106619854682806256721275825819586090887353103904448663621313064206397059449578627723776210704452524655689165228691115162334561373120576881594098237237229061027864796091388382913196044012685313951559913237291400057196485114007527442698041182361738933091712411156548293846927087750290187067157115144207648722042694852285551397003609733382722532600297216406359217257043391596096708763510668937473062720359250193755461601667008673083704157341201092838488517688691512327542791050358110713773794865072700161723940837139535601953814778975733783983153192844228107443410561241761593480650526230622491043847288373114392827700453197375913450176629942545853344657871228976352952050939540266411671399254886849365702718061614601620911810645164667591795339706309775240751423294407669573809528893412092806795930334677688887317415287820145405069759044961212294720523083389929304562983161214866018174665493343227371773826244586657311230981086181441683846895418512516373450666625867106794666241512692169965949851118135970446944863110452758485031740336086574371405035279302436134981421693032928081957091836604889038299369005204220290798851891954648880322862721839418523587802585689874606109075607323843194247235904847683967941007958875488023897117178047563599151375039411527632226477644710339859692360005329301379340054566515733773567218764964314018060665937896926439706378390915739098892209562950707736215021015355960550331748479086106313992385988561934564551745515432702785253225083391949205860999213004889272434311877311211861808771471255037227661991902311989396549624483122655087193706831037836741861774029583068778798917278690946149544139926186763620370864493042697208097031700789131720471387259882009475706371405276779736129046176758397742495663123644814614276404482952349576896859035012342464763352009483830450483685883703283344779359449971631222141133873307356310152691633122454050138143074873187325585321421585569350926834683764816569988961203398961686592030080673625863358667283504930649166880391971864764389184606243861907599323984501484440594355846454376630404264844426950689116727802454735000655499947904182608330214871090432756001826730875434010192063762883015698600784513723641384779385726512550254225807740142063679673911853789623693967635503860527592632381564219549695852223137815696640295571553852990566008856707195206479738315939766346267898147101564197177002418506533616331221987249609599627678005278899496603353501297015051113671105424847146467122500094811531628567840146675361064692896848341177177518404278769722259454037561764299963993484628098396679123082754011582592153800588763286402343940982919789635505405948696065210637432715691006956304128021991588030022736563214231426781805934426358181921244909735505108723254535123199363161481984792396849891709951962721945727325137185846406092201157640694884909352768995761484383619421692622452380509849657106896940372947529755683684626269319182678823884329495285254113611572896844149612441813694967977958207618182393699504461603597949658493292643896384976618352938667514823693178133541153461490091863637008010437585767755478180701098262214761555508925194556043139207572409446032515602399461653309604586312751241762110214744727592188831526334817198715974359478726987796795451493229092986513254840634370510494548638516836608658657718376825752589361348174032633075391741341268588154114855537036584510423002030732905048466440942628384459698454591849064594621017496568802909605908341463606924768230385834830765533546215067732040869136718990884324884683739846810032087758129493692323667145541041979494227725572435299965288071565136037491963887175180684210194025313292547520440272941556570955418137784257127177583809084133785660432103893864473985227863969480910440240206102702739843110267431486101689941427878151298459674394364269059219343267397946125457478206132987964212650221990264994591207174893938473172919072856114423288212813545336577437517684844386888391175378430728132134901592470493954303453380485070576025442129118370958727139607871095250020504890619070458342252664567511442234765245441812575443205473535140474969225247413368180479018266633893686720643039591413248991788715709703159529863248570756803273374583554156002154510294541831358447052559808740337162090252581410488194116748936701160380569111530905536159564303443750181421141833839058552471360137193099591311000561519670560862874050813211962149614067454574711051855074965320769855104204465402763530107421116549677170368071320554246502601143012389792604227892203613240532442318831002365417949872858453824198287295526709895799001728714768979085614863478758694187541196144724331582959776402786717779728977281496657516783209688693619907095304953718332728069473005731287872810835895888147133521836344226966750632528903252847697212611955009879831708458516127862867257640388640904531626492938403485572567607850906950685700675089489434342186813390908072926111466968928157387944635945918089045851519215143967233480844453233189280932986038382518027892070455927465645422012486204076932598839905842181642547415021062449861457161251688661425601540753614497714760707268170663991401730257677314376859766661124432231984427469831480625731142568210801359029483426219783359263356695396427706783351345298361820266925038026472595536420127538614731012553390992243374864269404897484587916589387523865941552051155626327378887595268521695130224099404881757266081014581482626640822568965889098217324275794483353113337634272833731600763022886316885989411807643506959920495788200520196724507213691788504652631888752472015739331275215429470402410473754017013285161953289695952625035283889488649952050061888280796611528584543586381084003891961147145469791703411992264821978388407696344812813465149876927911954019695303912646279696593161294034661687771852690946179908006162114619683806817587305818820309182731229309232893933406397046773074787848238602899566480804807716741335834976590165887839771348429638156893268613924665586255687123459365198787729190248147367758719927920764966319257007735793925940511789929748657782754850654606565519399106461854313293547799249075168798857163086055997230196685125953446917689764194481873782750134525818931596846730046788793121408294516011420787989161010679063558415862726764960027038748273606174040857131638530430571362034345157438762051710929440015094763891356201264288465986385504688011716604094363374558399090144547884132161394004615847112716082171063500037810461323993465965699112873128692380827398782123370023820235756983569479599848519142529548106523756698133823505422241295940606683978641740328922996828431237513967463051647380222380159522597546460899580192730315781452476206442062351914892369662392839654451022369739374620610871633152469484120532103187826552688994415058936099646797182688455371535528945075159489727456874911840778332836939918861089387393992938068608656042832594962548654387307424985209768828819924574246507409759675410568660981789455005847123295060789590892848772791839577197087146581333882114668262708862096731349976435108773535632724163698384195940813438733132070621457460216818350620565895265304950413436836344762999655865097495323978352056618250295717666185922059999531320664597261412049092858009645983177025303362211217402943296555094598320249288652553095586314624818065869339100175599471022140037548840802777434559904912606672610127200609249178567787210429070071807045127129365969703507168846725830992240668250955204606248153820696796481407239046208322259456847606366416398594468378682561687511265579295054960189109787340218468566249397923164143439235285623061218015330745444981189642418591955450049855020709242947052614944876161236021911126473928504827830796732235305758765247782816605833387649422859539257077809740189747949750221585584436560899609845667908880774324262585485791736735674232133395510259174211939565179025495531731674740556971481082865705268833654239680964540888071410358906527989058553547636813274857029045953595157348559880797417117665841604554797499644892722585370416041661210906249529631706727036915806226509001891869050947057501976921530555299566388348730593732791313683676674535949544652326777011023702565979504679577620610720788563908123479726270971814265692948403752338342739952744575066464247834663433590397813975919433282734096109352815004361618559007004493397639507912774273163742642851659147770204107579379653559918322828725036947760984219897116279214406855778289609223711337894179379542649515439374167359066134220481676661565616703654257100111261450048910439290884814164011768681504904283762450113938282659233826506744065238985446793639767565872158317077959829256558996073571449344893331836220003217388993103468117891621112675060325949460500247691468859790040346728997881114421603407848345834795584938691864318524351354040023066209156250990184729905601277317834469942861330883708907932528856109880332143335499013566075502324291226094989692203365502097626547985800835297416266659545439989081442536293342086633819489171463906868575850232773962961344251303548208993956624783675378198920269301724511281332710207355706381083634440040693271464140078610036527392290004205765946883384620635562959999182171482334467860691825761042368238353897625135713836989124567033050732176400216251669055211862362324869525174787859446867769528426858111648324384810630465142636554923107598401651276862395709230214445032708030382370789629274077065266628649720416431370567628190472099116546439217583811966609439565915233025561440655011565078185456942208442554752466582056346756069394628786397616035575393922678777373667500527373134699006917348835409423918794901093152379475299101952612208192916654775967557139847702735294238565046106017340182213695780006445850825110178858487339334937604916284397343535377515984843280595201088511067889115507540760081772252195927187429176751623847684594083170772666637045166010174200872879765286191378230873716200134390704005921088361722204135248546288450450570646010291562494985648962073125515765697931270211041363078424253503391474755239607746742704316524243857714624845750253590056736030203091863533657528123086274140652321931841076391275087097904570341044215713543557021710599273597695769395449386166693406547763325655839315414929183544140675284332317949644350846123930564976428757343143210899689832149680887064576599582717521264242693465339470401264892549675594999202157920877976957924441719100179778986566616102123445443090528966662438264418603892554349767615392319347071547716922694903170807772291989689370457397948674724233085209372621512181731869462069599270729340121467940637255415749781410822419866454251917761303303394855223224100086393112343303063504465285924678312464116170003539241518695342121165000054983863668420842641481878350175549368436898975060910657254368733828348436690707563821270725098485590628272545284793143581002280760833804503564201186532779014409524723523741109936945826959334603548046403128202796852046677239720580809376549992207208496456610280310439365231486968442857333941121239670136948277116601299263386261249966582544595309830722480926126630548472020085328035074137408087250537138939284662336335388563581150237785943657666749535662065910600728437981390775393464230390886425191121349350435305948471385433956478531902373650929170490751144282848847996271149519175133966230655786723997448322037806381882269329489092972534334168041060102812195072362399942293654985440300752897046209193569427014604337895221183642976260249176289577966327422178547326075227512803216862955735426975482349751231744252264138620242795831767620041029577528975815377451987844954592741352458282319836960464764157860883748479263584077610627954829254062899437284053673545095092815976251270860575485824136996528871169622960991913352016250191136087147061518567883362076588130422773658467994290652045095169798470565735731265579000241176336127565092579764377410981274451570847743368633315989037651928244031811802533284205720828487787807235556715283300532845111563515054179525908840554098629631305856789498565903644609281796883948246679541271970250310212090205787415233027730044907895794452267341372487407843961570799110921573334247317679884980688449710269028688072056052825035185260575897163258825348227660128584384390669796909582595768091668232926781307208072975512387028326137593425896455925876246899556046737313520648616713698823569000051812177196799508002810436870459005487134804839865803739800232424216218436592803261533326299286257898684223279380996699020140007095407309734304456308595151263479040794926918413025433589916365900252337435546511053059596196055568929317458296296117861672102768378965140100909755223444597691727414049789262456988875658040799473367663177376311086022360881507130512777215200871589699935067644800988903706338623610277848309763769948313896972951833955250087774663091851237077170482972879601431647024340617598528486826779568088715414349084688961970697017899428608755329046058187775947979002233953657993613944429430372130480224996814674146140303385699711365782926051421570040189789990283757611282691513435727680520639072373658992352203183698067591636700405393263685302945944285500645919908416557830016376359943443085239478948874437087410835957868818800529723909349688448408730402353787408575558335361402926965615295692892569233153019145239050297882732411988746768225224656055410196833269225028453494186414329514583463048486777338447677373757735120987016143073557814445194813020070241122130599390860024072435423941783153575509436928862052275524950243026603658315699316657333989547994141118908626765239869166118848517116971333957943345000853775229547895651176040463407035800329321343932170339519701335633733839713786518228196503931628862468052242085876217320968253625021355832118084474222634666299808940436633451536948867653471701056175262591513305704838784192364827765277091010751911848077491703442757687674122424816069781546129531232220683872002104409506858098617035403820631677233082324447710069340442805386874725945200599006150971201673331238262797109249525459209420928106385018948442476622785682553490171238893203712465526250146947275682486133969658021698831494709344300830940854009464328580613605351946106114305038606421684220630082412978707640207146909345892227927297243391374362928031519015083172771962637286254509356132081761902418305206946535490667339027462015558048124025582973175082905022797576422534862218161480805086992244419544767624203741154848931909842403366985393472312524548099718660677235825908856859073810309175598011922698307697697813308795084392729775540122512429824939791553047840600779811954531347944306904801305371145568696566854928769064969170485268184006906890766057215633920259320484481365894017058293101936076790582429260469559240245363480263677939445454122149918186354897172632153015085876815715147154628073978916293662408320030624379759288705325293656306538168263577473369131937363815538477445178260153317029461954663853123638489007924858252651044862997973055207846548499021307340504271480751231391999958878827830517148566364499576282053452678870150914832897247399216685393036177386872067388326265019676767695584095330261587508940673495280359792656844466355332818238583723815428104813630342868065102429341187099745535197199632265374422609087863392446795577805855901637933844653033931839064467577302356363208734297690683836463721386138720633985326961661255671398485414308270848031647228498773501543050893691969081726287665984931111295671202520494444456340540370330958395865542869299387066569257431187393345007050570281154724152925996143274059383822011133937349130436934231735191181820869873895678876608497927453997791012477015339485432164852587669049044508727558846873605617162987447276188954140677016137014169257802429235863346589917105728761407697528047745718727398676719378893960565672931207194815041706626399879346971242363390365037284420024659975878992954794740484300579993115359896331938666689015107006735867570056388714613858331421556115885328968845927797770793507398403684356929175492166586120316458390569869344610582586888784573091253607416719129203935627027681987595107427493150323157247476211680623449377054144466603108238296231553848418209164408319634959590098015426420391895416244771174037313937314153386694809294339875319061465645506035692722256440895404040625202578374495514020736328599563922608721355970700297799479410944156771650454790483208134685622174898118294112803533180398125360812201881107274552763887593136354741117653991040156490944879709148075269142477777716670679989624261079405018042664759966672586758324744291048053976874250299694435133483372694513807455933325347631982659069831936161433899528760447037407893234925444355347784152211207515344136800503075114876027212186564969532829037089630445150230976907639875120610279480461099104447819634898574650090187382589016912705868979150452095406307984603561748547945220693108311107695596636197822071726293075797624372488638925003870422782198566292767468991582360606190658206175780431822844756996483576757624640670663088987691219874339464728105984509059817700900148084691927158692279473806067311311790156792817806923471694476976724938598654144878368234296400948307959298783715867828896433996983676064625121081719046708889324436726558804116984479992276892832566028833466252058467053223226620567032744919980358258586403093233726232169893120027120536468935311202455206288731027183838901080497966730829073688613852896275865704775765572468300356265119159737492395916406786961639694153084352967218174205461661193429578592949373142885627728748846252723734938743435199290591381843029418615867257120306894020080808060065512561124543117537899128674994531380836315848385570781472203869656441796886252423952584940293998315623698150973256059329796287132707097748043254725170639842721930522422554538873816630786227373782369075431502691013231937634056292884839081842529916306427230401173590287976144168258789191297451425804344215610122642638725683021223541129389648348137523937387893294905721847181517245621978624846635115962072441023126393988508301931210072941621796088469787511398529127722591107195521063875584273808078328469087981235959426050739099507307914064261494737672652834279644085088304235797635444274507831492289070108094135796380842388462790182414111612918178729147849074060057931938224113058574286178403130350399930561788004366765120287697717821063258133830167503064051789190884303730988820602551654033543076446641240340490276204548114228013625687369619696986743984528090007193343577727026575141202006947143881630665340005224378428843082054232150613929912307060888498999952108170907602255210320425175056778049235476641002980900641830493501108700669802283986482103892162977738534916376663079017264889688022542787800679127062455555070266353151764245710807782729394827413697120632883985848490542790352305510809786289770693712227278372945269207840671775512106040602393347099060894584465558536035923965084144962009831136712674028260538932951843252986325358328094218335774514019526854795662865959058502799987903002183821857590285525404636527758054725289786481654087750142295622008329276530901779052015977278524796812010328587088374545668734815127289474243696343458764973650868240554717999825555175054623811788738956349046437615664593253463744408994684413646761990915622102938366269363701571261427691293368141639471642156602806443333045062347223867326843761698088061636782844735345466003052756000460382973382115844524070966010220887755623601725663517532508687127104272098388750658850922271115474963928769419489268190549420343939344015957742334328329983956525770685994179580724107338825341698513512219039145239562769836643068335567229849039792355454084311975171062853588095399197309289129121096884102413067335653200643140981544501003885348578826719068601092862532513863338644705693658381935080052295868003577041798046983906996069430324738474939493530160208629705600007197987313834875699827825995859214778558782001994704850182450801294019394710576792355035617130536546961032254371916979977224012924239323648228319758159777138039593636602892665227309626575803269577968518638771170120638833585995317947448681033371207489968300173062422563254914872134433049940145599313876749761860294060692306918188108431433787181106746051596064159420160045830274104244014674093925537736222116062145294963654231943615197330596338118285342459597837542218404850644263201401245165921697981471660691025014580599178837531703852033078724004449744126921693029059633776815594103095713269102401092259065360970261682799908397726868026117461912079553905543294568695445498303536631507651701374698617812422853935145577288942769944769549303432787820298112061431150273350487390049294816622267966632547415013050020538012179767897610672027816056069737430748656258650558128067619076568391930845819379923455805845051122647475558977033482620596606338813824544942693027729582718702957960779119078430649857780889865854709908077587539857572823337821517585888302731093893946568497107026934901994054050127908445142080132841030618545699311477569840295150460711539957237720427838055163623113625444504203644854731159712330850362045710581748258587101068963472765305651699067532642795335842719864491850829658422649535511824869963099113056900864375728943794130887702808694639220401343234342251678156047128570335100729326757006444455911080395052184943245724790778051888403674147026847825011653831466715057247833836602857724178177579040344353202435128254845224568922602437246679666674287419588451999884938383450975794306200850834507361910543866266662886269894320110679637903067082251094477295274122148619183844674824748869813588927654197427430405316996398822195107715469381545400757521782422200619429429718091380019859018151374707625198693593429588612117025401139136672463127845152843287663288486272431842049503863145610576804509484469339513345293079777510764854419378865858388822782939920151932062900608942011347552545011589314135830986172680654540782542189277101484138637691854474559513695836866438735254751366077470275811018034153244961968316552107869379809351964628079439440979700089058392708595568648743773819855004618442780277032795013625545550271489013346306074936590040309424102122942983671006498390867409680870034117439278294197586640402097825950207708471613407433519574977903841597927708655930764490975071471269501725534206676975913997099340611744478942515988611809432750168058914207639023907985200054218515378275045413535884886478701262731810201612160651878148090870518107540062148444611956406502344468577734353644325151201925326979412616131706999445236977696654805425901990108621008747400344509261581571298750124428133659993803756811119008106514475450688860001280260716847970670560704776508351448036582451137143081619679127260275757478994998706538007506294861787835000353633181580818696495119906213443915209375646585738987167839134277733410217330724322781614329367251162665391067373054614408449591606060060952483436437245409313629973306976722711484506602734926764242197824715053819187441577957792952543761318312897616179887751210134710042346019294244167648089636195563865935840727427656470105366578621798805923730449629200986684925117016065237426894649100543014742643576523825510804054056067769913017353616495061662005654251522017760898391997670028009079872643920799256484572394353257139672809505095056495611392909122425262198710786980950668439483163600325161189970202499037348505009687777815214001374884385234267643779664193045468403198774649946626620026425865258910249253685633098457646827844202764664143419934828843573870289331592486830698661015593625960545005165079582760085888649669013624385981815474303728469809446473525906198564371003189191197385408948511717722870561184963529242453400102717574448457481778030983731011209245144862874333696325857795174944390621436425122436883890711697040578776473375815321450062480403578158225326492943708583084250785279168195514515367632010001502643500628641905531829571117719676655049760146923722052664605494889643609517760087908290815798909559379015130984431464420928939051330415303740301046157541919378704036607790764886467363766125013443328694590495917537672903168921153784590566104454888837963283104709347789016123472097814290069977243896509909320450225132649524454405321893232420739525191817864205175175282991338040688526523274827089282763300595552150716031837117755026325018540108053869644410680362716231203982448708322417808373909889093669439993871138920331855384945076978964533663034644576373820756587726889633571632374261501635485915816804629999845512817680150096337372772138412017563601285348610625989860963788585618180454957199044158428683438306257419776847220069646937735365836378003385865012685911733884815948211348124300902583761212504743335118731753915841658963820497366696594560140957112404824039582304254727177534530233314253187086995040115519828863852127196393447254187374274387140278775978143262976015553449610645352524274579643425104171045125910676630088184287824957613069287223745815278198798573592360034267734438079452701898967222237574249040296301875072329718031171531548488589984697742827315917837307049754539620410489118221152510463469022277020901301499379650261315088763710124326360197569809124436492048118521994599958983032702034026239922963266247149733533430097628121812972184072184294697437529006502525385807232009868414934042469693957834657906653390601020385800170096693116076636426708883866022588291837252745103349016930951762013850483785031796009492852734179944257958639896071751763331471580552445378033490703977360275427002105539537339587501573325935198302226752328739447868636434044947901933849095783831251653721377144141865826236082426496487151182762510522911410799705979370254899125581370625403642074945239336762355010880788471211432845992874310915126260622215814729506418579453770199206661766879852776022057807553461133715881369323612943923957541423467745034073550483147990784113106669173769715770794825210915003037496096931095417347182248546131477990554663882441548362900732380471023214776160928866486081319093724622938530199457682654353618750369417764676351054404530050479212992536720548823188775341429556874922866872573080538637961468493811576074905537651103451126879336985626414396118702213968092207840289750143020721738665207863289725303360678507281881826956502584781931231241609503287816269289087840678685045619008917085844893591597224495031178730810754271892836426614728250552908873424248076809675768620988814010972590884072453912084173696976944723744670398728070450965828061497384761371620147725545639030116499286470310672507960218318625630447724815755192780058937284307163306385180155603994072445924593351753416909181452333586375279697990711383136290123414648058432757482933542582056509748718470201602155242705107850118600578600918774641569216584808938345278494525883821808892837769781675584178833042044478946483640520594695577513557351050185762502116568088040404052363911156922897275797038115040566018485392456644179996451708505765283282017878899829214210600248656636703681635171591181413323696360887960337592518884789469239782943442150457249578187929191646389947112181668136590366644619967837270275047249911609972639472095987462222836110979924060270042960883613270938020636397801546582274461689936832432090181097259773260690879751676636397332539650011350584432433017521391422615732912447948290904336345180981625967561732543009111920389047701504613744938390250563564078382457421743690429940760843213983259026139938029624605964885754301252774163735669361680119573188671081121227090507609582810857728135990100957110155955519300054024114024065151588357987157966389184740814725480558325559310995568435136654467909353015666692065134776674584205981696735172773000218019246828580051188969148021352784143524265066175838514470994726524574509321731412959351763822136740952430902068602401590884316772522793258914879330690616175568776355992766409299664021648708591700436595827361671745623314137967057301838244559510303834826784326341243979269141249432308601669959541772232405403367975850018760222061792749831171613183994639131445468816603396543532174047567329666882083754246855202463546615848866422770126403095586958865408339215944924419986953293852523522566533013956814684087132483688173412557581339444934903365784065177779362213029890910176296521185350491537796843826916453483271437832815403788704095222376878950983458630487136197073239895124757319629830835428019461671128946166410136086924062893244082625249104123429424487262040046251766862020248639584723459207662368117687234228206767057227541855544722752760561086261449267585261096680498976707601763497167319273699718385657022739751646941007664383425936704691528084367601035013657091081003094589526908818844286062429796374825716310956439287066110264452647871074091385503353800998352272168521021635684870097445779169861100989909921389584739102196063140855762026388515310563716090176867175891928398650989087236411674106501605566310288637081130009798724186212970052613734348778783973958920421038594319188554437778473978250960033391655579166145047786646037367299461303540785135772224010540809989070798747052396814070802722815014221304312405894402469242270017210907557612566133224078968392827013412715021998453005191747825309700502488906751546057244360038176246653011245169183471314806757636269977593259915512932315472160139718197859513547614384066496518443671681309962865340148024058390979365393118572996565403149991183112232299730569852957962172586524296124411064869456785724803244384513958545538019242855353641349125989203500105906624183809253321633881666343366191245653319086941955879349059802837204254959808792816522236476797746018960898308834594020419190866052845503855823245168300019161813903286587907721151120546856575289102463826323137691297249642525423428832897839984271231465399334707959032762405741961732846936751644836500768745799868748930143417615996263839603434590906092882686720429387554502782687988040150655084690655427019714878560841923124251563444933262897639951988859622510808740357742199464138456907412403618642326169306828955326423523244054586024394414349459383999403855085026901003855571244694449773463194065092603724607141500794827869773018996265353942751118405637410603157449146319288669667626049495792448505495623623157931953733136402920421437481376841638035751030242647370670080057760725658342508993761920689587304931619492336095444449862832683396929618726642415172145184726392774978951413869419632122344153170845248524093655503760120539853852663865182380602518603570626928170615206549287928467872573082023753764724097943561098789985492275107477186575517669977667658210205730950265439334878135985668469606988246151592922436006046852766316909465675066509689941319212406146722401308357249789368190995734023943092088852629119294690902349837477881675845299047412010672040314631052222915084233226349207888138675034353980777710012512038983354094215110989091840245170891055576987632997776601888891515683388624098330882658669238907876001306100982648647647444994632328862534036737027247233939185031626857306581525495436286734676086173392080417433657131423950343463584433626027281659635411487378662614311880650367661209934241939903371046903293950308511330480169344213891543745722642437269479330615440023380890949735365009063034936661503686728794966387881830292376713440901825687275119296301173360325355923342531348190333710353598090859278279543396591237529806539740740327049114543780038743695360972364686738983341073386835163760259266610593595328840647021919386723972710510130248174386859992332815489983993931234466050016856336656249089222124489312540207260365707208764725793767130923970139122329669062396044269665082125078493227615297126032599710408294079956468928583564900516480434728297920424008721045452018603135258729033208961937757083653627221352039828611035863552763266736908098606114547356594094448839627852066178440925808939981108577703927919363994368006491332174308057674475135120479999560135040720346786434299159209039549230425501383025975542923407699958322226681726901705865708118643415286174413992528085899834225125574204468815279964551694940078784705667556885301263872987130952658394554088675165462985368393286434203116712179630315674934389168694112088896989645186477553089255277505123290654387379806738772339125378275608768853095600899667487171565166377305058392219973852753446148163739395298058297937387470443009548341434344632238155101989757882585319784921016940287716827206847836897551782474989205721759211080115379486595816026280149675253983587411357277867518389654069173569431320772234438856865649688553942599091892257613589229864848820011439807860808011496170914611419795882232905852493981901021779809218345644357358989426189017767480955102914040286146136139855018905013257764125607727728007354186832222622968851174120326295662570988250772119049357948619873992947824126357715762765719126557686698383062879215981542637551241523543011125459831232127861336031258721895125103744348323535046970881151988851069370405003369999397774913242208299045056523815329434430896206234164101024758406501749839185359863849041220308739534982890224771363989666605491977850624042837836014649282997845671357035703915070132539831827962782630663692310270683022047412662093370112203316441736617861006582702976897251137969646284089879119681123642826231945713980037816889758362849148750595758804720234949370238476088207145045153774102947953547507465899032003518237633107887622096887386349033940635816646070157996666767078148402478471642962257545342626471772348661446400441343327766544237075558383567558992834560375064357987920857389631858538237779305405348575628912171122305536738257141074774783818564242500752059843673535584826350271347991265607408706784882125747819342519524808286268189920207486838882884063407837928585364003590674896112405978205479757553232241249887019083940426684199244640462507904140869473390018852862830052522924999370076476950091978662578743690168201544198255112650304385273320892785193133956390025581031165391260413452877923721080876497569171290380814843256444174252221399330829360575679905172083453695950243174320980682432692651947908012534964082548269047917921813803175729870035210519672839568442681761306315710743640794595359544033913743441018509472659371925006116838705141327022561891936879952268653002342905567940131680572970081704816484717744781512181105733881906124843952091179558889405540774555941461913609949134447927758632220093832319659052407099685897502442768304582980826290997550957629848503706694640667127420102362456193062649662075636557884912376625517438768087961963328597049650428499331648767847407937477231271423496206621088742740662836662222887107257296734331334697922280995398525407012178125224485269535209457015087081338819625521765126812358045017223541020503413760283417456338933407481433276089106808399930240632476577926052016656493716004216914225966418221617691248884046264991906373525670644480937213544018319326208707706233447228877036565774527415103551930576159378251756009242438881981493377499751455113304415962710564275377751802010213896301714453102286568643040718594056279416226612998825513141013703660012189395084464780664667279119731570175929806699711892868565498625036691346533215586591355465270774949535832551724054926511498056146065371589217228651225773690807189434124146589991009705094607682861956807881131573514976957880811507220676413681742364333860023409525643183179065034821890655894019236508654510064101526923548440290033161650122666681841050777086653506388517459389841182783545788396223029278067821919815076194400042664899839873750639846275297262520188915826948045508029206062229534465307972459805399715491989214471083016105620224900379020878451219772260248749808112827124882467565452840284526178183937013187912040411049465042523897599709265268009048633523485751218619118225203294260096122163357678517074097727626525817785359503336477264448571123946668790976725451381041825704219130449902648582023198906056253947338404602868785823712026965624893835882224744386053977228815823847111122887268184233093823268846957031784774358631260919615314504649964558890517588682430348029420055255353990624235597214931661361195358444758376964547603056348919001803311397839324565654084013110233623547464045380790181215205810996079653821000734242664517864388118431034771864114833046591631025964309435898734015126140312438583166746294072737876516498833310036282754237924421576336555588285522148181670027104282239563640969640648147314473366672034220865756718811565372546425276976349542338794034711160502861869446308314899219345024564269789990826161370974644471132690294355941569050077609834498417115560113969637765801636914106895520084204540244726735657524306583607273971539536227375139535174207132738111267354882593517632967000362860259535561475249220590692638217345518665415119068052632615000850426228899252293238227237781652340685683060863224765403675022836875973547480343149040654901325949016397417503143121481622162585854919938259910967806091905687129941383630938694522126045866889136659983166866924815734349999344838187124985194125850154830270642426611765338352600112891548727949836675092611992836328084114960228983018369625607116583005365394060463010501662603749624807846577287842975586899840167533874180209190158845376149537767851154443616575454631074599871365750855974612053345144587680475270497367787000131999103383105211656015218592752366716571981456886318029768669922042818528072376014276270461621475442487474853869123634414571479762981297420261183291161417779795386817889580069117451087825596888262723465310640272985149332151956472646373299532950201384220594734103356968786498592296126544161840319801980833345937317460880976991300079070516025834413684100096105294616418900835488982275788299432916838925900003950116073902884684801324277289508346294439815082913872173472645741624059953038834972398413957584024572704855107489174444638331986554103593022105491341289222686212890125882738633889954045962851705958162130605656869967084521129094457573654354989828557246901009854830165534944834109781560410523154768439885430314540306210705708729948739074126169473135535660643199517265663463312307238927233693236536708275930896502417272236657943301151862292826943396906738611908874755537184135867711148966491455479594303329183801948962875444092133713329440870107955572522125970134589620903045941108620897091872253275628219969911046685213160569094588203179051277944909301687514529584365397474055254091218986305072755166202483415254588204153767132811248160259126422009147063968668352631584498069119004386823077893896795777587790903063619816925651017558500474232801578568690740670878443555926243563353845042936729019255638160863214754625495274570467331763584728813104035065793026499714516884849658113766082295038197967513862729576587920895098663400109678556640970878453423132232336201461959947268816214931969639589247657033128614407544556010726531396855346544152466834527825635970299355782498319962878276670712702321767357496876859891079251862430964296299094484357886423963325868617602080536383691714032178934768678456511629932348331644666657728496574476406033741101516580156997587241729041699836930771475790649021330908176947533874065798563041432361777748913253317710652712717482768780976339834474176120898079573908932213795374267701402699766992402781013260612036837459099877273660961083754360551627003481545512573823706489414733499179801308134782996163460308264351384966133357084803102472464223977122376651932248831280267111998895082347904595298739847920216667510953904988227348685730416830755864072904628649751181644250818693291193581352051492146426433812582291145868267679637075032208693854003658015317785739314256959594141033428417015846521599912256751319661417033970882455832546217622522555963213925676715984141267028343978696676271089435883576984932589209694904205469676265833812330366304144393434614796787651427462365325070024975218577504759175796821391588570770096541975706041712251542168925662595664827732569688799354369286669901733552128036260174524082815378546850361861237754100799389757816991350187858236835792559337768139735857587320328396154171743201780425707260119180908724784120985114904002424461636263448429192305223123328014501172835314310974973806584016843120653854687812974818798504027956290892192579141715173172139740129505698752345474352181688379938070172455011771344346661286663150550227217177760917758686154719106485305668849004838129830109046023338961940733586236110029804969159184496172631504619457497550105926135844660909085227106200092627508697691812786942138892327353555601074683062635887124690423101441893705685400923746752496009688124616519927985969735299523890621559905720866016818527211956356287346111029962139829672757473164639374198926926612138788374504792853379059936016224586425990556702944288085132049833919362347554546816477938340045609540920256377045074372584374742604250262391915191747467230050359542388268735441879527189291715220371804238879166792969548967751202110004399294010143946324590483631467323668309220999206019706353928969646156303399952751515977971347886432900703534996164204621220762406430143035737031735364660622428617479126629590585435049564910449315087476564317957382761227622312783262446020885234546062690703168137886140773198247793311059475228610416786967305770128358022945348338871385788713222911813597041466374872850616382649368516942319419940218270186620703629095128303526630598852456771945025921139761220219388960006863702889244010889222819238322931830995853705827490294887169662683297271747413206485682579738562925851933290805259823626010328915252305964642167342280157551642283628485187056096949180020965740640853077603248830248202244721757763312385575534032681939141229180865959134801731494865845291285144756958242406938044421998651069325033503369257058938743446081112842558114437629560659019900007759727922526564300007454576562925864661417292076268981044709449721645056697318794786987540362517997056999853756005110906816538980170299528635572403400245739318882281406727963692918582920704427140504425480765396557305819323727364818682673188370984116349820768309705802271018200074311929960706913298483202944778792572259878501662653421866839603649082106032425203148567088727929509768260463455676150590310549578444833824745926888718767415903990875111503623145245970505780553191795799080388747157773015920979889017287897898011124131563628052961201534917790005285657018404932714286944783151564202827150947422514140560618772867246759164084327445477470038263578445932491317697049121584178398734964622012298906776269350358289917647375139958985453418286674895950351061465672377522601903360965609226788977452017636993326216264479152750075402958224102221531439440022734926291711620419308579885743101451562052565024158103016377585733472043136205037876255225843142722906935840597031773451090700480858140182785687381512230322930767656579087515168944489996718248149456597332459675694455631095343701692426819567078348608622430455245439433028302063436975365376004698097985100417561583041064400473077296720196184626984929974731630911421578025368346666878968202600964719197791379672145913632012165303616672350412803024322245497907556587407235504371174978847529999406111420381406427219327484678256181657874325419015625981415661630215522102090494287969979971300004865756911458376029301451341920276902091016111279607395602116690278744965461683575837740988731577089762773456129568559996792003877498892357159198815110056870488193065024407637274381924970795511740551935787702753025604816881286447952490095329877188759699086351706123985679384943476004610458701254034460874557740385640246147047661436663377649444500447527955596084609702576517958427729024915841172963506471778918501546593837195311481220157089875720636786272153507882883067821298258527518041263323290227155681205165139538634590924927368991455215346000444690996404244644377977618705604380274415361556769576781893377234061574813689911070774683640860614448731287453444173666859641506517802781952316509251736255727597579373952442131194544146666444388956512140297852314732605670523949813734175499107554190357706897741494293330508413715396526069396659937746302395495766770060551943476653270716183305433814848744617409058713173107373111319783643801032352615151853085834941226133247763968191936411285627697879870144216397796903180518107129663805592541879738024082768579037409186975427452053161571544603390703924421221730910926220710637146822940233350578197232200968585775130134713076328564560992797261130131964914025385322633696089678986281530262577579233446247694785881318884173569944058755580840854858775418831556370028428861501202173179367791351999735783627936915536036410129892203631133391832364036536974452696073824666114530427721312646765245787100119387024439224657954127167802882921874250563971503477485974051428623806234683620002165929714751994536524729527595969638104708407687378251435612106993528216241367019198286240801326782306686025197322050679613812318061606950437470845571341335721036159032065434026787340418705557983537258780890397006456032805798704862203116904494578585331374174897765601879975337466341833877121772583062355262736976173612351295774647131978336273210325237275416795253417941721932248640930276540704608270148556515659689737042834788583468508142986235123754610425894501899993590668809990521632876748702394407616118195892387574366878210748273263115060546701521383858298539212254506222758338779809617175917747498802007813975067776544596145209626695014674768895387047898637999866980162950509524032165277641899018123541798657209303354203040838366912777549542972093859099470626344548197691189980103464215950813505555951605048232126525387821859824426843650905182107899717648495865799674812173467225690961703913289555615630459088193149672525099211596424525366296997105038389110655190442228918104480188764953559931042293100766232110739450439556953862148301625298096723210526902356831898254916762407598372832266490171893788253061970529319074052462454699735270528568863137341103438030394181438480989152449797866166346581269591715520177390142070334206430318225854735949289756929359262730118055058326692185004330697000017207559708379604664166895375813477562415839865419788080885875539945770605077878743098430788172157952678447091179791558540587749376434657321805648710056643594063283081596316707970946853186717721853087457776028509895873435536380719713394354333887311117423188934853592100157650394126884564853051679063122897750339789810774485360923151497768016640674068633412605789026427827007971390835228793581869427018175672301214602214811798306304031693262305757390436931884211955909540919579482673612362083083366836071637872877719200184180090965011051520371345715419398645933121184533084958095084377587414957067326926050200461681177839950756140285985911538671819305448364430340217216239802933808746457995693267736572051724330350982253669386814444218570166015409129555779741851726353748530972072040598612264223488357388958601389637350767561227588542217624923463741603712064561799714753589975380306754267313381725070175781646775681970787692880123105887719754918892183121225724047140996642650607407118028468905415717718523852134106506216245744361461069329332156718410843381676805911478481095055250465499194704059166307598900816322918844879511199647308882311785323710975933052337510830672330884341153630378515438378264092111390442720700089311497884282648974426697170694497324892782055886877210119995026558602617986492516391740695151017745270509710441951741671151418236040777847058928877698453994594757619589468701554199868348175980329536313439893196004467829566805354362958705739489826475241886968022600593759876960045047360690211433047895933407995729048994986591680117507337478008012524843836397680642268288659126182629887203839618620391799686823742159349119287996513188487381159295534348000542570420795001139836482203333458066553957124412342306979896181754357032163926083598972413177490225840736234125622404134139751479463525221900517222120169410579958218981982385381655937503475311741878237088992506352509374650450742070390535578388905342077228893567819107478185193919954593413089625808186633778642873807821435285918239623104041825768032866846424811960237478844894531597440277614034670946808946387816259594528186097392550255710555218400578488045005508150149713137248605334036044188882916474860090182915448954027868125198755201144176864234689029969830057563513014152985204502421198862656903587809674997838386475090581788961964219527574999708381522783945783038315641163319163685571730024803129322016882043165159172171702200143808742629574039448284586583530163466798932795095201863877715945005484500888684570446969770693859533165476678292423866760304843859818745696914675343032540677981660153338539949925872497422948842808574675384288631695215001652409519433640097257158099683424997748655003188383520168001044074215507264122750245347203672240777517501352285019198035107090015336752382838188873238313321844694133204682525573475708558749270731502586457895173256920910324610214714201007875139515248315961590982614927257300699304056546638756025939020558742218001228095013033457888265383455638241588329450295412799731460108869432790821460070815938718319877737073158737087139524457819308408856806182014544993144453357234971479583363949534865675769877149927925464978946759474725827722229955496858302528342612388329157299076029659094658453610362609126121907059911671067755445269867141997301171654095697240772736450904453602391798177781646107912668359746110052659856494479316222735493638884357440097735483004144027952442910152699139460426855788062300305645366540940575953019658305194330604635369288048618996917222406167628686608062151217335562427286631461627418708367736304535382828204822871631711364182959463491823069666281784127487207981397135903695043766197394223837162490439475733280209752815387836144533449872380132149162188673205717576534591034895846893548893537120595427317009883927841494409530290218428642958758492534034467508741206011770269250625802978752555788300374789047031099207296219445297666667205981518145053002696001867211528615698771879199832044653778308997572777850472557680155869067334258091033360411609091468696329026678486289001967436953755420465275486793502853099872369851503857756608881241022152954288771913278544719272382996361314780925560567353667038183445821846841563006433199396485754411967910311336365363303230546639561358057815354557560942099222522960992429885157738967485450839408936298243791697981530896710643308417594747837921653365795193399068498131222596043674553792385583383650632282567461070805050817207744814461204627672872996053992721940357728358385754350975449262228306418381152124687206246370202158451072930098372514022313272450256554155502181177912405391832387781241530411223819705606846092207000012107233877080720748228765611245942664566617214836003772690629727959120378307715991855661829102967226627894679186838308501795805105385891777660722697078537344569322628582456688839564449500159969344582035324780053227080829461511009323010423617722943453023520923870903895713464863771902235005051446607536558811566518258642403997078294775928891387454307533020497534551630677248321376960027515692741828870824799934916527345932375860538295876018953095435962722942979133802948995379463834487364066207194960324793849654883571932183046373348572968458659386295876396251882001900384939750225515906504967151371747879505155178766551449866789754472568652577961918381463511830207647643921394326133404167359429155847251453910764882947793753349439190829032014865632852154691959371307338296619899221662090947539616315479371129335404367613743259693504858109887559647010210075284616883477306902794631606634923612292581029247323196209696516535449950712807508178990841067214861493481559058708822389461979438101168063886178933473127817381417887074581052485254522677382466461953723075494846593026719725024143856606174251373379350997674772161925083165707123463216764475939722685088017923525670470026561398469175035497788236613360753202989147642832982452977912921961421593640271812878812024116479425425765674225157514626505544660556612996526188430157064506726610561767577765356243532203317779212519951674519706529304863459141388744618878889009375977376642110206837822361506176202701462223220757877379882177229446247624878845120022666364019059214939374694255723078548661673817384003952974693713396072286134325303618912147879877215993626266967245312594992930853816970226897262072053656647412571086989678069300106778661703931423652447336964474331660726469534207712814089959255124106564342502019123270798492452621533577292682691605670557841017714084746154853008088464452814582837828705293413424576372803999565667985396163475679916645785984575082017188158668637748989056954911130171463899290318025439838671417508522433903124575868462780374492370948096865732768469511339636578496214200261359039708174042282360354226112270249463711988494868576944653476443077545462163109220052845120798301584375321703060247916402935033094327394934375968210699993197793482258962183668154607332808517458039009756504694367818780266265638616551086227399979087587460315957614296372142411759392141846563481587884289636514090404559162849188722014357749515940927370718282841700311667622380246229162859734685898200478807607685728582220171438683152538853122691780945273199289115292533855851107677241400992295610899403024633999600652233628412258887027112132317697493598484728415365191954735122503447152773810268310863862356029373739555663256171816981935780104592599817737469601551627473333081210314125188573209179166922995403727813302447578290153782783214693927398721779392893697481613438690992138643986127236220354744661010179112146977703840485051389258775672770411894640049381064078455284969463760305328219846429550238281110032542417582951559232009949634492912231026111757428300984053298195305671459977049184286916756783395003768224165428047379620818122685606920215279718018007996389194696750181862744329986633929236660253198748105142111303558002274642996738378257583825375479301540430480094146201780213377495986008165809282284494245935656374556797720771371466106697351996702125071859073469777520525242120272195405397137533550457862481439905370930870063076776054177717578266263804297395508696453396167474829258993510562042909101250048620651182865138775638833728693461704754457346085934688971765819118486164838034531114911177915065150221167837543540451774461033871190504545773520809211406908374205631492914862391132791229209270614031572252996086594192255234749187593244944663178380179472668254322106483867687998848161685337613755202893585817540104659898534600910379615744452342677640184992309529418625237633991499555910022520191004851528777557754786368547157901613620932653154214952534309096631831064545858937426908129017069436202415401630886695817627853870264885420063567756292294920903509516843917419435025394361407431346765250934573925964743470351179111304814716954189728318893083429370904721700972311122696326192353747239800300887993672669477229503644653747009868813884090609078691473661985527760941849839158485379613126979370614441528671833665850884231125701353424807438844162462095951421935266631844374594324252037282891778811001427758140904930088008337991383675315634247526262561258739816904516766211260711159258822962325562191261846887201083995407125558733294396088267897933686078495929497944111978135889709363647375275416471711364612777949449820070316694555847441527181060885722897131923967753858072888493292889357529427448110044965405488873336441684237420120715044772917082239801094950690387106346419608763638253776099241876330568555654057078630309457217745936771669959686558753105416676128121178287580463147280710615280082912098995522193844427024947834626391435786933290143391406110583338286764498158194299636795201946899097428957177938154836382122986888914188555894476916941143081615725082316520958620536633808806309755715678253050109928836934392646027241925829277306707833702349357967813006406534218289273572033930766190082400570412437862994309657759785637334436700036243301754594393463035910479489284102322574447100765855514020083288914003207975307985165041140453597187439987327115122110824047939974297861090021550166866792021117885925949512884179811037517374965810235776530985019247299013659126363705888940529465795288243155468078094405490050267674963437438987128364390657282983865458288181721311017711552198740039576493972381865307491899235530486826418642442883775888509895016874102412971268118520686778010468494879184485335136086226955621456792170598663336196506209438627843689532881223247312183647790100176802484594670755130513401831602049056161673785248290022094713381253756243843904333524894138868392499880661680651923153780898551139708987079793794929164161313298704597553379289506292580224801642869472763010587166399553862342485210718600080894083646740221402647013125712552087024384428456789147714025815311813650581838617903716966860960189243208646601403873731493233359514650482012990877635807260792183894393813924925998021554419013284356060591478484926347057988558011267414885862143365314325840970830819495742826570442695426213400564048007817451617245824604151598248072743065281414555681579672053331345823423830976216892484372787121193322582588980400216030841451921263014287873494474592938504581365412321695062947248042252470074623515682174810847615514507152343157860347846381942160555784343275848336587629657080897330794702095348811012094405454465462822840864456163476716756649855981264133203227729857077978670900562854072875728363932690691902105016865392547469124185086719475019054556684908805305194082344340519563201742551475505425496916851815012031926319024194706504773461297246506257231734791801655610370102129383030868447393693998614117817711508676099789757371483899815528799614609178679285831781307216946282894582335630832310222491485595197348358500337144537034125243963536309987834057485674399753029405210620432352042035708033307581040856566429967894523410311030299380227528102180149258088739886010395787141299879880340147550400050725420039874162296923721276091823301420777073072710298569984632664799230346627537032264497535970873795592430480672975547261068474353269008787731257185106616936443309730982816173093816068580478382079496133511938780750061261087418104062202727358875124776996255274326844882437445200099486097323630167745375460511093411484896523066587327679399137711096628767390056942972133572866887344055478905543751198744603018080262248276142703173712284862406265258406161905956989567804329455418694125988458111275290048430305857702568263769296863298045814355179093041796794576635583220281197588311312465018753956745542161479230577543573586021506059452736198966545493961188475563085174157768819656407895643281861988995993358973459208644696714033067027582062646206706385745360694141303142401530611020657695111926886933693802210374543262535997000644449573973988083615629524770793214646012672200630330829493796631372754187182953309102127464719950169384887391208690252245046335618576614446761023655707757702179284838986126715164553482763173258197531801944622149181974046334233734196284749118949763274694064562155814855555530522606626168301545011353908209859269067132067889164269475619633093279993598206310903729839235674709545436430715293746042236469946057368507499919905092772210987310326580972756688576782492468325073594201322915111864814742152870080108987903690179657233216164131287887557759075385499370153546643329893339895414309706477514878137176888229491792846714493529163254580288487269227267024603863744393057764500875555218913984064409618797451600947840004921202994622223257141760289055699223435854351871577895372407200868952467571639303016644660636899935815186916393892346797312075757966270571030412338748653776800743245515713750557054242389569031020373901489441250052854881353228484427804331300180447251263339208910845798967175363134450692134455388332312317124101060212971407946267515593380587412980622832228245166872008940731209179187022204947957973261546726237177356692275914515861710763673847833891181894046554111079374925089984075062462180398592166900532032528349316646998045229631220886943486738613173880056889215266401709091345989341453945246016387113354314544082478802471555890489769783552793788700331703724287987333626480063424005125427111647868353685105740295940784264417394225410988926189990602905759914013835031589475753658742799642385663326194338588033184196886268467629736710868151972282514410386484357074720849834351010611656425176714182987004341914388461719591003504884265951860887193945098978875240748348174053420719990581156574019067075036391263694454723767155486422027866333047619906026005282429323738777599485768769650273477651315403014182973833778508900425676656117836205784798835175664164999970133684448095833351132323493503808694238098890682530654912513525735652176449289847066512599634785532091871165677026647130122024864145311148481994690022884256350174272847129783307900489565069807485815479263362430719483712050734690356985581987677732460681399707112654923466001992461216798115777783147811790125809020647739512927775761578592024360331242896577032937686766490447290985115682440973200477479058385340237625454901343042409472244957621910903639220121199087063309584956606669640635520143411233591200768833663454347955489271236507468536443456083349205151697343285140650228117900110322484324287877060358453650453641418192756117481335029794789917536794325067219028199558343283091226619439751381670386966222577737829101305457380734040707872435978843619798515241915122943293922622549502391867204514042742903217226359461324030631870542967082055558421475022386894373202423723190258555283584023279025054148737926290265743847544633531621020730958519529137812685434611326923775895028979067878905822666442639684637785990230890506871441277877810494368543971722655264903075493429941681156347674148021111383789807263473298894704924799069014909340148012061404839787769156222493671459853635100917693900169764245629360705878386255749813902811301122358567804027469876943167430221719510445840630755302794765235627198268576787667555038049688932132271216907912455631208417965464921083010654646637139518642464620292774823003935586572904514545832774142990188683147745780257933091743982542441513720538722135857907460850528689811732208055487639397873410702121518004046727633473584109084247595042966344704324505867654503931385663079730161461794232833608596666385476696652015721265047283283785133027020912248108158211025004528391857116774113035817823404184583701911596123572908447379404294204145830125980275245136146108006932740210653197672591284113582950538168053748654273835951372785029109897040970029886533405175750521444894249682853928206036455889337794168938769833257719727719337568654671086858420869863577247772795881728837310987499775823238525191149309435654826020220057437139775985074663741162675342338653588287807116353891244336294745667083298664812944875795551648761503887022618260938237682991588018523669157637984017500237183759287343677770866798870402622060073430258804871348121491332542253632419126609115362897793987140485133056346787820375217844930611950635577135124489821513985058098892940715252737059635551501124189782563421163867215349727643412482279839878083589567985109270701216867477100150283038296264357153649884229022298120736739534144483529274596313558102159679469529133817176503485146421766699309317341690207634618321241016136109258083186849559945860523094827688604654144080243916664661474343438202187728831956849490371812216492643416364477701398921007922575565950876275537014000973110745190889658065905914483934554876525528696491548871108207138506677607264847027908425110225663498543301824963052404202230701792226460242427627189204711130376266401485818322057791130000090201383263828506331993427861745897252411110096425147812450584270539544257256682808518424915266584901429220530490191873418281555609037802016825668082151526771787127842609188345235951319494909463913679022494801295512129060242990960100211060223857598422683868105418803788634172333157139892763199324456632205312108314755761884575394758883653369642596609080881857918475981638207370310584137229722387335014780022183999906479489858250473335485938180521404110186862569359872268328499516644730701148146735545075767035023238837455281247506300606703984973121653316887215675501283601149632135740635254517504515332749476075874700497747346378405059096765735225585504360399770955500526931515399350862643013787590709582083210727867617771205107607149211416172406112935225361426196763442539550525454286548662419204343063168454057177891598248255047491119320175787104694818116263853833100131081880205478380091725274185498392080893716144662417308986025415241057450462382442497807601301830097328660258421702464312412827933579494673081701694066566761824158774370749656239751222230790045707012735681857135099815542504416277002190280403668841973473961230291733010758486864984170498047745317566599012318190292940458130997125159537629023777295073205739961787424177587767645565967589829623788726288901095346870974455866202175013140110018940758549397031024564018469251818086688977585530176005299600588584539573336953346727356415320600826160727870587407565181539275572779517587072605473663877352454484558286102205736534773591142229304637174147999622311112502642219338173531057462501170166130187770704535739346750288380247897041430792279220111695116645492372548169408467186496581860024194841364841673927558397354627410437433083796702206069166605045854682264184722070677489036970470166444223941658939767826515420154496956394159881686633369052732371195632780233605769206522449952206149437560199010760602514759297904927324836809378868330609025906778185144597415108863892452112528914687837813230626666936801162190819993456518053666135947898178442971305452858748447138441645530357809265818617004592673711353471388896138867064058058202012031703976702307856937605372129344396349029050821434266633787377481357484494496562341798377484136485461576749990326210423509304287444423162384897879222184823574272568787824962233303082876052736732941345822463630234319335822604613814914084922018284363303410678332556416076238588453362024269701477566705269811997807667461058208520558180167440177428868164505014516091378624514460177543986954833921089485649817021700358216270667200103370363262144253109214204567344699004455118375684767542606997342178878587687814396521739268517360393000441032076132613000478990228228799932796584160393618658904541596043143036721372587058660754596069775847133916701460206976354043915848790937453191726750794783917602916026550333926734924962810333919162840297289911111210952379921838068703839300986444180874432431226912310004041765360908744439666405815792499138918093079008544546890718201662962979178001312534052703916387733348781381088026230314023895364142156721893347382859934801456411695383060481226602271577840562738268161746077008461219358639538642492589716528166251560660568435306662629662382909932285006858797205806988918950402982831359484765327002260714689242586516763764118207116091891347892023305007094156773448279363163553665652303381854677046340291011494061860514323396441731148432819720634303046696656708540307299742484009521831336550681320091696159136853438973807676132670863657946877114638922918788576904289338027526897104700909370419233538007390187283193136115770540231300399142569507853418953298754615575915085452433335171426699461995211231931624385386972365655713395935410673187790962855153086138177187893258911880333348803528738514477247181262693102888775732451690054946776057239805426953872403179432079747585183984619992513266359423583342059383720872892954781153852132220447626740291885704299137446331478016867237307614722948155759151936183558230981737099282636049513086709728962086497711797256879110527609129374090518083434064390563053386658677308170469630625779649663041109578898122529378946051976543512058430181995826742035690149654061393182931529930508037541170094290556189317526322045502855823560545631139843238543970301134894656088044095483072426534214720694685772298218562763262707006833362669493973169159790316854657722520564627297428129842559999062544429814967956358023256859469315113011364385917974469006672905995634812728921645470474330784995226520440745284651818922028652365469948054256274242280707608133934908578164075276056900656929618157548615793868681328637324269840913109110490130501900140802633983095703446760064203059390049691314772878040076194828691910895299542349520354369884774450634973866782724713198611951591252242542987102386889846632441840533678025722489148580928072143082872023197621251500067381224368332158296997484675683876009408092366202500954768373673435525629771327524212557224930132250807825981738721274129250175913776507778357420470936413126449436771891711590127656529545642289821498609151216548672321047036893315603517349661015653487764219465649841783731139542768195984019707037806748112050043579107911164981328962373490163820061965402602692122074173578660560625409203393105820198467851185005899864161133662848878576154341940901242626372109301791029512018914365820241052443587706182485581799940121839021604151146216564031819371744378223816511819297821069144231476237906284924070547446897678483465567073221531175618689569382507520693966867495707115743621860695029418798805897540880431391178683632847243369068734811676578710414855757719618863253296159043975959735030773282379779115651885066361185804954595364198114869457052959573773049461396032058386837163766426094211608101664925063649815983746185109335738970408177955547272808628500854326375380758221333542306067527004433728642131590436067429669523520771527968005609599967140132494025704026097653564174559584079183560058110557047968441262473756022162318802646039810992191694665876487744906754256121416241823175306973950036428653438884631058997378462234205583219310588340593352368088476892725688513743727330001727287820597052140559274411782200670221982463069213460298067019363108122817977075475980444817949179656988543949880760848252114714602060592481893497919500674927628166414667880720311789673998208550189770027459987402464161792381259974159391385402981702653149912556052175836621505589953553686847151914325237018200013953912831980149588764131818605282856852974707445581400517387906407796180246132926832781802264431645580960882797684685623891037331414860650929629903358245699227550354398135041812583258786160834256309897312170210125449884727732173986857541411170412056099998298748137278938188462193567221503752647780524277187201096866900541844839741100273348469454352930508378572689169823552452933500425284179019257015302999664158368309802307697858558295933517946629512293045450328345235653059744067572842403905156606751120411479886945404466252639918886068069050419453741617722793228253914668119501270417955882938543892946909742695178212751078856373966948864457695838032769244479439444622555104373406693855386368892831864778317032427650836730747313281278374273302430349919307470334812846442526441157767978330711375165608288567074226179387540355491625466573238663210009833574876672597735418420727706727509509209772745166414825421385169958507869428709401915329014064553699127289880467600850904883496885178049747179431480995891226584244657143037164549789764819171733145558810817415793963315496252965998305692606605974792845969792971445417067165613655821587386587608672344397218418459615905228002393788482977715929320995221799469688713239799749128862054636466972032743186750356889740532043422478225434170031551772819336647138010675207704048277329255493629969025882542230873618141953868345570370909668191460717620115981013975847904354195385811493962024425745971749817717318868160401173948221015555217740712605507581824296547728475551610613124635480775309406851539471420715226102621193390407322187581713387117072295969161613880201455447484202663707146934358768816728307740844483545313441521275925073309366227529235382088040904264070996021649443028476796420859561555982060936924407280231441127036895940854410095735200039199820469976736886352873087420206765588348516562858272858077588028763302727204495041386622438530510617567067651056865927719092615067233224010027638248191801273605884026469289058305678258887479899662062979089237411613227180223832395470333180230206412534046037762197491319575143231714347795700686706023288030407940415666958274154557355695891145353229782441546053958492526248463179106229535412676214034725904327738635511046081746178085352383180290642737452445393738878559657205170157650574800345874500869288862533065773757960193671533424906129393680417874106207142966232556487975222054125476130926328731235155947400632607057670389274818838888833186874826821130830076955573198138556067590460764278633443922081754467642581609428384242149429086493832096476181579198002578173236622860226834686086872102321005768281258428786114355042932782418102782228023963787648369760308576744401161869245030059459919725283178034672292918126031255675123049947395791510357106134846086815705450816999345206636955910994277549712262674024288716490694406344448456101319855535718495856005425796008247054834052541613031462085968150115455289394601622667677570214189119026325858020412459100237912614697020286627907731866685627911429879961411335544616272638849369535317536873919504395444692873139940884888457382836736909101761565504615038155404597879114011373912540175877689605143379603463629669802206142028615362219055268673140394888561996682035479340343547007389197186809566503872840852301673208992908462260684136015674504034870005002216287907547624797816560348724602416837653176405160191254074446697374167162958456028290446157877329346722099852934320975653728241444877618953587577761130365629405452876331462965654408235394567154280520237714865740374843501835558257711121531643509736089922508337753017888055151023576088935900974370784074748354310365564865315493776882070602691213329809930457760117830359571421420304506971536443814482082561730407289404569113466552796600370507182477014052327529574735195373033003123311790640351212769918389525119735114831266152121417919130938753484894715368259926526911812711477709646168993458025902894632042488775699977531097023059533266217463869468023049744847410175099684232466255316624273569471372032049600855151285572413470482453568568989298062450341671153106322350337997951505137567570158297865924937793030216045321140727982632573722800898258009290205216807299906168705852037384417030589575295396492469532409764069438560911655855555724804660366413894038603465930940706029595999103987899699021042715492497329597354703501258363980491231217392612162011305022427424152781243634246047546380918961629065996916472941178101981636170539603701437686215842010328289857940268667206572411396971390665715047550125756583441071332416421086196133772407576633668044637322719255995457913859212232996398270821542443412293854931497688125086850599862537792585165781960140579372201101826845157145207397566018576212230136688164090577744879742868670663287175364089204825922262815324479552352639208400817083554994235480728087946402859593820424409075257090513080632222865549700665329458686797756180855148771677724890105380956784658072608773319824567727332847918609429093466727707190859932314899830778875800204721635243485410526616835415452401963173943048670733218057375094119618363202933910426727819970749957531830221362053895700541012787334467381194203023348715834130204926892646490989933272359643467140573320315175357735739306378447103489898885426303707520967501352798133500723312847123440159077422907849627959569077596164013294157952041052865657884358854318013047741732503120572457369756093902463655715307718216155818620775503979765686575872942424499905756479745579121852512586626053890575280888176475475058417903508905575741711086028510407419519397071117760936691480103724389792000912262617897653533118650563281264481224782371938887689932581980468556059305629411516198623628331496379856227523628279473534835207475242409571550360741873290421592228137706716985842547421008350559835811436461994856477928987022948495696655167788911282546414623957220034593642141848838295425976629229341746840719931748793581682040329929681305488030564376832079525759207099510475742698782188208637062751680752886748751121388998200265593216768952794021133314292555563400228809956691777739278167987519898066278215218973164341756578366586976881172864419240755591486853581619025779918213752389129915028828949123677323556114448151088108840250430540035009493211996861847366707431219009794852573940911460200711437631063784464269864507789261260549296728604619641986478694596346974105424314529217350711610485657644356163918412821538918581085917550392602437180659745846934509839892943828971911421225622113280987518432990277245135192429227390721681641832374445676586044737238334697455168657295781469587014746445496060990786668709020033921778548561754332807512748796991707660371328750284185263718232515669776264080332394350051361355814707444397122103063790808538164338406815387344969211328854913608404203692531628123286576255689683431574434656191167740480843724550858958789228290157360887286672578202076358136411142731695457922823561778571897616625525684268281937072111496496713935405918517793704204772121008543235422124643930881257834237923562915231855009055399231321940675142473481912037317657673994175793027633662527713837915768147426225949048363142489518938196832131653373343029637945235782581191650990202098110076888097266345706583040422363440708867729309182246728470698697484324562952253081473715361757395050716669920558647889158186849588569217662784168976322139672209089780258515282445101584362615829522116112309514246793860606221429760992839282475278862880363971363812177491353972879450710875346320707459218970666649033702427278967352308676035451161356855379784374923439548080727303706522949091359500972111679301304310366951598607042799697784045445609349854520181187906575551427023533980542791958994824275060966527087115586665448798381455588003464158810922338702054628700701026385908076887688514910439527840211664795413061170080669570353345612491691098384463179996056061379882692295341355021261637591507710114141685170499263486029133649643322222108198316641501765261878753194019124398861109260310030048847744527155875691698493436633776799650081683846504328435041644774219402132491962004380160379884392523319677723616944805028045139231487678320579769318743834698856292221870804503336643523685848105791544504526079894328339975197010994025252934559771452811867986282191935209781542251668776964348221394963955345975592895784806766930923963080677995345187318187299723289788216504511004521916226525810393483149498374334614872527854180171851981840146842837260056499513603040463112486596011750263195069819444133341691495462488847954222295629075686378622914142731365412320568935748800428517404109772208750784256833870162452625440784241726437592977099908431772445757362561517236851287248709628316685711876718140100078834514266986829149206486393819868482084790230400719484387433198291422506474881827885788325267389448628711454486398061282247786957896709823348524604727588151688096919916024371167013888886523395820801811273252977475890348890591351139916755097422450892907985266550815689064298579909882628822973053352830552689223920093350304416313509853693177411474340682372587751994201839895356216903474123344376807078145540802368322714628643375863938811202428568051513246714305999549592421121111493708569650683455028262812941357471744039876084205319290831085778974424455199446864155614454485538342719675592706036284922184274498803579580430996696547601299654443680860016936357510374723138153232980735038156541511913436892268038674659305537219532795999961490297363358771755837101493525251863313768935941864653081490749356939165584898294018448286099847976010104889288694864130638470086427465838998558590497928865686838663157765428385937376867023009881007383927945867360571478703370005620901917605327866213837541175119511000878279844194147365121267143482218306936360030918530448234070671512053211530283844391088252866662236765629578179991977457299782526180151984598097997100338499249331015988129732495977170741924847840629184391865826977326047642193215561620138100119848740295524213323401297345072568262762278546415041393606154027838814880155909963598590150509619143969776661966217389886092468940250553030761292994840725207624086092790402778889188533848139543353290709945930975364182909777773691625915057491774074416882488525012787321398051675585424318046657862756149714451474178649546829818290090106812721831209038086014427698496321455599784352803230917332075690188924964880860221778865031439444049799583614145988882583852518582483014812195543251153631054668546357945459777663114540726230368960997648701994845105346869936317835178005231859674649210249987856339972718720247744451460847089911361024628105704239708880662851664008499311616328040880292160560497119449361868239173833857154979275136242799165023665180851082631409450526320405380033001191955515280683702842895555543597341366479592334020503949096310542187005755055220106107725023109478520585636320871416699560620807543850622309369112117844012731882066863517723878132154060118459263706467456032936887290951114603880693454779210519459465808111980572627283945791086850003280910891970540213876025850302555429279423204634965923097598662185681590700392488925281863348489390338425792934720046422724746509236407961835080284735083746403756767159624289735172509905067560793523794908768116476148165162539472519896736219568898386657246749818094386719597623426420066820205532083637124637526900876635407733002799109986014548082989005067563296184578382447025973610088443680687938200413617796229485040218829452808485140439708059285010619196239702191437785872591630241400532558677372280488821585387496598105093733662045070192287353436727535852867280352866524374609241234002071206224281480767073444725996303261793912618483568315601361411526029723465642498502068155482877367076507790228219858979328166059770981531405781141518787343799969646172758016511746854529387805974468275728701791659670169165157222851236507162052885389150101389530339004490229164905741421257264947376729301395241587843938909029071359279834790747790041476569120440180202797041218997180710778281842562210407143472236699167594600134437433365282366388782883029619091807171318791651596316832184088558804462090612320949089938560207019308532709977018561981805689589155547375199330653873719026598344078483343737676420243889352059297912416671149159531250171128272016834171433599899035415396412102464466704825276942852524909794075777819923026694383994672700959156991367185839753912703605180090170762258997021966995258049511754046725693965068077902532809605500829056618916764900356252514965666763659865398169291814748977094471387901105622501824706280770383514165259705194153332072530831434973043141893397567413478463841321347713784385145950454686686089339550896219911583525406522066711309504903363357189192330767910436670146007166693779199745538695341157125211661021817315144658091606044680188116334064221485727754731979259487687612184605087010309880974139014822751358201035583859137117871630879004594822644111804917606749671527977964280245407345845979627604765526730079126628789016947709723948521334756640118626562758146711203986070213516365551902462413702007493195129631854735386287655890707764806060574578451457442945787206028175185371822010478558390090770615490871967616638052276180948354268926587024279837070896329674863757374106877421777102213771346165765897533203408074401014806501637815346984214713905937789005270877434667968148808070670965990295223230819731796031736348222889871466195526944150481081014491953685872915402786742281347199717284506376928381032950286031194200933687842213124947767189545453737086788296492831713207008823366136764036271129376715735855033153194186459913976965364072688062429392148032057355971255408004968282390023257474332705959238670324089431141303662356021920525152212769959784278205415664960616440195609707466536330112337458682256845740958562725545783977278808937301857184013021969920699303019116878460946864201642974694776944816344888254106030677302840896630647944959321498329932786027049858403089842060420370335770101536772552071408470620426931998143324648338380111791126759111653598311670372611418014579610069319481160056849626436534160736793657807274022496369976075334004338140584350274280070335113712158149797941264506973576884020072149438368755302999634475374138727933969626891287108482461314148600364762333686559924728080983067163788196888880475495263870250682837980840619178252117192300643255244503474502392622078500846388664886935614091679161408250351474632654323400449813500025533988698728598021572678321769885894675585196985092652582009420289826878237224297387184096152804598958440380498929188978855518874702831892550668514365971127705162313565978912393622623085301461148106588127956071616145672090234273645207093650154922433152309243818123309329265642797142885056956467699883784614924170955902261638318591076921240158798372138360285484072570177689460343187860379225359176729787642086198254556410754379342560609561683565804446783341146975255505569957064606208685623365430975970178097790911172084169771466868907971859740418892630565850801836003575736416750681583798409433271298411932433880187672199476816985988059311257603600967708357083908655755217028219559060827816388138712957436642724820386998777004185662792934088204397012682514041573217077021778324982840372932110845722189167173796707321187045850391876161791437266581841073712577139850873974718994266217270560492693767892182060476782784322525294900156037950254395334183845179647498471824082121447955743543468054736166249298778677410595280023797158940028347821709279632224930395248612811982455047740264667501058269190148062104125686289190543892950799405598668536898189941272507027814083165317234269238315585198540086899312918043566793802620210477090368214019516205507363588061479594522452027920178443212748400759167510311955214220834250085830937965913676062665133502294861730639853207939910502367567874387414132370619931398712716760071797154634371965412301502034719494833452738041512728096588283599570291570902665763578681528189838618060088626109187552964002225132437956843258148535794256805018127053852207236617693311192451077892446581952591378742883269701783620129179460896584506970453184762626935802565826982748208871469495710181570140458020957227589980898848070171531832144852513743650160387313987839322148441593890054675427803712411420039559191703261618335614395714090271940655485334563953559255369379389729690826858434074381671429294766294149784820534354204441212443035691469374565660233234447340374239220016021866547974203408959021513168446967120948066737173028286720591028129506520961189183576051570736915970300356669703303875208337721702507866553337545757311637444138754366171180721614495731019675148352381751755795478878077339038082218979814080565129143432680553458316555863604069809147494158950776330863529154986315757617904122128698340278833165928970404516218217995715295008107942402020582826362618868874183029367953800047982196645057925837189992857463347211763353839497950705657505265278721109474244911464540690795108371283220557118286751623932162277715538102084005149589871127249659951941182740959000443007308623177091659949026729470532196215268391789540406157497213694717161446877439754539537366971384770095096251461309516776039167819134195301164501191933013692517313674311391787319693110006883732651149060145034380972734783599921257218291975711694136505800565641788696020254528407503722376144776249959981467851120872754921911089746751151682348998130039927438212127414997475276987829437378255974288847456717579136824356044534625143108114330804276862696486648336853544220551318259234507011400106596852781828005937779603257502850304829522166563835190814061970573697541026758251811643921069157295601437585509216936288749175402787801649469846633587435224223717757473435684380765641220995103685074689873562007818266109380639628570152409521555000107948441726158491409294920601510754948886622378480720829928827187606472260010715989279177301352149970528661843046978096157015514253112468123885986848177085635259893246875164647382507510840095584969714779441554889910645531949328315940371469695120329891355213913681223698443664869504530403389295998029778463010728383262929377435206668879265656110205496489576765380323171355630150848926922639201200596012500754037364546374837139478916278426646254662602723470184973228852797171443305473917493818007146203134827366487776538742776468009957004719633269843183413314169029295186172129244621204043600315144650921266785429511056454124451159405095939945083072367862204016930187378605000880772734575567147723789587357429924683458781054115034368007971694998406903790263195592885656218834911176252095922693945776241609109735853952725762321134170433650984876309467842695780038840049767888409460099017661316108367321175873985978416310561481359442075071945919698166893565886746359255464961839946538098425932027332029535923133798164932098531793292443097664779746700409345245657979721127179297449452341087908089249212012460557247849678139039795982485651887920859499721846236181439675269561617847614907937679762027133042775164421721337491902953902708050245340731526547044351859007218778096252897701345376211357460642892042234003942585998505459456186484661486170338905863176189929882012906277911298940769953921832695973215610767006151471185820361578452957897141783415245914803941224167330077642612421939351365055147765984292871462757933686910825182199647197664217168985563800165614809981976109258289754260165752752612796842397114850347054114709217729984432736757321931203142594634374766059063628347346390362593474163044960408993296099492235593653041288655515253761622767691637596528743101461271818196122927548480534959443786818985989326326073514522789266438372431404950682553108569560674974872928389058598948952203527858954594738765996232879849416636930213485763676406859306048994255234502993252657392413722799728653462161948526281379139636193810007323406699452168295250315236583346059110865113937133294725034175550296219728952034191834758839762892338386458790783142245369428462314295179723580237288970235109397704772257770831454628259217081792851521435472226269603139057420400738921471394597031780060291017845062224891477350201915274270764886592660939031255710522965023162467613889986142987046482724756212273043376713374736233719766114513191668917893652915284853958575960139427674694216573579394629441114506954669762995556956616134535758969474633558678011498092183753697256983379108024283880133495785521412774330241358642553282263397768544004379233143481878582936967614720247985481905671586198220539051442726217374763131662687366137665429574574488909016403976421106586701370024157826906772146234946994769853158473614038109269932461384659385583422185290291367022543885528720428218164879091873090220804371153817000034730862451519660979161578986700864161004106981586167414222246624893598153058787964667360860812658675238279680095176811968497136900418167937572617353560447810005566193002414704050621680048020420871053574097209289152637893293577322888670881178572444038180017394001009987619433937613088173202323545846034535595586019554741519270682614453354894645254305037467296284630907107132626897880589531583530200985229742087913787172480887638905017312031982064032128248074795216886228573497646865377839925254061463163350173084753574410383368619359028211673285697369318423733705211464437391611144738483655429800259200364425899333876405313984991595499725511733742996055382586466056808873505504597643170067133241960554590754799030399342966301994468603509680011690417694407299418583205436633224193096248870092369697876164279728359862928635407585732035952815365394858404199734940205373120837444592361916068886092696200884204503515328002907154964982462837805015008109398962755843251529891351002618110884228999705889504168200143334693670691369098589084308253236851153130273754775163588058553439226673226600740753976849553839621101762916118832414908040495105681846795926788124803320316940532762689043732685704649793487778576551532618843315587206958829615865094309658510635204339880342609431577692837695198418774827542583689554248387201274312353977497313862661315980492369623996401925491673280258606685441899281933380960811613435973889158633376038672327380458854649218385666474830197718827548353561192750881883907896505891933414665391510757026166482314436896490634159054961376594799608136278919992446008756702110009846550033221745752624591842446709144880636903435098447470843319919298872829047077979113192561236275100253815922230566454328940435436850197583441177607837094039596613511305639970114770058170084455297084531185093615972889291731753833072972458312156125564673533464038275720689047998313378394202939629033713528321476168099715548805858081202130583609088426960556101295737588679828735633044129295983096645520944627566368851172838196208950540589170333190732605330165528291863699341685962113574742775590688712235109113236476958921829908619474051455744892922045635134296944050707291757373890851415107051351208121782303158195093275735138725750479594888610000544388393109778768790209310601097071974451456266884226198014176225687877698549462871301002000839810658103042197529477689651752339196612224569923439566207521388650500237038508983931613469261387093589617468248960788227806857225519904798464506357204859366568478079814614703672066968261444578764174160783723404900518529073558691499934568707492945035890304212232710951133865162495036458747394915270273868185081823880960412824502841395246577084150508652931127545306778803074725476286043737986599382018042230675235294514112968364525503220053476205409580306147009035790054565389190105094773245689522722451434780068662876802342811831703601165285150219771371890026102260142209347599959868802262224694263477772855521415131303829673619718273299212784252446310098482613409400106804740725039120462025410244245643910613514649236275066978543588844966232633467949977212372966928090873346310051880335523967574047456564196045273951558932992068737923060463671148153863503808680149638834077871646481118247115256515753034646488011063631795150115541007268832615104189129103470360779575243384481686590159722210929962101467544186083022470743955012646036683032424252163830206866910692649005225057225216533063968902133508529977201192055497926515225185606190195831512805360408591487953461639060768756067503962684056505217026692646060839232816958117865191196827684701690528619249039343423719606853404029944091583415467083514173830834137747405382192150827826655752682191244945637531583294600871709566095927375312383790529452308577984651154133912148854201299839913265457179161226694609777203046546693712684931655065136792563079353690066455805507167486722837893833425530499006408131487850039123818870494448032117571898999172925820753952827317913882526422102569902840627515631539944084130515758852872431220228651850529483324537195418713383897011895331292996953425415384672657126113322376929024999241624579319790088293019201944603692264236841201965319303874774542706630472063030213946672361006804076306144624852992471400674778881346140426955370238501943987627077856078754589154058392940637222575297921977485456479162094953176431591627074619221605513236993090212004830558176661057524369238071603718937929983964072837274923142908484646641369437476921736727687041167546150514452893751241013324345991060766193848200035460108115924466866680733611871362451222339515798792589505622056562034959028900014134789896098980308477136782424223097561982390552414521191891545728677500144592201166398917903204211352117456831420542825950693521468646588569918338548654615795647712522041995265982697884788355422453720535767895840934317521451026142065315064880334039760332333133790110721449505927607972710639704179270679494572852621324521105318436541889303270758243449050885408238887359334912476750610841110964966447268233005605652097385673074545813650326629294954461587909444366393952852932207719704815462690316322047244235266414549061470654648856376959524835479438202556493523395099625943244809923176301980605816060165518110161097650587934183650291653277164777044375386204714392790221143605902242666851273290976053274739952007375800717032398008252987130244190601590269513788100909210688029896463648327450166810563181264215833666864644192170659887129398007787734661851297998539415402601790547780077298568428911985208706360115862026729896774877205630776446245194428292970529541807268045906930695251783165218367623640680186073797173750535614652209569809929899771066691090051406739297554696596393252878069669422336068782246436922312636707505362516172008194975940722683076236337149953297709051034219732150688814361847238100928817512178759953645354821055709396305775652014068392641131026755566706719621461092175851134559261060896374901118862593245753068307265991446123617189471574142964512478092241334982623859016270140486005592903822774849355273702876471085386620812462027318142928827627055172865610601097934324723135273112439580720271276839045174210350522271980747955261084682237805769411679002445937659038462046900659636792262682765791968598109279259386455304665086210948528957022122889359140077098000460834768327248228870826391132568933963803921434576064866928162874246735440869389900878288225661481028900350681165943562676732481567601751931777117558013021202833739453520661806097143172307958649377257305592757326432468457941141914684371480382565360308758595084640330889436096766005402686878712060897052128427098124542222514487220203047274099452635629517786782895374148285543114160389988347456622718880433885438938970870218279659255578242048671788647139423751822101439741073690307281765851420941942907034064343176117684333780402181335479919773492745187103075235486189984791766005896653563615958140217709255312511474168173436208638075480364470759992106345736295010468882015073166636954336511188564180947110975499064492661252273053951572595878356111319663316078212912892050413129376377880116877252409124379255117148063330072048803677403505326861939030963671351827196871331952983298956249261887442530298394788944995950600293241140324735334826992731839311792130029620524071175346734517188998755325348932908778741379319107351252836793530350661012785586283421448182623872333644051120520133881213636711802173493155577066604422604410175657675026832039108800308267212092610754260639139453888102573905668968260257841969387057369185304957168697429204506139936083206393420119472847016861524111309213296044783134874090139635301686386481829635542936972843747589638927756864969430447954600111777154858466181648434656664240801812101671569770939289519718897688712505617687392184257455589126781731402867348632397650348906952089310420897537711404824902527531384933791638436865348550534072232038961776495843387770517695691055785040209702754608786880045979536761334017227389159981860273593660501535779812093801383916153395558497362913121112784220048455996645377522188101843031729615140083761778022368557366856389474310095167493772035558532483944029050368298454958979957037213494126968060195019023327454200191375580344075472141758881191115835266333883312035762881721042034695472321788711978849568730375335719625785566525902150325146456927665787074158968732413149658178633318353440238284691931537081796037083127830883624840245605606981750501101870051785337784920680921121789382464357261733355678268978362758467318745734711586061941516589663136709081593802191725563361317810946237924091270719254729602928330848837124646241826679047462499008639958694842516790448496108139374739867035992144637555428614983166944798930278739701851397796969613393469975987004440748538380094676267072976306743605378008680955668656465808177412643086842148644307092434003857551805549602686406791966805836296036323688683512891351462524819729741874242900156801043543641948208430081960171828112980005884041549098547565746655359461081599334391354430601258441013776775472850708602365737123783254964243796738265438272730489844371060068998905009818705228032526149432155780332300724814923557526457379285663561529895605675301255024703816535820357314348714445347960784561375305734208541592336892482032747811446235889687276888594528423483541280563443356759863711162938135364201849662711496502445258272613609579672376853780926539346455349027745342909948692136030396549778689834994441242589127158833817047248721705558020176373143515841799020480096949601149718980583897527838631256356037425149669236752424691328038224157269712099948926202663230621543980710106525572874540747580714655799639049897099834319989640969401321222638774463997009578453789213396020612469984236556644210967565170615113037165741500164188954047512343061303580553944644638467213088112920058213679906417982273391174452760074347986192494866256373125495599680255726646107953040666414487217880174465481464676882291937873667274810739909652604883600970374040239413919568562987279504097266592138891882435556758637757052988454532204276034351926778443829347362751936997604743271212973979419307555612827504535803156772129616003729966450624947136051475329359318033733487046369571289485535058610471375133060109182095925622406651276451487046147222261327816947984686815702752089006600165689328777847455087437062878870884313565624574573278792846972052921441108058639256088911218857845162829472255300799987045712313642493266237314699953783648313533289607167369875713725366494928987168350122284085713080113224011765036164473025606709748337562525556133688548875412247390424743756723257892100939840864961006235055144373839591755135978786342034626138104758135818086498570182861924933754390877524588229870537225299713662716731394726758468804575093327132391319513372021592209297407113310610992521649128761511915564860028076203875790599946643153276110656357617050163836059587101693732798955719169457900948271419020679164746154053719103941285768019067306494532130439508034644079158644314563773316926517113276058127954773622194433418526981964463273511716346150205263394647880520873919140271926374948548102635409396909400670036232595470542698330366274988655436400050528456232917905261296031954744028089687219734166917400787268617843049808649035585886938606119588058808053574133988075202918730366633156219814839470206510066535220077173515809980832945116645166893282269571690566356273757101907416708629067156268864514584755670980271701002613902382163785396920991640297543583288256009649781636013025999044732768463988037320308165290812231217722571697008631559474347241121872844244450542914594711747404818647789888872016342002884112578762349893502570443896763172322930986443655494724649130372882390367045627425119461307313559983121368191845628029495644354011455122591564177161909346190659307542699683361007509831494669489404787081526170391951274953165192859609978294779988798669399503459114666487539204029652662141729734270367430874696536068835756159228456681884522798716222981684723685811926559640944896832070255215940168081403921869343163077014033024110236386401633721036662534236228698878405165445928259893391412845489852562604957024438641258641333952198656818644236898535977588440478321156295095856706036806747931868521990072176503940933917433007112018499835572498469065966342839752304819732675615595984334500342371901104570207244474997702517796673597371436335901320419309898716488215448873716484591214589175798907976272813475462738821043169427927076913517265414169649782847893258226299427534288283030007917710396078995810471966696589114765778299131792436592121346249098191661083498972569356484479606108600004107424354543846582359798957668575690399521850926296291667113712630753516674060216562617255103836799907438204174502980487556619593873529005483717545095221158686424467075545555101635548326074551359821103740444788976546378723655782792482359777805100025045046647105245030895427322247488850309511281797620163742293891000093172031417713794913292510663643332973926938317950399302467773030839788022434233116935823458398418239136154165449698870464143759554306222048047560875389606222938115499652828975353606695100048575298412658417547384644825448558412862060329331552020154064427751335018216479279501322654784570434549334359439577066452063757066322348048293803458840466093753164702879178288577380447283749300889000356079439977127962306007246354028115712003884522798908717706367913798394806493944963688053333500191786500458646925267243153645650463324927725323001947588854474279605194267163582672726051438843874001628093015285298374516651636167593720334892361278527022139796876448787359877255691084365933743247493327342858624079807030761521755349936409854013118620689227451094663595480504861433202365442239670061236584231446139951441627609457817946199568751441552427515080805693325680954143391689982550258755217100437001521707006174660876429743904687322541796207348461567377925906433816183041088292200142171823078985914067700256805726390884165021270310692281235380223141408565267377905446257186412687772480075061957728885729045955660096823098399762101995843643516467051670750817380189520712296860707492638184624252779243844991751579284282082066959840678700897609895194417887549116791828445354330758022714492921937029461734087538703816863886909993762669254778706132276356795859584378732575076921023805991124020170958328841688443046131748596379795350860628576541266098864968334034639263345497246255918067536612533395434228353330094750539365434835660785637448858699112457889431277783609257725462110805993824179346523608793444125191082637948804742504154082282422941356604087848747998567933332642807814193967642554445524048467966491987135104543108330468974961443967156362031822478240406590630129370136018214863142766458500070610819220966557378729421950713061829697754845637173737420180781324132186172539432633120843276284891968093310623925813380595988431595201123481860376388147338169143332832247403299930075251851713560564582786251743579420314654029701517438200135080196406872939005860261627787842383609131771995140167217734274201118232877559327954154653995014639639975170594292150606925445162220825205532761533073788415859363823674866127502823684946315510151125119708789222076346739958753977092690675012392931077393905392458985496422809443284591603285206078951452204477516333770830918761543472782449417168933447049548407333042444489749043658400026093395545378459868951547357744554593587663123034984518643798510351577791183266008653747208475053932652100781939503640213261803912858488131792987937692727625700082184183329959288391646307931873187966935405433027466724850157752582286031420530453513258460093440036413038446746860996173522956318267237012947050121002247207784228476264452945673690460392843404184307929618221933825130374524407391109050814643239425281798477247930620203029544839205757202659469274084491914636726522896027566076564224390459850497944803771227892192023815984698392058057522699776498109135726710125202514199223893116122258754833132377195843110341716935139248635694435352365993320933343862251811170208831786549962842115364920192224460375423563532113275706777528042233133916887690376498015506874678932768748722376149861104121707554492986062368668145747300334149039994902317060271334411598636836761123918202790269496973236232508987987237260085955805536490219328169442542983486994404807508281452879629147042058523924501984899908912031781762062864459980156883204751372494204101975586909624105520359699819964717405494596350950393785705247467162065307582076972508078794570230045583133212573206266150654851647734596619797231940803861302358187238727316297032657240647133194953977838463392306901739482922952438982516399503592144857936033379497054030100404348251147625037373717781343750659013229692286841412128693438221121362254742804813206530977636347276682265026554777526776629103188172385277639373887154544204383372021388126043515211287436251279434441594656166413212004610830395194752496518698569890156994212665477115362054288044804182050996000497507808758349815297295452144699171830186206550724198192004711468656623378399512399763843723434046028988322864574785993659648108619018701901218082738123169799448560737913684673304133803300471189952612379836331799446445376764033328815413436151244736891740076008499501164004068895279659286102189079203469256447433228016441836628090337174439069314348371978410191604851826828547913981532347699675947212717952163043256817802845623690421331321596580028540967841073296604254939155848920480458016705683864615699800027514422045784207564975792286444001414734097155840347428871990172996495962196214954684982302643198807198995371311580326953729956988619667718352389389572538346747522714640236423411316991381684689508900084923295542137498880474901402663241875075041053158511053995378282738361944391306172782993369911649246073837490909853741610560948991578220619694422261949656852165717009009829173149369376718985353689616063906248449875565976351074233693665657614837614022927353568541682541478081296420885603589809724009157496191788156211100022423824654935522827211374809372751557181982809971306529642772723476283093091911282925093670331234859908017087327979875801430425568331072583748182675488504191792846015279284255386012326576758591526194899919376675232114251002180700541805766786231423398308272347110631068160058029822552520537374498041146920811377027816825184495918690674165280000878518906086911464682284336775235511086696717371136652020058334953365885566188705351426515929941528570234075483221491842535349013897674412306713937087160626774179994033042193912110793582335493307184516916924951696153972660090362891779010781934207890656355789330810828568246273484968424246585005298444330252069671109946980210844489397420051317902633012489778762298876721944925359273307586171410640670232860939190258842892014741969959369050876315709308799906671744303083662481915407683017370730481454757890648285576985077263692247428813012305654484754018030174445893817970104868230696927245678553201653249296602783737013814489833519674156148019566697538002437661758139076675836976815905079226185073144260727351063009410375590422203728181645821080438199888278217041404061932997625915072112793307455209084372722376119065049504849085264038126411482451552646643598574586357551156542068171165464577489528814898428969136419875991567643217774157309589877632460364996820830430725073012863928071675061668731368305778317267838643453627129809728694160785984175912465639120933307433638092408069842803498846817899655164259847696634656711741120359627604635424704847312735087970985524134435150776933304561605179348067662688842501162878145679162383492921027092222614578426174634484651619916539533708389127530354202913001071129499003825592046376526436148582712379559054445988307112656943334987876453322913740129427914889439194593042329811611520816465680050381921525596120487940838137344652538019940399275868887276381151357814188552114379508563911023194781013078001566107930573906912627800214614346491619172373099273478118350349402550992979462171288693112083623541659897502747305513849855276827518923794115099258559213310319419981239137934135317253403210703898899907900660691889383468729601059761018153890751711894118015876595174026808424615004599811793443942120430745814821619575079758407739287213847386894764617317789914841578419299700292978307802251227133354505207981310010193660591147018533337325269667788472046962348005849445291088475186132344713308911431912826634013741678598193235214023287339756120346482489393655444360234301224441066166040327038530172507641571021767433658357681339043214215049413521799993681962042074924820990473520524351778561695263235539202046338997464287553428317381726254487914129998991311801610293617729977417206968816439424461037085708761195985281177674093216338560227052867911048414605712915053169348820807984536982604229755959039035599170455246524495670498165225901351249246459223653157154866822785516824017988059005028485273270812291739262999096761234889398877108062206224447518811652742368691554320720565544207425105681412633651320844392922741242702341037945482661222149476267730783873814632772882906953755056000858296347636389379852690813713890599901206267201400580126106459131611102248817190551518614673234147856811325299958112805365459911671469876020952442338057281796902905303220144070246109525345753516839291222188568895992265437870487932946873133139643356589127604664085824883143484539588646357709014597410069742563086505723439387127317240343679932609917954772380737898945784075788954816514714643481459260792378872684121103667471359544067244129057302653473852775169824546021314248606584474424459361452266884100590468955746012933325729326867246896854678533737551832911650801161704363913930253331387154838173891791694362139266199882873058126085132831096681197461841704636607210732976004831166734727691498554589438677990570797140347507149609981397265563179424851694258636260946174857873634816278992923328665687771400979435329101631536795946296064190632102819306616056783678562628338967777379267222032913106317226855079587664797118577480827315964711340971319317878942014370947581891243774325105739046036656680510038948237402960566029635922829177794627506108706937471807476918655582915391937803742356448530300768245512670497183086387102340758209940955994853620830220909327638057483829592212020789012763139841557931361320216492965223942327749248633251597868794745768694134673766995662785794600774866573544995837676304161054659440985835843798812192294419056364797333055202508986026837569934031436913935679526593762555759793103965733987038439944136759250824584523566199194003718467465073400209669023207599327371963887428631059506961967270823145505881482479130392640083255996471637832363616610560714867472384298487761666823471267305738690694679783973351961595290097861050884051161271778849907309798324030586936567200345490893195566629787317843883087717225368260521134356202418692868877564243686771970544575650108589823494485318724522337964170851147007857012738067972761159120121872761532018716598687479802532517704426676860738210714110201528823527044484748690155732005319643254631568208929294463256330750897185228132857719915575429929624968755312542614401894118453666704430110270235340701040747614524169363145913935346426452998282596077557186068965859877471757513693337962914084103798129639877527532338770299029797852325164958639473113330544966609648740748427404721898181377666248848321563713673461112163531459832222169957749103303967425346179583498474381794231912512894987370176685093754713543870017750414778829196145569805357268140976472883030913543584596998625997870446741485711653470816651589343031441487044420163543116193968221324011364240694291249320574474328729357172276335901298466865453889002451532035074738778919740893173249230037644954394992373987678177563702366550683969271585527035684050328767888461109605575584904035002649393596008125797649657461626535495724656850171231114601747083020121264290722191417785623830086085354779938216838957831650069098736540565321636761030151184621109564978119612807392655539329620305982702672701295591806800826472604651206178051976262886336587500230598934717031386321771466753680915361354075357938030815005801076946179701977363364459260317672998668510789726791688925540478419005783795071018445515163795267950069426679845265010754279913301086860442389959808911117753657063630646563872681597657405213902994429640289524185353012073695910298349291567049050719880158217131991464679442685600813095838164097192949162823234959811695033762015238689995565182850398295256294543025661720509713411792871339920560657423064476835235580746954566912372176597834839783422747106084466468406271971067517569656252782795319059624958030760472504632391697521666504720044952567135031114582430781099237375686341543080860847770771146789748600608978689620674008841649934223231022224071340481440440321909857311167961711814063048555873481282196810583247359712030144412082505926006789019089754428641058511795624431927029588196042190958610818900887481420466836755561142330521751345727509204606209840599718294274196261119675614048492797193859830148089720864124299257639975709685699408824183105062472923293268521296373084744863005172491238500449584684027228889019785656500928357395263239642313242431049573739123910419873648208386372932444183932897215611488420025942756218312422632226274123654155610940872264068968418659139002639483909788740732982871419144062321424473037518175397003814973681286856734190266907706254638084385798417722413872558586375361269663660872288844384646553155464906677590781185736975660501952225123630317792087182758763433114614299176381708099305483856380473608216651842060025263244450269341425918229750405094352561687969123895669010966384044390089680801198535442137278018884941400518212474186501008174607067134858812589763764323270573236112057866484241531380846948724479620576746751928753952076979073440704894034392278189951414320648846137812408127931293759925013739857004806632822684586729586996972846632982154283707223097890568488652481825428850923481792012141831460122211859717312850658627809188768127550530761256087722121918350700971371981723161025905086078086469821945078791809338003833323691371106351650119928044989192613012380152347091236076093469338601154258054376613479359844670262029607097030289955472796637129390901333480903016072003310593473672869796323951583178570020029905222842632386813497134611295002874572920330895647751890319715848492976736705611160481480430531652481070743668192078828130675630436561162654073582872995347524546884818085994357579127039034184169396343785373843493990034083523659100412665048938103065113319638856918436507039776292232605464824775044443837835398211875998480047322695373949967487231951220944649834960145153451312106503566057893150534528373729545578704329454148842717997425673582525595755805219957220705931609804976851421758295477066877317772346459922038917539248665256361246322899143873875914622528388753579438723348012675377501171300273864300716774649962630353541691388877661825529290631125556385626314118012114975889535645878667478595995576386709861124836387720099428276860821527161388040202627138229315595428824157159916431760435580439722512707442054666699366285057633811672657471030106938820572829076805747723843069031680642020629765642372877602902796790496238341004832889442152591160743949237897215927337407460972735446071987805027932335927422210831958570459410227953918724057918739842150697436941182233620338277439784679856819511034583629169717426234297717084810062935093932097227563776761887617479574886473774833457339486775544825994806279548434180655265805167035400485735986487510886371484496852161892941298973389645408065756355117169132704283401239999486080834766393060165289498583115381907524364098275142654791780122992513055897873066630157291390470412046726532884354246818538445911567768963250182501664381414962876695780729769805159062159578083916122446647764929453883486033648323561987335458232274925021377493514696539118412528422060970433229626756387742099411972009636096995976952584143420151752531500087032131655867593238841371883331602693349789708553290230604536445925194786992036136330536572436557004101244137362473899399422298377575632677638266235872517592885846465121766143251807369287890372635080219882257007943433833831507292756854082802684355257512125521683404976813566709171746016793152956568135973932200767202441526869649105978526368016290720043489537509097189088379109611368170442376168448255334251899324891074714719250172231142564048587957280044542666783280326267994316152140840565238239949653066311959073505681903707172310624887795682070387695215433103515225558309647289625497057547284349772506767236694414844650275989293038905640422449896807367519997548461323354502386867116038995172707175092640794429710561514584881040944480467806402671824761830115945889465806425446645898290153163788146314229672053754105804315782835992963871185325781396460775913264508699023080644532096784028005304124778665945534739742604877317249076443419735702149493876535204726556201884352547327870303223717756876504607432144496358057443560449889510399692040748244376236909187888829442408310412474192702020205560243344765277141605596537234883404066611618120280204026768782462617730959845553357741254475786674092850944061108361950740808616385605383001524747040805236549181953044310410507792299402414880985103558835706278391705285224346816897499963460013461218420673619242205372771772120879835899572336684907783658723633631224070516770221069785593507053133118622217948204444476770654813352814048502335816419524048523712493799852060457682841148706574794011303957279307704616906756618044377011884347008572531283589420685344278576552078746045158801229405266959721044859854048218774217373398347369320712700963237911531757111706997212909342609907093184780790172331147810752134424193522067840164662745386799647587438185691958106535784734588855464456091568816295928983708802720370103887975710236142035326736467560344383248690761685559873189225431878419093178938304372841410864271029751573687035850124697469314630087905783517182786051465790178461300793781449859283486066849628040237777630689387861630121968209228092172142403133591793993955969664018180809032031716958672174989885723350617341914179314864949083045996258697685829150708682236661599456083061665122017554176131017304547651640334463770790723302337548499670300660672037928418155386501353839663358287844695803507892840831803110800210830605079130153499302061400804291686130874796446081703767412653690314678315030683402365202595537939166019458317548738904019116932384189728607636590888908661428778288187762534539687387575157856351869417549416229446752760816334332897434746556752384633028643253280353297938002453723952820582358207524514566202221847208784657360945051663618657211197205309245289623533936981975020619847525307102541240985139674672782447434468796559795100936420212969534545279574704249927334674185519541796216158981332889720461755398607752867204181662092583733797673304927630126072547563048240259222694217777661540585759679156819802930901120502617960424995261939050895109783423068201109009566878773136712759393796442350991285545315951482372509986386679986682902814955527754914721047315235162903587642167347672915745527989823657262173033069934730439847465858775744655784940399177712659024037047529308149083119321097443296768711924751846583844520974819153630026161198362788243918120349094362478517444335378233036323311096200913188281611220441912886605792304153342744716379370092488568897827234006075101213122273725614097734632616510894281245718368920298047429170574605169198813692270307675038596529174868272338044619546601113821650439491362757001662484065604820360321757640464898204683475309065872452365477905881570837312670116214499170144405392412514191882864550174892303827964942751351253045507494501969877586391809959369502583903060660327939095006851317940910749425603200526131962320304505011798897715449695174206850153344054711425637424643253888596201616054893852043906842638364787344720667069037877055709157567592388192724712089084043362999386021112348527544617912927144314380472665690849006618614052657175001913397898628929267593766768283491569226845887332333983094470790001178890888076569870396292191910559778329063707450678193477374431846186304449896421676034552644062328465977252306779132870335850255732758462570559804576824927297345734956013434625674115970134034924069267061374515849098935729360718241583165845419467425109380828821322969680797942176950812332946929506733860912353815278091152007830684820364328231649649673979394915400001251419377265962538066852384183271278668857401403942828027820379746319375379959659535607105651317641550253737579951798793547930414794246213856686029316114560528093781299729287522161734700797702488864712761257851583833748076661305536852381167734473367669481038849745867712390526463231950779095144485229149253206029077493415683484706685112943857476032172186107263693187778924989550478279041805084993658863977092554011791476025772533443216694227996277750512952168006798813386146154811314870078086888731295166552709808141479749413967846326695606838177763619202323276786094619460215441288206633876283669684027600703327736311263402570596964266798884608650479261812229740461333350804952720638197645359624164879971972008174871985183527962089228714489714899658197364078802811025540081816244537820749458392541997275994831838484004024397317795943744752088431783591877577943897889998004474854829419768335359543016011408931579479656270021053080980343062888803296689568917299942363604368606047976873541338497476286895258528968034373173013484495138113287431876004838535506675104405045100190268971145122910268616856046464717459209872902900750223302829643899524779982426756845212115894141315089080543016803001749987899876270339614940568927336611348462331327586243529035657211840507352380583192192717906917704191526561768499589876707995705548147894900715926297187369079590994580228063573885427926962642965960565479147158312850357134160438225980690423318517324478876454149750840567225927491467831934531061392294495121082937511286135708692872547270814495512176127997370515861169144530545376499671670325983631392583172619018680848549500309172095126513516600320899811530462587122988970446090600747051923867607620972798455945233352310646464606915228403560484134366035696995225768305592454001817729216226105019057531054304315191221857816926483161954721346051260025078493914795726412027349189001166160743439368421027204714148794567894174829327820432963052876574748402870384160495299069797826454512358811537021551887875579542224576503405462619730811872062877850205799809089983943482102944901455597123192381701832195476832061724430682432163612021702576277512196250991782526343639336706299523883651553544535414727737553161025493895983330816032960616498830042509259062462629463734497694226366022833510239095310421418276601217711536985669989654980414606375478372069359221089335204044228835900013430990002915548830995089429857377727866918362295772984381091188446643917974118166056098793606686617422329610369396220519685109558262612420231435364558773210097867288653162625236025058230234457226741846320841146701121634088594829166705879928156971636371694959378862383576231283319032208912083755262873323640455820035209603112667418367739617942187945019429270858785855253972965475700883505270604309737429970009459138998497769955380129233636344991476900612730588935938583155747392468156510581397820185749680470029571386753173275166188675978964194929816766903815228003980130814427823875956900245363472404337836396508035854724385930829848612117313056150479996832992643187721902167798704199257714611697260205054909720034734032726049450915240748159784712367933937470616206943619841222497327559756384801062139392156544747002560717770918996431831760605329104822403986786569368971851652811145633808950512551404753944821320909254312780434251464134788951627099450997823307497083697187124199029129680612355949903368393561750129164895369151410619140387716115674105239966858084463535958892988385313838371255225022778616829746985901034560487578842132017416861550535207907890831074851481611270023243032770738228966724471527807395701489651563435774696742316521944099172515688738545568820994159258359792119441872789091609385318487196989737507167238516031013369470525594320210248013348591046790845110871357004672416540251595945652732019695711433965077506380255383683241002415889446134018290027150791925113622681799183912285389663450100756347534818183661238218796599341897758934741764093241835428859895170311235345909047413968727503538465335840939940854665307863063522557955206937079754434157087823263449362445336117572763858041245020345459026562497862464951905385306738633124610688302249319341500349830003450288496229117529702709486373835845562196929527947206315403119168262765495506340901640618666765238852085332613713037556400049368587180080431090330051714412954736512404551215196476039919675016404376566910487297069413355838273999732550021245471993862457851023251483981747605782319954705214656929361220146569089008473818523955198875452598359694074890776159467458323124129438576149002372658613760206051107626179046485805018559020322106967732634385516767485183117472536350369832353070321328148588375079403627879524424579023083641842612262038153960822570714615355524199248747732843812951001432519083143361549803827254750666688056111762726758385809762920783118752054919209741476788955527357937309959400964461434529530131413542135036192713334100110432373963944540554606012754072280088352338148078906782989912751981740781724639814200868978324570142277847742543987994074440991016193401297615909224489992189449454624546000700679160959470933956974517168095422099150645062810219691444351584848160398763107351271682157970589499460079240046738047223957033729986367198748538122212251436699525419138193617816161982730832180059151485469988532200989906832031109323431451710909104266894402471866152966706617052377773760616820643825722341525213025727733828257081995766847113654140843658343546353193201952696374044551164253578984694053479389174127673473555774724119177605169264973577175952018931012441910417340407136596007671887471836897869978534565629931816764341486812077574587402040165440572869667094578162173904727260578222094169710611963150291044816747453776699419542478120848231488469368769419346952319121813237411961053395702496030461515245526016886969072802423600413097493132832032794036040258167227201953902530668781201518633778092644898169625171839753603629296884352353139346877179093439174857478626122417622248275072709273604759596234835898851093563927941092334946837128057808171707999653674799527760057661062613353864654760561168572097644943443491284849977724565029038892310806936072147282963718316562605254089827517266029818095254103453026706923802607024365711130929423920346044676347957287394384186886078287656362950277870531228039998804204192622767062312936551682580520128795638564995484610293899482579074486134143869133292637454906439812150497170584822654082484022729977305375772710453954328840706682958984895648248618378582562926155401282448420538167108895295464250847094445308830193179623724396826572631257331905366850740904096964105806085732600727667728657033868638917099645425773381373640982127572601340459873112190125916884300038841504438448539561531094859573221622046629463764836896749753048933994001798911997073585895848059169437143783801543471815935177528618567866967868040415596978787568764993632027156882626401240461521370003901302798866774499176776287900398812152005775379704617995670856147680983432170980399080268524717624930340246262096449364932677028789588988574838190234233677335188214571471095960586109188582776758633007699679234047163887067672861044116393617068584323849637567024222066972194623945977436101368372737690293910200776818479588827887355002113063896833412251655525506136859640167144486156652648390587631280953039696494721286716462171759226579253684951554547388687836483941401658669186539563484242223021467750561846015545720693633834008279411267142617560820222086785910146424617723960342710323859779393523994396849017793496362046855778563291299884085632148885422689857172480385698732354660208515199944384723648655659145298006629441509808962155285450056755570362428553876767490451248769930739937398108941973794071592363077329555317050406480184705285895741482144912043084236811847066869210817250870894925285355494380340258052544685595898886050463676055121864941225093070619263297965064251149121104789356142273084332762735505530676645517102820894377023925354219098925646668121363588130699883422997644086827299005409338857283659827723705312426300996012385593332488241859660051773639326079033860682897172489127361974437904982166676411267261892849924836009803960816247381645688775768275582868555649900988951879681606597813635524077793711503322167139659632041601825953744345123431750129503527693197848603934694573608914066116453774776199401251707175231486588293390367078739508394009453832397868621850423545023814186108322854452981795530636649423108117714754888525570954254874589389122748813683125610118872497010311664079041458130260882252464301634743649594763557302661855676677782810792839839568611678687889222704189302500927944899885537734920812444313664438996286692197537727619258733420048911391697828533526667827757621636590089939199702980446875639368702955469260184659483638984112729582815207598553705762358807014129216862226564440160751517584167214587772810856276041984607498108640134214115610493636845659542569822396960560521575413488467650260063196443619496312177103612132400590871814368199326843446326319796607238586339075717678393027360495504711429567808696553488998839987315277686606933111010686163305998331865730986037500596341007275750656913684707239100176139765935769873288349668821625515432642900684104631169298551292703831266545614373434223479800596554531010533283428442295831448944562816083068792095705331244154562569564568628464282806126347645227411184438195310879503576683874768247495222291038801632429227540331602970709867590919992841814336412447724752037759538527190841308437035627997744251331863064169926515654337015708448881086751062281080426781196978332855136855827398611701940346249755432334064737340038886765211595065098386538818504101657652578103078666407305264110666147171886554254373843163038918593428650428569187814557033871843736170795690442129974161045152600149228699609853929208563708271540265694307695813648159761937686369749670099921458065909610241325771558854526977112535420900262098253492455543118850645447381949968969041784189315918525738100546640926303143105270012721135932185253858432458475997943589743749441021558153325574538811724315453924131638235406094726267327757706353676198568593127330215023692735806564064473656328985663563895588962147310894016932255804263120801532885840556956074130997701108570944263714354728777234490992446767307071736398337055526880959652080982977548326140492091759977209589906300979147215296626606843803269098588763412567007509229794332647796511061974621589409779943770593818445006728581893307052535524417829402673164429710796482001169307378706581168500408821703098279847844006348586098273709280903140571842736099985778258344034731054035839736408151982403674848746916329737585960230096854132357101611987965769740095868940728270464819666993225602043300372717021397017252152117455871079854662668726547336333236776457679629743702284858977203652800721835493868959624366981478230260174597908054001920803412277387330440472452042302009963795343581403720653931259091601094630021489280262544945916573455681647756453308639555132129353876617285192600529894414062781719232583279389479344776211381188953341067970340489755802877876938047997315097561878985474546665990950161443814179998439225833245483775168055923990421582643509840846557279492408855019749562926573443617918419881972620676132161230930360635705913172932201789622296727689750671924887914252839735689485061583158283039627006719383097988960600627811103184162899779518156295474525343749447816943212744548537560180365076187012311882643727499838199375058221761520405232461143627247677430739852668270489537966434357737014701043673096862305458321995986201184557480916600581933773114994324977001850032258389499067689930375891085044611646657821784858114765206378463373779925104933712808052861911385867621508256105207329446364074343852167984193680459687676316128776510778447480310978686816777753167059773153235237020161359275963859579592860894596965647581143805663469564790034344737202822728126530243903410538374976975466815029143971575275908046259523975906544611444236617772325453537968060928013191945313608000406837712868676481903573166466730353290343077479854859930490199013880314285346143792341627902433251537126380165541759889956615380087100420511297549094164053071994784664865193828157702676171014881797397957256212637303898331757529327897936773346408672435267109416990690049837242351498188426806640146931779937521557273121992068749751235951797497781597419498313259154312869111620471261420558830040182365653177708988461877042174244311942558624483602582386193927705196634375006739520170017833702502048534334140313947068478599289964709952779081615881025145249634887713957897292727225736709631404200525071431370099146732171623254569833844703331084723590924185547787846504120887681245219970647613375103012257029049854549694049881541178915675587355357187747453682681380800614636379939701999604104794345737666891631394756491250357535769450451863676391549899579185601336763520907527541747134698009986937182952144192626895183580495478966263727204969774863509951838604618684204251776380056134472539693224698528209129592346838602968320597401315803660093473992821755179963233891267255678816091691746176034162824216424089680568652819472570791256866018754730858405679452363954918207954008342169321005339499094561675616668793850283303056583858526502397158110656920889248987590051942378534966643100160985897414640174666012356863846794660261347436113987004781429114251734568397014739689001403129571687346864401936432093432425688335753173929487791304517019460031759843656646371326876702161956806805240453513026970869695915009371032720863984622874329179993630925119579690151244576338259254004209896858322147114511107184949405280929803639384423026692037247138383298998963720169898623786905242641389741372942096632575484616679935274397703559405467983028676183418686326252280703095181930085750441667047397234136773403748955426359831432593197676203275542951271512466001159174207289961168920128040274485903692550352185098683519823312983691414379140126115179386441634729612397694162344178928557945008584697262916498327132947424365038796162946571090669237769593181256810610705496963287523295977985134366321033666901083015184839276747342535340700999831661158564626148660531502550094609799453062731068977825248998951494235218568333460374112080405886976975921352161461342619111581028187127747739076783815763973149487389788337036535408695757708017112200269203217295213582006489039503403172787198512446769333750521888027547882124239441642939277557061560647939530740163875969873515609497789652454378761017436917963828061160064431167024774518301465604839160249828819637262908707996756285214701691420653427408331040964139116681788707079973661015781618683968995756506827671027356459291525234437798383704685375104693767316457682872264118604418529299565782121916831017417761144052247267120715780878232063144096777364914869000066190774094016508627756317109718660512511456484196575093399859116023264312751142240904584193546018595954168543268193034231405173332464513560942374969782642031986036625080289606969477178009133139128052254925704603988420917366653357768530904588184710381609602951981513495452551883191339533988185056073353307019955035206693153610457970135309460502110083735314038992062826718789334615512651983695280792226497727974350919831402526384007618375096313595363069921683904825817849552331235252671494406712008474837232448280158001806433490382572037578098112591318669437116783851649214368646581830747051768439043751268600024938328803111454193950595008493137609737930862910481763062660403558085381992380425807562782997526807048168800533892138853405448965623153455885618715383060868697475620089398154426504374999516473467036032406672507512303330993325149998613514172795929171061467610249090635247412081972905812150725833822858712693052765309778046475706643113811314317402175674257416989605561548979387721477054758217647416118433944523663431028889467555462220177380410363784197214683339322248253759924734196106564213226161246585601417452753553785828663978906898315379763384598623827010538298195323192981053288808449229385284574968719183398951878035241668507680402318617386948779210349037129699507363534108435083312180861613326131720830748899523410324469173318089829903476082555835467266792579047596792173436264289722712176354368049049366985041250298715436961051309481654922381666478994397726042159245269468841882168968573902074648928360377140215469950844093563795166647104634447405825329852975959993196685083531662373857262798419916078212746554840717649965825954625419442417565688305440720600932807382565887885542251483126823898094883814161219989104792687808618599182471469105247861214439648883241948720764953656022986823779683341192123697057872416728632601710168880526198737602456112613852528408485338136406318967156836543486946069687685131715866894765746319098055124068216411130911978555967417414890703433490363689742596062901095101376232020156144165463575409130613456943788413500348207603091926556505196188894644741442217469700467648910460154206979285725399479185794829162754344806343287574324096142174655933704510279293653853039654219099568926353426950087329381607424556498265190057733392558711091486990222827563911235045213147996120113617638059221547193825498022493260492664628120965479331201782442205608344730375243441882115646303980133962087888746293663686332427085110454588874940331207594465400199924215309167994832610911859442697488809255388083759605050642466973463381609753378772577393014219718494064165761320632895500691549688204614559104588854546052453711064215057065332202396503190383929205185531389067444841679871574177502427687415366432307074236050978038709794184378301896777177010321832344819095034283045460356871334292801140326251520030466480090658674600848795378188983727749843999199781694419281953132101628728825997223758632487110511500201604400557544045625540058832178182453360555493723109044985108894691635628347830979128924953085777915342018640971027552763317771993060572437039491252495820633170988381197790823980352865861522192331514446929857639337334924269973443583854648853385940007105549997358006961121101982845692611069372604948628384967791780468793795733642510601285012868950584762749700607327243464377827159492641327731620068906309358971714970880178780333146933016228976869579834241060915914616063364314708777608546315772698624247746695385563618015746789067464466035304258153589931671981238000679463821846758880114524727057304233531118807951187003522873090670092326510966341327598070376005989315336202228567024583012068149051255499197529661475507821984139184261167323507362242986655121939007163897635186804442789352364917358682874073112361589907962749722574811403591969459424219447008813946956143116874817138280766616482150488581490484647306897028939894360202601132698371229314113601646118818566752318006086108289232016657128714553418917957476500153530448164231618156926408532504070776056077897784974590033317783635507543962180224870571463716879885008477591400737593239703719469468942584500711001552183422225100485465963644897654474759339505030130144909474723886953344992954877141631659935160829987679672919163789141824910237815010939503817154470942985062431430462842791873014496651259152809612759648478010093971157940794758971268939715855288342160040972303663755455218637677638923193321678814003878065372877923659858806471660201287434713780600389783066087419859707771020655111266218199937234303976990170309429319727529655351148232993674778081375958495266289297701704936503184048270992728109175458463276186453369205081037613820893663548123251091337494706722655633645383640815738494647133648400135861934289491976134286231743875002267695812416141354378390119773697923156329905417332863540506854158180646518650970507864621144516322537489787312716442481185479246244030247300006791852847262282600358060476188175752475292284006968454991951826452846142111394378512943705689885210579806452921888252755781617809127495134471111077968850120080439880389473569208187183585469782681308328138353554297035651851241698336259370331648778108689585106329550615345038188996785937058628279554566020558150315905375981660695301156577047515143616857888904584530537168125201197776392406990019961252355114271638748940723604880473502880602696305166825704638182821000390164658387543461157945551598881160155924952227975490298511121696224609795563240270076882356841247370249729420759128847738697352832096572893217486382496146775174948786319086621761726636337172337694838571900287796626610591190744060891168225908827731100016211077922778723808500393854339893328732343864011691348198632499627289316079360292383599346245222482356343159589505721327957793053283906752340643110636419570579293521052899662260330429101729595326504180260579621665019336607674945962194066585886692112304228607270797051495607816788395716235017552650762497684229493168394984259270481919171553972457480257762162896622525292322908489927913412326632080762385854944507820202376433635177658329591039232235563831970204951273738635758996439850425795029812026587625744761182475182609413744297211479845178986695254192460404914009338302410686773859335945523807962149265763617933623114303002625940856134677712773686096492158595666787564261108505169190342366018378161660465177884975996526614904197594015790981994045215638419952112413473861198511012828934600526484574477786073704720230510684788416035013675067763829451744404049932208681098125686126326518431231673338091278017927905489853690472027388047852619138958043681409532936511280240678560597320073154580112071431566226429552449540859741448634962628057835843217072349095177609087986228413175704547210302852363305061634680059264357265637831267003765384612461871276376891297691141228011565504777616260836378287507225394896922478261012712463704985075550970558039557822604084866899850628615218086961243339848694762061053474697135457881201611587303785570106634396483625955511795314651986865391978564376677756304944333443188484882051783289304078297389697380381790872090082074046919440632208885315889070003819460491820710904449908719181359840575232263879233746661866158004153302947403398267560242309679337537941480465803859245209867320600910774699733067265479302663792571230339852834134998742989379023512263238238044349707705905869738341450943291518007503657420731948046170455604354379825675941126502736428269864319233488143669434345560574742794693960444927998580723285158862224610582492532545435475628677482908271327317819946947737568846128623873601417127568415141093303647707728845551783828434126808789998619152804357217859087162664730476902344557624706308475789142164412028699644697820165208701674213835818342221161220230869299393972059106440556212828952645029546825688333592962833979853047948526461178798407858930449455895361898026279141028556328526901070247577895244083289092430558898406660049502251832384128966881123551059513504722314782071216653800287047932761473388233885641957913284930950335440741992697728515543850509512363817411832136131306594427836654913340192734156225504335165238382854586972012060091061065339588877670549230925925012218008316045527635389422405028249909269682180623957222566121142028723663419422437375379684372599247442408275920543595071912125209834180674828680208283491388129325768588553605234742244161184200034114845322479792413107383982818627887172554535367368963888768710382711636814069110269618054561962949371440086126788211459311509887357286355305013221480296090249419267848291681384748839607120852671417768411741141952917802321911466428681534915869838259674001827349649336275018320240990150563049565402896888597333628268206983709235360215671002278369449964775917196690179297784802573882921952720138593549959708846257089726260354787240214682028089756980869959241334975681027477174016409206227344482289070615426429832496295919375841803192052397898568593143818234377954834296740853967026493629871542370160547690644451652799580221838773584157022959008067827634940894072542788844143550766164495279557964102816456181455273856824841198743346562272371158419353093715956126215355808288974683328251176414348850148341962439667254895412845320107328015525189815490326364769348363365024144085805693791800805406598001681075014454617630465701372714586788843287995534407607015817127439469236907316303086767220517729014016929998899181222973994530778477168877955759343058916007753403388521848156336452220638392899806278940320141606556345889878720940639791024620758797673129058043033726405494808833945396342305408022489782602686181179351446471357773984175713076789863116307898616274227891959330767245923460161568098622008291546232423431436822013929146981562833321589651147997110300647450609455620154519252909277425000817480705517921826179137470817358334469865799868645787381441253100225924669618805877419526189151333493104383468011289644014215858718327377362039625919877947364992895598375250580478988927354233093911461811180707968178775912567458753099024465798849525677867857820055206400318562316921384940219758923221242382730145822319831556058786496846770523249356468239043925370917639003391091393834065250077967907241643003487360225364386598961799679979449823156031152362745242441282916613498485479440915695049629143220556153485012414717854741041959923999090512765578375326353316939431936404920269293442902491074406226942345041611975422952686494304583425806090779258607783101781350821852093319605544448657080673227515879990000165489201734162186518948365287676304007331599511229341861938905063412306689510247223251443327628671878073152350710168970261355494439550638643699382551452913477692591298899944086009337478992041973542789183152792254984468101831461066877844560589915402897277363855002837508032659090072997065363795748576910976148457980703033599481585813256908453957955422091775708843972997609141769611331825910623046283277937463119861474472652059746407557702688793106428696998482265396437741882640542898244950889274882285536609775265418551243116269540969652968465858164617564236804476421890037817697286869973959995933672973282913525155250581881050954268376337579362121485429291665272094924514217676114727037583775717084801954243459424050551260280995650501889106392161050619097703970482135365840268609878226417745274484219482704145896633093787679644566728306242156027035160444018948758041373797125312166754756301856345283561733129633005691944371082364459362344347176551821842791880183116970733303970503658491871105149057646307565615363870603449863648460865031230998945266617534170543474331704957038777626110229521476085430979346387263811040357042426848720687806902501633799492628162105653803094323336168620112984991048849151022814110751769405398668320659487797240830945143471339080199668255865568329877336979922085308182903039585365209222180997422708546189706782901180069810884855080628736210764976231077948125745320836733314986831450568736048504902139856300259925198242944109388718609924500594146200161160984933701285585522740247746522759816823841755693469416152981118600898805717894431938685325380432293564682782730000931622191890398195829931354475401377804371708451296152642571170470213255055731129948174204839162659005786870300894240844435306815700127938883737012988123210054567922380542309054973695394580075994751851948404773923201860993688911391930484602571144740517404138508346097247468610693919951576130643309667669321834852779136831784649881511747936479726584264258478582089489504288264261772369575885918498910764282154514155488317984924017407520946284098762499664118926819007121454986347057606386914440619815343973755687138070010634415341940411404908980356892432467894824222456246612516529552007912859074196191302169953491628280318602385055248240450396665177847572604753784247696063721193288139072695708812437858339315947940880151903651060335895659135005964535718464325283377766911181153202956033644002150052708532638215793225756372504336989370536648500277965375891697842696844482026737573180752548674331525317875621488889791135587114681732253123167161402510837496420926632202004773599796221373672776709680672547864439374010870424837806751784063704476892124975649507119663958782923983697231454711506052051073220007323035961560222326992588367294385754919196936021667108515721731422575627956583913586894056757110944891190677948254001863836858635515420192904343629087217862624625135291197373796457592556778961000224534839621447353652713423665077195103905865317852419439424772708209602154686415737923015348467364537079507293511772639373884977969187670475359833275522189310882641282519309284906758866378508562820285599451946997311281621957792121984592393238989131799605926997534915987925749235366476003276943015885190954218963711210494106280009385007068756767252510766037790893372544230427887620245309576039585137021919072864261595322392166548117506553618672180952552050220858929427059950301545794447975949657533271214567429952721373262078121239826375211622670347261002632049679419985578171934819917267872300185552802091691875843193902709647244871229019407576457582169242149864468592297556908962790663924061005162511173097319478017655896563763168599083385508550293579696399815680852707355949024476394710803133356694569743911715371382990707142601940828269791129753271351929329364808573595101956828776631296385707566390793826998081349323169843708428219815175697755682133065082180010225439647676285189414773941469855899024967383875147354468256024121648303718799410315022820351872580137542768003221417202524263358466321369795968100604012151559856549235724153332597489986784791274517660920878868541385682978784296097096757183950244262354264734089251374326800311316589555121606829115884823017085600317550770363341594366662878251297380240302035973100224657829294721902807097309173853633771205550130571906488716802989066242306087718072739605128438383827794541354362021865347991317222508708002938786594765233646913336612088846957640358185185092695114662576463521869546143362947661749975780196205944336291322866334104507153728140434934597777362786405307557174132432404418118837374007224454832666436191692697513336894191348659802615270346434396654003651132893325389437666716424716692726636937420843358668336087271300464448828660239027017197452514308070979034977126147630139830739486226129201633737224127434437567673421268118207835053643899260320961424339148048182306159374456819305964296887141909597339745460327832545397610583585077505749934361309798627134872090695893553908846209927480461595949750652143558546610682518440213870196755724808409684080954894902818192861552767179889812950379447836385968491240233506220941429032319561753505602342289796725308576183084374625357623731289647103178392017835411552671808810701440900646248284440750661679636530436033196246391511378303605142712993893984419216330675537435772954222613074930073439638879389139874029395815721838081060829695376095149320292472397851210794858187871188997070435190898472088716193614704800682344692897286995675426344725213423477561333525306705244692728103273429819089821475272099778844743722574184996238653774410301807768228476896173051518741411734425177191133055495293112144958322607749308616533647359497690042308602223314366543105013346168036890957166452479842014787129456486821595437156602767600539247650485824133550482747358202198672644129876535353315709792883849437185554740728978750693197426970901783689996169426765001049758930089145556720414852983534926742138450747634949600720783526137148009121872289672333068909757329208575327209843205625979672549785268874968630977583096840602911565359609573029506493468805499013027437319774321727490483901089310116129995646953565609275913509698760609547249246081741439747958194145122130294915478845351343695681177890221850061714232943756881664961223716344681514425112123171909128703753917991170898149219857937059293898942187161088711613509877995708751422715785133208386601359717613300677107442935962127347782330137534487780844234783350164340061181934726709474033121845390790987534609295919998139738239923715174148045090979496701667568388077563699195682712652677307749331047606267379247929530468280707246290215340890182502079513335375494960989240465786838224545423198589942485318775088863851250380282999879141765603824935654288809086154540464478444379345177857027499931769776276649832498311390534424241107877265514453046440505774810727465908809600584386878111673633760440875022570037420071847062020603140862684903123394241291773147431045168297625564981842479320030801109031853654031084674057586836736888273557007458282950349990433358111519138648802016957167261312134777243511485273926148845500238520581548960919846393882420522094620880303312458802842198762298434939206617958982746787981478621446474271492309085934468496562433051034090779994643824429657820412509176606952143440753852409994502889704384332619011176761568470587287128610435471135226330888269455157535569741059646071439230465031132871861725795691750323996886971841260258889568596704246864759956355733104783788581093556991060431515273183723252190874786680698482811752460476153117521236955572180952717783180209828931845868920981327099586846452802183722495051794774115688222327285448712684185440181770274887919138435853449383628384278856616305407052485125417939269224464403890956486335350732543350086115246428999660695160448004236654823248897809299058069456411342014149636945526857432240001826421154418001665145573508469883174463389976406974774318033992594143334488089849741221053585420356171774098764498809468318023979825277027786106444219479847253780936279549757477102255441479153550541126953003258827706713403126859726463982225009575115973945950169720351518045813702613820398437544500411654886877321129489380010239344527390830013524240959124798857002757075467224618474515744189250343593342530317771549518133208491529174648029260010116628577008592491992912987431114442866751860752931244284522813529750258278426702097698928566177773270914294829820497282117175097401582690789253546758954602185796943502338518694258679579357895605373848322232662097809744952102488568644331017252901814382182136904717466536690506638354654468463948955017995982356057456401078970018752710157344314995604572532640782617842400723829998537987919232113787385838131289371191763095519869341424544863614408482798133062737410767500247078083194947910719965956472890429664102403705194676554081539747917542170731938641440599928110416395112054511776975379974038726688419727590917872688653457581987273807316808286152041199302119330137434394233531314898296119355085757881909166074638863976544122804903451257538905730623076391257345561783869974642464300580143653242252303392727003511890776704129787289797926961408462833442206043271434068212012283902711340250792793658277042025263522420174986395610169271103508890564787380277588629500262683280756445039297597569999953211138507860591731571067897438183786110045066920282581876647702522765397005421688078382085224262841531121505139338501706036430458121186449058281835467837903493043461328359329652544682338732410691397930852994383143779975541577339412407724942444745890703947070572896204436842531461094934425457236571727939474696098328218464924721526217492963894172143792314892514758557356897985690006250692229491368778056481597293296977228461177558095612804941201976082933879409026493221587676873018910414885406574310128100629040811276995918578106878261432811996483166461538761071849791372269380081710774951263783143671394830015519342881102272653568108750920179424399389769959406637580323420364511136557256673992143352784553939727815036334486366959669669594072279841187853551876848152589457174333255098347620901945494575339623072814307453270932279205821237805234681888912376775655474434564094871379788417695313786199989141766930779772331069762652618296440798538402420635624023130337440299635272730105626436392544791282760305427537605249550046634181907166140893480736940070212269059989411422109907424234246383321218579406330754089890539542537361142094822216739284278213571540994494240078449428061374000316838663889214696020136345196893447091728764705759426901881383057073977222755729625066331984313295766988203835965981699711485166905444347045570831703053729625993955021123620283058595063434297370149771349250544845436861664894553507562176946253027508671196906720135452389986048056576738039036744271745976708062508617798893019127130520367750015432370717796877636551081330798531996375759093099616627551290305270761128177017111070748934986201399195224436948552435574097473374421556289225124146487803977293710047373920647600301692905223480346144011373545028963587769452767982569192936156282910101068812361743622118160891290470849753782088064980993295776685933935644593450822885081921712208437145248096968915110858523118120305504658857198476409636824744317703142165332111753818031192136793334657775009087350943828750941891016517922442670587188909413932218505403115660900121114929283757527990153465771233049525824010975299278067743887834884399572284020969349780019393803351553579226800479542044812602820759529095351288898316613492376243442925813728940979064151420503652470331677127877046908522988453150723784005243612787229347421230283422274694673535551013119409527480527810453277441340200508883980662677994081634335386512622176570477182543428971946215660915781401458432396021591324725371553081235863448759202091969302413212423082520498416822452893204142228355119962195878403376108368080657242589192225959239441273437949691545896842397284415021253762367740578077467635663920881082703701157204007932060453890874688039691778930283979336517323930703911123239035514845645412174059384407952126464290847463362105989658972777129926820772334209040368853531204108984609211920888353735823732012488788675601431258854344419266495739921855507272913568014234791885530023023030649553955109137195841149238467931135753750634548921508811327376918066875787644750266622016794626109615724321788332422139797242256138570285114368668606923588715312803350574507974677689182220299425160398191578913905785830749210226035764827242295895792834364602957868172648933520666031494529612697013124868631988540969821872729338587415305322398372651835233993197045317486089824719528765468855061220440012789631769522178973126271217649655935964601253153491683867740579257993585676486518367285650916554750787919103024485275396254228253525394547488724346161297649175365666619104100597133725970289882873573172573360843609927932295011455334942223845795980374573298180097191236512180438552474460154842395790548151673842161443791511217052516281069694096740681060102714646902101348590756810154683871176328767139017258990898083922619860459673458852804560194385390845614431073141658471329388223360653265957127303110105985690966907026563431884798513630592939176017182772564628899788303834552948912160540351501510038754122990694868897482236586878038720017221791445419399379689058843864731199925250601160988372729025076456263906686820251261720098767916492545007214629884273030714876863736119744953361518989739411691472932518175617186098036869481006914625338420943552436043230504833453794374811075843847844321475812825424925740734806463590055921753258831814909812728651937169121861505126762279448098702085354309914824460233763436696682985722753899693762898420481286993009620961083164766116821961467612002099971558592583610847166128644561488885026603446626280054130098199374745614129711456012392755954925602984616754070278269641942615099235742565907149824432255798367954029030239551588835451551727666139381556413841538127922426779827257590291777913307672803998166248790384667120464866860555319069594110228583757873489713349966261186435732940926421766248062211916296170487624598981088333274559989858318815623899962078104193338393204146106068817800140395860287298908346115765015506779675791016286632851505630296164181730125808914965077961301986644010127760174846733452161618375261627987845513545442413743845037867118787107264361087378201961592025460575529743156718422735497639823404443423814047867802701901372412067483446710091142742220643458444177647924584997827042737596352800215723586188640544122180452845206030497458237261913304824147097180738914031937346826915485773856067216073339372468041099731792020974328047375762736287055074618550638328714153984003270267731033993314328523854481877796908434420029079252155274020806959171091370008028793549860678013499929413164836157340710345354854427970774916121010209876825252058693725663897160359135810825692830652890513380287069569759552441937281066554298064404961115649595657708318521166175130280444869136538751274723565978031021371049656626491254428106174526292901005255261616940024068488936565058459273467035601054582443517476352358461474807625182996097748785819495955730852481521871964274772543703670636440228195275216167023705060621436753323978264988939002403240520438089445561688820432374503269457134357531144626943242048978246315906683010047553044840727469976815461742815443596735727402402758235394210547237989375097303790757851517021010987371389821519299481621570699927470028652707605729582276728723565077592310917622668297959595725342118561620460544121789659266351098781600469449928912557166424517802465025716737662536960803353082625819116624168833394187290290668531987324531804702368446441149107909439310741218688775013580233170056235464348408728038682920731048438526186117078952116252051398680262944358657566746770239113233409342643600650392099890949804352863904067584602262694669633802563016492187163309157176045828977674245920673472954295524471613424606385164412068833565518183564701895933752052843335318272984214727368914681048336028368510070716089140382022727424388166298463189943603375138568769215184711436797782005627420866915825444017646041441492250369212280455875857665536767334622881966828896200893192324685024656455300444174354311181849073403567825494407754541841331808565699901510811056087127834423483309291935151929402760272044169854667734382120834306607079896962866694283067519528392897737764213553560273667161455890962009147772632415260961062558103228642377547745399623055928511135406595530903530975744309258072150337587680801413172072763916359156462781000207522828941073091763989305428443997291333158281603087046976156925175871059769091235995785042527898154728378144645017842786104432510953716304964322194974814612683228562837885240098990604403151410545790582378653744300539592429528287785964324391644907238806230786167439008569806588864235941285264787710046182639680076481768650806632309739416325525311369844021807178579497282138485038409863511171146024414002512317039564154011415193393348432248485621814283465648930627009874415540428996092407321267818592258249986220931586489918743756896225357986951378295692917236210870928168689023520357172705589694354087505474112386693500584050866996805099363417751142646924718728614366418793078881285371253956131067203765178049163250954210698124089440248307203300542559808037546181002909799927840425222008288609112107579313388796996324368626912968695471652691380438200948027748801469837423390877288361358624959483466103895718763689154257147284753659800244866622706262835002731478082173176811589970184907524690203224367441576955006329857981557900120101632223699266860336388623129638142891816856372131456614011277446430187651362422012159606850203790913513924340397595130912232918588852984543598651550169022876486870229677665536662214126776564962572174431104639698357600791037014671330220976276924121149890810442561397344189073424378102773456513295263762821697536663980651663722584333542102492592117361478615465942641895499287351227091926369147137527095631066935721977325653296956950590425797455722338180351759520142335485898149163950247168177211808093625011696187438106213155140954998167974062084742749348646911080879322218899775432671795641081722102474355639670168492517957859804182879880563543356214125795630078602534961745504263760155296881667111716803647636167059474789048265404406137801307307165707041904329825855922764656783121081082048844109329185352519408090620287930654680716749810227388747054284990263555842151846142399054841467870922864299181086285250516287351380566285353055216899613291553027197216299191777486986220468566268639167542624987458136393480618024311032345762705485366429709575243908737092177441522461982366071091929025657665915478359071410629459898925689822060827913588304559698998400930179135985284567341380335577743853473442200247121970077407066072324329985637654332411240156632779973569654250046650634270053143124682564145601938117119643970009524565696268558036977575093607458440305518268637624249752582986022151586632556296449455395348123140039106258514633995245688557064427036022039967819958080145030485440759650318534360829981360074463560229080133873116187248448975988492730272316296977166520961802370314718014457156031060063577229594073182552197782946170648672330821694815534048836501480048784707559709232602343781551272162787673140339842267758086643464146925256673411279030477434014760510397632640712881597823891029172720268871730102525686933561908938751052515415762432786637737973413066738306880680455865588170983611885348501662786315456759281735286981613498035819894409631686335750397754468403108987385813193954454133925000154067106312108256270204550626319439791495068633015200370346573739891855459001133785424578934649641714468485906147386766969525942563075864943225446877387957091587138986059409905072171558856830928842809420362792530758826135184912276606399519637065162225152813089866698521313285017933577461935358792957539592387902507195120002436772470676059505474632968458647830980224723248930213994094711122618729392257421620712844079646409014715334443986038669751425499433771193001016380360247139447784435606101258555701300384691706298137055186389888783068488217712380835680527584806415947687851951559793218470746225331049783226080606597951280652261927642435417613090107475892528278608191211906849522101051473706820984010469972176236831995598842297626116522771270946512499228708924544053055940965056327334375273934550732559837834558680230867316328674608361119063153079391659056370622750348385687907814507645010548112881334056031782098313813870778685987528812944357872386403006392218380845989984768394534944833223708094518171076894388829699694929457992934784742901823395056519822958413285610565528574118169183952198101143159151998910323208952333569426421406043740934276089544426812854304413864941024637524974165940012464579093830555913067760634203101936486737703489037393684466163250827940525055448171877307547546522732386938963404071792806917558191175898109100929002985978661670250645508323049865327651889798666161410859629013391843456485388217044355764721269661710711464178672418782892302964021583082584533203342476190051015682662602216607182800674156890110050606830250874591243977423636126705694120060297920233200117822888694567895785321498201408500662761768793386278685676398714386160069089105801157739354949241141910627484952147406303098731055866168931126793476003761203629731882383737498091801435686659693765861382640673064831622949494078423214460918432043794220834087380584380460947520962539815141669829733453348115589551535775983047737068019524030296028306540935484110635808192919106741232443246551691691608386375114976641075366666436543479238890199887937038088961069548432926464193477032676134446885278288156376779871496375532495431138201054966730726943063066892807519924506838265139758698372440989378167118712425394002021875641776898856748205412465369642315120567872674987248094813695236497653624592699956318583608054530123866906964230662971945422884355393643284682399568013852318507630922814058592263760169673075162103371155877681146050123491559219337130839409897022259019946274805149636645069876218531817067289735007856710585773421588101063007738974870869251472485982450333526634557715660247754802823922514312123760703910174632351875925741131463447228892810112501505371880021419520195091114225884381776708878845621492669780279667689061722660708972746242465351476322222224969024273887594779351847423594344283105946770223130222917156206052106452247589588757436485896528515983703414905914633695975440440761322768152801211085558650757524386973859397703544911684495477787723275239491166207410007665431865639540040605634186439929017877563325985973806100237830366057180474143163001737168217191309381802197167770301923248402045613744950372045524008169811267234365068530506015814274552924401985414567207747555869707107202320323326584156834051996339562390606669441082647174167687284544654084544936766047244246711204817449999616383601838146179640283160914717012448602221009711523321608209483108430541581201911475685724872408970160547741201728162792639192774232691481547404996168796527825967760600497528884622043159226268135907092678954951544871498650868970747531471372597916738663444166008598664005601827059233805418649463999585446033807164346579471483794895550429077538191692625189952363701805972306592470921455681663293606879668949521842811871507152785756341478627557131145034602635083058594254297121389274710946134384737423793496745932330081075989940438164257204477279088950979952444659466861082001435700043230935110011884759461419805709279658413240286420133678959620821519653148378244273618164700958671601147328246057078554761432123829074721610463671379072400030791396047331537656642564294057308406336867799255750770505596873242035711112498053358263867010595986613324740838316210255754068989689070211140197677676262505791122197913949742061739760985353232571844193784839283330910537701241383931780087217679470844308535943538323404942639814790519668583257899556424500561944175373459606365240885406336064952822983399572075509931150092633386932630178273987188369959999938913996198050228862771325214122816331115161280503048259629479041484340528646165009912903745102385945042008519515174027725004367062378880620505629272934012659100632036983581889959787213058109085580671636288680805839631186424236125877233301708640435660236564730572306368365692970635826967738544377263947929988305244411767045260221210280607144379387269232028647473757767129345942917746489038086202551824455387453304445210379981269484134616569547751311021247791533982690505921141762248493787173710099028050828533001260820568152315042449408092901852262100754318050785060419242613378931879356525837300212958555862310899158216630089316543800354483665540767296434104087185792218285567822206402515774296904034198998514462977901566283462320960369188867642187980538604900354435153311825562113958155604623482260400911931763166776733169482511596725937349044251112798702655580501694746585710148496207592348630595143835034263798306386326307897392045450206728633443504256848854146227017197118456642904115943042149252115179462342903971711448447184695387852291968274045296544586410088131812951199366940560369572944657993443817155134281080968069980591811050989934117546451812535234076350398530450314232474409640092947674797860684399196882288752310612083956177483161621538656529600897694944747674686842331273490232170881518798986026716720753047923314755749502442593475367620564398090831217236026973786738597190417530273071424371976333266799345010278648160684072985691550760692494333756638895706721382524172133341803161261009233932689296574647826010390472511193688390860896021063153955018570398812220064840035518564603770379946187205578747783990944824400890683713881776463364893460924198872778362543687615448479358829069716817730919068844669964575428181827831408488196767157915134494646777691595603145885079402200206852521077330622601802454088985600343819409281862958238211697171190601692236814932079710835437410619427982908204826377840632364633560094566237836104791222343875401358333155850956451369540741311938659198817247636572144124406833858379207870916003895654240306453239840887270708154225557104593736001545208206570997488546136137660036741798650429214074460608107091470395882039741310821053797172953378622669579295753598627964992130929479375096695299588629004105241825973308540218943414827917324796341477852291371224460978211249865380935287035065734530220687838436385328585061609528589305704419367775826748032753459222410613470995648258576262870011938725136773204850082299789397581921927639330137175638830760011230233712918890885974903211728441862962859760355787748576929991401446414045303085381445517377572889325311947902856035122378607843511730641487817242282093432571073102514336528949852796085578481345644044457204374586668235309350691593296177994538515574421550709478986413468456438876653570095430771853141804734925161086728359372420075267346086707894722578776336306240203125840196078198513340589180656019427752351463286522329515427341449149678452014424499015731336717245999168808411000173668603466720917620458277957132327917790394958286915760002729019852191126678707765296512508530551871244900604455000134519134132473454121997774903118744681345071215337369723887405750385081278984177786155975478447570578087751872385443121541281459426236252588344046804785391985948380862022272499844069859573122340719489596985940330018269984431114707352274143349464769931074065106899033875046721974517538324055476502147108535581593908482050651586400088058691815095154093449392902137779479149261012401339575560634363036447268565231425669122025244553599383763971362827680804328638721575776181205258062282309850160841446135511217723134243732868268214684083691749511049846318867156558292102536134126249513495750410549180678887568805061867328147917056921257766235253554030764088710635591424736066006303944579516956440999836192650377867330044883243192902438892449756953215914818647505450140533226017299444570153510646201765043554450733133480311332118354326046783792363194791519108319619958120563437911901604179781076199693521658393997163495042747813442924821575761736870924714300371577185099523354522059369400764668609842818501134558283845329045163720777762376642491925948593870973093194502175933210580134284504755266783526533442614668160606547335355386516290568118781765196609905633241651387066408956905908406090932974831606220488419251871397522032969199948507994829161927688836949267444236968628212248239508744956193440223887251646603389469758100841777895442191490621990103746059393878584644037546579459667222063601141912458523151904263212082416662127922095313927103816325810851489002042915848124679578218235303726791733378723358709745637813846052060137596896890124208961313699841827047328899692920455322782733215268797601614495162092553612178120851991431714740899170373843090189341953666611975334613056886449537552361347350635385815310134471849545758093848509043762620161472440088891575151882814855188978914408000704756349123727747836929783313946852885010471426918333845700828105244469911308437121247608725681843726394995898727141959091189993058927309969647022157640546261332019331423694549339001147774347256368008864418248843655515065314405717984183201943733539960481979109210145319971254141118148707744653678659594934018004291612440779903127657099725702934366255714856586177780555962641935801851408564042602248790188451849282208911680624746181656944253054527595321673444383791355950330441157235444455494153621395606812051797111778043769486909053222694705632568973240075425974173635463409333697598088873190706060594543368684586545049703221592638557705889131380282575323503380025985725037239234687117107042114365149490469224306443122810357785452247145184111518734108088526968023636206921339939865193910604051366188350250442570883044489245740147319038679933617216545431912348616054035316629691495289099914832016971581499099775740088577762378426776965275850330488657090607492434267120650384746801443873258874394443372441570514513259914785265081217921643531911272761242886800432123424561796979420042037849490496210328806022375059250380932086672226219417877618863458252135762068005252377365110053711325370229086836666956000743472610713242955797161201702835480164752894212550669989648049652186908282411094614706386207230955585890432613026740533551281995373265751182550361202484817998947210883970611444027583270923935988623019045028451480183895323162968192417106818631201129362711133198046423662109681048795377891517820139638716198831295699102457360475174668919440461335736539094486173746808557744358750697827607608569711245961459655345592997205238525248444637679745946490981065055912897278207791316347815214025734092366766462627718928039124716217430736275271091874489314374451392820551271066973373991417415867724896651229307100840171330051318953118376276542535523696691029312532097464726655633382916382812648335471178312435472529543579921104407412516692841181466960119900741482321083429158389743779299926549003031211776953121647830128460640431438444866005543289092145382051796760924641812791127510568872797351822283058297244729254239913985773893757987070221609613511579481780341556555954548664881523093115646157597788713565506324547391935941968253618630037506219207032752067906178625893106035769363802170659823057914623384801900953511693779426418483704566651748388745212334255738591179155575157150978242407862411760072193124766297133231078700494683001117596290648396568121500826827622549434416871811344669825944164661705108051453232731693362542261544286847095192251516201834360427533877448671667432008045689337541936897674019852684701361009502025430043618684269398317538342066904031182214948343831963667823097848676124520992539043352324626190607383306964480336601855848306954236942154356425246211778394212886827428148168392094555961998519533083279828160737835649021742226752351525926881259710936584821423292223829217598973167478162446088691340063186861346112333454158193230649269597605056096717515494913183378665109382395826678609743824086683853631012798481414393526031887563394942710818324608049206155874812176294553224379710922098176742964260507847293621256159266226156759308015938791076063810279844976131862012327617870504399101712328779430118421566278632496451689919188040442844125871281243597281047625944177028233015668630514623393085062370529801358096795080560574137493128842989627824734284990679360260557817768470931114318467534136225982377237495115632876936053140597184422559266856302810452349840443519931890220580195819292150410314910730018699553707491974060762255895055170268997554291786263425818479686941791745565618259169250644176818176575014323784137964581721558721894447813005403496375416236734457570543447128579514767832268805797329766547455884739844814686124518957722227683950381560167092661818292986244151572577687078315759262064506665746809049410259302890108982762382292014320944671869620776579389017279612665062378050591844517575854474286255162165789551850443323078640553091581030859708674303777541595430579694875204822013422802733266627345587961960320158216380329297940490007569545404230239890495023147146417035638286063236999217566267816800713821377111839979424793878860474627419873919126667511986685553264527769075328873761248226502071209633199884924409482535421971483699080126485613746981811571914882214977098546058876214021493135196833000068702012447120709260586360124401659391877209509773262319295856465372469943127839868534279689271602391705372845062799865540614405631652982458668885401436747165174366394545386744636076996536727900088801383337561627947376356500788649763258151016254729405438563777479273684826696935699044373240300989172468494546919489265253564733522647505672652937773244947449020203918921598854196361730758925030450629173645150523915271588560922468161704381003318900921908386792000749980252349421009647485004182877787340904960543298155035095742874549139872882759408652524821630541443997423443605837794185137966622237193028052724215892875057584592633701645212279695344101258161298921498220861540766448539307479529853238766676513593128456825358397621781459766043016636611718922387988643654681806160858431180605357310613611448017710260282506463905805749359471563401623837858522009015911260949223943997651681873202325193157975406569631936118076071306252712957059974436345913079419572875582307572078971449394283520162279796541808912731903497040308578784888411873803986652432284148929161861847549078502745091009068075850468722381753424290017615754703555753982497039662929833373804473920725052026196652081150448086645803305596131732641814467524371901264529819118908057372171124971646978275910433646363602463872656266214459073336997218213119065891513277721833534349380421503196091441773277307372588870083655265374803970148278985271434794474276580001233167363029451715494349990834836599910902972533837520249489131262190570698183221126903447091866762768258157888390029381691840476106261241354797448763957461717806124319953199756946609965648566182411586371847478857940779623076633645458591582568634953149885082435041426374815525293076899934778847548385921822275796661251365294360934104364048521480615017350283581788933086935559935732909275978517361119368510561309883148508536549952949283894985527555323191215501457055268554830544888793812015071536548504310601722832082658169479371049262677785378781311189205681749099814774785201545094603612090533734006876432532018370121457444202867526018458777778025456995661105397314194677159962123219933666630569096666267875375152581970764885656219223077954319590139685354021835815892672515580225231771190247688266766368179956100640837079689372351088873797025184031271389803277549877641139335483605720739340444220547162198980660095709310878117395290905698288428664128109874348035476966932159633044336727103133039197730338064475436095574752602481754886575179043147666141068050740063565580905519901558258868492386990240957787792656865803159029524511864891504638606258435687079600860223413534642139466984289463626014522829029423900179526832286179208663334385291609326218071553922430528372487336693482782391847954163781762716549870961606303570796391918340594337277760106558690475996375965972605884378347249054051460751428424886814924787816998851748027255103850209084458441811405748481766354639601147419259672604926354600703020531237322997889808788214633563599850992810790684866579901896632649377623180442346520206367935092672962976601583577343977449062380512749858127693218019996661052450744256040869188960766442512518880031483759039453165707254626536259247574310607602468002010597151463003353697161673162660828045778318514159485082574771392245122664362648581543317364470062071382043458412192989651015370209560656511251574216367286620273535542737401295323176386084361571545208824505182108629662300283423226422521670169825612007458725967560168531991011634928709239719680461025942827656704664253142828858769080304788957644295713917757395421070973701863247279128369188317432526370482104626186698137661487512718842733914873476805916614492119358529102268388375960360249310470756143455112453974745930961326841303891329333896754338853554421728075894695679041298883197849285355300095952161608357918551086887067688186891333123306676478108895398622746599414134108864950209790504663247193227780046928517036433057629900115402248541838433733462894078931290772848201223736689532672810915736860075193589764272016296375076032431014397070203922481478256015602011299724230591414223645586599587325818731336290103264761269518308733793701156490587693242896747282512841036538112383944058836372440180980832135502408598308909525988705789521558202351190204067050781798083674229054894232820159844235516594672839136244595055735926200642750655058661882790831177705643462592777257223224909612174624927204078331623601653270819615221050274084932824809514506548237763190220930890721958796997158491627406477805866028970553397703924521894351500549247419514469689135117049106211858661445790784762861210422029384950018630662222964323694315788493180092079932991674341581419381739011060493146702271737484526393932212334336757897834473851659736094087524025765711616193476864139293389156780078154449454749465209947050302555203230802319683451024528976919665008830007346085709839367670908901826322607129759356619398447743038647483541362234930348951258791050072920006491987499789636878367520682154294553828693262005863608512332413961073958827707193244985228589321921686825328558951555178466941515185060351750539321039404698868613463357092787627088138387577695264948022877938986198121572875153483870759186681554579793145880683669668913225624074916364859647653798522492635778641327661361529951032120503224128271688762227284222408916889800016651061730524055852114537367116906568538252126105844321616227364770312423176635434145831071592034914901298959332650460441290088577084185198312067371605499127690989984236185311036713599018721732534280984558353142475371518373986542511857318766313505855734239888021672181028294195819967943865432375361761928008286133548966895302090644654537643584903428545860470522952625614871432334394251223077038118569923102424709775566523416756778979237277928842022493518172860549465345067269147369147033549482593851109037676990953507144523459814018352345753977781763688643535022538598093511654386314438727357271139414730636903876613361838676142055724167801908589868780694457125041678317423608024864938821504933016443160781570595881604502005742853171809522668159825059015847283763515063549713401808965623800506572790360668700786541858464736050796236146083715806203347065940739633351312448306166575603320438116206020069917062515813820814050696722315996939053142050078797219938967916369360077489624640935716225218861172732333829851348764761423284422783922508868821095457445792363513318146791050137200857323640391009310700310949170499633803370391497459694112540706167154632573106133416941071710018988987193688043041750019876339508152113542607800114244064700279570400162677740982492287787923002873547995343779560486359232947163724449023925974898568984457593134469750096622516279415852272207304931477382375274286424900272246653557464021502031365554550771921105437978747154400895054801023939666253611359589913920893099183380690926706157317733174309045821324220252829794592749359228986083097043746377194147205626375548722342306266660331592537750532285299429321309447017075801377874127660806012442745176211783494805612743679241789840057291597292319398573745502276169166216101420929500008252410499105396387651490142437748202625356841386048944703124693054325889000158951602300273154987685800962834505549039237268505283790596546942171166692157701475176420366657466086170286045953704401484844650327385040607185500534892834442607070077986434315756814391844105170031793941358905165863661596956171107691269037754102955058420865044740008034408425658348063932465799734361075809485168222548438594823121876396924475351475150935941467309696729951167208863353169959272306272473822497889428454513799617968409681919332109581257655862293231668046374948363671962864473890034144831609279283694935287510187273516155969145154557747922893729271412692936340637088773532134625161705325826873946516800480282226760482975035918654672174506218282673102134905092508198443993068620700763857870345394429946369247254374422560262962240011825888926589567729247885003027463957825121568381154158456913676318927847929982627023080875282032232944156583802175044967254403151234071784813851075658513233586679047126136768591358799153775806891377338703437981820510820109774702557253285392136817846205736810993259726017079145456565820374062152750685379129224233038664251704498198594796991856036910574645629424928301901503345654513687166890883005674442570720484589406922969108416077745823633795705778573214196308594494726070126179718999623532934913265675394843133061496394413051056156975117779807508163549693598908294702907133792866725610212899515450137183970817144513357410555521445169971612241678419470580957403264962283388895569483890956250308278586770596339030592085463260515659555794796390401194632486339167756489094695475652188070143321089927923690851458597897313076421736533998316161338127386469848928868282532471797510380087382071629491161753619479816283192056179231961631536446869998296958871527338864145360099051597473012687613604343098605335906277917116378538001422204019836738745791494502762161695314947580523136495066892808468833175757050313020704221488360753404651111683475236430995728313680813446649746456407346670812118208232834164336904261516176801899724217224571802923546746284288217992022480385502922493215128627622019335264982104250381961113707962597642928688814580412564900542448186846352230121512489119743721931245758468944205857589788431565663377665966821885102014229456275980361397513228759341609001629038015307824758090840974185233662723410665736763296679781915601555347047707765664017146601756636529462288816737730257838010072609835205717772665240320638958529703132803333204617094247675971444330558161988956924930500025493129755328673230861773910126609721064663259130452068935287992244302966257213103586817307796671408887527305756575360965527717147620345351031028098584763122096505545286083312869565455270338404304934123451996712109590601724383577564721042151648140810228707441162289143512086550917256643970947543326276943346920148279640058609271761097083845651112107800182977779146396839451668500651653238577129166597441817028602282889723970335692373944818783812866924045837566894692866501971546958879970775885076087554132517439615620924963364767318584814658163560723093996337817182594625496981020212076513529793161773776878160566237175783442277402509393536488063976364471101928154372047118428237856210048558067984141002670279314298606945605956269766294950855423897819907043864409959667085401075019938193993107275720855230626403448044452024873534843209701932288458219975863577998999799852166539390202921412348254785790661232908305935519445397671057977598555004491972014018660345958991290299153284130739415007271927667622967990580252225513646043095358376968519093221891792758257813767052201066688509778976845918784297916906883362667951966077952132252978776794155974405371678452995014474242481153587740185138314530627483985356170436049910443611599905537511864123091417703792115340668990989033536825284724392052422792018148796686251094441828492802581815351587885390553823378580150469293349685058362921545790986595838054010807556010286741686668078880148643601639008928259204321982966336582450933564720016939688125722655520680734080976023968485070727358414421690677012020323329861266578119327190318302193438019338262846013650566497370768182360096789530165000599855890398135843565457827527428506050179695503656227740667411333233146578683480566535994491627426799642916880577500029784192912498885027083846759839066088621542581026298393716365735709058458612789139550671903392954112733946676265492360298551144259664981373920465474630862777643556741364363583135618206534287890834555628640045852717798874055884220136809285299718763116100039500453902214854684804882636499587688350536234422063525577623618983995173323435391466239089635912248452093560443822839151529960886078077741295967291519945517142800400728471857495262703750620657933546984561316711459788203808185849792238741397306489785097655564077152064467689148435973141152165864001804732720032693916915500110987340244037295322476622724937290017429753803604043332951739429990954408792018084722325048916707313083357087542242988772623620522975888332756884155092348676627348057930238453703254610397987097565786798738496199307436161804257172338271072956495156110478451330646919697465317064047527135082875144197908540383413589808449516985202030241697170621338294355997385534744057186989516066725664605921329223841210932729987699886419138664544486610967060752122433184699664681955401283753982347460968105927364549346837380181551123787677280071515796705192231131599317498556219902563874484728311591872233179555862178346419267342224524976527090080236982586585481564228755238063833508784459973330963069581501935944407173043961722116164139760503837537338120788599745355534175758113533591510749201585375368007660061547390905800686496183899682743405172727752216016547343386179821206400613538892277227663569277989407259109278395694759613934073172314313121326159768689927703179954253155167816244678707994102860462645608359867535801096904717709971470142972560860830189785534398373146427967822171962332246499088771460384896963265172652276181599426119906681459003033918690829912670347478322116646127466152890021698773174168349008102587012468623545364696169722087877013918682367086934291403491030404221652282250980627129568983003215474793709780750959022259737440874544141537288009620845577145129092993378879008364242641682212938615824795411518241959218208911762831463853457198473384362390725768072908239438640058442409631839556502933313891199233643044771278064020656118437135383560607648500728131736166700591502809805129364599528885004755106259131463260038786892422027978756254612245449632580737007589331269032254061343813725685476840753242606243042161613703324530152867030766005764162774144718787803569769901797606502208316969525992300226843576687158241801997720509175588866354223785942262726990846631777637704809475152267141928960154184335220206714031178568150041869554693822590132012803413160617924258091709999391203745229240335219011156810271827388336570152083814232934157233695988505634195302146051533787659348879048390077706409659234290703285434693048288788111609972261412278071996292938185451178381014365378936523693446649453770551138884979080693202426268315595682789296720155247439197550117261228993029130985606437762206489798035696020591884962401813546101507404753200331967106736188096812056780676053523202586180363938075499225601493506738765675372917099600162559039227184347070741915792947015790236552611336442194172452642274811109413221084421180228870528874264724828217244812819785671621007007714657634420145630095389663944396135511903540606664562720600391984663850072078395872864397947373410567594907244439493668649184448083141275402417173697248992083187950733481023579209573312384923096196469090032883087360030287239218422600422253552313105355474160805644812764236281091363663937476511793092545844563273929435324185140519079874262455363247567255991459939709566921413810460952945060502778090775789575744024748159404742623051030046143322240451394531571488557739931949160549746220260111459916942753879931919859360097457500207692063606219925653799925165414489795187333211894146693640163384920881596718155865826533157251388610752626279111796663057652446816292366758407233539926955907073069482876689053640007920693585255444644057332945371414677800067211507360193795965908603389747613358811774575007165013657121240253334548874359635271402142069273798053546757235479679484136626836558557725437763736226208521946059371798618405939278884563673422963711709591454039126817919407735230195700342437568101176760176352847926533738793625359958665556212058192319535178179228012016423083239395567656288729005716163743067156608405235552100091547718052631405305929539364569898749500300311884937624310605892705039164480078340820472587030616478726031678734079007227187257850287512095796295142998678208558146912697194308696570008283789637759848896268996383354432160370761238226790258172806845495288295278639071606384154310790432858670471999808024510818255772626557255807533135693737491408307327639806381308237250822724104752722493003367783744987154724736682599043875626382402635586011454750089053054496520071538454469409648412316100695057609009913571722290133657283577712251069248135613891684031427323631512180535099654526125430400705192945865056485854423453986497795369435312426636397631822964120213055525308698753644313382215923805167566445210253723261323174810721841309893507298235934633947839194833236583588234538731801273491185497113628504072854552980596860597423187550808781913801774736509152303782691809798518516158054284435123748762861992687785667241357913985768983547085925852101772711210906721507597598845147355367461968632380018664831035378287374023952021065882808094618559868598710819412862552711181425655375986468441161975808062344659029547057712729087071717430766262217381874955506208497240089345738724592703831045887900927863900150804035098547808451229692581184401084350861290826597625209271150687177075025611431114173992978539822053715047612399091160014990748373598738661949578785692700698804581394934402726149645332351578891478032294781043933717607404701941258583456387540520170615902259496496581365094560886266699709280653345726067467455425649986577900027130603997080066316586653682775723265130290926043767169709359728255706549026797063555116696243954187326728907316638885575593123310028973963756230971451000128000808537011064171811303211959300137695875624492355428735407913415486739802222599367827550412025134229679056400223307507802032433344729403077776443576706673105746965961752479040554008828967603829844228844769103111405159256287671655190941247702395287785426929682022655793014118364989069485109903462293141744554492834948600113438364911848466005666389941376942614601212863391003014943385303624874645229935052224633693742777759831238543584286144493974559227295260769295221271220418780110924663982186376267959456322690227339893864634878164187839308534243155062793793255414446844500319675381076910513254474583528262078372836520369295013147399616683122089772065457014858533527507895839514568459843279665648781235623653806015170282603316969248158216062855696966100438306665910402219858392449468781736852169806232804239260557868859044863009552554932479165265289964104643794787910610823853093423203862295778270647351039494045457599067070092082505731331168876970945005838538343582274981093275140197082769271143103542540895002131162094305317786526311842124041567070712877912952821534462011037968376085009623067795441495914947674137128962311926164251403620778712284459141846894215615442357469899804459737396276740405002206460181097638364706005535857836671980918358298634026242303566896648394842617640708469257896398791321508520479072802046655135020442568651671742098841409340014505170723427552941173338316409917291525223951066222095080023484663468964969107717096557969109742331286209175371182655317544747983500011962355751516396698137678517965234313944471758593815205647879950487077115667061582992605588210356784963725084453410217179397429872782836660318540473709974086989306467101504916570016370188328916871003349766480305217702598525032597435125184782540738536581304827284561548429320676809695820642066450633517057904285863378847774639902269427627343540220170470365820869787285977707623309918403444783144782606607210284679658111597849108190907133454227679562724671263400953962788392021349680518741019396757332131168692591976635792632095830961291197225367545287700432170568559357353743727015959752485928445381057982138397481674140589912884011353746844179603467432266707611813223854998917135501574638234697528469303957994011859959225954261687486124252777190782111093582094374318800196408391940215109359753809797804871494756477673010103201007247046936760531097471831394040889244914226038036181250325041924128396860146893989984840167590676834011641112572677690386818559242244732748307723254397202118422765743359289961154125919020864254565889964998214066744236596811321986234725149600233553972036802904471151983494912911640933581657999892792405540423429483302536249440347316147842324796344672742358081411523058725678736102225356355715081729142213527312370518082530642051505708828307306208291363771409342368844023571680292202294841055523140535839201165459950904879181592388986635486484501137489506240289015766271155783157119357741166772605932489622464887161838338753670635734303359880730881944669055574022748508866417175826864192876745936489769861891608490135785799584959545665392832721517786901045458760256215649095661845792722863263329304360912587873226900541481751286430910282737203160508989099484139773154016271815908777110922407422573813760168398134755609401573275901421610041592708759652141974948933611152699160970099037884557091460721624315500899467009647265938580786594690959709214766261220635608989969512950978071451559568531631555300989427293019995168268246617592719521691153061275642281961869320215296731356477363526182756844846119797567526699876551089253422869729480715957453943152083261538750108811350191168062459115173948855663503648523306322653283792474295037402206640049677401927008877133740135071885211259487672952428421738121419483401191970276966351008369372715618068886872666950792891963572121275585411433573661202066430849216403552408939300221583698995909028251964188575286018731996317843502295076934913327198947867091544500990633359519472313839626128698209424086148591835841101121685508935253859813560961577934076718455707192391015280868452533337821798220227632089251080878526806321882876639806150878552224936426660584458326820417686985783710251058478982540654518203493226272895735732409274718881220693045571036325040018635514348164855157282836540778306400649916506312161002346393441538095838532762328492975742101250156508418403780642653319209899085318553970955841102024711576438931248815934905318402038703698418258232929363624738986448265061464395636420509368331156200399834060363943911656766433272005125180671052203635739515611111210737971660234750947363005155780790961131937222597131572139070939959092585270243475255561388118869479122468501211235201959668632834311852014490384606392593594398482085643940052019743436813995823122858099755951224837422742152811503596665083238882699492434243101713008782225972069376288472815897263378042331232229770395715948149109652296745094662883240815005716113769611649969655087130138075356130005644841628184349968264228700733589511083209946887104299590849001207273105328955740848366636627120719467560871668367439578562278002132545907554581921261611819884834808796407168376076809991006945127374156781200555301226711557627363477168865669133922678325323099092987741114191630181801375395899225639344912205362941245531628730213876466141127104535547492388472797632364418552393419786504759219739225747703891503139483610103768635140759867305003441721027310995040069189706205984948899531459495165943848326832526435859098236564644648139600897118609346753628190205903415959037621318508278658175774465748511596902434909013407255456492342171710503373673399439734392121908110476707825928842481226568686169531143557498057163346684169144308724406223759032725812306490686177691400921262642755148958321921680497211117064620149258768330191790818080106672956141727369637305262495253174831769665617602423196736253790205914970157480027315966051654994051869857279615306425045004265221086435085626236581484048952605993883240461817133937775395737008544000140255631290973243892148216383018670112298776627152179929357081083904066046268145126577408963894403873124899258393199790855516029754096661487734486546495807539843602298661286864629541550784433444598224820879564503871047329344503811352026537263915272491833444932496866520059175520945194855446669406104976607292575279150708210592193098988936526025516363036053630663661970139723331747283395199278592011116135986038082610649990910021315954340321666975487613616680167665860643668041251251414862509228430772490759119717838921820345145457030867584519414306017429380420363724165402117857897737360765805139419672829825777839664303587883323066517388605684790090278872505401697361072074865636557071875306748767643629188104306195285140769664639721863062644276836781212571043529515102875176778769903271249241553242275640937209700325126435620664441977564424216260541542247573616932889245261608099912975113222864915579418079356211595036068155063841542401340315401845176594015056822947328471310618128168710893963991743122367612922663901015403861661890021957770246202070581374078682990802652222529543859529325804648925351285928520326612295514527062840793906933540580479665665567954793424004535827174154039817913834031680295340361830979330115758146602333641318240869428796949657907811177151543221220162742245046171398326455582159854087605377809038287980038148535928688859852402776258737903223653939052110185916763444662911524827374249601509277064826560843404584741074992340008765879338669260402585034807606909635899373353714884617190637346328782106007734912403598488804448313231274752609492642364925868117507470205588940381091868615343598457176935611747473030397953576324033047593301750952262454066084295936289637592562073936158942465686765787942193330072414146844592603176764859997404071434760948412528616925176456464141491632126331037095710244486477414448224058882290548747714793840367201565350272931460259665675460009867580690007251811688631503587236402967196209918976795461323841844895336740381752110914947064076073513528525200612435604924909845250183486920344579572249748639556579342418757662957936150540199296692076677613950600018028441439576225034543885195238459348358125154334222031855784559080952705362336273359525088603253472302986630842626602921558214023148942148857611034150600642182729057902534556746503287341554129825450389392201878588241302823200078436269980265735213627761917641612251878219518501876656667485790007534421030036512507694946740583133353237171522103452318684222424776246124088125171223453650923366902954641119808457388028643698511461077342515690018758275921666441725148815562908638829437697721168414159584134439098094392915974456490544726934068831845075087260880696119901702764666534450429714699864876525528809270912386082051604221394291914419717915689319243393626738226297570419750450324625179265089226913357167381672047500812472591403358181352823818939245721332085491852610997633237913320009520916183294421101210589104196138310925241021694269565476639537375448043547124283295142562724532960174875004943593663845806931511099347644926228853959419698031682393921039048733732924782483662962781483595636327827655437004563474163094671429600314078479288075180609618630869637347852330542428127943265017908665784373357639837178262671428099225653144873854082065079430707184193904840623969031834573489848331809128198106297503823298257691970739272412580760768270065610460575526025091026407805049751181430683778302311070519221230098885970173337586719725575589757617805491425484112266548186473300591168769087961081093110697653131186382398631702353420840470879889944695335365182593662559843037759288165544071967918949996498342662523691962446352387929137033119572742344927013297476855602055535643413333445666950698309377388516792950790156968406186678506466408848156133412486224553600214160708900524838374283686312255653198457127983677924781906763107716334334579251440106992258564003403336321623865804977387225351675851370028439667962595635601079441696279225455871545372874307554747267629708415776389980085370243733548052550495087834571351140626748538664542391380133769367487287089379825623755006031869677811959735762374095546723933763817448188032060914474848597755982128112085574186217276940876620494783003729866718958060072166838007490820116374239740727972030874033490445828082770869807283655294683365753208731734136144875024550103460398334870052361350868130970590321407878145871009629754528599301090584624324875677371076751593579563234406468333214380193998924472758897051641210274941149869700578220616047095854129435240995437737514950664538633646328368529034092410351099096514288588538275684092353520756782856959154061203283386110624140922376279341630709663648296012225663897730572453985719464390092525355637800866525797386570140993168743033686284405663332167686549110414592968595794727527095861707864543593502811517588111092749171230719951076539454806507638609386659134735669799619765612573371260843934396584349414444321311665515070541048075702563156387553406976865902235125982385123859118807952018188797421070058511504618564002851759495840970257696688255548226132641263663389136509945775620387276650227235851311815878605042094561864783668502010709141765655643457026918564239340564927428966703636334456806204448701914069744296015880730833108650822342283256092777213618449873694415369905893187916037689263975966752957004047556858404156257655768482550387935202900207458216600737323349418421888658360956437695017300869056742348521962292087949435859275122010541935230858475346459621850743985497425746839620781712516799878070430048057820619010528586343137465295680158174464134406780822855340245185462852841799808968209642193578574769210126486079129321953490395714140246124057916535674905381425439986678444690759632393892291936551679426308225826242112983596668857829120389340277633063318817202196637653398478004241417602691004114533898685737411769530559504944097001759583623402698271507799896893228311976267055060910592077592746960672854152257810371166553082874794462269499411711370736563912000482171451395440924177069625439907932598551075013398852319702192379730349899935100474679842349538257009838909868406275195581500014551546907349507088249882619678701226271856388765333852687469296010609496750900847958451452055452977444876777004401797723379921572585050177279353363526524116408608312226728614581031104970182567335833964849765641681313946508273460698878006766987416931056223188285687158289398273547118216574886433450989721824904760678064587155872107433613012254360588261818055935582344901312643389691467381039393516805296624955693645874666903954378299127297650372199854536586110915799105044645103702208954660321271486013311148207019848365286923464789802347910467623596063715716707160845917638195315001763874675185642640456695798036837164754274284662920395221436186355440426489513765701367136301939331866134675926556957173741438214214431631708795133246161249714116621870755606060945079929360999817438597387865109698314752788439944778080554831839695608857544478179391518078136363163919002023595709129631924984298087652073079208944698525531828485964109289362428456753423136044637868320624639264097473386517952693315294006580694198068550435424437198674136458892736913931687370953803232549226516228544914624208045646763160469329329116966421239036596193066953163568695513460410288989098573254274605495287177909518403938048212566220666748313236979243971429992160473688334635752380614159253085881435544401277800725377707936045723287507308382789055617243807490228862959773433529975594061535276451094099503538326848889467887633314413517121000973218460725640208033114580971027119198293322650580584253370036410117801086523183543508087892481565074136150676607077600231650797986138652657478651569029643141160347591741924114392408503419581051231080029403500317324520097690416425134824918332295673701019155497544259412020223967140459675881333404963773972576986957839233759099199094106692976588391215008736770690377364042089164059556744919323315130412664029726308491298679615244910356050452254360345313190287420765235504148776233905387866721273838048313759772108516906416375657680203820713385131024509235367739306229636376372523132203011738224015016216254090587286441438773754044809080569166133098722722893024241794841825386363745204462211943296913429883898440090793210113445704377994893653079658474229736731110740929620323066827237805211738616097732343101029055089989441111160708045175002790865363013064433347060877317859872800546599650264438795350122951394084608252425953018830193091866619639323420836871296315918269498965336673818868281183576948763755728114006616265767701941914576988251040603775812216968941927240971898570933957620400572909052745323674312448712008278014067284030503154829988790200063566229735356055591558987823599811656841562048110654243441009615190538628687660242912348641802129331175538873792500818750417275832054164441025728162511913675716552121632073774236416506359411593487600048895582896320644323521037170459993992454386639535385691189448649361319008128284385430300952991616401756134788439398536958625896264703860333463107519058387908399624070383707540828614269916958691026420554816908376707984364449677277629855436865341794925537776628861936291024069903563906351263047328863572971141451767888588932964802798974496244717372731349807669355087703319818786609920311001270273199104309911762063086427614594424057234999042299062929443138383543557218749467546466304694280626015590847367197759593306204511221617612928590406450281990100744183701049844060818366090024770894753571248566096014161821536168041002980298836830971048205622888550968000341916722419398198504010346712353266313106040316530000552883937953517189424928008937461762226812771856503968069347321402379688439369550803570034769111619252363135032091128461363699291940273157759307491811053291717363577635459238076294419294951619125954227773026259820064399759004858291909800741482229885916677912951971293230846272515647039732607582491116353085200802448349531686651760677431004586879788437239389117742751356262213087322216062475518449711882716877313030185028793964381880403762939998286671543426059565235913546732606026154513237468264109442736846013198675488180412902285898385952597221463934768486606743706890630303890931814361486244313437218294686849600744915606043497575956539606742205912009237588043909603193790899076409093679138043796432414849071442865357428210985433159596324107889543946068257635936240884241184430734811790816514104045988831670857646998404606134160872876326062678754876867266028421099779347596787956185236009726828253084864185901350297849330348104352114640434146814343504678262432639010458525944414297719897759792206278957863320807598695106907076504111437388333833531304027980743421994270821026551756494819145077972157501062523054310439325295104606243000078773999263456596504412416564074514487026736852350150142004589650618568139604257311351017408669948450120923138977693136950403934772090380193017121210545364100772224485230769339443633124403978868967972764767398677029960708858298756076809639297782654555658419211750013034823388444234279256868020905169258257382407207172743046294212358103766256290061681527519027307048659848510939490236443106015793185376474668749690147313655387463553458428563478559868420476008671717503915352825249657860157829270003050457751461215956172814067938182423874145912329160736269702901621427028267477525067607197368594301132053779739764043483871975615788807600110955438723768858289766792113052323536486140864860764101626563504598370758343548109978181200387643455759418981245873179312862622735982837319757798086712443329704965717084375289697217909914568023983391891415749100588313371293777196838670262076564042128021788302906741793181181441577427257246775329614258655975367205028764354802640621911536419227310553593184268393503454631241581713644276349053357262707572545086000510520027928940978802802166752862396262026260378538183885417648002154494068660227374712731898954491082587635512507529733507081658858041180314016656893596280967842236698773017112375542367826567776055376665062467807260822159922220652604252725025367802541265942461513972671604993279614826499258165299763811801810440441532493916101530597227286717598020058437454157893852408866450282918610957530470392629255244302674560499540847356921454511321388068700146225726688651236787343980826303840270742891502701457961997230480822666159461061997357563958454546775489358547524683735303318733851900680386346223689939621217671853865758492952274995320373493807364471711492154721461701343257338932253102869216485863742807182744201102609722699839860522989593310240558856688298004726122045402728265024473663794894239756393624638301015429519094881603278034845914507996149376798883505996722949095385797717868148302195779879290844522642553534788713123758960582716265895175922784688054169945387827494443204215692852220734905305444297408919145416105296056052297005492896627853104823873816301547027929064067858253350641678167632768724890158594421478926773801956967190373521722091065160585301813665206267727046945287532641139079345604674013846808729291170557942982341449199623540389149507480405416602327232310504176906975407771955034491772297421570741879715868891379682342545057865173093878722014797780494674878557042551393018376271531705388363019609752880945035111814096766792476482343106363392965046359328359746580040480457774572125253000508109407301029603489369546760498345422805711428089377177858986104105618565359433788115723591255054055421515505109232947488014481640264870739527846272930046845104969888827086917873772237771612983265850140047838408899958993099585995389977624921451227423179578253844192828313203930964258616224855916452988216049426263500465156896452105934051739267253747044939536559612198634015213939240502604064303979615091400096448691491359509816516174043200874395554688336190904640220310006348220025298263949536495932696021615902472406079291842581098854942920881180533373867862945968431710474665288243808143962732476513607702580903729644808628501314344283264847007165746426340099731868177578122671505563991497055064981394131182202094313017558520867557588673451792389218435656166934992318596164414400363223734061251361887801732931691928853362486858775386721674124239000551316413671569545317373825015157838086727347490652100875688172163666661805155904868684750691095812163895730740969153073492187247134184500702258893029889675987829427207574477362687223715526287487736436096934338784059201879987747182208891896998215233515437321847432846974757084165096624171641321453084952515961219627468732058315837965893446264146191603494876060800793085343230261465253292961916112772341720370444902511983789965038587286431057365944504717678251990735916427357748984783501783697485416114930493794643321056848369621922518661602086519447032868628644761775451409372290078747581936589937519303366226076872217340091392935085920088448667313084275232683468000686585310095436457830033825493660294629071615032003296081601916811140898185729436466337927375259904897451810792146635446965082131894744658136063886788130375865138481173885898683247040832348848014567936412201002839453563352484553341715886669188649333308633014250208585793190975449631848792735991571203653551708011433977163657300211212186990787224140895056663652602284882768569340738505299910069883600302321785234163066906532741538242716126354284722210083380774140879839018499477407684922718887226332447685079826002617040519098238176418724659034916845897323859915458450260485362800843383014882212413046423175909694849216214546568946693404120642154645043545511208776399000238943775958795252047277755980569504184775939694905825058747791550586925374915838655583233925424553635449951850463590885338804229387675622056773739019628927636997092873123724723284893395266269720474092787272241994828914466443996085785883274900390552839830976009355731548477151677846750277730771305008493801892070730324653033041984957512286560894990920072754160743078664406219574113801050328749708478149751633991780307635131166470015635005469482535979517120457818218039249352720313197263822010635094683486192689388442604268559983699662586928512712310745527231619460113983768954899200230958093777234720156176715932813264382534701885008782110469435965646150429546987990037620471641348133906319389705861145881407507779436403526801050364294310252369775020390544552803219564416409915663628010460802465190383621915959520499410371850072548040137689125708774705282645016574818351870629390741981160166010026866844995622578173979958000988585509969717657616193009506981981695382471419503219567332566363684584570588205989454730161745417707587419755307615268217089026939450999405390242505812200928922817236270588440685650339231389625139898502023270713353718783213665316648586878069312306003036148270182747473064804851790770057704020555135988360833008396423315278738649538017683774569506699059702381640622996648978283913973404860717979045247987174272227063656725586216232574250225938403589151642229447650947654095698577905074920002434147028487600324408522751638243396345738648204824363684402793290541844978938181811546019421948962183756416332530882519460451856689186082850541026998672378149255342587033682144048448369165667452169003521220779055101689185113219135193380571275561643454999332216266025923486923157174295325019482562423883437905227693090795560873034040069272170100664628090881492491202832767705766268015018694248595536040239522835942059056853704303971941787162505180395013522490675000089007944920535656822948109688937958069163271533700790889583762075670299646671454210663389204172491905262176394391539848713485062625157040100706215993280421177193099834432341527222850875208841288403519113167383731517826217471512639809579251494539961657598180214943793946347161069874472313349118867716412182177764197718684645746822409526231258659644452773115889594214343240706203990604242786846636546884184641734090347677795892459303504860755761138012680093198679736750023077358491483332779095221165539423983351430415291402654454343033986103561379177691063414617667149730009873844243098930043281983170628961245649425590128800181754410859226655083728011154295102630346441032707014898242775640597940290220315697567222046328981454395520120525980677347974772751626062585810933275549560421511681973564895704483549456429562960148500418596483478247458770357251689693377385740811593655732148246095455606052905083757001735169965621038821582668135608231423345582865732067491584096999505319455471304084162839177933575545439231993348499728624212777497691200260414866047112365963020689144526813663302189123617877435525967940488663271141485533158882224712813131239498837910375589904020362970389381331167594048551994154787690849649527620503502651121915474849634057621610597471297738538375971457091515990130477404760467197028803686660156605402628476750042494896235856817072159832412463137729559733254776928564125820187352235182498306854569569003694288343998130287439366758386953180924381382313471245360606079447182538350639105529624333974705455912971132003136953097643001931656659953955892137624861718261742132044465725083459861853490025317263389210985033221419274545306017392819034895287173722780440605405360804996307169508932814078614935730250008205694901590113590902951116269762628102795550181777390925260160392354610910264053722338126084292366558020358759378389030124159796361401614548679070131483302815263520009073076017847801597278470842461657201128760707962820484055551714744683962052767122646414437270677615345399767755992991914125828196408575486333334849585562743803919334609273077258725199230309799730941611402996641885999903284288818948425425801607164132203257702699811771263802139101760443995044237135883512121731193522173046049568435809465100652956822692689619105509088518731039743687219269877805694287737336911847676327144359861739283910837272336542241727204265694246039738332900929284865882449422568664531484967422078096472612225568760237642880190880740915754874193465142622817639415931510814471840429881098152751352372237394037190054286637952624602001316764331501535850655354541970821600962873136833265280859892421771391040968120188529219600768179445162041260902909889257450490947482409045742683062150779824455826982875741229279973779023948174788951218226878040442362627800353840986365294141435415126901697956194214553390671022157715588949177539299534599388297289156381657906928044286702059384864153912217812242197747400695395902735745101681399284361754055860309478666728346350202649286520803382258288699067297593468496922052637999768522819525315875369330945347198407807435201473725331292908516862232899675194257279577439836827287620661049046359984208282037344524095393779153842740994171847072728015895786950152847971793528530372616787200320706119912838520917644753123186405737989319105979565879659390843479867626476854582269875789418188845591925031843828044707396175288159000968072898824575872557207979389197268847461844801837815470794702912568696019460108237751584466320778867034242184930795872729582169909503411958050606663998612965212865119226340017890243675214219877705510835209210621182220009505319365349918827614124268278839455154811863740653520453778555940909448074258322269783238280779781122220689289970817335841854127116240784851796750852145080525609795601767435056917344366976719907543180289259732495593328765593488425194031719159057535466945362333170437130875544484835358058760968625170476034570050423414635359813160094458148730094564480938234910561168557430875918580681978166507273407331415386827087001266546440811389212799640745902225130547504386611810542914393730756054771661926106714195352054201503264381509496929739233043498237155148765566683664050083926674868032195498182663858711048109984825835494132618857414489728989372844642548873819042825645796671414501354341288216283561891785557777539446060076779705064983016496260946194735383043658731345293108363859624986650504304558278723552421094930922183777762079519730618790659613635375173483707385592642255286711654967963220289559216809705935913098447763511166059484244480144970607548061269421344981530988974443273333475365196642092318618275571487480519923750990442718459842914998332186965959688050156093876049215649105288889317508340095532262509834329654936360741273234865364363994372448244924094479864972338775547032602206685505159286780115664728444744577494333388338991375440574752504390513927398657089246616713843047534676042228007618972661905976214001545374583569887080832130345013318922582315918156069141752403488386877216289909911840132118940441704873106414507337842601647547259839502505741841656593414752813388580348747290997144255895773597494735002237228730614286434710816278711703048255735339969883991235322398464050561495311819335415065447857285806232329091751521911342306556537175093208446741321459071970555412116361716802072146113357496373812990296293422751931253422685783119355409359654815743703038074486467270586081534615539757545996156429886234717585655050363441645815068852817748016496117381781277229803912576958422659334686542254089310637345763398246188443658034628370506258739453418676991646884377266534611160692656723758046118509760312000635795570435801714642811463088629639346168524812674060455664655417795232610215597488927651084546848147529012339264360620849807683376310909627797554441341890057842865206422472531576795136115519262794245215886605608457981714746379257910658789284575020876215327847453063466561972497174261136329841568534386090443137088285107717987870965777295159303992338073491917061530847610598909181836318321213228086508840051188894385585688486513141806518781758828682997782944954970688147636626124166606427801762071860820291940663470153323960068666920112637754545298114023444483301805349533872022867068215723759138797681637498540496493226178285357749211104607269427880778030700609134934399367539820441194674015144940465973072679416778001896403231949906191553839295636596794892164547223277941109950049862935750774967438961293685134408895236757896580893331642803421617179803034156783320699380398548480211664979275104664242556241557726210419550799694163610600018398879762514210195264830180911867847658342792132310392880776027719466525503429405283424748641852439599886884963185563874992626677610740580806724966022858659773340168155179246255529033652958486546938762168090858096768374535409568300442749097787939554770558344583816469519354235444438648828578413363393942356018232417758493770462531463582697774374362072787111046806059808094027350114749256928379002358468238279155333074776650816943033041847653512997985221893717925054097931744700799518167670588016834496213862463141808667192627901548892534997028391245951504215547170610611692168511759184872850000119903099467812994332853286696271230279963084738315022040686413607989549685284054960179921392323038995298612381640921641713284006860860880438588287825118767651445867386759989996779891291052479940284575745556743284364660455979682386038943062064972487301239968639462939207373648187341678821992532021568943649221707192254078446845271372920030918915521064045479256192846774545425539910069050140400403296350813718642596301426983741983021814721918581111122804799480672212833405354232610391465919320120912126196260057346657326795829325932702604049673626273364720371769305718355625281276052021722333321413810377332070872749571594456245751010532004892496639492240978408388220296336872804275270799070868651693927138992585014893037118525934946471408673557808493736818376001391665886751443601056908706614559813547629130216948192673142907532314038342651382765997846748820362085606277110399731588068697722928152552265478918615527585518957207313414538734417337110505109485997731528695903189398504887478928591664494529006088323622304365087800550051678214007315008873010696379018315679790933562934978106325096475376070866204841316714012174052191888283292140988966933594907578486264019129346991861438019313858066946488042949494322687742265071121844678916656631982504716676268585053993381301145203245422643492552893390218005372939379095391174575090521182742055574620703424391785934754772153013922728509938347569938432017590907133165760354843295353735743902132806328903528065216204729772588798368473594555632124206750700398314751281556820345946094233734744359650347236269119877278066503213372138497594205543658587079302040465466891779362590554786189680063388508401973636713546008063519051481904641005889575120231012520637692290002593733301030871116827864339016794778214814827508096660306000363656608245843310525609889333238099881626049384094285259289114204051881966413552167385401708042245549244186529316412112829792690987135928543589997260324195162959682557631779308212245623008935246859652236830369668786135784838893983677932988730026349583055431188307370387648586086515251408499624444621980484950627623614442526484697897724658086155933647802788190791615410161889514473562480184295049216396406221228252022690586118848341173089849685751396950094391036221689417643228394770553039674735431950213840037919300254334765880249585624831375768425712083227281656415784635055731388261325796664095543221359033305699092095936808696176267989547665478982442913631890812547818759861612466927319236444792904292697331209308535473167356561430798808602008103238031038365269985048291129362598389230031415384708489185584070317971113090415306553375454019469364185719069619783447086262268812178109083966199452698943277763573713631862301359696879039247392708049146844583913215520634508928829742503404224202193093006743000007718619027060602038731623163624386534748294218004546048641620850663158478537214753692069369414691686130402764686752403610620405529550335894313848383063156125639865144230477099045805135465714745279040845527520569896251164336133991960435102817320711389286140521723383060317989206737785450962913380815122064876630289018660145350550216896687801414779274335922098601076536382844240218062534753785480469628561194626275375175445874950804554139896134279793310229079801590360626323875205476199987872889029293449473159755194261858244939703778750271151371435756827561725982998666666205245328736825979465723088298906666575821277544305340010990410271713942706266810316819883367934291353673418258522805398038746589461658215549381365854858963507574702559293705503526761663208359924063375061613751093982340298738612740491163548588599058418098988350683636025616661605999645096101206754901593435525927464592809119598240769434174251960750542995567575122998758050309380258172569102209328993918557166069593031547811808451455966185109437509532002709248224481565867789269187745010260086655596965564370918217802328256271980740085228070605885993146966431528311274436695095607424062919697551158780106255533609109247027930252866150217752653053734369190953979800650849804750294040907125232623615163341657204587075625213098726411353760803320737090482785823622207741291177810420426605347859763626171484874418516545963827640447658040375706481235688683530989823231048687910165363971561162993900461811092199802162539884401801593472196428982311637403858173004319901333188213857567661283763262075968900682821159620672071294569868141864916057149446898151245412971887141535362090430059430689956377635675661548536438403431996533279088724075456460281847040765383406709643185318245244503312605969754176932931262893803148144680035134695996403646044422890320201827612675337924319872207751544406371984782723123814947051048794451457483905345028493464653618960987673222986434619036051113645438715735717602420425309612269183397363032638461043578771307551778644947194224489032694479273590053099948386349948784930270021478319841346686414035071749382461822785095522304684114196049824493942534579274722010809592919634363728423911297551952026140630115112123581091056538879537990118668352856569264944396452043511032071058354043871672596123106957249250296344285547621424533919740871528739075846055253050025637056518778085176893953318031845759707193431846261648098045925130198569271335936942173467819683222849114649667840786694070337186621971485693146886278742918365390959949965307189884678611866163715778500599779834563900674944829478265190634608033216685991505388684859242623772436291752753268923864337254772693583828070942662497620081744997956487232811603205230009182785028894539585960441227384217947111732340340233056117080213197039916114804081759946379084313826489590870187831730675823172104625483244390839555804105395116547552061950159618732030212416216664484247302283359266092567911891625309671182936545402450338930775674993109594320394637072190231628202969853877995391542999982684862771195678596949489116344641264739250931269189626208816245383769983059285045627160381564357461206549270150997918514405810078626390214915205221655956564569057394833376925293339366040798472405981768725326165449868940957598057827935423611148399575910197125924503797546955094325936209072011105729025241457517228069871152704568385551105544965375449010644010391980932804938897316647630493637909160108552610293381450873720368064788075285147611735923131296757752095974794560176481236422377343188825117621080538577740184035807739475097764371492525398331095838622963467108003081773407545083976303173055169445947956773623140325589549958935853675453192453971695515851805479761596939112128653948361457810282841957094208587190864534444375815742200671353907075471287048080225782762650284814737354392514400750563631488190641847743945630295848760992353614420383809881883707117754052196774327745418858499914610381616671778281354538668426824798210471022175015802121646365256778626733212015624904417699827121784280504036247078922042700937332066489638502734568032141192716151135568627567727038389808568826715188039316601868931059274083314664290008639971532227643304116110311313301527724489259711686285581551488805021212377102601755112981307558604386391801756300596565681502948662052058581251642729974143579920413608575053966181878286707971951871731280184163411041404474720220411742576789906462446085807409403881869008586110757719080084682396889168047313329714490407730055984099372856072420821082143727065423592317693526226459418103337619634277944912657111508059580337491566684269601832168587071202945526074072793731312690157210041158553365676297457037287957675252791771966304271565875289100609290309316094225639130895980989019837334639955789272481227504341281135210796865404847423027030609734383801955924816643499406118745839234122588498915224763298617787572138017463104571754749888204444540837410627407174692295397465969528931067303440871442299356430682027799583354904028069430481952464361303056995411482752622968667453783025504420949973063243208574413294503006790435420390332386748113851175814135019908706665501769032383530878872224023959939209539692332432759706750806152900816415158763049245967260330918196010993420840710377849046530163818036632774121282618405073336179948549714708337449498978538233452906989506695622654415054884065485116294579484817749730475392900905440113901172036772134031268176315986413679750071503197684892216014082095405867214408343787713726964214923829510693080337298584914598632052223489982405547304346734530999946037505382251202494971882083591045372600717350392286062397434286678266461134302658708000936994421620756794361246583124354791076209239083279247642910579506035619108455109395219564493676347622505407272999981054720344071954711406733945784896534656642207005260575917042381534763300603071127947737249547558702627047293913122732660915616113813310203674159145383906331677296643874262122823020575529644134367087807494113186852392903325950664046931823446751024663296479919249179596572397769601034083446888427990667054757899813976588433288960683309601393416733414487656171021452204945762008073196285738226495257067762507800627590907897501805635026946910027048524787438864543066789661804046590844090530027938884149905509325909805778061234755352375191432361600251649088098361025096521501076810650719750430039475030073710995898356850008742174611217152281162870096281211723475314190062677437193542484778447560191796395860845675448217321557108598205557925454244565091988693438908724498661349620995363623913190154581592616964316945052205383949334921250747869884842434568090486792213756660499096291284136415842482323963088787013905825038314257834831793727543878049798640969488621534362190281118586112632532236872783764694637241207790006833624882433468620111406161262495321273331375910818192433249585480304706367277144385624346400152670863752742718615916164204272634602675939784215210542435156167094245213976070789059996244476757391265920595026854675745913959026710830772808793175633282447191616983259492009107834380883496306228727895150020854188698273263569886921421125110902771511669040822565147841960707570258336009584798569998185764508953653169188658931876957640738937653518988813039286190640822768244728521350972750256381614603769544394379915319823091436765024547377077124011548375224979791026625649923733916527129686499158065521067481350836612413557814820569471737053520906664604935380191032978929324769880722434303346027338255701230385487254915402376460313657397100388843288588092602531694147607900291515636043348852700761995426484920632123347234256311385784832846287646224893267870202211105274448426154317606736927273062179038442754904722903674156923189501256563631458328233121766823879579118432493824046152126466494563291055975668404123235942255547096063698978481162715297469537803216530347480349701549424414981415253335462183339865086751391925681350960975572948688834967960780428179567649480319911447889402185017670384626841873755532254497705596472649566029252874069018404795083112400895976250659889372318671581520618136729061223286077963755033908887142304486518648008535590582962349335209705371646776553284027572402656117766085919320348944841302313807844747902385064280457629871645833521584785644478476536439010738025453620434997711082448812335665282697750426348755239269093286902019796682669626355783336289059071067207543413858559412308651926524598066415264096224349615401230945343030649828711311355981142178315702421344396052136911626298846038364025811196214079854587156122004566194901025376372674502289333761454975866881583365839139887226582207598896811154292569043949535591638722562961206178951071301518644504933773352958248060931580515947277562214522986665928177940915944556353232083952525165464128040352933285256311813895450822067830090843808211511857886778573862229872152303368089179643342268308187610175718425386281958220138422264122074662455560875331710416278920439384587748088630213677723482225351130050597823307190519645580197189084736640468050581483402591474459288737213689707794747946607191651559631002600585983965392801584330967664941294417004995246123078265729947892613317994706242745161396494623250886729956731063825238088598244528416586696339175785496440125752699477596352777890191660128655257987264394069043062148573004213605593233924510641506279617550372829930191499195680118467125880925946401084188092207196279796465820328108335324549338166122035226778801450329458711634208149434205372191062326240264139012604384507222724580629585393946381389351087999072312434067465097890299660556632913461612542975079876535144105563667055868109047652484358904702724870185487206023980009600135578151423682221756924572345646391175603913834454437034850893907839373946764210093972176884163633556176499646325185677763268867430822985958783703560833164299724469380613409935831330903711384069079401487967883187769300999753635176816354219964175180260874251598939353536967211391733832840875522915770428353591339103594280269942277554697116674396558742575575665902461937269476829800013717847008993180581850591860866218203503042090740001717622971599908030718479233846064541537023317103514711544457138322996810513971893658196436880125559798682646114982687054519195013304159081531611228527915047111020760198326667777803289272550124864037616910420198955774121080644660738457678298245878496797970435005967411407348712146848386368549495938487107056088136742200648817899751851442812871968997597863271137953481172524336412578339154116631810962532160246588498530442089665997627700679255416686781256308010513053559043668667547898363446586482006497842937811732211248255270639364845732988521740975227779840774511452316907256322423366769284038030191512899110617226582853326115496164069305370626015390870925719445027329590377512085115530513645195333771035977791163107539977079541374702494957297415558543306547680529122574894768173663109298757281734065393237476516352794530522330732062774911142217343014178401107167243653566677733384706431624535191636200769444216306904183824090272123750171885294434729756818391593897673437028217245574378011928241272655487411917886867657034273330740451887907293798809374429547883261662776475166935042694405380925235089554815581213114792938045773774590138634974967840251866889785689046364800844347403412997245270228915406420602430448545401985829393179396476382958683085125907274167427864997469410070665564384277842836192972043930322804092500078533614228554827332266964794801854403945825031356507169327260400425397118921964216636999840793685214978702240070398884834162812641764517052940987675908598892222028326150047843138758025368758292583537640286591254623553389323582065586784868193318848279121809769202182914568227575680899440027769180515241625810824684969666682602255190572892088173145004994436303717428251513667074092627107298094078549743548080373360772670770123277759934461430337181319572241361680409114219388503081496747253038642388474177311555822073091556480311332346638038671322419399723671924623771226097829038196101583549344945616780845862105063086553225175963692342862592039523187183201901621886662020656746783870709736518708216682644294305063651121496200254518503372566815443246454061205293432162187583531568945535064085070699829034675151256273605684223684652960603941667742823014317658182192085646804927566473476113390972744538223012276795781601233669614259219813896493369772398860284092136418551944429860538971668967427494661055586981367337007352059525692514725633199607514903619643362269811817146218994872354326724462067904246660590580056491360790386181385472564088901900732160041904046568688040921938389364307907394835200338426712799237330897123622928607396133030409036898939109710435244258138934880995971083765428703761003439497549962051199542749891627792516863169140949954587656999916752536891889148165090895939790226588623899237477827479261252955667992076483670985821197893421544620493661123053290434987046651545625466502649011038911787292828547590036785917363483555774438558512523173787391891788139475582453788165811782996915020315622548356953641382302403621575674600521310451955395086133311582813675958829694139995360116292430779775774736648389158781241941081188562237043153301927135695068967036982612456946126990317880736974214766385879597894718884968690855559347160908853980124590538921988102220670104416035992614703209280494776746581375304770797021081668658797583180078909245714675243677453179850176978323243616286891796576658479643150291887800508866583034708836614968079402585572768117886310568392260696355970706137446217647245671869761458804026423306288225464672948080069483799870499049017462407804946153511559805141454494126744640515584817774267829376454181425636790419168501866293898796295330464160450808311547040729275415433340730260267504469871828283775042689159802660911318722144787173578220650471708657193446451077870791569282520201192875087022970076335238681728279869087700704900986086466312298369034511518834862152661218003597339538307769260396720241580728566755180768980105266712535754557282647492629674170426287026390989852643178907121638111185268260463643028760124175546182955850716556315115165394719514506140030810505195332012599034503156059917935868373327513003497316844885704726674598266126016737242264645426326818689902009966067643432035005696538088543054864386727393128333707682376477859550104406217872079050100327496546390468540558435424904999521010228343144434629753355800998584661938830325055146374348744581580878007280572828006830883493870425079777147098154775519631633821468635261459282251928801321317832648031518538045372628234398204633910064529967642738526418618081675992539245112707801029097635329948323869451723339933085584661698182920118708751593954149384152117843597134977248179631560110454913711876134113091316217898126051952385493396861563581125605671471952783117831300711872479340381474005356885875043939388398018967624483771032498748050874166278654831437078749041158301817126882944620996428803510247875529249502474021345044757436023834451205217734732920301148888591845580958465015028820919261144609745327072258325923608231805131509052271795145294096072479193465773434605986545111628603817446737671617089771723777654507424111819367844585861582407020166050630056122281102605491649345721561163094396374859915221613887210284313672911420864831083796296288755009600191599628414066967089750027725812012722841980761477170207253464763421551047632341056707221381915870129593722893079055701776590560953311785456599473341089932172343559711110992748469562127799101230169895176397679203269433224419665420536332347519701581303522277928598531349783465489272729281398949014695401743187529988153131549515088812186430116490731647047677676612113503097322014780012163700728660686423871095217797585436849839389467264820498342782292719108643043846482184467126024504868614390771132209370171738380205673328996449112852887560779808697090449286314937453164211324164355340943270496735878283934285516939978783634230765859211285244167580453289304171158137095809337309979065172138959400426616546904880076465786347357388127480262909049140649345392685106234032581412467857555157339464706032644599023897459050980026334819246666578987417690612869889643846752298130605330801522769977119029648947345070674247756389404013993554775727248480257786936245629890191768113263779278774331311862396068781370016296537923809742871121809896341206351029578972499648918159903758317464591639953969643165214909317419184070470372273538438199331916966826955594220098948698334637253571300246532811731210319821010111649933081851603559545840813903529504652884796912483147081864316652952891841972414578726296734607117161388796276170479846381027249498313472459967532900773453131489592179933743052891864069451916582779806491007922155028593020722760724930303962101792821000219973236788444112640350306046602818231092178655362585303887900921750626490372842102167532023394842594126511240266356372303789735194170611765757686125590257852623870764992229021432299482768134323849405766753797101001022435456981114662175312266873718367147820526633068128033060215634678837917525468260122268199051941357467910522227887259873919015291277761687327731037261048298467186969329077220654972556279463429769306134042741741123974806631344409933702939460791324115197830711632055329769980712181192054672493535963517955618734853060562161807463372918229173561576878998234523777881190211291295283800898691723864741917446273890944578397491907698257865221572600282271095187774315539742901009091032215494405033477488406658227331809862068160745523343763169651171215996852032542582067163309816267722428236081136377333403914634915170177408004563731509679403481506551843709953350308133927847483993297564626505746059520058805164476258213078364373360888105011383972043159391511540088579624061740703223627402017167001761915032010125077034047601147503369159828678234747341801368405384336859181612313735525207706104258678317881699326502494756243684151153781773477999851194805480722952090782305712820984827275232234443727867768848106198198108101466883073526312847039476207301343661429978174916577075976286349796400084784134483346337182029610477235700930817722737334781755465709271185684953589889687540355387175381836043338449211744452073301077935080330419633900101535517580260712217105707453500599809468637132445637994899265896329003744567145175721137666952428674808139371270969339393590379402021496319050926786073420726959447632543944812911167412784156806488562166604923559403263769269595625808392384581936311254791668718560129594709307480649262650017166305881868745371826792176444584364218065511284122608238222967991165603234837181943226031084235771892659173165632991218688475795473541985174894209788854016559542777794457916358904558617107308882327015184106371354424884683763797770218253105590504577019011655301245748424198863617575295758555996787367579487424247306105280191657460237862281646060961750388852781892920108866270188104745363182663527292731165348546431164325774518268230023128476454458661461545191562608120098641621974061736073326232131224346526419178515055649168354866482656410171783828270234061994215910981809579981229847798209354213607800899044901858301654334669033685263743979824390023125680068205527448040852173279001151398476132275780770548057499428427225867128682853498370413872057750399954733554106453001742587568253954092585811866023428216008229096281900704791496680680643320477446635342884858597684541961182741470936010660716140420270836587598201773175709091108002513721631763205532519436171715823986934894860696542777567322458962728857865419856011745767108628043826448760547719670193148247462334077572380278336365893535536485615579157764174807521025331763937657937860843843408068532594725669578094955483983667631816734769020490127991425465908642054878523002641716269321265670512661719440064805653181683223203584883457623478463043871113778857150848525121982342367998289286993956707075151062321561177127819234388705252732608139674393040664770633998837635638108554395280469537141704336878090815584828932563739508322732128705110927023961894945629815884630599842504110734660250000589382836172778674902447899149898837905672188461430809102497307640333135039442171946050373392892652571541855800697993427041387974333398070406182244646940776276798429910303448823315430757531480387526710990206629273277905028842647016077506552454673151400967973260342316171729163254947199179471957889758371623250596638537788691127726654784514808032742181609987017318587656132172715461446500246633117891949357031387802433374824855958522396362629512157720203555087055953624072593232714020714021372463422442063944073857674685283853063329504104859554444873231766898419796395285488848457436400284005146669713410164471063110062436687356930527189092528525299088164880383256880462440965009111123019037511846550782984818649906797990972907394517195030805397773885651818000699839188319667031332139050829839282594892038091540823640411392855170214510420910519617933923875702108184810507623581273189974337273998735712001236041986775324465308476273219545026622276646197430332265666350937057074443724277653987172764245790160175241767716511745124378667367763717471084585025593996430421553772421127412075327855360044832057775273749114324443989014236768803916237366535685968745387312901191294761432568043489954206797220843799974983819294054726982730163180002803708762337074995127710680520435193040819026639289641888546456899290074867734976197518867790836064814164614445051592578118834791812728396255411349647252454922171225930192374134697473850682138531185193930857389620269089640227130741232191484242023470975886970728194328702460790052176266437128780566525389508523428103069407030671655208060929698801278726847811173336691466997347278815557555348648090316478618492822578594928218706112697623261564121007243588292147907135716198061342017756473423870076705084455898170509580536761538527473055906677199215838987079361372258171825354562011972173275947580446945333182305660806615715845385011271924299970057667463878922867180345606464550780369945453536156917315499283435492649252539143483419965098354380821954191594438459549680640314340648829744075619216552842544421022227935945669946882033661594544774779578388291924939409419660698234466601853211524069099494595551813965820366148532445529726640979720729865823615839543524416947127945524672695441342524367030117739177916317609318107332781910326322603820123869037999390530583915164770180279991267789920680785105703392456423719337655641581195839531311758169269453286331540688636529915685579594665770386009042422042695570713994885258767605557804765780911212461458666545937217924096381690202142888618803183193815852076756618430843991330436060267539632642642872365477992718132733617789555314484863235204210217969674075528223878386928055109127340818803387961781503839521668056860321838681689873242450667318111013784731324895244673280735808251694473103053641473331953165507019397207679447189200500501046957036701781872753966080701094841407879290743048873332273649194788640476995971494421566331813484075985972587052635297993085224597223213899589717717324877471026337084367771300701763746581001102832717011893904053686643332684203216272056590613127433524101054579015638644147107404150982704601422411598805507436915130157840351493254662307535008231082858719917128514309210406293842717544667483552147822135256584663227742807338060946395558549555358920648822882209146541092674130578376357289645632764005951569002771018488423294961214721112439343655933984989750415480028260920191656229840757760283566719748430382119942913823312811648895516732596003470811718412789388859404126105451019373693126912188719855990394454152029258759972042902702625915696284243701477292225716644450707562950088985563679493971585831970430029160166585296407825416748910961697413254093661634610732725313594189672171822567754919464262910822436104835110257550759712258223253853463468927937036314725309155144871267581566431134731497088156503686128726998105368833032804956814284804325413970051129433997363754859276970103793567792787476352802042721448398385134720807417851365567146832606885604807497599258961602990468725148918209948305013034726690994577354558295276240415776546076246517617213655208816122144453338436975444032375765097918090353529682102108281783822566762822231876753660526327181642386843902597249001492337727142997022814601505776716616015052156457465059489839433210149203005333875822994564406832193909004258895410695420390629061740919009015808047965573068128940030114599245697855629836357619330859028815009036862725987864691389120168449194850803622981169326452473783154456608620304365051731451935830256873920896732714167851398927535937428427857035691254126974018278194640153653618975829617126544527111578868219862564882723434470114475620279986322750646827895801951682890120195603954522806940811859451950863088073392668834615686146874437881538246834310786509665861332192637664254045745653988542269387638527261430593312704620230521459110858110015657365882421001975665568662928915492426548019158674417430022658255649182004988811744620434507083741335235862015784664445854149380268577244464166768782213377991868052739342687065970944146844454389723303318659322790527398220833395123012144345431703857339575807383766783953706317409864275531093106793421845950944511439252292984636949060048822727745140174489853991168179924308768214198063940852295127847864758862720068311441101523535070195175340663711977106186349815883714807616844607373245187197443105255856396917904871320668160096829757862321452508193228130384482577020355685639889866505562299103873888047745258571923494757357311490340652102120696490120852060744699624025008206321983283898567826748223563303484667407438654469287316248847407470593004877837392759065340006436609618027264643068690790370780230017235482780350331847417226980908647944744168056598280757426568398931846800660829419177114469224181339537362765840203807673297337480846292041592679393239593510765913668662517035999812973131852231817488324486781327026962057131443646190699595153516253864986602216330405638548627005048245465256988554523968672964274589125054614428501983745233495151594556758164800591038423636139496498338506015305234938295715098770723614455608927890549445991641673958442004697850495443189955089187556757547763337192081486718106897021442939959363267846247923115314781660303824345917626745105002281016492662276175576495426719412894103890164351886367674429658433050900445618552557315082998814191208969660090017504189729716768956843331896769825242928610460751566356641208859127165876426780352898591798066195769874714906162457373652525328984100470876246770675306353734807538838373408803493353950208295050482932227694596564702189328782047114549678204859872311381675150243993460131309313775692218092064617693278783323441737897819918650166072803688162746165629645641417492233459629955471107904638901448585138831763231834030566247312274898174647116219246403797086454375437713455705322321841719894469747433799691788646128330514418624590119318311817670315133491539889177322457238984614296662312382659642315947978210599529594473828039830328759466005949709999553237434793186669744492519417174130353183639734486669235312002921337997162482852110676627967903687804732987069205052292141090379967881374553880123256341551306648118835735449500553421177502642956161711291752043941564263157493813802424685952022059049749821907090076532208180733591878102600715525729977809549249508732644344360476814671699749185041189313816487463214628507761437301809379219007236880824361759531620067683865395545545360941415320268500854845046053615823459001508879993957498165054245044728854512783458688766942673618695552224995127576457801334864398474899682805772295568082533227388711234662588457699292736780368139367476878385801486242093947371219265391810210513162287612946193091968388165815219530340327820650456807574239689385577809052882328651501622805996651689437624777463220355614993721705302805737854735115646208830877636164630038025632713572486552895627909898688185245078589207216528357964238958626156412111568222022692623765790673362158053398146495921410072923178417239354077343236530203373444963676942495890866740118159788590536298414261199206208864865842776293762135300280482573976822124656646026827260883522859234913972366540546728557422023019790282270575527791651887166605151147326284651724849228116470133551572131590996644490339083293725145605320922494242096296928673577906378169868724303824711802442164397047800022885845599579683194107139662836691106569952424290318454665864737487369641846539867692413572086852078564972210053287162884987263413596867519804501134366263542144292201076488909940570779303611491825035509681944372509063519424838044032281438280583471390422432054001087230097842697773420989875416262364739104203993208718951871859481616863522650603342854475997816954674413780434157260137899683315350953157494057391996100909928496892805588249426053334492206219408863658749529263650169734449878546810669961662152869027910893841325231707269475567836563482642723727030253026192405424920899436770635204899128422405043215277787172647900028277288537601022486489947366746684639826391148216997995535727130973014533713601631456497235810300477678700010302629414717355856893140461320825557167714264585108226388022546566813692260334601355016591220355539778710162938463576307372340355996592849829585154614649325167531315780052843224558336977925238364144206124177348572421842224963384364177336243520183179427123965255810797278449720354419471497098886347749751034431105971290843988592539183063557323848351839400228746671262552855242649963129828006802615990297994445678289507037014407053197488522100760444138015847786606977152089836834175597115668747278311591243163114310034464685131340138258912404415571703263746169574493299080692849538861237072741232070001107407423728889916285395299615419859960630701148801092276650422701146353381343992435131130319045097338858496510247864011754498554922740506562619986155413599751204881626015897399037469429940787620696782715838719991104425730088243804024318607487858155478999498984943009272781318533182292076065021962273600286145915508528412745244613173408748791723053238416760505556059637472808160740573708180179197393407385214228402104343067377260475178200696838504427933815952224143122763051831058143525373070113880859796674838460651727527899382865845755540357027731315966833337320633566518542892781477097359524302337865378790750099537765875421479124136935837871768290889882573394376717425948018374427550042221783550545135280429011746499226198862199217389989018204286416542691209561602131550354967515823201022821709678835787571911776157362505455852572815465384423508421262339393301447628055978504352232829799227109484790984896946627201753810918674589851901864266769078877455437372978309426215859316019121932337596104170476621392977282452925518881002031993859707173981641190491656478088119349246826010335046250057823063935791909718775629708054038080150180797695844767338188546500053508428043329644805936293175273234199279486563292896978400734175801461765119767115592051475594734077237538124491454539879871347683924690196719386339338235865275843054208684437259581113959402891003281424580130122129784786153519834182560843889899424106527542273316017714885207619282920018660021916542977831046157581922753667889613783771918465081642590691632432165423938128574360206339200737755262622001628906651161027011434256945896817594653189987218482781443449967085521169403218978504977327914012278399772151765408401197079995254403851240219480342394131049264381041732233526025458508244201159971985655229282569674153141688014672133975508917772284150433918784510189978655881911479912256463965591149679844393397788135730806170322555906790332100052692465705070005690433721252566834865176088557252308630965017647472852408779898070567198811166449277547660716231265961186965140550424306005433168900471646861496990581004415581458137679568977284977513778315945101508910366988036064213732981442487025254598054247699791281274307345503143328176632946512162916358817471123674441927970134196701893862856531345706120123033779402064903871775553553464382031738584976092126689951933322518585840228714492333645408637214426453746936248108421251698280292908938971182472960068811915976973781973456496156840248312182763633160632065499985589444915957317139715152649548661358376839527565794419104088045729057334005671371591899590544065186102804727844595621454699263178274107035555673488541003181748107211171453237490678561250448839636193124264681071015779248357295918125325399915513073407292655038191596241190622776428228973229201029178003404454473568107784464082423096753981292045637755388542168729725915507176831448982834496174151716557437668777673604110253817502546673086111765005894499152606137569151940274096772441351848687027504966475463000550898415346036123196391357725603913130859388058781530801493721541099259197161553926129358247013494641355428556146968338107464027482029286261283578411252500932340521212697629548942409763591373142127559608885904448751107577076929219418488393566556680620982073847263803149388128074753088291932873786092000828610464901729359312683300348942103453273706240465038718676622155265645924076606110215560908444682170019277896200070875587422750750280880004850518261061149892578635078541204277160470252195725992623298772463812700944382292538954289798431538874586126590403449130337612796541089619897439726912103717066373178960462605297148446295941698278231638059686320260311450246353931239157637486942008974298455827976529530295526989356385184422483694438764619885297362161743443680144431968756117009623824643662419058053434278567480906416796888552946495712790967023523921564530834043875032118732079866194244192330591695408303212318805221542458327967027009461463599980128528042216206731913757437418607746249766262168417841924428169357957548047689545126382029127508326024705537696438455183613465271737998158545848812159140044836588950641001673921682596769454097185528503619723292217843852788493692360824858500755298399051255766473647362333026810848689458808953381823387495110715033668042722469187572939803162381728621305582337349939018852877894367950864817167212717709472615385585532610013220190914088448647410455507277086768405630377435329779966574301718114154329735474240007371632566832320318996139538613807328145970341005398726502479387980973897875856006425112638622084881331259726827520064379805506037179665560342352298689443365999979566140799332808536302048437319270267869733575049128717628703523081745898484369220041252059731884780607527997500143606579319384254102425790121317721995850030628818663961948133663976443063688961643071112472473563926165421949481695595494599084940441722439831421486436263749337731524754183596637200175693141633177692726116418057958150761388943701514583540405536795160113028487385477334970425374934374873345212377929777092850704398982236192331434507876539015454957377163618424147965428948084232055593236690330596162341506737699857009941698963714282625572008908964476216501754251012155845330494177273598854879491750268129445700075030319807210437751336467991574972210516783889132994492074873608107738791287668008623608145283454525478909604293937851493061142262776193926849064319686319803754817850169410967570828593623126106949679756775485593901978685708163331279763110328068195181775837887736215951390352785823020616346909196889695458408441942813794162242391534285942806402685761488720500357770420484736143825493301058266039599189388028653693645119143336232500703882341903199662166620393017525301117751704779557956157101780504687978132530728400663208601211690870360467526950359810198350519080009472611420629716425312717872228463870136885942175540269028948381976383282598113840838568106382324847906152040849460162597273899375708943534815535972373022400933879826449415206262307134312971010581992065896909753154366929823117531572802065776160176818278440575772568675812508012562659285204071265723836905563806739104107682942019091340672304974818272487322843400146715640470230856022188283576411134411286362694200546630188401818321261651072171749584539409146341038353256861204454111949388965669637703317862926859317452058159370651277773433129541674137527777529177217292044738777641254745796063218299025459936306534770697839373111305575149923746508344621890328096937110273704018714660186812155905556531622018434985666439464959960297907222091857646662558545597647712724143444560747942048571030639614354543827022615547668154555111793750098103710702308529001541841301635112822315323442487098978523198663122043336575095907905163982324397932903835735678248002913936772078348480267190257699949909894233675166952000666742170535164710947308069777678159988454663852286514184210786102043893902183770597877265372777568023594673573329102766276587080007582785774962514533112773816597346060401615645172081350469045763544595205898018060747833105714636655778210858633496310051167468780242426557321701931826952447760293721518235938877405492086777543643381399003883651349243294592701020885291368929006069716069896597215663315589929875891137694448347402003326812525535709947480589591739619690510066055554659906774475738907887793097913917824624412963093405912733793802799413559280727664668355154779775699048128947874715437246471895095829148145933744056582344205832243974182278517687027580767901738083953593724708706718152104340077529020840807868820592354343252864733485870672970826805237283824744426214146536674155627498035262968966177463943976107487232796242047108853533646726440476701270455478412710951418610335022843910001516523034861222353813574480645173350476710453773157536943720410434505701719348049121933676099825203756115722249511069334659787725026784910697706352092305774485746607232645745513782631564884318986996989773274473130361419967599890169510246648508646268713921697004029071752981211435877274098154524689041199497730685468866140559605662397350379983246500398575356408904803012066209024331163742088189896503808043920973427258202289149009053368944364521959591400786904170797326295285637965322365009674746951106043897245003126291301959275267297062901421560442054271766365037554653891316431667349938085158375398091945549100449629659244894215693181219236920181220308601748494376998630093120483987129914133621348115305749982409326559659979692397654388505609886583679404685771989368102512650996416695944496083599243560028502629628851089300530287808123954839811535612130106220481741771417876369791474911252141658188327687960677631733268451095551598572406270016839946652856334721867591205534776692250129018902206591483207131769890949671396978824467281701748510379999238158710165945793317519768241160002728946023414960135069629507195199165779665211324327599482856614801582221249941159479971697427168754340778251932677398298905172435873290203962691947317909873750381491833860561390847480079584735525106716880404047100533339880992847717705882272973994641654323563685279864550129525875925764449626580626551444354218195564806805034998459335361886365716776830546045748201891074656979697181195623369373397996567473403145444825442547753643438709834117382097595882595471565949789506150902549433683056304436332516660337498148722959998861873121468236001966990119916962175701567194820212097604354792114091222427583872029206142004921087179518737065536770829412643084982762882540896738499538284018844829810880909616023614274596315583451929065690735603869611882578610737983988333974468487160491172808348606822380090367108643933746313709064682555080736289827648057466180197367549239168356105526180128309172187446314763265441820038701249135443966573457176627668504676829847887853130593582511836801734709293116962877438032280931217725633032249077660390997624296388696960869117767325257515752891920476989620174729250032979163702206834170563411728737053633411819238498804886139807211699780753080326357607194542134163182831296596890758653042472764762654845681748777402116731588970007285145166312887833843175748100855586920100818032702223156803075395126311182463619256089921089092627580658979747040374495716005830130863322328992087805330417302804050531310511304314273216346993981051618623975867774273822026025331597865480074210437849018250388496676516605516933988027055802692378623837628982265822378443394050665394425966929660228049735577335355271893294454417625870842257521809098324972623386850453728490374008473123969982369841355874028907354802455244905806986143509958148719756495115193071956545469854221358973612997238828872771538050101159621737599627033014399551567986900872237193654447730497936173287866735286551494113386276397389031317863427954995228100420925802993168085540514916793861801912172317471779624068382423689001601382992750331396476045339286299270907502163775632790469166297017159344351736782802838469239474120671984703360233054215150504639837390481896519827108803051182960133810791769243410245525112532759220354428929837836140450286778191322854313333669312696499711107667800921247778935861594163373420928000390871935917953704787526005278928850635338856109349958832614623589562577784155336673627692634139071582773798637644480301951484917604042219326273465844411352388750774992985948103127642062283764482336530614632098830621329081634274708147858371199708717880865947731638586544273476657051577042335560479838917503873081571042747942950991656269815552617075343099186392164682089430670650468717986936113679419169274069511600671791214118245798134585027520182243210404557354778452922056484487062189706965994330877946828242074173235625785691670358019792284835696384535658979527353229788345572522788142770686085448420493336998978296392517517025111607273772644743925380751214234107838930151621913854655500051475788721184548248321470673724543540187387639814982305697069766852323286588246656328722332017687278674644706639287128893260007595609179575608796406373935705168984397298104316245744902107818866153446336732553892778421847376684271925567965025281823532764336685021176674530072597064010567411952725404209436611534702469301441208497220945019567951517868014721390657274740398787160152066385208812811092202992758814648108396217800024947839920167996158022846870665681273146352950657375582389875862768370240817293516304411650542761154104384061688402256302830862018117876212648677030510773274540162848071534636640774573347459569234570298211321003651683040098364006017450411126870106181378682374768595661354059485937772249541128089669444023786626028340249101288326281571645672387958418468016353428673150163359553610470507508669840231344641685542171860384619026920857945285694921803510009912821945250771589949809171475371385987484205600717687709319541669614038594832372839649275004638930793133956631396186069842749182006190975798706347700898176447370156854681263731763199111587904253695860051119102295397774260501699376665730512756647234544671669272288360955073976174327798613634076340712566705240568348213983906769229805099127942713819206898706411137944518252606926618268606663057239672364116001266841421791097757311131466633115940573174251286002829519938951029743247749792725783050430013101682733231825524850797035164583809541541276588898989962201603137968514917530822006613358199649056697097123015860072418159194626331368451211226098238239358351414483904950316448594717899508093017409701482085276750362014047130526843128549803744506227333047160998126773767062421052991228073631247626896551764013892399156916670816608831508569698656887646289182453711868724879979147542365131264551591607813727997518637371572844880819772603886292731132452489780153118038977220708667019992717269873489169272891450736023869620126664725190127665152037333124868852463629214942346357422642027567671909740178092998858887391146350561148325205756721931632080751968326788251599133053625155665615554172911830837599782414094022105190490271994316397432641892939944213273675775652204321586854852318348283208003033769021526569885739101548978083267225780723627724471018139938535012974602640657634038563146247892511125356350985111468617205609796565547321528682558223857479023802460252073582371734884239564665654420551128636766432936547365196833434812004669228024736068700813407077398117574271524287571300394130418149734590692715089370783744109390445466274477107019179118523032797510643363961161285816699043535841368365152966895388406597591076705167348159065277610957600773985703885092128405354852228851506485455348460776521627741347310743972307686152290069225550528378015621079178672382996614356200496614489859494068468019843113679829539828652089397212645982967838385820269733488077172101977527244585902637359925715110779542137186175902879166438030627696008145722760847441613140344701879935139212164368018405135555870529628760068790088999035457892531478980414116659226627735296269165664556445884588928909293460973609286272704304793020275185725730132043030323810126369636292271651373544830972226141779319564084331375954148557922246877392986951596035727967272420155660429167261427442798114142563884520461978165308803718991897671136681417906072852310821254260814224851674755134682650344992476213449525535899988812865982220106548736634926509278963883245075477610618003187451486830794810444908544817269033620161136317826564825659586071483410369611443912096569021520416832848345833057742252857160042108670521486822655570507314817236588806073879559403241416994576341345279945066017496742264013485260732861288998725887729905452060800215444438444761653813104800713644762132082571865242394632358864067083851282489056947862404099224994460702098008884582225351984588329937990643982114908380796524887358827853663674954063835590599523951008002027609431342178398194090487293913565416765264748528647394284841299268614759934367060040177243412869502694786980689568319015991385224491555463582015234086722919317694800024018479338270100675837612317631582560609699298491754608229407244319679502921412303767576916431005866297324971216863842932667873671527757614036188475612384494297057854788121828103034855863689034704831884173077192744866076874317302129163620729244783749769399621970367176044652494697214198452516895105891361676788111400883397403038163604074824187689263851375931541002776659744906253466328495804396421856671703684195012407314149493606461600795280138658211231958464430066009103067477524979935993533547769071509906871047432972555500365995552875842544934312297873096032337916510707011710877795058033246286787290321242408808684281388674266981930218825461611237549822393149077765673960214792303725955112358660595262922630001658437091850231160657942290982939988997480433135396499753356053453614503115247962423890992809566692349815755372049940587665489253016623667336954375596800154895109240126687423093228904082888876476125527910287182393227947856081643534577103774998699633718228953586458185791771797091864378332837897730626945659259505878568246051683665899864866030833755281368914441527843667934122080513919617448249793710959395612582136427557900178256436769835396458269931893734329556967527899699606017445660681674072793847840838182276975333655470770478414893140517947617615218350502726794797156959683990600181311026679178078562810900060618124052098488775579239451130919798773898656791970393655554648041389052931335582937072376445689297734682033243874388869154964593191167813805255062018753670718198963724800280623742411566976158871161544426140692125116823393071961854988303455092514185738438580160128864477301120933333672638928578774502457791247711993036031737884687387449899872310749624058746479351525461422161415468668150454238726114294104111233536295951372471242384866080915502761254315534640533428381463339677517652174176760249585052246029776115619639685111262966296738688367792475430190139813507517471111029895156548016504551827197181350335958146150327629941607664543179064437738830743038959448434015183517252296374104966516692683422769315414421890198059762325219042781751453596752941068304232161656283419420340846908036682657406625270856155574119794435257859703950962821285149631204761343181664830409632278071245028409442004262765345167186015179591170014609105397004680861571962079896668477935919688759709610227640599102444936704921024243499546701527432146380263632749493548181790694712608692151894962822293795045236305815038659393401528464614813634108423038688104638450905283478381018641533359478372079645865943198454767259193904847049833948704370931751228198738081490487177630469059709945223034732263972563520385401531615297078014921600748504153040157463180217146565089643062667013269182365973104507298821627306350106817227940048269451865078190509319039471728251497485053644057926672670598636100546619084960635035453641795451966522680347126003964279329445660314761158038746552752535606138921771050054378977996562437937258891070378914330763445841736174257440729912646106354619112518582315133140425432365527046467583975913322724067912494415154896075610715306814391270671740289844503542399857809217271655192288682743096995709518399393719049511150543656432590904309889442087464851846667373737869137674373577997782911684361028335691013397278395891314359867896524681092388775702172476807752797247825340255132400524697597273079207744052317864204335376800059201263597443269702029306180298873504831056169649760735009921919686281267479185298697356118136456664629402406946297680936189865598277849323800569778292366460955623833085610288950144347956040833726052799707172166088808224861687743606327868922353305946263371427810216026477468674579739908222489773915616002307621512878408224831060864260840946105149635019365411214966949975976404018305423737429145369321657721482524176904459282300309011015000490413497661540317222751729094447457787701913378882187114856263208506426418214522580387171218523740894508180447066371625406857774364576008083290366164211763054429929836574747836162888302718766378955570787375905250231318124902359969615750645286122229724870716387856512474027525925932080079299930107415197885738113525105069518813290634574930980736654535044497872565613407680048347700214080455718943427897177922836257048672082710834947171235328615807845122216058227364776451264180926414641389458922179494862463023517261733264828699407376156462390382070310095281558727987751111850893005702694461248574007807527030410735319519588938342879848603839665906920901166652932288047686258040350706960274547629804508825097600038512514243829769719733592119238801793131692435321813815095895207855338503916641934084763930440499079338627274040559736676414589739076791198649798018430382561650977073479241057095580133051475865476603126868288419232984494836640150650468923335243988046087394928307135201717582856395746160015439213375333568181936016899606414389140063189546701099837196216806346880843104976382405189041239414489660081294128450563556012816011558430203336306802092064711730746480869516750413602581738221467503333576095200248519392519573517952625685440244620766030445926884784401272557414098342610887075712635586841936422907994997776530643098268772132899057749908228519987404851233820919008638506077109850138367337891253968103561184577746142491872617385825735475282765345059467432283509731184735921760544303919607551932531552669150854635619581203956479599790241548357745881506276489328732651170715961596704194630510504973576213345266231755178333468226057078426978386438813956338793317087300877979013125285283245041459644102653893170509212241628614434554874388515977263085023157475087619909228444471851310452325848827937163207830172688455521345026330459193489504032982833234656088280352653318631091962701458174302801400604826039246873698262704092073382839396428156581919768333828728566307469943874173082265042305878778546733289140036875687224595516003264691589139527480667403056932638108491383706022082931213927207486072862599862675450340520699616640519105928211351539587571316900324669541780389126025050041687923155393967569330972093642370780364769018313303433936362681180174128692022771213231628897585202985081622853341134960026158047336354506886114855386369309839768267367365193459994312338973726505642144801547878463498429073820768957919972726604547158235154960088481876755044963014293671283539744202237101421707119485464329543526227689484901039542744516754526220398092848371961355213949118192645631881871912740318402925456633744690840689406598748832164822539773383470304518892717939195836747115147616039035847307904346825848332369541294713648219704425666381467629492808564568687623840417810408538511930948325284633748655976761092179660709296675963993279801806636020452210010355689583022451313559423289145904858808382539563404871248071968734500749442985253065399732143526344169088072044454437152332280763898150558605530903494580855606359979001537449975332033189939957061622601955793582592010870350190659866537860409197629549148310660659957824786831474390993640446855688920054800951474822203773084131328503476668808324816660241686586423954004833086854387657470177618577327034275746442556084515956769770923633753502754368641466374947697056032878084310186967167574400433423847737665963973573223943174406823880773916117561538092402819191841173416276962871741017147607206059651503177520809595965120634973420384760796275258894843735113268101702785323286233996525287600053972355161773123534643934248685296290333861584658170221575708174468736946419287981436741311749901149556765744126404098288678933171869898667127545962224359880002038523156731718934095609792881866366846676737822895337946595979561899258815483926742805287819183734759817035333604163599440674698665147753492588728149301686336570038543376296463289749447206902775277240269116799450236010984483509314208539790941817478180391329432540925578985849306299718059901854820648385516837811459172313100227994392943283136117207980944692684243929243016326801174362035943538287078243664627160795647883649552194275736466348430988968621645578974756368725583563990407914865681706518175490431140310414841941855187051995781580413057186250239461017676811143070166621577912263607271040951268591492043200076029728876841229459717342518535881654269088756140746665493591617394990422137936754672360628396360453526675601939591382096687562160627480463431736465869374686071354287670358672400006061894552068605757926050483668292558185023035374548380996054614555945359710254331841961283905917903993480588790711599968694735280963472588047404248060263124535301988776486039712893992916718323973522192123937535747600761274036837398012132102826739143866617486840529658192795708781181731212914099036245956011167203603765521554603042640614518026723050665680726667446899592022271459583478846963190877128729325150088003630144368926940292717615475542044576290626824360735016922175315257158855788112065220492924998579486102049968602742082631011303117748085365082604002400540634413288816815974875729467235903481216532593750642939941585246468823676657134979621730907676275805577342571449282820942513674049410935693243234532482752570307740896039150998652546905489691916885385556770109902817915610995896005391880752021716283097628383224781016769199071476647588288560321486136407342029652293429081807152316745043716031360097667849554410084488050308077921383578216084743300772408752980536018019684091114708388370305305180962193520618536386002725126236606314188418677043127520974297361130821411282028485293393455940990445074110375024160128550058573948408035318203948293793498041784384241692971086310825447000982633636351954236434133361942706850867293325844915949777417096267918697737152967021687581111148609246622587210316940372614685122951332082376198505075237953600784081655924440595216543617923582312700406434234676914188956266944758895719139427447480322929779985474728561799876406528321213157550689501423753788695271287249190761927708002447309534767462512349413433210941295496846957524835044683983989324304925818642531585732489204003296348984741788294100714576789018811193971928209084869994719277513780899795899012379183898389548226100367317438591748243800369647690922855257463100768797680545203170389760720890736894857042934482959847851950992601596695277047016409616912067946375212999547487658909556321339437168351496000721626509922783892565795600152325021503044625453944731029815799359015329163365315946372813231457017288249788805350813922985707464704198866015627064654144456675823254704137083924388012026727968698257246857177297394764612406652905586162034813064596030782497055751822695538782183058444135691614735600043336402419511151860723021360068536225389914940127121876984131771908168442990239685251596868512236235657764550207139409491975324650293234879319030351567034436934252131144840105081334576266791735215856517727457437161700291050239979644213334373523479003288684066882770972615647487445991315723506868191564714849203504580004384929891038214037967862379202795037811066471867825344040765870522295136611616120989417392255791513696115829422337879509957378942378095104338081740362075570287774869235898544513874275149681105457291031918048974919846104607175662937117155771904535364577403243836284585789882236771751228483266022014870147036221155203039529259962402457668141491197243485340034983833766337561936574700353408739256666057871698046899311648363129258076540478509589922574087692781840180782264628821620257279301078080830317850057206659678673317355714807281666948587685146365408242155569015292361406674202994808920892810348570241889557390957491926198563146780962628907546399259136708436197014477828058936732110160684193707748885374442466819872026732985772507898877575004201355211747408020575902566141471235095340024605038299182520400653193645256120642744213765103426655478898768494708607432880996315943438722544743581201538343467650186479376630697005816838033989629563646056078095750554545858258093299990292024662732681549192401684609023438926336705627009878751744317119170793481661616922969166437584101716352621324098703568422186729539347293794759879634731499302383774102705009764773831747212664265463438346123342732125371617095390505074442805297060854691139398530624564940298492154749718753853830956728256973081478137943600645367383561618494226320714880127343700120644650309568153977881038613015347163601117937472939292918763640221092440964994774495035347206429779557320906782041022483372962146508861308660979480994113938685172764199024906683573270861095258862072278718816826423974837191009241814119687390800297446400176976170872423897415396329762662400625747796705498526956650299548663358608555916019853325979879505006966215940746698753796717875952770364263221067484845447073411785960354299664823724124504673849498482194803952948617506609288951656029916964004278800496833708557699574294827170896589188282492145911270477003972427411941149934715310022381212291354276836145445779695521549172339340024309772631287349604300124573466800294901410965623127499563422410109200281325667345610176315675407731118257524385591447496470176295025485431172516038768662308451398861954169252896700117227531940975497128766079702135151845697857714859915769009896180266505994412194226473766961975944319933894480730223143443867301204661096251226012250186067084214170249612017196406469716859990434405278588480770490081768482926964178878098804648513525497119264388679623156241436783401977127805730456250229575946436125066784685735843416143170900412066638441669144292520661067399108308316554783701578769039897909795745963191437031978431151395746246243593620140820525537325382744797120049129997764945275154303018352600351367273357463677143615368791842214025287190044554814654173268420977042410689072199240719545325155320893748447639144899365441914727872297493498388479163967390578377146688204510385377141965212907169088825683604656623180612384013190516642779252392550783896254690601120161147713461502112687673924761994247920084087633428186485402968755847315892188117165742788855367766959915913518438895838945438671627039043795450495121616810433408703449106091988367408069655358520699541822976595454191889609129819584016512468384320094578008255832314529848087555811331210887088810770757923613668969354589631604489351319550635556312731682206050681643996096708481598594268503691666542158663439545739995573493900562285764433734401831840458581025464966305690074053996069780715677165456388847036615429084268639015864598461338286581735154168979478066110452773570334286450068955305467928847239297616704495938892478973130882622765037248998915125815199566111550663138737407976518303661854878781502417057829577552213662360001675686911708461801752566667321247590145864225993649300015784768942967970032566154724435675207730438824461367089477806973191840900605568905776966999611705061144416025422999837010829481304326604327543321758127619040042682981000103464820231395768958120536153974352970507985482937264499775468573629644484128413440449802705061169120031368359063108094694300655131154403061270907809327667697162977032667121806574848534544677122252726316569476499536731692801385041434134660147034143929676311475614977791024168546396154855844954095410876642998972097008979108780181711649410006591541055375276493469186318724208277656154609800739727689920444283463234566543574212858266865221656039372087736630489837378079260051782520228594453110071613897020405191006528953050062427738389683748931672604450823242958076845102112597887165211079520141473102445819094851438213948211634768277213933688377157390886092301305720799610949418343557415987001867769431417008452594267357187086256805474067302811745403128140290953259256011156656005580301103319706351348476365041670864503472273029644754407385823410052726751987005564257449882070786802445607514960451795027321841798660814198186337510738260640547832670357285602340091625557545983942672509769097843223664400981728429116569135629470999249832220666058587163347818033199512688439460520087927120349256825566967354987239341209564980796056577429504105909091030477695455972069326417757080394447228691078696172431798910558850851869900639254369755987834494057814302504888054079205055099721975204269471598912509124022371072246122373906305140619199776172814594662145144041052418410218395179369469920460772543504255929334814477963105219880705162823920765376494453430189469704654073531916132753721724916564556989470922299371893928128423255416699931047140129464999731974353001315556617759779005464579132190789536829509102360107597458446353790335547251302405779735377925362479348357164670582903953382815912603379560468570028706817514046922521672717108380110528922508500006805577493120940048712587988311193378006282939385077352672844990363417162585205239581119516586963673794375145246055788988312217638966097777899916298151080437481458222294203491240054761896374141805208978283417451844221249872125060457383715757258854237830979578957917421521107798211453993233448895058870917395351644651885740140451546528059910502033245862515457040466634511281195356071870551995178040561709629168765734349256776859038842948344543295794039069825778439734821391240058100948555063135349160721270126461059846446143284943663035933499056733383799406058396941460421577305012245392948677122026961142360230819038742058911940485134664395806372346097867189882442475668471232350945454411387452893018653515347757133089044150026063058586279032486308043461497520274022551336469957708983748551667010067083820262443341453226856387720375363949305148981234098728630929037108267605653131910957985165178674628763513978435344328883920661870035744653904507988501269151573901452843812458293738186271720675631603784909656434067625878230497342395381580831482989726227940111150926047116561430509888853444341787743811750154612980119415262688391948710156478461811768931107686974592785618795161369186760086342063482737161889554131358022711981317504076681976875771361663077516763956135957320149803383549454051827258990152226302459614483353597475818566075732495303379497817626107909698743298491718866957598988877439811370195167710631399103263660730908573001696796028260330073271912040821858069639727799639317189422947761832652311894832906443673790590159383842978194946494304403063831725614688742266390626775283094100317256837866087145938939057036158063040539698585164174773902315590662770643266357086659223474563798864052556477595358812425874690715438255264800290398051974504049900128326141846085879534119712844444560153445000534173978679887130707016180322828806890007637282806844664800976949553315583510745170695181667312370468193556353472363874407078669613446951681575809247247721840039171371776813136710168679817590286713691187987444824025066688974064472478789689411836778761404255608166539881393448228694821885973849802774569557307057711589288143315744214010704553982682977777955135704533232749500487310655003754173838701541606111641565563321677710453356894136032044097340792902585379376515077529336940048190130462542392512542021184352556472865514165941472109585955988672831237010102717214874608550718843068737405894435419907478530187386564538978472908175629194369282900480813857924550073086061470031546223793424596874758286351332242277510228357824040080472296240888251627741202173828352163001183416497706840737427483870051487671694911833973620750881290399832218672905364367963741125562914074456338492773185106401811257691999356978766674475857516867327520158901806613779200042901411239828390104816814509939899907066858078121715843127354694983917811066937580458682721927121935017493095730886671661899430889944125974832756516649601666160433892468190060997208252183813781341588022799532806820333256148798191483156216190063713425481295653960895157075804338520989967282391828009924884808966275864236164124557693525851100639171224922225510383176544255225542995329837994507554973227956841614274249775015451993153850346197218768043911126046100646873370978041802201508401476778720866912481915984109280562306493949931406961791389642365162550746087137832158271974195822004995621281728520870468946140602540507046866520574096255721900293229425635491008595538297222690418762270903919184284321767803731856434774166386981603506842267697648264627747735560532969134992144578371681137866149293703108622161230046861307673690217368956249422774445405045472341674981458284985678488690650072163722221845469306764321612581922222502157795674391245223453863112620236491786943949143076812395322007753166106099582589033523722715033497353665420052780280252853705522673271158007792797669485962531645152438893954337135058306256809716072283805211819535490093594623783020217737330766180824532780294521235889218820268596089869490159364932774196139974470355907976378715185513822236405386936756631093325320135689315709048108681975272923669797149827790219838701842739594240569957478524843223719030399261087604866113764446124061178586435256410936968187813098449566051231127653676596507071554185448507663622433417606175585685777381416769110193393485238115646809063470449743552776846417672285467401227107802447329279492652584565222981259696321340453065582449993981530218112096176119050230053244917333314579198246061996620077165748341123818599012864390493521514851397414333974965731672504743277556455277194233585705703574373302734472617524755376047437596082009019525172726200269570472540632246928014000703218220481752880730835836468929873367227423729929212453908391128891464212293789669431165585491687338860638051416165408751926241743614951939951493635878644182105979353648227192001274282694563661019955574091724951650472400292383636742745041812369486436004604672371087784136837501025955887617234706128400188352590671719893849927972846487454658359386164955586989918620468722502665622389038920545242150311257841390796649429779762582610246954940688148497708255506265130963326131968016825654077563595614445636085497238262326030539865377119236216502817422616338246763804109543060163193265310830356983945557978654102298095406710691545806391097991887974416598783849034781487095331560307387778333062213076401628092951484626311647020241448562001247954781425834299048337136792410819095841323881006008854145629912902105271833328595501727736156304707909760794459522359870604634091479868761365972560318566540807972379485317020373943737129039741116784911056041727724361782880506211785935973607671725850015767711133210678440561107964654852349678781848492925866016018243476799795234460618563286465620002119698183677127979869058908776165212026800158287089749296626441485716550459575570500537299158100240252548269529605934455839732236355561480351092338103960770506364855965209995317809048684958661351493621014577465912655822735779524742859931544576525630897576420639299490973487365004784478128051585797520473523208004867758037422489118026431812792107556477954098482510102488921649173260216984536493876933484903023541437588267469534813753505216572695581287654307751263385828787167534793051354311532990078580098909130793854203534062683415981119219436072573374700128099900821167894027260729080343703956519482400236543054186506553806816004625071500863650869977299742241629204862560833251281193479371801558360132927321398821899379893017670208603485710891622618267106639217605895599954311539666814283684916002083227880250579923680970663486286181479929054001217503723471727090484468838588139489155343553150689459624419643500126432099737136665843564248849699868264316239506440121043983311280805418976682285515913523134787494719962419064243270960576706844614561036999366529064348854527990374587241152266418536018175838385570702208598861949491561002713303644597482138886632712431488500546637076459430579110693589534607127630574350552051476997066900058777392635099598445629218342460809468443867499321875839986151905791694413303325440475617899475345066714216415988739933285072967994888328416916287912287621111435005672063060353184254745614481203286756883337476159029093248103732219211845363064975386636224637028787993622502684778232626119880535294855448230719210199257296406588799777785651457267956047004270071266862235822455606090616870457260184648174379920831983158887295226294026775717560793543554322492425627077767024465238722104140597023409183311115871460024242644121664570084979148760227710299346786034230889844008192961455154507039471886210649181365638590792373399752765611776413370002121789989880897091688490611759367404546715845686064276213978705013623928916264911184283548198084376138997169177873686148110638249724814546343077616353354127295131434516498127887399095648716881576570928073193306427713915740220801496896930290790594912804971732165719618167802072954330910989704827544891400097220917602379077851702571920841842626444343182752564151962793039984436758922226977396842929122055637050751686737495723822937773562046143543851335827562699926022234486604044013266178430253747359085252565364430491667349613279802908073491341038528046723407738104721398788049975802586234276420147016991749534573984696455497293754467281617990378444521351815673083362114815814380248170292622343973363890310014009768484819169193566991730476210627605031124310610913129189068275562465291080152203547070327529647507702959016089837078680382349931970050543065935522619050592259583687985615946370830305054397279137533095323141498397902793287287566833953684092700128922742119619339362235974560099530753397590743382602491103564776465654287548850293369530912480826677926838940366858724405713380918560480311875335892644037710697006539471516036012778268258550568155053195530705120190266177667292378269686636269374588142750655655010282439094386951516380485939522697934583253260519553947119844748060519628437371970016374163481194335633299660779990814830691311653697067000221820411072577374145994615708533384347095316986594816534605441178325237925008556769231295588947280140252248188637585095052650518139056348904643499741129807491161500179011059998039791937760266314077944340250584356751541313190635555770164943048563817874262955419836183930193005142579916015077621143565514009329362129645190865941716773412566409913875302599229685626680200818484084069519233562452032853105726464032271631955949816607308683032697660819994308232047474125632206207953396859370407910619422508363073489981334829156458681005924479298607246879936018240439996198389332814474616964006577439586692582666056803802835584136663662427903553327356091096301352964978339999678337328074878499158563769915332641936599609312973039526655010263320570329793857205560118746315967629254740317969958904230880163633084708080207897269774758746569534927107201719438900710789870671163396896274416944508819507040011092547314374290524666606505829222067532549473205175127905549645589614774645144280761130317747287398089276522989179719877517842799327564588647973879320360302995218573673562955350686707319861541819272911128701545492395789297913729456834409529715635334245114596635751120915116988806859685379207687516087251324218816036864252921897305947196678220818478643645473140083006034102253382542665034491345724595439112135559069590351555945531830623733292681503939178417149219977928466634976612020785105221863913148007359162455199384801337373593507952792450831847749993091709022080039993090419394969518024795105251414482281547237392206454612469927791245846718982255031154884559336648333565923673047411926007753278519517215489660400154629541068968883893743518011306516826305309756786005351083296850735889371182362063907835758467866765116371989592190329105584590866258952649840328902223811795416099938970592088128177729476152102621944157723906215904099937863094261790514911970147960122230465985196579944256736337843443595093282111549933285738337293243205459834374725366530777685399635718715976959125270994592476597204137657872959042267937918151942403976865275772452256266001281761971345846666115569328504340271932582435302631844598835120887245548333249035130762006044267723270810458637604857082469664068582403333182359752495327812621803873498166782359271429566137128596585637456335878524791472485111532194228174199296386561716532192186481096564195005524523117268292628403497047365043320405579373199669706666520127232241840391837032229807328512944186497138090099783635137999831009533545093263618295680501715660863002349301219311628779126075653572809970827806418993023358952249142563025670181039906740169410107800305854156994224078739546253363372955081406888044498621460055092148662991670310401615061453312749577681159354436739917539599611260855313114424532892026451068237308704939615846471007826865207883239937779812033466308883822913427292997908651094193851872834633556481748982485742191234834204053675944698919798059652017860068827286366317311735294437205425959691044382725658831473775060217810719477204678989129043705843986379875339102164150695808460333900747431484418683433353703637945929655926408250374295266996886054194661061516359958292006336186768535817667108447810736955207454875985931429374471322934156651034727014987210082930324362353351001493228920172498247988222981141175965470271452288408876472759812894713406747340635366194551027934598608026799231500785633285518374419162387823392842519074864417967677099264145148452480760402894808457086275492934141102082831483026830899012069156761309350108596164696259831180686070920281747905913509332406414304659911929066447065543700717777342975694548387794314067733989439314742470414351841237229898536497697719762406825621528383266165965256624147178374776815231085642641120832888383108194060978702273995287068211052494877281631311093437188635543068927463456714064063978581663623130563814790465686236646079403997210636134474390524053973537160415230382129516263666287260073857539940511938944465113434628683990886767373921257918247353206008944497102602788854961223740450474700355400728814562567047655513202959010258430958699422101843927386403838318985122866624853793334108432478961284071743023554526014181711383858345380766837890098019156660033824412378178254083532000993744968123744116687288615470907869291152551659081935879482407151161369600858131930371528370118401538412789166568124359459672067962535824671179094361180263194884905105880574263663475855069694543187498892978191845470636411150013891708337031310861071025382138392399641357111642893745415209348153809999418903571211967840061500939870305611109131657935454928848541507738028411124751855943467659486081943687855161987586850607495146021754869178518414654375310764342300047171594303142348507766364726920700458520179430298073420863580116374712823100153692569529964645527795413613290658984168950393848831875057720714663651158092000857023103043031927144410211011616812039729304896314420954359153263020649704983993557345778432952002714380303433657810940680943890732784079164552863072669505408060554112719936905204639517052394202387765190363518261991885695282734669467744029325308322920154073837777107998480939204254885169502952756282635619053436713424178625658605913593277318212161239997095000766598650159315797572471719733267894423376797325153826367364315271316330856243225377249074027354870305560551939253513439688279393246888219701641944442545649556261627561896828917777514044075799471657854742092870324328242451595004281705117735728205064590567270214141338192696692757230217727901633125572368577517910999076976315410883163752641453611882129178816907493250610329492056498225234247040052451705170512998309323199155636153032625547717682123969482623080210807026182967285582184718155606794724801652211573598620509279098324235359918737184244654114673622177180822969176260843172198690261625755081521198896791447461811350528430760341377329956622659726606369049754551019751348478192976021899685011523459251971418238777510460594789062892661414744121657508569263307014095419769014426748075985341117866458379985913926403148069942536566402381238995946481955422536430990375446113082983165031913990823939040556305548062722722380831499888444864284972714001074120672915337059940482188764240927996533156388148769049768592581879407403806593462935129766586198010962796945594414652531533487902543556619219312884957585855603700545354123449398094224561883307701933795257877348042039418815869524126906534912430127090484838619103072977298914732124891273599218843958636692125004208163456563620174363947456901565514632731990439356530625988742587691151230875851217725413623287163094825443771617654196129999202647289873673179067861531733199200517863100938091238713702770787514813220628201897047124919945175497091848622483109057348472643432035056931437473542993535745300920220868007502006286941076412077131212884440857828374490422767370405224086007001555494861359719158798839975998017489674902507570909681297232356780895212110722678586438596317326530946420731174121997942406487046981331672965964423034421552964766786649828005257403106652027592109969027147794634371132071959341227340334738183334931732065661998263649678358016986963040507107485177475442599471473776311524323848334008832404972842371652836803830552629724225260571251277328067247142027525875722658807248727456355173377584962615962023758239323226286208103168292375314838899542656226234947992262108041387682815619490037403665846211100935537387173019736507475408128201085728082096060952269234050026194163849315561228627935708889763008604085418696465603743375035960482460763730054407182274600402579240118482450973690418421214183931854128851446031553097810563556476181534785743470782038233084437838539788875879542327547361988782982672267967149492312307164910369239545010462624158508401028995517881692207824297918413364841252943779662439504162299275308977940185214750602073684499703896777292866520221161802343692115817360050208116324193436500415766301569806532666798876090935313595333948665822725000902459216818201915239939624907744121544973532462189576836411506153086748621162910403360715104897135895023333390675026850136887386984027353810871653442310601585632389431998242829406316511459409315275537656788142431158648160976793185254997297068861817675815951468846136058236021680080831036445247120349895254138579587150297767478122561683566978255574348986844835217695941686057079330586072497305036677476555069590790200976940742993186989749380345381332592665891276605543417439408392754877794026653527200950009699398544860080062867592623315295377421494190250272496749330798218998985015021003510069425050368065543625846445720041475055489867051173621559668108140127913601843501079471355503910226562154921140977219225905512641841681617607249158381009503896484514180332785874269404529589951151946592421488983765703860107977044840159307137581098913740466020583077336298493872828898652259120723736568507924618360677094806350990425173394967568946676752815714209625009262679356816074230306015113143157533302639889787414263951654214958638395282534196620526705248415446598679084868040087861087326782761717148826379480390952009876255917081728327035603311874329977732255346573685700398720527247932707904646678499291923736647318778268506756309936692693832455846906780184541894251165236981159909214508863679388628095493550512191331330741196720776217625887614340798046811295088105695794042820220322305455333458162167707592021023047010538280769170003297008367651825965161799560845661775982213808123137232400462829571260818308888895540453169605340790991958763849803749194306212123671727334675418283932137632033580942014215217088032735823787381425952655224349510268356917373014224150053327578587936565343556208887283359972587268365026145810969083725182542821330462689918878876738286719465344476907162104188979648689791257517979733600777218643476908004215710775090465732518423974399880979313009935343260422923959357146984087903758672069556728435558196646740906432444994710120819372493732231004165839182855901763959339876610192293415991156610554182491989853314402091899108262601676612722039256003183476253828051546677364338394321546490938667971336739932566907484641169546507681156983627680824196166329400174069465465311581678755664313016669881675802587477877468637622431897473035836053696354560492361064600237758741018097398647192473114525941630277442355948120574734483691544257870497378932656831401171061629988896332299052819242967602755676893956960808232035100263546394990295899487007014693420409023649504392383155790679612195902552491409147150471278753474275511174466316473808351138990431184355955380374469530002399792312971603777349165975555351767643941506859691123732817415652997335427314090915938625548243599260947108691642679486826595576064204597907848306367380887696384752112876112200407436723888359074870449105391309765106982600711311759152421453138397214741086436810380845431120800189594999726970577997523971785362897554063617652837836221746091713619270321763105702920508440140843525718710669590150002948835378824844560860544800800557813044435704498147874978353622251014709874782829486053978260361315985332644958193589518691021824451463908549566512360165700904757276082080043068903487407977513406220941237137134861856359320232539507279514925809450690266007586965921285452831134509231893270974781100010577601681565535003739287051834139399435888246909673322219269820442752345809592696125704412843948275186474189999665830640171652511143593060146862127117029198876239354517510184489042360916790460527477741936904811706681590808168803787709156078978218502658157698451674798511879268454222738284799373968617235000961406099609037745528873682327856430486368676444821323424377065070400959053224247226150561149531240940621286970035663759866455645757944142611322913968104364217391137308054962118534209668313117148428447937120331559013248102310846656189631977416378633580608631926927869738276173074142889795291999846039661319724193319355422956851101975356850027264348751976710895356974775068047370345640934286465418741568277575019943348703245159737525100963153782873059743917780150637569662819045970176825133265777205108617520103350944886635830437899056990151925070295353761147054785541593059109649208994538882579604550643885887659789668159684978789461186228556556041218423954797471145375664133706565009248774585694620784384519942544220299686882756483191316760129787852383399081127411776757949597767143141898086706310703416749977952323975911340681872223103957469033715362635427995560371013576147713443827145748831706979418824145315354528135055840051845152620770428808390926791699685026772661940781594620504837914295767916769652610754748760263190320906650874673302213866377231661735749398736465379849904767799511197212837124055768973179843707544021339839998295671169923246740412976475092821331569056243226246709983487019760285155033064666271766204485406326355128589698433818062316179468084637150515297728406680953013109395364635040654455977894299569759127701527896168564429374797517738902727808084109308644306037257666582719801012865140207244620245949832523945125552633560093241472770063546172466130774453321221240668564200264089063641540493806235457258253470362189847779181857553191640003901816170589448167626686933065535323262756336204498334806285990776505942343532985719306854306493665754473131695561217029665247531554285971265450845114049433460278469033477683304212424807202816228387208470263349025288272583873186478870092396071679576519098008656609698092170573214811204049308966256700750975862613984133142353740801449556681876480740064534395175590445770744941622995086619696473811134055705451728175291108340642704771682743394299246957079621150260935607365833854452272309842668128544634863028795254106115467233939935338400189363358551683184762204719333103541529420435541949172996746920413449466929801498093339382088499096734697583141815163366417707251450399311878089035036383897682983351344818651285190532832471814108514852225619275565428744696590487735360391112243121642986710605681679411454262622901174946089317595339921443271849301496143116242158940058070006240900539032425532999788406195917249226337981545040666809592895815925076797552102609633741009185351228623517585910804869915848179676763566291248176818301619183356671951837731399640112035082433127049644580492805963197471831647002581394501058097104257778343210056935425574842939032506903892284672678400209805822400249218838393381250578138485066375798174644437757673562612461355828674672111277825138304774084098061887064109338895533995854398921697595121573625688354320244248804003007742212877354956473078517048794679896134277240889376564490723567828107489845668175115550302327923340846745533666455738513777879669147632097615782101379771201522719472044356038174602261374030585688815937561039617520689538906672314252103715708646597998089904128031306540105215548397469987889648595378096358578681076207284054625849310146697450956516282167497295062001702654206386218838552144174349079006697549725048853696947704078999823170564931457793900551547791390363841138053536145226326551275305620116427201170757998698679696534412104216147515036201123751064683300057952909978201062315798817583903209419507331947970704725636889296389894185284571085198180098544537486494554766059606163646079419818031520853010433338428821136570506858806907215015544432434934063560648937641937743975423567964877952556969464742127982664889263949126149937679109741147064480284014926586402519476745760040176122953455262695965018261831501296122018190712393183207526530360896514487295101318748689040751757414145570392195368709603567503291441490578151690821812268348069406172999998839724616956332158006346979853097127552705378631719473282782314506764384122395203213088980540818044150547617508502186155612788053936224129683280432119150966100830118719688303308970675935205837252332513111843574596864416490277000647565442750574923491232226859109759264261493474925620158416365401943736024143024128085637697760963327638239730073914649118705831706072926772331611663469808332839586651946965692738507855640097525262099275333040639230961394732575819994255392203890115632163130632195656455595596246009397846101271285515442011522428214294763645657322900817339351298309560782745035893056143568021306671357720918148632685531520200783970680757360627933243023257349140286957208369920627129294913666647549326462574543731475539730707392825522231600926719545606783152413596786158391066604663899232030326388069113213059078335235536889707813972923904627557119515748729662999954986195487380574175948620297339775416529169339673148473033779161143306647837475218380674444198209960751874144600697988695497482815713076415272469244559837284227596380049289765335720139920650177785827194428904301672717793441528384316891816076939268346389884195134266989147441202340157221046876962303756564740567834114194332047973701831632569148506003162848778547761046674031834340158453233221476535708909704986817663462863876186663114312330400769778960673108513005925066407595716824969904062259007289063280455051305730040434788509965505569742167911245768083725732241506374622124987603902209871330471635121018152741539623676954109523314277536158675871688034448482081688030443508584401189130383599921496842081915156653099609054300181979309536788334925562137170405980408615578559323849132425694924834501377651355811839281684874981551302233926169784825411402934080435357431245404419405589327611683927139386379062183686411902738729328577704439125475465649686225090771548465455655856241712903951658018488708501869428936127584775973959078407205747133066841258763004389576337022910808770059716833529151190797518245071088435208403471238853715006897385353465903922362612449529922160201571799059535018269629554323299491335379953781641602905986667477477401961638285752927485240472494225053092774155568050281837874074643142506214443551776704796605513561949191849267018592822578253135033174576534355624699556233960869343670128387842883809111663733701506725001008320513220923201957936081746721615455759816648666491180985578803686393213221081503567049321985989035568307377920498105560306015009792355040394114937546530557685057642884191499372206956560018685268750966754618080285456987592387776010813858688852073217392822661455031889776401695268587685761734533121392808747537813863704627997141167457600773077288945458002884628006508581799434830179125433542333661567758569469624711113479481379799750743480906926791047628381276015464432799772766754804806838483065098634181911122555597522717683231370021505622486760295904362492796678261291829840726715384682550076530652008539649271694234083867796531367445175001538712093236548549217421206586378263707861194682815821198623006740377265518335071562738095199515504844944526996126417110790651104947154830798197333511836255185582416627966349145708487587189117167458250278463000142816813609909860751040553717429536509740939084423336960327825368876164399250393908128843074833712786644897918358904271517698096285879791478002653513420277526534051420797539144771247952106643152051771417339627503446682018156984418318660527769272852002533932916856150834459022216344857232374028684878954459453425529380648178359830311185070897758629356902840369128329431474953273683677087820451531621124430005068198384755829676095618902460955537826306101383649833932688103163094140738495694756245312174398069479430716873758781624820772023402822409138743513358031347232172804139759830979257019434945319650173923741872506155098794317498170584463912802802362149776758095937480999861503891555659928311741430036480384626063182840674831068893528210170649159213786881075976872291286287931289728378252024967124594117171760124197240994903936271234963366472987447741511538709127013743738404934945422321000984531411376005748794434449108117184102743203167515760952766546868004158834010514848405558705922330779984380511029863549420290614389315944181796575860119475073375971444976476682946006074921799602491839376262275954059855448429003402643351342554748030857873558540677937498161986396106494111825782466960098989026422181573760124354958525667957073389133747482842417605089436101247346796914663371116561089088677778946451158604114068378298531743543439670068720794579864659391437334307986017396172647261779701117382976214393623107437898035483475166880249318549787532074781351705142138615492208967485877803268640043846551024123390848950188227062530987916300871915838633969298256785069330868127648406353174246052140918947919996597145749804974639246650409840234696507800186609783932481413966533859039361276056869973110288540751123777126488383705991378356475208036013714557614323628649599448211913525553985399469720824261264675379021927980656050100533701788112055295797572260420823778155132749651146680128094760852507894066687282478805462850453765472207950481926873479444405306677721949370030534554370746482784259841037481758748793597965479363533880609570693588422015247432931937150720916406947173460225434450098972764638442969658822465608607156292272267835103959330254501433824718131575889989437550732031516872800722965227891648124543277940122895309956464880756678210952021666083699794109107013588345098003458122369523006151501315967824559031486310451912802284409865810464923174089321973287929394790131784882732055621489952421116405572030941820239122080881669430711547427724440865342442735501223343411180299373226579036731654582224014488153113470842090630273980999665702328564202513840688378580703475693455500382345440629023378505614588319323677219498493606291807981946020053664648358769420932198605516411839170557242876814275007523952855584713925244638601235612010882827119194746131683022850851523345818432834732769219714620580420994112212475724516650199576105433550017731947838059091035170913222461990678991149133672911654880699924125837397862645423923698954904525298268080040410384619970563209169465156975908617246089050049527958385991109230682770163668072433780492042235117167399269055450430879347092271341789931062052275681261394308065463921078882864635481894721526547133305863164048066783331723076057530198974564198797932059319788407430151143296241304701144329833012786439732161777146666694299751601939325215805592602414591458632698491196969453448982961509709259540012550671274602488455607408113459164687984630036647948001641780643283385558249697519796048326891858296093347174063876949854106826254034461529024559679891045177308453542194885054851433909901530889368652744658409616037264482370085284739935892761580619456665509301347371885787618855075847278974802076171120185102205104478367455522878599786819408260268964804315884568693607237796928040085620788473244812385480014069687482376840924693222441238956548061822679076418664785690217315950548730627419641135465751726667044146555746787144183034376965996647533981262683063850390833512698914153618415017015354489011899939628127308051384005962825148129868519550926891715010877854036201625781434871061631074476328047343153681595437212918759492014246212569416545784039244742167653061670969552947879590860832770098398294105286406952209301723243627874534832516692600879625077505774298182904620676838955949749741566232150735651338726861117735800769367985728576425350925930224750621406281776971172530924503171410136567437559463568692136312151195198840744656823185520493546371213804759472923112133370372413001304724304306335536875078499686342100715261251758470234093728513759013199238749332927879774237264504048179319875310200759221502869714638213355302143491313727602861814306129621187226617264860315847353867938634435321154175072304958743042403153452310839664281257404154490803885807124366430570115552464488145182047140299423741890538226612313184837835003945199579264249881195473725561131781145758468426946091916532910275239691373465341427703492806690478978965562884334257032051131111453667965565906936083833404385673620554570096434637381602259852377735639848282798507986877689848392565816080200550854183919382690429427802149746379026999738429481012417230238530523637487148624908093264155831365184783927941783517799008240026798063706915613910470671867474063577896035915692212724374570694451605176707655110751607265274128478222817479640048253773016443139366790533591455277638309616959998306550851648619804872509343235695284442456716726633318939322226139449975148293198668236489087930212838172627790585490510783527954651326445305853982383549720750017275180960879346752591843950934945634802175935085994363604240794863542784140346457488504950694790884673323546051310420707539042521832141118909066850893017198332249924782814221073736317922267634135709471192057929408695730171401005098281332487751987837649831869330527785895718988746534640070826219573313154009465041712321155737320395108438545649098946355793550979930235900315512056740790034190422441151172977015261846797046191655914035128123257490404727723812417572393450403828921971895338678262980953668080130473318267544687193087461696673296141763023070244226881481291972304161472061137079687847702288734034796850143368560058221748357892358354708692584656354831856169568020486752130949239296049060178609923098085390110605855599567857372544325206830904684950746673873420592266908115037397256668984527878865208559103865773794667269763159072824581530801761734009490192283744075560940579218806022657688490142129956692555208977727136665138406563405367871484851806074358422906292480135143276346020790668978604987241886242894318124039216912830302714795930900481414865790646047145278458235366002724446040038761491600231834440014564389445132144155828536194633800095920534293509515377461558133239996091521477547900368915319196139798861380756264708075703745587356676866564163339888974036517185707851521288469849433838678656804388136658982789387602984168044076918886526900388608934138316212117540700370272146540421302620100104246684042445625186831131436244560395255117856407664708960983534613021960058557696349059224356008898922070115153376246320353204587322215618905685235675828864878107148497467613364519012020442208487715717035920275600054930372854621287300212876355843362447667624882816533231971266373313846887652319383251537201279932247325399681467061655839323610357809797666134069390544264035485184610937593110074289259686430335011067270870347450095381940677073274815593440744319400317995514580096501147562198912622119742958489649083112383800396402332915698596830030417307965931588588912998920641877875159008111643896985965155747610173754675516771739467548970780534655256737535979521604783697724334282602236556855489331927486863993489117736022272973531911770697030833472630063620690968288570474679989425280485560304207035813213535497924099780326218700066988992979432015636533005842296042328713731357050427852820095374379389467691092795307286952468296840969603397139155584103917042090978212243100790933267818416959772156347561768392597284497185968249901969913617876952383854555462224501901283249548039584258387127307486083747506289714583919969648649249023793633591074773824638807607947647250813369964660843924312503450783058934558219267568848527700740881074010397154335805262061586691679462291237548613910225217923065709533859125528751981044795494379206011896984097315729596789127027568748979509617906327222486234188341949777867875972112010574453544110803218526428856409241990534783866229509281657550809455298456588200314691588823254206909957516712625622885455365662580769070657137399465590027453709033484058004984763067004725948808111404974581710949207360735740492703192403966116688427912656687189869162336269425046228291316335952208716260236828993444666792597972005644071222583731829409830311404757538069499106364871668705718080731975931295219069914371405946944604513762021327785344415683739956151139854870994884125353596957462121750618797065348378200166192307297341212623696516036566587192919933321265964974945480911271417511799688273509176226073498544460499501257690953244784247303114054482091398848362491227980506135132706554126678345157848006580356869864961173372964269748802141505774643083796750686561709996701246646179364150666974112125346077518768146164776508562428599372461055001601590037919680360911721643553219006441398206243465433915470702544664799674858154286394903232450156196280668860562473829938271337332408320083259195750721747722891980126526115526628380028358126754759667298890347307387588911458739978129088694316422349164919547936684853661080964459303260960181395489490208552212676547666062686509982340077839823072188203465547827112174188424574384060632076940617400843672014609879937754136544378876792674896917921307742350086030315826492225180822360360010430359092127905177389150553719607848176481004666818985759251316936983080872079358296911163279900128206365676553749419697554091947545530134241515936623262731451389411541280405834998042011737641326021368521566163767686386798441861946735871025290911528505735225891532386621515246001022849091477686531354704139289559432378145972124021224303595785035789201726157469126328791656706020837062628394530179727218028853775652085712536521626618904877264844387551093976395506025166817268212915709031235341515916029881238623803664377544859882728718113198094397962151052170764243628937154661535109084263600336958398533306129731644384582467098394442184910420691862647380387991528543000429519275036028361021868987296823269092421650278504584439920887362276532242543336735683864093741268451710135339349639498472903675059241731655782590093834715543241011473301254714440262627973630918679106569852133190314496493295914320697483089450190823053614099838321933747024252455245447027379628007854305341152905798946257974507881200681060240032133322442298125711976035013812077650543596630255815844019211031494957577227206381350352584104261203852846683435958389511303861547584219796562671298994413721396051882920612158277696356408490013244563175597944056520356415439107277131095914879377938988310439898162957809920826646008175496500174199541775534849073180909493806272119711236559568666779088544104304193688406764345485216353434015984201983892659772243122329696442531824860930629265189684224586059641001925428006228683477682421806000315269592732712494486004980416893438395099603335179823322315575370476602991719202926014367758453452115842263194445837852688902040429548913544924646119021350806031609949786449303107856417670231284401875927070809936638385567093280321078498576827830255673377979393166795712485647440724747869665174799297194562248430862159369966182114209635994525847674044300655766099720242448000487184228964178056215100836573668885682782289558518319361500879297374333767008188460615041875939721830365925131752985738465545505867778534185411968675377005749435332375522169101417076707425598020440558694423195143626072138993753891219990282608257925482452929517658249582501192403538512905192223288600726128676896643974052711969545471519246680564099836133499192257145930374680165581264162856221052083346514709452599127330578280839929901003372592780855268595628689961020626732381615541070938217876717418629674139694241476388945115977036665821602672994392828061995692040583296612792210840122869375726774245917238550605574364793418599770562490393163748682058840869460119690030090574272438169023338687018082387459465854142192828641857742374968632536720103122946371309936478369375463142082489260876204003751044896305485191794998879878606133730372946005008967251432545061383112122076420051345762250976891074317155566200317945622990995298413288549823502746885563505912360557029068676675740577252688945285023833819297998290616957121958384194109356755051704337931317559744637860920874706819904218606616873140241969202201033450462858655585550949497337847947280254647247679656847015383399424317361892460298287003665507540556194772781991229522333849055558941199918719686781896251205286213760932706299058750405992900298307314068666321262002567958244475900702576018130084993566114144321234536584209012934513358966407567689438150779371337569810560029702857097564656597286868383140986816779014629087786735780677779519129085430098255957111838456602891733505468922537179251068477532682295878474690090889250321184827371345629440828787766565336054158834276427004509244217071796576940378592073826945392230577920314858546087269653979816110879767264402319352510951559225270424109371631187342199282177726988807341854431914509700474045934360624597569102477393482632824050896031246565574376094378833257110621143867833575917176373017356406870354362867269159740741061155403280771771289048494125781331491881017405771170923631054052030286292646379888968251198948947249581163278832312446082539197469903199976048916612650720869303782562881522664568469845210800608404585346741208162391663959391752498453903976036174893242546972257777934005803363366528121354564559792572993559622606992309965024052135476251534728868302701390311460679660068474127660424996352587890717026467425316135670555597114555362045241377098398226901804192746199066124506616111445830103537502403266723036894831254624903985123236993457593863021044373725099572870027406642257282037680293401405974831942971618518104410159072398694400192327978021731846133621307775622462498600991067274077993886164174762915280629761937282778405473553969842873761915186627114447292985910879351702562832229333638850716115512635693359957752514695711349705037388110839402004378195455416987513875722107992353083524637750866724783449615571805690291663849427601735578512892024216007374370558078154996484561163770608537757258111595663410236376105274337795091581289334232087590195929122959533727893158416650094356559273563987024730648102404579784991199402045881313494552536155307863997807309001697174190100549099763378115131036837946305909815100626362383840156411187572503959375155641033532038725729080166949371510746325869355134369356296108009013825954233993498470440124263949235070688227074438854065582302800350023389306577028468601545754990426934591247376587184530349251639080200202220548030833461887467510040163896151604592400239989993656036892085226141748994093866855068830579384010757283526242326600173862762791038838926001378291574838552315716249619185046078814073489462806315805589684406025160606827697960258344482157351770991044751532285517739945447720882505959108490544205014424312977205336143534172531915177779030478937679215144724428996386284414407101966821813102106439646750471367192527525007053276766608933992075666161997983753110197890164101657416923006015401539593021424888041660389524483433263006174012909671339905137210362844711196787981770008022099156140513604026738158431339521561708159580110821376876730449916316031292914344256044610542570749680060341845134542808942592406181987150854026791770424901834319302823265708224093929480104297248809880033820440732512600708984839207221759881654229011858568028067294570042841677980204431791975382580634844290177122820438991938984405179160583594958873788242137221678490151323379933210448061573445660762238846137241268434718306883413229640966551687596946745352307198203793583187486430536712406883988449869959425438972984702785396386313828833050956276838867919794629509121696503710458465038278361501949099995056019904016000789204715667232199842782668146090275501525786142594121253271010567974841886855757860068537307410975472619439055854312815811374988673692407835603983442322790448188086881137241163421006468916039079482446604712985734376184765662628609648745499609624958928114894020725005749995867774208016552387355721908220693967279360792431601605330764950780541074668824255449166981217603463708557348682296343581102815852005059260308843083492488290726484532512651720460132869543824111252796516472568229844214757907008606047479054139446449363586619928526367733558295681064064115655891782834666018248559837763627619087009281856398708735287603225864574274713311737894001225849366133183656233468864644670546849313560029653653420696019947766490339254036239717435479040111480714557588640123645994509590450659331582778658044373487166082165647537616529075857504773802270743821917480149188550154419084300477249334409625224373444420773920621491147590111226681448432157747379997304283117894991484153917651723376473778268488344958198252389075787827644854852898883486289927797032857291307629940473133207740247580185206568443310485457199045528693152508904182036515982181018369586005280796849686279842542855514951249817143109480389513757747377994489513395721623865058644382765279397836409830069067172849977985866378924749777563460205629338264438022244714097288534685542902866169386145720965107935298488470434152997090226027709581214716316287599158838859645336749814549721252050872774137507052781918643587896292162940536833994700975281994159958098597252004822454059691860089743374554105268575056228637935115319093417277209915614113314482266319340652719573246343032660331834033029319453293982488379457329224543043377674437884036908402189012158936221044672091912763637491904964253454851324115833114440408643232074302748010945225533381693432705609179468420704260180684808204669592240594588682457996691762308940109799321198785271838712643276229986615333073636122844973239949544194452051286324297526287833124425434107348566762995662850940330942057369495388867049427987580431934464657998081116476653014724020579621128567838144908504169814575286533382495842528723991713042747122994954085213971956192150673046205873049745857259271997268041307781284122774984818319052344070989806078164213512879629556095220997553283001256026379700693498924677243331099591554116567616013300306128629581472386365475622129274358524652271918435843254100320250999950304801684381139888731244317221161552136746655118222602075715789689729200923315985172200423799953638183051830397391735394593927984224107994449896457364513357670766923343041882215883151545217062805040986144296780048021861106646712277871675264846289229661047864096057266701751813216498785442315100398101513957287867226942797052599028014779671556171296312935376690044306508568658879845809565059818267932547230335240803455327343324274144275897512759791509073761317681042789438563987124512666811255411826640683062263499358415750035902850771870357805204012056954829549903517764006450169741282103177812780873602542580826455840266173046996237957201992533110646652521760594341394799656519721309707308012251368837825156599132356650296199875752939423057062320453964581135427564202724409604086685689319600388877425640497287120866861197106071131690419356035285381526511260888544956704197751907848155315938688063445831246163461843235753808559527410847386756272297431731846937825371596255105496578002025886785355552866088480312279959362400505981649385665896437674089795685784603903586115845709812128902408778384424805538065226074369991132364446025102355846436919513194663825774556483428972880317186281498911943038126502800831310862214755824694451348072607204317619728343624004707144865720705953407841367980173471027669051666839277607944983977956221445853209978743726446675789101275022868563530423617118361335199946327094124869057662158978354515016191188276419581788740991279048742146338011045365264285660529319792281986420379791254145611333916742433670508229878302109678497668451251118056490138714307010686663978893360020248001026836779199121332040488626122527215034727003068960151453587415930234678428377208838323945267498886566701355356257825982580917665701182785919291023718447281299983685479648297183514262715716024659326933791292018209757102120941275619783529938017694407921377131314184434634048834218817053225752353545155890306686697249694691736267846564761623821651456784214809248991210145437430174445092844353645488609745195287728373339258721962795868337164889816866233077771762742509434634302752350115290530465168582140131368996060110499162048336719409366790367804405372198993410897206771523130504921313943089274738695130673667532664320607324700957629627237868778024303007539290245194322128235946529306623735372269312248270226285980684445392161157266688591479651221272797814818287485348769937742529654542273723865293338612254911071354451955232317345977170744362330855278820491018283408252356118310190286403885930988064195340050721945263293045331913372717734338014850048117236534696156927648482226926842674313562741904006426157639716874325764752733963953714188219594613372115027680434230515626199972597326406873507427293598687175490074890032288533081442186451717744130616211473773789697243973860745518759970452265582571535361847487164868379976088526319701687145601378991509642129612447032764683362174776888676572275013401975551002006657477946702553279665756604358372078081237605338407684185112965288905155517899789770727478134429525199329548018797680779679916257194053276018488601469510516789001204306768754888902798282376001025042972761952818016895693178188039456940292417328887307996519096026824238271994498378914776903447864829165139705894375965161387055596224544179375106879388767147720487768538416959762195350068851027800951843509056741724013679203680485027087221847320626217869882875511920344933124105163330664386719369340969208385362936363675286558019513134071746780833095563547972866309950537898746864362990313036925050769928720643152763383844811707508334677954465268182086171659830009471019365579662277141130119581233173798115284278658314330924278545993824676262129265068126324791425625719145189365355877919405647378203517106455709567053499149263892141319520804591614996534323064813378868592586740265621481606925107595956911601222618180914389171829540806301446408541734918467163871766427829608872988191650249457697333797953937617509920753245588659917460028320426563256414492015365874015349549227668582649708896963542037777769289758002896892177320517510400313708948425692336099503903270456289770410760259497985352890684705593607211980343012312350479175089859523876884859081992776896239501112948132860516244659411804932543620019545234727266776831358858205020825515477488571772101875634840574802034036742542884462262846549194364667275242746542327279332057326596527331376312795623493514974793611574205018740835690940052206015616416991162645437764552597140886354264575333535477934743006455793769953170354904050820466062827396014862932506619441680730066090743568688590443275951425221067334274787198230448163659578914192390631476011373546211301732531278385059311347713841400569551751959315676745723391618372855731686278340390009586186960874549394183912691987478874526642854422033827946525540069346427300549850499494470701394961086026002649777564229075737773012802452253049234999468944517534654596793308410307602653139715998036391221914548171381175675173490250956818687932472150127239706435841375079896865525201872313481480467715715796652501819098657932669802164203346248567927627495559548137130549743304227225594291383036069767108434779005438638851122545120795659375506390317612886351497756262405129491771857640096031978721226293763972145295297959410474492010880360062443493859768891214645465603887692569963734627662825751417146505233779142675067138827799960218886677999902856349628240209399379100574135715987079461278980372154769026810504752124170507580212182285768521110240750842087642764051939368967131853322540980724909451714033141954891556974729493562378424495779047668680679791559147365871214920615426153739448664788241096508758219917800911453663997515471764156898708818070409624407374514025673105258664617093268711457224783327268298557350706288131877841354004460440374893201147602913245268606285045563135841599363354818634786197320434464108628651283251766050781176517216185382500404341898171174520591932274977683747700740229282852618908879777511443151488774697534580746593315339747401664073779468770979556709402360303311729052014969011371223198529478305202014173295451354191971968362638270754743549236176560210337355413307712810233296115914337149217140690796328710989871937588322757391333784295741237087625386543550207114522447095704385404460744956925245113895519350944031216096257484785856187091062356739534154669199819436640231545321422246763421953861653783669189785787961840987422750389353133437515372739668705825793525358762301492873531364292415675236025373663835749545974322830113629552208412547160454319353580493113543127063219645916338588450647450297852867019297062479359324040090074322319184617827929519739845017178395473985411637350326790207756130648390788776704428991929413220359253406945261919476508644214562770109709619665369265316999827483560507360745469089273180901673998325092965674449822173727176121991403414096887855314496135469512151408012645527747970145575149671774978697154937521251643145156035021942259638471260101953212723411911824492015670658577000527461195863179828083801199521088106525384756325763317610181016979878294154406191397691936181789911097047943733587133710848364443199631157795665577034870679209063947627851587916677025059699649747114323463794107269765371226132350649847726174357150755944597098414312794849412474039018154630243776721456626746840771558327122638828766605123121648646363279385587129629751820884847291575083165919866930915744995356507487992015169311643375578168587035410127029587800528306586062935205185071319798379563571018595891076569514674731687807982354802045996092974393924635869123259080432219874577699400941030735379755429974679666783400352250026872810612354071125407442475860395964532736032868063482415908457254311501015379853040581352657341208773301938873966831439751665359476758339210289515735752463441411376300358928797010595151470451075671753553729646217545408465142652265686385491363782172688634122913830942727793534634409772614188736002907726791020976762578325734691820764743962473403653147105571550275930566653002583020627504640899956592913903261570143851495566515977890276817513758965177241139881206118094331994754374122687141707016967683401732700042547009358172700162054981184277298107581221778650843141635999778055492850358197460430832899130896620775024484551658262613153771445526615785362095598864277290716266415601913503761054802383514213607630331594425034523922952179988890347540546534294968311924956614683253020303667922183738979684176050033934236887089206807139090282941278040856210528382589344851099128645889167920411680072499851549934551448793441133835409279410266498713309807982333423223210776831713911665286620078966975870954453510049321313074689369009211017753189638199025325478771854331327647868107680982445372959931057594100701113558799525002123776483819296091463330174862336927957716672215732249816342410552261916333824959479397242658395918573483552093549129866714694660473431388580933030969789472308397036865929856784283109382966213659747077224356942383018766176345061386818215476222059717906645293299392748691637113833082567989009433244421260682218554941677968133304867194996882115337368599256241026821605145339613579911989760408146711034272926496922433841833950977421740144816642573956606575457023608452604682867320003630442301976032212487687620913345072901693021469529916960501053022808372708580675551490485629176206951525757337351305127549665452305789547924083677020797764649799684057944999633358724332726197240861224582034767907173632745503860048837532086017135309858035212004356495990357037786895927152386999439549297245485180729641983545207137591600911313412544905284799138247463374373537588641765537282265726282113296800972015448139230380809921608138249138938287600794685813339526814395659085555345429983473954694022661814757332925113678282599831781975676729257494205054441754828082701424723354638461204956314821690184115654457364810101278772820534240312001738039593842444701712669309900587220201215393545999214034078751392884133496930352036480585287031306016005744336832941987092342384397856647711936911431421382653275319860109720057550284907488124161080741681780084777419114597565381518321255624310321368937744957273154313501459677866809291914011591152732562302812632534456388440843606661091093261539644935911378664493555158928364822662925120431804212205639537641309897501863531641823242062045125090956579220342364301993601497328192219050833464595507520679712611448019397022441607803951605818907282631012470716129360745694677046043380221560102067790290339808638666229557141498107559812227199096260147758869737912648327514666984942508698550800345794352329419187375259439232265793478273689304035363835241407036685290723315987836150126513931156454327003532634269923098286664787595266334432701773131241922983289905329284549790785982886549027564446060089518614368326213151855359222380455129556301850554962597618062386682347054507091262671371032871569856412157668355319052707637620527098465763139140023207276345614048071457473851109484969813447070788291218663702200307920128719613691977582723519662611918454332204493018343236261692478587987162609909628493624378886923329026800452338249850189858112246406504239081628494516625821783950056287887547996505922444432804911753463993763090613584206530609344264383643365240629621647960880988857842260667683405502132189232041615778884929775594616590231872879183133096386058177455195506888068615839333904649145647681018213640706900454428655800961145677361390804041093649447262194108307107588879108399031726601855140901895776143721964318781119568959031000048377008397045149933688102420587434806672139686319417602676783581524279265971919529421029633052628301090248852207169526895382834674957652058400445420328290174132496030664351771647756177175802405604660227425270415260098076917547561637006565360890823413275189315442669912194932538124471280554254309942117002465029576645215450113646323273222065367648188257910787187191701927868716004279254885242605526617847256748410669934385803545732327219911638934851365038654268790038100052527537088739138741381362117489319377789717221171857900841547160264201334711715554404847609529121733720714814658896529039628071647372802111331925310062469673755956182970119310337202321754113326247155611004775462440423855567471412361203438315945917813822755198349095438415643122635439641017392354520426262305529793166499267035953958836345088672019094742962859992405657383325457677285062947648787659122320921098062605115127606207684373015706828409629870934626370090079997795277029483666359376144304868758750369417395662455492486035477496262786729853693438799616013541472767281119305522898381444909685610827086177054278872107430593628068302216841554287699521102069886742869812170851344202994119053653709417988350091759435287106827083011345871070663778374040971671137909009102215821476355429673481263134050818515009645571119422908103622221192544644182557759039570745739311452893714146601204327763286557958347209010628315734678061343846949197552307223273337467765073623836856315268189639601394580734114445930058061728970182059347818716239784848484788455613159666120792155475070869223540609016719000776738681897951019131828539673570401806655294530958373518898196702624672883899644262996396942398523041836990549912106493895935438297043771637704702960809942734253501715316550102901364333499759495225304094353414237837139912846860389369614341117983426532837189825673673013673960675996982919984519738398925628889528552430952336249941786792227471268899722860856800733946465290297494799269495813830647421006834546902990670227317249727491848009525168071443540816370812414705510181045498362446893284714221131557044649290885866636844283568504845860364542649270416741377170380989053740649062490752526135006602840041953502673336717489481946413925314879132992304776342598643446266551397304970695622160576747733686208899925992136131425913379181136099833478436552790149972135072875382904230665565820185591405120536604605084912682417021564089546220147051498327368012442604541568404554348323963078484036256694787923214050118446190259331258628315184428192424320120617521274097719642075318618863976442601806187774516944683575903998759163336071386781934815574098837280386959683603267679537063375868398698453522312681666712754200669829867918012034246236550843884294097769390601558456590854741265960404957698096060549808365606404848147813943111396129887444442679240648015320077120014032758259677410328475411555050334139557667904472286817025396720759963839418217157569853297020327560055020120194896623361351454056979048084521203545840117430466087808203593240694076487392510752359786464551880618962150823419545116336326640123330885230992326120367053652758139419119029653771656520924086939751635356370118183509020903388343537565973844175156095999268954200260438557018454108813106495252800004692432184785126243293599992562467592414131116191357771209730582884642621476318087313185822028643137210894238357094789751694591327434789015092865160974226044330134405275820439476664710315683026589073308241329494885452730808534184850285709750829630721274728832905869608628441825693954095757264021969795177340013910511870520436576369899100611660224673984732300873744992711306381967548732771991521042892172132667615077008375632411210991712933451862568135231379083100174174861775238294105255394889463100119817019328651402113664512639790256881053327914685503994342538035498242875993141015009087195925983698259576207005621005486500242424250803686252833350677213311642870501091237760272582838580346454370675063654967600342498646556288903993587501996580395440884064308666047944232595616641223408858197736923711452748813800052126019336220789602923761309155491383761399724032331988071356663875870255296478817893933101088674716395924625079029822760523351178101170837836882266507110329887165663580756263329025381659225668104916562090851783618762607676954899805329764705962373148582662569242444968964373925300751402702005145046141039619965706922188998282760274321345343337728665047639043735764848229771256685242122170465363682465922406686045359370001573490492963182394724089481899902812789997671024958966461464027170179410528628446105830621143792724829110752482948729928853708121929843749450426448683723621043312693253513136900134743792041318924813009283798595121244061393712248677406999457380551055388969266249651641409957129463330099206257747280371516257406344405615247732009219759751774933530565671633706605227594106551301889882888559382650780565013985716480374186320771226805808705517502713247065360508228903415767429936964929882763991104784422255026507102876046056302153962721053378632369944737222077313813039341782934159832828137155588407917299431630679552765234337405260543061410264655532899377367549291159576245027550071066301632863056364455079415682312836596467384962043368358788457271528110718825067303032999671333894293386855612116022004476999320385227245290154987813375301120434652437567935864731068341359753006194608346763814709435615801178676632170305738923285384188935301665218050385317023887274809108128837536416974502489865470670481222412726012447628930464713571733581162207000900618183232141985537399570275427431753246541541511153142294131905825226689378216966822640344307352193035310026739247703307940962029981578640271345784220020611245761937127719177310071493482465387550446057403340988160969703105866418525487824451560289410283443257300683324173225821983593641435166656550681551483127884002023015855987421213258121816660904048954402014795564504665657648054304183688379671151321560291505119661169080021993529189762014492987126311792385605268114284086403192376057947124395965122880827744020764301768397966794462210077745842185463087668302332367879067305244766030229905484507208551831001851119650468387043387544333507592160586630312115675472192113312875814742028945897908584099058633304196961932270672370469058644434489167225746421462225546325044792257999501685760992700415382154339497282527644966277436461538489737159651979873362148182803301719213618177988783825865171791115746498749424057200766275386752997128635466283703860342199889851277469942621959069702168991136368781677596911297819417262965453568440793312577408234260356564802970402260032526961699226744742525005349429308363132344646891263781206385518366314254561692049057301938799933602061360995907403574110316203414400933126505261392950986798541520486716919066041821557976461035978848113073175151318303320804633885431538055455380046612641073354321254551722690421722229423569388255878463847835307984222610012871516059486682581196951202930900553535378814010468534948746016753159757230489196229745397442999883854878534232632559924669081699612768534435502696854249516438866727979110265869391250682945721110833536198338136788081172123389485556401743719176074483294267219827220968636462111531811162926209794797667412304955539199098241237304361172297423837526296598543761562623015797433608478419558588041455834914962731656846526406897727479420656558005315896001847608165474843097702535305905598391839551456428997837277813575336057827832833230993870468586491214301833065100511566430598860846844381926515643868443854529673820874262062712135642941462718666785117727508058004053121640263362977473305101269216833974956443719405174773562450364190970716729272681484472680627421756021929383697653282762740333140585872067569887164167491293716929280055804023186174933101754318487961944060713059229663290414727005856167500618245661499757384620168011663241432641734864082706005343094352648584566939520431662947110872156030606709852055734788114410871013710443941626122548939352836280123483089603442900002974546712406381182070169556944381824515229510330941035964170118171269707858048949936472228967187678744417368907496322785831809496155861924004912278292591305893034012502522062100863852309997186574277823903852923758128630082237666687807334398531149729632375603738684684875119416595491910480937785155387876472557507616126158697847639386471162096625210187569981610639366347258487900359841128023920502119380569837660132632007128161964779921564608414721628953717600512201382294662726256401468131185526818672041944528032016813414479557496148786604418132489779220586584278824334613183784913148312104477953088473245605778417635090686796161373102449119204332878508380940667322913329283593194041909832276768125801535452742738516741673969365575639715925959929046880813967596523096926035344794026236200102137887015866731951257736040788508277434602908689113728711211673531903938205705340330308466505810326505010958180988615274209815334215201050674560967964376452067210282020199093064801953874462182871068354798069908127999377445684781095539985398957736852757415401297321775126461899591784567651824773741125043763141615110613519919484934539367294264276803973086318196643949461406333498476813687676308445250650730231428715183302164119657051439977541235905618586354825196758414962522319360105483407698447978454205589797460855894522115340877980592281783458916688717599194944582370602639416737436866706512983326446513585766046700798309952124658798646757150004369455441381384726560101348699430039457102877369880791748554953644292643330546187131931616913465547792706951254491374632689744198835870020112299566118617100971972957765429154037390220229914328190071795469270883744118467398139190903421756166727249821416304776679578862002226314047360596432887808578354854789776654228758912862057259321282486812934796148624376412946619937856654728545722079390478706046931466223564665062855036200050622634863586832345493237008210115661171668394479866341808622100468463564065680644126851457721310274586713391897105911203567533669140504688667528085612174559482243066657310457709305791678823850247595132170964407131404597220215069286275153406202988562469850861611259353166818761539083287417699299767859174741914108502303532097196972867093860190739360062215609410445964087442982244449486889529631635448437380914967684816829423440410768314831117270169254737557704713429135575926271149264961125603040769118693959483743436899971502176620708622369344232506437862860213133259161884725813019959736405200010360945740997598270399452644897331079375168680808190200496881967899098428913337375199432097695498989507230086698515380762108613748798577353914823918398181718487353848050561917350975573032801559273048156681490301600827676139893603104951978144119330068601193270827037278252608240568731829280803510265562870224069509443901041795363123574927100295661643758235983753681945139016334829490132377195454251856257508422766494486494560315719392675818681077431297499274307253528200236032418014587344098856184851458869772137751787634403598785840699071339457027836931204991658894616346339098193167327631949122007462530635319768689107721039710786985025941053404429003702119312522008329867012251113188331043278677347292017590927214080997314797062044458448485660605626290890856696559893583416373937317420793652799120849019509493067005920955744730435160926056100576570944026911959487191367848575972376750570552269659637742021089307560974244756492667263334027430599400146775097820322740198045186569062622300088047972166196710283272660433528413843227357289494279779549831097084879527535084473188395874516436388309482205007322880636739320348312744276812278719282070025753324150437813896103977922292299560452211658654473000045552511414292427460986086774120724314513558651041385350368549018484465225959236668920729292702869486708543588687473529755762486804622189095322592555705766903560838572000828777617427336185031796212124284147900937637059003704630167557628615247422614179395556282657455073381786628776375517360629369975931950171496166181425322958948035882650453534366519892457014975343368582557031939777717502360976055567289238267854984150041679422013013410304442155134607240188716981746721286033190435769696468828014229720305501184346198946788862354093235231619080772052741418293802736349360278614953971306488060829992918697914394402378895674625477745741138806913123987531463754381645339784905160811498422821376023035285648608267753794851457943573484320985235705585488882916874846871803266347974239468122600791860861221936451397781463288604810551948377929146893092348694659122999236913293810735402442385671513433383419458716194586097217971534285704702468901052063552787464477156353571390173209412298632133123252164093652757348170309986292396874098053197312480194179136589628731202601290452811114747311899607824194852136847996544116659483137769469431172490758099393264031084323981618666823846530017018866709406904327387068807619856468653627598905797541535860459262350838665761075941450746544369365546737072430886543355348505607561083099676952709967242188906484428110034379366133036764036209519926963034743869448426496413683093722924648241514074997753531578978779806471417219043575210023207700749808182239935425341264738307222502288629180055886996010851544796221645028263120847243528317862719328381088266495971425702256989563861890037221709108636218751811168472402426605859840689469390938825826765414626979939018697053906457316721369001306697371316716037765827345307035419884365720082365584183034936104932338374642222217248259989772081937311947817963495825847706742172866974218651418142208365783395833693572053560184999042828800035936206783740664743244792815087259747552206074010638783203891652472479111375190047884334841084928646433871889090143136939141820068576620257842994702113033859940217363905122937926543965119616503659197224445403478142971243453382410731625856623590686571365191997633188629301235255507295157531809252303476008636007152099735408765425981562998611921091742214169857713724117163803792235281739551738830653157771592123902032269983626906997322907988236394252230329506114205337863754483401344603795928447861855132313329714349665084049951415213068959457470212258298456345377982527033945546230173081151651632827242559365938188861413313775396325914496487062333547411035566442014401738792953728464044168900460057681529340036722940439210059496523150956939630505393487108123255438545124160347243487682810949066415010571865100120182784234352771214512977729054901021838368215408167225173367320896256340632346660131650489087393249074344901560858112896928328767999118974719816517099942092513685982996162957448672524206910451917974462200061653457415160866787395243245780400962212143749944477959524476672769657380492435192702436223425871986094553342881981369640399951248283273221817304504601076321990095546902382903357379409951732050730842995393235932459796305295837714197009807255784772330036972745274436371620573363305209040769531668170016679385101200058888349887716046246663431206128777852261189473093536196903775190239882829992132813296042554680374143404051804785333282384295798783322228157717101706365757510758668900667288788542180902443619440690674693224868573453379780074069011653302472121215219984910597312073423978527861643826258488576117688352854538074283917500813900263560376404261365990113500521698114144817859906153280740261684985846482200582129461344710945748197638036277741660397031318353841684481646527520749007631749828327175762809182853866015444520906139339415087785395063921595479166269077292296241179213460780808619589765259416590465315665188522866662976271028146203821887635885849415866239480781377880668315050330426048183826292091790939970216222653119848357736304818884039661029288145924610313874908478229141761704132122125261120174979710829138846456664676141491475822896135200520819544390846133964208445893526178320063341040751949524266741517700483815112505591168825214246288935072486816633668521841365907759181375594880169940134391607107992718060961372904783494055265940161264058808117608637231209880543783728893469666250675959409986280059898861593053998648105334115794295587164221309963613042852646889189159915666318942855553293015775782729730743355384113453268373648192575162769866914730421052624022426919367711165601339427731282849654369481816548034937090960383369185664306348424157135592814799359236420520417696340279006596554236360839023197486835283730142443212434251972570958500965977426918168845464394027267502258660320181328948782370883574943575580831178527701348314785356040895530730644916981749343922172719052911223519053482119509901192883734202959405118986506341894549517020925521018013430747655078720997666081226358507743493441456767132710736821886739171604667452930833489583179022106485575050214054183063957359728894356196314471974464327181635147218289237997370512578963856886856515363832628046596712773588485105625317834172206322740071127305609089168507827464843763418375424982740350416760965156008801237476934992379752700986545560242745628425501307469112069426826985511010532816277877813231697927233132421955999473631666108029252785021013899255720629028333616707170560480254234158729811080451103970390922575855949974368590650536180200087177537584885293983307085797814382016780219674464624848175904393339667282817691904347904733486292585790608857777104349189992549635407879892760945981638046516261685181993630481931251260521942868781372142205904857345552508097887534168339880771813842372500469043878461899290745355566306863871483218676956635486835585051612576078288970889194912442125547860465577013532459091863030552390176079240348616398231383116756826620071061700850758801171920402225636727634355373561104283113284370613179918673631343438656825908565878740660258867716082714486076661647619517170397624847853235450821217516645885450005742794088058305547673047200119549801836008640471347816652805113559250171737717073670110526656664095172810282107578757105726226249845066634080041771279919239051269851150680548127160031174509256141748857602090260067727928117893468435204893503491381232120380912813808760439404539898427096297095590291258225717886137682801822268170493241296306167329095403329264393527230759243653263304419369685109766210365048981463598941679926639975067210120224493392877574361786806651768609688883224987244927996449220106264653278435710405941323315031441734601573086244651330377856216704538006928372430690115931757989030272497917678609602341289129987105164817677952291553045456532658835620318865318673402439081899263007665496607579466748309386683219652109005575513708510901995971409693990844967022736959457608433868227075222377596646475592347918135576644641073203698136565606124220042288373735405403447248336896202303455346034259561716533727610905570539817741034075604091726796314973733628061951933317450164883243378543346886467321344294253786198804520646509690156952877361071002587681180329608816970157999011724667967452105722377049829184285958652316074722835307869215038733635802884715836914973411051716973386753733429050638567934580948037585491493384477051039457442618625743482463674812774118578728163713860037827106110505191412503614415796178323060727025195312383650982378242005106764189831034233359168986526172963682783340540107590488991491860532549849955935879099943751221975426562699604553676682123907109892072017473841389934797593380722312076265308053189667052946281839701560591547469578435512185463912960568628591567543693886128641618898891092726205400089934939209889724244913858099397177928954428407027503854290859422386250434214954948963729525036171244314591443952441480697203887281896627451770417682890121489251781181709240752611412033191788835735601187127279651329054126487418381195248447480254667472438315895000991958468381518752556239314539901120650736102715294834284919316299080503487025761798121251543675423138311544324272936137600741803253092248445924719867184551111116754774616399943868753248716536385864472804415642236658454345228793122560900127529508675783694935466025181542572595207968892124436358990000146713678439507495603901491840332867748229345155102025265474358170670353923887498813772897186074458123212934203096675237638342306176945839161728043493568228134991775999285481114618051578236705169893339156064881764340532532712839789517800562983221018386404735687891439091040484935671307694359464433997672633645670164913206616205350672998069825592532554780149733484744141498915476077425083544780187339216810982243037854544184107645315801941688799407753176379069819616383059891752181387088622837398529797164135501925300358064603450346939636788594552985233326264608439621647824862195905992150656794199749304871478244826831106628337118699745216221876509623261148486834154680409368764008344834178677827441552816906706069262210019041991687106164297952312867390445931980179746292147764361486772347806661799193563602528255896570699710968277320273445233562910301401928172558730583360354234228788987289813190049936259943427934951226605007585755846282432941509338633289337110566121812644464670974142583588145381880962975689262580659568528407483602419259481865821768259733923322517778010120376424844559849317801464679653401391117733244642038810845295353663376351088121260714402467652093990710594193584102239569290278630473697851498465722221050644635557687293527324021542228536344271006097708591000418538831147887420635353747147882613989784212249998076793153420740865186509249434524993846569673490760667699174636520561774899695375044737434729076081824121685247649207298825321552457039916121409278984987282372438265765925330059355563597162414193056838778555903544091303972382138131432816193206846588716874377957580764254557669426725374891296944742247230000166959122922482954358424941415055536635532272390296134897281070621662693564266101303659653694224808569378401201769460112643157099731948941034183112389193458303743449331831064960653360902208988608635981402638660257998779688068610698479736257398802603737583395909306689108462401030657816506775231038512304925995392322436985884954796308836206445091372559871700071191735000771299535695074198606507715157564652376884922602790282497979185737519032558508377652783809054433488824266819914072526675730684181770277369350098665216416435532761800413640656093485000331703581818534812313359367241084955179407126008474638958951230070930692799406883983313039528898589592530804341691896180453034836600464365913953916074786413798037715205016775923887406949551822800764291282675785273266565856897149733228880200525035545770748375181035453260102104116413377957745468995818280243951345295204783398440978311080404364979866319555330886476057509600063870004614390052365721608038304755106241553898350690384043550616088630343053221807652355766006244326304595638572363862234051266389441813573308164049246949475265776444265005730112996666001086945800641735779381353122427981904099881512581943911681214487689585921442101461153370137272415850981643875234332173063087193676341471611523605900741809741278896284840794874514301520771500586126750089933119640916845960237509439810815813958918389906307431936305335473723572111970157180959909750929066263864225966064175469442180264333747279293271012351223297843551776410592612449951767232525854179655135825265718282381661990310839110466382245501352632461872912239905714751294225661346884318828850310397286115738400189914512349230052003144155631606526557404507923779097251541353889532540290506219484584950372178397972725713398580556055195463626985335050756482497583433029801276473733855398194424553673336004274874808950480802968801176343455715004640457761652265389406194670058320826326570282904562012819633101776493286222311595807301221266090635650164925471181005922550836788997454515675682136524821825018483624331169390465048181806354892644818058347627481963944601397786284991295861779044888517321336288113668642884735835801993827098705305689108064154437095911326172616176247110432161578872587597244046692631635229942447507598366788094955570582020407713212948641157341844558596482213492836717128198149351524781527482039684851084453483287197393167955223214404047902435431815212944602782680985893932288703639506976936758671180941859569571031853183172450438926057183091911209425272878403250398784362038906733350738677768048967865208268331204186248275021150948812385373864330195992634312326675750921922210190128361885644707787823103511689366260261634694263821863287294217371489833142542401765298803939363498123966245162180482529472271012746849704072244903687016120908872707102100821614181942599816609905068101032617055641694062716541303781304236069493416567727222362293530006962937602548666393349888792108602453858096415557875825163975179988302993108288712932951554921614561372996346589067463561543086640468728039811602122844919899161585162755398114633152082302659717881909735217379592257490767983023180904665145913369837901384155429303779209088026205581240119814601272877125033214034595249254027130512566987071071532611576771970454374945709787867041152024968188579067115012380664903921890610998696277918542933818756638370615552160585524688552856321336245202250529682889776443547572310373471694418671289905462907366200991648117863473129265654031107114588022361093476418785071349528626080332324357782477138104918520800682353682524090302942715578772399708467783064148055891415706621010903460214975398194060371823261672056238090787045650949929498724289734245593193025688387669693021031301791190022612942298114127755978492230838568390528500736197800719022155759254267497230887731186665721395863562524319969805884885940857834223105425402239466057254585332776543966609683641582870274305561885449296608761088630506172512413560028254774588237284025079472894763755380547745327944866613155849036852626023704641388905518638868799124353324957293767975087430730848532122971623821201619775652587854549214068213557790019523465072665373439620034677395782124135623981040028819868274643984682492655211178349246986966105904755002232144697533690175418153409689491769225831201863689328249502702909752206477738927760676016830113774869219725556987288823383377616860814095024239040429164469268055111659421173799094166236394675063158644344847596380953709747356994044682884453134779753313041531896613845830999977784631049806328103689154552585861062546539691999651974609393324028123209772344383055952626689243732026589245552581023897326700192675121398095535645779687229806520666723906876420197452811061431565154807207885667299789742699476707208658463021840548624378140620440272733819721348160612208822917275830254283793962946134598515809163154179384858763463100859603555335815960177611319943600860540983897114701261765070040828433105144002719764677967500094466112962922299572339034333685240298362190471511831583300966686125109296031014196934073134088266323764794553807562291224750261395065312860636555503619500586291516045942405813609244969261409120520273712385589662897703112743436522832218072221016073222428867164082196905618005356835671569173779011224651181021860070914871641369983534942416219312088376005972995614971110111723774544855636680085908969376270553597235737338225829590394174386951859457420701742843884814326755575095976803659972890480985554317640009301851061783217357543957455902540753992657023125786582738049371065215260688706397287304689587270420098630475495423397679929827716003508499225248435562131674073125082289879117415499090239688483666547051408902081261709522475876515957740387512916630871267712192000916945340132115179845460719460340169491730868496981051139880732148949514857609796126300188512889751650921621133691703902058670624817969505573699933562254181463359232097171864917164221231565209811016909496952209902938876779148611719755709028620235282045155194538577943833255162177538529276564881675793459382936819180282578023662857477143119252694478844300391232213806671177642243990010867286980964087178620229346802549694812956047163212403542373947858548304256884942285637479882698231463887422722087545236022718068668092011404312403765651202572072958452073925278640133647649220862867941271659134440399664995410373696864444693912499486050439305347683244193577102862422403170847824747909631287822991510088454839744496800801573494052403212545211276773553272242992730932418881008230348590121328437840508540250069841109149055370673447127843252481186395410852775152868337107160999803901357133691587805208969938099045831524492044723398152178186938955278606301180025908361643001588718349623016597934679210414255676631620499653164180147581589342303546096439104473541521364057594966483374668174177177850059692046360381192034988560233569801170114739047770942171246825131299137831967076250037068533032391233546832939517074824612043492018746066720110544808212561873909554455280474704304722075387534738186243864679735222327893890171447640973984867180394921695610856566546120359127317083601671717809755215219985058267430719678330180366286713815685350183381544749278172933202272475367521330316415343392155495147044077599392084679147611534004160426085406047034232880521196763233384110013371519131883927206447897535778977947278598052905824740580481767701349807461041614047360857041782863907345859884200388246193508781438641209476705391912042292265989833181138786254040262370770566737980944709374457587589360224561665068088214358254264191954174765367513532602330189884719882176323141964200009194009642823440298714554782360767997423474762697397831133976083017793909559681924250470956284553535919801654627585629498627350671837608399439869308818995238763063163959126763046988733915701839071497776701098098321529161271599566436644007853167495517627372405135267525968429957269569037912230514916910602742212613904950475801261138933799803458077253111665191421945877027620878938183083671420941258211035093363242483113813276296709672807321414971816924694543756692371903016123842799374176048512190339310542623399740606099533696570324023203760391134183249652778779752885205835766205390295541472318132342969296768796468172291164096580315907883922600546621359812531845442048667322430520626456741924621038571510733853887419243016626298898704028249329345359107770293605257531473463848936325979268091466687843965089537980779943275766427858732558987204006546508562310069558809366007901471330964593305104485984127343045491862188810945190294367805769405021914305237639715063858005964627371166181350577937367636523978777668153611243277787502925239226332643108221828528060440951737515046389223624763200109353258109716508335358667646946093099877219198065176223011846232796950449986039584805387372890408173616198305780361895395533746608758636423714418260377591542989342129375470990735398813022517015576933988930072179752527745331312858422846405158272369524968650946446148681611547004564747054130594902105584330449588877941727129661858087764800301620325459361530676836483090474595797345238842698610558168686808879181419307118181033132273946856958152057900977616867039327075370858924296538974031152982287960544182492156487585433890661409769920705824028950512586753850107604105469941339729414908894226840874624850054555644068093928141475411268041199922551527055285863328639213625569224758671144756241125918951695343346550896096394483191474097176382980788636628783489786934401220288310865012209298923617285687398983726310832879327696347290932252577673977845051131141053036233272264866826324677796452812991939826249911547268415421554508105128373600684508265352122079430330672915429361476222814510659332486173190131861633692091897357197171197058410432586110182523839323983487676410858991268314466943755099545213008987849595984519911738032188531685092331480663696261859879335151672106514435173976162939266586552546654562318847456247598205637756849875464226994640274784157756681014363664364078061435074407666517722847070779958011835045338781657376105772806366577796061610410758901962144280659309877828526009203627180568075357240889425426906630641274516642176888099078218979918893869387567508137649952928339204175487242103961774032862381431039497072225552579331214897724211081734355979065710165202233218727110305754445983594529969370732293535191677008021933597935703397360385399971806129018814128363872060591627504380548456185294241267696635107420800709252865345348958690679872678326587404789380550417511579320664149739106535316669767181552534692295610599830701807344638783045569310764340096128081175576328698211952280005716699977768960039873192953203361372569810285991229386860110476843839013043957974674698317358409012534043496478345848864597184900725336457396531034834677662480164012336264927228340177133924658173897658162977860140943009354334086970060993243231855830038210528040276613633790308321608921903744363746952769820527332293455900308882932165906227440702238290711276095543159139747956943970306059392106273068560545565032971378155738036863369427512417721144347478343233021355695144965350328618647480339301029757526604590640687631697534372034031103010183039108589011040418011532704953894872394380487606947544578980395519941783528504981552995382451251368824323832473348107070720706034485293244313941890195324759118780693962001134903196948731838848217518223825715923773405434715468234638503114107016826895097515365112160775095901491678386213805788241201496722234190808589765573161767108936829065525707270267612266939524160567447123037011604580856987002604020879435777388994625789782589190229590593605986788809680770817924804257150977731867548002780631273195376586020511765865622542526134568351014558781145237567715251661994411271136321068442107499721806706982021341310041539545133074994443813411390150307832768358846117086254598184196751005307431482244190249781704453158679593749772492099796699210250305578388809402109039610526190846902664651781250522287981965993487846808292802915135059925105723593290005709325057974287637428341377514913676814889411069544837827121333557373299543866827739065782140326952532924917164326218910136642812763987327578639316504197941315669681202423877054424362095118955365135489548695332154799765395730761210088486214984735352705413784886302880414535147091246933093651637900247864013143248614954571257417830865695170483655007384544186232404585503291643115946947488483303675560968207159084827281076218001289273924760768201199076782822104217900415749396463061926583221775423977988774175608880790870634282157031920027621213718089553106696496324125285467047134291688287629096326930846461143667707571459819524076225311199323020463819980676591464156231657342906131720378837286811106000794096919515826737070252223914079164772394558433572966085167304179672157233128785632055178865114126162969363737883621227249284190219915076649583155847804479889028997795873802026398650681576725063489665203237689697414515404393612672488642976268861314677744225660800288852613829905925339567397405133238800961863474728369548599376948364248089543971792866773790275896130164256444948681988029449313587994380932585706590338008937940050489230754586763649770392391147928602760799794920885253985153860216733954131239563890321601104471013541760113959465286776183224463016800428229744147567901254898058640641469035271127696460479206127366201251610298599677682634915706581831106608686739205314286127797745191727853079039628529707107856637774551859470082864978281237300865534486732253743122177373946555359604533772704710696479465628117398048096381352393657818789256947281509365898540540581090252362649210410990778427258712489879083785286760762820408312974902726453481613830333565542718677067859107284297493538317777392422872034993377471340858410732454924845758650865918074453299344152590760061345453902805858179933901886383076587491501617415195690516792150671705663722151546237759248837114790028423099264021466618546707168597515816711290855410410089111151029180760271091731667232237123077242166245360769053828891190687315056015696863005997725591327734966434084522019753037155489521371138884248111556999980392675057708418347923005972200061925853981568669195023204504682156738336035610101753994719052815524954977746881947205436268222617849120525992574759024374053226671320167154229980346742460321253267931006451445032389822360892368987356095717850717178399510681954855522766682984664215769663139791650017263163979978022357490611378157547903265295896444341871200344137585692064072968748910265922424655380481770550331558199519395230223757682360321761637868234924018377015456778220609795819381606377878149522759759167446880094119176054999499293632202813966279672648254345219154685067781134332865843323279249988532886908688034098073182256547363304699981730550357255567445548283332620171399214754347368449187251999010080426790849483277658944492398348919092527275049100842062449259222267259260019371576379517867064298444770575969396163579061169418191896538325078259943191171723978174446194339992403206331361765781158499186635502696583048460300616304922300253515538379306243020963555408820791496814616715615686618046162955282458616377249597793114367765382367649323389104186961092285141360106534385077722005155605539437035551888284714851469707844631323550600117482638826843173766858762215788670104343306616522472569870815755479574754294110177753725533617841605821390047803883171681463865535279341484396348833427058126504297320537321732171610566597602756324297936830318149524535040610367954656811336384844765627673861201329690874742696318715076017216428833358887505322593849018697672603140074884786646700577412481078812914900381188906790713983049554524371639606123008185918193579390850524919312634710107798648319413872871483535320616859097213945511218813501407107267201486004881078460837518636849441036525088961374124193659699872463859717517540735262618991211412069750894437306646071976754686005503427232747382110748261555588409364757382246587605950522192528710524781766764954319801647237387851633962589429649954370617491597414562152201601947519503147086004282852244705931622894089244029511953225747631613961236877675868182480673635824761141303578429554787191076632674823819079746880237965850604441186326157798244956430960621664848519479706373932632430074275994129884400797505049424059979030878350332370253973137386822381868393430908879138649995805589813279537289651646943291439640896120090951683819905061895595049550487966812642952090358953365390619630526444887286327470458894541401080639474547353459549116644811977232767303337027491643879461706704038320227560842451207923728464879745162173775751764959751226073651402123795091188119284067216996306222870109182766718240220296464284380806088956780798181061266215148864605343689440628114772829157458746761369103451242574487720689634770200518133767601084525958735807490833987930267171276429393961917109236924784252680674845219062440658411861586692638590041667991756417403015894351082772057992279589239778857706998379801099870380605325313934333811600344072720229791140514696260054506788437235969728790437172861724343851266321582319755384527547075013631063443184352396951464640817266807664060146037956817483274988558092059755767321003630176297199403141230673043872612483176184724888756143666806717605372764839329838080307643024385370865492366210680137463806301021489586489778911892621203113644165428520817894345465142872176112787422547861987587878531832396912087472981398853457862254079834463788932442153538877087347018930159593682656803514774328991387922443167081402754457469060339291828941496251958395035026051399446228573796200760836011721172116284191747477971165674340884333354061248504093402493682705981335175533537856446733978905053151373655688648547923855588060298922665485875121057758108111812379897500553024875815744215863372435340960345382887111444462382322206733674173887558140994458845015691460565326140215093081459039552074487754288548586714499965390920922737815488158600115918986097407538184623930786440143046734629466987633655251778896756692451794011605420021911389429624161346748443913757411154857609552230404093989158418212818799703165253261011875217038825411927047251756094234225480218356432040483470454924711366206065138998040395666233907421573122207861822292390095927837158606182668863705158253763700122462146788822090297762816922696522582777392820936979365503419617549135351979046212723429754090032802726737544609303052062088789519950214521138552834082528433541214225773072755455391526575535954651930281828182695289904048096516804558595187777111991874710920494080458288204468204501043629421076793556642578845737561259417374243058722322136637154457430366935912735910604391651740263151852583685260593789585309420979939482117296330005523291168374677285323692877581555609291478536796243551159881825407297806286057266304466499026649276838479963191160841991312867135123613195469374635995226198782807772588369559373360661393302863407501885763757755666060222537194969912953201716553525582975238830779473890948536378206830484548999310154696780828812686357760240607646867041339369431668886021902281190688511964148295841879682707424043675689562845664691885018588596046242476851525138081258427085913290265541739308881112882988877818982257121115565117376180150795436874701890883289405517508868909204808426233899046298763483418065494616480445081608109027300447345525092679977974603446420769474753506678540355575035978831402900052985666037328017631409640199205325995410587458847738931661243675855616631319217434538501067965490816825026411741682357887367368133171704141469877536358155060100167987845353428191643531985534938788455804004345891412584601060406321312792835278640080990707911690479874784156999397464660736795095232767782477930339064392683098438483906228271401497518084427194693817519964072091560549156222931279503377292499680582331974280221585788710809104222549897046082349775828527106978854270789879696318674200420208606071135847931255773401846260105392213408902504389225730213227699074205164732626096209749070255852749119320470740237002609579781568777272929687933178051403771910878183439139485773553348210264206547171859351757752870213153812861914177561873804255972271409842117225648127700916954676502512025072020067135907211808295350675892995839336855458838494267918679747087091905987421962085888179659027739397764088700100415945884973916697808841737642051650607626231622211574751460835962256489301751565647044673011418549730149429175000154288269516876726056254352019480148564503722165919814810309471091087268870904793246131601877424015866645554706862377951938495659181476714620725321618640105356218874980522092428094433247927106960752661092921669273586852222273495639986735955750065533199562572462940714766868188561304222674820420111367277809554634523630962719270608785263985209155213722197378995097752829659918260787360083531569015768859480019887001714456839933186643933326434613111535830394709496028275593710379080296725058929124726708020069237291484735483919869896020872119913635906686140447036415947526992290054195769655769863324325190789405636031637757642411161109664926615393486177960359288186848421587355941783796236498979488740793547860022742501798155199654260864880975072229087822790494003919784110341191419911187295257016945436478139472893068932030313512158698601932184941926750265036010119652138988471418202330570388122921188567476320579086289195518474287118315102875432171786942151289856148462303376949639391028989328523211698002795955742488075287098688192985883666716788925988151960234679897114996437907528735666746712194506360513579031408596280407726392968597940714978504309260278675218575314104065061643236749050374181798928389824144801668747196062909841266141156873417789866860379926241020464121926562615064871518719180111325708858256436418969422433475162314019506793454024629082647836750483076865880461288975023964106269930925968539200335201969795012032628581325332549028564087032892045131090623202720242109614174824011776977139027489613808069124479338031495087159687497290245842152759508637796942183259609472751851910887366767898147800649101222044555630525348516729800986177134398207036277761714542538468611510996959366174776292998351926026127139476615729390304022249695631940315955854658303116560604744353442789557457495490544010326673251146019228849646033427116532998544053248395031704653136067714018408467923874976043784609276906027294367134493594261517260982817890453859596164335072296973924991821077126090741751476979653020229987608038784375733007270034860609128079406813354822186516049631982712728443738111765716653723950983898201816877074465802438309104376865917294095095817411901391857927476463587800954721403148356466680172957482160863175313148181934452560526201073265210612420081847717281944575874192267328220639397409902902333913824201692566334405088356754138974610758413864093343727697929946145086401167715009238710353572579453074643969390335879830484662785585795823182137800010144592139803687733557957803601423504346092737633318548823304302313545453908757560785613275592338351160925609192168497415488592937921805459348922909614226895942235127629202747024807534598720347406924284717268162454372525901958526738143723190281464154226618206297933538779658883260246812968988997849903761135880936912979132099693632700339515653992320378497925620175774111584768945046987700090908698333908391432362762375808750831016457257405813664496586792463647329892130114157965785148706346094322626562600415517370743323585939056938018125956644889123610404493740448632952939474734827132789381030955460191460636137791979135005799910058242473405846507802317923949735866846666954021157404361552620342629241469316647269380392772094341042601311923527414822960975483342400678824757547967572921112069109372767184086042358672990623761737389157936200155556358363569828174145306259909883440143911403737461099668749636405753605666269357647694419615708063198022681816448688834709561990114050482588814717673243426353158768670288097057791437481345326041699069221564563005994166578194892885655345829219466125840547636692021360888936268184927234184367377727632853579453476788426805858215389733578080678268857152833832029279452353952011526000168032934882668954665931155085771494671401902097857118346646869900020619198567267355581785627789896926307254085317135572780619125191499275074972055489143456811377092039373409394448943393445242503746990518270842612818882271992246166623242735808474595472948972687116925595956102409534122558144956854314068748835178351516178486396409849689574011028391595132700909557363051369188820373757411640141802546157627080814831987702145675662175960211914101507928844172283839245864524428392931811236765501281635982543627047793554827427412497496074754500938822000172570421577249268443270976460317343715225806858661150467210455902273896958929853854985342163410514973006874708196118735266394943902760468106322827130803490042834232643036771878583514325189766466757546946237193398259556253239336723138633790038675443939349028466129874530227904209186711194653255464496741815658451652011207832332240236233596633628601229542138171498502844026613758150872320135900522475087504492628663008293197333525159076916353538883374408592577755937724441538358210089673927493092926184555520565161491287545042712084905065911621477801279258623712483233276582805757311086479177762132373047359286177507378547803965559357806399383400093122578549103618498550515078221735784898891282883566373593064956582039532555779844750343305616416393412971132625096785205887156404318171011453531111951384785879655195778649707749828615639742695163918060392735420449685535774352762315749872259302512262946024659170315755153309907649902695586230503038208483706483707321775230777218456382825138308446107693164409208178726191809470119489090188907467589766192778618040349082675041876063805430967926683035378429688692005367911859829635855269621664687464175369483458724587587434777899130769377054133342752741994138822046689380657587210604695452504585609301656080049548272758728101294136253647515664955999961064931082450013807855201027016577618833595174253302894432180978961434874874127158097104422264417640020405045585748453254861209953222570525638488414466158426724629218928185869809693442990766044399576700671222684294283369580493744640358184969901006804456445047167273480044907562623107210737066844460613162618889147819789548826426005004909099010993835912245533050273365844360143683724250311218462461333455598193673233937777219466794082715986036062702306537975473052194798938032640719668426771866068299024084037155191326389780814787412454607725664032097459725300733976389954500743119483385008426843536494742952761436673894301382174205432787491059406654815363597468689044970534088727417941814335408892924015828444537873194763474750190544699400381244912124892511189961463722723792072086728937348382412506013337002975167002938170079257016711486092577748423849207481544409110978790285990102260038295874644187947876142389049322550797611059074182879146275622820703695719545831611419405274298184072505300327707423884885239843465203307441472004072838779639714734348726366160415282056635902716656535581342336592526072867017468133975504282122699828283786573909223536602321305402915775228195408508611038331733821495093748175136966856581840006840661335313676449598016350704980216673158418278871047551238793472619297166139830397134815357422718448488871344982687724521519426891136978063994910557177068641637013822994363673052733611635957659074927609423263732830651435888338159041738929669247900863537125122762996981293478542615831057399521524385669310124902703534260713816750526748409559248053670058293942624425773600199425723006379471519992755649997205742007464760037328712865966446528283687596123783643663015713434452325937174590099686266816617021814344269003505944450492844388038605684352951626602777921646924477280735665450517684235935281249205663926366731953244433968291318333050734269309079266910271806666751485409687876071677209932272360437200735296838873672683325868415759692630176797373990043740052985309163365088990323852112362122853323407950492457047938700135917260769448496379074449737542228651116038493117843275266728009120386041437766388247385734498236900798407750498873422984126651234711784943790346742652454450347179654981019443394631675725868449577750484309228584691745457154015552840480810073309251445433618769499155751743033401597042289754867391402704460486837220881868768063422248859121394470800429544489806675810817633528953407554809820718340640066544455518528289958244709597060568623746892612723487226020571981437392500786073973734430220783782023231976541042008151017739734667286015261515192662283337027687412387167126637083906407140786393193021079183767095751043626035389191772105555459023193406339575965106057986962773352603988503186234821353401048189015826336176700670279808363569046625068020197036634346229725666279624117415989174965456924053221220021804537080878627493158889413891841472591818066251800948141804753169238884054206253383914396394308430911732392370558730440406930511582599068337362945659897051916092120448325984482564077530140521214558026036346140214048499314309448853335621320210311035172803322484788421340705914840754286990104026830552273807173501633541918723922677489796109479559793029800161733122113059275756104862241420685764457042652636796845593744431504792607402729744498536842522062496045435775293033275855056810018065909855667865112135996672227109106796096944103919499096883911651404285341845836790231604618178936373612474941081129592297497691330891792900952487720206904837430745712576135748584867579770522950899089104517673770238473825517657711818171906944269426088126033574458870178774306620503551236372033742120448785001875970014431878932798570022283957468075725854984381170702081208876739925466961906388639251810362076898490672813034100766812414594186617619775136635865051215143565105213074373413801095774350461653688398784360653383113205618563988730868480175958614154249532139025241014238473893907476794592097881863150451499085956036091641861737986973570692629680131121387147208554648825729502892657697035709535148611696380078556635893918148854366620127680057286683054555565943493971632426080367831777364848161312679805185726848449458462819091476809541773923871351028561478594606619503458386674747563915358650558278269017785829607399568574137782042647675126045121967410257370845544025735040924725295797317979529722066672140370775283637298213860289627131793366852853701048709299883247395975659653447898035101339204752367829598545794003501428227871700907324206144796407184359538290719882782094378435920884268295934956912051583841923442262413689279799992151911933369139975625365910719387619471332034105468662748848377581581815594780284628646816457610024558712245924757534222788938880915860992429807096894973939783066380143559026047251851722059285002414306729419762092959764116736905580658957577939172268979756263073193647706322597919706037245431774853967254149857657856854369244004536092341737055584556183073219549494455122678856082802665056395056922237411003787322020582110624026656119319931982530683524732808689014588393184521690360133743838180252497601666478729880970509824048470182099596166724384762577284205340647709371654971359856976062307033713694199935180248369610003337938904111405736368709821084828935863148851401136282109099822633881456952866252483039827759496568047439342979158566023222085301152670044618245514327382467794575865515517906871037549939688518210671946437800977782150899076485205464200123693350553848971880908649426822555448685801015139782262809236832383835045053874040077185901351824558299335212360024334793574287178126843947046202489998967122666615360478247150602416668461381311345784097354792509867631578543312063474183627053118128114473797061325479458479044155042911094016833996131838028748603236150242415960563513625047521646722857108888791940745665605755887229185957081255634051539704983405649329073136435008068622356645798640642893975806262026601653228964518255269112015665348508478477862255963368666192544156902199160380187906447308469801405241387924659745525751879664811601665860377246817855583798862629917276680504991196343688066937514970455098292632563263036327559254735072963639780160088906903442648237895782900084723298729678236137821202019837341287750129409582504689555344575857219713522548625789556593607268032178681866006090422830852449149820404816061723984698705307857654099133765367816042461099850609418847953998708880143893272654913661438596300394240932366694607793147570466138341924639966686022566080254669361206538768382002843642892073823897997478053702303273763402733195862397031661201575102196928495609595655762793420607948045146400860712766168137132571594100823579172968800358196404486912839339187651657876004897235830247744157899014850477500042915967188818196962472896744997138464897513723642949967857365385595403559045165817252550262370444503338440102150846643009197013899456172161964942213303852551443578921779862449879473912340348005323854862008627078323976270831601964586531641079012767153955043917983089275885055065177556667078144321279536312452968531614018052171647767617980174567113641611074929832657240970402734935783107982219104523123402284844229630811455877347659182173003079745320407078406884183594519398727053458161384597715401873295617897735702592928926341946768656700830408381977949320888819587638590616418607673197280095516205028540035069291903127078019999180613537387046376286087421568755595074829991912963192873823280612189747459203655543152789176442271232817197514774083409689505206365908420067169949284078440945606718598387267552342308686989732938582697829240247339548715731733216688961404769930583153383487322979386019585977234085000393393386248016826688816454275465366510059919808331003886643896022806857497493501362403253396870360765335575903721106440388508609911445303919784230390926842374974322509334873662257321163286454459004522400986429149616372073577134719506548891790998958147092458408372405973512391633927869269800795057080257174678702026456915876396001458659799368897760516571709286044502846292631385586208195708102062455499067297305355150346413664124420007500629377863056655592363325200323123842000271493532475470373436604998461182134033723911116561262022926317830835709748764693644510132970355712034928224430975319532129081094761515726373613565463058593908453458821434295964350265325210367982002391569852417251484831177818388425596341647374073219494718904059542229663820064161771413216579244413764066463276204538894947318148138195501273188380474197382449801959439978266244146818167630509864337344320288921616979758000288776734011825056951144475245569504435368687902286207111760176182840094216380504719467017396001695719521749260776118176887614473552442981285496948800078895524167059936263609652106388060196822398328405923106827919886729033773266123518856254142795719024020111980611765020510846381953827154980763486715707951068822774923395839618161840184593739264573422430156875172202083847904454338245779483537319525568976514399847074543047256680881758649589613544686773552643509375904465308529741193234403083560509297436887663168422471309360781137635914579659011691955416563526595956254149493090225720563122547588206316332817765913112949041074941064324090331370401289323626093492845562297923929380645460821794742457133610472925619668412106836263327512271266742051612783546507159760524605574813280680014453047829260622439107968636617585658643060764983310631583166725593850150136248111240391149744052288158575338880727899557104069459759653324757409468058716391997881398019874426433523180513851543628823895104113843782538948750880546119469836369145929918856189457660537069229901007674088890322197935410321969938725846291995881110812940152191173683041528167636478831841874022410986776226244390558409064161942854908389082758136631286048861762141741573126785401583859297569494195839952128222792608951923815787059476991487160273858231293244682205459349884000316001560597395983801209863748800061402475530701419498196841688618669821963302580170060512846492214570206477470744351092366275224205591798234613898243824256811166391556039263074450860043815200115001598115776051675267408512540687985102069322687684008579224377656116849917093390816218224680449812357211887417377352633811819581308408964711897826372791253353763397720338670835813288274157747021198452695686985497716867299471373870042857596723458412035429604054946631118794287975972247390478097727290462545895916677246246512029730945656117604373112039185564590626989217914913452752653254563415415223815487720042639452857045608673772876815969987129834213253368753950777686857634089332853062381287706318604295398291330602103086532362090750222379178630751983464438777550593338101298220167991025070762481951621957690196623154635427501228842054881153586598358286893152766526469255596780625989536614965481982070940213943462007856677267316596623736882915082968925560650295246320305398187985829275384271037008731709039590490607687670063901521057652289180513099523778060504693676190687975941881910641680410471351580334427048576348809954221346864140381506691737437753420750750225108630106605185310285692258107025585737593664003313853623903220553343071227995935598403997691291092110041892337089528103762663710257442937783585847443824551424410515943281514047855647857098256384061664948667842227679764533691646436789175145283626079094125467099247973141733441363279283479372794006205017878801127271509933571939368755646964404920959220891846843183571766513328778625936593245929786494738069355414827135207686815852577020636333162343177146505002825125384191160649128327281286110943858673615036808007696144322665000631557148453321631124573244407985670284637707431326810170151400882630576419601909523607909392895860302399692690805721035960470484848524607051176485751710376723306518497968941233625776205658476590283139939934478850263469760848565058609134522045697727161772830428235908504565645716837632770036846829064757599992002141040920533907399163679720678810668434287368817021566619196741445037893326092355491355722032369343039012398775511999902977043894051755888000918132878889197725955115900784767080475020907292500201782264178795548777749850747974937925530283433978366463048791977451553145692576812603714235944147086184986996761461675486685136571125303973360553757291034861158778830634937191102482464768219433357075755386673489336818491592388456355025638922437710379519651033234945650872373992405331119811350634719670421022404711720341114719659536811512450918559033729878800309866982049603179000129918258822514477373178581756080504340327301753039289505258764241031786226228036199052715157129361055612559937309297125318294362367117978174617672599620782614428045770995987117677037333881647237629443810874757406612848180106096521084346021597930086838623300755690465534141629449454516086105482022441042460271241419139991436896413609385221287836595380944546295042985927189201861537841523074801085150190437303279738628393222845098589412143742816777538842744949796994695136734211282131187366701475901040732917261952580959029153453851151365527485478180372982955264744573930184785996316088519981737818051712228846885943026678485222876941293967818078246436638446607954716588364241358483999151071751745982773557842379269270414761116109089217204920541657168171950773066938484962536391933458689212544232430079103291671038864449565377804968618163837376308997325216846398336704320236125549206254348631984032011031856381260102572670948845914605714439534034834158199961980567033911969755450498882615746550768005646467901954439166957394995325031963616182023036972082706556559207937761327140313341591195184551205798186630007371052241960388306428143154477220401434415567675936010537477347840079027908662316336099715893243807865706532669995106943707996252683224859220355051470902035903399676309569586866785614979042321058165613678221806531194909259391663254446433726279263252401117638725173031795057906540670956043693622383469853237785596169638327985687768807719017489397508902045674389573319463018006752506261077372437990781515976191780377671563101117144046403617397528191565086940929647070949953668734363296915428506128378716927736419443677204398609115501400113025853492257491420680213444430585463604412157032332759905370823192501481521617454125466156153496492474320855773867702628548280995857862368337192807560123887194805004992993845942009269861981620726348686330934437059042255403254475720252805914548207675004392035856789186166856189048455833625851754167417226850262961411951766389317170664310066555697319867932053356443306657475612277575115679262126312133447108320177387839172515819373125585709969417976578523860934352841707692891187640985394412432259501134215027132378031138196699922462855575402184932200972055165861394205988694946022559658055913944158056585517109575188110629215245153594753828387229494443746992631387251391268113014022281988784705700422213101167749713010040944226841893951871596771497609411390100137517955276291853059233193064196611747468549037455535725854719396873745750920276416262437837929680522989183839655156466235299040071316580742225725990812731882371978335413272229554179226631323313601186622123625482456187436018184004368369643196729968412346835293834512129216437753597085248655060195175383069501184708364441358427163311219933773979212324276732707037619084738389754791795755767888852928146087697641512930097580713708807854005144454218086869085151671173039416714877096604531426821070758646084692098835547352413247310682121114249836483558931367094105282920735662136486708782835241584724788920163732500331246435748136657616569736462205993338174743015325133171621079314460695084697435735532876641314159794752369879841223667392214477437754020430039299000121689800408867640303205394594501891108208036586496631132917467192350112467429011243813700448548690135895788911538212167523714349827251461912054593139266445656533570077066219145194236598697515984786241472343628979590939254789104290122472534115662617834767539016596861563331576629148875926976279636202269372334977163402568579910430916229614935362648725249732070528521243263118433435129105159433040603013763278469424901238029593755367753713456212069894210435558993450288647199435132182792849690882926082431588703290738279801314378861946267396568964942684649138149172931521596669858649067501495653057669191225095392987851672146236900126214863516008486191239111640032569821422660849051170297020115991720791198562588232609969478440740684175987420644447978282297066491263134349733843407193482105165602847818833263176795535339647824914162584552872759457222685683355326825181539037895114162788430021988342685778899126102969600472970960116476310094550638699788082883442167003470026838908506599349124834481116966593861461041790223990833103566975732665607702118329184015496052928285760963697336817020061175836940939801238526584111806512019357466226724325000337699387689418303364243880173282154030540866492757836225973235935207761452404574901390705534300844387619385715929030728753447373361556285512881529517455264469878834375052561542774213209390805315048868820615378272358733770152952660477446463133437295442924890176921650665820329765190840257837534824418136887479175037095407109401962577924470015779811916240741438948743147368336544391383453740032575924001601408675539839693435998210614985678420618239757218627780613966789424671716625705536910792271908612709113048526268938337013985365909294336309478187811222446071890355164879839418244563719817192258750818674912978535398279303014859559564134007523543599241910768455312912229126835344777188626598531098822259508184277779434925871379009886231478110157370714551373418170624030226963715080241020232505054212747655710244673408301585960170891892135682824168370642563769248248584749636173439664727318991118228957433992664348641430523223201606189537481377583876341507705150033297404415650642301974250993920712097976089541044554562270065697461181325126574454743931571482671524807321148821726631605069355546600152980797749282647535970626329034706495291306702888912051014333691870046126546174417412833251038659225950185385050257228448188983522711142995137941891878605430356799670615294346193810657392875520430387231262314367445935935747935922454907704566901685964543804702436683990771988042119668880204158497381826378530381897560256113442889318438184435544690725344773483585875873165268919047707771008728490831357272131206530739450123663415407451280572547348662996259588839740101507634927851522186774515461004099661871229382582312104977421889207330303777759962475480094244236267901075508711196961465948595584076397860803732393335708298814711760417547874345598943125884787547102280818521642960381954160936526998127201746761305266871744653335658865305665794716943862617407538833126455111196375912693993737924957334925967580411113106853453666324598934660969726935295114600054963426210200006696839514853779126619268436872211163422625741308424838756601654141542766262065699807766783756028739520251571221758451176656553860425057507326777771350285280221153706568805990649220047685142589431578316496285855633059860344687801181909176412071002894160618227783735459048415891563630640874444436022921719931853029899515853733034289699437922924909326627143817600817363466050386618956023833947425013811589156518044522888200711193784991896510034683960231497239379690430188025639116234068037557120638636595308806688432958995106145040662865016674010379766684792357387382976042413335123440741171412921230771949420774565493956922904430033791947910974233610166011847581557568207202444599919462849195601565109223180559876373159486469273378158411499441825643429545525867856909004978716988171866497020874259677766975515784373667715357801714166488490343935965617784074945085547375638729141067999046015204762942465022920016160746200119832104427248167098621284760926755059863237181684854944337122538556931612959465203574723809046888952288093336520843841245628901973415472705664517986570069842267389835398006640638619262852064429900321502036824632264648864991791227831792191351875233081672822704253664156175291191296927226023810162127736493017130570554292725501406525106328590497900116888824177985507323931351042414882259970429928536895437677193371874583653228298978813419876321449747921463228445409472586540946362714499137402855457891807746856107591916240531138327054909465727697626105160327386617605690251964918701442522043250564099683142758486152522340310734601989692233325901145037611842881272846138777460355604253508719165656957522786746693074573190933409525162840157649232122300914621453188480081525863458479511629363518948559117230466169676377241817981987448224050416544376946682110427633884469026832704585809473175503225739974198077859017950473605296011299392230884663137158751726225098356914069344203905795463773609401536263406408811192386644686502478976006733820434801359587191732631051722518385319251255907280465464381201773494163346123384390852482785854979764025140635915440380684775233042930237572932614756487409683673170567701111764177170785302490685016888377840068202592572602715212459341179958005164164156194228792385599476678387157394852224320480980257456332527725425210322705863129152431294105883380661251293807605436038250677160766284849860073448892330284594761345851654474796825657920643613890110458043397651251898013832172784435941328915954308250096692035377808218433514860281833563363995382508182124018512262830559488715406487412136715439337626435867968114381328661041556365188878278938316424605483988351797052209901837945965362581215789172309329666265131271720885181688584373331564351384425147411973342070037696140319442059159947830852893904953442218952929779930854040688254832781475433817859988960598123364851490741067004016390431241870653014554182242239649661790189329041812079480381975377323522090989305635644988358814567361982993690972490486198203435056082745948299563749335974539549029608735621804175382744532438524722471102454918941310985347238090109696500106966398601859412296820894688756761932070747578274007409940875250691064571763882775545824407129970005645705911591198382985304840397770131962698877871651813038256718211289204358712682831488250767521835832188202581126411588405453461817216791982819264144606463614403550900473924922056187444550083780243579653000878840787635818732189924130601317495264880845559821488905064413520204794071049767892412808161541431518360875062014020186346523271322500177189989452291907650987823310060087292043307550613439653299774651553904620241520201055280439320344138163160878224197692828570480861227155679105080203060144544466809680385927495507423182786951477739096616199158575274481066251790491860626798359896776425115455868005762782783445268430745108295155816566005544924910464958246986134155582418591305247364727364319352208049575361022735258519126394736912055055711690287988957430492486358193036642865487266479944341774402668700684553864714080270184583842569784724375409729481692927698133032801452487974438912659699640174912724658145329186426977525367806325997306812487906893003585695383602120162604090564447912698409530289504179212266942552312560819393025059649471499263035463284740686455341190117402945357773954876459995376500041282389209427635055649115045174724309665260649133569816444423299517220038356440495131635254789249770779964673898623291864380257422509004964062063748248270843690371729428429607206037681676076781719026355496629939931627838154569960214292445712538132728238685209066111367210779746820311741955091030688659801508320206486492879038907356317372599977534697707751741056932078632086818675172460512482502719904170191457611299654909472194591123305983015377386990755888352494013155870601144826202536276386905451604896253723751350160673042996308797678099693986478963699870121011929953068971205041634679700435628402253543740078501771660639794048325483259896659470126767531279204656800159890868532008508500620933452603410853062062660754386065350818875446787497465620734652829424537707844461714405460586847589134820984615944157498082567725521452629396186200987840151326089226562130817990375106493713814208624900508536752830099223900332964903014715210611865998559673015642444325780279177931287206170235252713638320095184697998189816637481967569874595522364782900531514307574122727341941205043420339744900729272473571334962631491310348493396680775580837840131117805540516206240682537953750872896676516282349048131333909684695948775380360799954035314212515496607209893121253127802907835833946456209248577892560692966429557303343233495702325067788130960884455351359770291269036974177407707377142056234534507227054830813453737559171935699063903160291292662278442483814751464888015038535605461521995254862719614301643896002300837056711912472886578339184847408399572882685883566810063750508127183086101205541631315478032071031972878024215389475734301652497807022413381328607793686145100982483297447495661396014010358838928045517258420407561371113518943420065564325394326752764272083558476412846437564199314303316738879747987306715646334923414594947069376898489968981810766100371370583313296587851665808610548026063885880206488090179153359569106872977609648388035144790500794720166138391220164097985036708986104153200347777570918620522757811123870403547664516077956545594596282731048337780582915864026774238711309312986610788943378022969838241806629250317328351260771506165095069974679651900884985299941609714901026225290154583569651280662370555886927884357098616831341624159199007658273009555017352000055065059696645148950652319708725900173201873154565293952183048993992126140972627847149326069947574383826509811316763843292602873360607627979476131190555636942521881577763769981242641341924526117378957337507632310215257024021972949955481838548615753039790859189818938774388189084989338383779837273368310023176301598920259407533525948373053639115747680677067353802997466079930605614399781730521321209484225883011252930216272104096429459082269955137395929783993206601169454243307620176398721220805488456415191820532862426690511332014428500020381147020966114058164365587955415738903294837605333731673558252419139127675762870354979659363046660006976149471601835103199700068826853700638685127625688460943986421303007790083372972791416221536600671077066590052056768474948426668377960802721883242395863582889075390936906971000412261261069071406257960795565255574801811645689467211293444864858149881403239817441673204725500564865759320235012178708901721603291606851561628394122031292375814492060567433430201269018351668789873241449562205645887985263263808487818462999009193039245915834985222839412810869590339357460053365894152297527433688952448952264406377226873350972631525352333606314004662593372877315891777503262884723669609978597548795164057299176785095161293096920490882812806046401444933664674805915771704663517740496347492983976952867571505680541164822723719029491743863815378879511641352023897814427333682610859816044802697599794667762463037380367079641927422673074779708852408749648094809688464407036166630060495720765980279280151309068479527120288277851474328063874096073059950414677252737587432311431834832374542364836578617241712526173041664000174365168769679984717414266195705250870665343245219691298981508023270805657262047355426856218390200772149026267077377962873748267315640570574206987823301527663903512875902725834259767054450926104659040407581608417808284436333958861780512933685504254702090923751702073796700602159707012446988552049065412611826877865993791385140218713295087938152683571570674027161138459270138709877348527304971238558810706301606426815153399178264196531695470347577193547658529256293477610059152751194270209371797110035564425747172662931286092758649726081109834206893523004081219521085263630931474527963559123378334714118331805288108589238256406746375145974069169893398544281984985362572964929774131781942055159285388729077921922636909543222947083716288699900296438003625036163389298730379870523024468856960875719601920536436616121426552201763497045265793904214713094056002282560056217407183270103296214450049017307465578387982552525172643134198196227852618377790066385234145310568673229890142138990421333255063504432650272683492179390263933893272800003375371734263429374494949317641807304717417921520495697079727687199866773019188731713810851846781653410868707828773558957099367865496598404118351830809460390025806243874598486216150381463791227769655148046782188660898589144004078615829525902399391633430948077539765915079832154060675769978728266265955404598603902968406761405737852437058749115726107833623944819354559919742305049612113303015137370027143787698370424974919070771083556231473472318467191528604396995807130062887951106559407156636510799824904342189347451926188580498362100158468204342497404417427833215581872141437988937052262022256806114868189952683460915423171737611199972236421492961038123620421373852923485967254899355587004820442586647960695970025313171205139613388673934290489935862086221619741241964611117967552844507462614578993042184406512574603472607380641928275862233601565347415464681970344991262073442202083899669942140248662358216897694164016908000704173946861079871626797212431547183265952496863531620125912296131899629632706986924717463197573976950195262058244811734983433656978596922524886910194098098651402530810798621369391365988885839230198012964624330769297270351191896379968414197289850823386415364254722085506257948478362467370307650018547510014386457457920530098574852194305094629572890997281837449094543791311556270997715469452963290655084872142806736637240725229830449881763298769127144542054680364787754905976432996098556728014884599022967296949162199242722827887537129568774040934473438990562389913698210341516577921842392655929193104004229725609060397846510320165531699499879832791962707623474852229474653774599177663547615539003320765410370137117699302665059487623632354567304675474514794515751643711512345682899137100375815053013024412533095696137528663808133603467862069500624916200290113349626078078991283128553872541427906548379507306854524539546100554721566519243813286287574563494264912717478113848003527980294969544595482453424762976911103912450669521961427170810390114197604764993349268903795290498341817693224443293397020837741146325684084958343479874218013930595264278235161580619191196505268125529636367575122940711489199756247042992822287656000014884418546320293198910941330675969665121071507535787750094190427765852296361821557907302859439142150769986573065988340285244844357484640819624500539149047448295224108265021142426545309591585956354110748812001428641864486168240528080732079286336873701852468428763013541882444508014282796845420905208572713535179304143063067599550437479137393717852516374275109394915991048254643956977918674799282839982767505582543467455873381208282305953088885045992095415514300990707796067963625361147687216331250878966467387745625568665418592748064041324861641478355624816243101105138220511154865860379361357323307818480545124717108301252012061593244480646633725964133670235288299251634239248667347482731197327145691911057636664363096666798135228787331197184156157907803708061846054658241563010823196303411580473747932408077189601179107777788819393575297541012389760151894333713177928018222251702641220735733505079747320707620898749022403063495630480055176763064599119139513025498926117404232510798784278450551987900653782727407287318014786277292711327593032264390615353340964002661158222863533056600517301631353194492602228515163590772608444107074254148117567620052399295594355586671597443742886207240073103291248020824363297053406453654650656437130804541035839115388740300565491676051303799239514828601119634175356964461181942170232627223457394826558060778783927249007245015253218641004402081453030398918876782938171631344944539838078280603862607332968734880197275238093221887860786995550362296134119517121120605307554694727408977660220197231313589477917706364365745137520137829081845134327850228837839893628289011047575122990572254114781296700872318641543248511087775283456558872779561549679652174002105131935279920988575720787704140609615781217976248195362347216928459876298097560378489260481987981449190191831166575821185971853299883090088739372210854869389812260597699147582816405467066184562042088824848618466416981674929678920862654450944803113977468253315385797813992300470967011424854933383103988726506534223165794517143382853198285441413493167585517064623888174220096196273655974685304837267994092390689978007480424885286373539776816865099705532478881645182237645567100813270701892072207827044751259167977300147638521433033101833895272214476101276144689922470720770797051655112936309249600657982057582602185847129501587555476198734134287655384025791877767198011397966127339412083167470887447230660755948697917409597078462726581267839163639432934339670845725669070913194753513635098978262552399071531350289955052398890551141691728870745515640645674688492953500504115437212016399166139999064180205983758896776549713975169603495217130907933914111041218356963502534989779648238667421884422682567039227907618403452304625023960924988830957917657113864255781579656059595605402630559666038230574646025260163019904383939696627993167630623129828967537547626901764714728830313257700954978687623197147958316186543552188572077184220870513476043318987694498713191179300106365599742819452544852868466710979748795105504399866608185781224292369212541362631210066175632868081449871953796073720616640583881838564667472699761530635454391961417474041504752306923005430701496117497621696068797213281512613279643404757347271778174292002273954297772402652120903214694671290151863065249584559766540258033181185251877741747936524196924452219825094612561510203816966630796361676090838222204726731158331672359792981963508572931479877486561047474521749451417028168436169338475970366424245942712171109176063798061607774227300785887502617588471937388526571781549508303304375498516280462355907563915541840737760772898028362396406452772572536174465104107605623410997276224427811121875549805857516766801203293109821715076012358602237143621703169782685070436544002298631062438049253984634039327370970896826115233116192937991292491057750975460824837946738069564589712654492891239864095397684063351071802377987287504909653513605804471950650098783551142647964935244587028148921978207447507741824188091210493456168980556127558005878948453415719701570007996086865620747866920925543415270347440450527617313391075352406140979713480109128675909506670133839905641002435466861261917288992233363254534963664993310571929694906857288053990026137845904664405968719410901282120690983954707724911652524309896668149595548801101004597164569097911218976511382400005316909862725438379415019466527013390957792584856260733232405123576072777677570754233851999634825949498164384577583381750228545041639649123327999767413646379787985644745012284294661498022774731080593357162594305078910682874419043227052083497521628883066396417718761867453279885079091875199044341101405054002255400721244226100232309972869644290497405675755728235809727770047767956778606683597225360916265432589721432349019072325036338814597212554164663307739239002796101349833912267709229532654431417670810932121671569992753130266186690261966094011074175068782660692369840573865283102426272953974670806959985187599570567935556306026229853841906734816816075948641192208479777232919503941994971020961089045150009103823331445371597963773940253220547784487804328181394641117247503096816768137167395433561513945604101084123713121989163252745658789257411288023027601799265223413082274143854541187697569159263981012548710545213418890782621029177248525445051286089500498354129860868705994640513795937670277860536841386320721625196282904552195768378595730678678591487087831568213818219121107192357071480168563689956804813590814275010442637259014894726880833464351365440135639760912044277674825524790968494163669427972139128289960011928861560027620620835587747770992330348565125803840158412742163256463208802291459276184389653650989745923247475886130003302400192025852335906233115477890462296434344394467996760602657787699274414856219368969917954923909556732674159957079585461471815130381828058770696230019980848798762236425275676420967892915772482453444680436089778136614609283754498394715312565692070478346396784130484346222363494860840003596619651066373095630433158248574966830856511236451196336740503675284960970890864495784080952721465502711080991706104046377133996790369178830860563911091169890161236493299334800677231069797831571539952924341533402099740264715806406567002887726081511079379880779401759542096695707853571112677676924689123658485447028429510405214747542198215564566211925513049081320551920579838479255401752527566526627418884818935356013462172774062180591947232791678758457229316372887797748170756364846277240891112698855138148633033397157000318145116579213313361630952713067604778573829951062897427949652092475302872095266766344895223439067943414473325400982726676891862827904792630151022989293585727738039107956412605546464658934227246919369251851533723256397724058879212240103352623907350756978942922185848947687177925651273586955136790267764514660422725594241176039970038898268582275615913009551989683549757286323627362656325251211581820660052742672668010695231094119658186823856122020955624412376848348064604259405549952707464440951861990862702063584011952660645465180356619454628445312791974830883864503601697017004788130382890853860260816213852551975970309636224708142914877448336183182881246110386376961202872110223061747479308283712361755430132002651703913580609095980255798159052813382523462838902394284724486490218026022451397843926440551859705614247157203189404017362927747168037400738928654353139670349097470388234282246552081946846804506431085105430325601022262936036573453020173819341675351053293467920462543462884365516774351026862694632713701415248249786273621608540353146106884481833414337365394750692466698479552134975142276747242530076475171591897776493191205088220430471268822805528842215752399579808062561991362208939645968831584950939425969406229004238457807953853640698276385505446943476857188279197851007248802688119585623734895898893707013349363820632052122533686034307049210216261369378635110284866778094440425007998404149320895634433692975376705715226996994812305595559559061007543927268675547981952085820169357624452667672625986162450004151654217008196008693472571342501883110178024108099147530280474656512924697447648267023564720260835104037890917743744110359564532782573316245348650602663658019535005842708906950345433671339046483101417271477611722281108605941464550033707929462001229264608556008530930911899719959947764677126212121121634955096293161199147077438400383686824112213819880382314202636390850084940033993082627612767819339486334110949730041171249241175211501939981922054215498495768169420543722988935773190666541341435365993883424771363852854813925860370297268448075967925203446973250849509859229563008202802744690723739673991270732287804800008908750678076805773337417278635208709711740179600407046430572335296155455212961161264074417977498704082344304497742100480762903873878315430916188610037063578033041959172335641814937880816583304559940995344063762699953605650939568593073427655460206674397928973215394343656103288229900783043961683352520706752226396562441486116397303695682396067062815464989951200788468764812746873508299572767480752598789106725593357954262568229689998367948129023283778613504139035298291225705708700941879373581376625076934921155375047455893026479563340062578212739761971052719838627442522359060484078655790160914384250777703905824120089898177980666717285482310537625668930785366048633180515043736458525140736114288386614635361326032245080605915375382704712422815367268789984709818284167130454383296091622590921921451956353683683231124696968564674758055720675645632634293172882113890957155271498187259320256780844898014219825550350478173692522601408862186895409212971292924859169818223268662984765186030960065546875205956261083320144471471061594626245146594688280793517750892951230075279732128987971437359365857112489366871939062569412842538907911657881878844508960546676808508246218738391315895347505002971806993088904432418600892083530088817016787519405599344325256307766345316540587945853134440579517787889973632007685402521564717512119012797262296820872390680402897094353427574433872347390327013743527014296563712856031399670243337039901148730695277915515250541208187203988973235323152325323631692568722613491853215635876853920456318978579874525702526421044327590200466797327777644597867917012443645646981362350601751310463380113027885319249949582492847904250461498642986970678031491890408158416014128626190692646558326378612361076452353494096566178397719670309088332084354317078402417957296814717611775151395282984341846323104716232910963772715822698341377814572206769790050868355118371575442621605958402095837449360463353348125724389787897462546836713031300274993671343874396067279991803761534626553774538190164450745842863318770036179116840464749517233187605511290902204676497268892051520947417150749680037661050629712815710820629721144816620007877533599877448560671941700413802020078466385726497437554742171938519616327755369195301526722077928789732954323623878063402451129592898964482027678614457550860522524879226797532311618884970659856192463785958529818386822763288456525152686697471777846586983047122380523238707688141742902663139392323969625518159395609541012990577142378440747265737388800691209500102030259914315456426578580147392934792543396213934364261669984743647108485327573403450857593188364158025202879847549538316387445760544318243334372193386259677621018383295181141508514007366948216971469512704490705747223562791317756925667400759659580466732052028752312689810578416099829273546862699017611472188507372763903645195651858445117494629366899687623224619211324157495169250367702358702921186788610137806626390401581221541899761756272724112735673300667414831430122835278917613805852062299693392632591263610178478812293140611039980844001551839915971612260544050796947400513831817049134098795746054833243479836449451579351229635546359246718404267977557824019683671497946019995836092946144246937677248998028330523305530558748734293392558909845641436022613684459798148070113242343932921204423882207268023813390429033727935317542367972989883652598213914311178609284139510942210753101904205222421571833649277313015601144202904232291044014677673947765426164293535632402720479107890256225887338693238870250561166508210191472094627776792034945918788456393478505565943109514853516055108755630864147363615529526688171439025064387309030436338021428707088397899898573850636546525835735969796257329984595196997357521900460318508081898427005999619519894655201121116284140740518146028774167871010134482225824425471740145515699862979093375379978955428960575794562820796697360401576047646750761645574023183841344685412442616524621883750692105368389498778075781567473925290399817675627762245898913308932849046132103780131201440759837006656886818330714447149280016584549755565278406497155882443965483694043729238436306687503694560827333618736288431673075810942472129191690213843718525246656718219774488741116279469434270874041765098629670117416601293429480385711839593781276400829879502490277998005717160706003263711053785279172773242484042552013198158571328023232868396474855210197995910499311826351598532721938156907920265615477772613153733810722317661759971173268929506298687571272507415365585003226627355752612254806192201629203717062591713120897746801199115532203215405011565122101242725174356043118165266876550090647967814660282390341128767925928249328035025078191962502929823078300247346343603386851795886831931249362300660561816807305354638156894068257623718345035259055463824956715642415728769353002514124904595181777556182383776194754598036618717848740254728374464282577621374698355405828714768441910010843631162935358924295531962542838747529144360508589189134028815670171275367591004247882038892545407815414838759990463297784516715063606045015146040798981794132509001244945061698280503104899964036932893118593313443224167336525377454514129369260339188667211116807539767600781232688595077412653029952398533044053760697465524807584917726858598369296015708156979716921732939374397036506415889229332685771880075135201848605008384899934964685971861692133891876465714031328450416705296746623309738811391899665301096519594063895337335667179060093809273273673002256259151103090847846627709966151168543879760114400804019041217418969794493502494050979193440799040346480083700528388895743264276981953963043652262426465132350589109961290158364909044601450950705542061110074868351657689199305565455176390047282284645636839756459977523060678973051571360606764600858579351587161994569737932439453147428927052611380932105418662183435201204466535710731608314486422846270209017269398136324553760946554070916787359223022711116633026613506147563702570100171769814394173753294497998788688162170808624379769836382920661312324281092076203242223845116178637626169649233879746888826252281070851610865209544583710914091886366611793243352776340116354547564330542263378264099455640668383068167960859469186767689043238786712582476770916392446900268536587247582894167010868968340626530299122589696116593152285150229598217231018797128534679019132791150238071119876446999052382212275770270407240971375884908694214715556482119449929571321608870660181338524575323301559248573120106431005208501088856443746095726311261819176193887718246747913581849815010359192279847658694856887174216557541360367577413334967305351129010679527685040453561929800693532880542429599969166402949970114649191023276375054880425860435129415516050588838833309913227310393416893093247051084473402230084140635491925292218886602117651420255237366955758045622658680325205145903834060508860021357464401846365132633340347852317082340741425293763872414275601068395752372778274741480136431105637828822739956796246842285933569674111169171891590415256555218994002787462590468289640720709790468593264305730233221094532927023098559120708031731077144801929170588955334709602936870798441287123116623076776769473723885375427426572338070248593178384995947722787121514911946944086838180473947226456742849318315108037527456239715930827863131634921598911217707633665734587754772860921983607516410152672518935976969597507340657872089300526839104146066653193822934599588568270916793892987414622305353082374882123258233339619055015025864687852534124165999491632475357566849596724984030867760221873290057849071593242732632887551634322251594792206685118864351413137393248927313418571081532482238680135589882731794185363040024882965173568209410231818766623620981941329449409160530690338439244962217402922345653342729180026921508648275857357588185230912843227505146973752622940657568252617118727313837896381407224485659426220662507356038057808633613098010046347320811064822710609612467391056647341094748234484055134308778660594162316288891326858631783440315144607034218106027317244110225650934638371223111253341758276008391751779660409899050887237806169921259401080872293245977157760002857779845254745037526293935347532781299097946137300690529760142427541254350012539621065441022281851205521879709637025958110754980606269957914105565104791541607251325788872416198204359087803750809821584298566960328245895953007151605293537717258753428418989836796775765432761622052528184530990568592293235431184294032305020756456214867442501937334872595814403364470387889960393351127735300862890185467966030826735680158527897936431674834444947244392051271661360018616874796635252188557931790138883079857441917614663060340133777726297352994047578775298934516226539117591342861297976461040713413301081407855513181338271399912469940382942227104672973781916555693817530650030810563482324766644390403698158199796995261768762256234363724033607383575031852207189378826265900820323865830063964037060956185528177286560944983938960968574638505333165840538504771785058713582867775789325122030259655457403737207758726917563166632805556216067518403206936410254706295165605185147923135899948846550952198551321314457566863132279364979802825425965325547568890363725822924549047516598881096897565202034164169869312936853957566231441851409868148265255889636965098331448344726243421838121570999390813235428077856893259580446502656111593572221672839040561587705786980320738512532942765116292588256060405654184570223439999199124669677987798104253553510279372361187659932272984337575380806829467040084341373871974309238904924998457662921404713838368167624337446334800472657741098273229165416181059861885450437501277757142318414120254468387606175897116222536682787080412572151754628991495813118771038882146614554557600419564123197116026857008654573039772268019396428011469529589469473074738753630510656193752838861325229575302841908939899057164828862735654562058032647774394028729432217004025946602286634484672381552038935396202010411791169616508522290678060986316745888986306488077169781227715328602718810513055605757348817926462236755200670523972048027138713187094975344654470950732262466939650687681822746949456537848354560285468731859382494479757102375578999155679045312506296115480810194450105262669104890062415082795358972849847921747991339024719762680225632956640800757890320974046664048849125049195766040689655545821119615169206427946437443763564853945977937991717172232775088133161537375410382990476562226507697134322935650986646653270721174142978682829223193886197037769429198828717561773385218837402128437956642093233526676474043522037887163851249467975425152829322488267042433016393171719381680777629987863519109636157738965992866071678700249976599180651436816836380711546500932426819272420501213539818140390091405130240579363522981172211405091520708842320252483987252305463488038929574847644776427824119206924765929040617817186073233260219340792517171207290698481168779762894508334083913599632435237454630983907562125744758563708742898111129450134125212896985781109315599746869731571242042892886258783016830545372264653884049175944285610506261294828876311767451402399813661266267107435041102749983425352062847628763123740102708821093350324171861031254503602441420921798763476751327290404322276044601600006473906080451401723646060563798422745787893916059683981475181641509762677926642024883596714859996181452748780260020993798217098623257128278758081526285600321588402664150958192856753259062380591583571670582502635705257890876955323283746258573375568285625710103056332979559807483302088484892519457031125632284309162208275809350136860033549442091769779448825896733343282819610234005344674259800305510140451772377483840488342389066604348997356011064845110145640239269497787773550422789941808133205199122268739154683846647415358563692817856731185422582749289308648551511659493104031761986615408211702892654785720699396329478547344947281971142825598805481345587185211405556346610555097992768018521430941131479622132032492353933106673589703029742043262527940575276626218488601955719985612649401756568976150637350953253679553730882969217721717916765997531979838843854278919549613881365902545950504398751292910698126111136445463975760516763444109165736130511420577792537654080341954276764223842808907615956882865868880500588812882394727760707274377377792662408620855116289041890233968758142720878360144789128352010295832183504949048566286528960514873963255358634758823315521913063311841317243155465483479538256924146744752298681891440180525520503213634505027585612828306627384546384443983664530855726266625819831658580946636781621326262163497096986913385957030887534659206778777896250714111975032675043326430054325737730582694027173387602817442818033153234853700912780793530443850505671282676802261159706771966667963896254185642245531233078913855185476815950239327192527951680144057800576489652025066908973288724805746929453290414842321645093221790608191507250494148225294259568377809639476532548155913641444389847523359432507970147567199618272102331117263195623877653194725369412449540442441407633133367016389190412347338752685507897614918866550643840043650634227913234130569340167774329474313125518354827067697343364917793206892083777874500565584870438806243352120597272044119424969325134336475765031836998515513142636655230395248111750788674748378715129385173840301904282201565081820679065581713781428996180150185505814525474441491376418521492831748639859176759188194688954123406736885976382908107287455640898425747623680537895350051789195261287558681409593434871416636949993999009616097194373845839755523547532513241338677007210429425658715037866105417931649706723612007834365557511153941715483744414924201845261449528934416027590688655592297281206912866110959572173721240882087587530971738323397759659321847102364794230883750891168130438730136862588600470032111024450564210701192935893784385797126338112481672705406284606555789974608830787270940614114387517553252582934596754999094075663016041073227129964607017338975102811158919607886484519818677637489687647297343391500056335684106660255415991425811532412998961799164410577321099057670908979568852467312274790625149145382488271523570991959754458319388880004583791922916774645992299957619281646105727356228098629405606535363249358710291393809103758624256353951995846232848030479118526001816621879026122682227735202549674007855714505880378688783784835683639027483345411712776079871644465034505131785722442845098856660377447162746952601995700573908098102068210631259622911265456585452556163845943879848094804120217615436943595692271956783880236278747512592515061171648221155948807872102079984114108640067803233396704480638098630292161437700452939933666174876498417251130966023042656805266007638401130590439940626277287923085867342779811513590429101028008538990498765169331089068983524812133523582642020187339603786519938564611111789542982501397620384995310061412145554385995308229321788396084902056793240864018612531332538484458702886875927917901070258601881338393112287919417771826906991019594990342049884065021267523920632882318716873556888898567724120666452093899356148986110879556810842288533793647757515911769723913835894897134286911106456114744099487571684006820671825117519503307964650945741880021421491342082935761861568143193924040006404621015627272147362167705339140681160863472008516989740232405627179619445638477043990625346952304556141537068283114306618842461503051759865455253233596753887761195038636488459276905224860855175734101270177120807188028102888200862720807751052944542730878051085864813923873731143681443363678883551651046770677920373836335281016115966574693674372628236070761356185997766834214641297678408413567866468552942254049361558287590789829526222081768949023684037549545454652436554063845363064133636162351563940484180588330143679019712666945650469215203297258166721605804157528422115816096064033517795187517640843478860238461262256457638452069895574877695391075137751768981012121865249988565394343205249666243376792730104966063934261991410491395077645831154580075840515675100310256998409158902887854813500898646999711841896599726807564296052623426237700254651211260254208534250105539955613968195806380267294656931590570242445235871134160889076089048219377008628548342013204695666334033992378136204967797457370355782114147464426968914133591819874995575112062835760758809134043116286094194958275469341721424181884561274738482438066101150593838849956932458627724866244361524552054299396112039027998359711789700886023659547217997538835943649777164908387101476156635968444555664618278143976811911824552531793565610919468734026605080624067844985022255664763195750075500999536063433841776254450537198869328952141720443810873538576974966707635104031923873511946695638000862230084319235078165523255352770075535946742485822404561602548959051040333041348256211667913006879497209838787732871534858762729641744910944102214527480133024234811016760771579791885993557751698141612003447315615253472941046412139262497606264026470167482507151250879504411079697220450799943236498302958653846425376721168361444129570337058873451060534633597612898676917068814247782364014007333664233714750297982039270232756243267464291720078924007827626283972631970903860230994700169201307583102768563740246594064637179903974219059383556358187993309698768485254628214480355714217311991861149249233295385786792055053992531285463699154401756561308813786022982740216151080734234291336813394222829836967149896501307212609901320570434766744998759403034038595798336800339796871724189435145304331739855102203443322671770020278168263838548828357812577497303089814342920527066134339052219218210878265574144641121051189349958663260238929623397242362208699851260170113600199146115089488557349022126715290407121344847746569148180249081105782783861116585204947064412870730699886276630218046760876695140805002292166474406701727253123357575827446263796547894656530903511622782714650338138205576191276687899740375339046972126223475527501616033921451506999522945506307444794700668692000737750228297327782738346657026512305235931420159106574729555494559542915077296838179585238546398669727734275510588185317351187587068735438623609171763878357931743616053252113003094265397509386660066373317223796267389461407011664688829595136749724116557511814701851828590220324408539864446101030428904570675880069000786718260503794368415159483247772552686565362041434580291972447007912730941689650652568000850650325375565490882150080885714487064400200726326967303697828329500339517578536554230020379571597417900502874664240570301732362726283357158437852289952118572315962935142564708499171907072065537966972543789358608808100155018537302699410726973719931231229018694900405600618458266874694181485512059241763972878057173250848739346912305448092842977299495826642894556871184718210953151077896199908507092482820949675859244125094437354238407485685785403611982105729203722941718136234056976795376666768207989558281680502555108786976979220042848280128612682454717746089700883762217980444929578141655935875595170382230426325634420669601804985375553848107615528910341316284786574245380150560926246639915469343630533723577827142044424598018177548331338344354886367157341431989530627724707264286051220789012738544486902418610809464413732280051902561109386196058724249673173544639334259713361595490292199740587605994664449502168128440918157710909937253803023497243719510744623348998611787470673640873231793207681218918058509195540246844903169469080685950891425051936244101391476400222451871346149534718091165509068333357075444828907533440348913809592459221160358702958674980482857645874516246578756416246430145277971581919547425541154233456518204026519455068091906041285974141975510928611863065460964614049940303266518202302066298001475765787671209984479182931439320874105127516659054645632510474321344360819844248972826045792689785562732596300333907609463529534899318187244332615594544156442629173333782564633782920653173199128705285147595999628239798449178760014452996026112728954254797829808196406742408274592289901001649180155667955727520460618377348823777286165815588112305121725768624645377331003066112631396828286270730790372809734724018509356303243291670640321187307719699979349356588649157918857529423973815523002493384395463347883474652858852107082727494253348896760436546828999996243604634756539211353081718263206989160855382320963502015161410094545903562984750906667137641459911270006025971592243176466772129186569029845200281870667025805350798975070425254532944292428699178521671228802357472982322122025079006868627688956324135040620622417715748317901274052285519228827528620145907770463341464794615709392962750090765908031038192818375301217512260600124645654846678470888946351890917059452064574049025131365269951455083764669019186282343789380671187045044270036635772231887630037918745707269080961585669286661489435189005659178524058810711119570470744049391926691793791188849230483023089758258244945983138716917871885076897683301361157040878111616484673909514331126804770470712099671623674481074242918425135767255441196319986612147323313906313594526576318231462539705399521444286544494794225827879899812760634787862679837709624208736494075998540454812271308139713022341897719389180749006097262818074871604433850772500724456350175760681897031188434562953780702486397148746355494854275754914583745932843406820216864019664709089182288867719313046935921267021307807525841466421831421080236100234004100891102188816243141055068419399856203856400406382531730445428803964012645856855900420552337406692436541538031425568836043407159806382607951738165215185921712822618938061727090613019292095828137873606551680998212907243338787214195870799222564115656544985772129970470719519242979286684387915662585115555091981284296503379496785649808847677725792386618851436237573195763921166263830211876513110897616235600349543106068448551062255940041702089080859121776035800229464611494305284713017653920880055847305791667343841681707400181743143750914315739012212871178110972633138585220641936978943176740947322974531301135022026341301136470176057880985071372107426789366674318417249141635653101574490543006424057708931555988575596037640129952421989776112398961319077250385578823579078848771116991877619019750399426219115021829700406426284216372404448785401315259085405139878263972211349873147180515011294238322897082466826678435747113499141266402323701698532377003714681374698475568719922105606380727674200253737735801965992738977972477085253181235118053586252332081215177218740263189269230052469471897604706962052464900751596614209465074913291260158091165270152665731502409086922701901041593792281939965675084977012118493122722858411411326465605364446278867100406041788388843879308722666867099029311542701864705166690393485106150803674207456577993210779799027744630832302308008210349231494803071465316655114463252671729541855618979039426922468932998971395969193038882405299383638839762553113787979712149282323323487255367600086368602843265339503043452586597427234933903836408992273255586214625042199219286599710762593702029136837476502507628920504392349110196537667170562092795901726131507528047539470581414732469584003204801276848472347239502168356963876643787645557054147796183544054768666434547958823987957182250468466150627336953590146436346442300902324986097427847508093484490017400548865360269121247948416450727376047512613421766598770099229748842135619868541556747623972710888780338241266957218395583523903905502617805330670868017650494639912491299494210751007459023669766102812207685460681344688871207909226623385055673225519895556002735313025069545294619465115761578926458253479206317688555774330799438733171264832120041542624399005831719820343909925469414059451548701859313614417723430180474097345299892479765176512548441079075669402928688876762516970680637170264799571302707897808489429870006945055824836684020643186259717504798306019596314252154571123560053069625506264299280405944748190373809101197216354615525721794826220074952945222727877370573716947277812950389014679087245734839068757273602235834282005363787126338438409123985279764872454954542724346649390717004717719432766259989588253628446161006782115766147893750691458129655024297561684947896093123558332870984834501409051505150075492290756538307970101423756085052184317957503944602312086780032291763502539819563228533763495635447253061373775900265494109274879443476371416223424348788316023416225074290665589464074543820961577869487543466615064218519948153202767373385651728800505050377878822872177652137976563316743084385968642500409976945896575380550155691596240507784270201062502424428990985175697857128650527791214868037524233860104892133715637671720628577735022223853539746912045617011638196281587474086833355772256557373335418433865399710496842504470998839290671858261305420581680809951053580209876562361512447837573248626206223249585124726096397349664523464730473974333032747238139002079108030004632579104547497396286950148213192076919334478005274302580982958595867300509278243567265669087445284772498781620040127630729400189727870125251350433643691134837409468138205052929605121595883591158613014073037458110872824492307401654771480849864154598032502203350859602156285565477601388736608829559602841310783472597221776149817010608211441218592286042767769299463260383974922686092351072779690326354300499709186540255897889471805249694027880520110581084390628635456300767010081778499826795493420335894484857646022119316175954591984215519663644051101520799255778107510584086829434540686195043639608884700763333034246056255766780979270778793117859149977056187808393524866056188432372637919919158813469237527296209887378216309177329935007611532354925240844605906784444178975688911891700436183594588229646692524878175539221807951422546192271122701931065232350988101821139984656759517247476029083621363651498509581262723134200063041440653583982563701553408796479285985783522474162599959186938708287182533930536617036812061331513885252885010722869627200285447928034347977325689264664106706876358262935124020925480331390028811607027258540569333895551067322868266050819425062490621565558924706945776639034783494582822775406076189125926505059814000622791556210195502368112519351621487117905181084359265339543061053708997982102167538363581518518679806402383476261756164523385438361162032942081599918196151196743327929338436222008910314134783597491738130347157054970573059657774950936990656887694368173481876864911573952850376776209680550550091141820553210277296660449516728937468698405731733499064938526518860172485917935097956017124707596790286244263490077056034518598684746043258308847914317018147571966920875956392907911107076043211012277538072647168266843718866975073701646832877390438168117175343773383861542772123591376275353864500174734198535219215974940330616760874833412618757191178223821150278212102689757257631383007090490309612146013823033266481160920555342409848070986699781520466544587488251690701124208997163627319753533032841682402815706737856618160788794826438667295727793821940736541457206620729291872406513208496249050190990844017889367325470859565402429033706844557411075938058096956031633374693696164073355403179865444470924384505518789156138383551954779052166694632357747179504541865958748621981212359937280776306175395543683781060482688140183734149169534820169171722217890470190245000701981628151696836026102278242658603124386755245284149272909685909130056966254202482912729355608251913795054770774005947801037796391173828471311954768730577046301018401448668971243621285252020847266845697060520201296454275725703869815421239801732086987469986933936881746088043287099612952617077293636250240460721637839066914402554667438215591597857011594155043503472756392602129960191211238916148998718123944937428233804394455278975115639848294496628793633479325554008482936505778322310803875178722868726020446445888590799319620279502448216470932070333357725337677187125619556725808454305121532594350964284596392218863161025373649562359260144386383543366863306111861102479990480541471105032824669788933785838370802806587581600211420724890390406712880581235391731848506123790844127737810046168574490289432495778696835848141273854705206842156537478274442546244958810001180128774084377657854041452867685165074039712588088186194599003516571420055993462609736216834040607048889074358677718432258993836395279585278570392611207119019833107006284025355747295529567087635500998268218624310456235866561108444650231393122170070715938659673952405722284073664971266981631040032954217937741751024776995016300275227774448258384322172075312273290354430652108483519013265614466699612307757504639873881167805536321330130168355442473116036704597000450819013799287721472949569320755411300598188387412649290049825140646261391175689368184431911887945459822863123127035982502459814061633316458389321320015985463982269417360046666185736544344935389908404283407136834209706255508593547702109155880941765180821355064106039475127337491920490870802459658835820749183666308374236187802779501429676400231285525275340844557039418641664895945900615521073211306779916927146437249978925619941258332961025171466857805392004323506843158373634875267711888054592716220060140346523669888704264045298854942479584206800056647723938237333141152403744352653600169359255732392670999324233631391282469090180924598042441077670125761732517330315675333116877110389183522759255022096719019436891167393264657043000124065345776812743055970733492461248662666305693607770345632752379094588207281867634637337798701628268884160381067250643364526351982889539124610535035810822709043890887497912332374040208997768278850282061526391657015844538323843514265990998788508278254954195096849058329904358268833267238994574491792316742095829061552425211454646953012700733824008176755567636030950979971403512818154333660156332464040425297445648836599822725269286113719807514662674165555164489209248837140038927972281449393839055344754699123039254220642329687511103215360793806033108630620377952677494707110341054732842499474844455615173357544647999255615199639151422909040248690080973575856990508928139019441515617001958215535633769899739640664018874028120497923441510538193621466079060283508931194763768321028725475644521863668248687202627327026626213110359491540325006019710085726333738222268831444307909820368819055155356960918879160497693455377408537922301180560696808014044635392379274799803716730922442165724121793660843783005880001474236559335462047842876242190363222396302543142189908071218917143791876357623780757484586701672180773976603146242213629066343467732202493478225635585440879696156748707473012839752550344213472842236134746041666656317175441499011770439941625572939835056153709823851043548348070378504414601670213949305108922638255737379344079276555002340512949830244689895137943745870281562822262901516810580160047871928189236942038589474778188698403781855074649164171259375989441113745705217237140146018914197281290492680874015103533880631581343839078186220159052724506016786170430042313572941167876124190956430810679499623138844567012889457275314497856309595683402940642108659869064492838686614546473148689042791548301379546525062235852949000440460591356618633264935703910186096206742345099406391368685580653735556120899700210331758706631842659285807192689268911344577391376895572708683815644048209917794142488841390011232693972845080527801347440888535756980829714363955632395362212350416909818768077738380953538546965381392067490767507622212195395308857176787360137353522687577390097718820866900918355801652391253925251284508349175581505197578987014799155111086910415329236788777000348841954232622195007661189663642315808932013802385219896294029861908369720856412545182446326201357229386133485641387369715095813201263298972624575321952754153903894314950919280886120493867596852003612579428675245246394142509576671385597484793372780791904402847001451282480717298098302062826408659210487058989032626056841989573899767189186751455845493412215463201524313641895174773437283194915089749790317142818023202094038761527222839695755299161269049696099085247630455968219543989632432184454541642316194060152976094794535742475875920536381947987442230249273331428996541073177101916827009574003355487131931227791140608391697441779624788923094028734088253378512926350738594063966271037677588003600259268446038131247989399616908306820787246185432123746197695242067340269981711752830793195313321025941156807692322703551263410209210660623101993237223140736985764828877700006072004210984065466582322503012397417616520506931418711075945094986019108953706775180841632842798635081990531654505074739965849548490187530492407256988395392319908279990748872392868715726252248294841502900950096605779204409529176734161165305311959715965103219808023548531489221253916374482258859213457797873237217095903784209509295150379376347949155943768375545174572072813790594201028565415046932220711803311894104117113184292626634215172214666075435876264156580830768332676677663661387626115636653017866553333765498957351934098939356088676446548790507120541717015703456370281502800035990088463074321907895976156962195315733490045950827902490007124292025196042396922869655890890252645361318355296868493937229251097137403485964433791655449287064833238783459090591462357339954794234953159604218981815052491263288660349061203272082157307764601136419767427216689834092915165236651760718305435831463065587484831015646940624674764283996381642490497136201487662334710557202765806420821766300661378892214714741187341251474156279425101082898397806550567910799571806763410961678853150247121784930031436622395299572238692732765087116115265722299112679703122771898839677459148362340691000610397008083168519822672215607378489216749927993471428440379645051651851871922091219909039842222020322351536302816710540862793847372677380272601117556224262335044025201501166816676177438334786532003219806512007561109611524515605325271059081168482058727505649000873038696420959471945929701460630604808112039369720573573318600800348480482604277430953205792526853212059090314026895662793483535797155708454134098055413579953065542070977945492387936604848050828707376745203362226285612513787833637854737948034366023943103086970571415575200851920683522788686541377919251872931931681632526441398379718919373693175724639060181198129217605334984295948594404368763399414077806006238537490446014533669211335003999664701122560964695696977596072390752549430269805833087061473576541093436913635162194221740923167701872430806548336278566557498108641369330445421576137641083304890223850125323820216000293533088241644755647137329118418833402072927800553669532392619942791965603219599369912625271888395585501197236728623489551004730749659359512839242648293957336244908043554369688035831897744849227204133644218670210466681308933645439957365839534852466798992139019841237345658029420618934373704074736531118373817514591197071797923565034027890801755032572899867528379484004916915000265557887793301958022210421213612622497873129900692124535557879544119133510831243884499193140182650425345356917878423051119295445127530921596271987324600070955358232043064811764053472858759809863777594904448444989953240366267657251912747216250243392073854394561077890244070789812296253224961046498757760727138462616916911194570124922526648428187296234407241933452686581856787267512626792766815965294445921149347327859873318456117989087033855114865160137176409731873437584037378252621936218201128062936997553602790784941481147403930986149536615887482349766512594406292925409606976019465036480966709176785679488299342732800500669696117737400355501711170890323617451327489688703420619963018971664436306507087979421235385617260211463410660520637046330362901958595858885830269989154387599863399095457681967716415951928271811195750076346734146856017833516956359930914480838752735487420661595228014891323752218842908036692065270771933646839079006669349432993847682833386462636783670297001141775715942215071578111910519510921797525362051392835906273070942238696384079014108515267593396408506318390644526387514138146930360926443552821156442508985569754608695323035670963247745276189512942727043320340280243013275243810464704097750366357860464973730442932610625422943114017484954809133582602890713386182445269086748597870037229816711336527988922792694346936380233868718172472335071354631731732970621653798134509523520674575410548462489688324454371001148587570104904208339565770327027253513625207951045058170803833541681310647587128215913691715343148528460869746633681375745187221222333653626716862230480745357775898286267448984135887479706955632881505857953191042105051003485733185798078923552306422583285974227553955778513924049482348562277108547737836141854960635658139460192631681763531457284799487483205633855151101434253410190176246435919619437019042084824446471565276755593428546024040988115753444324385195505956863455526585945856962722370952403025561909227901961366263254801939961312492935268545996763348199161644753007741659344784994482279748732574641943972616353144442966733915980032584664413120243643904114040720260985462591807120533208039767858698018462847508547205654043783809694179982791094009150424159290325082962421362318003188897769228575600347818765776221905880333845050267127075495981691008140556448638984624666661631772943637132065239076380151833847970097325477131085939808685939043819949779827877811724561144274120276952669273065051204431776958570065238264322701864383808823344271681876228136192670544039920026768608452016085081729279762879396186110463861559067589052185394955936789115871440427148917698136509662716809911382858244108005703647460070549271377989901751716137925792216349027846931685708872366442789304087060738670365243386378845317000043089236923135980139802730085783190805826120871712878025016632236414459076357526546848869927600977919014911916740039612417916025122398841444767895171712282096552467390606335814783238837185690852807194067687610172293633700362484024863585055217025900233307679157875316026847224897215790899150098661478622568158675511575119741402951622473761221407102909085542696691701983764116881425145904192097109822471279569392005409523337906564986461713436386107550528896335039897949720636196973481306619141117892731355350528332220110754547459106597600262319652081884684113585389761011863263211357153910401602274645281463089822907688894298084664660837501302424655375351111498364286787870639319851033439242989558689425013908882714832233174798095882534953540555247730723016481020395855709291396284512542044931883963059205417763218217502295483139665485851653364980714238083271606702688301032826802877764845545277498022547007157094295503756542975537217390064805491843670147216167322903757041463605483169896888300497117001148772566222999125603472436841069102516734356698220871185337645794838140150324858964013941569327221362131868388973250932199561250761720995206093727929346086805982172238862245589175754899256284957371155420405053813307841191687600757215352409410008940483987694435133956014900015633149039347790197802131554986931898979406177720913983515635504030672655925312129286919055999672672540912925294053391954190924677844733904065865487864913590542289936994228875382545362791199675140291792252119045049157730825014554851282681346359066535443105137725580241888164484637278021881334908753432979516339354679859530999760670273379483183256406212800435433593071424472456627850350487375678150888645374392044484912390726683793310929461812278221874480292480122839804550325514597656639678296005106566650188182514538121150957524928810080174387193629871598246078191512538289046924687222350420698229820101673292980180232382781967434433683853901164704647378186221431255412895940542339149386669996173216255388213632306799771925700353839638209697917067686234851783031539392094296898878331980735362243489808492606677225778832542732749844029181890223554078026981607347295645801353101911778922032537272050578438255694856303607306973904049026843992043926443720548749263989487564551085795676816157945726050504393633398052256226757828525797873924888623027102824543319850057025692010802783093876464601223444254464121123839849787774430403384486355113136515292135609507911819745218261082805902710070178440962335450190349875443760981483090606011068572682517719478336898059467379802130921654738626878514283468928760502947891771182988672861182476769365154438093119077047943402936617003095903718047457168197076247564402601151573508771411650383220555442874918161326856057206222795941776762115397856071304324498779579613308854482484970526686347919314888089557969236304351402446135365536258904227729278847242785122988891116976038471416583266147117824973126152730006990660110610722514615983295867312730260964157941016448019420165204948334207098769590689139120662117172778345297939409137995830922934935037268525959851100358307661160368149689880784027544391321342714187640917146878612827442123028860710286665830432339185298400103239867216579361480537193787067039964909149459886990191988372078925185900008583624629597654617705912545618299000337457009371184118193853664770218492645894862044949627067682349542286561041087136554073838568406363348491023644960093809009883338948662980897893721025365539857707815830502444229778849877978469843229885903158055966606426913601188951708982417124351968818237665440602949997382191918987057546311057515733037866976611235824521962658489101408679582768069750970920397464724717844022211980571612638224307513341264522615382558296809193093942970406861353169826058375258010337817608468694578546948254374807522309493446142298404057010948450539053139294284318465642345974567816368681152798853357508386056474298891956036820786580670966660646455041572762636206573999262087533141673925595627649615785574846469179348904265018538034469137975682584541356715622214952995690891471545877862619078007170343627743369693344106957418358445927858401130266971418787752203095913200367082668655549812371023430503092727777757453492723766308155085357805853437632468825850905278954779735674628136117672160886047766933306513529576928554457978345864197106859655620935849578297543310924633657223201347029778653536302807277049290472952005658773827512456451671564021525234161408035930107782210039720868021133955569556757624237050236475027731878505827442243494861951903379640823157336701815121273330900612218696121635275030248731672064911225589732608621635273213932006122949425685807985467155646165342057716733926866568907453642165529797645328712487581715830782591260704395710543243270807135594116429236902171070728130515825633883779818415281482797318411366765546567296162214996985463455721332899036759164649180716556136106731651202162720818857678736292717751003195461396284229551259626303841226120981207257582279214197864127996136860658805002013474326160725758506222929929912193580207635192677125847686607587097952076252111972294586997485266131133904136860751547832631699707064548602865438436958572891891339730005161433131313127675701926703518602860498063642372181565513958598578326034706308881148222054570196046768506671547259863009368940922591875040721664474773953661381321934766222686574439670557633879774942908760684673192803396903935074217161425620030035254200262444521197242392976819711755375060823888798705793672326817438251669820039783023303851742470657227485045874789083256246078791057271426578878792968527884764463032478800846631971727248927085330879515689096303187663658355659649543708251814841709972991947713487477700327180443812222662453767185226191909747940702138199999491607095631443707660368378056054224202151483391615153292847288914011065203573993468571391495242179958493687018468656594825784739497973431948032142843367989281584815020233912083287009748560225905044982272347209021104879503816137622722504730359749257015072078572766777215833362755632957280757687769362203797394623485663202723658541201159483920821314968586211483934287513883676367858819459343398615414793286314414023004325160793269749860633137108491178924916218571810322057503214820400852999639921024983899904965912309810936793187464839420598531729918949040011543526346766728051731772484536907892478736025556625892491577795718042258428357455244054320351239250205932138341724460725048552633475533426178320754894602509474536180093087536594386881914861456172139783838517121988872261346164748992412097455318780080968868077596331729577300924830215488641292947446900880081329968559961600241848914957890132503306172513013833683387012732485733140799425777472550136969750046696858911293503441428394731914762288699499213031276528011264797879067760967639314740165378280885220959123516839231652955321566102996312236469462009724886893562363654242919704660970700932600083087040050503388277885827359046970976695343674085567712309879122470629607883239423828025829767512362365016868611935030854533143422955160973518334102716786677970639641105901837753786543028903282584128785801822593527982265100869723051324824664455254953275715528922140210408695530435862033516495182854950482156490404415350951715811539556993737283269036989649420575136109399722984322677496259955298197021182169396784464650191487767687683453337066171574995219037900033957338832810228926459100434972788150311191137670170163412920115275951726201783093813952331660461368808366741452623544419422934005910362850459724499300551898761546044711012885321675252020726674216019937681891073716399282214154733649323159537609166175214089303639628329803300193468117675333451802248392321209269346224583885433453016295124550653555335866697366733347088375080965961725997151544046411006445208904678764033366956466440295627952527584498195717447990804003230345239104908222869746435358956029207120075784414613001487112784631635060504867317388612992917899582430604721607979375842368464869805752724929424159385254252801846921585268554818565463233391300612907760908100225746747811551540557192500208567720148557800617222767662815171362641692719403268300031589901267846794840681805765219126381717294902388942958073704632605226919440343056887006816039824812110893966451186014357574080188424327141969901822441122963936667437881935754454453838718910863666890259359568316342024511345206281508161368624689152732065425117023731224046650634127723508386661196178487939929830242582768239627825063445623169813490142029556793107405325922604385407946400812612650740754079042459151251351875712737301093578072189496023914442756021616773313468275930988308142034808904528795100497374021835075562468661797244402851006711453969994072726805083683010455583445810333890580455463692644958583976014222489112359543351742512988865585212876116616275474199246557938917372379947353897518249206002139841701828858999402883621364068424112348498974632625538374223590710979587260750892976586084978176183771669573397462376879911473059108947132964952759912132099956849510906540864801012794957006508475503837222644575448401227022825659288729082762505565599262536509995133735125641823411822001217345462628159184527147745184738744523180731651726876407314171940234814557989883571334647254024801774482897999745855536139981766824035828487036999791544267698539853449141929468338438983070997578920244749906101563526239823911521512460364325409813533291489334314001986476831111123447832171851213546984816656438586240637008618807372646897162369631510752451109344277054312155542055004636123665687209968462417914383209913487581161490464816389622895529417690719370511546935865256488993238081541437816293315664852680866931614445430460476090956936640168671145087497095513851753791875081512364463367143900532251233283684795081249918099211801872887870670219101993546243209523673504195274715749378207933830978998405540888178083679438937257988700370717648999320845642706468393175649764192012512358710194647374228243562384592608820760075456188666774398966872428505875195550898046768484061657124978876304550044386291763983836983029777006804227487070684362429849676265968531183539585670329624217597216881736071221624366122624871937538363568572389028719512247889403117694417120401073358340606576790730479186877822322865247790801020517122424538322698247427460662987919568243813813933317612781866213014726287585431632455797070137714121797309886037133878619139549096035142836175171179442018071848800658443467524137581983019510480800941995266939921133192522978472602084687014387566932694988441385221853101236372604119925819882165264406191942003792780697809836056313076322977983369035630704477031652804586959597220982471888954862965655108971503663548735511446003623708946989894655279445192672700146086191278378100226642426034186267151537535707033098031295094551306906737107322044385055253184136882504592182455217631166755817629973802505249636393604343944911885499971470914908162522887597403709606641680047378328308606706821072060018495949599166525574744129289613012776868819321402821021534703770485937102537283298975655373374693077635278037315976037119630986014310201312924159996042769225666757341061156530804349365295184733268270926305599600027048326669539676138322430307844183686954512282204397691512694057040644631207007085744065002150493574521878333426292070567205418680294308214559059981299018165867148982153119719054275055618813683396822135469607557962418228028128462266730549202644424573330601693242617850239757287618517869561448890001614671032784286632156610759977726453959418163306814245761976328598637843638959967056615837251029518928127368020931950630698924266802702149793742748616808238364672912163024841056362439380823210566497921522822685546010056118046405035190285740579787274519930347681647200220373475775990939191213990953839821986067723392173455636900578649726877109863011714313769104470853946284157236287647740293916513507251935064526888794300927346547421814873428914021309930579844038456046316950995857005308309770469851283521624562906543149147969000529710674112066121208732969348072753995854494053525008381399392934101952895492701600228154735416236626037126724772963163986796132656494994996856543468341892989984794027171897512147709274410052446061492957320892369348629296288002689801177799680428186205712615929592544017402903546549510195609283065486105978361815590499548273153529365562138078256086802031756023743121644966905575441479810052032745194925952993908876396943185073897322597075837428975654305796674884947181683891233960841910988941311958549148010669561453598073629668638099856316101070256246175231024990171326308422154340393449612997178255433131479179631600648689868894932538754250183422412453096210070086525114128316296639381336858797613976199033879116142151996288204196591638991255781187841966079497283308168279748877263535568371828844474005434370198337477415543114208414499737430377860394557853422971217848329645125536357821324179563577211532183171822324114349111832147270778028590105922897113166487082713419793737752574646546243722369737173521213490544916958543443456624704626044394114991667762756305329416797453470971402606484776103966866124123899008218061321909293202659589054924065753359886647099457443943543244713114022364620375258164926552122185059334705236973321303480955256760137384675384000991900867744220095709468410415701565878971064740634478318150999987281304774716664118656624417138127755525392876564693432080107263444693126156986401879576602512913677568670567424299137763729693374999775063625650884164351130524404374462308189443560824484825806410983053604174814029303430656954369450155554812961931629428586108143505028766160778335760330259055924275890499786163519032091874230522848290807483178786868150891271584887548519109353839096984783799930604138801722401285466303735356125359730037933028522507011726596475386216737714532620805178471756819153398645169131431667641701279555077347483988396733426930894359086899356111001014104429744920242180441804522514306016051492705395361574244017063121532080822413769565792289769536093147730348093316978253974018780980567950966575276194333770532535051684133050256308073500694858606099120541537997795681729842943656178900635914472186179442377785420363335226554397093526815071971300282345521100264838244983694173479483287907842340427674178082006451802854123914274496510753768816986430052728885628121254551281513274648234080584319636496837509014394267338053660449864305910082284144079101090451198484305587754589397591564541776718270456346067828348002872226806509222050884602756643486466276587020283322160077197089319927490058963823158030459341025265198775059825124080483010021404371759930347247433906625549644441127680573782055275410191666938662123326724179759453638696923156212365370088295797151406284521369597403294580330491145746544416890261321356985395330488838936186210011609769765042029287889461385429284325600839274205002085351615055888376803721121579350381492921539332250774121254324226335405722664603048853668143903432030291856231046157867998475006835597583671657988182007376756348639225024432897997475395659940320034816059741250938902503412793035202882638067441119594242756433090218460915149540141405751302956380441457841890947439561833714750154160470766312836895273024495826010139213197696407259163378084642311557922469461520964392861038567842392023070455615110111985831954883412466108701820490843076098038856698868612230008696011613144678310389068461033306449425461869345751760444590363119672916183557118722674481989750745913929371723555790189149668776468357863667999962466274944475755761357396260319122455481344005643273013524879510288628823645195804886284237614134143290543108251760148074644517522209034236611185842739150180584703996640784434992562662968389920697759124471802100945211594955224074183583825161972726053332516138619149185091625856448503036242631793051014604165510825648413719937218176984132943297262812909814404637426450196214556218929120434481805998723992476036210577015670019133397657008697924364614781474116538824998673321698722300512344372875825696748611506419550392302452578093476342079277370644836717202722828783803558446729787336109628320530170521144901908820795264050879606576925481172281608978145373423564094229675163429560027589633408474434701931699850944896173344326731452482824376740436410303525906157188326574622302694398866112889483965159532868438227031523357691330151551328273428052713730955809882351038749407697842476662560108994611189766916411148372831325268705882107094533862551409312929002384596653324270763951020568720721015731218881407279019952779665606161617547712080981142231509390949835456170244482076029666253395328488736527741146744544993103591112909038595297965123214194699483474355738216361468673828992295813502914482088022152907461390754609998458252083105984466452199655969240296520115472133731301221126705697190405571920345279063405025957731771508566311540460672235317292298234185185477416524892522596894708057339918729940309835163029147644675895784168529923836494191019046722815159388097239860804251463320001765011225752756488873125800545191303830592190824957269858318247164842584404425660280697564854339341708221357262654698205883385822034029940477376073903659479182045791695257361591184664909824872387249620396381465629523656968227907365370679180305282821154184598047316262027747108222968168115433952773954179353796101663905189283611753755664374466642821843595829774798198445261411628631916525355858453861640037109490869262373996284601500244217437302816768309549630894482976284085552626529687854948974994953201271705122863334027472458828192816414069948565865784849104645320921263521197015459412542115493618850425898883747009407691733878775871573583775959919282380098048023535204148494461554803649462449313863146282034310976297651764622739508004418366444616606146514454815709510668419048477275135327413374906602947122558548145458910912973088206124164834490670467564943023008352807438782552708741597334404167645027604526460679921631187581422676016584165252579561740657914681055166846921807881974313196167453041901459293383897069395490435947615474909693579124884946380986102280108369477801794896345546234576673826847488291895774867597151873425757487344811591684319400997694661815200195104190057766677907575608752720850511751958450466862226455257624887526224368951586395622974092275453541785817361248067061665525318068540016752923854918824147225822610547818449493019253091828755298596499976149986787468224098037301329750054615024211683457940198498777437256381631783468692502702179893712663859720202533900964377559958223166593320453868508067055526984557879899189725899738568402342472586706875557805291774125914838428275605225835728063452808357717431415547795295543540603726242041005149976758575224518002135709591098958629125713338775714122244407075261713084137021870272311592703698363701077834221007210854947440872348236745900465702532140650450125605811016963598215025709785337851460614076777284166450497780031587915594068171569964073024641252636130176449920512318358801864333792483394156359353708834394659526627567253374212406695055353021118246382809406700834270421877612769127090173091704758497137919176069438601395588592347291834734211575579848271372849086534664755733248117816298837508922434829543117243849667496127999064313519604780138963597391356913344973191369838673148377180828715430879741073933128266613711271003174057097127508181862024703414988353797692848380412714131402652384358549665856102469462621343912424072910505708268785693023983624993405060055042391632277256249068279922963661598514874819726886198829548046569102628942114255939305582536654676985148855494048469200790105512158351417238047773161827313000582194772836412623779124608258304447486167327145261780977137712510885158190784933485672935873774001602728240806534273740348804190224150784864313543101018914264813035633809326476667918416253204210113036192314599767478565348184221409248155670419400264976050019426420389589826691908930763178995577289106543506095650669933742457310391764612173416258606500981503933350509683990021293920667898358092485808873625762529768413147944789807231224509684169402973246408470690273153129723199579348929499982252796335027377604469956481342938630602516904096958968769093377500874658657919714907858328316227397935143454734911651791957224695691220422408534235233348274019737853135816895103875259331526666715413960389624847759312876804132900785511855621854543590442801193021646160499405024652261039869845682580818539174880819481709081353234119874661618200480594344964674263414225636334528947600874131574258592552241445139276425720182408155133228402396590423928422817966629155842223870441315772711683136738728408560490822102672967763550319318411420033229388177991227710752555389922539699999070199396186143620771491633133175038440018202193814982160253955433429617724006192779689154291197777230174043054391895491931559000688034824678481524546394887295480509045678836884433141796382774550556170745630298871426775630952288814275261709548840849838709737391204695086796345640962511160773159141145578216289015530249950389700835217686165309820396451367299963991018193288036890260315399045386432903615300015602969884369165565758532481983234393005685068882565381533463006205554228549106506356268505711095541427582681618009482509932015169084275918337276169034779204616752124872327700531387029086096764592481180945419856793961482963835919673839448416452203917613859477560765986996578606217627547395125114196279287011304983445794081056399263182954921755205312620902045507493338809814573278424879535709779927271540889262160482257650002868272110182191023361820841861461026871070036127899699120144214971770672046405252125323644776813026182628219871989735858152845078353918692021273901613508493481184041348668314430115629270763178368421020161741433738147453797299415851924684588688623469415662671352758169185932945651828335414891068920020369159921240810341478468183467588446534357561767261682982948279132055972119569326931014538984728794897526436945518742806413461764588841655616341743271386155194949541167908009103630251647133431944282978235923251552907428416077889080262558240518719311163941738517640443785012144498389366177609255843313712540902773649230752164426579365788746204895203946905648855288293103614503210953809881673034933057938236883856534468742722624256292456894952118579815871884503168125790979090315470403014547748200139776932243387339490303327832424838282686633538614454274538574766518400401630771991046168004392524928991219406745480206404855647370448646536775450007697675588068902600611911860924020985479405178240286495550552894937961592767011966759902258793044783476699740470755692289768000921728386378525861613317404537884797278226697202921258535797213320825067858861810867452832884894629891427822813367792933602104797001673093433196678538252876855936118106529648581771073668145697859187083378639844313569164095827762662362657914817975701056950223257638056975522046888063141057975033424746530773933810467341728463288943090269883136597591779457414655607984154591651571039401824088738086007529102189340248824245477510237415733769426167592424065004868828362696159853864777491684440361337067924523079440999312501159717600477203556835268527756145520356741802844016306727651277556573209242879055382259952903745081487116063144385118556450699142940935560128478450618144900455147417173921221525204592318471963926270661587314576400361413532093374379081064414659967379800232443473945268773304887229311381012544387963121615012057840989204515757761182974098398416815337452197495796337731613820080333329396462810368551264421015926552924833204179951406263335262687646758373301093460467605288878809018350555291789572170380064996311161003885862347322204562866198330436361524939262103955982170311347099621333648029730232308172342093838899479484626338485143459222974335449281694004375652638105834300642968854404444860778697765229376025359842808413756356667911438646630299678197207116687789714952209653917620185972876763237631567195222395408745958213403991719572822282164480594345135700284028171752852020583949498476182662832251817288455853181104455423531994011036884042875532366975965361725699560505308374748889670168685485482540245059032646602248559263905915387330894334815232574034478895476272211689986567943294623530751224248929014160731917307845651950413623172562240724347577662145402771224022685811793922037356490108696738831887434941778113375310376252358022038149152163414026239362032459021347998968851850922996360441293623033974984090640269517803903166502742960653603563361173301940111705939265738394713604295694432814119332236246748498877233189032764933668374691776024726627698886407390859929904266466137417745722714299615243599071345665044584473549853559949181167955743986746226957002574720075394976563954722318036986804000697180311463176306813530673984127522081321857334004771799483206149200242123417816320935327441993096050035838505161204836014857768053717738346493443995993941272368301732173188151427617353285283632523691078576117778942298087721844238167755629938172213244692077660118193704065870232375723783841143970828623295555542949389836258283608036369165979324370974131841737385056183544941257802631756413931861901372732403563209416196210571409129342246747502834751004959509090732814556232230658524726849447008197628689817774938325821586655811733824979399546123372113101968668187103973878040224488095571660638821129864459229159403001359118393312628766965897867367765512801649456865367738141766768275257826286370039698344145253745657226727884536280438438380465945858436703918318828151834446403910719218625854235284055843307075295233844478900464496270549390363606308402130571477175054595920262882612855370101233225343650887440042379842339011836100631940230846800333274467305297548259840898155703576315127603844781285162192041268519250019195946193943152696411378628017511375244846955111068768246119709210190210047221211589855042678016142759058050291010883777333127114840432972093479046757974684186977461080805263867507559731718412291107858050954332310373971242597338751958707719273834290623705000101603216585304490390785948148783326594003520973791417501928287971685796681733034515496708602420970732275286432013403674647640370207121388687657785392454153871559148617089864984085287604030254284783808676197439035018697969562172892155199943187632117536872385906096955340033645228182518685025103853769946396368131247346723146188840921005467016071302375658470965690116927943867302749209987328353709557918735131046820158308256655605209262649339328453421578715156718056171417449787577969433144532156384076775119687097194891271723047760794879874107986093397998100613713350944639050644954195038769962247178010362487729504495603188270582531833304632204898760000086416442019750275873385161634965893599427937510804925900655089361798345454580403664720944885200832555751636806102427849951898150534569595299921081214710072128436797301563810504878304799535888868370941752131654271122524662072449838059215189776200013723411508599582234096289683645808652806819561566797479418523700942631632038591250265579585005877669480388670815553193036547862947076086985525598086620586284032039712663899027988698274249918482573421626820128641497360408730746752874411091598703475844848381671659480581407024865734179336596786003425561753190928361468546089756886730009485622094274435968619781006941172195806114528824178206443430508129657379079601485913157518221866820323416108255471667387271002765997224504236690151215364285423009583967134897633480084645744265761166874221704605444226592316945558979772752013395885540525003955398693465934331923922937244606964760665301531047931046908157787351657925729911650774175222437195696251909240329776807724388429176790220503640963760732287928744814185954763700744340600130807721929483275325431968917280653105946314907141252584592006326674753291783755865726505396540192916914706737027023281592257702095035459075098132529233881241195304407110184058880668662238392171525303941576264737757037673285645395404323559135489588370090961865782745278815680035580763672912517123655946586020776195189192521642839011716839537555955416025958007907201904983143006385777852156097030088872452508911469556075887184829260743312824306227983691248824810632092691315793116576595749736051498003807516754892029736901470099218046028480758987119982238052382788278191667240023855229498196573519387203074380184819541464710273955123505693572068512349052703586033291317347885338952671853576165989103517699145279001410931352190126262461488142440123905756610666955218781903946619913952758068146634360390798172376439842856469480670029310287697591576788142544806194742079921322251483731916313540218741397914924558812853560706369708757292056547406408450754950835281557436675140371846032422071501636605241168774878039221522938350427164296551775393352058511771134621130955754157040639352365272811233165172648152659464655781699353820454583651618041429241457894936424461596907395836245904781946232421336352708989068198539206996217302881281999394034718242752465179664324113500285563469716334040028069405194287927588347251293304760601900973727849740404554830398078445116291060469465120900304375613192540002012439383159940113584927638157870469967726835234833619167500410048938395785800636288380092083804917174329067241633207508090756471786053167218024397905685426724002868778004758415482957618072144151132789970623266978483990211640017684561416608060687352422736562410954321077409051233127674813053838121397696358378998015323463808349911923395545870910402344323500930780776551252138441780321007690250515733946138423340610346735092844252845113924383432159250684275918538989665136635516964126160363494427604002814660986475918710766191105566704241205362018031590323772913237748081137464830721758740727277676478010693633652656352434170602315465714423562563407970043576326839230395246641468789723594676070864757161278426660350647828187711586580830606558223073454199279304807179320134512003577598160313500656603197855310334283910939112143172694874677437091710477942605085645265246630109045591004363327251291521027772360039146494328338200616809048360956991416157268732117445274485866584464678322889184089224896469214690040519102440698273870407284959627285364141274844380311249359136530352404816655534260864304955865334570381852156365802053371203942513474896956451168902864832689671155547312357383540584733071596090553129548001358704483628304389183625708795061695871915700775090117876511603646880343459090463589669528573437602335400327790423349118380906735271100995348189309218160869829891156073105530344255195710334300276504372441062602646524669259063096133596261665055649133607638893764502180846432328820154626178220696367966583101350761600410248560331335902148698439996875365715838732731384913387400137634121759981379771757695472908302709797061534876524282371648043007562250455768831855075349117617574423882249067257366961590792513336768366375824182140908034629016868284176172393350028526330522093002729629929546175519190418559945103460362661791846278331166563788971866587427355809918213756519942035405910035666909451835877774703158318748386944057011740263378385450931482098183178151012106629723082770841151911705652957065090625176150468550294906866081796749039650145724055104335441127038739276967061239232267441003255296174189686836598411220804171217695601541984050658212943446376127970778859435710697065451087013399912813998231076234616318962520113939858098398833682550024621099357257635188034018919236430974225183332175519358608189355939724530748809661734421519868214688162574797935045063294543589177746477203010496257567348215350124850950487579116254500359018192540091504028721924587649729519872398795906132688558198349775567277343552911628029723604336375791246956115937296529440951626839973019025571756661013051770813069590413313689388551592399494421267838840856694413268548470495271081521203521262159522449660091414316227018744460763070713343710190354231222436987409534699372873087314818773175720217165994044906523523297937854813383832138401604083400945813928250338427650415380998205343485032147557100617531369955418792919765078370426655829241004243739650185968675514224593826494463519624914287865818005890087929983532270045074882145587821334406568577204237438370522995263436982055689980055956213610462241062013830434541462813942140962945480039095514182174434112224606034762527829357300189242892580716445975958256300434164384279045743363423915092094897910373980864434695117292835578663209942943191013871972016468372180297275210491182787575277084049176784640961264217085868505094132474232826902959810628274555862070290459913891979894990599980930186962575228799940173928051034492760391692393849272071217700921344973515495718671463183333227480316775925346006540186678364239416120053588480060787587247637173199930400120040924797577971055366127357437985704963141760903889653508126563232880469932535200852663255727479742680330518026343794412860309735908897987460434915528917878219327292711202031489749920952274409458595811316312571228205488646781524674684279829681358761963640897498258043511269984810134815708497380570094599925060187240345113122099985441584424656568398929098165378732847984170272619663915995495385460657330658108280054041210696007227319713402186317179831023916163367337634228734170274608670696908383977325900600186984566684291206237385403073905319791134870164511542714982796865252128588343202418575049482182980785503531988329782069344579825604742730852588033644181818149040104525172638927614195129644446534922398377826867351051878187825196743971856720893696072944793925758161906412781273051774112597996845039031831803183492698846392105915413865588354912619959734072947519064478703617198037852433020648502030697236130426462907727609377603024590312015497362714044146738230326763795910732432425541514593382984574908285882005578660567744872463476051869906708446479894080059185173190286324540744068052513346606155850108528322362180162446530972256833975686077046556253340796393758768751187900330471857405879747686430545567290145175638667914983491318452243411495469409786893604202086338706033378524692324460638335065700748935969346083647290900199159319149346512461687739048243695652247695338276122186720618049718228109493357550338700960291750782665756097498815742449541568803702993776917132779493893051350478858782234655950354840647844057451078715569028779529362120767667625037545760633258488515149685746593086659601670772763137371296295892371743434708745504554149626327306823757698647900137684060843520280362766110223294741497427109602175019420822496296917714667798398037495258890275300593544645466748710091421134359517513380684652931595536117983848170153705205456246581654034564196820112961527738998320757855746462522781920547323067098630690451085023915914501910846719414506828699665983406270783453594575501614841608994042827516663269037017870378127525801512839683016013411162625857426039812462548039673187955644363875527445416370949637931119384716918974566928773602831034192405414178702301559129138787331425391457263071206981036994320452894243394117155264790851695672964139363634580751567210727477020642725106958439659630023154383040665366505077082326200629061134655145302859531155757232596666658558048531973156199398106495377308231387710653582017671614574565027048378719502818031403142650303636147782215457852700161113618392677329971035228589099835393774638222616544835041276872625870810096363189545314888306093182438888995991015817925848768092892622319470261115175625969460059987588626491694420624997353633028348064562781728130337362008693720972298679402489231353311117679904259475792924205167308395098949004149779291051820761585366281195718796054993257032333760162170884692948994784123193376023530350075764572463028322008652264543988148098407305961771348260060198847417396815350807745054292926213215828921701110577240881093451756358907918638044215526549342673221254905449654982850285638162832139146337619636746352303483365200366827655684456311776829383059634607105374532516284240645655110349384674669849774084722667023982562931033566611731702099565653702487899115652069229803776441542674582489748652252380874884562348467121435580764838618478858142277583374077340288783751540011539297555812831644289720634937007725878005922397298111734541760700999598108740708901490746751129119523741881254849149923977567060501905548152744331937426144478600028040782811728343695465283006899790128803764714560426901073574329725097789416744866026329765222599338541067642597868803088448312013017270810939411681657345852065602122096756295476050370280573038362995080257654293230224684291246450773631809255121582449826971228849868168063396704913225525637679866123070747513941586289818192795737051561907799362401172059720627586357597318257232826918338339750903509462400558555037498302740620821436593831832769217735669837820643188237499935649522181616736873945229025623133066819008254344279433739397523624780707438517868094357168772295299856466706828974585169459252928745057230418360947359520338499229213525660064850662210685574782847432675412155132682989719693739522187422819335323030423353613790523273429031179357750453205486574835446201570766643709807819805618539538110174087553261350996815463801939464751748527028377293319419282577187301568849855706221287994336738576137022160131299829827977028144602670453978944965259823886148540320694187603152797065459093994847726251309647604465890165929329781860128757067939575959332481331058586699722825353294764144158342945320094177453494105325697029346777310391418228495978935533865406144042346489069777427800380040720346437819196830842225143442074261646315960394168144367627396078308223857320670075196439488016805701037605750172379239716949556289244102286963481261678431219256088930393126488998715602820240283836094321356804936314262129211664982912973804868739923488580171709533989708220452059886356096335238615865481438488757767791784259869606854896045367766965112977470230721732990259466182681728501317539124499868202656759242213853287545623092424596122215272891887544503650223711308285505892667815275673190135909919508652619278058503109238066500758775774744272656830645285038913314276075503706460407836394438545933463027265440084552242744013905139325708327972830239190093997435479331228281958808954821054957205166356836678258229535809560207216227878920389779241700447981401475317733510145316426541998595127215407447603470437158417655489242068255659805224066367692350742572911854551262187214773038936789574601223412708756329063977271098053920280029679530314523314876254356338008220232238260923699094243201274076154338036466565610906431439531918528064274108811562364952514906319136429785532934616442411468099515995594541814146915146613438987150681105479095156283845214719548929514051895491409701755526452625418234470440756289234228968290895607813123499634592860083424797946204493503493938608008385243334953750727972805475536362826070561537617280541154035557493104296920333703130806772101444434984458344890131122438805633693103752067275282658001822552359347335949265593377037315675628137216602302457219321596189695909174509968107648637716677654299366681772224313655331276712620817689277206953986431938705470471751874910451301503898506025096778501611728042567477364198974193353375141125430065380872158511063906069494502960884128537206884230673123187657093805116357755683738263652110769418324674493145209899643453817936707777640336499415671218884422607002308061131536206558317914034186346476913530552685429490836088569026077824272753752831597639496029269615728744727605551540347942073080503329674590722017765432522607541040035526489419513766038696669336518111686511408080383858597142381408207850328819207740806587736963717228600407830255408446053900322913346248806262097045127555804222700711878506067838607386811792705985689503832062904741117923828109204017433615712491145723643343993853320774609506814370423080109486815806016810109935501840205249460719175590426309862930905278722357542395317253564881431401685588348432872558505533220040713905300312902324046751249990163209323542606210628901997737976542237107911899379254837141090436827871413873747706143385126004769319771401710991600598316407707332005303690151466588055348060405141832077350595320391845789235783365450782500542862340069478115828599871045885300698772503075412157995445083692946056697136775136151688850157629450369921426022459937755317806239388098825611010119665668842931669388787054698355885982312771086790657310268728010520355100407690172473682413793524531864133806580959612655679497305637273364516063155871670692036026074347797230197730925667542448615268928510453158995249056781676886822092845365408061237974198090776030660352556349073408490406985182388565041634060493446841726147534694848758692617762965102793722311874882469004349040734859126463451181043579334573146280275885147445141010107075655896708985921683575297498760606745303418085281812866224684743491153921349852254120922172760814713722355070813898233617093122204059275428129801708822138756630613913903157373163668231206279842930715426183514948996794449299789030362230462254580270078069000288036895956025669437242823159502044410051701574105488384308140335817849118708395191196867984078316276846625314380917710467907668814260131323208283865672958494236054769792482559949644826289515369072887054460886135216031621971586777175070496167595308926267252071434478784563403404022735238419593254637885934812869021294343034741919893647890825942786565839742916575159366586701665741601209871285054275425825387073096835864258168392077091130752679747281147875179952182026261202705947793583299395783636387407064384282476735325959009696538416250595736298602044660160093587086106237695960346518638570115231398266712254733844987492033500143934659213465215093976383596060807478838133506805875502595174231459399863116009229406259467618717247794646486398628380036506092576548176519355961675644496165583310401361282401207783461865722982956646574676953416041776966786752023518538551695561690654896547557406647895907872894899395709702936470184200971303608002622318477666624701770859887080827693141597040706659217176192307732913737344289800327723199656928045007443084179629323043559352554427189861730025549185452109009935137913036670858451789516067380764162169857971746684797568824491065164711534341595349069349047836386184883767257217112447769833195854001604617609691960851289276143415040117737083541917457884795815512220241337123052297130590916980259652241827885911656341216836943082340075078471137976027412788236803478771711506320335033897957480854817805714551357641308118503066431613603950364944851335936832180744181304612026892049969760213928001223921517586058960607026117801575898922171162480333919768807669170563604566052581726330277827970614800462886782944354251828743830905425741852346374675474934712672881399436964670306191887539803857784817908927088973735311225157037113200784451813750931010485653510442720018053222168111236105899572573963373597993268551714381623427344047193146263486564342212892383520419972820659187349169075473261574991255894687982237706075804851004809922865302003962693901220609449333181481139480169134348615825194832025425177780311227285416749945282381785080772593222689815173017168616928195187584674070927436905213543322071782949186732826102471286463076314026401957802506627142285735654770857391743614974933032764477275557606087762672694893384564383373167114248389403188514933831971364400723552443127972034346403921363674292764198102989061485113187613142833631844528165195233870089709939870085852389448226364940634789708542233988916614454560903110449015805790320696519603727344346031932761016894388606984744964869367062944137796794773422964923720325780119205859229317238674991491614435687802202464483414562492896727692285213619678748234686794014410078532631286225667397194451725653555851633220231308121091633772113284417291664968519755182344677147565967212729149092758524115075757795099670546151186393805103668439279046059162475037371672195720837537121302565831455443353987881743376134090227436317978360161797898053390791003637486720636116401393121871669741033456279817620982961442723114577811602234588947741362371434596123028104892854291329354021602340726418175492171253944120820257449100279506671115687188208895807070470883085563622960332601497144797699234074359487334354278629995773543631854082046012590515675713570144137719578738231339289936497449644653973090614917523826156305725999859285459214136790850756762898506921417627671592677259714764035944399728131529086179972372187805731635200282552144039255157181586600225240080957479448561734043343872736074136810435762005558789579094996936260653571522581834312384973401358728146382745483045151088843799280240996014845743603164597807717888858873893480113708782628809044798940773402403803390865985517528644099698112545630804237673258155560188805463987049752798479642831423338723272133102323681552471375459283577161504783344587069213499385393639189076066874091859901457240384808690590734642012097065292361497438510555622507371522511032184060661476807920741135835125285538311542725016577200533356728784785967739780481640171203826423499657222982528757727745951977611427752250632403979024855148008673645158843022485560828238883926133914932089992966202703759542110617023841578563429483219282519938026977305664093044288344235176883832237013623492024864165900914393471242535227861733645881638196838587704103387312676307840575479497306404937599589481602067212814282416162094549003171426136529859938219771684094955461664371695385960976604178920702751300743287327762664129598711732844377399884307253049431110962734312755975042926974482809335512958907783634585899875264950345440452880304289308803840357350977511559745436620112302316497667652842072441324480663746404792855513544817374206265719938279343747036869470464074456767822413735041815220817776873959478287543035816717996291454515337182593443542211647254760430936073240502887645751501077225348176629867272816950233194359012725325643047292325743188580351161601974527553737649751206680423684835349213340580168891470626033445910189535562253213329664663205962553478966255715228529308769066386032933151271193299176355681325536305554609355692536601510386644206959278377362059064066899862718720340685592564367962981100511191603806844519667010599352853139732840815123303433066292636255722984614393387954819731607233534229734956784501048940575526908060545197425873946051228420444494326203966604393545037821190783966241644069144064831940410421332069373357949079782233624378719661770923708452165153200453992731613489008238297718764995225655775888702035233193790650120029229057192206051084408650280077315928231045922261870343224775953041593460099967888478249990404873241625715846114231569085104806491872806651527126110629258225486431513400308977635315431296813611904142439856459943164572177564143200273149974554304992678750596239837173453611861505276941889314041659638296136845067942742660995461374495533026879293224876434879350448499276491319594066190274399413423327209503450761905212513928858714745890492856852053126419754340808451860128276687511236643857782947510593306202999114061989444567548363363469838457832171316385693967101228436993004561178082892415184679892793838279361108838516992260593674325431731127966805320749215040542793993227157596698314236041245239709714574222487430139776877359198822525657414016501351757665192704335802154588339149115683588682326044900520354855226654732370398197022320171165670476344883179123024810191150325653157249484602000995434329033958758418852751785331131517040732435114564340117868362080369908430258429258476503098778450635467441474186977151901596812054493375468578199597681487033473157539503456301520001972402141219425772466011239387266950250770816334408097785697172260865851054735159061128241534375233633922394753611866915488014559028408102390785928224391106498511315746352540199724976351237556330015260677431999232154162743779129764536707964682671499270710023057045793513527742982193101200141235698474573577910268445612583607228101640216468231795003008953734711838475206556729674187020573174565070558844267157004754710654497758250059745876631078701089293925913787657265395377329901467567233221124786498863948314392276833456254036688110643507912943880982603916209916741573118805041184703116826844793095129703854005498937195789676615074385300427975498449916942994207312370268753185366681517676755142361780990687679913802466154365712250013286032974669605001902206877208837692993147148226074681329356409944104532238738519203191180196974617124313788459063513667428998034507376347437103020782695702654038163057860493692235412762781149600136214276323808792279631566617696215412013007316964493245852236966979791659083411285163892320641645078646731958378904786248650215710146654586722889801623318000404638732231324865862155349384924230068518827176073064168718776658339868774878941539341826690400175018333904056163822109850533634163883658328365981137244122795309923374330253058423653979919406882515056696250460978452410657491218333810068966330628178271680713752609639755927076269510620570576965682198094701924950469056028519612614307927481120040853317218925201342565010073115490359989276484238190460322357857343947526242901911741616511363511717508945650566110715030584449734758984447325714786626354761301713765199817702994418624112746165146933692736872591446439860754088718970957659406470219690058157766688602282126491334954628431442764468756205901894228846221070680331698835662081712152450110736730657476096403903592134223238895531463629352051970238186912727410684149762801250893638124007164512317502895487174780033092259822405205857748086038507651405009685025781745816882775399306476026411890432394494719478233055710543689252348723531277900067718209944649609975480785065014507107790779068730621533104821583582266471871281998120489377128710134532678579328014303128983521670711408008731396883289466609470534006898848705925369146073998933202488249077740271807355657559837921670878644508087590398745339504577572446455280824212351775989010056250420720712519532211875667971569897858797579399121159785658745020650595915465645146571419019050444754206268391610596324682050720296377777732369870548193685678813354349130170156225086335241062717582357828242866725438003756314627813375431008622902674393953250279699424999196196206090297106259731451685436788301576106075247278271784443898280350691937079118615696352518555286265112225257748063685886184543233213054487285941807465721103128338461904654594619445093164038780918059880819841890530519324338724685414207333684536943058623311616932543638057440677619709573209455186092176413949230766689827920634525389278781071046365881109457878956870229947499160961343710651632410269760398139188211882280775357818356539770948998094935649509898690965664263411040236578129635989178442217526841183364200066353764405284354903836009698845735240732255831602347246608590789342427821905053639060967347695329360150767448204834732100114815083989314402921707852455621905905381549816520518840980383944007737793252023804080129106161578488206027540962478308589572500248704133419677563631190058685555141517084373017801765112843796768158793570998277958566573640996270135742701884513703617330712693413715568777999484018240179684609521417525736484744933537639804959766382637442988645208114462030084632153948223721446540067132034851872371373750037614970540853079851431022580282632153493819234345143038366740460537498111622823177146182091999731556332000850819487621767793602869230749301883716582760929534026865846845260758390992103942287123247618642121507374082000663263996052633614953533069866419248587441576904260466858469753829137049407531611799387939751743334313510937477928296023832344491390802283406326522790588053683381821586013116087069689214686416424891419229766499428346593506909998321182237438851517928390201587416143493286616396357394912280487898269089985005900544303301924132215729068066792529498549513094408698081143947689443427472988821675426519413061788002890447393319787255916945476966846823368843596539089833963513556001269791915708127819067515222960276997124174015231587479310710033973535950957793733918664830284372921828456515037151390573789946357427204418167345088574122564770648622063201921940640638577111682002458931874819237694636670720074718780059958374132768527233172946212663069673702425944309706972791376976635168971548819394414795574956292042056438168441641323512277329225604241265168495167834269170384230994601026198810606709421294460296371520161883769252702499540112151781598823084721963043430001784035093683500960150820692675663181776113302878924647203788878627885830992982417680281399737005208488719600404405707584722846364650626110977868957586487014087389958096070796435933993948374541134861403357329819321832141773866268129131896325598132724029535519927156932148523115817973785627655978614987589589584231021147970919512321369697867307317395086554763785617210980840423885586078730815405052978973248977790381776381297503628731776688917959354028620261597857491819163381275757837291885426862852230077739166976081443679176818237342019552951041727190271697279106871445800439612495678241346987966195812820287224395428957442702645722891093231752166415049292170099130392917876012861072675965108650789494350231740551667846454807201664137217854819536162488221390697908975800341930922773151485721380081994142897049438192955581002239750070618577253950908215971135721522892980218480673526601202094879710612566370072118816257831994278237840087104668720613192200183688002261487777820250787794150514008038572824009757385134654690861250241713394646427026018963368234228482572318625762804838521659381050759195235082876992063392160215306697367306391269825564456714019128724701144833965012739268582007917557085658894171522492342696138084395678882321372886513502091125506322995259018868327227371427312333731624732063943348206687498358487462925156855708088276465166223154341974987477153541991772948143716805811493386401723512677259721558353297035640214463922257991536856287070390585613547329902110853068601642429049130758995485755297018966694620394545077547911447478836733123076533466343949012259065416337355667055913968340421434418019648811769987462032049188796502133431755984823619063862817814392155145340323021404614918413159028937630808368980839152053681579586581993994515184442738914393989569918192179984969559265191694009261543499055298425396162399449724249604449791796762745880583954762144079475008494673476393964164886304812036009457059172477383491013200291679008705399104133563674517358998147380027127989728281214294491713427313607074475227218416180441240083272154941710401125844371150645866950042322715224590021163714153585249460826465963030961387128856794694005881274568063043693201817622330130173017925321625427081177862353314187021187389689534365347248773029179527801797824655623884300517226248030407881045735925066985822148610846520002601833460093394399743824293995731395443047912286400230505226672201558089525561747088529585634228882290110379070809446224358777139288829831777393754400167677792317626387386094871549541364794118966127133497380189270995394089667217288312326896059729810828589258066128866278471112337796375354568969723061438849278777597915242070753719848636716790007503521078581026858564110601426626905446798580740198499827568602499990450933835805157886391127677590290631644295867234140856340453904362530357699937702756339043381305110630903609831397093426175936342009572407680702188686393881104488320166593364246838526099340303070394468114524105802249983484148721653210345455757952373320548697652327889134623548591796866246678976078403247651337650516080347649104619583095956773603612845400658632451754397363367289194937222007513113053848193415464035728718838379249362599884128630640938144101357259820765260489550569038272760945657984688255477907314969132528117966360897077850703975110457175885041507877359442923442474319418490807389798870201609798796062409531795031115744681735189250029877354589329466728630918467972091332022857831502611101368269436813177488111732761151375908055870950240753623436034783087947100250051772719518677825227150945258485157837025128512888043271066809031554033934905391731011577939244707586128682629416616656436957430263725889741445931751734422125153038625108196430327775359198531909034925973402824003594250899276506341806152032411102413772566775904228758930182895926333538243333355512369423525756485813962681036128035506380115244693931098483808099194117552432056798572103289145426601594411250713175823629411238122403640132794723475738532560439897420781339288969975307890892882127224828596869947928691968272674336519676346134525092025695858236320838852008928390870189849427996299952159435622770376661748540082896827674706974583509015544908362065209923568218064985479543712880853903035296558228288308737965751119804951376889184960445235182640957761356299415544789594964940837411108568007449749793074109953138915557072232473584095537256526778547969971251904848773848094717419577348244851290680782741657893981006421216184641405518777649885091176931419398637187326035009562421370506053613047792258283510792710896797502035214899802622981377713044494574460373663672127715516033274025903538410705570346349836362475020187359789390719700699485144245687793827271477028063030101982987643295003145149701655594852585528691253370839183130521403217262159353790583611305883873622318340621420081842609423423013302675314823156417525516406597536313599810122913355922855614944443427109934906816611146818124074453886103777196955187866447365180982972535646895851914357186392368174829249264065452543591789274170788545448176161476290422392513869450610399063037054811507407975228494067720079338364405628670585462690328593004971595478356874566286696039187841871534690782960827825213848287019264219585623369753393055551302434001624243518538478525738186733094670137430068212905392811157179085438789798452509760750683774635245405646064094184283498690958492492086447547140584466656353398130366914879773019566826780398047859097589069896356657413748911007217534656462740544725177150299451206782573215509064355035141460543458682873308966962255930957353514363879491553913868124341964429703192548337141031136033660271238682825365935018742848048708312745178765454698364959786688127016464846570531090134543028536488821240763174393871414271523429957797148923985797833342206406566882279370506893591002677426754792268924879249682648232342716687550565373962020602763175928774427609205007322261489886243573309872855428175854986046264245647290124360071251475788966919409983631027704770262966473435150023228338209769085853045305834847482217043909137431354230579977790254888855696002046158075464575813823421206156688625478759246412333818861200696655816223344138739079857884472935362945136109933958216751116825062776690283977831686078192316576682825018895235235256031160284751406431424399444572367498480875427478309560682027039377476388467910006249154905906592973391144005633101208036454862294671264269819938434295220952047631150236946505727712577874032484016621632883618232907343633893247816833164212616058964669284571974979261918937041715003614992634176523424672093660697510687191521329572890225605623995660833694268160666550616717196578239274932810876738582855739917869217991083414789418552921578358397776334233968501982366896091908678021284061313774074959333149374822237442726424195386064117540212800760581788583674400197620475532160215763508504475865937562836670465687759979359316090820225703084012060928604355760682659026355003609057418296109281962460769314566901217127241661077537763562615808352957385523826093363087496897270979632523424001276419286170283348283865678583320761379068226841953656400894139252871812097669577300351775112738154839963931293253499848084606655285855066090029725903407367030266871015123862462992239546555063918408201684236486795336515146060138947816170070232328793217221074130341688379922845650738400426212919302473171540450005827206939311245511555344854538189958817603508716433180471873923856207529704169399651710387531466770545807328629465390467550492414358123838301008205632221465082629028540089735129396833293732326718516947051767442496933554780460931531768064654292727496415938202096659438141967192868999923774413037144796329273374667347848315606213672242266938814982222881622420345437644882902072441823074590206882861420960232305883597411234498837171699317896734166230901670724404541219316943618395827048968337924943994180882127952301846162614164607710950348101779298940088554651364461957393780832220456475144610899627900372001403804397825875815366135842481389512607837882036650010555085727536954465953033334737777339916964771968917733112256605275251961166746086995697571431385897270636365528069670779126229249947921567898206462798451688212193785874929229987757033744843260193591017655504686816599945825697631119200686640252125841243460837823794454798591258365892641562812031482182106510290929358863688175836466821444919896912039497186446158679676718210702234153034569796164549408160409946390507364890295770287034176275082008968768177259798281330434572170610645343340504670989733780549431138860110225718358003552383844044478521540868003497677710418283580490750609748480406088870005190792389162337824480346755368711852453285172496780415910463301909293918521500712886945806113301480063910320268703053382860395141956849094205117949246502018283616518538182630851572444206834036373480436251535716821593917447037392436398555830730499485488176984676360481208278840678351730081070521904040109933211196894644672159509730827792452308151866628274500124885091219070446703162498167983500814183259594410376057815771669439231126599567568862904428605176859390607411276069770585700140397749930017917279531314050155139101300960672724925505104932178124527767715467059132963008197580861522618321867657193884553613500979696099805036793765354743988980925514567968192342137729686791473835792906782849758468690656138118421695741546540915269304946489015227567279009444200826662604474417791099380113566959805543383052837283362269715106288504994217406703711169020183223610179983180668687750819657319220873321862482231366494266514194514265445459824728766942605276069589416301160529164793784139672169000326108352956984246624708776396055745864161347312644551374782669604345129470159343454249992305712818187537341811698190504788633644265300471615649797909001616155157653017702615536043427815245677054198602661381303015086953909523661365207706029396155208403805136570478134872952940322512056267802982012919610607863967677471566853319567789311058005878458124246206694694499752167819657433958210075205887013197217079764187845946320201681444035521448129352279133864407496651316073334812341902414627687217239695256494711950798893454080419768357787159778470560111723881037012570913509110617681084121390824530237612363326421357475166488300568241480214449048635642363251570695489564090303741389417213233295035564253996525043362504670906172697044776017246445235536826668517878340027264456384909882454629794432425705281505146771864223176913127652922423483421382024943499166858837901519335922756038015274761306213970135261334566482700392324904655463942085197026217465462953791031828385855189435424798837133610223005712361502039798632737242247593920150742538973163220007035429215057647918793115711302661870771325478006730023852738144835478215471568717814848277988496348277553642848314979179814167559873623740331989248677587101706642041820079336675478304247094950427551411573367862198383595169981724141393564361754964942893734370763715336221155569127902870784612221270302013485710201889420194863674936098655121451388110147282914346529342380802113324039136632377934539767106176902652632167310467234822696159300293774158657209565217674332722833655656299788947857934579966049422514853938361198382758719991555594523824076030362594924248948639739180218490940521614784933064148546253348230636328404048282405928872689470995184788915461151398245590044553145393772957973260785168291774637826096857850548127787256581940879966668488846820596429139329915784002272191572172343413094261056884599001336599827141856972696064377091477116669966465614494336997782115735788822549197210512790724242461448631455186444955969233559721179263000551355751903207302601906769225750493816378585637838381156127055577700430563110182430559866705954253317610616050977228798636501792489352619435180676193017382976394833589572023662558333877821551837636992783071821057206684244246708606192961703409432971051955414778321076562667715759810957962690712956679353316195019639384469553609151964803765019136448528529637161180777495681620952518490634204191172740939637724616784861948763866214110699967481747921301764174428906725264815651570024199662408062370135804617543535549445141073405082113474961098251701221576141289503797432589099431188588229880854277033933167746472459214604776365865060342909893440467993944047170915176173006558940696954473202716596909492245737016748465130776417616377334159496604192688735032579927836955308319563215682030706071890001971287510028252769023436248255279398059993327095388394987645517155816361921520334996156959777248495252463275912803460983532651832221329580645271963910395406156695647135369441858054088281175743175261009237079147945628363299734050799619594712395587826079806212695402956904575533732461850994959223058555486159241684538132636642166988178384767121837598786306893206880440483110140817433646842235791314937217667873512556458507908569678718245340574294136772793409652360152040112564013794682598696752554100411772388998864490161138444955376990581663487697128607231140927852544437377912753908248058027232090267023881553764368979392305459848600868927458226934219209058460405525590623112553766879877115264046780463446954604031573853483573925009722170975840614734449084000206930718968390613229860179758355976552054814214079050509558128355282547490203030546245321487873446988996457603933376554098673967050534095558941939651574068033227010007281283211543559694464297603361245338147459755869484946110241787804287546325058883157572504270702445526255653998993841062387409080258712959424386900310055850252505915604681211441771971431703636635501576202375367895460207812090591486013580743500680168262100918797135929548870180735201476944666855429508884730906634106676125766027141377795642080151835437985569625810525017265074199787969485082119700878179341978084390246375239533897900974434285123039175763991902798277369657226606080135775489823688330511378235825749221554598525721128390683257863721771655782175894113859633502294812260930883233668151299756023702285414444091843557265864106431980722991196483372116112295805417367475042133049986035154039941175628470966732036859334652944828842990825285588011342939661326133562681428276830416898903634248035327392737412240266171031901411061629411817758754127703181261005486553273319846140867980695027734392200182179444087880825950279725639908216489382527173906735199493365833588222246339261671316197557095467926523961283632469916415540884057484053390439261606412951902243975431835819179411493523302289120084448602763326257086757065065826606076665148676169146548785978487794694503072893321306334916892404390522444404453852295928337389616858712580864784136479127519848441629637490287114880045444616811346865504987374230912032412837832318946566699667724689958694292401420101467255139560416297842753696914683821734996834200039979017156690823081178483371254838813192284937916421234152928188389581902967817485749816135914441535100024384418025119072202763156350103652310684563781465620649776433410942697071982809798300225327358051510721026552711100249118401153212921192297812479005841666468455708558125981136405466782697917597609143894123534517031504555704307214664275736405374851372290166600469947982325137192972394891645013652514060701665664048437259065169108071299652563435235845397760393365699457721678244276300343268591603849373660377305987140998171990277044372361182182431311486842970952666966143528083315635654080096250305129241141000999529870371598525205094878016145089132549758892826417115474787048711213516601202688899125430354952315273701220115789250418098783519257634909673928219959791612733794180417846534777619047069632573287216745614645485208334092462307869613127440403166881981681133679005387616124768867387739111389846344561096235567984083027528843390529258346522693579735375770670519093090526650980350481780088087430918487816215173566696580691501380889789199921180135233023649184022853274950327608711648634046353006669831819053813427193563366848090051522698877928851190229249007036014584681925420406123884642122988536742512559023871201412711800714528079843543259388933226496321034760414718780402877656642725771396481627276786742414943241635382675419164953552354758846599790963239402909883668544899024606692068714477089160822098993994580397766284745013882500559173499111925974734704659212804717780870050451617523089278886170828929988943318365206397869280617741157445032373573476701778335408737473121080028496671811355816052043247071973432597420268558555109033338916222951888066900630692320186166716613124781247623045700292615230281460630830984776945862060243689892301519023186590319949516828982975440274770001056917162962739569809245832437681702367414972561755053934363995584834488186887201277125513065955574774280836516360226694170483380469662465451463211272284394466137038096920649406913178770339142141850244823868641064718906870825105826783434127405936543848956400160767100124977223637397133800321315841059080101232497298405230992691035989490593733329387774614177751620923144217237002100433951948582665463410980129229180029981224594564608683755766204158328646323784168354232663299974144060294095294685211600692629317864417795545689798621209932344191724370203482832342026866664303585301219036343964812221474267934580175594272216054613109506637866601171876037621084588309546824082571889534534759825559350690242103141784556833130832899362649522662492177181772828066555365280493069158098725129717441509014403103906061093344635678358060191748289122051836731979405562900767909511839706948246175946241953313790433846385646555825506828290138928355018627568504678093686770318850152902180589898519348163841688116629340445257151142814215112357126539890461720769258598900887606313011401275445805630527824325066888283119594331381058671185810883103238583152596457043359405768381087985804915869582932345332943350186752733017373920714689358994373847527818125847083313203996678863424987319126585111904887417858152408095630568885384375057980529387656045849139156657014905248458409019249407881145269376279339731857092636207426637132676034225332938502262248006903142246466941155424259769238738099965946887315318542611589034157474567372075400005512079259446631231045976092494728355374885850662216863431308960512811539545212852641579593518796680656529649701306927716793986176162216487758355178877865553814980537023473821187928989072665218398551664884954252181051350600660823281392716952327273941129713607825483586753091897912464065107610087598129952349158734136500749498553445386131289220918456879487208735990325419964849099127095839427645746387543024507351359893575533641523969887550203118709907349826866815466921020239077290301853870569923953362600613111952290827527103535091670912008460071687942461704970642740793537362076053461744170776140972987854894341621768348133955691236944597246936885330598483748575371420758114994250616102102971040046769840792529690016716010385783202856197735273020165913280352226381455388302576989181046139827393697523846091522861171819930713925301061061046304316151745485256320342400253617092641159883695091037271587178314312401860152368450042322811184596131616898013400398354474620373751840878899079073608419116645968751513040521611975318182786207812356686272406280663583840702940277748069090881631779095299470619334952288146007353570492761002941184153476154584485474994018290948721451451968100327217242939741570171902002624642867991065937712775043132403414360619733765081111747315877021790237716597887810931526317512418403380868744458976637241207275214955250281027482540652994312125890326070402896931550391929482893946356437766963210247733492227217287846065903286643930491584546915697740604246234362299351757976167629854803175282458447049055695547773672955238172331772221223992868151787803596734513553655106378225476633263637210621549669437730258592752252280730203529016936368953510544832329334719587480647190151177900462226251366344976126931768292144599378438373520668290831623251807710028857175826548880123912006450756919685103355308476899714110144881746728569778697354221693232614739962886734552822847021727028618557551593471468464283111040945039487486208531830396424256870653270118974062846002593142629295166383479812501100096488320294519255071860197214528192557501153182268324198439745913592390688216040336201920750092841961013949515878915229735018937546879472097532059617014401507910542307984949442024783408560284343107707627198514012364076754928469499970347548342181801203052232772721143179832126912479770069855107977590888775170709043142325629903225498290629550417493757050088103960367346566421730540974645500380299356349039940200428648690272863818666615447017674823605008810573686993237929348901200728043320581212831518151047256700585613440574530049191340921933418863619624247492907407086458715399116000493751329742847113136756327671230461791659463304730157638247626877929684795442917402289727449608777855971020237422772127490453296290686589570417185023445415053238043630773935656340843387700322029544356702201592856204758107037030978414487479070337730824561473426220970222876605371664610751734826827697753817926365174666135071083135558627055256390768247260995337431778048193473244820034942929708801901060318269682428105941197948521880119514644819416445780339659365339073114269962747310062621886090369261312592511908647457397956751886035108865306624904608280618592902503115744145800122718580781238727651924025521242998353179700444866101762217411211615563945361281179162237141148537264060152112284678622395119637264829370769755640692577519029417398036961814487004646165721361968993689904759653474636868203015139361863236792578646249453988361310781658802424823345152756802789331296006055354300846585076708641664277822921525774437255771424610078300424634371950470515816869109302987409773539476173083959647537618441232479363400857426284654582939363345549408283849233009952317067905380048737198825591351907810759697472387134662572161242256302853738156954018514025179569796750454357708170564667977827140744448023402756412434989460299005663619405677186244220853724551942085467148145271852435467765994995897697517552111358075172579292960984941682677918282841080208110310035038730211008670360502722459828469475538496863486222546689841064639643853885521762692730732492289053093174183533356644142354824605208933593685885477477789577877592232061612883706985675689131133105429384966446297240117234792814445791832975243548293061524442813477767553557517797907929704878304942453259182535262122989098686573159188548131093928071718387919100482428695280481620841463386672237306578898002054427548524839418861965284452124355332001870926332045996778638966608817070742216620317860032532031679400124969351852300517744157803930629792078416586614961941551816653613504289139019214505670023737694746608053404485292743223880644515666735008251563286978274479731675628613735177551972926701286979953143001284340301271862069237535610878728915644747528464418357780714006323567945706445428913508269915489759542528045669980760663879960097145069352828447355147803743610473630707753557263530303804621632404968867209416065768242557974727317354771933444836763443261984263715285966494490492411771969282572318230821953727858680075694957576935003299186713580091443370006415830153064670502095728860258436120251431045515541382714025545708285318877750775257748510864813060454087881660970331352795119969292258116915990158692666276416385958579048651941549594298767656530989615864256695204017779883887428560103043390523055196552966514791259989491865529895098856753195612237215899485662211488449193607248335874963217805343906304808231452785796087064675471883201570652025407672090409350838420672180994533634262275395748877659458523680862182357215355994824185255718506886032170116467096554309276725228542699343504294443592233872325527259578251735592885493250008452558658227831160129044334509424372009429370875785482677095380405846600059950621823034637751451082429944824370837997829022150716980763017204078304283497730609343201630112989627206902369726962825528607344198938467475576176561410860109263796210540095748439182129761483028993015641995429287105017324951675289449898715182222112207831746093597613818086328258907406651496764718526726634598617388054036798575221702346698968633544508574108289805795788432796335986482424860719745298927045415338841427602721229138289469360814779489317166104194269574695684634427508326979409092502496532857834788150313474067434690849793139697272070844802542702560962011938700160648747872225414872299763834143932145211943952045067350484289091999163674466344394194769660253845779433143500327655306313302684932440353405160345065713912525177472170465800282301501272268320842867693086013619720123212107984241485468345479768234509015052360714744942654596339991040336090324155472473543140273088026787943055613159732209254646618142401497283257977228868413953259934848587975004443864620258607526088408677080788804147545623638041997314884689623509672689020368947759956305984339699463678604461489615197672816780993906805626814572172052597287918871103015077742590059682101535109959805587868402614972283699758562076382811519886201773968898508622667585518848767732877266681159231056185146543857132343035431128460806411935327378778013044539438146521336115262436049261898137068685845519839882689363439887598952843800045355378750830573225869883299256826335214015648973544491340628660437801712570410938257814576753551169031510399815785940680698558726955570408073504910497501763884408749427493141641893310210857680358240051998953542899157416288900606588149739062905608476722724485679468666008667382569360841367577159910264870732996416344671766421319341098989917593801539320081314446220894867706809722992895194592998494393343786246862783788832956573199943660340348590517583503316587858134890697986298114477104152889633971685723117554383060711712662779457510110743019531252489742708427465036686261563442137910696837056304401724747945766805726675542551875013123860238279954335475355591049184323801889408504840537595357251515944185563370086159684271288935089517053991355305029888660865767351042311532479317319394771788892659439107360267191229271440774994809324949475567509125077629458545102176269215029133928003602438340733498171841680887616487105303802017855145009932869863827622513785508521808839675447444998156085721037309349659681689903383969956347463660480680874380278760023534469630040052766932314183447083746478202081682774464839259538680388818775265197493770703448496244369566154304847490441179959279107278615761357755848077666424518130042398653485332021720293670932943447502160681960781824241820552665879509424006895587102253438488027446041445580980876170605402062357771544636291484286597542212820215903890036010264173938679146911173367303346919464764585971777897474519852536505648372682721685398801367546196837848260578401614725956060851674329528801151007520368319964986125598663970353844195378835505028592390000615141254051095268683228787070286272223649704364927161866510456547453620303986550086890196377436211265959362210420889303824771671586239668736782358459661829828355617807757611655582143055134043400733096888579071132767366352676907223412002788890052965310653977613043809732579905706436534675176743255851278144675355534932573379621318899068878999000726638012443067566104047719014141062296446829855305694538732450984795705924395327322135127483985628757956312271631557657179111931177589000935733327270723914805429639885286039103415027210292473158035385123046508405525712521904294400513364377848184685492340190083336297607841714815952854547784995105643466596012111919730990655293135226031008239526649022326737213220300511333091950797327820951786784574391621670868777897531905473082812468128923447190116786411139961756151800293863611482491744079181617926422680069885304974976413507242863217054856659946624110476835246687739551846915314329495615231327605237853637689120959534254138245593097518568715796699228478710591263889734683006782821980593238568233559080179710245029671273850474450259968288999665616026827069937477613376661198014683113772789637414425346455439370029472311328269368833851796257724256556614261601754536651262849026606975894738337985984400998973954402341803862322899541459484115259233221447081161245186948620842312607962168924910066129710787695558662723062321408769835170277181060792090322247575603430562216946775947365025605077616498074004367711223854358188074917544869475859106241810737831547030123265387831692115654772338634386235823315641586499023755428679841248196679197655126513427057890357319259590821420870806426029359447308388083279825057848894064946290965497088937469285416573662824480854526799386401798616639046798969300143505890586185599063149656280030689657615747796633893724525667148539507670226295639075875680269988211090088208592885247183749273251195527810017441481640785512831924945835475193004410372863121151371579470539324061067687447452977872754129904425862289484783868601560062328568753518683879439449515466411937304091316590871472798266014059093933677950580116000038318283905400405704827371564354583125181699201266267363486690953874352521173988326014943630102873575681769396741556104995236472189007541165208870785052852583853306983206218062098348727200425153091828529616859716471255181235723907523809487398284553942537819770019135377546580196744370642777181963769166254829677733595357748900919561371284767266293821620391537370512050407945945134595656998867695975978205925969831546894735193294453047840334120184565003114957768127609775921710380570303330507984493653611397198163158193147717044610907997482570057644523106777758345982929295171429632780701178386740804779014753137947463148368978263968441603131170986999646155628731067742974234776354192177836909107057949278564822006458440187062848443924083055305043862798660652562048054593899000823257542275913723742076001930339923457125789199181353251326916053581041955381008312693559355941869232937515724229714771679735225630366310954198374304822647126392636813208781221758128612153632442228241507847927293495797947588651803229533877473465316126967893496806206536445753714525960181302553726459230615721117852619786482285216717489704455999787109843536710373039111845498326585947358318697711410134702682691297552267358077060881011703832378443112424910748387280162571573927629647347459781840079054684460309939359071547872382917024804139261389927822663372587030975864939643960697635234660211372004766433905384801735452376141905489003292019407726439907886810742513014547541737713730072825401462959225155978214870748365839353685943447918477732904358882967367131456940374246875438958154484853790737722475814112727019765072879755835222390941217487818817048093343636750344005973689640570188141443729372355635988058335479502275581561842091243446161132854636194030912508655797060121602643654962422852903567245208508589175297232654716075558384691515754977035356285421028856926109079556827553664473480516221082345623375773868219697554355825664759249963933224410078307192672371669929989639349483648357648284220517354831360612045623752187216113761578780960231053176657199810563659556727051726181422501220804543394063526354799317063286983932634941905113017390185249551512218329835712318507603945423554848337998313383399110611865270333001705425731612389628266830613329690168877990471575749936887163446182366364748207043475828181124346534485716963545135194745358096023605577386632956543153335869265953842068388509855054624983699896016281852765913205235692685738355996133899539952810385287933420165346978277911557762878964040135312790737986719130763698679319428104054324505261574245590707435897282844172238341914946738738934726831312289688696812541325534590480230134669058391941345456910023882826287919652954002480544346228456098116900286270220750357184800138087247981246294110378234407534665693562185874356789374272494284275740995187168737989443740626643817792787296656428968340886225028868530600450967895335646394787423974722677802055584011562194808086112308745935292991505928986000095208153346588136377461202918751718263884312959166326705747530569876822939776247841899109075662000526880890605005069422644677791649279541383392410756695026294434259328699712444645073597599338694229020483306479716608180508386501401403774497974327298903508653357692269530062044076376431938882032774580309599038696563750064840092159055950695235747174564144960879284447329630950297592054324174044739919202200087086337079319695409607178123916690809048860672802466927297413300589159530693480127662589636960833781792356176720928379612789089631698044504595132435954544491221973450733451261191735502400763254761990529219706819515763631334208210666793032009177513833399895822273492977192984622156213854900165399842586154804348629052914338265307518612697712890123991636743257633669587349803631593218889556836144055530845037297133647634926775370560745596931830961466637878183512957654528891570156671815036372404288398558913723041353773860731788017581305232185442687784779219054124316291332778196740011358817547280347556215299497710542176152655392787688424905267081677950235443264220336216593003140919335326196827088899892700563424673144502172384862949729332261817914110408353850052890397670904318297730699085367831483643758739848957998922992569853821085630386663774427509552536952946514650392254047837886610668040405852684875361587898266546085898723087625007051001933196969728644479464943293224632710895362786103702817544464658021755015684167579461070649676034373659605303388869883894431795336866030363350243935025009077264478250625120739455356929047823999380636089538031632496985670973865487478218561458259718844017238914465612038601592283502995030207433895452842424078731577008178955014032043805727644566124133910557213560225086099548270912108767467693793458469434932956615983903392753444286105617718592215651175889551991911450097611522738696047527356384887900545440938522619886496581469973475765163178671508671922503290100527361274166687337612377339008162049032511443094235997653597262614717941955447153126376056095001479820354751596536066625345757813899774435898179796985442179589554005383783996428002929221851692752727800447315512773973941999748037742514479781104216703819034103257227042255154769193342706910426710885158906744036940862121441202427604751399333594194813220993916218466701841491427987409942577187320914134390771138891783453659736150032371569349077910855474663091371150136435334025943936041525315669977367372760576850475228169536118505396221806703584929883419498219710746082482680517318555144772304969796174461855160753719651869988174887940733640176999812155343554305504204621095488548271654367367641526562306213522063510259400109470070874898549745364521058783922750840614696056636327167124773397274625741393728007913524690373343676550220409400909190208770618589012884294831047291804522905793416432295772938625097146231576792035422618268241259293299474438395646714575789478584874385264000655037596063962255029900357984918217989459789327546300162001398212006782676819295432347780012393335666053680872348832935181605611061532540285421081342922746396260622733436764808677511972735849646914745284993495210608734880813985198825073269224473708947309740783819326453996579086296758334543879947569212922671834237598037260592484811072575366348931557665421850815402999521917643130624837359793097486091824210582908905399153831475175807005277220286899786156899290193940412403518352344088719129626793828734560350265324188593503495941672936230449033570489389550734899993665962908748111595201429024289920941780712863826573014297316431768699606452616855532950760295471197570113952685594911075135024971782729333955372436940836030851792551263815519089532894986859166196683020729754468769547448841588804945525855879030336574263886791622877871908868563689268971155212015148213980061261894186614149152445394667721401788754616674513069362981981293963487435708472841970874789814348106035123888877356321682869699886883739437964877702937693176237600679099903432052159937661342995611334333909189517683209796478388945599301903136022852903835399348865609740032684640870341197877959781443283865139333725122080479689438526540821923411587590702866380621246364278203817240314078842205220971299734520025684533595411139455730065875015349892936832459776955952008415342455509389937974215227312754377787060415449737053615706844765455452906533984578333609625692619303857500128868252470808295101616985149478809346986712608059092982149894050350703737694289944528014728547324224976438989570395291005994177698566242483482787491492139302570840372609656646758640219527776456497779044346572100614129015752954559822893226680988255743128801643678895520703515235293326996150073390516924888847721198302158154534331416917352342307591028622256336472867648891648621133725874126025141404528321589221747911518151811207534749234051334706038281705188573417138160625762520876653373124002972893643440599607054461098435960928793618290177781373484990688325810240104227231433887908391420197753568578663269067127423389254767792072650653381277470107020499958608112526476564930804379459868608629011657796782253843243187840619463243826168387445519325905794167727637507906171427742095701406466656639839846644923976050989164591065229587876139990366548580445966702396383006008221888177436278739112161277050481938366331521907881591339998746340220528782234900804427267509480318336377616239890712852951686678347008417298605891123601776699530340231624727336222192622699071364802571787446852044328162702305609813835145878873141260490443822059402279665449464077857661204151771305299191982327056684697506408801998196080084427786053098381439363629164776613958905521382129528384437740920476108673198447252302305433170700256449014792282736199007772594052620395813959948175803940499147924939034588032026200716759719907637424003533724984417710350546651847159169301346153257168922280527708659508286274530675944144982213099080567791586148700264003056602114897320814016098675401506786946308115349884973121701429038840136197261215237082955706786045380394297013729686361098134172001813235045635508650220452746562333085625493344643381123631087343756054230637679668535442514097794153753929716627137593570326695225224979261807492050188508829146414722408908845811469511367020174608519549414659215899382752572793329755127803648116119523697262706648977204158429687324309476611688197544005977944851257903836517513205443115199321133025826839502933998476939309503262403175344387080442956680367828626905334686389535484968100935562670671895800367382191635179800955496007391609810158618773007293270492132306043707921145164539573289797796802878768662729269012362002476631764169568556256126387530059179988695061403032544531310830523626556617977972518908112580662207555344362680759757043484315058043441376882232555761356784658828369564158776847656066461291861468753488678303330313542864111111852786277746693629390538707501998616080249917887197328949118933070639057791792285566097702797513631316827635437578613991575096077396233492390342954557220159184636445858210336986054177213076183738587039619036243375120816308817127032271898889410399410391771519133346000376524774397630175309261269215678881936279528983198175927981793663278163202635892433139288574801785754747875252153109932361770211073182412742972265492530812989567793161592665414089861125941821923753682211376613751290672609902102738530532604562401472667219619877713691386951247730520647233236301173339205996968128034482409565164271711493482649713077292454277863226159059440962247092351636891294645472088060091512199172382282629087424541737644401504065503590050715349394182711774272778732602674696548146152825274379022083185314018698944171002290838680730963470826109075272718337513916971119649966014126840822645431661876855118921143080501480361557047644457472029566256357696200199205442604788709237047401177819887271844790057643304103228529848191832627011469689127095045073642529927338913232610575321231320250502253797270999327312631007181142807006638119412110099108901897778939057187758593788009853950782038307536973089160426158769785364739324086977840214282670699793823244038003557400984580444820703400144673167034496403997872092265196970630046772762088007532221719756037589344118688051387009192198624701510479364800287454865784849110298123055065329171991548200058586584754028181375656164285789659836240470208184353835633936315507656150759699733237957962090356867193089779964860339525765716892300041673043778251478432343743427770674773677740936370567127907000328096615830364795814275269915368940953302654151306202124111506069613906519720271996237004692365157480314060423186045535335397570095132081286942570812968221819200146863623326279195072096055897250387889350744220568972735481930168172797529275978358757871124035953430277069179903069652356585728342593605448609781259074283700470287773654113331881507607223375050486612198277619963658837593900428985182181017033971595926513752140082689838948096120881467116746749943102923177784443211499833537868552153259619487919233294671772561762204336224760942701519892257960962930048361835246053097014732890664422739273145853892579443362420836240017897603322319241687523132862483731991610805662547953983611330466703694344182968082735106515239475929946948331072892415483952058598396239112844930825106072578607267317897419771517961108954123637324498414861232645013193767549065426663642324128756689785728036757562410685261082048555716051487653127899572865164827940318987686803845645387787591219393713233915642893571340754701529796303896159462765816648658222924786703634147047936839154636126276725832740632262769550697778275620241496973300985474873527015079986633620427135530170588750424482395473049982426530245680223360957880819089173699949316967041048020330419347937584031664676496587748944794242628158807780827976384495945795925952281237937669712988168788533755463842956742770276058266014015698572948630998218295389152529398265951824828972025285806230394218523843005160892832766538025754623857230921470867417795903917758096115356670637327666301675076140005920818757303598999819747995135997823376815777439930971132305354587908711768439440018203407398528626522063423850800760958015893012482329546736729303260700755073154648571981922157938601019886688049232057481054101362177921441678482621018651817779851299531171560546847855083740851368454541091009275478908323521875464563767665252897614805149073096144067768737843144438440946571888054754773896793264546202079230303996330925213860074205811297540717773173028489823098774949438315426247946968887165389730138832010915809136884669991996511673544976052472973789571418950212920648934476709481686179675853182514013536800251930519543156899105554321156391683420760764127834236104342812145793013114899053372532060925585499439813357109332575983736403292918783436347736169598713283691208767563189095793057333884029678940827727943203256490310120201248600323122748089962392326580923546021902599643482992098988357056136942371821001088081146549055478057296195535409918895121943164621352688706192084295489958542941017503586590937266354273027226565859663902508961562718415383640265954723676448918548047040615755273954734460094835761389378540925934916932358910663256333806838921153520955827240436426517634618417360678661076467807746373937157280830808195958431766044465130661850545781802531500379836508847360570188745814468670335671744556358413680795290360780223018502745164498714153727720175390569653162034798295431889351965891297934727326640096099493792677817062353298319070797009916371596031502485297443233924621102710341713865519191291932123505036849711070956088043170415944973636403254287752215444797511204595222631209517025606772160965278330898377177289903898406386942048751988742701514244033968573098409560597904684592295865511858060137600943650454410274972737250979602530746906528169835047355966835680275817187942487351629747058548099369835647020054456065615335006417476999559989580682551089444602338420199630707412598522047029241770250066116297089999547536170218297778473791188520275124232884077648378591772381644618319519732434629344315711039545611114837947777142452925326808244874141113925727153634018580982055221926768612777175564949718093599927028367585620507505353010894874765306659773745410783303454685546421584020774191581700832465838832890946027707683825517004737528322054310964207850518918149946590159152688042028001895183559564814339003796117823754542931195422041121500657848971524612928517581695205541742233614825317201367597090181031688006073146737632074273967803028216576059137761196838251860596524357533694872560413165594747897909246023688488633336323687490446765021372527465537790735710856216131847497410627448322103707274476623354155730792899560807918640263119788938229097316227286833395999716129442430356037187828354740157043163408779307751714375324869036957038700166130496583024602900916225790396794499566112398046281903570207585419603803015182498911931542666663441113946869814042080933539833575372779112840545721407721777210023752018864826799362418065547138736397078879189175475782715363938955459092047157601393980636178047420402827238255370864711362833700002420984725276151006241864384535300125641888615883894244688990851417792165680438336594411817059873614009725487259547400237448503202054812341353990475238693685994538192427614004418550769039704256508448048131822512719305658139338860915290675258387101017654458536083998434337029234493298435795759408435138140398255368300509304733483002246301058298781864000547069274690981714111732914543864529962897561423847546536696703996414092001246840960284029885351684013275449251128040014486481105018804793177907313329624345619293446237755708197795991929540033832758474215579273263424861932919348003594786492411199143636491891390388027325768791643095996144890361758217829515456915681648146183384035433162569808552236092105024692587641469799668332793357816671936035115899059793644830492203873373797342772961626300621075844579396893718267965469385102277041383275380441939280080554184112634742778067600957944155786562810681207871659661595791599899753638707513242679295712528068790485282023719670330442125171646844501950696074783042529637257933023342926869602433687256879743546150562588003182015258545276629513898200405223979504143516175527543360360374890134251865345407572760422310088337608912253505453656775804210760862566106460983743109662514303199651107048109034578049451754496180034974327941559733763970741688596477768111077994314642707679856517246913450545024008288694480039840946625614917171114868987959462442886696238935539176559389877918136709357921958942722667474485511128313503804711270088965437573202796423217397045041437040431293176869031824325353297834866792475926834718419994203533286903017984443009330868283966782397496134517557730097789360309105663133260919650090037392547934418624992098063151643554962460813508274854481014444173716036943801541199555594947180837647686384256241755163610669243504513231752287765157654158507419992953672424029035002245350980545458731652592480060236213926054799997502389300530429181345680618247470738060315796403655625040093681918785956344629587169559093461616114921681275771793201963078702275210419050524420981124159816537789390014775856043745140926329264003057070535030603672766156332905429946428440417924774363387971501988336299257863568153839419724790823028927653862693452222228584569422579430987072447461709442827235427750081291424462360785366331476415244486601837160863676071940073880945837748051467018280423908791115647185682591146662174563961972385873546617982009995014327591593250046917726270018290134760340419367228880946755962094500740503559657406245012393518103551346704295130903859195549630613046025465213224387785355801369082653102701500107081303718922894511152391680691831037081634716457587694581453848836145090485235094385308187615985271814800014813985444847156628558490085389987383979860385387687419318957673510662869455390269923869156248287083929510858117391509057879877811613629054594711358990570838730449117891362903457381248812300416116330896367847753468868937336810466904169011209835077324946614188912359588128347479356049362265531581612569606869694820113641838097297002067341983423045037748378001396091863707213667772073362506574697289140541099353619209136334513868368864205392521552782456572939971170624451932795451530378446769843745394032556398435557236255955740435821894640299173670939617708317884127733336085567554237215398725687523629833198497522782525662766376164715463726966739968565341412055822663970514542347474990670030426786066795828310698901109033968077272917724671272626715581420944751951226302567002947083480975031730557436206729949733380442004817217907055396527815491779831813740995710650815295550613903130870699784596747105647897028201617921371443505465707629960662408933478380172044938602592523871628152598398049293677083990433729684023380098149057883610892141761399840863898105676749869348131652270555774234649180721974137149451207425789798105669390337519351715842939510275967757071738507154550991258169647969437586786130432630273280167550415822464104364997067474991170279738136648094081112355765490355554127515946480020154566473176015701265272915449936374935681092816871650598251195655953120718883235656846503475862576654011640639873588496733278387567283328664835492129116133713295588926264147529647949301991659303279505960284245935822639145429814934168809744326499100715744254287537978104594607332038841034288386703658953989976746375881522966392810909560514333980311447498035142386913938254835423562898565777738110988214126091643685523853675843161479185653136804952932239927976588960147226025734395396393030401053289597198448650269067205474637714437236943885006856329198935503051456864949450536036428309073730283976921199014352948057188206989284878534481031188662929984674659622684200247468173130225796630860366928437320935608858816121454858025138734011435473697105226148320081485639910808443360202362078328706925200594809022209709633846885009409165234528453390075145710421647378855441661070800806797327642552543322124140057143944518215105505734575816432503181225586806027341029318079164664925939578058361939135167484725770260141836542338891072199767122510130548123413304440094794288363642519327831103645116866174210925627095512530604181654719883008060813859392815086061815028606032286102427157656832426004815694267462176379142271011605168309298480125179767556598119575918362164197626174630222722424989555068370522213860643647074762251552714696142146494685324507718601925963946436280397869457582646924711941456401012549854084659777256100488165427115622864257958880471267764770328528850471452123024279595266951265318523972066904687573757100561954926671327189767913295280902483099412579042663388282582602987250189960271100238640328698657588235878148707314573970400962166665462047669001660208937568893434779684094143821843250911058538708515034115553259921496420266699932879211511438577414202640835684741000742636307439446131733787808636068187503196645330563999529945826235086437820073649835893895481393486377045367397742665346612922962513624967235140503496430621111376807895813290617197360664920651261890571732092837681474971315637971734424992854674354829354546361975909500029686225733658315766560596890423917289384852494166349398501059701611839231797503516259781522974718590474329055744652168043555545107108129310668149648173018356294120184683757247391307172718810841142347829098365813189347845776021089680296720259013450626668418465823720016523757450566548776001580749018172337843274557070553655868071611104377574634976589329660598356609647312889350917993948146107131398806442600377743560345655133158018414546481188884694783532942546826448810997918370668716592535551020893998057823894303693907102910165176046306779097551291120799336249907593165898812912434321323436704867363087360551117359635741576268036159612059610804310839387372207238511556014248536520054212365925951336311009064879317544684253143576052883853807693106167171783228005297307955318205557445529015827318903307953154840396380867488292281229197689983195993324517855029016338036500583151128043385789319244883067249359310025441835495232781020525153142630174017040069642197697909606280874612598583878186923937655655900545025828551182877608355316078179784393819737514425506882250033608198257814502967027370827861966555187499461265165362971569217833070414386997057885496704777572288688480366624908523514600424429182792452783693441405259861101825993804126308774955713548400197987280260028180241427110576162903952228048140027184673421648185691469381717578811792713087320653542550844745563011739788090482853702112014644846592305564291559380932783932577810076107148341101666270456878255531369274362348295410833218228967690414357111791023168688461875677867641494991941211178602437234541850294136910076673636838483030755551621919952589929489027087403029324806576543862392934660481718244213294009714684473081096145223505814876978458993789904833577806685648936035810452546858693615040782745336023454151574676460534797831020206961271743993239154613602515544795901783996011177207083106277616981355143049571110595772618324261213180754811560704870202727608771081448337179355264157968307866454327736135716538665930297717008109939166966922477376303564012811596817618924464855010931675053693584877422761903741180911249044735358237421816679769151371561842722104825426722023201925686256505755619708181904664845983235379050376418592330488817627370640474005157522955281571151286041595428060772278487281230999826589848987526222741857222316092091646942568763602064671068021501981829203076247410677853060996526149346985050693697652678253449959549350766423185802184167226640729490235133909204816569701946069159984838347715966461145998353795922227287580637789957637183540927521078539592011121757795906966322633456212364814166274280313992053597846443765641959052502281354821939043047580682241418944353997473991647248997648027987405174066635528446649280817228089535423442975673296822572284648411261580890112526494829282851416924103178215028442835743336369868999018160783039422189000571531628312874823028686487261770003077704028633450628582620119624015327996424491609583606501236526514161362100060371125713419422248987804292689044133155803802357957848637559904225790379766312989645842253273185435623053640494227746762891017834998853832962249837445737434804435668568126872948291994421797091073742633526938577163483569877268822855631507098547537373931082381481812502843375866233228189912000296988046237080352102607268100051951539781985727048959741480558918680177422842379115541235123301906842731182107320782334471023592796958520030299099900885443454799237639376910765913896127237366046073371014779518380933025254913829179986822554239119942065328628430516380288611540120008460019551224821300162529180606207149207003680534214848278706595367536046171004596850407183539094053388856292394794349016063412331664130244441411719061158521591118434256984570586546573828405411897730335336324898454398789647306972312185893175513587210485229697858715341671022607618440786041802797015440946400172266448964284097171581134446835174281469340555979863770883144315555468907300728792323701296841785771183326581326220727467592238811269991730328545115275377327283391633373075420514533864227908007729372972927870950037961047803803674297965359152676939186390656073472228525601931061997428878464053952291347436571979054575430360624466877363895379914016707602880218700166744634260252609620659926807078589153345781392865624058712266943821429806658263271746123323829791632134257780694940066994075331436738823684491345159333775230090218864316812260337524374535160905822862362809962231766767831013428124791015546781439491873744956071141890097067877964549313901937915183314187749175386088065001545780408938030714649323952605842730792446440548884003755760611658729628620833239713521596699200289957371123144065322022270926838492624898862361146990700338168122505940458279334533221598102831952873941483462706751438293952010890475370016713343105580306663658688211218990093694640006676071192636078910343587738373093766895045107288827496372284557168303874293274245089283240054331680304487769123408337184632146210961569952849961835385189294156470767061146145760394194413369915830310720627761941711326741182952326917563170826064568627966326067033551182852039243229345671632497264595685566153350980414104751247964265894312054872433690685021595143074414171390853219940740680940957508848585454238570450541472653405885633215647118689953290673845501266202235924019385168591541209706944309892237818374850285608836859019916274594336023431802156262922161343671535765973814985434402277692468178642822720876863381639136319399615901891972336856148723155956042955970538983735212908284762239590421663143773887485162478766663673057656843930333550708849226931578247454438727253522038893476741975801415335980790233461083655822576736025765404044418844890046229074674214070462569448739744749052958015149825704754750248686970757711432817359980608354079558142216752549696643101900960203923766478774514425389613996849270304681460860920381610326349287448393671423363941145675629729671301009984612315366964845415503442391287519156741209013067286699922315923321917189081928471078963719453698739173362935477622898753257360612235733945271066792483394374121675495214334952780012746171517846563441456920034365782131688210797253870175537018881812797272551747699453926800020779899328369066235386459509359223634494972258935621502991712400694334740875446402604793298763270959242765134886006304225700553588690332330800220971620417524552281563632274127542423006740460853275018014267319203794523652838553017316860986846258926856287245936671636182050105422808052198542074418304622496541689839955126755120983173975332163314198231080747721499621325394942944621657439958789207664604714948763280797369778468051644163746579618630753208437011383290680121177116269388526154245352239163780571417699901053076468086660832381040907701336129762132805726299778495899668147334882706312055640020484707055835814057062007191907773570476928918235471545024174166467723238869770979476999740523397818095317430924879963616164232834548050295109825116636143695191807213763917206766624802523033513878041242829794273041214947866909347881100857511185292496413378941281789950049960399387379274445537330840502645823332429121779492585093438803199400789711866160980862131969709590333036409229731122312222798626300046939024914660279233048452207977789232916550927479433592925007614534297718349940455576810400388637637630823490243088918233873373804937908731410983755059505460353506901957768574633730787576289513691187098932665998386662555248349310964010024688433517610760986159852560466433043840517313659132700815243715007814253007057379144130059553436217958241984652121592081917070311876412920284463443743895635479078593635299195932540298713634562897503764309382612788179113544218284245366353720845954815893462085918272939875479036883934240971697689407989541019259818495717247401927788691176789035486488827943062154293239783312802169599493746240945511803300627048926290549356125137442131540650687375005980176644869808766756293695733340455692898740281141312742611942312775628701921122452928770364521099481265556842667431602013948517070338898470518543143841060400708236762661679932713918875171965329346092029871044631693190626202005965683343744615723900059952753674615971928304641261617471809257202463195120344086509120436386684226389944315034866091544696993664766355007572053364227895312310528200801798058345625404626039940408553343626684042090952977712149971765983988521018358821804894166700375441995382996816883085309616315643966799957507177363834243240446408187568560904876819415076721129346123231169433006194459934832913759545035790434366900122017119798092695210424510108315662688920316721093452985372790489800134666168146316206150543897364131149059123769016902055768292240446644713682311857765465576961297346877955411504219905068151490709725688431355613173976770054705938863397057032918461122526978831519756586200593320095380077439546129019689631883038821381985335362536095121632417338835822385056955229827263615042199617292106354191478728531402312997686189271739401222073887695926918276021892435163987989734446219871415907550119782988660716971271383181038258582651507528969382324043209355951752233048243350258098395030192678195731672474094989764998465999926538418786220129931524222582401425698828902756559338696878927998959450317287949790200567134162182208637967631704026982160988844656245007077540689099302969255399569301188730795256906726644697003289589804635334862168442341053849806736269688852277493448351286158060460430907850036484878750680126803431395364611181571505318048236435190593710305854958360683676168360037701920747623054341945300656303736517286302973299062479899738795715661502699389981347201927327521744529351225479504341295576907696370225659793482582020123168591203697855811016517036932763561174825357417932913100310683670315568520054454204708909086644045082289497427954409526764641803348691382062004150562492038835556280312047004341553083171250388664557755265612798177673594207925501555674006969524843485981330137216073715527696392582381057113978715002843346974060917962206955619770676208759011660060337152286138922077468033414399528867992486125379051891196900202825570107154689818489821199064442725339250678065466029571573025155416621056324634278319731232157138081142303089648503473368773334857185441009764338770732167020246473079583254960359226869311014007503110806153625746003461826880468143663536214391788890249352016762360382538807973759069544824663707806842323946718949116867775750597709710265374734043942207908215249138006659656670690917166075413958745710264266148158219644962854796678017929893220290491864568070461957661221721705215341142553029742539783577402145908558419574766323296075729674575419828612329214500107404556016108085271099137029121410565086127865339235867387146660932686483814083819638827587348400867731961752913725471881070647074737134997118004623785925213898994775712002433538232676506358923497842791125557510067052592089290215006172450606248524209683748040422470723678180673868080869109498193553042841845815369918681007380686491745165177582793346920397175032160762241730750665892469960478491640043813454381945048835514440137819616044602045021921539998540103541162518947074062471888426238913812117213639368819833735233868919365201210692959867839589033380790331278237704145066176883492943648236792289366892226402079367176181675348196657102878935338550555160451572623859336858239697459022668170923247192077776196454090579742787592156435195316550643534551112392260572739816110295932699868652290176626372608180362129899895472804834060657969099362494427083879681236074989607009373935788025393806062964461243190798421026630074087134375856523388872891170166029624594527443198169051076982626789560591293419427290386190629398694326141475690849191510536466385074624728200042701448587997574923468168855211458855319064739669637766512287785336720802713028751238885625877527009763174162070459307788767053814919169263391218007730212510141322557179187541519794534468735673977305856844316693990878185100119759810093474478288960989742014457171667532390812821047763113640887332110318405767147968149661642217381695702058973238497431207320085922359860298847539061350810051606189613194099038063409533973303433458668852564381359048019095418880565973088191393734530623397780655114462495884280664360151615562493904901597063995729081500770303544588657537866255691089103394030151935699254286547785173508038497970386208586569514718016514946876607576552012933287514208857000153347180427849479443786321668573781868060519736439010621793859255115993356366267604157102467382044206522610999748324821051936990502821792190938451137403201084321830438540529016704770655487339686870825533454691252944357372592175306742567691622396381612031920509849079761092693976527074015094044339075252806565157824975995017023467300432758803683054638524810801699487475170090916455293756367348992606503233229473491893673947254414371889073043722910856746154945409435412584334190964336867542789413379712827928507838306726059455541437867744789536212689828813160872632271276960071144503033739185714718916598154037019508891204155609912099910495012794257385242749292148824764467054854614329400825400494354272344450648610547112492516430750173930903838345867107275596347739381225638252573725350760712018757687781002500811289453882226091963768832169025779895022888824075299056417868222432342607969495684825461764827496087135275181483170730412885026969197473074927284899641995669845103736486288061598904744088577152440522598952281491384747164538157157856324796349338328597310545852746295652539958558592112340042122191680277752203962657693864436630488095716217955550618029029917441130200448048123348695754926330025827547574741774932544722393796879517965404084151300374711880298538837864142205051484452614764487208549837005937640110198741221297055804386356513259554619762461611461532232239320724027761874339631897712975943797923981473482672706310836332046206048439195245016792143301580322982463979469337766303383096622471348296167766889091148903222650280463974088664387171905198058459291633546269543212067793570161899076794457831185390511859852673985465356721479061402547307367034671021625142046962087544503886805944041512565644025802639653846998709534820060651832887882402160263518235303862488185183243785792691739908899318284441147639983670249924457429481248143013225086252858679034114929578228403983596051920410276387870944889625557446405804494682419914292420071120936358056119888144943901447676257145924797892439024393142930729658460808535115541708875357123680629525421013165809359700646026294519266123593503020779987702527842834101963591877884857377155465735840292734304580351116076399566385550122677483116261306996039666799457402066794751460781636601362013318689783592646704234482176035560820574581104733709867581762382031652804431662228466506792939814055623284622706825836328414873808487118322781786767546446798768461527281188698829081485703327211285286119191426237786956389611396616116657322944189302022142525001881647193734064546269107748509978983604040347107739892458549930392466987233032725301319152459440714522450463440152481758278766892142266370324141600661352489910071009258407092556367267801156212044239023469477082947919776837396244588552617967391726635646483466539283093654201038216430808705629713421348775485697644435021557204106492206726036812604539956018894280640016665051915028243228926604746974648710723866067133952353279751401271755980501879811210437079397107738060203538062994384310332329485507087128159003704371268441893788924571483757328853337041435340489918972615041445040817271547574834626270720834920369695359847718877488249881597181520849389965531845510860218405950573943483235024160953313008767875704002884224827151282701423205486728050829588570360563398640182744523362919006509417184007794963604182950600349416067408442396301787792650863759496810458383446075746461320295051650798301468081265747218400064389010462033545932753503175963393899403450015753815103047473361144278810122481350565289678716916497229579008118333821632745408787631734659178462570407591881821422621931113524559304783993838454984451216947939087860875553901049478992090941235151709416019071614204360838808573213263783151531442616137533622662013908357954299424741900304434335105123111244486353613811964036144278227243253867478747566414842497333122526914728475308539126393916743203551963273090619771533232449938756318744500382023784927661368014158058522934220528108481607482813971492643246584473775376595942881241954843495106189480667205985638014891897739658809402001563157244709282580824431339182922543270213948322528490335324360773933410638164623123731841041247488169560948451553168567402659557738960914588655647314354155850883647702098489072416203436327033695746986476407665550123820991026803435603593453020583189767583694395113969172271739533983695469982712737325657800769710466889333074145083961020585468761507687751496556740843042662266729148508187153700282979693858493417168845613535897671731250878700250443881219036711399062766892532265869079728365752126176107590727734194139246671582472245853548753328779753475740151295212940739200902643915571126487061142465799889627443707523212201809896455239049129702057446249870404314820618662368018596687351970646114114724517581388157088602837700159294823473171326621629234916852195515770416930855615041744537638141563921786020240097939308266726160693378092373328792430966922435752414698992312487821247817433450927056653522585512681184980548436869516299670186708289099166950320967556344999083221760011659251291765318434070733218451441271309957449778183328586521532532280757810028372126985490036175411128824350288952238403466385695902502328281916633376951157595632857894876043457322251422111323377517516812238555376821815308711734040429431888887590812316044826004168419718486951974127185779625890658409318772937008205919800170170023774129547147710924077341329245275541897908986599903998235697997794337664791626104461530718232992080359100855657303058701664011265601799576792003101678948082365410248611180161345493371867703223128717067803555724433127281912553075467154286162572126951178488055120558206022589672705521354028072998272021562923300844424035383659257628858839719466534828958341478357894402691692530883444838312632026408703326489306078512074114468028385497347857084958437441006536675379524878592551411336026192369710704307194885118442770699515655662330578606537747823542768245981198378956693066794342985456353060554949688063202344778624754530052625808739154060938115529810241689145600944567149359590715153692147061913659062324196251841875813348349599676455179419509992783770478460165622524987687826774349141890268430174835611051983410024676859736517760781129312026912339940502084825204592815759536223070208879863344192202635512337672022459416482861668140160925432236064956396475807489586158097287532532384428766134659844051520937697624057626752859485755040717249709910639023511398852024234360316711210555522397834278568970632065691367856113577247261224475603235604834860403592139536781657596651251586016759851817111441198598698489444533475153354136412619105054134892188397001449138428041257907955831644679513643811487014114605028418257908927072117298429515275418366586723454692440459113472935430938906657414864070933279946879920336792294911559586811979483273585049982281551658117766886453149872865591361075314805288400479554116430947606917774933906597300537319514195365963695538196331679248326704560172472156351826027074333117674132704775992060118536298916185280325988783525863111060470812045595770605745895561693654562411500516930921599316201677780593014720932339723490091160587367626164420463963638686939108114926920410345008836629438919359189526995759570184507893095548422507915395014407355697012123279912428072915911173762543995614473469406930359406488147954739572383756474249986157054005766604019804099483041188148478092607837943120780842162673328500352657146787542657590376249164893713784501388610855699487267360045376289143691269755922300881949140145845821767989793286061455865172953180870582704981000384521785853722612217328036250594582917375149833537054070269079731630237088188953131183052101616486767681616595388014325016502719432866332613318630693206932169785734692177414395668874078737935663125895516573382130290017562489392582384186547700428943194443339880950913024193474473675300108789914980506212876346445627911566901642488525525856211973778630211683446502190234539861269311826159013189484211976988595098790702441962954881266581977824611546576525204273770002059912932855671361785907608209216102854995172029284514855030923049031370773382735788680909320274360165058862897832086055487706472206194224837446260601731236284623124455810335493956594162585760908891032225164316267762137308018887382740466712747464898183123724988861103807287013431166481402148437577528718094754165052420266391980853816702874870566661056322822915451631790237962209152057133154753643930055490305412090148158246715753643494927731166144854174461055565772966978520404791259673334913895170568088000970401881908212085982026742709300083163417458694280883109687916060384083369145813800616777051023941081289819529671479109619336636145160310696610072473957399316109884095280813719524855026905708739652091907865922648333200437539136300218507823585161995213686416870170319513367869255870953350343129923528882493038354874983144056954349462244445799885073784762457993707899037427554347357200023115622411347884015582004140578240491408967270663931047718236596938589819731304721678878154381034092781437072010619379013228301584805053257109077535287545981647754987531040337079295185966899056454396971304392350146162881686621364183702622701845107880276511371749459384339296779822269216375648130254942794530655245123092142824714380810566734499119530190271222451727419603427951727670479405538659030788845445003937848320965839164377271014973477626626944472195667293251803701318481079423061799599608388966790290215698041455965698107397871667463517373948521760204588799024885265304800948273160321166938194492344855453150200596483279379465071078885935369285872930013467148060401929877825391066494598868909260275647550472908921845441499148488628642763990829515380670791745103338948405557932323409327519493581525665699234919110893843915188822952832773436609492239474472991674878130476234926510813960041328056894572643631150341866649505991602821866096957889083650629822016773033045491408907043106111793255011080351783131036106037836312287559910676938377399156101133527803698104545343458888561317213134062782527920184617339143480557677125325876985413612434940112896591733946290436809919455744687651401769599123484767892852902835918073600661079225206014919004789608699738625506615342681538677829261867530912176739561875569312062616612287282566484227252558809794599918415726962723533877743058508573508727916095837876904182180950731082700959572497103708160449559825672507336679232273502825759084314669247308387975824548981499232722448398286688964307387917085262644964130234823631412584490080536186854147976365107583550367940248823066072343752099508742133713793360461956531713885908258949906824120199889989710822680934422780481590952113050279695910041003442591933478528222070053909475246963428882633077892164780851175116029078262462031385014243038550300955419185560719713981716631364817356668753427326618488375217741981913409307584798298576997259032731459423695876026361960064023631089058401445921475256531086695269060439317727433755163206772912426953325090671450463598122290628594239507309149384959094224960563919509307441057366379858217721078344257598065471940433697972749649218899365181960855591270697796046204599458134344968906507483069602416837186931554056765479828390617440392692245228152075315485994392413686216175508734264599029687360712495493358375506030246249623260625390433216430570537164553394441401493403626788842326001970902115319092928320837741310107969017408118415117863424466803833970836358743221354524346884437433726664755449349957840837650969895924235157748589125913997208085506673982691786374693421828485521369754888401504959922175859620092359936045433160586363406280848814810556075746423068595930922464197725791611681177663024985716935920790974615102304943034888709169697851904839705504080950165083851374839065436483519759738609007165595169669037384620656577821460298515694275492773589497935760982869090234230354674086456152422626396566200804102570370886662439337222895036711060932352290862482154681114962110668345233021615595835804842002952502495932060634699019826371338375193800835916876105470851015006922038914573384407616339738353433005937424931034517085310969962067115493573938333865744742015788055176558122283840967112661871843262702276578805204079715448536484817516667130722806243571113426765679434810525936561539241185172917947504175182376653159228578966825826349413930318570921569715738140154621275160547573348637612245370100540674961816313507555674900755638166490087415556642116906264544676577509162121972281034507094072308809153296080765942036710721241144976344619912868470131922429321613557136782056063643150653752271339387024225212692391951925674243484341286561761177477505876548404585759819434250278359051001453414787071261010264945898508384904933918638684012186024418503538603959880423562407955593328334614100774580484077629744627058724273602038319939002572753740503363700599703381875936401442416972325674678597654327270833298273977555510868487180211907883106205839329488231182616445525017658037240617370602380299245717031845824222235432967142650482764329513855862306809384338250258003672114039794987826311370455278847699232555809275826882906742050068604382849369992756976733499832400536359545951201813776209645092654523862350874192702639693884583436618416834924632326096362893853537381221409575014881585967598316582964886687482951883019558839137548989817451010292519794617728771792434674027129873595824207862140653810948926618589980183623741214147949112254088449598961240559804705438359221917197111777297187011837509796787493799920795314308820846375237520847160379808866639840869237272308668588917528463209579374554722763244277270925526245315015638774808081234307457270587887548953628254747384203573905076213195385914380161925755854135881169398015941739233428555441768214064974717822655232829828596565514370614812489633960087022043203675362538207501755294860530232318940918008600204164699627487579857973109058040135085501809851272493496631036528942617200926146543641670052564227081345375932774439418935170541979701573842778102586964724078211406654925936604460525400428017440641038018944944723942240268527372661827041562340445607690391081276193284830210852339011261142342579463390493342625026902106741363353366044001501441720552366032037306391416379149212711811727479297947883639828895092986820058384628230989027319737244873423783435143308706807950621444271376194477521318522192781452595398763102500340581642501331391077651020894845634952730862083833294398144924787146018444873913624558979764561615770635287299878994780944360224531488174602891672604348361605467684164604884284768997438017624173063916509204432465662674066889069967117301158258227050865973436354274916145185616770445706452777991963615844747533839030389890188101933482828954547256928161799291475980813141105825053052397725848250203343444101516993973560164545297184958769251367727573920983825589208797295366713090105199500005288005319108402327108368376676589033227586385769323836940942915084857013015673334614185288988168667650116792527186292063280640857696323635414886631223727667319603653270435689255178306464252798835042362269133711799112684245329287803083903861261510255152248830888520979567852696602782176428153597532650770742736683668887503436844886357674184985439807099151351284885732087500726470666674722951661833205436052347989639179468504409593311877946276499836021387379112732978071320737526394339938282542624949508228478984821155201968584541755510374475660022533891154343290248384442305046701396779532961446558699914339236413619539521841654830367636690301028520300177798430884655657318549334433886558759791680088811133215119593213275180219314724886800568734303272123149431158997260671545204897273810880454441550665474352705247439152840396591267432706355054454130413089597386342403168551439832711103570177643870862503645844083701460568524432317968605014179745091935715071678201478647299282173462819256094289682356363533707517574369186952758254223801220771574486196977650926626273085254184112925425709243944748996379048804586290513680348261930983503768367093051808128106157222861299740117999244405278342656386010988099806056186559147225662337594571131428613490890849851439021147117491457821999951841921526582401356381498307721378299939137263186866550600327986005029422631427667013689506556570246767053478453699090242699643754114466493325849525919399403146487203094741237653087372011166026405315676993714186426066181554559392680811551979247629256528197560403481051961836914942370972732576322472159366851123452509274180748054874825804512323190332183071790076689546583171192021656647182544613559052140159742816705626910036376078317109025542358330888122737322315877174973920683857201112363655889741744600799436189329129707494119480251901920667522809806486608095801759274438392209712349125218921701450463919391388309338962935651604298559387889572741752449657000326032183972354168426678605888107674357199657932792591216194913332739002032084311101576586635431914905844055560353793319598624979513403216590651242808810985696550406462301032271700185118737727648847609109167093081749524680713608263842012203384349037543495968539676251042120819481147801600743499051163283504695586819343396671051912013978616999242382265607039332879572990786531225755839126668903545705696600558692103256115237606599088614436763022542613371155670520883438012626341529707723968485993748792165680712458496410611195606031198241960606018223913336665240031503910374256605933376697206352208002192447893112440786939719242988071496312347221758873296569321216063729667209672297222785996462438043685255639104006749701250225075167894108641931787420549712898946209898601407505444712992569226523335703796596558684359927204278508310395634420015000620459293290675186380174016004400942016193512435643258867255627418070401569286544581814830214820375016453383516843120518954891377124918551685015360652563611913588532079837622839969894757553298207235009395849605477046953698354951035934765372295738937196340380612684190643731101356579230707869437390431545257362415314393314865000579468507677264017603117807860333883029677852740867193798715809008254110390997929287439940409354667674045586862830587701130003751976719929888478127650592732644112758854696164207074484640830508680007879727435068876322820506051647279142031596659756971637964057775618070506845494886406679003525580115633049087645402275782572659168426427050784620062150576827545190759589993357545526399930426979066133147364650190082723222829456860016054596550581613176260659174119460663619422940950176122023132638193780391957902141400374442120467187482736316099843835468395826876997339339477022829401425186664530404504345649936734048798746682815449008769141909916404412050084481811576013474728056435559180148631947258815796215223787856850733137032440658621995805622306609867333014192283221800840268496537427794256393164566762812738626813627692910787667067601213055188305611011354541568609853741993057585608724250750005739529382847903780378242978649118987587762603331610753301446507661294267831015680607922758432743497476364843083335276842038040536923531087827820200606871323086302002799448430604643809698193543022064019542662250748867386623782756108012494464941287331347005736158120855603001852635843865381539111371040798054218641327172741380711623028638114565503167801926887863622802670706940934299990313785667456731876410703779214293743756377906224644130108938108544387872057115007771426618240924304401824299881092131083635069025698913370600132982982076663676812934890984185626604673024357286247203774842535016402680241816627050582519406655288356577069134824349191422349130681964704844905550316379665364157127523357239692758791922482996970994290297764639935478107382261932493986005456813451380048909348713872076835412214890728547028041677043167438582464704225729440947910112605334748097091157327417522959471058858219280227001545062798664866991123251583136693886514878264996828250372681202094943646337969999673818559005533615952949378148962172637254302070912154768601100693452056603400757156951703320280502203602061979985116726561036782971443727918406855708363035737983588335438128065476903462225092111983912247567592576217618494599291856948847399457052964185893334914536921247211973323063038130851415860251938531392685716822964995348674953764819693001220565416284778783854652135726323585436078464129465622483858496951341155875956284414850748604244848544450085543356581306215248518487056812449319628704279628083688131801886299553891847234359125653569785453960529793079263710692030060671452736443376335463346321885807905874310544863674158594631836601866912909884828189407584818494675946343773264863055183783215992062541480979743300580653333751968654991155551587963144544266870452664083482425025272739612994394013037468611190766924803481572249693548906980185059431950855437504502914587000438143331406278221929177558584408037906238030592016557314773368417008800217532996983949054365026634462308690858211008055277624189262228604538999036804856909548801763778948687948915591108089536842763291795928958711323088291466622577513650323376971910470365856154483985225581388106462636048178572606920520655532674532696235585862294446714974612815851139064654658741574605747822120203120033971280120860364088947906529572300544898462693053010621214567367602826657621453491198112148388352799952710607062761683618031216927866324511683013100972494818022735908748813652418572232278097398404474641211740180819810468433909512680584929021048518587577009275991361999966387516070742284091547286290756182832826579008620836849824877378604338222358720177246173395922480102686924491898182270262661724532374890524911436107966862012328715699556215874314035068130694615978873788231129411825089988968437036463491615100667210737454714017188514159083503861285676127439688513731143865336094303198792062622869303675395097204271938980084169733125133640524064456209447506130975896185632215806626988428810800540958796382611812649931641207026514843421338872565184079915046729460973227851323953138169359429892511212162505173366192383943506940641438308517413426370899920324597543115761369096021199889722676580115448313634940738383771075982468631975187857225275504384589423822152349258921689377473013618660491260154882053685927395674347952238880472959165300605276736469428658449913139154794369739998999791782773940802032561613241256217126757548220912085554712478649219510483230598089963541918848285143522381763983558837290420983290001844410664107499519589770806117807990795384146984252150973815782766869401563353170083190908389887758017080230681490942940938378603425792724570559301234267155145038175491600324300008256877309761539438705021770137565174937862779138696230202911833464127838312059316414949884390958582398001594961471377462428574901881725599659773566730275079607598587186147824503055639069494502508306634023944440865461296715641433437124280635171491457827272631319358080104254883720923891038788996388487034792818891474214967151237650658091408048185987667913429322864950442944191069857175260594395819417475907718192212280852304703175321207868967177582781545156794682694249905163458932184074391873851253411291596127086241854180424904657584710616665672822562366411063875213747319915232286572765063664226912514314993682389115749578228927435949130849206523193025752058448884604443668878828091791889037874202930234823101087525803123537112482772302503657072071753137243822779797452609518973747424369280134827813965752826300040763574362360467244565008847530816189921658977162259597445702505295562922497007491528928253833272924583429722954148842048916540726279036359368906470454640335954472079025163142254582436090647423642650213165146159050337988940159158301379463605836485921915016548115996095328716986617214485902561100351029585718088914161368544124661241624554133621309993925513183350684162747917906508547355545073905809612506314849221860285049989148603575969112811876995768333898040750812585113763261366764731740009819467148967581304162591570526565380885037696490177879495552879379898635945695262739445854235976560164828807649818303786795446302509837223809286490163317505403251877262032734411583518495017186765722109677246957009778375986338647975166372971216217111096364113653124580337423939734933508403201691919401727740672411611635154799032702292161501039359314983084156110034906630442194886096042863706007578519346722994247758823060838698856552235360164165123589526736065596184374336247774800466914340593800034791494615097093796524008377899647840535476548172300674693485470564486981498773119049921662946970568517109598758297009313556124781840237313502230463111483569164712325705596683558450897319450988506340439959199732411930897028365234483966464701502352004569267430504251736758269287584228024955546347261736645126541609405525389000715223861050616453628141157753034523746180372088848144911094562413416215409774347054045232061355088699437040817140849828567936307148287191241781556898160706633125670468894328026868632210590393301632333899905071307436617932958691754155322724849150028473085306098237255568649372455120575056263219954285971744102154132364424227356495895723348828570549594815481895653248697773286216965780957686159889147383546868857396567286011588481099477892979598659045337675591850892837356188738600712188630100792582958952915694197210130093609448264150422894319753317231000550846040673474104634531849234233458756121058995633073623480817044413830782154896354213633072923119749227432913409731882486549325505092268673535669777583218688830802884731774065717723433505760371524437694212380083015878228692816309295724039590428568298970681073699594946839709592782057355507472485068903691298457957932011196637139511579397308227333620310647910811101024981205176277897144775141169797058308786942079086080438154335518845696687717930446735579848973563180920456260952631422002837510546317581637046508680043177432922401927173579366070923066041309170576046413714718539383056235899239052928696589045019679444223151216346368815301482269778915551863991045231176284001332903871714972775091032441414892293665597140885366614311010188749157992483071008401025921146916849690597635039290307481355950367978624885328909588019612607997564161619381858936870990338489967619328584004292543247045079865079748516734418430502656646323501162412547372168418330710106269705536982132284863533595779445308762364957368651165610214037503621886176000005272138547883822409819112674365426049259008326652604860492065304569355351518787155654906422803672973532092130941273903991918522861869800276764804502209931705163688957956488656350374649840609794766423210411228011172506928960501107134305409312718823178340460772763579926940014851437937964201895597337931488763354607144801128385999240874742394967086607325093947394142058439738160169425578901794681455748150105330169024218422033847682241558011539940276317369442722360460131320301305466369663676385856125459659611377251581931370431094377446846227089049654311961549123384253401407280299671055854103818941584439517395487255162635324749686930934598609255082367730370027994216616854419841541827143363266333745893116470532788324274822071843963837587381795879539927822011870474204938838604384162783714966469339243175128329139061336022017170943944063179274248176331274953655101704926073230959183753082560409857690766698469278358140191797674380105591544615973168905901015089441583122769157234503742620292408934204544810663263389860546670768225488549527113374957327315923395473122712100948037840957905315917408544555326396074664459840875106176570453411718463126661295157933321756575459161449121266018884589996380875173177789474812043364302346030094914497930721139033016064853593639676214348192336914827785903718418308857599940235379173210447515331056298282897451191416456965824790873699917317089828162080981165537581592975447614911861025096232167700706025517856709766524307851612639923796082039551638492805374753672334971302146086738523209803078237205170775846257426338652998946416870474638633640608053408652916313046488093883719632802850160258827339937904977363679518536135422020209740687562188350074197003918284697623551466942117580785183006383917761887201311652605438406042776058627516979495447283848300742633522140590724455013710222685419559370409881321867757675623824567108770257706576726284199228697615821339206676822194642045382891625969962199049745816737666018427530448883851629161147435596476058184063677669019901716819921682471295528809263417533373896960176939094573085777139672911372191585574177294183195925885179824097835857827099828155451298744935807547418398526668415550460441085024325732795274064957153745910988837896507629460577989955189860033461783564880365478361118914803046413787525774091490851637701499590319590286235934656037006877666791677722725678704867659463752445816699593344904696120285372089529296652214291154690678506914999291314553417919915342671605372662786128408283187392048510467826421386218372971022733014270913289894396173185925575691414593823360725151043964755372409117370495010342174500136213184082827126404226091948112763510368224591963725867637346182569936368614921414910842048456978803433102930580531410801379488907538784669546138290906730614518534787267417030457697209482012240828662769695605887423554712266403537971771958085685585215313224498924689919611971075685623972185754625575188425930849344025894010516071572001888130203112375896104882736837197509105990694484423384974152864104880982271751649265372940271241230104302337871707596745840870476492885672516253922826809500964498364553965622128667273767721007737290538895889738359137067875489632672855472353291013274633294103974693356083552585346582768028131906578246628693581218371972950683414489492285606059217892762732699729318545090906305123147962960175954149261805911679009174976726618523795706661313926112684420451832741341605309348056569686070404216998644231068064727082915909208227788210565572523570323310475185095566636384230316256165919677784570718861695855868171441379249179335212404509832882485757847199414309929831502497319264086726495771505827848063961316516922629717199344349955078803276107702021805392820695196943863712479266483022250159666469977188247190664706933750127967217428167403424105799360482317795768823141702315732250266882772587058657646648947836010681364579881214451632332222646247753457717042479992684536827815793581820817939575464342962739345004568542641793095113548691319137824232961967776189776060165804769136000328238995527531110745085220400938426610531212459384618715269823833998049319648533233778566108958363042061123260463510603745797858198693057368890326441902081219223990791762467546031202365842645228760580740820196853516533289045337254466709952154605724724392540487986681476176954845646464103401478261972032145799491507272302070745633689338273629126996410939575880026350791278637856830159562384231464855848113141984618790901444998504659208208122444247426048799686398205960040658451407985549105953050229294464461045903592000516601397182837536756395646974137385829665009358958870914217154684861811377538923796784877413253767685504073489228288041696187574499240316091770169874356941793113874895451386809570285587427799850125169096734609838708497354743253990068425192054987463211290554243702877378560972189404396507883730401182927689928066881547453273812678552300107915950666510671573422726311321190792060821839040734312662695600636998858990149232447095734198424584192442429912939103341067509858337246275489944270012241578974499832243914371861929682101585793627874675347630212948722897487667001460887359935112761012267023165144534996825354244902430948009515522987213182924900534431182932017520614628954968116434329746283824092163322874768988135642446785232380129167706476576525348376528486782796913971025595310075886737750285812686805617883507723185725449453537780126717424271809965621147715355564960140830540923213645751071415711171477664090150949954242375190992370255055192586510580657338892400825829896362855250033593673895974379186119121687243397633132726888626648765889378074141165533318229826371329406082215550070401523181058562606348273186651963269729030651648752330139102390721456354429147049816956113713655589975210042432826137850377609918767237994686847733067067240222706589414192801672131231029395151796979933448586509212846002211613916112244614042331994288994041525242466623263522799469970607416068220008515112569271711404147436913911054788738415155344055361285577632607968063225565025273387065376736907558730364990928032749679784730296146755016266047106513321749234169987162471062835382619970683142448027277889098340406538303269075450492486868391216670470284873038203704127848961379636832523580407937292009334821000476531625089238085843082513485828486029206206163710615336245338761385784172482549799734021292642891655156881830463040389424680933491491758424930852002158754535633924405402871905923100123663000149310463333172587758224467870251445943466881020161772806999567654802172945933730691154033159832113195407372851884247853862848462512158223217347446763267266479092003310760379666415754628845232803461088479153590199383910942660782582156759198655056766997792501055386476651843089734542501098638948512954601629595471115207934911826097613267877931380807024645535455965619969026297882144140726710643196345023217821349497152136557900080923718447358331501343588506597138486003375187074573041474600033103453265433060440561207448073200113751172264295069198343519465152164201164085582683155859920693834997852485641313944220073196404500956715956422893627771517616866026708910807117157539560756891371445095640476327766116063558367874255728516456550491381371856073618042811733420966157475730434227899341648163262899989220722724184703838891507506309635727144227035759196343682952480177714932802263944888422572879385125724101933250738546248886325576640597340114110048073575094540684124954021942976037146463780015973852786832600958345776712380353960661454844160692722662155738139805448420394504698448816178459329952650286084742478630929483413525924800429817203048572434683198167323507342424866728982758278481000371117671734139944146170579685956703694352304769065220057169059446423222114012192005207789898888211837856050497371115218066363785189249659263046012027366235067564225652968644647663269623876580999356607108373480890010646491469941127910623908681267607650703535368282395259251167895306239889661416281069230933053360693313986587058840542429812305360497215089023167443875349866743008875235283657000965099875341895011760108564782323453151452131761987928245758135745855727816371353097091964169494837698644708444803118364961018398228596360379209930169930635853985415961307730517040458591684957703698578646597548813678630793325940757692605369146782694410634570553840336225990732198092572417693147707142247740127236109068768259387071008611442185706961072607669455393746892610630120406982166202851531405145275407176607708495880517093872017804097808815265650945875531743632904313845281853871862397581709352898842071726459218427945339222093747630796251636276798124245222941903878933811500278716387887665671161362966165723952285364410582251899168473821333581358276763118388369252965871658244284158076162098302873805493840960734412990433464839151167499090873009314265413057955858382688203290222668598766656883463904245298092648318288421260101954597236081333608601205388545870983775765147038066709387672906495341614725878758126294435023059927970987223910826140258789312575949890745167972369762570892877946318695805187582856263961066266475962805339223215995876413512014307497245974611979981876539642412821589028044894861229834026287806122320802684249412169828872235472955389677331641397518485163875306320055047736396713671318964888343545339601248963742423576290450009461720308963311596875989492259235730308249547704744346433757689140923489845357806591200314372968556131161315719307263871306215917173254022936070849959346187673980364432358810830383606014199222798484944164447784095361752317813106135355079862514361470175643704701479109307710936839317283710176878088075872470988778004262144940557440510041918793439292260650553035636472621973801999143036722752076624372385448228327157437804905019887657543139593999593775868038392663743754125759729853507927621614870246345159318986994955187525011435336436119095974717605742492310191445447769199856588948358966683189323928043555303403014580500231461598233144407820298765476623616779807303201971593321573376809348209490397044418912230457398474931598045772634008567573173670398142638506016698193130821523358112540684452319267476173108462463783701949275782586732639428144933843364144682822864164557740668733649490877463173099500711344527957907498310748129569981069505851404329075314341781788768758430395134239742718079299913804827251280767491788721705209218781204410188000570652179034442650452365273042344052086484477238714454476733270288066426067051100099564954107831596841292082033648698498560031087398113392409565017002250767115640290681408050341181707979447874995686683766751072378119179135476485913797330791406471974591996394880218755268497134600778448109004746026098758682534982033747935290923639271730843028538475056972787601972483473109117906302561089329128738796397497133195539845272618764780589672402626215142250144444886422410706552553280985190417249826845111598044783284637153378799861797887742018253353980579301758616806715790523927498360435976805747614308178756799008657873900068210894307697101110809366327320082281256244968844670997503985820200331839064363681464855289982229937075450673141387947484141883529510031328310366397967844044523749699535634483994678724834406034589180611218922054857872495924151524313499618703516918564292923770469761063481314161937027182960292948443231998439371672576835110104043207938477730043905420270999080558948069157492732153254452062233658368166393002244072594786219470839300423938752422594582732881419063909593551904341307737219882942891098622108928617320028321266422129089196690144245559192316363513666654755486780640540669800964154642840902202489259201433602643599073645441218061596788539798203747592776407687697240567675547379068680910560817468152451588116034558177953735346294439557501702370602820423288612368538890124040064522763946609005423758605222827548355377461567528343751922510338021197373682370611586642364142983907978690264665220626435690068407584931667208070250522714071455319330636357994193953568559000492686309907514030299864652850341668655156540587310148341490578029874453484539085780415265246525715328570758061141739558879045242345618026781505416941484410293366326461821970795368819622546107506948289407638413916710885208094763826723139072623029036773461557670442039267856565906191175439418747269443826641866202918013190160487755933697586322899881802949732698661250856035718713122300721115694195211214472827180570465470508524412120968207100818306352608746188337322374177789032216029268297914098435240418663376180337327632149720629851359026181775098921438629412518988613711236640427194616496505914723826544900615644313553034534664667148944453338056535060487664015181525160237061267897288328945662221453368310065018538640187533885368989133368700323196838991694290073598301762968371201671418914628468972215461540014914519670559644946892657084768890359500074346254133665382649081502379698166871871634075822542585787410203099019369378501035272524286394131377801200621378744755819847108468636559381679627408993927916083928260645895144525889314368245788450865573588687479865094496592289669789247141659629981189656302859054490634671945291497364072934631227303966484431495294358685004493338619972677196319020955858467845856416042449203418030857754709835492601904096546001112458187471678798636946165769518647041426576474790940316027329338158180901407513148127379099561510555843364825934629350809831528330702919947160122046296784339344712742073126568481594941474816997313844414900350445455276166811659014820677275023594719288417721700905766310226312775595841995616519598956745383400654827923779084819864950479758531757524177951330837708866779197847995938005125977047272592362816317207784314735585397962032785559846919563354168257026897474799209520464724701973638074523626941515514489767465155079866085260992954409268263161627261792679883367756652558088989045106822987566845305543527381831787499959311500032165767841018461526939234122666979155123778029385962656434925947889395605178712750735408138055730482027021749412809443165640093407001786688240991351731485171894423374204088431136462940338752595674210368094253749155273758501852610826147824842222680364133703496446984953885616364936638418761532805104164240599426419371480706532139996111526715801742590645787734915438626326021072344116681116253765526458309042405906060607229520790194434584480813791809976869239517567395013049865428604371857082045104637822800859019102812519781145740719291427645501588092033525469101301047008130472748076375019758195982863264211657569806632559710418880744779412060337055011010272655560379083791428333841835321541630954530860590564168884225079195708951038501907659297874903504801094357754107525661943138274438054452138287768356684563300767683071548353439065867890466105003170607770108767089763981296107794271250939531424541695959364081318466960101331564217412764895827037173069596688383490716819820863951277519771774338265755969512844240233256265938469501639840934800613430396904385419965987834716126264033899275819635887873222230041074759578464321688736263692347563241846467487205696879694622961020680930026646923341886991571912886789876555696261600471053482179758252953568484827076734382943145733712648104573552996386674332510349032606398271474025362671461510162680649787423174934836186348659703936510148945643463418432053688816053704056993102919571815726009819320196393539356019996318629578982261999915101428822728418202476885695156024986406271287962922806095010526770111459203598958577337551154168862568671815111551943058838170023939654668382211113166301854263908332677055870084713647837492326614995815344788118650954495205883712059872735846766536477889418528154365397737965806656195535307642118421084028009365026731305701909705051148422095449802719193486914473221903030425905623835558341947595094392773777921070709632975851567421844892181629307040257932956580439932312045477048701946651882048203888089722089470951907218095053444019690023595922403324124196323556348212940645985741157834580194470490498587383579114034104410016570555725353953042775786945752824561372801741797331411036448265511338175822842375640036743187829002556067335865700634024099920193725573743716838268963880940484033644822540483426746411047668480204677171405289357297883257092334746210112750536272442167340309592256308201240666211869407205000300982679223055279753488693066747521870914869298092488912505863874415448927975181575232376694079808338858199511702186075986121036968175842819347576960735031121850939731547086808533367806302907142624047861036928999811074147440211974966852983717675179074843242149126279844194803146839615438748758180606612630630817602445428249199216933736146292279991691213250292539277473785619163578025141115181814917185443262864260666602773933575483275854390841959839575524790071253793225324436339930815056672897522254813822903980610378416098636568702887443035490791093011919836688641518468253499623115612778999606542021638193579245253692509875995363966829747324660204014037058182975005872161536030820723171763693967696851778623067903309266677975093981522026526349948819619975588350928700352023578702526272346994090027251966161532415436955600224202631653525603580250633848162682569955875231535648792598027481783354172724542572663003191330691533862911764840006134648980909311573379311292321691316771860871301419469114759237551434554088944955358905869074857079678744072540388750679659281538777502692935390280430781622897856917919483921475512133325310492963006337659133294123890729216166117954076168549394490313271879419421068229119814579224751737305846219963041396347062303242882061130604377394456966566344668530183435359426854472392450001541434573956735987216047399443179080919726681195465412671552856709390488870549445967783228060576328727315049202497578987330868720483669459432750156826874613375082054468509260434764830868509045549818492358425426488986867843510748233200672664087461913064149283927001413858684845818201082348007423287587330768181423740340721154513508070178086833725764903284473614383593993604581893998022966821986829532834574762967633639352378263954656666556861893246786394436268932954164198550968672707353183381168880161798305535271150316230424403487656928527509478640769410039973858569406336916102649567069456281709674476077882925685136314447332563540591230768432385124937476898075561721623114695158609195935915098523715045988850594950509534593522304841928516058807636302825465303931299495251743329489637830706601650006171116368657442639633822524951666626897562129665593887859840194263923812348330247917809347211767775315004885201626824481572606329839714851436305261913701779071216415136886328382932825683032651469885158046023209741506419303696755712679040311616989396789861074778968733371182618963973407202386786535649507370059577565994461925927348601393167321603966093016455710416144332736513096351666237760214393375771640718647837642006346218916014157305438540769825953364892687136092562128337922943987710742155946148763160506741818929142037498703359720332009167048680198494092593377516618633066284039085614169087355168724744064291227274108671796111463341908723225487410295153276956115622051655207928815976416538344099748725474002592437522305937939483601083026371423482702509662340641920669868328988127103059085180403295173819241009379872136423450963307387699995919729582971055167857410239655201111990118480565372898788483465944089881784109605153368782300924004745842146443694869693153259178642487190846899361933349513559849991302600001277607277203420366345827963010316854703251887284904439272565816372610156478411549521806617716223469927185076915902681888929476299795863792071372047975906886003877258882872469027063580306760153610551763250434821860794437198641807869360441541321908685220965736555306113132723938673623393447600722301143288735663869784457678947262382054758576806887292433372555771462856648340993874506687225509106813298627361175567362433770286802366247951622109882977907432117604109883906953940604050943495863293471887345792529960068420318709271157121903348924262532403399575001539235288666653764024315081822775847702401276157862278940282182692176966798110302799901172580660284350214313093921340183157263210153549182801262876600926319562480255839006212790649136414772471557794758304001812770940442829076310168296374039055361782253051922856376691848564002787103964619364265136467080290465857675506105193894766923372864200810234767484724028110545771768918689745900758771556335148545661818492924929150261575361619915302062405174538712211802517716511298244701910430584784889730685110439406231676969986025086625134101062023312008716985018974084714327945840014388575613419032268341215121868732686605097838430440571360108777778226749375043495092404840673910549349309019955304631361533718382328454943360562679550659850499538978798492107169191756518184974371117569793181454911921606296108948254409515291484410738066761189998909309018327956309025719489901939656832393771490996589852363399582468480217085114888959833034153379708454549218738410881046208432150287496515418444764409584381293626277113706786549290084198129027023489808106942513397393712992250103056391702927457388022290515017199709316262094545005767312743553673580866658210237512000749112416909884940229067200775596351510263726178912418510920569641420468449198952661371167990572745283122145024711341639250320818507313384834904822931534515347123657944600430606446317636291252326231760548658153697129209979177173016623905112145432753963543308102888403496408930526366858593336405379323394415469295138673403657588689658132458787383984309282298546488513410092760808475666436506927490286987098614868430467278870376191517429353213902726522821815014362936825801723851355711315892476434622000026980228893540363159748215301787575046677843506286478328686610546609811000092798936456540615011339647639521717732115316692631588131585470399402417349923942508262485112574172376477698572599387520741776601138005304864762739472438001313031845439084175883273771069486386025562616295599577061929929374425254541562156433093630221297551494594015273170543398639681491133796721855962203761435056806300300369748402239914049193641067698737507245820849393544616485456483318972211400848408513325609653428572772743255682400599864975536454737060077936074676308755901841282828709022956895807122746117897254017418639581233367208685806345730793775292088889836624235497306450586984140020982945020415362658084275381758593170967064071861150952891984275323993031015098768516193235601699967460657944375722862157774482940079099004840801081180251898925134633195725600142675169955851513182840855773850792301293980823063901387566507844637812161832128545163940496032326584812337254686643261200869735348527022023410777235977864141053271920623238961403580261981516615408849060185637492692600743400918760951885125717796484123649235304358779697122599205600959572206432813102180488851631489943893635969510209133810321190076843286953726751603574119003683447186354534364179235134238194619824196439623775904933599798976406079449715265710267968834031628923604994049208072949255081958164121639016497719013362729496157505014065416573349591682226409776185880231949429608625404387243644018375527902542879962637197374935446713401841170895010508797808174513892589580296200536249194607610943872238248595399706650764095820709256504188876371900470608193097126781140564366051169989087948072502297161559360874908844399142681283381276069322366637124838823722950200003458730575149697823144984165528124800083618021330600191105206322082032277223068273750028204521598005604789938250853555672107003536107413754180045430914463525624082756844808192003109071628018048209830871842268273590563587621871467500722692304106324548357876369116956697844145209149583673096239001374018177294211484263466254544122971719797543461437961086984463809884120266862119605881986455506102820299877386324208284667651786700618152005889665916595274955561296798769865865570178318419856441396371965247041551418148414415478552801410587134204874387010987031345632924129735804087957386908499046098489259957702364212298437008127871077228517182049257736064585915855301233973953390130933979609665671123777059054428762031695969813791119938851735508606858482896611851115775667273793521503623469778029924469474768016053552732738807893108829672248547644304337160041597653529603913978290885950958548311552870252410491498523512727749336469264241056876434237631358376171973977174438250907693076966213249631154759720847822731605893079536653619448302334885992611947111645021475815435347569140625670815261514328058289697269769858743225519534552219392659114491951664433110623296866829590451639989242899720326862625405843490418400833648075367844648916280139912518073455828688490999733270986637156225134895847399499411914082680844016333101390287510838393693984360412483753750333080237659978822123025008318406759839312500153091013578383685438616587784732050094129118251084652168390758700698930933790877734213617332805971915786183505131031331765450465536122003229853550514753664704710864942533115926586623849287014765671045605748221421415912303059123143660001748098244884613715162208372560998157576214669623994195833073523156981028234537258629188629250773534373458732089286339537780598952448853498715214851593435034136795617620568299624305487497952849856140520259287332355083781255774845497079642879197711922938016787775076824778072644824075933230732223376428419053509869714105075744463883440735869034581891535031647997245244765533927919966695308880354670954988656365328423667363837570476833394344689439253931581585666385215438652777353928092689377816874534804136783348568454010373423212158952977038039687201013578698970155967625781968463869915006065505970316568955120231023010465105645101078793957578896044538535700261828334585926173712246197824617252687640107699331507462934385258854985630772961337567046797026346887787456668258292707034826724846586599533835492423555174109760676714956538984690542988155488929839262582795273226725493238955777724561448634090221194728223643725805949928366874900262866411209579567958705592267368855048150817398673296837766706848487734426498613838014709532763974751133015005191655529245873738993471462459696410638727077471714401867720149955541765421549862101713807223736759927199587555984825927219679068564420314339050981116008519661440285359779446750655842322746898665417823396057015610726439088987483701853847550340459099670840823996883850341802664807260592888475524413355726728862566712304724100367900282865638099936833559646411322099101308042737953633579465682801297001215942373497030149380951773118735892025413818484118947645391975043538853607683445913055153049031710840497296840261739704033129557722357092607480577242609495946005576359604055016978070604259197557760852177705773385295311831182668634464508655560148966176624777225503023900097597067799804003574435860979997809469326891071034231674278588884167958127658699847855117006646915670403826178489330173538276713747317162591406803648427557089172961018091216549789183982162334087857471003006300574668542055042207988855378861510663223671543570167234156362601365598869275649518330384745505780638721507070016799957962150196820812405586718506943814286070933423046948543917321886920270778823072683908211476822329937747671521926254050064289474344854589014745874357877824763763320063259052532809383532979044682513268493662360931555518676330509636822203692465026126335006980464503177981135072988130540477313127320688316521373168907804170999096442376988391854610210345186333495764301192319246420374937125447359636234119508657805613567777552649624201138813870577597465678884558851320316512184931698502271748034975690351090688545492551645183565860173211308165572378614093434475767558970566907116386246892299243351052865448529322556038031402108245058277907169997581636046119801141394781188780751680262883718792549232492416791545860513139525839521064555547227095380552722003365972232110340488775901726442422654272633005958993984522745506389800983497012924263050277219294992633746035396496138587812092807950448727476126061799877113782052963017952432447436907377099791454933206061088886969204390014821799237712541761519087366045140738279399491893100305873912530102726104631552012469204148568958892161091547550323670976846953673400507581375992873027276100494071495116711808012848330573498174758893791749884102428580218303253147018678827635014389279664171476159277799900413015464209797554342162131209004535428773500839161785324767983755340270669448261966430309667128108327884662427449197711001763191832585368680438431312568254629217723630235784427814492740369399227179322267333480386748525222905079378098797731958489944083018697217838044557133419655608097363128953259379270990317731558775087341052912419909967813262013551965258402438888455450788556221351450702853634996246928877279690783967755414835381396626685971459911499261125815472379507352868592330304511780157381435071292468612708300246290355051476197987539126143018069156968104053914658231442157452512726091744773279150678222156738418452888330303267874709454843081612295987331133567442377258752063066543477658700119881738846285516662692086887741892299925595790537927908041560073406235239259199083402988425501841034982531792389748558564878287185553260482613326935952387872227858358595587959295607080233901084155491181896087773488308819166127399741806244794649189746536164555996210028306040884579026094170967495565974311783250439333709329139755005275688116557146003446457330030272914568734294663671739202857199882722834753419026248758576415183793512560639722793845852073854526196151386123290996769910551830616725502437364022230145197352715904706482814867311066207654429937197347771519978533200933052879583514495784305098555091418395607864045162709711260075688739362846070376079512148873452585513122187389910244596651931336522059237774920637985360912230514387693603958654087921220099798309051071561382755108691430449934074349848331966776989576597520669416134312976995163001413062757208278157286037934602116978705196253779432961865060200349426898005142193525909490856150564625575512412645870775301139284834461203054380839991689382992684351957461240215096411745191173725127337266528673584433997892987598720453794379789180037493992615611170809952835739542242754148488518993795334121685553207867451258727574959456753163301786864281257602665902988995407413820389172083708231853561025143835921600440926227077277716872827869657253670192094708843983589994018312493699285094139234523059705234935450453507417215512566815247809693167836431205472617701751497579649873428631090771980245897254467805883972754304319216835778923537422477270579914116233619873940669710313873274336044078348569909281485478565738443495678925320892781636219911614694306159273655245793698825212038877504882194761443735424097140657220784247879564239181978717777462038707570469480395205896354105996145916718205044833359792586720221151532013194283887705968717444410485420440370859977232594112036868806343680534746853120609370234548897997372021400980270615130468017576514666243528988316481908123241638461669248976546498402669994892555739472477143376825024017074582538042209997493953737129690412589730486896749562986859108162545909539370932413258305087324508844830935066630085767889190333046878548664168272979322287714268335246775478489194124210072942593354278506202539906722955272192827346006855363845577430568930270014235920270226946606056973596210003701690047843550619045281319564151784556717644460073920906725437252983480917996105480182829502963062007027944345987653394747678714946951118580801864789743032750673970172458462389801795751822879760834838499115765854837218255713625257785946146216412530203656809822487076196350385930469723223291263722702832220602302183361145779091218819475288973720530001093690635030037851356437741494272316345412708241899508283641985569900624971852035681535146784675046216539940668051534564695903234612550871948526085999278738215050378790508331474443783431428638144790244400561469976560391399966578046368361661366591261338341726662715198252313527258877653368032331983154045792222300184746066626447991799350630804810846088815418789975623196799044958153950768795384383563075308990822378180902387642205901445906617636402291408650063212400538778015890537744252376777975304288999619490489263567921424652583551747909002267215343376751052569116780920933758859847912050520312986625190061102755058039903257788888440714335353376179008761321870552740256269668807003018882781569956161309302004330936012532393562957259280546283689597799046191587846924276781369785607746589208408622917325745847022831652055636191639187769174838342783140722813933184336883093808254115236761532479932935249316622269199719418635244192927118123867936301538809529965403730407104271357289105761305490220985073414557158677482511586551584184110657423671769487758503047423211466623196475427587908626005399730052301685740574674001861156641472098134488427595109573140259261838596045890503473897840544806907447950912925811306224982608367040245924363394588661179517785454862874538429900296787142124547388496999206094485617534184940656611486678227829577726638050147752471794675223558764709069536320658240921923752366113863366169332357257625917895940433566961835640156459230541810634296612127734122920603196123363449246332273205349791045195538813331716214504043388635457459022834580455144239859065221789655458614456832140638530575021083092270472626422482893493873475302748900895688285176773326456911699100985188618320383797747626830918267781272984087219317461638699855575527846047594948151067709563018887810213201422457940263635759167617061301189412950830154449559619701139323374305447777037824639097814366360245686840742660315815631735970270153032147915915090129831235069149891071718767159674890930095168635481250293858824139047376265603944914597413631338144254120287927488003928902530231767899493804750079907025528213345757161130512946205640187901486063815669892592005277157757268325161015082782789284595629171143198627137825051065198854220967653231007875257533228961790913931535521735258109482597648901359111513802805867556716644484497263177112985769609570098192186316108087503039140811175175761363464074546082048675803166923574179644607461543620322720365613769479179393463566337090805299684108866480215980818950160373672660061904327711773962974415354526990886871794583347372464221994280742369162078885009704057272174783378362422974230529526875906292094401882506693122082115603802927406656646700126852333671202029025844704664226518885065354859222317370316571830363847165190930220463452890729686399704071142482851539741943503805030142956336739319463977346628966744895214855896944734819638748949285928020836663134228294366115582989989086700802833993331999390255542340493349085144218109584100248901628109239575205770793283272277287398674703403300124319901557576329941997281801132203835413084547337088032025453753887805563265298867167478012082010819384230378923726372897340256995518810795382764503604129509823757648087160611962796759521206801545270968753761989459925989101969235509931267774410413483343921387340159710457678493957326497101817374133299108883485052600698543671284510897772871631698698455178074269438199702291360621364931994751675051572939232330644082116173881896429617690703434971023437483479510518676163132706010068144998512862483474974326142009489700745122636471534623867670455505348611619716376790991200964372173777426760352520897241162413448833534175900304762788368004201039523802315620256409090133363875412735947698670123596295446996064897925014543535109174193632192994469501314562230817486861586899688198582690017190126094367210484092479746028183067139057379481308859328465670737053971884867627538858106533995293017759728544231339657223334134463574918027959997031573857088236213208187936446334867485633857354181113434695032853063473162707416210631447112882816660736007076391643195553056448173395313863555967623143399182245468055337798441056363440247249931071249600406491411040763927910527427231409112872264865523379070435673950488459730738857795843141860991253201159796986648505279325379282983159537098543466181312508460408900466249834861497127911883132757269653773392622405626435978485907036963994934370868502162025121633378729446840271679527431256719857729660874958084104413631469883655981393048006689539872377401312529674293734586525649274279460231474806365927732392724952787062017413054814355728542390025347464560243526794133244835993152955601966715081518356714984347902763274956876960313202353618257743211478362723443043567699120753857304846275759933490838520383389773058558157382016087458844965754689874964076096990596625577843079105737571601079816602107876313247461057289053965494712657102483903876820183280153876091454449491069101591820261085260413458601445661228953940667641094697442268876270519117887675441498309422203847792637505163006238083230367531795705750992085682681502816247553005858123473597887123678654282704202054258264907161939301069946225293546817910230449762099083475405772962816960961670267712101494603452841285852009487041502223464927105164152062182923081285696674851500645649036876653730543490362798911993503071453007794903078399964658187411586751950655864876308139027331590177515927580801253614368634666555216914781003465290275005231877649054436575321160618407930058422172264323789637755427404971803379140021919339830277329923832788831173514033026619259736713685579344117254938508095802852715781996099911404492100283810338825889042532843508496303191071100988366296179970111389950307678075448697093003264687769154771744987666118364661248845801583507034497506385583347781977052005994504648530462659220250300354090781596789046285764037403758255506927074683699381422207028773145271115334762338543018944928362740809347197601601424607011948955769952399550439050091313957307200270425373427626348506360110734928073991428306958019122277267886720795629079343995266935779165731711469603071003286569145830563045240045963725713185085739636242209097080520793383167118138003154816136650811765600714461131451807212831607180711207264195831772604156954042980711909702364635266630033131574003765520223612411599335486767618972681061802048397107329658908477673452572953349136903154369955060078273946304784307720911575838399124951644380087880875650141898514087060533554972048199950957100295814488369835764674014496770262340641584610387847160031585410562559422171682118587491229761078838948144615870880441560277422409662442212534968861011125713389468307372306055271310018469146926325205329245982030146090629962492073509254246849043614990429030687158307088733923090575417311909283515243846252997146460440136706068729199412714236195696076469874656242188652584765556905481463663467137158169910917967613331675662056034245951854128930660602341540218097088711016497232449969046753651243904290134687568601446703565238983968288128642362048692958446267511215184914392109615723215073572021877915077354823957723294321786411278134105948466913933941408934198626008618601108172820225297721327505254981752084720014700040270604796478031156853274130589708288849697828867806855784245178682369612760145092774966378503425801535171784500621713460734101567005347263318254397350239068226098149512953631392522342782502319704844306365020872901549405908633827617828950051334664610588385833023717140755796063648804850728080196584201181231142297010554038792537974024697474699802098801281377752728097170513838445654568053877464866910779178774472615541001453687827954693793558105232454026491807209271072781441050634969942254513181306386017355838256946931076074832091213248368043076639854456300422066956509722438787048895339890195671486386666856610248506681921936425339370501486287070562495990203884242252615123838466828677793337019050371223075042710762925157178652930763144662434924954489899669542376094705521769805306823356423838778681493189546044323168553170462829902204538958600984222074399036388454176001777062297402268623341449292448799701364219666985889267494950122046999460722998527135380160064805641165343931692852924784842814411279620203718735870683653703904172459889307373491631308765445644865655801486560202994734148351389850579439787201840105394993365962433525315372059348935431018427197078485156283260399818541594579523117068474665214535301360443758888240794217708379919182453432607654443470035566777832520476768111758358166649926136187940479442974832960984865065941006913661418684226226143853198968633624942601285231244518130603758854152009804323613350273819104796185435553786797211081875100625357073263099887708872357473873298346544785014233346601705277816095889884823132909265652834641056180328483315929696755249613332634847895770847195396080363869976316484896678821109759554821136031333418296004612711558987116697044323092324688086848227529570766111339552594058722052585280636432657459374222034958551656947452106628557246304314287083296808508141939344425050597418049993484428423732228558071419391650567295180311382600573485007152685727997242987166564238317369814807782008067203927171121881130923952586921268214503650228866794340228606765649431428830742057328262766642858140048325308937420050406868331180824679385629650272780204193288140009703727324599135921274633696442684264401795682729327140447429536006723890694803526498545746294479450295327781621615226105082053300786450096046515265169786475288310989109739563300269935616110696708884812949996564716361155841219743554124195703341519972216030683570322821359194068048505102132406992084162132661847771893883705785491317765192000961416640123580190128528545825020110744660638657123243788212090458981172929646380500451994941240885697861865433880075974507539873206966276741275419182614009064239458411118315039539302649733063448639293293860240307358848488953563754376925339590233577095822264368716878705627375948379108805373274393058671397318409413979630780557294186648261602371175616438593322283856639492799598600486736496888723529821264525386729252110146513504075126622273115026924670726660985546189414929073377665659660616939384518120379670090277702722046055196582893453796522668700314094185442731436444792301784376782785702425340537639489018161927355546386224497162269426725012221605916375681155575253854441187911912405898284706652880923658981838892664017135524683196790270016354281279561607798962597970328078424964199669301110670728868764464510342048673480524364453443301543865977113929226642828778883741517869045102832398741704614714581441669948792648435797133401313426223128705193748230486483312224023861301620320911985967249303698329666438826819056708468931960541426442757214595129187176275022266729281455161201792323445641832725476794209751106302146655044852541459339836081671639388370854980958279987929292986394262674100050576383730537296335759256317953225618095497621370311328451902300535068349337325129797278134482476237598548480632007667038844530128797168196784973940078203758465691582789649467558970024764332085606369893802731922430182963250247217124004458490323663096510912741293416744073724515954452672539610299235149577361179311623772049675983434709222113750407004642555921971096519230339245765484990034163469315923944758941969126590020818406327168109551778534832281148685257081108021580269866964301513655317772821934279183676429753701502676621860320322616617508040341818256131967604715820791021633089945960795215393337328276505648197138516898004430941331278778318606478297235179694634201300157931101481751949072521470177877342729373055812157898865781970546690684828850286921068751499190486770627094571113954618528523116760730036721147836170920779134554785437132176330980638609093133173059243328190424990329502960218103999739460379972945637486101517285181485874808032581397944558231476085167133456101327134727068129069861182887120027876157479549267070470826820497740861309412294498989488500960002191798480314132436519826811248942602166356043140282139840147109175466109771869571996048243219992402520026847004916082178044230477755558053828198568869657159222506622058087346886814031062720940867068189532943703801036414561951935563495997691329072163253002973323509888280957951364496004163895986480645693075508754115405064255689953381070588749151664651108328636253625155888993565752242428341470160891219315947634599599430402232664680554849831561509027118504055227584351842861989021464688099277391934681295527386385817074694153062520636154862904087848812068767285737535089879305763125491704587562572573109775228435637435767821333219475503398490111427920127049409244375295294419005736558246052709989883678036044997389298434281362336804839643089020167051707376230799308315661194312394858763961612166406433762436984474107692106224489634771057081332454370147482192359879552754166145150795413254821653323193472445832634101643289004442126476398622225154539200210310940359862612677079221294555212644312462515808222438087239730815201268029628152402942190918758726352829005657193781688571604610165584881427259734590692404803133512451926717795371702353875335092116623387207298942580382461834299054179244052060244267442352819624399989411374380535234169892089942639838973601272367579159457191713208488705170418202672323840515370423747726553505691116583251676649086459379500659945079825337198556444670877082257719098396357162541753164017068698813392975081509848530414050907583675324118678819828532502449764941425979128085782629094510871143323499939058812559356567482325464859056255428574622202616413115965855984943203309645097587775261325455840982172174026922216385667914503342228635660835781178730407999304132646955377129245901690049206466578016072067239049577219311813696152233428919682121863338502628095875330081707350406380875644108949269791093408437300027670441730127365084001916023781944576434384133204097630648331224666280134724160880234726587605149889496379406593485652623855412698806460269942189719223869118308571564356155242029618003639297046627782447088486016619810398343768594691336128201430910614309454247514660775524758007355789272496502898342380805298072636386299260790954741558653639215707163160736961983559755652491951301684177580423283052626510197508068049759906947062350425196673848088721550483578899530942153170292677979312126445201637943444483750862091956207145355186772504637507977382201736767821371999778322528841887311877857889617510231466801143798150690948808341820821478728025876612509106659398550927286421480745559486418523602399156872081053550885401123818168214989687934753686702981987212241300477549787517117575472975699695752046460447348437699862491121246523361241102008892495668065264509189062096596911334703621362202652694863501581644409955274506327976097376813315610412034139394722266891037696336905027447179714186843227728677479811419599745162249403035547411896970883981920112406748752689461895005685897469436414261868515139571666850016727825372605234018513273584311485213955671724681561894995341742806143001868661885668954546155181765954449657134875122163175002999269721770300649281335588061910455127247476377116825445575558809590901685216857176261169203183665473456271295293940992128586682640586682406764618319180085974718198434412752862850781311726770970137362924257559287108592010017579524067984876371936609656053281376558616689861109562245248950871773294215274654065937199945556956308773226621850297612828522129418512501862837406427057462965897536418951677990069743069107124001424733968227184001097825947116946434899938963292010927196321247590856117489744651871743140951045051190102110994990094716705076935813214208310147650705164119727725300717718441593531545225809071179514166600847585461770737628216667553182695213312430799709105297229312748158116603250869384036620098993190027567271498939027705133873063357968936119380411609270229233918886096774075796055564191719764782218187069352092120305300191093719932180331898937011374286905804979138648595025435586613142789623610704463660547820368725071622904228451455377463395314538199606607712141792067051889633477307404133541553988641613555635710868632314218012214808569655812515200258208917961704934197881048810704173278851338449502891404186206077625630332662231689345307342117902940275146089008444389091323835329967114118614724072903071603552305869410292361474653772617456932066121774272145500178866728248888241791990200123514495139264984876590478689742384276241476169637141579841060544064021367563251357469402308455027714559081675834636460722275483462239501791620061556209815610771293057714062922942278844699432960821914479124977558733561630793033000351351188687587387841128478715189526427055498485783105550493672023670781744051613073208026705707406461199960209519116840189903949519584730270699269783881596402275253393511184051017472417567172087319704166971254724926706803946294231102702985297260913962514658628681564426663192916639495173687001506564373139541052666793543845462512545467738330339068854649960620357928659182423211230407815465463268574719299030361671361641655868674158532817333120039865796061284598573885475598313850196584425058455432054613397326213417536557512881017913713482545206912202088130566330688138604672531427967696237804958993426859368778661449072739369815502654855438367138994996006979948992953175515618769760681678217161369425202242176734272841640489490538836403850967943351057388463652864489575442468983170983618065786442552620125943135504626072694063382773550350816551849558573220037403902563600725095764291567959574316420184509873642702586586644293327109704334212306838237615767784693568671786128480307922402290984176382504715531225902655372556855106343917278396097019363104329519685415253975433150810151213169619669512685312021332855761998826851638292952731624012323422503389076716191165016490456168502323672804617078960833311219241954837823377914320612878748113242892384066566037238774852804827158753593633223991964605792164277033198113243617615205501063794499728101425948393773013260786518994879686636074657280800811175085120429991203012391366326506448148207878914300473531944524338377809851384132836308115544699161436941636162168650194580042837125683845733431929115305781681859041568099520711106980043634347343833605201117978444089376611863800501587503508011581656012621376640553039555989589971082278639171135716416234172910399211020927477071258198605577188376011750184218863577899494945452751754868966146283493068105028306675264727382692090013275170757596573607193298371055037674948229653228155997106588832211395232517456339382980108816715404773658451856210609520863063841034288740448778358685465429910775287785654594200873940253754650658258430566966456406401135072928030615563840503487649160002442310838071811051392267236345149971021691365363191905617923454494654657709372743956618232650300020796853951636630210428803412396993619193347314470061467340442609591888517701941611367288895507607404402666322301097611283597968564359434638385709620231304516096126805030099726955180103807050130484766290632354191610684002425819687623331852559524797975476690166433312406531133667556595620480101934884766818420099825272561580248119624567285276378536477036402156416129931524306510426550126525036021774038973565064561554678241040757362121121033259900954347373273211072669980045761665177957606912611418044761555879821676597862010105875769096122569956499316257162356545950151834485207817793419403339234556490483977715704298778323204838025236473947003961665241650004494167602017895509343905786683292957750229205140462062946860582483133357008099317754696612685865899561343814638200229929424144764864281907808101203029549526053401561191413359784612265931555464902948920789449889394954080776206708265913360261500836437720980126785914179244013156496964093372830704121067785637440214034533189722203507251722109828619558288174417607819485174612923147996588823031756473751430579596227756109821068162389575493249061658033249260716728314233337675160057328588532336339393782450699710469100761789121310932523926980840566115664043738068846323897957608593255672399671767114715311774228098363051002837432813900955211651391454452532103985003355097892693877102864635179907723769860837674120099559534628865844819613388713947090601340391297414015085061224311143913619476518385320043134013569972117669153662174981375803181359789048257681558776657788391402639812537313310784501249961705379418341706174715511602522401342078735881035682799083773079896159700258382137046633861414774214788372997011422956721660103190629045003212125731360609209036851050547144025187370734406780909933828246352407081165615648267762959566573275672371607037185604575185712682661110846651733063700551817193058556852033834503599164685430343108075954970249593648391132136196699324016317045467188619202883035857969159250900349458466502961775041507394316084460931113065728523825656715269415679011937356663631808582892355807203332542908855819442373082255277039250976382234958958609803450188142414941255666427149809718254894279483262008066773325305890772931035234272671151418675649495966815949360111683956028353850722797299843107909123643518345988128595051634861510444970688249112279523461943127211636438636499647472942955936816535729732168954714200230725256214289765435165927744980002701485036912251327800892988235589899850860849439326339061718580551746886598841281407425097063370149985518275951883540453789771954942389754303203849286015044263755081750183347904532302481971644346864597645338749514613913053650025309953032073024512468678803823371585900107108810224891997476687956706218273663570830208930064771318662777959747175082546106163206586041508618388005658577370773250040895185703006750243030738359133186174749460211089220814978554832486671967134549070790469043155598029328178978800606153746426264901922492015923489034987067344141899294420413922739708112895787125994616972690766555303611788068792900880997157166472535499105531930222979187683868147576987985211858541993734999134600810907985321728784838208413244520349659856619263367764564256791227765615869747408362219681500708643273555322202749706878524330590533489639668053039001496878608532948891858138383281202851790479045535362478416551463238232748377505796975426357949355519352276968252831416636842876431123091200508926439004914784935068632638091395461058908362975732643350212912571072975789893372025304524930690175772056062376142799221436444562730409959075894799857027090765748565775471327981310812979426886799342863910356696851178992864562958427304355767691777038681668127933103745894087757145819998776148664946028872813436507764673219403351333477627950896807063171611993862051334678340870312479342543899588989405642926438741498393697230205326500536927472195535596356017026098092890975947781498996053054474253707984077226400275402794529924085394461146571700757570534722953042830145995705590066146966532480817226073157270181913867701206312177075845467267563403489111155372849363351680680029229826103047239032949674749726043768850779524981255831679338482607697906497688000880225802736433765848171598610150363633472261143114282151645591904384856387361346314450550263143538638935810489080341026784601520309757376051839053330427957367771720381720544478306971079747335515890326399842129683722434167883265285423372801161168225701799050852201669901583071553238344257380980551576745105102550613008384485608603310062836229591902436951028895451002154759983917415969847757015426171341928234045189607372936596697853301557278711572938525453203518781219613683726945227684447239073530796341132938472246401907987072888663020433456081895869889580026646029546086064793558175176297570902811120528178731919648794650224103921031423583256894758644712754001814404722173019774932180414944783655385971117890083355139268614413449003783378971750688154477222291748558886996567897017541006944734000649599852073742020402772550895012817146543378088499690143940996087626226712286339620069972079086319174731799412358724912212995534706278686466249225235403467700696772180580548604304898905473483945651259983862806753604814384528329184664315578442738366325431958162915425730289157075342723580363409454625869517163251485914540954989549117329687140060954974880859248768661019722695583628897921508415502350774887087751799272444420108196574193175711743989369801349824382039962322253908555176311516605323289898485446704959977036962320836108271520005282272972595894446368885049944091570506975524207461143814078924643146324094599589257528246898445827206518022543683887685715639246141791167005796977923741882300688538267996254029843567622380677814583449650824040402492721241068522468881619197754067045523229440010756054657702934967777206104093376044339216251292760380785874931735736283106673729545856715879703737307379438558920621627755333620815251587831074504435733134355292490322978788167169659653140088517147325774809071069709168842260759456903919721329415532410323663197972548900676734990345214902155792395267354287405893032515186051364656246864403789686744228748948443010932593654745110239318749588863623489259228875271736075308964758119532542117212778433029679993316520950617328134269344998455404094601652787493542180245876274066261864800923629174268673379022591782310663103818381943963785999938952295036155494499488798756479740659544955612829377983199537029903129785651103769687507249063483930228481717371366083096342109791149462623329541362972334754388068063486620802963292007879391524419589477631148327280181961576814032674551854579393567363225464623473733317028594814429813072274643122635692352797309458493660165001683169262084325969262501635697715805184527328880575574782023469183162555918091266631619678823450804995195665497620868894192446985977863432876059117803182764380164457207444095401758157512323849611780306223925947468255839049027158691141906366904956059630044460521539758578346771354710529758576527048516881578076836233678427582987831838024080882229399778362615003626777963564367700171162229449195000272089273845571618586310379720148289432744199201890037844120794972560757083150015953707908215747197560831797675459575990030316408567762330132498040680752393134137722138579763215506737433486413237130859524937388764140457829975778387659071342961807150333992238277602447383760120710948889356998505929042042259023442699286803446104791488180737719724161846253271932716899391943078349154653883807529225001792915118645592604984230116229665921356734310398513847141816616816414911572451736942473931599862969283198058023531501430626048709235479273843051639196325142376027146549942664094530294898445565119344550655257130606755388363385324372694378668907681774358344602142488645352036907123975776848214555629730669518247003057143573438453484221771728621837263784637083456002800966763463742215757927397220837389736654269596275597214569436211518262510338285179499939286750767828409365412612982957307504271345621042355164178934665316924649569782944429708271980900835759764831200073265123290856293984245342477833242482720196522485760852819583296298591232539656738698658212353922111349428645553717772627708583237843252444619795020839961538609283612057880391953788848195234410851861705326159112943769060335003962138539883320839519395484337262169392630362761413229370707695533923689693695547673830132131406253847048254943225392777424338398920020241831497874879026884000855826618034363886605454350579726549325065754749827835311932250996371763339299551509813026477417970484935137364025709909253140394130879197458816412710482065726443778248158983667829087275609667611011893226602495566800507214594762500415176007890918060122875716290821229216244543365934947400016934921963899119053329987298267748209818997340599597152319883896909761173023948842575979192221204237204301096909178376793494035434650347417608950272349250507193240567274861503406568422482339314655199634679587572116770152183997450368702488544685831270773790130691940122692009022681314971360941513445179908449212880202112790696728635463803092051741783737188413408540135175444510388284088693781944645595772877432501802635587475183721973859638182073986461353455364699864535775884307551367078414779178979233591314730663754131941029820355722561825266325344298738008298623705850280437155316404287175444155540064103698624328220567335534471940587395920563993122292060280302441878729185492491206000420640666929433620912212284654404948699691316362855521159314018743620914162761571122746014188544156311818527236848043771850377147685547963405948145886930319998482334861017789024903592190625778635777837890392995310803920244362975578717825155233746112022555100204510252999297808421003244116925965713034570072264039661297386752966712087248474586674565333728308347001428041533827975283787137675507162529968631488914748356553115141268948326803383325854719063991600431560927159912471311094800416010053260319279506551253661927158222645478384009811997415668792414783469591198637662137954751688402257572695240477960852169596416584295029068099600445466052621836505343861990676458893883436128230408042791063523631035516224120436613885862811641168227466081464580403989298527047117154758822625236180581890923729473819927290299546147579093421698109794596046596254194296679324350236925909273188876894419775949269252520236542429289210220749996799901214538333621733991779636304740834535482775802673968086452885148858543769838643934225693473765158166410242874832595814805875987105535662891329464077170540939765333808277887597356099704001566250061899304549694889265839354759276029310306552732272925413181772218495166220304534108349143255696527456918764842391768753094802066711822836989251391141431786682232208115030953035841005021600653775436174011981789569659311531822072845152603374109345192497227801527850327677040249022155239374006764947234820057264612763925232723586701396140388778051263735127479651048777628606527818089578155193545909421014875758639625036256228025251339182934371815893983074914334548155346872619318854450046066075940472698767119693181033317882736553464352218924019049791074081350443687265393760790353049240082968772546875114962804935371187365231149453240560427143761151497131631622006316375905208359574591546161851409761779964970245780301494887999331216439089233311858065703380303926320460349914147592395577644688918038068094305697454321860348708771736851601508686536438108769964840306196413669868568879488179833868192450432496312412111066280715498488606437945582950405180799758478439090133229190548909122503791417152848814101807267376519943778958692200030956076077495970891372088704015274261436795601779365882826686315549464156624489206725490991103482858543992117399185883409093738333397528554708844379569703337989749300815296329418531427128968595904867710087860553501101787884703892174271927374711144098356906854184840846115614114616322040700090072886368321919908081726422680794078619384690777697576976067241878273741487705347330333952061260788660745367795815926001130905189888839042516940862464964592033000561103819512267812096988145319027287134060613356124333358470129877916657582587770215151859262000158485596332024657950119870890932947736249789277559835672224746352192741372807082390935308477444798987969855415246829110463120658548355439852039693178454700477912492735419919004050377008084752937558974430439387988195574386097618194151981410341969819931539869979024315330452878751882508939119633005478279455790023874938788734394858818440045118615193293043291303733764476329356918901938590233152530181025662225776359088609367906454159044062602517280531499060142199334862947348955665197605450940997919375399510204618851806522716680264573759579863891093680979843932390036722377116589964836241971970166294792681739471234157378489519195545865007423640766648988502132283149165582890975348180862256111290058321247705318450959093139705716014418800413609509987890580899660779595223198278077171297624093437716398106553323025019046242139605242638523796514961049429716962521272611138746041640484308642761315957466264063129721093382889187787220344688841276153490351351114091038363334804757400731603610026551252574728972482777543803044623442708421250301088397436493676551759789073368751008932935267050938104187894424584943269260309816558679621619801826946034669476298794668835315231046149762845886037143224370308170544672592192860473320150761327225519888199371704651120690459421094001669094490703561500102323268720822070408243298921796870147104506790249785816936260000311650595819244469163664274661155803718327196793876901459726663946519468840998205263341002730531376116344437759817381036083795723053010897793553939269318541663336991338491762002832273401203923119561360706737486739296231866530133642837212819786739502117218639060982263977389356865964685219558601940810905725347028377421557208622360656646787602933699485409544858644721997620991341484952998551003688323258658083893399190168406620370452266213514773895886979640689263324943555526357247993645307734298087416841978150519739773478917832328108383295780860513345782028629589098576022054960116619832275139929765935777885369107051252417464784425517025383666119397982632023188729791791087191815568476697201580202622154407772953843700939124809732549542766699491808975767364823006280300525064799064492675568352610571791353770530686748458782273857100624077541181143331330904667051692947860643763264512211302387959092625436317785160117348065252552872207366053981393286686083963322665746699851737614403052318596911000672219831085132147304619337518355302609766811989469218383553257867731402638394463743894178115119769735124436911963241191055488867835451783814467773834317649953972822343879627413691811121653400390407289016702507604680722894255209085092605263418565072697407381242511152342185017022713793452438124629855811060956836501712342743005417832064261704493447138848127579663814534904662762116182728870654555991122483541103053390698281613201373747948411772933977157391539512066677693654365662582095826954270970987322187022699003735465657489787296543377488123785867053678504134777468803550305320923374931815274006066229823909284701667186403273549639643366561216555212231598130913311904698364882174505183464962654125988891270488252312034073336191525018649070767876728399401850273636570851196874940611368091323098625833032071810549337250320350324528618585503704908749127567182947023394163146312601098945817673976271291534908887968029210496924123646275100651547905552148423679595526010766411947494148133694287799017206378663940594311402132945798091874622217216729481177127523379072793549735578195696556205170424463347895375188101059619569688483724582881834406078293772009952889034526269028022890522493053314851628711151729008209897718552713133717283705590176579035164546477158094225748038889825704150928402571725318293653994904395566800443652790707094576291553909040152910451886742153171640788766451301962077496910629319428891769054735414798707247946771496139157291571791340159299486577788604356838674464166196193875285680855304541984272956363093179302679914992965257672292075187954300713415118888426482380403856241291046350963387749171464356997743181330220300247067306682204939421807574733046994885113380402246308623799987148370033133640398513768983773563274216356731090257075642131246632059588864368341911484277213774453260437631894053175256211253056380129039112038802349058365322301884449109061716527070000842112350129675111582387687864182464058210884591521422863856613467328490762331821617060264953593946541865985970140242339661538196062282247469045732118890338803226588419886894608432250979869666699906322298386506191256624711928037414677210521383716617056256200993216018284357844363196131978918079447915830812596923808488535844602201768004599655640809345618086205259162781503087551064302194501639440897635201431995895830107306462383857315180368737304152195317500658619095684810785084675460921946056414636299469705275694843262725879411396651396622726055362006008392817975538545440520156183172316969728151372834286689346050716198625466941892995711823940690141494876234703206085604205984216269491262550002877709629922423919895524016790299792622619838354334529328681951048733489435746237744748502274600755790714032167922967718773045520042912439447482721677872585133994204344975528045077012348477324112841887474907061976778837929485871526840932847356893297674720789207687845790516195394988309280614001793264797519031249280505721111592990225523977345913688802979362345685440866756143771220741731888284004081434364155169737664847221524209476119379834360708688019213780033780438526636154998780505222291790078811546792755226701655221224395389399277212759489888187378102142929725807731514332941632860190703785488025312672015254708859348071036114181897986143604299924679082068397792773330565936390239162203719209611078273992369905926739526354549959745627297277705704979167998105045433799277562354012061980886847515991723318544480651520521623212766239799449205718452954114736096169743438386494677490131920227569907975276988820532948072339281418856514984161976452506781313238467511405718524248861522355743152019083917676213492799491433517098233030215335788209221855477333824687773195004375919331632458730556425101222241517841840179026493980481567931350392838715706394902371126725706887412303369452753062636436330636772196763560044939593893590698197270992178477806905051836535835224459809348473595102155832608485153753795373450713188378292182871410196640040603893659611861621931472380752182956481472813508593833223012607614676997721157896428722233984400639121933191486766179633142482840221341917151378521525898060997215010606757043200065290076763525861393479241681671804442515418925298682542890055885657568406487173984710127428883757020423683848831991208857248908575873068705113110027542226322271755979954336693621871511312685371279040436028693377746124918617657983812103655131576295719284842192443375699636910389448356523242379423251002766568765019656697938039507327085573527154984374703001205009817591059248847965752151633457222568940708936921510464805890037295948545529414269214931083980971574916963159940554398795512521786492370272069017724039772774143487824624398365683871902900114679725909962484006064500025874345130044752873477800123030842839720604332052976414606335864522280369328378763680404763035569211003071852136841090110156329626273182643231069735424823145838947119068663657681499971940459910764560621758158500628554789367158863883634839394468402341717721057417821086407164206757603852128867516918218235637470173105875695739423374806682872824131969945740820400615194109960347032685497297515306248385002337392265532350624993568825658257286228268671409952306965882334886374955937353639038529651646907845448576895907235363188203691424492882267704021879920194411482211318056922779774609036435522822211032740855754281063840556256291780169219826105240098713961538737751096493608922877810976547273963230984297767831368498583639189101693816319563201890906168183041864294877645464406593658871880051671764906598265253816078634140878319240618037029565350930502749750105454805579073583248728846278412706853440117423124298053686310041504691013194549136595107688320521906801070586199783175988333906858283465662533842975859106793108970541476113150642625575456335520878461384877795595778314918652319981923646464390666275547534968042941381960447255920344230226081502990852091421674602979263764055309565328066706541189781670022477107412246005774130311380946658132231285751775681296058491980897260583709690035686718356495438568224716392023701402917196858738805661900035936900784569801545362593438438093158161509777916091452696584176338211908944698818733015210481277166956877011303309978411862326200466138966513803133980413016207448156905713676463521864492285540600471359869319992378168971903512528972548401579871984478161604400281327977958337257232245502790112374092111773450575671343212808505682919380154427694040983213915203833606683773353509192695104812434521824720709861078098155976515889780955390174679110702976431375324265707275822271720606604708289798333411458691695967340486921538011593137038819833346969809285209937566588965778048256806603493917886130181670592683231804448527871171625904463005576167557519838699920872577166258957633074892099185024428732586133692914910167159661600878057369075693559509936109873732137043621021416562583299758010376929825195254093373702033664163056815558825200760508654316255336294298166434885601514740577872758628415719866821479646436859861825907261038237605922699801118848368005621737283041690889359104598790580870078796207065870132567463406231106199861225017003789197382944032392686039290187450436042953085768311080971259450826796200737700535282871152375805895500317092556585634752037539503642854943964681987216492467262549033920547683085798792336242529703905143513686791670378324715068486157893386143592178690561953218189334477598393937037464802264873829602832518566415863456424864218792817479207708860832546265407506567164977468285930835812371553313980645148148353144357800219075201031355892518921091418695457008721927954200329293467851755928386604549811010911737969853407499822224445337287624374583140372885558424380558893321259819925192290456089579790216930444532529800224490486667007584497249201186316090843026366248475842759032101399938995473773874913271182510920353585055725204365576913084638566712028743977183089416063557640261069257463247079437065615664194171195649439046467912006664149235325616589240955917961019602340885053555149605456021199128278977731004144063769051162800971137917460311564682304263408691146539752955834424179148475791224575065228747292291290061559284261430611609696723405766627604824908941870182146316750165403694294427985571960671999502777048301734893657786989514241919598623738965599374880675906637033277167788266726176409240542395085726123179382473111059055851130643858711360339857744954785238921247721633183551084763427251782665746081179506215218432032177266068243284617145805860755633627121959149204165972661207761250263346460992501380755268862709412687604835614524787678108322018515770171498933710790963203045156086869829936630986621138101020119700217022076549255484367621521463066069498678878278668807838604199457817354795744992070067880313010022910679152186606611525202389494894778598372678164093826212426528565189720294412441591168091959264704650173785805773553120696576530573075251170759305129795325748495113395970291060604799482889261702077070550823743854313784062036576930258251439207680077778090029802556189442437600442402295238514767783767029533923259727449358966470042626187315319684156477834136789181916985133377066698337567145155768274105061538358045150845338429091475144295890948699042571683086176195034970903430853101514873025462442855818983837190998588224829966317701603875114906512413773290511381179797548578388347703601830282587208739624545631989372114684416793764648408936883099611254072088813419905308426337481649187873833147258255138481630991221533989077247192502118714308414144511982082238612080808211661485405434677804842463199981081507453329012327483546445285247694574816877689551289723791642846370504772303081292115714909833456629423107915133238097756833040760472380652805199754305600401015113316363772759477470326703734602660266377206068526883076426012212395799628340257861151667163729690094069210294397688079762992225352664020422431842464423526927657963936660715941409152584952817458494045643856952035993089385672619782236467490851452763921648146485564891781789752154092397899574080521597910349853357867310865902329659586844080673785328962633604223255723647139628282556813464804689771760405995314649589745515710741007313052975651893359225396486621093852832106972029054606191672828177542567271275585727693283442952926276892685701101797411547730388620482297058814199225839501153807241695672399075383447973866742500504568525023656940851771498009592481086020495447505572487062078894129608742308376444789493327567851584535893202360662530404032715235454238402624840382136854554604639752882984685247852459223599637126443867608077390865877169966432604961561387225519166528055314178215902503227599719885581897419102817470549841502063829825199894924663188403021299623917645853127125567367419360567758291845383835010947155692601248589700382575870048418740415479290123514953064600046614543883415880904440020698943496756181538005028005025873038743620480672093563363759089200717764697136164638183212797087021766857088693945566002011716623852407622568599171583875079544129574306861073159939336228715020339096267882322453581453065738394199795869663843689877217777453337224051196509452238499164516893300657635050215328208975923784625447287312722566704393474404706440672453485519974780194744709037161446773803736299858529241668900375296105767699063463387490458469915440180957286578666785182003824349321249493049429094568457499987059076845770000699479665133983089375741965551291218099280789481231347380506816819868681372465671447049747937396350578278015518052358404831275179389124155894279775358310463772773146178307166752623033057732336699530696349154629127660371295341674697141480373582908467125776267528204461849037853028352259048853984236543190957966607662126488400127012777013250233725805717975009885047268666673954676854796460050148276699265555858201062014769857162406679983751413569515300596214714354321322072908911662288232707640179260904558395415115813340813420978800552818917847432440165886994016398553619578844322647126929541073656210542647111170197267552828854670466022138932460212262988756479344906432030251745192294818365613226711201530114766601259919095047291779534668153747712464956875790994813920618301221852932526622699616169553570804061344953664232716253208992669702318115837024470101868331338088654460832458640547502144811823156619814589041339973494187092117453607670338984780578275506295066581972387228099829620669622105479685469675033168692071267829525867593032722051360013037368290923806074395129931433500176342594104418938885431673092083005025409508918649412153224033777825874697309180252285140055519655534179331032495683219092525651297470844736383109067494160102037188171587756182257828908429080456034381396051990484833669662004161527437490907001003735689834627991818679002756777557548914532075626793331934299865561085093751588343734842173930783690803228935668074555024184998865244604228412307472046441358957452003394809307090639321289557834066846721913572519994542895648394456482331517936899118757935082580985493640429129642643788501592481029808133734576690421049599109492745164700279234196292508374942873730120619832897684520117679848437376390263022362774340428466784658356702482581599949228604629727023269435136187247668559226207583784147891510001426738128519745125305234679765911781294773491337399093908230985160394234673274334139944757449471529027975468113723731665224813659441310581586666098942446685233822663979077529492045533510099706941235706417357339952998213426162776861343421173330976768921513964951653226691921162452108490930374886817605286847050306503481947519396931254760384730122072972803091897685340659809596233882406116758630738933292806998843332696315935020376254559439203656208546109975260113432256177925599649413621594137918758814588438596112174670812001553486503729657127124234805662279984306845005589248854411975564125572541263242898639734158956807543503845642364600911657278211255894412895562039234942985438314735181624836121340059350842000437424348074640269012433447925152778200375871499148751536757384904307950627794621657983311830908903893705373722777371642484669006082447755223830668627972860535319355463220112303814525308188473789235387379983929661029050046713560642787388270725473851843217809660980978739304293059535761211028954893103859357195929834873507308286891342147259191689061863474147500242656543251114089934303784028141561949879006427610505775007596802005179222528780486404828303609246190352029099999867528080632470539895226447791856362198268536875414249360387496130567202266695509100301313419232566959435225105212302142795023295371584357079886770889839089370766773212755376468040993781709830706490841044049626009703447745077367216295711142441823742079960753137730321111401964519999467731378658645201715961595188287302630505500773774700704331348513755045571199604945291204096145061839713935016702230816151295681133731241411887162016874376359013948389585758248171486813161232294658268934733172813396266062018651320813985366846888374394107349093475234308788659720617904612368834469029723528001739352629771845278637128761870417053102401862018770793185194965246302537162618391458288434547769531570318739304123587755981044958096976804878305795815261379956130486459501412008540566701428673061081104920984447289037470721443694203731714148506275331192005990022497439697617745078554006592347046095885935172713969675650324356324160295619665365689579429695761004014959924449813142557254972369860374547030609478698844000266490993217344950788958893561983706667840310624451755725689514302247414107700819728273857295834668758885174724573438249974645031237617104557136649928448932971839036681414894540155800093442547212665847927352021796100537450860426764838749814242922289603250885686749559454791903609918507639956438200503912592779275681071705012630093256587029509140560805715836849924330174949105970126323784290043505057334447845451079752222441998049020964701679691771056769277313423311696996588979691185398138775769868884028188604796613382367347383457744388411430914702306022061809329934037426509158571861381533836483667912495830416970140140632288893128965485120677625762766029681802993475385697871862132936026581148216283484751617273207794767282754123652160193708556338920935800968805843370601308312012028654775347048797621431297290600906576396964757102311664938092805221647127092431831354408711356042897888357843390576025320958323194662222437324395384410845843260472706138759077206455241345488416013345374156776296438051602225098800965068798791265093340202327258296935368531799872852032804350162634596885839521826371750059350986681503895545112709977679252102224163355867977284991838842466628182510854706190067871569518530180139180867779117617613116968914790136635710814013117961853652301432804694998199552284413632453840013090057266109341961438508579765641429406571434670228839425944751573576082016787811133697403666633779529108926450403989860405697768869761120123544809940148351151637660018709348945333227960975203567300021648819414740493179948067863062653894663007991231486081824138063124711882490889803597003373341587604499702918609955364050123289661417172708037728203621876392091447795927892178869506965241307460455974163895351573461867937047773852061537849966082172543910758560326247198561351026305793312339575264234300756664707057187780995311252100503464248387612846117029490967190623299683135052200507502004892340723056969639328990974736823557213396585912483619434254960191483354465027657325727040208610582340602377980551487263096759511535492497026102177867197648014884565611571513027570880348397335772135521021024609740774692163773185308316037674459018942963730717265634916313254316849557931447671835097059489340070342017910881013137011763717083924500803889033225561866155604562108429858728178845566267488595817873542514801887971419374014418571655406619442274234609334169139542389687227018360666172221684459634188369003271652471472640349128496546351468346898037036872740805463300013582495990636693264711923460508715195646769231324855048937378601613831644284433254569405395871082526468533602770194257233247300537842843397231831029101167956995957866207351678243136335652487483330474952233203074290443330331497032267506632895779419639577011047646999613617371261176685221328395529694446247562335620597836040330897033985672923671620994315972565389885534901714980307023692749931737806938911304660808719732599827763813511293161917558484520540733489101349068643029342249667124988273780013530287858666949584559577523426473618942141254331568669168247083785972507291001029821513065586653048995435657621973386380713898384703403370155785365666715374728787889327615856220676152027781486595562650408401710676446217940044714672846200257388396948675290004216057675863943301831585827400698396581658371824349469104531424477232132024372724486199354025968874860830130344141150140476321219118193793595084984575171507086999153449082891460438266446712833649508238659744221243427778223281772710386268017879034124394095562368758483473798225933305703531048117216613935728053905037794275460612163170049548768292038589160906163554616667553825969109101285366715626052427136342225678468135130965133277778136236483020771556031249557280656025704278363688755585721758273449738326418664329162334511470755601646137856375534884999928155372430019047004283803514206812945151228537697088607056688151238812863459775270513249932557883172041910178393134678211958451111177178521955404982089828168510839994229810410715092637134825945097370516904562294636766449038755662495102604369713827956759661798418759032985701626118462437390660629719543383228897153191110296036630067959994851322514041833160475928438894662916620911518395846030521409833608507200249621120053870079415709912236507431639586178927968551123951402604628338193160756452685908427568427879673425843265419704106585140820427093687858895881550266088529394049062837351211338001434000309440492946412467332402646423417033307403091776793468111701352221302530594658548607472667342840118412648706041176275511214263996321536871386439675291912984859104363797961657280929120326166760111634738788427980277291220246884588261411672698798014483184632373084372806023741114603703617458317192630988287858767328411003021349843562538245360371112733843730848781136043783102196082733658607858975425719183393441194065566681335313141732410238546892842623721279075716495400719762722920981892239350627098856926204554945589391892184678728423752536169414082879305246925337860148648258081833623237806690573678822947875831781370643370438220640286262832120379308497348722278756552056820787889284222260806438809699875461753882462570840914326168483708505219968339045984753833027376845512097456619485205320948193437811987216406704096790259646995293141171755981885779154357372532845587830861334802224385921350419617404009395729298414405088624298478662383648262487436643876675981979513110503185512565373360929713223525461184997129182854448651552741309263481330101993562298075230991795242894987509162773843281242456662482029961040816990511433989774704353727845722028407541127909879206002906293539109964969425684542345015249123154469739488432857443738527987505596379007631986678551497239315847778184115267637359268823658084247928019994557963797087377831093074267411962020041507272196491452958716919926066277060451198105766987972630867552065198714735423150633637634464476323227810499585434555130008500519666246684963620385018756047127374772005894635987291333593669593146364226809294082401244250062724368494367883945431473906242129856566255561233736865702780588881692955642490404190997629230222249687305945988352668799848733861206140411585302025884428385568404637940059194827121217921433941547662599073032259543479045295406498891312391839994890891157682812981255324221463055868188738264650640238577807348416376826713390300829924534339095548979191867826058820761924687204711690254785543234212105996706722787426949871909394187472573355629995417354577353640793797462982939183717991356233256517236407016389636472146053340634800900110089233930387182336398912892763885817551561265944945252645278300675375153762429902366549004487048798242049416303969541079806413811042810821916331139925237156392518163598001608020173560932073865629092391023885338402161053799237180991876182731013666446610974367115921694227186060424434565332548101358753913911558302095565554922728896362692160188969197514411231514581850003769711246376683294638432657036678133422715718293705911632781665457459127512340686771087256060407867899529825197559847565269562983011935955247080626923703461344288808044395865806759560696451512813477047239394332459683219332861495013127866687006017896853364163434322260739662014788255881007104953304908040885578053305536648783361117334056606431071162908144737897661645166976308056314860996952896555713482261152773732471783429006295535463169936802340950039069055849419179553266218590883323684401392880666608968211721681000823771925349412715539999209586130857069909152365618694831826555896089261456621347770205377577890017785304335310162166938871406196030838176771103023153991608058846031173169948806432705085506031147268572020764199413518209401885033047519206475376845028937585690642702172423200564679960566219004300120465402125748040256844441865878939449736019289872659730773351874330954911945173320618075092545920592683304665522952509104724366152706217992481626845571379399042357488500409328566900826542132323310303051462118727409095239140140509579378779141600926691545754985019316100777389775849090975435842194954101570336875543140641485488627983764686033124265225405444147014723595210980087500109509168072451741510975843286883759816686039035649816803856923389341210921999945472669595008119568483163327158615641212781197240121874089378810577910679110118492097182355248944988147696157310664039170560166842546734459110071021397345600220176467219350972324040696932853422690995609151214802636478260528348727572890770158237447554892354938209675522686298197970930034606121877640079706724629289404513900837922691309531645698650769848828822724915076304149646986349484991573525573820624519443751945942606161356930797977476458880655220364507766054187549314124946797029435421099090196794624431032606399978354585420537012573043264981450520818092227011024300806414909029422794625413711734117762755265073064465938154057929057069806140962747884247022525311574701914895295964750437167191998129066165705673713589483132191799765478508061358951604481829204186514173773655717218660650553760602473369561168212432864328485045308869927376120970472443620046411344388186811754372745935460851147537339719203763846575358999621537072261933989608377848100202948424435444811719696649784018397787104726683454068319189639295420825671084922180157583824440130512454735308373033157520893020172081462222323535937362104481274279252033082875452376132756588842013769115221528428908511005375264531617920095534210534526498162698776646625178414453629836621432142687760429596294503382288553242199952039485020472672816328438619124543873729794942483780212913470028489604573164988433923904245689925945290915058552189491003091045755860191204772679514041067035843015790253192156558170281385661396199731817590105672216448363476585807532372258847527723813016107155570152281295537235500677237704632565836768545995690004104881121178533250714198703497931752418234754952319322514330806974059693243282725628752131962754098699630150673643915033503341604008029107740155890103870936372336918553598273792045190353464053322093794189226935447186159837132028818181542347795786565944092553738840330022083275699075744678923078216057778545975068897056365628411033291320051527324595616832427458540397943729830976242180088186494592699415958481719795389667423765436797771339224208634804238559998324638213287268273458814909057123800623400639709114315367852131010512105866742768391665384272127953488555804053785962635492614172223311710881671701959784155883745892387940810619754019959133733691495621376506048917915703650636595382908655198309548806946056764999959615690676055988001191953730267282400451884148144423103096030512615244517855224404165871231365246086616006753596550871209375765996962276885589509354261655565342977342913319019741914906365009226747057166120459195452980832835548694104335371830737190485286368780537951730033565596551532899934519643730653662231272134146550268151350391515611938834407339438438314210504889706766481476907443623191099387619789689955710931129600181525148365232423676857838420553943178924702884520004758200899480549844783248018843475017599057062794318924348299788533030980013997045357164017829636894166841636605659114524803939380154657695806133063169804549575689778515659390533815550644477338101296411201039744401469553660446328173608693088550760162105155395964491221365916734896442132888059956706884099238552396348196186585505645236089271981024980453406362205027036605505258184925212776308006109618875830092396744952008173194586080614991950627362050239395928231402919693712695048283677510785380843849935106635875202399675910716137489622711476444553019627681769313232110659799524386040822170526910928481003792310259466622826097664122235820978706532968754524223606188299471931757744712345381452355408445012307349269097789896851956643684312941666381364008979093937490873122547469735976126294745960081617396409212499277822076754979143917936597354744456743529287692682461991766849482280754645102556519914698089849045044580709870152146895620988409482896262683089461575690555755854906023434635798921381651975103894766041714268325283617135852871798065311749751544296194649188879574442990540879300765726790196272173208244671412362490031349364932656737209108159748649661166904282704006965805687709196864751879935955498015210819430356642293917795347560541532649615146425364955884846706196158454140533236674383327960737384582731102080787066961976168772543380184871423705641522981770626641057224762506078507714463493575472926902827742905391980314108862767619370446762390987314315828187972584768568006625454562621328041834418838566254831602402986493086898626837479608143338314591353267687378615348137404450248002040788275137808986032201957756463842935128103142137890767416819063999159248245518198972569426593796567311217268932917070833538448918231369819994376699964778750225601398892158414970096484773501463960971666503801216278432681745773278628317250766322594550178497938615685486411842716050719890714468121166877845175778431548498202742728914491233331731959916586338547620617363244682272950769367246624518318624752596925551558959630234461775291872275036002805050315069203027526354606277112617229841713705143063568935704916983817290936037035200999901474358521750595666338822641871068880079316721195040333683028656715018300039404081022943763481232498088437188200799606870335527893951801496350648639908332222171869764614873468024320757586528975453614372337904126493479954296746108886675946705410678036049375163966538664732154268127231864191102244921152390861608043286497737815920943717960395942753847829463229079109092068653228949029560314092770203873547458454844123039608509615740739473991285263032661054742811171760507062309931315544046373323372578880706515404990401242196649359248120622404769843115852506599645108892546255584158347332474762796578519880265400432794473588247274910957365208018669737558956785103249667104738775301277020738642443893110422507294735386281652903015263705759444722048404480271611531083451502135735942093395058142483949817756114898477754376952779018619398077323709863145848411697916469422180868838700064768343324782471667771868363119676726075981999520664895873400211539129818019544565828814285861507933687147036348166762683460629758716988568526949677511407569566408296796534681192332245334904264415353995704391484162116483916447735274567968181721762276445104630464312204329053937077171330245649425656391480533877551002278808140840019928058384840054446432283388672647387839039139506361145621638976204590914997157183621552683627910238043522561159611823634437937306022243626839968644418935334025298546332588799526233667892382956802388276345469237232902771916520307612370386048584767566787377871487288834732850297995585881467862080305700307552828264967735319318378858490943036680434513843432829501628965121545580428593922953196635661188673841939414324050409324102053517255322411719391823366836820974308005787285908785631936248388607164353328175105778382438223396868218140859955237840712476139051898617940934916028717610006505002444345089267847030650129711120677400624800726452254254236698495758599752011452951777698430832196411470246472927219914402945800057529167006044359077900599419741221607927344629550103180811339586166068739201947430462550252028797542908807236693688490600354788084985615597223461477087690692670438800515249504258599214012754574155632123668345131317095697812509641701663940792164798238917319016185404760950554193881344542480010387792925809060540181692113860855322846658678522428483258939883975931706170405517888075252054704430930138920675678665604305328696298662489563406386442740247282577569127231330390213100899048776838001879298617745559508927965112235311528251597293761102678418321574794524209655132708962314611065059470012260153759224468254110442615668573793929590204919812512963974095208019717810923651581460185463754202504322748186870886485068669551563409244695712741948451668941276759883815364271502019591373885557963279113882964063472092421790651489759868641827715684452572500768129019292854026272586044332895490863046755515363623929092073329034405248776220795376302794552597647369276142557448946782671018756167324148285203411223075303729664252057592478300903851677142718008876261486773146964851364143818170210016549953837511675472254156663496482722197128705697925491926494549410938671840697247541668621626700313491093855214172362316080109898652982352341253281977692781009860449935179706163371276731207937955081056033438903883986048150135949800224363819680826798190924422267771006054735577983719193339348887137848669101813664988335499515039102601391773882124297002812532805763878869735569575503163585632612919173718043429083150579726621349219123815933998869952818109982820097585716442003305053657038662677226311125766657571319663890215634684202755409424329480395348733132558459350983436708834166717657620055203946172761231233000400752196531005997626217417632063900358260686662170058965019867455464193629388262061433879267495839927355642522002857163638205349321377306650055485133823592936362889502229261701522517762339110070464447330703790887028637867402896729687994372892055352227860357063576687950241312197119076974962409316496172600648399070235924589027176700685302431229043817772273361512300806754851967707412406249517452972027523624673464425374611412409359880681680053848601227623968725951268098705073354602741860621599503898685588209389552732744185737273391156112414678850957926407844440290223497935474321457187860005928306014168401369573941783790998001995753613809820910419794701250551357297299942164601676436725427630095220418273436292263639506304406427120898536001827468093065295561682153600538585345924537770012590375458589669905757138879713457980284070319977713745950905460514795665614132436084234651017438626000450424148546192944570711292579075792602824083267553317618379552925480848401039976625742434034470927592676785092078876356248651903968007183332851460612129713687950276470435596749880816933398758330385732240602924313463693128853537088072551141765523291646845994329895389271160013365203096433388175943525685409057577589818410644089328372787858340531710853481488631649411468112043761082524914359845758937577836843038670653072780188451191797272902512470063572837734973654059324607751637641113815249522753467474651571727585876113001346272008736481223840768072389766891717229248183625142939767724898414483657373009896519464551683897740084530917108373481176731810625400629774625444737294565503453225426004945666678626505674480756310973160253969083371889865280855230765833872881901678877935083574222049597003790723567063211636668715993439305548251880879368293378372279009868981694405915208438436055833193818564554442082595088850805509575719989595212007607495451455411152345131583207155471241108708180720471203974785791127912204623273185057148609257436744219485422514496553184229614861908346123851427929550404388364905161891469771139458655474383489840335069826264730795823162262218514697831380803425781817141165205739680354129505030717630793328530620584078674525237507385259635085537294486580937396849129386504096051239867883819173694006353131494122524295083943015981679887834319147279854471029358600832851103127236133450951647536503831498568905634417679041213082845142662491108455760680464699652559454197341673544803648910795742619366698749414787236150590807182384073020872264245349885520520927778031194173028582932770331279313750180290213701374425212097096375438069639509981199675823767480046253280340408165500374919229284022129892777597137525824038001615360878288687797792936025973180330628746191058361548307051674620005045637109245484463957419193444565178874184384385424551971883560249182226807861208457871307627930187958550845968585218241052533149191058402790857019803724885287216525290431386000751407656920863119991617810619425777863585728145320037107758797118763086363726993768175320482601861392520025826302909699645509056074116007864035448715668909705679009452773174978573603644575702861319778173866639716019145813630815215465892539126489350732460295929660453044495868434187612816240291947939263811751369727236559697453301447042783198086136657336774994675944466114870602747356091697721407092934067480220369106869537941644307800484185274848207794800939794097090452381040709439234150366794235226728781898251109840294629723275299530736538673443462688040837789947630695357068718548536607676174235814965274960073222759594278106789658623077462332569253055015241931072936133930198119734290711346183717489946216062778757640279890662365337551662917167480528574596768075847776464957125320829545230141026942402190790682639619897520833151984830330025161558777978636359481801395968598820491758478550039778251780011038705968792539438621100216974852387912358630670435613328146880377861268164201176224981929650093502064879476200688734835739973814467579280523976393209395211289553819738614255572053857194435927278592743028610888004065769863913190427275352634661332218673294604682047792882654094276862493062552489415443142460594918884028544805499622831886481022651079100736867327723930295390536947112233851602372272864100425399091026189932943522472326266397321138276868359063830285158662259051668204894518674085005025216084270934844690207358242553002661427126135521316240960007381072554759182366622603639644945618432454348692125861382167241580540043213914915529994613261830425749632817877781030230986378832113167628561952728644116979909884049287526020935587663298673971154849078323665136084951359194911714096648841766413614785637590712791806044041335657506164443468737347879146533576455563496961111076145400013109150940460495859938835431785914218397455381710423807992300577994607839363886479973510620199769731532040469842918739260334723266536171698836781748457792687989023729024752389292512428391446224228835109626192142418343376015759860834861640764984019511677043374042238823443700140087886383959760731369839190041961398734056571171809126326447826965418781867042917892944821805536669940813361667592589287845348862327886240005282544858574915374811934738255017646757909388132782132408287928484651241526976286364114047297026393472970793374838897047312020672337833124141281815532742969428262830772738839814509843493666047219336503452863477399866348852901257812389252867606048639726251055979764077908370098778637584004746538213180362442098827468005583201327698089961133623191538111110453366843888305785826446160403265982236851035765403322837417574751165264908103611130620993455518259385521407362737129955487741796209682217340928790106526131485548426267054922895497456259508030276594923986012812668224539127535308483713729032020962466186302673166599790705517878767199665641764146670297937033961575493790955392838769491314140317140574623872716354965253579643685146214250879439671096214939589895959583540645061641649176440852130079526384900150449180919399462388833123766953845759003608374592524794076351152712792051202040506582024552180986210387590212629349957233145101493434201537326533813643625882896125082223688323611648982903120095684230731337335640350699012573996275120962042338487222910021746480190348550675174409678449955295136534876368292830543932508950131502915841143830434851867232524340292218167463326461185079961121533527454942282317363044493873252633583878570417197527250611570854910949356133566242067717729939290804610566817653705547067665820559577196285504495572388400128932928133573198383145993302408788323409859862604561228644492125591399784436385068557510547421525101281114424786512425081326333547896203219476540870733381224402001232911517350980448186577504575855675336310436122345497745441789992201599428123429721225701261014682247468076552959029216988796044814620844841157354618476131595873661536962765115909418703641614281925080879648080532256005236350561781776908047873134496472037303322248414465338758170387933905831251274708803170548475782291854480913415366600127271250987507534322664950310353914478626793154606980945200554720805992912483407253502690251978695252601801711366394693944296523654801899507591471469813356253001361638271242317527360430927038066381445487240840778999200722822309318703594743080590559853389412289977878277248638005571116107407435332712107341771347219723490755148530292224676363185564101721750910311429044425355033183205380441706831610712958610941757535307329301392786082489899549314266441971776815940715353584778841121688230358236149146138275852178649180679280530559395903352449000265388340752185033165299926222304525762679302351474091136471192491280495190470055934292136452992206971286469180148982695470022369614088766559427795544966926141251109647932480742486654600083640680384714360835783137077191997176179368169277753992859997789426276715033012752380056347878263539661863407191232679131498973856012693452261900702319007131370003014832330658498269284109546377240489468225631344179421319475061354914801453756977056220985905525452715775683743988437856773855015944002303484597994704742619037188601814243504869057558171823535582466964845753782371543646878305698201322128943778896732813984844388431840824675893664677936182898400842680714948669559437257431967276749896099994011622219921845336251990379172851449492930402116811594811300451495377784934206937817437442207380973362942532145638077174737157175742911745707520119140055707871185347342292779757282825160649290151980885200304675257387725485685488259430638543157108108585133207551927088409576157611710424339551178161908240703833719971745946691780053708838066399997664180590725811117156814400470066005252962170130228823195030709823022838167673631134350412740907412898616989242750460495714714138993067990765002879930512310646265153936712456933129540939536993544966602825894750148206803344540602801180755034202845548466369529430120412998971090838152987102628289069181424230700596740237652261736400628158675047769743323161599195022059107520842110040286964367868325682154137594679133042361101537950914371812506803517290124797338674137676222920309927101395941450800911898400238757764614518368126089725441109405511879739786817747159691197373389938719029668691285223709483654012170305457699365716955605919051947868001392702642792051523738444461566963953527345881512031833963746786884158444411014132262331951266955488225067047840075211231081835432354383513881954824910233474955795842260598047676664057234754438479239645931159251183665228095523630947462797764032762172879575116829004959727033841057471857387491971092345956679725837066970652547567081907981321726737959646635267691390164917334680547781508955999770776644231266907033473540908969730012391429976724697555424841579350429403073764906806693180499750717219657816809203898667867417976764050316511639236408483095455087802669797218383331552968840795161221419012948158457545539086818880055710736433896627560104235083543398754738561595176979501262256216833607760089873495534637666950410096083537717187508343254531376317667878747198922014691574576651166409239160630722724351084382328170794218743683516247149147364928202799636744789468535496615684694005937249858720798493206444543741218222425864749455989066536443326168377837748912441736409820967523087975382040528922137506926817793104588133853242645566366261555150799529957076102630861854817297016653278696839406781308386951533225640552678141305657420822970355832584858665606080748084880034703430866085012348666866967248066817916551684657787752650121658163568449634412113099153169058859958766634637566692959479065965598532120986239274928243042306559688169957341529274525920771227980060015333692056049054100710787597807472654008312502021073609630445769536999846583698498292515230977222189095932447321559038044705321642134255083632029471896093337914571472904430922994436600044970729511932590577589543536243633754160033029212016744971982125990019203145628715185664481308127967684896388394854798081958841184384161030307240022494473793647450960605075069040307880537303591838482448061337116247015831183458459607830156187774688516209708810618847296536130024637507192775609697472865739256817704023777562322585787366335691701610035732187724423972953696852649269812986707769936458682326040281848853790874585534114778508997125147619300576306362773050698228262960288154893673974350031037090890396153611119471576842592927968895567307076826525168612353959713707358019619856448758572519726047881150453045503501441323169747239754737714619218192516539267844565658323919401047057699538751873547786235236648920013530501576220095639687332330142760738826050746881784115272514859130274948728728933585880356644338988135209833684765011500167539438107015715394336364998818454887899374883289958831577832594382372886674938874985495726853208060010991984875845019088475722891288831716020528216541032408302465240132608792608549007651885043658045769883147243735826612342472806712000587721465872448060462979134412392633116522093806053407625351285932980765756360254903382390039006761424672615668983403920384327540593361929954852499134625332922759816485162826360324397521888897756663478294651393891111577255968049030587159682408736082838941298042773251155561865460420609021461909986754459208085273411325477528955144080235769897691830541113980693969769861597165328300018353655994532252519405169702402900208788878085601179269924170943062557882674294094585141661472461518609685483206951699878143565807682888751088772802324057432512832092959765627859679156283048954259272103688229321323880424086534783336900808894422625803991653945822422063174763210660959663133932124406296995355644101602903715428016382361772901107357018962981997465183869390130317987000320716299705060526199793107004490250523871281726478276366093827562313851689212899584010239831257581015975545349825561217256781873258654674705292718428333465335809446164150742611792172879489433790076649242030743634698714711142760634906790761635328371306939940635765040803236375382207317577705424272663218398758717176723737919817892534555598258839073799797014359261241510481510292564194157367126101188779738976139343034712332688029669625972171905026154222640625290016038252386146211281159723573398048309607408387802872897984113968575267551036614192778060583329672980587997353067838692807416541860894968947674651108717190607547850471702214916633037067734043496808142665543444452608462869843001624905030757884934937151950989100233410217059088707921596288752051370705209604998128733861003294885896203402364501782616744746901352651529215522746252355909620846244599218110950784797540523912984566352384725734694391826244546352029150319000802968147200538318696351480072865053785162807558261751971255499856852833947907439750754349440294064618074931719312106970031053502070594444764529620982647060617175122516719270225737836519501127456499521839152904026847388067692854285005130419890520141803718026901319658063430661452246555196740279882333934447124672733558035620096112277796839954670934785819572201348445061875306859957608353475471440908718279144733564754917034648979469725925253574291928775782313993118184481039307298011877494088435980963157548453134063039827030959448540205029003047613025559225490456801740357896674484551765394757508583675712918814361322324551658852912664109651006218979559971923282041177865325110760603699461066474770922464113998606812906905807566034294632230859681540218822660935013908453480558072489083967793990541025238577687892721910958499906709490389022701830816128137586275401019068933431703853868425209557843545999520983823961117215846072513364508150174299375227580095921371386377667915720179925024652892924873089898922480124572977803368364237050597901629919138175414272085416567084881778368132637361917924266960405686206876780603542512038851903794514754362521142815434298861391296183053720376473601725101940637849538966013147420999546314812253449669703876128706265001478006262632575339566520062098255664253803944349937211236267628390384935916808713181591246822338304180444966854349093579195918341711220560497449457246317762052029460295365038797862842998376997510473631308026231426561766370023976324524836702400252685223248933738312210949631355457589922633827535733588373766574060651918369392034901027711907086428572135396572689369781289770238572688435662544261134891578935060058371359607885142342935557608099776558187009715851588815785453181272206912179161963011262634730064403680144373248127880525129150592459146607713063590935472599722281037841272113661521697177448907041493943258274705420246971593974230229764074353449835280745810822364697491008404291956374178913876408077936464847776432466212832615850169671628786779097766231157180505806473707286410402787038513391145875656720748523505140650301548080602040386468583306059836070146197805343768912584921706352721353628842726384942315810940873491427546355475438824440303404716290340665240560479855202928669273892645639330271540789173399800574192474235576934593272099994405671808365991663200199291398273785604096056148564759540909191833759318319180083331780653506890909854840015658571480833606126999775916028186619754739832478348371094143418648593681735585129031968664086795396376823488211686890040325014245413338419966805642270327770712708949747811661300834097187454975747421268764878353806977020524093613646652239334107972311696643879992280995895569733778861438986235774249320769392326307676864333392909738189250496316213360065372396127929009470217429874934030721871797531492647390990690477312112530352822303967491061229966497591129259780590548755000050809189283852055746139893005809333654230350680937714213154244152325137889816242413398179993332542840548640665376361892009420752481857832238040988540136170061614628186347519871040350553193963587599747832353205785847880725797877444948431898454286432450605040683566633642650375118274787300498421914622698140676606993572227629832731572561132663679571311566622278940710290202582668085170382668873924930897489022099641736588559839568863782176580830992449454688099583317663364852490926122211249553266003307163278858442970361771798174431595799847534614621471084281311197990929960934524507525217282120728924265033079208566316768359496508008186175599890409968041087295132940344869993787235360374893959881374035297679880721785909340499688457048136587379782528742013154840859812517292851085548307698381695371233360255836867872885592841346279039646964150020098643152889565734657248937894889474159251156133291400772785570524621915351263322928328350485681841355665537045574009687406393363059272825698533123154133390402072882966976870130417039188952415916994414898913137018733227784775878455350875767611485083986764363510861365035804435726429855544273011456257724908204574143672554439319526061900115098399011024955634575313379202717918531504608309203269686140916965617799993067745302150642703017322127110548116419374355477962013327911264939643270392174010262248835970581299223659452982331566894204865210826702926505372756298389129356557509243364548301016001390258512783305468065451922162023105654263191454871391401428191018141623223651169466440506857846409262900409307101002688145354416110237303426814862082420617616696666763643162011209925840093772097692843435572518376604240362274527574482774899426187420213759625695638058856550053068144773032866212156772171179321527261122317478127828244661017279451457519717301065332090748019033750405766472322538048750152084145405530492258010686837671321196534969651160812157759400560851723505692876544416112841854256594538730813192723607294324860522007281145684637640701240353916234417702838178763521585912931038928274942185619537874865993687682450011482317262969647766816085790648291244466573534239608812104670338938384979617186360741856393382922691959410163686015116750672724604596934224843842388774750527695532446467707268534592408352593387257279382297608753668578387949302990483476352108492444125868280133802581743307193638126586233558136372499498496660131859468387420473727191424990242875721861925453145416129510749229156799221717210334951437486860256218120122459912821984219804211477515338382096773071390057449485446683532479302123252866739917174577912569109313764433636478111928453920214371954010389294907731832130567812676529869625266544324624607822892291877056062937887381869680947732681023521167022074427873298700307651334845844411711081287460934466559989011148373927156985838309135439603761456056894169132025396667633560192195083767711239907784755061960878170567390774317017174068082656694662404850634039693117538755789894621459983928265343619377136900491941939160859594362494117626485100073607405395540219408001617289289977841661397649397756289852096071568979609740443081471565463083610585343402205832075223242055538018125620508895266389340453565578839993136454156900096573895118658004753008849122629024333382404021117751082035970064546577232889649518963219204635435888770537197382680860320405975734030469944558379561320944677124112396158496282647989826628229039904861899422384663206395527342275961105791964987225521136364537930205102599698542288659404580682296836697106285948341606783608169746989571644086052330130056319342247850359341107341349210420266326976128484577769466654310587084854659358425336148601845315276239608059053589138827732576208286760828017512759627428214683119976277681964445930960241950164345900619269652694895842456639207936881979565313010924191103906076274688713738326013060860131203703004552452863832957181181183123381017971047230578868363204125743251008503848368775776352935475311381698604386762644740930687446296594261568988546982635875411824538740866405544635581568250747917864312806049011624269148786913832690523441585331558541061167573079814027483553219863623373837295814607670738944026636798655264671126482223140006136196822066855999059538899515573431672039912550002310973349217316258426553477676453375592337720350791245095267987711778150719297825678145859665124461876759456823607477667901239847481742127665851657177057847623096887322748005857154219032376335406341564788222798771288197414010409475619527755575465080202827882108406968305222449482547296442931497431751821127545156333926209448125273024010977809194463490140621146779771534632537547945498953464867235417592976079069185067633752683621614244383631522244052963089074108393228318119060825565018458787317104932623299982854229109781839145211096908870857337640442256207700702929926819823193689886835368330345513871637604012979968764164468940208504867579984348206983682869303687198735135605237387277716039610592018608449722425301406227729838347573328668735703896002038306717592972705146769629171405578157429258891926627530628934242767759962245414432066951065643583245907251851838064686718932353794820634240826846531564706599596399758007968165312815143995894600762792343005537378567482788586763213022064405108315431863452005591858537245992323032293942780097901197411852276851317358901706354657039131962209673965359495160529995900222895164856266628750357107267800996169339413089090114012576242529327801244377434754471721826540598414708752513078013205093019407131937387778896302134472253920779288201247384106688082508291007651032110928500569590746883395377642840170980359171788933880572857436164897244746753870523686911999510335534568302277221454164627924472994455788310397468358103206694064553191120903436708552251172845108764577553321085393977903307238987913106984177245771823460458326214558548280860632292743425482767790121547843693121292782290702276294321773089354675984656824990161172211891534813111367121318511085505632006600592165182183037298310968917287372658474984466391412815580827390317117136856030678109929811318804018632768554028550619799423617808016320155498395295620135617152236345508973785573222093591547241963097707777166128998873449165693409204309334635511207542563747040955703529130110067030947502185759172213445858447008527700082343579797649513849162011006587746675135024991096955298410334685408681647870581318752502343946760023403920882045313738457764290835801625638880521128880070845615791205913039696236132413621622868180632468070151171445819329616092620659148992271955677275536923136521415379426969062741153791082272055788986679144733363689191584143737164928649428096056100714317630949804453894618362968757623538715964624983442894875681464733197803676898173921579162336163819569246570861385177475404082221207767843310814638801400185338770748327975998165917841191062648452572760279419937520999204493220086422227528786662407945480084949417693984078623869952623383797257585438405817471052387062819581534031750675327787249760116968092243825366060046433693763852834807663843854550750132887653602102334860293370755589303886404198402487717022271267235508441830389188519799076851782286038004901318798965950863624106946685353853692951559406400700474821793560863202407727924184441525811404995970905592087930878404492989243980631816550691293567036013202579625484854207784341275320276992021211898942443583555534448048430613377464801305738086875538181699881753914492028280154624705448510317958521916046063025796031650612009927276674749746150926486341599120415489494563115778429246515895921887835486639896344476375927114141103572114158883719629115484356510433423747368437949142318770269127523354489403993509777204965933735731639565554423796665714704379769783506824990623619332454366493690980410621670428645411346607863321910039954684402860518667737557539723098351389678038141003591482906103925554860047303823988514620387873799594722871237270753373101165220963864317472965833749922371459100958218545363473989483267275854892742119223542737051887747677189892079030565442707493940518957521912771027433014831450420194116381209855080541894025461797138172950052713831710885433942464267074496759661975215666064755788824489334341463987877284203713070557466055698777334672417373498495697333414617572000107877448195850849850280621030537515695102743010437980166719602864755733788321718635005599728482663124388464993940952132057457484506103390996110202773371825845288791935668632407168989601602262955139160184830200061415635335202425519200164336432002115324968299771050722341495314341119361685413020875637042234986908444746512646008334444259649995454297194658254293414450352797713613895341832236642011282349131406897176495313207663345601512549152594523794581544602207907425283388293364330164024600911181628673421943354772477446872185916230415003872217730738180062261622375910973262545561341924317443831067666032280602225010924304186025026926370713406588555545828941736204507419143849739398914840992632712537001187567976735693818028804822548975102212643547959173606903549416865271604380032478752840574574634179718734597094735998655144826321328398033067478686966518635691636133622562680352178574955327960824175835468480469342384352069766281977929875721169363693658439733063213038967179610198063068763701034728428379585009872529875737224674111686240476625308731804099180327260452035976543841702045177286432296124764602385439467585681088246418556208327335339264384978652952804189283451864243419618484423694897345706181032746638439727117310628608640678963983758565139411390873347273590558619664053347534886816326797889327723213771686047750666114211351911836715130121630176763612042833130449874380504992966198588060060894242750416771054166853972268254782554680492181931756980977966465788749263581471460601490838790488802727895825189651355087829194995025242199929616730324616738267449069709347192390859639951568439316862176320930155563997628864443501792662293957277333881813508136897648751566965840295575059465898798299549100199249802701421089161597476822661380270752748371394584224675750289568394657349637861276688044333646188721592354547776801701272254594836623863680845709542402973096525556211072157762926517155386149528549373970293369298808042792461990020161202160426675494372598334810051131951789937524376411572036432070138976123567751427850273035410547562468370890205957767538816009359698919044216301323086359660295063449284348563199608417506774144837984661566579925274133877612825207166257815167244587082289850969167639876664996218505967916031076375051163177029541520515760212941990038840256813350794071590264965991990319226539378679774196091251228653064641230937129389470972814461036855452623688292359521145923951226359936671815521286200385187825227961908549196665975465976934051145847944815336892100587077631888685031462934934542775199643071452492288956281269114452797462364085957455245973123918851559469894115964633261718772864814390156683288947320830916831436397608645420344135512317993931004998286937303146910080184888021001922180064972183408184112228730136428407640833444294257566470955473526036802091567039376491393417609529738825471541733839271213950107364086332394511489563965247686230948236286880205591408434649045050493330203933621989102193797080659079181170524403794646616661566783090724484154538331371962798270317834718823440070082795896514032440417913082312707137555785308112070053549773777252464770587660822113132450332695655960048251325280775929371132261658590035060202629942152440157695992940471892086912991836005759980162236134261753215308222190352613487495117805417658626309243619097092355403672432436532918494814768591013640595848441854161591498967600200007732049706660163099177022148729722313387563467737390878205183321231189383549731445259774369893045337700599897700776676555165139235502028537356007527484515330313696493623218101675498536389273786284394910935343886072082981741427062795900738801645632794101912483078483261713395378885189679316347606370789274900811990684429079879773184798476612686580754317601624828119876927444275695063352431848182557876361438665189041223049812032274309400963432725456510759234371061658070914263002551037060718223190250022158070549048702556473154945929073932847357287264809794621739865113031465593094077067398938062614425834027434992687937959266507030053146480443141228655127300703721559004383433367781482309535038506852185162089631774063458631934725140770422470046377302544399801146856682551688435485095877649909682839948506435253012636302542938935013225894543083014838340693264164887239770523031067439201284909333947257393438696552636322451873444355084903445986898062939250014126710844544178444043242357823348143035274636620259146824937399172573150516680054302867486349909876275575469300270139575847903744318542769732412294304710102424402445523458861627701086573623545396994116965799400861652470759184453318707533892365780679019952525920082493101987637237969311795996048265355121756220428763417056264445749644994264416278011554745491528482921459180812533531134880621933792933843482867185266963615411680329820134594795205674805790900210221874542956648062699389917856907929375854828073959470912225794136459206738306195317159737434520436479950694061256900067147378638742085408382341966803179847716562152450536612569220157518632644985821949363356103415654171944764356503716314763668198127260622323413608992788818612483895429747241588991319063256456703207072673525565987545791617291083240976904430870166233525682534647852820022355112889468354006335366462930623590399930384871007557422322942896732890679656563099980068260192659316882799282884650097391929220838708920392861982859121072758610320841642655198813426755485357299083073444284214700462034611629883103452385496372865934197822904540023822952792242475518156176787691150649032999828110647331292640271867003488346179653924537850170279342987879333392043721971769041680815165224250870312095689883791627683294286889961846863053703512957646234783498648338085478080789162840708750082705195020519574564937048071989169589790419102581753642281329671323737351633798802494830473015065946728389480972814908030446447204067716065701919483600251196322987617237784066096090504190412572668400217781325557148779968350538085908899564514794219212157658690282651137861179044472063675015333784371500766217466028393973844269629400343434419551987925825621091914045263432530617773214102595953773711527244556463521819016378853868919327799160615750864676014901377758715843309743339372902321284692938804260199416175008158285185659173190688326851930794446785563079053239199402062635128155532731115262274129602369598165801860063716130651870287041068528371710933598689791371019901251285997927736022328806613326079707926520270360694461380667393149055073729009242883661342643219055825049204187104606010969704963293560807582088573037707301439496640997269926708692158056695095276052368572602165851225884887963365978974340475705463961690943332943014559914568704868543383120023071082461086813545134904896952307250661934071739887582887350958062867944360811320572656044337924266534118929595032037156210120687355875936369302787942526624699394323310867500818278752810611596430769219879008835787012619577973267017989187467102871907833232123060124891885053945908531813112345934731869074456264107774818746549871373463292159294898039397663804116327380629958451767070951243809395819636115377267067669346284194079962904357903179117321602088054024444571931067894606669492675069944985249299889202935861300203707734579751549359583977279224607737163204119762985774316115798400137816810867667733166807422976037940160464076879644610420256811116957803555851931785142897359621031482691515369674546175523381898015111460870082250668763501383504244064692645359105287132465475426478425444439512892941895231441786397040800412376781645428647846507564882325230291927685381361768608943548124241451793551222998764298539371523713126205435968052495852019794627560354328756140567401859821047358111223431877853634439009689947336789627885998936596485904670742465615032930922126513585162596519075426155919019061380169272070934278969430271934155453627346665406834865291858907127840333861048241063662674949818891694639605538257160124867894745040231362240032060974042995388720901530339128866222147810696134636531935744111694206777484011020948872987908202529477875313720443434345662112291358131416969660279101284491190439843408129143301903497943470444561760738051056270908452665142205429787095665283685766645620845690929207342493600764661581876546690774588249860128041616034155988481220428423907781294875423366368569856985521254998178249165105541430547898067063843281617506461705694666832908413844997601251517121222838063146318158369471072821722284636347896836217486007825654769828709142364286017894019589210955917612993565970152919777361253039746500352129981279460366710890990077862070008117647115217493481095471624702746089282562915590013692954640610292787896702012868496320661194441957894702222031856813345364220188183987663716618489016501229470398807557273454315437632511617377311754407818869213404110919399416437637737020985721538971242379004765261707561446020322866955926228906982759008263791118951391065105358211934327394124905554276983462682293486576825138499006614773135780902315396720593508446068541198180672193714880353343075139091659164299569957912923173427948057347493638207891623691090656339713115267234203944218904630350967247735207820275652855160403060982802915752747667198438630601594635532281122885971367719372132816590402841891078225748900902521883577972347202900566392603705316751722029753917256232429626791630122720973632735311495823493939823428510571211279539933155933036932025751890557509100569282831230830491740185230212994527463876926366708927611176692135898999848531217508055575041641085954398478093116680110785225483208404722373223415170965634118666299399273222743450165643785063871900955795352802134339860366176652734849164789873881614943636236980510692397796978778202779680817309931323511935294450049636129063178109664443804001006810441307002033801376409878246820330416325645137883629612114690418060089378832553839110638327746210550918227977576151300634856346762124022055261374242698628249638423822954661115413028339800912541457527276270768873929975316819675827540315597623760512052656583184500665336195916936733417578543648120454565565634229501240884971019086084474167288312847174226198091756673669716163333578089986609789988550322079888662885858903072184884187794998696295066117557109438960321203759008536909650019598218191296556980031414366046303803681367472239878993326531098633406125833658857059558906795849068986243793467307536310271032578364848949402484186485828900125261540217756577697577465792968522879646246467593170471547392601357653444448387666481954242810367274620605724506546144378409957360725377263819423487995157954345499708192822607870905381990987252252215058981833477481429551009388804884878532951175472568956928607604463437853282781361880112119416775619288797820837278620528207722888992752988795495558288974418132260098361507004913549008918026359332004407856348024379297045528482686467790731112963298328641330777590518836478467682742435172882565179692521077879099136034433076227281097353319780341102454533148658215947391866747712622827020274481279924045743286960688076332441343857732524349840695742180307986271825183931896808774114474151695246764922643428352863628822663328241663162051297240178596064012423106091145567370711995744779211238255900948666237994929392330203129054333098589833093044567082540649043557458280911956466741808544654362823902592399813423970002161128568347956139169333029883380241327271421641009637833194969674260892808874259151094042174919061195580100600052173177512165398752084766754833989598356054686336838744052598333226020997254808914089696879742062502514751824664206343552810863436230219678837423072594343253081759945335976707429544302173428623041233501417282771967269403883860371859474692074300011188437196696917200185550072700377784191996958366420755768373521575258074827943361587897440761253049026677247015618984217221573256895197344926940724903946341653601271570857437596362944355978277816055583583261843489309091748763193322004743662924406233101434302477928819813938302807654110149314759117031799396565205460399286161861062756175556856738591723733110255928500787885243502708327908347143929287632107083830567663331665005875525136345074965148490559764959926914959649873548374287550100791341793657251406737285286195127222731298692414063908060069349294345540835698570151565042548352689283738000367278820525039006890649023441908432472469696187840487389796726578018917964433173630309375508759660177203848570683899123016074928420169878212273324586277285061139104794044215823822627483535123994589127017256526000905251195004526622802115272700254915170100629688340474061445173061817548236080561100184782178364333761474308399667523489401065127456239463275694546072892371120694223149368714667570361356468130052716839022668908751111574985882114094004419967806674249808375387043125894305039611822527958561917712001417839924720211917269409888383828658121364961420917243573413591501673126195043042748638229384334689559076811055274478402996322571608639068833715983529272491948166456608691071235977997659045723707536960978027017836075127547002712650881621680026310936961815625416312292108131673455619470328336085576625345244238238996557017515020211594173418753378933041663555061938241378509909806494639333300193553833833096714454476049133279142692778351375430579829315475297547811043130236671073817663397574615272576565852976639519923220724931141191482830061507512906316892917400605787601003531868070284066062061749403233291232468952602137867615424176098833217640176518604164480590707079294220938150227310684438304406262797563058785394411739091050558646091910262027583263684277549179579653916495759525997451525527405319642159069015489340242574999174877883169589036354689511230708531237514038360308750642480865013902368558060370974551487259010735695716602210336035158421428418547800990993942919594877462387225996611908147987628082348914439146488504084678688674786544331730165953618073665772952783751179227039361977143557217017261236224710025994344419741525341325759709896038148591797985364228476934668267490269323285966595333139695505866378861832209719199141735972100704308456036448602527410575017213517551869403819801753274235205066029095815567359972804038275072894930841899121893953576543787994299055433967779670135438382916852878791287199126528242983636554702691206403485715376374565805037552557231711957980730453892163966177551180348319180452054962337227874484167284709393585075130326197605268374491341239730470746089257336255117788700386654217838492922208561227631464965509233372085674801530612406665730518027853939009936859850433794757147951446414135043379392431680357405496664136820139297964440379100379522812188304760430401742536336108079385552130404347872020382356580241879124535034473990834578267842584644026369700025124996768294279605103143030947635058606412244492187367949030495336752216500476212240728139130285041514032951771991720719844550894151775207538888675925456010345346789838717443308054027179892167477861865028701538271295280866617804468304138272657449948774158251053593050501814108050534770746304267577276991265107016311321369623916584513772528938388218155600163950837272545534638864672428061060990099891370747787527419101564929962986374276383183941218264159288164987082615568342364136267024183716542366240857690823358319628043868961129995082064499933234283235993705131922517261384075187300662190461212136422826138823733987045269576465784099057384193874879883537533092477977792669511437788498068897639618866265438354385561077707863118173713717534753850573587430579624970684482747046531999835450256972476265384155982207908839466807042411456520123225968310045703184296118234313462468252666466522960112309345820472646401675078215296407126233260494679499081946793705677154756871102141835036029418822194336145014328784023626557573324986209904273008696800276883418581120645015077865432919370964706153188564917137131045094346695386608791393048521855401210996742000783871297117934883885075728540309846810910587382711210676156030891729679881679725159604073111222826527269580505173274209358323730212198279032760232543681571595077849164758561427555222582603323992521767423885053517050185379734866305493186509920052075514532963374776165750617505993437806841381361958052761525164473249867911701980311375719062048480376654803160411896981366655145846908499006470842448278298469630274290000451482823690877458946239971603754155120582176388644481835024595217791111253020923460357276735591988779381929382812175542463738805735246129501821685305357099121880581667338330268840663891245603274035522394498898574342115038752567551523561438750185138459827824557474063847016927334621122258366067056013901002443851834370576117999627302623010156697074824584066907350410785824808158545964776149350405050268993488317332141642063757932307237608861513192539456383560306100675614350223660441318879160782988173999056706467884304342400261640467047746393361069580014501438130102861109232932422954435719726937775323019851383455667819461320044743280861914816082218617024747800254303843242098169528118695311478049326463049684700624477426869570499492946155057773058042794594285003689695384827520091096385966638549928845957615810742735765472104097878389629584006775631596490803860897359380427545388812055619261451527981954536337162965048851739366908989146693735095247293417747140843346605015326847131021327453131059873263651264904398732378434566881517120891322700722330030135553577890446022440866324745802830471938622425861226008471438942154027437500542721113808557063386057163159640039363367527078049364992367759089113158253227022006167331947867215666495795539723285695190309198004350780337711064956032696150606110236552787083542516182959342678774163711008046545807017881043715157460529623378577571569724816903546281262878171970340736738608882448607050060081476709366036693942124923017647679993250465496783711616724631753614681598763985877131752975271461944718901890141271092185342381586960682052752272168678568812174005829889670856811381196797596469250243755211203761255043533333861560841200537448876153319957627746986524852507798993242373599013347356280618406658193635853914493326672769255226028578387980323177912561003650954025170470303940268145704700994049981178158200843162439504495475617277009052878166045167173153561102491765430372553571661124486498580199383064531661138851227350888668747725496293181289560364787575447218342716314861955188470443260614323823921258969949370159833220238330061019376382180212280446419486057290348869730946196167181709234643370860250648891081464403495330442105245002776397072729803260151728517138496819101750540696125535483074152715531617958672234884019802730234088651568605675817770814080710920700215699334511364961033673733605208606141863488195352338624177106247066921661989313504628227660929945542435720590006678804588181348020884176842220639153669321861248193746781624169837269311102211097566546685903676486241426460045224455981175982560139531783963934477601428046573101387819589572456094671476748101359522551416854982805961429602910773657687267706588665535439578700576373298074810245891357198299309252695956267840107235469491317096580252683234341562621120383184786524066084250952962026643795144848201328392393122238787538431631634667435763872899457423679229927842043551428351150792929409859949605008594786304368095149083605821552007058345916578358117010113943496229466348275551260099400818048841320792113789723211210165590616471834020867236935119315535444163902381909804542435688474198470587176517813284383486619306085080974826619721690686742789940401378912487532891111760713631499365191662929990628114232037021336088367353385873861891862011736655344861935484922848924130754552860573038432942803154578642863111073572514739240415648321128227177672292360271922905725153644586349959256686770017540790606306452206591389192378285292472469432497131325639211036293707370594299778474638528032478306660437842792856488074755417584784409504859614370512219473619338990070426872374208789888561835760286844291516090246188940319232449828027982716083123694146840196037880890496332114328344312447078820043017588006855079784267757516024378210889206227810478951576245028322113649577251000284825013227798742807649867842180911049578722106667866426851405614968371769804047305895679850678270044943120126840220838488003941409760141842697213161471617508432715328575955940886784195539250878443222221565127838730256885082873635718769067789163985638379898784140288122816389110043022056566073698431741322739848942043917677779605225494446260713468782454027762788601515086898712787303014925689702473430563310897397135186134518335947442156510108303185284476337493088058205047343879855854111853745000787997291915172412171989425677476354647207044328976722329746159029502647835675134779065585741851467309609394555761155974529008036214961354765171886124020282847668537619342412186274284185741495688156735238988124878560223434459197214575761839379697544927299567567487834207926438948720899500108831758867725562800600088399978625763802832666170006354622743721792383846639556717039381432895713696514905108004627165923751665259134748011920718425004054901401971077958731962558877397608011210378213204263423229180622301433648256045099011026081591310642227930303467582864056061504826273502844497678893468371673713084605239104672887809678673266557128115537169428299246599935507555263249890846129271616658894564611670237996406891520520805237280261629901473948825770325437952572253099159893406174954882130064024032772736867050796678254683053492934095144709758648398357852359293626363224184851178045839470925962801997220017054934766565750169500323143916210896710638095572593450022915355246297925154335244938343605260271953004880817721352345254037861984443970732742337097869869947112336669827903672485751275288264699208926449597048358515427394909968415087821428540894622147470651374909667041656522985199400657286522936952413891628801531486346331433963654013558676248491458972420063195151617428793123318349742207915003305556988921846866985828502543945559384121515779862770911605732966284873690231094092674664133904976920627161438644861366960716696372966756888334504002734413651331462722611400972467692501065290087471348846280625133914497336842395758631637038343836966200804848073970481502754856356664724793126087550078000437969934906143586508316193351917462576399969127529660013072633239311999087844450177466460392276584414999199930117753697014893338064750511042465645394970370241476136600970799913491605461187310844457244011944974571796318589529697366586825096850415338880195428027799425903141951912754392816649025539423859940772476008538121474023821800824691929720569349847356338041845147338571130349453180445781686502073434640319366536865622961293105386061821998736446722252852309012402421605661925945742634768238966075856748011268560397035389314909402968372192486137118922586035508640627196060339289036498183385540665923506815805781712234604647736746088655182864391442199437062617806029124153211090957858434206875898532987308702381354798037424266141198081485942746413487274593461166212011992264477938847614005179047515423641047190593783847350942033519823976287875850611050851210512893727553689432536878915789115732086323926343589021315785216815093178008034752650448369107916827865373931736393580800463891627486915951206018062657942456240902370201419184099305296342934133316750798231930600661974636711197314462245435242570688128879386693927785045447796436029560581503549856252729381258893219135733416404038662540507401969460057188489060061040257458608922363008564806335514374690650230367446305919074345701666062476232126160717732629413945162070871130388751949724011154926264855781440286800960974757145380006080003806206430262343912087057234812089223072383552888397682302756330922279623988949777428548136518405167275334678427935549368277473948015437895894598302434830318128230948988516474263387103576103154640164520391314095541143671569385911082269359096356292771563690888044487811229576567076697001144709471077730652947869415663715617818140309140258127375458885453381282138925939013321533048594718718800900615502180581856968662040836062285671548458587152595652938598138706172983387060646740168914450299264369610072501531650208769027892031140121519381930595333243829888301181940121788784678583206521199117163479881205774351088397107408779152503915684471262933579142795602288993291160391310178836275518380671518369490664846005442277641295627610702558557534926341600875901800946123734221473656088747026497311115136710203022525139160914884359203838774830927654532756571553153386484688100614154636343576661030511319280170772851379762211895957557318028792240186906270691674958281629787598577685165762757294566286419688569951978988277940083169239907488881505901157777875211361639916324699244406824218713736737267618950473302140794597896080228523112505338395076461204770930889146950707216726237725838339976311740603915064853958301904951868688556116910078173377232400595227098824571912070547424227088901603823652060073141828406405313387458154302986953897875361730726511339557112375408883142217672678242361686229926148779163311590853987864072034654060664645638656209207790960110831403341316143664350945044782089131902355975356446075964484524511936771900261965919223489062150899453773090125319088382444184400159537783691380509502960765818315203878126478719791554556272620004552027854662393087212074633129009975877230943013868874247586895101550189785263004331012505631731345798718922722957827524495772891833292221003167501212062649593706798247813830447999846912355253538385640600455471611553814371011965579201406607774933111868312346469056185261547752825592246661742019456964106996908893910667689949332855823602432141847106486581184790209531570509725018893659989213306927677704492819776030303047271888054107014955366270699271648509647630865415807707418542290519109773126607492362055798872326401144869300012617918740952784045176670102366899099955463953011807556810963658253460402524767730780077951334566577481585850221403113798765179072701201996561361791800513252893157253993667223236298075660252734064405819440228878254533122016063664731172222599533993460475625019885116879745852967591799760932291159088398439003643223098345578946509436843193286828380051800641243976340688798287044698646933995160446877261175801059476785300448231616335766990189050549977006433310642808845990585306119979749843294279930962625524435945037731102054910096870091086658668253829615865795626991721085173869571108842343218309105977909207422841254692720538855443814350614076628549626820509229817018612382181020805100448440916736377309993335173334787748329616983675353909108238869872434747510749040216357059754917100018810078534571377738047004154822769135272097282519864350739590600567249411283944765234856859781068810910408276067417504150298265164625048621111946798916436642317852213090594968669522030967966160661522558492511204204122557348857698334348495560943393907630627700624030697034706606826995582169690195986500570747941966786078102704631925287731248335717658670114776174200170657484652087811234113252278095542099955482609123905465123574916418063230802407997013736451492870624050668958529677365762786664753269687257476652099322101991022614910736056152694612493930422322476281466863337591308786910459078552183385030643511608543727337784620309830525787843608035282222046544412433189843688211368000779634376942365846544678452050484605674426840165863275732650024174686071335660955923221257393017324438149122581707713999694462051244553068956732642972961063923432779992070516779348130368708480066774223683806234062113115465002743276885866255597083116839649875330117873726813436667147423542083189383472663989007224736476705720440886615544687772073121480810388695974477968899629573975874581916741906328577388475818838215928076488110179049792906075017938610159151374906165840764955101624558564679631067060242590892857665240491782453010363000951788444224942206478356445655230201790835785918449195881207148947652863768723747502588433306197140471319173583342506790088178074384263064872560726635894388538540874440806816996366493384656887420301816686177941052847042681770673205358275745441046869076075318264544355038227493669704961756474418933496199762842772597868397499357343893211497393349721121230613056556118667782584997616633568291369518976977364883770449337347122235651975105614613031234168489772211155297519552792126470603754085847677105749412918651519406890819140982949334682726558320772545233938902795887409697692001462862187249057350653138845859121417214435696383623752332709885960421602453716942797456429959696895392947892169247835493780906542251104299915825071456331331141348382649893865001937571595363196722961672163823052360317059971197047167969894773970159982915941614083692281902779600742901780392583531785816388823578135754866057070164306418598509104983062380188802930013159179166233824874452526640844952490903625110606038356371089778953575728354146326493266875916142598111072556843766081371342813266552829560941653436013602093323754374710579064450319657214090867691759009139294337408601312641117591570431844170608173270085256615710539601972738617055916967701397261188045174500236442408242547242183962243225657018717021060595689737662009354619475935758551158943151117483469870596947099034759104148542856311294625051840344147777445584245180587311333359859862339723529351951411172657221829362225591653284585563012978866539237812261073984600130283922413265019714026813915398574862167251793650821723419268301380731211047949442625528482058785527730208210674861621564043781796741399061381238690633789429122716861134958491530899093105915908850868549547715796237542174719134051385542409380248339525544671827229280850668050500481816855296135373475870505588848754804263123628542922232038056362928579971190035078182407341207414610737390582223692875596851747351445478203781875824714617692672501680407897514136643338846051250713764970051310560114361898438246727586409335506271814615800019665542795219010729768108407403614252885099689173371470144983958920148308556144009259001054447683584674314365463719539289138030299989929803345290453484273190881626893316387544338300380023417939269922886038181589484659563506952659950775437202465925126315674518787348939718421136832116402947013044967719733173727321024540680310843299683051320906500652523547732605894694007382388649371448474559537478122093967132245539920494789875123846882199235117285799016028653340339359390898333299471696139609213129576687763135375779658647100990761255992339563441299838583776509371282594309219680504131798615497607188665966316525494967562649368658975859799340382494761178022565005853093945398753994375860919474730901692699844414797986730399284811246610643320548829881986228936184763369720951539275896415183552465979053435022284980249339536822040231354607805262453497659230640224380837522561686910491206578474852965937713215785428330938510285488536991295187408347319600778778133150987009125452602333698951612734032832450422387700836697177287905388865544900932775067439574318094371556427304247343356671544007694367756401972743784012240732336809249723627342826535014531170127884047948055938455414653512342178967432179755376293146130942853158979818458104776392540741019026637199450839821984109456772256450038230562053612476816383162712850880849912384938896188300825823009191759678073454777878629449846551665403266539818933254677641650981811708259692093475575407220279858857214820857137712754087644182882381853489183911218271669076729119292130419195704318809858146230068825986410712776250422067050019015013834381864427979721197666788245273836940626621304090309776543869923167633514320071233046831355394283958838522041018962239710525821393695402094401324410230260047824853150603898679830135125807542512567041576063138091871155545565928011270067068247876123961931592070926286935034165726371385574380641931069175918281712463363324956797207066520794381378351636599456719030396155973813361955944102276890202813555582445379999289043368497474920286673215475234580049488647733123091924004248020895453616129604655332103302031207263437744177584385697821219700391827031673384082007831720989744356607437030306786810462144701003539684137731547274282388164561880592499698306820653961909522394672217790911920830458782751746954824516883756855773961055126653246815492741500720675565819667309199684717144522447986482324846925589001294085173037708535052005090557822772091573669406541544328393537210306237874846265180703418218716502577750259957084778083441159662363299622669434797855227634187157400748196370800273200361575526400049434217187773987140138277920279520736020007137071980263435573461951612231300715665416756360559615480170427278550378744391774475542146819660420970028271408508451071628987438583310684864986167721745401894740702384274239913182476476690884413372225848309743249115184288069166529396734211361052428651540114878483133151880252740191286238680653662357162295733906321477283723503547199620440731452489534788702944190403083105715277532291756440541893577232823456267078539390199875561377319163540661751545241756254498669078633494237334578786413460368971635559362239703236722395740531696012544367677546334036809465299832375804634040308170584119701546814327689858804191124495234882565759084266195797594674840589941116788754014465347696962987276849658921569372816480630826971117896733273540336376197140691541412247744043660857274435030322211950940184106867272053998673093795507456618357237503923730446062714519613895833014588211460410216318875102483681532238667842848303858828238381642773336854622503571654177978260584262139027202935377122471553149362349838237913868538407529261275594386709903805602092975002596103300667985501052676682224773977000652370892330184308850137988149627661375755688892236080810331066343325724750751445488278808344256869846792790113917487035788604158975373858121864956789287624091298699879806099495668812055590825646737633072117386359346882956246218492770905028675666837217718252219376362776779663227493965142792132533280691475914943780192028356330377945277083928636665795625745615612982345489877609274242407788957788709369941360147744569642555824026132634133527501690567457891264900680753251037284355777957616481006878469809858100104845454964496859269214677677971724690626185580941365877998604496545952858695647944299331829528084648787483562489543044936933716131316549226548118391332318767059821515501761799175521101315852459658651053795866562335219825928320741981322023041919374312580649852754623206732731437243666717140912343358502465625804504920449766672897228172264384789661962163336906254725919168229204062017292740475631483522233832796832697217870425619375958641661442911046122087071737466304473983625574566773136320373131627902475813528251778887551238919531618429740374976006954628719806544694182896129270267501830212940844516897518666845574297036442122679482709880685502268739063475814837404501107767718602114676113239056501853100055948740437556154023127299412847810455043986029986117238950184805223705605229794896230814982199498752339407533793705724114293806213273251592618664498738164400590492658910147966310989937877776654086407668518286024559701941485004436698982373695429980531415497853679893837615110132355250469227093528183981351015262742685447880176463138613846608263279270420782202861792192636834959806694504190097436900167326745660936950415591216305212062569493540759220729754997118518284746832356415807250058536700703016017847526706740930312902531711980254937397582646546268063816165362114902987589168304583751258640581311429598013010508675320584056863775610632588674682420657459823792773511230560532747884689132429928938623781491368514260458292271502031751994372007875753958823671758057229550029931624825351584109212537359804978819885817035415985725348098289446106095252903062517520121896515189430266223361687227516753936028013566723185351635043502110911558324989821745401941209748467852582886902157698218952896795092505579609525542102666880452016883781497666089678687200405613144945606683208928062305759532507191500619216663363578550431351857864201644749944504583191885242476215839661274097689268667739490466617407214604892147710060554467960646355686664238932227996464921219769005467849259950198551540994378344107976534985776078364335213514683230099042220219998122911669306868127710994358559075584303226874279241997335363069224121004094403566338016601652648918332159497728320374478170304910087771915018590825374313848871440277680596809049093095386160865239062649985860569577842882248004625097450479150912838782674994533601396300241416432248528057704832285030366757575989878065226552466582576415299152157187022056533680933715415992049302446344744561660393108840806921125234609097075800342349189625340856569830065449803381160092950425939259495152325145591252780822275769457025719906057308224188348783848507150862307443995838904191369516986552649521302431712142786291595539477796960818694916117932154896868952274632120253489487087632125407017053211495142673373184646722060682427624595569142771893415248513156659600633266771536771727429537946375065193231306529838119270179657738906411120466261306138381203149686940916389832218115754974269367435141116423415578690084041235309660120690078179211250018329110342264324656107309482987858721167407102784588766922417499932036088526380772141184453259596409992338784803433849616938490172059717367358077313749854197152947705883500336735917717669237463075536135742143602331630599922501173417786603320411546867050428682496370529409097141192586125288333076403623879451707902807228866467583230923947995189815364836623782165926055528701064304932010397528559788026481615273286355135992040070863981575789384061010359285762221603764906662540504523579198927146384921604625308766174386050300429590368701106664387205209983376208639303442810855926541035908522422383183151932864231539562894281917312874769809354902078306155834864464651686869039384850661991672149931322647843527996922393745550137872592871141554765101315044182909910038237861663261704243386564669160183975902592214714191516312687570218729426531877326978075269910878914331229574917098676924672120123946272082183864635189994748211315707230302024021624061625503583377019616845944850620503453254745872683563035637805271280025009909283699717673106173566992470542297740633597075557777416619827401972574511651512587964956490610620700083380479129441276627608755263533678300354305230787708023348892870130933749911304310678457337874462525676980905264359474661973197689592109085893422178557583341400942794925120078947130179873082335272536333153858195251355831858183667716772410656995708463945214170237186001267489137801460976249364146108890194701273692826288095877238732178205994627632604419176941258712550022878452950539286237561721849879637657535437576796987829337333124210163651074974001870900046524791770875101113635878948396157058360099241971866020036560956112997032326085049265202192318883633576138039912643519661477238277095555234819927438686626939446401501714813493689045072596516913785755966622119230999873508926796741118357651486723277366401871366096408286894091341709406022678374881807227394976338474105981038772458552082871459993753349493408385202699299133556913978540454979265374077832925837688605627604440245647049291448107019900240485756964960078502386950975096592289308363769202718609551249281039817978638735986635703179909899955220864399555786930757595897441455297981012731635501802057779899047317043218186668187029528646917983658672747722433960528724031712780685956091874179223529907289544646903009633069395511199739034200386888498157304526625814644973597302771972900507290713680018795690424352119760819757432770013366664810907390808563128558430521035708975412733805664095978683178590158369877505597066386537987927033781224208636369737127363286203348290611326072230100052437911779827401228272336257621049003483615523368076234591530296938334765959289965358243157182161685421366175349712347516634527365069626932139683640975430679173402802507170877115365310214276930772207850725994390313175007780656964903105810733786524455265370055308674380411124487080168007942861089302300066900337567530600678233615962012520833910043843325677227485847568315708454270901499424420875105798660228500995298002912987121444177859018158596220929591062225991785998558498431494676738367752013257086323905359266011406233174131870414320377081860111314733026009221861773855663945914817693948712704342848057270783312029165144359945235724244065863117523558358466094202233936145113040289628267391528689955589969424010227563500174500660868818206534924533778638204439646140594889851108282701540207946692548056536279374407715103668208454091289656949080253548378869123464924571778708840991556016732785329430960091647811492742513753218810417761632471446925859045775016598043224410589632111394317071667352255809948980864881039704881512545498342132933531526923462578428009906964958143981019859849821965830464124793363242177061138663789994765734328023340184901702091147949194062716958025780250516331710376865524612556880017573766983405205276672489085920317832577815793025296551971155181210964215130980812134420644665412010904279358101209113853681963640443672051873559894659729089473677884727135306895340965765553933677799623510862612457559954832465962448302377731578130380647238113436960079464521564600489402326957972854696232212252186397780762421485099365836336032022306532872278230903881549878395553564011320364210358455648542629881563274876036407830731796357348007857252231916602771158419048480461582647953935029689512603151170939021938697389819715608510808352945103435772856981183850813192244104636208843582455195696495112463650780682031940985134345640385670451516614132105827929844782059099205439094251674559814006858052344435345458675847273358344312148354770218477803964993983244473783717224887227521678396628588787758018258264191898016864617346385053987753935041362683320321489217841988863477020874074509423415221409642756820322675233647046207959761955789144988001131280785403192824492416260696606401078567402258738501977226500081627773099115642078845544343900304673355348134500540183969254324164024765442220192870525556284857683233621169573905512937272366107989215180296001539435524203405110594502304940579026984254313707847196098926818677008438118707825717596687674052502841463204398647317470766233089095795470352892692334893826080001457125799057433338574145450627577536073490909349314656970487808696098308112261804018356292818959697068790011610486244104784542287611878164682348928860038690683303273058350597068594501690030805851120198911663287975169277542155888853946060845548161553742139673491363334525719085480209684156809961094846015670833886681164843505670821161941433653921140922336029211821642962801333500866502322014591503024423192490440921506468577875333224343920003236743253498232780183433661993416496003727094528751033002423202774308653883509977226294506007333098136187270035728842956187206334904916400709722068662230454732218237984886948195374565033820648557171731957071316996927977043946514678897034779686786791726477019659972140837495779461533939863889457372278977062236909888943383308923487109255938025079896006247703329627575054819940845543100766729875878514912869324424001914582864405353672441447110606887463209674776247684522517217353137051685933872211403117986434125537877268940362591714237426490467473826866851880181165064569655919606839645597598861796332925184513770923292915455928921872661328131383255095049119496697524757707485822871446597388892804990066086299840773587425741354322901292862387462478248037315730096728379659080826736456715768691945956044301863724293028292999431334056355680118344302555146040776756308718453732910337753446480286779493057095633163513730654803363034457149640417699095527851009343862381960665389063086679418585753646048773738047744839007005856984704173040095832850026129396581234838296899474260790907615081776572210966183752525894478440572919455081783064921689177818141386586043213320458556927371587104196634850968854012289115486461268599216801446800480401021937464579056933710999827546095407564489515692019420333552870905548471241904301333983210686014394693989295391446069254554781271077825996165694144554841395042674025622589527126285245426012074962811209880781530735640571389841974669299886421305102538394704094723113364941974155333048016979971566004147775150591286037034103192020940001152544712165423008168996547642081821698474725730777712632696654408185001078138620260494571953852029301982373765127491169653840363201348117697109039019218060228213271840039626456530550677706626938130972782853178047040311436985194415514732844017071368676327795020058058954481681852053604463526490392191152866223309591455498331675760912143837484722364198421801755187160457682075571483321327938085312781808692428824300767372296976571257474936703669407867883021547035156296866573916249253281917766962790218926258554367714073677940636404305050536323271500065842308635227820072014563930721567815428206519069128799758145012602836710457379872103108931479471130380945595992469466243110678140530764994777502311278152041930963474054457496337286336905850880590510699314057594706753362783100991304405930372526517885190278795607118968926518087884082695929681599768335926528964254361670576780998084513945331190411647054845972720358155937898193379418845111263376184828591609769433104027829514607719255442433489557164945330465945050227372369295166662266514450461807716950973063789867679673713916377019646682442262488680758486429216751628245925770284109366312903651738721563521466855710190649342326874121559698409669779676599036711904942127254650311453253696939140969874442753472608119181067015214416208966759070190467625896050661430496420472775864597375257654440597534676038647368602394952098637217822543211926840580190927031492709695545426799102089545035783127485343092582614164387044179727569640301205120977734775603079978015423947807086164720401352303856844962196205116068727085319739557581146188372674820261083071985346794104765197045098046163621229609723385091520627667593149788650495338890458087159945701820382784415720765545814047201626105279920754376331596960322021852341925028252587817071918649538377427058310911089188674836863395516804746468833730131473840380653862633771219747394138880267141180325280188452283134027439746624533154042765158679266497676194242547695561201149640799481519015536975870046625056912135027791176254812598168381743329479044848788474317522871176836674698396088512682119361791236273840193312617688149143017751043743001410366307884033685159561617431131914053265096220617262011735642484796634258134459068509103627269963963390764292726162226886556887700152835282192267509333070562427269529845314949330486752356930693338113039284662387741375152893450664877207159297249745683528602233776465848411296839940286971163324394921937515555180719536061811904760818298264755692511763389070785911909860444851777005141867703672272468007342474002019526861322322586503603085811639363455460410646249124296756603036156348195857925421014672731269189073547475771366594457410850263925677117382930506601306833326480496174072961133384267321762981385788894252120529933305731509034272588341678147107853603101734741102025881388452671047741175690840930541771163927723007191131974302754225033469674401410276938665195912316914207728611556965905258333760215437773008828111172447068922249976599338142461443053762500999989333811546992734823270912694777632477512866531706093815364434402388710137313825480253066370437700619476322586462115831169529747083176789781225451951787904267123640187141653730829239801995705564519097918969860078438092468742615735997958908257964815426233766528209550123833995994572505886679849702670361252682277398051485026489426724758158738334483350893822926566260551041448085078347243881139310476887664811596037382002297782094985386505572853398216042088279740785525824652910929152009609393280736877373174811729926796180520830352791172793107417924539938294542012561232496676759199057075084071319040379704070329189025045824768541226767632353341752006911526400136362537679755095200990744954865518356601656219513778002137403494970108706283188218105393221632968210320373020845324898567751019115767243892274679702445520404654027160512323617482566490845928668496891752157918705422719101892954077736222612323507706353765791050718348982233850692579798531087161243456727915495480713749313595389206730978737730114484031720759668943137679034697462315692965325984482663834708339706999959513429852033190197765734684357737808057035902300107264405033900041086158702103432445984430879067617447539124106105968274036447230686890682480123429750360457329006910313572651513701847584184048231473347202623820252232392463417674084845577601886658016902520784080565533787831879094735221764530234275947361945570476205205383078448783834287345979132320030400539851535210839483977476455767311463160406387223419930839505336738865702292579525621858721430564233224502581765622446270190586026280692283099220907080137148832101007714649958102962323272868485426120643224779525565044839448011701510904511412096793751470473041062446670562382845655364430219286483886112704999955751365168984414120084571970911002812637220009180709380935224798084225382363704361967704117086845347429042476182018725175362803554206673300390196558182168391671831872398104785757246056361864546843125451407161754167304028314746316584815704826284685227403478531614783094444221075958242336931908029623271633988597662887434793368947849443049226246060169471368831240316651020307035641739220768488513846236371129093047553581406328053171628538397371108229824433588846880430317581700621226599729597885204502421187320253738753505285023675426242444464889601615705672220603948107220453810841722749801393563163751888567230913739185709981202402957320783256605767201242147035284070794423943307166314393640443133966706455310646601603546018200008193660912919128341556709000142653755836853524356120591299208291596815603090802681706506940684477027433190207642480088433794614645991472606068242738572575548672110242419550339159067014400162089120758619511451225682875941514714139212963680917676881652080102762105431710368716489771745983850902736552380627873246075853486152155870723200959607455545054447350455236001036675880679541086031018258589213604443603593254622552146227030773353029335072353930961267775239494212171451115365048170046763714777654365805920687165959193728995817689668396160296682787315538560040614075629811606866596906116328770901201371834282712742995103676404692680916033692514832318070156279721341365051560681703440219734873840812586850625100554298969285460161267274716109625028938425937238782827793208551270535322819087445731939315564343393929143399929502784554856896533617154082237162678024033503075694204654338945362643602983352126535632791152197252111484328721343092887715688991686637848335437978291512340433144164461732794903013597609236372313280773670522458027127514297712417051331425310400045586229253046839759798858313116940662426031384727535427260409975172958799256304831369042163729572750855153292343130684346600162599146552759667968287639378348674926863599114256080642597798703160563694265337593245933358824847328055637727269111767285534780714106504633138448623136698669446562187900507941835872365971131283001687563462709712491813033931103313890394446180461121673486794288242442982295498876802869975346698361199983178739442218679071669703146129689957128252955144563231795144386242867525716092159143726207918716036258098212294560108501100411718049043930702202334571418133013871777070795049483768325318189605061339625023991921472484030166109362016062814916446872321300129357322218772824234178158224699766606861402147914179661268494202222614600340902167138029923116152908468010966196378024019808862354786441424162274487770435825614633461777874294983200598024483647437399878562937611523095188340593005315876201305419714819287248315895239898191160580291413178699269495669977494482458674337829694972573684395203174273482401077046749671370443848348460262948585485034125435905597438586847036283567765806826998497697620587012034669301226056718738225237093693565201639568597365952044818069952097418455541356483335786721494207506711905490494389631653409962847049723324575096240718436516311290634110885131301427644660112148081698158312969035261154863200297886506962130806394968443674388689883016157958000868306392053753278446407279881505952272162187212759718299560402468194960034852591657935015095692207665895556739415726526668226174466399439667888482548786941570842911571194609519875576008145736064072607171677460820030250194404394656984252526548805180604384118224259297214952303458238943565880905279907528617006181051003806520863294680956833088618306903228224653400207968858555702438029139255474750995839537511624612931456279853310494909991190056589302886860147201851133929550781441725503060203801621366098517206630718545182058168721297010906053243905309781266592854241495500808997359254368063390057596782346913609860358384680682397277037554291412621397011208566129717072146755114900925028186845766484916866636003395220193055469353796005854219278643585518705813524888471982050126574303788307702400083575485926197033673246782024446684502455813402846609299934855279407144186689536763860398874573058518758296289281802267450558762330153282039911470246394192162848039514790618455057011048869573822533598796927274700404117693631849976556485412980561959312952622575345898240833794452792957697586267309342568681294599659029056517101301651885223951644731171024064611052417919946748579894492570390217878698764167609541491610715928783489681417517464174929562935687877364953001389486296177495377663428695978255890055810593475401216662136679830774809335870860323351155704030078427166566393308000293913930712000696043247122285504000998722262251843483332077315667715058838368666703407571407460582437971274856966858729747278518402329816736712959964972755709685098535478782489667408418697426465582310877407126859260985708801905296727194934987794091889690435551506948284963143018773291750525170795441839395949995375149893491138280410725605317411350602777609307055667547177560183106193833570852402305195738448962559719395711383960505768658581195426547663484593961695117442769245911929253232063145601502351853210604377342690650019239052287760727085351112542863280392549546574410525160062212332976674073872279761945221130235037050369041921967223949279914776886979090841949650387536822932488515543786802404446672115722974005094776408275802347253776882713377486176905624913883979007705015174076019781073244903875650632633913265349716206367517612048622155315561451733660388543728072347492536799734909850304591162014635639744690208539863890708705899843733043357847286637797975921678534690317460516776794128847576150381822197555892830981848645553854342454685293704671702295272989259273315721438093978193820235252220381240061195687636520747176377052434017166026398201875677036997109615626293117361399878957860503916793957480689747151232240594823987961181061660935705862418681152576687841971479279491651974853751342257206914880011799076829681827441610449467116703585196348421719947776156256979695289003500213796483491325234267533089988151302896342131038577589788387918637381858361508971929882432819548702365097537169943351451526485729851674973731063928034325193168042059064555868228707449393180432250030267488195379188601145668355979062113479530353908431456470507205080536569447684308942275239862925700664942301881892639372056913364079072618362403559063010312796817330194122951026481204397494046315805492943978751850064347552209557624517968356755668607290204170172289616064860981807111023899762766526208427069083565252209665471512567192244463167587066653482933597259928685090194886521242769850452695320157185154891261185467361016026783424613432192378205465755224883620556262989996463434272689731255868660077093090684001774345360897600195293205091673711334223892344125268011828972641635495150559525231579270939375906945884794045704157345683776401307513301037844640366455854514558179772355533442795941817582114021851536009187331909767396971814993232613651513589591570375356947082272794904038836699041319324667024338470573076574922920295148372613322132180863628603052563732571064458470210297677608757166572473244615017076056218829113118242447915292166867137361613634084180616877091041026993176979931444716803420276150656033703663997183927384953653985976635295688658264621138388457278613622854360373030951298209534766273065463805364041909332312435464154599680921157687965459845134495681217893814405411490193013519745644966317758319997602905307353028429874136519680125395439800727143981833215561910847257580452342325403222857178506494385438588526085987523637264748157321787038491682802571911407935892339628193828897383154863772191720581049912577550011707499842298942905005881549903193398395078447841871011158173194218790126214653984300370899232825732917858455635537342909114743301608813733568725143252116869672744857532873337819006292554876928045871642816096495941578610380267153968412370293722150933153964258516913116147540669775489322993864376617805759926220617101854385893697384209289958925246234686830076845295788872241761231506871028134851370617741603784342060105668708991381249260774230106937453270974138251593010919928487257193097647497069622601297561540516292755506469648049235282669391934545508649446301522589339660010175163530508799050743528280085328288117868140132917407788400537576423854845661245930901182277603717870990251042672293835517277651548200569216158018080157807240529803123151151431108353287935425900576951771658768029746193928402910242365475149876939297256515529915346447620735658283106876203792971039164622507430072371947519970378363834377650704445610482628758894995078998867939689963926877326024965414653932342286608510302591431783911053824085280994881099561477559569019789935524037265803236960817010389683636262051048722080028472526862019304117219133181691038909922128502590242930846139075436503365296411498244737044965746974873810624866115210116140447519284115236134728211912390475266172641099378448262904436047775956318108788580459595102458053449783037008290066101940254375601766673595843941971444622826770322185178699582574211469776365167331915667029734183004925300111122636870889863864781425999881065896270479318724304319610456871322139677075578789935653482097395062395833887256873223011617952600922854307406131124999257085651816245482384827514294147977141182799197154187306745107204613350530877607927099116959119709870650735233534869293494178553524430522794199749654430861415709169188581031590303834095021996807484970574531981907704759299207819910630124838953035926962042440647024151361830952909439738410230142262969598359531837875490156747441487811499069016166028655175605014467732676809947292008072989131975540258427149310728718575725514070021294411829014757545727179887902127158359180572352069065467372157082140494746518463973046220585106845489273135852409902833226717673010860451264617796625970489757682593000579274512084617863494623176276908065881483689274668027056814271679505274282027188984758332242858022137196870035011558899681488562038614540613125150557940902563008528243458152142647527215287473266533710452841359425887877796925574417293792884619139751015049213934282193088433842893755021151154637445813630137253335176050018115510640258382923738915427501440944244799823930888021857553286381549594410263233423316309978485868400422658106663162742235874247744141323498225709721220696247592293488912881909530560242051627362494356332424874644244066070500899894531261159526532785960215963219906571529635855545911231932196930192624381225871840579608272737397204414976615956824640635656521760336407330425988700579343376770261122008067353361783239662244461013384786433485177649420883077787990539423267201492274550442459523109919936205495075652691242136791593399553925981686569090048289141679507334339796930595506688543943097023373400007975259345866085009971565402159296087779953670314945990171704197497596726558249175181333112496687968015890197267442781896081674891449908241823487517672599595283818846198523540610358280811028214678655332790672288792577708796780034320974668940145095180870602191391066698767020022381542706604143584212070508485304173555587180425608528728750108866543476952449847346049303132023691278806497583355894478309689615798489301152103892214413211369196074669462600339206700654873967350601853273680125574484907905145146355049015482333811867042042016353480542585798951873207749571656011532572565618512970011057519466805439296300914498730024946915772340990292011847113914364123525056222270073091676077986430853741850567338879206832996547219159346814169175631759285316380772241812426736876178087292003821362150028542705590460397069551851520340452041505048770518421208865519994296372402782137771057151269010757752543007130210223237668735314201908004688480545965131505674271598502144622007170898762576931330896687174575534613249216058840401078603063245111542186268668746103248669790377109094654741171432309896809653591927044506138987457902396312420348746692416747638384967991465284728356687341889691069623614807483951238744637693606764726751865453323497209817287143688665613874237951744369377144337610488068876414918447698021624052149381366108602232880334861465484851057807688488988423807362392884863984291497343777998264776272438845411948361829546843703004988066951394974240883310809623395039867503518581207881592335380645288798179812423575918553520645804954474127656711933517659944792792891542713787220608901460207573597472128061342793896643537332096681919421063958805478680747904439364417889887922433468747989574615233115853014032634347495442488414547701725365488958103288574610367816673347525965071666235257305137082918701895553044728252057014694052040855858208810557423941300847470233472432349622544732387519625156464744684750361016491824589498359624819141026611356871340425154557727870138572492472128858154920108702352858873275474674455934334355546507343150864684809692658825121332354825328973265740045964112880493173436784253928481146468885836824689125692891475031793825866424770165273403383143346304483182897874557552436275062734683330573276316456273121468052771897693967829761695558249374246141710270630865604316158188654415761131543630590215646070565848751770579212887609887739491445946523777790341718498289723470503383191562691900068103702001605823046328453757731683278901197551468374043941297882883471516382166540331326309181935389221086463890793338760802847411910731052561239230761925260289400162380321778850289352880394778902713342895888475628428981026683539102901692280670126680246996407530576373233151136768272581191649997924548140970403321087997143268749980034146749696018200229732313074449535145686729387637451832489205738090289937087860310008607149277140368214867475858190643321778018435546294834623433785878651557152093035209481518074730757352880679483881650509759246557738266948658458768276706911764907420629882902072935688330073107534472276638349228275168978164911441543172469688304667566559123702499174839479927829270162407679032646445853308733780777637820172270154051256782287202987447469837815412474917456832293225081633178649721140153967351191409759408144635569474912258661188108307671989898551442535992639287946604800745379980168467309037962370849725052699605033088677551172138205021566435002166930836505662807035008357664236541114920181980490814936923029147401787708625591476701661475182076964746742999202437820656419919076801588517539882137993693927699165817218274181205332367139242121111106134124250770005124613801054117944973764933282457934560364923481971660836994501495196491171025814699096679919665592646870019278301739203511587042031937283616841279319391300932366398467131189732870554071727783882333608154394476141902639966076010925534071227297652494769925161198910786064808694581003558852914889207233825791718484776207739375873286187423034314231499209623907590044566204645672600100477527941822509018195904560579163406637310881063075668143266464297023523435550890153869265076085191160188975225884874659259051249752685761576582967763333470660250182465296294877609959832252155036171326385241328431314859695587509455340548691169201910314600914651488748397482968970763588028675610715576146807655801805426905168608105633218730905517378988977214773381090564763098425115807866774749197082216144476841047322067256428112096061526816171207141533489796903999060484621604455550665294411899085561295472224762782574684590097336608759441389372712119695250779943730724330927850553319556658081553242748439518139081738021939468594338780983926197510124717338393927665421786258828479455250754436210422308458567863004552140630547241879260944327789184058733546410662411299787966510242380005996656796761035435549819058947395054288090859878508055264487901915700690350620294664380769602006981746231567106474011697401532363869229302277020018247241654330397072721235134912725718165336874227327688890977170056765158531837727886081698060948292240700170858854272115546152074800027380426023806310875533659088048797308503917517011277561960091705509775808411413794782302029092441783466030214085397716187327405829649129828690007925723019407802550239663107074577394993700020697214576931905557230999807356496071310943463405364143577895263066206565370161179721107758241369344338233484261675335559330911323747481300865928253891047504952957717864047814316017018316385089847307019785297605995480691732125203726430086541788716143880494304383434837462818547476670268044434527665846900690314573631644722516068679358601490987596622964646455893145834921772926441806649078478999243803578268326563392239300098736079366902660259502434510239249676476707600775012088128325544441207840633020622655363750919806197149377347355895486570813471965320733782913959051369311507059664796137248797169089864225799459516972011983185016672058759584705959489883389817315297907265856472923877986489106473103748185068721305683971399990610520133521701775077885211319835285313782278507374345665166388652422084630902834773519311803423760230216748051607201091708461065214827330491409605425433104476833027539781074580776155622990669202436871171289893762634745370411156469107835646063964539799775834171903559280896314255505947965443714926592100758964983537380244510799241887713524742153244211145094543862693905185371452149276235988361114749042843119461043426211062007228502367806505352616856901728300904895884438665626711978450795083773170670256858134082217452904905661340660023912558401950794101370108568512205326863055819388478580788218624429633838523102088973740140617547210605678221162434708582128170301023435588109461642851385149879079918633279312470246216069163010319397167287979560150146476188344654642359445844017511705046707414133805192156532864447253338213671929447624303060280360011767945458590012551519538710680235162133201449382563509761437683329484672416103607287594421655974868528094517920348145901968857881103394486568998434126528895149692501739053545112374495395694091602468281018188483694113157339596631227815038213518339020719095761426242223951781256448338512027930932850274146322993424237990539798755119661305792203816299831562767197213328200926245298013513870074968106988716805230703366237461588391543489666532101658670712824114744837238671966845083668439097801033294369672832625127341090759432601050517367272285865894369575716149731062067752375928445986153523932930353228468961539140294397886364128309005863821488998627902770516579572295396908398682323828199223532045335180800121281157134409695952493187053550165157919319707808944245843412022319533069390117355103641019073981892058774516135109240847707610264923779955570619132401343941011305322039345960531148717718282960897596016951166029694220298650824203471359955300443636386933997276853495491333796993410624930495948585847129196199290147696583302513431750965591371973774619455007604764685075418785338168998848889585120278186336847811204363966355675796595857861853484121607635354286846250404439761298553784693432311620225125948811921154438686623294899333504861019628757571417627178758471606460588498925040733748775266325692956554253301896238400395519702902923270530142081972257276924510122124855087834789642872591973579838285953046903979838466767043690264273446491065162226509063666265959545309159550458216724610844634637332478190053206305518172205215338177786208442699457587691939977947640729922580877215359499336981744041235919769328408577692306502122257065018075741456478913440483183977919930837582151412535141921828297810494757799067979694384942823640228908513104354192134655351544869553009353552135322428854082271414170195199215650134421769994797024414150532846383357074855823581930965657631513258205710541429503590172637827763495202045537155610011253969449470086917367331954030408372950903896019970215616076823438557149441633241023221682672527668054162916779991412435237482516390658381263100581809841837982227807697872767641299186653302702989019076252064253022994045741991026464498598335480164826729486556422125701114304428303155469774185005557172556850768252389545679696524292681206119282928509473662221902176670611122673842958555910438085525144502040190086557170737846909223243044979472977344852067777315616508770031692670738513565035268229013054858714467536648604827463026492691238923814119391054240418143606116990003831518469453342652214214526474726350331341949366428931903328984034525769652904062349190981729535250949424067124565179586400175954972488552528805071383835586796626696768098193053168526598887080345697063262730406739222627156389091760086132466274401098145805616336058005935802670271671339757896698860930280055169347886118992373974810121615779654991293365131584019077019035077744943480216271278156008453177539777804394107038576469143659125860559914963242619844571904717964021445138508523925566271315255221948960239720423642146490148708891401843589264826465129333834897147718364132234561766776483233336772889866164551017904089193519583335267549099824722466239342809832525539479009397465235858545770924154126575330717089376020574304598794059915972162383486946091025645372787335929454467311584164092130380267142770161546959566796134802694187307554242627926177347172679769547954544710872687581932238698445003388437976247832052157907934545768314244603868305508676182768731764269765045408920000782950063830079592782958122808045520973086900246700522742465357570825708886882885775620834690940457958537482849780106413423320206323390390228858868638401914087380105003278579952022090304694239602617107788029083774591460427895531171500262918346198239570426963338996094975032560657004024433827909060408902091902269222497521799496997992628484464510266765261895275818074397440781727281093339848159009330101249004589323286761886056073478746862487521611445563574407097454797300864992241537210448018556696519219870194077118882782174372139992315731886175654587058309097004439835678767293993808928204820192967583970954838548760783631452860426427039819599987603409310633028405340513829533346614859966158717840787208687786297427813009756718901263321404265560853841623441613528733106725123973599572188174577741295458019240970536054435384359967304012979380895661707216363711643436837196021245873686195043253115107211720032882598638302888773314464652624604531611939937881441418414717361082213598134577156742813174436460921489583584740568480301398547478991721873599764990419328679737669983036993152408210032173857687405444730755002437344990403941186423103162220610855105183820012069622865908275637487214724557186507013677316273691354436471937593186586406897069782604050553912508187740532293930210035536522762078873151048136773580080519436830258769671672904290320704887862139936670667721817538967308086001877166013500110546244579128392164969848710990878743660951532317212640199717117957004224554341294199741053055455081178201754063835651318246303131317169906298017745015715153539565531569784411778377534747146221256697460603816853518557834451059238192366415937945229333139467219006714587873679364913584306663620420930125298361695080496337629550028632382979790699094897526774487713578796540132284713888092972737479776089012643985328196506084003429462416934456199178625800975725426771454496296821180263361836681273003383361060004197516717748184016232348540158695458663937938662754792813420222134631312878354525613236340629530765429885640218752765837995178888983513931966606089262142473175059385628514398143446277555993322840159574434250100567752713519614267326538111632572491309511838797443182298315807251398279113931034435993172472863898670239572850296987373459797390587828742523251277417241011944397601358503218211179245772701565885293868810385627056099843322217601136243597846220733531693300212591301822193133788245126491609590574199532919554188687287494134726921024047482252079527247724073724902996559501822360222255476941830700373610363861894930316974577461115739116682882786330416187792413952421811453055469006718882063586047689546393732108393111816887284478507315161782663096706058086671366373492434141152622696962687986917300190652488605876979642866674686292634162883919406318831559442834281148659952000421215743117096379673405259803962262844316707423028037979861013646360685374596686828367328703290637938400328468981471266320018477439463278061993290380134326155129779088505374363674671635192837211605395704640392315619494198465243928284439202339181651005223381173302884715271001062834377556227425794266345023134902878487822731565731937795395456790555942046401610768095805552879962626001338025620288833899509729446552036107202408675233020198606731218547640440322084250964497990062662380188755612208329888501670182139359301157463753948002766266794538078739659773044607325674965661769261004609864960733834619841053090802081928357570320237575047223167065105387808504251018428544814793862139613805480696247627372010232171443586132844871122456225143988474137901589513001506295357755096892498841315708529888911067574025501117655994830409296554971354277673280593819072026777697480245062293100473114966147277101094996453580279425879042117725634590881685732647638890258050033653568649873034772531351440688551988720739560266389765893525951559794022965045768257278766656772134909079826309448588632688159535966388195200441924455140471098859831605979012540608688524157907594517273256494431880549349703138298149122066012838915341680409233438811334385422769095864524874175392044704959393186107131230137364862615550827931660813154648896164732739319288325890584714302747212402914836127782466252954929858290347419354345179111797384566350081916525618996073803510876720839405731507292107871452604602719837772163657654368076118955484806971749861435977285008407217957611840859062920920097205161817792334940009536652370248214488689321530025903454732888935538919085993995038713939962604030340941699246290485335655627794661177777449732192131956975073026350039527458084699061853137111572609215854629535405286355375120040874129836395232079235417171527549764928412857989006318927764151844344317507725364746340557604969001607930164464860355014706740991892546973609158068096138518364184597707021187241995895853066805310547323267673512974262012986866181392953467545993885373747206073779032995053411576555513417179653132080343299077804251105833745386597909482698342610549821874239077783889704569777822234980138226426122653499674511352155071302211976195170822315616371427416099393119615495339966622903769129349795366262783723573653792653091866560086701383396086306970711498734773180152810574665627093519937761088414752854505261692747745162577315460562224572073469391280449543907128610980847784532079578176504175103864281815639345457589416587789015887866445863947661462834500022294298062270844486910987005035113790618557554278967362075274853120134988682174645108779057868861464908224969666702540866795203289563386664286526264065125106232483471773769970268381078359003760226144241802389769719739475542661352795476851068317383829881197354043212154930151185802360166480832896167674887688659707398089365353396118529883538484565395608572231846152997716888789961013214014933801588304840379785960880836684333048800182498834942465730835912501212207038295321030881414780442549163001393660530910054520395477190394534774323802950617895228153247498678993519805965704425524734372568582093046128334468556285650093794254505168641993402033486305148310165746452615774797885074123172695324216484377818948915287489499500460340430386990963365495698134381849071510034950928927288544561371155477178593199403158598994060948190671569066510503186359737502377931236517940729906702447063419093386742123827736569408715278477012783194792566342139572056461269264457390686089349447169201713610142172540552676495894677349593836396974856519016123181063381879978529818129108720900885057170975389185016036313785847587556607272858326684592611934054605865312379215011629273644675046648754311077082924911835537386346928914932082176687749871875848523792113708800015651647739292194061579330556147733396041334811326900585227079096717726517550223592605052828842571918211448369446699646242352266819566207525225430358595263847689737265282333658904390706701204853588267351575873990728218488060226379274344888269680767295787792998572406216968918227570005391393802053709753943399455423611271716497574813004310470776866883456677980661616631114609035675662209610998003569071631874780842193290700030692713911765730303382697560466989834563609288021940716571373295439508333769472905643383164977432605911365313765341105108366269462855341127444719299905613570498493958610617338292210524773137112552866339517563020981860593050392451828934527781382480937744758006558912993461648070880757399944903233346901799457798808875228073001666021482687629006622231875979053963704308083526673104564730678532468752523679900975997957835564436594060481991261722354634351423957189218091119079719615565846200558745994640466464621491251185305544112760681238552901279407219144816830757587637265605468543527430068254419625392689421815191871460989749980097439048901721111580902630295460564610210499709407291784831330760647393345182136999751310566032258762561161633457951215191228523926117393443785650002202299385847710070145217862324797676923767079749893930874043801049027373362020739031137175106635591692655995460320050400995812755631070319215938396498492379069079996105454785498463293190553781065594405606639629364648494207214636265047161208115747867097227334980620206354110743316499723553668321328445267634919490371513624131926880051388980777170844149533102985853851575466986760419595125015184708675832253043254025412253612804443115596832061403321990463363706362873685270345053353619969530989983327879317037356258592718713096671338322999822028825068105622907071944265581670067579071695724387114300732782206447173821661088757698834723210858008774019369188222090961285988825306954875618965621555433922852605487701959674513883170715925782859866228308288335565128740140847756393404717034001237864953248538107918169345865157319632727329907114915238729698557608751141323635667764262265752324268019963787287266157887773010571772480316987785957181873138276149367542908901148264611032154958569200776262727432087695736922738480591776517410867811855122732628643936479255529990844631682949916366452823935035250652361009594636628975127205195243942047974746202273704518983671949722866716531828344734335353428649171426715947066273538505303780401394846697275918619813431795226097760896259038930502942879223165889856901398232702547748160174226817581747379116280191428935135907102940498438715081207067551171202509706856667209554084993416551703991097542054020432355548506649728450073699887317146622356045284846031413020315088537540523535456291044906366517133905345894517677927255377891909345837740434374322551154681614118290524504317767704515420873214776319434164994793093360049078707171371657437085314388254074241179794665304847321927010017804920571888105243417782767634126141225305062664893730737905767313465015547974263089456459695149506398783535495752885169370359378561008739021256191736241220805098619104448802134354669291657797878751028211599775265235745547348064300291703522128133461842691618024362607412208631602403653154268223450530082282567902111848811881220183742711574100431540088999438647906744998579333039011799474911954174963800724210558448564456022482553283731677954081283073214083549246258588648909830558142541628839838607853376862886284070022434946310147186133405941469194292844780832199986880646554197313001617428051495359027689811631816943373592435154057687773980050148966515716266600710435878753188002327016158664902663736347207079100545475501456315512937935073406942449814258488225606213388408771951064946604778467316905909889901738477535846141467115522132641139966236427652778182141904910632704649745452824184751793249750295178676163363916684724459093086003375484535884947489153839518097993407684428448305877989091449587428589942767426435341146113194755770039718987883527889065323671963128850048903147062878438122563597957977810786644798624035576480323307290911332875855446036659072505363089682688951635781743011284617983623504188566206648525199637815067424452526093846003936637891201961506086777302232234182045648305272740393865440184282004669347952230900205351735266379883138428230342531467739213628110689299380651666034652189479087001335390808422194980621769777065994841941909093655943397493671428502220435019026507447921403906023718039433734571062473969454868688786839447404941298012439405769094235141363935842970744450528043603375661395100287759131133731183747049538885772649908947646618338938243320775915828137343807125318048969494598352814607066638778313709510303901169565750198569379954795177044230906282929997762703452536270189802032424058802292904494454942155250798529645765271221597294908081234185257789252880862210728429949261585241797027612683670315470670408864221180773378798734879004269781841132167046634516972042505067265737739602085531259174433874370165047956701953566451208485478232970814030020404119796804045706211099073744495683940026753532948756106995846437186333778020383535922639272245101427764230140216859190251241618738601715155327089462005749075793723882661967043107904772819313054378850164399427707619846949535978432821032843215978235014675153220967088100155797391334776940897211856747168862504091151270829869358362685137666251319212244274028133769341291270278065908340568178333774545325003976822694048979976359177350564057498670192577020213043053178190517023534083964777579842611309761635990098297303449442259312287521770177778126067062921530163578928839059920227999031132395881768778009501802030383109377175445348662306711893165248306610151278751606055414375437533939381009889320023800068583850341975651300988700078225060736214841305677688250906016045411277884644482713601385233471208527094740426688610956827056286684615007372832154459197830652933175078346649064174932823188812582545175755867233896908485703764418238295208333522298018010477604828809465632164580860895051324506404505610841592654246651087978590027483484633326148898865294736188792519279663405949192529292555562405765684107810726956726124877096476304203698291261962599353829862198039321470539066364615988314561855197439302584405622712689583125041039691824194077367725038117954787585161502852886669095093224106831067327801683512479341169656473504854847229770619604233977244235442507281332107277489927388697586125650386837740926395485799324080138752158734510985556466086070383004115549407492424046593792288914049544491338987240058248655035076108147228110441333096212722767590974835803131494146997527163460639471403936277183309460445907124727747711169988963299583641883592019026159466705797666740082866640475363164177611134575535666528516163378674067810266547855941951850767920897633827335454461268753138770292230950544161255602385235370749536008029025116051133590452116584740418536159780096857510065916488038990449423785142466415278254713962806391910773052651203290583347552655638164445114512307197195433416508898951179996373355597960451061892601823491067070951887879830972311467553270782477976296202134404863236460785398627270663168540562797608080436596457471515680027784456944330632586524108408192173854218940752387057982484780137748787488909960313296504204428028579247205724918663632115607676150838415545810527825373331478272092650494390950007924970130998732763633903682729122067971300642537784040456138688188594104384604268048201009173698639618222042121290381534512744899391403822159060901029177731765812322112948221312203029750648691276134989678121272765856504022155790804801491170122060674131046788952821053275576545323920070824997627545608577475595306821715695011700809526897036373489307733415893613146522951215530231145328459481091652994690812910674719883310086358102945682381176341618463917900516148659524851282429881563073804540063944156355279546366952726514813700325577156099960997966805986744766799480312825363853576390153019244450287247420931437152429860403333345031064880487232213136702167161369296330998941715194318738322260959821862603081019357585992158835572689943220142313591315472765629810041030386718041839926049540283166126090795643069880302358940195002200836130794638327618804557564738355385913841795830790230495241474544715523124130507085150069706352982921981580622314739686712498654012179873624964755106892193008657403119796679798282105927530956181636539416231689650339902112442265728325188304178150842977368106776485178399034741383571298498757350600867213865666144182967561209503122315026534015730906328026244985558025384349989223225714107466182219568975461318856892449554314486226226653855993326208293274536026874218557898091980566786924144020634471192999395127142269302287409908101618251681442667230379857038926690632836169169441934180536855393293895104433828681297063284497843526228384416331971383359462457941904380786448085971414345128869895138799692952787796505000771668689133219413467000335924674787056707255223840661283758385359113571538018766387993743538036687050664485102500724936032054400092661564207621788009579206261360562199275204009501412935571208037711635605251322450609532981791956764404616971739302076321086391164056454212769301699846659765959514688341064923635243681544774219558882435714587991188407243949160745858995318890460192647324498956879730290316713615182933993285996987024104496139175942592140693170491814780649915485522034943495615186374072719391378343355861390227135664680381061659462094963225179793587475962007283239258047876929877591509686047085323534024461509290893364716323084458697648295031895754049166991171614884526159115273580697754076853022587714446507716648490191005995129014450785865936410800192615394580335371235220576307631755753613890037373062155206939460149325928816076422164481821015746964439432696633616124921960269888033301131730733651658137969198434554858262881989922125891948450162202444777455555168397382203054122664079794690484706352295600570513851552791859305696423751703926997163058357171529129323459942032826507534250369015745381414697593809074401746320840049503258945217217563986017953240769364061346442312766278043074489199862474376821008984557558821980504337818471486441894251454798606152856288119027560686310431275004048062562449909936362149001936104811842321734307886753210426567405097508776619433894452832651810894232321658833298203259019563074347937082952149575396497712291017088523054142156104362342238189568516631055078587509681552619099651958708219031092017668803824882339194773953824604773678558457140299318174255380004601898501392057108155688477525463327273243622755494705414987255119224736333265161506852751288749251783978640584350252409528340147140708305807096257724761363400337674428141089755560749751884414067699154306338910509483088751830892124048385980476892505266019147324723024451804926613772642650345672904321988808453786118007760549722215071344600526802574312120530641304929995812525819372951579445926347707701844957598087179216647594571408877246164899398425403376325124461301158313949221562632239116105162377530052229868860064686545919349269755143532229212847896973651726419751782698724982731448149957090464113702874850847383391302958722542694383647065935269179683251854121527937324493382269252530855270945478101842744695179787864888002669831852804015444096856547439574516779555481740315116312192586564643022711146280719408292840774448252910769412260151075877198235370811527356235625488600061836767936368240894797976170841238614993070391543880502918725427854480304729747925782401412717551991548649549284584518444125958942027522339979524223098378692793527391870810358221168636609066079987753877612627186328236754624102539786995151864884626616431235536390125870289164767170972450520849592065152176514728228289717721518857729241254226298284443190963561155626303735068410479265228478452903856012447345761728844382400085423847533597285008104064622854465133943872067735810965850991354374129614618977687031229690325050921121740340341286644911428007914170891367870622436303097415017460509743802193104077620615106670689508258281049925049402707410780676377633237654548577123392809306222708410802430898646391381580872095366347579907768648302336579159326649466908750367437209105574453719119747948659446347800953591686666996311386547681578465813903240225366604327741615013808196059027588790384036917521321507301565709320285072234303565524196689466083257875700208511557525976192995702039903629419777758500866851360312595535004008453775701869647843040444446686151931902973155014544569992949194772635544544474825259822991998087858363101274349708173534473119693159746558352037186593138834370494332315926733418661660948043218977957065541935881908066795143915653225885342631352002011260923584121865893255802344973654492710978478365792444319878921134242668707635068967938224784702696177110131054129871244687874509867522054918761497412372639530322639083158820172540781387101884362066963502401013555243066622681150767758416636233569997147366044873639667144134639675372025164355256675562529571430745658874430088792277845281265008334120992644775587562567615602973995499635253775973596600677698325375055509764262304072023758028793338805240538851746541583756495653236754537907035012753232955521177605850502771985806094076611703033117781289988155798368611368434351098549822006324633938277743289309040472043794528254132517541910759413838493585499679725365722504434018611179247208848174637930693980010088280423736432194496076005138972431030413417279338784303620644395631972007596735838808945999436316663049261427398993828068558691602983669514473589738123370392159870897976330398440559107304046097386853538605091326965039027539836955040976245610464521884245884769726878371635841821737117479364645286714158993819003034262671587957833950055349007139629656558431246154147772792497122747427936613558930106897220939414554543346996344637130514904832701145718912519043372384070650868501793569491645344423563547405050726040138294087710106656257205771256563255802001305347374916668239684027070594973590449017386881114088509503545818572574485788486641043086864990233126066402826053581571844108231327279900699587000077063408192320381628503894992669358890485046332085182600732874464637129006993084825749949452955073083893742146987139746627907569475420941049914443365036705410722846509694848700718863439791492795541116510619090684681795028914124107154161054675255060207446281157727348473160761904022030521129131329979794293982360388178969160207632956139808279272665389489348288046069963790955574296498007222063310120863691458723088100454832816332383389716563595891059712615813973017960276791400185390436276292748741323785059864999731939890458510335853795066756380363691310842781710142202130984018662151001043010827561592066985964091266369802522343027286144104328553967102672823207467475275046435772427318132632155207732349298625038259214144782283868798208118291251351987609376845301640630793525181276932746168178592137945961818749949413256326304211587353757566310439192297888588293004177834259676262248330942008501363902937202191262823642657730122107924868337834450733360871402794651491133510982303744172020409309384846660211944184098072428695074653400264274885678904686295607111717764077394092370966558431764300422533485890607162043170119151987008789000185266972651811181033404970467651190671591382273460476626706711660795356685699416922581102872210274491270139560820222655349485541903323910097060102840087321681072435551403809305508870700129454860818499631907115620128778192788212344047164861433700779434625504065714382378279837352105257751657371243842434419589176060615782853161301026723720309126935275506478917326913979198607400923316119347061082861483510639494980295522716524386307087622868854117234163178123061979880414131892974564434731679514925792557931261622708382795180942165536978364006287227865449641051991717463408879024844174135105492256047851836011217744912316987435725256110719705874649200215029913807916451253199783439420298321576260010504554014479471234334615745485955598927716915792353971338225325390469773688614245437585702260505247890045791565962332141213563148804218148489381527373135314509754403617495391538095520218586748666720467073285711297026883243220901396393336693182123380262865438881822417231434859946091816203504299701570989749724906735903912374358165479023811620566029829200825923886885754118520907943799054851724703211490862325714774042178530698185911790416583362605066581415000525642040965750422111958513979243529031224078832550807054463258244824086352961785705756104917484711746621052131590450878239114715833018840112193530011013382431149361289291298282226639118006921275602505100065480742887298080466780597736112099443258143365906330180494496444399774601264486562959180250655108292989681351304986504502862965369834360372538732656509390297676413845539162261178987791064130793102788228803823719687566217573050800108744153992091462981532183424976480243647397148459905594666663328605878724483107212617782267606122884877213083604485477433260669380502699819809801359186476670504889190784939845811098277746013719507461975596858295345597914704275053478934776129016909288969965497175931879770463478546040507940555303534060174492228116262964338267249362571991384024535791505532714451127929608488101705377881439273367232021871378964505667177181426601581419058678765369398826690017026760955771049002063472373483759740760589876028835513847861715809675101629074660967499743364146656505309592994614435316440226135559960637672204891268258358537599228787700590004865942846504563982108372371976763785723356755714452266517872990891833370495477619254956488265219356541762143605440255153779891584274216345934843583148822616119473997266789014530639892964814854823997241213957403960157308441987361201247130543304164099318174704166429135188756877338124011225477697315402083748807564260600681277454458896707401604104614952502069903511668709023971697625186847900019919319362990612352590246110515878292047115862324383191517646696702346919621302757175560680545447024008762938989730541753932444578317225811414539213093794462610038204644610831083286513048717931695731772709018493492531888858267271178164858759601625583642363047178382206601308890104528050433227177385063836926047313369357381205257107181076973020292856918498987276633184214918984153734673014136085008613164678369629524219431270038042750606780194501155533588532256621902228727762260100067109499986787839594869722370120705081783521938471924498354292144442255996123149014148820073170862332815866790016364881002256165665771829937133449440219722934836496187279053703790584272236403641531705135467902131664862502272556557330613263936815947026880479187765579134495240657028019897827389291629675178274314084910370306724902881480830090930041517183195007669793940983489830368340027431310344252434047768256515603056286120031198818019471900324084100747028580333133512368555006302453852065100957512308338852458379895066943546469636387665229796185053216250071346195393830732685246200713294158881471065578165970602787002131148127991046558275993664817930797880574300839153199212398539572595083059136941289734107468807615817034900658337759439201681640550491838940568498001548635488193770430721048900161970600091616503687049978308532348605333064204669984198009595214788363938077364737165367715051367522185886478085523845945450980940448672682859083723269030776844469797272465804771928012689270481933217986653166270525674300278521939746811154282112567699852846726567528180209423451879915038467204639902590397303001785633965840747843678898027223035721008243157802720796484283399564502879256082985107244300244575206808391233815618453189898810949658525873872096777043764756666942162673848563399433577354194399836234164041083041836066917853701312643278967263420018834344668405912634458611170780380719669212599638831483195740136260821419894184652035185968484459908453981858696216934206208473803122029406567555056986553755536182001792280514009286784556530972362152854980911377772096720250641314104677602003826068500125128036059924205177524112037127253119611054346236044914662118850962115187809884433739001180397977349884112097375618628277408296308119504622001363030195724985010915724922705440372797022952596769237760715824277010446760535559041511553639508383493439485407089636112991291472687181380823966112112663239270361721066150669323113554506577207506964442657880761757022899968498563411402967884190380222580022693205839655346631767942788483622793110497417428841175514586891814740231002913396434593263053667334168855377412194297755269333217543351296492182226813820594423301999567498340126398632945095048463719186944314457526047624312285002794724051504055702331513090183571387800076903040345823429419462107043749823297850918728639814755423399196326108070695515024065348762147007385445417232801931821061146933293621073001786741600162566882885918507814647549543309381193957635116401456658483424135608610421307161394788122795672871077814270063796929693946178147405659306471168763388404875245413848815353908944074087383248714331903703721083685499493344349989897322814366079147863124586184273208049110935337818078137033444988576581218861311543389073979025750099737440671593120340508457993280394416298764536999546843304618395087168864668816079820764129431794924081503282975348817805581533978873509006292612223677884575360821797227193112957167011924328686432285483233509316704131236385349391737198633112554285153594893722562866547910397470989195937436420512067658472515578799387288898959059050495553575363308904538201251308400026019522139303156763962450676662381810111666130298779066436911182030247298878000617444146428362352566665932667818738503758132352348651231261966891283170475681321893276769810723018111656743571548537317400461510085438593168499197105739160830025668541200837923922677235292026362976377703142703792799837692143460692531897787009896690813904989347924630816987930796481185737494858972470687342703493807101159313734656679938025813280483174605001812534112815734324450120044184366757832218199493855470482258575077475582791155586539256996910799253893739119131337314884181607741150640473467871130541841236181491734588719423198079565451043132650266252061800488659364078004723290582769456920592337683420381750427155036385268352370293171998094548050342529745068503872463019263899034488502258818447139419004522832470033292669632331274543777640944761675624518747625361899003954712874795509806234925836090808629024452773563892136255234919433506487089772409488645472468732369913865268520199590761939084875506869658563029973296524064344622601836634561415593709537705676035035956308464013291138796481118851462305170833172288377569254438296987872906726930611401119341831212477712679002188173480329896481020375769666341109641363571378536335242994400410563804114576200881332822610800612168596737604933411628697956797237571455862668007102859127183117972336814879055340664914843383311509243428890904997659502876232363598778124280295793550492471955960848660327608693979126081818297139726570045939978592088860779956838979720291466172281811625245821210785996664522802356182326039715184616666524392555762903589978932242903423356183959884704924614063330467121564582370304826006021113320294423251529125922437457391823558034804849863910866421600609398644112448155923706384965265895016058586608431182991622958492310821059927211478998530109495041565171904130179172436294386321544525523471777308832027892105840182158410906102305064667074399654438985129630791980192687710083634635669895700819305400538752477977429892629197539712953001641382435752087343632297480086479871775283459509548734226128175219103243215450823259475640253629193277784257981266528460782445955944652954208937484183348690999447096028728757176092105404439836547555965762169912177771361275841861822052412294460737238335661394778022464868079738892001080043052193091245341694323923676413009162506831399760434339160717749279139923055066306629993589076455287851016596726403749312678601465779083903444342459405691785043464812515359462361139075800246631283684675644098260345926339076930502404294533508740186793506943484400630025456163047689305196950836606754233621373504195545941132677449862392014089112501304935174573303674637442165768881205031190099651525066719767156236121833861725984363735289252405283687506061382577916134427365525892478472310110404068399780435116367766570930225619665484151887127471240508597329923951832787594830100415023327163323067979196112080657577393681049909370352347919239328050810422526289370947246584786744646696142020964664549544553602215064224506793750250817059105188305896574122187005256564975138833087842795719766184719383883201554278048089820559866123515621971492840479693223615267464449402556681806240777334312348086610439661085703364248849238129519335137276321728214686668383581733648158768825615627983645828374710742273451130684846938852763467078630615231135232553560494164578050933147092649303081352503524751109776491593427198074060117566578443038706596266045377392619285956443926933086250978864109820446321234321706465153246752699730958142805856430723727090919360802758727124962453618534464539289883124357061822105332949578741682095865795027538947527561973140320397321203188193382533541096797595976500249636028768998891958537146611691700326721051116997669698797015504086200178332054228768093503199895893663054754036545396978333932566553601532351701816327173456216933461556139977698785157466039903842505223121089876652528925045759348247791471473611838673052622313502952886281468301462557214286177693114588345070953160264705659717052726733826142851333780366819943300966491180781378118340385899142557083630369846675633476738211556257827230349281764030311463333772461632396002110118789180718732356842963848413315229237773421339931311837640775961524797775725613447212897493627048276200283907024780031000627542601111653930340783644812387643971902189945061990666070722556006394742875099904447772681230915898668867895244613868894782478887268280121568716831231573838018590754971157735336668536476005328805148581060282266752596113448060637019124098685821912439451655314782437802962402884943494446771000183391605771913166549182517063430913660594121959943051592190317174066465648986861395425263520650623740784908134896198209620028008404024823417885031744200631971560303648462748524512543627024277839588204660003203334994589856226558928544050734094800115848037237930648863104277340267923600883324036539367232467424392758056817786924922556561574256105177453477806059162260769850270067669268250415383063291166647029274196373481092259687902793896123321738507588259343688230794157484790886171614669093195236376346486233217425890546081672621407915252220325233145672312321155573651652333035892305622544390768920435001928971116941135137307092620800794498551802424171315593327143280145299239487246189051112439720212476174403949990534749257203800766835948075996259001054148931354217632413274274981075782175172596437239537255454984479099211273926606005765469330404071592392836556800041984402569397325353673890936056294432633020825981786376337566435347924094319786955360800762372735081136712600111574930746847706741821067823430531721455995080200288671118538626644357095061455844824778572399485497988566215246988638170119417191170153069216876677074853624186424211674033562267837910966998681321408055112742715258998858498985889097527180302140951444769486385703029183775402148772785780734518407503878324694701910546855135270871025908225850088746201397661203862176814728022640052763782162124903678652903368561296783495169546733026973901620943804861325701761479093467594959920349032563504193254499651325496835792038826888873429383596994689537089634019772631618617729215479616035731822423548039689770697960777534948085859567266660938481191990226410772976323430344654350149289926129779182078086408922330076274610811656793191441779935483153527882135191802020128838575256717613934555497952500479100450979933730367958264957456433833915145983641403491562721723816817135027471223757273862359307297430065265688280344547072872162048052228169792801711427602401828009516587646284535375301825123614389461250754311721340111881168150532458035780994115186407688970040106844891754038296568832109857303989403904607826557222121278040782679621182703933023299381573548730737213824747283914838163686385275054333696604070152925481333664412744438750251516863413919487993749796376857545099865159266084770212963252738301993198775959978913597511064885371244958394901071251119867362518259821943346138560394991477806653456357636221657335987523805697934972610685701704370809689746827322393562203459715106919793320772672061000274142934671161749205015154296920411003580362116412709850709410429913726383030668069603981268934905267382099363687458563693686897339444785466316996339634649033056700449699196371989913864718368544993816468831417399177393149278279357567723272746645120934473700525497082004093228533433518106108903390128830007703013699791434305752599519178462120207660858192399809246021660035725195044797178761345988989470768572133787693087384298888489303162546842094539365281144989335115102541101045754232952067181427636605775691933265694969041490858583047819018541591830372519099145952352513014608800298152442880120608792058709871227113823135819138163628181625455770989364795338569240028769668522348621842437118216967433746595255543829136461985846573482648389964431007707456113962597557171153539366765038826654269384121648543912451398753870191562039127107585656255893367884803711094196789141425360600703156295466979587760529092903584985567395960200892182113457903514148416500354545228835948668746328637006223648147699072474125585244290231117471908319969252681480907778711265760770265813747827582529281524658105810971793343408262527564904566961120066380126471257608471050080576738451501834130302337252119203888713264122777332403479134823502511104713646702365380545700339033412953859890203461114077308073385461542504731374826490248842772083653180630463312066320866328404147263533183535691205823725580847595636320312844060549035679339183313123288861018316355048617629930982126383158381361014123862841042813159094843429778465731390457908191745401703214492084045664764817901314136634899283523475508031777923930482692523757286432321920265592154667821167640357478397329794098860175114632160752402092132219095784808055396076736480129839025653554098232233294789384357557168507788983592878113877861822409013021529089020743388101627616704555573952035107124416115596193307279211182818898983486013426593480974133202468960630521776026947626224597003500444254815771032532290521727065782159044793676239437799557502583345811890070130966404780432120453130503188098135856691801893333972563049605550056111961783972604529493999847136717878378724442838851966736034855803871210668464452094615915843209987390755006464210699959228475225187333036702839686327208096928910428269702709974273713037903821233998716692541072428421051136909808216466125531352672899023710221240059496583736620308203997331336945181700981824814234167703121719021419308090143806247365577043373232213384870081245066475141570420068343120873389685434332143558351535306145234859653554359864740798647160152423369429641871219333877810758746180774390007170634040956809680573383537851387032526022632762668130449710600736648358969534864043480432794490323154608570545844857381193611307867355289503887495214833173611790838463052105918710651087707239207173963762967631254496193096695725318636557342971205364390170405724280129932860611536777363932732784660214227110620440684482868405798749274767384364927896276521877543696490383373708637899416468335668359829168747470808962948693317847790941860581429736096582256637970943380849694195662681637679246296163032849048507668711303236175251370180474128838554000325069647695919042928164636379844333550155291583462408047751666871219630670343474698039514939695808626513564510079397017738247219730995909367197836406037819467751832701260847755328741291588226827567829087996141296910305011991034038088853013910717678316240054204719624491648057723065900975332778334220756751254468094337047133619085109578406646873124670967939621350795746302952766905913304077959655782895073819749613055045661845894311627278520911897022147849383985682799578229076850400551976481390378299776337568038042622548009446659007537036025989163878688275984644377843046651696908597722296241873851059319861592002302332216971494456478744963000145376841622857760217049385915146578134504800993206419149641218944684481208975039312630634257795802538110763220765150144371971737743214573814373653498606636503487998695501607543688899560949130544520310673672833023806256887191383734637531128391083775475034984588774562092681415780689239765676956556381175069556781670833224796717040122536640870073437428325236987984681580404600103134026887226740069791412066882535140981327814313286601424841277981961801656901752918332160051113635508447908937277991819382046756388418451194346562169759543659115230367942823970363985284612342622176952875967464509473661814224170975929158147838383953063494203279360927879330868682804070536569112561920001629598350243427486710631818209371843808697235863347124338802081830917894907322216715251734873110050958247132333607995374577068386076876134603279235769123565812591870469620219895605092975629548272893337763081364527589799648160262191475137965026287868439649508021371587267958842216786301261156627448919444647128471854695084800946408556336670115455057460993346634919383970113624264694169686516099923678712801540042419416472926111282484508316062575710925184378103955510358954405020486443505362933729831456789969139306429190217662260627061603725291844659620452328692798987634332095938391633223896897120876395299865708012863015994187064787790441519927537326177235983919694259632307918720754433669231478613439325829371558193973130967112937112325940305642768988588363791457854781272136171198050691086035319696044628338832136200697011239570129371547449397773849007334445996747273194206205295270723639812974327594542291120607592621228954771908978577364425685476257814286908707124320946179153272834075004047918357323546639965641570560318616679860083555867751090731661286010195162796149704420110418226520239444045927750624433148728595967101959911577276416295322736633949437385966240737751972041146981130498448661154800752945055500670362154465576763373546891510317211946312014471112813470569264749865189849449175247404501350722465213194433120056025760793551464077124878429108806267532358364087835386658593922390290669691733199960595763069293701928595171766989195999487187282663811175595941393066705559166567534567391561971631249554571776514763822175386983745281953061996656640972105231219736513446363856552759981749772882890258713864258318061313917614866017616075853990501790361600222741506487022591345102359176435602192903435711996069734136720278341543663457839545373967498517818085175027318931809672077333226102358587850527749640457254524382059882512013295239455915897566249431262016532106571474256857093967972444555986872619637667473071654225666398409158238000706085650661974494417027732294707834867901343784203467818217585363069457943891513026803616227007798308886939771044817440618566668252728954359084233761805356958650633192580064531354767233492516885388387675259487182301883390433378213225520671407958246207602671298101973337599650006657616262075394459920601948794242388056794168349868585170620508567433130076143104964300203618529362872387031854372222848213057789196081570165412929538484963505610625897406562107539766514316274406776177712782375670467934633800329938472443806204586862690477654207631753483705373392934237803662630002023629104088239728429631062792944750571404878872190731343209145495205716446525324270543629694830471178857841278253404729450398185403388216882793271297283090225482428576344388098523152787033213238248114779597413709387763915130627478503045508284079096992421054291075683154785256323932927041973176254056936503428941169448094245696898177079758305954013387401683899138105553021061018342672073202595510417791399241643329087417041017881267517814070627389802059628656376343751524149811070958840641624417483287370698696107253057567364482142910923291015106284336942995301954784483350773366791686281058663402750855930640577520513357555017264119491787891308359164311645455755208287428090205239848815032940703373344266226916887286404278299385085160046153064180800239888279803406498183353181397985151710054592801122464274848294625811896787455001839733832811211785620372883663870656470482860440717201085855820719854061784488198486719385511746782665105974440926409284367327620746819759118184414276018430063448267908488690426495448995571092817455260167845530463560840364757646319741349247364436128112448205160075653758135501436354821102330120087367692242320492212534078607864649729541454752989237055459366074941222530827154636864879160260475565969291575771405454054702937701810984289330377336407375048369257213775639028237595756622245309857005020279705076081177690959249552518039649615766303325208093652485161572883417409746715726940989609618943918883131068086411374254909986997171294449725222576594661912060877796248582226414694251029819603392351565933436852854203686862186262455398732957995573961333884444750481144243520061565354253593170156980945347338936753108362281191630208328263105743930730564191241074764089396474167990016947357712345736925034919813341446369697303498898883542770292034352331430397467500994784923326076494994513568912144660408519466913099470809810949832532006952378127083926581337488555428753979283741733549163523752751029388734733574072130048840266822090294697265636683425383924907179244877045968509298993714252761774238062265668612543197211904175605438212950956786935048808546510637261080135925044495151921186601317723977615638725412952752310990371296646517453968307518588018130467596057995123945189787588326828502231781192204050513499161426332160633754727943046213219626804514884845374341424958263675565957681632446616324002767228688262253268923598274001932581537898963162029129596974221305224846696977308150156906537226650137060309721321247185435438556027009068610278577652307137437364988722604809069011389158275436538872717697710252421769058414447883111187134241670959059151782449387608199959052405389422794093908209691120572412732804368445385696495664189375634083623781255309399204789561975537075988272531924664979497824708179704532983840688785601958125875005870537857519733154760931184085305625933276463402129996730827243770274795986975993854510097019374440371596249744379949414525172935207764071077029370038394158709823402940979476203079212508150013940989249147812163679340258203589596556956376736821789372215090413072124849208809975926398968750004023890037113042539019677904789243997577945734516088480748559313990754673128765644676681580773359259020854279568974926266486147793609426947602228541363649275809148319560694035595968449335913718302142183241308759526509261128422584946738500178504074866357708201306272461298223645293146198914765360079027862841975316774757450787526740406346244107112642913384767655971701793556882582158963457947456275589749782527688511239456877913909291601853732267963009893423442035293220075725194153086807506561831321116278463578654632443744300211835648611114211991095916183341331052399186679261298702352314914304356172857719540085920697696508163523322841458535670669955152939561878482946265275384455087496316857661190986399165429192842539110489878465004603046146919294692221211186952986532415369321945707976276495705408226699239745446997426975154091826996620655728485191735685765678257038539986964788671773528125375185260433986354345484962074603426527385184787751224278513505784048609483891011251078559618531456931633866144654341474678504861912188956380173429320659779833265020500970584645862326850448345314626132957135613228738442306071501039436736734437797896847475699034769352985749624519942583115242630663520422770767172655442611590206261426433179251776070439350990603831338571840968050828227989612194449605504164645539377809030440971298027303635576706988333735062412665646662447064146578457544626484932742357190391361444921101271932411206098269262313871806476456273017089548044702963985548950312133616285677856589355085717673313926730907666602150404370315021415418979978915531772938961185483080100494174373447281613484093260557234107714357017399202383468806608181001364338359160592655815366818874505773839328825964176517640214131161459824685454879526115830688561065959455093942003113471085202001681369584486681622776790457769145102639761870520177074240554769611750488851173695153409147733495430622081038169365267842544458083042753887794643629016163133133216206917581219713416710983788961354556984154864396864593524551577719319436309134743019235573722242835902589377837084751297396533797602555763890192526924237292285355061679068810346387377189436263440826837794019644635683494293557030688955759164219915429803973719432819113685787066008431296164567392036267595986860041343730411197764400714677309195750142966143092222408846898086098176030019783719612884888189836377976781849149806911995124216245438057536313553361177392208571966176875872972042131185832707691109909261152887495404344789317644134676289547021545883298217438129413732576499625289554581448783280757963493738641276279245001108734869974374935368424077453009032611865876487281418787031692869757698398752143825441490231781555483205436228153531730926143063161460148702845660723156466661100285136890257666946678793856762042336258786749035879091695747528455819090539655630727819375270894811469318525206019371900582124399927834699532060666005608775415449236581037037969547081182354573349414463394333599727459318065752547964019427823887089443663082453272812332844569768250586839870469335936674273418564050668873976941647961649993159852815163063705180181146420646287299155243740481178791802495331570631325490330278688380769896803597371008587100286422390073626599058261860695586106769563322004956178059241985174844825633361598402737056436344892549353015983838744608775171420093707596737863267740806266424417113085895096771407476048570077624851926763424355975002446631619248867820866373358710889298832252104312022037311695206907658250681689824952447924823694354297595944982335376101704419858668451824332594697439303887661305566740164697848501189423952590236685184958526895051435376433319620357294860610915620741855866490663940317572222041128139796687820433279112149835358428173393707306878578221380634681331390409563309867041650811721989808544236694701641795438687731170975595521445299089238643347684205819367402263141274412493946251938061079168056457773261159311828794800866518895672804237406533683808855686599239204843790644805664625885325804051448543207926062294614477600505109062820380414155424367745794795211661890989104625357165195353587274310269527833623803182282054733417624085795237908697469653555414377124084533331332687564100658750696758287872294936863344856046965072880317086101035040424085823872498651278338789060222001110036486924247592639155409595126903428118530773776718559743715490092046523003891402187794686963683424114880028587733058289417177613127268300897418803340536004249326108642532533901194197493699655669412640481123634004053736930056890473468684693929498350757029183711186313685752144218233651014946861114022296965761488428599611600119919054602520792603536800183186851387332916670656714011269980496509412891793311831062777484093421701405412444365249887065602159761102081753068104982403196853544240643549522064422090010791994881668729950819529296251811379143646299572809590293579733452252201377371896133771378329468999627007712438805246530440712313049821019124961864067800685163166718812653721913013582850949651904335299332827082709233518719639165352904017780946988083060821964254003177190292265349999796622287328653299901881314238865684684321913229245355090307677750786181059509750457372586484873279657725828875541953828869310978686567903651001122243333607127608564194380619759236873040603536665618066751145730917196333295010156903751773323025221446713887860215014427094605138687661228278528158119465042793556882839012839559257270799972549763506393052990157408061371814195938069469479683422583967542508539367124744945222993196454347010743071510349901672203816141127596818095825299747576651380688763022734662591991299327566790113435547257911180054902937414848175793449587603572900960302213818306888200718279734317847913904708281778669211222075734456150086298627436387480415977288061975522453684298058687348948188403881086231787011481294621867600023414406712460372553636436442533732367929491719995759261951000695198280843123664604220202137991054837361135161936139572351373062257202762320005993486755610483580288207114472066735623109695698023345200891946181916505510964957882004661857927277940006208643428154555375713413104161833759297034597849880233709269002959225032810030808676469662717331406692487199015535059049713916192541114651037620958003129699435028053769763481157823033532458078789723830751885492794065774589033498113719046473227782217139801984387791942202048192937159259494033473826378189936140948605711412028537660978609774369608396877571025180824360927829615842213271578244549079805394009077380938274176934080666804135604576258537015051863860707930833971839442810141979399991861973647634545825626155656091457047067222554678524602731643950102541135497040612191680816770072406330310663331403206044772565833362898216685961208467680913638234071384387624366310599096147601818225382539958629612757515791158654062842110038280950567526534483993010417532461663132299252783879593960236155797815092878615397039643118160221237961545231715716055145790444340110899913586787808096550955533830744158037438271135433231521848521492832960161596855067605342515957145600426362776822953569670840002058862994798399245092871951881206867798666253739654904099520411750140579469506598394062506656880133085914900236545439673110798620124197592144537579972668159094404992822249151686788616739281562343477991535654488187247721943092093597239451369054916756209887369335640185772383512553542977243511750317706663345161923986634673460215060891292220630258309196172560949484835771718923362783175702232626396886239340701661136168258583250875219080769004773841443850875440191366119798349304728274741461981956059703126365774142973045962000267276639053025463638558911129319189814127546517150756074274217660412873612224057844752332120021877238260261927971349225083548454056945541205165127374769104609014225674090417773903792237355634667354368247089067466879131937558000221914370421204924762872078092129712321076121874767799243365656578113381623862692167415206881228366522035238599009960639396135714172690036677455396141379166881428306835127169468446883655221590288524276541986027038832659581472692479984742115819782461730138461608992603751639626041842410926839291481239322026830607022504322687046076766311354012671712110255454890278600557260541880927444302879882427592263495066554312722753592401487625316760193108119894189317129105565880754519387616257480777905281353916295991616837793364734758857854404806436655721012287445062102718779575154745948670346810686260589499391411309732409862170014127371187025877000469623864682717057571561896865669707212137572969460444443118074996256221633662286822716312645436824466620878233512188513232294870821028077632004434735150415609109682515364450532601009729116359249925185169618569602074899080821725792076876218628333303529966173806960218365479956733940532844860024533040138475742925705541594747887911156021551088178216133633567191562955516864925327391233037236913072605438191207657297707443654376939184924749282998959772749602468030421390361907848863667684911370636090563866113838608985378638898511510948092290434067291297530434787717877335631099353451484599811165371589164273290978439459389213795967474166112565942293741784970595297695514288066816115851329781843565541614236943033362213719418834640316029799207339737789593154182872857644396374724038018748613577125315485828290269878678416350304376121349145910804800834719560532240881736671372795981787796152063382134467608770607127176188282648377275654731940013313744540993468077667961435240147597059100100177093878726324475322122037207613989137894161933626488156724887562350686116334246312746293177522525818658988462720349535474691835688562576706988378312453315107306390995783693679498906813337011003002568416381887812849007589170412277372411051471111235172528722608198943924282573901363500783601144700875496493789693508193393513494979096648106027217572477102766822208158371460943231325001335611959350511021677245858876721078991491114534566823718374099759859417809120226454252876684356366418749820807085907113836069359417074287985009072860698644975907368169302963909272052963800150643899327461515270904438447499174857384851412043507493285283271959307335189479965117145363348457939052162739712032263742096983435357808733596069199861421604884910339239248622539604229766484145350019241850414687474022182351646871813214188347897118341832640193692813160843939522169644039972786218597843275196764186348809279093392714541973311115428700715340147312334946559522966429702074598845252565921349588950661029115289288069676810027425230621774219586272296338203555222789871134754530136262342996539180396077970102744564782171787020235498494516019891769040937084184967406990866521707709404149820194282433094078328827938622508799725454076827729813041032983839319488484909452068454903208192330913780182233773716424178383269651333383271092220773318096865978674732615761047904789362780284914389788995320641461672649102875693522855966449461637253683279004151313117444955987674338184683318999191275567307148538304228218836893025831055659756766008571513726471859773759701654318354271224838755824291938196834493799861908805185151629827852885640502539958761326789734064628748330991495439555918032240782197446692384321596779687876694040136646436089598160904624326985083827468672337914067068024945343220808964909560406646148658264764824557475148102153470752055283475692163365231515686961184355364781014714771029885102908096352791367817259156712689491125261834096658166502845935156484504968488774075475542482679814020136938819449227580969403700145627382137783160845341468677548670828769958209966865500436768782447303022204243408857366509332472420263469425963842055784062010880487114422061570999237005721937993905306611804508428302014802395919463367935952191558517828131396255785451768650866168838292836620490905965206651558207407476140006858242635982846153072514929885240062851575916912968203500512739506911373679903223537185860825539194777651201812953946400543965267355948085526852194123380661344687916574893508396086829109266973483691977617546955956251957215225840229638714821809348406525059664123525264824017190258783426252817436672953131221739229573206510157854830090865626067434823196049306726474908074658324380153582776624120521727546438289426891878044185111890618911981743001458935238209493619371334126809837769657894180763728958891003543266565235463424354107490544763573854307513400990727768279962866411564155659732065720747848491189904088607881642608338116086125141037210867517489056979577222255255068454579741562172821570577843771673971488106165347150526464601915691958792871521567288731278872724765645305942528319758479517561059773302047289027685169127389954731086698265722671261512424321247887335472457093361644987447596687423775071541219608680535111012137878284534366958577099595388477841128594026405064457244473089583796377033784137104415314025050262503230284487320489875538835855311617725400692598860827484603112651955405482306723966539441068718179675926878537014276257067532009398072508030362912085465747638523566968499028023825839175475354412218436321166989237779762013633753340488427579047089447826794733400221658835338132718938425785125427230435903515997030664013481500382876970430364665880049447989020562489161255780606284396721995380374549921565226845056251194902166099239248445284740571215945128225134683485171940484686623604351703520817949222661316045098091332726354345209964784651003639896308256728756045264392298054685157654677573041523329362157592977123224527026121646965850685170794280882270094608852156547976556206423926737578818579714235565044885937838057502329824170349106988947553836511231488058195217585353997117084576969406483557960346790485224772358252478508489893101527955663962383809188570255773990502837525474596240280170660187935143386245482338974991637122690077067850652690830606453350248423694956993888267459587225799528494429570343152850681022762145685767522532721442908835054593029145844932053727596379038907186489274449227287951285209585442675428445416463026556038124815435269433435097109056769893859144439884110685539413161771527253156838605267091765536397373930833347799972194141445271350696517156930317701863224330464469269701658345278955485261186727991567368445889183159255866246501118705145522523063965856347455395133998302980154676123103780848692985448435775471382701604296093427644298415626597757179655444725924186875364769169466686842845010953956558701078792457868178616793544163043765769797569240626025312417233689975596500313913714949065966871178220706403147030620445313564108687618557065050482757718797751286757387459180759819999740227523701343686048005218258792443298829867032833282496003388775055204516659000096554497194355975191487045078523583984509941137758875025198735916918952069131021272796791123081267614556902227269724786680953520273770838099506039638415534830087533189569641365731970946645788796352705503398340832153979175498749709103112793093786563014241014196987473148960310101235506263035791515842212379172038009667057734026310879356038163653035903060262757754002520962652576947892982613059891185223253790929967008009272006892293262866494374654076355339970116325895184338940751151792199254656372653275892924921129126048542228068751855250374649857913864897481588843831276179021577628594105385233354318895532416827666827101811855699449073239380834947052723976725155556962022737710935914920550508262508682201240749716638490322052361009237952925213438142060959613375866512407827924661152919707430118290486206882366448272574332875584108186136179329024652992996409726545655791013901597479032856918313404383269038116547514816947994400235072635543574298888460744165679087217350405667316469839355677991141440860628349140290362552163105673337650798795379280710299597274021110708868494017657458788876035917091354287306972830964166421740771496771718353385872928808089334153192875479946299384183322652474070469040251752925823029108281625334101250593137881345300859600238475588900148766618445149965586385680550361628535760568220608583740224673495493069469129126592267335962697174479780249705227153285158780929514807993848786308504929265370945958543241533575538767343030773324381408004987487547869404112848445193960063876664577214292103842412105423376770684726438679171774394055300446423875822176941222903049347395102796338192013848964143561885487321553795631797004276058703471570568928966469270684566379923666283350773668250873665540318082311392668041240734917018672685482948508381447677493283228067735501978328513016730062333858582631529813995096099723665236254161353253232496099376259338436215056747893769828453978091573840604205840447200755180396008755553565273658958776840583051299153675979124541424025013886621998219938715236454126383789384321191323671278720491220019024115376490212630818002852663252674650939697091459728271990049583536024209346356927667668244470430380022776277857118113009163180487233678920524257233525602389337554366974974006516799068845655522058787829392174700262053487272681880314079262679653181602040182123599741208135499849336865816996352742852396682609531577270433130213416037278212791906122427245239587753014390088382934012927257523942705329227125074012765380768495933989025641292691289446325801279064397046831279766953391725938814866488950093355334837378250319524516723614424137811661766391312926988235010169804471825933696502381376582452344110736168816611611237029795093032344402927324711373343111071952662804521191178456285751026255382257135024098351308440965469169463048965530566286762710606663669709834877491262717377298002564950480299385919864326471310264391990226525305023504350125406026177445039888990532797841675520413737237900232067626596590387059930896696026119092685724461952705473595665903256263512484554650257117462863539032965517458987601123305023906753470606329096772378324889176179885629492307950554613908636002445253000300862363375688212899175741301280538970607303900753132679209630653745820265647660348167591953670589266495122619985724965196518316883099085008087526348306113737136508323349920541294595387124405713219193555609077450623773672793793395328970088144047083654805581944775605930602712549074491781426041159116078822829640949926959838887911788101291932889158111207053915879588477599344901740074600671752089496320899621173450611965478212096962360317276240040428903378801486369529915656349379884551366589477961384141247837309169408142500536202657747506352879015288263870810615049345255756225161273633209247438567617616764569686023555510970780868696076008291200721429920068172470251965618612875855002738506224004400851847190650529323176742559227793832884269632210961576241362885606009055008905770226238095212946999990033261859631844943114307336635016714560569160736651401310310744778291987257668084595691797259521777045001694293082070665628915475739845077912632763993435157413548221102666709486853717130328338049686320319056986443001684454940975099264220951525500043856624445797801099579335396840070102251296063194844896321548338203401209332096554652251724903152977191588143363011135159876035621109290358360650206650311604568661709800349956493162302631341050989287985510416897029401075730105928201708406954411162416341477544747005668592432266696407637172694153207535503217250389574937546965708574669322552208884296323627572166886360537822328993979324681198166015402300354662752800997238630539323310259629828242063220602796803515897172272607063167670139106660067757316261242706071716079334675624080272712580790758356483239805474058703036629433468573096649899060063520399904016214442701141378234167393072815861653372306388135925080320028715496015862562141757157177447007923001045237902990500186755998823962637834174515995334848375241661824015181309883235656710656729833391595977353209599984259951768976950185582622360810766244374038250654882178464307473230286267343378290604057602655006383812004975445983897816184951114765211052836725607033845368402798230626671735893591847375018763552061198391467801790419557279815896159614400778002411149645029579611381870659302356103411807527363682789828621234761038691223994048443987131968184289908854692402976997660967355776766575299435652715943175915734368523793905269900036021299639913532459568344233173611724103591062074285677050565685550993902974429443965392875742428495314682210015749089038888870584868624210521488155355852652284735044072098069149434660844927247469071732260862047869346707082725515348981603356010743383792953355427082081482598874521509758560545123861269883170224925981753807208543722939282358146510293477029177195682615189808003391055144269043055704294531585679876861787168121106937518638824722452433123824689494013049813882976119695025243461549955682063722472544349033007080491085368091862321811724623893558761553469294811528679599354492830917150266976005583891643407050444323107628818732527894441971850073085603287870771612733987278321198377523597619848227543010407361664384320489973092174992003541991746146086711514230919647411400862238562752751909393646843568273858696444788456231410715410956490874296631846194549430365788579913272782971032590029541476384342979958366219703460965355868310755535388891647668269353770496930123891293065839459186511341567987017359542310686273845833696814596224915692742476268234639633565906477796297555507177472326250937717925155764364659213515923430998481453445681749946048955548728545548526771055596832053744472338798163584073463361179729382191497919205036550004577702449622216190726123108856348388811856438223335087331137578465309030393112613661923257752044672535323162029201257850225093661408631285774188850892551989303720348510205846830894691798957478879432097313348992911729998076528661627819189915249743267851864819548305500920532407277028606229572831092614546231977038076829781948412911466752472203628466745915850169236614538157422212797965187443806989151644481837565448676729701352158477258389664135964775460476273523543284199477487597860473843576844859643686206039205567288132856249070114617043865374064550965774661369458004289539806417617026722786189367435330067935131140432181108566416060864960593318008435146744386722236186468907426875115151216267706084538387046700200722686327646629927662360224601507941788773101785729077270290434992019544149176632623423400570525703054524207354579251533849534849670688899550307594257158631374163581102979318566436569693348250182984819844954153373513435270891657523732976008972714129934310851502797873751351164800169882426569644653965181866658897399123445987768407935281731569332935121150212226572361101942937796889856273757015529513093039828228544219393125459149660122047094757235049577195954213618324952277677538937534169985336983006569567472276736128939022917038713181146471103071534923393857742976892721190960461874392118152235072895636162177857424679714976138340455577686160717352936479215453899667909122285244410733796967685467651575211988328184167100720091668085524613270851268221906549847685252790839396011537585529429959404483439244393381950506571046059060611801508339090630439946716346299921323716954479145715579271290690266995738767614286900101584373236125907809026528878152090022088913625705473058023798594947513897842296171675446966399531311381711743491130497170718253467345759458621164401460726490517184300961334896456694594912942248791694395228716073061971384468582600963778132238572826215225951303915426996140549344357109046654669861008563302777315088131948957566469723615970920917736423339967951550059900792007618396007744575203953043052962089328365476629087281981957513486470006542873924032538462624046730399394066060779531249486316575600192675430861100598643406443909927180938080697558293560159239370945981500850077683155906709519605931001621036025764087459604051012068504462613049118921985119495295294263303966105699160238786541677432627034420689965734990697669409692700243572575140598706970583578604512064251280864752701727345730855312521300750130301627258360039295290918504081014206193591564265694407473886007607831109081506229725195204729819876577549436247985571360096219000003466897780615663943063690878653260318237978160184094420999848150456836957427077590067378738769567630646660930650163157988421810764350557707306748589557741868579772600263276780507277657012929643495914836493021589646303521408779916894562997344537301899223026925901477497438467133901491217726510241883183725100254470683302425463154425203746129037803028555688356636199774423070524798661879204320335842954619387029821133664272202069720156711146940162829163088822014387413996371777977235459807187527721601344074418959347292678455711689237958119338922575580652096024793726531572279928255373592714767950243190726482761153317962756840283542403714911752702700522087455712454351841956752901457473183122306974066469435121549956991953200274909681970553475104244395419304683186586288048227435455135004957810734396817334161055845105915813513445989947721016383010706630683966573240593021996298659267141014122046938587997553669104245409160116757353658847054861494713450582170043010602720995385281695222688486572025220120493809212208804970143680445339922907468952055014869161059007969461185885330112669684779305498077391552883309450400038724791811619090601898519575943156796313076044944147111730096127726117633576706465925149413789703879132527537089444592312776777849590181963731949266860093201877886640082475322635350341080009999722872970928729231280810612656207115315354543735184541402676426012902624811339726644353365253507876870177549853872128378479230432856378329104598048057799045348149162993423848568124092167037248750083874161623642042088118184684715341911658721906828163932955411314800458264228078174844987961404710860135702211879296726019889973027669978260181908394590665850084426880537179822752722605903596067356026343856704141107957086051277976905156539799468480652504845401201042648837695658517668426574625514959249517722077610707397509144380462657933106131615022000980997350711439286115294002333798689198859677872807165464727369700399201410743917754258520742528630768661565188229308139621967994917957445191980727729127727915460090267641303545327433607000092678427548467422621285658486537309535767076989493461344312030475885629706321737020379091914423927971554704023648807553525020146426236023866138460234893981387270040527093985078101496804679326791480883185947826729584837685810672445642856908690163113187497509519907899068833782133042823918384713193067902442592756318102162946498170920207951408442363801794727473379686265386131761064784629480892315956424074176125476492924647126323968655521559659394958163041397893144427857712571085833671887385033391680319753483813539440871305224703765489474087504010699235490136511870029408998137458483825471987645978476033774539061533797923671793137529088893585323698074325566668014254636136311190320080431031371566671434985466018134434687143272638705798471042581050089015587362110925726473898742338442268809764893506007245138884073236066564194416921446909998317591319275084319256615770679380119322420424501635665211454444921773663238054590301348088612961009292283257252775778308666901781694057763603720636549124112666595386518475383669035545175367380388333986289958352424091580185353027890289379616488113969498115065119907095703779112663746054291258080518006157112418173502341320832528678910167988519332814234436984578280290452583764505942487159882959812444809901510186759843971195344358284253076483946762295795740199866653219041992839713854975921030374259878150036333458257597435851702762804601547720999570349047302110610991928173826845648037736342449301918212282422951298801602999608755133858206533590998848890692468827328276823777473986734344649457668410780886167689230235608476647116840453180506571590126608466672290128443059524184700823653667272514890405547785489610161873027910447530415601712116907281142109391900570185458694688406067472178202888487397834860209831773613886175718689840115554614862251257251512813623716797271620511511751809395001034994642687638002947772915896585074710201040315713103794327917854785547053752011817602872007079657423995747983060316648710421270563012067957893180837103409365357465002964824844225859221714226843011649351687962774765367112673901846281433671560529396173695716888653754807405932291181989391329873441362065484054193980113569836333060244318549980457255220706183544258478257954299402315855128283558127778749858566306199863389231022037197906544241169235750491433199450765709728121273746164154971560522741632066075510538230310625158189021057971550327466394995476397151085534621264931343764071003839367476505695150198326970405915125965651639614227255949918598193306929113227144850228207760521521249918867200506356020880748696191853290559421044886149732007984075519596511072563593315745965601768841267693383865171996966757956660476018938792587750447065977391904705238695220474045602018248393909694821240750933969182248774403222839375807397104083816932652767023460867711785678165794331343158766708365311378199538172757337508800761235316322620340798030488277251079893504922643378084010019380659401102845244830866459661421595210996028958468533288170637669050147754985378873651850278171330608439173240662464658075359069973519005559538050117973199449738086195637978887496375815575658910697932594678647035919918447314419224122310957590659286913069379262077160493974890552897340342972303935810597011066069097469053819153605001462327968383735847133390883235816798096462535985663179783616565405076805957966122166307987063337602203057237510797085544599818210801254400772322523582960822299618761008020669294172841524139083652794540490819543367271185380887232936267170340916771044569483348372540985719094921402818190361399296547995335290490729535497365620393105024245378301473845784169196201634883331806085437891261753493672644965398549422622656237748679998238785058642007201327396489642243570138458921140568900100622009220966119417449335540582133954582300378119107026126644088681754161031382388131508910888841749534052339695109240094434017077908057383210184186662420412365948862301498198302323975792661290202733070744476743829491653291685303241410743984804419256006278809185903760985036948094396153806187856738923519418272002804213814528990312782366733445895006540611531353047996678033726345646164045436928356465185469828632921523078420552825395447531906089869887128302464633546303327853591862305543428571408221586716551088622584939164611178117680063852179338563966622833699290421856263320786061754581232127487553713462668642660827640332960454010839996068681331879255455833443512548780442081360577207007982469026879278038813145967853059813212468906284732726226648262081589794183185850806003562238761663394760808972857789102118128937772661476245796505792468475774787168617789679871709326037060696251117935965549092935320064614618282012698883787746708694500543703412837362370920748568023128906738435143151075279946301814012470069254794546193234796118201667063824384952514918745387035714430116699083487331986721885147157282890442466634863772385796950753394117391149373381454537388399967877235851556631759271989415711219243318953977492764566930584906615217972373920762944015516904094882511033195896473026765806918178552350216379462169767547199173670090127824697270434947764374611668923732160318206798153520386166863529776881446442419187938644211805545905145645029603293633052597074490073806495231591287034946839752068531706638432371884730123719005293451009449125169884484903813787815370812510577210886240811135739029638085427890484148883096487744128333603479573849010986607624565600417204007998593335703023332115595411848979691391807534600340363230807428791174410912015355752555404617323907760221149131983851255267618037902553145577131310319292260866058077513860823492568638324205626325096955402407682682859765728841483492425053260806203423421811349225340137444494337186651883040466344848053176182870042936450143456344973085967010024104316979421384261067870693479007682131771121930756839833531059210701667830497953860868994218872384619119061040952188305999179044932566991028495273349563828835255600649928171247546349793975584149272288980908895631543574522806470766148635701325851515601316321545929445167220609311079446935898979204584657286562922128085276534695922719187830935119738821235756430468798428512050326100557973715616188046975805556379734480720089645639929308504438235569355312954603350489247770662079283788504221352565395980392162335732943182024261698221300637634923667289741488731141891203269919778118500076264312659001137292152910647391842485976298756581143256148629447024012387934108922664518522871157430541634009691889180574531298211770497071233571727477230040452263595065720713025002123473370384795187548856037598259579532420683873005739826861430162531437668217997368785315967724064511467678158390356577046627325852615852819878504410910159619295064502852744496003192849345890626831147462372619114880842836471108862879735847994040634887880965259660560778641547635812929430353322105962339745558220090881479810537878945880860940579101902692955022201836126894456749754769771643449070882178650401395620944360728522373272922053562191128147521473763309120036656081969378280971005216733298144988555698412640483904084193904365719960815923328020633094611070188969333194643777090801478088260672489193335768153049097020060833315733957873463350036353284033235291328826495972128445264434031557618103660288565623864997223554339275307542207687851520895103279366082227643522756729378840388408464516773732882722043413350875399495986341949659633810322459408020803175493341976841508208493178005991530475508501763127278678241724047246976675796703131026221853273893993201787143112998519314875789680246126750965975610130845693573150222494893238767578123667398574318094454301304030120913354808779278016820533890925349630253920713494145525651861042422754046753867430482253669859409027758962230312812575532053884369641679165083831659431434721459557121241775443991202993025396376803932704347074839032798786559872044470916799166166078774999936830629375650699472168531581469629247652630713628450126442912775095609497761997012444269837402229936853999844510509055881465403222970893315429799835568656310714297084385646095213065651406304890630298880463555638105350526123451793782174337577127646737721420722314330640907097616260981450577066680082815908383796981347470761059307508869483027357330326366807456727761717908570505761607006448328834597992190770205491087126716426819702752848960869628756967329167720077183268846018539921610511808089457768974144795029090970416484270839447018588825779539366494971266247833239185800706778249092230345192540878634166697255905926451861674333596926120936603745208021130424958546733908420618738365545186179729743172752907162027501151898262397459995583818306046343639308477806047412369239571156423214268199021381585066374772421710285330709295500179781706168492315494117466400052090667635423097608039203039305957768334176182096698845468059923863663161109703388374222886622672981570984603514289136078022605268779769399346061591380865852289672074741941720286785524267429821088311407628621826472771221947525307269511936992074134359570597927444117913741185601111568714666654147706071813738608869508186733882452867845807856983049691097158390557357377710036334680915403870891473639366311925996622867652200383024781717555735702500620734955698669142061431570495624269947219633103322009397587235630836730995471053307483464698443660641137535831217685877244452937881213881463342919750207871270231761253752773581817279782149345892507008644916752964966208069949596633336672474897076385681674029772376108044426713871477494120949468241446528690414091720060945961557285040199264637254861025462295365168272213230225841834410562265714766547620005120773593360005269264508726308363075982523878451316948767238981434036317503486393341545263350178301993065785981170519529814270928185211451340532091832509113769516133118117191084424212245185646558378741842446863963630242459517960226183003269184220848614402235059041860252218401316247136644618864413574744621104598052557625036279565711773242104616514952692761472578420954795705974635094288656634398612629612204946725081168054884757868412998644178742054058356741880700082418358384125620213033475878747823110146980208325224817304803066409050309641412752687183525550053423436585495266189007653189719298558621193705586979122871883310244471780266483360403285295742301371960101134311271024788722312934419024811308457283909828417850104688114614253923670048459805341527736495101642159209580107818612410165250190470789138552917557405895389525702191466212185641225184175126529833185208583352777412132394288812936455408576381449910803906553959604171442691088480309708289664960837668797360835679426809975430481055518635463739353195549333638208885590499535470046675434961919594124419860150110898265438334286391800391183996301174324472575300739803250698254877468363191906152302639369077933949785534269245522508881196669371148593594352445222705674999606953861218739146026767916174822882140459086478825054012913242956150028340228285083581709815856151430765126183598070506632058423143195868066099224069798253432495742884843897911129228869564084432450458373614607965855370848485715086196680189825044540817706953725446297503408928307283134412265622687152102858449925339711558430111182214095681160148715043963202194893911947029047103761176929153063581617990763558090115696848508411577734677569719132124169955107246308914980752750304802112546652659912497449288850880141695972447365932658416705202691832022817994933492770878931634812808433576488377633549009900801815384292869679354585498333466994243051969776530880253224562470912505048756049886446328765263189654328452379496494578914279059399538459642245911667641357732778008154032964841365777135603692333735092227080857901722892980897414352500076822746096022646270096933238884570061790701252137930701802377738373852711416208668842699829124942914763009526658820378633911211031971649891158740235715446184687006389190767973781225479163375436085810990119095770632355500680874252789092312009920071639958682965909652183829849188684748897849883799891441018316070285206671905846333855661985383797449431502962472419365202887349382795969868208158587620504407479861419819975512190655278492956268225663286038236557834691226044458053389218447804659279141475904814131810163830680564668398817227586800171703574766535507693682986185912165471360109920501552882381843650180111057778104096782964955475101870828068084519779209510122027470272397828640678783077866550561753274697451508949157345989975167080954215665630133950077833678065396493544490555464779751820541250513821337514700724831146430523700285957570075442881345558509971071161936253589958934781369608911280569938337328796269100740360272490883700005771302220625342540823400546490744296355127830137120497951636280711387758841948253521763520047545714424779646943672437478891547042058178194974079663151293857832248850096156218582722883788473374453132012642987491997034798690501995962220923966936393895328618216667049967341858048077754196681521772063780156247730499974430151561780523448173351437274260582562537171272847588645437575154018226396622386807730652260928103687269226727945047332717658207359091524718847344886416330140171799413380490937707605527445632078606001729120685705794600455778065305974009779381709535363371769508187405038471194524811868386312192105626974730368164290627170123433312576251602308968239636674883228044054701374278342978458661842656127590901040470301857440941468177573871594035453083034069450057995930160802630727352789668562602068789858026809549386951099879414513622323591548888530359879189802241969051980014952858754633639127988943491131929182775564368527035721143529817912364928950123613981420918134017390697859709577585563752087013896630249986061154440987410832191704394541214691033975001430429254824001738093726856657841563880853462611999720967324294140729853467364905209365728269465380929405821171530566379603120730433767414590894061424186388320511416122687476327477297275750301719012879662395685445319843762662956510436738866214524666981482072977922546643554030567987548923975377781558541050131248391748885069892706869990327143355284758817291365246923848397972839580364954957240975742598991680709131044046481917669674391353060094680332815378734848000328242775593322283681682785363889604511179490681473874810618071915193016702616559002774882716676292551588126063122763752193760510105877860156460724190075707297995150730542902940650226727376402547543990807708751377909724526098669984868017798656681236848027913355221399983041760326305682876177907899619086860961707767716292178254995822046730146670009773705405157173557072435389911925923108884929374612270091076996428190443931094983853340883590603612319211972745374349503346019144081340199205681162542859031716348443650512438668594809708536841207435562893300625949063854970762249776390594712856622104678820044675313402734565851255131063170749409582177486909364271946251528261679474198575789569213410475306368143892543951660176307180876179662638661884937747330415025978531705260205940967539468019974865441092710411580501451367480541747337099225466916549026870938684786023749110650614311055555497666759748166116004085441929088320786597385865801966523165601481030317458637372211898351677623570558001064159328779136854210169792062225845289289168444215000667621224469009214654771509856874614520690358030413175266720309521889041712011131018074135441824128672634533620370143159351614416945183397972874102723674697985308610771218877112165414964019141425134667006986028876499562768669441587267844461533727152636781040436641282028994932948752326540640985346449274379629537712567609785944060521461935436695978723282789064877823148785449268272531442077976107024602471192655556568934801630142852224034706043421789654129999343902492047967427529899255900371431275472196206898129480089708137442116355418549440550509645827953043348678716528615369771962521904230851369100225061048886944865302075612359994548379061212119198204646878874347125371382157684724310934023234913145707787334569338020625360346306301526198361382613933917972694390816343039584786617896855249877908962644332840446337755355246631828624064571584005660534870871003034871901274425235800207460992127946949110127775305742447620184413739596035346607196756698400912732648083702447097379638611282205466309149180363479213828327152110118454916268088797842426232270953708098319571190987365727519818078030739172312625731209651957848107925238082126575001473378238734432872111168034660406646672447767133042533129273324463294690297021869105742382802498147949836630940219078122994957428622946917666430480009198567936433559523610945073816987990223150592221598467675435308887128927683289897778122215538356680338973512080226680230515175037765484127492997798781820008337941768159078579614732462773586780746349934283761873428482405492962819085754723301582135937036134280961339329729531712185262212021970298238215579548321754839236754423414915463927181787451035913757642062439984146394261364790007675716986726814070963545271065071854394026766087485592723358941488632096841950123770320857287437760415758314811962779377306072791648223536248954959720791477057347156284112827342874986892259505555344701994945072555508230132895729155664498102682947420768695153310819606497466103892159821096535073162793846648025848701227234364614555755539847016994893568233265089053093520178179157455808587300718492686653073660718344458555041437151458930006490683738864741636834939826395119802954727721929622992340667260443095328227848350028445392915572795595399537617117082650034375749567269983963562169909288408736596817398253115333346717252559167546404620205376534365510644145008970519433217020820256918541292951568426219802877346186709727012257802484575741797369263785061204654683758757256871370842081527419514806730133341403656287476354039634152147110286736947746999591470795784384197472151122825480675431537528616720888717828235074597102233964877306167201785562897959115275159393920635914061860871059952770407095542363649936555346039456162616478510342579940373180482705799446338504992969179309668018176100230310553670058188024099307931724473738119627111282260384504542725837125963030447536129217546333095982147898149691154220888952182799681592112793678841521258051144705148533982279351896932615616808334295803615824355589123032104453585640732928337010416948915284091025736406525049992853947889039527591723483663921297593615195740417208125387218951808987787618846271175326625473415601211113310094092871906206022072494865982537649658486836129243196555160752103104087563718133919051225050009845661979334411169137788120530606574929516338966879420268161066821474851972983536075397926801855247039604850322481275582216225171407990145578313069120227325387662229531995468310918092812419682623129279976433469810657780395911505521927354303078267260509825650990998867601800247706655662577700063252581092659336522294143957882957772549666769818774210984589127822102683028507623907351675598276602380786866226128420777509331576116495881059835501532319918687744721674674280257507856685458763477644984646062507032546695543144580829482656714922124740080561261426029365328162938662603667177522389074054684021798062002446045129718987216206816175360984267350111587701288454163635573482786323392389224370168001343875371155434058503726069174785699759706685934818739644078436268768134036159999274755600478788266842576005176153227393171446898630119622155991415666596802055627856730794973023489926402266171798393239012774953319660483724208243438883017335000318049170903278082363124153651632255651404615055504837432251431627371167283400759772276393971109302918459852643220153334505166373580093033586066188631159763340713211974426687892112657687451474216027256196415264098300468040174238769397882644675176068313597734308656725848227909342534489851872189409928702852802091498891605179589599306103284194195519947337131693962469578489405145395277211890662827255556225641316019721675496463632151604156130299148508219208092769751366840067089178528649782068299054242031348432717613036357670568866042492616254230841967440919079326811318729680439339444196707667637778591555963185446317025358708208718794133243287202445891034623402641457472795828315390522036771788728852156294762856593104220999313290635196556154408022886830744901612938346027396643252399595965971265992346037539568332017829788688980783286995722515609260212461630277453278439479701653281792716787997670957431178463785095454305641071029100627235865917121384870565112423357215502586180729103253326344062262995136924248781352037680402355103911209479967750066526939462273414541085390268697510769137224132400929128411877896852346628630739129851359976984173456457655544644180944993608744218990133123877249985229617897353397792811749027805311569797176727564143741784628286756293248512066665174883299916123820744453975317722716792898569707028162870082560869363152588599622495696466740792809388845682468541399460820506025356239503474989188735194170732915438853658494700641279376377013737701969991328239732764769135903798009768906685137431492120351849139698587783756360922418621651492111735996909526820598965787225613075459244715995387054892970175992673483259706260865539329972367922686121769421392385377161553462653049729908368663696161973715609021673540030650408754952688575670955733483266659453937362079335312725989810311828855516569343221653396250760389034949342241503920091663985655945153903584472976654059138776432087992324936820066820474884123162437326568919309855789511349751511950356809349558013781500633904263633616394337246805657211535501189762803041667209425598332445649735070436537771036987001191375102315692256946254969094376968122205457051535784031506658641967731198799786197116724939187204512349136230995290896734959610801072532860371209547411881117674479847082025753323960405262448388522910564368246733022449764530535627737232345803888819240149422693342419722766201675844253955646622132324782783043651458967419144439771773509393399012155663567610432550779551806985532371169567140661272022920508786409762914406768886018971430395432890794761965554692939947520630822121412485001999858706982598971124296720063571691172189256573262200040041099610523741900067661882174530823411150304866486529158927802286531497154307372063651836615541745951091737545817564691490353633649988879375855722052184435717516706135629221730377767828257515538099906635430195801060457182026426193492030715585554343594546563120865360375653505806835584021200890146562435581938306256487926821522790854324344530060223241618375975072169403431832381943955118133687145586420447506365258302187696007289148054024918038273779071457581462280038365150006017748855828879706791753920108926055303230115954418445217034222745336532365690452924966482478007265380692130244842636417651310845221495090408833944844948143793774425012071934702788722349957000740264346873000698078536125508381529289574277115002861266133170400437047602902206424194359646447634658318307977371517978216608801969828402133159340933488748590732287122886020533561123602420481970522084194458396901459615894716459783786083639623482801789240078071303078019541633473334733016606835147060818624981205622012881560536896245974360964845432932461132967644203716658814406701877145911509692878368017844820645075089972290926264812855749509866202184484802995070658564983077589960645060532508841270422497149187899130647336211223790916183474534561164161782296831452610160265756470367193109593503040064442021264457001422885130443214298776782842010464767702201414545464165778664497344755559031281026620279159696475493293930452280413039327402306272872920319247700994746205036917405336177542154621806211955925600287994836704131229280184328455751432280878340859337221219874506640130942416865230530183126808565658775853070579527067586914937605710631403529906379213423158045487233187920336588688380097108744439785153196635869877804779655858617059231059591083559094300464714466614577105360410872567052702995710858515557615620830941394680752598375832683515999504448696254121740936795510081659299873669161827313602841254743521680795490358593417930294157067878344450744037880834498485025588703743017084220520386408977942920842093322052368640108598619742410904813190869464644572621601069446312822964172316597470683967402610627815525493930421170964945870581057328274881242586834088432545154467279501712981849926072035951964584347386343355562626975493178894944097373539664423008235464478686465293338698203326821035646863147823893346326533528863887847137326091611530742000541524745801057946566511506668962180946940338156328337448318659543634602366640252186368534647321869278331492150996066953797080687315687038561829802917834771129888001818727255499253782423851401516625849060576392559601994004193830242535827068551065887718233510765392011693052421602227202036814758339085584311155429071368340336356473041293560831091824667257881110238730023510881588655901443025804433654543869635004475710985772464182437705879581988154351972644127899295508253366569993620475017698873324041401588847437908995914970200076864444785181310783829394676532918903098234002393553372820014898181692044654027014105279047489206055599287730436230019749246828427849302851947366924466063905273303419971626253080178309799034332120538539201291891946733946511180254405112971852697112386391004481718217906513545362147036598953269695257589721585491714566762515912375326417393072975380534371721299642457463983360927154433454609966917861342483852326553165158975410745740815471968848059590278867545567797176572880347732232748910394966391603355237114073313244661098617043744743086367777174903074003421378856337089593795537053795308944295798116890263392895948602705385493211474235904646208189590408604982086584423378564278895266455465701822998672475559772108141511789194319072892665817942575064233915788142080499037663302415885711039357719423794894302455776797184805959299175300534069104160533670782780772215070979495569988401552490923649331052999949975576226140973726450252086858743175820619141951719718365191966425239982252283411638865217055988136861278590875806479749838547879710513835679746602794463357454489261250904218071002536509115233345828360289178427043663317620866876224164145002970200604331584428223514624916228334433568929811547790618395054432636148911481163302362791166202171644010435176650669534946085244303861601671476158788112592313691385012518496169342164003136213424151153398210277663231656243659393188898855939873343326424211077245324253190386409151076488389658142858298038146522485238811463455514319124051731716955841523639327290299131157600172307536080760782279914354654436643776707799028421773797120653485342606516822280009172916599296249967087942537325833456589184263103872493831300979058402229882190533755940955050725214385463532394014754848642332885115087895267654831752263064045127936572412628945302240399929738186513729060174492904829797100326044840092009520878992632157353822504720714137376364809678023871822044383549500824724793636698396097414899647802669839315064135140824871307261614100704580987194822736532489875587603419625335411172674981223046768949803710114925193204915702846804195804810479890763918181771870047494952233935912279571253569576414868957499887525225925135466144686362849061807258814143149821985899598137239622829468343446479626883351241182922451089560595020151492417887986827622938251592805916539395923926819198512839649080026028372485068313897353021114989610170865771213555161915183430527796192787597784201404966663574973801434152339367929789365817937466639241700356239477988991450090690744626387449287766225987073126406617918503227157620811174543261052184484347090123289339875484417472451408182708011682446864924563827812164813342128604231232085930973608988140783983239961502453266651644807058075594030978133472437133926315989438589208504103728734100399065701368812373528258025853581385480590115137337388563158331388177573191665842499011800181312998556152029808626934741689638272274175348569148441128690354207759400676938741037096706998492894225556160252639112264799861655490330883180705040919789749150313036851954068683189318270414399244167261280621520358825366303313998729011167149926071231764324011314243714196745579427946403960361433295982765711116191800355472508286412517551354502286866522455372743976361987943370295125595283080254732263903294315343849583207760071251980823278001510699795566425529439941520438862393537118917772429495499431218574273698113237836569857870675736292296939781460932044882124295977014823450461265515546085101068272712206275064336414694220998137978578567516022432087891453196365519863918352979159160892067890744948484200351823887386195429010411568116916025494320275131371832534531807028867989344980653062000229796598983698203349680958617710739393275312794885952317618751540432384930021346980858793583239611538365797477158861854439688588191897209049930910862198067264532164212617443752237383446266191523726954116646932732931238747057456748923888342388933830903263150603258597766069765365111418494630554057095321316511274151818352659848475786178941485467274621578548346233353564946621741755962991813400564883116632663008233147115959584545497382263869123739985309613271467705395125614359415756692715835327316808050613039087600405206797960267306221800247544997971392343224404028686225575020058995514772728963260543353514236087688891152975590027143721451536369349735398772996917139780354073840700014935175309422589635478259638957993510293389960034518578585142774135830050068897643492904933490808203485243058093211911393449937073854467466566237742629410253898632133444866687098426062323803520523051684360970590936173111319926664672663450176479465866248602251542854061166536026074680259866620078013816723660731165081706557838685055386252707554333525668721902483835215461099075752402068335275127100947307788118843932904870439230159249548721832947036958615695275588523175142392450205108093646309306810836234116394154847276280090902034858106811929967871570339893780997848479177934216093731335192644658420566711342725808056941311348622835935355475612554107557342168042884472627516341912960483435247094629246113900023710960920382655273278128080292869784314042223454533350840325309075884053121056766369943215923280756715003229954464111051763237083566899887322344310387291911102959056412745772830648685718199800701790482401154077317133015160438009601627055459740209563464569691212268971748543321633515829485897567507567652680660212030081881539610109090297111963731358543697143543218350500515176129066551505467570014237115785031780842418770157509992888915065579946610561276427785138521549901643800671128981436039134397471892948774630142761257805652449636962955440472883827464396670516400181821084583136959664362681419905122277304104310552080329315559773627352325060096394105054935343057228296839302801964466974031683933590905139825954268659547763959488858898226786981051909917025531930940661642422540156490303237274722206677867627172603334648295639576196635587134394895449233131923977747631930751850808440609476519594412562667420734030723523450024349020218703276482832192242904851019802245777625780043261604587150938725085992076824298029452129031173298286131598788983427808541530016044993916594055673536453985752890708069785183394967444801735969748140458679794760624301949743109284804445031560902791688764276041490723670751486308390744994475230014649766919161866590068869442144645137574292685884147091357690529037608232869762805333896480361557632720197076213611706070567513010198544701263526991436313845601748504731061591648314386814302592272950010449857399810675554905805217489846368293112646573221315740373189677638730514844747757026591120623965094763285843295965753169339138587767569954150749422223132646029240676510012204350225854887769083870689260326493487746545448344564814734045777674882101564118765397312891220394243522076121531302366833009145806565350278016929559566532753899007108475957684521243667785133326736812744878564038139716128675487672395322089620695996997725436644624785484968914902805664630506785395475645595031480562267381163143823174273778199114434937311811644142325364657133229129114190712449088617936769402670291201695210308003245365885168981549076968943509397441763062938088169764220715325610920983923488949472089587423534339597669432090326337467126777810289280591716188917386504779463825513855719588030324681648747487350212912880236830403693247269609487918062065634951234340908847865702625901197908285773846594484491564135380471774548428695480100705515354162154234533659539374604135122858046159137766471795818853641220826824466187186393402047846510738987692015106084719940190725195860090926025922899740827349275331696446841854779352957083260386719058670318216720764275953170143648635936327846329034937057991280925519706361805579201626203823107118623170607602628061393540093135515470681765118660327003562759007190852047706281769859538909190270377238947141902326233041260865547181551179805455360261080543684159813350424188414742118081056072280519337418867804435081541523448296667115860000563724927008842411693064573806129474375241133971901020045938212846299358138393318644293796297244538821392942339896468857421301269487058678489556167040122969878508426067702062115371868043755470757448643438226533857290811167434245354238317714638742832654976725794584578784515615863591907929065498830344592214915886727038752402801306867246570965252194896326122874008885041996553163334719676333330246999501647346767407313808759787924119523314982323909329643472569312020610844982447402401712949043419434625551224134148780153831290280001903945285677405914838684945751361771426307410899177804723641404522462177336325787160685316582585542871478798587868909793755455186842097469824944164269667246254776240125308515306950955539669073332133519065145831808372016037130074984492479824866074451057609344048422348786174724410120413320816149024643823885677826257846234614937233433883549457395838412101337428625766199749978177479946535297625694012743876911757917482317857436043613596809180569035381938012835338280470866554831377945862909945258129208383731462404361348021510848548844996637347839468930406745159558981528105970364576256738931475581529794734452456675120721526493697149231688896595348346127462552698709288929773547958360422762257221019399773439389392093958802520250904469863735719701056819263648006725238426564628958891538441724432894102060360008223608010711992227482098919235685665426454885337437259790885387910408473472120447603797997610378007868583274931720938527718312690222648769086591945477915568106120847896540776507451142764459347990778052351819993630448563157874278352613586994960490687342696642716285184572404798159408944940154656735175153878984824912365806286954302816337060970506721958395149395731324053718607268628389384368756565190402631480522425202573877621500907658254762578396536954228946247734163239936240487231275282723018845765806520363995726633468050554937803254542123821233081531425169097131622063387044960034580058907948870561479282893288578297932430869378072817783297217686634668060235770041346229963459053954806429437752098758733422233918667794205204084854404793838392362486981781760783177524468603242051636183935581422963343810921076624994893127253458581297482609804133371591012365332448463108840691417747908536960450577831917374717254231493668229775498549474131223335585905010762787848852156828425705376928863851989302068941052014884167736633857517879247971780137831007052321098251373911604692860380254763005151556724734402730067423654246930798433498629558665256383483228804213990539498024020890634493297713286780882112724188791073965338725717457816319615672997399991944131588296982803922512497229778289080422705041791698548974779377975403627169748236664926176187867782258455246947028411082471829253521174899925740415711349578963466742069843726703812134243035327904076543864912105347908771383538359119709492620205228246125098606082520542553378997287654550974192320168122201696612651142367234578037835843957789527312082385306933451898445088421843301820825681745170306712960012169639157949359717937521015459949766686798588479830624260355343483858212250506180885462613415072260553069632187091118612664277054335544052041122374116543443690826421821609526825059351282090939273617498330612808193753140109193442343979819801430317109477798246434346976967556431074674086866620476502915489416949956017493759545840934644965396716901540817014500473157126615739396020032604132835057134403345605209845288179680446415316779031047808685508338710401521337940629984065428519488304861294507381102533951658731114939004642660419764246336673609027152554526501981536538525701391107244638491992330438496263228730148510453165088329362248984109861287425679432150380373913169233533452123977124156461515134267706546915865338986374875385480050204949295068669617304144070142526770490430937939625965457172964783138346623655909373055645358782361793450062348389850611182424950395704246399256353751388908552919031867726894066962780066351738514050827052922231604037198240512952212190414545742805865116344955802498423318911187450802152606720883376769152196434133265101609751576302593491269749875784448926726300221789485823922320830748075025576949411530436283151050938151347143691453986923296092995652641993039221273837629180661675253583590178224774423065906204593974464914964459150939533864348776359456178994960975661730568195968397772317065297172630739283971358995671294413434421018509695266046007562200803339667087568151820937919326863484360637401655034607160802752239559968758501947079205430265422953315563879045866322538164608103692106675106647811692441327077501385301135971928375845888763854080311806549058617117462770235483694173089032465886155790545616569073311683435502898373373649693902641396539607497473271806447207865257039783114881913108244133279950990494684990916916689039349702780359797092896466127861577295966593345694857335817250780692202439946697804969083466095502576682910834982382395198779430779166030132642089716506744565075845111756858142312996464129047626286783236373517836592715629118388560076457239221596891980477088508087091850498727021032703384657168779470614983984778569601154088909023460944359987753458692584196256883654062550311522904455668717899202065593531366582134264592891119420694781229086293405977282907366234493293144392884263867825637200116140899708770965032624399578038719203867747653690726941660130568356253495259945575397297760604848482287734447985160071901381679247728566551939330989638328956281226988108576208386215391183262767928405337585603973461006858536897369662921316027388171960500223926644339096566312117159078761209557561957222813074272378853794462286652620429610874074362928495673938135539174582827842176705298485788962250959330699771889137948621666654952339945024958622688561868286317030926666504067798354930955846905919514640612002020094023742306687400091342079860564665532951459146516589812398384235275938224116246208302913195408271843727577684000130925643422676571191016159158490027682088954224661110876800936473231307944691335917869810718191268224769315299971664629373430632052716753958553140737633757487664266295086294530391007967224822790672970978474264782791730397614757933216300885707197831083449183182396404735100957588506079369971995436284128542262165448201174033640681198769259214300879964932944837295283457236142714610431071876212381847365564616936693441369038756986977941785755568748924040847246234672682518935736177954634930318153054366008032957134470870543633290830986672197339461383740829305024532324729973423392350510861877717873482827598503254846442062914838829794877539162440951582941156521663904528529425859906339026941307862559318957677386663762172848668335609355021448565354150332706167118306323007093691173451548939254224133582122619966592908805362779380309947554205713154366001112524364966320511942772119966022845458199388984093186264549084610023476914351478468577427329464228305446194528688400538583538421457997847540119807976434948481915978317450611294843737201075095021531987965614982544612864665775422173175618693948935766907167296307852531523395709031975742810249108191407272272445242029801839695254027282597306970389090871979596850770069231611540244533952272460149290002986470741026218832543155028800374781314831497525807426620799686927654705975381465271438727021383059879533729932837189489284078528941345966653269060957229675970794102917585252883419455712099653536093298330224526384117531108568203683287883058864301339360790217517962428646605629577751578979368481119792197884032610687415613549144382890731533701027686837481022229954680747265307095103426416105479038591521508561535784702655701635451556822508596601326328486845122235175030691129915793466716007998473137242285190550207871717294789576824085470264193624912063727834552273517718392940746972356990081362879734846910103928186525964476320481364783001965758189225999275042155212919202932014533937164254951522315054737461347588453427592948185333428262937312031701186606647339664426025846614618599332499740539061909857360604316568212191353224565423440728738132434041472033611532662296939224941756328722170247305257596375293232358460158448731091062707341804873479328921280386049329542921829938237758885567561545405201343115414639576732148890923124817817230665532221534516768668719832726916033051857109087136132115005175714262006689232660130736053559406580960591957190134720615125418770932409014460224143534261633155777631636170575442954346575242170303805173535032009639547221433377675147637636891566985994903634090432617452093328429885248267312632144927889254037097825292477033874263885479682773297872153363022916358839978208733115710515273622093790634217750520837070744064316948813501668220100633496902297611231380372169705829389281444098814307329491742063124762916440227081173489445908264165747596775194301271482796103763133752897536602067838088119110784368806907395907568862417769623437358161767207512321482609338040838646788466540301420086662372714651845729232111823438897952810173416839786322542507037278711496519822520070042365969320275319672826821267786991381689653253530744663859505943276609096136761442036646168572959710955208455479283501750641880428707287109111554214018622305717169780639118687788469629272682607693503494034860004798222612523903767957172151375279686810079492510548463919977863189551862012219770239528920426274389009449245121021783127791118413839132892621404383479162467880792870397681273180089525098136829081338163876029619945537531797947919964695042381925613822353091827294954567560669659294582778844054680374241469776414539431809144410763779116102419731057561720303774998043583702848186727678646428484933601319648721389144083746134244936644981425232968541805860516491189537276442231037827131141213656469603295030731200726253128324371112449908058819127754791054455046870787569009566160488647869926387673092155235994897053186174827122532822210400039161531420594665232738562180179340828651254858327414940419415129225998543013442972600801956348820474460163574997145321485686844375550291519258509400088639925409190743945848143493933787961591079386691133545378913414860542664534949112615428064375501549487344588637180076513233056590033739644151651951082925524391116342320012604670131144595141084693470704384450570519780086448979812383964731057588844635155296501332179104063813550290727775878780265632339698977043422797990584267885362539138041438954824554518272844435717878259739012623248768461995100320898172835232828824772362784509784458828449772782764581273252098972904158220589404510448956065052462957640385123564479424453628897867135266676089615075807182541126496654721736795175869531228177418500059671048085589950834703510679573517208305134845330335906419735896390346588700147939615501352046875214026080728865338916513942614345712681783372939710914507262830995577355188763456534723616211960447990131778508066293079349501507396462908458972288450826695670331458543638008477199975884209525097246935730850052438445241888502171325304750245593013615759187502381162448887610112434807195736198635826070518157827517974922946089847989048929349671330737961151784014711257389403565753060524205048869026299905713960190992748930989305766943895196746024029689490572231586206695965684463521569714752727519003065960246430391756107347130163594767535173403037936180716681116384957979826457266429237302437343690806746272082580583297544250064561210407197138693927945450475941534623446856484257086143733436031622594316345983820323786915752473554227129316926627782287381256140977974978955917591203124302431628355117588065839353103065851835953739841846981060345108663735851637636872942471714635399412148212714067165553336676550861552525373409627397819324514278702525210158291888066127750513135706652220589983096424786115252730466780681082692637281909080430467532116169758266506690793174395098491347234908407799576316447186693990061711397455088072269192851227785142127556332183763861556714287015053722524811164091600082038193031925684258289922113340476769321730932653247527406881921366009819689089510642463905125916357388708345824629662659410441345993535969748614808487293130252626609712782946690088252758990408938220546684413447403210724507327180619330183786651776905797330699025511385963819097238273832256055437034574368545888407612849552056019444702069069095894463317476569120208648655461748759014660178478960410720156089281803769339220456388652744626588392913127774993761638098818369163658298049746641852673373154656483012358873964451262833356330427062036167395342067394379774758455259257962222412997658245584143759378761302516002062964912165974343614735475091511758863727837744986786158160994492159055450950377441080077729119955588737684838711703941587476364036306208441434382567999893899376323071302666207199077361907976400212151911108342346528866919425837752968258613025545897350352659974573379724073245987705244365838535019282927688635697737329294765069537064715399611580613059062932059947099419263602938614049832015849069407114340609393635760523848234671416620513786358015458716505552169699010566402846286787690284068707508993348920121655748505777691352873055593229855965704444838232883884951027294428221389651153313251878612378430893629730386428665984564640984353485205939566997262123563929602656881143865271914409593571993361266160591021781776618611734136560623291851224059459608970293870798305680028976878826197399822491012545202856969922645707011370386584042783176529759286931950707698746935724876742877535140365553091714443687453536617042079845870447864268838095521591238878932770442716107863463497264416369787028339864376737474604465919445796104700173619047132927108854001589308545900998063618105534146571669435968857534013241444417622485249192259796368404084401676315569598108111224043506986408866421499996938068352721541858538538640251661757619588774850515850778899897784328244445253202556030178541203817056500231613354375719430790454422991995014928032920103650720582458476681403973939397848219328992139766767467355664487090434835353279016475601990354861947519520339757215930322137289160345828992506926703191521770717285016793987532369218785828922080604904950541487678998044845040433943445992028307667761171805336742376885331706652417864608747801094264979705800714347747841051294779699888527511610949962633399199855963434168604118969375207927840883233498233737094568655544275480494297824624608969240038545501176997476567281628377557121177128513380003426917317472959611183882956552724743618526562514646181533389621587296277502755632286965398398243484653441464861009929000237685321916298293997885149725573805636687399776939369150864999616776253970546884153055220763855414271733724746806821308763464763726196511896436943910260699135267634045149240995259907296867055331200779692448479688721555627136949229147464706939608764800925955253478587461044498748350478985367969494022295237103001388426550892674440525086511752384205785631855339338410652345845798180334816051562651588103708185259077612578810003289483248440392208786072419545652745808966243516382642901837641439112569438445689394741974040897575629770034707168230201209713869689111606716253754639792671632736540635718242381244152769183225358807491656657157192378910123403735901651907861786657005919593901157137474663507762297050236824265146197495884880756326261086508618714405486090451585600004564405887763359995745548411973827793066822624858391025298239022322553949389732705995614004911354362046368423969081622475811159103658347344354352654345592488557384568533256632007518236653071292899845011373000402099515990902239075284867295181552849369694431868646956333962550188205218100209427380412080014666511927482791329436400615995575888688607878579574211203074198892884650666541988571562120009996024566075058843637441731482166093260411593338054443125227138152861616284519530228943537560579510108994864903577850539132640832665944307146486534192108445791924745915284818780528023610753065097027149481059725972485152680270976242794685582460595012066102622772986335672595483171048834695163953535087984607764634269688630304961980934566349579923309970192702502931742946789349317718978824642338540693416442044147034538090890959717908656252957718149179253538194118407210014366982107744945482711872967480047171627284633820117734391061030383908399281345594150777695978687426464755307754237594905311418082042300672746518052383638736244215098557631732357153664524397656410825773994544798361382225311661183506341224667761613554090293355023043732116933191899045500895337922308376227662450412763981550474800659405301331316804149271001037913467575902058316854273559020669794270103711069592242395080567492724888457157734713446734595237778080736110862751412774384168138301931538342666894928251958557768916641695089941917897454694081759319477392564862672865668306911874327170866545492109584934811435032328461079909852311288451420190531034889485120311234533710264541881265150385168554538842018151470603331385657045954810589738474279877082180880731725355631176112788963758020982905119883474886079236470387413461206906210402872460283609120112123940311634278611102629392518782548147438595100972248332247394228449147166771841645279195085960556116474355469087693103661337993434711023699124141976670121225695651970951799784125672322581853863292674445938798123039931026879357796490596909560900159098361467444033496289828217624327542382541063247406746976749659387293835333964619143863088486803024792157701114226524665787952365864444637436879553059006602130093147499339861408999554520567336339299753500290822631227710731744313996050600172066099246871795825514836284170783727549228058878065909665137690574933120188932856322232052599724073621230613208937626089617278334606429927911555340581321484784061371097302178191293047741788494920150830507392278830910159755996189231467909138847394059804106037607761475772491074071524563257253505274164583550555229978613607816909324437525986209633867961138738881767224440614502271895294095998535565582872580502101788504118778392470953445052274532271007062917631182963031956431405880432189394906789910366069812187326239132672541271667714779588899728356444337909994984160420902036085136198689519614154494141288511384797024871160864140627171790681281535909822140879423474788543571446161393109047553305807330965766867463371858515771877079764961307377007014582824833854308385254106513397929584525174793387723161873317631809553202389999551090906229064347720675868984697425125494822317509590668801199820677062739341027217018792868087255741985592135953883241932525146304149696592800332062975547968842825496729722588095944324536064117345501633470836617560890415469017931933942534899262983628455919320855563044803853545655845620953381429432856028539662373328084941893901065944935769104387982760619814525170481550329118932124259887471007454610266952192471393266535302890680636931470066688254448628542760332620581071577170900108702592611468897706704472333098098478326457267817172051208867297653337881671539567071494995233373699057619405029811495507464997569600440252528670427999197396757155146610400045009477387652593631307154444991170934087362266463303408234413737274003643262984984772674424643756947819994824638968651388946270612645838224888164076084121246378348493232740788719343254269013187289110546142387592621304502207879763757363999399349970645605799036418157296554785047450233689621601271136181587364577565060166212410037291202553831469847611908687708345578372938099939465694899408126333693814099657053901824532662320177870178752959239679141342860471011674627825951707258583769524874183818795124723617017660343492152377360676558169465540024745218876155724834941866723814735884948791841016638676300109589175521654219725284508087040486888435901690550334685729957148412565097673965365457343038428852193524251243732011702891099926967069410939482809553484236371283085281162232211190904157022471325703707538738462235689890577622609632034322946906192020005515727609194801787061432755697404083442792708598593129753489073194041466543418069875969774860613214738698285216632776843697503718200765580091372187914939756427475970191510549932483017519225326560927224863529691136556794314121886868137723655058185901220947998045260394003941855868886631246418420837857801861141991255675678443013487088180112610595852793686259043054523671306741874868898901459099760143328747664976190168672720957814310638849258225090990166257059002778814466944923931790010395056212866011146681818485077737975831966240236692533155242744344985171344708570336660825747508988370067544535686348201456097730670738507483324845167515229659269234618217910027580368852675723795177703203673692426367871584899675888352373323301996141627504927096014143172583964571941566426297771926170470005281434674186512150760899153572866623360253550804904331806613336210527585464922710329594458128423306390364341212138949337549879986317017605811238562776847476641438501687177608499243311980297221705522066328980728469259547138856610593322688609633570971330338584733965572879050513828009308322903481304968833459576467029052553842047903728158586316397944906739662218205128144510318759419869689288037381131548043838900873241485134282928919025491668249345242425300695633172906346252006330735343850016419221462712160778712279793243365745539395975311344543768223455864879984735923231464054839481337861789527121405327681259958825821259760287988513233689928903923214501497879106933126732505535704551017429726510793142289714414389656303559381010269817252717816414090859103020684501465508860947774278215399511854739852657404949645170685284773118176918065920063893007767219879362403561578002166005020593505859921932155391731163727140574789080891541018018222967430582950306739606467764775205058467537843289445107923244191351867901021130521068696177618132052515988896298355613442638989556075107399140007433788021953452353472523064251769024794272352147902037656340744756483718231761116811829440714169461299413127534120169175562158468364899384555392115557060981761065661243042895057608504887163070124203286922010489814348389330433985122893432585273491235103624512237284032230511293724022657565279595480260064471351085369346708280370972955849424627202985951783652507590507723427538960162254328810938545366618683245932752238154541096399234833482773211229115764646919982720052836356382087155752629952512625741971406269588925930783831041029573583417937081642146668779510557005443110333344996274746306599798027137649474505926993076633281913139203542427218215652770555186492924342163813121947518155468742183247299040212158291529612930981847052750885864628985168569905634734204605445594768230311065858696095801485773509541156300409381059579304470611332316551318004451044566444146692153907924357209026337689649360122212875912268768472858795365371068295749355024604707852212347522085930252288571635582917011066666248154385674472323734192320982561199039590925760638375611766043776259319592817007831422862510155107889874861299096436821098173933865461594041559322584497320850609930594023643331912017229928841035640253457799433506864927978800001726638186172948584645622621646334963532622632226629969745645725209321164538389544663971898009149875108044697949728924877282386850106155400988117743089265471340818640760119585271897053039010015984437058735686847293538284726933597320320000486440975896737940551516895527736746943380919385653928659085443295937802209053105576792727503902156427054206788907862252214911577907947740794324520427835951318044903698047024826307163582276382715531420049608178838112733812150379907779545689328382956766349040598346944208298063717574241375439089874448826170866655155237135029582855654407947393520768058932421790531436943711820278091207235301542985998257783817805526767996847843396477877159324950832772333747286179564561633115471777509455183943728816554617067873028872796690561270003822444103262862127703684814038527523769633164098239849169934468211704604609770977408454494628259011550973127662000472188999971244971235002029254078066256180390215239374520324878110277262485898848889491233988239472532591702753882068628901710798421102138934220143577092823573317010341247482595753108807830409929812466727760198069850060501101168087976291043817235800307716489230679351388085457963630262483299893827374454282580258033544987915343728917726309369243797569023332856181960074558859494506366986622015624426450159820966033276680027932630920050125950863193423752038117995798430859655853353556637290373711631924611630684326049139421926481724080156204578263582798383850459047072956197081924573982079758731582837633756777100350349864160953214413313782089437489222357568697791914733337049834894117833053171884451142718212256974709112575111805752721583609287369643873778595206968230642824811258407319263716603522332137590562157172954096162862932679764597439667634889000661658023018205781577210816829849505061527071880404902545583645752595033437702248798012733322924804305857425419171105208111740254455732207596867379459451170294635170495493064936602260656301453528673399021420762716795491213910657961686931865499359687102364126860545453983027115893941801364755818969363062298657800732410258463169320283790727688931315883528934379518542464273829189267588094438262513381044431869119144116958336900133643228800448258610537099272037638667520955415313808512727726229179491926585689928367484178877589118592337105958684632360957211779410285555680890631886293359760053250416553097372664657566663675258903866103786323899592920685664672827857470572005138331606002120815646096229487612716863403945288564703877457999561153733528674501214318560888386883360471626407580513585506841193041357481050393332777285426434103985578470444924059401385658092477868563633633250503859509194850526922129686607399834456052122362127231249021667994907636872173811910312895434495762806924788966189247323506008099317027307411715192428148460887820423840015339285073904500456623341470552487617140680347274251253250758297813855297158867932182819435347005247212328155422947994203695035548705023007028309158030753570284421881894673363089678662235831445914829952932652791819593936675773642594636422532727044995481936992863847098632192830853961869113735059314821782207627919693358041913694492105896931688228997846124160993576953181112220410410418828239281891142947386678126319485700563326191696356333038093557616631022444370514579535392451170252813866805654868642764746252035091185491837254943382746518121159005421588327086197138308057816251670637711686319365001399452723335973202129233407796049264320233949904091285869884808764677580417909681816781766169432481318570876675732583131619373523918349854566558285961506923720177648912643490824332651587587431253535181668812472391925272976398503430390855552745560781804669946558353359181538685168100548210047241261796352262265631727867898236935023459780995771239062642422821952146305423404190751972068657697941510056985577446367828235490566936263660581161052600695026103727373032153177300886373698826371674001095025764803124612651621093796777976985468714271113930366369136601582431003750715639385064676669319600092315707418609593539241624300633371480855502239437436917655770413472575740621165743734317258477353034502521454325804518954936763769683373826694957358801675186258299643344203133072253254308313061563103512477531080883514464674697796619341512384315318652097261636707610127314080312408546623462876961928968673407286698175199387708126184181343003720391715383626667921141429992719531898391460480000499452262898763785640951923714633600812120246383713654561164950687990572982760688477295913391501591153690115201198836883881138465215652026416131236157207043002553583877016340386529866740696708507358135595105256455467524182693605508258446917841749659035242576935908037626494667675618585126608101634191144079153782692692592211656393033344430059519084884893293726219425270680462228192181532484881140623510076700040933443990699197089288369519329371765643211824368761230271449407206425948520902641056089988434155869294860409441929592102075296460651378511021248688255010351497588022728403056108560820195012482335831608136234725973894747794893627608558187626505320500446155735529252074800311079826190973862966972253243142582804583925747013233726746212840493727270348812743214420536110160107698956388122349917873231470998044833357941837700293596952814552545910191816492054638281224040780206844669496534485820761121517596408956493662481318620595306123849180535998028342130450416772430942392381765307219866459946351505140000200231946478095736062813824121868747916591480370385881848061037429730510255682372194082907884947986471009113851235218886453145473849716514714740218026169237614491734932922783314572846200224832163713700664929586501948751779477873754958729738421889884010628385807833291236210386125030632738187633627289127498525296124205531930709945874471348756771814615401943582435673197374660676837967934501525165953010691639795555780205803937209903614939417778342954887641576368382693316928220363157496621618555902632879663169259233722634276311364770763843170262898625112513712539154595312982450888097746522979827896153036592336524900887147261301056966690994355730155797164867458991157355086482320833598870958167261980660787871802106913107714672934577183484192886982207389149368868707725774106308443331327962216415023253890018031215863914223797287911378879397809131648861593620548493342035131161195911175001354337197274038974767618252386424774467651291025331265046484920165226301262052499600350264556473683110132245006222956394321378900065869816803621134895687214427333545575488501678698503032655252459290926030708890164929912679591192391185652141686906556055668136713388723083214150441766038595887381045493793543551245107059453521559972107018655342724302256738409848673730192002826102449486371187421114927994982731571089611293776686922418689853572225936330937016250061877185154350943742711120772460979225732666773458320249863514986103976821802937333541741906582873984041877334240085508716683435931264147359260033842724815146615183722629030821176326490646151141041442286194638790043719192707527961120055969671468364940342504713210060116263485872494309789216414554701373821059597889403215701837823791275073685672121546191008027092536746870289431677047200685036116333979315356320631545800822019741712954094133480843965856579121950854678680876420542780245001890040741181638550643124030682517388611646817673329062990535657284840001183435087106653560855506168837801317964104437201225817820974403456723048220848957979929408780788784921997787314578144531486927188962416086768083088829109542583111854887966632929327509123000286564428184708163915146356036598033604929674306152793514824603077664833031401893259576181524370872841872601044877447907252377312509039669498943941440947682420296997370129907980081438603922624745454082346969746515982301366204777081567715332865278002080808883523900224664710750263206740783707897309923478958041302537286613362019569753066059897645243056755474185510822848586115271289682666568193197058929185823866614041245642733322855813059584228060804974074996676575877168585285935745333318432625744116982374692830638440247091610454254659928338169487660648874724766130684219293735905811230899620009064923775165457006578785686219611405487770353370691008109122491981309655937429408070063819621126061367598761866836073185500492200800383416924131218997643684073049509245610794892989465791821800803644520913151914099759049017631029639595958061196611201233468189869559354208689329089149571428209905232188233714753231303034380489138696130606444892370558511967114978526131454258703777643426869000467278443785695140830970327645613075561032229184377871360218210996115392129289893994504587995995705227836213942049794636524604464284199574405042710356009112318555787145061596538513360953444750970703170714540716773972133805107833601305271982154138348189064493866516859194568951286102567455118523016329983118836934358908332816409407884765364035432677082803567927619768016411311957315480706582221388979441445348448964813690315914540375119048645034600966022100559036288807676664232726923392202638055276513499142994255879494381950877998529836367331218806911913207655291248975181678006713476615881818061327185730764321881256208562941782613449793464042764709344102995417102560026891130005977334907308003500722069902093235819385522335993544544408261341553654527702676077204387260998717353009074509304435865674247642848153275309490377709626080373264244770129441986269522800600206321962325735131110813071457248221880804991773695438204194401176537251083324261091917601704406192807715031539178181992274266455302981498981280601023595712207994674321588010320468902276205188459678693188419863369521018194088146196484131763796902503738531907154724983296658877727444996716145217875461011512542531913663170327159058606580291588863038193076384071237402918072256843269161226422458367017752564757323168687207015757564090010681358560476784181754214487524309197817265716312090604288041594495018536686797803936939982699134645946866196827058214526781250146166013980364951943894807399363772939558429341017785928880705766739863060107280535115652102762370572179607853072355262246020055936508791352720780150360474247096605674409028948772654946068941121561224002781884414310563963056995757624124209810112072974674719563740331931382751159716937473483736892015245109613011276431139623644084307196171196267621524297788050037511259269639537087704964744131485462803487392458915467843379461754039446680132892743841835198225240432265530310197900117813861568789032504084048331980359886796058995277561517700671164682735214945763981185305346860435461414436370892407683777129947090023256902762066933207748542462133859014977339590799034298743799561239263580234471043234975798837338361632550059733032896180482865432802651929915185631021544734022412147252215966317634795056790573906894778384269404981409456704945896127977858841636982051659470131848733790934045727116913218750045819258524267209829152641320893812745729704222056943103230657064674168888098626734391565205750259959402548290995546160066450576231775060109488472700371178859736452253511619434606935346401976885511370757112651454092110832169551243719288552406565651798080306653616675244649214013370944218027593823188484638249189044562505152669175974154426246549090807059418187306306063648708610242547017925001373387561193231920519548724399916254533312722756001503852001138424747654903726337559017409219739428571075183988591766623150815869457211933140321803843561125349013191092466703520544950459710976545449520587969097663775179141865468700618165201363382661920124321701993927688777622935636650144134478211445505036484839073967909453024674976768937750542825772106712147010869385214846961135485950901062190909685746363069621447639921130393820116285496767679900108392357956594237081083011869137759949055660840462485382347634548417420615589435122671807481371583839639223386081656142484842805419039606761917889195276619694323688787581561816129624086578559874507344569841778005672783190583451452977007057502115279378037724699329154730887891932808415628334407128558905465202474405001154349773505519932985669589225052967077868720256894461421951725062543262735762191641324043693775776368216436202808824994721083570294774568979029461507225637415838687162343583537982213055580899216195580402971656824773741510622849638775704910836021564393707856666248201309934160113782483738942647984957021303141039696548612272335711139998984245398670187287757643884945485510108613552432998028259099093344498041876509854183918931032173781832086486269442910757929757696767124007067946278452644895140511992458995891185250259308681000618240587041824309674885805689675878336736399574459173754012478943565302092244073891412401033356764568699231657050378757774475586879787750099639442360482365357842383980913251686174999160149297284456004829429988942568415476003641845868281758551615782331103119989667444308482800466432816314607824075897683224617621816626641810201291141915787748366939353725230384454905951325932338468342165822464225502664069457599316023337920423035841590083913754380060404526228831625351706341110453225486966586650701014651072638799029979299816512290710362311874640652347382207699224317789920225631329447557276237503570825046362692190369956621078886768080883434914058363057967752160725061391924777930633468703668238703611487421887984177408496275299020805327272661101745485235998227267081821358488306596319772814388883352265906228332674487760336700620303380608619133990647552065224104499414581271793526096324642818247643714679574844416696097894609743838114743920142404505733502751896109733862456042819804507919188174706000460346902615950273989297714925130065417194148943103951125658120175818226312907199809413526343134315999035277608735629449210559423187459960896924809973003202551339466134415237562825832187904989271342894236540763874086251757510512951888401484849156578920598146926953068176989727220388096868964320842806643865916579462760610737466101621285731548207767771496071054449427959515985851034666208377893566804946413688178337495503909231093013586859271467383852515503214578128883784008841297574108964390196281736621132310855642987513150464333637044735837582999394440705108923546961394848083264021214090045281179884010405106357446885823417086605190380872714501900981989816812034912276017138777212282162019696256199175385324174096193564711436183399081487611502839642501474243802284491355576704723085036896057479401956290208438855130778949975929854088063205335047103525595534445312432529574071736602052447496812816180888670155048035917256440906459275072715431171659829764763361933355069574017090340676756291939033352784872896525893509115017227061289075923155284495891454348140599946275813708485649648674950734644970017984685628307318475242609360704710629037043242025727624573705427296145556446158765979545938726619985604973425677216322604796164775918534395272106109578266366356236077941326861198468141857818056448467073845307281230758390767437522386686200920343189618998844854527091840788505535389306600696424550748478118945833663360655766712350645188185646471437776431458201437638803709792869701355284383734106572979850052631649315835634136034882608911790548591090128357644822904695615280459275271231194255206173816128374694438846857505407294323035047195987338690525372275227672527433514520747834469161589165056221530637365990769008595341022763573143638274390155009024442076027300759082104152971465845878091381755526945668350762100582261798521933494565749929958232996994741941260830102928104765287541418166043512077670336510881710928030658637831358082224360632880158890192332223960895425453052291916558027782193568526333346588351608892495062037477997440184652480667140114006611918240665562080570804117006305316146508686384220118278903355769537362040266813280533412410609383119263023075507355466602684225762788317750094548956249544494996206011515124711722066524537735730455675874907535580132004460083393086258113953968575603214380267151805110591257670296823336373985109716967561232147466214700864774596943191893502591770470973769973953528909967165230757893738730961772718273793588210274118312620043060187653341654423504067887108172391704505302921600624780317666958108689519773626003526322065008638617889318988341504248714471610902929071272955142865031774250920433727177039024369989368677960920853355310801275416208820547119994140920436856123794201802723721707474127182626889984494858258769962234063542320132503658591884704191358091420944603097220508290802177205827976305016209441664402042400342248864713690190216060587014758497085241065644756341675315185843857541015442217263464416019919593007421642393313953770065242760042185137406999764314128428470174407097449368105180546913989264097984913924055875571542902189121693194320795869565909408458123906778492814292607075372516567591698662517363840462435796241353134368122327311724357025510417354891408345212557306557033795183012327116352870978375844758597169427828363229911492809306611689734873948620904824746830868863924568342353218246368574067266516862430778684380874118798064242183627143414892384026129489836163892219631957916388834067164871514006812633807553933549916160872389759913819022838052060016274545043040173592801636363749743620338705982118835951933744967925613569690169541135925353699831508850151647340902231380249895135876729359629776755123477267103733634040047077188515975819274427997852970376193745020039245501403114543052669554373122201068776020597104521848364443914449702179746945206186443396807478653710574288146591354759371291070706685903378598431948104441591219134216720744403623649763484537557369079526570462849410520666329550153813695211073452928749447315354882226571909255827339327066279008127552388658832751787688876660261935523349420419599388364119440921286888945655550086414214948911078906205001310443554803165715387367017799989129410403966316690304604635956492103698136854339546644308593047186099837868401139271992753273093262652656775693195482087662962241932533932606542277072485294763219154909973137921683833356272099454685038116202659966295361892137504461379667115098979674094457616726549264031602963277111184271615005958146131973871343302828263712862021701367419346340804374328583082244476882140376356386420524203556283177644077694761289707636928295860542771688666132392499668457245531238708854147272921122445883421130478769442550188114383373908369048572384814574681860280815486550551513977277155158964388943950880936243821804523763666914908680916078273977447761272793712420311607809118493109446194279073145407020074206557303150233240129060568562071049055907340328338463789824007837986460594189414992817556590411274566113203689237871119452947920544259186696309606680202090596080156659034788481119941760109556447097462178215282380086098624332584463298083171976263583008395430105375941618272369053648082666195030711185047459941663789045540186077847768509771206689088552067854244767676693697612641048888744574049310622371347084394750456423240370481827399787859643244185104136899351314740641802660797576237387434192863905917182987317118614251224199649432089467621825309978775172794522468658519043999522034255529182864944327218758835270023715859157814794047861168571919958280241947893854580025508148753650253035622849971682167174949157420333320187947685829749057146517785998340529236428107814763741431900812492528475512686186018301612479246942015129419519563761214984607172010668256205103577972424169725692138500493765982627003455036021003260252894560159392410640377476983206147226805544388113871721274340308115993940777565717792448757309336397106194099333009946398316176037306182920202366598981715932786321891488056661500580466562760913570175385400262726744320268195582529181572716728235258274120344829544968089823360929090709306052053359988854685356480331312463578668616424579402189869076964731129797295566789914482768373600814725150607546529959727668890970823513517417318558227431413724668061164541777941141979168295886079568203921885478006848726609397904585455189708413175403987798771229233098198304251177898073863585058743364997760905985319203574776118160813580358597230999349064753381386625047993250314679330340282527767630940761407638640679390615482793529351298621606522072414695340941291913694578900105492882830089392559714965943872651116622161905231466348083132378625180387689983478007732354804232541112583506533551908058296870867181246280014502059533151234510874898618728915197856358336483516390284467461089492330080483770113009045605696530944428377611068905048128253704021655253287001147607929191145237806962581247702431815077893950659340727682596738818202661258189282526617144208924342529955047628789718039978114229514387509667512711752903263868080169901429217320948142776319384405453675278684447510846102119375438925610308787217559438071778270481736004589192392877426271521776993950899338562835729420627732709375446511108147833708402876786678879524156703152742794652721684901562073831991346440532868837264337308088765751815760986296945000220610538303117216650284205190455401851810521545800993553877150840057905096049370169491809926377746022407374025562569376241737784830555483095317511945523021293090791004137656279572706901169669147505199257403328607137663105326411572756067506313799530506123527648413663676576675905065345181322134301965018263987400835286386782798300399443588381148237291506629493102332226940879447527546171369041449013736240198669643896308184294498699619754767998213062112249862893800435293131812894551511162870847171104116413082742956014742756222993255695761858539809892851367303361473108378707994555256199930459243142330913567036191688018616367653090127324227356056735257886838408243021434468826605058689182223178818588547452727523373896298933356922361584455576538922414403707038240590663019918440342969880393783111630675250718282013820511677994047961968879629793879489560745431097608154525953593949083907621080049876251769891291169132821833418775651859053189894668690178601231621003832835790461364577463384868825291416357764800357298518344887315522446478058961972663044262721123977914740082148454948482832644877932826413773012803422077990122892594716454364573658801090244448516892246893586612750967266946780447169532345190053048006498698450088553506284948485495123518848600949735923606519462892793926717447911195867088805287933936058204269054021780805027384223178903664781018402118978601795096978744200100593509435004717811752310721217254493582395793732714714615986297394803296796503184812920471468538465077309296446385310144537262016729103374850224120958330788118226756222927371153695552453111999149695312368452688356745566907389650496358047006112555261934581022575320617820060373720049232639651063588994621820513736598835318739343916443852686680739408655596287740236483962499773504275041474346142750711726987205407729827319143541460316219308501676630811238547810434104125803057771393515244396392527965053950117623888781149196011484534923985841403566154102741996055364672843247166245771216347690211929245936928901846884837576742002462539592274320061301626744801263080772030173667268824651589102090017363005150243213980578782816519382432729462027991474490641170269071092709875615193222397694505096690450667766908792866328195078760294757906340538928531256611171452897723138396501280728325026228130419967535654675362976598282663214739261421151049582354238787610246610498401748930696067863172490257196405700851123869071648217076138380560781880358259757107894170329722601897829976960307402146914958947089870699047279491602254153764878848883819470132039054642640308429724028328070299288353586611453769270698656894171478812430666453705537774249926371561015063863560801252058887184177643743858531107672643176595301913921692408317350300248240211917554521621341969190837800926156380603455911633268200798648013735158492556998204940306738488162671138934380888562189518794527123333467447463455935616866550949718638959970314822224103702123400461484864040337916522340193905081116644540714369812794061208480650331357622080494551203128908580834558597706470998099961877447150644165989944577910899209806226593729643075651432536688088729845170638278496797749900687712146052428228933661075392778497255726846432249449031758376745187997306499595477755439034985306127249882357352651962174399008246632450380659747013479611050116474921852932662395789081970302518160102566500260774138647630489122073496300277455432417771851261617043199024011014584350830529278629478457884646556345506931081247315719181519423015149495327974599987133540744388346738605468140281429991900218108686071871391880771341628670983253292405756585687379393775398939928104435051146096874121085117942208112573146176405957232012929684108257650414591884645512035408680372812901635946844367689256846778817498884298607378755736134984581807035070345667833069760778874135851946889879816597764576959501421271604014891076512990891214451314148354407666733560163148612718536801347772601678982937718123022381844568812319690330336948944156594521034567666774825317986124249530487587877669905227455718102589014427733290959973072532798229920508593981345973715870388720307861691044399503175982546061617458336931057800281358423083143004652225678712579361541391284767607406768993459122138982442061552448382735641772825115409794708907851296824425527875344051740353324079703374029099877665364224022204923866799039562083054706853282723562962647550346293280405887182033764358124798130867147992767192161599799410240229345804431946957452486564401291462312389554319949897983820750916098737964564766432978704757950956627463669346477285061342451948926006241858487572063782376194717074134577875650584228233313257456028435283238573591853125368344476724338665990005671176116046240986607240474067074242515955984484676850870494532698212388645556690727396820697039574043530550567856778513972175106014279437663392166184213895434576661015683549287620822033410535488784475175709406705101389880075917465163273891656907060983626914839151466261844401837983517104578217882318964961826115345808042387412760919313783263556919664846614144818850445904434738796246262058541256663026679982696118118118798030094162330481543703096283366097744425889494418400796679555920873036000029285297189010942395948432821239303189998665597580189800443943478221393355401146701511053072996764476012222775409128666903844137910249644772676436605599645020626249298589306816802407198238688235534786025259282881538538578219542740935796837973484504693019576217004477382365932469242691067933453489570757971972160208100606949461031669585444374827333312993719402822150183604513732833777785943573472062016529414655318704048783563402961785105449528860486768320246634118286198735442153274269570983184446574007638927313212562091759349660684518287779061894803812065126338376235535832342769199414624917082054016012044216150463970200559400639220933401533905239361274355696897912537202634855330025142915760176954645892404455871232037593262657687342432232897094518342517656503065907321483243450930452510612865762643758471196617030971079429768097950133796692556283248149912038026233251556444524226876515620761304174754385619921993256004960053595322654027860955254322305302828337073140913840835703019811355269938525261776535053453744330672177754072215723193805163606753481974837616835350997136400653624084346043469393732062623585578166847542625625422527150274327998592405352516329533331727163446977305232364228205668269361966540234570842253766043085663944561118061539219004034721913003455081294791569954042564693654527217518361988816089688893365913470720820158018179698734119446513372611123262234143599244460560815674647855205549563119527446524208025699366462631023801713850258119407378956990734658056752868970000139111568875071347326022609525794556853716599823060802303341715397008308698535949108407018150481806730472055231236937712999099985333586497128481819274325998787191153674560081252890491018908972171268876857678556109649034333435486544959817207977376919540866640850648661771064667298977816056147037468950757048629808611314837860388435405803999842154653199401551389136600686083834224614978168406279430367546762430326159374587542995796121711946880059965347938694920035584334627581231353885358177770717201723657025856739930245688351833880734623632676330257505202378421939714946545343581264920227579951142322682813453163082754421636321708791644075449538855556171746389408691345152450149655095534774510643949932354333417898858577046005523198807605812982757223501642781203734251165446297789533736347677400769908729814453008712658413613273475674177335445362997404531738722722949473999242026867728690402979586957580315889619879675982677532043196004624086705380269497923297003472868404471641322623469884093295812487894676184441905206707325479343699812679664115356801635212257456554111049202064465940464685758005580034554734149630489321277151865151058334830827770706014625887027181986978547796609703832580032105949938575149350783700167279119369254679521255234974716310494695470152783373731276873933585698524728223737897710393314757585350468471509916722191063103904661096503629191002461932751545988204344013363987672845126991634455749399943472216310242078932125673942549971248085148528396963202237920421544479592291521381061297033795832974729405762135680926832840850529438730578223399989949237257016900356426981928944649262971890711062957278218254659151261280439199043292309605436942292456672778609961057982453861981757713698691827868016294640095227090087107156189164946305029197944617088811966789448510224281391535858420978140989072342522712986975942488556833208300961986795200765271577641828040961819974421914067979373366864251009135440844320088277105708964666113486839271604885968825109459338350653519142757056842799094686585671410320587376873312508322019877286107865561699384921023911099046677810099780875698933243105378869459823880824917952209199615018343521150425828019198372888860007287712562255409817059616348710007033569425775487166216423280547570800185721511933865749299864887128617418680001827394170813043816906618144281125297144414919947999328709805057983278698915717361297166188267524583450239334411133074578930569840346823753496409312288632699488415260358959223649237845284841663375954189612004555746683583593372077286483348731693697799578722291952262785859013338327854472653706251537949127192747552046119638547065552503453421057230996556569338435025198701129387124451420185630584345689874135439809242436934410239462254616496690173584331835172700018982236403277718144399811037970770323926243648233649604332158485973847119957021694027538857372358403473122373019099694060079083124970250288927171913937432895617067081046665423553802853887245876453748533759112817655467052854673855752137401835562460174421568556976665398271975101052113685915561899641251443612646513256899206508661067517526534809005049640737269095122936182902003828097672751331488227285757149023706050978186642489155770939301997707159779224394015247136834526705689706563542473239550679911529320300859281399164131225525199602491939477935943099920791719919534363086798706293168069350175859121339446215277960729303719080626595637562284252371958420145527489035860601223342356761769055285048597483484001744435368166039039712120256838737649980955397965901194267493690732391449040382302886042088138287476864581456907015099249648418976289451576394354159621501727878288880548172360567238101273486352596647170657158647619032964935316089823379193622712289890158279862278450677248706138013667353314268358430100778673001636153706674125707039732780715405247221028460501292604783650279546057344726599289840702544438125012973241022224184608091582868393466428205366123817198383045671494279337641226257135204733900421739302835833098686041244318652616495170287237918481782726512260874005876398779133102843514363345168066884089621220317235300992579740039706332362540289209860556148878867665213859579382520086075850818693203489246957042157888349282237767156067144657210689667244355091649498586344338251907469373319966640870305142801460383362549132337772605934635401200921461947315942479825031602463238482628701816108678615968203897384233258138863688733944428278141752249290362614434592157989851383432987273214648229167858287222858224929856823573176370741987338543320149602491352843996438978221085812490639362849077027092389691391859945018325429218444662073698973185271359348354008122361704315489378294967427683862186074103674753089301135805778780415003355344731692055248261388841322198081936341637078176448698709831553387649879114259820779924490580692054311050004260393323813636753368349349578853995839686463180018033571725274045953096974839586542089089507339647840680470333268207587671119794189644841173427471440210109821448232254975985929464000604848502061978092935140113133458820083116516407785093385168923302746123267764840808402379042088599476227416472498632402160564207334074284349636324946174973816257325094950710719112317405070713725235016162384707742923612204778155474607234357633904955276090970058360292928441546311627519534436442081947706636816752476556944800804931821747390206495829799448461202851190577504272182397746785725844720503555247302339260741579399617219192798186578029648447189724460096560978599773407353265502230607302652829142603013345260943383350171656218977560597354866157165904363929164703688507189181681872802997929789371245870733072534428699780895522304407276956508048020969669880295667883237937929617952871387876833124971688217882433043649157024699286281624513270926878585451851642870787730481912880072378290652944217877429720670351794721388939564874624497978904765156877734991537565728511407147815469918180463611715477315401546324301126491557281954167498641609782206514703879278591656648756475127941578080692579774097785845481827371267725434135051945593642122708324368016318433513249033937347787546119192914967267313866062583872328030578503155450948542262884588023438524380648300712960750984477342866380088155992746750478657350640876793211301128860804899594685942016515688451988248774267347021981067597480324472815758127363182497776251993761019895163876338267102746682044318220815491319011711704336998869270232758027378925893922182126981576973296454603927602413251632826171247890827790617607166072223220209626220570756406982762400568294235082111094360148813707028069907694799801903623802274859065631981053520126467942965659694023702458995963992546721240944108109393471096853053676035937415290032359201514623210414742792275478143308433649354973970425029525339069096016947851512690849387761248434755553348451209115426692371418504102666164045125589622188264669282060656162413905245591616214089809804688061503346106087756060499790411276383385788359584463453683730651284746349576637878140376454016836744881074752355096066296678490842656347631853130616409037157664918670749187610024129154218769289686285290549628847793486910396542168313669766079966553504596600106612775428151106069322520425753871525186179014283336604949591614379823987798957512576884271257302039366389449683558484219730788782856680337559787787874373434991347651386016551614867330394370033498390302539260025534788921882318331448452993573472554970858825337762948669832512223825969862127151545559494714660984466484130003601427089392863898423173472192507235229506756519832623297170118821804524956239795412792713851730120516787282636479404832739262034020029273366589736899479406636471153324314886653910768502048599148905966919395524512783434265030123841262456554024050164198380505242132802026777550847386251217381147241053428043933486339620929951571957536628779657585728241183958612182277168227360457974798826750068102293673964048462689859353909362741985899089783856974949207525033631451913880615084341352487240183728159766267012155863003250107668271935317335753699108028875925112088345388864654127363024462503758272213254381913738302551558586798095415402359165180802730431638051063025892676668311061675403782764059244565862635420213680195120719642234703932726032677213331543931556141265614000893778584395464325841577546736335887101808641837151716014998192008919237920935410795979503988856837177750576977695529443378054533820938837024645891861397786437091079619074301225074603625100812289016661236001415829151355544131233459288477768473346149649275443937821427100566155595349151005631537412109380818267675267494991022491094982283083383006890124996596948668514884973107065999224536751064867921790630952906337786001535856045340302309622084272708922905977690897562920229759644850754378639648844565469681376233290893884227530911531315030504872822163627760282751255080903558929732614847399545079877876136991096885973806229565431587229814278468433477591515979061036878990294682156046649969871616487573171876666096278993558453231634834157242865842935884855402905891607148202083115645863837949854126588983678174660693837955979664768683706597371139647008413109492353464244010758196859246579421289963011928104236679930604251900832188033041446058627809849770367569694474369647867052713399378996041510133997604815342031288255120868804423983923435714125804619109473778084492771602383766422371718460898459831547356447675663435083549025136032804421079028390400802075934371824485110522162239439540120159248072534498866130168975629336476358272705899645486965118861049218565524226747486745655864304935071325371956476821198705915723983115838089466101122903654086687314173989712042464513931427441971309457303513477201957018881132707826826453245556132067710700718737783248896798207686905543395579964786360562098606041199993929255310205800135609325876752363815959560367765153508046956013018815663458307403113339080532190979130542323521057866997071754146760249326592196472960295978978350516548329506617433029621276441298306362450722694378477818658823435836285550746575412858731987640481947052467585192477579027897757248755097883744743465136353999512176806311898940915400450423145898003022727876585737616927166868804456502704310154708261356643780993967143943778602307238628377407082311841736356810240542115091003845256011723888811602303894861433088893787761047450852021362225449051626846342223232973421688898746392894309859868784907317745804836310507997841861306728039688765028612370147590967303626151636106057711459761756298861936530320516781718049632818196311235921192588059155478540532307023647269539596794800402769421413508657819966272176778853863706850437352659823139073457978218996766410278653425576935548046187102398973306898482703286648668230551524422586902879031921261517889205379121768032180515799002959978798919967304662478226386010043741996306833085398887079785948664875441694715428378871596001992618240068122465779634768882791652706616678543869343722374503031217099646569742262515637514388962702137192434396381755324902106769705843420025417583963997672340077800961834848350310469475396012918279712483849733665479737476196690416562039491343817846568990358691575220039380443935033336317301089386612865052335064775044259548183956706867327988498827368764733950800572452683293292670235093544527285412996097092600093481819873448544556925115750425049917275845052732653327630920204452402253016915959800302756515061749236060585192200874008264484290223374965099891864289686531622608387754876975466014914271977377180459148857086310521526159571396216534310504707940444503751853755531548882480237128384649671767697202318835720617702938646245899017756792089992954105342848095930447750594777363813837740487176917141480359769404038377587307960851621675479499653856928065284304130731181879012164622202633992511924395512551953514982593495376879504438437253300479267627535771198303637359015868993236981542761807011293007300542145589451765326946172263051920373615430743415474324742157942708898792519698840925806877112905213135524837391009892089819751857702559228024848327059983409924638541270813375659585026511704418893241396696534063108150150131497563350871664573230723504444665035251808708989037949567194802255570832379770923305758209063092017984155334424590028846739519247253051062872046246254072212332343124760726856915396227295096177109096717831927554242021370616760456746342425987775596301157968843238060825585948278846993663589588237312098029740873882133839188383687072181050741031154651946006280701438969832890227027720408637724664720982796938554833020577705601491277452775462599278123387156309092138400389734808171073535132915284676257514548174224863070630329991843883202629446890614503860675791456011980145879279935828317022958795383359971388639269786439005849070374344071908498728013115168810006089878722067101272012953142278028943915143624018742368930498754782195994026072040481076268937350049265191232513275476737990548901363959208565848661043587515986438498115239381250796269072855053372564717557348336658974474649264345799831679439563444195643206701325603161436741670612475976080544282925435412048291651517331153358362070452440872179795815917166601052187307927288336989574997081593230670042040690684110851113767218815619802540221460777777695740756331987101541324881507861582236138521235761440246876916918543298063858539530012701125441434423519420275280710034004050457923761742906498517026850112432526442285178721439844654770701625692619893693921350059401101708839126202449022810322393865200790439605477042156626053392696618925463791192115672538908062935958001352145661441011693561791100646658006899946939334002452699447857733335593003166821764404590540552940053556975052187587160347223836169603796239543951643974115058453455260167184976411838461755364651900476812248631841758713601226642297092893820607577425235373422715994229496601129398233554723770522997110074219467964603045754095535534826157545827027311376840654227213272161403198159015142490086116841993355016438509939558827237170799508483771572047681171982164500254919580508983260915243331491564245649482708511745851667619833840855938305407555041511625385360469078887916203282238812101985751416069517042055579664214078267534126746941252306733523460464531200021360959733418003477389401138475914709506560611730681970882707840650412629712639293005236809345809886054781865441444789831752108012457338631583513627896468239669421715819100720756191601581095162506285076933364343431761597526901908426504296208997629341241526819843698528633866435567289933168157265812665889782126476633183259263772428101276626929881644304795543878812984709507013144168811962558985296854074437614040156932829062649594309672719029582370656250711950458026970990586419384670011335221144265504029899482158104477556401450840926531170791446492862636760886790081455207122004217668189146003588117126466268931932018212117833913162558781680113235767009679646873537338969144943188224098175957741967861026356672842702787181036788677800913963579482583928101196949283547766064599718748074758817770300222954525861962591254513566958414289308207997692226156857426892925229960659641145768981617150389359668701151922310820368415504602777402708890970042789465817433247363181782169974432363799385683320947925077070943529125329141046771548337542543437774953785346990649564290296228786860671545100437789385742757075446557595915261400612302015572114119115205949807785902097312195094477727119388173919698870582681320978689774101014239071432676318436803208408367594403114282542768380482836930634127645135459301042397663199819799548494136286372724590643952935232369314520590879125013492923315400991737544825312900004253109063329638383924443872317308779045802374812495797931949726736305713209065395932958836709612511089810586062790886708176760758468353627803497977587546084082864978813363348218211860533143422555802402318971115517745637461131590088562151857057595122695430242019442332996172914787123531719858170738919378910598831834488919496255713590259490909303627587930375355480561898145490454701342526653592210340671602853713389874750985602985939006795454996746726407008594177246829701688876259998224983959066735726335355876628427463393020514333136189631115629831117830704262243509943249312498916879047293699086320689799510868562184862938892587971508065144599147970823845750054536684582766727889961890336290312772636238906706131549961119095199397145607774199148942361967633928852379927784926534261432960614455615918311715642262548483523152604884166544565771207971067368786606674782232106390033557708862859440910429804889359170834369872441656443418622940206485365610640009873437376059730913240699508118825798982546649736942394985491737356312746273680368012224377807640701187354180787548518225529832784783866772257201020809532841055104888391954315800559722212894805663328334723820063287522884855812505919708878331554984404174335309797908327629279458016347227275166069894158586798518357745490602670254030785960342869319397609010353532965577841818308357905986128073939795722030762634340542054106942461897650609978926456696533033203249027082742490532388753328999931583521151150769558380146009055187801841360191230154756858577131631304412574736588241062025355262291065740315638817998666263039792079801950221728969152221189818411594914569680390137916651149441859831507789600820762601927250337642937027926594877987832235356308532373899214422325550206515121399185745587712674316936651028650144998451789304563921905654226241905580807792794071842516077523271025495345684657649105795372889187228691565972624384291110701870862492445758275834227552980348495432581643395599257222955333899802648019999556097951042717633831079554719652773552230630137233548418084277018597647070588443789341228675838654614143799854729362277880998020787024578659834242909986613215388348268341326260022058531075860256299066882458322358133441307342134797185376847741894121835017891118391375062958812633590458852076229762041957161440019137590022141598686538887386126913720092391570972050759991376399336951919089189778595438018804697283359669221233340262353760935738130525300475740677829826893284755594854265169706566811128481692146800769766647189600759694025854474222002297384156470289655629819342407274964697299749397813040132480957297356147044750734092950068839467714847891311037255088181869386353492656393462075443282213855178055033884410220499567644206824421377671915956042735336272070420741726811675056538434973956166954888425879811864759959644872386222336480405108200617773007313863200036501148099908531565204978349100394591776492236387944972375405008777335489024641826294157446396994607445165804393503114535223529985000114516263919600536434467997178513244107320709967046560728680161548687661239319585236374736706706142988964041196171598920270618605730720489729169908149829044727500465819667904938689325394874819139529649779078274877560132063851476318755657579573504127786032549431922002919793912649650160878427857809964003595183773474386389679052836684410003127356361308038972911532643982744323687694555149078044536858087307161667631582501457961098951958429169476207106575506969318039575627276583474316698325801178969032158671263326436070023498008076422292193439117463648582124560631314470973344861599256754634238878923498693519899074401539577822722094877265856249983566207580941667842508282770657122149991439861801888729050748765478478170412738794088167263236363509160526578549459783688691292502930563555842734983585044883869358965437070915233283446739801052907717738045890821903090097468833214485584559888857941645258495022907447031859127084474372448184777675535981660382260799462124865757353430725993575174765378143335474010359599573422015418594268753228858348492752289530272828339187928560352203195302597551829103226456592729637113008369996236518167625201581068235767566011656333113471230733765903201994453205565683252736541600762848449836296469470530263695727740550697077964701430125253199851269463872854072817103208806849828067297500593032951687499334730190610982409382753098425808874520144407267641996119671741147057035946125323067932706938944506677523508565747428129174172507826754024164455115397228851430525615105420319979434112005233314060628961417652302041736440218551926639883520987448344276272520875506648156524057693649162386502644116538017919110989675285959100113558083004429151643587800980199016625606933086110531483226137119752798870584247981533434486571087488326466285695773829083159788169221132641572748199080000639309707890429722715569818413828007510734145910860149169757034422159256335778444587920203394613765817500468836894169101210192641103217765638343985135246881758524424869963919542640290869910911115396365348444046239399569424908861721425713178126222554156101118657354230737789905695395967955287941927832431260988068317125415092410084873636200370568573235481193453339900590465041046458120665345348275092269976574488653935826838910888961925836647229942884969827852182172039769640510875246111406441577394258592263907274976965512271992732648656423701782468313729090777200288292207475126036257657660647070911422594946925399432132296045031680625252500316581273491096367746837849007585717985779957645550539695316944302644652314845606442530322277640875039675798216029206212348369766920151006608727384845310476585181845169590042401118733079905342189369278684326992467489882346520960569261915022002086607522213058594270336545679517154147898883372495873037586203732320541948243087394227276760766650155581665319667665345855766670174581411869482432915294673348382211286704535968646296156624495669544059450160821997919430528983404613954886634515814124657421961284428579192251203681663911236568581691639011608804936153541839044517893997285914226091484218261724629670081675102482076440369021382310727192473971987049815671664613288443654174539703699690259870286390673689929985531537184075056374886806188543679102281709296274934652111743785888248631844006503962928403286005550051496237104740936639309278396513027964286281608497999478840244012097997660438035228004307780161095487033223526889203751220373544930101932831603117332712360200276789544143314357138597258396035546395030169360297716964524883660766286926407272177257477398342919280986574549873864168866751814670877599702514768325729356774110326130118845873698663990757932124435235869364689088822558797584250083814035423750735554794568372916830492410257675871193937697819822835109511930821991664959027315854227832143957886128584010112230977338140593323869098050255230990545110461085035399514191834509454345337149769971467893699221012992246511479423340057438878108066975897365944702910941972622907706155741776999017918212831063555885443717467301047106960800002542372353851279936295224680599200256583124456130961596051681460334366359644507420636171385742168638539842016640322589278029145199546201687277311321314711982234366024537321972996333935274236273449126755859611870522767599482907900899138842194109863158822380533573537582008804595020303193965247108804890084953742716202047225933465333913057017286637831258546107363041914220542917015166005471621295272183652723610022772345518435724515444463423320070529112367674308274128171962786686959291154377070803361801403281038765611916392134745491147349929098343961896520795912948923882279729709239774433571712450435306163013261709773132919814071539692029935642005370456868978014133719911424942438798641488369576690629482639787899192252381447715317704017462148072451380888188555179840247528179407866615543980087022430950558604011392240007991963317617551745815756834906871094221063783341733054751608751582854827976930181936393416225755612780266267186615808195237530496639131613076523643200659468562140465564261380574673724499135472539719050182109094883372677363460136896712675479038020246558616588560929833019500619100300035953258946263452979664542970262725949710388957018835510088422231234050402759252417692097307614449543016785357494691809190788869243330802581465152050982958115198766247760955093299767381115032347382668616012033950767137108229518364321259707635144639847705080351224985745328225492376197983808716645032515934356623142156621009278062564468927759183896422479401132796574819399405522343568704240102513251304376887096258989974722961355589584872542621425607578614298880104706094043124298226587545545226457426198163779880229122827648084344183271519412151970966124711172977103875376925404368702174649147986648869435332895635439475688959063139007952534512585719089040574305304377283594268331686329589625106598743827551943040326082740151555491862750173045320562082368890162441659783919874408381729925804002589762662241455485047747085412610923172548875076919666460892828953830926701808626079835936969506647864610726433063080495834127560287962261264160622800248965906710066641285815540887882375614901888043521710530347865802467508628222985067711248582320811195412615253771595709600537452151667441304101404003546128640030966861913665749400850484719772608245042873396371608215977724726893753849662958432096007813562780611914182510888749464132785922987178171192131747591980545941646585100753815104935091494758523530749506255570690274910193410040079651724989683677753407467273092301403081576901659823266800649011162891189633926327884328150391764214388099478381028873216710134542084814324022793976435327501898800106997570500038550567731796730109757505937849981777455737998319520186234900419329873404165117925622742645209683530078407803942185173614856641756958077304220057250528654454812719581203742839529279641544998033571354822445232756007877281685350465905820326121299609116807623159041058818995669676335844999525324835494027630374041486309119002188522081553885622353002004706665572855754514297953437907526540929156560233174870881901917339199705500375328082103671705054858450735366818112227508863193404618258048292205467712903324523280527124809498983762750049194583032662201013447872743924185558229158086778344791341780569580877562447339989213010715342130154273508186295923960885609760645598768168164340719324213476507764884105330078958856456492269897425514383773265285115010375908980169761981739794650654423825038086413609966750684890154560246028313451449602242893454951607105660464208663510234680247205516977281210522623790836202142668534984995496225266013955523971908928955629660356026476576917764287192482176895644033006183166001670015927633618473141163635039322108413646299717310525766660753633874647260793901558921708752081749843680785002293297558168160226707992309149098444824668252726348151669205955946839663900957486494954340061263811229801470471815647737082229445457690804105217611273497167473389200754863465129389055422664658183289283501919208392695543390705868080187252333743892816546355114766563481976180022575848683557290627008674664780921019426363136712102858285143663453842206317760495183627695197727173830849771986076745052011734527874983609528322816849236088728591067811630588190136271446485943435494877208319311112799930753781993110409702656816464784070650767870309119735807615063732944211555621251951567973604083886321848486361736264229085543896651898161209761780284566617278298218927125631300639611291322438339200634604831322760988771885019044378037379101109494151436440849940302980636363147420834298485893352748416051470631958068388563127709540905076237703072196430949844819764001721999477619965005882341587970642368415160497289038896230674163464354208300771006614149431873877548097274138698402309664066401557362509206638201793417304803806165460870033641991640539353550536438694461525608991821861339494919880349211502676428111942209439303563449623846216210499971405063361592699164858420648742151168318427848973964929565943577304734700161075288837148266505711620679507211138912086824968404446453767444000274036814718600645242767398140816401253415549217378907046208212274723722026617581888849653957402592028345599103208916574160772393279381669330453242533718356384870246421528654804021991697863445647129149510812810202660070160773586700432392534956224604223261101799059385437201690532929290494542701179686871586200089271831820691459260541851171370068894332529496962095789179757030097181288638726010296521499114891608737145127704307980724121672548315582908537962931871664505631874053787654997380071431705686903028048754688077475812197830525339430517024261402871490798865671167997664828200738114331516801630542258804745639581873112147558280605711166307690275292875153265336121107532072906650839485900724026657339721024428626779587080582772270353905820484443306184571060805865153785007342657295311372213076482188342178701191136862892164289316743699692091063787272311280587623322823201700060102942913153569718280038049101910288820714142182824588911782821377402072547576065886338303113640875922326764692419470035947656243975806487395462776079635294010881642059485603268308444767598880172242502458070191356405317647428899744254668218593973793671368260482613025620410055987514390821964326470518091688974041191881992643614218754201014051487483098687199667306939247530977390106760841530965483560830869517777363414395192103129621360854983529539201065068029487969369065408310710320891892937183521980784934891755000466316983506471212639541796747649944888760538891582673618185726935213419284944572754065162844132926924078819536566359044429869134053026397523860078349283145364178760261042894342945911361166858717991250363328933187962185116820159526578959917835279074336912683169601482433548950406032058685468487896827525883244489181150104668366188487460516683716010053069011356104719608895425530706997477583772918376281232514715909009961200922473795121916446429936749383846318593607236167491202435620532815315832791910367133658912709735286609445660191522937795658790524694814470141321560019918048431341883468881034391959507685225276995308637528579437382640079236726227195698791112406106711227507441099623418957023799218237426943020671036144691149579567721484046943220811704053675678603983058520074465615986394914000912619243086875774193775667990588709549061327403638248297107337880105480399169861690057010618990915053336954045369568123793994414121677275606215309264479874193353526364684308453369278044063901247213689747759552695738814712937590886263537934400730691347079654682816395532413218708610671330602300634021976046314727330257709201183024748604837536283669856213038149243068277062664759634397842934952943258550396365309403975246234318200779816709734370088746401163334803955193044630220505422409672061483952545776608126769240106417922427245251712271351636013107653473505909053215041095155822113463273112007074281861196779346967023509008691284745292578942928854616270325676619208945836987901975329517662766474813202062432553388178251177430046003246352685823903368486656702606160952392728402778480355058370073784625012364435019410388220445696501694431947934971409232417685704087264784598109171966593468363407937865814723189811759238951594247595748750012866459286138980178990041470256485173372416863084436204471704530589935105510816261072047416684159173761892845983206128930370861963499867840202132875858227324680505549295778407087976686365194395048102261992408685857046274472755658511338859763329698647034272285782209203759135154498068190660968115729119984989159978828080980842081325527170592704170410827412614056715896544815140309013604119817122669542233315336239783450083167072427808269840445558587631532413974995597304499263242052627379967739368320244529858920250365667646495224240288102267825373671095658079500151688687108796331362136070869836247333204480394596968507863082617327222321075469673616297341483940236158370014195379352094175401964708934983797745473187699813524689041077872934425451184772124167951174679637404850432222366742565090939513546614880760978396211474060107667688739267426391374809489320823583374827885194781240598640498510747822226909715130078247811559809100622517612338177009706492997834835782245944868386908753335191027750613396646589347684221237695175031248446685367032820494527673246451219024692972271394470620002467663279286227899378479868849566475487352867315504038110144524810362960047516280323620957798302987639873433606145826537566703732890888177079333849562231093944378512359838312537246424657122388710653240384783099401321435059552410616564011285371297167397248159465663812523664379857985296664541587768631670693515889193938964526118044625827631236744577562247138012692960439228467916111235265207445599904054358309565825248499449602189908219234328421107059189645398539060212142282690896554623468421821838397475244028548508113300084475047829757518009329381691271428918804404376087643346068544889808904011372603635657026561133470722652644469221046077706096823781377135879026263985892814965684577742013358237659446281895769135401966781437066656548149083822149145539092456655302233700815353865688016391612852328783509983642679635783237182929948059667032526421560949710829966974921157318682802732321461763447746834171999834260692233891753136263160534055292382055613251018295761481426515751979815967859960019581073183666541035664807891444963471663658969645549910186020490673311865631048167250703244159144007319037400674818126722573693198507125805258441832028837243832739089700865126633872668178018722277551426048002679178977995614474311577137945092623625325617160542629695657885095907358098983010801619611490700613883244980530934624610033572186000185784801753060617347959305792822801348935804793507635097796439864439175894562232376303862621583235642552276546360196865319994532129533477868967428570369260968231761193611118364781175950929735092082600087910913919748478971053758092363415601926797399367861795049570512282754508800308142971147565479907659640526278792901084279363230169302882777563236135252894326332799054229138391521515866889189107718784945653481350209898620463793593097157361669683693296250840200973765532735567394431988540338255733733949181587463303691614515768262071827418604300503204740995714152229644300224947269809147008060805932497097753077730754812059435998605386065197361142876210452201387097232263841115972234176771144962712266883617066797954222625679536440395267891805139885899140772206004355087952972822439781476414628668014942667654103457171431465738513337513356421324279241253699555601746401958677024051929469043936569198680861923868895094837120533086030932060310476864342297796028592134015457578644272155870720709394125679256057672421232396851586671669255796076400179619139561872034313160176827196684919283181508694453173268892736710508613716822670618766003928872120979558623076875390449445362164981549048006885551125530259246190577526403104275646327440577048948927887250014682483552399264518773931061898671066674225658034238807086819654687571048518958568124262017015520785847891457174839378935367384277451521062717658622348582576127942397492498087931571658291215919906316614977911109024065470464794601547061295232856696339546492767956953586677617978706669296470096961773696055665940876522943723746373977827550728388386172621723891372003051743183568447815333664490368352723740508478463514719413719726585404743202337138571620310663324589173607923200826302445932068208757370723306803598695857831983155556427154449023674776949029412089458079521276585388108007244654365506729027570078305930280550623662185410702179795846289883450270658646522450178029739035465180699385405495010566320326879023452549741029703311381681985084676928863643900245847531577589099836282193089693111408598648808753121153881139154592871861286444300015867090939813050890299307844781120822461882635483648562772305093098687408362850354912641945349382302129545249094510988431004765771672422710980679043943245609787412122036819702848502450254937821668073088952547132695919563339849212541279939907652851943416046433399582473048072095043166564473580623440467699628704604629493639267834583078537637990397329303512249780175889554260644605288525736751455450729482867820722628441639217789582695811016645890352533194357580232689086970396739826967036000771683039700588230732831841172081249705190494276830832392453144258707231037195803079851786421062335470256444162653329115036110058748375317414228107024708038559649183561172490503874921209561757694648594728965654300666881596716545672601518928272429399882146963289093332583537966518690524200084182489446180158824091300811102637495324558689198530881611446289034152012234750547245916295459151922457482192334701412424862473121480921444624911571274475945220052291272828290885167157619312119429182621496384206327351522122736196734812669362956509965047852883458706337785295505868896834860217809494842009398264884728247662765185216254271475815672161022033280319662195162803001018933127957654095241456829674627798834778831924714039751440627958133286899714732145870806322106866681404379119401135053400173271539340684355469291019758064499748261682284411994488776476671144463047514530486543100369375615464148147778720875288898568395963859418682009327374028295443333123627243342236656740439785377870292963346200642772183590067805942343221072933727909593325153572588264697721756267298754333281559307194882947454762454634621649057300704763234017944524396095739318571522475385480087889985246512771303814527290680473447907583149077359331441397353340891795092589922571581604158132691224255183528262877085550051006972786941808919382360639765880152944679143373526548872982741749991173967212619885721736770508467351650304483256341497649211166260020177085196201838087025765911101110626496498413204270454129767827600401975129645090033201361265354003228725663989340426282197894384755543926854719510668495799264290417474585184638562671808485247491453624963194793220854095728526141792725552007789580806264865178092450471889657114934006880844767118351996359175235652399164710504640199611788656763761638617577757339173666313022534079924225813043860039117681524856815958666073422850475296864866239556367997804178127325755733446561497015966980922533807213583193374239281818732348907510369375120056979233219353936505035818712584022064593549106710113490274788387091432163476501126096617673500767652011082310388607179600272939698757044357729911311349186836436928232008229020797002148822678935189615704533846614983802590480126063345401011535820577162916706283477487797824379980368268580264086145929641839005621793137089021084320266340857930505932219378723103641715053988203075267584290430603739317783064848278055026637807537991596204050888005438782220512055886000101066744668497703832503094384009366584566637393440810349449721397501126429099822948033944687998684931748049653229952977331303091887994149900026666542455727128533069705857167048478949129118873382360207756252048383606384305404271149383267045569256164809677133541450609776767615588866070147120562187693169809772202855361610941623964335867261320318203763727670682300909239466317447999321669884801567173862911128525956347947893146315961964970650263271951955761052705505452359585198439275442724382537974688721617666960110346245421821902117028638094584336004494732887229509624581884670615500497737023853214859405504989081755954072588526992682637076290269712855915221771158431559427340610954928086429255553297031557948978022828215923329527517367469053361001431383066958664556702891238103705113700573208399444339890741044811720552398114260486107364436821155181561154456329499978136235078644640290396132637478259920534485751880356444211077319276396788616980110029592099905698439113259812325422434240993992988301819037423593860362497524228495329305755941362476074608377251766370153324037246748516427299829291560499322269463104397934619589864986393244842543934666154043860865623891822794054742177138838091995975968450811988938573536187806326409338434047997844187116720616094054439068947665451283843663709031520738662823405113057126200892402975241583971664351910054395153016254612949161037597409402216660542001315851333585085129913839258708136687621562560975360964631174355256110144629819587353079725731677127516868071942410895958527139707500750093721500737658560938360087807239963550933205654934358399610754942581831105855120036322811235134320993703266345827967412808837085715176675287405199331350756986041177359610663507328959980180312747239227394638880139616994522402097955998361760609901690254965809550735429090535346619643774506929850051018672064330850646276845809448389722197469028353467176849257040532458031643826596923602536791619887191898879830844634536603919260611547461658672322972597799472945190209282856679885849100724398845806296285284898406449189913712289918967942806396433835853091101900993735874411221517143603399756526280245734913133867222096389956219416365232538963462338402593115016352880969863651182382525615058636685386942438903586842089040113168458647414319634173523285787425376926168253990550083023476434743366449863239796787084730236993963243244062497720224314956289803846338810300045457724661655034944639405817327205611914729358024946361153733837944141861171722173622553058075562560950796795350216888817667843340269543989052372732545151569317027055700322313726821238390290802083013691998847764751653594826797006163592505979721420679927913505030236345016612061124314605548498502899843834455759086122716349784835467315364170928423423432983220442023745217081648190287906525761916213420284163903581042739634348701357756199429251396101328924783261224922096085781162474807733784125094605252202856566253915792029577742450995417431405295632983236489665514661578018082188210987959329231889053653786037879102962022631216894412606163077010235996290030378904819815110094172074944214899224181350550897352060492346875778489531288580091938637184174557254442842078457880235461958154017902577930375313964810901672253578511994362477453265198379391494921016188613849149182063097073083556935713986371404796819841491683805889356714270574483264688962571202968157580996972747914893234114806281441553642446174160925044569684878566168014126584521891072838309871832696372477679470657329116858507018318147440379807723658820154794346178607547242109109481963918381672088635042751071821483543001282260270898216156659859997253946558090553643882931122716100475700447046018258213067628207432806422062672101469787086378602652744392063827169781595373528001849558539309233790995790623580926549277968466088973226799804924764317200397017712785493592385081828034465738187369603730766417075793616485847086711774251922007915550475341729366837888968929450722745038595806842693243415891902588493821971691527764061411509489467460153524885038866072178211840187106126961810846008965863264534231572318189384372975026822630825011443177761188859960040746444192057073311004428056846885176021199234680863797658886943524252304547615750447199473707063616405087837276177761437648054084582354105294425536839508938978084465946454881127418233933043783478503743888192958945168092748243005490733142058700867793279198589943363369841427672246048396020735691000435979812075285238502796360840888042864443528457879420138515512420267210634879032285203509311754309541184304968285036809821792896018691958288714742361525671438515824856329250990201354772450228333409192079923048598192230533069272871765758243929458282165904378892737756619915211945638257309383310441565729343565845240431002732173133915113537815946266941047488958901244518677348074780603379609457104549242368196103299317757112099221829951622441321528999769341561674964501165006051737401044041072679640512093006691850055263956984158798939690296920907324149705105755927970254459913103606898037366739734322805131835041137026027108819878328859366227582707468733762907879853465108021513426766099845305808791185226718196238928962236247718364335424390205740151559645363624056006434080747347854061265460311602171398257777237012884170543124728502897348205638923375936660883288407249492685853087099076574660908094381970681328553550832629400985986267568731332318599792660898957495207039336341284674865353112167476326187993157768921461189032108088379451030488123400972268231306139415994571463368936597905394577598356201008671890842323259990029109837624471801881792238370792906036508388811995590716012316645114759418181734956554897789496217936708087757982740383935077985893696516762082559559161680788336659848529889042862732283994201831632625548220347030766616819122442654696878205445650901736710504895015470376660154884403256603999595419532005460922775162252097256377635282674059325259620231566881765480182890645282550340485652366986371132526445878706822514804999911044602289033012939190496796951776675657528407541994032783862569721988833333849585245585591993856035652639260507152436305433510015705632192676838253633688382761236244952659009861285267248341075806298261415774862974713692666504606521166377274093741754603047623022348138766294445219693296832005466738982742505275425825291590567018044906051232393887098330070022409261857336038786734437475918441762627022840118894404887722235048798530581821964467716174799214578828651360565068808794973955337134533398484803251053214749037399765965065230581991100617873575332041508564007165666726676572571620425011498967004557373062550461801949124321916790812200733233019544891950276685857736519024815754234318385086520151958540200776426630980326501679624947759624958064011441268519104426222176244379090326019331758837913324798133395158520585633315495894401052290749676911149879218309313924892551049061171535910194097148151091289808910742988617856455985176783111874518100842926995578270117299730369938723816776030457542887673964641597859223871650096690777618575888943256797538762659621963750395668781354255829422361840610040332234003899968037157409407351838399484134774633445241806207701602341586290827359090802674275681371635442040907402810678654766027771730597749412755914214164851869895082815854105943670484317420247989249825269310134331463118684145587917442093526838078421377766278532971553339144717642559893973645008030960044497467336755891651419294662106105589848170409477116157986774910359011368532213472961281122804703045370743958639503966190782768752187336575574464037556532029594917716831624005200067832077788540700089334575318591753126336570504023696069245289975006138790650678591959693549161571350072106573919914002892163752156079714906514620724066720176958725518345908496797765720717449042686943693991553050110503099379652266604014550070590438920628583149003368017866474312133516497679576218725900248108736726288086141693399791296139327329827963867644758043245346940887520635610486522032574633477917785628907151916000032072019995565790396780278370158008404348865842570131145314135868156475538698374375351498724097981792053826480410917050325514640717503410586824494571090725347783062712549284635961210403994446746976047607588267412901473546733241019180395490854284955031513058987648220190102565904801067113870667654048765125948867075370932714696596357287680797288666958378532835040330330402695303917296235490325970296197421849870265681884575796168665514346573205681684924052931932800595956425256953999423428900379223898194072791238952885356740548764437282342754028073689477602060509699030256455483962417837221798391859425159401923379948284650604947044429341396982112313754260506686705803306692581787638659746238621778497942702904734077278521193203378980983928619394459649455381907144565778018233524273488386960466363767699781914855561915803598602043322879919346139719634225798642387644891711495170072428009333395224141056246357082976662743629281400552099589162859933894056585076150285765465553385664401079693555491428943264684743243977954453569497128490411587847385933615790657147758283344723173956179136252769362647098636678446767318683874755534343558776042890417389973272803416826210737860026799003585452463304203912918407694970898768846862122273083979483434558579543441106647879589022118732330057025813800981838446525210874351046966392322278061813289848072361282390360777362800605278741020963586629978122463255755796825169091944352819022328328209834984646351998466496460814901446154716328455831766945388327348242629565941983204710153966935727501977910588413779949516979627976476557201051662695421789080702850352544099041172388097913400660817825652912651714182021895355174965636075971014295203668074363106279913117264137043959604167421563163280669710992497539789285214404826131272946999912752260786601863318359588998807678504121091710131139430628185353076611078564753142706705958797682269921885232994853974402655136763760983436990690220583760558656038601612883338715882212108971319734423461612628465146322715708830797864404335993648957275501858385326510956821543158474737955369212033590792390296871187959592308459596505306687454211723645473022631912135587588376065506133934515779524558605646606314054026306380607942231702757085943979980816797234113052624630767585494268200157091443202273822849734125537348914695429266393314197851549017929901731070578931162596102084696924606333303385412022635594335962987741277884072755806398731305134964030428975776196297403278160644426827663672034939985465263479103426621083275203265209029019326117393034747114073636101479394822765096795968406212921724090177997786451942089920519840200659240983241858495825388042327367389413411606869239938845227665628535410679116400337075044038651165733193642854857844311932489799419856251372718312532610721364929811358100048334224053295106574430078468971648543116596005665446352126892617188330572685994562207215180611528488621922779103068353734728790386685899131909335227239483667186254344839611311970588049425228548713018700577173575979963752583720288552410581498972075976194151889310719169634292505953685740254056421047299645561070221061016271979697711443711908559629424395687987548683120606381730897269195363817658174637412459578335586828908622258659690555622197292181324224240499978720536901048096809572198458010827154932073780769714957578411485699040429517577365901730363452991728825357014882957363579901827051003291241075518052802842499291352862112912308030775905377317333239811368631651041377740458743607335144531591460414892794131411473578844343963414785391939737839738360284123132608454352846476405910553896487089094091095663379241283305792920839356041089444876035776728973938522052754294065495591122793728519401941047844253993407768997864566120166336596389882678684869572952429414346132870849593609082302102899197372396101027615313953115096226220162329767243306691155256478165778960292631245500321773707720352155964039459529333266187706608840861795244182986267357981782350562452350013953732001549242013838045851412575215976201370004246754439738340266190562041504008138614393884006549093294505883035477759938899899736810683387718171514990376238031391760896324652842709221391595035266815247610225925453466747315357439546810310872186000471705463785843373920689874175605486285223710959904714803440677707377139095022932652226652841647981943757749554420750964164523470626254812071018920090437319800044236469040296429282311397276807299629192477039094176092060442169204531779160501109183107617777916517533964570890717480097528743823071638413738136659765457724815923328348263781578349501591711030777729695463804285371787959421648870059127652912458949112609608928606108921445185479406087661168343892918150510705926254128993355970801544053807723894979471229891660606530223795144279158151055624350499110516793695546927934555598595494564684427617658534314309262308929542720422847529735308120486459478114192758026003778449015455999553575229707771759955210518539875591926911559553947757409050055055162980869705315873665890779823538115942593257886658923259996701138688965273781383153121855948240526562972235533172005535633097093878462183796866235917645915914745589740067462235406665570057384609685077631605568509129529822673239321894682171857425300653010116869164225493925488147697986680400709468940526544603636084743493001590485387663672304696731863704229645346433837977306156912365898137453427912834077053980004698337346219179577560527287752006506771119376356832446213513864378224984970742358102943327228252657752539907292526787494920929216787664970898409967522243762083828006158158584482479156222072226564568514548115758290442119206165138344933340169336123558255114437685940038195491193761593129686314393026423814293722872296910810136849595609861192833570066203990166512510609483475799936474633041587984129162819717237238803834768468559916019046255250407088763735865417550815985696771089609865264190547114957373138516529331747991472200995721260458606872977762324511607456438979619174460638330760059363404641214626032304933102319632984252998971668075722139384202852312698001685519272045113009915659753582566485589995727836824560198002658848993876047380959770609572938840976904950762335865512383888637744810261435298436321583275465018614399651541295141615538609148860719839274694442235797449260759944279978274436075694962256688612000638530137394127936454970912800063478912120210769079206784916811688415965388074344643970606540576674610663974929001204609561623716493563238738878078189507025051526179502810386977099304388699362411487635604098778971922265107272209087896880462933133644802333431016659500212005248309638380713795038891405397286091788738821009102716046203157459823558434499394414874535501691488667044279872174353401534230093730754721639211941511815587989199013479613405721061257456108746586159493677917880329427761924350394696685154651023215910746947821388570912975671281861532960996008255566596162796361441485708974495750763163554675891874222916443184622274709522942760193632840510051869166819682777567046652563212945304881266589501965052225613119582375768362674096878795942037434520194052233210702572302913969741218801002898783550113297861363270205880546515515276572189659522461705035359340362436515347785772383601183867048847353586968688519046928121867148255387205744256555611321422693436073473022684086872971780362314151289505629153533209624227475865338062960377210862912972359674708483722245817183256187816360441032242675103152267973076463035627131479540923551126551341159195845258648282154929183273507019956108609151553639479055958469525959861432867705309654603519672028968686741259311751269843944108124932295076445591179989714827102493175546248647066868702486046794990870771499994356967154151631321514931813793888477350993425287453200926211760741628742583314295404570756074613897391675312070968522460671589766969984997391194294960111709712349904027858925303745427222713630312209005124390013705136615239846012669671456871655801781747559536118043134488123867999898462050196971593049981871315084444111105085314316245348108777113458427601847181829970081928006550980452131114063241071813418862237672974577699716779096026809990674086289302964472970960235095857245897844604586850526751464422365341647950836321980547280283490993720741930918781916163211569906831844697719355773922635800117136420390242462311197735478572775817939630082125538856013036455750913313878927213876364478916769543392982160788441770395317479834732985097499241471342179389025048366218228820931851657634500713208889243456755067692670731694626577929930915372321149273298458268474551067471530468376544001894402010400375490045119898447653387998898826123863028302481495061865053811759067218381965139889039003762790646236117279494531561400188034615041378895192860317224269497634130764076808101629960744792080628643700745309976943747733720640935645405486983085511117562828603848147141696503781714013187244121882602187712069223946487638731908742699304463305936384281687932971465791038905699262778168914058847320077562320701318503263206368877366352725001539019187761246702418735041972621781497459442201012812638583996681151201537361758265332179348999256219539190852294493688736684855776023014844847320122278919224512880028389827187011145344513236049859324965676154610871575767111932087054173771285275480985731818219854540515597538684093820952057837539873582923074408309645906468760721665273176488450531121766893002215877736919434150968108986095657746163020275011323016318638886714450705400350310671722436402240009400594317713719468991103536323893534402366909907125708683917373670169207157462095564700237809128728946604068194124578351230008705244062198414097897416009619506998034757865569531956805033320266503434558113141065151498072921322178274110790821586179902009479454971876765680804107653068608457865742752671426476655499988459194203698471464503083880658640445584558962195175866143144425456720050818398006255733592369423141432287263722133598511656071216019680725461086085103421971218978178350816264350027286725408395407840683353502842654139459659938010347163880555695505282321873482036681899045784592040357572826214149068901416337879718298829041208559941656847756847467024111269158650937800608470346127383287919456813990430415566946291694004805110062636538787998651890803585730396095532388801049906312246600870040433677985703290858808404503168797845002510608425965234123047140773629667308956422548739804440545345100872796492476701309757857535151335706079223888285491470389707399873572629031514895543357297262530603314738186757677458185825533007510920782614663191402385549745953897921075322696189395200975220065753385207822270174124916830506457173317969805710652030554748743892502300528662357550602388871614961482886974902872855252802145722934179540672545890886617818986318838437465384555685609028742680154927238076442567766395972432400418885461927070539031288518714646356988347167924779282257563021357094490461676867351743169894243045819755739850834178750948543479809079107733346010860735981474226654235756739160209004289372222008904872334190832944191552032534538297468130188835465503658610068253199772518871733817802737213046744431470313530660268256732383417341631110820294013843187875347325806540624533589122275281018146382024608468834452772454989137256257778064649100129068936358071481931243635920374098040050500802232976115623368837410994556102917997588858765351461448272981472351711892684492558835119474466395847621386395193112787620955391860485618712372014382030005647362388680874264125817232689196055772747936410344920472111958319197153736507954461241444171281203366146838169040445993136679999668762334548619866643665818203159488614171009016784380680514691768550067315548769030828254330747319443544803660069871135492239518173822243608660678136840926212604054693198157253893223971469479745832815339294887664937088279999808621268181965060223282061105028488192582658622182635944466617633794621387933967677699335825348041487303271228739927087064273433035958056805160130396655175275815274818580923197894036519104688434293569611360524301823398258860750652148081727372780483389320187225546745501529382689867791813490251802004222841428007824724272351598071694313868221865594936907577081975692535855023407205599939485697898109308728136624312741401634057565418022341558209484135145842478206752020719410913651955733262911991395767395477071261411855115952748089218763967731024161901501548128867431987177056563950875382806470368879255842308380992894549141798949725178234317180081263385699169895297042974479470609705007089748715240149581119206881188743778892380317498431177446814934119280388482143800268579176444913241430402577311983926742531615310825426014035724106257611478985512318575807452550312009665057767822479077523672255794956441864633975663822125042102040128902029294704079190623643599008331901139690804819131407185606530743921679834713861666536674614609983683277425909734325839160828454245846112086590459114121692837723852049676622022433501055747757244562205919699197090995780153232049421570626205891784372092343656341912084397743342967018441777626746495128287492986952434087330322897378320125703029118739129271277585496167674857863013509603324928457932503264895983767955153458446979528165522986095781476925588991668071119337865005957152828771541723473977154496559128604118449888682729261275850063935102514917418761514724702943925091587329890618598599540940601440265136415357587721737601773510295955950248284331836627403382062141187150962790161253925305919699834807568679376623988813562877868288918298427916535572195496907622044904434098647944658191877994199075837857789136827606196030861173331614278914484648062658644268233505277224950847805826878419820179248620093757813623513964098460522790576850699999380963138932823311199344715188422062455449478217562316032466050154693621226846664280506844697860536448408702629283421065028641874379656028718117332632054194894044445865635357478146953394975441588146342095979061601242951476937384708533105882753499725201447060255419538033612651814546250252605740172062606936385476765314275955933909807902492151840981230161911740963560579255036749642776400994738766252098626140508831029038687214679813403467490147794710631082051012229936070181247770851196700769329311553796957419018227666913624580184583047341466323993923741953452333317405978906417550279662040717110065051474640681054456736350284279011599300672044176354998820534603880856234615756373368754449667267933386164857398452459359105515890009222566899010083513993720632054670890508662372018132853337445988660213742117068401642746067741614390420914328040585880610228990884043193352904484512009335343810424241637703124894686511919608283523591864158305555270833148583303057662372507098825573397840529551730300140706787243562415980670177227461284630532574623099952318890432502771289016251658167292810965176451523364782233503300583146581375983020105458016425231844084468228994064984614533971687597997583361104746590842736706457465213901543496556214023801857276625191507177197790282015158861555719690040517713885396940008130338101428986558048230708271107103921947374285802675972380877900383382404087302075576660865351215393783154652476100620247451190174623499918452284949794238337039291300272702526241554702370870116762950317978499338188313406950992584322715644164314640597459885576313164323119804814229031714785791312638109590499244391443014345110100952768750143344204047378234929076369880065616939063988836641426483076527870513206932245134435350637885787635746026099898712630917263448512288428835534579400533174606877519974551086467439012374980364265972450316611602568558717402340468176018399934800507080256043088795987469775156363664116265934655700559162068770384838774767482869741562726110716501560710773779900520060680143982745265572267162034797385928193104165534333181895590830417364347290756965958535983708213637401587361058645528126656445317680117603459858898438944541572097765359288948761521086722828330536682279849207775746850776551068452330180958672436060411480193698936702909225429712106200596143266249585162213680145173570317377321828409162788930486464637754185428002653774970005282315670294743798129202610819453579881719316704177057269201568914848537306425439074986203235147475714394129915715430341113301712089586167455431841643399779889186131531722796311722395600292423036064095387337189865297630196388278288238708789360615638963456801654046288068098382380543915331982189015555330678943330912660912178622880034615130718939472842980349532113949554359440950632033972642046051288800469147154383456629698413841224624928976812474971986740728125869306831262704953128003972523910554227838204350319914513437296294085237524815396523348600717155408666392752913887322688973356930915433759368343942740116137891973135084314383259779270404242766160948521684659836249691561073625176069917604229594664902372600615413252399361622197356961379941723683747192752065710084330151120831232330413690768336263461084074199435399763066067198447796197274156488523755604965112950121579796550639063630220345045606571472953819292825612141011157581789319552007258800376754770426148720286938940345835108029951771939261348785273534166024629131498716826274547778267060925707465510790687239418798503078546554001876660095313699785614479901539622260172458643948851010756546762505286347118216990722613116427118548430838727280190906955367009965625910886840431686267088822398946522593685299475279087072620368705033485906084969174605137926330265074884109278805499955224859257611863333205856273397824957136264208592884687817569000683413189414114435185555780504962779561020044089236766301125772887508167741683596958305217688770074117045136661982328290795221505273557474660507210360728508668341403298216627614629225061102608416097877281008273415954397637662478040742052118933807186046221767582738729207023556046992753286098907659445770111179861807161721061570554791958352768207355244866044264145638102017431817022097812946581470917464679877980541028815181299549094219637354518747548105861193870967053383156705798742384855000532201907296941504455061083281338649071512217839392243330035612528266093530239955059585337908775628354985423475312180690115859516043121680472575309411562080746591898840532367117899772758633323475946681146386809301904362604304575723054142622935665002919968796497704453403230324942540211690610044967316779128821737208651331405268772117883710986107029231493953151653737530928416617893142419098056982641029410340465784027013080418202845039825938839406887506633906542094291544749592533676823276465824897878892893306787423562815689955668514314664503501693998897913785201240796699871700957434118347944421575268928306075626428038495226358239344527292085081948365607853967776286249645981593936655641098604137716201376008182244617298316213070014478663215396434994551031186092274202866272220014784920287200250674132430961943095577048730925937762775185605519649843290858550434149557744660917247392665968722689569951377457937907407401958358126512181892538467334080568328805058719114957396027869267341087701239713599192517926340715283714229284968344315474103877499547587833631287509386392120498742154769947941605792132017107978796235428310545034851042032641019516463002123977120829453851203943437723236105731527356330958412584563691330590981380797554522272924381155504540179698921162639372900022480441583267336098845031104142101893778043722558731178518751815044856472380667313713467239190452274686673915943726650408385309435382670240894215570607409162634698444294715143466807276004124564241946536198308331342897440770887770259480070802303564197995313190520316457512684169895053232320456780895197280456226277924837942247951261486188965048401977934649821816837248368731112173021409384908015700143757370844503816830368677413390035295998321951287105729206883723769066504706525962554874601355625751213403746184173570006250207473303631874706529651460237575392747552983602100455050932450233702864657388503526614059175541198850125927767528961871296847837212646341696756323368139177186060472306421581602210761234667913695658346173843631843550761623712867723489281644131920377403129407205735979021056315962527654198779937255596467599460875514692786056808464649350309055765218142467929915485137747695717994139173007247612250438247581520581280941653279913126873182782589528666210966744284525352321638657138702311264116860715946538720587310508712020833942100767524503065673595143252795527288401377363293922623496169894536602990291345677133537872401950082503828064384205985742280966528732973008254235614745632046449330472225282898715408395446584111633534231523128039029163414186580780165001885550935252458818110116257544233929281450813423989944588981442848955371988513312560647073385465723761835384919005209647817743870401282148050506386839141932356989759984662367265964416545441401552269630456555886454475818620798798120523503270266801818615933013507091197711346501639430445370677315515073219027204998036350233626504748185813873956560515752821609092123157323562259640086944326028896515991982683950819627403679915437780867272840776489477288949936337677412357034832157867259756118024523464456609297391969689065135711383141654493525073809659913284849942895713324323028628910953688619199036828395742276176572121968866099033631491936607987233359120904840884689676929341818034337911917607696835201865744267435849946404610382623056856968644951416389779421628476350994306555426224976126267774222159420104807816640457531579988122988927721064610661154033903033575634568458382203466756751303482632578514627808198331230679627412316891913524197710444312719027295938346814004407866333366561670023693308055729016014516094211923183703388886922083751447796453174417250872263749203356358282680333080590517902561027085414394209676402676870002668037680990696937782305732615109723134864269266453261904299766979910864826271606337946705742958190741104456175847662495247567268311677595689833678970982455482847554818158498070072853280790476176359784520627747423636512165581050230501317611010673526085268988023905743422682604354078792603488504063543390201117304116831133477030344654066398590926663652400148250967476527459995069945828358933377296316027382995375542467855082422615123495357816212471441900482350357489134408836386083475871357817949887225905677259661762010423043014471368042687965393176717785761551241248134413932613224707270780386522246361067054145712511129459813456389280340145004924044963563787309247896627046126800578815688177267181801249505647214725943084067327163945217361579454460749284779734199670617620856794021216947110650906821596309025683694597001107265625070315384528565158453100044958281500216858452399164500151157725088067713547576235145497175802047745855352482952938081263282699247605471939068339558301705634201053224117739268135947449069331745329530397594009585413298887757610736304526712069915700914651623569902838335684568172270001759825951459782574766872919021070943454655217196499939572472808187079045256356241066860171719321480533753122333504476024268891378809828986932851994380455686261482909943190550331482437352046426761939166509475724625873475971687777984641651474440113617151298202436140391491447220299765763452384692630167585941916044382067406745755037830735837629133132672667683688414826235845329196017375242975506410670115779558027820665385907312022382117178276833916779329663373371943342143101596279402280441982667128323583849609448245445897937008368513187728387900816573869660400816174324930429616443079365987549530760908681884979483805089841270353877269851717828783462598683190127256129063360173747235776142727439528456604878473369347703608444809120743087337416577595741426999804845549136237396519938153438292928759530068035612426705148929037976018439855798627298988927759064310571673768219570905564347235154514768080269034892045163969045433305754498590485127269269242191469917624991669510355192450908753424303205946538403402636348406298188207670500663836063452427098346317245641686053688200474611819993566679115416646984107412212194590633266636580007664980851732918863161039642812790462840520731306500845525143790703921157574354022402092040590084413067775476674542486613181414185326166897036782647069143018164059911717150600707785340558479129713989974998678873636523033139072619864805880782759522210899571765597005540495443033693027695663440085299174938590711636555758009349053860817315501103075848434662897224939410116895552079082352106714619044033290516735579301053364722679075229512265238223983836081986951301592826609197638171899764782711094621711781838720593605419415477873650040806096513959628563163262813771767075638249924156036028887548336931974074090049128005139723149159279564210462793945369862848400946539692079847551861932252076724726260051310848509557050829421846160755347537870415878789839899630136795485205030286391694099062754080506261428844724305229567361368188945332410373113043132297016585064466800731244832943331048502459613626782137364321915506113843962821959478592994137306063633537058801258451363966982013369787458390955184089848974684084213072936635317264951654897936529988228061561273140535074744554652413479927691046896450944976609546106455974017039817492713480630571098418336611116601915806321323348464290360640798357016251464041655299521065644432660122666893273499812171353341511012582138960243838872453191751506592819529290912854014221907756584498692385845215168485035816417543455888467019406780637571106378898158697265876764680124143491983291585267639728728530585691288643917513997799814775033210572944481632128142581680848292791229514863452848385132815990766412283301257939552460911976270991885231420033483745785826244816537441949241362200486393490093002891804582306098982202247801515400853149565777195004047601100047550468177005162060184210830077196372007986356142670818475599169923354816886030543219446217675574941870797401886712146650348788412551726308801989038882563449262911702936505941875400062481516901848950364302729639461149533091328897529132085937527022480713481859170245209736930023436410588168852369066315750954841848796769165611454728406160709746424575883748752527481792887300746420780940206701819392497866064475720754233595191652583179689730020335832551647481831299801444109520202045931708972839481684555785932962236955425079099041301252936883938271091413618550442188743995745741777977395317323600031798862324940137179719712672390632864805479549255587192632563645353504886142993407047686994239214625552766857399605419183506161849695274447198775140611017667373974371087840425867739667552339930101676226659849640408787100119286522908317775663460259437849365942887206301428386066902993024042639396349266729180943326850157664749464112360340596917558066996957245324240043826412910942560173463986249974733467623889290032430174785783124882552603774032828400124720243764269339947820917463774087120463414252285109377054086423513306524727030258650357317424962330383055950836434330084576584245617274914107743539078859473399725092568542132692482188996663204212422207049667910437904362338867463392637013776427176162186295035777227056614328120432446043061264574683662972878647023074362720051647804483431705928265534063358211901656068046492077328910481722143511237401352116445506550541054722938441127710529476692268990196240307661434834384138379872168454940463577038862462598110189180994554694339544990645040784940257100649549988475716287598174917590498733508656280670473816903147378472985959538199410295444377478316448949718948205126687131258785370107310991319217596636308415192233223339895022764738120991705195853043089434499087319727486232967038760461661580321852021266055247935283196945665770577769722665606592553251516247948554857074669545604581364610934366493009998032601083619743058223534473935522441266452700245837502929351536086326943664665657321922403092696841714199438084101555099258840693131347456330463086172894231161791478867959432105174788834843998573367236932379124084602353958636056227819709117672937135458365741344408224188041494273570792956505516321679487038287459966937248986826856493025311245178519005874894708707291137743721382506080621873601131274177885733165973937956195528845343070163304532144548255377144865586717728421026290151829331147159625366081880166042941853968535940012634153909260191998354521881954104828028380855042412367002072081347931097237759255456033658812675074729049522140752528519957763574093669394827109269693087946517362285755089942944023330395312872440127492934773172086745257583565322877683106598917772658135164641912469282205885565200598645477616847011844544358782452746805662619094038598943584541182946867154124766950578882058608748439404682357665244126385483499473660910378108147995972604702492327976092234646263142587757771488059121605449213346014204075403589371473658163222894547571042745194585338276310810892824142349898381281152840175311022023813798743751878215208311957406642622638391583891155484262034020362198960024425313901795872767854377395294595588159716852558099680354090055430069158858194947089060471823430076428972671040212723111841956804071847332775551746050579390627765237507746360159159253806388250648258555247228153626459655125800068535416261146673442812060253758190501658257290082143205014914428407391136958013992628031283709402726522413922631360187411504754259344583035181808441432399269553330780058010484439799274568219827688447139561984944121536947051524369949736925449113019872429935619746235791678448069361075462015857485283525799379740040897870555189963842517473208811025044592312836642169062764231127086369604823887243384087645826243485175556601711989985858966493474433104208806149955550783740944166032060624564477109397522168050736629206624927021645508597217756928375035041518647080735692838402505711790348946083670562975313865332379158450199917552919388662662092252772793898720280895085233607171953000321845867980000786269937481070033924738406331149530570239948321056286258720132722859421567656568357884106664165498402296601305297801745768185896154291045065028471096959041390707598781268820087988880007498829251746043721951706867166947652893200897450997607628905375333107652981281199944544770142463902462488575941339006683163577317621987613833900129905274598777281319947251673690995777996322206637168133013917674455387683155621680399867038499280617436429608915330365658745077863293976154343917262201733354526355785231239048545145828593374117517679078833058586964188966138576615608068545806076713911800682735731271477770556271568559976888340779878917561832764289671303694209293509949246790512474852891054269230047658219148390918772716249328134003357216769204735676512484077947203167187196114813652896952087305111729554678077345900061937710716976583324724192443263738126950008563487712451262046803155811035422365161679302802953212570404205960331850208030213209371630391867620422982411316223781436993560917996359446362986049824779122974687619366709202956886629371463658839541356879515638700276611077026037981434795417770002124166676293173532185213876186019376868944534660987317567311870741750815889794078601490736293060625505642187477047488984379329771938633266786695057826325553921335623633961871560309450949451404493857066108407495504594430025256238323525252014306175278005529846111006119515828877877022535918851933178699962533769089586214825041621345723818307771878415220134209448874602891602433015930098354664156225058295338484678681895986980713157854488955002224431594583724952657038150127066957677858659215989401169360162090405765388518852035027571329892425779391414012531365145383664776401203651584146229222083769240903976738350089496502712713506469550621548142125784356097367055684231157862470884284870341537943848268230816874242092138684997233549348199678080072922637205411113745099442675709146409588838986247184378589639275962035290536819817649625138764475338488324632131069555302218486521446221700244311879801702708234890462754848845528669967000978756916664214533404390241234263781934761458009252156879825467402090806203233019085949844416354036783382652028297508585744752656793023616478377107782648667142643336388532227501305775850160348031241562147831376547998983400437384043415785576443895230724344306955481066101800929879209443118295855871825516246443708350474340936908830785401994586433622825090404131155740181184313973375759060030339521592733419347503151683398085090678902425277374827321344537045959384408669188369645020394046092000177501584543020299908950315608916793005775892813497739078505655503227955593168829689157928123117413802320922029338673028541117677336865762497224378012731087304628512339379129193221143056419632760091062484119984104287884274496741551166842987309239992566655544385756382799157294490914446117901018120800327909584038390970092083237017621173655033719122815725292923176474738486909648226664803786741883782443382917820760490027582794071999070371897696053069973861652675878282756752624670964977635067230940832909223071462584409940277709987587536409079355547589336320915524776214937741981814697924493735244144553939952565831274032941449241364345986357629479066303625518073941728480306718611283172346057196081028275143218719719351012173049573108148773237092587535635945115197849864049955381720194773537558823328833011535423105777983463231141006245416616778638534143950531377576743979121885148293538962719698157389674889106342506239338955774286506314323928490772450840916939145467458743754612584443709269081425562029588237929968804099688502729852303163335357739761549653857672273429840593666489852844999660661464874012814370887206272802683284972953481840778552561984089397031845265035039268907348968273461493493149003722137158724564473036760637343428175899166715756545254371807741687814014240332191706950634539723385634389027953822914819305012474197416444941600836889106546154763330537114137172632730721897561356716222348853029373112799689149977321013588331821669788606737228347029833766611951237190488501233720941208248979291051183485449985795550472586896578222618122413458963954100145986925828967939501271810525015467492457895056015068731995553128493145652096956120028842427671175321046175123061543471416514988952064975454863678145762606702486319123382073937567714987500781713861750493048808989423081680963580208326141017529512291161457674683370216709517513676520576697862615666480255729720678627287963403116895168798670722329805921945144303300455160353026738782487405429967211332035828275715798131702820370526876640004692716162168612194374488278412085405847743212806866687538152463666364105557126689655442017902330847159694727090458197224227389356166792390893369136931195350935575251593452598029489451908186220902608955500994370028646363323084052156590246694548784198689161271059453459570954946316390988800580536635163462944317632124958461349654301271303130110141710908435424513580785726558149223215860518794888462879907874370197702865635935661780781075826981792969485583976069135068325571214523626458649975626126760260265162110694020394793664026243448391442511194739358735380972716947080995712722423112152784375114751824847819216180521427227764246051062705836542491003874846780961845026427126838264052641483545652673288531320836191499084698000801810298644437725115997259760318806169217745165965750896792568651538469285852028973026342641262470865200718299252392701664649281995268932195434109399616917902821562087992312262045888019882689335691383451945305644632297270759850116918694890261757955897201710985372729204360495009430696856842605667751670581117462436089137751409485281715157762957046590184375503252565786725870718387081701652071082506580010938088629997918321932881021603166634833738128073984039091189262251724166118223292338701437760017707103407012159828801511248714701551757695499891992697901888372970868402256236228757838769440565023434000529242899896154149552344793415897391773477884069884557491608344269808830661890952967065452583442813025052867567459403250758584975061899737913448213636258352472863378782920407675423079535528047935197566709378325912783750889991085275603450036576770646145476887114708755689597749145553043311946021239255035018844124962566406660269932629593226657277202082829311129539454166879934095286059787237303217306878929476835872976223900712480467025312357167885438288143827774234366414010609568148632605640536531198142832009122982071197905237817160436268812440205159318741833219461525173227745801602135106677727511480685151322978408191480639908278675595116607418303085522903358884150791963555182833091564287936416456721878361251698560344800839251188742796169468411435036367568487217984018711013763948947112165873325771523046380110865685900580779239369873011881479156237608769171352452390263917473777127892249038639514264078570773279620709067482803829616654787331504026278120449201910731063128603977974556657294010880447248682140621771133497987481489297934767855466391155795041691260036022020418441283492537694745443100339650608524835344513766853362718981337336767522281502372240550229408912461678801850650482956449993497378292971973539587870484525903112128052992246578887283574941688211617379133499533698319817224904900320557140186540449054253917888242071159618393053422926372899721683813195945238744866547119213745783912114758966723169226968954972922264437355935016025017433188676088862395610804911234966924900122712180036386622877040912999894000446403075293191881301156598068255296562153066381853698096977097807678481758310254273429129667915484516809112085066822814817852400437974195780074793887972458280506883657002623467570283388412101786625669775100998856176433813362961615963965599981033603257840009679191842517443087795789414709218542864743229207657556791404530320403599281761063343323547349840170245150014559723956454801731595460820687611275967575168076442102541017733910189647767794141570766487038528190101838040606974660664063976100734404555412105256278281219460095380996937780943226832856627944701632833812156455589820307919337197512450754619136667655179343925468056163889952492960625238922331879317231916843314541480885207229611674159932048321964366467972247851776525006128061368876949505635701053969511722173656193797073948853238556834281024037541610734380469557414282729621048061420878728098170040670583288556364870156334108082156329138778805737131594129523531851419963694537260596275422273901309460554611480729973694714030465206067798216973425479693851529036225815842143461097064654881984917598644499733258820182190382421297599732541666876380887912420341297361476505486090790471169308064957246682391863325302084723662978350235864829095645190215428373599041745396726032742527364105388429738234299157539211799407995682743536250230040879627834956387984891344099371389039881788400405406081640576564234898210303915138778394616905079256054667580747553012094811287774587740507235503165800976175201165208404948750745824584394256877342550959458726629095936109937395979762189778546387403958648850026652948091762339643353539770421143528483217586417569269424473484625811427021796749824122170645641399337998946239881252614622889775873995063706097592199486207690138442212353984476254186707330860433825821350933038114106365498424765176745322385802097120234698449246558713652003581974634925782128424869569201394424533327059827795789534422782021678131290927463264957655407819805196345559381057243941576397110297851975828791898594378424046554070109179710816734118794292129648698543001054947021655954672088221944818177937914919579893657539417443253544122642243833966405740866324949285287546417639149808682761737627609202575432586069204790159892626945373632285066102923669944756410407853258834924508400272530409380003898791779914559229960233362712573142246335536652075162104911420681026935050191957787605505865986683965616601368079910762723607946268763806390180241799306464153451219741840622791835161301024999402357871536724143984953537042542774753788878561827347046286758824299168040964722925005517466303678254454007602756255168161600422165556544910130327200750154758366268471603273644796819102363564089440973213987315776093090428298871485380381440159221284306221416307026713817214692458357462033629850635780914981554054476862142872080408053962973201646584190597882119313226997216553064270851193040492733689871213078182614670052739655122836932704382584545636552760098113290570100748514237773295934251675121190475428414698194849045381156594347619708805422808622791026487182034820592106305758380229417822833927374952691770704338751701002329657958313585035678502902239480806942041745916678747348171376868856734489754542494716271130052731125092222854248664010112177212897521834508848484070369023566735266613843983386110241641791017782670727641060583173800539301845929842275228987412083171974323078715138501794756318623560241196346012510254492375572807891104808265613255243474813848263973223236947456916195418813539098907513928710041969767774748818859795294399785553267116747394981131512329149040749978195929115927721638946272852162546761884765147715016713877677878704909079557202185863788832496825019361845006203103626987753513914785525029859321124273444047228584406503448719087736127201606488199629951703335198693722776010284576826435568247194375180875036377600523361281987829771076411170804848198932982559995780976722647957757791093830647240387612691943792414602621866733117810486582431346009988107761420377849056725930761619175954787086786451027211616862740771743738284020534691259420261782373732588760757656356840139408954743992631334426505987951894727274555843151604542426824074911058766993850394161075428810237946578275161815835207628304048963858058905234267454883308630141670887427062113319567870804884573725816725257008422090691664538593549302377546844413870695370698378453292445384185672957399604137679413182077180079921341277520572633862616940723088628089102594715329141229770846646858879745950121703861433922445375094214122197875294138321641546424675151197377994943733626149894603516295022370552227583365433986188258040068329307156454301707382354594503140924299158903110350605335486717709121229690754927202685854848101777716978789824402973131535508598328600463902804410189818618290369289242016577078301634852990618640229198839208088724596345611037782178504042043409461033605835751405070579860030951179681378711339419054776520724180285205695062298548869783207699575452755106936263046705761859124610876302348249831204745310626237061058269104182569988699141422486576554455955653853891031387639817014253675524426654560840030964721005602828782133012752083986305929603952488174631338457211496748842968914456692642924774177245246885898841407621126593172309522831069576009298051586196031225171843819295254331011291710402914125596579517870301214043578964915477603400345838878182637463276915958485763007327365842824042317492441531303952030859748749048686586751056151006104594128324593588134332971210026981699360785418988995382635669706561450302366918290371303055372894301521377684579348072310016384351047035492012962880329762488954791748670617601915449817264689394779423520256692852384779634191243579374932382710431739949463491353812993229827290980855426414589955554614625660269191489141143404816584420919993336234525539714116230884119678045831171290353303321859687556028326430738250516516967655783378450265100911614458458611774742608516858232185376879336802021939344477251942023922994756618928492863460131488975668101561281688169691979549993603236900221282164610158672045866146305497199175675690449347325330573727908681259569567874024488108413882620042929366292773712964996611560719519414104843649251966575566243419794911537183800852981297471147308807954224911191674458180522995657983402620327654191430057179810254044174757972250085014391563142127958895514508384020583195003506052185603928033077529128985076663208683055067265500201550909128402524422157728370539559501176322500961548132401298441624344832421738855323023720110295082242397827944576983770983683625909868068630364811587587265371287216934345631564473673900336546025405080616099405316153849403914872679398372979414858453376914662107363475621507448474001914214781690792045705488216561426607139806154304900330323715865429441333066763307307706795711287916797171633001450806157421901889148723848613512072629412558712866238644722597483199431895539979587541461721886018456873159466960983604505183682697677942775377058511984330266596692363156699546788780134954537588714183795472351762458497613846476841941997510696388531920343953814665197645556972354172126541344291673763233840181376009132785298110415474830934656893309236414327930193688084424209178774371790899045727758473136625341488891230506805058638297472166071204135360312547433107458156682303165011598107728230977966717642502922711359729529073214009391204103439396498322875195957695275837881648931837619285325531299921039831508039851459034554085843482215762880820711986069930587084739904360280175360139088804274633980405498374340749042849517916201487779703000070901451886455230815961665707894614441626582535628713843024275944754244742430629326423476779538087755629961793892046424262068187963418758274057896003468787466860937999374119131427704615722688866807246231442672908207495672658186844647650220374299240981906625667824506328172238792338836756821109619098602770870440040075507506810766061968467204413769863992130933472925743102415404876917198926352425860727465773975071790369454944178775227724997710345271066081362092944724169090647083642753733413997367860968375579919892255744450492822796074469913848082080927210812160003219370953023571677705740505312183438702430160438293970341958428971354743976939643723448453427888620093179755406437963903044339020296881719344334968182739938079058727218646964388371016443347661101425667627395614991951108708930540212952265253946752834803152018959140848993185483405521033371625296937789496300607415886255649359374827746778018248745442461003797330051016635994774001322476112783447264459566338278932579893610807555998374167835960835520144060474803710095861731215960783992377725251012342179380183104129167134349942550503832216378873205237483185182834826248002825637262919703424176243577647088144380125473340495120938100660134846248725256180546931816241348141728133570591233158685688281668672158643424593912568435279496659979337423280209338235936885055380014336274509673151867980517740989413022666875171879823737872332213680236927160974810719388421608364004396193051074723843954551960636382991037536324511113757288006658709167129142589606712164319825924549147000966069635296956213405031760371726386959100258479904378273494126059856513649270931178495454517420076287844051492870252281333739487334377217829606372596999147114835784235543607614507126234807917510091262994609381529320283507684933347961551802835301291981662216571648995716444289412151522687907989421968328039175467382808642257884542335127652569167231178868872705711022386883737734923048341599456101441346163700195490595347810393641441819403529520471934621394524271390861298176116678313833185792248544380862056172885871434240644342961852151422723033878274169880797035117757683109418281078126267994200225573919419136987837730828962009454294929380340741035189856434730532341719593016657461387346463568165803550193650104187473455785501687899746870930900917721126817307530946824231279314440601612855994309746012821636179748863116302304508774788432136001373192158058972436869385595983176550356885545996901122141515412637451202048193974947763049662759753508294289548541734554149296255765138727664792021792489434175220136962003145202492692199234345594843112529339195512692815938612277599350380191868396207985436768409087877937159357475183653607983669324163511455782494641587219262572122852933097287259919141488716973827138302067674679343118105130498559052733612237986281890356221305030425048931072003165518573208043575940048186278460537415273844679701179185653923662700539502093246182299645696356115050795411053869424750393829781985900729370379600475080338952059717343982544484038282218612093640347066919646195606725476957820984371342273293378102134659229013037701918632614082175420221185633617212742374853105906802544637367004340043063471682014961949779576461257115187083190446801178230813659346777779581877043635644075729722800374012212484675443352245837621664401418350632732986810384456301415074048052032603788375032108972717015493677688613495147765958227724173015134809590985658504266901475492981323482703528343040461422052317858851246191168783485945517780213291034656905408440548913630845134316930090571266123688601378258955606624461043476506239248744628716444206133192232968578900203811532825652688082104056327573040083753976207981307865741223318217015912940947958451083429036767544053886729998190431065097252157719305402448342266026038680644833913622760766210722959958013699965078649005710370817789002959005965806199741359184573722878593113949160686508683235683697452059310395941767972308641294261609480422548547485276209744246796335862207711654101586698127537176335287887932110271038355151200094188946239911246623638808804691538423248970485414430785283440719936068246709335950856189599164627267229858851507127516931043855970973446330348663766954100485241377539506540146932179678451695871986164621022763556051795612405318260910203876025621604072542828956812234578451844898658971269516692429001516194953165319468294559037152409637400437813131456541060689835499115058583401677780247426839999967950623960377728243006576691911280495090575371255049120855015461890610345004298846631470610463999232529216835273594819861561309531003492355304943565658481077930739724782005270644050165561652187727917216923332193815170380923224635906374048913911443589283798967957725806768884283580761128001037503064569782190835650927774902264991176008489012347624964014580642016856492315043439893476892568067486940376475429517070988404635854522527633272397766194544206872960550359606881076153532783939874811859813522518893223407246167378458489140761506691805926158928697885510950913465897420629415982444700029430782253786822879592106526514750528979480415834609774494673521552369417537482823564695672366185658219394472400408099070567756424419082146018982278700180884283455043393245641655834573781156868280186684594602262959363736985955912778784683149128514464911501297376225474071792081243793443214810828292574247642702175089402466171664412990182324714694891449261704292210482960597751892034817338317587386330756999691834955724020780725080354442811435096220353070535435620879141794925444572238472438068149424950061267152736289249432150518551156550492460107192429952927251442026985638539501034927782443591173783239855332682030063290235892701126096751361529506469971795502222447717556269454449145560155207552343738177304297531958519035159692466948164322679669521749374318196179991744269677706693560670702510603193122682182004091593450852922693185776148417160865219665252512123488762757304475424579838355491840351509573003262741668316248719574899469201061312223022546017669221750216480903281026534449234402082241044609123538741824981778251472394747663428227578035412728800772698954315570469290466304189204068001793866764113261176331210369659948077843194449691149374070290659305594068211138742240267497389682096794731367616461613356838263882680533018286637674409033018532448544110061318199047408191662954836918287858503767243207933213916675369459143790608818288759761126253326173645025157668884909378700555585639410033223592421859653450458546686446649471895649214310610932587865425812809316323618967091252457519435477331078392630318392153280458955162295446350590251673852132458620002530357186311123578930713320750666553922228205268808021333273805016821142644836495396772149580925542997769142762110080900743781110942679422379484884669526035314101399765224406972144895020824472743583260977227304582898540936289083350507646636562438617498913858403383852243213179220410137630878251020358127194336083447024974942851504457957329638990697073095620025299051730712417710365161916456640568388237229173288462822256405264286990920566428022853222974982723322575713497012682403452539747431190685100795658972865208088355501696645832633576106008598614772768505488062796749532607661604568080274209776785578007223349205549260773670462495380852613071254547118394479688774280734017417735340196566321119808356722213665167422418045407288498215243712921206928076402695313195845340584416988824327654188764365943996790353500592592467031459680007362600002046631758413715811166706412079974097374395258924093387690393112334703976626611842745875754359909175552045260293765017831201076027450697923040898911256632768165951727254017281902329888968189669708015082764811805806150619868580583676924962490751042942381605590030857405611760847555455261855902575098336131558948774997612752091880200260006773793934883118399095333384755053779188170605428917211822320857065738356603164058691702188213998947181005485469341765195787851788818734234084743411373065924476642117375517168258248315928180588119249981534650527201513974538717568434791185739650967041496221036419583086583569523849636859350630331046810001933944220552228649599995789370511143726218399207345591603709536562272831255024307558100135792934908407208082291927639319706495862610215267803697622945933149445036780992468051324327868451268190042002279971039112068479569349211005592948829222688891528087540373390915917706966454713481548865038854365792143623051832904374723187464021852991500247992564976241268993718981356900695931394888334405180733171877809636214150030597556149503808097684945882573333154398538573244621732046244614595793784403033512800345538576238065784841917199740056629738256347650736629903928330104283685245456088981012763096225689813092076919699844986128053461871280205289760883481162782133847989709848557945354345871429993008253508600900436355202360799054616622980228462607017724254256336407720073150432654131171420055416548315487191476094257213983777124201306072447935969512672310624965289153986445398844578573575884846149263428689487520379852690880365875852348424774967221200152494706984950158888018194394123093529474765007352334895622526000503633786415072148853699636924051469339734653905280600679578099613192097302006588704264555144647739684496121564970649495395337375170184129312817233738428942649855337916689032670060416385611558841533110644464383318889155423393102860298111021474035593060083099627342291155789341484820737256188576591573499207346095226439015597047907748742609041843124524916611861750847798885911958628179046391976032982240937427082402109667294938000967271608042717728239869612612726879383774113428521461047605468995415195435277250569003008602572347258873261871836916943994023771201914386984599981993209156362285785091970316495184811740111014818177465250721682284210686324803874664167442666897988145420211697024960505318292956836713037321127613232597593058778945713535414505333451664815521205034862647388589438534542761443641384281691582092306868359393672364086718205485629530788018011449104714492444835205270411862758807637023218581373018985039745862537651528051577403740603314684459889079663201899563976149827116358479637748019734512720126175166580444412506234836246850312963479436302510934574523659274729830641303578845884270911742195115566893741353564784051296215201633903457548220510628782515350586193475421031703231089138873914302938157129013608122258177281703383298427069646887031955163144548651706517249887617979930524269596575545121419046110092423539620598554247063353963730951041313574288694670564579316876207589130259827704074339149028819422250900329241414199824247818340331337840966707883844783709136206103194393186853039985553749755135584375752176128037270926883192249556510799581453132443879344642605004999382629143396948622559461904209499290540965980027840882366017538176972142941107469801073717624281654177882587071736118384855546907132147486855709052898063449337685397533127796021861397145480619979005829439798859095936650023559426730688036560750336153556453230402441825022258814519189847991964682043840613528853829548273015306207602105510839730925146090544168859160179891910526180086217903549161400198798494400053180968854737804868489417699831797073492970068116028726800567703301110674611570272835309673637518413735825848177248198113926706491840563672471819651273838860572749416158546140256872905268441988345914156399189816589317864583745900663991154660637624792793903064223067868713833358914032987903699564334366051393996750065170128370721414161653948357392349185331714580701984482484062865765644937356778762799449689170299747384894693203441708288218465561178448454466902844392983664809983224844971328873002153556708543238020399031197175714090592537292404383091271036654193213680201238644990372836447705020527841804834019509447119750657343947691911465864996691789502769537226776598069200617668828134551310054648480501703594451997273211467656749795784185858191296644034834022547771986050038965510268287043733771040578147298859366431162795158980022296017376891947322801172565572869978022972434542160863967801338450222046637846490833639865960745320695197776224643989651436615265219413410034389858665387710007718647512456934851407039878042240978123040639257235637644665444753281914029238913588608767366728227783886622733784284547041044171014820198110907925031341648251042020993437135283410877558011228728196194029448220014774372982197813784191628782935186514650986090052521997187276996300742041675005319299116290002601852001674161097056584211936339561286183047900372938208557954463160446881658194356300538992795996811899541878234010442411623722869410542637382984785528069870756748994794827296089457044558035160185299724568631993259254258396731991273563730239005846247461048133541215955904477206771752289234015252425033408591408874851521498184716729810588952670044817845490481069526876550408907453697713029209940162418533633202374634799319360041787483046162781573879890921812489090595282147642229065589683276884694091210876069280280122145715987407515774951428871296327249582412804230525410079909387593072257385060830666078103432902532093109342688328574572043192902450434951737119012251305280640441256164795779806521774600037478443401859331843968048409304331430825672609925821379644532962223033350614475418768507112846592320468974480422805628183679729445207840819459355394457664011792183698195413705475417982874948331785117893662076006612044961113102346107502511864056713841843912811598355152299516243525702631771545866188011034907331962616428188213063148845825772810975937067032771479005685994685906399694368413097821856869235674498015787744369555433205767108235545793503622962082785693849512532703769978830838655489831398580276672961850107556580795758320697568616152948769684084173371286087147145247564976546885605209732980032679364630366120696970541927462360410634773057543142478705280891101976128196277808067032913728780085165301733327029845880793291850307674479986730822303509421522734472116794775011648946805325596504015100144049440609711086720365205562013380498069537755785725488777778449174906831598785863690849803649914194815135376933225651567561403328441267335803614373538607715802901432775503447499448834201958758612325750639938071385997089805288841367502122617798168517373713965260583171847311282251362528537356209422607056752530737499611560897876191864212573065223292373334207316883744616836884842818583146106836697198923686767041664858893577292145399744698859119262505523241280760314565309419575744952835782649087785136696499352648293976581520799077465731690868428547344155557774625430881782170276685458973429140834505630328056386204841742061884346190316136524512988789268509001246484356136360633789733314090860817181502187140813178730086045724630779721639835466011663787732888470881263695954382247337369761780048719244760361522690369797394667109525147137535338503730863854619454057615461502318765269462830869659168470526228097451737236007935402398565807508563653426632345094574020080643278669398868636639916753527117978972499768256335639911554189403825777136626183241450950100593753293248256445746670818000908704121370594786296273559212218010335814146200691916365227631361103928975982157637301489708443719118932961002621295444249363529545668812893758327739124122787029266823636756924959241919667785476581465362385618908318155663114506157379692941095136920104651379136599356340931978860151896158474787173752627217698152148583032855868775013576061436720226580100772686070095807217092628658636487378003608559956394814292584827911981567128835231398438496631106457712202160766818607640344547151833686771090534640662038779874353925085744457948418264836860233399992867443088521343799524141021989316742657517568171639285080619497304830736941416750277844513854111250506859798908770470448967144090277167033208231165953395796579883659597556504338442852355999846989500018797908944829769456483859539480686162720281868214350102677716119784970822795862039718944797472984762572720415957884016575668296104658206606583609985440671734066519100641275218986639436050898632952590677626708379032591719670937102861989719658192594637849132026724234118111816560476525668440189004159891646668196625867907434717661606775668803168980040852865897026676046036682937702826553383529391220947872012634421606992598687008535206280251007449054898062339153619349692398940862197122139180565217540890372867844997629090510964896308869941977144731582578454997772700364007010824321939325476224062827680556208907569709061941013741120232514679505593783757532476480705395863939990832988045787930187844078523791804688985575095820243888814926832269040830672046349573527479328205874484932461381166694432116938918117888890839821186772171873753960380896636325709623532170393488976105036790411553214174304061027997243359964840063482899822902181785942199166443928681982854778508274869508572565055413672806288905629835398427142499569582477069607115261006463798461104477099814685527011283630660164716760399403907310647512527465626900136354689217776872981682168278044150726635155069424602186026267245893614635425427483237521280534605092244076871455659290931949327398153719714733067895550764551923162066538724857116095186245733901671055841457174211467676320075260826456087517678101865450307558883901065049930412051932602769528456169580686954230537598748059434188903990227662618440089004560203991852781587492898224991648695830892258732509701755631444548793191606285313234103036985080763123630994281838596480520163742052702997095105061543822619228127966898580914593304432076157330269545240049146521775947048103013789302510210283090929101486078116936943070986764347228551139722406096872582236076935219202980347326665755532585912285242038871010374963312976447929761731185192357518731756232239880030278794119896362538422666136232590096482515076514718546820779230749278393210487653123076930383906343465221996373468598405216139573027732296764598197669608704188165414471157426723627404895913766166655334825744109419183600043257083222247489366445482618635102443155498153456135110837925193801205507626648487346417065936801444315864738250819272545563573922873412911496258838290205361172046664445207397768785997431986049727471772709263061825735249506745157639421230967835045227942289409541340838783249653786781235086205707249930941685554824440172119105682716265224449477218570876533095440903964255678811171893838687381726380614519709419526798946667664871387240255831052694620801709472050904497246120742326764714654699530537336368877344892157753500332680939496304362258313446103841339360992074793214306301325883476789450200141869883027388194208418239637178225287012992152370502287104099430330295512110498486520309147336570603942900998383680540616697794703595259176848738344872560379289372585876600428744027997055323325039767115046771840319358391291597203065650435586398604763876952405253680755224737423062955217770962611470153715635822801099674289398863146346597824107180251497607426970102634805398200726175869474090106087006834905565915789395395353646939819717658402075392444351990690502352547036037692421923063800723673013477143171450999841985939204426169311783107694570988876198782281497022092287748924590861886079695775646055271426566595844221033752016378892095546751953631129839311288385526012882514395654000887129540408134669418999806097617428024666696419538981922216033801622917204313029721471752890371553856603187569284741208793808532017976972056867818083147747102502295450410347871880843202329724880214605887206970801593144578192403754108030779554733426897171834723036118977542481849592396035474536723730999045871878679618201345303666442372543644216737498559599158895096908663531765589216513776819908599476018977998291613457519243788526053234198195123831358590213956270113371540370067023842514464686649058952404860203481067396156896953315146122844043234933081813950770672794324697082463569138285602528714717141497516176432216909087370290587346089592573226508642760433918126703515813795370107389548289314910288835868240702448465339337069221141808191319820444935897025356513956813096657992511983925521060012647470516289886168896643909128696377694056234002973418348362183575918024221788033678870392282495537062349928722354352484028638676822429716570776411768485008742946149076089804728249257876605103828524445788880206638423060561474796001095916234807248587643973867575152299167286925078083425276932485398302675651012787498925109741077695582235266222770189590642955437558159748038400207917464788253162813174228653162204556872033290948582649806291714250175908167427257364669295978646957411553829022124239503538086496824680115530371050884266777658842781902261792468374093305608704878828720484018341438399938432079680672820661393805104336837883945525647916769668121436810546579427948429710955928964907685639022459296975499898024515332894602694262071581622771492852455169609267871903547708257501420498775817155599889042849376627446734120196795078254744378884240795199199381200772749118767134003579186791574125934602691063092763066788105644916249672366126241562174044665946683666490673355925715164830648544667632625360385379665858193651477609513876167946101721610774347328246731649363990696591830219697436779284726850681500327178052516354430526235136618504454668087888307171185310726466082327258571993754529217216624041947971370156087224472636053117807967256735036252375454875585733210799106659291414902359412426428458921919126250761576315636684256086275256353586180056757227217683243899701177201986975468791495846505769942568980703837928469900581878837070994199378902757138177930277381072752195391411954680503758286402295813729021068588437313912602490022444544671550875425710479457666692055017763749381798731639917991342083964393722009365641742529295103320324494840657574812054181287505092244555968789939380500620071927844360940409804855138361447730457675010227845101222807653954295449286024765858013818006763988893749543910184731155708146648718984824005731504034214166380341153309377128442950039241634444033136703398997660159143749556358892407923538609119769043033656881123811965254142814360847668714071441788411077385439882976801743119232109210189361057973591248552963435001723671367314288171351463495422803422005847655181801984858449375753018715564028614771977671349435389802658683631709562824439811157499324615392417566236933404068556114078752367254506197336666954986907021498873468969212694960873803923795846035020873627656713148382840775831493927052433827558819050018923844541792013972202663868967237831025300088452142147728602454471675415741054830328320288713126746540335821330866905925790274003959327501518480153491870815611561711467483211401475266184145823261176397205502056850231470339291976451295503828355944157099398670288778669690703187035981992192062754272013078721579275455472482869149282453326089929561865150317741279094108186353703685910376211481827610966950621104589634676027107164843148297542896221409721277073016140667514380942796734224473173468476377064067711960958666020710355696772628802366387987138684438330497378225034597046779051739863618217671243722274353712440921644458127601457326476979051526925766805218980180361940498131743504057551161514743856166147763203838342444386499346471706613254639650640169823064501029354392106462231467391159257026102901996929034421042888006138592336991998680467814203435626355627249748370771222432874159939221296866465162919038033032154508329509447894561503498423039319910419130824233633084963540304672287137815589616384513904813395698900302139155147172439210296946629347879762823466763128993482080473430641320833779848470856639777316701698349164261050165776425332755251238056353483733519492436031537859588737520362666802847355218763447455874960805003517909275565274119428409597338114200396210489419498320274370011839483981062986180623671854639404677755636762210777429921463322051287203376003033475645965199537440902572294271575333974749680334173641814268050023171706142725483960807170979244352059850468762967156704144046806056959222360029051411176336855653866587345748262631656653386978636722347019889298670333138032422208962276979258646754703777411872203818404845664794148148082554110496633140794300338612748843585650068761802856444728097823596923869697484045066565842686671140696106428550095110989699270907085045072001845369294895816562035612545551543207786942959306059799927318476815570573223692829705566063967088131190410246605389237021182907568190540028567330357748840136642724957605584615866358641995704927027621120802624142089443330693118094269717883878674919067620967142423494197384168491798855720271739112682076462199889772716950367962982513825536491947171246479763278137983707027785695937824302955471145436547381609101591674901496551499384795620992959668387455387283593944167006494902280902578008557333816019491600040399580156203450543919365526493253572392149128017406922038078763834297378226260331971052257750098419483482403931346847800454567691563595089715588989096424689266534105989283811626863012740734531871565735954782636615618045712974350300481610884619333956452955777642501355014251536816190973218794888314384286145472126565551864051941814137050200609479936433575869532468534786725196912206687558376546232962202982643629894521102433322717065825432114300594406803593166222325015925800916609799420735809260921676306831491098679405927772530305774421641500435210980985924450980251335839648736039257818708793100501885417937487015105810964617463951275707117080958421932916352729122890850782651561866911442041405782006561236599372211065646209851161941796812956194934990369949147116521088039770723077556178687986747275006398513964153448587011065011329587595353285213372036471349432037580956152866981456823898044868696833119049689184893285123779147679288656755529202101758707245219938100778327164239813852690768779253217136087248491248232196898338415004672549024195876363110031869777412813395111343943539854576859021796827818465289232393815951855801008847400137152741632112117465074501534212251194616259338986057764731136603809489428343761030686369470439991539338769157795750119642944577959440890180091791873019541850993764262870355394298305995032474931218478849765633960999593385352993355153597262493322846459780546402513391606613489838570733486998753230721271556553757802597871353402218388785341594501932322121964848697636965428627117139267536152468782818666462259171354210765744750232663452259515582162824066422001660256195076807785115607905560073293435664734103433671632061007468539044600994388478870837953324423619670188732295548632479257472681943493237680437849889803545901855289761094407454857503328224372799889672905305313996372208150830937154856096417411989835112909987080308955850353651414160308782427008458934983844925605555859641972241136526952449199728885414093450587384624227890716489643391980881758301711328481304253186691868339270296178410070714839114871696055093172830432862514187601096587883466194316365616488512716423449600425118874894027011130890432562756179833115650152148742330953069278409830444001886874375140299800367200776600170124532568030129387679628236522783721020652195212535733492597666116676888739858601838908812941165185299034547288263459637067239995602689402926245259713440807349947454278515668269049708621482059327655087979437147274398598106729195580589746808371334302318376225356169262869490413230729394501056317347348203364338885650882262213544003950823821754417024348719449442150172878702077583656558555348060302817024063007373578465710301386540887630411175391174391649985711312395037864905600502000689411003981885291152327438713524467220075783587814433476513759449532631831570916592344563516515150855974170633257907950801684450961346301721000250628725740248513490229073919575659115434842943963093070621451950768483135579519189215163432259316179135339586110007082411822256878574525373579796149672290243040289918376718372116960790592979163487707324809275241940815808321862099985777787449029151368641363865929281448833838418242552428982670866649157191183377896654983848135338700186079667387872977364321652242088181011653139592659635117393879787526374078924527390913023594403678206966517873931366928179107709173822534591415274481389893178503133424104197647461196553814669383426102694046216603285314676719469280328738203650092205603321849214579189794134033426939113245588113586302484710652028188081657474603987482222446488646482624134960829424240225624286661124326103526887839033634186261385276045450871062878722075973142232881891755981336226672301790561844662903837888678152692002088545549314057608803029282644282445232477957784301163824184678656959347145631799854789627556629146851595974709538976309480577925451334238441376919483373180698814956628146930010054241166979795157096687217357703985930279713282343240332709074550463626277286334621411745696161576185100324583211886634805289314879760702185368784126318236329741987372252554833067539374426828381440811258356833091085322134079664592323428075483813699584138526629875945255360693925397670183193513726342112130461145838568337292902077478826693636116105507732622465690100264908550620878935192816477227316775235004105647914608032444385831649440786188980491349977611849809043544627535920743291358480897606144809110107642702130379143562099388854632656811400705811706442581220493936899885486501008255332693154701950652246469666589691560657042720383343344610860529915978824267158723378566324787868010534466970487462345870545714687793537155145259976661787736915417475840876419566539883965224184912957123951262526139617538519762495431559741743386268745661557936135975367479236590331797287802179807188999845123496509862786626456755104573402631018584136760429018575053601505307247823294445084068086029377761809567017237807230947784165321488278737107439625459150654568275834385379474193161500360419095195505329104889900303509549535128265564464583742446110846265765467980484314776061235883159544095730764113392051391200844065970982684206523546153200842813467694034704497221727831447068629066202219239091344935157775635529838475218034807730594935413847050620085555142931012882313043172641004069164742830737523785604129171146917832637268052699739683977648457946891665505546781383781540352225805917325117421046221193506735753353821292699632038783450555178465932262927950242494274729621359642331034800940887023985208006339794067404244265517997921591585399321813743397156118329093934844207297087109166332578420740098224998371004461082208151399534549619116500040113902814578873696716625601319376909411152547506668727261199368472653025265274339629890465583719595179459367711823172593510641017336353916244439669640515595741977249892032077931353554101199151044804012526201921601921810962459011403397705795018318857926481749675474119718380849516587599062098345832403916868563415887233419177568649302997267091733017362161551599237371380066363072958548594071910182920012946785442585433681157778074458363708742884703901626171355814936984325077815791695264997607931230529977178691147738748254896756710266930633797024424566843104092160143561506654534942157064345947723197803388963308994892819021784127869524468585483924836167051833550747770852113107166383776870623656891358755517600718746538542984185862199437859236290917016351367944303749070393296455015935631339225658044068826882948342086424559563069442579389775319103085776681320919302782341967220930507043418272881072207509668880634856646448562959523752758756843845964350762597118079104137347884312444730428112312462906673959601476983628793315758435238129649269752117754067641145593030248478097800111314802503045063939211516814294713657107296823500090947503559514905626844461101770664164718533259406327375308605102629871527055314645567378361308295724679096916553045674832571073619054244709285534609256758002361411734825298349084896771128371461683559915422633144526666542071212432668487027200840252403074632633993562602095516456055910449664663550219874341192449071979236618603602589060721625880180219305394845173239663992751469779808308009772021173062484787750172008110618625464500414932666985972422378162419183998738338932271440074646145040862172319765128622623648518023407233125578243012612871749086665495989756688778980183794824502396354474318753493650028591098851718282261498497706769329703675851180696516423638809906700722172628395326456537076623455112967364290605361447901410195809997226392775914459790283122948722340650593515383454798697997919696000885640482407079271494949916793551151131467829547207563522596700378106937355306318814629725084868034326606879435967144938475651319031300390086302511456197366937027710403164680018104594610347574161641053389631872815826678264713081370413660973959926674673495233447080030581813589202594499898757473359918010620993454429629832411261979237725131347695015509521101837778227989201036774034316401797120388188500420864948848769431618957490231941284324258409138956152749640292140293439204440059511125810688043786768869803286265942868953632205650607503162299283776561725349895944928656583063600256650048596396613251578489391152672064995488665872199044753267553727825759914785147491371637644463750135882096885429400514224143392268868151002609178478805238057788444901471096938328671262317157882249493004093879383274527943966830425290556451470858223783569205292563123847388088647638729215279965622945616016437101230683942071936697309345234565500757650745140059659486923183194774192007135842781318844615468486688295473283799620713811429898846812494538799727074354138395224964340673115760241763043950470976820240466475409758630955810798650268857456826796264552568972167773589995838051875091344577089507065210040924297769698708473541414082806187757002371645318249182648315548266325864996925141840171393460703262445132936512449962212416709314743221222088158617667439865147758545702821968563826633308259930668472528086935906445282423377624543955788278790407800161703244395312514771342089320797390027961257554511383449995295225828953866211345858603905270115680415378503612683902026669800623369967912140827097796771923133975806169558957779570008622993450756129155279125189855039422227116367637500019953014948267360799507627353188658411763542693521067318830174999045613761760079842531788188991949549106414290533470248067978710009702813788041388584510320630622541174106415210057630840535006527287328346763268651910042055378022826873604119162986205327002924885692996951169116023106842209672019293617196282545025681201816289452800874996292403423658096159479003974627356038728161823776158666061129260379061633249449981586706621064572887922283189568315564610075362311386449733359022318650013071970844328436272937349380159833628863182670869147256590260796294626152876253285308486633820465977244828764110755003021286560344443672951881602234974393191606082558105110457552190746777074629062089345781757646899130922279549727664351048378833075041909345928348514426163446989847543096099795600047693471950494920930364558501598155746967432731346050188669893824026761350495102907185079498981114109261899492929374850112734157248733440535748852635247829647268130706952613210798422120146856721800585093372383205090857270208836967964905878450154779004221546082280728504640448243316261188573322641253522192371768385246085450408550371181144214267950076922451861019417206870498113314126421037830134063699803602638668263221387097811001700609352936938561654058688473094315560924739954841777194346290588557816103506947731524227880759663522650383545553574724986011941251989531211204902267147113702147975783068615929421547674768771499511566043496480979842721338859496595662352991083841738897837368223580423768289409631249457722423364747843032255385949115481918653609024542501154177231628845764985660334776750930163346216801079992818710726764349164217829064918579071996457826437855151906756778600821867488312496118185412114819735696018882701755341339356250720594993907951639995184846883443201705430129345523668546255806621730975494173749960343657859648654576823975679896594843982405988537170089044425062713142607497437091219432957848260929431803049083790648859593620952280781764104709084370731242872098181145535312175294336959154338800290019192672382126388147638944978397878491881677026060786083396603908236042121020032037111676108517989435294847629458014736303266947675765221526578993446797565796709428181071290763025902153538217665249638443493587154730479639691324420009075552708067806527930403112941641325872999285085177346716985981692053592340955050483014295565118019566338106421402024161172870956261712244938490858368519574539471821273235810480252713913669427689474556138827944356385026239634150690298272144913628164185996849583328462513417192564451462001317235077534418992459419135261762081567086594666003050076515271058528078654894377210207537638801188647170671448800913832643567461480606076014583484137803782061820443602089048627093491953916703494676063404444129665418266290988598405324448916079784613687955999110332794781365093246618750795112835980299696545148075957090597023874416662677864298545790943475093175976605876022439152846424472589908904302895213639217535651643782260335175156997226844369087392677318496120176303945274497403031101789568047698090957093943302338035173388514669332205385923884222636209122953739638339039949640759385892607685192591971403575839723408516939249287653800534603116741042120564553637207289286083515515033093404712337687687654855550588295294266710985276020294790965283304388291039221325586011511802171319816509354781110679119915134431591404249553775090565041657419343369135919119990949776671618262872345877640900106839541372740747325412666963611714625930452474456457038754533186327223375820155982311437801506545088668492014985875735150019503900260126857839144678345323753371780797336209646038371828859200075094946617168704661152294687479769792354044425815199248543937347547019988090766799074775423567870361230898784196036975931091099304552238652923155126320145839351559657266236492682549459104281617676533037456822419816840335224702520621792336185797034383874199595078874877049426690842918013734088940844269324120932595305470293498502819389076557375495357687914838567546957746473060189353745585289502558565394901463981395101157550181620930181002985646998457662222142878192760537105764498609632790982902146343873314244177140712199677527927202628042779995867588758050261840568788794207892458741249353655641193248483347996031941140913544734163084623946487665299663680914992390772181085968710528371176984344560932475459092034393033191108603958164140756567633849029077885898338711641522294699635917563482338415781772741702992496560756011155292583563930082141622303552693666285649807873520365153165560419695491018116873788202639689301923128305350577365204770949639169394049731149969119195587384586100088480312741311367835709142755552050332697673787227388956163183046140898458658516943600708631795778147741398414374520718356629708770231632535133170323154409397289679090106802303579901798886681914637181730916355514242256498619203527911681115392376149753211055489970254346747776347783793404459229572992512021207526905255275661243093385905480782520815189708355932914335992922693631312105569342720010100363249502777802578988634671723402148161665023196214098701563077377220997326157439914641568113301793479627252994879651994839259076055018888728077534160411560493539715392499539743054224501474561927744605231038154822277046903350139791993923978710084713104617956031775540320951536558793276496810552548227812764382816013267754376967239509153275661924619822068497741413591664838622441887073678863289093372179013682677779920701218771135044403749314280156380671505689990785552247576441132218729497972750291809379158380164926154039213499923057162252866016402237359538206670925572719105343254827192796765818060559555781920558340159203888158718280770633741100094845849178488306959772292133525576326121087276510353982725827143401753905154307736638475050631575239213814278758766436276654954110463316949737076866589822041539456002236156120276253656985551503322461383425195516934324394517406721254746577636215801463840143609561453370142871832797641946889026898918429478941108153324998511432688405418770577407654061808297953699234350483907860491990248854307715836788778204672617979625150294476697570209930130368798469851685156037463936250301769347691410731511691124889997114640866364980156995429705940729699559826930365763862486333830783419653765747253037634459870654217035532424223121990216233055090372285712456047792675760890128679243962954921022207592523857775707346436954111581795315685918233986812594807707367526469024938251920783312618563909874471338401587790986291658456674132577176670480448614027383944303498783941538713861200840051318214454997070905199245403710559232477417422829974653359024627567038482976050059457497110967043476026095542334595437180561596270740866083270641158355752205326927091865590833581715575628948802118282866775861173660631872344131498581367676953864942222753175036494893868459186172050812173479484855790793259348038360802225187227114018555067102633704181168081486157922910190878682601177092987231218189587444198344812002121680627905605005172854053826014570698020891290084464215437896275475964939251937293079319463158836220107486323965027220477117657856961822258709305081175142904191098279856365360145494817568639082640268165077914267454047848242500769365258314831710786986931331216298906536514725019260536398466984998619294167033449603584553900260958175385257092197500432383569221917231633735604002426841330329096543037654757113809038642964315223843217903882716402170754629511508361213125423701159705872705222628890439293470195260219896999065993593527336796823158733630245915385359822289279724792001666771919535396341385314096802088642227644890256582792872800694074757783896373897906298038316391842623738245462835729581854380626087210794207960393896961830927759023615433449801308186850236747597784842159977128800514898177799887495644981490594837565184635058472834747079808680861470501621390042446793997704420937055805246538923838737272316662019910965347199521035123688703214107611201426810212577675402143422172272847174338108237036430985693638546953040318852709323166046160082548566920573283779598567407687633138310328250254112391901386930181361565537823129484112025936307545178275588956073354211969293236894558656110562448362055865794898466194472996260848800783515525981520718996114114137291591506990553891323686739483623370539576099504541614100656486056071011475287323993456452776278126680507551061384029220469174360742175609297284094139529452606272455602604369440710528580926579066797345480496834745362794828471137889022914956674611334253433258137045601837258119115791722398109628981324511082384139880583894534660602754513369827756799458368749386658885462544695538868971664669823323129784007532099616669726223020602615050364905521493335955413644304748737999721516618889267245744367212037191732285615090061714633970761717838748311222549986026861372641121674537349580419442844388225829247882406995662430768263190480021730200735570751768588201210038477350521476328251887738854966802228786410927694491684768511925298304178389768537836249539435152078420132375732006934946850459554971136684168373948627174772379716691436023767492440998186127882675129211633119611478105377914791110847501028423360531790898610053682634452226484811042622312951806971855210918723699234211259265037976803239083457297358474386359713068237464974255076741296640238217092455932010745101164536886175396761607331262988715908308132957244475349593249457128708591653958638476235948501679406326976877021556992002158928443703347487644673497541624674217684506841654025190040345367433686667259185038216853222689987529130924116747047831536026968958126451935936637549136295755503098693985136399376814898028373042616528438486716684812371310079305999863890466462050912092818885223205608104766685761138789987933751650348591730751614950091352221779618837103747041760436313297603050143738935212294611772781401635832614537289270302289881218283282522517847734057596229307064695957024797461417571172466103594492935552187772447674523780151009969744386485146038539074817416571371509400785896863745127924549896649107324216790316914137992378591930120404024491180364528021844408593506105470483626158762790617096526208798161938080574974675535300302596830763896021394775527836623658993031901377138436594590050767032743099893033883056563185974773428881448215760052787476572724434699771174376865446338006185692603337858231270971218924710872401196214909012465690826712639574659328683127473683870919891274082352651500920097757726017432685349087413382175153582313780392322416057360487601606205688703134528945307503338679608874268899291757304405591017204000330177196579047969844852724520386256609666357368937327857799638879247737037715884405300253385321378439611586465961050801099599278384489611484690528012639610744179234771925669192121431358252765340009673826435160909048698538586696988221263628336285418817303093637261099190129133862907717727649151649159109854130922787137264530668987332081917914975936081735107798365281049469733562407436095947297550297766393010759971197616582921906871863226417649765029336312397181962096913687191316832468043265031498908949029456408427041571677484029645584934425653696918689523329839954216696281196962070061667139864893126615424331879389600733029139928241657217482641449202574716291320689249001711589523114961030019152346451087133659883224092843412750579539598214236473229156495503480341402208889590415385819412478226976624516674965595659704332306902017798318282498943122122874916290150963504854455367767001986874249050016168707249064131394622508039073224193201980972772192016817630654945463450429755748525326198014073899788939715385901829820782049636683050084535182595991666647948126513488086181252506390909817453110151473800589730969528174046771525176239850288931717472832341176934886929741903618501219746280025179378858572196948647523375154801432769426724192753455138067520973220147716222972793494715607125666461416596457036267092683505151190009930516302349153160509177143514758916570246211005806366934710983242703522034622304792282184739829609829541967898617173203260360950441288296923612927724623285567667913023554225867158631040780378573305023424658615463084401977198271088890968134307849236113576445107295231861953228653227304867534816851927785015758525663023201993657558784229567892676469716809260253295536656935845794315329904977857722600528559127652415821242071010666821412801707025429201345030088340181211782490553550590959427369031925164780101957330412035744520857980259963070610664500546167067648477656961540699469947241507927827934616864254937353108028923327269785400454802687909212993084224312940740228550998196339579549992330899629970183563892255537527662621440880421198813711841293819222952925478697354915187406841787079192055498059186899636295050661427636594019290049659084123624154165974797664584147203899659653549406861009013681903722834927799755845021684486856732371965043139949058413303018616841206291948009251834825439664090059199755730812730564808069138180341792610335676606208241325191003597323373495782489449659595393879999990316529099595381160468452235205123869725953505104800969426053474064821433226386336709300102427882854835032721216876752984457650425951754557997591116948760962367281279744181803704112866234454521093421357900077271890122543252250559437812146474360362627140874262812296974885704036112041355820063043847500373962455952529725152306493000891027336658848588082621470536007480899069860245602223157457568450158286988012431518744843032903013091827274620462660119460551827812369933748682616093977542950183505939839913782862950662226659692384941554164450791908953992805129274401796399481603568068669853504411267607843441238633622595743276168542694475234546770208340324974201982144453305671457825626775243271067996496048066552571524272687002492161623351474674065345894798952302715284818302726475804044198899673704349221731993607311536049713476357247820147872563957609625069681089392163474155411310884479479804317792709128308954471563881252993959648149844315753233014302427391363673378919498344144379439769301462899011080329133762018168581845820430580682882950721069951140175879376113546651538059240250592991099046730351958873976996094019669497824904544367370361725703132708018120631304032176807642821942660380101004985606773328673063633369466804106621012546578852349307500798109864413972857050687356034151765750286191850278260796192659068874279080736090712520851031183619429264504582432050906256959133548603708056997834563369790520458476762640360612890066515523855633599538607726753920967737590229732179126126001177839548181600816990522930023580570076917699300294095443719389343849296001023762594130509318646246487065774289471513028454763921739835519883553162717327942708640582124475858031042796443462461034218540983726559086390614469123689790586125673584789436914159612899819640432209942103587622478503239787669209899155097321699706819408518723381680974361165430294605465884654639476842126055147280600672615750505384056157688962694401846820061009912348805959377233014929201941999384473927466388958799544951809967723417786439673084997094212660484420027210776085739180241764158978132307427017175072439012953758746357061891225697269304759046213921076244835958554449683127094250435930370169209502178299347633739397509105325552784651578807353971728301227456705791323803953165803882000395779173317586736453012936864441825016935782721029308154124020378302809048906282541779461234507333534982569754711505701818491935526994556140509399599626228504089328725385044778253432171151977318092873517254164777889544069517392937980600293238411533820151563537507251161520734208961868237745110539785370291700604590345626912372906278962162489508859831145290457582816334795056025880286874403680247231854111077698424977712182990447008714763837491025918962832237968198830341900858057726298084169841308262250331136522537303532181936562904780839823064115194761800285530065605179525854392938175952965231952450536794058650971322318266376501921322140233962184994225794995860482489157993373791101599703042329506652847529462354498657748963756521117980381948473117632534204263247479843146822003414512485243661293186278439811415113003045039853758529232762661641176742683051255162820930121842388799334768450707532046770797227709025535488951626383306626298766952315958321623810052442064117324927656482771089834942401236383850455818913592978366610541598831568410085630201002504328811175802066205549438511747446162349075333675971592421164472325239471631399369722734894660891060982088470531068596385250354121750777824783231885987817277827531786272255215459037348428082748317098465092676604970131644609074384171253327791494308331887338038192400808145049331588999236428759182571383007601865793159377212110301526420923313599965302229343991752869857587909376476474677999412742331464336775768637976792914039515826543156365021952949033735975491384118669792107223923611490872342172890237643728440261086245331361680525788418074870399676607420522935594322620649462262364431154779320342378640907338795907539287158834238605552327870707995064114149594132548334643610550001713415118125691017579923530223593093459933795476538602230045178691229959022746326832067578275405237081365743604597775403484170490231281284469089166097074937358714663997194772042701321283124678630921835214553458824516208645155596779152051546873888901178419741288071328142646800180652876506236402824455791768977201938480979330754965892108334529529976424142838626106213115031098995567435136940986302344596521979131104940538366217706774918635377590162446513835180705655965450793753644458719647195469321369380066703543750813642891348210004418013148633610898331444428663989164385444316197170280479078050380017765701467319318649664796971872270848030590908538822496925635807416191264871182269601019278298952727900880549110564783418687737082243706015941769005120575286804196078495704126755276455507767857195123592114818306041002335633638616792407842718960006353603798721548040496042749437025118172162353696749543534804003219375449736957470593198756086612326330042920453622700026361658852360937285808959036042490167620934566985348968237100625263091649927296542594321587538119797930170516170697184421885547024617753304892213056041611331426373957019603861132634418280582942434290495243109024439664775467775939135787424470870081881153671197003123538638197466363958378428137665257820690165570034058273624792112379470884199995754619104605113377718485888779664994264163800459638067070649291486094521962430339072292134463234111715420845546235782366794180534835445750003660317431553032508695051287867397406738241420046417046256297159199321021225316311928610552182890519954611448435619819075870628349501204544053922264677704201520233840434119880140364418615226539393694422875439745571337138947022004646848812212068434772394377430698741945147571015219511443318748157273442721788197521383464580230947864678590592836853005128892307700248544189134406959457802077327997674398642949123796307218344643360337824243173853418415748688205414225204567883528106599167138915885998505652214192335429108234220211037003615659921257677837654832573021446178638702408797590530740934893125629528505796991004484844918606171146702548071855556106076261659348823594497321035734395624084129087515543097621122209456319434611336229258126668105037650165373834761480352349927460024760276801492582710467402712591100042830075251982619193691131101331740250807700183547791666999821034497525281194384580189103050574985212475102381902079995298795103221563967863022892077192088074260069768286423398943266627476577858321004570839690848480712715963214571857201507352100847321021409886412329890362362415457113214472141975030055302985452846193258112225989654647270249077730821261372098702767440467192929817270695321083298359647610285615594514193478244295821455546904785248047361753866025829081175613424370706932443754006818168337937121347627066915475491229723267690454796517702155927531273316330792815856188668273780040272318793463728902104246415984862949729588182449232773430079508138810227498143870573424675963119112980205552047696676389028737818235126689275401673849659821347861262609755697907518575744661986915663276346728037786838706924998761810041476369602042164444863494107708862110421850728154807925119301408007037536844841247025152090255962444934743428797802031397361300911195254098810752912183984816387177439986714106190515460766457263410679203580825716028299172145066886649914222702211091708843952359285535917372925776850964314251962792383628177800784717273609874371304919612643552074018896963681025544038501731162257924767811579917826157132832179583149907973180127497147148392223548979082974569055401402815234768845074309484908671905926773667625120098915212563834945938888042358630920762257743654549027976987867793420761195361653754612607966038502507584762852776208168966887063821366271768096137943096760097953655296208658607516409128442667404018808380433230505194755716568446056701761332295513614971783595833692478640367796825206800029284597180762198585827558980597343773936486579766255919925145633032317479916838674040123534325397107386958661535815557691439526817021458938654108519611483179915042775495075682276809343228353412189286947292125900587701715204458955393957332074646906450015541889030493737035888279514398733824710563485379576235155900266102010597155462191623460698933559946829396346582215588934310597821284441866540645759083241991667767390949529840703580817871178574084812267419746002121114666444154816065978141305957071117561538382879825573172775444933891706609417343041987195842032799313713569838615108736291404364705155554301154565233947090628645646292757803464100105380915171307978247617193838430766798160727872739111136284786324273187166440020902091699213776895529862969429163688897735226559251523825456966361099937597971733672437128361722396219342411080040266294629846733939376514456964870603442233468655712882386980458862831973607697688356957127980633594941336971447887125051058430089560685473231094148062070486486695588518755842507011696039542131215694955033902990478967062285665416755634528309244190037780282280787082588956552200238430253767120574519935434789332066054680884345160021747189809064402826707886006790934722652211373326839360395125538712978367253949292070601042239234976184223019570438123591679072955170264698699637157689533676144212138684117526279826393694063358466410005443605851557010798303995923183329098966855749135098501479230764923082959843898111473262534024146468943124180418124870446191145392692417144581112901259568036870834953477826345216184088415120452145735239906794470970701618798256394286745160624913983100512747856387100398577330122639526227982863384372893320184397543781313908705824064373296133665730623863686285555887753751276363259774079504431203093315743540911034148971713183225482458151797357279790034207467200605930607464839754590357834525919385356039545037300552537404626909200786105663359212745383370177065308750300211664038475208629073907364120117008522066661805630678419082075768108078121418353632388215404243738388477905221017032386915093549412900033487011433981817906140581436045509483485678591572200710063421887928217524276702627141263213970066752686493538751555023968690979159936335539261486726547454821988759383593452150464852576671429964019624568021517589723960334205573349383962174240973800865951266338144014221201171016650944384192814586284524517260983620743535294345350341379201433657374363614546384757992718054628838372673918073258456420410689159380695833966203763350643244721808996331690994032565806002756617416457291975068861424068586700493106688503737110774926859079057805016596675869452557460981027131409312430955311206888872822482952632094944240343879797092276479763259072833478063420640039708844592780548093100828909336984618093285911678982430919227733705529855449074635751627563454532828768802036974551902235988213042907292676165178074648332961447350348736901882117022591120280170298147555621528439016391961519142442880971409197990222607833411030627064989271656039069559618724271665794960968577913301961225460669340441791524139157085190539376248649342856747830451031206806866501928692408932473248064451538700186161134703982793864568441869804209623243213604496398000788522300005737968227308580666076299795975070832996200958287181297313844529279224083326854709929460221790242182214844159067933948859788660069356060554032906718259274810460258740154610847314341378732160444611907167805214872379286835135717791186046342103517830726824736721540748335285164997642388313202053601126539698435386987774070971820459531118040309414812240793213463532885295143486806652962453140518050481994130416270928920739771021201177759891461456952740678570170729136264030978647635321429388055055597670597878194503053399529201983571591631050271450506750251714661102018489045709188413705873758104727008329435601408921291541677162344244461356923539249254063206309974920599722351675112457581867073120983126298671494337608481949397678690014468731057292106019082744922706925932391144235142383213829662581218530650356860951685253136299420218348658044958968257481262130624992941698933096994045842630441338159097647026847672780640802983313209341202033879592479379857992278669413453604969039071582719370808735160056775867045855464681489293247892303398109702830135614560214837978332961900484128376954846600498732062086392980717285999590963943814773723803089538215367729947719594362726037398305286296311527763293098389150161274004176504034233353717569391120160376318748336918459133595286128311522463620036633738605794057571263620630387922545612873081154234390684939058271962221165481144726615547874808175890749946117733237835337416452677389663506669283482884876905656671495417862276518982092313329400060330499664422081299058918373536548418532232817759039638831971556358936872113614759964374875109665812429944823885882537452802670393307447760574274460020729071603984976066345080730864088214890022773728815076135235844781920741908303697607847394919454438501411876767299475092403702021145983896672751708960275886189186734379093862696686278121003235709870520588205266934812070801218912989975083251210441777058476910392700005958587906452184081611010786803996626199679951866880211150047338545160193178170417149194548504344622298314791512688004981695827719954871069413060506162308505627558196987011980220652295884550169146535290062485854690961999837806703023498635868486708121551500449896113302345141770678364870582033599104492755803691396591976888139849735089514333624530302685433590928155739356479158790968053959468680725554515026281149831313829906875420957525196733227172092954850966295970864473426424212894957556228842846272656020366727015800168079457302956178682752588393912118839254252509128720438292534981362247558370946623315585765984734886609676432348358211928498276557408800352434038551071003398323735654172759706550812686385992355885955604295746624493389626835422310379753606699357902647857508442673610940577851113056879260731868012675285038065939122263483071723788605399064185748210610803055500440763589558174937422879597901327128545335278752111663133146561241848109219554630132169309996446590514515675284634945068449855056488027180675689079158608852429854613746985002422188931413687168209958156020924310726715971078445520646967456986834198086251842593293519514281976738521022537572640996855299678036860349745052304474178183465575699435500647993567082843263727013682324600881911367288780950891775078564192396518714712476214121246532991279881938264930681680888634168366255165351149969413622521196923459724383648902074689124077517324509720074885999088574710421373650711377417304485834781835746389178274836803884314787811632630486068471574284667149176881348247911148971641481362123781270750871840317089867100632748111901795305677485599292218122017005012230007310805121841680411826621565384397088677659512025219874332670560444698135324871909199515623992065713893797007743547501266036816231844089499024607897018072142720212725639756515102666250254586537901344372843079449287613710540909043102403705508872909801002381806879761393275686733506698551571832032435077837574307263740042088957020689811115194626401837240069778090678670763610930102047566671429798467964133107953125484770259662781156017606853478315313875858737235776212481577748397431246584188489753961682977447929863501077881268377423348552893000248991353677827038923761144511879498807650354034740751952668602231440779827072272286021775089082426894099006817088396869523063632455523029023959197156223951838166171599908249573088474151354472465455871232812893700181621622052121547145220243639128735360963385603365089444225589951355865989391959941165843323026719233726217827869346035223083852115196377122557811861741671895242506694744524491625901622606823685197347531999456550718807105046939893489700603829127529711307475020850699398062548040827156970611659206514021494165842928968321627228056103323676361795618014130363857583883474658392779096571412985397271667481887587140525650679731511303660183174543413441385081843164941772242382731427661195437836826182350324469181543313650582445579167531571980405096956037733889108128277177541077923819714565951274119236636002715843461139764887913780420175349908882988469908508229291204393857001676891784796363999961307008621444781686881782428786379109724942757281142009240752445746659754782020053824697742599669491425633815832219243670160564922015724974320441700271974582061378727116194720608067074977862195286672358987491121932514026403644214313432031817745807690494972179976527610803096430537745195039036412465516393394243190152378413701157639778577810218789526309884276403007330664016205258975631526780822732859483700163100263018143117107292547845932841486602893525487900076405840403273260623866188704607368671890523771789751927688135033326321461201858441132415925315825431765792477592509457144792459328583235691912361255594471559781647235984016587839806796304206183718957497613582052666413614968830519096964646975557007337007899428397530773628976117811897243391353160536795971618398579292791925413603833687054361764170865250930742665802681562849493473243486073488958246558206539874190176645825958506823813456672665452559643031978391812448240313515653254904732603852237653204789955551376931888515115794982248885519111711606759623799115526022467693366120542187911685770780414328013595848427418453235056318702249290956168015091558709718435743396157599458621519115560073452147167165571894745064200982008542421422520286940541851775322485966810334731656574719840772147244083798842927959181590640549443286190490692103701951148900778550955794161916298499967991396474789221810951897826730910538067998571997273196570667510443972556142099979089546123429162007636546706839356561133831492570934771142871099001521457119801737153898705961807212844824944611899899472181918746077844762133245018985276152409815333007240382243850899111062304617134599694780527779066875324549622217845634418059268556150320031025234267285973514876197579972523859813288135836941919182115618298301329833088590598748240754643523917879602693601446405253957071019276413680802890680119973161843159878265784896392929967509639389612298597113255731750579509818502267701939704884664785318505113401411345174763157865903255248405994893040998714057541653326161429215323312998077939162063580604248801603665495557220258637282027197538256450786941581191839599212053087278800451305296343776356895054473764660179189055940986392278180370420362010069842781251967214941116914194449356241556819248592511864197431264521303785336750154806188380334983866055249037870279930610895751879443359512973743320787525061744383531483245117306063937271917166438980477076621188525470461090919655181407190520361546958713325013136687248120732278018281312318252126899967399875938505969238452330406812752383829357449960369481952190303826328076479488567414203655694322866582651332246540393152834193983002461463271529060374943742343588818448364316786321503959507547324072489221130019856413131036763596063793410533272382395398215045104612748151164170347372121367328226721774638647417334614691612625684400445804423809443425267930271550606313870681805636360532183874565011370108267795654754923974671022176657079145025712835423490440156149953152224744481814865249019917477259708893299614835275083660409322178380272542014843017966274152860829039213668881242038866619717566570665126139524892669907397497534010029156861643002522084445457683153777624157780925787635800425282837866973474776407949008821123430956512018791407710485650255179594658635239859850257719027575443844647452563360322392110318974122098150134887540697979674337223438204879233835336972075251993507793753617470030265927315106585855178553162375914425523122572894794022408515916791221655438635396670982510126743733718132528254351523485888489400347060651715728807762459129471985219107715635197240649344116848079004749083424727897962672507628695748490493113249217729008173418640976446450775285280676576439715724819468835072879056280759413005695682335847930917331419093968038285511229185957961599729896183891121142104510982033381577452603361316404474115414710897419650875362793997011606801412910201190980809558429470657888961204405653044889158391541797516781611425292384476024426135090106930248871114580298108866597704351184336800376121199865370440053916784065440121589443855969012760069005351462501847558023211387808879038828691472907298716185162812556208101174413511205099140842336163337256299774353590998635906069482944986849074106669877505043253381206104008535122280911763689533824928901334930791061135935488838810695045934155665093432364939685133402241581323566657869688459239840796317657884565356015896640799598254476337533007388284276901763692757368383781023054869654049216120899603315821806749285028624068337668863937514659620324354968471740151475265036192928021872052191285274746379018758238569732466397114139276135415777640933769627186916988270814538313242864071088715250516179614922422220142892392923091142128454096290459990283992645610193416732894370134002568357871251137505183439138379315290920445337719065961406408253462582954482225687481227479013013999088558098360190635868455426219559187471324674467413877613568975162538746676014097528081326280277262832366255779847817695052712871442047483206511458340323585603035465756167111570552280569012258207048451271235270304271587009571575115915938480993878367871934256046534705071706023237157189901994945531554096148916667639210917005070736279278487439829092161279189021950016472070800260420618543489620531443421219764646308086491621489038555462931383340924689751181039924029853272164675444392230969733513254251624950837013603252780026995837329070104023179071030722374172680247753299088478529258853508927080653277949478450794284618190530578004516652363692865614582243229400106684358224782545081821989196682943622188922610028400937039216436022785542428154806424404357273172335735480245931575642064672315516524278112700915383161676263749057869291768941062773211452364839560008412556350308236985826489144275191583225043233195929290570903099634291579231992222847993945413544400598970568088520140372694972122817202394989870089308206534668920770295713658722541142794540407165567866385661618175062266528115842064003603499596661482933981551383056174005413889048437178998825931204792322735488097288074639785834004553646292595322750880525610183439768634018515889990654259801804225205105531733943173646879087231903891752528144210265812337680383195755428409437279564079074540588172782897324342801821556098406203148589743129813576918139903876561092223619678937048776404374608990104975927963791643974235848187412776954269603047486810782053358274088076450083442211012874276925264641154394780903394089883909403600162513294065470286787625851340551799211040307051343248255322198411587427523822430589572517853603985645234546549859809841428526868470135474732048942383060306316054360903727883138843036053116646248693108105156246592958759989540135045110897200292732493226843451536626077748744880436629558640344718631094392601532254209664082032241855683741255238796548949400800572884573051189143030358443403382918894787050126409366754004263039666488461106970724670593732912823294820607864441525643657035866422377209519539385778184939909381619564951215761590255509300049127828138396859459332508692051090481797069076226774404115783106743419766038593682630665990296998391928093486936899753093156651030617671685940146371029286614468214554412193066297988080869297056053160469210762350067644013392571492345273240546883988559032767977109003969313533089105237365617046222744728715769230449401029265170695009390929179954165161972605464532628724490646899271646548105305313704708137152992895545417359614934233828954183572733098429003519962643749590221643283511495838877231743688907496556011897644929181425561008561659708980764354058830483291229185709385605396471005816868568212539037481739513925206694135724921094499306297178560873274864326501763146258507788234220214817939203967706318695345562461039552998733448359908694661374792597929958805491092679102001295993047643873223248505981388641663057749357663646398912409614490832957154241406519587914977980174079388438320438181024928795010429006555959614040133977926754964417656238788275973492845577206192321055545097222437100612683999040185619352902531240171194582386699149127792145143528541683689227171762277086175929573310488988872770678497433078000235423249784367818923892032548729070482821625874280184787620375167845592347103740608047233453812744074675518449111329869138211803067428749263728277907509939071483747114658858820361830410965047109876786446395189468736545677877467524576947030029730438469323150090072201932250137141376066290117945738394421754847012910441345118064838348736139377338949629628370107746005746452840926231620652078575685675809282385574257532746832905503500251543559469100839511689523771069911825899106821034412823879373924522274716628509327273870358694514223731051327472851742791897354132049531230149848122860964784548608558697706184988603275519288689296472705959606458736642167814876132949943193238024143830374137795611777667457103405280759396478766627527721553924333067531973645617317614342888777149927413711094232952374656026283845988713182748755188631094424751562056880533570201047121371149001731597670631238407443002859885587347561428577594456118150814549490473622661459901204611855182821213432534718903937407426125201765736926030579250779623312250205940555791600704810727464568472421513714905010137905921650036095283949339591246172149065530533667982658178342894652176888554722232520325356694330364888016125033780059824859759220034411481543867459259358851253205085034574723146717927089170974343382734689193065836342997321119271253610931246370634590799725487206422757762631452308613145326445984304918802757728334147372826060394782083751784992663727610717914608337711720762561968975321505879298994775288883881983081147922445701398203231229103219649664941870193870272260450615179300264323334708623822612105673236334817765205786716420207374054001086192406641279735716310170764477085497184212297250116613549329487546893774499968332810450443387292783748273125961191766214622305425534811706027873221339966248565256588738811753073756489802925262142071717377599663691381176080704379709795391863498665493729592958977376314472968133719639730772353708972094124086116540884309102855038222839979879626873335836799879969081370772387135451796563483515193973273815847172264981388605097290680368813316753580085786429413187010125064388084155136288692815296536204510135316270095207012272528562244940931349646831935431893872781266225217489448777135441501799833621630101021084794035903341984952964093807280385303654923222360026565604390124990934787181745150652260898828842436907159410861059485236657970444838551533359005576719688858851626345151742969930652685201166447935868369687657024213522125116940555605843218952537858396625164009699964241438219143075398915078793045532235908914510304521719940892713017217182262423373365404294437653419031325421560174985100633155104858030106367779815733635521179456726452971947193788606487961947423034877686051496997858727570424460595381927828958891895805523176577837833837544754603796321768578586066740695360514081293327006293976937786212931324609265471363265662835991806217371645355220933777112528664700091987873277032250165979654797163096800623804399499583515125411272989720379236532089768611739751853311499782099588390809756991143794053664633809967795337413601904838404396223703313069634036228898818742921365625458504393953489094527912426448222204842788737224557596683347311412317861135712486754384899842639894453367152100725092505934304077093294667542408749632601065299472329006437161187633735323186946806010129665278154477741957571782569110708969953180577087235595507522698597928589932459918651880130155247369441685206303879492003959254355441734127174427989722635113715726919051842086367758198892054286860473758452806086916366129990176044547576877584226150466835833328961447763006551371762671181069509912482715659412404035331190584296131465306046717723637944959235294424088551815791896378692351874666298238339188180611919484169774267157007939231005684566876263207732509279650672931787335237437968621783151637787074557564034166563655817296679203036230471770742040963744379443878597702487968095550078006908568549829824000697794187679580186412780073338377021704111506516632120145928751138210088008827102154321340877800347737055910940908695909673626363178649620170977913697691563783241709882637953683390900072060758780813554354437020295353112612772529848943595826695772940291881104773602475490191085216272640345135544362615889508997865718910620381924489196398261585162610605295305393150393174054444010439293026431679662165682964749545631797795254590556152503620287084696270046766853440061444520927477499695715505142213325146188967315725768559089883560619533051140095647473246366108153827347839793582907466878259093282010431988266165187216326255920749085277832396773374327086341036454167292360596237433689591361264237446475199650409954495190345599726899831547096539405519561410043852384658633526454525925560487402658116735730309761974912839062540155133475405073037756311929091499883024289544474608327641969233984649536851758211612930849288313068007516930577152107545976200298282306597523552880229947681683911350582312204021574063220814962208466801008981671091856840490320084749696334164869076363157844176908827939957812598722435401661655491494541089109620112137952666616532709075026301127653322967952500470956410345270207243284253085496178882061169922740491273370583008154148586683292860318929050649481218708927945703442374822900266635625574299283876544135603971460861706841162889158323882501974915024663387891573564273614222703479930305966685715449325888902827241916801848565877165035683047988708133212266270296137694104974042390372727165977239429622646221112183783324392230356221706877079952818175731444671215018289727946481399066914482541044239151386915860945970077245958450421688305204959364230287501638083208546047573075735863692483954657399496287255903613275218892669080875337861558738068083805503115945450834809280277072088330235496474757374220474101265627801770765363326129806193399458332922510895258109496744210368384004145263806682108490831552538200970868658542179322570127331467362016229794707131972230421947219560475982411474572783014475756327030094437846912727678313943481221534299634635056685700983364512126681293059096883140496011698004018676459516983994541618399550169312755051250136023009186525627181782534432019280207430547815270135120723670727240023632175069844907592387115974272456415589207072455536963919554449166862005158161524173712709056917824424036264125289325472267174135521139372608050820916162373118486982110771222548348515128585103977927664591839653853294028682678355589509938167970685738713512373590426324817313812772701534936756475837422586877289544401580209182127115204736850906584346087290882868914296041874343677548243349791251354446976869168195986390347073810857231068444848260845217907359458340209485785529326685412554734577637628097276948410869158422250513621212117596512239985859410742851015151288385153784458881924767495194303927857731221587362347775593559852385922138660959422770197191962050892042638686155837137408251559249513923612786059599662209380809042329088415134230060607600855963430672228583766636684304912438018099844796928611555915990700644322036813688841814368820928351699243526950376142093323998389023816150528259731632331093470826304737992451170311502505216655348467700499235136470781802545209330973343636728155242220409147785485500296923224063679687670792834255226647534022349268229897835559138618552488819503264106633331590181180601522164828314653472163650890686217957045692598518536461021186168961717412909000516460036452956383349324496012389571880384982703655487381546614465633569999179312795115216809942621852489871247582255261003807410209977490320546499986398379682884216932064471936638126681279289972968406972854967275886602736358388460205925758142274726054969112450269326745349541497677632041817365030056536311427465059602653939713632720907880191589699385748100960003972976879551724438102676757423386070810451734888662290795766450953069461489633698525687318182019831299096028195614328385604716331478061902771959263354847707728619056222108281478645378286993655574902732110498458273104127822740415175321616325769202014991295006571661409459020959819490465381783046511997729338321085859377264454745713903141105948910405135305086777682980262305037776682438167509700728249861229213499041319973162249106125763028130705175428007804665067379327821498376544104984799552511273561950399276023067356776276224948044276861461160436391451092886976751041685371189725655206233804953239576858146853097394444079900625952114417496356171280623334285653170395897094782528648081324842962189536808494279286183503297592824992989122221004980821813016470038753543685895870403197914947042511351676904103119536156317834849536279727960962644634382092506921643065390557020403136290126668817118627689717013223032585983468440677183210824785914412984462674970702155658790103355051958398173326099626378198006997201795354327948598338793718534534527181945927313333610944273749980313769037419660297558928071260358365600144958527793095553493115148850854619531554076497278619828588462234323400071255445118467253642204985694658093229670885978545015204171232724504419986208212256283162237512813156143452609145327523154468878040144109834380675358364457499376627420465162207100474763968327658273159827317774492586909657072818160528875222577666554565273396739799928363035410501436490701723318755487959864259248667265836735873345481207065313060525770865712177814583827560683699420944307626506448716472850979649309236805848293712395020054653911117784096787170463656914618730024719385992427138067299228904642675640772668590004069584973261307060897958844591622311137381339642224536638440661113976301291800955950454988499182896223008270993205621317338513447712659196984645757418692422768196255982655843850537787913239270118007595451707732489387909289887182546948875303664218199648758727959147814818302159914512037719331330871194569342113329450581543537424766025551695451179289922631313741671417786586591662534869777901240266561398647822903003825377120525224283351090209863604305533228679102853918358425822142852252156894472172297717228677688552183159557463092457888740703557951586242217017607631250045320331062267013492276346705091980489558022694567204050800084892056941397622521685681439126276251511949383801361686649933151423638096073398502616338820688454270287080015366929281623171498586186926734649947356635885288104272714823516754934321517586621700276808970642061464267031158477607936284055122837152505943513801444338571444945183458283075131140247862614889153515731638532388070863309878774424656935873355796419188280892138545511741556955101902868606242661305032096399584132798922517351550926443847921097159207260126805083500406926109762527441462241752301040301631846570341447028678147792027256342463792515099406077336689664035368882362172943078695178225910078238550281304559212246682196858162454395325570955123389179447406887168540961279217400965798195287555897481722942286597336426856102908081283612505916511509131330585326060406014373660905396714040189602925426425746802516703084723290692481230992940344133477844421796476015110560122032719552261159124647935271004647221667531121074219185180857235552648439108353120548366797787146653245858055270849914625574115956774902063400596900726197211410418308670203837691415828894453413750362317432877332829587133603282614657221905122119022514737991761688132440265282601493226389724160390138551003756553474463326979467988650556197806168986360235365811968629838388202732626867797596145736860054384078551146142380519442766112987117199039513462542531262925044619479428975135978501411336991871628477984116677667234747959438333739928118354841279578375198631582930416944867466936389453114866652910205120355048432645974751484308066817402505326909616532368092730845333766737601593062502031088509973820419875189457619448243360283442173667261074968212435257110773236520286838990191108992831400500797344244838795158209923737771016251695485209220389923981903179087226416599193718878829670059150023898269142313619556262156304506326656711223626034635685907612899697223227495999230707669894980464079893810112559439086268783686181738732769168433330013988230143024885625560192985550448371382079086224990378642695546060530151318405305514680990918416764073705203121687552062846733026478034617925920562222257811618783034852205939937349544090205235023221820834926606313802245315522604942032467110425937081829310962740272761900962820891912971319253290177298642556334091028660311508429965410462732409033624488907939927492500423566022382909512327217397243990752584025394432069469377778140070726280729017392724769960188199658800169643021537082204062411983585255939610798389687341318096708529538829916673922467723202065490670488245333307725454176406100785214123055593245292894137752179899819479438895425790420056403588649118921321375074396983984612326056385683703655297211101590068167338220024853676861400501080138881982110334472880812101839775612258208785536844390211131262903094998625993530674972716002753606617103837706450031491413208598542144012415159474694763708813013399092366248292942088528342211599492834324710532263247138634000415134805445518574481252698614031398202025658167203745324255498911679503987815489999115235128890146730468870365671784720277273923571233565763750212968214302609147748189423534073102944266554650309531849517593658586231783250688287609360633000007755066111764928932310312338360170894281949478119391787774901228621091662343643462969080796262924547171235766737884332725903063083744826153447899156429591108092954106809104004893683734982238566142700654174982317020838153603688032555823645227604889809506027275908876525533674160816669981092669416395702540777457469221616026405030352806959182448459124127321204584471526137098418168265902336737426854527200642488778396090311573436570687491042716388109094094805102762226550363634912785564085800385615707803207763103138980368385577652890878989684783877954546540014890254743474886530285390833761893436391237690333798727535416142826473431780921400365896359991432682720162848981304141980311794523764730698264884769424278076808141579600034698504526297691077467958310991617324283276373881085096187792909437660103803586230725128894948503858591527100529823138471279226292785789249857234717615156579314707440972190803533398632365135246680161223571030348334260170017137682207502726467258516256179222189896643136068016529969981765395897095352847156006989164484476899232361855184065234358343861318157324815791107977973352170447763797667505644084847893838386818476145697160261771624147433854192715897742120795562164629179039733529957448251725857449574234917915937723883678179565333326219513007719748181882811566385901702036619761889999190234462386136213778323963263086936898756470264040058697934018160357657944206887431523692389165969485619945768801365418413024580532432320046309081383308088837972526656400519111694651449651613018605450120109371503760973454417245809263394575588736033047377987946240884251006007574984584198392441365805106465873705159102943053118210305171982916876820469682230174181385031443932589038838920733728071908051066498710866711097522410021349382415380807521555036159595171880040194588450066174067401005616033621262953487183365698409934835288698692701046213705838373783794828451856405059960149455418435430376664535546325435761846406077429076401918540297112773022352087062296011009445329785554259464392914475879867353526658263353091256591182510276706067560502748458240575985236992663495083924625419579417842500240706074643935626975723658872612342983549611713117503087874705597780437508278429344813308730031722004877326246112617334123585597510326141931015160469848590510425857609417053277569491633426804785627394308443860506176881559443280173835613833850803740241423085491266748477416046338991997154405027389985488107019162129916445794226394121268115596178469460889832870335634351877057129993018532512581458962045747760331526438951441980970370408818933561854223294900757477856053504675231601785840967049057521903546292785183521846590697929949549777593561866214260016614034999182557481205795772486417266237905520196355090271498615003441340974363197254255461236452962451422017494063249533533680073565035492868353540381552103761506393720861062989076004388988494216114312022299885778675202023934987942303458097282741799006370835942297811460140443461054350568423319041706517752830452586300689071382468942037520021195736280573916274907440790196929379666856219741071737459938775526536693916787624024374925814510253564515141130071097639572620252499363858095930496320149819173703556791285962405666681192314318932464345782784020106091644063326214470916815706546876214135203295922630383721928420839555137508660649781326240496339998364508651974462119812434336777990885139479975704457981429769175220848506204908994618765975062547723602311600437741355866310133368789983748645632140973346382607678655865429093364397566939552661848060376519557793955176692771958327725127439159068288788185010255674656264492521974575318080949457443076011651749907233469864088545410603842635133925156282420405132905993635849466602583922371539085815421013774072030826465252420710815898001130125063668975870368766620154289021343356977056001946700587377795728511429650139998036457333583523594385112470140650316461378575462869086274611773956175033811538151084174567344616914435238285432985407347484594396282658161859441319923094173417435647503372631229382434351283773488688876430488780828773195731061251683745962773436881917673300877865956786341474391901517028031878220479625754497043324248542814959900786416349299315073192135214610924679343227207317785819242735547407259830407492038408435155929115018811194086610351890000883083400138421888570174384470039116813851673644480984118354895296287086865546937456889259499032728459050695466723093759884093657220120585266715433261904267641744614741126001131958466811624795452006728100336552924532367554464918644078705460682083009407450348604210205886157349566995142341248091797640395725720206605907602948103634404445577427221953439793965263630730291561266551673083823743930694560131081034342868424788139612593887984394922009175221561809965995546848944787109449273132513536359272667015589722471718549992448906260652189222431446337438396487262408020967939527712749086373243301778091843990196538451720186542574177625945266883927373155361345843398097606694736361365599886313535436474954518390831646372409914157279120723694791091946570015489677416191393488626251685088559206689223118178705991695999557516105769692546977374075632943003062159194674237448062983541333348448187708234809523699450139349563391785938943988462096087620746302626149153089618704742948363401248781937661899348418178529516610984463223628223165067759217301686759075056913353704046718908263187756863076638914729215880718368816861698143147064955453493883165596122923293486100540181917533530400106064145687549793742316098110252733216151521445079655181603794022060793823789655026268626282529513900343637265066078407074490589660033113707394007979973813645595489619873354663939777761381289178366641447096992977594600591779691638914101758352999325985484960831719601761208012861298444936085095303869133345644771474517389411853783468769166990138488196404031628084926732773749232490410813535427844925294647421443698040091832162703392431647825997052383202590772458122456684488855032818853813255923409455552630165419244541431950491870512396726608342411781696152520991681211669511309832762200728578438091855705712878816414738279487199280032574907985717703073660487874134408509954307249445444302515407154648104143318992777173510255616712688352814490608089502650354254095429956826212305599591933807671753816371815185343220341753250560242557079340654518893738411897815397308781404070003221855428993913789372173131808659876604905682496726255295173571372314392044555019847524950436203040511377432750615331947285983922795776560321837540647190694703070412837521311987999428300986783739926451776833159886166580269518055345892676391454405393752980767767356548490231862034969656608178341415435759788015297828972025711928734603853841081310740880136625088563106117030350416837569351521512184190217734118885591307982966754418580609818175659527911766976946506681429253713737410236398818897880261423532814124753641216941941982485913768825033627012378948944768198872831435287110660823107873457725429735563509432049722218964234393442313389518339454630304899975339568735532971398375204227320139195409086815176420920908524636559191551284242261079005928135763897259708048376446202253995596868781996792456399302891846761305364943370314693636042388572674916118683318833549325064723213183040265127698784187447943811638227621077502539472149284862273944495437584439239298875410431857086970316739899269024057221882033853070240078606847997225078309424435699451701759792360061727436200908466477005404004328944208284057090327408015587011784748915959769850447192077737093604642459911801364203983033172453762140962764747454752401553390196471416877625760824167996771440797155560814496005810005437118915980760702728666365237766411447672032848900969641092783432004859363975535013533461545009476134490988373578846636945714500898435731376673555299993586692466612534146324069266240619007715396817964904447396632000474261157048144038422540204263100316935273558812312931789654470443780297697076085223743146462933183028315514930503660126031293277952049079773750990935390193208532632030014839800765413475000424989428644667405340132039750288271826885134489714999929292854011598630379328216365958462362894639295130780375845837594487854055698577518428924898033210853410095424418157459912474602275390166974571514193442037043017170170896437764510183406360221342153280201672397194508610187051938329002292404121701362920196586379671922337219978043136825992001134366746075360465948308007844376082165235528855736144536062742678268972674460755743257182089503657492263226222485908143675232066438208942818856950871494602109084686382761928967406704650096216807931175603118869961026123753677539395665350619389235523517141980830637531631248360595363983008197438134436698920520203022174455930781416288468298731312075321819102903815132923539603084984553072212291328156679978384642583384660587680757797651579471673006919318294910891445804465848433309895842342972609645386123792561957086211997027898362413111624029844574565532176037872838857236181987530623942814266056385873214080142327924593756768193243779560946497371237557253895276152586284114278216592839072077830543059197575224637723174598991840777063532288074814712508694543889491575341948121789024111972575299974602815281182597241331471762532750466257735143778276314249170130181682037703767439345929801851428011633270080464670434037364192675885112759169502337192073125238281558701152131745457429121739606116591426846654338241808826897649673488576031594170418718458976763677996865638301022617422583650311788965090678933766181987015367766558100228274725044991482728474599254508594847315442067529065637559335097952597187592751683567591648097776572755758837300679031797168784597942251756851706498229733420877468805882427135347605292967814407750302892658579782338899909218246158416533964398030496449567953351719185280229644056098831079140856266952214429829435598777369077264149988641931099256187759524723989911879403057171006505416368974434226380409702234953904875976751738214129181583921909176639052733817508989713601844218596117053437406396527399055442777444307473544241297878260983754276205203347075027931145733126152127961103062675351803645775361020001467317491890058239993673247493560192983083850484749382320760204436127794401231554898905997998062120255062290915173191364271376985474732462612150744662561236067900506985199879833889539342859484274821807604459826284578823690576967998275514391472717653422905919631804814697065157962608457133838717306805251189992272806312496287407467932017171060915020648071069968927200122966097034091230305970678881192110347790849403540179591056970200835409280437616057431915655973577119419565599940471702276551182617716837502206928836509300253376791957127303247786007975793856469050324509443819810561453465983072138600963848769712047925213675676739403990477028697533578022682929154214403101802876599975394194574787326886864802276346854521382352871850848155411492977958770344164931357723723383521521769243770809168669023244691031952854663715628917250348875643383154165610743995642313350527432234949684676936227848886769826639555402906701902468621965151087924470503126267689242438409834756951726397353448999147350399794894099967959169538721215226783015283539377169249631181814151664632522506322989312793961471864445831463564374508071826555123824848584988402507997509916660261826194146052093999518046934829828973255418697576618712033336612230649933519127564582232943729400083312577362319682181439924316774380874126939977324418062811577898556116785890151640052052912445674318883870994308552755800906014408157460138350538283832305025584406379433409934692561443315197919494780231030040326108363423132446774973880385352086630638240066472330119467827969835933226181981228939314811304990628263576206837025937215079349756559718951161807188362344678453812381357508384644302551948711696978123021650019644054462168194614387815725199625246981912096556801194263408575460781312156806270725711300434955945230958411651793557905843592861664405745533308865773347479734591507551177556255873846598106691030606058016840628064389962411164202951598708892664621812975881678023168711765232599658881508730870898659751417740310577178645525001726566985338422363431299549914018252641928203260161084014138635026870419208696505486697204288198693772895140759140706429244090439035240843314715106665495477520451927954965882831268755563011078742402944197543151069561957508661067998728289118538130063626772763620318145471646747900575071525967014456683734286599730701101565694358109600970555372983960109007569259275756184857062785440248202043418153492417161188568357405264728370225302592202231666839002144554023710511413893973933094679608115367171833830554153527170156367632301421539596982082184512240911446151112281041503688450476859554585190416419694825250249722875246935350925463164874348417384656215314843365888062873973986220444859528380758028075605381059283293991970855717806548044093373406199662832415139404762800246647229697309857201318799328401333352052443068131338282981702375452997145049940760091249637421975208027549287855062903490558358641238715526995732358557688775913822085231663689241509562607985212465584089993554457650432211903343149419510418875767097022650063865021629556903130744748633920063272274945410453410343540978004189908198654271073868847620492633039857859432295658823319639576947400338334524712249156104475712096520541048370095468874783669835464817457110166156327207809125808917472370365604924598757909660833375239597828896334037169633846664980413494141845665105044097579600112746161988164094551476395627518823661302985779790595555002940249749759482473661500718392611695139359323216413806909053846802907196298499489029498761960960951738474067813416923134922553477851421371539576869370360119698143493117767140844375952094460239135706820612492251568698917763303882597513078554474904599971196216492756021340349556386977103269026560915961150020061569400748333479438130412194548158963219393981490875432849878639996355554260931934476912409304582359556955583490289315654212340954717378157551824849416494299415969317633238276634836349524110968819369564328714551687653343746994006881567202069890616132993069174683350503734123793252321350308596972107709208888218616911832960009640175761283053661073434848154876065912597509216136758519961230651048215110755753147692264436632283033044427179358119924419213767200639897647250219586833777440907588725984220075163199808695586027132588671807586451315758440285438842622935026285892839513465687265839646675556155718103851704480312096221582631219510890295140470969695081569621858129890955680855670994743993275272900957325605018185327100062289530866782615449816790560237897080550634067396340539574914669183997908178423880115004439632192832891682682822151536277651334804802615973335593764005022364660559396097100005919659360195739681033884150495975794148041295812840372366518484380591858829938223227093027313978218873151017047175063912989003807114196227666935117270608898683761955981341459970527061658618405636556340539833612685447480656211190473715085520056986817660374520069063464699839779176857524629545277413746267337313343916509431368865969216840643990856892468759744524180413415271554083218359944614199754240308272798305509331846223020800679785026068297952327431105432327043583901459570681124306131982966851756660298351408302004636010375833761122119864829978528810250764361226452457848224004075893719271114885566012486629572018020664429022124784523362880747700836864078655467643435516676534284075869743410817509016884183325764737503074531048682442769763597432276638256960583908698603494605360263411277788190382145523142015860336163873724567131094898818072302352298229295609231042696276401135580073175781930826259038280746069494814533983347723429832283533356147182807062605775020274767009165140244442221949210177426697104934293404489786417515826915877517555734839660062126876280111907472806481211769490054413231583675380660539435078262871355491173784960800152408721864917889633358305752723500846535462313813164445341593827901004598673576384653915582445761345371646377155915481795673617164851978927876624609982624755037416358300878491838930606585512986820988131413094503667352794881104877614326715725371242980706095649875690694846093354436627856148023333493450409061224159823693229634695494777198569448503100266887469306094476693653932296223140661342330298070405382093386303627989679152696424839359825814193548399905810967265339035955055449060281192482272486243010464535346681941381039420051515459282634200270731564609043474081699077269495816232857942439311163363135706778799342540538149971667918263342940070727240056230220592998398115536359593709397096488745512152569193146291672544673369634264434471422897149259182339639868249051413337873081024113369847959907075018658625479891265538136675196293623238553103664001106729061858680045212759389673230247649740263337679271245547810213618923138740617623251182485026667415066503355825597443679034754144474914852117762440413253542481451817088757216624507592615522306830986619629797918549652893783971219671784682102649523101113430173967191631361643146268120547323604328448937560324571645918095534443578240931143392909377829528513112513180816993654370287105385297898314085224326165308778637186006007466208661956215055648497517625612494033548394385479827475077872107612782216050367366406039243970086462664824144517707464156980092953817280147210341027491704781836746929495606846454067191205203142333227498321813924629921461460313368589984414590641335555021856276194591340764897722027173130757811639125663079601517239801226914278259836092694557361437238774111943376910319220074027609749696303370276638675091769211235196400110803637477530944782777034927979761782852309433143622524924011256113256206599247367159466835754450600449157591921919665687062129570357209666470738924982974465917791368388654622927470665286227259644279040023338771816522228400831584534316652091394656245308398111921126595159205618668664318999329538406815190934351773800230297286116126619192999974994676834953884381617624173987101672812950443124074043170213619265780211848523271335502671508869974032832607175465640451371215463449326812313795131421891697823321670226237694476266985172032832704606243133999526848316246790433526341675287855864521496069637248423605141660452931896734353279387654159582941788255311447689113886593235655340139862815258723483724093140611890707846989781514493971055391656122740932193735222903337438652161606885662039995289433473637778056205775966221853584077308992696283052334465330712981861893819091246867133899213591098030139409413594186695145792388634455932675164807907219400485912018101088283162231933215848970214693768637667903440759961252111886246536388687474526527752385983477648796029856731461209967302693172878491773469158095636220244173641939914855713594741680442704508520270165471900247964423273826452606412595523926132364658542691456775233390720864930820715458027039122713084466054254560778707364103017107603157666106125364983187434544911750357276549938769089447680815126698770099430633091727205703325131491284993649624542317968821622093407900254237680755854695007365461325062303798514190070987900907150675664358494618092094514891597714361334553671227634045393626585808178689948525494803500655193518912248462347797958537884800140639604587451501670867082561379838292194921295961105731932704254401844002357454946503522441458162437382780855441197236495248534959561901841779942975646915319153012718543314457595007938203227129120831822120364677987460002888585451100370045378559899934363576450686080581500014089866918700585057391303188968601593658828358780733221855802162185374834910980335827428116446877534779796323507601917252553313793402680971476122374966799929489534542734190831970048348697996156726238600807741321823837816429691258410401208515816844815914051757336126451984925956718745644048436634800729722798230555512905620318036947957881189273995362490947331392259593619190839585509683230139713047279073943974920922881736870326924051473960012859109055360300001566006517745665947090930973741900975221670278324713877572118789487365519989754214275455800950595993140249312447563404385767974753867862987179234880928774176645022654763143896127968647463934838628454730148677353476379264259353902032966481109329284783751247607919602675607094682146260654474287536100475332781668010321483103624870561000421134547977114125601808039701851151408076195785156126838343880490567081346346639693503662991769127729535075990407467922270884154493272122097205653769668045842152977723124125908857697445494884448700807504071442870220055975743135758032199234232107796003933035364465192495301972288177106311451292318388020792867056543702285619918113931380443342728097650793641587795718311930026874383886822961536996478707845954330495248394252679482467295867098941807547883039705095632251956160453362793578500506434380976020439885336349804992418675346762566769629560057120362513458516523540193087606199738950446789664736913521315956363436317762972818722762942501086336663482568816269156220399429221239329731066657218149073704691471964524042311495527507897863009198938065107097392642660573696936202982264203782271407781418609881790809993463858844838402482702619600436420750103220361668036838761673404288703833722394623054047658091751716912427247021024501829292867899768814797161580737115431407505400079788164114966801647467979186205346406260608943068773658324898323470135702855999891079106239865580052513091697284487854860270145113468055187481202465885445892645286654616845153728564499374335842557966612898689971616081455124877258757990213908756848662126473205140209937856962549470535859793168187040975479230472652892258565744683218360372947204964445377798662019082539085756465085696267820728788610227635890910667449800245307838843290671450915752762581858082400151882251225525770197862789132902616714730196613805474075369692937194693838876989787471204913635612913885572782284444174800550432895665429062254048502619615915377196529196422326136943140787770363566040758278439849106230234154308329645214567883011745253928241858555954414067157027858794737268946221026611248616745996740487510835284347569539559410572865995891075255597359029469358584037678713997734230828280720268739684345272081068237107486465747503826150852705503943311069218883275578968899857427342108989618631784798730728471487892329070433952878899742524585958791865784387812162192748510750105220748196376879050202087640383329327780806373199191838244944710966565630576174810816535861951743699863378666613619655541538664960143976263034112709573618482268092616545273946773094995837561802803195711264673000066774394062240020061210572130401669333911237222704668885096310610779325537715268225500442757999725821897903850141818695098363061643529074340726182597924206490039803908959885559619684141058865633566854388218344508817942841644966836264520139619395403345510174125451637590590354159565656413677594687140720557639585648014464081342134604729604205782793257623804941030446035791118802203539390676969199493057239523617809958554276358939570860147855844673232247057315284681108143412698739358379046140778250005506424504130547395230701116453326598333215356774824821557734403464510193962677091218616581145856764888471336346606364201060437856051310671986045115020630935466376142318779113082917878318300710797158919460081984877270096965713913588913827443559524740948199979427172006636389772833698631635318143176062799215220115846504346632900654165817594035081161237653151176825835506741350102640660229458097730176564411672551325437368236064758319249453723032918847603579977806627450044141552246746396399089165199363822237699821546758677944878457696141710784231213517594562347416050226413928517602803966583294673844996984408006718290577669618170763879492411355783487031287548399688936679034933761426081940038643508905440355955185452033452250237528476837033419998320387945220231029228537326270827129830576131397496859935378325140659372608987145513064702587408879426668461325867226500364545293541431507306123702738011964479151226638228931307992855595869273954295993848576809689689680838613205872949259743240694151254996143865838983169929904947699706764237295966130284270114996825638111602830522814261994597639302140138035820346173670436128817643496732060467488314138041061951170643647216704755228589826455477358848902241557882948704595800572177883965874637596436137105895043936429465906670935149157055957420225599363937479970005583520138753541651709124117818127985503252837816012762676983959838885791509790372062439720602967759295425886521576440527771552849729751168107176228849069656433864180830107045516034544247086431292687478888532301465058670428768218481425035466039101172126992278100119845718988920622565881751003160975285837752918330749319600819436807042576476579754669267563313336182724289644918857098060220862070570466691891379107629827267070349260656298790105513354864568880525624705230405904211946349148302698680037894506026108207382131312014329738673337897080777231248103792791002895691396521379759786609776493475506330668645720097135682815661174335055296861928431952288932403248649967273101714358511539106644581166783140630950378983352481017748354557888986719127599957178439953241113606262480204765517687330693809236932233372643364297960480346912596212600960000786076764560608251089781179857680889730675544906388282511793981586419155658371742200359450616658085311259210993669883137611921931043189218072700771480691097298245420661370421327827981680224989758283857035478986465602437215414951188040183652835306036133325323822628371998603186045614639073416692937923914043934439170558515063698739032409152375610885507970893765189669841619398370536284508027440488509031158687124252238988835163736276523199452106094249688963780760014167293314116504602202123203646011066379932523539823722025387643881467346541883398474259239495691283396456379296930028738840441489858151948034445249615559281436379127160332185555375123642032139217469402615195927628353121311280693669710284215120136785415187990608810366993425059257015706892792655645495573427073983488166081021484268588986361204526095640136203493687288598487721783719905700071877624752630284197494663831488946502620584755560705666885860467564792742709715449333846523702812335356958512834582988364781529445625037393205777348205431204537164973929639976950660165726424949319971311605655602978347094632907915471239940434010374491350030019617949143167272444813585404096308053236128401994890602924105250699631061434243773909976366090337251359255968129482085921219439335595422291131697937893911311679377369345931545695592762835865821744963010245775174509447626222019292591215640123558294502005010650021410020956261014355702037109804451375902288426474524720680551989886887961785559550318736857345688408080612684445588404815847619369059714927490681153691938710647988699636625693250958472356119883596834521092901442033648658868587024492225449170233489521707166910809299527110084623314453054764753227455055088660976289495241308128796999180690402099625015961145399607144204435961041305168223200719611275182610043593638993202306062276020697168755637124438018629946355120221664847480446442097912376297321279645125697856721818174614959857763881723778911657911896719697509948887324891516006587873013446624672389058099680237066758466065293257981577367939909641852813611498123401473871476085921951790443891547134714102860399225211510209199343768648979339073521418505894125019794602942210620550797988244689802173836185618535692840414784584437988548839394465232010905871024478316133302312149051673488201422594526266302307940606554138161122035030602899044253662554784958346567775698436088526757532557230094292961956273741560996842526360205692751327827323555485127537044002288047184020831885173128162024158687834531507698675384572322167124494907148753747875159763657137310222553021061243931178148155652933393672631369670941255548660159876075993208491077439984053755819903949743436060753429447449771698478603120485021569540426260792418464328386148730097491820386855523830888041375707486544790414818476220188636208329793534275597603272508268650469613707456698415670598732803674013199312003009271815707967588834874151353835921438510689146641616841369819998209192723563884847298381773121440340656568579490376793935841547219826066303192464945507147660125150517116316097775447625762946908716630995454184565916653453233362953531328666484333117668517252371304821108834421428688311444034106761862608732691802212472116992246445799719773814612031984130842794522488845150748347928250201576858454137789592916842424312156338407497255101935461185171876008341517688855285008421877990974026147410228813806963384191460073039378724774458476076709883452696362571927170998537348710084005017430524622791528635162950986872223381167111547599595014548644742692162785937218000665281331895520417231886520346682293481941687426035100377512825158112677877942889914696983731998835584047485182148129081952415574105364679655316966205937366816268753732106707279163469008370214585340026593868088435319564952654077298597275078877424752414460356590884935735974046985284913512848391440375790014251304676567363071979216502793122259096650589217413900581381627905955848546855976883266177735017854711977045379225221614274839976795971952902157994439830107283392190643763118860077285674987957296244117312890046972589122737860920906512998091306945090452002431468144429250783046648438831328640199933240407130736696958001406425922863131670754540647025896728451845528573350114129245166666896956775605800232722231068590137221740205195810508730549687865996647180699473462376782879576036502649782886859870968329523714955806004396949073234138183884367080388105751226052094345777293168980576850248732590411982232794189401588524381423101369415402657848357115614282984359978819576174922237548306687220468910205052375325456558236163197391507865195450949523218241740499639231591526236467980903484858228608582783903700680033787018558963243835647033196685295636443672183641661682748117109055803130853947763270885306577377389906662577035819161524860739454591921032880438261588549572015926798219728447096937653745172889374019256401188664881720139402434766695930830926435200933327803495960678620395483201079296628686147769838567511435101257743336410516078500719781889195119412256095902350231359249588173787636835767710295014260642727448013133367494004976687529690076090301807438376746875587880394328307471373138106515443650979493821944894757165744876451228013676467636578787750665460378099074564566192073379612730624669642648437935749201443915922418303844231576556241296867352252535346042642421291987978519473830054733737450263938175546202151965933634774754744741730814774359336928350237122462316141430404728156596872048096142853746828539087219402989927938010429087451259262259370490332127620857513656622947370973033166209844391658412643637788117045047465391055315216803533367453623985328298553653803996122008271504372912179823434021612487163657585881788830449307813620119707519133122924901626430540440023202080311919632787499864797229410838618669900955031629063848722844042301840593686435726340842637234017622225516809671187031243850650953603138427856829833262825044846004640746269063641980295504084274065183971415127200417725653985281850862575384081914495593500087803369481196414377030012622017992429764069581072882571668069091880609318447070390214083297885083155952373624226500728736600995058707394161874409801995738512453579329752721163207506543562583660057520067153522756796714320117396314481539183590034633051109099139236330508635029185660359585295441500600399925924612981360816912741497969511383919996813443127982520128226261395852351020659561052461855570639782966635886643175604287742611504717151737691992391582025076734960530987356061456327345914952133413939715847309037322570399950427968535720827071593453911510190403351898779872943535476574164941252400050900524289869151919113760481144454470058756444821035040909144749631684096544844540337018077999641342570241542820029177057003304686885970053865536632279004074326357681105712778974576553163276674887603495983616913192614688111805932964482834024346433526648424664150653063785684703786734001686913204780434881503579112053504596880275099906867807504371075748582721608694359654359109638738660489229859684912563594078076705707564117734024445049319941970173686228750637673916847442045586293221588150171108714802676937930656050309289966497555770817337772225847693365401637031576988636019747498734621481923543616531817397458666614843401631621373517026444274027371491987267945061338770737583730691912224676332525506174167865167251671331482362429153135602620561235859466657907112713865885627179810895945425947621178303820948370554366115616279298282479728812163236187460045734831313358540792110067219402635123776118216892996927531923308405295695971871350684371800656971515687053868308606803997768756228865661351232840052770427744012904512503436292657872638810201508122681769294529697967458251622373379358930317428882489409215394226116698270234432418254095294802806076181116845521469670816999225733710995919889800054812194665819230839244599131666886038478075600753881377999208777470180897533553548061668828585759776128514772857820539836273308652835845307447333385197322577907332801847395324881772436595683354643635635159602509923527812099869596958144524081426099824723362571743324745007016233861938503998758888895146101558556603431102546689380641326072052484643535897614805259978595320756539926823018604232057409547372942114256565049321901671813952956196971498410330253088460020694132661811744184719321587898667593862773277362585835039695036595182909687473973201837206539874141802017548360275579260714358886503716417924188198539617750787342087404175044467483640934223171680744803814303668956556219948480811123495286616091654578311319818854118688382781229367220001673585456880032695775254520237272234423815032450430544944364547716422995586845653980057682230221305896661175639866615458760174591482215299025478536133987126276312311237940304341224395578366584170586539821717960559293223873500548801902316320122480224506353577619351744056663700884741862196370262953601638523226744414306673689925678484369086704258113437002003905236813081381986677383871004951840822228932211719339708326484061610543695274322899096184982603655326783122361030431189115995643297077174378144794696777907785910316217301832450123938783295290341969196375034664927546949184316594667074366785647815103383140807004545147076361789014177794410682600299301266691578450973734565725586838245236496012358835988815676352975477869397338824636268980275362480358260788521297924974522396353622664710703452547520422604540386650978585275062543506916763236760348298089986998874287884202345018943850441171527754390284362274458631570145581561129046476555797762901926828523523822723555729201551925215853029184380350000058227842066016658359698819816490476726933872662865191747563243621308931937564558311398464943047127231165582618082142837589527583983857949759382586212836023836971541667899499851744564483408302266401128108400622703563913902420789329872849068070558338047990483802632012865001283100069175205576811312438704209848061673040547863681778930824488258396911560879780096706434953702446151274988296229804580226694876444006033857435753947019961994947271314524518676092868145115527533611999768828865118975173962301734830714186719609291679033824156981304768305957123847252919192254946998727778817573186868700865940355324085536092018067673849917603868367066201249411193689470850444103509306031901400819487468140183629653645998287759198656293497290424607636320773174138545219888785737363292765887937066118565612405280780391548847076847385720884301931943965066602927373847345618326845977949266043094129721082405840848956655584150406256017699393272161433456870165603073884178137043680148074400491034014504468572647481263695199816559888333530920674468898889449718216232718735789388115407253359242260985592505425763429914217800925361930171988868754807235012454977130584409692921993799608588062682373818905347655700865872997454973096844429195975962456344285751324359875358831690887510988503917999520105565303126518475634999638286970958121759847040356942399626771486884061845826557414371717443158567115972820865347732049263875312995057805060198978848471169694669440577009389404352107235777075358356503469776051884315741461059719677756283517572638175453120003153264911999374875595762139852224002762684344707119910261545261716123035966060617104974457635935598492955673970793535397454634584175561800274980401332865650088624121017361788596171858566081134220621037609928276278188862708445425285800523459328659259134673129172248245884198437346041662005126027923840056190211164883866918290034643252666421337318664526916438721373595872000594001538774459598650864887169837265860578781348919597012773821303133864376724651165454873179075337801982725393537364569338807692371740313021416141004517539479344991978045094746604463691292550657688686319483607878931885387972753822738908115445231501235596918341943756755469344544017448471921222040320988509530011291378968905294156734535141435789902146511698018252262433379179145525192567212747969381714688271283414673084486523292425928521844173120106586269964618647094454311646318921276335201722864453647028053186195842659881211148041014531165278821434878008105300795456593667760542879126509679418495645442864582509472425620270397043296130711458324232181039790194119982171582383259782197004316466742688826912696708483269477111998506784259309955062082529427650906851429195400978491294052390322826470484909869042007854245647215150174702621035398452182130266115659400436393581409900349576518120082350021580828593467380426190396673360428436767362768721248552381787603155917812517087481987378463106881960662807012984552227000199830776676432112591674485085948318937398040464266254295161379620125903535302035558052218305224006743776822952083937859516416562332792176109814863790952274302661425421537189997844234826265401185107655078765193641132205905607788515033436770217785126455037233135613788385561314187662498084878111247099174699676275259248133469234945414467349961153502556147538846173258526437239622488443667029087864266144595033279751172994008046032632627665216432379201745097447409175707581084391151959820783278805938219991342065317669326922215859962620753864042205524203823967172961975953110469542664245843550646749443110864793550767280850871334849356509261250423415464642309217893388389215057400773893732168257210110392509730153291181853836081871411081548507799462719852791569264959190615424124854551896680367863758788358583300849876432784247867964333100282549689845642157439331473849269977515253449464312000170897566652237564554700592254738151190176817185732003170801126408751230594723945375886087532260683967372522099014107395433318030072448062692026396813665623234912993808803935143376319697622668582127478719798956937993649261415892445688724392107363305252526028720900042143675927395661774558546576700070986114753985000358815110534605808991648644453329729969395011848307429096852222242905190377131326391324395784191012301626435035458750819374012327221816950713840903063866279333267571879548249087866864829514730025021144191827298022978520150679876230145093811412379647387254497627949190306617020618170806917491900534123411516409362167873841584922751975184456070582956814780473932838906518820307010636412583344116470214735968331818145199719172824429143621330470696169151793770129469149332232469903784718793489258513096237437940329493572739059038731706617048676281324645455540215618386426338589204218296845986490116762294130314667926521974042288667229988674698756017817044903668715322137624989622041775905714461910119738619502242207952210474767613401154252147754570381009298137710861923085517466871028324912618737907772515932178027974635484248357125458805265261874677024422546533257378241590540302183647227286003127386381491401895850200604146490555495117546863423229201114190772077050769475786496927631463932980114351829887075341676669298921701668912998018376382306964259956862647683120738611447169946908024393182047757251533697452023764972804336687187668767613384685854298958051956409433675046250890605984340424039592522394125302563298787507232811029698799999072713573990410200302476556200970448408943568085360087847654887247788486021251058651132304035110622433277386764526510110919545721481182070328493873527340483133014338167308060742652640542657428081591015070121207374989020932723739570505527167922885600077643136907630579617044912529222164158904743543332163926192500912433531234364791884419472411973028263830029785970978999725150547004995693724942899246854357198745865033924320984837160947729643312012824967483786697372016584264288432936036477320771045731238678779557454463577395646695282366730628583656614348226248203330271520798352406689205661056610824896768436728577721487301673834608731869643744171375998723791180808224112641272380272726694009281718088767144946073458961165502656807111694345481775301106128521721316059186874014588387396117952429599944147067168953036524334009981952525258542086670588679048957918474381995141790353365016571216163745921036376937307970394989099349384936119549387481956999250466585460351244604164446448893325248792733355882157960372388302543667924816964731653289014713873941412331988038913299137083345288890246056881858787003271722290846560810104829894405607974082743516027105870151538435066606013953195864522530829944691105998788768089522450003710136256361051914776394655392615081032853457113588116973690638294953643472962375768311949285497702588097194069060932474665580553113934545682767396774058117394196293140167265688097777313537097033104974326098089207475195926133733357565371697500637164071756991904351495248635761963205896919566314517538348108529573830381574093680378332096869858530650553223425424687228292552135384990602069638206269998507007861251462687878979572790356346636308991099902121406788692578382484835727196652441663735091771268249801539016296675535958150262582542191902820958882613161298009704917101348409777816601365547848291120995857955194856969633943623899629237211868886242674684021938904258302165812554761176239311033684459188121394724897332899412506722841114283522368454847086946224062370487723724317163229968737801948944381753644235444927964853829622132337155318850506616668039255036917393892031759308430680413846505814754678810699711612949955206367734614213829527234111682647552242796766446136333481290728137431288221078496626007477632580011427444639348303937090453447436888577867142999676379572651672395547044175938026395022791182881552842839176458495378464208283354748699495837057847768697618470688927498212408835722857020927801836156701662431041061103386303580968248444344725693200493729880378100779251343285152781268567432770187252107289076453431123536389667871811070487695941686491661214776647498539840211382948697649487478181386249514093888519505694250508004386640534841931911827086836919070744206955858816303722760722102134292285401950672575196950381974325653589719564565461190682931046072414719514468405979315971384132647205647601439955352043290850790198409031916590415525597724304784991152160028929123980851251703014794495471864961809502804332668111078877872681752117844035375890835624439882155870393340297939358313097229895511142142777106703492542309610219552023211982956020844350473210370350149307230389216311653968254465207021612756484478397653699337920811606540082720931792582060586428044482311307763614331487205614986311622942828734422270951652679956163932246348531872286299128038191565469490681246733354440234244792530892347432898220927339460602281441956260875936023895693887236819990815160985293186457907788594098835899467385165516676521642986663027135087518437060809456205069561305786110935586906412712784398856382312645911194654563443839481315300319550622200602933722343691059741230084162098285154897388963408235457917365804301429751933751347221726816271833709921254360538370063663508404456468667943466972253284544426787030151573163918955338851057230393594684789881381864122387561276099369805101266624770840135937098187324285515302910273812908714465067534142022854373512194560159381189006738278187871572375610228047423250928765155704946082495246666370675804911683785730042935884094749880395462548562644586601099018224638807154947348497075051097564205121084261956994982661296146603079222417502499364276320868441454788078216302083119144028697190318354746623394297218187297665666323181777862668970645699961983236643304210285808155322107901432335579526307063663503168911345165919810533299602479240006881690255642279640348722649377620435653550420026713250307321394679238175761315407028659078833886176025195981035546399369107767229994162011355486648859165187272775414415203875351331430093107830126144637441083145892448045767939811700062843369931613807789382915052452054532384709100118494743298503434259413119097391086337408990385692125180066941845289686746261330199443242440516560603801085936792207894438934621057806151623250682883163120234978879840901775318699194059420685515992201156667544081112475701668212593858408270502772622707396290677222157898545215851306617628810760927902177282048501406941715611416576678010156152907864600227324938886887597885883187114901321802296376589987118589320432654788854836281003286809679714874749468868974951062692873853311602236660601424600398391541030591451987125597179990239260339048457786793748104024580692853722782180476930304704981663669045617626995782072219480070830829139040832576978563114582564797825512864116769408018796127975148676566274221417886552205941844883655643882173862235692722629011798728516344594682969014778301297929312938088516526610591668648994011079982695139146570722978301775316904071660604113604811621257434792960431718192118028164686868818597196809966850676123160546577507151115169676140196858875157025392895068466742536633791873182142958369067651952850664190940040096625886169488435946570431341957055860948341953813899415339567592580360213091192305935731793770993571424804203187475246207212238022164281346217539097424605423557563848282592786733642806570752567061615627971638835021734445129727062723120821959216776290996808353552563660006236150594552462823043599042899101250338632337502346623825646764467752980868669963161071222006559301771971365994137450728661926456838671431616347037621253971362304932720796191090186111994837216908358811965693609689780681900259814814724827701632264133166541375137154204035247686083216460321907941881446690229859660166716690237256965824102830483481303678125872208300595490454958279049862396561430934418412342918159392364813784374311790063156965104269790767859011591499934418720347888474103388694387830628330466601551631114013598722434046821674929876729547920703247751837193235345158606057371003120147213550699159608298314370059703942967512740902358394387315149421539228782295862510505349470472804756369817730555248731755206836237506587968312307140757514072252396277104003318522015549706162919371553384523568086099126205838523633300620898811357813905104033785625319230300950908250848012794032586158956415331098749849933620444593388297289282532211496060886379427377966052633030093913097310652759236221494800817562069296109194986499067081301645523416780103175571188447884989468585044166285637245939229701504541566817897692891464096333371730834984963603379226161616304437647889559142418951356335568607193923841895824347678595307578639156718035582783789859790734543339189770637446880283525018886459370654402369240570016569127853325654138640333381527113553770008369655824966391696676126358248459392144138685426830328560364617732381750130781647584514095669375596992221342398932484720158423143803338239978590944502550092911115910816927959090154993331587305506418413268932870246532801934190800670498950182455027974263676469376593810391027136425692090200190519281994715138423537666241292408999258179812463786623537679203690702288142954173151367692730586408818229390519364728886117522494562267562979466729121456344753712932066816232991151435958817294068326432499335931755747201591355343480149256901592972281993705227778487039166919225873497375188023479503189235116091759368558503978585059971546356440322696582594302360673924071107212003141530234490467399943524644792252417546671593296743191172558754150554394798847928462472085060989901515636342466435459861070613234489215635806296621615726155569369297438323457603907100553416406634841310503705152459061300608649065367455364299565254117534013755346954081886714918105610799892172576241112624919993773484421350297157256501404710525323372132538848196838649409382647720338575689984505297122294279261110837062861236641154343418157623285743640538123474545274458587802416782111959575810625008472494906102941549419606966802801095380075834057822284634879600959614817815630655573472482324895626051552991821896833088761679290717271640991820619140801914973033071870140056161363072957406406906935030571408445413741325117257304900203217271638341307541351199686230411940887399145788953873617530356041329531485219329226084019433696763991270189676168685783875183406040483762835287702711992600981728337896215664749902552514123486336842910255095370805611144569374170033694867702087467759053996787789279360963728337465061423377755600507353540990900574952772870889935879462148897452229904928026949757363218728868535913731657773246435556048584237824620367893236332915345082533908462400619033500061290746296862939658842954068956752172001701653168719529512622343510506892715492185040500446574658181318287403977418555999302728112737898639613770557406485274531538696356308234829558806514651641444235931991071451856667188729874615090834893504340187099362339131323230546597710308907810751713243597597610748834198920884208281883086491544855174949467459675078881856947359589794834853650733467104132421695350969690381356528339533994299963636998885206873554026610522380928182182782194271648101481814487087011478608174338734169194294401240042480491773838305485936221021778873854215057633662871053545080207535622903427520171048707460660866536029229118137270424023376483876596916922193162740150433789577869935144568730339777256678237154916149197719092829261256922430242572056525430915832121481922647707591196287833486665351373986342353171536631401658565481209682879565820563296094804201195784101047515991284146659280925363258105603570909991628776570297569408393623527871945099103473533237336944809194659910848095602546080975680719650124721508236164993077550092981252510059052335730309911031589335739930291606476673612004988140952793166484112365771111915798583829221951009388258203609692687007237795797516418939218330664791930752961982752132539551412360695594129643015232698407920997986754968087851372109639690895916625373644446888492859980252706755982085264764803349865647329455241198565114460409616340065117645929959071914596602856908367780985793221560324966765624910782020210314488338042049657634144363449084862357964377565793020829230497640329900083622620969786076925371746140528431876280401926271421890648991722547157106027888940327755635525961448810091331746103835845593773308139448355711965858689990576682097132980325458593749800480758942446667442474064918905030143537531032807042117719679296742178900943320319623957584961395046724979887161757271653277451540635962453108229834259819615057161513723715607734729170317681992400420775567076530761215846191993380015802357055421288963354873940660917843209835454319391623266547186839944952212911434027886197094972070159865625110887969970350388633157885883204666956416694433193838193134837624067425572615038829668647393304913123733483132079847544356162031996767588571339934725155105533675174219560895360419547641240783900772257726551091452576669958220037294408105641025213300859383403128101920494920632481361738214413797506260853170544080476264874481984289669369220593303501361975065342019243059965802550806520764109796435114703525858330452165817318296428646249557929406221902067910741948048575294293411097765077172820960300126561342621088207071263356387196634621867653513844832631019834199621094985913446712461025485021459635861836737559583051003988767594669710967981971222549450910455998452863892347036105041058032566037570750616150676575128196012798651410943244955281760901057259737764106511844777453234053511311907096561595662042128247187610495659758677487317401515545544669333376910349542617061861021577347817099903720266572007066321348043270362942270246202055780914771720666389926857389762732503909634011128024350323179914729903442989986208858679397281057224200490914276293402964573754765723774710277639912694611472308605924107128159043439183604436132432253275294060564765333180139793434472220848424563988023301871140263327512730397716646744169531848366577071799524718303148368734261969244801339317755694048118048958096105735433148044861362149328678426525442005574051296390552430535760304707838492430634323631490993123260640889536032402417692731266901577574039663041914090990689619527938411222032688732231818269962712207029325485490963094941555510600300765798617654750380127026879455592058108058815626415878175543602867492991818976714286268066443268526671508417475927693530300659497301168209021403944274992428571517344327279092416316138374796927902366580262810227299104668577006822028817527990763788867960357459481314660775691746301048211006477749541683036477609459416157931305629381248971479378426468622225086164207318239521036911740186324122275252210400855600440960822299278406904728104839251038005140923753493206080368085022932428744074305184629702840112166111925887977013604477248499746599029139256255356804853664311532628830300948651267258618608654392635553801612726556691759696382731029534395533549107352222658095587041995821874466006232928666091491954571313259896745355312569722958072236589064261203518643253889586511549379773092134793910328688317114480546284768715562108722032421545342243502578188741374686406073931784142456306151341827816390068849966751404266892646338629461532322408992085930811472169960685920772962052648858265544584824942526519570376234979486485262796420352109197113920911426237508098213038767985917518093000688799481664373562732591139893901721704110103571180433411343425942698611301180023984046063519903801256440361471227123776442183255580578754635147339080156028490973662878965682051515639582999161030004763973836666042359449144868295148313983387325517646230778345745652887336557770305970518474080340641626960005273508362315374210439988920589768579441934433348360310533172441298261739298007872088093282639028699059754514084455706330188403771470139215377400575968977132749329118180996334588500933742580861352720989816571321809984167961003634619155360056025331255987589009416903119043898099367254231752055075002129726444653874731969249525648387930492582592271202794278454827016424804785014871638766447478628256790406383434890580110604763792665780675098101134884642307372135995572942798281937898123580729088503932860997881014788092963215588360939424839894429595947910425900520098161861556059824734943966303248423600551976888792587512747687319615774206311434619976805864063956238749999272437059450388630720650923712834232546078199230066066390177800480761841527440258428232110010415067940005531410131149326702525621511786125077019497543081623969052628586430361977951766876558029248738231890030921600868826012715452660502015021503796004634848478334945113388450109104002727528320044734521440078369952998694958660223119284480819225591929016519725207644917481082339329018403133261431590312120391408821280163042344880207706563642915486245797060974649403429036580625821277273750747481069902756984398339181938302249778225265744945789985477132291740676094935039243645554466433763474334854690563693941273721314613246083580247961603047412661566947810968844593646011567331794613723418621976768649742733836042277314410268899791035621412430422358170997151682101267303834658841446223022916131973426235292418878944672327002385027417435602075449368703998826309732004343175517124064766319375914010642769229565278159865330015087498023769994595300679602584690995515807423796521105651232876322352806109473345048044540089186633215748930676674036826359584109845571988888285917345914381802083164015201023070497548988172168431161208928395477311897745129831144106790058873590937685890173502692715700648671076963531656436278790547858929105162789539280398938308688031766296738717410234621349858600883366672245694055942212458121699230739754029585062069461925524237022881916064145090507515857142872569142354052720070362350479409713097480030388573678683272563600712953889847548450519240215511570271662947925465298348869141082033236897254334405918772769551343416442197821843302756198094149178100565958133496412304313277862104335268729613921934825951002449204481700824380743860166554856856142872015454810476274847325720505277667821578051423776843175753921124521405008697028055127060185143584014361369667146153646320602351336276611264473582196010558000902428103473073760690233910209756664350573228781497812709333419986004109326055841113047488449989158255544296079083507282611531116400983204507221592609659618240692251392961439728330319496605050226226191526930870853302415514495710922044942487603220581164090435676912467800089115028273036932066903859581257760261453814425395701642480446337503743461261896232697625616425381814934116339877401038794544331884143664920175269346629149303919068249161873797641994437940268314469334391000999158591968915233920723410119552876799357064356626506821918419595100189374091776997376121463876529701523951365572730934861199809421303880893599158244451752656510211444204694018525967824611341714926717000326590254168015851168244097221139165578304286098511712685371676507983405676662804700884349637954682385945687754034596006432125707438885657676074736190340623290669651821138541905903127417498982630283957433165900012204265707595918894284143134615617968546741751659296772578634655533313840346130537649540192708850969890764371036080206296976883036644293177218399974352997913310829674231533955762700016159685360786082120093640239250511290638527322491416744839772933710627363128682412586283221003501678457809638189187075795737665831629574494220341837018828218907868991246542469388199853153135381453061120335176329502649289975687991193460287644018593072020715813314705785663880186978882050933861570178366656707617779272059017433075743199681125074611112461985135612063202426507187535663058595949898541264206858832509725769663204500768607977118498408464873941313376771600285541484456426720571015903415287308346643198551756921423827006805927913650592745288642838144813776619789125919233853576044061203487027065836522691785654169289076699356227317336436994353545938960648478162960168278463692513042908228183202896541183678844526811630759610720191194768519987303019167021769420478673863464825120247817238714968152904745619763865737278656744375552807228984268635142765174290198658737927441194973746068079134394633483175477150409161409093760818129421652646167892740185218738473742858821676317596364050491403616276153695751701858839987327403765806439253509467121515851326164462929989540895960214716727019364706186947955205466679198538222382620744794295766416042659918263881025106011585689079711920134535025075062907512422717644886174529157511152720597524244353108939975254471924049760886410822123153975591602304442453195310883158989724012080982997346369208589556617576112317971739866032964078226093460071301860341061403545938637857125133225241614174245621514063697757539726168887342569162974608579813561740234328999665151525101380494108986051870713313595873183111576497538447115357417486196775140609555465289028675625646835468051169265054919730166482173762088006159221089198869375192494679399540761044188155577673246568295343017476763744543175002212374062367558443068632811499593249468325945859267381157379461188248733278818138634780613430832413703367648205843285555460784412535662083043876512433832494836029470273452896996131693948513763883018215690279637171090450771836898811176919783152506413790543137601439945852412044538258042190700006477319932846153047057515598580900073022277321106566896471527067959654859937966126407891669639343503576665166382046654942562939922479809173218166765959644555467299417862277899178681743785825170398018476402769437157443794600249102139170058812352004984078082057224810408477636473617197854181107469811179478595123094631785995031299253024126915150828077095183691219369722596592576785211379552414164472602826372583127338382588149948741089348205016262682137673853484124590051892680402498254321750760919429983516168534182788264051527661692562740210951076113404416804996323686329387490720422570191029764289581402438566321133497925201126212410646723921857156628249855068171269826890030974747378133050120210370196089239329710133399036799193088751476299700198372138196624089970601438912428725990852183195136366501135373515374821781802902199465396197179128000569288632124156565844156829792250612106621808279948705131988924736713796520850371661600198428826318648228013765131105512693833134499867765439101711754337741627681683638747444265501385590250357032198402742908791350603196897057959273213657147934819012706195296696471488610252619392025680480484763607561549263828139596506781534999111960462416364501868641763690424311120514051250169448725726767620718295647071802802770685592313269732991522130950685218305187511825999777805679500767458414081616495333172213024940843385376696175262755540408233879664422125863392475206246937664640596711310565208248961933119144824219951527642508404838491859604144795920148238349187422789375325987643077073018138588425926703510490706825088249308072115212186236157092097795148368500788162063915006908120021222763745721055508378484765307602029498022333869499958349105109489938242109186042340443654321404345023291762574195298060559693002003742289019907170889714514882203905421617553738724715108255802367963822708501286432916217277694884778028270552053049917028616887699769299793705806760217414014966668345201210229173149642505191462078938631341936555505058495831596002511247716753155821670249413055774046176594696140154913900138873344279818451911961624178738154637460213362809287843994187763971102651326196965131349245720213427983651627555830757845145249028048494252078415985772965666256795535907533029039643597625823646932952680611754322224588424855646588204249039435818227020094513330270123226684679595816915766656361990793221192040741634407580796743334841844172889133815501648260487118599942265149774818602892641216768709124652391417912881244868930328952114915810579571135566084332628993083533762703562574720019514178871537280202020878712302175382116683438695245074559199380954345456221460558792954491189005734039808682357737400121401979166975145715855937662424926432668605171558166194751668586460878100144612488428955838675775127716009542356530013571179275386020753969099699746245436745369020609561206354423335481641629169452461564116424998406753148321408983133118543760350592255137813329186151527709571895892046763994397911301687120361098916638018486189799517934143607490534340348709534440135151418375610343843559761416112542242009411351958570311573381563937342097681699026430406553802647686216816404313776533543108946756393570760872727131247104679518788093329506571740026182646505943203936326799675241784029612245627015577922010640018034927667732063802450937588930584600382112010668923268300516289495168367974314354428823905381749832206506423326767417108947072450691337376377580647750307427760099820686967409728412486426719276970357518903952219443113231780519423050691344133822830285748124760004481057815028928045661815176230407501997857576408341103033301811860491921734800232519487942946663581488641898339974783353815943068695941928685032848508491178099113132030479727391646649647559770555886797633765591024689839447426630535590204337887105808424119326093537879661803313720268172831702023696134378847386799230937790125861240093015690865278282042550457435944912876503295445924501504535766029931238757913348780157313555113861752643240252025776235479195908490525762546672617097129169567449148017820681079381926597921354152460362345848168946494008874033545211379825789550475391672961210984257973733378344122188192777547804304893329172732300281094340216442157990097200014102040076991190130782192983436412572535439483856815605111913240682807332649255874848109675643559021663279493825228457491548746762209310298701590137699630393771810981729050735414011995664246731402705198534442855318526274607783417510379704248515258383341746487459245624085063808310611185827125004573753067343944399392012103851235324290407902130600182340345367662157021826473552923840061036517382472581641089221155391152236731353223494633938144066915152174034973358527795002525969083823870699281825253519333506363222124726226617623702412072132702788294211033228462887061406425200395983022517134496649401406828955220686966887400851623987329093795156317370529731789312340801567675194123104953304233187243170190381388353201353106672514882129069521561570477600688492274728449206187376229296921428299161781068598262414489871353829528380402947514234833478120752326098768600348466228223580290967778984713258976927816135226272181163775271914756787580438008115108125402102693148114739670292430021638902958483122301294146952455502628880908346233089433973772382190438706734099335575353153580845402917226865408835899981997630975508408364266306556466462272121196109017139280795451422573807524211162132442805199961309331605596428404339006596049735814209647556897683378543084666681207179998658634018266481081336822911095483282289587275624727056507068648353770198909333336482854247597830838365755189594033412330023104620363837432999069169081150483163372030702331058621261559097631131047814294454575865264392984140118120165783575652061879205139431099131384873713279462498666955423209433524258905106675853946287262049182556734040439397456896966422555228168818498929677870600387868359766782535729416196705603638712212910503702905104942234563345107612466901498162452670965989689680694941023678682193638973588676928428158104032320891766017786465072255222806752499632822807786216860055286016054612791639375667679501416790035232433694675775866288087315526717724143596882945557961765903042950608656495030413833923175324103577471614009838722396006454674442661850626780808795201354772039319056781767062534437254094500321265278519771792604196079017195553953802799649343858565688213135116231954075060918247039703606486550514094241163443559129417247704699092014295285178426273154459988885702603618000972982811509436573932606238252612558003500999007393579804097498077079079943619081260488874618642564893064298220408704761315382016865935579756751703087813436554827182652475228270400762835609952051778376984674502105578534432491484013523743320603784288923723672087115238810759101962605750525914749201105867712923426060660081564696815204438829892935412791997048104557949853144914594212936817701939731297241735183485589134915952864914190486907139467964658650027397026459344075431694296358506361167642211283023807984917446009640263040633944000889335855451796660035347611951682235184331269256136745073387763783409253501107848494229201874075013318585849259866753246962357521828733647906092614528160583593303431497122260682671603131387442127637213560081243721712169073790531703813302153936934582875257590354511864335991481693403423320338900151980717174417211089265780256099640468893294273660540462723010974286212771023773996894190774677238119174015600799583001358033949288507597054585625795447958811355266141685145424105983857994699122716324937390491640891557247238437164450110616289652300235692472436961521584501268923960910332851738417920898798136558621239811371594113940624654483036364645869353106601374003861854373631276394420959746083080266888894880732728221929008528290593803768882932731513591753438319249999781215948116736317047944050804633470155573935665146686442753293999658579038762013547356926802659115762189025864226521400653490457251759462189951793675867939955741201461308507517620872043711304541369074626319370887975370070018144295897207144233841540233652909125337575965463550006222601309244812062346772113578676888327102107230317260423622696148127147789001524155479525363077133127943144382346852950435556602439291450466136160983426632840564583413772428412705634813879021585647350128026182952428299588100521886064093361204065245491774355262758253519993335954315809586806959687514263442712251029441996360565869103561162696615895783318099553727948862806510575176344906751197381701946987640369202003083021024492917512900277404662507408129561519161642916207940365469158837729485831814784527116973233433190217986775792557521641159942066182470273734318300875420037870701174365432384685454681242498323475564647571281752281075263509932613408846198604112238867180866267955574227937821607297377191746705936187635990215412850990078986368611956312086609713614468916536711958525263724208349703963701096360964328715500858842424406108092093898099713495735530060216285643448772858297165946447642084828310005763605694067990148257505655163122026685439693736598851683624697802622037225771986212253833978465619441306955656139005419683513437586358743338743382221415568949265139852483473615796172026706877286698387106695788580475225225376633047652113788065007886771173064032743239305800040100742072001460980828602602599635542863688845512502699801386041457272006568464813544509337604218717418573278319022407044504833989854147884223859335423099037242504363552199822962301355289676227734823843465859668605284726769081561675711760862418249108646691739795291653568564634735387485529908628138440122935520596932961125194032446021051518938362667127262533988017916726984731853474944563360399045387910293498191714484799671003697665006750108204315251034610125503675667689396049802548066830659522344281342523983337284529266509021998924359210469277311455121837000751373723431490448781897063520413538487765061857618239083248361173321193431486085642625596283445254126194884753083088469372611634472099607359558366990688530694404470191810303944213557936999476352061269336441032842281069614315862620634985039368136764822143402729519236684771398788900842951918395408125075503812207657844263358809718801848033842026633175477014133961426366141887698334551383824446408206344144062006175769969089379933990732643096652270246114328582570714516262269846031327629979148285713914740082901221006032030648616890648397765523052670452499307874042309541593451921092404140108319258620177320457297175900863131404284534789130222938372980133803389217363287679391425094155162377608464666579516458841095283634974803906126647480452573134443078545616167901164956337121424833219307156287115676979742170708815929631341099721543948744253667703141065032971151407108891301773605629071110358531378623490116168630875397253962934540037126145631883497965122340106016779180915572850826364785557878444450633251930324310654703543682157849402593001608568114925812040633555866516094651482090225551891526548779120561887507534767440392217691869065806274429747750433205903251969690747482941897983412572388862253119280892666803118073201547526034402970039561908492407294384501789554940580099567629564193595019739620292993217666331165693504792842498186508451061133108619070829812146937778112587207392707947996890389273314574920719140179976135832107530964207067262667415507128361162569728435111014192473752119297204850277582259889881889282962704512757440241120288135412078813651259138803800528858293809910929602062498642535511339318964393118978791482233515782885944505490219476834692999428887620180689921287805964922370895721513066897861145791839448526332914735791307275620333691325826471973600999850578512360729550088488174314265857631624125816336329804315913883013758491463607309235955881242553826857280847320363733417289497138772568300840669692298895486801211075965815761596941740869199104759681024869151043158014208635433088880580364454228004188107437183357336132557207606370010096970708138408120531716539124472046667886691589092009715104690575859149998664464891660507577579413162912816116127869872980639726974708219376071860427251988661326357813752199783644312366498737908776492923293736673558390072148329682019294082952806458944626218970678700115968251919488418594691768549723026114625981204836222298930628184028352540502895752498865313460728537354781723877819021884798499199692032546500049851882658502168334781886117974725913924293048598204567510597878268969865917588716617639869563128489152047799685009482920121932397185018855910360410811146634265643819550676288786025977675276154549269376055195202607006039519679502987814613856684985260890066261093516992414129733673424304768044516607478950316674581354950629621870221337236758123767525038775668035371893860027893232349608656713379558309427906945665292598833218383578239085537696408890583328825354897403827343760016287677259948002695469547176198733205686721988543098127428475722319822617182353341982453869391055255089178177524281470823802128227715328350875490142109092646528217876340875527160442680432438660003096469670463948892961111754725309768919685905106945337048047401732500732843936452081399140164418883809221907726402703847618214469627862843026552347099445320673622470456595784490631018092343410612024907117160487359520534469770708012946095835556185624616941696334865560245234503994696073413464846432362489995929251216115774062568697079354012750346652561963318813018793823161439117676108767329947342690901101355162397959716622136119827626483390865832398357967414182227566070268652978460991159003248091992774486665835776109347739317481490597027035097476906006292039692814000114532508334790933789785771905633995438641154581589785828376105443507811060449125252083172750115938576515761758785366399793271520106476633239271123134297328079493562291384982558032918955408894070254110469240180519074701095010067227453086503964185941685302322931562734815489013972870051945367536249938155684488166691609377120048164312752459709637175338156701742718924427004315205665886384414789855512941091614000161796436948928918036254522647306620454596623255609673030457008468061143294576576595406369663821863101233957317721221512782517053219399221110380936964429670042313600578283685114642257778283619642037299075137767001377751332336128540745853446674485506764388303775693796649342876882728459555697742206840167232439175634537541861511004117606451289039192808085897750704243991051678531313673229111493443381863961500287813444181273724828794060174712695414129269388995554795767591222938900615680084055969057621545413641414724692574843016481408734034063162364505351320249461659501619358529106296407792024367051867509770543595075344962982421810233982236782880903762833518544519733862830123198031755700351570990812661240097571812757007998324741448600249555218658188738039304300829290486753502505984807729574125030953541276629190406310445521265572797412281610868125263219921748858899562092918314086724062513369040630945329853650626667627903221914993825652683816789026063572587434699320035916817720054232792973033978180327756774987423215840787778712132992585603887170678906462945505766601077751598372355122644100657803287905748818627117430201623322097126124229497274333565847254481899877627999992983776468793519621767776999208044531762317779806226487318918386323078143808021005582082634787496321445595162653307219838254007870804739275927884129479672316899201881768893927920926888768422718184720286984761446472302759051174749358137000673843257335199059417663334016719749199114854811509676382707829152333816754855088131848541445642385948978737728639694692124556281577444470818350982246886787623885669338271910750300429626402962092612338738553550697553449667542026870206791652329913920258942912892748618109715244859076405079434430330414989934828996926924030043686316855426670704632239036781806931339353197902930963151308742121471798961134558454388784175150983937978617419711468459841286007860253939249661624227597103370041093529566016205031030457306352046205484186581888127523834215296124842897293695457427772441065774240437633046786899284253401882777442169510323310165602819694549357263397581957459905427600994973074985191428745885029006994184862605607472592893887049434019772233171593716604734202196693479425616512731209691497465834195177653940925348492414993495371407469468378567964255450622833143113430119995638713491209326660602366850495272750372442387996625981956918047943613019261755425446763552266571421435442469832379178083482037703633634009888604856146054528604848907295591918883146073184065979578699576989180109257724940833323842814921706697527621646986842818879105853174995921956508722836128224906472890742657705156648967088539081730132101337713101716494894059568915622888159309328357389427096687193542799248850817678750815498359082927275138532819204736944984139051889734680022791426181096333883656428435254658655582764945492666375906864578179043774859859658850247908077703839620750769648560542240812289706808508777589184558764465589456674359521424094129920852750675582559397325389097590199468455127660184070339575602744632223343441701114103719458592832244290144492055922296013024894197149283850939735359736839248557656091101745327151290386018700776211133886663114543405073762056968105737428711289838322890398592596774437183587426257782035481264785236814387460989133572753686506195335315824372159695055080402401423074076486218541999275598724153208428815585487907788736948077642433537910991757304776373464623575714084314322418084931737706475842911824789931918406463458290318220848814484954998759843775309320291253385841941447255761245110467524958799218379479794619321458131597300181679062865640920601456577441275202169950546079109561108858000579785768787291939426216807870713503896229627894378168838130424759329284768087511581173558394725366228105067156287515624850265839241118622928977779398921994721747854991445664073723210326021878795580544228774926312248179758469369673072458343741510527062296696770275337791619827222972950085476142785687375304211778240985584978231332992521652885120809306649844424164979740991574206122136368493760612661656597189820866402146687985260376923672450118440282446948521570947102661172477996983133867487614165684725488014972512327705132572882245887193271787170699656142735957035439281658717003218210569726609785403798712221142065934867084527058077406143977952725928515036787970374753555215306696352355747344630657379365191397495305664113816451158345459539678208298139288486641559669263703927198237635217122846544461078533122064214047570909802223269812835091716848070594939246172762664686592859883640761243513810219395021271608202959813563374654601966427203011784640248009705356224190879569825777419991555983470643029530014629642743087381952027355796366067554294620123941657942285230803714704074517693232680306084206945989446133262859734524310425058330831055535136828917136870154819366261740576178100492867109564320844277240215635614680115472912403890821295270340829407189704180837509390849112965785551731222156945465191442864736029798177256218763721418321093237651805520379603964669858354269245347169953715054548675084788696680402951772750542729612177297274094096739515598125101042732754791315211188171078902001436437252887277727540476935912242049948145390194710399671447859957682484836719404495764872137458398707186931797882579676914604942027271827314815432395229780612830219898470326972498612947485083989359108737734837911638485040053443965229380866248263584857696353194019400928039892727701171442042343676610714263929432332236058605331323339246136187999140787839310867783403154323925374697500885668555018878602135138367461700301693219565143265700703707217098787779554464545778667671440724520170801000011024807252749687523136286075162453243797117119780568291960047688810572665146760305497694892646517170149663359069408018485232740776726119524596794190025261319348039132407933569956816129454013847577293266221904259621017257872472663849245176384525971339459492309887308417739302418969013081515261026897749528729361406798091755162285393508558506072843074816788523136408085629930583938342912398694704320663509157990180952012158692408224623309047515930740255003824038056736270620197230262449967496699843820592694163811299927140852700154757464081434318954400340176790708625123585848939287731261147081374831816971586414385321643079489660946253677194910688645629230969251134332620757803879803383647496124268622528723204893424980423984599602785969519119380923288631827498130872592165270777373546160476205524294468756881182321285765511340761253871212645303522318237462153971347796970979929131520950144961332271831294431628345975235916966515909161344392022950214848262121754374875157261226625642797055230254019474512427464507921824830043907498745315782495397095283332424203998565710794832626125854558370502449219511110979473869649186470919788743226299263461286361908283879068048944898537581738215419338468752946332763091713115471246314080381846688441635520448391329909500369864254085487391273956175150252613714478562085199757358935747699637655114662388359074723733089905842500697527832082286405371380495000296632707884322880143197845176933132734191240191752986408237880268081697089572144424729361173312048902857626173126656856342893223287027665958511574109680484477304578872745550678457925472102220525002276202089409712773048929554622649440309047344139220062525517011332484659146395233087247444459508470155021825157014296168501600256139328464204778196640252002624328199932626350541416312417649806247175310542345857139878748303522653460172501428712405745143526181339234969613330897691140749714315948731007199787169614779473131924623618007511106651998085174736981536215509425382738818045186364498145842922477676538132587314673175853627026117164385384407299553652986333572833672818762644818123158122461509127758173142234530891710184833513416831096093440747664131897978602613683759352158919945352862744287907207325079727937347595506561738588413532534507272088612918626145700922894081917939887081673562834979084926795157242833885944322646773523512278795193564499876094753170275118968559832959715232511175677417141427926890053393231721620975155284203012805296982984581772715344693961473663028123731043364601498058877345831411165073359156008994638840059041588822844163661732885615439556520554994237123913551692450565254670544310107453085944804197551609871865200219812516872847797624952232020128455115880311601681037908787303133619626908293411462562278278139299080703459549724808585572643581611254451220432952686917484154294045561204021550476150744110232758884809042259797780101847757933261119888016644224139339406994511147419958401896353670968086795215373960596103615600428432814738214862145305780605585563732702505545993578799995659010128599164013940574692216463853686600511819853321600590522639324359727062410611442575765098788094750339164068878523611188576168271266538634897243922757721396040896658940852861183092038304374259165150548939808425458620383783562884788228213024967688276322863275449191621563309075224284106009679103492615859353729034726796989126053162161605484873084856097407259334510971615151770719316922540860091372169548336221588957022762785903824003524231074427439032105268192462492224747595219246717419323746630455729375722383243723515420441583658824621426265649019809334324774994191486510235003375342748648345738608415277515389232916686126620797575291572695185641778034298859541058583269659133664870836447311552847760167685459250777817585754501737983628076327766356740948663811980087669208834218221931452640514482728650106370950207391866443603746737979429698900575547044771360205031496512471645609604663400038500792188931033688590130409428114479713403807797679929760403156986228491950494476308908186747968263661592509291013291459736444949143405169751569698217260864054251906303967548238229300467480767219460522435953406212353409027471905894177499444310154385036086588243419986084370336430328518636096111494900239466498325470400696571545149252796848728504456843990409628717572875079800763837211730658309321571805650504643149511660630569971132923702694075986862401923804722934649396457393204473837994682177619875295368426025701342879025566593895809943260229367677792088612489222363600655707181344650526459995904475282577775068739775640117902678880318349528759401226469133456589212405866132049964719588430311697983741969239611312272684605559512297571642366630556523341906198396673282417798810224648444920890369707985308470453784403169522770540446638758411903939418302205120869632984460234509162435243966156572868821190338457375910258261311556698237770510500268062168737003804309781986876715303017569892344693698684666367925760314104375301914045633324810066542480724001659316524801116358524654765163277945946311081819414803413108023469833096767992568293194612917345874704190427275148140730394596803101914347317838337729372699246857861115626367316113676820684793944981988677527256057847497548010881436000654637753623001087621976939915569072112517302137463137242196429537088043064243470536562079562853806070836936441707516095842882523292388552252118775792481740830497677663281753123690735845120909732483645047688651576383470224723358464573309725881620016002573526636006347457226476878774288699804797135795717686909743095547956411806816812117005041014840217087583057491915036666608004576483222865591881717235439895743211062911579891837861550458278078627733107840826376573363759407381116216300797287423567197683390484183612768130145097469977136214164568475364553508870132475871665615761813265511281550639857943623652225716598179118700175436104824164085652174482783180755714756888042554819946351642086417258531395501992940320393147817594367484120225540550567763101737750214328662481480803565981215468076406780694676879445652988715067463487705308033885157619701167643665717932795564778089147839370228864819677046879556616853757001950990446199986986215680844459099521894283867393809353666797659386604355048186577890601972047650364096908824592470607911206716245117243859548862458394541067624721588771299515002823888639242955595999608139312509733276438377498362041536447459494540750703561814548792479238879894119781365004335642698281156308571457373670475275352420825279196955894065043905435491220125939352042783779768015451788714807992509934728967935090875167872916361798919659030375976395958390517646928721077520506953803577285432464193139547610516252621229404693039450962921154784976483103338966251973688483039861325164811779973328294912760274965807870250949547954298330309042248759097379267944657989403635395421213972739202391024816863020559577521325729057610279334451379590229858866982087731750259097453531198655494265326000814472743563481835685441464745637621398984929331472024634723842839815964801549886258717824747994332219297443068641924919095443299697739537295871747895015643475059829060314050285963822711620872239433235422295271153683263426424893458725657774921612428815898148368883271889895938639563761515307059152908545270641659902597841905950181515423991937261036239020482865639657217195774213713921237270069219109373798257004070325816701274666146538473073714397510147870940595282978714136534955656282036220831161317669486392331443008429339332004257714237095113419156690455047930047527955681986049491373757256058797089208419490809239769442182282548244805480464781324814153810005827551617975020679586885000965410330074168912091567273123344322335132820045545162743776116734420313292917000770113072346802745499769717805127079291365563751196065877729916246077626057243858794079517994964107092156101593441305293409491282894876721221039993243708090473963216249759224703299310570683067857240764423013165358211224475099951320993338339742264557802516219481057200540052534969310798345675240031939215600403679322386755984932190513761213410764055882407696395050771281487381348753915469692968705463333675634617651470927601093814582522498392492704333817591275972475126619968029134061915029228483943092271878858160680765173609024281977291133328016318071314894787861264585473995500666851058291271281277157884125105655834044579842233724479521881222953372049367126645131099614595710075803374621556758335496337812283078043197871088104025623638463449525214810615786121176398049689463101868012911361222817257733083090483262580408109061476153409704170152049358700831982085045922292136273644931834368478301876444533251761850949154487502509188826040477510528076358662369503057202711903816010814828398235070134260205418286312957697121676148742036559409932102191931786527138175319497537677624723242230844415671056890687406798111638684564128209278455252858232378691074161188796145556973719361146832931629287388179532417288553712916043599574441502345216212450060015571688073832011264126985953553570417148308051001060311265040294239628942678597805815268265704179096001084738368289195111493574690400424181744493615345101035884354372766303331738954269787559006372580802561108514771011587424332523892449845854407896805459360685787590041988239932467034495222340140035401880603364048676078342864141201356791544361455520879407913884142962643155211202055780473732471874936662119378496497965215649122970031256816504173610558513800101542709695744209335231590399186077754714850890951053786663785776248832877646997994372177271219268984130105972886447597304414890485876467613956338450768096862071954926964824022557301579084669734110926255546034573127738928366802187654849635984341827171418837264314222261213862328922144197065825549712565993290712726063122025075282161433686407804685247222920088064215918509877493605378984873060893602051460146286205652533109896751811735934833783994338484199998057813422572137354946613661363450002460409141280560893340051616997856375719628761785772998214518130162002809478791224018101175642875604274897092197919624395205557040016493223856064283087655766829710972368595808124720373251844198326306606335125898268035981983064935783231903488337581598220337964643401848824604860248460131712377832682893024230071804263461746135519694355169478632121112901579049998230479095239505188563775237340114117579272063378462360299318298127695084016946181523910378284577247403940174042073195317502161083997142838392816368865032307395085513633211012156810724620879653001957025160262558493734672253532044456966960906809050296364230197499904955508122661750725340613012554273428432646842193833060310408255556211403291234706874557198957197429831665290231945619224369612533202385188040876705425656666265902963372697245592116283723627304693216315659418336976191251990533510484721339390378189888736456634736219847885492726409353681731983464806250005164972358398875890854332648910833317988790573036672674466190914389264448924532378456259135798505117165821797446550005504884825233536617718822819524984740013719733335566008926536775543149372699678965687214952018896064495755277976212518909698076776570556278254916067940654396937770536036269220616417499028687205838787628782224070850639796961203756705791561815048807985238802939629421907909746319377596136145666060714515695993204235909236987264044911360402329981819614389135414989044421628703811028371730886399177173678115519839109265883465375555079422920225566740298040444833418749130059653181058375091837488228457423189361500743846961298792482579809173289187922536689397962226351481517603809886939093342697597392360843080145226928288213380936123141554617374542126062608866775520911330170528338681091157041812803024251688763486815903585817201841753116322311215848921614763789812567516172540893280160843169954935597006489315536155856108238161051001771050743078785176773545906540126499598147447186507458160853549271339946471426820193417078350219363422830282108268946324276323799662069115435180009478610876554139987741170348490626330158628234239696687888428381675961795573402516658606721896385483648713576987191125997558391392446412027187005485903038376575888959849951720428741884705133594614549858967198944807010859485781652289395212280892362375366545847170630642030797953747359847912296120204216853756309312564959835561811209126391334168919488864246223300353459248300653046909359679000393712482566475901471208195035281390681538630386497276807548246444999203277308565159713310147718445840904004889576467494308826975517645618186999999061536637606338289109975547729504390077212134606490429187028018103553273714011347362849446323269341548935186588827957154427236344940862205317428996427593441288030153254311737783497149874571528178084238673359278747211890929337457524898040238037117470029153710044233980080241783451954358877612890413622452721698160703476708018147119326618606194529105248719772812753783486403786467381884784526409380012464332355600213192892762052324529358674580408667239921152242882607596406645812693802555131205456282833975837952224387317429747712135313278279185639798511675933616282972062201611084064007473680798278879427281444501326567266295990058869839103191121378714111932634824902691963605353783672864094769940809883380537378197568435573848210711067331966771038166914259170881504029057111313550683491996043225869270337465409646148295706873284891856303611039721703008812386957482095464799281075615315029680051468898920916301167633875763701154966450166612799191015553048989897609449378004041635685165838809646793093085291683326574488572285206619032536236944634686338512925492116422356208204919305065122903303246747713954103493322230806438942863307353362828436474078007151848647083899584341817296354354162509500937134484579077430861953191462177783752518247914948415938263063821096932370195857398374260313922983350252734952738733723484373802384870172851368880967799807803014074245361218965492643955363050191397594999312238295652510209090097595027671227349570959378143772652211766496268340582653540637864008959269838922673375389938311896203641805043279305748704285242792107751959679870503907711359794957534241629786970022456849763498774139633197456839034711004851614873433300681303682847564166410786530124568531891246262978573351086613357382815717334845192420354608438807253233430335352632485377781165735307142518514281537444962452476901539729778388115787325514934033264327979728199139699786534985072761089091713859367223424949058718591480735615349009903697538116846757780284280965890571262629285009190833989887159664820203158581790217384731518807712512070816463402600340335547145493229515509324598376314017113773245918902009101641832533299604514527874790642725263500565379038842290441663722522149124811103104008288633101503419911024670400046374456979016121023130025175284565218285605862331699827994220327870947791375237878865591923996794901871101836871310046935399893024839263252510398860257311293778172802751168169321692408250068597090518712316431929741682097322137196685422687228693396980332677463878178407789464448533896166292984604152109520777825590925394036193498681337990972864549871482799375487073237924330246671646731119305040772796747610753468416259838274450517911672801587572495774450068714450355874495244080739788835020226330640310848830322631500696136389145171073149106848355433354688019561960322603119676433219825756605359155695311522378789295619002549489484180785012445652029429011704659806092687999361733400849453469154829330846367326216448315419439848378139636706371748237776705981790093583415107465108926137746961792190999233208187343695415959843141050311152053811245438850991092627277757657566339228207576644516918640236405217256192561062419282772872141624068840823232069182253484949328751348330333564996181871277347019952466094938509632090003859998273640352794632927124417586044261998958917053187739589685558792968649744470520376146274617159853236796168658465924841517243804776073136371823974036430568905908654914217057152607545581649025840740412838285918821517395963574934809194629912529099118563332941289385706872425081586291127837470761672923262714174540922458925002063821989124729525346170276623411253183054904255812649591635831642579015956180989373471443719967099737250365310284572347013597139050623975299719582316302247880515725512995448215540738850340692192470684299692907506137941245087859214856886129267856175487245075087371172863865378456177056135391812925381397489851049963688613733331391081183703641996759581226261761077389824087528342824170241434558922075109442557190518651347986127395948394649641384446227463862681878598525631792212255990412845504358749727375516204094702106504941623511749219077805796795804184085195136017286106114691302455217025801758270842050300551256019554624250916593885681351627847498543651877012590915508766259078342792248458906770248036965054439372508776133570324291891917171939206750090567144518294152926659263049125496906667810742369061236439402049949749431099621634400662571372186503470861292976900823311815221523629151938941972839411074917021732808144775579750944199325132237158457449217375489757581720849871738722009122942307229426352158949399517491795942450621179549125334163156256426592832032196923007875124661075410514841952549541306289727848307955339190279375963410253487344871611600006465412102899992386401110628309141770619919480016637832101135904856359934607634167465919320924906624828544211389914059242520022636893526738576769433711149663764023219010406566436119207887735569803385526313425787024417454658914631448264681617674221313810502609569244586941534156491994997042665196578138765927890624079890767394837847128394117081337434067432884563635773498809175369680897702729046545605711199843988891400426488228705083537983620765979135586074280440515180400708239444288313041958283171447326175834685621894508203500542633974306102252998391542338717245058662514812019197197813209407129150555008880175996876944321887091900429122972169307440678255097430079101489779339026254158374594690702330971569472884275854361229375765505333368539929800115621492787843207398095189545909394976938117609156579648464566054488041304021559672138748526328292681022931913970323150304775461348864962770203665765402612066952710399234757523146084540938440144913120501018244537433396195091889588524587150859653749341074222109941680726330987393839849252861294539588797974890866793369163091178392558149683770387730451996138144791794467037554480245702464085647676852278274642787616702444559207878007151121176638670629838945637656989048311547990112292542871193601330007186479532509792226451026360965367868697153135200126023458383395325086026669651808486891449053130433850851999388288867346548499926837542787102540489466215981446270572503581120717790910205988646435859111344553818715397451935856304294170254429585249781111669295135300446756301918545899072186733884359657360307649027907680148252785683704552223268254899021524259596980412726111888898085856928742710956170055958741719695009482672852582863067023222334044388099843448402591788410449276544827162691685904687236824308617852704227248248021534706482535483576293719597141660259008652697782797856350977549502228616426106024548577546332741945232100269224511823974684904984437966661225538741566105482032149481666172069483718899978993382011068025140445674958480362915743801068388552580617354220231669086798798920647434905317532485660974490723705289455084266709963348011425473006135986476360877928636452653344787095064927416429243086010744282526473034284950893468707216702948518032781127367271303920164794863679909147948078194722307308995896946313831725346806097117445850986902339322489497507490097065931665723956515202435831685972518906593496841124955294207342637719970290259011779889142343383286772580180466692717220158699048648951637130915481883179442631885254334142069342277573685553621188256213237221468440151046233473979352126295091620697041075588465585300108982353343510932380537670174837481239402343661468880389736944426175116697483774615870323196304241318702232814265408342445632342009753196944782029298403910136053004881890682289366192634500366172226850665576137193299161572336926854882175278882885178411702354803707366273173209070506366720275975747494798783375541946943352129735812305718913864283944037108285156579230047210390138023450153699890937243510277860578414797317828247688606129932321531050848863641046952468655733878190352827492776091218488296924509063683905282013930886981443004464649841042530481711594175662359498233101804327112955359660085589544532122460491458567793771841021896527738213128573768659333436093657439557957489456444910828683097823815907434036248969118111802537441521995787928269579669851618684802388584137026517007914200168400879114274629204524183496160287528610398288157795236851448235901371782558530176679164859416071396659494108102295071200405005566356676986171055732616113029727088772730803026018037040717287154099259659982151741717043546780920283732155555105964607935640473378071765820465272809532485201860001314316000206132286605739477046273155362625398792923953731409512876346159887918972142945182778097880562464378983543102139313475838876361735684290419007298526590088228918581314263093520395301920155237543810688447080117621454817679439129725483078809787839559728724594859460384197810818272778563387974747433272874354429518081392286697369453140076748646034492544587909635515209369987460920202760501030018609555354869253733623065511521648543095355174370201258586577492019854485412129976791252558228506815577062551736751850291828467236292418094956261280034982638943371418003509764944389768639729996671581107363505099404779037953605862215346759820202629926987024334321430127101787066929148278192058085281761836016372883769484780204049668788300407301855304841451624845040643692374407182394803857700495483355377388019464295581155919375754827121128161435965106963138775263128173100650097663018357436030720685511136741203845347347532763093550396621589188132519522357467868689072968036990689417502087442026909530504019552294961263917489658293847995176749323438553157352708430355108459318595457699307350005697736381088347027551435440543436245786042602377758436168796809644055803809558886382198520750515284252088036916851547736946469807107372021878619090086594079882366317096016372070772898715670067358897126337283649399390286613463502337033495347735406316987710433231752783375044827759120625023131335378759611903246603184280453446961091291801417135175525715255474358035417037726043755285830151036103851373650088934764224962948966893075009439258158461860763421603477573101944708770304253260972890218259085706189380951096171518768159773765971997241567116126642411182168232343700206209344053659274960796294203837873396328630576771242590018106557921026951899194631448633704280374176351710715598539841503523975319149539312703513941251730735550360308298192084309269157586377225715631707731785141859280790117035360672111497757987122444001566828419930372526108359735646501425635615058630634221240304295780183780969381393826042746965437297730413354105707407842102530939824691674008889832272326024093881641770239889500573495160937492093793289286211381503221230388437309773029218590325396140124948220678035022149677854133927498432628506790613233216235338516162521475796878104947171713512497070280516221213830239029070656935878495574772317082738075643331968371105926088337964925256824203007450028058153952471621072445565659959835014515992205295790038908350615538223301119417886644770971554383678322726510916481243851215972651519927933454702546185498110144856692107705950393350817508672594938536428555707676711780184699979174942865566717888475552758097803631686750076564746556541762983871262883253879709783903453028640505863513649467374409492690166328883170752384493499373927863889767393417085673500127943772518552348126364939567326159152630489124236166417100955768728221599062172917288859970421512246132278652907193720014773743162304547705815817080228980456270576500479363830844789786891618615154640496112852003410589792787570059825635138644831030173270185787876991932594400210680725980759593286442290705400130781886292594957654792342755331945879118450758254646725168666514467018385551675448241664739932372863980505528850101116760587172373683736233301261755094131867971949210773777329183422779661073739758299701618009109420284838712595900159767926067713721675790722528955238698125433019519499758091616618556429254761547330690697829328349957457342275150362875472709443981843822097450792084961773252761628332568508815162001947108810910345324055012907567091707038444880593575406479675893841459687113047903934000753555144255328747801230280361166285051779846931161436563013775818624001782512949458131415421309659446453274974482914790254211840045615238909749082511968036468910121577532312169495272914447776828576901551345833820500962074349899015382255229340631076023704265618010874614773296597509018125741212097874242375555598038030329028471004121795289512374710830610537025498625995191455081326709422048198760117604461315228709873370274100466541308438914100241390225020043251802796528384467356070125007645843274375329774805758079401166507644565333969017069801242961874529803333279050677114171694952757677973765194846002191584730571290602406251314868281780478910830027252648911628982893439743882503993796679822199832605989347173379344322679157640516314458877350285737155762056548541767556558580140994957869074481522616093251348561942144578529330091211816370189419260041458604922573671835605290862056052830544734641273105005233019463874625965958585878102937110437563530619766572572936943397517864187156218159611890857806365244039241805822407586028542653417590416110492789599563015445290197367161960198944459841696038805201482000636974608451339344496832499323031862571801720281444059257024953190853088800015328285751194896438166318259468341700524979940282177253371234249253503012136611343564646089288988613169178612494535852201430801229908263939457629110851594029812853888040985686010094114591299953435381157364071665878864484481828840246276393240339126833728745410085539502666470634094625718059407444438170650377730852819787493599652385193512506346246454440544102930686180081810778513077719622649924735124662906881522984035433726542149293469076446757886479225244448641649477578673576881584287992317361160332790212915814587169468731910486586391326141109792947301522319641495228159574708319116642970521912625631306394665036090315555271918222746493221204260583232634188394725164340162974768130797870225909734356214948130994861819515073928695504372585800328999646212167723758489415353656902502629537492693789862912039594256621565882200208421103917732266113895524197383278844203524113049128050697228889093098235684684887657002119221869963979537608957649426333634959445450317495550716503816674178405159642086276060487785652698194138695323500239820510672222660488885810401607484679439400991802269358881386018477583245018202199382948581730453715998725884368802699141238663935648927161496397613416041352776149093177008790662478035828501188538836354633631911402195773818186920740748823938325091668560580236997207096575667245879398231497494064592783275518286878814780237109786295095934020864881454788991903069296602532437688217426989485735293599257995354124392828785216992249203927839199553937783610739229898148486236675443457438270976662024065465189962575855297440675614231735883400639640647250623294033565538836433177565932410862348964340781638564520585960796971774254665224506763864728455722976469324964278236936627325551230482150679624302800236843801117733955540384315953097437897969349022340234270731880215029466993959764615822352334206438545062290733685300370236844106769419189353220977851791986032947881425539729386426569323471211947449092625560379220268858216349157539256435906417089878605593587632602190260468877738671913567622889681483979554286370383657270812990386264608270681762540155127204099896807519574479728542519150811010246088393401255920869431310615452933177061932969277182012904235908863704569120466366066206273541075472779574822718698725045985712199973368431817443253418305327167435349213437699382350533960034055120510933381964349571255998898533695765180117444450352217065945645430678482801136063502025445892285337299710793760923896260433820572385143041765112670625331512441389179207653696230115413600800138524581691534071442483596419436159675024716791611790593918307913837077863025967220557998483420193109705534930395963183859361575990324223200534712243770148948457931182605598388776858693469969921515154755266434698231609260742644712881230458441030070215173648771326005469891248433563668052812994886276776421454214326684405048804088538801140566525542857455733028430120710166712939413787765352159966541666780319538955757034598896151887211467079734892201352124249659464168190748057417534117331867858797137904722143910453335346096546526957698392570215082657406798079318006369348244053476817256888322679194000770266103678305283723386112232137548297206900904147545060457317593578832396149003015326790016506326124418058699687345777298786429745046265854976525157840606958641404121613699843222613895597900960588241046310857003594463487031745933817445034244140464745052254369083646241566608532784843527359156541153470168076543725088159768204961052741624234648438627955391674852869469728370633123668911095638712145113636415882035055659443372490867386537864400891124373064536266679915011543549121634176541365671449339160838797167313080734271831964638308325661568204962219472281383292385645206956529971833616375962562573220068578971697404611188371999875329678844261711083050908469919322479284021114975768701551436738297306029083160697250304342527588673128209466302144092579407814510163331275494064540432754582430304715140215536416584803196254475861087752244859561189933713691683645729498334191051418623472255888746705991635482356022671078378675612119715922719091880910427934030232642947648696924473632897782312649874637226973166203796106005478585614852719737175835379532445722401658541743040615528025425934992917105863336484402775261489693432199020027009455400042347607606101947944909665448331322650434929136577168084256261905950452518303435632042628892813658295999946340137734277147624440400453038807616198645582219847991981612147834421396481705310715918204155517973433092897706156570029252887133824791002906048551711686053789336753573426326992533892308089808749207054271062683339351752426111436698698034454377673255986321069494477512688578048916890439560595080643729298904456738865430283837393708455562284390045883350598923130565560912344252281997930290892607042006921615053249911435477410287613691932426840441211695682695726635956154780613675266519426782712929119600319706884324126644318623666311894497118932854645801913944441945703832482821600845181157186058311650874751695686160306610881755739233690645079764217426206489554233899235356532878268992823243825252430781330791315905104364186263622189251995301555878370023956367198268892083432577775431325770412565518775405836845401617484403097072526195487318323372007745834725568873169206685007705139267002081766444855324297753875587634791456937096532170198770469129872670910416598648001784500837421216541036096957499360957404071699204570889667171087462673581076655563471881616124656748113963708730586618408332440928375692240768669762053440758366023328620968493924623913565675287566901463600634559917195252898390455174760964251796118519683979987779176962955320066962905366417398331405184994767270655845263625296708399892730121297615975517683331454347924012050718095583120758259206927143816700309433448770890773836841909924809856637786518492448058216767294151518146796152405457254440919664761084216857488481064648181788149829630809121997331691785118453657728330688903178750151984528624022980062910063253471754688025260698550693167712963898173791904830227591688470944212223598743732751609877377404732759412726217179619652525199203701010148632495047889426653708693517125693805820825021951976001795667145942189699864208894918767657137854795617805615105591480168722489110117351685532625196540044079332460871276173209024424059325999371695826656093197343969965655449777566134575314603451844843425739299362069800370048651098051298078396400586949845955034287337900608256594223271609113204812604674067735081015409118017813528328638601503202713019515428092413548876110824110352656065184894782015688302443495986086004642927703909875511176695830110045991111190074079185713123479660639617338871198202818555672414295220425811339266061995255339615872756413128386005066019704231813569022943030226185156978321385238493774080982282510132849428512797707181654495115500342319656623061705561772068339554412471775644552306990283146026652421459272442235472278376237742708736053851989412806454690560672755697860072641831960649705296526007172422904063555806690687631338279272005257746781316072412683389242573574561470495809941337783280783458957279833946119049477949045972285152508066463442104476119066358363906130878916372122226014580533017635844938680035695739389596525612217599587584914156427794214902373707147155777065207359795432856923531272865373124992596340213557341124059006275776577450001325504873618420197482104145541260939384559463479091233199905250763462409036072058163043788171341381739461326993366779401378579744693918570103220003190473720248173223399785403483640500712132119861368385259868179936938740914448963103868483733740744564191286664706146019753470809548828153334342833386203079546767295856085440217405551460677686471135501406739832238246827250571598984835356218185708868663862860205105565980871858661625450077899547986847431717794472014762955159871451356365705997567411038500569821925129267035044971614678870450992939601911266503837492249170860247104509619729701429352169965702099186793973521968743144340227136522239114188556432436019087323354848273688610583941129117707618263530411465456530115625143942311710503237727195109745090312200033729726174401602166044407897880396946528419663866692669318527367187624229680078053341586585921813527599088047352107793857669332959049506831293346436449296924105618511239983566922669905438799555221831133060708394684622296124625827840226283923619296300689920540746285053402575404545181820437296925509500964306485478096575774620183808516587967078592388271997877360045147551365721880344667957742524999115252225757897427676177884907434597226754774482577482550948337194027673428011714874600823692165246770254247855313476581697134731382275324220947754259562380395476376500771348513021559530181354329425546496457749227407043867938544315950803461735020815001830189180254192949446185198220844804503878564695676765436845196824172674155565781297191449974302635673611329324833530992168683172904096630893302363230327367750334516533771864445862872843584694032768169195825211437140861681870228510404840311610308134396598059902518621510568309836414435385765065248301601999020243092656573044547717419700208880134728133925950698560440878955056230835653527718690092081769991818337058916272692131310302097882539549762437838686425322328674893119560308046887823626041552092620910274881350591826564117225376553201274317977165842368406511994944623368176266694828301286023336218156495606717040677659852809521628423769134141810438524831680804103762755095236691380739548901498025056620034819137070850749242471956407420283116782719625208391312932789893803812365108712062284197622495506252257684038687457357274301229390056542244529523481784382252708106375562831509868237680002731264686573119806930647809046353038443272044164886814093444491305671515305209451816977689744672851917760259416587777634718450102581674113329922221506503073208116189865692842174560765913168697500940437482116039090149618506195535257907488966574213915969709036269617996065196211761146298398084988087264304569989320507158270259121042965183523820129016201322072991389563620252047144030750321448791521137427212951945644388797962799627913749797020454896091568771670113084416396220724270244780466394315661917703944117404959522490876340138482008035156825731200444749593811394319217395422990252695821257921059093248720783562397495871743778238700122187415811039190146371731827068276562186965451450882098886708938555877853258681412478411904186371145659205188262718211859604345508400361166213167437861360413220172605516000421722709385849762940971915819234621803638917033596286937007816480771737128998847862733204479839182159674618084190709206791243424909322234064291897870966243473297875889151365509799759830538748610770351106509897725685734806618431508720019549494680239859983141717010667520191857152353137631258662609241517378145153990220968607981927777787849172142843331700436672263931074136506652959902446367646531699553623326983976167692287622666384150331694093400392710814303557944571297282839650075185663186499904746081168697368192688423196872736886440258357254198581346342761341135483070961768255378046294866555464735902246608841922061538879609588864479695900627199064884177555939784447575839836916897572945766829563969767067894837485449949426722602537397334995598617614007922693175311191220638812770387417411838328618881104579509171314505036408925760067490814105544474597182910331644435559561608415196668099679138524635058844481871405674000282566269324509468327360895815153421757587820486579731541136907566291929578946011896167744215430930047138919366001524085131425445779278640965565812047976374169896366175518035773016913138561035358732118318752197369478490063189975125203467230975344341413532158856506230030782456084437147290700531815204056498880743000137341442182943311921125600642519989479026720619832099957209866162990159244343020576556462773542616673730631667652074433906664501855159111779684791587628124466037988840364102363811333788693465192034472909150350105553730357206016997176713796355184833000224505642135493070957006749062601791481182686767488899418561416426130351122979304792901888192580006599600506125262366062280638353161762843729864973321919697017051517706751666261859245630041373401918695007371767409677476694306370302930471493561961333133418370439742285405011607730507215658362908037876810690581629088275796141061269647812138696096937580167140288924407897272178867849967174810754237567698563593577539391654065452162325685906943258626287467781771268148959957636787642873615588588242057904648493447424105415033519718592106590542504192113953578658276240170357455670759498933802395324043316175449454573915326700538914366906363430298476275339955093125339790708441534854437349327909944985334865007779855587645379388132234923756231530982454119497466161339934693606850521816664513264394818513257758362854656737257763395354364590203857709556741703632065905403443802497767342528527822494787185264966475943339122673579748483741419191352164409681461878167234267638677406177121583507119597214380304690700107526485244573189298788312425086379083894121433136881473374079362198271604175949451497624274436316544036616329422002652525772958017574079458989244080930531742889857359977570861344011514709305980519892864589100921525496665128455310490158095339609262556715101603809300187563583368879715696938463412594424524794118557106251714539876140740115160848005211058381951381312167675447546854486415182085537490816989683604906189552589991076848037399368856567534222447177297824715403619708872301623414592454793964328901983070282715008578055222731759206249676371366947357399549912532203319428692276339683075570762818954820757191187769224939484550994470567467633054577386545612646616864360198274825708811834869547662065966938044896671746480505781130803743749252877090138230240539933345074014738997803379422622070890493454973802548405244886530117490635594933591258579025436452231420212277361278484474747540163460536921104484606451447738475258416875875336377610390463200900068248581255679620311868538482283136392139745397377590276964629710628075919292546056178664915787577675140440655902741867125912687643462034010269843404917381434265648198977211645991387179330899606334978617219637112912849168079115105395606815581075738270815480648016254335271354024000798147386436803833279029712797943344553540959885616960640953880147786904938986856393723126666737607810770529675748569040085153032726894809980381887655398157662401037584395636326602170656139143814768778399323967830729926135865983072435485179804682478311272335985817283036153852532613908586057581518619769781015539817484847490746092756600355629768232342659109970845701585206522217358951961499269481392482373311845612304957162453052749136759148064406430519383056757247164425303289534283702723066113051623149467594987122684689220016178846914824499044959829210710034971831453305952446625002770342720712170427168374114431297003973211839525611170227517954815495056737212011788743827358105331136510522331738318047778861658828021730986533533401948584034795429734934332702838286209350156141291650789431001899166470466655562428895046006572160774351780392191356173523441247471730252737483095331326625530133091540855762056113621875529446315580993014146242445587427286241592953507298022920621787153589478952258464665825189249923181376399233819102165275042690971917532343645344807672811734444122734698364818529460251476636576476172770216877298325815053045759178563733265081752254064398061482364209999212677607648076641047107636690585096633641475857602009651011797261268841007608023721876174046232625624149465750840421828405026486724845156333161771843406236425156717538153219523572914090422317183060689443770273366712109659542640415204590773305231623576504159644633330814374032704216902805414910797309767690547736698883571701704062852246769785836477256059497677062125673957620452739278796849605362865849782364824964268345646454655145088715676899075721312621347581701514359866318632244335982837093652396589597427066374891395052155832781550033630174971199968400983573750805951612920258623302781210787031127492991363556631602219572714019885442993310494455625390880075506885217932158618621264601397561835522098852876956711099767497875880640609455445338091312025927641228825562389157583645641689450137478417647375519562080123011543626219579099223575201225521682471727979733954296645362185994666834911073562263502499636798070781743046425913339146302885275751230289240501720208539560568689894791070854182575649411085884826897904870181528798592036587429394902197553334578363947426600143102675594385053064238829411814416251336581382670038804540974234744173135034771071702008598642912876472646536754222422058654409031581721576511190850205698262699199044760783537903736073954967180544254130631796804424825734658565253648767938219680760638248355959052953378829232779378107337454551250058253882781766117988071618973468670124999337972497497267608358934947797553409873151019565916296814865504963435175640382290163265736002027075484832340727504058503617165481045498402181299020257823646158338646010464800641520076147070618441377853699681653268322485617148010442864726817604430419473153454699110152998484009664295170537391886441002517451126523547183923801616506149744283301404875441799898543402486898812077551183695029267182537779433717495489317209547198507772466932910981959811710334577403401923353270118667033109175392850905599022358223223446869164243259263321279363572206184574836290274867449475452892340286714798364546880568167060915762204452104632833865441807816600575682560406580699024535482187210217493167804529901246454518107096562899329789884028897737098894147865822218238306393372970874506210381962304890031077009056318571256808137805985943768753239603995019893398422946372856844650566350565240991789989876511368275542299485839150044546326365656435630260481368427407875272266658090854691937681924415201637826544674262239864946460403597817734052362327330567180912534666326224718826123199030575313090133167767765954153429207743780995360904679825579213058214278250547425846412642507650010219261836542310215533361639338744160927184453203172817985154292195453161899146311318234593639896822145388936826805713741317371580145624815844993584144681522961491156706628036613245392945812931131905596287310915749649060151045195134871983032405538431336330333982240664202110336789585085962757613824701479890163912275900431210397275706168427938584943149678951879390954624744563170894974825299743052811194246638682553957923980939462119970740480760370316533189714474475788418976127378065792376580920461921009256841018796319995795657061456125984728992276825999847468464401947453195498371703851785657429936158232920990448860447425006922355514368447926320283950872027333783667463648967097571271069014198106819100611096183864708010936229310836837502878781784976722438350392286045134160092452839681756161379608494098514786767274892856944109428964537754895919555573653388617026985575971581194598094016949448246268921178434139376750507426329221312631345654927355653982722178171960266136326626362454234188618942605427745320821610896777110854458188364921425561776666385557946708102918675390945909093268433896347728601682432872991235995933510266603057072379302221130478441300721826325812891154640750945782139818558334033586075603112471551926216900439828927908203204217295728276786412627669034153309788043685287728262005613165969636335209546106529035170344805669851481486921118397451291008494169148536467814466955708171715397908743057893397149959155687776390073621967439170297912325388275205451587250335243001335895693422036426752644937213647015787095985333291397645727605472630120809787475522002030974666386525678555312698567953577080373080482016992205078978589705419784327927488596715498320368543615597385453293970520476467650188263274265295534369488291529493392479281579550415081317845480921186944300817170354523913359914656319768749394518368929283029414914971509463496082694350602947095661828494721404218942773793801843947258821812637210165984327425021882130009547620747950812488994716910023244864948268434897963849419534541540400549722491724743425031297215213881670758562968610546783759576753855304027354880797040816938572640465025123319187672921686658717816621752705378647100806740714211250814632757440223390356445399509524101612908533907963800540642353824930564340990634532588574773330937366570223657559540616555508936926537682984986206164143223219404470270407180209050443910114876165228458542985312368130194492988712817042249272212890116551641794289359625439903282348900827427442286985485851125194073669002454855973156770780288171952870062271356726692916249661205286706178257024294189680868086927866034968439260357457390392394020027092421441666674349955837198408784533650485579217703614070791647447438067146850775321253850466384287001082121044812788029521300886102835748858958108969551046316404705761338147094322388949716255060424814170922446971104877840185075034853314423635552570597728090578875505523461905911596410270138686232294116393750983408776015794732835755790007474080756629940252959053852517022528034887124986434347357901910674749123764704911536270805376364812752705679717934007691394205280276220912856366118198200839025030355872026762920499852357283156663546267628193164765327916796657092056150748005550801358583150686021334292623341201611734874185311318421215685463220519177134707592802569970047566086213649354976218347067018926659323918998060583722330191501491008698809421994864551496991940357900413890149504428036573885112417823349401633132727879374975096645214088258277308162317206113842956950394374843059464855256007382236743050179113465527581095750554273826063985714885775426052440031611608155062184507626928695672953462310993200028835515978201732903274656397654842645630866726746863264388669713590100729619493274917767786752566565785634206133207853447988182938880322404267278985113691778301116629804346064189903399612069657506940695580532733218817130743590673154783052852529594920516598379403204195209526282846611063636558622457150164162966854804611011346821794720352874042351759958758991639088501269075361467175917964950970696986347776269561579253499857639098012441935849985220811634578369143735909704246401707976618411421552199605597038378740864320350129782177081569838792134764102947010046420809689543183712061438620127702831810940539885145760853517655539809767812489371778372588437324286520119514663871419802319769515169791546336948929272734233047245561399052428272963198349781263593630550705867855229054305326615856405542244732682248105921440161006356566314215424266583017681329431441780728166005139234891772888384030755113543807774652365105170191855021086386475959990197931998629786088478826455826633776613270484604460814799087316734337440186007351637847770864587113324182272356621317086468020558334405945888148479176277000309360383169423624449517301608451011693295942940996029369488993876710826650461033138288732743916292994942086916893631844449667495693954668165859856993850939268834437948140847746512825222444931179190515658204988369544542914145347639331000781997854754711037170683119394915191055578892148188289273832260944487978566273122088615590332469505321584973037690866214750760614656644778392222606218533174452345546057221867223625524155697088744907244473364845513806532345422872338375848377940000120185426681296228302801626801362000765213513042874931271054451984289979351336422734754874866415295456496024543760638217173653795050911748811463715776186148156544637124927870901494200277834693888897508948093364468512630660097101178111222527723602201373486495551176335837191247510169706971535178510446981080222744498563375560790391713569891657539613019716258788642337252567227936863943532239027346319602150945301257272450991629912499781175638759395884952945680302649567712906444895961902758523977068765517987194549228206714524024036355402321619831476221882072330838537457850538416387210908970344181636466500261125385747750266745319985964802118907645163470271416985289037719451503620032255120034852164795064929173616276783659880248522829653433913603181345264147323032082042390379211719733740380879465254815581917436903026110071327885859998802361903960986112926093255957980969933301473340975273940230772503160199379479523820145305232220544363235083221910667535744301590233822925567964620416534092678196604137744344659423435191685537639938126814102353067768466439364472031056931813129309637385765469337911812651749580234499455892568312656694635997019867394749965988044129077567678107353686441142200100818486335071607767212809330622012733741071396407264577392339144507753206991966543805727411809911280804637416795637017722270604545406387826560170355044359835098983357121999138003858324541618478891994122204048681636358228677682316147000889372058436669998316622770779457520019517004025627318408442481975714912638387512899907316080707153832398928594078091233078756508657761858528494800211533217132209819538370095850434637766818858078475578460599065983332632818186734632062300446176047195920059285216924069884987519204462409283331810371895582809483131067921219129936763035572424669514393188520046532701226726577827441549396068943900550587316377296197166757590043946310624349883185515505503891899528055072021696692956337146719824251646221368160908917186756726602931313681729784743358188132092854134567542163274539424790960711310173861683087140574071049056343854244430428769174213179223077022234070333967606128844441333320321932870120966648984109117259265225687610493328558538094036073073190436715442469356144160337997494151200071549507592803685040881950895090553592135424694054956594003814363496863124003894714666658655698020353600017329253005135020032220141969035137988691846575256403400681351324611100523622764755956070462638408640668077337942330491895795731786866499015829922266944167244635203995464254757645360762195201517521941209077306656114496267539630171860759767305523151700618713551746950397071026527476119858992781183459529306690451698028491763387972638649111789941606950645567800846485523989491583269752988878106754632637165317094743161720663151708631105521821985014024892098456082321348833549491927341310684022565812603299577957124634869622998920920360217537537756449313502742168951403027787334963984844086916745021317705051610788926333748997360938039609985936698565424971290703084906568228834878966768713377146431521924512000839095886830559244166005198001810908829449090788486719864977208791016600731344709416191761327549724712901646947330114928507410976749662023467798359827373720963181469662026793709941922930963572134618439571216967793122745719687197628200155326999858624624944142139831963587510909967347455302129626886491481230573574383847814050398025385792848722056763927414543691560114824186000048687009510336289102057190611353752891873003953642525899508546396898429638723038127044234339667138265988332673752561316930033619157977385468140074642901041222356726847103738289444988219366946402479946073149345277566254635328819588406920692973425144295917188443532654119478611203596007612959219586606243374023173159971198105619036333920515484572441585332525735772333717503329706305824148326312247974675439423921395152478859121855391077708472599640608546600762369310877843902737078687827849824167603384730850234923038392251264996904803825628091553689366024669824294460786400397071651422587639014696644225240917944013557121134298604202794261031868728735155535000867514202633990755283255526658269654457012876861813061869308398239610432542433584515791334651305495557098835089936830413435590872303481652085363905168869569705930347083075707822021399733559482522481026225845730116380254867616947589685605490755961953186882665910161327341258975457031152067798859608917434105388992085532485167204819977779861413628059667963729861141521616158835176423036518152248368374922493972276684061005062571143136112912844298752885594460221261585518386305128172896323897646486759715861029278224206466039366217374190482533123656028596861202088534003953845189521443479249041144467195984552354295556102438445599079102935203886463828975518832263784582335634765673006144056849541115831428527876826910052890702118493740806593577751391553583539062539101055586762861482471003907017615664379164447227663579735425426676094244584157532203533944780870923640837104724143282557808471138541603189635652681279449678696381189914503820328348294818911617932761115677100391820042052922407098480788516245293440664780048589260966931187089860432998075847155521298955650999343863916636218832407318669948339256835937175917759803101911865253367620245850487287037101801483191268515085347886473319902406908466348607167587779338723175870043783240127165924173803985558000414666047791519250701726034208175152457383524015482167672279499085413627109668702019741821449201751163022721334667413639231620740275231657857620429523795642485027061880037778881363861232783799012732211168069009977295615941631838069337181353559225832006263455596028224125576714495997145164681910511335226874010359600123767413297385320720843708122280742395614751118191120560711322497405044315151705997674184958200267800192589961250084729604581450603200868081713552670158515351090097119761232840649837531207404605586878179155970639463625026772554312037649238178589897108734502275833243281053574636904070931267989760873119294091251533224660708864574978009344155718560824883266298443608891865479574835192671795326310513175604956286944442928229860922296435879999338204473124057935158917658797317401757585133574046640574987410019876317012823591119371800082823622052265542278880403590133364373096548910082527176223046138925669426839135440299116323226635951217623009542451053826350157238726890544672225480229623225609611761716167139169112766199171378664892808605519177616352124063819356588223802486165280740646346377732252567558079904106596308162069039218297826843949114474794031448736417163509662599090144523379258099038831767158332132673050697340693342303414782683700661491245409831834196068768863324725746030706730855710383705474057717726691912223730590481617728129999435330103963350340764245350045988857974370972099101238963372495571403078833553305200330151189036632100967585531322324014303067216508671552519195732107580240813444156439942725449424883510933800317231221784359382551702492125153384737532615610259657792059673949386681228994273268484897615833429418537000451214863779275429993909789415159150187347407058405586692887664939355179086389522055999719801890249736534514171897403721289146020629187751842881170812633872747068194576409378548997157371012810890279379739320423295240663680712197209366595752165315832178248082740220223250948252120559255838848403319456763904396803170214155900245019774824675311680203744454375664567155947563277465219546688466227579455952395777440890905439233948021064697202098821393612454639181207006484213428816589307714209565949968085881486750072901220168517852847487857950657723719637993711341736928338705253502484203943346597943475782483603060431820624922017038091211854442845232304325140539799264685569337867181201068883216406115372655642815678363268233352294686574280414383314128572009074056712495937905530487556666999317404618989405371426923519255390064249306144965416818609776839206360637326007032253049236925945311773597701237362114242822276675636969208896248068423476260063484148333783834278085685306903164295856378562066583756470504032457213233633214358548514190134833259658409551249072815718337841827480065806287544520382052553978634308396999159693551421288530807094665298375055661261740369325423957285087326552970840875672030231254867992169216893136838728082100838100215015026382867345498220656854764634484558434728316529975864586181313708243591463576731856421686507668954151124737265200073979056533302609902954730172710951522532905947535104579405309654882346847854480570821494720022369871757311790811749058859910368884545599055944309360378560672450399758272782918308275689760852215002199982252621842017160759398177831136262809851292198089028320543146489580950866663349297201456276558289727872991893659833298320753026612168807961367539149199829015402193617388808714144238444831197088042930372677277171804886274054542324715731442862162316188131048346699924013073413932643342317410588438143461280645631798490276282217005602134856606447773942160179854737461430769558960200189376672791840621334543375090686062632776821770844401068245823471188405310731106074941975459074943227211569547296288892794396226909745941906511500636842551832020374423185768703254878155806758686682080608706757394763333961087208130972160843850756111107870036513249803971394424699624672282419639459265675740534402582495211436014149701629332571058847891938277469615479055967164725315719493374824245339836142116315159110407145925406245191580810576183303183542882030186950464052749854230259641486790241457795085327701935815268964398883316454423532412268669309509909317842089295443042453064400515500396875609845997272898227740921857548908261706803136796305695637176406383079150854570033552212781941149910394115932574696872604736981640468678478538319919132065276557451330978769484324166981763112382922249949132082626328082769400103479993156430000060817449824890265029070004594974017050522178238053895410388283080483499259493045487667816740219677367109946411772310755746269211276829894749590192471556558617428681039642806272658343777686340998969185318639204122496248946762331350470140709842430098394138377327100028487901024311396691761206128354889900290513398762369421074249095457536667405582972040225942003924845731188411800076365411001103165481663333323638515374578671298410276225121648667052084448037338405132531082418960455390534258596606762892555024295384927946069562681075310468096675437720853936946180000047933621252528881797437804946381936701018821670965493464156595863341912389518541750043057739884124051943045152545581671725084377499314491226051524496313987280028855067104650818233768144261775070545908465411884358013020146073167238787790921828012492706248155308892652614218623910843449087509234127383421888369171230918917705160053087987520314611908368100188943453672589911453763904645103481816832785700923086390649588133329399167369784374558017619666216229238079521431003395049219770970662074181390067808764910607328043791084081316231004739657375088263160314578701717868625500560486949663670401819188981699089728651665979297404315778891506844719859592412188837796814971677045230315123682622497885763728396319011529232452180625253729410765230382082803424214885940438645437932487889335081609656555827422692439992689538380040626569062955865714856449646667440767352917025718445213930777509249416906393886032971107634502035179577917514052462816045111210187668541928469481068774047425593870748378355004600896403621201871174675616670938453027401184878059386037033500146627222853068071869429344628179716250088921740902958180360226224467728380387784621550260594635477462717945242733966668975177632451939568078205383880201261195008530093873259034370661168561913170315886582404842660145058679250792164135497919158470455033297284849874828438752126946271182457695025404819280955053667458922350293562639515959169375467161867922865618427269502561290152835097743905289621879637777202375755881092888008868133562569990137021066550686793527698513973378064732155281525617307030734959425249711571486696781357722245865156264168569085518059585333839099652138664472917298578761564238623631785425599339929731008180094124476753941880415374061629011776954431172086404028219766632702767452308610629749176910908915547973797494642527534186808913483168072377083740321215184265425806958429298041423320552088643967624484338106562851446929345902963008853168027659886314025884578994342217853507265010363734926485065974706670303828723171591855789783561545141554564085988899820107911862013688983794519527340164666321640511745697682458831486619043030367887200021399526276660331453871521573010749151021993513155444109626341293412085080463343338040099008809518019391354220110382324819031052601424592776232750215878946186388976246000319225547277767117285559379250806599520976094003510436049493799779284488632946298664392108114457897165714326990504027377496222437219914890766668522143366474668553871861426996238755789316940381496444600421255477932225869704713203756294428813728809278451927414815728571478130290704588218330062754313646679679751706651426506174634367345773910702694015801640416757513290876479690022023317993293113903617691780636206965231342494424647631842876595332835738730390257813584872571216930379891531146359504664999533087521674106841407982356001523154223014531025172834743819282722666666377935418804918769270900545898990464801296383088770957801435528439570007656304066248040671358411167735215006280330233412254818980793107251505262371473193761649703054575979179053539456980791146079055625179185574553778050934781951463601381824260590240734648311262593318493097144559692944360044763753048764941529105984469963358818574487342109513473474910454933459453748868320193456407922112329201927701250794127819522742489164170228307538739355665361403329682667808784145021779671650079565976192404221700741468350487337525981033449661946249823908654480330992846541849711463451456711687932003370214590118915579495602012239647890665904790858904453577715683868837139742430091096664962374993045775095855173963744681290100721950698501490805173684785841039030848640518424379535657808596097833614257126791850830390446277986956811316654669515502146116643118054087893118383250210650894916492269429872978731785617423321284059733685193783228986603920553739983818843522759964776740717152411424345227425882222961818302608983484025514117155723396243576715724125683328725919144541845531635165894441852719662749897558540196945540898803952031196615373461521261591083327177691376609063811586755350581512452668743577132872500398750893883434192370575961772116340725090947736787056006482226621211162147065494118372388566024147018913706341895402260956450253363259118830809554929438425475024851373346170228423713559562946553230944755629757210353618227377395674634317159639626973323122556675975319690393463966039768196450807966887977463527566487421754775165843831505262601572948750845039930833664843173406139754298965585905512826164522179225563748414648426499187853769428269107612013391521523892291844978896952379737585222420583360650780900241374834181712178192703255424091850947803048206348831198953248840046730236180613240333245324804500627868590158050298267970941218566565760305635664014589606722372998618372463236705745621511060072675651832825621889335661019750960332620311138389747133938466783309803619715058910347640084075307764825122471349825818905094063610841564063750439832086683850224084213307937025500600763749101697295395538353960351228144826212973078345599643843983806111164500729511394401299879344613946503578756008815134369696327547621635533929718597784635998739482155217764004494394106607912637324187009538576860657926879616353359988677075958277469387112824505351744350154328353612979626705078477432393323872458178303607884986430919198107002464801894503272793994798279475389535482903135164388347729337510845042657213667385859935359339175052793046870229275174132923274250957895412710319294556105352257412226758044995408615276846095478368687444767745719784188115209688400677399297763250609941149429709352028223823285122282388635658883008699561649583873462241558111924055442014721821074098812469363672595517040251073059592557310191903487903771459826537443306312571971547793718382532348764862631846447209805884342804119288609997218596131956470561063845570332979517814283226203988213866025593051214024168556164673354380396750039311380860993972189923065266539716311497633734082161766125797480800198892222261565895653745564467225316831053360021456997322766274302697202429634260660468068481649858011236598345565135550205834305484906493303805421280824623657998556769671147639393509087152578297470652601959955720792533463513609730030279308388073784076300069445378558637373014485179191544595235012195593964139186245324851623326834703996462575709926399439290774505638108858430381542609140049600826261424986322382188251189670026311366129197978371016445847393590184568543219721376418610800784175390579849558971110977337887882118811390549895165442913465672253361511166159663950437596894372192964469882087868441682849826178408294696329365163763587499334678631215955883896925669132396088996659639400006112185182749160414210184199740875090328048863746345623305401395663008148432600665850311583248023708643706460476487207115005571947975423131453906552574244355726991979149958019593025291552783677568024170717827057210987599193474694567342921622932639090229490794633905058636246250001345910296735602480024653518099452352081252232615004011244477764230200308668790624093363051890115064886296522662317562001056425387627866965381693810893228537585044178595084329611460157534697997228969783693651454449844751934058151252128749625250698934278502249565792847093307527051209047084073411207426014255549812388722770759005561580377594028525428616831023373860580811226276026640598944780812031792033196855358388345714149040034552700305382641747815045694776099152999155783323103567260023076274884559710981812851115221075235098012055208729342134708731781567676600525204155689274250145371334783613270976961551345158593418951930000857119256581762915331620260300981855853151348660047233238121692078916196991390527840359984382177135315595704838813500457389176514928027348815393990271672117032691081241173161601348928463314251263337262668748026327568298188664065965076548510911585419582058907724946710629484474546751812504557707943042766236790824894393057777483217431476122122658978415429951399674531182400229667252677267103266847347896668296538171197743826697365431237842897022645892610396103671467691447932102379298898139261868000814369348534617762080626217658713659072144851809247499082742347383044797770881951409423883402712696274157760067416566357833438301903230303019396580753389912536808874023293490681906568681705774394382069339481367737287102829539574946923291857787615372675924202975034105313908132377260434872026201220450773148898444500548144390654294990129464447386396973997495155261144627390171140664290827830293112909761434589309672455541017651916764790454949699114934752779103370326581511304881952402236384256359457581405834689830597426597819746954203917230203890642565165489735731056097021808057430013005346200189333185848717878346373720012281970269168135354556080060742893464019627122799107746786988796634575728946272749448504706431091101585402213622087905019567764601217639990115171207012975712210737217773205825981769208897255189324284307736972213032607763857099856540598345313444016962449879704846795802424679153883254886860038216402755213018311536924431065539864284352851761003912833633537461819916167112082393056796236669918984412665162329057307907678289144767398386909098922119609749915887080221732363565971951710784368605438222510726522661178902362312235025360717079786173289149627975523426012381673304442074961208915744579700238907736260727623372051211993989924759462531664961999393824719789996527339371829876818058206801382512978113025557011919837797215580120256077401891160489889237604478793961322016214201878338580388518039495269596717759907960239345355255208226188425685186775329308670568701786670119373604360173264941561111117162355244969327796871605433460493452350476757167442345343340348065602311211592236159348255705073311563256816523765192721510442338909456418230268872523461701088958540625340134618952088988164991341870796166377987023528027282090525112234630372023772127050784841716536837936504768995437166041254300466678952103214848061310703324334486455674275496219257760624367818108801384625664596690266118300581687326877100409823467166127232354155455490389064465989077621989867256509965556323792039606948227550827276123781306186498928842668890442092471689617774927946628024961644583942864117444340176057824194350882373780297432775405506217469985927490076490663846027082858419217645055666537615221889586609286941271499319407541669469419641863274619860556084124835786927718110091445771986496667850884278378206850455563909093284904380019422997218037607820367139741761670904141562639419418714892552507080260702333854562653236117560729558700731043201051597786764743422156987091361793456413425185019355686018481624909988288118962175659275334791063341837018780870842118602590403040842622816983573531056600033965932319169662084363166276220014826572557958255544996949142973221104061876605055542229259083340580636352027502599445662643341875360029836920949059164219760374241660270804965356516697828243265559687957592819463106796644625478775729046305462269995178510712367841218772428971498929745357980968441174918880250806004189322992275999741486292797523036592548955288877603013956904755007377089426731519486698351695465369426938488389911833014552424412398739246857036650103038589054632503439606985804576706380456668942594799350633985190146686265505935708724445376306108949979239053616479351604045138766284580658438835053596276841438112450916381467368786406622816709683829875479259832434816150292521155636475021587518080930465320927323700514765294007794443075449833902481015119551125503274151818648661426485313707396684139386043108288321942806729793370075647631134355658210379618683205635483016372020900315228510555710929810450986630037993231468121735297903707075865179287740810976670361463478709193357338287077543574369521124918652506374672011354872142879357997476044105007373714147985647059557456444324190109723944100049095211953070572352210938434169482834936930177757434328595345188165543283882083450330305594745118670005859813478381881265905555176802838874083506201846118048963458969696729062354366520873126001207187009510422548445096442890584376906877405605571834458134210840482991993088571728763130785158829421183327091891584396971673251194436164474829115824538403893810401805491248744812468234767376196881286747273260020439628787026141818489637277883947366546284529659602838008731807224496660885466652261242337752658510736058311940798015976254475206274976654939505057313636936390689349598944067541770863079849255436767193148934890498884858666874840872426801238676470582999917864323408458049757255051091095717144362584708762707113265512932357259748894546882017117798530119741049339803621035117498968419594660343010785905978481893779460699678240745793322037133527984573099748050509884169408518683586746657461025222031169717921532131198271850237588733888742192787057809443514348440582812010691169870968142321686156670332863026722186795550269235332525043500134128468389840979787394306546499160692857988887326923953098171029256152493248455696855106603265706489533054327618375287449565222308141722409519520749162099555103916064976349962262671457119430571137581544654469432385765878065718128434563740766226515566310221653746579757117795950525758516247077118734979181610828028485759046909001267729037550849627533550792416531950353036406892073340484563162441859872792378750890178618671370084250765497925306672927979237946199586454796569683873991412526798520328640195156596639176989339934230897635643203777225825575261004915362022158877424231498330122447032201132657997833318333456632931827003516347941334150117425399728120541255032298288111832686201159721231504257274954644369804588554852096269655454571949192386837425373424924228598493478872789157972443392564930085767034095399340023461670414862763777311934087482204071748998244422785935641775369031660862681491918340921046449603282338487726950652545452030202372896136309277006241470764774011136819561578133278814707453312376079960566735523909640227143797474668568752810020162594730050474101910568357606131910276782943923566131301746554116893969827240860081261791443539335848989751311131749984122737174801754091459272691733822717645140776774039058537431766120977027756276380436215058560734983277250300565631129085834325483709666485676448852647560468405536147410979740607983294936122082886724197769962217610683745198963201375589300636281985362809777437736243859047628830464428001889343847388241566988266102214131800358790791940337360468693124990389401545915226432363307614016873258369607144848686582485620280109842708088968273266285692632506626122609984881687272266085030923938965775609815298791795191717114481583401137999305560206788746473123981496372654620259449030066378375223675678725884275063999414336383459185824920982535904838867407264163436338214914793102782298044082268033763972243935069332194272519797704193100651649757484932718850246462486822495802061381822624502602230576865214608283082120302283896057894895748478854982786709519365633158284149657435412630680355731776999680401911863211604092592683959219437839623663618885316387744556316350404690353787013283989497656158260751749437294201056304312993426331729556716617688531476348313997654215323308081683902490864198578161989462364849407528542270541505598223989320035100720657535275720989170780818503809073435013050670564505815140140648511871986786741390810808729605804889902220655650744715132357749800591785369938866404564074374411890124638749733858954882711145705565642226214900283404111401597903871721148840467246216340959054322313279434244125549802774645270839827184808987403606004427986126301352963686247312102313177776074030729626134115762779961856177603330235205386791755696339702263702862823262661198469121448036801362402427222927961231399494135481120228523505143993940022249112754608100283557795344017715268894173958833226326265842857852476229545495303658616548563145057373062814960569775020702560682837636228934730675921891738302876646446637259781938578181575376371310616064090251110512890170721225571001711443282899307536021310550132732726204185373988393265737910930207013336321946551743085775258185055336083544929435965771066994688238347551044498876527240590386846120977338834285540337999664635805294110253266767006764542370280090108445552963829563775759647602024107255708512170411431111303476221807009973698111870038703174352772418870660429132155948567627404258828722959776072501209008348434766510426396487013724064862675365721892555316036035301477079659663664474565649724483707381032456908021977014609448864540383150093346375434568307065516320822125570070846133384686272633022023849705275720469431457677966167972332281429387015169959510595696497578174135537624530730723634281573902134543627703785281670742148522236948525812469645013969991364699469436108980757976420827248983165498822123645276210565991905593912089508175404610739671556003723550865981400749672474954099424274527808770783150459265493161528445685214630235850960378101875862001480904879515148939245650365153787689341141089897672786960074468419609108991839771430948407179669163438884056198373869025571237494510114318365123807702066365708563775326526936651820582807945164166563889575123016347872969377699609690227944443839987013922348690484677886106257704050429080705488794757888519589106716298368278136383767394504977484356470868434309935344918196803736192391190834508430522277935960086064289219738666218792733603242461111430468011807480511215737226182356900439683743268022621249598490860233221571501745116156448596334914831004907763821509342405719304225073901003624624982178606262993015609765352796729117759822426249399278226779618574765442537681822401171163377445793601719703236257370887173386018472596493655992241169022230581640364705170390433404708872204332110473178652066538229570200843878554033966398628813130406137467178788229279286139411885682403417552078889212409500514144131448290091922689040232482364017850064830129444765854831383932556494946714133053688170015205357335064488591621370852233573971819688965570926499082091819396538992095882401407163679565832561432165942389051587381574527713666327758161048333220512263423668826411073709888148128783953553372208508245137962979410547084579545490491444768128605261583136268269759544666885090009738321702486027366749229344591704552025188778665691693656149056586321372311075026755909862692386900717392698076785682330857747114320315321044967636708701284907096820585807094089946091688399396329908895924645724622017233673691064007261468118933758672009108665040076073811140423695765395686964942542056663659701066604988059497546054711455714315978968894130419201162176779111213552690916303921335501818557423729262905632723979906653600682090616188520067670818164138990405305191055761176742305074618293337950744639111213546649163088623167327078716229440671394873375831288594653672984353738692424087282052764336352879761597926526941841642710817959299342364410474515275412702968219904010928853334015034381592013678258949160124130715285824658503044213001484483517627697960741849042500022486946259320130685171703990579442503588925155586158047414213681707852426274905411281224715123481056956453503923501295562680458535245431177232146771774123990316500730870998167814363083740796803100487364208291329148879608579988829921471135175022902135658371869380094140033163862131948582346493797291476616802200378673509615853565989783823379906645547542697539408751815429383477253121130322614284306074137252081008996028823730232955092599797850832319862180632562821497377744446752385026199190087563960190756855407038122625248417115502179743120016210974122764539347555362095565585748799133966099510265142279210260162698783140217511274515003023034604842950011504251714393486740131470729723691128161500760290945190447540304176803153350396422992176479151729589212946048472771204045439279242462880353315479063588091185326476576795234639068480110495417623692533622726283768386770325372771767917601176023876264288950733293319120541689232130904000132713678566041803342738195506505517166784452967562116688240105770244761499408151417355747393889271009286729307433839524234534717728387047469183594997909683582145666526563642573933943846176343478097690844149812636989287157894439627314143533297466937408702457933684030765004582940958907903668019077184747298587160078168687978798404319023720587621951583508733944309524662111532805406747397204358218819079945521450404348818571147594671567880484381623491699728246163606916448460154540091484829839760410958874114065326286035193190781958153513455149802626251803647789957042876481004865046779129447154757918608886429016251532282383393376539859218762463468067888143629844935733851899286881034833936625407762370040129222059332511863109780341853984512995247579688002826945227027333821273248381858247243125901971442278070638633168655514534624620223062716704073511717736809531346172218733666124508266316019973279245268524850468076813318769346113352733177502539669089864578383378615315865503022354318299961586583819761745971995232395812163063092992146507275731917442638514166876387127889031240224750560045403182301382186687705489164523593951656606860095140891594031129896132624358334608182160558067637543595879190814645337415889776359262109666533511105160485477016112108538253728450278658300634546064807342235306947900108389602148420274409500995471156907288869181920059608650120214569461826606588734773539107864978886430913292936070560157110381828817816481020781720950349908350908799319617235477146413555433892050737317703261344433739600094761384548108479292494695362042297368289640258506496141706278074169197065077957850662801148830675356660559015913899091168508622409315053857966882904474676817128807161178225423496772885283351855845431913159798861798311500295404697934877984977702227145653882062742934005045501703365060250574930362276815222449476871233558550259546966438370083046214853872335782259990400803275414127868767450602394885995095793462546938444489770361586712943900220614156747639963071895018711106298937046320517895312476315802794391899821451631727406254809180880211046893242636600289190296787775208933915176093499958172518073633385681405317541941600033969860505957233928602982295975161722711785918937058088557269301959560523261351816193827486742295856799225683115156441593472113287167397068379111402408058068348793931795883036913954142674618445340736619061192676076967534826050211809002980124009087721382537380400140946320511082199347507672889888039540149871692004254602480982379425251582555485991997049257414941991347751764094523126658478407805907215451650935200911081342080233766552374768272045041271974397599339456736160689001194372563365935955754026524252033834540521802524382515340739132881751577974118782399282837389315960064044333619641220073151609807157843169895036970229264076880801293704078042038050686361787604584088322209188361939739501101130972347413111915339127951390749580292105586911929120032436506987739444506086564424042106456695650670431566140120452688988716873782889108756922772701952795910653176876012527029461061174607381323983176240585893049992803734954421860830200955191630054223137928925087478925325328491053777417506131533138914485838742856303303907409523179845864931238862568085071836664410653610305803707904691514454875675033766837561785651738027721036784485353017797877571964132178164081342812233980343885867572331615375334186540355213431168025500267787359709919107311736735465141962310600132854006148446101589332095579251411299446097647478738501204352783137054525587764223060972708767091158655775354870874958399259617938165837360448322892644156451420185839354403461172576471454426690610191019902300074060093690608969401471199241455848268289122511216829365149250848259164258490874446201139019939919356942461995174710700797223582830230627941742157131959670465513782071862020403813177288279742663803973922111355508687756420797867317422754874247077534808757883338332148174793161576369320978493084221204564737154315978236411244692912484757388503322741412250822834564157168999810766977135581922129937948945046574973264675227549807174665588633635471992736959877152181062062150471303852556721656600906919724086227765650538461382189099459270651993315488694205361144470745711796204729523372210945637633483837073430719867962778310446049057947276542784802570291401420014613500680868743319731992176331861163680073287149869725170740452313453112356220234889417256259634398300491672669540126901561421258207879803071009752398654130011774216594517769346696930913968040859898007539398368838103328957710466641060284615691090452243194652549046238676360871223173695186774699799911634451022062821684197372941565038472122453464479876706102863758550100013939324001803313214339639839882238032541206899312721797161641808500164502238591969834269498410601320885814793174744601517174439209002269448475854017604150467221698514246040080477892371183114014110390431467667922377680690682309947629597326662741813060946119849442764742920749512113379145875396216277280568216826139444956976203043878445707172687897813753825381177503665143050794043086143075310249351384590867234344997819546906655589945473960905144517868631942434653569473277844563999857160274800153163200888686764593115322289849536992302216373679026888232570851740157104225861489435762797443240699632022181410468426916603575234457451607365117982685690945917917003617627704086636198082907587182642343768821736411224670427597294299458519375702611022441047645450475725691444887694445627060130630491616346335221497887366897346906383053072821198371017704646612460287293126578309567300260649202214798779874651035569055251506675113203068682979245213627438151639653175492083048217353022878183480171180728076527849142680055850820839350373945330984441119279302647821097325594766008931005476724045835731045578602139644603652360984705721099482295906097005437807878224179587059464619679329158090011349325601305551993393747887502004020648533111705609826056964695937739395127531850383644574990595123605871474650834216994971045377139420649360576595814674567254163639393839262013506652458477561703784603994589161547782397444329203327020041739372526115078009394756768280965019047745661015294768663202164786145012345402022767058454104926779315954293734585425237677666839164369489214215579837774001675910733596733343070352358544062770541160350988041696502062882393411057978856895359081867929608429608867933881602012869785362048290093057347679050764807446887827516076340292066767409086565135467081135069643022147731961061796089659894507262259855997863681075326510171345777022707139485452453610412124292154533644906840057134525643167042619086470331141566389687583798513477189499435178625239620526157906301763020722401277117008756171544376135793273202492715910184667578428182703623471171865347067635515305073245974184451273155111929746299888293506280098020674910067109585752280245822553454961692247671163763722926080546458391644693688094196281301620088225110892747379212843130107376846991842835760348235510641569063115455012285050119595588835399071233393355415399704938424629799093696208931821987672261266103003997792552520669416858587004939470890845855341365985043406392691119958425748353141752026205649739461880553869651857880696548097233880590760759520395816623110093392425030242850882090443888648403673379457943344587783021087494959568935941863150751987741822884517857150810169457788139825331094347234130124540733780297012277541151300435316454568078166723856410654590876184361446992130323594092411520573538379936733018599908351859385680812824960922400717446753810217089090281401962445251773542547235697177693450639093270052800422572899191860998202315624426519303480198809797052049661094824302882175438665599355417026327812388760846591832277008112409580856432076648496369132574602693806238863409489889217288267571337056650506283140539413201748642531763526511418743225625210452648326275420991595544830054541687318263441821168615303142155735598363972775136680561567949966508895585834642622257015218212991014302686930093937826370244180933729268688651971653361228445077493155772229753101218056924792171560810390215872502601386830774788044056872755430969476204995715842869545014090975466928346298394410304415558090825453558403114010283159115779740393713207310211845506497289208412662611818455339985307196100716331367048944552332422617326113325281324965402031294596714707212555366619558844468030278501164325854032358429360908740100457042574022167680099943618716568691094100596060142163312092549766484012625562066812315492597470769902079098217659475951436278860890220141008210363716485296874519824630953838088172968999035316791092131715001741881326102474119168561285748661319782353562305055368960424377808231931801611000738463755612074646389671977757595048935750850269002778181066297585941221739581787943704739997950627454574602700843760995047051441790324568085135210534691095191045627072213418068248749084232128216653355396149745443272959361415398061435036275956293706901607187725023369536572825412783897537683532554330373654918577218246933336563774371077219463827913363307740624865455967095746758950357725233538510286671674940295257794460629661483430035857348289453897743912892454940727088843973991065243284583382305534053159221463190239393181960082077835325971064927872890107315797747591236497325258322958171830473839266802054017965145462496020366313356973408202239363560680588706493556012192114814790044719789002763059848777921948602157340061968994181717461899737141355718196745064205267200359548198072976487119168855305052721890749329095698342434726262255507386483707843113030553803046228852965455474783271898103424674265498308071435340407705741104188069558729521292321168997879854488741646817163103919292390233045843447392782531023593436445642949414493347861686146465181652405673298922299978007456869979226644973499839863790009441055831329977919025134876535146719490205202734356982678298708711545262024011168692537786998099369013862291402147623882081018422421929791392729828340308333233509403202827568343414022841254914822206871864512723420290348083234327269986346413604126239607266134924779774296732261651843471432532388430706781049234816240990193144962690289817208161511315721521188974917944365050317299700867764139488347441430388628351704688605853297512487459550615769473806485388738592224859790374927902218229134033465330701324523824100269396144086098247466061121954267361478585905256002041405432890354929404702027970314172291972857175989307930789860984495770891896789613277112810877378606924140537166507517210669797544543667692361881468641356751463857155097008682457503709497679906480543483411106924827846067094171113362025036949570510798465408006305683853642974085652228964724357796920251589621895807381121541450916861694459482946988780158320968437743876238111155500740250886575651606955578236508441104561830743822811867183282687686577277805979398986489414147027465484068476667906008750513948989644329407550941475884522747245850840061509478660706058489899483075976206570984176112704864768366194834104338980224942060591422920267955857012455483155305396162607944898537150818145756267982509001094813300408822567349554298640607045346971709033529419345349442182967244550545285506972795272192232465102254540417656316536120514165856715187413803768320858362897900149206452009883953476051755327890723839869142994827559825174460370170208454614201980109575007452957873446476923512184111781446424247696542111722465300367966680264629466873265936322790794221046951319510974146844572019307712967707737677851232572781157527269672663632802187119044245124913587638468535483752231569417737755452996860373860400501121960613379596462950969914111170731601523753847816941169549007262740621837865778584448915745558048999396926164598399857022909818256115918155588561947223207167368106474865336103347216077766922294741490453899459406953057078599130222164633286717909283648913155181976128547000285007402496584333852832775955455597267621570808774445732577262869833588811390675033992996317219719621767740504453100607789844500530944649866790945731625798892839401091763334017169079087857088253113925086731208684026615612186146862977297072875837775414502001674667719595512810629453889169277697478008019114997439041693120816141451547846582443632877964836868667645557437696895790194600940633223854850254943273299245627134765167937643591307261391965787580811971985109870885949833796835958019934749838690138621939395075862485623027907437340460934735684531212463115335562697548411394976979397169060055777396044538009105589006537019882898869224041636842605727341179302351974931750865639543867062011794179577922798868683403316505934719279950310314189045145759514903432582365747859966188263602841036881685663710956760748121542476806475069717544546227758619896748044263164357175851792511328875193945543276269252535665668811267140317942487368296551125801202358248949952290624795151874323675895520067703606279850505292844226445730759226284368897598959835508142467135666300423255285191705422745124489069218598436221928187971287231674103083837588754701222955478181856147554038159443278910848579214773489459487861012658995037462840166945842844530712996047381411413245890596310913988955816126676476310388164980333428596786998628741561406288089520576242922055798190070019183977197691405777671527194930767970140518851535251376364408433592535397290923925814054883657037755615478568030342531216787816244505580737202312330294508074800928152020730516986982116014100073470810488775361244858797803467934456953219390830385863240276997674946682194565151228789816846518814809330028538082755877129218550387024914426486926666438132080191033986659714489776836842710007143419264433635135655972491528921156377031217252350945771838532140026294789987980385919912737604021176307466612430462357561158594430285328925099859958044957977638380107401200838438540726333933692930837299572703317314718391403548555447879670558667375951193591228739651143609873805211380674757424151799191131651772470208516224411753496761089843079223679203547501418610081356291785716604232784524701751647662653766399665608742760552505723500088518040061318669630925958292967122994017559335996198045907504742485078282166555194013757062813776729526025989361331204431990379119630815791402375497984328529566586700782868503997192427344710509204353720140104069062002499153879847901891409930094937158785642392511156834723562527729460450364103671857068682493744163197703566257480507233236373878444473241868973719182474076529021105798627977305517784423548427731348415681043617069331972619015410124825223499953247908614067243920778672180296532923748734728063458425173539818448022050698294809839594164390211390185287657370628261992761875653939680319732776136639276842940631217874112381412656070701804877253130164581355355495851797097123890680366764471553744019243550732347615151196506276478039547553273450513013652943796899113774194998232347083987260973614451263439180632528473025556998452902747242535565175168651174869166855528992201555377742979149256588274904295900594351496759157133530349582979544884632995050757039353290317033189152548652611811141863116887136530045672460293995289507547986003490370316686779524894344539202392957758278750234566335680113709555021334702392321640223393935389882568851587408424812648311925733480088300809991677802445204939848437459933438724503446643776749697555309733114535115395904604465338186366397402376981920675488159649182833661390211126990717878962431732160011078346338151213174708936430644726730663738892223269594936378057101222689266469254400142255875345050171804212972739907559228468389051565282205749882118898623706930227949970961021163992506147074799963328533592850204177296671359864547782341981405721492760416160382596876174831110586718700700411674417785872359730585511970669367820326035338272833774320159983699215779366754018519996169652224577481743098459974258631082256094267706712043460766544242527847637491004821722078797696962037850315647299438465370524136823699019061228978628626630852845516170433703382796736815689872493232299310565433461000817608716244720378784201707959912659987136667793371102957936660130336173446875547550434195978020025055171010678886952525328230853693341877530967119903363936459393852127722293592017304342989599945285606909815714745009802135833793704566725723069812183714661007971925601194729547378581500465668145264357352349147292829638314685435350060380364637680853592890249766763979742811555657573101751903072033394292378099159809536974758521451519959870647630726329996376609509959004781150145740612965824959162665678887859491907610647263248311453202088074138405508094649000985993196190328191208307195564323479559836152700278067419142310505107506390995574398375624235885256669579076448219212497749680136928184070205126910037920714904656828401878596314339788002425781219265188656205280412294592141754587810383361914504131814130411594032556670743240871343437340622118999133727965139090847150150560997103896753390522178550010037028361885341531866506567409952030699029879908423498698708888780149153946939618995614583420024977192404649127342322820886481081884545886504249667035946098517562471121838105022950053580367326689820488328157619687700767047858107069826608440104872636748662891588815780144553335218242350655432397975339859973119835904189087009920613606011084994002390650247896596898550084008890323130878636146437035163253117194002815387875399380706317867672621138266716899188469915844924887170728131218759263061292103907176430709167981098259157875848723464945293474711812368685229085315992202665699488865451881027133296238921418125190377755708932802610813832860826239035660668374635724898267433121956775002073844936524279371521058460132922536503627876792364983184969365337798313684047241377576393211183964997745165923259892840148032611624771392019405011774783432047390537616309922787877635590054469658339919855456150769227209891688951773862286116618709823188832787709513385201593093410939281406548137387144366191819608988350807490459937467607754150630065030402706796829317705123486553648690374218770789220116276156119580465445572662728900673127634378421685387144905543775390416446682773735718283463244685857039659422940502424560253559674496987119354313709450815371808603236527461185878992767647856061419047591466374529323278190960132170274387280706382681200862656008917908877586966374399288294850072664804177761557400520589588151390603968823570201078627792018138167632097700779158838451480216731428136559332537719410179525372451434566432376458472403008812354676981683599675033386636088227765096277597004903668668288814179757821941718955546132075599913185524262857577458664112592666594872884730346416410028643011532989611315812099599517442198775528600429769687588866684873357344509479705091530785444577349821534809456059488358239898044336472076967893237349895871748234568514946798934614713289077701668246200767828323261063604928198065735342371584068970779230380780878765668796219261160799780577983199995821912677863582731465409636630391998330100033633952942229323324161977687728762485962394847695256154016360236142843731350325490148309254308049427170738890033187294705422280455403663505543421950602426209753016127974090383559453918936586512823927640805235703731885689565755368746871907532754946068121411018492968082594102392883942652422041373424820284736264773595522841461000166678737358160556237757259718748205646094263113124560437906486468236488360987844060434427831715684215606374166267575182514896156705554426870554145157678720084219669427101027194553408378371116300418719549915461060749902552093980113924000419287229435406636654378191933362418378695856389380468267505965616134495432105739733802092854434143455581825737870302741912099700534571255672337363359350080845851732216491570142106939817030319679331447248888101163507129330688716952046848672767298904892666547730547054030203530021955107353127922843546373337816366585343927642765166022567158326189454527730144300867066116411844465004102187832915133157414801000974379689213130818073933029133910700727733614095837122948612440945533314988805087981275546817396953391958100139489934518294384984054135073185830784666456612013414178679825756781345786648894247878217286082543939245844219321261635501241253358513193962889363019596940528548211972139090111061874246723823422645291728014486650724546245325825765223019719805997503203875624249199841078759622257887344426939370519188789038308598115169350819097615373640826726936753985071253987689613325925381499115727807224998346360827532174015952551393997240968991542583691135852814750589409370920068584272104837905691349421392415101768809034110874033593891932369431718201540848401227497102696649896788004023661182672013108971771587338647897366596331263604216984910588876922623604312081455288879556311847014876307105794813544883449287891900792605205088587405000446012234265758976152378147297116001095974574276837487267356186963911976380237165317801955144167753923753593688994414485858609648152387326276885955344570287175202222860042518237178536082383210177058542672498014156646930326022958000730709950923846922312867424871434730346133502360616731869001221017711443053422314318282027964768336509372749084102509556934574760001945431418049954434406671914072355666082850190448503165068298662009119316921367881382014489829742626953541304185604070460590632453480506530169846621512036678657749651714138002789966955852036785060885766621626763007512017950737452978091062158318297088197775500795146835984583973544580071074136619251149853529245654754866790627835727242625847602780131917433514843720627740527084822902068709038506004364944107355907110247811146915849363431778327884429826552547167877588050072722573833902107697878872494375371332021737610100003040173055526553969989459423941945969812147366147077969509397657827000325651050807926274920202604053541525572408326104434053199188804529181763892906461689068383756059496926621429421169366421514206919910503090531953546724194607933534560900549546920305721382033320492138210726229243216415189012287701263362423013466270958774803961215611580291417335710440072817387491436706684329056342092158845997914175607491111640943995865473520619684590900023724328994424934736335369288784585489749510700964494028143078897976802047515610308901496050403621962067539809027913937690729505420634115959685441212508353649855909953656238204144508197730508958631286757561389179359049268211943883542892571046718873956516103314641451468443304222192741606138070339812730880852316193923278275357635640421006824326070479840789956254461638845049213195924766418692239084909752320122279281605011178835274648431571362244590793025231704421198474938049178755048710880384663975878947179867304216357065288136645316583790748152976983332891238332118020727167767426709117218765008397014882187111820121303280023704317148384923087092211002791988254906168375079768426909103693569385726020941764988375115734426924913458621282702008225860686791767155641156380786991556616227726621366502491018196463202444171405237137980517843048931449319103979438259016002279662281487093709738959870749881055096386619857333150334603163217268868514094620168899508612527430548356211974157644142125639134763989400570953606388956544100297966739878952124071413712609808038768934930845661337097814370453250120251621920147058831020605224801995869090202294365953779209993256340930898881905388903817158604103077665610214760433088982200265949636983747060343098957017859963900875230354949291072527358678111848255296584528147334050491295483028512432644811959673068941800087563495488722222207762797490734578153368525696275967795688101162545659586212361261929374608456243769487421668465258619381811173153510208023788477398355020618289232486771115531427253607259777304043944098449652727421193979071716628181065811184476434661674636061695344699471951807384979846394531626334091052018915136512811932234335535790156741666054718395800325409703866777449845497595456682517674614023515711533991791910349591236964548990363070047422890491393512445229167165603602525866169604892278472158137616160674704853421536651853384793075825790931391481213698194512156211157238456734851935714126839508867258763052353178738893966178559430727626142417139510988450443976901664622199577534643389820290427927698157413366556601867390038377410943570388708727500296801252838155424020105838036445969002040058031822940764580199729735171416022872469375613859849652571897658644767010233461646435371281274978702796255344356183877538135521538023492076409320281949230588279656329518001053434268946311230778072916998269071494117255186550794854092788815229451539908922208896137777221668697059765977420339402714717375257035408118374903930011960211284148918056227773349916111902886362726104207856718874123096268671774720415901229918546040395624140501327730893734574076893523827470735701213433436217688079264284490069560574695476112669615835306111194176611295420100495274400775129115409196388611202951740819104348820745874816964608822852620285977565793280704147683659634911674087133765813220379517389406715278496580372727771712039838782462168186900196137898082885999323719525746205746033871412581246592426166740843702681898994129093050919546056535772212381750943243670927831603903923989889647416929518063302091427453067490575626505328301910781284719378261358495431362034956904141457162819215227029291007887438273116254682947828961042199896653201377793179248173838331561113343053629370024757131616609367788458556484623307742739804356791607320405611173133772509599977776096357061933600255532597136109166366806738331480554441718843418037321881883503730515996641896305842465285102354039827695334530051114928740196371936066152087909874218336345241582144894786165991629008314044056532676428746598627285574114865631856813989989285288375514443861384866079788764627444937139519771293748067965742304545915333958143874524353017955770058337988734510849241005880396887890141674388301166258069526756937144526145125659625042990988581862394326163742832158633280238184701609787233032952471042849475727267887040432657100417692769862665869131523080265460882116986699974404628400549486098967280248394741720568914298685288015693928968995314083971695700431345942121069192624559678929670221276863555404706530045714663854637181822160543582738251626131231463362110840988114295338142944889906925952565339132620998122765030975778210065198573061698690572583727593287954701332302664791222527646843448935600310172954987455922521373150576021560429049511879339005658926089280226957190391148840173838695144999565758550158560471131463342788777757982672858838403209325362619048638678052868064125965880547664890704187125172223421279755809123471649946378797709009174817696374989756858744676373613476263665233711073474368586674561621068278860923028428613119141753095648244161458427349039428197921456454274439371352631538271842630446424111100844652807126032347529255322981518590205721741672978997883833139814278973782011969067347077070569902965386008516238934889902733718473417365546864996687826277557978816582717339168235633680432606742172323416303966859169843207190259791580423540252338358583074604364210887488697703197410708861725708512917059465836167694882082575108693856203268407096268694673137285481421299580456215323204287257744534462019777572337466356154595478375107231022927543400725522977869756109477405221585932044029739781537238525962308332021252650372962415185497876313279755157834931181489495985965872425602203554153805471607854567824582734648703031454608688260582349752287032981726409029317094213400151681313222287609120334897902647986397351676890804346692995178683185585822585423842118543393320068356559397429785668225714660080767444701752844747844760973420260926892984397302145791472695749754876575971260155194261314846386844099223166155940802185688289661325617244513993780514033989628748725246417225035223602921340225011483748243361232389698184866943315244998425166547038029800704254287207942223906387578500551195061362424528136611810781470384812942487642323841069710061096343809659558131634352127340952906217388637502226846566960880892548144970938066418226985931353476189958611801155921433128849377950640328467586839038816970297379226120576350398436889886148483954296285416684665147038728894169394621101162126003995295682317951631559558732752455950474057997074183367119065382429590418215920414877603049054685716837724420050053353929723005852059346117125139159764965892055223390048737086033369543606760804239395344429469447403150263497668787493545142081905920502537075571503306716649964596696721534376636672191615323210522821567162362157654585633396498200758559400737514141272343651633005587614768665014283644501742198689623975797446563916453279788695134297517593840267383684662736232038236108258866698440855693079637480913623132536861896155513636100184445766443920665133777205478184633607527583523475214792864541673680515593948674928035699528984070543604781450781903880360942666119676265398298134525664242958774342685666987063118001311656962515779246032876282793021947934484978881244491788209219298184724687295269379387915583695328421316362129698686964485256437202216952424714348480491370487746200202053914680465831512978288215291272330632618236386378291626743838164873580551502607079659383102868483956461967898077218448188709838167667387673435414409777359217964869236879265117133764790668570022206796937944690062749596875006857127987129460523423682034339120507266831994778726638881978684159130649742726155683496050632280342300720462778474906032387057841742404290848319252161155584022096198395368574879388704618844436710546615735759637334634546480493242462440658098641340300691570842538752105951507758048731998267150482137118109091243087832184840242610545006840780053720506832296809052230673382739722005604006145236826688432383567501889363965902803979924447561427573918721317883158308666381000483484930512939760165618815418769972768319082149725127088383497893970924901712598654931802495711637297662894423207033338985765602728021559109972833939983924703124755971554893308925068679077507564814115442278201740501801601963237036975625981500570053736556089234883415950313813730442497861491520265354895974846480760296108136004880621647144537466854274894893655281490718883896001318794570268314851889861262799720107554621993777352278457182831274745931282894517344182133914289877136759676621967559630759406111925970252053438121333282194645402733760005425772554699993586837554097847910863715786427545279812845448451585619362805312462129411022367349386610382334012874149911250012578914830051868341149650394785845820333591771823661323004781800741052995596321410245852098948180156927359097397032070963306453811923505505735935140272070495413941483374772261457663987347306855209870072878301913677900427535643312517546205523614663512771418546738206463366953706779114434121919649025793241125150202328423008104951606588524192298623738982333203371831338637023453137847323652644718360196815179967229724409476074614883770552531537417031337922811657891234455521568619187332117412427487396511220289731219094410790490023623293349043925335947513839166654173309515840895318802001648686791146558399968722385078251384224675676457021375999284945014697276823740245133969575811160674642199167727026883671398247173211437797695738715116187808639481181333808546542173945939991242646634656406932024498910561386017719334247413206763417569311952013157565306253822407243008017881571011625785395569284643946609889241167738275517619839319832317024336742872021503518873644083624386881144474489882912831175026359576043247440420906510862312961194640375652551135457400530981562339957601920129915746068598710519349465772888736163976362893048447776383709931626404281008678983241172703915153296972831275091520569674698449033988140496844534733252972206470984095483315635714519057283934046122559472123573176368784615422024306115515135171996633520117370901800946206931845430262975257621290479804769188993602819270952992886355473230361662298884961979024874851564823380828437869810766102622027491073670424102790772255314681153683634858436149345613465598168739269754020021753239267506310367238801688419069637672535268461038793478259996997511296006347739276084900240400581714312966484768187994424496698796480039540423484220449393966915981369130370118395441204163185747070688837692318880528807329258739931019638369263903394606412262941393101753403884743596597574494335475117111957634679515508481883540215032584729753291152007053558036566363733176602016124961116921113200157698829176602164205342538908655355384103828977299747217958473570420600231261599437023316815572536155424373443412830661050106677041390755988317884850001113894983488900128881631641430597262199369922706912159759511228322846084239191844843004735260758019379582739588131368236409527572362367903012007784187196594732706066761604982150991835479959945928053546319531777476858354638615717468618777297599309192801303433084327776947804083891008261227083280081396943287836613225783998620892604394900097637998802752785495105457514429678877946434620856066064445880719783118538812515716670078675535500418014547985982070344437434516849730397337060061040131360255701472640929123651442653702260646268166234125573724956108682863128585215054257431444147127158976043629352937933132728522393578618467282105695801874027394595225449679692953657455818325838659380061738657737452523111392969944672263136325693329843880523271596944741471384461751779645847824017285363232928205592460835648466497823701262360078644061608600401973827357225367632973248212812532643289515071019058409241776450928409242274025918175261752758400627081759509156475537483697699713852426561429975356214827451872839239191003372806209029522279309533607718463104199198825334656235818583596297009472951504423746737462153856135188342765928067267228766539720268327018769944844884473725038876209837920689847485879413672728402663891954999220198647427470661594888774218962971288637322450236235473312740581340175821810190118048703664977805086395806554008888760306894037510196239299984116516550027385020419064317104008573294486065813143573055260691117507342310120638535004773854321861550666189489091148345628858528088665155246621473133475774893797421419624742614132039676489917571100057102495827609706885633417307359352449668427935462372231192386640861083828714996172187332044994886527037000444123598103813148839740612332995974936584282898326173127002662944800714307356955747698366197842132225079927826386151877481095952291251015957898619453917326015623838944181560919631336309686043489958629633216880854640248291713366702844004742014193519248412748798529238524155969506802868770734031736251716130417427916742052418894192993152924525097165621576510824296639082639666983462095429382830380707932388056857225825465679249329718175816152953793287272365492915721260708148421868465215600225602120317645682570074953853040793380636959328304091675332107751233981129952520460734223933359069884156326429855895673452721459492737500574909510421775446634884584348779418387410914310725284375753205363270160202218676116447878695583216665963689553572947233219114784911457233086082085151757400664426072021065682376286270034729519820334010823363006765945945732752409439803666150264721664393964077755284571977765006936252199089969863684566835760563116262193043621900494584806309421262760376260793706813040945980933132286529055296959311735322307620483278103193268246863271595751203423589465888297845771312415771358451017191802652772571735426029693811881146831687344233237848849195607150883925049633722814044971307347867896026535524666049652260626792704409076206538669259645548737446350992073860326830931049214081288181686282932285146354284969038059066793238280248233837197624901693180342548898263557906846928373534021154188643358389846928093712349127141552821088062268633314337826575049848281849598468401528398358903358283811809140239171974703426529205494902382649942453878762939938455263208736114867043450744274015249265208463233217604076239240235897495750798698068288341958884749349095823525133222584176512081619403025995459442860445984708439318977473595487699564916459143461609655863760328730632081423697929898289762332883026728930259278671965304219742533968437366694530225081041595526307555719862337469011062473257206027823525558514433590527878232985184512123014697616572487536604660032123683744959912579599152912713046956073022390637485097394231632482887355329174376131423548860438434279191842128181055372375509698927207862898251755483498873343740168427563040608218209840438128370816847185635208188427238366323521794301889905929262430658275102622140839427047564192674252552493627814744487678561727203999688833797162268418721090253789379299807779488807980501161217449509057028850685018380118660087186854786911717815340174911664120711078109813756313723587161730397569093421772535820467911007135837916806826737423172300839702075904551293501657629882317914033419285939412924111012798186455839439188754987204580941025699442245998188094296519695229772622947647485598903172977816599973529229969292864780386075071736200407466841993321094803376503754563362471831092895807996904093903817392612316849798131107131413880171198285971867575811148778931847134359768642837382181464963659171298548277035302225945500323012444481214471641234263891460229000407221959859538308739507990034400642436641620455144063231770812825634632569315165977876796993267326650610700716166576161601084831856020190652064971252453325175053484345911703244280292168823492444432241166251104354919173623583026111521644806182882182930313599597978433412624661230457930170956994407482699603693004276326135561394631795475506688778187457411719704366445742364655830659498941907441036535424931429702023886833850333207544206592318825935572919968081012371981793814985211059930522661414791758281617927959041208918971850783526325745564738150931911145933158911408556617679558364559378719793082681349758618083305772056673295288762330888318333940616528399346381313900433360094878482558881567679548999278190444965608533105745072047920038974127599447418259567986649688234757681530748946872870791514268828687461696059417407675062472899143943824207677352593206134560390770074421295848581596844098381318255978947528243899762314203402361769684708724937138101085136547138436043083611025555276035646453133477239786446413378795295880433095422859273358155112490364551061202254659866558118672212700851389353112398052038830538410613695706003561663405969882969670004942625778600974220275611119453441340576208687112337319407285135273626837593651823059106207842901844439064205111423869437621280610057654847991124060558230567298334515770368219432400537356374281444869844629144138462120913501388298045251538708870332388873751543693848520034614060053417881334838303865244914284031292734748514342842788437996549476667435533112149047771760159690764773601090679703682563082773026964566945496194377998079664372151233600946074967364688130847731169470873930457514397846467274310330386948506860558159179948362810564187553239594926473068829798067342436887947716374408071541995333917779655704558566916266632954929629352543448900510393009384536257327683256275728547400313045623591883775085561692183289922036191352821120016520641135252682291588781110502742923249587408873174697245617419806613432849906285155754694483242013681748644434792627877969455230981703132334857987118457649199585523264662231132825863282852604355678486932785727305166542003724136091828622427750700323406545943126051034224181970980642742899185641152698445114369491617079928163105133168364538303313083972738459059439526951641153786628258407398116995798348115351566974186742237955683531774229136243802038394720026280656911954714677073870162685915988802858882402723132246809288531451576258399787244499349871678687225532602834993218046591108917314970131090223398105359363156347026021632783478230762705355498279446691847195900345185873359144603093501296261301671259762038119615047385423186086379972323855377723868502904980430083889724892343874404641218374224819431420181280593780141029354496043817185950073541374682891109239923429603953675229671174760087670360916029791374661575679554393997533082462764601675855485305145523718540583196728922191288331081769927576397789506063943991754537380428384826940959154214481180262300520691264413605727741804637255141141118716050161873194935566449787817962941137390667672105048409248752817890309808598669571500430784416391931531336552931280282769548516451229862694311328305534254574508698746394644430693287684527985212480942678958310572356913013933230899035263337454077612631635089414430428799591371404933727639082363784185823887798672893808998583111117908591015369400749957790376864175752814005661718352222361344621014743267576273219093300303767979107728156343209487976478213867774288534258310951231020227225615895187988386208294161493171022559212359624569265396463444972840424811570207252862970662319520774597958772222819193315622737939910720340153794378400263681472221766932017561864976080645400545532242356605213798299932068001522418851574516857614173356652276910862007059299383562621691109849479203082312381362758456795270849140084052705764112679424206254442537986193420475200315318910006586073556231933035843658151217481369933342346337523695659149192986005122829514957937513323927219443339106278013928822819529620388382382945792996463832546334815319575782937088040165107124590014036424308032310035191881940164030385578504621446868379395385740431991438259576115065203406019444197590612631998181442603555490716369668738421330402516614334538537036226272894908471665468929224425028375491603393043381922523560337628817840474020729626131992242984170495682160956462944524679820915641890971237730204675486650565881518148830107792894463070002924792990866253037786795022260623119510230774886640903573652664790964308978516624906792515795361857633518423789789192537738719003662130134923584109324414239322416833959097969816127062950594945830125232858152726980822275037705547839617892020254344092257373767820691061765190748883509403531008637057919026073263185595518399069518569513225978858215302854093802733774834024925808954264683993842362213113172969726376419097650876921040592169755772736311869101296297739015756350750469088769186692237190651341853594464350629193523063229343531908267845721030810824955298462890867465437723729792938357950528950610179744366950496699217103204851489836540679342952614924362527731138198421697455025698860563461010303921560849403890835778202757295084959054009067107589659790496103154857968215489933790217130719458750923618695937131515714697191183938120865723488703315008193168077658115938183147638482646179508724394319451738567184485471600554686613917178066404695999351930603435333799657597108607711393581454932285402597058709786964405721357567140379633619147422162116990541583277549152847538016019517985282501916376784469008408021298156772880702766330697180665927840920645351902337609624675588179205424038607043798434367038353433850271611798901910671052035545456728839439974392525054401931460140436691677455606259708423880608839206170339393958639313467557232129039498921267518334652482200270779933173440962519491081056830379404737646168728810453676588043789731909306949583275948863641836840837514726235082884089870148770008377504365817630377024703941447967299375168496292095318122546386441547198709131067829913425432682681770045547327956373514853322902043788856593757235796732169979742821197275160129357141690878207333155556178579926751516038558236742727269931975740509360370318031602086334085410599528259806775792869347906143411101985339713482215505375441754039263337315242366142693217376513682091430128885766883788602978949873515033861516114285094823637196105595586890413967982840981569635098897068706648925328861086069359203809636867526810956256092566509863006193377910037536344897316848941058419651499660733230463216449896620401432152524922624121441729140674590295136658292051752955244344942205684545597497607137795023899714094570327100104358847952903174100366788784445312974371577070952030893649579545869169522397679541082204633799890822594683070515747387757959144156534003837613933857022010161643756158910218551404755296375731785040323845299606388610172239748210068766179626360645172357052555206558250546319100130421167447426485107771926290956148860402149817591079843606792675392683782109159553582330482353315706795705129206774820915412127500847855345141030258331147135502915436696776032064599938763500890064206450495077082311552795269368182120398885015318824463755093678324875568707550865540892166516365675800335105588898893129824145488017195663227042781151824854804832241212492842431426168953774438310164068038985672931312755638723741647461788373258805647324997034545656457530842769509787189085588468455551346873622457147881984542088345775678477806683077612596772867773189546811366224268962013962036049473535666947784166468612209279480099356165149164298767142745262339810549682124048438173320749407858602811004973973034871469231848099499529964031252951927866486942580518039937175936678947196403217298151488008733006490414265678166392917933076262533196338283026256978835490894848758139531666823380624302176031269717100990477271947537139019730512213160553975032194499878204087700723855963174428735417911219260969433914593897221089230244760538885093300288325349952995964220756620675965003411851364401968983946004023380306110725252942228053809842787012509950837580505985607034013158876567426564231817502125351508190346739923217420252351562828215605104516626216046844795760250560571023774821461261704625120170866245510721299085777539065397293562054162963735754779547950678462515129068236958024966818345971427526597986590968384362586872348931025119174397114964615169671713791662689241077484754703924186690065689846890797851643905039139949388419320770682588116703273063903052908838927972811042217967590114124402433408248870586695110836793846726474496395353750999738946428613983375527278265167473162801050868547538783251294176112078647224828525249767069855918767124530954740608009576577224325486766565522656314143031341402188766664543403109909297895118402183272189089871524468825675537798395917240355686706028512194497225155347525188912189880596124902195985574678562520000152335368784541718550451411768924430588566970268986926256535002905368365873155036739410167476282155061716126496011323852876228810617274304443577597437658226665907517444570418485752281690203065605085341548197706483238238544495917173515430558247095813919683306724008246585646983309231476543801696567974979714084151308457271232962388909080400158230334472123150103132458814315077420405691604923929229751506891760503424733473299945829679894622419156104146479539849751781738818824153809374565715178312261838134658890275160888675335117238871686123715697802457250211428064043824753042636439529465662326257879188776622590599942529614353336956952380314070821428889232998637148704676634303550422948466204555090912661297402359231206477036058422160516964448438803388097940728622972285087223754920543404092189009708075032036315130209696575442261980403299218355305808349288300108072773070018829959706732104019162805530881053596831080604569209583241813610946710382096880931677245364537095115599194267743307688494390796257933424177841497735343280230104118297707681945062009548611653098171467333482977359356588807507868983390934303664598332031479785863888724080639166083821827450965939713246560421353971572607296807452747523694665998181923142204957978546862176139077865697417867563543833837657182209812420453053219744178331089277099095926327077721696975642869026618700955324051309663519875083102453019182258198246150071827362453997992160988298568208603518485424045538187460022762252135286811348648868474397093845205331745053193037061433385492917591600266533422693025987276410666468154069653608501644427624850997693986427892768549382853788441561928303929949463684185122361120160700864631447029960364248934054395720258419799744907520552984779430034925777696839835279474341577954403268493395875236031653142945437987020597663868120968910727739883000844299262630385112883256860637433454983442385179880514505599453596864873435405647959917832040086585569132073442931362295612643315382615670918533027316023226340448485282777386725246670278426082541077741936995166442345424801522295245499391869342384900011253143155683707873513758074435407794260294770794635019675758550865390299807312215633976793660695579742735731736908458256960714166244526044582341833790399944118665295711810440813294938361311425876475320760694967241144862992997736510070983144878308869764631422188996047383218905046923794971460834649301264752267479969757434062046581150768762271715302494922998721230247807665328537098122496797815565098006367194127777017961334830225214006385152382472222716257958859724808734357452097061598220023481161536566031965438796904920608892356837489119695005790954871232746209200369400932592958610938458763574296025224591464292527457699911127958818695740430243584549070246437862184541570683223066231534576401189860233329261643222855646535663895351493986894995931210043275274599465920109150678065425593693093953008860932345479757142510621321205856757335762829803919135441030242293142764884915328925143735883680953687850337682562895480928682630908789333434812651608522342563282534477233562872195930839338739905981300122816264040430912187191167163273770686271853801624551574849290994393337657500050692842370804610750358875083420798849969419314641755068340542327593914239137358167509349009582141820781888870314933821048015348064146098590012271563376033650844241475713032603914166361431269473257267844320787647262465042346380466487009760222615229165999819244421066254687593191077189754020772247651222891926855286456659362115562635335015905174273429735791800102584818716445473830679062629814436999411019738128900701588936036255799972189830749041789581301595880855813082033063880634216818773216800779273588821312953119256652142002251860245726082767083130829772425805166348405647296575068614473575426871849242125325303097742942409783608074455456182189237910692104623247632590482292557725146912852737792784716716971242330157836105743617152849549342331812962005972980000269158532149639023026748293838358853055714960098746789610042516712470438989959969764887086891426023656149477721740603469936974825137095914909456351592246024618122701277067663723046100506620346817005871856921398316858812028976876535998590103172644034270994798335840821772583212304639339065287518993118968458354794745963180168208770880456370120940834106029198207086269972401781698558111702424078306087470688690356788820226964180754119231770434950935980578151952579596589681328149560917968404302738615453600338459343045604726400701375995889326674271138959553655302790879937553458237471666943295493558529441492043437434645315139040300845237788658600209780880318003767707315281297500293766031403388820925629076167280246213498228435540484818576199002413541842005385110664390840204655973029449246401620113726975165772337947336776541819554878692800741774910780865238800986676211880791939562785096022140824715781140441913209495590707360537284509714910906597645965270411459562596373665105656069145170961219895127955857016086936589168197273966126258623298077344487488775364308843513963269496091842509241827988335211527857157908392693637985906692685023426756510496164567083949906243279283901486396496972648645466053566520375159242562007118629636652645168147185944990014238863029582384908702219729087043424003459494072655254370234978059151721381048883515347323095359165042401238691003465578905747999249018905795902099447948437751179291983147044062736078678124040964968339857113732486801332934561544287680661220436219731020643685030883459983779734466304615123262794780605830788328542704068814013056691831823803662360101271483509724795927045794334643648852823079253239512481449719931299930868770901266014309949610454898213886505022136082572371662015346632373147120194711434000760638907423674866328232012449382132381716535516486715319733195699399129731936744400264317527379388066243440685451985288793970955236630420465948683549258398018522144977277198309496485314349443597847327518462813573191325473107918902110399191216256083152783981801208792738496148170062971751903199192270001320254378002969724469226131601151508423090346061466683660433129549172732936609447635030565206718896835112790637906799982319882336757596229875126571879257814271469271681150954496763104264200022813317666162401064464765455549051594048985212003314616878032963141980774950028992551495704114441926984622160578412715711558397009153055277676983129579051317107628383157240845368203341853655292033075930188629069846246622434016882782317450766371702920521249221267029130506385690830889969446212264835418659562202434122344035993112957972399569076282629338420802431383647452377700559607371594422651468191199126781570220703518233213858284081978171286871035373787836545121725754995307442412844091063132345640604829877899601590658317947587567834347337384287198403359345769538365572243061413428145127010818171523528803714382636631077403790566574219792884508447908292199975673364376546133606415195791844658835050990321492868543933584595901068892740995237686214076973531486943894215034633711228782974202280857030998432397806787340355759055815669466572066792011810309458042712574490022586505477614280165519105140670472765081632611765159493235219074337355511407512682209452070363315329413957753231557219192077691772082553548821150170149070760858941657800973697472267689224366802069028466156634680829810140568287830477525802873704506136604437401733082350295400776140989349278134153012485192259161036192841295605331013786613259040640137516610885183679815875174802378186782132336150869007673257964813543535013886476482407926764776751992201008532320815882274999081786431197688082908261724250589014151536911243801397399662809197080475079443077837316023403459412671270598639359194836909547241193200137446662896698296640697615177753581036009668424114890415441458286988978105020009206538346617219883079475610765266298429134001072375517825874436735425518406773742743035316536046575953165433955712739711064765755792310562829607098467507676490641242302307824276700794749913103547704820052534693322333279479066068944341114644056561674895388853477270627029841160197963383942869132786632626166590892625360080101884680661108612225841309335493232713591208345252366481252978256386925145288087295722226632086966275624931093315156810220869542270605626187214268128530613563072591510846013970815372062473169609102492577936093414553668773269861554505891577687473395552376165178672060193151268308476783866677797743819617644916793254171481317623479570290738647957823256493399326028002336601921991651420802732506167796066074174684855302697638603234020264025274585419375051946889332767533062573641571329262828265082826355013789252026707481692209686955788561268604847407508569232352872686623690883690495528679669391523984799922206437113778116030539354610011277201866193597643595994850323299254189397466031278607387038229637907867730230991651995714494260697519993972927218427138483061679209334104659087268383360621265909276168243597392968510088449923134506464984224016252278579417986762665230522204211647017040145655183783807094537870464212656538340699210339434673782019323261873813025013413205395651967744259789050484739369615057234111697039130461419659567524152129552493098577897300404923211143696254299661895662625529959998349154510038676192794441663182223882271609584140738040757813900543680358478690978868971858898457481573599974283480545723125593358726048073611505160507332389154217489992450305626340511369749971183666408890929308988270061061435039687749869809782016640130527174534108690220327274233731207810970938539755394099258053471580190657635510483269429557990677977396271822228471900401631787098150174558067668564267620197799586550189806737073239447079715195928756112834055578684207908720834742481990347486821878026034713518326624377950051808177774589614476062743023032499959907575590946569463929996892692919310323538106046754208619204052504822178155695867629027227373514180801187427226585621750785493713273399360835001360332181381174675551517804117380268129397803440451502311270964409725207955877907866253727098691711114530629078814590887119378610952097922121563329417122544007256670209979531339110720983379763961484636537924192079561684254084382319600955536896506510086144740295278574552857930866544566105276031643795070958597867289407432791654680025298285332103766975927467553387602964200481940451267403211199231985306287050877550097146976339868726300812000183883308082187987153052054891629528408896989405044890196271379003030666574404934978884718304118985414207861139463262068362821674522593188455150328605167816857175619645550446848493126942623341882144640973544681958690255626872654105117111133473596069816379816857212950311474770813176662329370523154519645379137826279816583188014208483019110490605161866652188636602677020671637065688213707604894551841434514016141621943679423210885473249114844518071681485097257458884665483266735622138383675781263812956330781188666042018863340155006135062611204464319389054377036929224783386684709129800244063038501902410678144328213326944836878355267675499419454583015907000981828472901557219653699507370381028303968061179338563565720124715105027326821564128915474111746658507487026819667326612813469569297949382560656735777889807172187635486713498630616232791059960689990779528610976561764322830323998466828727988826523899690551006917587704815073050045820543022434149476428302711564782354987200285527341543355604335859867252799386780825504524595116694870043089440923481157387118979125427732384559275087196173085002443961138534053618932368059070405211256039304800795584748450252590737757204770807660613733742949458631169248319053836532870070527806611668642215745049213039594813442327994279225025212636884362682668673771575430874635663777242956316576137760903291066766931150407215145228232079287553352138861604888964629615248457662501585516027433252192279495815909226728413460602186232554705389864296720511688304400025268918787342566688516511690592004345516564808893867483392135715199728361547939307563152654664976946129287574230508960218512501595714273496504224389187113209725327997618899057934219431361006852395003942153668491804774473601106725965790221720698810191354329575996559293483130983382157950813650453781787288771401247112224736520817680897087142728231838827038929936239026876670608534076385845935793651352333571785269753846015647750837531279619536813772007748694190487423729803555945527914774907654029184417657868615237654940044467954055442006660996633727077644811708767517492117843688883400911368838552674335441479237206741934851247980822133180739124046752969396409572138759751298312337233750060079446435671169984546584519972401390145194229893859315832243494248284337130448020375535399615862233606007061015685360442824658930470957568627955273379202325042891876257816778361228254771893822526482232718454557784367570308516727074710224229963867381597492618585361797131929588095584811513714094790283508083603786275641966201195828987245862580065076032101544830382943011329199572401349435128016280389257195117799088034237368699054312196548138428443032467094662755006688959667564788716626731533669526262284066716656525751034072859694654799721314976165249004808573664135710190543886215326015058201078985055374368799585777117399162123654637840750760473809428236597859419293406448377667591832724736990642859230758562062455588018846807766193768935662366702802210844229814824810605894913738626493799292429214095025712750640134368267920883756885754695147172625995905189159906715512776000953966886663923421139355839106112449436228723621133483289952721621210508882794523069066987744435734572012330014683427030133337868125372171211886487117570513491616805892790897583726606492914029227502927990603752547248862715036260518201006236844134442877329900079667433294529568581852461425839152236067375036408108728197731837765060671118569252535998246491061289649023508443775627394203720400953952614123748845594021343375617338269895894417958855477761672949914460972343526757004915084288513865671789548317961923119689449528976209253857455961466911477460907395679455662126812196247047580935207334440296991072554013687556989162021253135982474061408973706720150996680833516651436243819054731750934740390276376539475316991247270266657063041177206693042526356359440863325760611440430586660512507783371753321331419568673304146271598542438502382301876670510773298025597751912035626600859964608031693124690389833412359780975933676521890556469593053917045461584015414281052391091868163509366920321489659164854423216092482622058684608548832732220372537071587219465567884495468918318540351852672259579376437669701426807463033414025347422336394404567144908836294925895667884675469342659089203121211291073498897698765937670314323604132080685386236325595672936360601599093673746753475835663879773004129974418100162252843354627226499880835027666977323019136083745394089054072658815609576071487054813190899328087651242254352641565451779729335797615619804629723153715195240806271498974561541121763071194642401108903135372999269177152525342578387844700112505573026290449667446966645942683231954316130255049751492612723651142912906818090103930979396784468820410338931422386390624158179305135502468858607153193419471341342127625883893469978118612946896846541377913349728933095711001328192001988890432731762430593587795143398783344894028368306984232799911774421576068767802437406942638295912059358423398756471385776573160601429457448231734847062274046227780883707076748854005469830202057588294649307298126803978788130449401302340321924607231085536726195262967596930432852516704633928396072735729303988421671373849147716277663701122584037552942015751886837952855315811895348670023229280080231135968378909015950217052874662173582377804765911825094172935585270338481916898775646857812861003211555376660225599973113391600557848986877334879106702678706914934200624671818815365759806328150323254412112685459690295207503291771814119098051766143520726366863253469104980059920400558059718569200956796389179011368082250725776760274567196540212939098649181146347285601803511360026133807705890515297975317075976040290881153288155481851334189075062332871037035051400718943987011685564463656698662820792156763735840644101259441114406737922207644350623245532615500037514125555988118590716828040761272121878922809677032934233702211845442754632180360504341184622405018001002970884077805683341780900905144683984254003983951757459715618326970102465983406182508274495238491580084300174802620416465912391008154593691050326596285783401317329417453659278490155944556317952966304291944530181491975663248335483946267708084419006777252767985141310167717163144725653921304144353738996428911122732326352115032192779026584140164147292000230934827101346217196180409434652291692470829793742984336767189474258523525785926004557078542244608695103436934873192255709680386707026297148280789950815911272413361968959001153338354140063115992050678776123726160933500955981022954497330336995197706638137665368435805003428877339422595668744587086853762072236460586384088584506135647728378459303616222117743047756808619192791728282558564675000838610500244965197480338111667515881451776323014575768719835833150369275200119801500473780937639211678171548371836850646169984066691851689562427265226284244651626141136899784516897889647163234198627052262551672605744453249962507161679356996387229616171578391758712346164590564570857232080631585091499321888395157677044690772466016869601218815700910528373909829017274512732039567124547160137277010619846625647524292831977278396076868232621484234042284633039249256205251184717166956645091568844976590141650575423485864273441272506629919711367323276352895583306498620029171299763724063893985636674006934546691968586992643552938568449380667825369261342811189388628508066154940249443060153533144564625239266733569205863460774817208861890518031302927872424065368114704696928551195201412156780067782912822361446134518807770725463461343135906473565641592968218222384840339949700737034513906891579928914402894071158862321631398621684551207602024446115298272834732596109059452636452613029597653485572984394578095852943557387622719468281991329903223451347988202181627621061680858536992796707150961823702889461580219262025590423194765689172304503532522346731107362540529620949958877100669850207122353424539217829980590804992905372782081057264057969956138347799018265629363820943237770576143484492432330882753610695060713678977129741737460794178500675251238896801598142593173699200026822673533405511552992442446399703234605598514498152075656709589702546681068491551977363175724778481593124778344348208893503157914438552663047726862864135015339924791292772932999750316465814326657593592448703610461435709184127919018903375463591538873681178181623128822092398782283550410956267324610944727159540747134680344626788196679358495918569348203058943914915614885352492163884714875220084216478237399936305791448467997791762006862000946420473494652643004198402811950928734011659214002231018623650303307938380418175037995551369904514408842348606545420851140808044406570049427950951344808271333217860394306411771298899173854527132274853841400177269703290497762462100172225968876230488607809328245082649294219360687322106827967736106936502084061793541288005255773162257621203689923808596152479354244480513103844962612014526748865313465188765902334378053348608410774441718336856051291598423449575056313920642036911721275543943151821448019956343587851708944433797175651806941412130421897682191374582489459884852248037780407025960259797672129284631880852866101049668119724756266622863964601391002078536303105410636276354602582462394204875394086483738028215617967898657401494258288284916940831173694689572728835622497243364468744981834227774994531240569088202523987057578368622902021543992671616651298275656787336138443074370275741822063764248166509663786784367428138497049923774466683897589606389541391973597272445506771124720795939797111417571566600615264007732151530263679860537718911311478412759134786841522720380193424125421732936811748015032990731713514761209175805991201778247267989186210783608816617369375853504561699082696142155278024479408502124677812895271219184466567392138628382126752672691417135903357156821417165082455629615118498703823464168467825809486177672400620209997108471934806733968781972599426956008136740424508675635279053735958115514297106825503953624143256307101277482023845356019382072370586394556941677713649982321779196024306509563988672216650798994306572613513557028666592542684216275847220873077980942755509891586842361446958100464642619630884216230154501816468759103426741134838189801127078692423638085402891850970725848320296785665771968692437252569494148176053648000101932076604135296887925038567414108475761115865507814258936160350039067228955300188206989762692324623239212973260214812705541494117455129690561424984943334108716852100797584473718954467380344149323883346938098849829532070946601547085647297141524188799836390358662996108663081655043848903120760923221929387480006617773701360833445615518429753339317716223617639050302931243110778640525037804230946209636665934589106187627176415307875644562809941619658037843434048020736531254435451866449976288907616018829872420764546882694323874591289721314460115976168984103060544021527382766644351438647161509005103039681475591634474504580269616344856270382633543222298883792529265958347956020851180611563034721587278969528148177349235042403092725441418276757197056495461723059744780900274913596965279539918728056777011494543966984064778437483182106200212772821460192035560097328808847787090387115854185382461164944636042372590666820736390007102616308414873390129865393830044091791978722590837359293006298652777020615224937809902456806948088299253466028633162211968768731346149432330570430013944574805790590984909491392970364246313108170101077539170034270247764200043610103151637295485746033198954616446813042367726447516002425841748553751011511470544461076492443332139354770480808963207591752347139369982517048810468851744318281455040064034783957978612303200727507791829894555853411625527215711259602061792882338515110016844630669704590503308471933148920806946650307962355958515254559671320695378201179708391741318326934375917428425647170415135337067844134840241038755075014981799186753974372743786148188719267486954372153372237230960199518474755097231169171856305908060345870303260666386626558240826760214494499156451225397751125865177711841442562771328902171599790649247791925122282404242498004423999999162883574054219600648005964089988923931301332210546839735822154425712758924465193523596218258787569543072257548669633735554573245638794590741842414025930989795756981288665886219175086635287135713323937353253318435818996548285861863462408471609671366421137246896308682955508147096348631016009905273311908944032148134900725763687337540165498570102205808713907870422499428771203214473736866216254391501561923815048343230989530690928645596623288746940336079422166575904501639227318731867454778452853883785607535970263543618246213877556956828128787521962494322617384745837822969714544097057281941183921597888027953072314013915444385448484754608086697031863601958496043989224571129474805580756297887354085559844022403861922560230409761887812310768555025967935271473948566390957468834554089217220129540997712240428074433704686554320254908278083704931951903767872037451400897830024033356396413754730754436250633891317275328594175767680712868793932473148914688078941336788329686551286041182302228953446267188572054393044134293395830579758586736189843189431108731293222220583060013679163677465574742096563277241232841679930630464425031629552774397983117099664152701613653438473742529189754035926356013338195688556471473688291306336856956706629621361674785219828415841852715352856554552327559694026134475679680696928666994766308275824940414623407051260827323577092559289810579595735100110215535743612179826498362682521597267497980685290031993820552862772078971680136050748682086439400797853806594587906744060271328224488927371833603615782739447202836506420170843967788658119792319471744384958599198276891744819784356020945771453003818564934307867642116121731788256978561136560452340345559516242940592371370762609451698553859798408465770218398796849192878844228780177430901686387175152035966708877367212446043307580711011973338106314353935493145895810004541877870777611003208287221585915587115429887771021967392498861936178501283136338431962361010874456361749213478072917250035393216569324422547997212324305590203459613195964444255725177222963965518560904199818450077658547302311374537043908189683215791260575952678831143653793447590010604823962093704568305679458250876786602988893943226184404463796825298324782601221962506090399182917339143132536252974158784354547874272283835378601888842597743622389392079196559112580678609807717584298707562066772043959458500689233738944053831313858590627889825481752534846847419258773749554202390032285305906374352219864318177415155700642617822845983847099702904353590894005785052279652855503777194785701921106554502136736061857056007333779086374586314831306373728354794768027609633922761495092709405204743929518864077371417146052840110946808523138035686443718272456513922917373422021612629820656071995506139428813926343882582238888164244925580670641747473520616945573826737718030774293023036045710399638500392978952946489490173637999135520429707179220394305915954096006350111445810552498904276748926575790973964046815838595314461187568832349342520462953191147444361871153873974060614219278944195278983629432795070132811466481716844245526591463963425472745998122668404797159556776236556167747161641097369925928875553872523997473958078448550099067513583474056048880545063696873196865862310799044045579850126279743597336485117038879711581442712659876648725049523745123662158292302548889539041043956654114691681429072538252126900133682986910971014150161333362522621540708848957668799012677844825054228775588806343079730999430847973594765827720274644624280378948439141323289649113098966734633905924427278180155240918873292644932556691386667692458412542849536971217197565331105367290453165057354255188550855905570195398444048467561259654094150009819489091270212769465279834784590912654875314745653059181752699143223958815201229727299316992572581408060455872932985801525094267720451333078565382073307207587709552956697793351940679335458892178382428238695318415651051898252187536278860279437891590594034663028676772634977051502041656175945839611204015563043234809548216180135191490313930820360818428066615860457244415312429377049418821837878763573470408169401765113750119783303072937489695151992684773915271190964668486495203787117814936651846061465465882469614682176744683008034286779067741655684256831181239427197951441334998452597493474081023042515066525601217799783054063774405689876492872930485975297645087843976248904665733806768497424476373663669744476921888874181846627002120127878988749647156201667845354374764713445413642376615445659251492201148144373861795242539297855015641557050566322297713249388432714373017306812508609356343518145333239142303306471580854293588355445141697466068485160491439576882190498508888008432827215224379693964203240233146535507769516617231206689390848591422848534273773024056674829664451756523423474875819323355002038224356582970762042746056704555652401136776550168625443626855653275625811453922487762454831512029529457767463766006240968661715571443505657328873324264413528465311866616554597434274823676936839054221530394762014979926047824710748965222965679100766350295216109279802712012510890684056135597870752916443476399495223818521703758534752130919024575360374442901893389874606198307126884498424355114335459673919981151079280559981170396558959836865648831867647138225144612372927016355993801061154547740756264762735168660128462643759996584990442474758260091850456323727839269509967450572434709607604476165525355636470880859571446115866965443934762209851488202264091532973082462609467955656230157006651225907998286134303653978163835336523165930901117608968735116346755152983904253639369420405894752827242512265307430257412495358817320021633942545114598061821737203923782018240057873965629435218538791625878987223912580160068508820920529314063174275084422638068654335468827942487419489068461192923650096673177461896109701447166052491886985983014207751001107940604003587614742909187043829282615016643632711781881672310244011079113561588358949483162984602984338277382876901279852304138647381193160988091502010382453443183482858985214304503136797641486694356758609392835141619615771117551094603742846322301989359200144780458158985870014435028335751952614433079897403752260514350019166524019861719050029614971079796471991825355852545884008275731987605163482058738201918215817940535780176470635653309479298298890311670007883692033621298784426190499587507400720292395675695706148476927897671414032185932004426621670497224450115777691142872645423438396481903429689698790725055188066597935077712644672791973701415980708658098163692635748419766763331542700310342048609792043657354566943940885820236331373737104825086712571025368192727051435963173447053094815496158185742478342540526201628996425504109089284141008985133345399176072737787271991342035120986166641627725771066697151804918632256945769766915960769406337668522929145929720056658108482571536695588827785485775802961993435148858769573258307139358769014869717733959304486862264413237429594816179046909639425588309123042980716941036518430540159890862918357812917357619381015613135171801919878330207945926113708956180234542064936686933971403349233892852672676021552609670320781856433515259281305868445698750200234183842876141843925268486860331203734644375254417216064434177899490119059659783939121004313429507622200574720496190678875936049670434167475816826009972462305357369981947618457046270023689801112450093433319587468042457251567605927095059877392849512307831317093436861498474413537047233409850822183359432405136300933947104331980227249127487656434133845580402793533598130215295334217252554095002040562996139861026135061612182568963302717178185763553370367527059180935693877481944948194680077092064786201783191546057810100095861182610844986035493492631061450218028032206743481362117716862561409486565794549292477879287186028579353983763682158255018563049687839873349877809271527385730102406782097490419497947844133557778823864094876847465052209613309903057523456688982099220859587300357558364547481955018443375971587642590522675119079453772578498617259346904043254100280328957671193771139154174773798178848499525245905387499012148558137266328364982181907088341938468296641938988814190136398696969908263130776228665692540232414825711912798821919377409733925570656755704128080738747580488503387303472313177848012443647310116585545902800241058438693085411076338624365152969251975975139109507458483966582520025750825772318585865362329756836589004618396876039887374205109136222255334244070753490810239018228807982803218183421094550347481477851303488770766463637083123470794619474904887830929597613690902709739132621575371188631327276526370793750738202059850133967556252797736905016188750372975638121041023882285993872152205724273484568038582425201210219123028787396519518419008892277027473808827945621796027524559120585241106809955488039302960947584872638790395811631423062170984232033734199081778099799688591806724550082804238559004682611272793528807884649579031685915862963499923040220456396767738600913860943204409942309244073784692269372913047363896657665032566190912763755374831649725599423710773599139946893561511002535317055459957702613177737373609934826999455958226234893455466294307024683889700681770161765643850444541259626560059148252145941194905987900251362174586597742619174478649929221198437679228949748027012902348333057953833399446173129733754573510785305074555654667340036988162374720948526316358826313642338171593967444946389464457423565127556334627827600140286954519413170867140557182116413262253810880403902066450577659371057593712317265493955450682026086804865370170573677406214790275409941364837219195207132123480129102953598124658039903281874689660389045161373000386712104204781827161099171344183887696819848957422036391296619184407059468461135467619616415006535574806020722717937109907104252766023147862327887893270256392388758005029494363419478721919683746792392535700029283718665279634362684029903694082465591718566490560354116833845759202380567557380948525251711202337141886491437278978158301881721317603187599526777763425776759495475474645805049065000571878711254989134375871005672788526860761276812625110886036863266972370243737819891397370973982620094694145169203080739555908462194942262206184532119432031865437068720958697529860294328270922202856951245074892804585768370966870435405513783460826742560040547365409230946507566021560837450606092171272594657422473378977536916966984506656027925201105527352455603114304035258140354495805015522493291461288366250999287053476368090183273821757518648193498312068599064014688591028932852692692520134854065562648633381253933854593842090717178401536482385436200706215072556364134748244132284455576835514213864235278630142444690567689296473282227551206517017449557493178665286049092806858260629835184377208245076772525521831436469988848936139570903462069033304857145704145555774164042386670598792771181213775716922506827607332268645609767422340932151986288582767331417029147808222601972757341572558981164306325572772722693418691221431823748498410725434044722134857003157194900589041782151271072313403008129803493426037770254838037735066423422570757708413766673927419844467851555659950709643455199234542597315318127247081288726365632100817624455585403024986662273732054424503754790270491636209260358647024223881349905516401498584784107459612257476441809311712301490417543841483100161801674513672700861013640165253274800926304929269050336418174308589943898281014252579428224082888992811056764730133486951717773747727787326198174943265067894535425737374356037875875417436985161413237732975343351068402963434901079045995937017172720676063039691641449680674237525409293130147427442039847132063530119941177942220020985122788234741210016453810302438713546334709772578082906298841719274498850078220632429313145442883662052398796089082236307143391142495469549956379894361115260536002653178879732212017029855892171379651222610835157556637952251224271070017089540636062623603829599611620094680650342661707850091646487132894267422397524668657683783931727114086590197677589768726068855547410074564156016266793913395389404627151377149317348767010373388585259353122317700997623325267708884954001768382539563043089385663050720608528071234671006941909170600118441205235471103090285560730859755710419922677626267342647093138602050233652773544253882467042304767839728348044646630255557347300024631297557728345745814810602116541542744620295118917611765773114849143087278762670343295974846792027294254830466884323602354320229856195611724278828003549768543577047947344298601340437912574442771499332149453743087651391031852275398753462477338272683672917394283354614650326428205757837143789715253297182082836527731476649191821108410492747743501363625697715615287664364533557116489468505813172035845066812706274819035776212085436661409425810688058569646182044700424755581842852942251040962995684777527104782521468416928978129923285340986954984874146645080210930900525480865267237639373681688747231056009009330897681629440924621457667199917153696066169124315997192959067657342887508790784791063052321976592844591355261269039184603064678609692998732582407784406978577747306128114050770416475544427612964601781804425100991485924330963206752436060164506850596565651912139434596472349068352396817514410975378861364749895229955768312767062942786633320210162333320840386182104384704933463258239268957111584163794810604214065630064387111627298487618967010292324837220472132152640394259059577601975934892207599238387296911762185999819218938895267529047807787079438065612887948440777991699183622433872024356637134061127140515739898833685676363358474787466588403983742927371583045919118420352039506926208104697636060031507792492067471353818110383168953660196093434349895818471542584315838063614620918965356132107276593410521144621879775792717579787858789878187077756791329291849359042336755524927216785936873686260882157039668435606867185222363835814365127587191281169916146394361235362620930059928224545395718863136733119593020840141159635893123096768423969183112378837651001468202618108668550440523805375583467753204704911591764645920700315991546915884301864192703948457846625093963188458726432446126210632593764788775019470298201817843764364521899833399226771492556769600563930724102865314898901077914727438529435050946804960079287660170474960905481342627237470358498443698441373314721868076494834425330442700900008636491892896893756780050917747074674519929049232195259342462085307454984996705022127589488781659020998222968302134884210163104785716631829155316072426825949118354244489103494926002787281129869151501355269382424760066184842063232505817567857366965968774897028706440227920354750977267653014443498419145863708642565770758223668925834695091779415410658893390599003682787398579000801358150683925583541467752404117614791825779778826565550542094537224720457393582042726276964052093807712463488784384240474353180029208602134306082925187377021453909010799470301238795979453632850737510832685464711116533159564607964283964193017485259578236684364282475809258459412183910617277267403527406911155326483155427753836720293413687028623837058764625838614182635478264348887474413788292374430780988396946610968882445730082756915788236302221804513211110987687615994481985568080595148949580291094890533903164385566754713717106624394240399046589046177505090658901315693947923954352398484876722740197597258654650069607617167052500685243024366390523602027779567910505006884138644185560332010479873547025076045684286713275591902320220534899990230005276581831045086903992046917156999522340870394342921108644400968729030299644419687911705592277694408247281517381824764454371232357041641072532853390465186259237940879339186684155616461813781117751998850081904158947096501344813057420022486284343278988949296569148082663227367647815007201392046787034795079905826109360978105259126245794171499845727028526503255182444869216089232893547206216538835536198206850964132485279765031202715526399380776599724137348882477334551702926446955540343393202799017160027031561060977875039118080950085227378874155602444656511678725909676212273177843861280849713896571284087701047108094919447762140975599690553056148734581360069593572630157939087558152506272802374664866640290643997921046238925743149030047048804069816510814830003437680072771788975273901109667064043018505698716888741359420338305254546301933523586050479555983978899059502435712026948437322927005815254425924985265204819640882513695202932685214647124017137729748102021282879375023313651301295524105140086325105225708744122277300615468072124330509717015800402219114019859777238087019843247535446293288488490245244488310600330711181885302428157180555191770656826233266155339907656437461469263702068246030842855425321721863301359103912208597826982009508609179951461625425257482151476486298785414347751715467121458410326495519002678957105629809959003389173628456266012140818659872608525963153890274870875022054814649661001079842910599065599260365167344528395573045931580915737420664496633378213099801602809582225105203950864155714218159141074930568510596829781662849531802034347341700663280915531003997784477132731707471482185286237872436192717430174378831465966663820725415617316258750406153091475809491331082041159869328364134616498998662550391747689391713812920520978976022754922230979286673113135264864278457248316737593652044256005306112161542663689738540897205594530981214453401522208571183425906341888429230138012900070353449294074270054185826581309940532817656909257305568564654967683950439497498295877947993246645326952578244306759316447229259519614624611461928301053726241123052289068615172981003035487614317087640644953200446348833495071672499332929995127775438027558035937377568364676952631675246058375111114633026342284648256993433414933887291037931507337358918763856723666192940818086088089911829557447366219302072086054026465308051238286122285425185718848324694732261536305731745002281834344098123921427203715137197943101367155021733765712085567398651735274367394404077913706741874764776012864528308499431740560083498351988312947502932519923272831697361098018026539888588429388655808796777091016003824507045668791967720852757151445803817598738063347993827160665209242948289469542140117506838238059579718859617845108025557863290986798565251120795617601249253036243951697046621477557651583844554972173132561253756561949140534079108899259379281713566205286050968699543031050877330694583303025306832745336886921414453316918862923644412547872997944750558757416622475943576878584327487680137202456957493157823713385779447518607249890786195424763093478424359737078898470262775537173932054347047854783912517522704032587016310016626322665314387763387565858192189119443048704458554638900423537386766772286134209144544485242348345139066163867037494921916189821245934015439992647816631190632765114807007934801565517610353955399304688878408448402006180504371404028421178026489465576446423729094522775336476715514192167054990956997273277609023440966049749410786713817735911067002359742082790487240716541492052873852519271017000782752807946129794035849892891747349464804171258214923390928116946122654609119446154474169833449117867362565150868727598240700890493881785144040689503116682409551213837602929618350577126516575617041268951897391445105080782500344072230258255558706542598479922359502552678583799331129069423931364750686184766715026824782514822843775603516584323440526724675488396591447648333429877524956799711512890839265729597357187183436180947469851549052044470481645693049621036928789643209981359642294892224067452521203574942324635926631040397442476129732387577798560543039323077603995515970792021409924803570071800135364333026926531835514810249652691967628245621371617752081673248380382098911997877863034895584228830315865118005151880346543363771862220435180726985417209473254708677902509691630814384542453822678597100878466546174722438437489496238429913868172017297062232979522703783973155884842233740317101959545012472340745579506218550735084489974912036296665999147291321667726071138194406466606031496115282858912303720474515048601550039814395705449634408609094171758063828304704366045811733763777124643863480454337665249087598177893731457119401119775960410572502243075060728756978774717463553240480548036386073242566477925728059120735354861914734402539939083027638358287973227119796569975801055409195883242375952671446881594594106168341976744118028334029917222394534748452978417632526202506599048112888582365072227545511462226508869368129211976271125510153374166415612681484467273946059879504337246204177968735285637091224553859280732626946359773007981754901876924660545707168444395006400394354594277151807487350788523093720129286273688842343759719529360474795373206645494575130198807490114645391134091658843926790272835049025594210423869800768303002215669081272009227597734839144795989128654068676133511320741834836180083484038425420239983812415593496263699872139298227147637747237751144962723768254142741552817332528842329783902795097298287704174580952800262160825840417660874215326219539514548578971778939383411530442276841316955592611813748647667971925968928661769103975273446181516743299966262210075768676942041769297117233775154266484796800757437346224801205200970532758550139532752327051745649690497337920474031792936342006207062586735146279581197241695563348322609174939673482251311554242441962253302775228388397451060791162187632005245625132953627255874305115493916686257139458478853018797989954328966022876115661011006547634429660206132657025662503870720952720398313638532084838681927277811101712482486293584973417439840180717170886107370194698059479244421508491633202649849991427059407160271173664030671837207353157289028938333845146969227037880811219443055395798985153616987588748535183277293274140415055692245022843701353390795804776637556586351168190726902713795262914895913477510060686230856476249193076877494033373741551298966142957301434869679510832983417193380330748615357265656441405222061388990522093155424693506601787542282451173813586298246671470981850793690505516627621390466880063997420134285459548096093958566842924303770751668835288784278782258518894354795962667989118209985160924841648445461261627192823364226936200323011753194108951627270075096550348902512523179694355379279604853147886240362089162479194105951081610166110229976705199570442199494354258986825929828662210460690488123374747007296034186548203851228757241209911540717045173251376835565698497140114839296830534217528638456670386983360210153687399442315301793982398040295534879607224299242756685090251854312038665822735364157148387241287585406920962023007128291145850600095660769835116947673264056119014953318773765193008554225629712171801213518417285476199406982605574832740895518697074349570585025385072851060600915908911252427302072382291195318225635512868933556825834044185043260089120647467879320975914192643333456129836581225409337154890524190426313695322917512471705763599510078983967273597758011154871145889553875495676662910154260787697547188136732601042051853439897757637519881550060541803180337859460673179785662125389711514891000904186599283169959756324130738200681660763121248746048036625063849519873463215055765244002474913552580275143289077984345980029491339856929891619178505768094462715755786167092475850739755109898247331903957980620339473804613317424372137839380155950470851996056985050454412565641364059131039773443701882853764842265942021700712007533043425195820263484899764704996449536325217379951639044301050401305833367702402599932826148585623258660423557427642362840986317867647026231835781267417115656676000676856232435164044040167589377932071886675412435866830883009650524784543152373249686225256817259878648061179410561072937448598280447018176926765021663098138743181068474933288471768337288387496752445267789818715752919248246579592482404038041435640031506621623050574961296961975464644109246016241202137042459169705059056455098018551518766889588189932346287313973516211158445432551127342415075060308604489810785721602396332221289339387839986483692363163518234836881091559016468425075068970838867420562388813357526797539523452724644111111537966848469542585220781880824186667541639859391806696753723182547207451744089174941425961650171846692833758461389165811262341071571086324456985070692926929154084375027457617297185827449688932825466319822541079040740912309645125152288540961064873714360090667765516621980324396793767188836540755744995525946598200846953615183947029894728028827272709412311104151541441953440572721238675481268181084044110198858151040197185472932527456017356354764044582591645181138400017233097406052985319547014181369316870896069180139034581316919263472857526117103494324629389747995840451881258454734669234641398999428434119443010879155732188381254009041598651725738839548465756601654599577114418371940897652648928975753358647455334161644690080782477515247467802536834413147105614894052394558015671521541746658005646409821705237097134504214779267612514026242083192240717947113392394110228786942548313592577115896019806182787409968430451762093463449016574912499258226412665336131988605637173889259172339037551157272651608191372027481008730310135698316973167199193395388767905640773270506345882804309378968969060860813183903764781287989312106313369774998873538447480344756067222024830147372472988822205313829759303639827599004398095856663898486858151069063620476724075216289735453049325986760542226169957085410725107042878860044183358076446666221865748130802299992481267028024175995906462328218836458405540518353960961980511317811626081323514749704459320950927410516789229623196844984919409925315063822189373815405101219978671296946688794251087183160582455208047579039900156462905541778061635568182311396966744367273354106050051097670969148221186168508342423877908177610550280348803863906705379337974757430030929726185537117763825411804652268168378417165130071838767852168185995350277261006986039504177510545138064001092159747684657568146792771442285305191165410298358951803031514293360633201599230947189654821047295845404758891555938030293578991632620749745477715877485642851104221406562956694525685252661157663116382214423951169645904572832788775550001887009030754067210024886628891135879201849140751980186545502389919852592330531941969803682692985275889544653506737966793930835800579556422066989373850253176462536732251425346476257660576059696691775565037675575423864756105414151320734525032678132151993371525539855969251121535423776079043274459467574543354016733213421779390143473072977070902728567171490999088892153600410095844022511427046888499088268160059902725159185854953337499843274188607168233316601486231426088018968672212871149886336853528021613887932743139414301585288699733863255812418639006477264585406624137457877116760140314264223462073055122357213611303232359006998797746806763277219208537804299858617716813510455324713264303179725350214620476489048550256021766045225734034807935587462932223143518683374126085800947771497287788939605491372055426289901459726787586073559147826590586013249149718258276320568179842420491475399305077460975354184548975513829896033091194698780602898608909058759352980147654067504766027475977191448355079715748288811351422577286935832962279939346104432632659168169198824125945221373386718279302470990210276820314637465886423167342609741329838786682358545037500577947908189339456253169714410671921959840424866549214229927036587359477176680147575317442401814964757743191819821469538055749722278199272859470772064361788126480621016506798823855302551513423506713700590714522671002642595571115750778344088008748372274763308707673934220592664321185985614116029289878589813658738854104534319623748866891152019599670173175170691783250248334313718548781133713921172532551165731875324472928476758883715473692270173836899786885061452100288904976215666327841021315325192846811894379338217058697818660926138064587191203553207055470823119791912024234350142918942531763068109135733457044666940272048131366523746215869511891573170777036796609743249965616408963671792377572457115101469477835333403152898559104067458941755379888406378212113740782444956157984452664608287965318450007404144542140750567495006381047291411635418479275610160702965413457938993165619206755570463796977442779876379938429314697885145278938871784432746152211103574945118579231892881311347391774680998588282696689292879024034403700606856645669142671848567361937024348563988724891691854915803031576036122944273025306724120358952019133063642073785360418681513306005262074403340005403294649486560999295203880853632705997801023501515189858682037515166631112404810483407581354603780515834641250949487963944574185146255998077415281067796390039786453461362667457378148735005830880094873307521169899386386385479280377904539762016012290174350797545677969695406586256317249636640529356532072649298074145432912692348880402567362198192607987877879577240912394703161313905374757233969712938852954267655067142863826991508956853988606453200009396935958058747862802101964775695855893144252409308086316437206655957984310792319933621837598644049401382110269121564064867814113019376534367477305706432580389433435901899319927697424387865271132891677263290192677916757795882846942063818955373707466184550079440034375324310861133937764806827971509639644733062962588850627830440073774232830016451457642214233988055014851839730784992028774161287752201825232131407229854977532700961942861909988286532109869935485591730235245105533669137242780628347401941221085431601638585931189038501079230188678511652850458312151311858617039984696738099687758093175510425938352682259739205602081256014765639794974445740900908303286156896550037592810111478952203348921435317045364923007874957686023787014372119295186903571395742516468637287978649314138546545432206169873836729325053657445333175374327332921073537796324812326920042539711585341384252478374084307579644140602738644253289747666922123653863224399592731739835469603802387381581839964033569931819895769663034502979297145332668529805214506474654789426130164330571075228178533100388219134202546373522453284157260044673332785480725510786165823210045855962012304100583253633750605798805378785841621349800295578543608331699870670998974270120482246045188612878535478034899289024057779111167784553286728342011016574252467091651166199983038155450788407462910385217892825881182033153890446494996431996501659285368040906321320605493944057845638165768501484475663973071808660493434221655560797782371221433258394955127497157794776502474863670269412057084325635975046376424221680309324771711531489331090351556358581188681545432941871693448593777626757915973408110773699019051674261328238051718083370232401098422350762139328246958790289830757413311536295934567660584608499940901671137150385290166837024286113294142405158524135616760086321324644447071005191693917531382703155807603965990457601805772863371610539274708147674210881268883386021529991464815142087789234548866752307673821722317162349118485964180981834487049818908794140670435998385799671704177440910454544752622783787240012345624301490092281691644573713637166730020851813374273370252132408725411451151689273108303518012151755368712764905350281134171456299208036276682955486427729086869373324259819983407467363044287935185304764624955874638180966760667318632483081572386565326599249381181272318942368861137688277842584110880152396087310586815457982305526702110217792993280807154159072555776536268250301129881270301303598284727571263682917016300558394660695502547985866877763363981536766251027543682364057539153168619342895359159149550278391486514168787046647946096047764783727381967783378627573717373211566376935919461657769679170664217645181483984524894183533825632960192132638475683090429102266864307202322790657865059128717854580126274514519494236047249035017939747405814740409922542630046889227098591290724424860073535592770371261702067436236105864553691612764639854120881971914844349482231161079706194093143303205903362375779326551093931676304206244462684059924569175157862397419277375245971094443964266739598547998811618781448959405987842370469471168745005595955048532171337291374915364700374335990224309783792740248193859335800848249181508242188323341651278391893201041598848919782639622433501919666868847386710476568356633804251942366346465005998157921902165326775640188985174651535995147868674079577812273496220826412416436907420485799494975604219119205703605354481586632328647236023523400882977831209091277804919551748708607012190276797669615403027920241978510516119093764013653982458181484297436372037632632882191555914019435589965091417236207701710664403373217912916173436311887983396953764995232325129365265703415050441520940080300294826620905313576103909989731736662743444158685524635602993682311269277394725017354035209568227443528146973123145863532640186600474595222570710645030356139896345189828193886578341682359705569515319475368041359993908583695681149993190808563734588211720647426639349428801265049456830864720659460135564591681496975303673221870183865712350194996640582040937841597311253126946027911058156392768501723482062090468674980978695168769943475069610066312353997037876500144373297545147927763897850687735455422458794294673013372300448444580499828878803681048095254319403955302966216921788324886881575697935502770756135931165094583279326408822723383689014639795724049336096709782899994639632052051668527897090385604549712681706507908305331715303036189665112516611688204251932629889114703385344186642661830761494662914580478491787989881658925559748322658948642872328730967823869960184318043198387791558014739301525909443381386250615486565882353985551240790377091564444738068372536088327080080207491466013431504941269690984817151560932877899851342365258102992188880331044489701284658261703158729076818743137808601631075096971925677469393971484088891098984203649271080545072082283531035764645469086648890388098237870911620428131217831271885242074213136023023307072449553026492495237980778161605574683743315692435344039954890590857986085649371631334817344334183496575487056209038431661528468764626139457132478785707414546270583692920578383279015329349614776887886309478115359034017574534257863231361083312826384228537215133849861099395691784605381064813396331440776128040094561686969987897548629040186477117584669604873166468150955559553419589123472910494486012798933371620512852840828057029329164625658237088928061139317748513510182180765551572009019984520193568202981569945231886315590094357347240056928728434020920361707142407666827689005873407090671333989053859447340377784490933970096086812512000205693878887148023837267286829835622518600055708065359029091156628117750046687373142479000335650987763033542325510961911983188933255827809847859789474618992047578535140392261813986927912431199562982901483034349771726385975124678838339256508496269218881393886240454500071679365703390363915689709829553474099029956556626381274781007379956457076006975836945509341683728022723439807549266295053688244149612835088236698281800211407364636521781329265791933131942940079233678490945277785987507705861836902958689033556112094360916547805603576687980937534121114301328520826134081321532709167724649949910622602285970691622650551173862027243330034888973602125095044118050101511217249168585143949186744437404173279898708017033822336312725622026707233630684224040985302804244094432249346489427457396201187880851192955178918557072831644813525624011687437643930975454068609874321955839051749414365383344953878678950308799318593520223184318833523780794516303312091125882585666313732345245091738664740221219418381324496211233956012227495160913403808782639508867029127554876446197104654537193327359922535220386521446882175903884621540885542009469666427742555474295109724656511170371562201016746827865436967026613240699555579041516057995794275352480078408099153387454069511181145578531601042702271579369483258618987848798560192495017552072618126844304056448987892392350366219214798912604158533576162357312849919615946757223222361554184927598322747191236379727849988026113379103319399160852327269174976498804193663081665945193996960160704592385055782103852352092810320854604496463583041532192406466665973136736671513404884182440113242545703911756012936229179790705838145985976558288283004185551538806333454395178199420480755383376693554074521727687029053364431016071834381781838718841812504145542225319161336159242865299864160811717510485069539331814743082083767474224665683181855415817778037508167557651974002335649654315694852632171419165581053856474467848438827948055404500393097539818788297721171898924546209591653822690966851077220721248284037154964820850160143967343933048149813423367735845326642756526255956984010079111344241870957984631717277454263252438207449579357874052768591780109236322684008152202331424732826013076463052437515352951383057349171613789966691683004071582052443138514872495581090941324748986356368217250936079748234182238872873958279366955590965515310966498010320512277765839702393011806363639645022961128716785175299445359957359976465526527796886456288623317610165000961847434147675975349846629838053870607448604157799371625180236502078982892475887248569757000781125037933352623598394449176093217179500264074023694258440466397077721919726959536219250155084257417571534362204200356676162965064822453939141110997452132232366040947709252858946419381090583141652888196322395913073409577204368989044703987380776935703238944396201164488034853074515975059163088857674906201119869229229127825553659512898507093943240609251564745230165968519754729451964175489975020839129155387873871982042313265584262653991076343143978804734264466093504729422180060401584420776968419006820402817711016356184600081214558947365392797039340628063286252198739145119909152389942137225432248706599293617220150419391017787873801908633271620578203281927545295908092885110734768329034869820755042380087349598141414851058495800035489274261252276333657104721452903640540975258684091150783211065080095086275956334624456369277385989310503437419140901239409713048193195358690581202288815840032761152278241028188996464063808345695354964079276010763954503381115528628530604438203045373664470797545894105546747037224176461791268061344062457103403110823631091367247199857748013490050723530169822687603578207424440487065303877022077007696327554646080581190481713103362066263683730825136235432325637901409204974963762913089448017423727266989846395782809838901519752514949845402812983170884787021884216707295664179302737317074665376528606089041778006807028430256911447394625008620349686942513258452035819841143573076090813224594022458109300732606639604138981672067447257623113147073443627752987766920143590633649789807986323159256838987852146421515881591588191590842839147534618042867868781488864546609804046802336885071786729626778320030193224654780460272343416538084819156968244935888144859786709203741375332717328225893522025291144361716450760909555228999987207158050387453675746679023896429947840031804669355870148516477235857949461665887390522724887232065304773832932541368367192563651036445364787325868549389862270454115427702089739003101196203845589987918885027925813103706622312021568917549573503891465661118611736724672310241923562851411459369700694710772366966849079939492966152896765633725029403344490388581747359995409695700444767596651215343628617220044113774465008328946186564428511124249798832086033930271056007459428038214975884469923856342194183460967653831553981927353069448178525890314414463686063453722206490631965955289364475148453489195074252697120376438976718003180770881985549925379494719887384373516312295245450267800166841391018053360036949462319205865687021382824109874606057344190512508360765804624899140111159722647290725184736381445197550594222933999537303403913395630198858774492298288612413265955051453937929878799572623107079884262596295861192439123454442034720207260796044540695306382656478862100626951132526566567606763286348885910711685587518471580463528950121118626119974654422782326221711138233154831098953622366461504704470973673764849171116518705747298043963908180397836216306718800187268277631026774454650835659432896038737892397865940045334861282305459419452665906741458469650813562533276687154863348470547292491447623209445547476850985901429152998910372692201834371721828636375993103357232367748490177725837994342350184265148609219084708565433618928586994431195476085152419002452990050828986057707101171424834206325814373945009589362669400865460311185780648282278801554616722909287116429396269792974147061889997470746818233938470706091128140438241867436089911790341248609637786615329280858169070768822763942689877058037423197994657915460527307260169913985541148750327716679893104531069005517516187608953386287910274830086871504555187790379204824596235057607545389544834192559932028361471949594968884964277744810479066992881747452856835425244611797166509012444642184697094343551917353925698424318277232513684164008554049949986621953509188386872788318134890399844776506730650737005094734892089291411161452532619348438340009758471268352188371921042190867119581640803810062996791532725773193532117447547468694376405693578828573172573341028492162298348268260871348564222852182509858191251080583014319861724133617995042420837626023650682315822633172597693225018192964863285425959367165263343934367274573340660967351717022130464874916540178848455453061902576710835917938428466407853877713696434253114087825489903404078320073629291920904150254703206820691508424052103703406041515011118099164606634362043381844112376078971676045077282637176933518142466428445601482500197672458029572148204709617414927480560716877492951725787167805467647557477720052819927611528244979509587382779893590907135624764858541373133228972227499555058621872171833366397365586702201394956015049277711970508692184947740437107624754515036934235636759977238232125702829569982503730480600496408731530915487032913218829639257059686215565970828989479872527542273471960045586153588380384600638499253935017958779407720944532108950641799807915066023796188248396640112391402258032609135615609596479360000763502253431610760990806788114565031375594286309731937711023319194930638189655211267534043195619749413544326243640522385317623993403812240484202513305180126345550534033370651876977121935253368910113707882807569323761980416136039516568709760188766174487018961389576732054511937316771649888709483358738994419528858204609191506636372616064614192937145992187286839977000259460709697443093368295616286276771001305570809701406224610269510273272529460802460436274114589401670581599095117737343538895746602959281254408725225829777541512066986553007076670524421251685937756339528862549210345204379817317076748661039529317748587609665904525948556762217185035444432905993868543338186714192667534117779005024308195459689131855248606059498864495896088129579292283125302415939514952650068016765322946332228964537213040048242464300750416855576917153419659880350385602497036664534141253371858998624371285678030320531037225929703446859048062203162136648494272511491313026712499761233187842180417403275454005238886046436686070766030457666814501044698836548636436440831212940669139421299177185019553966266397917083964728846810193925396822243999540035500342545346878376099257856891136942114814591216105655798007441679215932168307125545310075489599802684759648066341103544023672381579329216646482366608970805587343804992887891067630488856506632260371669017082746892307419581341662272260158898741650102805823064244949491707419727644029589617284735622137171094259007131398979566644592137724049202296633584152457363297108326501858557589840608392436995969697881479018334762705956019435730836791385068763801593386699720514030955770026104250220942461787642826375525219767123233126070221007548854808073082482476424857430636426792788469550281592074911453046294295653581504912549934354289670662082193939457287654231755950104697522477825204655191780891495626867207877306776242458646072262516413592543881822242152137022210003228120500138551193876630384576688744387759528071832875335998662325501070782716800509256298396012759121625461598292154456566797705665024483378759416390487959832102688822304307216783894068267382021505025688229068497850414562027067125057598121637242997712181278986289717431128687915089089969800476263958742735377470164056693880017241919455298901366595892389466168829795235820788051884142038582863702256846699772644432819632299078388638855031916169086500448476790509600546400201800610777417834718278699839126218032123582516899469015400861113453835607457446429760926521789480768794206369504958979319050419643425476944782383972727888723780127731520783391536459837983228589751759653599194081569232377441109915883185876143125546800665548548762004989218085967024533795931347650282489455162003563447101618101711805895179636128418331829806107956632451159371599809459662551614750505583232215373653623320421416564830305341381841443187788176496235945195456496094910070264574046225163773320691067942411889548201685237185019759879371228656363395295244511356182902171842456876598396925503476718565091735072205325204143119986390700758453556464065739989182809851416667444277442800376202813519547988819823934294232231391348331151300667611637067969388212125785149986667454926317328317876405548219796885495776821688675531195853296471699212566949914470063799502568757820798333305004636907561273790521579081289067400986354994178975273286571584918080397270083683453944587957239287677805584727071339109996368953452387507070142205559720934141295970564279762046380543354255704338009025965310697632034859941750315467742218791500598115824441858462200634621889573445952090375941968632542859002352961958582248980961133343476738358528216465906884142059114340165417686504031223369339729243668496465336846991618828257790105763617269006806000153222556025435706354321067643695997157402468830723913870862064698556484556665063307239960742775954174066181378756147559651629453143012891716034717092689531684110241623085031634450178637272385253481616248862544311465918323952827526007183916760378795507970186952563602871453063548760367689236951007778087183317052881853124400722736140482077660798506947729163633494316819214796411480516243754598327802686086230398743421469291514737794500907814466932893703414224814906591212942661909068362087751279936509333746668974958692886541805717476394276652944320510233011694436909070016995811083095217565079858505060176973926038120964769067309839665035883532881738849840731775518626085406306803339574436500152053323293487663948311453068970728515572606418423907688982446240946201948576949339773253246992297694234999355760991326527491152542075855220082194859341521727389590169947231277390802639267784181735042877672692151694375060106896612118336438457646371598722155646896945376074268969673869322754947455877125066784184050738543875175565294201337753620295117982752661277606118362927086254546845069969089088030887649589903596754667177363454958000745106385850427560386186292446265790703041474624900117501517014260187865094044762704296874906319653397015914374186848012085501303394025021007846769029247465569479072618770532474810181176586265227327291684838534090967672808312625321668163895347502093837929536036622773601443794697558732547064952478788783474661023812806275990678682404076595119792015956079693834147623315636952865668803567692868329926437292548021875547278961713875583997610728516569590279190231198651159700813592598622751625968691424113019116648126427791197142167532254901882837642282534524227224036475396181480098104840023513960452309241139512663936422396789938008420021658942861740315555007923191021453221029966877547890777432689351432128012862500764975986630522592240783010547451053698608067407089907910465193372871112230336982503384967574348514813907193160495321620300072127085158994491856364681277187210235468796242357471777136349434126246805340280090709876088870642713480191348123527937199194387023995501303146647342977113146229641339691957414774442923307700509370505126575662050118346791283257000077014831866606828411817257121096666266916933403093453580274987791439955626273139058693282661694836123983055273860550361734876727410995986945955959813584716272993363387942721623751252947088082124655387832720672529667180769737641889249711895973459845849552289432139908731187624419905512522581758060349252050598222152967533500637323445674211629224680358977015464077018135837991273618764644828281642322595491442600131430634264637315587493238840033147086042477017424360776370986107910607347064730394108883863689619715975102134222635677153219652611573067212687844215850708361071311945628877173614616433161443987150447710363983107883924412304276710052658731573719594808779547941992367842498221622126355740414609660947911635306968719984338196397271477850662589789405227535880081631754247104125412206840317018935902093866124941513646312174593171563954184305468519185908564324887810557651954275242796986171974248658799811140478161560060096355579506670570266204861831093650057820271764408440763134320195378963128512540363504827683929940642549796459837234072662653713041862623208165465130860251347224147142294111370191755503946117653630039691200550388875863297833498840037182515269643808088116953790262339967083825118292961034043813140994550895985805512893094255178202864083070159895504808755532253854998886241643723733692265319479505928972614547070044356119587669783660473755194656687802170626725140694154533155082847043785427778858809000556147022453661453747388006869223957977835447524901097022108497823595718446543367722261714570417889420160256135366812127815982348935331790027528153476399218687878136693484944419478157479369235149241629526767716499770539493767607185543981712410095856815686730122754104157024688426275351544147200065746522982722944155105088397748272652892090584789086407449619779533938928724970559748178742730958982579270493145967359229733087699452599131034013930947568539625728753120992342959909046962071848221314027520847348647273245571641417354781633918488870730361403124415677279357097892774320478427276830590011966723547871236306730415350015955674470301962606717560969339502160739553125218794860674317252181405082021008414122814434867202097728451885504149879991878217559326269171456896300932189940001033131768033273518509086583506893662782501096448238715797170949347581007070668116916754781266339253765369787827690436648277064473233846328298330420079518800598388556560569938711222862065181126804815043935661399820639901376899217520224873543790664647054107392940653213471962066221682769036461941961331398728215590007240916584230153971940122385638687654856693071699026625160237551498539495229659995446678506947474580305918348028354000414435726721008703518617891231883762413524291225930636313767172292733917629513792453302703161029795299017734891001201092437587759488852754707745905669182756768060511955023214826891095561014462006001428938883331752159861521101304240949112878320713643131441171152240087944655206027632778673378596283770721780627403449813263919851221337726491878894916443048455131307466165976201353967474436191798257687087927809831696113114816908734635046641494229608248685803413251378101595135966535017000506441103429140215040104923804960056034999281538414007777426997593850365357292122910654127403828476751988624860972606835743183517907144797656079003993850979138091227733767467731931525522092783927375856345303571926083342374711967437688573681403019059007069846654593148074851362673670608715176600588537222019354062148820026139800755067918512386528272906171868620163804459955985902552513452115914189348163023031089608658232387198367322427127562880828036566943459548389375005528037015822451330065310292825219087220772581189787950955722454645877124541050608471009415131697821286832418591352059902640502903746303384187613793968721731696132248235116734117747402336775370965037756226684646443905843016400052410404493550401194875446746200233639191548215130200419770959583216430860570258490275922759316592660273608684389233693986436049355341313994951785232126423726793757164577185037977011600846147510057973658058313162970051163471659609507309929916491781183957284814348401688350510674257238694178072916812591939773448209882792955354958058041264977799386611424204397720671555005188108599539492515439236155911710331345665674100190313928549394498186571405328876049395767147354200660023814892641644547752980892768688443299371720391982655014554837533622900757101326793091511430268714038202633976387479293741651159724297990599401113295014796699346079365601942134863209254901375220164191683276684312568565309318356091568599489921371120889932316893005628203132045627195798507282807717931272248353057077913664494913679815977068725617653921814884978128420072120408692387975406282009390053643062856517430064954804840364656184364520077916526887485045812222723551720743522536659876673832536884979818434812417425802715437497395162393843014925652095261683255875823719527921724532179181210056265734119307856090242986722151558619670265735393581221003344141566747191103239627585877726967060284501854184129641908097064359787740972563905525360740804209539305562630236946632691759025016667230229576822949613641557415114923578838270704756356400899121809787048052012050175297415005424287702004943795238864885064399549354195407740583613579812195921863431368462425530374753416092281317823475764027353995504592586707005369431834522138771281960589965661451270900260480869262191913400358739038495348346387383525141896217704268629122566177551864610365850707862668200981857020049141012973217021443420198544592517204779539649532573662056155723748049476128364424830762435222252560068886912082600708703210168861272442637212029273523402886275210859395310071474872360560117694958540485958096728876262567137035234359570357491450243113364502006197988681245671433288227594196498588195604837064163055116058737130520201532050785444839245357569448832549280827844958301313849102218526186162038716051327916399751606425741130921254131861884950080694951683197777317675884082161544571368215348567962771594295881037937762473372550553505551088250737260861021597526768130575604900460260761024808922598347905832628743097860761253000066737315380168232278390392338394900421565945230225502577304995168326015455652327533430757829675276230910522750188426897112232280155262864011479660799976131748769395858593002288447263186277217035512095566901957873471579282169615962370108165983110960675001290237700432496909759578806025421743882475237764580257310837904354616174681985713171535320578695684233654909171965249362002795193705039386136329975988771181205698667512003405658772651893105722282435329689475778731060922642677362398187719557419307959137999890200478665484613411900702948741168104399442953735438212836066251722024408713208870401479685967089691403638848409175727839550516228005710839218117383306450324855633888207722913628084142875179786819867640559521811174329075993078093589379833388260602227064047915684255505756124012932860893281801585211330145863375335090602052347292122377522684009890810257809315105308074026898076984346256788155737572624275894816884644553665110168554901020626157849769042185000601027779475907890963069039004973631627428988452325205355804551228643628510215835722110676791248149118019974534550947304537884591789572146326945441016265538496678835915620987216876754911458123692326260511921442623468264646604687007620470371094338264149528897045770224576291532934150904969625857339808119079726596519551845020235836824061995226233335047216355922407259753957607143584138798109832363406477821025418416493971124477661564329534729538207894215617561548336881351835292063426061290984414101786260343576887652618847674238696458880328564253259097834678965274957649597797565010734841200546988248909465479289272471165715098128436971633447874780743005962602059446042969416983838266330768732531837877526946355394956673305165318381469531479635636052120725192984135234460121334812798587858455834665266237957634244035436798877756237249586216489606889747008384012080751945147264985295846722628583829250362257082884610305154902847740332328706400164146295426018570162020669356995365404009133886674205796114057050048259629015981180712439214730824772789813351476178594519257263804846290311492022239827994923236533744910569556049289820302014242802680489734974635140651452286919680355539401653274253947044071362747105048257345011472678455527697599757001696455310549837978551341539980406485955002859222686483572383175049885639057821764888720075758155993945872053327931344572831874679320883915726063238056796704457198169215685777440445843554867861308393655004394259900241064939482035632860766064956069082889352797580651526373741284543492874296504395293378335544383291765212950858724406092228271907599915730019224125560437460860430851049912986418504325780456680872736603279815588510017304477599650395400516139989224760315553022018457773369549829854675608533785087760069260921166317207142040629292519683759451836437923928662430851877106914323887905654943181398430371671290152913497705030534307991096819198249148529413818200496228455518215750423311380505741550967982999233593525081890015286680511692162148768646460268616140854146767164783225622760740736733443241119042025957174987480398086479107278936052779669184269016112429003080386225171014792954366022319323085028623165763295798683741522021490703948831971443562025881468832263605057766476034448392646761859860851595392934241424014165888647215854287935064759158218816212760395846503314161374416261466031462572092637913559349987183692237003034256129316851134971196984124165611052421502056410639623240811919263627017649995001705103177250711132244631549330147152005659848956790711612306382984593846181110963855069874445699477005188367487094426693568151306365732149800337845010627689899314840926171002729738650332417574751776695469628072293147508747158471126318373461391359824485994982624325041810195072869050824133692785912728603619355042231801454260888176428911765602427898946166115018937401112903934839910564528163844536821992364856297160125396793900051061216210775089024452214731954277380358852512496336795361996324975966803959037953774940009588799301244948871648342732699380674426118943848142527236949279513135876521676874806416017300420662122076046466137552720087414709787630705833616139673173337178343960878153711202766812812763764542468922568604421983784490839341301819259324178662791093443022518345757197680453084529469897434605294400259408470504392055746729470284650241493836632802967317837370443212486054906043152391796491614558281296810422414155023526978841725266999208544468700144449695724390823535520560362534259766607374964151361669121276028123777114250363298488788055625607774505432160982370757967490098808754339732856361767742112125078823799220860392807148022482777583944779862563009353101328029721335285643237710633013942768572507149047242402859248851835991164045082842524768813780244294656598954753303692522086015253630935373433403424232433327885728746773807255823599103406431746818010590217138671433693817193266009732809932989053181142924056987502406641661729257507379496131614532691484900454005898603900331141365314087800445588306681091139219766305312638690173300741471444119724104049152563786353687313056060064043890399553445972208206035305621373105511092233945285196801717210719109247667334028813456729506217229427454703526101535463810754900015769947504880904702139979272879582810474304547252568897739654031147118934350007269243041526483131328845570713863099328693312206007808535916439399367563926814497999041683114142947982375653790781712442375337998631058936998077744609134182437570977243466202478774608507070305336544849480183875219246504131561099830870819776366317466957426161031648607111026681513925314483640144448908754532546714692816861018462361195888313443236513082635273375862206274577807844612052337984024792075862287105538061899547026931299485131980372454690982284465739864585992899439714849317594717188806899170335138979357729958112296004546457215283068092768205965194696288320300901937311322234085667179022449926142887507629732814892812824973935544680169813002403554181137686684177359234308751697941555421379123817025856300824281691547844402267717438005122648381743759669509027170882956776470940640327488748725474025531924945989780597223127751600550086476745820902474517289593951964522529997671925430243298986516510343948061315110289990792973440434204000464690009132121868091369455566361317568768987197832898432194217693122124911245672235507901866729865998590326842767608855711035255182133413792659443380590939873736650049060581844452576405819651429610311889740077630326607010647377045561501338322319171959934244236087397422186343199217858564043833585799250547166373615911043162714166422721019886385737837001900174867169935512573817892665934168159759872686354122823155782446274871384444280349898497212675334435350447469018935090531417648939338710945716885551821614048136001870362389487539463873123538944003640667016401358397585259222397610169208119070236467124627353710388533554304481461380149270585222798068941143019540802233354485556666976491018597655533588494776789417498651697668853662707641898544977897636439390656094063066776455545445064139963951974388905102463875627244172417778900908295060384475447114836347616820490711367901966910149696848341230156050710542112496509812934096829591604055642310138600347732240513728192781016001130063333994615136882142002738752427521611152918829417200725315281309264858619463064553782952581197274628433124722547173738310315845695697767447219573499690928553543239519471940314683851962920478986956461473445029089100398244717378623794226138598864992961442979082737003079563840823862130834138439497443722048741448656842411459495162016360509083679961680223965139919161670631714530754526159037394454782153384706814572341676165683468892607095175244677779762211544137635678051160599779032476998385964450583054988366576369571686544953453020736997414886816594724647434869985031835355480428427506099760956505058192120064491276959461833619966273592092856334701471049337127698725112462560781103938333047591117818989932883334112419449724790608934445740000671482098093932189190412614878293565203991366272210403318478946408327312963656764236286492847319803373519659650078242399857767934215767912746370400039753302445565584264668184001392096385534682557563366221658754649199787048492482198096951342385063684891571028438864706272156221957286585462969707354017402361644197565157558646988063454282028803265431540887185261165714883266365063115861986763611548668093105895233644653388546785417844459517623401646451409501151211461067780923440502488032499336143374400193845465531903336410768668177726499426431703020056345267650957113616787552359251166184318089773484616400517101628324930203928190120652645683970193021017656242013010106121212938136422958891088776334934326088447680521923259492256582743257326149357206865587565659896620149367193755834896895821185870448497212340088407685311194500536731172996541743372783678742339828601796964764264910463476085242896743048505446964082994434323457921836711795328058920797425737554090582392463744534728478464295227236219136624860061526997860464946354253054189919849939626078288315441735609517078087464487441577386107748963909641370679802558415429918844744539369758809209594023517581548110904349262045127304707372045806514922784017820686892745115803938692033849692232469998017627766791720726879520688250916750275560345419971122995234633170032226490090902119844455104172825657545649878670298271109077671116321050512632793571395306918619523754409605287002034824454491159102558398232609990054907773464831210037269421780333618047411935485865296051126454275728676151434842699966437884691303832368957134185657182277161453248825567378926016668523105416442582269092234589998489754619432468471531361812552770020635122303638534282883323277788481295676834513716940974742236133958934400163549502369280564187226133390509367313433867156160812397843906510860669214237390107098185013616149061426073308359566746817213231983558544020011723004513859119382406550514172048699850799390414376483904292225739901837243975834669046222255155611189332541918491269857411020215575902220041963881396177595588629719462722176718818044395938375587509218383989651846096583499272590491587390571223869942481928917368011250386254466150183858410443605926168633040055181489668395015712692860760710311600353589142356315320017802535058861931731857007754861437900066858861986371134902697924371290485398521908699266855506381804197040970727958438946868456027891088841125271399242762031504483301766598727054982101331021120094147840107869257522878191858203159326685423850006566482217128567208042887129341044229530926952708066323734569998326425078985286787607808073913440861550596424814817754910195381638868843745050906139272960710958329480813810469561467783381388853934183603613762478978490889199590432164336237330595850246085070331469552660334774206927583779279434136165005554904049241209370958582104698549827602252418861031556582946359182031893594995975730935965667344902627252885125900317488441703075887895240174467725608986570119707937804574555234247560143955746980140404217993101004107089750082346811237743301041453125289191163060980212327033591224891937425452521253921229107515554661265494193559910201330860704843221382363070719556918102646605913818962734982649699423921511197737746618638841559889809844324837280911465487803264143935530226727496661246736774676244294030657008518294643885484929862748981715810703190976902300187998379704090199699410331024152889800615387903184242077028627456961324392772334263721344566810069430251387499742675299654244753214788819235192457369163871345307253385665318776610445206433705877770777597331873146734228991448262312664829689826256755031355227663515547000954341869612085986682636135211231838480577861679881885796774035717946614954554052701249177995174039311559659545465392914438382407264099751754532974533094894094439256241735781382954933277884568689781983497083438789113995973396175665089742274202277207111287839258262945387030656505509146214855670998929084545446387935100198607419319641899386726688432397403023853349466649153575722247684662933570035238971657402189637679417579899008658048170306352261306353310427022022880254216588469439508841249413723464903377584202525830664289405207730340776944619104531580299229338920917999149463992837283897660303358331207588918190700347389306552020057364831398639919393217257690504887775568009871229682320366058784379133320395142977045090222977742749776371541987760227656495455714697073775431288375267021473608282520118078079924691106952315307460734464152844138010588051241409779569429222217811179010199164542582412678165035763551884794458625069236159888263446284980044383324126925345290413406652474879338907092337279581013634986259858909159108013777576595752274659547031732264932834444487033512578775661346299786269938367504019728995518744378256134344955498636316014306796627105630040645266524825202947816459417155204456918205705826381262209970934628817256486315345447665478103155077972759102266712701400619791984968692130972220550291179526953281692831688237409689976818197040067194937277417596894072029393431616169139312314812375080732562328312880845926686427443463328265056814170325777198860602299766621954201752763040865080961944063399646792078811178164550507534086756367648756393747500938124576998844175346208129970418648527994851601236292683595085431861740860698531872196563949235940354337601838635847927351944831218130977957764571156283091758121142047026686008124142118721120397477296514344880220666524886702215464814588691969377008360762764802711483714913122007543299837345048813490165863278516284428503372073046904480846517939270737816095888701620370432203715295230407014916124301107208966023086124033374433049327560320586534354457885022588137172465308966099227480018338743090746636079711193321349950190268244967011171030932044316502774956448954351149712683908616971281682727271527167847574866209631133843096123287000457686388492936178608193979277524247270228772836660408058701695979136865876814746917292073514358361470836923554329975010247102070903955580103354176731979567401491718983345683802492672044616489094032513373400999176070362806948306226170550319785105793976668244691687769297944351726409065556180958967463388313022543627827343029907219758852887413134421737671391757466057690930406633763935865293155130619416802476995213204690579318192490296661797317963240548439090356039892203235524488967969690611281652629990968791639283798393008166476721187232602623512511743023530864461141812682150738136073823895299532426827656835360350815266992240287859213850607643106155892587016693282705156819803356455903836400501233912292820656028835835628384873590316855481219546157927775316672911964975932794027704199773745139702519874008311360591612582999430102171422189756808718352346145897125397313452037289028085037873552609707309824644785511363283220571900741888018561098983042323473669441632282777836010752980823574647868976227650299199552110599449241713377782174328154919627746442071641801306369836474224971219955071581850293779943133434324742044545771657660286398907047736966789267024501002275651119086841601335035024996442596072310581462048223400616745180318386408486106359536272071985825189579138108038598317011355927881922465029284638458951932544677286440941242699143998035935518085588303909525491205510161753096819942885741099546079783482288429238664587631396093294196369242435943060513415742554028446332791848010107421230695477077099930470457858536119504442260038007979153349694230797844303247540578969496216615258371832785416487724304318669508377504848197661188390813089398629299155243788268071108566902721069664871713140518562463670158379195667037220875833956095348294774110436042049337556441488725853387764971299396531247661433193111834854746877039789373350655413137228410579132135902626673941861664876068290832517000995652807282441478543803475854747751406662238421220755586019930964578542660810294270394795087502497289986882077770329281153365939846436168499844235867035569699846450164444367783979553542460224100497262429192594516722138988328906249262678211682798698282740560666382258742693291171887905379454528886611999877848787172479394928964904881982062849787382649256453520455777714992606914202825990862407903004121497421319981378429140454957721089229806478905767001665222692409517865778899302278359623484951270143648132468860417612826178323160961036756226226794317522895279443286584734636249025354428120073044207115589514067366478219947477704539628904270290840659186241834896168680950639895640538133150144690263906343501139537466859130824537252393801121291150374743019032824562203987249049594651888978955641355467179277722267442107253802940656467114087667115808076340081986828985040859098166260799296586446707929237481322264225517550098643028257363718850695623652155052207447624127089172379131140374902512532536254990511766050150217353145088261180049488350793616859733647695358185491928603758920792276057177846849023848590133388464494437530675120074303383810209755286604559205742638340975036941113027874917797310775677926705882411217260785036468010021784261083098174252451720254210602333761758683347925710456834837024232157416265323571727102649763389088035414311607204366863047804541852988314583062102153101844202496709412337586545045697007784767204938889426594440001333950538650232417001411893280752746916376202813267801843774582856854400782062928371249705892741165151104566477708503965377784042141083034117401963034794119938957820044384907326416380922594376615508906753570874149411738588345061966232322561306145560577459748931907674524894979350132869375213990353183455071196232736278893379666363124756643606129141356547175782167603139180306761529075429448983764992608398546169872755721917510171788720492106852744239903618029035983128810334317391912815654093300011813503997003236398393528096733847665861920581790499832033596135876358515038884505905808788274702921897807143412995276897859916156538444533520216410992435700997706019002162286654042617439922610820964171832185771478908175532030422285173148900618531087939414216896131362538493116841221827905878813271532895095397799810564112786935137996500740415561826434421800200009387965861008650374822544578771870817363772281747848235348508527347908582394201312031301551461635958289300777366775072227357935762982227501141665071864410088873263615682532992249388103671304635867147810103876638051102099870015213828350222174257792236292947433537839768983979243343843923861708398009999292802328518241363910603038295157737432649779573676208526832448410550899482454238492431230297924671403918654851934426740796965702919326875599959726206417166026376634105049347655445986261410584492162905559470073000060872049179986681793191686141536571626885354554693492873831943127539277246048180945930988281125874416170841942937711993798349166549753213763545309390955398230702290712035731064049117066845259941237580304530708506850433259663096887939243019592126443946315319682035399789833189945225765228766332593089093060686629844742458195086329026311661062817945929380105869149410344628902706100067481215096895209700666220632148328523968942783775872555533942421782004160955476697028485930085451192235019707841861818940251503761226592725451759103744752142785826732455654163363990086199634778330604329315070953131025195940925050972953295129446000826851652879438223253820428348271913596417180451939921391393074494846721097120850867223521814631377500963362046270401506481137813634517765596143533478476355325044511401862228206178441919533285216130007335036458428418115665227044808383026401264295357145712675214116568348514824801317414129204108132117781926831601702076746590361156095292777093195175039332054369145459091410913798726815542096025903289159491899809820059449625611852203770180434483510588657678086849717491384932108761738832480842727211073097060990414500566990910063779010575204473215965869175078046472221793900577530214958155842191091041504835968904063407583237297272517945489146856109578003949775788758426326540693600018842532596126384539693368075766451555191343457409006231082284227765902590687161927587282022744345237861137552394841688873316710742479274904741013220782095254371542893136316850054860928296840108989215180881466315418223264397374060437938334665080224644494148856816300259917289700859726701266928892073188114471059658615585991915477572351851061830644062579271238371155955754791367862176038773372547198749731827382797246009681626884046309168110944382521775222589301257855558692530799576171127681753553326905277806312535708689529555976881874219066186372221404159085981064116157132825901331820752990410793036657334656275179365799466225237486133258940514916148040114839326696890702111328386730231276878513173956502342896068899328326561889255453142871405904372579576757332905952098373274174302257868705240831054590051224515838084374596603594513110512543031202359230787584686923677923159592324521706697120601762590230539016062660492525718707106721598798483749058490560296385916535648558263914746699015248264958929934399501645585035603597907247802071483980781475837982125187631766437799208551105725112017050343187937227411780184442722672541820282331203468229446848747102131107994318345934822425710286172454748045770955430395081781100592917706545261868094035651741635411420201369393441468201624510347432745597111793247319320687839870703933748446342183856114323595637906294699734640226438678126856996974361145944973447754504346936252266946959359606689963972624496666105232419193331736925663458690926299019169621066075060459232115523323968849437493435457538997790999497799307796932604280232733961241877824831238702426431761923259715410592724941612228361987512809882914481393739077725848629221823296041233143991836331142471499345391153194911162960832662452272827335002117578771042241311591186217746967724620500032469405757333290856251686577893418026610434010514551124209654794127166118305065388455712864855436493016742273920288853188417555192327795959382030691194190009632666126673659276274424175886754103654573030891509470386105820783320199890337431769314682790041114141650143790741809813469279284263269719704096324391148873898332738348469280169479633332514945546699057128278935687579530701972585442831663839546426390523659918815719083493314981816217620978621249940965708433945479076874536734818240180737589389811653715409143221903666482583840226992414672246429182200721089842498004969583210636184954948101080958179119454311986296604617812577386033255618581863509816794262694609179730423449073915280169024879916528577013401813580038610339063753688841616346549779994034544525077659193377556709873273390493637719985488505194500428361881643254743371698183739006772566209063354612849888137630331898286671773407221784058049811848395638483608724702569768698777798432741935155826285146993511621032336969786026964909964287615233667487257632893878742536299140027258683678720475345850217322214188722571710803307098537914101900885390032990744947519157282267881708690078323716673035995194354684233877307003665172397963232532859020171404402583982929566283779923708028112639259915791610649701609956713413366759454253682784158176621813310694801748402013885655276797504863627360496720904827534820656089742905597373727204485331629773690099756452827224083165845727271043773230109708677637769895690525276592904199877767798963055246675093134779790802135023027081144710488803399217581853051683186192919183726532107882851243809576752533517854057808471479648499271986183170514325738244313957447378996109685153008022616407343234001910844595323545471062955764728563802920906750372854742965574714512110115941803303252621054527093961674970775802524938696214294654535825597438340364618546925245363783372145696709586997245121490107675227479610786846531677384277251516172576221614822022990347626909330452644574530129449456750530385369187333748936512660509655498336328122440379532440521167337960826307208526156340987898529861181703850126902304051444586396073709872050003388678535533584534399784652805343427849666286882652263596700282313841644838626581309759610861786268518958439899856566080205490998022744615054091655071726499372998825185915093574729685691602380453446219660778128071341339046474582296177297911037064357966882482219349148007747552347592858369343524676730529125580094876324770348199819220172803307844331113591512327201881581002316908672429695507643212065119556448237224142424891966417958742821410688664165878245472207007377195604076011079468288800866360253217033889192017602528164788307782406802552905931173987864424730498623106618819003381383676556917221403461307233703501976624233210252588099984915003076280021128138300314482307885208399399379616495771389499797746620423991409942144366493469436776140892604942250343480115704180282277872021140056952402321139823561382019448648417074444688859633961004652206084564292879106932763176543536466021596066134764372956519255886784137271482427760841328432968260135202295630582686290601548209574315599287742448431077040529701080879830808584759709628273306481416071593450883668998154930726874209270755178906377584167421395245358097413021498229344987014094870787019942065143926198830321431207619170861925348958068526626247583098718128083423803196114816772306828241153458033502205002663466111737683916051779137642067258933492868346339387617869705573995688742166020729558243177280071180237527633571789708678408342273885310149547416553899640559072710753709779962269161985747085734888584396951460430133504716784381383766038309666113442489496022979148693676668289562082178468947496047052962925179616476647474170785743461432693584517803629081718390625545084774147843345215659585164319613803913903694290966969003991851681061651421806424648431409881571921034115836520744104499346151790983675798703686468483631624017027048002507800232185089924037300929625365286677984817830857778553444600737769250844309326001321503374702525311720125883025240008232280737491170043418392668092007082762781724577390675966668427436058855083437583233559780048486614624180004188369295309475332226842435212045339972779739462040154328074742344982557197690106960927579597434842671735434586479693152959331343171002520312916195479411367356790610740567967897913757805506735376607482739157069827980528398305707773557222145407728734820061846435387854907430619946619001922081195404524101934047231395118962642139022144150504145182696081883995130459479564826050533300309646702802114609118063701175164695609001839150195380400210394640998088344837668943788192174847942542478254040122064838539165127226395163719902798423688015160143883823753625798394558995588986324148222091300038172661368710630139848649463981308284450829781277531011682369245147102993962830732791598199260260798307334470898768501754537144318462448539631810731315654684890920903887422067849303235752085518328781729189532446299318241755954758437217881859538031824123981068972502626518261413956924261414657996596962169742504223085171847426046359821796668988348192089570924011448685981471163091531118347601834441997687322729735982850020330074099829154198097396864958366846494254751858869432807497989066154257713212559025325498771696597364638929497882953445044476388734648490640960786918697029024504291913674127090421015105044745188748554028488991173911436349659812256314593942410370129830997535463961734855187669658116641670506139584976862163680766099888382140463845513550523004766135731924177330015446694813390594701106215764122707576571550894075116403192130893672906768144674433130868045314275271285994179745498566625513148079153851929198386389194690944757189308581402631198288096497677257573150517379893757309626038661653759253590997193628623133277922601694324607002325696682758318368247696333430978246406848492201984903280836089773258083467306006821994641439614033946145249476862492350583137654272628669010941652254163554682605477874484976997549606623141283574000637940891284388336267016717581861864336798184190864308917224064991268486118832088288556343041789153447498350585640751428708671067762972670419554210115405480528933869015666747729369180542194711199019927875374648551809523773611690611050148472475457181451209458602254246226167412361975255976133311020531023509827410939563178644039463513129369788091327531862112658380712029338013322455987419189259626838471327848956552710137316456656144581485558492484355727281576303142933025722124606348771711109302786865929858128059196206419003759060408092016718071951645008011859978357325911278635474737382212621381662326000969686573299583293849377964564871615099267302686742014888302966383510018344622499497823117592983736246454942808563066339784843556222481755937503630564994527509011136839090533224751452992019469126717655035748168331732613639130603917526897293596498387957302813742389342793195146833254846709589739097052037055879687848247753553657550615547554360891360904342606012398912320764615861192174602613759372492439293615459669147850705765544446262055639704322205265527762002173509326053024221288795103167350795645962287732926303642421355019645453098239555870643474791042934813031686508891673766657717588595379441947513459898958910742763408761022591585804950521852400858084437273757388449196657753482101012243152579082261924594706161617282109098603035369390380670871998235168966410184668828541717478120125783052578921451888432380156256601481612866902210409477235974182535358941122007692810485014481214581410971350275000544418467751115787526527373808744743496013781657147874111421494568874765718087147518942463552786815132917645421939848787327563699535037506852847525730067820370219258452877776079805746887806337091748664956953463118326364550483085709547270501375319578397752701382306688745953647279538250660836268439006469836707915880180297041032272891462775868215558566209038677343388441445536003058295221684216992785057697466386821962914158488625847000635570254193155369442222776257953051915720051499885862003293624206809328364231478957861240760471862318478226952463884318886661504326127602594502052077143468220564909402301899144649351971988312060194797224527951213005445115394415402724739179358184193320272004974130391239928723044005554060140064638847778291926005513159367405480419286563553296548343728370467864693666709600120758622340853520736831184299118289571855253444076088917932783130552166758134741981566166683519046911281871597639995499790974891936170206871007508652885634746544139384956570996518837560457294580068730207665575501096188667845605752791126029909780893932462501741984526026874315043696260288588563138464486026195492485003774762283371879575615258573099289108552694924490652550795136820837925657336994138810382805876273384958248472368168798359267346495317770895219024249988827433300436274430223720457037861186071402761406525818621216991336598293878930221980493431518775830785651622851437312360198045069386738190434565807860275182828258450752264397147835868918197177637658461948461887550959633365444694921000768850219980403272729655027316699345956930794877378900652371606130802460426147096504426941779767179006091667704516251567665698037100315362703433439176372983539934529951986665366675572770533529428457763632437916573525699916307541195072867778740385822908256057433144153064006739418870253530101490517915536393715986032994898960078357254443124245220061150340686799749708886993566498897034921446631157014755230510943039970054720427680577164836486910983912403512233446938257994448583462508343577481544637652035736228401649396307961398445877690793412923968313845470940288153824682457383839506446109417056559051511003381339384734408486008077452989700159103284405775335558123539059188132058754294284961398211159942414376472328596357425627614583100082960628211077933092198910365148349294716864584085534779053087962450120705885980165845567195865338466765907709088402971394600786423116346746060065645707908353958214874260347682725062568111356618743900838730820679617134149689867567259322887223654095829402123992092696196453990767897683041425075022231808104634329828103539865026474889614698259858228286908171882806719664448866627435780437081714776345318998163565923145379027884022582928098171895270094464108653669677092785215289451689018198319403220596833330664004505127195578239975351502586584019320462877244996640458980197555390863616568812090817840423758612739799529869200304193832574386850803013502999273522586071068136117911716444576707620124597541077066806171838700014823226444847363551885505135757460683326587411199333250131622512779550125680402606907359931119348004895985835517081409316065973306086123773101061705857986917997629025658578869230185443333648935145387981748429159027117263657536285184970582703004020965790392554431349676397768400203667233057669552205797812448272428958089348541960037290179597603870463216456783235372140987171961787753911900298959112172278718016654519633324668704756173253659998712764787888755781254265643337607798268680813025981200350572613616038286488180823084288283544350216198774824380607171112217615537332972406164552665139879883240551698516860590744307766692229788166318798598700215537525658457902997323396204073444946088493691926561036665630290023227137969566667011765964828844099683034095811113992972499080321215023884693327332598460522657616306155600766594672445287120109072837212122216472985461101617233455352874884648384308348862347729249335058949721322847392897559381741691173832231170453319215026179699838974975842031911282304399933535176746785958844706973418460645358559135550826168211115769750549166366792336350909837518770194502802495891369556496634657901702400650314265523919804509375567976461884355396430246007710647072417765137403264076015647887523845245883487653348821713036515083986280766618225934348310472213884074206660267464051520122924512470163593971840603192311939144451256071554084596657579194676269231105947008704979170613353625088028335545043516612295337880589706665758976782822110685828718116190926208392226178811310716979991662186716358594564023847100332202930878498660947515928959109309246876284088953821491758984472664682949008431432064831047152217034210424870933333377130940806900142330506779633490084966766385984525844654023080475505934000127538908553022432983416032703019057889042268117784820137993559479485364537351816597779070522814887336433753936942713777710897682465228709550177673987054933863926953643839802877306395705545741787467826099138242950569730420018670847637527104738087615674944892927360896165421837000529016938205508914476760906614668129607153928149805958905986027696755208660823089754468964408112373887551589059673239311557390259526720220388787594342450434813104882107453588848210912737471267542752282000297896470366878616907689528330946643779330247472637471769275049142425918878310335247698596826982575800762878320232562759047179996960698743645014041987194889929835345376412231420653907226235101865391799035854565748823454967651519420560949660573654307089127255632255646015694291785271653143807742531007658714180515174399634177854103577828942219056618149209651300139992348731834128055420773476831104928458657820648353944862209600021805441987814765748066571475982494282023719165382489735798676730276786294005484398581173672915931729552224258179219143071296533557665543725940875955854441479713801870801150761142341702672820660556088525722502543348279883658766802076797995462205166102390973505552928395776007279707247274281022653566992288037258047675374645733505453409364097562829055631364844030058284807181828701654270613144389844977057569523620621325306531981108641162021715567422135251541528031686341914981205762019252919007381554527024463070344961772744511915011702684806844996766918221271063534869200533579925334941575693928767453771221313808985742643912590211381326249555800671412194590298817703095112366753674264639720444511501619507908669994952843536798369277565053137120631182840327180340504770342041110369599749886679892297187618203666308254222760435250095102719633718976883622658436813271191734575736723566393095992238396365764159092800747315643979037498020398064064952389258738021988089981310732343579179684775754181215556200739905283903440837674743108721311271933912654369010850860156226712773222533791085154209574072375179173028217219923811516279018346760483065861920690144130440084006939236806745412177420700796140191854846262370522296710101091572265296159108338336262447563377565363166380714573540936145960214899082582416132164266617418768250158691640857903587748908593553833759600784648264851844317135887024986055220481699860581404274224433907073974614672375802108194789866218756091200514266803693565134356271742624573499165337824874854662549210735115708352745678597322675256920738698746475630535212222743291900004236355002557935383487229584049814018654738788446890778752016224836142088096639380771775716905890898773259319638657365172977963760842808366697410855564529358444756301252065680107745311487375390763081842513978254129827676357362947001531042507818962991781055009456442487346149243441676801919832887562897853225248290309618192936905402285036955738819552928143567921315063829153945063795796342805835366312158049253467646580290232467180491682497622330118707676329063702551925125395580780501189421849150229577398111032211174654963378795005946174898213140210582961353154951632676966860825680445870325947877442803208852496481821255302975263282770381830356276754307435444003856511911489094128076496633034398089194620716815783813701861430407162044730627800827262826816168594419742238054149309351462723911601315293217402729498954978389489501788724690157547760659388413121169164441701278559001028054452152446395298153520889678145589680368823504213567936305534614520341198493014358251018682395765567336407952699280471481405473111034875274661193060335305110548780878486920154654027064410726542892084852969994891299824835328690355559009502749577176208382046581690186519069320551240109135310620587884290042757993779524808784640692295170303674692389147415250001164549796790582267819637680584214538162200532922121641194385847743127049276877398091532293787551610623367807567700534881730188257775558779801968461332908685575304553524690071503722836892211927870623701744540162107454310696505690700274345308277298100237110731590963634910276076373197122980878995539719834842185186352351723128095681491746401756073691481232361268155658767675706025661125026804518257701269266917717997435037988433304012726264556711104489619523142982255435663597770137287641190444562675886044963029954175522856857573079959752419304088067481814311376776489884678886043987029138018013564337215282033621721766212463284578393120364039276685946082805035853119769286248791859302401552340231169666292265551746311717270417483380197766064657248650822558664987768482303208194858578036774572937501543309182174666388490226980807308583034231384325582342773498884645579773080997035951301725226682792209413364863584411492906585907589095328560799239429035276529025423263350194711481136797141943694564931249768033098354551543306047214202346031022436100811729601172826446970494483659569955731247360253884074451475452112895274097968699746504606555792973246861435863135212784466609799709919004969471553158442126345537200216653807258515435628186792114873801668433770319529211021997630041750973208474001733312097238330331839539614933605225739936939995787325580990422836739880058815225353482404897716985475550914539615319109085258084746046001052780679806591233159782300876291394194768020245678421146738217393102659122140133498354086605232957846463959026442268419415056834691059268658774464820914037006124890656028293176190178763539890298912980769678481403038330881460612574900842296263525682665855226706579968960204209516961095786893583256469136050127237189603738103300191590188092030058518637598180973573470949797700903993666121042195861994468622217695916102698147794749727992036272924014831609632815366368104194510855686726247746632754271696970045394377523033022377991328603123110000235874870560135599292806944100577337503898525098094525931688304701895472167221359218660107871269027661049966395291390915803531608320736190310910667126166396261180340025748547001668962120026073922691469760568466540956707607837972261059453962228493926669903200061742957668312688982698194924800358820461987501462097809527919355043854415049165364166051749575252354702529672453312545139059682625383195406938617815679722536565886717789596822488625815987790649762159814093385253250903373865114699062651755393469549112954117664033592628323326244612966894048885225689190701836033987075602143353587516943060268712333822974025658692655952714827039160892489878971770142474037916907589188382824732718054924845640266218643606976264938733372020100888120831310651291076192658026792019593787491755853636178729822226932256513533417194920286185752269448693608565951305330324454801727115412552782133281603186838243381813543706245931086192233983580514224435040501207993915655105285797011367980397608637792679784694077125873376050904604163562099898995147472938244170337773062401591995079048754073900843459869325456181110239846398608251507091810378789051085086539362392874025952325947764246865017889286891643168725993011487388089850438505752113977203736330568513293240463745047659786953387932839209180903470648326722960082298707678617075709883526400707472032506720719467261246155585045426731357798577922284521132594521108904764491506107699630256918463875825909762607091839279329467990698800604705408383568768410287949253722295532196650495969011761571977443044217229776787383130193629823468893204385155907712116686997297198834930471071796666936404542206307013095223659413050025789176739132249360781915635795186311065918071984374678909876174409667347582148559924395223644934916452240004141985644100529401403462434844769201546732186099278944589917333294547331082572118000638265894268979879495834851056200924766436547379793748026926319753556828603151658076731050678951516820398782825316570818987284352793976116455210963189467458200131671113853935408257546042726190464809948102875201672958066698910556415345312179725799067621576212374887546024986431573964331834061053967546069056773588469422879904791539986032145108986489173402828175076244430836297728555385103792595216192885882105363329566596632291482277094532588970469473075042964113889625064940076370319496107455952912816076673407154542457344162641148095928550440238989240848226793525104016668862583820635233576700817799011642781508912488668881486005954248381417116167379574729181991777882517901259305101354001806932649160691260760010075271535293333111255778806667152439185120435708689644122967067424129159950502368458697189700120589653215521299768458354804677140774240779255232788763669076337660432119697851935830090931011569845061100150599089189554592548186675090349470739553638954316746766801293335479538310205920709807860775058902929039290673523744931894423623971639548241933024984209423023213981473015971733656892830639218012418145953689380828521099207523403299759019448696061210104649675551159052911577116722832316302970204937786199555333044218436890288846582449058520017621949362921941630435760031331135087005774219290994847064901144954941706285330376116190771258539080006933942502044406298008891628137132995356850649227502144144991022325694494190846159348532900644247420036819438112800870179403445369600115124110401308048008152166804027151006799508897423720567849154867743945132875873355301419122892219987140216983624462910735270097107030084194541594654708148712219350845001802521566987866819935468290984855792212232190144226840249334785996226383132522157612683686318429060405400590020179397254158403879089354038292315040286560670481008246243372558812991608842156393329821024706690068873505224764548290542812275495617514142050830143667763867573035723828167997239143829222630687040957023521297516017231801830771477683078743303900356010720320906108003693343080549927637934986552420926945707074215115790551888436491130506712202902510487304105212913986953284542223662677594507807968610854275916697097321141402366387452522385230139125718913100561624331675958249329405875859921986627089490174891972508067205981334241551184214019292863180880588007588831743641950758031183583856609900918791955879247428000033224786953506036017807321288173216981330857207456727506213252323635878447497023838038922393186461535700909613660895039682202247423066007810672210960402449814248354699898122176980169745497116384412515692990729909733560903856879428395693655902907265990049239377946797574438254805822199361123971506710821087903561691762425887735058913699761300168802235863189011241137918630142910782010892652865727942913505853799857565146483592603393799478761408799294349480529634105103736747455177749641649116199145387541984444783279753564151316065400001683638079622186609892540189881042320730099805636078396955422057646567156957932240073215018927860451998105712693057863353855837696070309394127567211523268212406574410530703009287706413272769748638843319796102156396138447374754472732489562536120449965289444722672184447455804017021809235481146331119281372463546583137414652576950868615990102748453053425790697503986465498903889537149700708635991218826080010842768992854040210774854864858031814843810841084565188358641187766265039450840187032381563151007294621967286339663410266127193116348813484569056774603036128512438913416547765743268291316973475547720836743235191735865112702781476959829924432425580305695354361836061999811990005712704749356091364125890287350443659336133453986918383138966714040555883262169942120009392717180808986785786802487831609878993321678689191284263260346587970018703164788219797505353403403893805975962530770725433904824042585287951915257046078382598344531867538789612033551471673502144777224525147971026236071043178879039923025230837774319857928631594846912481006118561526623028239044857303615649340424558212755364522404342478861060771694652368064654036190466671881556092184360593727066787999885168107474610556600373930463182877141030120343294019170562729924819489799683382165505107078237331186272561298640437190649764996760979942774294849653808646067226632287524404372902512569336215027374960427063823199106956116589569120959770872885535661086111866164360908699368365009835718855587012301053579158800534126009102592685164470084014548053613415164834063637272699864820235981735299235127075196084085236131052994292267533883907851280608290897381159363905446141186481927877551225988366181761007650321984787332858759563428643163726027802369398205792736865106078195349501073760805943264722508018021686682184794183487000432601987187087264024077878359224963614567328972834078262375060786363954236822627510478894163782077068696949518709330155550403447696057597440951609924062936772402092511297912241769222429278989361964920853990566233893370643377065698912902660674613647184077707211929256473780853675463735667037817460304279392480951596627758325091946108382306532795614154407713780536916920026490098294368746628226502236984248006483878210648975379078504227490244859125246179768999763780802508715967871537581759588277075429158407666136663280334697490494142899364926740532170676237595157550947733004804517478518554868266857730322457545804424985288462899641704909639831546033947650656306754306188640872096790050309933564596798796869499547670990789201558550879585396368517536782339273484825774834577774987489593275928337432418443566549905718663704971181592861297221804243289772280233850404245918568000358580059835011252515473819868483863419691785706463900676892244285418864142064372622693653537084732182139787201708733730070695195743471811404459658710368410117903710975252439285088697064915892915030133733574322678208604479285832317544363309567927541331581390870174378593186519382073150544380922705757033635905107842216322022333801696039074864481941239657847117821939451964090532537542206097546616168872421514390504518876896348577390305081298594505935369468703569842324029692127530597557814544631418097917239197375379096686743152426096135525126700141374180872999859898359225856842317315247709358256552392802824088347242462409910155970415418821982067838010934561200579154541689134921969467085333710666735763381139101861021951278104113483126236053713393059872782659355521564767728962047965212533663325548475908598108727028642492199108958564787953459160725655803040377056890297731733971723966201930374639406859537288929800168352482782208054254684623348057831388779962611780145702980174486133450987220812220988174579016262747822047881122799683021457966612544905567684255299007618650636745073812337128729265295445662490245005029323352811748617517614684156435321287466276734122603696034533400200757364008892144144990724190729107416513163442605622462622832346973503625164999801257683553294011300840957753682119243170199501517742346573580120634237009893977135585301082329142154720999922551477024881340667496829951105839362913750360607455616826270756928085223596962574907465311143446686498304972731014110603795856021046183216445838951971532843421102605765466367741308265109305444125269052657170610027239494056753732321140697854549196400874678910482713362745788132313593067673100619384553365079431056604250182911438561742461351757081228745971958122073591315133895114590301587239862385197590756212268363706716571502828317199115665433858690734452094086595806259372136054676168187293638564481333604542596645139929193722410962964402446665808544925917092654587349338701186204181161352810105265833026085570317896997871129326953039026742960182909120583199027655680383311120559555985799352888400713995379908051977240202890406615199708954474913624342620950784730090933844022988926641322796830334774703234794712651654004143356173907980766131670703820910620252589562946316527924467652764025006118822860371793574800773270845530833665701084875178947136014861169091656906395548648494370535586474223812002705170120685287066787012717879854612545048260508251997335390706091100933080532507587633977295140434612488399812365504487661411430815694377786343945174050309577101397775320199457773950439281290463905164711341663432268743778435453376979293981310323297792209807815964699038292954113520069269735795156776769361456974291739047805839733460015796493069628135628992937967879968987856081536819022666695721119060571258794403702099805179642969014263842678835716490709131076699461516465228474924805477021427892820923154732512017595891599028591029093373525752924391663868071941795876181484086351471455381668808647624755225902169145652511346605770969325612673363053980915910172425342189587008618788678216002296933392562299394258892097092921508969732243125769589620297288069251783887338349476210960592394277370582355524701658178736553174235565876484574428519537283349596541413327668105185296037060311661079339588067335526651524805283696799868440297094288207820402521004059618557184602419133413819921669308834375732787394281032644386725210245732232204961869551697873093898833096900172546626135462794806947384266909429099173953146758731212055198299877437944026268501032726293822747585833125254060961084721072449170691348344827646263913912139303926316556222601715467995365921668497363620856832284869399126692503941070955908828618271127401258184456632779469128597948467284035126787300037942691148737422827818230620486117229766919770657377465035328403357995390743714513145199262676821325581506084477199184745965052886236385136324563728839317047206418527195027359330884229089671355299364523897563875039104990338463261467415895095444594621290901134631142595554576453206099454322372166895003129208784288442935713120382853818664477868088766539262352189857966578658774828544144923048827915888409197346085893575565361227721170874136547743863807082066974053927367015658835691910824453261844999313628456991076295491967750214916888563500241594138906690906986173590239174865623797563425625508833818939258384974197904956574886333935553641541900259543797945029129057214355593185199107578849427778696922572573172027313765318392681251985237381780458467147282766402174436082399929286880526822808645302747671589088800549507389081900735337803509895346344195577837819540659553368885872902474358359660624822428540626984903486369448135850101944976759548937922885556818089737483607947304008057487772418066075627453726051104222999349795099696237579788074636014479536374742729286975472442850894453802207596267901292140383711034705134749204479308163479365993292759155742671696832252388194210568574320276293526056497914956254209437502737212011365686820961104209193246534719220559879940677880950542670497575873642420386249259301515860456484001221377594528888609454611781467764469186242834435495684505599610425246607679191653301723772586510196160942326555019414183949139600502892906258164212707437288133842557293026831474997947367466608797163567533345235033038979176566934229100341849697118224919819722228113005850507928827186118067655366585916945029390059058321024603808308257436427792593310589674445423389498044646049982798622845639229869262608032487824103372236290327568029396331725380475072935524565017406167554221202468715669000462438029044924619312644292889493579051068562684114846132872157552424492387890015257604851338021732371156521231341888572855094680162506627379358956940827035353749372743842744746385517736877723185121629433822905842388918904802478253913787581073170031249848846637124083435573859744700076439180595620450349708310417295159644345680592062976213806566970951952341452067375099988137034958597066321367625033186217392027346354259360952023007906894811951002938935286246593049417970045662262723851078267183294751515843086000728797538029779045750569021045286805303710417915919446174798487771445565600856789304569244849293214250609725406368088887908756545968474376536233987886954753617815954994292370246631811518607275133174452106856691329317963361741909188951453547385979537361696585862383390704435465718729262726516921599655073985943147599742194562935010716481749751865643690339122857067457652361966621606236979773655687321068269702392845026628993170769781066438223560940878696445840437005332001557829128467966522505381906269915768632944351690670266121770431634046108553938719183581143231767941097129917360077122933581241567014115964842670216161778423905532760630503864298038666225289846251219310346160208256433299687765346122571441642892018759289168764265892780240998368306784074227821310608349188297908800177417261173655688222425364888741017747915970938862096294135146048631490331422924161641342271693878244193493449868690568005675146951412793800095333971631193527228811750302793470465726627120876804666337689252439486400702025901666381167543872776973235040228606505443467118116100100004049435058967241486103339608919871226892715876918607958912236505831584581637677085427381622602148842731724622449520613871395345132219013004886701829666834282111419306113833329237521546695836609255144952345566757229346830292960187602764302895500059388749207309589635507988047311285296976301464847090450865731132328627283184840360451086702510784412793270794699821720992578376893240785848775201397914582342012279103004276985249494845449258889143708988998066776729146696614533176155320324640201889304522126366243339036913145600566511315734756351800034275190296372422326684813394113638691525097566803467649051929363922119044645607745007124494960347561838857648963246001358801417985943624064982402384828800471347036469793519478398426998207217534816821706909168752349500462424063252022808094473939213811531354173373903228998086096981255987783186812244203626584167127234410486660411430140420430679204084968021386922654750683285995059593960154391310268068534813815565966348019661990065959155661568969899143790784620513712525477854775625802848437615963083817365347016746934505471330580579700672985710076817648851970687418731620566360119388617514873293736402286567584883517220347904155614490118445643837095086201634649715127702669327760501014546624278116545282448056485621262793835314517872972950414966232136180771791977924056232509160819743560506303485184168205436430333407964373782456751010776016958032185337680814655286117164898654063776080817009195050268424018061393687628818477754917911142516041755935489898387998216487052192925180563617386799377558262612582348831343470952159671427492753739333013752551500880212810267298308500411617833376645125398475832007586456971673064534493460594912991748680616393035093675668169300446570044641569790280074896774431753328302132201869714989559454262934355557929594077497278476066733625466376578522895525999787887159041990102859121544309180447244425350931599593364279275826646606320758697212105969017392845202047690372882485969194287532417004158498156717688119312723716719760187776894968280259080199757164376466460407511708907934635347325757178568489141885845549437431806624819528859799245618586811605101323040950998738361918969771111192253072765261083283887981867839314439382839998881589838468569227444830074212766221237899099756629516312770073528966130975917268285834285824459691426087057698472366665619172516036452952010700040413483404870349954656575271050189618925226678756908410626309300697599309825837587484766948950531955572392612193018316202047642773424873412481320192768940205911263530759006524714591059400934640446928319252761699342823216392175955645014311735921739456075309207685875621121212567604071350822733955941482925869134591736914822348590360250260061534927599321423109761431486221443559929422850655229129234331894999310704034248593959719777568290558264192601027907260713176179409819172658003604987513285658875989222276786020018255992220482668608897570467660966863823195561970962789438073203944641988982097402454690574247073021358762551729603816463615155307800745535412391157687466395508828717632079412458764575628475150434799046356429172227034845560043339940137761115650405089950503149654611879872071831371054048384664381962880202745136497720924753094163476094516027721016043901877475573530237183156601942762487201121720586907455055940104252040586656158714609433448325650878148862148425792524944197645838537304172036116007351495656689947992408844387061126430629520886920993837732266302634145602401091000219189430413025773780293515317580152319293492380072734763595610087711595146247504216538183110169969256258886135609421282970189468393423116421533069428871268936608026511168003410626307795907776686028767416345029480245093019526069105014746650589876521122304313569573386647997621571645839377279546842774870383444468665875298124611311330415339834152512926314987349188203867606987743946680736394694473205748549119898203263181569746351686258245537747507030505037211692915821669217409807977244764958049955122438832912441208369671951401894707770315934775691133299441960308371715001085934432355745562223756578538397454511898798713246420376923763253311357928003339800044584189092282846881230825076449436052673246515737013555442918610424239971630909504171347864266509267140566923507427403477659230292029427287169259950368714618356097520421598086600390676758081219237505961045139682591253733353125380915600278092120083698155389756839114105082893199463540660020024109476884545250121329047254869369991320437002684803004426300568080970041891329047617824025622999013710895903299964723029382668054424524979810129634449347765103011826378939327901466387745473658280883704865900407939980737845078180699487341051069054720734811361794323966799701141959852112379082293241552881530917654593780356821488493868236402079955566740958946520387148318944115893786587809746746133505394244025623182314697742579246585826173137402176856725888540588636629983063457263389687386860029309965111531573939749042296503035383838264601582898463646828252949739017858588656619397591374226556949301939582786348465285119940859506500187035788806202964135650043133094927154710873062771283071177095493956672522913309238505856690356402001373148751030614025629379807243395914524287157380851464711836045687924834043992669054501218292581707851912239017254838283520181912844519038135164210736716864780372371452447435464630418329590992685280322524714615167688960844990344920691125655159367302953363805173104355449327652405169856893239954031743450407212552748751862597666857938993360281234174967922823575833056243320203848187137843998226722836696099409879520642226587801057607485458517700073504784832875146103263364524542508821508657794623866268071803424315583847583405494970530829376783786456318934561511211185276680706740188548468099662823251855868417021051319048261702886977036530995415273585462416886650348046947876018950661152310215270655923617323289091652046623749737274380510978899720597819827495356168166793110709078969778205290315668524835570295393487810409543305350642501004382271765702568486860361751320727056865308307586541521811481677818301271619316161968377159277934868343820650565037092974965224117659622336799751667235752265188477657251209226951607207940738303375794811623472444217214693451209635619040691911061275762968138984890246303086530242825682368639974858008772463430413529964823961901717606691746987900202090812862776028812646819268336201285313330946463501815619933728817112274613896044461612927603721590971556608671799073645864075991203107713715332144763169388391590127273174298340447420954177999518900496490130226856158323662282884418929956152024941237492774550862266537282630636658320077232715725004897793190120180671650816416130903741616913511251087896770053082119326776605855490814011737500861601626126343041102164866694579662724709837037014421784631287439025749915835308747739707120572831965181183855724863685786064591524658853488860107245444782022946969385222429563293383007313305935833357832363381519456770231870864295940521840031348619728152965985757071846702146074673866239044052797307352819121427780539386204291139093368244982127373203824157069597534757152759597187159065596444286549794631961946344258598752429689830713541288700388032796716377184159185922416251892644380963632597692726602134557842528200705018457849914234650334582733438657425981878887464351895196470685676849250416319252851430387471159565345755879079290664334118815007627997969399605427829226722613051218871479227995612696955138721609039211149815690454704840445085798034783548533891708754227956406003968765830403090490495252576491910370451476214836156012257157720097807578654455857840356995129962359567101317660177723326356371537776517570091906899420840113215923428786740606174940609851878872344464886920802290772859454935744757228498421432376138392903889876348605179381726724146311003686843252296992387326388391605486428855720862946507939305042009858720148371092153887460562756703004024654998948237613882816442648968096458793572252870992962312999981810804115472405146027286509928725109069316068250836665142927677864331798880948542380342434133042896823218297850989213147459185167605371858778204094544269158306196634106679420558777980841129412921035888343731865681795551693138691947995840435637141708629186630411241832006250681093702660952864944567074759016848831678673782406814820369745613095043898015029624441700318282161659737416469646602699003763025511486376946566684137822013800953851369077816707087224884553680437903964584531748279126340569636482897502430006261678853340669696580744257507308555250417687814016177107217134735381355012808016357937091490065099889519422743264617448351961737168519160904441056527750669535460103481710848414484485190471099668251090300288627435804375324159187002048629911481667502278466200003961782756456668425216320483450661923212502157369385831337153824276869964089522851744312642388470155909073579138871665884854290317639516892681509563130361981777171846721112596698786872932337722852926359229412022625899744159859647323334101273938796580765308622377004190030419570191871916608647181942054537540812949232329374043931341847688158380926009172287479415058306597901759263128052987214502506305679143607266515608194249370211977023335247220201366942044997198613436039667344925436673551577495317050905271869640199526061754696522894247575070523646637535618248921061375299117129937040839538861698946242846993817753349380793386562527165672481353210962762985365245462859041246825385074825551514327344106280678305242775226655740293578315616977642087697873769679190486658640135374521510799163186622946115901711019951760237530650068147318728473319647404980704181798488356870837551043375702586486872898322437782792852990972996597835149561586457565496650970932839112951152438086585844753439265644641851663505614044515496408455716999268193223044372925741946445936778660246270819275722088284453634623397500868453391922562963269523190860607697555722031963800054357919051039324684935241897214816860081532566193319530149782403319187423713044212607761546893229023678263528403886903338367309664604318253745364900018477521186951753667038479831179345367277851119462777008377571042570929294269259845570539510017348784303520861549478469365789972589578641598278773633925804657506753515255952389307139020064197921766321553754104902525216046606342344515058600875339806481326856951986486402089652645352088013443651737673981616685614221105005138974285149032722204941278543762449578482721006332162933055446922264151880108926879468872294900936490683508251087880039650413263470015184174588801527286381292046087625700044474672104569381013915332188143976239241509489702955298205041750335212763902525576672808948349458309047332732951559250676412834561935600957854145910273278870059412693600646407970661634005107879796843752614224273864471902570798098104682675532918986792493044240778129860992367862390914376270581946821119686605521307011898346268462544176693126903388769437022342827890829676283270608261485297096457007675437659568309081430938941319212766098127521861027855669121337514895780689898220234143485703263183730899213078381425231362593866707834388944759463392803112818768883018381464513015396494188205900958895434497630499953236937818822316974521854926084878829912875857089215787422270743458556667479704500257348920672095494557913156282134944463906922116170422049266024367451234286308295662795311873649450247745566602100104203568623840585843191187414337777986788805832292945066852294469521750953132143907978976762277707742433561425677070401942378221394278445807857470239829400139508596714078334648213074960154169854472766789044215143936152243034981598945277877677750408289864389045239685067527730775468551810404489932121379904070581973930806634322704206991612319676227417147722725211105741665762273952931162282025265391202144336144027828494995383616963223266501277448083626732029307238905559301049889804856677992503506654735301356207452392966674781010708981246178705516133193066328667824962103886128399215083381888257545975879572916271624702653300701785037023882618249858805533041110948762505076806872303691751239980610926611938331682877374505358331166116321873588290692495451439065980403210655512310961715964390688048405693931072775012064378256839061304597323780552557792621344595610785340894216847972399265485404566296846065796769172635034701858650489401458908981838330645278262871047221042766313719927675715489665851538813018381365517100837584557231196724856981781875850672623527240912906144063353384197114985805379704752539307052813020306162760302105291280768121572476371080536221460029206523890384111511396201994161486073451196027539729189742975643328578713728533279424084550324263816526553247485705492155303723393600013063918260084274042738070211093953378845472529836969012332495685547107441869880626663817177359016960026039837598689185064660991490197370104317393229486051835497039675024105455530318637527552415474141589907877585106667175391341434153528605435751839199471994851140499653142797519940867350083813292748528099116888546965039171541017430488051439242807654036655512935110143817807415038472207321874183545458158875606717154767629514968573183576094135920407999047684171262479977891308238419291100825247635229007785209556505566042612311207454309243655827777578575755052310254616559946776830000800879904928346431585689066687121971252604814884642345281936343188384339415473322496728424928522937397571134568865269057060688584866609029237355999064026555486594017389251453548051774703198601616315591341944261304956574219257559797752004590184334004232680829981016686814284073146872824577835151595748313122969247247765198825594093156822059133993098479276767856295945482589748972191545173814056786646779965512903131664834115251625633535819822678901387924135153770536323136293805767112071977735164160071461572780951942248275644815055875527022053056022823985268800869511168149258589513212776318549525362763790459163852408727376130110027743269068697044290171574494677459533587962238410920117234641508895251442291398476212983163289068784252545192230985494882806909268846617603948303044392264905163316516144132111027605920444670202364144570278822383134732285906781093476821425002376415480322845778506748086548822778811109552874221665338142154681528616026529546604046982495811529668307445186609062368370940490173406949855531603449059154171492397189210234828849900466873332218898866504531266328909678358603982276111708958578630513279768454230031215813435649584951504322207536591541257362881062210995521897317080680048019536713023321760496048645968009047664230009727455460156617235611195629238022825393192079549564481011483388599610385640934845637319051583989210027242579109770969930602087291897406694925119376964749901847003573204133466955752981375339607270305769601036213208571231680639292955591503051432261136047361837612753889991748337280667303728960895544281376482190065121597043497374228483716413796512012152012591707950856484093144772420676966760733721031912614274110794332409404771541086257230626132254514647874920306890048221157814800274547046823278770698617111656384099053904323224450129857418604650245022929714233444427762462104978178585059061513203512098344599332351041003804367571027207328834996756115042046290165748613626206146701397754851283153738337834467206874148229756347436665928679086182974720127602112419979989581457355941099724578040140844599805883081319150404886188203461871255041403740067765512663771421688530693245594801280734547508944096945369722072421397369935899384560447696023335065999916827176476104705514358155437870093279475434625500141806006720780684849134177953348854022356929149433744465633382057684269745628195300742560021734304583384628677766397512278554975457119289461026886910802633866359303341580178605871074791534401654053279618709828570411287161745056938832304283291602809483020868902441277403996325730394058067626670858970759672898068442061917467767803723196187820625737050761895216008235134749884234636067599333944589807736710222943029599307364910648278091033813364453456494851397933076690871416813970728200007276938385018247266442401823696716333916876575229525284010274595586830430928249066749846139275768627890788223147083368184287025220591168308477094749139304261529332972366783673369348965621713561758188004430840609653989696031721968541822640633852498783866829620858725178377983539675458271599774885425236708250533500074309013819223611507420882015789074758248754715528900040678515310763182048019091581668233143559235547163450035914611223295072742388678450615291212593309278186264902037437940301784416254222583111592571048687787117057674318512571594864668426087432058913136765662724599165070710492831640852607633646417097555388860297908419205455076066352198024303685689834561641534093303530004744983905150399742465941690026881839313563413600967308307248767487596686799651088344228243824315331456575674135745553412609821358384301884742424969773780344201971380294865077623574560148043137711272309174379729364804639192532391844546924117413889239989829859614279696968979019339108882826755392414338781052310973686360932493427457417062400744696918314632193243678243675385661270472259816722504704949952271445325782179768199493278387884618488932861828737429914930721377940956497104099518193025809257256287460686794655669055610359031864252727082709839185669137914508460379631723089953853620143738246624191259436916642860315136765641226000033979939430494299909464187193441519826686138044968892209620421951490854799169512353197728390163958412914198044362107734764959072516699061951731889666744515063782742203744844716784161485175518684071431094484614276958871334215134974908327882824430989244591743926581591769489582729677785968167356189173335485288956931122445801154440793778426006212668099705935077244430081851045349461640867366285723604362342079989090316990764590240096009560306217222930006783454939413934915995994247635352209215193689664492835407384160798838049023925498824206866822172898771188463534235553424933367676531479646553410333096268341671793831396271579917148355552090644542188481690991769474349012590041104149200019058286612825471381959833718029435911731683643911586376756245819820469823286543065157624046638383585243806182123639939781802047254616270282756385020039093268617327414613885607604859276110533120294857080454646891679686843265225869851170059265163450508583115581146741020733895447318313913097776633632301668425364720313564956749671541271770975566697462426272830739837810497899609869305698184259362802889103992520623460723725037643640986308131121841890397683314921588615832568182048990986282599326280446912507519123404042160272999159541405109403285804333777801525673025154805525812342559037977105904159201222516115709289850730087424362210709815314183547639988039948967629311629413783857929365657201591807046059275943724219533882040233982544275486793998296803425574330846556623386442434003035288993917095152760225580386214489864914227355953766978912411652518145767696193556838778710329257277319492115695802769633001257818146810136128978049868498931175611749885828170611684318511614112394134190743993572780554411002354698860440355002583644627966906405789616006221538993461709309217907690561538350204933159914287841384284475563386682562923268055208600985382140313713466206695832178730103798008702750663616221827747119782598225176362748855744345289006915385805172996299797328021025106180023517767221878345972714935630728517056393456798150139328356086609159461593353554869108669068619355154788796881284851450498713042713384830486361443990965312332166648430238573863443689089923524749506465762207760982615975218694592994178776036370562774960524705476109214056763231492221510187663338081060176661606731711307096446718816924126065998571755885771961119260953071270622468799013889551557684848763978642848785972975526256232678196695151584808596283945901827288389678303554541158399019802623495961569478204892857906283235003886531964722538918164158550941990361697741082059846268864857396345190975960271454115607659942458284099894641293342191046332324286526310983090839160827503765139523517489791955524382453508475359414623792908343404901331896625749897300559490884923399603987927098611021195324839539834536031919236617865444185903063500163980144810376702127128159644871232682143692212657085810268757826278201815446721963894913748689696556447188616879600689767584763080319920926781071341361749432286225273143961864480625625678027007808671159105810981432209283310579844164591016909574613515051231928807801452664957201906794480166533666432319729083243732040507405466467651875241850934133549441325881608573302590525773725139045672826490710728215010076857562364408367151389799928268469220320595524685898518065103463567607037043812181029670517606095482374290768975564621329969940880581520461158065342128229134197562229291495368611623134069617411363708793639963384713682029287188554716847230361089469379389288303755682972408482331717808983075006266790619360112113042565102767802921048521246096877653521321209286321048799416263797331056336091251850974928666811321062544361678470999496775349578657826356513636023885532450028710657329281298982401495374937983373129508962981385491012058505508638532406955591424599369143149550285959080640222749399638292244666613725676094932721141535525194211581243507300217696744746593451790041391468212379857974321866657952201667985045971597088389966446578144860145918122926304851705279518812312891646552288043649420515101535226218201697616017979216580141279862644486941258603546008370754632479303255277455688109153805322966806653465010403024409707066232479519749838638338943828596308108135922755991845299123191532272214484410812471271291918852213826558429621674569887777196484795395542529222142406795832359364168162277312908541950129135663208904930952683235377039388634019271867571771045034447121778829052349233896405294743387877901449471282208902378229984751534523760019370296670087106385424107250970451320108159545263292497050018306803645159227756100217128744438427347192933684456464105313425915468812960685147144833253805806463179544265795541109869000624523293425823419984203093324277424361045328516452306385594074581482571256971524305922906773449908575388379570398106956064686120702118790588346491179603770698968585271306554931566787171686835959754654024206600332714266499340049302525772534178648251345238750559033442315034502679103696880092239390067934218317521719628840604154573680152336259018274949015011007005574888449713596943527112836864887989329407762216124007426622606074097812406265644469131625712467176460176699175754748673344446968410221905359316943156273756435768789215935118198125247570676785660239649034000359765942345934799859542163050905491707376086749532806679958035043448826992155597677905959638046730567323730250292827800159208197060030449845075217053831663636348842667789664448920683718640975959803878222372418212043498511279933535109262951084961937154618553905065518993197116132147244672514052229054545982087801975629497510780543792793012203583189908829556462703274469555576287067302877460871770942977266565144748786712271810287176269449982901815174480941551524844571690893880157384187231521667685679561867585890103273947007774048420977067785745061540684821450950851795609694778187489742741405908496898576841460034279037753296765374263324174232421473977787402589912192872444381174168224916377929547888258056497449975227745162627116795433560355388027622429254882045916801525219571621787034964089018139496818064880904305221126154800141501404909649384947815683787971975850260318946220530093839759614868661541783998925235368654796729413461717112011975570239438105736920274618816281619967819883637676592675681334044394457513157856434072085254563449339488216421405768580157623112420237324981003761927696372219056630362054879189693213109247793076881772115202029180474413630866650560415468191828287908005332394729069391115719773503559876465087865789966217200997409605140233686073274044328670137645559730427893429413079499373342137567061141693879828589994813815776903624316125415628841809630482510371800232858191803233630085959734599552785037733907244350436542510717000675359481404580702304801915324509104146743454817303792839379199674788539300344257506398376575838504824036218426605736396092283259648680572439861928614251834794714952481705569353731504615130681753253573202446154286166658148865444904791473513890281699655546270713933828560011736594857658229138112493621042008127127037471249765010860146287043748169933549219381600678819815390292670506738444472842071350596745231998775094840432451615709936168546865487963202253641743334505808392774513013028200268698216005422285749510705186450624825798980367696514165080305647041696888084003176433965294527006510770275140138099559208052036507059317449264436042251649446254782139260581828391226854882734271639997225056906147507230436539143424252167668114388698854684210530171164750035698611596297616182175537785414402321392027608416732436063298753305116684481683871024472569724253908971720884960679879641886311190558131276953129754100900167607274765763663879705887861870356164511359293975201640281162204311681140494964397552539888120621477896681516974107199940219201346116062917446998796779470854232411756055315206852506527566692276890697250106800887485629988155388795285651347547853061771263816830950129214638361761674066909347869658163211935759443062221123581689624247099733643503678263659537721167193983335105120604414605683572845450553788023702211272828765690842277084540753073157311541373323609873687226437779240743319486741948403581257336179128316578079535896725039969743806559407470205256560152753332156592885463723428983415295320448731189860613912273698958821105295330817219839820037923426096527285225847419606831143628970175862279429877858219827573684760623722201992850822238858600710272836902748542468316071551127753662696416454424435699331967413091043708405306475142089308871991707435280279217846878597284733502617072793419348482724390340547829003127234801685940181822627507529976026159880627045384192316781852421798115161039016861295152373600496102052153817550385803723773819874005226974171459462593614604651396796415991592142756465912400714317159142627348236876659138590954194610459080162888825287377365242351460427390614248631590420053445707657462012597348656873990042624482018556427060686890862784928490704771434518077157588296384788323747007789881870519594463633338556226969242306449406463253665440210908523641696863840566307140837925385057911277421634546907286211582563796914704642678522909300611254170326320922343205289822944257140103319747242086475054128848183782018207206609984851569737308780841841521631589089482600653197135808660235491653164261389643778493290350860335998254201618887106836905169018883350460949392668546196671314418123455275332933393943559632599559550508800479419748205518054084735420130488016093581891070961357362114890987132194932501733300327228691817320900331987594601124250196502064353471720146987139732782014291348336270309814942731741864183817755068647482580859397039191100356982227067263741782695623888750889354787118679460912790782944261984525357738244759824033681949035641929783211764331720618937442241258327573356483733187217476693042509110076538973142103661631552656981182044215086885573190958206804128886196184546657446592151296668504311416362637085590626374449666083551260828094450020174253214380618209634111700068114144429036497475160502651338509935378055113872935661284944084308135341883032288404044779008926338333622978662379320631337948650413296649475433699463328417700674669630007271629085602933743651127172833052826819480851912584243182385099868466008441160725471788950252089623893929877425561568114181906315680190749596590545664743977027967657659167751982551449355445246400356807266815840418535205788007529744060303925440522088605997670081359514286602591597828751744376340012326964389242121556943294057944194536421754171311043417047467440152008474249130952179714561675465912559404191946855723996956927169699523120800153818217848930469589614893903861149748626049551390630188753298078105826006625665071520498706481810657737046434338724925474184765340095725764776659146378982787910813442438410316109875196142841658331750451590824048508404509520946995883511453715232326936751267784141975784203155799110549871757874430484485298046383690912439246535862084849115222325106046922333185441302447042556800250485935746785163412432868353953522039133404110134436507369714975271485089890106988172188074479616976029180945271804775279817791441635210954251024390107448976351312498870146495709643522707602431819505397324961873181352228326314395314881700511473870862251058419934892618182213397544598994848003734561021400341822553752741083589420306325199977163933348024549371978153105341918500912058426214778243325994112382166274488404009455540370729253503630112899457003373860174104196963205296790708223220732381053632301214033554480610204217392362299934039414926734959156220338674810155276842972110147968337002604142569808373842635172414439186269630242586425940981872049658119083842935457511537077758168973546017986683004937746507826620198547487035599168857688191905854562270065969419011554706482365170135730488025523244829788133068885897740305634411720846262487680393291610960130089851547884473875477692455922928282086120171997588302342704466028844907861212458538838017202647083560844406410412530546481668125958752094188960731969526246961741306308897896570599881231727366705925904014484134173781297704359912951571610262659845584677280853560704650835335200957889329797027203628016973772099054095526337133176207246771765099093443978612342762738937779487149490980100436804279244431333920057792152754167076891586017871361730599286619774910000254807415090527309803016329097276476109114328802143827051723392569069731655702556187462199969391547961059588226597651408100479551965516913963821480181792872447333728669829178184463078931517153833443388979152549818106792849963373447337727842363766938536979410625558685473553039442941152731348022550895887941240461438568729867140045862954601699272464189665674633254632650668695790699684506755281506374597479552355232674720901509699722241887518642727319466119351773691612998635770008577012688122173338837552127628592174642939566639893878688644310795238128862622659972706401948887208583546188362361857429134871523365992171141632147348787918263191475461879207552150008992065831644788538612993787859583222000476465327603542328894165608563386377537624114934668179401009921415904987928922540126388723358254926882589208210089649060245769022720360130527527528325511307272383594427185019757169970247389692043340268023206593444784088497206999120605305795766209011656644392064767239112221581755697326107173242199694762976785782023172382265012128735202866051387112794918051346700816592580633632547690733923757041683779593369681441623477146421293119930235385229933702648171947221121397102061002110770013865795538563449984691412126533568730567664958590988271738492795046071329159916767287242658678294306835596429922378743400744727771739734220477882712223120054640456321233195167929182114131138354963629775076235052950678564373867822178738191457544915755694388746816289565552693371051792499377660053925782073687304217284513099665849103149605339246444647067582348468436483675889771480431185579241869124182081185669241241531361396513465701493397810678453956372725129402790397360820055045614691458021575069735971795964737194756364880349006096966672982794669076496654621355782051450914756347763281939717993734525221075231316677645608312199135177004029046575776552896563584138573005350011661354320933957236611813998655872857098840500291945432807439957559355821114659313653023992953237420088809891990706347784423835911790579834722981341976012538193907129450584961860415896361983770152152204955463462241189375885207508862985960063411689541042739483371704485396854437167070195178533239919084932876830788642716771985413337002959561685854004415797985196790507229662667188740813418927974892322243965962770658356076896103568040759599745971329625237113290542447773356823580510403729828818001910735549712491139371348084996799523677424871474814953520947865984829750533548951357914771920479494070033365259993101541802677782209129176280995765334261808030334341360974976817450903541756599271314705043694293852896900295919869417167417051214057381673907177237884030763961364153856775713399302311317906157701019736378496753242302112275317739716871252404454793369758148923304358427173424000631176158449415549721763735777945797560416819258072665071845097885350456441559154376357695327952750606771662760565127421273655437527196905854407278777964304024436592072862093743774414448427834458386161642907100803813354723113344696957847308985275307031446473990564854115210798942894890902099637588849418802767127352582903486980494401290456901333880212150746297182369228807651916133044773216023867059283015739002496585199987485178768649619417649400285273630488481027144942346179368820595146419667054171043370478255886919163789866475584217652334284969296896213246432992794557024162732141181825069797915843519163227261307443779331525513844485705485702245557433494199034983781640110943967084029916877496489567243804628953317815573874579602902553837585110370747802162055511105445397397668790072440620647022643452165383971086668209134925697003508299400944490849654918885248211048269543201898055156464938905986255223476928984177961081438079095698307455148613769286888713854593541353819644524237179174128372449740511150721246373383554879766312445197613664295406588253237930169224172218030692099429417305953455695320011195184994904753346589273697264170965945128052178550833743348034117570733084604389311467925883655559110046618418474147510445894704174800187519110741858580068467622419304619087506712756600202952224977835403086374687351126135673478412177789810914783798515252287370467185206802687875531775857210222210082805770329106770369290990969604504110867910626814536283651421240282939507265945792160218472259229332519666280824600805312349866894866986202107682042112917671486898591658689231635122085702529392636962187892714526436228276608239530369424660619035803423593370876275441895402074765044709718059208989842424272763370162044864719756946188673621376453676233056035041510096335997975682657869948956052243549272120938712204738628974559088717665776283509632915200468847766267235300873549442852851697793550133664553577735399448005952886527566714582591932256149529092680330919182881648527277307013310086034367273465140583217487362394799843117478553205555489259597240346897723722941327375386559806772292134660850402622656095412908091958111091417122684381596957616486015104418157611777578673766174610259315921707776754737725252690870089342873909941639893692854505432721536816377734820222700012447824898962746120689125250243260628704635654126733000331170606563457690844209718629061542970075251877832677279736655284862048385029921694242696836946604961936602912973908882138472893312059821646078847912689744655994133285191172652643066716606075538164308480732785488190553225214305541255660299502988629138859976911192511395335239422305300297195783728127062890833023593192233669769683731315399252193533635303670613196506345567673032059962998729687982809942878906635850170802789073754688587202605340914169723280489913003012998605522991046723616618278463423006449479030082392902167896675208378794929238450001479854949607276234312092776701083814607716151109307073313178053541448485412722227454430574475269478475318707958419583435103354872554972551667173236235499021783329567185029894540750957051536589705445234410287549558133853928363366891570567418276069588918823236495554335074314244805560300389998553146668138115837444027967521789507429587414092756593801835543601321872534465375067214433711469605894632339193138541033599505468221660879089162972967868360451160477741843719125385715602492952130682448213505283940743998167048316169284491977644324647716443436245127532445814684808082373224504460154627090708150081022948249640566794375512121237452128171955026931488940964161074617648680791784509889997096159999077336828872351566944873328306334627568808266984338145547302591282220512774132183458017493103646606215156268720560153437226211686154649678238038010713752383610731378257453535948490804125189650184603456741501643900251728389795696929693007369797188064282371376857485908421438075727049246322304261924470183686842909529504796595857151922150315252402220808341181034615995036735871558587883682597647924100882031037829966612837899489154264373476475443752401115855614287538973656683789164551667149516608409709760929819717870943694772884978777836233466161525609172246077088439211467840714444479368405055382020302287857532520637188268439595210682680386641535607276044248891514807717559713057984995242602171209967442460213139689018995717457891205923077227694096527643698292504426849662161862778864046068449474052928446304540614237934235751310579663776029825195548478726703082006358689574580677869717804459238994567116417053514210497886576098998109160416148330714930062434199491431816521281560399736513083586833715406731471903421823447683576868555673231820909782516536935760125830138121754812184946615379347676427951935095624077434461998978299470481885190231964703109345782377200040265571750689852859861543503856800530831858291680232785581862570639407393616711175011242300659999729466786751342659640360845051086820040369832714012522524812650184377834162160111970416121386499687331929234718047565185576405064435315279039490241857254729991912877848407784785924328437285173466637091022537232555302915074667574531954929170542044427706265731046059691434170878656860162056993989823157046207746455313930660327918899532228037843760580294617319978753837313654075255483437058669851707927540988656049489473434090339156383094711317066849522253056324563935335453349941570655185431311710245605684469689248495329950588697023398734429739063649617329227708670152401162831746379272049550733683701746881779276185289342812560169700040279994283047185695546027359065410034435620224476636732133012384544907649938008616904973179880379154809456574413703267753008391871236901439764277009132335452724695271281814969122482680832787380866163643050134288351119075035621514545567774312552042363029402899312782304334124893588845285702123438964708211916564739219205925550843314281897305227991192834685811677808555223784497615859839786465073448876583061604116829799426750231796373642940718687756817199979211224739853867568752614206511217888831377260998225261174194503706933451074321786379813608764762114323863962015198651471474376339055373150748355491607936112422341521053674265677882096994640668819260205259131741324895223736096991270692541977264572050102677066380004309893360836099656909164090388488875728268504281547582118964438911580779307580200714165456622814080783358448847367848835843093003188718813345025673651152624237489475071556713428208729559966929337017307502986578778827294966947768053093352720315310598885468532332463448767999775184272894838322505617454497175417182218175789802685476317978536265023050623637963110149767631434964479602793870403180168002248170183175251473273179761814288464120319873251247668111051540987994112980615151495789848113410486789503099538812270375128988530449564427303026833521365421986252950821042592360454169878469201494759037151702774777389313640633671622322993004205814047253893150043066411901419886528546879251852663487245575216243398063101833972790090809410045071466995669849778216830023325149997288778996053172825322995094311891195562071310505958535217218584437255811631378291828495327309251687317886964461999887521808348285293840988510637219250168516433079083399271269993764057950742905721555045127168133922386015242706360524855249986745053700163233269075904193157492649360064659879172353702227562660923308194600124811554932669149742628509883783261453380272689903440892675552077109685355075670805662148098797149419672835913694960233499365775831547210770808618973774535033274874126085061353500361365934102972281013380489645553754698248129720069727095237025580156664546160645733042770818866372283909135327874176979036424130520451404595472618439937843865042780455571037537184570397033743798281504094028148507633217120769011660393538453363743975949943442233273791060275190061501495536295002594150245319742369897240790250893449484355719735625556370811134888544548872252857455401823795755975035730935595627496348894203432075382103966317841439658303571902745147839005632595233004952579902956465913061240308312805093811532458394660470762740418428909101360644411571298135554422879612899656504986391617464745728769954957177150385243013822138187497296770386852528412766654148442157145884102360968741756831814271116695119156823185044572148236431191081925938746284144264009703542514741153381928647110500287563778971682156862555014508004492629703580519503897467793924035850023158136464522311869032014555820490619707778008966512185343355410841237337347537005030707978776666004478485641309767035321826727185955428023966946233371596675416565137834602674044829521346977396281516287779254726454997990732377675935749567738625516814559969252443334129285527593530819417818750788593816398848338751844883327800210547453601869103224637272319585102739298751905172346314119406416698447398289554909540314709509917908791663581791725165107349024913270711982011248559944828075913295382907967409054792498242016400751729688833775509504411781174221166031298906567653498685132913366553829754347867539843503943409663613112632755172425209391183073903584159553075938880620132149086896171502280233920689920425710867068818622374320096301768343858056320567261983201972081887264191925473177103257753901414195069999746046292088706982132537216776919119333752235856778939034383097665702265728435285667790970625875230815543485898438253724314449113328421629640273168171757856907662437856557141451506837314269168640055864648413062846039110591211100437724846632839362987610455322437015996714162227860283323349980613749316905130507325389615999170239083417004568509559595739619776404482764963672411380855534596753250109151489285972629424315549373677577997447587864461745435191631817571123891393847209687070675031569627175145744993990131108617402173768614724670150408802655293606238318379466667307172282702977481146062578162926838172936434156572675742720464437631035065583450960429820467309652418694359087846934737343938242508110962781623156119404702518042969167994847278377742898886556693458804825847357604161779987120286865310811821444219030031073171339593903671004587678853040667823238702918849355106693646927141984628772279403139588890566746414867846901361580454540303195718346035775584590589708835015333891198133183189142870116460554690082694387033932218750666511886289628497293667836715657229854669346539541949496433461535081550616071398198811857255867710791560619893250256860787947185362368363998315029373190968327415191930916900987062810330593700249629426554571152094516336433766970422255025548470538879693538048456303328410411534979344309978699377132688666030894775933034823077164875788244447378772412210421441237930699333691445106294518265357567321783313823167643420862794087798646164772445523672793233943838573892238428451937614275145566685226369028029249020073595447211593211966206432271872093866283135268752942777459347140823403195774351674612407852272513025223706883372936240805174222517119692780386529672620397135809164776736573218592934734125070930672065626203371031832986555301643201688855098069938457193235229073796421416597987457488478137563256872055272574656623830197753920009747141192951820175379040147850760352037200737293993627978851991776997369105636261466317780074961463168514773802161522976467105231413169832105425327556755242618231054099566160396999864606692443214430371188283974014913298579805302567422786570467643821724806744349315041047761974958449503617291175987693590653695632196089356612027372448388565942870615407559038823149748264876342094313628326506971249374011232527582876528431816173327890074655690087739508428996111762458519005522494849413315777125104961780030339326512507434917139142270705663024347405835928998652241435592414818600585324048416966023346969976269415439196820637042624810692436596859645457360531955077816905731696445498355893554651819323320843829846260179706876799273238861219582165670043273807453090652151907381662564808682220350844777084629619234229443457922847148182914343997568794047291156316303619120167982308601546280454599111778742776659900581096437645581989887777987794671628451694220686117786880890678583595379994641876667562113721111477322928926576757452839763484524085366771289698210799320899469362840286062582506783043751355584613206254072921044123464990663697815155761124349153123616744325647952911816735277251933051781862919818987236491780407533887711507315245622033586628738030979130857308182631621198438297449179910794247874856499225877303873115255621632538390458606340626710173871823096153765550310616760403621267030840616442289547394039891415389746070222227005833047524800639063396001565331238492572811728148103079602206486468371819461626628516376564057803318663107240102742926788766486742544761985612591140751811493943079736420628063493522297827594931660918651543300485428806211845598261724120355527427835115566490452977679906494786337842301568695251211935085107963171271139794853235604539190128687680875575216951932299751101023958738140041149600064226402352676332725829889724612694968895273074711958724037752966642544782704060927778502389394260889411927009014478063434834481962015064351548803061343117886459649430381309244055605510598918465357472361086383572190329574580757290323911474875020210511945689407288992531851874074582706796879098201903066675198863504412714058283844071099537864023128605436844030162125919309215778829933724187859129613941734396854068085435156272389875637825430291152152848485918419702709844706389119150692618903976965456632107126431144872974567445303436516343967435483913051516314997743818652845766883028086977316129854338007224486159560465774581229817259973676719539287468216691553318955473008835850398360819203928169079780762203852865161400779053411029869851863911075958704697240096196617603944950285429473937960541887887964465501371783925995001025183185526034479152646846901625571605595419892172493012601184609113577307133476407053703070129078518771309106307593622476394644367336271935749036260166188807264063425568860578007064157287920202560445249123442669967956701004492277363517363145956570640367007169573884309882646473299858025326030882731269522719331707937276221162820999855648356510494923800092427904543577407537128288909176861504717765594515247341490257710614842221460495054941136602812297015834595610650914969373336794360190438070002535741025004125925733408673087543284254799951002513048408249440921428033268552103832736977368660077854695616821016477172772385203234823536355950092836991061654221379006149261778511025537850425258907644606855432535088688709579329804066073844939186838514495958947217364564587515752305243865805429474454190587807374172387059187285812566976233408931488328194459406261170777043450965293096409198625138049769226269347258762294842120645839787901882454473017302008367764112370451744684734374636617857911529417144598788280090688643927991597321146721510185950724453726451102865349573059170753095863313996255745500154779223694295938789179642179568656657813374143301485921206339317044831769917066195436296063937076559938418962196750481245164019708209744889849698192127105744897026843681095132577933378106564795767302559610513882107777558029966809182856468403766354886504905352290560326984931154641231919323647981553609564030162031390429445417489634340333214549214072319000981776660306038166397281748890080798800510091013983068538473027405949185449471850452030332022636140082289057797767343051199505360391568109035898136914858005519859247853087653274136283108063063871734312370829261420204215370857846824120881065313198274749760307650587740725935281752607696361847996891311737025694683550730835656638677164636108746300480588027661561895051221901153975200384187899597087668208287724662091277378067761501340146206720151780946891370656250109554049523902828218740335876945200685827254031914155397269033659942941651488581270206907629741255907129889704171591060928614546341597135940462450570337105284101429526357910112663980735096426575745133509890780321109661942486109257461089724786631000708224472665248866160233570410955993787714181618744983835488444516545192890315011686707786964461092051616175970723686647999001787185211645921413718613768256997361493765511101997785264096300078480003879076455897697785307827024372315640901135073230313791123134291455372683887649672268009921762302014758533331893693671732687118811213259147235534585982388963724139365895578665533872777190916188270554022292742033165172032959875378287205763200754796821691899620586160935733418113062285049068555121481900923073583380397940299326660165462826798704895176355358114306392013430906223822560164864547103371735955227755843079097566318670991467333909254710040820118488866241449437368070723053187966480775885857082842095710860226529516638570914106615946936783637233242735720959018686903440607634502105849834327615689300146702352303974948652383979082918189022947181256012246255030266464288832415086052827355186500349275299292647894522947322840118429091258030597441922644768820842806940163621105514654522526863205807516169369894507423312174160319236588369281582242303187646903295080130958600282719988416500571636593444122510167147651377881180256686305448636452590291923473304962000389314194071343400211651765190418654798969686651452884872913635991599965043753336419887299680576469482207071836634509359147138605001622184346551599529505856433942450414281361708934807479701796011275425227687093562711635553155941446041754741134593465125280091520630117963288476340347619771042754300995266304931906102336873794932274619349364205313986362636695401336013365611972699347849903963031780841865028753933107216946518180675512629481057920350070678428732437991851036809458436056867908724766030981502739026326823903551434092773464389267080827134758301101173283280356902221667553232463302853841142602371497321431645962658409448545686515640618177435083242342706742860648042985316178958048345372580454098708105126563941248533227364952931463065532453339287825995521610691077483841991589280372532550323926605948307919281698368453632590421211494046539796151857425976263908857732351520045858977449934432730068912751145898754935507764821051087311448126848502798280928619655030111779623933185737093718553627569621484963024248504361298135069304034204850521719706785415061373847844744387873241138974686457892998932350161904059264556928364968743986472701624029427241277244468085668518942260341215524982225468983748299539777642970352890667123125768112321116365039313074348034134406330389891269894954221608482658013226981504901210326610562030156903715135318730641229207794868676089645377429753707112639884732475011030632246689033311903829137476515261149736440294619384907063478384202686399159756138248967493604764767290499434777864924336665265862713519975135852285010611604314205483619998888670788831389218832461576046985936640617536031956409977509521498652954450255098541967147454743784032524390232117015774133062958206556895832224353636906753847499654000825408122064009264350840939703951229681494337883180617563862686151615170733208416061276995969379922865090119497498479318607219086741851225299699014339539942264597170831823206057773821778939701199032707554755802675292922905065148746852721534527086575466932889340336393784810181652556481744455716548629063866666433302255800684746862036726580446020364598175256445554389681783314440364479946320761934428895604007417593361507273157758165669394508184785559386500665839635432996760516853549632097721632151485798710936132212438575220058099917591627034074663681714390249791360370946320042574954192698329412166614678072249978800425548932705559650047154122695852249630869967596508161690294492533787431801381443187562934991770946305340166043103675014066230334731716458968278460754380334721270005991530619384458230866463287327904765786050656088348758288659762358371147824511291554576584110675319196141075375254504255332661738697301603296650660954199408860778463714198880458151109205675098618629352030023374417774802676902164215313267575146464444691774613538459425689760670295281332200976037356962163762953828084377988242260659663591110848226349472087194828203980441809269710209790204632413912674083585517192154435571613808113175576454395676507928296754785779322103791506739759887907070130796608993610876485279797189608919448152650624567635422469897104663764089369959240656360744552122453732024045894352979344150523652455239648864589018431357767259821364705807200043441632138885802603344837687366986151605102911332422132629762662838974953452603238565971760858925836140413964120331521192826294818203060723189739736189997234073996954297043424542234950586010923970948510237881743589228225535185965087049859181096471815624459703058855770144424696159138093092855508893003058596176475638611628361146088918869426165246292345246120491619284354485807225900387734440719855019282382169115552774857883513966444298764789025792915501659578157544819183753564137683458976208668178089235622486256730522568679431205442136465747013592553250617692693411498037183557231295173893575208639805343847732258417093532156790510359442920190233462209763972571927599667551185784916868236252287381373547150765872641812476910409733749750570765141914793029367145431331795431108390531986312313816334636721321103727390193039965107980080713041700378435359946291083153182952917450407744103063475535148694219838723909880276201473293391101905164918126479159159357791587475003936592995635518320672418992615114572925461511064680919891083598955574690489796935839744859056771709139708588006341950409084735076152561523923886920248898769514186125796622289061503623355131083159950294125733188625810991596549570552403972878764394543467824035382246848710148757826211249578944472759636122479511630522748588173954070219006130140541316009571257458380194960807605723754886912387914292722463974766752237092825308253438661148817250969294729240446320948595408826209201612323351525451688653350763703647411580067728749418687869704742215960974377016843438822385232387692157245476939823031150073058800233491302693759690158690474849163067333708040616516504624148903691762733716022594280053918285959315511349409746687725294914172337712834924691232929792552196322917741138966956908207878013632625142589779976267620968264104523992034711862408054984516376023680611499768028694083859675738535267772562761024347949848966372655840216480593892506838959909939696211580832852994996010106926146609626194894569981681000891833225122293929564930660107975568711821268902037567567978070597173408828291403138991925965976740432725736263410326653521057567550778996814499944963089799697126390766208395999396236006071408275775876275350888188537032504261686032783559192607572143524409914790009391522538348781556899715816681742038313268722192205926158812784141047141230694951412737602587967579255002854034318474312078858964156117730697605392674084828997360295474643907678943396184928845357425392012460699858366212798090409554163232758188083138210891822483628673052272310665391647667557326413050375276215156192893791875941496269722454916405028088287523339684698144291450630373257363866435325583769835426849937299258864126206213629706818716553407973838686690029501829612316127567073458084274714806475929187305939375222084671531993210741299820311065945384933328323010030162349650220154435196759146617824877536335516310805703587192332513789624051321149766454995246162392274701697762814373319416831787695482382368595451040580495719272098835196297841473442727015223517715661806227520786489686911061785934409611269698945594856959495292184738272411167725813390070356167918642239723887940581889947905882275833420997394235186793455397200560962181950935972149444865314891547431512316296510698043723406250877178440847118861283305784907533814971560690730417071230057925671117205238075698920696927760205379149295344286298877611549206205336007537576236472466011399806947495128024696580599603309312712349585777289996250064519996833785425210758676378149153010468767425650347627308673454091682157721538820616412548415557225906861562864204894939429683631756200586820459473772582272435417574109484673470839954686062220086568731003009351191391742236078231578779704449495427465472306262432980651986767842438514559157953294104592781040880255703535098849056769204456831590057321753706578731282022122479145064767850287450516825499486059061799150102884852890072921795060070644979199167087332082482765419990332120632481649207454418186936153030752501832739586573443846405176879118801259419423788779220990804094376683510477623786724450944773109930776393104893577803155717308745472679660939217912934622175231217228848461391463808580015715524555147003244607879528017172087810692925108260761619165537607836706954293398185966758623549737826629235637579211175703322035665542282050664278304986315545884631503535480090455348456968476322597714279262690228372881566619711815758842585200158988396006597987456263195257415234522018963875862351739504874763953471987763611890065614394175410773857133942960085895035413388521464906601359959027809077453138566663154741777950646253235007958730525723618668759650309101126137973731814082311705158573941511749893517313218024950789083354958183216344186058946104562813497847138913463982149981832581979786802702100923020638844563725819325809127597062956233595097591677921479222320770724286945163458323198834755287224915228556995059047910077814651090756723145871742901216928543813627779724688448474107577134143547682714731584909127236494975060468535218312763748170110628245610951948431346111600438671893832178207540974890216545829977608523658284093954040503636445989007412863065661673637179839217069903817114188788577632922164983529685430070480046822691930755920921947649633342079917182350053284984971238391679593762293103928258893860085465548332930692173687083679342962567217866135518843954666107928472819541111027919298941443299776124516726671178395198168702685949508955508623729951632523752104338883491507165759305352743175609099697745102568894250021277681394671781913987726613818684878557045974041839862041264094568565547152753881536103293553040375668741758036097757819220362692549844943400977379946548876625458408232658214690454387282561889873248741226694582686997071358660995020626074226237946205685838107046679616261591644422403674345652787071853250785692640242977864354753144740733444799352650438713653878083265053536323000796150153800433311145509850855014393143912665287570654653045043298756173747058707572674548049431056933551931265324882975758602073188363204508922275429093462440710973533414864635689265274122224028060565423455642382527519869157625196121298688160196020386178010594378182735987611881996310801860706479741784734329596763098119562519666455784258264652635353258348493662742149312992601673619299696768550546571113975465982037341274520177081646791172287844115243890546552328433207194771849137751130133549393647806691095664004466718810198379991348665333399849792031402216788171638566493640318747171044486542095428900371512955588789777710250156126923907398031806421887759779669696180710244876634099925674357177857708593296703012728395617081008904166005637870343136861247682663574548058463898333373731207738009759387796298914976867017839861824102974072251957619001494796874276699016698756294168488078889079481926792572424686984856836279915340723709317087517205811452188089993504631780278962611271977874440177775659863508999797147688791750092145003600194332256274122395038764354488772033381879829817458293597847077964623575874878826473900521519439341884251791281931205261521847158971451262433843949392683002654657730277859294765383485182529270285045610007830545791045428309685416653976993237159248181125169826592969683582406589333560487192019642164969058131888225372701708853337041989375497806002800653792421947808961010529250870564608937450530325682196493076125842085499106822971503921530933354699294437582516206094425141544171432988522087449316523660418828174966118620747923971824237306006053986332338673873209866536573397767909855470324652102351994455222699009364725577055613862269217482949200566278866270136576144574370875158749196309537897955293716834001382290775704232173253737108389195563802225401103983318937146739769109678788554190376606425369367777263756860010738320491309743228625316210613062202830798138557975967181715031540382970965601244062315299469405221066652176736294356940784360836969701701729056866177599220804483055998196045438365956166998243379802125322010875247284825529913676194081608308639787644996416795045122714339595639567808552239131184148959471283882946449223944754365324301481966848822603056737530260243307781941433537004860053664555948202385857246718648155791185131598433838883798570416990904185385723415441314484016278852767868542363907114275949566058003109468348890356675638417239981758346468955018097646289108988525508715265663476272115509528731581511315994723585264796691792250507349535184031916289133684997299046552853333808077319386361692978254214709196413776809142764511790799686616660319569065841494443168681948325768450703721786681461096809556828315024047958534467060130863643985011314648781722202498253166697560398479388613447246844252922054305172914338471705194730010902366237502141255995912589687028249763560369195174382162323747718571682439941516964705160921571082077111942592586136405274428024319517383333644110611571623200071805220892890621132098030504091150557987832336140635536252879103364158953347822167277919748476172723884522981918660954163109457786909892956260675964020920184726278243991484976424595181791455749091652452684612473667134691120553415934048212336487708510994461835131617975721111424121860364548296826278544008807270368195636423102840915609438678235964884842008185816927553416961078018322953435432925765173286081758442197534128448992753315856871632426014703029675036435771447060611005972306133714763917086028763289281996853814798334901851625165217452708378724607777555566212603348019529396247413695912488633210706547871799765064886653262488507964560451844332880503641701334222102692526158712023041337529795737932416803395565177813553162907504712627246190610044576492707696613439160195353248959129551184963463731080130979088048839491429814329025924298199077966822699294326311021646343034553066180123387747715426168309402360152181750325674768414574635802999565589886426111648852629314104800605092185039073161447198739221581687629427390563273373837236076958530408983239101722635249173101967727550564691258487247517900143037157479809327311537881467976679055024275707118308631901929192414323873333693566688325003284933721986191649853625878864877627395323638899557612941832394490954375452352688519526535392824790302665380863065850917938195400290910549237869733091513804319689640835739308665444827265481078726976141281283209193113423287692778177066212031858723912421453346503606414401685741239158232206415723503750458847654664317791410394711251444213576270964710376666130220706654393277721714490831951330679244126241501543832642450452401406752372008261285346213895498678640685500671106711199367242997298249668847653512034222417114962536509243233563344841732828724133240274698294103386485465711272920760265402311119087207403042407057318358260934267549358275150187420414801560357267249039901685644068825334813054662421963824212169923276911010172996951379475228524306377901554297568099587826979946843015777460360083981318605836636292343092945528363686816354479293772878818004797203575877487296990186032102992970870082197220628825386214799436727812088098925997789275802797623811567182093442338975934066563990540421699804292575942305501137555670826198553746780511277485547998994951674824188558483943454567753674919520934087072236521267357260187106091930841956959934529368108729892394213664711308092300006185713514804675683531298476814351055158174629598904985800367744572478282509644138612842873112845292820324661865876649821504306610078796736249149576224276264918701185372234456540737218664380419159855164202154109198790984009901292810582460734834146644010484075179607646854752687656644642076336045416993174733630107087413702670105536404773917855944388349214994295693726372287499508931763883457917767544257544247088637431399748902725203901771954990618041640830014517951428437192072203939246520917522970889983222322341072094951181422881777756723377528122163867738432891528966034470050174907726347392478271581950112676285441518819032042822206210121949150680418259455457166837346026983809708607076187030698979208642686207232196343137716719623467448758509517379312752948275493063346109326286654142785536872957404669513048948242355256913953049254296973129591755519046928951952212854305838041507149369956757307234962440295112935940471934120423468758544317772368640725972429771733438596174608363891118736931101330878644453807993190778136196370951063266125256200933838780478963765715110776610600859404263116596836370932758374799559026774962124415820380297206096048183707611692451958997837441876963320781839387963437217041310756893463404372396965740721051424906673314278897486290461160127105396956383026629289568678875466037174770662789002936569155917404869405404604038425908049047019759663581308225910114436102402017196067192212492786153210149460857021821277329912032681270669828942696860649675642922992523580327270698262925543320568913005368728179476170805803942899531805729973661675003025137164858819783394850329921331024313697520014080754938658753873061127287041294412859888494420848737887500078139935873592038840615854549068069148038279767551037554301749855650232645202001036613485920490803186040763861298979762676733333087595102390251882445957166004204961869019329955810193086256481525466785928032777863865779763034069832857714407577438286919333462176544601926244980733735013314826780295466369747731012473535207839947570503281993172271087074484215796640587079135294490446171806384896254794433590651872020246435324094002841881662514480120270675486721455170069968719914769251273479940801956414004050863239411695551505776209415579766825675397635301722437638998018126497584259070398455714952321640478695606273822294495657150239410381057614926822023545002836711489869255306266414110369751403292292527187079372769497779562517201996778892280551425764766905731932668317798376770518051450000433810819754050754730216230035179374675786179453198796035315473339953961104508344285686990005786166579142717690102440308235317319079520322802836131507975885079850588253574329772164242685799639667417585805716665283635251618448906057128138689095053888720412484425066964130219165462640983353348264393039242490433178089815755963948471708373741459613580465116916427230710317782565402537810961975358656900169932526336289221865703915399225928920702670185369862640065886469906892329557548746104164616459605583389175856597329953822053572366593370415966322773295556349673992260054084682072182226092766433637508031981738063663169622479677896905163464356718696187372911002117471973694817576214635707874433469035915087686432149142855678793050483494045033173997845565188492388489796234663622255201777672848495385066051164897908658374803054534559382524452644529183740787070945176436902191749832473164946857918814894299725848308213588539221620339071681568548474655678659261171311357414617203838380671280763986264250440442931243052554772036143791557011851291977139994807638320982870257185948418728465062814318355980501693103933802681300606944605796438313274021917664092720651581507267470632096013308807951785419038190261432661052155854602223741663120584972808218680293709011337433948467085448857325805835334450464512187793720464365694454060157431404015814484970719363364231519248673089644401457850367748624258838665653108982958911907970687429226411667826004138022654214585734514962316463444266164362250522237035613680237644085943647607620117527840087284899060875171621013415219155886331148606869148093302139235194911668402042988560884571610592537738811272843745457466643274701195778607301770959797746636843136850176014072410776220107337818760455038502878981230915783297494526285603695792502873519193308938247800848103368848078716882267668396160127994525286003794216405903648232754963011708903532502248146132204977313715685398484181948933386395156184562296375788973649595643040026557829784692278050459747918509278521940607317234488478916697904552401653039967125099346071457521448023729107501098956268611344151937954410131321494739349511211821917525403097101060303038629178946173415555190606151667943908886752115641374944760852176493726198356017472765492262521872600512167838427459665047883491006494983431927236754139964739721659397502200866650088936791844144328293801648521560372985290716415210788834083641862555036266033817315388240242526179958130573048159375130827554899873949442806509162968892774066080068855636248480946964826197078862384777271325030932473503730337304028147978383610359411096751714479341109585027845996634538799503671348692040599316832186961475712700069608344299352973196203536342099828428428379864130477445752229590384652507144234496838883165948655285643682387640205631228099806470911067957070908674240861913171170001616531951334877803353633756900120445511516770936543297455011177183433450081455519928406709960301609422972524230943394426862425931432728939428148783607325674810380190602236311906438264435183772361074103938588011102437191520368402935253016229983122078752629798123861417128737711722056449000013800873139308854279703158531162328888459174264738837636235670543764426534440601857118396552910029704533751101695968740192347883006173574611823793807030326612603709956904636547179193314367533082975452718190827545382309906785642943117692618674605003433941821532492823389678057711623014439873697158474965281155369432197846890935864193189115204830096786473229833680533708978904913096746721410261427374140510810647188098409961321131430043002531188310482959883055772198933608375402868809572757702960738733190703007558494314835267804985914696959340600706941538417417361370784750418471476066153639173244768301601114633864211648931442494669363347317777322064166566337386847428259715332774596013157751603963852446442336129023573339651325242127223574618314352818451835732508486177309860350610175413686153267696490015121732583951354273398171939077034863469473341801710566200569798255348937967807868806766893796666133660481023998856443327462590569225304536049299770002983947459085897511800680302487868136639943749667439191711613888379657599241015905344384948724951705111629441470370535981223581837619559673595217058303886301245042741241352602961672220439378496370734477834141772563413318008194802780508537323870754223641531433132294636081470239649313039225254353801689365934961933355018053810081366913913834410216592309759855794279439729087346163398176048063943586630608361509193619194067568998594012451865431048523480659101441300715891614159772999665793314440674990216580770672270812793919720697562304882102341455313975657083440356005129325000577108746550989372198674449330705420418023753051890780613836909905162925126860319316641851216376542402666034329492088316388774907372449567552410096601036500090345104833679563156760423336543310091829707437641225917598301227171036616954883003178242769501971966733127377095530303864893753805779712551406273984347317121112987611237946011666052219606666528276867061761851731361666041418311475512996795429779713379991411098720319966227053294607151566430440396567339971756474864797408334184599074720152192137514277667865731735801830034176027007297620058634599560780442348675741523292928330825536190307883105138571459874396242685770494137121569398589438437472735623987209621343248705351462420188669263221189767855787606557938366490196170769610534269697723423650963377788590053771968156865326922910104630677516865981434978242530975814841861840086838518062055852170123438074793624953409833199808043531206229655470405078637831754715055595587855902772513466074757905364929678271336062082172007862387512848143690910530664644510131937504329505285778037999894955448723430711635473011783330732325458448516577533738839678265114283896908013971927658810880819123263523827911308092771563955771032942039469726145858317180813710986711800117595676443774674158995647744050194305923363253648092104030902780285740972483495643804312709523318721865082828808923280709171411854374413232312567899862188715092392382839599569689081946722875743427701199473390507362292781367758828299816484189652046652932478939604023613021191871863152167518845991959877110667631322874124181671745002130113773648605970190836407275212889649272535996804310393117502305567046228031900138999085214494072383814709553184225892811782586745483359019967062819437431438400702589515938262170837014319698774468723593975336722305572271044551622595315599952877111901558995538099587236447015597350006021345126645212883072181039105599086195046059035026221768905136608314480254865298218331768715508180537907681908615084173970868438483553266675239431819501581496741382925056357484487653386116990370530663643671667959405196027512830893377340348608719022573641079636749144874646781511910810366301715713189966101673491461121734650921151851523039560697049396631530938896615129118314837175500865019599927991970686060098361117585960110013749676262362738946930721311702313228409480679801273057340982956829792385757642090069230215768453002728055871791015034191237091079764582717236363134778097751991398091077635711397061061721549365852553393218100389947400753486911037742195728112080201383434104488363541022183231813836439185348433810893894511290444124567444864313655378392621883972099875985476470839275530930234708801737235413655154173809741384926933570158321128338640693823117765320699122634200521209175298307131822934182923973493822835916075155187271820379560299267716501717829078797369793415686134846209199454109710211206238754132950347322056890563620877527154317960627794951527625745199800750735418265212056309925309387261353873573737290474409730159796427568415006657985403795792349193126321193637430171545814564969558252407662716461181151100128488984969015344916883509964064637270134095656537281387932934973445787864522962651055358040154804560956096858888393842391750208644685457576019661137787707442176909750402340625887578038897048034545944179322317587794256077183364342448939077621915159420269788715013958630031982242653943091520415261076490391870334330630056315579773743942533886233474782232896807583458764791300427283538570975446235606641782224831345929301098392383706346642932448764356255140657195156965912634831894706394516668137442444187482129229193090905732038222868527616170643550579326260274311550831266511179949119732200033727580472819499026681004631043327080691711496717748632465711499777141877467585461760644966185517973436176751248315654709713981190632724477860927804933478270160798582385360165919758270442964565747740817535475464840873938505934293935384308811397864643493530421387812860213689804445702482917137720745405294503193892109516569129940432306383273715753717748522162470296134824335406831657705302881091118979561100581574095092309694865022410245978610231962835117721598148292220689281523626486693269003603180676484526122146028260251405563138217146932096641719473167266260315101986597945773659634824176165853884544305443158470270483929093202470954602164600974751281997729973339249703154467170639803820910086884767327758179480384915544890247273060293887555615545091965614131169640488247709899009801160392763392723713724465822448676232156359967938007465103151077221271222046399059544442909156135313848698189197594816498555334434645483102922571566606197271270104221506451112198427602786842683467014463271202048491278931831394479232550889337108396795134174831152607139597105697789418774776624125415209675047245090285279319035442721100067177149611408557153090008614893353946772812225992419105713070631328519035008441865167287054056284655646222095138574558321909220208164893421371829358469141194460437998986114977213860724076880654640897173035330689251098845894961550246804856980323525764514074108001880316694823640193877863671948729464229716147627964126249799273900818376774995088855077639061668283113563954117866083584672403456085006012760207589051301491648250696689131066868421876041430670736366776825538973036196055392179583391776720344545716746765919658320390588549431394640922727919158382054099378035804354992317132012015688673739094063039094652946862430067703639394109098212111795337244404394659118911335543762700564039246356870079572014927156399330897571104789354703990538768561617614075443558382549701676312554703385305525993379631816871382033149483690063503340149261992895222776681096855812134534498122079398165563317003834176842006344230316750334119738116317407112126951683631346287667060755275365958939729477601122943804049873449716555438488421970467132801496819773519741830372721264398152706860234457822462872978537769649296511952527510434038664245903667882313031165471973280438078158372750750728059889238903160498859193191671247911363010731057824160960304303067376249209030515502787576051448885336958932795743542408195828856812098960419121658737569191659214486048331277930556702184660795953490414599021291198577173463408761894410223589502330551896526387230486728119952719348007139528356392684017969336418868006833678127323041246869933906739267667436292751000449721891554788297075870014537831455488271908279084558771793835687631416763903823593633562330910172498713834258830892904323189078981354266543400045412223254244082842808169128873217028188831114296440314886099343961281626467432818752159285161911093472999892220031444051765265525381249315532310570963486112909535332506014721644525228624423396524116545559795804624330794787636756095943703524420853193469401929305307484085800204944199424493229424022257721908053627864468460753889842439795295369007324407458302012870340641198444432443383537215340262893600786275325816566167995408038083048458463080820870491050304131065318854454124098068746332971942959115049908145457107785064966947701156752593047799375671314722882566497856551084956138200206531974269597814265417030717566912071577142265113321875753585922676871672739234436398345031334516451682436494806390469280166931111189530739010511749705324543711024678073119279848152313296690925601129888542535502603139951095049394325427857244584435780599848956944767752895537221651681515749164889514902103520790081495160127962428347395820489887339818933140619901762388024063920716009589119187237119287654238897411552750177488689593363449592498682944965159907742222251695621003794482200511277839514931836177864894500550121705240131807727650590481853982995779189901317463022286654548348519186671525568723818801635144077316733718549756457709947882132143594198617923619723952575199614347395523566463318236083755634551612924240846574268912745926818562579833369806504652118087039358886369225217106206637916281351660123197739583263614224552112321817173797968796838305585921784598666204271775367142396613903609273197126121147369795256406222670301814082447879429489578622239401127210257385129353001241538860674115684166111963463120017703435279520694133240196311697151167634082593997904013423988652055620674595443382103275914172176785215717189293845282404798986821268745334049567624113368758046933752173663185796471465808836055515077992134126269965013624742109323742678318736075820616004593717347225410378175424854418310579868782460791864481291332828619931620888218963762671338430387932962111544929100816733653037759661044346775255867421997686796566611360322937053419309021083035579847672341851268929483808554963093101442661376967416095108381033853616244565301291423092754709108802309990205880466475042982243847897632054027116871492849993185223870607366641321303422397336673223799498539391590292068706617222425467925654833668545036560339643816836835490668141173154274289393647202770581303062294428792975433568122539127843227551567445868983072490660338797846850091489519516266827526517196631705857767107901986441346891960681307604958303028633520129778954405335345231411638070427885745206645605382163545227105711889352015129283243493703395233684673830787331740797526657307694103063656288182937040309902409058168019287378052077265562525235444520026333110563196072812296524189959440215125992984334862859638031613909284449469157381913628514532659510262745853462632503485044681457332632126588203922456423563652085545871555078900739629119050941737474875923056425410924435124800946933444424956531370032972317606247647235529403340758118787970106530502808684845437475243052500737763693802371116300718535204148964598961528865217398589981611875450314985155738729567817700362346416333984018776821882439156406597171410863129680657816001998683311109120125106199202667612272914404312922688565937622052936988867496581700378318843906582774389629637187621144499982271547021340243707455911801468574437715578931752760216960645908739369120042492136455353799987972303945449015861993600881427073285114354851178152245389096101926011773328559231714220495220381058848679301383372006303651962065131054748415633354621094747434507741511084214064828353011067563749036193873349561691896719363058628705302728155068849095160790683322057961622650718978695004212317560859718975617000971401266316476609507701596085114759488178881604633344949631613458704052047996190831157994736704070622536969265041616363503270384931470434425747707655158114594246605872035394215411543882724765062706889026435504908418378907551127613782241650845940357634985677410556568228851632482301667996916707717203369835556013236680218067083598490270671677733143982454366832810183369344158651602797753516776504191865027559333810781374756763453181086721034866856389617093131969384882834078385855822866472584376670139094083402530122702519978507103229304745693805609106246162676944765991123736819002081551418389754240014771739679441553779243310317936044737884453022074217755140670707577061077050869774043342092548951396554426835728017355049379709378843959987836813344397541372594578679107830820113378734809291685920160397167242069360975242544190175791996197622533507169781870127967412730201192115842981710659900194903606309862954533659884632181893177121204053758219875572450855714249506192052800862729414633311681324224541595972691647795724717742197329030801767843321131243165224043422822770997712979059761036454495504499752196113399023606826872018127253511638630740109398859693624577726187197296117416939008980820730465316297900396962517584772032793943864934912845709111291078549904563065761914333360742188383272620321880381686367238919485417030433128686718362371854229627124276377689156665075170855953137761642921444022456071050628614612520422622153012998446649274888833010331234054307602043676182299469010201446606965744617664524943847534350251869165692889278656272180011601795989169247900638198041010741521160821699217027976331437665302180438238574426532045747078635502533330915054962133397333344601988692251538103261284543055548124466898060911091721280200542197088930180630349382034510432402353313597857379672222602502911024995563424165442556252915851395766358103438765279408996560202622047422760719796396455392882191141765522634030545644721317605122598424945011730251577922217002495425780094034158629583988985805709068816072832145662038765112701554136153538294364596420562601075218496789172816106907350939953443851939001012107127943476812199136744879711432286793699189738277303451398916152863599986507973644719018877012092454025404924094665488946433708948775704285751487931955365008301242464106161298936646673997458101234031121644920149482784458303012304210198420548860776266534194184604487477665785584799640965633062124974130457292672282489867874521772237811002466987565910770683699464825693250088067296953041253005255082440416393815971005764956748231461884082948614522425000674498466534353816923639850934478777241519202361794110665864894620372882498538584521113344650179806403257020529333841585754796498099700306028401402147252008259573188443608680595825815606014941583744652960945619690291360319050864068444016473349837488615262743595826554759665452159644213402363090238338947218232569571605459678284664878115776446414919124040922731647259967119895862772986460389441109523318024756460069670780407751830734163512411783039370990556391556158232317907235245433058354276232527712502993415106235039743854568817756426325060745654235574597735274145608150108710551847054583952545891458959466262854643590980554303566522419022848640895359545480018056279609898337740148752035880541434340808980088556559941089347006044433057507328613156566837297843474433252322257613819175790375480287992556847956969684014591545903375476615862920187482044909265181526979184914568801793139718173060354294251838387876269081019528507483292147063450372751144400239915294543445995092178957265782523232940607632377387399950020552606073033283170907690878285145299285025523803481490018727262397251025320138987398850541072226585675892189799286046570067912836607861290294106971722216912247286075996318390631127353641354663970528687959652218924081290810718693551781262006632438496007573167432113465949164525731924924914037358769740448923725141593956689989874968082509584155964336435975816239609678161058087702935814536799004686362141808332709832715343240175242677143682384371944794782565680027400879105852148215701225765880841631294163926716409403981417071023261005018722281592877621817821465158121696330539601780478597297820877115864939700597134027857937198819865016761722480495753623765430740636336242798510072733082497281005060611732222480158812657875544630816096670988531760357242508299088654978187234723528122137355853411381765252629693454086142841201236483848384424195076714099957649549651800860093326650957761688259205020107562510290279271163178303341732277147912501326898759453973267849998843111715205608007812056229882881306029299533861036174634319993596283810532727663777974020944657798375381098734110696840052244263185051943092562171145143360425116614805861036558248440257448200625894737732416089011802564546640308740643999542335541858715655868902371559130854753697592124637009225270218994042189891904308828614691444428972477119191632887087941890938539040847391851939282221440791113236430742195083807712295415149521447221323734483931739353175552057653422499458944037481493058667462397059823484486511932297677228513837192137868482541412606292829449885672879472338471068461028078043423206288854939320892704860873506468883717494386166119124509311813697294286909589334094792628843460228599115080439707155225655504371599200999960862821846675935034365485603489972272551987051554408811236521874117435382178923722968372753496108337251449845268547428344743798002667851553241771855084412394415000841008080496574887452482718883063572790246894035254585331061614307923060791663117138836011033244253597746425553129544467978127010333959776995909123044541205286146517501593311532600509086108235736177270495036145766097841645174107528608225676968796991167160063883036611847573171911066353811741489744120739888925091623990104136047040556127992601430837605797282958707441088683234841132101389251984306834288604959857363471379282122191254291576319426741170827942989449623987053094863352596206723055099403630274157614554597198881296622304596648617684294888852966773960114788015743942499048376195752338656414676551918518182449745863381226232185877412402093459686549963343934975727972215058068960744029481375868491577468763559466404874781079888232901944748011406366172635751250022385941100066777659444397612940349243424187849882386991636359156841677815816895308303769652959771158490212493990759724499505689248760593823295750642164163310096304702656527222903673499944152324204638721674717982068420061783072003099142348308404044188531344790200680454212806576959590230468390951625875666048515488553181491620730385189578170794956050962359159145083854739709679919523945530217110220048845699899139468603019271044286543720080985635822957071317037472980047256089341074701839575895669403939421671563560240856227431906255756126136423537218629907987653897524881514650072729615042175397918368595178993436033839154082151688782470843714454370440871771900866734356804187065954800096869964390334603001451523792024702847029663126912910041561782721642557969226544650253064853020212302434191719711784810129475088243111271358517013562978414150377604633927712876976540117139654489334737495180167866138336778415119597474294018841780599580655515250825022037743491660298754985856037092035702443915597450202318571346103861469365622402666706858000013613351482464541543913589546516179392460312844058452684797208048606256535344536920521098127362969853923509141849494802104251513167722762069371949473197744950710514590396503283685351641437283739226923383557944446381888889365495214846201573661898359466818677710620486499561033566751419886220603809693417776063925031535892758601171002317950536268171236786819177779404885501799747303204919458906214295740211500909999413287787716328334855291709222415030792482631399186046354180537035498889856711610410806074644633112994978854965183231591524475779561920771108667307786043381937148172334492892413811334703435028803525921654708199289040548986506553869346899380402785666098943808935757010197014581006025713984796017253369229231544142306131614200878232046851287997505789620543884202185577095247098897171142747685889659792228057592894470687158955277551276077474453760453869362013629464118454409534936155040860314661595276605627771776302625554868064042904757654692645168344901938603444509063595846357939258433623479765185924001593457164419444968580215101802805608557126860612480991420048677129903262057978037870865166285231397637317262385444180454479392870644522739492731847306083757042224454311851077901156991538805657196822072603646052853135338660094128650710466057543796420188198101902810281678918983175515989682733461939022550871631319198157711866184775054839163689851447257418774636765438111081877544751007877726850497100394222009127444965568141840722342554104010923355938111798570837577047305615650387010757326900587205268456009931542046549539310329969724299384941074686034947764806485743532587542651221475085991748661792091632815866372279196211732382970368495600402170005448462598556485832819435895798475817223166300539023501438098531728100869310395182145863208970872676375819617343573877885723851731727338684870055940687469169155415799804201939275288097370584633078667339233898842441418966165866132706499781697514345763728914024775566541671806857418020675072977293304642005487663971054726162744147917572333591890646943810442548061028245707697259785175892343946915575021158550824535230010339669277801193634713582830405455600278285399782475151775946145319790745678559570135630947829618443131333346302786732803964912863342346069796823373805217052943005475360686597732106969416172334349272197870952120025326028917724202080196110553927725621541422247817045906265948157977848071243144810930106783993337368983719657774238164804938639404590985214235564454291644085182768973153112463160344764676309346747908607216452850064967784500951939498880294900019079312970807325182352384760585328643601125576874806055728129318583841572401657251141468781471706707471924224080368019449610586847027860459164486486648028729401227858115669080349239411081339016446056811913903665542870908066190262122276576816854002776199344154436818651278272782301646908948124319019343528936620348894929957169715080241270327865293269559727049457416391145794425446558987994324587476546502449811638024932312561035730748071724115184067641898115740906160525795181956486169570392253285870506636452319474381620064518946534278617674710934020461612693457337516492372679743496284929476752418720089797420774188141278610503850374566266014276582589142155688822745772399607808218867716202079384714118008881901692085321399719154466223210925423022216942607446893661925229886988102111180442967673741941365764772792166252673995677325953124928637698037926926759305138432517514128024204268155375940382867091205143140678455717350427487953181641641947294721392190329778736270480401715605253057749315384820947389112179510657817828755282495955078906924934568883261373466216256253578599426832996179896566021413700845887460084878270573876633137590883459927948712949622534573678847010575923179074960345255615912549986329256063516804498300137832076432390159574273160516944482062986807270070219711477188185540078967349509631362906494685597551443973791309400414379500392455113967543371946061422909006327155279857420231006582372042382564167601765745000447766050525845932084448285946459596718365618130516173952518310455800527318507639102317949112785185695159131023947298133917737732842878700556574290305713702266075588607839182248734504028111502293504951665722238304555481503521056825968269657000757435998684927351040871784931249216786125689277241423745876174249429513921504484297592082602359308174991520478763192858616326690298608397617292371226631234944373649542391988208263247802822351226965924058061456913698392313167809743541737450591062349261929891160280777523464694579963206259640640109662031272027433366312053112794483734267736885381518533485638703078759057120544239360014843809407490236198244546652687607629164038228402026648214899211502348639759732705587283842260902711156960518706327246450567089581532737619600716405893236236959022003874793171787480596199539822805426382227714255405087504512805553379533061797128341390085539455208568519499869691136298753802333445852485332494688607953350996903017884986164783430828736876864631055701221569995160856505483522035026395269117538470159016293698217581093716676226089789053786046275856395258976953138967149024550704806416147037044862773732596453772632035789880528703966769908594821965200778748234316306300970397068077732152445773946439978620217587825211547450935168699373276581189748808891043184798511839273288846697761850782055573233295606502951081163873853659819059110268651632057634997966007522306311126713229044093732732896841537476678476802550235430700625946700555022989939743938364023372232776264271349581580275660468055118485965907714086587547544001297792439767040472848568070533123257153015714346881401136616996904882958357691942105906192973312500444417494185257730340434006990511192001406186378092627647544117162954150507720981559737755518243818752129798129423997834719735198547450827388568383889610645139094496909384289593537973635244477209243368569459270693692310893023725886046517698416333903392721081019284258793733231471349548317346533598253366391856926111560158198698848021594320649925116950371749299804613993389415934772919858310822250913791138693216977729872103548301796940524298979301953002042323446076160763501815315270875277730254370159103531421461328820409814330598959162185778529135546885891124851178531825274479997469561199452441339463180492060497336785137123466499073897112671553919390332967467380535482356913270871000084083553109564512742522716398447425953987916786214598249893655976742066859477167911848504548365109393773122723231741067221015397831842693180296635644361858883484932673493032634613802474122034939301044806120389255381971302339964926823510220571610865598062886081369162892289993796419471966036706319727697828648346085747817019272784471847261891456554434146702150582399104230950535907339370327261610870624776589293903601481388915897645314528477094063749334495974185184737128192963627025484924119699355224437508400916760461234415808088578912242628381679854160063873516565610266711686833610673048151021008238029592814495783452538389505092395429870222659258516816513062473833583851064886717836868464230087865958876236228080180103086392536896909108525267421248927523857815718531487562939462896841053659972278121646116446755440455469303251902139809838164829841641953544084474331753681795611052905371518630337384434838073386479273803117485744261083050236003834654521766966138579312518559900172810564934312600007700522666130160751144980481378748816184897250599329928047962100748743109275529918690413281901491097068741813864060709109394701343132909112817248056182566063731916355661059820757556030364589203548359575955683179665622213023075139650540941468119143027051786407135021084777073426638005833170181396844398740553957000830734073999779060469435388951242398054100835928507917875858174793603411552849795606754516998385803252040773394128436125014381092451568365955453754410844452729925582543429238853118087278945656388374168742298646227985601392778676119773949395073937659246179104620191567358718743898205360565516109584478688455606740803004107857709167249359889594314939932687823760627357882712200742874408624702502537354402598130796712534286325759427274983460137224205483469666935162470359605492446337327923282709716612089081785880361362762427869273706252973340987749689131492904359928907640370568512517569656445166552482710936228367014205194211514236410925900082030209315476962794244852900351990904066372029314833898305849360550035818984517105781779197429295685720675184069630744127682329189144440861542909051484998124486446673181389689994388128595430606495449963892731813036024620195826302083955919330966703390197323631047210551734036249836226134116957916977900610161730599435324855403599330844369307787543072314490809457138408318014290011701411375064363923810691639642112552838745500510037900055810319900360727755365939933551315614121533323972029845798277984773429398284105792023809618962683561601020999957796945720308348320100457498286208338956470537701405868263154831551050672873514633512550644341329471653082590015469088191587067269486690443232177353548172768405828455477501827031243971727628223979088611972314362318318222381020395621104509327839050315073799330417147797315853655352190261590865330408571581474282999203010706905332179498627451891258131285977107267562441212702324993060583787204198353180597327342761002349259309444672369124515661058442925748838165347457249851176205732362738074888769512774186755457093610427923691820010587699719411061571801513810533381225097562682069359333451277831370088176388297280435847417607259406473656287233909487579319378934874474432197924221896563756539570542744743693337812526498285469417828631501320965588414612222808634464706228417277356359168753440869953892231408024800895271762907200249543432915238114158904992896937551419597592999478237867830929625094341771616623997812091175694074687115622847278458610357929490062818511701942690203059681330879097086431313649245834167212256002944633942969710083056438981973128008720839972685091187109985560319864000083144351251216340264180282528027946073741493734145306404885745794226703075941033518051837072248019016126656392059023533094007526666809398280518609650060641723920817960776531098219934347268939512006912376268514741901215056985789567284003054274073013217343249342825084252289166008657057523670994310079444431743977194737399010393250305747327884465328384492610849661350032982852081387075264022025227824259106592873800624444124493411388364521835207984256201091844742174199423806416600729383803885605937174435112323446860016428726044724801709513544113543807760172836554480579955169043497382173102152001129570610382147992507806692616602404702640622516232153859046480980564491178695876349622808943813277118306130785517432072974786383071642081392471628725422925519317032170148074562767280786079970853553647385804183144045659752707992578978279232399262954424238274442906532567007261240594273511351876039025557210170801564092054661962007054591223861346614317922368767197003352453503909696087796097844186066435138602345672811213691887332594394157335787126309501782843718170751639008362583402686521844011571967192790844126138902574471168098021228941478094997370644177612857348540374727628927309084471037284070762242417702913995867193914204674730129890891369978895038926425516147869525570288179394405988403533740563513663368160820668964433962628465418180593707363625115845517432328621473398644348970656850156054789851621824721023391102534436322510443693540924532367389775795002850880073082439385929321978488565648260441462719031451536760691069980739573658156284960678940854903951497875304416443795956156807634877572718934238879641127138477984463165707841232497373807456998009967953763937366550044799035147882691882113092568003212477522412383958783384288562504214717427028064020131861739762755200749111036898184287003406415393144366833243553715650768223010616694033965298549362595536050699314660954895629595481145376924906180080888835751539019682292517887940086188570586016701405201200159568405307567811967578963125392232941970552673692601072441138265573543591928070940955981049816668333763020510464075990369467249225216217174410890913223534171385747858282229930548632895649983443066388244559076249972010984244337193029863481900951890179515688564704530840571626236130719326145128629921052655525717935265512715190701348352005728357674924175063486583023095278455424318960239778893308147883381840454276072833697103583680438507139095182022161925389983765346374642639024184276666415031212681714659190224881746572217525964626733332323904764762853880267787034691827368666060630048670609284792584251684743861058550187889660036416247644690611300025889566427901506511867371909988289544055990304056891749751915203279068325193306648712017572028210202261233603852749884531448173246071708203747028448053644392005076386887946937194478400735504294356151522528298747906992973433178514085400160418685109736750552272890126049002562447119532962418137974903556039584891882476259835844629317331430084126269102199056220061421409580605945742223642115186987950435833936988592552946165502931260896614437608265910031000807802358463855253045760204242559094271863709357466371905179026118443879598967903441999480021176670373018527562060327279472930537384304146181998538730159395463985376696539144332488605596099258203383511019951716488087307637799799279117424236276373399146182461157337926424354194018326155059124156663841405842271700710360297048902394639783921462630962597118790575108579140632495036870030798220135136706669142780338851187981381024752684507341765346750831713116040601539758229955078545287828031684304063455203832833824773367797591440374857730862684359189579235077536631421220914074686591756176298435378637500075713775615890596778674206551385462109007956422160003721997535895257005057776460593233434051307779828325239469867604841960077351112619385529421583011498437390835877893851677530228327171812112771914001694004836247808921155445391598237822998545660597763954880156269670949555602445184267734541430539964219938900850119524988110315583531609927786291934795532125501536669358013879770421259552002126879500428726385181712885395543105469576077852112115093362251182623821819982939341245980975472321909979356157347230434864448902259697997173555741778079356453062306303736471687275808529846518526411274620991471696237035359274095328024972855765158303324274828745018779846065649655730191762356618527521797000643729492482431323428431501684214906420237701699306386756219728909228402388705216481569446450924346979827638663485938226937603165878495874705336102168937238834527009763849430014934260359879885449559222427494667772345503676319857068933133623855139038802130386060041823964213479114075438335119699040344693625887751593709231095437937330391703688621960757170636380519247050408455061759520201381207344510359633271659384105225306776551103467804345596515148159372304225336099706902639410620784753752299035658626337174725548591127869850830346792006375868882623331076535480664946515463809594077891562242943440892151856455974841333686945849522014775771005377456924769848192802001312833897140289960406852954766785749951699464208907849481186661841372842444764990385494270110656610209861248131354786568808847692449954827159140123038134008804131184595391985783519678237971450819340597898348687304960577052074892873427372730457252630172012227069046115768295479984691952467185815903222409451120317780601014547933813926621175770295477754011875696255184384081793677960730589477604908572769596294875650521711614257106486006013792508842156250530169442513336522673569969891801551408399222963374262957948802751334686704812813117346777674468191732378787836585275094361373595316612741905403626927573918949001481501264525940518285175121795312696762769336368963245589631381642079854122982525351308796519869054963008594607408835313085522977468321712289800491950601637889754269216115372368653387560286592317484384870434768417110766104776786876067123439637990660483049293251722919653874730255657333621757237899600052943840188752516014643137209166068920612778598311902789938973532948757127756222321079846291669453903468504781426511709297285295154935450494010384112291556365953668018323455554711458286966032595668030328961685001428968127526631417382495464704619923129172569650923499707623372587690916543227803677357630875807559132827087373860520011253625794021352446731211670658093603170347844247357253550665348799810661730698286620314672456357506503926081846044544519875786855658158260049122351216010323049076783227286317053520020890242170635240418986063817221832324542858519332678774279665358387528758231591875542787963398360875899845285470906700640569455210464938895255405118901196644655906387619485822762295515376460254911704519335757791628999294250931408933133829385253756003113167678144031263210173961346265281073597273782239403872597281372962474593894160257518648035655756991150648489253052059520094985970582283469255191643520157113879472460694213334928100252133525908154539254336736383296940739821136807120556130466778767040732005442488819299008987653360314966292227860175170793549555293558416517534926358997832738842733169883613159771997141880736717840711371042519975877348848867218813843705932372294501487819843406645091739849643851160596233646791308353398214983756441901065952245723220452168522315386821008861171604517363853386925803404805119975677277739670835677836541299579766561344733743590345814110124786822788152540458473279406609151918881529192905372491096870069926122851291119260316555934200805538387318262877308772404283882460919812319351217827467215358961971179517498810680488039081793235283354733528849458590054398676693985096305660454773570455038610517262430767371545581682276772685417536078282401252342464294015075546857340448455858699745586834900143346101680353591680369976189160128493582005583901777988901195869918155835940121434950907090641845846228195515981986497178013248195085075039829981017474691540178570090042390572427490619094637720594768433856931399577199129393346215396168816496588431091520272814292743793065876240128898494723281015470361358046401543669093535488952826242319377333619238578143307811746068355461434347311586197483312556755532907206968687985467986163384519435084417068736452220130147315484165775957340203202888616170938204768232427160405665605694927948288775622942752352766757449393494045622185372090404247110497817817212394224364012593109269045893087818667284881654382704784135387142810348924213556180932824028572954505821222354528985556731278270187741076354837738596382044785858505158724487378477922153530533392522015187984586889298971580354962740968820094618321581581896093743637693643061113698380080794199328217420942325811494992297965959826294651528997318181720965289630203905501921843054543319133451857379054175531682600812341004469626720627782687505562368084602866636572198185482373720627308030651943561851310083110661760368210892132407474211678294504565183100778035755085237971380158628284420482765336908300407516732017223985595982611866128617486207073747435802670110962753557992308006979051726240805842833712053623076199679057791244202975083869548625926900696512162073788673030004399084482722292993133383249490780968040279776466498756589088329689913863288047255611710628273020647944636531060288999162572360661727072914480450911810366535822389249560468526053911540757806870563497988093237976134987667240827503572412075698500083711305044348740231798354902715097007951736449715349427036283689377660230230426089631442948303879520237995988888589088200329896341877962544945017429799856873710852135717185908555241867752163780185706979207024850939746190692764256035077407734167225620861115850371022287368748047739558938827571000363703813299877528178717869941198044154328755288985688372662856777681718690501970530735399932175473881536443320213159963400758900932534453974609215558995295201877855696175158124022113382595886599128079860099020995347451119373694952820178883442113822782239269266618667197710483550617657465305123950538117937579843228266414217943780547535295238445876402058960102804624631373305181311274387703890875166460623401680237268776665486273151191805833732071961762032896931500472617471681746909337600618553474685724489670113259594030779381040507558712337912593955621820093813820490774027440520716058817429134111064693080506560565221025030834995377182148162341662522432323473538568172981707022251286936519101426191931488728886373838520882909537418524750950506118301995418666366944120520506548440289228615677703393537998433021611393214976131713191750870497971892470648817550431304837345274461579206182773580606125342371960017820130881716373360237824233929247069034843653422084557389087770734207173562072491429026812595684838620022801239091090025864510667075412163168364175099952625917826075936167256563450059534161485821836873969858988147370103960221351866531066391197552736995075081662254938475591763182781773638524416519610402092878663326526110679792245380163981174793796674551371283447337707399373272535627145674014056095746782840161653855871220828183496207368757523498393287068873816054176309405120696376455287839924568165970357057572786028048969843471944361602069458411922601922985669947023269472187882470139452014261435969950106618409591628259264023032273194160384675119800693035753514938894495893407878550736295070239757036545525815696629122349433798117050888575340870542866402159504891428854507620910926407524464084062433557951691046330861910342509496403165707055511554868268517628723940711457531504022266739322813024514737799947606694249527426892811001858726172205255266593865073209217020241989795537892879647126725502566643263134393364103142544019903922689863765358585380462507057930451206742081577996627343140915338382424673954420022082558932041824735956773693586921836579428985211878030720815664698489981070136655771724540948648316000741478073971775371154910693575437191306810843588131155264480831134146359189862689932567014266563608532767863701165236482073591870396355136510769624552110789069228886677226097140627324717817178390951252663122475019546390836057420684132660983231972397773750413742930475833760207214387047581870215034016454137224794670267077732484646942134067045843168441619002046297659417655321555315460094890873616960480567381145669892580268733591381014139907253967047236117184540004785408654349146695442509889174512353933136023646525056019691632098268229836366818818038820526476949964387869568445351893346544837677860197281615728538796264994937422018372584245356514262794845687115495687143360716765967841368289966589934086691314955707730892189137729391687248326698879900782676607303642697154769454282920733205609513426171959840759035520902597964950092028828140514029848087229207444434442162432976417800045942884772902524220608747888446542201706672739391934564588536481312765620893852270214033717706397548172880496033419065994834894560716502598947956060916916657901726874266088672808523571262539985363135021256581094661913462724701957006994200030141162970290569018970596648437189608363395993747317270121776380324049840296832348442803404103920736561851497555514755239755611242449961590239845376432556464545185379692013611147407358836619668480259179240505824796447156114152733534967357673615308020411164795070731376111829233852847797349633954742562390250855935667210926549336578628134922224664104541310761814259305822922576989084779074980083431022641906057952848364666214556485114147788066124330490624401810947023385700338461701194229694089631747318954635507399561297572039241413250206681091641464233425544477951668852368908850344201047686491249373932997088747322084001219520496715745571650157782581150210758390134541019322224919204927578309851423715083632832562656312886283098243269526243774838358623873722932743380997393312189933333059340245066821831591252524432109519166977873580408270064449317545936061892610502766735162088042679783448437173288135902985569329319490337424774563486144135700626576650240516920285470540826175647140113751634111722740667786082087716323647801308223942473496565822377214409613763753678211608809951872743766238022678049089619664926453047098025773313174616033448806208700462466685666002339432418377804035451082396890915047079180858141650237088983336669947319891799056134803639352282576053953314702052311889603033245237772261349713065792293171564423854444547203964612960065890210684073366969951713388617261572817432223599207376804654043394261301747742537080519779621292743999642103968378642332319852047946701782359254654706630188077881251977077315436926331190547353573301221400170523224769368921279668671327670067141530790656133060317210520997802064161421177221089166525959137913037534570150483024600577652451148128196504952723112315548843051826198160531852901655087911947531018413095596844136060683721346235763241738192321571050056413398596526998357860439196541941504980427714666630075371124222244013698061135102299149059226913900934194845489657594905437991775757132439127030034064688746332354865244954674018294766529712114498644264566003233914498000279851407308410979669448743388424200724503989554154364274088678434561168473865240763884501157468938625377420603611779132052979682058264246890449029475959884761170120833150969066406745938009933741502977524925877620520761004571505565238683373655750278195612726043771247752969624334041003393340232918650732181267416012010787947486417036844486571151676121547022877440464020687644489504831095495762775107930606953657215904967017654498114350944700074130760378705922870845020569693439062179801879131680279923722670109527438263358139700262698396563271964593273225557432251092681898223379367731084719718972519159651315742546260016179430245353027052401424264160600725066965757909830755202419617244544039018105916033728001188352233342745635941765792623242283392197051926894983720203650574472385095002551096277241775025840521118425927060582692180124953698485426193975057638410271898066577632643824005811875619917689766813187034129183136067616270097048051815722527689484214567989526758000928850828102280124074576261346362683373681389560286022676396550680776930596448034440154049271423741860836295663945928987501652532870820343540815877048983452640218581270450853726258195577680637970746233338233851551189785482278366679160961562227176573783509292813977429962680116852996629133830750991782044736968250650657700975699596024154550187529651151929836450928896015484596180382758155045888773730085883839554765107093081501049744344758624622954744375653003241254401656957550447735337014371681538912890637843312602504402387018231284395639080225436183874130711315545634196045187217686943215735520710891768954098324509005337261285275618055356833760846041119072956721104430737738113174455786483516860695845470749206404904085750883449996739859036195834728125354299403339429004454878129403551426521372276460141958769941856375088379105155165811102500325246668004187650641687913678188721246071281385380228086876499637329481782132819201984121099667468893012158109921012390243625752500407291204693420430058947276287678256652916993388803869720136372510198150829221363520241573603812049700637062732442810139928882315931628737852118091783790207567653755202664714322217132386971265567964852330257227628205235506845206925352034964678878047983187833715221702687311129758058994245328214211458349573369552428886429515300058171391393612743695198558524296252314423368005764624137549164446874878396926828440230593867090437583422183876411907317664119284826976792746263009243298402363127624132309611672360115165909293491648074914828888850247671067477095872309003597037542173838496896234758540823842427351242150168929204215677169207167363192097154681418459570076257976852804931601111344461483602988399637943378893361485188641854638314323506888010945548812887056462933122432534060554607990142861463264342989502094853804525885741476873523531602899412216073853192322066040767004171381310937850005008538648338428177688252553387416335442975129982599112766066099738656333691513149413436333703950031982055869309484335516614411382647416486955961956960867355398397737437474366308587177920865036724966265482962357869434921058644595998571575672541012283082195881625808771618410523421331169969365312136994186496841181149043645687316485297483390088062159597452439053951135029909907555980154676565704290031881914634157940685668522504707850407620592211658747810537254581706798778961108040264696278372822495562039114919671906559560217578938976623797315275828432788742621964630560723414151363283984242697659361394407503542213744506963856640210173833217165630508553964272644777661854977025910097077763379901280570019217650442473922123551533321385898969179179687794066128641095147144986297845250958442364077041844403000966141993210685194182668532332254514979178936801259642927760137078521521091467708700582447985926182226107278614418186311802553351686568126969901965443244320953681411125395243911708189264736849240098644325547834234145292428411724814074420135772213733811771511665335672587295218092634378315568984067117958635363943967587365749228786391365008064718900189057138083643691933913358234079136550363879330668413617097471583410742534519003667001921622838157100322702168257827071199460081756655913854752973101236113468795550669717787571124281558385221680914318028773303428445773578722976207072491782862345385166906255107441783783794205842237333732706495420268898328655963420645880311109194640417765438921070963734353398703924550711952185532940938609047919565711832200077653520769133290461050716309099780066696015358271517114554114558702845087065413323883747362618564928174771573366316303130040418149568110686030330008309082637221868337006708083513480478145421571106365062354581144715796970614276746554562592307894238600190527453156336607058587692537378818759928804488413495548995071475362696493966185477454186707745779732265217955042483700282142398095573664345909358672287104025935230464797161431461191584922970873006926479461572617928815532162196869580472809957278268329167782376092675372284481781925820850078805245763430586751119554265772864497795669372297614630465150664683378606933927131905044106264659192937201964125005913661372748880731124395493022251940108897444408571624932091661357372889570790524373633947166534295906134210187387009956040531384125283488234013753506001047459572202787745143042396365797042429542898867859731080484950363499308906072639041917142530256934662561374991476858936759253302132128425175365287453718454503663572490725894951215562326810910608645318746967960492112688393403136303108031553494029587724511062127356093982139135460013431614865897499398060756390009417003904971116351014087604189926926850887149148192179795379527545739081806354875807287531642634764844002180111608951785804962616243375315155076752436867605028058832881279006550874320556476914479476290069131626793269713799804172127767854117109378363778353756544382625374872000454030472947255336986168722692050519138252453205183745182615344997058520059966938841818971399052654223747819809798781090321523422450857297880795748335305481971802961173801936549088425131654813405514647115211686593355570301077972452821152059433708939127207067086379458870143316521765282346618566206247168391831038830120292157474715275438742033374587898410327713776163625865979600046141323786083112723803972179286808723360289222513502250842742550647098605068888644726779110373149412786115147104685147237473701701446830147869573411634181883245599805707086230146964312371670126785154558712628446912749765420002831938703822884754333444960647881329181277494707600570961816628823280612465960865822708743892053172790330461030613682388580821580450218970651154274825447018970327321470800462857846396824149300112501336041054701568141818573096182115099954479263399771515413629906795450355737442985201401651618992821649885616808463590215402884194702471419807883647297531413751802225797337362641631820373891208620122912037253525589118825266213407648371765862654946063674081026729757121238064574160480697284694712247103101197824085226587629187030800675919906024052897491031527312606145428989806944003932252642196593989483565673846969915962050809516569002739436644490499149368331135030153521559047641191874652566610518315991736893608585638198462647991308918297357970314996556701410981221907024598908063565485934100697027279569315497762240975004935039266580907282598521005191467298185489429486842602279953245365074953062986604330937288850748217997116420265478647269826535630641066635429545718067995423292116575043530360921672981169971787492478164735136688503775676878883159840414998824812216417841194885319193207553882176711647281104088983616751825952144647879309579814966098952514701764214828050782931603826257489119141877742690719573833674407347100708652893081508837368148182237680270620381934511297068932545673385147851066145214888218765663222782364207975803457285269491170092552670730376093163187982261164187033183394986622588406794775928317999762447209747903264899745517287136480443255624458870821909102543766297155607180156170506248269801128452937491674808379202720964100581274394416482581667369721996775058137348490740803269559519130482811152762232186398703773990240972651151648548336501437059422035770563009500822445694461243076710920854940545916396263069880820712640928092607798461157813260615795591800287738923616031989419005012906958926592482964025934727778151401665745506481377045977902722229396285510815923255540032773309176577641538891805669890958379169052145520217450013893261586927287441455861223628563192993609508306558254405750887968274205888768182777752174797487218498958980142107791145575898257847768618323824238343088636391925436679157494410494716460907514464300677616013674284992470002098135559220298023231712427225910029321890527325444450991546173903295831973391747807764810677100687637313526870047491178906374130544202404418774641471228433669084769744405809027039366427132214717207208440740866629500538329207456475313181169211556622476108485570658830137608550316833517932431982847318608773460780066004072513871409285134959278747449908002329746372820426679592554912589563640125766489391114319208392554609338543894504028182735067911380084980011276873937422887836258451618503311514574348498442212111691744326119549745288356088137627298639126285796412714954338827492638683579648188672637245782116196914406636713404072727419694662529570648652318136834137176960912548962815106812231341224466556729616726627942020691627041232153956057958536014189363348665747582522410742817582803528283304651483170959995027456456286397531824128500830926893619521772986054181610307976061320085431482700452331294614244321481702631762728155931548569876881157237610104654442520716814961993584887928812073788166241359042446165438622728146685857562755982100902126858503249124103274899097658983255348350038075098245960079242639643859669799896605698259227846984551916493798600957572024755815327373254593078582074698853387898538403729070207045609064656376812222469708364312747866296528120807367682727676598125325627404653822412332398068010646784367785873721821202959504590608390084055773516392111449491474992965527393685596603192363573952784047436187416143743120223907517625809921084871194150857338676266868741597145045124694954189634149678687113295941925057175753120522529247860132004264603954662412558333264225969579336333098347403338952031266250402048142912433992814477173381478030546300965146149996122545922250981266749229814212326034228734319721360807324902414466796211524352059331138393961825202435423169371915496612241961705110609277398093607677901352647037205990265883762067145699517248457358760752878990934119691032939477045117335577674891436739660956125826972657218895204639311597641772270889168948522091635814725603089743676728297559521899842872333988790056227401686317033264643593762331116971019334927951046048645439851953831887138028112160413921043489569368509479533043943424170879036072561072817316409224288006509459222286402403832128402954603212672468185328477092805410405701380734106470656265459810601615553741122450154480423401135288160739766522081451181121881021831367578683547858985556672082509878705651587571556562449530162801337063654121380945932080063609527534902394447160616177514045159887509588654944928368150297129130066292402233725309418624470667833065133210251003960803548312767490233291845251553958948021169734265482748537146906338594355275050525126273398778428661080140642612866521364390951566792712886602559842454541403760681108916823042079442682251731344140268618804871696728086074371842942224820507234083271159779712677118132424651804494046245184146363740359429360795387558371430619009489438502535976023436828726885919660126759723236839396335155176405965648249044265741961866151037126546451484716485054438146566357199317994280334090315254671361270804454110415304699841433246522078562861865698188897864208395425870760822473101995023541380375427542381626467721284525733397950727094741730461904459710435817072171705735094532039527986232727543175552552629800905834531729909014096146140845320667308995689693954342281835270608951213465587350718216731169526556211924622977112865741701704399241614124284531772714150935321317115156870611647367859896300354948311117891911738367702527824609559838720733551533060039885270533564914298213395116732656683997415168989161297584106502153767634515676253308395623255768393157159952089482694732290869106026270708551904413648433219947031186200256397063838810050386637996805636257709219808476286151335447966079281987836231271529159704548467306316001699271772663969405312538830533502949809436712395087012298629133178814392963001432643598725436255118754117669554454919233367020765632013490700293487385356134565142995767891949062228745259722085243316862230203574251529533852708419293369919794278259237938071122295919581581610306676071399524955438043402196351205387257860484817991020221371935792542853078214984822859323347391291250402436722552872339272169006163932829322790653781774361578144910035078461866751894414952189324891878838952441082734120941274995993947685756308110205246275289194395262049111291113070471096460069104090103348894422375130790493129418022836160572012740393426304383806794623895673308380729446628133234784151632793468801863353003487177864142800117694275338129599314203664620415338472030611144676521255154649641835351211169388204263971207423536474572951811658492437474638444692075643917750385706566849252501882188622886234413651070244714933392778463036917539244848002313022681923622043835004419133318653458141692083596274911453163150125124066614388738667909823370052345373602544613187343871526368503099267605911189384183219988764797820418870903473334971610530341096328596864226117495579072269545095200262696931688991430066016466348694610431276183741652435536720403596865086357672136591692034359245439230753816266708087349813005138499920544334668759113549677771111985345886137509894236561183880777776185006386222977581325596438526160803311620028954660328488029739227194394734276739016525064254425691754551739431453605816650051338947166778352405111689830200512859276063902230259999813147777451800180161996791810061959517788733751660042258742591224948529193042814340770784860887814942194442758171043095731462901371269254049225959104574709728478809573822087353322050573116842669703259212427592803208367963769287352469074645145002761478320953015339245371909915859064089587558620281827362939168557031244682212974182072215793658327013713699514559913179532528968301474055611662182346746141480232079110600069122901459619108016907099399211914774699782239045473772154394659451862354772954384824972808822002050354114565060310764243572696526632720113586148682260124579501748410397669547298576125267328421630911828770507689809315604843963242414436336737999774074541296269981055649623948593720431087646513425152552766401102759849984715339746293126036311388571916308293933305560248254131676236191364296660786220568142946126905171436665292785446388421692427351025864620272514035719324746684158648328185266868790304482281055914888386844666513962107435927637416568592428485822687661425766150327074864352082934466770131877453045066608334518779646903861271830225663168778261823923574764909833724038442804306136600277806626781734414261097152685315153558485557236929647921632999695573262613436666050825236501992805075843843360261017884078978539185361069534685125906079553324584674272226731527859854141083216895432536439665850960552311582589202088363318877851533988584503787789379300814020262220310056865758115569631877154625600475944290977081689791188483371892215209534920814516400607370161160301966605023094324739105002936086445744446481308839561767793848470562551680571205605838293001526963011321566249249775940239985485477788146012953393529996945937634132723656026047006658272166948211608357110072629537301767199894849371338002992639950935210290842035801776580517761224833636431876137966945946901314369879096823387988484458506844361026136149454010946408506832291653972072269243368996718284376769171212489218959037951122693146027442270014059408851236631143825999919825398931306988784839648950167972292236496166553160355958465829313322453019913081623883423423086093219757526206284725667944552706294584176255038060342683517956300815856328759396090640797929293203700723208870138850433833253983054166598428058850545973319232949650471427403713970347020266899513520678624987948718368359045790125883127923448108928808552595132554746349560746537048219076400991162469468164709066824179819779603569064085406566194547043891341594289762911909046523470995515642197159643981886652180018248340855691108723117075469675205157449826341780650001965299087204387015984466427170968092142466780968439752353965177779370339168917666258409455326552072512171275879064075628986845862273415346659568459799915445477731166133461196225475010476165123195626484629075035098975617734775861042749510544798692849647895757690304860712707124952237532848150511877369324715648334954560409183692279857855571900551429256326422312809103853016385119348582921205870561603445617737250792434537625485239796857510821218390689592589642700505129922003230889762883594014933180239120056191614885212402767474452770292357552316233104839222234928371742846936021353594191118978287800925919846553416924977841868905297100732832817001353084740205016598531875578484552416040097841207905028452848941309390940525543530923338387582696280753637992647680492990354095927915021623679498239191145281977450606731085968760101716497354384817689279136857926122128676364845630040097138906833920978799187988811256194407574561158068478619612909988796680217097578675108229349972330978026725386106071297335185190995934054678627517519918593168136892212458852397237657317542407573735303551448760430945248245450033456792920951437096451850718314837841271474325494473490441461353349096644484704617485940473463247671824685486130936709690969704994611572848191681961192987204531462944262940517080645198878031083791081898451095068349359054366435505511745400877024473461105595114671171055621304943341660820480362013857225962937302094226190833399214977859422490137430409509988267229636406169352942287016555578647542914265025916976118615651000735365210020294410461531553448759405707796780824571414030341391842077941515992054640767086811713561486018554535848827945191100476139030564950093903908803312569501287343411617167205701535975523965400451328535604231129513277856435860269212262366843877962602959340699746317886056033831304544761597282641291021082876822265374194843003726774627923004348713672894051181969909685578565673338498799828473520885909920936901864438062671264130428261367115289727003632216640056366774154461847849811728709290272157660475081820760957863824434600808339512406957193841464446668294147478129388483742975996277993791804623524525560906734601234354803524412116223755002172510573078414573666800341409559210062338661381835773609993579356364227007432000722544122859634651012875515166778478282162467316252514626223399028889215535757180478485980585747222604352834636264522267113744962382690938724134119188428667385333288531424427561100658585433258812603734198659138520634272498391118914087887994684625624632096744429327246211843296446983998030330355457162946516793194716787807300766303325999640124766032926397278166441345698964483871163093200389235508143987843506146112741263440617768547182011871080506679419432741733489074930960228008358326205695468677727251303475535445456609954548671175464034833624355182083236434024442632647071159384295888097531834209415336045812898911113908721846059239009830672117564183221316475108925920172571156952732585579004595225490529094640948265718592987248129095915828114309738304559525992808661874165285920652718841681902609432860341374080052634080916957952328110278411766833191329747937945575474676516893048003768364905297159665087489585904210642324352851077726687416566786539824105712936594959802899908907120766243247839099792610123295883528840118187966476661938832109335303703806772156998711192113434667823006269286936083167464955177986850488935804358290943839432897164795592232199804042662099624597029912483615440648545368383972604751010873768300788302316369508968377716573283925997088837603688223851913396092625299559814234169496994946142106760446084510984546546625731062814373612071464796028401174126813404710595915353001204884649476660215663513801112401280925349749587846485684295761678977124975664786524307663062764603433475076260230065294489504096746855913392569887165656564782206757341974661925122014886472971154602613733859619211632616083941299559592910481374714250071055578020499491579798879219665509768335387071164517085002635587827655458160078810756561125304334710705758657554136296298411437132781135966014180682861677768036654275666697794628445310937981234440534727155652038497127566885469669928535775547959386865235011237337105449026350400384960717533476286322703312025459926219021295375519087292343412014891670256895305576849277649236030096761428583180388033421976430993865339317306823778279006059040377389275092376611432685210564770263831055333067119057332877414581229034186012116390671290282644346982064755953227575691554591285440098554508545102205602797584847330079420788073004487515557546181173640898420997685705524427856073661445704466598672894656015670665204003325944298925393827274919747809236041820048985359208184644327302841273005672067988542134198371773910053922584337794060999636164601458540250832188421711560635803336467788506901676206334551669152209131904170531406539881556229056392180411820312001035385168947294081435363978935996445381679691297427160073524025905232657344295862487506508464811124803496864322373041982700881165825711406800150437166240501049558813335519426174958308175345837921580639068539446524657940783908931576380288439257646908691831528015305917641741961388369940609284723473326108842836518879692737115265582382963781257970541374394310827736504097702243309795561766240996339740797375615133227401224026125857590162836176724092675592621225834732463325649803787182149292647071854661275987576462250122774560390866751969979498613002327284771529842033395585651456875173874653080440670149649855833329429505000307702551490854124225081231257728193655254021633738814702577089779785231461404363073159228454433388506546514417024163476668413476428768826579978863964743115646358329106823592341475065362951913563523749962184222426353615918812883001950616192220859242517440211560845803325743840126729520093288523041334317626665425465559125684005942403554552821364783269281273621892496258221918146116501076571691295322959042176989953731054478895882782023811276454679627089355319736270256001828078776763283237959249872470119022030727661143921873556414934280591979007722036108859740743050530575632205832418738678962189654882464793552132545543000869647161897336454792371018382889230672627184588100036135827974855968566489348756107383233387750827927866011051756880412837690236214969215869404410235619948559825053710595219400301961283062027212226288775968869443597953518895639841192631489813847007778308899205033997454177013088973349778300468165377345902031942412613241387667363268040472405446225877652655317991324956789315095983150023923046754329392108484122441185899447579236385859994092302265957701277956714595677908949144167951184391876799558849821358612529897910761306558564243274159985519881975574742368700910869388084769144584049982818534853906525731174855999925294908950046857626396392142590465857413117576443835070538793342842368121527052991807028655734696582756932930333040108089964930218999913056656504547946028857393922905085308354023042341805395596793268094660419997945039040865639221448610884844785160854975441942182167737415460664487553399612900065665894661355703296384731426147481513029566173900232683555967089672042755823777160723976305848508600474569471891709021788682593253905978583339084295856826254120444947564450618378787770921804234497688844176450819328214246085603538656211368296001844195745949361701797502872038054288742072145436859058337048566040193848474379304108308421664824949191646495429415401974039137726334605541522845133789177036629205498800408457163238645686578247421328066068510757573814177975067260011945629418689510488693728107801514369628367986491268711049419124259665753581239428753807156573102439437592850686355897373613301293940912365951342039471965061830396732217981879039315777626977780312119327789443203264116976754233731673472264607387848657998433978995574287572737153679515165373613414806977078201374038666100734052419559110326199212260374063774442167056302415223344917777049365239615375583062014239427421194007372936513424285980853829182091681671448974133180701534326807170500585711967837822293426282395909374230252633885995780314112483097367507166293370180522304821262540086156339957440558192758659641672667569380858854194950251334170610707440411835234725390157353201188136549992678256998439609753648056772340056533870768153000915331251882967996894296164250339048374661075111317824536493248460198147226478138604774059599037829409506406024721274780541425384376152247943503234475938122635679687090282327975680672140790047044110393656064483161669815727716033698202114190850940137796432393624288475480948543807477947561782898132483878992167798656378314473248521311981450995619254864138413672763515158006916728499944684269978795745887942664864367420282892007439155965282785079544941670362125846056748123069730544688256313792167469747106031301854287764727191178313075318425119684357198711507704709590113482759209059318838042291846115767947197967893980398096292230730461476649922314631509836105291032829578956991232068734972724583042093080941833064556117136884864091276424378388928420964495128894488751641669744082884898670149074588570062960296527144293711832813823314897792926682102815126728656777618154039881038870556942602292207433959464820852350376330517430034482879647542041122339260538991761121411318219342982267646555192782857412611945181768955727644626759404885312120702169320418941566304480864241163055679225636351302639255488357428796412904644048923308268087585404852016772355880164418232671052724553475517901407248772744948364531445448688915177548065278942684197020957872723021955543152283654363204731102349940953926893879782311768911628798071074441840058899101069076766376470863865005488625995948723432448678161142774295546287790281035224947868742711438746305724184791805066526509311185427948018528949695423416436130403429666704162209509838342027161318543132268179612223410566796106218629204111892605348331208350934286017176023652708410645182020302647171574411482671265042581921468665172104832182291134759644581743415521802404505909079493662397541191526182152394926418072327730905800547542022459903747946234167784844649180500010074589576465919669331644845836869173048650662696224778391212390616827823082855605604825886758799192184287926294195817547124119485524118942544533259513696460105867280990844339810513194161940254131893481569599873863226730153336476284328562803598763412497571706932226407818548631024077273934148674170398551456769143521176232284683822385966692994698120413718769032658575659118625940701941315979339014407649841954700968467277264037209735454285587203517878474827600257815118034019624440324958277991191796513815930814207502194657571744075125871219771390875944617586923423422620884502442986224762483523969262403925692536383684970553031355314918969448481632843143208575354682810152742628763518482348075045823646949093498493085941390299066388474301844751921258836382619105617512021460548680854489223183679861665735524427632037338037820856851229271120574055377877780603403628199639220479486494580415996544200865015666226571847895044968410156395368626584201264420759977453887796634497310805258500500639968402964115047658391160347989666425710692542739516001883646763016983163828545488531058401810274869626711804544304667277213877940751952817916445617153766537159571185708190733893059261746738609226717530520436324094753458252139547633331444587990704149090003160039707353809024298598624591672309573575171879379061869878326975659571063353765741799389902885803946716848502450265082175966782275178699680844900954501930836578771501548790125772597062169005837158083803744902218946431385907043978906495168301009161612515293438062571246125640565303962465084482980219045785299514602700441894591903116733271796104707511008257039905215890632411257950039199160756742746352330583978389939023503950404607214906831091316699301241630589264389366333267707231634000455864976494002271461646319610179892297550006306411027516371560851685188692976030292458475594090590255385062575481336233136353440738366322833489828202368158379302471174694611148990197116719259245753436314756705593238820228180337425457986612070614128593721006083938830426500356025907681154354751906437013405176829370269729050985950365505768080436664342909541159209853826435402764748063709345452974724670500642839096730826136172362066650782027799788686967726518034599956863917723625752022147611301746032107293627393903521009543916165987421153774544815919110302179139715181305306413651291208001911336475487422836595646804370527292452019882177286986584862577676050798738718330125324765608238816170171517589633749365051499483898721340860544835457372315692020636155087399761058105959360552811249998363974635604489836308898389783048606771923160160451181286492785558720634773677652506802383637450840092022835808335881101467816825608080440960325925667840121942748200898168274787803909264768068940720220801042776270375347312440350657997032055259114830922802500867003708342433277646869233629610594500880182957273002407687260855974979250214761100554950937377528946681794002861220398046525495826103458271727018919214916358462327132153489818670326587396222215442983608776100483968268537272433536783297567350160651615545812369076776035946561978262962047553146680512181021895398451850120135963525079661661163543107368777489066011384620649224857431276529499023511580421822488746792092332261706233091678610646109025835116409551641311520628022000438145003926807358084676476548512146593485665745353385499162874941797660824161533002858832287745599044664874320384452611430471398638113013976333752273224106443659505036407678103022981854249573883589913375651679578656917496292332286712973419840016475651964673642276775351606736929871723289322330230289460226752321723173271541637234219941872980272427654959742931729406671954927759602114722632371777678358954724760080619476692943249942547404384466232255112923540058455172686382194606863149883235052032819493050148432749392762529588422892491354901183223949785540098846829771038657182744434147223215952465117096501823301211100118897112435693431895503581338223056446631150465877294826298034549080081628063500548104320404725864206741471558710822257858672161170384136239061544198354394278130236152476537092190784614592049482643021502935106580290911589920236119405635430797091768015336764477164597854696163894374713123839002245195596965381124130412249521755391261622555058605339522374695853189458214055203869149120536213426569299387650951858655700616888179176174734650836041383142544239061030326964214710775291946631072455794414463919759948234866137171579000156391604048607549689428507369708481768821661041998308285792003888193990489339555676860803390459976373042762001885369556396669176759067327084353384009140607970322279653769230018780876210984142930022525282734897492073173902114631611872423409092333536997611561496293311237249465110158541927030710249482400825758996854646552870109589434202699124174855385069669252053114997710269812462665956741189572170562369472673996146062894160895270762789587839385835738490367764854866325691365766470846436109361665397453202965708051936657804519826373561747483051937230498969790717023126953170616574836198594823863811399208130417111628434334513395586085661412146565168687782001101431287388082136590380742225758517190706951367516991650534473930309131938204237374354797224966897615944183965899048865931917709707756656763853828952160437021214370024654949962583742409644980517038221644151956597720375131886507641871255053217885556401828360689907965226951073848272174340059166890468288861802283771923815467624365044972290883446733939145105879185328159971675592611091970024749617888409368988180876588699033524385772849631538849567345870480152353398012828461261768308753280897193344403523010605859361694831581133389823978879674251686684585368491340346669066032719654014892865738884800323926429890769939597605717452424030707623261881339008004503779297406632014929542312148154986642359603810754627552252544772021026550444913673139385096276315248092279754758819814209986277978737239393235378197378017895547280920638655077049749560135196573176089712669439507231044074786612544646797199316884481590506549574620250200713287933678030887531669317166861386365109822211067278312965505250398710243685622225879000191506846718856978567020293447084075845059097714694354704169828991852965641957684034765845326229924431804301441531255187061945829907802275432938514420545566408764834553466383959422495004929735762878439596823299929789287063096878556756130057914058781017480721576264183359713441239706028072777605717352507402195065869053726775322852505508263135173245729123681120401733196181097254145534198296990382859068139704888909876885915570095922403910751651149727874879222061522054609048540804452386487262493344534571267988249141333592816560996100674525882221865632911323815984569506468589164148168268174565195959717998456317960793087597227018497905906395156804675190123366537525695416669148729441277300175189292950759805154466422907293876437994478992350675521467348681764100947443521919239326309435475772024481169715817884408377561567687633629091821327213208462415103936729275925480789594587613812405064252871543465798595518984233874409624266298350461661623126849307838519690329369837094006960370810965619647248254482153827620699710305793406854697437051941349372730696072160558429438024214364724718388099108001821240981479130976021376083696412903466023260667464139470406006906003778359144979632325579171192329660419197811653489500750071304494238868341175942692883323764180077087659402419865764385998781939423858171025728094878552542803683075202000214125827487780613430753421980647975582115705650538769201919667234796747144978405300937135854684291018043695085497900245701359593501039316337308684398683146684637174208027254207857920298433022509684921327787129946095935314535591129362220051785000112655450247711491308527703247630387341743481289603457857463205158883265851388608278446756617539506760196609541774643503309135972594764201929342719662645833803100304059867656327928968626404113209637516212060774175940925914115580009725766909059289334896423560360461589148983457069751741964634267628069614580659216495771937271802336229507474786445135918157729961871001797995776064133448120147627869036702483686549302824614910781211984720127212652116172821381152634433240522959193004617232065158315258872493816949790342712889538135189557751819388070149017640666993349467655693653961376971706304550290251213355891535331368587436593020779444806690582673689880328963704491140806504847213145027552757717576530388728670535025007320143552149031968504001050935706077192463440131507052741646295848729342392702318656545264708338165556615975985979088056727937135132382934305818582345865239078537977309897447018177166667741748225909563154541136340791501672931592650543618392240962763354093056096190208398215569367021183284768288415351426595955929343887890337914977535507334800455463782207366197517062548578188038203082093202604622266284032038857595115892941900043291010681798261528646185645216224298491416562794686354236037775699018428274920334815547353961278679107612984892409235309529690449512371137159834966249339885566906495810708979290453069392522235280784430120801703646597127436915310709440049331034703522000816205231269959286228242058358314280886547232272470250938224405184007187959538362828638031635742794498354926897867137288564625640154169605722118129618980247252470374383936842153279784489050708405422783602291930585599423197705579516698989031086252755874565570856229200344449389016011507188804386450628294972120376134184746208761329335812441275840174475870317495600937000896938127572278561302012278792392767080110438754355572533076457446992897787155900542532829037673171666360282865264078479321666949257098170355142472682583464745642720239359080895956923248209979367369433364468582233115107897272741246226639998213866355333262216111017824268664967006260435508760654020644885097688235240284375268975216179746506781958727506626098123011326165686730183459896948712600840436274263601641960214054409063915889709562453770167248181117410269536070858710766338233640924164147853910789805072945043119574750809364470472369432109454448791952361186219278298489631166847725358127004562926839444475394394012844697929371712271974047456034420464434732143569180496754928624157980663525059293366422815707564125639744783923127726567674692651929608340779827735078912758819919836059160761621818619901728534061359950946291649642116148553244581147185639182333088788484803652153207812743705157173598998545299086206660728396473007851737487182693456557218595032263274116181635102320323920063101890299851444421007528738744386976936863551744599066109824096625239773321753147435973452017000640048286410465130138204758517028995796757459800946324102688329589677262803656061649006727560125694810310865426894345154379148817060666632884836311736807416354363784411025173076848889719724574898240506684405210297507001988124027335977197847981506295411626140747899437485411803037771486081724136850434557347027563484391648375590363852780619856606288181363772870207469929613874111738067617972531423294606015078609395823854421223710287004687597891041850149830735570630098766891545932975685167484568330766236651485749747058798623278143731101078791043127956008598448258116588645982240304556829215377673561183871087278293547488164907810570297478801090425727455053436755140840579693764442941201945133528967514059896843414694383631762426799128878069833770629706313983379173531673917335761527573151737399348625424416543383740173471366293569819368333331693934462000427946760058813831205030787440085938633099883804667493395365614819588952737369974895184755770502124357662312206110985329420849506887514317664724297753405342115424038034726294356139116516993647239296083051289699961360936206517271989256813848607720678797459587002647485531066572998054887966406447177669316721768824400035713463969134373710372155675500719832984681893476476526411517329434212337318283101736507321201596652624899526380826531022977655879700178672375607278054756590198748593283280577388903407932817197897284199902805698749925351311735111617728923384568891090429487357959946904535553042404153550659438469523036769766133217838817100118978939575229970850926850046576458867797065298195700241465497677188911078913047979156123224788982640503097891981339084571529340124401021337294631356465504592393686741205891319332790324282281776406689052815925443430110043774608599868942855138952029910699614595799201097942353505343985704014492949642194188975330686284920893914359555304643347806841624297389998261478056836931232451808974402470513161014899660966785573340689417468394461697619062221520662848004066693618142435584553344503207912640962123199076250007996843945813640982762173740607266711244979321728380222199659472424127050195964307199729994396601317784411351013917456256003531747140190521942593028983434401180185007561087564040348770023554329424259067452062818354184592684094678248285858522175610423333056152010601913412886478689886627627696714201434275705781382603363890691718733753458071876228833314293903876077257353149167397354423522927631848253517222655573087621485799953514702634303461855441000611740856692022658764424346590254123376393952527841203886471576473821037445943592948788136505309289166410710736424311616909195506246602733272252448436898050412377419680945506308823944200015113395162393043599814794828185944455569051028593347791748017667110959284949675790179623665597496669668962706194702270009568385873951449207693576521371682944421625087945896709436967780892036401452119673836578890337176677946372259504882402137961172218567264045884774081240174934625190649358835550340219900041129693124625030524104810606439907467322099555118063263501942371663364865046803711286662545570211843096175275530987050470553947177188749624472524243154278251718931629818227212598515828578998970746437166043442326721812291753970386972926017239534328083623566046076071310444492896803556835246430494773415511467053825671764222214686856753297020936601234399463620098828035750855213750789681671925540267663573323326853951478480676539164553013825595633962231348649089473519645177341681709451057288852049584895015416063646348697336160176333515894276570620141575348727763366457648654884229146771345645215779778890383597706646566388856393960636991521240768188252553827499464813633020643283416004924969009305243229800377471777748833475562040596338386266112005480342581727575543147191476948981719644249158189131914885579311855746648811750599818839972890814841933842427540880030952363314066387148257629142006073042501473276673676089673950161456295220052921808230770115512105402807819060426923634703138977016807278703943809761009623247879372105734581261983624455392190993458983813540224691096850844013990975157877235435870003770653666659648030591927086484525295213993812598474595208567966187339960057842953211850398993804890402018894694856109026017133777321371682490809163329271632478744636767674711775163710748115308369011560384356773911504441893665798987514246505842335582888547309391011076943339110073838580893896103957334740843997500501270524929798020821297760867948070074069350022015833760031098207211341667531900144750057966464128549755964057397235533324929428490933413452798130903451383482785762310003686299966985317465831320174572502917982152940557844508607166817817894820711423919559156410381322642875925998457052091115497444522890832637492602758817752449423196191760193431462111793010917322117827449467373457058316010863116288102932979058646863360124027893484261767354282423630565298919190823671543961042650150291537607850654410368170745337942856108104439899604492673652804991514897186327788070348114396001023622099190638980309390956864640884024872766267604846497177574654656529541851155542866612188470178192167355921298133041113034232968127942398352451586429337032636584917593401936474933962999052234136502511904367037066487265317678657242941111191472333549573572935854503325742518673182024141888393594628578182555382029198698897023263769855067563984604020210002493864402217029055032393125578277749431282511691992125116318826377528531521629818546241235097656104806024579128746833493113150339796211030278802112540372478019881324753392476426558944074986261488777219050777992144724215773578208221499241576705959399997661368192864238691712981930727084416661728241470631470795586587921525820836589058175325162956419850335093586685222558156278231235161440469808245085328868327019870296143550496768225816564870377402475714077199003537855862080034034724195086000208238691286650689576166776191501677453554700285721557513609127644591464684133758914134083220646223084387361354176722018563235245768947996015702897767860530326201686719025204916944081221417599803651367862602079515208270221659803567612845062133376517552176127967113835439633211351167089754159427057862677940575146656969847091968232761140703320408178208043684544733745323927408443104752646908488270761079815499035290692526176425397381106608258342786595219365590096300434332786712704317581177284728053745231814326982034799449588816854791881943420322106927332204327882322910798508293220793401028529426891247298637111367962604430802443426687618403664038639759849051212594873803786893556351343767461607212746283106593628147642693531378113446556289207212273370877577568819638966349804078991354694893354073136599550668475138927246563330987101954341172337982515439459212944130341282409711971391844908663867056582328939474734317531280441823639263042241211530006924195194556419440286090723238390942063974480060318193978364871891549406752129787813889675467870634958094167162297469670836382979983908525357303334731854238319513295066371580044838937214780775563421231369905069417270162364992436353372579496434603942837425490985932659666317249861492945159036521238084464133216921065519991901541269673605802529805485928760893736693463121878053062560852207195738724649033815196859927862685747898512753797843674715114880265124049507464876594983015868027455759454637548942894937991332866523341074172102837521357226207184533979159496714682256865790351105356391860972314397745960845135524632458794954840565527804536948618766913588189790143003966863635410293816081266339662597081179259199927882748754318324621748898540212785459784612891161459094715437235221250755937359256331835185576537990946290397269285225572643202398271019934415933670778494797772200822215411343929876971602410378966114422019333620934892838090415023439330028570850331334061663018210747982983861521669413836243640712446030761475108772456128400850165066494080053595953054226723904289637651866359119705853229873471111222564986648737806585726389728039127583460490954841633651755932754874946912630995009176415386150529557316729627204931862807013246718164146144119575775292343573158199813482064205684230880144244284150220612964110422096463406141814112795849248004685523425150526190485757438310050862715624162340029994627433176231595135572785085017228514308685862535545922820521022273686172201221916574115724389646686219540401744425537644772911665528425602580405249377392089894941993703184825039974641164479090634938072060380691217585514011609915214470796949498704903338825818704886735091032615719847285509313532607528196762703297258525115298805216584323506484494837524070093150950550452307968721234349443864750588318529195114395619241304196332200528913742129664555945485022886254767515085958905180067369249089268091375206343571239781061681704386689821650913073903136961713224156626622713263795498384353673653037774481085993412658909312872165837222623487629735277219202266797101733660822399900693510853042757687821362926572837189402948302619105277709858277965610948403868698537963155724979393653525886566673129969673790521557854760568096014804974742124839107775495180454736428594352401798903910339662544006409692493922573905907635026397030246486651684955311489168816892006047630984199110233616769090694257750491453625208704767128232224685875932121213664167018494840814494815896865087382931960440635148952439424383335299477580392896599541771378242584014103672498710825547940615116003893325642429514703204362454319949015639885549751554572466810041436389199923558252311478616902683376019971870392427816756407087031614676391915769999149895825665946599930894028853136367265245183687754986582223785268642199984890365519348754102728212701056850203260254272498720360279173295921350509170594733927885740081658184546721167754024274735036287017275672462294657489925491520856171354932334399808386218921523467085078907556852753774982425398201565278063270902819131729177664046410056292770259267916392361163172738488072654601868946977225097807665691929727183396832695450666156150145319923210829449207123483511509004337997528874582604465346560924785608087658213413203519359696944615628118976035746340956087153911072833417933659985348180778959690271303365927039641665134828014001059753249297687075234138441421977568522754916524183240901493073634514189559914065104563496110656383548490576874343420298100095723350877843929237402420424281786107559811185887574683787068721649881477559955075711508212354983319158569919450063544368538807357313958640101440455691882448591930939650229883806622987997858382828999550204723916597907005697887392046418264708354656479647551022608187804834030939765441818423149287654056261433486830073683166519200809834561332687139128102273802449506836412882662515601009923057871753872301566730382675884316401064656178146094830210927852081457656520819420128033990173719469450751679374648987031467935262559605589912290123103859506072202340902202137177671159032956907520387936129627417684454686246586563052904800072781246526708290094352723769510409868154420272137404955980554291379217573366099124274298782088974969095991557763594523866786592088178568590605529945707375503918604112343416480278287445284114833284467188050942532923734510995031359126697330963403754338100448170741054248883579129295972872148013181296608865794075070372077614433140966507772199383862095303959568001354012897584717746570770494810731172326848052683886466578135140142958757992103310860666612299855098453289195781006234831846945953514147609504673920311439110453508437425941947071560033928854274342299935991862859668767568544797809005961363129828701803417534586404272292817778280962170140354022854793600594040756344534226186337324506637412802871107885823316047810953529710223134280397938944280920325003609921487224383015682963208035376011256289607504786676417207474913882179571560122694972450296125431636669031469689522223318975118843017212524955731703340566434431107744879269497890529936763138495065372449500580143428797856180680922292781850379227004475927128399208013341888919431353996304806968231845082869821547470194260776885272713388855266829327900970882268058063984313902442705482892433802835235706232124784074340753116208015954470086511641708347368184049337555662139050818219498900871239406755988712336690227881538295544644004914642777155716836690097746283108131499308264747495814343208999855843860973001006507163069148629179613101760839668869715170130226523652917780886756168636878990120135788642488905848112153930566784968145619495680127140236787093330551856373971862943932322916934960659965228400228420457863844570631815406840075512956927919552417784770037896624446680723350295572613055787311947942862616449487971224875877623538967683333924067141421228496883255501794235448836002718833290043616309603555069279730123974164014271532026538042241684874319026458847773143357802820802769769367371403240506833090940461291916771391262872865307595895363349571560861841317869998680195643780351335495679466119512661220033896576267208189140820504018915536953755266758833798810922531029481779041131595672395838223597918856139830277030479542573014755689211732551760853696826491025574166163075340573006077363993822081825053917356895689662023361144257025869247823192433581453414048845864564258403218814418422314645537295804445700470590871285743790953767106546168300065741224964398803172043299458529716832464627660638596178884561289261935446535396740355436155958211498784902459846003684567071181871765986510457828953737259015436265674003280243594871734649329490423805678178045032580851283062379831476006591645658796157155427304668567234506942818642818393699976596563582073162174163713409593251643550990281030630033184198657132934051547328867781903478265145016245754927718556862513776161129670713096828048518796825370619763252131066579327412328990919032227189048981395898646233258053307557864764203990020829960918108303148025244937226145500749159553544362845446364901856270549800031504958237165793290614470419051337481274934860329906802419855105740580521474734975646183681893433020508347930237617301332385974302111316840668485504714666609515920566505697826095204433265519666932210409589625979924157546530490140231563267033071626238327212511843165789694092440392859495996300754783818746391900966476519307139957881361988503046498185690220588620496251926232498059102891424773288594128280633428699763351029123767833823622070565579832814142522183061467153745909198083259076688492794304401824730676614125466755889064258888521084680393663024268418536580799781486475012754450315863277785401495524022632628922500469765694824081175544034918106216007406311739131793281704364583700582877765061592070434332744774644685856470980218121798409195971308610369732953207336585119094786159236997948951994576453952769182112882928527146598692519758224459517349922225556178702150042695405934447072601075718411099211243983854945038763993726990785048905568285634335738534874007545252570181504792103847870342179095200830651813662213002913914611729332126308520726838538461247586292038694288479504836333163963535114352736163778144993272036149107816636529337020747968213416922246760394192392111803113363859035938437144292378756245798002345248973611434874149545366748308008668539650016123796512819343436127670684581866575373401411893498300102768530185110328132451306601985919464053774794013530860593430059713696985738740666235194096284070920682653809674937674413631829197863661583760876328609419327926068582866909813672738140599031223118318335480605549390348183823416425138482077856822829318839383093998273968385847831526560776736986637822756864692273466563834379726080769354788123985589178293619107078532483377409545439988851262573847715368370934206654634571171787879916002727767117614258867466990417610771312815799227739391994176101851887902495043322570797366401923592946363540445818520383867567848523587374416493579765720745074427622473486765488600344037082650199037956374386701907840172619540757988732215992763236705723718100017499322367755488435554919403922525250754883098182206279648050353533905911393109362198704362571771361514116233111643330183622192003246339686680374753050249321837494844448263064709533088573906505795899338037582967039709348049793569467945818064545056387495838443475557696729237676719468338183255682639213389008679771408008566416263090643641011086879748120924498135860240608677640813972465028548573730009359459132882316575385155628378838832482026229300944812336837306683914122727383820010648555532746702707571458085100394002229547503055920276863261945171807265903881222880487456241441338492839092158544081106233528967051362585539466125034780035395602803868628239718758098500223430758207668641033621837327001158863812483817454313683546656137820219048281162261987456755544136564870581926653552182208508520261865887477682071236054754897455980473844801721481892643601151089987414619133654463758584861318554521608291527997525258409305959109156734227690217000468499343276637393420427571975894659370150297931636541158031763952674076731531144817123091087019530509926765976970185058659258453093849848453083447184908928575403677496117574964184838881557393891756047899609519430040140784291311177490452572658442850379204235203007125343500796886413938794342770258636452334023219451088575780323461138654669343400060377975530724750155339079118122455737660580785306357709854421779597440277573247068702507119524833810839972417889013923385456706020171718544651884312125770302516806760291664303010223278193653607433241791013741056517767122497924205428737948621224026059140724330444301540127285276309423772795238039234063441258891031419451839249523974797601123101868536658688032304565334196460216331241595098258984887148025262309811554672663874810333217324085149015810869138697878372266011470290647172510959169076214140944894565029579866995847905335257796717291846113378992482682257044174127001838368631608501458591600997070194913215879265665038024718898155555550956924522685284281848935065722471724807076996446078883319028996359249373132320723180954801885421378476136474580018978792603934837483731138011435806355554387950496258157565873267482127230782830978413767060617010591946647960891607876833500980657647527256919938982288099259747112338834209050754494668664104439973241345880075882778969867363853727691191123404603157039175806074929589069996289512385930577338050578954930215950615156562722194312793187113532322015272084319901308909914776232003683952911130686402458092879924835290782731750447123518474551035436432996434480709273171173373650660278925227773826508663511831810003067042191487428012195900219738975364560209843326938499743119632504646990751729327297155677399042364915878247056452138755070493164456241322207121111832375049211674291855295734649957485864899521393629122963177343500034711708330217317143943609107499167927850019836528372780738501328520379700846759405457106259547039831994313408891261065485981892315351338935806234201748637591797783413083840905413967871712968979620620501319939084637314975099185723237478704604340892433960764210916786972791766274013733171357657738471076539328609743838037811758975334795580672168124864075582953886601182530777454477855269116953917826253288732928122822121693220976425417819241623749498786883882350287405855551189418476179062060228389371400319565919578838874390675651798939881055923813061971872727291464769252501729295191882573325501939595741561719103384762871385576238451029627697790310791259902953950299037818949792611540714467178535040246860268830743986587383657905668446995612925684065949426394165209153083408127364489073554969975670044980284120484177237312997132918233258546473429810006404959723497468584145495480707898249913172754658437883783918243915087647331536329545655108269740357878352709620148118571225162965649413267809604336210058008472167396707961415694666609701627857638333646656816046686475312185527744861319235248846296488426243200731657884567198981990799497382198940972246595797064381864617208793980014204036077539613918020260393191396863346512047445878302234672327490566633753077356414874332637882864038870882116357260277185367917614954711821559199779220806357472591234146722031105487478415270010782344044119128109369514831301439675568588442192112037786836456925378383961859393026675311005565424213515648160123890283556379779995573851436199010965495891135526404367407402314014073127172992166890096098643948882088683522908637184953308473984961461696070144104361458386747062444444019165387599272245578693610146695514993709694326604018400428680847831915034192081954097010224488849247551434021885803534283572938867893046204278935648692720861089250987768480769481032679954890914550913784047170101054024203541960457000459414251629137155401308378177231791867280217025720838474701164708995743497261141976561685490102239985774306018193153031883525304617829083403703291336781337030227298989336218186525610238569358538049898105357980290791575166860983196618895830887149643864404332541276670415225333691782813117861753362175488381262148576848318105704514511761094687029372271630603021129923904710346321351880810784062820797315967151237119774614834859723145642910086121877616988906493829174931889074903717162923894370900067643553377056932437539078820440617190699816134946734038846746968350628073669212443414263643770278460367646392409061128366817069281030027384456818898881261454512592402353575944171223852322507051014244927405647385823948200018911608297091144050329202285424398612972040842963827827945721197358736915391664641361664666233795336778854326189909220605620167413002062724989133815434663295513482686731010775360540790199138167676888004394921789333935594987103032533440729265566215940189459533588300346055284611629543587275898070639904626077282392052648751261649458806225223627871586132733168905271289783603732512002773761144817862764561707928208599566833845569091967729100306117521884404218928464890403903206201230316688748717975581850225088671362414488051066478977000576430856867070039485773456702799996837157278701640957606933214562958610632034859053180085641962178245132246044999201363299642021907493229799751389599159728069413341934503127341622531832102018170252018904060497065899838459434891290046219076167993337376766194653414611498846076169497220098367096821544475095905796583245148424524344027481777295579418126519313456168073528026317273986931279673818331016571159713519334915765904309582262575259569096655383470406132052803501780874862712128822994115492161838067063372430749153770778272456363417260964487852638986430457657769137188634312307468020743948292365066964527076313126283557900611805921373148293259448197269890682509305595437857222399514686110361755488299998826628621439787832186323578584031491284141707079520160345734360628882822008625817369425550478031026695647642023806570729339338285839577790650094200174549457308452438628536542782926347968572089132131096184596973958622579853995686468699888819352436494841971613090752277769583117856485105061587174037838877654467073614372480814159504724968545789907520486204330886316623085462475638254172633638888567125009597003770202782468016234668665030935693613493616926487026511886821600886503014047732203343717911944931687799848731856778311789225363307261464943966709428008001487728091276360586225676121832336450563848690051488164586532247203901415424337314374850131230785694004550130769453827608396541736804552325845779597678329888959690540673420198559629891937680496342877150481419023805294053328986128129137465117458819757098920844626615817367558749120122166373349741129478349911080381895895791703874718515738330114366227721966487182794706861755907788447113202783739265435423379815033658125500334950422813442514788230846378980365221298865541570578615122336161093718305940949556081269751487425452929141811394276968519822343833417964931048560029418321776751588177137241828144442766434248284257346714154413449288941643757439052292934887271365192330923329559966153489083334768262559394326500124035310597171265809337970149502103740599071599249560368285083875552320230008390599968653118739366517217747072359814185541299081014743074072209378050752423346297636587296673697643702928126003591072272248806841830809930416395167166626871719381692014218917436756764925927386821559367070854583824245872519372819917817716480780449036435815972837052191295720568840802742752291131069934911235299439756956998178447153926202561963807088128877022691188891469239569974357236107590888599618614016898235586349327996561304333247965037732894060654961863625753555104000878098335293203324324901220410629869843501023424683379793297982136904293361684907007379203824813213985258167749975556849815768781906353386746512036714575740682364653901509428958003594524707452642246650972884412791942801148185688849685980177836094588352330534795900985264946581981579307178411483848070598449825162500830114646333101778308500627180842842267010970599975146437829001333655902055133494362095682724120025313370123212834190476306517330877219694018396088490757491127843344811304124747116979934550622145392913774153243238694987478446959429141091370667582010140560422295398143338037656976807641172281519722950304275255030042068717244581627572403050442534846711708491228634573651832727035158730464572143665629874656026274004027497069699378962256037190956732505269908635574592973937668298548787675445213494716285219128468848011861076469530613026814978284906526306172934961253070955701487882137243756358296586961708210761095088379326350516868796411463968158129588283405082061138754229724754869070474806702054085988994022562605003261342688391274020316934881681589528014046463809950652736059507470641802119171901154696366916543972890097741897740830040088725195688352505335294343066521046386365023861943284519131346251891717447793413998345338977710965683747975737181077826659875654659445046971848167344357962953735988245325268785466791076936564873137481553868992108399542746477510601420952421354374352057823028136395194129435057346733927283612463319652452631413427013453694229934419599867957614166772178965112295482914691937904361525054740705310971860962578437059126496682833980474558549287331059781780175636972635042320020880113046462402770377671695305482436325299166734877208004998667289119125864818243188706084100891398151350169584530991722953860439225882881900721752788671030947844741573163066605792770838961423265640582150159419492149460339002791986607200541093241546276565546422100978631749370780189085796333558698330299871914051684986451135753961622393483651963746864072701317152471587147510273275895017839060184963494735853280511014013197763073654465590944952375025992769167318786638644034224301569409277800859349414587993355135707412572117807922220280174142636342127455727277348949307790122951321601898758380742311470751427985435213606085116604569779880368723930964704334278522118761339538082423172338895545909555104908126786542539444594714979334182349621220580259541103462386783358938614437569428553707519466134760725976376028236946494369975919093167353145182581460317902523581457455484303173617372495160109681769403590396415604076743307430819082695796910164191272164864317299175905041616368466100870930312761129351663476421997964486362662207850901192151191864215702538367520535990514032143709746408148547338804008185243704736962225332885714484608162276206147164191282061851825404215951588678211694131711811527962596687468135977681441706943653259459616558330100420731016806296532044433958165260399512295335407492337886121153376721986471616814806307963456187661770072271685641636452882158394232412679096441255008652574736856014228831293461589527047769135502138437247006936823208936643660786369458735731779677419974212310648208846068223746921823006468483433784388526822679946394544227159305044700307192390969659628521354594852494800641634280420491200516393620653375247219070548168876631820246719526494660742322744609136573113824109626700772633143865553009396787667090069927360283929813063340431074607980557515045474721278165094825519018167583032625086345461127515661481608548920969341015869250434107720175579283128997790865082135888376613154654476540325946988875290678825966044110146604173323427976438172300655389208626466288169806366659232569149702182522950828764933501189471142270647388169579229212528928800071580469144329616987086640657895201893605897338617690577064928545545446231320677172893179306591615093521749211529327436596727867599021685417289947539687371745756365911228371459987373204492633374195696609955211446643278945236087416365251099302037978767395070815456175618847230946655352571293587528650096048146814887978656190044461314504475007552934186315804112925349929941711373048620424908370533871619471575218816725719883874818194734730184807175763349603183583738392089931611592677973758247044497061376926471529601729602085807185171872834080347224444791979758894968783090229523938546305060728758865378924338006057377475969252321379046911706532707552997524744612122325491608844771791655776549610316865211501743278299540719113497220891580222409203330659077736144979062424789110155494923122738780492517358460621816364670785876352047188741322691256663624554844641530494309618445175400751374356431654267788329846860815693303296444284177359112351301638808271725419286056704513373239759841877259575813149530851332712952178549351419188491743524430307530770580540794217049458399386875416721192497519520077194652123842905969102451749570362514834286476864668538897816091326169485202233001351151668059533495803702016439306869059024461958922900071826685440372743683408847427570706097519804240953663162653220211575567953029454724085984406651199178343212079083688152370205316858717502898256866198972483507377097886146820651866070570586506212822461443986320683181014855829545196693226896519455056585740484083073634831494863659785535662993820998441450562467764176559511471019884164991853794733118384919778875953004463654024941513947837169913372447273693196447875791201090493066090960738809334767194654636850941804027410372285580729974966790494676315172865599455676120742904932107593099741290138014561619389942555825323655228866685511210214298554255860574797185770850261713907316445744590111889042820913704534475398828964389186984203301386158280182369519950584208138683986732220389873533195520547787308090552710746209835818406962557566430278107592582600315644864950899434766730090563874864012884790621920197897711399772903400717671203621034770451376160392780487314072321936324077498053580039512354923061401357687870038804852972094490120760546096307008759932950766216588709963131442177722506644621792942086766867551591128923415496552401457016765109496686838813414068210013772954453181692787039018462404120312265231030933804853547575518142316747935123600977290709048574883390871945045283142684792484309726803193984884454620272478032924156460992987329465482081919148312025264982395643720929753134479734461960757685647164753353730311898706506800661257319688271766162109736087298417927577890086447596918966974904090035703581748891578211900718098465497481764032713165875364986104758577483320687410261839459707994719197329302485623213869191075665412875907671168333197787539314560572965253204146406045467948442028728898210117586792638697599044540428691274967227226214982818570776466495098121681374110747878702265012354257813608579213283029177542938190014253654318119839986887595006481991718705662971834407215516408616950000413357976597746063652112478109023581469820526433741601097658778301607483167359642414297761328090106896752914666675713771123173475663877057828560657197156065678319809704023735552355655366978267463960008849912940951578753338274359979974378778992773161622129219446373614403710932299428495434462986459953542530404789586645015676949286403417149603670935277024914244025385246413719196896676036745096042239820236132605894945205194324520024659855653482186626774830685973703860616433972758708655980441251342683050131087656023663214607596948594071747360342043228526379268190744958513040006647085517881628748232592643627445193259573513204951846277528683574740301192065978266648795101082576654570469380271677922220728419299039454927435956897830571346012220392440196627401410575826494458484461265469725190705415942258586144063431737000674675659359004849622478989278726962249450584706267351617137905882785140904721913196820423568609586936160060708916038808709920141871826699688595361525830484524950958969612711009799941727207915890172334611225301817183245257272626816161842159150348913228373087585542820846607545589173354857804342557382662504108197038043114221624198394442368058765253475165155757434458383916146481475987423137559335037573048278495489015028785190631525552733346832455914360329519191435077969617440402383712640190207860216257521691806841814033987020899668581489117823132181864361603988633704255271599820572332919939494354179672888912262417564270374580699045324321536493670583600495367099337959418133500995049000954768666831434050769810236652558073429989238305792095130958903765033682831538539757136984888968536299822880602841482727082029580096822460070562597466931704446646547793439881200366105375959622165675745306018202568197481665967261089010116477361443140436224834609338088983104398404555895903874488374955382921043290702728035117202270318570748890484274586283991783985825269698918779976014726682453256732386246593029049083297369856599947214955817114652993945573039780756967933000494398058370996625025595514839731801624019622052141759558479634976108948095343391427307588926381922370404139742511891857136016499827638853948186442278580360336517852201002367563690241172328434632849747144486021735667087699922600168893024385650856404748208849485897106439942656135943404017226304989023153395012436364909653787596594353732932220434856494905249889094211527403505050899647747708399444964580313165896686945757991001342852624117529261024463689342213960782892398778067699770451057692008873912017867190736770167578497353386431227051444146492877804630073541430597672934742375540379913205503055478105371801698813760971011744391381653198264132200489459191380606346868148911041386474616622553443669125621835456268796595471257905380664427361545607529058950129749969713859151450304175447747290884583292802444649617222145972468857467948115404590584640385413018475595875695288159297319253993609390169129349134030862821267235214914139255152500263544441378713117784324475070903044087698536199082341152451540674281138297245970316175417043951117004221541106186613171143804776474198785570628580192239633319067754006317122650166388817001503580898178757093172273701825569814366258589809246171355173045691592387927564457213243776628770343121342071643365905460919819057209149342749850104679216212384944844240172281287463860022635084026182163895606256603572306853557799913459592330024830681956542533507818901610642818099000326357180555563809160686687859879656583610451201957604484489675602647681102719683658707050219425769785020547607902376371094760044902401637061646374492068352753275611675875324224370170175939200572366546435357293744322465973646794301864698413011836498467849266674350480450491234528057963066507164726475965211601836718632280460981583329850898566959835420694173022051426626597589929294333817293933303686345321671920141598015165862710772640449347646100324221691856000343329819161380644592838813895411482064998742793825537051568377769621370172571329761342480277614326958886900574871437471304089805941447915442325381201399882996777850296284006679767293229999222212660506130913837921082956036688266453011161560623730195425969931197250907831868029935296147145592334662834238167800987427351327168265081551045974088141650330285766385245894782360483788555325714766718889639138431064156645779204355833526766085667898386780228529397964422216841420367234045294769934218733172925535229247810832305772176896393153640696380106001229536249836564705267074389377797118195178439651208871310326036438326922712468544385922410890864248655960150444901380608799390905953565101185064040723458018448588873286902414588359138368644877485540977877709251527991555408926025370619384361416971613025208096592737125561418979025086609971654303098481065453829886465725800674271662878698035800230077349863347132497444350406804936327791063453392167424525124299824429320221199534947662999243673087444612647646166706606620968547891298942331599137054746720740071654706272212534555691041364405284008135147355887392252454220477720394418718515082507497612207453521969831020082661389009519797950775767592495701701110722147355723322681625176761369716649866667752454913757004402902072574593131406475373790009232661700212144781562843103540842295736124832784025439321956764695519764865535245841969280083525965759542324489106610084119570883970928208373766262985586205441199710696112321359716138787786292548751424494798483661155718571004258273614412139080808073937847068014726272806247382498308979160930933602617086851121813300626979570859552687068427733273535163258322159921119887034142703292895941531407894903790186388317701156364735267199436544404494797468741647099025235441628439470048894334160778967495443861250814882181023761938467491024622388486499600255969083089720485718843845587570238726638253574859917916407821300654152432361896637830284172509635577436846199618144159298199806904609658161545607829727470836674669876402612203985474310224439166287771254780036800598902447885951295408482512269535443591674136879506670919718194065580499256540074259957514420241105002552639050186060886633024842497770350900307428268818921333096159190972366612647069518905094055732891943954204534632282356500011512569214815824900254148484943532200707883393311332031749517424812867704936536409149835742978879798534000928805071998764302295766001603827741298604505833207198787934949291260435411695408839138114127073771174335357887935927787612592695505739565286360710782947084497530481127049830570149770377303979676778264738380588153119569556993547306754941889976811528197851128357632677499085118423023382227732893302076223897130457509486254414876338753407613659928791722286878358855999682711798013264226180477844362233350195675122228369122757095908777329062389995404967391521877199686806530987088493641705162962457344654097167634739625507957095723216359493918693544978554725438154470665950777658275845319561321271086241582055923886708917176876720828384528387102753354735682251283685540404210842940437236498918736865132518136845629798952495830916034351064520356269317944620624746999011074050897049550184675818466513447806847812119073737391806349804684678408636629590095855823434130271934937456991934275697465703413586817949309584994631591817795071871652707087746594445610437647293078529571803195030666904652026980742888480101335604584917236630156346064508397111593109328963436322534633455784916733850850317480756376695496603249301084569895607925997836925044732594085597609965587494041130163432440219805372130594583009544513236581669372652038384660096654279723726978675450807734928460130785190007740617503938789226465471827387076944408558164831430927817072848037572426673979558239355106999966185771006425687393953729541365153576214952147806434719195893647870185914745434422865316321938159984918683133677105619522880126423444095081710791973675014748547148184942583812665466525222282168273829866121133823324270346015731199667481604576095723781030505781528339931163806596968024910176182574884410077927802254171820018265298154724974947042323325635929917566505781683503861800398149709072339460355774235306247667666404831577654648422707486181798769206986721731988577375791531742742483301685028913887265002112903626123795404747755965181827146671698534380509968866570598173291335598560940368895163127886800940227895328376770624904397645691315466101615689154304416668222107308316457327108755621930221812444891665636119269136135973500225016180193885124506699127174733660557769822107986689819383628306167800202241711627730320839517119371521657258535010392919114700374049542844839128778310753760485284184187122607698929317842199007376072981140382919246303619989318317978278455787048682043333406539102306927228655398735580608372746679475897143628487592889808592847523261768153506373154465247073050541317292291752989074913220939027583856815672750577315257131517059389171381328821718403536200741700637609893959333058775724670334087060577808469321150190080002474156481186403489920168916632034106982068752401609386090361408352960926882422105341293779358849719461253185617153830777721505780590659595295722380927642199937984876448337692207244114561608760291250270515562069111496577648475591217159476496992083605556536483457252081723537158643409763232952531214829461867096730469597595387375130716467755246911167951645911193515832665249790582767941017871478221754787495789835741840381475120151185489908640339699351513994539965642242283684278180272966584592710254925504378161147315339156412915931292514560710349579491860982159365443628302113923846799945313607872805578685236509893904751168458562725024000586986299792742611905690686028404648147272161278108764170893531758910665314157395493019106514533069072694674947655574065275127976437112716168509072598899605895304945690886522759639817791091639313651952290654682596538229290730552691023802201256106861297555178271228017704918075167727699520306528112152841852910182708589409804080629427572741903887878270432405783032717284891418951625447886425511088220481824365307447203453273913237510861337832895031481394985167688293287669168225764975722251961938412893768734875957237557325161325602816632655696677272178594602905435311985353291873452515222939163527169126309239682945337548321063826877330277598025207297042700220781783630601411246378916403681938615584273641413803031850877135049343876353331341278708213725860347910654649875966289989572064399313924649361869645824383627399106818489873542017935963928004249186405986488948233100974393243799560023714945780930667121869442610700825429556476754185469721352103203028823835719458404057810332342401784535626805162147979647926894455164054712710922469923859490686212994199050105472821104215506716538695846248782830418989201494426447796467137299646287904149138738688877525732883754674888796784131935700007516315981879855950260523611352873775445230560368359149461419961337770613656538930318736790520429841733789803887486849334297624034048423363147067597570012677914128661521894653047219064627333296228806818442045590410403844302588840974969452146646332625944024047135988225145525624872592150365264870782128228354586141975522330163423930817077741968204034084738269786153590939905572690271655803826637288177652823373744654785987603524663333734024900728768866981028776566857887297859382102547716836718304596394957299252761258168892488358769469313005851278887161446357843175150517610532635835712905426403778685011845741766381377833306956878656309931490974276927320686240065912694811764602650510833671411404548845519306679193440577268936871105402651962534086007978895483944615089149401880082851000978047103638648066205252829331817757035344941016489113350802356078358552050558135265862505554180595083405865026080149237746678266758219475275067353371497504524350626891627901374181949713965466601155336785857737250952678582318456396299793443200136947593429118811336829880923394223060819148876195757243083830946726696507066963847717936313451209038275565306235079788070065748795706980067386998266903306164456501222795301583101651856710669942489987242988846156062016566453793504799929865365024933180260993339149015663731346628145695741790439877998609065409714197622964173459946183040206851784123316503404095512299100187553415196769461885189563156093683912541294456953001178443557811117853142662281875213253251335460475923062433949459161521437710817285848981825943187183344186848835717498829321788284103451520188236848600458008100664489437922107131856425368698953539243130697770488904451041956292293137634708418777147669241622170211352460278108571653586559223489810798479373716162910006456412465248578098712677674931344272881808033588390659158228011459223181759110175992061412506250387254702176840402741871060404584125641599699310480098884042531827265085114084167183136727583297429755999869833389252327976793080142386468919114204153119123497235031290628558930702303160097060843745162516224692619856583935741259658214916938171454000898690598311186578566908593282224353858556750034618002256668947516888434675515813308211649363570369371789575156013508105480747519893488337800933914355560970576653851368544816727817370975286096854835624795150483655705516053547957477366782712837786827333855179223714428720203258652568213303004975723876263530640797808918257975772194563768519513347112894038256022963574124712964998822092244527795561646440844074717563939282826242234555706678020990858395546839186075998889335500965948522345721803637727570219074295995223828877843272515484842381902814799410843625253911028576344024731011260690441013480180764622179732738288372296595898394973141462423761200401613442666000895307848976639999168154455727910902930100322780901704477932101719590467788722587034353231340472855438200746565551689074892700459292977376361601283165128205871426197510326316371112270097270676347513220057303079554273693446607496791493390321252212199553662342801192239489361199143590473875162239242172249089190549529905095006567707538002072688194246816505695416532936035902950856749201926505087487840144583575228311360437379270201755565249171137276991944142714814647971369038580821322456257402534884258774171526846201041441150362347107547211416057461883064915021312869739453843384569672643585215816012220113847790650528284420535009357094878055602305866342833527316464551885507177374387560424443863251995665455064884068615671705862688257354869995579825135828061453500703517327707958068882985362369761388333547973684111283045573390943580683549232155048332427614924638748965184513635596829778929303582321998558487928764616984074286592219843460347660664979515068118348122157441569318336208109545154133341203323062098305637059007772361672025347321979204421228971577823973727793080519592591762261431429249315414832888890170647134273377110113494498178882226520646946906684442792007617190723981079715661325698717159830602964122191530757869085059816266621187110820275896269389242250701017949518097488106398874598696070497494809354179338527019312901291551175160598408202000651911823058129287494451171071134882376375396905277913138523432156863448456419273817776160832548390819797204933111228890251707999685445081241773512613285141909980855849976445089955180930948694067278602809401075526971820270417981516223696679093540199804388613478208422309303218055599339772201929235071773922232910929552664156805862233895098088356004755321527023506349426717866416462842452864259534523226368531474135586379940964972731691393922294326559373680388852646256679778047848201937091327907915215699037437053204341252553872293214162853011843620841738823559873556404977812472803544686664524227148811374643658590954926651645285269179389339784633596817113932172574464171782304357027094773281936476380818705151860368967482620824988576402378440737046755125908272101990677879175342452041871843362994440475004849660477964346404033367687552872712888428229623149584577472591314275844411103993324177603464927131956704689436270597762717340472588955880295048284155780772420719065472666984931333405095101439876732211318199511308396180180341249697428078719685672487507380423799853143552862271524952579141313967695448240679207687683611871221207022119467006757189930750180937901326917031764035077746140732922426925398051690435088773519508408524522302098022159790501584747848050951168637312055712473259214887782847140361751041300981772734498947984067323890365482744760690759886530948093335408693867262809523614026852699547362532528558992433420151706776900660957924480826365723276927816034901457919062583314748440094620775876883085302518386806358163784419456313315446502675797178663364389391883816283654453087924478202715475075083684269452860415939330739055300252253325545383738288370578031790166823176133773407784821381526815525209650524961466759686454975078802200198069272212718828575585190186022924476255913512003831349574689690069151953927076588901426591623880388016899400012559463455144116873209358716792017970965136651679038429643458717970891798873428024741099688007069070794093823486085861843208321550989589176347570991481193922869810051606423825246513509280843790721664485393906359136822288555127264355546178346522806676247845242401448112510691116939207909060362334549657031430446448811940385529580922419980963791220483801617911313284624302372442981243581705350273252652031506539864675859626717755105052992835775257054301259823429308535946607648607726922092832804563899932126296571767640661268135064353306284189946538845053244450228450000537642176016336325739695067258701036163341460408145130675990818006099160449161979175275325518920698199732785662716026241493856246813412115375473408192155229713917287632949349321208272668039747034729314478567763842275328653200489160129232191258448200036092940371356689443321680649253224838273978294637514674685947553669647564653628536597217769472317518901305153217454910678947067893778343180030598565168857992225318958269494596630035914544256598065700124393345906855810098476328677661708030173116111738942019561200880316309418351703862254065375445610851673400600197106244202574600334367384823325648281822602364294223426866909385290944834728549915310700983624811342523345689534408668117074328627112352890801359036948927951620188243004908630466441976296920225683183209566143377214108593946902999055964582748761702814539624795266499424377176293852538964404601084677677215781266597761434135241837752538423681196324450930288819502046286543221895514100571310395569032592887360291391940934934959723906381380029840210517247972533488673650916757244922116385531982062999206694225248156490988090727361184430692250758530577907036908245095642989145669292730206913291516297521125713902091840421074661375946889665411344976243567938834541172035930609563484758131323751462085063135021408950101744258070457711031604487405219707612479435107944138847580745819408021483280522528401960406527236055367745243129888855231281210150059564907680700363310118497131794342169614047592211374201733933941195248137421224505259001394359355922013877516757228217508481304276760084004821787056921581553222533316497823767553104431280565776007891106411124881313964152629086824643374919910170652041606623318412862743300493541735609109737921547401320257981448376972792347705369010214447690378501720147684475278801127765203964964739781044395235721308813104418762827138924874437949588255959682563894130913732952564606602108929068306907310380691299151408568229593822863020906965232389618922057420142677989636530993578790030853814700462478597681911612407028757009803226874008505468856409191775447017110753581900784140129042642884184757991843817334493037786568433870432084789693638505822250555415403771939067576660553050473780171510818152477136621240853255649730520643039200234665371478615246327823512614082321542435708047849341434144721145165654084795547541614239862448853040599557343048677688582672990523394847823432356451627175468350135412845218387501659337463892543834137451838178431500656713657856527793605319361957947688761117435944399922996806947620935556000076674499320601687772168675731520300343435195141703982864365919207318930170089512162112874043716723925083772657620924957077577641251671159870667764203483732618602577168159121350717475499006259705745441265685108573333681346175336533031134997794271538595995459062363882993111469061848974161943969850112396543504865676335144599781570413448247958513979141582180629804992937381608349133899554357871427399319271688153308999050121772240164768229956919816219892760138702442704802975477590524806514017154757398188682193142203695259207980279815876059507875903129554435938744149937543747477787286400304207962357900465096177086696321568064067054962463163864512130652984266332796811436693635031762542575275933304949821088201847156507522438786696758713322474532090184801431445544415077542503353241517289088023972768100217799832122420409025666949119719523674067924638990454330481818485471409134703144533360413527664210785616174985931695073768995227469410832977549774545440167044699925876711835601236090194375758362592168828383446740699401820400579323535365956149763912807580581671157605756055414043280473468520857606838060853266836146138866032283092592104165508831533101863988581274296507841914081174906386845485458850946247047956989697374639166967559985895557566653028333706605196728696305575718263530048505070382529095505949754944349845534537318583342615695430380666494862557316984112099954871504953713110119438148646632053734313737474599255853972566464463182777315971768135253053650932188289592406537249150855847910043979732906620454445270958615517761815828199212999754352674117815822082907033519905131263924242623696251929209645720096248058277731890350166512937376024587486689026329383376950869305695043517581617167364901413739053095407414322882153845226230702577870485989632125171627727663086404445312734605881745388342261698114160816733570018288170596185474006762311901167464348551940064097314576469070979289475469021279696595903505733404369044663935247787759229171947783303715362809848846193716415433846034178839358097889639541750821178840525872591377408158585660650544071565405494733878474180837674225922099217895019876176196536386035775106755075732236953789086384948804699575659441795193135582588647691889382681840717637514713147780908530830140160822837867979553972559185900385798792421996075999362500704651905337453871643140963892042168889686284541295408988282888399987710723417289011667178452791089483907834980804883978507118141541174474975964565675651068093657316665031288105518139485316578920821983440870241188070226844353048319913575793480179553528366357961570993649628530675885970411270753753095862914135476159625077895275320629754915665227412589251306246752660895277641210960525696471278518495372690037806144095973618219324184915698226585695116570747685379429342558094218144904514704122410188567551618628676755151743853261504552931044811970925463866491947740094171345699454505059825969730316565881454324822850077007646862936860176418810394991212001398233177413900345574579425071769069952287612162633442128934910576210183168552448753778720189275213535009099922574470034979527874169363306627457617533670758670642543215189988254056163035805068449087186239320546172447664116471174162670780967792987066234253071175483719099974306985719239987116700718369558461953645844789460528917586302255101295210727574617238746823777755329482272202400935701465611550715082105989423025316453931399968334068239964917938242342757964366298970472452416740861599012244336452510760776862935263209581183085353679229143937576313672755279137571217398527754854541965762434225349630310412049047644227125534597667007733430569322490620341908681117628873437967229679229100666235329781933197381672299197623600625594185966228544518607870236763527738253020895951916350639439943831755110717401047405916756154155946907302348569249615371166240220894282201598270916974143038193271794010903131524037551610839236881563424832885959703672354564178199792355091634775863112338475387231203991766364136264737959622013941705808467507071176350435631273513436020733078140134473032072062660607952900605369508710035907355962834023821691895159686936101976942023935385044224267149255777278106590209860090950419172454694347605623359883897786097917670970733916587957005699571141957593015521806328174348409768498705304052575013870070733501351484377094467602935343718257622981580328892653631211379124838330668883853710485907611877958255139841526179807059925383465321299087379047004152081932622160435558412021355784000754284902209397055496509007959883690373249584548826788523225939429386811225830343403488539833626555170039045675282835255420697568040760444528012728016612103722438357355375640227950766040033835086465154721654214472480867057811763107283299951813666101252086290204348108682563233316871344544629884277657458252810342531295433092495958695080140235568180636654485470998853085173833150764218100296852201059152533225514808203763120562692473620132338041174143645171883801274135032376172949517211323050018574490887024488003569459670425095109669243738556801451131145494577598813232763692591666052760873284203597382500660513798005277168649745161182509782151242878986453788588507104852438739116963047285957964756389328200640345893661377392882840792123110098135286459312969798804044270762097956776990719323390043820784358365750674613252720594391356671105906988033203660676026035953948212570034048481448001187762124772360042078411980247087739143445785490174233732143130437154993126964260943300667493456382570030848120989420181292447917807615137735053050429157973589454700600587560544570948314583091614092187398472917461721688710999523889645827460471800738937718202642106415823716035645280958730604471059479508907487067663201832383377200993516439253475124721651504974139902310584667570078390112051246417794490332223912220441291844446771158108526954086639844629080082976992886375002910484592812867853972404441886525572575961772503573177767708596964380122350664067968774448371843662775148224259888489751217321088004092933443408031724303814824820564518854255333621212524057944359231869866059741154556523864519036365350233792015002199740830442423244087643410257079444444945255095857929909708115349165077856972209537075983154286301023367846095158696160202056804891368899893886314374244207495469561901282816848034852903876235920375581322989906257286012072422703537226007571680639310615641371046889277967897705700124603101540575904429418711775259057607700196278576836128384393504694327576758807502713244749871291961453458229341657584696498534181765887584235861889835201488990909929973881836213411622517069521138678848699842491725538405397346234913969559040215461140455655592758142474704225018025755482726078805819009258284008220112390321002950112365401446792360905376395874758605269162174570906283686768182319665435332450648784124744309420394947744928403133559200622549967433547642600662883417077088608721365297196453631333276876964917105457238786959462606244579682590207552501538475737494932069820393728541544831321720166531870144418368637463358730565681942785440190032970235181227408267141375348992127283372863096765399941562431671706486174215943225973267883912756649877977034012555950786532509804568877671911528641201551432013852720548239097402368227766302823123960684821708231249775783998094173341343939757044597593629130536193303148364883568483595279799342385192110630402483791656645802827639634057188138839945616824889711547946850711673841432883692592564041813880616085464436047271576906654212346749628727496239171137940901132539848518938372356103902419063098500490389516287693734859128866823183162470521887711682656042227004534346601008247778754735133281115728216797538335606370116042408553160281445295734050115035422476106227033973945099563527698085616604098943437171953379597993950104371989863938525533868144672210634928113177688325468801496694916656287257935854366198356322078387991002310261202787235348868145001851494979927842749278212740368950710488554963731633476918567483640678069402799837222913676543663696004121845796805046171230773422722459339027218133932641107819159068415775039377737689591027604368694770069546141238009409477635592939468368520590615608798780375173739360098429787428015160478041528303077837359919104917935030144637712255759369084091093501765168587353435200832166686944657167812511516342896904941123177598429592159552853330190787051603907344015172888204596688437583431030595426850729700010908629888234520902822917000992986896271405154850435889530652227408139725815367516716634391416659659085375932534166771847032307335246353899911733766385086946737836883158661498751182374159899256880653646161679492671902837015542304033325720475733959355495771674022045025282805611895489805916082666116546901895554738324332392200431462453833510413823246620738861122836626018758423913367537505565414981460708889494969273024929811999971281696138924370426208828630143786610095266184049332098865984103631929600402735062900788203067142535974957181874747324596263141628037926473399549994170767624767790926984519765459107802356565851086821238267108024385440803139760065846787559578684101429956015093151016263358037123208803648182751686051665303707372365304626089229811108301809167494231189242566625596543564650720927063741074501643833104352567655807796292523849797968452777712787862382083162292260962688538579344548685926678758033860525023271770541157393513055687114005280546403938769488189881941596772132112098434944893475533626019393812083833920514192345990237387271557732790844849387908871877021783135063171505156148248078945006025117190649388104320870469835838783748927490048387784942891652040006702206524590508657181093528982849206444242935014707436238032930040381409943741718617318880703184780439298523282397182201262641306726760998753151525151459977134733018751126419661356320835819316782720666538527419672109335954050797571802107865934902953149038848470436124931475842442463296847530692514185279713882948879042916197991293892264221315313283858917323395947478039813205107064520255357816265730466499998067239630182393558192941389483208537384826011884770835571289304974128863916079363508709520280517231032701796509183388812165828042151573273318532691626303053974091204093479924877217359815523193761208005033352460376637825555910279201711375591803560116789668806761447946234544419984212409488359549986247449632659380997315316542617139107015522236266329455821262773708942849925108547011679645151205321302738261985619331402364422687632722602604710501883240056074191430739264430684648971482446737135523504474592550762246028628988442076822055213227676478744383851002914565413302437420348223801473437917360020855117432184736180395292681621271377376349053052890576862077014293194972409332498125369318601334146026778758944621940840957472899550636002519610066370227964794484130659029761806910415951192250157962891188270893955333169695092786139753561288583611413817980786139420230291890727229380705390569481332853855863997163127456542571840500562976607004906874758981629786605309539190454399509727240252382145736220317508713715991385100296295515699789615354078922605767705897795228529952134098528057883836635294971406155218687998493750646622617231620650402987942020842834851725072669603307382266686526354041670505405200458432979889702236896370091945712656483774695488430368755722620710052837367866234712964220700608914957497192956388048754325310077890037775429737751516268638972673011556191399429522366686905743900629603296642768332124052095441425690591567067926448623801575013930978903437304542060577789080507954478203365938109727049735949440133218554193798868463716728349178645113452205825903277763261840290639539532752926032312246242196346805588636952879968811312556935872532769834292528201267495619655087392104283241954679951514490766419094458681083965258647820228472229312984951155012685795908450957018886543716503130814940118065549171149085119301509359118107583677965571139447015168668563902150802402463045976099328870357950060889838338377475008101765598631328723160409106334610230117547159729291604571395294683418505464317099027793336471536704530411312682471239710556418919434753778278008014327232953049180941210553876332679116765691600972384392426557480000527217719599736871075668113044243957178157724517275429083041974034122515485083810491417781815457235718398733152776544884858278283745718148505474519269641296129101751130381624169820419646673921574262404034154466535187077914277910988386024430321347050019956564444678821314097983111081368423421567934869486259428338344807899608711565028967796708153749384761678483193048146550068052298056007231879835307870805372818099402772866765797358066392902190335075316479276445354659921848281520901202705210430090663609079715170189595134974886879867162509607679191484289609436356795314590000563864000226548527673595736089992954040170334060359191419903385262990696030816447359169827442472682460763876937887727921346594624973936012545068466682133214518739211068131111576307732203068808011143180967989649615609418326095082367854547372498890719622568656775610632759165105817960149584952161215145538134506250840484275336203030183628530673804735466172401882052496282715611039664615859379943525973185460696108077052767643736479254376464710566091372824233659749387739480348234492913037238994585273652835233235803450423830545239664629504233827900735394369307863683374513220442971839738901685095264684818110040094839737139967218529385991346806393451007288881036123576276116582720596672766027831284855921629778077475503344699401512272445438396343310287280499942857352103512578802605502964372404702774119541379569701208461993974046877668350387034350105765102002185253190496612876761580240064259284581623752838510394444638718121278991823481619185078344168402443271918836107729429405797353232134845816733504776353530705347576072814802121333822750784306811956140211938649802447202605478882974519578518326635254936930011634100745487245617027392191960647693769002250905996615209125677384725925822323081724454627082373524129940658163260069052118484973987921131970807439923966471770750758347586328960388903087372470282701642961622167891807610729601061670081504163588124143924813422851250573361382423110289352036466251297382273746718152939135611652345050108149366023285895246239132631813555511940526006633257943808724184135531558678814109418804462271578872642603045666417156397458799620509228609629042354102549819129701417953304303773666892244763491527448618781799991429856444233895527376346820873389044910893386526125405328688609750703953034741935028212632282895064467346120403145430074100038266132204361031518205121183189813198265949094729899355940876167646386739930942658307170407846496711306726864831177644524154659994340396403889093431343713258395116704835494085158170183947683982731088935025332039947592591782150056157069438841832918615766614577652686612850593531710131702214102621655984128869064192006897575123612482062681462265882315898418525138626631926315974081977514385084225679364495363464430916100194240513814555322767995981360036492971989064480950463229080961567712670284228696725168159839152512119388289269430066213844785039710428496111306581815308189252229703718201715907981911436549641490645671006257873855416134063853088046821672562974544473426475441306329898223161349339381498045540074856966515734057446270329418978692580296801172974684270585380706016960283290655699959810978417802306881893829785107551144222415440514496686725456565305044954344517353812752441006246949662769077784004306347755130775126652529840619130446498160851753693833353871581089349953769729015077914615008718102799987197089982183803920803245672373440432016530794247554656729042862045699374720748134725698198676546087104526599259021703026565551129847106725335501346967643619343916572471593431611782656657557776731750409752267671961100993484325940866043357755243331080477541084415676970097163867582659553022367374166717064542936583707457691013022210286371697045610490885177779861203106770561955402685867586471945023760361742941192697297566452457979018368397366303698636973854739066502973048823367343561705274871879459318553072076771090437446486047582883798591813131810483362523739956961178920240525769500137502833268601672171596469013450774688949561644849404743252432231951282148840205515253809126391782898391813921741800993610618536480939731386908284785435998545500107098208671656684471240419665292633411147827219332706758745911214687776877645898682799437919818435544900348168289219611369135704606845854350883717914825222497203258019281104500587270998919401390552169409319364052722890071100392411609480821248282423196541647716680403934971153088554786941819981462753582724952817358811753838086685533314318444832736118750546209632339465921541580465255161416159900273179765217503776016459747559686755134195013369122867457767395984715322292552285461052715873606928402331441325429927276446840245026885126129425458008870908372175526578512013497724516032089497135961981720471687504869995815459294264739533903895031535051440105839535414799998576738874329459138843025547558546368792527400601249563156501227691346414007807952332356683523482343439791965822314619189771484977767445695345343517970725614870305150108077178782756670970155064572463772730928409656721888770588518264388736394687967133460962394968391084447433653913156836805024128321487073969799131191460267193879327178355241100083280999866281505741534784765916480644318311590556115855157695130973102503548086486844394089340459511069875481937665918159226929724392183758470625425618538677040060066291526221636325064617407589132625195131576254754090098234446151915540959211398768082121788846977604893276706700909736897871606035149658138537323410133816020960330363359279909366064624515790058868042099534552157186344401405788490331059250360398575080395144787967996404146751876627976658100188984080129165513740741256983756860540414648590803801648859182908482877446177965065863186398897530271683975714251652712235727150057518610539446560816395711584462713961232054276197504693047726911779193876839816960399019183179473516220700462136516225576405055051073559083401419895902577068532636683056684130330078391426860124327557520518393945444968487103889487209766537823969006352162671623490775771528517319119018856211576280244140691536828499215742759659459603020657883835962005985326437207810408795306398410930760539942189032464007491810829373159850096044683812412017851692934406606908546096093380242202976661208676200949876605447774129694538054433078590975874154112818716442400983613791409194766818882127124526785535260485537249312511236774162051138296900356340963974913896972201432788854633746459427944616975294279766304197525336778309183679268097146058243041075572037430730678183766734915073456663225403699973870319466568065930657427588441957507669556201175558884117243595023470686612394452550172157049928885628158744391005040403024755256586285903828050030852369040803174590742802996436198414635107151303636348069943783084552173892560593306232637011363434681660033643745299499693741769043195026107087346955590102095216722106296740558904713829113402599936474492902820400962275485539997532086147970782732190930273971658909539567609356473885850781916998165458253347097635042624696724934871102229723624861421876809566158471502247794749829427913692167148591849116384124468352686792465517401042695791202501290288511734655696967399056294103628321609639052346662595429999839890738084941063290690108917791958479630877354164698909830309198985573314528504220463306094471115989181226903158594496018173888389835547733205878811597383088348936063065883293796688300065297597784513768231706620239357758773841764002120618414589863937334153423180625973336517212544498168194388349363948357174312639078255446471543955385239023024970040690736641763375580629797084730845831156089943430887325005716516399152281255477820218411533892021693874636140865261554674893299596491761671332608953723108069332666840651487146401610571598373375988332273495098212489585925100746911410696222878467838648546079385358810272005130584746129080595677838896200263505632758288130932172923335098657587713911093128847834265808398280784237036639126965517896326558014196919295875306779229391307268942987831529781772384985226314989087668646241356176174923920455317375009904770457480037328154741069932519403155692430910861407498525014338221408134113276788046933269338768242142266861789528798541628031153756499139887155988399488245090575321482982661689336873382799345961732024366421718952494349521989571957100824579875502106347924473515830307158063887518944944744536507905904076047707490526569966198994840002655447239061077156225775024481324026988270796923712175513470957951073334887288811513528580610680561559349594709838279181924474114756885498593537389316606730178574970481834350300126397028736419158663419557774640853703602157275416125332295846018552170494576802031220868019079849039447301941648785985983148997545204710106584189492281816897577972645938903641459103604775650856607911644951706573847916859770489857466180855773341497483665997330690290316389661821094225756982003909418066096163550651069655853062682843013804651054161944213695988319386862693300614355990400144614706736266341121357638898634471930734914978143769561330193035960453728815376888191058779642756355511343010079054019163616792947150175658929540942684467549630186390075029260509222478036695225069606584681653360581537196323822683291297938573629857590024950226434102676585398622138967998891202261960131313635808076098770222217182742319016430288196113449764252570157027179011824445549029405323765158982604831688197580198451766089819880817262842130281518677138349485738657053395050826200580558681050309280848131427642176395541659702414890167907142792794130210226800920450675717409949779507411399618092474828718086849260518316076853596473750678387518186478379633601842920463962765681325243461751926036332574630927884322320672166273539457590864532017602461670094184254804030997692066142870068021192540984985093149571179782433436188570069564819058672380853751539754323149289361756990404478072296068611150137479740033580334492558509472697793953344402098702717995673868319636755838054813622243045173004304945364535629275262250804689576784088568156396253237692525458773053775030057993069803837023876692122410546554641166722776401568684418751031259829624065427792661894118259063292250137056923620558254702209235271516720323504880109010587230149605240882489916307459017001714521791830193416372494503667564009571668231806194851126496185727940520403131956272135653332200541668056884845127494057689894679292691596099400061651189049621693493037154854214255013701150768942716192566345741354209869851259223508227634298451357798695241089023049859613633786406968034220608844189693202271928424867503282356131526388539270491583297487712553910352312902475668884504394879175455630190787699496557047329423884918192426423566661556124040212134530402453004257789313458712003079409798053207060822158261729571299378268905026514012031440482818331650880380819157762711335592710117990168869789309417834253349087677489509470631871021358416031166345618071844678390841898185599521633209305166149426783111133484859279552968283851806153248687892006238408727493234518272513369527169314978772686007880133070296472636776717862285925328324123214379076546394455193712628080186568261857101553985544577026788041002140855678087231272825177485246839173822454668162526550291296147431301817797423475990288052049371562257710264379465680279234500395050853521274571366810156495508519897029142981659490698572634637397550189373155559301674655891198705467938319271967666289808103367438886292145489772443606393576397562855613162601944770563886081132424255720390043407214894041170684195554871200433559916257783461125708877135350519636423199711260253927491499603452508822679849087821200301028435225158370972825400644241598903769913227089053955196362313269228650574837842914492292616879237705156677515546294303282159805343878604944717652548622347092546014885843249743654537971795239930719816461646746801210846006234278753151890484009450503253179135999373219497767591645089027618908472941740288954343637606127069528014440238546238253074907793903618950674203557911780711421481087957252621809794936008779501170703194766209418718733302976686817412905282761588145038150526442774460273753952136601147335601515183883581285444281205446206975517628235793077037254947481695550867559341925660103553457703827329139753978046137293479058776336571155167907219367024815737103034540962318939024354806534040914490613316629854718675084966086295427818815735487747826070472486856257183639723881151367809697587079062098602835782266726305011654556678077933245775335734805507250432650526365566152849160005530728339403714644014596988355242252853203913563567708327699447475138866703002091220471231970898270211029057560265119802860732649222917875400972507865050651394775876601959371897258650065012369987898954194788865933755317663545038880354433734242168479644063932239525104793745239215435499865659010973709080291869659539156112147560949937233178962586259513789301659072324790151992007348534412731832094073876174247274559036663152371845254860400802225797186296186027778401587406458232931451820601926675981434008357996451645832137986101529440388060651471292451505492028229570501688294320087399105478725211211290350186664186612177012242272414663835552036704386060958308157815731850201060973325614687513742486860074272164771571115368458705329793281975723125649159121340632246550608578665970514228589242537747812369947534834663122789758070965606680563878461639921006503241539079084645033766930003935906392123835229201751893128846465582704628033209457890699757364064826860917090485934445994715403085773674578132112623337163160141916332632927722092387957648383995162495367855689232868883892983263239173677845036227378594601233163403539040461670483484803132743887489734692475520636348950071947381829677844746455661184441766864376171279375942122083937950341800681000824489550042558758135500622817871957873702048401092203738187164648758977960247891780185376894514164459582067207375828018263563995271100630807941040553462634638301070439865270980969247176584719747672569808216824858569599904199306327129222061458483078019961642377374449331118699793721169661513514690927761584992634821601310412927749207076432956325279722902791779617943601069001195160199239597776074667324751920389987006373216180846842612097551309452905069854389678472047523759908051408976673581854373886197589093604651538338001403646098044977130886240501854783086378460648676201061007561766258066524852435237717268028381863017328906442861330624817284685855562341580998852499399093025836332255143935290512934919003089475996676097953161406866979883768399948125284229664354590947830822787987880425301332485714964878268155532301800389173019027487452371181514557770957981047143203514038294187293454645069556095673716776532335236231932624124327131711781859765428330283372905762705553864416714741977500764997241978558948742502230875376686283291622208319095404008631798638770305145424623733744127369355579008623755108838198374231076653274651954316707949134646572421448600549332146756403762351428511536693912702896292122743209668988599153996487419055242996051466346932408375304019724105646721058120144613481051690485943078934295273351109192038460032570426995240571832244662619915449511186665737587182835402499667819929054691403301580235722971639493027694584375810471747495259466169057159324793091230675845794405993538509284418905858467933634818893605354039130225512131184678264591001278404786836516089027503963341625048025278322368310784072939343698340561261621729413410708761689251634335339913317602530687505393944500454592886708807086817664573259400213394054808676319556220323433548013692407351914412339497700110938859330348729822490589196264308793756333640613394220723003510956955047127741209692385593113750354360632937158536112743915900742293711445239957024382370755164741312605076438925434521880618108165319496768918869287700053379144799284358988781329202826891424312953651420288033243668788443131856122464388661216878025503480770035879503086175578972624030152336627852600236333289179492435861251854457611495817945631184112704439320170171427900022598848486680312937138157804236592793849231417758218133716647684064151206295715851399982921078196146717204528226886622351410705452192910246993419921872002415027828287559543661980519994452214379571456542650397091690786659726413160615503050540819525230663451498621806870868134187414099186507212523976651512431652265567751157137212170622499612102948661405326134441912618259584233775332095001548957304937844696795673000909569251392341821501097219543964719763680706034946295060281374660783214984114217337547734569439146967305383385435930072635405800251307629159878340657900110188911790925524770198667671127313630203602481420452769062858131016981036922991177263731111807465622968624968511217529495577088052995102324506632105182230708273522519384245001302831489920500377016352679937622423819492969956701583459406249003471130866176409114861957058964537428715683684093080112354162813162640580283814480879726568193877331178414177828846745227596443244794433289421260471600258372863326985172300934579008638349115262146125745585403250346029924148778311207631022603900480716793042210862658516002793922743560594937675865265952236571984220083488781546996575338330239471547888326751005934981824806803607577551472925316087101896885830335586757033302156220602294706476713595032109107619230956154922228672524277041340106352942147791637476409876642011832287829876622380094256033790297172632154534323576045022238146993225438358957211142651138725288462518984035688504688119920214667940643911285080958419965573332103894643261766874045142767053802866774816290503735771446211020393259529513638174475997788961638473638580006187158343458106300826226419841131141906933691167170673187204459636699440937727565912174533625672122683358629473021009493144788177631739437910047447241718812822536847426869864482976894826257655943816624124833381565649353231310101252273081463673621361537422695267249601185119744759702489059868759681033343450827774311815715160781819523204310638026229959150665221293092136481125640648933677520165569163524186407192094993172281198446546904056372939676050642952109353071079605230343973642237734097707349425455524161045537447181487872681238770813840959826972742809462793627004387727256704045858003757137221233449232905722140258877256199341344909762669574164413066592316173197908837540915708949635587354263583506006914851279530827487084320035334898395734360562986208766357554685475940132156366995540367648465045964727124586532531595676179057970578205857227852651138329054174355014789659867154226509751169387036456749636386472369830245073957662920390629686302185714171652481580161667028367633628393505106853009327160354755179405732440637305964705641774021054665607936028482397351087045037984065234218699830100946768638857152865417193833041153839510367860732257949894576602572097861543081919062757781505868202298692228490924565403013884463460693730433283527844502399655778164488032113489177658684935444474253545198108261848029940946676625912486581043885738874529622285706974205072208882083523189346370664904511568177666284138773358317711795160636277973038640721013593634126821906168303123560404453380330269237269885200396100572812578251412567593510424381554002283474180562544996918437119299324866236719861981090691466656620343358530190579130816206068241058497265652171383975462447051209276089037496693796185003383170294860085798554828447157101332930904827780760167368205042113027344028264493012709060633180381686086323302501757371857662780263382118657849432178944901948371541610953171442329552609382196159714726512685382101022758871583584596070073671738334893722546877104498532258300282794805747424322618500765844153228778302019854914475971512797416112302629124950361096330343496264582402166810375352666903651897349695951254262249764942065543842271254701614377798643790031028788745117224047955726177460382820316688556849431775830565459170373572451041613754772568882670335421441179454284688137884694728257527810522991728557501500851383241133071986890993413460331254948048913733954379271438343038291941508557555481345239855548659326652810311417082362101985314351512519899916344707493113684880755097729067709160265804891535102507450228118673816381725048037496847525227436446021599757321144533528211277668764352823016418743100003053274326408483355325651755200275243579442042433814173881853823702004949336361188898730276444071923051470783630817283168690954198203826498487065167587392603935457060250692854486158164600006326566457654774166166276854360639404315156296760965601935408823188998643571570409994472489550610429357734624494894597784062427942218288472705148005112437660033306885222733045995729245364701253746035246685365006136831903485390011540485205976438350105764936853999652023381946362832611609844459953748045949502737741973814435763467546554484265744891261301141779874628073008172010711949035303177479801763037308589651128454572321451959645417912984446805725237522628190367502909225606638676043734473871246277569887237030173589118199775478887600605721941565150847053601021701656571106089460144882193809442943347828114376896039462555348591840884487806474762776560190421817697397632530949929922247063137772167545955051855754582194117729731270661723056236569262104624851012240777749619622484669614215875072230915721011814382734556507592459478163651058971389125337567104502135586588595136352210392148228604521650680066309634654015585686045257454077375098119462087572221652218607492846308557437164758553020290256590196880379854110582251670334540367261185896352878151766326405250883739387455595193890887532945367217244810032243253596106424126026115814311837114909323600337960439585614641178253942614838353197835099120050599129072785572581526608512747576518774779885099052147688936807417616220692167073714451643404307173680131227607757970351708361086443282378331557697294908138596246702615211229943951791043192244373430450283756754552522532116682778931061269520874380634038561237195537730119961601728431527452042695753777038652024682887987172751901610668119598141667476493143156726277741755024682287593058493869211730352947084950725178878142294343105765279417195511688323070579025864889298019081086897312442243557109169191755021641668469895736364286549976415967315700890961953449718038210875025445445366034786813304005478689631896288979604135124462220118649969589274471292711487030847781045034057625664552005507838916333026259722833446724953989038099226212545588505095608317979387768124672735304627393480960784030630712007046901608198891509008233409313040927013667666997421101289501409806754226266919362197241683735096663521398329696078923621250547021475899695826318651732424979357104331770020071555026605245860675924025278076580428967503997166938391364816648160372833578513319420800604167252939186141834889156494556308990733345670681673976082961797644449429302986857967136728047268670158286274056314808968360119557542499943626312979721934688354097079052655911906998376690228021678670957355825763667322420118184117901823013643184099233452326206727409016101975013469787432372731755283699699241569562569115930834825462243741580649551410555667605559087704452886188968949001504862780655148917560219191144191678042747457386384218060553502968800278821102536465034773663435566133479493492403736529689110744762100754726281482941753099242200278799942886179303758731009560814697960549640201940864536821128150315880513298033972562006985134246686599187551539117741671420191800177925618512839344395784998219285510630389626957910767860482853754023672718510085531322569113228321955063779816055559184597325981040840023346389202423325763838411362430431965836130629352171040407348763390697537033955174862473329141659984835825399341542920520244499545319943916029420245977956062389687035403573305485167448506380041312729837952654822704366286011940332068790318722588605238912620929348301748320740833379877768438249653532459444937665484508887184992702825579049347188087548434738195740711600956813549864918828843714115256613424563640478199591886959393500695332057265471022242410125839202680366480926046258339764600648288001451383830143442712529486756915508199262889133622477678233652427159320843681259695853788283927984041435516240766075093006439095759204097942023497203814438220321306936751801227132132689554319889338380508411616009769983041596167827275340621899569481303365483117282456774174167436387807747633815451459746843240144287456772187847848277894461724553078558447545395075629274210740457502290716081720431009956258353784842869920250139140841460998181469607367584202994517601020790829520617592905974405289344538244397194538379068767012442038861480284475712228416632836238547806946991947143026620170254289119779235195994873541451238478335397214992479566654011924552703066013395810901404389350825543200354260928947353084818889396261903903834976142936831871733356865168166637097874733677522984091215899464897575982063414708138929288802534131183757726077542369077733113639245613954388129692189808302680445207048912783704354822466585908704673086037813184701279461311632873637560195063329914006039803127527805753949261402504116972199662812134961924247199162984704881473271784082741921693918628169035303660335666493012896095062843476938367397679002476698038757610602950147272064644466603908737158473546081999103803239586434772870533142807941808279694618227000537430935530049373535944306156509976744457194756384154936732780675828792743892363089648692191294171391173385088083665006248300159815812406653151404548642679992578410862075440019550751421714092570398106826488932804397492974761851527904602049534290913957279871648770913226100931031222467534959326122757604974604058197635085484336420052350193491642029621666245849003683986535748483362660459125691439026442188253866661561223271851051700791675156425023357387687795055077498390609461015075525653786940833209823449554251736040857980338481740269780336767451484694986113233516021595516054824983455123179481234013078576806355156075027743537012622354286561824806227629308194076716669407002934853312230950563411832000811456190103109541198037784727340914932077904191091352350122726691383868225062458326602263903168540887468495318950242450967600689217136303134133935235275956045155710039972613122095930991202229949476064775018957827355772640739294509291089669548254868478105360783065263152795024012717724157917495722375210842750094495838474282914222935799893419333433124167454602195999886256565298372503010141813752334518075002423101890977278931338513891104426487406000244342484470116147558717591930196132760884150711149604602287996466774875775704272839497455118701691416927910580497350232952366568152662717935818717046198294290616254235741245867739643346024801710933571861335434037632712483692120556267469671389615512391464644450067362301081653754027623672991962994191247004257395550345649197044279136313556740121564838736620888858571102796668669804241352046011246060643208873381520476695342742498292177450467507027066004131066912355799234891577938052272559108054190049920423927982022995688109049473323479614791507115406581205984128350055788921037999690338707300348615745682307292832906846917230420711866658247927396102767823061272254033949974448455682716042803070993529076013625449386523844338184054379552031118211215621973341867007541379874452642190079952402567444682530577410112837938289420204789412558701655599723913137124754782678037979273215312786676579483356820320447932318479263324768732939994711041008804693758856256973197753266473543243778228488876001047437042962259444506698917739176442550813129131516380603554449928873376450122688933329236529012574029427144368522137887830549945678796607052247167444238568964136107597844525764848053630358033545921978082647213071399205906629758118946096922286665560472038296718452658266262357578831610327555872871392554256278044800744031464167563189738128597821925518777856844286214454038966627962191366492804335761470869629747095659514155458074160373394630181250312640897215048496256268343095770231166113127621454607764438631933162242741848541015314618984003045531748373203374755341067399826938568999417321247426472539759333940333827542715637451990504306151016209603774267289491221837311288700609885603834744454577132901766110547338811414574528459552808440060888976956879658545590305064195784721561105344039739677264664540434088289231895860831265224276330851991914643026565875051168562231823481708960686885927373241535549988120494631057472511306639177059316333103800911380770658982346908622790335826307765422279737650880821838698845576887857627659086354037700076445117561153563530636573843815696315936503893040017431663322909702513400869093533566641385326235082357392479990629143907363695626319132331796798055295358875865699133622866644461442019914934053568092802220398382802833774690832483661256460353075361923882132105647532227064997430372617978033240462375443327715410605578341708543225851338729704931222834745036877721634848959492909309487526923910216734102963897384047006435931588623165076311647346004311651123089941305410213933027010749273763346155216478587693323761668864947897296541697299296955486442866378541421253623517804811362331335543116172557171772597251134567026906632713421744408155714689478427125521514261497501122798493625350165111651291579442292167073677200055246068978517319273453918822458333314144139336674311603423074039377337377781662987903122977825434773035323172777336945679504245069509553917742904347013077717039839837530779097181223428853559954976136440926549959233491574781460586083813308755122470564874321778945229777120334750938371485379120097313066948579785066140565405549676009973410796105951266536257312828707602983267442764411002074436075568604663783130245074427442880989371213565854659591582068895093683266836906389335542266690814786695447806827521223491659404318313776728565290372170810705042640389635843268714732672100892087443047971194812440079811420713944868164284285088278238826078158795686177596590874673264016106218457435108625829790847005173447474183061775220563311344313649195117132670930040576135487706951604759532969702981313547581168855407907509396670986530805384404653861048516495319498086594684494691053476249953788369069294371824377719799282869543483938158541703715145445739665874928743790720514949546369684976939772545878045499824950705643928375130373411228291929100377243928303823883730826021296868178420028739557493131494532320230428800214071048229929485777045613362185541790031203276638372911737605433751478536046284783186186960746714991786594293834810201266404516351085272922671432031012879851351946875785787127783832870297270991808368590539637786581338743136412835322601932269503782984770565045906288930212345167465858230038203760774226937545458170669617129573322002542712223026164924069682837218649528137657845479903423324522585520514977569846526685663316913152326488713555914092481742374036497949525043493371562511230584541384216743037059318880491659619129428466560333149794268940422937165439912309303620743369607784317681340439868325188407297239762413718316385038033073472331446466081868157852623715176199415589372494458485945275169302407581653109251220073697206918847088207313722420086370545628032025413855115075116483636022933121099491599603619103114066830326534658085937980442928965042539563096704805452424617842756212111231343722393654038987692947558125699123731177908738700508119904594239034396851432339516184209076561237579913987068636224564894433709925020901093434829847100532170290252122862574303915688244988719205774806071455044581234205630497788726602407432296028814091134959408102005336017848170740829557173630882420210559813525639688350097499224349912229610455781215265823156578457795524381274893291479053433768582962799771659344538166246196951263230584590619402573273292468409024010611012539641341413702833867986557621727121335315632185743594227889741143105548284192706450523668408770743984717756611068899824650748791937783735814306149819519006237778637447562129868873058978197553492724616951919378771208421431637515763072345290230197219750526978098614220838659540243095569176465653543414732294095431544129583025334270647825962981064010004959463445016029700129692784514571009149707887222784360527300196904065959016876348381653263384428716653193134766967127935874188315883068920867519367011497458213981658063397491688536352789401588362135937736557484637795022243998750823024407452247757205035113568256545890673483077616107730681199783919206561663976683581885856811113599916407861170695350743812816146036283303377334476166613304020445433185486460314149522134878133625711090314435440086564411618224024144466555584108508740905835165970574496883482733615636414327077315127957660562889386046420502763850012730904513883107648291386326900492503347893443087119857143886562381404088363151827005006547866485429962125459004883786566948211273386137854393669921623942585911565779664062916204676768663228148924162699463354294847514098960605667406820937466114369914964477890840842456120673540723501574254337908820670883372245766379434154507339727678253916376649002928371013323061264212749121154706695382932863277823942279467607202827261390944997728710561214825475954422558781674647489540117206017186668406272700000397413192999108339826300602051519861189127766017190072121112674709314158352851673225947427486296953936896891237926366548696125042351368543049419395551492153394624195892317554089610848119867770107636378514395482105335043506909875764311497523195771651453241894200508959718857235248641186712696085822105471898239729515776233824327228236684580526166543426909106308429243697101451309943975665502614289733636845472868271963850841501756342680756145534386288046071726832279014391336674204544805279633303040064639830149383015186356679827761553884013830515874926601900957684013487250282217763057624172018181853693382313775421570071680518448780342168303442011086106486306970343242733478176349776659865924440029642705499662087830173879940170465098667268864656148810542120463440523926478591320237484943661764988127697400822207971632076760137295751248951186680660460805813139819283890951766559086713647257578806536517023907601059175049391756108738984037251256601332735601756977993633652515407562133968758989770073946624861708847316041458790260718921353654408756501429336978131937567708860840383637705654066598443280675885926140509672715245177375489420747016185348057605339283729641073239273756716545547316108136936891307785752046492119255112403986177369969042462552701408640452612045673897852619041288319942752013647369228436640888545637403744903222647919262035835412434453258427410118901748779435263535093846147202460679452748266189694347553433224530828689390321905583181748426637730299984348463100409427813287179310970098311618160820200275332561010369390932130906162732648693292020819118318637466351611443886650736857468709862666456683204383039452810591671194160182840308522915406833260784118668807169505317976828250401232477348464527330970419029261205479941023607065842327203698491015684837298236916215422120784695609227422660807122233220281076501900643854322746201695583353919797995401813922676775195679704626071258131310957079744104878147415522791633574968755866486616447024743312021442041182861096846625338300016932317731555432318663995990663633730010902459618434493683427478137615894303654369433333108416089220426947889475195372975796663220914043576939068058443638821636811541256208666305285158261759515355208300657778837981358202007678071036165859356517902763972224193435185378995707562127168953038584934751757340029459786617875970858501120045670983388339168576215212962165768701743852473862341173774898332977037856696927450983011707515732474202982444220075217265754190882422635785996160001843305098226791249804274308035023574850367306177216929162899448759923647922746317382563505085262517435111582100123716798321376797964232448079277768864057042617855378442059325148323461738160926232939495888322737086391412238942642783452135395968296878491106798636259185557916754326749303395667039422560155066070111281192951251110094345732647558049652505117627812916955131022779034663577337248169972044145654240790078581315065879305731501510501328725720175650905404175743154016959914905892401116750943479786082521179316877124418241121661410757008719705574401094374511777405681719171955595099747168736182087288882492475914140966113653415313150731192376150274878264582745853662292735832033620643201671586125733664975775521329362465920888691199169299147571441563783229215989186455095814109955130619890318706032800334879031970610426300250367375745914624293270167260824754873018431523902711805169326821145430948336618588044607359789180725134705389906302522046840656157160433439604224546792454774187036304817990725645446371839922491797114599869738991352635381459106945340812919908462999577459516877703689345375358411311597267699161672545669613572658381593812839238898210196034494134421260492132412685377052098561429605916440502758820957835800615308855031963763558344557573656366465317863224690924115736016580726183628609190449044500257576296298995997490445568206104635061933027240457417338378101227954597635625958393124641729961974096884655211142917122358301571062160224593272070486895606408182217383933009672192052753614000221809382452228358706532093169901269979060657026933456498219822022984135672640712864090778804965793750637667374592201847082309059102035169344780182187270497929342283521924418988178001277456160694874720696299510699866916326035711739362549975062071984798243228142686431278185163956131796212613933556255455523348015498268392545741119238143529635512767508923358450765583134958297683411589117649104395990510072077424918051554278171648541115856142972134639435385261237064654991548615015075814747093103659535382084062616413264799343300297636284792046692287741923342316668893610129297901805630314420363040731930526211177139895608011739858246333814675970669964409575375020381253754147351901377963786319400314311813330587339356153662261311363343192948429834668876409113273960229637573842873973796633021050063507458012081271422335906752440558963252970208882415898827414564071754091330020790110276227879754359118796800620655882482643601931229532930306501101235581108510744507711316041440177492436881143146745224673513691122488398212636437514783221977556719898702417609619777444276448396392109797234350334237251950274978337924226689221244565091845185659878663203715368441928847432426351317197887609377336717131645719430276354022380358901534785877049757157996012493443351808468738587585993340559340729712852638027688929556703357885100485616951447135744231314862618261024915988580475548388319906412275551361764509845056232609908130493663075888554648108016844786152603159250670105428713872790700813898416774590078949473604354231288071430720925200500979269381056257564515772651030030395983424638131816460219083287854824017231936252516837232437756920741356830404306601435776025617822216657364374557484340247899304785778654600947487922660572489669883068137826276632827018046872512412245659913267532023130031503242889868198069216380481082609704606187834716727943254836229230790850593077552224446460581570121009244260343211646574246200285750632972652675138567526472908543186940320235082208048120626901057699188591625236815955866804584195579851077106057284582936455291509615292691970370985630020727385479258089776953849491536988088701123711642683654291227108754685426687120904948535029361639522515491790863803077234470940952516529093767655131635750419237213856651574576136017537260661905839666198859720531736559860627421700102272480559227552054514697445658464551471463766900078414015577012837943416254913157841089875335089525260327708179391048030112615440939109243351808141564788286905588101330398693526381439290521323791165955980179593600729227979376040462687978440674075813926313249137597762894455472943787790844578053232774125222765523199514712751188749906660852130916032721290555987625800953927736086847612974037034682491552721332600591218607962484711155024182735204445709073881149754649707013250382012948270228204714528655923583606427706638093496258679676541276213006237301565652863003940806161630283734055743258164217201049869553392144302254270237811353176671089450894876131372737214849185946607068707670505054857448236300081818185385337057519835793659089813792036001508992698089400480073684475835592326849006330561547623978176719173852651691725830944712630056613045879157726760477327979382317936733759991338145148563299817140931089777106853039252326037879541319463958611960455421216713982412428125792069000608505735897577443834393113504332566784422485170927489093030167410545174656779724167012487053470033152007660027074773893891250270427116065793772538589333687343242872021210971284874927400835225863824163336211652248197618343953353681955951268876480035154213770085540113745559450119216950203879427038267818244315868841272364567660621113165565288838819612755926269441252812204130576296071117434226913501573922319125542488300044800628373903839312057503641051721609207404009228004599935417029116996575453008365660018380272100703963825512965976358527556736249356307342080598703018505042439366849991283101497024894365128812107066249763209615898823044032744507073271652790792083012798353042947442713708087314535373548538152010789385809234407017949275442955019688465544269263212392033113020901341529886751245778211206180309985637394740510201131500103086835755183355567910470604114407422295519135881795381016163546438872975643497262106571804047544592253856064097437013735946145820541098267542190357149120741948906701841753851321160510991067224001889956436497455560552435276474204022823538097472617894654495502598151964738971258574607664533930859056723808869375112167397541656556633333066902297413609210792868287783260341451303353067243836815271039542961581200046163615421549725547955264888040970258041011758544364910767067209197990401966766111828913309521209460368440115985931480426934086234080640633371995873364249936813038639947399641129750325517736824432014251870900996424899673815862667015482822722599551819105315617855680077221717843216915996080159593800960179750290346507342740287875220638912386113392469276435245972049330889498114878983912625898484136211699306538295483724941922030703076021923354202919476289307189958717569668549744210429666822876922342574848257381361759310892770202728932463004263676662529738661147723197624567084339461255728604541624897171955002315222749427149809095859845885400126659343068589628432085204185551854923478412104371156324038142529562983884362952423930457904776935657576883446504179043017666379131712937516078598132281906452565121831311568097163346003003215925468689990910006412689194226827360227726143375518592269867126217376534943547851552000998090015512968603969768991401220478019305314990311734143800023069147393958384941263418363930948446534707601073853792278982377674698509268843142852097974826533690938068067349471010593370725797579382614091306172395580740317342073228505179426383534624323603096547984515023174677575722142896699694122418913203605988655279130897969057357654254733219684006214223406575258784593461316662186160573552459956578747945861208456287543433354353488804278721964984673971977690531509454331329998511588033843031752481672162341267740269510603189676147601562973614249645717498352503052214710617909759706284858975761964282798286420122354836179131479799706681570702853728232418102333671600056432456768947383820222297276393773594739594874356326033390404185372848124104289427787690230211390008960193604184450932224905019167558412237147835125510941093287683523743872086490862669918382898538313616025739989606245815316251588411591185506498307040892995673311010686267039983503621068418177150839749926751911498578704868701277084382537256397915019710344216862191408487332601524239869379380770081252268423094555696129666802555831026756297182457446274546940356338995486159356909070178597189843893223704047301528629354634384960610489607153973855119554206009103664733289900086143772138530117926787427212586770866887654331667228061732908325110026232735521591475010902923198229557740017772672697956026228597044671574632588295741973581533987781193478029110667075632009912216591106944293776193381496816647754346405339127869322008265591746587945680144552167403236588214133208385472495580488768843009201152043936918631049502679549215565967948043589784358274516203965371410107198133395157701372460455914677368518423083754553238719781544009827740601390121948051101368673119589474002679249917657210649426691524744692353180694170550075152363606487740146128410000267137654255852896145280477909749399879290128907346403116812223749662303093465660634214340140201037138495315462507604809485872289362662003269016067049709831540329781423230947018703989219093342735321094576865757977357185563633578485252812800278565461206292633644229971797501266055448461261268805397221610445456941346439694587836760766379640992979504985851252958525340911706197189438022663811234822580885183707836211717082554051312629140224577697342091715620146170217720053661497781623857985960987613883937129299907820970543189523206993049326983376973628105037835781410079169176156600570487416275004356231322854825844684250914324824802684730400070876749056744657381390262144016745176430841600644029844799049419094435742332817535628698561700084582504933369223055491165870522260402130189161837837265734188963073974505486525810161433709288767295352284758715281486888966124870816574248838945682048161953542161508964872337286228549735346379871860023443884984777124121420667124337673497766354719863819455060493102332900569858862331848220737356189881129606719437950732053335125943445115006831724444002494675951048022279589567459389653833237416751481674535027333251732619304946663910052444745189165070287402744719937918280220621610420282330571302457852541622897000231927593245453937478468115001108914821115995184843816836021218654366156997565070737909963023663787654332268965657478985998703156891577531283379825673353845373738096471127014493222965978475419928633054590000432469663651071775655978072347480194922123398024488869514585360511751372558016396565765996607662206909243680882901228263027138880787998038340887923220840931320584829981742363486434165467847880808707493362395603689572102067921558228054347366017097481622730450298823268926216233903025643070577831663789488463980957177412840230441212720151028262643773999825367696308964772419494387259662400301450627306212576667536666137559562202208519935527168275512805065009186741867041693501882066609230301382017404603715411160254381468528958958988884818653229906109210218524858383388148227901393827094934740173936388626123562655540753431270377826334476628108712284691939723739506914612743863943624829609455840522264397586189075156976575988723171661074490852270928886882889425613882287094916224031348712208461829322011191086206919089407666206745150580460009570618691682450631540359639815714720300102553031039068013555202948569100967635933645727364231487563248934310899401965769137536868009354099626654352001171640478873103057187252719279710408950362393630195289977545493472992176463050130536470051306148968458065115901293420406411669921920471422762709069172675662367180304093772211258327577278741241547971880923212609665148668962959827262182878835389787592999826326785081634759214838922377653753633903190141161672565145698577114154670390518298388272840707777624457897672028201094418442627191977565910635950174108566963340245433361157574232250721567574568432465146407481485524690961777803931197385798773228520447395282720182368940169964354597296012346335372863276099195464457604789474157601593539762094716216113342841897782254714851293365861051830521437430200907463135011824972367529702784377076268323483950710848612596510246687291424606391495619107037583644872459142905622061113064486501522146180878141629676837640184906034833263694438613539846283756203316229162443881380231875094909603032415692856105621298567072533933040491199626614518775052380217270834007688448918158496944260087120437127136808207891025634914544563987075777252857859866564846579147196903822720238256640968823413782107133569806878407755485295997256696335194854864965310955401975594057502411018635788084172417618838516562788636926105546134730815099597336691158028785736732531457132593364023516259413203597191689520694298912949165632701134682895308426719174828800646913943876567464154611656581529141432969200794837889320116339215128927606579564912931776007356049410374945734151392620627517648387171922353656234290607651090997929452574722418156496827009469914219035039430069071126010344966777344119278591082954519378335488385077267513800110320122717238630951451998461084597367643923178932877111168096334591506975498656345822077312549992353319163865034310803778342654960337355658130446917825187243627998717388878194382453173899906842257463257699880249364601692490394631292402545320741881046260255707450698380115323085365876668787269021225006729716342938983075047825681219799789762807819391886524275406550629512704028764172892990093758634814739425698078732204836030578103457153636792339140701946479026154609495495149120243082807601874118841168555330244470446513113943773617002848274931608330711984227013453300293204434064385276242720133950905924664651701715312876893550760965123824983576244039079377299242900535102858953167812772733509759270148278086379135246922940086349194382495234496583420909042656633174971711528126680647864171041447345772451530493683126952515321665464619963180644013535280673422640025568537834005710860259167094166435236592152655039339570122774515577118884651958809594893492990429254413471264006012116128044384185785867141710264373227236555964127693007004790132723387836265267502509344844093713428010157951181402689042881787668532881253069653968584287729141477252837304450266631645081451389365434939510352165663824341112952773027921565263104747637405561698321868431751043031449047914802186344579352095232988064839952484750726802442743591860759194875492325584315939647454287863135699624008218172981036137951380368497869588466305185036014970873774289538590174113262729305042003175831165476496148412899955355151554684562345850638760909314499897768424684646487266739564318258999818978805296153195756768674665378233733638966729697073081570112289544270077781939301839348961769580071485463802984513637588250266399468186566371072801542613054765026353871964884650373362741074944082355236176187513033126322157973624293819615921000148833984380022066360844237271149479659086336744181824183125085897968964675403858894308249292684138554894391381993566147874330269626663742234886491838319809206816899869373643742433470359236756573879885484821562045548715735829307833470400319897086049998728606816541689994287497589175595908244147797774644595134309279680829436319117570271788119245117544462284083060753803295252069306352299559849376698080565715489778255689443814219514934185231307310510105459343588025675516937496835606295488387513984983782868440738083680507558433604818733802423683185237404112478767582679114174360515383221021676831569935766600198423428397767654029818636139006775145106844404766645143967732612829886709239792884888180777683182033816369303432088339590115517264907576109148885912352633443170711668905555171378228560017568012572313983445621446880826036719666015599817204907587392447059563048882219090864694231731148634953345115592059595655066402851304253066026156940291182777317753445252287170262892168328889492459034573856179278632629218012664720080065827136224685189686973835694662148373194210317083127157926801167115227769725827941633523748463045290508320003035254767498821572896354279148007579634980311179366947096477121993745510458515542170305101650297780496531090962303353219539060551237311048841881735585423158440671973359255767546064483629960970114040117221675833796026844813259480261131914302512088524512804165933266502285817923485437943033169846836481624928885213629087654281700333998356096724970127336028167306095644084933484134427650652573579698041890923477630022930124562653083580007626649127096295527174014745614610990759322227545985859583443540194407702878210259891147679156695263710839203985590672298335570083553560395908856843544471671018521316486031608730994636381984689743155888077541305745699976933993867079381298438089533657056284087388294191349459508036194332359168953458944103363483536307298671471802054973666716154586680879188773554637234394806770200027455469248073230742114972004832462576857657511241250937221866275746794185767644883439208438602567251280332343958499787358611405500067455195131330911771630199255014062816286210795580024464075621260296579414749530418133039424845223962837648735249193302930247342031252570363617668295251758416472195889814105350336416514234064593486045027678319980461057208630075761309014230173369180092176901978098827018487182887946451257363037904761548713757120280871648368476694279208000676606431484242160126211756945799524421911835051067238976775445441258734848093093958890310925693894885284656490832990483044615186125237031077059207603748383623432592057093867347006814914765745930404655667848094563247902216343734370864637875585930850054444264916439739866277071345491065647859104046806891241833422717499156405271141734258873880215149234608412933069655890469511242162855886256778606233718468724817960736027911478196741232015283629242330870490398189897693177391754540265091816632630505178636247461289639183631439141693175535878690497628358851680348610117573895853766811152715723230735625070215072672502958100878914170361702534594841873137174617671048951945400385008203319870909022285800166884459505680785994258914455114448582136252066539065413139480994255400919563602438845561891911928502363840540398375792885255315673127200238370534464192258499783776449488277849410286180581695773763238567062644492429226428938153111729418368246851002720621876788200456916444965036265270315609842903069401418283113590397741507002269373269072205988221928807752939159862893580444756390877843297871087915554938215642543193540474354614078157035036862422528821994102489909836311415382089565398281075600568287069974354740135698205284328490246332013960299684909038342619046383478528076769390196945103214241271012155284962012859444705708381518572212542637564529636162799224326845073234794237297971753972332174664842260408861735595708071850425331010922287736584287460459824247209159257797970739525958552088479335569605450398500440949563514227682543250879854572969831258025209234319122225019377702579957964679491841253108960604928959686418516693375211824960544218830575169829631855728023210555400441407539486284986034077798979021933184123286104218435603444262585892241481443890547291715506658891225437069765930058135216602012679395190745129419149192394110169910358899903152527556434484464988563115532315687572086137476784337810212034107992643618374704888610807355182158091227872969388082838534199869704963342584876795989566593508554771760940540373158230927726041445412669816971853673015297029334767373110140214477924219410012710467813716483301559181058293464790145318330429513717064731644934625275081616933815708120777185024814489052141422957889460435605318977244671332647373308941823391454564270269870195317002952383884565490805013436371885668185239797781192526805774081618396668954476950661084210762266356628938050764425860819663356853331054387309847637621207307968623074330025020374356439537229395181669104386782096918121598037358820569638323624688772809690777265208846457333971180975824932865853139303967947069066554945972067901868764915960435744442324731614704487830601435382871088484717318273583790589969952314018790800175689876657809540926004341297648079630551414652815559669086826058132962437812676948954419444234016121020361443064080709202675710799444156072799961780276454797085817451526823039541070862201379600272533320482486559989573157881804091180380747072524949200544089596233782991846886698698854458365747806972794329205027168640013611110175916873099245840447422897213865905124265737746985490429783600616954492769352032653571317961028345545199872642661988290681300655155861247684529772668047282130807698779815682662667242506431306641179685164018234560021648760253911061346246731119314522707904735366507842585224261318982076763934324726037063176483804862619742737044361566194936551035164403377926914586230008303499157806599269839934877353640728258688053606732832699875687454899776135145069092190794045132854940923154806500360211897773215897197424314909810412511537048004195442618870059117144273261526615515103094637064539741401110307292806768553439753638602343686398494297239082896458032502156750433471027472562787706911418770895283271207801895934910385073948231620294744048940555059378683783247504592069706862652932959950486109680520089841594803187913749699257364913300464876642128737364135473793263474551669948288457779793908164419782790166779603469792332033797174799791233447284632565304775149848629566291912902790649662641978068704943107519281924575547930604934354051041631806215402540314900414315960815707759941723534073410228343987680208051264028875503307632236807344130781240584024360856594213195907052648311154821995406000590160249358666185328004134823491628231977610618220172174019271091362462443471104638219970347457057563411928387704202610295306897953069179770134319813281599300228291334348945690716119730699376909736290055050689369351088767053053633089184825895400696815352214552036687912991745436441530593247350325592275301502855896693178658619703059678421103025015160842849746696764696795151395265194732310523527900599715300651851188880942840284075727735768274905929587797627356395662060032525854214656266690157475525168086028869683207552740245971271656838471830118501309362935786550582282659062063349069449409138292947858452547360363700460484941770510239140865144243004176308198324222263362580629785289523019030737383848513945234240959683021264719115721941618815839253199256958880104391424210633247527622872519864459300580102376720689210703926563280522958864828536356886590204275602206058508531099628145230839162550881290470409463720469134744328223563299846824154002002829425840002493703270052865012400264152035511610284428612195277513746714817348008697492031908273862957348933391114550838938258116590010002780314678094953212037102953789539502747591780972508892133101335912694105509252010942848773734624599587906253730771878525668731960740633387281024116811253930755437367866871193183552272343798734393127122498911950939779897442125657753882318315118709525652534579750948249272962463461970064622974999712077082087011968134606383355867981344874827896561494610323054825884341387386310406327471314612501013278218653652880314595174351310483939344369962794820215861186440784160711531381532993237152211936147268180487197104499890408193055070370220713109096190272359222915517153098276247472117449205886002091680984942503827641183511166933687448897467856598671704871335060421116213717844348696237944311655101747207411475196218993743940825728772888517764654012073475836584905068373719084971101599320200883871039505416205636167955774649349248303767860191415402660989557794543643040235825728086750824023167894051729908936056452007262355544321261054882129023799521862341338198456233990043554273571039200985620124293204485591619243508937480200295879758370555845083770719100009753296223093196665702000603070803414016918086283624616003869909201096592946236198706534265539922159501018947566397679079885759117070666033277386888578009322767745258818093339401092583708183224685464487118974071045922872537199571893469324851833203321336851478000663388508276332070521896156759332806574693024322862837814427539174839334271779704170014734486440262305109990401730362380255674913122894200774553945419746487649518598466612743812983837688261344619656951800908628171122356988453988508809591487098751463606745153489595230878304800803397502606410565280984959621896148633255017583700190448420428631335551772865257556507246635654781514604877042767358224034479587315262191628000710573086753463718881490007470548485612675205042178201665412441471280242944000739154099697166184677664690486768783272523536024241758752751451584796322105637325926685734442840867263009041031157539668429295379174765328050346474484591292480815799896801933749936156886860788077911655792925032931041255856610618342524294825231515482076202239178978509795973409800205827300587730107701349007151416832412005998482476603213745846679050996394657586542218158614481164375206697520734337729625268691762728514487668503699725828250895921434011611658130441438022757627815367384224546707255992905263757499157461559340756744319965109014998286428508528469233746126852131904392689759389739700777284859986283549304435548097223392594986769461318980191255364455169802780988089498627632048296471017268844005095957265257210697515484930400934547861165354468053476684467201526797588803333385067140350506575240207780374317696658785235218895532493045821944580592575501011580825891390109314010241749608558961081898543818849145546648342881137918325961512042047389678583232677781599116944677434851081772001188255651125575888053704023141076599465977278347302076051308691169862129184045745266078004974884188731262178766878368977508647264384141661090445074757667473438867636895695971502936370889173692595604621887782967235814025730302007302941935385260792717281455062240942133064184003804528654756302869507215946259179560393566906232355000773244676912300132901998792814216552930227325333621710266995668312370812888420482325792570716616629338198565590884171994973837992019278807615042169807873664999059783714777493855098504662661524175960687002583325408237370941526713480751359159455788548849269725761561744466727517372065756738238071125289507082302599900477430073685778352129897585335107195139017186579196693875103241570176044626312530956941236629807424967966244025659398013146224116733221071765942265039557006466422911451111724070246637468666003908130018217233699371051039569803522850760641077834328451362607723217656239670169541511906330149489117539862170930088319533641057596482869370586082938644630988172998348805348398881135968664301963738000697842894074294367177408351354069721890283168494151819678043117983151592749663095785135785960612345124068125599088534618694980280465729841138774376413044637781568130256106227559705351125533410119861519723298095455553834013737628448794496629852239051797305147569584131721013732700130943830754498703919000700548681564084744544221984810572571904582243718220883824656693358995172630185518278591745311041708560208486582205122367549844140080030598124154175286323771333882125942523147376691804440427544551823802224632112157705176323700202918740128752927325154766388587691116490056777285505260353961614291832380663537843947599901042639603762614157218012046478496863503079839956313266497336148067541864293494790198150712847207650467515069625446323872342678558173095543458480551264111374821307688442463504175496009129794657280465105001083192576130778200649759403024939933295919777483323956938721510599640666416353019698628101508404671021543440321082205457317884485172427490398913896191568716337044840477029069853056815556214768612024370452733090439838027831351769420743407176450458943278587309054162456031201560441157667624595013640266000291601986985799118815625246405824776890185245056823258812436275341200748444778013852314840265933867975639553817507288577246520168732582514519805493798280433563839292744953516257439574988094684718971782507324623470223467747824484867413634140109666892662113178765244478965633943607300860318018165985408859001706431827319797671120679894550818790687056451757181721262035664583398974003889462991225847386503457795708369893383491134692963569650338241985850491394103197082217808998344706951901410116107036322582867370495193096530214359188598499667168323742558518510159984861837032750440069820210276746110010942685345123875726665952417101243961260797394593146404413290506006139074507709079095999037877456936425712021495543593977874203615755037773957036060978667196498431200131434780664305710137250785358143012500728495337082048960940499813927457689429429567583497669355962804964140099850577638190131067330296548979198733137007942121401768735349331570979936088323602598965450536991821506249064459844950613726459684525042226889807769967889309238652813084038595810817748395578462689275035523966582523032984823496689313799773215084887998129747164395729494508769398237663686276468661842216890341019557285444108143529820688216270289276723632463141295787110622239427153019604245996092879152393067685927423134939956720733649399907063313005980390742179503290343858600263675725107793542880009006973618356728933276358426213132824228759821336021701734473756467558862930378859282841862921495623609975113738543253722003158638696750190592936613005981860239803614800992640086106418849827133842893827060149366237368171807919890960822717324244166367087732383173076693610773570544466692358101061373245017295505293627366691563327045651543254329379362512862292186985399896094512501217104289963269620662664122843266690448528081525445739315855489743244793250235710578107806841367295827047775308978255048971236429742490534910452784922839157820221556420604096520617404449031255355551789680292665363077184635546516389962293739628995845613560217170645254836231142903719174870819587819428833367222723565765742604403190634644757085786344086118674169819212677309368311670637373943441318120790296827500514709567191082681398585126449914724314394837149934673354773941631100152779088493467220590168423296178923436027650742668221404787529870811780442432716045349576800226803454533759494745208641427919303303607979704961704265051647169477618177052638221666689910379391615880310642338286207422126318819497138988316640014318494832310846826865457256133906007941792642536556547070305491252534125228548006206895819812205999261218570966849891379434726759966051179713729040280935399921531199305475863155432791590707094412399177252277135229552111265810934343529076463670665269182471427495560768115623488458502525793904018826149770421015060637230218196225149543427394618286626400260178885366340567003847990795426379041773973921802720062387583805809048799355989870389540073951230151386603032756264641453353885312808755804936178218894463293324109829128083694522937347835211151102357353221925234469412335295761929460043211593229784261037894773713008929264332226202573171543502437314725203763295639925103003288278120254464116658062052160817342780046157851985183113659326635071587410459439634939566543239832198589418058552819000279022568075427846211590415220298154748318718934124733474020770146589963938119459578508060698028625817063767629478145954999826560497302781142223721349435465902793808497742766096758670859047374529407187647137393838858423052370860087294219874816169423321595790299342074734356082974472967865586031281845318224086522304229310638677608500493706203179089582028077315880868104043459012035206616344434369162033481196194767304867499745172198807951899646208422221374379461666738795147747972877843735066881215168617742286232150399770767545961210556145396731947194759955391086433356150239239590069552836842884832913399603924726651693353137746308996453524948958870196532907628493743926688062828730938700828362892521391120175851607857381174180570078658004147681523435143038603851364651720017526874569106533329926388022439983447911766849405052713078298845624784869556619465991417463120519033162050571334647005980421124902111068000642884360649875655143531998778758307330629525394571827172974646929698861896597105444438416375727124125609972117936548832960715567688295162935392917243530915793055313221508761605677949033920853182153000596973277469731210370466838093496637913804317085823942253438522198043800057807145915476290078063628461350462755502222400832146013100891441347053937012555757044569943488382879035759442030527076808509591089153319126138009854353822550698347953789742565304621911345195303196500217501419335984157500176939959656368624460283859103715954766335176266409983052525695606263943570339707713936379137592071118641600375492731105976859067309770673288447653897720143784248162308638284673530154003711358553006845015328582114500740763888422701528452114401452263490510130731024711593758080973849096088455767881600358344418621892195240436836107936808112040268498108143674556906781404926416800549500912099310683098930027774003597917644424261544401680391903566905332777803919366440900748842379255568617900928220124429503798404584906425230929113152824464291224915487744092055935600261960928668544817578906616092558600677840906321329137065982555923720442420417921461964709056210438650023801086698060260618476014896354129129153385828656500179994483652202511936772352794980891539283836753078843527776119755699880187528056186138944024171952466119216582473494766216916222637862477061180569559160203638344959924483959812947542519831778183548391505465732686757426745581199809150037278377241048110425104957977377501515142340151502253246332529065235109105434431827753358767385326292455318325353868021156986241932180244623548562560966088990057336381357436751878001610328597499201456181915870737333437993368582986429908637347370943770700423456577356682164034636089763258807476100727851633930675016495570901665839948746113919704069172403842489406907948721256257487517576290151298372872819496008857563998368470893176248653658089055583048242294083714718920508268179632999572060178565039487219022991647296994638515395316205535185536437989710091912383123539484092682277454085417670247613603552337320305177656194585624046838041069022934967868355799973236802011212123854966012555568115888174738614032850119747306823239354012125732869947567561066913034121937925705750737075862610514582221559857074844223255427550609250233113093362041326348672027539896770662075566117888277276253573160208451941436982146560219849829098026719748919864998478329078061064604023899662503740874956274183281187852207189024477317376520136459390846422567277971066329053429254636283733550352069536792474766460328902617070599271729158562414062284974938582082543376139939709935031511645285941992772673955870775738226808147695960666139042850339255285119483687861365150505702748819146845592717540424346368309971155377904752950588353762764633121008282054294944142627709295018368348305039983570086240705301907751693983129453166567161687685022644942113772872017843419390193337002867910827850583857340978795779473506736646037477633856700877309246321641468654675219583956316229564694615117830062180566986952008918335583193801969406486702660253215743859595118555996072776250906334423708391262444269531473142853835248944402525506394263805994978336192084243128368219463365677957785891670363660189492814154900563923588855655810267207778128764855837414959277386893875428604055381337017056741939955880738561314226499677749321124906464702847805304194923337596461015490755173369180876656145042747969239503570033272913615102715101900478337457747451692807899275005687729931699879100480655573035425433895432242015548995651900972375204685582481603485418570573092483534644453098979681747395660273697997962500591584357723541177778396259352932574173923584431715735061012188143524059402254104372055621330053370244942680703224990353538545595784706322635134928036680421455423003123680360908160036944682207858939942181048211369355425066051289137363995126349073577401775087511040699854009620680446346215678158294171923293657677294939787753825199370912308517774384659847020966181643270647654570453781683089638406465344785883662659584513441253244525708935125200956894517500131299270149034579278710130603111632034584223078396867322958251236581578526697652451746418210228265530113820664632055992217631355993590167072050478650315357159542327299266910851326154421720769467308951923328082466081872213880578765077940779446665266827743580229510359943852610758934619016101489393024110691812189585622546192100668370483559370030635531670080236571766762102436857398307562209888146018010435565344063167943130490182655360110291007549734778715143192740336885315528188518662186197420314106491350050527747030903518994608594640853961208473575627247762217616134419614681240018208567307508379763562531116721413316394181748802028672386383635315842891345558133301269664947671504445871663266492397450555342479093326023972300871312527627381125172797637225959621029720942554845457958766512617997911122815033384198069285946633919469479295872128871186619124611084209903581478468532982353594564328908244860292121069966523304971334430301368831929314398225947702095903875955525583014110725990524025153558450387751614578145346574405610811643531274121230027042085517839435898789312569564867464866593842054017260225872088342524135001015078069925479065244868189034984730147460226061652662919489552861234881727030750489070123736472629272025002387306235065195305186347945760112781624830673351593126346524088426763074206817329421445761294951697116718369293498581977303314088654800408839720253358914030662105800627118976242088975929453192313607637727166625232952866941723544293610421893752906541057005319452918096260519451896005291863935677894771403267877377038531978755422240892080267713818709101383401997705289152123608824672913415348800688627418376479358742610555218702919699756596483373154986071759813444512479924686729612826405719618114518402269214531160501776677149106202519620770076593648845716758099834395367200590563505679721122055162168506769718668647300754514414751103191762829172744671282705783119306791062694732344327125017737396717172849368229234968132114091714990670878360755150889029361085773728426048664907502752769910524607441222733052726488544673425815976731765571269581582787147892634000092207626714346020297803018625255276197609687849271016419441788965184564324193162629218591658114396838103967915814300398216440334370956948260872576439961170418596171359603030158882032132551025705788400920663833542115054346316029226173103912094416999053949025845268733473879381459742007199298304173524179740604319386508561366142805917020126691774966169415869783858736049324795854474075792182824180453380773494903011179846592708803375146215270374877006671133490446169974481402922592212411269125526592850804861320891891167328221332120451370838498484022096287578031601942403071886201101176319200435109595988979455816230993595267317973173258390671329385727643414330508894461672955156120545903469897776169414728463490298296753638326326646851725512408841952675870648348626907724629124490740707463709530346060332242977023093423095560198024259434315168357664052127535980891342654356358981939232208327223825273867888872495333555677093804819630345876302827737972372906467068008111564868843531305744045800728511339093772059385132887317047096041777877986730326367363495144254282212725110938277068244560300582641117592524892673835464321531143543333691994832385366514349127655665992067761041275363701817797431150714704759513521434475550922153161884465663150859056158815376661678041198342779336180733395656863417839698978929774598489431435332174901008386269275829565856206588423996805972226949256804297253127645083040620242857142571714417451591930442502669183775685702530541552356860796628837482731518667708034273236254053926569915060721582609703398060555748059004616683359680328471071755861208171919272517377529884410551384254428962665002218642942917022819803017694302335959306889728564189888414764793178608131968183395592460720006230960155961158978218451733076509916435288468720713694811132959824058870908610946805508831328147690073052764591417018183342918460799533208654511735525230785838583149607039093907501478618959552052070576745439514350185446847583034601912380899292181491968292804763789031472223374338478914324166375779301148802312665754429522512817739454797623622018822564082708293787924369583925821818928902113376134833505009338461862758571832593380620089690350623302926746077839766479780142034538869137796174021820221456382549906633194720414275827189674610042633244876897045478846317551054568602283189450297753053051930588529318428456127071132994963381326231673311346323450063476203246424869669247430983523922392883370315181438753434310331256883106676463374325416067523989915370273007523384900700504031142290230997244433118564678931096908699882896309728870145303125943615229813160144458062044786810173051608453126954788887974350570822683251404168819648601330218604780330518273456954893573795214418766074857013740493194941145793983017738722244858459380936999294189658467471467921287944349132212309194012714813349694890907748108453987805400084232590493759530357851838307151314502248281615859976077657444936026340082084290793665180509582400690882507615530185698148385275575877655763636323623131013011301102406047246751245743697253805240081419970795558220023186643726726803304315131552299770368695482210731423137833506027402965187440746357812015500413732901183658929867010760998426296029069905966260337630155420770542434073774398416174224828332193532605998832447412310452488786981306318932113034154775150109901498896430983900679077214253073871328415245204083154113469613700421049510308546535767141340191588184734817199307230830800230527929082972176588900706656034509222260857613836519852725043248753432480589738813890680157499323979533795833332556143254937548240165465049774481218170117008811292290522775237852099754624255497150349988220619524779242037788810176528832834027242022722448707625013383837711139210336835916886261340099833200695864239386736185747877917869158126846896227594197705306550834240095141910580420631990901332197457146259498781122824505558986373934182067673144165565692679691973647888371355546762545543253312354055917238219338147252006539050553532309314984524049926051792398489428377909756563812780358029845440660511363050376836059405115722321939105061285152948843796928761140043265960542772105829485911805640808025372989091134641402038291635752983989992457228297952264318185804906426012626758338017451327471177946659436210740785798316717005650217399576318040379402781402171154393347175492419920882404685214115043873388190091761751505800910585829525086816674187926521255223825404515498149104922698264569568644009009104287478039228201038020981223464783181797758903775676375119527533017003768516425587741818063546816205579233493638235320861941838412813066585624731737443611604338345420742359711482113893099380971583577256530084910957032403458535779541598559412394474393177190967710708688581189152817998939159360669161464106177461347945098165507889859008814197137841553594646268975875457479577213777057275716474790378663286644389723837346206613661898567135314852927376139119870953334875527070024402837889893166834211478898534297497889372271317275474234664191877705594733094758461759214051529698646928901266017353029321089327066075974599614617929172917737488924331563239945518515335733594452144886446915860238435177549797914686147320144979695128831193925215422840773076314504349085116966422335019914669450027338218028405935288843053675085453852797384362300870804580043439853854215258678797431711778126934470511698603274751990348642732418767696678055676232350331621789398636892883278656422479964686764843932805818917422813599196578038033380508175046244222894615989523978628426878984021475772261441822907524927414185635355841970221005812748810295206615066951267986499509032373084086645515777006601505678836663277430112283540071483990573941510279694616891569108225728065402526883430494945973511691067735643872815531863897560712916406065462121353168599848848326598564626932648777797260034368241662389457368572490868602529077809599841214366136143519969395318859370990530596211780035541252230086992242123249287963789569975347724648176484845776696012910215872298926476334141536646380344438419983401401507693455977582958143432588969126651821876093507830066901836185923678818384610655531533259406035775065954192280302057550161551918143396181302140637991557243177291982850796289630209359782809333657410415771448604438478453165380896538002445992136259331217403114158958856028585370261791108687948888740351819246344596593998740465947953800176783201006620003338839247974978802760018936522024528266829594037856988586533327030483856024230685061166495765951045643024313735348348969140747099445451610808349573285380672777583286086569709472758669791311287100316952087017848291272913751929834588897148613764128428749526284861866718373255489246459217064821487317898676205028905752852981913282224156392584090639991252312084908677851004068521615695413321815545927942065607792210803871467562497409046493467505381604132841084574231369663596254302733159150560387303521152408996861325446735628181269541771127538273386385573083728797096171964956071043698556893259334513545742794159281091301079622905234909941808954189689461998815912738877357625084122081347134472901187735989551154588147163648878948016203190248456544590896524003174576719088851974481141393296404557014511770000926141911992002703212435395959223859233055444395561306464535753840938067043482705704909952217419373667207270145007872385417944077830818963240963833416026589036090977545213183674342938573905095899916534833586644431246931343011861568371019860767434460518895631381782682426033254644530586329289736994901672412878553241131945349580452691268023875443258642357012955536307794302765194449320750923722940810444457568931791607987811452850589655871215379964056403334313624486470881900162007709125829351221615007740401335033779198870509821827434805847226197132109168426662795054280658230197997061846813033618339205784801049926296032927829176481915852041857421105310655244110274130934160429636899405783335928838672423902794407938501876851614449828131922279229978568195129592513776649916722162806280521997636997806392311969715790586368673222661793945264420416293395932993948651709506857077016605230156680205474147121266066699200866702856424705822995133834265420995942249688460860702567422083374745597261362375246850865097907595689621802008279711498877451472205596126329171413205112840400444845671336411934706297229223570346499081937143112893281255869402695353773185701560954554845775243192266318335113103886634478390340104297057221005592046607513435727047187427136033936554651135320456512267142834784322525368441881368942355565933755724097577192703140253008905537261069136444319699747924475366254394759845073473429080662444822728610184926411351901327812018716680367446573797222538949313364736620712392416953739454305035466462129612110345405992250452240073067199139364541063663507848844610563238135794412601987123100917824287258454152018346748118725099806695255176512149687333452540398505699565029387248532402701064212230633739155243140667138445954660401538831318778096412484808694846717075641969744446149953242921074324063868117690806074360932850244880142628407777139933145000337679491356558917197760053580508627431075328634735018561521206829444611882383516180945173883120565267858675796156543800692144674601246928802552890905057713459582350264909247094037549503477411750834762165211162554074583958051125784460574645717994296975821013683948605492335514460800156395152538606029369402263007367748334940195316796459194338402463643017012966314096644290506387666820822180766330360636893269979029582973679809054303909905864401736459995803507745042837762436036872418710980323447934241508452222760163947373164362085300106260435892911286711547132226245472249562602551150201652466482391535452124355130634575572736124508743844831613228712471758689487608339205739312692712256881431227312352198463217804851988684585940974981830079611815880518087093586846779383010317983235721999046745450198637548694318889560511877872797727099591448906826417886490759024316878587525670918158737433780149862404131359409997420548458347329335934922706464514023692792535911119435570085522981772301754748557117368227894870904335909879741256361180185270438800307928482194191319994770856849412726200198319787313562175416522847101574951652079697537163417665796494444653553063440195549653324949115009026208387643495020039947438682432257904436990295925195619433747485823120205397823792464286500720064801249052535084762327862851518601953064657968611162239136382547558415059504319133303547903578548578781001669319241950986921450613157050329871456954346288084955467946859284898369192405098068216245007739346954852552137926952063998939169336183857680469928407685816352301687994739848220463381921362105697494046999838054748231796285796595176761488995602066370501025436155651009684155249350446439327175502220821223670922941072770335863064509895345802992205241241660102219560209568693504144204989828363080367282277410001311813550450269378261059070622273563249827797666501117197428954174470882163234311532730692580762073087855721375485040293331838706552498668249011324414800148986466100277234335631684408825945763881417820603570421182536453714988745856624587545565387805638540814724681005185889947746524226928503488151048075696001364777294760119784829984014438983270107555910148270063418958359475308372087556107810860176933272504450694401819467300930489725848629487501634300614853721185180676072146088481708040027003058138119824182825226790650620870059625621970430658522656349150910936969670536510294999693803617513678785620547662658580549392565175362355555818322231121820429345938311780459952213038057884908540110207577885955503066733730648579391018902108756998342248467704138044808561878837935192345601171352070418385515405590298850129068325605538707731573602322373388914855238380848403938059805654296104076265119642119808567698233432138466896143107206778640468058374874322851474357091707237918611861088887232160800912764654569495621748597525142082306565524298492283927452632925152234638715696826966580509218377352133631322050634699065928860395122926229398300249691676151471054760922984175425954394820475063369045135750047832553080367602801430792759942099699223500497873532414033424473455219107361018892973543569058247524338973306803620713929678365204964140663959252561925005860237690762033864873518435931202166524280154554045609830301588154504486992475704724157149517185726280286938519072318433466131718774137949423333883103571038763365197845802276552187724340556891043613821632128085656700036290621439888301716503552146008925278548002738052067502040628258580375194313315615529922229608014972228729278815615858301034913413441324645038045669441300078488736302767858133348403193595503032176385181890457559442332306338433271437966256588215661836372502200556243370705585636871954712990403291012917893089504128474450758533348690438057861186483406546143149197577685578378990950532910259974831201961266563741200182412487821561037242695533408140240805082540814768906958509023778926351992322697221069013484860092780385650036396689456742964173187089842834112036814625739527850890913362705773899431146715304758838364747049404099148466735936613608493227091415645476172109645681827976208216989028353682916002833031394548555504660915294583067688610086619688675378514292214331175623319983787226823461465487483947310936226630077448984822967538465771204228019245167932459536638631824066236047644175460760172684170787541497275963792871691418403491866159647629997786662450663891421300500881788928722358720242946716127606373158173298518666300835902299106010506822289411016420753244451566612089076009974923078707064281455394948510190845467836086174327001289400880581483073193088569978297730977110332549357518349468062986558505813072982489423326057094283281071664830427905958553068285785416307701749874028814699808861996135819617595659569719524449592954992926428818095879891420873776859445816049707603531360143783931451874836526974734959529064091213157437412018100738084050549418074343881190050735192664990588513835474309610003230244237758006404092024885816344386009515508649815231036892271453005104412129759711929818282035736032433299830599975715624786601970318301868820696654760048486511686377028945066548357253805185169074786135086613761887481550915609197293457316298484748984847296702264129121465025843804542452760478014187117853759141459462186876114030035875022831071011103388214169401862110615565627839777409563737894394880895817307633336500799530328506586636904614163539415847439138873089224912857139662571211565343486731914094532134809285972393792890907968264962189772787127537094804319473106581350738776477010883606043091593239257290224657778047759711846211487010874210823216828599728578866804540566499393608687625643590936743178339852621233359841753043966545385241932692284189179821179130910479821417053212677219276824423730855110134222090883275567865200946967635667595921948249340659407758658643967270620648082426735155808741167101928590980594936749362325940278924454357001257038509218096515480176693013345365912598075294803927725655803753990494847246871494884578617971350119018802181924628254823586517876271522789428633716702041112234224972705657601665031565990827398583421273329814946366624653811970768139328193934675335275150902228065442187428957189896665614755744980522967294364954108277540920111995043696708630211108251415334354171624896677594085030811251480234471168827212039949051555992399075114782956318985180339777490035065497278688802982071156393707659475880365970812011777277441122373478276791082796191587439938011286724022500853971460512833318253182125590625277454728140914965183027995050325042991381836332562263456985206703087983274868342925429042126436476472356547872371277495441854812963250567536387498961118308464153739090514834657499837681153619845616476078233575638208509591147982867671921899201467791500258038325449655849267775876260760001348779266153640654644186775291566915083167128625127132629786562058862530333746491053205698282483348169718480574465669025128602542115989251843749399420370698850762818430363166604576868782752960572042226096903349730145046188976886422635636699409031038822292055382760341131701947135998161311883050005531884485720633500658476312159245893314365621616598741638657717456778754865292734009895095790547480911745145445158920288950644370416808043312413588391393348745185376495905385448653875410946107133583251464961663431878381860704846594125100284905433185305622401230673940942637470000948095833610227885315984213182445315183523467405538195476238124424984318770774981340698334836967365808561503887386657609879829245415375775628175289401241564315974627306736515607819708853627669933511336323934615064027847180513264064411720830786640615228306862516326878989943688940988067302226673955737714080592437594022984542992061191844746046488988648983341587120034603162490566685397204026979508060024936775326914376516520336993872379630266891505714307574968134923087838148215287646707096752733323113328184053440638111701297864773476766372900761859654539548183378588724532097034708578359433326206446149382958330772281072689028275365050631308245332287673718446579225499837879857229368648026973626611925784304856709556963122986634462252061374397184037625292083517470682630569174067519807397159310534883155085380213822530381289551419410567069617202971363359053093022988889523694653177742187184460157676091409016749811169957454068463072947814655171849223643789591482830148893160725216393175719950209302828833904351616673919911128072317291580247782005399170518160270308436027528876478051599187983613331800590316894851864416701938607689336220918635881386931639296791680095426415637739983410194566635034780399568204912953906927156659407807036744019606832232293324671409026194931701929392340625376262837983667701681891269782627558762034044913416764075371804265883350668696675125885904422473310797689467577638933264696617519031489714193938370715140428523737889557427922215743058521534783689103251600719372850651048474928501681096620885476855927504455163905152441705949569477868266619869089008017000451786056175016848393036953347549191385280565507572505291316112833087403232351428003369948290374921366947982532206301326227346713889201703124251292821665717428245643096622581914704053632033728696148032908401182420706318803386982411592918971319667766305345989708434705633616414871737616514447722324440057606550780655426095913505846448959061089833806500085557755092358792687914197121514184762700242483158503584512040909421216270443887545515128656474233097401368080054694968312193306251532088723025487368511818728072549580962859753460522401521503904523460282045786209353914658715605661524965755847823242814497402708114400176451399397175377708939933450715922821201625815058139227678451058313908768320375269605975676092607288862512056885364816252534490638075631379068241805903666006267155159385877403420562047687082541724994086456365088062291774912636926906112621620737445859916321072444047379211441923707518956167052078274448215101258891575154348056281448910354294862550877501536428784598686144875352553803470034857841175306222017506074226482357649250940968651243445664219761856117930841981331640202316571115125188341385087233093003488265015849568320633456785034002029325984331164761145652698039665445672461449421163423149427412035892369181917246355984091359742993684005687506206607370884872592876212208363430470350574610571398288319763564824293479012824446624549225297364826328487959615104646254568943276401592082856951460548889118934149431952856955634595457130876754803065805443375885242304619481306318594633781381930726593927121032299378017119998723490622733003534111664725012453731976423241039044804892677606616951648864781106004177031672541543041637903601343041358911638707859956953591618565203606869766261369879876599313085408281395013727861413126216074469277597669409020350659593741137580460491203608286403749611581789125455716213103832063620670994452384276164149112365772950727329322454482972571568045900452218690979791055468366797137962908625896316322627082349564890923316728810180164998660658423294021430618489476359675598780091356560349328168749500508942152930141771560999918905506349454158841846271961519216234975830403589248321896575308218275202167942849234917355902775738751988168696362437035238446133124964777988295875842425251737069174787597513290173977059737637279569462693862237419669183033543351564868733929759350632780400349270110367892338660249639080886110324554308972567900483058260450279160558645211057064261267132281306604105053953792373477491411898416069962377793345091337322997068823801317467016478623819370484272387879398019041180290729258809748880994775498867937079135386627691618631881690513966946882551309047229405204026648103732536019479094179459440001794820971020484344502556641423942366000121552011797882961859420398388777066956914498193801267382638723544884396572571418218658858506724802182097391127286840392016062024164957091416951936641356472346480659064231279406331032373046979909061640349266506275646084589365828377398869101696849802698593235459138345269670360892922860723201973508779254591649739261281763474192947613710430359429732732275977932062789683135592723547518204273585935511169223551107149290680859349963138242136484696207390512371891144331384457543881012981218063467638438462862250412439604681854931686123208068458389814448450018642973155259852233434485700493996063036322284694411299405906639757829579161385386708403100116286873861127850742904002563670080996909312860383658970194882493725648470871977916380440611739726127564676501318818783741087104174977543027498340230527163008587724548958893793043302339839313697109461829152114053762228850007024345519866944715616618656829036824757921578548892833925831380137828605468636647524308428970405279634065759043699244616933533876815067836537052190264037688168194201293655523494145689977208309034585945896374365604412096847840692747495602464134369285765123540365629649947624311170844208308096518918405671717904519739051976866361394764385236273104643117297568723314981715419048099542371824686368608415285162911038143712993405091790958357442762875139024420028863054509335551091099779474660131897574767597947152269361691982413347364169829910054232370724961713096856682499619179735664370881616092988288593662118811908943325713981204756954285063390366730390631186446270461998786361297914763191846090521041479028840951600742866621259723143353689949936581406820429745148676411704557241207859953667280250326514526657077080118979693101441150849269444736022019382212534209896499045164452249781480879474814798279716646728331533896653417643654366982401598662044211118922908276304176420269382923210814364100769539986344644103543786253144988112942100508376217018404987981936870647584071239557422195343217538765729760047792086263976076785894322197244848499400558631758924460822080495662834918107812605813453335973901857920097986564687472871192346571041927035400417725758236076293694921026851189802913632642707178754117293497094115426056852040815635938346672846125416579062446392945245025486755804576774431759617311405619281574546943450089725735341192371307025581377796958429618151720399186881746437914384869180335455663427272281723371249020313256689471185310274267573900848269529175437686606906115932919357594384314678719219246538850429551235212409597365474259048164531970651520458170641411058877016549977220928966516613148381365340822650010432549363287059130924059370024004983207605530030973834086835060580873238078786098694479083494668517806767291012666910568460633457278993699697453665617364971822621441201893718658553653173902124896146463395466292630546827273712718421717338305444992668054996661821246270603277998011084586757597992980588385897764846417319963238694856533172682052254608774242953191639479217016961852943889724051530018844054407810336285491318348541392775479394502542701057088231487379829660316372550462142103865417485180172858034054736463068644015896955089577274441822573995369175396639897492757318688200497807453328801864598457358777988661229396964199684780374809963741706950166083684847770839833364301278651945613683995194464574494670769571110915476472573575333760092432893030763304199603710115186563444066935736377244661371095250108403739579831830427672533780250472377077748067885500652549555689318655011674840812789903988752514444426543828874646995396434257996376996751642639265613580313475651397108143477899334471616886906469430143450954290719790308547507753840785248250160210546951774387229721858531272085826021131680259556544349305412445620585380100152456093222797073549450573147508754651919201444396297056395825722897323560000271159602820413948427732857751655818605232053664108679762483178839796523119321040888320223397247043591204803085786132458805489855085988365958123029096151631510426316547418093100886581844736227985332999489935077828661440008165981277702458027354061838237228329609780610400257121849530012341579737718370724331009736059833009336916645814980684122316427976946543115976305096317322441510339580393672795687834302520062242484676385568538109402929737110059662632688286332369749104364019533241901557173645428733632634442788342039957234324069669043703441907100821072128221891904280793369493914314061318223199013967545971762505374161952670831976717575329796682572708920647527359356871161586364956241635098491972996908491628846494039082393248413046347600236848785933532821975644997778696460228677091968176751704877060011626055813857564011801217989089743693416477201031297646281099925301606106964963868851163542029332800516227689666290433702093502487417350675309855231050817189514332769740586350006190111196644812939493391678657702790128521343593168627858286485227611177561914840073659954404956319253947659585011272624981445168265541626431425923374845377681751615568351386148396643606442095178655193820986183476322836978895623020807900638976323093316591574212749432560273873430397833124875810499032054183885254070964820406570766347068895514268994899972934522884324152352913274015014429848544673002038130646095443631179266125630386553379132723260286915530463839607903821608802197852819246607955398028636397726054038204199310493767313402647591327330574932360572581967664466306772160820635056380046688847277582324938471931854872663886139418266821154666244569437455598151146418077541909834277243248799852687254637880214526080482082849969515452384132141068323472047759188699810418499430009467278533445964473215343661554488574363156682780488254398394677666240703682948702725026158687580579648628988000423128480727217399189979084813292035857346874158048661506688049002164734436944315238724758933778724273501358992924603730909629023656845946281600916126150362323548263098141211803694360034074922166430757501010316920675786794928287463714926495661699375676324538037655166464155768485889482546432461808359283280909876443520843643599022559298573750564004285553342578186726885221847427048185263578747142737838484567487344118206429986916363468743762068465017178774124155658772013843896326444454825788430360324035390263958623629294932561102161988726782342138219716140322605972537107307831807667302125866817065354157425187680933874437944118133450823066906013936009883288958739456082151789966042921575406092933456925767302025852957552441656206112594581645670336985989496865499047361748981131607616464733133350573642591430527998578937725782190331363447434416326379989727319456680509463263520410592010291179929215655791228111375461268314352658450626061280762408927405780011919115850530797941013684386612377391805448049929787964375827285291311200560548852498634424494504027547117180329038082853258048656546744734803150222076251354740446678086399596097756449529115527957839888928581958401162245494726459839680377625986574130519105065267792323446386510816758179668527700622773898878942351345392453789159533638403596914491014383616966944775021704912154549971418353048950827259278161490109350879977526430276917459194940787159017490375936889729565321714442256906946895692836941135334631307666288960973340398587594120540827971794889144150543513210807057245879498098962507261569577934395271330421476313983412854982003103534196455010789103257425591927753702503701794164176030666901158945815260065422223890279076810847737488154201005104783739997630097553771359083866935470773598593304949136611881466501823879063600575938694204801334132951577443337872987010390354331522974767772881837252514402174957455074912722862666766916282786998666049676196602614625714683093868891756090990884153841996859743195517017463864896260970104585589129962833251409063810993008174337213838300760728338047297954648525641959936047751936598913735000865665483201972121393225467201145275511447945413319030225002334456454334969527516394130114340329558509739096809758457216757228759435028455745064828749801434988943549858793335567770349636207987938563354176997368847116175737914657675245590866098478592008215765371368839167872544966237485643478561162242769219764397873560609775004679818634963172011406218273885198397424483245807049183319651282472426009206520530402499873846341928772054266237331666516922269776295533532096260799506248968125034884377959978417607399581054985350682774885712195528452476409656117006664590896346102190125179023212993126831865804786939060576629728942090816906880228168664064540276180150832591897775577106462641407848051286917553517488613621254488474985962171743359870741538062557503481061027049006708329585744908646356433088531660184747957233278451152394692896562328279120025091683942664713575412110898465816593523390731397654265718466972355471625952547366530045724366961856282602216785857229793057782761851450394249319818581028413416405271835523235754508464164368137592039300855977046639445251597776722831543088157634063045426351817444928616811397483426713821239902373601198686587628887066275830319376922585329358353379846590066621074301072155764056805901755478698296690165387369476854134906322934356791028191680036728956535717805543409413034113195281374166741282457924477933136250761989984146537289359083072402591631985896214059205712217721380695879193917153608059850627285939993487975797111633250272220973377216389559490451002752783073672413878758275475862444542386973602528129769261011017437975751718848980647742176371630136530020041108322357837355376681836213769215249959107138793042853619460284528657500828090015196698295384871194273121667035285978083991412187802501911444612783928190103455880592132898755900642463042367930514407852387245683191697813566010193467257451693610985156448172269310697405699846584415459313272466220234474684285840953331151432679585267351888499272661859740719976591592744138834598996993804733706967927167773530520635799937443079047919763681477987420412872901469644490245706417377718057335882283693941820291744485687370862780037678374061916546635770060614698449434347685797093670611190544780845124975589872863793728314848065141262536748705651993104013999881819364555359507869372491523895686296232711671042164835244071177682002220396055234626600736689508665364210797625437804980234507264779777852674309632648461713498066547767200782507934192893921531557183547827790836632620853689118987487784157231216477832204346710004362991635520645961174799189473166056169882475815634383884840131991319199509042504925479219314515822325131086999103323859346899354122539746542006965928262990032235521680144344210473870442043008824406180956915514010648574696509044494867795353286969398015223872333303804576768871114102472592122023613451429812657885492338205009579042099814362202275695812301269469104314401667599428004852353324351924871287383716770023512468014810464124822547374789509639101012394011377759496105249414795723112022852739513752130445316552908464053732944763828219827992492511078655082168187310326662868362142111002758022460893166345092655992715773380355141837305223152006393923341112882909216291410349937984194804266374976396674297262030053077272105532454828564141580532423545007394387276970909640130085903497202067410853823080167106739314260327464370707040723044309334761237211868388185124965394442460254227170973349917466603623206650043034012161388672443559929642039602435982365150492607473031497265705302156901316928363727433399711552377674381337112590157933803778413426137749295860068329986417842949593625348653776901634950312067714171542845316070516370592736256363235514689966561517718051534222835705426009828947672631844122308721057912185757392764232800921339292712651426339348477752812350789943838820796704784574724543442834180552072452228464082046554063218226114685685959875682616621406058472351190574587325342427941607031941018132227032426998714919658515376761659434555303345320922624356988144603089518810599143245454343860944662052484891775469868820745611420686381769705631364974596294928354398250128984488947204194764990629083263625548004965058339219929032880686655629361705686789514416368080429841520050206630887907158390406758918303906307816539714064143627513114936774750013942241141854543237216045100530951217309689563301078131043466655519606959090524869202226146222131317121476674965727766809469521609230322601282291596865290451021494922681540569989344733502492762672435227538163732618088079316921074023444579658205233805089136828323415887663915135266781534195738492235496097854005319935258664127887953429603283575950476405046545420842179548137904484733610915742352073279611490610935704169870526182513141578205178065938213429300237813317609263269811051079636147507152151863595160936580204236660894886608715486807054348434534866804693183780358228513228586232016107937696531298741578689590228813015163240107922101254729600265881620980908182040238416200143511382381628750079706712351450706374915997895489825495724379292563887700576759634001786853269228465428239243372301053201971536030577910464781532835422266442661965230396797454075256682908829310548156588495922691946728115160023589576201407094322385783633938685933338941453289195981496845710360302674207030597288397641445417340757333991291709204257925366077364968601164912715647114365358202084893082383442711347063658319945324324222472490252875979129129604812929930512709084107636923827528432191182928037976214359945309040640438047786715950864893235646578182283817341213947248570036003372153026233065417510720931641361962345407066993400351482273459253210571098498539751484929276533078355417937953591641463204276512711994151121548775218115271813858618539926230245316140209625201174320370921629598838944827911480957643455321840795498565771535378763174567507473215914755272489507869108862583229425168470323465705357683791958723838470305974353743251619665181717299455427662115445103596732997323382291959693503392811406537939220547840598003377846745389027403983482657493554455620232669266441237184974929679011599464491016239241977427186700295609368890592842256113217387185953410882688652637728312688062776118100906753511545633130803597025906418822815788183349029164220710634740253206200203586937828053111705164979687803784461499047580836260963159793571498327814699305822679367022324928663369980301784907251225507875660926462708169772868043526790064068869885670362168877020550558502089230325542726379929418918498239997282539638965550712947187787621788130868636611493021304445860772894724538487903603546144572624587865256407836837699628108922719750158047786533979228367381842862090366705562591922593976226017228890028107862232980493435539544146479259563145575276666504326755470589525667705890089282975009406245350704996855128367245178600233258065771039344634849894085065279000779072950681105990010946033394707759019154590439751859235960950235295703995344107333910866738731131865890482773197162421439228552826387356422162731293161785490818148617232748570623092427740969653683720528178027341715835361423098762019168423553029787019720807008514788737837309533169127677450098452475558361862701729115922443881733987155603865305269805913202941646653662380009766299443415638937891304641291746587439112707397148700470463384019467543218262910965631434726979189747220803859908505849254226652330198018523105300449045584994148861524151474743543290193294163441301773882659178101236910095534500719758703409973920304895162048690703276040281221498236319039495863633932297847405067727831522936148766667341507135688541470672999176157281995229368401480175020943097636842352740159211184911352923088428502901579933566668693613404300501514323738404109805127780646546060902464339839471711988242891276385106888695361714280706536534396538209911041758375731425308826806041557651562911649076372509573781594546912375996285036567720090138041435244410422715861442749246912318835384000561650699657246227124635210851370053308697773144446232717474498708178117340680469733447335780169839312902731475112386265241533286673303103508585420036732006915463362960342833705591931803920894591365509061247995111490358548814763470617478226107873068890585856187322608756163778992319599898316750207334441734530124905156791348517280540271189408931552644184677411124058607482061307373904147975074933965983423064634471275738774935624832793555034183566445521969623176910679960107881024155581420800035237308594429201211709101269873591151613718978997666594043268846126961287697191334565083080289089231523861050683962285220936476925984168388516807658381821243479256260614791042690991424750458664481809222676610912277100634301029133692976545772401836185604448253697781011921204950556074517907926196384711613658370843640618215997711343350659512575261833361848791628510276727079791070463746317579577172590123048384284236311007176877080809148894258400154300721129730863715207498175083895121107867490968327764443698248019150227668286860245362651806811200274284157378171813336175263073489514102559595393719560234312084835063757895023177174421393466494689661799145832251317303725727339402977383385482972066419768711550457468964446787132957311760400854640273791675317821965241988031760875889056538531787541465802941289601204919259349760392926895661349612688092952257690790073718834481979882144950660210818959493321958488728847461731839618262714650741854311527187066778919511254636526233943325282887917185796159299247706592646764064231859995915867405718796835640065860427611717480838780405592236788029657603546784015053627062178102189819558916117037625164566551355263787859116476196629747259709237232131906057455551461229931332289754219789830049301980182674102668459805251588139911609070176321882731155053785844931519644606547103439002015277166749713963385273877570552026465288655741040003574335309926726487010130435019495477372433306819510615722554721734885547023412964873081697228233819473221127451553314308466258928439511653595644229779809714282267889681356127382918845371314173006451586040517057199443466077310241754900798108477757288855910114737353637529073312085881597877595252761212562374512787382362444621536945870062223726178956559644629635903760722715297376849757217230530755307991055731378811837535477900400898040236850966058227811977609617565642283115792926119110493769538397456501940918289000597809541508366148484889454105106265374014455104713202768969570320108356476266390452911553652805476746215054550518237631986042359644873982437462205802657760549566741068971770364969714751463553264999488734817840409345001199477223891174657172134651851495671677264154282940169619628305260880332940479485246594069436004576564589878502109800453822095139755342922018673537539778599026984163525823105304380094318777189112057382602888996961618626912962438219624732995953828815436186553338095911693084513732437687775414799220824841599957901459674165787091676092350834882945944269268845093995779373332818992564056961594127550446549392439568074768910565435498232560821381950269931758231921922950221478201631122175311381210255785651685149108416284398587310154678501163057081322083637649143045135973589553826558487278032334740843183119032571270319615692404820085541014493392528102518571318228277334336417324351570168467570410875627082058254837842067390208582075383028195115844689489615681298089427280757505357761591818334846680830428239514734429757969040585940637962857963489480585651891736357003547960228810327216263114072683291646495504110436629263367919064970852928941360796764609360943976723674125713873501025334256264379867706908644886840127812675526988767426245138923696885565594909564207236376746298153370976316172732575066576212164589504372164510051120657035226657773924802297158943762570489310663304920411516216440228131874578191494264100040860328858149542069324857546276196510833242343643613877951288704957846304401263373877879289827895024719290696666096307697440040867316240564502518779637571089309227902901382199672103565696568924927359015437633421871915185976225969791176690833478689594591166133028622576363141793966589165113821605840775164280562829147227402597396989599254337108873490454722221915715824909098337544704047757694002769418785721866719919452565742643198664374433663797024584526482753039015417964016528354096950581938859286568961651435855306610529267499265741658214533759258721314626121833063706265155467294994235278153328452705000984349254245539925266516068535300013291556627914634087195948840341668724841320718158485159774502333612707004106467992680330040895418872044005554099912885245129008294260068897932108591398792698178129002104168613780620420812402088654086882082001042501573739742723342095829969858979951301718397343556729226763926125394294513173054981826213465774760645794186955123478642586717704134371131591299609928086484244892047655616774373477942496284724404684439976206258333826852827282048602709180067166678542736821286775037558648502436182312015792267243568350028468607788600148069581697636364628430065844108687342540914053395588606083068473797078675429879797515581668636405826534955538627763341625151397020868159917488772667215096350762377530157021828650037625707355392976034676119695533711646151184959790684599575409374197006086967413340250461188022328541080660800102420541094715169623102066388146440105290905058863224667950380990898097236048477742459277193252145478019584892167234849514664543784358325840759353193775186462572539753099994277851229778408777304715307164836968247296219793537238469435805744172325661270044299916166470694302726472201232563515424092453396188454741927255527690344520728593934105409405645246399018438042832462134125799540991721097217068332728828378501407649425142425878362982850329231901319507545827465144982280695104030548664329713057038718895784356867811152697367728281995934802218290825457860722133623064425433089619057450823427133564946327141315805874605645034739869203730775725081880751705173833532322655792385870301395466893838386627797974212489710761799187394891588068658275365905947671185934295302341021434363545197780109619550084499973192052305578348528887422749388725003585629075255244120776724044024433770444709412898693375802269524347471555990893987772149307510019559325435461504034130699565312874456959662818023885467956015159420137289818154652666092255440017968920523692802995544198853946926916133689049386711178369598040185183161439879940844860822433195607784357425106433600281287910700645175310186240922189821294663473329708978972838129638981646071559814265282874371264426418764488890628992949180573643209598037208919398490798512612494122832632794597953117790741956958905228959386831304721963847744342714336943176555281352353175489053402900901335832975984114201430665006077100179057606970667199536513784934384876929697507042200387445699696104725194939946621790719752617492821320757561665149440934584937111738682588539104747160884849842079461029093296566576511525850440398050857866419453469325348596194711040058651172892220306755079470018146645313572199684844991091721480267390920393344054185126669280470866976520879504623338612271216010315110465269578173420189792508701461794466604958136731572624883281409469024469224906816534835991831693112468036546796206849658137108439693941265713063054865038781474302280461141623495298327346767303284644013312848014391232345353068822901411597354868138538199722932867325396901605899703135269612703752942285252085667396068892765326356817327266040844918041650955843266350031794284495201659787034932339243301764203532613948664023301106716345315830061129590278319286198996029977935635583720625955648888206258814330177056944736319592856291319481879611983036655928016969342809526117139925934377002329083701180544925607739400866611395603548440289409592952044473730697018165818327225501485156803713771215468826173373134669853435700671487895259888934097130482124774136940063972854131655692456105405160359826958142525521426016127770505986961490445184632273725737565045748983726210190363688736329028524784359901354835373456828627242018800565031370087116016899365962411644076931868864710524602828016044889523057789515444968293419985159086726975511912276980467264956101584441061792959795963139490963720990204954416962719939395173721965350563092603231544783455960788189257087536683606843798059432153659901532276058847847435406958525247463290458135507369132482508163268097540914684580735365052584751557366016955872066991832052966753817279732367772523360941849282930825561781104163921992816305513862000359762712731135190310553137776605917308482126658380349569241909754535013249288549862833426334312162502989354619317703504975645922130327510368150963294163553385254243493463005915934910794913854292743959902719532049492336028931550226503247951792355182487802146643757335484450067986727678006102152131326541001422968407197559179583686963322443121615979339571863734522292695475932465210816057621147394173668705250041292218408839457888007237587649943130707596804637367699922294462708172691635178611354844861020617199247943627729095686004399493799008628440043558428969442125280200254328099426245567381536538898913065733286891510137941716600362218070255306486435454225271836080927466203074563780376216431216811409554845941760491055187359864674375017813818225111601196179305370673841696487010474568346138162229366885616738059895672640055002274320552475905603421634289815271946196349584520330892859567653131312217576738303659201008302649875430648512479179608452135679130173055454479685431660779699433402110633324196489193749707596849824660413215661800698677636741894031487685947199092338882889200628712618951277635543034712239853605527056736205203578922070668253283008897517471960446166541411748895190815481732307557191175944170598159445915391217274205498562989837370450949800396822547721485018373643003632492783544874721384870475779863761110474156034748312468812006640462872180235624248783932294191805228091521606761720733076283980079023263523645666332402439466698504119397065764677625014142289131045792506382458011513111597690819569630283996049341449867310889618167370156889268302944140657307540589627821855858060332085987601221548738603975255267940690064040838287869530097968136609257690301645338516733519554819844318357017552263316420540056821112954046225128169552114192814418095889585118393839796254047575058827194160071352710508865529011824184010966868042785575019130081073636964802966267103993974403287307160084389722407149288893893355193649604112386342032227315404788186863037960152071117389513258714782180114212065253497371863995686071783473150674445749064384570368545096059332437697585466904000215852056896672484001974325218912642865018218788756437687903517587691092419146531541636400822136829894221580042598213826188781859642273510416960678613059905061976381071850549930991229560825237796172473723012949049973590993842188930290506177619748524421657379510514755749400966643226430172614236967077818991241053345789952245554595082910093168132871243698998891697639923947604534476340651254983223848196268447792052288780231542965398598791658409436765144091439459194726303954371922891725388398578357271020186788380737413966952004602422565979141450943647690180648053326099755471258414890163088134247732192408478706403411693184843238744203397034422632731434047867408890545076996948516072028980078610971899135377246336049945323023800887922421986018124573474955177675986163521484956562644994101697315195254556821468768757186282169621935404766625071951045815849927933048184014207439363902625447544797295223264463583522568525135402182454378961491929502339399887191214913462589922287786143020977123960230281539015413594363525919115118362012167823260873854404463640871787018665505511632052477354616433547745310792314880932741779027137413637273546386166656051479562497120224195852145410664739267280715991592020345304154633433604328718220951181853092536601879704246411089120750366335881259042084392535904062117927133171362676467026989607298332036417423558695951702359908812942328475064225761800445997011798282837602909860929317249566184850576828774866674103267439232276921504179388661471683341141539925273143431413179415909519968362790520129170560562951186193959382974201710442989579568047155686050819980281167704263737222669707534486145546143924438209825397779698085897087372748618657685882062703520560952344722836182812425513480264133350350943335805877636173670305152381342887421020388849190862085586805606824888804531052597006725224266629915553338354505637039755617877298800440854662027230004694132709898580685927165708535136891154160413540303011685891905454709662030093087184029933387457673120354993571509282071373101500753304764027709675784656188196407779747879562422860724745995721323211485032353049612331540203604172353962146090252947905226920007094243319473169512600866596209500072616942656132990952742034635385469709915958900101447026885383760045948263697403055147761957676258369419585171481816517293818421156878668824876479166579237813258706988729017486515956346773107647798344860969558346144962381648174121597336044022528519449067884416826244708297584904126784847229597196592293997254058749197450882119469898840474664204743797576005088726671301029967070355791535893575303536201931674938964151609591969406229554945942535166841322050935367483880755758804962589712831315717170673034272334767804525237544930263629602823462033205674627730984296626344687495965777267181955092820652773645041700931067012471027100144568094183316498720662699190864572765493969142063537861449881017059945178088028396003965857464855185635518315638569443027115599523371803102532587522829269107414437130341624355587641105990079757136566532103705063915455840947040443105205136617473731892832247384849892956181057764062304577942529397829212707674035456747218748437980618121209806334146226701942969550918718011980728460871862975205127380034380932871464508800997062306166229426875278497607714323597010194873148241674072747206562985060028099378973033513994922295653077334677593435587052078029877173412797010418777490323562305816447477560885415065351211941531515597195401805230470812399329753102788291200309736570796167567405497437079622601492166352275969768883367342722151763312950526295486221145382042005149791781724576745529520395213008919913538413433762164927887138265190549023152063608657060154276397679913021037375041562393231090767132014311647663747629854148972245936543318309814570071881432192796336452953068717711546648227503487386769556406792431462222339099657630360903418752776000354120741097773306475964451799015598548701886090696968510609106628506886903998646034401828098452901581252049172669552931249953647905229360299671830275364565071432092453743603582300106673866182197924418737962704773583131891891879670238888338263958018647892214117078889922890962492998910420773229853191514517758898145908529014394218389229945657235770645913412859769666419002797377965959246393750124463320792984140533167896307903660716049759240985325521737206509723137888351193322987939403888064820949542416469561665981303392594994222963920356608189031550382828153986309017894319595671827207166472700952655160937291926322606895984050756431470019165281917893157571916311935861589988203703721017964511762594974678395123361440384957283046588004879345732823945153074563787546124955872116814076974246909517561086170537926699569851086489691617296471571519411901161290817226629881343323079593043080627109270730791141579381318148304984176207035729362137851433368893561803155107575243865283554933078216602694859153183252039680317703792502456109334542875650889702903436902733878216848711252331114589259095790278003748469802190392154501771361300202497983342746812239697600300283890548492853483291254074214814767395140261850486435159213520839263288150528887448400252867294640381346710894027015618708548780724430910429360693274122746424570685643882713238304918173428235080442334095551484086207621485150209233054279913736931599914670427825058037373831958891713420780258456809337951541127821779856312790107640955762202614569532328759781485661987119291674046710251389156412143026749269833000436082981450667733928432892032732387033627344510752855618776316860890663606155961742537623149875535983667947279431302238786888238289807385355821263416648982166960916379127564995032960904178538675895906972761913371195359339542301710409952149327067303946376477733945534217546670805886974317506927623599151949327075685424716706299239548588180356174934853501858725397388012763950236511744286057438472664927858143453095391289787478206930011206177059850598185515243072605664043253837693362090302463682305654678235831102389618001688123553915125609838652386434408016001498898503229786606416203564359044660925057110422717827675793516678156560864833332590137729543769122047642977937466896691132719007744595784017861714146366699942599060234370284982894323579897982175513355262475128752842994193207219753065089129180646731889054533011831814045812513935984887307600130511133247044484725176312536465785809602216191765887165329833962477307426851473023860829291506609449861363333315140063096501906303691039392684499783574444790088764785484327002882558682343059513753195860690518055572727186690282444798305604696208371256202491488906430563385706023900853843912457044744823423033975265672537656259902906346192607934949647284095635847044876539286642119141272489710524743082644750486693688545935215574555095673626903011238259933779464734166562240240654317423743500369568622735057433514131245579908861034302651980049841740084635975089835913933647191819715051429008941261521189759641091657338635772975605115027140427561321994037562720933750864734236842920394046645361675321303066451861597440304572271004535238270619856958697935749530866562436592282302308873449122346459318012157174513606449510473483269256206973312525030678756239297441591533372995120955871078573572328950583039328958683914286905126090432117967043168263769510173647530679461633828175856285502599582826297631414830275280594523454106760897568953344718701204644425223980336339183911680999418640020659139702352059926415123032400189217630117041517948667404423673172683924969776837640070624990219285763509808054094053213929619167279907701980166631296658219187271918529120906108516134430953961873206467973618266870929899122477276183710358127880146599152870734183679456436642897269574299966372960245663936024363042483899763174066298160542931031162850872680213290100320932621817981527457707396843986961026486651649152566137386063792835139273305926146568728926743630193392394284132241883756087372188088587563372926616432146141278881796532250767660238856539839334826839294573405531075768745613548332851087829032867464764811875168678075910578738897815949558393140691237664660011488671280041200908133304415862992645006033351031890881874895019904791913526875822151623707077547821968411667600197589620080564032987612112623674318900422440326588134018803119064229595117162594796330914088952717349636065118398738210646877148132437571756505247981716770031232093489281337645462896737727272126964266708549196309421723617182187218739672268696150673681113000855104226378386033864475029701270888688323420103168523324381549755928575117233326015810826811411542809110906006423857941457830495131066436700653211529208727568561084834938919251493855999080688968927839746894931968684929836340778554930616985284584991508167142443679739898520469254068664667366453658649514287801397178890120000752016604892013071431831647534244363844701509292907844100682481060002054971443925244504529717379732396148562872122379555320978672894808692005787254805472811052404675551907986885397528762828014500376045811658661421755052971238766397114668231966776661780270768329528596574318309490395720940987102132449259854287116112201744231846422164239803442816378793848096776724263878361652007531553223921067581276449967746360884924741816118630546433239183474899194247489344259108237022718669253644071277719634049732824175870458468468799453041683524696158582303621976095440298846831005948872523621850508038156338298266867801167836905867512072928772911812697464620006962591045182807613115300871908316510569645166220026718293529202651559533765414174569767968706979156848875396790875751666109409653021169318618639728762010689057466804638617021198417931780523933058515729389986783165326048117828867137594445221567294157366112409808716258003192979174068269974004980200118676742532160389601237837274578235638692869738962443272862753827669707447730585302316756879959377344879114603283079397588564877864640248552395249151886714464441136851208555649297962229332601748372222250741130828379583074441628244496175421942424264205310486547275238665420236889836890550681997809635339894019138796438949382931344996374255393414071369659318745036218730068312396957383293333753121186366295140462968346795151632242688004768973292265769348892618278754007950411975975323156415345905198519117212350208053775451093300868674258438240760907305826338772234576155071179208509977137849225261787868101474151617894076016742059994380704616308279668307162589574727608121320270821327812954744405874420574339005179705746403373886730675988475233102843925994631650080890877568735985925203865810218786517272618314867912224385666010671038180398450129792976276114850284293708514375138610415159888688410142750018994655207832935021645388209110227997052840646606444614696941878134662581855641898616969854293154643079219209604934947545292769518959613891786654323323955671146518573650515325965205201654551253618439764623588385169835814594381023295515798839076805183194362416065117469950047417667068505319432024738396572170110504906369696953159748451236153234975939012420720521797409287374830553711770602899351961973735446733953764452716708189561338576029150092320422297875275980707883493687153762049363615922011780779241362271590535580871716519500507207204348610956091988800849726417643236809385108630424841076613243882851348189733299514246335659496667892232378037915533219140623921236348078163472556236231503164847318819523186829295935184140688038657029625029029878770289028163212035622272872199510224952567075453621179278663154751778197220773462629213405647069627303317670320848122642541061756557430257917055134408414998628777255838613179090079601709066167506165782100850459607720914294280134534884172470897232668900692699958949487794352580787638159731021209274460676594985269619009755535684888266208591044420572283197506438522497674846198769495269460424442238672787811105320457717165254968211713693147488149140252509900494139990334745978341647158062870125427063889240413406543945398850216897632341992835406355495627381990670232036570239630934596179394013141580891327387231240226697346876382073333543091207924360368337311266615478706547477637871415921380284478761403100851405623308762391505578111448147396887071105645246811679304698463620402050676904620949479416485377629211608941989804073264834454654115056287172068835138877102661837865661989494664307435684038282211803141095410787006645591362353815537275409633615082206400247754074130285059720884783220096247525862916358684158170166669439526190636232917646791172217798130760176122406739651714359565406302749246839893108555239608074925370994232695508138488749798855293726454804379852050638757156838583241020959768167015513330288903399170671144867252615328887698110621845096638246746808505471417402528855347453572859322127798979127842840074814942466577032549512175850746763183870722281076726598862787661453158395968272124553824143543577628092147662365400626657692534758259582185120856037957130468243440086693029658367297693670851993271099510323984262532500204784323753888269434241209475692079741147114385933955602771728692190878873869884359870039625391309317926991885468010430426426211677806217058609665508788443532990622421681886514329474255310536560333393879407683793357247584080545193330268655663423229368110481376635014395197352442572660464410414731657204642343329724744470789263121798193449331135090117738348853068948994443832501134605244558298963002984407964313087382672625960577280813869182773209229907609683674725058313177231949789044319029302135236360916690803181907177459840925033117490061263959469213958811117001953103318873618415406737724939394714083450644759343493221743903549570579589655968959040872469021047913184991992430967159078842901610298743317611992832061806658463922917828170390778466855144480806460636632916397105976925594382145216125709706060273134670276311719814125663449106331891647461445756143863725753310932086968362270798610061794585449267989791296450808846452742174877221589530862936461452352060403136291453921139167965517736472952658477464873319980093922521536389059003633173456491176222439426777658363984628414239949014809411599925438394227589721311943621646022160483752742617698678789546166518461735672425540740479479637378230791935920385574866545444664601778945174380697546185425426690264585680980546176503891384957939248976455555905683385102565212659911767313205195922478861838863845387428077404512830548035115078232047433195112779030696943283928290051660467338476274183883404057322325190980107651883205284461187705063794531826496507194173900739373390670201008355004373848593393970625454529172730926811534830449575424225221844558540308889335423783996295714266895167371532964725274436735410535144055434310785586480493510099621721441038178070498978669988027175186978004863158976549457579578535076307931228801190395451270887826043705803968994817709999288019446944391490134935520028623124416816949475168389250146021937556828291586493042290192965854863793899085517809127344144690944017331635177383653244801294030038199706475248672348560631266945705927481115567160875759025799502223597928846521949181187343544763675917014891312078000947047955232752781645332030560580738425165633394628744628305799107515905762431434955821650585762727529537292993176293298393516669958217027846528889964888466229456983219444072568542696161998195047502810753101434814340191466445213174618622883680649958977289422949394678945134025421946238556010003114066889051660802633206622335308161372325943525032614508228649152820125080297032834481278432092642119489329673849997755165550917132569023492283211836646730938059314045760656518717595853531758596989766395214538851724355390570324817624400627841175212346554667925925826441853281768126039859149177639717633611333337830135528626142254381551658892962453151487535767693108341524481735406257960868528084183119893168937309523643529806077450427697504641199334714885573621444893763091818126253804044973986983391258480868171143232549157240253622092446455584296800199719506510627629098349104444037972919832660669200368912564186747861879385354898596615392880518818615412083326134277412950860642662477420680343258088115520314582531955481605374588457269101051321087520170137098821065026561164341013952193829162703951723247028934335812730389350518948517232957175787759450830307161977631417063384738711361651556191169562036387157761574538954231665241529647678886888565817280739841304941328438350144633669676581432591375327676802830161668977864184125185991336353190510406660431684558164863197798875157143954410096201729980906574101484318515484879421958945244107959142357342994513186958811782757626329955705532867380011329273738097045323291043349746644155019878634873811622106730895153780483602372223623960017972461496859967454281272709725351483104434275231334569555692842920437558144382552109031206594312636361038473404223703829792272296255237238483887002121101431161125329365649704468186287898453703812038554522841262398599156245893785104021908590626121423570421210439151466341974728737674965376220867475117342618268039681028202005199285254168432004197598456217934666346086956944373235398858752860755140425806658804632071156102015154552333634978059713862272030515193461575362333759328667038894343545449588648354759687058957114617119565667038353751086325961047959631087572754196404619012767506113790387700871333694664612007356322852382038691800697880983610741777599170618516233895702577914923353989408919995868838080167028438551659973133105455085580503679511760655998263345431681754868639100057179479471931662104545313078994365279562706955336705029185238783696303099689322439556938115819270725574754765958069440603675458559671758145068795121447495519673014120912067035585800039150340503969658993635352995669883573934927736785770064521383427979276243173293549937376710031103695995480836568268255060522646375633389343500749247111774768923501852903722415998536989957646554016411709299390195444144848698215271442925860410664160195980983785454087702642237718816288443020100503241482814915192032079321529058157138346550394248318474446287946582904575964922596322009213205672039863768445083217457939285167619072847096066921674586946134383181389336703860152317336048331468059778399922300914969770022138836303738277662957560071895073155957630954338697177810479485204607149577515228578908878042464250049218277152993632324875710682071637150239773554869878128117120539757262847628571723002784831514399598853290194332452713865415490624046061120292573053680890035583538913613607764448905507398362414426668586682139421779283754217789398607574735013949441236877292144106712738791971366905001254474596672005865230685315482346034403394326474956469244383285848776290648250834815304789235332624549021634492724967301959240360372212082990097531948476651905055613370314287704142049677313132428904462848531214957656204288505973095335279818500162753646749709764596033033136648505278671552701811842204377002938042642365024986404684178199279720743219239581297650481937969823363656235101248666677972381076699549030233443258608808111084904105540293070872042473754866284444570770739624027209073859192198447628021106229995971042828006248106352931333234485692327724570087641179339347862960204290438955084211773775789759023719770661037610491231908368006914145539333740157784890109228975545118967759502985231397019418622380482064817036197584626773803102907441607347959225153089835373677257479516419822295411701370545224905127853789478147149851220716335877774356829226112988844174924096758393770472330981305043597407510057676332145568682504374215658056634531853964547559441663710423621131145698581118126606020189565354199455014984102601529823588169526828588926231437060027369679424030875088022340822078583019177769077246742144537457142483352241580238376551500401037836336313440662391377023069618298027789817903967163492392524790990898779925176240226920853631151111644124584252235237167444242722019003080674197710757568581245511703593492073912771591067062148013589440565520565634598597894948318192562876762895810199148952948297861604525140388654933821609056537181167920389837157932114087093620916053316648673061658228634641908099238833586950640085637220594794577530722929727982063148021134085339557491901234914639681708616495578235688255690807690825058968243747609205908178556043896649449605333185437298862468044084554623448978138526381652802940552731954261035540623531612834282587497814619232583583741532587778981216845846375883806349489319944655861598862738079468580986018029194557434464207564601422179881120917662145503545482108126775284188115016330337985893408407185897226875529989720460737376533545832074490825436212878317363195973890672394285132695668280356343539690067389617170661994177711174746678605882491529928163675566645180212602778981678528281369191929068130459823124109464291392504549832282203317790091619657821917915251828198490462405451618418196727823974103460890166960944117300911563925773338868500896150568818479545254387187197323693136116928704086622090811094636335243382544428127185261577984564708318331033562676906716114137818036305439701911616939021923513664758666824416183250247283880814673751227320774796867136227672384159913889151626491587832973895380309080269820162064302812311160957058800492035869376860910634829218758991856709453752261675196500789508645079024829202879890328862985882876466025187587368177150481942998693609097425226759957141616104026792900102798108386818057244906657976214284217452489448743079460800434824963195152583422633116936074621292567631776658396894845169209952160348258423639758014232973328537956319449934249879610532784738124549083827154908815218813385751093572934823574413919646873861371584646018217609994892085790537929194692122803653026476085643095646469274435459098751634296879386934445152718301793947826220904743611208263536386931855753906757563828704806653362157208636631855306815427152386389975616704948887307964589261523531839479032281661332467703116453320688569869907019939434959978229111134529104399097870064378035616166479770394713682886074193180994009065853463397694402547405300951509454315982625093351733694805561290382610419544239673845887342050530056979796020715715185446648089700386183639370707602486203314852647829973268813234165163754092121158951864186805261751959764560030690749737736481466170738650968343933842503906848936027981387632734087047427822439991038725221821079338850193460398183075845114641568572581677708535946464241314370956501216681125393105346127670479496416360330583600695582080293339602355756631784996111232146019403775001880374619390352391539894012722561337620833020410834183747769704868465475767125822532205589584848180076805593883388206281793137866107423348200038863805652621382383333911070122473737799950137172087412316758200137071066604841506275343559342815563628753042083078363160956983557575956350118331226050780610533850647193440276025018503108263331904912938079062585830338785077876100883490375976250855869657323294586302459089183706888699571211957560428672889916222038871335568123911310402500757688965982850009158581480020518778621633894781169627757065264839611369164925761205386500209258062353954732727023633969529317998961717277177002305565912626214180637565458251802033611499549832114885410092847395836131298542373768038828639102268271633109350826526898052657850337172245147085523456992693834288503390387800065208582832399828351402326566219738424726180080877575073018846155354563598400953403125982717443881915660516743810966388102858596249372549138591422599609008668583998039671729984072209817001146270533352215221678809561917392366790470941344930671550121246524199522950345632320996757296436443750230477081446669664206403190245350291466527346174842643255165711219777197431582082901843452893411584545398712531366581632673935602909221382759142684948593488530119445002873908173355904445206229066871874736666030800064098225573214665340495508171776673164009855211473296248210514811877802957607610139551571407123578867589701044070650556052345173936008005953903106546532044763304888877676962180244501444203881499407172950503623418952096082036534945861326395301390214248566048593809377817941257633477175572281527863103253578126059641602836805046310295088293129973588426909642708542936252771148031694238156547176282447655549035657559536410905370360960584967619304877501043055931245748457252985928579192335065685929283271215536092411441143447681315779320997691123541051493224683647253577752438590703265778451189832388080254619485246911972501618229541089125230140998982948834126427914150085700877962916386465780739132107055583244834406490569952889577893304069380891693540920908245316974672468357615235797217511019436191236442923891984490586500181901221031432553000609273292952550442638147151272780968940548509178206860459154370268410411797599715649699128088003143967477832828640154330884993206562541680496471965635015476635428669025131354883694605606102997163231749019524667519342868848237254463936662159016476131800110692703411259201519434985784832788642781718696092155490971366808888426665005916867618859573740540789900033221136221237267036873014542087947552524886781285501959126853457827662848847250198371540431974598332097487677718602970013517818515666237693112792149952005856887652989237172278309730210362998716726119676372837923574938458311267510747364013769314401843791435065306598258276829289340354761691893786320439976656242053078777918077940955922948631204463609381320834854377841164696921935348048547971661327143139769777835904122724104803516082863557022449711345751405965437716758124278785667989931955949047642559935187515118876192059603821987556693715709674450482402182398222773902037983256696598661506000523878883483977482969567509780600615668044561742253621716346398934126295523435454767926014528416496343114037528421947582033108740706444648071371564961909706657654629535726115964615300581266490431914060557279690947999724074472041848256606391931088045884957527699855757460506764318601912893386426587723752217546736111073397948562394080962758745505729640752040710703983828023696113764476260255810703121740564356473760350426650050571861362421667716167685288582115626705546793731280504988555063844915365497369465931112617870726121467827809101376338917308252250946399894306169686385084327588608802368953636330444923051116123372761312537046888400370749251242560404376086117971032102322213062643165539703312693600357197651875657213427790350324487590740251379416209502330946016154388384599844987884639159924039305099060625762677041858442303994019333695210685213892954155296275405429899404615953207070891249333746623324304450763396189013428258509831742413628001542846693360416877631599036653654394494865755942752028693577024421357582886107738964398595141521239538567306073467654140296465783389609022729161207146971033417240777546785861020578112485989039392365230489328227133034719086759148624934566384747268522286264286299987000832513357960145324492513856792015254403798543362800966058744857453213908165024390818713873709903459079339904076447479899169493779409113367301501002476275371731768871939846626741734142138791121435694450463673661208488711007675760112622087104953536929012080362334402971541060677312391418420584903757359155685535172291660235072472132352322489578308990805990219970460013378874737966754692866615618871411470070431878043447029162240534726002054509717620982368580930860558309981564989536923979060767884594508071606165572106655394169440969465182552567292580446969807475698717149415395519513954500820122328476916682248350648194174312432392413154300124997786370225475905072747773563601614848016039681893453993337649925359946542991873311542756486911344174600371013466593042583814949150038123113087475581922057178042206269365752155130041540301750710266402094502264278203933326991404644921746925510711968768117306886127472192063684463528313575788726266062788605187407152747833227165373945488308249766555296522574975595463979159993509767701918380819023889749318194329210316261151471841090982266038336106112098095653203087206590553108553745062095395278259753140713015878526791627739263697872444150158720220757640179387653878889222636352361151069789146191447559723733880825117769928917812000960883616925272155424493258340738286006741625177885374765337389659445363179392645080242373853427639686254941160432560724599922376219323362408761132387097798154727057604571673502366532785689467113801090776877646761010409480856540780074957979529908268690781171805443833373128707331938108820433985519562689521846113126139102294847634956925301533847736674531005525485812584638817609327566184770572254529383877985263268517619965024268373136725541309734416219269704469402663220179468889283191994501764325057798264804204777232292755331094332835138609603590093646288764799594119433342428149831479297422156891031266628313874625364666682418240542012573556163684876725912493863723949260953568472894023660312489531327030629381395050525526890922532859867367826635207043776388156129898546511698443866015565426203033686651875233926054104110089720083274094349982885291284466293043223170394773648280255457920491325589655063711111394063412048091917456029052113668241883101692402029826327565272602368582196611054534137898165339173936522869435969038439618513340278772650487652254905111186905024987082197565081220227600840062945444311565027913812956645969606867731961005165390908303042983294492215956574832081664478906584073866634311110358067059569354908615561940838333752879903395931290655364682401665396708910768026511427205969720140061835122524198828044217266504671903179987301008553808326628979298242736995647927036803773317074458620609949389635430537592087029544835853895226384485722373302573307161603790506687285386919583746772031390919628633498808829473028530543787383286675659592318526300627519062400204263853031645805324833379130356262864116178474861566550767505915886531010815928052942318256784953090252655540192210073522795679948529861983024448217606531442219315633833982834037960349084496504423526470517910880488292927666472732119741861585052859466241814933646699339271245114929535127346179784469860788881846676122207131573567388089278290630589044794782471169205294064930764990078962088714965882737175078757703738866835521049368422184706448183588931090199867565717051424092894531450121024485213192578221895952564247044775266142466340250590189358698660689449866430234906066616930927072590252342855819155872361233264683884475789950456683388786504329683747877242236201037323693901588693893109097212780781898777073300912393373431283870970260247876632673339605810416692522058898229556306275947511133090205051198325929491402839043488762648710162802808937330251080559098803721265867175258386360047686953438545928637709647692036887692071135837124205361896372009705479769043899516625285708854073295958813601193682338372269188070623904122504745435029020395850321472267254607003513587186666245981901019771110582502371861597023208975890033246495820012715465546710408010798829395596577155571040181814234490089746419069630306398068862144864940112271644467323820215563469262971530327183328839846537350283110479428080965564781068795688369244956915755009900431046994494463097535805825398753267061823130014106118241535680406973167627541680433773467497967720831053195388214564169630507837067757717552085478037309929761881453735399949341651730475283080333594174107835366931292960756665578568430037667554496524625026761097625472614825362977030298640813281595110838205118858094365444535985978889159387337246307978567130943393721870419854426683902517605607941547868005558635110032542681004372807057880336362138711662903849483292025011260208766736501252450678011687732677805305997338890608467050220373309218304897575202309589865489697113483754413791023616531200264444290036165620846298537784685543405949041434306087965187320740762434780039465830722769414106345374204093013677940570292516931806777180339410528804362033594637884274780044237271296670565061062735062039555369604094097066996340050874716451227787053212178090238017833113097302563763054532291555752069515719176626541287743879715353276486988349434963046558542394719862611612832619460397518193574076585852328110688279546586585822008212952177179488119365196426757092928635573545201422370683225526669331406487511974566428533154176954036098827374505509222009187422886796075657198483936214894292482758286466016726812656104908933671218317306166571556332421471616627662793059576813948427412586124396610541820536874947628307961666979265285128377258662318194122386588496506522502837632769447923694687018625208203905916601289858417862519796113353004822484000766747557499711940750309871387122218548757146560858944527237930171238346403721946490057540876126265578825997494505545883249778093092173795072050593168144924158569868659931714442262099974200132076957045013419320932778629305104200269101267506172447087617505414094644811641149683511769186385694937182435392293190197727998292409490822480907887382108661389528093849838610138851115511922385976479308600782928398239497603859796658805248251238142189617840542032723333978723573493550483328343054224684849368176411229892640780547130208524736345348905761908238580219873279315951818201278940495733055299947922954236109486403035342611068793835673486508276988794474739129632027572799653280360869889027607035526285133600079316377742278400126117265406006665341771769797522994609089916967264630158378539231144318885465966592252321272401071649951937085168064451164697699523319372583582199801343899963121249260593257734803469046328097412534538417934553941931488225106581163936184461601254547060689224738634576027137844235574119977695723753979277040106335377094474148616010694110098376405140603409981076729336075037932399743258876165247878999432535156687465348665249806642619435128688722564576181386025669640037417025073421911521866823651076573595456236412869614026654849558076634743777213365916482040652745282722766992446481789750026544398040031722064784075293126743016539757757064559726752914097331999354976247606396969891544380780081270971520017390171504101414904942211279265682245893117400322656235078581658484823664073839599028390202583603681747488642689485039885831169457583597831321709673526851775510698421554421230273284287913541323142497401076337104290653516749553326086508230347686555560983709094083412529426637637068756391401282332952956491889329086591492326475972445453708482520661062995550431917238179772868301203841110505425615717743681099662167313071732695362801707124253892656085938226814657630817942908186674913177460504810301458523155161607092616775122308199397568255118737360673344633143389527417522336374992546823560729357071378456301322126899490723892860919666150035362260155953919923953173964868608503643934848643892258101251413759789775670472461518106209700296657730366379130241631689316864429756224129377810921397859924147129960051681035977155178292432406369313612541815437857963657759419728355257754258298534080801204525359854310102967261614952678071934458912417344982985226619916223417004183166363982556208448855488516079196693213423981886845340005551637795721653903830291478608228421989130689413802914672064107697741554169034936915284914271018399342662180290639077874193938298720106657121596176265984965795943786750412691877450731128470436244400914949625773308353663609697471889383858485910005274846139765056094031835194901231546012883180257458434513106042410252318220436767328712178312009164471106706831242828878519239737656408317659597384049830800944718883557355593768773619513797476456023939806361555385990882195394318913824850181149459345817791995055040996475870425256497819346905202320288344044240131197802275367355498381255368768276218891374928676877560342506663852714530264292865144045725386302017087434731611354815719305853364534202099505864377517213653925608519145659187954949315745527728817554987571181872934825227868232830758651708376128676099772125185011100099810468307623990054615191933568826933381965953658727170797337146114217887987932686948921171064234850151754422754095163274188902249987601708158452478047818615932046548455853600440406755226929196697086520082350668453551689609327998905421036537868100065184340897952656470890364868406943377218915821087154281069426244373472122099109202045799262039139349763660408128394780808116849317590549216425608380062663668166449324117803495464306768773013203063538423444513698046837304434366634277405890140683167772806227815236269971153359827062680162878259991682211737843665985290712616965354154059222756933275055968960808014487646772489843640027289424560360244227936969699875777794323912391570398908771483718375651096384721501990731019448227193375024801113111853316171969042271691261947226865839726227340470814754655998577052943209574910092683242908985407679160090311109410241989596383064009154362176566840564773382396910099488130827104826541118277572185445375395786936214677307216765067602776653746518230136902624091049250403011743559205965522303641595150646317309245601638082614514317901260418811861009886820443846692421096405460074818832308447649326006426793446673586756393572922057522573006157050624825808135910001525009559797068959673930045868161062860384425629995916881677359298717387525773067490941477327648543974928457527294210464134846332490828803017354519583821195768042261656732097494104358329315020912426383681962583713058862978738618511578268782312591336243644503166845114675048159961584491326618972968390154117838841513091259625151259429123157830688771795753417674427865195449590104772907522514751338835205553692671649242035214379684527396157435035824859021941015455492594130444725098903588176431856866930393553734795673702206928463236613907077932887691028597148858725505978641098322024132918799039082054421578209751879076418218795230590794311246822160776433936488540091525306291961859657819398605483725996786110367374631515636630827473445588158428750449431750857940163427482071620564749729237691313632804382581714332410468333086683495415442367599624823740684178918620937309568803171000749954146040616766487560588985229273748444641173471443156428386455149631022258761872662909229798997783106079034896366281840551672233666666847283121175543365087324243236075549000464426554477832867970538326123678209573136177843644690532994041423829281674725509416730926868219830385108798580465391071403983072250462066571958213902822405293854321142320418919804210567248445768677064319932377007164352298545507512075027098580568084371155604618107614153295420871344211215973094345439308170976290822093752989831303784243080244206294615160591335412493845844856289757494399071466381755603933340212251342259096666790386593824200360179815943937176683974201360752464357179894218319989849979716140724157606472634840545440709421010225744657225354747757865980985958160950407028092389091596640252624714471654924445440761756708312679169089224549595688210057941916715316379430585241082509117947288428613655167409587795359826069896805993752127001001032536386900505729508822215695546498982239885817527156272713603137343042731926881485951868318767823311156277289609433171953586082089412882101539794940750095197579572628260366835529444490245510369712083992413109546112222263915476090774826401908183086972152533678923054762830646245737692871736479688903091816639544626919419629886690382608274848602152829301161193862029882332256846428130307683169381094095895425311108501385797137952444141445039951710114768907640453938698414815938235156812609864540641969691667015869005637066925734144357880629760469183356556846211957305444391939733900242028747617104792515352397598522419735699259369444237932092984014117460293801434416700827558600090319844789772846828113030475641160915978331316222243217761018030981892159787910034295737442442917825862171026454996922692224901117620313431671381493885219047258513310139996317191730347808422119918432117100952454449326909815119515081546427433001101444989319432462916596737181665772482351372383778915706629199259844117012193116242039527512176755084112826062363101219168566873719767621685715627098995627078343772708601221895295521337880128247523127946875174974639407042445226210292126190580892996114469704785228022971154290026579866433381496930470961026708844192040517777727040155215111890362922955449513988991967157758504996130090588737054498194496919137497478663993946159940400542150367901667600578470241008537577827325174610248956753850881392376322345509686309578196341157410675396774128052361183676816627707178271725403971683622170109096232487066796506997366801966032928923379732836136155411547651616914821538779234625416293405954300773631808211019211897789584508020625582489495849861698845366934226246353077928508103765408935395064056690240841085687713502918650515382396614574472681630414600803433864174206392965872660526049456238748983010028707077645336968028931398159802068306217469187110771159278463534889567013316808374736401684432996642723854421074043290843037882403568304617654719695236268179730103865715106210426062142512840550196998063469765354812266712846675235947220445379719772590623456290096518745312336952373656903438260773118487902169622280694106036742960240563739776804822926221285498019900855960560360749083132348259235380620645952302098654028705928024200910792537380396468591787215754511045197294781702406728413259149728676821839588208116501691083385972724144800426564812748246605171976737687681377530645184466241105213403391915568410055711828182609070320932509108713846408905632264692337662014662331950317887856095250797276468889874220030425862141767035427282021153218682853572703938915552906519548996427537923312479293629990648420091958323422329544297001100773068279127146989261157777142240954513398692549171961411032500499576324005351735190730464176413221142438344179177798903462248856266704403760564962454320182180256010709159217805965867691418290759314142518626580156698556686107580124351213808984702643817153354619072890881794736417962873484114584412590846279856591952552880008275796351933439644812841674979742026467929517449226647855068712318700364559151886820802496478616251732597041048520734632548953770225365418484367122005977044083696839336391206041158185702579432458757397405378316933153663284561603044104532162150552259292794788727424273245096061079280950460222983729130906761976730148142198639996748347558421913205830033153066256969984621839522665772443157677496109887965238500640876042232816486009018263190531122224899752637699762708036345702326523105758151550364310511133985731932291072777561077929893798473571993869594802095148418531642729482859479266693965255174504125451514803624812585036683996297734418249120650451230576498614902902018837944509157745887830773955949801940748176798396696738344571206998674707696637171306674638007963449957792892554298662478829780370136006286619760490125620661062941246694089935527366400155653558403402882058126989260899224843802267615533589983918231565373562366059524129704873162469542192642920627273322342906730096421313418194895300578921506592536285254847341740851427632519821443237608889854430788787735944946310571589575974493190445709296350038210234375848977751678561535957364573782208667276743078274491344009935884203413021293193253622797748601436592677437843082503099345939583842401389998236221969173771386658473358799919788809484034708306859086322690497635403807901696526393992497268679244489199448617760566253323933556984958123048936639738714013047505162088542674542371200144979883869311914661583800033394572970177189783585930342899531958038138273353485768493604123909770643510897847099179583774518815452316604799014323728673112967857346414422267021973472787046900928974258070389639185166954924507801246688132323992631897234518003537611435198629380598841289730273521035075928587797988582452037965598787571881843355018175497094810105006024244397605889046205600877543263997020680493283849840983078607017295963951294126850603046063514709698599680878268359756849415256580643101371453318184304862023827664507367191679119032192814360761285519577835269572228528256407897892412630512955649923943807855456690432874655872440719192639463301726027824104254305773505125222646725807072584347095116369132509046040035724595439554514193358700945817131709188690495095033321988338276185427346229457239091745410857581193952295268199211839853974732010014678900460338418682481274293929412164395226928614703526164290483664763885097602422781224023217292264609740439673525490064168005527465841418899351399057246881500065452778389773507956825212287737362559444559673549607070417567236669898715627406909464307497893365636481942698989341884403538105108108866698262616295321917206175933245516362006688233140930193708513680169128705953934932032368375716841051306644305406536681713650494387997443587880541592786346560524854931789450464502253121627827357145403878146039110973340491780578395304760526848973248617631155925219726326998974544867103889171985646166104368413179435632352177205958689130038023333268098559641822718156630622517887331219089302693251627334919854866516886697359087248701915062239445942009214436394394511649155552528253906384587705855556928884556270917239845525224791627605875333983786584559100572539451042539120606974140525951214546104422789204381301428772785504745449966580073568443905633897651319436876757368363211835344067940933814293044127705548564197661559354855527338012573809305159999117187759999774107211914075474131466867560651324409685297549781658739738154447217812853891047520677258415829730751817075072890928814956675421423316909860626052726160248372824985516807448809437596386058259605771598395358763223852676822724690471764032394475779003995872366249790276437693742498792912382407392099858646499878043310752435675705952159892491080073181024482473042359282503194428809997510400075439724437863573049407969657075977319392263415121701423500434549336720262408781439065893906790451236434072281867701283186957955785668539102937331592738413032311248085707390197800704061284741908063097342476562238973496075420419725985732127597096764043376150308248055158111106129805804189845913315852589813319086370710005480137949890910986348066961886472466920484651322419116527172588289256697336643914512407853774226705755051978400100649671888537467744384743030153735179796034636014470853500948004133389758969237201095407766425126824280682860972058489557064737550513563650469123258293643576146681515621359447370184478076419304463328413739733545605094023922404697180741913760537027741643229458777820210832466956569264817449807753753417954744121868078668213421980558772030166117677236545464441431475443133190094213313519908529575944619670268240409444459095818077375678798025183522641588712805240022442190642818956427242140048380052526532387498711287743547465732496422320757944848552379903848425707519264623758837830634347110501338974909567317273325097193343173802060939420151740944105282574215105443426873581859715493502776095109560992617948767529981579435627273812513082005240403754939254618972022563090628240063905110166448815286951585888467228230273107259753165805794209700629129485418429815811107582616932965958795608465879052115175591975251732033952782804143793776364711802218524084162644237135389536322255319626719410776423673907847842578198679738757540825556566974310290776617149581533766187121458944558358502855159808581562947447558827663887950050634993077263396048501066920976176203311547285441133859198488459541123360732422459235323939355289179535399843089279758105520760647754204705955240154038904068903897748921498846126115722136742785433314914468379351514566977556575588980279412209049349365035957556830689507053777216936710512568464707086180075877153913574075371615310255205041964972074081853994205165260958807461528627185561242617190180604589251209258985197911049836360380969507464400995232712036563846037237310317263531007263291555731899441929255370404716741166672042194402944754632203319662848183335687477799991671414603285154195999609369909193032815355083683216213992410498099741799925365768601561505051184376441555613290795604246213018949131372252455935029128378963197954516520076038452616739309854495712726622838166987359057155098389328638328591971288879620480165263718864615487195769663799543139781754397397322429568725532276692497266492228747446985532210065217339112646427674404060788127962688882114830893844898034081277808763894756616470982272316006143656583936884408935993479452690054315193212635694190966771785162900807561608885631439586786459781853668154018899761201567063244211585888257183143640477091759346773892593873883721273456029159560944806521300170472400287332828885641609616552810134193225459937594434815478475726665503072133038163337156798819218840875299756940387556681383146602038722668967871764686564400492391224756837199202242862530270865617227708548223937520020962090806017700296849743914035618039181460127733347020141039104069320450847710382587989922317231641862618663099259783520333517280180632567646399948150456217449431829278700397527235924741686760552177724358231662895345070383549606601397447410585792118821924234893315455310829944268506367158528215635608213180267163685029368647081873828186142924291343570655806154145279119314450842576004312451618990909731696258110502937693758459217166424425752170986781668739280657467501623360424421980155276285794427223792108828139152595738350762950111575063935113898991283549787729096238747517625555843509843569817379924125608456009596184187604295409932031078836358002291796385952782814169920794606678962654137993513443868878900490618724835348643303896827894848867063357924151256728640458125937676057157865995693332335589100638395035833295894538837350501045069633159081344069973115692554822762935941835469201954847107701235264239374585651143705320110988280472330409827213810328234275114804678534827496158711120241425466445963253255532232793158816457724028761272962601835698715142797860533342553764943041371294166677802411008316971124095594921350348707652454100772718999384802138744598258496708533644130523417448270600149213363642784727362372030735191666154944357980602733697285712883313385849303033763823983052307741462748136846851274614968160047917919516129250089064918523380517949546998294376824024406237172663891620303501778657454499998075282955417968881061511948518733813065775782716108572715979501651534917711680609750936356461541807729219433260732414276597279219770776264552611025506174706788109238766359193859776976517975420912234967930484715942039480586343202018175878153415668018660125093952309867244379048780104485404958063959723953519670691557725137140243287423116005133266212847452144218656595445733892066517957755750526209897389723315914444235664138654681945241005207047240162785272585149873262519852340713894790075212014240533843691549297746619840391405244256573613592585950192354999617847557896671891882230103347765595379333090378736809902052363090880289032622296809399799895478223980019990579387817706153825931781267346170905465758788032224938807102698858145538014155654768321376760189252954384662357711313354717558375343602990526797264611903470507055403021057235022863655408337870015385921362605904486529375295790759048003869749717884460148989707488252961331165056365292077626573008986733171313103426499630912271037155053019575397315739932331268571456672937293387015207385471036359734287796982568979742752886507746229025490482609820756298550606714779662715617668920479294726179196134677974938766427644134764278334483022850575612363531009333093275947539150295116206306771964561243560224830137629831682700121806004468046102864060034604719240366394070262263103195889217318432121830796790406130100831124552658078833641492389688477661831768276757950930452082526669291882209310156761714359663113968264773933403890281793873437378315849613160427563207194856547759286558423223714178862245783392456294384912600497988243379102683623708397009205220630193881698870117213701493857681180072588882009181860560971786321542346480548514910542772305232052532385449144699649834478305220447065956865979220823250273809307786664072315086724583120964614026281696793420778535773466710948985904256489814971192804534872765334675019302365229171169102827794572794314248992719102540880210579293925645956008380285836006962129604009380896489819941346221208000318051999320294781313388334845003860891464567188438771804451151084085583141660650781961113389280812388758083995672392869076759353978820740879678021884214770147119490165556719591044298072986667027139010715585686640659521352676968533956389913221265986747806870003134398880939058024285068799098709178841409939004244260472330873610601219281215352418695295907559259272056661025912165901433085008484911753344766193778851782432182065105780544988170186302071387089031527202025641711332950990766063120773380527713724788073168226400072884285070501502297961285915753088840375142940340134049805577586130941936772945553716706522250114008730776144956577545536716223920148309091095866911304793313376775001348009824670876751336139876913995309817981997771020854186294457732700052704795965929149644563522967063643196198013384760823541770547039871687213015599322875365516341817909730470935240216582455544120744259518673480988462690448504123498908959251154763844493196042860818696032775349779329253593692089610394127169968040143461342942075236646483003956044468078486707546145954247567056250565784408882771461417518044169565465155506734106966730856605000997213483407202450338999691736953537810489439568844219139317324473244770118868970304609860069895560369361662560092641261962229767125527487300009267521112461628528128179992403542925946852632544249776857963948307976721506408856852461686893784911296945683832443824223442644301921421239031257664202065351824353416497231731350463187459969349670567206210694417912609033498102809565035405140245680360551394965958573804592969327705034040571037481545192697964097222000561466693014757872506137262344889892373326256003861254332334929120618279687134699149338701978288353593073525705875926211440429780821588574401049860814264272758041622322901309098746583674584479682110060075457116788788718306336205111815355809561885241782710562264993118095593616796827950915733482547345985119589164904080373950490202385239020063366159845757808669033074599748963602552505566693398254236896836265039985527861015239769664699196630332064904604277405522546542371441369005005611516405112153299716322708220490564222128212071750794225343592429167427780236943552888591744758377296135728340199618977751844294610005912897102024215886272760027693129242158994146289644965233454346303485537505869245010148335616544518831507613299806362822925402326258091126142382182055257844337219392093237966377035711108471802817121150429651808013577785263643355700011367210387723232752042409777031020577047008196495199962612263278022300912867445707728686410714091903457666826080633541976532719128757709418707801761974721290440733524379935422050619206697320257662084493486704741760395535658731428307708284767542549114665738735633064836045651049604120478919630421033379372122740983735636260062744440266060530336933763647473025766976317334113115509292123436527791345709911153395846493213072633371045754368869494055069269292675573269706518990993302647067421597368106738018268958482750728825756521351218259371395655493819126794780937982465405716490704899006419720155243482784541926572130597095288207170854206596873604930197182396231913057399841244934436714615149351515483004889984158473187587107495352378310686035811026679960146572348191760347920364203259178087138454173441549234984380646805150854621767621684444260908624469644041932092183368419561026641553205950320628647594194547470656701360015408590639837868982021995018461387987227777950420292436058609970664222530926379662405169583887235899012104698875168211064259242898758691653188107851644137786163488468248798323967273575687988315883538597213612266144843673761720492714195209584100840269855135339308768097411193079463704088080041631812017902519288629882228196553235735845535869893018538769585916263715356272589159303649985174646845164442318173857149146800446820163244597235098009503266958134757976467310647912009825576483706089809469863287896549366639632736307864022669039291163851076889892041855845044030156315206764611378176363040989408914218630739241590868969997075010892202024935807554873720900035286189669188244201601901977742287806905926696602992226326314859282119744269436510230629844951018879982390476642236504136348316864451472561588101609264052062155874499142321383620062823181623943158531600525996853461515022536799698024256030794701999375272612384976880308607051498435178574743404522350707682841641843560648410284815320674528192019640297498731862683112198476038801861641177098861695691498087766312416808570152482574856970652573629173582790104008719527829133258758614920106562565223860007260924806529693965706578208424283118235241828763401604553549214884730870114610701260596039915449124465101054473267773281940945747798726247596093016166089721563861822072193614999554725444845612825564636839254456908255741553959670777614797303272676006397779606507521556439886648000952934403210182430775477714495172188406810091434223213072280433601243456422213919143499307535245309931768216896279251160328441304468064388770898501369632274382866498963713178736779802535478473055784815941515351350705676545951524429655889023452590370362989664263648838164452700469946164636410247399318103485713864740802449294131959413736648695253142383634832873316884008052692657938486516868120693487186295684029556180731216508194971021835896295015500413731787003558448210592785147208142239158706998684322668048018406259446923734015196280967203021884496841762537930996047759391245991098800972837947551061165474047423666484647062797198319600148740352533377762876285771673156907513349582916835545372072183687416575195618925826876587135316577786537438567156359114834172973442945172364943785625569813150860282449859003127297015097250958598477535807780326546594446130184503457008092148538599818556027369346611144492323897527628471389271678209683334506918209079020225878199807091060126889101583071611985027372343249618910514157050557721168108749377922666945149419787391508245909751217105210386467575275735505179929761219654564047362875740990337138770238013146947144382263351527522820000805774998820002151557580250041652077800975164799106285055513125405033649128892229267640370362183722117688956134432293458812760441594458848872503054132567767052476210019157780957169630075911380322902335773363601721067811908842816728929877152271576198417231327337014424221104115281729702228198601356692755132088226519238626198549630852833582345444916643133521116660924499065922594490630817811470289964832338421059808303616445434411628372383499475665849419917596614670807592668669694058705972328763354385769442781568862937026843994556804487680961931917981565932204369219281797624595488849898536743582927245268252850762775308885112027172247332833033747529826933643155018019397919690014784289564442614679395402781251987845092516569766691784862206142089599917186204978253586500859656484521046289866719693362670513929316969533609646377948867846099294856632554054027305714843378231272643472999532494572555996607072277880065621565671733505757680986296922027530956189343373448640364849690116843526625258757979276009901305241903977603786827075128519288879826432913863854501344571400050291368208461754528335440662294424803972627762933477303682200131193605198936076192792440260768179337778652957142406243396971631731651518508018651788903211333145485158227528831444311715588093631348647140296662909469086465209640826752547603867455336993639461316982530182096569242019981550118003526793952750551117883925387423064840583143587994730204335402168116812980154032565109289921614101544977587199753182773114799746094841047226298207150236362931028813984568928868327519235246884138589160357412111285605109583514740325920849886753811624193768475355891359715267033485531023721904988020066247936715704843208537369607700032010098225253855381375384319213540506791877215393754001004080590298736959270325689977104794881179405856479328886059875051111293680934755929084442229961581150459151558124395564494758554597434738699652107290327167692418608494873049414776155222329222038453610626283866255096046792867494496356289306831731151354003653145214589263427998303145791921686132670463172733600022373520586638278824040566054160173029813457435951400474032514298073967520074655876699023965607296029643201522553734592499476957809431533067364803293107427303598283772837257009447744336051298088819549709263765976551276156666754440187061351516306505496407601913624031862379605071536927395867955266899694739043282995548519750004253155732064702847279344979484936115436733827824241478257183210633278419649713480999755394435596582367507116542328839723187692872342662978095444966321311001130779717160392666469359247192133001321650874097865912235809800527092474558459442062595345335691272690493287072595969268079485880032780818377430906181385388697381857594496902509868865840138493264201430929227302639996068961142048342208690503069648955576956931606056829299893910096305315449126521370946286967723933516636055483517730254143758096280131783651955133496739864148091206206919459118467588646088689987277910356906171302812396656489481899645985370945627724200872881207770249561161432553922374301482815707312558897528899531852227959541377458640090430035256673467695640002102236419974895444878612002642190535190557851031764583857441407534819559765752166384963715821907489322620802362050134512979400027122417869853883876508433309794313983661799938255642301255298102521822636959282624742679509447906995827744146014398959989447815296318213425456271034094554330575931514074548542729369537841119196523899339703917035488263495651372976308729162352338009757802224072224680525641748701317702316804879518300833292611415925394709464966019998699490287520517948199401617878288455576842441340846709756899835501580195286340310037168912139741505524740630047320145077724595479280056084125961507804455343852493487945671340598420683926874021015603437534991128826136900030046333317326693445278501255046320417195850777601508742582810885523232680889543198603477117614228366950367738056021339311589888876440246312970828536869829014047296060419958594873960483698709026229358142148024805740722206979068308548298625429843288091813828685065863597535255356150106653279915935212624388776257505819345745474775699097588295146316821699475014657675102918222374057957806864988604701757985494932730185735875954699869101272208714689181936374981303051225179947050910705597138164454124370776345758859900893983969115307048502503303553099921055317239006987166273299658173470597333406864067136549044201981973315016488318321786243734858258386153843845698673145647440129063661982327689489187551287016370058811221817778579537247021253128358061724645039270175266439269360756645590882059143546695890275850740915243494288670667480535285105316178919906957438170846337709345203633673371465547079303404792839209110674680859716773613464579374136063922168363116958401021299205572644257340256442189568052346259633280423400287103398411483397922896100019309780843629951633711162152905403392904215565835681559641379089393756384723339017244381301166866925438793349199050300172604066473990362681138859380922450266326339961876227763641941991180327131127050869896313972761542542024967298771786629252678142852051959953616829690043030198404115476906857549267136913842438782101066116986239574144450123878608911788951749341775332535713791661611198949642356923177898605084697247998292302439318770264846314090240309000288427398984207039072786463281745698094819487698349642174086532684897112802751668308737238937743054269501411959899463879719275756029740215356789719540062864048033516431779132482960113190452508447678892735736979475848061844759903580797337735789356521418909384137754109706523595363437733739554832686027022381136966083390260626206610224286453071591793426347649202907029240030193102971993153813360233849312741604565537111064496641167635097697210466107212830381666121431743458748497870324493061646927383954459021970164045547759227180354121120446078655734756322308265992273900591206527638068568060215473463498539013224501945788683153718529609256158785420178177364659740980463591160573533370713926362151663429632774191139475021298526720512356988040257464836252762603706412877061402519747812785462480892245426352833545593646811918659450525560738574170813755488187092868777875928721870798682021287858641651931886035043702761341896768457078163385058097509330607961567849051375916978651008215051066283425469032669051335356816856054703538769568141126167114699023916585082923445675324806043537603837513700661723514654866232520531833606695175481190302352661042250933768339301000124326404423041429858449877438732805572746645248603736370166986831525039953455504966640185802051271066280045864361114379007382603965422481816399529413002034509090074028654736861536626361944754598250619201221986270658590844477250325996206401745629032596529780437324733578577557359437848508350205005103824786197518164397768883941725264510027510347867130298769274581989046913586123815058386071200496965793277725532464862862674637018855692875511786943869214555165390548834576320799111872215269647641840739923579381217187756673977475110343115758374422590197486899045944871037229063016785256380193085372358362822415345306519069659799825747838444528180620042484788823963089253017514629195794265876416455247306207106502511254634141451758142645088520732598567981355392914448417360894418885571697192472939154610884974788449039262851078939182620490677308074640651535895412122993548715057417208688526779757504590229529602908365460870307883677257704626288430822690236417902764296637773199493578306390263259909896569910773561141950723973486765407156126025940731536142715779231418980853698152657268304914308108991160374661807791066588529664855431457756323301778478382543350110117684328003813769146056116993370919206410916424588740180842851970135378904632167870563275538215063930341431942711551473141953835463143910719889358922917031524872729641651194683484714384448672305005798137802984253318605753225531257450277605778812431030512266850398485387320105784562897160001407567058107089484505583226943720769811254308679586794201732412269186340240927083733969044991905038629467050436879463912043521063803499821362898852991074373034126228710010624802265184519128922034100905490423544935277716195145354848182339823433416241446207503471937889516362409874521728628589391914935206111393968099028244043476868988084819235851637428654178922500989252143476809215931545510169581241907709321472831487439697118461895912857281871163539698469545770959142750571958059666112116089320080144287889844190121583619514612130071448575982034355772789359449181297816236195611392606890194661755339742441215201305732343917564029040822113951970635574196193466280036760772418315779737551650803389416088149528636596643168610625989288337851943216008090773614871547062324488317666947918014146640214393775804048974199599973240022918596383094459252877289604725947838287602938467614985667834537476324434959609931054809125206650620476146475443005178271141476520604720131416365990245222820714707572447741508866258184389736462804267130868337086094805447202464336899688342669364436418388819175450955193165097062382094635472491358490397781823655164137656091750625155343644280432824788981690506747005335366393990995479723619779262943134313171655019377848341129280454386627525094686623835491760838040745440194060260916414783615482131786270894027135921594691441556203344368482427240795456683883697261706672100715406558533541417343573398170713346374566580171895467177710676748572978985067582038338900702248902439311505832069247942267526864728093339759497504088077280379008522480984064058021925030061204064175535161743813740850391622880826671214209251457776695709563906088186688861451836086571494671612360773101917029408569791364646103713368902407058946730984571724019224236923632732677587339144653428291895340218798598704887109566662839993257927773994872072927495052063576950733486367902440032847822918350159269267032562001118238527420264161776264486494359499098770712849715321985719239860314447422713314232626780792773576635105484814482668171192193541843576540979607750162375613066969081053805424355270867375274571387753533164586810258705750577434331432408376061434265444225537564690999380129057921537863159060230479806920967031193469680487351304398086608679530772941368972722888375975673083974970863551645883838846796880123931698163109799107737283213113341398095141372517625489137219703224698794445176349992040513073531689518125638121221567546686911149311068129586734288813367206597384488472581893983360251647751626305125365262022910956430191110230920418086857239361964062048169108857911524576625461437881445033461914127637126047962040885380869210081025754494088713068790226693848315779979004935673951954857017409429526324798976474777194445320301930848531173506557032372339521219700116629476244172831769598302977311167787498443806821293890542213484265493234124848369027974753360784837996576633792858361389858844623193432454884623681575702561739437401845844008299961131639156384372845050927739382748517786475837221661566370520042652200378005483270217740920692350952405163932394800616581079026488386656040565695595225480705455039229304054219966479054278037854026755659783647480243076076791460109186888316011261563679122166879435922740125416427304171288056969829491399845152724043910307007595143476540671020456801141610937122276070719429444120506523921306427617528926212560765457772891842174447142179818103965121135634020421093546085401496824207153456858663464530160694256224223212734961563320636906374561976718133982824461886285593912011499813811262831269011276137305576411755153463582869421988346503517567707647886643673297367831062242023419043455283685964466946868399371500961506458166700830328606668782343827374488139126797343548299109101096119553550853683895927226004620047452741312644605631901179599649826645679962599691207659076654069485511458392065934222024213425081583338000414111967288939593017054961499757974215407290519508278699491482436518226717604114340922332114818907409578294101184031450854880090201525724307871499675238143829871383952553849810031495682581244179316367713850163385274644605102885336713463274501045878195698465092670876367350082097374156576401546834867341827455663316089007565324557478687472677913470665812287077737004310391508380023126059854036258986780614083260491033028537147325631881430021875746052489450933287261193706539434942353687564789398806046546274602298546224175926671119101559775112372554064634784250845401549798548765489578670687664409150853501696975194876908156485465272142203995549749663713225787819886796680556101839289809303640685556064728889079365828370755287056572783984592331705113251558354064429998190662366302060218241914807150325413438158338687044959107510088986128210661403386916686556268012091860404876183367790836406385350212733301017729166221588372155745467604852832711167094309434121893345507339185438830217845854713846715440834098379986529793415722215386674206357682600492740140186045289027501640032561832990511536179238502985483320473833284801108186323695387368136082190239144764431295814995419116197262404309810773020960777395103153037705760006066165291819054102125003535140193614269024321068788518418224852849243565256585378740562231777121480152343742207429407020808306397942049339786837615389988466640418910035890788450803507216785951634525604717973563581381648545777466329401231833261937993026317027517633453656993189938250350667239233054582307046814181233612189833233621990505651214227707866629963250970441350616607475558587709659825774445697311586704297401029067634230756906090440560571265818132103252338501625666733305761903304026579676755427994602753315454440624621707543238674124881816623800518060440405688425771586271582972094355325986736495450155315723165109416328776140110166331529510209143279791137371102782924434041754209956592362955485877851425938274645523801733534294582865958965291462198503968535832898984223934754165675070721099240902044376126921635487146729605626525503139151692117218320003503646251966385187279110952572003768161925061169880852691826160835670993054881270470729454558192913074877916398138699361363273078107159569245845353317615682509054393230392309007295003393037180740577834165433281812514392127207862396477888847705984560216266258087527697919008488968417394461858628586483304783354700263207192708208371422522570918632972798144109894122843399193692831163604185894462478385401206563210963714004913849992993512779463966725599643818186210319690324564650537343158260119054752315081067221225270661283708216485471833491996594133115717032904747137312767838704815244359642574423381647615235287828633245129723015067423593539780095518192005560665932760567693164870716794630314628574904128851494484059999566991070080101258484714409198482995581401035172261941178909074497677778814670667852764861921293376886901393770675916321040947693174108635713627197235107198568627753416093209745836528924766200874846086485675218602540012976569054828153612480135353786634192272669737481215757312752932204314860465500879020643222538108527955560674977420765250655636106661534019122531456472762669343941188433543680384048008744218949637298821870963656870136635707854514417769079301329591737790943774828247497727650315341770484644049237789517999395763979782713528954939447669998163440433785303613733657214733817106789145530787469025457550434391676837742705545863708101947989091222795423237138510444680545296227731045279778401178655621564249112052992678791430303453692308900757197806468073687453770551370802838840643926434673004005268946309972424409218350564996950601045514923742083291673707372070962648659006918576112880654261677195308613562454900471413613639297170601884739695761493416511338353988235747768064080116871215068544003293494245752632269760770749168245071986515943169176645370951593829071640927014037644667875701835062498750387423784626485398228379058890130430580370812580940186986742714831647958156976272364581406967849537981987245669096285358286353098644492454050450840680118121646772579884958888186412523113663252102398942137420407942750132920402839660509278979351942930280036223403596235958048285985868777998050019095944915836977023582509988165571932314987670225585557165831319047575955395931307965204435222159255059122797599706459518410447539116547513983137759989028450557399965558785746121536484590049361551221698081017732351148818140632559363219637258623391691565896193703977405267750806957658208813469717190255177760186770560731731681958791117915427774755605194549438186037639699753482198982675988824463791186832365720427458986332798561267739527556807760677211768051310920346902640248977781331072090290272391783703290981136888818921726482543790085692292912406093635198818293363433992607467517144994188837547667218924869178191907785193331407545723299788395903696364177315611714503051583861542944889967508772871704784855966534181614766504611543736610436250272911565676537296551693894777290674039982420395930458411902447174514564825932748643684996053103717719274231711662706856786171642800601262461458668535988636583810972843568646279853387377223826100519708862901627585301870012745282649011168521110468769105427180797993361675281675803764931973198635502587143180836369876797501230497815345975488820303368090937334260454243442986268621537045179252568543222030848299836543347715945813687062763912555572204572197942396817849865679139962060717187831618531204489066743317686178502852979951587176836787531440497870920288541112869439350158703158966235155663718318460383497796896410453188079833699057951197105972657108074820019842008516444960381578288619971876930632084831568512514827365928294832091219509168010702628882969976761637258613838556913324917412267625734159041279237886064618939427133878606627798622490021856786983001130301685690599662482269159726805927347203281409079146501916400623194144278076240852952394183539682839539346720938097433403612538615805854581921683505193371653260766038614171017650665772850335712908371551558908372664917905912328022889468522552442371408809015770533019255655648720777818582831102434248581505195459968777296181068468904988838906792778060095865141367725305767591583267716750841677587933517958226530966398831243317280589152059190949371558710960595929358536414589196492479052871914095867089381396551235992625289976759251683169183178699910892480782572812393242419076236761302978179314339153243526321698655643520064955164006495564131650465774765496628329748157823693796589351940038539103630442997981452647524976347199179665463856911066775055407702741953392448508330624216093548768066110922023659395599886144826220027132586622772568755666741808651639160951419758477267091473597841383795282969640179370589636807183031798738776426767582599789993100714763668165886369365453654877900318101127668327587424694535186332907272768570295667194635780899353292211165206735653312250602942002943237785377214753452103037306208636778283347680889879165637341953815502502917736988790565791277310527052307111892603265048793680827184412700697024184687146089745743983922658384127848927969450474462076760406664683153075252502127883762349512597593680307211347875916222954245589984457275623844453006089351506247861271490791246197092657178883214319386469873239227758345698402550125289696803673891081638597861931629305784836181654400300717565589985440502908386561667489691630665386136207942864637556383819741567491684553676329084529455392545884759030450325468841931826791190239707441010036475735614259978544940196539137619251570268472506309263123324132113691201280471347868277235148031397781899531437279974301703603380614903565502584289250006678283368819782269505530618214488966801270250483781384960995539671639594753823550681083569956515863988797701077373386080295955460503531511551597336377296172314308398398837349926295817138837603301030528131744433315868969851870888304240869293335320721611444225737868629440146505208840749524244832912409798478513779128888366879065029220649673874169936020984448064028133975592561238015140846068467238160490004163721589517552950154908563157678599010539093130293987896275341187032597580086533355837960874201073039834186270063123370942677442891181555979373054019334633035296221019444324147826585846357538205785569148630731124426630493856971244325710414448425452674777910102767066998542944224989521594932170442712453223092421964821343488160544925348515556180390992389541846407826164228716290586292232368923765105934696026310810149483108911491523958584131201152896949163094064927983748709545210475126087322616439395884407885957206253268094327899706593140357617188278432390345963477684910247933770547868327635728777997342014973914067636344260171349068521460837233566582103036690332513250802377390062069253878730598095563007834698020438351782486685356866666423478699691603594103577895421169433069033406647538657254687692905743857202995829290861345402194062078503603597752425510496879042930688051321227685816620326805478368748555644733374868758502902000510220057581207144867219575266506795264099082864625652396760533136870771723116957753444362070825597218918647884092036507571477488301933858168035422024663377645392187423151252823832541128603221749688925390353382778491615389439809872208365556781605242978778788241229100083387788998929093405489966119292009739032669717859330461084983826987595766835241476475560290360937683730475550342183019569408753205443220765425706142442563827566929816841826259092562553496561835667528981888961219207514348094208275494423811625115132761744165578775458907340157499600746448292586734692758634155687323864598207699798423719951514272638240476585768949751884639979681076143001798497887220345746810631885266471201386233513892073393524154936323844621610407522426493824274166318593144026452907276151599536003458803391531013904254635897563937507925090709117547222503280193057351557791660976783211382129243226049270540960526939418773980150708827272845867931297797219617054532738646367158286477141777175706067843580123601427794884663212593116125630285853347327536218679308760462149392436479162529480477229352055664728986949517236965160573269075868645997997304728048632894472932569220571880957955236237630330973833146385634310569097455074420509624208855341783009158230072538232205508422918677707159399983304058184792567514334851727824969237050065683875398939454342988962483419548279899058178377942903695213860059621112712218576779299990396592497874876114959317863459882745650580036659070538581802358901431968626002656483028509422698380571858039821904316118630499564113334887731992434138233530333907580181137262001690019910218916860544213908172496184468612117804415095063587111002771324976586762766667357119991470218313669339329493228220017087453076151069146153052835836551400917703444975583801350934432419119815632182593895063559120723495079605744024837738013902789745682738826937081412720108515791465536382527565641498409537911900525120404363321963996624631880398417311423981986780630972482600809736488324922989347057372730685328111810041079200461341684988203149701869722035730488373213414561984938237064056734229166480169447607204329370066837219169266071474430026737128083408564383306721147235496940723410819906985934532684020201294765525181558508039193075939914465798759454127290845347967360428552423007863711664540883341982477445398432036004577147419112590919501492358507820555631256657132973700888902931266371900319369291517701109840282676372573337998014726828539140083925486441734489031677949851021962092782981110833575777338074619275691052087534493594583441085539426773555047527181566917660534781008989549286529566890807340383509662581805411258246574942279474138019518419343596776164427832947017575888738907769438704381077973704626098709955209516915189266044959215279916323685736876651280290018821304322734132875282906125518675560171356157542282259449742630486396758083241731750229790804039352381045369774886403350392925294427075081334194190334130819781857123034174175439928605829560573736230614667495108474216640631458001114964276673351063959397173142915945158735380543760490696537134077219702522285905597829721883472004401024062691823269940904364790072562227568151132639234872470976204414562948424822780134229417883258876259203753476623734358575976156992486738785521081632625211194011721341282516322244940428489262218027907656757914161111748482850892513902714805203005728672695122901420620922451840866826943214819019376427768086707874270010918832147303090196727533639570978733657459524426228421975322078154235702035061983115470678722145358383144990318491989956254029209343898546505894731608386102933407190183017265592841636642867808484872272786104744764470746304719676916310180276158440753783119620204858065494583238143071525950934581672914383138692685422879159232824701694332117987708462251976023280059483014402093108391149482585175619604873446829356775635927319148704175887591700282055296702479718843756371268701603716459411714074771419646867030178643941625610981605850651187517746202381686526783487158659888457665910093203890929739377407441427139898395874496223476576085402349579192265851075196924157917272173739967485658131535328219515747655064899678906012691086081698675571769455964291233218687669955286321057594677982532631560773424288384046368515832435672686898597740937823542583721751602891158581112057395000385039899497538874030261174149084829594701870105377467048419247220986787605632879064259081239486107801245088353160898544921553962736410944743391786398999571315183113449950905575385398369503288211509057036278474774221570553551278679585292590628461985731432831713405126574438333630078866293300843158798983610679349235610166359398646132187505802840510021491253282064950446130244299819054534789591511841330240625265408118392883977267417301302474989805732515051294177800513029137872069240662641591994840789871916810625065322834986190383350675253221504206257641871633940440141745262004061557307409237162385773760877736603029787230088873578686232109124703811810877609141078431492735837656225948544407537425979844599335102798742653570719768298986521570884371017262330929060286490485173238621603875697120341084348424000660257517019993415485097032849828513814852242162900790476349903750600872789377019233970819317844467567194171463482199219311680998272511962919756936436686643424126788327532646672829370690943258054985137608665755818047835936042670671393465489330744849844783492565514153238592950768593885571639935807780952809723089314012827524079925905038876063104567398693745703112047522445844415696551401603336764224378024118414178192334082264963011762671546064415723786662275386734976410179452807014611947922366864390872574750971243694339801129348562360518719196304740834916918926912293612872064533478517907848555667281336539195630581109764139162545647454852341832860369861845606475919640192385376317958606028296480299182639529081598689942326602410629575302169523760988059296135162255578479839452104977347205429862624473724860478072400633626147717246351370834017417747514839835925236838047255358797751128863897212315452018471219216753728503890688744543737749060651855877588398282121906416617745909879008218213961327605936509562445903580801734133164316231177867893302338517465202536685937210829075479184326038831510982502532949276007048874045750389412668761463319996671541513988019448957528769186021685688309934339811346901096640991799561830792793445579465615325371551059753672389667210159050369869078864956422750774036916659757086246706352997986962646182082648340288785791096216985485303302067870869356594541985975309407625813030123712195260821606590996037732220981948848232480314534513706975133112633592934583165253336430897060171804000007683019204018835108557049931598438946731973927845990767327146370722176632620869787264768391920701479127340071764116215809455252561033335541079054614208444010980425594311474304150245843446873458937399437079367524269994127952960097101906876250628097811835736047086776392763753473678295984798455424447307732038051950361476917058562949339781009897768491723004375128246409043272026182066220350460118688457235861900851790827436755230755318464786539384270786427140867394049895228511762215690744190499229114985913781265616017436847718344609101812615799458268391643779025991617247885062307123346492075927449641266374504533025223566498906004529067771346158610176431729053168849702368509115729740364093117048731397359451034103518351569562097846098431412985304867009147026789832140600735419336385632370632942618279241375312821658015377671226479026356198580954752169050535529780359739470894159749622171474782051404685243977088728092944446531813801919881462201017037630680399481278789224502287484898688639777517060840723501013546390438549519435325941924202305745236412996932270470797676549772054907849308777680969577963296741719080332215672942573630837485274884070437789499990896524849955852759029878831688751940783142133720967027880745045113546210317265144776286997536286623806273352252732792344139647531187188279649265147279138939762013567893853368316032929296420972241001402232797987707736782983049660408713027325377246018445946967364309861406290008641871752646674255574560553735724920129189483689407609805934628680506294880238151797568373283462821077893388139220415000320154877772382256101609193537165354794804204816294600356437506845768109024314200061550176720889024340343639405519146080413754667748016170618615564198299849752308002860447651356515644767963448898488451454656509140065815354465510231606064284824264125639266295893938958464061620804605833724970572790402942268741767559813188174313669071944501606482399723608634471033326194487264077542685529852726793242547580959850192176220883754341170952094673607672473219540938240720047783911758627646261978512960706919293853457478207430194131863689419164086343092459520309285589598724460525360828225891152044693098650283293410536683716214993363510749935550703682773415333711211865360998456293190993848468648147633466640284138002897843619310787860964801378236078324326895051100983162681115716591906655647135213984787516253968090280349096391114179781868015082511033761506674627617055052504166223458095869978929050157084725599124806222424218682046793329473149553716326800784975997850037879376429110245493646665447253778924109946423749582011108249773503977815833673136464231184586646347485981597845880489299944603344978576615088212543636341420159341653477659916138505812612745131451420137599052563723040550247733207599347271196227595027132197544966985253822819928661875907659245148520932204385926857935037542827510748225162349113234589956812841469482996205257939400844259259891518831650281109037062009991460882998818018523003454762506555609847970556725835979872291664507007580818487091669885072203838712931461433760957841870085147974489093383302701758072482555809256251645396400261186491629255716768327961323798524831352218577691138319938488219794354958011515831738681417116347567430022226115162142142588375889433352312522378487192980004463024904121130055932268659740664925272337318601497630372721314156697928638632046798016380205478559675582947892852662965481614092462822350481578363564238393241681710075187497491927935861467590745482256839335507807244661569516033634143906310315551161220995468774904724709899378254356927354971492919041114613012656183421344538792379481493012843498651854089845588369134094707543880655776443229167081813237971951100482709884878895040105704085276944344802507308889599782783766640460795092991278519816635790564804839587944599710545103216725166192074019219838031075153132670095363741495688201454746848930572645365958719343353423328499227237886038167014210463585473981364774232718260197972987287064887739219665483245237055482128768986180438538804127334932828192827842341479158626605528279718417388139734556069902612448569422521637412698089514735429417484853976985542659107885642030038067473316539002540619330597532658694119459348109149891097852384288850393650454977722088209441596435101228572940470528805653098622916078539550410074011033696722047864765714497102577123987679221722963492446936245690053224845398626619203752487312066551214957475657544309028446991853153893747075295803234087613457860846409474537821619384688280504081670392029092121566615703671604076478609132284252151436077675009008806347477838058657911912708102537228896381904140598173278858445385302957173000812761396857630445721181163420932162529818766140054655248163964704709415282714742955414527989778557298772992388783177413532340506511481479216360708108497274323828922086481717723889794186257699007725948769290958916870958815165284944191692396461691213906446100722176460130369391103027136884448435047955920700661209031085987630710671757995824241804307120506215232082410307996643734347213772293640677273212337838471948599664121179692509006306397630680932476154778749140362917119259171790222458914232140261184541522789845021789366023655248150655321165332829426772740162334695647676887979089767802209371525199452195453150412148291074654465950981107095404395522885537474359692020343657921428137898482362624358385027638544300372304144607502126899163871502170333813936969783317824081126869202016945462644871458920260522222155115581405469901460853782938483645973795212213596632016966919684483493102589339423589922854365723033552443794802475528115060712038694094422569517346274509105196701728595291416340437273425092259699144546196964419904993317173918699778768214263721988278860897502220261987593764131672468341355604359424626791673685584893431876127753942903775217271768045844959747022047482649153128805481086952959774160533114125871557147272016689509279722907905487630076902726294465610314598944517215455587714184726587140695251533659397694420567696218800577188331583292893599734376982375271127628086386189760563029788396718877932665652378167160777921879449847533166395473157457276571411312568288488361219189252025366230622853781105044263370488420663707474976385725571592097733579998825243450335436161562000309186894872433201205006712090194346892704061435959003550303129019833372596568595601212575575123749490806378160083666564896001738465693221976780347356712387693792520387691340971084483453295973517504025867846987620373404683827198580749708520156736135951368823313437809822169257413057771690978440397062056124011662202785799305843756731058239500943933980574198229131538275477090655960754763333473701841655756933523452748297808207819159953195242367806510608195293502056353553716452194929878790312996428393913526972178510358731656358897626432653580221175163673256874992570024265490753879574719943493358844051286757493619907851847632600817314529270029800637671904855794593386071568591911086293653060194192624117510109600308914728137597228919788320357324598861273787494377167413536568811701469070517198732902632297510990016781842585806132444238292431189074708304822526989967132590465317462073860891273330352433952848702811910064306446112104285978734739796662540669017337821734186458431220188777143662334880742150889419752158052364471115601346163605278151974653397720854211606713474561312796016968110621775552852799250470874531874052491200062279168246073747076779207307820089242214277297176359392682411317206149212696366689253118240596470278008972248774325137079008092371381984640881930155425372919671415452671701341307168250179443389397612790102344166886680299703508276714257314810082524209304450638592700196810655832492648659501570367985126824705243754698101171183883128658212816472435767405634503504676736077138529248890573455729161356641024718090786352235774455199035107017625202595786058537995357419591439050077308408460923843518870785817314216923197266648414218001966849461361000411233276598658944190855852901800667919011761064812827648323986798853155872839319805700629434703250007625146364867049733966102768155188879264021035169515274094540769578089917103543827075541946053867015972951151599085866956733893330770577898347552951691659999019951590639387786619206375584597503252789812744836717291075348741090983657102824540623876880739090279617992916713523351732384175824723741097562591201185042090509445812961403864124192502967079830167163371913798642812507401440205328491012136000939524672125489834448140363143213497341659446488665856814193531825046991493434813111286009717347626710045644961938658547306490178700867932284863706636054933813293410559391983591423918367079771778137714381892307149025972915760720800505927161956742074194175859313177397493043875877751480921716047977486021963732275776078694957132968393274434531570153717899376533998952992234055601081310678957072079837813783239607062710572466591917751025221404910781664891697630011331283151202786983663347732791600122454213719402281475058076414445816012733222195839452973423081103701819014686242642962066263360436706288129630653207727517678243682984801877863090869408417340310351231766433811192020615251811280681378818412630904869041098882075527712396589435140659667705512254567580671856568400476802073070872815482463413668824796206169794682675461112385461001528798542578447721517785566285209042375225144266920732904879567088659106682623786210200945064486075357074787633812928815706682924059568335509922448062440324301517547782352762687591526886769442288656202911883501717418844004585821551912184186995090687692068379440752457154699641213684273843550898758147276794207158550036628550370801913960604444785541751778667703915041233457789200512419423303545546198135319320709254068526060977440735863122995619583191756142579120294150920706117336407699037275547737179524895308054927476736546685090790332131689031029600907068261070046761769310842501544732383994094522094992510287175890590363467244448067361947513170336153828899568678774581886331079709956512708784951733532408021871206840007181769394255812475377275391082501411039715706040564601535442816785115462817784168294619627182902510812623380440503682351270004116713575133787245475088644494501926228984425774494473991238952552049146715135753721423294477996117314720912225516970147313956849442968741771637682856819783584059468692632775284567887115903038848383548390791269023200206089866965148536568468119557314864386292148435147449477852866501345917261190556650475350965237031815596248044869579172100985653151530274784315745931774049863049745713508327221226504099383397485964919935129278235185360979964092800177520899699297399962193028185706662250382418885427010733462859288322380339972798498716155756785104785056853382793220151424094086755440949585994466464086188506632942274030189696658671873412050907407913832477053866645968173403931171879304116110019642671048717532815083539589474000913176683781156424940483779878736286187879496417775578161936689147084579546350972371763518786129656007010171191567654838922946426135535635903923406465188187488480604822126893252590167837535433753671708879977332766972038898107239186901855078304565515686058736668161492531958993101640123823504646818546136015564710709042290867406091973168032980581534304229217425929188204894401413477896850768581588348594925353109757627686916668833721817429871071631909415035261646910211897991521480592689644087763461131462501997069700484915202151968281049029304834071208335122376759193617620613976720178190175155733480632344821504487108638024049385751650268792222408151256679049686089419722237233311261630665631711781438253886724606778537436931084654022439321150961446515791031072098362708728286898378738490261229278542031856491834241419687469660322588575225867425803385697555759800584481130872837814177127610043629434267074891876457780520342355953069491524180919883391511191824986037663241607972220666305041691610690268284420113156413018133608220577098878714718669661015303240755729945486079455182891277491846279411424742968909196076538164825942735290104796907467531715557745860717026002572719509147691879086193716610981345071455793927783044201602304864898239248421946518901473437419606715679534545026248940874940278002043641294659489940796294614838998352252508951209841852425116730477663919989785239769863912156286127266760789380300093625600573836537607429233365609055585296545604229171911762413967824205920144209518776190497178745036969166387284275924310267422693144703441482306162498900404956884948387854918922106570086146444469238904043453227116297053601000314332593814905342164744142470956377689791787492557715262968555593486043437307786981850502941569880292368908875228606256783309374779780259650277045279051282538755787498490160152137821438093402561258623542282366904134079001471333533689895984355339606890436457601523155712296928536681550992510777176745112943142752514076934343578215923301247620738484026804916868782841653350983529329012635493683740920251064041538756291365787412534827727411169762957691712412999288425965463140101241912444441355798194359906009051471014303874846542672033766533856902978636603120361449259067983787322711252432342100423839767057877220308182310212223576532837238040970770005184783915092892211343532193913126786149252540061332004589578128842924035254728436674768686868205539461832174523702148692569132984833394434830421149725632635599879124752978295796922737121931439098004815315892318006861499547509689174018546582991519682077995031787401208340172081936608504993913499337845587730088375660592046338771538376270227194791933365589404411902760707099625253800637736026992538078445423660874283734464480440332239473847553652337848434054044664055128038696997185174849707317284645693704149705589081625269406878353796943298289732723045974441168398671227549954140124520173005376524373729524013314458603926696386702946543312151738500351370710108097784287014089807007644066536515831202245448385883815998762254262102561354184156458144537196768964002451189206147682043641946326726242441900042211361523370714425146396260476130056319467655356875664540667811678193865572893401603805801318503667196191133747134408676214927247188852412639226884453624943294002783717812267098409027828200116432114968003912056839643415193663197493446098094529894876576866994387794671969932606674697264655534437051658398389910128961454769280242110400073401461527143785160313774109443651576268334985769011058984305664738099946802912666268396729946133559703486284268535237726558482088149550846213603001492871626214038972024035725658201636762937979396383892366135052383609265824410193043483561653830258723790117737559662796985367243776486361536614701563451612160081722699773549410232871824051545403487966851748520658774057632192205659666934728913676286688294021011215040895136693821210834470095172489426824937061341236339689345695992279766331827825963908082354430264191202389671696554871025887532016786771310283996018690843236131632427368520361459056614651467098805377209249271208737747108244164430179059444778215383160450022287867736786444807032275996087043516862692101250608270116133264744472579215578269182194133132908786682941772230529070045049102259638644435485583721440369972751275890293379634164100592715832012995486093389081273051842146453254881037980855987488137409615680323021726789212611949874922091992355443419867218403183437905619818592491955957449374275872710183551509076636978862762291907367797281531130349563148459608111660404222683282071148153040632548505377042588035743530742385513475679979838301136222367930015400644216114047219715049057905609214799938124490806889662914303064256363299831437622767212123994813987803215687073299902762009670923618682566713748889735499322703340632010588843238559666088982251395979188928886459469594841053525553145812242348657224769148674964054326414585863618171601367726032316669187599114404630954041219803279461877634470040794743068157731704085919524302380992484271076348990855870706471775774075200347148686706310443234205681272663291571838095743091121232102874960740000109030440437561299427581702754036403252237070561830802509716615293928251484769751999300182409211694246851061569055968284106422435218622206441180151693184348554260983169339097138499836631037353921421519362781987530420623482840684742909020885524809722648620587422807043729289057424074847115068174874812219530404480500720970341036936537132140651453233660200224414109441749982977130988749486419266659791807817218600898235200055382655060726024183843904940596140989060593348945044512193929301568772362813149097957526660636050382425169184171787670180540458564463817571212732156149229260206922630359127624900830748759170274666078668472100594560216673733038929202105611615960757917921836238220521023576025692981338980621017663242004033048612976493292623165930325941633270774694749632870509299722065889559155053177021008498292042535084344842191090631802801605537982949885478379561521526923475975008352166342451627494719086576140416852193166565746261320404889830964320531476535593632716625112399479793070242590566571430140841596217770619599070019647611049064908593615470756666745585718844089252151545836138887934610935275493004899016036792290143906495597229789809549658757134497638675966819896984096270968580442121568027606891601603498925811763725645046366376436692623810156705758635741216212287667727068483818014270653337985225549933740578462776109561936983140841459718481716874033852346980670456812407300637714229807485993278663495250557449283380636488964278494150711050604923367290533774256361934523215208697016969529031054714537564585419966750455296469103697481064279712077797582357838471441672984075154398965759184082141333109820731325067706496280180257605682118947679913892792416289253943771835327957451309756745484326629858504232658382999798253204651502648655643746910420632046370359362717736922897476027255107842010317045156659709156533919701757735106247605984073334662950967015625406643338769225521367467783941730050990264870316777773601928787239895846412552863559675566198140734012977161293410546728812691631007527947999715569971171943790300146302234309031651504602110307117892061545598345356531337228960021100712026573075321845044564244354647785887464323166408818695042881708200159329270978535459838234718132760770576187351573449873365614801842295747468931043031611614933347797578956231520133820225333069599342037937625152056939666836764711574085913014851912537415894160835768440171378021635046534212337482305885671902764610312217994187155800546710749837379331442566242352529719067899742864278010139081135892376063422528248643290906901801489024319719942185161147652961084993344655501748463110666396301972157410513924206531952376532201216248270969622489813817126515561998813843184372596312517559698989487098318559679453108298932201517740631387787191008088481212958072032232884362537359659255010696018250454451487510084105664156186141004817464609029209371044659040955533589957628616051859484247180397832110919886786264885555703418722798249074006769628548968952284229432705965389345510550682588780824577946054634619987302667368479459212800304147039315059785152021658400747509086955602501527312760668609555416538670252027137062250621735925475869017823379911207755692924940437883611811238300766351640182695594154324809202947571701057397977720639558610102695420021440753190845740940637123184254804422117937750292732779429830111286386845947634340444844990673514692968706919452872627485197421312394418055503865314342098004942264317574112112499978788793959463895440557005854485538328342848923967625995518789166039136344472180756972378325195763746443961498733609929165700607047777750694927808415274516518126895163625357304706144427048587066758275145083931587030443764574079334326991407686248818099017528138034372746143775754200441092742073676770608850545461721103845111165595029429843468232791585084855027062994505460599465809068403295596875867881083821450924624273870298520643912010628097121710336568837282922687560267576596649089918377617982731543169486369092765505793029651958295334062353479238739229549606420909798260669837121131003562822585090859464704100959919634427168878676625664549894065323662526332285351454737825583669474827850626966382841872927724006115612444177195826082581857708368394978095372257790768339121793118728945953675102127441087024504758007584279174585781450878864590306106562547183437011807149790998735149394378502032069803558040396859267800756783909357472744493286031760980198320123351207157433235115430708430502772780134178642213638796109735399865568358372320176055172900447929223859768578104786678723498529037734972764653882633129215380432221150491664763530257857679414377483584255962676943916410983706977318738778628336582703314141632995094778231222978206632712334136410138159510258627426673174786734424054370333090717281237055281299374194532214413587934773004398857780508350235852793090173887721306520873817490904201188008262004622347950710440743233800720525448289659328604343146886655244210864710368900286564914429311788328840366502217579750527243738992366366108583993580038976814294564364657950985526203773103200138139111517758938066348964408214178999820068248977306041536194678366561135963622184374925506318937257959738628280553358947526981005268495183615137214479305573406946779574099352494406252261234378170323682307227494883509684697465851389367685969941003201131731393961517940676335227035015871543412923190156235151009034063467448453538397201628386952232375347228833579794019283156019006690006654901702954012267713608722154526155749241255795236708127969715353231174622406629045336310187245046313368859198522892385474872708899324599993547383526791732266784490799023176855073446367447819923040496649439169562654360715418974128095820869224202585731724417456121833044195469679118379221982604049879230798439612419551644121679786862466063597296897142202746107054797336283419151414151153923539127472232732423594304531121455506426288418485115406219059844309666893988736780296466177602105625637712643877187323734562643488723383539531865688707284942327639022521193680045068635770802081086874104149229332814862504727369014478956623612892641927176451567998203075368398503758304930668413398513218049114830127068242048530974864405575417805785707996711956083007638090614485896566177176571854501021338505946346685675187994174424846526495597471582128375336106497477019399612457845981652402516902780050658208709593717539441608969962934318893936021091824579031980174364269067672665789662047699151978894166208391776370405799314599068091764254114492758111664355833602373272839665735477669720141493726701021285332065450022091583120371169318142566785578784263074339057772094153024949859327512182427066103500011991065707290339838891529458869250801975533291499349120451125374614297667847499874374381842822000725527195172350653722024657711934100131628532393403632261661550504301755862483993366529487370465414378202935017648606097177573125412397219253480471797681340638719563947558345206149908227014915882527873035607243794112332320479060848428237877703420521915107126072258863453635914413105141494819741201494649700399756990044309042499842924780987106560395486209021790035846787833027236474565208080035484576266188985807465050437601507147396358412801635549276406588214384192378204381715527740442048466501583095464940943904971291279069147415671254872014029843869345276381560044471962904552590192995513552560306864577196426919414363799928703346394248630403748715292785705997297333589436509858244382524066564044496356434179918490038365461845637655563630842349702347062422914336336636689769991454818509169875357665979610452183786909946355379584972878804391698670002590846786495431166994170842208768149804810991326592727130607171467241741947419281410980353407866207177402270818675870461139163942352793244045188002168584732740321949360772893153252562727931723214608020331823479735664377374293596827716909334905437999168440237534458759950787773272536845329101843205835899745909115602385325995531229398298202373888657172579377707721667008090696194096991074872243152069482272258921520027743431439778402501093931466592404259289889660052601903623741401903213341919468989469852590750337875721815325803946303973921021058472675093046641373222564223058771372386449462563123945668255103560820798465527277663376897155295353421016454672678929134150728475747095856412532887706736899283752136064351596496742314252948241117734844374809095087639553620126694269981468313122617811487867980024699440732176798785434002998093260900473638479920159473607948932242464000798327051690788989644906364989780258104947296596302653990226646616711868453555686501210164817908875050148865457495355144388395591738651242413765754259938231824301894332808408483410489836137659186035857301179144791031718956463828451403865337022478858811517552939678290447673202857101815061606667145957681428284587010075099638559799720984416303687294179387431936710489788656895260510670724587600790336778525028010663512292242485599373128607678555493251315793266001834441038551131862486811866087918558254936006331954948273447939125722363976589747658235813690067598792586987621580767265196435148687808588954721797385180295243463540035425522924242075934649772320640439983413643183093683895460036699411493661134173970016259510169676153376288187656386194368651404484581699618372368090550282194188530102021524730368249350287737625074513737912349182040140578694568474942880496893592305153253920254840425113355117114126223175810342839146456964365592006339734546397754559265406998430309954112206835988229783915972777462005710996696959627158191446255567624690325624187086887357479915034692197615246961765268470902262194322941516463947762513216093905102005012961910801353215803446178693558938496688404576134048062447724175149018309752537940527860891111193391554024158648240184869686824342885428544369345601651597161572862816459807832766447574898832867455206166221025867327019035010390608131563462701343124485372235879114341409934836221554281590665184420577502149200902459897758251235892317275182316573230349998431910338529684964805927543321349927315300691423025230344240238950735156092621074409518945056865273682642192713749570678902821987723825211046035171099944263764076384448398531606034785918943031593838144402410765127101686510905887770408888251104742068443030495548208500439855171344968023476767355565146433763471994477718567935498207292534652941369900611310288621417898181570228052276887332672130086708370118020575094752037013425759433985801939629016764238079195084317726127188732597778648833510591058880217737069182534324333844611413740872611669367446893530558097474031323610828647568025663167622847258146757102359819530362511988619595861241975644772593858574206863853620699794204587503855779410207651464819254113703478471991625316293569652712558923074491230429857455513041316923929214887613539608060371189562560418469616473746382547200898055193790197006588733703060284718060372263319417070827362545442977283705782344168915518631067878037587364309955892547449128175696211825420874458532667831360028350875354541278512143029120452396899907381654523150706145733780884422319054288493874969717060135583412991317120757581934258872455757328049932472987787201409837435613013479315255819150794062553730900700429384050371977664983451703037273615376387599800770341681875730847763455277464673584540277187316488951211425408116346072980650475568983618766257416888402765529531920094201229128318903984713407438657841724352815903506660086270295146859758477351410905218485992790016084814370689858634619237025738116135729093936471448091105027763433955320359419957153291385735706544596651058775052324271985820030915688188221399456710283329073502358888751109302224876214311838799433238005238197941236273804683507386187943169698252168608026341887988398166766334345325768954868363870862262497099799010130113450420141817393175348076660354995201905455037515385008992874851922509657836055338480758436166378881099583684206261053054672175093609813049269813447375581902275908560768255162140317238367478742784372368149138306483180512161062478906071831054881467267088542312647230776146164766847444184735077180446715854540108066980072364596908695218750092463287872188157664215156963143597852477865711261158549106386029221084708157921800010869194337656115704805643692390406773243157635545174848462071297565901578206157313768849795457449274504182726551842686536857737858247310657501660876245801234923572098331717643779139963114975173186995899642069745778522231350617200981261126779196741099434207007960836655134636423590587527391107248739411057587926607609933227620482985856090386757517342449127890123944297558582148446737894062425576224088601322678246223445464517401728306945540186727152481809727131503060802283684156675366869051425945534925038410867822663285951996711845436164788383774450891820818684072190512643806694922131789849797826741948276289121015192202699073665903854488259965304601700522070563438738559654471217772922037717296035034076735987829302593100368416600440068209015814313911066353938728884305428033476106007123637531594129526383438648612213670848684734987481877499579446457565919748915317675488633127455313929593347302093832179024100411254811598347023662488615783790968628944044534969764670035595335532088350256659687042654131174029003907909626857416008451453416586874233257720965368362484817362797041804037866790197670396072492647781485948302656068902807814836831624309157882527873794631685710017685555245209030078266777979144112592665696854838324194204023294074851676136900067983963015314276043590447307019394754916263128666050392630254234954405142178904534987829848335374691626838103864291634736258617709277725062954616932573088507752865950837284653125523141993445729445968647528380695635090300065508466124667384606767765992049019108472224136346235869200315683033234246741306590436984479729539705734844865525146757401025977038863220105717203703233303603990241416231077780353931961225440402370828461305834697553189756678341342577161478546347625163351638818898678839798505874772235060159507017595783766708352323385108040696763159791790947055419661915642400897857439156637570576905247104365844373368749130358054458646810768078394109848962218561363467260299375376923361902415885282283775371438414736649075291041534473474998842228122473456001221118462394061732469465933762515457823564681437278666607514957268268656836980075874258758583908866285999443649423273463695621045245016835922184523627185910334892012849047855161092990032304782680395992663779900671351856721283596947924115246558690711830008345543547305673971279170006295511765595023939122489382046333950096797189939605780277121146893164161352541592376532512667436252835568419895191904879979913991502850724851424579927808680224492405833139970562448794827708077946967677421915177644256309766614224120676338199099524337380852022881279680450572442091208955456124797578445620289411664768110074836259967801365896633689808993300067191674789627172867240863549573489540750645932313728245115585594665488182856073758390382058695650313013118447762547184010015180742263692501170802925327381225300181818346947399637193357579267143726846661226942603826155219752075501523502676310060277304776698438955866832998334547797704540097547478422756768109466084826495954744429528238713703655017365420382967067960806345127071822573279696877594195989540819349118256903657665560721197361222347901396462848632330731850274745405022726895421708225598847223333815758775896761679898471393067616731815636037774586055241276879478262133806623166530073884322893982019831284932118218500308392660537472928844341391440152325242695378252307264591820126311795938081538221745197061326416721705716062347650560876901925518627576123819998871787813691921413039884281799034349761018383416247059891854990492518102204096428804007725309374225755728595020837137241623863924874224174100208905176589143624451615296077864001081370897892217802537308993581802167171807651520670581783950674703208738370872528266090068746526562717503455795681654158741479568380939155134520282949011250507441657329035807721172198212996754516480311668739894063139437975223085091388832669624539577353872355720240492858279548390020769189012390165393800073428232534024180640000627039446749245175357128784691802078881237300160914936795876084137109879968406529518565829919410539674096663497672171862273445148075467731141845197165994867414333231997882096303607576396947627311302575758330659466757806348506445166511700564366190388024382076920529074377013852885523262323296617902183565554882998124099052538974751207998445369250277139053460605240495507573218751699373063724708809063302295649514307584061941595139917467912287199557372296453562416700099148705880014458636314927845005209595581141860593521237522133729581368742529098363560291757069903797207781888353779495904286312022972512317522983975103135816503280311191964325807275507391347833678411911722256729570211153530408020347818944994658512397657575745804828914994102730816576259723052883691393972893826918695641976761610071300720962944821209741143236995465739293256584030883275514795785457173521046056909568485705888107196880948713933382702280077030253057034498434494746078763466399151517290018849446376572062329653288606142505715224413180165877944370712142347337681943422778878459006164098075332410938679766165130864541226893311360341846176022399281614311340617701907182978814933119035892224332895364777484647547816728965909328073063893135341749096871559954611170403426964133927397160894531082066083655522260900381169703348545081323503581478138622551282584237818966442771663992431331569409577951438246606536211987228670418167257367649757005911636778074355186120580006845975284895355630374212961754496409285474574054951011707241700550194563541412921723215940433674502628904504334319093247387117065002072755460348816051859898691915377870555959240300391321133965864123001943621466434694322738544926400860885452827494800977923580346679737272691695217409271906720846354147204263008607798223356000723707727972899995425780385261560905965573216863308260382323168862729122182638026430334369169155449634279108473863478539556700792223130538587703002554557963300529032569621562466953726780967319989896713302029903247884521158360459634837425823027256707479381384933797260921791980915823896073954851208471766073441172306108426431267706965528608613590018694576026079038325352158801534177317248111833020738527332493762086791990596796161308567734446175822552834150654771859288246265805126466662979357729157588081809361674880336194086293320779904995305141230035582741819527986978173227484505008861777345082322686406414896043721652988756390524405762907035828958852032609761304041614377407504047001530302312533187603320405692325768359886151517066597397039146559336621866481645267688528547213834329902587860754251623018190537568943057420848942454206105266262401697128533510109243699495691526448140624426774502902612619135782413825823909695702129212308296530610102827017259731272585756893941915197906875922484088241977806702234786797571665891520588993115361829492886493428041975749559553664781215211490773376230135269750647842245727690905326473371440273149325866986319517118940775242123483446267726073315425979475583862038484479903640548286111058704350603712013020757582138983674873302502393648729594800965352616654135198265574151327037243680237456832844724366086239957836265280248700787425172571268884815825420552024222398196245926571023936161988562096215073159965128177328695536562018288257673046568002032863206314158206197278556206223663485590429196352618402198420313457303409736922497731321969084791994064592186040523862864951090526180312679153675231955094656259331646605974293137352101423483642361927589044913287086462058770262178484640827630063885437952569636350525730126428447379327818950532660629629439706910956296386340402203718399362034201081764937009838277193937893494926022367556686455980324712107271530970643330957157976546530921172884133371885273546153557499596957146658993543171007396770818742518550234081473367954368940356184147357920771471879656946835352136934401149248617175063342186612194826028857073744848518386849062349518671703833794407714959122122485752874065498848156833226229160371576635824098569917152861224632281266658252268316604212294721876088007570930983256976916381371507694053641774872805775358964122485946609591806017188064347965519614646781718088654893645691907288729578401060419053729216785537945425919211893886683330513704684692067407259388082830837167968242268670852710215743533450380425976453019309659820283683688826705835755371501050224269910759216658777024783211123947420641791519065640872156842156340141532752939741555249728088941611816851164519527511862954755379058856964484448663177787731899556475322534972639976411009580691733901380131684097069440214082600072200539150756009012516586836266908596624718311035638199366329830926879522523080862630734551215806845380885017411232610250718644612896959838730983935043557414056824741303898819805990436627998650909365857910934473216597232204341234931272339250872108857897611038553120216612184706272466538855161446238552303572725989757624557555046948273447685048071315777445430954720646750704718855759109567540662959859584685022458284861809588786587597790286894304468197285599842314821097782963956646956882400878234139531782554961519095977102349293344415597581001512558403666909595497197880710542374787204423628785081361994130850008404556927212820534148002792275499938672893293422977515399360656254449478373024792831492883085246700916614909470910683525547691946141743527802395435057092886806681697601066345548188026703017391394318778748808939544912454036254300584416231109754541710884498830877456890644687968463985087425067074036531765141616754134978243566670729068565439512871799679566518549225630375546465078279318934486472704601394853268812101999367970217825175300025070701174909570197432143822228483034787596034250291092590605810510861964704057425372712734244547676059895345300646846652952531539357203590930824937351822138597745094871230478873419530980423153485616047584331152755776044857588940104219806593140127231118287204645456893171089033359898233467635223636378355980069135886641928264707689853390261282748116027108613010198784796105706999881282531519779937491506035592554579680971616153987118070277108740915208479489139061117739231578474822405898265760589411893550353354023379280023054594567853194898778782262890368157776997797776639306788578176350955522758862738457011642779166876395228645183413995717057124216572259568709665269550999171443976010989747951849563303254146541012001550883813695411351273777498845124996978622858460211848206163388559365061036341905677138627546553996281197150543660012086491152499883118554969759655030479477311404198320171263113784586879374723967384304853831503979125019764772491405670283549049229182280306928818336647359239976606342324192296478141018699143473505802424650131328118931661224606130701392663742788155855249442320611995148272508422524249476932881899106876033261002946874198697437441337966805366305437520269289604600296124977263297993348678220749869894805229320678775204813315172638636911851658939871871832648812085576585179646161762855123222937342004394052186171595795956444515506001082009374434525288853662347471879708643213754391466837314840703652533552367906596784542974899334379500461788300671216749058328961836202904946053674189237103922012949266526413188423903830024775106465092934418463556561552412046360205453896877297815401315931388731588057073136338136799774713580084640020768680851645118979870411821220551770326616939901001036808650680028978442931205524452912539534743641589312788345584948854397672275877812623609444077809287506955518012860228580789479530801803730180487188579984586517401554736095323499401540955765162631251786134763561665756784730613233034824305589085726423072032200450532667951598127389611238044517893796729717326353818779741668812171971724493415120931744225960364829492115946518907026317882147887675933700867470665635475454421106947727203934369484975597701461194600473465001592058746103081217171941149945516154432308424831124851348446952388869074017976870354929512222495363307954846980803044872989115310027150899857366769145366772794997664059987743993891159271630222778922622702419821306014691939586236924740382489296255275631284947510103055279837198687116552141281816215778556775572601300772071223740615899147881818878388533964402317432070007827261526796973811964364193266491844272323930400172595695804421963758981951286024211298218120879340005034930870177820649762182768860407244755655671503037318229691598156801514263042657804400362901242334219181763958310309450917472070077111919547377066491621349324712041175872212359386583739697003981103904410795988795638326051395974592520367869494642904753630848503701844339417312706620757298087593284231917118691613996642519876038540054187855221468982735478917326659883731389801843118806599882535272604669356786468538052505674413577311943162539058452527491762059565317420171832203351184067847184769782905455917379592226637241865238392071347454559903360002772110483824876855095517165941690564766104402659977578860063517882945009921929904844859509555396796492202539543341500752752817657406575629502818650452250643319839408970587672418074538163914501995512596853170852069619533080242081307999360210726496819057487520749450534968260600263062127473512090263268301943168046455705092151733246064651059927380283994337566220856895814347060128412957417499904292645463726017100755025177338725222634594137013601986082571174536055766558589139649115421069241842331050995514822629043451805618970785982492580465739785633695284775047354297331637585799984880466673066798128701338757279940314502433201067734880919880502737110504701510385461110626742407197380240244924383164467331541566815822369685780054461715677978131743699372690467836272820173374603664780405917942742823940976928213509485192812391566951165020228300506049087322616381268755643514003554543946611080249832789175173645929324880796875961632592914977384378970284622582271825762865851099558116519323063114774192667069686722256340853184125897539476334042912550961238266232533244204195087586230553053117618301174607926975772468560209406480000541357261605806848735401632050074153538689274908329030066118074276069392015894644279101768096278912195479475877575879190095645634289562523073319041663927887654592531039534077701788706073973635124858688401155431946970601026374379140806112743343938458606698581774569538025680301287776358567599174736423704904541964769007391341497588771155043381758877138285030150772139760247197217171407892054635695777833913348281213626255867083076825066941060078857611811461081749969127383380185103855458994387420655359197230909981338684965994335580133816010730709819773558318399656130943237357947466316100097142986916825463191170989052948962182512465595090245036300901669905984983753049039576203108269190758494051445866649591543351089646350029164716351575877064544106730924419934835195635917391400722786030721822314982540923909004737148117456466887927691444519214377877347593966616946069090232363269279365186024686176889555440087699930406846772706625975730993633358802951967488333834411536007333256548208275864907945703944353332250407800670342110128998985144952375404044568468420356571581684202588167987728117748602289798255515636659495050826159148236522369644822953835066698982984576051214927973697921183237116759945147800578165292660204646043234013935759451179289146200116448981991963032415461703271055811953960174007110731394251473836048204501059699598141501805472196864116830824043048315681121121004689355032131182730797510695426022808938952756072646448317204353587605977529791609045439882779351970541746285918928279360107131062671185154330701957812076220657683864749593414114793088509628977175559229492609658770426086616596531264645612247277712163774230710881507986665608181001610565371512607638349502119703611912797084068559078852173227226161549378919151356186879947168374434811522847266035006437435287813061896691191958615247985811107923692891594026164226380217565403099544179113794881436984768214114290422572084079811397277532937495497176449944794082668937998800091337483621619017902604525366605531828269504787184648791912554094576870904596408770769115163845290597887206391053623665339773156657175974454003107030360586743383283622194298360750474623300853038455338879001142429106891214501015093236072422156037946737834545104211792263254285976073485030908250301622622372218537966315467852472508011756103017090172130729180916294808620657284372950853672198098186809272852816332712102392503712898883371995490913713628909205912552032981046238707993248960071215246237407330370819458715684796834545599356421295033790411062090914475439374349869620984684884721121381468657099590616236753461362969179930266161317866834949873958883482266584558584745136716066866456765703626260305641355132547380430286933616356765194329633038879273471715764227748395931710623484076404855523872149588105324817835368584491353175198176479065007196809749476386181655833645543272979035740107961394025488339750876510560302322419193683662434923433855148267253311428313853107100200784733079373573959833686621831427154069241507228256824617499270923910892800740467227428123757924807866302885821683513978743109780081931604371276591085441562471386794441310647368996510055608190169698516732301916036403094398864016570189735088442125943191572705802854603731197492996874161542070983367878934987481374056403001109249913724373274196607962629077823553604841663042412987037544178338173103515592371872662988705537430328299484902727110018589220088085540853021154750785743645902911246855391754204159551400932979756849094746340004660687462132336181985406755552236584355694342298102963689446475185760699761672132163021877457560521557171930986902344245885056472718019227793484222364194802124404573813610416150644704508924974413051886185618923023094356877587543123156838182323266131842858352921628949724491019212512327797193968002686074432115108778697841471796686574753506841915908216960598554253373766640181563992654811059207992441381359724555710982546944014491670562996434814699506031808186793714221061773192364953566879550180743085226968851472207089473468790566894929694430480500248355348096526529316904420255467433184330958417901179559080457354483800618862492091280564249842901318981651063909270858393359669992489925915255684017029907125827684971252198685121096598580381062208230383640859732789744366785700904968748361290441690744821490204939142298210267454746528392689051425677121355626745363427552727822397108423526320108373497884056691425379184508188440261097655380300451543778350270143637322699844575242081211585891169790295705342177146277471977268016913454988257192771390672966359989497009078957966130290442029420847409879060931752349942642751283266789294685064502819902069873930554117497558860467546762321162451751348507299877820202762343813251512711841302642654447151328969523730373956598318639561332159452890779622215365260800376054199866357665506951733773974305116781943418018690780002049570338518523553789452377437151854253428730505396488130364109704444919826392637880809322640878882842577222949778960919398860916152741113353223808598119794853337888226754309676159362489716801334581020149343116500376149006699805819734934765248854406161076312467889692542710149278771697151104690966812172615440245949946104089589327734154670324270608514926918136212237588247303410415589588468007050248217414392153702666915072847391520311801258125272984242716946246708840669653467021020304387594031213271418020519185973301756739539868295589571440874057133289975406023203190004747480871335136283858441442902282974559465190040346531937900398054827212692546099654876988483895149913748568297542290318847485242903569896255249477486161758608379551809036306116646947167259219377631434947098788227699596433863363015017083151942947136171902757460916565017021239750954806244168479375724158318485931815040154322226686470209600858082945287909552562051650718857696449258429447374347078588443900109878168108688327424893817742066377187764425227828691468220962153021745999164626495457943214548843979173691613758302341873774255998268710833213442787428739097821762251835993696647603854363606503321751884585461618826085101823601390961920836926589888586795482370603250271865533986018635791878878089661302143707373460830232068845509378794492040116747016795899104203378719393610884394070440097761020562712312764429682037349427620265352626111502975371904115709993313723185623083620154459635554611054688918987474980249308538085424172213663978328919949035611051662713358164402319811507509115695825595117726617143221724694566620769751121260766669518341784499922198293776706897966926535316819000609250955963822075546843350374236273982009218037971763256788926264057679081533446904988292616369551740084102780938191644832224890520404673380933557807322463856315062375222746576346772608045433365439522811209235010470971402066242791517323953760268836644472738698247151748656868412903191629649018243617062469717833297981329348849857854379594357385295022670106265880560553640349195158594830297343760465015708104959993278573316194909765742863625271104909079725658262249732498171037289584974042507052874559992514952320946369482274287014378111139185387583905392405210425292281935145432129469994242773364158743931315708258017450885109696328051370975806169580412269504686453891854613022967013318242491596952716834834158042945427684450757406259446649337906873610203648181714483698119205137144279857789754527408104862001223374940131660312519037117044512498356351734144642837517925033623134300722990673028208918188543411109532448821567439443819455607503442198508926777523122476749798705362558728934460083788299714149364569321985731918759564110156187482362771587730267258881875546401848774281859186762301090898631973012788447054186831964165582664508053717297011601974645035190006687315100713284819585147963217694244846077459304040578656471107254334983508523645333697566714388434757647941794812376220101441948202117592816906654696259645164453453606907436072202721375222053558723893072354784388768696688267879023797395860994614123948865251524879772450685472948544076667580888776018628466770369546511371397226623447053728565334486601934401162956409998237594461609129358537690956120065859895607509208482855644010585495322672593017180487212944628365552492144683756434599376667313445783047286253457875047147600891740388699785594187113473434952469801651370537310597909942750501513128443461065000000739947991852203494311577816930163156107566412017462760093080920316745668370484943371217071266417369378474164131431754725424679866070019319140090839162927679124496096283580388342435413918237872677470159372547285824724155689869070779900931099932359342608089006441310453771536374368637788233203107229653439878144307252313943961171909049152467269835882191399687325126172788440411944767412539965245415759221638096332136029003604213799824021434790216944016435180720374709276137490931665774179173355817598498058441010733373691036813398937110928109070136011770572830675679411535353144401806015417267944391318419944433238694888415664483876267134086087898836850249628626190978509285095220563409487241689916115495920513408327250440179328938249539397596160962932702909625569770102058672242906027976346471911320609120000424792266031271883971016356449722493431614886818272984159482958751745671466150452599771333738481915876123527685642377085512303670908861638997877869127334890549625703099322552997054537865235789870358910856394005632754110598263938473868963366232611084424765755462476056344322811304332367766114241833547644240419788917096628071862988862058170587853125531870480841804159142272080531780970171893167670566401129526015515669646985591438512312439477181570837236098372679734137224974386362186876272856310088261276340716322787625248810658573394497428250577805671150506421200979737869147313650440113855805872245358399634373261793983958796986422724594922976950373340430083458031489028002168206233533713390626411975658987101139697469439222477941197229284933042206401679308363114358123530732562871995325822044375055233560626446959910958379217820195884777323139853233803768833710110826931584404281688274734587552162350129308969797771556929261683990981464757349577891914800426367878267083566726360078292549376811171938010859338277415937522561570579281464950045574290752658147441372122770417896792927852648112597790089760778263937248736394043150989534701314326997973411270593507120826481704050800227248632246775940454391566330681866923131738792336144154956528759431985969442750607629189983187635787949002421020664244062324651704563584797661173155275233869025336965306106225466316768285072008309170547873315656515594400078133663202115207899125978154497702602266346325440414644257560128475551493238078500241352808519087391437126769244782009645543256530069615541930928591364467702491187461680435839527596523927777527861830700265312228560822544047772468559815299963850765873779331817019794163615405638914609663366551624430741610617064836042457684365551608666640778424944870659454819278546910742842628451048051571132910360710591097449212835816800592530865307958233906395757517129508721019707256749297821757430382971711865699828706650826802740658235558477628992847446070638886645059303744612660689697097449593296495080544342179507281756243660636766329314543005267292068109982907571853250724999361284418829090268545229279628947654436142753870755775472544736980380239108242404904803003496453196784581535560712391405151673286115392692372997064713652147700027962684515596933794029800939413661244718593879248905594459658914618265448513546763504080368646553317118866940284324462302641114028094975752806105456135593567813212820527436380468042760495320019624374679654524643311735070122937662459833147109051945722066087064329882434386386383409698188995392912633732585929085086608936098508088272842129632536481650617166020003865093867258961398263671113434504400341492595746605771456531090180310139573290888524848036461092236772265478343673256723652393147925959648531810438090204716271036958879394832063680419676341683145067603876827195177513127870545200431940591426172418871820129932264711219761853238999234594772887174429119338230867528793297364553543840767169174838985280442215734898450225191003388485095962623244088339738168328879504394633918024883256736950476124316594865599722890196486698821506535677121331636330606132569146003939987526699291141137590829815425619480003364253660863085931330608553762160782068079218468383746626338632651652891971009026934907582253223667013021974576348470107564984418251697017348411137476515435146501559356166402557650763117061887643028643643018680735288691052949287479770751463636969606528705017973549971218497775861333842230154424633076023616616080336362824422785274062924100480963434400997971921488551120178474580943764492056705634545311283491633390762884324742156689596186387093736528569473815937725549164049181350862129064703784492074737753633031768824393969235921845683343673502228451490527148491613067313902456923437180271101180804428539625484841414907054128171979196882085251641309728550441774633463680076691712016184826645051645851928737349259472582884563084428690257285384742846185289850402953927925585585650858484658426433830995105168627006489482461440140418954523861186173799723043771389145259352237217930211043850709490404693656142408477547426206095763972220669095876045115708371760907982571929732000681834768342701596696751446406610869165370104684582735487304711151479914850543716101798880936846229998197308051594055193875521780324152172106505370742506039987416624414599025134543112596512162422616958353633043200907850808646328990847144779628169307065612970292049439903073905237762144438980845944872945685156381628759251029133446899393407502811684946172741013225504946242730515763318812158088665148104010295739455238937807453692873924698130930544544826126506227085512942144441189387192161889124786294272084778910685614227675990658370079340245711425806424375525875582203552554313666919691939951373452942707537868318719091177821155655735184879456950842067078665549870184464496194630448230473048949847357344552870353924593870847484245678060381969264232503357797881084978676587250723948575409185537652010766881853767320227245696931246343450008117116300097854261582012480168665812911971522817647391844172475680654267192793350619059497542544346737863617815341792515487617734477453315790364306133845088607294293538805754085717977962754198829030134122837769556621768741027306347113171545346117208614443907202637294225636300864601519078290886781505628488072296217401476201274854684048477210027736438945763181354927673065858718539919364153541030509484650259991621279024169484133912456581342993444960359704080762904948670253541157606305321412642733134711208791295906082438687394079093864243773404667058542023345015599363655596428092264245066376011938138363889550736632225684524064927579216356466073378454314637151895885064412639754376559091943066301082665685819533644909554057127139993743933826732662846191070502814354537826444516590278006316791565714911733418724696377514194720718343109195213412284282605421595059091613200654975405091936444814270062400285801171613732300282116078576142925929205260962532105233869246536833854015216021607957858002626442936122604142689043309469060096253606443751803124036178512813950683819611825477853556046895784768043655181917066374983598428180054724340887919764719633710244471262819338016023501561821551693318730608004174464305704811328446432117991500837600883699197169012650378923282773156936234589936266021628549973458897578277870528118459737250516202907770672441037461900877336727412419900028709255754634102610186215930549577075940605454148174011628592335295313241556698194959952466193574126391062049267096252150177128141168679292692900506174171115859951842118788745189303594752554623099271168217406452001738847061988478733846021320408031657983572106333440272173414884468973062760295696802328435136294109305252079174886126868004169882908560319380874265683209826415942591517800918664331037047932708856906758857997822526156733566008723652290037625256892013855549265368695800922683604755478942257678277548601583806753238273416258046087556329774870329331922121269674635480900958171882140354505290154178370994737867433206775793140574775397810782588995197641364510107897525021320679301729833965365218789154518725586859500744438748881350933499077362854017985161295357777454776186962133590561530109875101496195448655228529168698694602598635908255812079186179377230253133063805668454906078368109385636619619710621636543136288914656323313150969749227697258983381232248811554923784342321231888810943146282742274381157766067137982664072193737323206331245858221256151677362885550670813780432298777066085584865634950515901946608108696049095586742756829009801143989715790978234601133212562302040886161797680103209820220623530067485155890236905588849551116553900029922582064635665386073969593452603678999018976492120399790961606866837371520658453339780858772655042151214077606652140548992639011834255864334760610166531587221540747435058954873766037707783587410788062259752819532426389860468882478497528750265010040822602746260574071136020303759811646319882132165588974766425603080284109831967266876588221462949876391310074411457895616606928716428649395774508614620179995524104810668210709145224662689696959455018515484877908527947036011108473485992714253521413024292672307051033649507261652271717873373333940510053762949726080664637237056667473637963186361384070556690484459357025389564828048614266128736109727345132687524285112794605397425229632636308925470020310603157009838736727599022813157766113693511755401148108369841764081018872854199537304763815768011265306881110971987682068142649291997825118766450951914811553774601829217116356347254362560033492445355944015255241288939484131467798288045006406154473108118166442792610597588166127343249702003053530119154039544553494607543994560135744589335930641249349342435281748466156008674657834508629284360419879291276615543683891610668144249417556260187383395094039697010214413073484644864887936514698926008768176921009087551239838422297010946570034469301009112011577810222290311368736600883526981909930608849957759161210449351712724594427018279249461378414941341919276851455398120726482403557704796613910431311059887956474741972766978232839911379733210032995521074218702429884658396796223297576413094256746461611901209659122071065434775224570030690342122097126852466652972445594632498754195062575329922220026682423140070605507419009249523077115398934837370193392793159732077462501637796225836527531285218294276874077013248850281528487380334015157734068051026393255153008985868778041008593211681474428511181444370331927322404058345261684106596337766936930364213711850280035205884526194689689953627260919409347885554524430257143984041863638626384315055398542092229710196366950698916976874040204620570337189385420163932102083485816192823908281096085782290327328791115486297485347465388411613495626429436694891117286553432560601381934334585429736729855721162717255608275165310047498103459132869460622477505214669592827500596731111619355046498351983996377152383511760358987830054302488820946112691326267339094439516444248983643410776250288457418476255790024560237072216177290539445077740499083296814653350027330055468604439772322464475737838979586059737161676536268753427750941164259338217380877369682998972485331597356710931616675887272724350910843698288606678363490789349511851694302673806074706605828851932402395321833949917379535050121282783260504273890796230189356151166237946574062222386139523459527946311310487912760467238676923243990243848307498471419708735025348264274027196646956819995526102122287674873937043716548854523974072614324433358643160638398645930525239650117896407137943218802609422039131043249475284371453790740125274438337756054185323635908820669044371980493991301783524902078633801186836950011607218354069005025372773557956338279042448866255791037259267293045617919375669060136800813399631499023362922625424677542928968977411618459957338494381944564228829376574365369678461498807848747156473744513660501193498466809000034841382782929975599092476705140562590778604205056685175426452342534675588493410890385001305301958018344829589262175123152158009038073659962987211661158024174579949611262757041931756716222172139669379269371152165232927186057689364027900675314049558871327781866119705931642300823453145420071413307803181921379600199826654399139211002445618730229215135873770773316819056727055390076351264853297430919391600638983715143679219946866141294208140842248006660995683911894333289520059305442173539591608776530868136070186161967780359282037417623044231625334659060681955451398504081040379790069239372980987468238979333879992504832231423148727697953854740720067210808125074887976393772438755304600545863261831447871548345342132367704493970825774320593146897815628745678388502372270953365239886392452448317186525066146472059488247245321185827707529999548638766972446126198039557640197128738733609186827870198861188298648971157208064845654573394432267221571713058795571129386501964609763972290157138924812330510428264354705948964890486716785254168960637676376656999708393017272737295611848989775178459227127992745529803689930709379011606440203866600670373184483959452328098833202075302161746241625321700444090066677995437818799166035603141750603353446701223701129906793602213533121191347192598912412393921027970485285382564734368504596189629592538015072790777480294370420022893110960764080115211733422790870396414148082122186281125254461884185649108023772999159190416275953499033379197858875868837504830875216653200857203038365915744680952486320347132073784368259976831812672589821269363404227316663988006712120859902496048132840747160965171395766738835114498300510888814586161396867639939920482540571822144226558176847023433571845333169971770874207743389643676497045666072667274903877293629170389582609084445455201204800225444498383215214528369370529526966601450487566882868398148106920253289314717999711268628289169633498559429006317526035761217172027113653840269515307931629543261109365905579624316317233930374262592379941410215273917667373445686474293700086943345368425787354356119056856967408794087068396847427024565285206672489177291849055242115474021512726289831497890016981572425475582698771356166763238196898730294615301700897249477042098783087943565605283745892062274935313767060087113001115004497298998836572984374664632123656404315421525641250331700601032347286915764885615457150038402091384094367850070028093819930566590650236447612448799331226747511297014107666511942109249023914534812002892818818074072618700897596078119603647673034794842575684250682836811755478705228981474565041046814002040438551275583707155808922518164336370604209702032103214838118666750637605722822395323107676320778921427934594784641816986827249279218484080920773020439567723049338319638406424166694403934994293623119292000072669504678887468071852729173248791212076708721871981117932397837019825152965930013156605532819790854938486533239181013768247901276454926504250156523941151768628457389147288621389626741568661730966345028709413117443377334551767698097214260216048891645765601189820390577567995333422494805102437503776484969543178262014178564154698420665930968708132539253935652334016017032676064095505957215457056889257430632732951858565344721222611487889348230139870135208740013203706568935150985084921740926743935081378365270646248559574901199533353681579183997178618677812455104748174475929616729642477323568125729088780002304005872834076069835749830975458857002597623592499536426834697483028023690339728442597937880605627209588012312860808770296231733865650995345234073676297138217721157500145986487607537389857748969726530973254272331250966118852334216252966444708564786515665702781509860540666079807861121621785113667528206399345513337921504724213188609736558613421414348420476881628608200528921218425669951354636372159143242227868864024007126613152380650541731506090412199002110667360924911046122109029026525264796538285405327862069104238019298931864668129094194344854257292457520919864512228210319033543286897089490016272999494622351335487533169744356350818190162802984289731562805873156212279513516563137553884934680386561840461448125990210003424279753413896585384506100460789581637930135703595945646709166653834280623818600380973278203247154909986478133441268485544332344302084384452752160499346635790843441109969033849599130751759354244128575970679588619415787359089191927982165539445431984731413756281470915391581741589553171220718600315916949396428328854806099161179536157260057193871479706191648700525075554901803426815583576088301130809125430995225907448315356386302603908833889471750409164448440259269963261488949692017365040028818711130650840216726550583135228196238413050428502289732895052673524151945708268093388711040713287669266470260806836815827545099351610273170556745301105178265280450085262636305216797100581551491969430364693885901128587559443051121765810139025208128109335968053266340575807508585286526720179006668808998435347465968199989910516864740375613438801905832465392065224703523406793200761526353497791951823301571076779966112602827758732220421350213678952547571712939119732943346250175087117894726827273332725541631236690314658412330399958228509810071908666819669691986639759371845474979236086309735746805546239902355456895876805179146632509051865133404632031244908534426329110739407944613708952548475764259601810742769150832234609349684238197589140264650379703192498117993421658487536813591469420951823589665757847398436733461294124417975904589502637760324786185619106468718145577234160131797894046172041153981372804286734262925471407681384254108574353937771089224363935653236455678858331509453896654102559729624819923337871328627146680238540124203796130769936834498005277344084252549776640896227964762698405761636390673869671522029891205632974209935441523286648527057619066386772817051298902730710533996524378411011619185276073478499360468947484194665525798453309044989290979009072721669965863964953765722151069862509531331858114685819936999879202121037146340008373030840447258092547138850909695439275280209269155156259893795533362867165972274047172953165597674957212118177158893294254262502339162126042799525924139340101277436759558372416593599426362211380626187010235861909376537082442902046369749994060736403591241299264497901301840283686323864484256956609812419048739062665870453934289700061705317248917986378479950569301120028045652544491597206683486709170202180336295871250741861778751540001177899557789982797315806694237169777496208387916437808552650092713402119463868591344712637093452089415477073002416020338505614955569666804849762047836274884354247530930973689008619963818148006057112553835338484292762936386846525449023508022076484078508888211621898762182664170174801566318498172611037755809001597502735490797634752848024514145943386905377774355875105921082015664665486933946450507943033533050879036360650283105491667476500138561247453086309674228456783125186269183003344085258098695523756347470183953334011329303797383929824905053190624488921331560801772595649593220915878020962024630427846854805771722257108685213816877487382492299182389975090957680786404433341036100349405498189416248612111117031684378632980688076253466507023682803766739617738823932899763853581519697144440740965400260389517056636597721387775648099623997921572773000151151159953626538367849094815772908586535626177226118170215287898111292468953741172928860219893076318471650110801130047368392184508714489908334624178245521507216765961433997845851930229514869470450782118280921222434523602229711643894835859207023655235321664867180998271577961435980722947269810470984509080851160720997180974001072713989160790107840016389817694656147736228457327274245838652306604924652199709969964330397673243445667597018779425294240865939968459781264472010931581765964648271885768099857502315200357680412091021320995629078590465552994897486126873439990331213872469733378759547259628043679437776913521776836322873362703900293437159689245293268051183145474303534512400849714109305186762129995567694892702478722957162238388885338111998333886177535797932937705264137494709497850375035950515460636792414545084453436291128206516687786276940158077957160906349208893971460170295688662327556958576919460616871453634477275188526398856349486741274544652059677773818373977500613618290627607727520237624688259569799099948836103943479910420979759464542626107347792127064653701454502473368196628070466605362213858118320475031287634731783395287253893573838069389889749445856381467534491337282545094291773093776710193122129349322695110443485270632564485291556365795928482086693879152931457322895338003755189938232655165471664877182152963275409647374831714575349234873886016666379599149956185523199832761066230601205267968506053826696986426663091658956317060777033906389236658711262408320491658863464957396482534596696410816772875725023860307013228246542823874594948783094342530417558932026616419973835745862636834806961625449357125387686271964871339504108081343329112169656497002195747998402465605015309908294130379255004898016109260380683803241836427681521257012328194461956041912238465969725740824065591094949182469412936538303768964294932746787633652916143803011230600311217637361864421483883708952660835693940900808008062609441673680525742282748018522324946252797480156011902035391432442832823381913369546013766877682216768866169674276611761217878758292448923509754425988422504831043280407500580864181758296368984032644703023862390604092172684839426124431494567268798787142589221008724192532973348996437628120198148022293514850495199732724111618002805201882200865513048943333238624012356398072711035276619871884629348978716301832902112293747178954092180989987638048136691527760057975674875336907385992707768631122798815227830976039127402818778024920074602333075437843171613198031529004122267548581184496365089075541169946771746487697224284437383107930318254985096109410908388660834423532575397606294398773327734422822250942528251985362140405344547542026073454572515362900224955440935698368105382921603911205805174762944354894568738868573692992655866615476427069712022287821805917848017876608828131006192998012216177541415341203154700906894923792394625225626777510025713696050549963236951145297075269152033265703837278515328627234125918835985289785574883850818173767263061016567768319328835863397610771757930485627625923346490513711087040732795935247132399378564336523765723079600644688393467101062757129501743121120573581818504837972251179074751624836606621211986507202695973409839798590608156740963186955843410510932927358470109297411822792201552141241747932339642327614216732300745085200044730630473109903494023149663404574928235571145345422053012731100935909808468470324485570995859381705616969134321108869748637396319770848239264771447955199474375333578091514832725755548881770251945021727273785260707069097322903944067538917874232679746802543773081174932394171953595158869517717351161626781538168925082068231798028837399191324267735106978075515531576772022130395826819823937458529510231275923098983003922921538933098695666862834811527094774197130620874734098502447399028877864488523922365989164729993458742251820661633287485059195080561647738964732710823718984001233907684588550510222793879611589781000278730922196766007182367735007743146845105258069942185582286655705116519027246387404364484053329289138228263411424708391668902528666777780361053618466064850473156267209607291533445539308785677955273401660716902439072063266399172295083349627387572769180622594641105059169585437848214876817755149570154883512789656178637301923751025129641569069958386480241434038554395887395054289584738714925011537398666108544213288900505142228857929951656174510084552805536980153141637495890229797017920632107056405983175858806979899489897779654960658137065306251518211622850275896103905437077914245818339566660370898553408485713149664655282553566502647563880129171483128706658550600489265327933862231794201044295307266354294090978670013902521209114186311806168768926758739806450917882884910062862435134473006125683263563610094274044699688315591646097331148351692502193433177468457079588373320804382229448079823088092820012950441817721626405118297870526985204124815433721147715651875599846008963054617137845682372412859683704419097304797613882292522345873679030384037077509078108323977274199289449381135016394154888426317869993641004769184704859643400829740257215725483023172304613595579251832289083557167645301660671914200107029734535912539098300312873519831445701645044565627803115290427212459643213475917333490464119727690345635044342497357302325222571528823559516105255736224269264739240905318639235947568312039702794750478989668522965683172568019311573266922540076102931362502033006103157207040452671053640864573730962132001736128931040603954581267880979292736963788630463927996550855116574799190685922467048724651239437989163516721773221249390154962363908899443295134946296327240046594345346565306510272003778706041131470355132888682691828757860214136644274788189626921901004510730372425734107709674415532416897383719833462477129230047259225304574334292604898935474931482721338898839536308608602309269352793752091369654147987672303543389529633902755546921554421730196047822260703613980070977081423585457657740970203186663195327758477220867719736276397287365722928846126514749847714263988230134386785011922151286695932690335897391530804162679541239405822691397959303649636989068063705966828505414616444307784204093529076806105636670885101601378109955572663844512396284462233825398826588885934801375880342352660473867885691530951877968429764933592236532899788843098832370442632809938373901546859539933485585720517312385874297983173807589761189386735919401790140961588054138427769444520665655989560280581045249862782725313114023759413562564313399432212755146978325570435875789503382025857429161242767179716749179318526449806386983131272414018562343531322334595201266024446317945351953631678455172660294098330559002493238998339159245809996529773494903281344774684445303130911323198918536499999146859623456049430320464909734255879192253863344181521227181188587347432243539432937634818247176662342510411448007885049255373210753215807219866730775759853216686153454125320761121045269498673111790785160359443658359993583499980639340671864954977767378668889632410770072832739026788608981136956623249837370718788981559665161647145264160510570392445269570810345190820549029989221196835278075207911473331030447540374665595613659236310006573502343642654503185598925953879087951633200930550624674484703722939080990164841843474265563930334248212963269003790621674353811875384466571926384558040917362156249989167432367445553592518724856525832361361120356093724934216647355250601194141271136471404105623723484009059583595309833224176223801832164353361020756686634411390955047556875739746275944925836808446840133174437795008576529450884553306323772827974067938870328890565750650642623968135199369218519950363052609918666897114037809992850846471588389330899693914472641348428322913479035308065498817139759034442195181303538226560152788879637028935884331011996291507619122869282113750486031207920360701939961074685967077496180929593688255025898482973438873780221384873527792810840605216294592400433804513252157103925715116130954342708580755544688991737271027096360823039584637712951112543358190470139693286995516074080943291671529668648674454630952640319115373681369509375334490565049632838856753649236539448344182236994723202763010770174333306200395053381980649638565224148233596189457791012768886321849046345983450960097761937129008964257431602020582956768270446350019496935420933676196235109716820954328515068684137290856825587700226894969730437941413109750250285806160786410728947796506137919312557508564581933590039168583146569004906454504870488685439514788893347375209830026585311472025605777232091300766460761491034451697409318475026731257780551446124133081167183792004779644739294284013910563002564359846994863996129395496406014128753055141526845309050053979890615909657616893072943085398815290853442622684319419316397767776171741014185424388722859744880155283916986886240019118895256889997919622261170083658911950920150378345040302592203743247097090786123171912983105706437458071482933031765514628810765386913407846429984636035347012886761648316386880499739194571365664722145817481426041086577779979957010344095284811010254428022443977150031211992365907637267991782482798040835819930323646660014248069094602837651613221563736510480064537118478131771146245707680972420564843092331534264950588590919941313998415319100740622387714373778122717634684151949003732789947131071595397003392305113568549399399524128524767166845023409918842927736368243299256285836131845493931755977317561982864572907668347825765729870112963358973931272379452537115142158011923410833601456303225058435559398247452742829746721900634597899693070199343940771062371836040134682361290101003975476612090032883659259181572761564524112631721011322326000031742388158555677569307292690224470060982939677469445822177993612897150081979174956061503892315705417952206887456809713752873703850012154212450715814288731668426748379137188625130430247457127129319507326340207986707248666480458856768247338601364779212342839956248686455966606114832960153854592578468444119859490501100461396763421150162882397639392925423465082220479427758144022447685753350855440762382956070410621033295286260796159375656496627787706974621321762209078805589135632948980812691150188985124188665230027962342416587494563991086872307710057895211661567493917045035571997839166278505393426231141218795075738080484029097382687647008368053562684730884780372102377654506450112252533028347015569324583822207070589842113294204696696882110764441574609352683859734311967158438359028670096112530753952668072230638495071151394553933374976162035552389995387324832189766323353906964969889053896379345917994685473654247878058207928192906528323137024492133371055183730452509182568459466633388333682148119845470258507091636527489359684343825907477396745004384696068252811011480161139281272557802851152185455887541052686024165700202134342534979136730026372069279187291198701884393846500291736775560818057769532607412887775732871973439603038553842230197633715706785811092593120001867887111460166618107522940309452662824631949458063936387690997432358219431697298966181447416442526450030696968907752098771958704793526824655062871544374032173115016619165507938942872922603948338462130299319329787138143914921938452942036100262473124848673686345392941776820766588215033589541292679849308063078064450118621571029561406410663413712440291337984284310312451241703026113878161216959028680151552960044810839013529990580847276349444756203178729841947043533144927807919845874576122743364521837828491036711484128154239071937602059551099724374524341482211138029365374760010374308356085619578115577988430102757480211426245822353796985478017668707206271740772868557457604343928480664151184907901172357019661697287572275667172390350384121755135061525971215416286401014908144003250120466846182225791318034164503911323416435321231441384951937280163169077161505242547462942319050526001496456573265339652680092516693868695428746504362856337191273109452534378940124992149685149481718859072527170275030602778441948661427521186537727475651325858229944844365769570721718549421416909193978452422201539032748849158490229892732352315143058113909998945134774358701568101286489986103931481591608012530744115945099100904518657086005278110951302498264407625879347450938403789446012802383832364835220139021245533717221932380467022182925746907261464601942164049506466730541467762475036856371665882722132484963568753350555946883717514148322209328446129630396685223964885900027664924898281399105030563742079411001130520566210460861170046891075413748976495401946621191347419190223963734531557139482767684052051688820760151670376165599419261276238791722142777631279689117835980093417034552496209703300173888970914960816267503879354840385933397057095222732392423443253337139656774342739594661821015286129321398804817178136712584312405136123954810335974112901997371019627817347004488450712425125143149738543293535126435694568789040744149188399317384703581753478819391727129482268132545252095874828415366662422276950489199257497851473258028812466135023532376689755339802974643773932925862386448848492282014516780914387258590234368495558694645062599517198400522553549458724560499246690692319709016581072185112458751547373495499855919856727785300006879526899147671131430679548915476520813891815261238290869031897844182496348420139591931673309307844725860715471513316319247165499391091890415746890818884686254016883224915443562371577795815742246941590977661429338742145490030116836719060309568784986284068930099656194069004371504544762379774166515159451304124327992966725834056512477194670622181960299117600261058439133454599473971313421410735948481387506074823005119094333326797401081877416716567681246090272637513311565689351482482472233692369530404080409718671337517771844180270382949567939910203586752065204174853567666777957955338062732609059391147671503678033453283429365127350805251765830963271060768555045802102189237195983025437811020702084212410275767505252354289944563700074268693595465632305227508380530865737334854691035138365332724822950286090329109695157527273694446333847513620591171861138700039045050435494736909738909855447653828078852538733858472325062793552348684616740568447927147363910953207383711832099506334895032072493552571942394202175717131144859506129084599563331060328408926477925928138405561884864603056203672455191479576926712347070348496841715363575712169451413957060614237863978998603472237020340977570181037089917104845138728533752165257485847260762494751545162917422891725766435337892999658934507446352716054536416199166988298611637652154273868190465789502345325226745221108828231423851783663205901579914643535210787442917853176503863794795085402889649606711972989202964030166851647754684267204277874203445509544128936869125577453853601649171390267094102622673824551305911364194247177984327848121187419461265621234227271605029024378544749690877124681333019341751695759360694134603331817345844669849642383878642522923180314626148730662845951368998286200472015452907941100076875875103987290345255740527903128196340104502345887471063955333006899014674624547654767954043299145108484259911076292798198348779302368753411454535023020449615069897319518519825743316107983854231893607108399323965909845393002861229207647772461598016702808045717029589060967288045023883073164112538783757137134412069739196640510580149294763716896622386892241824967323454888938123364127669065395114672686813504807129512888074644009066510991629596675402861171378794814850775689727151802074634646123590759124972988713248763543807815107409824812255182119485845840409563922344092527597728076478407734895701965685362636660673942031660039718370719005283148848937053801100051512693108179724729121695459131758689112602445269730341071438665224944427917266606444188410247265454722400608765167111471708385691366596257079367284492208407163831805349690073741109052374541407890707120426592490661352637650881222555186824496372914863594710033573238192019831707119067438095891636946890473924507213953916547728055541043282661237314052642673019367603288739866999038374851078762503820273897236751783221238367887604349630097686788869310918362081173017057977799826300972238521226813195662473365281904680589802797513160255435584360481422424338186713238474430818058618690823458173559996991316573808388963370397750283750918808501895772196131821176172848876489600714190646480161505692697193737194355479596110652344387234904361361213743755212811780926907336946622176626844181279959758122860671111771986973555509556897698678304264826920831750498788842172460281557483316665722686709060904013884622253155400797665271376496145369701426339344017149926040554995654107918402420425921775547590836037520576294791817271611543713284506478566069919674541443900873737200103334405621497835046864613031142012886751289216965798795874185961983740267212787148063471394921230926066228072283882192398031318203066320824438767312552326691913711642687826684995842170438562748315535333792197454947037289312893612379465265048138743322302616271824778790647248494048080797596195270619198754682049264046097925746186030900749662271745327329218251535610715268201781465485478715223254792824175056695434473332270987243710744768980811653192014685180362922028637410047903611739699291561343657342328114734519188541237245963105943902612441460301322842666546921801394297349374877402821526542677434193606744815780371226041121649300893206040105676736520229727001520831613461376456274371966676416360961280877023256377107264040366246104410038115285137761279092640662273356189139313871375939346397527976981586498772903839142981217656407687307446158651712399149108541666404779361180330280618690652614450298116635880739786064004518162760317940158715877185897807634568248740284716680918814355442951949005874061472367124235221224425487970143500802631599288175967012186088366510803914956613861623648817126156968075393134418922888598582563478928811662940602771388272786212708403903790539040672540488345517609508226454427877814742210845646798557454645021533326992395697715659205326522056861946325925981831672801727769458603100070684361809583919963262818281549224175066038931164517407897192456851458362536229587038676158196551383342214850937360966275420494255366579697478097621033462488074591630908924276412287877735381080899346731102064270134833579052458478244456806409575860780513655215250823997399583787263025182981005705845764448195465678009362227802344213709900929673547257318582950250327843410539375675307576753073229460110699609765582783435427709782927822933945657728057795352560221254913140953283076260047671874498668117047599724455003654293937062815934769649320106824310803185958246467870953822121371524276901027402735707680974573008600206104082769040728413530951284606834997125316135824849327368164528385485929433119301507511550150742934970043559468774619389637114094389574098564464460603564803174647254583717563578497881838308529544424061581435326130639491813540975148183924392227761019770716570776178643921241146904810963553151392792429220759680593035769365000327980583381877933336026386882068092337527735573029245599350500063859920177383128867532739438821837871025818353233117871544625696732578521763666789983741950031812942679973973806803412558329367552194303372425612243219395094033190528941309808020052509533294157736555729551640721442394716679984327802666707633387670898588468970661016430544173613277964861525198351289756868413759253296167659102702629661155571796092210118784796588050141624217796426267026499989001208282249202682543913345823192215655702101474281092250020765399128345166856028510935712540879903410389006328991182385376596110740007381303933351520666440965000390383431067958860104316086970572050246208482785683381812876256666901851791004284164402278669818840102114226170995849694478536758592685925417058105816722581128850542026118477048791284627476451997142492495458136555046715554419512760548257583052989319987927697844589244079873382337256592505964482511790401058369431990091896998319199589823571891007320994964572674093292666385013047693711001517555212779353379779553245528257838837235179363959327209098166674321736591174453683692927129418830101169412001821761557549947823021010549512772545561146349358153632271309093726006645910775483464587424068003991470061294775573245587588489242205895188199107867398707716221658293703890013192611643645553788117254361690125843965385133918472814867894231314967083924642613265128555798254528822817438761242900094919271776077526487895726508882037545083353977223491184042273579041548047523398512788705454277636750267670707830821352002116261959346878495596915587891824607173522216647465652280940599091185893219421367499296727784537590360730069510246820354908164440057966146255337395044665951302471507177148284534287141071573724677429775470391250032241103034651952337905359791628058751430525199705830031318300807231371350606951589611722001649485560055086075487183813296886505753623540264197713182809110596915958041817689684614214482073691714232164341042305004234330631022705448924200215712419611019674938801111412706271204715693536822891461456428344657308374119704485689851978362247254125768060934043803949137724396352932632463491971807375874259214074683756669716652049309797343375208229975037554643929891561427041094964241833212597362073841890741831310077023937628919002916616312532465702512124644896144904554139179620420706777013104716499305271330783620849063108607638336471922209159387117215865341666516060388422769005658522295487604150093551239104907854594053698157661692290782915485426672432780489861783804721968968617463800157678995686513360579921967677461550035084272825457137604694676805752135812935342926356556319502358129506804002217896357319489734399053758662994955955013504149137208101172580598025145778155274308608709130789069529034934866411280118408517001367062473869832733936467219685891241336070331951971971734574219880307329342949826215621331113433515976933792204072247654387288524664828845874333273374433944981182849251716091202193064102609818142758722913359516721710382565547072147924936311832228316199336881751727862813641745663259767273311673316628842289526246159338495974895254591604142063404672036829779925033850269191616767917815932504708823428309109897783820027505277815775393675568971721230228713798021702654133448433448956871685539760969613594086707495359215026234515324122973955859602716775456334024532554213547659284208096631292253665568889113993573165663038920589255415155364758737139181539947696892114376550003714217524422276484732498133231151895763482138451506646914382040763196835309137417422498747084197262050571414320616545570436426073176347447656015064053894727327686677038707504834675007369087803201843857205051091936696489665698027203474894376916918384070561494755638696106952452525294020441596739465112335039284621698575934276456888571939498716555574195801426288500840975169806522456423041772187300642864033533601123347768564538452761607802977098889877667175054287984419964408901394072293701664703904884096608212471178836966307152927662484319378080752950991736081611406266471814730856037459479410735284587967514289690433194165672598811594526497178127453840303151823357991028645286696515552785837585265718682422299430460989297912638235913049683993056739906984700084403797844628058748321463863767803145384304152296203106546913239786561721759894429585806716528406786307468340448570602859511476366386937193893522062468378950403964534564682836814940447756759690098194063417288726658478952530192742759380324290343954162725782430466230817496785090804768292110896338429568513899020889143121506484941311782029192041529868121354849472588301246155447424005207514165760519566837952379140084991083714328392910715149770708005615089933860032602863113421942095492356332111542032389782792268351285110609138386348069269985037168459711265555789473570777681624214672906904141624596431996961412260247930368839996366901252047461321960473610320378541599496357710951978762202232308410389413786667993952290490952529883243657216406852557470093982748756631202009009100598832356527145963102540827444878089269179691286379005594095112427429539345857298052307489579690327230830618285235892498512490937811965029217468301087348607693083274849308151796217192611063753128337188355835152495217680528428147307434172618597288396949163717690206604387164881570271570297527480834555723078208024583414297834974476708551388890022906790039347582182680663633512981637908174273034236192175944051026356534966299176675155202363393691458404493350681984205587670214747532446653256444132253657794190911616393157570099102609724210485069077899341769818332280497104292307177781149985672730387872690724780330656357395482253303147248122850424916862638363726926021090521817105858516533875694137176990038147401630777127151952508608282539471548409147759432695697997258695723796840568485187014329803173778752169015919107783465836053022057674896098060829334932088503382571853711233874995203857459574891325213446325588093383972854176236140165284900887137973808479999657055826328217567995387447965308369188330496639485677774728116047895414028683129890420191043635229393016596233120265925177536131725096334028313440888844126486123613033164470531339033870230860112002540611963799666497083165763355331672777298696201563645116388190533461482964394477632764635963863628472434949204083721809276442112407240063697223060862775624296237796818093768870191826613944566963880178610992056223363597891662487154142293568128637706462122465335059149335562084336002261950067358796372510677637207664139862464919947977647309365589583099996955867537420042308853200147186419677636038172320282482186336861055181599464716029819159700263756927609762610958249590102952522683403028247576272568708427248343223591631600794596118205984066818126608082873638231537401742336168175642926352245764259390663964067109695472426861814516399357662718474114713598913073788932336309167327685809283462028413056324609483768072528879654737383213297747595037224132650443094355439457674555575745686327845209747326673932279006525849229802089834392495855347770567393972456202860372673924514052583092051860317959016125468238693923225643885489208767625836161226115250603852213869880950868513835579595579301306151255515476296212465969223227896474085912144729481516388958351923430338669986633992011610857789729034353080014036576424711806496803470677465983495233305928384596181248079145917060242217761263290470704271219889918207940048170731935941964657385005784594110417954219641054330164108820933791086944274525333171815958145159208867417076618627265915212281762729188731090806913199223048059237433113087532440636815764313897566930899508101363027016085283895943090737619427801589068666346686130732146353490102353114850062748655485258953694681917300309664535467887617673799794641282213993880567125424102498208709890626858275501546795535450807295300441446867631502118405908965803533062680571287397613487949013031180882824770483466848856532729402065746972304638300342172963243804007799320885575737471990414957141572128135434491572963685779706938330259524287886722777623559798409947752134868332540757839442949097363190018856836159021079115856911030583074586325334290026556573567731972109214904475592873349734920078520794782411884250271529350501231605637488664837504029808758363664358345150065078184750590589643167211243606077948769257398817704364476540128715423354620499263833989748037835081748088722734419750127917860259663742244167573385335239780626931119303941932672796211338615920345138219618593024853957547256600971432089427173134062757162076916846472221455147479116214092877505630138885724705727038954804823695455598390434157645345543663461640443832586112001237251627938133034397378581364831725232262434439611206062857801294847034660274081714538536820492575354562171826114555992711043957988826840728396773640645092786669796202445971846979743186440547539833597973415754798538872274462955237397643767673753721323445319304321440587811394691498170816518492154883027393389831975072811404876243315789844567235803118394128390071678819064317517910323348565019406577812217265427870100916388640465277444232549022024156611933635650504246712451574443646298479218167004853408493818139042202497525565869436258390875527869055946724686314794537762867795219313483144852131544876738421820790962105890106813415091363853043486495019570993540569051519634122105760122251389384186187079876251551658325738924711993247633849397492024678204548136808804341344657199768438113201023879679803645012121675351107764114106041598771077939506979536205597856851926919432091676823137637001714203177380561532812185613023596780961458805255186716275934607705260586913623799381448856706030884971599578663970388499318053723611786611637348515077512936704732178225605344392551587891249805462113877993869815314373561165609421855074763284673710680418551502009506057728954758872969937724863060830893950435128947888728560274041273336934763890743228793308189493803321790064290986131933020418689296649958608673073952392370616494481239252595821842015061233534917641763035830079122486399921630063349568493250262134766402425535650255275003395172652425342634622579531880763822668566555941341874117516599295609706099956895293942760865634766875863050252779092474813280407471599939991074440701706380404365406665899733471567293291669900016067970761420027802450069992477917020058779601527587336776742829083796060147394472508747438679260338149730814098930465483484432167303814463760120552079360804543736074127147356355929859129750106318460718637783472658125326472175516348827125692521825475171303496195404546707209291072722075927081524326399094519669137518327228133406349539720411598780281571476198113797065015418737536393411999109996130071682607050670918037583523886823900817050335974361599111315238214604323649598449928898483931023709170973550963154434250577678198989765146757061806726346904464917086080322387908677039385054504987026168906264592827077951771325524365133744395139999222917145088286755364513487353240408469504979364041584278058433790501683835961776320548789396551301316352818316016161817731525479616078069757534512213355718704880438404349359870959985834511301273113859674265131660445630328313749557949144718322019987032727450493506198040505688961474152873167145118570755155810138679071074182262628744328701861616197011395220637235020929579227189569918880003111802593845926985813406043759522511796461515517994654414824874354647303973424743753781111702862051398127508951796013217833917773101954461302136791538966932713377035505632515853262277648233563638449658723577796230634089926960431676857810385618800304278188037458860291277750315563443492170433846373616655583568070057666043774801086342615377465727570416701408506837118374817075779524304137043368553801278736339780563719468416159376678396865711860935247112968271579902320476119107630256462318298090865956542616032814742291120422886010469946009229205282012385153954257556524609678629933049426378307293985297416032071291637576623056204926206104746159586864846337489281064616473223149655107313525628838457740153543242925974942854787539265601395108662447727192581262610209886752998261706788229254068883979365832654712907222793241119482547524454043462725643446990325783116933022988642230945369666108771414839875268156885618653238082998447738663981298940955565804874940715856623477107035212002521651336145679666476297972414997210421672536661991036476666561803522704751719199794408054179083749421141408446404835794316197320265521195131375826694109623267154293006273036911938915879293360901781174836712827880474876867507633257995347685663408341054499940620712161051619454819174311319782258152747291369279800886365663732590215612765990679058019380308891460164964215686153403182429859909693560918929209552397764742054231672256797302957973698305526764849518606085408277848237090874402088395938499043202578917694260589942309220761207036702540385339396145817467700904942408301870580032077942196207523528039035864681608199820637719891679599104226348574518968148900832378649274038941919593703383345638228886478437965353305152367639645297536498981540661520278961119767538208795936975757804628582516680388357604046173459931703965421305400399558022478797108061279176146594997019223774165333900558714749150232379029042709848101225136783931884664182183104899081686566385677404974170727560462145256487478168743157142055424768495420450253363173669850336010234230451604060039029020795215191085789841774029075193958644768318893000750347829763621900026748330810444283610505395737642829905443696907677476067344847435198230467382893213577255404086062881255035115717054805549243447291063430897285934729924658469030858953398081556413915669783070915178309519495950212287906453431250982970287371471888948380784599226035828349370608545197817029914727772462871050240709300146318370855985295562291165175028140366012854486513510029813958326047080375428847768014160841842817991302226316597730594969251645757488895825915929789129183406638025157694011239160019942659116925423705010273571493011869130239950497045273655773718531535769289931591151436687605265726785406443848344924997507564304847318433250618271658339688735057996855729102310379213098613611268655118299187429889779676603922880119591197358948421548631495985670213260350678382621484114173656824551629335669580912979351852439532578424472479756022314574267695291844650101661354170992758995342295141327840761108824884906952026133582348543051262711049044601736316030628084943028471187626260336131482104295491248293538568105974906034648917616787614019014794933224283708406556637543965868166063145368807664419152673009769738510825988176912118368188291378242185336843020101577639017518184802550222381811576164395528122322533218399275234497789242866011983167232569932745788132071650148127826407577879474364588784767331607205761715897483488697675020316180995807179566215635707861212111509571406020892757355211789832231727741881671215926886533366079628777969567749507596869529491100747103559624116171517546537411229106479579993939115016777058826270426880535789633193168735613094681385237262577017389640892720540934376549820146556937167679815983480918573869622595645377419658993706205308607848603738749540599422524734271289445998532425920823905250375918524813507154423809193992878313698179501868771236977375825598586740858670182559537497724670165179430712665309434970008447628770916963662995973858438017894902738706817559921972443723407950982008558612526770919000168399177090808040512989080264066356045613990584311900509595063981228309327122396261976517530896847756364103637091554334704845991020806310309341332221877211471733355237194051572606223884690990369071688347288570899309462968329398025476232269399627947191874971911078765001754283480940535932623403860326663755109556639012664490277443310481492105402115442966192288988143814760745161070113095428073912066116767144734761409694696911201331460949069840012384437879698095574678387533582326669068543569886261892585043268796853902368815753618529277341596645357420092808767211400919223180729116154020380852678171424265966048287777212894390207778031353845664190659642241578111423679997337236176563563902125798968579377554395619313793325931157942489122538708508630587524626979602556574590969004808584280412292687636697460977394818263879849651929931645573567499251198992127403986979740310493131806026545724070213139266432060721463634984962622104437569230642193205417623996918345399242718999423593875483973723804675162813208881006679662714279272968164423022411842378823926191342197693741972670043231003699631564054558461129073112470675917646460825433586410484504833399441067409567589805141230190687945653242731041195775219502519998603414348557181945858818399088418411626445248261842606781574857154979871272929550449658458993314298937355874842342449663003571179430380739725060908974018112558396637810622010270881777691460061859304503872873938454835310402549238517059717256493142043673954602230323557911825040228918799944660220884632485676940106751403321739487282234843853498943658763331904064764407045450461182029193375543349798515168767979272896851682620407728123870655046978456305815217548605869240358097685683147642443274122483011139699562858050384671463792843708501729436481404209382813937814384409036199250251357030838007541952129869453748526253420455969344901504762506699438190796483119066854266018140982361386753132308769501831663034661470032106391452980652421911254799594127807108432064374508288813027566114426713046361867548286110738684918890627828751950214825460895091317961375315074727524144667056049620152751344392003598617609507678928205242735149781033631985086481749717978843899948073052813509866941243586200322827347889198909705707372357777491919355416575041960257910227250278187492979508889877404853309581569013757109031392248705313782894317330843056096238430182498907008713395832944632750948408244773642800113698813518556701723628469326719672190188464702762333831585939901148231794979747935760313794096897977053372394660983845096368513885347802687229291836503245583101700022104392265773603293018339373749662922803868793098065484466428838231335385528414400491980288746264261475843682649383476383573759526685104609861299363378416929315197836080546388639935367467644302343959054502504015882454679556897867926046519268187600419424640992603445797621255658064097540042827040229994568948329071611058783841144300360851243985063213978595204659650925315552070719761105103527065504940518528331445645260680043167684596681163391318878305638327322632704968926667309730736403961499017985473179355517085630602945019500939120070404112052884065224187644017824057324140940188348717761284857521726817539292994728910030270316830691326669770604765470699633355120057237437152647395702260898023558677413974303093579739277378055429970498073437006223157325652075363913493461419725150235455761072807230474654160264581868342080157470664468934771385685654769948971231172785508610585939144271656562598145661240700765970698635589151261395459695444838231211213847422055054348546407941193075186739380090581852661773259919987275238681470321143853284288882569153175907309464513949125111156433186131845791868011249078554934201891589983074876207251590295491024758763150504397311601035416485401427415916917233847222731362387150340580639025632596732270014332204453009251768484087867181360261888219126399015775738283932370456158039001878099904332359626041236479607737209427255985857337097790671677400250062519648336073625525813877404720347345284408492217145467317253708492372387307391634415003601215326072730352503614620046871910770984230050165579624434781202252781934025347543167946157279627520642747254059537852910166490416906318375086922093362132323829270559572988407434113644150400262964488540097887344138082125146328956842448003660567304617245079677345163696408704912342319679752350236459832397348095091116579147468292943146829965391012355052419195491049865164533692061850552343176551443814816433003922137189096553244046830842032617668911964312633611471603563573123563981398654464209771416364609410242747706564750137687684148540160611174638203091950974900160643788487973264458413675342678162669796746893771308458250931552072848074798546462082947833876820610288175205123182469820617548389849808619806118086873958860642512753313705685734232283809483949988738616909399758245733019153050838301171739934335334391683505740172993243143789848472455064549394738621966296085653122547173311620306574971036452733559446033869282958004298907425646110783655984493514031993917323754192422763286591737361813370319296563425092128178870153881020682304789852103023976380066048790565482710593631148509873306476760599770499237171936188551312067073969174124973870289130767602651717310430282579866927699567329924773762022179223381580955846375458546356868386859248042400766556079268587927519541020268327689864764650519767323920977350243313371071287472580388603610065970183001919131358362230941188749652512587260234761417556261938449624027620076180012111951079006168565405117893186415522064851862912295829449072072428567468016716683312785014663365181007007025166393476307516690665261771084548368385640104147327593623062429408845057854972931709251381784076525546405201556289112963114549988066725990886468128498539901327894797758640181399764992522257003867547306756447569638314468560978869098010013642728391952321022635468479600699048977620581558654269248093169541807800192244432122533251516690292603981077435010779110940797788764434490025297873247449241353909466448103673281695895708468360570360889217899417276100876609353675524533114874631117911865567729565074524181582784508295238518094710069073093017194069839956464660213148766138716916438432217353696792584984106623048366926601150276578154525716961092040953506522250470814581237901909512263974380050189126934497536809286392751106237229890357583997377127140293993451077926261200923799454813787665234043973873884264609629000028756183827409009009541812826232661880072705396460281942271025237027252958481767431038878545446388274059679804644602156964338576484748646527183317997457904138117381724796692465401895440254597981550555335151649970269843826971036155683416422744445904605956727926647816840815791388956801276472355902455440230228411272666848082121562596380656546193439217601649399315870297613101796872046581985293358916734140547937660316246652632116033503433820395166765627270696172361662925105240514102946849296552683965659153578094480558184570998582414029733614996114746095202464266836336429362136041348606839257529471651675373756253583273691673463374690131394197553412502104776190530228243984031372248630324489538237238550322393162132862251479403993993281808474743556992577848891353855500979118725681452162960798970612612071316221561208837221030049566390998977805702962279179951677865405090005207841090416694005814091740115362688339447531163588137705573831825469110639188045019977279360681913012186856637060038781458594439323272019645471023422078980249083361918133378755843590613568258550354388210781927545824360547627583851844106831431536251377220422768432169528891643638389630433659002443603567726348296840558785779889907425032077095472644348092390119131903190020951644521286460820120944438656267681937489600589417749081473274385507870306339910428300959557932940601932522317013558348261422218125344726654772482539470853117398218629588043334142260449288101049784062579254924152542028649345955080864321804753291397340748902484985157138262658025764899931448782180864341262751290383610501944915670309940819300072202130576878758960382199428993409441541818211427842134565507883611322742000920254536793006093462396493773868814112765367950770831572565101794460862694520114186504877544814878171918756452474052080532899262673808805785638846652556994472926653062090626485960848806728431761046152892599273235731781976285993287496138838921873093071667159137746196866340478534904583567927563159980051135275884448280897403328239856186771281635526753074756050269505134245776972783230419756476277398561025806551959248729589924795822627110828734297246962228287298066103920392694913130380803484987314502861585536465271932840969211956305589068848999928193476829830875069421482925257458022567977572201647950528680450187592557269631174574530851088841215584738550138948570121717552836349599011101392109928666165998379474575530131770366908070155737828462104808715065651126759788600593749194210434071097299304337742171255251566929466014868279550919591186985658939969940660378509161829832951966337791890477667281718465144903037141866677149160722875203525166020690753101957054703176071256446454385296056246535985359301215001106845067205354997809570483003918724995659887395503123016586087388616006196823324181663299381467835247572631161751857020350846069725509721525432711907508710039973697427948674665511878021257024684033772531142904023084685660472467862490461943773869683336356015563971426086087408370687501777525310871363161399423272182284568682795635305623953575339962852903679431770991846098041266406762166359883966092044401065645865750660635073415079365511756693762768885725455836735737023107627594737755380868925877839826929002051352897856962414301203207832963883037760508354327579174755355858397514884523455995266158303555750162150456746886251450638771844071591597914652149758495742657181779716885067949098769302696234490300704925508838541726877812024254574204346824737538384494101852268454066542337088889697767144953004519185304443951076628517404538916279534112528410396179826719116642237552971373203610190691765703376725182350647593585403737920146617956176351639272890474072468452102565102873980552516528047779930192659819114341440900310141075313546106205894701122655046036812886127545864633026780318795216375366518303094214667230748368386423782084802679716290589515184893840820087285541857657975203210995356802779766364902150402687136117564139657368237505069486357485200947364076098320163866973594403793465215258737095315906104119590103833108173727865145710644516289658856419835895634655230840105889246229768682770454963832716846815558240607253962470385321922707038920048657979661350167547779026256467468400406758875708917682852117533851688490301073121604352942472307794837141989833638956500157138093262403376400063008743584479979154815175597709880633132971960214777382204002246144329953951309106100323668738790777765449558077238704994046536900485452778793978545602538214495506549769568574514577100365333109002379318921983975084691356990698375712876142722152549655488832005255737633930370824160969838468165153112945359212620122783380109649602018804935625223956597660626690573257183312635665836788335767927785758920978403106368734762523169922100121285083683395934302914256325198148118188930467521879571675611779859879714308809499476618935113686352865102915852943922885964215489539504830464420437907242739729038203688438285716641063922123123720786111102351930121565258555389056247211593518139966121848501611110539537224784716369855186219907993053120709997099015078516295322232397772724629284826696604268489417843884634820681060265731210675927999032474023845313884269850777253448819590395018599349035854993592647567677710989500381314403199110500673503750752482637249226710973033327829492241213777094191145739936715751619850711044983498874998881117521219571694243050579494666434359759693605359888676787355078055822241780225076915319205283381495837935223610765232144790463359561742523948472825010619035886958191247574561030285764728654407507910446074387815629643542545939329355057827443530189231928041534061964137738217328910968390199945035807530994335628792412997631118654807819482274872365018194139223421960249516337394197449562686359210314319757778620242692182144601889449635185506345101706295053050151798789435380018845780748988707607233607738749802682318394048416347410667866022844052423804301883815581028579331186214458685320966450794485020919000332552880096484345222249640724321329148511958788424905197694528304340715810129452650023658371594220801450220648063435657232481862318890208610170603132559527630409500486019147330256877631935988192679074016188426208537312061780567845801744802503018040606773757615020686326643003140419185335671037813997706520448873516451039911863156065408866311949160007390481431112424463094788599410255554967828679367078816017649341792259825081478718703557858307983748027169673384823496100341295475610087190272324692348801775398659574288385727046677583333837077569642363328186625281278925430512220294924908516569340092368530989744949182682236664278199874901849194102586902471600143547277958919688755339536364673887196987112208794485630657796545054754739921676039003710424457576844499437901771708485374257993124737784213565166844370963274433690797279809436606716750759347261003107404014371568813533918599535442338673350543540383524910202961148790838408651159485488550413565898229172854737134798154488840082090977420730968843469206946653535494061453656961727341908196126167570024518885175444555321768819729023865117878285580373687455331983721427386023537797580021327827631539447884668237579475373333486137436598043215450041575472479774324183925537554461203409567383018076399567077244099033159708716350820955341644084464678307247985490268048562617046234910447622524902186424478774598985160074666205460376054956200531405856558333238616963860705217801774049727707632125219811939679218480198812124666774079221282614374807900875735299559406118559632090373710860414684100638914321644488043814306272893617062559097883868131045477732824952884917461728455601591413367821964693643117588106235728300326148250193484982079920263964262708041820105969265956529695322331821817833168027600410067100555906341126118571416963532945637009699033949467542667289383167093801446818717347802720028945661881055797353871619101863966815112953833356327730795318336315464725629118636397843704948552142644860625778731620328870785335892107545069373228928985679523930900709565938663351475447836242700093300725180468044759211797493757808206247807008722348448100676013536117649019190697051644428004239574773315890297615923721055987225360537558524569655708902922471510819061066024209490440001559613260872307457142848894848347092646329874478367116238790639082506321168225903881151543334380861613387390063029589835693611964939341230560092781783390188093255828823679048204461789423749325043547195193476573713694565945358857551997919068490755779033483360403577047498801966887486944867282530355507090714338823799425605873227510224031675800208890606480424089950283280924735970345910733816400461835419695099113670432313525575233226093143587166608882369643951912764999699908559379541417849382545600747769617335339503890172834606032571263502015926674599589201219244082105630147288405012966918355520864018404767601806122727841854862448582019048463803925074481528634453233945879153683804157879169774935267868030844267342239343417597770714808480177521945817929726915017916759342520856859607918737168148018028176396283633554193363662168598315492514347520420643005681362666181464013380441104864668919638565935261568580564701929006014957654753962063261374464226838027282722805999206530201760528168253034752660803602526099925633646184119003361523155268788105092124809977773986521009093940798579201088676478681098628468241971776012275295081797737224486762993077111806820397397837671375184360907520864871688573200831594888423993235305091823848450568766620057973016724274564869215418251537122047084647860148572368872598812441101738516353705368753140702670139264088383135813624017511508162797549274921932086329505356552760149087145123893863393737926253182272763497829267552101192385061572723125626521018664055855840543734058129717557266304396352333457486119285502252970467871430006875206383133846381497012879840828525396617887786607270916063767374833867082860678941058571269501104178135210721788655372889736343046855588820406511173674420054780562702973969485077305526616298889866467716950007931910304916713844497233337800160589789372616124724622952567673243126623835377677646843379753070732956843163479700630240760896710879612273008149374618711386970312703503678095865455776508818902286786498879556465735623117468487298307201134134497445446078480557898047323719901821840105221282359701215743139825292190890506577752470781395889491956743266060295252691226938216048045711609427301495979978086095986636129268662707747061658481161514488673735157662572316530670880920696074745377580940392203764489671752898948136614075903295016227610898139230141883825039282693339484938110699588179831271971030784597736396959929041443204426077890733754662448358350467939930384719580230415522555424603381340323999290649766700699966138631180584232558990250848452304512755966254924659140025072890233211669723215928855438726070286703755490564304678778251432330239291320683824677846862022702918085921809028946229790732763470338400072194010543322241433065774662824618426921782519981622285050692197679274756092849216323036449930966890579433747620173807868822565009138248936224883342622211163415415618753034077011432446945409590534933307421506229729956390106845942046341830255718307477416176219377813724666797440383613633593185216990034688452219041650772899655973090249864487186276592639990695202147293055897892976601160080246937710735525896922674035707015731422199822912718932242343532847766266700504016590246274828191481484066499714682773915465162334722234405491791848250218283827043817136754401705810803022920463238026147558227440386404754076831088438348740654406179007441309134262333020103160174434953526580979907991347866621889711957113583362401634171166622018298019307658436178438793722159544629527277801476392316373193392038359458002111895745720483860992049167415382172427920945386281913722596134673962557564098319858461416085496908775555796938842430999689618356567089604574538064848721085692099801241316332155528669425011075317180698856081334906235940091743078124978759352831337951476358146232561884930378248012677043327702034456302744183050529625656035285659046415624773246557572508792266839620471855446448910345624553519097761630057920881454561259174006454521785444663812550300814441824242076461148290702445064356428199550128576454234525379571792706500133283745279218757076019174481367431242130241271564169836392272064845154006993042252258717358799057398385183684842744225174645093865737242795718146819714945229321979747436341079292854531080284505577676245538099323615802607160316630054911813334240205970842355066972649205148163764306194510498798909756508727503425587376050630702687640701426082503030510980198601181592119699897333626638852651883393726472754940082207672187031519020920753854223169421590427062578753094816384394173473429757077791569848231777982352448680291677159984647045896180010385566249563133207786422860776067667446417427616800916738391224069903332116955543918417687620952983212976071857970364638189216219114102240036266849937737463498044656450962087515881088345539076830283620021360344603036875131622081836344147863027741176959168212064391592537048550679795208793283869118245261318359443379726333642749359768292843396429492627542630834669887290098349891664631019837444915247848475301698977103302622332118999047025844521042538068736391478005000325298900916168230642993637465900348889420080746228011406737542134384938587363888090846006031275981835221377108165388255065382188476909883560562151697928543268492615175579982805433875668387870063824069412776655631134988132217709426768427383976881618440577763338481381200343195220288499513554068230479472755117442629402867306383634491990973461039845374781293865744620336920945417412698710279891982599743203550260644259551330431675257620416955762284299144614436813646897472486751417288668216874051206796110516350916297140571130343477565672914884139101310028208908993917704865253774728064666978130069737142736611349761946076971720021580022775451034222218520104687101541313570298865916037380038815016268231238386972167242864602073445578718912581797047304943183598827584432775044049831160189459445753948904918515871687712653290542088378803435128503093775635869042721908069415781614695557341880677452897222193843311758181234920350493969363872982500921496124052239332483361947129231499946566824384717888966389893045766806462596350978769509108107735970860295945027120132623164597376456691939187957325256490692330474705860500653920792372699618362918197751733604576161962205497562896876361450002293452353678753010762450142269377050757479511497712426603597651396354001979017072641678408042246507041287888813989399863656172037099936569507771738353287681937409434456665721042598928882430887861224493093961529879888160643038824417882408442476183466179307794592967793086637679580122227901686961959274186426618177095823883293242943789159353538450562717740265310425475767596283751971521918091629711308149170743516999406698294187605923857282991067037914600697039270395799559310915915437175138955708304108114156966813789584899570120466377268570861439222669059430136206344875302347460327963292749452871724942303942699737697967657903919833207870281636413259234264237854818023828116741708199589035601313590034080449260358449448551864071341067975205779159021829843786524187470696567752671446695790856185479430059424309568515691637216833422013759303138468377718475717637355143872012510514206668155017133386749970149242310509658698126829211832429958474904541745667213091440342549720152029102653394369901597387230538472382114346854994146129381086987361126933360266289327116684802714014251438654618731861850334910623048427361328181174008741756462460653550013346930531568810517078592006594882984326851300291513055938676028556401763331756867749779841908760752943434369511130195158606975797212708463845872620095881671881797389364725347899308944731409058069324797825554634486389506334469523545246080168659012466872691938041919061223297186908228987933893247781328405109087857199228419043885166552910182086861772811850383263254114945457965664860441693813128227376713319145501087505267802332201073527022779034401996757862416398449237302271883259215847296950236587113714687874052916669920275929923371353577616919864436275584625224862364255465313630205387940834128368541389140573405247052833548922295506395826412825210708611776904581397404526317408348075924217402961442579513384855638977417257270355739198916073849921837840748440563007094748029224886967673321489146830128348793481410591963412046560964421031650784384601432170501389430143744932893079297573884655589546951625143987924207443948402022223728513199180867790049212953235826974055520874273791196517173030027833869368400867751691631581878384658739711530946019245976192978384656405651583262160787706623727352753024333113499560864470374746707329819723083431178194376689767436188004685786570931361979360233898591042390942761897336536068391098597650677737143750350300511761329969485900970306817612002863585694969516628695662127194290510945881688846668168170313015383038723870752201649291295002570601824825692660032345215215421455751793445817659365328401836732530981752412037563449843603303469121874910108243734385451295333358999694944980483016362228808711428254932957324061847369332705710730521503716048683679661942106496887918498299172694872471396323134521415146119084841760302166417691715545474362597708562655237150128480411239335063434970418610748896390634330810493290221624368196728504557714881908194887592023312264704940700877671374141680147156287640680675131906496388200592906510161049979035351223853235294413716201973535570137679325915606344295647529532687125094153443033814588013285889628032244680429516250040304575507153390667531442163383612362100704519861423358798142308859649433487902580448092267502043940153031746822199919646681079567224796068595324588253820419122350716142407567603115835175710720632734860714482971774009672355543354350817842600896926758477429672047336531887221340057583510326947259136287255589311558471046536948997361186414589065499513143415008520478141726119019937744095529605179025992054292146660327005475515244555964135964652964171834562102904188837991345231570849060686280806951130507427455620189064347580267744495992333426019045277881560954934900911494799539014846102626162584612831953953669414662721243452500787782307382406222769546017280971854151191463728122275334978403217552031140928400503040593163452747668890301741639382573287221681463961074466776849897300971283078626466783987472403835493565595967716852163659191786985499411561903011181119128346650474504888033468449649758155815527159969463382825336319065501471358775628723276448441516447008579481860915974543869891891373966960995956580513957690803903177329272394874881001619635780920494238681167037456396152787829568154727408401929743212676052192895446285495923580957223018899312079943549324929366650396890075515044705828725643045988414579373285515835908298630845408607411356531761169577085166933412533681152348153145520171828797932525847072838940971504971084790027685377643124378226696857463027458576619803505012976157837754591183403077502639674339879566918245749651077925928861385343995669960727405094060603363826981832348754288362882248774043648332912751233062237718794745258495265539929828614909353397991416678667391176468095462441706663120267405776311625762559116033915120928227073162721815159294424544267118079558277627904265927635133262501399272816935551167716057166773919327569629994303423429661699458862239563848391680203827589511952373125821685693581656402555514743751833671836092449870977539214874617232614301017682672086474055263000717168693641360967930156864410725212461344976115664390556288947374684222559971940719375601557634501586482408106683762512268936677011188011953129869995590475173542941330687452752540431926817060769890323465470844593950798532853511972010305133432622298298352254107937821908940779992271073352619259265591719559833879019993830167647628425030235824497514100396581647464152429195300119006680034564098694341217192071049564490583229994223919212274443041312948918783119549541833518326484357726332240116211924548885597050779992644405916261068716463913380384897414692769354321689044691871415093756607432868926787538006842656755264010442467522770711963960971974578560529858780145252199979086513905778746986948885574252256131658159749440578765549662517932166346511889133588521287633700096521136315607067325946237512912543655729683289472799175776013166700323332054232483242336116264843316307716561881567232238153984744284644309770082436714999613881169688606050303774239661284598328750315091323846509071197646130795845815680292421569801354683457429329922054394594486661832916179844146148416071681980667943383736589485801401901654847475057985605602029358176611938957852594811969002470264453249288505300214964766288780750241272070494888192005032965470570761217924652394519274188583454722096905785628788278677165346703201052210120494626104725354459671638458469837520920641526728296737175168150922338021977894028916960960391899564861110129858762260505065956181765554409822497993012467089689466501564682617961922194855653275917694571225194946813732943995413328688969914559838920108646540160704186212641965484525451433960591436376681550996956726201219125434606178872805259475768451808667742300251763630307440582823001283405413828474060793059608378019100262551851259207329528679728779948966699085458487960048963468158651813780072313596967921583540746906051772425905524344652210802902956090993934553130082904889849326729003504373688179189984178577569639816567874269072091625972285928336710172102791463099100252896453918026064417027839266890142156036159139453948921126204094192995885811403546958336844994780363436606634801517005828140996738870969556345513882594555045727902331477818826741736789056106920496237703910274964652826712176835293255839341504166984184642986488644864242403934290986229093270589401739509280914196328124428470756387962641901666639225368038138845881611813920665425186831909113546627713731861496031248692942604150882540228392940110168312318422395967111286281454635107118753859086847205479876975742775159044536042740742094184532161467667456394063779945566135027860851156252526088717703736586380571836930095003930521469041165860974579248253355112308002504043244981858300535627936346980669723366448509655713857883367290545242309799970295316458047636628049227267935659315862311230809163458380147401598611507864184624060076372869828194674327423636522442858623461159202817203418601743955626334472032654451921786425988672547852222379393871993841416628990931716351360327071028349679400411386890033889625498220067544619196881623447799593677168666831152186160775975475547340229710948695045942838073452032601913952939321441683474158880692566292057435837972841435550731976409515675483526205169623149035446577012061021681876228713938529683316690763748789791935300890076586740284641733615875511698949757000159536430202518236996762341184628578080614245278437485004100227756607027211457348618643133161223665394018503566262575885559073303230580617722338012051864584384750096432684824585720750836782376137296803359856025838400756361911322073950555362372502687316917914343514613482648901736573100457031484218992037552895433145692890984804247148299056466068565541269854119093102426442925707995635094983604663457265166659859116232012177692705819750531296324918144332590350375777581896625633993018198346385490494552151976056048353363935582961288353290684991076187441660969076879324816330351576293362187844644761435475864179491563924135918132461986943590715892051844528847511836609542730364571333988614898090973869867694020948999847793259864140003205659365680268360746967580986592829435187393684420086508264346753499379578345256430012988149614604427121668516007717869151811661310035824823984227646612530761341159088062419355790598109930104925352259717834186124416247542771351393827901239782992483152914405132864845284725272619781834714317592831631607848284870925504929685339280977356997767676029107552474292593355257347224943529699821532091959330970346440607064850467350043887784255103395188961187276693406830916569967668378900949368335149393272751914177476297303848324621928208451433074973503024813802964871017066462929392869348338029124056741811045245783957609498927953093102106519267435798885600756135744679521486761994868135734990342307884234624916658035909490513139663136163303688148499094109419344681264046582202972955763960673777864647244767514361308971680454422173469667222152162557208793155928387642471850207197772685838535392371312591295213617341794439845536718044735096761136445699326470070257249510335458227872846546933672375036089455169650553360409787882692317111089232330269786395354139553686200832068523566249869522769426751581452606133370480774123982538508111420951836762155609856261227119805974355104621211088100642838021663312032556314885348495854901991920532865188909602870840771716435342873825073237078745990850087861312955584213220769977644485198415792781672376221069261087159116113886015912278549370598519851309265202549192657589375412074728656182528157430487915790573501158129740992338345307106067805456696919048133133703692438288127100871030065648701535586763942398928688152745452617290787731796173420730734537544592743358567113985594591591531878444553657826785325554233449336374942421300013786151766674026849846582052091646187411855939205248098815888319283134642544042492614091667975234863282193564062114491986276436264153053467691814907914556249577401011745816928637444874236749104168225485121440050338264141140785470847456148151940795238360218099533517131167586248066814650051973926421202835620614412815893956820854136609452684670781152614858568960029218574469614132560277193743100613208525150337829590636537679844542227727718249418507214206695054468032836366100420173324593756174875673035967706900427782652466214357838319150117223994221328377774834560130327853154495888703022345565542237090887163223845679770189912773200719058713048920907546867133926167257353830097398171708822540237959565708779851868295947983281268920990141647161938345528998147459528512696362761983922051874014500459031671849442234074735579777365284485498055869915064008584768992703633356994164131148393333672417088893744198134304558118538635972159663725696461507843904596742592996891362868292038929600446827808336121445841462573932815588689051079906626205317397259196087770150599846628250163900367484233650081376101426792058362281854634837750449550060062542475836158546522481543162131922097141963648828054818571255451753932624120461117862051752413452294749220424072030926830000279159997194416145132039017351586673700677077470540645080364964620941043018566283356576692101622437958538082651323909010301016024774250060225642534519581760731935710102694506318624726358537264379196884310391281557306415853661659976401502652279382799622486484438542428458732823441124541897233378119445556577359059087645623324743659057261977900872174514101790394310647245631485284962337992131516846109611429597081143548252988849825723682327380854651909113997952688113673837344154930546983704549279739437725091241494394903502223292587365521499215412832924006032857048265453426932482094553118400356123960161730676624076479619510557466984009383296991677048852580465344958758307945927068205273349833692149686367503349463261049486480111364285018532308788223663729233729763481495470270680348334680716604921617821339255921291813995481368791990147240726847213291130936344209781888943535884408640395048431408434553277634118225453917170303731853990151943218980372556647161194336107184622140967665520169797397898508759828431773717077140512408840556811757046828165921447043394824117000765137571142809230470796577135889078130308327680438446425711170362754366927978801581984899802468051220951484184450603860945006424842338017560691273975337340439186422223812019355462394857441985092305119662002118603882347701333735159987503925971515969155466574243842643093336737323258517479426043343876694957272056703229856684519183632945744148029837106621098035558862838999749581679366527007612971818818872128334031645956983203304534730148764835802331008210713191888290492707643507513982829428711539316309247802315873190233301117078236044597365383508461953171975932109324994139353328421483756610385876081233176888884532822222010925743721162860809666341757970416946208280847567590897731058757436125600979565462338601233616141161606275799586352439256885373555008643060825775929237738947005051210256472535556015586451877144043423646001711551363508949306290283716735715150887155221507246542704867151676465742260290966616591579017980296842449166379958481451197983143146863615203498458967762994772529753549862218872295486255101843039239760736178295905489258561958669560332084381328442128252522320236287219113760623855855842518235649131287674004150238187666183792455122208601302499842444457913692753153086966626242197386978684532999203087058285302730689798010604298942381335465130024814951882245630139696551414935686086738107732541887031450331708731952641802639538083749394486557728481071224848063850609135673407927731925054130888643861058041377293762245527754205682224206323302315512137656123731835915155362666677447573916243673560018655342722394495877392381535695125718795372662644733921945416833244429735756515419680100327711946232832916679740916603786442779900218038234909119943785413912757005968155183624705437078845834436666219590128625835321851967589352706670415368577590181614096439372945066387280385831037458929016660238803890509995614648408445191677222716577861617800663644946004409914873620511686364226490354789317819537101226293651883120415118394579377030912476901451638123313837145953136351109794521936662000579637299783997314344103122724787887159220580530819862116417378364996595835658822768102665055737028322130102015279372203490577460399035957908981831893966541401370833315234772459819117643021318294377020557279003559487301556572173524332642414137108614229345705632011709750000235108974317600505476706554695999132060461943062908391577505737750798613540039806672929215350725185047522998293584184965240589064429629934838805183315259875733586091402415776742653185967349269904507179773567658389362899501073820018356557057593458453196725473031202983857622509784401999719268980739545854595676456083385325462997362551090148489754349372553865069988645082529300844700022334511903574697598138899852275397492262437350132741083086719520993815846925559827406678519596794396209532058693728538556583080736896830879263566201574054480874447590351579862945419975454900484423434866852939993968367661063251685360977540502898500394728642677756164517592802302899800030313934189473012778460862283917155650215471844819156176829800822532962694940672545862899743389629388280329288787870039045028709700763190460584481498470652900002953782130287486667740097525363214959193719276779021548681721179769106467416114878451333710935052559737140275378563622637387208958114602261927730900434480177240527677411614925836099764674101166308099104090080281511205021066367252494704825860560012044563431699922006340746529696623245306465216563897905998463004944277026931244451352093011780769094332055343328794367500990387673242239828645864877506146359397467289287022144094797909229353793532623594603547003490621864856405080899602569516428884526130092101490557624200939862867861847340980687073942735807329593768592224645087126452594996170709289215270266067318995514636322187479119610123066238379814888371429515344265230522351417417677154384033540694333511253471632710229909761297105674796565148023936420321505429191794093536220139816517240105468815811162348612165617697808034449883701576950293016713350601207959150055456065333096036029963771767378628976107298141491749863839832650717548368064059483313794717572506742545816473228794610671072869743402240390413888096524552073023716780301860749244621280728640606419280404472153700959339159069336356272308591977492418209948632275178709129630470501018056797197005853108916550510907086474439308595906107383760201055307799105172649719079915974753372528184723757299306980902032483538587328859192202521367416516739010128515718842849340513320607860053731940894361362269629652434153352870958384871310201604945636199223029040637268836039676886926763524959804160694873420405395354286052600096465456868225645791565128786909293528109413514067991091540676763030822049181183859290259098316104207773370747805218931169878816950830126254415325542863754155288863737525239315841975952792323946588674002855059545265365999608756274138606560342280388844551440323756367646194029189123863369105038815903423008039011805230895252048286610999659925082137696018273610393590547797352306397911774057079578914468588959431245901273722966896784882668907525620126051449907179318030810060148686038236102756296291053695253232516140103131973932439456000441320931509713978534680268945860805940815437138527017099024979791528332741272998403878157479816706591900733232725857863603748653175113435758850926862250629716630746201800549830892323447514380229977077254303810846220752652657432183136033779598238268089799919894703137335062384673436927784060792715861097897150124343080941970599235738692225957806193976190405766199875357755527233221766432747117975623032687227509048151343433540616831861491063579930166436957167184198245934952711807566081663453612800280915294580819158888493593284073326524905050279461978425186132482948859851098795763904297111585098847171134558915305582047917295017047466161588022407239446429428387732992749415157203398211702488358108304055153240430362734555056934929498369200990068189114395422075219171917696534518497368262430774159271143318982289169046579467994706662405978189202043642617326978133441187977771359072518667008348240628868495974760012224659785519655790115612181750473221424224591708734110166742300059968911746233011928850306211668917186614477705059768892495148880703988443941224170796580411743967059622044146933992384684536495926471553967061191419223009995289107717625010494558808068639606445466525561367243506264586079828690505995705859846077984453555159730367316573653770455184342988599092632694104430487495983885571142320357833154036358531230884079609453083908820743700999167408784287411966715097177023556787181942364829237009836477115408252806953324737299607835309178346590186638114547548614478387711250009920582597712582510016797622595059792660355079306735705779930295092079446460336187868368606047368240784860677347346209082817967507232670324907979818619452035738122688759473951852012949898254152157735158539770993784831414365753235890813495915510013281296957981468546419770994075685329515297044545432559266167521911494825278507376953235604286323424072269329373384127440105903538978100554509401108597891762425247642394851885667397524237303125192034888780207885330828288008972830671230738614941469059067145617513083865331648455448568987785549518988100182939681996236648403147464982065609061353806319109990808547417214917587982161540419880582350741388698123821715114806481451951945910112522331414136633853671785255333979437942582739336028822376151141214758440286410320920918175545146707071402297583300492665777352827650908635542229598037623845654958852959347719054296169119048473406499436643230245033748939885759946350000033940864257658165229823570224598422167253540531992881169185287139531281487772610040722327240108540602806539273069753899451152731564814171227453118142121099511289746705192556417635763373314376332995410089443258537921990342133285957313405071678991297046816772787608110807377086632034595142977914483404196796704219569640688040362711558339338307895271465799229012927286458424105900431726002332056420657384421719381739351356382134793172446247095544295519342376502650342451388895445322869825769640577376062938332501524372643542055513835013005870124671548462021879291063434865479815453017736695462471534465743620696014622439223774339167179676039904447135665606869476927017231961728041859041139292160573429337199465870656012874529039881235900990822659470033126578720479602990637894914024244044164043325039177735083408377164372652981847028150721828807902001435576396707067597890188197718160058038651668382200776139630213022999696024673518843014737310538833174139536197025030733404456251051577934919966896801070542922388680507001353998537803812242949493423557555497989678409861284151604854603057798205343808343827522663563953889474492021095714422843119525220696530446276211206234618001387302621105865356355326730024925275735241246425239729350413304864674069030361927591909076086036336529929182696982846153684501330892460894608248029443950521776912060655844760821896344981805243584713776275714509845358819692497528158047865546983143779116847590135801640025391960505029800801909596947736854433813039109295839644461661468060269379998612710366019968726141486376360327529152125184512609009504742063255655490659196366110503522614175902667682997843473627698740519251495943066516529995428550942080245154619074335358008055548369904868995197964847249247852585914186794246465580234086190118735309141045164521396231465070381647628138432968806868437156587153700496392417961372212956460954364392617911981847064586194195615430570866024660240730806087296483207129755626726228221046594123774880564278759688252411514807252949213618711779753023579829668220757212495909379249957973330322667666078019749811991142059015740864602334595997250720373438476874112763141826952303730432696322965652791926841894402693042271496125475797973582751454431490993387959974249894714126092096899713216281808207184049340711537499833847725341964838624170952933569730002788730376149219560047850839390666081976184172297693156464936741151051628854901850583680421911240438166857252386494572192826965873655309610185043734515948976142112626349269979686254501751435169768211373504158679333923710335565478800592170869208164952764971988189567201584352843014024292146332325227894744421518516381335644118390180300355735783906610185540142019105377141442962068543783364577877439531474779149295064318659877423008309644838004903864717182752510018227751195386149677214198384330953738446124727014712413187288132777710590793528722903141468982791792004397466112080186632853715968825428669253894922844828730091839914169331132879377762038135254933759434037390168101394686648358136520246427442558857236395587159201146171572059435546430736255888391641858749123771911214604818496245477930485688987468129044304857729453517351039515278696514306682033102763023883169357490942158794845428498650880384969135653549707875542860024366696097503012193078212686354667408871754023525857095148589507953149035209814801349275628463424984042212606119610257129403544965703099090575415666718665650657051561448250223341288659924169914693075166057366393014165986426196916534756107820964402769767268840193018685082411016637440074889453561494431741211889953625604925668839825429720687065307670312095452288051488420742871215871715803875187632561913032596358287527489004054343631887659789977141837945534501129469703375897296641446778670606916454289742420145099451904585471882913996319698710913910654423603178480992465763521208997538248134470952270780164609653335782004594369030988521566351192433795913778131679559076778232510500954772616996029324678981000034964625776680802728852907345616681804088720045619516226238442352225707416092124849413224892152311023452286825487020028389187926827724376597231756045059782296178137476515817387082603934157810618172188099796565475430169265153923625171723203371610225551106207096735869002769125610048233717290730758170116167169742029293093935142253831489343611532524923392959232598877306524149382560000166236022424433458980601487640607486893866454865471879253610711914911715720599203264513753464838358754098463494721667202558420207052969680911974535621914834574782380587779397813153754276219870181328088909496738927372830837953334425659200162496863535316534366720400775979886506754555635556270046162359945394621456033832390532773394547342354966178429647214010524940190919132413674499036195268390712388181487511021194261427779837694170990767393508429116659405420986873299000716346828120764952847255811180654069829002600276897137692251427788619813142213291441259979256415570317322206793818666020094716878245392498125403169164381280386336276762417413229412210100974543974642230553690765720223489786060034012972318804894943050914454150678784427838469158526246157577902093107280295061064472998069889197941334647613430470288338423156229650600223234422985124974238606999060059897732739214901309294208872430521530487598832388542595389970518224211028793338011396326921915207713148725013583256829962892831938216403941672195997467055096805304447214136570952647411447190848103978603138135492299144152095865773824670863945809268146407468897091041020001264879285458371884689627516776556547512771545067921697882111674175302994847034674620012093828896986209046536829584973092479627181550063525440762891447851473185558334468843527542612684841136518183902254348106033526631758415326246806082966329389611831906678418527331435907261316687022208337201131023671567881978366589174212142681520608226925332775861273586764352019137282440248152129074790698946031831312955947431387577404383165654358459934546145563657125560823274938881791550358282669128724097020353008839681468273406369278054300281690662770621298759852094356336543421466702419248566826447453580955621031376253505899945254360303220168050724911792361944656154994863935921695553654575906621163886745425266602137359360524981248385097211836128866866279968418254626081384257496259467408796021403886487426090184485901167351938066176496043973254833559199217436894838882782557980946148190265485756831483504338231162016300981371386400782246303251250786020842991737693309084714528788964370863150825520223722537754991903077954985478127766949320713496461589027945980981634516728829426657486967891804395667881897494197794025520680829939933074552635372672112276054245987518925867046774741948476969176552730401381926494341795282365011170903594238859598832215822657443944977841841654999211654610313113111091967240411703167445591088737279466826434345431311492619988981165021205960897339267590900933572600742859533335092892458118069808617601286739698810339648944227567959344378460629092925076187489311806073344602195372129825309274150988272927529022383140155202481821955131912735075042691349477648444575714553112501642616518770016505328815842284596497309352718805634789884932398653185491488016989272334371144306913273376695419995172101292138013528555106659425470776615729444804727442741132971910282085542816349836310234607643891600596918958129067837994710932860420747302035840787406457165649430327219219778674622366680840477925997447163095384949946441906059763116787126578956594258906740337087431596505818302784162059323997042665976875046965185341903268996231553003772027576262801473430345240654936667703346304112571839701238544119830631904165243936039002599304792418541419292525913748112339937149378346907812674854083896875171512953622996797848752465292165238695548161307834405438689957850845704255305186637335873097477738153722403446594613496734769614749597134250850778661927563450077165279088482094006728196879595413298883781837604312006274070768383968459064292926512151507516853423198432049273475136784774459674480015374832509539936385935335850258576437612940414554212937873605902108413017140799789204327652764496616347585982602149053540933866138040702741104345113885892527533426187573634601084176319978235912698394229168154080206387473644552417793555801273325515362672331647710685161331281213171155755328712393015289042648868473906184887128499543082394065007773895057576559710692380853157950374926838258715394032074990751012282101524205632842146175770305309387537447312433337411789768332596877845550852377487997363318314457800996895339470725476319687981175692202221748541610873896349389626532884226995561764774003433041847439189430706614158867211242185561395104638425894808677032132135623820070528776216480356277106023212295551013954064531835639934332820809822417099356281388998104316590449500946270671195134834071357737243346066283165394550103682726808543549897242080341058231067147503006420594904721878118135488173841514222894744691166824785239840683671473410686621322129791108121781219445264768071021379293311212413705413526358115895465319210115282568842173322331080466578828316606532523835023989660005414343452668068530080308960948164134504606943142179992001805457088383919212158777481233898470890649438662254010131874159133139605303762991768133860888878437307296359452145867928071823343988454847965617551596067545933892585232746502992623842357719582929864500561209668268979537833192206767641057044205762879883133048920096363933549232155681752117260348479903182555057215824496211005595993609736158904914371469514036208011034029126527301940253563142975091713388945833660146313699962823075077487144409983635695958554070763609085041717658716210937075055703584980637374255233554338867643667794953413006480144284244357398156020884491457620035769230051419813585386621724227535166480234439821694086774896777214434304962897304406951838036656100874615980151474247609623577152262799696550146081340843916160492386024021060535392592795116695422942721282444777520638507365936978031900863985344087549138129079617405830826807290820008781909054664169684502967766071173436364011644212703913565649082155102966002344031703421791749260912673320338798655282691311128895806168347096243396951439865402173793012011337425393080690702854724101719472049301502924456585272503475315372234075586899105649573891410456014791562778925208464878035278180242642907791277632079383441084486431638704769718498362177980402497809729562489021283947336008624653374263511536221277000165901789564584202106534493999552616702161488905392484683183355482102697362707258071682762569205056183162412864281954869287174601287309906772583132865490985488064532234209757628064576124438881148032742319381743458225240559138678075093244803856271409928523524387740978305084480744710014254164951129903869629552997705848312072746390856819318240611100781174699017169818816880540730134001237771176735058590533387496187909145746296917114390389145983391064278290343235925412394061706862185448077443752638585781411826120796807253701730218192353304161013088097875661174633340650134563534255380480638451449906806516411206198263394541147070711428500229920220171970312489711190133758006801701657287617014532251366776446492400891085075771050690035055570274335350734210418342574954051703383091131989281157461983646632964160843544255149629596065943383231709023100936568683858986923414096854542924025808315296288724721367824326308717524324643885110020979140338528702754978426465119954831026252583079334885383775332526507073623496782634133359894341586149565578777510000251599459197221746694348252073937957974513530429079421592290554740636351674308864915427632004138435611161829142899293415165551275365692732590040851653880749655257360663848559363084254941503377121945604837348164419393721099372978076038300434296261673747560408895268961110130045776764458551723164805823282965539487227837236898208160606770642494702984155421603238637502014626034541950310358387277059592051617918668147440776924087413696358763263131723186942215144505077476488382353087424059091139540106526678756168668249290867751219399749481814949950388612650788114421518842039528434456508007042755647002509926737545014823563150096872328710382457511029268849072762751336675623796709367024071278501706955715763568560744785282563151685267831664101741277091403797197315128666876818740697310821529860959066010162470946859138807386027091714864218943144640140687077875815726382367308337839703498076718205497708697336512623197192042808690507277992985256858936346194033548588890532877327146191999517577522770427404505177762463513780967706873317086051128290787430205769062451312334924413516731345117966830605295688463235563857486882772754489021738503147087916093919493654929304295254854809439600617475351449710265756085011314008130739976618156275695927000868969149380717533946014115659906184065748111795292617009471436042557616803218021780388052752031894160525368359520374886675804374110331745049946132243819650744680287741080006037227379735117330489401731642843696040638378558364376704774839486762825930774115553634067846376107328480886560752325411723853728877807249120526015327166483066065089987736990671635364585658995876454842285045079092358551179100915186560679693418671150325173938507125241971520617730446117746757018012163216898505499549281947522348621519754164667955579351069797244301533645195193836293675547875644591676740490018269781380428149641856969586022756105932050801899941841431610591823813149057306671280112384640848006136848093333959363991586628866890825595567533326038334923744918179132668657568183400006249014607801930216562312207775221593662891835015355822963521967345465866371148411297114497526368530068495528711566526650223091445320213211175628681604975829251352580458281199781165468889493566417457435512682240833289296265236894499944856407203836153955887249511471555415020896259671118789226111352129005953925154364037195249990546701745758299832132263908891620761898205667164479686419032470914237005532506128254101093274788176133887965745845268685775612059133748754879792230628195772490075462918440168085611162279463532025801616761293213041845564426886981178340672471246779443457202251471467765542302622972338218234064626084350792042967974551761385381238059760750354123107245128564600926738610333410531709451671192747342959913104215961021439112019945726782548604908458188015579951033340991177229930146196062201781465756545233508702315235154514229282138830160776215038433464765437425851266166976459521222111394134671473212131679145306491645464246987096233240907857362116985276348711207809939525545563216241337190123413011824654603608356991512869263112498028020356836085286026813918422013574958419366872546330595382785642040775631716552621477374256151774592632922387228578597524620675903725567078274899213329774293744618905130172936121006714979081382701995109050377593498550219984259574082132142447841636985690856098134168512748571575722563569360118853583558055454586793876136646697670808869075806615067688233650438513563240860432562923966863473572000871037364367493160378607573768085278955361509659330221306685178598563468864881310649484612861305650798965998085620409129453831347380169128027610626312390100585728038768073664314536568967724432856851035681982583279741233072706529956937496540877581022256624120588538335527879048038823848001316909130255389972542547026399142841566667895355015098589368260495447272024088788039098190034755334551898370508625078586865564787493510646769454347351031276918718918299583215341609309584469571821238479651564471398437600691003529339463201449618898119999711614205433744633902751397954030395295135946308256692263151144009226954329330089566731277669567204391254112492236321113320673940027157419971367758677885033238356528393218263908402103101981818254252136352440025026216004718774325396864303129188364381573550352810006545775446290095963271011488075011329324733553928082411993540080587427400212257282962423337062126293585202530099439396557763645172014328897408635974423318478096479641031324366877529094965073727860633101187649807995069698723431543706618967512609987871747400072045769307867936475691316014946595121624975113881243452937500861705343461607071633110054346915665674398957064607976478337083775957574041926864906807564412996664866236538816398473578759605838075021162222998282642074362982323763364111594315307099754385275117872144266166266136884327553217983054747208627601044823699739387951402177782399991092957790241410781208255030029514370098713972253195490985496408537573764306140088736998574419619849133405071051260756504501850643562977255013343587415839139267995607131055431233646669007500356006140729555339697867763886506549644696457922732026307428772245251388083942586667970572538085384107854570623155054748252757015479882587878394917470955878724000875639165796962970800640947402218013690578183006591329378639503799351905301340601749333573512500107306049728579070318423548536212512967613879112734787389588858540699726464545861251447062484427982591948531137026240659805701472252409752021465557005555786015118816439175892248458375264705524834282216495203482690012976250843558532303370330789609424958165965756678009055366275146828961509959176921715141196237197053156534938836970948603133857147997661651921998319774137545846741115544215336745440340764679973320744971632983065081044954534886444782709035650431650501909378719353293427033725736312435466240509695064182458012503349691216541394509033319513287411414946814800452809705744551022079928053360953553455305927491737877532530550806746977500239764036877110808438021144082239929325118834333925882395094181233814135915758407014208668975668646096470654685561264440356459845532443292434008728869617565954805649473654087059691610638147908473424516689319646097254990915026440745801429567228841257257697308658687945525823068731504903676469113432654201123383978790932470864713850057280462366025684866886147639354099690595425540850822729922678030005345390733164100317016230405761722699410470415964509532747178283179740601379192882907832381255131209078959338608564753172531419267780630956096498527673263338091225400499460263601471034406822301499062608817061353558031334474168661747123652441665338787515172842026957058402795820856206958401296969738351661335591664319305520180597464048857806601707039600624989612825994726203459113600146485288881430906019230186730105316606646669765002054164490849457425429384757846952877312457128503894939320073228592339392475378791145522913775207212623856970621871735684616948787439410911353385618639765778451103975545348888017073479874454092578925942972101215248176066936437320747600330331404860295205858779676412707692978393367606734560192122565220325515264861396920701034327575638785777771086561276446377804430650383194694703735107062305406400725090008137198770164005117286754744764702613179592694728130811431343062757381823942371068561142152477995840039817960502784320949288457663162818581560907350018602334894859739655656037828038842774159806476206074007920878022708064790445848748339812771364831682760448105929004586459673522790467064780931099929833134752829799959676020950908140495471831516918686461427265301866441069851170324733377593807106472932721723254523162710508725958264558099086824546406000813337192755265298127166571753282156685234415762509516948816426013236761870620794731791705673210968010029857006693612947825548055708841924758713274006687122979003996216700819788716999406229311899371977016067339623334310442471846390612840592251259586159782917417863723521609156561100649185122331636835169243582100741665753016644585878589588072469041987196381292503246796668734986977583334598443974807661546518061211651539441291166446096370173366728914352080410781906271694981032335976720168646872930496866462310032385563002642954483644438489632643297665863884240544502141756715920156968588829599064728457392862403230951315604118493080505019311933152466388339180556303240101119689953326985086415691758324433506051991737673867732899843456108288871242499226393674197218066129886929506183854774924615562763238350596225610427612860833723090600267357864450224983786865303850480320468153068815998485246885593571304499494740699914183341726483170831672729035166933285409715091041804759941477631760227237675113998704989568532992542110017338821480305756840164398180887777317523187208060066066087576597938766743577700835083768673266470264229893933746726373163656363525777556563501982782286074196426239870421510177601128448963550441524680585292635643140760069542670111421178770086121477632676613032332219460324006545343274082092141740662630479244812891229504021193333017601955916994261980407711593491538223615808105913411654322009667438262024702872654666261458318365948637683322762684270390028980239965345394704559056278916277732082753978073220001889581542564401190920806641310784194303232835304926335402538855230783919630501539864204705860770334448207254190587548582470342371952872464729064109209730182787114872938267177888937837178676490556322695336776375926114792947966166609215329905065805439483406036282692949358686898612264686787534359355125205642040201041221912265381946152075763576784926748004198350956656651212506906823635166432565439609917593201664719028048076612401749754578834498371474027191878052980426990635728758761673971285911002933304894664076084076469160184863084710609133293864153834273118142771191033993857709434953002340051707270000412096093321620842649753725452122225238815849294064496823376456598468513962058427574141697248783327307563169991297508031694408883239346716089998957747578023346668786352045169188567517029284578670837496913476235457606940263739189705788617811727308185131874955415014182575408666344794218376802297106601371653177177116829031293798758988215199238705322221956957456626286016379396060058350200419950029627354671513706871523355544057725249441138037979417088858553168376382773146739137341626701527839153595726689601478800667929096569932219279388311275865575567983850710327035023781205275038268157066769232330584152677321627953426213387881437504305619681607913193006875154116346832065149715140999750807432255230789190415325447360446741046848100255982339204364757408178347708537113759626584308610988202980161468821080927058910271499871833318459287044591368923380337807653434804985855865794656254826960869390390330070400577113554989250285008478794503811959744879134185948033541266906121121114065840909598581775538671620371971995764107528954194155388579872386239422482119143332102080722747971697334340340558473405650164767635224354112127976033194562286605223875548804169216895730069541596614235141176070256430036508444851388574404974003897878464471427962660086755092323493169763486062488551788774585888195103027176862781969318174686385156383464723083581694047534645477312448180774426510655872824726557135306122487779035869477089063854041638381217524687820075705675761256046809298004170452072823455182697892702921002490008983182283848891939860681995503845251929925100611609420030200587799360043372287628518235897589160217034365025024129775793066213965637388736264200729006948354593303475625299782023609210608177380115172065231669012406546308122694272538705954515721711573984207503650504938135016527862422688169511631912921779033438832371155573894851695842326591841516673580753597107423299356966070675376256006971434752992302058888263023402787135859575067996166103633391050340433625005059115412729762591268261687100395357484121354098522016314523198026658242137822786741892881386764297041282749972815419725094247485968745893311314768887411000100934823430195782248654835407281172118505076534132890421907939322884672847381112565235492936312662285357898001453354853023699031350492645097409303249094354301405155374764158891203065708932320464052219101717238993174066532518195483420302423840393121429239610410753322928485601174194692524538433116475620998099426786383726875491861958687274325122299935974338857653944706556515320934103801107442969333319047738468633502744300348580708432899389530978384201388743093176822055581490946265692808471635923853824917923084705659507794335115365939057879457892264775613868482377468093256915315642615042877936232753570142751567935729557809963912774190265539608833502344055676286246321197938604862379610028162255753487580277916768620315545861388790638965033374511186282522271510857054087788039205762640147444013962366141081434872363863349934306427228607777931246030130155068179211767527185051290359569820043175843898960070475629635618995284383514489538551537684006412442842083369238511716928711756492638175446267148294335148980985434307581215567774259534832011127766403154473636631869825610450553993728405632517718325075409228870898669027980097419160137611400324805928986058931210496257279385056557750770184805039492710191543685179908931818781374496057938497119895119000417434656076179730492661155817149370386582638554075890695999338652864301391801280103042642511783086866178370157138304997139367208764802126557923858601512697937897289038143886433188809365734567377617669608521832610926862307334870214850910226265289064055478328701230159368339406893815449215059786671306712546615684627102204464479316337493339972546836754458388119988406174372631133395401066616203244585366119471914318812941454305368536839581542193083090941438659442134579131650910875109226926448342783076128423264693440519564732665960002844760641081660125298710881368981615789131182133873267259929872584857928348751086071056034423084757300296493941656603256391569180232844451348973473326950292988384531788411483030445221144370961130831069645633274431749479085168193151523808402933217994905688107989407675494168709976252192021251703557636470902297595513512598236621216070598760713946159062723758285077095427666192056399598370756006709943894092107064241315690370893817232750513995907579128148379412635542658264258640935997092733149554954610950866267921524006785734177886536944522317916419557381612452966362902686935488952373240132608509017435932093685478430558742464059602078123599240968445996477086592558956465372493864795082537106099634465769324767401887522150189846264093263816248194614248530864491915526269527143504488967637264964251643813086152468996867561119628968209912589268210742165788446270277790555100862014331627686212097044777601572748287788112095934307890102498635849401695985946120791689789993605273025028473064395898671519145790102746270105801170213792483180195916826625193377279702754707598566728834394851737251482602860413666758569805334176594170102959236760562734416167051145519207909277025035522185858832675915736204064133761120236992141727000516468576701905558905228491680906270166679984794664141917259973709662353221280051974074851419168713708011415462913652221367966803551242970305684124331715757957280903617620718515381745091075221426660311766163378946377082278545467562400799854275986287555794560175005501355755560763316870580810300475676801140248886008073731848037915638350823702385081094816103963313042613885580529240209247152944831510218007894385365081560575670730225403557836223370234850091382682499049507787278197947232769628330485407155976036493713908610143781385918364343177945514354213017482746834742940025347397710044663398300379664288484144354887966420777911658990298279048738979406486620038142789963632868681406380265952846521261735298724095876074538095271357259605932421705070351192952168935853832486089845687447509010732371814959016222740601416458393154946689577018579733430867852703521381396849146651916205943086129381658566960739626964718660886883790800998239680393834993489142925009327373819134099180416643952529107171201773695077949264262335409594026640442492433235123083586466196825483596948273996702774884389352307529703946689074293050224912058600725340985477760622341663501148287743274862066791104915749838693878916112630398068033661317056993015522440070175232056462141423393671534725798787707165979664056810685066671119060389472997376513650071531782161444055208981952769840193750376092196769265085047812665382236825752697150211570130873043771371581315763861391957377268003332178276042862360594564928736552637563407644990211798714205057068707038054972583040277665249993153669165931708458179555440639011723816183756301221260913740013177318433977394903034710068987225822262248307037976264313881436371882627279661106504999383056337123893827212112906863683165922783511794561636957692275738887850240341061149644027831969630968628540829301221670939228758518485874241678264166858455651033119372820087753564636489119557050154732677677580231857244441250354271928578573250311227638017274694681757574210573702421027555833267188891722074770352933317580992727455854025577754959375600567716437082788622477608623732278050276918118345304882473899316799361518357935289573589607393448623033968658108855889476003892159978684987338632283980106026408643591360064296516659891020583657299332564161865157562445162479060474467734905873302162984591558944033526549969765990586436137799949046518941932453912675112399606223800396759061898519633233724639456452776053605828677147379965948117540362841490842899648518799594238602260104311881695688817378741493661128826013182300150245598500698800279726679086604932858323006948470150445469411288873941362826298205453752233489483719728820847520794764024906489560722570986124978906457333323754832114526021798383872994049623331125798687586341098002643023866085956499717279242049440211814790654835416441658000826710394259813887151170563999402968474438996576079781666582019486754258074536082355140348183906380003214827711559210911125488289068287123976346893014647035170829871696735194465356083285137008842984082819016765850650760787246905801034586782066919585013089887155199987582162358287304004635655761607822554673050297922954539538673360942635573951942526728277950790340252343975066877289211869465763336937477336780225129510592919449421557303718797633166905204058379876465042756011145746959013620907053457597957305245051550933521705606255302941708879936590345361478056088713097448460885912470357737787858521664860402199156550948329263571862661979625625444990084944732611118107146819838393844318094295450536352530933877346494115381209070217936085153680742828782401763095402764485477523348528369503824438049496147140334828151643579457082174784932364140083493517017281515243333196483689713632644148155927505415671297072947013781618806859877948584054289115667194732916442662795064292637786644868203793939946622265832719325797096401424625746523927327667793820965402157463679292007295362937824425687987934128497996974295172990761923000550443633150324895911046309857755774321566075918391269287206677148518422489468886453361927399948112949875593116322525628272210509046889136890133081745192491531458868564777452553236221868074170333522834842208349015636114771247917492135061393381549082668547832388706881993072005244925621811614957623676684866040097231553141274497139564151741169810272458097896953245912190751041183438092407007330291439313385679700971535293384901499779504053361592649139884992628999750545737475263486293286093250471722588618597637364017029347608950544092294698251746755970315131485914247117640148313024434165335177336270100209001154686849017986321998534446482205648624644328759551067586414277936649665552670252976520368702850151040088658104688939472189467051523827823266577157627391388947377782610472246988876338937060906107669640232499866459588944583871713246002852802875755249715413402835348782466457254770345709322540521581868726562303849101880448829643015725068662722844878989677758578266906447933221166478393141519220697720255358124464381718766348750594684328656048047127873309385947487365671136508352592433733555106826037396627116497336837641410839024063289973180032890348926445219071774650731818459811951353180014598051247875844577912017280853685845063013569565003376948326507001687397456221055031868384964903425640258874186412613206884809665412375977586622891839913927715540633801939649176664363666010518681840294472894120849004607501989934605213298717696735585295719123771080660422389430940546986513715187478796682072242114905570146716108497982322133058351949287588027048870654415548116974657508071891824909959261293749921712045396790059487473542016216187927249247967449306956191645241152043345758326436078478340914289131416619700370394571242110060229288398207815846152815522406075737891227849075281504691909140086292393372720167791196605364123982058100069955604682473872648238378376737495276782741366585642542415780194864699370573453538791319348262422733966233884798135619350263666873495027689677683768777310648497533481258493353038680171547887154118754455987736177988595612905537286333998967061448015109309016608061897178573969820634447042477230842892742908131009010608817688730584657589377407391519988201021483184531112784893244307558701722939055697538126520651661631155937761665839373893554312955066512375234016913353505154327852185031818777699140610971992012186526334555756616918172118057912572655667963726593556278598754245343278173449455540460229852593347713308683559269776461587368296540955256165318496581342010560574517649321219040185955996673201140336755443336504674414834388576168246714424971515084571286492489483947036683708404999851668564029463722177854759883167780312416009926894682272382559157630426702155017649294057130492208975230297798867708751035380610955997114008669158115840000215990901135281663762671269632195608640030594925149456099008852640843544330157500571982205859852240255228232215497741820386409386548653103590191032991153894274203093842987712179385833284352935906589346494496718596769915621307003573927041643334046902444843358121637302342866310138811404980389999161319662660193463894149179632151180048180600447720092650447573413529086530426380845815295875975438163413974384991781321962259775015661684042366018292362125642189507162263041731221318107729091477598043638261617316340369098954207821099410159330473460096983743542534034307561123040697333603116414387467430147873868480668680881686173630358565287785137084182090890845246345881557424475911283429865817243100868741993453007308395315248562553997573161180830314045479225467083457705614597200095453967303049143506232458246939682233349894250149243241573608925452698995420783745729222575581726399866750736066592356455291730560043857828017065368053083836907301964192534433364502065644187815348491015744813163819965746155741449636515921972933647794068543175134629281918332498127792010460727245296273993699159206168880563325117897241302234634533928954726386474091042748726230213613232474480309734016429092619880435490307986798510249960703918709470542270445593084679196532142543150575081227723624817948637656661294205919704275893991829128272171546720705694394598558084596686507525175694437618334837349187171644669476854456961041973982142280720295159850367098112809194556372117895730196654395326694253028936585272435070653065378830871876452761455156319077070103819237150919963625331095744041094162504204944994180027980117525425978199549026525104495006148163541601624847283666934691566377202779836184745141339352840380454952705133188334043355112026558001279859224072524051025816576209389697908093572461688230099814456619274293190403237480939864858178871937236207245608707478912666717572396105574527226652938121628372086940723918693502311811799004628006404858614543337913894884571912474009652468350954239874709519239780317815887908748154072265860783491734082705647974151975171786706395554001589398371424834436599736531878661853441047224791393222574310528805901999981707435225748099586786047043982850794661678180944359966502932958003942728086901277062864046409446438409049273974579310986213621850510468236917789429911073540524979997511182879906469184981970381618593569157851206370481450101901329496672993311960284609565214989448748952491204624309818725690181789363709300291305813310730640326993314326992426671000408920526047656859384305808319979139022754969842094057444829745829159487093940877451498925977964815872482611561419584792347747669109970397261863576154948965381618036409017708831393882768456869731512726076528221961521756408271568431009403505546478211305943270068931593857138124002005598470581968018731379925473452021044313851839097847427227724530344737940889144205732985186872385304964020682663337815897070373900552373315300732788274373221464652534610406908583857402866715547779699822757626485967249614011542325878570784986159289443594389372382976785439694941499432435052688391305135790048607473453137554397821892171980686093390167643376833903884860231115871456400850089481769951868371188532986121732523783149019825537860159880011526229512821014129308309131830707240519627869318049771048140054653312947574038871105317261402525710379557898108601878490276704200855903278687341631939146328590690418236089358094220147558083008552744699668967300206563389452970707630660932861769115596972277053490395261503166947809190734835331503738874468527644360142211832787194004815521266194841171909331457644418337327789632762816645873950208146084947811132374733391610932505915679039939627209082560366222582272778184691828606990282139247890275716734886402490805871154219118582758512718672725612851810546396636726671353475935412433978336973749266316992178321875552870390884767418189834414227071397590234481858726404982746364557066929749738850127746739461511186659019594511771920736327959119838646654756226346926157964201156557769155865208836014248582459670304634006225415973000613921599625878861512426518945374048963455203550429220547859469649386089479914299944981577115402181240203504672400058005555705526590470892440178687451465585204312324162536646672510583135036351770557671068967635230661460533957109883800346972030042161911804427464021458763485635041834246998285163208910486410974331972597146323455372100120348626590828416787640484552220313017300357617013973888424385085310658222739344451572641585444918197825511374796419422144723558533697545111325765862021400804626588436727243193469239014992838115712242935023628306745966963675874155918566702568666170251637080348687192636288168018871762431222601336471992415824759964302783751009438305787668088345473454322021091236499414100650035126166392844202647325105895794357045724051872750433586704853131456845636865064557496512494151892853662801655648043597767269247662325424743807290742371892421193434330156006735984046159832640889359280335316007375393382846570939618167318321571364127697606371019694025344622452200191319794705639361172538863206545782456950188632473998191950871793610446594065983386443123047564964681667534352630766717905843309038776579159678692814895305936108904165869965521468174530861397579990830246135089733401784878351560923433039362614739655583592038291021171993222807401345014787018615956483851180924988381939744103985924858792822603528564652780570910411997246992451394321449550372029242009115797668466670612021587430235580891818684685712190255030497795606145482095784707964428532761984878405401542891325586925705250186821809458696080809233152237673789719226478505856727309136775038425128504514527650012714522296842401992940694612569147636484832000420666179981642633546022981504417140507621754080245673735501755011872117734324741643949248298487446316034058796679314381739512297498185344283741692829968455622249118960707384670224359367205258633814709061993310135030622567853689753417863315647106250323786579908923673803688364593353941352322367001896027717695322214974460080420133023335301001286123048614188021787416813958056019503456763550312395838839171873310925893220595607034081774581364768585138916476115058514635140162587776936108647581534623564048059833186939485800037216992033533653504811766557986494405654700690422840486004430211118204782315457772839636745213181753745883750166671716563935373695057462085348347740566824103036260796165499451859775455420473710001301707948609949388700419479967669987702810188403389244968431365342085027790045510534291374815777969771042318088845224664198479215601487361409625550178357378464386069838406376684535771136375333913940873295742959534553469099024209774550466429793161214840209339171151302313017934964575850087270763266190956065640410997297402246971990083379862888951914924567994468061532830831643705517704329552585452122596485954371173591171428079149023541836918983978874484463418797559346691499103623471255583530412788327161381506596780208798527371504504812645377257955531267851950131926109369262472388596150097525409647328464164803470308134095132329162682792302843742622383639093670660864698736410504444529071227714938207758912732510963602627306452556483571371374258461154974157806268849781970723399340042156267598642965755843486258840304366398448478632212277759656795802885813178987858958311633536456907653657333003782341801741033409817816285709930875059794240976563053488488768080443242398888804796959671434828462411696293553225837605614627619725741471487621104788625740715396955523382015327849045401649707748211148873508820138455377271685683076965263865668948618695094613436216514551758035639621486519812390790288956707957401864666524237838533349904702808394704033949366718700453961627218541599636631261729091479520132358004747640891101253042825498859015281595312776574660397477008194783303082059333507715929294325397922756994864120017985567491054041377006567960550464491155756395987071798724559979401632225229613633756347158080230948399279985649314574404546328926201830214828419952175434725381005661866797733778028335969875800135639415729965418432498381598280117003362312020760933216613838343275237021076370860546726919827013001889112212649122820571942246422806198155737981997966578267253049360988293108762442984794817624429626723600573571995151329574201298267591759962612824664566199241602463891409733896810612956272288488696117683550928260355509131557762036823432950150247168780397689659030200800297573219607174101800879095755146590236503470489699403818293441092340868891451886351608883166916378746414988333596459919753383716100485750356977882521490335066562993782292823403573285616808055365590035182863027592008210992895180878073638823108108735711082110420934154195930559553657025152065702544313022920989296936393688363778722516718612002687182515703170042916662372518600492287978641769778891605007357664408161291086588419326661656950396873419432580262551139452301150101093798468459013611705344764026663407125181582542888590187983763347416753566675283823871855714023950994249839441561948206226617753038372429526641942680081212403528730019177261990138664061583469059090156249580194372275954326148593013898042131091608954139952961175630832634336080855283681715403600911738514584795757451559500165132679389616542204479563290802574667583865510301419767788259090334296537177667450750496584477078418808503272194086193149168634309593402460379299997225742160999664806290965282833039150290832898931215119224148052468243723503052340214030794097876535505143556965904065609219887625432384600052774853738680444176427393663850536510210671664077240749737926162408269185437767497956724087344893734309097024820349165745898918651960633873679894835898699245556946115725580956784106705218355430172760856124922519333899011452040892767770100960018018836300956284858563826200334344596405787481048467939600889185667604489751075817267335029103254002694298536659633936947055465965124539067872699142755430126380731691120024072900845395672008325187120474271858043665114237981084855329729834829477095302524398592314533010040810872997328742822700973571088957915827711511490200256137022044627810492257991112877191524879078753101053616207407941403013833296029224358373062572280477994821152757546373164003084709031710616987844673014729878844175432292475710617358180039010106185186093277293958463864227824199646958475528130572457154616521079600923686120771105082394726192994117993398931610761665562074280108192792019519832987615365186922554409820523458979474628053730337595396038883762087170966313835397767154641640865350764278549359592785953767147697409121770289649180640706049384480443093603358114903621218528110980544845561398017227551225536782498427408466365596277456296177606969186761244150695615770260540851797422909183654982708227050423944627630447705233429530588476842125605542408100825449199260581034913504806404295439015449221994770006782081567509386895545120983850470809535390242566203940892544321872566396047313608461372693408324744977527198163667874734875777746174330859913329121542378930133374128534967372564521449592789151612912053826485471706370790473588364653121944944139959504034516749380301837090366724935514522102378679102041975977840169322057829243413767756034749613801386064123850116883806328091555846329828984147966432476264130627084755280422516516522396245297250185466899273373329342366422447972157868771705470841254931658956337244310487691554797318286874549031124383181164745458454077788282070202217880890230253048408824377428975619640536371572584254146971904045828782387280830390915913675122165268256506132331563940405994367169921283337215042388081306428754141812644191398912396729363468862406613536284110652604761262965024455162123568550353142197985254132438742771025200126341278897988002688852210795181495267999765834756030149509944193242703984317811141288712799221864582017356334174903134502030012559916295106100451840324851476032591458596188217261388167934609073541513856235310803758415025515356812232286012490390063387540976599859003992029124407181977176810114793232701500926067948233326877894110397471634554033513913117354752642639143034578791057287646611687089539429061551479291975724410212696791268450815051992775330900922656023097424635699032094178335562383819261257092107717004057432742353948042814685765378727094520859552468638672229760793962980882024434340388401162004626890032837836911272113027433300220362379909294293125742483649932516665909414215442790640622321051335806226856978434519200974409804683053087512390425562251470425846523012289240312267910835969192258038328239673171889637670868286854438979084978223707867196546367716071797979596329307338154195263394359320033979069231200209472913182017269538694230808827032740093581905375436617061514272458537717008771193384926110100187290255756677756043590784220596536057904331512150758127519908457951136949542623617535033041942980049585798298593191794884093999321590600853552671067106895283655203925537298679597316595883225997528148462482576756185168756116273512495645794228514414402526057694757339898309257073171249793582061754721157806830102099100530687161190821295538030288269574962612551076567082952916594429302433786348493576718140167197512104234047562933001189823445032808373164207556575015942247293282874325349208395734288632864395515417576024261934130725412324128313593080728701093231117680745902689359136116261515471688110836899385777081023023227698088906363110816825320720035720921625482850459474339327088166726489744830315833113399679156996056311229820525004924634721137651634928907533914957706725051077597190957364279384869134009872061389480361196833822246388634839291366195542106118283566484835541177740735764911551842144508030177235410603259260366482860864156503844696280640265678888209911877180213600677092070886783504467143949185069089040687694636763290361463125204143320999171481463741296364202875734585521977563065483289592387731171082940027310737229235715575539708308560511978268679204070562128128047025698006415380453562901773053277618260597694691365235507466642599184707281554902885110099518824113541108670064271631103579862180026709202188675503587389550933277467348358093243380232518486524517830197777064220541897270897459934186582809196417507060641908175406099075453711181574149635066343465499965422112642468413787970265329539620625728834588568222200856244709515376982013174151894192997343346167406443826930950371287877057915909014949078911504301385289781239755687930417470869608187051939705206485470041105489410562265779753554742629154740731949889420570233636241217408484431878584837472724847928617601452545106583130716596229388105331653475798258271226748512394047600957302613156298038512568291003476533320967969246222268195024997105599277715369292269355814320418553379709887242480518000700507240328936141240667213710530189669234987361042212894384799272645301700749179870891225042373339456702236746807746721703818171511194879469576576006096988596765594106238969605772378729467855450572218513895043447115485234192801761462365899676033107639222615663575960057207309981862167801752054592578677714051725153698540770873058002529171211304090384182302340305740943829480756766594260915284975132669736127217413494479827603653474631025433431863021941076315251896853174698889077958499886877826315896562654855967546651556517161091157461309033041392649454375629059813109870587087757854798224419416483442542352489236664410131048267381729155365899321505005930119557208557273203274440293654957856057987432151349224459234279996690952542362732670956669937081784632456687018640668406184529555995220228708811973513180375402786854956920482801470106289126178356951396511861930166705640907847684787070685670410685763309829062257861091344522513451060309586536452547017442913021599712430260146356913550567697909762957363064795474759840823158352309873519775462965261890947238783902619294677131789643161317014879201475490405733192009772649210400715800611672838419207459307623220891710286117400292223907528560336006327369526103712155518089114643131350594382234049841433963333610469554981811634923229906993501448125358836137200959255929362399787440052882889853760633553993231020373430895340289912164730431660981285145228420738723706175567052482542985036240575538975661286075329631911633867296121376894344318907081480488894593539428351589152571493257448299609157551704837597691667200199710838802573336211505889334701591791838646273514704155353657142438723029582264422931387590531480511612274641364260702689984975283043053973924810826426837727625403429973892868646923241698729255764430707129497828434102395493700260471365592658295665947144710055195532643379350644461068513472490352817075937169496093074387722072586598107971441228875365740370145111767651472169438400933867071566544556201784209877535024319957798746914344976867287583569077682720609655626254224816711622590027229067782726692465837539495912592538994748060629653116314828066893790406095477709512854428704907747114734639587035243146204916514807797559522336060629504158711139566162311667364638989754441039256243353421632775785554428956387097155863746985252714780488430732417152936667300501001334353716835489900864216440561107764293403333584030989462729001098440938398223118627173037719922935245743069361272236919267180921819357586161355178094944604001897327326925830188667074133799868061098052707601982927386631769303442806058286443150812480152663086450225436960603517119244563745101163651734255988701212367485105134868966388820493867043882920871199661236029861767953284650180349380627892150484798209844041843058679702807310373325109361648441709260042786370592670549176529998459773952300941151689062834967072593512789791134474438933573149505964662315622964267295037089203637454470889017821839592694802506789114208523990642912386080230968485305554787770190741958205401742815996042114832079847220550820470364681232875024459332841696891899574614081157136798638665905370068593993148785876852749039916263518046143197575458966866891163344881365438934182558547736478677489845068583015863575341853880783710482666174010642283931707388862182979733946324469296564436635078394236582272351149880749689731340432866365040087051464843266892762730417708829000470270013603463178917258184606423752655474660980643320898984268622575312207904816486404737234001225658051641089522638545299607142492705123021800039132390901103579463228186282100424474094638118960162451105091729590355975383619119585725485301183536316451220238516080194418182736503964590249435172529414815209741025612818368824812237789447752916251597042999353567696439118615108043269783754947707101922135705264302117204062086604972593281497374883589377988937198399874510007371180687804423697812456058557498533481643927610199045872535044056871653926737965734057928086976221907641173508692450488155314427646273583992670157801698062973303828126611022215874851182931476119628872992226181296849009103778426303977638961490881508017056620692305199245241146971576331459462612423223781659988326252971803574868697896133270432069875451193029616892851294998369451375635162258534877587450474555629033377358048364377759092006613735295155693002029061960907694443688694222669285616890772182947075318584752279776317497062805044952961176288997542870217565030883920959825509002930364495079090747326736982308113095536852033970154584508770259073359204950042011330442036727093032202673298424809568406915051169128728817299477168390322274825633938418672719048600613078637257710598734678543970061561732490172351877701750576171082405771828288513675442495772449664529098830516135345505549293894576404552311121205805914392981070222501342440384620732071306428567542973370288700346769925111698825279197912330045506504748772964019350751526128772228437476424356485265087243764551647556743319316378922389581915597871845767865250325476810579092376179114791148515875838454370684811872348605386940996865155712570017425025349254750790494554302349914838698018933200530808705315155428247614607141494722841424579063646279972283801913135681229647270823041778130427227108648458746434401560420617202379471952939093521338986967329055718263886488478056728110448139489921388203867442457425345984845898980090515170491800819667807095675145633113862109040229702666951245633033750259499680254917980255382062772070373052689956835830084463558607737481780644286430007244729934694168201636926886794454147383031817842353260789716276046134479590371849663118543151508719040141901381545011803585281292903925248554191577440550343172668855257222131843980179412619000010684378582116513623104790919596377153196979008814850433094115818190553276340532477923376346566078675047743189440630084662928318530517710522722667306249120201736737840979843117288669114266569909264447428550651625141142790429303281072663252462303051085790444315697741342405564746237796473004746326702573412173706241998445784189847301590611519970247802258525666370264853746074671555443806840572824051809432793448637791752830835941177445181713928096339611302627125724307101928723519329553690516843890411257655686030887844060677494961967477910273395194016268167758670466047269029148737746875529805800097481591893847821389399630710012912197980014158328549273641558433628696663695962209411806942293365328596659995345162499230884254921057407533789307476985061847157577364857132831262690105431733806345453458259646131786123695589164864739076273418786808490923964901033232255264857734008973392821650252984620163534499813340690469514754463761731777281494663376365691948635682106122316031082696015679091004369554066561069207246498077263693062148924039541263682598951447025954194763241340585275181693862039806131045068434786070106770824871464239031836989776409425525836833174891677690899873194347852769696194357592496396487147444952180344583929098172313445939643582382345753670043526689940166506653962210944621858842286959725466900604823714024813799393310730712601779006360896539780894454164551409920302196471637657042949093892449264285893635169393506486846438437930733014902245581138258838778153900602207963271397048942228892012392853121780953451153408214217518851365903963877456299165250036874238344467583943525290535857522514133369363733805882386404398742608292320909154757828459338058991979917977082617156614278695649859727825013489512912279697105669306891043588267342569959758272711178958342451145568025666020289269843375067293417170648643671519914209134914585490043173899178748278790178893103662570482471942742690544937813899167104190883123205389643640503118361539579796307559230368238229117045335281512819257971119591633144367461759283409857208505562055471413440130513624851854838786497522667190374676412863013479238059814888649012346693501179618785503367752936884506699013605783880402085333403604590164781270218884573413632436821075279231751706545466805199836723068488757710417682935148984549559671617139324084795308587324401952753044832965048336322610179919990310844232213856300805694684855621172891103429817038120532172128524662086945477019825048612678778961057886068743405637535959901968031176770166538912486989912134203122163962514299988591962091463870766749571794409796768566566927039423936772217833615737114382558119134490762832272433616300507245431708524775800161036529765159545931523791459516622279848623225795526714231541732099098385086620142761960883849328764762215944538899113541365592856603991755830177054697013753354118196682739690234837486597466281145913292386515649654568099395265425227149409559894946048064318070871796955526539194568893802458970918553140985518264012926175205017929380071872051651174739013920706455680197740190932551402316918290633255588737529551622528408638259338918631162898288664853637234768268002329246188131018900610851912401141386575169273837077832983638436399753824729990995357265082498880783849243705720037879078007972159380616579521511125967287347187607138812467436436163912446530600944458183683473710325553187857092215890089396239733587415964160016280036810036627763813624239177163355244900241078716176193013879198578312904969212557555758367421953462864136027426046745648214266714260640067494249277828650949072836828475993970151220342103630021075503289108158767615878197467803181390822400067898408601169854162532630017426125458218006581289264825441161805161716520121179713593075574772965786537453449311099352411094347671624659878663995823536646151097337351328750382269748007344840426438734563517388882169092145364143768018722295732804525096344833761758300803534767949177605393259162783740313380835648687936967466151630677306297779817960039557236250228377995424975779002469273992785020243393080386927986292186070704763401140027663976086637401048284000265869099801775212158240961931583139632059358637885966460846493118692465276835501490984723653668364985908756765786275802678441562199914162011837367026889010355005333484184457858860314088783425873216667417659320552345733432698340846477839233636665575611638450109385740049237673333448300621561352877817557674131302447912169281378205160301516641917674438666886474863123397667456301386148057394609847298541710311065237693154945411473009058849180280658323987147123781214947228883710109075894074323331884523898305271090266200491776079641284533953061483268754104086023961430198649122364011725427399688333249944897288484158635001774668592042680279369458733015282714853305264535025503492551624107309436072518214683042447754015786504427071831271860516162730694494903076355207668564403310043722425490933362912887858399364064915763731229352573745018186042023445372128774713891034208310873871626714884578661542077984237719662052003871771855599359707119648248238098087781608449562364873571781586561716188072468779990825818127206477935323324664770144386753135988213197233033454698141294600005053353409373550339873589617869996536266996524099096645011140595542851053668597716665364359830831010648483003068118855937939052380760105994713571708435750419982271677067405639921242898234804472521214445711223596743778292149544863331894243208960577064405400114343957273731843428303695477262463005656695088915178473467605777188247474109097172657986079711121874937570597463875883694440981292452927619145084111907407143914528761778389346437209742942401813601003193302485432785253621328016419420286117557377890939830969719031125289786148580171292017263942319295924941881302618979539290717228132832229918208110333428761640878724353448484912577985601857249521245929393077528707576870995296242746643931468299026753874274072321091560134032597946772386446275970811774155913640354989593126924764445228674128701267507574484021910594790924302991972347347212218381855105529391001690968470460385772441560448268018959392539259126947022871133841885360479247918903252834891443704505680872351008367183338059525472213724249541208697665107117499146148638325905561846609919568989441845850862321788675269051648475496448491421204851025122105073315016056001333886344368022515925461291274212688308703677271907807575590432859958021930892357735817846293438631244226065648449191340651439164517381266392015106396793635689497596969411995970939174277677232529544307663675214036119209409948295291193583985359304760488649019405243813973636972183981523523546994324644809306692181105948335721954644340899448356873998686487707467858565781558108571212177485694840413165751989262513193824919150937416861561417341162703793130315175720958084587133388120255099441056002085684725687137454852242009175181069258741938408945557423047403644661073189776415673474383137766252781629395420579790610527388344027468187570137583723080324435411046748835875276248230124409645827054810696993424907797265178454457326781737332297783990699302376086486122957808549151506332943873819784801621445887837011360079521136912454576498142959607896508534324835959441705073428699417258273530091454482201612795748364570322097557303390920584292792880130359182080840301685754101053993276241436979770226405894128084050133559126267693760853020984241104119605315358979244502558787667867064086530337076618694234222545454591103413530628620263433057988602372251310700869026827582130117934425722082009345833304985164255070728507906811271055714029640066340639064500082535792061216990884473548325283891372461189739431184896609914469640604861409861103547518453531048025407509178096952049093509770975547313341413214537370128920225501038351806827889453572189529716723897605008923836631143703542083292115873784295845780321661660388625609746156841317722980974891225245708988944823596070781400201348613979912983046484321261365611617570010541435443098116803739904983915856622953230276300748299797476344369686578053484655893571946351367833259214227240693903457054189626643805997335269948759169380614463012767282626086078524982144604697553003022500014481398857189203843679187933268994596121056345185349658423987354680493107703266359179062398383290124324390902202001797051459624681688507735090698382465695933680225315143965864316472468995567672361347470012416845182269642472796055092017360806254101730434656569066213294800279460204408730946975708405264103201017011257614056562796072051033672257260396964710958817461490789999189443247042871233731428497082539386196548102838290417314551092370884964789993618957018739060536229643273419655938478381500363633874673023453296011100674300023191497234969218549338766503987347139627705779568561744959183446282091526305586561539466869253307863334228912390526025153950940964075770319345329251311007054585894002422071902565802835321062078208094733701811229980386983662642336183228089005760335257207696424884698479153675662662616739039764958202964895481354633871637823156695966838425689118630504439776563586776318075307149388334353850048437995382741915931593684483542086045693281044592389783732696896491043901446179870434944591240928123746862579695755565281610286820179344437807296394525584497166323723468898870926185166269682687597905144410399101958313946040652993877720558472180248149855762386681618923239894255567737885165479121787472917924316136211011982135212159625868009722554639753502025668307094383524104100776586618715634760269411535241665900839554012264509505592359497061318119737664415003353467775558243448017670302534246513004903877693211743656447651586472189942679861548819594460721293764180371220132913851989810131810480137679313630448594357117942391448410837368677548024784817103847094579888762381082760039400438641566099445715654298011412212621873150948189626999180458985497649613878835760168405309076947427529739939431253526850193319942817884566988232714081596423737013303379417860260410204008375844700296743295654296150791745956587503188716765477226074812303347425211124465948699428190990720751005420658449854651714804973661914798291990667103727557639466741811681476107447417595082552153827373171985566189025516885620567939244735516263529604515025857715626980171016941015528940503295534953131778607452075378824113411872618409935027512286440970848663869468460885426562024889437361322462900559028334883214869859954871438149145848432808026860255687518137675728767942982667504137826161650411817830914582463476006757706891655109026175401619602922515464774880882311673712839076117437524208006145247766802426691413315537258708925313105963419167958343218442311532345351645975717203313482468622713869045422186805542244445311320052909499394191980447180204950696169891830291863311212503186567601008493137374846208988414991948176615229195789646340354824038445477772953250572435333233127494084733881397025942800333573598526111680273165267338066540507478002944820835370246661336788808396243906780437045414329381401018911151290929644282499856708450415505930984191776081396700148877277894670167151664848597940704933673271787978795262940680520341136436150531267564470866050402043982190288342293028720884452575907873341659921544672061477596862122124810113732568157736094640576408397009201798960268645239608489291009032311935646116181689246365111447736760933302342266717898587418970260111948376878339843655238385913410983408336197576917390834397022463017433303345048837259017221095383512400510470264474541243821738685033638792913037712404885960979724285200382158098286833039093228056034192032117565758731795574433888386916650594306378929413747505798205173524263025080480477493612317957464652390355132043112898645712995458376567706378265749138447161115673550764632595285107088009819329137172227462378513439201970812632199929597379426116893107253822541174734101687509872027563252249589247460188643389520473052268939890313409759357982378036161418396812789218862538843626519534922276480007646726066933340459777681707064123893496536190535673704427627392196594827140423493009237643853448785607046917509250260187312564700830419945142728618194886493350076471173828414566482158158140929641757920669377407011686791314610440125119108303934299922679308622466983284958317526743257942174022453262986847228354185969446119831085911442524526443735055038370191458785248441428854773662749951995994680159822701000622094746807056011332964807708419715368993675349577552813127105805497825435984605606470066756945138920463340195895183310601049246690300166886641559085553861547037133307480402917973701367824396331483965277542539539178181181656996354447237440269497467941120585007493261019236881490526711132372360333222849134123988087406698683248670468927000333159950565080572567436918181023586772570161664712815925334084672138010174454849966967751362621729696975422525632251195212097066335507360777674134246532302363314503609777973420378095497243304673957139602570721318057936454609418181497165235310655548837651460672366016731203202163348056061640324714096251872110756741200641634987511826445352338245102059042219084845805107887095014541051270905048248279528791427585861964717971077900087224795905696977933663971098841654771968027985286090929826030058603981508820789826541725465651732107611595742135644670686607528718674459627158895842008614747762372565632033218045522921382995504127944311011463812729673001971468065671030764387533735899109786917986829572540727172869454415650633678333989486733594116254899200727362522272804385170307575487713813391464814968400548068324845406942839314955582647428166766938740364363426412944321555029615686106768858848862841323586925235755508755499202956132629382310222848738523865358244310029285305626120394663976779538918656422019088834648734636703236763837566665734933452359608379038514341868568070086790722051552061438431457575602345635845466232222739008224735702363477702497005070538178303048552681656394421600481987721752612191495255785266334281959260570133961259923347873711881004943413603494955540557851454622089162370712692707124862599272862035484142392314487095585475821242523881153639858896517087957344283730680348693212647387034216658316075068868434244848582178452279199944516512075851609665187029577215936194142835504889993112829200848320662388822573715779051267815542257571432808104202621002445552964869277587918783854742575889286529190255570381757812797618860944693031902856185200146572671928079750110524534874282230985214915393409922871035876234836472017658336130312079771992183206210361840380832969305100299516904724122160713071578516890830318227216177081590302963024064052427039889752579910160654653803423128288028405001540619428507399967042618392798382393004556085118467021297140811818889055340964426548992057343919671203914783185917297323301767693452202000299710758665345773652044058123981991071550561665076006333762649582437435598690453784295202025766059094540896486559188970866396608763329428964473627944238733241311834730209832420337309280719922665274716764805237335583747739486622362595359169956359005494583355235709146527701613154741244076177961496945308922377561258279967781235820880830863221781822400980958680792102426532098141838421240931113773587433107066456526073761872755752091937137167257388569608970528182104844956816996128307007997354980535185394050900907408104069235289567834684751583078365800176133455085937428939347658460312719484837287597046663963782072937245771441531259297711405671475339706832684557629280420706463521259418567711892770294691338406661840111496258300982645609242544190521844503108541728006880123889079111978123503999838544113451502809333925593524638669057189045399873469896633080957154903945016233440821362866326437353708544823456707880212847867420550126762973885528604205304438335041009653200031425801948199497468511379954988867047684959987465449888010729307102653162413527500137721660244692607535732043428530552713778290446612096792857908337166403091720730473504887085746658667925741887659875460294980109854985812057074118032806478098681084888495282507862211732794375893059224158303512751024406355518486818837736686075940330766203819457276389969481370924787897104900730449614995097057123895778398344257438731882767002161086070795538384114637085397098765238258256906765120942013884027493142004604023592387909972886979288559585184875306742811323116661951382309330753875576247963639551071811340532052278142012771133699013659380307418537325543945605452290757811595609105346678889098404976591841236807982395232515378715916618997137005901620324941170909114284556996688168715797101998274603120081974986447670621315162556753085048978284006267996751946765193017079052851437819058263691159546848372946095262288116704536227862997445119411901987082900381998528062085511454165041030404717705510711448249616392630756013829989925722675857251893800657863206306350524578004225673315898819527635082966951556445609430065794492801425156867700295259045180109573856353005053347419131575602038067576025941572681470690975728900289554274610275150827279220882916941376192218145334657033093427783949072451785964777434687214280670228255233417474409639871901036952728221437195166357569945419284988517506986104762766579912092141261885787773711847252740255694865512354652700485465710886973819252452520329828643736953025669053550143031607493088536302488153257315240128663914156921830309266406419044900918841242965991769133520902098777716148348626612458376795140360566795822966498850738753136440002347596410968212905970255640993473432296752813545950424687845284878831287536551351576707023843392213289607335618206644232272286574788547678308055842288886761208149109961472314220967687223027489481511186302423996759381045390359717886195756318253393090168448449061330540582813354394177607362206110387659990243126122409237489314019573850267941199873354285977789747146514935627909906802270559627301534955910864864256428139164847832151662505818183719521003067267663799939778148643144547598162469650770302410845231601562823718375725255802754671462477774365345262187076619559873658481515420342257027238795523035536996184813522831296744576265716854500741182541431728785160375900886986688415406262402245299614648485799292177398933103395940049566235725792020313947472012036898469049537082504930051191476075864923459877608665422797235747054659600421129231819026621437104283200440333138031928584303885317813658071498907236679324220542334219381884208269266554173406125747891921889952828889939842093596951042135613080367128882714859798115435130295560573601921529108228962143894644724130560500866152125581361917217725763901648532849101014397392097954316490106455935019419575545139110041502429520160552643159184475687118934451883342078369613415648905379625585481607796672685559729596978841996676428645843570654191108565975959692405341540766522682536032031436197246555917366519968467110698191510463695886969967436079806645079340200106171016580470198285893253504267955421999053289394890738843680098740502430579652693715977162830664117542650980483821869517977677452344241845360075158382996322512485893691475297657030884514761252070653734788494037901164319248381671653052358268022751066141066094840610368754452363833918272500332258574404384112756682454923548738831753461165871751847082711708982846771249101940770216127172129912358690343239316048433769158199447410600485730256060904310557742108152139690127311286136217193019671414427063506272070700103031557480350521190598168565856243624489598645776107083849666460781278259194788502968909929383803750462057036548280699365815783876949727950837862330128464976025025168964111386125579139318420851987231114711508993383724919852974069135305523567665768313530656920962856052268662267855014514388465268528175972715085474922731152932320136321768805142352105875912751865029932763154757071214660518446233412311892510053304828712306255469318107704985738473469917207627076885481432940723857902750065638219057772260407396345402447426652934273091707760920570197491294076592523220895053961313963783909616044994361517939496204510826184915387079893848857013497824777494356421892726277404115803979939978898581493251434867259932842257778865315954963656242426759406551121660225870763305317803005427639165423294149802599057356055456070208853386096119980721975693858571202661899050906828758407164048992649690345088291471045931510736540619808411547682473622927323970150280849624339217821560961947998050142186268754462667407035415843496214923344297588942979584341665329495017283545113546494737221044385809875779977379007683121950974423093528930860591801821302240573715011482777724845076161269289966469409705882141216952523625067853050947397733076415422095754629909334401161870331859293065664524663299971307966565739195494485599163916910416834592870510210411327936085451496602571744470804073106788345263657284710904951893266641177034029192636568513214957671187414014566607693527249418952300260047648887852181849138617784020070176729961605975875452931751358736978090438341386508495994835246943031219415818227216613778485562923076542462400508237714461940392463405663319771213626680479012519692021403357087864059797879126864929280995192443788779248923137479411269801955722157676613267136220510495034093477683876413876782477142207575221924053571088601710302221445380573518371481328537914057147564370583393570516646100894042559673378895885415494930002568298130203108184749928382432961667383610902923836285584684612426044490211724273080016961970595003070560795201389186344364645288492169600784145501909076386207870271056468717479152238419767123892238950205251604113186591815103283518120682452076003363923779520712909791223277791628910622228270864435465579428705492041147397525241015571662158492709332781430984978087310082723171394640517455240172966017376153742729086418350500602889699645929875081236968723540045338234014341030769758851841290049740666192088248327330100592886921892285806129786139742034659511345313110677634075421557147973584875741510319637084833557909352890049408284145776333191899135808319334034677251351033913169331655900722510367145230463569752124861181714007444781693814478948752474779616234579982398046363189876841587132431703599453496174516759245189304612900213894111288176670125166058050989388291199937574136792814389601432012686733959668205985834112899118164969190237665520088367252035066730191797537458728757170361952460469275571194984350773362874955855352436256526464391929606228450849112640677901670333743718618796495101819939632351769678461091728557640875477194662545093473991522223429471135554322863804665509217638172176798761207906935794156981723007161224545909875336622913807427478500190622727218701805913783053962510905884293932280976126532541106369310087451517805866132455887315966322930717005271563701449593660950617808020664589669081087724106863814068421511953451808760792284796804780512663991873925600740767009580655474871970460905886568258922635223530876876927197375290751452285948752764382336772742982285551388715085026152655590491351885995670569653543369970212076872797492011141658362401683403866595555988235908460763188689402040554150693602463349981846091149971509834920170877343363357090954527673413246375239020511564634576749942759301328577933026506041480805207669133722599432292941677415524827788504514856885139123982490645439193168912247122924205774125001917478763743512151019835897152168731601715927914437361968014901864152950256908655371533371795021416067134210147483227786037224186676079627828755519037735959691910491138107377879570352374280765791950486607245166423199835964701204192381968354949369987983001384277397818832233435798280174570577773158971651796108365695565219991798923735404982552727504023468181272069571957894645193083158561343803195079479053933010698616602862009039240663257141025101010533391349018246743274043510818534339899150034108637491814803917209398742278299443149035628963255509054827866638892375784297487789395619485534235254459971500155417457517593710500633855705120081503798060014617187693353205001644221924556768431545976709876939837378181935993834480398405063997765826443278739164049044676597716497284150278701002118115342648999917301154715248803433952543439648153833313187514557936190596240407366011770016865958907876677354370152008707580645215445852641824956539081173164864521627238843885516814882331831611566562295317668980241473701927958970593550498039617162419789039233926808901821430849281767745261881509631646719551878394434573081674904565317473449906471693120487657821583302781951613070609197009428416667726676257654634153073863577671331993841960384474362783905261591964668305971566782881260675297049531529693099628808109746465565459685846477332180378023360795582329060460082515663971161284308651170867772137817651288162772870084251531466433210798029237391395792411838657781259440698033666474990566883000432441086864477746319914191151704711885457424196652848005073814389768111570895656301118296925541545089396685154493674661393527499792361582975242909988241851128801124785904866452774737814993622208689327459767424472738683566181962327852258642693231307814715238609710596569110161449663785450298712637233536703112975205093483890666764476967421697684302435897150528315706403390866733490984779601353491458534687094756526348109253992203086864665938335279668677941593164733680150651361254617975275369473821050699966615210314432604001287580086137679617937076853735390367495015424421560300990241938411958781920064185058171429000145864513250352279197563500029826349607416104160054231786737445585735157071595901169613415730548039356914952778115190341775522272431681296689669613877516189372603504793595716352119102434965888616719032349111035380558938555594264068024313030071478376078669731704948725650180281928025620894187641004158442636231900636989710979464221008734097912095011576133829737261041365574564632623749452377994556911409763304425373378061100961681226260173025532847821659305546310657660785813790563971203180013431405307732900473402196928366739847996436236526216086351573241771911101627482066185096775150025159694480323239154613002579127952227372022268498196582218955969146029753846483716829238961893631063760948237540616405425172191100884488228181653548947636910878577869376663935977191859712207108747074951381830700200801461376608207644332985639714898702153852999228368673459141376656648882049835969720318583730327418993259932521571184555423340590003839807491255106850616006390092785129769655132477851533877991968406870115815598970841897135113899281671170439203351842939848563715791154957662688139184850102610364301324265580518751238683564707842043278699150683431295767923334405828964451993029086877663479822094613919601585722726597508757092504296950694212494350782652017081152064697472232322540505335655808448462561855452881150047566639406338771770460232542271609784817508519620067402576899239642219376399499315161404515186834766544285538112856186246278714038692517186667594638746648430313965417945905084596522679385012927206700469940671857257085132859728957492990916449186870278356285049516751519364567871393256694579394647686514555700072220009014705453775325077822312567198839720398369118587567759927420574935183478362528177520757489147015122574474274840059099269068162530519312658167609731372949677257644964335395323912746553622050141061893354375706286131815763397760125631210688390567236788700360578010010453594371298041555518690003399997128359744064172597350853445196357863718670560995846991344768764499466278342548559995041256004794857988158101807471131941659197920168610856008979195983060047566247712346425522837851194816162703136402649251970168994060363927407446218561327895332215259521467029247525678723942263980466072566888181964224098084385627303970412831957720697240139372245757934460678866145162442435081027760496096719007531198963992680952074148140504333445390620557295003548226790954039126965694025545335083302533103800106699370930861992735485700455488024691249735973114529011665127773346961451426348966405167106111574255391071801755019480481381399722274316987297043402173739875760893319280128985593204686324478965972349477424265198843288434591820782072033515889539632391940525173758608925605156080300376995053319250538595887087497700822498906154651727764212935894829026459669632602393269018836026355734078177410328404689060704154547113669460469420928096101352113318503753528241519126617463540167222546720424512630402570253321943344838377196342706519727466670638543235160472344682874815573255240363287180374818737966991064650343929890189139546186162213418772194930564749847511070986486010148071197126778594102934637967829813431030683824322037950874818574759823585740854108545923287540874120596112402334125758613434993179910201716398285275823921760903235287366186937631239736727246835480562459022821613972617583807297980137345292938992506299693299685692707709012552468860902499678700660786239162408562307360676040016326041719096176670797380351759161380320138609080881753123620293424497782260752251085503649245507820887156355476848923795344064767890641545189701607002398628141984828433582949829646651048295159396927917414281146931824261511601332151124078809231968593071694451628734642991300262836234829153530865500017701394823324101439671915149601970113280069641127324228007151775592552682802531745206963743177285679383698683358004915166603579006532658553254588264720873942471310557782184708544081848988995663432867921058425811159123711326953838021512636093815399349117672279876074895640912700713710068805079381381574062246991473805773765918749309361041630358423862237755912394911471244861717542899301430126703903793994072508665786909655124520859003025204999636161772450239053481113355640678089428829139304480321934090175792057605375138450484341680190908167797370506851464183252546709211236531337278818209939971501802748113679751307701671443888396237001115434744565387414582807040318819584077239050849021695224348419991617270737488626099661379130437950512906270414128296760811296468937378228559235143485188451146601148804010168021152040746883711394852668960059270065732983586086350733305629780146366069534814402108895458873368770305896769559178151078229087557671521490047388926198242857355655741104075428833409348625486372118146063498471991932991449707998009786838955128169264547140097500838722378693901642842515515561508964207314556307289516084984988238633172400177747450615905623663723412659886015595446076196209536700238791656904189645374212957238160382330371759269420503789864822132217837643337146883999339325839483944142438826439514123790003432892957166406954325280106163955782245476458651037291913707563262900068614710331385464612084117111792564727057234646525503191204205763015697852305680522583627159926774177164734240930387584523365831842820249828322544308336654034881408398351317408880627778663546557393063970998840134286470394652657603386212887300973397095613937280482972680185630018762842122776933528966312542635746770429732003651060122816796240966603013527171399658243771881252334321436615112697700505130706252980958490311540222387434574565888032050978967597420451850819923531649380411392661007142569072997562236236648421338469012783075458138452395165544248443322241246950340862636620065484238833626568948412071478019633817283356803500523494172690276340254980407314359493509684386237655661168300477721355878456006484662960044900696651790696937780516324452623666206018719472376369287263418203855905592105666950392201547730645900431660808410881463836597833807566245005545020466076642502309878558240964998631630525548005823564649078420877744295551895664689688889889350524566872020817871147824046040203473079017825422887909310177564395417772932995636640502213809669094868770348176283442710871872845600064796025673699749442855341684241875350417860248608237004787327841909337066857860050451390296534840529083814696122144894606413761732597954875827549816766315943229869624876358648609155040912782926526547850672209005108301025436464515326441632266687120440831589387233765574642260187081722852583286393679686685362891966633594505377539669146794587857276458704261632759650589889304188325930710929003869359597548910961879471729269889068517272449712506038340381391490344841909215916475391970496404419386002785385876790201189363013091155489447785031092300637133949412852026195693711719264336753338729350964575496907359682442895827233207708667485543792660372661572874090021727448428197490362520261499584345127751437758937104850950967222834651971628487845117722966973172654669782608208541337294379673627979047863989059567989994957405074327308877089431674205063084578830409960510110353053183075520038611905183756053063015582001747910089821996326945982544816407225850429651964861451930205289528187089857385106603203696219388720228511144612852696521212216106685580530884561346177094479906193985193521849544391675132428554632244992562887020810693658145286015000572383715268110449319961730635189434843439413509275495025287305395307466032156022368506561470680925643602600092917238339935740995058486029891129523966758251208709843769590382732922173997311440013574656919245273727224933844218524073415869488820509516361434260746249566155150616978957570314509138364611291689985606739006455592318233931794593938907424338716407311422213666065818696309231278867542987703949195873681424010327225675765159551323625089545736038838756482981365330625065390945702238715568630620062042420433519952986172422613456850340274384145895751326675471820969696467337422249567199534861781260670280328533213828126890436496643577331716693963481811522947797688575448937464282772198540367089495639680534214368029148935235045104126885873845205368164723380022415279387708297531024378965355078549043717367234990312213035017342032293120224147074097885118689507940246076125938096462004527612719998320429828311167571397339228009654850854738925792828802897952923433520453709939756867147760978240840220503290366939973159558610121460799430928959874382538138019190042901419671769915258890989012861990858356124545054822616487001254142843451483070566446405318843482969745015855073795409565000696968858502972237940373329023420280715248725341957893509871264591732050282957222734671188650526706550879423789193670629378887535152903322707209473138588566284203403750692934005784213322281331780919946695116070636393977468030847224993670821103584328494497981717667698088212458542701933899101728779736688967586425391317880317670680396527147377589307018285030182215421652117657826391782443258330298419751345485421392782238925192476429367742859700671104115103044084282333207921431889846923827108715050795760804070181861481301216462447317319989327875100416687755233894084845587583828518803696238513408730825101223448905702324662339823487469044783554657230275232825769178612887219687475310680367220446707877345916746430915995702212286036431764855603608701904588674974425950257995096253819372811590224659484547033708895076185939357697219868331834226822778270983361569596989887206066237087775346089697472761024257822198137623024383785596000523197396484102430650563244804403037799164854947122485949776640135404471347783174191937071062550416808338475280575829357696666507535525267337389795311467470946286575416840256872818945583278416203343608576073386263901508549116710128329263979885208001802054506765686881991692697231630193935355908157209536613834805426485952415290869176452889757648172976272973842848205082700520688270900292613279275902050289547862275532964109349145189983512107997202691195491984606864460702284283509680983868461010671134206600557585907714538026370254796903164074385747335692831101667873738465701837227412262015206684632844650009171345285616045646460581111884334773697133965086263069151108063143577003140776107813009748906881416079135626804871864808657525145532710710001221349732636734892877193854556943247522504501344720137926404385231199229983660719931626487860036008454271125320622627405349737902690931494877106723180898500660320845683270645309040601046553896166252162382495150755246887957492733245905641208072416819622003668934442438235815348391011526090214158386752105367952107837439606895875927619863651412988389371214202506428707477363409703926696221291418445666390155635875831064926274025242527995901084040651255616976275448914113035452278712308949931263493753598568075989999660749521832387977798942241803311497961546770630792881416412716390390788718887991267741625060974707957689446544090383789411958746268614193317783082602343268574247636908640428609513517391731319986662939353903053298929239814151193216988626228642312448177678535945734155002158510410822166247747720888265662869062653515992366331102171725179828915470350991655094495106657223505576415536130245239512878849660046071146325405222372023999260737034365166454285564178871236573277689413226775420465813901842958913279822107377795876377095494705573838247745414220782592233477555418591695850492294872306583482732108924240940360910740252729569473076476550233980810670605424683762806113813245575543620955490210838651629055837524826727890821300104390364890710769135709983553236885998341764913204461160247483486951513436896172609548528268477622233469462258665571352583583530938105501741873717940957067899574239889847153637854636222652180469579803844513955574114093914068242955167249957459910951640801625315789367234096557178262373961135270937067970353415633638625147159986887582401203483945197951249644805298444154566012670841853019388071224260013520661801641444532444809591713195659234202087106341575844812269670761308901303554475307957578170083191077101291630891996671410500191346268346001512627103704653893737374166822979377475756485492504084444858636666223648590373585019544359818767652250464766782414384857703305714367917712389566548967569587191934998885652238671437932942259941485729300858631121187622636251983661533740405840414891030726346713420781046184929834191600090797981930111453850751992318525819798272297425793107305881138397533769292232115941353054496027947917103513949046390918261401155106046695744758802553684056323030359839273181272561561785728758795596451745074640071490421131766558383862355341514541362034519168260558212652190561666847116386616976169385339629178319391735870894482624494116851409300990103448292292069243694053128790064023231506783689021814248676375187560760624475922771510105567894760114424247373335570462320502407592500165304033401496545842235713159408887072175530326463213223571240179460724827765327833295596437017754108506588249805450749779033003263845999461928885185405216532657122404979013253632072125696912501345147544013624666220335259002676327323287365576150914930523361457354078884062770155566641486938708416259932059691632038526486123005857386638032533793303918638653208854006656295418819958434032912517652914156601053494212791827086679001903542181229092930986313269333479592511623275466759661350210582194082408452799737236846282586200996166085571954018886340799459858093268239369034433146808939469616942661499302448947867309274664350312531582764160808075618232354469494494199352571764126061910146614517998870456108728136387883854903062921334596251011517342666697261529215129770879896924950437190462578056185312400290548287061099910607273621945270122375972445996888487834545865882333955010622295049815765265234132341400750205241995984092958008033161922265743139699614533494055089292575462437740284656112811052934399655323529239039285243853115379988962059658144266898839286296953372442964680147951915524746285064963054825511809048734742852961000704696377093171140768884434751263565820200814907472850090982522104889553728442311128530972836904724026841185589032664982413772235663411090014984320171148601396836235487969817987909869845786578393887955216017162558790147025480485219217235309406396715801101895191679761161676522019333953202869608233004383873307869451407053091451782433205381827234323570494451296509784012894329002756522822349125756204859885751019902768740477662670618061796913847826672514191110664854922470026611243370601578325381402874592179486387862048787409803737385523110687026913367238393337599541469541519606274190982473517983285591389199045171920540002490942137198880383760668247407690166282297815297864736735752033788915442145625782670096175548362838884624447212683422934780388536844453289759588144968131291913235975160890480072048655437738175060769836661702230070088268865434456511094228609755243232864748715422447506488146110366884631388519707089772133434123570878217597295865273229063275472589524504211102123593509405414428675755787438228969827113534931317446340893152175767612348099228387642398990533241095487006935126306913193597894010516726160737054859572777231804454204200331462022969019575085950602207329495771741954410908107799018344913735533019563701776471706885629284278648376612970757760887626565783212098422266175200450827297259852524325698818578028212009018191679019537179506642150341157317526712891261348862148729010214986035174061451697454239521382071608020069945403265129276620811369330516192285228338466083045546438804808084205809533723968796115053218354289940284429440458115782659962623381079584580947574929817658182275247057201655207410798301960281976263412030490216594226553782888011858078497144558601945728896138406974056474363128252127551924378013323290468656401990540352488597703299722938809534882723317906894465519392608944645790957285066882533778760861092058613864725395353809693121752171033105192399414219999152685094598369805646508009252252290850786970257383230970660656750756910405735772204545074218062876525462279610743093149535013425629311782488692958490635998444798107820700728544321010535716317940897995734374490228439126150992967432076814081972897171512140764493272538380473915816435102013261655481087647376686438198202886283413524564930962719071174300356669470875394632924129680614978033205100063904420824645036846898156333156714597879124845096578029081497713447580643072404502172386560664881341999045043303794259468277082830543888094345353106296366970563977345392630440169623380299659919794109466911863814416966152317909030132304187137006168808528679625871122658443176095310497994461898332306762739660554407513866132721284663014039160599935434152898456787387587287088673473755789182250797036735023149458431982521192173444552756283094267017054950594253338220037137895867227327604272825193487275451885400652039090569741135541252359669912229999456961854003630291588775102326997763271862493025369966831427416518085023099732630654237651539798709100806564313017614217364308036843110804969148054470613182966707505133630091773184309675626143019690478797187819359342166122234586982787757092232372056013289350272720158598149388352566947047492412590793114316763239240389216701347349223247733418395859860897609464852670518364826159965363076146117245686164295100963622702239125798950625634833894363661479458174782658222255036173679306410237417475496695933173804499774073097511969929122582520176822348488705108343268143144857829054268315782728717584826135405069634018106807651540574035464984318488284979292782317730497281100638813817595149680240384153174373197900818924292817446877318290998467947430045512737800283390281600265972874719060635654273916628785598208790164867524951531358023959482984544055781928814888554168029992344560124026524915712447904379062840619454530450854728586291509166996660203503553574942214756753496627015141466878748727667624273514223656226635255572712067136517380860744985678004313776212419021126885370883154106147598512141891104276302281675210682715470344376870422081978250170546565696085495393234179903987545665079773950010957977859688507348771959712557446206362028326948860431564786028767651927263487445504530271035528137480703000476497581092624219310633359348976800581841108303144143655642399765781304367903763470209028326888448350541486213063975728703426556051340479674955111676898143064179906737178759667409417737159811569070229488860155616476986388728597991678102456678953888103991972522264475597794765633485222335884956010701261677550152791644622147497248943784263743852576520427012329507192727007601422956183840320727827739406169827253832317961150568950243719917029068580128693825365595113883066324763489051886567954947261741741531829953296835241691386308187039283381920496055801434389703968067333227661162727883320637755999244982139727237207800867473766184983951585838508807883437625427447164911387515460172165191842125250520501399323606141608417134495810849825367586894314073952023921728405942335491430486443602193516150769067161890053608638557161302901607797373828717932664182167617770197913243705827858655453291796215448022749649704409157501311674461685107827660537255304749280350223366104786088276189547393255316292267710472945997423225745230996164185603342943259531865046468695534644927300967083631461880549608972709431461940068667077477834624292468244833600402350411183576777808991087429041914344136753128656106801257596587141141241595979005308630836238525991149442169333283013342245885751141700931052977429658296814871523818290077260443194939838781289177684312419127971942116174139748217025990088143953559947128259348069526303426405755483824621746736900209676306107999722972966132066110753618145505354552801241032296567360572224548210173308074470494477167345944265588830576830685504564249353093156937835713977227469202423832226036992024096073535174199866495347821475288736466034440912810914108521240318699170454774153588636917081687602409584218302676037544448079481618527827492645506306636467660298777660388758207690268466931347190270809541119625081865379591187733460019765342808993291252042230859303458935474797672337593312691679633234214279371130788258141904998030515187733301805165695360608847436026057037131174961276160794335255712025583472361024464140966623477031994188196495809524682689465914673894588479189600920365477370457020105534770672461220724012385188295336938052907664952574726335510477247951567089794135876916774646570255722872295226625954148077454302130419995559365888302557573775021729046586524864060055140901225824822589638675932497638502588601558453696018530423964895524801675421663027123353481465306399102050620365856614882746905754090337971583384075188516391867675862352160617812280590479340076077628695389465228533354076019391939351028735028576742601339571907259982223678736424725178983407191033561572605302207453837048802062528068553341812138809056477584979945607755272958885740812764742243321645767350742442299018072519384206081397403718088540832010873412694477736121011034498367846410862598817933407197560734861965415038960889796135260268360816691134426253052403684879441187994991158546786421343006113826162020167814854017350973950323479752751488883879713232998846820027659872544149121721617262545374003218192684856589158820869936935340612267720131256107796928862240282742118312495761470839578192280096571760391137825357380225628420921631898691484025930300350529493419666351475261284372510328179975287936766648703699762686983047691731602248312361720749947879655218667443174632452105122954857531032061279275643408709049350139592288425588819802437955232271720077898095396380565853581091470049582557119193158065443985546396994237489073160077772725773260738319476885450173949288671481186311631760432316892362250835601458143023816278893780983775329445279106957744594912609516589376449494997694897370393931094800328941351575764928411343973152864476298896455637540326277210291837397510678160391190745790493021050055235409732845130131989789301380460092805258839828760870577884375364250527853544414947287794933573244911575159297899676353360376926121415187464014950316878210674886555336322818130438279495137596079799450401563397001948459769300838912967118516261893916530259649551586107988118752491334134865942930978816436363497143215265698516115385082892832543349327051156964468678515370797854747031467392153453151903049159489138944404725031492327285464831068232466783301356776205627823333084096309219899345573304322287243252330365100167296311121422488123204182163366599853030236225787741715804502095058290441247655396883305207961612107905025489108766501175032418888023725172634948602549138146445014982351443920087107753677793292574812799415338556416439422437361380326672646939155647977365677792943939601696464462999136210514367202328151830431775086920523096578374004643357523048589301455039615142595681063396668072295638196455873405088632184463027792068610399410140901543460690063172502189094507344033986635890967412694979714826655622063542886450195083198195726035611700757960037926312357754773753965504433908350535889023843859437065095915389690465368591746768102057949241795931478391244416774485594677147453951141512132208980453926400203399737324937694561431508874753706561054106661709274808279608345753472584380640043924598707831179324795830221452142996374227204915359970691343794220170135850643663780656754586653218320773536043639802939331737144967210435755804386684681234254378977122034368375482184440922878871039838852371512244611910225210212069610127581869772685723493131193498075287760484887263998732910662581839435673856007735572915147045766567790657856436602666793446753053688698546988587899929706747949574879183109125869864418765284846465425198077794655506326384369203192166645507943718825246493472109309238241612415585797306287856150511535038543723637390515122729168704900526438177169159675380847113765843409945451593416982712652651336935255109734056555604705423099923482511168661283332657194750439747671874739935072683140504994421246893995483498064284562136027160348147590009778090269822935030193642472592794735749570795485344346410381565657249093988231343853722033673811454273142927120914297445787267807115460714064673083963572618779330228077264278594538363663787994967759631820408375477631376338980889939475527386144216525556614595430203861453380012460797218651931729761203165890631234005724518810194366934855672642194522502942551951175793833285779302160340905372173644515724021021042347984525026390196882939412140495013616625298198438207563824070084177401641776594453128911103604572436957926169003598772532937742943307273480886147870234684268637602529963702906578381024178293782603805373295800670081049448776422081675364933409218914480863213500436440891713191862195106346888258127453408099632740705511635240832548270656363828036288975200076712113880363252621125049731980282905751558266640707509013615928411215146054404404301894688578411099096214347897586618426059569844213999011906689880060384569647977091658818027506407450425631951044370091529297736284585243295374185637400841058898221965121888268476859720368907194068377435431001185288879517535259746784124010775084294540681540070811470627092398043967645124669782596766027083053449759812337161703904814508679997027679445478706004356514780759014193832813454967245858267438905830130141366261791925605180195944412940862142233264512552649746684378749357749246574517080868213162712454142350040787248729325664095615059065054603125544358242200445500665902964075602785057688485170000756382700748277347123963622533877697568542779333217553045088732301447841150642214788574312370462168477775118450174622833632012171402941823894172167857815662976247059872536277392043614265448655227376345694634681311666289452146006709706883973847465977646042693486077503837673660251314562149201541704850318982508844421920016514611722999771361094035906648978799731865261612435284467236253136567828340838890590194472775647001322956838976614797900649798432844809074479141033791077364305450542576548332520630682525049688670168406315846899934935435579683251678522605886949228051898024004342651597280990988856412347673510689928670903769215202767233846976632228326610020370203313621108796377485702184229350689508093857464494713679959505464033500485825248708551461298745458368508753656478798316299013021594289738920925687441090624461322148449994844852417131692427319310810622554715389007794674617512994185974998920965779234857792830595852640027644671132951414485899091652009741860665836469034741057124182796727226985963978116415305952849236908370027459022506060673248390163253960657386408341552728220864028807838849626985153840478997119816590904588767773885368871518912651376051566488750315905027108176602998955075098655062363238718338701609415381786566170045529520632943838876475220687843150433369586519545007472707495747821620886761763317271995323398328741954428989822416438411755148104564800589139547806800960293948469579007466665908088966960016148853930245064296894980789315757862581624984270376295582555746225854291791881474775163391818990704199086108099655701665931404373656202490950789882724469649478980403610021791389319679250425525849060385861606779299961416444728336568785492854662353086505839455414124148484989563171272877700106793424907740654736274244184734258888215460893775169480015979854698747474451676707153263861751359546891695800985638561329375995285293716295561206387239734946494970703091346573427146685120002892735420976427257465432370623990082792716871961340400364463884929580560145024465605254752622741092369114627025916342342821986123499121305584294403542316827863408807777052926318205957658650441463399562142731578396182829695588792451075512551042462883597140326866735556033295733075086747733397959327418038953045433211561410035094698561784676029443223424331407779927844400704756420400702751922546638253916116261170153622948540506119073965343767075233253829108875717121784890193527713736393008066635327082903173921828192696370863175192028491976316131627820356145053769262795010522886495235094133315845313425614432949757379430671154005897705846346662850523088048282269644216335005480216117514560496050474381903714367208998983974594598997856920201565476496683844353592929177107671688989072704855540430535187235477127702160863406580671211405695270486082374431748743594276399007983027976418233194725536674844077142383138680522392887793409789650487412904519586804275839278517122531040611722564886232005765148092694789580681161618764709535060737995459433523394880898589517746634763055602170615806259176652998577724957636672963462557899042121841488962108670157119704450702038567496296380137748192337865207321115820510779540625975864631503506000152099248272154746747049524802590335979437317425046562078989394115771053359410654259230091714191429865801243042100672564050265493988415717467890172659239822406302607146818340185938959144479926189524908857669748982295852869096924720651293979629223211301010470493157429414495047918451954432684644134678843764304422523606093994776783444354214191938925853968412109397976517199474720524925796085611853161841472264669127884285238165887825663197249336482418008477813380134851921888055202594546336176980238485288625181547454602096120544042290471242569481280022769110542408046397164225063197434687985957468949448949123720119808687348519417774484825097640146978337425450425927307809803725707625176485289742953496916674206024552399236413118736649371961081920516756283697279364231261999742749743002758912862252462627142185655364952055137087638297728459876616952902670640143523980553803839537078643172375865660312551120212012795508373731204595206670366000184441099569472040331923398186428369429235597075441402170902643695694987335785536464204167431121595974174463252874331045831741068301817820983854197680061233402352168998250216251869764899202916005398423513135008047457982971782823550782242288835066561396659181688022400450361480448997119546749822749957881853290884750981209899384000793110410495189225950920645289352125410660922371434515304950181833864947796571768977817447926754776749470577821033616520577131328937716099985906543044635330427244426320223886449370608777830796677230262539280555868012167449773964340747535601707678289149328540487358723406613283031989645812393917537404909951889731452786135064073071998254534399149827893381045024614454102814226926176816303327817325289756333433116363185540762035990174221828593510386154049895094100272965970484069221711186256642800650593859229313517616689974967047109995632555377941906799977300365627428632183423838497706004423976631222179889257704223100745637119636385656963408434866344948399089276290418982811959071468208690081649929330733966264406970727843547764484643496798604724834412363880380720750745449730196452998673197604977727335206322855429846254423749390890891695335878574168527528850514219504689206902216354236154601901617110482856378731509920636387704892738767936265155172384163952634242422599945788744783639910054475440664024662456900456713127625783217619871556166106648038650987106345382920140682352235057136524521919075434035159552574203736519017240121938971554846702486152274695250813008908593360180818579943156880093403551931768476081286260248885713812547425572145559021211625353245408231994624174337067602765523807859707222366554604620934138996106148542187575303886289018040465779633755103634782198431563972430801717370189758665003505537611707844599195895689034714527553190790133049207847731523371748280630927770287507369415974091712859868953714172833693672964416564036370880391500982777959026316019822977266816687643815535962393844025973477464281976667635472466113781722994492672779305662056645129436016725542474146348035300663343644432660587123825713183681090771253947235845848657585604712657643133914047956174703886532185841861293077228916247903507768918758103378766060911004504878366126686222797389481507887180894957029409281770519747967688678014240500746515223026627427526253574958744318861968475288745396179256848723483773259774756149570376096700844076075504754150714923247430406106267977861531135215153616625884135923353280398694040068122919220419421489465657272114451805296906612831091906310175624235815106091212424979392160759157478217442964880497437726688119593787315605137569630152395059139691411759679548113158102994379421998049533336017641305465538148814885167343581135910699422496326877061056243676887742506922262762416016426184049708937650459576429239448799112034088881164991256786960037695274804483649191766208842763470435900700348403790249581900053332680206085404463471047119296799292002893732472908879346008303684666764572768641740804571729381487999871599419256333832793941230698929777692825931197776923179758536214623477161939313211103322055119614696323369548526859696478341917761795861663966589829496074060434924698733485853976990166431179290924901452001942608254912534101824662557220942124964295580543707777056283461423050513982462945344253671572122345668001583434282507958173375971675412872083460167474958197427840605079021530847594608772434696770508679896532352143755791922633648667752282424387597092983591731140716711940939239402355513361459548098495365653975290461754027798896198617235307114341117219241832807816343128381719023525256229690213159314355374138359508983479994810329267178409161308985182977562071895674060869428813112399470164543492095912622746725974067035548270521243977355274694239661884361674764416196263996180315625302725498741883598251067231118925216646809786242665894439521260119748266850961504271167139029102354136273594788146854450163811587137039605613288589306502749083653653495045161261033816498935608101893939609264506766559763326981010984676953339993309902226325216228314187123512370300873657336730691672416910844948318972039759700198066593334408083313153668711642478430709727550060816873836889450226102070329867454057709605146106191904907099537107207813772083523046641119552683075119689956861287582514156033571937867153391662530334026990692505534085652734667618928841504726844338939369041484071420681830189495366539966870520574973047674466833091217210907475890410418719029921999603379067655941708926431696159195573342530488956806655508379170301315513808749715026658535678269981120791242980863615511432646928782191106316966042105746037134864137244276302608259878935173512316684347898389095371120242892394767422815392926670815547290543519696508711980527698903744393778728091615934181976802764591014089212227211695564265599199360350224706028956497325826415885861427234414787631064146862731272564638131001659618744167483875090557950374022109866100668098133122727690360566494624106939819978617855830123162828714757045816163437141054603694357553226726036386282376720018042806509145666314421801874021205723446978970107090395606939524498414153284048991851413560686032684559144302337248598717015393625790035951307416164478433599693111816789037917566586541602255705999675786300218381656140118826558465518877271536476093928144597061517716743346196170098409956172903800121962815394971101106502825391281350328226124668266850011531383730521621788414397592649779878091638009573403865712466625489723300166654968315501592103080070251515573866752605687318901430850406540063455606057683757031968615278288949278335739184815003450337218693226516884656586343539816187690794324964718430161824195043448550541758685209855662841532024433077226498896057891996799664629306805946939181894782452836389925200822517723581667540599451699200191798837451410523923455567321801586592499967919351923756769005137439980166330244360954954260410921253955166699055999483761482669384902303813444208281949222298872856966472022952821327858538780284205012237554427747592158965738542181769033442127399374144758410133067965297312573100164975033497995335214712984713185978995378302233661849918842447802582617538605554823911526355548867682598828173714509545250105934992979466389414946171431089813983183608513773508623288353780252844855053977208393851295270579223861042043554508122960096191404663475539274009442012212142722644821840512775106718983762647628951705096398055484176305149562363215212250933087474100350918378957603857749093664524131300234006614795890177561003254571694745660019027336700994995119918576010126867756189280843751058178370600779909930225504365356424513483351044489496717589495158729183444369003493138171543894904938276125839260309385002619385146637555417845265346072817697954279047443677668855186046946310521693937359681481579837478083080651877162736665390894844507357956857004002058029279737866557753429757305072933666533046363953529042650971653997643019758866007653766094533439137071570451853025447153937984115011197022077301465800897370935980693806108948721825271799201577890829359201258354558868935380454724646443388309460500792755132192753760734534540891733183003050740770441617806924278051094320796035033585822392899472258548661938236364889409845208767756970760576570147829382279436566384091467222692184169870996050565575630056734089579076182001195758201080419435802529144273191229618736647179122173295160997991337005231382582757526447391214754744761242673566877927604535946570841119168124031941769000154249397734936638732588294771286474133963911291347433270827403436723966897182688823813236461744363604053165491102931396625308291271402266866951924440140296487276459148476705615497977019944086298385950637007164624054342983002047277720845400473495891501187172502330800893380442913808212449737699373149835354066574566076803328836519818157710385984811486270155419014470488212876843220820694338262380103638906850405358944855349410131910270280618474484180195777319777885947177937926110706165019068525044789677749431441936438116242724877355638401980558014255870395118067239847194910351350004350679066122273400197419760280404004132635788923529894309125544491971572762910382365529894743554895912205694351018896227602175035849819065160095612778889659926177892689990547762292775220291872713474808852367567717584823324023717061856894232461899292136030714730007239028608976716426093424190017303067490441815160899126643414153410407475497456177748132306215710593337938014013792215284660959169094830200650925183318513106733047938508890020395624881686760332319128725021035310737008705766789255479816828544058604539308172084131193519389054828188683059860833902208532024660413108681891547341339255906603543808837350953830574457461475234155515964095319564747087383134871434060428212455041415168695268387058633612453622372629165213101028526689858748616779758886019136305722691211401907402018141748257924004597384704099051012931871543690003117306812674143381372906690292961936946426839204081791242530045566153317141670573799252602951874926097642234795996450585595019224133191406883391051485292937283913730431649411093668408700485243282256864423345414170624412661280382094493932808828549579787471093470079306527062920686538656258753534839554502117069264567693001683783685027938897836546673999772571905791433447334307553290538932284908919141018348072649296317902743479417713623682207450936638792683206610414643697259610587505355741810408529957615534204854263332683772683213483260135652671824122503042784487247616391439595671696388164993110703010598795183900001370801250827002182169362948761785910704059680424181113271986849601259999540454708237309502491855761320371360959120711482250706758263029702927182167384139263898901717337522118777277363447677436232381119212522688707379717340424034875807127101164652989389280668626676546467648320391847849711140627702325868480914317299432853872354802089736412978366914031650544156752331745963303063183706875091289137157369199093268864129368653641344315019415889496823265867839328209716034714215820223334399300961211211206555089598440155073831799759641603518771637801638920148642014276979122250805238195980888038378700725471546736802934092517330731280206526862757681985192629155742709317126831599854637938147709960259332178111012136175716101887139211553269091104883239662453356484132775447426436392327453868767810411388057136566351637547327228527596615719435119059124523070518741492841544799493308685542878112553475606463301850800349293098575492096393074094460867611454270444240441108230792840661789251084560394647838237850851737098087684781577906658518850560540512733430244924123702941375223855971507279838757676897430695279837276879351801986377572457041846272402809523682403477287408118264747813102126171130538672061610328652388641531416963303855128942674689170783224814474617619577570899280166300896024923848700200701083839386726017146828863517283962888044285049535188591838766738571892089120374308607268223044680284799048344010053186503136088570427898990946491616246853753699158626128651487306206654750061561872521008864766465518174751966306929794064322168222689789358568175365961566967565547734165906995332869628260131817342530058143364114256953682228315615312847087833425521141249963555843916423696083992095395446423643557353401550707769213463846727246558463112276853258545078494837309751808481560860488783755887188093755212689045268602273033607735668834403968560370549789954578868606398968786074454421102790824566085627577597714883314593800033619477643259581131736279336196874724941112940593511714960597690396848664030748718512590756229160870021760096218866331005745222746541113580515359296610451811403167292290499155998595216986457618422192611384951389570292912268466384891305981966343319646960887693139029958444776443035367194895488715634987991128434901545326567211222765018550082938719785457570174949099381487942219884431882120240577393507373054174669356970686883325259774064539066352374875627431570277102433736967977699102713446188308269791443256852108145725642636756105036642822642279719856262140822420871148413568976574654280766539584215889250003921689043615387740206904272162454228491453564003765600402344508294025448252784200700658110603259434549841426434615754256025478377795530999675170349732411940590429003427598659637758105109892534345038669580703655647238459820677211847731802427234773975242201682594771965904434947705046429505620606729999381895993730811295451874269578565743955666563778809850704763627746844402112076812419247452923719352658081026650989184680675066338718442118515257195191439529386545045639265297419023498725033058582968302170090389045400917748566299624893028433730161261258808804824230980215635401431802579054013104724313300777963469792452763106581649780698654260139512856398619376570064153867378748359340756700551459163177579778373674435611012989935767709769974760072496275672224533046916640898782544020475518157842205812045935493587558863803625575294498228527775491578811152193435294791213075028551138838871851177757552131933119825448514407621148582961644141671085919306633234057511894642532761522333419035535068903119221519402033765650364198952304256186428522011042091686688346460451724455469874319703333238794215200193511821808718490762135142293188083662668411544283275891762381611313630680127456870692850508204689571725954898419978062402571484553604053730505377832922053925888951366586486530886522512570599772113191618627203274723578479396151156606095048208666889015573561415713317016418148539236082939982860963025962281799641906205827436541838016481237047761780851872697895183950758995950437637235735102432793584855324871320457393479670814761849953925947159418103231906311093899070329609239014109953257169569382966112791581163092930284029670644433008457387885958151946907445835807619305395801096062901375722932139086587520166072002301695101714669920169144037852870483014249861382482347102255905621654809962903131146553673824700301497710108666443710593615855006777409561800722499083205335642197303092360490204581832836240810624683726950965644742708861614618932361885769167957972771472175221354957843730642132568415931202041775432254228687866618072855543621616984662425985022197392703251850239430501591694275640477395762001073414770443507541113960413469529022911536185143457584430644962574931779451245250475467819471607416093936521088387542474480635857482930722652772482517243890363129990339637288102697741525418059296833713634716813687345550254904307017692671460227051432011643141726346770903579753512244010841172815190366558298910636877411026844447644571882534217933251303947626307554749599833374114445955841962691714599384668694597582602092580201353474268100612906962128337520684767536789325175055107567615687245460609140581413836284414118362389261567672732400207965561840581555669049646963711154421879799696152657338960823970088538750588325379359843731116069892153236306669066441716704466805355407206622153607690798147509794258112296253165166911321034826020023254154536838058271289362496628940138740767881628652955440976124552550232854756769962010387209659796868214153865857730165002761412199135436298938763841470753906188966484817596165823929512049293954262008999419900036768754223531375394801041309402145789058011037832289666386077149368518680657518390045906549880803608626983042887894966896346173100616823175864876341252181699202715367897507970852196195682740993395164340418708482597662221847824600411910859262676371377900212457352632376243497299063992306556377886706872073803413839875483344657279054924933782936093643342617782280592141065610481150342700752842216062782781899934796157341812360667349510215375927643944835463662851024632302049351253601523110293000312753428218977181180609093941733188127054703391836659796607277968426769203650547342146183081678346245191974474843016051044297728035732268175052147229092628061326083937029701500949514818737939993004773898557532264063031101110590591346163764423178507620250063838177889638956474591573052967056635819019382191223926475748194660220706035454139158674643219513811628082153900117593291835812533404359365065172461214228980683410230090659480796215641782918554265695284956124893491910214740281103962778884214509603737577650340305560838181923277018613346183962237836441150360432973242038631635536022837654827118994832784919140142714399432918283811251240453256984888264545689086372771704186212510507173988252310420312475744696748683908029720514715472129790186581959490056505613472549496476587518530282053917318796763560371250567218271256649321937230567551410082863087118891567875638567170467695444196672164447722862216263138393456900652484096386196979039977709376151022447110479552246184403463284136974318598958443203671627341473607516688561915365545365300722907825239546779262063949072704221467447104126943931572283196279562478587289203564098372989832517537024972976203536400007865528330212088005102605538330495389265851784017345927375485159120754170451573353649693523591937044955668124564556827850211549306809905020221510270262684281419319589755874354241441502729245492452744649365719348688243714907598251762365541761195356556588442680348133014674548567483192488506339512064097326372080556870680101111398644593051163648130429615661280792114553643497066296975331279994897404066082674774748842218757633387982332212609695260054090599199194321568961194147373468130871494548446856685876085077224788442236586357278560167656453855423798065547938457373492787938338316632440014277326162568692732081114281466570209739654693970838249052759923183342686728922292056443559127103015455549548066951788487986713039486545090488039252525044388688355411881416572850095906144758899294591522639342696462310089820437404073227938144394788611152641089379485784024760152926537532022502056776668121430695800749452630057642066055163895820693877399712043268003249257174801340133492583249985575560252958135613552781683506711350667737084091520487993919152171782740759512100456743056971078185420791707354569098824291658192984957892490899407114829599498521639753226188767457000591471265935767215817265712872342072202942953337830096027818743950331237296456746774698395710247283918892514292948901041603046049947917196140091077393180944610493615727603667566302367513802322651930605544208345151505444293380755200370380675836803003045544994411260360041039645573502112773725947544331323682213952918381053802388391383793726297502493165037863165700276833835356898543045783334234149553967721731214247165400114901876968848310026859197164212609142752272768358359494146765319128124512342975270528243128662225395817205963738772171838674508356275914252550581222036948127673169209950219171355305114969277983158655407882272435476962396615248430006709912682192215854990404871491307267870321643389714865481558780768871021530793088442833563949017603998865496901969737590848328649251891750968255881031608708331021463446167353376861806916706801068794389804892590169788258801955328755952394387037202497423189765023774007642092757169512544926783184433812829378976525312604568172535982247173527840113823078063636004489308519144982672831146699348055454718607682280212640288043067018173473303447120105983437179460303087443501323239470441510487483256812077871049065798204599074807597485971619959289314546353602084889841683870221484279033982643323837112094649213702245847260402321766788126015336500803375411499038584378109302023580710764836034322564758522367192194221069212368619856522472007466228903258141992061905032941610039586405159565867849539346881969284526245160403843129805676270561881139476580873640895728886110094648088616845434346220360769623585419639523277559882199083726099290766124984272315851062421302521586902595077541232327072196689320653090085829512312119200947147390922285400512300005100404063776732985909912357278751580323799756398239679989458944788995739461186873259422847279373950540072209618502283313395821381119939721311519507874339391876950010135239890572210131101826089558661288337517129109429944683956381558113965852702368901884462883325609212837423517202886002088651141262319843165311255128030215664367367313247107366013097633260906636758101280222604214397076328183021425279057654648272155941138471705421933304654095838337698561354059243488573095072319029968059819262185287223288898451431078151282345662724928889582601304034506973972721772625129847398901457927339762849780299445213532706213235010060244624781489724969154915155898375211908966834145268142405494799113987482950946628474316890778805312446939222443244633748606172269832099904141156850822576015972257895382031294913561623951285097732216610011980765889956745845461361023543892684238217360877070764063101075222304398044531378317997014388035557025937230298167576075174941863564351543571518388352636387024940794696389618498211316537339927683223412830446235760492030522679207491205654470780054462074100168970538699199072104886901872446994255263539305166854699410118178405313183226596384851540723358634893494203601029656422986345627048472502891315574090766764022635540552771066791566769135121825057136712255510773584085475462496685294544690749638958583050023065654333036826263960902579104070555730763991412600504547998782375682732857070125470761753302692149983712010239284984107440758468855560093172199029436598713141002395151155622848077020151449910809094192413033711683512876531459120020661160563798361215501515676168414662289034368731451959753553886083209236503815556100801303279815007755793194278281538941460282100329253497573374852958534302078210929206630000660496206807096177471910166064747251465441729976057037230039036735959083004300272870362338699341855782423791980994611113167013139453945075290151602384353803537893171634964431730681355081079181646161346935127864829681062698559296500770681438407018553777749469961012457784458939703177560622706173220707471075671367236447494846964047714969609563478234565262446729190899266831339008736314846909573243327232135122922601484774326456315104254095763215218696508999037376733227975309930596464128236045433209947380809767166278150926904913339149769243071069609250220907655260045255699547572864053212091673041987599414373203045162289700545761025909719894673147513931082087281284873374257042881884876038465695761639297509904020116402166293271524475792084917687973390762128688892165462203847490288006544390181305430410726426107200553840872582491844737772999836381311686852187252278289226597170383634981902947161597371899231001082812448854187544966094639402472790322261838196097117418680119024912779308571797092225234990627679563098453161947264646347726268716362710477775821436604680903303011482731982995429949960295319657466741140049359060481513426199194017738831384137121461489807111440138050132935139161853107253758940630243655213713562155687688280344131843156555978614706797143026964008732321779407837176412099713165324722754972498126190585495614289153245237068788989077732417308094089675458577927459984666892391774833543057563497990675441208585454434750861332580612285637087090929749071300875078012154601455338773273261558255381822664670742504259644316344632009067840851549289779746971448180167576612353565157158835148496163867412668943101466460868033297224400271153109392121857945584294478845625557261435815609214922581748236386916836694230432212713733899934176745467638691276280437581019285812886310660796665016345251932907364030409162769129431626964717220150265713617607216446578321638681330982782726416768534550236866179344602354364790096640468923454756985177335639339019925619794087365847643440224887834780573433787343228146716419715532957041312672366425995289798925163887524118073055669557386997742880912768508504031965613737656819411050901339229715462410804376933680067681617448453377230894187634900143277002851518764698754429906819365018589272637084695073523457425265617651281242280508248021707821789707949904668296521860168748127095201358689906372315841193384036577239108012941503941778037317854038002488061400250811047271710676691686406941578505289578712056903933499528890595889917954913846279881481545213571391849824969925192337030821594073499127031951911745380318047401591223629839288723464300419766438030755642257095785560304976311713902381709688403315348905474354280998442705032934447770034769848333826598169501392111886049364550728857673576474776227369879899556131256124321077885215973028583687070606403698993589502943928616850879552004462661600726853833215175024148242838463594195079096066642721597000795341304695802960468518602603432608865171507898967180227519918091373749649809353428745766263195921166520594463401269857078773775114106137427656906390159111734401211974221202016657443328326506135765421306345486436473481177208371258441401299550708190676593798549219509488393419319714011285356303828645438793517892987375672668785942958030309534552473269239520119079467881777684906034410076857912118661590149856194541074445214578684418134098746049240546426656956666297700790310884200127195598413379794604566574844539900557351997443267194276972931193887158432899690130492453588102225336100824996763477547942145223337485234465299906651146216152249354304560953133533670734251800603454778486214337676363850488195830850595008989460559244053680341306222851642378490782856715892175028024105346449641017007143176162927441734169078589189973772241122282080912005035403455218157966305373150891244113211612878731673515803435483262784120571152045160068175196942253850236217440061998211829733386914494743492438034522944040701433666490863799316932203031367034644793969226450580333805779849375501234382395502661755152597013853273200771124825128653709996769887901647337474735689230787042882066658204851422738267561488258567533169697455839844573449912696173862349740821166720223657256175218531033805835293128330823207114693590122644170436228268938829724350809221503070858167770092966961060227347795275126437153109766085001595763075040408555932010178930455946413715473921413331349689852895840976418270857683413463502652706262749507146451305134470398531624571359426030222337107580580593785655600884797740911509673455610770388837419961160065423499099746594062107218450198764244170469256719847272804431265254845213840475148993469992219429789296838534969315711459552686768207459005281287153695134791073493660740342298160444731084423996122705262487090661345654387055753953041519527990914407471716085573326709356734013968427457350505440866691692430960394428910463489593949696118146074858168167775828074688524246376539167705860242870738641193632735853061174237683450295547484190526149613209141303774336554281992552109548336230035884436117678127970126382529606361559712430756901635961054037969366773326168198713688194685981651511899143174835445628129103567523136887852197565217452294422612291466762960632884988160743937115162352655512379418558058375699814897709191480984424968542722711555080199429538234747374483689224212822664547036836732449106776651948672332047223612247285441544009675417083140074395617235719642155625801153936932800674850166042398833367994482298818410983317889413001232339542674205968100297273610525042713841425851038924836698971947006888948837546347745512300697275369654144981294634531408411741404487860023643500232285841903709625791540686537316343954703297309307107365697533626577878213276123199537754773868983972193124819058196717202538391516699000707718684830006824555438137575292830601968109178454169824593284849505577747651446727558116961524015026855955019025909586369891807403807291721492688317028763844073196593301737391504975419499797407276472740664850752060514929275404868335507557248584423483156516107226957973438780744992826522919826979364685805777037673791327968344672287083592852092351200419705821382171753028192216678893246937652320078484660015174110717684647743567167484136093774127221034847281477103931409743910185681978800474276702447843610541041257484381654326238092812357772821636871195016892823702154023033697379807340246490943290868158363259201299595052438378990542103090483785000001003914487045378226437060491669431359214416957869826311355520350262342346458538622725122205134024948798397908215944795885238077497426832985835842987330771538286912854611604153209757680397250487024575946958619032642396054359589252589758527676873470540871794086397008401011591166227576726821070249020397604844627334541550463071384621227278801720123428057133624255983162925980862979063019929768843752700079825323000412671054857360440762873506935720708822617658973685417404714072099316925680250930359894368872102021459412434735632998814586163445304301046941222113498258941582331244839138183758956792389612850265939623055822223212307110075042386709945159552899367585738145046938920504431144540027314165050216506956123799129490660699727608677650993678690509331770638831201867685318504800331002324043968203262274809339530288738813868788257778517473976826505429774723405278411170877208780058250539930730496493090836965929363185923412961958224829475410503250810586635130199499435829897588429887534973272933841800817822500411077933229847044937865337667031576364941624407034576375177012783842510939999298423022225463955070773492802200887865196098916282128671631117244733357147093919583818733522206286628831481247898470973459733063233568976196350273726778410845857999533417190019083559106006782975201608316187572276529055813523765885570040231959260400879510941378033475555815741835826765648369333325744961209975441755250617254137497354763738749646073661314913243304293876201609462296020674439805932309021542489897681180156797674185937218918743565396847469606888518202304985813757597684785742049469545235399239307795577388039275061559875148562739955108324732703760239352183960005385808175366520006781370156750118353153729944209679829788278794271794150792359510313691617062887477837780595274184365712066319371373338926841896049271116268249563574609309400488938127657763701546108728280648040700074138873954788111476885636472444425356905116634117527734860454508409211490178716105696733107829483193007408289214821589328643631720489720091461506359941317454911642287853158960523176036577256594877744572018327000642755573779912459149240469565772192952448311270819985252819337680865062797941257883555960804435983151993709027394589570311834137321993674780246502091340428450899800852310708618378933139740645043299589860770014762920997042822614512958099213376057341056890469036426619201903556392176619866779992972027242284773288970449634733997605331951739252156494225386514159655107895024753320500962733922655160649932378490765711439882684688686074367057061795676762169759617458870742840910120413009005657171576780383313373030292668195117252903294357629089748383013878537251078382960468228729939346178411205624333829411881388885777442799011395331395783724729407966372883585657030172041620025347072924555603924794971799589493365586334978061549061422969163219538486813293916088415500211167649914660113864017216766910058381409481444652224152978658393648774821841953605176677165844306802912350395063656923887281969073079457992897311834125104769452637286079214487080289073158513455069214195753208156323994296080432455299199720608358817489546879228859782933282468692690729344794953264112838894022594693385875047571445061585375805791397820430741969512541099208601523044017372515239228040490839461801841066264418228908310987193316270733407696127591038903560678007363769315497295338085660441468670031860170714340259067035748186924529280254084296093821535401676149717703068678179930295238457306807311921269135440322699908285114314337942823771270457008880495487080255951086836912446813110605804239754536345554617692067290951198186577855208292775919214765087605827820880027395668819786309082197097145732586656858265719907746330550283342977912260272730764375263853384889361105444213276168334649464775880331885420075061334966333766637528569504595241297687297428778262733107749252434054322438288026856486663450842016130320179350129883164449487137116817305621621055897078029439772935408880222431031923922102588440608799357263021581234012927648642513426574697638688939067971143970607715244895028944628987585011373094867178307003239243587284917581153550144896797573129825461570102577733322289745812488343276858791788899124801079022106297103494612383047040201086224446295111525552408372123949750002663762063509236504221240914923415210839437783079348024646973219101931769111987319833125777042523326826090239419359546656291098418472455955508287386553413326544913676413339663474277601307209806559820086236963987293303817343154894097464558982671172888079526371646095375347475202056209454871543050278907175993120290341903310245796561355777794372288806984303589981165498728774885028888348823637891430381236073960852632755907647421013740509173663958914513033750042630134895463973933905950522273968203788556009481784257387836697966752024981851184516633934030807087838024159751829849869069265340131284186004840621174293264998520639120410871457729619409555243052269908234197277986878144716833171608347976609589317089930984748867049872734273549607272088588007231936274258530678815042856863672099666130791301887898081522891114088720935932440802218351878748293435081679094856675099755973511680508518069460862730440893930873726214348534703575005518567642159483332075486143494723337352254974320128020067765401773502585148752135033433649952447986782993648358531820479703992700552141741258448690846849842858648633455496572802612241582171574620261837287058012405413712894522859461034557116561064802056991698499557288980703912590169652062712901124163186387081409196875293836876612294676426222234554360999581080444281764403588342687686289323898538373242302783345427139808673772413560121125923376865178034208373975005622521496577213469117257286309958815235461611951460738475290886474204892524595975757701293616969770092635789305032033701939849608492624918880348033537094344609697394080759750161382622358380535790567152641877732882841429556899254780904761003254314425198258853911828426236351302701377796558323028239267222580756446528306065680102918749395647558531875447178121742721468412307416291013841620053770380542436521789581241836935556917499110462308599590926098731604930405556611430610293353891609282741029956549158423136073411266082338709581385088315099615231606529771026485228599123574131137440924117666403195335643981194515401061011845146196878736346353618078724834954322207278694427195126387064057576857872289360826743869137974955220044893027256135554249299764071989148108235341424316586582043906442213212632436054330256243089230705935281666347169888829694565792567685000112875403649040106326625666833909647969394940083385800090132305378841729150926592053970073289515765288733995062713564783147293186472377780194657531726990678883736113605088159847401477299596810744649023043974733058132495357569710351631798690208939936003606021251078003260926125872396077920595663518486057875375924099703602874519889019751884448954189738772413415504371247925558390740000872947260480549127582525807359262774503841027107885551240642828865872388382328794378495762268551171371729583714030564488484420039975991115704734149864811213107336682762971010816307004664226557421039132682481635558876930272158707629076030386026188910791341013734605379638499854478642799189135253139050462668180804503062792341861600145185759199186884956879082735566315520856705111717886742607074240816420876764782188348803228848440413085953897874336007324370630546923449597393098833710070921078167306318454750205754928952782064650396681099943651967330837457379149422530181314622659066772167273428305863694257601667118128220065815481370493328112886179363619946657248819329720471397282937053692112707926954560902233623491541358119820041639181332981892003887554514685119367516503405557479556103733060964810936468671418870565872543222477941543332338532872691360159551976583711154504246432671812472260310520981229078199596181237237216385049086844077673705093912174986948169054839408856003114274909044536138901247966318990389737110149935457767741474813840267517773726157906973013239708434333682520148930934428710794665167372023711091927358956203964676059577708258497794743886115943737192330140106429563807135145909097499459575225875344491334264455934079193895505290011105552754184977255797049091391405101692416588902571804645662021632471078118787402107388009761197514961035153929795292183540057780781063143793760954105554759263835682781692865464728954532688386198129923412457549587757628650802384819040943897867076400711614296370517543404148291699125636721633766543807623010893272729553606678496271026712205494852129352976667370664916364391391850182293990462050149907585900234024414508744252532008340489466699193653443582579543381509231391411652314007944867725800474059371741950185936507011775376381155658077091891262240008481074870012586479447080758513676309541588773701553289365188256988365079455950617479734121331449464469564150100242520045802375092781462729277934225605597562013844419317906259930992691909947014694153017847809089920991007193045837338484819137984199431843779504144823967471885550067366103880548417997884363775974753380597509840514917725234314199273285798966340594024934979361104101472390735193439531971874897201968502307521524641703350602095662940890900241541140981339102706600388926699323823850595726206358001568094664904765183063424329823746518645375412520005670229080599177953067435009700966509843396682885021181836250303737333591271454511926349675399823774249569548936089387450082968306020542818828883522385161621129136295389276043736070174712202567618519357821181778834309656418446386988760521514611824156279058012282512635781285159740351984566166920100561536254382944010174481222092398412658630123795458381086663943948533678729686286783838826312843688208534117422631237819870542705384395203340417294380116873006439581320354783158276322240051324365297705762765115433690968355551010042513347857763835102943645848296817979739168066661898243370461195674145735779359912765811750166008938087425339418168464112598421689781446273132771304320120214951977636868001628132835943047565709008953497331416752875351485884132222706629712885159151433341681158254833109312250209077806072963026903703762615238114018555393804429006533259340371361195870639098201884703827840704883711222563825925642856878857813006772273721105881679134456650463337495829934809866451195266147331948567211729402422445680750688485391658442656321162127382273376613664169437809095164752927775268614093731653784796786133466501195300633217559719917473432984442960127766741551741731761179415269029604762630787414568760147840945475543411591786169348021784056779741241168097568298273220732456659850618592322071145443814679434052712226629163324251778952131909361854345761881981159999676302174810125074078978033836974453385256768917084211578056620740802944091709082413716548054460956829932938737388605247999298259732246295701453141437436365737333074849521992221612252345663728930925740693351111428761351140053328339844537537177087407349098994964177207824081107308629851781227746122619433949751642259833441880366457618628431321621552738247971616066666195979064383804615412920586485546276394340344496282067201034460484612708832486300849517676386932031465717714365142636739929520654323110279652914172290125271106788085096601613248882158643372708206297238550493962393283021851724377571001002320856386345313234025002316763711437949562106440865105400073426608557860063867293571165906657374280330279275163160713570135353549140628999746165328034774289284640614625933683552188946806178083777957798838682144301849859221556910191731973719445461321505817902836076464997057998080900358745142481785192637801334237796379479611669030363353147891912018814074623900492319377830991606352817186698078391539854896468277724279097773536149569542706815529507292457327268717277015999916713412899040886945231571521172126771890800085444632901263561584994198681850502175132598604922141870159754256726158047958007293159960466216162100007167348765137664509100082520941911163254947144268761122878856529979290083303979004843154964249913641925207063951120828884685771458389820303790381756393173302023435815314117485925046420181565985382981042010893993933076265297011630164148991080936762301338494900721622837196247649556467472723259098899540409955978597744407433136781185191960265780405862882035636825783572817403873706225457311559921332081006755283998866720875243226625501961000764207931793201444501888589479334209048319476895268848097160736032283101374720952475089587387223222180778431090472401889610845929559101198504795477528141235395436278678969701698458727042537193506069047987154318175846388488425440543120296078498522339324074125019809174976427561870623382069736850734472739095364168596168987993304325482563932222361190568511199913251052315795637917277941958860402393060408313044521338160057012626616813173017946575148235027945633579416541838687936325929851832405323650451223283653714540615509574304587306482900347054274761683912516536047446588060925311412371255761509492068406896371944829944463984276537798329232952766809669870177926684020747251330977618676482674546006555457105904897132975958504693318046720988586176339737065088395223509828253907482027880648570015814262865047577267727742855450546057080795474995368031781420995235951520078337981497629849508859309667565986560928503684302743389313427107662019040375573267959570320738131423229622680473256358859027906959495369679292050978629536993664679968615806724839694172110722638465064810116992891136553617700960108254011325278930792510145140597705313455066179401897404529665293953217401438375004752061559476486924508918169461571034916510495153398149611399700245679031580865433534092344925809868760726090672956267367736466329056742195506594100699812821230083086387560825696534105687618497441528106977327650199979680074785032572694372278467698822397554389890709343243643643253812197068596053130792273540738944054066579699942344947338988000632592517365696482165695229872920213400784774312152909679906269238972417449787247557253314995127802490558129244215765983960763739347913378797607218059626899304295210300888180274936328671299784165567927213236626253635943367827537454511835157102019431040363941476296623482774873489007536374951707313178924775695868973764727019271087668664764656354123104532685120455607456432773543860265805042303195602923452858927648457041376110825810932009827592574628951771403205597945246299737849432024542764007727200133296392652469009203588956349184106174611850683612525822857833377450219414880400695764730694197555635349603643852930096476109417647758803346358647032569510824070685703479787661760455313587191460289882154057151586008829816224576627089619154811032278657378118540998314133493923096676420846877924796787191138903964928664462569349963195746758764857630386170241923352371945117496526627234364611276553111173888808845514969727618206296410460006837174915588524566247309230933861797341135803237317719767060020828748063383051592081031442726614557885794411623471786613077561521489011781132822147978547546155295644936178614926947659467071212226119516568000320087417875506317626954527224170699167605646419318832630468454744262138482534986483875321572579874617916735813267470003978558891671704207880557018546870332797945438974330724791509369714497568612106983528296635797550415795865082122903803342721112108436947940984659411139332836953193025634657027528529260591998858715725937002572781438933723141631838550168771120288228840486769447516494166185011748998947906060080190494121720846046165531014736944618793159591942510717491562661925955379425361572495686759414854837838016239559017768263310801410593942589359781588284099066719040271548230218646626661959324064087954597230676055761269046611279405485740328518922517177838447799598624316539368028459816748340525334055104614787466805910563013570827125383428945633218467473637452194175714579843364232880300839671018268658445412038630952419418811974860366032698076642905194371221180771170242891252891071197444836972490680584820201156465446835943471869738158183396454275622498955160360087101102787716139133696626316311469000504315268834643845554865070618375697542470255586592611516026375332189982756487544625833995062892541205563283982913278193073572282589083955840037589808296217059916104188945461482179348511050987497330263809673514160825439056541718430305986491861333368995655919341727775580732993605292519796000414999653256175063753720114235193229316343283046094381085895270432700634276592176682119847103277843874673188153081274514986118075188808229272187756343099597279656625500978888927934663730411759478038524178536493155244611868539511815554940226996833107040839940268279879243395334359785371843401837809517391948205639289452311653519148321679464102408355750104869814589897703605071891792408545289600859893511095561986904893491043157171148283659620817707634519792968842179743313392739436114080553704277156851806250069370499701396791675928453781682566224953731870877199206691474650160827085224979072866664979104319624586501619265858624874091069408083276695469722829725355839072452772256559298491226804890039493422238750204218368734393084512472072342169274787638634724041053825409923706929757020582752253785549127789588061886560800486087626136960648111304892539581885067430725269106251591989113241777053910121254417973085927448543802217805302964735984324159212813238401968676270038164776573730024029589034222185159546945442419580796974585771886358468472797938074915152535800329880990043393142092597735999035950768636585574655909822174036031237947983579356073185026887308411558271665968177885108731038264131853741750114499179087573477669733585212737508031636602885239919634362354724325410774807418539194547733860063666744484404919451617732585089493595811951237736223513739690782149967634038071995480779770725259959841151294357570099015012577256712800895422171097192973974915523932386088737423885337008179675362575150734687091082189605756215080044293939559188848779021034422321056199186899451444641302691299473345509393600290513047872511485777239905618698055310748252949346550384897910094582897552773353032246313881187085275827331580306661639039322504894960497738122585925812048272529424501016964473469751438240027082883785452890424580231186984676723670670379637526433107365354330425265036737809896858804370601679221944513913061149612786822534846703633225158709526641528238443882790473193576627511014128070105444392534735711390883226006604978799884023668640700726309092546587932720596670067769029998295273379389076719359884128835921216072941603463332402959467652423010073340772210918067715682335136609810467378637563992882516501329636199264431522772050564218111582870700379111776909208508491775664643536664537771333948943778539872253576867443216077840227321481880720701430191640955228446866168166843860392515749113649041801885902393087864286948696652844767738116590383943707606175872823388574367143066860200222325858917789180750978240493723419773113739947677789211062366695430508721454925154609999866357934317883781275995285744314730136135463174507291045341637605216475251728291153591489058444420313212877350144762034987392353210780744914141696774437946189162817507026929179788082647558029517387714893939516502730741140699133057825814621131769802365800223214146990580553121758143270633679981740596102915399369157037173170175170577521114632251628692575867743981961444347940163246305114429647484604985422670205780998329787409711925429339777776050447110790331420379354742613510647311398321062316085124652056125569089923925925137950804203714241316641916183504410929837306243026013553334796125573042716284123487248714058549750967071356931376968394025961750834282003665312699834656484892617677990676099847270890597237609951013062811753331798426588953490255267550783846254544042678956156972767923245478109807193250524952997284871871129560852730368150067057047165769974447625171045718518669958853791413551055971726698040281522523100133308416173012581165391940909454038480409510594587171573918104226255217517017533391268265726824969748196957914128703339999407446586587022536410014529208199421263472016886254206346660179350325880702180328385387128316327195326660585260486376788823268394171085891632655927269939882323226308922312283996957968762188759987879689922429096757925901795746040062198346930536636158597158595232804169950699177941829081528470058237409355927516414874856656539469209129359835531035105197343467324548355723823248971316176880865540869711571428662084519278659957513149185227715603724782798184504885052567696628948198479289978076039689556512420325356116098580645247612994244560615401667371362854711677886664289241131974349823444431054997581423136279423392910315679937216794178232363057673015757450338082770843790576720020226090185359455028115946054502996550304427672936300944399091018767680602358049918176952155736068817436228591369377234563591590113650689556778597848374119172663710537641267857162328255547989165427031538552936432366041297228848479518753880291934588263249658672213178210600964949410544369515470533802592173262432962955219925852620853997307742736998449345730514118038460682275058673891248043326675511575880807419730303631321186895127870256090090626844371410006566761000484476561861171981913089946543993285500130153658395775374248618622879295433464394893783199634064610462196661060183986950720245032181209211949658122269580790777358897178049928350592407019297187917809010637109269721680555031691144569386842947536463945495621840601515525887621651126457386633518130155957875875999866295902538408645732955762639750530659204049844453921906811058698711050841123721126622118883157539448197062101745316439426178428810672383047730300246254977535194703382162248324799927872934167037249387766689439310197743146092527424332098084184422625753837982557525926285617471387569499721206342150176571823980631379343179447407856630301862706101346144478191631943066623175863900068991889690452090684273734397191297496682489464167902835800622775580317065405748861694010282183033864079813208909199770185348019351773339715339977721516430431873404255874693998595713994816833378753385238636041562356060731541566774663385218367040071300614055661635170108082746820044265482913348334493297350333023328657819951564726624342777966133521685646523439117863797546188172833551397070700794336502464741977634246113456266861718102335264269813666643854850436793620897436613153705926199195498027930211663023735552477935191771235167404763897910574127872097372181230022675107850807675182002582289899236685925032089000336034864286132472017350460860394073240702702389382554772459934780029797143389665448183100549457135174745753229823244408380644308857331899822463985003200416685710223793419918775900437444310477739527602970207751326859437123249781350081688357200945191720359994443994653292989561750124185537952628185616832570443689255930795251167302875698933336387185179190766159083302351217824239993419622819176512278629153278493155082744572955189771558824861332119666185691342154408956045118401977750138964592555763660636876194530340340172614127604404960723640718706081472172729503098325063380294741115895913339977563875882505509073120497833488806236867351158279112624736117228702526753749954709680172005143392609975210596491380076829821615262228178832766085068768846370615602276564285873892554501413245127016119653052618366359771001804208629604654773119915416733188663579877957039851735619892977417833666398944791086555050089894705822259376575249923714044084625628838688878061168022077024978434866002363476921263065736049667457940466292477703931425291607043828551928365634713734965379820224982825501494259098082430468764777814164742890985223022760622357291779328700541728041176209218922656045593508993206595939177141336522242884464332985247730275472929317426496322108685310969793145681315053681090535641181223591964134070365786226832438710121935935658453236986533404335800641998338449576013495689173774201375028616309664668856097834084398192439120881905771446569319799936137508845651862812243211215199089373011565397078511956997867162010771945669464504648405162318197290282114119672803475755063925119681181105271782276829900627307466163677288217136576523129925254643874289021889777113684348022964051868708988832415358645675562799451736677894478860698414756950601160632959992496169985121320544720420608951762178022789757732004124390550914228982760585287181264180145586153166082751346288298055075758475391626829424718436632278929522761022466880186261847925420331799627898758846292454240724571667370776958386478904060157631530740504935975863789557736314371299666550140320545806987851106802508806158556538734752322911673135167201195977843929679833912686788383449827783385178511481426470526439972743947885313400982919617644996180685459861939571902033947733407862655180445200980095054286994809528042260406943000912782024103667418246423504470102662709968328226450813360250607537480090139619547237434438288381067038310147284900658049152706017263548455713501678786328442760544064080007989637221114503741614028238173221676284286952529569324909639131306671763888417608013890863503627102999319991788699564840986352839109418047987405529773035110713201659421568688140444526653665891344198850104205223899931127948276803550570734939994063065267919204400966487535564329319882439682147054247262356257924739819977296879531179996547180265646688951931180405268417121300471661242758662747303912062066160009814544657396155948546682824350308500622726582933930752798631823186947415912264428895900389670684503673793064583881241699087250382138351043514346844974925025351024368031863308991730858980711434675613909763764342592888468607876633630084797822515580652251424509362691259356129333466102703026143670084910312751320331727131785358679599362076040311181872890125487234846301966061738605461632948750198676307483699925680039208066622031069062102267886794874626814154294681117027807716077463301312583015602486861369006705603155850070689193847309424990737086710033388176481381106598726949928697179412638534208822983446369296183678269967675087981858359877458653730073392027636421683499445683765826244586057630109536871589736828666653979175872533359643535444338435969243168365227089923454811203060661373322176145645296357522223810180749912877940977080523255576386593003679060451207205924762820761719651063446752501900413969128129211209149478796723240975679003932688018382432932217384282282713984525622219615576769834904825704657367105507370414143928863852711027696882740733470620917806002930678918209934645896496787171957282712412224517798220235219387935282955229993075065226161288865586300360175700309268609012997065536372946394752437523156795125738019768936593335145362231315338876121713585835947901585713331656379056320648817572655315757593603452116920134916595562867222753492955848082600327927528051152738747441236142385655444944302708771321220238506366202971825816816601760418960350545861923080037922128058177477345095584501342327497990012075147112327541693088147229981343392591828697533497618403356545653631605454564907635899949211176148984076651021432174088944292912135036899038926068456704119022560396902210847886642437947491881788616009381117798673737653592491690662879814860011079703972111049793549149916771010547088638721940568589567012414686874760570011422253041205046245684078205858201234211268042815538542820144093207540061383539034717926948450774925659631914890346193451209238846730028440488493566323168315247443112891411966376942289509274734978197507433731830030348752286436907654117635264086984429183071384326692879265341421464412799435820246091360317975459288067977062164622110955216692219303710079193711930354120979702924418940647289313165189040605991533181143876932871219920492810531961720139888836470994412731340735916724529866561136006659580002250556494622815388996926216629711505537708667892085288595764405281324672876372806833627429844223674466575979546361549864415172089647840377105972940972747159698235542693350290270434639054117270177356736355441797298171027809688414614079652854221234070428145966349265125093090500239710907990004959032897679774539259794937265183733330783938573284053873001947226022826629420584523703544710912891170324667495030324670237579642677402542977768583245863339202468896676024199082916052149965757606862217105513486269299951775738875098698225089077369623488874960571042693485018740206715335061382827005810329343721195012691611622005990889663094278366574860236870653790609031620769171960528543446586448546506973817220113470109465632488351448919465914171569840649637554814627938452807883364974200035530431172945235205933072535704445515391870009495621885184543005181945301902556481303835600435525088332085367366353267799041384521380013816385467531511077529934794604121433419486385728331376211373034294526324826278416148199225209478455539179879850487044873414610139796769469004540268721340792125868173611234749898485235144373445181059371670140773714844425753894484527068021864137300481690268202179970714514865392413079050104145293951662140636436073073871167087209018054538363054499477210260511499810710972754593810058025857530191419167419519544766208989267206604355966046583112553204008726707182291643800139097350632566332493142472446828853888393656929752204224294852359544602627457364524972813359673671206493404849550798839174054976110071318067017805451387287514813536131052774512628457952257209064841263752438989293276560727298689916640056347943634607774168676483411350467333189476458515032045633301291936626350763702451046067129114344816454598182939539960243515351994678991641604600697411497852033482380735554226825365027292978056682653065671348376350266798106724863984746773791503318293833162099553518019040611908763341548275261914268861018505159128501372917580750765974880887658259253373876149262506988150324553113872472637625956784188410960166003359061197139113895959424151065297315446435573380816611271117488896918040018184977561909240643077304989577474298262386157371050807519799767897083920053869812647375252631889721474082063474960433095872895457474805598006854105623354571450757185212271898596858962723650674344842736034959357504683832168158614228475158343073343786738408924007889836488329156533788427023214355360373012757517337190784616650445628821873723888783319607956557886993551029900688176034120699343393469380760061856512799388885667118853865847348843546143961816161300368540831240667701389612147048815686064446838795007434816893654763875597716896318425273581134895558861214475250403710656162377921201597223452711329320715905994141513521627047390633379419230936570310195961517818734585675949433382688475810868075906428916387075494774155585412317202382806562555602934705166026851697118056972570663429528864786450684032873720657721431801823984306170285035898788722318209735071162473440252396834383069547146834249526660986532037460190383473710129694473233377047899979420335046348167907032050726343958533391932119942385331975387709694837357484248867075846171030432658646040396073610105653706545493079258481068388583884504128842243833244411360389264864043662351344055673269441081620145975240233091720116786622995751778867101310831094103940381884756226639660767902990826413945532431722907335430755904993842990540440690486500296285690684001512150267802439669148238890797035617544237487331791847509032312910031393477141565074431585934772782875073461769245881075395728205322138916501365488544276541806014001593830019160354082635391422320242732127868908820545782372929314662762299039859070099592541425940685214195979738783633985880931818216507181475676697969521674967404005456589770054285474754513851600959278744907634722170336807531172926899096494141836793555126888236173022801534649063081251255528791168663691268215199321908206187705216291014481363803282631249801911039678532870183745808534083093043546662825408031385421887837991156360447557810209192088337389609878434682725732874727645726896807559553450043974059093543747458104210497146282401790742088454236231240520004955510734895997178613597978473308790271495429578208338177887342427712472406801470657362371033972164626332506490618925127083369213040220086800781553980087593751152996960253412971391744927151250495211418069935277093231460862672235256927416313946336599731431811746827157579043053179856634194590435765401157649204726080880057633111447994991276853308535231060912714638846463474816491136174373829549012429260800236917219232518915698007487252380943591514286910551254207770470286698638571451337460265455932513834182925827966926567270487393546744647571516689952844496903234005510032227925225222837440107838803897019873671861153113952895181081296187220379929271652384340044488721428264538000576603933928104931624257179474221904311243381402566597287716953486087885028575966926434637580766461583367359313591979376139752284501000065431824457309479594106403374397274607578209287966840710416661026014810385006435276339517867373615616841565515555101692217233218949702700471505139181054326684915391754648643715070895645642263477743715799404263941578164100611360264196589758438396342327408119197674657743516089448083371209831589962358502945523646288785104985153731727820473349886210170416318861673641252300947821514712757524081602646308123164381701553459335006370502217330862861190615918938995152565051556792091984710185871092463895521839932147247233395574871297221909936043255852936045786459506213757476837318450680848385578725959082974016158579681390990921185969227867513653034952484547580884813231424971654734263178674117227496114159282979372952491163365531569410513555070018185845166408368231161191300203165401405618320107824396346324741807697641074929292944412552875327911271987219522457455626104079860447792688267076255971595121307037587983651066414635403271885345462080034755753224464252649734752590748122353941897235041580910328545582525485128020045135834373397991652196800490833679584417000478759339209726158802135116307287558933161869021249537987203218990195421415294698474236168738095058402674825937639958982948949615152215144435236869532151618878017597806803558109822470380369241832560509432780266491331461107733391059742402766267611123539662093176378314193727031547143689600044130447392439280576528154795229631626737152902111718889516294132448821257066817885111630772157253953575441368392598157038973865455267445277644198405952522378674465381753598043930501317332211671636335100407494368801632795381987077432456609361626479968316594082707308173357964407104423002559950108708101856869858019316476398876991515852955170319893870862566762711077154696030092000304216794134162918562868874435734008948127337552706466274206274563422261085727904866801335246095013589179085189773371621833853511028667677081938506484664421377855040086313472117287279023908702629883504672306981368772892958219103542298014105483471056298479586497916841114402278802682397090466844330374641486707039968345878963566462545035479839624711489089603890894194937494778918240368191899671729991218924571426038057469282885374546786027262769461146363346691347519068560376899943372662617456264095615961239066864483484057676834439931138586290148107604783921211713780550797135813851413336233549492238880962901692348604443973604813911220343753475985118439815068904170481922541407244091254874012682282416587747114609620496804768656850741930722671272362364627096739147326106275953369378194102562749506540967113690762116078009440698659404799271108863924304055885082312551409215934229184041345728875464526395067671528048119235515242466520552428204053387121677351288538392609872929397862499483439308880176305043904605537454303626371854696742822523780961599891402303830136406651648801108401839449135076315204380698301797699351106089259717884191584417488933845312355922838234270934885832371325459137249316733199956818597878707448769626506954600185428245364615769691835017351193910277978561549505262461907252568402883761370580253832514727397708481929735809515198168010785460767485160503609329079621991750657751900749172398482635920953753594724788555996715686303103780939151628428846044398131583756230878025857729731023251116327194700001189793766557531718906191272820154571691530375047028225805816846100578797969356478689380090591384499934685642685773855198804130389493184169146467938175377919630328709378561859878818235232799713320434717689256206306662405304248913141905053292693220837538279224266280185364997948148722057145760483502279249327384748664727693393064907818038701079498785834672728035796889702893800859147786243571384470199867750450596602066050963313874542954711694953418616361599750423376265465974776919989681486258642295529969579096826309704201602399268786772819513156534572341260707488848706164826027369025019757752720941157694760997886923414505614959773200680987874957926663236189583145125695724648879787511242490402346977018580944780563372148619601185410432200003117742496715902728033869006661638298008811686828923800506680271107959941774606330502753250449411393486245158591417374621066805158660902828196499378864940865083499301569265244460295723119611399483290724474675409180871871230816438213340113170726486596920310836156369374193796306919101248885154428617242690401736133030280693347094458437848680551201738211265446332109430450117692868971853296129032436512576799898611894347329953268524900995736845762550071725796998658862668311511720197398151724880304322260445069999187873538006384379841125630104042051530023128578071760919585176108315649067334051327906307176773969388086930630988930277723984335184488118178857320079631272585145172253025505234770549120118338793413382002797459320571943786445481613778721322649376168676725236707732709653888508877825011111045544066794918413892705119258703836008165377288499646957924230132400938586887981165971928362614221829401548926658777794399610506009501381953817253473672093730331096705531410637408669241315046245334840201409967327623664319111743501634391199393975413614370495052093568227401559850654881805149573950970923646945291829940173453885464522514104940737977831899360249441315311712483825146670097823814800717836415964010581642152333782854083638119877337646183684503092084519544286523908535986211297248889593664814896335794839802248599835170938028271118178776580778304660280269430228598524620617448470267118940490283558140350244723530893571239273876517313836051177102179396423301820031813408424015818044318056465684912644381505917464381405623313641767298656428668897014965707957035961356885110216044765785653307381432343888967164696888522720064743721704274197773160460356290918363922536334099476176223502790971407369238443177616058272344949124213859906955663191159096071758926099211611608019222361389395714175397183343956162534961331356284227108229078701882116055764197068718378860899914237979524006309716528751129071968626047133099102189582434374476098664128888629375402215476279343237565997136464573827036614607048846331768902074804391899258206981515527910400363409401904756876717813450637484959781257522252486538652592671919165452076911875017812475549799567626208399372389058217257400463110573902528420366881849012996855959433744950205148370438986283704223267342633004717809866689108293893081600322813698055207506989539249449940631521539444384615122904383293621917728508891128744906095418592373922130957098059717796595792039616775471458602926393690571786775929074814099221987891516432945996131855375640299279484729164476575613035337111054911253819845452317229435705463562183233747094400767933952153906708583688324896655527871191558932169591776544309606555370457996395250229833622223917742102592114639224427140202029802589879513542051735205537264573808254471576310406112346881881317725909443563512537782844936009769259871142603598865154756226581175502326816239836121164976486698303219227816150230506133099436834706823713715250942335106631710065604886146329306977890227802072933385998264891798227594053310926496524436649229569803075034400756889691263506702592913706161288848265946128457416479659135579922931335145906402587011500957533137723387774208351064299096659678798682445034600883551922025505722295545615213648015237969550111809011580940301466719839551948779209708083130800450050314814309737966699195392352049618278739978741789509054806667343152266917205477821285890375504774167193802797574721463066712982359701476534838894241431977057365393377019087280011649250649392412931956511294029462711542330530900844499925289254157756506427590919431345535033631501449811186860843129762794467648610834743201813310935782824160254032531410827203766814693865546605008436441235407253911932072281222255291764235477560236598670528867849607222717841702759054381689918959648759292098665257110618965244979087599408423253450711493252926517984936352635936939192676463171275327898801537219722917276489984415733048017589526361061325827729193939531953983997219363909155251037370629765666247934223985705158340593593067767071364870065022026403538479386284876975367032758368974041233161336656527386597355313672843089116377015694399645619629802438926816688730324071720954967815728645473946777611281044787773029092098967872290438936197804742681346894039752831444221762956905274566045823771752116331167036910563644085063694840384623219900504129077218581264363488682308485575951248077441262928584706866339288021259134570262005961582886926669662733542286558013428806201779384911221379082208436630802422361354040097832149191741228624352850144456380604741240340910586295148539015044736381032676103075065682179933267398193167495898140923222686792055501799606340015791779881033010142644619217191375847040033358680096248728276705735640948978125190603370315767280123423904548518464327591322653673683860874245845149129851831939703321304009464256101191387289568271046772085687271954698770324574120975093007898366206219894598798196631442003449692442317547039810682455962569204350514349640739159528075297789510827206799981065627018022716067854440659263028680750581617463898532112742083462672808289935720498347246727386261703876636403714541870712641888304263026105804198121029003125518320365997179768854634742330198489231052330497673204898381653937589954016696820113758293307318708002315493076033053849911412733303509571367441214813219829241640367068956440875598292657693878008968952031401447710102432601535838212999174178193257113960389447520668719268702488172096685817733901460672144034122350587712671179008032826796428448811662220307824830384818458780521986963340388210939630682327519511919780012351354882968518909733289975638037169155737523922495928662036253228106370713073732930885903385210713195008566066519595836931348687181578442418212708388803600899883620771624881098326966821267214773829094731889628041626079655376993097983325628025368701706982298082573668722598098688689104253824660409094741554237956330726707294050168129206066463608237777275918118942348913793338866475660918301249886298544448533994670247969619094687641102387929585234248910906947574646858889886861464986757963274415944634777333512629552903257169814313322959050291030059966491534448990469863288155235656663061311386927296298524293567998996451965741470514468274069541179177144086458887980876845996691098441603023497313510079191232744075694980951381893980396040292766548750065495464050053154197143258504530446634687706404709211897405952961068501845441999921126316235946812007052550003968164598072447900818276453480927480452525147718490735108170099968307148852536069122510526236913436329116158554163682391744644732813516753999498695648114380780521716324937531432368835611028067410277275445929545725427622894993253425421846927994012669722381168316933776087566686345854374874385374292634988089062239324141563923499451622562162867066989675233721257280022543114410629137780070987626165112507206794861623131265266948112547586539301428890670118785729916008067351998838199464747364383810674182952426865625718048741784543300978719384898274514053833656571213199195027343194555046036139169046129858009225401844707240518461661786773926066328852202730581950203649996842403971600191446811753125841504370629557764622064291950058846451353054086074071309422295446177641350746638645145210539270556025757568157624002515187959103708777245433421441584962657302380686963827630115798013154999609085000197514193013373733529420680871887798750812981011442526169213084921557740169585093967821762921867123900140717262040776328426244630654455034994899078544329434093828657528361036455164617670953757255537870864029517769365797190784113244382888965763042820417731721189346687914391081242617597730599464525991322894361771556867692796154123417993802033858650258317358481645586155988667125328616123628777503615639615209825501465480013070666595186219277425758137625587807458439284598305509713087985657830222512117966566178732120184005774007895354437018301309613877762669917932841493992449789455987000291175119758015084653515031872418424874739252087769604492507397769129956518138787687792460746617319591129089698057568207641691798556098904530191412860512041978801339496830948909922900995325106962978226576134240084902245026113836206758873243371083717569819521750368239762476435602096713141134215181027113979680038730761343420800909503791126081568894143695098290654661769418426619600771599194303676945466483612168735844987715860735166141374937361827816878648632619670436529186065645468957079354559817941886654666446056644528901412316673070210476300991865308141688090394268805052403809077869979838324764763404722264258494137052785168783253463842162489233244933594995074347502969930756213228693659136006556957656478890847646189745760287153604100334043540960360112727167147069096858450913328752667997453171934970441639680074555904220597100635905156804028959102718170890157064631707318021077061074080525152291494530208707332466886881346860833041020211259893642428619651584918621967207565836465594700382551271850069652911811356333106807522426601515386698103192323812654862159776593608933229334807301212718616210094511571225348821145085154466808233268806247485909439467953095525479337545549960512514635469731382935925943893396028137352005252283187219463137979199630737291884702221922185026660294068616915209040851784396330467936575728641784046985718849502257153755328410605365570766890214093701000985672631294806145840454537215781459923997106370592786630793736185709156858664937362920251364700708195273994586646677699837544266470946101785238821604061383918451195832819248396423497461784855286398137727114200574928288220162086945476097276446920262258819445084994118711897815536617540847406140510158468887682071441526857071879204440553364365172182993726815231124643705847945181820985446159845786839924988148698205570767042407585208176382637043748362183757408745764657397840911773366064925092233023145777537804643163448842701620382090397264933368998030170439945079499356344297518165481206348592043421287317072549708990228256142869602865819733892881525091293783145139704002334543917818918156493010965370611932861722038518477684794599898425608020755481856855920574649647569061246345353895248049095796918507418628506589317146336560480195217040667913691466809974060924838474240807097984663279412804982092424478224643027642192553682847338336277014719707975217652454202104384533336014888749847104839812030554926107340579851299801209054522812521699218154311042469497688836019264000395021683121333705107628493437416734278353691011483167661257757476431455149767130321124502762786935488239184291678508706340366836617188881715365329767515529948143942007181559996145197901015090677850390973657750100361742877558085019988416747766094014560445002182809004974203583554485671568035169277859716082650085187756052699855829657268662885903452457092147705147665357452419771609028530946231838926373640417587266062589089624442398106734638844964374319979483527986135457178521400141944908849545670239215829791019404725206145320671695258249738332522213445701358231279248809245158067781861376616632461038093936089842343328920037415366981111538855131182100919705613023356667530378537102124062937232868680562735226604346544495577761046075398164093700485913488952868036839934501782511335192969641120442552059670127528663725155587835064256504053869992302143385508597391665271758385554028592382242666687460006122039666830409525252357964013119091996628645767987818301144877503694466927682739184526075378633790729306111267909212076334275835934073726794792498501127014650381111138281475517086310078358798741379298785735528014029319277510300953427437714853746539522089958745322174095604553364633890022373631572077708496621045045253192245063572638131787129223466950410302827071778177975018856441849421575472517250481741168949778590968168557826855004431262096518172386554024965549679401818171723388655205430930909516056428474911939622687187526671114104443550086662030566725135641492599423434562092785763466997819059745746841635517196160161893224533969508622445902219725232111748746232707723536354899992900854056807263556515752792092723956669560099243355031013405310193809573796007125513814167983831671667469476070752431429719609760815656816481837936295949364192844136505955820918713036393860768431161606172020981304804103763367841233034703664181553553496510648069173839079851008688652565976537141937076899157682110719969559114366408038177520849839235964936510906485136903486585006866627785232400251414607459979355435287580517969936460626892871470671777362522570120519754649068291758588892093088764482049281202203267254498991086872979752910063124314272796540738309308007159418323545130257118652939906711441315313734576959297339256874933838805335356178576121264354006033415908390487432319044521867706976797780000114416612251006895399842752309167300615249799398046535700764079548254561131834300649308923032327400664517382019751664344689331611889806313957628288156088953540002329858342789815021526657066228282841714056584678318501042994385225577971736701900159444913051404243382218942296331211494208715129258930549083992478390198262036953035302430586657494814536421737278738281383894459400329360676890512678104789476428600938012495573604024694704883828479729025259307763338253889415576835883242571243761136147388629088429639803878267944142531616040900816217388933549927233475347135342174325070173869018898275078719675219562824931628789143341753922871926385285991195668660567252805382092232253096146601304828555629082498606260935086414000748422438562303694330914789000719658566541196549447312370412618913631554187186803583738319935502888635799413699579345939673382818678280209851182239165040438034581397584354537719980742962759466100857050138344493121124594627038937550717096455498828871643647205759799472213189117198311318276042730959913120524863986754964637143036797537044742851264198728709252503103147607665729049938465718125531171053467456790737226728679569613646983542047930944235284515391755070074511933596950116235760490064065933555636491172547038643440298007403122412411536593782305058333828911148554067164665893506669039551871003035569761153098877555335133129629645538912185140465750491478017951169596007505528564879235458911283623485866264440027033481119540234997198438566132491668246477139932138534532230369384896062603632403756724595046664341474938794320130705689246263544423644098644490171855243086003573249020232465632087053931128312210535033725246747752356516654553593673250895286113352194907533163297738894251258636392497531783248448987795826124658236352646149067636357002566610026445027816894689944769287750388052594477366057203873150275939069351333244257909526252505255363141064510219778338374049302912185573830512444116357138703607606417686811145643791511638901367732389781420294472753108215727217331929219956487485572501969883262517712539072860870408687166069418792811223778922856236922189937710864546444135453733849258844139646430048663091535803440561637633582836422234968749293444618514213712169121475039347900388629274246699540257206340596479364787008095238864011589199749593223162912452004048627584148009163564474356144841696557310637790690943709767831169057271270086892128461695804826218319008718416877271998511383852771122678256427032282819629633313412700919141641354177866077553275162132995487091889422982823648665848652132469041033113175501681203049508413294446149126225312523305345522142581280973616272894042872635247743347188304650792578130009357746924725980878060252633175783075893338293016233703790461831017235877036517229923925484388085460538429503423852334230624000086444014246224725454946614844478211080087103782679986202402345326509537094311518300430724132827791675985515582241281396701686687057292431436040193938656545177295706552831977770276728851478501541628100320804266836268328339797796450906164281325018345860652827159235324218807016297026912523556487397961555393873297029330589092792290172876802486741081999961852612556821347007525488754275833688968803199673982200132474596005448274757108169411518842538286269514150293640985233224434117843872210696081117650801818533103704789218596121734486220043069809209737811328048977066652323307876870433819598438511735321831880609523319740152787065441239749591894233416682512455218976202591771697584441693281621213196677305423176574677968260434298377342707465828831674598454170516282978419737574278127411468028537319372790207666752525795996783696680415593566655158572957281585698162851278551433877593462727361858755178389366146005531582054125734208607719341516586866854656116083496897660574498277459890632719102526137313597992670703863653929604284323219484727355875570305559371702878332522477433991325781199479219600688410134648558127866168168704885776519775572804950808364682663058912303876179178728443259336473307604946585938019134586030404822634069842275904698129729433050313646288984168436724178261053130183771511487389627529750358866057426954546158585137551694393463036334496206015424091232095257432786600276380493411827959818828626865177731985108386864844183824456305691699542548452626502489824471406135261459229234766940180207191851291738514994848752473968857420318418561883926656329241191718441696547843895849732630473590532243530833650370410083504271403218050968877802001689583499677183124957800410473484288996345436537064420711669157980926334498685952997891867114485762212018608332873165718008472557239891102280078991912517706091316038791927132452767909094396687875484311625082460205359430043987010853747535900223287054369832832945164616186709278426198959044782606911123060246241180486901211287220345170552492012468836397941207990660161540047283910788647973823072788917171588516899425225915866723687588161105835927787401926502357067471480816280814691724764606040622638152660964016314915098815218759970943206528712035135352585587116055745292939329466054492805780083845722550677941512047053389237153871149847749338516281268282502972122134034151526983501931703928791452059088366538945184528244527439312855530980313730822929964306121717151481623062607605763132304446507453168601219578674966743805258431804655907086323004317276666777218198287234466585442728235254415885239653545002423285003712192081348018842588281501348938837526237554570294783811792183195307577766994551217179621387535257317823844448498227948692764106272410778095380818620685727914293760085962878959866156089775920232792094627900414394486187002149260140091301991988306997314544750057742709189699631243302951773753362250937681837815969578547704789263336473545585089963116916979022030916120542002245897942986474923861976847979924885845361378707484281841434751547388131009643598147157534575347540988820864676306081469194387024328229574133956874652712531346727795706947971472928869061778051461265042282321171802908542761340292301023896776676109225570393785522543027140678558550348891796532249803325309862750423712327904677539480465082722045570778510997977084389963371509371594276799501657121438971561787090676732775134023729862738164205187277600446186982826029122625497400983959350096107578317469823677013563363626032229953190442635364344212924184346453075325920755723721779554321865817246627609675437130625737827959008433544980346505968014112969440874306712174814835235423331424316723774132105646774272088143674433762786453411939704351919299641948611426170691565354266135280781410611134163099080228998907866918733901465719000034596296519204284685495626540934828277854799889759089945079084673990868097845411061127093042373095702943657015817659566185148792572046779922623349737725533326391217250266042069848706564881175807433807822567166117959357887973039848595520204464235379601771306634993785624779196798418989298423848807893837357740414779466133554821745842153795136115133871768401737228553138078482724500454563574402301563393616582168202914762799344802516320218143099079697626693516249269436205060362949161277873699078766842221921219867003152142940340805008275394198196273778188195105718256074847294547117568344017060477916778581300300477049815640123550345432518904821279576519680030195145144167719800581456886236320077484021179402694647596631219601768184276154903899108626005063170375613061444531215699267843009213731595448022359352535850247742808226063379943769034196688233157220202783136719115270920332892467662106993688134024702277347182645752336697709007292017639467489526602378227905866295292759403391402092724311721163269044847970701530097868052990306839869326855566897748380270931843307594985523843370253074649088290984147756329597490768163420071319412673127204628520837489242432664766827829379185129497577891453347184308342656870543798208213731393065527346354952900031568986638465452157715457420323615457983666211230884055561229439287280597104866660469927165869493445477154870711791303439244493821153815454500884792360939210720204862795044588038884886612383713832941116699047058914169694939321285378572527995612202703617962392105552305198970452460781205137281142592068373468351131876091076247376258905489376599087936211243416870394569577060605709922851081768675261439907489418527003223386056103825812138191467177412967269488640399419128883538279083600498101883829363256005866373954414179447218367708112051333198874172703527771513972960142047674488780045684863659321036605679531456696775522022477824939967781867548336937314236533385001147546703861276214556732857561349550152968296798562720914446783887601155998965560182377212908183223562129552652079634345937543186733839655268705037916585627792875413454185382834718910112240179453304648590603169039409273950244374914139499432658894140520191598739460345905450518857906133810334552631027913275030355235695464852194743176465435597884913498932005371761964448260280012707800614978149975430659527885948305069470028268975299494592078511376544041025297872047482459976668587661791095232218668430964131421730953514610237601200598472221018132370320122165957528918307631258038028935666631875725145424743655033159994873436420613833913897340511926217951486944910528743003349806269423681259424364195458641536206402456407700318096706911965718294245918330206790592429130734671875020795540171387390709110498602530821841727327615565076559267907135631754112496348809569838600188532677360377987544567032755442521159284776381226603824244944634909569436892057548487107624326082700551379259811385018378237225155162342529224709935754719838591754238085304866916163343620964939572137657033552407135433799298269763768422385513118880322823859340619646072513960949706143628603150297184522408444453298930908786323367686987066456381517168687504138598612472750562483634853336110577992307832211352791775438687193364929454519511390534548326295011180027711572008804576271457854019185002611225173383471689936154480163909434827922415746590805761615887435978146128513533230321855735242548992143541246128941598802824524103585238097217400386898796610491790336182394677912456520633186549034194284985656267418890633122374212440036803499287544737830461449472823873301872427717249825704339142243623762219261843955927094541809108240649134177465666704194494988058379363482307375938130664868857666138975460313000300404800122260101310241637663236837935515796406207606338773841199033475183015289413212439669136610026928586895240729081684263514107498585459850420477243360515028423350981022660104700657182238693460082234886369910730324646753001302115502542273580565938321021298070164728959466144025394895030439476352301528705052796949015688029744398786600712389840510554664790621228446625613172620753726928591676189864981548348641591967487804758424483483535228964862352913653919486873970202859761424657587321350908697352338496690478582101540644065022711154694782033812044509324370295141367474926407487378504377419305022827286010315653571517467462023456466977305323637819119152265983383182881191462338224334722840613355199576104687018486638893994355937805734840589192031889798577580978081835487418071197246061167363073695796239279952794849029122555349060830863081328932191888235345897375993078819215008921278727513239639930911928436750839334096000639227587476358667058102102241761624870330473250316294401771955269616656842718330437870860130184756063413926983049670090513982061142793098889002277851893338271018985716374935166808765166096261128629371443518237413750412741443488357036141877428266556330914874369617969703567991133752615252586524691950815673922774361171673222113813337968268856773025189614402755170171039872039906853991950956515303935044678916215998896169573793865786000402266625615186514061035233219609091294526398623715882494219741669063109415987756113881719842873596211285371543947016560242585472011563135839212334923521025251066212825301484839434889629650198423250381568328251428044440060166311296539123428038095491544515906085716768980024638849482073644906441313125352041672736263030135458984074696778320737547884349487360654747730480969651410733502339276049067064807353593020408097585574983027625188925796090783499214105696348038970966212994075716445162954117982244499435970782622401448976094496835956091530242330573187978170914448782224498997791031688181563127771281212300052677304044074045648422715995341649462472615281059359454566233845982509631710375900499415812142527647863993288269049866452578960609205797245320064148067687762117187902938896117104776921723134817776592641289314492223650800719310186049808845234245859823049802035952521218803141961449038654657893336185041311838767020222552148280285494844808205012485884658413215047707366189389518738276321356467934734332821922115668230556545730311135463885948569091371927686843032544841994929561638238528677273184006210967892746086065163530382146600183402970358834381760612432444897458745493518296588750482160437996738653060732067962307326274946995936619826330009391164270465873761047267708226629259731597799158606392059049958671571849232791017634817423831818352961790306195764683742166184526610667838348042878476975605563017267908423501921879296324099033874720767680236060846164441284269879831513782221845340845339102236242463149366652015715133131213312040041102809889371839198267361320874169199846047535945589769228537975175190208143108738566069551465830101181706694748000511551094791203120818575185533948995483279692248922525541552748284106939425381198593157838864541523843033174099972066535135490885956630218168263682219365771288234652433131145288308405463633391182013806936765388112811653999413383180935844920666670498468859677872114228752123140829596864797374519409250309982745564003448925067329630450489996957700239669177915275356017992243978947620956613770629667242519979870500027751171318476821691308598740790851690744073750337570186707351372607206045856388293372082791263915752565015461709462936881625380357358718415936459555089678304065321047329561337118518370322164164199205011227954210783511072349965390681368208732668090747344822818976195073730701107851635181608991756362058537047490265883830909380262589417301679358778546938730687775662507588362170261174132078359759545120736926460962564857610256881829781215345156507829448708276035213837247572716273344794071733738666360494237642720291737782050620663231744296063356438101459202954398013210143142760319323261635585252859322582431148557462206289994507994714444675062344389097856483288201426420179789423298621401032375114440479667270676436324293059844339157715339186144271079393079533361634498829433413973594133283292233196701961465789637168383960684078548852784352705335223687220965953035427290953950227038757675343104746409561324549333024277274709496006695522816183398047103597545610354629803661215045635704161631397613706655423641881514362398243423682477091981367126109430784051809825847179714688904759860893002359686452494591233354618227755798753989439581116924658467598981996015300540651611274786110636685686192695997501012927099204689802591634086059864443592525789935573715935769127784320389355477701581363276041902902137961823124076085356457243188827073046186500577987861046684792066255770061613361517686907985966269383650267480462650585467833797695925187341547506677645788222126344386888227102653416734505784528323019609951079390937266228270439274484534372596205946507457023773815215916364806806604130364921498162665959445006464223012095931366143871705974290050414719834918875825760072050809850011492250229185738395837050323914765062419064884869207112211675693054259967961297416507252554048483911943097947467725353457993333101290256058543675593439212636280389152608277582657001889792871758466092424670434900162817207196189003047855809846235293390118670051183810681120983484965958503213544366161385017570055439106644642446147227240879177826379520279381542143054229590034016635847580412956488903332358947016203189903269064559329278181967213236329550232797723379373969027693109433400934054630681356609395730047806221005108701702091452131950115619752767199797538632659957534550149789574302418055102963321461735655309807606212881985422090197693190588031984107199138103096526940009978070294861143342739442342117995402678022857020025597575191334606860905600949634660689583901086498352800455360498789389003982762695550820536284457435817262654964019889743012040610177641672718889646665350586237965689541898495919524523421515194013426912380496518108318928727372093040982457226306684724804174009487243405046610961602022253941109671190984369023240833359254884472093794454259800680519036262532668656276231711104282615067680567382021697330640297174061801878879100347884810961892989084010127975524157407387436133071538467118062145714645594383872350148798142388462856951402500303564051104083497041648915033840098408213497091951194358799945580880009026080633762276355908316698883054071932490215839721361477036832067564683827143855016742908819803547073894621749790138717318121586042296480200955061391050481648370571148300111612625123041467612908102772648381080593822453369016819436225764581975242084322358284766545816055624911156119670510225009328017933631514263365759878895279272578829629585919576983332742504421751769937834792888479966404366292813315200248551944897635632143962355411781013149002196944199557118382580757092627797528191965527036580436306210389272030430641148592779308130953520319838012085045063009951584976095183683044905981450145565668692383383282067267527848889075599159179750268654389118226564563027425841462375592580614545477272881550730281875275236710209649461721388646894544244739515855550160251576047096720535805398088402688822761447625025518718193438467076163320158379769100716960204059005881766678825648772381090073932027275142373730775312513881796267136812632604149253209355039723291417752475485700796114156539074003197921590612520127785296542129523810925506618777667687162934295405988955929016124351939748207709254683500604962417237920483177487254284112354475795682601767817160533084561630376686538996159359678689372633829937988272333273915562330424764179507379792720402298931019948647878972700770308910550689588903206636100269781615770406038810669229331920012041429470552156459879019523301954045707984541802713781525769021160622215931033237959488119178109346568604633885465422345705578860346071671328811863195913097538368280303882339264297516180470064653188583582663159099257090206726289320198356821862992712198417821962333687397640951591133668019230465272901652269571666615673906314689556327898904277728401837995695023328788745453571584996395715773028475981609348476419077465707297550868406930366961561397748666915386577188357010383662084903491090421803721030407466579765940411206824361585364603099413838514592213996526488869339689941208374211628243646290635649969069997797992465098405798151311275288527997551332057070204148694780265096302964767526631769090719266661085601166327298013472873585896632004851002462432176949692758552143961476836791378774965138890988143100781085644250763819694981354621670548283796582363442930329780121507002297033293343499253230738617921252263608977547428881494079874032265928495915013714852877728385617536090645045490778923913215279941662020700654998193148752045957956261719638573370906911233874249299398973762612625010465066568504985658025175082110267345654696981557474060353471641131434353740667962976891776218853423918420735937248578944836231084856849474343293696907569657757593337832241521114509181446127739836617178173835958125615925007627410884616636870414840966011195683576045499242377824694370998811887224123772629396067924121762072088507104636397611938858221715437457253857258494562265786033658309199022374209892061619541726195738116204804811258422243331292230614702140948319914839619911118130270039289382044915523850243190869790246971001744348748642655444220390175459530883537335912129022221891733240919811521542318667069411880140342402280663206720339445051316310953574830589970511868271160708111956162916597538875239157096714700513412692881279285136382398965016674882351033235705027782411220943942036604708311099038076649290709139185137024447148759141690585848033849012269318568763154465842491677744362733883778438018363662842986244133623966584472081102223460653153613494459490673643462593491875559238319395962813403009642534213468018026265453922846322861240983837398767767450401660519255560605025740014895918287119057783129287806387417756545609009338961788433891339439497209073785810196090659877401454551935054524702792081119871761925136742110295817301276747229518327243982025017304253930839520202608132388406876221532035423800478885896251596797995970829702293646124124121032539621956210439508812194799043249446906530701154533725099361505277742530169059303746419294959637574101357442450139596784301599534134819068789695507685320118932426450326241217774206401218558481516678526319453204498859915650447353472767212287671064416634871961662723196775874918801271061268099908972055469291903237820984305100901741513838286127851529074821995398266727919828446371595549469623023006424466858275092559287672342290123525748063440523264076815192499050635669796216544830433063613493588310655150505175944973237552664702585178808255750964815293404166016036577499867548603400847181684929624108115022994388174446584120757382930200476584434580694809601427565273111651433910083565388391065676419299065196734299116882766316519712336086024202686617725226567043142283061940871357396028944649360756617229240853532027729722438426305119737179104449296300207896935169332584498360589291707601340437101723959206625143911635377150572514170705703963344339167644499089811952881502186568679070036975055913886302209275826876412228275494220098185360313081741666996945917152934778322289893405200351942847357866777247422504885049210339857459139208599097180712369709668789445219202103196050382234249279938793049332400566960675014663632233238897272642548972749605395155471589415310033275255484530595988664128486141899448607012399021017743025187584903644825141107161852216048374568086933012753290834880329398213988334145655149215395612007109600925185227932485119556155426226134978008318575078731046102740314146499007259305227341432740404384260859945380570155536164740275287524450323106823659678249071070887650236353679563812613464125333960182313216144092889860717132179014776546053420830164975282330480480649769944884692047531010791094970033634783318604454321545577073582502359357835946586033767354133796812817379427241879511872183855067965150099041748051334009004079049264124148058682425522243907177326987252434598435127006646115731829884403014765131021701133872954411864215205405131560291937349393882561423004510268404025808181080299230746561613568419865798465369620868263556899626349271141662177721999796917757562899920018843700556035986134663290695376885394018493832007425316538965928306033867810585799085960170263016793511537119747498962866878416961010359132786726063096755184385905054464039694068429532108689210803799804067199530374263422829926053516192037416943119451710159354461634589205621227036740020661711316954292123302567507185005860316599055908644969875698756254262513440918395306976863659015582229713957974663123023804525127492017776824262104455949981722164142835625711069394870026089443210897742736343418378620090803444996115664780607808151917855798472988875963291992089531532815789512777397956180864878124873125150713541563128372955745156096446784069949732787229450118431084290146134156252246878142565828177682295129673777221229330733994503900375535805280619288672122590106607863340494486405486041253554544739441049846397783397336100502586460810056171312624715414819711100794676305133352328274371388446473821685462716549324480870034632113865414374603737935944953835648088329674267203562173465401166052806653351153720836802678096237983519630119438975012771126059280586268674165613389600232250447673951446618105502833889831533674293121667036218214435869352526849885415260278336084806980998839332939416652223352614081450850606782496936574035051334000464133226879340755126607767072149328550706920807364577008121901611908547324346507289240087736681118044258144911855714066697217626163124566431952307748787992976533217416102308915049569944603097444478712783665494160909338409291164807250224632942781217532968931397965015986154727544093970046389134833892762949823228070482317378431225343578136892290706178677205995242321127671375888203232596321924495894861442302490360582633262974237187311172339257845273478052140403502712659581576142370511617629875331191272717057923230090731021089025416241096936849850046536185058740252987588158178489162017473863311217161296737769721447025534556498028086866069366369840875201742938891729168899115826868233085403046528761178832353392049932904264390015749459991690096267241650303041252287051942677618898744242117083755339132198232918394951879652924530442739855480853488430026546538010883579018435706358752032435099816412656504474092261707626512564277828954291386847076368319701772339719438034646319508290692687141251952261531035340034850247750825942987484637377886084196374338357540114559624390628298961381731226736310796411843940648333139779633123634125898055884560821300659993833740545655452054485867235769070235994938247808054455348269829597677424112748010647733983971669353254918569560198510116591330599971274634379675045480021106298685993769885772450316585568539209912705096099693773099835078549728981626365257099999304446130034920673403750546253037369355518053784913509401319586842620624454952522092607067628112353338154374652663057836709119679444409603720918315044887758895700962865253776009163060775074975745968120093878177532199725473088645983177675643671666632875735662596016441583216917714721898407139584665597089412564337518732450349188565813330279049818464991351732196663864105734107296909578866159341172859180211987607557951281769034003259177839264340428654191778205434848073851455203331644995415142087333780832348238136864711499234822857688719213981661511088627940144113294735974275855670414005693286171355646429574453219061006544771342406942363830115550867684581101435530213360449785350767914055442966085266273804142863049489615154913350647436435838348611775760849770981378548551796040599733361070348233619865500932326626450011292877748132839978325810932210361727140389407642864038263456349197140275651852420904543727823075265090757210003339231769134440143666381600111974880417505002553457910088391839193049469506462306549187007566643743340962138059171738357370864995575095776997054829671023581488426377008944981024661805118969042673899028321684815967022031173710595112109997295305412530186610431672163460231243918958024135798515988686950657992846412317129652931592677090776851574552622976676057136014835180026180630988073208585198193964862446304046841505539178174603204668284456581610238914253455303341611199556328651450967354515466823872980895965428092596617084380396535269229904255644784959549875759911331641763365060894480513109940171740392645772535865821081177562824591841027184695904341194199681205671902018621415487206039399638643377124423973701215730843084464627880559424702167488575407745863675680979927763264032367461631118912539643042223399831729578836303035754624793168655724929373485878254034787515491071649985596145114623736733211113912488154518962644664396269092880595422299073060981309885147947348975896672247702066548794418815802378689809056116518836441635354524081845489710187320740533500091453465071546116300826817127322601415089523820834751691338452185640980849444382568765361497548091047197919257114532205101674174611545092669732052607103701047281276324227950685203663394829395837213334286497340310098540426828239956946447928971826999646831275619715369024338584244848294920319182315526452113540071503694248650006844503125469010377184458411880589392148062188140282186785772031867126957178196645136193478755698976569188434633580975163200433488119733412054067715170153413150775456644278059149721632739998883623394967588858826861229550416380379040957519152605167121242233440340726498406182153114390078773356208366648994082798846317475136771295371086139350414849536047708929241262660059198750453485764582262940270945668154773234874164908137090103557108223776305066330409379223275030979795125485127087637319904441155385730268918345595214856938101944523111968157706582497018278501378196015566780626540065278282131882126637533579180202166797884521474487861530652773010154691156096538962852606979026545897363439835313740078475139428506520999362481098800240131472489279245745982767021117193707645394837370418883688798691499938201998879968837042331245550143732562989099952360593336910914495000988505280657294261557385900692294969350682509866832235882683848745401728397330598884400020801598691787203677461528020970615175366978897947218346663241921894033458480246042425163147336652212652238712822886819742676601889134253461757628194657344811480450757607669293510263901901883539696988009533501459493774620595041608676187862674509088669034732462303414671732630351210932506555439303570000033337046761994182032802306767919208490981049390364149335088062929226035826273365159258921334177686395187750715523076128118482110195052786804815919781593079454244720479943498628406375676710496166599048524346686533572619416555196331708384661039456110723343479066756684831884179388617448400391556092345867755550788815460405302286782884846411128650886017714502451690208953268320545218343120835622328038677189823943061374689321200678341439966645160131662474155093651090262205365407760232898761579411669421794781665311784639979258351824466074778765097990058913356263303359924567667126942669867405983958032050588933022362830741066856510559051967615414497407846080449898539717143364814532982848061869253235369347028067156278177669147626832516095524212479086949738024781617650719658744888714639463362777832562961511810408003811698497896301716541396232491737707239500356089235066404956421045857850134749799866566717275074023080544729430423166285137717117662755666316439603579543571437725093221912201606855080043577582896035364056667735439347757883425002958335791132408630527248130490685155081034348492938646898945041044975847633497954199824980763222507048243015933336649904349435759568560433385399177693695801566368571797313814067471974969984202727886117453899282711097146691028948630054692704618400651735487674852094384603463141258786508595983254714728625411339489803904547182832621805549479269616256116991081447992192310988395511275662368126636581915509977288763715735103065068512639459636250956837968812266110024306497380687824163291381109863823836070177936354380621939988187550728357415552764385449352560183360830160336196466542212914677736948197008211269578479178325994496830423412554120501866632932185483888191376732620065273619853497116193527906721944438852406318480541608647021404311325606964958512145198438952217614662262402565986726264435964624855642801282292936833917704370659373495328517617846244616265614693518091327616315021616965376791456048919763965695377428873059645268785341213515905238599994472186116986762153234020090749495259077515155440975692124286515357260519838903616348967691875537143428478134189368795079103121996210996532622536609109704639679189130608331422358652693698235971057079377767739812288411127874683726775716008522458457947442086341588188890925453084002893475267889135567000888959508681632513380476983799294469230716588920833312648286869822980434805142872156714954428581425627305151015885694501801789894412887219365481951650938361308141697220750557150482479164625778330085274504464616878035151576227423605250544035438409334975727831480357725223803252583413955351546130369259349203275518345265197707789943256434262657342969781722373083383412908400133352548127534170852874286945697390427995761239873540829536999574780426479452648661266369723846988937332195555133868993487196508811136196875913648961111166668623720093404324984747170555017985086574122792276318599930689549213382280501977661971327304660391526332952822648138942505336405759426027732041947027489559828834166759458195819654504411279437723545315138427354190446616760515382115570753443517654555565516123860439417327103060369759158525190959394259375663888629697610682975236722521105129893983565032000917304908710656348636075111468526421968657449231049145365870573468180496080986803801248777909808493299441690281852592090560019066522194250052617381089496149952524150470581991376454247207710503473581872959809705381949513871212945396529661602508286781363612074432671031834681641109120938881371288820129879086083482944665728930783033489501761832237161174446608798224330240487328868993086160013885297947736172739029822971276127959872179063793340433814443831442361495065686751101995688771080337951606420101772077100439435446546010983922116743137382624596093287955950602775175828095220105657221642992262215108824921285739114399475354294569406570249274880622921327627541732447785087138407995973991887172749702944352107298468677702358581486419930399294889150683543206700965339868887022027611665744165288446317680779476534184507912853233725138231056274583511860156861377517333883338546095221414526536665872918752974798816780824732889242484708873941292721826800042117605400837074439721700235794726724902212794208248491530773453947475127421987234373904017944796916664254325807915018806039605250372111066810109217406538581678941966435125727762850930073566386092251092810982126352773357462704429663666096695510041730743026989298971571979548590477259081898325138757031585691648506597223393404689325833401288131559602974502696126672556649617388306402142121414180518604345588737822371250099189390252769410217784327202519597009549233189921582554479964404820326727179197919901930574131494643260432968752498730672828581291406051040099790863963883117106871114569562100136809314926428981256437927455579193463554428693399034338242642295578217818999128441751578113226247408355937123069968849197375028155747049230148290229693589105740510041768041898465047041288153966174444125986027263221292519906580350081621518272808632925060372946537648081490101127140004934269179086512317046058980716426931620465331112481712558219300582526461725858623863094228457560904540108716167511784191792018874926083399762104142244278532245115374098436725239857439678611950026928522289480103234719000496439638761881663810208460472767860673165437727712060921020164392527575670475045682538937518066830938534223193109900134760691757615619009588388584112148967557630536397231534483401004756230094873965310575287936784914769421852735381647757419296551305608071611029552351700633771106115510464356522629469015486664826645273184295767860786226435146367448720660102853130725200020346284332835677755063765412001867570189730809831648419792271172273226948023322640630259572885174246334224496749408870012480113445928043899990859406982166211396852354153243524771612890164482780325872668236735912819073722690473280249981730304722512593574333827922582387050838865213097793434406761049607491537227879173932751174714742292359038211265953601678340855916748457568524100725747851343833162863655198795388533898808533534543382532457295673649257064604460401816742903983560584161753438562128644025180638273119891449220836627625294657442945062022845711255360285148945536076195537971163211555535325740725373813895076197027232241443142387214409217865529474567989927925434007912978349568813617715175614671813818029168150259045060318445657876848633000347027209669178982288429517029094916399253853912155214714868748242699304113925333317184224752857624929883944556142293868565705446941946412913589593545926035294468071068322333742246964984189610965755936232765308817734412757831267869893091992211761801087299810321037399557463844950738042681923187750282333293448524007130858943908896693034741112342791574523779838001547973874880852003027496534165228867372944833957545153502877161259059700164564665801816664991054303542901499662679220321896000630890643279628528534723686426874979948814121150142776568715656596678076660382624622988819107498710705216420542792113759215037248116677854797253137688010032815323228500215161127551499499387132392939982598092181017359676226782847254136883165529164535934037172513450456295015948832650388189573905309287520321497612381974504744668576826677444620632347559580168086220152905198043855998116884917758934339808207468296503579124209013199025177772721853697563240330401326319531189989061737934397204556646716543135399756637314575044485451343530404699799991939296312086879336661071890588195728844479443627354070402665132498963704573199774348673379708608161411723516544371920918060843529571062872661235767530316232113935740736743924148962164551262196896817186961154246070877952138465237225434431314002962022869604293010516563482396090237208865359840700109178457939567890925743399595276021032174039982349463876917760670761749343492362263872906945015886418187379189481984169022319043251911860905155506205472364366206700522968776001925259664227417005371415949551790441129070584357957705910769862738238389380465170642829714218561390304993396661565638588310545803284530626863633756871056968731961786138885746739917744999609062174843778138027325835177589565656419738724070070732560464575637872485016002316334751144878177324364070938417089286331849675601062004132972998700063048331349607591595419279570943918322343802870715390121930065914580503211911553634782350533636870732749057081003161020361851050524142610518010064896786129662218547414542264158083958130097100543204855145857476855667365205879994697731650094128948980331650792672745156546661876109613033738046479760432972335963927847867780444827348849722438532687605694896517458779940725446865166026542677845810552017414157238073684914812423931473772419866889351800835944858676812254287464707608062199266079871574804487812542818773091322560420443047130934832554904394080980270706254942324797335713783040256131981123670973013935103596086503362140075758947833861562277069656725907576828826547315260870557527210673957880900166186225878180659911545492832466012665048203684353052957217344358559462716956981838472976818721654158333134039340251318700510348957338907896843354452545408967180941734593975779225331325859660911770178575578708343264861453991714430160430315291229760125889561603798379452821373849602010872588653510542221776339546279620770998521661935615805923555999077892160176853896422212841786874664492635531003234201311901684605266383524222082728025207413104849341691941041697316681632245548100729709372730899326389959708710628046680818103369460664902790694858941762497668159672527931999151316957956858861792764068544681508361045859108899840639422226926866849058062818539566328147513398680995280784665499240268652029020634666114127832905376067173743521109301510937592106610187847320923831888956001187287346935262853466805128328302301242389167490527585014500811428424920090947529857810732537569977997245697611877331310240700291258088122599036155922789095962827572056545709598410337862613719028665984965791646037175663335743096422663473358828968326821471614052441015596472472791268076458160445439084489993857533224861560153864326536049807275932746613774131351295842806375884690563372422161695715471056029857761770282677925183694125505159341485624148776391514759647675792481286404562680643187056021825002517520038988455713882317670388005800709663657505383361563848047294235356342847596923081178682613977462129187874143291518523403799299596428467266166001805471584283801766826514375861632501802157304888143782379937853836668606299938761513189998463984627035999629068258499338176633079122943995895458273450300494758407426602910019263333397535584324045546510699054128147903816233886503564184309042763415354526341040287640971255957715168681433321212176845654048534577645713412731885730348144227114053994360138320056470196485366716645808737289665038260942228000610083899026132200962727642702512676590363636037250723527015783116019308582029874600767927932764988150351099978712334664554054874548189213984460182218874663901400220058329592959232727761221906326897608383980713616083641719438108867614165182558924574685003002989616168819497982599262529089865873435949050040479541278148221941086195832650190660677486257296200466715806884292184890784153902790251107390418863402974569040013004142612130902021382419889185553951686333351828060815152487442154023069305746171643188311177233336876083687593460881039727216669690023542213472362346239242665268437352785081711390636454928545787465784084279433863620955072074277585351870926960526637511779002478512904698361573538126534302309228929463896720615922008365682052896764253494475905949446665451904644575593570096013727304134670406657129471221665907956710531618123948383674538993816876403040270939613023490895183893814090314325018182771041671449005175675378528416923339418585449371701152256602666812240895911799974268156826235866643386069660571270503767084097309434353475282283344807202874294371469671752432764427555161522245680171976754319476079840217464600593258771204557264018818067414828648672139175607093564832620414900423604640044123040228235839939683315790783843423379252991409496019428886248624298803016082832608080887109863712345073736810177094934622338879002191858869585480385295244429333603459612209166614622502766614185652409859962700100521443427407303471501541945063045277275013371510043601701277781612839513378545772531707877181582632589386229264444531552810138148448839526305427292521573830899775825543780762282921678581271072026190673440789898716775364417994468817644666206973450107128828231451841395351874210401311295263576503608323491208848435992686971446196220923611001799062019213812188650024821473429490084053852141837586293849968108234542214707994677551890999068801210951000968785186446635778788548471074361723750216134826766620870003275372920770844885804000374890356615883242850163868070571285371364025753767006482717834713536554753459222107242158749726857750876500103533735160990248754139594135123954703734317823211508719559975440404091326598136927325801201140964265944917856739387050273607099945906131457911285381526255098054268592220424533233356778266965219500236857892808070261934678270505083173692038720316929644770866789735488144989152690484560081248456683331922861588699143256199560683126758944281836838753831886548110210836136030520084070934032293638184464192218782043376740493389908112743186409346520755666642514607662972100478671217085152647015255465795962013088431060996005919975602551670934090880547760590852813582753045713784100202256919173922373797980010052195437628741854668195887268010523272725319397106411849499677411179053535248069596480747885982749197906015014632075120271588650847258115248774726030410571983928694972883148713419205108353229035597825503760480856833183941360614987928725036452388110926874716222901444614099585800141865721742987885567875644958562202386154016322834347686255759601550557830713093998089461125924251077855970842012659275682513341701169035727562802289149172763659363784889143831347012403021570215745943935277098020412275039637772702214967874545398798592779716923971140738210828587569820014119184236941952690452066258092845844290544646812758546484603351709975695015995391031144317784768827766067799230340996626940846833246328412897459129671837468731297538666458206226977398323096797858359660344623576094422420151548629777950194780803883262117886520967146055827613760029431306114158684163919409943183896198934210368613686241253896273516208454107231519208545402696713125398307746535776750748746723461254449445492022536541828697713869822506716498122023450439044354103000871144841640583644897110772195051740896542797480072115949028313132078510269388178910549361186834489147823963745125347079015828608991954836808317366066695461825724186624254921292248143525477589470915435280465893820411827936479336654852264348493280296376921393667966447143241923160140218451823020607777461244200502166331571162820672443050025798824142344103529151049543010354049419472341357961427125854276120168711776926732706111253772814459735796491274636761694137148031241541432521923158259074723941661907981675929533647183537808496475027770341562325599941069446221002251711120739008347069111589814163641388624388641636467296319295038065385287594636588975163813433407813166316109276232123570135331607538228197523890450859224165259289524378610937875527799670465834294466850912301064530781666372869495280554228926108883916157144525291411166923579949551113041939453650517592254703388461775204699830871742300535141678011171669075255798833588389280703123205681269766705470423314721395096818702575592538903807105431235982355011279735361669069326709543571856426739048800679810893072793985348690020819322532643870198135872219471174905222144133621813120918712469888996564122466944150122516817824850781683450105520302003060326934821597073199343733736277983545393207241530852973973805483318657108073049389134933255444348835784119436176258424826336512838406658413714324381613336329041607000696782918140201345540426184756920847049745990185489375950385210408931118793128419341877792742726084331851973422690064139584155592461981445849268047033436794243629334919669122489097398156022687836463913854428640958139645146306154486611379930926517407810278913969027600223952474075781313868622450875772173260693470804719654143053878107773769849028232859127030174099162640818080122065911207795008694527901146268407023251544394269082265150971717541589997988416823209395728018401299667263958430279840122987298619734540114795973180966588908240858344242188170516403748174513781987798603708877132606367775618539244602845455794996062058683066239640842320636349743581823154479702527083205413148501070297422930924458046965044732848925455767226707241229085294448852700467545544560388427191389036621288546521724604916668332127157238449844142782939150528389241617125700814365423766063806686531790938523611389949462783955199732569639963785440044816029772072034030874022245894164000830959450076528121778276577463086039355485725822548573396110967985184735516595057382028305046896262698514768164444121751141984802018993301102671396894661019109984820128642197142186525733389265083339058214344287730883620684065219970002067923409363469474299003507484963630503378166192850970765567557438680738172671848089663491494163731240341570504781620084515244578329843909615336815736341342470854124869798026299263240133793920360269682919018431529109980328899775382452318561144502722155894102108018437670707662703978217401335279105418703638855808074217004016696499951779298273216327160617574552243560523763844302922732809427099709215960633897623657243413148325710745104073667731161175750608607206592014015566292854392085345257010825214674568254814357753689920074240590535952415381337218659567712831205669853352551690841988420267142778095468131254950053494065821763255110064766416338190714810053163765096020426026052402584212176632404096853150845444524248120128385252635745940615842696553610641874902599635575943156699357401238156775528253899058303043596631561268580770739320184135748241240039223050869718929430847600724743023492210931892421707797600487682543143416725047670953280427677348567521995800277942599102586371306795373267005222594843996821926741231703697326576035623085850024060992828609906135297849951115078666782833570668995955405001585012221929744750117170582793760104405573955919497970059576566433305839387040505472408621610671164159901144061738960848612327725179111137962187576387908642175293482264688709316437515652573545970453397047098459583845130975837508628064473323551197456677481794186918597974445027663310579975039987324121626580535131679157562816219648870365364913871345493534134737333534882924014991733467582406988218155886606612101292508096974528893108595952815084591152429545203797758286076137188751915253960127103976730404587940723747675282400992415057822523108289177377022385189826653450563499038076651944813580403461074812780399685305528622027829173137498310778155287326229406702084090736100044394337374334883215071489277854794737144188009103453767938344309180743076592151288900547399393037608166335827988278312924326145236256408510077949735455265740950036351899497342816609323784922752818558279868200396219239142000139817222242866629434434267511797702354502029867249931654394293349400341291939187991079026067563922667431105012405990770456087820809994193196616621314094231425234429859543120700331734343578737064283959426620067754186492536083483858343690502997291956051609050596273033955613112931254477676945974804867700604362940767564931269940965504356832718493957604233076508525971323606595945036672498159495334975757769263115377714665608110882545597575660428939983328693572122329150186615921215430483625474264634627705785962430833527708820642055562125588169820229157495672985440007490642615526013580995257222848139207637608835969925121892886365939767927998518990099367964677258477459362490233605185817006673849869789795304977913793003293008762410879358719663524620571833782818777362769307311617293877918599312788170863288550828660799764650387140593244047313038651169298920874674458695408288260049674082137405697979902527517003181247670979595969697690555435911218341807999240758257354045952826386045734777048325792230999389024778815854854982154663264220132273469312250076696553106384441452298771377648877808105948775213266786199361192049678926141768469150933790073881595759037614585642988923859814854856317489932325368369874453079375381329100778290880835596303023990443546969066459554972498313436657342472466668009946574034594270585272313910422721821774795051540199398463633580240383997672747239131191345445469336705571418793417685221030973209010124740642696644639115279550931467485431904647297144713494131766656822498039401514228135924212282942365017263731547321293994111212880016908433547088353535310486283415160891589388862475749566148641265423995353354767621824378245033024488927760675862438884023890691807397105632014583955811641063144775898812250526234660364442991452255397952021905177215584758018414702028149288807871606467745464200629343539320040313579778482120764011841378840146840614485062838981134661604168333492456091356350442549184538973991449790906638965377384411131885992728262617927809679414657533087352520826706490458641148486780587744710373974042481684682806575237497935285603813313341543536589083136020568184640113014782515219833707101495557485053199403820783529813641847401113191907919241277682810529166778280001735850173598256988111876281412891074194806060184888460121404024857384332463413508518519380134273125908319746020675439725719258581532966845743830551860257598192593977842900646307945215624029045956214272838804525029401196350446199505442653623968750113759228325400414652080982869375168891840641978449502176016357718073834435033614936201800690753049945044828757380802541894392731890367458571710050710770758652592100695339721872767158839655714987195345680450836868171497718068565617236821732678639132286414915097609382815393466066643747508309012207985856601216564054410364986326765003814679622674313273161900126852612793274098423190815453317284662481318476704318684699025681106103839794627586465055692267146702873932222730284469754027589565959784306547302422448282271740796747333887777148599439260334194988080436384338174386726059420139149918311284076717625201477790946070037441653838972934674662154922079895958378456658109966579299869926102055012549124660231467885481279927559108171968248800231380532943861713525056336672301133335936127551289728273646709612482631397589396204667935840264753302006571674618538131152536181879967598951812238829415520106623832214246560726442325159684216416882965509447238248380821495420767633734805798392357214923750123656785082642171319219103696974575750746812797647126406973123724707691176135248128975565873438335186203597285174948351477161705590196331228525637373807169115133934051245149181264419515584307587314134841073857395447690026966418053745239742041339286233131343498785708973534881292117900978637120467185130481733010713676825767981027548535709090218258276276584082964801020041331705927065043559652101319580678034978357793020835694902271792640046308259150230154525591848177256229517023878881629765521192515570327420592475795407483764529734670097503652425403798443982057178685408587840020596165836547949257269756944333501424034668315382968168449026161260787911721026813449883715174668747095062382227455715990419864660601170604619419072509378697277443009784541287900476244499308586119761601820109650312209674144215253206739785508310283127771224475917578243113237273601641947370947760883119044738154014404016122160086004377957020016194603728279766750680233945711109972636488867370109510305538797549975988804082424814367168541845306756601825374956537296990432572318871892268006365645183139989652376303259252352320916418270268524081189009531032241527521613513087309908611104354209117182394413731433447495493505620305470804960908271709632248827969710231424540871471769314249338881393658365971254758560488508714273223109101647981448914041449251045485858773557978964630705956791955651460165581646306411200124699018293449524015758475931087946603833029350345647667935798472126847749517019000038629402431961786237632968776778730617031483296090100535443916908245137329687152426790327105459245412694575607807764036119031896372021278549305711674009569432273427042682733019560177937610396352397412263944228974251603057129262733287883362749942691818459934090106443711724748031232299539470579867584256995004222526490666887770883079934648760328103209010657074582050814141158122677236844704492492161593134439832066038082354877736239571319816033986526247952708414926039856941713060213406717463461374716785003143282630690255050975438063280407014462521828091680926074930183793099013548643751079920852199003808095108897292005652538408449098173346955617137373579879231108767788133469485941209193774693044321972735416243599178690594255953716543578218232954522138462056944770033721951954185113567099532668221305436356123252622485760006469988283658516493602486345805594834247582056169131938502334742603988622415342346362102074921287712745945927084171404177531411325893600363029465716966465364716366036201350107260559675914735698265976984218333450505491684223743573579684471392518954438315655271442525196439431733908135602475634542069600611217617164700198706303949885439039790727362647179867382176835858953216724445650664454152145007566756536004912305950609880472215533251537023187343680773015068924416388588502585549875339892180064212024142732867500550181682010510812909477278875240847767766927464171559352205548207978568908557851289767635748816077052563921757334626430389498352152098311155079465529888867741808277376252573559479565880818757102453489173480340351349716895236212713351540755432185513110403387272520423816412850754812074337262911510949574975187378969100770118262051259841913561446057272733209614875807180293666513467639976943330160362797718925202240848504876229395640564992042553594618255603264721502893515212036675793596970643882265784380440936576068998437982653925659712993068653992425599803155174981668837260800723811061095006445785725160655112661726424070210994583206144715881966446170410811478535218147621418045676833256491301573084751520058331120547382747081791694326857351023558482686417381509608820500662187752430867631398611155261530601281747616219591709680117238097625900171762279694709080432088478738491627732434127923515889673681457805309061221825061995491115507599128224009900019766853299499851674876455003895651827724330755755846809896572447999150837490175610507574110259028581058736708504427215419179108825962264267851093571997443705269773809941639950327246264880213949691103316729016136180811534958082557963779297672119326083902038202237565638108074005684293671708667124491557203269618203527686363273367897649285122949571439588458758776911816813152318062761795127753781180208225348903007397366063466667709215004655688259963596210402821976798233012817269877999988733343531738276851535246118481229078403079666034132972728160071238614459518592298308103931658417369352970165862546319100545871657182150505705470027978991888876577892369391327670359049749354843477859133985875897437612001307271233740131912186795108560427421940571381206569465491470865595904609642190701351772654842766760048444528964819607880975388200140209046211278518668676165687786386938256900136291391690796579568913162878197407357124730437289774762081469936658652889769602841721111398202534665488377108078202313001355462067795983022808119676220247182353121744992628680737486968037729375994712566940746738720527422662999452034810996722208693687871217818111228441400145886806250048666004556597920596118947050568909828948138879014010420858421911297064781748976959546687290314855749013092588812718907388677324982155095386625282231363210776975208129127068258774622568517643945778557174749926984105092857873993781792979214996345401686488960728463388474478465703087567346119673239794759055158147023969335235540664930212163150345840639012118230469103547585941515142496523151251601526132571298075534950764161747078767818803907869183852273853992865136516673456766597196497083671510107743359837808219664031516034735533292531228289631469174547135771249390897723494403664844724750620213306593321128145979338318141800895347395702049153162375044744350956127393211807689438650758867635888752223083789500296329845598124586660916424904812337679919714450212935525852256176855807031523458133616224679785005974712113173501299116534432518448165608243469496697396451352094626874724415557982276431002017106964812963104607321321352412927316022514478337424461523872248837080998079346986246009813716203063865776330525550299059245646971006709580224370471669611780444631181935519037450790813727232085286969841554601720285828721834709305518398211778862890163181062494969674470572357708216561619766804184477894109372824930183084359506200168210437404805853753711929189673702669435465743395619261319023233353920934977094837597970495900443368171616547950236385261159630611618034847580081410873801640099778618743158545688240894649556797791633234246581675916822111419230949625005459270579827686953729740828470558502473822303755218615904723680204463801887364218641605524593340043882738321780650738189790890723323299110188132107332300270322544613441700762841440021887876739348231406879317032855750730741193547270593996572681089265759423522736150433615544398256438607646597112540543508993555840077984030372482096085232384891615894425770455304968351060028603988415106005813607982144104971586035780862075603733944685346055847786158901606360286811825921293918012178454403931125437644514191849052617490510082460066606089034465280205558303465540564122341876350923446881609178588985999775396444805834581720554139953282513607408949711538109159456058612570572372889665783068265172206898071303091515302800279853963634471072440070973901509668161758145545666530104218887183083546219957779360909671783258173593710545198312830654665304967725931982277484835398388457952789731433034995262405573269680377415279945639015790078095299776367998465143733686684771035870520558999209682695354570483377339724046335242474427712024583664004462532516851752575536048215168810229212967246112452473596715357992652076567170234623997574893102960182490565410625045607942006927307086377232632782363018056313174914993332940806525781213848595085254050652440736503883740747681756595675842040908044571821498470946621928833322450968770570175462632324194270813348715857195002690998285107258140506009171410320771836280246348336578131910018725196685689967282303979271825638340669244406890838301702952463642819239547718833489707601849820355882854449568070047644404649082600881055959368560358638612547396198114452253930433533252813400876386795416144433088209995426576811015191330387395683524520692695633175553263794270101491200410491196037270022598689860502187604286792249178418959795634673179765908304727655871032568029300401356281297504345659127762485391001868875137329038499055190962883895370548388913619255399760255664483310815527773410442561425139907355087426721643328362698336242912783712523647559471793241100498567692091350086174163777963603769035727854726091429038864277966829968044796573839184041508622489194402248702524225187411378668472477933120580360325397251923737597643940590331227876208558241592364492484707056412811319628497144936118831915961639034425238607540749394817991209569625805205799498979843432153463107430739400935498192030793008325223494174236242951481631482579984786531389592004944676605541586482274031398230710963372193465050260708382851720985301623405422697640890310265723248099198415684189536960068328205939848584155854879064778517169357770134860628445742080220950805008241311170760588552196067234269038507756648219277722952836942356461918576340394967297126708964378080245238977940523439372756169076728784559644028165872267698015526255590600999586828720200312143342759496566953034924151893097945273928278969994455923472826057324391468516884950680776896540054392247887401363432114076654068823380119929352543821063404065311550453347609993361741930167676291305502419879292522732397500340354938222689953817708500136622391435960198780297159137173576124575735803437784797177224481502271484853939944425730189676567165973868152495087254230570341552986456358536404418680307938565847464159447196547804896671541263632941665748043677098166151490204575587070984407571816663114643444664307282635646719009725227330861492032871691182657012382759895203254490459361127705088919136203301022191467447992534495908171322783477027273309083410666496448909914789637834557410600353706432442417286822205436962162285258767771728147521620140500677159658694689057134254382625618212944078640158503900561401194314959875223233322080842519308467917308251893847390097156146660739308343395707540352880365129209355026255272332492039055600804079540759447896360012542240689600114508092876574374762217785055497797256430866160414260169269952308469428876014113071886643896685104136081176979153715880932454397593435039109639069191858755769916726168803675796049652459039603379929862815980193954726993762050576070209379147834273458137747748139245355613658159750349411799275802747973079120889773336066216862141992314538284201015922264103526343085759094918850018979368449079092140297364424859641581668812592664342808335383024201677417489480461053493190945850624190157633485728723011475149259964120532747328790448327442244283089333729268387122341502586340678206335153698917301120061092928312380393700878851344747966967095942240546640944205727673995910571555401082362908937597417023619311913454564486087868483093800101314655133634813670245215263226410190891520172223809714384052467907224436924501571296783313723067037014001259958361229754372166027404683506645201381167031764579847018737498051208358755017162828125844708723546236303526735593830840448542766424918932763628111212597859260125547402299096448632559684060842508394822039171068376841544906349648836796890530843686850204351682398843797558515703601599996719740680466535749686622570235182615473170928352045848752986856667678106908624875147687305530749348416453119681845308764231493467569742934828132558624583125963763732740900294124241346649271838941166887466827381983918246966107285611029302525752939345261070652002779181293120109040571027082848870356319020609209754456763567805119763433080162433038639359359674231226650604087137482802668447702243537673962780267439238239157021698642997430184172056608128781049227099953496999268312698769061276951976110309870308247861848093950296435408122001067952125771940188283272774129699165957832623877675855941579548702088798489643953234418292829718563086932375969014378584953661582121831732350619517270188579551818184429331155288464361098305671184251174373401034248211268492454325899329703747755429887305531527816991564519174418279110709767897262243417083820082267489838565489824618935787519790274743538525662436639523516789692526165883365638065106937073852388519780906202055939519153827334692298675582951786385662967661860507199963526295534208905518381186347369182128476502461598367336525009919077898604465889019740705175429322112343711857643784187859641217862149425713846842960422107850422348177366605322672882687068181649113647239169513830738358982934025985189774699763973256233166506822396934146814137403046819987729799322216351553547459796368446935683904572651745919983197109856057151351089916495677826384199437810509134447927477731463523872787051988618025525049109538917920397701547643525088898251383067551039134198736755962812762324933965559142704753051574171628376358346135116337977976002929891787256730171176926730931295396537078175268472532112170808597449832090011382359922865034887699905880783940011309637427051696283640686978267781670884737577235486669569338596783746736959311643893292084424842902922042238228547909706596834422303285798461726106663168299710369013576473327659712354401435980577651143479102122317077664759801288691847236420477708679467277550519117498277853823715993212283428420825976053981576609947738732527734880048633024740878464211796245183628767613571865055544355185513364598068517165949575948045851906446022860972665656132663544954651388387880474637097473122867958408400723216253398920276979690162513358545724794753540713188850454439878450828178990737860928186819127801090835964817610886896738425829136443374479011161325975766554940034496014990891703530334348596531886103889274926901964048378547937718086484932180000553446547905885064806310642433985117571490828793587411596494833385804385943628668173514553135419842578058954165622399007963229704957764210638167874236810544242859457843031702106585290791135907694265462647672160240626748814480112528511389321541161449916371371593833682238316141448028367624714519613002548938033512060118225351637103497406590154399951758769923400567912888147826006604303135489742502307337036831460896180812907262606778649186127224685738010898302360565739102511259452336266412224045416290189872657808725290137583969601866069189182089088390602056990869252859486468466494217952203165564152957943389050134187130871325202496902689884155983654036326607221924226103336632084737833488669556802042904388572639913793264237529582458971299907364898621593581655308754371214449044132819569861353954492734912326735115975977471755929865073494097963342891554672525624385153915341110636017959018988799015196833851787041411853029627413276683576001426950533407455225734271979200242443369773168214212183455588448529740692641845682312772409703346423031815868409372566363439556382193010879663992158412926263433926237465002057894225173008564717692321161395662760904525946126560149778102313741878043948137841243286788644469385271882899443290416593937995088354385747836516647475273666478682197929179410900893006332132516500179780576437735655496851963909563531679904045130714970720452152844919706226481541625375147109589619467142760082756901792105956156874355875093546580857509501564602928290590118509102351932329502209120222179708724770808720463939149230021136405495129281626392069301974006009218737774649757266849781907759721528112006205172294694906274509213724231008476859032896128081110936894074811062195369915443994013302146426323660584960346954095452310574885590899333780877696113589768956621566384263170968515854934315818623499751049075166543417333623145684404310527936481373370320017046712721495483819602831619635095446521463679486725379233170849072208352802104219778147249610658939020213934644757073094117707772546907120715960497003842048109093495541683733641988170141411356124757270417131078027481780900240584255692624725584354605758053786065820755833257242740586648450728434531821238701787301833728890143572306524750340904789419566676278245983083237485318385510181526894341522847236069431162044249871258502645179813675096730986641174988798289279304119424792151042514659751013655479069179978214414067412964364956851557713833155293409298348401957649574719736467151842458204094188103805893490647570058594843261148480890021752977878725186339249605649348777812843461314921953321809754890539837861835405012836430329262165501542341460522040142971590402778453964999222307058820472178419809445522016366652065022042186199671052489880676502012862915038918731015575913280083257558321268113858027811535873532887225660014316531299670974098996864895677920270952075771460573688246131871469207405510240751498559273710760898969298873470723915065882015208921706228678155654597507527565017652399480452928921930484556347837366360685457325343519072889791469739027612851173939773874193768353517081226400262032191924813202654505074638782300606124693192934963856300687851826529763829482363076809756930456933033400795885629235191433427815266852717537943246046509295731297123073983518925180749742361780230843051313153739017354755600238496152205358493661590881769535861669772446406176126781005516063653526570826481198059454067536400131437804015847581165505912871507068255083066149646165133938974796513981006860756547959967563648372333879312621287558313593023863384521009487217043069078671596403528879069883351147750320244241133394541317043405799072520027462236147209106916601229952421594499109008823164570663666307992255012574568849173086722759796352659218015801944987578180952870592057186973976931582076218922269767523626836378446049454820541316744111816066391422247202810506397644129732294482254880192309873113201418855240215067908499128277991888725216128899938876308691048136944905366967456702802115252212069221645096724910752744943774988839285815580245800155798885576521210108129674616333602337821243015050547343915806422277421695760123952567503304443829134710695381027000330509862667901145142735405297241457381903992106447753402168659967820585767711024035880393126117478366310804813933632556187272979874002659324731203828490344339931634111611507737779706790279117049050848316971662412477738299166734984398417008781582238001506660218158563236379252290599195880160363425687513266591398465788698433885256588621767900100013932944381072382589914642482938215408841728965702962572967532025016467977739165208045057355507128754366590161509954312418057817610292649558426730169472773806894703332254963597122475554080937065753563117524835298049427025092096124082597201826004042118025477922206336443856479312096363387268697321345645042383097182440050530196195900464933962737602801080215472172973066112409825213519071132236503295709898669704123020510576746433718395493098269071848342128974333988916603310623872530946265629410427744625508742167155493062192518757363854773112820649177716499008020370518296249894165317492103803747133551071734510232997915314279137297245909309031377010620977404834503569368112750353182227426692876085613716158544896098881668539374469603838068064739173715111170853750824673523824774309242599458560964199201897254295749744093746399622004629826544359744804086896045426587914932083071635065807561449949410019499051334106380848904576745922656665060731111948906856361767175911173257218625499227756360596814626160929195045350324994953916050856536587342481216395685486296928528900046197029518998859691101519905609144165952487955000783063529317492714497046866584847803626167260217688140294274736327021917723501198871533821611288406419871637801584089992102326138236945030782061606105332529047656804818830587748951368589915414564574548790314544163294930462643518483740683522975741478918848354545666114855403236534270454953814838944017726991933733789235724477519810652912505937683395922514261520447867004463885556735462611543492309428815771280575662556374106506089914328517244966316604370842161333327072655374663593818322343196327309123456715444795586191840526006492600818475523439060189468037241505156707834459688946274615346976073197998992971218202497167644991424805439179206061696658352715689138494562729485338028620975533453093850643289120887549274422751468091364671546424508823099364689811946171615534059516097438001493795338067543740049895356416771368084501057864907517299024303057014818019407272270787120958850396442412703120788892027757223188875396816001257351475194445407302725276175149761304873730408078433966103656407746510038563954457410386316711109660774049849165523792327079370764935660970153085996965559838030198662986297773483593607330188421903919510294038199540915325772656702878016696020487595348036049309666358878416483996540558690059741150547334903657938464554675309360168882031050108413035538259299217072313631009132814024331219622433778051419150359353827516302263350935370416101264448007687347239214401599803928414990917055311802630657071126588522529965425552139982875606274906608778375118476962336718564795421341432772999281987565941916725037960910054116417879506330647798635060838534269448190549633951673735040829982917168835043698709748253776227486699219008939395819469616693483196097136645100027615768318321632062575447980166399430992736967304738097725630536061620592645562440574533820379703202624965313095609368997598571802961048901980761851733392230013629088750026195151834761134514594806911290361580432323005059196143621029276292902233881163683273095298614719235334063529782452869625022070986386352235694443815096691192897800575042343359699707860587523554400096380246303816059973543832028311398054083978642282823848990202343448647542036866623475950977978037394515031472839954508286705808094589101513628103945281991936597057853433569937296742835522493927341866807097291834535054887703734991818554562027207516481550763372054960078788710659822469132578189538782952580488296481294989263863372820729752358558867647420656201502923899870508721759326114820768719361130057071113515837824213202933037462378888352207789344004085958884310750397290095358607253520935883450010281450257338944186189827567836239215635907291500114177760940385861203093488105102441788543464709870276616332365282718278232001160852928125818235931975059536722992454834005715963662089064729241974604880089872775465250392639541911768474629622739783248619957184743560861755432481676294196243091521330118103831441236406946494256474593493601853705389316779484333528821624866273532365497585898503141759119280653051901558644986369742158570472435969230051289797403616967812831508519046669212172692149803745871370457872412329205633591299558304813272453799144143091795920073753232251592560628020908803295496247157498679432318781878392112124755302723676442428275950638304876097097962242701872098571898254106584714794869873083649310536250592696639302548925410878142110765230322362755024484869596865341918519629750567574033866229513198818404355875951597461927059193627932007238099195041045953221516310830307932491480621900047822476868140278210630751230223401980914151707771868791883373046033707639449644476407557884852187599093612649616111693693338863479697856791415596063010990149015770533883578040330865111649178968624470185525471872848946327747993662703331653832409214134727244387766446948179505233874147561834076096389038621706822380115825819233375130625881859616710996947872035240492016258082911881239501582880381941915731178474104249755304000744608172625924074870055742011784304231409776444910638181592771868039077043390578501850304937276064883587881395353783112316791340594474822406403780006134183873098658016218146294142843497991110401126921239998965503226471434515910178610928911215739498824932607605980734950077408490028578337745035710988697176640444391354864300976372634139496180756623398277575554067970181216985278850573288158284433979943183667582472185048496826093028151583197812639014587750907197274420664165491783792440325887359380327741045340289894561701174802551247716199075123177137099867703448449625732991368109550589826419139965402479139039666092050227183775479333454675926372694156613129046641580863159922467655633868978336855189753694594567340449281662639481158053684326384497011677560288414831826718615976113868535595017503951472092636159041152079657441206278750668608878570109615179314322465196709692267097116612439267363948863275054086941679287890954857417246973282880304040335356428962209115072166114255059302345334013423793743620765261678953457585115661335179647735899974215911835591002217787514012073620137322714952332806832369415086186597606450303180740867926309628870756776638714677490279160602018538149590318310457618379224875035012898382001858994729019353491277353404714714325001165189218152728475920753895236375089325848000161422951634188673487760994231516740460741127732576344028425674456103949282636886343713020263707997640466431593251425773942326275564110038927155298017841413424539929236219443803986175934068455862586600908144877664708662318897191194257520152878520245793620658521197977494326406798147117777530870246000975280364507324963988560147630396215556631070353589106713433797297729156355339319930172652425611614701720522982747343897805980384895886354169605789306669528186805537940563924793520247208887245344498175319821361983550467303033999695262011984049727203673190915829871508498693613616737781061954187393808921914007276461361211023193005561558038490382111180594269880090615015790995559462413588839721792359681208231687962774336372768582937172229320510476493541872591616617699284650515561618802017184634754560526402936234401780522346830583994416282788434459191710313327411872838998808084382517666581990024199420814399871674098959358587602137698608674182582114058311314548612528716856662373556731283191827670720023871324483579890010428064884638766192886259252956811609507800794592441131188631992268440602062267364402304502541715357347667352480940365249538422629141012035071718124768140061782266178082513019140045311833384194673265871158687430922524730569384505666236228887892600973785779080745746602263486935883992800983469682241293719016001417338987245946397064178937043365210357125130762594182245368710349468124761303910998305607089010629265972167563927090120405834357162092679790449032669088124440468671949089007061811269173112576213122597675945047256643147996703195634456397948570798353016338845085467809837471677133150466913615311269627008861506945903641339409311452351858705513650318544544229836012458466360781908813318549377869605558151015305324509138886249436250850896499568599413031156190765653798184461256382975157515200055382178576672442442003979055005257694366525712999852494777671436082787352224171625627939943689651288435139965701049089757526573940817071223848387975989242708354362966677338626335362226518164970079276414769049091064790596659397208417392431889159843178421422341649679246695953622474287393681689952034744751527736276261689807454247779556769217917720619225899126198521963608343483560323204361147531703568410378648454803948688253970514586393882586525994473793697995950381786661333424387799047364449419047644149829625303779573405865782642470885906506942360654806216663987746416241021216089122103104907345371488198800573472514112979680150216420966399877231316702924472336021620114922241047987116453002082733437233343974759731894459173218443903413562529160292733181269385746285004230886875806718499786530663800131337770408353753116899381314891931013799171611131785501370233086717306501175500286101158223405412331608807019193816134889765730548948882272162797029596419934874443184463264435904461136028423238314780638938920829674499172669376815977508337181901719350719796607246152380520592276332475534809158769116319560527044359204908051176307349956327409998900231602168506675256630393078573059213359337092023709852842050133567862837949364902797654045697607589327754501464560513191803268022145052659634350713280013266746422773413273321310244752861359540950464396850751251004781456826811075176208648245248425796721880321836876261824851116891372854925207525751406546019672660168488958695783692191133653898005307651043191833445394188816667374122266267473653911530379769709722301743568775012754518150616932556289900132184862083278578387490626765622909202448464516725720006800499278393171280120693604709509498570067740239427316112175819631261614244172332259477427656653890205112462405536870122501406481508129432029163840746139188769758592574546455379511180556907411262269209718760636618705998159324163163230474150801869017378295749309938857333056270617309361773168728362351124443016591170895628291002210466278139802501931402523052065250854841846904895085031740778453634824093659326078043796194800991058496692282364036195690484789572972566176597266987761710841810315332937946322254804550565205936127486579280703616609164324884887032944792179450638013993298655505158226118507223650560161039249280645015059221091067114964602965654621752704068095804677393066437978589142658747118741655022324339933537385875923891330415441264319623247427882373639880934212642690985044100699064101625090746775889759325772470892087294344001166038186935375711037917456597415139359940198651083139689559696539236497707973529292613172615363384648717393978615519474794037747110558735528310518354089479467241596982409869673180099206135638779776233456832332192832174473915080652165286360721064441066192427114015812593797900475287121220265872169028897969267870287760480835850865419845162136618129837806439515548051694057051741548733753641562154111453698644473798746124710117966461532990140725719896358727324098702542245260402153743840112765466786839512430282100114867520636120034479736053495607896938726220417774586907232128321266420564589301698131372758993444094673300769158849557407659736336530197342864184986744064334833935708943116864165552018935109486022444653210726926829329973465429712006897464613171439988898422177176248117238554335819014783869391021938474317000294206409228309175411689212134276011664191322738544599941716157656559470526798763482152593563898364286886520059681836496222877818215489646707108953572295836410046160361894352440637105755190082253528203797733799986635085947590653247233414373028666330587031520916757702619932563001566776714002697483609022201282398533686048058461382861070740680296683251242081610896536740461314377329086421771306666794551226617510568488868553300567945002637219211245302707180659011857428809504037435369389265076947872761002238498268216524420786636369142071677101818298756036857171480623531065607579151808556268162168550905092070520371728881059144205045591647087182698443576265489674532245105187071223081158416184286700522335597651523261047996090727912547652676533728151316921787659600835833044965034730382090225861378724679851649585315339703138810374960907090203659183486149398811219945352128896799866573652145267197042758672985572611454815092205811660957386533699777239771762686896225305279022084973916358260063490240660502346503081657841086917283215959019463569187713841348176342876539403127597481589919539999181741749242552832172812755417973423208092871553614717341387983080800045449222769950219081637294381650735412314355178022982534917505802954752971339682891911520474251993458892840356292652113507979566973673415847083874205999758780559115252889098906597495786341867157747710307777411715749337931496763575140895825071121457875014457198984710531496528101816978681486419208882657459032913275317996146776058583901978899186014779076502733122522169296204887325049306646604265814728102393174291407934031696366480363063591802890540255840283551583062299489520704257276289080369492157175222299554462576764003234550446742085530153917117765257488323394993413464610719909254655339335880349836789989645354419151227327645615155303275545336021621502561908315157397285751822428173183637308732414906884036241178857311235805621137926521912783685901788327385904619986180962684993776842935803063142890610042047450375481718734605211423925306691206223425816811443170126014670667361221829004615046383806038346186672315107614356949689729970814786055639883566394708958276979622154936859220418406913916584845371715284953570263014216736974391857577835603843311396285675054527290034737700654309150916406051466873141843512438780320884539790343699921684389363580823160620679568483580533018499629797105195664538127781039619331468699641530866856283621136453213232845256307310435222404566402021448528108726540695202354230422236157206304614920622014175380808801704266693886879715503950956425027802193730590464391302700837528203804646852923294947754079857261439798435540699062532289935151174038280137881065861050013162080697280640727177158401785935898499444020613850397447451600738100131655559025975245867608241056579803468004458207579422815526579765111644620664788589209255414039961432865873719011990990666015846391749248615784034558864880161945355682216061871215412354685496705275203855012010795475992881641303934404335782778175717482381589544640866478560425369351043551252002472829904724041518570535195868764841920568907687933153413959298989232219189520511981416628278373147163674898151644640992063095251825409395357025707467123432567357903739423633837692501210548985965955028340460415877442661889685621170451211078316738904297318174476858373903392156591854873003173161874342584509844133672790864338393579570955239987258293435189715050911920429841928690340574871985965581684405576089323416311154596908561769635252166491514964329085043406590668446298604313081484491172888389576203647834128933850691974044475381529169901671310244654940010250576339850835784098854074583160064460629927786972822369830027890041550416386430565977496496311623627505985103735253169979313972851426992000756405544712151602652609804613155928650148905002226648496149150367719516449706967907025708675357832997182645927614052173953238702249524618036202864147073052456623915545861634614836955509649344639077391027416596542703905699825571983757466845514013630956210113635311124992347648306688331971697261844680874462492977125159015861657989704894518131241201379261974661786379455646539198351859150216195999165694969979698032728536596173033201682221044186595454541205463139061219136656957214094599877579378213418540339191492124747239629931971075889430267416385153582392067709177291189886953623148565535844425661452285534979056450299082653325056360165644223332863843973845190478659843241908945082165195947670250080088530959609381243238096468781607231192713170870188526322873526182618866026652776477648252974355860564664483219358949634115523341865623500272429078013938832830046268431307837502310913815196921728211934616032472580621479534390395288450232723046565701162357252841758088669346648022053112652421255224171459428639799865572614773608913228534857216787194339474189807845238331303062194478114929435465902373807014067689013321693901345628484211772474270686814379972531845856006979008296201739366370916911448051572135835853824139380688569060976998190603050154826226009855439968709189670226386187517761322206517088571333838606476866414144026004249429233741253992480465993055201219352735462939494215739853602790776277525713136908390057922512651686509602843695800267958266993688666740310105450310542313513217728009195215963365681528983459782831675772489495122155186212720205597819706145468891102322382364590130448621443363494669396641858456702583796064071738454753853377957635032105750184374245398817461667305478488267103232300646687249182411279381694256294306087512509512619997633407445798003702621810767764661968824650401815236313978582573415163334766783632401004686959847798826738963873471312297206167549497637794229021633010309124745436207517081145707085876199247363094355347646854998049392986502734350855537884870166282499055040267914577170075971973236141320286062137972991892136735740411075383824796293411380499446461655981498908078140477255267619469900411427626512129382467396041690748176261729651957499023796223805814353177815587292938756159997648882993246420505698483215365832386097984973661013788230392700117324586399233776244351553140330819082256063875704190735544668403100433795357462076746031093723151140181825983787707252769732645065320194972405319451252488549523062719136765428838642082440823781870918328680620428065826146466994310606959467234101616940458221287181739793401793415621925568881891702377870920105327192189514213104013908514135712489474645834640151509675719045119551803876559095869413893651166327948799624909071148577964343150029641145828793082788213913731704879576342789798104072860408104112398983944151722795472479499934053428888018911664133977512905731957762906743041909672666798785419538373571806390985338880141535961193038567659371989367280444314334440168434330844019764941536540764912592849041697249746125504394034937045830454912700381395095812671091256076195822958136735304738043253312111850541806674801237346536256988227400331127743255639454907131255610393969253318605432480319550943075823185007048236400609964998145908352410799343009342185936308353324296539332664735275297044133101422887302961154463295947399900538708771219267394667269455656543328181868147886009672585623786992453977036919841466593211374126604692432591569730842364950623665610243897530067966290092025185420936038823619542941629708997128230476498089899749899981517210918706298518424586746983837421923898425122763032048924346798199122123115113137241940375659391250895559263255584763598846848222591450610251081660590283868748807629561057698635161815254989876727139945177795241145797949824166334938780663032532216317309856395683578142016780768514333445035387845115447900718849505831019566567908380127569528878739627247851954183965453952161251295567488414985375032357949000070984172953624622781316565793363956584155915521972449786006366294526189131627166328357501592869507366679913541663873133301273216095658552002122655297814170554405618537087826879994008612385498725012328141836742777125907862614429705288797232978896140093896372707545702110772753172661124458283433128358850545035864074680701759798885680692251067577967219429639219714140478802214328830151397162982812313060419637350743572792825998977099052960538981742362843523666743647034782437341548084752681638963921433679571149728619296855788425618168610825922053443737516167292700625339848078259220124562878767759929238718419791093392915277056582127368733989524882900172622602137764385464545512443166956450807802339993342056165111916900582483063274403928607544007315343362290246084824119019780075803229767585718482312523473441072687762065401362945121327458540800580674435366142726347168149267397161948694015821988264185352453615803074626953923005053784475371493270529831804200491305091848594786533760220129986272644924980156309794622347827120014489904812180719323563217101527616132032731411417924244591530166402684136077246234921401622717303052496395006706560595259758954500372833054009741515189355056966814738418370288919459849547993991951884801210468186498836305271482562362651839789542210758507334260711870142853074692164068231506554707763178024247883876859134557851255366981691881823013313565764370030812040888647973988640454413361846521305983445597730709854176199161957474866304504090562243733460373692104604983825881948833979446208235984947410804559294370903192614089838123648642573727060005532069943106353290200823001027708045422000170743712961355626105901577451779641054027160806639148738499102671362064172151863986468432365324664370830153050777934561445823060176933650150042828390436248072592451795475955922006950818166779190613582390611501849605137009364877860154211344798606581706840934166634554612804769494416653299602928995955161972109018888016142303381437637469351198262351909496921242415031325685242604631470094297154152391879358609664071588530739661953610744220547410962949960554278104300233709105897359012077579999420137989915102557761479952722600585141244059266733190555135885604159122566909358282093230381281687780513079274177754765010719442814621785493968884690699077660158372113677171547622730576265582324849758462182942328219887192487411058597836285214043046455316909162787500929419153909855380820513541431624722787634807474615868763346279108483107853651184861155019824160617456855518294463137623202054078949824652036725580778693759244951293243322950947861651190658801538914212996297888743296765411516429294238507253939293216131955009356133298867413404815162078830901514589216670865693725344978601369119676040616168360816003933010822733956111018312356956558996081871347951138679100221029327663649161029123435327116517175537160292630061358331933705537061908102545036687414007212003432772038733235255866437813792516244815478579654274145088349048231384091142768820648206505985103699870389470220494154220639298665395845583297216524984911859410358629500057004862229453134347303638781185572132070071693441149267317395614251544532181052867791182882174784190406053468516361183941109144631176089080467122039563765848008124431264588132106173284890388355404333325551356281841214966619331008369441993051681962782598875503466623948148667840997628713186952090050948231274847708452162955113767621829269438524169496887785454145361045831307899855785312910244537288042928619080474034991551140306841415586090852338071778307972847992720779725304530458451042107257050553725828330007864422422454523266871397465670198170925937850985175201377817029231973379399327222086036429662715412532957102876683087710470541173337994017217156397353956449268348930483525205221836687272448972034492888436903652927877428413021429310270065112725360835184909082009949987701496964866200125584848455215928911350408869392401350853024385068289019645757670252617671778696454230829585354392578770997613455625543677617141350819355695204433099430262888291230359236010581052945850556728068048780781960530397509749616280036781779694599422081743551402129069141291132418210016664461921248825059447181732339273438245825567952468369255669976242594168069353468906480864852111093036852755207555032034929569921336074970802907144044249042923299972591420588815952176012947251783942221162633475214329653926129160917748593464322173877493063004427453388112751429702764485224476992083057357017238896435803414907637942727087682988794898166754880530284600336588254796956783815256570995399580093820799950215722015352281695007715639651171137164218134660528713117503826744549573389248384370995332557314255742684733094532595994217802551290747439664701728027313354721669711577388717353344555610867003176393020000588342452427768135968276309805323089255065758103375094341185303714408215015632095885399427848486882263317506026312362832923241732898771992022408214682738553227521167190742762794876304032114414528531861142408170930769025724490739712198224548650405069457318430698134061746093119792383342143981709400166594619412270857208374026869623994724894438555839699993222697839365677529076601379753691768903324022877629457319585108352504012615629774042157217941020257373667467125756601343839939433910029728909214250663223460366239628263232116455517235502486469974709499162880882008579693033297986772530637701054337433057466139018692535107330803585413906429219119872455036861699591940316157376601298165523240995640927292051785651225531174479036784007359587332278014636558112892794208222208509862322769849598580528307323070970853973309192936995019942369154508649295328331814198594211930065458893508598915903247279269486972293086566101637530159153325914979995158336128236108642289164313279919457124873745501909968855003064020554789650971743051862043770680065305422079485929639716361868797457442245216924712078719624513867188086026388782202646003101288242600795815379720008247005638512324576942819048408951450040279135557695636260680096727452720757955910319950292476230965909961596509210674599320926951335774040258522104287621394064493279717266165273025163229549831997159238912911406347457037899258672652026378360990312806576812432858617869750746180056929050958607047666238125801470702786377303178441046059049048586881975647296513063247531151295506987172828320775096237935089601874223643575996704316840900723430971655745166203457001476676631347233823675819065717637587830414364798310326933252593097880700502304835779013792170346591538704807747565778385442834473644787526926564021064554871247948756103087240521160824602197510742071346833451523386624820325971254814352933242688885831721406148430154640088213389191320800313382509840723003460984057725677373723283928703868413413812981333757586980107637807173413178502190851581148443758665566396069027452616893177169753670743627458332178207324525163011791589851767550032391914419398297699041330378245644028791425537308091131521043535183977539353786326087089236743196373723056397609614654321209726157917316989375527824078558541499821308978073646907195799633862337502103023791351370662525835920840061746757309360029961081153299033717291470840006404927745996401004402803411801275512234208626569921328818787961400866025014410175555758703283847362369878369412283227978157197169521991123643148176738379890842965940795702352948659001075022213754269330085624491194887211318800847736312175775966418617773012423063020546404126791186125796508087644112277255095082629189687103192924542730778097774405069421128730579547336765503247614427994010469564571930632820544001670619186959717882118990950726485226080170614591875982623308686886580732472636173418780049443132758791345514595497818670197602060101704344365311834497798829941650260212948615260198674593962637167796690538547748888010619527466745199978453569485572884818264517146284013505319604574941789838421518392217333799578045809190933846224363926589369390310791618410797151618433745785323253399215664100266103339571041414003872452488644210577307826484253304014632315947520288824425763078008525739042392389717497659062501644230504884174192187612981003567745410055555342854477535197824096706588575261806698880961284432198261158157901094862590944042220826324254643005638135960274700749120246192420338272012150535252898247415613018459765595150734005343098699243592970744497176683083260744970514715014151396055388956448222337057016459302524726656571834121958370525620267321633292633626831786981093207399474175840229143297023845046970184493599012770320069627365879230861981296836135549914231555042299767651385091889314119356972401879501694196360474906493858782528925376530180305108786887436084567922489946958088351246796234970148336011614514867078783589789659098445413541631015531532898306981861780046260694319389199112606620212055735923826352044134306307512665950356525637458740820098156183340350725793280761881664709699857768954546472703384089566659747604782887282021175186772391278413417437598121974671318392188463014408121449956867901398031539637654208478747107057861009157949030232770390448559594555538011855635732980260161239793495918960504215348049842351995857270336589326668298216247926704747718347280586092657624244450072139033752816671443463368433519637090129232999322927836448519108716039041578760900739893214104700852428536213510690080993425792047061557741444708879518847291300559106661862716986982545265452487874758707869739325013743680047489163865601901229805382094105521096239279150621198311519444228622694077336931035925163266112948384635065261645119332456882856811393006273606944008013914771774980989564700455168437937950020193586528144628258310024908691930940867472606979357402828116824686140814687778056958866391252832466676229341493281987470226017122198902497881577101162070460080056913451547697332705202000355428141017223561966659389725772247795402969538310386805559099826765051139901420361404783647247018160918796197030682830653100444428444133132301708080821598039888900269689487884918782731442822172631426529135874257128580621413371188753363161297024430972765785040207338973706958438709531783743211860209492532509089777785230748310372982420554655316278569018004570175411071935644708077037145156348236078426401041026297541622279873071297858356206979632923310281175515798428606229261670639443820436311283534324451201099800851774765863430407611972635868756109809255579403740613739749613338041550216495943287436525300709622903734351800084514726187512997933152731260644230543400326149532249529684723438652338727253488319303276343259363964291462158489068030566620402221696084960475662659709827661705443428089177266379966674435078039843233197946942649712605111999750863127802397430483709669627209042585113803799349965525514122867698022133672461856271597364988529919269850736670013133809981467450851504874934756624948627083643135908101095048729297541572954728467578190827870195855648008217947438907971070973837405900507061621662395563838000670075443884426746918666432002114733114956284917900712062047498222470513947922799890384009490157493478069949977583230229079570238532191528145726344745587061727808925849312918573403486980203234181907744826096296840977978392235936354827953084388134726094138865897180541362264939335129347951178396231844917251606166628299409941225761889628829331739426810447473734771552314438615793844159364101218627000264860847533626729001632539922987884989608952622644185347529022472511456813817371341293945398171848640422492416483938694509596413130221715871789604760129579789197424942942853831569613988973821358170917399478236980386815843818915460419780490040050325519432257252819358125510765688285823042248913688383926968049563565529411770727493786272992678332482246124135630400042777079210922091660117042355713165437050449101052914875615457937480871214884889119603173832710294937074461233445449253311278480682845549024516377136404906312393021672531980689256267641345973454507177093952249097717057422476130338915218824868112911252571239653588258071888948303685342308347640972600109687110661105409010442413405091831369844348205781104286494441630840981707406642037771167272212776698187580030503591296882489527784594310029201065364231188444376499849954915868318646480779894951139153842276882619761683655688906748284317889578699945811623206714698901044273286421047712747584028602979848316975528070320145800023344423019776206877411343076237751377355576710446547184316946561385096742110121029684462145369408297530154016585032621229514310946884227218560554948922857531073329028906776578987420240838301598109889943353869335380221796559944833315173976480156239227479319173224173223879789881664685038945746689755142080694352925327326621714753095330109457732211673063955548879868793920418448121158978813860717459464742340611980774694400291849842297100621955072640148643922393063516723740441737138756970426075684649588971291666832782971398732487252769591764427625265286909959781661048912019096968191946824138650777133300864201263952362084908385755107135400879054573913783457164604884849140289527237954901589379158025621845246023273882095134379237046897128710189347883400800871296488669128714056056529831790805977517933233872944936845936674377976672693526873771304668016952914889076578083208160087358294126466347914142693989716475232887072507746459825959685028304505854394647366544561924168918183102359130959187357246705228696128389374605700449850892599096567120482490059243027194869579878641765274392346736682134768768551109672919011093661696352240234826465288984786663014328536645205752531836761651993766299030069978554400320770812687515432627062883862983328514111132648980258809352050652158557936868211936317132130384328220424447017961367619263450417888037029236534548366926866089589258459282257310731949560512421590860170160836296916560876849154758660861844594349428322614232337999188576149312909746127938428914123732698376586570677517652538447264076846401423649913282785352080958141012289809706034375773800480963837587432495100111159622496084510338481814249972958721517759355132121618720596803604772202704347850296096542206233859163138704123962831368061518480077400355875566814760696886428660081767456580566233006613045242989388961843750349146793720561623031979855709549139993269361464317089070440521599161948737387099017997763890584007940991018660617901299371415694106212119357717886585576610271909309237264973855666996516906672055965114260191225696299754856332122072842355257488601501560991830712045409493948574192869822480056639221427534175976623694056943748383771500205711422357055895923433967259005430701364943229994562033550712050015791566873990401075190972219318721342827012143564278447395668851210655988583236126834050693722634619128465167158782658264504620272060137077752793318829304277798200870678721909138540462074642928714585487769877174005670719713887535228948668886764094793505793237929965586952647940121766409414997249250291358322203011024098577162304236199881517233027797588814356354936289721577186176939332495676927781091662455049540919456776846185822109082473256575655703132934106976827838840607677220433623679182826091747469479460856708969804342814266883393179042412334988954546955893318084376604538120440126798764528811668787227555680913865061264448259357709146329424001468544073986054527178036201495219580245356505773930770156997434340978486564512439380788314979805237812459810484324961452899183720376839658091507629568997198216169448487584437943616301870372950485457488928110356276269126599779257879200921840340257669666032869437665726488217208556849906682366967293601441989203273033881882522129088287125651568697722213740456186867214222336641705323946126152602824285490042540611019010764729720710857426959697282427537449198512226732369601275362199482452764859151166979254942158427566158458414471557587274518439946858495048750112782135012821539232415577688247393877431468886485957730090647556256471138186760404613715362331301291079310211284921772648918435684706205318202380900598296175607361431801997437479014529871766075953129273246731009258837010657578519035813523465435184826251509341131875845549193064789206771548606894433275130914611572800372659655935879739005293622002254050369966911362073150331919344092965996512080543846633577212638720989591980437591604026791181499843206004214698420600693584532262080200478360776040561746480633464701734965494942033009923799098110867136975863523332489134850416531665966290574576144120151357826997016876248503622625368774407137146936626222985004154881590438880314532641090269147798662736806044231472098573061973746975791001965429310249755172917957987212374852318214483952156741577461508192424185687298955653544635562550718541381193100266817764286318158855633919780144999341450963907061757640307540403959595028303206944742488141585407270800187654009752328956136510581589994826988499559848832550248971281629795278145673367000705912790382320161723108866199076883529664369109354660179199795381713843116052253028908010949809224144683169003168744189052088772044993595974583701194711320892761358186966992534532571910225913072178025728388238457123899488844994644866925202081012281978823195734957134009003983625464322006309420603219475221538507484369198816175721756038979053760940042446156596022259098783030847985493808642298489287677076625694868669431091890729818870574105368553818945860159105868326876852760866735336284554833077932325411726850721312723392782025790016833040527429486828470112399262879636748733188283620081322561744562976373812218967218301937616885118001292703380478926091350310897504070206749115441033017187381149454978455385812204465890795974144717547193822222853082908186949870909446409948887245632600593900404543466479304788839178468410754534029626205665787827576617638307680141168888395841667285859876191204522611563583610116582650236350360622596682899819511977861128515330242291910338412621046496830714021153652734748028128814523507779529533137781199366194909502924530780777976873940244375339844893521303469391486475009355069050980057400030437519580608603524535454815778170415712677527311979569168239258462911066223710829835605644937246504865575559802215743145787101363673200896566852578733521517401877962381835792025678807314619310292636129503439150478635651695019389201267167863519604253284897373439799795908123101616234978259204656962348210741580762035431633847488101743533294695953033004908925744026713503007660615281915372702869247222956895055589691052659233136968099714244840021314970339140963390798672015999691602693711718808165532807449861216625238172332839154930498320477647716653925247445757594301627341108394691112649559103590525197899208405200891832120557634231292900557870491111864871726613278872335477709086972451586265957646528943775919790699897624142219212591778769829895357630374018071389131313128348537938306815237501285529682674357250013927537431759872708747926467030583654897139590673431182572447009322119917399899539852085250603444062578716754855073770993229970828955307103335679360332265233686719478715839068171347429626949906600890360331999315201747154968195474586639561514216139787563245089272689320838292591356181676158083842700029437036196804238590808328438665989435786831412685593777755538492830596409889597281866448428510315644566778592790151527327250899839342483084507855637999537045769080832856015790640578645595973428721815334039537691820839229213188424166218516353413662341315144446244651107372987230964843158101407551043895581999934185148651804328218999111794027882001444790486711597934667795556573662235257595429420515930063719967334642141304469997666887496455891476440369109727759512137253315746850994969479602775587400118723361512767818713065330346677321450953755017998340709921757306428555009399322364409942617682590921880911951815655067571248818362066501399680347415223139480417117107548150967419935398126099714732966655172717219250622685548752443335199997597800845184976029093610806356623005631624865154917518173640593391505080036334006842936469750406979245731718973235856133942925843848442278183689319259020665299096160771160563341558612733735345988088831302255881960054117971473569916785657685187238400078490464389108402508075420861137919753958368403789792073802959819512362654219496344855473578072706336437890766423099220293173365358702390423018369444883151054475114957926849585956536992668820859226901767347710589005295529240205316726912786086677862039015285012645444905648655555529964927990949550475596446118662870979243110773736865766165924775831455682543759636933163247306557391762368982290285216376230844595523000347583835194721095095880808121568291853069723265887100306235322959525267378307202431684200885202567266914275009860828326859313015654286378690948029350505609927983894486686959721692796986540824412714928923393805854943133804336287361884813291587838060875535331635725906421948648831327918443940519718356759933810311636788889792850368814199069081392385348674802799602767571130208298367417309284012037176023698755034667921252749850780622184034396628317187094396059006335322668220181034221347927784569787493323437342633298791386036140479957888626534196449897327013389872537050081358341137209835421024226666132140790629004773166325530730410215046834458262880603602699818690458456660087791143787487018722924676021549801942469713776390021404115732558257692408536296194276400615580368632330815135621049300261699720105860863129943684305344184865393285099617066109592077030291564587733343554432770672251238830676899022092561964493274505362663887737390499913118527421461564287091186575055997405885086081758853302185494164740947267418748766638250161004635621921681562009920739197537670096503575751359329528345857663594083408329385352578304221675080094123194033980479928817906915041460638693345493864639426884007834394175479823681536328697774264238717440823882569849344199842548685724253521557741518055281484976777917300002913171458883855051136813837018607508257023882918158293402116491929306211240995147764525169723799078622986180272331043065990824138678149194733348120027946140825660382056580114809129966663158774072806357401011174797461500506513920245783396686466990546125559807730475261636499668091655821978784222774092750635382412518735212508713202089906091790708536517464746914118724621699742898258594261892349755123492784372056216362844731610448786667036147382754178062541539603202139233056615299162685592621836619287297116545965897777883868673039687358642836104968185422739465182189707912828928359980829082280016780852683844723707283787340728228129980250897246812296586611276356365317878419297266101928252472095876864373595214550493980319878661117132913847737169119975243453806597486257469371801378085020485832501875713002133410415808078795232792186869423513093109240017678967501963921716661236947425343612270089146308780143814611211839509877274708828377699931074340496782166382551498658141945633822667871437930792052868656124018225528106192845888625423618807163433752614446022966761048046355854976248187049728725713856645974742831082989644503857948519742279556580632909548351928256868427063777020321436339494415012209686871592124087171975258761183043870918748517186558148888576046555865791331273882349714919975231822234669966234914467595782094274881045028749725234429256731855759286116306000701518730214886361371081772277411005673790171002410816864522582897565264540820149027361927228729932384549869645818326490811151329859414740080631163792199640566538040374066690725140774743057321636350819742930271925189169432647515152849440002891473692768077299064885906093535413778194032390291601354797548963416567361966813051115047204229459655846252609365858213388742408151071581115436758953435144637764127764961858390571631854536633813378870740726424897416439307134421502578247270577612256908091538681283228944150077641137298916475174782187420594368083392340705235262514851921892444399896180088531264704933988679236997323025176580591025243993440064594249173565849191210385540987071178509677390096058275141561996270432962874507830964972119232395700137518383731206495842239913527158974970682097981207537895532166224099544980730840581535739825561080191790050050172016770312611936656379268363447565977879202856126122661568521642923348773289599842670315425771405278550977498596233879257607132474689301667851233287184745760328193338693162772260439210825696964499535057772701309393956373145203882441879895803698754282551872677440980437836415100128190656983383010092725183122112494325191277988305293745786528119911936226133438203431110144985749332301887931449115921524809335594202628744852891693341893951982768161538405919711004683426491375193030455967052868838790135065939973538673915475943724520804323204293942517049886934948314003788082554545121751064826750335908845413235488137032084883228136412106847229175221546637063728364552855086301688821816897313351138596640072717044959702749599121600481749283401130238332721510850536759554422548219247969157390234243913268979748222558528399147574761479035315345658191354197752919266458098255594413393651655842389958307838532872206321211465875512302538221444935261235693884429888805792390437823982528746267090867901609203813143644664873379602342847013784826299198385002356608044225246201749372688312018579907395001515057669740604758523341945139360980489384646681559903684753883334265299723222416347083953718486321230901886772579170725684516722503626907390277530755201431489983573605585594299320543789626807989901134148460541290762011146788578256193553121801778518829642401507260346236665726124975011514465645199483975164578825546072184846219979120441016379594190335674668000778530982664426265676493711169592278352259980635343352014860656096900541157140696657010179408245916623104706121731319149880638893944641122607819820982840759519291951525407278043253112475373286459992795756596793621666004001402294486329476196511385724800467847609186922931243159578576939016227784873486726246815849833291055338360858330984810444403556996703422553906173728245075461558408686094510964684350435142296819171765418867263498224506963274905493822560884712375457009883432234213009507310173257306043602726944953487067248266038054747036835244055725093066589931693757755130425620058953735803206242431780434015261752738520627599292357912087910753074378360826107370788815168900218028749516887968070106173138612474463122316721893396927069620237737744042286106082676118125145726029112412599146865324569329185554347657265577015208787426014114501087581108621231593508538559418143961459837518621654839416302179261461823119199316381694476712403044258428889472027259635182401631177126761218525477772678446561858710705597600921770089242171221791021879117235108556113520879732827873098921116368646604189255052856564649705804771446202441814016619799987265166255910453326588924035960807614836598325827572761685615505381386576677349199087108065175632078670544081384708574775253150734176027043570618981641641004469472609226169566122733701350438537632564659599243117135026966121430807081367939270710450958936722942224361894841001625381819341251852533138571234172792929793046823920538680746189295914210933813867941599062042517799011057873531553325018617516321111709529044790364425005221714937891710218717050253247811882871741017649219316390412739210254950577121000251565467016089002638707127019400776825937936806268087038851246091378599069246287772260758588466148056948067295125729855195931879877402873174851359674506001566053611905566490486876470889929825286423868478271023386209592758593728922576982105343466096885142027190818833516193562735008728785753328190893494417555339804263552735392061046236933636638431568670535948910509386442165039531023840500026726141992249177872438510743105245173239917970997364733230409124983054357797760739816837864715540260902756754275583483655811905951085765136782423889070098728264577327409692863054501821364202503447496850073773154162265008307387050059262683826296743562982895727088918399872652723442527964804463377875846218753692853830490157929698891496278500584121718398150612288414121215021145773905387158062364474133843697328269442451948846686187654223116243353917396198031516015936276811025552545669444239670832543480647824664207061488541586396448219984777075153441588285127574407040622145298315668711963789307594500053481117282049618146870639301351729321417721461964443170455107636022907307686477249712101810597388704255122818141170074455428795574799821143682293680055578869128696306742211094160908705337674760830399961428314358240485783618281584634269209965626839761394845338179615999376918369575957530248379906552094015584473391434308863685283840378404706677225385564172068814239170926760412981861989494479978461991678548994390791904374739624747726106115089310021443527318045252755569494420473382941635733405567031042676782503394302395416849677158927299889753670223266538259003498488554909086656257215406195007917028156626318249339050023480563184814260307452310575487513308983806824349288714810678642654482044147126106217459905352156204008914866139745919623381630351774856906238895469972416004440654267639579489818524952120879410655638835839067352676631243345544146862141537211122550376241959385259298912716237370302088804680260677581388927178973529917912832069934337562551692847768562648825036877331425596864237224452271989883189489169778275006983378227992421223880677639400646831903744086153493067800247926526151980989048402073436678515867080474797233103189660553280499481125133688622078318806532501856895172016676352424234680644949762650262982203351599106983540486977337446951712035232229892426499578088146729414526766119864972378345640202975009250362294384606228618217543794552401341137939969521738378005490952685589414120037592692850548564385318752723969758517090126827792209293978191571680373138887286448567015476337139347228343924378245281217829838029576898121836769995246889909533997847357923895090659832878756109028886412269857208525974886917553600125738254019153130147093846795572924984111087185493150222227887441511704681275283068563979149038944240925553080582828676528205647717763830793276495373487507748790385730362958093380359406883489372835507138643294048271789492468098998976606647836684079962270178289925669768594276672966638077807501537197568540763509042068108605789810454163349599868807470446357362629624328236261235740957714132545520997571629306673124113956006058356034625119908609690220369972260812343345709688159867228157906174757545231953786944577960648247754782148799969474112398947743835767375000897828998204475663263989256109740651290661070896111083308521041944415650934841694469281339992638595080176160569150167353743946110625685004497432240350688946937575566451922624197276784728132351799157302411039773014353028473622180660872546406313437574501684116193217644602177804592702290229372535767719624487612988538896050181685320657446348580820996442439349067099692994567674840980472049815892293364372268973255503687123474755498798050358219900867069623973615900156486720406775996873422921766223379391900523931654146921511290146197899221058266838969543564259577990641097508983442785430734220354158427242912213447066683176846210964493172057479566239970055545334873861070397422744475227661185725897796775577141906406212648894743135127001103041268712518073083627600926361107606712685423980458052657360076306732425348579283567194859445084479384208746770344347263786826076896045357175020649534128629926751430550264892556122212052558724066027267684175478855843286453432104501976042221408540819715359405797077656955117670246988422851590042271915612105671608197520653607786783472935592507592578771256198722092138738617687602709733993387601586230430762632825682553504477084155264368359177450114244494275670010029691247009410193020173397336973549078933575634826710150332156815018438943174472668424668074296277198741260165788166156988634461482190509454650478537293645512906269550514696205680271159334244398548657956580735540717968167384498467097795030606753255865920578351375535119681466995420393931154242497729676205379820171808542875467045284535437813079796862150379252365889958504909818929637904757282845732775045284940093148787702418518949971667639558176930680790861833119155570107621463947958712105633036372891636319213624217603248585063685552185449004058197415895838605074957309279557954389773272737803305939076687703479453172000854275837754183559876880129918854671468582777456873375919530362683984542331548675583345978156024355039890346537428003503983065875811789665374843104376972517952233595458881379598626252869770769729900407162212970321710711770032443663001771158521944856707687456520212628031090381825758779989690901386693550933647896667204652988704928169748915556215581776217962175114587132428355354779132564352737868906656776952555859718661148344465188743393503956516810078743527252341581764938720753170216461561085100445834193273951272011193401910537340084044552199844189032733046722409436495571966428909833567064654951577404863889151029966503708750681422994786521505600053715614856768273278513498929608656164995596278103803652392334540267959606768898281023330921742736084288423735094540192468485543655155027857777508260068753077891303026412090840972428019261385700239045520727451223989474724562938244556188735397228413550742994763496812225676202008970683068360448687702409507235756569626466237957765085247619284938053502689851593361275583181216980761385670991402642749390451526441719008962701782078288341517029729884048836064383527426386720483706517941602562082016271463273858644896898337064026771580951678982611337858556931937652822893973386689085958002081087831942768192933527975548457459600734682820208331147616921547051178854937577414852527519126151174107859235978598589368350362655295016492767241381104094232408699953607482187830290192546851922731497461947426934572032917570198052943996136501565532112429814751505618081271372022046832246283994524809888059493739477221190319402952574058421294238867337729724900505316511012000778155047493605008444743731499034871024428868106911359802171033273765715405469311259152223693637098160506650937880633791731144367145290266409270172997484753725553281273781380916575708381668541266589107971707819919632398801506941998396918280089252900922740191528714187843471756248899019309211707029487563550173731713152103799821043203146588673162352669047362981693463230509881889039446798229438438436982584962060828255051633211071905235190836428556765849089152455722519584795673787599781606517240589439884198218443985818805168132094800300580618327937522560057911843543730344741971252996182980408817899739373617405013443315451580997273591693334552121221510726999475073938170387993003634031088904931411921731665378102603400969201316185023104494820787291144094718419730227284444645188406458812379093841468582700372990646774803006682918814476098509084060409318267030074810311037742806210118188081765058847395525451068062469945030029609373244737625555504716770065435618740296901675745695223800386731111301968796793243281698843705844419334829061581306748107156719614890773401522082622872206040446031547547640941533686046483447296966643680423246946618012078886490946520351462147510350319396371125183732640716910370249978979048443021201244688986685986127318433458971599102186385318831347898926841838819442976368493541936642751475883744296781557234752138283561185051691263122020155430363040970681875260189623510273098327731532437158356533948358858786283357797341264288556143294006942049763299350183334452274557937799064528403396664400104825928392508542937709655841108446265666532318617439775653223906370236602173344968528027015454745905706105669889465278778292663988767844210022086735269612525303549433815331625925240245707466550075996206173011738055411213010318585576818853139632987254945543457453447330547062855333333155266071248321757259858328125443774234981994046928665862470349463427080230923451105973206958846519932514907499317757874333721085214019097543227785843555383937429489197765193347826539767213465573596322726428680118213366219709058616885307046398005317706859714116043189991592967347163373786155104071697344343820534241091930134536127921520566402770226767677329424600111242483136681498834618134459205944703553046263962975353433676384545942572007514946242598171976993106406312975274831686518036930237674215841496983065205849988616550264251401067410506737952520438565300095298785120933335405165304644291518061930347037004599375936320518462344871409967711632832251266344556737318285094408284448048814658469796950873322542845068686336383899134625383040525297821955235283405365555990245825620408850196313656153089718686066140122659827919572668372301296443151363450781336482862927180100740205246570226016371617252616168326596912400199757976505733452693516920982991849816700340003477623316791013136014666093916638135361651045911985595504577679116547670244388173360145062407764564894455446358178089937545027359783179504475918747100326879265159569645117274347396295411417758075696126810360158666191676166243631279480441598338150020977975045906244788763992087956748978937226832799383813047439497377184634231487542520035691148160258051300660297242934522010412330872326653744691921392840941021864598665786127584465457297642694030004076741936978223828215610538969406424011232793887069255056374318996199587164972660679180253041856872272812553790066674593732319171948566867121138896975817241505923771586377562416029657271234551138847948963707413794302021612924210191793254803987280060308332429678396159310860130232082474231498633491571570797340648774275677244333495120439940187015175770824861496058444582711303649802571144678865145304517032395720687821840826184894721416909283714905865238884974642213179514382736318952105795768399685723017063626611940927608700049246586996741492192231172853042399891434065743423303207139632207245744976795378896526726644402491124588795936815404742755246725595105160760826944196213708454694989638956187926253897324271478214968896337177469108251256063976090877501352249344108825307588961699375572250256340190109288028746635494258186362881666317204241082693502924820538198155112634256213198859779181650982687946900798608380236856983232160944208426698050987468488163549512112967474563336113693653952298347725359569608548436334379415576691535063907642071179729296917236377646305955579149092760370148883550161682058359440488260793698069651996291917061454828424068305837118140344278326682872524201938417259095437617614190584639221111161633198502678320074745719321291210693146055264295304802393507060023704921943905066053363687129718195415700735291952449830117476089448147913768178094391979753616917459279843240944838240708566724223432834315151154722636323773114069405892593145428595161120716284113959625478045217966034260426979656980575677129982914203608181508432082034731357971659722567906814958592734177730315475635963324151996378458872217987641233142405128062871110160442069245351722902942272896811887331068241014669819638986543958816484401720783459124717425054095453620045263130985375284479072248198290807534737727556107228384366188769927026493279252102429404350433268874345966474812562777683095592032092620425335776401876720537028171563902622928072941034794195858177873192454391928228204210972448522920846685295178382763284854790663589205483970547635102709649729054085907044458209953044421867647926983957727173340082492089917208934576742971516277412718146470121392503366590885903105495501864677623674932726673601501490993884356751269774341204629479875251058282918692640784708951638003925109132120076614519003732453175371280817460130366149847031123022239935730117387707700657189585910007857212589614159607847693330178297547728809314095123026583685405822070949713639029297133786564759311857664729066301294432697246142262241101795289075640666029535146101782753188080485143821276048389419623197953712324117272464824713208878703153056779526836662947360398938887510815304997603966672189514918731940240387557863804561702748554706613955776284916862430965088598547775946400705602979162632377396330626412857323324606333747529479874479362870019699769416979563814358729847271822397444373628219560560129169303144596988082531839578594184139045998669019362597778011946137478982520125739226782660139709195706603820894358723115614915454487733606031384983340654676105737116427175335498284071997552974311193831773567135935495012719626003355542131248406513511443793396738748026803626935025439081336616214186910228324155549746128797398765433113509270005520707204078134859157429649755377892452666411128208899765013676723873662046245422425520175020943285353989646950148653366915436637218747742498481378271466401670121284130218539766784545577671703921041297908212255163499073763928969077733484183748012547226741225042679948796568079776613646265078865678182634867589780875338360667681662361457059758591566961990702736058945873736000862165919856502958437122685223083823290615275541211078008372922426759842563922949034850668873596067783276528424256925883989403116725371212558382479956219019389585012190845635315326475506272451344536255931483974080016170238745693937601589840164098753331369775449981565625819974286509317520197861805143203451209223404317870803994032439571266585222107260345928149698189755354442275336692061643318510320865466256541888257294934208815205704635393249618798632899746343830296930078141430601924769423858286841027441414835922328094178864862067007240400660222748030226427652357804434602013060427823838009715643820104329661739049212741146174116582983687208226213353332840346892779140283437721116897952273859322491066695241030613521640244158538257194734241988854291460618215560665146780973754951019103414511535689008013200710835601956156652909716553462206700678228240322147880671085595329423317647586642526321534133228467560185134935492735227518046325990648230639619345628548019302991911813158451194124449634256478888749061184870956942592620136188165755016758884043794909831991890376409978261395957561480860601195677422699460290009903343283124423781338031052270044694841747951452653294720923096800898649164071604266833244801372180300906382387003639489162935739752822159781991921553085883087630245819581339143479584964401144731597516386742101114537767900528691996969459325041894587060853001150861990159406339977745978911568829617480540065497933755754027056594536980344332145138136190328876306593987467435441777446339612918145197770087300097414608583023537574285250565479862135681386756373789828224027458592656365799041064111346754087485112846531459543612168859936210616282119782018991477196454050841588550700426031892075588407349077093301843358987921663839211385703574012157437600934926426818320397245179253900065897167018515693293034459287388567325786542642138830243228061403813278459193404979726967181849112946199221934238751074305505241619551629334219816341719215500968537897611461286483726951865857104854885768733691220915246923127217029143768169587219873751657045792595508031815790741400836825270361316354405513914006322410537842438265689974645169129600184934835939639617736763637619695989598285705339999285568210238588940591241903971745045233404390031046377841620792502707217001043673402136832274847240750987485152813508653219355377102539042497929553957041498942555290095134326959668952904183236514074504352841012873076820782098267785496967370920503808994763070548266997845324934226758548441648457739666766168031055192933385217148111919284205576327109580523657328584844361405179036770454510018802250807886573242546961682951768293474876755909408796095410038497466944556717153764716160161043358667893968765103230676413397998928565837115570368180290783164516808391650298480711163725848403105926572617280052276973564925185019360114249254875354641189459906638212885144260559604516478009542382398987746452009719616441047514172596678630553941546082957714345397946914795251068273402651076788528850274493561580970589942739095615356281366005898933720677492612454348878247914660126051274913422978253496213701589905300514534015318845798515532694857640532942138736019229392570818296953895796036619179864501039366048979493015071989034332499828760629398550986514134176406571303380232158043396868579447434054428662633596267098349154032046152754388753235982835560563317946000257446997598849611571248496104313868416214070855010325609378256248879876720563953418523060548352568348973968663389949467313961300850482585935905303623064691298978378140916800454542372067276222476424909955215187264161283554046657742896277299640891813798033555197540467762236176488184745273453468201136529757464297887541787124911344407869598501400507508793494855305634093069477857084900728134602090729822006839225333767954110326992469654889481996718835633913704337281715210496299181347037240687463524357166135640180504083161944615773429133131121939759702651627776490086384147922611575844469503834651759893553326301318977504863400751328864733803438850268541405953768740731268915889780272133066287157354352139391017567667923197928058667131424108476357617883441249286704241200331958934924625308163376082282234731723070863034406897277454144538072179537360315581031925206630116456758251700731628834946419619411052798565379579528757152536475761353643523841954388494260540532843796043511103527201417928561974383228608042412438229872244734536257405611566360746838980991210476438263956125623299900540520207403510338055311668125966826620361378751429399012571318932706343683373217986553487567829629523864369932770605138226620553256048331037806107290431873174345936694533252294067342002658540934615075395713675146407764746963834172462412180985578423102884908885485132023877228641477113092154169488463318761456152360043112430900566065529274121266954525757651232501433737803355586680781136834970248085041118216118742442861084035228381178901429337635645433650718122122898409913097591259064458453776312875122584031752913932317790144362668078548842348647068868655603090310466473724252686804512650136226429880624850139318232492881593472572071368621423937908692603085368089521724567949651524121567989183447894630913824085658523248970015674246464682844608102894541294675821335120112086857181645756188763960785196266200917367217922013069088079055191170207596268407062268604243107116705838824740360348098527662118703793556422905174094194417557155250335012118147062690677394296604524054749249851439270730564438517369794237048136413718358706507004700232929111403333056769898613284302667789993370055288035133067547514900527590583682369796641757863146800459203974474511911091932487578717811686972379747995055706651076395415572050045348637329226791405461516466024182046468583724743417900655899572175869607985793724674709517835023832637441186201601837053683887200151988903495631810952945573444487899206485615512196069669173522765489498055854592738231939978459426069266990118765711899314355517149544966468817491975223295235303150083601666797707410812584542874346771334984750387003294013946820022279698463052984446559985945257914192781031362385077050914139411062301663098452863181058037509086861727910203031580996717232838745825903471979939155147888301875193996227601555033873269626146228114552377227923115416863976113024499291032630569879831906157905779848856423392939519753538493841156204237152354471156285878888718135430816973679899346769253396947945320458070161257591039406856241787914059675519248083781987148693791913523346226749136992326230671756642681735009974465389303190753836392727500766709644428604825345343884456197354094921365224967452111088656026557548334985051462019890652720026002976082367314049574184613787981008751206989285309122693101636591553851102129961537806494830807256987118989627571026551410087843631366504087069947422318095646282089740538966890361753318511818045029475449386512913373371978523536130051267804734880948089428576243146832563667847828621267930994828129956747014883475864500780541563043872159626984503913212958990898574906091420443908516072145056434373166685145220935709223674786763895116022176569210401367369029927033871504586915843978247348448784388667354734023438393730085356092758149701209568307004613679101069628361431397500560422451426770989664185344188430506509031733375510648388559091950041670568073009726618536672361240646065100645099465776272283512879076241707133911784838224440163946324739057917616325999516954610535757825799805908732858239291951137559127066709347532092904716611248559424969573851815159833511693597921023280644097448311500042625720251509416208642952136647964617481651367954405354573665995627060909168936668669269689518595406443076152169996304373230882730662771490377627156997531152941613246961706358790016454930394972161657289627196258429241831711338050153702272403543417454925311255399339418302594297430677512353297299085632562019174791415088162728671720499613928344348317276127323440666520061299704429842425697627137728617164528697039784765932748071697858478395757511523325499777805107464996086514692741117696450656731141886497017824778846289681079211949757548154230562757803985190577807650674810493933828520791701423070421095470585496590183605339241949355936090194924058775098013162890172173813367421663101375746713154655739818270863325430381724099240003918345600691034730936222574012337008796691173562236606908414964709428557231026979988463173546355074709494259652589765562337795412224630356879975784286994000033322873001462252036123663213172133260615094833614425946776883593372030123066479565104792816011874267273802882599560945311214927652313242317501093339486053078297757074724304944778907018786945011096795077009087650625559002179714539443072820292493596022136084283599072616275855957079298817594193150740339346613238616065588620603280811859741376398411517513296214577416455764999295683685669101579792690373582420079745263956519614178449274559151194929766147297876828978527562755855858243375786739725012409224708736338588466038606438593735003963704213994471383365308996302291838599271684607777627301356531746442536436027967569478317595479004181921757810451621985455964053187676770847591277471841979046578528556557047723283858952924268390150665405350300179805840644470206284489308973768762110637985105700157653818742193439245319449016469983898097860891563238313653950710265531388854770581195023858605253265443970331873787389537899199450347518605758437867063729471975868958619877738425596431876952451011152698851552918812131388361356859057115728869858732631983764791129726796237110149409084999777993606644407929222917537152967248251408144858864320111813085373882717138084499524495516915831385112016306952704444637437139384518100122635656225216406841866957699364317826441905433302673345725804198621913590217981363463356160408635239270260308222101374130567977397316246342519668946478255298576596245881618295262122771880834297575810789187984816467266221572490846201773637367086184486587897075936611706709585671779522785337152713011005711306272020550997890490255252903331294924749261412010868580916587262408000030870223580645275308497356219801286332789306909550666321956994733973309733229743227501564286328541909775418276853543028767998543705332517204496247563895351752378159876094909691349399885661275019424428231961703692012914669445330809473017261832732961396815436161596514024146375337545830370817716838773174579599156793606078775494576076013596315566819964492146758936694814671614190868487212903908998938255831569647413773003001752826899932901185227539220325687910467897916012381768232628540486994878636618448408845964382598932722299237881904303026010695405408888643991673916526899646866422640114762896823389929777643462306872488502157932275790087436591223922702842870032907053322868520343311342753284732851665519743998162465266816084301102770429391550561271961188787923294971749656332898142026443896293649323124673321548890158019086918009578102713963301887501637746462771504309109413373724424634138887565559854441966437013764911464362371806485599595661239210462706586839770677446519709190708292551876566441457421308655800592396119338010713455810397353847688134043438831142648032878373779531053364597619233271910447810683209247788116740515536197280569972283001086746601360161532556032256094828733427226117383168258261412289310614000555380726133357476452704218456370876255677955897877621058977336024307715338713734377840456933424853384527785718493491403996295342705642688168837061344275775378244444538984865907223835300176244549935559567448484165321940209555165946858720490284348050744275999576092738172105586724717039601296512383513441540314300658613926470563873492442293206560773358153015851114727608297082119112093628317928915898309683828977878745334194054923317726029533561304780345785189570014771440940372426452850514302121806075813520956946465702219174521204331509118263129756579362086920967468499741868014560015560152264903359497043102790707006036339082027627663421794399040394734416011150692593186116470176328843883970745327745737344325061227148330823848792493016830036259775525845117371433399688760809921145490894622723855201597144527868814473062324533746000359013485421726458699098060195053846344158493583722709694343778315830188059758050792833583447545334073862337301721972917772290950088405614200289390908315143998653719443750003866565454789917480463987313935595045964695690297442483483758578339163329359990839327383350626942512106089900748535040808566790930300172085360408073433871348306140908505841959464715615185794833829837246049818304943288105877473401737496753696464991470766497707619246813632120237637013888395463077300605151374799297177327738254401884164137110934018949032375729001392115047447270210875488235684427519472784030334751171480250230594881913033122076559753899704965765998229612805552005114707049050288746246917473287854031125710385943226615470067441739778344958018185623253936986097349191984848591719935609627281632588698882464387468949029127784746432763207368640358730232701333407576452931983880732266454694093536474089500795950121964844053686278538804888188703558517634957107885175823460210736481973513851467042019150411544498800970277723727360798531720401506810767782235194823157033664931691010797384030870455332135409913424669576174836534247350206606820332923823313983292619648727375572355553642143292397490011946341363738138747924637152672702342775544192958905585741363346421607977476440135111088107520607956060847705214242726694404394409409145519572013170864955789126945756586334859398623041823740676030688185620451585317700835273386506082258912565739542970272557442684346241565349783313543948693359864003636243752977956178263550997004221824660206416863616413390079365827729911759004936373573164910233124527536957324580662296289656583530088742199680692376140857081061242639777326933777372404685561900696235671674669188029662391251961001371476890277217977820604486874286971778712527719919467012729551538963425892181329487900045535752559121907720116186806606804009917384723145387378949828403609320977052966700512414139272027227497761016803499292042547456614838446907586917701765599457671153696442104019198105650685344885158893960135653115377851904820906807632853674855371081749130200885515163561066954524502307991268245650392361789341396501497554180236745364570557213518138696517574244524978578330678934358697425251640313611796815298558761635655421246674624023467677847205516953317897412853738784241292029658578967411989276771842480392083324954897966671253960099308370733179787387718876903137829412528109084204523069298052380106381607031388261588973293601317484012443437831635076989160930364424213406384962344767858455916594811837632786563680286362079630898208185445224179839478016348167344580898466948486832196409213637639532087147108439921984833822183971359636680125709014487249263608278925906693879043655011032554850996614589793514896961878910844670070605617153418513556319197697506538364679897979488934010714221546283401619386206893789611386910377672618322136520955914301115648590572109802014412057439987811327452865806218817077319472090148861758017310235245770494215634434060260067079170214684788245187794563514254013207925429995015662033944240806953227773334060159094372491366736026541114331424658629229869204292307359971860821641374821357169505870990224111247108641155450334694081236839382318237483891820964475161723033639594404574587058812775903113765156311900376828957567577651177652357462347062273714937585227347192738249702916063197654460428232905232939052409485833469877199435972487598247670858039970797357727148711826489147669066234071110772431532281301832291335345062864104709387993564307588789708363464718259940907893627506359486974584838933207692240484775415517331246000517577038097355138905338850136690068860914266783627666423355655097416768422011171484731975384516796932929212651584136003841874306269782822660928531551647820281148490598939047443348027192694196595693307446999465314142423987230990939777365226440239671040808311611832944332925001662932434625904430119949510035051704784113503366084724665049094561737625564551189449977627827932165419874863951921238721092315207735809296573914851013934017532291513374139836639871259294271680861573073707938162900390224558336242546875697657497652312040543352319731250352897476260894829241277442845299203482241863051466736917074124102808995137275054253120703083209193143669796787780816763128617958152513929874763530573825334921446950403539182383305191432176987540009050335089464042886900825656163618851812642252246473966364407701006571570217354305479681945210793332496268574721280125710733465460717482873650691395852226431094284837147018177452875480638784341120252277771028370665863128039638531941229351553564918763085696738686016149541248795123960953508065177547846451263700201554871319764977392469388054907958561736474545264438479404198351181582723199262960762144339492396251245738659891786693080310194661074329683270469653715343687306020615049138716602017136337841748835342358414489126011726240286087288552161352517246556294169660817109901156550590943196783001717498059251932536040383725743934713211538065189697002155077194512426063438478872406819105200760214846183992799030677025650808800311219823940630236464506076048574546315725919607490048368968188487729573976423479396312633531735757286521959026290151852068729148528326491973794381656255484684704235711756560106812348714895011250585192393952434328219314172127093563826844194139030619222813024877310717988302544938016483390490892514048485602261271651829164497617409019880250400604956650022407807257154710732267836794747914248592485355492663760452327075790004984960092956618537345598868803622151944793960509770715632928038924352940965933978195588962291002869192079547544083514254534032536236147207334851835889517568657183364187480863356418106686767342074711244054130547779762879533318010585370792063690301351885831471961537897708587330083577426345402908540705059111270920825162126591421377501450217803442315015255088243604808084501069375512591221660301790658001523107225785995300968393040410346563674719464815724658437102792904723082853451413505593579423081683476599139501485961416144300110490304692555774301150800437585070387674634871280936010731600779651178977979025558695872989940351577751545595804591307799679323279044534720224959325658028746840654373208880169837377574495684494977651574242423952383053997231510159027266777956494825825079424863413774578037850645241004905318770707622765868583155031470488849542665688162285459252247853375150555764978161182080406243998743180852240026197063818215444401624254744045951316599198709984632262572449678699733089761095307794956664198904941869612873331119759856909725514838280277600472233699011479545130915666876552966035510176982299900995774897134302330664825759575936860915264581952076329003435491251559982815205033522420528572993154372797168437294852708784870243316730482499527878548370367259659480446800206202699181679797038577132872278666138066489275399425659160871973616725776091602971496495599621582154613302572159197702984459997759013713812450068373932085537088235792141879382307841043455464169874544969280118502663780885284135459757019542053561714882878551939577540106972649527366585384003389678763525508090208127269991011187242362905761119783769879750622760497641874535925863865170847173843643062389592342733533248358807978642796516339665211632009325917081385596474714540596838809821078618169008602276348739520217356721469158312016439050345230106760227388005265022326830831684345173924979774489229128348860294189705299772913079989281354452187574590825993456419416154396289076041134332829190747036677131011685192118659766120050595511281328555917594879287046432387216734789765121014621392974352568985737519330251516832845669303062696477355120999819087350097203330319576220421572279979196659834694733757837553949814925020896928594585054423282863764153977327937801921206973424911676856163039055890179729366361856178294391525271795467298325262548676181984502511656421788092942167114230296477745710607784822968924893280028842072423284773295971359737189686503218640508592693294888400795671008027369249772857938741445844415977782774717535485690520372904272132947625245460136738734931285583469884900419470361081721511865125261956333756944202962836980953151646441243237607671774847895492047263160482462636888186419423296315707711258039741870866059789844067124188886096767142661949050149716290268603625148392890097630540263370041196058379917834945370192181715988710136081370771508513563593115956217246001925661771335051496431150068076494273607344604261368969459474068869507252985515981298001556249223993341755603869332055362692817743430939066476131740314283519743636661538527308503235746724987699989304866085503884184842585103149565004193167907082868449015309805628366143837020942471056429864953681820342864939682887469565121054435300475373087397213336728858376382850325982398535562916997477340349795092549014067796150187273323723819178159454345506782191705373862393045318821739171244404354524090669107541810924910038428919756669710551900520214192027426005137120444792662300514718935614401854940369642698194907078015381850898800536549393468363571455560680757394756132014741819522163438047952974422464351898057681418171066913180917905099069599496372397276293057850374222074751011123911923340122695259018301459875858402270097931821149390218823030020646113992067980126680071828468094447923558430835391001964902030327466760143611180536612320505029583817448672095573258434113225004599869570677674860780725798907774168947367278647775841910734358360351872687349262620751270255661216857378339096106049028748750473196222639206302793259327213519956967488351746074365444360425963589850483869993773307941228866778021753129679561758934881852682433130743389576182353693074714425537263777320985142601209769891151506037406674715072858568183707005948402792732560407993524160072074311699475681841187987485658181909095336422280980296778343981876930167249509807747899058651469727522958684465973417213843264217153747422481706514209913827115302845721102395515498545573417220619747439521033987941279381054009301319582073233625707674566685775007918061558641967608444417186568799854148731168649089069515238917705537795289124475183923851631529560977028346481534760773002468037596426364506776029651858765538321277608649920494938840491515672799160161249866883628066612613466366896304549775188384759989566602201041522660949974514596411068621578299116623543286505480353792182369611316603692372079247366260015752046187900046169242755078641645493297474724817360793608742360567663570067385607907275974897491021410555936353779317699315435778838222322410548824498611259636151844399516935700720613856907402499702973671449911657887715559808073299153980817500532324588001972577643678144940273649525714695804183914895825023327349977239495453471291228859757038845502634793492317516466944141587268367826807609995936003731669468228138764947473245138091180158516156848960769871431287911341007872993701707426565950308045832882221531119338975451279278225972554769383222451252400497617551283552340683696074051002511715645588641350259940672553604894792218494062931387763530028929878900059108724790367846352819585690824876724856883810044535903357098058487067394289318040714197516560586862237779135741658216407087719659080225483069520431321778410033356011487638914864527061140504701527250784129876825097623249814184848295873254639492958687964879071104302495634361623405515346870222166158936111792609064570953038667549303968103517452018177546893022754321721301812654510417962317647246315241975933339763911104592340533175117534044285303648681716568889629551758944774336486271804110626855076249536646900958305689998443345635902078671319925785552994370730659636119491198493299416209365392600943785038515323817775256069569229761492588079430078760805487803581155413838506301646727818153701106737304695845124382110625680090052906358887758629007045360762569289259955429645993513049132508901350837959822058551982903083691899543526262642503392483594282641571244826213666602766342843586531365089630597075155442833547689829265715902347764287498220490299010695324709209134621162764754336567102898383454193390665235589060609359958466767686520219837287566697314792613458765608302753568172974989891584311195562895953147631239106934375777126695311184811092319313770234536540284488483105904607511800295825861102892079230126289002215139499921928146021023826086231808767825520066968340485319858848673553491247135806106370265738790561172929115617189995194307536449263955259331287017547544608393531725432221129657605061460213593802419000933230680297614799983072308679470226811441677235438260273671588509322316061343676688436776956594470260729037593206322941236377295536372292664359500134031045746782431819414675624225130848287501847855540451278727380012299705725107147669742032898034836630770563521550171120416917156587766245236922141769395577213937829215520514871038666306774872222257509958892363719124404155862682126585118921718030939370048379842526993657752018391939934569370913252024117796313602442505284993485896218798885848761741576995725442846865749930567341590306204297631085158907317017270416259577875419968383638752916235537319218380676339872894333021029240128187203832985629535496314364086510659378102862506926473203954583725291067339317625755206830542555113215610633953943352651607245262211134411509640928150327468030799748544175030274573883501140944274856628265031817988676930095037942778903829509370397294436329550543455793776379811964456802407089747010504431771869936052260719865764592319566253271929633396530807364007928270287840205566105906871325968981801306966966556618939072030723888373828525944402682608439123771985499843523270974210645106692233100330690466816976404130202347869729212854408257911790416708144467591669970335838250496603783690185996963527609176540025738579724380579285976644959748557104079616160886275354646520826288415285405186598347778041120664820665633536165782662632817530882292591688845983808850906745018392561092096336854554073068864441210402498305853042668585960829430300848441942778048738454687495525513564179869734993186208882582775978506221748037282507625281896127577314134388258410246112537170411030173754775331605794954898934829176168450243355636944748940665587563458664563416974710912338667821883769920874367986808324216553270485684321317652593321249943487931013779648271533949364346539840682694872484365877391329157159436208464575791756663172343930936957119289132409072469185117545663849191109499142843352182949693823278223121633513717165917919506547543764393461448067356110383335972709462493269657148969494560180025710422421988529031226193598499283995426982308901927098571948151917972230646857148032088009782367402764504464993660950484050382102979641981673988592441084418636903608860538186198867984598260418843899467621191677672418568975520627799250699316544690776173450698260029256612814491330229960910974138751281864784387623448390973225501843524065096663942322376246642569960714978794673588536756799296970277025260999681425211459530456676678331561447890729907175962181413486089598089272669595605284378936284393726564540590059209827446466830433927605237192766614744218970566956713296968236461521779084329569787851772590244804090047681713980187451162359011778776241954758491452613620088055453193293818326117549883969644127262959619311000063678585801001010706435509215146319506574998257094539855652171939414832724920287522099990926675349881739751373752046065391814357810355754733931295246568577145770846036739900885391587145238738410008011998056415122152851880384627302306909679250566633003695403115486084076553399562923446898760306008508184292294781368266964276458187639797810009765721110311980751624472836118673043238157403379224566381690986189330182887307118665666360796203685752909678905920813633714338934922855131663826857012899464423011059974872294350687894195998487468254078944927117850456229248899837165085294554410334593624902228135473932211807939610307611625922403554822254418954883496986644709804409688881074041860941897071965880247978719500909944689910921067754119786733432425106053772492756711050253757008439745035829315802534665475236424957703437213441484995917024838012120966685945190868167633568687898247538012212308617271790881991621694949168565025743754964649260240898200415471465116967563222951603802953156807289476575534054822168717814363847028555693074139962867909421496195578803297531407406484615157067695308741232820469933512695036194167361835783625901229543466575026790953755421462704220600838143097463717021769380960265270981784110530265059102399035601294458332810058440252792900345374068105434496583081767257560929363023399138777842105358185153457213447746858830071523874254631558286244918625916409556105516338346824732851128979138038693375750014051431214901863291384586386380225471186817583897489733933832420370428071824997631244387676558217241678046031476315836408771649753552171243968599619801888274667017063581341920532391595088051675165836265263230552438357038616327334778355342685718847027244338450926375969004023573536568693931565462407405995271529272659627416642931020471891924962307914010220142834923682957887108810717965007785767163235801256654999967200600608704196885073110751065927167817086275354597185282584078211320392404018718674082991753980838973545918545885893354907805199729832229351843671858072045748665294440458417839845708357240223562748795610283090329258281840252270196122669533915645240043061243352646381100589587927509634538956165869388640837634127240504055932126407455141080324587729975638920111495406673451008812104216106770005632046903220627384093140340158244589534401882004565262685868417876530016304460569662259815010116675922551080020902491943201723846802059655041663514304527456061003432595849835285472574458771116027682585891384056913441213768719018949243829073043849196709473271090842659004494117172675950948024662522776242477332310912230278018663910323330088353012200495248875469148511093861676893307530091580852125557397284506711727710859384132621988854187490186418287799685241352678581610958889384154587933321186289526497199768476014524032423078898584433705246919459902481935971019591553561847086157969047603784489055588504429019207804745643783451086939556962621991722163129956230564132385865325834496129087835811967384050000938638965356604417010904211235721366166844295274093096575696963074015968197238565524586722221648939431776098946180454499457232903831637168594981747492430603514488484368008388464855131084373709171079402031900901248011674261051113945783796599904274829786241114292450633705540737318806244739828019167735494398609337014744381738089343817230884829023970737864897433082877424068141762971238276694348407849063936041628581145389609828790202742715588940272209414154869287987463705171837081308794381053186475973593337622861772314031055438332123186988104136736851143287476207208808015660941159254055712736034455010113963888907879433260820764072861570434136610611393100518211646208079020887695605631426425828526416814289630926336520012144733584844892341048491891401319980755310495498520763301598270107669417922364291521414371027275411761045886448058984088850213876103127903456092461116062306674819316464175068656730197730578230165689451857876181176532228431518948398698113532438861489724817667935367984084205879898593872081890968362409200133648232006312920347937507239384888130450935644168692629307389313100633070796651759216259343575025811361623297307161253838444918598876995308358977875562732563725998302950715253475993083239331441223103341425677912880770627022296523119526057295374917228724420225907287879742516563420696115159480559425673035193424844446647121642515099832835527737229471530703988834313534565390579301496558521953424165324313484924325272419552310814008789064434447991269862405754807958345051874542352061453939626325835017068205103829221263911896709117755156332168316310813117584973155406639031839377012117338688342164169305604082142216989497783514970921822020676321767006974360767214679143811207474176862041485712447692003036765929868344145355979115018275444135343403253038701393472251226282929479443767485662853064232495032373839492532875008439127868592185112646624432693385888766362914213205558687564678625265081308840886950484483823346724472315175981786170621867187462270544648498181352412217192115640917655155517431908931010553292184320651989298801986208433708146268754395938845570954431659453178407586343443665879335329288859650575680047489900602902077159421761368266309965264601059459707589489626195531801815125381103834266270782786438548034823400825728067010343425810387667850221469351501903129472686492774724190686320548676983131934711746563859593526936402086119388157346269843613351561736148775882417110048710939804957628826359758723579978538049608647304322789583279020258555206197902687343972428016429030289679793075284402933169594439783333690464938461586763263673524178180465243960289502948481343337055585129177783701908796027881043967521641537283352853199260387910778786748357093764477264701193750825816514099035644088567312976791038388923832610514301693045700251084630126389719127890097794139087570728689665729920308230556157114518798097516521121346860163720115922192342982592521657138718448036968532424329112457702986757086647545481778776908523910991435510510091983631089678591303696451225532509014979379242778263765374193719346149933964721830885579504165803246821991037213494913989062310548726541111008583903481781060404907151764124197787709651915500862749595171023099656832622391259925090745114725443418126922865930499869979246892523552589367103114761252582459639734472300134229658356716971691586006767411078294502304669787137776950883924049119997660415363532982263367542925829131290666402797430029228650322910927476080200888704809923959571973091153838279008905271768941263758064955723566729689727060352488050726200106533581904196777133331093117441889277832125087765059532534273009936617601522256701012224008413124359380420968155242811271215026639455022882450766940675844428884286712123795786126994310206626674256458422356410446504914429976336506766862090956610443323934944968889431315784229912482292942335740674025392827303635356984355325248841073837473156517779033478422718242086211812484426370467232692512631026494699795928942977723980562340891983243079379976533064995647884851070192109130551412658030859538284399309574881417830654720290810189670553873658354273952373249954160183835164818974887064064795626099100295166448050122009071798837497873091789832593599654618238241504823932919132725458810387708791682737311246207647192607159222470579650087591032447173500865577992891760337484864793013009739667865364505407366247281169575112244747483212367417415181955903689714578065598231702263203254810589920815753404932864926747641054433776524747779233628450720577376375841864365177378753052245728343143121938172582998037437171062723826426766772745705656659146875178279272431694024410063286049033714762688878739432548532421558784892856593591869535110616495014480115756463546562722384778277889749875151884706084567972370690245927583007123665851888139555924898138792180416394356223297115314667737485635154012859351670046388230043637665429297226183934202478500031735575550500427553593192143930459704106384359482772929160724051880260175839592531133809946777034553776529959816398278432151397690273841313429221533708344459880456379422928946616826499468106967516242520931863728493190187437233957955382903828068024449266534794864473814783340605760128223731502678508837416957736282398323766831520068622777296920210474248260564810780484986800099272875943550603498034965498507429961844168615095016580631913149695533540471396447487467555401559004121482234783538043626477765849089733571409876189307822247879023846447515549123113358062792099978598381073739679756193451118071282443860733798420379540254034048189927872212616182388985015853288895809632463595932328936917095004076126383607507083893755749937585844977707451078310549142599859959327665005940588492001561776564348064479303199078258720678882360600282799461063377552780503296811566315895008692061389207161184390175153550508286788994084510479003939735138762576632285014036972265261350100918037207165549021960552001314953019061065554403086671677835233963803499805350863298972774318326413014175091856768756055761984507267080711295047747901176614968352245657362508101809622161796668004578920660126268013881211121652790885611871137207252823058913330410759731012641964485143762749701417748240890909348241416161898567611019642388093766733290772826291006478904876660852406814789997982066858014603716153561136817057086250199871340585861748920326100413643903323729845745762326875140619904914859428705965976084382899891814097918187953621471177165633702833001176572131561492295548104631445159171539389561671054022969404350851447908855005014853304030226589072058742170073507316715509350357917380392811821643213273633079528957883770534457061422029348643851430138238844558238152797533014414718864593646653787989969222671129210386463992678922424720451784971445167209279664161698225506177787396208229549348845307299198902706511339978490375578671969691700641933355706755792859759793297174237041150893128971272042835921281982966129246802582117088738883897484398192814006564449975560252459777142006802264916652629105219940599135797726446878785257302530154444927826583420967910688909202397943983547768033812024614566602443055110051203716272358916272597245909159386211328115104621454231241173140108984197255280046868793664807325460231534557318267518789368774023845384400451939742444018297639742273719388344760414489920287840958121453394984007821684465023855294937354242492392719955536157934185684432347781145240244209871836326615837185146675987848701906850112483805468711102123459698266249400389353117085989355968296802927441929133737629029270168870208657757014565988825924225064530567681786457448435714678138822328988798155664873969743659499906462640363682884189894602821908005928953299883917042765112600187679094231025978087646593095081543397754105112632487370812047448522602522260019076080781814288063140884233073144125114929947189944176460347801467106240496090126036536608027123950188463782456239571971877165523632037508614624433085712824723396618379067393525427706768725033572526272016998228072066174378941132649366275868517563370550548126449882521643202574979639525917518685319604568687418641042914600768074230093590508588526506295947688434494935215185912209808785778881937104081672645812586529315020698437975316453604938920975246280962844082818067464531140933466521789589930733744634711128058719602941793284839190074142786325062164823067420706909150957219423892045044928174993575750409738554468044710207171237928918090647850110951959319217432946049219747909708773283957944694079169727722727513913617835907432278583832129768332456340135236566560255042502144746512730986599588412464456824976351297043416786994520643656708885316878599525150707796064870126650732607286228660386498178955873395389204643064014224698466840475159052139749936097085841801419344860875097747589807983145470211797720738222801225285387458384178229934984307553649024861178837467955137206514034134196529030248106381282750110936973904013023281854430578548130202251551656488865812776871024588768060459543651527479100899369466034297409262606815486996715308829771429005952166924006880570678246917359475700396331202439189764843417965854281107533603328626029752949161334611344272816563290880774320825888120743875743403544255870242903011074584145760836131487772586014903813295161108461178267639858837802733066137565633748277901635546500387078918443712735706269037304289535088268118954433522011637764593156806616680878965485868050496982163429048801967283421802598255181848114354587150078953230855360240038681708360419157672326993227546866757549553676008979230049526506203994978743990343164571224897526256894043293569160546162600255091887972853646052852352896251851952977527478839571081820009426935127217279703569951605823045900875379274551924806687669217982308639824402283416633376312341233009757127464490841304334227824436285001062537928786669134110326530134592905156603310599690030707017601406827042471768986427042989249040862478429040888375578644911957562340049536151422363636071510720815465783495387473311248254622709519044009195839053229211422254335535061590108290005951396359249678346292751175787469994956985001527121618406186785047265147822928562749174540479230475301610613478270021845063508684354453095324825169310380928518786705405839297675157315719992875448840544996608299106481501028597606147337104790144500557370194686163630962418847656453664632437934812809928118236650022601383825630058902478899529412183001256974366231352192619906664596246641022071053658075569162456156300801830173956161665798639216770285580667814018753260173575433134102448211699053026984571692466192259843804172247351109495470686980178593050398163849432762580983832164274918256218437528135684238019308232727805589361912069998215884917669277447264883701471891032528061487784861095982109940640968622320897202410196299122136302488805807242283298745389223996136943873659001550294133639198298699044993884808033035508625858365813144856941874605081842164858843300233591366705738340524074970981159653032665949829045732587910924877530093187062790730786104585613335818104763562771839706930394762858412571431619547992228898337203857162960763631406586799218858048078546171638452690995511060137524929087547453696732881433517615897564240491233626796690221778884042074368446159786496567217644757892845505685128095903319301618635279303050587097500343198658638284696858886353953637467402166390283778144825741530640008444244647977950389643861758660279874622435024706878822829535047416743774698489660867135867961318650108586730454114698764505800831896022847354360236116717011399508476714084327626234137170682040431632838910541107707504794162223173496644723247458125209183998628855404878122511144992456262577692124784231355177315091548505597057521884285090199531057421551556788124709638851520098569746888617428053394934959622335387278222249290397478256334425046001407040176437038855139809349737868928192181777093976366754083625975512052481149033271631033514703046617412706125190869284266647537947343264841907178567712798853071338056365598534843496152545056572028551564784595694882414307410217639691291163692435077729539983813364893126759618752941761520204768605532591399127907411108875884748942440066082085460794377202535785959869796151596053441221528758508291210324464809788489887453772127889971222585991207890223308213893208625330673082823875841911443422383916770315722542794477808184071427009245853830656184725475930837268834543371431538018103008537595719519085238949321401109347531891869836163860647853213765137704575941932243412018306967273291195237894131270989314132304868904227964620309706835132511373162037948575662115091086939450555505431990113835495123482439943695286436644658948506063547676203031374484261957007675100392449541153975479302942245808180485477102390409294936592667527512925700067229079195971164835572989571774790945443094447927461769446003161792360692019567191614946876021391059838906764724650178483327735274453162234854279327981948864644770856410139845206676089509734640064421192835601296268671205220215364855513157832506315164836523789009091514052987484522387667480131113714461547816731904622913080243066312799925444853075940867286992795813061921060781749314853649147716587924051212362360866263606929798372205317590981807775796579204012017513210074505545419193562396858294060126926951268840602857137798193567267515446860601801941605506399091309184845183348234124009479814272416815232074677259955190722397645979742799632080203541101148611689268220349891807901410356656908541746797648826182561302600087133456727817215149814999611214035291236538344070543460321026755517567547726330314604858476338482117120250432288092004389998232965549426226454315248718167679703031346205888180213740042070029258554565191177735354144505343958753258201715411076203266089507035570096489799936530251436854036802742424188928833874254157514281203229605716311151273196826371804332320176617118065473909690411109745427060746476197393905190598907112235172972902360607573929195416701181817917676124662309893925530328400423029625069472071802185783578927959694055097945467793079906576148213986867499882660351786833182628064267095377047842176039425771575981912944246245314230571709097424417299301528077682126127193141483246876397163140749325343837893504485412872798627635782485609549769956841013239016979223195275849559036095732523370230230698132960286040738400817274569872514880166061315709835022720419346430080122938023187541601391478680453031733239488959647941559845491217356515960775386740327734552749661629909134616366888256055322653098105941020716882552744599026093771618611189836712285715709502781497473694556463473125742774337052315408506861293894441592234413461702221770670192139985813497373945009060712033433263696846116709609498880448664128151296568769417525620144108209723837698305188330782511008267617730542594247052627277259181706373286789204551562012034798283543700818203383225318058948638271805336161628901703412358089103986568266313305038203621835832675166257967991237608445047906133798447270832399533224537224388370136252485262941703968563672949416373705078088793357137899865323026591871453950282205586635651807214133375587300102398529133614594477548855192106396474348269978773250349522363514949773181906752910876558520818622106223279047201958028100777798251616598843373698950185977757133189270860096156414845757218395845307313477486409416995350120596843248425474626318531878437176318193999248659879066631694857718902959190981482090675636933331927607908228498736125261950209485426201414320731596530436081059791453725684479975381106062181545463937476537108619780519393479466622707181973188997805607237436501604722234289025605790169834366261310378062627438127248386223555106397615265868009465281754280049656597318695972936259753998417964624249756595309411617422767541868491605666330382633693094624895929108473489985364570963379377315042642467555055719388399499566551824110064528025795106012698383897886418296904610400798912264022833537859451633347414931602247795911561451225394839710239996406550992435793007024073047706601963631620119338549388963752240366342238090246195595289136248937045788311669029220657842101680628559336201503769561897907280952216810976814244605039043094941759023312119335282664806598175220299053506386894717650057881430157243501080166688635436681857769509878706915286134521326604136445814205994118450434060156716457531744442055028104224460790943316695798231858423386509923052724007873756703892176436806058546674224940422332090480465489919412968178727006423542273804132507437428491491890971210950872219923520625675949864945891483307397466114540075668078338726926745687031850709802484275390248939095147333119959506312360789026897561331697285190444134064656196805572455661086615542967234334277546929903468970957655864929439168705696836465596208222498256862594122571824167143701557727999022363034476081118857112555209248454368110616727240799601255024419560214475466547513703429751391327087953197465914755130117602106263910394479752721383823805406008232163035797435780996949782212281903818559999855341311296792208454316792441242285181565910718371510849613711380094336641503216212862096080349729740991206646045806361214878144683200436532253033831371772763112079040150996630801418246060708072582594969944265207822180081105732622802378821732577703806778586069004279073931795918857458591279698255197239831881540740867877895726949552743322729259142471520055697642522897899750588650296103755038616079991744428109091238042567151348734731603776762250222182493883505809698421938483140278553421094865230679468286037538850104890273873111312642825595595100185714284489462257332894323213667805653639660780682542774031273931972272429099423852646892177848779517401724859640656495107286023640663098092468728011741394889983873275402335544588852385945899172278141383522180131986750584466759662626695366474763264181244126460165094088015575558172601236041114908121299251945366066455753477889809309515088475812318680552483052233704652222027958093074290162554307949456444703869446169620683249353670077453299172955752199261317082859595327021261427131725438092735838041997525685556687220072722749199537821666512341978547086041136594593186635018036477137278681050698724157978664134808173711566465522303751396234351469505711543824040910693621697111881849407327699617029769887208086590423764543139009876443510164022386264776111773982853591988650702453983352237856935505684814499444858796452795954556970803413492035412462119520740529378774930694435452614450425018426605022602860016094377774624188640595223989381060830259009435977530149017359502320151932477514837911008581313847567988084982952104433541523046263255507422676294923277586064388764709343095881832357273955887842404352816777534543383359735651656145023013405655322351869971147633810882295362988256583918132763235550046149111183512137001662386226855026135714272756100648614117412282397926162444292722470172520261512270221087049720979795746756218609425723092212397627708554024251765294914030005302805675032597211971269696597163940090539316764236380497059678328026655584384617157221080722636883915479287385776598555008391223884192250272665205050487170985017202109632366101121247803346305186964066762194838420918332792356646423569732649167898843076248953359562271463500628964084666056948742703303860973689532809937966108434857783426389931579318992430345088600370076709690037331134434371906641769564564123847556364482861419086317893130137453873789474450861446855730287115219723746535609189266928250286493088782923279322988276539895322724969107409211826551372824945442582191541742179277162480888558389493600858860819504761959896892621907200107613068834040494110467849473572329864799143113883182169006163254070793077056247738122140663138813823147654923633158535466386544023364466997822112257736458144706871440003196482517640670817776915728137297639322508252828892746506020784637243757164803136189065961654992433716538915016637189180968787929173490808748479287634564094533453644235570812530694871836736401625453324169144552297897907693459074585277685862156439950509624360449006183356218201551688789395656503299081084763159223086600269258619665410131972085542280703160883167812011594931451488449546436861506331040075204880299413389769908040327241955846113253790914421361359207158383948500041999720288544743165763241481630167203293015135223696104478403039155019988948183454006970629161144168316619003280307364163958359551048400389702727626334025136231326881764852907662097847246414236476455347544197100153632173651921522744487877188232329584585713416077372536288766364144867451221122425644676173799430090948824492417955351046629140615721550510103819930287546388053696259973362966119592286483711574414212109783962735334397327243156384253802151209386118612753878112504074819984624813536261443755748396710193106475311390096013069009051261078880654004960175210092589952460073013994512045410966434645333785028056403112280739442022353387572683254307990993884175846365487801357128674679562631080286545472900673727599741934525524417838503131536459444775353761200490869445880436151384822793668514872156749756413584100609374560765529716072703789372941514764147383738897728536500764343789178989427875439970508184355731165800722577367202101076816038216333661740521584740563960319609959454401612180910973940810712897894002763958788403830852384813009451958586464280689171055323971812421103548191129978466949395389078270819333487772165702380980601042083019086167253075631174727101627993782737818946965970804276370433258103447746203795360196477279256171575528761962050263907692101205922979656571325207743786985300748003487496870081092430438597785707259223019787934181368282476085476817996704601710846778383111378053206954998115992800344886335297732004240375035870349828479456657103672728763753008258042747563207997133507752118048125254445335920075597193686622281259045821886565376165094451668192257917882719198708024291877749426155045347796034088498534502705840506084299521195531796177273176387212937846528955379574412602630286603573678628740919272755346600506130893995366486856273862007489514971614612094206193742555642391237286845954849127822423390253993607953723181882710268080321778661121732680425853108551735752355450371216357227530512762944758459715578345342910039594874097510799119438043646080646061306992178941384939664464049365680588140261764763662435696034855258125435498476689481107792749324394016808595834384330956079278118052920969594917254531040749431613560750529530564832465564737339498811251410585253916422292199604065518764729689405568543715817143813720282013777100723499247294524431788918271948984120213097625696886458031426068023662381920704991393366468636159006803126705015440667310525932669850081923173268236444339647251493528454733168841185940989820809958490158368394784279290064700921189935401947794833750339031119663661474854931238307071330878013894240701215906827558098455125819562801577836688351383950462838054193011215155176810664576926608011600040433942703646822858210913282683882618559832168779371199989517093816004703665413388866208597023782271919349514469774823925410283328301346049893532504889446279610514180841746588923139505473866466392951144289996343649707414773824352278832467929391549161172217722422091494661566380674424318756338769301799059505321520964317792968810836400750841667110334032634420399461238362362070381746114960347619324677612848655295558604109374234837837772972073038606582785971685517198954320957203331538911657517526843212847504020488815212337666600541395074468232960088978984880984954004886988679732201503584007694760500743775582721253048537124070375530140452378858902820513366972139191434725675330115553531666516797123318265693447865681841902071821563430202610372092934109926266085127606454464907324262293470464755418538322809561353702516009153875086444362923461854074002637002894445724484948976267773603021785971841105859754388612004308885399506798575973205580036521245189471271286123808331335131707783118088742711145765536338860897172161763637741301470957091914138206809285118318111169229918208179568750566181805860541411228308652245026115054004171713024243293292385344462735767645095614171301524362396710672430306316551953400164381144466558281631182294301426417165325637007760992656957167353591261411175225869718134123006501980525721456720686109851967116344148611031390216817659348149113213965162426786339137842911192071005509343035364133703363551774256738458628866213573891144318589894921865428415723403644491997699886524520251415689692290619691266493726815249985611572403812860226011561815945893941130325375044878049803862354873775339343018699290249773124531500377881039117817185816537574633756241288504243747525204866703610894365514292712080942142025547499623752318565900754437670660031156987846264418858804257268928078693826123182606794984300426015287508582704006542982397402223837969594210840181957054734577322768544200143456990148011952574456000414643968785288311822633776987242410629713056708599646787442614497630068492296545138213518135665083411672422179444771953593134202827208167910298681391357847288096761119039182064497650331983345509350763129910945702951417656516194966970341341458294971442897339973629236142291962811433271031357192711151385546097370601567080103459233508686694417242056532031145869904596509343209311742015828875936128062783709571582259509687037436459450784637054776343221679706641605184717018029839937638087602133836591412975653636486177298153552763194291245961027728660486736098064349105111122481655993606733693598971069656796660062557800817954955192503585733807739015359462544749793650667985197729686537706950869881016232677609172199392481688039797009424094779118983507298016432036769170334735429644285321933300312486733861422772643261664270347359867658535363302922886697350035135280546086458473453449849787630804096520411865941740786014139635097038127202413286308273633880061163199911042909864906583736237412104146221871432524781575664372218691929967767493470095520234384784511626509604042187337724235853574320071995955596027861846003443159526051456506339074224555495648665258879166782426753909614621046807862117147623900351097875393952583792512494645921439933232966220459147043829955079733676327503066732184840853903975788643533789231973494350060856153229274485494373526443659043902581275307643534781256077862849188850798866612771095827468299186516753799394390504442189892816451270652875139340237087992717263671606273618346160076332067706181831797737041811068744351145517433429978719572213586327917690560679307364231398321311809402569756664100453888425289520550173432227504384516638642534195934401002876223818229156813283349550614788692730157063822072479143474364018627662433472356792289352892782683558403994097424591591689188831063345564336530670916977786061790791782257535696100537271743631199849208271273110120644692502051960166404200165546926282842426286348259743414003241478025188283558763344465864313350830350980810079262347001666032769979531770144974767181099005563332615580555467020831834599013819346923028030910203952567165633200371818699059510871329091262543896399279617249267190516345657923839351903870438393851827167769149430341013828372201493002210644421098365894999878410235778208030467467490537604281892725035512972633977886709621398584887383368885941829642131861335301981509307411431605362632239530076405120987687860955107610761428570339916297802968559402454593917318501495507000255083973412884041258189798828575655283789476925803409733858987148737662329156109226000121293053352660719161890527299912216724048779805582879775967861284055423696587158473250225437854081848383619460834351999273426381428226125039070168031359868249155010483509279214325483318772548456657188007824958602832254473070356725246147600645843973051235516247477969862302716021096673257008765696532717218380213003889729433892572969118745224524982825379462411291538060715871248351466547099643908360427043116348049145723829068210131210249976560318565816633910504272958343737665757535238649098207038986380464286445101674880430645998193542843900125077587258990987861490576642299585420506445089876413201742587977640006477320606834159661644716821878775654354075469506338299248260567779261136480766248647747924304584658377831715631209218745546874433076641890153294414040993121747860970595367888076174716577707211531523845487542224584193372561758784290261410858165135127645122465138539344229037691220234799313457882093856064343341087613039559372212693321788362251770079225117286520911119381138367210860204980489834621646590296221223313482229255925795323960148023657186283809714025500156257578960112549844189025729648569048235352436290093296479316387899728056691984527460039006104010941276522247082284078629388510477171181594370335861889085169943007635683951032237929813521104612212191080391060214316225610767346242340352994970607843170878314970172915938530538319744242219268962973467981312770743909975337686868571874975312058921630275926114363467529761622128139061861251793743732434030071748048623997349032485124866204219895137206533369863276827004009806073003569194356687198644676342425211990804465745002723438931377602326618892128093139064039442645826680189808367155079185312656396262637707288117676967636410747073958756586630215377793711108321176868155223096137474145756122240646564624214473512752171532575860334635279112297689610063447028381350112065113531893971793236191375016833770194045380446900643109864636875638991174263321923188221137465421776517111517907797801831685269663277308162645035692684680353647314689136205321016767857359115413688930448128508418333105909648080138928177842216274652818153960859839318416378495863211631879318553878702363999426668957298404417304242913392416320262002062908334731118922946529009168326862269042021460701723852002481604050034149224013910608211060704220873853629733215519738712178393876861772390617509633318417731735200517401040147199717748110556047135626071624836737519113828670421014725132867601638916724477219652603835608211552707794923815846852779949838197697726151745212880783310385274515572644882842798109072047210050173103179192293498407629371250038029750464601061024203918411898159795245997528258621183779892552679192902073194106651087847291628586679970275681200762082955654319890286864641171142313115244880147318119312345192363914842185752098211393376451248576230575500744078354017714363989555166306751763343136838387369049344554868718932935030606569643457026462019841161850201958554969722562133040349822206085526749712986357667617644861431774461434769827367887823356495086936366051894536997251937037206980459261857219018889157407360657724621745745013777276139563746004395868591060826283988635639822908785314036728426226418292746602241836552210850475930786767815429827710143051238611661385301839436179314970435887671885172408140753439807529334094995452337213716499485945442832230689890586018867699923016255817694584718099220998594943420131212174377357768796722495986662311777648191394320146433237778386771103531856824581264423408631151250151694836280432503001183242992870553405339847014492378069168129995476342056355391683662518802686750739134856247776617848670660039082653463662845213137480748897340176709242052960597167439033892643434726729685635304764170111412428512439656989187153367904092721848430903691111057522615076134411403625418490564417887130625868808090536070571412510317810133637119516106520257020885579777172849561774020195851978843588790455987821511321136575383471543870878554319619165893073390200309604340029707920517203077479327790395506033174952224500815315719582048228562783987543349450895384067468437355098791610911187939948693412354557713054247778530721410098524761062775855014161240526439120451210248673968275395113533444438545077618973406082143096100921619078272831156643115656440485643719374850221759996058366185690460222573811047864813891864259673207741385576284490248284764681283115877690841309348699203119571116495757541781864374377741414935496929223402948437851591297849546429842319281713294616968978455391041505479886555779891694529242848528347412251070499189091930007226308268511182994610282341969249955800551468377708316660459900522475465323497994493527191443709811234816899698512536979229180846643129869617018942021021182336061877200983644228855463753294508524082118048992295483861833193366904913423597477544814159356485314479958293543662735641737586754827034739357278995468175590490024801109294929545157653768717145012300923734154374926243041085423136580275697672018191659474887223686529169208372791734136853825575793678077477027035523607105355593414598230276708621439947852877473902462329390321463238419954091229968412922331913810538987792454236108611860974728277011294133531439289733530672472284556900675581540453117823645742195903161303916557543688156567200918390232814202149280314934609903288281659083162344957772536563847820015788645892169863263986749038971732597890680292638786279910573022417751228684752393441751860432323979993631646748464720089223756857234911310285025613943585753463528038149396649864113479114837728841399916890769780325820392108334498684352555513570556295068127261936170164568355535262693179247294373529262451792276114315837009045550883899949057852103073747816875931084173549046073765824827264135509275475732701558409841789821539682508395009845139412741802976759288534715860642746047873820038510336541174581419894150161544013141830390663565191199392636596786628159029991702639694726542991989897122565502558186032512555297193356217435682284665870899038317737842428135250757687991135187486361689296905969231768611747025554007636797793342114493687959642460869944572695147006407725072186179169457692527585387769543563252757149675413284629334664248656448878841990328438523800865567377080480291401731553028213406488618483394744721121604124678216827607615362823643424834342089334905666936737622248704501712421913532445651701554910624903919037697506314287153817425869155553416026827119342056304814396101558701072061772664972408078447903665330387641325209939994418406935182545916928405067759887745607298473871962435329683283132789589147654372953777665444490301327628523597606246583742168615251425084257363205360540430787190885609632495129489085794434332383619282063425163692032877956019321789844352809332012476427151126378796166048749352582539788446305392680885589388047550954405446361786064178668246313092317892566566051139365448783573976457665850637582812436314748269752384856214603283882657121465191658619563858932650746408561446457039261531165454721377588690134043737872297097763145127556108514217105359315524295413792650546386990279955158428456904087980135354708680347923864973014699302506679371789655839397918034090186528052304984795895722149483981975639368720598954438612342662519195156754810475435085282089441962459160091939488891553888132731226431345397239355979974925323292915261418417978573867399522810017893322924970990811033542280347917416381987837183768128995898582614428148487799035003098146912802180577516881075506353801340002510692254539389731364427133476935685586595941083443623551412953829496129138742432248636850785362604886764019836988130693248235140170075195314880712233690460891619175865042677166005908901853900960049306177850499789398334275189995751915945078183819590238943774358081356350879773367186104965911668215501818195409941538315772299404359022482079522560109976270410900757324541927237600262211524784383150997801830395494616249464570635021674226989083912707476836529394775580951822120460120986769937949035559218019111981882226518904847067368281521825380091702116038199496212055577310104274905455427731572320514805340786001834959059920423746788195435350650429572142823201779372138932204471328145614379604554294750134671911922329894132932049064006509493583661731570602967757127724004731743639310638466480120712476838811247479971995193224863147518013714414404126794287266454870246038727966939506779089925073340254712680378680194580912895227579818173847856734785148970380067932857764398222073478577053751827831800642040335733006174576035660140328673595116993784328838150735385400421222042194047798607201328779820315342504489446940340751781842486719576665763567368165346839582505324276042352802705563189535757613574467881301481750861992878211440264781320577444012177578299208528162367953243322352779690793023341623083105595346697191064088600579157032948903117621057031624288072257319624717904676889577975793124030666730201537457514517550761867940693237074562524634999701805758571286662244159466242604748520131352987455630784725913989622872429267485205797893697378522132261001564576528940185827837579710444816020281375111368743941242820397732017403971023862974238217716870604119251379238679734385340750980912052528027151838172529315042239172984426770920747995053091574195236264993254243066920883037293013450667267579524545669185892886068479862863849030996819569345902044379105287354006988350833469352798056948101709546504994976636606243605917190118458688468648578940505620540835218225276340841740793372180841240170115408895818032224891589620229187741220844922890700218639521187617142505244589501285112421709896357991407347365310664520556043638054880714897642394037204724897392945258462478752065308633508527761362095086885975539662138337173380480397695139535729830157840825273891292451780527988223315458182803254983520681346079961326884858274240875397774631356926169256137607478857617452052536477012023516142777448309650325830206967514591119732580501074318730167628812844183363731442256753854513636814246521202537524254055103970556492577673116190555894947124839664267417323774016788493955329631330397886390908022405358963820873310635684056409575123009858793106644142355295183785500942321932913579748345497964689142957835351829985837236911632390277666507414553582244184300356571934870710893444368888767702754131598488948315305743583344628851576325217431784674972837430654366491077601391267183349663753324998272037669855062080227472443914859775594085645136362184117276228356049160608017473477226997321476307471486045467110822503705147987835598334221549356284308369433336666757923205735763925943159983804184772316848263177684322526657132233599212638604922290968117820802587641653924875979491434199963286250047867591024487802397256339564341613082133031588953126245281563791791375271065422832178567412832912574282472398622375268849540375124940431771459612400440653588780280381432642328697845392301705917027916384077667724204151883043302160372944947836919292684711128317485791812016807019664844556648154882917346336277907627683265926868186436187991239869905091728738001762424650172600162672582175804792944554642549107206993417301543376994400445809204664268103814987101146242081836305257539492677656156403269981324915198804915627628718933234555093402493395951699224523240263414653503840038400862883199500640646274339864879026651962741038702366412750048777550741529696232973992288857006887788347185230429172711884847287442483803030523376070250210680684887328139660877280325403385263138887106654465922467282293502322794272874604199281227563767338254166507216894335481231573507571334496601501731479563392999038324163762116236644814717352600493648953366547034270090338074149287890818058389390046686942187499976147441980501946775992005681108205792386752133148236573796851381421778451489112020982284185349825789663250896411251028517965082732476563705432604087445739668916052699103007026532998439739887033840888498658005899167967400090411865397995458163100269286102208507578119724161761967941111140051651823826695008869933064046392497181407645089687620090061890624277081390743988366894987876679993200742211433567355304691487167578385620508335105144512569522240130251424629763893110857957564195088069737545916566380471308036505839672288222905158934667112812986546216206253947471236380082922328641944651198725640915125876160484160236698590528300581402097563763344679795035693781680008395958552485472728914202782800395437438185508951400904167674597880314112479731469410749980294931741959388926076150596032632720180069540875352515385273168165408913379761482330196002735826152876772547413199159815693640638562137241648222848594024244409575779335095821197653841969863448145420476205801395071312401054928751631179739738074691286037880543937960330840217859017213582625343048236007296371342041308782156271296110492320374566046775833787845877633048317572952612923178124318102431254178749137719360653388673140867262063405669197790643659290009261705926492669595905238198615239236248913307272703683073145206673332894196274957928654162651758589400620173508927421143616630010624427602924202367184626469491052700507044273792693429982414165867199730240227827624511985580669504997901642117482405383237856208833687746678512935736349818886472715369292276861514353033760090527446841697972865185854178444367836043722820196707514755053509554283879992940522289799385493510071415387353200597021371340105979266345855012725364868498681068847982043274864309370820864518398416949555666916810230025997999459111653271837941527812872436737452083913151132360422054677694817792973288510074671200400890655566016976595807412820743464560722486938460989813541797790287202924672309686398936885283930976797340097334898347732597264154744913723458768996184336988248235374203855010621003738156235959975766472431211845259950128508279165041233855102292681283600213086895594944756050399828616510079150452341373895519527989745650467603554298772192994477354993054640219807813375878726435642102742757819677662897385803524908175080220292876042519725785075123644362039140920205504534363356954997186303585545748188521461573136786100241614923399300017192805543001351897429759707837897535909041922001341548858229641260938108896315654848851309896587407798176969147836264220967955549955114604466919507582160389675502897137320345833434897709324271411226422530014281594959737986200511694032491788830376613039707642917927191237528495062637353508319950872938411346636187725855990561192737313454502283030549537669428726961463151052154046306833632724977933487533542102473366632604363500341936144568130333794906425867848523051729643237849776358963977414091590592221426729380789500403203118294999482392696696313003954954555490093081102713037655787611301980523317366290215199987528888485425249159886345898851008134210519568606815601123575870735522112234335179369719195025761500906092967607658786208978045319412748856473155057383239250805611988894627084481173666208281616211163307035467303711398009223020079979826393066407997217163999232511211204269146273698010707042282068666552223156494683573368402588276108727518717917040288752950153118580804986944962724470049402680839654337662486810479766208574584854156438348528427608052682108842523080519860753545873071218989376825969480306723944028845538596439919283412355307298494137267253782139296806749545487244430062016141356596060042110998318226586488773830108921739317923528088368372792896409018781959230016594533416625690754909931733348604702917080290638795099582774882720993296180743398806741391352439246481235482257003717776651737610798099662000156720982432266008792098347573433490467159293594485199513617722482850707604702407444266772389087346124562342208812876276263390349238264952170774958573188570154155595829990418773817435030091553432489488113016281295390416118484273853551669278206396037568064597793912490286529063200492855805936615817824461890610323067678844856505620508349124313838100053518522262253455289871908086558443042391077813040555321261359667331673304925072777983366953025217078257688682058305839373720136391645902455788003259758713668924633780952523402757320006456549682667774078400710753366136924511922517745725904387456404940398669658020302983521097262836535064559342379583900604745143194981273978934888486893329636768048963249424180800823972087650651709934805733254133195552218299458680853742222831674836301339766728531936680681687281607066624051955216908142654895423119058784734693096152774653434802280163125557007758662508560906092800733852841697122941447819058474760371035929022646561125255554645762265271197451258671461119313982482061637019935794685606811248802061142789799414203708013275203615985911188989214077212522552282441702079969673947856459061865579834331981025462661032356759979359228328297282189877921152048193777234457255405680208422618945466663869429360349624772093510187345528659585425776176071159479313993317368216369714907575179673424009890645176824904463654564735014173091540112517174645746539037819317028897744996828844206979160813843799927054347026030113281250719469231583580915655483538188450606489707549153031996715739626569530750954210090765899149921610609145915832389302906491290683052622202071566273427191147525860318760636863789659016127183488123131850818051118898142225834285809373727465078905372786038541105187660565088898183993554490889439055087693484412615280265989770176719652972820403726482591591067866466023001452896542375145053347835742116189789776926591313742309913583216515202844925680506191048369478741922539933399202376636473531499640314081990036043161134050966240944805065814658769289407120915329362763553799309354087335478240841612385355549324758255277320293752452382005875242318301776554452193746657631335802650755894830052904512636212096189847482798738946162639436547935326767755983487419069014128565133839386697372503938445207777003547044285119539165216689941182667981469388899108786509226956251772172567222680311026614991869652786300737636625290217585873176095207878611490989180219561110215263024276522585927491732815391814319641915469907851302931798137667461998673072217706282609599067071230261761059809782306894549608436845249499696688430179937293214607054159760525432251100562384787779625568728604422803824224558214788757232798559242649363279540061688886438296285028545580406777212836815240270952293735997054023134722908566730809630295241221612605855198377281892700315765377044041273789955762886170267920279187051260662608972594249244558316024407125689506877607986405309357640962872237895195599968900429190117268624544706001825723148181751168447343619946937603635038013416504231158371820297128278063858867424110309414717733099093062413454018600016311790016072107818797764413546075283949919916163985843000244569080793377299532199708843662018771032379802464706550551016736242003634671767060341670511108575692238270276050112541390911326949746138295949091710820396347579309801412964644802750198055733586642495602786733770749830140304534178481052634908120988657092250502431401594220623632284595731720741473578599273422679650375296839490805517087597577959098030000917776034051556584728591034200737128080814985191388089299658973284601944595928551542639969793523991195844668836113384414848250687350831212075858125499433642546348112125016148746991598644038674822972056042939118307332999243580152724993852893211431891153730810351722148471799335601018479676432401090599159095428557639710585749909873266294541619420056728254754720882404050281761931536816283559425534517820820984524227464332440477087425214121502197660731749237882768865059821893640138233774752613901028238476866456286967669125459782813655359040321866857218628059064123534370055750734443259203999659301047439272516625067516739089577956662760936562035581749333402694726883757556696707083516628174737036049163840482271752568806162035119940076221624557972059696788455700610808987378884203532103703932928552153378969088327666232685085758548261832598446513188124196270600883595694536950437397971978298164906872142746374666389015589270413329167449158445872626498113386609547610096854513154888328591926675382051007489795229856965080874994466557254485699940700108043774730686311347045445134173057602869347153415766997391959922935941853129770569622968159321476396001139810956668621305825511126261839323070688577393771536496624147201251383371522611720197883889183400495881167339109045054456940685844066667547982089611009746442263867415133245106084568034286018839560445212351019816275508675300062261593433256181182908116489655166563942734822093016045836214869932199157904528775868358132556957246482151103320285126691287849449636077651907922782944648350451875788980836319932836747391720246800874720872436404847950485586887552837905050314074692562843692207165637956562743498963287924855444555713186868588585139342804915843911277691139372930739745125120134874953095770376831343101053521067985422767204727511038578258274863412039777717635073049405229544599737961785181350239063765762197890594357442386271713012558222180843004805216669289001686679342401378037843573687550860919496462552937595424069101381120138613059165454915807858635320294164053192856714591968339012320521777731796976508936807193247210496523830973918544664593108700878171172766690900889260400657956956107439494136786616913427913205042809586588522071651700923280678476026722552567046693039546522322096139095431316947848599097616556974360056621745471380961979150724404392629355081644073432050610933234762126741967510907477657632997795711461108497273728024750664362461752202577148892249183917493509056857476588439379998252916929298346783824231720529594336476025117725857601926485267917677020302143211452786745992563213164567305707786466608737456002859754093797749645303440728660633206602178946362843992541940213076687148624056225989381816708535816329046953849087413240380909349811284681139376836497714395950030037043310561274572363958746294585836480303001016473289781890045743467366169703268121068649653437016994453575345007582248655557423373299453467970014964387782919138777578222725058345142825538859729964573562530238272974507679112575183830603389302293908923285743518274394495785200277024760132380393586528955182715538794424066744419065938878493529871026837761168832064815982701122225508944063319289340333328230409005538578814102728552027746873807954874473606274220702140816653778622028584681635305913922184160808296130166833513503854989493225174973240566809369899408863359910382873455187497925115299796368757186626314499149728275540524185715665408726955244284247110923403393501911195767905524264038764045831594682222980549642027348661508530709841612973916699693349828698454359890225698721506917231722001929660697022751763167146676712032184279232958977081396970062088084304228055267794643574480558934870477335358943828853807987078845796928291599839457431235652493301213337786416512889916417093587091677027702006735260586181636832258037485751878742692751203205110967866214830184541219721974134524030107064294387800709262703183986314454182769354835114903161865182021465458368238814343973782337346756148339045384756998105574245276331047028998334352837961456856189447000986028705215087956987198173841343524896117524132247904075249260810443491085991941263854090239292801713303014039571690957339047810079359850389182495191333026976730400918780201187258028013796067443373934905715616070495485331240537337231400020327225114108760830201839473947102220415783335477413433302844836999219076594021600176017342551669841646180929817470953721358226644058653104153522915739281310475815249240396530682153152965397116765669633486769314856868255070558745552796338356740806869170687939228569098128230525112227009281818260237074933851838782211555345638367478009851992007841851353141329084148121891779197600378248769710593934181782410442224770599907093015574690243862066191429396469570035457449931055042680335156305297796001524615753506225091382531444145026749713222399857829018322793947962142774313138876548311836883065377087135986506090458313525878712435656654347026010908820761089591074624809184914375930578604751631508500309343516727949401700089123763552320170450948530848893868785407237071102085501730622493972470380082910893658068362322314640653105547012447713392328626952583029856645461403820765353307154904418226864844312132397170929609002328734014145749919002573339423553844180435567776654033539044807813727694488998892101557810911859296043566647438742460138594756002195565754788665290996317869339484385574656585602552042112236286752470059316678786339335897024156069719414658350137511861354215593536879090194629092792665383464449542009507913055469577855995126808594304386081907219882789006508131353887319211965821803398091779149431199535177405345090373709531224613473758059471472824940477831481400798518393283718605349790011869034861894285256480680905546807729303765735283595744621988851012933849403951074358640020093280411907827484736211983856863214342255307967434980578543063367929266509963726186213416635341601620212850507862476522035027848991476182983701898172971225094795033232858902857402262004418126419339872587801613190149098192760218582733290249677957503437691638445735733518902451238098690030490098626777268711265434142482222416036510279946205803660932876770903675163354352668083535372451334419523325669192617709936815981632409799160384447438065247326507476369208543677323590243101904028760825720690384970948757862516561485130049877023757466407065928628451248115040806520711214858141047592152112435901126782937589839272525264843315292954138305846821498579246786955505792619979807056522025038583958752901770843697660080914188460012919372632721466705045963021720337716083020353235178820101814199561758508782185588936740049716544116350223423820149012453593231353405980374146979542790166826963732804753450576182579244041451065410219073432792787993538022687896406404954229392091311362764041850024813037249975693631252926483325436964535494653869648478941074655016527377682857523042955704575610192087354123661482466135493807655683734955963442934506462544218763136725705944247990959169090580763679830600355036628304375728269907735344119243804527905213273828616388286850474498319962280559080495920400812438802576521146289924742319754436415023251604960049028316506271294008060386864137252132422938688045038933042951649104880637433010355027690459205712052002981605667495538252493103551094422322917216159573837468192060941576172921121057681559431299559747105217210607664102037129706612564022063830643422333825735919789808638706735183374544044308086533823603561275184146975583112806926797521276999863395537240320989812890335648664124622147544396889675497949433674037701850628542515699810188454600002763703983095019572521564709440340240422837760080370002387714710767963707815180992273919959452833154822100004367629507161832994308506721253128760256734812709482688745730784767087490042876436909194552579031149482982817293326483649091217315459228634315863786282078792238163652568269199636978748746569976398862636275077488218298049964496471341338266606567686592457401866932426140596170352645325201162352605931125818325627677658811847962489262008061980087358420070597522027354678035921659470265664719027494163059171013035621823786090325292258309020350889731110108549987038544543152548587713793355223424361599120128983139440173836261477828833518175457415868703387063985351527411553920768962068300468630583764226428190297984560723506793986881750897683556127211423824394352065714972048211480457366104013618429763680390564563231778386550741824965658810427848950685261592465509545493198978513977218642799409558361529494791120375508326054288543242314752267248594410477900030102591669636106411049254977124255391003122593052191231655329436165913677377639402159848773534972587898895129528677281379397227824837345193210718707857136150637815272258592255418084004024476020151900789512720451822305615232175315251490075490587093776056044888916296420157597122142879276688354810905112123663803262035369896783708419658346436509441494675370865697276427298127654833033509720247072277904753904052408402296995257365852610271277597351527499667288132130409751930114716795216092195429745104046512573367631053793607175307540454731778434497634195995427130529862010221816909261741032620066420399044894146101701461317971113453090841975746052979934697271612536354201745085747132421526685831873820186370683332811264780029974328070948128016736662136854513373977379150315889292563983925705658668340655410318091346209046563507316898516078224630904684988486870655627038607122895512511848137777340428120161232776968792941793773654493719429498571474188788202916039524570752874551865573679010249832533795285400614079917106976019337573942797702099038959370265826254421982009293326583421461833547728015168074292046865726994544889737669791081047116187813819235523197033386141005016473477945672501181144862655470676311546695123131129034004397461287264401598640304692336989014761352499644406462505430019238571519318258591360916269649774326166687009286588465000652574769610090939132542006152730468172807324348524335365180623243494682581060484914896055206770090513561080758352115918563563307608986064897901298328030291260408345480695213726758890873524935700175497319920683965650871860348691616443821228712884422852119380798821458085927237037586223057770142141734521190300075080796384960248262738021277223806378936888723839954846718415902707577941371504419297207684354642869624905457178741454950707314754193943923731714205553971610719398685144029985722588251499311788928688380017946391230834439980694160764383520895123442862367008304346476344876024157150360682133191188122107771002249255910216257402020814033092098844360389656570602255827798241350151319917083524831141053306412189184554848904768207774715497099596107685334280856708017433452650912800614848213284307394975208766658792055455272800030106487106718799332421531790132375610919910056169927811942978641455734773310115603447889513321854507667634493662462192418573531715697544559620392157864683482346299959482947987778546862053156189919146636574204903609665070305768796242987807888725634099155288631078765857869355196343894088508523211543203978185830908056005717894504452941667207849484975280304471424573192634273064786909510618596250850207709821341895873786923193923063476249205810127705881637619297165008464147240290363386536772090807984209915501235996145042637483152934930602847815418591532621001999502475125123627080906635724556540270326098738480625411707030963100640583791616635530947999159381133070586511449643327366422857695944787062302515862247123205627750192235485897387288405256918251646325615564197514944266583384692373446489731989926013946576593659734034885389339327078903196012532275133985113378786146711257807319927122287897387668442713029961635586259799546395593442576558831113241288629311402504721296241397539278040213390120870240889912043971469951459529023155243554754178207219220221317022659558544159709376842734047448352975313391478011245848350691242910257775980506922840807046413951593041514090963132218584352568242741968588614694091499131167690618125374383671163014327611252296280809692335204562936680244995309844873974394652387165002477875401147476340917513442280321437624509639513016395981396301057829642664894041055504230671750217497531652327866438419394536734237240112356545895801296655954239662737983726515913249637143533076448721270796381574963836812736638247053830009083075185522489856445435772432398984841512053179771561619970921695878569720481732794555403584643238780159223899964965020874265388511983733656763138416038827296241639043216185811054228318896810117385398537645750400055417160934555373234216232971703794680471837365717677899984172775295511398743942639526710707744036371377812432881380541024147774951449070388576985463182961512795087957637392440009555256352258208402896692640535171985648862376071929422533586643808734775427062159863293946495146803686757691231353304722565273017720576896732937669445819054418706726906753755246678969819186951836766949973078149247086798564519228196801135772912203910753322803829039120551840102565007338063698094286906460362230865260342742400403899923891323802682859191936370547594145195774842341434285084388579259546988338488669288406679635962185608852151632137824208993249468711466260795054165946747402607073732366254849993405846716147991287384610169840938055389003254808059994905581265447406955674809991632678492097134820130009990802282336871380240734988357604602306832348216146860537144873844690480653342501873305060186666473543759722568742138195008764311890891370394851270705348314882714820254964182661083334615056866190291630603331749251702037148088602822281842959700311264320575464691944528392345398995060146794905841919700397616214256697398860327785653885626387218436733656167022542722806588563411435113700997715632951407196734442687358752884336972373159780895255303386757773145349625916328613038753682882417628069414759021303435106558769028787386839787605549488304329757935468439919358396761769261576488314496548603957598610255258514034314214459424239073384239469750295024505173208707029838068216534323112251887326399722590082788784762082063429766582586602786408283192784836240242015019543905344935893196576451130968677044071592890635408704511464161140016815161515587655782130791230490143022708119970851945285764930350924417713322636861013479996548719401993044724059127707389438519561477945290835887187371910261062137373292521004672692613661358999541921763937896727611091114277854423324107516017448401648790638092240240787898092330852322465998772292842405956157012823578295876117738336799898852465290216000000236684444180916036824591741409829708333567959205866637062712736573374296582792593629021958284959816262914733703296224795171950566655702937924903687225934042594291115174783687938886833292801619819152780138423046282688358251563144594718422143222482316374717534691199466073530460221662483881941581846836472661339721501040552993688195451394283520747727152113677111697445010159561648701845670309921146644382862394737050736308379073537724676672304754625718800277214651669047018661906024931434576402913798141397343413251615459933896386435107621207254605036887056065381980013044569324714535255596322009784622401683427594835142349409692928801311589054350192628045008987024513087403683463517870231620523286000086194738295347763656160465239675720754282148410326229675612323272243439059221326079336000250298550127079975515789692147867205952764235499128966451812556524331652415187714095045128989670717145224228826384276403452617634228746468594759381853331755258796710510669974629302425778036809846209880407838524656188742953640847066943845707963773267703380707044276087471659815679963856690440602268682599908924913777416180761358869126495374915076902576848824427017980326050949034119152490237867809000202833276521002552011493100693324346317339979699151917025832630284361274487682672034329247026545159832441781366715371654029935476459305950316305423569297534026536270783929574333265019390236526263135709080351477757617076723347654986574443913907717287646357470651222790329183868730059381477978823567808154899243999415256546554712183808336998323057611616407917448121485190285667378031788140578357105134945634371846123951655882307769583156606934659980959345255109275804129551542887012965495998500981416700079007350975869169968510774308605582581594440390878089956478057760593911361397581876099386825404607367695588650823312520218617216314093340025402328865467939312218923425470949918556294205461587340493697455838938895068342869724621667884617107723526908958965401291356696156282788729553222339909450113657161531214753893754543587149950108419733827118910709291554250990775567585161464725604408788658885714624355932577814436570940284396940824832894192180859551421980994832168855286776514321450043871035119426866981313165406993759983522855356360291427614494577870507507720958402981413358321636846218998985095930619750766591608610753606317182204139664946133776183965125100388845991867795765277673394542290490944920779189392347068103244500012713763285596935036999643629761495981431087935334767739712181551916661848506675309161478229653997397549734181164554722372070319800717789541431200719902968379306086884364784384315227738746563464691339299700829148445314372697107495784976406780345339010647639296437379617191860679375357330901590711845930402649887565120084126174969010500633202066232442661037993505322861696614312164725917136394097411703276931079419922913430374011795799191673808724651122395256645329775092123403554398561302216394892874987631111610053066145180506459930412278767704126828684060048892304712829273747114046592794732807733605053440253213320918344803658500994015372060221257711896597586117109765151418246106774917772092575355604374914205046653228567510504775124970548247081916222690986499067277226485716020759214899452464113330641910875693727715571500518346206613244318051355812538956599582016729944254696861849692081244278172230092559131820854876661550581341006041751881767507284484188015351220823614666970912154125922000177769848352564808619250744173229993367670848094989918044353852651658797507443268326554823156924173183530253444683202540744704221895415931650436519013484243991870308726564873370640462324074102429003445596077987451163598302389129227929123702832101599962167298076274798741236789644271913107173945768116807381268249483593950035807844300504610188945446657503405987804922179864056281531260337734097673130708224742932053190090588124102789526923456913278849949514945435065671954899357338332435229865650150019140138000725675737872071275445268406495719233164000062006845016593738849753492686544021545389374785248700331924788917116941830289213804303661439721464461917796853373832642866855170525854378528733371026087204081501594587675901564283903587275511517306878029783618782133562416117676417189115890191103245956991492674011429115834840085608277183983197638905917978281464505445628594754921592807576799968926553982483851662810494019828477897868914315206915929365879629765746959290835176962258740549677934033027611934919024374831531214419333995997217670026113717687632308568388051151711610473626300427870359328854757047369826687258477139679525408474324800583342935314861961092537957290686635664215347985604692352370244847740515627672280030378353544313676565507322896881041404631162926253797735461052490372173624187687172551629960139826445258300830295061304500407260122801161383358328403011940088464572938134704069056187416377373739637714513101394830823958065421015434253716640983983843166290260920278242596590550946830522471838759159690025294536819523332861591478868961741275241366708571974088821561205022797655362006041273087033132491198999654432971080764653243588012230047440493926367160155551973575115504521928916462476588872848274737095381934954206681661036242788428108540762927679595992585613598446733071749100969720701344637914801061247056617717912260495507883086994459318058399909836244751177222852792853508964442460597120124553638977728522835590379736055252639087040495944351196717839324746764788674854822515372032842350879092010118018326427340124982426497556047679611049555103334462933699383649899508346933417218138404664954485720800454959685862679556345682262106675140883308171689905811223063439617947287502650524117964165138159521068814951757274939044672145797443998021840130998572122832872912450061780960779920323423622030028288587894675104373039491270094789607782533154140175195769362280811890288013587022103619290337103494955778502401472711564771384129340440700201346776961571397530432349084728417839273676276385164925008265487771957349063104450203740186943981550461737468543036890809215782470817452647012746089864896702602136073337410802309743889827255036238655459967609664406024082898523985852833439812066944332858427832226834471928559218651448159340766443062370478081412143288361166426070926691065710084957971670568214764664609506157517911299810857716800197336869728620111994357912129256980319446614983086502082503239471701352959588598348417091730602885905823386125480302865344443369506795966679779398079149725127139170625821837108561450483810402661566172148893436961223818335026257189912687269713257023598621532956451373515335289734336686468788900288529634277232597778025034663773156473300553719288305234217518371350548522304109630271105818492187880628699127858421504815339866252970518242404495320993486873720311722392004703467977713068024600884160049933338182909835963491981756970905566449380289956822613339550313023937187859055484225493295186003116327814835332974682629095097587731861450642387739642503685439107904867184949880390229102130329236576742606911110183541618651874567914745883838861676776705849744492427929558337761953746734828074435959460278235302097849613739073386066132589130027713699789562224701052461439648345087308010330135738570489648726824842006672626266580423601685376500943278569406961498466854594266055776472796791871427241071474589061375200547840633330771275697578232162292801743206565599429092438078777424333173457667975972835989982149576514987460628294029857698383807881065929112423610608457715177064512701560054852376953471755431514971074739830543787749731504701887179350020292046662373873539129172137028159467236576833889951985015494797715211325456518160839887766192040593915286706670079272170513656687285269139765171978297359143374778671352100792954500915859830909498758085013480846193847955132586256300644767627381052187545640426104061047232945434736078892187340614003770420029828963383110794180774577228762096203532955237659265639104205648059701009951128313144181908903697173274140205571778618756191354533489823743023830723582920752757733874609884234133134094012651324328871914411919070680278558508860325800082179120792292791020034820285488253340326967285975372449039432307491178989428309337434413439954366930971829407089292369104336871315590247489840908329280818307992424113371788194291369697969151167020775513893659166559240086908705235109586832474569178944297929895795372546354077756257971676953345183478632008497945018249838468105304482157395257407860409147255836642979927258845560448986169456810946778112096802167364341473277770737635852344269735136564833302101722515101328743472071401822978487683030916911093003107089118221141130250562488005308397011509958183422958761449475073026881693635582009786361661768144728344601026935193829064606399215106714193100433020370073221483984566593575638963883141225376536875557812088445611698447037523395524488882617581946192402901557983318645653554198557610600540572313982294728163459821804265148183670165109846799393562336033641872652832855691449996033671391518626559805277661848699495368427273226656760661245562913408188365416365283854547730490655872991552440729907614487444268885459592794483546109332887881762493769545744614444496997445702499129412792214101216765230531136378429695897701263982588754529896915085915170477920170099591205660171436891983137813298800707695492579400364063934011462057457633218927533730262854078037078806158927896641141081201260012542390391014699205287148970721851487099152571374652154106010979559863213156904578916101690934662724970242640078119738894660659960906182990420873096010627683049722712035867659458388386845118938913452037185489345346848898900479771412361782379906010723982193305348811005860924582545296424938610399723659228722938746355427151538664094545644466956012447509290760405439379308133693725156512456279182249782935526447018448283371849994568297866097056094873877928439444339638001815966065570625524535168489946178207621175634125296905934975484686882488757800809240579919579576866048510440806510239587491932660555053913456917178534581380903789848281458003026215856892794686459192902259482345199379545658009070266518002044147721786417438993779149301273887366362491931993231292896206712619562400826801095592286480338003895124322772688144870596631591381733226414269041374550759631416259576616268050383283128460144492828373502961954016263325488572288233700704934057056155996153548316137496045323073162580644795075111729531290755179021370191544976500158148139756987539549842322941366288413031773786470390085436594261995726126562846314433179907448941554461079131913333611738841752675028673094616606271552595206505110828511622439751634727367625032593844934748537725291781042561090238500960442174833891380686411989197474559198917544247085133033805822158810348890681158427410366767036740584364971159201857565773278598441185078671018838189039182127625051719463881738511039553851109400642631368665966188682267088515872613531501820601834787270520625479688953992657248530947044498182525011527622776298683651487934029160232885480729840180015461622563259494590258103296955982892516390900424806107351800393548922263936009089556544463287851296174896417147501817660448242280708975221008794939509352933796324547800571547406316056434096870704107543810195819777899886081913084724583805600751152416319885703807202848235981154512694610598433077633144173970880938515867172998746443579874043596825643583632794338481187860260085326798651594738089904469492236647133703945303793818379201618534784820854776823270173326082558747169929962971587472796007828740163242292951495937192178857451014236708507576050743971391352779082210926852100501643092996063900148427163781489460626336372140309390386438393312881758595973677193405524476270087552603413024797965873869397598868671870809037958699222796638705640186265169971406105780235752931379985476941877750021964585725121140795139581124113813842922898359990594148298369211108346660456682680262805316461638034942018851826547856766282339372672351689035284454513028515565010209197154446276117128095056914731954619052438099177867556327834105685805617481123560929124136861319745201209466232617181514672250231311735509828771222958695708080226390134582068614128687131048510581701774087110552852565497250501498857499168237200523316677261082169202054003453357437856191694552690589648054330238736268656850632837755993276648463925989447429400747169659997728489698733337978207114532280563682997854912113667218788608289879749129775554359895099791906592353042645089831144769970549151581183211846089147301932040871351352997908875448026846847763993970948219929324017465464316955824331288534444040988748101184492776143023026741323618765665721723730082319320431061970826195616926543990592787633738597353572205819130045844554885593405896578297286630438524309021924002367979600821335745483337779701248895477866771177537566162605241060294682354398788275864444612465862508193534299786231125686341977729925810505113589391358005644744223691488298185929732745381807079066868351586262285109803260811573972248919262649206193568388237834388738084431403164752829239443112301121951011631918158431005204507794817369377031415706167110019538574434584938434813834944236903670446979234666114917837190039926447980824278190238896420380807346641332468272151034256213380586211649408824505992203894069308303076909750379295515075636666539731977882268721321542781111838077218630102643847244919384839778053303063417136996421019412326316933976296927047984761648780093740489668116289164368597697339561447193353345103518661788885481411968567431828139805887099342120330927740257237145644895010710625060995082015675513433712867310254504993729287673806943412345287838651258992720459816092975214230509649557107522572091445996649901604405735927875529805352315891982981761160746436217331545802920887840867974535221467703549791528400135331840867903054143994790600230407607356915912396358338229892711217451228215061275142393433440181019602319167217661657841666020364841624985441187497871123132896820787341112831349957498793667986866784300390506845070302938672088073895924666251746595849362755539962194489163406811264390165497620052932629794180460646825494046229831749314802758763627280062163040890935888214875932596467687570260980467147293752544735960340268372471335145200410517003460786899856482909796140813824222958218840512801810256804633920311946104158849089503551964699389333841104347166458968640278365450893902509672379374487178056231763997619632194412513485121174017866654228167401839733670417478208059494755540490966261068365365315646432011142979187017055435690761491955104441924888490624145101224819579189676800608228641728234009858260325099954229443138645620971031584392986007806583789811175704388731036959473693434202045071056681388547197238470661578731187753303268522360238135161124410843842228137927559450458268736071720969153050107414891335576312418029076055184846415405638837431738005921163133893243514349876529156435467472558341090237842453437956229951052701380704921014662914084974401664807688942114910994624298984370387532903036049280111270887951514638826839735514691268777325186666884049049984291934299825256243575627899512351476875209468906051074748077923108379204467523142275471273332007317917126709480150391469485948391133585738948513200979438155738018173103974085494107539839357059459898829035353779929916991371736805533408649789584745185683131541701502322460518470280718260018384773157581812280363912422726481074369439932064625012449354152367285924737431356114771090340317652892137014828446000434459832478213832800007934479459055719633792951901238753438804188023217855006355054253065988662191230166143168928193286151858099766047310925827721168177884909593815289804834908730471103873040215427842722295647805068623353330705424198628758819592964155599328735565729850576512315645330051040025563883753549049588688036755667193374993650111378279434646884828444509506848403554863574411860274351942026383390319794036067402638735003333194167319892821324388168541100725297765069649067646091343316568733409628866676465943729237974412284552746313660219169564625159952960179108581247233641098734695387293590327109141294272121235074781698173126440674081773517726194728410266491188661274722130667194827203024030241430298126676022215049039133553820901887521167509252422411239156565376978859358035426224162958098244334724275190438729545068630984434305830046510219795353362750154994867275970951287397175749621893495689940476001705797692106549657831116496671993801490211635326451416781803511829521344617329574994470473884513497307271253107598482260834479182480595110698639304686751584684355014126539199606140076212900939739568483070844675687909577930193705620681111345207857444482782422478205722952568227914902629562600758022670449663042332713756690578173767229205865104244701047170231028336757566123325301404403109898525279593851229276145626349829243472140186072663077398480792684127388344987374280220699418916445180809314317777826895485423633804861750034450806816992559858298360545154451906211261238694913947720161484814848896280037927574400657056014328776215787426589520885256392461597294617476813237158513135633160419919434104427659874207512446016338831053265241105568473379693705991751549411202293237306031962442715808233158558996790549897285844456371350414388120673498570408749563788329608754666819648239815599969771689955865075704295412609178517436819682939578068251846377403687541443815069656019816328126662466170305138019463269449967301108241441249586975834815913452120813026710421479380337584555713770687720139040567811191741850894564384133498017511852753151837919825880698673345275660169966866594389955961065649734481578414854976039781658024618490849116384407579119451848370594895830598034757486286050490211343236184405265048451416894115718896962310715727979772571592169565518059455274548437068509934802747010027842079664404644093049659851418846580146194423352213612614755507419954942311285434615422221366784342898836104838592468218302003506580847214804438297698317224936200568097252166063550827094372019053352466207376818072143436108514442546453380992749471306355045966135747410450519642633496278312990768154151661646173359145001403683668909146175095649389427838714010378082608816572551707330848417209220514419523695438426573639672979059842292925273569646858841217840494468379594761882871858874886452682897014232223717440690861893058776748228829294774805084587845896479577022888468384079000455129415728606423637555376850109458799776630875095035159893917457654990508515165618146218637775412934430961392435991602548662327749258932804146883631695267117931139563843276472846770450937671931137192085164460449485930546817706889518361155809985654329364046035161689149551160122716914024605542245360155313198905296049066865593387180904095149570717577023544874019132556195896113523264490157036968846882678821967714051518058317996690929625117553709752849608825644818161800501832720955747644187916626075658258160932747602701294491485877733366508972882119797823340328303193635610803002405046845406936961462025231438157330737569178809201364560578045353737749530400447667360592349554557184096612648743578552824087173395838049649765204983820097657773761828934337389178689513976823135191181143340039522193791750494880085901998601124982410866506322541899592296914675566378492272563696703523078360625768675601188588532027804161059620183635309597968340750732112748084030070872647341598647349788119474019834575757223894046729706341032767209554420952832813288037555633449728381421819139507858706971228355385977115507782876254000985425444040522276333751414361918592583029286232484884508917596478620661713164258804521352753886685150889925922832029173572901394973781167559465691551887252105269561291640387977349487659227963678309855825686431174048753202301268129755601450677221903031769818404602653339747350572073204941822603342203337882061697083378345544990433570336569784680807838566147574332141196639329008537963451790228270136678197447767715630762963614078487006925051158358966831178847626190914226391773282780244281795749151666102158477346260982023583757510097109998219937906782677527202638440894438992589037613096461731464952872426784201890337487761610783222078085603910579579113270979678841394596016650052009745864820509447043214177057206148245343995656997975058652854243047894926991076428615199996404613385944153154114370157936372890987178086382406365591856781906379410260948016683329625992393259316179312654025562426023713008523987911739587243363968846836562999156439025723988038099801702105992884716908108441796337792584576948216721325423521849158498436091002257641548557103260692252357198661358387435728331787220791584147318069382611900368424123506151064280173438067356835693992705846539767547230237631636162961545970472216321087980609199376847043296366201439154843438672107210690521347725680026637190326481099098336287750251785730659022191592802576207587371663343643420404705624109710619280818723884221361548089472303978286365830832555531972800373830658796185042920120512132700506487343585258632339938912473043900510466660800387016567410188841844748495326169644169081162292780926009538842836654436304970536815212445828897907461026159205452869633645979512475959487758159597685104158999728231985741907450969222623026779529481908127620090630729254052110267291277665717986046342584485729633237565374824773985781584691783383520121538909160510911465024798947348758507945198412030887350312954965665857461937632102210222635019248572110179434472683610831889307314780124036338354750008297219322410684767668105875307248712329899582862525757881446602113435064612127624681373788362693646353140351087247602309124775370999590526323399019040779923404228524255477292824341593364433477819061115126055422293724232173410913754180988358222900194126353388349110794790224579819785395910166156915724861073718792521278790803981643033849291069900903891393528571089330232423401655994814366747940759013319705461649100795061650972164315566579760888999971338843160767314834021326768789156797372948083857617101750343342568515826552319634658822689783816822413552795068182255845994852577477970278025948292376829209163326879824091112217866771689374689189688595963528346462509384553608695958601082359070860415553545990410755667630775476933566132829117567316733068909347163520468747049594052881366955348039338473995033017332123591897592002639413179342469761876577566347510708307036675750704177504066168541597826438965222113669278944520782707146380614924541528353964289590847276333659281553070091306294297870873825597424719388373100916402504951865620942047837644965541632673261200423982019818340902874449307184771134949462804982794399880566106845142041995340455301098618722745590380800960770125020573581534703254309703335552802880305975629188753152500488334567976118383107784613810692879104787710629567101202422214744984825516116707453898310344273241599966192803058728979143266751782143686159872027175383050185182022374043022935016610814977359766557715146833242318420965628030018469113561687616670171841182113377296650420691155087310920768250362159748152550778013074593830670225145613817306815458253360503809438284622545822702006317404732609777597326689997490349084206942990476802146594422123947749484040593768498887167652044912304175008418788183207053731009080005467368362093464607794123162746403892288640903051042703284240866552040630688668081345056962932338953174557760310565910834546970656177443097184787017676286421958295702604036570596799086578721367343024914422843503991382594627076370464118752433012144841948248415575573127951064947188061233668518494086524457516068134886525940916819418039339641818401987137179346741039946497179280265809011416032477649051334273466140386166013620677880697165365925575916969221503714091596106696978845286953535232909025164223917170336300001356958411384786188266604126986444819852699081078102563671851047787658301532820332576742631566825096066967463280853894096033960684037674652551472820266910016231257735578884581228328829018181546328984731616724900726366129810267324565692715684996856304213287892556143477084114216755823317956252851914511179719635116063634244741434037959136638161718813268026473855642047771012084346339197070575208149808272408745520710917396295796343862401629622333690780191097262671782845267118187879619682994117571003334713934466545455044274166961365479742460898372846488724181730613586629093622218244131629464118334640415113018364094111408101429251547075880760652308857649285157840294772916340820474381433445274338045762185092373391745137883019453248997595759947884239674769917615847395635454331799444747524292831814507227210622539899428630735945839832152306651204023158363877074020890367225128625717389041994919186519089010936785092094738384103313492285022726755247593863983728156146942476636781651401597086346883962526768340623525434703837936417980698266107782631948646960735585342292489194464479989130584847393489205636705320974335565011507651143308785850275620745307389289708174494201238060169078626218136750457194536430975540412448869880093179648503731928607003962203681881832604907455503655981461708876779208556282027090605178885864458115714105707857804852724794894544072561525546025937699363128052205167927738131694066590396488085719905673834356726584396129148592782413080289247112343258140421539565796953036998745383772064707806212981160197543833587598164568468981008682037306482979616494338983110922080776527286823058814305105437060550637728523081413695620456271743949413671499017680586366525140768920255832459926241728517698985859645214872938017825108124586083359342157737180735354040852825762035647283744433877640731208941113362606715077642170507103817764758552654994822993896613184838215613221754112541215334946807424542180158461533951287881759356641040569759134660229426718270475679385556398778324154404678004800301864767887185505428963784890841738070231460950201561446523646144223398883554149863113066308798492505095138542694741932422021923104426886990701837127684611867404362140396798454274373442374713504116648303990821588940303140076182595187684963386835442902356253626854026069981646445903639730924926165334632304200474029372965425721440930548179922881445622088836353474970163310333379306987327158182026459916002361213049545368599480456245279964731241327120339049308633936564293576464572735875981974833012624079484930768189736630553038330667428141649151523642681016357229840100883791862071362903058146280160904182705318417741528658277740094990347392007963019216962191272964319954993136458932391145162926886818249373124672284122366794354087327027207888193374074807193981571605493057565562177862908672435685020224934490710700847270669330386057772176717055790893844116386001658922844749579705326477250422262997976007648192828856189661464570775022198772707602487744412378015475529576729067843727548545898477555643286327252288217404031215322623927267455821588478776574257463868726774671746278553204726359278701423508579151607161272926625565183127788526091257785880811026408488387583115800112757344000048353256916544335102917929903662724571319906420750724967422337057623573564429193058182889054362467666488400831736523527260583248403729096936262616929117020105151367257889176030868521019065458446715301307087468407896209251184514517093771745747405179541099996088563746683333335164345060504362922146044130257914321245966521356070931536712090278115269719218839909493037257394919687062628744551847251370972029557489166749754390258969192747920559841486506042240727974452522689153294784054382306132198759270992170107304961072910901338839850151331563168279906338612243127245460248294538796472066745747116046929260517836875924316277669284133072635024396132152686276135859708912229657967698128615865085962790100084149390361996088607838042461151326661561024577294997436439098516333243271508368171239787894489366606432448108766296255928111035425932754873856153568494251215931788252544778459649514556992839977205534301779993397906265324934964540681262798477502857700200167026886952749748963841307194571573132685439977144972964942637147817700558429194270065606691590288322336447156386064444581205213763288898559690669393080054264607799448722880825981028721556185316116492062084924764002047736975068366157329803101559128428835338109532910307849927161667159630314074244817189476926330858732967172568758252934855562208025970161312694496364320440288058924424222002768179757186531715920878076548504243123492400151320621280698139229772263386060840670020135474327958892650996245927690176679546455567311516611186196339148690314101005958763770932654144980876591068554462577308216437292005179488618802974318265907826486218435775444350787072305794449917944793582368033978469913856695482305180072865453583183645525418687381144699613791912830795270800274372837873425458738938719580993866167955206549131790704204315419339075074674241436696291708219824326562312382890203642692173141781804434561923511063669871136260811248737850434999266476362009706389414403493907499656264265391685097587813946576022605909941234254859015983790056848944878125261653520820232617911455754501969639632914758367111838859501350359153442685907514841616651637830495708073912227409288984398010871240358348534708761057078414303878110120025118656764076326638248624203337425770777746867047422088717090196688910748495286531879981952247694114572561708512311109991403378283260921270936452544612644264237542584531865030338956864818165355765750015626753172933127996420197829130119355925314916656242987778339349546385601161824426245990424433414513107033810688159667076734899102953087384342451689903581698969359949697793161834491315089557157935238563860317151240732460265077451874326274062104153057426612016034369034485014392156608839870912482978941681565191478269315176940842666206435938740452149678873330433380212137225946319561169365828207275881011403392783302432147122533962039994657320591814056264447035102706862055050486685446282785062027425706623695308000138207329883084051020996073641275523110551068593104626517982831346279533133702849210466226307762403916355592131380868736144358638443451382995070763665633971556818873499093477185975307660933114703197442574135512158790730209039465090374005647300143059863996676871252123767499595892174469985092178123414101854515853066223628309588113983249746003611404845581297149270618695629363203512471998172969276750609000914162947730061292420625630387339930129377324224884686550080492499372160609986689863530263938277919890162810269496505181947737087674132115896442693765436568326474121270138293367508127989322629730091346070904984693072568435546912504105300455772065214995783317313483447170587274548807714575419413789955142704648436305293542201438913064791051288839876542421447760216287158911086927398162965628764953832165633555689060738511883058353076004738989259734905903271439893821100613501754188494663173962760779577749493315738216347815475584566376225079420024161796781815448685456109925634356566415733465864651013220430072523128960843957806781781716042038470140692816986969056290989628188507362867128692025382513604583375172527055417233109723447852990235184693915722018552567441094467803110600447276758426115495338876302979240901754798818954380610694101696820203378975544578132104400156597231677936476634819440424121693367981309414261875712446201319694264213240711466024174277590729962595543240820181997547970898992362305545593323448220684264290590652074393443773864520570911813887796254743221678291582608454754414231808955359224336032915956044131455491007654022794253311607888082857590110611242386161414877092592258679074405197298976319362464943589341509318849671798061812418459292319748285143684512828110894387677758715218782358650126662973659657804821577796236110868396134352764782628743787821038632501682713933858501821073243107108838651746002471609078449995879915811378561006366635269153941224526930385895279048415981779865273391917973670587773996151635726936952831435996244106898465381398737899591884025106141342180516019085469263325099366125044718000711986361712481463122116662456960751736084680648040772681138874221779396328848773539913934389678732648459095043061248451552668895343096919264213372708172406805185253183803709319976633745847759090476565135574528435025624201147415650665729887357368709921549154259080938436081556615981395543530455099065433377082043323485387869382540686314986160726656802900165494830603546863313040450382065066420291255064525097105075217381115918099077292702708483481294527427034067754519466475337523085215123790432669377565858830847802560473508988233380875880120322124632434751493364890808301746390094440495319572154449666472367024667632135173114370515338988938847242822105769320512119109962959894031102092560074367224701542858007592095353099211882918143243975827110644820992988795599937601557207065010033224173440367273667435572553762893353450946300640661545135025489482802642482673839176117676447538457360850804074551925696798469606873896491156180750989635048378170292738456938962422250638661999974822912394913538151626077964696570527845906079390356003322935525537900347510263746142433267458756210968280042833902387335882793396349995814686039833895009043673502160498105106337948843328056011611186960894722338515346869772981041332095109112806678069526891998146202570379784314962090164274825681291531197656949459988758729147028408886252201322991501407282563923164175575415295585338733007506895538504811443826931560003968003871881210650886641893627781544323614616905342566611831825733116817566628303574329931860339432052465889452186179169796903624939718935526833068958131720632991614669714768557288726362240448859805647055125040598072703151331436921166523763018289477521418943420192410631320972156853462982862532597832149610014175832600451563871334946710885266368206367919872381172203099949607885298613874925475334553638543110860434826833200458834513993052361237492190085062404719157517671739237213231134771655861699406494772439072528951223742579287942337214849144798501153645471449490586561548095756970576435163189931577584883758758127574947576531704646213479172117020676549719397833879803594334650696657803081584676014937959284721673524956794236614278022918421284080058627467999112992823138891838585468155397661242194112929096966996404421809534347156724088734980914189014883514323542368481669766760490713941781198231568041071598323096849752273301382930982375153193307645223874027013648644726699341700546036668071873719721365579091487645404349857956403785377712616842023805417543778848282584710560282388805398924253989487307227602006082266650445301024377597710633766064783937090824990628379565015207419435381322726316398960440669974709994585122111022605514092900571660864428625144904951041665439477597627739033198130119840448636789424388822994934266189846133085152753836202094261244087739613242247817416833495344128430049245091255869029024266786676101150159025363121015215077473814278681771456212570963073833982838040538524274724268506377635654082764475537329574303453231981589242158055609393296133610963863348541222220823099575313648078176740366652602033017476478696085299779062602286423063311824201697245311413535667218777757324111853727452395312413108472486662314752299594236990965738020786977191006596839639797523406107854189577226818697444797823453216885363378589005832851145223925467997044938634769505138802293171997164761525807176926149282300931581287621970665915502447505131524001752972538507591107572264781933088082864732506526955816106476906821258454959922061056171298126101467785368419186869405112059354317662325069314686328715086054452824412885967417785726712180039145497756873647165633847947610891727935375445614572171544664295283798895221863066183681755659659839744313215291656851850898365324521647982711962607006219131262881217071717174289059220511095689200252542726813372873232980744031935944683528907561022614405433815824682230536791707445867626799471170627836472173879288442442113590912123573106449310618808021480384532624281857030216888515408324969760814269737815791181813895460074737165372746292977569645501417124586679013270909975214201531553448900804564077290628391318501167871227718934233284914316165713838806560097630444292082180507771759933413926789747470964063889569086770312000041573425069812551168922571586942227622332170713091643366311192167694637933523743423470150022133897527425005651684193535622135725478963660841520026177611786386014790373747055788125063837028339905329059551199854474115955178521045625450002301238864943645780296907374637268938696199061354123936783810563294429662550204342122184560280002045485931944568504767003096197000213726009310813695695128336038347566057338290763976597737285019611803635282704131848041167836331982264049025891301896636066284989257933710889295103752063801077391214407383743473893465265249080928393944541333589585954963844013160202481581733167979694885484728565022860223178574812601508613971965289104580667470444088702033555166070914493116761890691350651358447423165222548039164821517472953214992631538308794352097229718483020957182483234136602668562247714872122444856427569449824572757359344326839904431666089746257773939243117599636578995989828927394369287148407062520625744170691142056117532259928612744023634816016794014952294797891297025722481772667482035401042860262074547790873665171699943875830303673551447735593478027691501105543517445576723338171842971412733102565238564667884765156243806617864598277046034725444349940918207943036344976523456717654386132464191868223577810313997418055442080944380166905702011645896056958913438657837903890142183447417809734969774126669484079512180188585052354120541624059929515067356410149350046620982313469108539939683642617122222622171027699921419907569209127024760331547909302123658757944222093927498569440068410300364547341511412982180778036080958317805708082754037515853142273323488495997120742957549299379156715268660747125660326200587843641538027068295014648245017156490569889377511243545852847667231660341106104320979722569969367850197807878305705465643778848250079264062226954942358784225616533189175646651958309991944601409718830114897114325153053228254188286382584460507384096872131133533715367555236410916443188891644961346260191120122856879722365796386039041567875680341903167924517725168417058030819817198818772862804357034225340036042808108923280392796742540437308368007858734840896601251386943930620353373024943801569136795406661924574808796717840057776121044162281575048966609144622189223108223729935719978281613972310579246756740919305776210074735231230808225716528141448148129326139753761658410703595281251930526831012790248913892812361942903553034695444196795499780184040121876780100574552543890338836065215878775029000924431121350492139259447130674026148120539607216827756506633482299921372447387470935340027821457241052672604232658557443315268596862149194879164949150175301712165037182441643056330959515856939849306168497731937255902454404421219258579230267030705670626177318891286304411136725726723636591797818881240543100004510796934472084429154408565014318533876006277527953731125513503464067646951973599696075746588555075948602234129701092394900699928572975011476037212657410069528484891296759332504278468405491030856005625506821041278781090264346787581678993461544255441713543473000399103323047355043782429700384313933231750071978737507114615826244707277002972942056811752816986619506835850664320626337000167984549273514370035314860206789983122649988758453471744351367649537406556556229797226669007282234725101999306698698748416183031992924130613136390566650311432358284780769666194481379845606056044199537337524865560961519261459186624232247863875806280650750347757562583653930512018416362310813958448332607564950652206914400297409462224318253277809474102445080806728694430608865259523936090330266641425099901498624045964549188597565553650050290244139710539468798729644657560124952053774373051978276855748401742707596595305893270147022527596996874034748571520736666878674053732600025457175851268115030222584514149781214774831665392593905560455679043698714141361024703438574400701093703405063755303061844302798713725281603382126333440188619468400943884125145243974604281455538111314006333375732770077194424050363074865116936210819687407154287521316704038162351701281584766472615313855726602039227573985107502967021244928410616615098914039745239217150836537916246844436821814773558186327702774837001030719930313747083290063440897127963548911983930498514950437120334562148506856706662758607707755418102007762067395378527799877760640483445576336325548663666966388753890370111473312244481768509909142128372184562226375019797831585215884609533910023683734494013400023494780938488531267949072976260835803684304607697960424630115082750973269701620425413260884555589074043733766641426205083506485396210339745313380011268946093719023978715661074223885578845852179692652875220918713440141508190055273365116279366463331655279340295297755609112684087670758460697879395929401864297215406921201890853712440889020896251338484137269559150378888467550587012729852862481073075349724849526398613611523637016127613482203586748521123151684276009327227056321605984820330147142182886808921828568117423223300542358492644972412511801564645397098771278668535978614031917126077565573934019571351504602543019143961605026425817748815265682924950139404720391163815546962426236179107336696217334885791362384345244173887640514266600314580936632634188346713958334431274990584633487417579950078717134451363484257896455195639444820836961790984838033138315926115040427957492308472971502881635820224712685033689710080516650998545210140723628288722312100947931146104157565377230622909848197173215413495786709766641226234608668776876797009160030642665451961767715156510276006821512357340060723170759946680788965843638860792187779420697412731587543309948136252476160912251253931919086367332723320842159242970551831168740520462926192484044166544183808875528930790539359417724549980160919218184687956134710487695855524855409158404360867335288851346445274867827079829029297990599131078773667786550652348350624771505272638550402427666090067655782770556604208825495595788134697256235617825547547481877394960379098269759927973772438958259545210693953049792356547814457290113117813687354027323772660829878784709760792724940887149152916585914567912207254862248580046168799753982840748204135648495250753625049952365753697010788702881289585598302943726869486241342836948830242221670507863604753064793532902860923763768657440083760996745116415233680619978330519460613485404843420079732431310542034220771564561897740381821451227299470938471756570073226795931276578528752475451321576026369525104778819838441732301289821545506542327353088846141547827440838750068818631315963057348747460903559023335312568516259520056585563987072942864090245707789860526288997104431031926285488796586365777942991578807506123762250317159474105258903715014379995552957213259777749318051892866132090721050934963359346717308653141590836291826586434404163469169810864757545073512971074604054099416898862776345641598779112387159487596635910327903996759501348323360357920284726569536738942228583616583388507085695637177484745743263477480543880301121840979003432747026980986633805584511702789697398344336485125749740590811580016991171800186057743451649621655548222993535184512581359332482547655588813151563805083162276279686551364025227395867227883813324830852110117919851048196524371943347890628683910046153441876058209234086249813188037724186744387319691951899640390722556755273501072794844720023457247940861468093963691949898141491226674185110443206340424630353529380085826464319337128417741704963470091804421242097660251394409820669079333216915689572850054675985125124163802264708231308115939900589977053084734793262554977913759795278094181047480468260548535879773039533655622534131136245990839643388511254057972659457532154085666901610980007915477973143185788538434714324663989194881414249246088446011364056391619772520202874765968843377628193458446783475805746745803493394600825056729369086133345824504648005408955013440280707022065083576119748974956029953089707776371155503324371823588278367282781545144783559810520887744541002160138869601051363918270563431286652603756231547650390911013423037517611750531477676995584092669317024166440496186588551272134247046626482534573484622216220731598166262988152527781681792086334337392513612455182270437749428942910671592472462135476736454637885756122541105499163524366539602587832578410972148042635937295400846004788515703800276163444866664710482822075376919343236725884137125081698728716306175725589731083233687477739959194559740395768261609807141309860913919190585139554970666714011429647935375287302746485480075872587889127650016389770366969556735860779134966320604144076372725072294717368007933294547642642603030944102666346620229397577442914803583882539643926657405217399102863132939330027839248950937324723394172580298208414203794789343987403768835013141641267947567559019261275422717753379465498712770425767565948354252391798106946211050423254142585502290376948727744497277790836210365770048651358504493738219881848445799194774267210289057796027949443026762625906660831396899286811548985071173869402796714299632865914200364670406051396595264343734898440606541722754167791282085795376932580298318519058354435530348094632017461629340090021320409178615765740628409707727427653276980199740329880683018252924357771221583072625948077471068822913324007970488849804569583494888909356947287541504421782952737310161620018350903070083243694113331369332719828548640128546296986622365580730836424386310912377997375440890439435087393776159989890458308195592089687399860084940383113647486044010590153668183940451438540338128164002073151527021698878822468989295727125690512391530887954645739382282084637752449474883694298811427628840970145683613585086179558565092845119084271814862719434511057024462956977680190550461733528403828617692034118020676102766115234096158378911519409371249016326204081992563281536925738945527135125308801279510170085121319655175097113088856127095300842239393338362834170827053297438858328316542450330965663581734229081100321523027343355728757977060933072406033746581006110770110527080489029362365433930001266371462130209422806804877813439108361519207008280291700382454204174106726371878217259568589196450704552112851397358290684105088755567275327827520055371331662109769468221871140472102618726448587325412368954532893425322158817186389663068118936959598130092217081999950746893436130045302868062757152485960234343373989180396113619747233600048001109569118658414575922386652327443963958530001212310627995420104836317625492546702720141610995451954363326204171002339039781985976581575978721958270131869784213477292688173756018278644371733128116177059284291246708650462477137592896826854878916238513830852202257031786333156882563297055553957120417479251969251869159182372964719127317215605188958182322506553423268688103616174804816421766196056761462434147449552351465198822170187449122354972669220907487133922785271948017859641537113441742529956399502774350646820961676619946181426068693038840338400273003493007859173560051587308511780000264818799590096317218523480421639185593594226138984136767771883767631324271688383458713934856455166252516403777059437053422109269699120525344486943056659120361057388830625344525183193039376157534312574943187398217421173735137354387506700487209626305790998196464913985682871691458708320901446834927762763663941459192257337160504647409756102420486459150825241940475499655316678963732788556651521948791052024797640761343488955304630235366072622517575612927822338111583427065123606819827679913571709451358954277721331122371700437547951060890642939195846240725221072254905120750359959645458332934344940087210480184867444944737795128186085210784306404870462250853421339723256284845558943985962998556026754192174770705627044108419915965180529202730469602022146968755507688292443795282990683779005686000877176152185503843395997632105686768785715291172876051313667798405767296065000482884799976703748830336982486574822479820506822202972402704731373040456030406159795496511839326577988883596719367015140330715959441329364110363593057694640865468291370010609755692459495581973722063444026039621204879355820376168525830961684174940824041509289825493426614289525556536876523222206743098021436433823391127559194330745888104498111774976476212266788734690873570125022261623624743268842192158135826401108907104341577641089916925918463275982188040298899617956123946177113981996922465809360964200229020000077170480523632327108235417800111347982734265362762772056612219335574331755388187890128278434104364423627619367046863350468135915116020933074571898712184108098942740817372848748385818618576204285833678065398407288758595959113867840171108250481735504639742312073287117949702212496002062724350560619170220273703798881862564001565763107870748876829339979935122404032923661110230277919766354143263769607179727774228516475312045512872650822461694607422782625210071419732188298435772821148289673517929969385138007654955034699551247005417550914057040512319293377655971515392534702489061141640341291555035274114988130990307006715371201134415528708918128011029622732259504806431911259751524058512310422229858949630948920199598007433311713829297934103555847733246444255267210552279041955423068377285134507558280245972588576750707510239498145979420581807904163254591812578390918297324293366833514292785904827119910125527623655640815709772296879950055418144824215912193142346842904099565880543314970477718495354569187382730816272776751188896021561258048830266127162327194854269120908670455713388528852942812915044935818618875512211700846880587405835331128963594829032693587009987196603249544971088622902463370116434981135816492059927683923273908361410193514456136126094174152462118493398130024201077141505150777177151177893791274794358026270272802754395837979816720605449462817717023036067132287605290804200479548238690458819188397546553844971006153821935101838333687450507611296010418959342442359821776610092857117072145007751124655785772852050718131558975627310011595500901963937499338741175872992407383698191878689402844565964893549646645158709811808193503050063935089012156846254791335900507506996132563998603808816978192077579603162964484272648528882098455559541684516411109638518391107572279043795655863575709493858911776102063963602401465852143271466791918918210383758993614893828456681120785243308374727395264881898566196764207230394130441239920301419022177888919239072991012072204397703237857337606819181739719760015028319508735857225700199103775868561616460914887446012017928454545952263728669034684533616146933445387000734197827022390283622290820882507530941505188519386944401359527573140056408021718084895454527751276443862094391864445647651133030006786088927119040302964387127326547123893995180991245420263021290443391410932739113418818737506013596497647065408179409531843926276205673914515116737150081283249928963289115544207086287834657147376774123508317031978267842196833005607728537405351042598567997814353651662419545476322670975925571711382195935925801790604466983139560939362111858504854209889692880235984694425194872720307213206492858572158798434841381046837749180955600394627837857689337960540694406513039173410031953723173762930383937616664753449241794747426117321526951754197645139532431255418814459090567213946397749031744853288619775612751982120449426477908668632489113343923233692687235900287403173048148392700823347277237665542094125333206136909488228679348122380685741512530667469683716006650394177577459901873151259216597005075548256010832973482789185588547053426968211886563209300262306987148128108951040583289092791929556358250139733178403311240616005917817913964967555825584179936932532864799293929450016089667457235119623014538477790595426453376419345544800820403873326301142366583913921492035709185098663793117990395202492238325235298666095616247139347296242107708485916799526736891885727375416304084275905997239893084810109803226593272763127510105694331437901365017259416091900781111417142040580672681122201083189440140609713331348882246915039893636889262182457536642153313216153868834665225525437484974668681193564648892192567745314084386403357999850951075070625290550698749345731035804487432172933474158881383835402877947859306136686748864792463165220050334273892938378257960784689451381703390502779230565841483308795774222888245099445673296808757032531513558711288004710204133312029374206989642906572895529984314984903671443033906170274382247626731417745719268337524161825623771455901095133472800726756243343298585762691572529551376585741338623877390928661651033477908519731091316554144178383497383328614228399599856672938067009252158542326474070032772675525110395931843793231113235709965616357813783713253786203640609541327952990574874826562049196964547262039615708137006225426706238192941626474749664695166608682191188751062737056443796999816051101853804569309409975479956970608255866194078493336453198654872978166025233932019659055970257936183707958676442759038686587599554033553844701663123579487624994607412968685967436591385124634071387612949149182276081943093400692686029022956160493499551383635605956727363014697471710357626111651762515584006907350158489441378020634350466141125223655624961807127833988402510158391651567758280441281371595545410317115013296951532762384015153789005072856351273039791282631816102247739948002925110263055563153718846442550700427391604630128931424400823665770687529047992551207120869142360178280273052400738085431218681347253824119213535709418652340635742894844371415565721719477150240788193772925773702451151519639255082067456976384646444011147913612023445324479625638993659294923061587340098590074880776392943459917627896428198634905761236066235734875457012773775790409140115685644326759098975515770501394578034746386569912266439115142041730061406618190410245559060456315248801382891477374079140304033513496727866619920380268635965423598827927198725521276938377220875979641713692538511126370415454398952692587040212342081393660905923940941617882612868666407898516718446027725431300930571960763379271607023832921452098645884141184428857964508464474251771293589146538221207304249890058360551121257912840294680978735145263211217859129140215304342906851600558083139560122492384550168800579908437029590829294070173002670573989138187814537225128006081327613182723868325746255400453298799288788914780123775128785768797394535760086683747952764765559954949070000416470492214646617066665559667913548108809764735913594771820269277739657718363158255191779000741653169216499263801857796162709860080664456925989583492524730823416232309173969120466735085686036524803626954417075608046575160045679582746284827240013321364976705905162441862768606742424680729692220241194018006321054030147620039963171302301539790371209050785017023231451670977512627631231136720587701184056414155713996588005697731557455661952757644035549961695856316354706078306508039278098059364308055258441680598596538928014011097396430483920088064053954429157931906070254931545281455522313377542312034313986897806201758306921467875637854110609842498061523989819883667907216644315397006495737204090770082684257652749506141640523644352041588566583004551028988124982423483325297770326768190759545625197577094169454400165445993176734956205789663367718294156699118022016406066505103509912828539017063754296927373649059546838823661333351071594294112280379669984734480027238920406854613263330256644042090323292569752868516717047141057661116172027679554525689409735807128399991443025828923547911794453731925147329966034782820595521348408531064801356061855844157334080806045740158625092174773083230966711321793966535956200887614353177502353287183814117174678326292348581879685456284195183689539084307719926782910237743707294437419110557126467812787481760508968590745160581283329685308245740318250223451024116224488039419078950074165187318067021532686182458227489668574750302075746827615320836119531686473594891292789218228066716445837324852085028021761685785159306936965614804895240664302968659212826151779542136808606867035303708827952482526146406256190762502269105038810516533288132303118868831997133156661641283813007063365073248326589903222224992579375503049824127402526489720042609494698480141793087808577757526880606059587859238429561841201795412924364080840918116225846961481224141779020397074635814406514009813081939238557805640645974100670097679866150252291571216229799393024088998773283587170306696274881047190349433157565150037985286934636020805955158161164237022574079320586392079442551674676433497501757914388038878121877927939116764693732513201445303202814392865638250432161899528065776003596763050660463528615113209950061609397734814638051174666853287884655121932540399508440783402471910019001453661049618213184384856147825574031738911384146472342202168934987789163340619234806064120793081687007783734285871251014956244739174900383478772494906059609273221491123043920696889117266847809493681661523745284070368110259624597372866896493049602884608361640419930992305516993695929385858790876729944539619730570726073885311252255743321972684865490548506151600007248241658580853886688080019514673490087633903487921614009326252266900451340131848547395237286376782752848202160028337040471159232547974609096218914740363166992102806890850852345886481727337210314355440010856891694989107314210321651050573721760187749758177766972940711412242200797318663158252204769130676745875923714978591003805713312304416000881252077977254624396446271216247365268241346254929768244037035749842517617262365183376354444525680446481406479077392500109146785620896019921047238131672972480972627069399431623836612770457749046909887419296613514776897676458515718570650971223919556955868692563697100016486376901703469909022311100269638018887592265515736162802422943271036832669493645608969330232113160055164386191220068163214906262397337094759987085451509008594233085241860876016038241757739635364222700017483735330326984135302926238206408626667274594086482742824881138437360619042241885049388669771284891064296937658144676991378431690228418918899109916960329956787964730655814058201561261003869165419804688325994362443629505738037083050578779997188483819683981262384448810746622533559706889424378031677081690919987300845743512785084890258463121570853664978325473509029444742981360107794724089721444030958000801878433677458027581524134149023844415852396943675269894577012671657686983498288937774039908765260129176698697705561073569197163649549558846803193036834319292465352743825566601405886782824247582456809681933035534113990293999071447580062236527466194367059137957132820070194317122099074459504801946435463160756399823714616476458855216399501087973543864060637666156915789399719366080659039185480049015570852858933426171676039769399523382004723954157153854234649973353115292336612617463694132471498686204736442951376516685679357601113578641804263729583497035616762843376593680882808473513400261081609630042431290772861946155025145256128799786878345659547704772967056826289089444871131451926109629817196102985721171476714128800604388986588258506337227823730469836892635227525173632070273796437067608810861281786760546809437241577424713104413053352295691858951997450656364974656223556620000600207996181506954529867432002425652164077994593672958466440587241009489356162099221374066334772337275528842241286955686256075065618311730817469619083788146163092282059341605601286875544168683012653512878057589992872546836010413519165385704836629601882233381713576112207561669927947960900654255757664616375558780988414380849348235089809940515506888197621428505220661093933424649507550258657112250929720657746929018659360793099326840474939755772618006080944159851571990934123763771729896821699393550222496506803048723226227502534786316357321798094893229433705722540975363176410728655344168989448765520138465561749154736429745365746173909041105071051612280778509464804113464816749814405731809045689107712633002105219258326429257687113946581502091126190610668382760085183311757217304460540589109604260731068074981257403762459351733240968437678219891406620813884988713408685483822979606293515177376022099302164536598739614452073249713390405273994100144789626505756025646849143886210503442395852700400357871059529686883776312855112575591056305224653546927422232399500117711292720844735247727381260234597460634341189815679777052262354119492142045661923194724323264731624212095818177718162284112648500892658268399430963888278369906713231929736021938530357802402797140627066526054235285111365270083943063917052372669119287024683118866740009192135973399429106851283181241358480612267097363886985112844375812128013434869342773559403293596607777601585202413679240762758962109109375448956390935249979144671080210009333120956138749047261669242605744706623290948109395240686044058041958723115579600698065364500152674517897350545641659641175018920232653650365219662927073752109400181324925810574274241663827563771901517589316556118122831013433656097003343391905837254993814345396405848231201344024933062212969925520116539524352439534287933769706141903658324404480835595972696980138586591439882376129184206631505346371957479406838528847163729306045662195116937730997000723034053787105968535805017425212388404241573575378082727174225422624259574055686226485683356231195493857472985508257833904944738588548408873435461036119253433361128763110172525503955303362682722181639674764638503855796969012806442690366997469294553063016874228649817264886257699810703441235888646474232715043075292478045095747002312230000082902664265945840486424925577272254136658126960448526500414154922696972108338206247616194894051661777879456226120545764493685010609929284262297506097926951218737825422036778796002923211589725661472101308046099668201798332868276472845941355965206335573529335893805878647354917540396985132391423502734218587932810525122217711345771972345438217435505337028933562407582817363063524698094589224618411814349969432097786092019207598062841706625230825223054681634438774091345162549781785829737874746534476473916905829993313525194259908724345099526908750194558376951582013694808313927805412953460126383661204233433174339388373840462185803741780874706611794038215472746447289247449052596248888815127084264104818679924716145727076568921020549705922702736178901329475873984782258419082167743675653555585777404335374949702840543999580618380819453591126206734093490065586864595461027381682771490459996410923748038799084810126407105607195683772700758457668587832179779002026359602962714438768942538851208235795787267756015552495185880233831885554106356779575979582050499325697687292964006229598655352296453206936487833037883337060442236537737158696770668947361250716394340306205387301820643887300916885971638940908601105031329142012899758850457686137648968166824444658313959207381570728482939546598545075120467089558365537322972371565858655490194664471884083924175640379977271085346738667407917382765920401995488531721838094628418741571736431632162768325914442456204733860237397772196310097881420722845306238128945057744643426811588382448360903428851315853354514029238950378964538428849314966549066240401715749786586794854324866617062260407143528925235726928813125775006349513642201294925720646023264818759294541643326539792839278758348555052735889458458762809708068048580775623733333178223415246460516986233139483133848155485915052917740069808156367314737356989674826776441710267804245645095684693044702231034375374320985426927542339192726647114111987051937179856233564678806742464682126990248696824812507376695635069716641873030615320209753884094918592114979954505373553128498056355398189546157279579627792521661317776328879723831467461422493901495032475366831173664630551744000882518307377156907281307746839226637007066913792776101173487380362154796645151511855700238332860504129271655769095891772114621952999315358663810140797018485670424484801555881877404227505219185216791199743778827588813561083658692523653762858742719271615379257601207181912376602681605819744471905499920981855723751239936781849673694812414879491903947112175106996092015173810113451273463441877048448733179216343055885775061226178804018217743977310761126756337731595743435950912625805563200330237673776129261999895896784320094464032808839656446149514534361064380101643968247490814099685122463984633025009512947062367110557639223837873657825822759786773286492793794897035648031630183094593975802226879469190645371664748274122562026879489610824277139986971011001700478135676687367584145525077247081778725086562530637328237980422928232261985747620887264255854685953706955368144993170305205605057542717914060859798406377734398915235337740071960133244580034044474072479028347462110391130617131240426970496603465560735230228890339925686465820493258162154840007002738887751225208948356292200907694921024507001454378162777001875108922122090728335918671587060072873904638620347734789909818547081912471670737999422173349417178908871047792528221314033465223163556748442015733649857054155137259051644211725066357048744776925965450565618092684408434706948178664114995820832790028910506698636008702386896254692208679977778871908383418421172354650022769127785786907742819835354182739933809268669638913007596333513885221271983043595970457865481923825392248923808199671737737707821426534508570412666722750391402238792237505727333736256569756013001136012419886195653621190567117943401582242831637922750932677001197801287578809659882757668161186885203741702303486655092383054635782234036622342614160446647780706779025936837424839128764719034268105248818599783684414277429722446403118503987782826656876153591952366064369186109373745064516738628050484744801910722183707288357234510447445983807811340875449733181573049709113372786915346082737771975020762172090759744075151680771132314570088288974986237516723627122209388761662736600174675839269579593388038035409226952727745205677992942093463843068547891293326009242592445199843836783699014635009163185210734838125154435538494861446348217858524413187364298164590257336515570121060963469832988651158858959956921472509212047736278961699789117290027663744269800389553571263242765139538075724230518115293184804034365402644279799671006196297964633795622507696567208500823909661252521586852914120860870672778711114753552712067296017561223900083743390235309543569947113442061539606401168606536976014178534049084240670237260171672810258986867437535149901046045909198954272518752657458947835969979145265496249171372083030656248688887562767987044356675134178677230179383988362968379842384424276861748159772925426428678334490389157310916603104412900203934175380183892328196926571437336470568827964791225312974811024052749501785083151794717078836790749789426333118846425214367716845426351124537819907585746183915399348919874981595712427835666945417322761171789177986942805341385034289871646015139755031727594543823418825114403142131913108223787521210844400831262925916974887901038614187256916168386087624594628528844009647003112704558725561021074142306117253369686502565782326079150797102840573241834193858700048649056332453795727228797616058954324656114203883301049771844280354042661251363690769187175284017589479296691115248976940321842527263741038404278013000679303027077729725161262377717114675335450972214502315794538369356888557401329216995894960299755142307496152373220506510565296343794253323938510984463000914921400493738017007664651160950240902914286832444841574522787409332194382386913590275234191813760364368093976719894856257525494796742428745662850971611692167791452766368333962676317077447858996856802581633463128655425648016529795516398639396160136248094739195463054196003776484571288347257744254288832927230953877271275457824624448769527662123589346419232621473463940845045799957173349648330568042543647564038887683844135617820203095068532878027264812425119924541249907517679767749754371408254776248095061275998856476295318783160191245996305341552064282295867362702378627325208180689673422531586021977498172427863469889753332972344436346390133119957362675218471811106928317490155516778572429822166086209420244537522237754887065602190640976689148411861955498641982123954379697494321863521605365277698042486236103297187192044326957150210179540453946591480825581504255570861840991671660768336372667422381886890481153097232241861410699007943969830871294997209775030080456613749721621996360657451165069111184139566911291211243847471965919705842213118256035044517773237082512985841082812784855577140883068588704506575388056950309829545163646721288425159237450686373937206915764058198053616270613708980294047189779176702467538869268692716297405842767424823535019736883865871807177027604320043618062829349984129622108419568944159141948173192269423595456507192640311845613773085046286510843810685178412016860037805422423812059142226778919526883578884765600497571527694861750850295975702886195196992302419132823894072719092860492354287992765946537457159718680763941592180504026232944270887593451242768423211887601924898717095076870742602718302992619126286292759254941381335883384241399230613612909680523051805060622808109498438090092394884128908510262281186959727702689040593491870851978516359489212121815588245012824698653100281055500623164833288499537634998621440710440514966127338385705554824491661078994436351642746412375200027077571482673887662469701493391111118700560300228672859606184169151805796037136990878567615546702106067071959343389582218503988897487888808253599558563735348883756360518579960278845690653383266061919267847656952471477733209572280188783269226966925141976227157916699136079105691036823155146042832346092524386522485517668896373745464428733898751282833923084294914625184982119904448951107633838804404074093891656764638516986945718022950057361822360249985036816866205388839602929803716855540696973777777794874019584092827924052915518812086956466844254850954819375897972808941670604224465007985622427731476563147408252839579927118099589210052436147786349911802023674552905003201306912437092940054548024110709118796989319973267271494011615163276659127116894253506580188963631218354086240657398337906856630696064875215692117599186424601639809029234473767333779283596423559948769182323778279467778004185418407990134736567177871735688814924162688053233455982955736550359295866271736381134652189779362413234741172779130438612225088365402419755279221750546495139879691238600901993404437815615611382313874759113040530669638466421583510392801932614579803272029761002572176962029543257727925134909363770971411709338117011154171907492308205586069002358679960474772070950907336955845137805901796774855522607458766966681557104985132587727516555539589347602726365183005169019868743740025558182449702866761397326510361844070352140331869581838875455188433126380773252162670021909688681494393807737807616348332871019461710553563110248592729919170640009265274199428158192727827972442380132913569704980167897007447721605174861607274020832260254720478960826703659146832129410716184661178334323413367245855854696771336330035372858507101290671274508177698116522595210493310794318229488309260715994273403590037613870185811983869792117823778509086848480074122341326194975646570403138120556971093738717813301370134317830442387500879979975887797764714174076228841937604558860711462343074272728622560641247789470700863541169772052398476617722541858922247389016441079198073312835333969960326862286715539764103018422636172941312920897090149565502721147303987733626598508990279602114040816544558567999975533353860000663069038658291373563992612206546416315341972852065470090026964967266798375165778743870339009430250236698683891395565324001682495658915862930644146859437277622223558864822980103196325351878730002682409894928561389664820277997491429781743359954001018366768617097042011430281476312811744753675284983613730738759280401494420656942181888055394124813619985530362745428026416845578888000218161170081386077608536966497768056279013619603596987555310326248559117773088580074999898731531538449937053285319400623864749404573207509852750439628834058896734595451100672144362832294711310392766885658275038844499961207631506425372326282172850903603822838003363454377235586243024620193230780207105134975255834031346081486107243125259961711001092881837031826843275651131249182763033753163729828560684945248100020674023242414144705928460774393294060288020912983587637100688773192632694567643846588491514180843940018014726921308223073731740133857678517529578526149182485957722827125322107591091244601988404940390649020535272382885367672940146313853727615519429818386051484353546495192922552954487551380763524870106496877489002975370895317370760134471218948549330608431599160766015258946495892567454661234827763478681195240000436276177399832719875162301604011930739328743298946706876016888751558987811590649967752967926242958337168817252615775044010259170616378492898439513436889152895976990396384805111117473459891380201703605590696671724731992783379427916153042909521520200443575188989365404697238605362101779906936007732390170212965933731497064661568187035702872453287555897574266884276517934931377870064124684017072405067531901045437330303516530754759400321822509183765333087402998442624585760956959636460238645786440281843704954783985882998918272133153427121788446359396702068922588610726035913516974531992218688300166857848563455298821445562308790564297686845879577273229166205724287971704652358949091952388126725738186756216315698197950944503920797647768672247426592856887122777886283866880267981089580097997936555676161603243800780286103148568268894983206635645914190217634320677736255960764905405548547043251963685042586617182013768102604789213711808187384288731283925978407401505866271839134583094642738030558757814268737929036785494718590692819678819724789640488137981837990001485898512214701183719674542074032404605785793783692817852624508138436928755459158396144198062985161392955209622796377710861075035188651338052390052076704555269967995123059367599879078437360969263006043240850358840226750480860429342533447895179406606063481485461412004904037038959893983290750240711956655064109780888659146735542639302792026447715343094883058632120441208748291979447671977264162946230006140794733358387400860960740962810994369603146441076367483898705363757007012219230720305512178665996254947606202347942042410669382850584978915759561163233969096698789385112841674825179253368511878835960445247679295556720663317210711055403005713798337473817395931548608586444468834412413431576336466198030532365136047906500546938576320011129844268624750153493674080397606627816487158901818675066203086362000401279220370556177658305954629806843714324403825403264047085591457278946853965804544404828107005883964553294587331664642314784730760685583825406742014600523040310964795368892839180256860956706559167473334804053890918123212175745666767587854998749357903899392841286958237949887787606328388673159110355442322519751644402423059192622868899030931564940368427623397717496991019029299714398254655831497585152104936415177906309715630555729988424579763224203547821833799541365171928637524051990220888428296199464028307617541368190211360540628879051236784492990904875858327636829146668479803456743805535143948982968066285503583872773165218158993138176246735694901000965714725976384189683726260750280122465282573450468267138610129099866413904752626663747928823715613539749432513513876579005104011315849705930870113593603943738130091123315434150835187258284410753875346919825845186628282070874062597174484365824444461322973354458598179460980587422820853765818228180915674984868004905994222511116262243123462061582446609246630300739525703115807614778887150247035855866628118141535173718124027322737072890289789085979764791112647932840657140798062218557285588201608450243333347608650030598724748740550408885983817639199119322934580383522861292757187212339373256594597036222976282192269900142340558261039647480129747317130201816512174563120002066637212416135995552582237525067210226613579309404676382076094647223437675248723799822481010823844759139298568458691844585792475260903256044488796857324123665017852353681214816145578181533499967340157971576482587680155397743334200937710392734880295580467888012964087796165073992195841590096287468918918932997959588479160045814833625051461216005793214525980215886167953886291838617147761930572490241038227687022012418395062280167632225608472570612538617877639527935552798925959555688645249602108889186835001492907954284803435455492405291104002559919197669188113750779525851303152394262185990322264738467215935736444088012022679185274193908918108689153267206643104718857930057707516548979312085890342688702415252675569068504236827022930761165980234627686264198785270551261487975682707154186378675489686751638704142489348994547821615650838362041371904523605697037536075617221710413608937222686122706752792950964452264349695809560421628051058385327666941435089007958182366153361835742588963949339582179474449635983553176923456502036149519489088523829429208916504483335911430950066605983757556688233204993949948609585419782107270822961678126759470709635805872961321012699474946806056816696871262938864817199669377438172528844562592490053662125700728356952688061666411279978299142225235812465383772004446374969274852632209483278264176804929613934648892493086228215003148163078205041496118146627378870834286525182852217768167927893112803387790514641004124705391871634954368213592914050071718648845398020081648264940035179870310175729968976307060117456323276055790389907442098333738022920092879107725806347523154816142444281620772535309385722432465154262393512461341111177848848062675398131694717266410267198535970115584446670164231721901967790889933817323909555664446656747209351420654559896255884697924276336445676159258542077289328296423868709751689674930340783087256485282772588138439368542004287141767274584994345942145632196309111426390129540807747549213412712094003558557889281020618815184895973255023073455805914311492865239637483017257651875883321029947141980902332420152163217220099568072881772371073522385215383229303051678151022409132030205109194156754635720004610752818989918659102106386450002053340476639041011081997552131930022229347488288529000744423316475774400574063105375598226966876933768544006271023974343807205288294608278019447539342309025417277916990871562460593542379696802425690147255103181443233869956550274420962028368875279017867434161931564140401930736633848799257885308136222035689771200520795046770583804544550130752333998160910718211717099660806243087247436624308924232429627509976838437781628566998804771942815802766294312612814617154800790080725186305121685178136163759695339959236821286847512946693021801154606462792326206204367540796674834465195411322641696959630251872778654547697994857142898313086272425918269149895317238252196650666070814806749388487920603364322346633082124567137558419230502546711352211930693024578030008491541088226797651922887801519007348270152373795886249340848521104657355027538456654839071477520389356383320525289999851932782293520190890561233486164978114380498776935422944732057241162545609239481611277756770866963712150361261457051093492126770130940198078112999681610845111411478156108136963372694090301660233805667117101203442442598729098539145617111408620685546746155380181431906305266722222443893238018319358435463605816902906065421151228130090797734830506889900794445741712940889407910014867673160578391361571355116469290608386916651658760365972635694117080980702506023629260040221638738797378652073658034862733562665878148143852686222243000728675699522686441718298506486379596631342883395860173523700790311642034570492109944500793598998477607521815980671939822963281479111401460260514209895527335291924939702625480306729767760695067606364623813264218719458974970821989692271550395208233430362068845392068026779767191688543001373386015402751789057354872501162924039453554719820691871169334498178607497850085919614064287939660646590298313300739459716046519158432471488377836614527034392582050152916401344084579778482865960675505515665510794612667455051003537559543289293757776977143938370705009239414567516973840566549773655471629344399604671744560700452216100382379924684421462332070524849284946284226643539281096167332182116632034859901025712445486368511107476874115742628941229313076442582069641249603669384182383218978613007445600052467180252456012065180631548833941569237025025622435048303456881778190563289778846899401220251181024430006910659061194760558421879378523512486931642670141869281604714909867809222775000910451275442546128528104705122192190345962519567075278828211223216145191185023811701318545515773717657222886027034108680833178929032732231251602031458578844655595958235451819198788499737784577410263214819066967197685260969783344068256047109398485795530171825601379883937881600862940313477665570641574507338814877541447589433925023106399493841186640645479182626686333648524323913968682488425425748201165100022325808516039980482577658197626724779199005980373128813157808486114262668274793163989609880207359827380824347353074773928112254754832222749417003364523311343023378430929745734476059743624400367712730727977318998204478148619345169221322797077729334102319946584304175220245359357324329363213618452357055526386633544097623560965190416823631579198210464486857966282085977354311103909803132899656225028017778501715547273097706373398808381120952514633969921111688139013795689742223499152921145337465610242440474287617804068427420153199317666732662908650116931988165743327469548100089335590415762800140198261565893134287341428374187268874395825313698174172545088689488634432831539159822565706503224400533411473576170593073421452860508096296143634177324626954793322564445162901638375804189400985272927043263963101706987413560609575653721413339334219349552929387991147466099013775929624665376169360141434380319897625339130679503918221093875823930449517669055153643134341303777074516336569518807215654612554164112997311306645153078662811138246929810042034136454117668617075700269660449640818905850573294953361544380821547640723158572278815299149235050101921609589916981083213598126380611603542925255442679088705799688162502602603017315673081544998518908909901840597301003573992864581971326602507809670950759475471506223454517264416114215900902510002434884471918034010633834081801340158021161685786922274658226385627256570895354731901300489289088330266976099628867636235464113712818667411225075195029194367108433774112482214671450875005431771539520636415386678694109934389676838349839402130674847687378579648725254229843228283284923743836560702742538194584162996542989919654898894092463574619625491408590223201737397696032807013634902552898271171496303868649290561922994776402992773363432074389244348803899160382083309814770463922810150555620421407283393059206613753358107723911044122328193066443475621897583381091200198686157180448053272467408720533104320599585868613560387161449489915022406988800781606331821180367821448362159974405150172945438510063374447273730279719476977970569788434119684342530166210650974704322695516363417092673516925478427641022435051849658672198879681954561161710183430133999264015427376307927650039317994990599264926231728101024115536086583036264896743257330219415922395389070875144424508871887801893519595359222963309510202144486234442358596064127336689443190402458506711580734958586946110838023969744847510519435612364817590512584531301104665406795315233885609973521365853675726348339588251130407812745451010911474020207458076567129114900597402009827823498726686768177773758702602367603228877115658460555074687673900046767999579632049753702582313094614322698657024077537060009894188811475601273488534534044884149810838476221429257565490025721630344714237307870055073089722217621781279761759229982445992473298422381864462798057421183836817922780337043042649305693375091960832300298399990412128249159048246031167783134621599483570865040272217263799302984997466252975302493522300976886519265618795972515749299521530568092196413936046941743732646667267263646152281159286201939120358334836190688390970565552412498572173449467635143757306440964921687818018885181122013805709280524184336397831009069002972183842213109065553244149656205991153238811158457310938285369368343973524694022157989986475146664650437057474217645804599321994372104514899466092316692913441888153869336946382914389496663965859486626577086668364005160040651338267193570367385536382913655804793043193104997908620552595499517417157304442670804098791420049923890548037174965691100286833944682818824143759842606242143480181639561194341046858856431016516961739089457036688683378673498950965776946597085631856219577912110277763241578217255994028139078237393670251724250130162439860165546154983601935341259270055542435963598888231113722353959391697475075755837412157451344590727217450708392233519527729682137825131650540659314044661308576329189218947774730771072421496604771343421591846488406050662884359918305440866066697793583290116486498885922448622768925268472548173818774572526354113059728222609644284163145506030111895467058888552695765184588697953902929863559664807433596607268978591374625478881344536031368043352015101795635017132269587110603812232680443605107700953411499932301742925410572726380574888751283341740009104392844640777049490079469658236110079257863814248513883618165574756801753542308205964033923461196330170683556717219929858419023103393660373519391275396675944282633925288898312557461379759650305588464756838587135552419448003744689996621505110904840971014402126549804870079002397850025597472395770628560533164604381447241596126972838168553204355853332837872759658412923777681628774282120708835780778913340428060537208788466191020277646454962364872089676156926823985653870627467935312433896714847585652301362141993742935460013290720470648135463930441768044621411268419177010490088168421264803354492026529644820635399762601464074264524292474073148975179853245362909709021374250229313066671218788102687007671806220250472132651887946870301979094225498421363972734067293482713984790544450687140953080477370122854701170319204140679696193696708657401318338641370265031748310810597236300262548723605852050399692320677047566184318138673920271695333748517964810951939824378301987988002283267622533516564082070769554196500271339496390641292302171632164526504104168058621024993871372126126152167040971121988914221168539715492483484782605539544741659765110401733416745049444625675749445133426238711900817082655597592758232064620652945425822483033974596229872537528207258063263099469804526756384795848194546988811377904609381368234008919935136436937302280370311564616847596022710668856405210177809631052658040488300950797420829656753348477001808377392801174157397790617933225052822270784891595768081721768227383332414673801678327806560514911541517816001367704950552629628822207395437005542325005606692867659655488635449031545378257196845955431080127621148372232172054686684237324214268910599918840675842074660347776526269731252227537860812906736302565650687672865074191848756951911058829123836455556508828852227552167012092245762224231397473942888448386577858397983863151910176650435949836692159547852305780344461070930864127048115263422015949316684586618235284555076091681650730953731314478250802668386118115102268986325250596409183818227605721739703430618030993535318572669416895411232167129478347009672129962861753610463516377018495782703618591258273899770214010508929604620532331508394357906867257161160070628518486650396538679107973738879400676882520831238053909232941498403196731473925138569487206212044892936183530255413994951812194619834531625181759527096748490011454973024960838826849283651415978862331948335478123481240985188395932639344894959901366274573670084633726244086029261477279422386485651438056474320459016506126597091577070187624393960412104677386135352111661480197576616585903956605476723407154000132549267211852577171411733553162365716702164578014872355225407685506471498037181361844118980965985276984299214978406721424964523494372692182733170051390595657793185022532288927249522722576787049575102534783422678592786303130127754508200428486843939920978346863331017186915969774418557114289932506872026670442917032309764669235417887250934009840063828642670055533897913686144765338737004143763739872207788278345219708863494879671910750043769370776282829947926321856997816834090659852973198949508179612526538391105613986488692683722641584800249572048901913006833565710903423752319693529597015962185849547260772688205403701008975842982488605667259063067205092364317524518554884012930976176417354212690590053948854566588729002113868253834181469687315504649564509470146511399980052866504210635409481012665251813928932536889407097500863809750211243272430582506999087954057128040496518669706417034566923156176896233887675295042481577978023604217978680745438003439790078394332297586096922216740990374394146682940455583090936016680393180351892602226574544489519312232978035759142638977437804005611060379987114590116583724587397763218073814063310048929534800417163746619918504405894728539984057125028097535419309596935043857963056810180739175991446351236099737149200400247005925271018024513330445056908837533344471737632150731685226337966785523208095203079748170871506696755585292281884422817117730191727918146103042654042328359070863725260759761385644490095827012385900136139431371903915604493516085009457494821782078906355768797648352378778322455876928727700519200652720907472286773146473242004592929930078888395990855042708300381571125082897477016538698061357879131565082798780305865817046335023634998834233077328911206079918619068435298166545908132460610193279777783197961083814130059844218854805700192603903576748959680969782736555905948309411380256360911749428909825725264805738632793137014165587481710508888521014194510188839124129277008117287586008015745663777315237092353855748328843593328313542538767281754217123538951327793664713955625343928470160307965529149125109577125757666590385681392070905742125984986371312121663732537132575746714250913097335605044686043482891710073616739774489312063549145540074342058190829703100946023233709669455782850490124656389542428017069238612587631544649744039688007399476922673499024093699840603023442136695222725263676541736914850109774567409576923694722898675876464895326243586146136657048844764070599679980667654433559031122482462910485129479887705204045787018152120113392697539018133525711950455124595652226953847174848908798872223605139556755321988664132083678254668405661979452591133316985553932871769169925718245882402774786258161864899518431041799661818059150749545806665917227945092861471102550655719344901276617195240450266809198563961062860648773004475577390207130554006646115933074511541548820619442231934423991920257848324993318120774273950598856303145400560762264765369586488976870457672518022282868500086119214357925709032544737233554248451708544771137185817711372920882103347034869827680448007736987743362628244009527516798274419580367826378905670877535103601297294920915493026826106695436182973037793546015476152191711986034814733962462028763941089708643323624453510760170518186649486760797657440946035786166662693136816990009015610527093026109503076921675094011055912089804535040184842576356707343092093058240742087486456028590902591147217014584526083100249741025960910575924022094909157649495602716920531660851553602558005792288306444664639332535065206472530385147237051223217588528186128523028074001221320925564201839690936093286942308019369834971473033295416590838557053813525617628432991620057222012508591993057618506885781563979533453648217665647514906568579878306010097128337928286113523616512974816404892517141604308173996943459780391737957262149844564667668231501258792136219240294932327201552883099920128825733039091020473308988171319270646623489640392086862977448777869000897258483612999771824029571785354135279514731902122431394580811796492126968162827613113694581475977547066816866834974996143499173519226316652363130308251853263042438431952783287782370384077084399194457911131499874841081151698348219200957250331890166219508631954844186222013979385786323408705644541078926041551293878952796878439320185390270359175154784513035516490847823110673242295202853292204792710809828291137352180336379167674491925041301430456788452573990106605788197047201078473766973199387104236653333307857337111896602382110601835103658183434236454790698534956431160743334442679191757188134699895515725502056317842586070321679894113848442248450771894196881000322168157712005202315845702198343798254851732800183804881262048647896695659849098414157497170205480886146754805644517926294954170315814094538652988180314966215748532549445391982952835131699937455836018519681692614315934113056597109007899028675466133362024937094298748927802716934983285863890689356019238781047970310036100538978433664787836572822717747900936812124690105782810017477982711407125579714839676879640392895634838414016493696368586046251850449202835468532271090345731768849163684475921002042593094630063566984715806340702416521645406888405283097560503442016348946644931569031245965712261095392385857275338285043546359209330177355206338920205141261351656864098145153628380298677399043681605600711227201543803804589474508656153423080875522734620687901398693523030236820978414371749598803429065125602625757020901567595857815529292433286131930439723719751990575688823667784019461311716525995135588778494886860011370951633376499097496059790295234626601737486748852015692947742309544113084448356591731879595580968006738165771040846196329107361430771958889399141859494949122856181086538663830130809064680360443890774904612369340376680001268282801296497874746204910350932991455917952888986909600109520898196642033020894560666180158423158193793143774452731847459178129931737868189135417200607187747804039737106563667313256812320439124162384922331811148438971510498278765145629936115606053559292478174210711338422162855951136578540215840289229159380272413937994174183514619227403571883862070233424750070646023310821247715391281187856029436453111654948247022827620409970282329120048885432807683013525324189164401847499307622092819711818271863835730850170457919069843112340546620069085519946011013798180562780810042781921104122288035484344102740797394441028377228539883944448825572354010978557731292592676547752595479297580033834981785805459193687820180011766908261237391185884571486424491052203097636179414901364739935596779305268519325467657082687998016419418884852784537464669068197095727022715192232811607105132298529602839489694182219673142271456321406986533685270276978015109117332376707966843778605708215457305179524549155692885100901403343853177733960874600758269324600516138308454163365005931263734796093739234073893241876168085114069180289290566663406347038672260095697795502406907459589001556270288659120799116082098576214154012792148174644754143755372887630921828095447689060728659929211630447850052132792599465329617169909882274702459048606791793205665727417002760464878864372690052129579638939042429295066707518031086516331623909531018528161033428825270906983186202369362539789981601186227860074045567017728344110200816416859011045691571369545595099324709080028641681588853646551524946577239123109531436057520505920548717585871500393136791008489675873406179344013677978921542504558730667356531375816131479649784972167019332607601795437506226618864613374846566084567980464040208222336719045870045487960292104923082031056260071203994489858467425783125272444587965786536708304876594300970032046623147227478898168486528518010818707739299618108469652106353553008680577013225453356352397269196311035142648701469639167268676119883207253854618706078793756098198121341305901877743643345237834917174868081450327631102765815716088966918360803353205429999388515556200435843223562629554297211718904929252694487156385408828583849733399975705965818121759522209238179624897654527252680028171371980836469904895666775356729798276327118589710879892546486741486232232142711870806333365992185136481534974618133155617981360740030092233343585699126261494395973251712521054767006045738309452332463330421884554789853799432046729178721861274603785622300177082795423102652645758092786932638845537266392657764408915404783441274256187191278346617156083015129014499745289790169414099388015571083045070456502262703393823817178374391511997142009013671026967641607065068242654093634286109538618936390008248539059863154486527845642392301822295327915591602066948605534622146881065657674883139679385262294961916388306721368767835442974884699406958805414785161402851523137816372213739524977344822639449135050821900154485986746143946873608338992550527931444503042019573509627321428220625188400639072206046146694952962322498739800163649771099303606386122851829287835015444589012574389051450540232759212274696191149615768809551325617790225674055846961851206275251354481215328478588493395839344770873135322258071574884784762536593310037717722976676975256487361165083624181646690885739693528022443013183799519827047245508545559123834540049969807997776603653494653684844388962702402044940536366016596199224522749673280295827769421447678016913844945350550269279471152291856222835838554702009505125203520151337148635017776241283983085429854792530581805092536602642693521433964943139816875965483111456462444195502877788982323494864758742127200969373412315880791503554553789032260723963235619968789444992841053914013397327723602731551844223420833102843402891514227001267780223812392225710287802333579501629712721191085376317064866474101478147196063882321432326038242208521848292010801732304670178128018237312435779888542506488901005792405401743991283977700056372852123135492402651999043399303798140347542742926387360231183376728707731820122972499508715279966184213501477763482799734651152849136999844721276254294375255343604048897632138110645212065192784786285803162739515244022730641410714845651271264545716201778083262734709396332830721221239615117904203785392618722752836381902134772930315931971170749099292693141519122490073814081140102590767540117469879676119692498936873934006762602431624234763685204418430664067812508199833644647192533402573299303047017954184186292810240791564071574816600268269159905676782500628875256130975318601683210121431330989206505181375393302564573652626208837781775049954424232871192578899630870055063159849964154260588807945567972324295280921324180600102173733258882965604942852714031140578274904200793258569801905615248959400497722250702880998807800805554285894184506198735210813780166319857829893579733267332696582090990649757965859176912234682273187849627418170504390399661521331195900098500382515994011013216754936386791149013445365360686872362118745799324844234036861392178613633189007415223222366701201687011222444082708607945246985577538579879606160914079259439977114325904505381346286817115066718051229062852909440330661429631671708520403225241611080806749218812973248615917401440757858503853343808863296454214842412262550149065634152684760783955822929501327951071028284353854755620321723341857369592383309342057174861163523171741978475390455852795360066840010666456465517814270787628413380141061471275080593688428158872659683307614455478895770537712427556180239319363632790701591307561930451454748294588560838803388828446852621698480356494168001301547275470228710897657580725451189432136095620479230545329034346050288560411402970213080329160091571800768878470249856668114944566186904466600865818646995721541697576641528780037328424259547172486128498425582720960635776564864448639483534258374857535240869446797297232696408388951564327175826393634503133876101696582392815313996396185069914479983479458049280222209799512780248044600943859414340014671018634707498186102269734526427665725781818012611043098459507286143398127122451876107103058335899337387099857236870371506637026002836422756204917921745709015267268463741306025816492310596438623532541783308436817065059598629929356706152424558415472148895381353581511448972375795839611067189889822611356972304549175336857537895888812196624046967223345465294094585483919462136390137533700127094626334307639046217890261445861657054767614828306934768183279994184023200518850626389457568435651378729994260921044083867328394997807737775198977412244470180443459543880461246579213593227124809138629668891958895118779456936484394509965661024993027421995126253647258780540379919734526935304684336812337086001335738005806448213204027904137918677697931072268029542405700956035528811321181370533874854359010906991240441760304749403023905822026876002856869320438467140374687834423527076568284982421086558126347549272287024857267538890738122579001015407509589112125906549401395382652065534597198874587249917676493643972993909692494394655574643915979342080536348705503847179680272581716628538939371970801782013216865920274665097963335252532393383384455383164439911805292068236704755489742323471833755592319645757934136503252217543860819536807427659941614819502439608260252707801872939098587950644031934508604504173725540896154542587557464939092764506492596220150755832560610813487603532508210643270779809308444821048786817563398038617237569088169058867703664665698642256350717953715642935933465356555290768332305242134811544049821023627643813286288294737104406302542867793956322906004127847530859591336347800410876434336730573003618453218134926323536424267943134988470312610247160137233876863600976118388351335562302107924284202387466430258892823079837086962519023379200944192327576018963944552327776378001048730265998186976605084789504563560803751381806894529346072387948883621335761605085387945779460426335786494885717824995075912487750950226696691223470033434171245047510284672407349243651215141320366778097909600246467726988054251857186537074889784302031474534330636361598561506456690988925635317393667852769596815288256584651854995474953185997191731057821716591397966204610736157058359678182393499182793239482613846314261674417915901356950810018426993573429913306301420462617911407340157717392974798814374038152653429233222699953640367856314683111311948060999058921584093927911010994856995219610639874607115643564945656682482641738703155344391255824413754583042702028195193199463599985431130806671754884118534736176782958171736891918319236103149174800620480351217548603406480144401650234938955278399616039699835567776770172021803668519416053869031868942935101607100264456911081307219938682457138147122037407181522140344350025528044349398477208446284426291438514540517120977506287204207290759165207416731593607953234086853010073447092850921422291974128095738809364720497100908513219368225288439663700006060916280491097612200969422769715874857511815327977016109654521817120827061969527864473451073251288065250874599200463587317819748204525730041076436962074552807830179731809665131117288220508057348904123384979582667034208754242264492845416990953205458277071829908306950329677917275573559914411289805376437089902340210391504920963175519078174139906883160981148835622843072265406688673889806668817912099466714881893825086676654542824759250646883088977408549981986278923051537561339961174831117591151300680781001945549805055527502367587620190612626554050547275269269267387322330794673496200458547635332195766696179163706294130548348384887504775873893914085890980550776841429532947648589922945347943473854280265458674930670551860348712618380862780455014940518652641626528175233866577993222412411110951496783568173289332281410282574805370983620345454773740549513776440549937381587254713495187835522974120489023214522822250320375798984194839957646889030171947791054813024579863758015716259347304336076124972472041828517922762997518989593543426407455870202245986969745471700594541999174544735563028774280750305729243221082929272563174226475335450869494775221216934957201009483194369623053044665530887475568432792446589234869233595528239594183587750602356514446190735463790845843245282636585710805340640830001381200484418544934613806861851403017568107680676847319156280237984128336264028158596993703858890576455258770312666058586921055849926052538447127846371828443382606872934186000095762507082254279422074073864766797184220185054881612417225352673890822512518589000930096074496292277588313815022489129699168964256061627708645134918374855717182551291531299487894827914684604607583291369948714877181079945629007637733650782487677524544598204621124966586859749954512692897426034163040124982786164294760567126389046869240995842758104805170328358244801082775005483099182720370597631672817059339135971037766974380148964749567856645428131375367385733012483812667296620046369462654336336560672921476882992184290203990495320925849865874650469548195697498890287817631112673361201632506085892722562162563351204452539853900280619169193527327473858444446894596757271847377705661149093587651965603045919199534434069273657430819747563797898583088317622168621000021488696486589737828406392027049113650218865687676738715533199241769709026289667612892025530919535593206164864039850668192059699453534107023642095718128071319485183696387284667578161665155809496013433818812949502037092746456156314544232013517003328789667186847031213228473069602860085396665553930179485142632650626188336002319034694922946443236678756218972821518402011761097774535032514612165393561109290567869929087164506482112956817227380346568396356561523363981260197360032900781512648331492114219816383304533168397338233428895427599887285946678373913540916077205003651996686189000698399917658325490169406092216607908018525965143362995774765517306492856490542056221940217945444613143158243158674674785080984102076794371933479213907119697936200199761381890114161748880666196876753110325573451079443711392398890959246066596175168443740190920239668249609133543639562256625177223200169687693418920667835633019433706977756523708065386216311158095523945353518771888624693363349101244261747639034526696384685516267682818208924275081830868174426290875201855777121794128486458336992172790200510506311643271634487290622404127188401230692636857001240251625075841463725957294963479038616278693231928279616944379933565285257606545500883855294089902403857955583829058655588392104960707940837943520517342938078002967922350105926193360329381937442029026051679661525636680213520137974464358492664142877698339789125629391778854606438301496340492051655022268883109464535981647227448392355036133663124494961811215708033517670756463889585629728472022711609140772993191941131883424583934005425551554798793739421879398609668011494014464609124076587261105726672256803100056838918992209003909693514179095566771021115460187258993859932105089054088377722365073630021030851328512121761311653304950453172576938582152135116442917652003499146408769840750949938200171535807526711116447372524533069821525193396820964163204353197855921004504879124327848719976324009478393054152585832592280608802845300339928779954119893480648269092494016395374829277381619021623054336290391180880103023612093917397813821628582326080157320938144007947169203508093076805238163449476286224049024268854016723888061542778208782531827683680511292905090952322474592163640014696914921925230948373816202121334510761174786010188743826670139234101731669164868046582012209322214410426946950094465259212853552381437425112727774330907318090574093919905665074881184490732016566413188041199294618861063971519787492884713468030355913459427758699723518271023108116327922180557738108845027614362808079859524858957852932396410308086455227570252832412565396008610308392604545760997709240031255598590004445747526806107151510262151397514889392435451269665824141311806565395860963023110373358864848235146914880542478545950039308514909951412978262009110494845762739672764182989349205528491502840397597707765430500329540265722634633598698635695263913582669302982126863434805787962147146253339755414627372477731856457721128685273015202068676285921265024831244260840505513346191580628036274125201516681518334662066366354194461442441176055934402630169804588505497234210478825083897109355257921001189276670458430549389938028697697603404153622466460548664926936060848927002212223949634957315020473410888807315733153185096396625840534628035113177146522068686494927445844611292696099761978957936888904151781377032435675347047763358493958887192660830420123770266288394384137686524540652450022699578188201881238418929736477044799962345159487827110485842474173419681851230282330117339618411142246686004961456014352876297774357260785553584838282937501083818807963997904272098508302222925074277866047032585987589367899463582501684138685022464003896407746090168130277619421460633565404011963373884152158952494493337254243981262280983275557627529331549485245483500022001255251849656287068664008898610449254068123826397140042012723645045686988845340467966769860071240566059446771041771442193766686208391469130299473833185822685049820626728469573755176084743175418648673485325705046726894298788654238038458878572380292812867683465190484933431262335076900183470459106128302991144042990435106093565875735444907857551702246253644990555628853447985682622798938452978152858122028614712388008366320062969543657465742013192954458510607293967676241955468205139908287897382872807309549649296366131858676713709540645046668644403892754739315872142780343366353769028418680220471431491623860509372333093812621047104717791427415297140136254743999545471602381390672605451403426127605140847449024233941295768229560967036562301244122432347293535059418433044009799761402110920095095451226523883917941722535465878331624264442140898357068742794379901713081596825838680192292976699607940767175828680098045032125333859146132856812954855807050820520995431970018634119691654456873337797627488678781591598154986461140480658345600571614132682555361966989614587100641749711134909443664033214481632144020296457224499019907648065183352656456776723496429670973256704572413308057023262606064235706888647877423609182465264060305868688136813019903694145714770486386223003958657550657377295764659449065042280815037487574053048085538559982697927156757786130067429850248422980239348183977467835928704502739042505316659159221248674690590733727459413473283463830440863673537920666282297345905985224607387261678599002654580182823969097514481788555489856688844359598069377204468034374502576398414961751737729348229776771534865583597945873789748736250565340169612782702733210848223405533060742994569466795068150745389654334493008744712237497123531055816077464705045999599016681739003992164062125068521442124165947212724279107851947462158323614913766208852996178941434321947832241498008730606098698784412047264332720673963039965005507469130197224765180885255590216446141398144555633961291468650349274611873416325447481349971538407334441203954450231679082747324495037193447007771533074720386026282467420636208831478844154512314527825809719221398551685398536705833124595664443901964168667770954227066326051862550736960302865331556179558941302882826551607625912958952198659388303234285546588202998922131737026644025324206757974100709273863980330387560820359903694010931080811127918572290495239104313316657050610208607323114078207773815683247159491455220348619540732810612519958192230905416023147901472402522335228761408142513782110176211648805823494037426326321376295556636100509708311095374709879578700341593913383922449219123268346896756270949165634762941047035661826128197788755717068979950744427366092425286889458665115468529032613577911899861046192856522244780898273272622289186888443976382476428528086950985701988496057118597102622854931092704383141191259650439366687584394327168091996715546998136284666304174358758652009281383539354916024709083509044359188446961202547379763429587422484366062097178108177868616620028246744363347629464278650964202685059096487230859430942093381337917109551823693763530887811379710959287232283482194088297664120851224640987753537460062798609649381461761895129073054851156392430879188669826237249774015286833011994034173893615650176411566895621517668847431505882064097043301029134177761895657064103825865930585055016902991051175040280986082480272601741107820504226172926922957787242282991345419281940173352095571357749950247042048916880296219521008467025477974304838304138800572019602350053131134000057836690072373785396724680523646571199487922676108820971284607114581044930560722503127743041973517068574088769357833070344024200348896108725595681887208638752680809161401528011332627918129656560334163936308247784818709090543890598124403162132598786738134496499131621616112710384831455709437498130298864429807320643027086036574016833462540744885118415411237156439998761206103699665130539941842896397181476934326160579847568445522588171148020393205350949173927516102970865926077910438106387967452034874439967479291811386697634134348120977706908465742202515947053897932124244805144926524942803422945722504387869966821176241404256877716174148879381681579680687221108787919972674818793686376297180094525130137838702815657130595433322050704337224160430504611645443229802972276061312261734583133774543919144656689759333968881747911698748267644722409957787862848882473982520552844721256504988622790046719856255333733070719468639751238886301890819346529274968768986473161951391373925696288135069486123553701012459657819302696456208442690324669644816505599759490448377616210497274881932169398901454186260732475506384024528124746282523938340205846507300856771540309356825789736529815272794168964699742562181709514720329178910416426898775542295336317103282582290638302479654050962888530998972971462483733179804715925093433585465563263385188549965040599923100689017738338645643853420944973677844497521616160910893156687935523201899930247546647951507538927958011496508917003343441441450056360500446272150090778191575439540955465261673781357685423839451602983693900366568985927440052087306757648530944705564401603520034340932499778166793293334020328425278893089658704114653830683937890472920911065029268614645484077129004967888020452437798850386042118339233272233833754201430658310937617770464997386906530755010210435097695024623876228800960821613569498272237021756865319177514807490523770985323767390013152056565590145912896258245249552191817938377497062701486862112010842198869758344223693381184254083750020427543998555352630066652947530362234967136256924990544283265362206891970004716220011375439765399209390703643903087651453752585014337702902328137408539410944782681836425873350465973973220598194299970189078592214480947651624502930461189879937670509776503999665321124389771111853336494594244051759770750078303380405075402718069646925992424193344068393921759846018621783896326260078597085615162723249262644584669125426442675522464223848436746259981424007190914379652973467576284325159129496838649551384801860345530088281761221630650877644832356261757543326835516588890959501520251079250535654862746579192187942983403411877259940417551349439406467673848779727454515833602895837105805653228005468327381719557158297289925803333593695913904868733762948996516378410866718321476437249311808209488281636946446439420383826477899569590105432379099021838580919862262482887253766937053800299480759666610440915998689933556284447268657615842298502202009666409513931951768864101869256062589121401545488629517508420352835461542057384913352047765419639271249852312390359464840331921435255101676275228406166830100948074906956749830316472888974273678959312659595624263963274799751500417999301622712325089971072602013584590655077490167542657554071489196016869439098118314756334918593053873649005923570188082730094054885413938039703264882954171161562439234831935840585472402139605360485934986024086245465535926060888468712385364345376832412490407033318279129135702144432672297572778974511805733446287835164596449893056349617115077407843449340251915985109646793015000481132277605925878867506388352262484019613335438152983054892431849054660699086758808989328350899465985932472163077788566097109719880489798570712252514541913744022536839320704757782853284307819643215967941176439397026486876834574204406501893229467037358468736680454151632675661766809564962863789292187318895541880288917500474908029634814641907857241662312821158043059067579530720581012574317980515945415888489737745888730732746767483317050794405609641091033781366094462277991235629349402479955671888304546988976517873304334872877501625029819050326138034745367385201612800699675768227176531265730492192997320965355746982745133021010906835560547780592872692714587239443313913953615214224787177279783208644651984866405762883065188270862306700700870991068080808996126042263285767516010607337294673760965908962209281114156479274957176387372605181759219648291515165958325898587898809167875186839236680145302559448115836983538806336908856335587975924765059359114126412090582784065366403330347306934081220204997444920981241819631363971211671446282091941368557132278311067140916920710164439093710250465219631331347491717591145683469578023215337829802834138396849331058253440062153986593328361904452411471164465978561345716997581399268919845628212199078165329700393146819914125446460222523944396853875055659577617036311049962094168796553057551370753574025599807795020502386363035703353215236278601610913267697792506764426171828369345213986803932998928928414235970419932613618581443495330461718367435107067801190075652624013394425677606255200967439290961023593949844098545359120003758672154571555552146631993674154509631158562444704347950902731084314576972086855209225981316436875745345270005990280466829391690517605721482919069389301090985670808028707633404898740778638406131479259908031184722620433695324661753070801299548993393320315169587212833560278106577418951719796288431174641170601970641206219594149345625274845551021494585156689260982730403984720327660169970373249796631360858643580171425229406574753967876340392279725653059310217703809240455130579601772553038552253190991671603712355831537165787517172383713703500198595269770753586486215736732735341515200749936607360507501028902919785563551147157602684677818658388436831920358933693052189963900381762741858909244899091484732089725364044465811826360606988582953470564499622582252901078655745334089509408899164773692073561862308633798029125908032353811812592182228729630058317918411427028076937752079499453203292021657352505419734244934761964842814983765154933095884830806580672310565966190945947208366000769649638406000368087195734892655243494671799253430435003567036789543089630953101027822498744900370241245979507632878149372395960878080870526175190972838277984535021024161524231280787228116002995037090561478731015526422952559281761628999706016394195573995940042216425204077406917166918905491411953387959554887621855679236576422364163587022567631784382338808622375087685972492179993481830976699774986971582393602566961167392628547804518963489379178801333634624474552389013720655441163577124738680645715735255338461341160710187425886664837020361040747358498831084760731480343453323329135190673485796333999003767013901179144128200112188109293662725846571695403526780587414584521462191384465024882018107886495612363461456241131553291321317707474261089941884385426139391487346384130815329745270104800631556030100099345339877287674278544134066269724249217736280757254994434960918186756154461529483061609847000042582698798431717212493967640416728797523264618879360197673364627720823733524062080496774170034616368244703953506362849313270432580610488936956774916170001059725288048872908379720486904301480671067328806771135670426927083043715865171947585598810351963828699407632965619439653091735097174439952462963601059802464630647835312617458434321311802016969708319518971243677035321939964323191164698758692149491258209389973487576749501899047903780417410215226468168215654305712982593459705012262491782527938550521468353437748883636036798496546338899975261137725323407651784446641254073405572593569855042131862188429078383292198581011375444215826934377746883465948562427692110493141191876915483123615916125462944610838975205059955019555195038482451668626330842792190411222375353883173126308202501103642540219661068436451855182109230725138590827502442337448782802339967179795657658397894836746824930970938105952817898778519177905899008469528908821709251556223992212022392441710155113151971021117623261412503467096365837640583826251731155031397944603594695550907766972892998177965244520629568253970572954960752237627886670231080010555598686090409556496666191525507885069084940692237705598463460382775358492664225260255295186588355776462249317572884911770532296664524031639938794215914942613593980933483670124798177536302323480825543995131457586648676271182683467181487904113469174815819106619855357208393941140743289384165674098275099180634236388169084033670863253572266793045721916866763571593108661015617097449902724866393725376962368326310021442021495332563697136215896148140408166547082801118100595998038540321691779951792640598208151496649927635499122085158188122317860514575011602379349778178578723122720068612401595142595657201798702989472620048366139327162162258287584142224575960748035366711702070694107978573551601350714244814038803657120131251001180884787344639649488588277861624966093413077214819030623676626483442210702870364673683554331082302690388251180678412933328425308838989058708390076601425507813110684369921785374461175305155800521234290309383368768200373244405521191516209549329338361084904461684018778888954140978215950585531388029204713587459921717718094027262374483482696165066619273583513199956468922397414847150664806842196171698549729620002097634506348027916063001442963100067748937148794623550826272141077793161453151489287825793977300237386368747794464697318157538535822882965731524233994172493475068622573904745948310429078993910966746995894495960823106741862608017867627275515325034483349389099103335892679396222931171456884904072810981448956784038081792885251178860299989330839548725189728609395670552530839509997688665639365736915883114329322357917849125286829891979672868000186241053650452151433183678638091873656694182358435105244502247445490752949662423748606707209247847893720714912761993826396295393707723300625509479410644227797843474097280102442696091230975584179039102261257075211926636815727323974369138576362368986141420848254645168138036476364586875839869180379888335460341900420549469854532422920134165782814124851903668618563642645676374503730570775685046170681017533896249473563078331641598581707085147070228900686228835025672386029229299364187703509744749696196392960223168237488273429975948989408364999046992891414897273185294188177253928096173504595750240697769824851660847957188783424063016719468588791150439498312696217852055291545436684835779838291802136091621582440860841056592202405225326830881399493952283111550691689239235140121565499563938603063945112098549059841787306663371994558121591214695587650529388920371247744436824332004942472017069448932304401252081779267424981256495626606446468098785956003923232255018639064219427873084814695066115118642206363355282089348489741965026798959257256197685386363530774358128695930730499095442538277895857772618390736878931901466393332402815201130797685849466926287289751950371940569684486768749854020372078200272697445125612396528077408166280032624702393758560618915575397619399079374149159688102759796457911517134784090838438238010922003206968929108855055105357231334932945554605000081096973719342916296960952422866506458434298673619102716753163003213562217809703015358213718456131548780294241043814273516775916503399255753971807573846301721092462769765065555505009182651168988667075359735885666383821771081444602156201548195176843208749370761349363522913334194349636173749158867268945165530689140120505312139267305092930265060881457708354196539667272145049427442477588113171538786629435132567950233785233380515139982427342810488701835770765371665623076371309305528437466405857113956000369928824335597787074253713818535806560447309875956376583742708334130554131444652776418926423193673141238815511898389573355977030434943031205636641963254993684863920621003955066532596252310662474364499668516821020828818207109406398411072578287039658408855958594901482667422501681448422952139460150291537036208959892921117140559991000276182256348541105237169471638325491569922943198505096851116003433666544441719758017396379948504337272100921447997894317339383807234656098064269921600987674551021685688529250196792417275529928052264147567884312416924434351519428373243479671698917538559514889475382014982975513457722691295767171969534805580632824939811400370297988888825934773543061769389999794491965318310564462312383099092793114865000845488078621402403283614033948071643109863191563152857527354519936344694918708020221416060709825988210536883600092547874277843998582368639548657237516673429083969008224413405914302726644231748888858188479229447219080318540633236211928210489454504713428875839188918364886322776685042830546430294410203419244998214299529093585940435046496128094591527658374557944779748168779373174118087885569633002322255105475295457181565658540032178529717089253812621237598549212497600001048617524069655670538286712019134069732712184480486846111819694946601057795328069781711535506535374889165121393362670168965260478800781505409628608475798344466015301979756384522656154446884795493025204346491310069936803270186231488880165960785302818029955464772643769933604916795420241612536599380745540582490604372169128539776265376702705779062955489607482769325404020162425505341042587519039504220707415074381239778187012498626852771314106527345875446511615711444840064187400782956753269201040004781175536987014554338967034673498983457528183397615187640154812868158853550967236855188500193398723237599485506577824696495311073732673186777700223191674919773589870231833720701192073053882600585761148473333847913262809054214010139580012561804681071897258321880745651629288239156267154203970026256013855692968990583387407398007726944929254700684907589573685837724061804166174893866041367630664302163648475342597486545285520085915913024891303247325566149583957370520283287391114224012816266124853124885074488353714868819276843593286667079091214047579641228716272059792773751200597663597588808666506851431072529997978365277673494081086687504098477407852898747492279840807532523100005270841413167867731115281374983507895735775317230225592638579013948710311406543398497095080230256183978552273274063111063968755700923377005263514265520211890739451416564818630336917661178044331711756965199693131010452700344578548312920695854962597350665311485823311401306741559232277127585145846301632846956756250653459619689880204098812719045610260214008538337021426378540283909499443368697675031578250602994006358073569247429634795716315430144424223685511403589779476498815768148096013510694420162051317379370454332415597044287786009280285799410192038304740978287995161159545035820971815032749626767140371368110226166515532595284084890038874760067537962207983734957312548284697512866495167978679174622784101348021650920640544418048033103802160905470561851300584314595877546967562767538778569002900939401227725478243717297664358870864988967093344873232648249643947975155723170799771958500992666959048035094451129487634617244675965408334012244040489502834615207079161517298779397938042829314537469799105078728854016532014669521006849854220531606159794042743792246433421154321481390957469182715330795327936691358284158015727868223111638805327048645251892006674375323309759148442076045285462670944426823628981628557579741951906018259358439731436904189047373247707502726640516436758638349927068479478477662295395200294475873033581513447415068348295891456347444675653014571265843084857244499613832826153641017970016598695555827348360025702097328299723481758354748363400782098284995719487832120215592738966168854976174984725367370153451189812996410183975201239159321489775334486050204302273702576475692550923440132113994144409751708956494889590773645510107534840308145173874313149310908489686185354568414498718152073475863755629244772419279654496207273324768659417965943200389984784708866139236816143754072273241642270145888475790812960824074317930940587927642833917126453703519557495510208477457084919671401477971265970017822749167088433192860782841991088648899215191984010175062087535964089811783971431558700267006831667566036143982645860942955301015982193812131576629319157237460132358868952027264626737371215155473520487370674064638120372798640759941207452737239268879085479113043191308159053549178822061888756668318365546593541193089216511717881706078938995274128698193258658095172967028121972906320887061325485627848311309555198997181538205320642029339348681471056860193749254776022346293126965236593741815499032137863300680246886607693660863379471386976750004698159766198685347869992409887241192227115987954054972479968629084965990357047266959005437197996547710505799008497835771721962195233659199367707381680668668844869597854303034773977255428376061077685320255646360356216385941872574168392031522643916756630085685420539646265935153560387021820498492353592877233944257889386685056435450405076515968249935535984992944787072515112548301092181739421543265732367236617983828011316476758613217786843739633838094374119220210896778879520747288417430374667107159057175050160177893564279956883817366642127354614760441741733022365127152810008953367088196194348462473839060155834792427255659914113498120022698084609514347091688719010176145586131869719589543412247763160056535781255725269208649167204358425607678409870314674289985705625249604232052212920654951494678990407471896100595466184925597673457790967302966432662106264287667100078498350139465588781244489725371671280583385619111868461947975756588752822313044758946186784725604210115764152675469441393629141958770136146359121295615695434449302608246538154871979716961248427262222236532363467502996554257336827655966348940665570125524923225522163023005813319501642485244064146180305016654009562648815395633902790576223131977906189965073417306600775710040168107143705485736168463828172455922618585066867587558401932261958007112955601227847957728826243560489422558229150527682516100302538373271069683534870399440600166683061644226360404321588540678736542863443340831187717415260207816509006000774710870407372709100561892792732596702508007476246340902455578020899250540838172598167220355474438281576309434036604447819167213521034704109575039796085439299398512935073056490838564414339727937292761847268217544705436179022040278184804846676674770660451464806737087386487023762397887804661930901588753624158814836754983071141881516483426105788792319427532306983478883245295878419770860198767144097761508334340049247305066684455306362432816523491587463459711468480905202135446445617463747767699262740418394958303719093154815179776001032482328815798616637906993844402325649576475011019355862349571088992845839045702103118261821043485502462055013820186782285460874659164179224713577531313513610259048740765471409679502531643613517779564297520710960243963128454089451388776535322170228335408317961473828724247860526962329229354545136179268830765061590511580624397180386945945066931097981998996869242931899765914620314056141318091238281942183713084002005310260138219334038343143578838994892681778474360414431829556126505572092621574851330355577764380303728725695587573490384249512682690337510013793961244064284369585155614128293621110904715604722132892077378074321960895962046989009419332400042640523683670375006557431932371245110176361937613318144974269465521968221901038526911903738442890180829647956858298798958371279006547900901000987555771263198253661236214930047878469742243111336723844532675712064722116441289455438464269304181600152434065145494797839398410949966921724692010531203172513530741016667557040290897814972857871264599112667229797838448965393212355764272581609791783234337880277627696387717988183373702279693349379889105595286118659315992116952027540321692550574463370633268924712821090293279390326605398514201977055739675250191885434359945407291166205326798628551174813334114985100738842880642800512224470478906647240957858385291563504240509324685101467150238977681298553104593709755914242809407141195533354643755333742032101554690694912279888163919636684251148273204387274861187255926964452567455192518181897511459458198328039079537508000053428433939182562505656018587624931072805255209080087520652848421348926774721508656792224693032175173968635889954921565062992017577433518211041242103878327533355656702911609737447800652604020237899644974692018917794092411581059098586383851624461341994926476535551577640417620496585122205786909497265236197373880796907696341521577256465705455675063391243432128589827212244974520658659458988805710900509498876532350610738664301859666748713861587985670648465966656521409014623591375414975226076859699487168039675605452363113624629689955050249501927493259036881442203863064286712956579949964536138350037243736527206333809023923718623293325328320441818506351545205097455994493870963411518570979940778908214665420876839768867663463265407927724584482981630322629956100705197733128908103069622686860304724637323556562289961437761168481700933268089085658707316212131985577727498007842483524421866188914552059363094914025717615125648110476546769191406767387253878009497083106892199646908113003063498978939147321351034926265758264279062750578948710982116495595102894713883819370024604441046560231728386609707163227117440008751290461081336101607617620852100172615464136531887620508403163238935343241396817614964680633304325462596109205186276880329081707160185204760421113765815097988538050274172188372277988065096463223427448320976647362989007150137479197256256406884088181649052685698076187569490990248994006882895609788101982479526282321933543171497680018819835632431753028930631829623887473249101269660050720315828110138637759323634607409641471310234707715895546145048828865200924009023248486104373022904888517896352693874954242732107044097516258200778058144724260382192676673954887329474258196425670395806364141266519566293940669975782412646307066097685224847448866705869285244204264463923818180188799657800278523505116160629205866026061536480831786906041999623196072871861004699067865154391317526334457084207087983622112690996732614423012064638559285481621468014717453145776125450456690641952464802456368009573522013163192887362615050052976678888196395846104582093931576182821712705844318971477261455365890998658147431420363630469530165572715492374686429763413078566180626251172859370549322541255206691771873483198758807616222870279993681608792587467212656281550189840702357432784405078162124090942595889455510094492063955432709331579849685254048817192243104734672757688502483658612281208147824804462649481994341599387897109065026501564148252741027347040403143069470050125420712370497821036808408975631425699234699057757151035903366495758558648458192013676331538987904021084817498517456875525138487128221870789874730226998248569733401619206667463832470708467145083511299573206787820170644159338648477793667625494086590624330526047358436291671712184850717193467549235229741520500240177246279733101125400773390648848714601634121546311207428384870474793320761569285620625011338323555737268458674638641950373268822237838554825252430603856082830607714144801069994473541422544076807934029398819634473480605220776970846936403128425343176943814891424555266245393893222972501493362377600590214123582881318878005102517591160284255779646268050894388291951185047935702881049480144851094650557746838770060315275548925442378849166523627248934046787606691175380989121414108896049503069562059191519597373133387564528207689330203811584873025008098274216061711517575747805644627532772784362768198138659034382318436888321337649148486765181947665995321064582187952658825241661615031898025163864619410043468832191818460415629081289208450306214636467096381842993768573476114860607379973813854496858182503582113857506958578240046954949859299460724621083434788832807436860269272388790047142660861933623549278772372139541247960004231346577119370522717434495995448819386586250955821868812661441198622324399832789264497369325556554197760974837030122629173573981779549453398055350153783532498347156371513877647560382579486524839445928531196565926704259428816062831471697323316963967647420827581199019371762072369236636088134589083524422773609061213852858657183444968921878461039838876173884427610846848969782091330014502434314720754825551820069192270018553657680492204060261977113416307214913190527058646159517272078148117765039163736219773700265012325669915319581719732406344697131880997391190585458336797605162876156353608405394202913803841365672298557992280698123834133700106495190384925508643353882675657475064863147019226024761099698206792027702232255292892105968999775844383099907090358849209684508935107180345518821682632497836610287506449338996186363230121129265340018055089465841253736283041136002534006585850966608938104897097088531925806233768922703731306859923114288147464359135738458642683289513342483677501744052031351424143402565878478980906746464901998794212336098029145008649480496203071861886344433384328837846059987493098960710903925165500235773958732933269582386589986036534502629218599358066008318925786302756798544276935808812519875470243269539765620492272659403973541375697051740213037297687161399646600140927596664722953094412112337112132626554303175305296299528333422190455957812468409735405402866745170780736667701037795185794282024272568037403856331752118749544081421558495059384508625102816386438749814513136990375658161071800375729200000838992735283588578572742354687190554240565319863563483213179826221745621016727366965331534814377840978721898301212299009993344565351588443467005450480016008856697528309683046007500037437074422197337820499187207735296210263790572147612994823905131364819561792203345999357252402206645988769270955985470365327503948288079728649751291180348210439425357994857949126329891229032448714540256386537419006318426706366483589995614633297116123324504019013706920529994847939507466538653377693417462068246580506621716438593300383435206510269144866090358549512701813413651841078932067978551745818641927268596262915858722320052160570481912764307170786152064341396939947671832029191571376607568469066039396977232363092147173750325864341702085773015296878844558267762138480708226827849697931238186182156648291933448843397153578443142026465104058362985889269474797743437271638260157793419016082715792595246552999860742412834532402405763271626365023778421712199388768732153195118879601533340175137065712779443142926402326244804404036806474511655774798788781498316248465526553585127803306167550498190328555849736120306461348643940941751697642596228488104522339287556983384896066568772033261326041910150607835101762902737807534172393048268747091336311890708237154169514108126325883062461291906866879389432136820917019913830762565284123635615449593510325110164494336846483500511015899953364068266350015284360683227458818283975953694725750060478640003321373485156291644378475486793588410707967841139057125303547420972057652279876908213409850616017574097624093429732601821611316070348052549535125219863336525632750809303088089293415253060775879193904513291152670642104818545008807542547662939658813475182911793650816918555522839651963229136774589444948207998584737701268846859906415605795993389284090604556331392757014377351718676011452972296256053974922286115984568577115840461883446631744382183455325498906847086424518531754912731981936223302206830609599764675207686091782462135707829087152363580039613616753570153201943194398824916502935259166016390153006920207500276903785395629982140530497341991117225195195587733931117894815067472628344922456522625002646952635636607209938402386441186302596211757920625285599092785393575804890004498908814535933038223850979814923561594852483950836934445103230208113839475912958935834045863934427623227685374218984943914627437997815796458271624970441181253923048635049350843472359892525508226972199346770362014641904994956248565536026692955520666720820401195097232114037857800606677423108964338837454553371123996045792722073471723799585623663829020490848085827156422822383596066669160432557444313589162626435501885742372853128394098793327211178615931174983916423549317221544801479709449345261371102207415540703877411584163789769485488408950868610452636625324294967867506791605583071264118746195348926115388124593178499161821345066006241323745770706215040400170764098374689064081386937593310980557334667871174109846503175581321071066029325501844889549231657083423393424870744019242964949062402538813367418091666756375709515756812858281660701271813654815618334700425448857840105350638486586818455603719948211498727226503341862294510209810392096851725213183808519715533863630456136380246479887604241772967398491676086905003813176183535944001120387945844945140533032302010971967146227126021294372484036039315429282128915859707974430094970055397685454285297260729878413172764018954736559146604219441855446376816105017801933528938303693572159045070436945888775439971281042212309233096177263400248461197711903657186990202980019521414709823444160601280223668070958565026171468191947747061260440308020507373651766804059288427331815810833405858844952612698482868277778755833349471808158923869939516690797029293762133009611536535065811424987029485629029624460136185863274609572320087959062000076952272632033894038938145609894875698784714939971378513835259365414875441439083091054859617398598460959306267221864676023009730165322135921751234741230418957491210386153349838907894479553696498323091904767470473036565415482937545139749143936552038712780115452856585731997289288144600272917040185269479315509084880242101729042108899847889426169333926077742085518474293515033783352298056365774965315660981117853022938096625475579508811003661388398321097325751004330618254823417790735629033510000620192823193464521341678265190830656850530154418801122473743536607197306220421441978229950666657330981864010944695106327208812915794638152378266497790033906643969529836418063167074005692648655098320206308611510313446131386080215859881390761676842615840932524052719939018173842678824627407515166778178671957833872638205022622686887162897141092623273231422141068466866851297541419099794464866817900545403002121309918886481066349028501975541992036768539083129940337309314543101366890445517389421864022477533668626964183129820325563971965743138421360745895592296891314290799158893880381474921550139234175371013252332545883446773521342198282841193247272783898365525630746588154353992364173196211887906076078132467747807161680363363652723095488889905107794724683332726264715217825020759384825742877588800265681601545806035394913126936652672606852533625207432243765392261783250538247966263990954932111340743798882502603544085123452235170411913415086992507104534399751026172179553869238124145266972301426319275185734929755725738537336957790738928430741379720830223687447393688464573968774725277870600733909530964615312399568290861086672384348880052620961431072533156212608868444288710493371634666595201874647092684129681238906072964288087982761119001690358847870344718809674585815812102174094492696189891861017216725231793864278159638791520985506443103849103727461418032249431672949050432813237813127234629665789668723106768956171174841600405238454660060211723598995943997132662718142086717247113411818506044388199338205590366883153973890054666599632904679142233910432659040177163835291042019936063997524929260484806657271282126710902364920052304445587188298014098376434164904454585886389801094559621703156033716503931302620427333910556982288870665778294906468733075318428684841429153093167731423978786650830960144507182546239973144550975530319210055408092328135952453659222915125594941802991200937541618171597099040100527222701034910461726685316449812849254547311073329568937323312832732312474552248608335893373925074379143807223325771438414447037484644485488845539182174953393885499672251601868668049647619187387548129252241655248688564782785401224265956527639060625655846429260169658343849356100270780105880556692708579177716516659884664549713301315818636609626676720681281242460545902584179500841734856823873582452158856975023272903777720528737506372457810465229878919334889158439466957726907380145712232829850643942321700822265017614174710331808008197825779516588806699998601887021620011734139328251124297574303384134074507600251300081021095611104323490752444589812447362499356244732326427337801656042317116469337708241885386502502294417777906243249085029899324692538288421583206689566531732132676023781819555255786260513181914891023974547921709754346163070810070002663402189154902982137886068713666596617590711667279460953164295106428271630145529053729605238904276600464012810389873647397067370664762055100587589234804067909683542882141642116605587153015742980888360471735748146596817778281380691791954584478317956555281459483143626429439001509794523043438374753081875646316979728712421904274033433461724380445309368423243808684224637737907497827427958545010548132953183166731983043484840100581558323819687667863568739609702220746096100995288534837012992631252129774758905667004118322321671737896783682253636587482280029400896335496853885434617147131126303028057061339511274003845827125666484085021239009273459545490026603018201645086560355941795726975817083845215984453016171041556197572391258715952117895573599697518182505882275839485449971754539532104302158634530244180030368200853317832595047757192712243909778511542640771581530421459794561937694921177111410579888971940018697843269182134622290326354784403285415118939987488395444624846281650216386484741431812243526019279860455164942787039325490395360844412144201047277304152932958004895328967606845563848943639481103932258536571046821195173745598997463854541237030019195644567877848974085009844859193276669003829806958332268025484957120550205451436139285755946021957387385786625891238741556075308733894560295693885782644940909860438053686294477374856823353795199213398878386338704845512094851643931999511527362537579671990658472270493979250077878983770949453602717869680849801104170071253193795232392960771929997423826098668348055343371604088068163815548210036322196711097518055437911387463721989430385285513934871434711615708429130254776486116430853829291135774244534951227816728227997613401225325295978144997556765679286442278100828746902512752909506830544002400760732855121965579824289602949606168813954194728742692130228722687757295174024658507507390433353056559592160116876873119551518564757802054948308899115758965306932247577771743060045649629792157502316664279896840701035294169916623806638183975779344470162880138482855848037842858500323735296262469475309519258390265046812248057596872576251185236127846214154335367577868516911875823730937994983075558743164060213688940249692714007866035171419252567907389206317866617199973605473986781819704032578921577871862359376938007391201499713247426331972078633577264021023439551329771516874755419416801216238356676622135263691448533064401796233610566259459671940539098554870079438273615722830376248710690924841565393374389496634739863329684283225991926484440131778780226123457153603739959725414938763710235453548655463072799532384199806144805597689167464463514569389817513283326805784369161041873952134401932461696220769697920254678617652983310067658577177417254345047348510597230434387106699451967352598289382768984704322328782935544727590047376331062304693201727163334165109569874391643318501459101465660675807662325882242657723553310485800051766678414624123954205571514108180691054707789421997719134249636114356000132123322269722660750814756721877118159670620575514755132400814868946329693337046531558864604585110572510336315461388533863105376097148204114465679183058569914903485705287115787183598259951015274471760934476687130873986029053438986362106254767282254899974475429600539103324365901546006292501877015855575131400662372310919854058822631726443201574818454051697074348035667735841193636447272735823579001739031991087009404470444274871553097517763340677379472998979381255402982703600697739384676794692405949548233132321915908904396939753483215526616359882287594270865396074142394820445648012793002183984505267456554009666397603077852011611259755377140705003622535681112074761020165046674362274056578136999564363508152172082962497460164632622908450596994857228499441538022975805852166195969642311133190935931643697784219182603063992137360364134416873359373528704341646368497941544786337063055597392939609372499881044064524117906383565268584041879221720356717708743330922118265209928669095188101618002156372797804542661996582517562313086479462334613223096284583290531859227644260990766446459734737041371910989946475170994847868268528729293911968602963825155745258010694543053251089037698402603633378169677343881944286824708367274695774220883423352955562414154131892060546386113469914147465809303856431443898714931731959225431132703096880868452985545741875959034701266981869234042802444114335084371340390110143613796737741314466937650582729517712628849168192504648868739219700750766125626266309322675555910571946876412917923646255657123022823322058486104881622246744841675163112065195231726815303825308092057280671219617805556898398061714629912856462290815845212159307341847514074410340986734744572459697790440977471123994342340309816395135660557458767094574870797335741491221541976230065842661314159718260254703484265900045975753835321632434515241762281008209192679315289175664605097458746235520625281510223420925688584718509754247943880374425077240286444641000862162838569986054819420490065405138175132635091329339723288302860585213073111674332371617009324388508590743738298307957574258252853024138291102396093600645964687724909033507295859817859123887918679209122231173943692821946072330579512716962414883479392639111050739791390148582075393931305831402143383894769375996233690101768772206931562261173525852767249909397789633327906289449993664258285338070079728836622556392493513954354987320183740795399686470262592017336163572570034877875625992139232215109078345495612262115911611553286173865804985030554295990480185902220410298347903004244359652008903696536163787260303165765689130829425810832214367416061440667180573520657124874727394361127232570366520669223006852757518006461160244619185635582438518694022005327886581130103454540737511742845853667360490180560189231671713675111434091834117409681905506248209380341450200798067397876541997757451395558984888124813247168002514378695881323982659947058203402639941335368691834660213083425723965400496937770571772392895666781301831251960231066028075236778679973198462864714976196339308225898003012818442647198531473757756277984296547515571678596613367675756218085989302332885683146968119943317589196507639552607249920084537816594359619807386226095381207175048986395535560029403667446066562451020640011078818501762923636035674142718848332231652510458619212922641048605608179072969083113733635824982539317040051688697575106164149898022172462552733370449093274414298982337107697498655968491349872529197478964497658525126819729366180206417158858191110235808497447793365581500513071310303597111966465786683148507353120275008161079970106705106441851278937982976120008448106543221185026770642754611378047729291679013049874591336732112181961130091166032235205211428356859370775452220776313438422538239840293252482858832844998126838240942601860118521589369736883851113543779429387303445359958155321768516081217431200015069397953370783279648104607423478073608897868456237572809677738646813493962695476150755225489875175866814310212952523759457082276728038414405371869944937855990193819958600794074185268326046851780125240280678059615967191624261877927026679115018050696800275709095969312960109569812684251660703515631188142089570244311027328036843452412420952719786092851805030381009908080436348214574096172066110289876902145662121091423937855586359788776656396342284757997162339819789971651489026208700646938656873046249922094543325683578584181217960453959337671321229204161220019785994097902414649181169600743382580170173293569861103507211649807310213728760746436355958901086744658977668306224889264013981567423762172015231269470980341973259872891390191422592301695583527139859486146170759293884512828438441951475210732899021937975893923613344781106429587594537919539469475772686105956926837785989134660244594634551806906150528977009105010984606692837650808052603449015675026793470134115945644483858610498447769206462287195885752661877493531051029815300127719536666135108617311160866473065528801356116170969580107756811025382133124096604218547771945338743493323589701351912058423635250494444414717302041462872958462653536079577257416393212914880743676031106483402189782538560461074015586557253618520538082877254131406343053512139237720643359792107196550578547046111129272039025876225280605526146099020624894647532386080163007416130781349365586316693054332945676746961642272016731872916150134888139812901702676393985370349466001673737114318914695256073462325484295216239259990307324009665105642210143363247760733365036647590446242823822621615242073701784053722937601707059141245808500054573399763998391175555990458367123785102822414767954149890825526224682946575602427309777944119112892908736092490387362270976693426467014205530131760501244379283994510040474502538560583010930048497783372194442477730281165497459245810320375269780605432274292916867391302313723789379364730492010822317530595511621369949138180821484958798043281971288227466074172977460388579804892880783819626084889332478449139153019264814602635861298980631207963343832294423798724991205418758760222617126389927167357720963210100813849765454278384093141521907599642112165573969626218778527339615265499158691567494099170562096189001513615863529630179241347591627217938759802869349599663554689677280849790392663063816510969295088364091833466997706609437857871388274096687424155794704472435915608475994855456854149246357086571744637393427193476952017144035619799381512282840631689521639688855062256789532945099308023754787673599554927558888768529820933822966337595783670669128941631727935041018094001337502737915396881081875719437984559346306425899244532051117593901483441206872386887770979004893132299661809797467178906128540123710023627122821160943130926378210575737283983818150795029218528046138061532431515196061575970776376834710702340109798285745192397357159628510013189930280141973425820999566791830198735795510731148248779576562613516898378467752132795195011097281638567528554228511439462284711464640271079764885780393542599365584013902540096219570392659767734976454402481072673104930993325664423567830174765986048653102503197046685261264221965130545077599115651973095132259643164282004497226183715069260493766303076949772601055166283215236178277829053314337993435109970316539023033648405915654545284219671141979413991471369677451903759463877880705763799761648397826849026543051003841665640780289856081405142825231656606335515051513633240245246854652736056328273506123868145584329947587931973844530418769913528787418306785204685941948235623208604326545603829883121589749227809634873759489540259566519064557158237585511794852088655053462921508767719434156302489856017127524254204834478262981148004794812465291692482514912829742092043105301409095239011001961614501749074287601358210041736615534363086462649036880719583019760382347979798285783841607047301876005957327606029498867294655231383160461960122225862321350582620575732086423584065005945694499496720164671956276222225793368114656737716505056856385498846554058424192372530782033909159824870682377248701796931595173908746892588222955556986532389119668690994260443024992067686779965863035736568521020014847751105232845887764111548753270167738127123766001986350361245856473971748475511607940166424898771952221028819271476549489908698233020253469291475069009921724196646658970119085153061711232365154425808450807264994735744387979443501428742890529780081627391363800656443543127902002572811842835441345114289368343880208555801613451523901704439338217191587502266043495737064848744290744466051492462933609920858592599668710381063370534050500036371530525336152145953821536584082679492886520878476077944741001344050664128745096595731811866171984141777111209779035393661383282492994319869759011452221733225195851798667013498710884355223845463757623157306138256345935792647509427102306108905284409939566499120825352887999000591357870002868828648617011137505520595697111884362330991860136198046871856298469037756400257244734891304986738574184086454593728894426594521033150677663362827351166707674125423188646726859030551323013689038639596440411988137927595194121768302646971353628032461373190132209857244171243844455973480162450224897673652538246731326159695341869089186502329867873340175556608215972247352947568478498222807138822287422275266434216860459799057804740294308967930466372823488399756952408391005558910262762703743082462503891847816739770140538760209360635920264461452309485030368198421275617798004618940444957663619513615546635029845410811268746549328257777027310700401163402759655784076335959207580167008466685783861410557804436947401500869232343339883799473424847386732228457460800559951718203084091607273498373078513315471306050630379274497345937914145440386055551326004505210091335752023522794493640563255690902730569824181577355315397008605548663564362705186644451929379084459304781794461530389545170995526820482068801185948397971137832145591261592707971168560140882893579039193915888335055853070086400167906591920458302084051021310842495870542803877882744823608133763125222592845557172054938312529765709024603852162869992920147535240256440499752392427513281006782518259030187235465186157494054624015655647927740937944771098513455250720891916788342563911539692909117546458005536189829706653252532755117708010228876319739221913568375364441499140719766453622034637223384908243642795394705665422092193911103264807404486885878507845198885459169903736223474214464166969208085805829028387202293677071897810762636897976283194041390952172712692672819179461566350930370628768220106949359171656003795637715618851083587557805094293837021040994156255122990560533284239266023220050281963320368473700759324063272724752878507151200355928407154341300040829321516121179070034382261550748742443233839017498378898400356448092377571454322273055696727240472213912657866303650653487146955115687574460892860392810729422946590184588637646197655743957618709749412174576812477727606924217791941092506680279580253775835905387792728124094877255209451095144158937578716866809633538586633361732279978859929718116658198186476804469294952141009781400562120614179746720970318752821267829677371345603425883981110942938606113747494748739787405860077315291028311964982710045429427610420940093140256117703126552819844284877477900362008725413450147486926779348437577226362468974485115837344004174693801632799300151921546837015647721802679077142248717071782299738304064206349924843399421833122909991173230941064074998997279084949365444709971181580001539214390243130798092607934995533537882689899301913197486201247893598011702557704839679637834211487455053365421042425682909028982126678777178692978391203903832550452765629100466661557317743484998939083484264795546739486030125852261888140962330608086782068213872975300915958525676714132799375513648740365288481719381351626742483358287495470531233423856811205985855792831672718996631223629381823941442564015006175347096835060462620948099898439853695637550017505115274665695006135446519240647649486402908807220585191005939519512072341431082736926746024360741714144364540420641993571080154689696347539621287863138247955317426205361321739517740866723411956250866396758671434135476419212826835788137564838394373358532677678955243199964478517696791810273861044286438670051247886037032388624504554779069485199740338827238607007867112192253876785399166273973000788853589848258955533994261329151195650840059688512569678745355637704837527935322334927488740347315632952927840454783457916489502404885602256457211320423936077542302120381307794897062297499061386060282534776231565861969747975862976115019420995734421829813818558441219353628668472483407170850748500461635520608093342160496605114365633916071089778542644694722347943161327664244896671084037165759986701587087603642821286460445936225158840514712527784076941312970922269560020844321482776591619599635178690889100612150009828095111896131442688347166941372049374036863626574821100280792619943860184777272848453819131657751083082037825276216672994778251082934284594974703161758371377777513201590003063103811172623407480978340657836672863566535924087480690017291606142229256163809714437129352427657537296972087895178464956514080319245593474902509222183217129946174398213391310324383776361326301002921811215164801120589558704524307302623137086717341663965435526765085996870858531479842818607813595174931603590772067910391436163441682164758753645130173980165298609907344218871756946628423943661656669046271840840728840156237772953214457136788804911048397009471198203734982415481626810221359865297835017499766059529159024327594775723479715081264223650957846411431485321300542891932195159114257941494231550297881007662449716262803253686735177678540797433547313879871442193391088618961923806761006545745947816137104684314032283497484900926902552324481421773997762345544080428471233609745503920955088829963438658198815309449080145457861288392655378347877566458937291733773840829199654420722596132400415487729121754028065946903176954485541089420126052930783295913605601430351403537743122499094315808469951485105127149304363779034108470015189191489014066289502306054814756307638353737587570654458763808019041398004225841793308119480344142429611695163011111067904066507165761148548023169724169169215478126565397548948640027030080468132314238569180792075785216831340646533685710292050795049733666011070797814993250312975620876148112764042036800786239094287630166247985645775536720927377754091665994483212662812038656140855024864143198138910841097445355768259489358727369353770329478666283005284566765502843654388666666943823293541839443911556553030785260689021723914585346915307576858704202257207961091076266085099662271215896183269816556417443330959250615636974937340957240604867692274769271080024377925604820596940071823519422532500937280115481354917062010196471872402904728547755884142809994941272966625218206270690450693546526821662104608689223637784895855756247826683276021036109317147939426220119940485760781632227923376407297020954561937303000826964982964117945241127092577720376620327006656965917517958711721232150101213653631831885135007687355550777136003688232509631075485974693505360287771937419335539390100387894942765119067528985463408284136627657362647719722450327121297710508938467267944780316975837662560605512648024391570790931726707676904339481389311125266082948451474166472723893875758194405473123447987620350384747997893917129749873648827743227190193643581555383257412287720843405662862847200607720059013445596840718442307830507142338513176313136950675370079276944278867186182306017725748292828696894209841839149102274651079945941044338332588179872839734398364828278174478808268839341882731386634881495609522611990297785922621703579744479194926631554342714014065201600655535506198374000777944502834013153385279478071222798241245219358142221317317070034994180988602132943536007850524041660769144365788495063585678863156553465273624813522307160992552366091858458594604634739250887725468650335963286577030983827482781320420628624280167327142563123840174017654881699681317139092156289708320713242711256112616357081917892040740814715719544170120045411575732810764363166344267569579775088556623179217146522332693790866857471089476707119091100742426141260268729776017980738361957155046966211180076272437344508343305314322800824795885177106442538470494295392679395969846181834540352407271246034777001210006290551932371566564582971789050982743154235520349937186604185540910777322614269432927659960010247781505569270277773890109148480672679943332416293468728999170638057235042981424821536882294086480727051459991036207676385874345222251022819295637387775725260578837665278071452962632539264726057156943386809215894834010120011249430090889505427599840648905666073972441325559459531255084266975394826001432131927667751777918316000433488670972704641759832698362588596634532559908460739247781574260775166179975857417491373898378445477056101417127526133448807555376260772405453082360117354243935331301967761145750007755619810472786596544812341486248408226652023517908478558734743238095003181419299872216698198116295804412901191000836139346934777702548112926257371698645118347177408545077265074542342707299763296144584698743870446446716034694331944020107199674188097851214092770822351125010463914823755859116315894820541548456422285203829371543737825272994383290100239656434139262182619850235835295275333968010550433345455743563882966439064880377005203556015546180520841330104449650105815917694583055007927130796522257283289138679199884047884023268025234650147154628550864340465676926585094194440064506390569241748570538906595573413458670018198289867429176525317983737101629784045760660480980388625373153829264764149166672298343821911184364535590558203252367936141966740619723613354416745338273061474319190018569752265703499747859004953624457468276981245247269266594063716147744560781632332253075406683102821866095129449490960282579450936803808577489657843896416535519746549162421041638039953057333216342909549425828299722797058263864080556316853204532401182221080481881721020276221925234560647991065783180317198944313335202829969328007155282086742791762918374950132449042012601336272963244021188253461794834183713229718110167887016866099575512205818904017027016475315707889088474496954804989243951160875956511533101497484919846433645067965218072513869652804735367429740286994270170960555762462967855787103788120273317904783721116824949910008814457135726396479065097244857794705134143828943502116374869176831024282696741459935379723823134559722301678410746256862280108915613064318077752308239851064758320883344598542573908003295253002234944969387766732766707278927623744016872793864800825414540473027463715849965169613025318512456249872804037886276597863090086855397191979737733055553585957096865476882357552011572475997300153862826916337008872506125605542999277511255412812111162092383820153617533775424708939586978727147237002087074987146036577528789891398987970165916017036784164414482762581326524181110518325196905230916273875635763196226609373631294395165846632328529145863988329128999098376551170636135102160110336128589647988499905282607743960696182895410842771132309274544781743960147498161042637893304921720570011923123840366164838316524669046457057361748377826501897733952128045801729845249859257790534518636798795955228134023539692462924540422622042352978202426579802065370976763445297524199340928440146156490216692717653724641378884834160180132431982515856971835679191191629498390813584788182162452480840056963557004908356783782587003995874277608076479493592429326628724210666423450025580506086888787297400579966221232463414156062152037630226548302209761874808293804142677154795884374920244812171921037070567077368720302981433465518426566489780409288069088764164646242964193047693297143347219827616851767178143610578441989414260685103987186716781920374961019204265482242899526332403039862926220257742987280983871814456184710190841133821961613103699507379117034991519604853672448324683167457617300164722694092370746417999351076040649429336254399046647922788733278537674280575656085483169458204654964841698871963017220221045111505397587233635363064926102209210893034333354175156147368185239791344227236342303094006036607129259437924498767313967228669344735709771385728932620144138645349482428638307878578764226473109890079591996767550979285128569065328977923910503505974202787946748344213424860361569481073868865182723302486314599367065209694963796976676563562103708399868287772968609240176939284995880872186173559065243268370855951953944968552320205195802088876797223294434380139811410907837353134387142776625332037857752027012757459427877420400584847393428719416616982965436487200015645623486436747822288880325626032035379496132105213633543691302059573623096400075139222337077289330774735318329215976183161344602855428014978799163572784125965547179683490694317905913438464366669226300334585706089536113690252750620403187043002019780664316504671214397328403141599778538829440863503535297423056174138983184389696118393302628461575733760383174689229933161152043493544095618071409997147375071948621322969046256241315146317286372382012124278606095451154768321918751377155015845994355657280550385916152420696080546995898684403152128930994703898388862938731201754225544784092699261613083923403294948135413510604915198064081002232566740544450166987801093989121927068751707314804983969163725932001705029449960546627602298897609848549178500750435455213241529275211097203515767781790422729921198081642942286726349523502581872598621139724414331962943748181367940684401738844647482236185702856537467968792537065111911037731565155642806816182468036230791514173715027798031399224534590299684982864052647929467886663293146635612678450849629466748943929040608513524114559880716812097306830490095510538951352789579141858109794748090073122344310323060433706875595777383329979149204070783595095561049067451513842050934075367522564848614956251162897347070836424136956282626523341947600831731441100813244483445218713595590510048722869086756636017821180823940613268354217591416192476216978367483821351744782358066608202776837821242031253126006430354539813647142941915416209667404460179437426404950222831868240556557428268803697006207703945888444287908744323218793513109434673373519475199938159103283173393007295090601156746481775212475853491573712840183850026399839040910217228614933033710571844606126677632317549233008238303293700802725435778177462468534715481560024909638095978544819784570265716862201025088552723058471584949414790458564790571009987265362600158263290373919100412485390962416138102538446733202864634124966239334276502993918929312666620850833730716638895003187878780024596654035870024046641772786578266933787951907105855711840205650358040752905627730173544895228565687968591409214741084341597573556174384169926729394138444067810662653737302775841839687711153610482631334426694972487826113954164512785210738217668415494901539175589710396432179512354381569132027577224903152030673388551126350096489346588905625261097887285435298678513270242612130786360052405836231938132760777921951852997642574069548973328295074307088651131196697353565328009015858434053234760591939920206723992848866104289641668173573486672962461081288091670121562497356792345686404347212080259871979961002648292121048703310411170153109622402135648188483434863985729720085248329991088470256253797111016817077088596787737668267786161204698886538190113177481335679928964492629380034655987746682870846476558646597228995682692680416425835915249828485490487541251963385493138632904318853945228714051447597130735631131610690219248796949771434742991068233123672911699152932299412937042446008046338313412434578085927165344369682900897904887305766552350491165788268074852578886082248479112142809294086105136841943176777604344926664751876553529893338714278219062587168521475158147997700880322142788106970538947806075448130009398552390012913961909534583126203499012985167463450571618247324981911801770214742720430204687128161413941802273742952523217848814366435721123733305587369988433195445035454636187632195262641112512831113530934840599376373472623742872652537721340754316206589278411354090658218582704950837677937371063513536963870257651912529395007458683454463053342359132412832950791063736960612317841558892018590389476591409621259530377730517289457826645841266734200737163326163962058601190591645743405031312184103359831412225842525356237614256167968408898257651882708612382435833588894641671115723914404865924075509000004950444786857268542387628595020865588365926607423285671140051572703684757010032114760972591852404957432378269962853905109495772333276841702412673005754678409267945708149325486346007319854158529639004009389294058228229372300706095098849259755231162777522903840733557383939373391983494719905319912508510122635294906970167384005501771251519146201257522559759593320030055425573787798520738037392047848663505948134194992244122917822960479615628894800034444454165072401648309228869805521300616215935602672371257499252080384494989117612881177846376335960220274332459200866595274282734677912091090349452681618337954647956665679247082016982466095569604361213104751138612660418290526599860095330703282922798320930940031064854879902943148237811737920589818368145092403052697523570112484962717010435825866015291706268434192194475448382186930214911884234679707072619548757863445208490518141172279253413979198502480755858413288129604026931166584680231969615054224148902012047096539732630500364758709356961076190596073473512259834489506478847345564273239536866998776262848323211508140467516243198887390296687711802949893704242991891254131352647742416694897829503864130741691019796829531855106612896175468276019133863349349911282979480484561429081323606608581633671479667859095308936956488319075556373552803014454135503610302692515537310848034707939218546104351613184711273388974248373776611006508432991885123177403695820893452622900617625703196473767141401072397154484919567471194116291177811021541886367948737557308076535535891678355658709087233188924385772514393523688394040566514916587514110951524301390089323050105428144427155884432673705232534151549121583478131273113476140602196216268914666346091728950887459879071546185972807571860151681287189209168750334588350001187462368089186924859303293306724635886151732486964626862480607296994338862402265894912981160325860006429730523991480252589294073217179902723486043738752934801702104915739914564554658072065239634500710730979232988274629255168432095081399875629468026022014235930640118576642977573449816812782821348474391651528554469648351752315110129747129052507821777743893516478897413281050605784542099120425968734699221869871196381615679436612794898826413401980519809047272863594179453463897385672316299763124581524896380807291323988047811313513996488108993292105594544362571743188113821038169287595383858894900252135146496955461422743801500177245300741933521190451548875174320877612819795416447271191694966471941848796850751303932748477810557523620821459886188013154326391367549214053309808179330959724643718123401089418571889671688570342493899536357916750800347123745239465029585766817827866302122026924830154294963971853427584713681833484511791233336351904764262454779002216767335445921951107033166727849894126204892427575971674008714487089729692561490015625818163395382894245357820471858588433498734993102105501489414480874697070607164020556254638883718183843103209299677856067530133667228571909897791790688291460106798467245703402930865761978857713255183303399440224661147158002196998617392903448541296750478882001983991921262125709578962150689707340993809427135191770735151669451303497680617317413275491248329747046709853580796025818423353476645631471232176082369231219452319390639796875288932366780227037807445569304503769017122889495995228253824776246427387774309763354772421192066591371044776451585212102539716269451650409380777433834274593074663214208991239123676912443645919441142424021826200916579590100352252034813799027516283546135150979091680355820171221387011907876948981826794702234733712372697659255197945823906315643911251562088600325117122672667781712660927674742163237299305964257597680657593735629516768951461403707759441920509477833566107131570933619565288369865855463810176011723013756682458750532435349217586280113218315931511802454955740550765110657863743885214321234641601429308063027682705405844377348227132475669062632702266064899442904652889247354534587059155209981822876471036613046360721068691896398656069211456432028591812335637703352631658019983665766236812413949878061309428282911153716560395396280207806454257255704618778358547028280094096960814456904115401566561631553285536213334302295182646280487262162884437518884131296339801739208533775524813504960306391615990606665424747442389159410007191899106483800336539185154236262968768424688494304006128720242135279874740769788275435172977967445433628837418070147143032296384293182202014416741093076702390615429362455486987985978066486800757664071680452534575409240992913886562107526576752377029257912959294934509650009325247050400774899189618216424650535713103449655043853506099041683470122207973157216329839025707446816083990573898098242665079648658692471691878370351356536604912047307392334274967462995843604018585886463232020517246832568704149831022217444807015751270847154385717364592238975984331777423802289314750220680907745014244065942642981780081047948314401649631704592665757260266353920881524904741854950180162525065119181005027202581658521423941983173366956624751246351571114283480918465887838282660162145147878063173635340542815064535431243907287505135210170754019722536226119580939588180120179334042975663975898236440198314557684463166906353652205657807517554447589956412415801395934555501754189594262662652229840747330215528148841254673101192738270760108037788145188728374513829843051392767339155231603649929039506190990636203747334808031972912674729872678042197855778341965115818451957707364554006864866989631760916677581202655590165465602063375920438122067116278843911820373260573803870194927860739809125631941219336061792675680446791001078473283452426274966240170803695165655156317386018562249177665132342039558498172635814154311764586042699618092992893508065181897215546493170233927468079439484230167566931038100325382734027835357014915057348466101814151801180048714545286273472776031543433821438866774475097734672429568937363083094493524875359272725778740411882412752881686138512534089600995540687368668430938938757419714006502145837438976008815608269300585494612820752483439091235529048954876166746001420538331867124567812622306971852205481545558718067669076010413486220471423759847644441695783241368642053954498963631139483211919063420802232698202489548768568406853326205755065589164785616637029853196668505701895454496251958397436761575460711735672865651919065448841624804965635051145384912197347385606821088315867019053683577430746428013453877463434831322817073315161594124337032333403776165429684290555125818059709134164583516381783548816969808741776967502191270926773592292343739528803969156690087694399479339472968316919009815939798277846901622252760024303412550538920104636876519464643697885190691913188242892857598106941475945009669570223185481934668235616788151204707405138776719146987464077276410078614117943063147802021105774977239896272306977001106135874661785067070849899319829682974792547526513168266950770741448208796808391464599836630156890902505993639246249054884746616818278275822007366737606827749717079689959939538168778956716937800139387437830389472486245334800600352418902584295811137234459829201552628986175415981272543892828123370704803856543654441511263044060306626060194216434182268127883444631203750811348179161738574832884184420713309326369823025648528312437951552678186563044077460253981264259465985617938635916175053725590187665583059029751874089096166918354206426555090160183857122332015874063376608902688923778093175381524687792300090937873547611480128015451914289459037629221057840196920163560707689804167533193498735655070640327946081266462158671764252247529702033505260575500798123317860372839860797882702176978973268320928538414547879140427339347939585929288129439604894332958404210721547753899838020582563965501441383260007903294669941583939838156486331250151992497862839954376666560903639877568762798615073544756754843926309699882837892683365009008925403806723853957050254683555484204052269746597566447445391474297376539461197733266823865630706585453996853887095978899232372852474305261389333962435002532490479273713586140158332760552742037736042375224434396013510643051676658801301780117117696408185389277104510992819528157735077187902691265436872177604677964716178433904794229417164866196961198794305688224151105128923329251816233096517410918223167080279941481770764821304036088105461410463886847704273132330310335197407913204803491915804831997141437890617032715865510858831571683498838891820349639508476969478746895844498033868843142774716517549508570821663474955024463278838566433999464370706332039501178431698027105348405570863647642171098504849646247799978969874941552917399583442169153111937943602379167669334708566535152206241851148089110435495621653571532527171764598525504511075734122717094256757139323342856474287406327848194827881292351512717480328597369668968206650912662523216472692092514099336699110478145311059724983281503669260545883332823310821895518468188505843053699036962695611521401072339112325301040148988363428474818258247628687822557801770679539205309466652393573622268362334092986856832962727385796292752920069667903371318956412859443740819984710124795678976133841993086226921602461251993324454002655476360055463375644490762273027173922773862314683305410943901630502751470633356604477189774423512143894001149648235002398282377524972355993168477425468510779095535112270130252617126705370525366099939566707601143905730964824244224353485852542727491227146329909762943891635917044708269129855705198868623321309374832032240102151922470998210018407057940851839616037557719333463794888242191463828036214847458120656436942916887765788627355397207699679125301048057386524879819532248295575917066543708597730296065712310536840211174486843542846210577232008995206293793826891529513983326558959643439989774815236680825647047860817109545261472430819036914513410262683782307467330183739048882833720386381993084146159435890629877553786630415512820311305646096112148275436780327708396548119263545359080501784872083115965401101752483190989937690884108654218764874021747845660740550865099362892335517560734997921838089071155771517648435267486683359398858324622521471646032675792668700047650443108921945636617064837537513499845408661258008346076549944620285090304352467265769864742282835981387281853724025482141457890900634700253352236657458964708514775129248474802475623344385446425132028629149264318210881017896458616741748896493369120805536796299966149046606036961086620141421106718278206372270258908162440749464539969137222008208387010421388857908120267381794659636552519691705492625976368877605221399143427206602337582229730823344188024357013120962076412421065997404005185552263814574581701968477468207871657247967586990996497117282153706780688756866236288943635376224945339274921449203984903889473626371063007520183357850440138796804861900735906043088077102495923263462115614752598983260435880693679502958467444860377105813115352244123868176687318434997157713811472209097289619669144944885103250800087534990639575119237727058650995805161272020727402954077797366229320680202836352983246431175111705487985563639431414257362930259016163800997670315099003592512465098860009026501672949877539124276484952262015438234395122308847016231863294414502364986720976269734548118453291833831876160151096262715412230419792026225992200337725632386956790393205884167035358478770253454407783700314186378468681040302960918949126861926859560875752836082686312704461580644813038835267116695403348380845345399163238268864451751898881541461749284254112424281759944231322662437911719595704710019847674286186289822991535847057815388908598062587763727893357932178636202356032014826922801541003607187992199259469098584334848697121249227896740916647218753750640469057587107858297797277548577886448092340776297837114462960178686240053456762106593050419866928806924419252287571869330412129867149753822923360169094989586974921531422290967474502056844920880076451997651001215152113138442919736684750520219631443023270789574195609442844946760354887713865697341089832437655583166954310384719499392015907022362573037234475394183041842970926811916427934281391384764734136985100063086565795058414280897918622305980571719963822267160302075549124002037428562709321018175358702072397694562527473632602442381624324091974508132545460616125334047780723239267921683727584223853193911477375809664484046079622547010353977299415901480679992862474542917097772604686136366839457294105485269909959186270857482508389822684671484467356995049702641746366169519629265605799088688065054367805246949959500610477285897232171527603034675242893911197808583552307237832901748209305676662402465043027839149614942567179321566122239520710208514695978988715866842406035495028081952478942266953704664448469817948210138056488600756106363229306559916904424671380464827391358071014392520619366569679676096310616809144466960767502110459937752318591190991363436726822352840849584494978031193276919394641688225646132428904470545193570637315063926300804517228261855307026161979510040156378088899434518706196212502140992159944673781854378501539212931266544319996005774548385162649364504951912633609400372034224881024752841952332548593032680208631913284767364150267793787126695694892770668189386049855853819110538523548646710651308147599137643096067334915289362408180679741695767873257212888723423405630583565252107372551229979361537361681684949185518538764855445306445862108749707241686442073465750767811400570259011081731781972451292700928721878738690375525479485343785634184701038201684771074389997428875719746078025166762183743785351765256082210262615055291953758912853747688006862605167295813659029182814070858268655903889810606569481863420127627523576474603992104223675267217279584470990709545131957687482253037081232496265388863860443746155687993530960323288722161504089098561496486842498382937030869628762214414178190320754384690440125129563098839626681926715561289580480070553540109288015917415097257635943518519482144815075659043031306053370623105918282253909754320472671620588702675390450726431266336999437202196583709844921492342819189053274832511239130522978980670278175890273620826409298979119796049718200767442891315362730930589562475029560367188040186295863202982150129626747794487387669875117538731957104935215260953220400550108549899568876699414945996246560852372978788522440865728429294468663553323968342260115219724215812040482033555144083134357149594162179091081284968620616723691263624316688240051429159675604424391120668707307426301416828020725085793171610201916471143895810504931468020354949450185986423876100313609715269549885684522112937963706876093220729626920698025052908249675592980834608754448229992847302809781729801479317752046056318799371534149447893781159395380396405300658360656861034507793626931179835096644757227617150246466549142764810499698577866167634918240026252479013445693467913161364555392135375615677104498840965108914405103542642505354212500805299958935100312901542135307271019659442713057939179980416604045286010700354975012329441291043594650877645304616973883545265241878845448224495562126976531109655543592589206132447487488467260359177621366037181120182810814798681861345243634211686773302608223416265378844916273453101526389812433014294610722261183931795986548555289679703558436866990320811595530282128077287221978359107390282322349271988168289857280235873080999782287586430337980178014618183910547525857768931176866917519838636745870289783923956534697387145467667776617135273451182913838736260948872742747715651181977676167517917474511589944596883810075608101337366083312741960585722993011758444106423707115953184896121103148995912680166007364703652443584267325535774431527194181799298662354656960438066758619693581503884664365897491763070885826464013560496923545255644721899288945685264167761742215296578216480578971592487632472895134647448021405631324189695286674723566343438079166117216628496517446188317233072548040261983763920333810911023764908083174114160146629245771722376645582895694812541297853730939558734642511088681352479665698173296771621873741152372943070349241260690394597982857405552902794292083324861071750691539331364433078351514575806138715326123851114577233129675668484956875184853463473344258707997777235826443633472185799696042184003958575181526300046709370904679158347319989265985867916120460442679876534854315398391127966210193579170503132049035203458253955478242653063107531774163464704410380121260526442278399887806272971288743919845939992780624554445921237975702027121625483933964694115488336902607047564327843380442105746626452500543020566138771021131590146431418202169883566324711573003102075293630132140141036133731622381771921392986868338023321998255687682201229824094426591050846849586999877077010869225601312776048629294442724570499031083580401592230913288835165023967934064954725090435031052604080632680453496541851929776674955126197580348025277231124607654184694912958012730755949756121513275333697803754303541315190659732469268175089641571213032614212008056247567930044922944544807992421480752365794401862684740191752414717646487615229837447117775498772439838229004267306774749795229518566666896107228686902000912726772814797482577291829718975782164636085750481759477913291420262233205173534752659301343536339261903356606117328571309214075270259160244903120212107971287512581788900722640152994316248952178381348431294197976942981261016956557158117834527466531220006737630046248209613617373253634038904677040568697929234956379803047458327155993656405615952541335976810628590353742887131823013335246322528903086937117788988817045098505000883254548705351924580402089219754676980207211136235266556324121305079927883469959672215892804602509098438692344479111790509725366927938184433591797243240966195606048530800704440599103530076944437844461514288946921737181937091752131326795206046643812863271004464877952945150103133371721103588829582491195242916245717555842342206493409258855867297464712161123529555001637121427678682200793005461264150282735533188105339140905785846519515146835329486707591239472384912968799806839785623132151603610266347371777821968893250362524034878040313150692570875153592679895679069272243107314591028549504154570571824804430652776059462502007200515355394944963933621389648889195048936454586260654618202968231450286064205120217297262760780996606272841139336337365141978600712336124281853052136941867724650698507446804383900544122056894002567272743116799437870740868696985224471777186076642805572262904973226006218020170959849704540900149832058865689061910816296234120274636840208617248348186888905280555809754127518730067101282072383311349901595783851171068410922533150971449688781269319911932474017028275198783559524216524599954852710659380268437244959599072604484465375490182145431699157347386695973342335445704038786114959130617332104839619408576205522188205496157814035490163656363672737798680289162636050660184590269115454610112004388781185550525211243240913518667152461181169744273370983515455344904902972287888089816091770849888988431753093129826618677995068456430529068339444981468824857378592904239142648748725692230109467280409065952703646087178244792668644771083826881891247594018887635769588073227391895498263328831557163173188410394721251284488984131721968648279508535264469250984714491692870355745269881645365897749493580526223529712510366850350207667247629642999157794640855143169222720268237172525384809151141250649160024835961908426003054916534336684974659961734948554454966234416564965774746292237152074966758104488768321635869667510386848501375649035643102445109466365998058854158813779653063179645719240115492959035262137872989727166168560407830424423370140712980803902005331669506602015770858524477281896171138319553887613276198730208897617972364800735923343047950955679556953779661869510677986852635485923711210381706012900780505950588948253953461938430429126963779558710030498644272718476654727367196941501570485622319753341021339720849108220219738708924633817798493903119156540721607433734716857699437484645267022325280158060275296973021415777087935050288557979850515445692740997642777121538279204095980007267755377706195143400662213462138616461165706468742095401802458214454303181690370781041517519955764638053448595938883747743183167588620059572906075986310256884951685036443065377535736635732099280255303199680029100118666817851534891198002028396284944387533628284669383622338148204319292779252310917196029898741185292238033196871582135938497474216785308461782040372092338949072228455575510720284488749209738337251005331213431132955588209357788332844325100740572160263252402020443054191618305540059300497241621396347879371741115501211761230848662679405033728446692944137117962069698717022575055704950501159751060782271952380022584337162362485794307798813031421494334311555343826702361792598139526001976807938321385137749451928299607129169849850110870776644743842949349723063025138618688351868743593458811833605341542149066624425897808496766116474172633377465959068186310891171370193199976101016819647690123081916213539438726473447163027042660301755964126998692328861951982871003666283013197478766061533544882161167950154456864727865498230288138152794453090472545697624284898327762002730422147922680246695828516162193555494424070222123614192853617823493014629455417179158534064252699094186768977013342367735330208053060432831193283211583187731259727865446601039716073967875022507939294348387925712789971679590207949825756445617684138170939718814856335295036528656055112803513149592697675561803362615883676943754774948733505399878106002977368180683741784533780214905487906294484470417944262496070929825863333718005775330638418797274830778146993627167334627568770639217846832756476543911016925638330337108245103614693444981921432948852715490574091531017839595723074624146043472012964204412803196109155196124105460333196077911234291801969025451043015575300541619841470715174868871818877483487582520306733625228519236834285883898466798852577579148397977710607120675107404541974642270683756555838276069166548399803538703120407281537664319076524703346028049825965673690147262156472962795775340049911551655584161626640036201636660834047823766634281207338564562483533285785589883103676711540076635811708926915289077294217367174583831936291614116012342517717193664359362894547681099990181899258219844762909036185327762215452077791147226144246164201087082190777568612627684427839835840267934055868203991083671458729140161587474128816395645338506067030400564462925918791641262537863615612217667380746844099134649517632658294047925789226341374844987968297329648496618030778077214410593401850974472975956248394175896106936125446607947439355386913727955654342482725788139344128995265109304686806715045486383308852143488886014910725427921346663546942400083850585248258311579311455824190038307928744306712994861405826429463837506622370890334981414776867668244557451204553421851417396945049465105819609431880303048953166067465589368065426698203448138444123423161161725970006783687891352447700575788515814961057854304168851222956144073590562551998434133780119525849961302175935476644159555016781095354809746822227564819442421462541123805440519661097277512763286160497917641477837042564481929903760961927341749473622714127688375558546035145443686818979154593005227265077873453542212137596790923622217724394616603671726809670208611501099924070540440399935467025915553399372573046925985422400207423503551623743378318613930444156106701586219430242895281413700907987889315248927963230568744620590094338614618753007292911669980810813295421306265026583207793213765059417374764676847351268237150887879703604592388463045018199618793973774204893651871132039928477017527379242821353081878364920369750150266184020607467746102183488285027034671117676177338617398046714052573021423023157930398210769281333846261562719778172456042882603807023407870959503438223408173765365231257588079776610513393753457505836551995541837108703193351171066768130628308543766644086425516843739588332649564524989680586888536941166680092743822837699314847627961199960222459944679676136391532713531156888329087143192266464128133350473710011036884140189299471156598787871870128338869971689816568876248127135508864994288133790422310207138315346508690821493703945235949425725918061302305312526452951212155132544271800321622333847465407997721200068189620356718997995709791424755673767088032842645035034878344065699368692342900391013396652161456472573658906716304663488935715815185256310236967174582681234284898542421892806615680993448123177649433946765537319802803162128881892633439606719942901291815858107009527978353457496674460426872534974652376710641647106314701857407041008753281344923503624675832831524360147492316985729552948615890345395359699538123387984013413942791815958419472470923543937490839240575161239291703797268752219286754101710299646820079052860676025470357804111968869071764752813238362072855157586183960654160256301140735630152421450713996811134892748232967834977337972947880130343026631878509395242652171000203709592203027529151279290492098642205960430859649738921415100011198721599218147062971228048131239133863263359013363382684240570156696942806614006180416248781114825381196835854159773042907099558501127226929718979047867271302073356505258377840512574881491289203253590020882655878163569773773091612013096117067611954954331057408825005825740748413325683993956128601468643578652686855314483149298537794794403520605556858954297686588796179581254218638879054118782736130955207267575951302133737382957779639880949711667758164447165101006411656164480276978264135360807203401076108368569734749420061368587550343011121033015478855751345312763026763798995515389146352447740781290533357965901636594355780177200591514130608833851904901742529823908388199512040976167664866172448184318269672537536355481912874249287471813326020584768508162301176109917558870881190442252745088239297461201372755682131888605825282720602766051478666775642509438642986695277845494084418576592962747249374898907352819648643757717147331044543092513005616643792789813409585824383278064256978467482031752324174268863788861761255302015130270091866730198659464633108353991043816289319367555556934268351299137236896924623193201174155822766228171104558277950408470449166254875370536573294194349887013490349496655835389122519894945012700228413436685152997637615131061887911578163902703959329309355852060809470547373292234582038994526591409453017441196549302382782059349596337854045546857646211040605530461834007708411821720202566205093355426937863896059796761348186918337086924085989476267024582776978109205341758222507908795957688019016092675482129806809925250906646273137970097348426061868830009047722636869966019230768801304756535694654618712490108565759446776557428389367579830738709553864331230409016060146583758668547735599448876525148992268180883562308237127551056358758155272389280214655888779589478700816122596344789187056088611907600425471820150344493846242726778894337864555496906793521821639731770630924907571906358702516801369242384487746730179509948019790395422009273440829085148188887165486117447140586518801322245722352987494336015000877388145827937021224231103855538294286295396733939149554519118167465389871176280837491338105322790014775003271823631046323145843258430796815002824910210718500886625689829890572824279880981282587957757720005140884141094175802802416066829886435617482225673464282355642891873665568554522799884921390116484846718063283285414255809522226294076210324506071792883443449153578739986247383300543965539937317336415458833412723354859632545568075515295391187276600735494690331579242727108787063021998361894130140132676363817513103759796248290074242706796516779958769534425978237818219571371207751442681215903641599241750971653834596068616406960953225364097629854626359607751247416959275407092630728488363679324590463705232207412126298840761082799330188414757769912145458466835258237573281964102495289700902551754881016839273529245593438029488311878279306830898403023700086397018999353566499542713487991227358669227264664825630773349877595850522218650715484329021839685326978480896802498691679155126853903154933375318004690624964618691279622449462758737644192447225801124987989228624471323293196331195084138892693825699787265327513023089300640033790005728699985348570476535563551694075464374666923934630656143777800458823949541839349946973053978789829777735131877854388961204874847526503347103752992522498621894355841773031366031545566152785402224070296776008528867464595722946733334280123387253010612903002083066651768456451803342671098711575912328986829503463551612210503551324412580062764039151499542751097693056255748481933240657022334940810878752177107968684955493670197005579111901546682869946055716967074583279723899478381290578214705598943771664328727291391454266523547230504658311736838553402021502561080559514655263686405900698645207543645979839609150624318177169930411038848243758715699510061111754509634084052711936676550667832314291564829005099098413467941360733536624296157920663029846350493382730740703867385174045475864952480449850761568599973871281168313246129018314514949325417251973931564698509224203149612974471609115999373153149369920704914974256332653898230610320722709436583957056533812246721696611675433771915540835937993467209178471869186721990756571402201056115807801816443937959051558866261566543708058344284906912142834647473677431387710928458116628649144545255694705376747957130088501776771914103892979449155935727149622276912724486778714700357596024803827058712913311013292577055584149895054787084866731012994543975979524027967115291320440905059555727952361965722196880815719230769465405176601316249126370764782498192310758309451453460418061353187298857700400917947468267570674367107695659909337523822263193552864825001869006052217954486619531492758200130717056842501264530185673129740590399518996356340644392364193716936231112936744128030016289050180456100318605686713439226645901585707055963491747109166847609698312937680395135953598492300773929992834203605297003108398140563515775382566422160651621012509660932509300110975693635231421054399458174218168560976592511083831690517227969666947117348150417015289560830024484381235151922655479551066930626348739466889686685000716216817193101049210530001896449180001901247558115781417186552463891693809870646162155022909237420111228732836515555263605731895154446858004791209348547027057349006537776024813920660542766807966230171677549995351178019769942247323679243947541805658714307774251491370537310286184623504771086616912309915216207445785742637604002182483202385249767519961895075838896417209270254529376940879400579596897645041357263060014405225747910219910774306572949476958141092847458426047867081243120549179070003883497972099466633279629697056371695563239333437209183927816708765889194153015819548351736483976492463373415825509057920678695583597866670502649567741113068848310070348235736669225471409973272704869011924121795761054707424540197436670305299477501167215972054450261825804506361025467049856249632586084717039504007530412210550403958835689541814080366084836747336298327396428429128422472934517993931393459227686816288811579025368581696238430238990737600728923269380754041176749108832451815646147021404180947216888075461639739787483723310404998392429041427781681338550171452520076699470609079985582171810624409494656555731666423691964146468338635274093328187152891771253264123529234867268898636068660738618435647045005074774394181782368868749483957362317331159797613392829335922266721984637238454662846001763461432431168024050847046826008743524414704936363617795955846267855743173943948452261263872282517246042055073428186283695895344158651085990304508242331216357202223761037421480241128435213354091661598184308701789089052229071309326758787666869492567498085332143436867939696908668506515181261995680717267885616060392065962452340156322950937042896001627226576461129779915115320606709505872152514977680273302421891332300248256027070373607698068663986496773938300025199841073217265304555096621108170493345549985157803724005422413132342126050095810148515295250237409076538570307585412718278670346786293418944858509356994056323147064728509752185771865230538125091316544860239505287923073194876647450257545575812124954038635228521886871983606825862162988494907453718416472232384001978597075725879311252822212623806939368925865631394322527429477942941527476562172606955944175284491563042193774148344945057687726931505318744798330421798885536529482004181513140237697229742556175059686246470528291180508614769237895262779948845882960304599573546966090438064326383101056178389913293232807670638152335044823584599728744498315715899821019006340666111867561042517182592541787168347868671330742802273233756538847177987259306400177037682224042619915992681999126174400643726741344127952100370645262489841334681977264060740196932569366965307619513768870767145813478901075770509654511253905961517213566530178353629754865855086454265636202819612010185546181632980187726787082122041310341142321734531709468606278354188808347527860245964806527033138234416570937252324157165473883529328987487722320386901528468583090284975594818799970295396610728767775522451950914123470489900432064965065921564438027745800171611442826623874018829116874761838376513270980734556767003162981755438230380104947220329342416934094279074061021554302413000229027375091456473059561588232831965588875652345649928774388704012691464179237454744585693215196155821062488995697245283177296805475649609213665584814991392019602530736253073210510863731359472295475515511996958201077455749326729609202630233736008301055516868947286048378594909896817988448859923458710815693276325551329367996820426534835420394835413419482333613077877140625125280099785188132836448505255116370754054575720544195548660958347540744335439935922412890446698726716964003690251780095173218888076196218140057259328514403684390779050165522840352285517027961586480089337392936214072454364619266511767998197249644126731075927463174975924427205033030905393188383629316036837050551065611371038768264048901428436000042560279603740383137161062246681977132797137953741737333971224087065658062712983842123603603920796920382940326095966840992730530373985034409498144242723984280802549620632418239285027628217928974502932822799955868468930139635802952433312439484857995042357255152882646307472526676542677508757351904227785410280482933502342367836537995288610233710181907986287040108753702717199609093609899216202526742191637342900141075428879862527442823221822928691389942947887673727621450048260771220861492524158483849982158811040942577079636992125928698587850973660040861707534540791155795787102373099148998157256257017360541418838246894314894660992423408682135496946398794127770661171839793713446545923848526580751286385775280386297686971202950544120794303152062743373215139883458872403860905957329466339687718160575677416732323718521750119892021546247897953521791057908567499178237630386953793479478285753476434502585697551979605969434117851191564105494792817938091777623023910920473065459517570206448390226265704520975740774068860715394034203624709405914790000741729340516875145973308126487135918759231383146360481648539216716398689848214466362088516442496854540454174180600282125799318653851841237178057557923435661417812011199841749927284497323038065293763672487478249339897393732747356167671060261241156722147104983567986470519387860273184793033514295859942519921531674867224383535502882433478150520406205445060721246089895680701179778278712803485611801236156638375146736395401591637219758003634000586864089766162102488099778814133910441845607615552477418435425275793382472692893654841611910358031593091913483427337790649478848846692608720075144594718459125145225547178489338004326309817817310471269831394124917810042610493863262618722125292272124814294975666522389594159295144039807172206544778256486962687278037947438638308683559743250823544890282853847848491961119308406169415535699137629797369475131257813598428398825836828181749306343612024693932517078209699677490393732651180879673568341314372231213906643745136630948912500610383837319190504053785125609988712703530891964084626108050409186724829309324272091970934445273243263069176604939435786585021822937128496094985610491234258256474568708055798370270460947590443248172306645519640403233489420605984060490050665171802370025064525750189053647982666438872214280899183816475620106870752594893413908967846712799475710091201603339679525557135605955349495070387958898280486685554374165413443517176883811100374617880332310540730773018422259767820787653907306931518135992216395439389981009658178790547645661616627411517964772222558466729931403920437008763148703498737415241966152397918037195477553264554349380941114376405492064823129906886824941745738778380501478537468224747826796307101691885858220398072822942150861407869901666420154331130958654425800732546120452531693803858635635677544375043852480159514167352559557713039395006654556695346337936682668171497797584507363466190638019707932658581920178093357828387918385336055298182359673226319304887813178466072975959307877442329284084856932815386673650744387342664485959094229404629691670657271144092756976685228984756516841807705099237356519162006508999107701047585725779614326140679766592188659376386127161169617897376613606934944487554604817518530086956577278170636468369938461366837914160080522724934607055636804300884072972774715691601141130109676710819792921208124336260905082320618954935560533668222318114935461990424892975554781217177860576584579015205298720560183269666291521696709550942660309393881978732785047927226568346482524426930413076028247904466696314744742515734913426983173869132511418915080382372788269729247545217503751059212695337610560797763253199877600798037331590198975821402961859113973027412274412059645220148195934525133719495258338558767245877144481049499786236925595945824686680032981008250518185109367379701283384146006639812172716452516830293794706340945153727525742977683938218366810760701215956971891650349961113141104709204101976666784883612201515711932144828210834968638677617941420025357549054583634105997176433187076837787056862031198512983649411105747465826092643642690095202916358612556145056361185229064592650872259393160167845676914493650859620316976310117827620175911927044962077861354470129221432124000641791858188338000188235435018379179325218379845154836121800508092197874941902015797637977163685302052095358386313849142306609418701361998946961764549983262511064105046885911742474892847238053778700581648692230111532551411107444304591296292665732662325091512404054879880690474735512602561173415965659332205794749243950532069654318546160729623241604633441954542955706396687544522896837203026421962383850039689295821046745638522183503080020257880567864321873716590812561266103242859377516726937728683116243110488243929098468819867771067353561984130085990269993068918178432974060139795112817943435457967235269462370458057156229106080524272842247290532757037656382772451419840922368593241303027806554271489839677916409848235908586443522331582028294888061645185692239726409326636828047055527247627013759681923306790409369111573228192496165315649779282668636805295560803572454212917575627125520298046457095803078327053903015064007432800934068123161832502358603974483321439564540019579347844067910988917378844690882158150003409275537671467859268708100761998554396405758861899380605446093909287281786344860893761949884884736544612628991450995015873276855103501925744636990381068011214016618545691562619331340232089459694575675530490409218109947824432955722735310755935250643173587255766194274119426202525744196421690632567353232535795566484887015654378057048940372040939663986787245001964423499554467238540283135309842668297204004873812426624374647776995464813820054748467843091648974293316135620112761038740587714865101079196639025209929933141448378601421384138341123403290967113728861832370655227964009687268476973358743404534716091946562565529623934266662395252211301678342165631973428962143163902516631174435088620517809961116768789923069860789563208255673691996754943212670124056500310298218469323977692488057761040643248627634658561358666032709452404975032879226520559815797580892981342918907174909741478947538071773508783143296179165486091968050303846877955372494666936573779975992074984495172023293370778603243765386849212250485395910554928436044866160506949555506676908143899659734247101016437499087852438007277726393634289839284963774007404407835067486635728121901777064787491425527671477570809633134901652531780446305484403241714170029594263246798178526372335376142180293434565198439685717348595744174408095437197949041405414718232226967994770655476324135732951132682497746524770711128594110204948137508187531504962712865534956580510801944751685737762906346865845007280708567421759493460327401268532098923470010625582011708320106647557612536515457597877350125916021018896763648937429912174648018237435890419734066050930540514910672912941886751983857429359345775216025523950332941754884774315174377024082840133748288347473779954496177997595118894610915661114109319962437115136582751454155756758432374724589862470002726051678283719074776101378925487868143282467571841872103871655060264404380326515765411317694372215589867921019468110736225697619941110718670091051030379111294646304645790850115683110404403146305766442381569754525791120581698833979058227964027804677959385946058667345451023987421308129048695211614022352482060172684508892638325997604346789792474864797075626001384223990324318590625792341657758715805831557180055956457106763024115086622522978859000417926244072805215029167494327762825269045210974352517817468659691581158455027612160645153848603628706889237776172069460965027465402486114807697446627270279629553699074019077775867152152358443110250675957803549025075621948931875979215312193079482154311181682072486850001401982210250300124230022063678447230151233997250420845195421949299453128081994679536376548990637498903038613946301166013920133390146210475600374929462347334726927865743993016720483398577218238157520687063894087888197982441648262638761415817798443615730365159707977524395369798648991898836408733090960399979428131877697518605661829912578397528259924290919715864575709218420995808680231510036554587446615666943238710211486063452027375862307255476616953133384993821419853109994712423765425254453129457095084941956062238580774108424589881078261631756805237840916043121995131920596575250598194196191326307203056353328940414474394734752220639482716708715941510733731803399358490972727102119954447887781780551886028864772245491312523114400187052593967998654469824729246162131966026773110465297903176136434038371303392020221064247436322273888429340040564629374781285375106270322046455366484300119928436421710954820875379678198658910332691404474133495406121303906309090225387376636553778151421303711337102468034164899530755561893657384917072063771113620887350720798548309196613067237129374806750640645803198846980167150975598226246176143324711137024960090741386692202458969618742125839555009573153844032217850656392141635783927940436715373879613296329539770969095520911082579195435956866053825170124092138573896744734918810050774553907311541125314208374237418203533209847603740874796392807943407869346197468449829015953136274221796225614371443213440480631799766150899135082431002033898462703471378620157212647009265758628554019814369697457780957817391575864706350355269403380815542807166033134803921848016503181296492117783275737607882649586985555754820159248827024828125780363345585837741341899044343921630517919795169213157933083112941729561826294045329294735919709306276340457297856866738122281579776124016786672880996574465731122663165180227771315008754798639668436921596295156878113684983717205122900485458480645015870427908670491023997644321540992342670526043872290546637099234043735810298536003708046936816992563630190731143878506946516309524244793154290572885839056214767560845935388270690161806372762828205378331635659266925501950114888901953560038564043437414318828067469426261105873396963773152868709904939294212635310576454124972604941308125655438306217601618439733139818062611366175706389335871045336786975747224256023329584705848116139512212331294722657391244056571514677613634983089862628603793742969014578697365097509176113374386812495752698123197588803335807431348440415464612479598599292341672039112853562340327450490828143172663172061970206587097570817996604046234740508473567781784395860768891863310329321545030128542897027112036330039478622266642027460674817069508971141148284949015779974293535249729475481275732470971156215030752513951766950200477058159095112203101767963614115462071571340654332126891046086732791245180023247209044297615598041128066652722381189609412487084848301283690303814816729712907728783695072744624540518148856073725330773486580720075303326637278088396701838366001646409683364592921507195259440960076213316616607950664404144616064989822785678531045187556776735262124627652519554357811366315589563274885375323052854555546516503165781479242601601133485844924178126421125584397380281120610833105852241194769591180846929279838497971564580383601148145391138795835202827873835828420297347593705457660919887234199959712155891432324713998959218654211994676607196515231074003920254169112908850174479184718228609392093103036371212856359097293742218025061508278804445277901938349699852437792885811878400531363778637793947516937607889316135524605946050016127721675916214339175648659184728972124398902122476070950809580867683863391186059665259875342666163845742651248172788823511797156327697515031552026887654901586713053618360986077872139158510964338045107374966817066689037143894039332377887110535552716891971520040199214524380398942746875911332383635088951860768361866264739969133320255435968631023413296118447239507966397341028774943655931037083776670402584757804155899287890647296113293799577350119709322972045711790940044082769184059809990732463183850119103880115770339553245607539314711475206115313320501272563670806166817194196671125964931710999932903425703467221891339141731451944163736724668520696481553315731135303092550886644294628791654656865893700063565966722280262544612365142820130488845118069171731058015466215273671244325228506365393135699595116796801220635046778609807013579638168642944477340246279833244128475458677705116574042336241917564851956304648298724709650615836682448137855158819330904500802816763409034578645440938617677319081951861421619138293078701158372345545423022473708114395414712732684348166660413083784147103710815830885890125044170726203124698828214317050885283750208676267410987773004901178608057279159608985045310552841055318205720441328826783753384075783463037653543642695921356553592342669647890271208056818244987820231538273767746689753903828093110426718176046179269238113978879161962227175389492239436721887397651305650965840224653833563314005720600707232736007563688608226453234921654075012404484870017177921589712816615619457733120113830542845287730190080027571707072345958891261157972106893559651921306914782513850194732254448799605726806906795336759457867217682885647488783251995534418562910378125087283463795064506759549809894327114401966177498361663314529874133620290516809979912564565664762292089977069742452664113543560625197614753856452164008963555333618600591367103065771891779760792992080838595855895545857111530281004744461828776573857291580675664138508869250500280310527040253929410358533307429586687813014868448177805704853235731542968014350769975556076070737857042869748821207510113183284324030146056860269580956265137023589968379586167471760811670686445144502805937557712100669426222115203473386282951735380336966236457161935192934675283149130829840907563319102077761998345716116191938095607815269745149304874693802787972750828038087893976074990825187865772289458571504833075980949608972612280998597499976565466720993398177711178329453477973146443187268864689038104715297250277767287547545947912588305009634222478147849147985891301352917254609134494307149056155798717300332496773422156813710627679414257360005493719144521658814458844468984315259028990786241606380605902187518851925993521917171009778437026358298714303620100109545816011559142397916511438586262597197837270857360063830933466826761259594967570297891911683228334934700021586330241051524388129612338718727712300926824806337362102291461262404805288354706009778336980556657201184233016393090220183881657048962905328299679841212335442959169547166759243931281889947748041608161876338548724256652545465320018174812980962812713444918122540305087286596515499255184252488487867003380520487209863029576774787770705275414793073438068384270666341945668477444300659795634833038630487619278254114911029504882866262930468242934839026140009354199817209284347057697834588722100185085590811094532187509477488098116824036361373453447614193490257701541113884293553791245023434304393830598443683054149903202245943689001473391434555264826592723536266013249704149914697665252934142455455661098696048871910419350843215379304756539474354257913791428172357476425030199286594417376763910609866574632040438329418705771800085774253317038326233980512710985847203463815547970450310660718204047472069148012607807546568551593460673760928356692684417439959750923560691417774177341086301718362510577834966475349010012235017644026618343828312653416022521632935565627795936736699212727400875794766654813167201142687708551603604912625974921294186280391189210418100037519181913084667740439027791919764398956663760020018657946018426302849637192338227699208804737629193859993972260514887644453231171676074608690211114241013082964977362851102678880760070798977854012867763042968965119022891002886602686706453696841853393569647032920487930408489804043851305716021129138010845364887681286919844566010311339683971061764641365098687550921787785597745388272579164035951838135034475564660148506400976651052867362341442683395458860622820565352697334722174824860292362329778695713301165062130379409676577423330035521508223458801041650730608804988919056059979069012034117374638433030623759556617716987452403246973309815870717658210207207839125892451634194376540946851152472831262261503316890777606499807941754684207313016523996767804796204099377672759813172354124001715171504367903311959678001773546490191123186125113356677187487044645599171812206208527164687407527558658798484020143509093581050472900965668135873453346048795366753426602079391043164545946558995029778313058974400041766295984915707327575472862000877828432145469023715556914169744981177048968432170453620428474737490779176969951081128391712828255282177004342820170453238069299212908666628264206050489716291571786709356914007361766684324591912564909463024682405991625455563994818769073027402162551185530237829297036127592844373945839427657386023013112572950073165395048643254364884495595857852916426773791554335519150005231503154975662297053444684171624992679606080533731876234642427057743504851261925779091488251869249571158436664385488909029962563273693170269401075130145075816266883621157753879025397344663047248653080122416715416071700468665915426690919967968499203660375247323784945571106316815778923754107157571252182645328810242540390231308125761569013673346334704328275097075837948790452091468468963710337784115969001548473352806606948454634405404652716940041624064755900513123669250837355948141238543806892714186214422959610054842808963586531786368818250476812785150184078270769586729564793093680244780852397982993854390008050442532054362518807161930405137119037376294002228106732020578770973948262533138047852259856078191602177269169888369281593117032405440206069701633536696175670337825399203242579451128405059623666968773694177162601400179086964276880931672736219736455248463393527456598010159644459593648212282009164525434795295297037710671632274543600416740723481681987901922382057123030782830368441149056299701908463799260224803904303808605843885016029762497740884660297181157307324108604047324147481318049149373002594758224339857805487627822832350940450990481844383843057486582010288404992092832000067750308984400518773281721638796437542070574308787303840428234257241338113907909513372504338303105464435078395315119518996603771748643861228536378864391639383010539663297606258295655593747545614579306433627888482911162358345165424692419688794742934848886160113369335411322413998851908235035107339689927539201789190897121321873348043060496753708236021912566021642906885449627568463886141000123759693091240919657362031141445802411237348188720691322274636267235975530482523059355580430889523571591938598060642225425345683836884057196192977887544516773746704108935882427326873289493383906145766551891351491299094455123239970980547122442140734541607035414983818480441867413280223490229132435895023685554568461920171939488015795926442809847507341984192168244930862963652118484543231075618700982248819549168394156988243825880395747790913361659585075199259995561546439845281063027820547095863030095415595809094257826104429254164366467610650962558238098777609403342968498806729063626132695479287678209752852972735197300687188529415263384758731587221035900362127866749908079548113660976929332093935337575250810222162640738918280315928314467419090110969963050913120130371729303561387186110736282995642215873079068207803872648189005056267362697846642572780055799005757759363203867834091500919042787543983794138156459889976129280027293498544324716457745609123531620398063890518693080943035379861868067422842425587506452184980645413362526919938746566633903089479509696952790310319232235753036376918147451928405840054388113831265337085471607422245985788866995434142021507823966742997145999435594767623143229272992993881222666409689815127852545154482128502472372810963775985841951375283507843672908098634884566639431240424435268147832224328733617380012975350068281579112007039562242436889130230771487087462217587073673183554229479912740283338496603740080784689745193901106866429726655975138371486338105904755284553478556795680946348689192916561587784013299793106110766047498586709288258592222051646175725892726720914055834846083125895996842414321552599736986674370219442859404852309565933174256991522070292550619376212174044230601848447900988928279770116715348107227328783026887894660393248348883441570937973996793759974946888790498074427298832102181597834738684767497492116985321222479178598590722507505686089433573942240863582829437520703046594781678797141727207020012100848818936465345351569585332293542568059025608956334310595183707892622720904397203202941484316981808732975520169813856003234736467058331391950428294040541237531192629404972651227797151596582152723648758861774660411638240449386763542954283931695221418140722293224344896560122228342587865229167788375710294259352022868160060158104178572839638418880899651268516672790056706428831057150441717519578832987982387933378111189369320698298920417497987298919827023997571890841366034510177607697769059986886362896390430797498912700163706904347186623246949464678481262764443572222983677012776449661184707766328423924354590924749625630291461361749763555923697267656293364834267619725971379071277294391083138852581157301227483531527174990086392911907333386581962841590228850283845718057907741880678922208919547465559692839122328986637139761461377845498812440830805325230594906463050199591631551644540426369855091356606503351614027637809285659624009904372382129529615212394065527148437938753977971064999950225662790041714872470934127590939334241103403727456191226952169555837724549981916369189454371076458765080126572637507610125454218851230527208601719791031020269857263083061119044419932947908442926366909806989434589486909830954742373565996908477304812190784943531047549026220830877337459674356253058924195684591191470451366583649922263571221059087884792079447877784794423403521317015085039192513805421519226866819994663823201328809380915209863101392319823003826235377643690986874049115194225107889530399403961575799039587659761183223327391351671613352148163632429161260260940733311915229483768270797285392839448015871015529557058230220384363800758277378312546239084583844248631598173989182067055541520458639356270753177436482523826913328380235767257771093396232818695160211081223813446056925518112929939128505066949672098553968530597750216486027151639027280337381874185960677563632044492238717025842622085201003608367325031168628620270019610401055429005843109256650468442448928402658564695252030424906761753494843153475670738441036251190585884827919885105211885917323908112392571280972556439998882245324040554622119019897241047132414330632901784588738914749344048877679903219201322227840262795844429004720892132101013548730051459772257983210541578363333230037578275400649104269040926784616007384015005287132944551810456416319940450812798102849507499029942903708526326309075237886457370405911401784785685832183102305132516338147396082120871467501467980645932902501481187590250080576791413802204454488813023531305560625782784802096515356953282247059857054339428117576774630550465766947887758829790051688540937842409709651524632948544162307176642914836373746796415318418693592860699162567586315933998910913884768230726691532518641636048351163336327213518013365651748367718228931310315662617915346463127438388990849082989058998569666751506221793363649596044714049092150867608050723067882160090832880892088111365720066985090529409949319185495228232434391773726428575155580641646484976296614561042751092716983343967219986122494836125325327380387303136203177702761398600290755904996338771431512700734173559735794090220146828091017076538635912067047352696602415207580216675718097649284829988162037152430672577259772578313350097401865299900452177186983962238808619522411203042315924646677554530371442897743831643803287571113561942082090516462628437672149671991001646398179426421443516252361702163182457703292765347316880505051877440948142426154306751633590977205776432786241344534797297806886347648129875846069895667323545750676280460694440907001853102498013259716045719350232011664745171319900713186393456893884088750639018762023115311502149510070765716580009979267742883016864315187079111144564617705451771794079184176888995605768675869913596310154441445464928556299823769215628756509859596628924596288155060499634945142420827242460515452795524696882616236445774375807030839963972851732249787970690502504310041629284050337090973632394080096607279279461459873550863761490692643523454745725362774833470479031875648415821165673975718842846775750889198664767890457418552420977405818363203949370802356637875865232090535990635178291345625829240303260201088284686392496733052954993408242566746342757331916473937238485221872478250956438314705458710476662618253175085012451894218649162033509385106452954726400784107163472496317301961157270424234494280608254871336783318412096202723690804053260513940506519933528565733748083950558556588570702943060690054981585635956154539947935178632166313481415142451808630120335832422958301901465236094631298322755029827679701942732803819892874337236913608767673904089338274698407870069667436950589846565381320310575650812305363087693368546708434124365760183248039480570294303735247044453563388741937040049929238604675797594665702917271209071083786560869628555855753999440352016983410612622382367963198861766023207487342918994934505940982252903460728407514003113061643693157633773868578589495465686864106348539501808459489329255438030808901070347529791300821933111034978686623039437709884432736915092922174760498333197031551182836653979829774874284393873735893791328089678966009803403910119668950496211682567714786500446489306214455034127470457955169549409840906630346874878052669146450878612790260477367423000184418718111147339480147830423087625195827975826982921197303543081437950552289886369129200919864329629726753791403759996909713980204016083165771417938394758335556049408286807388582893574701145224695009332852173455861529231706484616809818995593792207681680374592047236949604458059510892700316023699761647572308241832524735675577852010006143180730203052736996692937916135362400781409738736645772687896039238345531899400958166276747069571186181346874588835590635138122576000313663819277864107369618987115803821227162747279483660442163045961120098926942050694947667326027019368721603039717210562250223052603763220801658190032164187770419310339299644016818514329017231645057546020403759084428582522856287083235884083393671203952085488567041617073916996954303458538349304912671070799363278314634930636248218991594307870565994428915305367170134031603311061991260380999389126298276243893398488652753359114150128153922056892697243973882604716519010287356512818469118896569323155443852568502607961343480962641412672366210626203526694013574572047975132587347992557522315469418331366544361306451747919265283879725262332330597826393581594234486963705191414170459595522587486303833340198082619511120946112655202288406912212713943627234464838293058870256633920242967030063146159294468242568226619279287453619430829650026547815116740414806688421705155993868401811665874387423290190557484289148548152906006604667952076881053441339015158003972325741327681396926760308435082421185922316486738930602009741786130007623916231622562217149667053630979173307970155658893858485371082010183025332734442051649839825167149771858286496427705614534476622447636101805994824794887894617197454430602941735701618191089637885294593591663083969516940197875231739829601811909758112780727959268549411947253160638507236906295279918342353504378404802676037041769929913205712261755389224836337507148223613560644952215624659200519394580658396912823404204959293314316367155074453847728573656005484899085416611092403361574463667997916109287783655689056529371320126376081481269277170515323073094021959473733211848382612775636989761576514145751601408042981389380968849563446463992264254172860288974292807893863746841333156986423919496085053985112706791745181157633511823668147614828876847794617024360902574901880579071311453051450456538330924880692408181347010922146147857336267158225168980278192146519359691942525344315674810589031368364796330305837472011274116174115633493769590031425717987914941709113284674746659256785845121984788545447591706118012820798704163386577338125753521665955086833845296655203537625194072788044786784085300688545841607049770971482366512257220256106462146681453138603251076236067898919151865242759613833727314225456052118745969461202331967237913741597361422541022607563362746787887308356895599931842562809362112810481330293005520485268217577254545139605058103382770422189001044508586158898848933511783835414430984218139981415072202573356152475999231807418283358387959057156321083023134709085071210120252824048486438103198208418023216795632832889941271654483208441171289418784852234062464649783355641383319335121727602683504112098472268164803473777884100797903786409561655136511223080115702219761157842096280657434196168669029010099051935019170070565778015191622973204958440210487032744600782941162960911479320951519878792003425893257235732882581125977103055777813195885697677932589021124131591576146711325110174627968157182047203382279056828484148525759185249372332160805092090453171706429307849239411264579034862541514329421149262721615034954594728256649659172131804342945708227302272841511836405385117510382165256515895339163210345988007498837562932342754759108856117486691524202727298451249358622513013386253006769679846190443785874886573595568761635827042368197766241808676743613273440577955897307343169829700677832978525736805789034540828054801483645542966655356971154701698768402737289130976274880699403447623813906066139283354941474980223356345253913644396388994772399984299543146859744178850531150703062605448769290393027524971835092308379717564493233739862175229257417708746807356627085656579987851508666518268018548259945710627121805581780437614380734014346523252077169068647540360088716390508978641016035781339213201620230591230286196634577867482316494945737397898289963458688386526299461501698228990771226463124966723322600975621226935718505325240385571090507447164033675966467849378582795917604954245461320244294338288383741459208598037324752529125079973218024890663410189775186752809149318474451613772904387865621472442972717785038556883655632952862356440378599349826781301812886392141003790221216583844568094905670804195309992617457378647699486595261719522076329586906838560170285036274946330540486972025598085015657891102022527193112302257768806947991973779777066724810955876382723094029545520357146691923577286379832816553308229966803561787952148261125972920485339180667391736666479974663257845525687503987292138186522923910291682203516058644917732921475092011222057891178015948038149416931979937524554123322415117576211379350359447627118769175613241990993100997835175061701552733714558398734846726455507815188788299257262751991016943904584934225718629823672262702246156355910333129561027927898417467698718770760769234950004482767722466131823550339965021291951591797886396317766723657853371159007733051828517551320878580805193320123628834936896959500608954610845782028479452736208067985650859837818452918375762995914106708900134472278431787079830971671823477620565728171541581873230426238047683544264880915086798883287421908461071577474699768612308278403253852035435767144330332336196994965225659155014415548364064708320128535224747130564123657251531346942741932003629061417738387548882518079960384143808285006315291394025814299195168697842677013487122980184708127248172466192520863107591635250733285232493670297879905562752541763370348895138733720364252633199695058238288762250315683479515312498250101847268446150701131719946377587035229894726832918165257708438261563222044404829156825058106520224506051960143009668181995994603671893130026079883219288889547243468032323845197291447161339430865678278938646922407376168727888661471664460881249785187743591337009294253579946193872426768015713234511558707774694582198207318116189626171669411251673267182561692843073455187388369805631954696804085142596027017039700383417242599688408337146876685865424533159410503208553955673227119769668518952496491284852673742199654922424052564217905878928056412997740976408905641137500532651293483607617696238378104293105243604926136760319328865404066406520652144993376707612691656160994084072553725493704819376125017919584468164796316548429757712990965164480513961912940463424327398413411951320881872444862649640156245251337812729849298844388845133660977538099121049959207967499575670077659376166706057316243235745247083628651221348907863248893324399485110913946919126426961320290679256505239204687812372923130088137894796443851722877667688015507743673170884163164733136796049354146661694174205798828090280011005694747144986895895749161755253309185193226325876075069223817311062029705564783122088572267664293386282501178337678146079898515135693985011879766702499520920272293510362107936844222185529821698721767906358318968379494226733246589632208218759508151455277343090749060331879728508438284126564589339825665105740922648614608206717631036991665820076465496431546110362149022590860485343945486134064924112595810413906803266777955174515715265198523197184410247271238603897631721845228354723011724892984227673873298911134416252648354305036996068571872017962671198547273521461184744986364308397907963766972381056154327369134539056611371881449002800165685394225725349327741817787017535177840891936662299551769351461927802794659690441327431865885132061421727987207447753326798689784619545976765698209239653015393066174881966429729072052309602375024803711124534656163581096356663472212344821480864493020568009870446086868301112684093524039004073517224320610186645859168222456022683380125767483153400842875846822116961893675315056638688286207849925872481536955396930837320543163390119250266911540234021205588155324398537259081122779065290472417031951994067215455016952151470508249277734452900274383026025412456481062526583078131354095740640729730962713846345898282300735635596072903566168733716122155903050678770386718565932602024588474297676377219716717670250094373643448513446290431037567354788538854522898596783264918687781101393521232427720009906189152973582090734381611581952132236335409055181186762799234812521396219097225500707840639937087037355465164589542830916929501924047592274763509368415501230634802700403817692143117663978445442703837303993494526827742316936149238565216598222458220355039043135478842308166254096445870510852610945554345144649200267779031686896838003100979869138544430665709783091464329656423861727328042454623425469055222109702707319067467290812334454389612655935369997980319863740032102096675008279607991982549559242550428044089755076204168819763896603377031307274887575644874783385595560522395541586817518275468932288419983040390418573521837058594447504717808611541365782763884838853380202068779753384929963969155857062577354635829087269548217309025204692686964300164880649172007954478083546664616813219707957811843492697786930317049061917695091882098045416685341072283477036689235594292928201593042668141699275353747370603585108849821251306334027913111068849002333557234346239953570655342564457500644676391228166048113788348580962003091294916780088676833797230571097596993265402409688176107084687784824554197671602790691582757489407430013254757000372898344406911208628676982551658485875920179168320736595026690047081725414345118440384519275800865397959265322354514063238258726700257112748517177192094153812289722252114459897641621904475368340884499956062729560803414864006243547107717224345328676559121246514722467995115884207534475133593075934844143347311236003922131770127440825370127376975820414425916220773414004881622831140172058386287437526286969038631177984060388032664997506272701427644913936010161828702595046510105953266910734111873297069349135763622608998978958902439402821982913397799343031181818449618696803215513060435411051463881970635924156571129335543744503086625761985436522345934620144828216827177515203238427811868383938599295440337374807742203082616881281380347020858189696583145448961245379503239150279757427749777595374076028431650986664585368527335685358917745160454530134401576158507631245281312163813911992579578081934534865622672642308064828856414579892090065928460451235419811365395632695012704116992193583115787488492150317816533050560637356100330229924058058629505052502750485737235709002926665550723617663705397145027446560697934253562773191060545041838748004839038491926144000108122437780950809225464396631551769373981712358667671064619920668944456479169754947623341094377327838245359451975166444898006183062214118722352234108380378381960141554008818254166644123123669275758396239995830291406310476739646959880190777441966390590013225920914710967197320810981151321899476134869044549926640191471288895649191663866461085288113023612505986546341839152946483591997502725845917642577421688593868113125584460328313581024554262547425613669187226155327206754600346915433504160273881157743346343702537247420650410031919148031410454885257286432371425633817519253284761917418595952358420583957176989069625298119159457425805100103680406641541787353384322223917679283998100990988796815673932020643399680288176954925395524416878119869832084259994723262199182149398074964073549490045650877700618989898979889005062458546190582486841030049733815375684632816071238855812741693234263623279267466877837608673566987674497869428779393023052461442853056376474269890138479171557755500485493659604620695302343412866194153753832768792435093799431995342696809723798317729988833651505020679605550945554160601120835241890696420229277483380903421812866906233688683695778442319253227396129273406442493924836612766248083255496645726574362103577301428728614893976073215156193327270984035121117918004986738137595455303130492311304852350870323675660441364589426216224559713472745798684611263507565447037164040185252674575393898324006520048839866159646672843427732549392536174841220444387145640160868840640344384184329719491912620494898096922691858979284193592344515637340629961761896303085349307367639495053977233298733173431326421468943834022198227094614363949387839386856833270700368796018478055335952753123320365134329845073980536530300865704563231305596095694060710743847861531919076816588603883479298883067915645350454924310420171262043441826991456162697154313336759618725674118686216218332768522201792356558154553015313844931928312587056080156190360025037824448962196600244142153566302790354595381264252835724920967917081632636290044369717834532843801847728456768469885917316361695761457934287047118409098660327779790574747774738689717621705494973060165770657241144592514209924226406993121063215100842770754457178213466992365049747417758985350984346379631175763429625165758101642905616495413512586315919489378231050628029395710367131989035962405906744414993743217581701601272390555574378444515779753482494953854210994637886764217330235881212761892705910122179747993294838961985812211503636720763018723071620071842210440501193999076834347511987572564003998553616027602887209720392945437247317754497682856529660243582255544554083565470503828338535740832912946069193413729779779662575524870849829123806217149117252531423352178920320432952884125210547118591821539755856300030635748267429765267098196665418417141821800329965057794924948828287373656154327278851997629641101697037296058000214866793534429816920658609340211942525770874041698825509638086321872465239366710372380134745397134142248416839931484678485708093663564050026612041529713543934309951438767594879295911678368263178845627137828636830149887202859285979370179200118585069915716468287291491435206532815627920258256135557662327575957448710693293565138759972400851567022179848740677234765609322193597942709598545583889522647546492852048337739983036891660745695234119022346611163456098449482894500086414486746772351163495816799350236395107005264042874459938392890093981437237524203516817693517636295510041571989994938901888860526673305710105106989355723439248689628689217765128086092465763723118870442816005467210246493696539989253863975312000818372458425166512992305807426422624507149306180089983457641461734276924480496591504832250405056522551954615753079832191422420658020468986564229215982731307175702657121562056441243677229085352845868503354656443974591062617180128747417580224927245090064396549897528489692404650028246628356511614929041214455108536005551130076953511945519466240686655234249415776881182625367488095427366516170802668971280931277137927656272961900297323747024757457961972349655939813079743426757919411755666772194244080412527812526816636551708311956734710359275693192837628063343936630964295693739753671071719038335012149709264945473594156650926968769262618186096944351670847655466438160040297714066438914732214491425918511181625149575583597262317439194682828960789715500059064036596917495488416605562732241466248058663992342735622663212538970651990854851074692198931791030182286777122190031398366922480987639677779565649758737577816556333099767391003992503494771026201315984005045741841565080977327064999581987432057709046823962390968936981133692181465395297967301337618308135848467890454525059232694340263352175563310794152791235175719226207952295292656003817555571288642495654338298600837309820752898228782208256788893331339120151844140291437174609950166983140890320520131171822850706561780742293788443102318078111990586946708444125197180137877342956264437347134631358607238532384537862719723582722148270058283947058812155839147447901993428054773393821855679664573201742936709358445311106221338837648623444379431457575568744902010341413505671662313968590571213447072309702066111654757129044581625170701369030777620150027434300964071619944913002380925291116700863842885902288651469556918442073111471403281462890140394823886135989951123596920993492281325050079823975005802632063734122073710640767831366380086882584886963889090902511587590767070504945827014222307193778117379260739207648985850674030655633551007978666046801932839022316872684724146344803193254907329249941529685674114433114941977335962730570063253447301686538650201585145947476922440387043063656954761982304284870523981269731575691130512134465571719091042808554786630262131539710839878597650088750819925191342202421435611967852069396882490476382635788832881035053589664106883103277539015295977297560729023227330700077530150845336533928976514874495940947091787930395706832058672763150574195480107144991859825957012498877125441483199340089976462627475865845831793038132957943545443743640401037268092795736938882093993282899433497403848624559471213255770938918064725909133747037282217637931681178745574835125752002201745121279057885574294548174212241780539911873473871581165117639437018002983618598311669353173097997599620164746400432327980429856306159350315561619862253718605935671336538121014465407647597619533397336483499205800969102341813620688566619670009012950084025673127061762879314065153961505271441501620357568402243232295972604794616148302023743997278099498037394664709375200461446217418778669168023353232527586475674771567890904069837283958494435709982163311294306417087081360226819800070391350325370030851622485517203038649325238824315158751659794785564359862489528522104282004509753015923841617937988648654133477950823375970965874021093422104965939448185367316674087230487018015718457192654084453702244014189847190010987762079879321956285564103581914484359776068609447242589221822581735183542313870548042014522177800185232188071363151325109700229099917636821120660343027863175057523416189008323383605916820294303250739846629424323452994845002927555222273979028942354300074581502540734842006334552783457084333000158563056263765355679717487988376795766433009731719480262905211631509817913070169133976950773873438889141177477660228169816486920157259818727613633045797417432620462888827968582581595372389768045866109309717209835001448273017980281593111491528592283277564946943100748248389577605349135713842011893078947245939890181805808798960406416002750316091586096405427252429764694292117010164634813233678787631440259490860486404799721785741475182252809535318585803821939696785745472878009694044831544330776950212776762918089323958463084739539872573618345348517695943545398765359651004977621903978306533046189495605511138258385810335147088086686818415052312757786565294692031960869845900702995494107572868672064729013377856832781491423192416446774893886336523792695929447552153496132395577190697997993602209993146885402565012197295912333578029367162864375013625879403762875943907099030071574558274872757287120041474226497004974678410995113266859945849497259067067349242025164848201437442489482378546742732515107601440013235844480570032427482646882912998771902148306155955161091228614386183209162138584566194155792129590373423997420679450287452239155088620147537357807272976801343642390077264541814805094900438730046663619526946033535010877071262557463146419647638721501645998649127323449661478630092407078513467717164327612630740601992846085023234873353515510873413839863053760270599397679434472633582909534856132710938189065690206763078312920438610173832173793148268457709756866922728697119645624716902763001343859061118970232506816898651321262265233447968290733848721710064799268321115392417523611418003863542679371135853152425826825626601149234961554047763082208113296206475435707589789028057194615841006885077188897820154708449594469958323559122179097623613608831294260629088483246328517713257730104652017914947926063383103440867320534170512656977477814712281288526438581743479987219636125125357813836357597362063035440676840865205532731477088364504931554170907382073274903649765022145446572536298956313157414214921445706586002920751186555335769143736840824401748536799150318407281243739980836555159349233877271998030851011394174978042429202076641632511656981011484221140952474919083705369272289119975539752989912683102448217269052069748449998358603661677990792744450891923625790192693700997651409567980268820245496889988012826367378626677156327155462756861380373600713678628826613964587945589321544640542522459221745348043566241500444633655693071782853280502008979910353193900468935177474839291775086583723014416379789011006610919865716898796438427473392473864659732287677575372345625887351941821634071890501862242814561667265560254894411844314897477116094681058643284293995703044495803549491422987036095682655034189769752920993045732833257302389223485682660485632614541636635573780089391471298418343653797137852775643260650275768637656932550065433998130338584856433722365880634273193491772713918419709738332347255491403516238149471213843780281965244082977289746905067285138548954840709275968821248974597939408865896205958765757857339910919628691279355521927198808137583516796227839399434456902044182248417816512902977109948352486854614071786196499592304431861997718724811205079668682893571220868195772142856099813007907294815245137621533402561816104030678542871678312942929257623858833367990498184504694208714127358557674303112282074397703755299369787761428780616657426992985391132550384574657362370658334805462167318823756837387757746659096569282717850208240665466806377715848352482812478938110614021606121364864635176534178854585868630458231365910553793995902417643543179249194772343464942704744299403451227674502693036636726148861623439617540660409432939277386723169268859292310706429481328578705771492199869476496605438673746854371816481894309381027826382884037500556734210370818294860778145070778111490718099937650304736144546840671713919869516141327232008102814336775889085077254820207613146941980899780549721457253299889818772593736018936630427016919111648739976433826484286253947777030116856504274974971993124400796153957646503313534440243278562195466503441315591139672178542712209278680130598413011070118752732682761528831103879706694817838032683357312740752459227759958236058047968130656456074638925517460853205852170894937825226555691241928075009364883408507135211656148596484328696302750275852251170906062159759833795775207266858115400659738104467605094803663695735163969878712503921064506003851581612976220177643505453635983213439995492726071105909275316431891680299316263472489690922599907203553426257699691790424555872236079872830453884724812604094183076020253902250117227681580960600981490761993646982088362528970321352525908216446543025056977878661940427306575947040513525377963888748543743569558954473457622805955287300158585012508309465296862183434044471251761148329276764247259788935138272052895028753490333584898417784496906258128199245182232003892061817679130592773928072351476750113254777843208255870261808619155195974592621227833200616656319249043819077581031169607894880771375912573123324248792047250755876643265291529861301182006282404842486099510839925883928923860568593803623050322020328848098381604091756072792876880261813323365299449334870696344920538033105845589257534168041265839579760780749217163314832502684572389657304642441836708686932780547026672458031688037475608044399178430909534483228158011489180306267628014232559062287082461717842702542942749726699411726522307683354694823455520491653177026902062888444266230942918747378711393984978291001023264491767108724697726586823335391174122522907081566810874158049093602800515253377040451614121419205203555832205398905313642648126772344394363176844655554352462866783324427438097753601488950508572773776359206325640764192991009871149941871813624087276461438768385799857050401977937308574666594458975181762843870198313767639868657213256108395514311689419404565462323608529372091807508164918353128162311707269248360111918893722414672568808300618965480826323287752359458338515097905435423228812448892000577202667262292677360232817151569172473734674307840982938387808041194958194959116048463730328878858917183075635871733433013744365253040180011560607843467848059112944921397753862571363187959684490599406635762467505724316656252898292146126459742366322003681166446022815388823394474018273511861470888536334132495263907993435395032238642933006608254662432046610852866028086141954668201781728745199827379356054955595917517462460835838058222726099840167771689030348684899478224542038852986828808803374357687363695921072014335231559066898775268542132361562333260389552781186700944648835831902925305369789935086100886007618076116596488995009952193995446763285787293245828773193716804389200585537185027059556493636562162118000105933011651450427318390929517802686959509484039660001291434356621966185017259459129598754358350625346171934035055173062992588201897446193553100192010937528957876692948687266384139413633857433936493013235382485842394344922313259201380960187727167078093836581931720167431960763086757142851008197225153464914441179106329215210833215856121980926875573890103263874029170288056463995395570517597357391501729615918149673813420064503407386392598772750155560885155704736984914545839747444850656765603539425777824076584655367678822989303585546641074623428221742154511779450273418724825604454152849211137611605243457737162903147514172299820691667720446389991141867706927294898233507022910631983067235346718973018912844177460519860607262662002677444336797603614588188338406334514778809697354972368050560372702613884515997411994796221843515592605192640612916480194185050424711110136878746798505146678480588766077938280810762246407377901740484747129371974407185304966063700202739315479863859398668039435066865843778916899948777704224102512320806037379924491917548339159137441599564551881367874192020006756385718323795251307970831013869761975004975376115159076243063960881898866630877919678304046536675424909050102630970400802101445315119124583243353010958394532112711151871433412547397623115582472103618334856749315829417136287727041891395984747123517198569001619255251504031485750113091546126519520034710340013294923649004518318075807407315048252121068932913171156794426600069324895582226784555243703174650259410846363377376456418970197193827409386597802822992490867095716346214289908616447097184395834429755609407567580544105824279080268379475095221742844384385999807236840119120247421573577108400002977744551174682868751589130116335904588786817715684591626525842583985869533142650195804045638591815607258797582524966270676743947696478959317863738840709553583506422996944362739790824212964834527544209826796441799365792877778221950633304186022620733777912470484917411928812768611364400907696321615864347903512552976631491012013287265152021386590146052396737204515184914560737018140625625718806758556281963109324380159309720684611951980528943115664102423540193043927976170200921637569994366422829937508987253432730693474770947071542611218952363458263149245548722666234028953308607987950191303272620803633738823060272059868341385375960655731538985285378381506834106281376065983041503402274462364912650290793741934210038260761746849224924521789404156667321045106816263864259128063476332173614633542269979530991959947056478070611198698987462268100900015363488474100521628309931199607248549895898056496395384114628334450369980574888336727052758365819449589036443677132417763948665578603108927995497712484585766982862268766279142357942862664519597267340950118450852907506876778555156645479268145340524182688422208102996347198213343844540246583667609735117367609151173181897485295082616829752722133260118034399245265361487202288058639964493643049992047394845947607318734895664026931233787323534241283431329994340844555380264047253285306691342621419318658146158584584598120432572428555882392457119185447263096024043823870168169730082862810757963391229588150869936674411934485728456947587572173046668356989440562078012171101134482782454845101831106139772457755542412576579646369591708196861537386424155818763209475365665727947295829386740595146423892464541205673838469795133260974927264140056478177586309655046571881496981653076652614866483090284987256631268711000178506277131873900131800799462200181846263917348995176060900752066675172696327841448781142381658397243439544524728469638051632464988696381805730327587656465026308682076145364746719728795768638460032960627542549210934701112844644096914239884861278978583964625899571871091510382810797951388995617869268779265052880829272901830002649909466449416584255186702707762911150249661330375575017533219998367823888013769478289602480478953026302266638936427588545286495008739026198236943875934955286449150055786401235948554619186448575681021632512277545928623755928906211932346420870659787338116474003437024487492861305505331166350888626541389532140193554905369534691914341696146982026394509025176713223361292383499919817663286020822391964851539721297681986358661320605607833023664299187925472626377095787456117301729812660625231592789146453177688964256136324092188678738959687222754051036556043802215814120604690752207327368968086876060183540078308701137238525283622559483424754360213778036326779086725475341022068737976225475880455384257896860943087373791590548475127723271801238229207944484900324303862754545953260766751631644179665752406301489102967895441604553741222107212204796795856588621839278928381255772989748672945371974096804240075231210917503555304401252846995605865505924663379372807106403075949523389374226806156549436931841110700265869269910323135407410435572759198813205393477755837929279913268244468731673741962690569471896337929424267161070220822936096463122823325206842704472157935650918249174750904332817954148098373968629254458712471701273857566546541060767205446016783282323630786298301840619964208992438660622568812758300012808558102110380691206082762445030429179221478350041908493739366187444917572344129060103863992364943092632205952889655039217977655954940820818642620785595940390619800743512920878386927856626326484999978186744429276705459785615171709831167802895875864633112947292807162657794690694089351769223115935483872202214689883898098655664969534671749342634440467052796819397283791488691288304595953651274519905832337352366464151723699509824192574592863593011465118558240448167109670739027962994349367560710426535974999050305938177498598069768423460708302320485349446083146772289982677735112594506504669424735059570295473206555832081563495447493370128767249379826143922242786632186843389186959305935087590667039469970530882279503529325978068188359208720108792659178733326703264354208326990064002657198512349082679747074658659199687480341037465266663337218539441655741979288583897393305540099184121197882511492718494386312187955270277667624981863877195590504608276627974322853210757180595059253256297327581566348917257726876418654548212545733201949574044905721165774023362795023237961266397735651685928231311002451986981527837660392998778199910552892743073220349668135792617554361116164318641483727069941409748945376740600406995627752021603753964638669658405925918147941995451703614674160498826073344670669835309405614025328901286246206212408680883015313911417260145280031987619438874428401948971185274343974921848589549472538583793908587893051935514121342476918998764549530788800690147422110983395663197418173803367746471213894046485303552651808406425510994569798542154825868708208846978634515978078640142164076493824023107882981552654357717081788894532116415881325241261569942874008677014437208439521372365040366044285504188970134952761427300103429862088744912899398201132786280806607236987097337575166727791367249906818870127094807775050578685763646991925762747990373829725461637161044894129919042602653852391889304108645803463896975239644880595281037651541807848792817824445451014940948386115022631547726916812581881846521136310983859044326615598973397894353957404325306070017626346836844151085119692480735944565890474473143378795534600585077011140127381133392192230051996074265954189629826381948852716586828324048446704550650084804312810181012398683295060675236049226515366956671942172241486216089736446739984407248741847131626559812745927901514607800344830139124600031609647491509095657295895068245925838615981082051490433342152604413545288240595391533825681393391782968564775137257482282876284227803670583922025068480236938150528122839844550245563270841472130793242792379049040147085893078051289474833301119976900554116224205696134405747542600643428076257527251802148089274748340158139861380924986722986355358283261496020826059041295588941115009220076644153294129991342672567266688579865949730813801560707041036714039051098910301227446759696752704020369055267122699519478779587084251251873828593608432704572871458964994494429488031820383509473613734020320213451046676016800328986181001430008973458865592108249444167455851892501082859478079492890913257779768119303556523850734424633212587979809029645536802235051861168355533971284550945936370211599947726025088343174365855130697821170046655826920470141990116381933999797827425395649921797287191359560384788894650010533311655947983370484329660082145707348285739275581372028464802956814999448878964405020016506270812664833404029357785132366038002158975290454292135994131372974876614776903385680081127368284847248410603806080028075719115413623578002443224104646730419917257914638795489992406075674951035386209074179848641180109239019633758069899012187296042904661302351062889658301932119329189603884648200702032487460046654709332486884085753456177283575449159414589994169813845268407555145517773552258312766881497306323057914326186255695722176342405801737257254507451389931693826451289976332259629503225672706412275713018688618234948261198920323652717443780442463944823537841853614859840827361512049021814341072512977674167093094686101769212874694290681917261056305218924468965746226872319901975318834953719295186091942754802535646681386141752644123363190181746761743179276233775852693243563379772243929807816020062621274291580475234047854478562313030318160435982221788091874036441592212124593882140499917968639677606366075837171949823499216926160811045108963885982362584500155741733561533269012583454908094020736150496763228326614947740640777986044769445772153670520848533746514164054026053011256016954844627855199027673326192858041695277670885818523387093824072561181951059898632829018692192496431922549636067368131104208053660425207620941737984318752043946261580618627706308143845272578228312902473384207134813000176800616811327975812532498609075657175774941778698910250110518810306606918119420771414709257216752081291387706198461604231086213154013435620296039885488852950828862604917964891419677093669561937644123650182547329413375366622144747227636867750360134632693055659399035096260589832577744854055439049639106886613128889036795651982421657910980433753178146684283224038728242532452565155807480807612853427219051492795168134475059989746632659591689933118613918930798543249209646800045341834405965866941435518568223129136462159567548960641633951412908626153457160113262225564098585086623171266853417453035044978760253928196348727805650509183279592902563897516564342521712181705253309668237143350715288678328999493250178809986272381423093532096832804204712841207100059759479105223114530227733024057649019328400543737897505717930832877811846602434604643826422590710739133985026055763003729542685003456159271528847434824033732144239925852974986835589936208797400061000037535531138041162242077711692709762757416363239591897204242901078362278672134426756032358811176678078175179215017429965836553698808993441718731983398059453356402086765435428122746326128780021017652966056951811583641180121174916318170796291399073689299771206494359011972808432921893078399989850300315404048138058817142362728421526326060837575892516567881895866036230587221046962693116873047307886746167103448084246933874404993093818397928993654744686525155464963556071860002263024398277715507348871987626289388511108531644278729591688432043160949710143576267684394660439508886830182393742281394766980301586455884629459008477446236439172850611831059221407728783368149396772411982581447270480853044535426032708488624105071104994249269989754997980883503612839083461745998439018634538616572384553133490339860576934940403926926508202076323044400354062855286268911408415582108104557127481801243511595002228544767922896597362803747732479500292272619518387091106529128499350648240125394692075372531575830297103142742491580251504739168237969890190090539944821015582465700096803695187027104776969110018695446168822676068522376189962392932531122991147006596825496284741202764113307075315061467658854127121404621181106578639272739232866794876928332186100329153036585658621879406681141335523656699543173754709172200651305126223711513342670990648561346663166675997146607805681401116044284889072961093151549352601971364706562394336317725028528306624552305452363902632331151712802851415681168309284179709675462278808781273554065401133818028707884320049565846345463285289205860487443353659581492875686306449348761577233774564759402984132712621300164627880722312565386056674374940252774371142716321538198881130051250975894109583940872665510131352853009908862645890554238466520067053652303234466992721185556136319176587248967244290322322418806232548476492247342251671291858843715001715133982111145421563191587334650146681516406482914405011994100174672600222108802843619839494018256043170118415048843288686343074403006135780243900200997367458373639247419928851640660834158438679914343743257624732406102758239169778650950273666854343132410238883111347001835347635767757730258120166460763371577183479218639364748901203830747125064898330482869269928362570893775086104739020540858149673548074057663873091375043185364372760502250413824337367790661115891764728244423465528370253269102562715084869634782332151090625507175799469090121797366613205733641788579301826781522295953898716546907913815146222116711300128483792747006577079488919580730654232938023502402951755428079133688002160622701100461086075856260643172458802131615939516031388232364661256263777323330559050779914096688686363969127006717157553218509394292919986394304144588287867498598830820716719534617634709788912735715162301280977929693868138878095330939947766319110001792328294153103136156056735788500087282444937082010072860722671970273810350595490633749337656615527950953150031192644198320923767573614588484023422489442648960747558091495004894264247060825722943106770701618230241697699611508086198959963213699409687280407633675050221930701045638788494734065338038881663042164243677782050339141100126273765748164827461005951190101028620656747088769693027458233585304345916192979592670686528019042612434476974487238030517964172051078915042807143203670426063759565887069765428153552784310990400966850253143447330961068958970001795107791984323294205556313142611190929893788710381835350521755649117721545737410326645242632937759270379445986547192975404517499242103267357425762225990766061212055179305162551850945659292636052771735453394631021548711227420335136440934737224209457430666827126611344812465108814467352395094549333941714511321046455900684897578418447664479055379821047587750759264533361009130782610199112722188460090165442882005828855296583831954155899055054281157648605770919167977824468569227787623628210174135794871735110057734039199086504890301115249908839400704136397532699820109227349341658978294218175208373925496119555944573446056467830233128164919420174247144285894341693041189057383505274875465635012902894613853890333113511359124254821406618422956928501638011604228212836282729175958338485056902017816238905992175995778841343404255739145614245938569007527988535808051877082525611746762274325033544354341004730713593198867214807552366632160038573400302846043392777124963955206204094389244856917220650145173846511007064533763073875586933598203097429539227481422152833676005915675077502099203105314428503584074274289896964401054737210945451809769081311176022430392540293767064083203670664212477137201149982970489016099226222886494408849253110232395537466867155225294454474185674710536447677308255463036711721435484607496441940504572499229661720312017834753432720013104914594770984517764554010781636714339306277467688563282567448110469771101062180786175690405595979184292211822734836982751287496278453886621718646153305334262561486087232705495662274870529531443933501926990291916395158324592546829403140512080899874849729620606376533107730189428149641122912994336283525778791205527002315932399813209173947621435189921879442249423093331754193164695763723627795740719988000406071504763816369922959827173284398223762769040937609506096969985352890235787885180485958951442837769348826953401002047446209972278764001393783954275554833814429501581589327676288803309812027752228854104079707780015444099865131378497604199031920447206668950203571343781381269262649875703620068685426221408034324204432397035754257015843932923470147815214394768599683547698217723289526983133957850747621394812969685700772816226466027722934970791337440982507936660106264671027713772130965858791086454461925952707555272310732478036095358199629801983996143311361774515658537989012060295922471678291329927428614442075560243794807608219981655616448501907283335628054375902112766424008318058680231773997452347361933184844332904152225326452363833611347288648271686984136097183622855855108807908212455796636346961521037293020825379605645409728567461415355191619362848247747066259796633895516309371634528985444913932688825321740660113278071911560210474503433286615557861029719209646958161063779593669841942377605762176971225179484454704306127608506522086702060245592277874727251428558892413752402648135669091498636105386070464638573650291375861813525314718758349682284181644018517040515177358292296743470749124941895830373448527415382125888839787598921966791675701071668922224976754719813946103738847047370979349911107875895478108594659142306269876563078950612074052046143264779073263454930853331717077069446781773887764854911928049617312425301641309936918885050043607423396893539013316314038590179576801817987328837518300100548109446442442119502098360329060587837270113574143489814943132838567469421162451594443879690466976955775296892034230543806945661367270308983480217478615051002403677879861860047420991577776604538564424753870937167163846829407231682737428180080207551584644335747884051263062606799807307995599632228118484621509857262507883898590455891512145007853988504881687112498820305062216707718283272359157197397052516454334378680010279014674179293358994416406842158738682262536536432290231964784945641905128081143213591410567539687670211405579392910881231642697406640543416655381747778243517015388021861099182778817028282341268305133886400722034302247081807300549321549460478529158895481312448995468291943435291713238849392787918239861708371849899271678899232970008667854692261125894471185386308211593793973336554207476674677847268805385617842319653862839218542516153310978096201442428300900657622136595259462081450427132764996097659299598703937005900315928022408586675878569385609860637332686571231471009486506085800591735530520765960707330830632200973139279518009234056939248280708470752979319946576262124125112771004688728969575797028072449550538833641954333235961806114325115889318004045398612132368230448377639882684326809442501033280056909757360424996751276649012369412426083568972543813565037097769182088825572671113882094737203828111525130025158508615909908718191246561021984341979624957778282456466992457590114448026094076275438690659569509822451708314083863737470625182708290639758179826841113797746013320160745395630218510390224861431014790056408312999872092370560826125235553471725405484319785927707939118745539920533084325267471522034999117120549947062084874536677790299825132044334700683233711095361130422319682070641031563854683741568412109230829748216809744774200099792335736246941007275368503994973632922189929615348979442080048663362035494455040855608602891361602133368439750398115366323376007440821731509185804684838941231597768618844427331696588271094728486041655053941485799371573337772539106323146940169163093867803410133827926136820653908540260988638299554464405603239436703971304106030137254204701873588512219575708733303568747419530894042294090101014117252619521639342766172300365254610718599265627974390647631472388147570214114775862367454806401948445279032550072773711256349110372233329320262717561452714536768255637898417035929968776321441224343727022199131914076375129168563502367785443808436966805793727725712175352545747827548031302234270475712040111024164775198263110040180309756367766906061083104685152121097563607254899061648125738605445462872480185020227065859624722884180497309096454877929274251567925111323120191254882480276484629317229038797957589611142363713322719514581022427203438580701500207184629482958174696394608700291890326095525098168347988828384400605330326141040454569326842058770420699767531705360879477644116271952030344341744103742700706702326984137674415724561394585143468896124429139935239205049114293764069375165972089800039605419449848426050886232867259056723922169617827067961175527711372685906089198225539132975959033076846384970899458340703443414470744116226260798266629440241425448463142421530483564691487458391665380352927106615954114778122258390656991945837337952481304245539309642798432785988897455302154497849996898905093006676851604946815425359448022721722595093311900325672093385924800194215603266898398947490517877022358681685385067446057878749691076559985617627467302660823754507541956701424280467332937930098013982076238743486298609328138841574827598859758692171086931366168644321425933809846215029740160039529218238305088766213140337166152948153990114581227866813029290530801028565581345250366544966696474102436204769794264758202548027741337119654077912230341647065913571207635717217933145370049355998046335323444917638011680280607985694704454349487037511520112169821221112009634831836667015041333327860228124136805516985446803890424620647216254959488704976596146229233914548117758384062288154271744686149266081062136661862618978609372555927486236602980743161955366657720095066068829412908027629371825946726869258701256340718638761060051035718418165467893382354634733332833810857258914093669370183785968306012940406567437401854360387801514433631818053964533262330282146495986423260829277382786271075017749594194488174813084353101930695632884074386216123598119933797833100358852152594477428384638290215333415506140334405815279953202087523186834471143548691856532355331660493121770329559922485054826581415875508299619942109864794199428784736628013147217879664427717769708429460772991822046134454424249185867041169313627372846284570594368750107764393396171607218516042528257507182804834879496475107081386548400529768089848183126414699296362986749885120465075615915440827442196897487059352240750242562187506469982395945570358366767821741295945356816920060946664837982496340272897335067634153265260442709638637368073132375549389591213715545069948426516238001079121328790975903893347526132211425601638910273355054564350877395228083351936249662403364977563558984963543326328744625745409888700204724234382861102705074755599454190519597755862160998124445213890733191367835189360361597852163755113045196945078792659195457878732062369602290346689800398044426797874710898891099569808155767194467068626243649289744915727986939165410543730564073313100947312436651695351573624767040261255394644389429539531614695473503057368372947628675248266872355376883774968280873983824719161041108768447183326874111500426373208110571333905185821614770081280386570511705181328006331791629690511017484179031503484402047062759152010210187372512103092619244207759385487016853467169065842941511129452694319479623742636537543520320708811650691295136215989205620690925508524831066424372696713329101248159734584794543195363707642079305022242026948457051873364781761914549821172783345049006324331229026966108407150744233552497083880622994406366169473600131013863232879840127563387693512410292027275186274241149346188043534393804773888563922782115678054763564527897931431358047086496695343720682381729644494577770877676904562052873819966352242543668847002699686397700477187789426506573602610200978413637224582448615909523190168681746999740377654940297883512802895534202100468346290065153095468232654072045751828502366490663496016548961861287870563886530130238216206828968857662037356345002877832517988333761511151035252759740475862933576039763806034501396164609833425270634614193211220861103392638439700478314586329994988442628509935154699261354923672409116517413632173427339785810550550801020939360907086408581463560525196488565298762008748156982537604601354725251673227840258868076128687810107758661133516863123373105190542902489194275302567779432129714918477435432076054336823700503754075786311744432711134748969196221143589368379141748927503193030605967370732660736584555464240281316182297733164080198264257845023162360985278928817978058765052629295629158574853011569843559655061260427450202048097122130980424597698727853092270492005952385364418879838058838670439946772879848442359775060869654961554819202671191207301526570282019984283640628746571042015493838033314771208927705225857076871622705851796619239180784115581707237359541829473063299850827144127414456204235108267564336799835808560969593386023324290916296110477833637651758632550348382477034435464211535674063509082187992784893093088360982843278638180214281598733287254146141991371605728871024498923996690419873854267468749937234225666846401231554998536714266234123474206263103483373397155731712264413967493621405994473311237519848544228386261744282229188340925887062955206167854938117359978781738559333687139076014450083595588853711722448794262877082984878964781516730523320093248802046242262885349878918232728963686963684566790190641728030650436027056933350651361065333794153543268198685040929454318141066749251709805509493819714776013000965987671560754419060838705683481920048768959325656983153600508100153765722532110631552113801315755946888155716974112888115193099450860843943485503938479093323792814187934033033085805338595974650655105970159751043412024192978005338276420658443897275251169087416304418345343241431681130595753224539297054846912170246870223331216230617641436465548330229627582799895676165917017789695408083978127154582142716615047845786894303181186940935629029156556418944705260049908259369245705248409331970539514368294980483754680271111326982187399337777522397182632842262847428245040470136270247954500871487481630582780402355009260627973398387891763740307463598310366030623500362621814643066128682025596656100226712928406845570721284691423354084770614535496920840824629642652954746100373869539737015290039842570754164052882331579617095643188172833071636842125670567374206212727921087753212488936934629289145409422100816572671284725330053742661068435659831876063650565547521300008934586356666174096299996123116466238058223795590729128489514888780982607607809190657110558665145823433513195576912404310445802800221988153964325610141807753021875668517898670864437847148666145579668034861393970911810083845505545853072133258636834478886204932527316718677476228681423860876473557059690314014821013528300318929652415348947350019535921667321174925281498962348812407759028520162669873505095087788073904030318087695204158578186463544479139299604032323987534696693062674386827006935557401385174014852578084537073572988049017257008407366767283433280674384279612910998936049092479398327836096403715976383932901580183909356939422682606238879250816464759004333463296907434767408333757671284442070765164191550915530050036570500968322481590308929267081710741354808525387363210975396342593824428901450620344106783986368017708595363913937461870428991482237844617275706553976974737754237232873198357420235699097261592540900515558623079826154398718092286155135014808351619997561059647067189224614314611879535270863458882030147042075685328019945826582370844745298471266304972066455580498220100838485318594430557583540208719084562278096817975976465562489082406842515969206108784718670629641304158463877722778829960160136332410039357493518570671686823106820490216463259568916770115924905458766518092159643679688267477737970818649066498132874255427936323726076996238946609797297214194804682141855654550082480858689630889850076402575947119280082843228760236333219140586072170053332666243487185656048582702877781252947020420980974780567486259466898662500550873601370757766021931084794678503676599220315096672181023666259025859474381198141040947531314900242545515393736974257149795046620230443480551245337573073144626716736303421115376275540256811297355393644665263218410399851533877338377185921603762204422681055509830456302841642864562021990334851496351948564928447682255605173592918501449010540432955808300076202482721640670071766648252913889410231955375367490656153618779730789824131125005588666045711126411181009213906541075254497079792926203938359729850047503728706728112731621398902392328397633115143251744502425636195705748324605413207346833325872050200975024761818086794750347769171677873330744752788453320543952135481780799441566847592564249993084846949166862402675502661793041901129853778048097872577610942570654108444038812099744050603596596659712502733780838908003893526921674729063207718446027244013052666436140742429321696995825971371332032479098684226656767095373551506081328355308966986296915235410025500880266369097091840868104605190713102987944183429191386747845137201024195050030711704735812219398275296279416089826860774036389956857956978326972174181312830097616704989571336141099626768275755862764623829378164809076761895527861444272455143641206269611097020935617052293205589076324161967184820321950408387770056399511454320543248205722354422380778689679535066256548710659086904382489085398225415729139842348969614346046699578047447860448673467940217480720305098335712985538474867143613845422498102675045713369809966864671137339047335751877080530192262447072636992684357604993997165139897525942058061225539815606225244178265561157626538992581511211090875224460629949054392735144443945152318340920008583031671144687813625393641475285781869636031932077618972983702303532804840063266137751487079866855858193648959707558285215801063063964012476103194898119991759558584600256341203147252373645054198503773172233755088118526755940646002114463228909628175097429753470073597880788080030623027434001408656956610583921361342169887402410778366449745507266974212755474760525695068650226945965887739638513137253853059010160032166548042485007622675289761195090361706475071659262751343881372809210830966806915275485061874751379496118790334451213737720621176016962235667158367101835633462884204945035485737931139039327670504733398423136997078104368544322236328405588915420978767016660738066767971310052445350872381717440405654630392002648072947283245805900444036748903523217042724124966694523261444002312582669354337900071940447813198197320981369199381428748415373566087719386031973381856197530693415155396159143813885389234176272701509148610513845959788375398978606377165303180349366339035959091609078187830607897425200096927033365378984576304972349589106306733745524932713991835408255085591458850674653303414540995773174267732827199163673752534861150349533282452867166677354998550023923645810240172397150858823448957368643662593933438466629476757545486083941263504640792978196263408030051630822585157347736256422818468563538078494445508526946086304935843909388358579159661709210751774696132222115610219295893504487398534486337616977172133405825299381381617173488004663179360176777009728856788384780102593284907408077935015714168993019171786280098215600225274526159510789716876723440453947632211900164206574036336581546158034966172898849238191853388828738956525811713642943580161086308246513713223277869260648829819253459691517314494822137823673865919478420086187655726894005300988096257057502448138552854324534197276615962934265947522510684740439198734831295273663933694111527970445120318048079359619170323016694537165690365205089148333307058901185159583332327380119148204225512512527053899668506547197228497164949202646374815121902358628703538580027355022118418308769532827925536183477199478252422774118201353535414628973876871940723676339168947721856804347873770824992296458159244785425248399722080774902569699812230873519496745987492430103212960120002728406205876292132170280475795523635321712272537996642987266034350303787285497138820034650835456699182136558602837546586537622035676374908394186489984363086931093438089371363228394539517559254229780052274909559818299249659227574003239142266331743441918545924924852130333032080572259612236825170835725922813264534363738171553896792624065451008497024426263166219255581869728712602233273183952375818694335960208723102270242239178818058205291899583963306361207027185001149567157065602405675780854692117984135363341273042063662822885386768939468332712260504259028359808578651926554982454499825705381669484745869564596347459778277599163414238275793301652332643777697982049170661862620878298933456854110854577999650610872605026171705132915381230346270338923141908511364604394101737138622315404752369009541499199525438850795724827542035198719080662560244722769601748379041428837363817029717088120927859798103372591791895687626281328616312091078455936915293565118666276916656314336612704418359451402160339785547309488432311137942682500381442275064458052821762847346392106874401465474063009906959678119157306699266914522375074689283545331262978503553775641435179155094972936716027740590331894146109848529696874386027871066797441923023593264418821620844634564723898312331630716923573190819255639363659148979433449826916669731523713476828134392122382235692769749073554807418991787720265131898421323662761331554841799912025522329600791329157886933706825641116939117361950500622059212087295177939334227100715717276535644551733692278296711155741807457024300656606503762144007302974424365691846983641174614520371386566969211316524158529875556895938051138643732422969654786972239955325642537936614370869426721457392125351553757076906461529468959318053126515440323919546879513198433396127846017109748502546305273749347907558615967622597596464176575926326311489118477391779496568764053091575240668733535526406426260384041686918426807019108623761687841472456214686942298558501637370371516772200141342589778575772075804402528103739427888836295555438369833644269928826646024313722195372207419857995294139132013130429012589324697303013879983615444785142294682064913610220558968902906097560432427427787913476748111025401855378147028214530716631383572654543441850581886148097120812213995645892420591321831647183467597219889195937397299828652904620682412915050764642894401156820862074974613734372760419119146534963738355470730869886485988590220608102257756154736299603945746117395304093010978782917865711666390702743173457246258727383573272271492410381387199499688641864830991587440846111017436834502723559263522149529491532507574878042909784489070787526312000772297575132031606680846363788997870125454016056289881594724867640994215407388305937044294199536529481599967553682793197657535712632261385639842126736572047087802947633835510556239430192306130053500147508641282435537953982433772776979738377208411078899498084968135080704934787448339792793434582715382251798113697180999956947779385820735618073962683555364656681367338806718962926136962052591016231391484417048563718797980952293586581138947683621024552571194924138491389047650319029298422818936668612562784896451652051858456229458093466020878529318779674907070998681041040351390838611852266100110707501856289047778629242238975851281601757435945544033388677788022266556564272937332821671594399359122655900598999037109893547848613246386548538998573135993924691084468710938362377293100452526110729443560099912779709021325245172080019593804359107326669563607541651077234974431183856868222188468426754671802175183593806118364773963726405219841294752923591410802143094034421332491869487135154452494340912644212025421594502013407975273376018682491763937996934693138973864421753050257938766836462766990748642240445859614608774770091291230219384866448424029618658401215738791391717663687675643101969934316719775182240816210324192208342428690186463915931334260545737495748395086757517275870233363111746179266338118530465857715598122461045295467466306572812726169225211699652153933078846632418229142855280530220530968494303510517707431435863627743935428618525112545184314499809322360760844564606466223009528214029487916465248528408246046324891450567545785886993880556932825901614078201517014458212747374889138357542547370108119916330786471015538206277614799383933549273634965703770567257104415258332390326668271226442967521696817332947477717509164762624186494239045917194796790058428437636700504820070431828949039889005797302340033410091387502381808078441116010341750607893959950924383708508364280192395319994154449910334732249162751695334472948156808830158232160588030688238120883247438689184414266229623908393777235768738570501290484958629569557178169068796436432085747380253807138188784781530482827507663691083111062807788981600125280170047478467429910659349856631168759231512242580822947846422357813377715147397161208737323969876738259048764525597803299178879533742865553443322727144452344780214414030483744100211631041448297919969156324355481416152780493175284693322928489568737352368378084966782828966014792144435661578775853180288252495107154415098314443235348873275980740203802302785711849871905772222797842929285909319766670649618990571269217924757988755824487741074582837681037654378802731468548747904349724062660820422059554266171970501947910183414967216858428892427458400749233373650630944832833778710948028734171047629224801131085349526612423916306502058657477257512604918135989742551136404384037808084965616715733714490305959764742893080773972739061020805906697609652873297152690761732626276495481464095894326109938836660475104071575240597273606862087869705371870246749670280135833613485506504503558576124572757749458131076398028916333608779675006162306755341743916162692159565805991951921332384531209743511546125710226422416565472695550227111255619060589421719605209035193240092314934858875473892168474924801864581956527225908419225546086477878792085432629144268265664549111642963753731481704103762216109376920325049070783060014296456884026204960097139885246120647676472277557172461265100645006167611735508500919553495263822437802182779781851612804230149268000712884470372698446613406720782003337662256967983135559647938776305280256987985605998796394898207252451350016098009022722571378583529631717140792596853792587881747516702976405694068594447942566059666718161972646835206778940459771667339283856905992540685266882820043552101614202920388099471153834229597578410368814527342858910818995454369801148343584714157950946782669435284197579400946473630110693151856661211167439027894329450799904485275233202026292130356871521325313002062002648776714475616344448710270682550381924601333183312494227428918695610831721020159957951497832510618702727551776768031981987193718896061498135716264851841460743259064405388732032959432271453398992479362793005322105074781167401896401807886064101633289246260134763050440166338199474057765825661223097975185924488954780039163574484833912788363524413050092991881460300826591766892044644905395959987710222281116342902896416510540802870391111719116658327738238785094367221569056547049565521195236740075084453123310430382201400973875553550950866656627360706724336969855001315637404323118940340768732755920531124974869342514566225929891484190487629885472189135590673676335421384747125977866541923210042071497667387487434324677285965266337688565877118393454053499690735416879443121143875823062338492392649899909736094430077928818908037576330943721053324928764803859933736946285589153273158514645904313997598195739479113038615153725894622362469265206966828646023694475763847961777465021839714543872179528912775456627531601311199813295603845395581860098014257498545305983014398476774153198348279753500498907195658923249537629062847984681029530325143256355778461118468855692504946498105079731187869208477863519450463678192591386377319626854160545870214772166758637029429923779481129326458641423356216733142502966754634971987268673699106189095535476888867815560601127036647810542310065290383977484996146543929794347189159459006552762359299839239719473084161279637578737240419792923949398952232334565669710409477511181164643080927495776992807730313889582632868775528201430923761253764874011944889423544838234897991502391656015071126479044029185525717821335105909717926991838349040339950661554383561102738038361775033286910710660128981041951675215549974665136174009642754678560680052543154935491876858720375187320160077470929206558779807606090339670529744691849581532550754294304117123449959309897085901067374630925807905543904322734420123969624817731916055341214174510725519608730771622436774500783234478474142211760883756991411208498094000134337914650052837725143550066660327182550827539782337485513998736018479087938891658205212419666416345341972345179427041734347978462115937393183406283285821206036460458627985418136629678884864996223087227827389134979142642972474465808202893793125913469718210745539156057989575036807669831970747390548315249560947413237563200833075960323832335445178314114350355128637844724541849329316557392231625896304197543506627115371858098694699178689981584498121193907555999528642456991679960661735962829497474663392949056371820613604904909989013050508553237710893426681529469932247565749115266811166331384168323983805056344894638022718985190069011346066291042367858031978636147093682741949948813945412607274088020056882926652287283465843865275726022614509029397894886592626135433621953467893062655953534444418457161386302011409523385603915124950005996082317434303986725428484696546380617592564377932132153773875065774799436181968453557538397003692161431309146318868423719216805996215295747975573681483740027382054947259850441610705101739699630390242881366313828330225140407468460560057083279261788944484482651456980962611896266824384813074522398875741322654985559133023782465454840722607569229259100967714882440262561867478240358721071441164730326294336406634754092468820917431720311005344373299431888155474947265190451702975423760574000540864466628204079497858474068915053781364446472991770978087031541412783307985896733201565373753004058935341188669185682340204235131908890865708662788025773178953035844256662464537073727874445800869363335827080159737303947963757990869264171615633974706609279632316326824996225601846443914071080672868517274744794553236598396828026789531981683189273015207827357331718019492752122106925308624719874215840883371799163839685112918919750456946167697617561884725409025421639312035998982966858409394816577215757496959049661032384302392547666343964679495762733614367351321969745680302749227405911249599107770975324998972427495282124980574897591677543112614726683907693201232463328528415672923405014445750857169639739096430618243311726821554645148191182407086196189359704409874723715112987917686418099867584093493530042511872872613523119591939967478695579545458127841000935031492354717243625754617809415402334914835248371295114700536543356605952257507731551862012962642409283731726692941536534006622258263584514816365780895222126795668878661451978892830629686270345788118465822420647583840902043738658878217631522372556619110359714771166465226398713469555040434240338865175728136586407391997412115086284573028521324764577514254464401459989477527265921645372243954434774846238660994957990105487607000935917582167587844805264897069578560650837576302512392564151208606333298673194183753905248624930481062546005865743905441255365780768488478835160356092836506849834852109731786939113706664117464743829268896248165083419363509422335973010375246370108038598839825652177176420442911022925426595759818258060282267499640663969617044753957057130591816790387680460393644070463788831190879691338459531786226413550725937606111551326624937108197779451451616328309077125236342125721828723520990817026084744115519560629797272775606706593325033453775726954731252077616085712203493244708750822548086210147730169430827105630154437042690687122067113321383530976902428669703924031543183509792235249984254955125432067882956381797606658699109594940500129894471379280562509168692507558398821417494377351263793433581611485112358161191602227420671500263553023304626799536437398502494678270195569053768835941178016217149966096037654331952726542184180338954317037322073214075824384697563113294726968626260462532844912671386986026225884002146163000907413202498244649300552210394221042404583533532828080081016827712409957500690405550054385101489182638563742443517083123664079530540419215994465419647285963151757037447921893421450962052950637235317581884184420671796435595590840997782184106567224337528609558264112673775553539836563636279503463481977098062828033512867019255242721294913972158921790184278018849543086983506622597828345733310475175001759190156659946515167836324090033820564140205861022896662246946129346587400974850083436759302243955087252324204547646555732480445733710569388121724814051784260118634907842750979206606958880696556146403215883009527340257421307628863832138994928099078726975903149427449022410764120003358380798374039918758079506811872649220664712441597921201709527609212583502412043295947555325734257439943375857338605340976386847875973712895047238208147266002886881307881675036643243192179606584375432385679236753721697200685365738208661142012497324207870908389633977414544925920939824330437527120442079297968499551102933086284229229236637859403763261741685763032387597413937453446442690729705142989796380851063376391917266514888991953784253351390869677536527976614914772901330402417172047937551630359567783724079969281197599477450006464498244450855398962323014243557333701784307336815816473982552052740750559521910617500635093283916714005675286880931776620466140941216716092786379023128600477199657495211207363051650195063569027200693556697543878421420659252790198246393318093826172820009274346944274603871798074665559028183683753424839106049927531781216278041604224052192749467644153133642485758725782102763452145304156308286649953066401475602165724828952923105012051622408066753264941085211692250959215373013222803835077352938614158925605277736119645135788183055883278403123216893433664390545284351218006073366640292950113954112619806235097707054372684733011850807706240672196411371237983387188456406486115398015879105097808513795477243795367522943837656475753106065621053722388900222995883790517724337140313614506255613634033128134912775337895062022787032933786256218471600043112183242738784235825756270040720314578854314376139333186802589652447736375837908595676748799284989639550679550998077035778089918025530771969845141679683003555296225413073786474283669436023822265901077289366081208758732271878999931161758292898382759286691278665140250785253633015923651100927958349919044412289251211739219512132321566133404010542065433650245342026164244888056099747719653808896836648420389443368737592735905875021174325428727864369133468022277674182756589509370759945777242974446685087626681056529807643142311145990967751295717346439984872966492257613418822145632950066031975459526785865987736450905515493171659120121835341459541744595001457369792606117878088850565567858487787132921198823051248538237724000160700234261583837824687645868636919589771798131228941573719968087694751903273713618033875272976247178771236264606806933869797303402835556505447216958076115034232778974981362019541140596246794752990293416080262007312441778605944719294177802674280111719196141785720634406756856567232651247114455466265860979335174745846246438362972864916467090269230847496653937260185538601432603051277645691800086098329565777273551398697550304139470809915710511211996254612815383366177205431088043431979193467525225593363638646112820728145873362647303036782455710910844777325612616497364359910743489467465314568650004345551696758221058634212565613762191083708287649872455430866251121134873827735709651468702594904837933688761889010206496768603051493568294520989682425383759575914421229607022080450206501349145559971087152492711300899589434219606336778452497501244935638518938650647159730464141458771314244784388594943347291721949979468043739976321588990141304078518778685007697472518761118396005591113657098926129971603566289687642976722214370117320775318561247155052169512568923501833489144873095086733244020824324724193970767808114888354491651311500968845132823978681670176999438356647802176120084205103183328883742761704854818900345117764085271371986990806278423693132752831813868598025172199287609588047415089725434659021594481395032754903391080746682598138845217291391819528837367097334452505684953387255520035473516414814641662189981689138112542181372440044761054618897614064428788853714435972193981769992944443940302395931246868712872612204507085193840640375878288541649257216240252117123664407560987553944815616302891095903811798157387663433244213714346833446812663830106806962975281492209351023413852821046046606413593288355885187917566894832219599122025243702580500484763125758851660198938532044410704282045082940141996406844631631414063979126967570483791061535044413096046609377722692500215825832994508478604980482875226192488616156235899298407036525930531049275726990061178976554802970180172973979075477415735079662263027846524968013222445096557259642758421529986770119833165047289112138852549775888658947578697355757742600255197052054319881268804514476658849769503597063651290086626697630352495342261196306656114669160756709933793103660309954998144969341733364146548734864571993891280881211171230398754475165478314584961389498276400880362965024284790721483285213074516283883146491705209717300754694680058743404748575471716090582039766395679502617789381112900793005554210472515844409717335085318882655938179833129780154524407546634239542062660586059138052285197112476301360297432283719840672212626226166169409955078967220217363498926871552013094229141185946056758303074962139589850815579760596627641320939206280625334341876384135245442850589682879301213201001962611483151948755488367251523387561675804109101624766662326658012301540127478660380256379526830028714473426430533603225886760376334910327420476081188137530140947711109668020284478080979913677827511018000936261283819811873952814812963282946569820947553713262031566721473912203754763559470730104709947901581728124102704909360098314962162125478597245300142900256171917996396000023273567531968709860700801284970509005076900888082026888806990410329266586306717492265376359181668912385040394187852891588983846774293664063152152301769895806550845075550436289871055639628237469422064551499370931819680599178537254233232671505906273441461791722913418675460858909888610604505560295441712502382284996786294957976727461155279394065514066077173752773246482613236586078549557956006783862790766497256402275187413241825650941301700132623842500397364815653118805917077599700222363165553257585447188261951837775288481572298786019937432310119949658320544982595979914151708379292890111535588785315469458980090505146888360869470117848596696656800671914568593013212832192733938386111133032601917842207923065311505150799697535613344582010123900133044136850202069371394477119744532232403785803275544121090430490922259246658533886649230359575462640261415606412720102407801306837355917486335713616742456923396751942167743854290199136784001023867719138958902803321243210600600129279981798505553931799302364550843145550070332191211230427314804664627495974054604888347951335607383345754401990535038756196830031158833622566513527892463617192848296361886704599173668168445468313230154925003981598341823101197236238283244950909878746715674757158253958401433260431455008665903671060001565594463402223965234593211436739978064190999151809217128282163820603394660009519824140652492499106119820416087537433667086818705855133668354686279493262716907653386255835170740754026843589797200601531336326004524807816147498840365723933712509708052108082389490984050000632959788509004399780901101365221916961219375713083322534041631177745583192315846527746515691952586236861420581684058042316091858437636137828245772987277398137495638686155121378547168922405461330149513086587814807322091996054158380452202735990246234910059016582970798127172977387018604430090393072298580742319752367351373131916029866627830971537010341459211727138448480849214560703884795117255234044185550709319662091243591183917681241113532888894946666180519542393188830381851888204939152748218860558625798514411468145029810531938041532246947455547237234344584304033752755784219758024683095816393828468614548493070238159367121417573908942624438774428520150300610998874641468255107175518732429203308707208743697692366142714116214923201403496549509984356643020538247390508838112328746502673653794003671942138664480659530008009916362024583999588063986552427941913491202563760011941878184942669655783750686641292441668428468409617254748264438542649087324958084409807944895520731145678137909417221257622556780956465334516117428988927345627177684704264727000404728848759637898712485743667054483278433276715207644491931830921141373988905239641446702582269382476107860111939987829501804408300435807593962572065448592991610464405629874463081397227188331894881704486572290406641173516575371124521791452247389454276936769037202416955195697840582377095208285883695366191810393820956421496401082186291797941759239491291432862859147322323080384855050238296885732838371606582355987899953541036133332552183862636310312766475813942266397917806627155665813572483171689317197776874297595147717566432809306887138400703203624350340145570405929742776487093407326242877604227772044539193608317102847244230165308968170496829173995848672949732686805768017587590233513842297477389930288376945318775147490345284306331491818241307430723591168236268488353532269871574792001718008166539255085932659038511636760678641360330438845841073004683745944315200279596554802627775451588713732972113690154045591004940349929151757245137684607687634444587160621209872975767661310841466250838516756759263142004282471774880290596246670401799773727486241420480072047472962003286574465241641779950729083851581007509098897620348364467020423391923574245121107536061822747572179075483107738873510720922011824527322947507200696016059180131151992235402887086641499630903647082393177533383254990331336692476201948001169189787582666892078321380498780632157466145011400310781042220662389207356321117479032122920699213710080684246791680780099782177707129291147168261327966544733062160360938773243115117406570868355381746197459498840594319082820078515056381760513067293668253797570817171909551487402328963771698791758235382164388451473823974576573591514840284938591100580278352337392614213330422435668695201503995744066727876318278311973441552890485699553496014312352175202688412606957587207280963169421414206103610732849733891951469155548272812889780759080345642525786550061119864182550353258971153400516587363283874175357594306980706094056648838442839005331148720913512180431905092087274550080894790345302437585320335624899171330934804695735600410808566454184505461888206077135217674283706892683570814339326529407638155384942970742500148776057203040851133023034504525433900739826426450663489717515212961599688666562623792908302930418476282159694952107839302508408528157516211318783318209839516179209161199614157856340957420302733346905191327635092484605353349588222098376211731817627491711974734733002115624390644064410048826795839004290983512803741486940624927536984953780597280377096394151274399475816949908586341223273464468081614569784056962374311267493874076682705531278871851393423615691490233527269618719649808464897014519747382116912990226268740787580751441824333898387216165697829676187470538780528061523175764348051521159714521758810076711429350825655283629117895228005574652160683566056682423158289186171486209229292790444010615214914120039560186217448983512476190900911160452196394912938492237002125699062487435865742303708361870348519695804946458200678624980290134068953819776270596282238945880060128409669857220091332737757845612396664561859371204635499974661024660057959572093928176205382215908557998820603950252725078076538329567359117928535782218402661089876690288784460694253373477948511992956827520166646927656419113401083117671038094043207758237054424028204292277316126744518186364194780265564879655711896388748409709600252291938373362186943907784132394985195007438033431834419834260872927290505752096574937486947262634200744576358573015364295070830672796486664279634938314129441949639674651741239263785627866604170046870719274135172375686340465026140513796806412076347124407300210696173979260730046680247687158333893335695263319285019263197194288675232761436880434040439284539483754162825401195642805504763032016154477273457239601556037354036552725937648995611178484656523607042713257276233934084312251155050410942140702928773521132233188798963644983724222261429392091933866452551995443808184667708733506427804243405252686075239736910379013663321059869820943491108573265328576505544086289236618455113809843545401528975337083054302267382504076031623008547467560799156116805200252714914584785878790350742443540550655858834226525827876455475121768536926961737935111275903837314666104969810102911216660596564594344774889297191624464413676301941696430736393395800898417666791048024775247241781699620508389391104176330152647113163512294362196285139238756277950785485195434360153650417441451097829986129553735476426076990423392768237464849120893753179706034760151649517963190037960971886694431834610906919085102200693977339541757683921481708439156328189890697459024552585227930012993366524972267979945089829139545752714740269523956758800031098737182108263351786773272577986360115858918585862282563454596957461790345304179421215520240308550329856935144020819723190467502900121318857146971189441860535100777462003622403706772444901413901467614165345512398930471097083489441602043188131035108971748707177457412144979631493666037571097712939199406829299159244333236964530608641561677504881561993541539980232856329214140168569488239255958887972287145532924407434390988081347650954919318593636760978018491446132140177424178858370058078990718004809211555693403906084857368556118989559561731685789151927634671650457945603855543711796822010072448677442589214228186479842537129469385066357520236718568415253005636751956458993402687159363236979286528031719793979282288489158842448729603234265683130981688564714136560648115269227320417268157118859855720817044798003410588011718717678553385973085828846158486855510084000152424453145862199410587719219098400777169893080356670510539728417687796028978549096816104111759038606586891471433850306151747675901188212766495419455604515248822658884841615435282875067576503079643650702464316173170565235577213413163194797609145428848231942414717459010647782724325988805111301464086633979281063064955268702403908415729741580444480082875575517407397965354749874948287502973328821883817051278212203597773075916136002381197394495715381525019644969300958579584916109418541447063251665875868845571865318722430214325427397450719271499913204937795022844273697423673761063160668107143436508696024630230667765620482360555585914407507235507597602941467297793385694944897269762185203764584889076615301897098201647304752911900404593048299162724815764790865714958302541232194206175499421357621030220007515180881070821480668926797605374431847204028750187920866021344883474431040043520351678312131823258309330341945993081331676218751898843824482360794126658632559768970329587530212324770527452047698934605432217540041563107356234230215625273703550954839103369556258419890173800638753210062206478357498046418451762165166334718600555876325711422181862938057476369575060769741425922292931946521665762062884440684054958313160255224844597214358382505980640000151453867329807560918208142013092234405190346208086793214465766114989072441725967466249397112930333059204999410593686019246639020071889797732590513372789076421502316405485030213189043291237638756177078908416385546613112555343199098725298042331414899370464143190799241209121171731933383137854727611170806598538055052162195577467676350007611051511712187485822480030028189668916017290847964562469302648639312050625607731250374473910900508737489753013777894417469305448599604659964379558693750438458047320219469156734899864754758692272757234656727666782827469576254428256627772068501768909897291324572282334894908499184171941372851003537436150924671290455974185831073899376513733632049142181402854791855367570780807560767458843600095144063612588637115939323496264309100667055070603147583488961686503947665414582668808988600092113602883447088400659821243150003544049687412873593945117123587858704677296841835988157199152069680248110727022342218877385398677211955731991883718005332233344274337563847622209175441649677764615858647973880165078427530098943902542184927329396425676574215018574942221244981587157446774253185731879249087591129420049518652661519649550940921024212038892818557651303941908488712432861239685874549638621899156274415332430987045728195038660632337217925262170610939970952107529600785515441150594335557135358471411577666099081755281019287905348936278986272874473992518913109185327957526764408300569095907378983427105932598312860041586443547661304703788001348086431815321505465890295508847464506191027366321084685433040127421914224936851677814149321200687474993971093056959863431878017808050625727795463572388700005734378669193786891130490316286863837894974624175421301285290153301074209946593160481690229050973870742705333773336298536458778788164487510198356034604562860116366436456646373832520747917353930372122812259713768486769568319634293134948965415939329590589601364191184004029294750797774222756193387917295436496455862361947816994667611258794541290804183619149412865890154430837230704249653438828166698406976839191619492167750520509161035386463303715261413528285773259960302543664201544663102644233845976941604282817483282326944376780509850483236006412573369788059235132955171620555421474193383613102355493780839522297257303603871165230032314937938417852362888286469534069466915615977719878924153833563813950839245007891504174677269895472700585195268288548147249411128640869424200772679638527376017863312895823201957247315134695658795006440441138413506434600486822478771207293867504459608807762523835654149310133800416102642698437960098459899952770456686818466245039332803561972902738267357599829353552406699104618543614654688246324121741309671864341085160330151375714740833126662636894242402791416097813334752570428621900282534904574698046232792052489556097158783121054737361084126374546286651063525919692907971935015991618942458703183592021604786457995922828581812560336453738942938366061712473389658929299275193065989587793554002782852309204549897214549826641979909283743878621209146657366327032667103350912127058376132630790047635630473498715154638189615100660119285360005237836232452475646115572118571103613140376287301350578051443640749825249803023171598498564056223616410456073584859162328343433212151126542002251279155200757636547906636147301664567464726605948290091704549209837185004472855465553970151371782335488873539248376184807081182193920618631041083743721064375687859918446255426059728139897028378698113798833390101813007923054312927295642813434611936128337424329915362344296089779013364191426084014231804493064655077475914029791125113367249591044943965288705694575964343149277853936734430836264360625969568597680564235594244082673449920124933032913981878583485167434210420953784627445349699642943546639021758674020897681291335354435876822115259422080806291232350801576438171585198608082397906197563266376442299894683605737860628631152538816166695768632928466379100724839146205603819493741017156366190745406036407842673415251723437020569801120867261863791206851067305649290699649503623233454860769591606249125323663764106052200962522728248215191876774216648714086064292365952210434024223485665682584155229752474331466399049702297544543804086520796184590146751469809735442401672479613581871806405103454032008720842295397329806219737791964772699720154404948776558747305478203106797974716756178324270891193096604026792938475085887786188685419076388391341859613094441393347344676181055353367026279157181926792863721540072021796428107093219739293833864068281203471820841349641112593591250356159053670848493525662785911700670599951132373718451032741965036388893481596090699216333804888090512674875139826370067016874900600026013900528740890268715300824585736990810043303491272747565063428668111979250325916195405743062402731219103728661703107698042251834107780561424489742868593073693700066063481178477517853680580837551401171919748966852478979620575191964482482318973166635434626311619373912366115965387527517884861280679129055638899096905049569175827820832639231798332444633657727893336018934990942830182977548652908260621779422563926180185690858828680482180973725183566058331722024963753840387109378979473010304045275155285681167234397121539897182548199488569202707448093499016644513582713414340253044600150216967282481230241896268783317755403831091629753780101218691476214036449830646322506484211505976302545539736743919844223043678471878074621695728934731143550241859210896700441485238166248534816169243210979171205878124237647753376761098237882661750240355437052779255130437356900498027868944642137167629900157386127945600857260817721549769727451993335988060974870342522610262516883410791004570683912182417405586801083949794673209745521736555758392712623173615197882000953451626361886221987573280959298410675581817319596656034608298093420777589200147206745546538235352132150685925688773701768403559313977564608031393944576181437922674926448585684002739242187245755961534046228257336288308449386094693245322109776406601605848594084523214996176840181101774962202934946883527344396173688249842475722402035250299979342543288973108406193622106096301457150476214070523891480724629421458727221883125322800887455622546809352583396298710700880026444475286310474782436622621450350918941976879133593273100096497419846402510753151807916408631845888056096010427967505754827528848775598508520655069026008007245017655447886917188088467428871478185288764597799348849222720392088898559420927286131987023052929600940109635790182021057005956864254335845897348922713386516478327335746925059859190739796255319481584651984923747509250039247106961397456232168873530606537317506627700988382497320549224262576064917675938477987994240118490155123300403048090103387359109238101705721729805246315222111071888682433086491519705139715703894318164376976523688156826731994988533512964194147355558451292758247269645678697556648499786492253317919137690735078642257350035873821185833294547190112354603018914375628858996343005684196214642436446857381867425871184369445543995587359196044017868604105472868232336590523803799150638869282885761870257769741521216281181760041762150246402644461008406624005421903944215704253028517143067568706269917666276320532894262844336673485982904603175124806889660743043964248529232842112805635523972346372406111016783157339641363998051624517805582480259310872234119270681953109607521424983975757398006845679514786578963335521150597059911371111827614500292980679803238653654905785284805081750810223765343100671302438322984126020262218991705969217634108715484356109781575958031755657819269466677635009409520345067274717634258747757425018633195023629000197213313679535316775330721177539812440065029628156812300768847642524104068674163080129811083878737277259002403016367032688451635057332446360220908759565375489286019377543134783042071874694818723490829801388011936106482120671852759588206169179959617000458841508376994870587329613313852231443693222714736342495810641863204869589042238311121917879258652743455411512436575361400401310585840434472313466330409559467850659746081378735556764561439095095943019732152471493264315424097047190994659696027516574187938414150411468725650041090696790808582064072213730951890043263151552689539262267043252380889779542470695078273482570263251267830816752298426721055642423386383644164161620408442442831550243368455795615533852942562403080402737355454960097005794521336216271029462634785627714497548679750012210217268932699824430990436228570233855862124846269249975896609669927286438915642088406044953419880734870921760480323233720277360377183956420698343575006841844451535750703288818506556123562127811353214216709964197113548039957230050260935440139348384074518539921757571378039297501560978639989585948339802664973861364234323350639947963711969303733282461449822118386551830465893533786589268306561353798185018434215027303947245392438038981153088880719876444299425965317533113669164645062943777915438425259025899165669330514295392979342004060705953301076794636106355427835554582345094666342301877305788358363044320634949821254396998267906695925578939291613757355919320669629801055841635252421408651501232665408669918974280303850165768999367451462966910908081494252604811265021305429927794625201228802399216690654539047083562922989159502888630232401900571031891760777202278837842156495054907550631370318722502961751759432798276045810032591574347734601716135992779054389870507913445102727275744970110748657929264852941378382266032485022898586156485241070934693070431821788140825891051186417960637474152735797452979228221654973256335135620730252802805041363529144314067210000921737422609054505667968534408143278749493037431340994778054469153464937654279703265767047658303152166370203191458718272802277561829517129746803172416427747726872259048141255234908905499186803263761564649675753335148901265507199242874382144659409302497633235598709326402946152844554157067047300561022829709205081773643185229983192972665035540255071457627202820077158378418300159207915212239779428340620840333458412479964876868696198624809513128747029716582615893137561921904641561314248519182897876464985851455988322704271238910989276490231984917833120438644074100161844128604772047251038798476410561557055877987562302032673330181014359520264001829194103485882639244291457323597308803893297123416624164568254279490646595936104320282333910566298721998122547041726403660305984116248778665205903955314870357388620257572733748315687650998430993737475305589342843003495475104206418237721113048253456774124452514836818523375528999205739001931452159718172319343183494920903328164187055620638305511600894530402177069771982567227806050819832958201436501697550751271223014026179582634205918693667787044973558811093115783497925352955021821988701645785919037199156607751604729222502602491888497125976294297098090655376426371320521755392237218423007271026096112276022657424295533047496808039761024661991439295539554783022602048844960247231151214434934641512903278938913309056490729974933284523365009584466903365328333311873045128162265213139900560611459291167329296206222342424637395466196696995567732085030415050862684409641542691752579433853392914305239773851799281303204498529771870995954166786241633692681983312158506392077267158696990932681714351831167950344235500127320357359796436199299570465512106059599408016983640465831748331396524867061792871028656621924350219479011463929966615540021583214934617219972731944744228631374654171655471174088403227827417348262144313584873527757936382260154853472206436551642469551346533763873663033583817855699730297741657712616231321967927015228877642278563597927354473547805603472264692086859894341166407227894941091625079485080728879440627051530840578282410957644828015743339539060901650101456222358688732237455237428846896422482176123885784768101488618479244635313069446604914540226502793479788845843938530086986007603989350029046126976719930003103915265690642316401480250892652619786713065552083121408052115929173491964465831376382135227464525316588849796616276335054748009271673639674464429318738351375453029574994330328994301975677968449205580962145619513602090901450454405560142536293421289186714980606599589282524019423956836307906934821128700372013266402515275140952639982738259346768190730561222804400863545558184566962748757389640048563925028007130481663363088185703129446628212654617412467188519848724850837224484087312492918149849506311427699481850627594023443875425541721578534599391601373938332630996351303753152835381807253641235346832417818371198152125758489738240521467410584775631176774987631116205542557667705006933908649062812891275437322451406996172684919270810973262101843718559239843100243852553139319540107917178307562357772829232187933438586622230758254972707954095709608138837037286201059935782800996141491904891391872759400475548869344196631453702842013507912788183496563085360396131058556724249761741259283513653729270915238109457725736843156922388914702509447541823109432260095505256911339330512934699729393651662801190559999259883227191310320314164192164501958757096928146377346045952477223373186450279700748210942598753169417528419983517130731675354526659869953894102034761205408109042829375852813787388648401331417005817933027273413278820624926817082588696495049577688940186597616822665088743473905412180851891356371266856410537457596993888035785925007075634744819664132892232784226872605577905704402492019596546463489200310304694177424979246703498783723582727832618513423620369968000241352778083649474732385060386196412600795757507933465928413818187826686887417658045630087223867206412171325297957464479230847859339484688920625370768757965838738424729504154019326857670291990270915109998501383756780016283424508457733648891372276662223698028155387659323574770996822528841322924229597072843027297994485674876957098226567646416015526265166903976179081609320118864495264665738220574171008652050026804494402639562202719098973955018776145131492931087910321785276115474730854058899393958419148622824537117540054735664397595288991815080009720703187926365288646716525010092666970874882965744837622115538203114422995104848274079234239872091013508619720531536657624813709373090901805495709017910879852054494600592332682584054871348216866160556598555365085003336600686196392602375952205816663984098260713610110338743617029298742523080407519733117715541781742463786297584566136026662397717706000299711743298342637533805039795643761628006114750760353152604043605363204069428259963606374335972292741827134894192224718910422612618301536783257822588386478593007014379864207530147817426146003342931427991793946493713397733964866383479956602123516831289157897859896054144990964336298823530634240866019949941910778530855209213029069337677667691072551422006196137811123910562435743150295567934326186103650285371116299046679973834356361743232832235782169688555095752896536971250626901716825502799374206320584470846272074772039272353250026971325364111145782732726343042172245787452996722685915593585128957254012447564711098735534090460231211507545457051284797768234846561735986494596533367036113437092975061418416390494237778206637988969406119283767599999223886913475871189221188258616882228090755944521904632469743717013012832677140966150041171988880888217452631491655120555336004097174072618671982285562530559900424158744500542552339084316416401325161468733655568231615911070409890272752626085271417082155432525807822509377619159675165454693446982545291469475298199503206541208191327848531648774617689833617779412312003001752075385653653344586046599710270031413369034165073745322022849010060784179676563405739425630091725703847391696917282953618575653169371327144170781724319900447140777306106257673350542412768402809662652745506073743160091814333469877424672037790272448659632994051271363497797094095919397189602139209280822624315961488992484156796847213639221565648565043427000400559811263723234639307866851936144140598493567216312515502420510474853167027150023343790620382225124843702445368665773498823926404336374781263822568191140328274505432301351800295413070761589708412598402953013829385680202741760474481313021676645318943845309637591636550955792486515596071863463455946672591470579464381984888659385125033805514458188360419050113795706664579444112484031824777507216980024040641641732143651973868181069942435345825675524032291625500239752393107527782967289613737773104149427129814795047822611554058166659413910177505801378254574331132136531831766167258648647640484723961210174769085774552256487054152909616728685219662710872325907811035521323272151196331434941577956977815734052328493210582706251134971577491695560584924438380876476798738174312809731777666723192802372208563433531385525115000532779656931608247221141172583342241047742038876028784179736328171923782636413057582118116042823345413877525451378340478489642287103241870026930465975451841037126642257878489123399145024512885846524403796260652417268677009304331452857942897292204115766478195813829897179518011587024264692597790839990499666478383545558146843286244731166120626206792781738264875804433197019212803724258068299723241244041254186332202818512341096323638801084439525685759261912947629103913777178199546708254235959593486615696448640253932952783136587731157963174353592859747733134211922996084448517762836239345217954872888251525285743949466972136280931986127574024582284984029469274860918342428534723954090293570519669754651622324335243347995069409980076422818944445969102348603879459480366667560443827819350061015691281195561793164492768714908313840938233915396276428282095041613928264146013308078648367078890852484148413344692660316007074253067759727246444997032809894556978302365345145942787629672352610630040903780842906555159582156243762864725145441312047602797733032872062689490668057975754304525134472769072166434165905784416779973867358136368614474970565865243803374120077013412983493347802382301370171628668191453041172513922637185746211645203052559025893989516646327100678045189157517404576904708174482666358558432532341685151556290513341682708565717922772364630164238449324628409072634662860510501443373200808797419775152053717977031842821159679586510231978817614875949010742836082894172486249870434904882436156538494587520559392037316614038512200757106039618972404487119638736297731710458133021483664884288113719958726355156237915287948845528598670458499170758574375457401971362692389550867577334303670019651509158248653084690973898595162069916720295341642078558960375910473188590801954162078768053110646589797076542116745461419587296534197953363197483392586797184699058487917703634889053179162621188861797953034286054292034658999864872439010069197026303003771876792382707832778200534795824199747518600260107393267576240304047213516876443951030362929268460023562562486061258606565149461478914554632228335912519460777485846013298825238044843429952844045403930931486744812321379403078215798564371823670316518959655242683321901546602338311464212822985435467516084774630302609923913614728812570512713473411494047060580311603055326946927008503391186612067834255081700171722097773383904195238119493930277077111652314695745330590114804971020160791693729850537505039660179790459428366569240792536764057491896593344048831895848090739310969037861049827652017458294115473819005559802005482166072371023454177686381023117050215840043407058500304070097195197529216039797251991911930347189418371938673533728611683623741547449210948584378451591364604408954235987559361486483998277379773775826670950666193075332162651999574563749955423290328014845501673101113564772975828508222791474422629771998140880822652394673401873574451609466068396228272093216697792712094875918930080248749972324362999873347524156723735168244193384734861331106413248865651025725293961543854192741338385583689857831018036659245304035127513773049970214102339590378645695815644355881678912661143096506976867801018661784427536293450202529670013611179758876576804145307222224029078338255347673965134253637216852082578267510643136338600084999295179241734238520961920732237435171829113548104472020536354399515108598188409751641443350651513975788003822819299019980097721931909619623768233528299964641327315398238950730602561322485660671090085179576283355924057553942876608975789062047229418482682909405298355132174274448245287793263083371301401032117487634155429733320112080580962460001506240547829728600852023315241565257015595587131004735656010811165171828244502051063465934427999977754302786347425702136439368522883815108348777862234230846925396071822171091483815881787370979324268532261391067495957228078467198590938340388815537172404259212165648560015650680309781395708223346651727072332114048451049098537825014161302524779566913188795599766026493779131038267670411415044430931048915460767207384058316182712214841501095991369800314624512153851754887198564792921906521646151501446226085938220943888326653249403038694556255200700562191325069616607813074538499849036995752971919680345635533117474359587178211599780402316279861884310620810559904787305347375384506328564536091265831548702486920439287348075700500133033386724740234166872465567887021337753239678736883881563988552654499010184590795156651893839574179243605916219045070281472641825162101985356926025181074814025236934395859265944045300011988395189639649718888511309882807872004209888789668057447956176222392705701064427378505551780014944683056909325845748974280255798633051239714339580189827696457782605961887031486058927233415085556716032486369207895242228814640447971409126314652869784344104739439226425131336322633793371006294836736624154027159414427634182677539356327793049922906994208147949071498767596593368071810780156114686463764611564848819026865556803652706822669624026209991630645873952021592383842662291775675628851523357727923617909334306514079442459308734289665459123089493268858001802878606151634849140931751810669804453582991411555858290929601354824026309938302553663773107072793856121354476982041617029814408658444023509846996996971765245243327659229039226817015900609500911086279587609428135569108395273059497707025687556558502534782091287781903264721538956673517779385191749447185159765719160110724874251193711911562172605499225869914150951865087728455196046595318722699365052688268712546259625643010093376897991957261558023899821152341734759792695131897977543609488355401472559955504480794121286118342546980292360728961344295316312162734160364066600209829099889731678845858825911283277628834765204525395104231915538517450327588257435824898868828878182602541812726910833368158125124357989824713762900533579689262324043294717900599388118177088843566923620601178261769191229680664521933953445648654410380917260465980037827083175480653302978680586847955361727834940767299269387955567532693870900941391444130919977707968275109003533005279847036523872872405960045503533830628141725802371172902220919866924690491908544006041096138927701801541818957600086130456067241944115137974968283877736283079450571362082010828221150423040893375587325957809051776858847744184532446977591806653562699610707268996076886051947658119962519577627076104849129480944003650440033944767617827563390107579551693126757187044633460788042457632900568227357994616222886128486700913055930386637764343242010924938426982811399843353451842555281133597710179906499750100299607766056506143587486144178287090315536465240214261796228148851460159307311858489847044261859448342180463393509618425780839167869306583803776879455645219352367242925984589384369080649975023329444583965813038418853963262567547712472794211858285223473692352594616422603569972516571567849575259348375363204586127444676111697761972463815150926934337994708657632638752976541505520677552456424206876630954575292124023038781415592354959181761281536922146538095113109120002089410440803459169459267028014076167416911139257334146662204014131885771612239443048234478296626310927279315383053936561350120206619032822020711645501476961405764305770010474623632606335345592052537714524332623784676307670025739713878882100786637641759595561949202862334344393272531700666532969244201213446423254374799389612848419988362099404665896541258869604430192725765503125194939351167824751249553747530772112813466416061061634389987765859924170554780454486208314297075190715955104671553323666978761386610680018731465045205477679724427886449071388463068791119531796031393118918624012615296097579446526676928700930731034941690406949380806359500184553618673568314359554558025581902409112413905852528456737687552034471893395877052478066815363537449440765493226447905393826188564191366462631952954101954138035295332566695427502879920327114223066334282878396584457002730526005582598803923597397082234541574891773561669773355582033829952781084426955646458499700919188200748696576092854895119059084697248987542241190570580148098316672555428176786692382458096944812716739587162514646829863470954354828958082730735200679094735750511912269740445474286173798982824858458988014242881806414061105637866820375527298699203217669551920184128279612785896758181386859300298473633612532554096396293267043226227250179370028952126933494127623170817118679001041099630267903232980008767699524737751960291647375755682507083062420884803330555534784237391392829175693539817880542361565075310724466615497066137426735337003286925101199869136939796279629594263087910834135339666388929010974010454618641961623048249193961795294295594709687958673897014087812914130181124678653414465176151282790263795283182480078498255766132225114479884369104523576068415881933873568858796807902218780114661684358124417624182982196280848462228918891144895857097136622813814773169566374574346383526586609111591717356786582743014333253024454056808746434426279127743629226198622300529929448354614434280806028367794296799077715256344163242808247835973170423333706621647902915113788031368719233509298941010751688969155956511178346699435810326402558359642946871039182445513509918809665033939467008271530734095878582252089350921056632630311448162603148478504629227122336881458437192697802641063444892729150654832650305012135537575276937137495765327252142740905378435986390951923203362718571986785287794603466912119951656838624608837789685896542659704989633172203400933393936627216610616491477021741831535221924786880198228529201254174545145899185221601703339758384277392747294327322066049270533903599330843336582095009740427110887478026252320878618004047544015380430327494379745496356653726844622404329217346491028864279221335813165617823425600794968699050637966728764065015862927622522005115745222424254290940130876848741201631246732979387938495080458549079967699285724436791201594320961984951644219032298168884025898479131090891150339970915431583669549260541745507585356246114203575919833425831499001054481172255141232338662152176710461327028880926009083762157559051535906873573025036737061890898788035246553946222844427069731858352876125752354734049979077367165216443476253372440957022060874916937071665377068077181207560755545341695764546739862750799096682458225560680798365070717253286142010192001298787081801815071812551173036260662082088393519824506666424683068295190382303334556531841909201292972597477887821613001211267059858649991977552638292586658274015134096599332591599150281401467540758891805326045209671277200174271980830454005715399788680427603947026377406875731541439762993709254858963571279315792268291468484547700742390394815460656245795126809622892000710973309359403331722714987436666353632391240611167828486590093940240942831335695830379596201678521585840015183086492948401601202913555003309423411434460440485868989156129890202140201157701932597836095689731003296715211486554291396485957701604076092836653622885252154159659719874368982963301674063050214837023520481725198115462572310074376992250098304395793067861006188093972007000410346619000173795720837753766515424872739805645341473283696936028848085070032797467023635691885423069272952566812398076227991097323043131237072081638747215696046486606395939694225044437419836871622271077533303667352114068123891526370562373426341090301306667628707179270220598073222308042548826119725947804038882978422174899125089610749650442945596588972605390146727008089321360599717658915524624944071523084718471603369922556056780426399421545317124474633494468205271515107744129982596982845206933252446200156560148032958390805101137482435252422411368594815894064808947687673529783192397942765655244536535811585807974774589405656581473402757794974824740226786678126482356552274447180823939604379757062203753503737376240800117409688321889445857513754481281475771856409121961774450007902614906572397698738515858172270000092368134355162122139232455658575463755329544319892956993984822487345022402477667325740011757393690409646690767449047612405280641497655571093443778927222817023248782629699929263471247194796819028426327812838914522555760800215119730531776724580240776533183976388594786395274498177452336226301306357563351623318096630539890009033825933988700073134525393700465514999560546761793060438939647219395262709213890063454299061619884670897172790988978295713711309571212831377130735094091833846554651117273832363248948377770934203551446610281032744726978451735758915852934988701082693861791306062544290067876973096860382727913127255850527865516760052428060503758367244173066334115078950281090520916941223266696228193103707303635991519022854095503900952549907565301008485418728681269238704437472408763361056456010528734804094692018932745340643144430323544895483231776505898047471004092021150448157030628843801599727055360776994783260411239818910628267488752939588947439343379448250459347064641198012103498747708165033709800488469207684354159579849262810357027201637621850769791842540614434505331442754644024139766127350723224185751810474504033419954492250732703239982884637763973367186420090847664466117306299392775667905920150372742964195042469001328770805356687781135876370111961643528489092518928734527946440470725516261445863063384421419276036605586127052643798695008639963390986817536364780164057631048946894512790696620837349974971593111558095112555090482980324540848546262151062238885650548781351356319863543288834472622920694663829106668181804782388681183089498994840786322690059385694884807435463232160906305732412378910635887674764295870774876317210763052007777811334678832791342727607892232616818831219320428997224184027012368179199117196423802710831148622276788406036597273408568824096198457941496024441196009721742575228580100317523414573686799757852188082248036272702640822691922630975183918535419456457673459063425155688435446154848967079298914106336182682091145263343907071539850013643049353930145655174876050134143932599554310363192135497247022418065358085621625536092563038621106257254099628146286028715277771778739229863348355370559488886332620938418046017599968490615352983138550958653191756645018284405382046449519483749026448148985967304312156116150547522122357267452697971897081118012711874449343304283461894566463627191279450640210582787893283981814259005624396647055268854730106826381971358367433834755414250806130521419217112946096155381295167505653927340725498144434661608046006117974759500733531459065957307931857744025014383375245772630810858822998519192655805217133454335182710158169352854623996668703269606748250058116204844011480697712609428519625444045552220546408268343588292667740468206636355826171917311909065200644301691177381468318076090986844274372163627952044906060609052277796822720179636803773817806086371987487459474707477988207797274574213280939030787028451028759312470798215754956590651491000009589563889658891060317341857087337283340143077106108868797426841116506765390908892745804925784897753541831729788378721508748175935696331328502722936481185601578880096550216888759913592055623346614734929462054568076669367702942642076557299013307847285104246373838563347158968549979163144723831409336237900637427717390343166661840947949750391812324330620003786823153726998908979557105243724002489995931156238334908214837185325765016847757805029753490303231468563439828660122027231103225612717885238281771663530997182454336172455985967107313845746675702566826858459103158060634357381559040293093571410343159185094855944831098590874337363611526193629517183706086923525705546626119445188260810466089979675968714359133171978543348948233850809330552640872201205137087373844702373478944099801554441127730906789073144658338961623729701652419010014094813485181225910589997953643184729207990779949724616009642076089207951129850028488260629560786534019096451037025211754968435738979498806846768571888586698257224336674948057481925098263849339134210062902562759129548312518891019344428144667972764038355695307210591616844514871640620003448550313141525243478319203763664874997798199321002399075774735835248506936171827580576785223936939031481186032914021820635668204087450459403330649008231951391309090486319263580432447442307368777780322529764160925080902852375591460422266096988288385120702089911381512380878892318637562379104321259840368644271650309285874128999059685245801924302897158943150898461200031851203070974098172558627036033321124779851101740560353927611563122646801944749480139072758380473134356002365276626370354236441338601564052371356254989355728750706123738952057366946099617667048360390720293348962262855819778648551154019049734271824848086563490201292757542686638665537116481491190485825560338581047425845334023452341650612899762533596289463490611760518582390669270015179163130115155934050138609408621867928034331161913302851545537006687358131427726117478751391655051034164722006072744387547991776948203473931206838687187783768700545087697158768773439935789815884731039849273611460131779102383100505621481663647493766248596037816677034714731577415094216974775436217057027734223622958218824829671347267901821737937447243312890774747776716960206848485297802775966039728468791639667164087981412560697308044041962218103854417846178172176858225052123048796188206180251269310117076361844855677959654997975863194146893143501786836535541031123304946996224590875146740423641503330750709676448764010501357537673787789980588705365083456310472734927954734200466358898415781063959926576850865755305503965884711425149951027426261436167323412230011301983318763052041901196210151611604163791223898689385280031213150995305686415827419773301246504686805040795493984765439238055996277613730847237105896449800536422046710291780847877822621347338244692555066608002491292635317720080782773676634495610651927358249168165529758900319144044120638002421610183584839547668453762303545205969339168066551780903117803451812484118162440561878413046681797637059285602178471327809518385080901686061656058068244393796974050822458347172729599325751409495922751390414357233531474320015313478334352203559208954522736278184825634344360713698516619686587491120553396315872007842328025435509629189698533065526268763837648522687552644066669568427942865555128124905433417488610044363225127257824339789800276634868400159865182527883799785638786152623731225098473505484852808705963799039729372181191644043420900978878204558115938661931811603290452136954144174086833379859260903980828483879812987158342800392632212293782121892448803351955551714416078286800435767876009646369425508713673288688223918947401900764388992522548344297825964230635993775400194786594205261953499671693007525199123924574084651410783849511247267130476529289571527365771004482460899458868007560968575240037368023416441007710061391674691923106225460411037626855180203554159309326593123586878537083293798255269607142781018889569486336990681895926917812813856212932510573262065992413346062596640548500998540706109523583479671893758635631884769701855075815800863759339159602341140931989765959818675943599123015311511706349672203824132269272453841108804393823501284130492614030342387487309369628929534556181930510283168770062218084005349080703597444733172174812724469285208348370732043852030282819027221162495549983542527633156918775059430761517283024151936862752845372720386136841620512496573731740997869737603392871045080644168409626724200426982995225417528691425827533129604654313583777544868793240624997313596101906571378948669891364367049555158170194797034403623906520373862913779259252741402606172338830262711649259376657440332981480893663318182444001033804364011043379780148045070556593384607443468364151200978022624170340321461441742279561752826373751166607834922687456876109962371576690092375114630296371611738375740688544788450245066112814028972978555909418725549426416888401203578793831061296906199877128264387172227454356464769066459685285483393325798354466767423652911946247186869721341252817498205950482653173983274550373572436215734676084770880686594254145789835664857115921506400452164622440276098506119921031063950498287471083429343963082433252374141261355108061149366326089313181430302442692435608715698959925730094213914066402883273702045276907191342194280220640095764822021197911216330593978122869816575817778196924967578555645696766974771834195365022061445382631120287126739091193920066847657844550477127184343044375022455966786144401337521115620111463814894014222110806681183325168515856762070618598896093789966020713224250200039022749874427300535723280416552589690253304081215788795760192706901569556608971755775324158699434935954287802567610862657363740140009269897610066355570414269933939917830316891041921978039966356112071890097853809997812399223021318362218080273053450099890327979528610954586494330581340926142401253852592690001075775050549229522164129459726654571488208583169029865557101100494314860180898913739273287048473206567827808390834361881347987136830598419479435469463000154283663161920829494606697469715024360888886682582908571520158168018881454381146135938545564091584312843947569199430359019204391378469546728956249022787106347954652754582977702856645085942986931091422622386563924592380468852933829855942009428373704068680359631257658095311177558427597230509189200635623844893635250230056218511072360196188544678202038966775240835073351878323471608693438188020589910463699103982602952203122315097696356883400030562156489587249814059498499102738613185840259809436318168858378528331903577297018670897745023897938301095793596346792452784574949076065563795110072932867773844811718279978562712879295529217070305970786926900436692430760556060503894251389019742263237733425754864969295807739919827732452336379083362521079770437551468782154398010044415832227145990801011456770815096587197345138868943143848047350656447286145970780787204887160613158175920442382017809428846866462597178909034072500411761176382410775808709411984960046804543540517665136257174947111227237665157621467514218425651013982397740343628028774357868580450147864342039156351172047965389020250925613722634922174802163894338431162595630737990082999881980352556949355736589269222961869848924887397783916949137626958282484345658766794009407253925590462251737449448234980216803776039001657813668054084196159448037117505209545619102910772253899043644542670653516956078841352121056429649559129400801244455089591783826268607396228837328282472524332753229481735261695934824576554596700961925828897658395255967848163585653988589035204102383566627581450666253848196294430547066335268481402575931079803391838108493359510705597143094030763216002729520492565564993131901356394584016249463353778964706338195800733138414247285485507726069812910833472023169112909166889336361227554571794602725501160028665292942940777907685961367700927894553995686903669568337638776117635646126361226547119146736851920230712819149514354140237205594854178196205482844418954020015268234959701039941520017119049212062523410559158798297920138641515647806135367797012641788266088828575281557654628564341674830944466634950126696872930027860313958648143548322322192196356774289388779281519856290085127402822137875511339376923693948042780610673701701570595301871357567503216886108441259249905042178824901269934054803654179013340375005042790908079144507154714161614498669160015835736060797142589024948072095230051354452662078897723607594344228183643479251763919445474382040397216190496133181658657686464121846931032966367445572669876665410429656409779653931293176380891519577457380347451741681388444243516514305021518894025287482269374329494436949059449583095020525001261941404841694455377737504394742293495608576075704641514429677380613483566572928503700141859711056752805182622772260278624086781454827259266273131314929533290994306469551170771101609118048159193715183632154327757775906083442950453715241429370089009164416476481776576559724494477707204176377485794345795605603316781964744514718591352801060770257992292429107441747238353357259889900468700686319695712305527569993936825068175388936486825446057418035926682445003115351365613734946104304597001965837161189330788803053203407537667841147703198419619008214549873415181248641429535697548118347446835007290921602906444906268134323787280570729335040131778929170900114729012948181793346644080433666079281669139084951436925298096121128233939905824035380804993935980280183478468092386809830973688289612750609670606998752975201366314514473251862156465482151537874703890862552605750695669287284152691406827903288798115377591518668793834311684357355895199244671948238271090618712304252353277998111752206195481948920904139871400740459236868397293019958997635527665277343254538275426626265575033099219057829481562434244315660996148822144041425426735901779931579970002313994548095679624237214359822352651872347726727867500905130409096683035602853850868630426176622720871397325182958746443493073767938728376306821980116266353838211925941885221798766779989601143159735033699325519371684630471517490669899921527324973919117219639550918115050034857809881350807335781780101794121989804671506512639621026668745814899834715892938976313319532310427021542163330264702057335225098481092811460591570184699873749887149371281726565308004219802676796972606148756534548015050476992911424784441541102889230893760311714968536482950420506186503498268264192395727267482090518397352356754774712395493576688933970343024878038476473627911688613316366209995082165442890599358019785641428896707936955146294865979500905748845070088350029874764442055923718098807386881741041053019164502490412213017381134846218471374862560417155135921021022739321631222160491150436161484127346675745283298838960611144885102047339547871325668353007771881849428820973749548964736439191881106343360863845502522636421082555776717932788099731755528265767929803285525942092333300035670572203243939000853167100225642854124246242570710479565346021153005337296785372195445672300994762215839864254742573928734294691269288775566719445768968037201928355264218200936550706367419896550553664853424891892584507351971455806619509667618200563870148905610239114482654366294111275409504604600156888204696812367912830105992721249123250025235194266192603653769864206971073607061800329127440798227828144731923323987184390623617922089847209646722750560162626092857607164547668580891771485750629821014729767682304192715076897714538129897912261401614460911335243246442783669630907409918628691422197855085455977544704222129901525030056570723489057017094844188462388494454708989720671575570509488990156371501040382368260145632828091116383579721291320911719678487042310787139370810332596682034618187775587678986371810338780088126291687772827002387130683929856207755598678998114752025697183353721339038185720299765658502550633335292986064366451689524193123593663969806638287906514953544210809127460797917540122328259257115287891051014484262591240405452624670111745749412840411725062207931176911278696030379992900507239646191717938554294627672246154485117314997658951172525960752653036528335792470511674723727681220436264336443996142185161201443625627381304346479040678222522166677745315847962720518106813513267675989667158144461433236166758835460904309548198021883637132335707871038280980589877989686894446531352347823245773956246193879161187396773446266323016437886954683392316396227148875216056849748040322313913701771274185767299032653637788925267015216907087762912401785859535545747256751766824208029642960855024947202917018519075437994655175015151618376053163979847845742167163873014926098930891363144219377098311599644751854706707357125541539255146719983256749717867853446172968971443665023975376972313245700689255069327272238083856728478956690830592205901055057217825129678944311712150632291942443780253497839622549626009185872107001224771259612603187612483420383900878336240837476108822757928326303690328763697896042345510234908255471778434483051340630389306638890257042540971774021493493824027554531870680416577638623112107219469641753514396074301994135658689858867892626172092171310970369388525371995232790441479482755023057586189902997986084446077453229325458160935873530209753332693293796090377793055150870068124476437483225330575268448672370089500052693646178272107575063112811636377490749124385915190239729741084216648654083376706921973765710503053405429266828355525164076932072082412781009316688132087445185056871997837129696308645687058204655219923591517471272262161420973694582636870359482312970686373618323358051269655670029587524095478940757997045751872254543455184772695533651376093575376671636679039753065055838285019067833310029454014757873400886829360926516516032718279888595704052607843383989762980523128309891076193288271979666362206578885129013935174433543561154034216953985403963534055538840914376477201351281095965228425297061533487244036085651712369395064926981510975459206659446465092193266716526316903443261543552198434555249879085664575886433103416825931464281034159198280330487420074510147162266452303290750142800835759968197852886153003350780262767411485271544134980747779039750919210119686075777965725966094904761503411427205905053869156084837830975956479677749910262143720922415299246302461995531927759102255565666319565295017857074037483394612650871847070823341810131538371168806503060585126167516241297365439610238982774618307485536258923374289164529260777040961945795110875512569037288748685461995323876676070115262738252572385783559932035904893244248208146329141944996746240492885226710751343692169858055933569610286349282807467436523832955640324012018360535079918873028938320761830201842640473473987022960115607042273288972065251261296970848737850104862484652980865000651671308596754328061637874479853938122696853287524161529667213495996429682551168473734721309219977385227157724331176562886128418027099541785975402860822756079863986875620921802265526225345755450558812948520062328344182586982147794490686137469613914603777339830520072237461198103627612338408081007442505160954529728096379411963354171600559897938354240400979889595064860190452325119671717817214073969396458258935618086458910798728239121909903716480505404835325278044045213320235691722470050566373580330915558026083726260689370824352817080713607759941253541973120655095165737657041260777242446614654575480082984654506481096716820131343799350779915732814340730409371309171016627123572899781598712660147771697544688800170319826880538637426134807753525396546320889847490868637060396249916780157625283339232547927977101216687415473983000965613060623503153591395428324942969086950817900340770234570226122380725209166278079347042285892172648275495946973504741233753932740119859618279827927760826145559898230810558370148040112387698168345436536675705369139624206522693825464909316137792295311723527373764768982774297667860163705905420743520729157486775182116816149975906219034208226716858115018472730416668762853983143591198531071839489720576259255482529488182742229686858195652722400600063787758982537524802789580222549633853827405694359834222183026067122080392972707358714973721113058584116125254178273998935329483283284117770689411963908591612184858757123794163928705280425116332455779103053071641621343014988207718293676452652765755569229967254272716448084099126118470076489813322986531855033737407598866884864564142552272782955859353926977804161099601779567808652789985635932296822602740954301661668266928887902586842889823849318584530086956233180817819279771884656711570469641317660714598583292827921472416757580942378569590403433318553228617772138933335896878095704524474493970997422577485213526396508908023009152157974867754567977699663646192441224577925765524283791352677338117956727216693347204654767136763273121972907704488666777086795402156313458076187437543097649204749953862750059026276837436322524047040460711214691512475612606297932737951753385543271370435139969461135045729570437735732326850085092640120725690297606382658160558405283763063684420626276351380451378825957521631399257808474198215032536703302959741543321366446451538481414841995526826769471641591157221557719099416908309543967041176041616393985510769444537185899903675334821575088812268744882442722593290222349966053195519856395099536499061490656180000083703423871001938628111483881019170170585629581038218795011497748907662221425418707632167093167115510684965208541472983232274053799451496218302330951592109144499072989355324756748625465708557890571157820057439879785081541253232763638226384099592653847150269377865126371405660565319165804079566028524048299056624128878598886355149047855043955382906080373073340928111178333574535588418841476304217541144362107194739976754888611581558640294375295748115221693770722067009217727748506929763925770925836913965818522936612041097434877176196429498834909662882668779241405117605711523640718998184590306023781690942056884534081631790700534224755712136163463827823648032512843003397598891467378528805235476169982790111195205569994493483298550123819985760575120672359030466610655862993554692172052717810961637997031165068706142390153910150633758770104135023320650837266220909268335865672060766837869416031422008139635579432423888416005410748256499714420385795354901239184723626879726048100215121369765048299891900193884359182293275655302425273186454426269524244598362847022933192770166634303359684496331993997795341126488126761269021287547743575951623562738289541053887376487367290348513250470683456220159518632188194059403852277208015051015583760209277786654454493241432365647006558658776940869436880215722836795877879330149986160583588683791245397327157095696109110629098873087866964036456317837801453446871171236621094555179791575094937118531722743330016624987707489383439174963594391036512702550847980320974496361924154179251291396798132515254695883361870039285571169474176728613839769050172361991923732517643241347611199096345803600601111939458858510661201527303239934215699299808512608017664594938460845329340790263546482760557787700750635909447518394695950800067208137694504389106230532895426771984257202052710624651728720367572770225282770535836592914422557747798924987651635864543361698545855766888528796512346068887146579262133694460588963013686211334875733113279051794674583908134178995958782510112757766002365858253301276807946655834234071184557819057200641502332020323059359517114393561737176021259959661133610578279260347160382827085466416528112408453887211581929186115890602753751313673092364217519359152526554243268326629165717855148357910021917359048430461330900151912284850040241917005790946522509044923462023895755375565037900801112099885313613651251768253285777823087662203998575695130468969977521901803970366427637088266401505093748668962668771158441449524864299903628177752471618440351945550361477619018922652957861164782357569794973652926747942016943943498904553760867637836888715676560645117110440282684568973815015138043109118420549217572804253604270223743688880421771924737646678863475201034257938073034554531123333972280178990607100170857347871003757025160846299889024802641013386386349977950971684500644975837641082226971956027551889715083708968676721776136631489317766070397543050288897309535887427673567954987719181071348392971121462873460739441504000890911550324517408255298415301349080635773588103759666161149820278533762906969920025636952248434085814810723962191381091712092099725036446928080189451089822324452567814205022771953524025095407497513569613763001065268184746563294612639857898433290562786864423382793199532562221208313973677416610463858696337871536824937757763023825325344394986925946037026778029650033201778775961016701609872127172236254661597693687196311242139185414172637483875434843875483134287171502021737610166184851618244391553039158908395121164977631163074973546087302388484168256550111555079860550992544599905692302651465555397599743143570090289816532931935654850063969879782664431145730881894744654943767516524223932108918553449438151791291944913160661707948086833644454228593325268096206590637249650634001878655344508805553414910534231706113724764737416423168835180292174310025891998034534494126924105730743728019835242608943897121014208789910218211989094319040833756778089061547471205802173605562026792973136680969161944951089061981803383951534177970496887344706041084453841443421506269345046023394227539620278885630242039219382272235360247673710041344429720038589597901646646799980050053454750168323614197837861731455262470394231067775075793908489191527656773606179432662960959648717869997807404476226783869516469315315474897005526482340066416433585475415470726784385231992959921817064569456871480373414974515877073501842124909541760278189583684176683987022779309949299202642877366920141674067211066064873109196212438837240778976138563730764426867768697480887513273908286588939248847336983735108229634810381184771311001880685539819732720847725796077123143808951375525715670548666964684995759984702737655114455867710353573212275503034825448773381273687139444142372935485552488326826038960313043115798918131867658329178196499943794869466572649062959062425433951422184316806597326177314220221398315607959912849167166522137400277230084264385403752993485260652243916458644885867099492974697509771825965119097598114257732101114190463856992426942146572282288632162360021129786618494725241817235408566080062742482603737581790685286917753733250283940439028513852491513363064629330705228289488882078502224425798275665346942561440492396568830393503865953434570520959609214483148373635422453571218068956251138785540377411117219748314013407325241907255487754905996776324335347208737064380350349745550442656137783557094952574366757627896383079748233198938211710596038373432031937928247541369783735019786098018803180450741487579248997902065468644367735915879373107466481333957120029514757374467217846231219212176758022656264157155010883549053120733845198307316769563634676871538215328475046837370056008146573378343558847181291089055450629613086450689861601499903701794690194607391983164439958242387611892246991689012881726027950280512787989709200892648102632888848634804919205427049478232374853205612996713576873654100408176603642787423729888103104050408002151741849769932831269474537597285465797495815223495011159297527887110373019597624480491229304660394715348279873887923461490891419749460920825285716184471886340608796412107669442944255273075951456245918787501809252834894793726577728002816592817630855800938415983840761176966509499335297355100455118171769148592156915222364341939445879489567738527692617242068965015027367192073855080453255426961173449285456473923532128294294824991913291560369802050918436271267723650466798848720392601492804434040303697123644951158084811062228059608792489800164764372967286890581844869263944561292865340202166489413308009356415596439599256300958201395094573053179667711395326572324153751983981352874432047673670120463467323837577316884540502099673899722106557044708099077690081099416524548129793054213316829259604104024464903520994099332514461040668998148620259332490565297677336522268911206708306096984506842499874691015564602962906298308611349687081701375142527261822109240155238032612639514921890681116000570197104123183953742189677377216017160793078599004006221835976227646999909279666072674288520555302914757554927968460286010371162289788710682886242512437044432553778521425577732472221695356721948236179358261594813512633475853649506717105755389976796858719999506368324838729022137741038807523912019823736002267178388198788163865654613726958330574383686318445420776491708806349802958459023367441903002395269082510519249217707656163230438904358371470086665614348523458537426242672806250612882721581889918555039570205220035617207685177804474576814759452610934118786490607057725241081027370443015064741788603341894484463054301603276485588827681266918695547954814481034352686527646533274370503647344951278565284805368163343509448696759652791606216609911130783114923100235510828399325613179399953657562515370022689288489279181631906061457553679266051421343294934333879762622983002068251601185378540858676819391294974295837124864893738030563146241672481989252574285590963303358285805222852001346050851960695294142705111361988455643538712529128987293267406954121310812815035678241493992173710006872457271549213701933882232578960324411087309799908406733415753917291655263046296933399559423284433291787798550240778140301553178958251701110623425479966155839034706473659939143046807157650959663196316908174919123682684911923638294052434673144090109134825242639322596362473086182100720566286355364115960311995967093061866095178398329496183910719806829169008459446368404436836475660890231921711982539338843167972870733195789240790218596965783063897635655512243519114132322218834075378298463312292960417330201317835763180330755515111195690094281546605101233188021009356945435096981854915602884544028557867782914388548383677330154115023859022905527913117576391104907849667044584633806724367005832807755549966308150534887820246611936749465412229868094957255830154525052687412086758963498797579299202933714371217286243044926423529772081322577859397727465883957207452394924004851458523979168338874344540229493190467574342837101351243155298607838962595310575187680810721590875697073087546367733075651737570381523060822353924640775021835394938822200739854492713767443888899769867864495312846354789396824769994724674445361689659094347688221350608193925537610021027764578722376450096611357302991129624528488581114312370465640406949349218154463396322203121843991286747944951853207712657867704257081453861645705538708094660088073803195868349038998387919467004034682073899369306067708389229424830143209849030020793397091191506818098997421582388555641222999573081514550082587243667928082389684421832054483112567812317485549290190729246199141212840430300639086490414694272195311356987866210838101384602235564426310163319005132565166084356243866387568264775827445376366493950439116306129837684344250662486151347726805643827483111876340629868214189727671026464714325774961112989542242229506497602646953036919829536316089572232789401001841106222485127421211392515402862576948309626293031647459954310003560353280351345903317788118373137238486491132121222572776742716960275906973253972356698422150762505246276552602207872530910952651486860694254243833296764459488261329754184494815651183631305490470676433949030915008788355781542837099062195977381377049374271060224409657939971197210498058810464831589510910349860865805639692136397201422304232121135510408969466767378752944653580964271337430070827648506874568948200584817684251349807032701165185744912747953977966715775366185008643169867551885851236652870782235753187826943944717354968559333497537667123828138985260530123345078186150215495444130633952029669793306072756049772948673353543238174090975227570978758633820558235835000323832889680770870323768093462549185322098338139465025481875109088369316522965439215789449964958815209271528106548723413890361583982761706634309950599330523511939756142974013630686999841071258662465084774863357031588429463597222890547549332957187263034827047658052036542967513395776575789075569018387043297296733816429073964039980048416495687843654590841019012172066829129662035342868145682467471994017724800003212642619821550745012722738388422757717176466021853596153466491920679368947485811777430528238301752906958974102276501920527273672006284712352655479879496903627605724459938035162199692070786532821044982159127648677872296989331457555223508335083521748151083573461520969601408988565027015258919576700272229855900383766425783563032669371455364136850273284698762466209530813503537130867224686832519941734307897075495150734694672166135124027168422263270246344839706895544126671290327379284713240350092005816331295812253730105282920593495766371409519100176160269267333968421145596234195897157775907581545083724170451391111350449970395956057159298937892203876475827946276152534443057459195446277603341540658524770352617554122370978314057811366981476942633027194590428316209429511947418027899166569915989735834199057091448347211875436546950389614758122205052795720062305639845567966654551838857125419350427021186485458977578165673106124763680278172205973906253408327799018359037297986450846270930604039773941779243550465413360790771196149650584517385500887258691118355110864155978767839331696223445823921953697237605186573967748940088648512828105804060495340377743351180515318730606989498808499469302972983550771848258063596059821942197548540013329238963712739836278577190529211429959203515208942709666762450746151786060045800132802135541146514640311900753396230995519713676898133576647688531928564704743462179594185707849626339726537658566959316350801750188186170174929368796421998569935720922782950172327699175051186899748148633135868890506287472458128433002755185593906337843338016731755774452871511268558566733013614229930838342222132613833665400062617549408141567356180142678821274175952446655699728312976844059993892133089355375897565830771125855236582738167032732536182299735505557650465486405299347768349403240398187421331155963054433015324589625652917979519648656921349431393019693747185279438739955203543677426724891660602518470184307027932058293464282511131066663481760856445595463933942893111784135347242286666452629874768419359550619599701305636216217006156028690661812454398360991121639413982053614720044272699718337999164756271696226118301694642070435090201051747359083800140632627397667676378301231078404879208571065201524154784778443226518634777413943037949786834559409937908732301389429504342239558201452732159152676433408225377507964391143776388971795900227452643201422105489456863720093119139743192929359615492414932045292946841461528008273658136963688619914031952740962582417474420906816788278723447471995487754149452736919349666014847551815422803624826717411559334666629111788011218379084081389379172302711841335642507404023514870479875666579187378189678755325328031829911041824482419668538279792964322757732427542729554669569705538168430932472418492335639717221794816702674096117497813023532780219908655351584599625524213243852348088710800088282141971516844152630871415462268310251105048208879651110755678502360616947195526079595865083925351537987656725484662344426726637822922705831791701814259803424089278533890859947933568774521537176919414061119205582509407281269542555577609345766991073274592244315484656458496300778013807817095841336570090856056121599741651942348794714205875911759998820429603160160923943789479592355963981280204782983230867881412012707591644961231766893196332594113074100343061985339833923887729209199081924813990975990212250079341168719940623805934229692404194992334575589135063740924648672027421612678819129423548815140290429383775417734824477772286300345765225589983069900152935078974134439030799123295326496133696706364866006952424389635262721134902806234408445201752978724087106750411189931160312298503484774984404732337265748540047126828465188280120917431923086252086349550884974279177417654210490125630020425376282596190101410481174635037388645234585550482086010227535926855676174032761043885115562643684509718680875539551786368581108451742312664328867731652622423082376263858099153134682152795390602115792270541684932570485223722761957299373369612888081173160895275497390098815580663139701611192944956907165013400830283645009813914230414288927011145526262596829901580956304113537512643921200155183752562240670766559981592719140688754517877580338620887661987757212157301924414381899793890539410699336750776782276185720932800992526763668779594528550395805475904134740586607951998541151326507916913543926369891731984474062185178164937621611639180875172516779998579999750047757105436366142164118680495779216308123747929660328878129406606380621994894222230135887437719451460796854220441884233283836362668837755893254849354025661221925344598628878173590092403562650389978653996048597062324333196475367923483598583009133725133764488709131331836068918135956335698476876451080253464373767350855587002552763460448951213389524412193244462318081316384811279278711668246110469088970497361615752495086239081653384703990837308130471956679000402599619612794750316196158304457452127107878361844329678064198679084879270291981319372637163869785434851804203394377159623812274497858699032766072408259856469532114064619367514598020200251441710133560638420032290289214507490599051627980266534684515366897944985707071447407183746521432070724817151041984306923264743417946464548664740211458177640779720173335532559508331954182997277241801732503127096483783034833196133342231298332989122898404188323073012549983452622918800009621838162811909582654351657481888660454253271807307606760164131487218573014470809356873807996528175699601845032077094251407719568636392598880012331556756958131475682042564414409832952067476438653570241123363234389569270333762383693716711622770314327478285638649065066026128787161583697899695392353650895247117977072484875644073175376156047162933996536251406406544178145701298322318084337072416752474702876911660261706734020662051705634011673055802354503796747983310807135185184002092443161821815728655537374509543243478598231173412447468763194626887063502114312653333376741117895781997936097653398626986742862196493873016253969683508318077059889957902914047982258647726807418241555739260550741300962306431454520757337418701050232419127625633266934896624003810736200915749139496336228704994131586976904033007041446063328052335501456954409591964788873176352262145843498121410661507955735256177563651648907482612558418030812929297538545758033422167608071849164987652308758405333932766387530663908670606771842574026037306257964222188490047170289581089600439863307419194310868161191912142330896752132477274196955048602067856495339462106984605709489671647502301224530927244319261847791395792361981736239377813831692530906191959074174841258103821767518416628797381740680270504870513732851684420303812434666222683068279995563479382578591124872008087574523386173494140041559979738326136768004790593944047142272320596402194964707865361055946392314664445425006544368227428941072891694313322434142180466375554777243010161100182734573015525205778258936694148990518541649904570596362646181873980941497504849049369660496078506621378056948213625863472243157809983190693633706892072961204322434895981401959226077136771031199469866728606274903755944433842527301813487430266101437826389364750558991626892291912629497327635370666136432853719412898613457071235887942352810824742958251303960157745296811338532123579206956113913582758419367596847271934702994609481996710799086024436500585168925419081124910225184927109903674210927386923201327324758994116641158842242953975025000941866378264369867415123206109799767417082857436191396010169148213684759801952329349710611058520841772375091367471717447958449924392032591439222212381510078276870889104908325814721233142740533773604083052030262962376013824730515672564509710782747232248621276897856222176013783340581145899054826554627524876034745295121143452061064440495377513082909674208142937681552045581444838363688834764060908557087698299123993515965078251234311589604779184577558720246442627342847191454309964392897679653998684404139906919442651750395722826220247060518222407253627442972204363869033104679927045933026869812534747406311429018867416535343792824657954358376433415332414714586474096756326063772284674318406070374601318721826126919644149694591211811494536451326771181399014456160919879048189755461947570000651927006857756291539869999352438736097337833766484778926556209895127587715974777823412489126061919408449399027206083240873836215519941369968352375340257306321221446221912343209947848395722414371610048709569866558002178842509152564750121882531406625851475174399749758641331191242147906658384508934594323124071875534755967459905204495960058573339501338557310563911837006451931215689067942653541533710495773812519260139389118745064148108178580532164091270838912412856400078518863914369156852472970949668907520948856904369980548651055107541904185329781743600256926867657460437688673869982543634723739446278216839353601854295263689604712228093032538351708218762106239992021392777884345204157349510000171056159129235581089772556271672571432857133987107651652532462654663541652032959104973408367171482198725020389606395804204082039007687940275729845291026341622568948251282564237325236818176829880771335959124063268745432050785706116772594857893479601492045214886738305758051063044584601434580063709223233686324728653019642190160997650467285059335356176841351205957855567191549474026824625523172394128971100249411935148234071877859143305136742740356283928219197865528090301155860591026525543469010326972499033926373790864886451388611380756612892671953120633767786539613662875100126840579629455432432462019160413545569630999913340572688609096137547321890075771710303703329783564329516467431745095970778652146438634714227569292355528519632568573262014515813828763367725016434575114764090036093560492503673961259415950237447802085440499097869373473400505387679220154654087016210450547991085652571120998973899166536114096788356363933766828780644606319831910684307820460985325455521108614563584959694453651057516863944225170747571373903477799917484476570092774751087720607653190124676197281716431153466804481780664718086209639599328682497723224940836698372737361915976452105765282230041827055226266602644758887830680933048971207779218971396469099741638756785417508671196668052548582977373692887950870083805379018213762155145641346574315338072318210112590960381322266424661273428273144720091925819862586928479904650808431490799931220759054268714001234223652987325343160355298634583741897173482816195470864119224409781400824768690104017114511003599161930524794619826237332143526133933845701136643821069178363593411156353693460934643320234127167964753625235180233193891082738179897776550584817746794605876222474976031209875275173688995119352437652285534074951870597777507248715786833569296177929361206569780785616312101352830484252749772974032979112827726230680086411312232518574625299841780390607351210898058228453048147769726201349540028994966209516174636001556621951996675352259654219119450516526458075501712460601252672553849761458332191399628857264176014177952214022996104993011633129161077647433437760819400792507886282032812930539547824624564109199940788942536336283085226350288357491716662736795312846169890807237397114294931152847933067246324824839173156851059558782774495723378659357107796469169290268905993403359116704623684534216688754022049338078809753709503164281248793293840081099099196060075329184869492700066771409920389033241056532227128027861482397053767901698057804272251672917631361597438278063591783411233079502310049171429389170720223873109847121081804841363906505085735773471681075026831423889864606756178147251808792558646212454148515210794408821514464595297600727055528042255285208223846543418295074340519788272514806516966106147158304414851050682460119766789840732804177593542311099556877509326544258043916875354404190549695589811502879942368214483894243063425774519521335164342526016774150881742999597847805668844426928153650557172641136420081738714289067704980754524439961226676433007026515609925719971902864020286387378373083704354244405804244327106046742180397835090502933550142709889943260554052174178288872386668635135835291114901045155521921431767599974969673272293742180686319491835792205066960861457139877458465262202035371222494436326789237248487789925848021362904638547303539870206816959499067030572565339689957234530261218545111975623507550423093072796639140004359469363931765783349060898026181174495188704076956283809075271201607586038425066904227392146922378900505236359984390922185061648836040680739251553820516364815015681244002523024459977283750131581321968438767398590955202506790278369357451850087577266489222984625686349166922991054020480863565022385972297716701085286450625046677999418543787766991712205068456702045069369355695045795924939496691560115315735647075840957675899682108682495618814361222682081193391053348131485686212411646424523986059457350503852811099527856905297701656822307554067554596071110993403686778357676867676969166018799120064648670917365624726760154746900629144142076713176177611055648431418577582534891169319961158179650308144457944679399480465266610674626365037922354552258309045652829928519828005624422417603679776134736809532931048433526630689295359211030707879611056614607618781093466639480176000302500679562122644594857750731500775854467705426068645217861893753848179390351350894703181946920685528809741979658540488997865655698495333630385811038180945291818724716179609417747348201144018303533937651081129541981762038444992362262108677850817786838696355920287450279109673971189900232303459963169647126550021340797761400537034142257058205435440936132365953962278552098168159035248929274200084582392191114525089248786822049454809478524534625963940823731523567049802557602602102060146205389377219189158482372186919107935841810695949820860070576309678905661981148760459525432296213102552137231677939908580844113325805303166685330002052092669560733346807030732671043482006847863294289845475505593490809335785808589756113849206579131082769379272751589301285569867736409677481749441688535309009468457245339653431027042484409242227556698494866331078040138488466898825511316808869817921474050902078195512789151418287170767431559154957294854444496099828942731167977130962764858479036886924478645873367075060229874413693479648454961846437362791140071586506303717191964142986298766227335266755645939480846177408185467497298985851847836527135841780600510096971413199071900804032496207159591634106214849143366895768592946685465155629792583111406331303069438937708620634823076912828779576565361925846709227887536918595796521019336869175046954425119990076320674965753482165423124740823966930911701317374764553279436480022307298060789250021893129459142472634122428747021690083296878198744937461057683846289845294863482594511239119511738667082685073207962422573831920219563419079045649846875703336954251783913484039337592714624933694668328001995585535408608063032345387806084931236703369725921717976671673006302285737124951149658550913693103115311879269685804086374626534555632071592663910060318245798878633363355598019329443245238752522644909621421729853937744187462790874787230203783081736545242858384701529169225042956645711710872325251621281093727967157339395599273997991574365267965928798233438353416880489376329756051928660653574213418581773873780606659624512622318264420656533947379068345391547634145207733722755818657724207543245349586995095593548284843065382674142299145634549582032908911497150211966812472704855841772519722656591204169143047655155214914222185733879848373790293121698253549820454143714519980946283223886563657086462258012695380795214640628056526628923539233514012745534493127016561833223107847887254524814204221391963054247595986977019571922252939772771320177163426181882556890536310065031248527955787202378383871901795962197584287832192236235704239338825488516021281687931437209044194397260404964611479382297093732122204478283128128748509375304944677692789820635277259540900405108324576776415047529345149937904914868474282691987835154292064983747869948551388446856920905116577718381045792850521399725644507559230226824784340605912243379131817784001360764602087676271104579065338896058257931440007096701170119224670164286971371118234228545165228768377413227659074485745482290725125648513283226666376685944372944246158505906204723914218228306572148537221637552363975708614508974071238363782215682882281929120528005874808933860034544138253613170472672964721068701378088440695394212342800982616804684400971880710375991609165731892761938792028470914132261864510431542468076399960283884402071128700091283127427845864616578183156073360257656555520111995010009319166375228458344235971919228241925693231016916139859079915654661427077495525630844762570264307269481730197333043922280177606649442277073986583459660402332860961954867054458551816298532006849769104972371297731981735244087846701971734152775594932373268704135984604445387560057228919652859095523279854768059172529613720944311769744735321442913452184032448294371340353561572107929822080658080114243979263069331265526018145255703349557531363556208365136117266718298741465582006044513443119374849921811592483548936833095722804835524275465272723408619143102407002170326622263885401513017957176972229799032302774685819017774151988289022457649443110187853432151489758240903755013085070507143459311758487953616605624401156167063258544221716641964184379448763137944582118007938542803329984151962140675009922936697368630085493043996038995734142073467712092102691623036308071775846684392797126932775557835305368242935123995163935776248787739124939119791383645814418750693245334930550050516696673331726381819595031950807589281536489009395913191549591243735096623606390255042925155661841698280230549140577414758540019694024378029686170920761609302996964017960283505737277891164866238120901934717462839993158757790506223298548860007963625364538533298737022512302672242670559698980432367659646445903313601869934397912714050420387513863431304006728926787520138859285684814361909460699710538462680161955405534159624308650799705601855210731730476393092355497735503655167311321502082346276022351668442990171310901250689254939793130008889003458230380161053197074993345660325024226045718669126023218183155529844679140372220905735420769869584154484383112622323085540196447741588324932118854492401903577050723281833201444171825325068108859262223469061386703282655658184205573746993544199918031540076650806605825240897162962636757483115419046314737819004745408828989247542404402475752700773182826971784497997009776878729000948793268808740043187245587654689012797533924082841940539312182896744082960957851708484372950122286345743059979634436128803812150545322861690064444325068678021424859916242083798954375107135111879829971070015245066880120641221811592101136835479174421111608937055423898617000089031688886774003772963404319804218067696149098995792451614763950010204492105527998124955987792140455439778229871550131676208658823050092257227727802001632807327088777404260921273278837866842719172175474790177490314053046784457268761113969989145059357875672924360569137507407527142104307129062774493652600522033597632238462395020891960857350459103986062681874069904041877585878502046774383937601378023411517798884705600009502363260067923817626847707675943469452868668813317316164111515996357497066453492836533839437137291223002464012730440878080667932970441274347781166912967822165891994512844759935920123193834884653396500352566023091744354120210810409795213949115782246428391649351364693864474892207661379568690812325718383510631348823197888396541882477177773504973053073988639076184549959014994679537103312770465856967653288191842465018927527353321084358608139193232778997880312279779583918971551847164658039261820279819021397645245517733247780489674434743562269694878200433761621230543695031665147495998436429479776075668570725941463043866285980296231774851590684750398987957362744265339675176249406000391363972330370112309051833777265830826703350845897858921022483052088486904709554502031618365901493017046389298547937362695517955608233597357412471216689035320506133358170934878827765182194077537028932200191415812204050560949913431328583384985967678658798346617249559323232507478570126354354748222855709443951231207793014371665567509736941127152538080802637223668029793794063977823063501309083429292297232459006720254974094588114166518787704350766963557562264372461995644432500978591822139556361617859912495327022170300027802690624221088203616925767385288047718801200684397119520540348574816695924233083979291803661204321651695079471794576521456420445414050042303136328888172766665088638503809976181784814428530229505507178017935835188477901808072820543488913872563273687518430403232818258365277458521294079763227190226142948866817521543565178783595579761003705534288769908766502059779463098214580708754540760946721908520435189639628275943913255727723277382134599738239163336842783418034386631198354391013194509066874059970125255923536957253192397467694188234240678625748348926516157485352591752457918077654240738656711591025339595618541663327921298256165961331285135870756283643545693016241972437226840835711954450312509762244799066848159284538211211974324713007019816490568793604690211698931219471549509695912670689868484983110965880891075874651950942518247124810428530949945519895406804430400396740533381508978498249128930606399516833513991268266517725752482657665366293514895653597204371726976668788653723104274881254099079749012072067058080056429561330921956213048200032575791064209108581819519171916129779236147081029756933727447114909882454254830671165538179095457847388285363723225514258052435417327507883389554298330280287763899281605494305827611866765041184131931929795807041731626898620298053309291477431069255942954951281507238285930389671130066802837655484766374473375355131538513129861623254673327282391806048106890499878576614701810537485309237938216375270206822677680936707733071160155048151163889387652791343028850419348656340525856483212976122328354659497247328081949275239473319918980416848477490620477616502945130907088006251529677615661496161335232544459063789332399526601246654101621273926357803245769917228132881987651817138216155174529294101968893798730992777968585887715261052160475509817173655850227418137615703517964057572438119814420128737988326796858240973826339226033978375517382191408802097052127131348830079664945914286532515022608440608383160844596771050090933478356303958036979778291582365434558150544459552068169333257499094845371943252547046238693634307985861044236275407827194559985231377027251850735115499990216375200237945021128307102527119762698223500155585961508613491583367270097885368261361072619371907272994074244261005029318546501752663246661893428695257166378415467336909286196122791456193623428196091920463274290204448114420811031833014465062523498991021847976724902983371489632690208864930362900648335889682999525726980217840555927807666143337871648494943471808257099314586964926035224528281686006908799561359982962110339245891314441002169285635515595231374376509625478770865260526486449081414975424937730128221770724033287133672602360293322439742771173629506150883962014509935540758828937269835620556373183953459605588685536293478420758361497212616005193965786364586483092382873489417314965681115506204388687036917081632584676846403518033954208145360159026159214844839069441174376225923427516811566544155053483686573831486757223278932118871159036943469583148391604167569713593366824200502480593413409384163184502821046324483087967636088909516399400036950367522400775358016669337551359173349558523032828181361721608440486211342400386523399922008863441862442824368759163796827135605854807461038105256656389387993860661775514804646202738861600011157135880203656673066893476063391244260749092509247411165181395681837325430000734171222905635246459312107425040870226245612650262589281999067005104164484801753209833343787062088495918262127989542029852888006089408772922774233315178768145671447224573490712823901374171697494247210136705057243810036317300446127640573416163042562376572355044395725618702974750766473763178635338700412323349456587451640679181205059155502657352659498258536358769327066639360326445890371958796226947164411842449577222808239773149716868842413885818548423470806647436701027829754445191199144019129221120521952506868875419725835860204883401674942844883394798638469322900595454199072417134274111722791656557869435664450405632180875333792728101866750403230845441966008718434737512778387476643293839391085268539840676427342723166331810527325426775808386133975464140153690137015334583816492127336492583606420294949177756357986395511599360175705512289292450155626344370228802732302550442494430378188343777843266164303217620138785751522847344645457131537553839243887764072930978984055448040119159011724021528450649196800312805462477916260166072506545265775031685743226247702301548786537760612909330458808088427489100182832543276393379681939592082640125780111443907477200877148040198224718017155036865679832366592843308072257150964009201743758690202038050818540446610614399074468059157054896277275774763521755929908564889360435701607424668975008466764076581319231952814973130025646688828483760106570964948136209086035201813329532640960839164754035212559095316388351147923758479611596002035030091788182468192042887500589384640418317250473230115510641917380104885193873024115609741850942962836863533245418611885944871079597799802529333745389631521160188244163339818117163665324619647793784658273829466215194389810496259368962145466909706296727143513960481628913204988721122244286930901047084921364596588605313766321488537756053766882454397026549569992225978767319744680447349970640613445540444002427942814050787691212717019920592671172058785858183710997945824375933473220168864380814027483589705918416100067117468722307281619358785498762946361627865321301613816746995550776389176684112854409118101836791377750000108940510504302951652640524694427799169285984547581207939623032957483353725681571938796408137153314969639524661284289272471155273611635995884173394728804888901314887174664227094655964381734345350618241209318520021070181854970828623402388748530083742744059320876877445543390749654170250113725043188299075082755318957085725700205429806639065262998313201530847569018557655027381183302770104113719834711354758539308671698564173785458989122279066813175370704546740936850016116408479048920053708286968210931522900581983434165663389553185466920867631911126836573607982063488844278751863271627919947715725663832642469548974835912451601912839680462201658164052755369020475995710940786093639674040866007960917823935084449166770969972790334519435078222699091021858486923822419824906220494785398584911429076334085193815187150111617439883836774124178875769211901783722984081587071396060106757017196742120931005286413816403001999309141985855004134580936881512589841369641428944721385222847711796885498732073924438903957444797603268482602880244703970901296461821534642197441339419311977312136402488971844856583254132048973787872588397964599989263859087617781904136043510978731529415472962795193934508896164534629478348878940454848672656860058613032100700534248344467479296358314669626806814476448414590159038520581227257279990320871705510012415255990541600803531451630336460452544326911038503893504626422710253974341624324835613397178237090950420407566147399080690444432269679460444246550224611784445644506603122896327809476124460316808665217059899399776235429393850683275571557683719205874016489767221736756596347225839806377571871475758828406033703118601961812863551819763871947043023412955700142444110161723976695604681830324147002780658759127034118091968625386007447167894130374319194245735350786015125087150784836123347502759876994324354086179849934778789552851402846710679157196027584413709549225522561785453535604371065436173961345853389719386140614618115858271891148875440674280313419010255807796439566043828691421881493216327498730805954561607216096951179152783188071111475370170611716435115385973503214945085027872119873658559614938300387267751045753134649947547329473639242649708891693500359737433799540532990949125176879812592661748679561066133079011617282313803134152180912633032287269365613841655950363365885455632385011548364471628150737927958608560197383643999585361164849336172996136141663595689233815461768667336542860530694800396986041244227592975185205964499623949496985372355220539299837556831240696003007499853888877762602605185396564275552342703019185000855358214291355906634404776551666392553907797295865302805538474722022370421127567735326202591521687424307436326076224212820390302784485717067071434947083039453052430874678969077106356510817176240114589676786726898207911566487945879899298980076498162583900654249431523265679516944932710330689027106364102708030989561541419826624235858970673565807825059348736419791404395736025704762303054654992454828183457157284141498308562153422947465686583260387527097846146478837089719974665820462141566738583952059488258905837233337299962104736329605237731015720556809439308755431507162705345260428988932783767453575030381428702661005557778701429734028874806690308372575716432669608842417269740915770357754873954647392823610280859906315484266735882700973798222786493869965700435668948003812217076075348445302546916554037512167659199792222021006745733211724086740793019322948097954315273078900468102580570805816420658933419007511367406384507690422531882157279210270993033731470937364058130467315666887374761265143695932599007018204301768620342412977833245653933845766640916592757290020496092072310693382744743099531643025648513509385459598674323351593978462459526506357723772171158852018846715863767841273630450411576217834290779000560065315238124847014861648099914397506904294347768056927046560995067133289231388480857849314550114968476577926183670777355871356143204183634039400250040652388102286794373607533071579449372299176767045500875456585541049935914197288248771425294536896349667088508449992499524891831425621679287927745578143906644088925667633303757451336332718370514432655755745259523390317058629332517917786214448008003697777579813216479859669058729360696450075916652121487629244470231089072866974343242202275493265781961054608461983851506882786424111177515503911746597327821701634254180998988161511299920418039969309819492566132771005075496394182537545500723675153337741865176388108814157316648875518039290018395625566804554243905942332594833600584414954523584361710759836216432351498585034542104201056796267874144118812639309990108859171987119692573669480938842306772853378770542387799668565954578052196735709347019609050311990437848990755789198483067837245428267723930478244543265181671085036204428474832719711879612920590372087449749891345260506118362643392506243743317771153769947538958310866107472321014783512252768368169601302012194916550390358524488846577835029575884998450087999553083614059544574360613968981619160380320844172423569851257212918861346094121473379081202750571343880529558407770837142161957517761036500312728640275790112531610812028710513110598625178359434510119824509275600465512114823751726165569764299801329491485544405700618884536854721349060035069296099753104803419896154531725408739649119833887380871082561049171692641023221759555818246537428039286641362003232876353617160295881555865170357030128801715701543838825616422144562856615743382344122153506130192279241505288082128074012194730661375460054383498546093542234149632784186446133980642673165819100355399786121926293627094806894764440914359157557876808234157344957018227030083862372213459075441853015673648413391578797123563372830597873868838451944628520964890348141765197324385017843317611290733414599592659879875213902199471937231260905779873570460674992827327337445477420225540343758515306852756688334143965565123870504218638070504742759078425830313400891548990480473348744376755105950148976671351999101255448669020278285767792937749750699015578465346887139050650678723993589056186555782926329097421762551378119801601197645930765656351903839922460168923212045780010664349824048355166767929498905966732327380552642817963828301279777162660437787816729942529681155901117347479140135432556729927322699540606652607535762328043883745378572239578050098891820157331626851997161506146695330297287976701068314336795555729193567972953425264408305208893680698935581015300767622137987919847591145532847426335650239319080283161567498963117424548717914048999692768687314997029155229523401677107435357153423778766894575200782266441770208973573132459602283998700270858437050549099786548829862440848030481987469390890729325044310995229071340387317755127454254619306749342913662432212870103948073140851704126605793912812588234303741295109044664839624638157484728110635448499200659164700312651268733513111130665402062480608694392762438897721034375767057110564754214804808806390087804877605239154411138722093102782156049656298013907828614288888283899621535684943522739403472127760013024037283452401854864276891871578236467025247483657557405237353829779449504919947115771127024767387611797141346367795917202705200740102304204970420008930546945121000450231912885074239947857744578585179619521975394334954570529652524508781575775885242370809739410844568599976016442517534570201007844282839215432558259476886108896928419068289561730285600147747446166936470894642097438953062379069261614744346699050895291117032951106331194123778783037544363687584418035947747264831877245575948182570209544986216093977927174706986489741179120187806183070349630352636699187519902465039260652276300880184623234280268297137175464160218502834229394071137363606394317374121570983567212280582637506900141683510139933922059839415523536082637447132891951655375368010107764730395011352438172894220860176271405545308469348891592811895398352436700743811336018976722389147984216275289120077319970270375447846493903551202095676670653494778148846699329474960377055193605062526268087057389665365167368243400148680000889425122523160106315417556298068081959894411507352824274311277891161317471215473453255738556837786123752343430898819370930594546402551351332415461964372828776549591964438804301285466551808447018225355832681827375971803535516157280058983649551084471485089533474785704213868487212255116614192110302521989303866590309450093243925197144366989495745930866060459749715025355636384430434315554912842494813056734989268006256714156793837334742269554915152186614992781876025796364470588653672444693339136826059040345472456325027236293112191674714787044247067854075250515321350150517804799407676823277899259455346387309753384086855631568913395446215422891713720698533852198371208374600467509378600433049347068593674391574010592688821973701540852054011415942708738372739039097876785402761087452402947062982596559141277133666734634102389850073232979395534151450609999815840158937404375516773472790230805591113049973539435497011346907970895642200271858496146239407024985960412603813978843506135868833165349559126459863239942817083407762447938944163018740912473642730766126754582497604950999197850770654953247643997114754164906577038697644811023029497296660040591472918089352895305700306930940511441001719190408679514229474340231429138414916851739074734119372947019392558543556651441251621325745948096316669398789152296243566476942464210659188513606935126243598890767803056070273594373835417785123531856619298484845882255903014061030269602899083958087244140173064000275878106148517887920663798044436708414833027097666267055559023381378559192481410873645827905097700621266290178699157758653024618800817814505277235549800397515158342371092427363656048670046556419540553693791312042624045712207627955519481759265876097220373212032253611381842544818444420895748449874652799950595129393351092300879137583475582462141397636882536335172857295327429722080737386484803415033151555920245798340294665294125194032256222281305582110471778438825175649862103289815704745975566258453726623506835706269445501200238063573774288340759074972743740708480192717470498191166415432531414881991827282055438549519173481729972506561374293135181709638095781296618828960539330700662530855193179566902675383493343063403758855391785410932716511413466394059305046788425861343619542850707258196860752399527691101550726186542742487354791858012915734527239182334095047416628111569642261357786328605314893594036534400034668946152165172577748773325237071916140004662410827839698313663937271618770612841953754689684502178067424000792598991780686524803801186736074175930560622278823638216866513104700574930606261489777914028318556772599542340370713336424186922512216827941996935481535461487310079807994634313072710046554896444666445813772412078561679554098802342682448030373403947857657980993643798823622192999707085974191365346681326568614778812933075284458681085746186065053945183038459377963669914256297179893096712313664060582182997102471819016386943393384987186120423583929841398388011239298482466548324370231075613914333611257210998601118775825083770317192100778252662450093650760594795617964645481255927224404476612333685551148222813255552490555681335125539147059878044744740652696870602710078128729331749467762287027853348181712352469908705150629057413574691999227361313149244590351779855927208929411490991415649183885042856844731731471987257989446557385586523434826490217771523668650265392588901354231322485673443870527428033412297537089517156594239084035845758877443347202898676816793579960414009478324230680261600712809851379735418463498439572362313245075451653614573868790646728765009734726534958943635552999063895519316648906218613165304646450011620155821960006091795446357525523644974069742034719405015591997535146264116089865632820133068009842338418575558390567266765742543077772066556405197465869772533879653855687929697736304360421929376182365761577192887804343921561433591597744484672472949639386234661468844432994754645480706345614599654501524707421593813929401071045929861303359252715981255036270303235725295609589376504937533213593754265992099072809529108862992856743205176101728857366353196152660072190802326491153494801021255632493795558548922452878031360403207550342865080190938344875293954637344936197279866059912651068333794417764457078756664967478555053867786877774787794737189327688828473561450392154197605703603773822894115463863782726071459620272875776833160259992334640719769893354197030507263070032804556743195210980420655661066422510070013556988302364704908324222202565412494870424324721400537438180462081914775220978497804141517626934477045440752026971734087857355258548324531684401639125883240041783630398900345552171960687789200560227670402651183813781530922636633552135785855395001145832890814719214396845960951859973083594273873256282209253913325239208620289115662535312672876574507686881032773414556358873181638161466562187744781710614925791924221595621476978341004873632777801813145905330177634147872100359805765838784899481038779746531614626640922144118204864573777751985300174442742069839963607972443559669026473949380073669145768314069052155784614969770351706993449723798052281078571310001841818770353398687958944452081754973304124598809629988842616920889574332795160243537875515239514105610884290634003059642541325839935923163740836356244012108131726373542118092227551329347247518329991464960708375666012163048429067084572014305962289955568835087863976232830353778937810768388987599137241387710265363864748339397202597076002644990821627153615183775485261242800715210782187990308096694576266488392240034057248461130324311691623701452518924810041626968360698933929023180190400937397794228545235288108713750685258236981237644376804252734087917287452067180135862588468770987109977070175552315672397438575513845120699880599859561092641990856913826285826222197352771004850355601064539184069132899220628550961694413177950519278769256844821149008082325698793574148011675816978273723113151182508303329798601786306610647457869588427859391842395511654312060800178330729373505603473547377440152973676525747623903032957797053312001170228866165753458818430020272263806589142375533249537650226712828282203517713328677348147728598530605118450903909392055267029639935968450817317557362896146711199074615472762520192772385847010727379394026659177455490937283594837235995550204339202245948732982247996776637462286514213181833988235345802865513392251706189564213462020218961218052741857586284989685894598219437583142519823824387321328023854355440350960065005791974937747065968190018051876661887469335519226393891326676531196096027907970071210604369750088406135642322777941073385287880477580232724394154772668450640135536083406694900646268677001481927985868917480794632768570808405942306879686022622849453795390976939851142476893945589397981415233210715642627062683044422206070691507132057797637894259208176204324986045263259761323755614722472492533318128949318342420984614707891962633273542747063923852636047723800842159669622517339749669463245962738167122603729090337550486283875246190856293874166867113783581115580291418319029344151383325282035708905352736526470800309600912797241290747268539916284324333324307553551045849794579438848421511586955373632493030743353242289662908922667888249746930506198036507986912857647181523038431390478152605990524124779249871274231177921068555935117321749599848425229622449989091681684643702744404875544357174127243011312516006730083887218090845741682377577898826875014377719748314590333721735257995794195623253838261071580869097532510216482462883725936361563684030318134311643296087360442497143037165605804000089373207134109990387534656745076739312709844471318405252546849417991088507539325311744771790543306359297948229565930623837762701229893342394192847676897119807944607770602795831121928564910871981477281851806201641955687604331466219365128513036957735345637425274335482957896559321660214733381446065374039891128447705841351563020057230134436013375143427381415820498498744776849464299039346675243562367259016145524303479940587489315934458405486215833928146432615218107974411647895841933094924480294818461834255319001060078698219600089498351142185510422299473930255294136377885387865020870984931971794146149403152017858083402814111378929514097586355430615887508673717268650220708678618982073347254078969816254086216681866054856710874955260783623740448600820612421466415467722382687434091631162297562762341561327471585312518353092248463686283162899685542033628876574979294122553466760466474401855207864494793310794788157155990739200592293866064404284961031827735179836262095811794871275059473490708386256279370713118146290928367138349889246291979879460685396220766375578007677818797112265525803972697261787756383825864027860656295227085650774735369405623066061200439118041934802369221350852235232540426332027913238574535867249202957154322739023636612670227769131518669403640507535370072313291988823829957095066421833598826938130445073051826300156664682534719381129756348733105695901825171953085165952166367380620934526208377994950170712957528032660973785021179244454186726214173332559354564311485419952211774830320567722756824903035925637659217902975306647451436373983394927466647493479994084458725921791010845974225871026984344666422616140690470015146261472842825163270747799290601668850891293152338981103034857625617233668028723461362435525433897217919012949201609547041118003492865400488694798786536214110736835727018246054233898518161120449927524657556243450638335361012907837963163995417250225083893093139370732182366618270871078969848531315669368562598960474685395957165109849766764059012180892912876608992892464279597846474604052924536077174204269403232708021039828285345857636879385557856833019377021006944488149784260393998740707447759162861946657542109975697718626759495060201010205335340112956494339710431828348042667716097091876852071071727013578229399505093937714983120751753212580999610704122226824711425258340941091437526209423209006843541477990242579452955994953873373668969173273520171981772018845520442846282964645707270288245094883494229455133829581253380932438872752415917419877481974554852734051602144894018823781381293166363988812376622798270896546605977694712255227566608212885823567919476828667514608267020046515889643123982216856712883762536378887124403263514403425595123375253482161891372540186353258324046366571189329745440405962265954153843704272346654397909527056102006930149495823172291407321091129973530867266192516734543793150103935878867392211041810939858468902053688350877760683045968918628648730492515855835842852113634372702903631921382635863401944319244018868508138129755628114428920563373688137549268803512251317068357348035270272872537730324944722537769580425801588982245341433179664006303010610931749965739693936400063328801105560534631785917571207966277474270865105514371862469264059505458931619765872349107732927525715264330471953353282731137377753148579865000415119999413964556706194034105553312610872384686929817512826452508662502911955399862908406025543788248778910928973431170544814471190948590586171229111639445023992585860341174224452001354978397561328267408864494508696980168640023680945526012871892224374044969360669744590452991872337132328629171655203241912602953320363692877291497424160125287400761654317466207663761450587234049405644567484013548929103854937176650988855218489263381404635380860174501322151296516672855703868580135850476668225613480005624258768690999666290845485098160465447569715574645846222816307435335737489604322599774159847579099240543969709727963807360996704486574466818259342001317668795049896738567423593444435270495092188424690383288886790258464025589087575213101211324152705704712481194828215033534047870559970133301589933222726496457206018058631605893088247074017015297096814357963324278654857295720490664162568514909236010690734725226636818238258820370165860107307135914142129184125444775317257246703830772163344952018211451072815305193783182961399418595619988410075129535211367688759314864185945709835179863188546156630041963957717995002365674690511886333532411788010052771731763330310811436216786294916363504477096485687790733032463164677375695522055925525919157100755976025794285374571571604942763076519162429700052563728834004185936414356955245697852749576503516763542620026406280073128571668047343460558720639520271657541694413308333354924820566718827616362920379720011145222749783984828028905420500425914617753518423369715463399376368553017658178696966575130248927266681466249146104850410329572736188847237127127200572270535542385728709913811973485549769954143394505619553999169829455182735086111907590095687220722589301065148268099499729819297973764712471006648966660179383784265053751944122985158337348963148274648242658435182633798540304266110228313828425710781119984921429213204876859958992093398008011279365435338508720015979245055031180305428518914549148275097294022217307654480646606838170899871572568104180019808037629327007696328339063181003202333265989832356132501404457866317851210669259954557997065599563872553775472435154178676576805444980130917136306573416363919494032949951311565723247347161469415000188342371926036408761699014114100221934553976916716780391512302728543165100983918325323311546470094809972101372784934825283077460998502479115295199857779491471187728470809135909393617359694101339454654987366939160083614160407698836307280533920686002319692288775012844718910901600997035258899842966696382417637363245733826684349084871660672816716416898721985909057836688212377843206044480505629492947267887081698006419427494109022716564642247783355964773815884868375189466593373650392176162120809445268070303487942546642708383545111450685429937432318480606397416284224035042259618464687246265447208706634513287610170464784455955594052297306276311213698113433196654432730383584139287036908173079912338101267952369332765847179301958019331922075956745292350518063390064096120030894351048343147103541241043154419718246349430299631661523823708493169752956904929274045512992935565231416460901871650161654725007955108496970836427640909796166475539190355283660077046350783095497535735672886145800722519328129362839421072131198551255953225973907187161020236965684977446180302264321058575173572464739339102974733757144428588782781665952334253838627435099822247830835137608412057802777537642068619300771213487898427466616061779540327490777730879897727590837428533360209192037597599204795025730822410579237669505388672761513430952293939840014395608869357805774721083583388723764737160082143099278355978422394297444948439895219233256215268965119473109699122367861206093607256224836092071258332817815832106360529399140985898370014068917039993266954265074752478559039493010797049072988546111692460018199536649853299754652964167071578019139558352480819986082426851777627026893141750066567359579798084674700018720320583022804873566455456288920439075211508386169040172402605357845007325923558256150092755739036042719252078719623204624308776895040335134260900087382734153663435056942351362001863858783626119332515250557241123431063033559742055841358973429410307501062238487921366989485644427234636763405284897146939036687389638609851624113962814898910195531725212122062933149203558698599979277032520141153170764217065216928195852882570807737039674153331472785503108200083267778073324819682296109052612208354841152287522399609797988666080466718313638685389851293147337931453836785016427407444374301663539718355323779201814819732426706357093239413755042304911447219682275228200937900501715028620154328914627296052802992539332333584585236692616945467901901545269042517726770334576106967691711401678327568384445372730335018150731318155031419630511064914581363784825835002278430548200156134083914320549350491093446485398593319354953391270687004182411178241487453112165044806049207568209051174042555130908217107616330587984641069971412166243780396552859477389735669422712520095155276228472974715676974230863998493095033494767708142973726138375892065856914392326983114925720984700889288144939609690348944795582418492817332448015079116585898147114911205251147960753965950878235943021512927360497850308101370820280037496954300987445635669604845411969744698593908097411119905230996683962872708187481743460224136197506283886425547810361567282227679676664146399795640673357973286347632896649565350813004371771904497130869309963020186725155315197790205204725594328566038399747858221165602474592461840502948830093344807859914135413396474007813990345481986693953302063191195776023022215483973379840707917997435439246006862082427247419028200536129774105613669722916412420560200267774425483611353086390608241692935086472236351685899402982137738650886417813067927906118887614739396002300576943114547552811460351988675646026873040387306364984605093940754477359528359516135164715904781849466795562938230185350225758439052401198580258026614009457070834315034232307463513960628687047078339238243743108205490123123279662366375239356269546966149981439862930955215731776958084526602841032618829658880457585378003232504497577353379714260812211313920204479011368078016247760498820065330882011117417989741902107095154920356987384104627624609091405794019504447238962065817588250374161327000361975012585912952076556134359162363607508537951455026502450584558912462844630479654489965509461697780288596824623409826923676150072750866198933322003905264512080222131040117846886519168632578941535632265743836422646494993611032634999979687764286363537962085071114165866514884537266213408033358285829963290846543244868551429788538241225482731067843837460718980932118568503739762490196275337914265600974502774403046282602250793850002745253417219269695828466178194625188419118861950004443421016124200280465906450976311914118690466004335669105993270560517367681104217532558394792090788034134389320682640517214673833365606471283741598924213920694736308344333150677437398947444435138791555100729274288689578669939665396707363415401837053065013515646494984755062861907111562815161197782502309382493822192988331707207770114462630068573525690666599927394777831521437803073166466585724149164725810523837586240010720151259561100465675658714757017595285617046282390611375891777320786320866077927847061192707827796076821540485367746152131372752020551236790139159899632205373109271256827041684322711921503157611249870595608059383601399376407968267195735963896961808162469678286954417350468997674855045361516316693355185468688908805025324399139303563336822900743547400537626679484864319405915470202753557624060625264534140746574236852056670151380853653527779270619288689524168664921909971928296583404478303609731936751425391131261840547590608749907701073535078501326734175620623954250066370552217249455620188886830276893583837809492980850177033962368911648419694759975040334994438178435874080182612082325670443919244974026264017134476095601582476159127274073873922657227642673392417441652253498253918852756135917466181886339785925502155038032193332757543284443274781744909464082590952494802019092670652572228634825387759432784388430534101857479727107838261347606771148329514086929360559420407667153281350166236905405032256344048872239910578089681638557910219409919103330587742030874255120713114154487618541296747848273574349472328611258824495460483833074725521176743660710434710010301935284559533572507359940150338859904675476519608762121190208672295314459058455013011288444965833395935589585405698970756656090785924232410220187940836304688833863243186935364537891291571309776678891602156968837326602094359529640261192788530375193969461920741815876402162778169272423136799418614019952646487100603454074740707728063778126999058064088729101198684587745733287175005649183708500008262429195729546113678870667445946561722782787630031393950376669930758187591197455215785358738291923157810737121217426181521572691385698528221366237765589431327852451633865563933597848443560524150865653697737561438668657118826250015290440736695676008409489666275793124745727356247716155872785612477673875803183539135457868924242467744740446690624169747528825570726349763204806446947390876147776395509758998893719063574732900361032334593811253698512795144569074657062139468389834337509015421649138508718927312894923714290755692881767544237131895248129497523886914304109101893182863600780597308538882052646919060913694643557092693415160887293137905754439330148754514439030746381770722890298681008386538611784390417050391113487827365960504841388218158751682509141063014876573903388677266586109161683403731620322443304140370365542658340264675080010522896155941366066871997382346614083249144318331199778135090882637331727024221754029699738474198798491724684445855820323396236636707977556348171199767993341173518635260273640882768007731499595285784153329611968450013490357524079581074982953888907151603875707414043376353011352875371303827039838038423975815999638994287985757040262023017442799595959933101126777672321505588280084429856781917013568210081825695123475898027258726078323314029425914017911174333900189315833987196189604284849202349209727602389274843370350187951430060067250148118964128930726994614108803267043029544158369715411432694842351734024484191655472096176221659375824759556976973267137182284444759840543773522563917586513412066770672057806073283510025596212656238361697137633509125882596787359761228915570712884913207738990144123341354515708505086556338395465499112658295030404390918410664191409217695957830082328070064450045071311656614642037962352053799823784558565844928066916008660334293691903458297285360330839248214668402003313474689100600903004311998865337490860971005259331258280944257280784628260138690534853525860822571264008669769550194488374013758234573341741340883202318659353165283207896561332524278063435342172455800555704929610124808120061455365126882855046149943728836460379666747380225996782418693196100748995463790189182290493301437255042657528408572649078869129035754344718376744276868902063183252001174456455042468177924833255808894907813127180384408128051568597624047673626259106302675501623759502058830605462636198818522492100754968598556662001341979530753157839345249757341387011404787319123158238358269521658840659214118611576231911817246601486924472206559131973419150888911517617945423452771677779460175819575121620858382625644661686203695106629842998023643751837972186366552745207859572332089417945740658190989207136424445270833590208091016913966783768189088650972341860290312069312000977793973626370025965389722440460361513673272463396561438042728535152493579410721003241432539118920896291223381543230044878185654421191109494084520965027647486557039650961086466898879353524160712024678424085912925956385829373541566135022853977078338739569464707691626617355484492583683420447306961382074360100732084735415435584940731199518630159828829696155981865113516263134026020469970779080306599077318204449332647306414254231468110870741325938958525025309267811330802159291885540360902167688895970515595504381623617554358754601096574548240576312693168285947149657301493795548051248875949682551107857600529525710712754291712433768135103338570257549334980942343065596663469471453274433746372831202745420050570773403716523024319494519239172827126305663961736463101483031096887286988948822405848977387750616562155251649655291848407578799114470295570750914497956200050173107876943587468435973270776744988993024338600447199575095397092668623119476416000482271843666195324777321031123402931052565496935855209499208055815181262781398391567011748291404273042222555430737613000855688337860725838711708947847965834009993734667711362139762874016246510957524816021039696171663171468076774803302425732504304801975501519740092889560462125900047190945573667071827965853425844359397816099559142043408013519109329240805711602277452479159273822048346524419715663606974343698549400902863105625437715293796232100635538012517771864466132619002540421819257630761768310511062329236573669888975306104079666680372375886729921010104579605151534976280844631327186970535862962661665911417470771407491473916910467257240391356812223201376027906863960531232914252769760823484920885607264789838347351570711424832121074688981149236340009633840795643681716199025310536722205116843032663447685604787013035026338905375084509345935623635693278449689645022781854777381203095282971158805018372092903832418887412679818907616364910216783413438233517795623460686977086123241927831652779765969608109660959296106636871367662803422726641102596255023927459426293617076324353914946297546324360222201954047306182284239536108603684207517348981483568444828190180994092887363227386965885270299245827967514964773616595750790636494419260505528503558609820096847583861217634729758664516660065062383548781699629682387302673907088145582226704444556546401819604003455158932111181985345676085457595448992747926059181130990630876656111070852106902297448677001739729364735941992239298377116490867270282153306051720231095048078208154790902203790356676877615583356585764847336751270733417879637036617458418847489113490867870393048658857025628665754464561088610621629507503024769164098126436916274110836284441838401863323620748200219806038450096859903899011246656650542471303911082019657244639996361145342657270387453426046817409311309631263792746000663536072712753373596410226941919840957343552712871063042234575555448653122093327853096954003604946239136095697914794085038495272526028910383455117851205587357414332088126656770880555869001674903558347641565600425345269600035366984920107397757266835851745641010990209615504202636804069134394188921737881458730738305133432058311469171953372672779478341435051396894337336688582692972222634128269320287941165550516541806813488344986779517692176520641329538581361787696762772869719232280290914958330765144219928222294131645359937273698166030802980530197554763518497804101058474996501867160764214378082248605317938655285264983587248042994632246325125977050279056310016157683757639218565708221489728470891488348635372294804658317174384778244938755410495206785200540466699673925412817019720157640932279629791780572885743878999254492795213173524446436774023470612170965713117988970318358666988085724233335916913276232796262143260080070144242327129120626177197208505671571625328754928889129769059896916009398148065519254280128670746190188369599546599708084797255964605473650696617393501048443815280543977970811208691103699391499651734530619469459426619820474472899408508245813848718542463203513118433675108664317777595536637965417538910049730477860260360735093327577033197962392163427080342009772543205588846265263994706214578148218356921419550918925279391190334035152109331886714830314087983632993085636964138636364952588826758825618418048612176840078305882268849791252283931453761184663337822082132671060340525638231443671734054982480507047245333464232695454555650755117765407743507439153854099852410632339663237758227337971420628217276449940472004811327781314421292853106522994576918284830424911570787584685690014019502070706823750963317663295055627955025846022035750992897057257995974867024946047807099904416721819172306312194835254505894887827750425482553688185343871870003258183317978258457969636204704777991783415521902514840982087114595054374805710856092166925815614444833067511459050369020545399640198017408030745058003657960069152015598960366672022691094267983939350866020875834058600105875632593248678802483240007485772854044513863043619793875978218110936551945162256350737431459173077493525407522837686680681139716140839216442542809652185344878896819535908936480434316181931165282612081063375194794145832844264337307138014898230591916878680771021933449627960664100001168127094405957565159523591426840503762074242541985888333031198562779755159286962068123108554901757956572060828498475589548287547529147470784331032918739744897458996919422828121358728186551162781287118268356976313707663821358615094993926550586309622041472522045716450721265451706498927352459515377075770238088780652920866960674494750328380339515389603976290468180724113502699415752785774078905126507163262812033219927296848445120160294700261152613111342725608439552121198963247726570639545719473336444532329981932182922234889770383980838508407429509393547489866722539142790338886441479943827392448101697348745820781196281562372047202848743481175272964300700767052410572510520328034696059738699096455624764535004251990365934594338861191851804889736277082741924688753031360406961072443953772527497441789839542042193552409896596287458635020396951667450080867669253284223257274832423731202169002816371881977422107699990499977752615654334084065639057570853211383739924602611367180136267795110534204277102336989647207099512678490966947794453038304437642374634125835858635312727327381531485779104208002733231140041475831289085306152032210518569208383509081013114590324689114688603020630551563444809990005793810961567755871985575541321210732146758806028207376561161937817798714312087809153213809159242533228975081046320650100250177378815576730912387830230789801620729312658291128686622085202948859351674437600164986346489999698180542172863318240557368978834322749547219622659692680170552957073841468894846793436451707733686779835613718708978430455752388229839187572162617229408777663890648632731830959298688418859812498500074879580802532721868652157467064189051289726767578967956981042139859778316862770748108517405049969714043665905930170721574980035477988398472506353655957738226389943649274528885853554962616979437940920694170439244265123419319385392959508004056771100799133048763508300702354245734447867727374960403102223124033722843072558653110994371497326594968012466314801178432296966851208945676325060602480077266422914559798960271858841410060267364158405436581115990080647936086866772064543710200534341826386892898491282434221616207885917141992288769834455672330863184863453239840921080075747318735883637270763821492412240821712945510444388634675372654672940884094653550242215977398758917980191105272003188391700169031764556061263760691462575082820359020142640225886648388812390481362467983139466017657447888312680132921006178204177792355764250348260570617490514280660583382895271694322608751823984052252075808980874959046083814240524481484851790247305757171156094083210888092145005123301081990128879994310243148317311776085040462290755045839570997640547934442563382430374054214226579772117270303964031196723923656733038363142322493750974018918665710503628355169368094514117285425391253612370380307919327788761974238093291254645308690650792105541505903165247498847210115839645571013872900897430205463175968315254238468258023442949200399398320502210102880309822281331334689315415973952533155350952148599763033198470504409776466374766280162059347961071503206333394609309129826608982595930192676628781488038459156084843371908775256174457781644580595299608492079023838076642816970390868020144346797066391893296740456414885082828854004204494556017674371069363952478076634351255727442384188837252454866025485938923428960235053172768715177405121686580422606932954218778708195534736213786387202955924515042823281032369674714198311447768699937959794602681552764746905212246786282830831019737499353602761470907179758517366217198049883969749970193275689463694491589590376707159396258027452364984093461248172951726932867147254170526526446617686705900541324820769965149338457344367381950417209486169880080922987593806824227528699113343049007544480000274459241046714984657321271687145107578938219838997934524160671580704675465648680424937516686326544493758816567653430050195011246153152416179976784413214361172025561988272328350529200561980179399327811579600559869133755439675074189593313297158496551158579199336161670784317442604501938087484790586575598283797404477105090641934006373939119306433680377993647561819797958232907280696080214312901189719894897251938375684670147030787878565221236044055735528876858650953918055839057446303772365370083574727839385482679235429151263894697895621601199669264379601360182853877532070637435031970978844101063038137053441485967353455866635882528992967834376136017573356974509789915501422977661017220401455910507882870631622060040990143580468044031609665593203382308071685585902518723688248703606339922854575690595797811908484901901770873531752526418263988981127432050310570100260626534353953740082060539008580269323480755602684360078353559389657531742996881422458296502739422470935112282934835044722061977871550228196103452413126569423621470013407538679668212359048650505898452545728341332722210910195715990042476223310276148804369899885162349269293640968608564476356462492128297257362855119530200701305452056835474464394045223223122798569527195609986832889629427791747473908799799069265820675385337880797654385286777885847189320372606498173550804499648988518673136421679087252896208052554496727604648669678634615457441544321761778244735734470912246530613584220520614442337355107411223748277677800773401474508353622782591464827316246748336279572681725697987890166179146920906479708232711563432683453059468422105702773393996686696646588427389508649485597524325644789630876176109263270201458215143125351939814249466399209529662293359162742401702353441299055388761676258155419037244998606075448586589248423674856421162265604141658069228924545629770647862408323237991059456116848305976879871365787181676059665311077184441589618878655829163988596051665791761974341005912256725965680630109324097441655840472942858867485604257641400043437291015701962397637591307126595795039452701559907475631644709725138356854136166835470506098890459069699382543221304400815957215851725789988034487920002087216479407795039386898109313786612542322582291433386385971983195618680059297398427245077959503357512895307109114752731986955897105774743968578957892101008867083018890028045482742968788628570770791816811393633251626772465664325099060663670808572005433066942291793189486454559747461669217885963075829615838640198601185750516763738993401869548917811742184858153188314524408429595088934626382463986366562870485923589777328194959870531260152981692658187472719832979785554816740278858266745430779362695973676273233761067376556666548313613472330738757992291838430179712290709863522948619839285259208937035079811272162941399211179390136219413275001220432794312370824351033292836047700941683890551204918317474288822410651083265915027238652278860120037790837803907912892630669258014364651945000777648462823902045053776577739062774615059406528486288846343312736618824483782562600335432238742366555702826005891596546787801256223423006520930095876400041837100731974746633130727011294002074179289209571536612481964533371004864778714534931657715249262974099296682713601016461756570502822631977252533642333708288859422084236544042252150045606136185343955158281429185552476478688450233868341238253944870948001176344540393064187636310360789078346756038757685595898997042513733762327639112924140878778788135573672968626685081174322705353246612992013602341802935662901690261860488682381445266978418156552441660220815339577799643129855844241221495021773655883852905669997553021979908121895510599921183374514647220063657338222919058609027591836866333844201133610877682044836457468050978591671223236461138744685297388759063152096409536877144084672707861662624887025038537086830176074128014746733356462948899598158337331053734078116187303459001380491464623411901160242723235384372115964685454608397736614008126381573650250610026486583789719242718646258308449917956210300313072083674260886888272796919588499640462186382094908119121263214282275767529565881236241258274965640655708796270963090744348098239344630430153280466922182295088770229445919396345131992286136778502508329066650267402769662502431288867822087174633132214331665950558306617191833890001178136556533836820242899313426955980978417283331715421784459734551582309083237662344726034274932501753229900835084585404622536411024498114012596171491449926066703182890544173419855590375454134243481443868568467209584310768609457620852626777667840093382859079075447480166229768761262365725036293811425769285531594060294737129578336590887626430445399295296279002089027533214652222143303265690170417427155017107449362695416845395919276363954486915782540223170585469329171324666300348281637105311579782193761694618245489863234815682798911896847152583000684002138552234361522381971681019493238583339181969263244467578603008149882419126790860759780037761961825870870467171107648979748961204539997933293531148576835935891709791340372138819122028940679226683567769244429002960416063897913409215291069316863342611786186200143332773184128306697633388613356348544428493444582535337676656491589116086107343163886219977456913810105357204856224133269536969768567101948598266598245693595243652559512318632749913864046246253859400573742399169835515083555357798296499379709843492123834303172583032901930045147364000392174595234062972661088553750907470432773657620033017737598758772910022327063725949771093446751325468910749570035516108051591164622554003657034541134252406226905019345073884229961182911313937539715957806036976786551850206377557068298541048796036766122640111658191527084055078091723463152944930906791665477266628964775037711462377160813395752436912333599961572927478970415390283062802492770377859028595788274341747876900498157049161430227823186661951007753020863904853840555020944302704803495840912725085795272138784478395302466971906907169881013180150564788626205210988288168854940979308083612051595104002644725750359685056284020449638968700021987634378365886320753706625038834518086984482546060952687598870072241502645457638815754386459823745409497376626714841453791380135064706040133022749550641870335168472638641112837225140733154534117679334540039070310655126346386402336191520013512985437157902832701709374488590949093920480541862580149112309973634186485080100727130376744177977554585672638921898856203453729690201908290292120700856451624339161199476356645856063425064833096399306426099888509565793342314972539331474491230231951582353458862498359106553942111430516762384344278144120572532741290513582834421520932475936190429921955028649483455820998340216867318461527105787115513646949024364633204258190589208231231924675822212518489327187316188268351620958313995333824184959065535987470747664370864224557008835316691262736651093718101095663916800802920393850116196578458645853867693750338722076032111864476245476497335730776955957806729209198070187822622602952379364172404562031792600344147856904380583722120431984886962364124186191627524207496190639900006318593162477973163371275371279649628872044299049937524843549588072793438661540464918165676433683127417648388515890112655400250086216775444691555891202857739961910673487724895444894584350666262215741225683086356667973762151820219735578383685544584209232074250840042443027823354277632837580181015569137910147608830412286321534225412403160475993612026742178316135179186589673295671653939524397347006780687905075798218411674978649319367497097452413877701645380189587993462966686619738673181957058134120985126004619656630862382561618637479465756864400717665125850445424874690985883860194777608179115082818781484046225106437551827597412211793729445559672103476482225518064727857463657674257156478756764677027637490030080621101024379196958550221644670305812689543093049308336351017208965010395796219580972923220686775178069706240604197710590500623737474083576890474978420616090315178551300796286851185741083814345010661156542120770148685932408803856790407092996149593666210601786719186300691422951253780845396244341749420116568727429152493718308974003890569285019456076229513453684347333051728487695830917430661646154686975272924408542949119532227627042170719405755821775978557204113378165583810656536104269661068427981941413511844706676221491136612059261678543621517045048939041359255783343978926115417514756223260353094905472792651966031982698100609938542021361991346820430907433316338091082476519546174568151750099274423921294518975286925991932551049690788873203978886284117935931695383932969697882798199472319816377704776736011636339300174143542334081473570282447090232903901053733533697515906878332906669565270711086254850263476756365350635498922399963514844933406336413474920506865221135389195078904026297419590821488671055098729744861245162879829583197295639409070366757753229916438565410464810941810766549637324030887270045562557857589445013081827178484651895989450929492620767544386198883317467772966179323352269245875821348762807105231973008119352441294378378135562147920321784043623093424965610187835795606930506288564371034314646391779642094044468913410224408161118027202090360950444767047286162891934675056355258289027795284706995793470454236446405768105395614130152120174219980125736848137290021821063848689708130841646093109477822249688738869455299662263872005794329298506755454334899554575266024686375328022206843843106964024198042749052511049254526897351471251936138360781265243157723922029826683693635367000986842205212673537259613330997787065264861342352251352810262469860011233132709228285610147440757811362048511126140043487151380398059515211955884208598124874166051480467109960850317630527976773842971525141888048748370360647224880127760562547187314888215966601664897195597581056062132845638965427288118364454989174603703998322400866683246294341819528680102836266238316956905975916838148159092621167957177529785791867808205219185986164614023192621770349274759689561980872121033176528233620492579898738329965905349686177425303050034963866337593563728628526400186608753300759838116759531523822282364347064446481022360511697100410415606752773035779074524163562020676757681816733123290402863516134132131238318873788799042758044960767249872437590225965246628337088055732060072231906681183200333878555974059516701932756775564579474612344264288418701034085724681934530319982093352438711290277110618988391242788235040112451482986197566024341975707604744635488766181366348232987387562850189316018218634366416221231213661422038155068817802485214634167210531563098183619386223989252508558426266467654445966616986107713411613284468899584408654802890711872169421415307476170562192495900879774784863559176135252622941985529668278284961471750910506396315267491951461761958025802691477449501864841408686793559441156308360283059298230006124584498214964277713591614777984151080275181189421113944091422754567464385280221954395024289098243503963810669727619931573797505449265613046764009286553239072191311441126961292049838400453806196633632331627452168862604163373884226229325399966229681812774581234774839363574758980060917004468688948981186322799076619781238187172267966414934379217234707441177725481501697273078234443942239033947974887539635138680185811384412141106620205774545844952806895625127183140291876224610105231773023195589455304002705989040903403430012882811259908768782504647599189446130765408335665771244656102826577213911531881223862995539284937851543445538523088218404409634547515612597693289274864780375700869059671567873749155696823874298697901980519547799415929948191077232145633817242022546317047450488170105899229043070911363463967661630893622456745430875337709319066093579922511021076132181696110825648259612108883136818155781747145500305600381993642501109930395736971465045250246981423749801246875548026267728286517953500150459614805567298285645868568016252661692192283081109105273611134629330471706398948071603194540481315577463500830430160591562455097797432311416731090102492515958280145119157957236511453958598549217517786793310834221868903459371784073139853514201163511851314357260901767305490398496987557171777052709529856520747878405005767565806017920014772024817611401084060063485300771030255459866749736796386974751391874513223400274620961551286161974614835417144750749904836359867351995310918117398308383910200447641465972118591717956292656646743504205844112654520409180621351572533790272674013548724255389277190160534983192293262753123479815159057681369192195741033189050999542978980297406339020795824458472707904234126305314931416354111197484039294417495001988807698663724700721344038615242030237513209175832206720441549282531847862984587146265716452595237645597814344744621658220188793351242913642959235225288379946226539206746985388767831109646253553364864055358825190560879443963613521605589884303349453423431972966945558169982265567961093207434103951628952356521723935151863647858419852411111458698045501586854412474379028133798304904898274962710839783276886991993808014149939885718208757622123611957787748827518599824099211556992959763495561196528090060132547736572876531439779581087467732488505857204744737573864929741199937331767978568912269273037713312880750583477120968718003605434769649394533584272983218366560381245712525128021689615593742921967906479566994009566222981404700519844647605464122269801200609338046776633247806309054338234728496014325492128209583540018840513690377950777132528467149759667194931211886414416481863277049257918880380962453249630481113356907120411136048533487111992535007181553101852266133644020482362354830137603466988511993042424057053823474872486406147236709428509573484820449404640696880981335046459924285653713014780462554360622077999937038929089451736862403571945087622134778413181558366613916065518064711880027455597231438075428254086714526520833515995813493864480084577911489606734592038350200561233232786509757744316316376088312004383952388032689308858259540175850569657319716550392181970722058506662906064365281344466062681952817302862218185573364592633212219496344062510207150036027922834257967885615187598036207695022699621867367192068761965117081837653151688057209885363035743380465619208053114986483554924510458854002618010459289377838803092252600517111438437546446387886332287155849228565607777574699840451320507101784721146442132851174613796866613561350160752209191326149290695772161619436441893394044022826732325143015911654241384489920261770097593969338607424233602151406980909852363542474695458244465983276130866390986234259633729928016273804211064586412498368793822151747086697040133806062328183983375599004637194342000402023330476617191287601404819263648512711033314706544978287456912485955730430300404816636292758213114037454435829500596503147581954993153559668194496493950301839347965158037593390674173495040367887295071985103130650100382078056641441686050150719110321920056754974159678389510342360856043177613695290321196851722402235582054455755728162778427252692692442906074804702064365157613035073759607317995482796177338665276674121037047266430549752514420475689101094347256796202873630892876305310312789926436536458899879155546631200661655781946640699775944974622698044639776510605863283703772029829163656408808653126904275252434062309296809022633887258024489740057448796638611945337114957562448679619175634333954443841305084442548768993867097036713649062614280009815250299689915613228023969781312882503010273156740435629130674335229003398922708624555287769273112063836987951529541445181430570962353621619006452474263209234301285213989470120496910640314062508777571830267496950658056059921628630664449416727158519276615592165092946571808096197623165871978695644892559242118594743142598946796845842870744932517141418642151152050178540881405641648245901027932356060329757829725959421794727551500343528685667949307405434487280431654985488011463795152113181887208875770046660837884973469032419614660973091245511713301204814133763179564064240143092048520101532427563003607724176510156542282905033645973865263569179233480271577204580463071357364087795017800372190340389552443312674338216820911423684401631856582603007404541970114462074224425858513390887126463015011552159957425128719451999789916220672563026379730776224914304770195319225674369401265512132947567461726024111516476597300222640317290003087812440541650910983258311854640497338934241758844232268304681288025014698469536568608913411277976914819774772087881891153551876752397197849488068328726819722369156893855610030743953045209327186459259282050136017132100397118883852217543065593529019695656258500282986360590121963960109109714509298900429549233111869457423975169609663244682094358177960325647809434725316006483680128305280955605316995569101708122961467640137840926389629980330086933199468642961735370981431693840721072742038453252857970800477645437744164345629376651624211674417841401738320053120517948834872288913332945335467670748285733178718140629532685609824287078793645372239391786961114576503204431803807602482958274298372329344506320260894215406279975583010439336239499719509348703157971424815739142315561400651923307576286925535667080278276871985717883726150334835656939271467089163463137106401704821242847750422766321295102181123578294058295331151465614563913228222495534163668811185994093212749572394742204085838875508725607181073812739923157963088770251692582927709416819542958706452851819637148268336440528966115161481737146031551453733488639306243969806275748541912955576712459319770898963836508036477656878013193729847659821127295210431662224217519956268917252294928944619826750758909447842714317577433641531535939869847908218502872005458223220188481264079265818731272871060196668978870676176348518734893575250030048479042856698911728720437569921228029132266960139989282015348462554762031128571397961143305022800528207954084872804051734826949044940598031645229744570174301458351056878206972224105872762356720883826726365720487676573371769453299661643706218292822139767126544500140714549361942213825036055495435173560226875912723005026937184900008064870102767832647825474000579416871739693664297174877202877603566963735145444021702945614058326010523112576414464130972982458797165836045235587884900871306113423619249814984370328961198725872768664305656756518426741696959463521475033789067767067482301138546625255237924215662153901968648441651480558700941007554064614291616746503439797381719929644038719056823047598348813835908915700322674637747634572698743257139448050422125294362718889379247952844087746583817179190640430801049877342030522060866325476226339554682216162984644376585896869516231312430784816780474307882156332936819593881460778306812313147478444441831035095200366378001928962329147681281802703513703403166458715680060611105433404742492883556208452179324759732190692873767008361248264337835083459254639126202242255838880586181469021359857108041725122924241330395523018955760770598739190188806668019475442204219681517748972390200186882403429208976047092266536517675806002050832973127787740203948627633159991227715044123821958146185037501050802842710943198757855156350815608772770471744628849616852396460303445196504557761000558358164296245354607310094906153935277570690122212331594799586937173687966880318908053151641433906830389823494347892841639631654790188444708739040097656747603064634931485632151331511428945064072626602363288810313931773935963346664213240566676129041877419053035989935166008739440779759510868383365023365882681403133923152095143855686990394557136698315295579996644554083976839102652022487106853841905271080979989766340428857101174205310249193046152181439950792328840652968921664220384335016452752114568807430345984697952325404363858559494844107379725785203333373444488544556418818057169610740258209800749566556582495303165859002032743680717343427658875940070575059866903586991237273885046673629345369191249140849380231505626479245833336286876426383138615328665648465584492667737606559105305760183789621182172267419893798465046150949362887094227763862517480134395859437611712118934495554136356929709905564334470334698844599283381857085654170704498609897002022418323189357829587452913457563537988779089190792939172726034487641304296592334531946718699798160209443584990568066730075736918717697475911475768588955164360162889790389282534009668554940547547725328488064545990528825870403884654389996974165600289149208768213432188367132968271678756997316602193576715380390286508636757675037770342549562657187046414099396684667294077884803309804001757149178162410422974274639624177187025085148437727839813202891025403725976876581649862300550240399557773510221239582809123350859678855391292013911038613997957256775453514121578634319552822196535096854115367518325075931536576268693581213408085374741350791243597331030565774082187419918180326877646298330051786612411979953496577025741829000675158614096795906696277020316530429718978059509434995163115972779866020351006291276972677237037441620419308667438374224395811395959159880361010660838881878882661942996777972760053344346379954258830206728420860371343966601695947569462462959739652988889722739835880975133962579493102590769947645062452931319635016266253325929337188771017943581899410155514419354977957211076773091614788644038788581874788497480007879050965363604351867079145895878939749165475880627042141790635853815322311452480873325110665990395801989472983969619912975054149536394980339946052445959763030004554419348336581755145825871427946297150078331433407533073418679072431910884095364348294861595670768318849604930079284140304832020409552984366394713442278024667463180632174011925037610358777290105684523905114327511820786056908592795328193864132623635542619030692870708346331518405831468024443760617930587208641743012967829180148530363054557042182595402725970804682130574309354026958665767541041600365755997098759686303841863228332096279228228822228328282987621352620304027852018915260693867316875576535957070664345944808329769075059154337245478049540140356079849495287026364648533280696237672307924063317758588774490254180333735572160522410837784405530744149917632983062199714558307319614068770024646786725158014740446509075694116143398829824966529731411185126949483384085025654240899407863813542406480395746678286769252210398138006101568145270955300281804745327446415385618093633446808689951930252814260142571444716818695179548165130316653616106760593485900692326175752535206671614844971021615706226151541195639406258093342718233335858154778085186302704991630309277142764978168281209079956047488326060519016820894379492697250058941328940032449598305010362732574467268081634245959036384451105212294241737966577519854745022635111871105595411638542141621074474410987966383199969195530145873136826956143217486723108588683729365147405786043419715014863611884949005207343110333101630602738986803080824062531106877999764777427413229418169972790373171068942150187654200443624447064177609127178753633758220917526242344330079169602345849546442823721608925611169391178650823184116821102323263073189962550967621956162714181710256622282790990965215928085756346185841753737748386038437080869356313240295790300288707842664400749376129316778562380602494655216600397909172872296187972011891423293970508523723927567216094314611431813614993259811644499616065288429595699738134886638067638287416965502472097846731225228917494934744284155625060591984868233376967565006766731213047563149020312975057119360499720901046814674903642085348824816097697140372631082259016277113807531701820498641816558645550213314912164105071181292223471163716538845995401231464413648199580429057623938722000727315985654488163800834020491282905060452909986810714078101126518493749125499742956507781705965185695391084484938869424321415316199070093452692535573703411653923065959929638189389007393381343328060475936163106391387728075672123460633064553742780733600657830218233759979183236250094821535455874935733171456120355547097583766468582961883841156046866707583831350484817414067267031807510676464846905808047142068985396050987533671361564037727644013442743405984471339631051516840386709674545809880488027683849566582020195723414318272475640977800226732861774765352803043784686495561263649587230181336945810110180309769683530792668090945120950915991048620418057932191569252725059034233096133154516810038109085688300202193990081557836953676754963341704264582734158854670668329202384918025272169957798147823538719990427006163767824595069569801536839623370457562274636696477705650906654585127259410130152778906547359189967311040602818732019146150025263407822298103028475251818114367842949212145527401797791528931661645699990962788377706900741063412232980859653640058995158892624346765100183475821073760262233701119780800136655217021218305426192857538502289563024671328777095864416169556829250616016606559589891296794588771330965925930884106709861101003321916611221675945802690535388007872195339515539224056097104792681376672659033597292614037345984825604394613804900127667211671983186925148183848072940048145149866344631529862614656705108988398103701576656768060315652949937120643515531682273227935060661476056760457313458036178356850427609364951793278846364205400219602884958005671477055260961365763573630781854878813495474585735214566508759340371034297933374623372874483286276072016086240594720940265691769439846719745802871453216895502716881522702498525594847484707134360801030680388664308929551789486775773031741299403536541417767962246274420611199234247024827067791599316110261694150714639092833967889789101911279484089610993459851319846009674897022964320532764758940732291203835459978908286965682174978037871537837870630245218752166651807865915162148643011272931141535520973885621541043103186604175623944060291559891301161254459720481903354631001967028123781378802364504884336533363556468308256169314801774738223997076122819390510228394622350846588538755790449860369699237713789351840150060247889202384068671738976754039222463806506748457790292528880193054872601188245226972470394474013930208317988404476303420600077272059881708502150593021207316763097398388981772504240418826687888576185328092523991434767022520217131944239020876175711318413750505082524733407855864715696900655548970320700501549996592432162149355791867865441038983095394718576501998805195303367495960792579682696863340938435207207464193540539944302018214494384961072008998333847662206840263719419982102006905948684696631260166820501120459208578165630180714387238779114214428733099113234854129500687159663292368621751834516057267617222368246303418581085262667030319812161474459260042917124115080752657228153205744553424995820559814535373634789729228822311662489632350506590999434248896965694375289049976411535245929198183898764166615540034629465421835074020776309305169639304265261969730930881161870344482603445580292601274612250202045847960746900997583876518061923512640914947030753618310322274997127661158451231800606146257276597407177037687219701052049871894921497409468205648216328862298772872315676382769292562134663776199539667746376894535528100315956010835181321927346949493012169797687035616563568020126602591877328526977789454515419370496544221537169810893280988790578085900271736446570105527588914679445415433387325832449828288432699007241485825446054771262736687540826814322739306100338993608148665140444143807101457936344138328202447485273545065048157877203820310022926113677311169941501978787472787740071538385918622391213525550395851014703555381792084281335965631939395480466845144449129894995513543829508802666752928723438763168218264882652057147066840542540447470995269110830168726835145894899707780779239843307841880835919020761126497689182391205903622331752833741474671666076205739723578309623861937794394235953798819209621828315793126671717769515303623473869367946754586842426197012428922969377585784493899536916342055202249572179593496202327060052714716526900353422198556266449679110752239774221734487540642632721907814501414938387790260824543332628223802003910994510554587246794638402695021143843804653590187519697688790558269158491481686030577510420203032917423228809564843295988671873581557052806967311930028177546600022175248546380062563229369893069608372181126053537592617246127684774980510893602790860273854698337528780733726486218659665649659021822274218539000086441201163759294349094131245850546179736624690510113780590799947510832330017074753714144819688658055508119279753219021192467753309267520779367060031359319935255604194014326479249475975575597741443898203349146401283880815851986754217912744165651889789238927898341798914654982922702531642452750539718267976183170304712127009922432060804463370525892056728756795188423009144759301789038714501243933719879794366727275537608749844519542931159188786036576175334755595685000636463437711590319223454302637788589093143324474338540202718129093699402496635719354369844545392624219840976382565267656194407758945815602329917686837634647268109350726584477203061509874526489091444477616908148399141314890350654414355725384060104964834417957467447993565593437354540060324240887498193190693870585082433315072605118183148143415482847170319481903496069411887093676792403585202030238723765222473556073494631685204856081138358122740354572668485993002454827971729777353574621597791138351361313544548434263762124175641008023202632628342177594476438454058600367289522550952998861319043259578571932631660815165991650729219101644887781094843626050186323198845674015616285061919183165210936488468195841540848198008897910753167051846892375754027400768718193749802268894364706347781022420641196665160663720717058958836631802795944655748686682123316455279162785427831805680805512264903027759577366732530250576416811419667009860648942874921691192707176166498550818700697848093017380372060783820282312098584588245860485286691116806791629555670249205870652008581656695116980881138619634512048000559679538477993224306659902626806250463511700538485141991326201363142887686066507499463345780352667480099073122600806455532576680143955137249618539162879519857057683956238852230573984854018321632919824103170571667638053452953179602622363836723487385406099753503840488078988088537865937028654386072980311589630131850777316634335110235301402241908059508068047475652260951963021028366463159400265015522724386422583674042267699419782928550244437080409364311964179971253174207830975038135430595797443679673643108686213772057386830883002594883323163427930256689047081496846106276756233469524747970509831143382025232316132802926556594466955157829202609930140227983411774581983189663283242331423941753336244779280005811959334491596476064762643708039624376112053276040914251426109824151832232637513491224814907619454542083032850991746569942918726033377723345011393188088437677007265200237720521433488466271538884979875494121991137753015993372177313575032082849196500618081883565402165106927451569003209395781444385161849112294718375020518274227270321183397115536778705274581544470662264266049296932039189486803678003759705891702191514983856492417449919617046416188655788926224903439526357437927815681223801171157485022492351729012205062958799319415565491006001202278526478088816079491949947048472435201400384669049069480305780589380739195789792225057692685877115328092405281550082554563407936323862934656166496355981133365564235937725139584637319714070503829487925294945771078543489399616542373220025533298738025757356661217252915746996629828964240486810171962865441385377768105415177421049128530477715596427727211211892111084211363576964588486038822121237072712841394200877466976030951600713778123771246837316370300468352110054367325108142266008418564097255795510864357743630758225926423924836004869488909411084014396294878423100373441806020787749095454873465114315434199770180957700120320025858737309550486733475270266053792997447819366828425870954014614358733062913483627928225214649006571126044333188218244011027087344596996069661827582663481568170742633897018283542106589561139185208298030975012824755746242606667346870767669292293149760035217979069454938964459599521741078570712772375885410562515871654663324690175171807294865694595636700337313322963683798175725800632614624177768929811978147182124325829668199106518266886809659037755090385881761807285899434314836419071532611474708518239517417552219886278802684005440965163004679080471744877246629672367795973060314771802318331977963385819779990164324915867557429458859245114078065744155748675352451324206491733634327945547923239112885925398423445174458471125847646783780602273023223805606478031976802017504119456570239920031118864890931436952767353436866342201569240029461580175494946348635091686188574515238024817489413206964379801647092029814827471734964309366136709379968131072341163766884341634197186927572784716363750415056336864348166938036954621420641527225259895047203733583835223071041660236379121036767878770375318131992984856581997494250416530780656564384884134105463984523353322012114138214922446525786719168099763319156014640241459268542370579904210133443783803713088274778663594209539712475680660223953600681383866988028847671532139289260420498810683835312021969621178619994911153961492986896734367554056296881459043326770484004192948267018529705009821093660322729826890647244681693845978026759792203058075881861700592775120076657723167826584856060910912841367454123369827126106451602190310565323589027424606921954523560325167549557697613243221719927870150043219064000421648293334226036432283960833055193691398584729853405942129287492812165022789727322100190092867177767447143700507707787388581839889262590407596319540479482510269279090043111756814665375416916810719006711710050486924740002575151055169728989191615954567737021879088639263419573212693005205521564296549418843569298592583931356583050241707268007914580055607839655953337202372981409470234583371294740355451218245718107481277202367819566078043393056113378584942201445111112644286198645781372084013465186487722128981392361322660717069864229548043452796236173265155463587458029591925648138044256803023226577901860890644338183824156229960910362068831122509412290483971108239460790952630143714037949558673188874826197930832773763438377359544683421463590602245431556191344490703651950973826823406462973448903419396148386530553958166726093787393313282836692219126831977401280248219258245704138788229803555716612217449489004582001942742296631487250596390132623689712179077195856001275523281191116524449729872303992558165075143846283201609055525250692143210393601153434198524823192634808718646978682988735111146901773914765181815457354234287025435617171443567555012927030061473778313782666183284663023554099625432183028551384939610659119039422999228023657394215695543458869610963928456207615489033422893154547961352592918391688384522429514173508834904096489069904286569364824364938734640710415448899162445649237761842472969060268731330071245666317476797872350873646292459320946239766086348567348517838046082726119714805252373081850783020552459067865314819385177377150662261179737867076180505213813823624847798306916922383097971102822550507085515802468284300097995140300392832446003409149930640150228690279967252718338952473080708037564689798561342764562515619923006232820887188365002013324748405406093827320320003456545750514119653798838947242233079077948687158248110917536605529421302545811918329436942990960739290638106123670146781471008540457141067075050482478946132670933586367281432431389481506428278313881840753978718819230569180995387255214446235279944464344001693664065873697292950693398226411411668820995123082548039300390192980359108546959038607899081827797935941984096283675603282478807541510271193363909770184380784321034858333013761812726833082805541365505422746558135077834408057703859757192650124658071769139460213913847089941227103302539891401528899439932553215350361241049256995737762569648374743534977670132264029451745274950195615542328310314837779357798947655439655230950224195772258414004066917096684517856222315378722756419550401187579841992290394738459007686678619914949580920023876677690430492316765279265817386748900981540318842117820397604298127359471346542812652291201756913643959936574989683279123779488215967756652092184476486453871032318696994765213758010805643297087845575097163146972773400978392217576398861017382282907174384807128568963811362631876180327865565524574685824069581099184919303623652116893077130975952890183323480554575372162508036350695554317897651364743693077072049615824024785198372466740736114413092536170985063316600461322442130552194727563088893652382361204629844166127442975129563170278746382243613884110774967609429859552759842451856001537457175570643226731862027990834857776720841609791161793740788508370247104223420957510916785823250178369820822690813856624501972292471858926720157351503224884248094209839439745203675566209276848748155301138770106464521206135644077114961828879774459482616819576924345840467044219484689210894123984112551944771245516750667490638357667242013658918416475079880837165659419583644755475837801649259548299548505804546032034633838975372962051923413187458764104423596767424583080157170182004516019497698058834234690225196282384096445229373823100861089957085895880672550541401618547423610447622107312417068086252874602905255863322423694333207314893178061664080610246858202773977620053478576086819428327023842313368491062514420107496025103503470222654324537092111553506938548700165746126236603303286204624601826541990092481659235113527660257369723955927626542600070197036794338000497518252566979191560324971499405603403137748353471535575437725526725554094674783940404114155214111901410320857693384355067356394608986408859431312908924390658021301076520139943851909009170676922217815867668252756303945098750513747500799947444275498484209315825422761984516086327709021089477888962585904355358937393425636262942922148632729720002702166847634236732137705521612514484848172373159064809772227663530954342214326794203653761933732741955935457133864557946673134853555686688795289495064122635651932833905639812658743112946798008006601625148687313890652866817795803411350552398380874203432614267144888580434507822648916787438706989741127496364691099534694261997599700085086092373882290268807476132159898070642368379474151336832857130073644334610578385985634719831446444606800058527907260743498104203018689796119403388480311252165187584110295926271760201945354289037606965796375931227851660485275119538575878089532772684734630834157299450066390831074902725131675023708874343795463128503098957787066006462325358992430479411846162681503764675766626241630929735820707746274117056060984219041833720149952479586542260718393207853148471297914815915276590434553562858744907472057993168878462679423822021757898994675360854832518088588089940548683015257218860074132947947444820409452230462272695909515036483648933607107153923507986563580907089203285441175744634983085088751840055910026029965930724735503115806484098061610068946490509812140202663225506372844604449392310974079083787207432317340421851787841882832271828357934166209892003845220529872038077445454605342638855293220810711207154310247490559089453931872405105081798362735772715339331274775607779453233208866053075800970085288496411843448327555480107028255046164396556413495800255964635501176002364580549896166827621328404358670570533629823991627810651009446993714547035453523285036332616306343248780590005205952059320030798104276541548397430519551901310804514412551442079377943619098468603279832273042661601948176098430012188480917386027173853729815900743318471509137248513187931739932848794237076870648864894270267558956134571313709867950877771090436206712040528007405029326528447919856757752386085533581384533287675638540255472143901344014186784104470429883016794106864132492002078780344670632027830683752689605223248276401301441391111350804270708581724706621579931484183848408346062223025054480656888843910254365744087164481926478771642706160100749950927908798385734093388217321754058523183155948255014265648727626291861628075227556983948079762184876111978227003936539220761966314659470966328795680776441833086197243817898022952394760500424555780979180142511592044649449778491037382941279802186269127654674384270031551343889205601767120851263179544981542646448927826871800932000705697842877833085161841086543155226227415917374559123009383297925801435083066062543739017488392604311241135410291871664072509503870601563370176307811656180728685978675003638172736650123149066101237342854942186543697043473782176141612026533167381742362468830860242391719758982152652877762784855732737128041393002344109562171093467364605648187715592907472588784764769373223500409140850637969520881127581019747859759796892841844727676195234834987267834982331663031428097161304430401090265083167334356902202864085405385131673904432947426801265744564200049217594386249630562014722585160516846602816203195008055765473545044380807309015022219781172517760697471384726451233395952566263588912903326925399440909623945022191437612782034265150709584084843996849504665457190154635267719862986812092483791517139410732924311122460492471884430843554613072111562276395288125581070240542563626031701858125329145697644462524251224171010116534689226541805462339103203080359787695038490970803781080061590260219958871285128137083306949350511152610078855479011519695593545265391428518818831881368618527121899488327134259558934439872980236112271922797124325988140264854464101253713328413464741136131903210294904294853098123967992074453999553411150506471793049088434120160571104963686386460584321228347813850277560839620949366890339768763232794857677480693621047290336913873079803187698382195684946302284840966392329886275408616770850689194194165883266890001682494725043277146566508777914524465448395089089949015101017977633247143835647598015061236450991526748236005020139786968478560865841523244936546942874065444364827670226030851848921483628197440123213219372891552246146180363886052239799933260650517087632378383423674774730166218678001990535341071564918701167899609347947258267387175612520386526643413030927526523765903173071467972150267897027097799422375215365914858556792124285426625627965179728659934493751776493561717181751951051710007701670620255209313219071240789908565996419605257673755295951435221395809911033428625498181161621824415806625905119606599198661130656622757446163401403354537830284951317585677907509953706480483907694688738573338190674430688851579793705553996839971950893758343520699874969061840314921191728078785713021951287245991250399893454415396586970695837522092377306880403902954803141978680561609169295273337911920488215828064956180975642715440743946461602384329261753835289560918403906557444219432056898776458302894475679156180032022692547644858182748823061810052529518094815746333121126371328631369948427770910668506626594642193831486129708647761147623278717238881910954237802315653222881337615839729654257809834247488239504163542085665123532435268699697315614559534368496566324671643188603399833841085686196243892453778228478788359254904518109188904718125386510190159324107411646088218543460585892082850341075063260764699061488904038113025227537447878711116435187568205820987702585335488327195086676395334831475994596561594107673889221949810827243362358139389145288796977366706708918416271141387295837286541886691147584638821152904434577547841499740576231523334727739677541801592628295710705794800958018641611114436042229901062440056736926547935399906645247552283509115632243520416403085666142848935472293996381072054577048007879958076044324265741326312970942082945238407953494798308168828373508229187197201374038118622739127110586587387920563952252045787849309353401352593827744206436461163547647389774787238048604964561025585754503185932983002989771029830260840063966954218143937397959056422666358548598306064662026696937207290822344669072044933181439831376704156110516735753636010131081314177140894165521793098144795504509335105677055907554354843772992125485579555526567939336594606924279575873510689199954401256965586910429980670816004295235474438814517689811853097886112178182018204143267542237071569052495678785728404701198924816999144304580716658448549655941689088799064204497268199024152773240244489348572513565633338626498808818090630497865956159303132023245426187708783828787522425321722040264637041611517140616712870508246288021182174748829284268860719251339865862787906149258053479954692515497457267836382142448747141570449760591066542312469733162225788594379084066604150022098402920444294858684850157640799144281246091365385125199893086731103266698612236325972916805014106423567882618298923273543551342972660947917950963427643357203901731425888237776261281951116972537223140429456384446347176301774342495277628772564037106405494726732189965442699229358458600224037929335770007797395844682629022208796591373413347824530282453848425120234258034862532544410641760624422329354302585954388142851004674294390725793272682885085382252727297744252116055244376151352635654888427524047376732148919325263130426762007628243905165756468519035613299102190042067004674952526992528031605620015825677199794531424661630194211770086768331934185082283395658794661460370936309544916041914358359507171369545800116203130185984358909516722014215457997087639006119222555765481679471967987687722763276672687031361091994335367562570844058765022017830395912830199102124279325933710354090210960196682309187770896107408460901093766006942094668689398756558930921728976717577498691208828288880598755026265502218220629316832097266685988925564428939733430660696960080860916741322943146729420387749261664523687943344334342775224442909820874206919030866409318285462161303867284060189565712403257463594445256038717919133053027120253700808834385184171521276358605169749133752712254137434503830373103315367160227773682358677013365914169569449786047839231513637177871158140657128930404007867874672698993048142013095825996470928431750410164586115512082315441955325396205181665549362278284229680857252269353358987191700890870471765824268415279287241920194753825537326849257823081902165271469131944242582973305790871617330935111451460471652976713203915155831263892587253561093510507604779805229019009867522579178347174647627123827199098811341625642573230780385269011154684580108902133513429338025621951351793134378213742606370655235029753995496884935552112817165322060863656217015161753707988268870509126894543176550445604492179665532336396420974907176478130798186367413268327872962578579423140250531405611804781292205870607467240706952754648237493176378110602249703079251460983981951066197516974813402844229360139519164723881726991579455773746046749195474363193770192899456629344244226152652374305101114283235338968523786575271269822728270792715106192388706462829724642849312024249689923985905385260649501632990017826081670490073052328038775026845010562368557103292225662858257806476142256304624608216477719795078960167501845253400119971700813084796674973196326752312815077950390425932803515158312625049115335122914375890086158855879381729042271043275498047888926363322249257485282080339776464762023574029828337103001344564636347970572238316046270166293365425941271716129255944890006932872296524295360994456276974094390359891901367741119167681873145684496435976919429892567817887315388400268574989557233376525812345117147000588256009050636935727852898172697170028498592851663050318844177546138583431408338962839383098961572841787133023085100823070347229144945509074960291460723020088195176425737828117764369832654361213641785468423886533219040160724021626586241544468724970972358166482153038573390921086542049132194975451167690171183384364970935286730377345825854762499957404258630237228310772695624213034482247662935346833032574056372887856858567402177093576256205708926255672057144057656363488258142410498591334683555574457122057690861883090594799953951137682699851144992759294809989551323843714892970766759828944805097968705131380532044978680993830603730896996697546302239024375502818689398150653979164531683666095642899832858134793710045832320593250438021830496613919715902003436799161698219356037675728752199567163589474478525388992877373394145813733830035610854706442184085824533434811497655015169189115566587639340133463637628075482628700912942994120899913037203874802359654040660163312519076376273312071034820206551045467157470631059373620080496479658335773778858678835281853710700584732587913333672495243517282144764449133666034603053841500510010814229262498009867963767137558220529217148395824360051645925431542378215790053298562568369160233354218685375149626256343985866550008917771564413812575258068971401683730805836836416214981103657343390377631994203647644060310654656308198063797402183152147410636476407436615212512319115404003648070383394951415089675568718128973636069175299834256383968405803981774686465201017795741268570651097527199517695224741727682801551381692211895980898751987237834362984642491606701490966729696035223448588052617333558911902831343425260730980699291794483497438009537968833601371180949260476981990341887586549821912482778049143773925407322357336202225196918570304224746894827916260241954705825853399445706565811117101238122288993570920798913136051441609733291637066685530584076868943913532131047607870074848061396228475637339242087514956930557148857319164519112257251276158696378520675396149095796453842186535226613354046492372443602296095071797795907910810133912573442107803739984499427857548055181293494879037711872845865589762246922887100218189526242721591543832257669650515875673032055630064925710432068747429622586095324718875193279816170870021828218464119740622212888443518776251813936090881192167750652037146691620732986069999083406852247426975187752555021476930938272132967477194375987459609409812547587293306930634612324049847551528710400693736378024527498473818851853642999243058201709849940192364031124642469453846283872375882302020860210322571092814049753872350549225222872276807580681740221685141123909041089294075740320161795104205233628633330371354618116077984767739982829593113507909921290428257220558905418543662025017421238735900726204494785989351554049654731855767228082691899805387532370738216286872489069165243330983545727061090176738962750501459743311353403273567671948347237354196541011199326931808461647930871823856321428304527677344090754780720580576854316879077137082337622160547973286291804007934824231492237644409625725327204897647610955752958874620893041282770757184007010413984771210197534148653569094495030809364684261104966913669197692234085245969552917674808460210011532096245836219174186147690491232676452847080134785477349295674716866904597415919377806006982152212688221197820873132202107860694238602496617386660554205695950259364576983039171944208683901691293819494663777418492934672026717963683719686177905247177892071037556292457135985695239166287357472173708848142262548616101703450182167334659278737503055278472445730841560747348441307714787043209505819594393299349903106935843682109900508436586579066101760653169940566291080928723332033787197921746275956776783643474216414820121433847294966015832752730658848112696840519935197876967386827748326212178989146003077206730924549557652025514578134958786422958065651395312607523587860540362452886284231656873920572936298752462813410199725760732365594472243216825325289369031920918916561644073450740968951494488692144254897233891690881830749989260291879491510296125546055433799978295522541053045298764874503760505111777947152613267231049897442465351284886298434170219633583636868360466975248819369775415374467952102847402228366934068376341482372556866718202656461587678872280815470896502538483459412108807997086855105966527154897212354489365877149403209091358427680184290014221332143647107292527243275491575348269744103335925660299410389464357341155346542573951155630834035546585370466521610700849106563189831460090993457111441001713514385510519680431274914447147337840458554707485145824006426602024462489201719236491411498471274245676279240788969479330255466834859940257106074184043593134085382752319075221360753965050611245509072426654378899918836247609782184117506802267466633945210025710135606518395988136162747458070828734409024307857923080727195140753658620881333870275656459513165832922037677527822681371620039428065779490690866374717187836919515338911390190748542674385764972418828839471818167945688964949922152551776252206549213983169090129745968964201389200745795992875484643757638381562074284850112891132934967596172854542974442430195998967433653140856070019083704822178207545143788870025976107147001928225104397962005213300556207278039841187122574431250240103265646597289925436649730559675515193361818849819348578788285734549027214203408448187517165449658739086190128263836275438982589995467009043899178884823919240108879084937117744651649877700416263931506034695722721351578265276175871114941261357479444641785388154932857373686144453353916562564805736156108119772804822081415554411859970854920091813471869472884621308607635319313154901012027597246482669606402263529402040252021844210954463138154877424535887259912885752215130252911569481663403797529645166614763253414608321439502067169485445129590763148115201385261251664519648690503968902627331428170566929094856877021810171271061708876944377693205656564294244876131480613485862822869132433751969072667757938843471587952433652209057789730033213639996163648654450467751981064912244831030711872038535395408280062679850532198856472100804815900286795624501591626808827151851307061525566539627675447983959627567120764594862004354039261197840560824070253834039739430288440529633303005500545036999658060357471958901418768095144618155601426254832073031822066777815240256696803296963659990367329601140069953212428600072085356506868615737334008382041682487976470079720229843164261883023387370309561595834353015969203657166573554901619305245530784628692238662766918385447898868499195938536268366258945022607791646615220611863454912190215451643411396367933610963295977782508800194536857597500007724748677489785403874637368661821171455811956027303584003454836362582879965149989594282619065811447417093282319402747352300397410657489468285697401234835923246079451732882229520703707971775847476400660498617175443423688765362794033170979924162796492088115588934841635752009349005657530253055428429949448650975876088165412465818771986541558231450856511590522650790783657006498716599909043050215241696278942815961991998799072099133206013632739956602999276457146493796194277575355948101724954716569225263858034079074620664583800529775042081224461623699718691343837178309142286692766974709960613297553188312154621521166452807837824801035604935552056317130447638284213390668008559113244950073607288555582563693058190277846205629668602911380700311848232391127504062868198476173044094864678437354007087230185477284079521345888966588438321696646987302608789592746009589704914185816532642542629943726575226002697941604651940308246841649433392922883332956712305900299617928008952877028476283211580812105859714896140811596179778336349579028886630544869559157749719836058016916206126377170087358701716008780102080957935498120148079538090152929145835696746728979697160271733749467152219776016939727973675109171261364776348926357201619811369214030728264272925779324248632452828884590680008576689978758730750514925077544239627444192467824930928512005351558002914535816998153283384010074040290325747740044829420050482505302472358700156384781059400104260596876760237798719329083425031472665705667916446125439700377081816493435237488452342440227894452298337693340979505093445946449944362021489118311179578705701520648396020504173239097595716312250477692857831745844121845245120276212819554285349873319089957797818894495873267285289805465906313126915189490722482514854571365840758932866056852860389456174175106969277968130345061738667972656169361785806865299464223616409426592368474576411050250975370434751500361726600560636642666661373619843759289687425192679118938681919981488679305925827551201622978778879232091409892370122039513749200524204101454253161962230094830489124227324080954929138978913875511678866703619801145233090596352402267473470141359909999752926673153094192984134104750794339584735059559659370304380641263760002906309415738148290934608454423487114333907867734427812347979665378622845885936944604926445908940163860633528258045023674226011921320626099247211165159401581589669225314023369304664592638244836430302680946958565965576599906878596083452404687815401234422902074342022977054851150658460484432605731219048351962602141995096265547100652812667295781336771949097182460657636817436891711003816445726231390836284366954007175236779686461439944869489284386092031693073781241076846271050899529197506236534296017351182320954082197559418036523075408913778430827861611579815656528053486666346982589426559516254630166983228045141752802663309254987169015765283378787634430189966955024915645327823972805619156256057485704994494064766871545896000064144219604289321727798585172165612235913152313118891506376002055744104544703350649334357756700987040924688301155586847010255503932595305755947236949665742644656762940107822789356090707771950006422774262513393607756193240135706644132349957432029076448068451598768797208475257995477034699391824474883701913618529441478125326389474897934541579471904802217741721168535499902730822655588401720597122628982246226806897536823918208215840296204812034729781517870688010276919626300451727868360844292989786520544561781236664736844062296069711415355498708641544426462587309183521649110459202518085050455152354800586009398901585912476349659047752838184161262465457182863652255379247549965310706568348068029987265024964662399721255507538501535951408361024497986199240014854658460099985009002699924058504832185487907175192402795750282442364080901006360977774715512674339871896150145284396586345123501343271964009012787727961346295643229258285789121146037992841915964401208306055947208126502705936432380189905968678788899278646963188763300479293799064994710377507814829620811954840066881700930198240909055811076558562256639952434135999505155657934412652604589847197137328380569931311398059198015902798691372608535836443200305895516438834786429688079209916456480853908823782478792084156894535885443218525038205314270479176717982811537480259685229424598865708807399958422665377612353177470841024071138167958656571194373174039765513400750421277222413741930298309506062290717409678302956644277604887558169196517707779610759968782158323489829862107817633868557474657802596700533044717955181570155246574742509517547518238183669317670444426760353017467028957614915688742119245829087952610606503500319200264850273735445371379789142143059713570827510571783646644714189637567096259898129558834367489809215162442766511982457871024201540160025102440042726489708925352158034083766981486437082166503173636828000302293064393413630988659949515440663220282418548186181180715176047955298690173522575280722378660804743280493621255433306164906892387437258245392018692495079461371778995300611369892343784321093738553505207921449491964835107535006616627459689578687291910855495559412394885904569148408820798649082702352852704639271087368583770947244360854733607537267134057905015406044520268617762813665968297029194195876529628710318179547530879215964495502688540821610929633425530432598393153011147620601915704301839428264438320932825653929561747513176962393457544774070483077354202641408160258415356344407822942356465237950240736870382593769517485544783863232007141279100946548145279594199033183339405397475010658657141094761663275038107703351984011711647111845543988195130240082582514045673638629866562520437686180180977475521449323431490522401582285795490232217691792349504718191135965374069384921266455227594558938414506296965700384409904746487696970761344085927685912085281398656799807977294209952045167541959317809650526266632737786087073769585178120812851529735351268071286835722899979368554547403757780588546918253402133952802981338811261784520777237301811117650109408432214595884803812707101074184499242363070893640377529019702529649129119036876898263208898627261860360527806605445034484673250032023356776088346055674696587077256470835977716926551677048990293778395416136647226809274018445497629465828386115468371134875565904047850667852476794939061192233815507878717477428126643998913788003503458722919578609422368570925078392831064075254908055682237638284587066492363024988216791623151458205814713787350824806024891648446240344291564541995150501569821228885449248973939221300269205268363942421404008064484788658178425434766521119401646571061341337404365811376281465371577043101193482700371114308633986040931228771615222527500438428579479317084197471758987475157685738343183434004819072462937863613916426597185256981031368422088124802823084274861064222609456808445721608144405493855804786855342175763827162740633078129316640092673056439985459130604469572661299244345282137087500346010962874571103342838765170013929841481364573721317473440886310360257990742358841426728624735133489468524197251352088031698493669289439169170370029547958840475786909042044394714135263408259772535270724614765298565686740066622025638545076575117411741883188275181432713414433236994448659501088061977774749763000099580831603317035295896521933514593907607297358628718616673895671154551780496824498197508409073827265373125351104599716387899435873832478862165272141447752317606560401568929206883609807522861536005352035783506583294369168712921902568439248572660589249434089553341008431243555474942844913561246054630653055212526198939899680792852019548637896786452153245357199470718473214012979922868957314806675691939004225273323734753415151439852875214111287832889157324146736266615749824242160784469046764993023782527177854125527112159724262169766228021594571401336878158181997165678681935516514408897992544537795747584739394511981617367242373454571380193866220903809755050531138363560615782260269080182650281257223089459700271995159073822287141454267165911892572104468146534246927293232576379365705282804733802969874834674339747557765987720704747128014420968478595233690643309544569866722278659873445387324808352012402491429208170195282914777219624343157651544749253062211886492171489312489622102583879559526362904862369862160669708101993058842027117900438609285848580914596253594437465380077541559012263159805472223837417851024112759756086066853448628596715939265818791789660817210068335283977989380370285217090894113502079636258446270690404227804236545188619079416790524802010205052766510063080287226889504751347653521615424652465480246210475173997343811287509721351567587758327051542281289342479936055373353021684195085942361070352255889816888274667593363570557640987894185320520722058780221520842607386004820108545153088828246625113283828191215837528345907472615744515780060501447971473623995989842487053661439866967326990518355193400886776620411519753354723844842110842975942925622506859685336791885052453926662057796572961301906913866696411313942771183523473048805124771644078752901908901143827086653581931753378330546367275102737051912612232569190173755347999066520807248381185220602047766788370936818341267728415151970229002145343122567781969642658611989261002872845346566244049826533619765209720832753484344131207212942741624765161112952252053030406924390794811016529749245601890807343967835544053004993681349587142549481766392327721172026007071018084608221051126438836274338382617537126156307594234524154235418462132560209334306483959958086674707620086758349190988491873223510188777016740108801716099239374787518395818141299828164267205871682685553437096862566488540727728265703629110239630340624194171953245262513024838598631823340832286542012608205280629592122955474355682669051970330740131718196656264793994419716333594096571662031941340441277161921125587686353684256026727406895050095193238194874981472450986214736949447489293399145262848019369065069613807451384046882364727526513683381894711463288603086010922493540671760569186237443174022619123004806591895636230833937756121472386391190373520639971094464248261742905905990521332239221611769270187524679264943718225042986823513380406068265606191053371791480821157601687492480982614417132189492079008025059086174213467021270543685062371737241796830542849513522348776918271789978973337996603800383255146991180823515151512679974578387164258304184551809754458734166828329513499990739819949261282805004692051007664893979329612011461801942830673546188498847440439509920101743675412987234290853944009152094601921946251368681705679278478007921087913820707793605925418410706760324503011624269190516033288857254547624442663659964404915163071996534841031339815526152553215648505856746607221835284034371851688992557162631627504127565822495253094612736353144780643621438085853641027690535670362984789082539730806147845309419838059751042657989300874666803011784239776580698853307064552364937319131305951209659679889055062303849308925670970482655726576383498869927422292893348895904635404951007557164108202896005919291271227123421299812057900235984756557649543035144268233525607555146281059869409922609262927135199038590660986980959379808025468030275234296365171363634654041563165049054440269325277661371288548430079952062644279551536676230001657544269761518922901402031480462194592686985328815369372425514851383239907200451517235598178091808043126459246922581347329048565096219876618645755372176946207351128204836552346001632878060339933316745580237000893804188004211316451757656748004167530446453883283640833541785950242853945356851416134576819280248173049056729126354766913788065567496997765788872815456907510294486947993471646534956560320408438647777273517519087996205520930011791926358509760387960331084794381766612073750415175775734870452195410926850609485160782870395399727845735676566078691893419177658906759247712753364466229734836080719858174209455757645455324566220864270427224168492401543480770366048002002491912933173502381035250417620236019949372319318855592036275583349078878257910218997395824866178708363066563378195214775899430456781110660900178793954987587241665124649985864171532443458070163892972795270469806675206039964131234725662943979639631594187889225336231214854087035030699780130117483514658561313063238629944443026503253381492069015806004967592168235626546356837688030443403601042691609913108500830442816839857121597198644607454870906280290498428376741588474337389472116325096302201853478668423331226003072240763407265964311058798037910757426838451369002349550328767813040695829429301505612028727586442692373742674274813339924921501370153010676406752386198307854578184413664755486759941480521616274017605134568288636778947460044299507638497217516032066089728112947463550683564985644180033435512027928544163080032799163400364726331394836354449238738389316429816059724550384794517201800832508391846172595037548805561266716513938157739679127693230564890923273928842290465458493688753170933380869336429937754762503467659059139591486462052789709896945276526209657790966998187766323514759594497843511494896223276327453172090992277919534411981126093943171640511970541241733984046969556285482734781857926191355597280691407341033743674148158007221559089832957780062400757137051171906311520840164712012042608938962998406811124962646398757260125009340447613767874392916943120559765900759982517280117822175863237565971089124685154981088871684920950851325946092913746708400101432731162876303094453937882410131985646813468827165220304984807887148863506653731855962802214544975390718011735486709900606905173372438282466903393563820012102991286260669818695323055256869922754342154547651416644713983998086332853647324762388592412166453017234008986902606665890102823637691832789528897645080651317151598185501070819249673012853217517429049963857335194777501904906651245469237844225191091056470791995675345481499452622925357336784707638878476752223657643417671405627640170003713351698422861515579735467864364807939794549904962473185930936389129217243635575655602531020002634571073876903349004070787989106911823496799432001571503210046358063315418767623372441960579397343823959739592366768456441675584323074455055305817601776963041024771300561323498963605127252140920950513565274356742194553045380350852932044611339094496806771325914294165196227556094669961243439911010088504601054241064240014853058896548027771153172695851174624859486475751332770368093417783924255698274390193518068075968878825799669163048557935428840376137381250749834574820463579461019526971237410096602087051287044612793820167568298574381766320030042624017160330655479210785951204096756223999540782671421702821993016382728771095171525839238601972210632661135300489653722789138543616100815626668695611013087272703662105062533966464219185224353769518278902165411074258128598123603626572268012034755100892742342358216997731577537212324200304087480462926910342159857828672165710684638724437743787516221637447943960680872375683134091247344617941245008989813911987164397184575955409889313178960496114725771392070212079904633127689937014313625303395446847375212355933876570288442212426801166200655922140601924965754606197869929655614748280155366986985810384090157113564551713955113589250415966022538811258988057774709731584554250866532107060341643384567161619866405022721257052660919865116962841977455654652166077016905825054656852215167349706574631543761841599893361636853981138034486826777678255492316025416148346166956147809148611960746303753897075001607673660611934873219962161613168950332536381657552396191136625524350888770882776920258295716232547775559327728980254999885717255770064697497455340636720431014970752545721193971099464614009198729423980204329669630794576305519977414392935175396180182415585956984006437431568699704700945962803915631126856624803353568998682002968238035232923518590998302001869617432594309460167350446690231027677728614894173367435679906056181684027873018677955044991589622922726604554888514232328587225618093952129689850359226868984621652050853709373942022359597388631074973829310683435354052856450037886374392231569012662946443222569644704440748178878567239161377563284472613870723451525309233103175215627808669093120188061006290383606494175389119839612981468422544822557049974019112115093350008421815608663366140713167343816712220126127054346005429411775754902026039669599295459866333129648846434775777252650774696895400259434846835373859303996671986409242073306841285909741630743216999612710844880969949401142709189048561213880326234197343534796376319330726943268028389813896063523201635541657408766121400279884804430681870260773854229136567028480360726832639803675003224321849816024544537404435851269957331364748961921105849958719051736269069623549416818288101199402444101614789072076538585700721126672167543745414434039472005724694873406336094725135291288210167574138505345388994685331170179958433868765176553245825885419197136016069348717693800343133272175632420234375850731892951841602353839483051866168957004288575370643837932083015620520895943471286052532497626893363347355594064468555744336455057853209719795019995435531556181016416146877462802531894266359277816817952074784330018908760787252028718865551630633937933609157841456670343574966352643429937657854514443672624472715096615507485610017785105035601314348784141950749847941183421288539112078933435351921765760011163862400995785115984268996413558340785401965038619733269455067085588103728719483095010523436648386962759468396619295545871283309301498231777087871919070471342098753491131082483183735370963179494960903343285535916195870918859447992815675735491006884189370390638946793674122260318316027823242029382393379655511809315813225602754151846287765706380771124717525244754151694651942663017324428296843959784343468971542115648736039957076512151908184529585904747782013481023091080208658106190367098112672976786121519522166035481758199428803364525039107105880866868405396536171784385429536808025482956876275046649739474485929990655256400948686211087211748782695270625600415958864498023003709134980793856819601672666467381951463920343577170731665526862327503398700768435466675371929951982846938353233280281465735413063770387783773331566911608554769676867193261353364497025449709346343508356463568974251804515049548707400593841845210146436169685067411821610121789504307042935037068919770751742573444471647281731458503354574438183914984990408768830213611574516335042085494660429999804911229218866815591249306282596176970151908298224044601555173442150885790735451443937349582135717389774318222189169445020031774879448520625401567728591503459921180349574887170984526166373527615984721638151333817431807842186004575201301811157339800011416364949275328493157871482900895758074177025865060400800059624632059853902977809083514652986372677513023240427196295517687298834127661749383861246747723455406893717927062473818595123732135401996573797898943867645172087773046096306178908498386786824366820669432957334205717177628773468377867455956534880164990963220928512735643183669191436483839620940624184064437049185961564076693354803169268268830012667388284174157509411236692820267795506348647021539970130584575250730182296758530417422824844543381237396953081952879969884541276959627859003400292727581586833424418003158228819431970749901453344965518314594814608287870040375635192445951864902289234619977870038427671369287132934993311431473030967779309615378987673046901833708101028216589361899320684560639508647957789624246468760849978631961557142849734346770708917193982239142324471956938215854259864838672266323118527260013486985008484962376666733810987614373913879512798368861334240467924285506100774982508670538679699377052652317639389253969546142612183419293997775188353538953857152589890296001778649433440404372016360533873414373446101677324322562732851389118527275547249734730443875624285666998557576003064968594256231356330564709627019946475861606165247546607008423731000015965344266223428802032426520518907865860079860584243947845308620640768045493550697930811510662383709024487790223924457539144364798580906618487353104267594083007517452647399858982675425239205517714868522115370478017973106149897787718255852343029656858346852761419457648390908965353567207386102751079665380708805946395305178115324600500022415135606221140620452644303700671590692109979391199971416951283620540854734693358893004279028608991683420632821255570177761173837371323769881304053672263762205906048282979399529749308497476153393718933017875637428419754107201824147483281941320125168657363396939170327038033201461508381501304763589886406684979729568294973889018585001726462266451269818678395432148791934506878464767821865844591249653488634457494019442686303916975317765893543034412695899201505903429349512838509825026433870052749678537302541589749013227891155897375174587321029790707252919522807925673789203030284604055861613785774832235130813137844405035658481194814418547926535989928837641484114403583804824984540724753259838291516037011142940563273491336425224374313685658684084020404541970341265045964461486612749337450669102874601845198488708116120714528272914114868971313857573493587110449708546888098498634432894238059374042178980325772501449745220308669644823530478956498054344781194942001315984540455233681043265171689463808526091930364376408367201554378366700495722304864636557005686527647326960013009219193793093216834283635490295694314184546654295270108394819193822765868066227237824869628083505727812901014671306665059196304179309777452595033473805934434477158225479905263284377740933676099993206164148127764692579006143401083834180968680549816487014566331414514753258583445563021898453979733135744569598089511675410141536129330252460843827350870002703102428102232403794978508969311623455892806553143905116046172750830936756687850218662772285182473190957924598846908499595775303682404203269404609236825662667279568408528531974916023640154971114697603108927418464424386561691821841482994412128222640445111998601835343212011678733627031929912758755274567365008507684868942785822613850894166046563451399333862933085180088648810339590190784158195676933684486443075451929358214281033917175734521487762540267719836356836000610838831185922591270776865359161696671933237931126345028534336770989116407816368102131071431341022337257183533762605604754730688176295950039304514677144465005570006811095596137255218290356053018847851684646039859021409889409551593091704560840817950899726814064070642691946517646678420213257651999799715492584234950902455679054781691113004752686064796387015953493535693836187382210487211723848608667867345561983371133849237517912909477854736534930365407944003348003971639226587338193060126945324982038474057913031762600995773382588800046435959762118527479847146855728280441081074572260289105585168558674642268186814662330510812903030118752661609133357683828105366822991325853809818466594775501560336355910105649915723044864758647855098347948571595193515367451644501904250110220926587518655994159133752785052511699386588106389093748350469237282294598547234560874519684447668171295722875943952404755672561868858181991918308051376895706484602584513815751397318166893463111477968093781529291447437305878718714131827606661091352750187061528527575670419991737264114122743597756549269840984061376515238473140804619649606882174787448151781573187701274976628820455499881368137709501216035164189884327535891211806095782351933453587989025823645606096054692239636934222625391011039398251139369183555098420374424819850242591712861936274638393976419274238787004098844699894677351148815857814962057769626445649752852942472078651594622861587036608861754199806361137049045873505396516801554139875442749492615843754303226913852150185016709078800356981798727538846971754788283305202895510195111371549393417787712414612652273023159252140189983837924268222032067090232343385228391771922663139546311489336914884676375549511710927391923350386555849056209616367259242423067919867023695654301814111078211509707483952129365798121699611408760784872505650448378616455227024893068063523489463680582752165171322010687758263954432112865952307027926746637328350712538830856542335418585404469044014393946580511443841767543340280910209448596562033144939626659269089261640458744534716602614765571114797701771807715068038206623976491281940721823104573445198003957953480917374468884425035987654029359270799408552518325437364975524734245884804177446647191036394491009440022479886011508530538366696281193092072333546853317169373718884601736725314122007671870909436971926584937706409676422712457090293477151843108624343339333467757862524176388375709654830181073895589626212482259306703492611210196246308326664742871796418958553766867365670905724365756178154137600608790387272432008315267887194075324393328509140797672191907671605740290021537400622449235618010033747903866688793118677097431777888063487937653015545898794781914807112990014554701738217818737413424445266742163772554049014875070146961528082915260980670473461609931382890653953657117967755544332384738587899195354256724069599858119368331938517400224950196476378970603355307360004406235040230534171132535984784770443973850474565082695909987261859175539303337683547618229227416069339624392344385203789770999564222479366548711713981374937067889946282998842436754193782145575038843834953260396282445862746695734439572223647803519699190986212453270107090271157336260589419835671062911932833099595548720181934430908413493557798413325596730213230685164927383680132279255453277589627187026752662837935296044207328525683646264064367634829470639322762202441916507646076543294967177449446203522781561922496775067925266433920366073428433170476979068141355350807491327202321774322819372998772919755408944704071070924855875618125075800425437235926752726991172285725031517696615813758486768699904114476393669067409509238216675153421472024496326440366376871944167290990489098967021407420686049246130560531621721013359984757128237324607814535862846118666531226530598967930153388971963687172418776848121783140339799090121361381601862558391696107600045960709665396727906583611468127581093317757921922635126875786795621113171428121869037187566942079260072856760535051313985795456731677291531782464014231965187440494310408210271419037515052337443827376608051700090073917651789187627002629077591702912513842745424756764067934385724382408026502161525578898485100113402585258609510177442672538445011742428963143105692616301884963393364552855225490531178103284472156288960297601399449227200340176545519503448100511130232433685112271588046882805427592690315191094947498651399995141440618707372875209137398629253573955973944363676802808490870233680787188158863665073539261542401020066696242321231214844612146250434805000717088258034566253848926014174011784086519307269095329859351385675654144215624685792426108708342978336136769907170285499250673307052449780634390215669625713044348250902087715011222275741257862492090154460763305526020981517336181958454979261977531289802876651705521175352515663398763549895175388198999773377094845625316692463104058236896278511142655348206807342844453555712393992016881078536863973373239531865839142392491134714465117647164986584118792967335486918253978530643494225633929920092833486758028043888002387405490940083061185990758030610155896866710040756621151318148323491487955576792492621730300789425226684005146732248267496438400054980204514379002657759306591168472071760045334891878410108590478209103553168910911648071516020761081280834256016710894576080108755774148246986410859889283219396196986619599234782561916704906632276665126747502204261698974557685092654029356521493507466588858411530794783764711387281264086781112303461381976719262324258667964631324569528600900070213819496454535724899450563444467698680744940307243958556003520979798794911972568215283087145738278472419494518220513863586111340027255776521040070552644503765545344295450741284998024143768779273878556629045085375722954077342408891105634236375795820577061003745823462141529934891272650436732717724443832221698466206461648313093537096921482165850913479995640223070123154540140068506295677446272639141176560596033193455306592490342792548026209647481594300198186842535200943437415648945694043884499849252407461108785628967580684327961375459463837757652202843307461205075530289781981195510135622464890005473804938955918088857487834538128058262800756088861511269817635508708377802016089804511583029990674607989997904770077520218363158562928432355717682367932317051911510287376983103966647500696765038635734918593124265133739451080579913453223308332736283562011224531827471039388139097886561851667477662765008300751099416451016557720294183515980638168810173447535960310703230195577992732917247579724091152294152915170847510919583528929819974996090090643340856687978386910099882365670487578992513093741562551928014126707048702530562078170923694497890414309627897741239014131600747081455424468450709121405666688066391145030338561465611297514752491069544515483802445777542139140468127208893205584740303022537912227367532627300098971944947279206658071966363455655390621409123599334936689065709824977572896401852663256847592888147268516695470267736002310125998237575076065055748127498558496633419351940192045495959238643520986195781343122854992238984740850736675222828864102218880513885927880882834967713943733220276218980091683392946695859183511761431962976202719022481262227753786660190896997960932950616891127541212947319121294497107236755644004324014287326012044241189719576839994283663840255886263175821047799540090976419656472519383790851465099085839237916401514724410983936401899444745122376382835345355201499020801919135485024275161275675109427010990180173227782545811405119526560720578597618234547312891010481654236942645929008982720583528993236702833250969291737216580028609203835220345912145402447069356596950383757793800865789017407066805875097548486515948721078901025568080921589016970027737209334928418167360026607879572205769113839138534883810801267987543374135227935864034694979408036971786457404568231891507212539774573935804032309654751268682793418825073349418985257100418387121812763606199565933956079091179415770099416661171474229035164433830402844232460265342685036733395134216361084321403659154238066378822339297465834026420661738770525521749830956464681268146560906525034896640765626677139709781238558905918130107843331630136536828053484098022369556006975623096433243620324255456621650704375827357606629018630109616672893317870479344566047928344325741644192167551314405549535053970655104913164540376643474512119735123007859635756914910335810065985590654315873943531395787335636858709585363083859054531452727248019782423483792826290941820498540024330772501160407505699449729177072026861939920090622120576262436981139397096104928902571018955920133700049394166919727748689564094194316351529883735806555468829172329020614169447449881409496786367536026753699925420294863476054130276282293843010366403501646162368238060593068020402220102170025285269900539308472563480527845194699122528573868019560422387930041346656751279740466884579597479883255489510599982439053526456860398863908634541194425764669310334732347264343504510334907799720668514925443724609854973466658454741812493668974820769753288167244214990155731410028397870413033412659952486073608381625054359502233682417714609889030891042458671222550123474058739772968689281661961695232973915899008352055280544364883047560826079852819625194738857985091327303122199186688346672251585442079882389678141922682264274213581993554884984738390638546770875688115477692576015573820092423179780812329728393502148132482328932367120691044239130730016709277198556775437006292703163335081905227744865649752425044077831939169131510555439629596848730161255984724915156651975747483047779840686135476121642323655697284650194987410645443679570618072484420204917941485570930474743184551852755974538713432238846420875812606534331921081527756510274407954403951601631155645431890530692334609609277962274521933179755677750363216155224470044840827123962603209758009075725526491919642703753697451612639644811186544533097025520264237345620113998843045863681820830070289879189330922791022532230008671227088581669588764283750485856208283467177747464314337643661365752478693768957612338645267508440199757872266630037146489417033967746595240576069057092784878701432916749465515611493274161478397098397690002361909248820073224482305065268231437537169320206679709318305450061170001596675930995512101201508089792714459212398782117563453812554285503608794265651301107266506161371102051790710725344282179670838857182992298363111143887037903025291878940791528004422642324850020044146151057536412577442522277350991594345828212255432172708893087823538808354944174218565956402194595123552460386014594291728402187137935051261437169801470907591117865215993093373610097485920037900017035811909353587375038552170411071197971498275864817167069152062427415667316322728026078987970457529353111981580314482194628946714309830614006067844532005119634852422563892572850127257441695627528254196269702007720421978072435546938950292393621885219884960749309036550502346139572432943571060016044587821711207765828377304428100112896782792401528280078686359786253301145325046282554880755127942483173162486333520593606975493509945623337390580579586840580874533858899037903737140496293298862455991545607470795917524231307968457018974897289247139034383365675468988535492111601049621938635988238095787823658349568575058378391548847826721034142391545122578975380470490623929961555725171897762009422138637783360443578558435213944452170133940688780726249590312946944318902516226322272525876911647676996274215372944415890364365801555516757279281633881267808122449059834260082754671426603770106818063399828685632778343270018098491946306782102246158234610586672086795817973190163411784202177539454021397345484137270321523796843356749903993940684875659406061074872492356180741708838141930085071950746401177210403354867314562230912431458471208569011986072485145443260803115321599802243651151491833423116985159727609972355914186421201127550241425072564142960909124001517086953712592957581338712406865575006485573214832829110166866346082177112171054800626356175365813857735131762295019151481107222006533258280370049687844690900226139973001712951492525237496285774542562234482904551389607937690648920441469128096057379857483948338435992001659547682423301550704896336180506605645193472215318993055025876574377641235529872010104366180034030504503444355551194735127512082073592826357965956513383813425044107841164355384892899642448635515967180659813066540871667457718452752736571543374923735611692294741935906525073204782282771329019406916439689334152054958964940043766573182333040887323693823604085007151494606554735164241765981356719658155688601362399561865605818784005114566847704013406042090699173234716475357188390936285469904886523087319091720963252203578238019130993732931453964445637825239330100572382823203620922543975669446740905246306542937900345412216595797638846161035063387536785593087206370136091895289627501277073694796737791008132493120302679208915583467516597664060045044570514736801553246536508200781825000069198689630589647443240423518241792366759620069604224468523725881811184395106676104571344271295976316507368861967503880281838486221737154859260874954648299313774689076312392009618205175134346805406326791911261026952746890926296642438529948868391770470581728360275073856539376062543867022112212105852615545261356712749513594515038609080343646470171508990387397553917864574911318108336150654125651774978214299741058409879909110281731755778145785986103325238092198132029533983077734879172669966926657890900465325937001355917915847620286590873588817232717943495725566696607241642457125156849811501650096714053822760607199381714177895343053480028856579276625446035620843552622408310618519510864138228598311429026087249429834374778138081007507705203045764187875380894531084609413351866988715335719609023368962134054491124027917973415645897946767914024485757141250331796249405450363358546744235410693279697630808130277762076041731616443048473679445532446045874668251913419060588115680642052724126580683268339908994147798273970188021049905897985795054114343682927238553479901672153443002692050422941525920065477339192988450514075939875524254982099693284520588128837860206529458844147728500297570693668678101902572077418305601443531060385427872550879297321276100605938330884512196608178636367502712111265793787468233442361558035900367093493787228467559872640305622735563350183740525877453274092507008221268732777179463976287640029209920335203222732217976530780879839546902992953564043013233967303525084388503100747767942868614826455246931343867693495860930832914844672207445062800961330222356459365320866968061566707671712444390835325600508093611528578527554882152829671153786798188652478677071394300345992450874513296729316911487563655491196338822361048997940535454275541825685359812185077686214408836058210542888124734789450399530659315284989405216869038236454527257953890949139366010165287757125301478662631653109251106641602329994984935265913949301414158097067748132609566274266577799817708120092006577351786924381310527810495037521363368387807875341091140824536960471892143276716377531954473317858625070110747493275052510358325536098653664836365589353532441433774895462680093083973464426393413872568237964153098780407063158720922901948226629375439346511928527362315248123897397406845490481308395897109974044130248511298538995008347029030046060893153633897051022230339188264414855501459887362200236762577755743913371653122692902850545623088652217943332886680192740846620359557141985345682009440503251750876553370897625873075405132103865704828434541444141293517633031013122929446449780805897410462141196199534131390706256756963085200666930525768862539786272642960391384499815616132942925505700988085596310729919183022163980054806426416424393443046959995979925952684599821440740850033510449353804061132753360261552730963882175332365951342417020216610418364460498851661979740460473973062525174543822199326362057556153127375908097042801722563454186716202638098917355718697132481131027149185532556146890870107593921835567943750948782767875455694178362937035373862249630802964935711285979805771294654981449151881630477737017801483814181405119931219002286128225668385001444926642187174196932840692392196263252205582692342342159374724762722253827618822634750461151594968212914492024746729353650788041023864165641713139120837118002735985831378877283644566546650843003543368135715955710674423051505057257011170636445480221405811776007888141184231294178399418258983388590703962633651123797486251370883682091246520711018849789555591894995252236433107065380106963950025592292076021742678662417457310351918972869746070150297962730435561201774441564536509507150850093695986631448010772256068022108489876626378385029952848008533997169484719875467698984016514931979341679176315338630126126884235629637843434979673804451595523922571878529310301931756380115008803371509619156010622398228208176882488518946236148410374751515842642221024296670020782142019645657875926778732566669462973219325868126411984777570832514385458288226928685898729117170848463743337816162105818615988445375208961364362362160625063096692536352006192170690543848447266656473093960775811835445738496855842492466550704519666131512647513966472265445589061066883784174840647096343956787447972507474022917051065893970453022707956081460784254133747168531405534900058766220946504037641992869795500458750216852998841533184625235999565085908428487280371913416645824431202543274261200495152294517915596639299891610869577939417436363014911475347981524970015283703579050518043096984247787450780353406618264920638764319559079125138353146518096662045830749578488771672547750027067609777555136311735544833725765782527182793326363224253104924435347759079846904995941202853805279507139906352965825977510174284120012601449287858483670968912256421035620228006390245012594277158054477332267743852581512321912769254447613246573216223043236130730048598325009920501410009209100094363470826301198540070229261768567935573033020101760386245575856977628385065188417608714248414655987714151015223745146853985567691853842088332025291876092182716519637254729420252980663892838077898667475642822046093036427787648151552402200404002048876329261689129564387492421667299981905866210973032933745088279207031324302758190849925482375730612049013093095342495916483672968440261317895549340958113599736629241292786417572183569997420323683843617063583708304454913942660206259374324446428391895435747157724153956778566993219804184553527095694164514441092889400534021558639225407366446426094196061650208447235465228994027068519519262704439888567010325601339531420987735367481994244074396356625050382190068802839654312486829162407429487063101321332035826372434428039002231034719423255499176219607456641800839741488703410670134578025910843437098397296085762769286719992844829339666215378426888075358972294997636750645735951007045827049106380915123140795310638934795139595755891556863879847679421947872911193666703906065464813860286904780435507175770566757213592499903731519807536928516263327550035382682561954893608623931932011572293065602897998365845763016980889668727044150275549955601496759769430657498347774990849188889931648025487789640471579110033143741545681997645942171941453533343792255950346118873477167123668606821106301962745638342640856832188541532764000386980995100115361404271616863056914388992046094630248146195741135916569827033879862726556368905892387036329748976356364001632032878090874768844403582296778102798872424804880730537043224389940320182426167765120129072478326956479495854793301709752059401984284430837421533361977405839742470360759958508549494912487322028495532599132499192417191746556878074016750934235211854735182273340770900942558900263133527127574680871891844589398746010159764910743225918281169416523011907906597943646461790165837227144461990953548988484714893780397865190545481440678136725854510300414658014930999589261066038751973727778972007753028541321664084634675079251007148535621426574887354930803445379206057370221974571481559527745274273883534812939717759364686015806534640361328368684379937370716697060771106972911300007151816435581061411238414891995759329584759851386395264435255181522443748180095631338358464554165818018000577212524790984634020727053858925864994736378099486369125124546828159282672479828318982826379368326402751978161922351961317679200446919768566145891572212082005443052927741299943250053160101812480358014789266132841329176340686070640491209724877068816923414740436681557658371639385887664785426696157756544260345518625366706276777326514857418753352876458520411160264300526201672048199716609733822638172585687484697011597016843318916321346416997694701577635782276538207793722031765527102417328300233613492196013170212480348948873580039867738731080627507938533951576239022073145649506590258572373398326387233205904707926173002054228012586890111033446858216609751820330667193215792193204451182304453331110648080395695315557813178019064243973862179139280530534870186957067167703105460282816289968412136978778161913559766747732224380582175483991731790189499515889517856637870917272660354058319717116320090187774165839735818780435769596159085582230749857594842048081794329578957932947678617711971948984510377742923606224990748866668350146628256602266737945490691620924082868796459389644655203097140724032239296604927453144208011741464360386932449390016312063965734347900687295053307839997540509348590635034967524671522687917704350743207008179912865037035611867763997634254826630345343981268749330135905906534758051076051422208273748352143729802125462468897738069275466969537624070006188878309586357368085084000834299013158230522306082032215191115766426993877325929924840061276688924180034286718759923673767792948327263112687709065082481765411126138611026893518760966832334935321277198282005115203176892935760608937147698413368196516974641200660931987841197141038284539637829927762309313595457655107148469802903750691820536510923439417943962323012090013353195420186999868290189083023914263241247912209433172605549968802191994475913105842022150955307670577739157227479681681788023681981228954966143849471518994664950257892737483600467207924342372027899144620605694047382156216588454758349400081154218966768145037724664756262623422863105902886300656611346348932795850300659580195334975506236659434472441868980454547595502042217432991168397262468865106621120707465376800352310651832074686991421919770026893429736509833418312180033412474977189806906657419041791499719908211432361910801832015192128032814226365754933455843628016182522715495011233567419802512197493288108885081930394871557404332117809443929908186883531564358727358838091609212620307099861845741608147431111159023729822846857073578354258491098050828201998052057309633335042526595116519636666355791780726623784774509460010454138481871560499419846308804605686669451251096060494777475989983381858994638843777896090537623439642959338412312316266239219399868306132793557546009192189254557739747045712881573738465160205151604043991464308530731427630454280583547484328347061351579727309909840266785298300369135299031359132984623094488847380785641392633678188981496156307527409284389861107920195136903738725201267695377199111890396554240348082295690979241686625453448185052483956175604515745861754122348717232329945644023203598175519160109614950270307613514812835728843407255463930579211273378635689074907813648055499645918423101286982388960794827775176082200912694072440156756557926090229342187787812727796182186061539914719572053879784673322886406922560919821214914386045313700768002470103787721630605527775160864063475310142534665016271622420684272136979435466348708168018160158956332903618387422193806158559034834049783763004775669279332370057804221644003450501067580213038507504540711577685338954191438789426977418114519323473453808139384356810668643791201372786880936783138898142481252788055670963494835827144433941016549364938611373950661477475979832099944131015325250644497275853717809845240168659451579227128446377918485639272265120736513187877053236963699749991673562310659233222387965446257915240803522295934364020582331000746602362633261004515735962206392704863033967925758146841302565942014206287611098904539855137732387038929571785374553235252589340337295837399833458687230439254686629068166568883578997417042173929162710516919086659751099941648175691786299961876234552010171661718084728631645581009541993002909389425157225976568596581407214865909194109829537037968206865472434454897616313965163983621509085704963113174389038467444773917504720115245837893160638009618654019141656037391794302918853183124114806077560244126386090800454188465668164688348027013172829939307206325916984189803233907895284287727416275609360677331162473325414701481148594989339670674164941464331250992635560893074338446790650702733272728405100329372800295312205521662126363921935749749805133529771990414392160479535829723241487653991782517187070732219307607582157811538917741368922392855121200772270571147796630754080264071953085158637355831345951027432827194557435970109740170214230578277597167352121641087175986394621968395267352881013985473490561717276649152666081460914771019574429370067964693466417260741208978057250408923527440466406865832704786802107989281345821948626433835519727106826946826771240295637808655345388943938699751801667786641208667187289333208583101350610150109010720170773052009553372762017379289153218061982539353138115799418270197605148681046721677179950648617812183915688859178490463833972955885622665020471373315301234914096863515293736934055365797892958808228882757942956075003014898661385976735445748485341749821180517453223540953729893971872979252247490055627434279414277074380822060807275621470063305175560035437322906230786161433051884608349113305282643250112816653307780277597592659078994164142605717014098474370669059514221210678713042180099570735967743083850642070456146658674132868892396181499002951736389432818956285003649994150476779624537214194090894770289361227162708497312826350922121589413483436086422616178433516591552659124842672291198680667171123173267819506492044168255942259908920628302500509290381526579666248919552796450807890754689510062929304014786741097485951828563132387665909257826968715029246364160390602549585445328619190605451530321035080341872233059654690929100377663850071066175180741149371916981284432798489060048135001045537446780663445830450784755898419049412348765485792137326821715211950749755411302364356980845715387818954232382188105360846173305938456123506905146107909584613778422201973014475136308713071902457981679265384194882359904857445120461396324331895071269217626560050614267076306539559818428594102570440058071715309996103295793961584031266718650340617394239336971742871908224363377331704192024393825412402021740530418064021107844409093235636421288046456738124116615296389812873028743005699344927267691004288603101790357010029877894621415780642295505226939265694228520829137712924599999555652058434168817713176041679210073865872647917321090460766600879256637551629556198200324849074214849818194014859966586097292772949672515192351899324950593868888641601599097709466949187104645245439029929974162312171215624693370288108488940394628665841090722924999827326982689709174199050160122958066514691159420690172826539999018025683825004613889994184739447807923929220420478703488199901286410451406135038911882750050682856806392249252233035057608788233051708629719901824660026389881261362816889597733562303668379506729983498911364705100830413168088282015872437274315332946438874944719312469238163042582587124808977154842226183672386395800469376313562711859119661744230670000071971338591056131323459060575422389853475718096755274739767361485794802068955082614170597247109700358314770335650831709246536767305221056788900304688534377297028322079036087842046847227947557881277451678855011824691447524075255677856724212561367836594283040858190449330691970180874843202246181919494378502875545533039808940101160609745301997832868490223828735451111393650337144383355154127310963876319244661582025766848241582146906031180293635616463060778031252491093869301230910243556871553612238822558193323823578548592977847327210895303310872364297773587703764380887575439641494653319100449715400105417375313818849435559176472351311224859418960375031892567483204181959312940130914069482595688596710018249308441035326732189829901255051901454357064765326173206244994274496869333601465891715661659914566748495922213163395746153724100995826746463457762683255443971547265441085520769036683363487615680064431369186618941037521851072969299368488394489058745140240854813048677599084434470817275314737826373406508031512117901573275741326422122524701079649555955618721430036710901559605462506918103736405892595792997153072495286109294722062004058324278111592476108449831990598676376364131997021370048751478362103731080088377302095648195687839100604857269451481069142056986827933277228463635350598244750616730032997610473139159241180969488495130757272532731635099538564472896202421166573510562010263995727674763977371673508883046065660206614982198056546555266157905532463006175689006675474492935041668902542600162788612677819742126278005797267694538051010303381303424242331165071940164375140276515753409167155516376819836474388803152218927331949792290015155452898854427431499484142895085316161878359512477357333910623776381507104476763888272538198069559944586872612615851262936360226891071963135341121515369347237265335092517128331619968836069964961943247733257991523403048099774526660261010475286644984828208736694159687371790853048049107161780769660590103544187481075977818961551611345815765112808056431931857355957572379148734908408236911405512749473245165292744005775339255166706496403346006230757777743720390450141030011265872878872703419461002377498459707335387473448190979575509938920783002533320791027089624680291860782807761253307210866667888110264869462997106405159523169278059849513754561113422319175890221419237885832218972357632353636603214975503282809403664793955516822977736275257684220085073272120634770358884994217354661012841083053829560285122952112069927118207424282516999470454269269235665849938851389464977987713600352421900552262742542802220431180040866577037553194335638372804145775713544347264634474228363239035979658579843914739726158442796671743245051321099426705997199230802439117938692665808400224830710014544928705700496202056828781415284064612365195777075929595141914875881912364021393164387081991681250222146803193240705990552154984402758540844430777104017424313519198088012291300761167456282578825454831888841853318174989859691459869350863228160177228404873472023978639037001825407869040232129226958809231890955272073321004411511723380439121536449563360097984499780693632590308642062535277246494102340410548438777712993811280095149744480186812590090829961097376697825319692134771205711378103466154406060725964310191326446145074083919351119676661788520704567650718658660710951792948368355613609345609987638826569995836215909433970195760166321098157894902854971439549628686952187128930458855249391601457456825169193874746700518168540896647868596298197441993555285269272221218821915637457487509159916096739987475577573516635927598855314132224945786243578918195831926773184165491229345661740053311644616768447949980535502977182991026039637413494589782790284477453418163207419382758861702492155397498576491790577415719618507681315926975792564111415917833226682376656616254884757932454595337286219847247736432459048683883202972456246549883191786094665580434657653537712437529042887259507226951782957780619471250138042808728211581428624435816571947805180113535706424269767988088477793060873575349850512338901190543506007014644248692632954949908857315352428658588777812116442614059610147505165150787014568033599286273984810769314830783471712056288551219945275833242270292030728143289905279766917306971122236470510603337717026180077496787757857396061014707897231211998166339189185599219295689696191304670876370848302582018436983283904133698399813354863301798987297394580668036199126716519097888469488272662775792422924008154785258065200336671933147781400335032242472434136287546834919265378432525608217800467684248968307143575460475122287743220776405441428220324966491269714653119154046176589658416475996219484097889867096384393544882466583363255902473288041159385388859095643705276131625564119030491728243874387538034260099648444518172683958472324479113411877012979959073732516684438788605990692294426301308187688980613137346982967472816411511836293814584536770631607018366042913812200584621050429659187841234406453765564181105682846259406451449786304704022003860391898706840132056036412193525726237492306300768821024041678399323360056098395580496055170170976770009264752990755611808782299203187729565691061269902473383356465883844022684060498764820407966955160387971770240174876916191812223715605316215465537129161144432253411311309401925197851481952692570351154010961288451922283746331730751632166358950127450647744294386992364345739484344911182150775766381029961354176565682156559552502508658079833137755059707762732162594262662389615477996245519978188152734962094174196407455933816416783339529875238808850539100790367380646523829639368818186406676023868213397080380114605577840864202230617923011516231868087110915011877472606035799580201555782927758063153203578369211584710799416422838099314628559141919627649297487739635572396748484783067479485324719296351608538978645572221048005388551886509619417958034933829983564821290650204549078591140965812321198629151463981741959995501893091870677830143155273031106887044558708685431299124601683154263130259323769025221154243863310276711942789410032041148507318445568655788121974099587392609232242441785506116923563364840487738887527065649215910002506398235826963915802587349797138783027038639909950319694806911599908595340549539719277067342383215747552382533583448548367510761833984631331013488740410486277584991296275243217331100020306024751650646268245500561093758556491387645993897294225353920167006407563596288518653142729673592330448684735091537570682727935116119429348016615343809766218173045778052804844821349804460540160465099597464360387630313625182359642917923784048508802815544433357548167824596636163934506047331850489187737359589006302544059386202809862083846612742162999977952645113431897722845966605510614127296455928605225589440545361784174530723933813049186349331864509514672998438080603431596754661065850448915931437742335403150778764323891996939873357330521198821406509358381652275413244170585834559940547212785667682993284468084433888900634259031353793269651214628610484732441710789771647712441880925530757334225754067967760107276694180686365802316214709760466065942817342069654098808313275431299779179384593608240938598005265732047199222909080528776206101285280867784816858114367952003166381328534607520601901380025202154039067740934703652218759533346726635137143905253470755314706332226127282203009033918145452868667047144977650103794547752975518449047543089236923740035874259344216581828439992771560013365429369941154621239232157250563789241085132902200269845269752059040288186789026223021745398222200167975696564204917252601049256693658878626807361421224059905451000316236296329680268439872461963044479451927089859910970326835277525184695385121948794668978862815547884057285102192056901030969747806649080447165922454678878199432629279056077835011460368214167730844535878805355422672546709860002580224327755030752771674236209309687481637026467659454723177824895867736195036751990035145913264419576083854619770003374411188970437866005532366650722556401031337371451389751660203531894622216325361927206444428130168057083236736107946916556591077809874430237841735917192621355641543800460935412177574269623288430951443369048432146782938951322351271246277464706894442961156588549496479189603160395858405866685160172152638817482242934580691826798075023614272520398718666387367704237466552976144592653229807962406233826693216236293361082772478968305623462450437371212254628079988620773462165954027685488943472389064764051398847793794381824134530628658420871565989984884640801974865809529854762821844394064976935176325207835064145565414652691342025665033735218469313304546383306774520646787731593271022095360893376757208429106286807088827836567397466687428532182304032409659848564173945306092299939746324676530067374698740075738685737446251752753410939666200926902237797368862871800472399310400941703897087647707369418739064393053131313336316654928742637672888144990305106751484744387918961370582919654136807346166931807552731192708553134771877445801451264137457239512776083520914498767084835224761319935249089314522188950407749880604634659219071087074397083601028027489499066863365683767078603889743964104722065611331568862728932457599541980201736550835836895210869994109679046250172408436050051726622582305480852831872990816795710585279193452251602712974836948115948649714221514888583550371877135219001568258255689699130379152479311159381021395122718548236362791841507217387541886144512530994240452951720034220011142191683597245831599503660931183988883984394467970699525022910857554118409904442254707499827561261524221504450813583125901803837147761919136709376552624222039451760079481211653268352961148854869985572011794638027313471956534508293655598942150771929269490783884996498132466644032415142837838184745052346836153194019041839401181665792903904494133409465485394487384669845491645323336452520894059586838488926385642694567016819411712939990061300962586331752688454909763186507695761028300585228589917679682483565084452476312478857216366217989998186970882070047796521492916854323468929655361419523045420796881626731098650254134394631797612538473290185850652555167583658268941309821416161912623229011421118664107048744115328095677482730434379425227239202890017425473679917361864152371229507394789177935807449101595275906726209327009277114065530094302955910152138411474038137361453578153705654210687469555920271903510992161633567953438357564711503768426568553950642943182821262174022873754522238754261650408187493715947821682097213314197783291316230908639237859875337903925594957765358988583651236361941651412441624985423036311724929693915585158678171023303698339846206596985875822566243617339688696267161161773741728739797406023434845491088263448362345570762251568624152796361132519285764157308477142062471408508437801713028317311543175276638075984305882270664687619574936203454005843405584072302476662303872369802292774386383682374724858818058925151497179510672758923793762232809183399203420172250018129759275234473545343686671922461998613626596187356270711204109643877002281019141662967869560236464112895923077896775160053514792636741985304389910738328586705685898801861641977424652459362408693291271025451841642350222386256461918527132810320508580733263456543445351927467764885286543489698921683494422653075020227622630947415910275492401276072812715262310281290274127428439399467968628606662450771848204701392195846284298810049864823620518463828460803660493509307567519981916498412229917114600826640422469638043234769126561946600546317063239213931245867999350472485626854079691381937193138794356388151092023344696754001771792628772744485265010423736566795552907819829372112654990110791255415440654854901310305390118324080037011436650015059218446338993246354173331576925016620797468670518757950940614759455547670768573073648762653246278858022909127829722395564581800478948935665924944879783501564526342226532644231600438571194691555632001056875159057713531655208928075475891951220240405738213844995537839552890902415022825955869163296398826940651332801673894487432094869385866940999592470316756453071258991475706046383754220532448691139424927803784342477876422743359697113600074803779909887683974836728391709295829422168511230154360306755215517850571234093598000511485615653801521369745824952560246861879318546759383081115953248584343226305119720454653730731064154104976798907522233057934619021027421640007846463564660517097762211747212708841688418478402424961476859979332485256217797024962449748859140814760401839369421003886291610083398870977843951635523201432312645421356533851581574580609411796343119653617307102403578642135176012941678127256250892106607623654000037401437122892907377980386554268806661138025687710557606473963251989916605655318034820045586676726609421332931619078261887122053821831655799952717221542575878010997950061699163675456576526951397384896195337392225042883640383648241814229802226958022377039755844834113070133478921436007443858224954867322121678548654611113140723219107344142472948978363721349204224704963690348034367420635611374471949166559572842404215819199749119250093028074086658866198160500143223673330196176205771145086708370458638212832792602278581440761491888695130974181540597149864417552055302419287325424223371998161162881274987448236993082314918673127671276330781444311215146823170967111769110428089946135625292896980747671469858782444615459297903081462238763198965808266009717155975796169282319442569528059170940639179052715324561189511530159577142650681957479683621011466462920064062834707048747316095059279155396989529669719805580050886817161215181428178627250096808059737003891921018688769463090406374615516846632252270714746326099559152467568084885653026857321437310475338954262150846606398289640849460494322246118606990144125788416962032344817738347576332925919058335767761226318712157318218328563205695710216611007378369120507667491401046194402686150990904832968606172226924533108983596632201648792006007642236586274827936666941093772878825467478547688103551285596810910648566922311893858785815570566451726948847420456300656386699390965617492379141394191654217852672940125286974302715870671803548347875103626158737974297902796963111490505437256461716102830574235473512188796664913872145051488554401080062462980699218141977215751060881391809195333971917020461196633882619776586353921860379642057247475920420830045899113743135572391827330164460171723017715823057625507495855147771764141509013043622517104430126260176483738178899207185824084670920725321796648751347113545963700830987727325995500992953798548458105040671214862038535954922884610903735877802524772619923858656834166922958268655701889018844063762941405717265462588986702600415585236098086595157988234264918833667904803221771691256018819380644895922037233588367397813828743901885411746154338677331640587773218382717796280456955846821644888649329448883104113962100277152330524452718194287621438507717508544968730711339834459371788918471480864961423470152545312700979552947670075866692585622461805415110420791711644802714426873475829622671322511445647808006741161683315175741898716422655784767162554103219349840675984915940661119025359887286914271779758910980561597600327495880451709179139144373987864712925919729412033504010394400515575431003013531569855354813165484052680896484529095160568873936301154355633164253453082942930445494490063135680584441671539330636375300908293959673226182396266080882549277481706193001004104176208438487843982380481284326263224991934209208801864891768841489877273792824509147490396279220332527228033053809082518485854143211195156602343674764788515881913395780096269957891573962699303293999922416650037495788618432204898110204285947261870197688326820736603529241112039691171098705606970957201825547442614807197145997242218327908162372253255935358792727855948733689394392561922945549597249266870987682801890344641524171093577132731193820285229066875800939752028708886564865044849009553061441616327256901750808068613944675918171795289220974314574470147596673359280149862623051964452709806513311901847432448886193342180321195962488934003655470868084708533912893451921426104876663187021212161086240973506617636336398621362152777133268687807500613670859010385590165981153633529312073770067071267434346507546110182811791239153795656070813474440593469359049874269718497254771986756275008469459656686440542679215734489260731933019771722413452986561603248549904735324114492546946411177810971731153316822442391758066668829275027589820083455640399691900834110304857043608901150442119882181806883970000359647652274384949113548091107778337566073860390854164151667901768139831085102956027725610918464802644303083459438591448122467785443091539034170069304352264001959978031781464234029137192626864472191158537390380488098576234742007148078630616428013330937411970746314312021503992413258507657741877388820145459312021463961129146830341047984525638077805301029748470714743216296180613739980550325453589616779153978428472273439635376042618419343787027306205046269318524564168044848818654762520318040606596979558970181188481767315286491387610375202904193503789341692976579586012185312330658158031428138574798775052078123134838352289545912506199829084662533556331081332280060512710939333787881996224451760142113887392386029727001577851904163756805821638292852761859412169808826341111483606377898312455807310871899104168531690427146650841918832362076965371712586404709346217704000003982938128925395908187718780478199526073976517463893817466899306057102911114266418486122209593421481853181423561006239691745287515860083485985877446032224040573000881054341399633825779406900189267003630917224374685274030859355076186221946482477188100456473546534689093076596759670189042542156826534725446929492698346882382714829079863517456361941600336914244224510784018249964900108139381080767744413213369180491311949061237084295954093899041814884920933683612704627757434400201570519698864997982526203982441686788436651494959895341232038427738121394276129067878935686238354921863045754236622141939663360181200102439517596603074198576382165970200287779784535843357616940542321375692141013035901568331493661210803473559841250393216614502908703575392367603548527376139902431395177389376703774789147716749864924757390310756467757353532669282188210601334148776016167438535511596104236644236195870039222182991383196251740854300193586219251687760984961167509306190236214996055267519962593799185974814645154286652089152381847019008874644647420898390704963793154545989471789500307813821911168205922167408973991291821258671205227998969203014534635991354002871135005276112369255474609191377899292889196750186635752233010989346957403354075444982210397907146219945960163164962405969736434251667255869318650716669879444967785892854661481003343854471187389148597131471022694914908195462479193877656684977450436900089800064817233451352470148748783247521315444335463995743218164448519690918453424973883629112498751731016156299178532236310759223012640009370787118198772736712408325091771227388189256150911455941699106555138144562675214554821316818924734252492548187453576940011348312576073248038148018612768193648891307380583888616500779547875704889648062527882887816707977458394875765474965914462767569146020073608405473181045003571613668380220354607058110893130297458724702476085350337922850906944719703025329861700275567801940610558734566441998111083594165652650707022264434543649186224242794786628216071704481452226550881669779770155753351511267306952897884272433535623894579639310032370603310941872954931533807809380523954284043634697070088326791368553802981742707897787784435720998551992159263025474497242422067256997691951604905983565466606595900108690655014957524823500973710851961772179456922554945003949295363788367426390637866481628653911202010524777765173555380831272484270199640309746363570712449763205993893770756557397326409637580271846172363793656256915512627489377253105588272109688182086135886000211941576667083765490701430932648598915424322379304883362101256992842426245627994509741119220948414841771792702995706895243417847788307572590689367579571110912350914678961384079808065737270462256285926232212608971828154333717787470399257569229482753094206692379552753181144238213276849295386968507311407860860079691671594996557134187211848356674024365006033169089150227894737954428669595629545599082757803104467473702966945370471100958934056707969092556568904413723160076227548806605632565762577993057755689489599527157587899348466091955451492199806404674846169700410034974910671691781532955534936185159974807749961999883974649367120195069744336232760922328105112925053396406657971219425601821281700085781901183695619915625275545196020248230859581073123165754869505198647546995359220176034331901086011293398634061698268870096112689105217129055330413143843668535944406928415428560423376007015775792093894396894183750675423298306318681415882339667969908901486973294829057083921194060788183204880635851105742324766963860774130667334424840739779830080588562649715714967066561774277668049715102246047927488418996327608306235595834604654890432575820108055138840420295675558080405709053509812704445633906022887736215340125763135829779231204492698330968885879528895816790968145479533641018632249524234792043445859890660133255627451719190568279623598967866880711187720080960390109510022017447127517787425971882871925142640933831364405184259381213646836208506636428720362546771679647324858207586407236076972668746392849683788273816885650010633170949290044937218941190118374312042675466391418633788719513117835540073008174381371131544256006923107383844162442574142953989849140064249288055139783869189825573681862746290460528010912016611600447483058437003756108601143770132769591989021276328771337057953197302641692827266188092904907703941109061374564430611887550644289145442009287121087161391410845818736370402945382816609971487670920095281814993282942621675360229152518194232615963343418063700741695404082389145321348066105331067727237120366583792362646491547391870041711251221053205507402300780144261669608920430860952542322167924352704892348033870023574452093021656137456304785970900941104343667932608390353486747276738554677684655739405193086557142063483500808814391144092756765659994631179439346188453097497585825928132481299164176577005751715806486695641135122985315822931621013959876521068543533740064006794552310626617728703856367056889330620290225518454456566748979802173801636495032981211743990194022490715879023587042877585238873242758499462561787765257233878664492148662515526054179422597696823148768962949601883523306596286036923875268557370801292427359812839937490254220840247382759002252396189337433836200378230844160488504365858844412897958358068751917652313416807593775415346581094780041621394234488738293509946855535346685459742997071919795402047726165437948523749220367191998880958228540784196186296927728685383765990174335326479066640743698848065430228053814411927098693889988465623904616134775938766948931125606417372747364364377705944975182190562009212374653750022762504595803252209087039111089412956233555545560890769752600798019444170031534518646702242935740724776173730435950165020503773969412714931958605954402543807241374820112553071867576237024310042623468673231055124919153708426828661745728355196186090031578022555009477362366106591596348300697828681123725664780117986811884678868217181838684505694893704031486081540052144437857704809378420269655089909418088982651647268335657762011536154176936503328174558573241776292231684186513485157266853832038173637077551980025935752003088341688200160103266001503286759383778205131723619329095297364033856058892887074423877315664960159866025926473400557437391524950383537599567388021093409386857850868482501742642708543401237341296211832501874378364028702894861334901855446663761363573735506145338054341887185162797592396195696593926580785249700715438276308605668232609262792154297776767820762150485287506166045099739785372948249777218816335722145561088257581537429676478168665039945897566436265753528431425953618320387743524509675372783843151428508986162381803125582131869564402681877705366421498318142952432964125532490004196907268197202926290914827414642589766177188935031971365810001474032257430298179197007263055171066029500934092314210204192804405090466793176001343641654157607635024702873635408867034964265226348229073905205465389743257378009197479134176581228549422742222540845944738465763268417610723365391231915784420167044248586381025414441554846628778208702171330566930776476361929579430137612027638898470684698130347929505125553347766236284038254412840013157923126481333780255026115163739111638714601140817145794389854724669852207428876943748986734229916350697461790078989626029233909126744907519745261101828613469107724715467794656335708147009805370596287634820476062076465883253075307707631867676068960707219443354579177716514071995041815468972173498496915443844401140734007795568337491035332445661896165947170671176350379682955638271918831221120635397475944488429859219530013287559763062071298451599508476614898286807076533329620797772504890835767305167153732143577410404497428833519563066160807138466446784097995541170612350825309293568434858370701338288094746992194178030786248241022763049957366323331177780617964574431934929935475635533946653032572319894107800661106615302894392776130518415331462521465545799615092406092800960893531145578451111104695543762172459706781512371796613208510689332590764502698077222663759563957009315153711631226634001640843531143349927681710159348583595147927728484729144605707991516142444456151380421593662591826150925918932328213552121704986765426675450885693219786487542571103290112285898355108275246231152280395364664700950000677522803324503582771984158105833360539634763120476498531718391088161956013818618491913176634754420914535998909018923269989755449465816957668956075247301673735655770021273864987281912886040390664018596242673303318503382828031357491372055408646726283170305825333278193170136951778325142685992987779870633140968246846145187417943892271137819250833903456021851401307231911879709089591832054336830090695446237056303780040876312207602321559797546251746230429737362082896531937628737869465449567840213845689828475556523000135369127328837360017062081389158207391748021853489008646268164088544804542515698196157613394434624859613564983773555869990072175624303178734403482599968806640434092855029387058791581067752445800813449425236478111951605247404513935770906326073165051350689388792102993673727021028748145724542624800208133919245347436248900512315081630179220541637836255446251666826886806724957444883172461734814457844287579862400728364277465823065378678453146140698097495095219875449733245806165214364706729784790433631051109976771984212567231510949727052308295170031712075692813011635306070723818624101432337140371246338160231450740747284568605005124591760428282215696076503775966991654070067237981185990768894602698308421503248362750285184050590619317971450688472791790289357519166204654219369409487735233862975429072717764426521465398095287938425248549675034143702049993643971736936003226115677101123555344963666479953753222187635429647431406360126075181338113913923438016981929872305367920258081525574183168896037729453922707740392634527380973557127245128923163192746776900367676333366983280483022881855930173912549618574600832171706536681305375353021897560475687867116187893759439103378267844694460690332472602971391179069133882615883135435268916987737534976905992493405319359228406285489850716207501257793558060590337238601761143268192606620695339249052782994671024291194482304372332498227237682087109352362383293609921367581549285135846573666633360381777193375064728128885694417047470979154130593497988904574273164420003644088915470643476861572195572969299279372191746684512569375305458637541028973414000458736499196800652703613090011918948101108803138003985447339546761472904462088103445612764423263928786022543302035472987482688902655867543658952773697721794025845098156839800700251715597084986821640641727739090065252957387749222209947207432726155782879948971295126643793776471031251141285349649277441494203615749011280052819800683075575717771358252571106782253779242740864631169468900057335957857668608570454047182534831269548396091599520527232557088094624234354989651993015504876286679421735531718272413263675665157098602279356478559486491636737475767287093747050202928952900888453480012619711050460716162718751949726106742332151525687867673826214466062661412323347502683318232981148250792366599401728317417329829062458816752259982906405671783497573985879188661821267650368742374221369765422222964286882157926543864476781298460464441638978962575037255724203759128412171935232765610493730326053930894122209921031265281035757601458097342011394492734274073322018857354904240853192617384110999591631267950392258185568085356996750446062607143399180569966156379235362757807599553279119866566521888226504966224828613651960096875888071671267919415070676465171946450054650239178283758804134777657573795731488644865280669721678864779358079966659038024749859301287974166634188170819462885880634241277953314334393895687785347970268222681359727458562467271355865526181356823235086192299391465880745169901089522341396017054413402839680020843049740651642552457386726457978667121102238142547596929018855963710991544930105179336881565946310137550259267499165155751559545460227484180842557758758066337058391352701215317008594780138724467577186551228911057151470945055344636631759321569909225674441497284472006284073046886774687436625390175860293207039402927183200417459339310697648349525235142111865501090599757940314553302733573870610464162204871830817287990895027566070260613423454402219219527864382479690711862806692795274849884387394337087486662382361549971248166848272176775259795593986787606144428042191810340979450915503843809674137234566648041188622200731005449210906986187439107107433183860842600834772049408703999593530453046674825131571027177919112715447208933630876163788713779504990054447786342840951516076530708349466800750374154852299469710504061047471040403369879280751930674431419669560752639607839696963827026664653807078272047076069607628882861414256603312345966958098575159993935719782686790186270792860260476305599405588717705129889391720341228875794675776637547082630183874047436561215418665254320842031840349916687684184817325329318983831781948727589963736572484967897205025835672304360830741262248478969142827842981090262245557048474600238683797541696663990188386185373779802779570389563359546411695577147242752537603454883207087564263964894540142828310384603435922386345420326087752048580686176504456666652795047538767990609437869701114390787805123534966258799416202763118994816805078656721681915897529329400055776558532393242451734000846390105694023687240955157315967366386620628032871042340897813380149628732069385167869310858177795899494721033386423597448806354501535571433950503893085899903356278594479719366028077306531792029612600506549909601564415677613319650695715747063261283707410589660359455812120614612711043410610857034289581481186573149320977861964542488685340098849333529858021053875184649577547808909824344355916374240066914590906040228981440435525790694617809395430929436928678732214804124806725302061955160572398621830103174559583317320179832859409710764002603541762457564069083108158215238195981807378201467027023976946979129776935239141140423324630686346021901674158408487020007846203999426801843610553620061834587422073729388958615549604299492292369735632831307922214691941009462546988772777243412538692720927351999885499416184226539523838843079983920130199197888009652591520200257480447629367064066337294415339947898625769299475508141892568787420116363534515508519797312218412544646023561795001952471468738050350667870668217340719988727029676520553108476506514060315579996377930239827828424493747523370894278060827928426938026214952659293492284316433958476119572187036358154456261058124356581498623001257282560059805645449940577524236507858102349108202243101276195895119668558516871070837287923136110430086381713182107720195041777059994618180376169098953804095242382603590970744874498261800559659183179774397985316589997110802479982872010908657674883828947174735513710427449266033949905203556063983528761917324007621499306621069338177495059766092714091759109266104076049968531948344179803334396361031783582930189008925388001748587537944331142163555501420221412866777192569584703949672846364597237569778023217468708391574423722321672243077336957653672870800616493921923509822437173730078154897958706710017191639175918878297471763420131112499318705662875468485908384161652904136352811815404769021293961882783974408536397239377549679529076465498071954901594656652913108081306607848862197111059091625752953626797572870719581448865774255897944448512198674751095352989645993904095918267465182916589327832752861082915306166046779371365091804837166256004370701332524971666478137348218376380727789697088910004786870294387121798381518086561908252977135396460185864184509600052935371330644547529884296206336183561535554004146587254993092261883407384900600468241324548149307298788180442542316238753637883126408236211469313956247936430518285750416009779456901348972092477719237671388477074244125357147160532164944839132987089141902480197618320912396178324986496293559243125833633166474692914918159854346746954659525709892981402801072524152544010930085142880249927013315021861199411430671091974833737939866758529319155826879871993997337883678798557502898397170984389248480387746067754563403473811210864993236208299908719180184987636669366236572907893764863008478833083943325380417163906139103579822147278694135242822655197704302762295895757046847996587996736072647519043855634856468365804016252232253656048323333360213590186187699472314925753685357412763449406175304829363848677474805323215359741607547602730139193703619864080874121715616167697280450621776410281300502467705960493272669524898476853552614747112941071828829036325545698107219727420320924384739095027656179471628768408248135445034298599977375852575650950761834930532804767050476619041331892764830571765319675696675605024243596123774810270556554993376119603492612000732728161811002772789646762886406167380408511858774250338569839468510871757402771986570168360846472851840874984783927139911287480809019782463761557695159030656179573182104594229069623269655001179064036763223164832251362290754678320958335818280418102816368532788600333666340134661067201252300629210661670735431169190427089944233167424531466265072370243371267212333193945432717670466478981979066352216878393729940754916055469480354263082325184742314960809372306424949282325602703314711462765137320786475148786654468647257892260817306043686693111708016810358170840600163840016863183817612279420741598245997851799304445447222894458029452172146713750455023337081648416152961534702396849139274323699737627284281616000678269637350971919070915721798396949671836922689758643605094679562392091850719246029290647189546991316367726523325192321960341611637868419175013216751743248592293123077507061638665683941434160201399873977399240961159207385324987120975018267310627279525943852884203659362751350030920783404245149480071997002549019234902205310212314738463990718496032018582199129832121668105036326551283743251445200516224620654855983200507699692890925209650434217921059403431022408669934427173779761071923917629218022774061469848491923716483768513584134384204484317161153538066539354750737177672703675663629263910555776558462043589433446694412603284911462056991575021224420471612706000867187832738289780846972176291373789777388145330205031919944016011740318059298930488806190935671448857625073554080543252581543944209963320603291626180196486268552034768370667021663250559572359705831701809333736410682257247213457686000013037796976549193492270515744857077686135290501069035745276978627781072586474491691352950042730231066281697208343628239691235383320911869387853289042435156856087109331499917198363177198794382538703259124885271211221375932093919419980871744430771901887161900716588276939392848515843595293043204187059888767719103306371407967461611709305109962297924294446369503864294065389984296467712251672939498366462264282827886022594073061359000551937279785104883355369150057572987301497633158530739510565430195569947718841415740604964404999844253542351873993375412816088002933878951354234226582720160262584814537635264612932368556180273814678592214796699309786535341226574218449887442181595179984523244787117421697502665364544825844461696649243005472373905786356130469885199529432720098881406432092658737040716140633030106149093786793202826480026601867522270955732677176720171530993269989009819632983223519682987078032599677660821011902864988542637375287902344612205010375083572820762201951522868542246928614281145302155729766613497547046509517747845489834687154744911207635000090086253351401140340739185083126936089170850891853634961892567343660618439457049226743170596136011730019520241265491354137786679336023703862210528862851255483773068960121787731901073822341909082886537959156454261341411618479449412480453523658481569318766031793009463708862822554976773999273396983794442712465226647146849398262457150589886255971298661169627532886950041329346372447827123667208799134778670730167156884992544890598039087293088379416973023114334808957048170114396335620724684522889562811357242555629325530329671139741473878562831077347607662298213342536871048594514562814513671656752373098026637634593870514652444280652675689333415864444215257761793662346599245620983580911259494720382975245183996522346348385762243391984407497175681073769787956525877716365985045280632369318143445386372300129281505651672019817328013185253816682353163496086734205675621317568196960422877198043846133953669359854089320615255887582606158521055289335784490344044643502188601821934499833442422594187697296281557631467781613470773414445189663367158924951571838298430486035713712497199473506498399015524682209099182183617174952697927079202451923039543379701653400667983867382758878514851976023080044610521904142850762460866738136107702614061500451449749242583865210314645433906611358499562938651073922990726318464889466776149035726613677776070450339433312338383280387936014372158781061581778459262054444491378310935133006400641936728803477279086441667653167921126235099066999181797692234838665560717269304378013016283748302253033008209731344546772708709419791941480399942992502622496670811527713212144415243394159478852991403523728526988216691302541655005046609186718605887615854892998557448571781109493183582731534378293920908100993975658107544381816304162825421493730769535696977666874113889625949144007340256833103709761565635602111857236088462991393202459933879368471783045223615984610351147436472018547722211038924651024468486000757355190221356566057323016382178381225696179768872778134867279600970472219949513260923954353323475615965372481192294288138598430963292625167332031437545646328505340196207840532855895002599117761483339290709762442757395167475766620036512886557851411190995523809142081140385357378955460604311131107859440971380542546681343345971283789162526952363503660374078386011151385385125367828960772246697577981774387856937471321641889317131522324801016732585058928357429816247608113840595390712100821438095135562208119368509045684025728798726236679070556790433984345468803634328912879580736909662002710337048309056551062681055311291678234860647832198790110699588486023255988604943862672852191187543621169718716213424838528846400317620152447568487795887383331629933004444880342037342218335934177261846033159328698214091634486249373654516515072506298855007413589166326559281308355571072187506892879495337210505186997310406086881110882646078101728896749021314188558515639809867408666394187249911726208678898501498405198772670320593258669276318544984715811394145042601002056163475407361224254325585486563127411699815075490259995153722828292821624173253404979783555234223747386521774042268991284539301001329478386626580002610055594065769252344829690907335281959277343794583420649969831619664364366088653004458994368670175929204683334411821672350352963429247225286084419655881611957343257141232466201126239974974217772301427276334652948107946007909063477966226141546911381523070854845093992516294650744194816819396444140960979041758400552247802828325126171704674049403080246980743042684590273608523541044216859959608494417287571653981596364649053166885206963671851575917445229449618295726800835835163012502457876251738590953162108752977000226726963318662112529568450551618718285054243284667685642536684544891822598745744286045249818425857390252306157547725130063331259330479374719087167504378509940731146044244849556590331440559403600127433739291042194244495637166885882842163952528861334262180529826597784944340465806104387619876117111330820455507892635587104794687519411659819468869039189200660616544142745233117179238226473737860338330746709737803498031409828839721715043194847897795763952042600117121293443382002897884385563804645368035315311667292604107882254804200434221921821498429198336065355857488790196793474934963214741547367421526624335971019909760124952755222905754186520643849275734553068141425431264486535004547518428188488102145861125142199317425347674924847077241210977260726713554206125786547893964952140687718285257740602762220990054221751322342048446122715039671981387916633838249885691718674390344440494321080275957265397948502673109098420266623699293682199142358188549991547703498106318240790439514280825890567637671711326369811925640542545204128921334270684134980193419454479553232525266115125177103578387435825726091354949707438356777207243515817984979804770727840608765041118399260536081002401559905690022822057275254876600552035756608977888762062767422336492024354043151956593632210934276349558827248545650889694189059101698822256105761491987397846224436681066490559090235926315501412027130442399468429189076532916989065972836384010041699888201602136122619388426950989544347214654884009784971714914934525231830663416341340285415933358581124514238934620893530098229873245761714491551195540740775719823993457665322147973320024634216410438561188765751563192706154885647195141731925862609392475722877977159905995632699389201270134125974797421122389112686180272131460718635130124373823074222219301214288365415265963802037739130000253973485975522970264240599013168857848251651319240885956562070138980782405235287598830380872499447192160918639998225186244163362635501500351233005930086799424337669427059436324927412779680060348837136627158585867096349614298690719925598139984098626575133145173417147778178392497079614508595839358391521958353889083178704715661296735882690796195921265626413417356384861770997610605314097691051269106577423029152188131956896457300786433456650318003894315306557777651509900833623827826922361178225456019645826726171716928052337793275514422213477092880519450854747401747751086101364003836325680669151729288327219508835582236707123466998409818128577981597738691412421324790348448152518870033297036310046284832753727704729570716643078385680316488668679628008879830554275058470237523498270892104308419750637959222822826672771106467464994708631012724209235038804077242129677483650988776699646791570207252428752274157113861832086303931689969602268661109670349473332566238990714636995742923700020220577134513014934584924003378667343652163574821369193701845853546115399103513185468249088078135712824234269872278827369528562979460540990795552091194770992822158098726342953136684349419394850458289010362806995219807926972009663890342577852871596403789632127158523615945568626024482627792203687849036052313383816966366284524147494177367256984585489163960456750070990923998809396391291015706372996588474351399063915270337172750171637976359892544913137513357499044739855746783262646523696760953080617396349760654217385405191965111693362760559636989667205473767043724985877608282115194155911458871637817487107392690583376641451282931776404808689438894874605297829102933585702774538031133397168169534883222299683635403511223403708961923382515106908867133290517227853596709261678839496317838031745381352212888279360724091088439426942488573448308204511489857121169625952070584202416029319097331833943110592710983364050491255538965718638238859996375739247644070688779800605655060702354203976496636029591125247977277352752823795169337656092472126428993267217948519671168369912259654164745041245633088622770946637270434609120447846410152667238768884404698751452441073214357686843637729082688823540996218626515483526240656238065580264406257266403446200489373548129253174239150681441087907778226265228064049808501220083084759289201651130028921651585554126077465423647892766641860257191359082681166573857624428212931538558727326067462267357716250583905719260106682798320630643545417678803811620160731166184323205999243236110614362548215505247600810297096731176998727976438237408510837757193731298091362474769998134081348973105776089523746827217722735898624652250001778626697620394959727735132767372687762447142649420536019761029178701374961625129552406420387697556941315499850503170953407685575680437694304296851745171823637025788648547939204617908916451254376766614142155336439737125316145794975829718312756667943382746345685072215413340192044281473849173021742489232589603434847760912099000612678535068521487636916483679951930505855106435744465199485152343417945847743421100981184974585343609244119624065894242341820174157790547229006821063900606324824734575294551215816101426394663951950129614280575604327490000213861687265112531751831204836797722022918187196392523231270954794877522570788434354920992485339083010867407911777114150450157494734100111378993474932221131543079085004570626529919556806763223548649472423625504599708237022973622996983444404617072989917732435008372816208935850183783747663729458104327351293392284652407544133472015709799882906048188997450308655825676057031151288190507844740817364790012493519551672332189805670344416448479779209959827874642103630483996622536260695463231929974301454049708291279769537941313897984420430678718456269360433755537804468407552023151891610155392488387338407520018144595618084049240296829101813517589606794646476940037148119937464549621665954082834356759982771982676833323017301184407561362038068579084440917746725883670766463915148340256343413102567492975732937472113100906778274498393057169289130790744775039331930762230756996755389373579441418799422872748066645493796823392599839392610949014600721717278344613622408295309536994973087558279222819674511066303176077218245396765703477794713534426375131329836874151843122077623770567879706741807442520698889964179786831450300565416565928725583926369854136660730515886986006139191344574329590468177838444139446974092510260916016922154869168813748604520924147136484991784735842577565303490349393891431118621161898567692520447374888144825271289487188840222256759805728790376071904822119830902573513586678740820555934373371476135723794826980232227649787609111826936390904315056901047698930842611399586919534870393853405190566166876226515017913570240050640664168195298303623305671253596493935814608912886720070681777185297230360514531738681434900496852595105859558029776342858190727537809116663019415707425411933468627097208880861430649462092556963421855387709841928615574600556096899331765400307330045593346106342885947196880178380474298367455110010312244023445139574910396830836048856319774110822804867221284207787392187420112423223497105105326722041866651504864944198404305656047317621798105916144953472187227689232891032167587416194778343663313738421398990622172825967694689147141688997618135008513031210176712565892304815688267538643332428405972513007918824217146934763581480352534874459052613357610169121144348633211398730709051845479667471486309559901084105467314183846996833685339479310984308814308050647849631601654124754497385856098379903038124423548139902615744390436052821044668236400751350447525723982635301353000292956384114567995683397627222861038217137422539756078649269924950701100228504742248421215420637141212312183792857542201409199775479310414866553311424093175691754392772147750819180986984894817120349757668566370509132203357878098024618162014281363781496109508375133705848190980709146025913019246407520873525967514437129343399394478721670818528233100674126276477902395858398882217218146142588809876284430672435314397773116722004568393361460231954852455678141975038190970193601313025215817717112468409561144297385584330612447979244680389206970923087409171773957654817310146009810087724038830826680820043904296063125243011415975112769363260533926845237935313932041306750243451556195655093172282914873131967886833238526407336542789734388300964917185081041216072244293388025984581202567361635391039835763047855700941143754297295466180353970717246968132573582885945037935493986306639232911197306327687600142391309256435442830205031012925510621698499291701426032087494103806237146428196497538411078691774969353432153328410813414570107118369831172471959460962228207775426719179314407399328884085761984340326541614535763151863918805003741276054218651167279868750177064158379521475146944974733524618111850201146207867506379828485629633425617830630351282526777077190735314591354776235157418683276888039321855037118454871575218986926806057854811123473929770637714579680556086177451067789734519181560932111393519307924411192848669095059619404271522389869362350570067100559356476519801709122928402333360430663130934699976969519877867568660473814333276797215306745238386951083400026876114281815121114299943086641461653363319936471108247978777491807223708136357682335714329208915744204352225625269074907592249795542800313508619478918620303858210506306395941313954539833019270474754187204603077783737908812522640048208439469008696613767857544348792685501737326063334367048793758996737481395464328335925971274235358349186079330771711291729508129681202050829017553984941943376173558329781233112092242620422411955703280273398159475052176255600839255225123847379472332524660712756191595233180527174983186780160268655456604717964918081996214248743689039121719776473388813553711723243747026058645789957826439671943171903540966899364404683494851693285512099029523817934728690898563566945908981072809516406321036977207063199410104418780580639679090368158511075848295099462021047354395388301292645322905465556643778364741779485188724353706939039212285628252706594654479311573990654568655049951052010200443471747850984439238856878463036911610328412463928167082891136797762094159381578193491993554784558070197958816136046675478692505508724130206326237792238024971350077379460810435050976461930563413206050441933703911096202805158208693190888318609409869710876757264307399108067559641324043191579773109280641937944184504706073442509778559977084999961070520978253553908744895788957377899440670801671059937315698979934132553506593477971897512804935506069853722111726569353598565866062081958756595773007853860202598561938384884218203728304658621429140661171080741090167517927857429530060599820592954101558522950741148026980497431549357797267795937406526569068199425499860545417897488490295912425380656576934753816475868064372416884557952976926605003032158332634200066227986673470766994408360712386614952427875969109831622660077035160558674488622003824621812808467428652302451173723433966786419874847978426024045370355496027796209648577018978262660386274311102079543362395647434225662086891433880544374145167381724391913843093707843207377346114424230784773573319714120998656849976657618613757780686900082554997053168625770805791696889249068020669735331495893963757781388568230077561070117828701675083403484549713410474398548903721981126247688973533376209737717552262259627796675665780399457625086483312150167447974428860780053665520481651474144227006405926591429503672026523562792614892641661397324993921148895938169991589421137259466996879237115742015955981640084416488196148824090111403047077317516532380357083669323658181879530840712631085719045701004184810173386179273068429826905151002790707734279319186712738286772405903947845877387920908239080909402579915842805505512247381760965250483390998494856862416731430161054920858134322443241176502122567295123499750872809074863107018667669128463009678376949602921326867781788953167910974921667706657482410000786802546559688344327452817116040985653355280539235824337660217269172761423760040801211419742160818921930724319621166902981510519305123900599963243970197480167415851480381829602441568017444610867990787685086127862727628882209868027622592025110872781648045126318141374865746496050232587370706035669725722348000604736005376257294348932042870823456082758934487376889246645423786983015482888552578493022941483485165048571974051879451262850662880959115093912642704349694273409169106504550838539137830675362001976613326893397168049928552785518407379667972168383022423096820793879186138181586582870594352891684796484073498150732320256434491484698664869472439053216670011772330260023162875586210087767269435631817138286061469764564330872656800549047841417841465678535297549206400357307451643243594580982928880918812736091179703260509576369752776715568722412505019442303297520120715662529423460264117359124374192605368159830827906092388482657705377765003770814241508854262205763973625734112484559010193298315983537661069287119857454783420360161467572314188699544332128570332137576852619019724785101526486513451273510558715860900568880090727722758576380107580354779170743228502110717964826670575437470540642173552296500869804540196129065438244348673521493074277944980401623808853770277737751684862799294090880612972659591609712908890340597019955015285566476908350802387112120915441137258235048361745361973817117906649096110883587452265966103521233946140323011133369697886923018976703857974810007639041452418048054781008071314026978843928158441712892330945863600682203647337738372698795690278566092178041416677445483733840239546127625718575476308743096607329566124039761369132875029733677234319960555025096048709921951421595636936770918173366099997105189678635843035187153285868996484118051807694940707828783968747641403322936160577474013565530860304612058440267517091289416667620242646368689372195672082552320620947997400589876017180229825119606536293105656667831063675045471226826354842067336626500856142600167409218187916434706059383301457097120044634631489064390355536904239831822624801417542593281111810083877397939532006583132988690620095372477964696133474591578201235919732191052969456645401952623216417201564687714509358112404727510923492798856576190520623577225486197075082144504898558544186492199161413952364015046903809965597857756864136202648257075603030543043460465782556059932347137085372379844756887890839664131431372802764184428533034868463427624394767244399569082037461016246496322621882599239435429614209021070138565223943394828802831090757693147968970811535324791508323411163090253595629581151323026738200899543668234118710457287730175700799243921841459889749917225664386932989120929287575816380485185042560340097307793893824238284231731486688616285566769304325738108945644989933971003345212367918011037403398378629873366691746605388615834070622786133042973873060316381130922804452785121108887553803841985688253680652110975280008670851634236028557283267582133600532451664242383074282684359225164767892471678023106229698619872479836250512569588139525320209793449477380923275818899201976269089102234894245407053923796319140443139992358220272966966322426268665367070764199721585564957322001561185507665989542510508849012022455979676280344845308300949001380050688490112605170963107487708694695670132611331779923134063282977141337691013359320129162216684915216807896508191352836541430624381270467009903957726614904314802937370112307526223356255209686851093811473612359308428893993319621321704049829779629613846497932599557100020746231385025670004601772115281465636662335094460873712236342193055743759907032969052794050479622173594311178125780494415596560355461592815093724696589199432437543148068958615443082405523110557828857749686512753754399924940246433040292710117123128724204066169125420814417017138486005357642094334652485769337411452643386473304375878974549226148964832363030614591010324590565519299139934631273053677252121475040465933307659716388952498258545196460090007767273621410772245376909858449454563414877631990392785698602188741777629791287667969064149673620756046001444461200495921604728069580241771582252663962062826391504714930052926132591271989286696873796885313291631122182018783669837768737559581725708802979181136943220920866621792219788004459956296342416130208756774111594993523319221965914506938953902290796001893800380431427991412153825316095817764890819902124413889396379261725626785675034750568317988183673669495495109634990200861638506505455171918731098054543874886821582453254397640811317317489718819407280341401644476928893238354324726884430626445378914830938748188717780432651703770278031470836750309943921328783528959590031757448565917890022256886695936902572686391632929884172574410539245554950506083256821766901844935445882836742493651936199855397010300031188598378002050861707881742262226431882141205363729430645158607314136015676542834893734090001680761051246860899777181118758987727344029928187682087835487163624088205947779590796844579603152411007527845733757999930830828939915379704940635757031850570578719020793751741981113584755172153114147792345020980295541554045530969955855011426106418019416979921137835448759582468946669720908923577840497459073064237198163440206014485815375288714336687109739764376565543236903161815898705038214361944036612966947307915430430553254293061606066060879902039451302260293978919537966394935264741844615788051393675800430020833257156344889298129239399594446570279366205851144973517501349756940550554814217292539003617380564710110106008755624422792778245010399622408124770878948712209030919551833899419382827920157980551262454824957588653267435043419193843864619167964858584373081024889028762277128058970727809656274382776134164802063918838598460090113862064844124884026466511114918777884603540228472488722056942570497683342117858158550136479424031237196433362266013939752417781004857108245017251844072010005909019639772826108583115527165540660540479127788244028338778120274721593217185110010572985999507996322808840199717350861836603950518592780807774164124398896143494471143755456871097351130694283914359965498366274830205976447537172135321839139704720453301011008978875020137734416399884042708616648598527759599547153407256655901308127479880138680281544217710818237080595408877136489898369823732850932906036916345327723137396344670866372355702600702716066300652961892632236910351047433510842995391257504165532579007082829105173273791853951816122452382731205220222957093552105418747016668752641329859381837840571515662244996293428908490445574459218356888932761888089348557047702686896036951054580282745543882001297486073616851641091255138631581094719388959619878607593254358062564567411536766010312595455950722693091712509854445517653069126139418344045333082353484455021689972931474707631907727001643661341166342160256361561318864992336769171740119537066661233016398450249124791128186603888880324069641733342604390595886395325569674954844843084780157596951387118154669766572553908180797709216003079212446560596423619767066491190456958615896601239866707845510103163024982090200559329108706308816411287598374553742510687145408828228216195881561083114991242592751679960311731783187354657680952281493244530849013827393602483771421145411418341702806354246059768537792530114020062387026755879197805134942697158100451723705140908509307262962040868220965553068336551685347254430756629506397566674423263728100853207672349780760110326231204020200547587081848001128544411301613224408561637172349450690116903590743673599279099508162386838515184961404742981879663182423950052585520115661162302811712663607551143335893771228417886857998363550480138221720108461299734552027244258982112182881966099342703095827552701946277322417613145841782432407480528129554819448179260829428187924621848996071875932081326520246578080865530362891997575548968328757628594670324096921823491461106653073499263917760351759834302906286047170838998855968010211879854999424707072023974065959334256544870684729004452181426010334341753663236127273941907793060067168065846357529958617755085245692949763805553215130977713100733769759364832527506226189559366878723976042090615265890630093623608303728033066782973457223590746509289638084860717408744281975249701112014462213246329296519257748402976294134122275481807638330604018739292818481239799944257755397341676722680144680284646263437675199036274795762391126139118331209736383163280226907247852503813163180034506852961941845861546815936606587137192554704401429223494715281464647162756901754502948789064096825034674734175498413671505455320773156910400699450475108329805724612622814196716055070945326801431365169115154177814378315808129501393866783855749626887456849091809934181207264163902177159208454584877662887494469485782220151162633065740865345101131000053335806336069871020627451867876028012469901486389494842227308836910476953633932554940068454359093722973199746120205705455766839588969373537730471447934889818624923378350957116895577455932103412091095713498097940104044458598555805775539115692103408188257455991783788084831914469653696619280679353350441529184093957826613528051912655061832983842222670268411170864978746125390633908199679732507505578696639977005399006838624298939363494773538849674543873134957168849335071858833280661676026179872646050020115860240103796493003238718446317055782586077715306196544566482617763100381550520128198287329992694092824169681677497909416269236614996904343211162677906653785987129318055772103727507574078834791468573637698719401588769545854136869716402021554751072386141631341495455276551453697124609400629510889774369349519761311560240515785420631937354388129052503633730004090139510489130078000510040443409717628779818188305904584821112921851107341656296077293523974968596368542816306140565048928324346506078623722305709495106321828521882909154903508536500083975895151932184987007787439178048099260599729126057028474570179232152109636622620449327162866992167256392292266036232743239422876690875211209526090505488082823686884518824907593829071517070685155045283883328144785238847068884195722771622909739305766910104712163643536878862257096317018173581802151070690003290738932515659790548484399561854722372702375848265034092113100111271703897264969332906636494223342309680766881153291018677479386421299692864529471398877066135370207515562413982479387714005163472949311068869228596631122747626579385439148578186811434549649291278338741436613232507646221406897518153870305548529387778666954077892884610432784291811506085814938477580424387625710657138203828110255473668619341541517579292516343173222500609591446526211362593735174882346821347689757788444284767183899338151923843207234902775432768311976328105002715939021997059226254759345173348292556966476721127690743255750059155733212141350479123714880837034789059673058471776057702482845348004621421314837904427697527163774999663499235111635466259925681115135247231440911170995376171098864209416800348372026758782184180740025583412477443552919114543349271450511306479590499365344828601774740153516780455367385013243737025165792088143033479229421272228050797839859115145398184610844666110407106160418804917208926349508057194246195652104222820665364580098200486688276573565926900433522873613483414061582090463993558741133869717808242029377812548593363359650391084900394196673993605033339143596071254451650013739132315804000342287373368250454350118994583246325226052809528653624372641828610196853383143324907249045726439689324318874930844827966051978481897510278074464032224893353241268884061793398989230379542797055024983160126018907140508696853946064814060069099779951846865964112025297932071637560586076630969922498323512134050710837247518659846435026928216311463561972807432972676024014482379214744787286015320694234252622657530003023283689644753092260610209117902728373918541764466750765501623460920161490652889505494301436708711405246979911013735688743146864425616587630260676799063358346066803667062279917401427671278443096348462663120039566130092898611218301107217701947607277873681407629295699487540411164357493586516546627632111706311860343787462980074369223805165726915958025664835138285631283281032635066413413094962545673269454168829680035263323829682874798332127310840216784619608678618309153463354345022729981767609119426888112628473339930869302594973654181490308158340527318110159268210151520620149771920227424577541284449160822295624830445639509351498869277199816679864319852688571718995422299395433558454122266825846713768856359790333735180696372277121922001594489002438824076875769364703980494751058453946816985649070843527639074771163902030434926662347887232406540316860470105480900546717460983756255328799978702397018378588192718474666591620450059549647087631707929034092099158396851163333730045955559641444953195308590877837654406420184199931771891145225689371644538661135677275964323818915836979172327029536061288488517129542835605031638341710003074713467043392100572380011365890916897736599897548978120348350728013653333367718782475849103021067439408225248476363269296368069191284185821821725268753468409010771576461924545177621450126681454191233531580719342979979754135157257433582136344881006424221852266835818177026825711799289289530990297741151859387530170918878824106866727895702623606590189234547675796331811296280907845246458909495039483127744313824333815400522168916294614603472795229370138718726344786069639440938074448253860105538425159212642179194919859710890508955480060482628176404355747729524957947275378744515260001613726460315307213312713213066294398326275287741186738591967769476264555536046819290591968316849463009092813576964221699747840834058186033891595021190822266126291369582539317089171442167684635709274469773628184507875466998362061237326114272053256341443939158724450751950702910019976240112092927338336287610307747325573180961526339642885302971301738359998787043078323334961170342230573498615689721292104020063196637551186752413864370693619543991420480205654377224079186215684156920913982844660365201291969357223135724110021313726743228036306948166061846728606620224479497717072318967109637737518495158820177695818282861435042359029025352215999071943252444255149073587513966954871611570386611551535100451753590879414788437225045840944499287374804998561757518845765850247669843875924783645766747902671677742351760148596278077491027076072903134673307777201898914480453745168403122590445499445772888147066807208531773494253579592655667533581292224076941181892180289349702770661879705725077777052539462590243800589920514112603596153286163904744395706334155924411158011542309741003801287257335744901884900784724210697919849147722513224853383844758382129919034259045942761154212444414762631927746795706749642019876735792396700460713227719408789178469428325229329381014244839274726935413989442509372705876702230915665644850870065863236279932256730585251495628196344777798522436129909107272038455144817067356018443347102721696507360900912417052044560051476060943225755559520541715070662228774744912512672006650977807996597494346452336217789489589807447942308580109084349113773182943430084550572774865536255314975149781520884558131508661266659655227903896575427074920726907114623576492447077074932939453179325129713594440183857649451347524011562511635254137267440224537411815108905111703588112257871568304689011894904973669511987484778608357848604699013253693100187421039601334531842072785987891570983069779130078963731757999139642491867204087118385726240257688095508675193096441013854860749748719924179566034992878587479651159483641157874993557359354378333656678360399150716589467102690260254664148582376393050059211615109768170086815822244497552298492217218210339467513412325994240140517434650067377991211439807509703948698021581422681385448344931765100504375863106473528816540365998145346902917756340961122215121505852499206634982289465887563601751797287707100453626635367103352842818078983570597133659044554122494527516060495513925460970643626118611046972354230689828297132814940002309993191723826756149252480293619003512450287458612282872301786426993450305331249422763839886541835898658271660321462518514078973185995578394330100336961922607030016577463103484063273367508341226091401674013450852254236577921049385946679860456293609240411081182641858253802710314129632448735112729694728222194745312680423091865008802043918722189168186251815177785590367220414941210705943363198220494930815715496386943677860346962265501312939976713367646221322982999620526715895656775452963137698773727604550968148912104837371513656688067504578210323391621946333617167431032144582279357691115160317912528430132460716978784977051180362648330840811979850632591885830911625070243297581856749961938236888059272804706129588540469678748609823669632796958921316060692113213922591305670850836646040513947359271985366736087383440800811201210461090073317339310909515948130437677097144810213254203984108420690700942443921716792726754363395742514941639649006182451990038673505077159941901109142865967052406031187016069788241620124949210245327196559723262451991887721692510636666181051352146706099585625062544962112709484255346661528092818726598406920762715792156760472718024458658946043421879680148016235746945034307485752445627013608903510060132519902542128160493752789607063787207603606607644254974248721291481575935132364497741319547341594907356691404624868370270227920129516872788286797069977828898718357660322092317205084239495752246638620372064444913553050947022989999572424064046908628220887564946416987810781853851852352165045302409023371945746607085546762129297074889891285187940978857411190411322546097194190222464366803731062284152350217922605395654511816723944626007465725064145808900208280724370588051896346129940720296896902509084261768619506875537068903571296658253918126359887819344517204728842484190715920050599851258399436360510514740561813592359680000644861295190168125955870703351633656138447763682375226020703538240271439405456762246292370539991173256339700614235634860373816691170778057422018547994000386228434420604535436165780347231882054079342253046334675880478018320520588408185184404182116795003449827254814468947180208149618923495809215359713242267337339168273296935376934055525327907624089066349297973811068060646396687796618435607982394982261014608370344407611191162776975443491801343805943455463095512283988064036118548334241209588196470893326699926373777833487335668384797946782363417475813042520253558119670735754289462679176243477543239600101389742635105796007485357380321746917965824896989658728947883635843481488911218027281477437215673356359472794052712325130892903796027954424685162438364439619084206677010481322259138244505781623906666634682891059596994551406575366759524343578783244027363155896729203340673136568146991342896513054888997779787889200103775361455264968123036911030175832713475588853614087973212315301127325985580242700410451828723522942563580198117513594167601860998456606733047427282337139512025511986755965441903756027081825467526183275355109187187540299068128381229894371375851986652782791128709935377235020649646920926215425011429565251550912993874388037634077004665125010070717215450974258494576291877639620155020403170885405599167381210711570454619667381223352866075748286932865419379322782118847284262716308300304018474417095664181835593564953144925588105820381381374498053919276673197478256323437145006870258442930421577320868042533158341657919928218311756115923537656489351834549728916042355531654524223980828789869305886230962475983799194235595355517573321290873171502944469060124648327105268057492628581433653611848985659454905152612092703491350389324333003827580498697374024059945625531603663076576790878354404283872510545762512688869955031693331331653027716494896394149172894734624182486985917150733228609613584210132326465575498598871862232118513477169185528383408582781976896765005583966880635978834092433349823231831349331993197603572372070992951700270821210460974559880630457620209554239144858586609909061422594639394560806580763526586032097203112537312497419974244856092368002920586023732468214621952681730774172304569423858698658161222473694647319620146180541102631321489921507877337525621003914481038504076918812180175157541239312823674541776555633180266828089187109269533266946357084860097514005659747983420793704956507306000078612385559411656970988874980716070622277917202718123333553459533586976284414064334247966871118182248205462805750803194208512781207281108004579621522515585896474356177827252027304719999047361296458444443894363877308849429441529477929296648790998501426805034099112350903374456117505698801160537452224136484048657443121011227583767345263818598813565822882057294194403414044739240633957342159803532595019730773091169325763134363802902932518200285412393073184711043197934711848644334767686550091246691203180945900204356300390766946482375638926250476455167792861267695855680900409738150774335871924170709894382482663697866178017364433673536493692963797386971414652801607942019605468237669697020943883848835307628402851113584732825787981099834654765848188431732689956676768493188330756991506193491748393896257198513573121735731415025489379536202764074519350510757351997507182625560154119508423989242596121645468712259239526543175231014819352837874148758165075167484759278906579521932527621407096394786908939133983836670409710485849766412931008658457776292100342396853443646895019425135649182611983502523863150313148562589927773585620314770916161902380608270240556593707340475937246944151743702519880392773817831593312618824905200412963480105718168682412209477504246538795566136480955582269201510829401354106438862099957384649232169080339329647049063777300882479591990441213867786876780420807993788623710783926005786565889106727459757535011949756952104068129048697869482154679139904337406162165327243194613490763278776772358167803558070276380833031212058086118240388741572526499553694242335398180728911020958099999846842842866314272179928108882113828440501648400295476590290673774103696498165919385689190889814286454376363074480677094448170681218449842352816902953987173955488179039855066997484739791328909774388661011701600980742656355152836582194260553558783946858868259573303392715814723714558710013088637031730163863215930760720128755147856249221676787292733608900961254803100818641370409174415067908344585945437683920499294921970107979525509288476079894210049590187179476234120237403137773627676582915184541879100726392067401375458413317412828674457416804477112680765866949706312175412181117546615283863267914698584607269092184878829664424738911890305762243515029982639738385392882483607091560447570241623876294561319253083247049599130500001766850501951125424620623969653564186870516816180960587995562264594644265523477827291717000059422891756344297237028524226448668823219385977879744189041847837948001797201879536683010919044686502572623746000078416679684556928422621958008392058222390680242177805897246573889361069039549535701350024204494119963352859463796474349038129163106937095265167480138948471908145722274711516326974855391776824165997641898740201682514371907705011224506233482866963077109046839421739211834903695348447416816790467568582636928946974540217971842489290253547636403935862320473309812396781766056069299639082007137749460562816460814124744291288459993823848398208314272145214176786566263188923098774902918293857049951074297481694759777124915386291613219222723404933792398567677879418304961124087767846727626276192320058191198069710624791800541221773680229885435302718350944892844839057718295531576239624447388465446004994772816767808981898346157942881290091755586216411422744757555743894807380707322962835801821928647749605746389330183252358646707478062461432026839844381981359472196314899757454819354753039223359932305226108278306706431415996313209366591735297820301865942952743655275508148185810561966349292343959357179959165330749020894505717983652985317049162723356039329163827941617311051009191875717253749919342879759004936488563771152149546901536269251060846467345870460131578963930605238834965260522050509608543996478505843346222576376489596565774327919172254054428648907184403719384177150393304956997563074002816258014516304354218331674828861230482378658013036876833590084049865414550405567757356425466140652439760720268240313763308215260263366272749901092416397062789207801058818748089654697666681187560693163528959572295407303239015900576084832708418830795369593825588587428523824787891591690632496343064314843393394604439485620822680415091708091588334440754870453164738373288714048180215152308711440999428923761037094000232083433438152067710191201461875221842528164734325829625242388755458630400047325745435518445454510789384183443862715589590560281241649619725829271361824188987907044230351428916498094004332437650135168966531498080045070603011148168915311239752778513205248536512965806278205438994123751940187359799278728561246482244355033142357533359837564994494440105190685261060230974199756495356978576522817267867948733545635769048440453934382560602203703573730570245905536046208436868963459201607929766483952595283951121494990612312406382750513209242390766187261920058401292998926394435836075711541473930635899672008923250418956023388440992897959335564497400220146740610613871679118382788079972806997611953930940291561432179936616846520108827611479015453527857646517830274659889320580426425023290393511894093734228228747903966587113422845193241926185370346388451795309924638462978184279307016236576740910882286919515333186461111361159293955106699881995928750693269554108136141016436986047616494888664225688935614367257869597278723910452905239754971138825210973288334893131677941239528721590678925377443360670679754403173899789533694324903502860757901892420785241572149754116588896626648583337908969854623001707328889490579460972586924280621979018555987226725375728122835662666511234059882481651419504971709930389684980842846639756707309070920658741609202090970913299838853803995738581634376758990535520452376743277575483179070539527127798860644647688079258127091589856563884253746077919073530784924704648843409631748038882540562528694149570761941010861398998701426746942162929421382269704754663184545830281525247982087307114633331452966724341757641779849798646433107007818751499976438067785231347167815754179566706912034805765730500516150056743683680755536727679201914191245074976663470113418544637173739881677107136346653477054996301273502752688841181885473954879717023614840776973923269345274041701388756041244257416317210995663599820170054225043494527755146463925552037891534110155253812163795737990229054167852889905892816378182364260558431409579165118296651880986925321841784693106203735955471320295993999982289433902984585708450908231384080699769150261088626355573629719542772062739798761660919170046255461135300566228080014603717577624577561914451510504624441388812302073584892847876009411359090412229711221605623677650502770563704970130725936940443876400127156012762926872541491893869365393383639284775817587667464826189631116737271406139076299170773742555593501988071790794762654017897808889448616655672723175491470592952850739957234961756213292072535217031127894991535393178281084680059285584369523413949801849252986868390367903331646238569312051889074017731275078260603650236399168401597669651330099109416913145884932609054780103633444636812337875679408510483915085054564525878888797744685742818186492180717048582870034756481643188262589120841562840480970051116915764834121251261532539991159833643046429997565880539907811923567388310479772379121222036142277146884921031101681955874225518258707640291870957515154011735083687757232277793376968102942091777690313597175369245389859371010460850622990476369865936780901159431603824040188997695790821456465586729397837518822569870582154441416767258103423814614188610888227348332933166451146611574223881637025742199771475903480357561480070881114715936811479394062235350809886437760728081874810218093410977531351430809649488482178946720679806542688059553328205095557304542729865176061793955034869123444573302508229247716830929204163640747008292177069549678498822472319043572447980252984959618154910615215597270394949609984860716617744407104662091817548387161745146345986800326255081839835110452628359872029821189101125490000109134201843847201487172169306059537005283078165856320077030126445113247217420202803768543769415932592202432439363234760166579943775479666281221599044692239265150962166711686494391089682192314229592932108087880715207804420591615923676554565081923604935648241448095156782615450342944370484668181462625370416248256138740847832360973960549742995339486268383720517258992008441877504804778301055547469257468390758266991198546783641680217765725392409150129287583028524574719984268614874464528565395563127165052799381515127334653706842261358067019870689958349309846143929164294481687667954691121939007507910231220588642869683325429722347537993221084853017974835312489398312707143386592230786349085323227014627665876950591840625344789819915588995139777088760485142149930628432299298655244183498098336009779939442785081420409247173821891391383312169421340168030275609628053115885369629298035982048765522555363575729314523911316032646720929476913796651684584377200655454677210052187965162640795787716367376532233203831569895363148907521608726591601167741638235850474480036657459296943269607270624993939385933720478409306902278132249480224315653399146056513839252916190851458526763049115042704141004737822665010590514808075336933554221362497101862480359949977593403563773866459103176714126601750871476469138498807241482432648415456548223309891359527676273876181577634922314182557194569727431633896718983325054576715651011371083753311084646522237791036920624836426524147567712746768838172578126602823940621534628538101561367084002020937238746685535001172162590113545137643515541545424966887128528265311505337561754637754327505245533009278751727073540598668231955957863956981804130643871429108107227957334645382991992065196985523307360750323911079908213923349324977116600706769414403705181384808205575451441004075325350191461802941490390112125038538160988984984138849813109344699790597457760019552965145428258693748132450431987867363975676547291002072171065466492356893712884775875452244886986310555366881644411170366611499978981574158954927499483850374488578467100143687175876358348043077707331289857613690125861104111745895208924044579552085933099560884803286834449208206380406228957067364825643023383341129729801840443374970235173394079700183550700298323042884682317467062592364592007671173092495083861110844066258345297678620940367114300179873727310969584986573095263225585669891182467384516735577938707367316291935942203177322560678477346352834867281298878258048925399692128528608886577714031532775070562697244314720387977765367774582325728977242993129564187760333483080566228448785684313695330995407249589052653180431166641146007417716784887269065810432765820735821745112269633640048169349010910332573248149904212827575575344223256184251248288193102212781659088709052541821639500383118475027130002164863363306292420223616375146044808108082973621313078291061201873550672762958214798759780818819990061800888349187109527885622099627022751575716715835915671597703668723042673908416821524368286414695219465811371426045472258302183083673011077735948468351363797644317830440503457884925665227860524232108844579837797344345052939804940081420650938517380960861373447460509954273600466044989221407903684852536424100038268063653815187739136239539345309724325419114216257599875428975194679788909213405903855826367148040131479748057287060465232749643764584665757707727529579134511281792532946725324222504542692917092450730530084665725049141884754254391244622409196538295845126723520698122123722788790162332262694324552682497520115546067195736461052780486201586300904772335500891019102025197511509594184309227693727305060640696665597079451267468036431585930176732967003171522391559673177134965102545496560492080343220775449715590070079007346180420758269467226396206340288491204286814220740816355032858840044616739701201910229690379144774783243608645485775349780614343087797203820147844438931494311701019354259789128858349049938753641267638811499822188891671649535300913991371033375253227350173913301007454948835104538720109135997196988928215478796052102249810530371179310870917052557190632135233957294560669004869520940521740729132165194196357218816132088979774777381530114438286521847954826090970024005145459383377238293377446048171017430188595102794536846550710194841176760533633932371683670238007001002582857699407624516740309138056792056381882007748630606704001083189605314986646227766916314055776386797580393409791589369951166020481824441805375900582022136019416774546831575224864234840313907787115832260730351775172905943511723419904745936699957367248980670954334595818008531191024147886888094599263926899553517697470734757262156273316071754713915962809722832604301468741877310316274289194811538831748690518576642067181804725887211514197347981893473411505282326436838889837280682200372624204254653971768822195064757124170136563710926461083430732884832210975080319687361260886121085088618351952665995928886309702470960417740081587410983657149749168601081953923596079239371471641873179352673995338667140932290559119059112196881258710842030479734003803451683018745244368529170860856296919645753286336758949425176816929699732805933639858622316278532960716121413084261082055228101953132840439734734640098465946673239786632772284811424912878026618679312295140046683256407718974220506608246329576834548381172609448401841732967302529008380117135676382243576169572816945690576283796283878276831769678502477459343218940412498345527317759586388408721588910354215338537810968961961420502172571585692414058903820229498131984107038439510832147868569176906552285611140178540960210270059356003419064485575831733388780831743756509519438348675944086196665725901217944418822653906463671031262485433758630194868963027274071565460103346581096219931787230434750539868879950926478708235247919395051283443759814289635342252152938813894743745825830705973220001214832100101904582109258041440684067861575925545656187019283795437631477609718551898036612954816833921837508793984730329335104486818516006486904501565954808997740443037813673362143030742444131094639406425191629772955173828656103898905540255583731803076455801743894667521115922953589806947143101935099429739768843746924911197195010261023234664728086703088588990997784288797894428409723041665236325039247632448540657209262619835001738278582725033348790339837409164753135529408799786425893952370522019145279365651826559110464503265562980747027079462395894354966516828611501956505683652112732983423658594803274029153293984232156156642803609716664815626691734278924645990093202236827658232668826009620504418517184379950156213328226835418245622080052405379021937467650720842320703376266289125549371845405604101247744339575996908957168583423982137915944495756556121981730290712768362884096434453965511053717094783640512413043048706432969126698816137958186218047006589772461652094051194133562258724092295080898600743456647286681494952176100250709504938589111403632175986609629071630977210372451712155837075232943212930692800352169193787455570059308327803182619341222810749912643827948575400502974855944122976255186914795355781668493018631705467143782933310403161068875414438905966367678719842954827543081791511557266318585969001142891112659298158324574827800744127998993034844446136689675232820501405813165199664099463789571944375922699913400489647932518868241395434667832371160806741851343955368941307512125229795710743085792576623948229433268131427215136099910752533224637241355225110838784983358309207087577122430714276575424773240751512988855740216825186770524391378818871547682315128978051158831723974627551030200916833438671853833482728348574986117609450770582633231378426662344898850028197813049413170232290971667813289671733576284881856170656359171413200357021366568016390074553426756834602970071737486519543907900150929194887553316895024447942498693133181800821799625195509736173181962995742971300592325694355843260579528957384658439762605651692766340155920001406929552020211495008077183709833824383487711249024669491496501839225615951558879650175704234761552273515842130337744930488886650302522147853437535872307539726973620357426361419350601790601656493955975674252571823179006007112920087320330570588298157959055236125133179112607532369989231333780476406804978653812303061496741808802479033531931047953396703311324277384237652102966816125916230805816463603718902618681341219837584488330767587790267187975166073909496041399688535254060947124423900048271571914303815945884052192696632152923813026545916672961659857203381149011656984156596019338716217036378145794542235009596552319108951979589716476586921235915447706291141613884839488796769856226715694338974483017983827898086508753820742545998106825406042183968408231745676094052677554767346519271026420151031547819551344147269138018778932616493357012528807378427891737999284875682746683233870095009955871407474177001930570670676798779778254560954794422378573930358073858097156516731858157473682641699537251028600389413054315864017696336636207672149456748554710142672549817989783251755425475016311775859014082572046496316859981906371031758851807645390193516087372320311859820056788226040820428048648209994861005336328021003058506705049554012202124459907569440202578223838098360550570764599922656168356230574728894085544539254162015070097643683691019861599915296265481531019275934057521508593131452586202115882292973894077067526090946468356510234762028393549463056483248287080413818492490635432103751929743880127195713509132813749563228331406808494685217313238113123426717986820176721603466884674688179289242093568400712434615432458538983863001198817288461316552123018014199146920866683051300200180058491887733261824958237635837602632487404810151495683976054489884629019149527214968032885252265022022838836427214163296091585079283151354735029678942683904412875071262411473387876594518515292847575155881506501787770198825285691406519063176012060807864548740230561823707566721513444279130306197625622332793158878870214710780573450262384379081031850123359881012073693504753325047890651421613119126874329411630379417199738438883198587703943619561777050533439179175187624485087359449952632283101616138508070001094985514198832841357017568788053291878437570377690957317387662497286996225761551887576145923469225548097095437339257504161428788201291699964682711071096767077155744768225863352643995845714794664354218195929684554891212990748935122321948109400238775330549061823469542915568181305428079398025987540643902358052454163523527497523084036123783250521603946299294208866132333826270767503233879863792232000498354899396144839987406898210190456191127946651699163520822985186731704839487748689282201323357144907618806014823554328247240586406675434971845559580621265701344404570024388725170000916623187772357588233990869226564934304645803368185328091565704107931127019987452688071633997111042902261352273068989595176827936771639497851175237339181926338953484673522627306081438900724803874462562716851884111326427855293631078445971967329601772362293668671579087981483336335116483880863766811393160916486712800056307492524796512283637348222438590663996286566907686838234199915007702002264965991315748676261261039514932528346224032652160665541660788861474160086001503819074410328307931251183810662224277265519959729956663133144006254162583274138250169453479769869889042148278118042253724006704380257271893426802298639110744650876190395683267036350374701058955274030766595038089323800399873347213622272544816203459732059281386781041282304661392572644035082520619228363640986159464953251116592931569421651007453248740624149402652092211821050564348237157916659001638726113079366641732115899515517285382425095896211517764577041630717037350391502116042966189486209836749251712399406723227605753020040180127259898350214659870826925992956519333088725708290200651939614403499949045128343811537031320150352709425889981660973253058770009312600350448399084831351367198439719170586228057582646618376006446040684961228026003418119703363235749675466771550925013609458038399865784327211366811724498543324415794337289984566512812389727407148672753477450143184385231833334926791856591343700244898286566954660567708722382013126103999940221594665692249073799924350006220486970601723296475628469124254740589742060846618263584486439675293011522295978948890528274862092818059886665346164640527827191170178752322174648744559196698065055502826593913413593389492446289368168635681386539866577573610063392164289535457625265172921559494112266714357868628115828598064345011575191234368499434467510382105137043737778272960717292744822686346551051828387406740981388446617528501151016696273833595213329354243007506439129080495971001881788142399181823202603325879163162374955500892712153697180295867216709350178433752303417241659911395594816799376334560412575082134728371138999606529643140453782836412666158001279410895527641294689098491276908629131918626739774811032708940455932967798655865037356012779373199181454991811722892085820846832965310378070910255579980226254679213582462669362056051166296157230730611522951465399280870071801121733765741607772088398165122184584730176221349568154386105933044053629591306575584299092743347137365176992731064681941706896977645343584896490559453224678027389563638524033243406475162729301650732609604064363295842083614815710963036812496095031371984397613838614317236764061185977388237897210454157365310551004342672064685391276024528857362296801527321727555361747740730863030880548295785459625525442191113746210772745775157926674706614019394524980067073765114375999531346078849383739189787628122895425421707901229257955675254637663014705557446910697864296796395150077671042319154655851561476645152450868560986578447251624654105256654707183629866453747413541443439584486609109489260577581980021842054786035001184382660640929543919816417632237052955892095693669682696869836617084470720397499166236249759144483475716206806159371719498887314110464992096453232055217829871537732442274177568639838189475257293903034567134137871443717068355224700039173047184215156342316745587077864243975346631476370020665162787627193387775206538199199326011104786401554179685326007160445239473503197375550356611003637413220723483322787407656564646247345326813584145620179081734499064289508694855875952924742121693956075652677524770667498875165684825376606831376420766947264655479308785086053186356328745070604605701896604990382073624328306560680459000811905788566436776564397174477963248587877946641424834758137767153598416673855759049267293145927764427151948567800949015854275126211363107184193337184106289487876187496688988469510806369057932620624080525155974036350137133097943915972220069477473756169166425680884641448074943223310713225520742361678966765329538003335129771769828681826858555097613507292322666414905079446573737821014186346688892164644568088244390304252099719963542093445248734546088158951617934961622256989810380345749704456010531191407745758415215156237485334201798479788555152556970191041893628168575471712372250389530244937403566926634538879662537608432653778390418113620590699484682879842647432035637720508068435509329711511027603526486427649022575093607771349521829221072403662962292186071743334713840670394148020877801779863031035249705570656803601794558771646247051109139741350713253477141809493357618406495186941094414697609062537282387986383806763163197049663799882486419950695363132752193436163688485395126461802807829072635811928230538280873680003553626089638033499689791690271590670499315895353920350447514227779855244923955846112662626213165964450254330768944870703022979035003660077163596750714332693120161418972119522609531486608111566956152984777976047519994471624093640239803932579615907409337138366565714803522300657530574739858596376252171358535975953027639433774535849704745392323216278223798964704190323641839507981655664217214313565788882046730531630874100795485302501342165353552289515979308068019955696785545632624727715176774526775068863409915967301610549230449450815382033895686249669996439727126912939272199131081774087765158779457935293990124548313979932684424280679507088794610527173207873149008434252145621018281328980059848243146329901390384309311146363100976278545328954781375472107092814560712856140063723919429169302925487802351055256126762790089245955328555239603221339604741218166728605346887247006514294958483595558084537712460781450617710017974186326592414935254399127864001970209661144577727481738538434006898519875628495300685701607358950679337363348075087299092865786542605571477599468741585707539940389566206235357111716730720917419898134950923621388092849999724834418033325081263233012402939640500917787638596620243029467912308469466128265038508176839587464523352476916962630393824774918882411497201065068287612686234881203946115044879936494332793868579082551200185113272514537069765015788113691272675953230832436819715637092502597792960266255016351173283959220421143030229943976320942734766874174530528538108968813724130401595369218154713911097718188154826185430746114167540763171781665351834962935781197581797752061392687380900923089605216001827165876791858358595672558766362396033156362516539778082593199474836124625942758877420711411444473859730242320865156326786030107800618048764127857897145044197909337852785507173801358974336646925989202722381770647215341954278291933171493403772182020576029705402794379089269338415665638081010475855806517760497434502491797918353176361385208018371699457618799464873621155143039092209149772760025068417124941929764099661516073174557230919035566109492957677577078167883404721013066432075012903752065330377152340946887982291839033840658338764183159916802147426108469416605805712280986097757744965901991427025045816191190414275567940113284048581245756261349812114439623725951232681259612731326492600239216434222405774525422174000271115822580498827724693288565730077409162626752551492513422822025147120716322283469888672426797971435974616173035047042708358275322431495533895721088233142832863878421332519813989827089988105490350247917504381061568413678680250112260093399430593603660367664151458930891309177009156177908118718299375129628298508390547552572353403159099184650615944498500175889689732007639313358174033837720340266059447446213652756022497552073013598162159052191960413748796096573743065667210703904640407378822489766697949339254055141923703263174611972421139165961445318575012944795964345153488888264139923637806087323542473254027959889567505355960915227554220511967621648663840236497280108427877069842393424594713431259516052981854921023717318014680784774007446798552574230771815003828690053858293271462658496257312846613126607141297283756381239649502579679558731014912473354506233231234305315706113072910759184959020546740226332425020464924886747744505306134527179317783045596976427660091663866976253048672559414136957866030821043175560110301027378137329160921171437390289802085404331722537850050965425545339244205319378992641071778433117402700824044897572910661221888042367810973764062819374799727772926896765619061558563000622930180267412059177913472807552621830476653681664172481678867221728437108076050683132805506325857703861347294080013057102662986029753282724457903941739852387004867971819469793712506513259763200178560446577970802070397146683555643973293500186652953889007343042049082161912609455119878268511162729073217842877049362008285987554569975636271891462957255573955448501910367548260404081190559454296843833950050396548383051003471371633327533415591767568464952138813975978844902687573611037323058777514879550081380391819977247611313659135745806516501981086429178488695171255271398066156722613059862386227622537517816320871025464037428399574535654025427336851642619676074698801332712284547680270766325260556404488314553927099644248001515448450175809223617659992459670756521340564290227831306140049354507357213045346716742380270079130689289763529408127672797721695448062499295000413437395351098813645434040329303306722754132317558615493893752625540131527442515648175541437963767056363977446518870089737101631563749372923195874492684519052395246628871774308962322250279561813847667316127734726413823936455162960656354144136289263243909645312007810483414952023768819894051927348008130686211540126595632275336680897908617941499719589660029853416020004171171264142567032683749338432059222456762569156124517547758585619186750505770699025434559508707076425541723281690901791678686849098509278247821425660400768415904999119826073164159435437594059115081056264461902056273764290723041979004689076367786690915499273642382278060031459829902945562307759868774334748351869736702443189861486345380753144168440421741595090671970381909026033806683543256688261198053240968721183901540775153377381791261002398137558105400942703581511931200408768839120478384004718886177283622415059719996641234627038385904831073840080439518995315000495691717205538150959051319315747752142248841236481974205561477054240637153423393838604427950621201901407378842737543448478424625583109643335719087667099274323190256169695078500980272333723215476156825584542857067260346515106640557588617868838846333895531641367012987872979134430563451257712044868250030445122564031074645815639545615382079038258990599102231911444465281480035312056210955081826826491804923259535058199934260820523659635230611383216211159231343891332221478985714999021545054602658063693177297499666235288246397684522370076429849521115083243788307445649310168173630111328774240324659312413269524361433525258364207479288734123747467654036805390806090932855998322901392656682970258533560579164316565259193639158738439063228362755959256116845105185920628222384060753301416745581764101821370737404320846413841289195939262007678956261056524424956853836657894309100969798707149445248604933302289032286458262845139738122782132670897501189349064069417034368082713775665876475724967939778853627680746538558268220046373629056704900107260586366870878428313425373655848593211213108442384855803880731348459732895681413760890474464524534075068306002371013712314577652175088352426234559771275919219557029572396364245993039474846149430648204850785487617608653626931871648846408294309629138672074095654432618950072185053727485555881556781699483705263255785049334062335938443440885999059222160477706218158101943927911144685485009054996375956838799349657644839556611073406193473697771220619231918591187361596548463913182754950289154953104206719725597377856764757796408138164633640115521694240334249052652087884886837223179535856337091245221059014984170517596149377607533884144512388067146927954313333869831146583815595585964965641999860457141582515493766058463211587785937800407002686039061085023886357330246669218142924445051469973189818390333837841495471057479547584621305684889790169035128734600333393811773594149163824712706416282008060990113695465587971756405259043116411569527261397285336882779818285105128695161093719275580896221328869673184698435833586678397405440783940010834742940122702341011630905379879167194929760359455237580524366714358838905498761214844872900539490331075842502488430146934105971757561137544536414749705466264215674831425714063041209399444071949565100149046183803357515730976623529088323835815627735745124128045976438164490249106271974484425294355232604352786113641338755659249241014987016770414583773301921556813775082289610072414539751232944309787287387274661120673817113468381335310359704561928965706837701056280687811613200517474049796169859432801826811098651819858620412417032663853605861644740765954855975836156115420259151579281366050403726988769537973204942789981382694762513976697000182972062025988061455455506758848128322940808709695647993010248516900410605845188984200270858836156559564900518255402987693089664818834939613973723279214134951308084984115432442666475959018516893762959679587680886244064419760434603316869729681660594002250351892381390704266362220189517440158815911235636734869008786161578359348864620868799531304941392236841036918594479488878748117164461961788950912144773060122189298850782404756856703852189511209079004048859719042516156615419833629769503535145408171587033809361421920658263608440715845859319412574145592304425494840794058688599991016180385162355093446491910040127293956281409920608555399693302762414954475982009888072216021034167072310516284357583849738890549049517331506791096627965863468062437914502113748071528886447860284762680615468930719862337931461815533093945799878001028991348386946829675069114422881114443957703714359758632487996301375563630467176795156723533929810958438556993179878326833583910823236919359098653388293277010887830811665315132702649239671790678956740782722352138479573754015036810166454992512981201246243274648706725412645162713623870229093862467552977242720880600843774249120235152231121961048585465072335188849742979600936163741632273455144824820217583406198846390798233292446237138661685153427913423052026189711334210150137604184413181889955425465324409342234184004042829488285948521270271854689899618372733826119015846638318241538760035373498582059837368805628142638866423912581411920556438498146397137237943869695804047303565967245518363889210011445049661209514293214046083473748864887294421996607650434142634918907019121568190811805468428608675208082743614817181014311705551471792686542245581274479656186822241782583479421545626695260366131755869612488940148094032835271133344364644099358081838518077984190599347579215274237578306227241648490788113726758800264361169170657172055255863719741955752507718419282851501980632607847588393304341806924712574984650425055271120363033254074049030564839134433673679301746024584857819407738445380878089992174546169185618544050807928463810261611129720089507636927569346114955031549711386115173861890620709723699203421237282213870341064993783777540273028891320217872919190272912968697740888346165797018082635316072865322842865983677827481051473802809297350657250872440650621279096707540763504952509431042506911145248382523388933793062637180060366936568951225197159087705825094711947755481920554407060292765372013558431857072879179342192594051827520686910595985535226308745817203722971273389309855688238435170390897856726537794303556181933572988291388572679990371056692793161335799148712307241800529044227206581406114079525647472576985104710565758911401249221107057490313163950589601242881127491128465647923568318065354657037032420573301463690093683237983830754432154972295039964671488490477479653245850712854227144340298724689201504624414606785809139865683390059445608002577045795015789313524099461672637508108791889837099634823429958872908620208126443403563414757936922186309701763582879773082576522584640983545906479593533212045662967988763652458901782180496813369463773300968433222300771957223757050354993363776888969063444312969406013774975864201621989537363689183800371920057658049765804516246939749827080782715766037970114588113668582395508338395288316779918318139635847548707265817365589688326753618520800916847807236647806738866219564081366743654489089571337323959540047284731878551616553136411159082303944594281920181977651287561879602527762464516463295629565354302289937961849443417027688619124318921471319603005347223545264448620525488203136758890097050842596358813630193036217596917128730015306670788003923186947903520103561511622293710037125301020491955328225098457734581554862688298341944850334273973277049800460495434016085722319123368181938566102837335306712097488272226126279955904867517601910570147579051348720196735387103166220210329160369667645836209875081551470019104970455335822774433072094509454915633799296599418156533501393712914417262264613754856373462849762063009732467340047914989195044890478066696862749948168945233972492939482568533552399703407523087642372780087086269457818099332737047513051679923117747918535669483254784197033881762146466716483360014433791224688123309902984930981833984272590471457622858275615988990862072551387347317069976007609941967586273396171741537176436991963325533650552295916813786617545665989016689889079374407899769361230213518517019367949048490033285211357005671913822909868723307561718658737552024028353419037301315343518361731330290380102516745390074757497300281989628994070514329018048540266212197529087521310814397359189016152386263515293021579045365718798320659380518806742505281332019234535007057425366790381469187793492293342386940896842935924574669807337905127603405548817225396418344733658156204413408504811902274564519801146920138156370766821373254572682634288609848393828943861199867975522150402964649115613170443543864726042759784885193131817349432835221302229398601054300868133633229847604099305130395503821784310028367795881151475185084259813823999560964854094798596834436530955500750613489337099503961675345396227106024436421782524282864825817242547241981191746467021920878279022554843952075670124397855781881922778363355435616128499683906859306369310396966347841778587288869490039750288850390687291003606871779920973823102691243029933915902872288618821621427177229395136318446135013814632408263803743450632337963051269031257533932182604057800733479260318057738762841024755707177516795225053022254656368854105649284601466628506228565502248076713324308658971417575923579793683835286765346474703776140057878077479552383406376508998547875571835092384589872228178361994331906846639632479929089526190242766731100196693123223205404169106388548904674310662423456525610221461459272632867072144048493779613318813952422131416412188828288158173809360558440418836506597108099654614564546740833308343683284706571157873366658719597440071692833946584056115844873514805452421223497010962759967365290459339254504294039682594098726864664069460966303184247953059181129592203583665839702983691368046940272419383745342571584349115845229815196409601016534578124674022069952705807922857441417484090694101728883075576662597205776352485017011550226943694850982326945721386805677420028815795074097439986604193929736533378649840514847619018164650891170784776607064486259207424940685901584160652926498279170319023870355301239616375004249563185466922249441841564867167200670725894477159108764718204216865983271183613767342722957360571140751311846843351490292789769490886207075793833341459257809140121963554265103273208940617168084538886078576161245324436604204094638149491363581058642033772846523783387227344007705182696839239055091980093739708644296184374183590108589973915277023670276616505266877742140668609312836381675667534561013289247803690310134046346003457322869182201977971046781491330811335962411010255358956206913766446395901539430626137197655170619564596275807408708833612568566949036445827141562852986555388833570724759996843429432987388867579448758607823197238009092846081756143902107565433144519437911912933037846011337423491579057021565172011632041772819887697364126056698801120542748404786210783037052470159510390392777809920145635511846747143209271734863376387402408804032087518895626962624474932565204862263415264167890703326490040800811501671822935420656382559063408361979926691311906846921884229177260095172049103928608201251498785777850755066041922876725814019028564336810796290733181195846539098098479057528233599812209037047003689383226433448487285293627139164160149403537360698434697019635375778985933545649091461688627090632762888234249845337025209297184106804873589093622824674399130586066550870325087514702949389010626900987967124520635204098587922020515070306865968208291210649740499612221393160429832161434163931815388955985617048498610610318883806413418259527901281711918663340048338606312956820149844550640283299636845216972938840229946613276971804301011886037540538052431201226343251655682904279518576402085533094420826091283226167917631600208029376115730407648485782601562428367418374843497248446664649760569556470695934714719652175264035849801573162103395842991837648419241681509585543850534336005836139329257202743626736523222361408988477607286574244928158008153515580315121300368931507595957911276060622706247491857837328613934070253412866695007922219155558519148479910915453224817903778780175892187742006255937506646039378704202136844554618150434811691990583167462540331176406297214521088546710869938281097432072699985194582686371037369301571102950113200303066903137075117352153843487046411981381441225047203231070797074634072889591658819843234428744972809421279420728279344613120917793402036623901646550597802192631398014307015275993332395331588535976989862057268107252206841804868408977626938641309459985002759321459237907456342364577651197756047707730199993386788650508354166691110266749751706414048072558282033510234466567708237033060660171733507861165250171597689602626755250238890792501645423807081036735901917652501790438047457300103854646689876799394274708469550099036455223955445098020774047183778816120214225302915577055915757106475314589843122128515480557098913274963793698559932157978862658780712708852964640006683292016917817774839323559720438655844637650688815617349608423683111721323441831929775482694361550666564410197075229532373672440220646388172722643870629457150801525007547522868576287242368390278573200254932172802334405753550686368697217606720925197435109267736593676797642667692560440250760586173488962402028778153558596547798181130012869809896313665041001791668721017585948551940638862234181374623750897931301050528313123835857318222807638256951740747620846098579057378356415549651374401257109113907056732796892264354798185687604249374080650656260193442880346823843062136034873439493595967412726315119596342259497449207494632433510436595541044359285881117758445323148491044690022640319718253178714300178977271712042377211811036349815379944682641094376504115409692030718234178221859673886246116665634689344809870735728926075625978313304535237450095462879447793313001507711845714952278179104079419793067354407086835429448987659592158697782237414673556550911792514182662843234553294550005929804344143746174993209985876448944013299276504656513219543972389245452597203771969829775342098315389082254859773755161405139671680719938821127562878399839986687403374949099343908626433147784184217960911826331354797942990138836452794855154739348528591893257795990384121978058090802368333037181101883286404757161996133005394413204410393424873787634001514153961474243442783013802783328325418163447815347674337734024219772659651620103191273011412343829692276810238704929111694439579026911070772517258700510135138809644971187457054338907119162306275576012567814166263494752184020064890946349478984338234594523190006164327025314454903032687718911058245627909099151198487788739581109334429229877547690642827522462839528075880825403666121473089841003479552786698836468870774053426206468772281951701702881509893941342245252344462979764491659251374593133430774244329348708825287365667032004725253571158312127478236839981373311410687089099339970031523596390563783591532753271802550607410640401007466653253831308557800307938683189603994625293987130113382636415194739309645901689207601396012149675623602863405688845023592408423621117186164251495750688151823993815964839282074783634306685917608882166366501545992177070526919889580905164019802468770453314238817089337981305359961924381717652472630875759869885451472105394146254560790916170857669386356824247856952363543016075886398040549937734479190319801214479140345452909841390517490539552020120351112114955622331036053943145477279489968663387213420274967174928712383374017204408515114413555425711074215247390671946247592114395412105619908846552773640102538882811602143451676057431616080554796884177976683098595232695273632507798383282890024601413332363850373975619944285311797946454047831884125630726591362381207425635373286028991694460958694300090317363832782959282150829481779411871352876201651175805829795666754207173986222025731892899079144563590231573183960253676015018676909748474685526511211826081624587480449611081358536056655618844137665376182601336055734573822249638617157936890283359861097552245878525440629704994279284637294006221320341806343422457417582370980543226849245869027751478801927672690222217832740645688441534499422863585957158911410193214550777859920063031176050373453811584721168728114035886885580600825198306389530186476858323539700970643873994260531831912932800284675154691437483979031551960277109237040548053438350339704586425893002123715809494174642122287470844429245547928581186809612023482437707212314681946343292854568468529724746162475092480454636484779657358989117114188908105197934622072742668405329320824803236220538556686211125998681801778923308517784171385775984013998282426756310562484968000995630659653465382275039090978126446469328822051450647753499930507403153789711159473720444589410344142577201212535854164815902761696696081220424184551517922651396417307898389267377143783693099454268567495951421814261468040932576140285441542840748557806701121239882462083177296540400762686504788162373111211518552314866687305091449862244541843643961346525785362071736341142813956329183351604486216391807974943759535162567477309578222596546626788400730735752808054172522312133457482167717139703214177543768909171956918821898517067481140981197770394694543103297758458306160917473932114282915833841474962999442945984267234629156664667156564187471432166923500227955344822250500661781648987257556273122025021515484720968640541175528355744142920351142208352230200183774385860993638235658799161290568343198890548567739256465562126632097579576155666627241373608122936061067976586400477480436371618298163947163235708005295360184543214053092842469804578891243467637493207392988858699560931241612680734442338628389483658216867424559790525886022312481026789735965527406797490053302316276959741478106653031027354510633513628114800167920515821495731564993786624523089004549869672699789894223980763919908526915415712602183008211482549130046733113537505710143077794950553604891766942409359642742225125905748757761804144173125909254931195088911773202845942103595046910250242031351271416059771933325800830562553949828054895965413319253816370646577285362220998404501269285727171347763684837843021463539680180859200979866150463778989508568424350569519915751351787209989578736311414047205199945415442630527028600065151506182435537993654381288987202832583780131255366426147181303797504992472874054315987774561891906419342461148493679758001095162598063161369857436667102345083832600057413927074132237941626587166192240820818239364579276408901707051419812185178298925859471877161312250474852235592427405574744531613500381362015308521751624454871581611770340235290199686258367271819946947341971382587141894920294287630853789138158498455457554472980036536877699441604251494824297739063486897033572938919308721704756273315728569701245604465295373711811471388536191749201082106606765865455651360909923234463530589160501629523085046526066741640994546656615838194724342802879689820524390048957243509911600851088504129974023654465364440354716042106424281616324452862246003125120105003423979835779526024816973121332622984450006985369930478641580222770829593126365231034048173466326495792696756680017771259868471841622745192774740134087664276698382535109551644058399021864840949253840215532067119817983627711527339699049348830366446950695147549439415052769035025942792490734288913115026374338098709791191311750608761524779829037246320236007097496575909428347010453462897744041031806896936108416471537006739835149586490786784414945447859894016085852108793754576720641173349390270322652987972987105083416501648740703356869491014271392747248897370855296493979849685028914112369676777338766821476599337643724213921880240768362085529271863864666693660475869562648505014205616564728866298479669781235670658914023344244331788134456194224270299674434763898378849953898149181568190993217277320150965691959329691049017133638858506969513615139204990248190552646121313006539496505505947341025510279572118957003130129977480321525390451470744023786464021985637036880736900202636857500599132422092665627755959393050081018984398120551390948724466901835915564314564103179761004396113191309947480499691091322789042985124127429815272555946849393168998795871385270062298100556923013400218784856595756639749249831260005224881988655006151599537088477296761526846072167921878171428261572740990711872336282434699043784651248445911786543427568102361002821730086182854783312988959399851568389173082256400263028358016748381024081737277023555796286735379341556569981827983438007427349278112744102229420710990902833971246119811211273449839357380829520557188422721472166224739777998741762147372306371813104644695107383630952161818326628442150008354528797049540629871692509783813226531480355261437332842649408155817714567364637046290029690603776354748514278910302716306855606502007608632741728785627687082901772631023348801809758485457577717111912329568367451032084611183549511296790821476364287730904932833839434807545753096402260340729597768807018166465021364113448816878231990133823728966128060979851193087521838257506810698122220916679779889314902560156123731406206449119428154993325237265308828017801039714284620979183837450771239134338906259043732075688221260720332343827434691762275773016098594593974254351283396303908414519479237751305722944447076562516884294254749415311948284580928919459138847976308570888822279778664642106516988957780601692215534519415871548601158064517448688224975146041265401106869509153969001492762866761991472087931466155973305222239147759397540635342534021278717740519518015094652901664647568486241693026914271829659638721124156338649229648852480917427082272398312408480021394572466785958269147371138788117294922975940106819455368833817377217095835878490301788398897740439568580120529757094030928413390973215956499103834566298590503146698727974385782378436125491266996095034413287733550818917651526908092968569622468607553547004041363287780347992402483149738493714120043059024935170091910434880864146779165425756083901096707913804579104793993538956176949126986732891836588745162280180643200635825692904585388958110114715291245946212007694996201585008202924933604377947705599471535101259387540170994577293124923208474209946541504482482294829047718322051773215543986716790211777799537117027053753638204614127247094086080745455063377654782400878670981039470825111822281598673365303006897777648647439887499648987835503250002366967021323536145479220438300256201595424812254609689412527990448563176896266795120367968514428696580786608140954938754370567640370727176473669227984595030822157134005149378330784568047390541528431843979504045267904579095914856611149411950463798924679876614769607379100116508768347337633643823299563352411206502269264230408070461765582294404033603387169569407537441728373463425916227170860023595455053725538175335333702121807111861699282594217499403390402859805102650592380319272328584670010488741254888366790691965548594413845515319767659120002542379133327526208156173985059100904666446158612052062312805732708636534088397023501207252861229026320073275840226857025242455491658170123466231590888776875079612778959972628676868776798169269039142022732588936161665802508292806556723686533764840932669562703046201805071889737166705234806754189738993356872146220521347624106177193180398765436991180977354862048311912886030706725220740338961736628721881357901038199483114129421636983878534939243405565426669520950728736613636646964335678574710597955364872247470929118963233867075597022652959217467752595546472109362624283601412525714619261435589511170960791344562839360209702721055845374054076259304674604210998900093951919676283170742026028787890369345618952482315426202875096754506027402064252389806835092669895641745195283890749115076387653425179656079809258124048070087945737011170455511108283384622252940952089753223249582779691532274888302248030173640897485313783161834093721962223721491120178604574161002044117048094514423798559461776493164310998727453096401113817783855417950970818879899864981830090636323831740275056626068306665453959275802679090151048915323504475779219165280508039573313997073315279819324838241740146784490146706585716405020395713970923746945515696405786440755338581971535061729040128423968840608319382094141690161720130855377845179060022781005133571138905119851576387846468525794955865646936407795374027775395714315030301153966161054478326985543810724740117395818518389803825011054012372190804033375004880057540654531408730712194787254342865730875715392709132742632447252305966105275606557752863464747887240872858451908391033161705130296874564672544444832189294871168791320557185257682577550140204572515782282967932935677017846178185116644851002356288489431904292993658867306067621203322779488430107542240930939450883838920159691974410014961078080383637206149552169336274519371550068812947044166273662562558557005519656894687587806496146937278840352131274391185135555581133788333281026158226395362280640927303133260302890109250812870924867550623454717171093799988452259561639276355950664941534425097475124374638963216176118759517090193154373839618979776855595831923363229765364460931245034202789238290584031557446364205207480327523861253156503721691483429180212975759835237963101652197443747842302318776869064660156487393804479353223514368282749436320851973627186518654014660356261545943996970551971932882545498287021055672836940903529506154114758632116310849320452839802614835478242519617042813169506520646667945216973920987066338387487410705824599113876535891353027816041467057585443029356503006937450659067866477267233955024840259657932729493136885980000175036609492476831320885785399884894213844384512287984243909329056293264119870143092481714892279528493222307720224701933040441740009888153162426523325120494252819250526908326845632684969383142779305786343838041840278826690267827075205288751151813505351566324265819775755927723984153374218887299137139632430352697703071858552118933063718096448457283740280663559787651372675227607903634223705726636028321241887836778754561974915373107084583883023600589528803345116472253577707185060672165802857403432424745836431439917961931044942894875697132953431868982807724074378955702576503869873731001093044893182369062904172557972935231840479707568012721488541300771698549617278330164337830432894672107339355102854023016032508684500605358497749786332699211203912247618692975123753132012072040241643217757021878885422980832941830257603764321487890784344817734344061313467338365683101642915592751957859087982402919262231548451666812496578967024767104759824824473436332884290965007262342217280020127145460511880713913705892344097786929255971144913997221094858245426584600512921495709885000561355656984538462560034916331772025556880599124852727960367186805835707761618246868507670981912353863216967973814418391504134139725194473918610360000975152394056940356912762973428352827236814956812956500255146143058887512939442965544071073409888458904476617665213209899049202038089558041974358914247770563636382591555745319814770799736718684186079527749351950827007220488119799730333265342735803080595778923900520940520578277904462034955853779299858119505053832371687312652839791344781328665262510236497562352323347526030538490479513114383533465662442826781658246593973887801737888022597812286977455740087965152654032624398195756341828002263781517977448365025141016836084091833208116089264715382140489605464089351265397899108328407304319588393409728776133589252262428357178785825345390034671684833706831365121628985368662205920544144988123497140887801593293463327739794911469550736069021333790596759759317319937042020973689114375067828964231731733818922916662055536527007122199257118296208560145670507375361028287751595679199649808181763786888085557747561420896157301739882438238948577299839480932773503427928052570764452916370810128141239299017360255135589970082197471866034486933975102724826889253632488166509664102043044993612473426693579258751029994978838257404584140003445873703820104875327098986542643590993592265345194358609093058753369977056579712888887823378544174178642530699918280348431195570422799963686846966238802341100658698365926186662152418210055633184602523869358266635681142423924643479268138352284305820127633994392139326287909149584964725268567440450145752730161463003618746648620523215666433276537638884866766809660684899633972741799287938776589759383226993171282867217764771131722251563983812450091831579381391397858273447847801161267666368272853143730377613476459317507050307109888740802571704034086477806177353561302850127859222815602929649895756406502802561307410991326797306002920168994564378772642987429201808341075142743617842645227266347863233405113291709974470042464534112583173782316140196244602284327353360747768790079647855997934958646223112199698402045448555013616835920665284110899923873908566950732553634177061718571539352169900134070924897517943787897767060783501268236269267007873359997935728838597772870280996484085790783363941043008050655229406258013705083498540144705844147452651257248113048083021234761152758969702770907647281514357476119886504726982704227846599431490531221388998238799488062131609135793337609480948854347260897575986004485702407480430413467082392001161339882384107491403676541604990892968631773934391972075648314555811575377317598258311338009768920891357811369376837865596261452042247263355163383766257590520595830842300158057905162893883622361387476929693709602934620540597167954667806111253430699212973821739912431462313109995598286181028767895231389324708238842326655208002521497492906569483915027239297743327342232977603480421515997458964298016930069544155560341174480953182932504289933262187606804916263295890883839476016128877960739244543346465229818988852816885059593591500471127909961804333327593349838865287351207349641265114825449464270390271483279442235484159868686666318587918299794171691275249694139910666863657525324476209144096503812219392004668633578545823254557746218209423483545087203622343558591997224767088809034203342772476962725810089265799536235457661291816835023276064511355629848689134927645530039600669393759878909516498625740321731956610328715744271719391329241629993912177944085422841087622621881753185041669758967716106030846500775453683104094199856393415738546605403184628756712586269041711714957157279053726389951949124160381349301067553142997719243472476595176147293488040093101730629300310379373325551046640587536066279815555874900778656814375232952596859744502073614296071739603470838317493427229968698755418609805717495138068367262252170598885052060516276158685142937642509165661108067486299395764062206605714751472687662269850270690221592574327571688678874315293438199848609401430468463093968786675330448225359414880500305487898158802235543924181709948990224645368790111986779430907609286653752060683668696068474674038537750209884672675710925676287673546558755720534151105869481076177767188303388278727757153717679830106887420746565331767955634099175278285562176151181147482657213431491436704010800932966975524981961708347224761197636471246673066768255134229190094093836729754670115909541468386334343072662397948990488479870942341640603147275660184465093451586039997796407128663018571800862698320706151866070287447920659439954763475436131747233198236181965378498965977899961630098452485539786782095345211778722855782232073526332140365780875547646284829441070591491899634177630431695906612068639087914632941920945142961876827324757339638324259327391628918809345372019870440977963743057558590600314824999615814111575311331516293116918219817113926855146567144159478225455494149863204818722578483397607920084894630378070360340462141301212643686640264434915870039694950691871726334281451329736603234420236709754769100459339794015401315180929489162131146518066382911570963698933438683487712230921679109810134274140570136121708832342431439059538772755313678005813027004679034188757098045511179621859731885636610806215896647471503535134413480803920880622681737528890742912787507683062284316122789732484370118280000435184110550077990564789827660278660093829782678940590163559181281773129095527867056181834419712224079172500745079255708747214252393838576355244448845803685052604846555251425773564572997806103472705764802252942755151341814883022526436824468700091989582694897747707266733694884364773726101519884250896573799004648124641304015119162536643274870551387973534731043630372182385832053200594247407994976237412414137373262028597149404028536208544734688492336228911488085096589584811618387267377919235896875644301018073615785715730952554738438705431096189457290083840709494265730718398108463184770089676092543296178264515022791082492678532931395180705750532823839360183024215919068158819732671001683029785937557746721923458910114910953961014134187864021741344526320984638574047797745936879474897077399611452980173825742707406316287928125392158180701293436112614937726029436890037783742814502917518755967093794086444363106293800615919945750639642593914657714743534343436139581360526908386608274790423517333735660792233252109326383856043382803783680163951823163373587622182394799634031712738107163133422385445773638244496816310937560564398458395973158425097661224133658479535635786257542493062434395074550607136307029956965711489388526693610446049485197775815207829796248402999014845676749418930058320868582765640608705073362571027515373026718643379865424549625986920973300617843354995533688806725465453433205204283801055806365261139815198663524862547875655270898640819072204282192160311678156279865840567632045170650927605866314766003848651359789754010658858054993312179275778746839949065586746786741198776928178527934078551410827612222324582728787954473838521806114314200321689856534963828624833200499294485155002973612941968857390924635486831063703869370322958601965708936203512074560020214585431670208199815001328431869201484265324731417372265684017608382792071495033939594277447156297773277869872500925816781852625869528627117439894588669954171393651446449669688494375527247202436227256908003851082244269253853500058591119362654485393969542666290929356330391823685201998122400123114523159340613766575852371956388234784385809326944292458859015349124338952886692259016071132078831022439525658489598191250424644051321934166846972879464102588205679220427197171098356902900559186882903732728232630672523169016896432561547259893273327587405276709764767817799517949574596409395482280855631077716457300445417835243332712175410132795681460383904876032241972315057318355377042576808651221779189395102720186723693619633463746623758483801164102683939651624091075623772163936991350120645380161060766017603122248347220738834994037470264552686928965178332136227709476824496147838409143135139406052389840024340427179681724227642622101229198197158843805204079275745418613384640431974720040291439124549934580918018142607596730538139776276590239343176077129035623210445095800073949189644368273577678249866134792030975898628933086670576505247416345637707134698340636448156637541407531529293337909164541918731037997634872112734153484309073249935809443393377015183614930740422834602393444139291505671170610523739962521655309792828360800854941098111351479706216379071492475369254151693149593085549789051651055810191492699302400090609027537823599053171448136104158288343233309673064675058049289122358136540994974544701792843337997719161320217661807827857152536709056578298283439968582493855604901384537934302851329697009666273755438084017393622454174513770008688975373231665066442709383353337629980572072475464748077265849085253407295588203926325245551050829419040084035477588266665722200950567265577148307542167923774349623599056979381574565430843609094980213456394042075525416337366582688467611892494686858853531790153179778584139238393953201610783711058247410685315418754994851758859958947257021153734112001974361536377787790026905590087513855154413698130462759522408678748326588684662091942295788819862914687578146361984139788662677068084806632680244939245907011845622268363290440023026292848797539850539926127736637841491551961310283745784227086472055608496029504020164164612992285171836144045426320550369480274537912435267078946364364517436420495818441528985199055923066527701162651008449619427496641283500229728297823200321638187053476774418901575861898398416313004538480121398458054250890500880236235835389122689758187006903483692113282145058392658699310815374515547872810818360350753265571834127192293881243851458594812228423360270730454513920235944753043187264790042082420657198448968070030622957183242120101922161451942493260336012655827281692402554096619127436916799214419755896124929689427174873236611009387118649242962427417916020888091950046374838947728921552870303293288132863009526391244776140217492659069614490970022187583193993153877452586888286293078464354303809069382471135526827592676614356472058576792782487536555584723698490859745481337035457770483695009896612457998444095026583704610015981981303012596209767272495806816831376381117726453654712960070161455257281122088346149374913260581725603423733614721327072189011120116535693031742627350067901505864737540346202841277249165820134587350596419394482066930741394931738966366773428576038166682128677830331043530840083919209781343064919927978416234521483524035196857760164031866831123010569062576131403036954303702016443376338773404843694374272462391356007366974881888807690110861393940373694997522099796989723497100518411898720082240311866892788964374870912241754519917270255433623125798819886281239100002512508687060171987475472068220781995873042028319345115718527259823222765646515971233613566204396439946573712374703524103899705198256786461992183605846552312109306217226905649264161389595098757761199853369582935737023607950648023671262766248749733195367725957051525025219128627320708177559786492248927393016461507410066955299322530169576994688530216394143829680580320194511188141992395606264287535428351107395990062190311254145420978331001639127495960348064775101313341173745186183591022807512419335432638880057871440322468929864656063475303064230873673263856052383644161820556266076364561952307541335937833057018290270498129977598555244650927144373565625756296881004461195234735748695636023485408002937386905632134531322618011703293629090445497900533625032900079895465403593021583757105648674713139752843243480307746404892507271117979029356968033165986586654828007912374119851134844692409292423449275338698761147090865446286862514332143639273094473139023081766280935157900545392033050624915495426011785251068715238865791392206008152019355553225718620733708927451452283537429965277571264505287241064658376690584635173565138539225902358581720180160222377207449023472467302319690197558978922168996124786344850089590210687677898888344248923514687633199697114012310447538522098744586686153085357859353528201910708687741553202929570374675570501777026041305709903697487864058540946878975664293212142622016655224438853974212614439337834501559907303244240627326101441943812027123009008868779472624552655280379983011587519183625915812398651381706416343480806629635965130284319918747155665018977299408658642435683656760434469106032837296160514790243297085993291715188565944566226303932987916284490440607308380757054819852404068303372797286130336707861927777980425425809508566907758766189138038542086596394474306247548823852622697606967233652493025973751286487889996216411646429889933682895776979099455100380897676341879407421441703440911866561824352976253566420814409724243951789116712030017257946981688812478474313673510100715439101874669575846489089326131175311048321747928224638670133574269714330185726836220813792600248155994726635578285639157673098263334578211987369549480843313367223401227483048389607249876502711318001242804924287866337405114287161493027289510380038201861844246205147514228432657719567171690507725688499250095919738766348054004275985009198698042726857448978155330591867727542041983886128812578958010615391025970065997042761829381499723062952024988120625847916258260622741081186194921893647048246736674972234015254157263378420799558571447017738923417897690542461942780707985721978089687936761508128958184024016554181481095228609093607839212575054080145349051647996273729111812444428523065774010056582962693815380347642584328710122451005841002512190439083570411184725876577221100047598565342569469922715243751698653615550834980518333005894357382003030439886452258898989198399559574274674070503763893158059348224962376702962938127726016622413846803755193591768120995750868817947051228615328850694874415733261568388635962721579802319571219597731209760945275500066980903479973940608140245718237310132659451101241522170280403626596363591923880962388304550843448173397257793806504329935806355153372594493945398824325516297345899324628676715476961986421652179555472182442729885911093290738599228017835720380160112898934524628247788346913404856784507921495463511782109883056814300113379182207979040624736956305730196287968265079287528714804575138790984434381467194591938849936343894841405182865798413029938189408597589204806214507880454817141474196853606963707889213842163395601290261830194405798854747055189044417306822474746407151711549188350157024900754372220569701573118310169412790040844262014858896928724722547181112904213342949647682702216724925896301528042342135371446321684274084124086940897771760695492983816452474597335134340963628024814842751079022870470794219697608669647222419308508363614513839833393649489869907028934410295838735373939244719189641904035856794886811025894558119609361004161773768537845209440574350059487943886039781544481924094923515878188820640777492064023918847172840957976376974726890765447392761803206440954102342181151087388461933240911919266938523659784714224005521856923280205907681617335565633630556594821429616484149471283847093526546737840445689447603576654006506073424545790503935903964580377280083151745979914137710531742387989892236014988818326415877305957084047027073517083729118157107749834672405541238667553883235106309502557170855335685725590622634324579818865959756606632562575538239015134838994739540484845217616864187431467056960934767240084168430331870826943991305470692063047469616812508334614255517130151807083190509413370297508637212174523020584186002013699478140883382130065408992009245725105704127498485442430043147869741231643106122389464835211124092569799641646896380538747868482513587791149860754044479483471243532601428500821647174613801333631249533529654060327989042865534977171502068749560359693725505703850180079756950109076743250244973461274411206119169943823344816893364059644172470199589971362827809308190104023133962485349464954878803851756763301593037111826839201698034480697063314186207380538508015553408109291810440476716889687430503092411222476503403712709400761115008914517405655585560979908791796601222705446023659581133177511288980237003235697116966378201599416172411358846195580307156610428028364466070253233002925258652918808261858416060323434493159271314016026862638900084803106149450187747308520452720206614674574542284854452150694383827662811860279148510831550296241685172061046064216555759720584288976336065987193314384957126153062976300943081276185330865479769101818723996476020365583432529231184700848297774197400704407826942072156033624423303140414310202279378736024416151683496821076272859187363823876500303301181768784942881295667124382287775414919849769378842218464933982720288601179928852314754536031408427033568547279613024067983951493960029306316554586838484304788610505832404955559539950091368517347119727683146257287071966678288031097615889533595915148231499300340893636431484662151675749246879662910284559331744808513110552069132332111720365836136910289325415000267516234317042155158694490132240000861157778107003649670592879931998042025023495559347342218363333482253179760389148918850064281954526224342744174418059501018512337281336223221053039218306177693061003628584807574836127746621675360774300953169208164992893840065738320225420083229393931302685763504974892706652588646853459818835047659763818905082765760431515256052168661164285397659095898355159564008400944743229716240589846531157380842606713815739488450864914363093529779450472194136295197959920286883917461871493331017720918778074065392184491525168737109909059248328951848468057127891379163191349704566787087415885954934532162774698698206580548623060612052122462481277752214449778241466090870160119341453194379214513662896992721381899476626480648065523131042353803072651408204763817918419496439740122473133220648504949034131865164422263066727611829510534202005617351547651723962985474058524285126697845982620867894779069521484692364522203457528402796137707642718063879482084907610448085420252153105430586398533543606323980388568808907518863281535591495019933929604355301367330793917924986058428876796726834251552094939579173726509769541656772625874812762569437581870963614155779825589596486473653714568046642081338877262582163974721637005654030746214631166998295200130732986870495901933162126833549771342106338433345004922459599735656216395494207173497123356194559301488143778242359451633277959370869780467308651922869201420773642006094806085056867622320923102280285704337362156582093362479256419069722054156354183568275856751844351611880381014713760751170925477318334156666276251494533962166312230673647467692021915462306158022165981343961543593882006596590050945227110364163662610333388361306723534765479582890234416536897081399337603571424215981798290427412517275856844627982693120506699260920205360317570512253600201688889193176829005260845853108196635620801909658598431684057900581858650780955312386939289528563152151016517841680801525973263548405068597304074801485795319578952083634233097890750873180152419606794642437104497520667415135800452192088300040370945691272992743777039227364909775414939995070076152307755029103408534982522346565777581340976971885137480336192242915118257415088565846601243890190273133646044026497909194629198834042362589038463899702407109436709768292008634213754877814205747687966875398726866816500756752090864401085891067592128118988734804651137402487393196559827957214635549378558612502937880135803366669732276663140412909740465986106307667567913583784954686778801111423877608601277829608093780794902289863813176516696280937853933282113590410032737179563557884199819836977450925617373495596035959208397910830867735819689085393212004990844781852596905555319751698247619295132491853845161483441060861326735527252962359073913454270917747712562292762463877201331079365813276590309516035597968838827645626182133104202121554734464121237485337066233952106608062493272318725561880168447213053480357460790487863126088635320787649126490096325142881049571207031905427369570118484029281634772973923221754845437285476227740992311259642007196318369014676264433040836157892643096979619629089578504060587154738586195484565212289578115687174862585345689012814364261685746010916488751296218829998174355437130225755583871348377996362117237088516489596979919205376086694649883019834261879390372432819846818888960660000863827015654247742628238690882185454147538274708324770643130650704161880896845196054749039857520261113535188340418740887762115436224525262702786216607369083897432760923572591227144490401858675662379630867183738543010862972879190692968457492404781195040380786610870150818499418022282436147761428879383804901771947404251828140886652032499834873429984444871611616921580090410168566031452412539217517900876784419825329827496478507063091406262588891738058593340005325883484647211188151550142813179357621411945599606665748517040240659223233491171930701076342643067543253554451965896312030140174961010695234543340479592550948392760098066538372399619015145118349726847679910558404640354312254213606666074451416796023811881312948463289630190570341947844826975508792847814466607411759673494010015256891080985430582241528503280716144109413188238405849147582742184456367637805928336540267526488166784784007764598960545845100150116783715926698475291327408104137089431477800846613175035425602005355280710746575462850598946227142188344517032867485047186461069963629412363201071764563026772359716088797026208975447073866119241874761232024058681373465392078227662576958164135204646845788922716539893382193968878416705925375705185537775872257598695950625803362195468886072428420247821432099358063791951512798848535943728712138207428898011751151485371588095150380985595614560173425463338227693817472499663000137695593613056426184136379940741513736851283620942782553409176923445864349784756271233960667397273992526590931992324042306534641361966936746264517194345469205675960830502833491724788223033228042231102534032354830242631355750416193841865931201780665533691194231659053991318584522692865614354705986162470583605471714177580596002821580066676013110088950456190218979458197140095798031967978765252794456565816661330839043278673104182934304936793660857304536646392915943628618478677083828273558679550948463527677663159005358693482631256651158406725075835932412605873267073012308445176396298149621795567723486501399365912364001768448493700568114255210536337540613356861072675792358012027812005327822267273834920412860255536542345673132954706926687508125607878967974660544291748196931051361787133121087549691091098665788127885544076193983101052334458384179368355379673442422363477306005722657456714343903734498953331452872896220812708990357011634067275127864485516455094686162452944989507519040238446534159154103627847240937992464224608014815551396051359883022898786357963186084086305275591150300508307634529189075383542226721134074805952829941393321303832003929806747280480499161784398559428497588719156968283183291605587313416809029261990619855590481613651826572723171655271045039443355513449444689442273784992357646242240934829844510575234646831712888338736226953644154292083481576374376785071819169196984331890761148542605560634776182905027946362242653667228724659813679571051602175323660784946875076770550061005179118702119911681416069262923514197032117722928033709159156887829598315341023903174754053887607686765459218961272006212352442677939384278919522572057986153315833638556571125279347892311892599359750519022352205243087406380607044074150369478717273691323998977969327804512212192780934239729488827556899526369180799518851200505320051436618792692041264372287284138388782544564236406592050434839712590171806011174445003154871138174621354033337541937336615186799198500406558323956903371008575409858869845507436058673060665140065539040873796203981024642247484057364597889023946159604483658537435310049088109058558843742453141204781459406095283343884390099447479185654607855802238510920577806905548346162209619594342068434671984117165220715262066391482342289248903655094284469082771013915961120723018903543807236831196078810472113466822291400889227979249581520897560257630420853097909856050330767382680003902414151816620867858378062420818846852968462551912022908826185132637320305880656237500365176935584055644760471507056141147718359672471153305238923128606199419736696403859298239849048880806374625350816978431738334531459807146718006305364235050247649724670809943707338781620520546140650409387975853298912626010841894114178380985502553141968469139872895805313092997591356400391587202312568039000212814770981696661436822348890170556922396684533439930494164666052455831550790238312991569764110929376201596801505782861596267703834250332065277138112302186177608974825996204204312368214919658952520796157469676365617703390325318079637379177294574339032667949793189626036701672582750342379631063402228267921314992398163460424938517580268769857010101043216970601358124684953719370643666705217101238740326713411202715328744456959234527477905885264719627201883577142266947990957568887128970765356639822806741594122228605118207933204548705717295446858146075085331393628894381293965176630489853063410073104341645678333430896232707385623255969982360743218183503730385191090868776511429920868172959496977639198556674899798842384891803183566032325064365285356676606911990172654187752340252540454507855233328748272854485328661120704164355306181585173997112208161081757877763853514044463779494505295749403899488828240651207430505233716424762080878435821536113109969697269338223690509633588190852998633579287142526610388119786488543651092644216896282558922561134238432522426123938717255799747795175842970995034646127122297511625652942478975267822552480150418078551442853728308602783804534114685311769833138948638531715262372842902593903321875572976533445202328456888969789537649677028371795223394577074063054438784086526187134008620737550891315306978517211300760290682818058566036819603269249691983787680549581535617309023232567795249937234122082985926049378119687644796004449073054876532427946704327803677742505546826364196644582010551026539428372509382080423775898789872418877653164953984959476867137498383893557963679989073175736199512224049322350345800498348240453359403584831588348065577900245379830245643859231840583393706915943468427041139702427637554931441666648497208478587917890724639737594367139153100599678666769431418542630576901242340953327230745713361875949035701481676619805903592742776585694642304280101445968020469445279101189944856911626488729386554047577235750844448418016061127874661840978048327480247720246714712479353615119302908153405493037648624309545327485814724652082183129700966913930209487062132894845711985712146351096026124870228624983470957286338012540370910765662740641950028844387547677326911070959766100998244402138909657562392463540462496920225232838524056535543826998815104002205257665372226367863222282593028161480701016096853768016565843522918900290914762559686843463300283701067668508394249134871543799698547551043000767231621757362278037173455067822542374513696498753185730228075803518029497663675049733087508914655282218301855644335907900043928719305267511185237424154184301754690462123237269990764153703809511393892497497385364949987175970384113770938415869468746607441056436800430647229124146981672429686076009899577913067845095585716095510180150811354602509419836655264031164983402292614610006197563424181394364440471200737660310899657140501422159831799608025986699992055234407774142546538663272782449262061079918574372472012608141423086309796959533089300344026521596108374748047917808943963865064539261950374132140195319429280209378515063322330291021646517063261439123251750065966100270261216348750118051510080386177317040727094366766878924198126477276348397116174557662325717703934447545185466697353769206537273492370269251737599522771273195722166067093326053203246643836608545749753816250764297524263003736897685106915861075205943125871088378520660531747511236913641110245231143366356818340315759326753164723858695719328175139083257961674835670643597069625487697466784369114545113537786352410534445335279455906824871409999518552093784503632402344809345892215327757589864520887492204720385664199860038645372905436912346188457278188801047080171875857172794310661802581636310848845505049720586000180967709057251120888923319993854206317430326202855008836322480292872749986589776419576188758211120846305334927609048302731710815683205707030353660236259065627330474606373491473487402568460090007671461638384566787662150421318689996467586003091186834079157650892864440099832856182677127988323588665778710618048001156895946890534725484981981515466976874932126215538363311281961732556037059578370452813576852831828867257184137226643482137495348979508008604472755918066184018448390140156557807759040257887602768604332660720517200271343214214916887764739791963775182786327322488593055049260906934869512210330839202232283441779182095674097666988975864033973175720753395596568678183773905841115626722365950960277340096413991162170634565859686886893067145852378962437995212027482828439454165410248319991390467716452346523547218825161617932664203334250386463730991509854516376317387857765023433776841468055866909394413923733250749601238624440608685998271808535703774892909823287741724015621916831278184113818849047382593267161814584465051043006829350509963527782293373700601511426105212691845899180359934052564108952099253272093068702958834071709661575744918739316888186801301776855259503795664989652254767499478486405240893456323941087853089525232219889175352671209712697072976806825133684860611945798442445587993281492100845253976069651667854904510457404605434603852056601644131455032825262695793969435258014356452056188322913100502482379829262043038460782615358912624946070590749468727955949354242683678856452248348738036190702070728808640402023511868335217214360753222809712146142049214457751481726100241551139587829182159244005300336807330525720863249560431968161176670861445231821033767039183698235562023336571429962647832591410255469622528522656411521647192382332719841159720670536285709740345413044298107788027024361676081957184072457586059913683723582641020962307980191068245336753086176498028973917104537455465869959757584779280556745277163928600906325978920617889474976844963583548272913119997783294796711079794155519210740741531801651875480701648937219456744159171176538707397617674408591906112582040728496895749549955979397523409586434879367226739519263305561333016954691196206450539175628346445847794993991028468025399366968707258071703710199488976388643553756046809061821114774869027785600495582917704342621579360938934108473034330639670541934481715820238929940664465771702804263453491651532601499761075175181872293427130933439655805683983344788819641378576861825517458609486582672126303206409909963956812307162383513080514641450071383049409152957080103524557318257032232331349002077565392910379349244443613782108344166504606923983007329861098317712000556562703065608011317089968919204142370640600154383263196944948249836577743169988788183801530603352680125693381836948494544451110331486877256776070127936218968454925294296171360654046037870162532353286677735762897642558029099453948115183256630548788237629824026899988087283081526825359866650167594827746103425833898341902895255254774099294878529655256483413692087125951329646816515810617747415588481006610739037499641437268077605575369489970964587731712396138148930184371409414846760443984933389887684839549557849403986372304668157189098476571342347321226716649865450431006690844335440674032797954019065957437028340200901441118091061222123388315008638867431297368779902895751058227434914072043722312903487332750765562285339190107916927469163343056809612766637489807466779452617675413237073349778086977873613636295933777563397243059014504268525018635175856171533233916638121173654622936182645405466588650804766664848936374784746914422192633357042619900955032391259877594519035254096543082323142390916297911602876398109475435788735126925699229172737326452653696000669176908590708168561322474864238337008177331366567985736003005314530105165416275580026832361394028993829619413992834402747016710284740767727758665470490305749817463062037497863460408651365138875112804569708706269997134809223775195450472000035797795826035784301615107217306580108588755503167563221604181712559143661664903399875268230271576750254100608786400003001002947082486268355939761584629245660804789294830164599640422733030879927039258396230767926216734685618160786325554214145720187901509362992777316806425654444874239107414731786598608679172874889666084323886760947666522128410738889264965125583135562426373033462523670182840736924864347568091972785347101164200738262094204881503127411579223568006945596752453568593163948648310198498830728711199090248766097353104480187520464365508723752331640070124672063558848720004097047907226438175505269466802850582908441624635302779465080200141849123649381733006866751354151849718240189839101921482760906228773750257068983115517950442265571002645370943942163979822980922319585452624133895039019270676759310938833170601258631645388874122989367796868594314026259919470822574836599020560647338165240183797282405638662238829592045148981215221782656562805234235784602732788734369282923298990318660659856440484951929688533087013490102423378293844164270157250238210456276491237597736628520289629812226460052363170661953833310627171307720062155010420368289526345886184719512074736709952134929593769356218118351794909690313119156392569917547034787576616610474127827331614103636971983819120044320786879849041579416308669014439804618040831019845325634370670697152044334539023610395458504607580570851710071471522202975483285741880564856035109322190144116937298238793226777389223081849630237192260224475011544607689421028140473430772549967176109811946146201165448105558197748637838636067418569827212440387344317107930485781285488263807128865705132659966734568632668217875018591056944933420362429699884994243776010422137607787183230164241677246114379293653807244977139888593225180671307828590199864478276812122102831844505636487559489133570000044055226432919477337091045426841686408134105511946353420476059256294048287634724105275998505201872688638872081848442424987863569372396903798484241042351935545612685177098706226032873784328486398315182296036882296355789799056850939158780400021849725997735339430279175214961893508684594756808566861387507417204516099084804595566131652947733363940855618178956830488569725039286895153992488048243019613228724671464982020075947915738991244730242956486005098584171654931037507907156262326787738757020851228798587260987305914381445930328413751336113484151307800322369352691544022221793015300765874971453341471842483562319234248019193703318973476282408789528269634933323361933685251390496247503979219834020217916971807427616459790924180698212634879044868371554142977077600270368796596812665548205065051017967523449316157669458535983275855449438238757208359800682194563547930671430595352001695756750026238800495748196200637085405051947457887320412796118046534405303028286114581559750779456745496547931864249663502411025177929128047517871024964085682168805706674876531698513378842503886114722714265679615041337646748903844382350865415049263712075399846624979759925541053865295637486209638600383722001547362576490287176992497156072885517946613140147750293782012446007384141748386081931585397882144544955994415048157616001691730356692896037337808811323674801469465615913829571425542199979821344687834955025897546732210819929502137655798655906788344354690241682670790801993308722753368066596014040950213285049539593865533462177102571959951631931364011802881459690763080199583844625237823294925723476861257365948481444809946708126446410704086763907712434483899637631253433649860750692956177604179919760099635880136124988512360906499631647577151738362289612401752482186050832942726778665408737011369861449541379292193538041718849100384439915297601631349255735170501782363868658766894652378968197489197983539245093171767667702936463666583566421377289582074840693823585232844446701708187498173402194808929198747359137117619081395548481987452458793307053256229361384513826878258483790634831808871860892712816553210488620823143327063548448378668167681002381622315241456108373651381631291722596515094656971695129076615585429425541718411705730782445074621806650961140188713543208380066153215507374928122760784279521727519472783797467270330121143868964830434523169536893858632939736554952287895350105233084084273766530158954937950871790655652361954972019710466102487493885310684265334788753872943673353606615236450718585595314157867730726647039039451684019820759443944062497303601514110433497406786990492849061084024009265837137086513898079499771135234922376827160223818983418537912064712859696012565874033688109397319703231442361418105906857648546911502441799324799509578881642169720464484217623102022976191283124828916707707146768222919815709722679866554433023695220622606802228005255885883009602255250844869821748159880147064790751483400353204154087808662209971115600823161697579338039871233484172378974244616801441258007320695897425637534896599444182262298823670672543319466048738887846996109842174233481599334270904155048293118862264409421460863003926639738251203253350672858946634611671338877268513450777396399414206489702110838684666278953792489506128054305482497407104476050167269560078455797348286825556655809244467783076153873517205585645086297410862271311729101329695625952273358581968796263964255039810707166023792657349114132893594206941428742088777266473014327472896306783395073528944832350345792202321547675071849254585542960218823188844302774936236228813211124780280353278019197172376268461940252459028655384031805063756983175325785604994277932429425981193506030307735663546990425798968495825478970248455548130760560138789552298364898590082981849621587243149853049873226648976633445383211262389283535588541724215787111743365551692848397582536912755214641166907475041065532970665449167585989485806072870125642681165417969419910070402374828733538829695566721360481756219291508202482633692296664842495197695376997374464928366294386774994706786419894735233620684229319728261777218379690919997280906401773433740980551342769231940401083406718405998613062935575956494173935713853672152001119651351497717710469111285380646773673159352622305652228120394963035616667563690181238883425255767972002330205844539097364498474723528790625065085067324092458338179672375090220444264230695422356504485306857742976563347377489073227130105857365007843879286156380402722781242511432488315685725346187852689496194598318739011208393201296540988379912489881238355719617318791777913185214330569971256621006276887392367147352317943887226082388226501433694702767380799043020704257418857547403024843005197835892497338603379826537848609254959183956597647186384109300469692271380317924404887111692327885333753855286721827209639923643447777588181688132851743568168660027660395482809572636905808505851118660242326512365879432303641473193849170357003619377462517291238780117159894651478632126774267399221575369136183886267515795714508280038458418069042981159248822767395590934838496263712401251391986062381548251876238088130494243641589052529064308771554168430324141878554093501464282981222330017211965970551674041656580389474665473257674082084614928707569500738260641069273155113133295092844730410948853361600021838796620500275527846057171944496451326217551108498216743494119240280156256961522820941602291613435351904012535676126815626818638426165178703971410795756295727295776090731883385229205986531826856587185302863777108494067455486059305315123994053313516707833910810904904942435456042636394072877909046139147389720135282850020377093213416612898758853701657400758639546145368256433190641757618880267868827382937421986181099069075429177395632541743797169696178987603407962288537286227277208641369356359355758074526073538978978539996114559843136452638241660440599314056462789706654742782487542807375150127962707180905317002576479977091402075048014987553633798365802289755419916037119998702773927901572372486593799674921526922079894424889450541505451269026406787953951371341562026469604150605020452719826204795659672745786712738056286283592478902529815631808177456219571604734409999161518991401650450312903184890057665995276910415141454386271899735812804087010145336469295892724821640651782813634085208975535827058325768423443053645988640576046393981384805431651234580370278135526438831278476710342267596649821956032799762616944103674819270937781929656815235703151745157835233401118901937094706007946609888237709790851663226475112349127445875505201498659516347812938689021503912150007384499962367205218483094624356575404339104385154600135175959814928877387751008123377827288596251200780027621985569112993579801989583053103350383670184106964736853449129781342056276437698644341945921235758633553291785753807010748726883831711015850662122259567742507552548405351912398744292185003570364779664762870736570491143531235974743325607396651342738313300152754692068087980655826084639856851227383289578839353135013053493385886012355608482575512300948360050960202320700753243268243288439261426308274790864588469444694345091992207112574168255151584518569893894436191893854304694918974757184497046251174070764977714787770137977055398463030975717281789306608907004946569061351412111055929111842483481676092682115375498787524756337419252558843332941666486527200163444038154313462959120019836996283164242804176591567243781946262948565299762984327881616274402594411496565416173648531656901048024496157393959802930499038882103823169875292667926263594967619250244213579858698058908684100049118155471695843929742089971441862296995714538444069280312803189402010836309694342218061133555639609616987130423882730590030806264446660125528414664997242253615500853489730791015993588070586986823839579989757733416700152802398885984003374702565024451746049505578118642948552319591858267541526549906325564317410156713485980338094430372630583500259633281966211073888563283930562455371607017115918491744655889211884831791267313320865164230735162924979083042996635655178401020722260753926516271658856533710519718116330093521672843899010998667749749439004031512237231710365217731823699434375722509111148015961986556202839088443106167977398318886318212552267139356242699862319732915515347616392174882183402455712938138010135741118918493177681271134059376599762494704558782903135791392480543559550276164538030664392700264921428356954863948705369791965117138615036336081994657443225596049083559236132869144343792026753803818277936590881331269417568750139276780111374971816425591378368473357026530806192939854825526141752589283602491695342298852370200874727115596237794602566266025096126664158059704391958585540492066325136040868630197856251923191285625211492536125672435331769128352829901097170767651653053916353051732601047679685990830724026323373582283970706762120255956276322009767904254090634825357739471423827500601077185219037210911304809824365504924805653904850410242842383609189126456080897373311322529338506508117907190293535107263714269173683100091082408801368425037439710721315006296336788427953623802386201288057914497587965981761068531224090908237924022421805254130121012775731249962058978024634394860172025257470440324687327493835783824930967300467057504905800644545647732303831759351883447267665777522226903449233287616794731804645871539914394523322343661378867617686763980997990739454767415845630039646168585559739430393396425287629760092537996215429246210943031151039475490143041807227268919068579153730145312400646805884665850829303890329463131105965928114179521992645358880052415761458878324683763426891615622314413574329127041819707541936956997380922085705017941299454652907652624937616158792432728184799630437501394361096693199287251589368310560240798747502281050656716457434537391484604374009042727922396857038337697021831358213150578142776570903683991567560883384934971391513149184547265640710355117547412030675705775228943935428367718040073153431177511689779661131190568028951450581042443811276806516047537666075118497153263151761992640601835472503328796866592444455130318372718741604434983458240259567357297198744852801238359827235731259056307970485724227957811950426377231811634205174063325731366709282064317394193280461067448532731905980143388867593289641206794091159318071295564642250700225664124900238774290594099096467315609908208441768142190477271759891828737365320538623782096807172142811930324483851352551342534937378658873201695404021808750800766818474108125000812598265124222669383801915740160780517406789651037835157632539654502917687229039743404130306694083250829828972702356333361928730794964462773636506361980818404518670003161080772493449969122280122947027913966988086255637509743311292963505470416190585149023340862952404508918367778213966985650632022898487790234574553104774342788746347736915770426497094786188439952567793821136885231389095648752297126089550852639541015426858378657061468775006716341497942893125754792617569049980241871601543740758371804814443498412977015641348204035547836204096150349758813668062894453696466347150605502638625376956429389684434444024394520939278347870915589224770880944767549870914946799433107974703966190405579664691660570665852654986555189506058129567048929373900149722823781579377905230415238589027059281796702064943321144570138494076342830547751930670486267023612654700079604136497384341544280441667574183697854080567453311549751908879364954481582707289647461356406573009105377373012063011900484353776597841589117390572077834966189425898871315593336975108176891522504508651900331946118619707149244420096233736241456233450064516551377820705100479809128108309129404604151757054387308543482920871051037795262571927591943181932662933866367564878136110979067107440510380323891861260545023954986047336564919717445604946018655464206133631733628619218513544208771859479318329981425470239747196891747577144092229010631839559326580301449228822963564727662647736578827324526714867932129818977438848111529463770136092035204630614231676679811899651656807421288257829493856840268289051673357144528219978318536436740968237859435177526343108577714361193717211907430816623675368702561847041547181948717079942158513569660625201933581227306384513341928666119818128119925211207193407717292717087862680945342608335797307349758946865144574119377834721701709840610380275155264833719427454659414238419979969761253904952144739710447297704890845311793778700301000713542830250980874767677775937176987191082220601349048850577648944802225128877003524200474640047516479989862171599128074064594200105671364766344444163952382518706794382054272788655495308401838541339512635333836427993427911370002792704590409970071401887167541030601040510449286497600071961775867284028382485026376401080702965322806732558911370823860111623980571948353867042989495743047268480511042242064204133188160901592816341101302986717529704672008973480444858602222155373751603131436927482854303843960427629140490640235436425555733346932490309777042594692097973603631910301960966971816768144484316864638844380757211449794957154065353798975558330111643227517790641090331896777010387972062192178836346276046797758537835473248643043185912787504707146467923266290590813518247334866358847375111277903044094991183495336491611118479884144920706418172242961679148767090706460174561641607046864587461471524912408543085221206486494732628965886392950356133704314186226976215958662506165199640066456010642613853321516457477419792218008685176808674582428828299659515630737421558588403213645023846230877344832426599996340344483679614624451615936491267756941066730146092701229846856549872720489259684300449675741801682587633670374475436585718472929598108168116876017747665788051721682687656238325493267123454486774187171795304015219584867481557449275430964884951812078005471050016860127223464666633194553214352866642923846200963785983417915106073527553767251728870752616616761667341965939094223816487935062074278417750089195728438893247469027040118825601964013235545183784789646979565286816035381441541993413711023026169014973447061327682265893580983421334543302242465077375113631437737003292845457922491872299434434622676693870001055870128346972876960789719526646012445450009628590538889313956662570690328110517567184903471800009436325904465618621588819013139445455003990524133840916111624228415737843197257898320137649080020599442577677289863756731387164230745917576352371178192139170761962260766741955287077026494183890983399181714018476923284983593832655659047369215333134324914976736981235552098881201150679342165403916910354073245912950862115830866904387380031551992693609817281980095077571869350605342499066281511015727956330127001418356810732831191118866197683968905914432431345585953938736068504552942150315386051135687541598804702496909650076827248976127501123648624354021597351487298628611593114009932175489472985503630755749359386375292358206946679332747705729208452982326920025430557249560519474038118528527652564839015907408799180368304437411324356071696001575165371766657054609024090807445288839368234530351161123874294630790342369881149868773542606622066858919240242284585009224009293382908844495217429687109789130100771692567843944579049305988357987612967995388713268321950695973271573241131889322277943587680538052649978180586339271036983441720087284343087595215260109519471147540821976805609162991510595053292379780106718448926016416345194319616592051089993988972440563144151417142464798910687049699185602008012525851651301623196794546043121552446606854799015778960514865516700834938518059381380885145156300390660940598902222507074249402542624802842912167542582763506539594345220004210751628567186750985364223762377505950064865569977949216439430611364917243850552268954487087830990121425648613314697723143188847480625342332537998915056553567816027462321552196956950702139110516410865639916404728480149097115644100784519391352896350202197430938425773788341077129483399482522397917887819796069703327643755211907390617677460591711306306757524920372771925524315382887285166937276318381520882857729925591650510716921278149336598286974788044877566587706353612143920922603726805069176193574552028887156536448261667292059476632198067998673060215216170898008945893980721323703500782763691539006169569639212077880749005958955428319476364615899441250442810187591969127591920204870065507605796263755465855561726519581635716463802053978678767417438486336676405698564465351930099780543513785623917156777859140887301376515263562403346471358708179869602797592118483314270488275272390872442353093951452198327718634673877951272062239719589980983379425894531793807751369928778256851274557512361738351003218863161442879806470109269426210874595733939530542476763095712907597319680524227179956292926055501880699886587710793860185037716914322962239045998737917291010819094020856732132058807209559050291129365251635680624113760082494238558970360630099724030016637592547410202296987864656927986753739419284724900030547926127640499891494844272160998337002535020537463893041315759830570487853776175865522371156802046517921199229209351739047119832625305969965375395000129620879599184494780257681485181029221925894097047014719394224315282246380533209556684292769218857167615739647311777772931893589274400986686482275128239760736072388553934839871020852079679301489845101579614003040963671084441611701026908967196727799840491569315243668713556928708720757473293336291136638535592133379856806512227410164738901949080223601766052782900716445078509462632299730203929160404181591855468368565263723761413763851151282771639286004882528408434421875045594487423806198390402054650768880916889908472319030071244863453478635221274306788109732487845106365806891041139808059434314535490241413728659772319407986747671169200501037196559546606785021781015369963548103626110550276218199128573906564000856376838709846895848038130290029920705809001418592008040883548007479622103908756017216768294766601265496856737644316271186533342855162946876368247931666888810266913208239307710894909128701259143554055850064352636707641353539661417615873493822003619112740530273278148376751969892024346368870610420398992358871990379832026340749630432932059026143859715875677581995944547105131160155587429432936094389427197569864119955149134001020710539952179079733541339200700326894037561104616506399383009391086310372405490880769650217998378215091060891246466930932839320706508038451551245502957528986900605627950170561692446140933895438342551115580969626951628931033329122916145828645326904923999461710948192138332119609758432185196546459873681873259447322786973460396428692480947770259236551148227141833106773716863070504902900859268901384648480688424523899278804947511623559971279634513926461017262277647036746550139703651943600224008327249953006129192966377878771518035871378917044411206005551279891225729989283691720933301497532906589761453001735526610934559646983143776959957467835989175392166330681351037508898026560836355753343045795098300976641442059669004805728493088883645788915361555911619237616338933719453158502687340669336758142498821041527159400051085097952485635783781440382795211372257344826090976546291733087330706692569511548145163953063830052736175684709729275937143436618483314035670490800792177022655908984601251321818163673748597444171927595154921468949315941391926550259215292349950550680832931557971779841971311285845034378441101520442114489376566571994305823002474272685349056171903392649805866619888997144354219733632248859074269816043118683301419257294897102643119542116049420843750522574395574786511628378506512834170035256311604288643959639616277482065460364545913474655062448894574245340811938934868468644863384551133547030963488584354036777035001675420923099567886848881059921952875615140114395839515704086163182327364447100986344209429156529562146458421304134061066280582385660785076769434302987766778126751492082973668173362701572827021839578016966201840978268509335597847236957871542153523747879578429640377110831146554176411666942964341449818347718094869261982784424830316837888825427248869190086353075474991567672917858377362470840406867725727481784514172128365452982496219612505243158931813969143242897489930950630524457804211151841293292412393270615861540403656493995780493931038287343240850453902745626579489226639276959363280069129936259144400897456403078570255044863001495023620623721108500505283456000006697844339804234005745235428102750038315428412196242550316208894555625089158328797593257375532955129942456563726542660336593626276385606483540401754621109776134240109944546553805048417914182628187079368684232066329352817185794698071550722778067917911623435460194135529227530293451578679107663201439909608403853572129367630438274910512557688574204518607452333760084292629132234125606933450620218325842426973305711401135599936749815474554251336170725897925650790980567602274887970402750804614267346109061961682101265282005727199869992793029612808821612975350866070282472175522281273651160524826710431835821636029970145146300991224894311089783711435807591916803075293391763765981363989892876907413252797051295219839321519448375331316869654379858449663739351485574396018598722111429954773712767260430535410516329152333209762714789211482421675168943638165106055777978039112547630338640288845678966256141169113257579588812565892669623278558099204526578088876428734290360998153521918629757478596919536270472100228830274138454689788793468388374421775383645168374100122556608627318565368957108556316143620345065896075880940966453732753482654854001576576144139054040946328116011536216251696096057535323086876587573777030851303541667357915422918271679272805284148009979671793875416970862341853937531043411429053299548961096612188366865539087266547452044236968927883650726653548557484198844412845264321926945381009658200335024139298240007284875292179808431531294366236037987082335821911242725274247854352974202923184738034561333378059250500522488467637130897698265551643720884392903353926052908514504732885791715139998771095399873157531418955231594537642781455182749032936105005208055689709722160198865199243888094152512706792445027182170485135454808595905407751787305422939840651996565532936547976245623282989589124646553075725336796323034606664766975151422645976954958601331861690812540104680867437964841318482954574448895170385941813032523796598154150318654631143246994023435214166282170557272390473684156085252217011489291500705205847670876036155124772880438989704129038886326451505377784682596673646458982762752722068809304063945645190424106242730647544116423696315955923772164777427438013911877742260142435088107736210543364592428941513618720437332418192027421466775739951994482100621590839670745909593664718331499313839838254055696699477255232030338677345697121418851733928832777556600979385590369010759914595357828430760713635710523740159157716695313733744294019691517179169817453354110577687230354337623938949094271463774803047211646675481188954797032962073236487231040009122955902605511953764641580385726760100255832186898126660477672769945221034596269507869876242220807208965345409096515418220249813979418526654306218202760979224660685451558616560909594279615005983298696677772021207381285661787600266899108012657654945377991260311836843685124695323045521672082007905772046447844266736688219942026187290146718612702533690582988902720706381285437455378842314177129595941964376392483442717715884871928178962039058847232943399508935454380389487725489177785694412675619458059070338314065300686417510575181724875650166343440448334774973134697247926540146652397778581362622747512739581816034575032438431067919473549790113207845911051273279695205883586235017737219807091879968427143186966376981580256095275205877843125937722161852933530854444392723264496074179660545438773658488906937333110745356018526280310211058631963887645154139022677557575010649065132054411157917751323059809263464523056012039167127106585222694313885528078315401852659162454717201155520003767022103680714407309642111335354158558421776348653741875544280114107563609233664998678957904628972867243539275835310047678901578217721009008878641382133573133366434231371423294647189727060070658501490744364790399825476461706593764172781833013798047702059632326642310545671208395307837116336396765455033707069681617416160767242058186694548548504259477142381116048712301558260424715727076242060395704286962209323488779467262810420868207281821519581208642133039940158300147312421033345499150246956093105623065789499243831227886607472627871104895585061779212583301140262436275803072586934161504746806218188101588131344975107127027518038964838273405631279095179377131619466206796888239897364635779756579257038071872910516109649374540263309526692724163420177338623961393086187073693710790161287138189881809609466592356912659716279934531199764581433437248262245084162239051726745770861733492294381708774978472405307691794727006596854444819602132787550970320702731040662236576326954610169932271171623449343383480103499552113773393772562765761560897821459401826358128575585889352517125712822823437108998646647168671649102009646987817551043612101981483268956008625333754544524284426733236555302529230618383920741960358857487682226242145809647992558519446085790498019813525928969024000842611374334312184800185770104642411696775175085928366078898152851022366142958669960555250393516768086564681772937780663297607882523559259833804392028822585660618484075405698419022504181411730171704208171053228083460827796724492992297706818355339582641013503095183882525997832403566536239043824947964470134259987407010207333775092774048883538338612107675043992849427739163678833911618967176050258478160680366467881618926857746613283721606350405038501393630693275627175208578581944715333020549914681689982177532797812158832055377884472440005088175191566687711361032706602119929323960283192070882240746121041896456353045420063121526130601982795487165906974680849506615494083714561720271770776243538273226336577740871920909297329346815156925900523683078543555951505005893892767865856093673710741566037076469953095123574609342953124401608574825130710078812623589207513629212308450031292416250052094040245256941115761265485308975537902406707892977213125012088695713848000307936060727549325563101457549756820460470349045045335089784548565050858877473109674767532726561780694818175735910487350022642283434006532520366636992719675500581741330501281306063560151861894592551902372312313272727295767446093705338129462788446197982398458376696641102394143034855776682154568781473474160528206984700604206055233276729011119014237708291499740247857197735017525905472294592204601326348546126391208922285782483073284566164292690340747980913499701290754957511490162823344314637780969187613092956391346742796446371779244382066157148409469764128670299203051845080291307376928426205896300562749173664134669125056222864840022406696758833471301822726998764550863762909469163487878388520040471152114590187618836620874852551098376160160277674981685713862060488205147232904268438710585345259214528794682164011164780023624066978242543573403938394135221250539931277494570713762085323706648418337685128835179089222642570226642067062754081260291246205946737006633131202100503602706106963984462439388016554250772051168590954442009360665438070643217066229195180867391200234941314313388987215615303718629243645182726573934982233901487903753622979955573648689507996859168443023085534093935927237247382223747483139443186615862271597781362672870542025152706692945829707595087531224565077411949188556797195327428457299207321622775781618910017672840583195545710707198304043160094725315384068298190766630643717269235684397722847397133739946186724145510583231630315526797050183524400266980414700751521589580844963115701555722089889363291650468233517708619574148381226180793221086517002597374376499036418981093648266297607333753330819308114208826002653314460895841008648424266749106362038275808533871409565941779943045178651537984354077998729311931317962321935039483398251310423958383512186857483954758555427452273642811620456319927690152100193401052643348196266217368567651619311966102830403410428253431439877823604698713955622483052658612396573791095158211883819618548086568304359114582307448510924224775028617998121310783763024200802147345455059518028586696824875004837281390593255302918816126885797190297475340810678103559959618844478290753882435034731117353219924154038909870396362351258619597278376705830160819193961591315663133718794303789417544060235450378107468437927712362201377891915005164594296447253649192303795501584414403811651576446102177690511878244605343327846885103810648319264129521966889750522473706579695636372516500273620100407433752836903954994407311649826652691685977095976699728879223468932683082529010115288240441984475760399922841827447186218126349544770938924068975329199864365567262627394709050872318082823088084224855987903218392720636820183858105913751797458204361683412487873182227822599852951544617199415211400929115458998200528593531719046931658111707583790205422438991623201382721588605280577442438616230244984537623363053290584566254673302360534310348725122926139486131130502864577042620336310709458962503824383584301842561412523787283277516309552052766700566075192158027692656094797102208936583234054340994208826840960985490612995766841798218909476861026547597869345801794366967052972238735547786610345706565007694125970743030990654385910388205782919733531452957912742977454628929659248900225020066313530973757293209909954931236090444459880377490619664326936411070801774165655320561977844100538230339937844725749336014622092117586580157571529168859155357059670845137058399936427575508093692584264150020442421098640701144691842847007647942557948157263606510477361421231984435569702038732523042718681769152969971695577891841136343084995745035025242206133295232026461707512342080730542431848773819884473948361944203817667044286125821353175299277765037434815887582701795098743237064605461667585655999398606984120170588604665804306290813871741461091201449391057587960271831194198716016711967556933693571893285929502449653197860619486716731047867178003442829142239938862391170451701777409746880223319233598704172064043612536856600269082279096657672400208204288674398882787961698261189192096926558855061216805963694731598118581709482836829625334248375216226876204851009699659159037044321759711672849433050951743634450046918857102705223242650481897466015910244749214199252041565261914784056498016257988758206391578449231430309325106366808517728149907668956007794579574361501391690959502948381736683896816635956423909062826768510295819860261031914384499784167014680425404832976297650204125028881777078291931889370569288356931684144500017912562327645344625862911825370449363132537736046468636710284067916262746723646254465320633541668707268106212661312908555625680748557507028215571212246157782054303348386423983401006877892123634600308540210957188450139396684607177305098328364633716650397429038821754632485193307821845332548253459049275277789449683721111692403436086824446211397847164718157803543415594223331727689189011840162267598576830182686162278972208776476159910102397284218651117800324531027860870452557726176046643090539158163118450416932520956042098387407111064279990681727323343776992098233158441844340235126956751770547636781676820639768694305467759580408880328775280685513754357130302570980352581162505690744544534844243862086185206796932726572779223301158123162148041322399444747984737995071591060104481864230570593916316814705780804055431806781623356339508971039760814389015949887808414730894708635995980163356420041106830799939660920294678741091526492157830536792507090063538828782499537819281394019367373246914593694776260468830114791305142456255516611412274941753339600965070859798492792767944123698952741282350171956679252531700238845429183672393478018879299695535948414846935862635570358780083141168688253829622588416076101794942328965340595310270585422194957704996402225304328239508736298701925913085708431958754537369643730168950578304919258138840647111156153044837306831207698508232697316328431071374059528926835696064174766304951653566789326627846546602303617279537958739618182439213669696098839143066598690174747530886322669936551082816192390354925828114223475099700223306386988841717041522810155333493322811508259765732309672897674100200707075068420982784753743907535981330865960044107558540976010419134670838175603178991396557062803214007649993974963120943094995979456190260872199365149628585254551627215015695444492612238779002223180071962514385788925789184945016346684119111561959098819851961157387456217471054277139931685389796255308277600068201739624934658968335941381217758859706009372261493678906639739256901116836143748646770992187630024512929971442599176692867355867167849695245501643073181755843590951017236420106120530120131872477316186085733816556958373157243361192726780775813286595270747996472451921294837577509520949878733338907322777345078851901348105356659556415651473162783607829810480191269290473997230749280634522245710558813082085775296693488030112886903150394806459848787236301321310853308574267495014415883024273112158999158019885618911047487192857505079638447671270361142163171005677359188029673623843142036530524794736414489320523531207584885675463399941402102648768596143580299344198233915361016779694570271015628637984533935192705014973806968977221471163431654225143173322786198758420647703118968531036676105467058785299683223675715485207327504012276031574970178167212342740840232543266105828517541630710404102236589487171795664910307017210007118847839802836599285530691411888743587463274344232289228283132048072371567506946222231968107158430124486026392388680161484503193300908078442186890722454515969808224408775323914512781470423726334843031891446494391341805979962183720432800533897261842881357223455782517579069532178438686842139404112079069967621222775001213209718754376749042475690023135760941031647485094082168204886722629563872753610287617815852924200835445364517837761904172965098107808449591943319479186353960917493497939484709124788938160666995107353080432808850858520617675699867960802156956011497281081939519393697012917296330111632689089298815520594366955008760860502798572946124586941933249350581881548137679013657388183836553052983708942735766640235907864271284872632473468633968740144798650506775838593097151809758222978785679478882202092543445661888061869159166753339390432498524548412286197166747904041018728747736514819002984027866031331883001078499725071792391983161866399805564812717306767745054841770804316035354442401253259294146983786580280067702864134629937139321148556166133698066656444151320042441689188698114194009814987651277326931479239893836848084340353826179648699275463602360647270991568992612158389737573944309668326951566072844638220885158104557663000041971605969171945481951898698050029571943156308655084365802426758746412788190881175750046820311519122579690147231843847554806123236607505974562084406872587462414336788450768289320561813383213341416148752461713097479259682446097344975028871593399704756177408948115802761723917445682053220210034667172779640713232529434262438739260105770376531164098229225686353164182142271243979340918872669580178287066886066551144939910888281655624430799767053478100490837771455095742238509470132648872873506094521237373663631744800257438922681645074804155043942213210852957406712671465949271276601186982818544689291548493292587404978013367897052530294569328326359515218677804066792240381300928929514289023104806774631995126351174746607938788929770528321667576911670416295560143091430476302277715530877842257261455823954762481306652996901091160908125523779972324937114762871407758999249924291442625958024092846674692401576414567626619465177890130045601321986046251013407329177873443764464443202127217561933055410357690162813611932312882163392524792413760005766882253881192490690123293161228603684671959910244216801465181782052608853177185000672610249505423755908146545395108649041187134684378497128686095884022970180778760290213235099180650299348333422962514911491997202503972436218580104941289141949932157517486839055427201671607480839446683377707775507338473581517260930258945430475286261776042520852076113186999375569838715645579829832383273367784177840363031034171526609695563983780797542832908599600028663854547655817316269056105733845673239995418395100397009587302989114716988410852598831608879275576700756000504043049754338637551006562209339460962713139165648616370918248966449914261386126601605772166698169929614037922011631411863309817960883207789538530835350515337713569697251292270431174859524058856102957075553480351616879779811965991219655785357775309740806549220904332129653349845530738726373995575150279315397832403865646253999997761046778760158228705311835948611340160623042554033009499287675184266974075796194253288366350102995295594597218729504847938788101429552933551684279933147110095440497159222777083146541336989946508672159236351594881543266829421758910503263463340592410903077550126461705040917690999962846844423850674059950783916366874816035228594114771000958939211097517211266442342828600609682362215885448620504669133230467691276435835514105327366781486510768898023580552392433249659279841720979969890428438145291647658265540683188546455286967905958030566829290682559975681438399187134344242251549599178048504193773852717131190628166626348545023395622020691224922111083982726243159867935533561484292588632680755079129326571354507900811619465728140692259568476543681180628453951159363909237378421054244637020652784764803368630031233488560008194626637609224980933414549735095306724536466771451619183676921554843331760805080301406467185886042576092991206728026545331592940942139557229846014733591077567340604696668444937661915318395232764974710509491426538472026633994721545484579398979432353615463587429556902552355683452799077953014288985156559701267162598829990834875552795050887115852923944874756373606877010679245287228902292573619513080170939158725884781810522219411777570087358168796993873111117347285284062717893373093577499958340861237412647418190182562571608660839133739562000209349326635897360227433096755409843145925342709535447606918092199420135903888369794695618069808513811813549852329291756943698338465930557049909077884859693690858330236519721225550501013271933596171561228477303416291472933969168179281985668555872545405822861793754216675725723511889081105935871969082418331835692384940598298188093510940930600147028956215889571974793049461502588320050710771073444112714561031565477102713556414393235012430895650348340252333965234365933450921345473358850598917850076092655090343763459035065076378745736259425367754724433632918190583259821514780942108119939240321904670024871577869524847539179027254051371779629265861864620267068390176392092642422000550083338427006067569928957001986969215283674751358331845187004282850837163650639898843682115814227594427249134117408623027581399615120364682706738130936323578829979078596291558540717124730983733840635207207161767220916119561322270282039207347031694245627317722193210573699918070415074895250535441703500456250748074837009257170602454370450800890234681470394500844057581867270215000694910051236109673793121545268123400184861855649638528642286280427064502446374259442988294704617916154809345524711446999189750104318757124588512360609374857381463312955939120940552402707750837878081116899110825940153995118193328456692152641991200084609936504437632485236542415185094860603873875392327095179288980920578060944947902727594634796899807453121201906573997087117495453508588744174497678049399809561321023822670675006523910279448168689644935352329068668195326800326584585591722118781137443687317968094045406646116336649561444577287875181047009396401550842033579017375837690238005123243122931324290722040126477834761142201716537719481954606369825266308911823264546765942752230881151352900951596173873567634362897050680693974828378440601202426655842164076447201326934403835039621294665061443076752661813864000209760517672991319525594157292879205323446823555616627420272038778143660788170717819155975478277931313207067290838077054397538263652024164903773959030305996700809157249036015281516669742989448808296873828918579778938521105927358596167321521603058866454768028644519087069167926872149928000474938454510594268343058633696548447670306725325197273265658756651690572490276502421539658670087971852643340085745451817815209268559987275580898709132980003348167798134265210265567893123100609224485901626026624385519196651163771025237864278719340788498666562373172627054064391850263743862718844975748532235976131507521177437487171294766949923397318075366185956918890192105026907440665242531644139397293153875036913521822900271838738089818671982949808569892742303055360735010833454956967951262094430140675706676965755577145615002157818165017002102697051910835679543101185742230837053891821873217804818979974432260952443576850393556334429268831490054827805504621445625466506739085664706644674541066220941464438651559801862932468567949690526257428343414956354488359251247071276839014173605453954727756093605376273409493104520460685360581514568987403512728967347603413216430234327126093391705279905788220321291855900546079659965569030381780525790930002164553255264193689659852755654239247590389554364328480601558998027440498052315188238796622506530770252008958574719681754795134413140989289470462822113506692717983613991033324626780116752300289326391945616328599391233392244142215326869888162556219417798042057636365732010057709683656190688638289619233919042962691213609128414982026168232591107915592903502362092696399187440178073368911728041273683624434171194418880996433384428685348914877234076578134885075712337223987132038566716856912917260900728779036233045236902896968873550916147227210171888953447838924233636467458470545306094481758377995586616428623932036242624643468647118593065712069866178491313436620378381028178148788951396530524947740678295433950023695434873738084690699814520287096852301927234193797144748492963331140916473506568061732749400690293328037485610935805918847651004823319938030394046319040997866910938675866916651874099772075356214237977007688773384661433434889572849173511484068494769500899721740799403449294727716121341099967624993548226273872405153174823132088903174533078624646399631945280408839892030782251824504870803646792915627608956610965443936005150575152381681767200563527841279523932083462617700623555636725364801477395933542801388508795139297608454081722916711746069909403334177023646648569712361868321922287004015435983811693781052632686821060991749955385225428285049384776987496445516079094951613788457639493522206423807027868107075751687146131940834191505315368273282352919839371914382229367858819036061872061211328964967873820939897825658457318439498256060353979364154050747589731406007429783543387753648096803912109374292140865096473376360228652253013297300217661646304426425467154355779939766499604340767391290277558680100710681066888443811244496364059644103415693837042408919423484412480146479577872105752960150771700923184745074847691613917818540724925555778709494973372873054883551688249639392821122257165779197644988913785804734863026460147813676102725059401362726794771339811713101325044450891812781478785086982581102420933445826261948949098539142647850466327873925602817900898727672588389249533925892947678918553343293478838736476908106486473744103761931928450965003670653523549584013898037708669670227091292346379107244792763861594797576574147192536130766570915734881967134310277757211643128812288874404837463006344808725231870589651623292907876746939676100591300287977508939428344690552792071768981599718420692740913586141926728898176931693667904760750915115881370548477487367508777625564473818326576062315183607491420962792333080634747043920249358825957519922563165409502149781074862785588391280033619663237477744566756372633055736161042680518611341820922599147737291916741833469077065581967885376800968194134225993519824670227251832274307487642109348708343622070369365698880077844383106719361326143522634436768952773338588109844470653445187311170395943884083671906379417992223456365519705784362605258705216389237025285395048051266058337293173625722927193573710725332667331559993920913490787348941315706026394246691571013676450026478989948016073213944534200740951701351387591508229585795324405228961190049886927518059947002125015290567838801566978186202320668643821454425022221828302840035355453878456569230712002991000703716234905014017871812290249907961475202040037164423646343618606717777626727041584331012918592565026704009124959310008535439226677591809169406833204748821370630396485079448388743930749356780753685518297952123103497667143781794672645741752630790488210883698368532108134911004462432166063566216403685797204524705084159718180825315777069768961414263046085703045951263133551799979509772962871778373448995038703728015349633638415655085220537732875646811370723058546363234410654417815196476159835617932458273345234073471698461865043875813390178725863445438875102373315226751251832014187509959610816173443237624759075234439328373842052609483799547071202887605331643501447140738068518426262305983367450431801027216235587545596027799146897684386937336496949551374292218365067711654695699319322740446933818602627514713424998808627400959774184219875326795549648055655894146423861357252301808815530133108416718624263398761847482255330358673657276757196354787326977969944834069055702423721268019518347454714484675439651102980240286870422133668669303764982591417511336682678897764330196618757131320440595977071263523569313273968818480050261184949042137157150631753352791578430964835226404403121886185178531950752926254876269202609904685094503190632374374128514980171452380417094809671587294053800103496438589653535402550190870436200065492938127833991557235379794591832501085876982448148802020703904034129979439168457392780947102869427198374114516709240132471502901212049448850350118401870964504015439230951140588947706128408433147712557663870438313329927388339468204580063706673651204369833559931014995859951328857200487224082853576457352842757066894720820219291918007595405563776030599036505913223579704262459020772715699016756595035836528740019970231449158701564489582881753872734494665541254359221318364246142463566509096836731617235725247100277235093361894409260546915232612604737244298932391328487808289707367062732168576221392491868115298151181055203764239706235297571710604980263335075690644476508835479063660387220553939633892933658609407655794614986528581681380008325079260563202203715027812069337682560917686874050917834445123587233725849962416556482311749461662843830458673676364943058270827859045454016323475429231008226108781579228228774723446167051707107456683347403495662799894460637601780637222479331931222438984097136340442693280829609525437197550683455639562370852421651701582990334016934619724562981417361680738416607636496229912521401221519505063317465741209615344167206271209864534271563594470836410574519009907488280223800529842591964524722569412249566448851263158593913295310821534844618305997755579431918902300217794689142335460100552767071054990159090043499255344187747439596539525338227242442396064387991590787038516405819647343698987559890011887257880184823738600235752661516523633634003189505941111803953492091765041667682871661852090318589206156730873021772508582391367880952580931712462554018475591044186633399060922008318744681899955949274663147286811042342264807257674867735117902515067394589043668623150909741388536662183538461694472552559316310192990472536820766760215197854180086782966119914598484157857070259925641099561773891897115491012268714257770727364831139908847182450434543162631417429963217963245006194877678829678335184325271336351503918383390835693532852474539779967664213495544396567289988381274582517712316252483778653973470464866540741304761848501036194713573169790875555557058221318388693708011521335785509463778537401519609363892063324276818930811154898166876810659427028572426254409296525102121027326575573606023121734241147681097647951901360975577350610727697625867944729021578462039129065007548305792519334769749456599704206030070486834598193690713278402581622468320722979383777087295868811646621137068332239413763295941993841875351682080309743104262193189348514720903021746948795727551655530358274247568003276808211184391644080393887135963051473110338797343405660248132112322080344049790048816460229596945570530928411731590565282801118333045527507996138543495371488419995802472553079619918998301522451592056001910812862880352197207053135027937467194734801026425648048591152304197525740330942918792635844296594640529725822980905236632633970635509515950266322816049642874231319920273774276645302386099573934959147012105004530031963678650548093684975807295224233255118513589623878967373260182389460037566604549891852417571452578455575336890564633237768270464575784696186074269034661168845002278878833903776937907078504559408459100708178623338943983602053967661465235108212743006787155396394180623131689085840558396580364001285939800481254333704428453215359685666839471549993339582901206526818851013920579495662842527971582788170709166518533856846798089327556761299406368328486586801127174007983231713130192874730125509494206159307595690143637630089917192800123507709977044156034510581195404441352707404831219385336307485426060084597051188974801495872292688003162605201757462317892923842277845215237268534781346199639477168085820040070552752963148883758753502232136868011232878054931799610184585160036765934971217701925862928602537741128216789221978567145525625067911431075393261143249828181328803862168186871333363408663636871946116169831518377031815327396278560699354521495054371073803401970061547872839185102325645168957160808911103588096895977928666083319233019733082957010743800623985503129014883928050313307020176399767265235485280230959224102759824916000386952901043779606416581580061954822734760287851694548702828535202541444007192947124695608855625464337218614620203705916795259719167407783461084396602460603548991755324819164383332136095870604509209229673702230921219330893041431729871503003944586281584550436568966437321544791550300938211019101046164656934263271352756000231635677205703676763308501997626577586607128608038546953764083649944610299157163340216849275118916522994325150085113757296937834711300068329065612931826485596921141725612205454837783440300048575785745655051972803247229848049248369621870301548634786281735004783424864776608572195931492731505667264457155581341324109981958380556439838502560418841892161944902148400228505318269167781534217786035252567763697907085050763065534070026871252090970576651154385373534704298496283481684178493339848993224439820990180333722316512437132384133729160086909202317840049985370157642467452100538734266320298954750269608337265658571006776679475750775810291917350078063970635913807050464218659510330184451767728840638747946332905685148286300866698728721410299046107104063483082197912966454819033608823077934675133953039174711415597022585664521733340491193424520036168404086274144343560676552480959925272005836397929491243715817341432856064283981168880925205737275683590355181678691473009566141152627222415793612271657608167658963669451686919388315504194019006113074601778363501864646674347248423743748694293645656752722360947010274841095811115522361946646559023996399441585137265558155760258628477391774945289473958352387980655333514814599778543601520291252649977094984093955594315448917968824438871460958323543981882534676667160648557713053985596632042026925431140826375968541890952442088086639025142997725159559071104805587130403691842368880862603887184261116292248441675431336068013551195380014291276569269269975536723688479119687353374870676860664759056904928379031483755879394125007902447996860870479099505970080047961121290730000898618190419459329129127290698656576840363777183658567187413043741736410805889654850758050108217401411417537179228666061253955273269829112367745584993242435945108427235483198361668159335530862610858641787258471733894728008903518865003373675201734111899977903180569567678140807842385660636398193601464792107092049935320252421706183484030260524454358549253522339466552922664921455742837094430341230602388621642407813425346393452594753177009127800459034325127534547892488043592661082131414554527267906188755190272233393193506429551977478468163500956696550536014751153170262670910976965128656473834086829355957651092611536784167588241952968446151727460348301550631625920173816283545702721457146425965071793361583331526618625598796398864480362502353519375805278813453646050069159303391086023889538468128619384514487915802422016611773418570348988663670118909153711991707444031034304072779899498417729892515263427263339850406595569002311418630848550409794088426907299791058111206191191907594205092289262547896352779159287846701352490820107314460040022860747624135960021706897025903610605420628512376046047404990295566152923982787697045334033111796767987602980721087542741530937738379123575048380089765701681759698223440564599286348433143951544580314040663489379309568131115720981134237956775378540949590913518404944708803894193417892783153231266572080322793257530964679018610278952711963604273788188685263271122853157561821382293767607958746385825855245085988051095100868322272208580735399307416912480800695828798072380064286234184401597194779316703569313634546626630055478636490759265239519441830425361723709634894839042308803346542217352866806358890870661756111369395851631837444088318490226253631060992660257980862434174487123884843866634159813823595467822963962390340207216318039552422288218216843587395252900298397389222161899881715569713466914734912533815607959507089308669252084791550928523040066733168633232423857584857459108621064344285310029304245537501853406695307704461500738689243234349145463553101394822051594744681789968361469219865722835220022599965043838740607555371287079726019019450936544018753067198925568167798588513664770089705246865596259819472832178266481575949466652918522251559676962041127078581596448208881213280973786596616818211210591327380541197979801919316874828741500284786042733808951676140382582646748496694032677382028079630677611855518697993920028116816988617997808639281077251967314752917713047493803475875751969867177388078291637101960670661914438750959607058912867580816736025113612820211393734438873580685783335867405594673039988141829113909522170263377784557426655016887426077527594389923059591836831945019568819381290846434399854998292569680090607858930218262023638078844219547453773776395322961508544326823590436038811513897590850354945734470639875674953806751519693751277416389995161448439928167643199371932154012541929994724957748138853571698332900129803723544063724949071913153036034886246077237012933483620646099987392059195060865455876222780027364916694255932792717345002720001272016773799606163182730209336957869968035985645082825026517976036622390461064363091608866101681905145066009854299903071429140121427048764440664243881335190411936317766826886058844748378748098877991850153116416459115761707977256102988907368133430333790960703487272327417528629787964571945096599351753435744012886297223830233750629779433055506606243068101211704018652129335971003540078042364918270752771922854589974842077795382932518887725924982459760875159746149291122193224703948256688252812821269426421374302634650213602954697365055713727460193934139857306827367931438390055127446142473701880713372630655312635964051702180365806040536165859528441319965589513547278363020777833027815516830246546728200579071422273533444312805911972982742648821462093750501780429635787267018156879149959473648843330544903635352395251684073798811512782267862555286875632043546678334247955484933035222763115135272127980600607494899536784114113101941725487570744416903489469960708554828002977717736827252922875461310752425146170802975813813159613644204283810343392117173264829871292284778115455229247272287696407051520203917954404157373307494866315821935236426840083105774648639588122555901549533487923304786708338348556517839639313860389774617652851308637040330586431138613754723665494082771346457458970926929826246045911320611357843902934210384208447524979689624892264441688486287400554817450696062280825119785853314441673810536503159867482024530911997849250516080994076485813497180476299841681899051383811428329241040961189144310422523007980392267659382411204831764267084929683951952433333554126275136416523479676427104201652644550439940356741537942844837393840770302664906358442069521500886903034080776334596671030203710665160895343822948426327034315657837184872262920351371808892857311839741875297590439171190365417094184815534136779599972859963074563290420842497906222559698269514105039707696422939780002014593081672936849842450709023214813231108441188161080562999361595083125891659794882213723421199563828662177759149224045580890970863129951884745377691715083195705741859056422698582334906461521593656355004424078559759671335003044014641843791715539558738593223568503522288085934715033054674792699229242407634868684435193501263441666609157640893867217706838023057181040326855129125815212440012239530523670359710600418561978351808991498363622351822439341786435270464151580156111922791756021620869475472288950616914667407650427733813412812831546984859272881699473329411338635381890483708098914625151300850423782081095715024570165278290145758062760289698241498378014614974510376715427442334734413190911293434602700360434734899767094435166809422972386410889688633908361363814782203873541350233095593379613011533047542121989926711616185367494381888265557792234169399458753351610065831342696295744299404114165530997550360138918973405143370323006914422237306737272326819530771471969291006525419529102211617939003780930920094997674701053733591814480676987254650603333560325375458297117502889300297893926102204575074818570713631069250344609278210926822164576634512269754200020845403089106379734265301554937937854274410410955551476510770876921370596402051220488700170384476392735714714688634229953175797359177940470177915386287658513310658194132664285849220150009578190881204437365298824376386030889994444048851249016353162158731983948217752485595245089290565267607439340887541598775194592907770123146491030185806439695848794114910828853355557016621490874927966711973626597518810923468581021575710783992503554411884274993357019837485731842594303000233242628630151677793266043350957483814984191879653899822472530951872142703739204747167413519038493571242493223313408332432324916230295725606383505413759608317378746956449760995450933652496416707508864194024102303239479579809112926841555771152777162456181919223711417643565072849544380506519518238904622610258096704515661373416218892422895930884891206049119658647955905067326571008336533566438323158407705832564767973514508715437860139914682538125753994916894546385965033921175492751533507894589063476414290555770508774768550524569590287964262496042623274466733117376974924311394167207748856290408838930439937335394667424023954547336508038156854221141389858848074256915096514267834094752978834855188117550844358925020804180592697034664981223625372963219912013039752506830792450615999539188907038221917892051054765426873009510073431592306148009074554974005947588672700838130444720335468119419787009656138514742643027683369726642903322543475923303267877497900228815790693669463536930101894214988909985853289814507965894716689577436291781657238659577026048239617436407370922336938838616460617953671938244153702832212380526976878885866141578858594283467343577313855322668313373856084848690380574103203433462386973833153028061609044202623106102672060499365825931608301881796142097114318596363675794215438528564974636406009147417219532518538344856260320515831612578330978980188707467139921624495268840255876260054701818097319301907010911429893289101581030849405250995977908917329054217030355628198610342460646720574257754343823079906634919199468485267514439886587933614703919408940459896182334717052969882175192020925004260482832149663953726657751559815622118274846483376527039523753642417835119205784326252821686900727494069677921850231267025090379704964393086422729313242927369094484310500597663598444379630278923133143198900947280666405581521595393510414640698427714030600682838521244739064579048185913110765857949028640526814588460564340619795665604608260834900358972847873212684637642298477286770987560872320762355857033909795416568774423995571406983026767562193254583121254240659835003892625931421470090483466848399994308570088803532241379037758856456317478458252500794686881692699281446518609217211299544358485050397153705560576091832388444627924618706874755259998101709987186486579132433407276431946144394426377355929199248049040589359354883305709618854564884232387148700456760258127303439427600579765924912887253991152855830594365231664900354493505955736672957185523216790058436510918427517968344887108468896836084907536672509460502140430061757590308172842667118889945416436914757643239999351777408104324953168949779692839229129330089382436997387685282490424155420938848896836555051584586361975884964862982324315561490945475366856233850983540901219726956626894779288985621210951765968083179659204348003094071282656399237814217293025610540066528345078987451794497529894045635291461652905277179359315708838807557776825752552036176692809662975950003326059486180427134170974644414903607173736669438153959985539423619313634900451664190565743188213839738195917182456597483351283150557581247389707050164368270282784854698682599211527209719274338516901102294154915291431316936111654889380016025994021320416701399463891598761796983201290877020112431354385112534389552063874279892615429758058201097827979130333318816371520996454590976371767340791275741846646675644838177076419889214105326019211457536007380853809721807950273020372719242981930306145135433165877375695337989698347464599284620136995660911006314019811704309922896980675694930831895124430462735050790280170962487482315900226991194780985141057532817897717791818273254361771359730926587640249384749895702018008376990181336005792096910958950642551060080418435968795291942701191932195565051607891491407934667989445821498004766436745721492868833873758092486275289116594667155888106298700275696014209179081159060760135068198779137317502264372730613646401829199966030152289241697917297361502593778290145500475750218536487483217846206811494263012301993729728332766203179447609061809709820271239697512776129108472104205799297601194277509869764000180460904796730026625078417851518791781618983035256381869623657399012457266739253325705264210705166038621009053409019515954074571023276736126803417173888714634986768603643462743519101563424640732910065530522056455445238143027254677225005641176676396155687894287203404532483224480436926702509452038611607530034182848307779078207512775629795953718751894318235228991888160172412715694911077084930687734796520186800575892652369770073520417361523388740581207979633661899992701380966638380090684871566803885752504025070197551806309542270150465198811595033421711951376612022062830221338663139737851698813245017565074383327156120619807193653032430854668114153388707354870974212382210405774292864782552361891173042425957792182827111503858882552955814128973950603095527261462498683723777236272339599136253179304780439750475478946748373229783883504961355154521793204477945080738415533022087409533068330884597073612075632976994153921031815731818711106129080614261312790889869445657133530400208563547112404047692727929497055887943014846428912164315638550980451653830356635430872319905010773585429663566494574078402000217904468800419209993135299064824346509401499378081892889744223838534292343247179895444549120658426648556711467101862191554532139515747447460197707255188936714085179019546845082761193351517512716402914270495463575419741166098128686967347118334121779168713538360952254853082712110270720527336933432943591349424833926199240451477329652263423168526571894633268886976988245150424872975445535683188357063661446810321678240720458782949659852025030576438182032704197129468899493273680115054370226131858887173788407012196132946252837731780943873732029845799928479124720645490463786717132541039772978511275272969820480359532644232175270169613595862482887458527777590192800705331609101589254668658390520898746304350304783471660338162564100353631480183879790273132181296596210433583018357429536870454489714588427117797139647589173613727799068608508616590101370475419146973426937318636607969680882681696632246392472064108051232111516827497437137567271996014603351084737721690874122800176823511010987268611068079712257152998876471650743850771081973471675413170315081333481214532222438125100883527273825471757031382380481293818617784539074040523242420131848064610133773718917690400855614075050487421896262036540092854315761965182287930236560900693457512208782598663518493916879473613145726533995761748797895705077441184357502640497602810672368357762133159761317154393112986170483402739701216570477982996075643621032848762672144881724272472116997709392955409625270834914805759403154056487698824583800873643055735921084809252791116693835969524791537135163247396414278731596731442112578441386244243187909238744642524220488466391394470488853908508183082967300424347414915274041191328874341032532196568629477943777539945102021827030604729426786567139768558482347011695225829741314457709843414258894120169782694319259895313524528040018965982838131463993677105459355472199186855171728909739042232424750830061405928071721858795210669948049653815358435219005084165290596817632148029074060934214700754474488444500732247757551151867874637785225240240426350424389243124613911462903826957680788442772747959694999021743594567925402734223547174889346075179001192509529805955600732896751494507679195462915150442886527538194781525571378878823308897989002817336480915546822280775923664452687559455625216601321072241498494136072153264011094816712192805740020660662255877571794588548802151658163751943713850818638080122632034568376848657288111251333768497682644361743584804292434679974458321153807332534818213561829253899242251907652308652142723489926154539249737093636331129705367287949179890078378682438160679668510312437432961613201182703119283465626151940368102434710161855145894106843690311159414075042946487990058702785777292517388618944441800801622950646721098045227950152354117804984554599316222832477770753657243934645181430575451301483561124068005977616362996353316443810380055056308856879022838213615688117628319415907914302914526709426416850469416242453753471454129770137560118836041244451571575845307165554174593456068621619190016902637286768534359638704642948801479851382032500068540021956481365485344276947042561925687010262896921031507670875388569115543184516616968185012503937311223447528069511045232415641149399703927196657303010127394264286638445423140207197095359393153189340777977673836642561268112435936507504209448638907303341109081178506521564800881905426034343452520405383287547582961152803352622837856628838751539652127065290424220755768797970527468042203029472952980644088047434176477430223154079934060572984402873221756293621843595937899297612175370181975423840698042617590964974372956927185059867131428707562976949479399909214648807555196614096072907761963127357656919059057355688130273017756125948810623781559043449688438473010542328052386232429290145769328193110833157367876340338166401631373769174735390697901654451000233647669541037984421409272452948297759294970422250484374672003046060102933708140525862722769740834455245341859172275622028964274051571758282006252229075928031087488731619511931242683256099292714168914772731482388283757628676690410888680747103531964280605320618137985623139942214054937381874661603548116188649163308157769299234748814164711304094142655617390454301507552038336264281259686911788960196244793911672385480026335068237063707446346532036040483355541486053754794570157331672921467765722211263211576072674328877510067494106162131686109808702065653603169908777042599216544732285776601785540436845079955306286551526828894503579535122258313149861225926450474160532169311717643520998868559519598267428240845971044041586857673918722877904532577649202283638288185896486288417173378317428683988705599200505206617675930556639429334929303553975031854868703441001112066644395058778679854842789532105447519069144446902990229866828235683545322391514144557768516523177710902587520342611068069955702163082547280263710311180474219806949060764522738432601868897528820520038256935407105235955080956185591728266432966757055297690509292789903064351387384923506212214861386463730187035386448205483725799802494788406090663165740690914254227103412688461682420088201780237290364055871684637291683157677585409679241123174899331625839391257320534213657544723708615901636028039414593026686308410160670449313982959956793236401480901832067909393809933757085580804905177119495210162969705058102420888345790377087117027686501211124025737755110314472826651228022752467473350509371883759615859533604126603202077333331801878624912526285143235382402669039546949542193104742075322032237850727030307837400625297505630713234155672067323389855782853113867753262611001093080448891307337692987355825961517348283164395817735972843899989057426942079460638744331937052070623019841229174049407693753627217825290539206080895380990997681331135354588707041698980000459627050698552655084801191212336997332865319867939961221415776328012618272448437088343767707749299060481327279564883737540978471964084359161143849890998568930393205989848537143706053760251683243413358243644412691312988348754951097887625120751423827309066987198057015288475100245778587111104570713932279897512839343953726576564362600773723735790837892688835555074046614047570042831488484905342460714964818880867025539168090251852637038278086816587757043710813530876841778167309756674770282203713548730704949923159838948098340712951008560249928885921453847617381684468397095178714101424012097370685168590458783726243211924108733082427786599790398475105077130452511571607568242631873031593058784607339825480439259593285644049177332708540431000864069482374395336736768783309950757362956395678295763113019902490276570585524441223123509155990876403601494834836045104470149587222863671869468427766933792458009586173035582967960222208128344159074198415464964783892863707596915305994541014834650791167449165014026228170927008791246201389512916402477579145317937058584144645760433907894585784600895281977380216098353437539507671405818665890191224486612487176720450389229318237271342390369130820047492286388753380048786499752035054076043176491973619986125928477404448865052883444909950863060362271851227493711507389439605769403543264214311061929083056148086226710448448237459383655212409683388678072196792417249253596888546455858508995533130740821610547201677613914882913333248780284122049465898275949319588925614045222255219741970462393973647200632587299310406912288108928363267255561938397927412510525974102855358937710221360829561044534530599445057793687985827005556258408243351960457464942303142965023298218316419933445382523677638598287662485579499833705535166433406539399017363679740213030506795914695551991893978773706729887080773105137304099103967052091981784694143209574105017949455837449245800709867929059842288622294905287844889772455732504543034144535288469993112535366265156943006086326860221532567972210694728743293049706799361281007766979698352378141130909397490820680646974141830621811821458353531020539741211681408346631315629929577333084637098143376679970441869133361190985885005544441954159423757830741679303056827615950102569306803526102480561098672967795282270318149039608878041226276942549608540384394067023748221419075573804752819415999856856500043924247244375720184117040252068121920278308376569772573316234850073198063798493935869770233696625278472341069597181117114779992634130522355417079190553013101169605123271391816376017630582889820778650345587458888552608102734631274004847058868232506913417394359500764888918796803441722356636826024092577935448992921769802172280646165905165311551697150549871856399248954642717473559828629088175184877476921531934732098094178911244669651723735344957668526986364443107711767320055896623617930634335716286774019420906697973762166395019934263261458428491507057907558932890967663817565009297350350317451167221678963720992905580551141770002056118887087818494856889572890119982848847907317130885281690327949313582126198924600592041606719668700084122603692993604787615258070108309584709901666416850323497542746430883464377113443318281139766250330399826936142670341870365581702233018944007504516764034017745539904148514860850823037010915801952897750414355257158212120393600244248931209117395638185626912726509663601540198450896111181834911110294131938278464707647622897624289360075667907489488367894071056760613300601053796024895574936750873004945512195015544698121114028050315095771553614185198721149063499888351688880611835662794464992230202164648755863105078337726551223060478529351055524187369079072011643154053703481601439196100166641776089832138589666973199228158337483728650048862593713567502924053568925335482175868597553869661391093472588004893382282445542949338766419436693202161068869449919675733413621551425428891298934540144645442832321124114570681734075740280469769695087877298932602841424518718341375240668205851896965530382952265411685522420714241191600654755648034394070151550086080492218043793815173565570031611857535562981964240722571295150971985428092489021048246991994133121834332080716225178294627545088706816848058442227668595444782599347032196871957205983231403393592311462035643822013992130242321878369887525623433767014987629488434062451824129492167856003165599743389128029393760079765235371996597320523395180304767642537131095081586163105688959358083576327231085291195407826112396567399386010957645382039736372688259210018946368807237087593938819765678864179426054844588169284755930713002686520354035891395753407068039505172008720726142023332515015064777430177632272356635336000278019424942093356588871301082775226796899584611892135668041388840615432607929298843641298364458785118191848687177411703878779809571095282975655386652769828584941259571257893824670050204035036099029620196264904919381075964393169893858984883684944562010300719806498382863674039800205070818536023570078715536590599202897241955547399830104592807840850101753802830721969382661610683424897224907765938827593036008772932955180154419437461369375563584476056801084483388964379606522248046141387143565735398114154628167402887458488621230315303883848055648219499615944110821575736291677020576102718936209484436237284967142225562458624673339020463587112530914845586669319205976146684973497260985285413492848410157884835214587506343179078472734260818650932191384457111664958416378355588884888608329106773346477817995760990812019382907680256034641512277607465186336397555494515937126249001732041170035922483865896115631630554076849497053097468270691943898846945996174232857781313475140919806980587214938706485645997319743413646907307182221155405624185959660798484749654785281049547527703092076103396913949019556644249997382193997438332596950564357803103798642241906621519857616240684241353379005150389739682385218790231798914743632227091122754714714678097238102285297387125186881556588013686597628689760774233369789976993926958404122153992752703043847663009848114591026134679157565536725900893906087673843911863656807239988570842736816796165313209616099055113052025555857742962976445113566340477582418289617093370522764729618944550544692469798771832537383701601258368846824870219653891104642074244972026345860394331503567657186574854368372758814877233590765773846479082414325975097065404476523744276031279908373771684266511477532487799027516453682652070368076364473088717367068637333682464284793503029211849405554879863550570810165299925106006441669806399924535968752858712936939967603045921137744659928672377251696152285826460153912327706696217936768388762322989627302711278862910498608260101320255603485426022925576060841010938036198248388849752583802901157028298111235387135495875539635818264611015726720875722634485895503174550985318610152034080378537849316421057264807201528084482461920786054935442972424036937796908346809093573772862867818803871679371042349732358455004514285541847353669648564542879746558382336024574414085276745057865219216981569989754346596545260712302394315808522670908535184849670764572357180365401840010784153308213566466358876096088940124014397903501487289425197131440836513112568427043276617866523907361539322378392906261558471275740257121453867485118846230674597505790740953887578767674500765288070579450600252224753660979562742692612724226513423962014631442004198034771023118623438335931568811770432797850792195330037943689052022858991540144977353207117184773765880828844942777832689984314906711052041567729598639107130887474529415794332604485626529480799544429128483946221249558248811491256630423759188747941880152539643619619635639382131169223036982621182292541536632501751845378843653816371948450701751095521932247417167505682561806121548940227861818453013618859724766197546427015137876394096326907146351479293304157453568048371420918221056665325094761445899478825325166978061325254851020930476550961566513747925819981942760969027380554296929914629185403424747289449387756760927180156418484318316477760495825396846506102948907535458347410979496086225360358545003312451513842967347753758564227570388297870290654381039341438320624746397997721759591687510867853127133342311071763656814211410664534491157213149145078567511426133229337187625599014110253799274035917826188338129071211095057516645934572167847699948602706061305145097961453613917739149481918948326703646410808904087071836139218726876803524563938545587425014983347273312652058289712203184456106609956098816177435606585890726382387733271107897512964054107878909257374996133390614703686043597912341017537429901296144756902713028830738755358602176051718603792404710747616602575098007118287198145980571830355923124563627283306653570994118894470999228865629781493724898530583131572947666874037296028731817863966740841354038570689487693722379962771435184206306792690830899456430097136966421455488999281962728231981679092367367710261002390896704358330361829232924276816290837050535934712937309606054003788264869507018083700052173975080311017393486715165496232509740941035173836924688054188850900085433315117784257105761664172863096875746011732624455039118054688406534587547393187867514684727589111760501641018436980643440023318288181484914194596041855045091525210348610042312617432477342621711246066420571740808635737294368689091832577434871237810943006343478019814323915022277721806472243902294316221654594467019662133315839425005186135828252563900281074389115948600779825469776756955065623850933802434612407446218299969703256149736174452423965694874079183625591634399619414933306363080969374440605840555298887977566377365537672244567322052277829436018137478108536582485533318391248882356057070425714996497517036292568605008918774661850155715571446616851874054632864211448463022725657832701766596919978508198695680097764905265502848872693169054157933222549741593988004075583748293628948521594725256702846793070345316347396056967060442509910184716170216104799070574430568497939559053665266887983921862853589006170009669006737343520690650917907510003648246832832058710571697808480244039505031125665274844085060220317221104174604208481508152769897717487427464547872074965801522877545664415398622539243592729845543104355544453773873282917867058042054036632965726010656037167580831477580428821753831402567635026130631846247949698468419361740257701487296421562492006544074898864531870852130919002232759851581814075850600635593320609194472787719944311974425279951482505123715314201242283430695237966045823683607094573572493951762726293077995958402523727063386927152548567813510123720229367638934670172537282189231784763124623850554120421133515489054568558530238572071552112409717474431808167616281924129674643709405422542297736919087772711018753192486178840005286077880781944275783698304980185755174746847490959804102601312807976527061425072125171218504291582294494387537316231534192212468005763920148693894375721147961059161469614028354500629658957033132438857969231590435241295089125069371819022023914157565843852911199558018490834939833268014896208596055645861784115483726548479525631257527191237623451732414025085663267865535605202021539528542629982636954750826183588220501449566575533187407979545359356424414718666426796696674825078078196488465995718727640767457279959475577124856671673872093572300348632632706765169075910771294419981762430883540641795542149048009251862433344341037899148354231610620012708286500180367061761803859866671477783841673804030271732402973987827866582340580715110534170474746037271701279212571553646122780966516122739096864834054796720132582400599153743576453772383891951895331169680586282830437942734949614045791195610973323895990108608519792744703978179319664300199672815660932831637673712461783865810302678328581764716067866519187149038385013638525259785087028145449203435556060814603004550713490977659208750704217838018508484579555536121937238223847574646020986996613086950638915232668638509838299679672019631560812128468144932158954634874225274115916653016056313687040219892743534876313300099397984739817059838210053226485749676893614927472548731696605554441044642570528067980273976118470966554251933520696157488705919872631445104061049989995775205523147266726022080359418150069843130706143400203311485091628091752881983190266514776452704672287859771718399261030033120787542648756579293893449768156465365333806922351593580063610157388533810016010190307357332304888352239352460659621769492223947607437368797049335058395964244615700385803066292615191827167004873959073842443826423666116223495490130914777872180165625834657509315735031247011908320104869453027335284005901863128645578274208609790043579803793530763996078927703211230489798996577818828001118968234878944612840001089703089986833376783869166150563855003378744545960048920487736809669852004073194996098621914004119732240146442282517823597662195834186432932462372380980050132751446104887713311209897104265000857149692924443973966556020925962900707742988346720754418006790747715838632635611213602272679077831457656595384469173554228702079003345504989330823216853780854893753028959310813376924549580846121415724452530751235914233075114523244288103323651739479768236786334479747068459490090146940868631532160009422664349705987075777277879731813774360036246462119175322292552908205505724469039954064377414038066387908891939751756942305759740745990293883638292060756158956399016779761380328374474822530760148182700081937662676641092760842442161419112146280678947647730385000299283362456421567341225938240226905248648421058189857995719525948904021784033518487437953461145480649164472926485002328073221836611618621256347314459493111717218183703832262492860165344406876223918605772422204961834689947163875719633717687448847832010048374217603705203315310074822839444334584626035154255955573784302384907038470070378597359657390459322566560620645087656219266425791594808524386153828123358875646620654909269908174944683300646168047581214501413731251951629520370802631803348661343417358583960818680560482594069656458982629632868584402469448460338133831528678120069925424189534982066770972983080584315063890371499374883484318347776445918003046496181423558994719704192166066548898260497834829610979778806785841250600088814766554893183666379853085487664324401171758015823195172383120455559852479474709572506018752723214456120802911124285783426110497645492787287490758516228920898516327900024370023665448803570691296748293729369200052988560094956727819558314979223306870898276244572510901366080413431317295701701257418666978215316612823858421002843331456222104223988001167822027704012386108949521016277723957020053593325941781834420361249909221345248072058359450020751609201842772626093842518814053503949351940808684076209333901344342394474303801185576848455535401818503910364477862587133342046626264381035484098540449103304799966765425401261451639899555295620219916336098237317849274667631699650641320493466700494167051332211551294620521888327811863250046349259932143784924462544960255849225924048924581595526132046310993134776609314530778170627344563688841190043108409735021629784503514447422179059769109109900550119769699571811361892720536406386516012884776887517625372961218815017391048038419977810908769313918969736007044461357151928868845647733263712701286073261846515357926387706975965446504083857528249848462884615424695812575402734738074483906020712470424986990229566357652891322308341392141599791729841502513963901406524412757194975991034886514059280843095708343060582933002663599762847826709236432837464194492259628124750069832988083895033118928000108824333504437935495376333378977297585524565881417814017217099058548577462287617815811202986038208643596242218092397510120299062736263610418453137793107558388294980551579081590228227597110738269517977021343451546678648669969099998722193251981062525008699996178403967494928164134362639874646350273836782592413572920442760210692500074634013818701222985468019791457642176528940475798398630211642974754875040831269881696790154563032592448255251082876699218331233634784856961856298654528903833864006353774242789876435420953008803708617534886745194861616244196554828926883948183977579271203405428812345466212029953119024233843363589025001410201395656103326145646607155580444176342268108976083059332560193301319125555565618303301230425259401899747004052690035294982719044171867439030459177003102954783882051030238726290961690515414230668540049376510238782507308980225825676316422323634713111512851403842216072760656724966965321572911799631493786996388055492479530532707195627919804966709918931425599244334184666875314978873498263281205201786688838085620090145127839066996251777205948379564527192488806423240339058110772494488938120456063731987275500453288196849486159513940474700946544260050620127214055730564554770803200690027014388858450302348961945019830308577425847119077151794735721447566023611237122623122588901254419469968842146413219251259386537455062057144431260352106300100260444771987728642091835554485035485082650103568946581688449907540310175130198788643137056372558514375956486165278502742348227858940922224451240036029075424829799010361595036342420317157131588323286505219345524772938608559139341109083308706752021470738090649878490789208104168327316763383621063037464825480930878476597471956465153488283026978386687700344217988675039766889845300943353117170267929967461441352598648077178456023935028852325227598168991504886945357386965364253657731091361994318562647290203590551382887049053199496187413698105869944470722319295301042245143020644947866111924740895023068637353708366524631640535126101654785020767463380639414869092475570334874496771175644469628391003743782243313187781166809201063702811844788131085928881662635049771007931227384133514255605799731639513669214879185468582060180321690799670754075169992508906950051454701594274863100379840851954141360088514689483757974188877864155733635105177531427419379239569877312585754296610183473364119984775630363994641484128334140953317270974318606968134342573489123934104383361431474422217290359334234986420231584832175802224865083586430606809153202314722848609910338925815851238637754768394399800816413396265315500430736389253364732343619960011464936483253791723310253862551025494368253708459483885584884068704208142669323326926714952965608792125066961847470808906285783289864270666349886626825264666080605284696661602958932067390420145045274364462450609785331415387177093086745603271863299108303379281160342566336679966946421286149109784959510806925065212191523764030503435691871077052093585370332207486763706975011225248068130913701165861024033022636244034317324264829466678380041710951410183815403730132360916031893561463325147355954275480014133211852073061191397922942872029448579250792093182284835517150702090812805543099628148120087773010776009437256306109179581302053941969357805043536914432758739466017451394385527673216561358175544009528508318255785104013787248197980580601787500916252545534836898394858003560875010744621951056051477937926770099491385974099418864603184294040848315227298567706200122305946935068997343070071766695194141123677945437190463233037853006130787463408995032136466346149049838230603390097088253475741609838294269872684643731804980178835453374331167628305746046738060906614126370396474125672150099876688587879037766821690929867894044555091894088041793789261021769526779193548894598933554268763289882369269064382865018539625416855168340652254358246977729276053503745518474571151412487186525807828684442235634053796560291229367364693471296114978638251045769930245475768604839181727641825036491060167649167631192167606691860872338373088166236827930097238350002042631043460383548050567793833063515194754596677793418939074214043000231327579120634947531161935217828442368367046498520995566702042353951382973835660733379880278215788969054741945716473175763453980665563948961371156388567456850711206447347105255476501971926344227883389305990926458909355787262366446014534019512436238565324982665421000996552248199968788739417142184543920865680267090487349405561823664958819762875300936954007901422422671995106586298817561867846034650157672155705569271676265279592966523543995465990052510071813295649078296209011455557619379672147725626417819758069689748557127337033868304903601393791900869741092821461333657796135942509885040388728984093073841018023071514051346903565961417807262339199835310972775020466922271897770040844336741368232694928116608288320766931214097547358969668410616513989011577212694325230534772999267897550312152956285395434117454680095819444990877405050046153484199724920099044719526621077271371365286780944811570667859504747935353623095966143897679124471681314670248350029340093411638743051909613337015686580681846296428623845341817846196528671053730231965694119917102822493370146689225277408784568130406918982406707362722278327921323121746296130719211962040418156440681299800644352415886096780621816473196088751665943467507725998737340328813301636097274193654271421580634922952869681023165705355332710509230810715814302095812692210544191198392114911389167711263051290163070874529734933296475456481757354588730808349065844141197913120078054437685550205915954194491609596008866788758892899025394964535823538315026775330747230244373747148247547098340273772053905152798646433433997567613549056460058116898088710369597410118675693698594602825165207624803358870506911293918974607386858648590648040077287385102558895267104328529203129629732007790935866899245564456088267230117425568990995902461551563386674138947350292459578769581481531502449163202994210656206803860329403708495296637140435066864095074152345227465891979045277422056197753391508845452271169151391693177044605445034239453099504987988806934160462201360034584225765273668035559616779523261169042378115509504308537304728996425431499806893560830718313815702885175900136785354178189507064250726695594571674005368055986052433458722554364456810088919975655942154122532225328366978197868028444343656822662390084902259948388705069393129199633351882592254861506085157411059249211153243620823103029889514178290640277615906696293694352846314775477111875943114792560161735618082320032193366960400785447597757800462202778814155903906490092722259239267395194957782953235753460100001186943262072207751147812588543732963402757501307606421155417073067806320392410248718153890763939043537494936220174948108858188134151844445750825043223194676343429362447161009380409885046239929432229131524128957136698736159946669584407624962923439695600398974793170460705701135567329864093046102136645493323951640351061508339864799931598300735136174328415854602668987869774629782935248642591114944171589773451532242367577778891103615188428883717258032637248705532855682317846425929826687052442291004980415453133067551201013415573155604930770898961359351465548964854387904409749331565276818376028749567972774236087005665264621938882033951258390794408621168080315470818044238180000715803752996986459347845738968221447825305121088299243092645131976082317343417360543666979994046941722660594446685623607853789556049986860523292279237884769025900733532285090261445973831233751440317859290067897895308881856422741952609631348933471907829311049183060937083471072301479327370247812003152154300987324743410275328214596459180309160677538230122440234998952245472296619754250263154724682444121779895861707957337945824501721685539705822367280333991224713922549867307013318755081946657847743939118538195888685410655330216432652766664675632469692069612518069633022411555111222749844921765527638350815570574830118628108812664098674192451922478236819344049781400925086488134012301763593178611328579882512649667649457395214274472845308211046596683022819658568457486351197827602184978434323139834604955683863589158492947527773785428330051154536127413575965319627620600394289534303041458051366955554872235536474945389799220053266892967806234784934653727072745615855451141187138055570435617025970496804220431850070719994930266745529488673753689805886421675023103459297599483467167073438917476068197956898384659497505462512748238153867523016178681342438694113070669934917356520328448788946634407514613055896893720319563071867968824053174412024654752182241797772318542657054454264109400731142860255413131105217090791010896224095996951496931228007473859451353827600128982987105631968056404545722048151280495623520126470213099279249761849517998302058952236154219412302964758047810276387572171829971811560580211105857449562094922211681449912696015679274914944811983375519737204251183883745569310328269546510645900978863825200164198394233652909048506840219534644678110813245768104334302711339552740325968274407730442507131459899182613447030782277827075772501901622286128029428536968245725242895320826699324675544393183255403186611217426544224539507735873281774228450958017237724319556572333214239636641558784777357716258199714705154200996528056397634766375211106995421232660987536174404465007144850960678935683463738669425193873861795111049816741817993977552866806291376597233336380674461042329001426048047253663183034173945236138500476880490108814731488153263933426183715746593437199961098431913161771265918047314696870141552832887277057534606954299719751191662041958774699592132736560767117169555627696593405028235431944402137290068072641662254647191121361618318529627411341441168037908757456784196194009386883865322024564949788686916841792593401666635777610913438249993731636905926105862130682074309363332438294310037244533200387702227184783756859895856605883695489813583011350390561985601808356895262410596665578333493828648270536519049779613944353946203342155725160165695359881997893813027186971902659951967197307625190341669861653796242153619670743810259837942237667814940199314211639315003902345185196263890488396711396367799489044851132355686112464898563373118259429460587518876055860268428318714464679720392211050845203948720318783854333672602320658197107345414769404618096330232416101848412523991797773940971222838091072658014622237057623687971331602902978053324207364419554896183246261882262994009990648745755069239571036056042860457452707651965641753730838858539552902912376785932764716542075832070469061868403842847529825327978724414500535386082392498762944534968920602120921644434104956945114385857252951892884457068209060047430887816564713643129482894594820514364682012132618686126441618184605172995236698442009293671402287099163605306170481507413817665255070572347593103742759517569849376416689734285051839988241504642401019373666610387876726612611788812236515622451937589676270322724690783755689767406920511357604363887635008067248104518601022940452695924123595608665553463947157660627486341653967837832823713083091437445932249309581950703300371550396929225405521396429269638117023809320415270324681103738424865606275296875882965028668505320361694027058971841592946279380323230605608973005371410643054210883024082475407934364580931207255422463835581112420441066102658302771476898765570718978058247246396552124204767140258871999900428590830545899283840168078020891364964032004343103882000977185157301544002200992646194477010404053728781808898935234196855049505766915144941883865681045506456521472480744530969170729178660009314435694496409971668512790265870964090643619311125361621309997387306817494665788043347856989316958382175553176479690305034347887186962525312053149355856347325852604669109284920707508389770984100370928550028914821371105134283171552840724531318349015535513243740186682042335749323594193048920612985948173512789855690076185821646405499573427683626526995911023543486222414463863437433062050062606823488972236792236921163218303329388351869354133470627244264954821215002684864731399374575290399265408535829329233932080690478312591850709379235341013504529399607363431263070530639916683177323854699314781189561291405005423069749423900992050233534159297327907149682743582942882578862733728314005032912417057634950927572762583518232771812921659355942795501247490104732245894260738761502957808712622039876952666240874719360641440636324841229616258343779397815841046566173096167030068092864483456011009767032203487697068562734638094514101215139017988214636798412176945966262567443668996467195392308497764435882422318582316618822614785256551657400830503279815491178907588230308863778733263879548489834885708036695820214315269901247695316601946628366423908850694814450362820989186713035105676405078760226338302245368662252485585506502704022878869402573963222755291243967425426426645437829618719848793394280559876932207572976037556039667113635708208807577835420285871812803370501462936461741736028792774498841193389162473432955401105718207877069052323161225855614830379513296776640294910237050300611272287462601509374794448310380172480466983499451282305048416903891000944172408193096088473075849805003525172331684806181376153230109152526104130482032808020486944111806751004821296172768076401393878612148807724061172941255269762589207250418464316183079447181892692666750920429822186263423707298515213899461362001386765712989962536513013381927110649566972954544062718337269250603103388872612078163542336787837439300994811222644165866849208330664873569074398563420019992686343763521777445990225166706393570283582332810036537847022556368615242632878399397462100478490806137353662339305066496610660132444855887920008002583618416965568294895142288545171757965585824948708914267354394038976475353547033198340040342034114805949626175967344589795846649388770837784118940300307728721656542392334045664946998991019717561751845526195124851428833596987820436470885824253348201748342929691487654852587630714802668178174066122117840820927231096265711878740597171453559472774383908030219986026723586452841247454615014757707796472001941525887811441295296378691412752671128954715445495180757876980104877571488758987430246287756624412505118867153718218730576653530249660245730770036028414895471621351226040671244008814837823991810827605999328698446834751782491001068468982787570753468024272632107112598242976339267808888315547873931293000090885304461928390107876456640032394013082279932320948348641583206066195318643070194999750717011376898690058585750839028323037515825520132878872655863785258957307538001290126812717398157189441664530293964418553114407513777320983760345179770448253615643809779560422453532324022682364705842141710702224842217625028650759852787572494770245349133909173019623395268944929419856159835889751409042245116287683645482516130887336241783503295722567247536170905352377323568335207965142468391532391476834567801910801107540868813412481559020857769905850810564246515278658694642150800554733732413635366173520398203133250411018131727066434954430319382044599896883016474518807668469543734389578198569437197429423291859865439156011508333553604280859136388217960628189068365385804194395841124477351864989833875810560437817695010770390481627147643833734039475205379376360063149071164800956287695945110982150153543715929848418329384358580965757367272795535033373469972899459562768019903851011837190588233036984587488531402250207264656648363827875031422899995800517984725220318480457436694571136794262334342599358786350145232092316064970321296500414355111026675704872591203514286547289802476835187756755796464926172661136686511836997997889685971460503523618501098169638216191907698324276408461998052919617878717970939985497871868095703730017631468147923501344343257366096393753460497427795717439790636152834446098857537902039508533436942308110331032903928474143407973073483173780832752863308243267157842362346429750037633704211417060502393374937761062553779809593990833639146228955932137446661593923358030473392714204556772211949811524494736551951069265826335117633037159380388419386390591314278105099003154967100253277050440099202063366990861487910278172584149644191619523318180713364548835329401977633309777846270045420573256543216680454962372221126588909145016523264974118553087228368700450696577090569896220058379221408433710165659918331063249700088979517577650000987830933364957135375187791619209865104988028427060372664116698842139793364204496781256839682200058123450613057604620257220948729493077481006680751242147357328763599106365749015193458773624003236386179926367305703533217109848384362367462228113075093674193522157394091631242161897117860935485923349524329152352778340922717581013998590496731407780157682334634839879130685091917152511021165277333263757085078655622303026132121934916897685136769577498775802872557260445214201651115582772459171107395642309421706734397025544840250359179046832063216196924394821675492815958050320672966121831386322387555065511124663616082751195484732796295406583591084074437426849708108447951392201075722569331252221294477121767482590959393433063335954710803192169542609496527643387042009291235052474934811276830964151304870828779396568571641473741981594768541882335369530196500817683818945044934411970788600692066180047889997293169436820378758341845674510822171710086634256302725158339465194126418693321687746499907306542809899249392667828351730352110956608347105230323998341057299271371047873443848567394757127540562062995045373483031549151932025982903900722631620076264905899597298717247440001907244865188114930524063621079065296746549400182446584847024204334478692667179535531968160426121757263784153719838475931160136836095277960974505678037736261591847591341177266936061805557156897181413154303053971527110824209613424246667051060357914561406063235202686173695409055651822928070297807650935548566407564770914979014275240766135873399170375675821143711564211511758772992950184780012212038562962119597888293519371581587874954602634577722841049982316453151147789529337324238134800863377949801439711752174140415029540427331728099526903075522193699177225612859666353885282951468231962302998336830358620908789163522821608270876342054853642229502103879067887526957252062733951927249015357366662172846430628078589198451285264103617518985780008767201494009932717572041654214951531749781420423273666695149136036835128187944360969326482789112141781456110201662216146134833814175458489711506418709601531179391834978647951539669599477992103596259427288680936893394564563761571837063687718118322524622889915884659608031630989668964296575355629008606344111080264791097017185312480400265397608684662293334531033331030552782550716326829065857405647092608866736842604388603332089909952191586755792177719037186486843841707932997374172166991976405261065101501916525291491436486807055283476034823175743379238926725885148545267942969405537179245389334794241961014125331044187958262239907461713987045061619991016076395247150406942871222823949095341655688082158030380987088707337545328881157295988390428417697925309746168018734941232844332407487399431851242856642120471147402594076491792248195303755582655379950096556840835814051493601524814217206560320338448181641244713791492183557395538998174612263434322755868088874104815891684381537935845790509445273395291399045818379119087476827104900003417395753145070226848904017887500734841305552067662149724771091767411152056745887435732869826132594645157209373426498416919005427352700864612896026823673573217691575159198109372441208382282425920251018081604626813971532594261244232044683730090363443287217989414164367920698026243646622903043067714819313710879090641946091692583512811132012381450080843909963867096716493357199849001952574353734228937383643196436124895433614711838246336348103015888848261337689195150905448300578700437396166586153260712647067666469539257000865525689848220454746618380205656401118014889477125663725590387771563834047205320885423240661134972290385925549917014214524023547606774582494100003734538745986618837835302286997252750134341846119963975839457649288570730188629074885380680291322297930400897133726162150484219242175731877984947652575229559112446618440619487636215416705148088195855198628396176220087830764082719152254125336121540939799144877046529439205154798335308183542045751797663466418129885802471344555553719480995636753684787500068607385088530784751408165980748140398216391314112924056853393780691702422095843701479400880103729572343878085009302869913233403533126829462014895505919656739750359224719189243700781191201647963202314545972150523742504108331106286156413557990373075717480479905180480309962344165065748687228660988240160307644807497205022796098530264416159139271054724689941461209146461998504971824048345999511719515530737800078012293141235848805448714940470634641720529299767273999315373616367891488493643759724211477385049217750573247668690515972977782734958677031187446453770050474314236284603303954603314976673113346254248065149950773012762164307473633520239150731959457400619588055582318438624483874845228637309078221460176717963624576250105186593261435619376089430721032353469600807638284711942147662364447777913311890915954994890796142380595834307820883701438321844705428732744878974008660507986550528688764819498058738983983386139611929426190483060353588990714851251265017669079082241768432512644378574384981832383830244835061769997072134990277331243926447631894816903119191028862257817930468410012057815634863013966451691545415674845887924048145286121866010605778133188196697403416444464985455402672351814875427014617993303700041992882375870500786477228347329153573616701624562556835900685513371608751051599630774599693014093782213286921275753429808232144155771567213809574174664413720469211553082895978383387991805735813745642269970633606590574667019322803913246721791836633079668664587224742884888425131011808498640880943984729566131028704272034354546951001543405706957072739963628023989970123140447339833853510766244815532900454164847989953631650246341083125244708617685149321541361685578509735566105916607674709247894490532487228900490280219223356095548126521883670611757052677719841157116281874140587686711074443959435065826480439047849438175875604850828361598124631109402193680779344773402142540196431899699659505087336895087640298238216329790736322988239492566264137223285601626377358372113176308953186616722238525401173159930354688785921480990556453590947159908698783854741384419985621011333690245213099372129025327159144516384395087831458671650117413142002466973417171793499607165893256095668831536407758179926635176579120004124923361043216920543263337175406419512634755622995866629546452852991549993717928702961150665532065335425373695052828669213608272037350685616733721014542242215429117495605473023775645398965297535996955992322578644495736041154430193606237504682299856163943251970753927482820069791569110458501900085689881242266703677203744157259247224698890741946080033057595657675942918785838842383027368164148448007576122668054339127083417566629161994506581900477397066887611132651448337279673549494163384256758380318283304990356765827855146888812586728922431440806192560030078962721218350136338521178551239182955150804075008430849954023712722053210652789200617353472641747716439058557983089457696829671198127521183098500966039787670942921019501616331803418581677941570161973422552440522218397443793145471024056596773690730840723891040150052248344130797149204791052967682441181789497507945438027422884418349438001229277382686176740958209346354395255066461807664333333931234660042586523179552233569139201461370006610736027268895656481540116010543207126679922907332989156127318208696482257232023491435155353620480811446587632529992001896930458801187259982584401957105068065246045012139715717121295649743050647960554000653482364627189657663357244142253508296254692536189985911327425233387533173664097583377444392990287163005005968573047089299636080342168967654229119637249587455826575633146331361556408944870801697993067144857652517319560546828266955650779715575339993039875112154039869739834311215897096703054045300091733730536995873064684654889409806491439697869995888229657620261617028289256588722183870846022642078701588681629864789767407451175238426315548469354074736053879911042735190755259074885301797035104040194046998671678375004276048194253998130050675085241674547857061765175312797918992311158134960960591130915972519607072364536775176296680350564996430547776655633033005831398970889017175871688777965076846156523846673790303509835017977135460289492839649150312265471374167874352089936470652614103626671907823608144998202285333029583109214318007450038347893330213601945031388545651207996377498816889100736743468964113839542903913904476190732655268456745537069929799612466422183227815006919013237776672239070618216702558517147142596523284046181353415120484128916355847388151570643901770753580134182319374544433015351199697105144312814765656470788500593952727155025505165372722811644353309248027806204718824107716273978536750207765560148313536092952839364971967038277488735504529970282074879741030849758102211911320691249250528243163899474444842235190567099260759997908929088149854214155704255240761883932228917199686873285993353272298367673949304217493960599587312462892104989916884039497994713120265088841974597136346749093647018526116129726093389623997053266790285041322271473600440275058758253360839255845955962536449161171952893236095389929228204412294301917052113406450692157194179268200702378535746237561668223778560070761923292822231795574127036426441486932496675659052500587614866072835394789447992536038333829461547341487882890076430756253846926926095769864685263871634588242913393374690827001560737760329665406428936498200844942092212573235346505864868648730295166323153463479087176616995249569938434792895805709798385272962939240301454948792057195106004470074135379861832511234771576552098880415302493102631497810788513481157059962663117344545065363789217365151869203689749657203645268977204729350815542831284327370861567401918471349038606911688512022231200180844618130212675230638531222405422040232882972154675233491969601069529455450968556508099253712188487006358251042126851246585090202568543025952470284552907981392397439182863879433410702114869681444101989708732506762780634186817357557732848114877489568662464633814007842313521424042965806578637755231617783799399096420763875407829091984983486451894854263666567649211546981045667799044116170633650705794064541793286572268551079881924246164351747533342931027360132908044927526067509954447383091170950321939313433024345379220198749446611485822600325888795583856745150542252701465784368997055266247348178736673668209311737686583426286100558097780548780686359456522124822881905733803253093463370770310364477729401559028021742314565647229694409541694905576949464464287636412167198620762142128843631297110819752635708986591784216356412206626177638109021119530905353150648256171372837500865767072065716585093225892234302899394101423969112611700245793208752225742357324024455107913851771350669100385782341475080635214898444589475204810790339556013634958769772212942312144203896143463185028678972311917616364563965493904898575359146560257450159338732651593818967660492619565867743682945028836859948912537739124101961943389456890973989815351539022963541921373905848103698473137017813717236442137178021538500558508110839262857206929124685907388867874822532498220298132381610562618399815941434181254681130745782714266880832055817845273870444964934563562440977676345314048386702876094577543426877688034457698733099805715851538052877312317746457894500799746568638575243091975773422715950725468704518556887820644752283837836811859181244584615371294732158913624659408494064842974506513075577751123503183203093336216902464101729040745176472264010626789251516784479871903640093673109471951635249005099822096537681262002200881007776346614013766835762676131123573149634747741317437369747273352711560467282123351790312019630985055405775826048886256826118784554505295382714024449511055013622664618512440648698146113941234252177149131183187461654923181283630927555632600064586184520501748233104873041888791613840176982744149301922176330867193253478123370289293617820043183071421480063037326516229070987354057728838413697803315736505512822204755301954368959877104136655244021918168866649357661578171156958739598200863887016955749161515683055368545198903056499135832988465591967093461942062599105286620834737654144469787083591522187833519143532828585404866614796743188718613885234174463212967302635038629041786162999815143656414239705218155069549931700077946843187112444003565943529323326551765822057247731107078824815001734272502253128624081981046471581688493013561005974234127857900401207735124758363453866159106579528447083098907668182504414489269457555859595822513000228439875044419437489694874943531486661126554374707142412052889968830667230164973745157981245959860714802583270340134122303963479662605931171160207207778756596059109332591189083662175611516866140413843356848381018075287721893500435466675115707717893612788611431767046715615793315678702267053482488418747476315634346097321503130949817966788489006042013584267019989479612089900989776511782343746050558980306729331153813432036047677231923549971361699557211327761896321303504808822152624130118806640564497391004313545013080504237194226462863168496459778873363618730325468594739282757418807678579554214046225376624579292219511635505579697048955036580923596443000907404432967065263823881896845522110671420228813289425079704111337579173299036773338572032488826744621165058170313022580285339528514762601116531249398416072562344127932927485444308014253981000684645780905424302227944204931627895725505911856977270866841833415439603215490913640036192581230176505492310043397874640338767627841768533835956159403333896662774306271294776439407208771220477855209005477598838176596614122155091650619543989809102093968463816884113162497640764324988814322905252326215783534453545974607861399643377741994537829458608736508034398026779318270573112377952015593943596126331502164569203926267826049085019746353297347112440758535864821751776802492079074065236059670989525151869796381817307187648461668251955766657279641378809345253726786619847225977743769944307554995808161241658714716550734702070555529379502690217463406887955133168649631869074493115565539859498650444147706030904591185979830983188778493616207140676346516428815817878452979388943282836622072007951217265525794905939161918064083456019135253166731510289025805021751944469000112043820757022792557010925207583061716383801137946700626332759202188090756884723037749258422570145268271705808114684424498369689467929893066029171763932354258500310732874388856830411998338388928383169252712284951334446402249985388258885634494067946707575895459935285812464949660442682124329378788355689172928622753910617575626288787134464660240451924797697579024228504768397145860114718006795022164265315771141656654399070902263633523219361533723499458455170650490829611089391295636693268984478065924948084007443432029958591037787688987036117396408868706682865815855336426844756084463750751850217300863181107394411049612842923253694255513583968017066339552595679548756468170452389142113150626769695885358007555795925996581966543088561996897668246393390502295224235424645623036796997967865536378931282468740060058599531647034917545322123126549843224325434397156650617818118360668302654504323395290970899999191066539486495651789554640905409168662041364938372583589574014863812202778406509800200487675408090445869028540760136211480117765838112299800857788548429777456880652295359147328637285201294167929057045661482788032168974713033502690346113698731717543602215798232805795601311513194288963925895321071668391043179114991819604734810437437382174522988303297766038085017448701638695733073239197004328253227374125922045311602855355199036659768780481100100061059271209014106048676015004567605538560186161524132614398527847497976699412354170733242026566679745444554834928634813158500696720724529731348627511252450647491597545751932892639777514808904607691547194246025525847644819195679381391815917294524529395805059191908772457423452302991418769205699490122581427942400301467432930360867410333452826312478657777307573993589014768609136343818653173145835038074832760507259591116209291116189363964070019696951738710225777658575301369738647870858278628323470708380309972387611928132216570899836052840287109720767334648078061199931352616623432687777504195314135008281125132592952987988154403392278394851845828792743637464290951329393609904127200767634538385091896384549928355113705643721368769576808830805175442415342828133874442984951041401629315177468091110322944472430181898697414194237423322069545009856565920393002461662758835411240075344677772684455530921646975871281982435327621551513441316066471859248718214083490729217989803938889647780504799415521422929600588852013036154712906027119156105707366769066321309683478980966402729365286090811509795245927265034278372864188592396087228727793558846975873841873041077771493154831138270952916920512580028351067797699985273170892754773909593569833271489787052267491601678868498633688890579947278029601526027993138769547777731361906524610587122508423042200283801279530830051874971927508608348841354768898582878201807892203537193939433103199911391479803472272210962975058654999510003895645394618134309421474035200221436326762083027352241419395361983942340024821590318699289013671457657923268554385594086839664114048877406067189904548909886247799225763941895303412069273289445372793871893881883416435435121485509328621255582876654686710050422259089006631858052798210684686338284034326869179665377057266016224639985290369401394923166971297891510583380594438659762554512328884727851760903049586985718803296743722765209188258516615207593543727311192648957812109578782244991029931421879520549994666143637919320583688720534198880861231682043288642895448797006043324054183509125796668920946801738149150856122594658360893231103708785885725401518396804428813767957693631890682621910128160323615919316316140146543676557515445379958927300926428402056264894286039900477697365750848669705265543442554837625768349425031977288654512265848419257499344475606244434489974500003455902655816217136962380246713453387407097883085252445291721998532493432327304739958493137687703023385415803781538882799569703173442527893880012067562511339716625635862564311678650435188019996428820477173853547762430221988375420837705721693754796630330127216068886570815084714734843787574321543802158034585032932139946052589452726149826617969171274851155554234844583429242591295520218700875916493777791893588240310384402328165995180342446191396074024622765584595546723492860167221992396663806957170514327473762775035321171908371805601182741974703271540005129409872283416959291518851408189971912169737594677643552144666696839102683325031573712958691634029359980353864582020411698894076037875893403339888833968533013187705201754791494962928422815406894961790251566957096118216288603816453906243971929134258907880280481160119461127520359816781624864121938788351060952134288351356731090615251996953579818298319319068374414730621986971547885484752019054590867534597879068012943675059295529742175968003824737562933264281757398300977961376455545254571814230343588555753121772652469934282389640096303748703296578539028059405413849064383054860127369511726714932668918336730536930107345925928688717810473624965673503869340863676097576159867860686217022404149657745097024532335132345489986835282273220569054154269355907543885408226880638141645170757587356766132144089191056359299413473944610062799310236988108371491976824756848772831128694983889818002740370187694548891939114270846401606388259236753277650016509879120801342882941606505138459090171564347134748200142097695147106763758089251138490276949344887989931776284045554013160078555504744593609794970766461872096441518694086687061927016756586709816498405908153978098033804021866465224826334264688461014052209734806350271860831849867067092535186503407191176281569414146434347447904741336480578169434276765919245095265693309692022849657853473350920055357112245541678394214963185698676955897680760593293794233456123003123916318462805437521691334602823205563206393803372814411683900838177649741386271197910632333150299134459873094677968905680854631983035018530459745912067494122456527496871979932802481633985419588750111768035429209168505725573952901977948810596705931295521154150943740051401056266588262545793974175656572297048408761114957560217061964538770542563994689796125871253336213147015855610712324679785034795317104130938039444945817255267009749020607608725899439634923246238498032532661413064899253626048995151623315699748327671269752842468013420908075686315839065458737038227777734295634208311024060085371738420738869124644632453909530483086641347364273184701983603314419747433487524155700951498025669323700152519546913820107339751731934984530811913945513991906592808442202917004905256757727494742715776454024980797442360214163093944885406196175945524602607227862078599310156504470705627829933233233345530295487606468255929970051809209023946083998059913142420493545348345862079019026753150544565044877589315241701614575492688708355542236460243306831035183625205590196099532370138807539090599320655172768393095584414988194314574914145471449851097371551277407655500413476138139389687437263922982090091935765896023820131610695026149528334303245585536355044959430318765535419233802074868062209157236057991410685523176739763643922398426732238635875693291467838918946167591898742901980665929596467977491447406363675090394001190192952637462996618298977957097562797542716958029212437546206720815702855008331240381634092104738868888685634030900178189896822079841002172998550487814255603022112487713410999383676951173408131352080580250424714936697346629212766854868229015139174448176208805088641347328985292445974714265505895281821443600599155736354631465980357733757475959655708158224534354992926141908643289313974629472249309175624514018404928297980036615826287754097087585258914647961579563576327713601983131149425916954205294745554463607264415037478890807608664758174100694382787792800321493712800776907913191265656925377129044529705739297161268858076206508882345995856868836845733630891381662587977467602554052414328758408865422848309240495958141320490363636843855951034755279672792308864615307411194240052718757391120825828338463502236624915051289815976046989292215389177664867244615954608484676408607325912285532993851190748134240841615078865804223900441490264762107750943295803103282061188503781902287011571044679570770724610110740084273009596514559643182583150299420201657550570909795717234597713330484643025241988332327370266959559975585565311978396661819875826081572059268934335854488086999557280563258530568314283952241092897096048837143168001116829071731499555877955019010703767969829767490681067497012724203492181864217920848161787424330798309664911829103867229539453206988126511955055063347606213183190206708146984944288880068222685864216973156647013958012990152340921995511558000636050404512335272417561388359738654958397822158099529079472180445706739839556541543807681750462036847637750756287791204090957476327099337364692854253634958535862220580415099781243306451003167898686785987488236501880854613298806451688195217631628291572737009900149087791916851055614291102011032992621319604562815729844786673186701365314735486553968241870818809445242568437759488120728798871103509755667450113008969873405747897666216184870201751049950495921710975687959863365974904702184855844716707636591923623912245976797262934464724357453012481403967644283745162341663454235008504490441864647570935542647813304075215673268257474804877494006464154553536921964221285867305269796871579806063422373370400572542723117931453175633721107064233932675303709439542295261303590735355988000971545151386819234800179433659523642357058078819825546048881314079380554704398049485993967148588050057532193006008360379070542328721270652457778339513292896529587985909837497914348993725271038159027244338779560161166822207630732697152070989767041982429615146298013679137615907425430392446152641305727291140670144290121178770298497423924352191334869360988075406718357165919491157440947898305320220940294515994394130727253328531492230826603566885217372226796228723470861066399641534798551163739576085142570282911810026100843462664265782141890752045459527980080354911529470069316659995461029850205234831957607916468252582650811066926169686637125790653465377529968922373565485556630848908120174692854487908172914284516752119954386370478667862613473721300401248998692884076196304900019521369988061609056103796554960855236488787300443665196866169793930349440640227009125874695021718259527465611065606249706665181860161074871952149085566885208904309233064018389537987490243390392732236465444577706622251725771464968029321184288969317706475186413744380042760905057165241867797118330183202774146737542730563137039197703492078057802152510168138457344194723542087899441456683922950035236515659430065184807399877538944420721578924916237450502210667652722846078401517836553203482600839571478615110301422304419783262101242261142493350932742770168188888675182944300713387679569468904005038138049704667334399181526143139346414249314112797539782910916566136711751916767334685615097976140228217593937426678000335437616841711415955509964781266559194169253911122121810891033602612549974429489089905689436208030874943724853142875603856681019005628888737216492315244791438534864075364611933204584481777713353581867908130610654228398508384135683912953629069921687385136153886133003919553101552930933723442385997815590370975581970959190803384707178741311543712465596200954740367683148691678320451545590634054006234827259025280786784531306151582067423172178430986221593342451346220231118074625820399296755626158707911562194762278042790185083866648346717685130694051217707073737605959979356369590176923078138486906303741688950053729398557854389313564073744227164501342005527221644679444416264968703766561732168494564974486394905020831440695091022599966501641639031304842531340626825380007590320805575004179906995511117676283670917699736835473780885745157258945891305501675082762673707508714984013972735041196568091378934337552217315547676758706691846255812314331247152995039167123542911657633880025186198670873689302727999290130888768518990236816521029689260039441596721533498797240189358434222279874892419283938100953401166978776182878380844335712769197174499956740508653994081373772401029371527478106543606825010128598037457872507998310403434552993760808461980430608573194953185457124968544484709347323076917207533843917872175455391035622590630654324212746851771853336929087644400738630978353454760952537245619664373461571136395068699005956576804883097714861506038876953617424023663009736694277519998807291772380495981758265562485240321676126496834884989050879438406254237554532435329046255346839748465804227785261371024099235922064428113502951074438418357128416157630512586577411941918121321043187253480272835965702521820674346762746850987358465240216210993102943128629882160641011738650673193975858794743636909245868615305521391701043927083868222414000473488606203696869147547637902328667256489362120113625608307532418994728733757897156787312293068719422970902428375866656822372004618845869116045833799614879834259435359212803665317017138774755578906328252127787134322654831068457109938883507739178245123760746778171908196069372043190682882277818795990903209136082324707538474173210161162510570181520689013238961194441266439340748934924805879732710771695894001649993587631250006481946900802554553627540038837286832747772234808477179109676746373933762693151070435346898816947509091474484588558526909964436841987893125064009876171888320113115561731728249615363381504852377031414405085137091583644854503634268311694584003700266104006352768319147261852545534151530591842258265324491563406675876422723933896021265786347016424523488469527598316769545308510590871723834077458460718414591719035360846889151483231650301202755703955600131245553283436559260317226406351833848241538498267908560330468139751189558608044207205373261459599832453828736289657722346812542691696065495735507766259681463662081609971295355602208945017437885077954224707262758890169611004507427613775261650635154564020165637008142725189738283876747838663121892631766855572886053277708766490976978093061063831056832755228345781675544613210560765987308809423456875679916677483923255772571937693637580630988127565727906395799103428129926546446502065600477710224505207660256490784495321430007018390194724777643809214949802363191016304226026588089562825815073944330991651009130730400260413242961792886347094752529922972454554406777357330737332682111645166761834932515819682382556829469792107170989971665899777230764395369773626348961237595071184112900367539987437334946291557101037523472757366854402961123029888496809708520323842003277257161447859528323007774229061457689078756745234756331083252610092518556504283145094860443648179804745774770868373522944691304468743752392927273952581075003172690343906520993685084557938198434718910250264373247680008057939937023844422648626948992915062984934947022029942828372355596095134060515360982639338180594993131043102049425421110535639645548627228006259876599624644033245674955223303338606563239931716248851212188005063239048100181112900374593164360657095847660954917346585398394345884939102845360238465479561125114212796269670686912946678133079261329548346932568733878291923603946068238494706966930623383386931684608897139379170106994695091892724329652829171681688226419622670315795399185769426685986874432069166515510542120671945853365771843679893546346737086063418114758095622101624868664023716360999812679248649518044576992375990589893226687611100684081251603683131778543977733012421466848773641159058674908391887763181290832987082992748987273698473665547824522749016828921741728323657762913654513001363582791626198174817880197466042199182993938317794780741034405490342726099097979994645784820398602557868223495862173763942755476204892339596135016551038607202095178906749426624319125251771760011433337004274276223693465824931410272604328147364307173686669967671271295672521408458231716424898016653311507134426694229520111122461938419344176304150665657666294815043864099192153642297296985460463320658806806609247901229537785225143655906801304076953054032037953857754134428430654859652054201591581388523409759227993030028683727206387960133116516516062422368231188974095433379989714968065246360026423464769040551454455102639336246477590228792627264704132261240616439582306599244739342406950725141382736338098002133810197097434710835025111674345982970131961468055005931717116915833153990453908101339445829337407910239218393345291813007247368835008263079010630449983892248889152721252278936817131863845148728872066408287696639017459505349033973686001936961798967485991241577870176140933969462737485538848540563034244325075385467788029188376626484719935099205332651690890966682840147358046995732541935636073590025799428590804355728474249059738584574332220653083666979276471467384588137114910126366711339553460846605828611878131794491067044272732543215150467603432037930055579189268467315429483995482516607902049162434336799432219834812774506681622188896724363943161882035391831468439811474875559394690796671667910558087276275437630074060581232546208681935005339425055733446981906419205874032980743556746793477421825914771453569797379018097120017244308035804206937470852198478944754836524282557403261871830586432735874522668108201312991574516585701222694256228706109709186283064850218429436266802661281823194405613977532850780409323196626846783001317501647592989987268552174969553052423874268057582291676750839491199030753645391665692175092007798084007534108041651440358347916193676186160452562566996870145660242275416902148716046995243420291360660386712523167845424722954623796481700763730576204419223879053804523599968338129823847790719425630826743329912552392157913095149894853499935886306174231534482714633206255349125467131439399013262844333702013296961940690055827699318334521547878179669000456254299311107507058628090534881143374705913218138072794293602077790123476432732262717209031584829137372306082899068904617618378531966291132459685711543707229188098650291925823613507532637894871442591166076502695054354408539143000112606926003139843743592090643852145991052547188892771866873287301442651705841493605170301867415460274851407136887942503234158408436769359392609679317739808293608380832115778461420837489327932290622812227173299801574372034254457631486669092671153896950175362741448928543184407915816734184644459803425057109910470462825658939884560061418685469173538541157579522268705105710975644962492479627183215148496863984887384951717977336901498419670685125587727408931983348360594095322448736737820049405917202348331756256254443095064670006821555711468663325044202882711363818956220067827920894590681760303404050679407427426026748553489102967567683633037441661469306299967140472924448928236766583522363120468943045983777045532509542904448129343202545983111506961733001492464505164056178326734706448535107826558787846552959023638377739140819443672970977744570268692139415996975942090288555965766671621068813686878862345024222549024934312725949824085780982555958133359291738897292802723070481290270684659844656619216689871446275463865238561403776959187507728492174607332962617115103251795075713612677653779522979860704479759172502975781560622690727874898588119632860871849384607499572511654337431886245021813044326166723659866374008713464212874394876312718541591352004647307806457170932692821610437224036104959581569362665024508998447319057912015514969357919899556407745602382264295777775648341837454985665613811465805730810605742105656840649028043690572280766058018158527397589359539247756774759319233217864050982005381228053586265750973908129765701313740745214063983363818235824844363908840770987236109731879126334191419835993769350031539415104048711851425847061842546092369737079661230384779886472532250696723236739589013019093352917254612471873964172491588437835857436816736040610934161003434704437031896694080737330803592209181573230837738032457426176871411178213257011989987371976703333587282239007235501237842776989364027254656137332755325585616818509522243347830526661810802233440795445777299335394117330120385000103731684470740049763942811710698291803917910864090769719437429089228879337804245609143442969242617998019833846483651579848858219689948666893943138753896250957667858150214552591571310816343951666588012121007213746094219687043983981974462602189921884082530586934485679161817110101678289174466519730535584697278345988330734883283268114628154619454909304705002368962262957993596013695613519113187713495236318886206608003869613432561519406964527621687195600417632111555634710227494496685614948254837558879402523328230313927913088520126600146223761310861336164337769438153496848073340106390713191237409262520000772193297477599912994017490721603728275340555607748257967160376609860278288297761330368430091721182176845068087172812808056452224523349979466741511936192343071281172450353596162317413664314225456335640543728398434049157816775964327231592905645303245318256315201407808888568494596708946971385530688797392224652906950515892850744417578941684964610083661413721846465951475237763835667518108086862256478291333087932474023242218373947741746022648747067689086496119657904958525693866024986428830031053833374264013082545297876664533382590238498098589649461794507315172037229006252108974420999369938406791056427337916543027384180598152445308791849920928503117843906964104291634016454409509929605384700048430479957582929944759580712072990491981821510364448786100072883883309794101066388368669749343738845442745689233349146095811632238707163367350811236432777206195928243706987355984169956583117156486181296051375902320071668785221804805268450663754454354147644688690643741539121584735675059554219361555598774531969812626514635557378462499473487626177966595443595443450325008885558978873603682179411273448552005504110099633554185855535127823131062430947821760456866998294813792661592185824747376845918958821201225555087501288983460898508390592050204855686487337848950509055994703691192111076434466392136945014478875766636746473089662239190857276638710952900256121406022880271282317240069068200460584632721839526185210816141763156763089182477925616325742458648700343254203415749213067503982568517282144638844188954121046186423450127221055642130364763142168832406712351598384271319995052244260901187272221432639079472116348268838365914969438348470589987832920932455071180340548928219189519582774657696966093999521704544384077349099393500045026948043895500208977852188451691938898114973608439236744995761543977662870561559067496050400467437406071351834163855167254537993459360113949999994728524838500582680622886142874914385743672016551957611211458563267596523582995724720565967585028788020857476317832728093586221265651995560499248107211968466488666907876670846932279378376101377217216859905837426493461228233997122570710423807398349863505650603728342469244219464430966593569875635646574219458824145863244395803135104667488923023989947941427398368934667188997955808673767531765509101866498083945960413281312981372430548939816697428805207786954008944013726485869884085565124379178752445861450382417172609954507497733158139285807226685084008115085725390529786698973325274322212403218016906243254995606126348941601020144821963917713579526399841526461665455471318755379913346406541155987528662724492287825590736825203982795722292753370448435323433793031856765557109383386614553203029657664504715496694705745112511767978184859264525402045598036659823689181053451547870815084746384045561530262902142612885183660482118980711720723448642789602752494470069062463967214743643076393887205711022371820489276670545501466698039066444405769731364565252379871870318020821716377290121631693662078701694445321400597450009436440723724491943834611930789851265665942841151616983445935933508002367534075833522594149579981782510081260370215217519434965978752302700255280375783609756910474658794459824508567091929505139385854387224751053066444497871368559963039187934351203688016041509243965610916985333859828968169174901697154863446793796832759577141885921426335877401204026817663354737654712258952707336100283219754887313574904386633233076943723433647425466395970585740831450969217458833933193439579890820861335998538220135007751585100906565305308422162248283489783962770570857843267642903418321877188371139934156657083597773222661944865753271095175976936524722216068571898432273006242459585253389076042356556907830809903933808960192356076301396906744312737815578945758743322616998143685193328266408955383950262876793041983168485186098030413038144987541389128977861937605724863501005013502869704082368800212260508437859377658187909155706099724152388010124470429976375925855028950458116658379556067959839536511184508292984145618041591312601828736321476427158662571451536656360811633551738978903652765832857628504805249071140281011705983683299374452073420381077084513252331904836920390764298602157810368872353640028937699865753091075649236765200227650876901213870435768531721014520827372027483845897984096039281479352339851302524381136601497711290228613076520861521002845620862440770009776942396658685293810686888127397385073789184736949970129816255851238969386983401796617644091494532310643769448536096069358288940069128564332711974213719188714140162413867017662658391737350508518827160412318503244978106724719413291451146589080123143170845935780573286373182679266720224459654434600150114907593982618660345942728380570356488072112607995233610368039305667288706160471797331076333243607533569430009456524848200828146143879800482893793736845093196788162433920225293553756523871392017338336428338364985552954844027007923175974256735639747475172763811357126857216069935888382658303829679621800247381436260388735644893744624489073952147357664666282282976821465974923636063691987963396442451042702014417944975516563650833349828536608859488185297268476965375247432593897549695183757313172578381316076829969523022386270852727004923550823962615184756689618305958095989024266316863459549176106395424321608407750722836878401397367620485163915909426725426496502665585307660788541082696741138274886669843875912154770582966249818931706987068009716455149928367421928273507239573008676554265984044900246882848935564633898593544882180692410543764035450114173427766893029793257086403985596242245879875481506800780946827345537407784712729697246428822316865041940644988601302821858621588579620395154718101257791932099890704054798393302592205927187792936301760058857271855369218279717645699550875198829345059799535618434496388812630089437574729172118069146473205123359308283929263365349568933881417584945179128761490102999843290202342636386789923096203198702704057743613474937769000244476735317636120566206698761253343816807404494346183520473147652190441228707850575331777131384379030989758117990416656209085455419182068347416962628070675349697254157290501306323955503050091252007179660913483115123075154901110323697750325639948435881348129549770732462955727722536520945222599213949230610485042198840057789536398065221507728345615051757010976630147258882714305778208392942593119278975783554845581424659101074164964970547902966563335926687084572759079833898989131137554975993002477472674056801768761016490058420362181848409213255573524290103429558842448854913941306264605946700691336807973626278343128325577571821646905466835044463345679291772837450396321614025360997271591746521747077002497455790685113860990021248724779966318411916801058967782561244338146139772194088403851811627784662911767077126928935928165227015168202804555608423750585856961481324728402450349320786347482185516108211884681459065709498685639552349909307208598251079251348130705276618524637504186489078307979804625486798244546894837518056101704180382764114290914408888176586548215222603103180937485329049778973587637218353460049934263253536343625063530889185002195125389913312028224301729902369491425916980905542272399857716704557485943145862921245841279010870620775859371858130526091810907107647566480391205563536532650990490390617817334428002644850281182549904996929313794158109306711671764010276684162589011521709921516480539926612459595960544786603306994802498287842910896455135273131093468537759753714108415478125613821435435150101154814151766204556066101084346165928474189456800636010762492682251671190455362787694692292712481241444389255319775184752830187432550717050987757811542884764423440250346101123258494445528455492468346885032137044180738711665261564944013740284749780391442901752798886430163071899803077191616174025151075107588529748179508405567717225735734231668255726456004334039550073237364183029738472132719722022546429674853323577834394215451332957261683050181401189452023214746566712643219212295119722961837168957738695415766303876721838946192081044331838385389548007867538717277380967306539151624664981393571593398820983855232248968815231789585585369949433325862025003839091983437852906419560410878498171806269131481440967208885915379278478606594539804892873704853499408797723698292033673562384840799766879920163544338727218205764762187279738716303037091312980812922991338600909618303010433668453542572508403150871375012360040046696755414875983271620282128903383091196434067974371496119757647526567739835543499801792647941364286265310175483083567310787346802123370678877624391864355334690641894967734354183607291262033661298674285806123235260972422005092994837574391743061609922787456325696777734029488105288167706220777217695639666209351897632709703638641084078117108783902748235064454420342588623247342459090982116746493605506812911207861798200947362650765391120891079186569067984478034340685399131699555586687806086053292863153222666842978098539207214450232276850708783983979628067193856830530319082342911361985821923325149199897832388187133167678709027303515038635885897325840332241822592131331136437765585480208224904794358347943462635874066670344414504595605681011388884367921480168244537888655491602246988949686960439658621936075533242626106700723447992154953779738258771808918682035330828560634668800262508781191161214714628753822146630520639210026035423478512666640511582077071919019576230277493133500634639957182131014410470495486791262480387901312935666852601584526275886557595525226740107749071875157174171547963582338169766019661007236759328211978241606986704594216138790701465923561640785436867957313321771953753197904050030847946121604300833275664323595501563708345193224169774637633538995713536503178338289922570731276578571750652106748459188243150005849195747592804615725005829605606404028936023620346685276858076806287642980565313570353119148145959825246693168254035263936545908740035251664966572783109272369364842497383613627253880634559188214456699916928629073679348170985397381788462377613525932649264463478554502520123071460508398502333134008522511738297385434876101144359550692750367545524261778205140495923968703663604298513795173670815391559604715113671417740775847633235489225659974856226300650670613739151567169837127329773564321360729812802171083472941279958092849080554268945011008312555954409941708466955325293868962766376612117384924810893624963159080057587902288137885624901018157880780099372470044652144975086567226157693714798818175446288976364038573272703954234132835965990408015012337282993916762383096717766569587197785274707642256522724830172283730761661894606975912327812332959090885801244488905737808660174179738822990151828406229758157013071514518086179026270958613810226382513762918939838892553279085438601840581120706496761810333188934773219126286934284028548546455499927412677001006816549765880698639246221152105546919614758415364510007553264148303717360101872557533677141050222355491984910407345634671110744435854832236922951476637226706812860626549199110016038539465284035739043358431964306831300453066482839472720458055760617523537085370000558620823030267676658831812622412101965864562310198782936187516226793196873068988016524960032600241825789381828154743461437369550963379025077939541503612037011216670015903426020778017438586814130153784367056857549714368968774854025417626935211057367509084443875124987962202859601933364756118614003040010557525863378151459600178725420628771830235183352550044119999290739643119519314734609508953212313597081545012018328538819735942694801960148816536068124440285974335441996393085651230272222501082877162449101867118883422693709112618106440033947214492915883359081377067434484983484672779970330728522322891674652210308163978630818269985934823188650209709303547600308972316519834733864355043755619540968579080758629524425655165384155523841353208705625883341063474217821201291731653949806136080737000829371611917910019444643677246488260970133308816060564061127330559675345478354348018590407985295847527169185775271034709075342007094205799037844398581768143277564216603249010253048218543994012723173772720500989383523927539121548456133595493404362757930587248707874083573830837624361721101080268256231953401302031672089498547492807519036535163932705133673183930985590723744183996758999921984639568622299549912871735042403950799365558500987687677365215993228816865894245808547123867014997501594123475110589316953239360156637807957212293200404281245439717039513959246757680933731999862772661637782715919672962622779770711401608411374346571141351371842879993950025033667104590977791407725947127798965922674388607354094018786368761911525003307956242512325930119578347619956882544342284488483804971822851270872400464445701362690027970948390117673888909447416171371971378236318684839295693317285608157684768931387016562021382683134083890152498517862802159774914141795203293966053772589810681223042098517995140890310816799865628278246842285771012730441549717193489379152364734323666812226238913936832154417836264775359097923715052179375201944977322216714414130828738893215120979851198945693065385734952105903218761177969001133743424362672850862241588821839133861863447033821922260805546831229114499991918860187585209739849182288014742620873063380396119724960905691968297232599744337816993925079089010066561403558306887593839482627229497354951903778281764978889483872472412405321984407804150448608594491896161103617218815263039008948293534532613222046028715580158506220844572035678194536069080916675187095309195082189810739712377442550353980956448275732488652476292327428477241622777951844485080752171676105101814784477068687945913872587302921356133805612228546647604932607659498716599402363511720147510694732375433652777381161541833490477792027657330240017045716942882013269464860219618665251680351567577419354297125557253495433431154954732474746412089312816300293594119008526542534613138993518696197414535131214389409565446933431767531979792307742237205930962427712052278179408178168071433164059783069252686590292324239211317544275383948558372790441132880102843971550355479369228560467261258330199253637475545554165615253561933990910519473517635562386657388048759961989535283800604599858476016068065804848332682358760428872103298333697366245269952347210445317639718451564270844348857606545855554474178150965950375625118396048796008512403324618456723315122797331967433747302980112262543016951404367547396296632168660180145323249512695208424105022807169151180668328324614933904237446605902459490591340730025778769982476105610980487181806701580045242908174533128366493070152879080508616702433615348483975373231075928611154151288316884422422946041519300930621908827665465435756947801524900975180208131874418307523096564749094794505154494190217369229743319687940795737913874587831696987967352811657069306742465044946275116855312920069843025738649105512943867799351849073841789643753387693857085682334874008069436761671728716744262400935684284113689317348379422257129812011882523840709887869844923726416452998783353532122615454811684623950954486106847139648541773178107397581428490228487378698123104884757841266423223111903460134437125320017595590676794413407982514043801254721167241859197508394730146177548735423241111873517233658524284144875006700988477981596269430581221054976173763050542149530609749288764268170556513776457510472106965464030515801174797299463601930582118402287519704647800182609511355250846208818248754788783314775376393159524875548164841345327290962498367535449634440861252907164892858400188390637641877309449931945376535755790357960284999723860922674507679745017254251264860692762468053384683042417458249145583525060847624938789864476413939926480150355357360290566347501742048525697863417430080976804129227287772109399488010011517351277458129405230432167228712586735958006280179914746331506863894376908920347788676175568557552285652897384006923692746531961767127552628266391555424574029967463670285347974646075347890631234610825129993594221499295062417372181277326406727247619860013447565898821157399853132950132844027488522876207074113938892754445309862801522954380406747424140895859647564725960493781777158877897774800978730089047182535032303566625198911786907432787904965261421370435441273789864213049347858341443238376313376659287580564714829485751951596097909113126414029822179728083889816483623338545670525733461651443052040104380792367653713160974719560732053531162194407136488668060787129840646483208422748421934611739113338476948391947526456857403815326236886705209057666470347990581857221167379950301583094855770582488832475698727131101069292298469278408403892994622668605789999604562397863058891170489077182146407153931501161220142822796789933807880085869044281258849162365122098265982559151090881224712814117789357357967462434087660156184880736627663747694431807541816187041557354037118693231080729943063136412151652504847139067581232128669761234551270225964432674255057211132588456798235214420713908960185582096313497709558120086980667311878118961328056461724537817618465410175334639506547135010539192803924099954363654039203426148560518374866211248519378539040681809052357870735215570786733673933198821076214231199279058865520990901542883965229450896595930218499082004484847174236636878807105262743950440672187933791007802870910413084830056270628902674564636999769245842850314966805985790461347221463509945393999977655267887615289791871010626522904377940531988256786876448500454573926131304734083295476088269844934993131294842719848753773525387820502284292304269168507070171633687181243386062262266128376003174352286818665059078545509363063770439123703157375929248063838862219061147776862899511973194888340509446137066346465169502495027940511723602326197884111483205338450454425189823194482272539566400283798959298431845965261890017025681694186076310433941108764144202620187135246571535195962966702714614592332900121835223602372595840531796902075452464429972867553086851324131500608669366954172706473371275185821226670815986835051464389103307122887009911185541099901777691320864790709056365986064576357503197189801448301276132700821631339136670318051116156019524400349646404516911412984049584691661216381243859935762577538809610946380827863028733412296535570986346020098952777270895576795380190577136834461201129528556072893748813519809459910779016009339438317713544659237623386160996781554186251808675100803521553477233326981046601882382713526976191542413337508095405529188111430633667328646591657674831936061813241910171127965369931336022658489175565974428014135789331259570618162633359549591192758552362074138011612449155318769530775194746879981182810181023555430887048623011859824035007058522199439155216669214034551832741631989689058894768098886443492816847338257568079700100349813130777539389817735519962842130389465841170599536043086046319318648077334099159778747903798210458791783333950655907697508604846835143191871635539077612153168276259889157280750621426187596236415737648318563053733759148225953890237001124581947427589370029397469520799669285980409851128730540667191982344648157397526733334622775477509059659193583593738327310207808882820732491424194436804681503669848806070491643333266482914898045189534843338032575203216678215392479831743134865998290370652273849810165081292349637954707799767939156594872740429314195310653474899224609482872457038798682784912120757306571170620704811614862486926355499056924441512723455733552108707275069212022175754365906899683692850340090208990482673508268229143812543336748464156007563973679744977501324305085083182991274924606784024489632940772767581657703271980331633107983219212516202639347851859839587109318886911424659482967591213371368227240169147685136623170772362656496131115830913079690782393402432992232841854444081857913329348890185683998301206960937055679314368296178196017321528340536155445530519984162768602468891546816559679130316771593671794706228811723667716973073644668510546028844750371571900145946632078460040110431418414197173085120906987678676798679243177880146472897906940515246528752808779020563659256733139402675785871234364529244491193601691509210456899510600240865076027344850775851351233010624001019328704966369831877621976203355450852612176898113923032334846147543212789104251912699318105742673817092746315212048537354287497133749981681928122113259531178830182783007947834027827978900477966049608550018516090457716547517411993606061564802693145006217946761999692367441004302843088749943677343463611491834955815517130260308087627456314235551932724281536048467398282460660139321119622654744286104152938751110731134651532998080858651504936581063396246427582237184598828732411518944096409122576455393598666201035175623566501316281819962293683841441885728978789669847028836448220390681931399310017706816987434719274179690922987851119587288260351803023153980811659123624456869085567798430268476224358528849667320693180221514464987641984841892923483571792563449542284510011478449131834874776221919955074740996909350346064956496425666890606112858997034174340070527611449273518947286538063730642243476139013114989588644202740427337185953226207987735897644692079546633998146995493070434963008735649796220743974712954338470926530853870049075908765247422094485868890007987843473799044594364026603168852166602625893499430305740529110787444274191758615868135440895366870871365784592937079362141847207924677996174412941857526999022188477066999581343488609760138263235301519004059172570272287411920769289875257939416451117996074350598182135673835533531904625138673380531708497458461068366578620617724056526527411916748050194638872362271744097071915403729843030553544182378113412044329249980446028633601114800561087677125798774638897071293713951393421833429623191369717447033436447876020042631003268280489400380543140250281328163109680101037840107104240425703387981744856064242389600632352713985866463892511462710286730749283700816990126659126888926908388594816712992431992072176302631613249939688539191311907633168878192279175718066140818963142650585686779437097654770270220204465036687901215037597092771703978590642246191267345150089314877534922996974052666403907754657880321242507043833833636396301681665077043683505954687013605292581708937155332862225524080881204094777159483177507890144776689827621611348032985820716767853933691939985143708362197638175119826218703040597395957466506757195994757901638408898238157153039842858450267564563755352386106096958688402891694062189487475352769448637262646086113690303228148862657015549678558293017399336901083904730769371541314307085176653358754743099721913959188498375550809945115887048349545263997130773688110680270730243939654736138713566714035319568104909339788264600891518469669178229617799529343875613532955835658120447699960530307775973985707677305093861660743656333778982227251817126298834745747086684088848089053051198967041375130317736521474044164366037384798827689873358380861665718545748174885259008606229934030350617583418073816479789340822984535502833251892823765035471150433036422958780681393891324191921584203778356178058326761109405040650614784895939339363901416641929355370548344506332115825109145457524056201202295103011318393148852117108390809636857152349388585360153910182866033554023970247008689095291194504609517151203694375584091718522175786621022053066631910880615982928998627713680528833350949615064122997757331612435804192753724069115211975307127269449002729064277990201270076654272147810680929354571032434945464280832381632420562649569197736017295004437083072363942145414383690758765262555546519703293151477004330724005351033462558974468365384884701569964703568234625899003472431063136755121327467715629483110046032172149867430221579806386193851101512683412468275405137136269134183592536314883013210669740797091984090513663772570922613335051053464970587354672028524974865440883907858455501200375166456897322085985928979313623474948092229137026782153105731390594595221066689918247512853566839043582147890441875925016737983706891912421052965797966427019566038860826573712632551233049071213490407003076435490993375025253413324356864979093268475073717100721781612197143946134596429837574787247354285392434269819544459417249003129538970164322547937718015512695984334802056665420045181209546716306044951637581179447772449526271746544847593712684779974209191923125423232936138102325050267246587388024656300531328259867866055156039671350661052984965322144814547635080674932007877845408795511006218497781205714408808227323979580330198778236918268197164346347570502163563351909524753840323727747768103934581885556336922083810292672608916436668306627518358979658935068505334488765333091326591993646199530402839679533137772028089274374832591372844266857102590516299024546500662973642997098712554452605365291897186593522470370776670368952345993921423071299598544040500649817725023151551671008063912922398760852821038515922784370209554706757413480584900012152616803983197550849922863785080547649660646665289870930189990457562385207326515970298508502528492027669772691318297478914360655519716727521055557020758774578689191585035808762642769930626413966431104515294439531318508868929368859122317086938293702114683194231974942206290357131947059499462124899612745764955266078491696717284935922834459523823991523669060196236742150985866603385953976269504634209149548561900487109866713373324478134608271206986771205346340077777745317077069181590164296381922290497398108135806944169460249428691164350017586503489347491422693599226739456176395887141209828692033030345445074793782976560104110146345506707259043120942336768828560444916683580583734239588390252003320851504768214026970583342657403278105481674206758817056593754937448698206098357205917695017666047233561718972052086444324144245784283847644941015463151317661781490055783042720806334356251671057055777729795996388121000552279615270608712698927717602090704011597151824103865115582180878247069485551369589016311848080144964928268213790026930936864560047737007924513955403240511169075009861932056646108246981618751897171306246301849379680606968045115218799309225276814286422106484829218356732952236392115712990580222881752495861216728285735543264729922139698583131635358747921588657717598851517098303295452900150593892549624844202067540509006655057222055318838438852135660964392866608454001482557529840633928488139227733333748681776432838548469788247818252081715319163975633592190611057637999153010610753913509372778770406356672019712400400095695783337496705341425699337972440233784315592024236685708659504955903538231976759372117365236766622180723393221324783709895651306345367139372317928384209203919796700202323070608646253724333397853686733379592361987729843110081547434719942220856945987233545233435994306526974105404040200594374795257815507987238736380291626762630569303875538211459142315099333031833738474753667975874528620555346965607714812075415891411680305172533336800526544268209876732628702155434230894997296138150140574615704789673276221867944199001834346763464167532178265106130998962510754728786735510475427405677145176159255501690334602310329824023353515173081141872401626602601491981520550306861550176305800825447826241593854194343635471387767170767270927400579464736073221509039506755032895615277181361678368444896235150969795241230682281590418866710918468650761433884576089737741396619611146035466936334770944692704845560699404333704501154005018608515376586075861853663534301084264675500595147451994634527518325651249605492560189083339471889602758235155611976653672293554769419010390538546951416663628229205105712119113737115946069236856271785136337623955109985739200441720428656479659007410019286455036975527067680090123089174947140352601264688009470445105713669121157495638944659295733525864742050881985174025890396871248525117063490293476013217181926981173603724859418499705188626117680268278542347611772199945268621382686045370403811226245068131062534670564085597950242339793701672950458936783361716999429482105380881445451210998845510428171660970354408403509995059235632707126591917773860094710989611786816235707771992346412004564653218035294465919858852115895061837454398359318788942147172451946243284499132665818415276595697922643780265101671746047110817594045011523038782526532728895129309258210885736164368092853483879754160081767187351761052642536150624654151197040107790314089860054879908313323833091758396727938381926896885811664816592319107146793428033240752285571534144079300813837446732084008839453046305462275149596299414957888016038654465809194759950279265189676465717536685275568850605003919378792472577960254642502596652757944677094939915074294250166968782224752042059350445158842887011133213555589615195384984681867139356747591266135678547565889151623449483913831021294083171267427993660106260323953567663057932198172721060418261453224902005625150683720305787627282978634734209223485952602054702118789195009648288310864085896155160513346172587954933399025272511182313851101714775870334072775792572901435462702564679741559722688911311860149274735700505096452344903301525975021649917871410648300089302291888070241216821660445267313738949488439089208151367144202612542938590095712168991820470256263442383002013631965963994724860618011879576628410895904375819627393319984362196618553647385596535642101663190312273715930839857911652323884733469203838983852207085948333214422924260408023757993248389084354596288394641232254148854938717372768277587312809911491668188684922774608964990388719809203917185724136242042822345305364704365626256970489935357686959426732391686371249414798751760391926478782426913058449564143680519174370291046299102821464607704719570566878732369484299216731471120349604978182333586617783381265073085750669905727858004009407021747644879230607174870632642910201842292838337721243595008716492182142052989071223503836905376917137227186213822763763117032094858105601409256570623089997863368823173786780857425080134652379799243444302298290680824139691252133769383013406501526031028627980330212042516204059807795634374011765622477463845725843410229365320290910899460518055381393390634786667289211529652019033249722410511624942068359863219426893705685337080585482420908698423106616847943317314986146500642243063977386253220743072213003112825037904915007372662559085465276137487822527216183835628030262488275334036223769944873358638612825195377737896331254072928289659703040925757559176682538315476657650474728168921710187264739973143167909057791519765182491170348883471356368118278204722243090407342830290774678689667416143989971973497489021675425755038303609920746596517651955079039153861890481997548072223281231864300550709093381836828386787970582959488252297846472211581112778534781731798585537230918140669770676896451882078671784355755074232882885163284357741311888697126494192752395870802033280319587791838764908772740586975412340252008704064870990905146435389563266086644160896638953365139576136757138365736403365430188891256632530409856013045615044547301323023884939451707769167996544523367923758804081036229487041015246538034529087875789987826010193644687321958428086691116662905247270256269984189173887329512749232043227523141409406333643820697867236546500278188190346413582272332291370122591511317180370258107378359389138975624594194976124621297701697098467778886550482848955377986871648993828380866443599124249374597952323347791983987246066938119937108584613556974471911912532962361292188252654640509599136022602297208153856164317958501403031697769402679823178455636996538412975051271959558634735268491397861598691787974633751793221894124362763852265093446832815841386589522722904771912333209253468822917734318863062511939746858625425240921316283655177417377699866701115939789231668770667518132747821589122787874839855921062168900169626695337998946529374088966152470110745683543572746938269607205756674523418200439754933167047102680862793167185260684687214184349799526578620426067377348367259412574545538381638921691415541694483737624131371310520692353748408587316385943363606405086121470718260395483423920803900534487934071383985901919604463508889945793435511023185372534637574201453725400393274706225242741830758916686332393304206174036904357471588596083265587281631267278564621996063430746954346432597038608988812834977520957885157581735856805019058812573154064727423790199762915623205832498500765244028006147895560929021649143978121235616412216534863464692843518067595669176833347291361733484805205003511519190598156399567607128433929109461589409634754222147674653579055711594699558843462543284528142868856780985669921689236857435879286715020575758143692676571144429062991869433574181371261034632530822827520725311041476671927026103588521103508633844182646658147010076286066442792843340752512442697163332085216152928686163481249821048823132586746178873158336473131924973953830161794850859188158458513066797482611312568575616785729978556510372184490293981387224119617114461598956977211793929506223521949898320794853770327306141874546268075334648613538274854709869737078125405975334669826074425949837435702445046317673012582486684979954222459283740188562020213338315480099884369637146873942244153403533423452209853164031605852223032302011806714530947626483183355361074519015773457065324956530818828636337158435690268895990898251734447341521276557392488754032990938620320754629104695242081915111858796538701641786685402096555387839726534934877110240078501324818621636345863452340162275923748940855330414033447807355273011407107702942625678735235654492722690367977079365710080204964449481899432483131964577620665061046628277861520417514486835875349182431921762105402744174953850382421787288322225602460288620569822734648882086205332796845239444754110831360325584834775255303107987368359988580828259348015121403083051863768411970517721483154532150219156159657999145577408629711647451552182205948196764588283160250243873035225798039665371016099919175807008825277114187272684267917500025762625167071507727108002827322464945391436682802837635631884733559275369437098556625403340299199657811417495341454032794057278706910954259979368204595727286722531498414118148818635980952786466546979967447285006735524965070186569615669207112090032744577209256472252267720591568732742771532250957557049653943332738921398973027122097336968721507516954616117214622342023422658485148809062832989879405879951056683083106085922740083975836936770246224745458866515561414179986574708363016640453746978534869592738229899935703232704486339456740608322239736083791539231782176127892861609346782022829667795726716371227159041590193845709145486313818831245687440313724026367367243702087022308257413578171588230932936980339539572901439008951637056316168782437600357600171603355912001984244469412354452621541250037139003153603705883086218184563831182302941489050183595015086807796728514705431703264062778131055803344099069259922435171793296806188862088654609820513441569762028726758487184203042260192999628073399406529658223567554936324539953966449571157876568778153538140718289901582847434929765143135502851885596320968694288155763863786317774009549511836572927027004874843405961898520618293984562959656324076518389235212186741055968869487295244334131062962920176711626625499572933593986740114558157043350516838536374315199865739431500975948545112526515220611210150130976589177048489670573920510825143907548976232010566902695264873300546940733999272478348830348553513718479186576871228306862311015466700956496004549134157498686086046670420609903127050157973817760823140428037974031851267475521372960205176654732032498270870488286101308888703710784723586722876832974070452991382359956644495476886834669846963922994830069866623987032114592255073317610939282332542446663990431513405940092566397061775701036742983122804485935546517199147625639927844724997696416622578880531731593593172790901925500095008701849069406766324195333027262861868880653408377512735640167562799036261618787331066115096955146391134145621980084827909815708063765528740155012293182406692470174119766010965251435040549356890388995862567467232270027362089708309282071954218079833527863473088337899697999493553231270776124741999413410932010120044985502238357053332245723084737981067430003251072664692727070143454519262327712826266471693816405067532181503431138226704156698594848114662530428228337569229929379914008125459251941643093742368724036366337670930749267942231455299225028731669098323850952046038051474357235663441071579928660106256659458787880702818507003046879328647025430942147793304377772647956593755085743645174054857933680304304730276756865783477878984309153931297165372677865253031034979610687305691318143020471725689485093262684642218433062951344917775321698029392449160112650989171456638494534838043271894709920882242592335558546551431932320243796827067664734921266121859831197123550420336566266793773751486706989239955558786078174195763694878005501292175682354770401523732734622836997193076510537828418037893761954557422332257543388340978669476912728492522217233732682592268355494706762673326635391748404239221512230124283802677588849088982608014431075106866318270911965986539174664715473990101646553023447559252608075351492812100110088748467228733669571399275683292875871555969261716764173563481073138791545897160028938520045105942714506972079251910600800160943848477794761867195154098841658557468705136686512265429615207729189566211119790983155406683220910498865486776618193966881680048252057718359025349478194055793863541381783810427323334935257793352766090513456404375999754633633288580165792591809711949510744077885367876593231593583234120530450672523612597279990043862004910220657886546242089414842378682171720951490211172405582491768434546627424353331541599538317024849821196050952542775744126778087056936282104061148325794371310228937125950187035293499468619703684723709991075508681805492210403820334298869375317137240717757323185741405031632796495622071625001843203176537851969585789204644308583026530649934007021356293266266937985068391000265113625673940486479660239448051472861145650793499880165729396899183203529904816205211248843069755642591169878982991564137647775951700821977650637568701555464257866727752625100167012745971691030144849110851404446364698962897339753897723192941330933998876738809853856388200058112918028629744733426620992462892255486919999186000507971000063426447940580510886644488274455516280135646890594841595603686317774780849992655169072662463909521272554979332334176392854824529173296577310334796482262195173379516784069565210031243086319225875631473037729414613471928897893475905503484749296150785549024123896907594045926201614376960699782445407394331820105237386309052491104422210814284745832700618425515491344717953297763380555797457235711209463367180574402664397613423594143809392206317372251904644739338934745590526044476182043265138563060790078154804277229628048523925515091522687602833427703245993547797307487151392480205997688584880846756902855524968820261445436557518208458249160854902736364639547939980660541580753081519143714404234970260926870030893181561856277025058062611482851172241726180756289497815125382970741497961024800375403901906185173954885969415535177124700546395946323780578496779836928951774187930305515351514173275683084430734698367903940732920825507573867799150103561841318171038595128986495754693663472511398887074135229534509851391742805183612192912540181629531330720644685144711809587178055584466910673325853895378965050152431947173003764785428543471554884589628834758257776567959785597862612230195899017306418418131901532344286086154889425232257278984351958119588982354996068927138821588592029196490162456656019032127834114445879585040739480936641822380751951316238211521445922661288181666771789615992958357793018475380928719430904761347424048290574268892138368026694828159577389570688632063533388321020241572639077744568526478608182435991328060647036191405192081969403438546564650175971410990197210103640513700928195776406639019350870726175678025292231079851156422670827514950801685099561038838597048963323141625684578216682993124390912822806830720944334647409905757925499864924066846996609300698512879845390632768524451826764198972126895640537540449466081275243061342716836960225369763651756904910374205976921090699048727373058199565780180455480205559667712942774540450936397367184852711103657200337377587052145643511021895974835479673250939360912545357180995890553391903234146891907249318765356231683824974099070718693274791866358669545691553617454816296054787609872941018135831578121377506898902476724189607055318401772564699230198645892736303993706542150393448570084443757948630072831668831944981244918175269695679108644341229151645871561069664795681582861035308245064715822011542721621121329515901895328012893965923055538092076755076165605600627345492476184917155867883372216994163304685891090566698129339076277163400033127933940689440547488885169743368832071021083308022008247696856678189845009537939633162610702703144259579709739021768472936023727489501136536345059308496606284876517047531162260056401487859334846573531587841437898885684399008412643444237900851754855140609475107049790221184936446500805700990967499669632836482071298666486883310083386153784531130250516888246196888520278031566568535602777390372821441275703280669034962933875223269837042910335444497839124059483467761491659910618625639869939757287232821050503270989522607256157518025022971676038513557563855252741695130887298962490823760693971481622234947438960462201126224273478558495062128386994735303548595302982491909056000667477688515016530138043795002241863341850899817111611409484053452501339792165226112180703596155877557351778902507205835246991323285097437146338138418494941966408246988428103216301089714987411621986167553472105960106343739695445084750583064274489900502616514205657788962455899403651167011183242430760813677126429866711367861233315942280566737792901587249882534254566714478974109785722489842890872967187305081726106340836168757152477559887999825330385953929719148730731397646894980533538921865739867509969922280805069431894751745261199542564680414812890052731954262218617206160361029668861109817538101535274973335029075500774990436186123473166051278514009515009565783276654848917195668389687473227968869212512687207239753204190485079965871101477402667972701821546781308681759182067506790773832999763051012160352113562630350618351181353600564741271848193740544514766068808876294213904356617681234112021642889930160122238911795420315717105789927204498185624738477128551145801519966382130008135758997548833442852722102396351530139811213386335459563422486799128613905132903330446023076710889232599594238874786427545795695587401249227639138920331036298733734800910435526122329326836780706227177132854638775659442281485539522550595865368148231296979676408161523665024118695569700424046240495024131217920614426176963729461462170868844845960112011283581845445851410007513822260290611669165845227769783470773167889475418001710951407512034440197741898568782206234633022589555749113430960903019067999418648030841917953785610870520929649560764564096790180378072550610678206425688359343379494774824730152974277019869543072938944574737415188493507619217139223820303715968150847759168633257068240553265824401724439924071414113367488790034859139191195557639503011596704085667192784569064751722622628747914934874069008082461823676601477945282651954857283001488674970984231776773172431045800225462918358923570945518668501264414158720665428694900681249860014888520561606120022093549133068734934539805023772129926885850210689550840454880633377452303905489827813431366196686222483838770095547500521228653497675681247240324821143953510522823589006688296851659610657667003022774109644582347120948519475699122156424154658793120297270940495029111416321125877568709169819268997379803717537028367009298021318736247365455596469937532213223711516158371452795642320677507867552941667433633919368848240075100263838623821709107293988660222612402128308152285755550805523591152888406155086063795637371864709360599207211170962077598789542889036818040333819605067124219033682047831866478763136294800418646709552293647472881182570579001091867382816203044035007281954962144690734813892582433272822554330302617601138909064083062981265878183392499229495009908256932412196063824882453842370256905846218392438990474397203827704241656631946131477187284906966861489843045256544462118507736944255771080382583473734307402319141735581860771150609345323506212035286733920362776253409841384748229762482999242167778371732431081153881241876018778675870004857009682387248050291385493424742420704370547407542256764249253066730602797561201058512814357771547818618531613820651138623567971453931833557218218262828344495151834396829108710314235952018913672974410526102512024843557843208168709282273667830247503530411101116683920120673934755582407735543152621865944465267939412292677102090777330999919621634862484321567899242822161889138813017248056656154390591001284796186637535131565393034230114259431229206237253466241736649342447527097516253556657678662303480576808636041743967624023181974366382246653100428406841861476822165475157868706678049371895066840749304798999572938474355454462142292973231634903249476561538289833447850170643825258222348868309224853410825821423226404848568107129293248615464904292498624463142843597145592382077837865658916954482998367520877523229614678726134198557905314944825062892077943518816652797411500697894332969754019580195310306787403655453900093783844272826996242299072791999306301059032268599026199462955078895416532736343961139928672472218707933371750801777709848871194300884705574181595283167342018031429672488882323415596596899234401604395206482479981024568383976156229128920731670095222070162394479160779767903165178293188242973506895446762925045180335217402771864132203259888641172238701955172024098745730974348154568304162895741571756811969624217661062948676594291558685124817047773300271532845844095579792546352257260081708021325431522383380963894559558117067069595316069700490586678248500228502748429566188907811247070615484023350169791492813760338801130995062959765707956915149075671242762622001036137354276041881794603044538744335266181675187509161224126889520682729980026722234479598284272741124383303111068609574484648078216103661016057975690815235786042144220877662921962783858186345939967464510377119473204746179040528116110971078619335289101819137201491068073445948930672954990172654030132738989396611987433521201529720666561050289713200149870360592784042018076581214268340627920010019924986626013167584609847078368729329227471074230769780513832914258263391626127351051117436654220614929533798310020983432512771482927099189558251046614925265516020479282419242444786210690347611272659037705758413510015095757517179604016161698344762575557719833643290573687202002099526319992808114231721149335893878879591731785167435390864020711386722861668483780008625150091933840571173704666596693172310150657587331513262647258319077106089067261946474369735906017718123014209363251311914116673487922372334809007365311622174558254151226346667057820502531248817927415140451210207890744126668687307612102243365966482449985574819234997312544479219704878846386494561249095125899478034797046598720586516494214457011222369014863945737669849986767038539538258137375350034313328502963981249416635341526572589728729135381474255727086117905594441650056589481038278954265150998077380093789460224804405380838397936297267393568248439827928808558348607314459034655028268858741296506120000449219557352896244215288675632955081388488215717900198571066801596755482421344388978702330401420082473858687537069736875737722695194479328682738993228998438077381298517682559739398274238464084964984092412452252646379195279432856962016484556031468787828229211543702372747704310654301165678424201356636312993524671629719217171541613029728810599216453892788963168584692360179636547714935415073414521303324236616001577179332114701705568818269768327494140837061079800366621796623444438878333856349966768204315917950490327955942381169570535946709208276903220180653852654846969055002225788648341987707143381916673155091160988904436607949172372911047365542059835276235117596866248534301981996493601225171230310845732515125442133321588377954789440195760070703987934131298308599071002756110630184630597735030570975327597128538766916999084335815213798183785272487285224504800155679236079857825609317364806128815305944901963866144692358599840135180238014629334995533772416310378408718543371604989388674517677313694259250050079543049071933884694620233795527109040981586326990638016050962297574960991099455003659676215481504840974407678310697272655699601687204741654940273941148429052638175343789842717230395082765539583602358339539295606765658222327589670685988300421044675003595457616018366023830309391775155713274458401342360421458492604084554492014218485870454722558179895284214425853128944777574513036395104503454504396973879817161603840489760034954275572737225522612614632788035973728992289031782643196559712645397523995281288792301443594621889153653666689368526027821431219857893443188362964257592466442564351501654251301359882845109585943560434594808012267921448236136864152097244721344227080938802992377440922191551593117153598136616603649248015330623393640529335034610631221147096393725872268675671424885331805616661536890907531606845400730779935411240634049310552733560532601723054124345653346641410044835711584782255398071444888920264847333141777798770876333347795858997340407295235026323582896337241895895469846180260820431578238326760190536963137973571374476815250811448446356321345685232568230658238278955335834965109760046126583609638430391752550144791474986759520030807295389536185395273772567419986679703960835992344705945560600219426489357694350729725143026078698251492783326985633470545128986415874022979508956960746263612577947770879374357129841894299691337437809556530193992126358486274701555503618871061030492334014067219614621577665616808014239443255517294242314212923244617751078578101902484510741189752180635710405112167397298190875534411266516389081120052835732665944559158657250520006209730889450931536989409676636381648353838679843785389842813553424680364706029244974603160770798560412701009981441045020562845091424932582459845509016463754245290896947995317762632340850582822069066958803671304412221682733111429493252980494530075298401728305749031919095373030034238103017917603532564276015350525797229937467491897654343732052874066955646647263170306765212126450632989010136199304677639758325000579527708982938240664326374215095148154285248913858302526561926454791710717172747791305369879626656603913057283131781838527587991403463455164072130507269845133058588614381436164420815020277460455103113857957399405998751806026946473908366249619722264313412385535952160059181343255536353994948400404760116189018384992013081856653077948553562131596796692015013533493528945746609336129694131962587449324906763563616318575510605992332373058012901346800275204208596085648256401872895487424351099480116941523233883813020799144523231534091607328238007820054607868227814674044178531528024611271684388392523699493984252222332014164170437968898901683174306324933309164973000478968021404497805178261846987085255623534162287660539212712170202422489814287863599813144593109053797563580541425074725535732646871232656421231211207385269365293685865708773824644656587244208412735236372736562136755540369175991997176946946802243268708484416551522723361651180267737142674356265018842848045990021957112130631727453077258345975551975855493914782666839383651081866720296872295226499927471732489139324623990848135501142998676379938021546315661222452699786509005897528682696575479465267247688461284423698536440621838311181008348152024664511632140958521858617233705522047457781120406422073435304227475452479111076011897812942592737210121912792947843489389131573348295187943735462121927611272633015003327561968491524225481327418412596928880000971291398081426809377143866630111242388579091299288287205951471633957928260273258929175935102610122362789065560545409154145825788784483859824643888769816960803239524394065587908624682418314692647571727729571854378936652300055249322467571797946223878075942696004595809310826564758529754918017642708969559166603096973745708123646972758703566639294500359245708208024655813265570163239450950059486182488263413377521458319909821386395905120527712910952890524378368580894031885298647889759957591422345751783814207783357956294956400876123659968476458391213284282032476607108257101877583842874853495551004412824435468921151833776119172757539418976558133375559793540146614974556260331205212754992280555742264832475853674607833462233380507369977040323905880728315474870793500305644021394788728894339929865285699362077633402464392312826853287617372842597780233706659499395723079206511509876573613541244058150543856703543598579149020967895904829345767686701579652139741719659962533816029848704478023828333030952710131825072971214055711456670122004922927860650329180331554557044331223971903286976492437233195558211372255903650516810453644870542957553793336970051208533204106365285378518240434271127265655287446312044344409014070619690326880045156485720691790983072324847350306262427636764482644335951757346496085347386027812591802625825005208484941758741125328298151374267984037719794842775447953331910400000442030388509752775365979674828580671751620917279252667543769744011581220379526196068338066467733143662012793417020108495578749227013125429601775029111532812883483944157681361886745219973919879895701794874579204644539496566127480073740724721561867253076414965118712413385684516879541660232078541602978081143077235829149414495696010783331589246563004815199028990888109853687274791367428313370938404974973757366854673100976820100073795880060282940819433054331493646030434753020052847967081375156353979518704805262837486702363905082862323223431201764008311006617677329993967955153456484341692333209340067561187526873049908286395213694835561378733481780450456725160518323675334222057769597837112663270318379866989786280550735836153942545599566179431189416933285898660041218931065392837636506018404054502972432449366750219730668750831782665180285794137259642387247537690740318092411615596446324338710092089248767425693354059268116823804251935996593782495549024359161823094680133592741276058692727505785999534232488668038849215326270470303083654923624884812674633231962984729466190568462958620413531227898593667122751129280627250036927751512235720845397874319525022542697119630305742147948261062985488232444270498325750777252443896798376394176914217239281548101259698447557722873019987609957258082798242679420506112750807354879924655909371648001199089471995106076122795898697557076677016305894774219315159584645278794112763055502179729821656869629404665860941623671437345383223805897491938158923518830365508834224607512349575265569745202926817289309707968301959130894300770876614393270242938808922191097632413209678165102785792448605668897964779851810378493516149117222410541269308318331068981955269130244354036396951751120472305595421317244104337381191466057175753969735820023603419382209059695447866656940867019516092308941870709941389062113328384212279269244335761946718151088280047032799545434930805523512007549313810563077529808569878447329203587484031147362914853640573141291169751297569211001906191970041910525053086231769393392142041137388997467702356298890679828776015918272357062942923844005820797243399427253891864036250421999334148757112813361991568604744407834503450151717385106821791758893296375527026155033555177201246300646645595356076818472184286644831001689239490818095183589616937276219312722119112816858816078766677129800090645147399185532639215456140733881270108652567836037217329203844077249424185284846349970568831589261076454927405891796940481130254361566439020067219414470374683594535365090371696385940527778188933822476798971000295319058838995989533378435887017440951685000822494178083202762042365309163870236779292345386699545855949453259630618978406512821315063109178195656081665962419917856942281078656761063655574351076437765859843216651716981091140136926543441385845276260684244879979414788074877333196462236451765163908180406682321172422126790090077590597650672234880651614912799472686255163006635726266684342658761462074877935458164162829484981501108788088194117059099420762503184582600653873127873013567650603266170078064817089593293243619080093958629899914351897465957426742671047104935495691900485040840580720280035232085636490553270412978609794253128713052097856321985866144276949424379008735454808942424453718094478221549787555778937143876012262571486280895664615600760668143625726212854015882635260537484622005499282555174199800474806703675792426641744829100714144268468616766647096846780319222439252043238890985432081210019261735197833195812350006841694375693078494011272395458548598207967076138299756557580040598833416264656060949880326873500497458115601865495517343185812972290504450747834584138676071591105972389290982450413646720066068565336822962577053784512268208167464153871439911242310680718472219729434874663248408556444310067501034075694706842429516077716929388117411348546540049122875097408324480903934626017045775888501880890639118253682542286274517001804463810450667749721650742886945275127379230636600590940044480617600640183963173095384499492668191609169119078839447166648552290552693499078898475561982433581693814984221350261324187312096340912314058818414725964801122843948942596238320202567494260273182766673574355440814814794163409264242762751991948584918169832231115989461869953621657650539310694351504217016805381290394836272731293272664175075827652784179439545122339981213193206441014492842933351411076453676781661549129049576709391196652985726565549183419031684576922598641291570821528165277375231237551507536855164303126808878778759384332532639754086169095381431168135850762137820088972219716482367018801333288273216000279714260594452213196590686760079272961704389231933926917582313436640488849861695209002336113900253541329845042451683495802172215410001172338632055811895312491806053993207759885682392638400847549745306140042246855281579922137646423902253538096529479741326269480525371143494612098556686738568886823996491117757228526609102335638218481804859681418583496272674594020191910320098359851913304116618031290990793010770170181646156840691770807452480714282063064658987506713242790765264514907118539277712165051183668114471670433816411315548542092602708448932138835755560589669361692734898624383952259788128545365967100954252162731017724620872475501136088777976545181951521613724192273021528464702982183457296640517949593595682359720260301002330143848958212147740983743503783324024258482463206585492257985117065299428381050450057786568014840049278166805954431922941022914814371822998456107695736880148384218988229806456037023025718553669565289115140528989199039301365196598796007121091284916201119798927110167598748758296559256810223417146779895308588322750325948414038194738976606011307241615169388639745213774939435419569304342805813627640727750534814153354315202370850681395619907114212086897591725682930860278292600887752965722803317419271835654575131098179037939985967629267312337323380921887344314072940417612851792788915459178505862795425344427272671728507986062360815112177903206414122024598105878854682549060816809549532467851482750920498162885580293324803548034640385925770482293357182986693692179772336402663044328615513081983749584191059301066883029103753352795825947488616728350612476794561834277200264320871073255206204422747136543580835194961746812908679210150772562404530360200500778544524097441914618286528407742941662794784443517452506058681775731125978761570759522574649012677048659297069061631678576426149713288521039502120795653554946542609783437191627649845607138724551506112955403532353738667059900607040526154770248780100986362448408474041928422620463863463123440495777347526541535932868008886074366776925561471387318758378314920884066644085599539338391392603586223163894527299810613620358093708526866362273153626701824843764558963793160004161470438485719108243641850601507809669564275426020686192078251301812589826996202014243707963060866476023842125188739439075095130057431941052863731588035746863104185258151972367473967141715754698923520786361108211021140959432243259162447080239482986979248888656392395817816375438657925907696984275868943645173065481965633041964712787463238104924424804337220843017437899191934481375535106189880666735144025695963141129908620823157187279059854914180842417049645532154321535601992234229246104423197471261906477539388245785064128576766381313985478007700576980762393183625565156873490449169555619320294626881809415851450420726232911899518070623768761832309705695170674414600541564841186979730538506031993198159638038888903036883729047951327533591880800825163179044021549376507172137980868024784487323635822939887713520213129248932429615238230221007919734752238253043157816480279824711192327193820671155143915869859711989003165944907847749716851880015880140734231413786481454119595356813133371531434141423067822952040802849107024033884838830376568399164596035365509682014781618753721512336098656365682119406095971807902763139586520910404981390191200875093676103283845862583645699283341705831412898826757706952225325501598039383191513986587436418755029010970742669427927635526906550910084953223137690408215629318829429932704216446646030570344176888059632416657963160162705171545708397422051442065604253176849457515859531065760696142759305633532119221993685556792052865074854457481994426948235265494837559842484926507348951450452945271923120545466861278870127348175961083104100201179703057773632094144759734438627535317026129906515994107169953288795955329256832889806319858963073291962200912618637862945992956746207949292777992661170969442922302711264866151652161161164386298607080827898563023858362041480917226407390202607141731177809667516944791806318402140496621435211078654558616141820567771177095486568543245105739603358940203807140497616264206640680098927452940423131501999748704136661104089575475693246688558104178061448163348540079050135489651633059980731299451499096711122529511681842252953426273259318639322118679609163430706111242698448401242902904382687551694791996419997724819898389106382089159930250330350510785808942241333894783193255092238970978333799491417194964101906005839586651432657362964152015440263572670728546914010387743719894026923632516549401579053976828636851043455894412418839665666805435619465890448766387012102486974320938560358178165324577130367375973053449943672565000044166418584328399344830795081428523160095113535175256005116028024353160064799497103307660090218505949604975966017870062905196860096403486800051303114876363110517697071625229707244728810437947143077676047137725424507155962228378832644594252038758295675912223288936033389867177539722037809100871708719332343859185938264280147821455768602487302763281855600846373422485227080284161176288080884218254675896885678786651074581429853252596627645834636322562044380367613364249454114629205849216410975594048269044971443587560126865132047563010062477567551640283902835737156123302702805125101927091412803299851605854044208337124704485773637378357472149193972735612903285777842598976223485846720171434291004656864423154226025291730593002268097948190824723080457393886661113257713014597955622953942634546726790628141755808886511014791625772742761466734820334594191808624300301653623953859837773637013955394170869510943652017783631407716038482277770564508428423421873430709133859925470988170788491221515423903606642896614376518523783474113563906700810468803265306385405701199334249749275302152516263833277348940326725400841786049319299057149806718450543851662464313522211284843622285989367568764562470305762570670125279344978249688734851842973894469543867567501362203757241010667311111442566649883048953079135370569474420759594137725374442658998317982936624163860659304872166538532606789068446346877227586065379770841957990708919873081590294952490185551412663289778306626401822099150541630757488239755721887983723583193022726271154152934610465826866020016922542615338527291366827109959314928566220020867715286156384200622381389058277345014869698983372768840007825007311908010415555027856646197317267133550538302871392495950039301884746441915594202445535297910763524094762271902336403533643397290703927161675040238063970598909721223402946803055153144270445482913305803234203823568210880036157164041243559342670568434422296379043470082465674304200186508598357028316908843683945418062019541346619026034186246760476326987837728875552167685899675043218187386850340736227666082437600360589903965497998372300827837559960334111044372959127718015192385745749020521039401164250257715164237747019374804930557307980485877686787223299704260834249499608369375143835129032352145140580531209379345518849090896632047585155314158220032031547386543109682030352166239880241155157496161439833539739018045975251107633084224714211922652684553921155197673363456786187217265539914046153915530203009210684242618901079881485439280527024462059704738921008624391302975736598952511989213853097814342061868748940434501928436043474156868873937903549323392822801177736461260822910890292469677499581477857778885783175911902788596030878518384283888400879122242808240555615224479686368872064384685883733471977147134067280779708985014071683548110682007943966178952390094319439367071311217639332185623134260003619136361749486545818036345533689870579506739986505651353146739893531232852862931640721961683646034660656016330167075383302687150369543837456889247566275459675554495145038195996616292386490729238921515604552097326951470375609190379799931648872822647075634967053491120643807291875398725589846428326561108652563349079100375163454534360568060261843788159227926099532068888863086395929412321644053349070303392371751810740417736780461851298450490725849673040573264827450762388911467483696675728307703883652007402654595948537149064588046067273428951661931371879551220496893574287040075002994094085140942957227961082675235623549384323662872826318799946131992360913022886230860302168894408861031267247095503368282423861088859352797139336680633320493090049523074886286759115078159811004156044249559124984291392662234964667862361237824058009078588657301656094676105199331692771779926186184050368491158538894550481353553641247829653400919437910217238982528632055002639139241723264131850160073953169345876306396156541989624443293670130931964650293286556498773308590218285273123802000520764251520419594475480130460765729926226278058638768854204208879973839523218177811729224238635846803889781234184931504152572023395787436100720482537339868771581170640941414763041732249520595257074656628471943499673458252973946521442905703906861136917220035872521529244051490724946929580881794672020400818842379094564712372176900303921362407837305026362078164815942541949509100831205836011531558493087778791578810481847153670572110957215236468365876058466138061929804448161925496315403524867962820515886196866007804053611157002182642426259145661818776364325594551490299938550167568225733465490710972708265278657796050175285307558809421890523777681190663308177544210882851490803349191610291697998072778889194856731687112506417800297336256702063012882467134952237981026234041595249952129208566494126047905597470468130288951279243786976088069000365419086957975830881580985822492424097540429624836268807681964048545147978006830117038230622418379422459939814469236255593764355554405585622194202114119895079915166530640748037071103444032429314334037830399145218383748343366852961203931179229558168902361609135856558179348707971742899048861003805950971857040937515064652802730869057015781122375919550561309808306648356338101247007704037216554489693359896970951704304280257704165083205024750273962081656917701930547208698476049921635466429482518637195062803591247402006060704460061427262589607270749949313010685575703417510199991072510324656819518220429927725009163050067091441326868866582268911723178431113276405274770008594451985984140048362227512101268634383953973289128141192540373134424590056588840176623518375520305877673833584205824213903897500736399784436023075772886060968796975343896927569276559517306365135246422313779517969329497343945292222856562144087596741267676107919387584264175953233851320734737609888642038755695907709153621842253116372504834719189416394728523251823131783763673584900024847276961837919297826640337360631610674802371295335804336387467814797723376908624159663894695016218275439574783153872952534229972798001933470464826674195240677981215310453749836892531413434952109835614163098854211332404934200122787266774852631264388759179308669756570816186246514931185857058778360367441485469163117404313124774758690480888459016389002976060906317425142669108229654509154647855364226008142848520081983898855235849512379033097717116114671006997947301304592200012620315241270289084508303521445007822220493606138707972046533536791612649794001023579837196892961885912183023864362008006925682528404198866881896230501799196522115862910986136861812894381907000517391038299840945289171378489155064281813280139014801166418832829595397622910236542199485092567016000899655959902822307215651255054812928773706749263760394908561099431457522258758435378536419106679229563800600292834363493977730344468138814316972419908974545980887058032780164088888857228406670345044694016864202393194730507432537758336941468523113610551756195686610529879409751188794973063717627072406388096728579327926803073292833950149709208893236068726613632282763561923811446494591168308990846672423926245150875628156636817078660164368232638796977507861395296477680158038679871164333652747799237043401373993707031983146375510732888210757743423825633899082761710760741754173753482545177153056006634582802569639361961774199625367215311514335206017553783182974091375076324985996643001305942341690885834818656535933492889083330540877644545538324772177200239605598539877786052694311262125874281766858015877764199750574811478467694579962138795092734438802602489783283250635323875592419476748120264383902379400792344573353543303073392183787773485969751015498602710777361104871507983164958047318135692804272994399665661614544768098969225874466710987186741041950025956822124302856944116507033169973230817673976848523972151206275683413759761880822315995019748559041165771512029887409963671772147253174232689260690193170720104060032007598076516104332039281580658455915014912327464808163912818801368096652945040846684813098037600895367316271207813479828613163281508034154152496683078322286522857815118279523094338213215715155536669970225620615636061626184567610054933113352389018070959432379960645279466900903599753030457347713710330617277157542600841690862312205439767737577254029620119170580774456787927984345099194678708504596290431607652800759185402375626986702572758170504751983307754818646048928427877239332961315852118410306980615341334462980795638578148123321213502090141138902132166755614305473204534597867695768404232046760077787914630581855333624290535341055368787259666928192885259094431767849433377886397154056462102418963612379758456320022372487662548206829481319324371205917203318758016197922558767678212097939545790723358813840695127251676051450234821897328934172995727846798592782966831052189691097740616622580264652527748788351233107240920620580580668571491433626522685008589115677744825051350268164204652008139557592667992281470971609152775364981441106479360343514339531691523017806412601582926140248706025088297955310531420965286242220823709473308445232068344537140829800954336547164575381393218409437218520058971202858750471109299124986138885020707463070887701658676944197333563457126629357387537287969642860636087674239151416593227638911084671299227300562012377218115167995903212249195853351870619982579142592517803952106325011510026219514718231252052709627941812318817331333649424645033085997773835806097814133739163517147639923954753255928032544295160211486601872688578742958643224648518682430506659053033113366921753335157362543398314326248595904865111622136825156754012119306128471643270477368785110699192698124284333474341350063115995154974765333434853086902250181660023941644961317600012608493023651732779582985998667597460925142962794083007620935643965967815100799194289021104652711278661656219544249016387902548424191610398729748293225245582124914005758426749236257113128246898745887272124093845050995052965761941448160298900055828582715037683361972813193575708068420307688982043299192111568397013422477312102921130259224890839309940941301710347706344390841743377993520015884680572096178571801653470539247441306241850416790055210898407118476369234166703648617844890374704566379899818505570324948808854483189219178705174376189022389018516919896026046527818524851857896576221533859731250417595182100199715647116502186348494043975465579894784378966492728333467502534992470658853667534839103285044780969790154120081101508827077195244687427973878639788478774829390420106572561720211456918244434262696379830660856530413125093168811011872367610121188786938944611210257248426864861388608239614488643268913442189846485771464855856705322001625066269213126580351275370568021483969639990349098923664894474954699612171732003782312341316234535188870661773947331942613965778568779326776310267497924255284653346452150872350926778772101794095848643117102158576495335165700454636896844570131637079692075798396372387256643036493184477851921091956101758498361663623850778406628020700435661664131701918520008836817644135250650880218227443153103354974704454736348145638784797996713286224277127526358161483795868032950847451842378513242788505561878561082401323057865159814536042181024258905756989568393007841496556822794001081581575941073529470176344458020165129749218859866710259801445275049783049755174609219038627570491868662427559201982605317299758618560215700576178485761121948618742139054238384603727342089991569492092258980329911373614210402755036448621602214564564087611512117436000716225159388931109779468583431587233735814366537759554093918573964809502691181843808442801032545293273181023358395242230814099107311262687580021123484829388589151600607034983376323380667517055810134176253068317164582953655058771653089767228115717736676190576550876649493093383044421985862781631955565407543608626183375491484366860255747569015762968755457950257948723506878665127782521786483219066678157625361230458860449307803093758441070444257082198353325790176228769124212242634412353120371442223471636333469514585626519313273732778291808337141719351763611285342833030701022191387041590041891181982276872806979104361707487909954546875973086741336091105584039113032086680941796623400769064279156866474074527090028949740811399354246776317399098290358462378009707452013160231910965535156297951474542136207292215890958823636019499469136251245478564289389515841244402215483529452032539852432443299770799390321198436254667721207886065892075985172966524233347373424562584791524736291466468704469930801707843906439511914912320002714025591555391034014857030936393786956320691809609027309035602964521677704150241595610962847102940354720111947289831955055004657683990955704557401186121090846789458248433820561769363470648128402436092313945107563685903935403272287978374729128982641834959771811432847033130246237446718526020906714903538448941558560687379920586699656568299035262543183663789247888447139790154295578539742923985707324895690544821071147904451232614762788241264068162933492816648894014958694334929613626056414776361423418299806154975636019417244359241365801538219732323265518708600194218616208314097653318777192031451244806415588085855407612921053490445688062514250863236408440870654191939338555533565531741150635566215132518283563081648776477509435429685531687772446418987539823747144107978667414998011850398556445039576958582898456864680540691308429186883025090779794224324157730875899594643418578453985295524708421160604694673607842466977992273852607253759484932492182017391795458940862595428701734241147542302397391775972768171617927762809592659654973677837627172280455110276603023778062800158162504141133382624625449088445546558801513212481607564461070667181371850286793632448071885976624820401223458038288199194354279653795218979947295762374453380129147073688690992836049141352596067293081209317385032539862041460404073495487635793665821211390951318386942082029684369933759900936184403451398661159295732835142453985336011014752167700673166531733822388625419452553788212739514468720254452605013708643593498743816014362812689353510869857372300215382484700241355734921227300351998969506450912537727952865625600020688964332581994379881587618383138832350591450269731957703902067117731024512751674677959157067641905865099610687097834800211422044620610175493009035654549076250455530244699670595719642274857783975006711700414358184757766726144734422814282134381350261186048435886564609937621839404362463366846438617373067175009296196983261278630231545572379507736088607798259953076343060787145560528778470912467430370095149771134967064373899984555425699767073039590404221969642994650051310170828752091995516238451584949444949820686543167869058083235294695314809924907636432509142341237865935813976721882159528528930409070476527950977487557699919627522081397636977471023287534878778216402894326656764717811626073938838959270940602642018381975161009473790324433263302422314338916968035235299556577754565388423455206305742848942351258409277480710104238125133703051502353542166586317568041105866901018953474529649963660318570606973748752129401513689470904688723335233846469832347930298934954756292055199292042452312820515122298829137225410811104135362758110781672698398545550049355542983242729470065255329218975597901097134305856354770070281104377383872751733875086755546448181856300646036274017376484972295957931020054104305653896159611595140430891562112797202774604366370630809246585710605642418024885358260603106668559408631272268767529596644600987912901313929821529830723214892110660615012107425701596756386007222539725869696884454969672546624768999065964225779216213549289212595009376687285114608690398815063777052218081400338204077306012216824458020491325696062901620325397051719915296488526879825495687051379989264827691438448581701249173934627088374514299080012153437008683480144863073358519212083621404053256088698594778757202424499552485633703384447301267187145070880679741531044057652467547607555296819223006404376794119115194239349165308412521700646948291487957486589977895981441616443896232012261697210599873876220084347714866177498676465141894331800749743168482051229465617704292003084422572171574861389940548079822883166013680398404973548680786356948744885553862665370554347457143854027931836587651015458496188617382614403589475869951048597054583273410901447540559331918359535959653951235380266082389185563929530948455634824312352081085476089490649578361470108706599247371220021325125645558776471254136756894872700165013247413581285230482937585841965959891660480974469318225726352307711044317240266665470438716909765150628860313916347187504228967444905726456179552391544471503837425357183345073525706610426902973111015734883608888420492967162405464645253690921458054851806917016000019591308269667121976869906557915481895955038488360228651378152105749736437563142580758675683032318434532422649921968826301012869180307523383733473144204521268801098237239443821074727526466201201799273314385388679089455286523775539552341942920824418752469129794059053003823935773291782865439559785958950170316105110008423307196634638436715646554979556463495654279141917910750081206316459564164619049470484346328520248930465137924596556084971789238621814324228180381654257767776083285469234418635188600500685751735581692519727458151293491564742877604412446354558765328059979822164628169136323336505329923487279045615393048571087535740190243614668256593753731350497276656055223011940689244071052744904088247137969140380439294778328793362837976818559641458843608763321633828221545249601407819448085759132098625399862009942043478558293347813499125434148789359232006298036202821025462002011747576021992051881456162987645474277223088982393476996054943255751791441671476396769970837077217578056995391099657403425408587203127158692026746047018899097250376778768679300765668450121908546822092475859787595837225397191766033731324548551024858545594596131793928507515192306061295890975277812307201730055732374795858334357794197116399790862263261616120427189246031469446750841775538851153732176321640733364431244381432965181368434855411169699975063192934264542816265306944078096428576470919957462843260695318822621148414410930030269977319973480053460211442856459481510493701838258827154002240436225132746022438934853303374103558209316667059858164165593414424301499835041813543519668445862431555569759294351542150705476931892249835800216159913631433804769998638021850728647346234471684309976685118876117909203770872399603067856907784393417699299632898509880943515655712786919026358591561684441452902926559452085754651519160256640485249595168911724885653684797180993209744724822457791697412274904002707927549468261480294261470494802756158818139618460961625104003935840346983174890386698067260472679311049612420314504732037870838372718379468631890324671045848294759447791906208206132862659307944866239237900568886008317609212270418511467945006755882827871699609089533513604709540764283187758519180592150862036962513971499408592585209195184158303197972729592112325000476806858628176777272907568991741632401753619589160835794812238832378002623542444799176467173245219123594885917969202196685947899304722109643863139826850730309304868188623824132233638793323018256385018483587632080536219506483757489143924527849383942133178485383282490881851564484906209390023456238060531508069145070144812378063622167833551531515992088410489582359494806022958161566247770247484516518582092386340678510406007858845957991000368678424448048489589199054139050136594840651539028432897797698600138438222002111427132823682754181794862212259061633567233847177877831895223282422972095811221496658938353300098762360825141047284023813996461998966172576589536163532742508009866751099331407537041677137469138737319585713371830848134483817305619817904808138668248993707797181596133174301312976986465630015059937717466688117530004362326331561175318693371198981127288729086630161553787595261003221331758137753970724485036651985706232321126047179187302371677935927494533618991311876485360668784877315685273299803610159214753620939231430238804407471596215504836142462766789132071652873831846207915089628096384609025242717450023938629127354025242945135641918041054518651551195110289062395007281524480364807597454029283002708555213009939284290258257167562024265064084460942177436229510827621297240280770152657929054634099146757945938138924910433870108755216310467887281345621229189559505287439175589483858850457427836686711034451911130998575012176130088926657304457680033772884223041729492439877801963148163014029061287186021169477670723123498336862130593730065972719728830808509223639431563656302229985443936712171356151432184132021781770376618024199654563093166165200947445730745150061258369974750478029000487801740021145514951093987673673175923557075578459086212817964758497739402192413848360625787607535760313189671136663958657379385224281129936258595112290615406023703605130971469380222848609346216527708402697662028512467461954259445196793446639628561988376428623660982834186888785030818476939577708555177475470094139019143629830941691901744811073359673458702334715228621986262664098056564072088935540730865239529745277067942432212997580784292462183642889045710733531591372128436260716397898518169080014738191139259478035809359717728574437614709323437585888389926152591591736342404780864273045766171580639999411783491463907937509713281253708200344232655090308900224652244301677102592111628884914157982217710457862648193444935952668334903534376606349714221715687632615787908811821744817478247704847775338784079294022371988022663669366377259358079089731419130284059046985562184112213203855608392136536721975474143290469784434664528715507193902478360798698223626451487972915464687817880031999960547304156802308467542527646547406329800057634113991512811195211301900983936367105660990437787305483086363355678365540841282704212586181167332690621015015589291899947826300063209076807697708177542968790978462972811135728708887543783605131769818874788049712213128584360237452456416683203633422883006551668146573447240157870832947722524514309188037764561512383721015369168765061200587874553113585667299232295815377892967081494320548676265207944368473175246775283532648787343835408023374056151238173114808265017829690055219767108972512742694638769317194755441222057994314608772019449390625855786867970809772961805697945238970762750644323508492505159896717960181557843728420133621178777955005468795631341460318704853051444668007886538765015030960006877093806113998423745910631898897851526964572853965904573096410088647073138679419409619658904626862607250682738527568747617014516209809295767042620262783366701689114366309173524674188495306053004621207875456986888639822344980256093722688838514240132891149551409528970023906260771342950398235176131878765940382837946945086750724036733969397748239221687986333291023462858017578705037802709842283870727099468658288293693974104106776759219143558632477341403533479075509889271408975000761102044321585767470340517744936955199644392225190230042269280817820277124059787241308078252598908892119065345507908410023844931334494123367093188971839374174508640413777922180863110388777881190441955782920263565396758755954397646290686091355091586016592854446070442388900481611327099337534783882289494262860073081125616452624653201527046509120693598602222175480723979064051454031775242905511553310005026239124492151778491810945806970069441241051241707523242163846311885391049906597605675880251387935372469590401098092707003697191397693155819324061182185920368625879580265282756215238174944423267155056481751859969863547931442688500075237188066542200860825728187739216043089542146571808903053635173797087273756552899158140101367832314811388615150124026467973904814291118737457321644693520733916285659879318226849171397444258475340153147194600480893432668014767878232237899685600287446997791372417496907942383089919120983946296221647872341267190849779819166922120994055882759990152476286307763408092351047675765704997686959083480707248403755277431492008068663672960492021411766992038183361104742065015798480802371811112846813356854705773773893559670756647277486107368123779446885384720855691869432270308818025982153243278633918061579394694882549164402295487626708172955256652406289929162604675466871149304593594780582291260048283133759558740594315164997382534605095710125643024957135085542101907096403250047017638069575236282176682268964014502059658711756367239672509751519492975714436095330566091756333063847197208212729402112865669213133852775332390037734947390292283637294854903495474394304617735154000842826975305184689037073775117207851374383278188853550486654671804712230252136741799857522348774861826074354032679342906409616807117963392870141933227767114213907041620432696687878515958819240203414225982077583419562191305144221324200714617296363521123279377258584012005722138133527200630824213255564550910183343819009803013295014664344228156566656936053716422480874789969115621741321148516346872914438181920903350664697669128646179471801445547861128815775151583103544843781831633293548204897589917923654509221674936385656674430830510097833720321472219652252891429346739603455421539574954603488293270972173483270091990873142890724824271081650872631266537940178408602526619484390599307867450988809574692225767429077909747827713693004243933681438625013720033829035144837542397714304148512993245130555896177386842911637073606233023990095259983492299328142589197547661646372268190909093334534490961679551573583694870862829160806834497550516956994218514610765208617775311208503666053270208133768498617765412985731425087979295700265647532750989256358080930567966871567967112929613594940558212949240137521890690630868011332917076807533729665337427242731471742013654484497489965481923246686216525071220981783113934843956176880326797378795661563211152666808196190377237588038236148313116209203197640774994488548437115610640157504206342060961168529836165905412415721950297952412186649702523571433439133735398232839326683827405983080787312653295465367617899856904703767076770761785694113305117167385555690990053847347424881753576312994703562653968583894247516330477168276345512247373162289162872814370489410147518701911560717849076514403383832172272434437605672696445039835016832647308748793795731057696633745820263473769802740423398011851181380890292913122632435941436301752041676085551009717853071586019260163758626314945629524007412670626409028035446486802450928798690425243995833817650463864039270733489569350159104686528397388316170171753683454045713146539676934601624855100271882655829028914272259139787555897535330571688023125621154418405263800026868190804934171175051212840394572050557659702242250045538903772382376597559894668273009964000216803057936871050138969194563130885177591026970614649780525021839987582261876926690776146204291783564134347074047914553703989091068107503025730323319713115773054622169640187124594371819070162605208089844204206132073596472515743396307355315287444226631397139630003408410429836489286579975261593296809886716345498470201503549551225090607537745256520263890004315213382262474049911930563248918573995354434975072253431393315465367171954582238982249196696885071573565990516168227261037225795512979713231302953448025458329015485497549880301626286073952345586953346822943835197929732776092465516238840669363474904079698496771712285313414197471700632304553236416845396045041860887319836172584935114090975937206629959851673655920731407791389153447989151592670628822648303749465014704610876152136669160932179618243612941399319959521183310108395431190436853639232911393973688005125802792028211102162874668026053270373955392098656667321351180399211393108454692385089429269804957875411841633976288126080461356740403013647646085501239970618813175963162858068107412513409962025555353980881572245850431781563062606027886663631636291970206894473687454080567975862335846252649960115053334015103198177587780673026367536313731512328280759013185191386806564390332761550451826302642765923676614305787473852841645356443824334375955732519908905074541297373209394510867650003284268025824460737120447169656516758423543441959128061107037120990616835178550966133985745038442169900242461648146836760884523036220330955736462275936774970317819074159625837974840625038978092128604259110539788439376226414876222363290404362515141781173886782210688767087998085346449912724361958301109971219270304482664280546260275271953217675310548353377193267632267103880217060447072866913795129418709302693429046698313903443469886899929708408606854553266781107037185496666893284447382383830479398442259294775745867005340770394332456058585733682989204365112010801792564636523227272280847128884790991538090462345371997528734024914776313343401627721467470005962567068137879058814372693991687355362489128600161934035232522439107357862702101067019399614952964156863430848611107121967127528506113583779753164170659869058200490626892981429685550465684328736914791478853489611319660852925477512137177486013644544122498304269095917364269527765732262339109492843046972400734058196212017335055088788007973011189939363935269169605919390101315898418992120819702166088239411854697292593280741911292441761085900396249001189163488346303790430221999230807465965406291097297446402639129313978459319661751701538008271171715409413669468824013136995122412730685117083807826631351091394239861213473722827796415936217975330679715666531182199979050835530764649592628297650703870540041391311134392858251133768973961291708984007734003168954530341747621380555847403711639089900194372079089072864331104290813628647656184222973289741823354667508744129505092779938918577043877635669094276444922244459262484643726446768147470069999467668584510329789179690068869579164840807595834431651938190875675031998971017026116633393849803761756600935804094241157459145070827800881244812775419187526089659585572105771415255154023798576409882775015418337321209567363789309779888523728706970510149514499820047877989868706330112547763311146868604496769749148588602453313313349333536306576302301728073179485309607292897142843273879468114874879459040160043648041663202371561445209883796469618181733346508753858928693857694989742701653136446540128501250456692618575706802126880374783207294075106645963750364094355869888886654738773334729335690103505061402730925041158737167910260748262458098575108894977649252405988530117955291141799069413841067076789049010093910845154283168196947407470095582332445770263094206603445406835940145990172884347797220475508450178394835766813189254366980666959967513426239328653323692712636036132646920605226294514365941268197854466018038202307130789300333544524404154659555304219470985915444330717366222456285198015142327403160763372146625920606181319987606907695399076289979584271984133704087134382606213163655800352926882492489401772297773118620394294679482412755324351165389413745108015126248817403092637966780867811799234569025998983304258235150193212968435043179478253558281429339764606734135233536291710367391682697124536728244668203242129268790501495066366001777691060776290157627345734718388393454326493743289124991829440283592574585193351851070483717028303614359574877325888288078709061262874680075278158704241595539531547627566864179382398270865319934664886307079114107716165136942141342518862708293360456750047834003786947719790687597607509164625264672445097677625128259190873780990369354236328953272037767689778445762232307165804490141431393771922463976689865325070296495644810764389827254277431093658579188339270407849500862389948845412707151840677317434056703890917772714691857541051776134871868833967804728308666130058759611101725687224563337446176783659243307665740418126784910227366986837189329376189195903141345702214936792737627760155707840426443145787482723194963499848687566542961668571264151673694197325185201656708133195941555954449797927962527719643054574829994231815981665897413282471429981161893068785826550074951573453935037451904338864168770404047402333947754823753217627862844276197945001460329941483110011048305113396785886412800702348735899710894554528250565164561273884755096321667252389168543776274870430919712236358892076473904953452167832081860121667837393146787858868012875393047425457898339915528528182017393736009707862873825676335992203887689027242852258443159865289730563482314820619907458331251488170296465654933063104196096100593098090215137444222225685161734277904365408116269566678485328891252025881890203180225619912100814353717218819606595347709012257375657381547881996165053071059955806030692977533180285178804855395179000512841003350497251304897599401376225813887597054566319535073237441444476569058266784360146253282513250812163854090554393588033136890791340082860556375736805723565099397611654916622085356005128795794412951314931179624525403091546452389152070337160617464988470934586281053977670370695922869974091910978586079189035806369622884581547572354286967491688453998742763059245338327721106041114546091965346692633632777730645833119271151987245754591825924628233878715012601426636338891027568983072671714723129147452775324855684284657089264851862941080875860997625200872517104233642831458444532952842553369174255335609523679207754522603586717870703400724546443680440235840234519004915505587729469684935082684786261274331451966462459253682123679628780756996094769318618168376332642912428907059044175475574337516216271715907594617028938650911745847274516848872053089387848392254360242149068879161809453808280611869301124254232924635020056860364653732841691790677671521336336455010531144831813053399941536033739713630934191037303778405175456187993820797319470223225188889552009614364064326843064924712536564763915838824742197984106412192181337263338115880922218133734271539431095520275877512074105932891395370253154783560050129268831660176402037574639523372684543303282468160097487178474958057013136415326139267417691034365987170913301424278383965834889311020353660315397779698535535397290446521109180755354898623153533335533335839837339568403492307397334977047392177706480388679946890949766333846120413727968448606231981952085468215546338930941170643620419801054588252993832616829464943870769620495440682853205270211806809030049233229394015444133225850745408721676884625053807889767396457201224895054546602097158482690274377074857228654571111760512378654667881666556423596274462008467513674215105248922958273460847698459952884799039420784110002041876395966834967468955208205220942406319746068624653320017826012186839050379310534847058583103035319321090888494984380358992412840540961032931475225653331016415409155579434202319459723492799556056275637340658350412694966395622008077648098284847299038482805752085710008907070268073705895149607956013334277617787358929989764299427911216737656180913283813077053965852785625730113127178032361496645555323872543407117442140976413108588502574774456574853859473220033028495044280015388607373580807872429038605499765077845682504899264327405858082748115093515452316352363921208456090822163622720945191305414975035387868014947157272852546819676036039044352720652348963287490477644019967679538511741026558550037541973966502531975260054054791809412049423097873014230226098058257256021836900036944096986343291920938548715617214435788440549157379480880796842726071488347220427564869738945584846603483707097299011766991349695684256045674509156642426693728350410834812773581109368387284336217376081921598888946118254181268510659742265888842363133388960184803695677313848337413676684176753339251253463623445187560251918053192470309357302175880259417488745932649559641740633408321886535416382851987226677950371023632679537196465051531828313787895122992490505341721763455536679280358606294178187946519842906464152597023401718920798219777013916613865391734844505853638697184064246613566057609202944449418902327410708109887738983597762521002249289273094249563515085011333535446879513852992350119153273038170159125999949251669892857787621693951493083430880994344600134338603542075364248696174304046874759493323493072650255230384564626498005511672174347170425893541876726862781987829109587861984761767426827510475656974571096962368984757837898163405690116466868775663546861828142138570140347004256223935228746434148176475448452396951921915628235032397354342467861875854416531627627931792754133826629418905139430923872691016249066024574269175644803336637724193113962892891300540680293506171210423321837294736887639049108812705849233806101343671728406136006891441905461322963472344876091461697312318867406511668189783301183620755069681639957107974338762967127522771545640368170920728198759122657347062677231196516503142299182848925149972386575548525754102266678075773571998631279593484591397121104375428590144898330029395873446334705566334092349013182199670930762462572672450188020074452741172002750128404323488302935071425594138956494290199420807261043042003781064163640855491834001629777949173153469632478141682035800878063730611714849320289798712491122977437911707475300366561842492783735605496584305074237168478445430526319290616214961677400826365630702118478522825708628347010691566460935826368303304295433384904109793955096894915578338300024327164303120083433412358590984905031799076533195752858474880006881622551293048204831314082986309649631984753375570736806110185233798459275293220911939142067350734603923363543239558300663472627163302553061904189523825500581016884293797502877994580043686542670757554310804476421250973664860187029703928471135035142880001608446871402736095745020074330307014212900848736887788850394490742093795413521971598783478624758851378383271771996509337286790204915467230173248862853324236447826712812045045350774028692277730643709217525506805987820900555609885359149332393265976243815828225959206608636397180969335177589116917487181535051279739256547347660165272497809436045660421289032683974992745578304434577392742145495061370389364896478099273067978628125946431984411759355110957924860290607176409953629037068285233486869460033537589080691737747879441388510643015371511073313046272173756960396626185621283208137395701563524563855568749326253101803755284602972024873443833841281909674409665301508996889880708093572988692082825321069308047008856724143112895976650062523131960949859283933582406451479613076509430233767860084747486875834236155146618641968111164171010442295126610603922745008072994038032792920264140849876146700796069092026638027704927663919539934125683418649992858970126508968973152645614547416954155801338927902581058489906540066000009041227250096486555087387938094263700368923133421076965656958393843936572534111003728098415558515607649556867232789957800387492888562738436056729762497424575397514923482221072679255565350864274282681433044530688857755006840272209159313526075961641823274536686395969080569386078751626534934204033553699722856035134384181958368805408018999794686196827380427273248523942671990133851892465633372358344129010222838278567808619759900210803866039576465392136954746741927773740516347069751728226035712452866963939968272307014814625876942524207723542602006287638771387109000920230058740243538353025585220824121760404440312146819925810317487710446037228092395427029188829389930710280245244624529041160818731078570747080025256441098207549173786959916752501865389469203000367774458516446716626036301570856110277487631677935085768083398627238088438480658450095549462189694286361754913383583706004030766296533248898476573164445470346666298638891932528056612586788524356741393367124779257530715151731010859641548648057496310416163333603603260378186502183917891366560066191966167334826357801474765986650697508711386811155565208507491146085624586064416907349231999024536878713343874678831853920617813181948726518658151852161461903292332264412379049327484594226535450988840860834211708133523365520499596926302896611118921510655424644336963650821463482392552440951400145804806033189534880145917612373011181575058319884470652648973416041933671281006656586675540501556960080030203841831112704025829125029222561396646627083747123258211269773481338112404311272965965479483507176434125839154677268230901328564258563074799729121734560441572853838678934853806179627329124656985777578509687124896151353359304981371004191393957742201238394695411646913640013436582207467823954408374016915137506424187982446717117535195167818574194514188893177681466423198148823711439281491858274546078100419947267491760365490490848997370312112961453981095521146527585869471510719608674787930360208016617816602249756055925844494453023795984094862368263166440620723190809057761496273105290907265119314272288410768000340946760633152770843688495349274666312395402362705684020996992068013759547711574300794854951695788970512200801562168079158303616807647731341254164777866441399428000861679317319879067927205842605686515907522744531940888351933725347427231746771116045475633639472102102583255845388809399261852862293337943628360462617971262515328872257640341537849041949286680714179154134905053677975991298129968655596626298112532735733155210096413121525754883559114441613831253244024232682553653840178764237181892983188631362560690484171425921699300801398521793275713177778805199263645826809223652040633163086127050468886711049405706381803459423301387113456860147516931898384127719700082875985485713050561256482706704570236871219482475472111944680331945091492956138333863970009425669043509555369125712564376786291954734835516763575876286100757321237601872462996575613277432251517998900217914676055349449173862054465218145313193411602674221995695108263107584646462828882397550275007688216440409851136150918441844341623006580675965150144787933858817734107622813564018236375519892755768734095814390828947940407506426025004009366962239184830204219948877417729988209212240860411028158425487954725149666733668453835874199916090683484504296412557259253777078954939780275082263489704687033505030349237513343842390199642032311225796828855501522489961708327418666808600439763790273937455310857414244573857904191302093527290439988172875838965459548933054687718086087468172661776111147612863401357586288428805113177688777205941986885439233864895279145880578755014983643167759376169953176366568237535236917837559866923891125014755921043549674074933291033300826958761422437905989902204918548425083471676636982135904033802312433356904939828226615288322345830630536729844628243012967029611606534691938201236113482868918787422919892136643152462758725666237214968221778911909301679080178916251178800660608286965374473481959090897210723546034236963315259093667250846825300001618092037922833571640925658983780586645521301514740793855091366249136837314524953817711001144917974698487192677449187391460999993232655584791293411902433366716820196089714323777935713871333493404430158823456561267897117931012464570310567765284712185075770170685094429490045937522498602400601929849476646854416012467818687516687687826917787957632416961187620391390697017555110399209752206444904525804398253257494519199737464814315563772176387003280443858440915433447202032881746618709167540122780100060935254625313161842604389181442414289007464228425373549623729393005021793180914544394223069911004527171863313333592735577463054713577770244631133688619152377428074608993095013963173749380912878171030552053270257143937825448790480147666039996657594012624159000124315150506341792845449768505366656996978051598789439971461144805814985436338817798823250175706382216382775804411013561791822393863680917781268465836916758210886087954704522246120942649943457377509147918924372032345258734890249050599222921337740276544543902857795335914466205930787792109101225993649899453669563676217471945862428190197540335747441987304648296980983052165967696525816271985404456863277712054867107401967249618177909331608334336528588305071421864991154586668650519497026548398096702415215441729496131488586966105379637154170510582079864836742799102660588952763436172878656329655912004258695697282673969123741087565383691072362450913055048807166891999598728864784647413556774598485708535249256815616885421815215013146032387122844132627169046858152401645234188767541377209155811830001352516883979516753896962196817079569446310993265383699871987147539017159437958833394547794887442411020500298047286892536351356503109492427595897482753609634587229129115892447787284988583849504898557302021799405983353840133299939174900194610642165029849872422662741783694114859776471094602286654371937156450144743836862886182434639992393647033684718290194678532971750618389682332728146195182463867863167539750187177855688398241014422683178014359492878586649084635302881556475388073988353616462926138296105674917877417517290983186766331107163427634867278609669458903032685694459180639400901654850904476491245240065419344594352154881719700666036985462480341888072718978423184061199964190257861470428310782515598306820685716267223718414670353331643218152516935002469586897449840424581877410158152053425017726882310675813562030815096682373789654494796560261812902214757882282980623977952381640988382340956800392571081790327415813522598546085763761144429379072822423782932513269357016759262761606288938204252908971180516041368031047135257224174491425185640031660957173853276717421312067945698395350487971738785543716094917604779453373997366472534871440468261023922864367754223489897919618404285180019858105469569646670464797176781346727127056380580097181327103989303356686571470207392383328032970020218979830054422211759479774817301721221559557426228039690547888721956793065083425856422597901570435689016657350412124990375719360819795108549717450248451244070038913902436191192744361234004392114367656279703188453848775497789700847866114409537843338317536241522034049988211687780299524397983381539901743548059372344787755871883462066655824191351026538138113735244134362058662695889242895895663869052852878211897560527163899710057688145380481753260939433192391489335055507976525721567470893802157230243020294522675637657003650239445364104778620243517134259131955939072202783601703463745043508400394549038076648769404935282566391433272677643896442992096573828800474773937628558492478024807237294309413325809844952324940818492356606428452139448552463044383782270987725163292712782217499257712758528151860416275294110156366438229207912096502080953407368200743645002917733046276441731322582593611551002886447171274431414971324871272889268505553757483948241605602107001671664832265867242221623132456200250811350580228532642716829805807097014857999965735647058380770133866200513773945754546784193879194815779015026655584229672080051545040217708316850473395775795759338297128929407971093980212158647635717398895714884150300950136927271815885834490552060457056279385354676199604848800969436551711467055865862803853325944550914768946504848561485981444638343469229156360344468232320151992643947098568870236529301985738457339937798131595599415173523963777293598737015071545612282027115998206190687455506433189795491293690319796297107216119609651187521635895053702009837721498711838668000189755409143121923289130893402806474020404025895862146466860222816441000445735622855852359268876751469855383960411186851931279573491767180770064943087173532061411259276273219624651642530509200402071506001705457941043522423001477892407436241624594597939198892900892537187816085012651120171559673280114790902358416894423035809474365419894909819228855551172209617002518107759200948144148185893728277894263548813009622266838671581871043877063417931653023296193583662811374632548787842630548769586368010228066187064593253813650097396054936171622993798677543547113348016506449127808224197462282286216605338104190928999851590629290563951255093949252895819355483330614011484919288391545895858513995320369495758787843437638816221831621636330229721082897467517867393093926852999911051293773585391027607688141118015919734213766093691219933608444358539527812164013131974354374012937056766708729359833519083778243131898145997127126656533047868771665210649787571173064629863031903333287369891140612545593296160510927385375643278380237448482756560133973954514204623718536998957274989146478172493623461663208668911657796148019858446542756714968013321102049970686620867518626634972224092715224908923015694860697478772341647416617680274221635893430521010297314225285991701554534781111499114492061201421973092023508518273564771362497461418976557738175426762141037998811725316612478409114883289379821290020263018956109639400037031662268249925493384753164292582962342007618196393700469345954482717392578985219078233666634833525512097984655305233419646677340338052139311715999493780005139596907321152450636658292279988306332676707294854883342754302157474339611787079688041329095213652638328509309947433436741309236904824189755729781943096464955278849008075974702564497798415244820395128033285188257290841765015571597187935639769383380235058839886041572189074420776812665590185896715892282762795338470816732425125571062009641533046367122377883785670225349632571520078057109621200575225902276904685658411620267550540746012231533782380597667535047188300376116707575218766210275168829507828331815588410856191301670234442706779227467446458512892518530067689189413781881679996446556969239836649070319273491557356027009717457229964225998523186691866546361084849238139183066261598166903988779202432967218806068320214711379171486141291918037892466432422734443219300745608127797683320666023799955589249724597402264433373857737380118599381720006795070979522202605321921477466634391436972613539516587322169875811563198864341749293821652608449004185864838035406225019733194076878277324764310431121765943250819277700272668604795125800559334315174836354968912900709006502298028908915919247863193466413319475338938419523449186107434012940897061915717906992184530685791759556037623281039368421952173949363575334766237171846683782136332873391642607244686871054153301345882912752946338402102169745189174706189898275982646253713792020807192806600654045100399704530681910893640646939568758465737735634080382752728171162306658427817822581912138535170176375451359423556680844992790027799075492178159541475021852085671599960136423035656287849356226886850380596189058271944104202451222437417090609564475164548704662947844341527135195194437265066655071604047660922702567903619489625589506949819370548006597782459899416982165978095894668878406043931655378199530409755752869430376999798628452925784229247448590107602616097022619290830934486694120223782498955510137676046484144506190831013651229871352428458925112450680109323468056830527525116469118388083240276149302982256174284859169812615906943470864613404492405837209125726654079163932417522610018402908877177972613901203981083075496260734689620144729958563904939203837698281713450978827223016788120799927240423987290596046583578822096647295282352903746419976675551745942786304862100628560602168595008631074303232673296723047699569276097859299834137797360331869144020456438585562408171028997976026656837629629956449735133763211480550660342590489076854371766742195817034661811586851417272058512022807957108940555985954545207479238383661189963321380198221661486499554234673506323953439603614140748685238627812677245495639919229813839640519578196527896495782396300593703344200909917750054423586945856792125453391824789931494100705175018235802914550864273366255175125418610392806661836034116266050122613531877126873701724100966219126901859781052099926237633812759874659089811846208466725918082551429428575410691126648506144771997823227857321338064537138045786970613098345104618859037173419239974843659817825925062393162922939636008865697115830153363100105603137181591851892429984082573333404334844990784880089745121082981845374857188595030450696361698305383545816331359891853557390168934181272599613518223321290633592622852060969467948211760843407209001508329996212474748517605041581546012663252610014304131712153444075839014582410479590748724090004525923254822971932501432211316431730039222146888066564250650370391793298455798444457085026097695127448227375752796941368360473200995722836566943345038484116594484434035772403344592735857084275525635465362281550765291275749599314073793133896238162102685346366679726520151897671864435876461381403241018707879716113875430323185764046320126490883220238275133265744108640624085432553403890362635096692930324458526859345336050752080894806397985925423824228280864856940907553521587714916117233166895419295060562621701591381036626075513895847905149091968757158296170176114697144974781267672039694796085939980325163198659690698245504989397815588012528427168418410956587315025162811061880895373610896420367632116275289193979087205947117820580669891296691743415857992983708472066011461963035644905547926359565960939323427266695686928634261849027528737114262014299609414467503338137455847755306092460042506522894758109794685122506518154916603030650548371534293127721428431772167035500348281936810644650918527149772018055884713908060656018807153051968887617588667377013526018501311900196834601121238702220351704711941413851132653047999442446223501712432746454541176411982765084444845053607089773380496694007264277895573783940160503777884669022524993707557690503010690994809392308950850896949180201672135111753514117602445923535671946365303232671103532069563987015869623479088987405960988083559296056183011727857049167042787602594629084066054231617524079001787712193652888511969333354923551575911834102129806506242473360521749188186647059077578954860264516465166641846679269044285009269633255656739398387167224525334024180477579952952021889292609769099227922572702397394183279529439034786956506721468985987641666972887449711560213034889631440649456036362407380307279890042039435976693815720927173115281874835574727828392883084608851476308520370966490695020267758646364832495624379592370770634684438222873626227360287527486664650981518121156404408337226745002612606614738973395265722845980871680157070511345906904412534354512911971282141766282437863293894439234433929347972793239558014647677194498540205743685676658612009732730582921367399951284583761052280960110101617649877816832486044295967067060308141278408146260554998638848316004731402568499737951215389172677231497095420694027689691911325697530229756421145052957315057368359760031276581224731866849348285635115425693481065756859809399611730763164446608120620094489377696325531524619050425013149413931474471003600132341727453055933172690500427247992350492254750040716186376641937719741393195019228189232239687981622363980775338069650601580550301653706691553630213060803125880478347353843662655119803331665555201918298273878506886850119860454190544639131550810503778774235950986912209816137394306857394136149487763751634173576425627316281324905386213086213945400040040782977060537009694308025579234021371864723499249726146513162575010335180407009890919733429401717810542740982454912428878175847627909415457725123995081687099847176549094156393767163300039289506681702218607627425447993099048384219205855369419738077367882445468180868322792151743004930464132223826208828836735247843292019974884991610091921311220739786307208693835937312431069734107507732215464450686809047116836155531455373228183710586726167244426128849413926060021457891070938162948789974445408380582421505197136770735768540554930520591199657333257947212641434266274443602325722310695418430317102274096621260126319727678857609490120349834081663492250418417356420350405866590065659357542812082294045557661408989343468693855323906984727595849681152058553746065996128528395232758843451080568517821101969548475812052879564174234361084000217743490429445027694938575358440554700892128859375371078592492685742710910110439634996003139265060491244768182145101276599071723687731056116344826092478637943454722767380300262401969497215677875084521954592860017735909567836203933132036482343145217553008319546304735413871682599990797366056779486831568715341831853881348362836540123122522896294695205652325654217232193798149529448909090823772486573233515962757249685256191552759851686096654466423363238312630225283232039113004143514368497746528491494539722524596673445103277419807341499936579310003725245920699006092688403138362542810172091493307904165218719475302438166823501975902228765326376012038887090616602898494145199433875764919882746334594984615518289482523255386264833773342067490782074680513545618313006508670340726290621327509877209527617138135254640111051757061764806168356667487152774859664638778507515732127994645654290543155213502220149129588458965261259877352476948771778836278741640046315838620308982940557814773473094683177509348723402345480170487473059390470359922698309924157593333768934285635561429174073441107112386720201955961666645449001407545756822523863420763439514755429082326783490619425852074450970314509071686646440964027311945158718218881192312994530375159885601153863211538400651947071926993703939607384165703235317381307506440996498817546553163297500034978763917294717238540607028054995983557107661170152702852027832060692556953063704595225254842474301429316117111035869004399203137071468262366300563190029393341806995709457320195503598644034899823613531415040550654209960934461502473964909555140085486710447961680119229404412864140411352386131765240649198883477797750202055336711352172980908840708095638661826123968564655211784835213676531350125309540440742283273452121300914446682644536773968188391753768981178730288288247448674791088673619901219185143502558196486303598840008540330273993543201073385901590085185756834491886181856213155343019995605930734892098568036857332267742351245241184504739555981068626601963510809528720317225135487164349791490378450455751672792654102189960188827695522931544770713086124431374718715502957082708467733869174059401573539339069594986781493499555075083410425627948254706070686524914381460759223557977755993654720983581251355867115507918230267748263433004424359604311907260543706073170626771500922995197656706531304039120257911911382854186333772920504896817865286636760435410555343267328533322185930908760856838571793553284830754167915924451909320666370411538720589875048518674406457289389123500830301898341104287740244123743402090093267247210519971179050577453824680657036195617075236423577917969726501555711640571959033081235747597590886900003825794297432373478531323512000620913248025831660829043495742699361706667443676958576079871525569289862350661361355669541318111237963615563275961107495865176193814987097807375553998735574368201001830158996823942944393434083905494434079472850338623975058433009640956747528754899939767153799952574300298781590949250460191679990831391065911856149879277916051633886244206570166213352433781215079089520830819092845448132048302500727559217859553008172350720404494521634072392919968817935945983833409540639674164688969112758374145605531977117476669530014598408953554647754566955874472221434795000274356606402450399652926393528381055761355615863979657213376598794948583719383684948669427072871463606643995213333190096078024997818230455769464920233800841406239970814471309029690829747794578719065533585119523965160955066448320976436381980541725517729875370576157695878172079434467639459867735859280796440611216811071762824503513755902821701726287869953763882387633315006459299588233465665375632392494992968375637332200424794925659297360290749481147765840153352509550913856158615086022923345556240020016819180583796724111279535435098039798292993471758346005948363843054536402801306206834678174007779253936781542999865755963607990905758090023929078584332814026290159288343603001938054200363109026596046956002037026192347747954790958253860089336012287958012855531991518068459419903327218999955197825307542829704600113228840220403166874322961697197719719602758125636961670284598670966855066521067582437239295717507736944601339810224242518633191175825693787129999302220474960172822786243587480864525479683764962236604597371055107281290964778581413126177334056475605474044248616015201231344199066167956827884756135673218007265422568848138860474736290112974266007059248112421458511437871564680936747317812861703402719508491319646791598263470782544314437802887492457292851995997729969680271859847022577084329212950287296895249932085126322991928722078251279912636300158076006168276501511539565075308006332835183756499199974224296125220815763923815837460171004588918176037626484333671113283346807130830064326309211498698925822693718527698925712115461352909999636576445227896127528525014107796414356903469343390663459925921869735881063341113165195511852633472889334053776006348008727695020790983202772415021607350850502957849450645285761726097143254115741625971145662953513381216203919980271030447870762115182837503767709517944170690125934531820138810888921310072165778457650049037583577267485112210353753094690654130246448076179870174706210612456114653128037038561117562843276802014448957113775624066025252403619242090746133853404145849178854009159611568158682420005690474242366502245797201822121758425049530692006015760406310560852123897659844879061528388802515082613693761588700031386090102371365444877732744362148649761455964526706020962512133574226724915025261072379439796351278282690386555092388275779243645349615524868682061276615971852454368239027804655675243343608782629104850215940900476153441052582453870102056380212750366105487047318116014897021817753200705041796629780930607036807394771214070940311580624268216085789764699202606426483050600622348152770318046776357818696429742123956505771137559188398071020348831046999393782235431304097795805819152455076010183199840939386448948852651669635566273064610827845076873965079822040176836979319899386075041870594468290846752370378762102494461505406127966862521244567470387583310794817229674501307064883200282416424183301135952373584754146958010296606052096488480887355502132357937045443141020724374367802469777971284764061176662728209689746564719341708524535653887351686768086690760715558288705789589539767587833175557704266597260650940023388254754520217319652978939458781765161138767204984258547064297567814679836456345766435559736280938791629978554090025129189739974130686061266110246478136403781614287376023384077629455207679052589608961567652473396996535812229223237863727768051057057236290272630213818662215498500077343282945618455530172521839490276167150635417664608816968131911325646391742832869772428016171864711792983862006767591451157844842142694340322855151496474158948345407667165266042562726336525405254447884299570250438759294189411711234275747931615516121703734387272339384980416822998834473289644182721521899012689776560659019836191678516212041140704293362164906368015403360595640911465982552553251187572629245412071621990201184922698005236520625872338232299751860094091430956170725287960909261600564974122233989255119741475539621180755194181943375573129980905642885939933100752439731576362743574732072733368870336549506018088906346417312639994874582424855044637637332092599047007445327362882581426168091399124140660092753113650684690614373977548908286754486030974348064135730905306113462579917073051894126912248981688381025675256126472015151864398239265407944474645685277276667696766974128743913664103247635895024151839878123903406596583079306203100471183134876701343289122384468271069320677912594435770761409068269186160730527966643362995819521111324541892306804035545263529708832461208169516921721917320739481932400646484598419192576292184064304107811564526479494847217558400338916012013303889893302343417071654490686207859255341017343212584833615911209630243224922889517810014104067364640647709513738034043354856634298583132209871574406915359079178242438246800797982876558601790376853080352198636944576713650588024257061028774833466613709064859454922860930250677848856640217438577556914538072475837574917421797984313498991150404109351007121259629455505243188838460458216015600564384474484782379447856809652819635055203188590510481725448094355016204792721915307714706050593842892816325926055093779634519992035181657845286670742943515485968311707908398149909698656603706156485722681950668470984591010722120564640055693410779825777589520507344973749870418819249544966603492170315219010173645957042009274582193833072655022384216172624661871979998285633421639765427127026337167945970127200211033708629811318311247671769327196837790772540349362813731362537965998055146948854554101396280089332372590798031223830836042384769893194714298018742706798601207497341774226390915023033245102797282546349908182106701706943933051956392615980915338364698559672903025339307334944870496225403272126822975776844767672488734761217791520848919239777115984396675826139137239748862745024752105608986454761323152648370358753437611322706670273002137604940193828179050420042310117858510880990675986207502600355054839483167537789533845565349804391184747403821608271548521014855447091271145377551884652366449135247682830919497621000872236597157922512524450588367190145662358898807917569919231114929452419668231210143092369017550990194193935672080553354536534989791617047831082439598640825561457753004355064343336338792300928200418807566891287416740383199969908238627665635276052031059115381289017335117823484462136503721091261324475689684404900347551608067406825944119873716304762997743301098119496521616073930797012553726946090943431471882644787966969222441690159567415367404108138524150966121455581129987845010860220498608372202010262576760859182837053716214727099686004665589922396142027235061822501309066801144224395066212423841390258509892480489067208002661271834893168718477891019387580330969171494574435726894619557906741361925499464470603879442041834270837212751610747842587329519307089038545171907916982222381823014748890021862307576174727387544808278839662173076812911777007085366196470769741634087124316466936298033887474294454142354048054253947078565782011650828765517908868688326010213528326341796083860601966000590260498817695343585981090895068029067361265960953174747154833429567670340120580117930247300290528946191585944956197843773409338444425119236543895077516519897034492224113503355883872120599148616606871837375080741529647738946825766154301312184322153640029734334457350233507297269570765234348079774810001095267235361690701961935591564319456191110530844305340037866647596600318193053439002408215949002194939218260569259435169990841086838890112622231755687661895861364834063222508361210142644521039541402210773480676971610726406864701009266217510161957553460803112740292013816985957360532546968848917809241656149188880844995161856092533954732407010738811537068474528781079518104381383078896796240929600640640722927785010426506148064009060855107464503582709859180126702535101336909306866583261136499076529336785119139023025969282664515189073331720112207226624827496896284002281379089079618271983608204781042969630759841090068836063610876902593624541406895256090406698276745438239469013668767592824723833120267346358305580041844892775754427916749974145172410429170221720718815713386170044910777465360558891813374656046047028473377386844420119864599590384821214012441471253970850578040282991161745740639660053121811417781523799781343260649539031011372346183352851705032928218443691456331683406841240604134812998784822629790731676201001511644152884045675527312992569127842900909539616692890706458973520563054421266365251198047126916687958120499194037321657955892019853793090960853064274938010449034701671637019331107912815244449974263201910269976324487593842171721036549926992722784672400366555609850740325735022356917192634430450791081650909172911958048028541355157616604297139472467982598022436124275861126796306722594621914520830608392171517631917268404259159373949926495560130493726862571274499070542368096601382844076709025019921436638821318657432105420933736727642009220890786610869752976076025151364759560369685711923513774907962734696744556176806704548571545052518191043767357516491988998271933264170320464299198298533909757954163234912838501115607541187656879996903269955474388754742711645710451033854926207550204914801048184432668362011794922692462949746010654585350425180597480417301013366750967189610748323739567855392915937362289746889761934511736693263275578635411273031674662992702972698289808938358371481187349922974304244414923954687633038948582411983473574295913239838181844750859768589953418213927959259275480900228037656233438146628090704210671759964804869174487648093285930519477050352833898581857423515789896152783501975099492326764466275291790737438833980660940064425534599585013122832990020302386142075233544816793069527220042658526058572497348225276359560107669609188286724828803405939112236840234369720722085325508447244192829205577120489474843066235182536593304662016152652740429069105908909525790322314462764532646170266530082267776072769305899110067572396901086271202731266741153323097196693122734119334330827811442702306624793348968626179597731082217813487568444904054828793572311794318534050975621423062850927335313937622588276115427672209192315655240228582206724208814502691304414714072745527499127080198479030664699172972611992351610948633823989233900455239381523742616805701670659560496388048866492968342096060757795315367399678613089879666165745818890354742800317112352215143511674855478110232927160959286254887229709675873173258819952222835316039655699482687652448396493359581409160199597291719362864751532294056210747541799292074537623658588419561559903898941273601832689063118661620614330118890411943362125454753462778150885072949840349144158764024558506974848117282972773863299509551363265170400911112602813867185537808034265307359076629633650828990203675727630598720307868738067072319888872751130787662774695758245870589109685476989711926990092596059413276615988438381164108182562494797178474274916899027157591115154172897211486545874785503271453222310222297562596146487073265269620976043422291523806416054218161655101445640434774514850870005698883022000036314252940748468439840200551683321200726507622091165728430906720700281014198335182702331362536813910479558823381927203979482297577780216022278613229720871272762252405096461480257446606102831482138370686840300724799954050192578316396800249538144819742387745986851847391530787354912939713052643535520893050365839411918837699852370739266971714758279460035374266247947336427085717561239485681156994035814973247564961282872524495218064429454881107419970457960301329943332838981423638543907174110610768963056153324673510269549095778621937061192638847408101455329015517897702942340442476240412707143382538871873015398053982229079928186700173205433197611735979539504753066896094025219373540168529162312061648321790638804061456526359339491203281010807681752990360502262075903666921908642999011502502145255154708536223915465323773220460888337367244891871902279123970036553795776680256488405398706604652587010775839004272856491082451510226908081551166066189440065611565858838692703640856469386041445904194846514574852781476169557927603773524053127724148580872324002068014051104537789784206579597998704302298767100741908804348698175539010172972093078479573089593022741471086615611227752318614026962989620929376052262740518751670900325374867981272312322159985830000993599601577669459940981240790380258418542333446538672188210770811903209841145005060272486316723744606575141911941980953019262457891439530575296062392377288951568906411290512486134587825235103634867341417212665610162624012755698400630610429252801433627089311447655563025468577168207806979618147878529519501945311635993309947453025546541077572413647607235826263315430997823464562530442943429285957929283510872688531649918916201588558577301345226913658739345888371801261424473725861492383792280907380966700127019163576085102820216118795127512639208628784904532405514186502822080474371141000376797029415034024912204754453138328498946639228898464597116703887091762765886288215011640265567644566950596572229029032775891787319755873196691277697175866876992038822698062587759654208162154435323342566322220421311420318218496599976153799097155980004621680069651018931919099955241090258833829943186131924767754150249703521257624834270422222715682137050058377972009554752532782574558303096249905826869442454755787066204383807303022138622119162813901794098126601922217820220486958076198749356628120200472664731162143756619949429728655090890117586862456459934371178965165625703588700642848538186613081848751309252662341393220143092543206426098380701873781113680457248950564146857853588237130394033334421993146258624046019026186483695381209179714326270285230123641840874492808552712349236567014260749573282939103337290884893901064920632404042561577767800644502904953280104027601972305340729863256378714507056988466613595134875526134501275500136786162536045049423289446681025937898542528161449818117951013388466850627511106633200649481755775943495420895173081354919649852725590240185106584777463690944715108317880694105927628129746429090402176487323246292206909826468701726309860486269696384577146675841894488266674486523715628651012847049456542204570668193906243177747468237188276661716392152952178817187930224309976989858597625023141469019459786063609155908257006491951849039533199987105860238736187043473519970442182435587260588663656158898113875866686763814945129593993600733190970579260049551259806141139049735507104046071210439525934450530267428755884885863255408322924149107927496571581614368583136883563857268044706837539208100133039904417254772702587150282396855897459806129063001683869555446996504341766416761710693336457859207367924137043849636071466841350344704051214306555324424927413059725369657816384046684522923142275606969134963598347084960828967779893900521989585454077128121047620317254241712941205343763903503527316748502344574481602342758041246057741473519671379405712071215244897482556729104173131504220711468129454315103705757702722897134376835365874091165230330259061455679582662203354463816885004022727112916382462241635100075271285538873176757807091276737840533257730797931791400003828884394567496383070687147733847355005370101477847637386905721665298431296481957430859562429080554782761925480785241995886403427703110355067882365146730086898826245205016169624222554557499427179542401093406380819373441485459196962300841019549158451181640139709288677965637551819892724999261829133857908575621165395168273729225666815189632731033910182575934883891796625754916659189455352460021479109588709670557904550008289999186423317671476848084238807107791244308785910827133889734165915630414748796590360516945496075703216190114338795745260698517635983693789118994644303853764720790624245428066290649150582331407160045336468438632945533329293292592830434180532108044406149318825271473483798031150192921215379009832380492723935594417467602233753234796573802193556875654968778618034884081521990077857140249583777853252658956650131470551541640867262573444922806923214333126430313678553383944774951800386088295096311511680237731264017603625392538447708279650928463937810780443438236208335384380497185724459356035902766707400762298576355677895502845173397355799294010839365200783398485846504439437253645171890564652056428233949500246474308350097588644526388961473325610081975386150976056646556026657713973564786113189255759212703563542850216775221654291523238551362615183545118170299798572168690277100641851269529059556849371581213390467410903333192919896554191454837837454589115940072010332955285339958134930176955188697107426248980000046367878894382586775542904099525616764803040026775486707304463915241291020430095549421992230014673957419299530512414177907885042826994663453108752653122202208505107938009932019303566759984848454432390325762873929711888839055699035039214320654892068966848513830510201164370924488689793431669270217628244813608660470432232012969703266834816084566795227917773145474694322941376081921306292006262818416850172982797063292630555607087963597735713345579369861671838957254921625957962151110170308075038847211656088958389191714978119199455227750766737261267287454806582817660840656782968881706757265025505215441168510623736973419377458847247464892810113690283038080979631425998943128213360944968931075359687062693172042203518376233679525769437935490319018725983955712213405287755838986408409337983006258451764820472312883461155969273466519013583657064146737281270029072692022220936397723208157386811857750752209573009136393951678339841465821214859201582797969220531794702500529597716745518328374960227799770500754218099352646267980556408234383721717607729666493926168234973238502922105743773847456203909123856831619598540998283375279422457305406384220646110963690571968301439721771856946843628639225055433518115168914581303560318046684898097543000800877203551680319576429191103033138956607471451119265188166359973728055865117719415048992122076306366852139967922703479937846485810420538940077393976116389783867832654055020711996814082818553743911159755220756123651707984303627630230096927838351980609189386004579215629379193675573531818460502652062194706896795653244186272421115011518603397914091631798229133539398714895517072597955803463620787315570863310847862446432567269852389037131402596556481946437357045898527489142623931282743141723694671169088730729951540545244622739484796979810107700674364736648248391300150518813844191927959672577076347137069080409459727205564242272040401070066252916222801260951614594524189130071352454694913910630346882086536169334397861574293430666360184227660248288579751604641190555082063364645361241517252450525313217616665936071270664331920645396184867344834216367885905393501724665928450477494621651245937628617291444368511879991099845398723877655168972160253514182675616323115644570552673125050450679444215520804568691691643555478325650316788559026134036929851842775737062851638510925781539941237396147205546834802675477751448165963768047960049278074556357012343283727901073695804127106574839588243016063091071827182751732912187842551697881503906400902095531197919278944615621918942996894667889428687127208406208346228803877838642529575608803486849306963282748273450811945185549929944151344011298541051256624030537082427834224955697002890966709210102160992851233722239740398386788846524067980036444416762415446094967798694603804443258318695528041889650015672647622535819916942433059636605483385621326015103265344224914915445110146217911675154887609001172780572212333025836225351176459294918324264627221366501038491127190670202450015083140635349673183936789354624294643725559431319811631437326920107828445182117585743548348542844578315810505122965710910961760409889782412296130426155195453685402850758671754463663103529129493092306388904780570418383237866451466924049184691285733770105990430809168511774700027609725890157413724482658320862985155699288209924682865623791521661818005079139314800535747782334875944707829362137674972654240689100890670011764163837265529047684414561696059547990163507200323550839222279712140911562794437099270735864175419987616819570077060755471764103479359087134086202438595634576070294800334155645094470443677067446558548054618881214870680004885444665906470315128801156289192041541530952983496994021811311259559449185831402692595739406542599304164595124455427220405201442820846578196971704547739888947765232075496221209734320229365290268745331852603625955228705792582617935304640705692544947929858675372745981522680851144289850650006121420238154959171704416745469983069378378694762426870715553383229356414451756303320662020134347103647358122604087257379541151398887967338217187842054877243604714807095059973946494168730120558994279835539023468784392058901579817657787915799225997035698243387453813611931400275136054749304611829328417273963263446606342194069462379453271813095315464089935207445016405165972139629172893724540103053147190654685524417123526299332264518662900023679327001853552246501061477540189758690845518773649361463078029121617215584145737194688324112189335673957358166472893316117453037650667824753167868053428497530872997980578338619802048544384531362159739128145867194145753268023974857646404953095206040805516321248072969745369888913995988493711393875976226340247153943685331150848409058283702344068974085987410891053427099685913179246442192674861516469395204741847536141457096483116441995649814744632149660746442889806523338822072101704823796917665758763476317470029530498576370106598485197090618619701120665448183825943331611960899272109885594125095829103791984901514857883716774765980875230376885277171192312504244423602516784519810435741444186691335376312352254392075588962071501380214763971069085831127072772230834657630396505277184397613750830830562949770137768310983560704550327809550376561824947799367149932773335538037122513507944236267646029185239501348860241950786504584143938868177690725393890913543731743183574392249133233996205646850014970108481949529201949939050339399003617908082283271347013416105052882342463874541505293105742285892289117190363231605779762038052702209564256992161334868042439606671140900026360630193709496318337806220258750318469799181303862801116083558505415325707885277227869232277504852370537866235645253955957639275169807447514951084432640790455287659606580151892431090645526145506641595980175117588040685366055620245697400571750951503009709072423917845886060809734548404175115133318779264192168107483474889823194369438591854333868065661989095222332620078681006113040946278152137595818245608901304702739591460414850188159741591194446598925231287766113982396426667258861877465194730538923378657056647354659367269676767537456801520045361583111617854832876863059991231233838104572865624649286541306026373156949419022871211970153037847031315547937726513954985483520677524751060590760635866318368590533148445985082847460404224015281911487145066639662044569709801945167182854820601022111176133555681899509373878966672508730281522780212239871573457178336763467874177737498323330289950712559122158513149686399910889628832447449642579856575047280734374896684627439702102492813568654876939245775276667769890047725349483238625850152928560418669699108844881574078543540252211609579023377559624388985034626081654217731705239520654082133356572996732828406123953060861030368995798746037081958111821846387088185277025515752782525925634120411640562630992796036645255469581413335704446217974030689561373959328428636752962337916554645806761922629096769146658459022660511047809285955717275492153372913176066086510729110862928911532853986045063338151102624172294704056074714179788930348232944765153641366652390554241824358648646423988032541362922656601730184956950770528348155178348410597570930114913685982415904312886313216353791669907898372646747489741747190042004818808480667175932454860900029087674413384615571220556214424977074827062252016549799732443017801531282956637099750001947220506591210686862793629247882353408165008067762319850399274618210173945148301294387305156119472147760203383085603126854024911487481283746963099010492500676742704112669175699642579278369856303133101921469315576626679092784640877259207187413951251563376274027784427407665822355724540644150021987860134854232170128106012358403249012730226279426475321704306613780176723105920197485306515382802521796674220533033034841589645446756228423588856911545127740393042129565972477548772443620471189518489066650961898086179750888599199370209406416816278485112192105159999804560262289268939607802268047294712334744307403997888968343413918754900916693896497757781992960091951820965461964674815630225855556674850413190740157584542583362888768805132459957324123292541530628335189878228211838839121986889596584350146235788969623678998569775580793599459482193471890747331325881701060159045439810687879846139362346285879947204489162594050129721992504978018693365014710860298658573727864950821599317244197762978107348466370336400872124803396706302586460927393136080692719349027610227757331003176579782760850491883719210337821773988702344084544859754139396101224971767421496412781174342521918729163765395500197199198332807971726630770168307603846243316149535710348114510594567192161869126101622081891660883291302922747542958667651403446361665152427855926667510131804921579631680743934581093848450257978317346951251103373739965782584774799146643873200702168566415744623766355982284497389420659861037772812440233567248421576443507917682494064574943928635198204990887295136422209536393343972714051075932433504150717662799946746453682086898491554739060596138689784474467512494095050266978385382783733288575178798798151542260872920201012974935684741041767399518268549797670086957772371465388268823008368610800954279327806459207151179333110993472683306435038822408590138193751730512940163812462871552921079813697711256692050306064333541885625347223868878659249072384945754376540385125722779160857354392672907820693906435228592227588092233054168221226582150117891123587787565554121679852139056126132678402635090584428303094337078336283901081852793596125866392349418373198229486390370568729897300426809662326285505265381762369041819571256561082334072973606575722742922740361904893109299963916468007443369851155287229947197318204893397790602844195155021687645037122043118694649838555060790621215196403576358821168807611120044248080387950271633413274555057113638017326708627517792050149893596040521570386172643649231913684924764824031061416531280840103925785584628007561664216667628865618311034441618638996804762775882600902780566537969827611735992269205138271807077741421935164753568535486525891001074313021229460198267643352420052210749046289721901210578423575094683992576661238272974031074236005188699022694445573334695866383946293570343520671610064790496900625581204102687844618953707339218083530756887975828319408486482939366711353609637191986768035134861049271789769732554838230211606912450787574201311967626648160431338981199422784851320550611637333856143177651708952789731352080516217371233362106633408142207519660160615794301373403091946559693317978522618743195529077756956743483805474090539314403772392187743595216080800366942491954948187018139518230625083943000818642386888553125976592120355029496860428004903946177580910781798096864401988688155634459453447065205875663903186266569340844425716808189925192817591399151238840792788638922872508175196340521547974448048931959333616212236597007605281889795172050020676943422186788361830335741075319993590062561886829318945546712328445960129124134432079460616570745933399258404492048840928993956812248802075606161422777851318966013004209095516999869304015592345574195826723543745981062925491559731223636478180220111576505096614403548094823290756375846097104689825778820452818152600802245017725148716332804296347517791347593797981304996564426464752073443925157835753412443511367186514905722713898156913404397155596050709929868066349662868752163394499285404169601658916234979993695259627047539744886810609081407270776623575587574423837696585891509767169508634804278811374538808571997409229808705842523401302514524473158753737160255074736081237693622104868387652419705962547878962936887791923492223982342399507451810343585699804194144862122038454863929631867229268071078095230965560928319325224569296622555699949327533763078544384468167189288706478510855323902098735830285735682287418915933208472937272962198942116437351793600113185750608651178340641169460740820340683754017327981637165909676188309372441750527535213875872797638243522977126775072801752508006004177379244285723368438879588692430997801532375641090847349968143871529220131577888523413922580019839801923282581119660695610825344740264770576638516601544550661748108027875937226810576866063408375588002326786906626783752699453079126852314896913739566473168206353490549445198982984787500248296983449867357973396705068732921293221972061124527097644775872346439895421119679488001286077040505371738254615835063753726516149631389139250655727130258942588244511133971072565185053015592016915271804958951887807668204592931016233464445147993619441584515927177912621764511467591850980704023260016929776228775998761486854245579943969947503516396351042150921351230755341632260193705679924916365603631914823446416865159201239588377832602675014632329561156310609675203498932873780746090830006030263596417205246343309027566864139928595813195412483940880253307986972939612118829654630482339811387168075658848544739656749000704793108153554300130272097145402372358431308407259142942102263264265303720321041879195099276800203350330503436808778344466181306357405985038268584400224724126689309459914935663417693615974377647489637807653548967502880692137887338432827813084142631022268507950187984618028688146560113646075713373912060918066136616964385603042545611666320949287360570077918352623544335115673409659616981948020038239088162493850130740309156353993291326287825627162209086488391041555138017230875009525533640539220435313069711848844603866594393056720374205879740000346778201380197866579070915348909042736076398080100413986487966571635255041760861673613911626067518994158376875005867327737907757597726776949637025877701467810451810356351540230753546431710701415752556636309269427992035792310865344919413154121517663789429402388119919525990946908951599706874557777450271051069288410358929223139684793962599299849204787127172630983560591299052747310910697365019629334380731879733487063791795471279089290342801521638171413283614778168339005765345014323619188125750008706993424259412656469346749985498248980696926199336662937106880139360359039170912012178103255909893079093428641504373295106605150500913860833954252935658444069773069438078425639255317526965453232730128669519551429529271153276558410250465723380250086811759995329296816663880626600387838128164689370758514866835404758476238576011769088032366156615726081249113635971275455290087300535261203903812591708351490525267475115149706015247048880270138234292200416048775511494860270589447618826219768501079108635729349957593354973838990163943399921619412788155437005376867479471166813567556659813040464002105191857972943962950627268395178468035487411200287166096122248960610330095731678759574751205033138522323749383795448865968256375350726417783577547825024448787640663631560508113937399041667693467993396507122591102870410260946825246215140323522258098631033857015948129483358619381958584774127540523410747348070624392690992454544657599776661416459438882521497046066740073042250718668898653491145112208754546711301535142248474595628238635351283602064002482882388096161532097204652967586043278565321929554214676219652843249089905571844944048098539592796082131263951908701615240701999806817841579569646056735265996094623130018214583868189880088903286973863290131899027059317624949974722969437446524351347058480501877699932537985555401976555199281604386882826864480997184674468276598616090786848522051206424272273572238591463576293805070819674426828254675517929460817616354542429384046015147475555458038713990303902783920425086035116267917247267897268868415002922685614780016338794353232166700263199038470460990249441147548000994122541023468143092728969742249929067889342752524160392171918961600349161143785297615965357020148367774989490926561034377313589382037426971403221977286431171968861924465318714514171543714171867508260506523170033348138576804270479489269943962431860969211248638321567650162234915336433302768780855600901289720682749292185827732679077036137064133036928509539947778582453578667404108877735172617826811059160363548427752209406029761028240222326004189592683261680691452659067668643520203589463558060779350881838493413516814447698099266065056896458915292158676066470428636221280325882561487809316784407756063834192049728531058436771082801022473182731436483012294588003585949973096525422767230789306584472598496618476345723792657482014254989602939136166517342489492385561663433973599338661916615489004890973940417346840693997601576758665807520599162991793634677865810715441857410865994270292153878304870833592760782139470196641432293879567016402705807149163923424217709715136808570614379832421194576659311189842006034511435805692580737738204082279031143442269640160397996751746882979339602634630274538939297584227339295287802586296161331020648657614301065509636504116783490144005318801411024074328856302904405664902365861698688131155358432394359820363507702157258422475171763328295914198845024098667821936326391955456770559329953249289326643053844241006073117562355090022022763710367369682973172780847109034767046895369078881811565605274168596133279860197712144471986794980761236033832673014220922420072430815446110953096113352542014328722918906898284953999949969614216182541528656174450495078624573860162760552769882303161026624180862549670125314862530234280559630127682249585555229001741578487817617708948788842972447880735469336691703191037517137255477269223564259374355210742361892717450595913492447077212787937167681110909134615340066320586408338794558069048271139158770042017437168147741700052101047625685430204408575924503679427965965695716583866779219579756872732218652087991667621154840006981785128040775528685958669945365848375537463451814005613458802988223017968464273852487579506646488468909667825559868941949694191194406491125704674243757120818217527985507455753392967051673379889906009042117898568465220473213065833865717939988947170808662144685832252247485349558264846117154888928292460623160950645264602004795951329301767665052841360358839575380075986124320750753081877149085980387386535743898445802484653166457383723092479965346200337636148151822510323622954689608182403223091721789692031324311173821352873853934722456026827929823129151089355516467430603688420002653347094193190931368099328764084738274071283548365549835699004484738715671613423225948452332504271727781738662246341559792672725034368869514670144276969090515737654319879373530986199385493236837301040126109263673293105508605162839623490347849782369021259568614901704840118904840248392905933247708405588181891992090482790929516034318243947254959720668328157960795335682044430105464779158149085784535894396588429880593407584953025345493908538212311344004457363967545572312942352160623918792358318067174575891176782361790183444691105328817745442256349149347476284987126701255185731016167155382167935202092815965032845985032356328564655303118602783518435231527754656625882480028584065201611953740280004221494715498855039201321988996133414244364915502301647484058588338767453864314242790412675677592870781128594621909137436728571947805755523974665194987911620300660318933448492310074315197614286532338522421264713448534927625369906770847978152332737146470051742118757960698544618844925198910655454415523179279653524980283883233245537103568478476243122554377950926967754649470719370709466916690358898599128154219705978262337921676472790650595719300517270254511487310211711057822750514017747569717234151140827898217393389385409793465269904998858705892456401536176402345465174239930882015484415614488164651751342295750886587354371903048677771722392605322312685069072754217779367301763241278697561517974491854215884261620009686887683924622984915209511373767030877133778272232765582148221689935410234066717742068726723670181527014565324150898826479932072185705032561676614746455285153955390268600135624019425730304084747201680454403910029873030508861877915539557232441395887132361471899215982922749175369375019146257850467533537386134664735445956080826830284866892198781476959822779312394890385596097092305236178113100360360261550020494984486214759156930539360386940455356653527214805265369951715030761993737420188071759978755782397729602380027497822081873008400948882612198432837827586564903994637911231754917100135927808827973836596946990252505718856491693920243858749076357322598832398756485146473114269155233339818540543669193737523416073042251364299784473951585796587283060277048689905297102505071765946837189048197214334614282243157178448953642700145695671876758749136072520189205155344616165921600054567187347203557899703493900439589254379026888763080232163700241942170305850845204830233118917867809216590350014866704205849547366553930323366172170168240784184054965515724851007009052117222400182592446407135476881418945557570916915376723099724300888909319801860375682553016700023514134857166841839750180718782983659617775724740184530217203240871656345094494580651253698414174195521355762789071453178534948932582231035013739525600399009009362648433377515601627021128632653797137808477978096243425538412010007081565122169865331489059435634958675284818984260188137002667035979521609574357682873189477333151373539004054325982440648727187287338838354364797811997060791366916741378662267922216953600484342534489391192364045556513987016377762320532260186379283989276625730116544360175904803069340499459570941558160793138752036458598526999677122883666721768771952014506728013496694727007191692690200773220184156949007721562141711494788620194356348930575358133441021872498362516515180408906410828394827647776282152685190658120549620515342961033067837424260239715883038897325104821217602302899505925087914613222441135682942139312674135318828703363933116562842894376178776462068953840311532385735450949100028010534987855395730708882579339175230336513070853817365368615240592596473560889301728698401388882807920502148275423873167678045839705612865311427131976065903869548258826335896942733219969707408866407678234084176505087784313411312282359139001894376419719073466136740610850657365338465004062589522750664201554198868424677741140437367741204412397173216320428786527702756649999976081402801719272302858843759308957962190826414124202181007725598132892547675201825492413788074258618605171398487514001829208601963359441736361574351118772179017797391370934370531587884395016521843269223504989824982694232350008855275558571848385427931071594127244097850531524684445825423732054142234565938633938798026270196834751751594392045551184732147995171014242574574240895738676427003210385071936362503855440130137833988158265963285721270349913589349947035557387646293836287629549429404623131564741793773053961369716987573288454488562303526423318667897154846276957583674726006282904329709578635989357255562537354748566440169229809395477817847733941444120638886176502387551177303628575831189912018681027528452849615853026585428541899909294944167013506741201243242458320616885935938015653744337438157298331614956998507847142460502466286257304591993263101013833719841867587388015064091743796701414137761348778563758453487417603731177161421162721736754313032147464436658005233801758133302760579830452771050105935066859265842737368804202605618702505670106848358117765717003394125999733881546212672019892459981122806973920291725105422780585904298766681602946616289474254550712420912004144584623994159742835989550754847288116501514007111878297090714116418246196017350629176897508903271179046989347301099623221324431488359217119311092086238561318832774766279739910332057447862982955431519118206088288509958640309894450653155774417807961253664806397908392584088407360142265568536535792563394679700327007906506061341867604483533556537080735639978044889092763892527171228248431058662914934176044545840754593212272619953040631050183786138150301051879719571508027290325833320518706730303614517014009545023521378094927657995482729416403804362454762076902953619345551703999582513317116579244911242834954903934135595520897133697939519954525574276239198743296923174478084111204649404261673028948016609829671217227980865766986373289376317188617571285062680867978568347868787286057854798999282702094460536048062208972614158949639506759830620763199267373512163913778509223559633889128569177643555488620365663009704524891055423628230159441019427618182030385558608511347720640994252485279157077210137823259228469656062732091800671209111775145638949863459401399682343661164440510680237809805129005433425942038419696421279376719483603065191139378859646743604027441374519764093559668747205899208383494066436106165935282883706165418562538026584499069628095631095495521504096829559988398973380325735213616320116865137638898064399822807498268265239039945485995341971952997214952113580600181186410818861135244999111448912627445168159882424499374456263191150071922396716525216638378921089320934607990534682759019907448315577490428172740130142063878164789711836523724874480260414111907205008348917586378359243340734695502116145245259419082094338186279623585540459675236903837327887643115000400540843601627274599130903319553760397043484406120949715753616638364301725269580447962961489700040139584890715755407637260574227032220216250325540940477921213117358854449103887648054776454813167894033392558385509030468373672123948958332979072712281831553087386360079996473634909030574778031051735290985232799110981570637903122853893665762697758845374845870275182668058160522041387965563277382442312135380329048091779144080384991565152644934432136037957702338767555820010804426280058033463177320983251993543342831848192724295376033679443817693640344057649592822305093951818911260795139342435709156197234414567473758799028134762711450023175157705364147935306535517117842500006365045623413127569420088533406762490558610943067760988273446232171709178282052207133462443059417558287221376287398677606072859214997988597656302634034397510995558319057414990447527127804587427586519796515491646517710931957327905242509504865666327350533853727439678129032179676091006014102175796206605101913100044795749183236544609700397161421784873442137034365331331534549699134877605210616380152414342683725605653039844228613676746104569466568276975003646545609521305209346916428608850167426951817641285869629113563482167205767939099743078813844804298735850078948116789374348571815688428764927237423991722294532271787980251703584809982638547190693093378090901396039385866787508521396914784837080701997856510382099387592110845631845308141474835774657757995589814435493176900512740842197825567672692077906719514251559352120097515332558494816310543284499970500649985781070683020673048305470185137434517001851025739411199810829784046722431163323305742801963460551842667508536524008266283778496667585633781938076248547000070346883677335024559152075716944817827016078496375059149215711502921828413197597619168775833824144307071245034277485303338570184069037895513843644544947209666191210998082658422733769573179933719610249175211883896712333533708837598075162423698987978099709850762533542082169259275091724172085563444687213763585500450225443664840658965127647088687169801200984963550745932512358300910672882835577163707206652172838427131981462800063188539633032477629572222618158457093060286992174051222749614853219630148479570319507782890775516930495153504282884969575929678667955868191245244896717222049408184816915041748214951075330693720090865240061297790536443882206033864524027720334823613647037250994833893414523017067513711990679620573693596069061857549391329503226589343947587964729063273319726422497181535083767446355280318565505385104888719943401210371408312789535300334309738662929289490596529775038055590560204966372971806383068051494605707410661211102883952574973816322547186344383547521467303070535420656493478742905161570144954651291526186295963427392382052608162302062552860995794288626907175657665304958353259079991167795514139526375812660869401066526259485582275304835369056331399739152199806374455682502478209599730910294350516221036562089297398785562764751148237717008041423136569823988528324683960790377081086866161171058703542620447032499809770515202766996562538213700371545301090556819184803048919758089759774881643047477809582096067600131237037677120899788005412995361648783059736509677305055221286000506513906442457020886537145501233194727604225852228747611510489147479727376095495933689027989154598367523901467407097542175509506747457446548485320054685052876770965667769759868012982761630659308440738377006769800667823381306752388602384414917117696499808411302363936066572381459083785322145899435703177639858271585320011060273325814514780993062617662966107987964527861890696846318333881463651299796412828898330705030282210758940831649170256300792760816311963626170915592827692135302132564058705131259479340983173102863314780813917650210568608499725903611117745827809586806888042744068432117327438466225050386938271960575887046937379600880639065839337889319059951299979684028085257822214372216109210984054521497889215047341477579451984825846287635804950529533868692018463816111058794748503698654824493057638551117323868083453464451026472958814743675574865593896950178001326409157181940104426997334255449273964502653717360903306917944984318162964779111939875901158877615740757187631785669115338672302772862992867002483959888331362345016105624890195763953070718840065996929156827221035873296889487328703190290314601561179864637878061025466477295811610624452912967322498768433273272275834544673533608451381611058002685042278061240485091956372760415114215728133661668571648684056046808201667237333302713108977907361549208257160126700831273836796182545827777246436001077135161344120886150684642626492560946835109244968506096992471967857044460967681660438150443719205055940366961608809557289483345832640842835065042835848403981876265240047631988961899191346618392551120497540093494081820783040733543735803309712765735243678633008731216782879700858198497733618016696344084688687070123381071174665402053262003294563614325915398396301518483654389295723902299792958672200863286473434955047601649350514237667358942698104249010780675610939017610517031025158563933980680753094495693998958193157689481500846801836209002792068632848588914001633137801369556670759264018692352795719234591692413827515361269721087762145242325193710279544514680602681938756016589087598908012430857655999376199480482983592978300130855591356170597679957967503874591332958752346230840413737762559546005834447435506237059836216738506635634241815914433479925009433727433097726154337690279210640770316297235280745480913571430121207239418484427529192981710540251031622596229775112772953250307265359735063382495331936429418721507847616577946032412205204144801298479107483135755650348042819345944193522025244127806816853071708181234701429467002222003323709011734194513258208286321192732231298234924536058140124675292352163662528492319284985980420853154190078115327805914352182627337573600103508961411438633502630635916616153532479286978753214109705890018186050274164521808572556549077306728349386653317357569072357228268475975814043797934382462038699844551870911606323338994266429942496880718996969260851192095825672545497640184810821966043317553715994100235936836317485972835748509845930959052057987653717084155378486828640968316028654691831974387827318444706288699430996243684724739213818683303930764955633259781403063067175024829539228935382236771070865056538592948518113861810001123462482752124458170443758794439536312942439962823806476438000255634865047628570766359805778045321413703087316678320414890809008295517008460899007761589377221518098913542457982218551230174806911182254408736052371886787437709635124989940478067483458063363769068227020348768169105909135004270217388099344888286846243048005485574579107704043989847455625773046953569216919419891682480017013313672215545460769330290774788158788114685787789916538465421550362124749096342168528269562619266869325664538182089517573339285812157963857116801912024156162214769878145825470767591551163583379608879762837994548632964910036239361443700752284965107317970624295238997101037743489668419385034491470063014227004264034687660618707791669681846569104816857887782036448121786891907755060390801719325422261257919790769162256705064450758894950709161841970625347742877999336189564342236386928105812341340305873883181477549074711939395822040488570343773602936744121781612675356385438266370921933394744328280764841027599093522360009865895766627399514683049401484975225537964237639240149453814704360957479303574411870655627563327449013506596011303512435934668169651137269374517322904768170704483546166634609159516226897420552153408325431871819760985807392021593747442852019603729532474893387020747973522291367294474044577158415628823252701644063938486282995027307939837455461900931252723170653851466849115803537453336195467577124540994690442608980400900930662031867673583937191187764375929582197740975746333491407347719219725720865093223867184194226078030567899216821099459047089864930345312185052251599471606090074173586391976017805701192075212536344730005426307409025749059187192852580534481573263518116087444413415895056153360133731272208449187060165283101684105569377955524791354588515250545524894023538872089283073281529211025970045909671704959953247288064315937250297732215689550678634651690883570444904248073389605220002122683689437178243929424286009864814692027870826742907631192629807626237704399710338446157149100189260678618682943368568344871502340131454905651997625412257681097335565098630267902621620449922735907255023324156151037853715500227425008010303807630925405075151424365139190152178982985012535061291981862208983459699864289643655709154461898072423766894125266498575120288681504521864883854826855080562425517772315434999968268387711999332992916885435892898505477242258147554710108462517811088331105212782364775922577735822808138484453608701316923943359768529607052179329930113854503422903433999842717227807597668377337166970978536932646373062154410611347944112918039273194410125057714829052497538816655477743439454600223193927361380530326886039651969375468333412002164277493179644664548170023704718625449756428891795480770411953336410079253711268074867907916031795521810762469711055535425369104113751803830593815917281750500582842756298667155740579666184244314194420839651388307738059931933594596372663414846492567571893724339182858812878160144579080507357101691818971798666865661006142330526520491542280217487892377599013829894837826292502439281024446061536576671469334659106299745112453197444483683336586206915743276743662017805120354395767781542080513774021576714251433187766586348841017557607127535321449890660329447709019034575372327093933798548982548484342060091414153397002213259500544931018677992074053710545597821791153274901621547884046911418958792082778598270200800508727074876118346144707005769388578279398008691602946887189896348132151091115384399790283481437740602378628164600578181878370761401628132424012430119604144862806290309776555037838324050629903206121519221042176844352396932683979654742373116072695590468267973694112725277773863105373758952537105074945622068101046585497575076830657770682864411636817023276501183812592042564665284085761518607249097568146658261791817437061930977999508605842032996738401176068345763519076130163697157549255763962877465170139689734496575304214620827336145401569602330726523961947165959166751589336967960664894710297003226074228175120331480784333204480974026876449133063641905321471420331590133315758905601838452543269201006174519450181842730860573130193634323886374379207405996637051156755975979521566717529973035315812349282375327044268308202416243487125357295980077414546157086374747707980563940400851177830785295461107507224801983582165834415154786006055680775850473236455912365325751480412336082905452806761439803691951898153115360914101402810228472247881016629037285860848628056753696060793714919178252225339013664303665477789016719659286057169182730567815308585619118643452867096583963186972511076199500706185130486082375707219912238298954622601185609802458090047832366941978079349055349759806415159535891722411369298424266895185271003581288663384595050306333576231714835426499092288392679801443103750811822287266261838931066290751585576712376617718101554307029948809258915465842166453997571813916395323840117024386499298055556198372880690291289974098373874788128288621265869373102517826753301490120372991884269203386871152238092520797647520350499465160109047410457565983442301507593120647860818542061420402396344258349812614445496502348823367655041259460144935366769733370143565401005853540919093485564261804936050669983906347535081129845456990458683289685324780716712039120070937937148325035204851749246711103169108801234519423570954930115420352080982506483833114157037208896928986762472663770459216108095528432451938234737419026681599091441726575548258686671003992275908536601844959455488685309292189116492873869778779280609397079092549567904245684345812031959760149669162718483953400028599041161309335625211178751053160399395418160312180877251214124399140638923270562261303601891688987091818878113420487070374669184275748748608067214327838344345998175687368188952906740090711787420273147100901247334613859309707895201068979434288671324734180871126924208010649985241126317949371138646553624562325298506090472884091307364080884537007921644393698197432981001930796192458804699438728315689002474989672212662495497750477312925050434781182483557406540606930698891207511701308788995340182562697358558343787967088227895271764006117002053025022564822936068219167617263204370450136386177835266848136022725844625260929920277773518742118935810952126617593406207966166608012351144874671231300711948002479313770130213160041589728141230702844879655308862897832885576408632498167489377375942806026191685050116842116846066846244217367687018120892543006675278128238035508785954112960762050286679685020776200232861738412922347333655945164544652273309230386000803693464874500269045614806396191324412203192622806763679770032770521325484094864199571470805924461284337156102066419597646039255435252411928616591590872833608990465807280779380678686385443892124891934962214957323825658775572960547244338545894484857521773802311453469261766060988534399801307335592414479716898347249945316643676849007836619594531558094304051658201272039169071229704908655751567127561702542995888526987312120254631447762254921591217957512749775181359278562797884148244201115649906306194191671235200156419320211824222181061010889362616772444842335023712892207320444473399055163983753569536569664759734527738355899390580077126155339888580919826424514545534590861283492586567434316344265192053556560955059481375843913815551269695911075379529382885107013969868237382467350079854906589191198899738041080624738873434154933407608137988302057773307274206344464409968377284993895892474481970185904408127480698619628707378622274179811806124475582852789172629993706248066805342262126770289252775989539225121973692347685103400511944208949317018461735354921544024642435122546448181413754031980148681107671548169583219385851938801828378914354733818562661674683519612434315890463368384310842628174128947396393818901658144655644850556073553850463321874918639627771347292682516037568302563274757500633203748330448331067572677939855961350880623593383451231889761796396694669228929555877284470025711944232384998568953107054440299806081544222297372438456923452955506932534413557237575740866225111407758510075407459794434464508352736155259701411175369791719163480014374965885290295889715434917041967752892151450452899489231054166241412257541006660849773900861842241847033814232993809046211102527861761962001796287228675488917005257340091199297552723299915884901405791886459419902426341562806293416009361520595357244152072754392244122706739657726694733234844189294605870398651467830774845282102972423503773172153239739274411635749908242752350868629033991711862942530456352351151463232691024855190031251319800291935066752798748660769949535934268310542635192189344376225032163205118964479125769886343402073166247706288068200065616464211396731524971780598778306151138037507867768784109045392569484514597337235960438993195483152026232365061056911365117457786311632125933736906839296700345898571091606722816177682112970010100878893899531772820205066107687190101761376950963163970693650298402445824864119868734585968819173993839612844775010695122076903434530611578957694106924771013380638352752948777447111652212193996592923486199032829069031044136950992644654643123207754520862685337517390924357532378987061342833599492097428241764270728562494145395013927136755547741196662458063220490503174913844716113561724685156983076352720339585935379937501439535474389317934951795220161709719844882006240838648672847634319658433030320121784938332896305018933832981268852051677939776075773229412400630934870734610015305971132883022597157249786556210091021509557113040566909947821008500793830627174813176965909728405658719895820370301880538278995326720795090148005696442090563435345230326360055691883919701893108385178677736839177288821530325093804440508863392468368021600073964053834851601425009679704082476603507771607682645478165090788487604462145598827330408218369394935776737108141672381350495166614578734266006568988974820704282918657918367446003498117945921233536262615695905691461990822082283725321320716112839588422780519672753438450807230578526879128798779672136829748535791349679011315663896623581650138607970877142344675426942221535080016151848574987191693133413844430268851123668591230415933038801793961604937595318100883258412942715414663666927888351971649601705811486607005714738616792434344079546905442575122912759161777132207647116023242212192551439886655866283344506922852406933498501999750665997770905762242945506196916088235485823053267609595091511975283550346959253746734051233023776812523571019029969709694621598537077913699812986145389459864593782536697872568776493619656876925892147419351787437252580797558578245820391896458337925378560166652923494362007090619323860469577970713638857696315165316366204487655973897985368600061979512402248554292933014258462054832571341446008853093285828790933282058264750159549058577684305363907067402358519335232906313647701504042239582563317661048750717185146707822299675347596740528813189984059647293580239439535912088578628524659008860635093723212777221652559954739237272858424595419547333218390232547886404857451636589129895221556777056308646402404494355003521399515264051596681841788382602001615595128275702514653005084127306816033315632959774916563695176540340417442605732370821972274504712827474535086178410562152974785324620410259454267286660661829079563392686688828175148967593061848017036552606573803539980303812800844082482126173555286092991391350161204384781253490172339792474653016131717643979525812664014207752903803975932288231757818797242128222273571353344306908052150604564248190026593025623458958715624895580803219384249980735966541459017144616521777535903702495453524582758782550530334171376921672630822771756415468909778348142281675530636830163011194541783861424319646562271617897981143479696025558249946408709734012605417462253324853024659139871729597497985305134633357770675640764858761418732950821630953507412814200325404014697049850523760773070608603850869676491527176860466510269553371188824399379914758310490824401156315974132717363013203998564655897934892541658781247350081663178899916132596538196513754791345477322143457886767727368360229704699413337703503407233792195488243924370227416933562213472359297117251869005146748314975726529468095278690435346785811794673248219402460663657495976188422895063702123163476841100811712576536471270860969094329100040407618464870360333666020333873484413548691090514492955198082442889989783832768508209856962378902473297172035618724605322624282889886610756220567651771556626725649073324766602902379207559522222799062197971150930595415659631175895890008912873587646057564571375739149010315750665993140454214480858038651928535548051937379339654317306556378437655302512964796094873557562029632701555282523466232360428257196703250983309221651721225554008017240086991914748160750560957210344207057956194333106811230411895999869217377807849834829173437752238374692305674147083353590871467186432880448591491046371170058558412531542058042965751220311209926103101236077999542639649770842552692752163258319482857268212757500668601088229470445255700287213472608358216413732525383860613283269387127729855028935455235666651952275399253706520795226222681271590147714435061088463040788433662886225048792564964668296510737390168980635377330262558150259432963084589042545122366369194554123256149084311643287949509852064609062505469795318508381368476642515226012482224877511403439236552116217572539819857125081825753409275098559609444213374180771319547769692427683434420296189696188217597397224803930890691457819479744126321700283006022698224814549989442597257045791487232952191963697909834086933383228511573474310595488854951031432419281236098585808223111931995827845428137734629754932431057248798915497507639637874706992741801876364458535733881191171871001539880764291680677812646739139933901721230429628561061227025992804706864564301394933313632111095061802442613291291640464093049551503148893612911227170607570105629811370699599860504480948119034076397872511340483223573317082074238536792918633955313180101726788878067739353212226688465623029801392152098961122309201054877030381758257655314212271515218210839897251105808818244339031656721028057887344277810470958666893807508359396765445150854177225488754289817841344160285874488327098730471058678292121687700407941429935548244765969327660507614032171279740418121824008487774472235898442014456328688262271802986692306847190731412332063585342118509453777003945253805737809339417845597310920736596294388773461213635770916362012557446049518013521851683812715367562732629872410030597013165203995394900648623499901805217958955318003238911057353251451307542272894269380250520124748043756977386796063158008022339363863898501966698390674223045822365093529613004621409785873468826267613338349835149905721549196356071252305306268097808012237060341139845764338989624641158492023704078138589700407169356728927200528188811698548939131610490953112969356274295456429495605723676758889395357759661377682715583530957134922549866497540728126217272403815847783774752031540869729171634147457955826393157321911626647833124562559245725910868086400213178522622422056667156858591366869593896953260381125902886133715900704192957950449994382719945769585860779104279304931178561458227280994742434498494965056675771543403464547176061858352563945097870642811283400370909810900496520153655280116276173068039715025158334702147247247790521055173523882308281954086135590256917286043767699124644588883192166709344556196312584274400328242512501026962807054777761699829714756441032258050513893712636786202262880865062176139128490048875853005657131715886490239739934774290420585053890660214697316667313207329907232821718422703399187852159200015464554000283176641167846364088748865147272079825854079216068921542910885609859458968880668089260180001814905732425662359219292350326399817519997864435953919270766733030386207785952137104605546471944353555966334370729344554522113542504083239227063550630082023504511256110291365281525304237673027360988942054863031562747782486770890597680269602390265516105554959765188532145562287252736065977714390614793268635766128127257746698869073671207372641148240359708345844794958791797875050392262494158730879202761356172152919385433271588901189746113842762225425264420452227828053267562413017192779863474049040535136855726717229296015386958644240019902250298604894488792619245230605954235386369664440114396703500051413015069538694772510258033774536239031829025587419408075764296023715926399943863353342875563521148850829184669191709536316817817685481681776206206942702080496041555438992359942667942016281720744347279108592288231629784710576881582342106364281391328912426130525546634054390609784827588835895357924863689162270739929344043570221913526082530407328742467585441113594929974266314053525138222511492512600492376564266047381353826768790778169515332206648529303177955541211834908614851776813102636478522507955638487872195879607850378896672974514683714154676905893910147608990410615961413563303382930317337079540287509556374220980391520133911757400715675778507514247556114222498810280632460577770435707105252094045838576314826475793656201894531981715369865402969331601963687574064343277607613373005190426157066061674276666844898393745220667600283673477372836574420710134985527945113898949414871290623688219583836396038789232364122481066365913840584101456891458528630432517694452695233818477116074107699449304737658485171214560151636076950205770897723788155620626037423454493936535583730682572199483212187186671378557908988603638484263503606043237385794995082380699784911284437315107983214292948116807679214332466398133091817670180011982170844539498701473556295550779229232290076953748405686532998638549016368689625764316223276309657335275171938852408937348246720309421530577439218281119841117315865988886214341409207920219666482052235939156944637385684268043720727867382813285124752893372862409695304111834362610824510052984020492823340060329846110209812829184661564813684557836344212006483584734050518903813838479672652129550379166271082143711165004695249028084601055878105419007248047058745668482985119632741025592516537288257221265035915832868581087306029017094905510901076337309723457250045021821257847351371563449049065021257499045550351257331927722001858499620494661976411271629220128244351742904962092013960863181622753200093292747705999109440365728957744761788143331563464584024725918773654065930282945930870181894413674573996445819902091811036711811760253075135739068812819061625234390030742776487221370544326054794682495234130468472659625840712000071252325008848844028247446446791514170928920744814717930098443460440262218130552382662035554425874764982863338614577192146550870238356333029399773450052003841727604517115856254603617917339491544713790238284674169263047220592662152416393064610964639139749409602105209073447250080909527271481272488667435357629161454111787051912988745312038732916116116531526328247331104795059166785845280724007805750912287425178952263698017745514909172515453447394650113627073726848290649281380494039445136995604646821527378521606583135137373149772861855437324681891913025948755758871876059869358010312294780676160472015357588352490053525467952247416039107928838858616039847242571709496468355471668044456756405567997272392801613364319650205247937618770165881141390183435259890202763624094435173772077953619997759315371906058517427135144341321477530910979651641244173459029047679466444541087081905848186407819967147608681298828569045834534325128363646235979196536223603089156733014126723436004352032050811844706019547431429605829849868188638884385076994817984640448995385621552387629138091216005416222566976135249267153334283831862512975866395051191817769892749633532598360461545914609526431240516207411557105888439001158879271207407921087542551531836434951506007194641846547093640602801166443377550863960066858844753013022338603110019864267069148892663749377266850598687152056024876105943485713873760975707328400669641335074167946262457047457127800577651505522303681422417334315242457346932942829599568502968649241140966211503726737354677716418020543388639114778298820910301029913351634987207409739112515664045744665675053083240378179249621654795266695032495555339254517141960887145299035776572721724621313338285123894984156036863563474861762916787701916779179476967308448253120475392763512120587797139198138262560953281959242571274152072992446019346724160128555812773602216297854586450434822468208355753530584922917113025758755745171097885917450783885051778534039435550943662122894044476256222941751697743297682498472819317688206351291603312247974315039380554348660210985774537182179220942640076845855921521821151506769441350252967998483753599510207932588740798790535754096605684725614337735377655732335801780689236299842073536713457680224763682585949639036360682675143443596783402960259884935337240295670707310060130528543667472901038342890058602793061772718860152096792093159134492936591497280443539839062459744173846898201624953841625957809834405260614429033023141413842801722592733912076347278856193635313258095446965568886577606793458597932608360454458893098397428347092757500156176699333005053946855132049972343806151074098928275845970472512959754355579369435595732533598375422494662995076748512255599825447489217042769227366187189879608937148685155902906552343254495681220591943769994317133142147174691733963470282406701159056602313309235863564695696997529393646222750671019423029407743333234442836261612225749521510844398200417265859284311351412671091383005310951367847877330509727069820277033345241702744203092225116563385390345628067312038822086739395659366918819721013412769691555547037265639456571066839347296664512550581405978155633414869961695919089252186091586589268067915329747310676257210929987580145426135929162461792061426856489714807900060855896068532718194737520440666417857445538471473999638567316693810822212758736546073111064695931936100352606106817825047944770265081212779445193501823188405733427962191511457361726599801862600642744426141027259425373419397506748903823952442695736778160245757495165079194132721504283425895936152826396984957825021274415093215190127822653357480367170376265446248557265082858713055256554078138813302921625579319607753563264974393434710531934135101204984229710933117384440000499492062595389115530384601946178484176833580595472702994951699392428955784000122303363766819915180609527254989752051983507844086495002947747069759699737774325757215971616965035754932297347054671462113925891923227107838346581185729607500288950789217273188032792022007715889645245620020532053777043499349727019057396237571724895886368192746581032887267541983472648223086301519466351055262439757891192295064736271602239139442933348544683486620072739916908412159900250519897996293816876935767846145374508335696978289170994022865796110134957091378948010646805079364204498721592962875529729616316519383648073271167812980775822867904203892536654588186209090130773381350514821090644491626985428961543694382919706520338153398238038618269828395667925205496253690802157382494986515731249766962359204717157070694983856416897517904525840229603792620508447030435870481111899425581828346789085462082341113788514987351628074330006942405999047484177893431949002406397678427384747251247234800901813331657454509639315840106212721113268106437741094677497543223936431178497947135279742554877406830540339158593460423934976824105716650980632208832804018313503942781717127299603656829463272666333761069940558156580254605901954089615506192319850455323956078658772991853546128174556710548914737315846754282273357171481123331698057748635232112319015804988569604475046130283687862938985090480948777824310920406672957010518714341563781963855431770070145279330448883665976317834177922325113642034203736925693890503947687250579614542448569882792164045250630500328498592582341468773089099592310233826918701668711975504914271532562599497695519447562086398307044177769666121926566343584025245318260118871864296475773481207612482207899849474012254531593055109833208982150176765765541960185153340322479338970132867423120497967642890353388013086713575316621362553119735926307833099120673438810895353390956433849876052452398977157691346141737276212275570333582183340368486728306476562357056605379371116002887524572627131302218784405906733373496835955981305223641967843468448788097599443828482473185292326222297113968179127479036335296660291986967858067466869346537842362509045839964266696207807965931406581398761683774293296571614268979387360785382480998257547917561885567886776910414615078169176083103676321020478499470094649479434362762506444662063536655771814115046976939925172378183313594521780801788890104240076727233467274781886344865027623505860903434329166831926901645772883812082713594320978951866551490320550197908583106115074097665551333090515895020735821149436101909254164145606532206543773694881551332863695166969818214301332026199531867231463858690828420352247538149874502095673951408849498463373352987331688477719390568139776912469272441392812238189063081793137782310452279998155992771699575684274455994879556938299760091257604477151357089699830805047074844422267174691423059252403022388855272380275158135271379997809459788373110460366691680728870155220212126004346593416434822641007618552985981457951273283869502264863936323897867966034104211291805314103035351079287547016272601720216013897343521214769391958102807862887464053511654658455901134112461016236572805508095857413232474152144437785615847104250530702333989336740933409979744858112974812077247480128406147736674802186774448110309639435617650711277337823272541867850863830015909209871241855339339920823390713529577094143416546822108401444176034855232030469153740014263237344742112055278365540253163707282689271216841297778525008460989086176160731733245713905470170520381242066829321520747957990164701711991307201450108185047863373955962388651835199920451327946507271558512271198779282250333654939477015587763650274053089466032034815421863729202514696308406973011659510791737166342184090944516005873884061720811605150050260873838809873545151684519659093417047019588578723495037365060771128131562548300314062192135631345467487117751218078515044853571960233174433316313402553398692938955148664852252179609016828364571986264031855560040653452056366732085494457593421131935102830593799955689003412324574080278919103045371117448469091267183236546806657298391699527114625252483755915953685887513433461236291057049831987775931961129916246921506036197709181358103747103109296515390903893033989889876225677748964343842644628600933206376933362210519465710970752967023694389078418313195673527758493627588627499660178334166389810879872433434415061483890611091902961266707499214168473739874494483285219499038674387386033753914060004847601748627820545748651136504252319509691433130855057740382636161423788191188499185032395682696558532484902771684843010540885486868205408911234808996862193446394379163107304145197485195462623837199988434270391188940578663544186650539485138560780518306865292846778415905647501499664293971640135916549339979029428757602212373639751963991226886504086611196503331048029839124959487731881620834877662949919308395195462974622387705018046605058913198578746774352671470729791484895401342812071843395219392953768249542966461929406693441401950354715762295029719429982923405062368189713979790364866950614202949272362898684855917084323310228081028960436194149513053767524495550724470111045918060260097799402993862646479380153230784562683072199938716532516103558082355047295708356929823857706473890820596576437442989562181912107345251927102225806153485160325235961160042687580980762248309682102221236717533963660025221755556579936264962171417428429494069343522262012108872438211495323101847776115544505960780016278650700616531254865591691497681539107125767811031476418725637440767237528594640978957585927049247415986084928959031223519148609511090973608088236836830237270091018792710674008903744027080494042716375809750134721924993817691865606083568053938674392513657511152895640853537102080738144792791570853108028605243065856672566740109936949052818462166008762579415949971337960777756675963163942976561679539820783522615697247369437990893367063525294623109080031546952479597335209714232429304351858184110379240778618747095118392237362667666449394431084539383511933831960231657179685906588734152670955434302387334450592598884203199225317573992990394203882692703867187149131000180096668283532941310679419801011163625673426475669309077677194634543169295816093285081789540549677503670527598297869239095035999250458169904539423705458582885311351257618199822480511405563008752237938670885003597348919877787155567565119349913760418593894040400006342864036707477271858233615952359008883156059042609094709070770740906598911416937572171841832619682217557367350368983371415396722349068968423342780826821523253601980851255279263239411520033744871437613786389503425993632809196906653752974085162431800590923468287694911220282767736703987275520813529062854304113154702514470623661827557955897090575025252822356963599142768268137429391141750845462521543231704346032734803672863939665517173042869463674582661185364145848257835395781943121646836876459954511722354720174173338670858827122848853738651884441722363969957419254815044205457261701343635970434094806092580725038858262764798628049559772147932603235636699363183964127329823558771340398909088009628035663953909802004098205110573119135740713502659519706683115903710679470863300070474226731173732522171327777714680505222814436325423000799323526463253008251714330658362312838100483005130188422323291003546189625911006872706463185196530867948771856164586492850664811917477887272050937889556935458741560343491080079398996172688398374234680713919125292955432814698970766415978989542643488375015341337970858919475447425160843715608625088178353776620696765870263255359296003572962447353656569263879427987031791506030461427014225974224279789645185249308587253395979811349829649772409016001158551915801302533092877306332647093940123137059114412130245404954968155246289125408912531205479667098071583991813123522636972330113526732995884686528118105442968163817351126892648888974884145306515599144814927584043469377241655211316718931151199890882482976187214102333701681483217179473535374302206029055453749904529187958495354595755569911043509920708037019845111608711714014387465102155776816547635920167120926959575418481174390529554524889235440569006167708693755723066985655072576556376476899018777424456043212571546846741909094429043726211970374318971006266101108467260095443109073074632277918964446820762557494584485761514717890702897908173498862467345453269891023842882338517023149978991724630367620934639482233416974652007629253040067488497600788931110637222584197399532903427655907401353529587055603619676000656473384232966850293075683942929169374373870016316061303461095043919623897474606449742050196807879014754859454228658497990707245293940976461868067489420095258246770415938984448554166320413025911870983637142137649811538075247294079224764960355473774307020542339899157621626703563618163825709825434053315716127560109401231152376033161602989897769740812477771169000551279106205492429040641282786358063443450529136589817914238935225894154976992945569219024691378446834269410372377877706161957621525614463469929539443621356686993291521407177437600221613962139521120458972014750774147959790636820976867399622232665615358110605233997725946745095804874471461301143085472721436475576812776986728119197782417492540040230640082670149264851706554012042030639054881429648997515096615222821049307244312422027318446820495934245594399692025049680318997142894568633004976566520368516924093330420538824592019885820178785791894311780138161008352080341123269479615516048618229004603984722601335995601504349272350530044163676409214619775156082179816501883505090570201401921480863909562256950286002004386990271974093933207207458179997080038484877442918628611416039435427742753727607874256648996567258564003545570764955825275064726249744621679135681559828300886254019754536850764970283920536616438498947163428012584546718819322427017542350811394800577048588398530402413611384607473426766973929252710204206476581781283581531128917502826262725470318687900190968904428737335976826029423973611272619067002640743685546867718547546751989941466631815145299607513667997710518413290697062359740463393238674956070533838795731893945219241960992716490169928043867528087074736421876323354210546953483456006843430005818028270467955280981239184297722137902191994939110374046372456762647973661053821692505135983800645847971790481503961128469560757762530169415641916699124308355919526272056938741574045217747331410726245786956365518366317073876498309099919853247170367053544784463646390912294019275603467822439375304895498328167266218509592884630818575181645569363714607099469556376957149858940154572314268668901721159464442475858028740915703760458313692038347315667824859034507177929503407065304794640717372630534397434226497679807233506814946145377323388387301689042746803630590613494089755041021126014589015609056805185857590025397529015771007620773873150347976037292209610824812795910245805291803555733096118372099589801617628824733057466742479532522128162315909630169371930956108328410677774852637984895299538593038208104911341635569761703394983336892708970440380882441600934886090352341015257403330227312904354698640666006029948384232445032063017604770279651258042061451537220574498186441025758987829993443756267695070302200112294266020187340677272194404236822898221852272930855206064220924142557827031672517141448309665159135037934305928937228808514483806142027901176341138554427141580001721019308629530481795834472024321796408454047666499639388687256261356389030887183092492996726745792335903117054501148043653219353030278746226403278063627704412026710060212834450824556842446880853981274231519872830704066529857346828572151289699214900227805208112965000077947480836001104760862649495121991505739505912272294651537708285379583145516411718437252258327207984714874040218432383801019322090641320667731242091202255097830259187773998484160853730616245351608710435027484134221939867864004833037541161525682618539329533691684561179945695460080193057758251200165120576458963141099522582835923762131653121815704961873655560834884638328135708180579548024031169688458734299802249695842165218069400442747906191581654950322846954418152207749372447135567713490800521850786030829573254565738028373340166571669819473379101024201413399147950934415802754000722239996865819989577740848689468893125161938348478799433565370939336410701846404353600579856147240253123403104010023872735329647863982713365573623696722463785793455816902568827106310889106312336003385987631626177209845769813522875472929059104059221285825752892051603437328806593032186298956573367689480891288383892802521204103730769998164614149904341319774557053038223277713234453140106567634440044342681508564388369565777828287483737151612413929440443159944093272071695179857040101494308576632788844492460927420077837284232445654580348808672527628091742424430808347015761895141836970196448727942623483359625393515335528926356774809769511414792304837806045828832497530002406422382658250218521173626890035159213938069781330342564448864910630375998652443025509095955138967654685219873204219817529602981336966380346611484147149082144005678275496232861908179623612767351307030273682629473670290488254656524749964877767525907766406551671314044878630484092616579814009645348585946847247711152146099669255040843929560211409026085075515444633172695070658416757910874332796107409936681858926071837889072829609194273817232918578968196299754639598721609103264775436599158373618452939541520926632290100510898995519443344856695181058910407896892222826835969357560509573354612942815036286810713828350728224356183594579214251870806798074178420690710414946584710448905596894708224376554577544413401088711893544436520078862995549491210853737835177199143795450244043838876694671628763673079933489669102390283307489706590863063879234619185967041828944231639516697230334670635458281560826648031314918644282761310526481408381286254338764318070263044453609406452211027794214085874270678402842882559593105361857211982767657366173027332687523495024093454662699213797970099766347491637474301046220197957704982183283880107385243181828453886658842079432722508738208039788715739155930905354709356834451906250486242957487469732876235756519228696483129002395165500576732517878073731405322087554811834577608833846423985734218153313337190571664310630471935054444868551328780298450234923721186714581196895127070582696387083434294269191196647403164075135979761938745347431371332644734618371392678982535236712513158258071277549912503976692978786427507461287154501090007750250811094485255992705957152527225308539429588925416545294990132330472593527255969541249527700621181888684651393777546656589419148080934709814595029117146024393285728622470355659486491890336643103494605537443981957155948139411166087070637006708034230476178981724151015507295448152329560833608218446229915077670752675757323953151628473950137949905185288162553466612230932458507794597753538539298424346741713299363515764441510733592196875354534271634793438533095029506688965011306404149860289246282876023341262955652434979063063710741003319844046770038304301849791632109045455430114464062869153033174144107124359163500629540626376687028189210237203703803640247008099958150826114140371998581058186870380311437309711890466448398612932811843487005490255498527885491986254730131000127931358895001780171121639077363437036278015688253073978243205706066610427042399634619926109461832520965659329240088301036198386259717591115512501826095134263012347971849132255708043624443896399031037409451007245158812723558386541321941737024604247726578578101295843455113406844726423611007778975271885203874074768114071472334755133544661453033162849015178408355177626586807172764071421972908386929712415541242492946043144275672390646778367016902857280280268774688814122647282486750023538679297061746221740245748987100244024401850382897845237693012807750953436190629517899443496245104307675186114008496243430101429107576845890630198090319228864125232500784970373516733383876178800728137751301390446645775659495546006629501220576609170421883870318656489104649470415924486554042354806621800941881442202668148662319948537856178671658077904804626022197987985700862127591270343386673134320392756950772679601336867280032671682927944314806666688338137908813551677417456338735133715940993333640677515726207715023487484381493327765996212056687894665315559567881126589908699317045839034811273802902009797811511873314303166310585416776064073552874939003450094883033143184199933427303814947118335567282958824667245677689004938255421172914083192774844521139510285712904913154473867604269200108991857906475869581708870684409960767782919878671615549234626603641303712728464477652186552267335744666349092987330509591773026155050967799216741633074534552815132071838130838687876201944227576061375195391155664697083229052268959185064499456076227211449256347778281295880423943756264542223729603923128528504693300526708889795354742370927623245428191602223801790959352524975494802679362614620464873783580621212894835358563166241576165623919382696603910359139615063656934277765718457016300073418583051837952214160279774698043754081343992581987000432664383633278641264598532694488438638539515960480883198899884040730911181500452122831884688810194595045239331341127869643656383541375157140576703140057401245856039411754170862270596869727400642233586487316622660621031834212655839912066153365022449585080451204952444642885706647971981842955656390022741017874154236518358863520811211413446966292293453575610024011875326176064363330044421457055493723569946624095596504489388715222267057767687835041439710965301179377740767208368230228108250006021361991537410184260773426866253835903317313092463822339123712787784890427172793142794958095696779624329458251413578478722368969271444905790424409951375976186379012533856867067840261110188887606058714618831596310650950933178697810441077554642901897938057343692817682012771974234697509102861763191314793474035521862393495626195410011468621055811734779781823624748015965677788052369919020400627610321780106237055190009144363773519604596580597726477672576714488916472360036210532766609178272530465772312772147012937664789621348212013920232888854419212938941071351865045725948715151657083306637197476984546062856624361734616441092886726874860530304615186697707646569503168400073103121977443110093591277339729035831475004203263814012449051632537598945081759784482754420085059739858422170100953316308278201755957223574862701272448776413387653051685216156589033048188499264382402405695334754443970865909398187845636144604990432867588203279436182954206969937747188240196464343047450836976634928814484989809679901231896744580228083734082653270609819017621973356498020574906756921058233526761936112850607854701939236835170680452885622759165990579070671199051589308199480134731339108214735723644969504544908446319983838300782947392822281991049458754137828051570074064190799631366795167747053138505671185573893426708674519370835460328685583896123662074421419133698930345389604193574001699397195839767147879273587675544258950127223445899235238550704722963027288481716673120054933765047446314441694745784864141224623424984599007641123888467886300276453036306304357829898058296168553089843909167570673765633811455738168660685470374928870391501084058976043646998970564536573962589748319576310152839692993849649480587202591638838694879745141225841410328895927235438318494895915234544986765007255344256234852039403082748612485349838298291599773378630637211651845113136322373095216716334894858762885347642876941564705489750039300453521734304994353192555245462661143021464926607973083121853622566562819859939239721771990010555709726363819888754967913374576597915583977815234879969795719303605034716365029851996865925927302877105549913919046775090151714381609989668201900796543958259940328960043793074012490896541851526966001156504825221479986177466465411530873823184136138333115777053332118738118903697857859031988430355330751384399834794934189605418023611682925431483337600480671663451813151783121232113446765509715633902998372135495054313371853597050326827957367397263428250532662386843432481692225227408582753101931260881635896903063258798964966133989000055099477949470127536776054760835697666264081770525781559902154371068970237353865179493790179171842142020638066053748192623231308111587251170906231432935693653850450087278126514399192176800527490939028580520168293412051003283644087470802070031442819388219994264646241914311837379085308579216438645752479407284661771932433903017620416926787629558776035117610258125426353248889748877282324124932493458207516383141881442285320243199580222220147157028392361984976634168629491523697239150632495105723477499940189402820346218215648731152240675735936000929918699347957044739233355259765557071278028978065306887727552352781625342008599154868720607811689712699745014410586454976703556489078880123352223534063910240436865655788722611122889848311195711063263224253483393572950480996381110606443724113220717568877024723559169652513225457227740988678326522115721286546724506964257448268569352545282979934960521505172483193853615880554425394565748170542047746537148153956522856091843319223758211949809579603737761647816188875530733686858411063295631735750398053921805419702050806809724893402381653302175034297349819808996318191490707623677851044661174929919404523923731958424407411956574260223353419472133208849854349209337396115790593015702475819471908709592161669104779293356064274115221438551250353733278166139121419133908437903208985517502815738406586473046999920253851257333209740633499911439928100532270550939251933468724731183286981847993082138883971217997007582266477112420025725318453291515461183655505245521185125081470527617950977534942198042848591439423719213858853446695780632999501295652986669383795058694732416802811729243306372133157863327875880546336729504819932246644371393278737903444188603451800016161719683973090507525026521001567003374510639852141394446894286146089603401832397934733352442355188264985385739691930923990323498244578700694849918840380644339494015665347195880806539193171244678568504863913318481727392602038929443320560705956506369127758551236777230828337842785087463277570476698160033484992483386382601685778456088670815059428598533597252054371803121427909075441552796798393779656195217382727564173699789218398352417543613349635237752263608354061605406559304153027864732926128138027276262119014037792792946530020560801257927284083445638626563187864829835117272747745586128897254718529167427610067909016557930999765349249170569962592374270451553411468827088725131393869429274290593019899923153094015987433923813521740788180075854265930716477046618098395207067727645562522029953894870694791022402088029740812467653785512598511427983680458426994625190045708201499395259959729968537913461503528409182518479596498476256349891941628694964631889642868301384213381177179928935530245630386960312417777480617308413448858503205823118827714153685263598262265251426942059914359703339179112556789298698057959677423260270025660735613260120583738581844799599537525512700849734213171852803029894573593654782849443628590840877862511464817917681049031317626481151167573729112224672472679995406079547186294033141806287469438599107737902804917797832527705358440605139494996562305335175656109435413232989204517881821687365046918361322037388529999006764249983132191394480562718906437411670958834004954289140951946015905836063154782687304089113158136005396030488363245332080852107270997907699472032095315431255920721051138835766896540768264977307057147570534411784597029334106953225188502176607636978573949010503753605933412219128065162078668883652381250811541534839587900971545405499829027388001382960015626097742586698747948995352637249553081282768510696350866319504669381366683456786358070956665877656427161695027664069224272712164496044557825640048774881022877279185409433473586052874655313574868640130658802105542507797881785531051614247329280442803659010161163066082440136199848875093722215946605391660392479204979855401327838701047053225248287108570298577874452937321817795987944911807787622208555256644199339152233967827601001215342794737327949695196054955405622201940846507777184357474108200939405283027726832469538422174008858193708879271575707388127224272584386049635641317490402464310350764663860977559989326190337774358192569939717534084526021391961307258275522366482182958411223571163853981741838273888537227885230944412033799200803003445613441754505271728862963819498265458128721667459955072799640819172139786433880937737250660326059419496930590648759659054552219590455500981174197684608389032199415733863123202960812429694996681962237720027582939353176059589681907076167075160547648435339911121689328690210245250289449174966686965378363584480911569902799372728328882002135237924709949789799138070498008740733051748333063407234522743484431660943876225949765259426118998178121358735026927737031273220129675821143073424071958707834613081674861945795450924617156434919253687436456422597698445733092138788793363975018769047681806616016388805723793519790880493827566607832884891035724494735792088046988635140577983007424564123952695293184172268214119400664018393900944664047985356653272628627223676255146137456827820565137761537650960941365570712126234811044689485446079455389485419617244666735087789539720592471712401926066369172896938477850707540442834605638038737416467939910104262318861979573442718778257825947808723225576274058546662815563802059836383413591640192164453764114706759420384154082515674298121082957379848051583861919056215662639562853798991237462155385267573644017904845852387174267791161843747134119323645931884381163338551607518324518996210921025201410891421698445407521716156212984570388800905321827315158885030420223110989080542849814663609625482014356335170415291712730269920584497231945103229739017517086556875785650476024407718837766599571411144309745230407067270235512468952992940144475733570585880702921653816530400020086791663832030956655780341274079893137462729831642785749480138918329323285003722013660769919805234826830993849075595483581882362784968049383097970979995146912154465575640193368964346538902938024598514350561544033298128233439281476105119860755334913010766490591849792781872194607989817949521513523411929720466267683888749309142409975965974201665518343384506346700502529626062599658846127047737743891137852475685060328509024297076882376010191421626981352035894076877508333173736103148175931982876868233611957635607723303313407523080084566242552962978346891580297701804483387684766006721975717535791499007600030900008229567235384209522426304164969105286201714288112184069799518612793463317610371144823500053245143484647217198642940282846898781422564876636350397404945364121760117902498290226535299818686401545572326554281891334058825671342057832278138515792377896938571436996930163487005531630011735182725997624572802492253355135522301817025531454678262748715545900720480092619745235579691289807743453252895936633943316129291544584548467906740317066462023372751735423638020394669057857611813383161147536843131154880850471789121085915117558893835130309654112918401583820510230818555561642712410279298857713602837397556857357539377038908141915114815966452334509520624499319534190786219601366376456176741359101094491556813027289176972116321227052349305753858316982989835058757567479160841887720771607150691505791759758022704200706913592806235712851202300003272978057699103302357902186494502249275346870753707559884975949768275715307798307464314285998158759473890682666033337157755935114583280244119898543165369549977449360590174851585227306970698242942407494999800612802873703740137994385571369703177659848054486275115356203790218753438860830000060228647352712200266507058009210613553280692844323424550174299407665899308684290508819459301231656865492098047674016919694623346501282135715881004084651594610951933236944717926822640305675205707453691589260856054070680561586988816534215663373880300855727761245700193394682800043344840328791374115819817543226271803753652656317607141974976337239308911147051860243433745344538289374341276818947553999515715998134487475624155204478123939650548848740128203846268921783560877473449883655120805927038462750308910060773536242335468721554637909938300278046288457018676174687445172118150728330588579738727856659479019916722095839181301001065347375068547084826840249463158862870667075975973746206494480575593434446006226690861865890167889142603952914544348852845169598364315360958965340203025437772963010636432378682867590492055383694292423199511346904625517671137893426016383431209900043993502096706029502540353791097587618595628744771534472610860488153208031360363974183824944242996882762288360833957518320458845551683952031585900910338509268642711483095988196917746989815227708548438950003646125169896594169165979953175343020527596356335520208797424175407024690665287630715794562642708140718782718350570932597935377894252637019730965519353245203111216534353017724411151899827665189070889891501343430027033233870716113803969960636205704669484078381082611906562245985803954866684837777810536621395194007423009484571508754510932773368668127525718893738012517309920143071419149210128294107616870040720396843914522013679818965227978513235066620264046016654302385778238842647979986021798490770966073550498077102383127589301818365827127804849598907589743405420818873696187457582678340173130778315061394122924646692790626943160514015054515229347239956201840234477283362566197755285465021865427096440964236567247840358042607174655456572189245161085904618222990608294318241657693296035099608520444438680530700987678756731371095721426673908580453129321034782879962966257410184922950924451838703075270350641480132008523653417859651059695319060170517733120306436445186702022669376150517407127142468709235587305928859829980535571640208891031108915052995431607170066298300303804071757190176073069968952695882687546383582398362085524487740043954755962838843998110908219983289399438173899174920535840401888538291223621767134734430031976881736203980708276000154997240040350557858427966466216314662429769071695218576700155749490433631278629234172702629167645175342524674345001991492098934484546201174102189986478922359552456697092408948127308703015362688267463400427291100868529143455823253016550393272593624388431989048599928276411402628260240271604069147689353501408685572774387249873473935354231430253308702603064377117459592224717687802379562775207086088092499609842934148558937244546110849475858941401571640309403639028303362224362750257531737102996081753453675652248958757984170756125444686867986522034756728379798479772017890802483093629289986343224198037347486933732856147116436997526797074044833588356629134614354951963963900754622763893114383376432972563679420449963813351467289786405195084209156695240041290193409185649820435627526579795064291419203758905274108641624308838310916443540131548000903441889824001774994003522486813066216430318059847835756076677840422854114136135934091885787425545710798276913619702541778433947187467231628128230132115012998103630149867415996302420650525335648824090180616819892198348834345050872849888896631939946903244339324904732834753663267997428808689868152491489800409356476508364135648234056722264706932285922993296509516074093337455202296384635506561405156105116655435251712680882054803589478496781930197106551635165638492159689390617690966142040894159156996450784115404949447016452829758021578735257159426522420264465920091779906118010593407690556352816777558408335861232875177632076707425527331643138058150769022425191503917265109660282984160775857522691989721117906818643067302879985928930445007723856289391444987630922385224572257916533085031758905878314747946988732089756990584664801681369748683117523756166930019939812667814579282772500225856900521503324179050886960914265088973629124359709744596550388834814619803728875739732126845871695441579678779151798612661609344485398241620115599133407508575077273506079002684392338280937799541953002874831592961440816658633854461976661103127827832414400880835131825756944501875717816662525436589594560425833661228885264036008112043652112151199323269531966644962130385106726485067131701306847195952257238949913775983131258890369469500149566579576545372564132723857615380556988142032978300570258934977233042707952802979327722542503903308258282998136669571007336706608604288703553278688239954520371022305751113479872222666622176795817020726635900349544849272596891679412256774141852529309723379645734843711414970692151478708649716413997129511275964106337017923472507246115609323550108397822920240132143169322534096620225943725516305566789508638338926930030271693113324295949304313029162235563840822586429120231615259648602506521964319956601703427910538155856707278027558537237806849239250961957080673571423510142906664580268468249183482006645086554306478428452365630805945013089725322077605521463607630989148879237841757889467299768110252637763979733278552958387651454723326356309067188842012815016528908097200644174849767246397341358585498384370399759083939774797906530980410064958419589115233353950950287322243459775795331988848662209401931950479935696364373220955615310722352383854747609072919872944733502827980712996433726791701188505467914965634540226420494650604442007819240433003018812275885139250846906362217981185446175849649468986387692806621336336656513921092673386965214669406616130225903996140238931366580143720660955297943631038098775617954116151834208971853197153851854803212758923350187056242686456957368007799241165059268598282773837502730546064419387444469016235312702940501412465765713974154113140832055233197389397004271601101067466728278970936703188021036377820808881246908525778932404146641213748626254421231388330302792965343313183645479827573187027533650835223314628419078742525120245220109744899139334599711712063508767504345907753766959916282176962840255563624199105401444721170189961966776093892085416196035678787806438432972449326350504259115769351523562526916780354818838034856260594016068275698536509584305409512523531523617000060840006709159352242166473223250471162469689006556749553929663641737890953990110583489818782216394307285870628457802987348175896539487503183469270616173792970627845388461598638178036947094176589593500467620391067402038171122737549503539571334366976477954304792934588246741769087225813740084332160442117844485658667971518961569926665824985783351118761538160538384058922204742902320093371067821332702602326383108453204941875047412385877613737876158940917739726777709236352038181538673229192475691013925864564780303525339459677967095312478396539406655354014963928666368420175204474897086654322147942644811311374214201574593159988779940395650007394075974437794777027547107708989695726328437886781266130664615360452621872282261296156319897482590557176387630515082933743596582888587699253731920318301156034182277084727753590431790139615277055075415645585621008881954851081432704705127067192796196239279770524630150091063076126959224700883269790707467918701571412486152033227106894141796046638155059657012562884503643782927690229149179559767133609991075776631976720304868007365720161725749282045355652046124443520732452819486245795863630302138656903002892971163902094405051180303990767461696623251603284626140709593223040752711947742054156970479479893647192666003790443528716015575459588430292338389477546186106676285512912193054751417019125676076903209991059212270373379532297819573943846729205183541683026365887378816366762776451580608802431237255152855334493006011919479225387305406722023098661202387735583572355154090231778161550157399150191277456386283368326794830136099709983563585958962372391092417658553916105763283719125724805089717771732618245865179948803528576159025310602320794668057391973556749990721123663141616088709326465441323755406550747286486803064394862268836526044995892325393967260422054374550493545826705712323889040527227202167499801266838719850901085210615302145680420050419193134354946311654941361541742915103640546919193491996693843179415360037514420940753209788572515582515122873455930414972179097582356799958827118580352245057263303209272506599607991345222365566677684872179411462655925876936534400371873159473151842858846084302674916229166698765939730682860554634472996011555138515583556424632763026897582793604638609511308227306957473823067231558783802836542893605587855152506885057482912407794662867465288905870360040521269310567944477082709860217647719323634384074953574839756413096205112233698586508771422434946048462903538981604001535104429546034208993643805409269161727609579953715285502956969698200031002899687249630981200474565954293047616599057588261045171922608168028064946271365302462875328736841054641814930006357467832322646665234340688532758732709134529609344933079584257765983426542099450245081966912986259818850653739784430562277303493530904033600177319142156514355440116989315471397753687092245521251988604190247778992680517678514821677820672135259261270713079627897447256251270478924479512881638269624702889504467435422990398700207675392299452419297344136189685680404518188662076561844814263088930793007467321889055650747649131487535880381407865781060255861586883353280470159775194685387956072534892194022548995905053713934764493165723551059101855177357993724565321417197977101697144954886190801991630097756895810514504961152410878879932345948594451054020227406751092547161911588132328744561267183088441133320369074417962437756342264283844631836967735818952025633496988885221843555541648644703680280403544664010576591967263012836751999302129096736325343432770087363891345429313494698396489613449095268811188702785554277736346037907226547967068393434376431395494457903084037364774918265333786585141538838039431075310380141249883345496145732566688538344304922289989375564215350987237602279028430029687157768890448642367982899062920013151343102347186089475413419858928347258829751228039805150452105572898495092011075425286814420726001479893235372376737934676749191226036958872073717927402992093268775166994584865032652647638392396756165982034171203353710029493934964623821125959704291623421366223530368086688067403313715260172809213912330104104336583448136717334153289602802874097024686050493674178472782991998962485158801394331815910277394762400093226413504676775284938621894840342418037969754823892640167662743205603062883920654072730614777221651598530370449093021693008247386857497751350921350827314459229642952622268762873217689633784786550115754591097985008136986131632919175926967042491119808171630554769419709987148618954735726586607528029356469434502528254106056484803947922928541164878201467579260128110957676474583910878306002842512750729881499398815818376493194976617768055833558919585997243138600642419725744110322220090504211668563578082067367661673279094149635092134330230662234050488765261339411178371260809213267301485270088512461180017422627473218020493756416639093579880907310292440966591490910744439815755379341484101415440279925428443109011485588058046093259703382887341339565687345659234369188100484526226060082671284537284523381488310706334811885506471936393878042596160257858206211879710972206630525708054911553095951623072101287819956450511558667069619639292526330816076183276414385415881215410004144645466951227352447615370743152201062779640188166682280192543912626968738450735132749026493585584736792144384795451436342205084320980330671293693513152245137137098156332997284766865945218780437328679826166918887696474939117153441388384850088724666405901525902783334321394203645985935881350310424355370137408675903298963982504357685132579782802035075062077379206566065993239075594401688603479786443434713903258510805212183817116807580808523891535276893643884420984318458226299827926609975504416120445145595845567194115397750348887749700514045495108546336205848585225828089519668616322279839647423836774998846852456770376663552083850482447535194820633491621293673016680941911051715509517481977931665868481920453422471986307973893419610696808406451681731215196467918968739486154487924673434197935337234150687102445262779294947959739141207401891829484312783681903160128233009752887221373332613978904761369589493547833418927434971296347447211743232925090647861657763333490589014414323804978133869043400723425749201001422555873494818042237950642954062637639797931355647067227365085925636536920171811117876185980552513103981394406026466493121818927161697792164849702277404578172071530396307538038425318794941887673653042135201703971070656176295073832205965653714109217056835500122162850850015762638420437694721370752801978462547710928648173679939815697350449525012943115167863105479585974078479345253047498262844053724197341986018281116472066637926714541507650152390115110543795210035066499602427455649613595754366868672211758445293027671317222712976429987176789680789885377742911974394590641636441070684144401475359479226309586276064021642507983991805043271257359257587812076643380416360616325297184970059129141707206833329907961618162168087835340437379340406474724134390548494018968640231062328161644818872339545264488764265855443406050726812737771623765981426219459258302967150496272941524674654083099066115795574126710444941156260270033898326922014235500937454410343332727758552790266989461391473774578939055279649412793618514134823214560623219063862689216812034376501406535576113258326086043306930632533814816894972634024384311249090401687294622612999496364782897027790573391977557362743898830731860154022647069886878190706434540381087818663868139525425303895525978515130901932237769706761590950177217486770984219854967614710879906678533134865723237859696358065857852534488742816480773843962384217709157550710756034750920403419242397404179096224274161813656213541575854558693838100959302710798897755315005561872645038619629231285588132631550796431508179167637933750342603769244246084129380185145830148499405536491023320753081951715577216854389401226209576522787044707023448346945895849250357349504186681474396886245226547836278200009093606372232187791056052430702360420716236436554355984020453997225856635801741976147861407116962560850003800219870515432502520037673109981886802097996286182420690749430478658775806719145659637993348919544916900085118110835671358319901863597583320994395836786471479158572849816317448217743110975021252757596206282502693521755325133652847847398922439489628273679857649355867887414577594402369212997898048731189146666180530791114828994212068252255642461380692006514226777458147244173149160620982138069044107729838731983027103890443757342751882766608037956461624936653633237452578786427679785576551424801712895154496054094285426347915676815573290451428298399253082276129670012079084752832211333067483970320110452829451076510545258406854012755870703438361724734616090132870782940929617778046216280376589767957008070974394582615149641693688904499867646170522046544546447825656192279567844193144135515735186563099936028258821500419370649017089042205508789006431263741006260886036152878785562432796949535350750559164922566530515988718035029643381496717255443779440979967989276189460323281927180725999267312478634863996517539306810018448287791662153887706063988907828950947377178733168295989873585677766637525132818569635414403196460990763162312355516938022119885983697450523562340153582945221950800796014808583199060105182982507698116016935238912294730096685402696896249499276958434242127315555504084968738594261190407965134210822413987417209420150460280344609965429401411206413755682577062518776197285877057069339670097439530513063342738048762874683729200976012385690108656186346392671629623501248074281830495087109562794819159178746104497229663584782667093841979071085477031548043328832318767946635090103627004237779730215939764557081719082060396473187299013573389063992274629367824550007165077990160770596562899904852324006235910172869059110470973412681532459235461412142113884912329300838212139435935541910114967605877837128730927845021534840463100989209723480822262221319458780324616365606265617199341070929640925530040853710362121180522798734447074862088501682605965411155656189710800837257392830806500785753395884032169684912019292522559813396135806716327197289670052271001710231146089697701081698922363812711094382063306435154136214360038371930098352094362636145886344677387956426629891843759302901694323145865881415685268709912401286652248545149299185888031020861129002487010911169877922461609780727950006495979061772634165354058708444539978911093324292060405022921505044357212620879361290650824035646118555749027360196136753068621852123692847932985307022162857074687905685668370544278947284600499045874147557942019207078707757640976722458611517500963417129190146197827684921643921047327934460841895783982047967107642325883985635082821205042240132760716667337413795004775140790268436073644541546220029320542298055464566494995039326990134375222606798518891712440014846641770080029184286961328449397033697003271538611628792229468002485685991891568130794277084811950448546150996139140193670155395018497785554998590375852669806232857809622572592777324724861559603923316030177558624242924345433666000348971719980865866615271561262843591339919548542088843007336401296647132623638290323764237084912718873593975056521252992761215496379460244032319264385302282409310086283583126341227662436847280096069619034587306371365859370211119414190075991277570177809641206962604668118692001162452402468660612472746057883158751978096830157352962051299465903606309117372158483729718550178250816708339111250051079603174102240587375802233053050995763130452600006804336357603268166947817824404709734872382889549182831855095815858871344504451595083297374467517153535541403233968455575211904362833836268893036135243243125236242849568255398938099041144567285792268661984892880265368551334461364934322967377536661184101145921791394865965051116060290973182392445400959135571220938266161317985102507420320406324903942625279232094286170774456936477345656651738871998392354980740752445179973559619816932071283624438518122301763986239812042181461185671955278060529069686788774664360588219750206532529639477699894544223103793319487114623949504171416378927900139311176580275065289010159923826637085278762074114497874799611124845453129983013058026926173930228247350311301284614013675166853125890365948721068029133880854388301139857987794102635542262576993694926443178633297975980880124609629884470924218518942134476487318723299488282363496674119867616665153499507205529175726106993023438107039290132859517187468197438571187413988782321267263793065123572517602767841987436760538540928872204851503629714768487496142268169060972668986613867146967915337863788779647175774412569556618834209088159653136142334446486573646834249999419514178617811022878991323300790896154681852519250347643268868409066720037224266875578183127124672571872375736555210912530962381664016175436948494388852062520968352727671070907408777769398158098281569608713594019621248029053452446602171718772056524896555689492008178497909280951928486127537245367379982877723163264320725472766657764635877068783869186809087414113567188630307430530259077117468664018608196980019894282250686957329852035676623587254866839043902369493871828510683012720509828643181764208268271292382280448683015802356011703796190197905465250428438958685805228713656748838827484829860691929084797340610384803728522306797017127377055290086970207945601632707529345212480655469936629580697796832616517701912074438541062626233951380401506627951493007787758919271416813779236103127796020544234018596850345236800982369210540305398839195304259554110264735979581968222973539585711314726089670406636520440703277973891422084813234633130141470960373168459926086191260058552879501682781309695473345331809683937046569136683874520976605263843992983786325523961360532827877398634762610135451654939023218660188165141061361585963292163801272023902634746783711016608626382762148455143296065339976643899658483463389209145738213148303347395540263045620934959459744808691359865751592318172225927247614530059503308778263020900426426101593155890562623604329219364709901961667795091798885422006661588908863848322900569951810327623771570912545880064170003544946903615190145756551470541327433136592063321000565780734477920769080376583314742033297950341778506385691092961931880900045705707254100985769214716646533859551522789470854184777216320600361808532453213454585581414443156036812769782554051975835300906958391514253840875035063965909497027569069384744953984638169532160852307178554559344963117550851621215706176326043339998947872533282211404483184484017489232262180511786600502341273666037312673833888208444069089651133401150510753011666946123618188331601290180045874749673711979882716477404739407632314478684935595410691787843336786248880617154640139690137622721981732335070354441377864047385434997574600117948643657523059283190361036639241253475945611098917602838976450265735338874914104697769970467324752762393088321390974361708385708561212706410938118733383539893775943463423252722228778718538196201590433723164259104992878798559061183230878371454027389178929370538726665726583262377992689095134346220000342833922834575072633928763111113944112326947141521569707727345804841889225733733262897337959303184424791903145982928833480615352264638278475804492404026934188116393005673685913938957678945254137289996000287839920020309143415480688586498887483980377926724904818151181495490969323828922752000737961085072329641687127024840596696930319696986486770223566400031659630548820116261156709326672727202993555885806650125534365731563571795932102909044635271887768571229378034018433922640952622726876879151026081299395825205023611922111420903613425773109875560615280949428022042032061473851559548781798903884668252105895852707199371710342235815160721373623221854675379904346623751599390442567523468162591756674780066705174457662980553271927132413369157371992557677895365439152944867754783295767901524469942621092936646563317008223810809463609961689071766569388194141005651878870280937560828373951183745530480822594135034486655005744201879455827894572457559300582468332067059545129615975827259209917513923107494728750351842131408575674358754883232964955370925101261717953993177501761123242434051024827442535562039992829642289910505086622157004629229253641506896477609209724570731906409711378921400590462593840737293627061789402233997739522977549794118915555948384101747401220825489098464345414325072492499663137011922448179084811196935655095872660289140616444559295441300554847562200075053229380380708909757361338096405912063582930377476874880438421915953879552795778681942773553263831255169529955718306723283583462830860445412015111206726187969165637593606248652944615222265751048401248415448264191920898772921595514602126205280885457385750074010054874192730102781022153669171976945609294944607632846303806580307049086842307926960310360230632104009687724748741125752846370098879205551602949029582753888361719561661133235724508173298812787788402509008647795366155640743184332251030897880683690134386939068461441847688020722778462754798564741224004743199435941887217581017442632607863170503916191977295975552423150283318051644031163474954586831004510058446668513456406708619027098418854829775713700322599486170839366033161770941156763138391388227010932846687938652302220679121194601166876860745188048087284717828506010265745291018668484284581850717132660677231233703965675382801277299798474576993727856413133517323663090584936111158762076614556290722501151225785641191251889363943821860264230711368426509249444540543840507705493451760534099002184223792071352855861365056931176565250427873217612667212111235987176940744251837713515253399603499231899677560010391477296714258136849854918117871474274927861309992333231491185302822399338900858453953460222111520876515550411401576292474603818421451839688206770176582803441631957914446413746373532121206872349616222052473397432332616131673613045184509314331152485094697833076533749715432088325192680408226052606625082963305239641093061506840866421047175309619216025962873687082366314263904413257976590425031268480864272338715727391182249754137211657295653803906165781530623110177024749979352153786395661537934888718706334209647263832136224821307804156190818638627802020332468362754143918258773831155316553107712476714663051192906862844462673911702715402356628302570757841254730938615776900517608763686439587950619425361448858506950352727487840725810014476949076481457461881607636451837661300521411873158658584609546211996209375120286443048534308703655072633670898745455112881299606549040781420517560659932225258053276575811946507520493143244472138602638709493775977103861464825395249939908362595650762599683797073076287151528802016743622008316668857682692318012095280920596114332328657609182777876020056271185909540574917552251769893894602567755363718418867940405683571748610519005017869791448270205809417017005773965237448584322947298022638582621525230412488659911654945075024007858216796953098906913066256930327458612626276757576707899475799146618290363800009587177626383014775238433566323883804624996053032249411300816611085956765443696421090626516687074390983371828525192872235370011242400263756106191410077705942798393757289603977894568718793902437061087995518874307554011045647714816978665364523521442365418533722193501530327574583228028612601517443887543035628702091720269102022993587592766278132427392222375091798318284900859715829570096534817703011818756285350093274095222129370889857301984667009502180972250863234817738313657580218369576498096598838742119574892264932851153631997642347534094066119555059217360595352262455393338270784114847504135722899704922989119884533624518510347788186985642976028360513073307450413978999287683922763937111167384337996536408806252649249352209400820802171582574313628422473927501218774417933921083392857000143719145309481285513819694104302652866749160774347409067724671650216758726622540759971114124019663994643946563373280452639930125111689217905146889264235015854129011121212600622817065377389018857521441253921246175743451696551442568842556722579959263169986279844629444220543033554582888976275726151453721840281087804116653448644026120031332508816002717010452628369864188293193523170587837069670379172496025930457417179044358748399246421961840275257300088074086883357611303157755111761542805453227881652015857479294292880782763163904812341585680750729941026946810466788958757074485152852906505055577829330994236485422171257681856153902074872903855724292988871896977904882159500881822939667026220581183382879815329411109723179634888556112466014627685698074809493765685414271836746373483077731046277008780920401704960901318758236197815370745822637533445168230602148686629518985259578069840369197834388775584428328542857179563408478510002201151082290597095477080559990733538965597134661576650273207954788743213280385455550389294753087091242645115535158823533244389264658000544224090664525918153620485797192090078652667707292009582679443624909531419770836949406673546093767612928277394293288497222061339814521603030685433709975696710240899040527115020524452552665411768727170895587190609161635034087917086293286394113505734902409469515542286924864097476720978413694565848861133427994424938810958916733766711077538433067792039688611707838345629740363273644378206513554026096864960836560994140022869216029232579563173089325826089614305736920063249715137824549555926698683525396759632956632151189506930403110983183373863076173312474890673437910375158894753061859383530674372024860674029452351196915053573600547384265604909387583153685256421615132704804721464463522160583470981188747702180900722891992928391415454662952443888938571029041268156853665382418109846746494676764610988135713530197061626003993811940381370133007180208953463150898196030370313838898109898279836838154933669020529324989666258126142478377932539028703359584745842014381914857272088752308104729728795971894495072091077127265803357683128642244471296715680866084802672821082975763060613490226178243935772947333233473679497313406877400422310042253388844478978355763953893398850656071030589484489527355735242012422545689129443086571358389685338743011345798912192031573553246266658972613492514234447540465989132682782556407589404924462580376695646286688184732477551814648691949096265548355900847546004225778037455777314326983260749597896060372158325357559915026404556854274519129861799370322941235492597178977027154621913046489444679149048247282022952153047703848470028077196394792540587833500422987341596481812873818022317086894596424174430157752790480771691479642614741188559583742559296007553437030540575292396702911311400379385024616083364100466636059079764082172841571854702001992331711573334039269699604477546804838552847763746293963322821900464524530493286116520278017414637751257112797389229387892859575274519680446106860667235908134606140360573455414137582237265689689802278470858321663652837890080332633433571930909657063265512549558586604162924442621674274774126298685617218955003420242555071016021608222079887395084185613166822218706732752497032878745838064752873503835534303524890706696324305948225330796062162820039228921471667545874646684902925419191833346298771649585511267869282592681863569449244945304202207351378876186281061025787531436889703305538682341437099408960189839276222877979359428216197796552690804677590542491521370781062311849926507459160017967723309078473862379393668424158373459924205367813388451065647908794755128104217616914429569642859086601114807698708502781788288177193663768485206789145767766935717150843425060525533558173949382062398539502196143153965078965874789896580853771099709722681191243705123792667142282800624605011592836749517685992524640429352003178948126849423687379987682203234856570481721262204347715201973100310213695316560893381254444042871801752554676909313595763898875423350758455970028521615688870842208401068103773507058884406949672998582854210061676989356499805339084569677179361798729501848603215588921805482727898155188467941929437896333095320433125076835908933820472507439347769693319087549202863579796954042754710166401774797381818495560881223399600211927327950510084165724142908066794552922793480775444398139349170269963885527232011681345455153072886720228545653576354183975545206908058316932371691202051366238626702470898898908007641497726151020349300690058800773657916195766736285838397268107086855607621945291565336635360875462880491504783074927858774905960555813653405143976723117591501161154587403120278033199370545648566690736233995738815567575594132313119159829729102405156233548886076887075260161940409997768729384402306243210911493969866445180272710559946338138290271219317506190925620569848948463577948591307511648710756492373159184977379861391882367489478675310881545396154854475191134238433112992817294870013619380139608262833827942165646108016945958511725604530569829828264069023993584432688029190684496356114659916356012734418375360737361387220533376751746414056167564306951472535861616907657927835095561667866905893835033985556604743130828762774710581034154028559854427015246981435975743798780809605062135561162929049578774119914840604729100867030192138702376356812269160810993739237681553936227969971457243406993243364402299073252750163428668823798591100077028895661056071397038227153797152184848372587403067737556298086337196100153154295859820636250204150894057361838439122376847857444092982217939503620421016315498185685961631005988119551567501869150237256859968642749076711848400822150993465990996877259003656148473995377942510753306186385642106857721645032619263524390208398497540331783253083393388262077300784943507654720824595139240587090309663147822749437189791314671548657219251371280774056161041493850409115837118802944066786148914546014724457368072223095616921420666614550304827066135729512868695803558382086476667126144510856871145214357550171542667577147656801644943265503603019088163194037508202593988746163881697655819953203175674411162867361012235769231228023426513051877805746355706827993301682721655976213368977722468314745471235691588728199118373909293893777258398523272888698056721737135177083304592758371900072837214860444095756498395108631951974295046123939116120913235870937195055748219648905457023624643190093372883950102019336253571009963558490234804170389932458995693026313558443063654004708356436070470975478061462851234147463154107133397902134127516886087312690303631492360274692319034424142425463739872660570551645858288747372975961609277550348444771363093005238738155370344824387310615753163148355056121901824901413421088488627462920232812129506731730387183957205645607188118905051796162496976592775524854646435273777931296564490156232268425963896407817978956978613672123779569203854341206474016593068631745473321897942141800053893873762247867838294227074250229944940006779122280852308625312285884873430185676759991421336234168573180386752106231673587602912681317669093770588586142038673726817184596980575035088909952325230918802267438943674887638007167458984335620096909993792545936271293043122895639552297184312994549050183480683455608710798177214243884981560158712391387221868414100257457535487198374145055044620007909856295811176719203009970945848378687637017240437682556525465105117701849802510385263716185943396072563280635940998796752967535423152206368198241848888640101972782342665116828925765695737051229751151464360726529736413981094039996585037837662387146192533541322328582482813283197294334851869015820635717770135074758041087237359358947444737595377435348812080214185849576224722376529297430176622189497344222284989082643632143676895687138640495952234167782083104327360092673125637934538077900302145143133740556349724520041087481627236025905200391179185849607645978844024411077723725850134153228847892446850800009907553022235362352877591119478920487394249405189446772330838227623372417036374608674957621355238679492915075941917129152448789033225188208127546819531991332491124169056845275459266916571928671213261625432468365671425838239110557395676366355607168147137686413896300658602358616220217993420926133822407166161568750319631154099465816343127749382769029416663655822201688543571716405511165555252312400593614776993432594992795559639230499496269852554492994111977676758324160423020617908290125514674739236336485772451863237786616930975297955719831541452029476879162385994986317645404210758201165471433116805098142495207073267962070625097035940394487982287830372796149443072423059938830062580427375799474767365556929028946165796800183820952418197886451610447268376361926791734045439407957697015909790457944664395755056849628759847244693413240820049927087566977515763345977598302821585911131309973165698318318750109024306504297526506894975823334526981532708722712272716784278172999287578054474943441743267238769594481009636319370443348578364120494929559751809916177444265305532270750713070108001548825087918087126539644986300999935713291226638074668774695500019428398371467554099769522225478339375677574775695675480838207952624278744168766293598946123637709619307361903619547784213892981385666365141753459968963289702691083035021939426312456225403365587866289744884628661269618926380420327382127129868533828533029082199625569004972736614993502566358696695360667921540418198793958012368815363939482639182963272294877959862801455861032354579093495673170893564046547310970499890139473159030381023546541117944633989241119972929567127720684792903240173713778557659366520332433221061180980857347606747141071851771818075972667913662480120320547548797126980397446181418457054827815203875867241790518113137234864306999145593224695463159525224934787577213557812987761603760350660939139167579747565781065455135351476996356934195327683160681400014859095968293732888545394127361057368069995739497102898339477288179985147769430724131289638520464620136455584081284113389943924235352636907605790703625671130293405695860760544967958087202230746635911975124831163728192342424003505856007079237457119551211979805715107597026805233968787365352390828627983230060564344481349258208360079179821269577973749276252021940599745574641381959631944679280469844826837410062226997474252185048843007816113828684732928058193329243763036811151490725790247633094731792979652095953810875019161979541113315863309207418488210146395016892760795720443335427260510372474580218395591778470913897896549775613405648598296610803566566245873004234064809864622038161635961198292687544204049646949096700673052892457662801762767943975280730787773865579596954569143762744009337747319479233312267716955187986229726993931824204052709884956423843568604177593105960552383913458995440740687365497743888677971525453723926452737593835566679552347661037822005430563494456476887778350841468948490813569411704253646918040849331261229446425861143878071293197350720323842029627993221729336810756448660711360859047218421671745151580285880844123188301562970265350021617674029191694287482183075158521377773178096048908437888521851852010450315658658220392612485974838876432590229899974732508851617027545365423360179292206312018119073207531377334634426000494008457430933814311505169316014357608635486006733416346998513236390727211686293558231544583530743401157487232179167849272710189795178389176938012207829635744062789651578132633839953548643970415373862278604299397024968699988128337239672626328919043046714508106205951672958149754022198545443635167782998740041229437089681744573729709161083875554685502589147245097006550877517565987524505179723989890704966444840120163889166627370403613617928456766277670596151259845045865143286996343917685860181466286345700492935777043784049605693827744181176922887023217530615915247374550758131562791796923461411547960268818282865578425880562388380814618055083858539293403750352916667354310247756374039398228349858293132631596174943239351753831397749837785442835622334717873897630362188194108818638540638373501139630505506826815466878836207863158074757224791156322106383091344560616759529145991931096200642251922254800381892591764860101960603895067902171272654209469517676557962744927186264440392792138191821010473302732628590766837363017033267665403063200179581955580307938265579757353464373144820563844538180076970241724041879592520328632270393305672907185678383750640647091296157702622335284668589347235491163734738290477715353467547461079338273354205778140254041301517107233050546614509360352923266777216752270885455409127568792072075773874620657668977220026539610811672125338295651686638999369031489735340053505864256460223354951748418064940151476748999436228143340160477453597492387795849042837752634186756340796946335706252270907799521903445878756709404497600151171861716956188068685627837199774594969840233421146293232991081933929245868139376685080403805107849174258970236367001100538604778234748610574234358942732671673527007962429410708924179193067595378950526159707906546131407098686092892150834917831574891198925191830186622099409184959142487324820436949116620276177889438723806679464906987808635165732350150130999027298369665402890897357646620063814149851277419544545383144811218878380776719724521283837603107440327308884674119198527311646063459415129551074573447521157502276101808178528145385786372980721543174775599942090094661654083493371849830187893009385084673187684313499930545727150289050581754127672313993156420905658720223204949613165269681507563112853292066014664754236293032963494178659741938755558349382090376660600193379642713200232758983424676401456948197073887238235909791547075740854816907560231280331496826169155134753709104852858231664685558880039248474906920656749256136981368457754152155713050751116551329305071755417681124010590679413326873650350571200608640609740732319759965580152614259700391743036260815078656808535690641033549771333869805717942468436747941101522576085178339200202272648704040707346914323824753507525924884574927500166686102113293352061698798924899952828978275771335290189677837155035818432273432066611076665158328279879858803542517139820605382518168445524789921507792471576908798307981581918054302855821799230677603681179654841801865554554197299263910994738407093774639963241229094957245150589346129352315555465137178130821000641224773115677506505661296935749190384377898613250249134683231022052107046122144691176261261056646019446036097379932815998427116526611364309511466338856525260606130418617509774238749588581862063970061347022149663029530864694019803294517684625618596290688460629315815108199854276902941937059659809749919118237749005450710525699913493171059149593033099032381097987978706249927864434904256021382777512925729447135861259690678242805205128303166943010073854449336946298962187957207095530719370541454403010287336473346668398886269741569368554473506437531041539230231443675110794770315338826635804862454583989003908634550946234857301801302294032037544654907852634521982775870557051303923181900773276122173972093112798670751075407681130883043205910987388064494378920565336414433176401750183560511904243376503323036320880378503445465096589889033879236230885134193139101260745511564259282416151420658402955594102873090476584739788283712631403728132392264624037949324615050432488129782397639327573290967184226703346244080240225587185077730890907366755324668346132398663863529126352701788199021534518584904031990903018457639771290175470253204204516122313469570756202939780206505656874911630612097155766360554188389856886084330482264914668682410989070626515329788548488191714908797152519301937972530722676958101586175496388465244965750037061582454241922520528070862810328083811989302444077849191480984385779373068249938567893800060347246736442000436953513462177502448198673831216920708263793687260932845312905893511634071185615754151972955668282181832875126536039078862473312322026859728758414233135838124737840774965884045938733111388520592142421128058975214638325149744361323412579419364783940266644353715692331062144497425039928276831398738411673093847544314637352032258870029094317278509672827105167988672277332474721923854675509275099939944056912899948343855580980919375444440543835307496676144305136498143200230524881921583543593497414459366642178728678778853414469121433594455807112101781168753983915802287553036301957300814413615364322637111736332710312315479216279341285380191205084266957407217940147519543513861436311458465686880518304914606020936650353039394412384420256474340014127005205512972358265200541651339833789222306080822499840250729413389744536896324364322887193574993455284975573812027244377983612002283701463017564868853904116870430852694348154802742781883061064435309815784084670545669675915445687112400296300444286580061894548421152468455732054900717493865175821610746383488292815941215284101125243233083708892358396515689403690147287490991060174061420233536691620035357490697301039770551291028534288449892540796167771317468572393921733591334183071408627031837817509558723695010692099505851912953684713142170395378907122442081402948218867865437760663164945895096216951391696246457380257072392699457588776994007746881844875276514448105763458280405474599824777980469563616360363000572432494383102022478365758763491582895378642374439576669259643661886141295814380348326962724834231186278179029427594972518105642109095855556403887158695263177253319706318960828172513335943287662183076136401898775925035429915120508098623610278257996246352401240412304510141791584340915825848215000879362123353800485945341610662536679246448744220418918087648141665293114471478846701279842075138126531765558734574072642794104252124318812511589865247182495000652657696887333897903663528272570505168606218039395902245928340244680296018560622069978879511996836986644656237289882896977547447198217160224784328290439690786342532520268928839814499165391738100735396618049087075608533945653877875659418778741018637084207847522774845583504290647986407927758499734458870286585241590961742453497488140667631678155122191642580329344084927023767658578880349886527548729673800041040715224798408933717244805588299985944452128418503967564754150601606352231547734777836761987911994916580985028958501511599927930270585744071091164432568280954693034551922517559292698427510532156804810218325156766277522753845623039313876422130888943285972111261791181437797905835038496609042189307441730814688131625895569727425995508670087802347790800372754079320880979617655282753157272673012029376556229118447563977880762881596032824981340319301037363780347135075007281393163275591451046450385091771880189910598612749093340029592211232357064966163731911051944800909203766051685793264740389827149940593999529221423678282052417171927021223216826483756849204158096619526709971798605882378313437637019485600585118815702854754154697409611672832333010540306648246614111516931422141848069033716114007297797510550142694573192033868051072723189965258886064754113889765982353085549428187534986800114147399544743778047262145681393223695174028317316596535158942822236386699933935732671395916709196117957800412591060678610773762632951407851444475483211868122865836654111947826842303610472670782653688090951226946931382074968095007581252898716844890017890767875475505800757154186382262105617734631611042107157453636259784358186520953331872739228210749512972315533974807048550229776162887189999861099671172967412815300313366945746949197929954910925318601162020521764176160994037514924626783657563445658786200339731167762898605357667156436528716789579976313668070205559499357389664361895510069948284938445611339757631578021095142628101608667622190626693955289099232497343677905307564585432210152755879025233419531112675795004442163407794729172563408975828822723589908735392491484129554521012598470219361846869362149106074892844520335632690737776547119830147036777176836014648760955314364810514090287875605420976515019936739511651023955465322916518932120347308622821729133846224130083446242100958630631976676998450063597552730118327538464722605699093882282001945039062062830842107028425327323525753280606871583666718933008451598712434088051278071792276012569644206182495586093685203215633418472217326958455513435453858399708821360316696473777863750972401867532708735592613723889000203765840882357123210604396501129987864889148387232689139372165264964948681238577326302204558888999476138166580624356126223094951523351186716575184214589475996177157208408578446620142172985455471856830419711814165352957599310854180114396955980454977809999733988278763652994460924830935669299037520661646581786456570923218544363867712505549018479907375413409249451174747523002826825038099962591374245333415825469273619920200000176136138313904780596860032821815947423368022165038933556468521803471595269871512453270741782930747270324324286691510988137207669616352701782167649997085311252945029458615542961108365133230333064692913538198802947511382123918211655462880898121703300808090373689637828949648212137876980718977400376794420053672199660525212508396229306971546540625997153272492371272951843125959468845477932562369858951000445726059480194113627123779443839659858016253216228831117983071335112783338365572378405975227846770348287050276153504839684590909103454760643307008564949744807216468789101638689036077046966264538583572715531339606090299816490532035499430820319826866050071722916468964966455516932800584419703046139616314135779831966820975894115664976292051777012273798684429268628956608224687224004826552291633751127930578678468419680893143757626810719387501688947207501955348013175461296096676364370067103518806273051953304415333342895365559175614880687587187151613622122426036388100007847721310656492390282894527745950519892682819268095060538689002930418839447668434907956176313854123363172946240401220539711543049045444884982505503111386417073742481647582900518594141784650022553414319011614855418368369615360936715062870804413901431096158237629173287176007625334655901014958292483085656867076521842269512240021536055594816324300927170141811642512989985836647354512836671206222446440934065809355611286321318093083504400611378642489308184317815108656914687068261907622916724307476199429501304387843120471664290918110407614608698542015991709509264038408176593170517457875501305506981277597433788135802780678250307464983071649195900143296448942144189408642437654252204891683696970270971074539669018462553359636668660662451836250926252140788681893863828981956563186413005077436222443250658037662829500395803620533999947143190396893024371872188168952357288455285267123799100711683588516268866031504261408228858204707078021288972076890261492001772474256945976787612537275368702674706092531395813780796651619110065611256147745587276243373843299609391095493015690381808738194690768642814219038093274409813412005534904030769236131340404422271349296200946567682170845956239686666640399099917463188456120936876808012994338252213378521116706502883939346470711113172388812380643539094605643566937144266487700768309169091918597632690049959490345137591004566518514990115469689894503746596094745438556888021024756827561772059292485743760904136402831594750625371633129210871100270144025126328052807712146015450071136875204116787417101724555872030579408229250534114310297156374757049052698065530226354492351796744671835651134544057155675916399905003559730782509894603285949728353026379398642370252849060986502978319010659980978812325329396279399318794963744283207392937218562889507344741000219358207543320045993844877802483304093109823046188017782489306856625976488105103728225054364894680714146565138736612548930326709016389941921402276863919903989204272725041547923399126861501103826110259716635674902783904925771667949469475497747834608283515271576999509133015158430340766678598013062679588717965293479114541411700542297694146903503637769138213344119343832404289355808736572131783493308069250380555172750055286533223976911766247807264419000177832050254663614039084648464777910414119457314481562503810911551041820475866434213719728774760565203325411373551596459875091737335495090784328121245895906758984185048844623504798759873079960098124606101813646726573701026536552703073227675608594116814848634604422333913853635620122028240825554228500825442083554690063440727636290533186261367969528542931327543226728064456683016400217413438945436646995988084549875631926879623985461876796722988801125282662190397782366204857260846986836250444643523471402776981938213262968951264488191385216242599659046435490064873114345023767120966902946069781136767573479231368689864086621165001898997278531771301370970706706868638097335801387553123617205904347398803421603978090124292653141410874746265602879135370371650904004114289176726847860076072363312526792469145812825617953095534165159075134362332269804831613218071805441704997904557267003015641203265460858754331561025494375405892843546321065350291676629347840263827238545734772510022611598354748042435704388110796735154747945469350670488783810601386321207581644066301516051075177810515468056179865374129873579707568161254120030544717640243479793081759283275253646152970955305530224822777523896316947347084561277409102852585338637909749969741765056501797354876359057589909830387361761166126682875997675421938931794832288095700894504208463041563643349795137928507706606381888761802293546205462043841588938202573767926249857785362167398759491071075475422660640850709198034555609702831856137172983026094747571639423663733568941697827889883165287476534007144973824933663766556251560862031512186639140912641670425956400365261614713326201348815243016523678098406180441329907748191149425306984442764825173828037129945412294048991596142840026728700741217065672704834333248512572801393891691527201012354127944299468242925705872813186513526232737273474047801528358631023054388828278744997784643237005658239147805875013258345278737207480178271304816473919508482891953722364771297267500444294835442550130533611591309270097266681586151130035682923758755335070057425166413250207614263235557802186379569579485567824279073496472756545749134510043551873781688279467858385072000799921383682732494947533571911722061016353229116267270932563632795623670128811107987848172480919549026038697064334066511843203125062053335859673504168903980520433654152804846729105058647568484485052129175121216707880031625164020824592667389233006771010731801579428170449469462798575951285160386531366787140052861799403611043683597183418929621305741903089203405947981008289463271670699376289935558822311932550232017227001409658782685955497816992476067939252553806947941425312534829010190114067939136795162145808832215326186398953153863530760135685601381385710281851289975946710549005153543795252536732113366707981782521947428153615263617790253781509684266536345726716961111899777963931861736954656841082651211949187274361378825207193747508392495000817385160933064152443678306879023922189253380710635012868593118883027626411009561862463675502832499822598704572295686951560378503543010501126253188567710563440999443906971727178934432108101939352269954706487896004208858419485703399215248843440848938617896389214970393965313834527132234607190895171249255471584731769446859851141610582138852249139126887951340665751535042419021733019414876434161321882241051092365337613900492715032008472351821460935826881154172061837415330378555699695124248299227690314129382566973900456323676034232944320807311002706900440999818003848657556519011837380473573443427281386676773535954580973360359851733829238530909634473614128344405307281981741493531469218599624906128960630088692067203336389018497919578249855146330876510493706487164852347925045259874597913967756830538008959074551049391688365725398737348796594654388309447153243299328993365010985109995427258207185685648837917015881271969783484957977170977366389740709789935587973695996130890234990947602015909778808661268663366349820644760067800689697549800796141922265529382707091532257045222650751348940701138784611117255098739058568639941763866314091038439880159443948199393315279820223381033424689887744183606622361238961557485055603975547622571627245551352525100015333366672441717667578244560022794943410073387280458351687618218587474901297651503750722593786279625976481423681652567473203052628867088710750834657949952648370423490609437349459518307192657113094109992882084587964176679042752211832130019185275983917193457877565864284013094115574042590556507578790456642980778530238115590828998856646612314044742026066660209776125036128187896568954016469226075554783108588828771704239060431652290377583440207189505157925033365111138139186952806692572956726016630861103868670779016274324601445560249420948584460399836724041005444517277795855887891196518760959509598591038307044958208650182833788094266787750809472288322728986348695028199039173251851192707137099000352682120105740074812248554773430141794636476590133118962032751835489524761879630564407788341277060889635543642376389664290038139577715715574688510814060763977366394746295540424540383097808064426937629677938275503752156248602995279407247757937826875407421798471644059118592757298800000991629293892716855744085378934537087111447255706421273260468611539146761520065665319288913426026753271583202244791197635452578995107946035928604343181516457306030062646947974657713768170615187707267603843106403490572170445227112192513870293055244840221759548240088240925424308613575872456393832271214223969977676652697288367793384367113663335520061125121747378994045246513689927473847012148384431874957441456168062097036621733471111201580538741392267435228746203198559931989676753263583988321038075735767117103639946040858430711336220669283332396393153281706811105489892802510549512870581791767346551902023382417637923782252184576425597179081570653862346180518381806444443387971951583135836912787061537612627229085636156501004820671025848656496661745828290831239970419664293742139572598685063794158338259373785846440732445509441089996538463269810375260298232959715461617783942786292899086036877593150633012018460928544427588156154078364273582126900854153845122279329122518730610814345342829314528211660676696113130439091916023494859979301550238559467686447659710528494996485129606276130245341277059369785139104662838210668521191390799934014464168087266024419047239528700754733323284039460577708179616142599357033111448610578056340960656784245612945786625850866067297087601525308590792865500919606508252734956101667308785888468991780952206788460299109563120681789252953085120505494577465688912569306134957080031438058283955618250762578756840294478890274592963248635363359039442147009222471403581268665200991110994282247981761661879863719893135889689944212014951438132783458412987319937502507421851644531220991449891337765899934627514792074397600823550091180166202631930685028179619502378705684162732442957624374912872975367737157951361422254539767656429384890023307064912546238327021934980863405068276484436183624232327931593050664552857905216046888549729448394903889008538215762914723890215861816008928991421135907600953106433468273244470074673531436091345991452693045231564748266399002453107361546774405284789807451802321389508388771336732500069315363450382017413015640738006458429222845817014374211410832949659208372089969834192450379932422333931535457528796833342255918709065105962408215266738099836747465781719639357905929256620195202693037774109973319026538268013637721195668677957103318408864235448560174522043287322382177398799994049204194152321093672130798746641868253020517169522806628043227302427524779751212922451021476899345092879318547816133669735169926771804846995944483852225438853460417822857186073579087575064054308058301660137557449003565941396106958567010471107501896832293142028773423312861269512968631906779094616024396115658266729760842080280172418549543835714600769884567216519549392192818601521170906031541252329715228118016542487752443140897302089572639747456435385840534197659975648683753383205562845558249975040663062168094825665082237179293788263485952877608556545445459537341326249333505542268518953990281286430266029064484279966929143567514978403823430000732102147272332412911233276499096595596324527080655489557744678082177619373525321283545740473633777213917894821388395353716077024466398394507972776672920477181575240080612760943033007117278548928715391593935081464081782695441819257466247977505797673099645825538893199334998959167998007471289619808352860567666768274091003337714502199150055270342292140729977675639734680057800984389129656373022836072908300160037490124083947992322267910399425662159947995940203207608101768267841918791657278452126306392897506613284607991568172353383327371094403658547940842686236465912184561358498673208908295060748999453319555281803936408637004714229057903933485714624062911327888313389484573461793967521515158777063281852455459677748384425031879596966587958766533611733573314428347431043990448500123695329882269078183565632923341832556145453551000014333911577474687242858685534400857219972168455668774306712389392365376228674909823510149834524133065760889608433102347663316141134618546664256551242310511483608997448210201804070923484219087547028782136470548991462549244001135562482830272801921367381039483168852775619765479595111520874307610129837648123423576661958374855543713506674030537904697878870255176261700968930863217019790500634279215576026415183209580469743700951609148250375508572450677974110937025541606064765954297676294440323382781499928889432547770142663281426692065304119058014846741691941539830743289483800666590225063040394896828752108864672182115799596076139860331529035398198505633887870828321953996318156779767785383687506342142509381507129774364056062270868772387802862435996003289437535400059283086238078673185120354382160807311782934836643081752473443896124977852336289991263572400819429308846105077750378680007956659906477101080991084179178021091667228640707911230993320941635749694432970679614618866223504084717000531961779517650712365089716481376168866567346353697664982386222255571130122230051363999942904921521979035535456063192634527228615470626819988882672737732310256021571732014893921577374561383905183690998397218646799212508692052308936074113467580948602453459099103492967477159456403253258353828628859329059080917085032956877631013615283764857453796694760079148297529195307911436585253879999965679333104139289086060100872705114744069222811712760146542067622246398012839214410138781497717874301836447284903563156830699958270871345942498580202322407196868313460428164585957848547382802443632656265693709383822310187484921281691152572644466785465800235648454530608471333980091246559789520418999142217989995939709870944332421868418374221465287788018253000349764010990270774849122450436296202810093546182405609833636858808154371979940342005197415549212459061393075471165011053414710061640388058430481629378647208085919298481237084350757090089759156390609916044497519530657771249741004873209910621338549977404538365704583635183013082148991504575272822211629999771127816945541884319524463645750089316182405245736981549736486615990445768497700237004170993157787354075698800852904646690152750799564612795585427713733553084319934242142797407017131333191936320996359928918538897408546967071298324116936561264429662565355896294638515385370800968092291828651250380702890437648648256973687556923848903240615074900043555565108251848392489210185756558950089938901788183688071530551339731900577150466875985508790915689529795984062413844174867206124592846616666193549311981976763058808681530447833907912979000514530809032583431369665322596993093692367063209413907366445101853637290526191205277379626628939654394029344824231225985693107654732449749038199450257576881568582713148876547472778851399872714218531671247333240630208362247946118825551624210385833978488063554180508129374770514210369231320815591404187509935431933074235621090649083182307772488409277038395462218803082933723732597644558486394758940362464473603514755923756530579991931365820387325233704037972426311628472218893161579909288889807786668399545217997509979458336487567316101608917433772196645477515216633294507470344152570382453664889634960718024280039853737972184187748424060617497139714026496863122619988206890988057078431657198749977249759960784839172232928286114823029087095083060802707963562857228504107540603109480139653190141462465085504731513873395400300622618693659229997035839176160193620716373337481948910216146161976526349411795241048725785092744260313551027920501014419213096205378103985522406425673449266661693578173553296095658110399342771472037121578124904909924373761644236884378490474712467130979247587452948618494547712477066346247019692283696126823966475712775130859456039638890262822645177629779624813995417480044500108820158042765094490589712550901105940648456034728883537395165270246715331361915861659988294652031029666741046276514713624855132031020046674767889207208090249553556429791093502196645609250302328755345513836149088260799368530993301428643823246868542951163219333289229989931693690722437924965754530667437108005718602431296241727060333351180940920595124661792099878596511555821878954544158923490132929780579934791503187165017978235379958100354248890771363480319499794105081395935999920776610299879803004903932537005206848591220101525394613705857015694797204429661885079423615714287250751825794963307358680494718783142524260807145452354393240592989797352579619045576883288094104376989228287189549515509494980833848970015667003882568782189673687044832071468882973394410955282930436746545152360284636754333862545533048130430244368606907319849267108137784625756475809139763959713385387991088610910935198641628747234974173522706937628426471017151458196460743459700688799003139949540737069649945456249021445349549672647078122185608417324294047534835207668262603157529574037429077067447811684767407816316579094122982607911808180839861896692464116823442877497780250325253344602093002631433963517742645039625295064212485144657983342800675645857623154400713299119905946491356503984607347263737511034322285840240886296988707056762329549487466604935643931680241523962972282810398001453392489487629820926441233825797564795187136404656644234292279114717416640052133620096774241028476476868904805582949095957043991783798755135893292492020138774735763942141189299153831712037734629977821152282757237077952867786102973433581422838450219865519402181511627375970273649599475469194998732554951425820740007926324129594919007814976618565291325566000452550174589734954480537213032499765975046791027284152314632627526277248235213390962809141477750886829103678173561466076773729798947407998226061369564836255344718524293320348033116523364386336982489509008452925664559546371737902556539591144154287869882568085244021280300826612629433880058032970351845467330004732106013423541554407081685661965483961755851267716706432478981882879525239289128143507440400151642215878410457172406109343819716886786046110542397373425380437304945924877400228687544752825813690431049714849832903323639829743077224532886124288623724221755831363202851595844121397183426320032883908030373998129213546658726217737179503306446555993315923192760496591473766648814994927585485351300023551747882716774487634873720552029226971461445353404342872919347696691474108147778525691047557866607703139499953585803506524055512562295525662179054517243124265390801687655753669335862188119194782122849896332853620699109036338014905452362436952321777532442607754821680432709135467713025465908433842696691045815073719331041076314562068624813378511123729671928027116114769193689055108414527342806033178049130926315080431518689161889831368907682263746248610620804835548341227900371386114467544199771440584105838711752937238815651595884673575944194159880800932332569638312437978174729603831202202928179319687323829710240240606560248593817976762184871445346002294869990872237752432810559258257975586500354341533713663725508520446825321574923122440999694031984516070975157018530135302935118487045428902450222403827756397833847344368367968092005549671314480528795029049056202064061188777669003079573268375125950004301835834371424277412325491824251443864951325057571978416700886616042977376181428461014960583663705083308455344171868031427957637663675215753824655988301281689846871359959628250232181796139394083601847839797888575755924422571802058493113432782236206915294337696640525890271344748185246252893072128730713719904799276062913276093449660011219214616814176444142202182937450188200165716683071582467665111566782415432650932313766070155084479656338119319594007327124135645568944572181713674936309081664074619295867917130406184557894267758123756618510544032728229710869333044576924146973279350271287474278264447553849911857893692599016363932188753022604531804697642513856686204269040232129735774957123956344883005624737399059767905394632287976600990326227668825242027792408754458618390988381989631043665078308166678679037914847409276510575948572308966155087868410881373620450682198647928011935689093200026009014318606196449303322959023054957891221794583449934310682475064268714732816919710420341458429954352612186089282909923644725538822081593662817223755696384045754676100510323888264894862801660879233427915658570670683417158065591637751251254687902797185020327634552800971653369407693903902213538380684760876537259695624307489947748822323246319011675146983452734309109218260542256601947220357192547380245944026758262111023166677453965110888042629176609013963826216500978750608236652784861284325598241472487577485443503240149197862942940717629204995862017380425958603403883967158160484362402325198877352052548948378838214155612169623492249802915906134751809582968738670778697991558246942789412912258674386210482663353055419050331698865640608937978401496424906539003552522556304705070761504568896466193364004535570845541096447802043498721311440929658359955851894018146069040022387343698328525146476829348827527562837187189532614846825759823010025058038286285541978127252663595682248069250351349102838079641656228263321317708470389341664980906966805094484447112040480950267097480309541514769003193359005532462635711270016637986325897044713268002653656862055960012086190233679431752163981207699342461817808007472969028930848159029968517258601031374362820737101075800491486953833362644495911081621998909332774014372766516319690751822551834458750147555438131223357280614039840044170311668496861505714538570714538747895258658398656617054840744500989768970231934351725432219181615413227947354807292273559794440048453440365943223904675776648677726678392642550890260153776353232804876316370441830462388327471990847588552885730157092085459194493143723719836512610006399002661324061664394056164539502180828493576005119152217345349390478147200662707364601833100920027175281226590558033492035345266521052303358952526556160308194014977100682778960058643260790480781795283542225459183808098068664316680894369581912218141937688387532405232469397054447838897999576117457346388439134636207308824418895565912264973130503425426549304274404005087360645585585376862287092657150759626837140369577570221637563752791947894280326622894010326989703139331880216028506124872366730131924078950815743559350196852422540356355263419534062592022875561036077658992307536278551058835963139880793498016279466964068626546669320457890669395207747749360070562982163689953706464213395955638016026336522151155102966699557323559531019981915345411850201159497583944696775753736338975386385054770965547812838763814927078475586363370352745022961132271459969962487734316437654367772350236409079874588637945328847131257419599846676844858194945457476239694712824088294182548473189945819168523947463549913171740162333220850805758981063293585384910578375334122766269482489344842467587850241061519284911262626117581988306055560186750491197050932037421878871357506051960512203930259348159715204147279514234113437012765412878209956944826816958297306953929949346822459706760526228187486452690657976508608508205903617229141943814977502863147230621710232418299050342028775911974041499955747340045258345153437400539771437227184404114724854167690596929623676511296054855657329523676176613049070415042221546491166190509653223668378175511718053353776307000633056080628569605946565244836390123355354035105004294489391311029044910662820401520954535936026364583665134981581969021344800433140224260792727236671254995092432858293320799782785613669549230375507143604870974269102436138006731139040547768700988271274704708779966781718396787672816567251143373922596688714962771846603151926815472270256229650729409009954722895086537892850622962000741799356164567580923499632053742955684273117055430888139476658969800543062859427895304581945980408115647110964921600984981412197817300651104561834716793100200868198756244657560265487623197116544754298751288933319498153922546627053250559579256188598590076253767359895015627770355154317172087873351093774892971787156702582104971555892696049988922109191915169733092050630159271676682744207597382369028480871215170723990414124646735549844647575753159853792306697665498590687550158964373428159094954723984561135699030443568050097998847105331875541360603819847610589785189113899328653725236038302685759438510872832011400470594015785056325336748727290080848892559906437289219660396568464508478938882750403307960233096722036410715755066957888657916517545217434552796519863392031034313923756373231539894043954953091644917225045226703453725808082616451802160581846211515048658739672867667409716490757902723044669289573543518543384091666987477133871145043467955403365150922733428173582941956277683288206456514207069351191259180663764854117676062382340604785554989587021385137601813481155532120070286637257781465651703026098736053114700385182015898805286731345863240635117563781249130034617488380868280451057824520669359192762725974293325292733650565168168692165691417727601963920721223083378156732779470849480757553565079098891680783253488172219042460925591577424122722597079516437190308911967469635494248760682826843557254939745992832292161628269282733839831284978538831496739503983287202002057824387102627677288179520745368202504707860037581539986738804982449311318132338202182219134537036597961170352573058796680529313194056577128335200545794727278870998962188219893027403222658311563172277110855513494745883021880351608375683829943934877629800427407763160593252309221147301546357117598186889406870161370936893520628321864875504096167481986436645108119373267673604514957528968301540456714935329472274901052800089033875284945650339624864734361300970182623087547983996090228826078480318756469248388377697347678123838431240013438354081014736319100909169871088298996633156777160910334184968063578475384732256521421536752759377783871018797678611365136316601244620551009594370356485546977522876562620242684161538942257506881829711179067025569925983349066507951780447755794221276308648827228433917452725146963755470987216890659723634441664761352571213576358086505348272008511821011151717987114791072082089720463269705658662501926218751195814936630522531112155165859711094741958030102003865602714486397883235699837532265702994351262246119571458670209598128615946476860806299704908979178641820492001610788867596376182701345379503965891349610248185374719671164695106511590195236805898504449343590250010807498595215633616598140954505153517071060344148375255908482659601803923609155297038138309560130194800864554174054953771449091123200452155036891864642325407528925412539682625023348716568348087687188670321209486527546695566716674054188393876452503028933923444355102657904947136643366316752714081472187727193889883320698530029490521562710569090042902564992618767293778013169046156960691647225329034321470465488094293221062609991863134357681591521569316600601742887941610417275373757670412840376392791466666243925428179284925125580976215254457641939051746381897868639931684919133404424064591885254865718700780122502360879726128642347584472029180929552601447718956946412483508813893799314952236538806777137891534386542754262781783349618466426353813743154087475833723117769820607692190821748526628726465863820556145839390567252011537410050207840435962649333454041143506150132778329591155552261008285142333624343146007910304280183565233477258137390250656613227320045999195705999402687591368916687562519206011185275484905455304988919249606979193146464415908859442023680591160888621819859021669902664108764884878176954101193918965207191611185973676706832588191438365155231563946084206618174244895993488310221039444855742833249335063209629072178407245895453717001599462178044067389656349402937277764142682795624884545447488790388141407394555063371813348040970176473952538501486251320984304154184060945206900917123097741296605049378648077687806199395959719769124955127277717247314549298919928027736699879542110962868538506595134322058836670127929180795328277423778348604962630161833678141337412021437773548357411246145398452245614844373378830721772058431158673079496525847358604569808122873339474848016224295457390593831279610041652234582653453092839769021832330937379409940905869441877380010365702417928090088672840593321004385185451243229115897193611604462555034855163674284683964954931743669777730997208360722209195479534474329756044338022077876010905593898043714722692060685992373658024735972773005973421646698613252877546562274311335436415903499172551189385813722992613852120928580224811019875287795582724696682625494912035158904965546921928691845523189829574613404282358259211942646961460564021850239779779223812708833049166599668520986783292683410208060721500693699216453017894814437714342848658605423275193383556276050024937198474531297571695722007685563814010805175351011827422948181076180852551876057865262620098143588386840552982749211941961211322389470986919079909009451531438507529298866240188900941610496048809847804473323695580643597903987424053901740476043838654695597778981428051017605145972573747648844749550280474078120417446156512925563276392382904974274586904799927991834607277175850141161225036520930698055125009591233507812537303040116088057491377899247234184124387345739703623856062853798715501634478389199815856114604879389696576397322800915965616732426928324955421058198231655707335479839759772699761961546783254740872007611195060662641289913473269157767449128043435516305225341789751235498482232852898270862066716194032495934286463807020169145409587098717665977448824697132829233194487232836514594170308581057946423731922733784867060081516648923906421283736027965496655186984854938777539157707998644667123016242449292590000489962233356038158370027639484087210431047845437421955841340879835330138792264024059152883496839303428946049029337157749670154507319512529436675520777527380223323139137038536216756258023745668218231098963510517672786964237412962543101989123510376711741120559341824356350581447748391273946938820389059853814401290635235512248690312928777622926437526621996973849499723864575948050320548835475830343647071954244928455741911835113965859390597836592234366152820237300354781596169582870397791718180483737861669995716791403874138313301175895534290985020145168569433469630974343386158396387627980068901601889374623984112003011003529696704712830214002061165695204116961780033970367413458039229861739166346612291137588453763364445898401736768400691385247934420181716921302897144691638584998544258900643921692977328386765993545421901556225714624460315162387286465424417148764269614341920862529122743087352897541136677367890314239550133190040617731274574060617225938823327609246863167823080839064205358175481872592359373644503678725659065670819803890946913600914812161685532982998839505693323342919259143478238346506893471730621889143076140077405825710450278523803829850585462882551856742729372169484204255588827450100533620083578769871425926715523864122144991594427519817375426597753330534065797888385780767128810811601848368537860999104691264989764734755772458182584382197412064274341465088794859184162189246984042132403416148280666149010957561118285089008922112800136505771098022522805217476042609011281963734658246702279558246000769806905921564639110982972665122165130104205664220863695522258600390630487076294958637833795487199797260398905418786162389663076472544444136845818836450261091307341886895268613560553922391443007394260176256851047550840806776105392461112684467230484764450115581820216749345721395547660236366354012067519351016183690893085815650762922927542282787362694013865555718598050139300356354986776099498653081324072308300599133302330059589536933614970220341524790230655076362342302554216093166155661181926176893004346406241594696234954380416921033140306079577935689692562492100792412169436548485711062670441933242615939875995325077194757915713991769540281458715071568425139323756918721581095756589768357020292580077226912093436818957632000405694500138411328799269122461392522618966933043367088854911419053979302463952454103202812634134968201066162156076965523810000112145176141779042093660905584443179070815708622490108666610707488532256941556889390711082082796503414860506742763055547345369243834148462931582737974216440016302830324743439177803211629573849490082710425847631963882542777766836074292407787268585984047284825884654568407091305587434937213361130669390936346907459099497447088462691228734610318280175765928262646996565387152844526358845559959051337151642541701365446927822901344805685370805011696972138442906557733880222816342577795068308780013351186198459319314546484484745320132990101011599265205538157679859640589835149564690720580864543618641684649707629991936573926578970248205775695388616384689339894322804741741154963485670719508319673695728843057273939184008871259473960000553951804724494305534141038411555265993068708533300887058890316617728089611456948798492568571872743466128447059128241703259063049821984933483589732537512988673835827220911056305046772614964448160629813865508582362024564760796644078973846709776690088343961505528265491561632848258313224638416782178891829681838264727947539147590032944442893598138396220504745358444054973131777473127518258002941374688373367325387033484354091587804979998808403675176161290211478425871753698642422763899284481379361859047262745715654508783470432089923269944550168508265744768731042316938414551556855597526389691630018231299774726730077094095654006099054208553882584830997323003150969374892601030216913600683887684233667956336685080342271750679268425411131989124664479799619413582126790726732343685551523269420626441422500205730049153775750761671661634248071329352867184831326975316630918384808861933911871532920977850891593875581853773966958674784787918261579811829559236717587022945396601528421299755708350092785167251811786878604280013734709980250799118584777000014607955731501127781054473550719484584606704206016323748244865796105449816607425606747781980831743917489764821314620838343344530157896139163309076515492527681336908105936226294569320209920527580625940565540509435030604538224565900772873120782991200892415338777730250634556459554503280066802942862351808710057771934712091853147217490160797628065516431163059381162582904015387146321621275539079468155332637599007572228698208391663919006366050239556415294424459496815100258262920962176221014898614152512161529789161330388441889556574672202119971270858754701359972309015294158810948930254276839711279896484476953970885688800688380524527788739359696588882694532683138268791831369436029280287666603977675984872664367474969308888317489220975689639558110161824295803238635498899192451222043262932352297508781584752977546188412946932853847471699305345046835698199095891683510557499655089550984085477768387081308314660597029427666247442028627400248209618449506436444916063211246681929713960584152584579603568420035340903240857686501717924398893621833005812416054443892430317768030929560141643031344107339699851022392135075782244875533453425381878603419173163410954582598019142565931428052236560282270866742154916216184025573369370647738725458711469973861074005240518763819480560395329859680680878986953889339531408947741779343555824621465342809429798859718321637272391526868377269608942348890206445656156616097497860042612314773181690293883747240153586802116651599682205961797047564287913579106708252076212759445809640792364948629254958376273702855015484595830221183038323205505117293581132708658339614332547760665697624711108411659739674040233189241064034124237470084453913667470081582382445978677816762626435845062625628539341640452531931890608123636279622240037570713757726293443256162246910493739056881831167739460783730172467899268782607132169763850741208228413553710962639087338507941656084332907213702880120663038433258353213084623640048620793132006433910049375312933948958629269505131793199610808879316864077568261765995781322852476310430863223415067701882624372805973976107707715732220834504894488350549247811780965617903282544990497764306099297573133104499403133846771354204675100811312481484733267097810230195201585910601091169897818420753366687639867449262049834067567566302668541712737768281025173137705764771163905420161388564943514332653709575638321271415694069000175548431438642478375103758719350599466511703061456764090434745455003599025831628677574467662660255996178152265176646945894770808174437985845190977969606356000074998113659451464460343884959774816342226045162565771797654456154192685879177683737841166849323458413616197518330460485705177374476327058021439218789166700908015225578186030430290817779989819692954645774687242727355685073274049371838032889640856032474025429489805882126072189978068436244243945131211840679473788603488561892316580419094819754698824926980861379011394111006793122733536357256471775760472689085815947859118848757806943443515861828613023650442965856765239769801456191338168126348329823623757577101375527619732435022716544119548068466988591303521906563388203625464189778421921072987602076742526811286413780933173269275749672291744355761311577885776723138099246496671286387920915633430285263859005978444807569919131731998905856033808769777514696682647277852073966834052168169111083996883228347123579391095176733975904485233817228191154428095667758078102709407034932437049039243569840306895956490293137865783159519739546108406503728635998983757110397899491698763791809756927282695819978764094383902066905089075355576792414363845849984641018655770031170821352944991094581773388827157551083447795427600015897573218860983117650991041301787554971521269969878377789875639357258737986392538320834252594256028579128213360911321766904808431059595190098232664015344311164938085392326023173417297311428983137459221219185947685175044927750294902309773856951374676215213873601529230166674617659967016457436709707291705123455863365312375809253825923081189104983990057675170074966653700102134583191439852411405412414276196249572440398713771754915064464620620921478370687218104004782115849231265068213264278920710232799019705455272819340225849435705293399392555743184754073101741285703154287087091766966944558568346301099837251908641343548725457697022742121641497751139966762259388658634784376063169868668959361379562828534459221986699618134830030486883088085991364745179737049162234143957181440192099402527036879216522487345364843423429752626603261943028500244528352343316976654775944006308399822556652665916217979047226063635694499399381069517837283386219273245921034208330562514452091039632963217905033415703960318495778462132762184654680784487278321679316975614806405807318115995857776161118969974190755537949092783254439172613285150804991975147464892174202601544700091498351300376371055953773324812445583673036212936866832683942007672158690861018547299477295568543950267183324898224851184931300783437297206851017937191313638904535910638137082206746138431696204720043843605059143871442529560258820528453854805271794672428576822425812379078602404543298335587365782048079666396763734970987783577569990701223011025493000814227481021027026915986853741591756301734556506260919409339890792574205081814036488823777549859128613042967090860871069516710992575661573376258004604207673155684086934038257912952261648618201393799613936387219483402644542240612443412287073588719969868824837194030190174503859561382131419546966199626745219591798407642556083367255949091873892668161019118606425446440367719263975710140854003514648897503848390830618477135543576225784129911414833889699002858212863615096464819099473540563480523225576739587569356978863153420202573914257359082488977158340584301184060503768370613856887415752838590197600407030904723428866085968942568019062902522550085627728239095049699654952001504747309238813564473135242082912988508319396081509810589359301050439578425921519765751801491027918587089668397115626217592503588363190434698714121148610182594759497171232804281283026079430160248649949667549581808137336478117410932799054521277034192393486268115284252526026372291738642853197544358005500531150458781278675790353852649334372714991653067873160341411266495065309868308692596157596335668552241646015644286290241118569547498434515678631281835549888348295006542285507362837609245504778632208713839477042387746752457939939625441709637784379779398969680894615626133691027204259577701652110346443217372793394633528176657504432745108514851067431621400290778412525630483816858628965358049149726317889758835524575939003937926025540614390889454544057591017612801608580443737033843493039671863768986678698862575733912890012566178226033403516626118312446121833669679268106870111039032807415463924322864192015610693450947383380445625209406687902487596607232618876891458124060406618280242249020913590164964305443562754979999480376662882229710227364791690143176518260507280223803560893454944258362186715398162478034826230705113243202555761310970252809729545695354606868046557634481697246900351600754962849186420896144536560943474472132759286844819053401753725985036821615264680546459243049002838722392490020245071562449286075725511317169663066418034841125373985261314248803258364767572513865925412637832945747359314956339343223073024936460408092347484010194852682949840264011169223440734209732835475292650969714442274555815385633284487645007582476315170428152394410542654466218118745039820113774380642699537284859716941337640243347173190611749566221024731136721557249843799707864736767597020013903298968832433128273478278705846918998775556341601794266613923942540796326322892740915596051644745259642974869786677727927936165850384635975818913110624485753539956350109790985987195008116383248955683667595282821748698495975638787069300123364477375693728217995245415252044657175827122164062762326310971757571588797533131865419183410531135132485548311851351208835292154881739586087489372655432095865121784679051386997259779836644609211474261647592429645580398317568062151252545268789023550352411109142346742362786873054777322640825826751271281684119889969698198119070612386280134813890628029968785667866810024864103198813063954780940662289934568735547775106282181469485750826560845588497743494783865823427548624087827081227594068422071090226847198638432600462776285286656908056824023692947135188533183488009176202519640398369724349913715662607184029614678876147732645744438511379825428828911345153928632793289067071813719973465366809842379835546824027779639259076391191512982404931389818114661692107634041247925475307917568463105899743695165140904339862872065733266653021635538671256285660022750307193455446081817576731794476028175668515977409837165899080034439632259754809612014405736758080106033756177216290052664123950507334961379915504816869595450966978601575147760891171659018477085204913441754312566609833322530683214912836718652749591813541818321304853419652540330224540801175823961194206196574818943449647982833552751177842330395356521047965658710701638644061705828605375301210208590815726791211247128843200152387869770944190761695255024365473111516113167135483900021646837309693028597741603404026362336657225545516971772183196729957003931289383032446183285195802147111073668589004214041591854725788485493828777370951878008255717057289683773797400429813188367582424815934940501514305399713980508222719820943392482619922925185560561219718661371694855997214041060031741539825521637087190286357596702850764918962415669880946266259472883375434449239310368940181367219965228561552516193174476866744539842159561459044054854744592995036182508105242561306976856155308197695862132791898699342759910922089251262088586022288114565351975116168218585931691353366288510492953388010236422067466083384063995956917891287488692803639641233610164570497143386572734567664393971772287411559843072379896665664992579593934144701614897355159507430407091275328826897750319823936761947275218197529415804425719598341879260417184639787808728783328285775692944671284396594430597467318703735001524153275901889137575861040213435413684542010762660538361698670549780813257333828832138997838498679798800305155165370714471276979347058816866933060558314789201163661871522493439817476237986931301558236123007336197236401529398644627758235953694983427471718812168095339051895116776228282857537116145114965791949541590633979344768913835050122502213305877574552222389854985599839909235716962002954778790830543965708748210108712610856137426729972191617280301602351780823346480033069250533773783833937654281752660595290559109609019270839332869325996758961857361316454117089481060213348122224718182877925057809420155043564802812866798461899082754684734174715031378245017628259345732848341532191905136057460499993046663353338420073913136173149569163805824575946745904893604810761107512641846679690901863158088307866216842294595087541711762302991564303281902658189072755381513567760327279178895803595390845527977760603294562902044541840354170816254928449105614450190756574217792713528649190420751265134627536129953589641050842332569292687989079342018943998717990891600372869609417561835378491254979238139751107658704670276822129330682466122816371235569213639435309190402640714292265344895784398236536090827067413725623469520624283530986049035022861375455506873507931998874079958822343584701317003584659514036000198338060567767144811611859851736312032831936952225659143839247730502248458404173738530505263876945708263468277159778693157536162583942911703965771875858745331085559426203421996798923502431637319983051802270752047110508630898748818591941180712825491830232046863685905411043635692493930216139123170832171047537528141765398372540036399921779538552404382879316299405766112438262206414640438085968680080908177552156983081571097472576527412014863853857180114930603438440447638159968932942665539037942365080155393504484607406263653758549473683873083392156283651646882926816952413517909298656197951709857130149602209521328487943233873318072738442184500327268457985439212948591872262650139052835812581185193357351045609189296554448503232326418919119491501885541900321322979882294394762520882928243773517130727730063262105015936573886840861957461788354001247636784147196038574966975211146554642195070698736257816640997083303377094844777982007097514025414237122408814816727895683643215050964986622414609008983567115187724378231980717232697928170397509278109533512163550959579343005912451804807408866972597093498459865524417415685328495389335691043870569696865058967856842160316559211991901707636796100362928420563415780638631108743103662055640949285865129489856413255011008908642659855929517520516160625002309127531896086196631401958100620009186923128723451515106123045309899374417768261544350276168693655870617637755372827973466842884334535191737316015472174137112105932809487328901381020520980868328515256141551920536144203772625683755651624176318361657450624430147371476709138485529561084029762433888380812095137387402828661276362969381843170412683906171868995633248420837088082353280688781953868326083272330019102525622095800937689121235071752718213213453274559236514147173240192161460060896604668345566412990584364456536784890269507455635223498668615375413858655929879231511456798815511710119697006624833757229419265373545549289512680826435533585695797379799751161067664380529688172046993421114793738229940227336541101613374622990435267743697515873662491295503550186766224691617759853129849252603471001870781914937004248725239440607056512021285289305253450813801285861193753909761551297221417131791967280256815543844607908920937825401850549323055439153259166596292612272396184604283548463356643514663424701200914132689077319681880678848140208217031853145318299599293828431369914358705697208451667059502401469291722844409386004962422738631176659168887216194263501658663875524522613818012135174605542806572327979375016976296246099289289608542200483113385892461092905991345419873866970118210495361688720443933091690332799367640636328678176990629812468717756375721767762793420514503842946258698042017748385839510859914163835329743234623964369025173064851091755702473415177985499981128830586723638892946302812858014955976335300614648236742172234609544014368064961233163844823716724514221686998420236945832876963139529467266641828216434885656378220032078974638454902735307804819400836489895398284195774260486451621371473329749243814902349490017157355007668153461273227724949292264533174903411972970168495013601943381553658554096705228388057995349565926626713140118114467485377990901408297184311224227894439466328067285124532289867196046427002270611232957696624464389319286469437330127496154617091443435895517739980823228214213559648244873561596121103342204261243772997610710821365224584827333598955626775793491488163446591699765355979197984989276188427996177695816928796466662177445429396203187944609085457273781188974976693560331117497885138177236986476317708412617707397961282643831402964822603991139495785544343336488572774890353808888638999707970279066113861693249404198622064324401443224113598666885191848632852955845675503337182424952740786216113660976267692266083424068908685130745561253577897987074650552868435971300841462092514170958641121267020981185207753425814886438586003451566441765854840195664604042662628264046462561437037128246361578606118735374533823935474265404909008896686730548855381262588693745139543910586167269323796056637327452339536931563922059043138311823112188772066642488580038402075120906830711379250862081166911518803913449692628731354331025882105397544230017255965781123588330465443842488631380428118814332775036651593791894798725698617351071590386322200738558731722413968834074731843123331601810317005103255581448141142214247246180304831675372797453864646082219335307222382739697989098221871080575185850221569787156873655910568977991947172399046977530330398679911321409576693706481430722282851226877465086417423592715062960185927133702262353298316503131519107958868023170760166587330096779408944913035353190705807452056943568789794630370986042323731599694096375126677215431612182328526466786417494056223772534480641096577570025909648879234884124405473241179321835305146256345751891063433794608825510519106113401708826874790025539419321847318129682518203426434060237720405009071198550444377552035447881818883269236093798762446869850793212612865877385204365171397014047544675246056919856593272092568971397824673033042035804634470274023583741347121631085072630414392560746971361936697945403318233757521419243854760784651330484382033969577231240946537030661155571765626367458042846610324859257420147311688058248272694479696436324234038513920042894308598317188259562809396364365161452820110632153001737931313087207098149617245936829642576453575878317129270403269745805129783302635127255301966165970125210968983606223507249646398150334305536768601223835476000906295667034974497644004635806339908807754034384607372276999962324749737865067192148773163491581318600875533518435040617332421490788669447851262738262977566444004148502334243143622105956891325900784807428583420702423280412329099573682621430428645701263744926128517986819510611292297004960556561844427219624090972498322114327193893920259404085953990536479173181320696748641761037102012660481621692468302276541437069898890040968115718268212177079491940958763958107519742618998475195393706249792103166027998224581346745691535394350521297501272994504463218691993773762076744252924931479782939715198945045278183540770992856796970661308522251566417803092308885252065587625078022805511236445674541714160966783194765665758504665877636237323647381365292799956590480592000879494817536266482682662701732013755117554976153915501102911325785243018632753837600941605673656208810973810109827762578044956990371736032975648079221750123283506893006005433513400374303628994097144942163421894349122401843721239612579109624463451390602474102414815106174968174897958179482504820682888805509424234026485730507666874266340473644414441911608554478370285462252090948328200183664496129494225684029942118109092177488916752460069304074510429129729552876918007281227152432990205222415682549950426322717433104669639132735338555400984724362154292457544428688006798988581150654680235148859899437457857612306988372729823261359405964343477596410647982062864892983486738044004622578666197301952284488384681680975470128481449583240519137848514260899783892945045459528931400438751131299826278578266613559934639537078179511770429959123797588045620693375263057821928465618115135075684610155214373846113413166713848333982835993599061549055922275150378728549776844231720470476730086848853111123781237013012964123886833105942836013786467287753388738939792301777009898790262993361295183590969033227131101950217343460054665266586963423250283787659467016238978202016703109159036067232804342818490176549324002768088386643600931998312461922861243020464808039210480205298955518098970239021266076053228554307835149115048077552267168307985713642074315902242020358778470889452272945345645204916600010562486165329743674725523967374940200171055334821389065708838136773755131710338465645736673853551704615618658884088671600944427895992577925466412693659893425959223946010859795179037099461422006017010925549736956633391536263707013316341506401592838390804756509648943625358481760994494160074541170036616789040253883325824748568937540605522234553426886246657954956380933880329345945684409646523192911722805800151317887738538015607059338670628159527418334735527717893511041544349235493451976975467120942509548520541959201011515006640917960311966287407131379646364577967507091672039180562691263306473130012139573958490666516202095044849852250986103038551513771619728292683243551691776176301704494769554334985555827447758159329241317904370086771304852533509563362001856039568640554533809165619672589923757328425766551272116045336359103602307409318326529143304244454365138338735710672099140150819287701589705782850520425730264657593405300806126201449861050467493190651603300785721389659460781611853637164172607271841970757373791528340784211562227472841938578986451909539693469676604176390606676575645120188835877133672585214792411388577863491013842785153113106554994050793714254565871985710711621603544584148532725594724174682798979733366358031655490731924354062296525918258929476251427653619535752216058524047793787990789498800033932317666514358924420093994781026891358263960818034308138208940058008994438120777572900671811848652965944479985484376340908771930356089952392347341589273520000225839875114911405981410891007626175753182389184167477390772312145146774026507193071041750682978877055291462934711827227786262946008887405288826680884349592914300170347164888693598563114444291156687800174754211803682607083831250006449024734917162023924394446985854927284454700435955451321726068175632555358765125710265958334919863606019708229073005538605736036649616819271159263985228390054740111461832709545368255756194028544918811447346074217761699025318408266020236854531872223340115956426876389436304312052345842627364663396709265206859896541618011522298214616157252963397726410084601064587465173746642326963125504429862370544145566739126898844292973839948905208399156050229705104107080591980655696408326241976447012995778960705839691740542542847398500572063859357622294322620925354556582094767671201927399648948842667804457867918784195805671673523879315056850614514258003366760729634262640222566837825091092778290355704469514416257988765324405632704696591876607682068328745161355081559406898456381991716042264241240593678666142401296669072654330076639010347231237121260904100263630059500700630688011102341881101029446809702101305509367573882267155805332497375344697611959577957747040691561924188750754198335392556298057768716583198103629524811003461020238727505238611493094738111488127568845660407760981077340837308550529072683418288242465744826768037806451709083355503091963113067203193258889481978705250611105016665053018374048477537656220612925801125990122592435179447079265192088069360593200616451663040787927613213892797144374976915735434074349363622823601349202534339209160942461993676650003395188283951596916005302866818040338534177583753579657684013754830602348889975185890369256822714709119584736268025347140917866456967357219290801766300691432407555763378467921884190543000368778851771987100573399325605630219959283623022371265788956052491819904425929398326201472078429245721804735199992119347401693259965488136603299394016933102369695083790982473716025091987849095366393811195900527768520221460199438538090675482190957443252775908706785114707523286629097790814967166496865249591808777043436040821164033456562552717670566026335700840554130400284941518303346901147771577228679335076747806701493411948199827238001370090918852145030718653830853132074377839515351373372207870916524487359774434768441382909452524479326001566647144302661461395427135321625901108346980902975947663471988209176613006600973089412162748408367176233964380244150186577230237905402234145645244091850715540461954389971466184659143482878008118647785060937248020066260529274277901486982064036401862895553211824561072702792359219966826597158129857745673637737350145760727314346694858228438052383730059062692576773036687645387799811645267433548169113302711271403878693343247781125543445170486599752923711419198839715137545249917978243253732818546875296633236140908652495684425230831481680280297552223624029285345898192193572888990845725665072017678870113242344527192754228041013528273804870814388334050081446930345062695691329119691510680798964858440468733921735878551390202999297392828755244474760000673511503246541262828492490656183826429940512483574987630631790944955930879389323062606349023838253105573946292766535883513469168076675981890788304694576813289352854881057674602204808579693857819001369971919124588907031204393723717128169290280582557732433266286646584639634790480136546681908948009196693656795075304147589142508302575250963065567383710164668066485915340557990706732569098040485057015424718759852959379687640473763292460118110343885604169497030366032549780951875974989825362558862936194624269398738771012993088582222817830740395692303149015062562060893221774371845122913864007799854417020482088821433695713356828344091467477494056905871365775714743953994576620443570264256912189354103573624083649388866161487486562105200266597125008097458553422038297166531154511263366299065450868434637789308865220593081386684642432044655816554291288350506524714950283987455303338846579811526574046683983975423557593484522767526263065007239605398727059390264273824571031844274388060610376033551618543799000726395186152714699911880929843244470013557830931913643148021832703599585924790119604215466034380028160392382033174349199528398110120476898648901061499062383315476885132688697665256769270696343318027593067263445512322448677855329540267616209081560011446049852524672213539663451132089086632210167414983850710624485609367519508595939850329855459459588487807731597200871957363504203006743052731244752505716670199476308747770101898718159613717860988708427398850822306888370751053276731309382241219260229956679890995480101573760811217825452448349099900925838018185374792213967301406552656158965103019455303645260304020203527155230653703820539301203955640790022836922050355320655390600693942961785126898759498166731924921001010196546196057676703334203640211137368233326350802726573535282781687249485210641932686618927683370974256879842091731005646175598951645201897551571302574889355083428470741650409530403236482360460243927129079720894322296391851750302796233737632435917972951665760578873733528196835807954832312797465911488249233913021066408780123879142784064762586107065870413945429414625395925881187685283455061656479103182490471342737455935563053924602382714438526482063882687797806239609386425925736188198125106881007503123831359183963725132318836069323774359278906319193854532747948027470768755809839875321323573044959562273361136524890840171636691327412237175387934384959534005517044334180346134946777017204356473083158311323863589268748970160746740782498046386520852039292655710903310863694963547658280826638148792030318577421618456550852559267043915878514816101201565913715559090317005226892559104292482550456395503943506385722750350408567275233959069048184880464780770448447795990185922654440852558815800288180639945785402896112481998585811065719250554838621915505055600461567880874619130573392559853461204605811328589455497572596546732438194856571312187831953512471346396591040561471033527715647784498660181438715841425324245216420622802698548577525776016495917355772815445146018132464291860002717362531736896078694453006122563719951297532895619699813910121020663957770137355666909388485397307261629433444550517372129592785896077894060495229462531308553741734774697154722366593616166173155878100444935338750795880714514850825157507782476305359460348651412408620911212494813389274455074889940790203451251018502006015518978871802229217033506137398733143968176852143065849350053703849174708467195370758049862651481152589491652118187681800774887518590005408765963661707791195927919003298016948772243295475635426190264272740567019868733612515106253168987106167683495714420500046981027043780844201801397642521351822637738088878970390483408645476699972385782899407240246711216031012805976209250207340699493844498047823506985528126743912165725908673052447617693822065679835500978838020709951042584408321368902756841351496909064546399635936342583119774626104913418807494941885313028718425797413191596640158176713976386290581997285566510842372802697749003381132670864563074046123145394932306993072809608519119516986852971781881665884607436377485850955365935438768830358104306403570775592934336431527552935913541569075335469166207730914213880963261430347339621227288768278349376385307422368484324900540420529785972716433075456526627521702535532810956239756674939502245433071527158193924477317369871844124137255878520290175470786079990262847716035370943851963714073867951099735547599618622395599495741965460440447234191445594782643102953151103279020585995081353925501889073465810114032806522120505983028445624805186228252923296609201755007643897803251511398357307163133224849961745723963688126436512036147706639335424766118821389606363198103371572027163935533041628828902336264988480436404300792302371322257168028692189057950497989509048754442540161865105870852348837235785489040866227062304792117026210138525690522678963162715873914207030277406998514687357192359966138286514457124591779222958433041406259212610085004193367798728264888048538476866224210224908372884663884921310760288114234951401724340525504473087706187171061438071695859414171206509798208557616157741020987003726350056949901454366045524988934435095415670840794996790188655786557279179708844422121319666734068374730538035577498386962379894685736728354277497143925453707628656842484832313934324704336155003788304920258228423388362605014638125496219980842767393330322413692135895993043867908882624328845797792559550576131024601693081564858310929572434811668351162068573877445329181977422759009539215671294805526502087007293411043290490342482398571405910268290015168054430639108905836200110868382165777898445511349590287922662661755444864065488872470447595021529800114118697397943217108931811249877289800834533626663530499831997258977707326316352565928171934891292543153292674401753678034221145062831685776358797394682059772453381459094877671934035733205251389201392897010831848205782686360635389354434705398222956956610169002966159992703670899913018552088081566549662013438908127587731358118986086275884569885738714739334174122560691222346396271711681242122434309287425169437017363973285047467419695029428187854105432555197096074256974910643859106016682550087293942407386049146262150433552199358503076293008693334010666624572802260355569646265520039832065431079612690038880872859109554587431495718351064915539698208154209828623323569066967413799369160575723055682408461527234550167301506562952732247925162739197929240109156064407111910811440343934359226843142766403442648991630640299261119638276478050611112922542831087219605185649563861554513502937053119429152578332154651895188287126889935180291515847835824707533220907481975287722110910460854874934710567230573634517313051537384056761754133849750604791084331697559309199975632192028902645989988139953100631587021721507140147340155738080232706110850758956370016069601114743714539849467567459515246411753627983424155295748299273340606086014384760629259608734154383668511279686348890308853264661282250813789948167112159689679589829197223519655491753420004994702936824602403680376136897825579356960372983510914009645069224977264475660484873170854072800032078585568865235669681019651695340527480055175072470032130253730116606668363426373266113757057477158523053578252379111449675794519381651330199334459317950161479906947093667945240374330345231111927412418802076115431256012059943015569013186728982311171836686636230072356861509631331212793797310511732694031860695386085010077792659401678652721808512324306186247152608336203852652610647554509286184948087156352238207756329301343704481262175673031436113906601883131095014903018840961148628950697105237215211406460511142852435973209384479445912172493711266211805414225432617124864559011068371253095681756773911176867007862111204745856612665728987852107409071657035267460166538878148767078337568530282009148168010775515385513438335934397821077035881137376140127444668397133342137964669816024111656646284616046890789391239738419916978840297019925576226708616015998754412193452895133096841776877226413249063562463996952968334009763862387117757901873690837069707591367902687780682994860482293167339962318461150114195384845956840130488818785775894499126102851902653909921795697199278945933188756494378727568624158485849045206343879218276328870540451096758357830851369186989690156549622041840468775511406544179389596731964841299139300950811171909276198866261955370070647871429853689229767809253208741392244772221523892769207193069123790292946381217601246281220566916133410230464517244011471591894460976719837829681072919392960576551266896783831388850819517379470062903231926308302597804672113874483935107095656348739405193148798166894321886314093431305958898576859820279894870505407289401737082849194043937922681568003465827495712941599132620843148579042672740569593177312332214016302994871826959126588451051122385051186396031235041438602753888939989472381992367639470476779991953200656905033389584270094325356711251023699492297906806979839995448967942886904194411253307156696321092542224434355647628017733540987166596158381777885127479747781698866433816635547935997362367593307590720732840126439884108114976515329804923485896885305252611312569754554374702007706360663743548149633551173476635510814980082266431930248408357408668088703395274298064412070690091252023845698814827624181091556255714160458759321756489841096902380938834471993401461378491554269061626081213698842268083892778101154643166520271011252601990841158740399689072710740381059223664617272909109254257985537902483917253261888953988885005084662184352863303847954332173781696508567707442725691044463871646214556039064837635462247883150070998556304196183754218370343741158849004113921722308314155934259971338440304392153417008708191988214873483191727492028561982285067193633464464302838494431686929173562172260688754252857141028824416559908177210274161912430124979911326742506884669779341292988997772811048792064735229831655684388183912795932928941066344905338328471150710505013591962181251984299555228816386301776655088195307876441016024497264194795399752640793814414913850495450151207041210369701789646938277261479392890893940645699929594579338514009513998428824952635260485189424007945596266148150489420241791707370579110448006829346801593861967569508622118530215107334767575219562850861536326341689764872965680174059824557072296256132737183553220951014572538961167545497411300390795516597592645959936642079413516408514739044472017459555779816900874272289507869893171580728723745224819229167545965482212661103616566321145567874634484358173394350723823296635214361212146449250508051002783588342025930323736637695834215917932902116330572943340489974903871545511529520095434650058785314505363246334180218349273193691866641972725937668524992567532838583067700139795771340056623552730815893249440293476787303744272310587513542196848232979678100051783665244069158068190542884220948820011066774152843739006693296103105430287737884475411243460920029859981817393889801291255376637904592027377719631011964392997628921169731318478763235204504177787411776064801429856741768856411256527813966826658600972054641264930170240009730694203727884983101240657720027400920114392874160276404351145934492812094523072650988985452530166345128472303279122654676977379721280615008538698782505938778990055948600162680063124034126565956568036923476181753276223589202373595630464513859291234725709183109806773103012716066242943821420707298261666312869137947155862658692322856836351991037557965640824260332251847630845582007806542278463042996249413630341290725712850902210587867606351365064471738622738564404594969168111715160775804984481548798161282692321034303933783918882438994401770585749171139707627125090502277429133107872704585579570937720755597610042110878123919935533249212342091285047090096096784849966993029906005065140357956162769575718131761504070031855913206576417512761184687297600606745744407839165893135685351777252491710053815108513519566019539739308162273668515271958943578023757875850611508153983335029493557901792338560566930576604787129789076939656961441991606460748951197829958111688753047643453326724982885507735409909686450508089254209019093327576483818221795281718307468017349877800991384720660025606870675732706048607802392736740921323601047810966588580177815835983504328638079737805795634570700858367309595335643102379553438158598230441145050131595561000381082064616843416317992667623699363050269683296211919433819497669188027218603281604086127590369882168800533384840470724716862081089955889549051269696991387010644606285876950894871337671175751382992269962280434768836166664561617214225237621992704719216463532435801778795233652562637159252352051264113930454313514209611924600253686199701965476187427797857876682496890575448754269023505760725503524119695134506520275512429931772410236661203815699852546155350815277294035172850108602739431280609713805303966032686472960833689767444732530395790440170557981293510914826931863316668307108304966064737316965996285738856317334060793340878710616125327123071249488129375128289271705338831395127291236382074026359583206650231274743842404765385757407048358286682072838072670262035755883659194889715303134523782759940767537109390374912922420740709345613951629309696724142618742061729663307470973581135999556480418161125937841322682378142070622408552884565922140415553680029873486347021744613283774105047748683851649994300856773139021190740944204246434855510765482096859862270473231438670250775447558416396660980852009411840872106742257495866225217284009001405168099178131907704005851351616460828598784428905677278253708272243696925626736292702090686076932407950787142876992365819768625719230534325567399567126784697968661924758860823036950608306128883440875186360404939412265105118522649160200000467193476362740124888794827147553545966078845106081988166462300205797538091858317305507083712258226013300225435908248104410263330928032201456621253273088320971644445328190860277032344797951014272310222167488705966333190336252909584649783102150746392966244707860994260729079335110462481263768492281877435032953289833358144568903376886233875594225337124877223112072889355688294181504488807034081771220300940632895156450201606090561446910551036070626952746572607172558024030564733690201678841999677962240945662732787192318590446039325955916609481729971993626790481406902899330344488010112128619014785526443710402088205521744617752252445584814253575456539606707531617082328439805801334739512120115069401055641246671488872020646179694476003423656339223645333568213192229838302950263605842108373829684043944684850199193026887247112546178051530092635318556398682227048851058622334831540988643026534014560602905473517332652087258660254278476926296096830334833642587710182276422119904651715194447938359665525361987118303991821226413278202946278677367778059874555626756315763700689360061690908512043889784901384869679418012572561748774278771031133983679331188213333935081236430970143665298760286609583640556188290655898041656987251595700075535547675249949096799855090506315518311216455622384136146342062012404374574191008912193338841489075111024342316472554451041312670863387576882307150928465779301503144231081775291549456543620414705421092700430214482106621323681640362834147755246541336338330908642930741620310544447298195432691246226574670071779892152487407348214133825892711485795146013134530372244466831774823320626805053418158972368515901700113976193117001835460683325291464506734716219529293911292600598840709944780471642658213533436661315500904277567330134022162597590837970110092071616463593762568622094452108456460291362025339532681731710987016058749725904275391003601449944691912904702903457598650414172513197166066347099999480634461508078269328619405072093407724574161410369926450207244592901538301189932413748737602535721050431221148900838882311853619717249177322154175108064500276945271653730748041087853427922863940865599000013311063782797302022874570157274576575360417034185363946098531818023300190146552943689248872709036288828104057544439366207438002867107745298158024651866369951584682061123099506948218311116762659371511049413433638157919635919128177580066852304760463745323214902497417091557902408729181110829038397590144381591162281245538834070974002763884370579250161350534907901331991817128674407687587486060894648061104682267283885727906494305072297031110963218719234501839515014675537105401867078363286690424096793204487208089031937020028061077619442533302857298027642638536153191028968902056702711345718051030113214174103039859141033072039629975766927020829062932627148258211863473864162334052638002946988883851592121270694083531079978755711419899506885847199837270050029975893353341217257724373945870111882420104617564896556592236488121556773355678715032684043369857106059542621556482247696906429332267120668876988275741809565968820509536445948035396046431805195626639434991886521605352499987759777657511190036987434104469046617575229673820134557279959233149057535373210029367389979392531900128577671736654829878648392099309902673650969659278931264150910464154761756807836871448734971695709156941776205080294637656027271289308416681609879419667526645282685237248847625475156614440527336987351927405766506267139845871803599382747050582361461609872602624387137318687393677711466018300236717757269851561834864419561215085453257444739930019263467578860921055187424129966755087960333150882666212230126691194178761608552634486328039749674196191180197422874763201576179561737692452562212478030919871363444761387546144435269476729947642571638921640282052954547764346904485311988948641357699743349676241924413786022141067793206559836007530535319353759497272581820596262588851624847430161719270715242378600721904381987025286175525811856559466174631042341996835017417012164836365736872263016803341172722300946043394780299133987893292061165081150140484923075538934351814853117297093941051232145932877227866976220723955824548300568630581643892733348925211864525064347959985176349957020731097742519451954897736961805961006050844841556851979715879472201102141643667830127507985281744683357114931736890820256113495596607231108624927023734993377929599165386973503274981712081473399123626550608410959998492792790785306970303395806946840291233462523852147424881816167795000551018116413755631218615355973914537290073165903469499490124338129256360487373221934518797027493350178773451319553785827479572432166290343500126241910955939157954501621196732133983668920667287481450603373890449656710892930375697189747491723753477165377594479902914934441523565365017953553384845649217205426072278453851036849802833794310031549053450467723050768724811735579513798707375172094567607795615356887114460925864563758394096952938510932851772087573808342000652758442032068145984471872329117433856969502200984617456778449753069592563908772147595485541135557443159478869809517391764433807810103158642750152924756885234853799724234029761541681772424670799849826221511490136979741958131190371361055873260504489975388245349624041880132032098819557352108894140800669592599241594661338355025210555091077791194604297876691275927620573220680178714538597715729784385814538137424816095245796280491737152211916467041409530808695965810675666805957754186751837078321342863984930313321776687392881366260660032290880763208888711607625569700355542967907626940253725812027799386260518734485864604651644814822678229653578577539339261633280144084249884672592997434769195578459785725402792726265105867528648338806592400297821655841504626930004707607605285015133688489619003786742979033704826749304213963401808952427307142035305330099102619305754116794627961824092645663435761733342344886688929062088479743253902080011353691619402967211204575542437494970197134623953171449245127597292163270209316608177254109068443333442211961663294489886528343962895352514532100394090648869906115178506851357257414834501649008723351527079646393134509416972329071438292293215457369743844695727221895409057226322968052071058555818216079213947762413267838765629789320934139597127448486556169635155950408720192798612513871135982797513908602319552440944476188880657388912644646696906458751918586296069065373915422913237038033389193753666244544576570944964037737934600823017219348139076993685956032447999185160697985856597284565834743060280961221494286837724525275524084960934678329328010089039768801612712176690042386651300776639703629252530643750076490980643268709422580380910837730528226680542240181671237469526764485599544514472926781155261459395294152648255007484102037471002754687381308018105582667526094034435657338882106439845166482443080025665932507551016784380775400928134891036217185047444812414482677326717555693926418969189964797572225708470659234439412503767157884384397471049022447962715874577694957172480956342085320489866480863548807406993977163813963629594732644722326640811127555607440831237120039448454745153828337021916961046376257469795212517250960192416959771786381152665316267885013615572589995461014911716588762919990265264731520731739422649801429617039199214160356065359921487077559162509713070818811108354664961073390674366898211397584560233815166158683662563970551781594491700695327855468992479014635641153819858651631629536463341411897258588005415942530576442309142036911785328213973414688778737584849107027984665504799926587645323385483453113075487050994512852322394200172683650966329697105448566609006265371562134987602228517883442492481521927489442620702034943189589204210190260042324827394305135200130770433677750929517810437973410324482093355561909910379283746953084074354594001417184890230605601251844599823105114113037187210229789428073445301510976420275619128114503191144055992875499189815938611480186692846502864367045485896544720781717873893328061966280533275685146402768044172413160550342238002620689841391063498057064852328116446561902281240627792196361442820192464153673180776061005618791520185075405217457402501454524720955181613362788356068984142111181154897289448774435035823176073138403905247730080818151635031550653781407651972881072487020433072786653613876031701836918533007499199756355356426334551879663120957566782021859365835067939448390509193684320191313975758742145513995569818167387604360105448157664955593742841684567736202737226862176468316649298026278223856796907009232795002294074979836337034156100086473529809876908097598130268250311249532746742879249909717693118346816108961905183250376267139742215867877811566874451755095613221057854075226407605998642210118200508427146349584653731925164291353371603915280507693435361622506632661758029874215791180558655268481505751108321764972447502502520618437886239500902274409427947642123854366908524376698891104911339083077372362871925671794468949553319553786833144590028592985064592393257599217965463173782745114499116749382734192534056520315983335261850597655067220770550253651282860632319627903375597106614493355102461086537080103834127974463915401005520981848135533718461171159128076056988818174649692620838184906190109181402023717548760724511464698140507517738697171722849277566280148759022547442049029271690770785891535493650982077592284996979083383168124993144775721394871837128969909101524399950816343635280179793957009087975246310947459566053819118018957539223948268749435413781993471959157290507552055288573611816055995735197526587754346549899240685074181146988666488275705618747648156393618684371004966106420597870919717173001094375695793320523302658840267114637363961925725314697477909447445114288090205940192285703401972510584300510736701297272202449802582776151439109864522041474497184541762182229982415757073667479891838171763984074227036917679977361697862270538489315715101651925217187583105733680081489753074021305279829307746869957050975846985185225329732295503857333224621639824333475973289734741435278228190588011446821663874343120296058870328190084718405208304212274814495396788386978109472689305076864426752056004199578133606337927105081061947702632123499062252501272992891350860319248666101349816719281682247672479479273984944350700748309836687407416097904142865214000958723878576626335720959133007057462504893793796112903016903198398198423142135721242263341847174135424931955472668644159762110050069068597846941315774100830356128997260070873451614448191560986452486931530378205870201807102794690737088325854000139984625121610777477237632895407396372872552475538924345819924714207415653108596270489838140293757735417138108516069550393925543727984532048618580828505808414401142831998780404490746857960308762420127784307408051072945919149219088496315955611445977195217017119526019236349320946799748991237514767802488160905376630713856718332057195479812966633793666848740264675432321992801278291091145447891774194697583426637310327130810664929648178521163157322590212679622738742989047441200022459822062422776503351614933886321011750030051699874414386891057902386271650889140149812492899400905208575522086563362505167215790362781845075029859456446386602976333766887813363701287981348819645623189763938211868762582095305510047266521756563067064169969306187708403427019351997909348018398712074148182392928832299460166306947049306759362471006623459481568034504447976483428250152851103069719076958181923227751387718652980436089620068072460870300151737644265397531928903600160863653113719216320054035377050690025988032741131677479011881340495165342545082813192138373916070688253131170574515502820831501362526210123216450728414184237822434875916077183018547657116789308002337928380477318033250407691466522244892906063514855582928217513156724889864760345437213758472019641336957510190343826965178558348026760752922762174236892951750671552964465940088008283235754697611061177554034731345631001802619892010587228342911720005563133490479588627504239817557761250758140642818336453766068790400017070068643245330104629187376079892153638355534099399641411217953219285457330752767777848670535288420489609674036994940950169470430460436979216037767280782359838211430954733663235958796700491541441780265064762556271838099040637488550084930268578256804240783287916795370969058435564929895248766744071394245936290886054032662893007501964694267838297198931619908422301381076605076107424486533379674638500428663002027786198713290012610458702602995053895953077301168914260649844369815192300165349544210769758532074947357235666971282340652260208619726707728752654131025966141096253284897042212029745338289256405223016102702173828409269129204357728296411202365843022286393159925268915917651581890855814219119068906188951158912558013474102024230151106116964702256110915624326284149158464483959444024078454192031214801641653284298388597912252718675288674479588989040507375257105795564602744328859674339074914706364440412601047845883165617601713616069969645056716885561357952375104899636636436231587056595080288204363612832478238024745447636506952484049670923697919944511377137871302196634655542959467775499044790970818506379399262966118026256394358702009933565165528564673902107099818766350096500848540770563906361552317074187644382852377577684945110341395196132146269205053618722637878111986739163933755727296940087223064249858309451766923638173805842614689693924195691167835412799197018483401964214559286776964756950828246531298136473093655650388807865152831372722133355988594767758663463911129476908033749536897701964576612349262006956010597271417563398249980389223405668752229410607413717399232227503828495191814351681179972054693671999156691901178174973895408908608555178697115274371645458239708906126925193817253726613866675846423375789581002066106650558844847368266942052003897866967786552240009711926535447978025601884622339885119371407786877940524842750727937854939392450879879146132806271697696247646346648878298910086207004694680691568033183824507952046143838815828291295660724991463897384131163831092437147346939206004292170640953867461867245024052903104789478355578872970729495975563282329423439742393068486441130904334777001960720280399185559451972250868490248996088789980643894969452433805508195414339375372643510300966537091958322392774242047011453415262056870848244947678810211503907846026743752007437745820987358527817239178041774668801073842007671221918811706279408270216244238870731521215438515988177468325634718387490472703999772633962607835159780229472895329965111036634170440956157695611516151691303773305997082540825675221203334728205321996604863369431966319281514269162609418711573307382134863027846094415506483560294358491135478124985029636014069047397373256975884328146771219158441178720835956105832910841545512833718235131548508392752897367479522442102239564720134651373554080966466551714857310796936504699022148492761251495851593418502337648752372612724875883683247332124555421951391584786385931665494104577886451401160424444144824149173988424582717772796269508801364368468647316395458257951770533143253935171611071273153604408960065353562095143126988757294097098089313356115366568700260425970608610041813271471673941236153924222290077752334960765453983490446977669857354713175909626654758630056099350575033052951189023312773149296171798442209147657772376336484881273014700351375988223966071339497609537697852264447895295096648800750020774623542878628262915500017031698620663558015013777253904848528344514423852229672079047299240700866962621444150880443037483492450791015602832144850449081348835608523836578329067832174058073704359085538302641822683756577016041565370540716548359923912132413720177318100193475335033006918101350209660874041587726208277053479158515828046176596623227454603281108222151708715705708190584405120739695045457165840602765347174595440265473502294168759536095412097182163824069347104302241004594263682066019344984857620836887717274283963891743700480206088745115695279394062547321868694512264154315956064844289797297334677592393490011505449587007219242432571933341388155465552324219048634853674830456963628743710798751278499376946056094185647107477803000038358332069647818361687857011205915091309213835512529692448056544805337556616015549046688274986624207931140951638892599290873197611455064302819844382739073888942354595355176652232879149886522658033771833639535127737966854857288502277798081523759651060143061574793758056547015318227067955321098648490292596668429119732815511579547603446928603144727174788189350323972920261456211061802400340077103912127905843375934941236791873108105392326595556048585880511266879381355838864791705167722442995698418766297934903145001173181769668603378331470623160685875171523257913461248752383209724335708568966134768961847292404505773529221651524256715573945177866078738043921346657914349831673560535654500739492358638172025752469140461181498733043523238356814194570439417839777345488240536283829883765274660197737157626403721457467075317292046956350738532089773136734015704933287955491869832931134010597099655955795891798237374266997707195017280915098911148228022114388510529948296411377894552504436131799151326388599717457934364624378418486646323800653923249923536722668870322207616867123186812724948534690951030897103393718487690273157574149904701263891633362283669084676428785695167481092397246173281415835340386303049299899954697590968919462273128092019324782277408782447940928949594626394738679155222950714657744916973206988804429694846189187095621975981443026972423491535105129088129831853809049157919574556959493662458590418871980388584771633888076444379986324387632391832987720176717250361199489953115488711827295919673207405851192625830952542764712215460063590019713006999132443257620905053802310116442180047719848004285457917521342630322316764079950871435581838667496838180691102284346641945561541039754154802853466393606241650222298849858440311455692313935720892090610632763411719450022962830743661390865796899778635843656472386402882688880500089029547989540904051302570053831580915873653118077828777656531303447640723305209700793391428085932602148437270040968715512930342014911342684033903230854941343042149827900567257360961456542609195956172690555732109351183921737787602431224826935555105032195418827194373963318747399071373002266392212302996230737757343422157380692812817931191664167418344318359639657697792881289985899162605044925430765311001253064079490980808381034102703465092751877583101899489311158715414838892019619166777914664191203097969104354874187022430790584663481035111505995055043704065660000614012767379093443110545397501126365537529799398070035302322728485958902719836357838400412072066562678153591592182829809470601110441987719109399504666366726866390859693086284407917619802768158660599696399300583104607842832802381152058999052434919000688046498935449485447573248489968448719931377034263495859609341363108854749495808510792930954491293755232849801276639357212034683774734909357514382070094084648914896169227364045378011975277777045198947233675571652502433686563412956439111098395123985874913779054689637305866139685079445419026759064336744820066726363010260448096871400295309015425875019977387063319081987680160489394446984953628647127162541184470345155158331946588948623907620211345581474248136818418169964687822097132630127762260961467552130929638338662524131785982300845872213979210993599567131646623628045503383582405730476618596938899956874982790770678290621813283228126532041589341239975002192006016981804758808503204028328036473763921866743608000876198444949485453634556728546328872500211344936710209784005255302372503061675992085806304305864735333000751874537121013125225501471266334043216175093612283907198075325334311853718942169121339895174635531689694226201671164571801094317519193468309206495965133309922904501455821933505487202461670969001571288269326883881548434607070462913225990839751020753412108699524973122362308008920309617837796641569885236740632110427543066902118978689107742021556782442939623940813464187150150751702719292579357772227004022007796016299003254630267459480732821883056561668616865833966428516054262824019720920199816330247695234645366100763906146682109828496915416275005027707151092374764635313408630169184043107335094982490487562939212242828703198612026915955920716161572349067055560649163037058235775422494376996655040471302146775312572604010692836234618723504141375908823381060056696807765827745114992416351064164361293869594141456513740693304139878242704740170270473560820979901151040721500935074937527299419148560005800141110009869254881478376382428699987930340191770626177535859234301950459108676146078676702480759606854491408618140248075958624050891358353295958080253411186020612558723088305049484292057983272934074324144522237656051787899996022204826707601927151295218709370755081320872113213341340539363858063503317330214660096767150655804527587284288164102009961941407561044986371141128560154117493989813988060250543877089290354063822856635176599997082685475312911166790596288067972065663806128337250630457328914258113941227515330024663063194437614802530969552740908042629060446005797887884787293155787857620657590175122566122540240575656569243655923208974026023646815936547273919346519595287342814214060324121527520566903353536777834507296703090356234597012109751547856397651642048811228729491632692697550807914767797563532160898821158461309836616757443920389795131132253499901666850537493920857598002425913706590534274218468122444145613989326119987802439357472065850925827519475872621238588123240933596657439501471758973521696835173553229942653801857253963626088366523794249124533743124866655258163913751628089127460414346561242091501619988491008797540051901025807581921943395656013341703579525388243882931298884534931001914742165316389354311052177784663354052175024437147540498052939400582089913330458338792917456738300073654589180660404246388395934263623689725573248844706019345823984233149222147570805207923999551519963779680133940013328597061621716275164479287910214187120109585687018398522131380721653082048425434631061312551599755899559204360429839600696989257102929684975188791426375068641905673242058577212784804577289390093912988308393821418384539941025586120232300321238359382121011241886622775329456957632172978701123536711512651425758631249007116941690790897614937477130761667148533302793763517311167576132482304387669629135002306058440555997705395346968792045396992429062582188478869439017851654564970565859188938558150030704245369629894432517770674270841588749441630504718598886311781608831743832350597111596003478010453857379598719379908758905408268595529178716103008974965096962377585726166545560624166888495000956658087572980126345313770631197782282548095622634304400503890920819696682406600412796332145969477124653901850724577015891195665098456324379478833173612025738116538209352917104026387061356846940603132380205337164267865548012470864273639091611289211194227047815935203098264889401456024145774592600986189018048317892016849442094508523305182500587451697382959441130454361974608802025643306608376890535075929989300342656706650971409997361866253411277209041918371375342629285188842849460178930926792127544847219816106403554071721699088983424810569905280908017747539626184039085650154600774754666672229122143713377229736096457841816729210204181261990078644436533127539096217917129193282116402550766960623769714522487650713692998086352446074677500899974761395070387768367338041516982505434938707944363357747143209957400863534133423620285455436706229959925986961001115441527287708608556853625809648175238189549486486337181460554509309824822462474047685817258571385834416689308124204855104071506667194491701606915933773777302653446242892192966506180978645566125877111392687931845779911432963099380764522042221627287030694808293064991291366578787614081615979536062314084300353045333568575642381349054261425849889109224891313717443750462861358941094037081752183695857511443205690143937586791110255533996924128734101554907200802159532765417499618159791208484713857940457312688783361748543812123855098378217680831241760204172346793336586568870102781166269843260344816637327724757466555815643856377495433512853928175622476368043503519476607536091116831954207061611691464096913008859306409484137519423453806369249871748033184670962213300425022962936306313436778186298906825528255373675405623106142945714221960608550152881139971126665310714719842703005760744198983144379618211749731910817113033819502462900343227598951689434233780112284580854451786047885329361302909069701526328320264918842567171410915681669173554938208052754607511141432608334661267248071554197168547453599829151924406593161803603932412116467402786350661825097409185285332600236285615858043223630020001842854273132089644621479182980381566624225526852897771661364549116895276822101688512840783995352898080024054875865520315990100811698152440254372679465239194490004142649080370868965004205455187854869381869075716231522129689906611707531809713632269141598698593520367096047340300397301606960260151264199080276541939531258942742180094989221616394573461677254044109824286916853177566089469678532530845230094249444127590808788712462830738246071096137253000052626315203573238623639141928682885567026311406496265774793242567879225113324946265242090879331487550191573812683458351495163230792804125692042447155689833602784607159520777960464075656414953212089482442172840589742468044538656285054968004302919027046201339217018741729849010283705272575267891274229857898746870853787991165506696243038946908721902576720425955435819053875546110877776916618837287885477061614638675441914426967125622005895213233391167892466854231807051807761024766617585731075121895384000264391514217284653364292071756856441377381359436467529845705441467997221028662440755723022107066822421681803590644019791940186487183118687735374011384319250393995844166637355384682310744354964843921636980939360706255826243687624957371920746217508170176489653325380990214523018076530572879766151800049969453029539339441535382443531781360917659471634989594463330729912580878600340971889792373194630199382351527338239264839670871030317325644151755959304310006241871424690610746336154449506024534833483568534024713515359304627485160529942085059250897981983169758139403804864328356055906969938755263436909832416972724875784717909654905235528067635108839413018641127364326448441207943411544569009464382024862705867141652600520687983200637061587977810022422117663675458768437465028522511665941200012098177107850469639135172705715433772679414306232036559453836588428517715831325941724239847438033230711890284662086340931312449467727782341643674557304516187545025084034049306920483519520095400856673692955771913317669384128575766919442140902265933427836040087702243502945383584735387601410532711344653417676078405340952000974411918047355810523910008430663651224497882275400774123719903019008017023740728176806399407573780094128380376778255926387237533659335793820240649214333753928193829841356372463208352462841283601437142874910522942498529443421995279399631350876871349081481585129158847487138620590501378885484433326923424430217748319576391281655209476950079156035414200139616454685602078767474002240591851805342871236747779160973137866440864604535821198337374980152219341395907700417050730664074105601189135611244069513781150728490492151419719204491594039807862236049560282640143003424271334122232600087787916884087082245028555892234752134563829852402933992336720835270688154484010548644770327786728330403139581086542216838626051663395971948675775014142869495821097396564412974723208966224969920203969056564285686859732928958964723233223570894309766920528870497464495921623552787844218864599242983547647406708385512037353943591255427588236229061492842759071438500207156277830472910156040066229355805376987170274402475599788432671984205541099911185882945082685869458309000469996077962425362598760442174149180652236283842071367383084498158997269059582411569316162703714907792380456479043515920072657746576020686266029212574184187387282628108307829745808608796100956711345366898076924183253774109450554023011373113454135049100103358341519657730197329707500582888453228090772974976174033651388177842188829814436957422967711579552314743331758903099370873496837878939752011963147144174181111220172056356224237562566645443540306626075949063857633362239829387087520465502731450749994458233746967337793652939234940490901452160962378444397123312096112534921416749744583362515359196273643126786182334438955443379877650007643178669697255751852598251163087246806933640489135581702366431450882089309808740901010227489424924689821405916855993874559642945788046792939478151431873357859201771358975311618133390563460791342326526707335437662853255951212103717585939325348499235246369192491162744100157513300359284117125369799128323342274719231390425218298536995352808395674015349965619567225294022347033306960492918111005641605882884466373265821849672040470383438890623736145819508785703310763394202045175109941720046951606821519483536598217274049764405439117248098169936468100181673257311467052528077136763603795915785600728235055324248297635337827241594062217154766412842004331647141883117712925206832299592007598595976972368612768243755912438573636099267255587493097661467077670112590408978221485806906727459323082736945125427041832323204874255328725621232307773687778047895376012651866067289765215873930859323956890078984693492570669256331140051489742120259135457135456792875132115710790779120104519116514065562438651959086814884900197577176756981719414640245426802541577500452199767023976252166280941927217252257727015956816358404839577357280928493597600211836686422328940786913679338558559619182833390915772655921509932561775793058915635967746775214417612431142254452121064775253797747404677763009066732394519854183751535357050664563527276596162119892628092608971150750032020326736781523661483534445466270320486726667416014256637594391433527556028522029415541055326471104992553982095322340489575272338347703665459779071799458286456369267621800242105238861078148293788296049521207799511666703325904597448630614556235519254994299238562117898797229756602565113086211261791976692326804466903948642276119921162253858426947681083046132109617554355765571288101976481257750350012144760716960667209102344505508849227658254376780535604291454959664405662483566651554870151749645575297991786401591266571246015146137641013006204012123517475021285644466552704991913172692483926760934406214997094442280218247584448628755035021169466090998386335661802988029618937773942643581902546483552969105763006822886030414216221689196490252804696777335946487527487263042555804608188259862655179647789972819890954882393382914811558624511552214575437429150847454799051990888114963073566514744120155081741736275987997147583803080466906792951065924070241862051840826020505272566145036989368820167380537299254100205214224130274032423913213044852348420339826757330175737838968979512969589104073700746138559621589817026645180716373977000674857042053867247587229092240943546673018123536435861708496478417431224480658489967232762161487320714078539355612093114491841159059396437680839375282250480822895743688591248545119683702722990492961276202383681471109556302238240410797397761953525086109540254205371575387855538495455171878644416743319926112095481237581075126993654255363663360185602798383860043171725538780637674891148724936909839137358463668457672229758365950209015499428972023659687366774347350307357827984748077297106298022640002316783737340178743301546895326119862626506073936362825196854902066892895730723134041976265497224875437439740514705616580564890071380907724080547090804052050288670769216187773689252834562735387401910450991061750394435317637095752423395101866750610529350897496179142075580009139020086920158340055051848829083451445330995094385883180670519937062869073247521917478094813971403993835155421966986811929043572450465008794807670028790212577651970482473518252643190327842985904771894172799501945173408602570521500272522114996956356451514596591106272616358624543933907617514896445340325162008545908706341484143496053483043459295474553174497055584265274434206788662326674917250729164241709664546671145977518974637472265910039878635573036369646533217349805396221518609818408751224068951745541263525989494094535131214149887035053799702689300930304586200233324394485351909970033284482723229850025305086992723877294236961935278446595274483689071837847284072543531626512344483074698144328043465743832375170885517506979711556098175411200108233980523219708271543487595048133757377124968222475854575231539565815224166291335347542567968687890828234642318574089924331494281467415481023336787046688217340026176478514598856949150046759703511224103030443082883898573471350798598544803636804536106724252668269652383846817550349715304760568948416294708261537151067974709186349160364901911506937982719039085635304967134848787036550807151530389815660134587021245405733249200803462701368388265871383661246943134358686243891486948682661971083537148360654872678459127396217534325773660758443839630240831110521051650154141335771806540796564324679644052456553826081687969259834243745258845236908571788929050254666758375207637682936290809672340350108695998589297735466271117734183929491343260873740392196509683880749665154688215573333765894473981212453332292056929299765496852494269375610879447277818427334700315127398288113998613854548556887293072421412059247635210131064439349850524020772309928928453757349428680494691080817798033575216203424637902870666707796989405596737408248727295774735299687402009703491565023853289423667267290469106028239618419474857654085859566139397564730951686236123170916321859772865197161526959771089555147094242540649621806836166704722160695397377467797875228755762446186332532955743925812864439752184822550485679118122395648865565875889933937848325563562232099738306921721055071932427717375490707625978416980283034315485967384666034385033171777871534651154078336402499045947184776422685747375268693901960415026580651321415508111227170665185775124784519168769598968579476489821894206806054052311143373189286264720433694718325765896859024995402454970387500216409101217603579449842850920863667679860125214499363348340679342170514105634590454050451006646933205111399688219742466749404766021274683676086489393059289640165613292622297812891994231168712562671201503035387915288171258004314876843795813217126339624258269311692946270305747543057533555076964908811127232456692202162524066422512730646049233763101813562937173712792069001515930475182507438087046990519566160940822619901416886196266093230805773564977676344434506911410255847158141515084596576714027412459509500748576121304778517690093270708346248463729391998261156541371024414882421265898688814390093730106000449909379011026899218722865996751811031194597830844959975343869957582562761059404080816657407904181820654825104460322777302866503174871906422550286366587698130910105373938670614001811939798823021139086005533713756755085164682672233924850360656677889442574031440709232025758636805942364107277289863281811858998155172213765167116033276545179886344470914146963520627033176159163134049950423278072996920994580235434630005063917529427345436977963177058953501950873486859658465303674841139737846715594782393814289034004746864961609112786292632389774233635194650775780559501604133810888662914260200413198565632964650470603962949093719041401683056305604247749516918135207820846933526114657421069363004596590425005127828569277588969589440151836034859248554207393182380907945633635658597180720101755306072392336314512296560183470572710531839959391636605321822187578871427200191147307842345161007068784432248475770572694456670951904352664869982079981049178073513911840028866548572030170938036646896628573455983496975119603738764043487418593162243696174509432716501409869013483788582599785015524396067002350899479123942656697848444135367608116726350114476337286297676126778414042605814672260061130416353011842820440576364261052413230953655734294758723033306293013533865169500331318108583037057404011612700726893843235491121643342201429979579764052871416667071762627606805965002194539063999949574682934691095841584054661470211053893600539765246387493182034828889634165131504289332866230477170852691821534700502768462060669631429444820919480584412137032535210780975517757860753533244133660587129125459827215674325134902860150426621940488516409606240136906834994101164993126339905215399946332302275007767557501887701311668724132913712453695861656430241301318875560377386749278262687930242074684611406079796250030131346201593603216637119102845799490902067126975224250780412237815348614818785305790131200452336092169980028111802138331788315142735491602469674833052517006986171217745201184245091275191568257753774880292120522491397280219986419192163311918205228755962924227445006723357650491702636702688908594840866306118726670553324123046718840429749767762384769267232634459128160509085009401066054080295016344937624938693951780164712737189850498853678822574641224267292082374708096627741620897774672933269599565722844476112659658629526182406029312158193767037603165385375588539403774652803540891670503370119483080193870437605320721719835398335414298446353837741361131500545311794135943721856121146859125066988800419306462690930368893433006570262324804102236882726374722088255679007131896528492326747977985636635531895995408198393959640492778568035900947567830014364778181167995552733090224055706817630015152482574176526870922068733328269001393197226668495261527582019596786494279754489445727848493472644611701320619979358623118752349382144023689497742341417111891228540935088411939755288645316903390472407105058678953693627002010531209797746925602141302393531726452607589851707163548408892433752498636029470065806722692154869391810187676529111794700742399326141661245399985940059609101464985523280284611949635641862718756887611112612214222341069116005694709003071241146159023326338208065854240351027119911608365058357342365649777801279760426078664527790352156944400919621225898929948893690343870846303119733863769407255615784528083286088053982373890251253303844477934314495690217196681106183563685348795805610702386420101405709920481406557123701563393451939488046863552432857321863085922724886699753102171608868752327530980071421857513645757402780549410054368973315881617778598653993595565132588659239430680458077824067093645806085155752019194680943705669525512452278332261711014614129004340801514270943228355465442684029954289836483092668978648147137620592377712764916119974052064765821664034604287364182256839593054957858527660336774829349754953326927875517869298756968565955914844959708579527671157625075816808766880597162231119814849604098444967484873267214821881192161950284285276399835322527594680575161868235717133667683263735482706631027886998386164834768950650392131232871435362193706180046135584486939034347915259743559363800106905150361469089455698474264550207750684689743458293358178662333505964477278316390024932238971609275345423571857069117927273812138564650235937169916898982393977310524635049394133675644876162129076649404653817998197059221896734768557946457186880951300194814170375991533815604121938212880577425990759169349761033168284889692534957942331702460464523399935487120353218186409708331114798987154469431032179956091470647323061903935902955340959546027890057440221317862514171457837224909603076565716071233990141176673888105991330483112695625949508501634242284179271948195121139829722276898247091946124683192738070903226151933154037337426322292419243120365151766587969020459320682673360987324739853513342757974147764122205210213893660852071324470152108985165246005010558627279592363771785769475999067482906893252235037893536573027026991380420874626163365435183447355755994972276444705212544902571331938054385636062507742295640550248795349118352996802578682564389509749547709753552375037167872580900547275211364560876260799485862533864544291250318285407783608300878001475908429320087785634188734204986478857713347123669377990977669861380487399617309212884727518989481827202855409319981209975543198527633971386574444389915708326036663551579779982080426822868589526091582734205066778312737533394597822706160898577807368914524383268930303351374594065283574044270349740403564879837235662670489534032900257519231349067919934195681156281391256626456879536208768972974621551575629539577208254443346450078548012592244980469798774376283506886402834038759375007550755824971409691367393930203463217696706334199775695401993693315224673145968615255133737711341077891971510187405684751649712829387546891430197847451266728717394701013771422290997586289357400444883791888812937834913201407373140427191145889926355079890172563667151525390332267883293295022615335594688425821328922673448532446660547396106342725311667589160040902356377792510633847478174728515159852972091591520488131774328023907625763653926458910313177449766674092747299066289358912127569318400132762785678037407974485490722923750111117122724839518876037046010622200225461542254724308540390663982000864825210185592483704697572369818893595727437038094629508574605055051773331287319045605409808405453354737145320658057309154419844320279051043085700730496226546807635907298670943927658922368658087190022245371163489124433746047525756292476430576599887037403511773991949643028483993228782932223036248164430267883255928216873157076506809106540526210062297414127199461321481286004656653614906012556445944079519834209495490590048047445154916788294382137329965764378628413824855710621874034227205130295512940360506744903723163239277642275668956752924034236626160971341464074510098690682090932150263644687595431601729457001890079189026429140197420349764671240309220834060161119018252651484371179573621726787962870609627046745534316763872197684302779331993105909449450089376618380800550850401925924169574393372015723209582573280547665563183568346001019798935024719508176034040953338299482009038435839340709510028778446258326033518339643644045784758422333516366533719027787325260134559748403155336722413670388206220137476191940832146224715708488936930867408308858018056448694327805535010706993964513732328586835601143974162739033272011290687071573154944149489609828264281188419978213273168222745201631195451634942001422227329686882171882287548271530573875892303413749995285184441747723707556932887597536584899540965418401051302747750244970991238182295832697591946739700347294142107421616265207798235843733675997001210038118981137077267469760796937421465949832858134789886845760229507834493776141032023984935737343663788256251936165239040591060159943223400231913352058223885432871199883987090313501459518363836920172777658047866903915944778675410736118736822298868897393756990303438246106234546822390346376846583558591615499755713773978333405089226169600048434233431359170449121100888647151223327117231041155552411941333919743775013453065158746980034304457958095001088409813526787520600354708935701399958239950202529198626034431924122314544536913658024682129660783947556702459818436185124940842631418307462399145001607995476999457645719722868555782668866643335119969938598186790152329930235101062683997376505263176418288138951745826125416376498018718250409518667966340058234004580315446819251693977315970529329467795521699772859343435906677422200419353041875415189987935755632433204892276457334898751850307985567069096189886270674555230216601169065497273068651174765403652404032405685633226170767658692014271063760409049739042888765785319069412532038349257372814229842660363116379163734784903416987702190151235162159581191978340358082712724232704593759130131222510482033734846816154704078497945438963167242764284898147235191793218422057663375471897576085690431657286343919611946866540669100324781858314270156560890609403396154140315905718723248878694362059343182265955376162849270154674421701870072171516383208299744238396664614615432027617529542728427590692486419424671664229859012966199593225323119596363252519382778822524579454332221775994315085700920840233016830952502049197948515333438049614012284350706327735098626700487902149574181759444775552086023454106772096342709271619120203319588474041450409319856349725127014683220558519024941137683277651960385666356283076527929520053545963595088741511364651142666862364770561453851519515058064349552463087744266278498307464776949654877560261245290249649033972649136133039914242445628077525757024730425832492340573758241774389683952346609073668709933225834764328713856990073593063371850268604854366153700927243100619800015794504216711286403800645623240876807675657677599938311820050449107878003858897852123660877086578372144650420729821323390639615843450580324982998540268796024950340780469411797681804190402482153125536535092295662031150122773608598176251505238099669388708381208147119460071515162840668047319063126155258077628542847537630625931274736417115444183025374189156552223927074615249667716673904398099155589751602882247732302074737963268054748898118348975853723994603325233342942232121605821057380604505266625055089170615560658839083678646922013794045945158941462803429674789046599333153459151636892300309640273048843526956584772687616406116417911286267985775209711637207664668488842944002921125684238265376306605076237258371111474177209301377603662659388934384689469744260940996488630502647052887166533575219044515662031907650317341873840589629293636448538892911616335726087581648197677395738340660863359866723418192281536474856414896072041176914860720490301613697692725286788699573199064098776123625266414072454477166139048035249798652642151632492908409301349877202949058191304423461891765312954416897790018612845983781556099943073775777478269296385903330293491679230981685451789559364118619258985202971186849134863902968527967418991080828943918922509492360603098994059415982134099131045643224087142378964689187735074551434517902410048764902741880084479586174776276379410419016255412427594879365780147702173275907241329395523858957525850608969651310477972352190375799205290991673101014549379445265937038011493878390393177630494730758804302961954648067829505382166393918265700151584897957953063886911818840327864962436069372431536509094401012986935433285605452616701995802067077693533691715584286482539383520849662365813006887065615716499435274449916288290809077533662044520678747768501692388832380052527648215749620644312862897854683651823189343226297234958981739563921765816358225885228365788643290563159249998203083490914832957881139373150267368320408505925719827765022594246771746895180860483890500983483748622625890800304984030069467947489671505303777465779280159832447276820060753447180346471620994228299338943927131003850950080713196201692128775780018507724518859355689772591504207255543851652271706615148700743840791266038328201714293736313830414665560838872591621395091048677274201481274613989665757360214876563945302715932010636951448314651547093246552405578126301573321856729378805384760570709914596422170816686784105933218313180759799098529259238291249020743330722400126594771583945041307573727961204402494998058089125088450668619890106851057898821392061450250261725895288144849867910069771815498655204923371511095194170760837496922916929080346199707414608891918170236521694942086145031684102407361082609926131330957982364877275132667762198700753376412387876036030820358863848434208341050108918439287665661418517840718109152379020679828570059182037611461903885388553143595528622795364654296953288465605986206962104492356588906056754721252510614824858784314418914757485370964772433779370459213077748486259465772848779314346649830159148711101093146614655914310075207008182302914586712688174541453097409976768627477980133359726000197118268217481757939188845725987593140212557558053013629879176034799612021419457676935249618093978512259314359259388685216872569715191339474458278549425845989517672840910247232851671555703896233143018931870951919750969084667580254316994538131810906648962733482238570773853705375325294002129454003911532195317661332283525634442166055320765019939256833221621585492663586006489786707564893107299983475247554611298837966584593308583593434511857065838957590220600670314655082177299580379451613529032564095302828538028385652486577393719662327358627322397764787810053307998280732084616280862695754484432749742201371962204076063691301397864357740760497370929703203941228736212007692256561343729008478239508642725501115684196928534901458921684481192799545173561146765139381013738892746089074472960688100571207103522818934437103698034149795496570186846122395858290475798228707921381885958792365033314941695381355245184181225866578901131559171697532414533261057662763671653901750795447407556315289214961642316625038571664312604210564271285992377000936286377165472779674897552760909529395894245434369874059752340542435564750696000390931591138552835334887811123863352294794338952077994749987071139991976604448005106209124669291990488160635567179744150618211779200133425348318930085508796577052326375288704290400844476709192626988585007486354359024014949567005768485150128457598437466679320886377877228413583023297565298037811479604961065619815506498711580472074213927226839188785465854967320423609825602714462090810599136418215997055241443893649919981033491801385101167675766597439019070082172658159518219493855231621764574107179416791170275350452932582524606464184669948862462241762369225843116970979147986844016613255055141186314918794690048987130104419075108666164043668310539585780295806960718056025344495233026290584019892155729755137020559330180749222087073084715645430539127154391867303074130086349431083084246994637881738776853473387176269670099208221045085659257852466797247638789266772852817646041975006470098493050736126834902629812515425175175260227554286408187589043706333255194783050841516312697915755045449316607820172253589521749547737220884358024197611942658700876913529396666802851627303363621531854741655109032132994398311753382738751785906096729418336851485334254048573301475881119213188693555281698653170860663981651536748637515411897375405594621564410886917606823659568221231244604296517599525482109984108222910358679773077534992047476084458550845170835248358415762525536544155637965188751109707480528637215591757322420201412908922587613081998098975183683558247309327151966383626123854125474026632526632332378305309627978127642790759884119498452348085449034831756264190437324456611476435096028376338609241029392070807681954934455443206748426425309819113067797725943945450636923365979489426452110065506172326806999201178350392521409118181247342616171518183829675295350458259069143908496557653599814675274384315957964662543114384194569202368306137359475598835780860786609448062990686479101571474579021653867819422279402302098345620353752265718515530366807172611762323429617034632903112616768790179396398114785329565131628244478734689525561776161768087342442687695350592524772606598360359001415712773517767987369992111013351685862483071842326019968557107597405517199773872335576227144549007965852051011231677965646511575611022293106757463641937453154643410042917722157132855912402387167987571103990071866161193710356766342896948761927097902981044638308777550043591568731579077758128929802442515460420869451095119944454892045021948676075921034436036194617010818509345479626332114434098516597489980751863274662617989365608935059947646631919681858473103167999404373054941075982892061519360204616421887885922627712323134557806804624843963568572595475352783927131949788392522053789494876427613903999168696302707761611016052470183874095579383785808336381000777617168116612208215814396074870829814657856455993182339295575196492775711917855829490976039491563427063435116846749786501390990679205457122589605664889806187570694041793758066514494927143361925148643794438140164404166676257374056485677213331603865113482062814882163712712179168197437271536116784736299076723334635522808885355105224154425652805808740809444253122188334968556365632512267497264700333589503369495610374455627725457840382773792995485884192026876863257305758080217633399515657555117714764807786112840048748630410709247686259439447236728844040861481988803596497629066819596118854650341688710301932819388338132664221909118291213380420975019285320617411842862276231613716496425938997838987836698326858432176151407172471875602644357812929696326350672053686096192901048401200867735940368290901842121481217629967245391854355824167765631694451940076873558387970948121563966928349274077585752434258206600148536598320059208233365098930211551070240350766525402127571059852431980216127706374722394478963974349148777223075059660285099125259892797209793866403046090138541997409049882108477261380655950346395726605868077417586737219049386053416379205255046535154748332755381334901791138443455646569304410843201375560841218629192893824934864729502254199859208829396034452538408572699045443422625025383259028270382516716460955116414758251639926347574982712134332967277546988648016320297010759378655781771220210066525563334521519327958484139879360415089310173070689134074875146829323350219787160776779628641797100102899940088027467882594801690413138386007917344317846590906875384964622375768931289101322694541930804864843454088210897655884836235872717633437931906445029557992522765348308321925029800766335879352433674049320600389317847491889782366949518202028022300707739471668154906147821968858155244613092790320246700805473372422248361518462274427630856936259685035126605988212669479962942963821940225976329630516146802266044004927415964761453710098868619730698725272927551158379349431105906308333311120803670795072971713111432728687679337121562869952757510828534724215083468150350530163003453644286109105754528848836178075052108167609289225312330930237093816065259099828515573568037221040197653990797243223938978180858328068783439275193389923251330314088840015986993918133012133031047647965269586829376561484755623389269207848116205285324251841714290315404766475015468095664448533495436544742562891324520218891481763607021523031131932021501926526607485364231614938825151680953673570379850969205511010643671128526476560734159000260336534204709812679376333853748935768626933580817112674708433831156595996658169597722775347454364501928456133887925660014522912343913813352433314116032645460617020575260511476151748182573149321156489783411854622115876058194631517211676491222110755938364096725893619806635545935323065840723064229473655986747964912262336106965281550204001957309891033100662653243921800404837858021603935230793571034323471276010744591425427627982612534419421704572803531884854205967037712058026428883303115210401417812753805464788630340159773303434060913700553357881269089069857421189794935710118972320450537451539674559135139615706445233561314652190275338263047511393958225896416056663819135891068275690931575279963722624762694697797075241848866429723455875775885253254890045635215089885647491082643162460328457797268403304112701289409523942561210694579042547094593746120252260334862157138700668716672558401120844039879687616099369508126701416934934814426442554770214216611638669761228974069892811801092337216834414354816114091514896726623621314798978538222143762795978909834168258865088946509195666697119030102876402963058734065305083355760934262866932498521142923108932569877549595977143502008930541001639781527736879895458501145450643888833828059932397125942652970027012949521100915218168262000503084621853761034981500863091049574234060678647152982219609451582245783186961766859171210713537384217737354630365075489148709952044435642398667106198951784243445828899219505071831156897581114030102370506606798965072917105780358270208421263224681999542109049941261725068233447141124284907632385678968428770686580016942686655051828200486928432780578528039159444426576891991489026229572244136815385000535291888782357496628421840100153566649262730258756533441734064564965829636740960936949749540511063866114105716884058951837595342058324039971358651885970910090961918024066515971613487683791976799181832841037103676631365159556811117358134368858186127095339146948654165614218682083904438393193763676243191001043330909244037951412712774442678120025735010983333356608817002645350836050550206394985963738531704743309377875611266341247621270850862691936509956433932402693028953770052977485909848956950787666771318138290246730052714921500809930596826484051908948498058046062733536904205482316031971866434492133690767324933280032615418610543958301438771575817049262072356917170485569971340242955228622952457892681376031097173091460688755529078081178773650877932967347608276179217240475861328813975311386146454609883405062186763405302505630163174065763198285566210455484283231683113364884391752821886212895138063087277793438365338540564906017095933803214847840864025166415877447448323996431270966588205308287893849119183000749651115512637738217356152634054326091888912531190804479337854666118832970570876069727899313046913263371912482925077825410947430469079954093220947079273693366196359872874849817154915829603643584133293707480754720369804072378531028791661488644991527934048804483530801538675849793478786219506584079540320771932299479131877451755190683107319231815727435385242010004561634111693196005211338530204726183341006863704210197293344191520156675368762008660516687174184486361977169512893898053680173326596161127527494087755504311504648623181276525431575713071792385549430636313623136447406729371667259187850346304142402343681649381430138848281585529301702049298784059182680869478017995527597179696281530813757633901297755541959596645000043265306796388034431589086817286792399652575243497386728146168130611400658737250947349674367812097880656816815695183736445578531058290597909605696870467610483160651025528776698634280644668790046406828737870623867366334195253905938515093353660239888374976999396773858139530245139567123333811188656603168095508263757527790137133268680282456202374216705027193182974462101774443894579995774382677369582825606854520829819852952145939009528628453346011090826179197498656876193627635475106370323422143759217342969900545962966290693563144705768202435562920278198884693663782032468742927128797818166282612238960264684244801665267749223081871950280693434485775474161839077315880383598046278674280253781787695524500796852974713923016617227624575727326773045459435811839088516533083026443940872184708725149695926320962084178660918443496409394503792067758162056012441749842891560685448080194697512696089303055258482469154649041712899360782987839853242497370862385048162288272642137796662246645882692828315828203508794798301605054387835687381007058997923487196198825143209843576672353814566477069572773616229110497024348036631801479204514280385580392655641549739213858214266497373122688892070273224480639392903128965099227361558073191002489522898332512060660071187348356899927065721963467409116892924460164877723661298292042317563205616762546694869229315036031005041052046486193807026387644397790157430406295228975414354833126925217806900404773229804102469548696628891244888330445326489632142598113288294528049763348570442810246611639246626386936999523417569175844888974920647057875733543330291726737839512499412024070444850767276520507098827022785345968721795511302340384839074648203871835938153278941916482647734013835034812796071537440427764558484079015193648261852504614546539447944598682315076709839392036381830926207064565817656456086278991411338685118958477971091425405328092763213338959092610863410952133501723145633758067324547728968768831262234350786817707343314675367298265498682738615599726163628277868846183502693675114086797034649369074257289107542246277991117162860858137392029843672260799754610131448128847000789962940172752535757498594557566656754964442722096227690953249853845710177735625271224699485079583641757629054718133693716054854062790438808871877258326429621727908009468094666956563175320382478840741832491860124803439182460329206354387179844845442831205864396448472183459588053830750552210492606849818017397723271016337585146601671326001817990656789772665183856431081790898471060695215257428745851777307355845308616503893781295567161179642682344279404221047558068077988668674069223630606222114279872411973359698278989023861782588496907062121488775847758220301782458413542700675380639807062791965106858699803035751416931051568921139652651169299245047057459309296881990447886268879553438229444625724953853985712920160723993979567508198062965531445633441920019204934382322251896398566656009734622372541918736672365943027473987780004733296389666874611147985177294187203937562447118238254217978602556118343115146221617581161690302835737306224801975078742111264952406741025090407360046118625344349446836497102956337122433962269309924977600502062451813209896851533743656757530786919997078339183378581450669318494792010910509613344551545901297861206096507885060449350073443263942367317015449544932417297707481032553826434143898602736948157932234968219978375510671413642080295368470941074030727031655765011048316060446127447533573747715274245213522473212088381714473834603437394651703677654174248510764298202718604271084944941223517904412554916427875555604490769295540805453402920656144206145609291203735815827045423297048414946605391432477023051404062578649110699417430779839244691560575918097731227732396997378882451451008855774834236600646161801234269456829696251745226341804940915751397599823420285368778961554637192279409453821833498319804054452688333863974314792688964138239784732377097121919286377787876314513781850196195617182993725736738782735394483491427147982500464602167364985117189745738691735808572109017696000692849316373038189400312882980136763686425821411888622617421058400770482494691621088626446776568488327042814768060303585553454578656908454465850664947897850422058932862709263493362325041051068850711479498770825802752218418426041434023431263577493112726728963695071900989965885353460969033060189202910594620404672459678170705242544545651372461922760934343682510997703772934881814977752607896517036273686046371335240858843932510397064050954999640119207972990232741744063865083067512152175345594192526681721345586046462220472319390041588839716661835999063184039740995751404614330323632106912298403267034507807429077577754285990423997384290196624518379570562880812763466244174830150521479767263781032186086250723063212295602282562090426460983249556852256865817691279901805124175980191689707452719757705237155246822050367116517016391980850835007364433494575259724837533866437897095956740302442757240729366921655705070802430496805629650426911455894717627874180035491143076491074930008654530726799778327814126037334746089671873631432891131564200016776459640083522584003411319505036974873435534241838801286287038770195136136766408336651103791927936757145080076663936797603809032410565459816808368559492442636727558825553227371945158916891657636385461499999335434544988198212423286942639509776214322246513789265466621228080386621411519142661703692233009033392225787042912236327814381021738020059482121151189472369856919239252023449941049252148975003765046116397418781680680388351263044720537296542445822548088284238787167035847010463711773815102448380005224070656425535561086633986446876883140282475207141496891648378094675764727101274157037724235655453997034244003741799168351264900570330494741746853813872821544857719156654311176190704668692113736747166922990521666832290955631605557295506360002925965875667411635489882724150972706286338077968826574818521204066209392934430795427952090975151039285043396475011978380983594032386363718450831475107796148697278008427780327477844538536655952960173843707309618282467553525464910539423111245313842436838504853423924239236532400367916744004538086084769723067343861108012906527679663364752921056729519293961783875344151150403294799333952989233690990540055588705929680002731569289312990551117780749065242965643309262739015930233314687784931916415196294728564958806757854072816493358346193169888291714054781204676804845356755951966588915735375003182786135821888586256310290419421105775178003543764958483788766482493315344090209049404841405089919501971175167190102933042259639535902147748642620300691478552795906696659195834901497643836723508869701905251488683027332851044885671534628450889924912106863118859655232099443237136135964978051384903415009767181860303524878935237593931468188123500119605654709738664789411108643504587116622022877307963163987817136635921043690552974938388364345933726991473777576736262468125097602563642738025388245460656529754378185327464171729503588343686639871022820272332270545218043790774244655137114919723491182628423781679129319315256681092454168438985512163560139333362133066073687328287946671871436569686327655192992750004944206972653978067580153759115108832628957827465232112091578952830629637252756881514408942984680049708866346506195105867057481414393604920867827499718182537870619867777735480407624855996693020613464662312645376344988172775584044610985442807421623971751488799293222966886383723971802779995075338345855363425691451236356937871533882176537609997333147188431482107314689374768073253650181679322718294982686763955856775203778836548802539828504593218017422322220204665876521621902815465620399143386967022711394795754182802162180964774464507606763359516088448491076024491829714337432482326192325780652228528452707563285911426063562391012627537599593954244124296120846283434900148821226529130429565268367248448610337650771808322298580118168044163935932258189429464252014688025585179790835777227406517895328842687695374615536862144486988130360969198184969442653449157725117086323685073665003818060823355009851034691014637253286433309015092487376543269849571017618414357587182772314910663849271260214594805942065156649643170441879879167824593649012783222452394394727370500499491442184391235196284718236485268862999898981719681692069351419683039743913167009823891872319013045359974689799325535069980247530878917818207751532966982310184044680678188851256113760181883295020083557074499982939744234041512109123403958304682857869511930805722791143736862860656408020944531939045476748615798946530944024356334049512745315109911311315189986185641757555575766430710352778152651689326681145035774617086249637941118577366573863430682078126304971074651438444912635996914518722810542080259898024153279554414884951170909084540684826037392954880213549254142270753595797228960197428597076147574965768631097363072462828222716448514697162582437873387293985174466911672452181632764473849737210306114303559544676138352098525317091970617929337623551355393674049114545371744092255432575052696916398722061081789104394606238982475711264836066714772839796334252753765071261098694104623820299169770522776203382365913919989954231608921843170953799736103732919266541077412808593629955533788547960796240455847207203472918407898885423235757985698872459874514159913282030048032979411382688289216763396161635140258353711800340067805167885461266957714246566535512934373382127794042295413457476131202597517563283780391011092350385091051587264596827825526786278238019606671459675287643215569617377454648749215421789021940273382835709316612361299842687030040808977220978209672308550861191038093108004124791876583850764989379720414805863192839666705540012051379170559444033648119843752328809049847773275268608539732823958536210737491028145188362550270851472091825118208464771321088151106087462127845782456788663240573182683272193304084322771920942216789628961042433504990161438694781588342480577806110266787766583038525097523553324559280633158846778868457902468973305932892153031024603617403274843333688723282519354580326005395876976858251070332116394419278727742809717447653504988908205335442633542198707685261847001721083620236917785021150253685735936241878190367714054430807789099021701843484329988404953128794782742012479423731633622318033822372954771250580556226040541409461799542027743911881857153745883395308953781476589827560179591781301731399558725360647055882713793261694575882545376366357462866726564299046985721926610349048793372085403617985274280815754004371668722888983755974134300118639982120866507427797831151550049548291083556052045618719101998210019589851343633842541460603736663326965457556337653446221540742846663251367735033520662024140944780005934953016854598975965050142470493509222248128109649058582220526516834125951688987671002552176130377946434998319647106433593830744150845963191015656926278637984754303135343240611305024940248740000602800080462384042484900996080887075722062695253265144783774776775573447815777372736776622030531226483505422755312622391227055660848563531101555809055985033169495862826762558703412745106755052543787493800746497168325105567911562519708399939891923059895793178110172869858425973222555064427729602566253359262551255067123617488688278949284534235186009279199939231181675097953148697073175593311615704456575703352837251112813116263695335806302694806208510113339073457911086985225721197878157296552424216130747409730960127560307460679446315105838026497980154931123452947815749101475793930568445309436682331570414600967347945855783511286154307153985228732534466644758390310555270280733389484710055009931915575954689014346068194846916409014544802174551415960431288742190959080216345368544463632971178508401518347225620451546738730647324935463771888026602889899981479939717703873042767945023890849271748063860093468834809410275751269063150784286258476779788044308831603291853835196190297585980130820719736806659849320147864323380419984956892496623731988591343932674707322658732425473828836459021564303397188943031521753385076392289217468725487119054202916843410534294231725223165092522789270300687373641821545360034102204359255268127358897266562690696790437187573002846406791501488877658631893719597218867960678248781647501080965099457158310828579651829184725107412682145627311026974002227987859680710959860039964814729758333147452070012059815271342244241979322906647810903071695649949608972682531655187367600002182463311741766684175401316679608094717505848992486731616354295137010259338816574141257997393491299351118794707157678970571150795231124147521006068768633800693555201298470011090401397396460594989750734278928092020305744481812460819707280986669966357597710590152820063046857549727315656094779392726521324226070460609999173285129271444955525405691692140335656804531088391590523012588610555210552963765175560425845499653635935369269384563620764325983185623200704410548950489426256032261035945706408248184182333585207592901266837529797733073961264354305380005033505868448138239038352735231133302292340847209702212357743864347642909847801593869495320043196903794153459059505168172828205034619834914219543293078724859273398841625341266955729870385898967481678768793843084487709365803583475947398203889686765550671593118656886362642282526718652159625512434778647614276893764885868536377745975702537925825551980042597183563895567223191946184704053031635204071724529977102207688431137964214374418140819806163868015285313344178993154009987295652348533237908141231244765729765807515962242056415988604293852189876879917324196651349484047800730094304165033001674494727927635423427342421493677133439001396582721711589473791271738122805829749488131293876691535566351371715250710019049329591750114491845192606141736963755563205902554779617694272397737181909536623169750429310070847485740196410648673529910091104293473287717707256486196615973189260221079491721825987978741958269374205933404506992754115155518383323923206296397864622909489644509494255132186194360543675054720271631716529014772854112177786492927089874417335604320079843945612947020277597354853475403743210144134642750365603535828577576184350709319026783204781389255378213681189379466683544696888049888028769736153004776488428569446832930026439281576174301063437890713608972911623244819198460174348378769949012212056639844949768300301832121148332452078703364018496728145570187888820563091169104648493283195617832103418081130491276316811395594072510106952883087779934004937682962119431013546707084030846840333949608209675866977692260198654261508215501710836612393086052328660297929516664015802701429085577064921122571449799377021875075089629347081479072574175118846025528499869308662833689233007501177122152733212128902918822553777304416699192860525990295349652976948552950645003793813216735570541744216323982511384601616606635193641750622556051200468830103120197523408494792366331430650972605502490163446180497128063926315812545897154609605292597748653676943967149283345718124756540714267868237545357953230228939782470792721833913208621803050492276207788182999280364257201968776603556065343992047721514184012395910959687468745776497978206622437765398661207463696447491659235963151370733456513023754646453781653983403733113950615524608113146163774419816920160053395182666532070323228071279731856018900368016892877800082716944573439922713167635074457109204265761836907198927216103796208745088506186348240113051246791728715099360389793045660776938042182033335562897478531993675831672538401954564213931864053627406102622728691181435305994502299497963374917233250231691998417311315985366430360611937809208271769635522531125888784117073929147254604572115616539784274613009939463958013987913580537541492012514049779053868194101955590038639946397019020285642944631059801802057520764207770303045337633949651993404131022321650842138057639204841211072440261464273549484196693495952056207306842696379647513164755347788705790381283724024049329412245201458985062825289019646099722072948291326936460397594357532596036126623995946145035051031204634371685007875382798339136910902856571038911564014518648321690696547518681096958382853627417865718830517855393172452521659414037887287218358585273011947935748982631452399716165874384374692938320452175993817734733135200201072427083182239459154127609937040445446286631518438783122986422250377257843220206843756711583191732515139433186758395410573638385714477348310455796142068564649816329880245687715378886421660938267799593373876302893161656949088501452096208751819669916812859097260726492044787748220934867603921197147171859144501170249157637922667494758554649075227709917736802501621081261560438950015386305511688779286760792526153812942578872958524962104309556350037295907421694247203352736007872893241517308469730653119822999452854190096102930450365199315215570220375845456262502431283803445366431355745016325935516589293259970511036264275155502518861854253925071686519814214449702350563686816413791799446378838014544486346384642252428009771595660123102750516178692561448816384951401792623349283677898452115987002351324479598217986735264583891561198676742865041686320118499319871746134960901625609075000305278201431313838015656682876990321860930099010223813251766593406689384845661759025179671063695995165459115750987696291832398365547662034588696401630492099474493202233983914717300732493608296674645339726173054164784977913540620390209086063910827813151367962551595083161346005026886863006915110849841345074080406551320445518514898934877505273745948082167786360961477319693718682217408098641782543157490018559422216803492827919190539689401933228377930520439807250453265772182284107022276825951577318962855502621475569986396234473753312940782484252093930860857382594008443321296415199180504119766858201611373988507171284485794248695352849482731149415215452605468147425961161972065243972478503017933622905324795210015857094131421984940769373392058666835797525719049703878779379766429822829481941177057666981779498884799377926622877906839289403153142793099465309257684369504320639625001070059525633371469677553352792092486150510274864165665620198145109613248385348060910083742350216228868962249452147313998392234000721575577946297172041638397353024472313716688521178683785669009685771588278653801332888352269904402519749170060812634950388890601242982996791587862914101793371733836629615138172633424691847345333078296171542641895785419207817651901772283490777580530737971270866555229571232190178041436235065684480973532422249942834740862844810873562011969315495981361726326619105780970353164516022360300172640570278024993833384372036106950110288250869786899890503055437642362533045042436272960121169992187184677444440502596718555967290818661518252399287412345723657872254470995596787940480535106701291376747897301459037149246071238792246347666650070275642675515416608912145238912014077996269258403315159114780516181839283831360746408369651853682328910907198254270104138955879341520061923959338273326261945731850112880487343587548947886339418384390306642110204958230581234777556094523950091068159691135804367143834634581469434574579986441556044172043258772890215137002577576931326043191130751347822385680775148741337339034054920743055056148492884347743057619266704991682924460863822168162321453683524273562470705552907762663277065155613525309269579072662981953836713534162443720338533745696864457193264194301175567120517596259379469795685251498242594711356168148192259860721995224708259622295059726780912610687261608984836981816166942323580104472147837154285015897649815878114206697515316077704418320709149243055239510252848058390480114290950758143244869541963579581017675598417531071039395850906980102529190101569654748729038282169298359614551606431220157526810892928875728718576804790526581794095835688194181927877103087685690974518578424397700006538010598233639641169635376973705995666724695724671832328190855210461656650509595195104385212672783744116341860451399607338847613182097934766957432182852042266971311745025516404496788634460794576016062906890417068945483006586341126245510623901137372355118919286972630923361964717750000586417016954274803445787216434888423608979403485436066587742468197112825321306416856416731816012325885637949197159159402074141810154447332882240602543523933152361202714460622010345540422336024063119339150862876510245218790113798153058863128862381832336562271451774784112189221758552050393275541879748291559832240884024326734490977717988516046661686006863852208842516530698651036445753867698112376875134990368135840019206290772564683912341055057316162634898875976292174001408871203225009474287610215919956380426101598227175029660492355989747664274042279328580026259446131848809459960551406158789512611845837512307536832163752041881529760713031543667451610519717890700173710951394063126682030782020763517387415893315985496380123276111219306602244286868581023310297929013527258337507993944231845447206850251240033405862751129141469799013822476270418709720332614764613828824350466870853794867123236566784522538767591971427962566148279022350678446664724086738262062875242734081018221709757156988006244389588944703756308499966903600986004575755565428899359210046361547831413961388023170979900177187502774758416767245958401898453772924375921378264832757634207456016265940645180061317512305644334213798677908424739137962051345640296269111882585054779562486674590628169102560322160637335687719734113971791471737126446022045763653272249535238908315166054231422564665327631076554287201565880610792925234284767105423583122488716234707042265733111958278307183751169477484571600360288503541741356478207034311524974047995295243778169291581769443062982075878311811211504939908729621193509471859801906900014274584631238427210323163027621628201381524477214626885326740675643487469439364679106829874612423943101785813839745146418662026737469317018096279263839351187117622017982269969010271597648374582650768028006913467761868756977222133631676143344586722572241926592774676764715723121857847663166634072140263103540851477093410812718858133918225659533801128019516932171298680651426337115121755608494006988729354260959917590382730364191024363999350017486209159259100817468509541800250616476850363415929518187634498229886191830148542193086322536667761672074173662014685830666879423162703977040674894835859423357944838803434914749949238377183513773855776541811230722042623596779878892077515170881170084102577563281429231061501288818779953379298072711362461591679747053862640080570011479827629985082176829152893324023497469389525091622201250307447224799395643394069773315885504850530810280706682385987712048666673246445397876908474340477825329746944463913058442000022153664005264293214489865135863538466545353417182868064008277906502891521138186825357330648419820006792643435732950315572913082001903472718865679855816033162141256843175744023689759070240722456046884608053678591444591158540355503980483987466436712438444454066792041448556013299753205903989421831036940831178088652768446775969242468364268730983072812330690141992030468732675474254974544691271365812619783554959953749382440390826901672381903031178028876669573555415988477401432885532992329963789092802028700976606418288628016227220378072513586593285231880919890893244490941798526161429394556289004881986824743346507284589829850099338905749633777941600198295297826552406655314933914852903661924541240739828451324826873523403587659101989483255038462625851306172631265729552091887395135532095407154093245991208041791515672119399236171537910865988179400594670802589702329507731864115877068469910573161231331546204176680830447654892490581728440702809939340860044879073290202541755371745394007699362827411587825647575547529668567318054878146300258427835520484278559815829222115285772139589322775315595578661816918249727726017058638913797670034114808178541928643713077315367539491140764719712185033067245548528547294115934051880770707869406474115249170997590157670315253409105931651304483075513695883278458374732903934079296175890653940158169419826338055351355688590555834067710193967158305534285813710919789646618635925911191034113121129912343124742078928027106388545979653572268881691713077100838049510395770257357125364953911244352973812297020302162573691316572191568050944302466249687118962678786385753891724081908386249137060954477739777889936785700932906942585888713988476934549613077716908069370735496450553235155063378921669770385213492411480767886755352281779399706201239528137544568699150951494659940473555995881497239191554164902871583091554210678728376726151435175323142913852179844880442455094713067725182158606194311070155415519295362432671298586607999223719407407422343407622583712769838024130119566191535114235466270089738027098084230580298101290473997893918745008068114364365424321293104607968680376141191487538764826616825345405523950352134016827459798742335816683891821705866808847633189365424341830277458084999346918994468726132098351966209014404753736905572838533420341797663242192197689493445544220002507479372200534076626938619188262513376460421144070558334644967518211368679744905070509464918768702330514155216934296267867232696232504903106397877341531718352442628072669725796738584941718614563048500281914466777312880808722010181381256183876805778534464663937260298880256570967078200072855640273508321104436230954672676556157495824687790368422814490796055432846593247275829994907641930954615204108383395987670325685750509561185593316913597903158704676679015553957147287796669009088537103685652230401630952521111296445365544972645660553680313509402371012890282554679484082598289131994901552059021694028640238180428079887156209698024845575450886102366857318303393269035110898580424937871956825125401293248178091429105811838343163170839964936158614484437114303935497873512312772758673856841794820933608086060959018695628223178788011619594842170139430913829415454790686168892996593371499289999070030533669113018406905406685775875553178007101612617068199277657419283350608080960708912667083568153348457596047428097338712636749579629222633236990060713407854753241317411923789973255421354475767784687800713931993234705417210673213663098749209107806832059135136671079600714840223641579916982516796642315430453661133744378282630803543067025098682285219357483828850809005849547272534327466470262785920478283656973122246285357316075065486575693408018942915538273119508354116790108930376664330703194002443372326832337820530745300358662223740660986858470971218869055479047622857020327872152924664494180843678543369421403876068408058885142961605440329916093698273085337381898436007861633449812472703179342505975602216605675484796311802228076266687772393342691380754229599087894309974781446323783960168589585292144364764774738459827529977019367127508134795327991503463233270616505848473488543697068689992106660715814300848099059101541432059782205172310365527316702710744026452309523971288655658071231823712067444731243369102419851937397371802540393118726075213611115198998712097170085503013914567605685526147244458192213012305395731754596313495760349746664354307042947784001100114338901527740621975193813790912118470609304989588420261783396927358319031094648607670868108220718996114466471862307348516097709711377991754494211422754803484485934652294054167142882837950536527102434677841569923578624792086366342008904152331888634128069486068631391093355324637055554870482245731640884733674916336589717825147969342347449764355841686758147074210544328125614757776169482761650956963802568561638993557813538811095145236804243605536397868000451736763787690920085115951001364385550184969933617034360448324000336871969217986260578054267401506289016250886213121024120250262501849724262977668480397011676030529560291628716499690815136476950795020637240665716267096592354841603960617289384165095984633349013563465352503147166629376827720236813912385998439187646437476415746988476919623256598391831820062161531603765724817117773441285708347806834561263964932858983263578505300625576162528719591901073845782000580908048171588144998843645568125660479948774671008084116358209827113874227177782772521782446208047994381438618040718041659183244145397367266753376902132009234833176104677955219254805959476063796115098557556798106381258503065558476375176180669382773938316562436931811607781011824303218526225266280860274262960074159771024882368597631929053111261721237178649760096774553480695539214923228878270138923406105848616018766739093613646460939479404672274782282747312804543650623873250316288729603698192946737209730578574242300427588463495322314188518407878347614880943258168358417698968510123708309302739567363536904668964108765753185041595988542388389068468506638484141909853121840150721073804313559257115033627506940779032833265624614373534574709564248460450723154290156464172950802768729483532263957428230503571139574714432491115830439025070576937313208933724755239024724216947313324781773822649108853017167402289392653703942141003395951692108180409101124618895227048283933824636063425395565595881055927617889938506644161778929007081084906995793006793167175060484554967109322430368993176797870477096410591333246947130599207669035509978512181846754157435621598225030525023728664825653515390344940545205541873740816482234626424026920668118204168435093854351208252817504223006895739241854298542736472962241895227206085075194147665199140672880229953305767108136202794019965423620329208850760145092662801227051205504558315069783748617293662601280242585135371659666571953346678080821722403961726792093773379255123330276383961627826932270725771052192320270488503544460613175762404411882243668830848400254555029564397441007355380912189072571003129088699683813953860099581645511288220271224279197396195830191146824768928267334389264678715402934397222256339064975292916027706914736332726265945683690439861320320681302348121761356466757698473947143841711545220348682020041258295844339143400627409956287862084156723251980852539892850432666291282196083182709285191741797622152876676640841024674195031203183459597782866904375185301228397259772964766907805530945688518408235946435077589997909540330524985451092932072688128146654946814964959816232416873215241367564266200779274474175553064405847032738594611794807298886086811007121795574024271747193454161378241809361237697383448226243349973639349004757939592417746421402433428632186136598411654413890640683679474818650482119944750676047927114178812455313785025520746673412660711101372225723764923296606287641894312009920190886579300212958001523127434809719873715981035801680746213334805085755784852153683568505725838451129293677039447886128043625102692120905078972951410001917777700221686223035301414991483544984845231569267462072597581682824526570719850730110436475489606465531987968144981572587793818053401997964332744455643119348223237045734108132476821587520198249393448799843249828889004578381553480821062966103051414293854383207839732366311237809752833175150604950617587985038978246396006779091221563370421112654991196896822418672005679545180536479567383565627439068401369485939242871529051549184350965806573699003855697161403004171908224267055735058465538077614272330086477173632227553716558411254478352439431996431686118471507249798255954531774959050843555425916957723940133396175176895073362057967529259052303713557799278306202836885611732688665767138119701077548550890399118128228414528709366220937149244928878424401666890244199300862328138674682202009503953061964597868676678311516254174931598476810584045829197045886362830611726467344179703052213896031826487987392149305747577102074463740228768381538250422853511574206806292583812128208762538336574774120635894674621257902906820248288148952859820923038953659797557820496338975886196812168281152573909112817579665074328867617930569660603982345727680538914125316896250682188448491156859413519337201787716411260117960927774722135478076909221689243128920981256733152998014653889552892506570255026347361648015023242510997878395104195271576596286177884287005052483777001461870567382174733105446758903086362532944439250710767572543361437969191003800521672614596446904790841820840819113798962459709974585552579325129051210491238542952648371505146682488893197792534495007141253911614182630511384749421675199581707815755391493341933147770239650184370302068856344686429709938500012139196392667707719011334611347698132142549372181999767729859543353447793200844768145227197582500459032313607923452325307981647125450579964952391651680187553710169808228395557003158451267783249771236877898246816052959568515993794872226348707967535950238995100596697580966571966753665618819790921556681217476252823040971912456910298064852450158490587567973197931309626599496502070696810032116816881218098034602648451669438796368251140707683956109300470199986110673701061305023287106523901053555271284406804537529640223593348194195129787481989568995286145316196543507888908982410175300363162940942514009283397262605398184839275161777473765280084485632765070414871495887323110163486769278318934286756885802779217302930467849268761768951967397077040156772283467978627319016395925650493626256328375047618257642736712904664644848563712775496271566738455341829422815796844925527892378871334025471125718651539760537164027226309681123107637789461611787142592389070836007437012077044478061382334607325786802632294917321255403073536001615431912284222093756091851385473883948166055810672005605043528877153168435187462025050260143281590280766074417878996557229144792600693572281579025749370074351225457631837801328919193557281952205000474778961499912247187640211196229989599279033868531387278129074696970460684337408817653308771411791463135002822000112910085521415315201291284485191157805193930471322890722161057267810443988860442905629305649318899371397649076593360465116056172689618967921259341441891552409286131731015147955789694989608593631961380707417598461910519376145884153801928845379771292662929151480858735735349056867584739211163265133257383823440831651564862564900479398657494142049360319281630595088231493726156817307115108731794700861965304521174667140669389783418936275640345636742271501016263420163019393963199422496404095959782463698200067425398855624697121635473419751617774380657616089846914810221328280749352920140352408943162048996965470119299972168316352472009491124256428063603364534433088007808457255548150622926565709028879854927715897325210873965863888845919604789322916322030679706631514883847171499078866651786113319543244445218407767384922639873764480898251710673438879124949216929605587708136856140891832238041735158845243848045889337878089768860803867379434544593361348589167737626738980931324713001948875336502068078617044844828814775412499511749006609563095255988727231967384596547419049447439170737839743284112547969042621242923018289033964603075980895586063002924445328501875909666785275063366730011284937594906345880476463390429599041197374553540488289847925539526934937755094808244363257522429135306065420177453687611574421322557434553328032445292177393018243421310293227973253719524587205780672900960959330245122918382437835421213268413659386185946540533058344891326293127723469503339708008073798296396831503797163689961359870584160221597052557839694868114397895741847791402307380959304527050967742130111701833936707986028519908984197629662435227450837183253609626882333629445524240757628632472827339735125136346036555804640923117250569516011220179606817517449245257897448472371667801175343720454892897253330393932652828109683724782265326041404143252449060387995233260743617520412880609691159895876364202197479584387923177288804265901626626293551495976879716860442165866082637170486873620833998569185086149110545963476623694688039815449514603390575624192379839159215177297080161853445098630932130273943715589490051942252672196947276432090119978264440205252917730357733213692558338877148094661957291246240795209146497604510013970353308009469443286001337880406879919138455601486883917048444884869925666090355794056236827901424943208192962429932768092966779561157219237291406929453511857894592605903403384160755546455042970824600486990525254811926552635347597379591781528281447767446712169618595920256833474294786282530567893636433428757543206173027795945301955001764697477079985541159935916645119156297645666199763265783373903232937469337927311537665652015337535600962439883220044676467541834050954714917697705786005829047477091208554406984941619457908897363102661332847557385757580597920855905295912128778038791333842653685826267142942729716085656148648351090653984735570222841158155187743563170438060116739221336526523605989437348966602909025018787612673338283729314690959784940123008429135571089837475845783510123479190917690546869284295159827645459034267798385964063685252933716103156868851945897494793386920355741543918111263695348552667198704715055072360606453904066913476197883196266567872101020202645636782209763095383526390254737285166792610158446401921061708554337402350879925983921017008516075628397350177366061500861444379765854352773702885463936242669914516023972710270852946558719807131038591727983938901737890712155264756480673080081568037502103725313003576547221749691769521713257908686693987072199457493344864208408990457717272989107118190933769069858611847988251390667459992035435338865189746904108495547460372494993712694842404240739175583164818301801205166661108736094795509532708468558793491299798418279695205124489280442124617887490001910366164994696277523062683896394084141997743666831146375053992386381648631310325739595881018307034405345723217687960614337552904811258125630637250496573823749322429388539984729904947231082318722685886884631202240888726909622833503352491398595391029587194253803699240444327081258466927572487677995596761733441999595104462516721764028438269091133152765727680783701728904575561690694338638846463949896725400257446310618791375554482116752605699714043630074341564216192465795189153751615542827495817455759118458800523944402613588217722086339234589750463777945389244404276867654045798440034943707950806687744479876192051806654159061567067649120775710000927330149949164762911974720744701923626225152559405209202966914377625852593471361105127930184717852824772795627084662743966320515569999184933594254155578342274594616484187664213957543304390063751967277853500506975842712703594602774492221198632949155269013423518042259701069368678977865686324518656319888933404963738432474231030518613359509306721380405302989546040763995156109782383200713983637295886116154431856734995706524593742141649644188958200854658959900368707696388295673472093305510481304598928870633642261190318219340562195355642758101711416336213341266123732665628304965738090207343669892065868707246349035311766403425125680728988057999003141355089191136819620796948363034504404670831166264579416261805089704768376398388942498180414128140993969895838511947718945766240688729931324130564034183538230268218467142342422517163301827917643777580080724496990032363424269420241328383953245144759542888141022178287090543347231974452082739889875836683179872345246909902980634049813608900208686712799592489398209625282010646935788743340071002845274643527218237556062048441357904506469171466731564293592827106115316733848157719919563368675777184113892410992429424596494379206253786916722838249142627010135093580892131676443931203652321162016102504240048238733343034130490755515827187512880766116979631666584924311887750596590418358146351647861958191309427870939398473858924049819053286876852222409025346333452418328479006566740200833579670542163323649701629292771299858614177497924952967874544206751877166646815220794206972678491820616689860393162403390005914074134183043941156591593643084401152137379625876375933647065271795918769923434221963922833742630053275840400962268977816750061031929697942636188065177270085097250588713248359627441854006820797416639052790789876557186555610698459029033690885672401073294934064676904368591622184008267470649095038441717644377244765191366785740409803436922598024418657354529508270500151808435039332879337448806555138696082937640907392022955134744400971808033981818076028644054497101878080901951987774273631442923639426189414194538192408336493306967230733557106990744951640980675452572441166091415605407633601555403012101206794683919679503836697932378549403580646918772790447146115932522992316157628557612238103509186725760457133262797412850647963634638688484929665406009301045706275200393150317921053596895843026792285009433018629733311279015785388213587801475597189227519811507999856956823501380427741610680898249762834928344960470979010775219228005959426069543869756588534817268804623067731308276492711648905018560320907032434572061201018635548943737575591652806269959638256389629792941131355337895836046492953794702448755440906639975076335018448784879668491314507634195151574139152704002454884020160238155803896391792941050134294380294013851380519408191022543258251373143652222194461342689416858136971191896648920575773343814405354972371540922357937944437394421651718183354786935492660121049087799843173795491297085771435747356334273427590031615447682014808088331827664059083443309057256220873492471208522875139253154024493096991812584629959780334433568439997599447969008085825464331185352814155797319476995625761381886203803921230840901566783272548495232194065136599431815136619935557666697509242858948178102388728487113242071761922942133977667249104671417812831003973250396436721100170456452011793624189748326241760005744700429048103117201823515157957126181376730012965895994383194563523370239690599800759643821670109980222379006013666609929924167390950288730596139053903834162320206378160188776924146804154895036191208976243874097450764411873773036673296633077566189452204569729757661850137760538480552067853918513039604434911652932997328009772298027805988027870145764329890909111348187035439640695752021718010665388029179432307779759306260760544938846159216366867782368417286025094229358185978503556377069954418020501222524445341285385980139724899281172444481539378970337070534693594645522202001565018451202945065363484719391755152337843107926500122123995731112669820387516971711293257966082823667030935152977735507725892618017499094337608504618672737891365553679962679313771415774674733131173484539994716518230720627349640976982952077458940769366612190303863016618101981128138347015233054205479612658416544617373819286644385302705126235759611057960164815587154819098303787931274196876244255066476909602432557943070694138117803887638149396350883660005917574583364784553349916292208255337765900105594237057628890409835798709610388752562544790234813598828550562484004719527217532168853679867162437519426688516096292084303387222141812561865570969577687793225894473190961986746464009968847839832584627084290221732442357516894733220140449270149057082965122774009401346276980287022665898690334237162644613414768429233380122377784994896926437134900118175673016111038548488763262667170737030756972786554953160058018432013053853519325086275246666452995663557072262737325568445435746403781405848399383803647405785569657681636534416236516509497538292824707832923781857197814029561947515863725525852997981472343905222246272308079009497223308624677373480596247498591263493284378262002664877327939971577251551671979374551848433544426462329345591588925089647658300216626963983028895154662054403962164877942428236297603765186441011235632361964729375228762429397101620552435117996992397569112869092443260416233213551410497623741362556324522294886464530498797309480891776934481622799121847010001298969238209814864342962270631454022598554689297936982783634936665242532151960568229764326638601095119134625475892265710109822804878526922396148148169624407118690203253982676198817514136972379205571708550312367557987117598442421251270922557373533502910304649876146967874242053652658398563374298894453606987873250206552494980635318218040980851276901377065598975367127337168505060328378794606969799623025651762578986167722219790460010932778945126549080874851645797971351251680531505098510871500972934581994526038622323940077993571165684157836383757772929782782863606806375156802536701025663238716348106429692826860596468691690896100460689721871153020564279930731405121089205983145973943215302996346914624145406344172874523699983965912504234838950265629545226339938519280248207919925038186198614629477155579713645055284221568989603342751039894179021898790992518702895343839205131024237558867131712075739266743853934796906984038711413654429113180751518579839687553346147111964588974434940064532186798499080328020543117785977825862253452427528793379763512995332457478451361770124161631623393765858559815166278153040357275861493696659147251752383120920963929759740070694457066346758826921413309722218158685490520338476388332002337690230753609222795080079537326184095081410543043272329446146792418048323411446194269279593541457102183534861262647971421876185995478839853567220776164317106436060097861931989971882025533612794004939246417859022345142017721977149890976620095614420951532729003014624312328325113585020956953524157990321827144545332401387972660126155271289168444714039431784956769310183912143231755368966885060301151352565688547560237984346278005281545545790336896627926260028108203065524074300600895338286673051843067800489301641600538551983780899841375967290379013943162904365537222031135105817193755142584991444106512786281233207576683550897627502966406542250284262011519880388788819766400986311710449006935521471385472566963158335934271219076199596558167383527300746237981708696031751138379172333478200998559209144803926804397874464048845324949900850517967518795086955918878479270000342549753199495793731822386674623586378394433259677454351235963596208469557664417658304839494758484368118063904257538252659626730512828706650748893117941522363479010090830441623214857313187513934043133350532211121036469145026143757629915043821204529779312191712620703861204871041037808161288143671156351705101112275324876906655369324308209703523065938915304047642897834902925169927267277671281111972605479195590804880747426075326629296975296062091516873998678862994818028531782808136641313554323447418017281771647753393685232883223509735640488681250912117367078177262021851649590708007024874368301247836119779397017161899154828219151742330996202788339310757774431926240393633298265969217351877602135319125675509513100068546712771316303597340443652021322842094511586760998465535912825338801378045063797465952041920210053797529303714148748117942349601485736055284311827045526781432083156602691228561859868510756636129776842323303275540303484848765118193102620203069841976924616188368558913110021676684374004452233093146421979810478300052814296970349345320993159339424094246020749163750064302153239781455438506180920704670155297256214995362901772800113026381159891425689758524516657245431474832101814527160392165384052077559305510449370816229436257282020001363120518112304749036276935626419788913368561229934123492501054690223566331296321572542471776810356325205405513639981163268495541591384809552969727851793862821603049253203414511471876296277283147432486882075912631620173048975692761237357846149783133221210103287079359495569962245478329233295339094405308359113548074684024862937273546242240819268044029933278512669957891284663255330757850533857826889579552622360679953958557581319106650516355296394989345159560593258886341771240004543912391506391481485952295329433097734090854146126671877901847976564071400560222048624074092466714952409829973432997072386628967144987955605662996979107645115290462114014720120754628693565241370067586734432052685163525693822358259565069751123690319537812767131024320254963845262150444331563298493850219271255216953800670991621822193178411786327565818938180831038426996387024498764339116215477165208847057006226984523440437216480268667669899443924066242340975330948642108272782896844712898859421782083210830022186136959546417400419133414408046701751720541149933358242632919380017272226726217894440976163382935251625442452665936683761295149797138905939151193241932753838047970639173296245058895370169664687633049329348745847985578791871304363503827131580886561085374526415797000080713244873019243023685858675407967429976674733292337641488747859091845717685785342953705476549532181076505084456109493396379594021001549898211547545710768201379539218206463801172719253227107143219110835506423416105230218795819514773606539818830574214611676793195932743963871003397475616593996288172584544550954972658964180201553750327987119670254267304086959226443718518077155002012564882185440894285245610305781460248056435501181517097866092505779740361596135025217298474996877247361732446575517818548098436708689197341681951464784072861045627097530901809781238586076864623222597251898723397756748703963669331127523803394773362871900253591254791341234730472456817647563042370539454468323163505586973462415854281519522615429335632145860992967370894637368478108046623792269945236654718401581132587694316657647229406948719269628134047018911227038104901689133530890315714001717936017191980118924619724620524449363332435983797682270475194329175504686742976393083047005851878325383329791172480320300092879740129967665776971307147516745955531492774114259317466763715976105290638475383073146729785345127125586832272120593498053878646118825106888060772228522357118654404669063207408581545714072259470286367940989318202187204881652763532963778090127968263825720216358543149786855732548625000586589724879532083744190882401617273435836001541443602425988964912219418321821845944447813374689699067225418598572982557973341415751925250158231423477091643913795009981734894756622129787101421093535741273074501365329556806195065321933215368566673941569560757430589319298285199650786084042933859530533353386929456472038261015019594653282532172080088330449657120784474897835479725632457295695190114349094170229175820836342444786615534921684261783765534347670389608976770679757360625289402869410020699063280004063739394647131792696826816591366422055449974886245074778545194972980662565812333356726101348546108336762083925928371267412588529226128402132847446316189940020391048973811069752187144617209755821984734131227628483015284714896137895109953834604084979107044529203129437738779968766066966643001105708247876077632607927007941644276334019162178591799999303583604663262667022477704663312417251598129943649043702068196199573000787439853500450189905542746756014076893772524570784109428822420015167350156476931826650604569473921944773474346841923380410415335418116627943551550200698868725819716866005809606430900778924866928357825217656640362134830853470059690398118679725822087438911966225473092185131154524451387009875884869389033861860210065272381758565267239227649187735051950750691847413345571592048296454049427004788101770663340542666819871245090005316322757407764176466242606350037235467418578407460998248975940927148761651043077666181871365799406273592834306344912169334602284536270872004385688103400686003099123380379586283396743243787142894612246809415715270377305396244039252354443617656430261002199980107179255889949810920471795492294918048369260725252444045896766294407793337324818831665053334773917259213663690612555842892399614748616430942466113244827619266883083729560106438053546034792659441810672436239382778736951906577079148819548132583555583181175047028584221342718440480249606658035652913936329090399018154905368871038392740653370883895670127516433246663862064804612375787904662880468441788914602326348517861868630872525764163408298230855067353740762805472016909131258607814855636134858858472993644160844392354535085795519369321804316081377210337839437497620173832251459875269618668655992233575870447835298943677815836266212632084801182288184615099518273868312610630044712733547664700189331097591105522192302463878812440480283218935779490707885402483931966199669540230093926928229266374872118944457512123055223632185827394214429581455470737391469337403271199175410836783467813855368932709220687649002357446206855497344825349403768018176699434901276022451769914551658932047663632321008677489827256626264497374089831159555184529164056868554754906503083098192781917413329773431488718264294051079250544320577471705183782081532869461743284666918522340631161827369652519947535055669021863648424009918053079460129897769409261251441346810164900265477471264752154251160528633672066220369702805765849181665466663134350254002055363383186112056757212503012329937669910093037949259364148436850583170214545432625531423378825063318088371202010382510256207907034618736640460455368097281351002660089120767826313931219130011817311701520186682081804905404512749824167297257703647751528378901086349887305740367781656297321877776411212016476651646302364151563694725709774157445651757790456071672739820296733593542403988392366573324649811802242534890459990424367335225841959404888959256508495779514747038137631486063798129166210432027748548893778510878427973080705599086288837708613683487956932010788795032701776428696732224598528412730311098833379584323597500451872828352007345245267701497025547991149283097833933386372610297660106163159709808669796239165015670052937677709132839426760510411155492050276937827268654069807010836822144525971096345391615133900302354749979780749933959792737756663055635625947419293969966648161686328149331275891742643066212758182601223888670587752557054227122121378612021832110797422037337163536045694354587418099109407316892756455519813521573884598971396535649356322088719147382761186608598755581916386243025792369955857625521657279882875725998128164737632616453377092449673648841535768852888447699179108272190715598393232856858920989979948627832535170794013857813336082991130663023613070887533068545207111017629427339644724056572575452592430143244360547832561303677262689449630077259228720077100687931428814043498326622934527613000375159850923933945052022596930766324717803664043663721121308234581610984644107529915526869492704001178167014752152976096096664336997590697781698405694787110229389738997130742548049837302333681551618966079164403253016382201637483268461182035347089061201698156830008692347819963134994961330775530816644159756827978979573758593283353330575091327438797162314753829824716830793196243892328194795453547116436842309594920352262908854759830374515059226162912287263898222051436163192852360267834889926746069098765003173994712823587623315233735697162807997025148922485624789752397524919236283476955575399822902887918170195843929680817743893380109994448421242000932586618679598675306586892036055763584362036260777093591055509905273604177546902558320834009709997752363058552149825731122997071614250119752950175150228045449045599899516395087813771319771229578005334003150770563726216166486682613120638386633672465751920016635753509773203854638782200631023927009509125320402581218565774040711679522055406893730867408161105458459710013741787459257508244349030030394183341948056004929928507707271005808201351695084363126543598999233059227605870933297368660082171498025169339626909108189093619718317420896233331072053564734120155353138168853767737562419335225934473000319437245058479763497450970935801382871324342526609489680251857660699624088938931746576757759218518871602818872735673399930405673800790856068333580466927415804993543494540441499812489945541851558046521223063182749736193666073595490354813976335068480015089862131994725812797865095257665050416313021098494111310659872154583007589202137509919275127409875543406526178418712381653293831969780420148124720344680388175826927266383878858915613223287531899160016333601429211259126776967496155904955987286170361212121108986445195069570986356962912351955786322509744713717483263505852475655021475370737946404433034311228856197844584759669560582315036426008265268061577279523384473933478720718147337237648704126174018506277093511625471606144176204111149299158930156143537613076100432653187922969093014006864395449889946047213269089152043302242859805589150880479293856018202001045569371182070115914842141968617777830589271706602006088817243925112315407212142794205289362457758763630589979402841220069606078456663993157484521668739404491171156131688053311117681422704573789800721951152927072614141344382064023991084857528460307290042346042842517327557441613768879820085240643107467304737302057497880370353718137060456540032918907022077327000317702322927800001411248698753115544343994213705650599765935379190875434580069140909677463064564515361173963905192846007822015823382045185994747374112506030501302896107637078487797511695230081923048668011414497997859777080632680104201351428288228623625635129713434268774178708512740430416727177871815258369318400444924110059596998758730627463329215986386686861146690372397408904420332580048303229421460053504716482765034735742783792708917953403870684259171102052951900454067975165891300972543590102485376884366461969549042266135099595249302901527946240823754006180263286113936444611826391331527818889279668810574679854932329394089933354184864216377793816757338185897821023520073836444830093166699195041567253927426629516897857008591901596520534342835743404948959360112317565572283678986624880194399970267468153143031388702288839052526288583552396943090586512940586502746136474999843908188695951441198310242967766719300277167937540354688185451953105218878939066715763959779713224418644561456170342981663644413934090246900141911013215067340047431993723212231577652697584984196291240209587946331595661734214602981886394800196127894943556253953254553234738470244620576737597594087081823066496646418913248065891794708183659273807691331945425442263620683299870864005833844242744992381937014144642309028404877643744444334781780736736136639222950660127330240710216464922716141923890247434077461388822557346815252224828156575552364008983146440446094523451585852581455193503845773162706383409349408267314754124213478225471405299560598521158159612465914931125045392606761178315571021323811838842144642378591691395987108899405012255444809252218770631294086317131654950669732948318739798644418712737192343885166031296301445797689923978256051315723496580133983294064612620007379932832753718310994802807297458216485298242611524850357571778494012796870387289384002462783501043256280808604784302027821209973436563479051531467583706168645113753657780347239549474236129662502724485361144783429673894735371987699360027158324107084307681200373757312827770404894549346724503236352683019131125950095811417009776824508782604629943530321869385885333970016778381521849385538003631474181674033867610271682838999782785267755603700517922951852319646001159308140262385005004065110361932662247124365817753006443570424157924391412279820011546561091731306592944955524214518183144212750560755242562829959911285817703743497824523485596967144543541976687655226147758106490238002897715685745532855760609730290806143007781088894084504775601901345782641264683678023621535650965954280951584612153741476660789031751982534080911251745880959583260167307652837039906140113242838765633519117716205456318204136064166632447836324240731607801475705920307654857940277003254806384283605709023553500846887492737038296716243272133896883729301590538565479046527790277912167324165551480345732484239717467376969764325385829716875865516293197891852588397782454951597833208518604719691440265421843028626695446157273317803845319069224792433022255782887815762118129385269510403316232537416937494245597940878003779520169303133513593750962489370728020823940123157603764367523305791939004396617436317825702377044121925684539806715437319228202795929287515981898991867675198496821374185387076817072155600518910418619730581780183228132504745628944268802849443745497232340250699337541846112110930274147174656338624637295959643788269636415017390360591325660037071410216570264524117898637070584085605028941395483702545322060154715440061971719564283194820307701608534388200084333387259790477363464830824106385846297653172583847841597133137217760510013305048295097834860022367065592819202301632131774902972765761307224919190539115239015992897836642393142033982764798301900414785047981042068550031386526689267777837480490289984483245066503973656410197717729433209853146218661358504447432961572348520474402104722376887752403531107461042400213779266157191766043711402214804204815824615912276461760463891626739613211582521731986331603832351256931672281724173105916492001108959743345553928263622701620280054692725724853916377616239058348997639258977428887851300375272648529973364508916460840337598536181083290149239499205927064883924441518792971711100003492098895462602909204527141486564896889675281362735223235052094899113905378004971445153324307275018118217578499306983091980089378791398422646504364513866183488253168570969975268695369325639133552142018826397708588452090177658172855571649718022776757152399927863409377523575947915250080720536340219563924246227118923606115988657136826894971725822111479202840926337434424788766479753613665660130813521355380116539608229855819827293508310279885773416959998741782220352741643999197900224269812441254973885835491447249846422536791188333483885052444865297298555104031021406471334903927958927047795742304966499490945624352831822630383891442569265947604347672694774186531722384262001014466034046335228767815320477983460683729228510272449318274514870031790975716341970285341081539581737240887624602588291625238315196269235121551199616183712093560215444825587507072321965883840599386309406890845908714540613424342277090769044986639644180918342276965741122439198350957544953633743372226151866949929912172681898669310266399310216649800609853527266659915237295129936140906113031927000023639352341080643073323123627622109150066063222488410566120078241789327827861962451124638564069769555773939481948383811439921824720806720450686876697843931423751096867150484834034510027569530820517590186356628522599625219889625774620901622965072955874447353499155605873695900897874114958421771094307395836324212120430071373890616390595417443314546144981627537373261162247249728191941214023795267371437042044944412716093819895396543775990527699052412139499803970718535609362093397681091569384349866255766283240464777795291404956640852077077509177815637812819695451532249673613018907660267663872670622960424328827059758359760657028136555488697524472576235195261893848463075835496666203357512143254917274471256617360827509567428077412294822418972525376598254793313182584636372689541389920175142770631417648188090677048968369368582575882759958853138369132687638842805382815153608173470220278716116131969037157180770546945328703100024308463516788036305768262587758876354877989909290041000221120220171828549587806896888039744846027766105850882992912095045306072277769666102150992991697018818341605456105365395957399069921388839723860229617070700957684446144229290160439308349915080455699143649463486248147732983133120992662888277062465526606626990659554986893360004723554275112074996194121258337333032777340754237824295888866372312165436526816994745019593742405694345968564604988577804573153689179062495798284358701289877250009668238441401845334934841238361907065837545022904962885673173415474724280229287426839270096835157442239127252689182585950039446654532183850324961043903725936391429028105991737120029720981428069830691531602666004234076598758074204886211408645364954173947678218528063910271801004253303908539331541848009443266579256373363246499787875098154858312004869772824260729895596370790855225884540271444138053965395143882719833205372792213483261897383711534349486461717008955610599987014061216073849971220164928188602561123551900007500634001613071270447698319264186415846210292044066215087911583919439145277098615687471422446213849811028244077559368627325951539846760388646876732496032650545837286925885858918872795117471092969170036949995718978495123855009985371490778608141377589935375296853871596059393728966837948200405165257159994887923730144561677507039972941125512135006315016720322099326687419030912026716777269984255729548986641157813586691564329956277404125234120337107221446582248523669759672420572885055764003576930142190948392470229926109245222356391955800131076784055138053155695285321111848539592991842178988146217006696856784674942310884041890929727100616826115800113000749520338297206644796872168176978187581722505185980747103586868670720212181864849761533214280375292349135695905279442730386670638072410758192069023431144966615692871135243090151003873111847681115816665203678389405353626254475968670577048410447561198871326256331441548804149309292893939988718888501227792921223340330132380058181570901318144003082390368205050977799011269137774388483931128466796896185983078918596241974018686127923596417566245578416703132298638629021625929417757342137081192136435255808048634856555952552394136702468304478005190877119026987266798942807935335553778212868609969277820492036949631849301829839188305364218768114640842353409201276208809732823879195975095937589096643596827400370612421172796692856344899206022976974158647598669196180498272812940653616147917294198431183604466425387963988832133489921164739018942198533665729744356825279079245894932968084369887522104520832716525091181099707117036323620267955513189804725407243089865407815264512380983768606714887261197071976690927728273403544870907278818964546506217326948249043236675029180543838519205234200877368147496666501383989178132189231809870433055943865208649034806295653362218708463832673956295824889547434526126758799585649282393279171871505447970550192046518687236433468512885622638795990466337828211230742926145665602087297196820035208929158030505256253234892128548587130326979062850157227869139682080729055376107502820215210123854336117947352426292806552978819261255347719668112772817992456180834579182154523176455580547691361476740345630657150375435224052294429683085913128580671216232431574047107057536223535831502432946935523358151461547612366340502813854099547344032828923930516832617364352565367667353947228817126417607524198370144967359019599210322995576949101474604135479633972468488853702294766204051538052745078332787332446269841769640890875272793660874217332082550280420489445653215887546133399796820584866691941054273730419351620948799775352339349402130897830273800681212333795343836168031940958412722391530444925585558554197248415470358237528555417469110741321196447832700375843193540654056600337969374786184952770775383185261064704242944595661841851031935109649423081495413900284009427609607147171928612310470121750535661385264830389958646886417755234612369665298933149477797786301347720818689687383640060107913218619256526136003045187436056432545569356991246807809307296831666377574877245642355112667537251482572325388970184848550827757319192379796627055287489324309618487518321969853661829260619994544027902859013394368341722058385685299331445703572608643738755501485395510068839022541482605725236243548952320079680257617991561217738137614047213552187968937210676504062428039130737837677652958418009056509403343574706741606655353757722025765340403506585373569564133442192081617117759951266877203192595084721425274942667728683573210604977732049929192402035445328111790160504371018946749359545556363425205164491282631927463644779493079480220818390562466954144335893119013718099133580532682152919921884908644893091936167085253542006016344547727497152183937680761003644560667544880893386923358071314192516795947026443204532885750366420287506568843037756652261799675686635319796386601114907655712717196308936775098679033686804162760705683275184741911582582229777254856827427231696199225044734480304097466994184472822902809153753197577941993191990139074928290043154435646577057931420151309465108014518791799974433445614681333390001634065630622896040743093980171785687932415673030440973792594042848789526621425557489337543524084587911628139939388653166959713442721330069668766109392540645095603757362932449574177287841183468415416642200724524525814777081156109284136568518115031373568230760797058706688044428644177751828642875733194247707184826809721665003762570270468892014249534685288279394697190670724082871189111431441141397542797063521404467773330170335814497422763085973724488545352159053422296521750234826135772518759907213745744156282197411360968536242551043908129181827078526166283426372294062166005269443744906872366882927402157045778931252135312955523011955102883401467161983366732931898185644064837497433586502232142705892965768694648650581553824704680904811668355236208342774195734813411141633645352697293360477750038009057212746125161101802585833981904627957066747994490084690017044159899166253445350476429286772902577690444267686682436944756405348638432542194794084523608085516037637905284645254634811355994259592150211161480596233978689460120124131511103509714803117477139471079813440520410684238479157858025795575154394224158517154054558409014378384546018877156320488171967246013713335169064913816063888951866884033201452261965219391320377104501477391438183334968325896687310234599383384082538489139645727452854671007913530061463532791352714915009746866039730755344179168849346171728285145342673002592551428741649279160348983074440487395620790271345282232347052709358804993651045228994299988427697810876217193157592791710666143678088320077404386473254577366487724723537360943555827804416898747242436809967919429380355281931131278545799841616903031402252273515448127357238068100841652304320205267202060368008274607059235827203117340642920900100868289018447391827435773908282873528490270064052169555554391545818627946030864751562883095101428289888625357579893148231442954858006809456730127221818585669802133060844389287963488199119748464950279152679069572136895198573743041959582268654763750845493665206032549796801808647791989956641814612851344630093678342912535897331249041184202270086583459746552398252363506294474898102790610174959939029146751162007803848638479062558610042451298418766435548872084864231710190784238981929885842538905162923014795167976203378759471550529339427138936006368980624127106506140153986314220814117998180187370566871821056619808436830756933468584736431771591995569000124331916681739910445739813202734028000075775510365280195078885249793873049203382193820598264506806021332467912012332277825818931728321792755756297638098311661800586182518520577144054470962996705020389137597229167226729334291780210874537892968856458518166019452283833266031345443211203515330670691869663091293745561771940242488749558103211685260512017836902020624647402085896405268237235364951024502941322112559987790610820554330731023149117646668434896348488065097317121194559868061513078262994327497720777672874218791160361972081810456239172718835178588224215693594688529048958603046931605416159586280126211138405297275742465294946791142040314499681503255269613919107156344870866276928517821564143956763901427011377094923216670379231553118881184740979379037190743727619449240259845771794505629321234736921500535404532607846481947890243874062414613715050869487454060294575414696996893630522823818889976072834409601794716763599577812682358782419211416048827180083120210662257712270603537097067520800272070953024653530352736268652439972261675642758019448114616451855175105632514722681047504236446478971172895139143516971811863313603632697644068875743052389974110957777392789317295072810808628287852426244541460080860261880661715665869356226828752789837367404568821838622082340949411328809187801725890592937684945626100395774453497828057895442215754382006519069609986115779215215162744083673843395660169181809303490181093905363544304349121312757318073679855345860507860956715837045561545380695745927267710759206923447290964567783548383896677564074203894967670280498761130982313800431078496356851814642433443921957327655546818705407652168241032424292592711419652293087632479547347741018552987669410594892739516658442837510045398086700166274211065628419443625554216436917860850696687348140326925385165002941364191843960304019022933274908786938990573888263112563224791844316154393104877963961461359973972615589171021002136850092210139236850034162652943803551566434631161503454038709220061075283452691036557049761000738804985440391580717617005843181387460756268631673639835930672981568076705318861009108003726934813803596259361263921382397670939319512559517168664599438474402299682050979069653432189644768648120344062437204532746790729104096600954704808055349940723244034238607374618913326426757499267232989843246471035805052498933081610569564196968129191939924642462056369791474352278896136961563155601922847592944783949302662538722801131261676816171048152164499957349942320143915750719719090643753807118235588255488843580558454508062705160659538588309836162536698519640434065774072401418219597917449238570855186305491243431769364865067205016588928434928738336008360166738176700944471167795961440672725888573357636071575614773161308140729438653365298065048540131187030866258791845739575134876946338004232736932322214785799082000831240018139135990951484497545387665215689392748821145535108353632714837169849713495284648333188891862599859614146052225018662847799386712981564796183830410998725142473753993627973288238637225048388639809041781187776441575516561857760943301960773866140971298521453690296672924857829350598002045027134893469039524076209008864755413157411871891019401400282370334221763628451184431460949596319722736767739414937269573622853271906119120371920880880680281799713701787233853619645763068350233730282283317766724314714552585291163602504110214292834583141874713196183276723586313286312752816590759152758837254729979640714044446034977062700578318092350383844905124321015345031513377156922178119959645505844129383102383100978951051553050076051434316585749774971858029886708122939326184271236664939351774330788447351884911579580759135013014998629325416365531194128267165559544495279895419655062547356953716486009474393317419003826508611963202798201747562075925927414324852098407364767593199317117347856806068966132507282846793521272515235594061323828255419653120768933359152504614428205295580417866545133404177830221522639949120481771090153763563715525449916523991451484305406694153217311817598298346296999598380181728537066211989400894752320276832981722643602492316663780741369078632624337832277155664281650503398758421780603800019114313078499304369977391214549293013054007347325856592658986530065242679995385692037915964528925375498957833710132230737331171764472482546826303293632382842911208176099772303495512310167714496891163250718871951017131426787401909299601552449610975584829837927089746321977640287473431711042100257272842178994209543462571489814334812125213265728695701569300398018560639431665139874323065754150195198630496351487423111257330531587641023589935569699959282990700198069985838533174104412993349638324622700412890061901710529152312632760552115394678672762299685099065793215445669733696071689645789056263220874822567935998036884968313125975879030710380229711669464327451568707987057369405082228190178268582165265681282607139700291809573738552674710300166039288870293241330801545027222744703699697643980380886377599635784195229901265379517015503933708423962736337007955222635684550811280997309664734169615389770477217673752143866693535348572307229479091032906612323341464935875292417500665040069968622513431406170668016191943413443457866028379766351954134964876714521547136746554538392923279289256755573459458918079398056315477033245042713920857117470671299959796371751903978961075168198287884808539822634807832984659834874391818404208877481923781322783549910286842442911081168089206114527546839532217133065538612259060046385214113780697799772625041309750673922487183321535477790079549931503767942286806944151748954046558976302034270296317798078813101694954065509148848438015952286534629295848093300346393493904770250274912249210526865158787036429449755742921265940079872052336305237756059586578462350039434863414032742189733486516320095321399661870908192805170098060426174977640391198705842578643612588813288434147033317920850352806063337156931735979089957305534471859220627365529710763530641303019904717870208177468662678866556405954376607724754546080262611634555606627960639488502012962974554396100406147642000422426460610408430059909673630116296175979979413710805339666292363377737518342351336477429846090396808597846104469005335019074715559495835191349550928810160695731136199029285628883130491341684366879506042506210585569537407344870806092940523221623427909684667494458235736718650949235945554493335865113591878942951189349834057878479168585185739321580648949645842117948909681263396677085601144226682398277679558878129289227096963135347151691976668654645040864069308180029527769534116797329058073959964103052132635697164273932976249031576253395059395569651264970090984841589625933960972467588832535421533749249576787215630592233468851807976034722151330170455629907172570425507445607639679396626449868450256729722463531911885438117347317167318869418793085764096700405263104550800988506760959238818672644738295865024341712607630311315881667403015509309836638767962242119087660619451090404455988333027554580249553838321071392415094727925405202019497440590326758875982624544503650352936398352689217570012364444947660201248946826001668528205001411757829902101273659271808451320447829388667563247595652026296888477636028925778647610596611090370426243761099387994983406285931047477347080382906866201337558593912396386471899037782511753934444974298754728302206036913751704583946084654703659755330193542865758032955849913049401372390897043069456741107557837596923879925584008831244550353129242510426580505660566865180305794114096682778167779025763687574050114998004553815182704719010930517026199588750700639661107105052270665044908580185469216254068779499261812709105288962607112943206528505941472336943567271577929310464001930196287634100238514216719961869598949962983345543879347170030579680678355065338930029020851648204887312277544781388728057909199891286634217954838262457296806934040824315873704885531497597632474683308977320281828916476505713239234642639318726774383220055774541168160536769556965402495359197173489105080818386834670267777145825706238981812541156088771361101644664386277624682054399226085485630213083970323769107010206684873004755914926181225325427944985822251566088459654699847652891907081838953521363983271343354225115262560898684550826221827399438983961880419194425901312637530313080582204667661658339380791123311279413904892019956775455908449127990509081726103639990369373433794325010024562727321366460088128215842339136797513248018898740750218781761436677023205111067549650428779896129542108177037375625021989406138100601995291695359529284309575558435324417000483562619106251614530769288578461387619467691534418313316794149243313698062198160826609750817919008477011920638414864503113976968251898657723792132318026085608308033329844513005643658413649113805766855134402131455550469275088388755645066936858245176324343305240087375841707076643885019505269515080536045465760794964529720353449902417898039937407994426891674753532923921280336072354166263942678659056600346276195855497529777228843864340631505734714622130584820362161212844953665723157534775014576022435405737277460675665945552164990860661141146099163467334792087699502730130462668384833695799641035122124987688329648306939669971027908708883474385774577821265728722216430381391866242851273396331594823801217241309813678068319420520190550298007335052864216116854321226510469034092487957949506395543353243358514294516062644463376505952073606234151780718373853756753892040175924221877498277822391669763341143551024405122540137063902867578687742735084797687257768706770023872281750286638972790513610626750925798985726209935212808127070299396250554179051823684782158017182671660234058288876584689214567953890840831984572691529238005847662570349938179647056849676069346895372475208129737725315670006105213019091545191468937866264865804673601277957546577487855935134359180834031003416824716433865760211619325485960636338327702590289322528177981095935342395595174017319107513346976780857930198181489452559998194059826344396560025977887286653422459463816465417158317943862133449803461175374941992612292070648190721810455842266530605295334101405033041278874692199894769990027979893929384232021469981738365544530665667740772543631864223426491391661581332507075658832871393452847416838971451952088344410061472067008514991691873971522454829063798365509658410674039023564571137851479825865320283063005878179716026401618869438503276811822290269852412928875747543435791419255700582345680295891501311520467577164056641664496818476357157820251892793818461889540060965806861090146578611446735570250153896829778087549796076270863147260776389890398891856669444704187956157254793906959462309917589860540319418523527322930413460462379536652039499544959780234561184068643043404489303891684006776106287254990594988262737270696428145494199046454534316335701891696838588647111723312080968076106223003019504275792486276351723874644260806132295884573588343445581117756121347391348167363448013678842030592037060763776145602039645582529462838745129594631770570879985633109160853548775345962013847676843744196287778756542613384964743549748885141070643557843305179968605343067117000564618934693815281759618838253956477375882455360505942563829367277380908798283444519825758821403717271181904432094293815212609360551420770124346915636464028672470314374741156075724126426842542789337525821640639150803096433236144717573619136931263842042341635604845409271234773234995262660788940946909242377481248239650478646877517039661151259860340291611668571578897441836498899926183417052179158033783075403867875635281684432422859081494132076489742571129119253398610449084922450675060112045362830506980292813784266523493021401949870425212080848572192873539116131704156506723411312670581967653913863996128845315741304468804340727927441364836635064660341883750455358449106095664685801606007127869370484963360798564481975308652110414449502330842996588437038814788776564760622803113467057136688872286088126056840315096862085854006232942299849303191268649205370472623930332475170744460383664151735942815709645653704277027947415817379521850888965959301728099311735672302956620485483005087166780615259600903050838538910374872622460153392639567590869595881512824182132804685290480746229498288853510035359063034658512293137629189252919791589370046930044921689837828431501994860977399133395164721235340991366912922961843640604246007696077766208834438520752836532088524837915522916307194152664912083836688313759041708135861709270455120588359871661734266054116411892023742692410883107783882282724116122862584116777415232478106361991902444578871499496493140824045770388477499446464363500427825614867847883105056537439351183238726929566627105955332356769513458641843499167324810178847235702980183988429849335036019073662904506386710461205760727784820047757555897363316974254487599623866385141235551011923648478198240676992560798254857610802333166465181833585006426036514507205548274206158960823309533962808513161459867313748814168887554471204224018987405829257428540854008603986824004976086964702877381840524120954692378530076775110705488040616229206264908202634334901853318759629405156426528904389811198579256293805215529846083637603490465547796861741775379838192695860534343244354901731928669534297634357837569453175328524107154757933782780756766405810362971061370437976146155891513771295217035800640548796869784274095425789212547533452004165174561705264699497926066919577567977458322865794515544585932273963648769081888052194536104755359185271594253517862049992236615030048949148660582747317568425967099628420199425477685671930759028077906276932376552098217697058817507090428347934694047723219986374800199203147983666301517657134108867042089671467477122636112980469825512768632655549154130710710675273912787886931624656223046040653831761523998240784711284949295817320378893366536992505104623165987183740309824206542212520321529914107444951452638705628938951676105480983162048178524971249039438938694694411327764645465964373266094284816451341194270494894196435456271804678084711785586802344704238225012895688636449512253154786191991019950902116339983433869775050945971859788146998616648865525832870278659675490586448798992670900778361972353621882697637385731039282827994939884372306863161248540290986511740578049202717045066698779903090120456908198687745670918303236866230799209053810103136893702101297977901549676531826759356180772459394449682653192950649725870147979521492653432292817866990599097744110517440280199990662854697191026926331819001852587658403606115769480754028812939774672823358673747519254655809776395721032925934835150525764992417544166129725270999901525086599884664296423435321453904947818469494147039309938810787025285915961021350247788982298991713305249473973636479955242480982119196469034174398946047009955573630892594023083499171789611545418583788411759052710873047101532848558706716368073614026340110012135384332278759177702820490371246308299094982043470398256231104621727425578510332927020525062489085670839403553190555147658735467243695802539978781584892719700636347913794678369656245692001821201091774209983099242427498365041064797406113301978968717896778949250202518935785438716204665790132376198572870584952095298308549248556076795889952644746068229780089283073913822378377477491619465603861281990713332051202522404665123421526406092381104792579765626932321424429885519043629912283892690312302878818053699668025776745485013374623487908266973538274760283233763917531430580711567981462986971562788104299450539498457848081531030892977084680870031540550324924322143458211808355591709847144215750113834877463089248076136624655560162918646729052355493330970910305671080492375621459216071996030813300606831715028581894592448442012328456067453886265238506556070396997732722203215033910028584960583334860685203232793631774419093017153819637380781722317646629970325218949353285041464755717772769267468076397147308139844872242204127622310311160505617432271501368603246237522652372985528444279732560281603954787894858306954921441898791528852285473156091107716302798941053103971281212429083956669823365434752776829686598477114853047481173495607378025124938673062025225061751045558737675996808147849103183933620267859714256945175676979333836175595583721839015242494353986624496568407297280883019807904359942656781166278861113047295375119827194531118028827222079262066731357197118145548432896658327162435843094334943746725534464594301373166123403110789420010408350703817310827336079000164621543133103812727445433621156919444082871749226927348242860526200205389604812259911276178975339295763983996211139944499374206876744760611451877412176304137742439029893555538152553447949344834354456489542173066548454267071589064667825362689600065540507486500404626251813972459488135650974131956267911008075915167990395327950893745423343403119967513894612415594217543968429769755948473271423885027779406101637277193309678491783407757116288271195279573019666355732481651256971685082485265328987174933265099748449469650427814738115743897152761025232617229127925225025817046251556652139403471620792782490634024759395744066066795069191792612124049449138098222577742754579338876416416840098329917596335234521143342657739135732273914537554405579589350652013727510744181903292174373135349397898127021841876012622053108819287665953609520041736408806708195405608789004680108539021361994241073468154896114909420432261300701902587625533300213512781717772507794727150571528819091843009839841190138135676063789929005606052840888288871992222623066456829214668499451004153681890228398628624184415445151307572253728115505118573917362774401536671069023064410622916194466588759352824107662202414746448791110030708133623052477386838275699012295217022455498031753247201943006233464714948187102079464213251268202862280564119950118583015444993851627960543097441934203751870783280984428769977804510630988673825966788917260690402352484492500013584753490898034670747493071877382749217009718740247801277805347943784979820887201036262202390682152369823377680270495054579778966308208254463304832118077486409361630620942761032293728764551884774155807630114192649000250390043306658489417342834524687294307188443176758204931689647935697028093934480617764699009560035944162302597451846328276471819679200663199105672637312052432094409209733441210475640415746368451142857805050906496057859529665974782325295039067446493248968513823463801975155658028565881279601077948755405182548988096914680829606791245882098281326868562588495509283437049324410309936905976104278232486646891293747035125802316856403913299701882182912079716566392939376061945130583949503418383443120005311524732874191278827154624295985057089420854332008477038394133710464661835589917793887430229645446670864646992875542484203025753942083518833240033735611421716754990202670229782062086317307192785373923223258125221009275656562437890984146159623744919079359175545455897184247845742077852345404687452319047326896801158758521909673517674059607616356510938848836230600150943215007686844618792393369845265797626915051949687558154590132351849264817251141938562139939560553933793414343747953622112888772801642030484357631582340238742625642857499871125008365883981596190447829815492307140873527409205420323426254394690146305319392672896727805842689516584518218458016068115683072553915170673462859253016524474532408315087368264627375958682912488429640822954939610905879460921667910573233207687900160258224648114313347991263018605374747182805887028537870579068296963486426132543187234091248147225363293904760358962762572226124209258850259683981725381382303739501583080074257053985295200601812116029239660681060867843314157947024269624823375219632000602746459292129341196225851336154543709767958993655746209168521221729591565098619004416421573596225286225127534722937912636711382511616065108582596544175345392922261412170425266819256470432809244285441886593574941202225175905494422167642653612850666120895669450966883148600354950841253145853911974011498233947116127588521211745141652531750462969053382183525199240317699596923343633082134304283527213889876889206266992447815973106424083819641442278190177681730210015551563539691639805966729354058603515427665748653418740512755973283198767786484510206604902077819486295561445967688401421115654653068595086373890158575816933696416287894716417704182292675741715490259555918301871136710541486680725556307451400831728546671614698498790745340133171621487971102253576674275609045199188968795460421559368574059549637820266443439934363946431898549577300655133128390441024686355172196433319855710481916715251563044069315034423125960154863040423955856949868459132617500280758301629274513769626534880653540741452255690124275971747945985607506429385727602612569879728704461325382330508931844080902828628571645292508020877400081385409120976889871164093420713607645513968388628600175469549464735406677672317807908211068382962381352725859434001014387843032610905752374454687956660890104779631104564975440691157130598590530613936618608767938898127887919766766921687166678482166686386398621189058510636224887428259980853311305133855839672129512600903105268066508845026757716295994369899699742417313350057519646736958935868574501699543105832299758185638063471170085508391915451102229280880621908446992753893293487478523781425381687382090153274698666892477308174799160858716003915915685379539753830913614200127255025252002794433937709442899126088878275580132616614876481420742011013214771030505958919294832758652427781693579964029071283126366294514017798153662512858756658037971778790133919222212401261746373080899023309412502510104862796365799132330951326258675342470352166412806912494743109813083047771083069859128208731942369571867041643239204015233044055394529584249278585240583471798912266238776702057110897390690359780662765724608183006411665553233685530325772045476851045754447493944112364816362211928298653189322711576506865692397130105668559532647401420988635709007933346304035880240043094369992048480386427822459347984689723485079924545635004181468654587346810206540916538566010836985793544066159607098394803175485481804258595258829597546063746553017329210641107510490008019450353281295908019943069428128908694811669298538288806576811547755438824352058148909282572248740510458867806807990798226755452560497951426417033820827019570385966012790253902786519365126275297616977585030885448767393245653328150459854543616959743048621268450000833794041388314192814209055034828242066053168993663372484398000736346535643918365344843491353799728423770894274154410527476587848910938910189903834397757805097056069580185944605275130933686296472823240400596802257260263109717767768160096831966890601030177510731721731424971891124475438510875026870137782497555609836916180921946857196101403848002505475933416665699118155016989712173757018138580229821986573970289754160457302857699932349415861317133543892331736559251396425541861419082540231246848365664850327879089242091069510304271440240896212826536776532639387546979402696363706944538365831364544506302328176988410111361860119874235888245233415631968244370061601857522657941172345912467138739348958097295051652791649145282220763981950782351800049326287053823923600857156741918288823140322498663370538632289098599300118587951104749797109904608787329767776520826784402728561200180220777445953906504858199321139314466141712535276393636755344409494980147034254788562204886483935629288353978357015122575004112904598724485461606711593930683305796841251322910458417307956355298915156909643926355351657196494474860096469365259519449183473404520849318543979617312120369050136805181675385372364809341843624812432880489514779723722616046444077157402314761177264289486545095199647271585515009327699288117519560200990135722586121566131846137015347252760613481558979779671475722674464363081978136512109848493764694473798494734293110513169844763208378117855260871580432547790261412194816305161082412131514242172157598517599352353182239937006163557906614278840445373175235872119700444012901843422090684355865928354774231387554015198999118646984864881195009359639691241051408645296729358770155899441994937023549835734079604504618900987038161600578762636438165109645505262982207043648058754746390334838934917556929703640463127224545749108322465534100457312317216717675347533754585653368600796347384970837316377981475622965581973990211786077173184471265394733276984791412891041844438292220663268543777891533238252381615513111903566639806306237507839100248303091382415134489448115918393965156950293640596179023112855812201042340181469042463431948696366221862656414757516393619998056482524055805277677869862182066726111858017907530970500795930100294298084151171039829492503809273261834494734313442183594623776194218772754146175525127944774702558132066098195832817422368675626389191080344130319981621142597087011724278363996371220735012340639216649140244236421326670010875398634155714152348970548845514160467889791907574756986053391700712034343497017845927477315337490488845489667541870585327354298007590039166612978315706795161055924728834991325280430846702105976195249633882644732481002776806941808422359218228402326821718290872870520685523287508761854310138150505252417731073326599872209558335560665601662548895261354845851684094116573222581028913305226545721002339202196386335813104690520523659023010334085000714886942862898367293374933823827277429532281476556889029134018959280234436406200444598258069361590147771079558667709558548426577647073974082313091932092163453775896982978717349502769876841770357857654514896137078885059887124014952258501893683104142862832757498244119834680964008855716106523786334179473410557136125731810444871826818047265761170292202457075981461336535673459247877858510150925506697118248540591878382322961326430095929975713258193976894125968156517068699179039480757168385865682545266507899097861684711407220176119646209102206913731445531291518325685116480562948328101105434869582784944232322392398971676579631526011836762188836444249681748854551765552055243646985552779573006567185273270362975010492882462769227992936640282325914853997733906327884105926874317740467844402042412608640119016280113622745917179403946025828423044613044069340174004728522999215170490834030651626224292009013083570621829874816654750937373035949786427549927475942616961762927604653514892632207094460358213497509887468166324129507407627122274345306228355668203567750992709470042101262703370566379471735161767373809791350747304058592136373643082140157039938506672326017397979052068444569557715932445169818840713203375781069070349780142168562471426815304132084875224763591673295899423261877735477243171840871867480592313018852877798529520745429967923196963559257290158669022976271311958649970878419457672283367876919391364297371471439394170219239583874270241846965141488742457903360506959430643196538940084594307921035330817228477198600099330265361302106629533719040594916542626099162951170000820265950333431359120835212971252218745283682425898775639817906387418210438236007049358364406037210549776992196842948056439240187370365221556654345126869517557147538760207270715213984250125576625509082237427552045567445299116999854245547403245329701337188453015890607639736214725366635104681569612548128557453689364390221942178923155803232596896582951988865333453179752062174206769783400926435093672328820050222578797967626303246803086071815936265679007016958050575021707648714373186747648271363373892975412069051399183453801411541894492363375753423132670935064534134871718841976162051138252480976448818257246631799192890396897237840976224380815943821702393939545104631685625972605199342807102123788909755945471236738385953183090061239763769369165725342550213194024759344531732718592260103083417255333863651507862691691755602030779667578720742260323863946168629164775794480446028686398227818749819221986179337630117704627177678344319273855330574763116314578562450954341363737795804971891086150375917439410002988360849883404547870015195007854947145248708163763418060002726174079558033461022092499250978883962894377549655161335352030538830190582619292041714953006037360308682030862911302699560113763581484054032722983880636266444986276820143313832887470636707765851001273277088943884590880042809056655682798357312111051749481663744811748932213216472862700617750269195749074092475333455498420837091281958979848739538093310122197269294321182237433971343227354868777023086998325890198706956877312173793486831968776695450170790138134999220829703171279727768963740888801530519741723916094970052612087524983479390275093669245592800253582826421399945673951654517463880242728334526171315918783853762988241802197273971352409489382881222263138908319169267360835631852665463679121134318346053782578893811082402603386622394575911806280070430746790935177205852116791450538510368293851091817826482223889080187357707436925942207672276552855595360227187120121627308425135455438261069815824597906442962362023547742879646110842370192038623883378523103677673335065545061210207712954980270912903640113324050807672030640532649075964115310432883367587438015765344407238979020459948605609781306086571845878552595926467765677397488821492575543553943885423800369099224506027322956626036447099054617401192898590085521851185195864392470077564914978792722773239391630632120800512008414535220885036082607233466153374308064042385296024516914409373892257060358278314171392869849187039562688998013965217440633378777440367507938157557687961661852858597038819313611339913734473532983767700374530909579300464864872617780180940705119924485971548674886242825281251708922566859569377088051981033795574781471916396313648748332874709840051764479316953194136621186644905839993590007413092674732762777964533870917441436320057064916194675387803607183994431491436323080552584671532874237398228662392833832721053268919127010217101407334972847145124569852321629843610734297853903694820246925464727307767518737946981100199050871951001615410281470513808160826914234864781677302194290597905912170664556528193209932139744167276857820696015260761938211475393285842554102658971260572121433920544594581030164476080068689091885967132959656565957341455567806877276635299655018850835373143278226025413315873587418623179265411388273905136025213463313228359329855393738814621708483217193991449848497601040620470011647029145653735008569081027663497895030154401016339874835362309396259027671205761982801433472294470611196649814584779103176441914204052089449260352301565888850597753545151437392181191035930074325052189467035920036647645861899942619229896581266853145268103487155878495034451839332642789702636214665391335794300682359850438497208322345429573312392047804499599622850255292946911598578480402036652878257010767804456382068296699517482195937321958025411540021016049051386147070040207341982936291061165993669918838903189943434663244848753608087318486275075778238621249568847939516888897836587895098975609993579177903616620176047721984869396453137524227401700925406562356093880282143805656415286307682095463251072628595920861704054978953421912906763618482039548551767185176292468164125370549953074428107942528113482053048572017844450711937711440314690911574340794895167775830544132940037602301791569579034140447818657976777451387649567873151824604921109427504074190247592221579900145108830008313441901421527698551271264791897245634463015819402531280116234143630792937005205899818802482048629428970357011595130002163591447293599231753169669160486992735172041797978031580215233067423449133974986651002888825813618410742371510424801443238579879414161420482539404879961242634232729070944030451397914322596661037315221002666960576167561039558900072162139895798035310617750212872488570070441392598082287674022092884292710781859444859292807585433843512594587925479723103767493707449685185365308446148583610746269783545627877868197339765286696096690115968174488254927784310703969161478360355905490226804901414985211743008274480110377648139484287943504030347729897190305570083709165844909376468770144652932846604714747734194442477099719798354977369710135414634488136752378538573046245123564620311758822200603219445344114333166536583997622920916976603180593243240397656874414288122237689082636250453952833890247710064936398056909636999310864074721502049621720951909761964350251638859706569989102939944561825739178160255175536476618257905514764599420880622283199377454474127557260187730540151240132351932120324239979158222516081206423200417462939618537632565411228186774509754155111354531145688165463228796878691592991290337423610790822206834738581382611343406463528527090767652512439546464159376969500902973342585381701321793369677370074027247596105594996089232708005631508139980529113303081036517175083928023930012571384269488376855592115871855808172572195470628294257634091174465779094974138513975479673526271462718823382113279496129348932187325833524911338040319902540189143483781664724645723746010817266626321490131775678650113246562894941020322641894162401880962923194201215182509072999566284007819917259191161428465207847326578958226543673933737828696855118573984781142911820956480280009034754998980674933225177555414665945728016155204091593374237001880216222812987725314464507456149511370297474564689313233347824392254774519899388988556265445089088195182984571039861016149787230629413510722839926613787304062699565870191599639855371159795827834157619862696922998424187199013260207975949010563000529560365673197370769157513844101515286179892641675010621525645674275973118608942636910615063632759104033859515869051343115284780370038776989148666310182539616323505401235071660133923849770599053564498236032951221090493212599180444382231357287375449148217650640620567253872488528197120147474139877720193422834549830530118843200322931567448662923588988700461257496657785260885083041977743866918354819214116881023491675106020681992377993534672127441697202309019467730450173139992579296961134563195106858237424165809453736693360872641650921725649023912015800702819513580070935656289627614263238594571929256088800936603244429393654497899542559110210482556297115599213948261035718250177045954904682597752152717236949882873704353479977720885650000027827236821070273900365732466908674184017320395988579837149748403273885802725470040449170423588194666829349134836167948065662644853707909037863435984648464987253027956617559839653041308044282151893987742356907978895973438831093562211284162924797115732523511377681331667573538565569816840107105269070588131745814082123442620542359165632747406530410518102549742492547548473459724003799181848363375187029544575116417522182791337059268095904798977570518929744748528713465612406189639048296497172195403980321443236580708506045431565459457936156409513191545105460107129861206273839526056067320817184200405965637970597791829791127572158322283023738777420541605164649710155921591452108567074577478316258230098071885095836533832900571247320719600936100032379875710537586650952654930413796470473866740162173915739775568813747321183749851579238477491624879447376712350271224837878380908095852956587208031202497397778710675555985829519502391848570181392542006336012763391027794187853917463414802024517974686531586788240539765524267830643104015709708317907348160436950577577839048219882597802113059292245807606726175332399667055135925599861500608104954474033016981075358594621259242493275349395401662250211437438323228217536602634786394963251298095084055087869198753920183468656581205054682249165722977315498709955071049433967836629486954391310515940699229018071948187628571880553634999395559497970258665263623482950707079696959080390180771902888013795939143883099402130038336840558710126224659054272947802916641558770864223699832425185054614029953563200715330863931267899470033244838617540948782273053633939065481776068236206186744873870657211034911170462809563597281527885050212823958465678208429632082370980828769184311327942393236681822977088763251647296056063114573492977169978048737963107352323607621603151653040108968950275266751025105702200263082656919169614386742004353510165449810548820348325301185905210476787045305221051058597833596728109709400754180675655898723307640865299039932553397966498890248483374048921404442709730641637533128749848429478085948283726367154238362923056746918212895568119527456965235460697468889320338665932293296406564526878010215817175910522661222715552182672534719735952825769737371874226826099239119430028257857444586883718098040682794813592956870527101350166665879086844320548693749633667739039996225234216985444448420018353659083368140253191226764143968507049059951490017836056910147459853246144179884872588840515921836444291497872301650261785709280551344035832324944166484940652322344069956128391367520043855903826950221780694492317708019570003821263885282863995051256184507491840809593641115247960502488945892434684514085877118979754187831030982315307605537239636573541706873157360481420134878606672428351111200735375495203239179718900570174621832849056018710817829099238725932925408673620034487258257718157466465737600144388310958949259987648923743411498541221293776176373194563599471313644851138059287768001838316649202867709320989105309699967886869298104789421615801280620332183321299478936553798459665166069826755651533224117368199272921803211770991867768024172118725698066103252008372007058224916040609738315861407426938948087113058131752843027153148140984042174595895580931455943323672147380981498557569105528081232661418041788786155282425584772828365693324939069204602238501608697341996989007362875878864497497976787066758500846597516184176246732859988494599233399235988688515650103189552277557949924814912506751011144127552360013168788683052292435134792212080148293506527781617107466986949224858433016073630143284053711130180631200442000757320341603346848430750056531032972175399283540377253169136726702173233468543803572361142287180679255721902666655141712195455951365728904121922843299973080564011116490682160965896791074953392603124997877305518195538400523007289394099938733497429524575192330788459829890567274789013110840014520469938046916340905605668915364885289325561889371551620425071986759648381533343472727830343542466600895318957222055302357402533133336595213133085734202499386781161660648761075472599013684045105126297261025192250044268934674686974313691784396414273726133485734243729628098534566034490523628215317453390477840695198421957027786536717688328242507331038641529427974285388989385748113717788875215624470023482690893999854713829430050608042925929473593063302504200768388856469784952946149546794134583343021500538488964264765604982178350848365427320209376841108645504691698823150562188927462827117038901198987874163978007595795139905784387198666785884051104595752363127896959620894824543861841568094381514303583129291020874620326332554591399737853290621270987149862107489779405157681074247724190720466992460395596147449744977975148964502326405901098432424218206912480098696457271180880967761895917619798156738393162858678177344598560113934296136581408805284848886250269522465003206153226460663712491742404878819083989409066447027689502414849486916111571516849771062746207380765681265282616142059359572786514173484343471062093038036944926394538994057920223136708588734654526444458254365632963699155904728697547528041125136621626129743877825078671604492122326306735601559135172964553275827905227306657884442816362838449611580249098377010069931490099959084747715473933183903729590004984738827983067106551703144796679388851871526536535222092659983738875793910613019370176644010298926185753767818624958444716581511721071268889704045198445605222526788879051249896731683834632326291051125281815886211903487225272102246620897599608271120043734883936276318499965799158844898079363633232222671215743160455807882309611018897998435736737340825839788539108200050172320325698793218546662995060546759025163618874177816751105362104613613962640374786422728922038622019896995007056372602995279136673869798536844472704480779936545124399956118204478050322792433971263619181363372702595339950744311410067527496069064968957382366122646261605873454617051903170789088937472280232593969583785988079493660691439607421596211770770951922501504548395804560233849073687902465162164920424545560995150924036681104758950491710797843886704910764475997437185875828145603106741491420933599314213990114025504437787222254341478214088941876833810240791116943000729294436952474174514038453062749467815416680899277694007797339805732774618670959156273927837041622738408619766743767265903307299735116781943067479803407176029301249392978968212076232609208938314115649594025545653926788459020408313466558908898706771606733051075113350288337877794094658066191712127702945945726426751175084454017398573695001342288594845140326615017295027244311284607521295818657546328358032761812818904049432836076436047302853077335190171107375051028147122458816038908211649355540890419166817867573446232891735350368162623129260705609414566523629101327335667221411911696754789001510509136568877974305852460713122622155352892534402838483256178800526654075680773874627690765597579119507101871514599224524030778095051681134889480743255623361829429015474642814312595019565420834383678874411859127865101307131457859984672564787789556829291727710236147339514100508645369702360025213692454927064239734776879574754317046559090741847883186911183338114975668657273206676648280526093228419729456723841995970685486449159398483021778691136792904456809765894509132874795148178025843654734222719020214924154327038175278855862274528900383613215009835391557704461926029295334585226056588451523905744784891774746901187324139336871851124829291709778286800499689142053565851063069678186689024479838069305528729393485153600879225201031123890640903627368775523796366147012308798591752934609882244248042110289699437685005085334086173407168798432606664509092535226001269914405280409779078124284913584533297560896851294211039761165627556540383795611709661855005499478177957073244854000868319050338917587944083461207599886379566154272726366282279409074513247895612847948041232705349950182418651003554506514336262622278388971649816673968558045727657408193815504806280384720031576001690598990677068140059979595633119582983656509602144953001867690930414656292012378128081206263125256175998905290314132642863666223105427020813237003408770545516072838094257543083488181666636492347138558241953207143720120990422632533967086342502815680510345761320543072514049024181891683314002932685319792419831870940979135690087369648616818174680030113743104317916872906277595029074061266741310658655192050095963037020431612904492400874323574208468970691573258264343355674609208201977240680800566134817282504835245679654766446523629502976443285174546144440614865971745785097138438095238944698309376667891543839685320197003774588765598143745113982735982468832336073414128509819435782646120681079246317691052480289529275920345378227881125981472039423999593292165116544861261769634418427290502338757073892823762009976721011103949728675418714537832019428735196345761823155920395602565238689785004264329844367703796283087638290166120876093613859552091344194066489397116101896131750471656813251743842445045631652448449941463134889122491017838099592360769060131619167890364765212261734495867761091338033681397556330945859107304703873770010843011968400368554230668156453564393109501465143924390981225151372893593451394012736403470711553957114985725428082256899053243442808429836174941128983760287641511058311305056072553466587932341195617351458786665308120407728957552227483244104862497154821309145735395816377608638299151732117579585231183587058102496679741879058685548046019247351040663992709321669979335790128315847871932450368402518714993254062474103139507857071862449214099394913246687137227697341840728788115798785692530287751453551648209104347106207784621162525077381826442039299762652178026197220188473277253850227704151776506034211067195995237788821495213313460256559614406187190128756263841150326287917595834693584584345094094930095768221012770547286014635154080195210043148608550515951874991692906192350068158575763333200110533266063289748523686655817679838550385694142687554628006277990218937965037506410402731230509815335558709320913936164695433674241705536961765126252596859601422276029242144883016359132961691340648238819167862807949372883519144710285915528104871709184844360830199860131686765792507352753616129253522408247951088297827246053340837048974687831402584938776430558134780759574232720989210959170447574175256530059477071579615108170023099529508159522493063126884039638907326220805993857145622202106088257868206253425189737799896026207406503412964902149850796130993676916270896789610441971652778987676034825931290833560371800506963580440446795917271916009511315716871364711425013961543958412651187507551122268914804364867307350098600284492096759832336930298882945290042835199094962264898797527019826289226463070825589733302024165726582294078082274167274627492210167604506475290081556006327859968194356580877125386127950512749047786885782189181454401315249875631804905603423152195677382896799900904054621349679686827163734376700217502558830172812511739235158699455060049108567180695723953466374206121862685068769337496299307878544614769096554057737505305412088819099088404416750117803682662685100018509433573225134134676189173453527538464421203217637179701037200456925180435023685072472211260180937804423213110907901579813440681619038043792199013102121404356632660222529193560265201869251758245404129840121463247498779640514226125939292223656734888893121499245919610115520150446048734366393513322630151632163556762795893024473681652751992920732744507651213199614580565764690154788919023803925952239757247124299246664404844762930985113547240725066103395739535532161172847500715011180097228446802236535517304549188511297417604255114015938976883353983846824690165761629211557598033207635518627279162153036740672525466267127449241887255753739282894743981797086344213827367962008079910344975375080012294302728244988713486252839645220485006895262100856362584387668695393779982815101122544646162857360819150778068182299135334758710947447318434187105751643131619185502643593668318312348158855521069712807079100129119606532683622992044463861150291453206040987689718534155628301688565586874849392674114084010426821607243472269832715286861061885795275855655389887900749118483688843390825869558665756297026142078311299041930923037885102173406426631262843743015152262702847454610199797027847064770802136438597681241216369210480690840472057302238830405983052293102859352465806662332253760456810376085299075175751768185478128946659578895216912795536478865106634157045936449708212000300708875678596240835862808977368615240471542111751557567279453938903336767366306461217004606158795828971365619837876504220047154113060798697436562946785613979653259240276925955777132278204939193485779094444268636808857709650647749390091302958565586710927671671397321673772054276180501589299033174047552549737784613262614184271004119145400002169233436815126957395875356490148600983770662538054444714682870854637551663879416192264988310050382131918438087982630407761386260318887255895630134807516908676315617130226104307144710820979117264033524386395381613295697623493955068472214020832278956967858176194220849516558573615698261848084603541046718861567166155633587242541400406624728541000895161805167019430553612856173365726774305025872082449312158274566581662250002172080352764127999054001948533186685083912154763881499034113636742161846838598649300937248551218206447953042884364793419594432322954877407448574784373651966559220111897020420015523884041368281998561214416923144246673752519571268119473423445396825716653981259945474914661789695269630628719492347030731576934473021257385662386220989893000660555016542168286452892392050438229357584686324542477365798971430999764494806485074414815255144685574507969468959535224816268486170298476364644380376038671318476904861526284610555455421156520777439088524382506422682561756527539165820202515780662864713437369116135021176622044849576211348254647746677231725758486984238677448190730875036254988746988529382874809090900299684319286147369575160396861366550029299875681945003016536399150746623092901363835914609364672260502013467367785259502712006498488396254061624746170217139830190113635992568546670872333626182776888084264670103962852118626541083254855211060575098644214476623222353017779719581625448546272181861176113768551626505286693722341126896356644204799730420553746459974886069851927780972735859166334654119907004910406780468416992837404115996141724210785461352907890912943505723017949078336198880947686838968370062857288999591289202858480411718830074768475768572389844008676219781356089662056245342493731713357647109255385922194678006693690286372306668935751838310369236392167168607393562405516530449370596734675388926352671680327935660263311133370187755498746419695138466687621324288576517533701570071238391090526537753609348515900867236801886579910236753552354329062538828933004439521106280127769763798684028388575995330338263123819201963894016758605317843581033298295848434334234773871044082465925110162458392676854547322542873539772914150330501318872209655383959970460065659447172171456899463003125410545658405117732602592394041849457855807150478465244349326233187625518299894123447261239398553973658436543555587313448074836354566853657853841943189837216559582255679731129244194558604633670628786595246450208212887075197767822076586977073703076377263194369328411909785446545870391978509955038452065297572115876908390468734664777126784560997063028229941277513995234167817768445083493795953049140280932380054190346729455243723968908140882634612197257667773506381994020990204291302359047162698656954059915037351370970132164391349791272857054467108128932356283923687489121564426918286542280613782860333300749047061797518316141717007937315828262641108378124493942977437141593943389896963362176698935269765937995095325639887193910813702959416726212146160316920264033325801867416846444145756832346739741746755210686496232975110221488617923634165559861584483527996947575431919872245501798147761960033051999474886148750392905887343106659706200822828862684977906846999230895565007448427383895731756324825044016737716399758726868713511283138037170395283470660945923576127971907687549491924869629769577952464743909473531684501418291755106420819113060596846090535654264864169711624436454450416098491292485094228196445241113333279990953938445611988440424182991604193415614143786257876024110707497379373655523184632736395771830068113236000130129428525289765168633936614092241953122180908638320501475359183010357899360023668634267072349560235049837165597444788984263466852240316143963964302383822571356919147662107716100298915950939746587481120250100229029336310846086154894125375840398022685958414591110578999392558954438501967832141301406327600655044582008638957340315972581731847826046746729749495468888564374822705618762310075769725466895257575029676713051181370800650865661489037358782191936153713539631313793802890768895109637984778022616357779126372677637496137112136291130766096466159294396295765241036956904283426616300273340276344063363572199235424076627448151345743807210627372305190377631399744421928874822017526021324097327611370757015279257024996694187873390845460237296455033994996264469458373223387783835409652861747978089544191786688379996902049279703978316381477065047701568158104073111129470811578593797475881551920948938695639854797102263945609696275526669808157696152548966164700661562358718956420443547922781620692411408923114702032729715096761369344394450832798661076293681877221764635089391367671166240766602047273874776092059662944250297972348259950468101863034997855491850356577539700023410105812082446916404734889905765437728417818131592504293714128088583220110779230016772303423495507816725398673848416798185501729289042659780025514778192532876543527769742002004985335088666262547908356626350765129012882528974893757667401621323986707140380182746779376649520896518649541521245330920057175350851653182265489849164377695380648916737284184748309119481256714897847081054683564285015909481692061671601670207157693599371574761460492653802740771317179305667445797783958560611432442378861914214607759987111485525687170184963916694968140209658201562523351492945407998438250037821492323420568159199412936134903398891600890000659373247007889579454183478949847134897804977774239258296734936566953774735753213461914568002795004548160379318051610418290067183772323262384665268648378453611855705393704283184391189977239969966735250584080026835810076599985111183292726426158810287685556453545453478071776192719366089443459006581803993548965327465168449869048232257642496762090383887884164869766924803836426211635446054589987986688259630247636966026878886655597171313287293141305389590874783520864989432515905822158928401611366123902294650650010545650765760018021098838908188787429352841210364575336141150613616813512579960293393331958595829838297591183289416799975080541891671653110571121474705541640127877238730710746576695569689417325289226365039420925403875008310442623111371531166144905185058609825563436805122099973427369253612584461920748188708187050664135379187672582011396732387783401698105960034667388564803759113064863117922993888275196712083826224060935059703666154760831979658796629543580024914727773959872707249681751586599151816260062569030727425359876335181066758192012478573210971798872424438098856748737699811349948134886815668989390505341871911845509890749088681511368806982119962060772116593081920814470657586484868280407610886336946140533823145139186130305824115404061863915242392355378632063458780882372970067976805265012595332631670536594328508783168716161061492217114744455816803025238620476236781591859817695239700976776741852906555480816675150833473521480886862544991354645287755288852841087026461509516974418794553637326553159983298139755129486624043809492505520134325687084207114290633518451917877172909656500708665688507718627474891264148466423469255470908628461068100373090837624510655611304754432129312252234787086934872452097029774084836014488873614892514059807782094234840242791533022483464256010168610286026943328435551236605401263233672012323028463630764970623339924723641269963803480044595079484823724119771686405313524247622394034897358411342221064464379589373153364600311045884981192103243999206480670125739395103359650982652767141475595873606254596708195284727737056011155425877622935518871091850627662549062317948408855003702882480341969349234763675843081843596133607708989621660742976312430433506341817481136923414066754893491859809503806354203880668056239026385590595690734229959674314256388640884782770787478394436816157635848731725534138827970416748684768127183322010511760672969313712819012197078648608450220051419736211994483435446306165179244658526032971311142709862586607965345007111061104975170994953390387533124037811885783766269340586378574924216812876628505436606685113772894277545227859235490656219129205306970816393306781811032819164990995999556099785279249972569855388146617723266881271573602532935256711045436417881729310295605137343326447189916958040256589230442966249800250604977699780005089637397157991174569731566786747976803925245006216208330244056225095830035029428132241504976558339602904427638215965932334438897842846930144166780312306063647917323027658388765026155939567074491045902634847719226308149201384344891155316234001445266921344144642433688771169720951803153728495959972310745682047964625485277906558684269033772724734156667321235738131314787373003859685666864224735741992226693291967460021027764526864114040250832657102824385492490922020168034136052549566074260862109349952082734417162817232719969276881014832027357674096395774134459734080769954707517374678507482688040685068171793727252517714450601190064245597922044546323610487024924853792381309955605893160758824480968686083239683482894361265386530656907618153495277422465890095086049754487418223009609571589926018792343382454947483330805741731684411686380690692770741715012827747186413922529249025050284112407791464714583878928665462764434812853297765151368900603928319541376191826590488205033469583467009245927388803597459855712957677680711289477927539369976184007469107339272377530131908600288844744098107264456280815032844507926019884039060029835124981325340978602544046613721375820844766970403442483870402314729605242820869918287718891251043257938527639839088141104969533789828638586053619041001743442124341269145044905821778907505842787641216337113658966375594064342183917867200418120555866661673712482570855785421845944514674072913578556348615738280004687810185154013383732520944866722259310314371213640929181641361152605105525698900000385902425999281593282673903841958174000989241986660073892470899523310076773009623906973256732518902617474453024682537638167051185296497638761609017857752665692852610211348717817390210384574114248836169867314068576418395732655683558318554434936413377961879685662505534765822110705098513478114488031184527282759228276534328468503604990091030811550430837006393859209091372070844700265998889692962387209943556524219806968932131453324264574203849013728649673618714006487188738346425088839788178362173202350307876479209051195322186903663696632095994620919880393265957973813491199288177682972415021740395324455558351724825542727193042845529641941691364271614911327108516378446765302591692281032158382173878718927008933736432732211368411470955455924896615649930240287709428149483692303155506398061519925287636568926434704837945740815361247932579048709232042127471932174929058600039253505266547178057353004336247973779128630962086178621185472569793044674174963107086955714620758215716662720019093635655324474541131517357338261128494501122168820214976626281339733442826529049125379294463800483572103065973169845684971910790601718552549458337835135941109389055525223249784270830855301799320951428255179549615869814419656865943983229201232527904459098197703911585054003175173586392007012932269351326839565085047144535225945009436268592300126450264697679249596255680951546117495388020930957937066547083668395007086622104795630016076820906086291905916198030602761006061136079691652584132609771876861402690026903810294063874438963281866875462350446639907535116306331509639875537431277707327922209907938254123680956284309150848676821214690231863855442477286371569778743874678508163557771506068642956058175558619278759815228899492534210405166341639164602374606238151353911117324700414847104153966194174992558698767834552126016913946562523736017894175487400569838084754563243890386371652928727164390727408615400023438169837340181582534703760165586552243722648270558476416457791417745785814660315218002604284327523123694167830592832741397372227615794877826007337279880794499578255710668947003315071413454332377877365098713621759119853406188200824045396083058897671916542677383319931506416279187799578523186187354794070660388877312397201053363345603040249034061365952296120607788292082178951097943390402796687367567695832063674220172674224157940365979350740457334980587508121138349264564932313064760769828964624358971675239488223273791083684803466369274601104844959011865033596799796790141398895251428886782469940634596777182110154009993693405595779763702897721042442758278631560314539404236625547247239594012399431874152944903525406137108112479956805398834767379419715250820214043472221929612417152755950860078279347590391075212514125997805777474805402792139321130357761198954659487301530772412651951102859327189297957683777005035012257643289730882436354879365289417510095043810717793540768393404952395700856480320944846482243305074755510983892836540141207219553605177037305398854684373859620167397445034841909742203190851185862396814450653177505012476671954200230437783502700417339540518307220175295484567213657162836002668746662940034999514518506983204172341531102774454880961385719527460715222547923563580882313106662890031593750289862185860665088115552394817429615327236160586793735874588736518575674371822933585657198176269692621137141035476169665014973827527965816426281717811838462483117272133855329042849530374765871200801257200504409570509233093240713681043510011820241179014709265417100767648183407728107272067072853292377810696785951237461448498937836600958281380011792473221020589032294011380253462969765982310417485971326671305188948492657932681690749967548887584541698334859925046099277779407885316464733655705864378438855087298883849336699503134944207528480388919885374158503239130806871247905913708665403667937317359761568651215803854081663053992330882370101356857057500438399518304267275136734308918985738034236399019905774723516723191183822843486151314908552039166308469451408900863549148056651459185919055261387401271514687269202301587507157010601467887202579240335653470766266339881523385274318191371342808701385263666525075849239769063414908103352667199259919808367169130622700932920938609586767165276201518823596549061198784929599634939357445688508230532680194970605390687466840064560371851943863261686762295089450914529301024151629042162144453533787918532126142069076735526268053582495553845036673914449444796121345746053876236227055829779893313855398991103375185690877523921156154235638872309686205912841677014718064722559293342353715542846426536050781697416423654236074350042286390923356680983046482693987835889875879633373811876055406233274573974314565689774386251349731372570164143803382405450880257321355529753698025175397499638754202666587639572758385069913469397598290703030160346405461444698340636605411971559546663547387653140585996269043097532437914361166153521326938041210858081002754530960916605067738463041075394850268447673465026701050800686481689548784808561058941498036866134508074386039328030017195223029908105546138406994636641140634833334894704324813602215812040664559933499449739448069015931512284650253056362764537402232058311080982042141738483243707568849093544586223160984593892365083303518836908806209541436586134793908251278005801074526974152401760072990082239710460817735223625179392918248925626911276467214327963437964271606694608445344474737203147961785904465953834878165487747292783669015242262281732613325338649986517725722903749338890846204015753471238243965427894108599769531346269708178734127818849427953579850023840994152457861611402069096399855098161574205705373242293419547705100290311567234967121411244255654665685736966712084052657394917745578393392491601622512763623223540147098301861180971733858573282964590744692482472177227736775181749359867606077872379542468321771704055513727511342742871891994316875503487317156410054453654664305165327544790913373209514658161971939441627158715264842668133808324324083569428932125503422047172019398835960221425673800148843663544732405219567379395988282156148713530893502471299459374411067485033247139290375420544798017352762972597455781412968144978508342564600432588020556095628523220184726610865652644254137862758339734326421627713469996019757438665466944258825450904313701171379899624598604340011372767235444209372946517394891328580431628696046683984417666228913714658800210357700030231181575263815911485563316742733915028923403832384306006467666291547660594739374604421195198863694560536058540639415902232538580688990547688731550390792673668292830841383217103652332139000542521135019560023195473797483649406886502179925711197097502818579830675159695956252593538164659909695004978663124636115724924656162886053842956973709014701505772172457525192548729621503116262655743796146817150127670677191749290750227474987592815504917629653988731290470738728157848153282454536467361903020911865232047101337247587399882498243202021499766907958980835451574875329903083636271298321919000969574101749372196020251929282440257586697147276490322816046437515329351851916228514172678685644750710058172804184775636332194907022928548881911544383785557414718514560766190406311918970575460350552108283849324570880725237040422017145892932742466399593692232656144781318387928323931920166402325030558037344067398428906855847109186649334650043556365152622133699234432632400429831867869647787598957268200284822130805275594236955334555843712226753445037293685525564438230133952893862589230960493855479407187566387633370906694599405720160795162357727830687748254094067047142716002691751649533686655158326618318318407782657561635301015526773988936596219725746210543279934387950569553185704925654183369139770193174305590117202538254892979969623294871460740150256451600691406304951193618570594210662038177364415402855391297408847383811246973042989555214872356838869437856210987642962285340113703434727301478068328311830674822473701065925469484393002381769666846002425914983189771272460388770950576491131284650396835924886997753349715736150676528840490618934965659836500062087826886949556901423140430884580860658165282086112232672806574934304153391117183640022431564839739060204745181883571630014098011833639173781746033095684103963497278500911996755539347036166161987495537347105145889329354667295327343255204028878952786253582733532631615956710151883349012977625312288987960888473471459247776999591776436798455076377640356093140202848189147094933104624691755494818478290147994757386891072014172224553129233151266719173220197057725087681478981303594810745700432483081924514201776883995919366034569537043733655494984198981838871456560271436678796465387141284631417631292951589754380767582371487812821522731541222016106819353614684078877628987073957083504850288272056532075923872382573047032276876715646823361945181374719516268236192756350197836966846838951918260099911312826417630609076674589958002517598878665958497247443145109739575221013719549366217374617528059518900019053268007408313609055533253480558771550411979981432609281640319561720187022087749422220255122854594366762637644595592340641585934745901912015515006936542112045701720535440979302092297369376072608121542141003470797722490022725079192440115883699826470643310417133789513444642543148760954365529188546060152592814767880547132132194442532206789683330773081306751236368845659782517943732007945067545772860730330223400554997064257349037518265250804147428356620736031973335594179661312870783222106984914676075674704028328491541873251471692496113169595781114386224711128272082181944495742185714387338409822563622976199770321328262342192728672004571247341960167657279585978833666848672697895510766861142838826818403322865432394920753700890230768800874884855671160409048779318665661672090990523999423716507501756028033504611512805316140720742288666928364298556614275267972902778030706212991662020570408104036890511476286370528051444188390314813804070972081370270350075405913779189067433644630469239892477518166984074508003009633103549491964966572593252705128208191025091341373064190286238255957098820946909228475618224833688307166655491667916421833921725296651878897012417977784418750884543936955570901214003524262439802098271279397065362937170493653104877688134800461103727530393757440630445914355374583868637789677317598804058013938322845956677846920378725694445243142899660339431686431814480087852627568902069353896435825002984546545722326603637431222637882626858954910543067973228673068717577128707048010210917232871849404817189817945422162183463028920238465190199162430964246560997808271321694851295749657906348408122333278132965779081203455856950784437240574876633851744196588960326673314676514074162117177343431146043380599688786327485211683823525586110333868034659791937738406847884444821613550284168883441874837323903767563866538161758421136730406103443645756330765412941318434085243091149286171846452573886317129518624697919509171798312326855093877034536479963714453899616879589550590186978072377791340461806596766705187481765173550817904551682936424722071989605071525414168021620163261671162840475745268680754528997279509309414938959215837346305933163189682514520228301004820662413397799936549245356458443256991280423565333380275122447953424520607651831220292218941570154433138403515816826609145114549929840298422454622280438829131189128869318233811427027615732425012148533050683439474583681830253925104325797661529092144392276618341639805793197696980267935942515985992496267454197247910131692834826094093778271430219010820612855818186648321602521633921772577393107387884989300967719971041575889849744627861478363975123138945528552227700910745700488429184725512901355289112165796757153460543930157605773326238422881709617196783065515833224972500013141301049363472287599151072677390341975232138313220009126756738075810809786516799958957525935080054275247165314868202960345960678347706353831427626392222479784082207368600309553792073322092431296368451748006812276462566462713326989680738281165599108253096153152340742113477570138248004548869486605580253352788281785372383002488759752060735653581930100122207870723289523635748140748269193058448455774987186811122960288221979338280718260950834504828601008703465455898950335131181362753400848341476103647773665900985741665642510517568339203620644806940720986243487478938470835000098219244745824382614407082543940702488022208684050537499372537953019237815498693655311416597057019714076278130885431254816141450219414912503133287089541545932020512579233452387071927853605690366396941045670904634758440071891491241852935189414873784409810267652231114277058218389707345861533199220602847379760558701596655049155090986230525098566539324377563751747096031171700014465620063120195591575600707985839387263485179249227946365805826061917387440148068509445621215796169177649295187592658388316934888431019311656436821303307587461204444569252259257099769114722686881507390072515643598897094836900010476699282102207396716688497241598846972270259483604121332256792914814551150909495339203998332721543622704662219071613277075994035150574209680219427216202634543997353019350094992061573146730075288590205845135995922234607675604740564325493762299033926255489470327638133400234979997697161824310795066002847388878691848941737678618058311812264102473012810322273998624770770241450699368595278648777905439312837526297221938393481717834241987977941441667645992252292987412537479418611571202721181338945996955437302094153921743325325048616794122480966633477800954841928811157510945825452608758780099318001224468917026069033800702556034474497776487595226212386155562621534583324961751343809327569258309842413350936949190905612763039484257725575793226462558301949939767160814971557976836559425277283307326289426043384297609737085788843889164512149997599520959393407284588099706650048927963635050625626983985408708600147561076703885204835206580691696477200025554891242365188471528874102663897084106031639146884807841499337979450879832466069322999899805514731177191910580246167969834203266999105353565184214785083707581087551199474256744897695411268842998426056521577841831767993436772385357932597918470063488317039178808346929422257561316378783069837291566126410048859918575487942833729373350171926289401204087171171593004764586302196868658317621371509515635065526446288530628427756612604999038888284636808697586820682358599633354379658374803564918386198239655355260411877666216353085312532182399855727280357933004039223423352518799679566532452204799733520755100863694309727950626520383606240635991867664396597620477484708725539334265552771976101988117496227011777878075691134459363971580433970739054942326957314279661054454636056972657409169426640958286438808227394449947744036065042870836062208775138196532759172160574467186031291128278964192175140016036191070124929877691693032408656057169213840827954765393484389230135491491148561563707577832718679368085691422548451173056913926300816910149459966442269407261246575284500205582328962051937579668209274280258339237046197059883992295478332505905129408690675685932087829970697203300388374814901804182056127172131125106429963884401845539220143602491857452499301095771446646709385125362116359028631089898301094663836194928464666257741441660149751490560468340908419591067008325536484698635561457612948667820942258734205226863069570416859980625990131715294197701801468593396250593089188922403437305005756397703930522013841362897104114318475228658146721080031878377398859035009369368516001855108620254245671846328946533769823961817178892786684653977736767858959343033310585662826392504880897808204882010484182328493494106129395917542602278329939422620777074131410971636695722849272387837957640372498916408869551845587457172089478150153245859570961027098884802876578173601546207114516377637559050465104858068448724934294650062012938138549393118352972795571516970048003305091541272710883856068375405390527677643656701711032267009642311239984377904329457817444382446839495255484884814957606770309350922899922690539137371842804844130061625918319956616284600188430885689548891034756311405320540126688053876153135900279991298576459794217901735975492761262475866878964719720364831995381289078875922561438462684768586201439795846745422749141728680096527815433863248460175550867495918960700427873300327713384580985871034759097486679866746910996926066621579820463054111705576542869993672288675619237785593457012876612234290395923799020229950489228652470582808291574902851322076859211788494404613996610931179465179582135461400586360356366218761660333744149701522191134671910612293786986463483331720571090411347574489970452626433474774681198695263981034811170159698206420928255301639554606081978320847737391391610130681445648426715629097356189593492858502248079946828192232977452658157573030351154024852634667928786629853011274428508871135972456986994595063882300016065979363265063051847362380737208237799866190538840039313782303666437585234208102893690819291430447057626761176834392334716598594542477487856140484173382157847386359489616614492543501553050080543509068517023288881609364282402770484014407704899366920379133595320279249351510683535408257252135896184356004361932261560409957836301272160955936232727674384085609098829792216329528711023744738317206474851586484404009935480315502759550047879640827762203959655909810448765799270582591321853374905503254478996724821248972618489145677595129825621392675764265641330611751879953881291251716763221198514504555089470889361916737336376662658366533486589265897811129338082523351657579563128611730819948618761325024186255389242073913804039234989227358229387278940347400943675613181066603310864949978572022421979220257968269435842051394790823146612342449908867579658294736506915549930482282728157427318551955541300829642861143840704065306587935940350482131757189857360235911093599120235095831004265910392246197095044381341748921463404280259199856822512291935934687549076523535949056234945802295251830387301574026468117417559159763918188642527602388495295305185916649411653754309370411047464714004668725238004436058110869663788029982459415936258438061367044420713088089515241342003992593897769910342862202228357010176987652108510712575431368425338109936985900421789679479782777939851415974231377053374981119299678613980664836039336711004034059844800084149708607251333164968946217115598742398056815145459993949992200708953393031282084936704111343319853083855805788372643431400958732826354070073672271689234392681186512217258661253180895026978900648541605532480958380335482231480132875515587212501894371450879484834655649131382219804688596225646285314917422944210806287714177509471034232991296345972750096065787797971279527371531625247557140843425702219345270106248287888864929645352041753798036279728268160624812311112080622177140089135032250566103073496141258749598900977569973464711433514191241402635427074138437753972851015691871351332312024307913150194986884813323065677096278809216797190106183189542353546376735733863705964198613510098260777985731037954170540000878710094049042294608044118322854481255330560312728506619897689063686206382903743574570690056356085905108788349517674875549457592293641214017707017921081102401710050218318537976035635771329456120407714244603919608418890526042844502233537890678331132526708267277088571322202269832419860446270588349487853400639770885265726510423853837533226074797357201493770239812888237418993039962251202221551111411136385574967020003158347209294951124748843762333413603892493034976039728102461059938884864302639190057835596855106786814351730276957596231386519518539822469734742002854083674758749666234989705314198343492273678378421942688166155669834743951448658412884392976700953280923594568021938949851426032470023519559823160379656347583272310753636680561416261637192863736509910600475933708883499366034961227397246369658371140324872462288077802796601926639182008561093338131946819576641623339053225190838990684046116773365361666917644494847932085095873525296200254858342024117354920020580523211078144229774225063459589112734607403515865137321879535684705859019674662075665921224029444714581941801043605401065489009891445053378725528636329307321353189906352084389235158533503626158949627879938432511034135771844713050579332719217320300845148192434922697070975575774280143921375560990523610299080137452795382063799206399111266604449351525281941287467938736529481343182951471897263635192472058242124137859281297880412830131139349107375781767648699910539608586941241279825055426569780341202469553618375031089396613150037026128937612730766517970275486095757560591604305668456363833074279188083364211660099934188521566072799798286092024154473729274750021935564719072862800744841551853400785609392054354131232598818808757478027490291274642184445856674700428641767165060778060360311083920421965212245441162073743764546714803768595113187504526450744882926885559134478686756143615465523835751868845148140128182362330198789921748001130178584999217503402132873186614801609692593924435437551729478893154193206735507369434775985567358144250520502466683006733934216612841842649623575836036597479355243781049558162763915065217771082638147084525347926271548776647800417469221676345846705428931406875721607353586795832643680149602454981302210965875536393417556371679938483283620056239597497660919660145846203326429874415463015021091546711206039755183916714237455620336681869168739559948065831128850841150312510043031956829850986470843171475940634024659743140295782721566199935554367565799108405777906915161853218681401430577310442719444893211470259521276969144909822807419743912867359752302406801100678870432138184171916069543051381709076900993038216181788187496721560101066435384465659400834670265969306870806257138194617889542805053393605396068941245736264905564706063772746733957342554097820176458826707531429979112663339144576107106092196022385069541520061797946773674542672029159659568168254846633464388853876031143632269121932811964676458038587831235459488132635621538760492003801370856973446425345610638089026031271225061816272069630297870789627259687594183798842341208415301048946569627706550602642308857903529213628239937587312642016259952981098395238521487198567782617088568651530360226542696994905631145737444389145975967403642682747792822254380476942032735684387253652273811878678033937035716448011997246929103657238191536023283067620753862340214256098980693229456290004201700656322276646211733067041982238255526045910865431830473336749204324492746700152578842385106286421605236132283184345210774591772000233872629760663425220701982666475800947719890160813391539883675030158891699182192386991567091873305719800838629188106321933746253370313271364754504300520552178855485925321810376744107857156312015177270173914979902456429159385668054043422872956177242727997352519402007145996468708215214723237645703496743360508901501908091181486620758584974025056995595038197074750539173593085053645856082629929547861930545550547881570566700099746811684135706599197158886554418521237767417124055233375781719816305200945349190994030757556030769122081538931913142004973828760236435579769246066299623821110733979405192706714859357695847354961495033362266424492061211062341709612015651054325708799885444971730736983896701324442151915473164310982510611032866507678789868346971748806821913553432876139733631813400551564219556301691085872124906446431949532705312663026411615023372938441436963993361418918482707548206060558718441389660658423272079582108238833671442369571579657798485092739486159314470424333739519048377972437499445684898217014776597678897028647407157614967056510008881483113574529959297731951136499931405074073743045547353511326578640421614172549546196556992730493545400141613135892454385250372391328974617862081203161156303915759871591772998950627487886733233006259702807069771223968289535253729635448491347554467149021478899772950008269845006154688090696544307057339356824664704072572912475645337177130268646488613783652815912134713857922167779796735729108102791075411399039279560611158287350587188666304945527579075571790360909954947570191423926967671594870529216995008485053509980918856886138820404805763373169152549970566523342522789111456274574781158318869944572574537246512569806634155125016219564722033580886485547044736092855171754493594739426224335965051728482482398187804676236830305401614387973527938551243424885757290966199762802930566828659898131156465277114338948246141933628719842164794336412541257290475266703981327385612397017784941449417785730081829892084509875359027971304491390902114775715265891884512698016845978661798596411976758572605304729869197294416368935542780920309102796935636217122518337972026112658344009937369729267795695251920788140642021071857782987562190947693984333532335780911898873317268507538699157402741032947039076997054740445573740266737741166680516486929612475744085664586258139404649264030611149538120395058520001667098882676365601917408177174877141082363509535035037438270289520016827737004933508280650438745379354770083674375030932157248767028530184353337843763550176260276157527377620828712489985207437960497279797074205551463143820739914647921942000065127135280453481953346081072405281218299648833040975108721545954239750165773624520982439891773579631941172042240614557515037260329818844123802415798335803550398233211703700204729061983003347973658426260798940701388646398972902482221446075280030671566553790008467872061222419325419494549642708459153615761829387777811051637321110252535992305222218623887930620525583032420136833564317650446194548250611456434237367120756772328678073296200842690835340500654174404213757498780923926061207916947568360631920442729974989606337192462134288743305789406241619075335665621126436127025015851908191835032987148326175743567738468818509006536334436737599306970850428470630813490583496297016583241189687351540802190883694384256746524452400845981772558667200834017030109000833402882310208660535101551774128623361831128582255402465268686306784096482087261728425964458324879662706414264406033233284147351706295605119893394023837190894893450305344329602550026595225096287646174555379801130929702731392244912529739848489633846400318076596720203042903453352858032536033762766328294161363451789406328099415670856244926991955199336902778550558499584176947548197826845447053433141094345117642514536498240961606562954552961660975584362502670134699845104304193265881985307313866976729153523738538601850116427894379713208419456885604571992258687800020949463133989105118366180455473563508211846761393642445098386091489905017672431069425340662495925141050922002988592019970402734083910086989591440237247912221853148350827502462413799975875954662302671732040874093855192140505177907181264336258256336667142215369756050980640037778470209999637650446884452220732744564180032976093580413611757000266366148466779889450125602891654443528490936909770850864005472746875818904327405776955905857767910674489367575300724993004905956227837084608502720679229848983140096480836780549742448294190475025469123625165106289527037170744237166941474480743949333058157326133078534552718373468831604813974593838921906921652819930296166991066109222596292323398557448865708951059859608027738402532298039688064670451245615884282338072249451083800717905043216166321875434058072714706378088842990201101154918533257621805017721701219192904023194261979669572999890086109010285388506431638293668534084221289142833644685031492378065570555398483164845258330260992831579828127682263071615447107116722058080582936226258054239327154809275063206195239852118404586290329761123579510925871276184598427854401982503394235926290961385340572928722245950177934411403687484211147339192241573089153504551729781097906191001925360076058148838152024553186687621559618341659324068566667054739020310995432236911325913859672601658916674146782953667145409434831073907501891571551557866768650627866527309933816406852512432117593995107580353787572769052109418720029680500213775775978759224332478700746703844068711513876768139463870554229490474884530487626716388976457623549458380728655484764388666685904516537994143327918479775500332432994759670692199213809678255370149695855348014537971631832482915070462072227258973852734777740773932225747460876521984746012069609628996405405684486271606211375522992010950082924441853245456944971863498539865731971490255419630433229044326447992687740352100725070701921830330397729711215723678419086918797927089947681834734553110709703852785671484664454593179743313503657831284901044619196560610017985972550984443121110758733140204701917742461977128315221355286036876208006313402491107236830545088905928079586541455733384568411636850613725024856583308380947926055111966544362876541932336707628565571710589877694043998993160453376303078454167262982457092080689261487561660075628157019164168819185022790388576828492566741091569137764710355051748537922963991081944334304523559006398343355468986751434963706798154707118916296930480505199257809493793632337742913857989425548680366881200700415384825077840769233682071666380765421879835635323283147352181579930859067030541018967058666559890489408302385296100564615225385156044500211338885858283713319219409879473672892906869100893777832168150841880208671311128957718026560272620102984759018567487501449978060460556658711382876427925322931596115764939403722200054723762237023271224318953333229776656588354885871138158619077101690704659878044107161760879919950450815759646707356315100016429993085035553591890137019003771988708029324094956553308221250361963663356436466270736868077007825759097230193505355908660386981471288274690810097294001767880799177038906365610974051245639939448668777654398011507366504982426341873105401428306282841410924697224393178478490956485581328215497767686771638558053966734511586906679711842251555432805253428743332891206299785130502424755333198685155122104017393097317749596867435975261978398118526630214202126529893693995658657829769764127358219117695498832263465578919408053937090640685843275316421554158936394939906005251571697566869310848024288005437902736698359650447149449541583672893406172882885965323169205795104970052168585617339882314724474305015201397387615534113958233606133408443199353839161097724790348389458581451966144055533746837270916733274378503995000353701202246871384933676291187955338880724451837091203123682917941732408285735530628733311546133465310770650672406473139301409443777412420305665373557382598654248130012753712901586895652926733698125119461433303463144947932834278635316815834448667640450437666567361744036713793357620708312210435618781328781871567797785894212171343507825979274356944838774103140788679414181412529481123152772787428106158193547467058225613018693043164476274824711155427604042856990810609169045228908669804834573822880075151904179354927734481632936113939858195282966486743601895085419448196113792306776368399814226466308209440521859653579375346336828997568221189510454559721994503611220360381900658766290304627113081568271228311405015396061268117243287615950824824037992465390191876908974065813560123377919478428189137876745949460713282042715866313042956519720430065926378864712570816424116511010407939753191556575908889580344991874210207100515220057392361868447579621581436149462415572375077683439991303916720625447591982470351119034341879365955365028365406272148326942126013037801788766422484997437947971838866061589416603342133927208141114463267404404820801347147755127431115037374326879675406972539020635199398063713062909473795349841966204433431267773953762102462685662811617694024917878980604083969313040993519117846155902348356350762528376797708975254862048080731518892662060422922865604313516219292370745798036108755930330571787449414545730853692836593557942936981185175376473453696043552082402830761013013813414901058320710470017597593938266308629489855119307913583972970403641086649665610959669628918805249871212186314520917508765173501860041625674513754074723835860655746387938498206939843141435651160800428390338922220732182321584516931858419997142784151682665765496807109365253892773563774082262117068068867950441496723292969450546119564654525509693842857066954237239141094300128239367634322458820739697960796393182952875414844646303952362348510968721807787155119028780270266139274127922370679667114863083257831437612637204337918963783519454825596207723891604190319229048895260226561205345719131824116530670703587721283118599115482307752631406469410413035104712252137257202645448943414413094302141966327704648554344310655617422875445958662283259264344098541645671154959789516674898593110408733561007123107500985179159649769377906088647610274462456071173021804155983503456368430042426807863659246669149569200175696550776057779141198095226640396954044432589190153791261012752924116643497719222199468294942477264201825075972880469871322802485449779450174572343336221721209305632535117054785988108995677692204365919130474921470321967314143923887069981588276366758949925588775517703932606959728804601577886889972949239211703911388762214059628057631580498639324340215436343192489074736774634817422234344725385338357553491161775994064564591681007875250049230409163702770252124950188903549483094645116188446577632355466831474282302785697348492748727966825378400882661712568438435810207176353116990799932711016438823853715060435504829898458682228440747737682550820856875447774536006225972344504589324505542691260780055520249140784182125958854989384119674155578822564466216127972164140869179048349135263945024174486594376724359140875470632571110627503266322622864702149083508132506263806813623064472615767267010940780895795381957668006652379081519204478861105281139061282847501912907243227898220260302975061458745382004147928752936902536866735892448346989377077484057287386228553820160919013935661134078692447992930963929085279211749978128844167216439425034837702812109898187411012333272520919544389336899576903849742730748054848915913497080752896806084623670289271384449612238432448203559980810706834319485795963215612444309372385142626498258786588759668001015829875645751125254432720017004607552808873583211497404283293199017809258409963479000578585841865402633343754102956619115033905380912350977135974087055346108732112404786579488353430185502887706423606843372884129453679446224664952351086535618183172492382579047623189648507895973196603076739042442764718288351311638300777547339588345082964156466829092900454379411752543890455522840151319164344389077366053846254951935816361687518979030617122120974388756263817557144327673340385927824649390864710948743762453056911837264709936195360132912443017723370834540500507230435532485868399414888356638413518980143762273015499115624259569452790155212005602044005803721041097412605890460089843243698251162526711085465690422889772012095792146140760976095332376905857533497296258261969262893439401989602419427159563892748108900855963341199354079644676340799594799250535619685851765054358868439802204280689190147664913172915545215595498067251759968992713253040523565675134109015833457583057735425808128228059011167342258208502140782952478254282046771184798463680351788225029653951870475024089083946208315882829116598211257645754750335001623460599819664233912891285602263775503004944310495977171514672312196002130506691353396960650024291198822466523972261564277612688775150873372877051280684513806238206144454657270638423909252366330794861351903054413723143694818483708170376572450293811718076162674482700373595098446061124258225994073648346141595131812679043200474736547994890744620680173023324773760979488553705079004618610605162424149195418414232162162717949377696358934985135438793460957886389634876733874608009575957580481393570589531441411569459927354109014401563363461708975428653176341255830535343610794274140381653538396012447606801844501046053681566622035539765564099202370811825536570494197297559977226473702455148134682640865648794897908967854463667859045491228264431542456066148469427253916590424452038396461680828112799209773369294531550960341656975366597552544118592044816629459824234515686820017164060782786062441903601460444147341551530562822444430192078264368647051098127109283520151435039262406014181442254217924791900031642387726628213204757760811698087394816326310916339011493381188075924558894123438378843099836554733058516102659262726318448307564193476295649760025429759967460094919518698066936488671446511713806886996038495556947504409272356423900264876469017176150720414132143499064556978384006982405698347412164797875758133885868725354392160555944936366537124137397923518012086875941798881995140764154791862807279544587804819154005848629249465843773742609555381194279998000639938168369616053450788550462723215193145335365066687615753502475570085515665692635217695969160846568665700467972927165046456855599076593019204836903855659559443617962824359544119971945605387486088958281308333960489517057190711315782789374902014298729924807300386085733238132931681612789395874624157673367697241835014934437878195617199243334811392822330407425805219501530030916439089051685895704170956037999974651382642412597697765148316920364233862963481291179714649253569618174176681468757267185286975490368579235000461300030097047094597996954873767964771509038280077388031788424072320252004333483805282960585889271357548513882425995218966870114933012933604452213886576277987348292588708521333484622648812055587864526881863957612188365294073079463913261179268450185378895843481703849723044429091592709937865515098862086782516210969850508344951669261642221055719558557072666460781245093691581754138209234033019766400589489343692191327605419796620380943289042987934508946747975547053083808636809626390409835206013769232023193130486376088778323972463480566159897492432113744585241687969909411010643696673237361108719687332002876143708851483609898473299642552407940416091702952685522259529143826634728972266775472685083296029607007460450026811664690784993461591361994675205413072223080566593650866528257230506941208960373230528582350931521515518664557163111707170871185750233122851237693586519809489725758028648731813953988982880225032425856616354365391729022003504248358891188888276023556985306420195496879659646857614761812995887958354097496754126068478799420302127380942570567519390868615659791031938349668548531965707373994800473046476607701698047968565913597000536636535167886294858373257761752820425233704000548106975608944281257119670585060341572085740226938531678442033952103171376822631601324606130172148425037194704199657391046968319254178077092819785259006588259143079972238065373084418345950098985346136755602114397529013377780890133965447393877038148554605958473479480730781186519944408292211657681805185571396029065229202366172920022519004223813498806931826190923671994896392838296602392112144072800659505584337083237465298072427369996276969627061866862018878956150448310514422703913007933992791710432996335235987983938603617985733489211278256075659608668168630967267654581287237095115868650474861846347006411218230002578768168395977837501451402748531508448473859300868883644645747526000438646427379052003710682271832775320797994516911293708535677098861293748099227871527867913454997915381458592531174329488722152443598427114168036321956034956099297915573057794109299918768961225261094674305369484111684997908982664102849815855662157725197824927585256958705867900830497674411306344111592891118647631210238686844883682511912799934943105278607459992123143560007871272072807827446494452258918756128415968778223531006563187652081087697782437803660584148416393566766912223350827057110872613075818030276611537393380681288968994675034945923625554408425979160049670866317135061023552350265244420185121422292712212925938454647971491361183638345873057611790165103356404243548923731397493332503778882587300822185262433067957210047772155016694796782977958237434658290167862243302697604541711539146494580673785940326838976836923547411285342049941770757034356551545306511421448998623374483463637361925719064198542446345909954146591768881245338296056415199574502473302666854639013029403382612571354585324263728825033667602557701163124556082503096282585513798545988339337910655477602175323372247729214280074898758459011565457819041496508189747318055950299085103025811618282380179685142545013279221099559453948555143375594626883403804537161669910302726952172039037752666902860656685383164797458029162597474898135008885452727684269233671383319363907220037847685437256408709368750065167859722843374102464841212599855661465876437398398975387803092139267325612908418033870571187667780193575283816793366980259404803832750665999861138024229486996224050486356713736615641186152311433640956918070221738867180963524079325108617232085237103065721295932745140623176641561620952251731939456410926726721043046291559023973332652215758641801004427361743136318182775451163702648802135308432008642279040175541827721070217970845867636407335106368849224641542644099060511199604014077202308678559327615955206737396026149531630706875146627194300451024130152497942525592303149085112608407113763682538805794998585327965745971095720618384824403788246904518867163111446360881306285126066954829104839515617309436374407230566711801607866160186933267420491634554072386756708099587300092461739271250338340839206564573716285793936346822722552428220923675636851223592625740125089048421777131190940697582528154256141088877844994627984436126728750276627733310266371964640874122248186801864983178073687357091690588239568239673477755507664733156437130154434417056691275436999931798874852881320586397090082107706513273091764130679587147392093750369212173613985894344024432494796939654291710620559741160407560940773742031880197249062757515829160748923429102715860416924183875202121107402682932726477652256952236757694584580633417746216649478806845822334310906029886781547545035617788893039275587833944847717871272771345899915793429925831685796066766277936545118818437204816575466146493112184694588594903145459539464756150852790555960284527758650413276044846237730980013641419690719205494944692856381558731481649736349575963299425992237595640393090290001964929428309633099705587932796535307376355279915149598705494096254630397157507560869620461549978660010377559287291869717173600358110160875007471990635247882854429874757666466978391481999645638537126129106240747116943876696292423531819276569837710146663156755180156614858181160550251760884688667824476898359979488047737496157310684685456883800046999619795498069800935084273225163239910145539795380558507821515018623620124989754525355585712981305187786731984366027845976287791907006487512064054940515094805431903921373222071926190763228354387477029905124701999701073893499263471848662886307387393497290438854849696451191965770575851043914269174080449029356589135279610604899456612742460055137208739504998447883524680153009090490343410826792072645251768300187787954034488105887060749752009725337431356767986959131200461249342274880419850112446103580115469188555752579066035913057240727509258906176897616401429647225058516750534494042289230425719315021674748219938643406501527251682018303650610801259364898213598138059761303566328979975947604493631773815846976890117931816974026305168015098150167849392749878270316076594251054406250803107290836656209110546369048079273485745891551499597972214271474430544908884417683886076953649779247929738270493840411587579931662396853724024138006194108755053099558771628425528655867041333641706304910156725454023672632174027154014937488314325173006387319030176538915275053142969308012089431436199904600984218739309836914676740604618660656533887994087587609668843437336977972186961636811947027976254802873308665579485071495377158031127089034426550725671844672836995057764571734864409485631290129555057611870393687379668492046364867553570117806811050497624771674346410095648651218210784623051284119284923305463420506219838283573524707849592241936414647084026994714222410007369373607241203473271088314426190199490769524750194469911649158451786339256075945537396591614566781070220061199193024501387070066562936252746132510364598688992940340559498138115982004472124643450757838027909039770198407128157314487347817779936772658305504331330893866600244875129554031343543699795804665005345675553165673918775841699807163226520451392039453405797013646677219395657766015425348277661216274167540633070199466606149618289293002742129955499993045751134127796791644575758395673767969757227084671558719791937719020939659014810003984565488681733608759880630493772495664924495365464856510997559350849840391241518314540502180023147991624479054755026498218509311771768528487885216312351178749101154819177798907301990404440193107284610214961775465581904649673832969952572117958962994845873193669074950822826572356097355004540266424673783856978170961642600713194736946786592923814410347251051246626769451342398815645661942926226813956167524471048849486846295697051265090562441639379353147460922191684300492031440508866073227263766144752433735717788390023496569480299351711049424394360497606081096501476573019459338462420718676885757341797387917418336003597632053293702697648837484328314074216916632302922978245595198690405431821336045742415633091564779796968055118532742385303777260898992907884853122709089524417744413118010221917962756998371243148221317768362337206515287319420010308890298699931800896435988572220430550173071810482068519043488720929908316834963555787385246855686914272392825219491893208268023926490995145928944095366701085567045210881010168361226803483194473427036537403633383491400500516342438732540837420592121119009449020811220781066992014721126701603695047618004743799905980286266426890657382436626391450755635294617664501580991205563422721129825431355223066120189675755417003600305775416581034921533956833695362006590606942876275637750748460364418713428246431984674429438671141275881370274656601941657958299229615105251193538063102650444413607147938478742844986828567952349041021764336469847971135923659653849442455043534849493899879674621539681081609439271732587977659904462226998776139829141355016353892879542997599622333429825090770979628618367550015327029923725869764790209818064271305512305968472661416635177532295139754281701587583844466540454429809431547150901992681616459185631374942724452376444458916941781904712633333168098664946509938420132356373188422256745142594308465387384531036057550198083834721552471170476643895591287819186719791781935387582646441302278520741060141812950780684128979571490248341462027044098831685996040225633255537823078602021551242062149095530934033735128877779903841193741449558368432548020056298917648878508094828809877621692026716449776039808141619383361557971749493134868992851811799664910308871663654430539615484148893132082116979178246252973100688555405412988878858382867198164912060879300238169942289356098321777285464059570648839257099440549019588292806632241803185108320282200471838154396099275407556983135452328571640599126857643387039309848833691995654179900811961471317669335133576448142892314124160087167789671762578237123350401856935382973500259038839510149973334083155319686067171438711187281523594905710341890131331036598899652564769849455852893491544540318125980637291445212735183047612620075377820107892261238168515864331560176575210312307818418821994691145862043381195724243763067909677196971221353734337014159928512147760647073057195361717118159097425216012549156055691590902568942092451720593814571344819107887765973052026509189055463931399498662820214294347030894925739181174065423204047177590051725270494801296667286302607123903734025974014564824641348059844597049109284750080694791451131061069667030023701866425897521637996298356278652575651353067040088794947110868886965685710972092402673887624037331013282476823730460374424807976904189474000105706026064035373098364284747150834879018882153696375553211434603911210282762829334197794069425470968136366145399029648839205295339892510002059678029369710716477556344670061573014927670129447811368514275629738019497093917429165047834647096702964599593703262339137835716374886607191972793374650089584521108003011091059703685484175144477068135211747551640801362622004800533116392277196844732652949863734696594926362824899718293942809597211905640814150759083653053449354509420109744726182418508342338953516501691435646440332685011023061321942449287032642408477686894786657154781072840579476217884584950009117333316314779977246769125793050579391400258850581443732920985324642407984378401567965653107522621618425311235472579947251423944082460702258034532723707227002751723895504452595621008526833521351414328122539336265675541716733325473581334521077806013643568058475792276092634709034440387706543571137985510496204852235035185613239310858319165382008839978581277560699529043034903398473852685128656922269947429815576677245381400850038810189541134145859109805025690440570127343684279154004322367270832761992023771038249683592565349920605371546528791562184868565445899249332041982873784315076075544317942201953653090014575858141819416345645350564770310501289758814866171479220137010977598075606482041152719778947968161233051073686075715765264740216364347185718737881399825138095433308351816726741787229362603551625589051040009725835097607530196264955524037505843186730702353832472561325583443888072438259353322541663763483342978395653990151416118040046232846795580028200339940116062190453652231533715301667069736027893878392727290927046521309301251206897107619964981084298520398090023388917507460736536387125969842889741413665101780223573547059158183973786598791257532452084157605797779658988044839724987942139467080063831237959241139193880859685078847661476165226407654844944022940918348049225451601814377595059104543684864495287381089650831168784523804832549829618370419211912212918329303175039798949288763348377006563264406374616338177469206356400352195644544245498252157959246716969279756184237922953093995642263839607111281878136337098762646483744993803313510210695336989566609088202511697531858571940563802230034279394147995626955699675310644858348757059459375897944366304038666056943372457787925526780332681647161317114621975616643685224817684524190170705735408697993993455325511615733354499367099080877171642563243527483724065665074899147755113526344405184396171164208979621463666255391245162989287298689642321309709551095428197850932890534607970112980320545325680163286905427683121122183373430856050864100839612340074165115390340688259166291054496697463124132654579164116755210970565231720209502929946987275857351071299503651888077127987882143459850652164326129033357778173254258382749996902297259847955293582143636506099908895185695706050630304437089628905388411305541026706144070647800439299363361488019925807779019069373960109691543521653768315673297825246017853760336177188225663119064279119527428115726962634137656166459670000580970122074675800050716612631942922695393334864122408513792102263485847977995718821168063731195478524486569697720578976260164655505582338068809233604178891422490508938256961523259340299116029957877945493846824402409728689044733978926724226769272902427938659060353217955421206440623501118623617970814540864183079683765543516230595102487340926888951275014974496355761474625437360742769763236912788119253902833002464166691800292943791231130455998357861908961847996294345908020799731115930609877230111394837506399540603787553170524172177116896861537569403954667892439514617153396963865447659307237261274332409541275479331337556324454043596769874021310470355305049640723117334682489516126840671424629357289196419512669543479013134274209948928134211915216660777195577027708151125151641109949494995582271762139613934531115213670029416759111409755264806924278615273477307495031475372260797608203535914420320104610667849277753834835306140663229960551302439091116236757539903525459052977318363161050797795126297827083036093326060811317456064570447743863729714383199130273574319571213892267121850394385854562690141279617487814777369963724036395969128983958627585297757521923587413634906221984780717354532663816643296933278064337452202195495954347259586816101999477139860040720210223841570714365030996286077603250146004930465137680433137889304204080927228009438232616627568853097687191552581938150291806493270054094997280719265992325982415444651960524858509450833734393738355443509274231632868650568731879081846490380803328447724012572886834909176423540288977198661891137575596688410819177386242536551342739919064906467298523875031391496601754484457503864402121840203526368841784930609249674220214876581066025767305781536688553093626784652333283989582159655464741731199767700308787116381164617948512293469462230184229765414548625079165351462492774780971134536464357622812429206949056701118612196215250251657101286356628455422887076065098025562448261483920650923969463380672858617701801755877217913413959866490586297848103703216971341679569581978342056536192870695112674797192945715373274492167921174256190852317240285649209615817832264612001028589043947025023582073443146917441346512433027223544854843333384532154524096547537586956518507862611326512607444878227629842269207360766421590365517078188639362781681312382384858343577216767149674420196396759165056782858468053038813477734847803163143999732581373364702961130931742840597118511600297938159102427463815146597681052665221991281067781139114229699626368080186814522645432796328730203247591308819132231195296499051699881076115776368183594132056446002503687034821018082555468284575217531814524213718158778703349887561968671831615992836394582065522930383844028250734746174266761537771256778509933713169106418075648501684557712549019381247381569802063104973832863202192633806021819016678161593273145743971702318309879526167594311704418567981152464416496698987442882730224538302382577157544116397619821722041357594451100913982703032776719742269139833945619961536492793293457839441550347003210481891258205569978774118573329549726197734305491773641009364906079087590018767915202345318543855592233913225981203273547359534717018618458127017643916361887291649704353806780962623278750033437316239802564771223412493363919921762140003314874626570289947794904381349208513718229517883004634972256269241891947782904171917890294924341535300800843133211822465442601602328151022267968781502878345176355387911849498031469889970050523356575118503099623416460828367143497284599065449805053037470556144625257587198547522811551571809361269605917981311516307263468738626096162860498976581139412623061076193857374814212401175311521666973418557236159060304319640353631842311322266207879225576681570394437680746737419519328235265217146152804511135408224889027902794064806962736799827502899915770691365293280578446413748453957009309690967751267855312031603549010578452398429631232185539329766118354181043012233194046842376511569435157482401175986664872070839764014792781951744179667965753533276812857535251264444019537622856071842650998500430785179244040036394065864263607022965383610908458783991508832006859021732654800375869035717951179689874495045399558712970028121339183341910914939065253854607556522017516612427261726578949753607428319851207617196858660085040893616368206174679306000039415721639876820457331154188051201440624052703300027148928248180226790906908117804434559284183590380371955313929505575334669472106675494315999907396015828971385493204224021494838966374982047276214196510961642627973726498465817743518121250606578644470024933640875368917542454095533712527750926039157630064186398377339215854584615706220227882629114566043896522987927648585182228336748613837640776177978738007347194899672461083348523365135472458507156112556834470914875922613097904232649798131774061554537018452485233042704802711232405838229574046009873514669936550233842719098254571170762040320071248685867911915253617975766755753214186697698073234205329124257151248843606636830377274547786429271612753517206830181848028706175680414796141315112841048855094419396415948418010382532852106135151531958877914744586009928070557898467327165802183896680462720282597579464848751281363840752976989708260088605803793177732095158758652580803812339305202163279186472497625050200723943422098538299635787895244201995661021409288814843323816752904469149284829624505981478234261377313276589226706701695014321095818881242277863218203170935482358534837133052987192986532522122158606587749370968908401107414853012719555931694456592561274546332312601210057071158327939885203279203941977317621913418406892963566201064136252666243236548047224442352269994371763878920673091222350793557128057813533442637707814751538238215878789971816853150881417911251529994753551853920602290977686898381272092369848350471699798514687911718783509301527676006950702904137010856569662142720459088142228984961443789725553096430936310156397108501888417565903701394465365480294781485719110162023843357065498709589542646638185706723003674987720888705319623314356901596852433019330710328335694309485754214677225866082480059136114442935522691737082586800973056683585803282587664804671543452297556044543367862472381953551445704374150114869609310948160270116437178256388981894799556203999995545462606186356500281587717312152589975178273814206039610523380204856149697404615011279417493363180487054828613888281380081561309576575673061779950663939279359975042999584593826913104732115825620481823578238996479608526544661809485800096811038429023513208631183928374385925028983091668773103610021930279574651430363451212856649066618159991105105375579305431819633260702852124512134642690692169639486079780964967708775624484308163204435142178901582158628821276603584307752675952517465294125058680225459242749217450395051432883838171429810238557527600067384469649674267913154446228568624987819836474009276177698312941019254506769459593723810058852529172134016898396422705948370076538357466855966472160370611120179027665683219604960695005115477786158904993405456647692866642757369548560676871732568427743428751850891296015508775544349966164804345271772782674978321443134151930375368074160495789531635671484475152505912698820809763354171107629671748095981453752037596134793542138625799096042635250985858662760174085196155776137470594074588346123936330963359203609079616575102655887076791282974446024576227764916087978590955852038155226462526751775214243683717169415969025992797563558073327425515942473372003462560513403802759907829189371670569645638345227933446095413301460172071393140395624740576044748673644047754742094906946665816468089709112351876378249582868091759094041429978463897044498734727523754585907912926433636434762699290038312253224418880325509000752871723171033907035928067640802538145579389963605018892706470053484183502645459173736368368335659257542384406499281904022470322387576092598743350396992002606718336722068433544494916293025956650150270029360047464378000937504308232871648182984822630591187412856316407062010438756311085883407756196311059933750342860166317612917309493821202426169933611953094772470114799694377501591429565122705636373855774593174940760261785524627836782868670591244651226882723206029784762375832611904116682979526234573382420244880876912300451900112512419717546386693070652771532527723102973045353622637682302262678238801019256224580540147990092903988184686203808450043012411644588750601391071844808633708212825626095415452577512401479736322904372541631249922329462557136983814173794261888864654192297212381283488220677305497493487360083984269491743869294353398887968504639366093395679372369656221673909935849171420732022139378842991150116238774043616593168848640840189964745716025821704711909197967446105645769820472291899958255672890480693538067831936681570111302285729311471522687946004569435346621610312204760251340915781380451891180246894418060109037539683184293556926167843763064774025806573237124805178438213209560852284399085329415053314339112962441893920355815972112373946259777678184817018016026964326625445865610200267668853791611755823054598184450271669241189806016854887898762665457588601039750713116375344378312802406287417926911653097078781892951373862159561275581121167256638954393453122162742438362089351947583455146445395958062149507377444892036505644646978435959623985385154581661305206920516359205181691241722041639770604744291831689013987375361187246611681531482401554010925042293948477116179106532113569153638476441413226456252465760599644909832684930175839041255890343261904792477880477416266725786666285269421722341176487295228079575403496747822513690469674482199182416487673761032081683155376863389261422982225407451721964283667017001242534326937060995366499323161824536674555609986780371303267441174026352260168431106922454308446199547131118450239715023864939866713374665972484720346091816205909738539217237867029166156924748743231908354855365412449587466657772826380396072359210296537093475010539554097449500538894993492803051056688708519381954901077217935497778737586829915448836642395436801354294208039892726476082634094248837207232311535921546255893578212406770641373540621156803021028345445556432986107644718806504763442232998860984039676699178964340776155895058955863900537771450063993881352146018606733143135848607636499737252688053340313950519816380797601929682336691273157617957509163103597381543704137084834427434957692086655605964433935455321534629959777104494896363105408902502476059105502639930732202503881437603945750292538307379894259843804892175825796111052088091984293265552657823666671334411233293985962805699351055703089565119424907549638776545418527374726720202141857840228873669341002074270896702156168508275681066709402789533655285707958340131207240687674928643555496792207081249919774399457085930881034299517435352467038882392041637294279648541800963414223041850205413467218543175570850706139447487052231900163069959495287163981316651136264222237015592868465875770200664683955769943841887336837513390980845707311852912706946807113099881650202379237961080818360579835942232988833295836915382865382485567989945688958390620594540505435328968878771600133672411470141395074795442128545900277323065489438828924592372786446431668967701723128478059676053340752124251184733854134728338559626330257357079562353024677601127287037613118825949866806854314085914493581933171584840288170354878211472269692883752159761486842814729988156517983423779593503425061190819492722216721927939825095603030819070107538454925774215834598154567801234963519240738805774448705379026863138921882486627102266642736604344850863573077024061743153811968450113089736839707177468294156204119648957840129392770784127890620487215295249956501591029728985534827852937662469132579612898127366679034918968823593174810994606026169966730839336810513396475154382076395001899421026927960897472226466370162205408605805422126371132515914891616287414177821947492572937013594995650400078870640110448614995393963316627812950702534785028362524296977712678091000132225821785201010292997312061835341690260225236259798803595679372357045595977141567514180812209406818730587891064133727023741842761942937231546090915405027245652353878521594417242001235982929688785113229208577461164560107840414103952400334698482841353441899706148543518043210487732938120082385623597258184357674267451896089237303176918236976172020312567403941470085943778381532593203579142914199951795136066430369783599110307839070837436649513530956445774281436642965229634215240796135029577751527663987413753923267881779228185156443260202247199118254486048142921869753037654719032467114117054105145302064141039486315062275520489230115918710089062492923997740427055229149046511208944453535520727197512873468154337610719564399982666253826319010418173579532803775568326624012301857157915390510292693519840529499911143661266941827818516633344776489159276055623708235943006960606647369109601427459259750656883260340109622342751841451093357643993833624460616120452005477595024925805942639204468336379430120094022730970728534851946632982089414508249737835391722268980718646776971891578241210565193993673503703546133955017574786425151949285496566619268911984745402432391373496746652910423942983980157380113520299833424669045446636433941710023300786969652875992762986022308135142177701794463396887251532723994138760221015768993815980687110967541483711111900002165787943914317597782489070381356802701150829440889245584199549531268660995930707742259187108814877945986613894384051300586229618603014887866212337153802286827406923785898268341228332150703636813725780096655636275737026741128005927938656421010526215365566683292432545653245583352681459207471760439997296505556061963109643183559387683017205113011484518689653340762836316179774481897443545936190452214313670627175067547347521115943681781379379349885361609233276264011013018283967188076565145556064427328790298926117550517687241173225602650727094546767986326091438735038025000251121734768922756546776863984233992772644383052205116766490960569111428748987667252013612066341985453579921695764634745722043390909117416471262976786225970083584671612019946288966462501616687948914123814213380502117367278596652365084872754024324224049090525893358321224719603527273320970191677256611949326610078656147530998749020064095197559344096731500120037902567836225695212297240397887078542512891968342301451084628360920272594814172290048975568880329416892491048102239745732593150262674857707630751923493840896926558512060441682023401839267330023181462380886894997754797987378060538747739048841219017899892140385726722099234730987936768664197886991760187578376962395375208909874547113269292109212403669718910366543382339970480611608509576864272123929863346466471573738698350961294113086023122369590413126173782342352806829587791186371049404861588371385306277669132501435999840129875232683499415885070711579721420023536570066279451361901793214416069084578062595402549967061142084741807954190940288242421293396597579568408967497608241943898284052282483866137686785848769385523656866972162482181931199246185399696584495147232223558555468637124312970270461901992958938261496994803074452668773259736702731630983606221585403478015004131066737958135826774351677748954688705152430835601386946161265443214881503919072291276729909451758978787655900211325584389344520733808785980013758799424118532331882031073095556624824468030205494818886237439970625042996482022809166752288805259882367940306936935264244150003774503308295225082705619226501168644705915581024908865434306052275427089630417860881979485404897786673098912337679322967223437667081610057309805652833243202256790809831431834887660096942344417951891655883375158762000493790158444142942078403026213118659314050667579363071453458822769637930681896673254206007767626117328361088599828820818756766993992361480128835379229966601788631065547069230570668051210226612273521088761022385706337192571731589476630042549534965977947179406291526591285737079483670950431474267333765046636825832048842090336972362476236123629609602715805067204607791171925828300777914667416606652556332425253843120008435817600797940155026596883483098119642733324086066096783224984275330904853157952714688994016230835391146891334886888038920444577104030560695715271353965869816267284746932647322007486566793320619352343860800742621674365484986595714885995604894675937039992946511369576738112337319581298428455528893101770373748287623841353253782624692197756253331327084508273028249767380921632618802156360080438954143676640484307049990033239605740119791769330164238842029950649164048514418479860380059744830430894992154071540585436062830348560157425745029202421332251070928214057913953771171872904594229236966912370480368233561184926404485815518029077242053746558986974665783186499125184748780917183587651793833372440387279813113847018507964283001816353097935773058880419985463359681321124154336945040178745165275195569080871693456900983308756899177383540140786114121592873793836317626278096243909251422866942637414926176587546581345998884899691510637876295069707883927538141737415384001695310732291888965522139552954021117796098376086129127398164077663040392027815010746232050589599426521828527790622226134418597372324142141678047354947324977445933664736387055214596507267464829166225774321030955552658127894807512005697814555892173375998393947409258328604575463219105662381981352606884271528514207653394132645325743058231670275823175735098426561701304437231224576118015358178405998054962572316301934323041029401221431228919636197296271779119318732793952832336244182406402631353603543407429926506004332849903520919063285315473459401359371893476913586874718326618239526174132551778198336946280041732981082614403656661526605839607655315644288928256508660944199520031367132738322832036038103866284808022676661503454687256784547933192230064044559415061465186992249907775133239934847789474181785575341108717538882754730695280438619064199115941672565156152572480607382081522069162517692796490903263457962202966532455383223744282864312938110639411430827647148221632134388607429058213412224742782850557985204040515454036691265024484157831258548890263191635190800338502711059042244356538408401719364113749369087281950310220933798641876614828426290567972780560533716109806002942580796994347415030743182964534260852351262829392297221956637341624175147096171310389928792066571465279473599922899503272921109598129032159636241551766078193149703048785809357986938930953360550207989095953834286197607559414878428666919803275016893636456833841650004805172764603426639156874455777102484169793932979784997023828404767420965163058363954128099686429339719712094048661302444087257161914320265889510657821705968892672090065234198946005493012012393168155748279711045695563667996147258605315900631399732978608696109510132816177011333323417373530960284247226008193055194400032366585507407447302054314795247371225133975101821814638081136967613952949606835144832625488711109847679130089267352666800893181440384074552535571854705539266790673862771367363925849454881696069887497478564399169257006318860909746686738741404500427090804269457048833510952368895609305195252509772417698287438995874398116440477728292824347006738528309348762662607222863152567753643574590302645281514697959557258186190680217452338544842714296807535827183030925168573612349194390329051754206138502916866239998553635752300139657481291624020904297133906106903603369711236643853080028269107513025373147670798769633330907881025680681380680578492214712600834677992625444835624592630668113694813524625427854486281820363821666976867631652425927824306650929603045266980672539500710601558323525609372561008227040407675030125227288233865513129228004270067476474309124565960665952745677838407505545075990313380497529835028115926885875489577992158991192139931713261674040279697910802395740513973816245268717847518719997213681654340765180088443758928382453672770980117078525626079103594486076585576176901727811998506514498575310794350462783646989227987193035051810876658781885081510667072391434303399684310556881293258225541077810490851240497483552635050163243091088249106866108144261841698565500545168865292351195365777686057968174121262419488874279570227509161811661867486298545229499349465209348097615882968106502203515667916173944718450331033362058991772665591765659956280836005038540364085530372811165734668906209544292472115202668368463676566819215244500880689001770076815604994009609887528617187782292409995626319743287006300947198337391908609282026406857172976223407029081933467398910723792268924409741163277771262000447465934923038263328722874220283742071908876145709222272743294467190038693130014453518771202274264780108718467741269465050780021722889025409042399919327324004519354567688449130470736805776618923186881681988288792208768727497590128049760855802672842044397505942999425225322557788525108009661650172610992770173287007775304153680225428134679201193027177787256267646108121922624398757279984869072459094357656539256945345708506612072783523017792316259634668965467437269167173720937000584402355648267410905481343423254456147759546255282999700287606581091272381922741474823357955754925319025969161158093288863554834654282414719938423320554443736515721670263459916176239159513107216927500174086234542752443315183667279399251322688328886464092997493059233592259344086943654873851845416830433099347045871621693322450729031794772200816266540065931905715812611884798870087955003634407065330721441851354524740671667557704006293532155097436783996278190713268004477620772560666798496740409317091075679684969904842374927616663268873623051562960615288153690182763304132031179119492156681830285774433956265559284387238585607583350187319910666512329189169239304017920557700174176899877399242482358563461701542879114096938370436570589497657258049395578447255473579601719673156845004156045331184088597419213554938367097624408807863782667985844850503330812616162268541930808199337136510528361070549967359316447654656998345039482592096753009784909141090729711853531545453123012773752804487035201653261624915953284130887649197477514041616245150225551433062530213794850765344210682177403382022787246255027422831043117483120832921550980527135231736368337964514818899260942747805406631316337105304913554238217114313145503443492557099427673643816585091232286774985328939635197603379708102501833541203606908898604290696948298196493297008855903120998558034078600569348961597956892508655432290559535668955754453217884827241630271504436095414249189159497785042880461548219795689640108812436370247407008161427289691312562751958898563597553105857476961420777614638147249674217374010213362635828542468302797698629689076395345117484150802452494997756989138923834475298799529152444844446974891710848612146181555464115830289339328795023612867494264115822434618478109280194979262597625253501706036470387031604185512313888390322510613137932262153329310328132409486847078533529309756974179055482107815003634047318758383343261383952122684115621094507931117690909912208720696728503452537331275397861088696448189588600389567099637184891943674384096797409748644366940386979828916869111349168925531501644900062138491682251364402907971416554644417378609873205126030378469296164205498924927557286448721928101948905519612853659784349504827538676321051518930518524600592957018958939185743492323755172515387849187090257921055548272326940464389001774770381772326274901898581999900773679944403963635157077745416218039453575225967616563046138060953235452672052010316618020327070365157241763533830735285094433404013066518581998215363688674864287824899837753725709498934392199834219817842620464693592043081929141480550555423707680523726469225707366511849150813532918442950523090571333413023846665393352331999837427862593067817492888354435039699106176975259477087115950671926305463347914342611296241519480753933124762065502779427594680861925214312793091633428511536414887603857433611663409614739476456095043126658386384564799705077320512591152300084391731224752759048123757552075483288537919613540581904411541228925826778970915570621030125349661524305108172753671153245455717907969235115508787064306140717608669329962879594124341746006617878978029803597383460813202740054855740244328914183933266562325372621645806518727145085009312169779539807902566972172136046376341625981590568497065965492018227226720937475243038189465454508841568278499861901935144753081227324074827568667184712858700449954332275770093444692940469561139685918938222722783982108889933280202975579273035806738440281022216810070067664967916398251673390845932920413680693761623515140447114718901512802228719276980650815584245181396650211185208499910262970641360867660190751720134445650908721792757972395121824215896340292964024348973417234307683161848338526367007621425689393844970442098559655160284355114235459990680871865228369176022328541715238732987606095275524462403029975876827140458093334295155325528549582344496370774675887532139583077866603439672810726309646976496789733747342256582084723258109183657033759696798466779911940367383926508263028140786777937944471975269416966698678364553098177487974937245911925805410085194519679913507159477806683127227354769894504409233288367672805999400377582778773336764132334672097347041894555356320155526476755825719877406221049409242202370087819093304162246823619702336641094848752092971700495037951296914545782852988364958595368955603343962701802321453566852540418795236101150526760987919355053185909231674620681306574641981408926101581385081394472484490753488640947541322177981075860555778289935589860964130200341580111370858890776980424462942559818199008336236040059723615375140500826914001944780650780801565780421155552316984377785863052432594098447869527325553170572090393192188351011104150188759603634750947579289031703609990511944304970792165823932784143356892894945239214577456848365113549915511648552219877359997747532390669339458372343375566554497436801727846375588784771077641204178150259953797923747471192722944786154338050654579019489104978272053948790530588310477590512175937665917420076301233898373674640340038021127755864309779590446487626373314687369538651010703796476502679320531795470143816628480037653239423248009499991257831047549920184060875108722471932486000777576515373837698725167056800218770855532809903422185008797147360797457071320326234003642383667677035645715849933520319925501885660357637826745225210923062550864485848734063740154102286011576633716185662126008673777585014783193931921880758401433274341807866688696535604743641253411698404155064277675397023923112308153390292009079611766075286230295844792605593087650117175613108160429515775153877395092383715677748258609288503285012161376438107252843933213830252203697890335822918389514797580138232280733164956588728985564131597476783533910116811460406102234639118429483996306734125219146514417489150867421823576022175582279825069860467645827552905340424069348608194522018670261576169656826994136658586075948465825915541926255300081814735537066867528350688779015972519606023231836514957022095386302517282924815593761614985285964625805416552076440117426596230127705047552483319980656084366797344517230096717054845097416856707904077333807475458742514126557144770683570492381182098107216741666885130421267244659387123782608561157490804795124684947016319067447347996657864393605561452561550849261144310573057986262269614757686321495163447135899465670734754820284869444001344226337307860981122072652126680461574226018740618592866196943131715465891353995733814032650283367838794887004450845423430431212708159054691958079817844957979129621727775419860896603789653726182103840161060701898518279973373870477901412380541873135286379516601997386035525887556113161776815490106113560438370319461045175272583745943806925418898814373680120609339183794719860533955149111297144552437955051893508689547364646470353537448696095944759445821013329491704417284174358306985369487183699466492687226307367453994156253507288403624113456349689635224354373428034521650512991851627864889669395651692868319113640530006796061819541225884377664722843479351848515371545025615898817992008481679265503885200725764263426100834931583296947743368684079667343055407317224041551105542143635132811423598093514691576797938269170913135877569615318536763888564654660899714705379928112291708809521945334050572376745842341227619769136719175490856630192238711348828805620536229572312674945525510519245847059121950200191387343532242544684636541561111736524127518984216850345382839505838690648904582335813989218916999929058923532464564037857838279823644648420189851515970897764723238029314319295442775948499582675922296767529461962638777874144943132389845024425450018675568276253305784530696169952983625697361560529250850629640582106465144134440521051493642666665850717566986043029560803274158431740214577959031007166768303608324352889762851089468057657133152852477153593580204817415383789942992000284141351230001149345468763339328743413546994429199320640397410096622051562648941188786990373125589630764025960122183944155263012999774101822846275738871997296584600368966431488470701742089371738648348158369444497368232358238389572849418275016063554472808647410006704584772525217967041174290128813775413912088891262533701340194204051379249923082603340138639688925280092825140198807576810259623572384107148510022213176599007010471945736080728866071913835973821092012561717855035434792043109993400785541701188278517861188980918651521621065951708975397077778298863738100781874957214876978767842436249635036550716499684473576439769006059295588211311497100031294271908028689508111350805139737418874189755848956503345474380097198077597057137547013970792185249486009214559400429031152355787354131176124816056491868412969898205505810713616923742794729933007061816751176626499701124864872573474047111624122424863300163394510392972819554505012664012207961694475367356390873869430839842055103357579924660397460807693212173874238911307120914095693596762786695686382737334499619725224730644582064331789730013328681841584942807149629585296280123475299741570086188087804393622064657915942743362904155969932029891359637611483060428903911312691081839449588576557153899369777608895755542798943423655022498182564366405766815680285176210859759784849152203348187029805957709323969150050874429850307736465335402938139897615206204165599665822760204524201285016722773362515086638614424799680789508882856462084269401528194206826870318234149544672131365566121179385503310185773306386309843316253574255439255547625324257539551455982050456168204650144220933240766942553855003526498482867195370267639722160808900933740224626475360263175903670881959042556032499265982176366526767766551568059309392116431519194593036386886678084533250974551534485762810664484731877254275076252619496944506951809165439005845992283741274402622070574264437557557366179695100576032610840487134545598662847739480019270484713408032158015568004938941149598248539754791727925002580351656614814700605644895964197530259855454089181714611894980765239439412562689002831266748374366706748569309935731870456802457797473180236400370336586376298618504892640102212597849456367286852600626038077188389085067115153875432299383780974505364641002351016577995109674056706133038092073720123116841729258982190302268760689305160447916747418313728295382422183278498321400177677622540858504342571690569632435314492823346656142036790143914328448684789826142891181801358160229601909676206023926784623122150593289390872471185575892612676867557239035328882333621620703926048476927582850086561698424300004301390423325578762497690836469633435585192888717935036625327854922427757579480756883881428650041981919241842585416291016327198252715074581575685707920907618683131479846882975997032632399951208831868486182442435442174964933578972851791644894748085394786237335332990578010874546548919334448139697114768779817998764021703693395364728590747887672381665467011994641292645883553398985271196634135603598899342753552627636297167044357165777924089498042089095026872775687332248863199822726109603632728994826459284551574347726909806346451958188893759514791230659643240383291519665148757569214395079279775987594358484467415231823751043828479660037878718424358382816635856357398739526340095858202740635013496674068613358870274872381768585504312966987459204735220817865248803603410464804869600559732700247532531705980354535342343971223494062040293769567654002809657119000860278083888723484155860503036879197929041045309102629867108762470545941429316402622750339773879785764332272170435738219833845150958034359233262197938176226273029782697898255518522300065617893893401747964595118169700433309407008309564693956643017938659812663720388101955689432369786796950171009892631527715964437624721941087528163094404572943367806808752123237483933367442850002632327490083085179397307097114075794081479791843317925695355015582143219866955029677668875772765830875418057058541429194215395597844133961608219756701260436628854768623520456652160343524684991470261115992292221063276304740837356772407151484377856809649159976357475330865402499335834475538274245305929326399795190521287064400154411685107514679211364916312158159433009278180040484671874260337588394300393368289143838856140543918614727102194917763360536560728602351290095949034194047559491578951357702151286275882400771660527394586425082656276940383044077945643045517898278539950304227333870010837394396742917468548178771323197247672733215330034546123707953692641298658643618463178670734895263197996697241005011619886273189445806700097905102485192229446870269832556229448242007908046750959188932945132376392001950335181117316361894174811115209933829528118687198795621171593620224200214147723504881564335718508586607298975158354111996280600598218122869594980496756289381780185808277466975161620338596044097225205776700087849179121306543810155014319438476545800303492958522265500998535404782289733633439860583905428599747259108624758491948548228106132117334568371405273995960214300140280121476678037864654733163637682711914016867091530686525680915773169111141173920884018072911687929167394903512601686978435239030813923310702463759830656785776465759194548833904790669536137176217861549658648702752013046887601573607490546444074416632376455026709907890380742747941969635238692411475537487350684307439300111960264866842677063906227786285264329413561036659457372759827392735604999070402232980957508492841241730985718652102292259772167115699536482282287239542417630737889268836308069568897698751763725353725286044132325911994111075548132827488695507164871828794951589115263197033975001503304597584505269812680704371465063216970448926758824232566517630938124230199671979612038863855457084566531087275716562463293555863138163636101293050220394092372963566854590934203812373471852526522452445076311538589215074556125580973312818878929182278824008094667322958427990644933308593176541495301134499213560053014651255501088220186163456516316616821964044237079764737359713192235291933469160508159827340140016049997680443419998685080631978796849249753891059281930004534656491571852637242881182575048463698220372298471130192524552368037913760285515744128905429532401713270604285601266339736991410855455373468846058168517402899223699523823095168163129101168615728539658946601444794548035540479699519672775709849172922099712294534442866933528925866038118190312145802177690947721850211320226486950861223687007316149459438251017550751862224144077611339671528013738944973907469293826485292003360429739555659252089098538453608679731722645748059423718612906449253062896793651216247885504582553676235237811390979896533620610416038675370831786388829750430923145204166066240160979345681066755603854689646994133944137841313492886469404493074539017815967562161172295353352886362446185986216073040303082220374684496072305180183101995050212924514453116493243208058946893889282734074024106961585293077789407171981560829267785116294288743512955659912005194981041933727732072363548189759549036992392209658261699237640694791494279575422027001808694019656679705526112653974940028546171401573308043468483859842879290126028563872017959463761649787455407950051644493170189218985219907793678066057720463082216841133620017308448997142620870479829824252673887562829086529329763003960089659862313633561436322160651046673524784949375585454394978062339070628823261201611896822986809309915444175655693938209524263875305186275036696789567088177008531929296600428113404911557008690263739291660702071045466946575816683478751526551734469278526220477615679454375167156479321230740094191100882883556812560753953920955861131235604541968743834699445704556107560832715857711210397550840789098205380559659411348764021177467024858565572195135994098896909702126806474641240447823699422547628687778023930418886737806202762571807739728742179567595572015777419824988485423111089117540861387868124194218336621800662675553067377741128305320895072139114351958143279380977563747913372991781695690228303522679224720124038592509380029323659032287011834521049329886874464434191992929529111420844905156353339837884094199658686949986889626370789550310805107337738093667286047660185397123408637952479581349449235486122930576016173779192779900724723079138127637101046085155262255135902107875556571732410829396581121213645585343438735546208273218133558694670030542113747053688170816881627162917641785445493494294663402544762855037709331567694896562996726298876273505730593018986602599883400870483489104535541587018692374308326406217386899638368171756569496000954064462497116252201752137983085947458136273940859650786902750767629640460790716166637969841536454431988104035436590231384143486796995674995960603118600500428549337258793601348848419943430220185478408276049335308541811397385584869137738686012824075452455757546655733959683197059027146388962178068504485677872612042944255029784172798504178832357395996880265441723541963055244626322441397650949134628783571880138276116055512930926931758144647077873382294725746997326218136525484878414470668219776676801639653167019543971128998206584169960200090140973967756008296182893861382958091156445621937731872171561785869078789567497643642005324599194010712830004550371082019259595516209661027841695154993326288875631499677693364165820711027383941205489799051476496028107713968139970828583546003146399338591385160146908203044990240338255832020492295016130219544506134395845435378851462117215029089340788737670841512721567557675425999531143597381106354581897320589882754607022069790880331943331803710676140418700421129087872411044265743096581029205560030855001748598898263442841808504025791018106309888356761598705200917679932351777877079119829378644266284019162907039314549547328807551259719094858952847212409024795905573581998537089010875767732164555240556050898549584955298125454591276382072437882036115178287680252258254728994795942304526762464080309728129646647471865485725840167089988048465150148804514492593377698974469552802483915375543336882430488114624351817789431576964727366237981215234596784495928243845988935050538761474679076242918563063930728308767530003269476927717833094368229952628547848082758054884316583060385175977208224209295456607351448454736463454375516221485265183766285222803066288114604259518966191973085971159267349325979516775907675537324471373812446351712987066310058233615265194456157305336948450235766493575883415757158103019100362213210933170933694566028573900535795550975092842425679462701750048369173590968874677362103655876291706327631729170349148590298813180776416777931003632291391437025129750484603606541663296405495386572122305774513735244873809554317486918154316504400194169975252654931728340219338052722564401481152286479267079236632655119255138538810478251984690626904799942548995715473308224358808648481473246412659753475982146876151720155052714050522785471502656221466125630892546231496157043141299008321213021312068529326884124681213272921099856940986449593091699634231995413589459791827545508195191144999376282045557898869606059607867643522880735978953093415345488581066543131936457422538113180883041194248380771824765174287670447189849007469300158534679876969598364627376608482871136875347643264027497957427017656924272468040580701079957485765641223407224374784597571014046541628419058443384088206128839058924448523681996518846466020519737831556683935881488813276772328365295615301319934746037214910923652374990444893512996209629087904450903619773695728271582539532895503358453803150806761372800333173258403106248190841285914411364691491219842584207996490968075413206484572481100593703155450777007719826640371913824553031660264255384209199391596965103623494175647129982305454260253148171367827103838773969488910970370616730343876094116447839603979076757575720255471875832363348986273720718810450402427916034669452119707721477411965364447342154299730203344362332574206003921479493959952372902037585178539974182026694356780890927484572318599519625360205017367575111208966060010731450464386404920283208588453364460095861357875449662588712192391619899214402767622516894062856265206365413060940210552107277090330559125121868003023467567288570086622587056240225874153841607869453408072164891403833021860923464902821669255366345558288522355307687826277784277267121323435792536399380273942814504973397819334453190192546126286061030810897141923232838572215531221401941688759320527052583240769903739931580881529322876845921199068155455073373099645752101193440941439517524799100441349357221890430404049780855452005802554562414773962728431476629006441616055310586228258266895143518609439347292439323455760320613219374537010091022061552599680278532050193713596377961670139855599590454500273149045333243615968613634452898718828306506614188634541329510775281654348170311253885738456631020274701161835518243869379096490780162714927692777429991139791479622636775036325907649646961938920252600591849754185399493874664850322406528171636403449427741859320051499814552470202077079172088649468930888651010464572277992955824744503327105040245606449790380591305485727682344186670231208760792328446560023684451924257131222194610706184679038848652284195212535954051463072670778221817942702875999129271237158201637572477768540952282292733349150693755845251428604600257531522042629242277564338917558099120058376540339767696677595858011309970338309853406099411619454369717791877841028342955159899500359590699563980198446901386009827008533013927517940878006009627285266092338510837489180784117849146436575849149559954272444272202996251225186205089042221291034444275033938440581655351807101504966109431026095839390999329722356065950515736678712852206683781100866394014404483102169051990762972204927505590845763475480731652500908854419329923427490569722576531343233004011296701643479383069681398103669776343941281863294924306565117119137062416960810373946881432201313514600038431559201076242258862309790068704313451413283609121501979320317367881297949921252211428939966123874634890937408124157521138004408752616961465104764599095341304556241366057821913599002786418472528608338791030954826210333883598104334679915662536760125662313041704707679219217902407283202813229154723158319445526842711804090206095970493406751090659909486709724199814438796386289084175853928871208589514946868577235826535343751820718326258276484876426151290419891330592652044511543248355312717295549469813503422821077421656254630364873659904388112457277104411570833967147310661859022505968479305003015398657752787694236867016448310727073536357962183980690262640125060388032380928881978893867508021021946917312434058256526262670944197117585285074853272774870065178055686032740497227373086480817354315885789394632581105575750665815830293221707332627974317388032477029435391934044929833525607764714861428906372237533212396426983012434842398392127804073612319170283273756010490832366242800106733343101165044035892166917656006987486728941997753711057014151552074874897903524857894508323036911294993944902450001998910796935581386027782945234376785645939697960827524747124668226266717803736338944373277938955265693527996185180554293756972710072131063388820108785277227709154408853858662057202440059713534314105338038337249223747223042129655480336147323268084972767897462306918690423428506482226882053544522389555315028408229842346461965724246370223935870015574394033321960660842094949174186156345775961735812877651126011611662831131119273586592499649590731726945441462127977716569071263404605507918136848603087348572666407840607066353664116341083100592986927289417750892108285317391989999231616255998053768838946053259071602668919949685229561634180408712800050538558879665470836530496611983044137274328916464059038484843067776645479014101426883961447946667978084407406298832495794670572188658632126328299631392031326549532443744063048813947132364213508216144332926649747101082959831861094158957002266130550909693661634188511462067202632049311202269316663573727203516951722320420645353078817400150848430799100538389547060881190605968358208243403204937500855957552325395382326482694216228638121216213762467191519336091779045801484634804713913111847837243618722251546974529136211603990556378207056751477403443329222589557683042005363330738375970778337045982746128729381126068038873536138268308352148853721946323123143701201502575885805215017278484238101644054327738315791745581016809032222741987882742957729785310320666241598061413878840973768627282023393475329423018400244909586969662196821714925289973338725944486751995462779560412146150954209286803568885637858754729450952791914217350514202558172319246214605422646200490166453513641108490002394817972014428570203832428600849151786734175803597805196533131882986073444134941458010785011439070059525269000867770218456018604197363631217576425529953790135335261114291391797243781255146034489988631455533800984955752994604941965739200734145124391481738648977850671913506394250538953609555685360141889273803093156732753016086226901042931703252426851507637879311552784841259166499117478913188944041477974170237419062515549209241256826759924923956947139179561571359169931423326740943918411379497592169882125711437084579366361485536723782998870091292607597602759577249363543063100549642269041313160731099678923963118982236534284016459961103555966498206514900165767344118086889690333325591895564416276084518466786143618100824731521360952969317133787994633986992266327861300432951768062051795805984031096698467252985287739876986504027233180540929196080084340867276635123244475685944652796035625238252590037742232010545918859067219425254117739627817267146874836325812477643519165916282401941331388847641498435244702178052014489918883868382091456529628394691190835126689919239232020963842468139485641068230140248809566577926896048601134406864295339021671142016582732650454242810824873127725334671437271082817620568859200010870858737829641965776516924601107148599497391509657508774122323429811169943949532370468084368321976370403360751024494864893364604449169206822896691588760288980930448304517361473381984159532255003119959542002591918759440615695307593613044643136095768577283657806611634799322111428129253559132933681278121219182471839884644641789688050605524721263879282607493690660701364084120668260619512823951817264615625330038285691796223340948837143713717673208571591738567677130902488357641658334039591532580714589927374002352341455544149911881548567458878848759089073925659685591202610647734679206901006788337634823102829147880830221231159858348734699203791195101546581686600227933721417097413368606788205129681865695261407057906430236338815082692815832391609437943784147226530879378483338930931745161806150592928687715815224212959474446455092878448213863566031585959490175111990180507468683544239810285141222606987818013944868040727371645017707924996702682334726479366543921002323753251621586234965016326166837651928948657941882906141590180675396327764039487164437040562615948600650221706413485379439049515954567391343232689855197470478351830498873955965545672636306777563904642446260575487214082363947540930689452490967540497889325630684120395860144367177187577946123022914251983389458599461276174611091059163264772487539064219596841638604965447897161195718471699059309193385501226595680350318622043002255088146764197524963844445085631074720917137801904955088056137816678173388872478007066575936496296438604744736030473484394166868465948130951231904388359663090901557458870730572356048593285355448777813460674066514253813913099443354209290335666068856002688758828390119134847494696230437266691459510166783852533516223867415506647921488152730735392474694443312635468432493150023473293997855889723827846377839206131706733867276523430133548346213641276134552059344236022946144480787598345819943389016609934648632376272939854445809900709931830397789988015982868324104340334609722225787205023146661557337006247463168778419437189665062155895052505169487518195998975391968312172769858827111120274526949174273319380900242214309086715811681378278457273604632627744906157053770387686816371051685991599275932555082322140106758202947586463789684105810155600027775438003728443979453983764365256028881432703007256278962880879826141033388364021407098453745590171126315338561645008047745721432413723671799513242704966900308721716396348598069862642993006232655738187990195813317538218236745908121760980622536847671135558258611740599775274237437120019951647371535966450234435287309441250787459530369392633333647001254348880864288851718725806789008365039474686411305867727787249973309071756467670713300210846579584793383531269243833424891116728326813954608364839732903541818850812007951395243214573738493728295190032679428325586717051811095385363901279494729010105500153780033735445804168135417757953283417786134935342157299023379201768664412162974426969737420116452430105992764146279366028608043743884059856427234373669476853248098568467943493249814917195554818534606145244875022428378071494667931521281350185314369110016176313011184788003419458765147367737545502781532294824803623575399915816542081287789876720415820942164919240864474502971345224958022161494824886105651055402877676812282920750002924323447646953167090645484989125299998135885703519769332295653824372738166089020392905295115423344271421276608013678594872046961448983614297861254206944032664768340725770433555283517086749546317777699696598378745775734764857568820673287596408914255782617085652920699636620791282864153862414424415782148712736675303896093681692793454372997894275340653536813698522884537401614955930268670363378949578720276256810941563125913293570116106599037599563963603487007451084484671919619533280091342238007771389436275297952326614645879226546151232418208771709420967524220540183496562298845649899213780383382357936177017522498930741138391695525026785410296275137186061418061861829190670374508681303757941270142684021983416422221998552923612383368885204687687176565853309549027525321922308393568360657533118839516406910660374599666295416963882796758619569584965246011381648454408373125296277577992837454532698043204730224716873185630569636140365842244836329585126094464162786972473076924239662797219758122427503882281847933585727217918076028735876487375141937242262515218479524180492680000648957157877828868061846323103820877040411593991638369053755237349937536607584319005244553005775315482988902712762024136058261672204625884705573159399198251551019980799019637461011426543571300028407033535996464741036748294948681626534412796525167460722687634713813652431754990879467827243153608028552526608099463213491554716902674970883416736330384091231935500527524830923965379796780811870736916878215463625980308116839221245239843886202867630259205299530514658270743657863493381860824760297546810553194928722323235765485304807582757167013665309964326176438206204717263422661508072815357121406003047384743319336141230998457105278275056017033368345155621269980762999632187557581136184612241695284163155886518676937656983936474905965813944804091982000325176932759356130215413425935274956055461179904283393352473573500546762024381666648103482554549762707118093603710894908622645960384848983036623573607715750325399474662664367572873507326360464356523758141132352792405822045125011857191919615709168285536798917067356540005604007865358426663366964186098941898015868173661745320310230189752752239696799182313680700386813732221845388312924605600798847296908734423138034134181088148708957422674846674042235939262666423069543498702139145612841980051500917925608381987343677892151858677501272640138568317969571106219170775603625345516383586025343227591341469290374894170016551195898236014531652871053069269170017986592106244819399511989830454880729271020271584900104768954766169771940030502374805834732191007033970786159396697138329105344188871528256036572726987568968661553761274913202771248567638196935087562900765048530580152342966444167016537253228434916176124589060454377915501681586582510172788369581645373159623011267125515711829014011358569153652887702704526325836607394886651063269229092281878499965297639988448065488945368874850272611118814782937017357929872287402454303601123666228210627153218408070376270680966022438012805834047471867513911310613379518128764640581740985565258557939613463598342027752972748533715381263369801302810168142347450222906922792238076480990769564533303579332634883744953565490029605823066650225471349289270687414476821451728156984715761931893157042413067398430239457844028969510067932558018386762189430947335033339947012793908285729965997678045090902005251105863337170919998886496084147308299052208740796984793998804734411062448571650178661745231699271451221266738493089544796509379729558378599898564719574200880600395832683073148519307480821037891516441274538096964310978927283187248910755873274388554603380700406645083162636181238380451365855423317500129042507805461724723466557380966885620980910521863623640200651651872581124343970209025839221602254855659251358800895221455093768762370918901640867612419697922460417078951200428408134602575883303398039266109211912542667948722727892709660876245173329142120724272301201071496786754871157891209202919274346709433351906096993604353340355717412289562596200825124648833174796629999379425752478263507608731522553425656946661544739956532432314856840011764975092278375562742004419764011779439290979954147338617558105335815533677773868022212415285194749134441953866884320991282905981491824760078062789645166548286478706240268340690882214108340565508831632306382384369040590155188089179225936894127193008643968438048460855157687384714695568686038549589092920412889944799607182906311057647946351933650514276467906328587463917996602647110081324992463888494563462569116081242446681263238151771469114748620160840386713670565654095048728016948214387689912236595146544468269418051148804417723598571234214097407297092068305527984872663044812963404109988137244861481126612544094233518343754340702762729351021210162105274748597390041282396719505536463754854931895785252228594488390408536511512047812950808027197068623527587313628876620507669970234910343905165661390592981706504816367661342044492313852612675067995807075974438343430851300080773428025262645562030003916266238100972465129337178708207166745232014149303372234628190389822148099919588113302081501554578674375730082565551962536701132865422444684264966887301213197368516052456552471393308006333003720220195637579604144742233758812828175988514737731977498234350270661108961671492540567606500755846801929424553079277922062180052456262307694066403417091363682763727341234026358192495162213526788257551613801952382975546364777714463601553001989984488420955922341812475456749469921695288406714777617131043642383376123847720092632862621103930595038782304037746366831652299698001991577685336995350358519203381523661042626435851562928868446350418419535870765062810966205877050481541042624086769152123738656984060660505628617971983525886451960715317769075075958427409615876957032949572692677995102407396144554273893652703701296058821144310476277249818153774249864878329148450817729697497728656699885038465660833610811641654095436849964194823024036426404470363286542638594749121084836591332798846784950510330489152169202101774196807064296544157960164206674216857518111062862302276136957778922401208904103866803498406204088241229625666991193772093897608878104688766297532714249634241825273730151982607868976386249520938857363698278241764565454498239658586284272187703332905384698172869442488118696429756251700575899850407388958424608458609416106726706518385071569477208689012556866197330031330114974967189505222765493397263780413131863600438528812234157388667696086485294958243576464480620243484688812626131405227041508894173431026847420127039195242707182267864835327533292790569319183989658244156089014699509543308915706404674479457906776775742140492507277185631273712504612166286695588617122504509203144825769800234552066753982796179382823715255856103108740712334709760312167798958584365099723603704917425380994940974791845537822765984494482925086030308470014322349268656159455779310473609599004841550186488270946222071830042675445239911864914388439520785762642725552550203125316370593921973251203870412932577742477862684111445579138331754389729074780471567853366552467325700919887093349358447120345605482873743243830311637072561669008738643502142947162117165317228049335764268749160073335744324154083676219902969183915516094157468366016103551258367552074135285204218509024560848920258024396108745705738503499503052542489415896098090970891202819601243976634284263924480045590865131946945039339034083072599054419989390086837097523332404397159620629335962747496564046472511249025134021609904171424186708679767756246545849800913181552875049871374323061392000204814172381559618966659268270827971763762636330221226170802664449603946325983559250637212610750627217610309112517950152960604494304410531161866815217363903135590292740002703485700581954626855826291140303014637999295396566064678541529964470399633647784124613664731367214362516112016045610279921290001967448856024490686908513449152660744478587532247824077879144358469053390563450695923455403916820620543838924636424690194056768514503067299260352402482756527470321122714076810818761792619476619669529216330961990597727336098881691546094119759685681142376838953459865880124703550203110626050307786536968396996665089005829320349280615341143369318558068535029218690588882136307799186578266867983232799530927015205335472782985216311471304880371153170830402497029477263082637148371336928742709054453066007747134460192654793607364629519649013483509957298869968579364128702138683013642227315961739577871268569238245212389690765473174252287762858565927499297600126220602794147169724813162173865589151117395916718467377970386632295824607725915852841862581474667907777348445697426161900574001265840244520805079452276796241350029564077643760998659630615854395573356804083314636464650225195266527098893856641681156359987023577711707459906375051490750617347490255164932747277700735181709864613463718450579331332795232682357473556099682665174520734294164498961681857480584085480829450336204484927189895475425144495910130302675707508893983915720320817183506718000664854602156951337521047670562107590744090990246114434508860289055685136804710114783912093281770813751042403053287295888791976705499297718293796166025130073761443536552678834994792538987730891966327337952468522922643490911589809653909427312984039694906690954420288084907595539740501995498649464453213239461382244158898849728049576037572068797249075783571072215843874634634526244696265639054280556367771057057071698431291774644650667443154757202289129421901845966229200430855961790943395542210553393728464905758240362541502682727031301425949937795073558937819516570377019103953093257407089118350622039821426827936077678189806397141966543050815742192863951648435256587023269406122091582534246170557206436779117421755611779933169458867873184087829533366893891536243563605489574852340494689454277835469578506126523756600393812344888548386000095168019831185378663536618855516268736769720094617108901410319372099886541523767952624794555672008864743323734770411085595149684117287183706326246044973224874425049833488689469802939581039339062787702429717016890753372400585026326710076640511371919207501458179791831526890292582841352934123848970644693680742567772736041012165137682664252787714216046797972468605609199167725617897208697709409860078608348528404461988956310057777677022250253455951546791640176517623603372482715747831139316227306843315085572118760156512630782728035148642247516460889179434595082371293074577732352281680817365470203482227433268712549751998445582792663049566115105488999788093654128572003745027393698218842907201046879368592964130119509329307451817840233915335477324727812601682374508656975052662147169451084510150747693193103181218896692165226037771404195254856585165111767805606700354713578073773104221727537468733446889094983978306604002761787679829787906987593532325906437378706055483047662612706629854383450896696970939710605758838019913914987067452371134077122958907876436185228369169736643782340340294460854700084838890759949909005210149527381551770048819698750604630167530471126564837153274769089246493273099211905349239100160809822235109030814437605209666834042261160707179121280160398580998877514949411148357161333446106811460571571983391925686922208616427315361840771173283738394556770086937465274193075011903885287958676548084219926837631057439412534478986359403507696491172638739112644960724782920261675490279362932324900098496094657551601952565996235290962169427907529530511225917363962187527004654183697081317537099562857150741446593867548863370596879920332756748133226969258469263133158422929120882251993826432018074544035377332875554680048773468490446410389627026252487951059194378423268135201789181548640565567977955974830046430588127179380563618433509186136256998859306617209741362156373811362357599384717969051426100980400007791628381271579448719933022366235755797766378800362979954899412337737845345791799342140299431310200185215503320657612478892946145932400915835348552338024153123995418790773818103113196152906882963746563960661700806833501967629825888422207083202449403325461917517985714838625016840427035252415838803110256146374587808835142945974812954818255236327038115883487552005337500501432301353646279390620096274646285138800729071883914695615176559086308378599355709534786818471391657116462317749689723623077526342573246757347252968658679018324182909314179236701787114354774839209511084242354523634031991481060767895158907754519026329694748378245296253707054700153056688585958865971757054806226653255563974070076977224552298783264316031105605828806352472317972027913481563541888360528853820658257249631662337849496255221921221616806739505336189426761705197053374068971807554590509730107287937436375019153795570986930623391494996821395198657807177188511786205227150620163774472493036609805260587135689357800918884099712080991646859217412453432897744707922888807076003150482753427335864179992986590771274583282920592472470477583958999322058741303551764883223404539755030205899419848059812724634892637104774478832006978246033106438474632234297610081868401771739500608303255295961868902186581841386410503203874853937128202900180261884990396488193760956166542272046406615189474800855959879617242336509180200219408179924866659079048903588061998820792344721948536099844470898662587130212760948156900388288274814775144566369921157887943543514618944377467299418278492791761624756434426801878054433439168160029404074123251185711553447494901741105182276389954347531148346485992272662368451476063019717467261894951135641988832422024324750381932661926263769460743301493330725126226841762492823693923726994096585786401089069142741269754156505916969305889132322369893964996755470125194730516971236916694170741575222113624123436116394814450367704789651853804849807258298417243489141950275650121470309028894306958161047577019678273379503649385611864915703411817328710023800664924136061096322555704820856642556166293667476126724520575409565888697426217623626656315808677272256487464350325950955256785870956717431218025335861440203739049896607148515465555966643286443436854144354169600260429842038384496647636421555906477840491000822756886620121874864457144994458695945031678637808537279044867611746668843721814768440275724853665528257164798524795196322826580565108121001305871197309702775295489421897005197464405660168312111927889153708965064827008979235905824020359355323414101243133371911377835525030744651314455446362204365186555667396704893686167813764982720598910673433250954232592043847569670777206503543750121577112637241552404408931875381675486804285686424874785787958648739724116520361881796654530735353920473903080993187773302609536045536315310829151345543866918389079291583231829022864245458962040711203597884870909354706939957217431338607625991035747278042030716985895939075086172151807004493893803424896379926938681161662447485610734354073349797114634922663526283468438207493702996679480578122375078396906555969772882400188002444241001271054701322973381465665662899654719136647752403134981834703862392403681416685099986655147781346548839359088322859496343060324140042839404260727148217548808426920457646314934696709814412059769410636573954837883526789186405719116017060682361478090669117074050107519699931636735999103332184485216666254751436805015116093266074136253036871285224663864725842612510663250269984945670012522372287706450716775547085746396118666224553521295031086755423062565419978334368691073932092492204041746986325584018432649407524491130232535122005313365782992376806345544957227421367942968979192699707908601587628557446858998243728828783475054257778050120892051677752267321906448566736745196019333108994161210306593645719874251249002307690326319336127444732540683478861090551665570223765410921173716578262826716706281099505029957429627001455851276875627837397321533501953542599304978187805213827351287108730834456091160953862337504729222933204741233568906411683981652162178917821704563648284360686272347531371483490543042924719597496572516590637358488279517829007106153056662785777653733401645395338258587503245499840126678895614793406247573015915201781928598033532395212539207123954691351075589712949796922425307529446242243496775193194320573283975300266616275378781938758674422663475217835324615481484097984731567099690348801662657671685990323411844379163379009520373905826519739038462714434475966119862295028795710303697914743609488511965803069518784921075204999886800920188750857727963863478879562904497437107775756027881669787084071954750087247308269070400533358530174922705255918784953369124230311618150567574430912705674990708947931933337476736067955383730851965870255951730487993766706500224302778307241116279501148244551083462239151799616024861701503780689345471745276423585109227059676462146530973500641372195717680783390608646589757067567099909540012303208422534739675594737350495967413800205470259186964954850775639473959144113064907175500963145035348035208473949919116233668602662643040961369870103810562136102661532710053988528380360976082358013835280579944245832542028425954928501602430255515764272564801559471768395272935990271923143364084583283057339396490964120168594167679573488067730818542980757532040844346272055133262075049974171053215335716488402792830155294542016184954594877359546890483287531036808488137912217367024278130434020972968566791844746187542294577312217776831779518259021957740738726121501351126750541586673978255599883227470230596541401752159276602112566666446171309545640883170718782893367699522504664569620323273836370368790087411832594270662255386529050775626630948160821009402565267983468537452819862575611199494417446454703119895184938892124658610689300626984062994191848126004926557208458344431194889640084976638271038043227062214377973147921135236774580009568530497030417624305879424867159573331218317546034874792164597661469380722768901696832767363818920580435247741510685503498259504421737375651786473756198504650817862171359480491816404701034916955556640514350345663772720806612735252634848567786975734225048262753445215886369782045025975005452735655937725850010998211520259736572713007245528359955391097221629680554061589619056260897465233081804594447373936662546476253009070898010832077715237669480614368181056284867466553603782187624206674175213732532360099286369190745633213205615412506251951246993806951412931532815091617270338583718457419752977012216284414739994598553886365598051995001587711845373909024917668962266674573517422815426137345628747549452941288737418900194921295876153891774165413677952028798644166263228050562533205871164955503869830694510513861590078955593729821031771964562406902179156948033414779305281753738956367127298715427965096501540992904392652426564657185684735099861791028149202284852408832092667628159718338396490576846733488302136223962735796386480147096108730432583897929148457058396435007252724596301870295055151830513483084118999203632462014874817485071020240100617744389289988584114628301199672915352182159687291837596560167778256817206996844932555205328349302882347605017721622075975489859109903616864706242984578717383878775088057734711207834044090506686724671024889425431039348261245113134025416296721432221551961176098986020689826291267371588613326088940864736665487466516809863992469206759531660326154057338862802330291369896257255709779695925631193676751669645169435255767520999901878972115423841407538920306584433968938383118913645190980429199140473675152923922096091138740711353959278911771942328768318419932009660640561771026443276216115885312454492821864413429425670692377854225076306211809280760285125648598022914564980159492391722457238041831633172321351477967405093505881340201196722731687474313108026229877701812287590809664878186528352055089983652430869639978306087154491101460748852408058042051722424747231982313189178637691929700326582975175458221004657344369369681125341379271442489516935362331647384933034436254744021496311881326885551942190076336169085460632376513888305102520725553709355148065914125116658752053976643868616689769649540545406687681831772821190424520527857390184095379187909708589382019374410453504565512204655970086663312432008003145880618478192175530225122258393035245699758864694064581801182020825192888797047429323079366792955845245371067271784004805335613616431109960843834326214910946031444413721970536011383692889671051875176179936772105166112823083911063706752281820625940534001575097029874496062823187318323702690635275807601820442680777513230909402481335136569063254494720204962673240051911042384791962897552501473855803771988355940772077779986637465757186566691127197030738461369077009339419346581324622132069460448880440345123222069593996587037577880644536469909000530597977815894459319044419226762893231529050312313612045055820004722628337991294842216543566945448171292395075952328924410554964791992355814453108362509763959244983423699727402295645690357491996823445273704573753135457704432062986381309494894492967904374655993233588691911146754947695687023733364255563037107795969663789992345771072114152777056235537868034591600884382320825180125703046748791570481601518058517960639273299558286155820068163243865094291404185872431334400701311575241612424429995369544392838840152169222175942064674364027169527802786566394772481130362797805645649463530651284187733072442569949261377036441888332019875167817523150695352341018358116182264212468671925981137789010227461868479715591768814678379173801204556835293085585794429295310331351066468272762200933063225912893719317759800611904666929143948855389678138349180334225529937673285930972862426588725310494162925318029581786638721735993082785464355370285137372012918606115052262850254804022436015754269710863845836767148756465432539308560464642125692847322799226977462658140484766599330297560439710200212710913925737717359795067385216236614430144647018116618665489337248203823963826196310412671173537422208477661529125947407135767998842863952868845844642606267651343822499281431584784776206038707651271500875247083711932890850546957619939673834531639391844361637885369674771357176754515604765988209376099853070108942867229361533167501376423557989882261743598392837107984826203616473291444503852360981496836044759254245115671138538580459082674144688041325713782255917413844314447134639224885933618850831610183681524926811883757472782708580238773640746929390145341869730259050249412993597512551441058522872033122802856172845782297161350326428226017712773141799145872659543191580554310584836408889206548100800576208810968077885593177772033377953879979179558250979503707603556840566131910880580774966900118160441492256707341718547825833923731897244344116676205995159530910941208321554832761959667143386928939414498770252218891449955973479352933688949471922627056910678016257486947818677765290469670656100262794390894538583563411636649704160106585720488003970629394142465753765006547401307959252413875607242506155039361425295133529902118866040687547584874141591716569173834803597129849219662076007187263499776400300276413425469215685562007163759550554853991671044460637323502389297809365305320336798938197803344049825153424753915319894560663088277790279641533499623482933634926765499390751190108419394510909025570716820230523599372711160795171163835160179753272540255943597648394031942990410849509694097731578816437762381296957281279130026982924313352831884352829082696640482281976130687035874276618514154349881243982866085035578509956855845917681989637975667157332530968312449055460875016877169642872772160724644561412851129180694008024300135487663996956456098734978963409463469719343264013798181775998905842244411621852700038475921088967536662185562294238134725343503014925045682971838389087469445337897300370957737393750974741069149348972974924244328590131497067276614827461046598674003750262684702642531632141629671094207407003325490192561998818750828235541551721260750995464425764343970103255877009975385140042957596106901139550654240873450721677302005295420362674149386809262841750895723158025087708155582522667567508456946376109338814762139979728350030578772609897882330121009914304105448682883029752647969943734827348113122442962644247879641785821909001302315309534281144202603547591449109473911192987839618090817496088463454583437778233352224621167461938302814523449288269154905535387538794941900990987195110315087226438222329606461816676784427912818853167334645732795252222053473273585013225846265381224116648461246646370042959184696905637682702552745179531179771605574267956712836847885535656490251856484113523526796656361955693550210153228109495706789060566982457629038405901262194535392395353880515977527950001160766321434891459735318603874315867589826689416134565114966452206888145998209981519651340883806757457364504549553383944063271938856440708468144043043032389164243238837343278584511283674325528493754537042511516095429861551524775889516530630187043439360599580048170774474044035854624511357449182214067262688229137843778700849716023937605030837030718232660477773385299248002333498853295864191637549970165532861438541028559111182966411365762764207647864996128847248405982754416553616401307119561384120675498780867571862418150873496325844365959344835517969948851787140549483432849701341024519586071633728867717704704613024715344999027859636225963140372900715092498906555813995594002221323689173154429685469211006102562905673125571348143714822380415958620344244990740978178456534620643571870608287541578815673770218973011772702713761761584676830146140979463513339494722504771310177912659934262143247929659861919996347243679824327504465661423465298275997602134647970145688089942078721792362712176587048078757170323003019913540860986300858085305126491006973331945340514392896555684127538925101465497937961997475601965274264940123426156289749081066561252420952789942278814876396542883322262903931664241475587389914006089161030747315422907061033604010175903113486619847154299648227305195163242599098656425151764707628831738574114215937042963085049877916811003036356039765085801770211481035648997145338326256189590721231799935631559901944754409474674485997372851774408310909973096019929303179355969005947682600021005817675623591394475878287754939742659849872165835325167940166807017770785060276775318607031767905293706537382185950142175487517329292116791837269644633755538279808912748444802505729091064492863043671174831281142644830956960948388526457010409936416091416804283707281914924604701346438662366458110287532382340102114275331552784823832647712519034657403447485530027845066398387367855857260897057738675588822870003986779319469384296308109447914244371125641386400539930067324015771037093682672339720980243928898123130264437460011632544839546969695434263329479706724012243040744585611494424010069712897989552116185249921693381071473838884076818671221996376975131640023976003434946211814884546916989325212773152253493882898371148683758478635751011717011849897657238049693562560505329424430771589962399465361508342760524317780587531143245531761059409040902021449968971569366070807663208656522062991409034790498344130099858747788444434636289296258668091415187457398161792056950259724315293840742143722111477540541423318617336591772568020060997409641804324714062852599244062417288762494437759578674723012092512588119992670676599045968729841657958932315161225968345231675786820115453904443249566499822669626915271154029004226804335722490719616812844692556582811740697516340921327349163685617241899202934603031262599558034592847652780725085820165643431330836998717580466880362070964027059027461824648379380710027238537783152924401053366586442698860501855548656706749802629604887400826358674966961260488697894156239352238233511343891838754468246597552561558596297992959146438848839342062766375392010153931754670632836449100558871995724465780993186706292867498973493085470247650623699372599486453385844758585986794701775808850071539537210095844473354545935279664622108239626104002287274923386103778084077758024549773584751838289786613574484124479683665402594148796437196148060659963029651236120085542787843431548346165297039691305027618685739746717511782971547699046748306320574224127918928056479370216958772389540867498424816449165549740348678164730949016091948160206957433727001964901668554958987020766602537186507644830788432258926706398178202303249135114567895288751569998618791029220889582297128629298978861390189965837964413472580716449570530793929845673319850367472809957059130755034632711359818139570604140153844319235996185576280073386078563608917117499628118728715788953673614429339780060521697899957998227184607350618075459006236766763899661695376503997380841055672495187512751752968103061994832904486140508740373933449002813782745512618177118646952433755771024963729347313502194903532278958590560546140861093042871660819899576665893761195698290614428707060821243852787787375702030693279048813932074969067866504782526154743999944479316383379259814517136931190660008239252322178037971417677242126675056807675219430253757060640337687236379111204856786935141964953059503522683582162116473786796696636875842904580105574755455099041316747404111893080884956847371100747072866344627203586464993469864329860124565575011813976099486439091992707468084371202925788978377252050841723253254629861996484729824444743561184549268255068875996607620259265378715000272928259658075339436806644640233297499180230334679852687341107609755065489884632809096882005459429949086159699885921810209024157848538236434287236338459394426857959874755097369671015561376582998836561695742173977650320488504606440059112938351774228628139875997621412395196813316541618847418210649780662004433949837870748465002580170972590213444450721927334778129701600562705967297342396717273169953627386423847193232537451328212228663349202676549654014799097864705792227671206807044361570970360453597397645558727895182634026058961676771473594826888414330971074150931792846159166232202199419234066254293062375836936235598323481463814146593107561022489175249390992349723936315002015225688834632724377793172082311881604781003564550978414275710721850647815088545544601714649415955493957440375353214051607173114787539670002897366560733402595274529870256574728819042832261101429117256605377134808255619412481963149204587753943472758769856176562591197080054589535877724332721159807794235659759765596938671085313809735405938606213862319756297462053805165190518375273884480853137198715664542546317664428272515304194284969863453050704560415193296125057965147090550804099836435884396069875967427066022755366985950845415310840492557779408856546680031187782688833877499749309260815717650677105251942159510231823173354500020008011704307376843219285523902711392734507396140902916146524114223232975093558888680850616206049022681731828568767813090328132243652596729471199766588268890218710124062516610759732820450554144066134999198537395867695812037757135808838357464623803274523086188202678404035508671631940503164525895229699149639217817689954461127019731034758893397900570550046219614823461608557398672157593677157955796024367806738610915675599123156024433321566273741995023516360088759876295155068691737352903906521531656512573673994580942403771037057678297966616608700564236864006158287791710830014424304521966746012320117562023021304141648070853315927141915407899167103249521672279483786569169676241863213050794229785737941973811720506001487086596358263100986069577350493197391054106018361034751385549725249179993862592577547360990352984432731722760258388130990635990417347042959263242703614348270979586702784594892322548492550617431439464920066513683665434899224508469321834208102635579172154601263255810846089336966728832618820500483274883708171681838070553386854022549755566579191783714497442805134533732881881531252091072900588023099249508929349731144149646176550906457941847410572615910853037283140915231326501357334575427791917204506993880247153601448272887802095729231198742516731077030168077410270462312039221038814842486911783343392548582635729984968039880247311431703116393244131699123197140023603004313372489847158300853604090339007338973244124903009814194108918325521479013968171201060546342505199322277834776475014178679639430158769048076790588898179755472094579812493605369314346801094629909161516082567391705826344573488890035489980957174856300363072464373562652697504130182021616945118112179211653738104381006939382648103659216937050270728500984800129975914299407077559455420448898377087328956687007636666750358994491890892565617586225663089739503752358032317830017966681948216285808506335199327809313979886074941775507907160440251409729676158240059947489907990454256432768084795419629387712333950171742746181445054565369945476397228950679610459317550943424834974238733447537839572997768991286084198846812909557144111248922865877297754381886515066611976164891027701090206053198333527526047585009843321584587449917406217492640845771895087802739322087913069336080007925740906929708509172053276340300287578089659984768858408260668505711819627245404308907646007591261642482651080370339102500768499816748808006647775141865617908458169150532409431714046689419724376977982909906965203074112903249373595695870770728066441646694588269262328834898794255469393191094913943774114255912322977567711164310884309549507608598303912458624638656440702472914051066666449352246358830320264434443385221868860048614936202327936223531056534600692151818343771452884152278609821326172034708477528948441894221488629778358481996787238810204667009144074910179106619933705684853906857122165914865411393407542469866703961162822725829885975511546677557385179747420020113007799513146914993027325122175157963367392636434910670532497456188816844057823673316031810841373855416436571497610031608577260890413104585127605831059193961703291771406579199843088240611436326972893276533904837066197720482497265454426286402980723946799270381372516001344420422421783044295392864938068821568230883120094757122752532853650560281749799186171376342700538414153986155122939411176643889686637687413468106413747831878669428554765195600300614028333700050283669451021266486462010998788456708882964902131679184150599126636447869237714685143070883113846247945973805676669589199977967516741809393438441217936339883584947982545373279615371350341061640695478816503826264587939092517595261892014455337844860880519835873578331722886639086377089910792178703046960819498964619144019744057639514549260247612006517902425830051604181738857265380208200266165319004578396942394807846375145546633637116557191593556787190395752465201517614963958804160497629879486177324298962902406124482695038754845718783727303439204253846670169375016306861607081184233072401428987734288477824598730100236642211500085591432089515615549335582894057958764943766913939710455437318210577790352292192549745184706432916449233410273906710958049168191857155924269481115337582953724049949887550674038454874636323721053699365744448421020393989703326474621189298238842420335259054434960814442329641573923937638682898557211126504410177928155520578234628047615658509194964648745558258503633181968243237115175187793130227929632041102506560706633916872639180572503746068125401978946446337977107127885617340877709646492321989878680180449768863089230311939978240095274083038632468038991548631625028476733099788114078606073947881247893729483315293492060005253924017985329762361249572445110584024278865237451345827220229353634799584951327933694923508056659375274302960559564175429837269495779891726396561695345894280151349392260540201604927667765824777416409222185718731235814367565059406948803256684388948162259442422788483890344948207638078769701147394305238738230665326941492350843732046814729239462077125846939044763501227116158725066671760502950802563229199269524589758971239029216630791355056368870799032826178907889917519599221357788538801829716822615478996331723473136524446013614161099235905541225703193305766538031371183344282355307250163805594052235126749020686515295587300833616593949961972104475115859844422743915547046816925788677789642810837595719519415892122499949085981193262350325157217566183525830323445947343912787985348219716472424860330118634089256428619013762058317600259532748297037618816329892027072732386288156863022007104503596151314096750269685823274418945266087682246142749486294264891405005386755781645299080954169496638427004076887362579612737741748799874980418788522829979173346312702784383462025137486414074591006748578150222699597251364521880946941528770106919124613401559635864452104235065439905292055743598577252382854791380644427646828621802281592084847813000457684567444358537921142103876927520397994864146984851905741422883601795752728890887625959234641870538202786892108463297576792540506520083821858145638070226021542524930450721373583901628108161143554304138802239190446038775345161984099395105950759232860350685341843258892236250821118620781374589946788485697815479515017141870293302872393025956303779922438736853277737181836371948317552531493985140024054531516801324232352555298240734335821056374233017474002279545263025539530575076554409408184428381061728565473787877001085919884651217064974060566337041687325883219310662993535659924786316486027820776189607099152005962392307391078084623677253539975370184013716275199426723801454541593891185669143884519574328369503336352898146183355760313766349680994309135128982744843204292331638393208411166809326222300669228918826477541979084186396974815905241410055632437074406613621433913874569138960174946244660761813784957022978985444336820994507793174948282430277215872709682336711120616485923373176008878243316131831798915554554834962442371050497521227399090016796020887421313074984032423829551695247328611261961655136889182246636531719363655296405421062543817527243718979661989867208061327940965838295813097672464016964024567218226387101016460654074641926571224581065605585288735903412022556168417157632628886177809704284638989527158876333470992269657333538977871995235976793221389317378915043924269722298592220782465863875317733077506832969744579595598940775897704481351163146949541209684197828910430648294810911237094448144977783952347724285485675944524736839216871871519054920880185083684451660957081978994690894138523974338599316618947885675579216449284330758711653021877123279741394281913215155765830136511531411710632929873622857425513790845070985961732453743167862383213474109329477598571916169140025244850949388590705935488389235948167555515168104913094945945304268069096082340266072672300149988036155199033892905435349044593130404062084199409733568859860002832697481229987440333193496017096741422189119820562407849773053585066529691920999165536511669966512288541433797396627844245014917563034249654169547426525756823727973500073078444634733391794368475534866609887792579204359725049300074892626748106152062841484404348444923339146054906319120184803376051768913682618528871806154770748681110349919124747050209674050574913476299793390110618186717275795730256065982343074953947350946699676662620252149690901557260606032406428621253021103382273979079529276446306080349530136996850040484402923037763455065090671226090125808163597595981269710001108275757275704989322345733535991015232563748343369818647262866626746260252508788803534448815413711249299213892797918349698652817585263543946792610255479015524715985310635829933826822828934958604220398892832449886204411232384133081257647727081711539479423571076989564734012861174324420097279044093434782653819242950010463894542790664957606821585507785470360037785671960323301945901859350922283655438346290803041416601485137988244555216769000953003743439418774358305669592988263503468267474273479839715377910123274683214611423463569386288011645248679417681688856341551813344718585497993168455817789520171798905163454268026244120626057549969012249205044932518581571162429970202547837685522099937496701636354196613869747011179071419281861100170341156063154539678219706814420493370464477014043455831356028531297773989435630616313526701609417941563171642915975606570325432561226846603451417576275095200341906189234618333731070285517030415490625731018380178048560108901224649742127116520385118070584339948919414836078569916795160568983177168432785588209252405511025968075096189556193776036883461053751900607076972111042593864008058009129772503981699125494176137269111820543004928371932193267514841136279582712470308435232176339578465375816050871208289135143571187497757471053688065310551242411351655282375902220959497516741072912462227954777550555935685954947655610939891849805541366074606283464577986788009481114534117074897931091780688697375965130882683535446380744525093319569048806607160172374157502952449290959650311102872107009403921263801295352153540492199076990370654264190958279968710554198906426861018913943499359638969958047863150534644407456300447636188377571916343030537739965796418479264004137439257197251097802862779157501390386082976163611825259528809493787533218157370277309767057405292264472967943562345418319571389405605310072244569427501528232039262821795508514234194152359993426358261209902469657816769364496325051357546350962598131434055144110462184376356367641625466774375833377629937095843539762411335174328905750843008449764951172095759763725907335033646845755426154434576743801140307566784862354307687157054239359911191671362715150168112605004530538876732320675713745256553759250636915054767210733341316644610528689320617157015106078176595562467383216438944612622720747820942184174384129765854550952269383985768284493317311334249536182158572532996030412740689675357346349582966167651091996554390744047912095238243947808619887110337971421594765578554949881231858886899362190862409036414482733437144435731437058738047006831650553160588884630871203720283053464599779064415558558461416115205707690795471630295328053302391968020513537737808552036845129845938428471826350605260732804001264012347269867460902047668410678080458800551856783865631863021571185231671079126682492380246771110810381520220834010433691236523708968124487875514889356079455202603837591548296574275666152917649296327072408082297424966919088640044881070754292096320253065588729405264195900846700001660115502626657862689967895771397858776237090838012306725413192970223233470580419498496571290116891804668965159736545766256765830203614672025071371163434232302989803838546048373367625827394039839853060967486218578779724155459438851121465259287652723455872123354244804090223370713320128899777481246867704799234055006848273526490632777621503761001041167904994421588348436167013557408175813229286320487497452071796098323141647875584783869544829844597663011599130437599016001027686759298011403645181884846896657756000537133084481469181821293020521680564704851952035656144727864815887102231667374135641072601234227068553348477362701444335582515716587351592127967354690037845450154357965446227593178433781524446617595818172140205068376520506421685380100659103024863790332234870357644679626337526566210855888730588420457646782047664022755021196336111544256060976031834595277884237663569135257971478638430731494347985829454555076644952886388519683825838451620227876022854001361412069721046444536869874477547041877776325367484356424075555903719355929949324011894295601940237284709998420548253991383235419200713110200544868320457845676819815675220201217465591719692537039992855213617586857330105667885254670059866231245840827516327211355493088615310096882222747499276529711906478622846466243077806210574663656442156990461438617485747055137544903803775043421400361332698009171122575801741477376888847949877081482105156337587735237249431886690100950387522592605644756573194956609334514262545528490732730789508831976219105460339228266867161082066896596002440411456286340558684020002327401504195252679384678715422933139770151956830431363239626620192367535831239970979931379293978223073083164480447018802746341299360857607428388431698057735594538892259487778899582626535352506960224962619014286425014418887719268227616286236014118723396101981317453970669997962365982867027181216427519266351832298195720091957468468196908318444954506072119959600278920195271900755305981015994695882122445836711187762066644539933631764852558039824129770965534267546715249516132008561144627268249358001912866825205181516673712537851461667530951473931715462299945376636195919428538252036065661669649657869681967950239570158463384344611135345954086982084729825233850170325580544950742165074135929574964894181697586972927920659673666321000670573040548773475337760486156932864114314295689531634131037704801324061642608087691694519060325541818103314840176264315728530654562416678771695294292454959940014757063205540361895883409564133421975219455287333235818161773000071514789016946566154457483652503924918074981354094323826580302422770790417908983897173035285605941564016171085617954075044966826233642834812187509550108283882309386512175828295397296953178900920909172882953296265591134767139711113305035448119401875174066128383485441089661464268494982120625485849154628717135746435694880388184259303881690813335824201962646881631133994579600402670987658553128468395121224797925574546617653696303974063173878789658646097495692233417913800899780634170601297927459284722972065548515358709981612174948332519201410859782845087088663290113013404774035236955257793684473671806451242541980129381447128297016432215937953900231888526504042881978760835373783065527358516729980951958126762462484526781617485937422571688451290523766352862850355608903305751784268064266524483529381561830227249986598536215936965005210456429659229515551450021210547672470869542368678638283723603402326633770923979489112110210809932615874364865343533625037155826480760025231001778073407178063159742373933561015136388581716175363726790016423976115026939061679822052802116663480417431700470097481398556534788599022609018926976708501230686693135949603450315523892929787471189431504283066593858555416688258168009765143701003841203660316370785857903920699985421315538734681104336069263609946944772923380309716100243506478444375417571396899311937088184053259865924199894907111810429856246086539897272778812298469281087737786732642534157771270965239906202929494348041258112762455498586907035762378998488791576930889426342200510400758591766562928497454503363482215416166145955710860775609386589801768251811456100133155362067304095063288381245834043305038702181043882120907407231306511678850589853189005914374246286797554733653261287808542534606456180172489657929253869733923677720066099388396312571092574645246910791063841102711932632728975028709784332319057679508467817054367410762652535351134036850687193351430036909386015108972631350451713675612804754643607052445870262469158548457055800447268994176832582981085223374658893744280680490056096026794587971281078616201501347763642529605942752651633672624988849580629469927828916698024246524787724151074524598500315564777344973926526761496138464819901839677576451709995192913964335996473007225779810056605213557369471376747546010058603529744127801591362232848880465878151163314560750411374845690235451025424240048752762507627246237509590828828559620470359265156738431110248384469896962456813874460937877152603713800007979738391951082128382074732844399023908914136739812072224536572015762005474752544011746366795940309013456779374929798564858683858157531946288742136282847459358318648818672964545759795011145147449269817242088817781420579933182542936975217495451203705434903636692624062733966335211419869410858890504932352190787168539312552476671479497824011665596799661975001372574164563814648128503014589479802263200343398194898843954906489303840826949440876863272974075587067942949592109930917227156824420985208237237666883550018681476715918682959294580659010379282549116531097350449749151332519023720729539594936532306960113109564423715113373335508942369903397934385592112147921830580376727636641120074219801343117169361048740572748835440348498851393054183742528027729617957035506833566554982792676239224391146010925773053058862033876905865356788144349786682270041114965557640237823963809278140505958625917481963912981543916043633790348782930056754117847847622906947338478683241368214375408415932532825808860233267372354802702351830325380858196474187266773978050125349248337990833699823988586760281838381712582263725056879601485334936645476678365688692420573456927495009619341617767563665194937502991092880602188301218919700627836457571931180401483802540111161724160058688120567092355948528677524412541520666794133021151977928903041329192564066113678007791505654327393765467127918044556915436201853629279312862657426952631613477697555982185126102003628475534979152419467219969747318797668044607129707864707582036386230136410019664093605124364933099996422527655048009043441024887903845370703041040173699506437747776430687424372222660129720802101721316850300215376356896573611241457585458122561453512121411432644248511899715907092433354033049294864283635766775391229929109579518011354348250897718115350172734152273842617013187767187131727160810134007396355889729326486904980481123521417080956027260025243097950613753059328126160837645952070362449735324584899731345820339574532496735517230691440828516449064096686258032291212611140290734064143957773719965714895312286372217286733674901840404753507469484667901179003446489453897131149362681100174994745212335787326578410639145727177173855414056379804864546233664107373860626044670114350524299548390194265737192655000858308656675248190907952717788687819040867290782428301504117558085837388102240125496952094862581487337689652454783897359731479850346498469100087345738622073310649748376632954099887728009661010689812895463604784941675844144234508439493770353395336695548088186164409661220791258993651939782708076434726577071089566915258958722270826656773033216307408330399068702513749149399882197298058602819113441136114605029295432778669053292471019013848737721039840392804898559542374891380744472735075239351726033138469976799399549007961829671995367384919589637580160746447875873053654473445037907614439160900988235592824093532157036802763694167015549124031763034756779424273962094949386719286468073008600518077920668133529223521703541009645688695894502058198543652648275015582670486530994013674435152262299428477590405331591948726269434806933330772231652138256253124327735776866034651517831459331755927186584816382225823817748642899527824768356595341669698596964316871912721911554575575933190047982758049635980846246513966207801085449892196636556774422040948808180469270210161776328123077187351335829488131679838026033041989434959787898827796289727263454076094998366317799774090304613268840428885022016737255194014772272645435452240380114090016095336741085995182956678447265412780419599575145253665147953804871921731945420763061390257107945641615158770818408170785210444344033223596475835612700324847973848510284374678524002687965387802702040037169850110748725188822694193594141186092837054761139807492044121408193080066646892559145661070458759059422213613559754027256215682961392874874077009137044221961829607772314790496895641282783899037878781508168184157425430149357249697633042013225324580479324601718317049784878136993968455292071946432739617620050432564023888518117716255357933108988468968175196268946104843705271825858266431032796564341054268796776618639706025605170805293576758523849899079404298446010686799289814989760015018328548548049069286338446053627507973063073177993460910978984685773882528206574712262401946044915136858635477151985484819032296034838159113649938424718110859016954533164719522917088711308890849359869463389254663713298160699223991071733224834762780180832123441192613552345576159107242281039022396893650616391860969590960104970495274908861732036822623618392856770883494262506999220157660407783165063605359968245755487603807187656048546603667868796265246929120421024089588710473007510226273154716671051341493562555285126607213936026881636047486455330297356657340438564749030336188068635937330709630762217960280379175820997746701125437476706145495658312842317023610338669353786452299643271510016123769072478213637019272782912132847414581096044489780755238485424774776123156010207802120788980092415940927875214159293916250138179597362962440795879887425947822575970835121008605873678973134896727613151923896108536854970431996135303651359075715966412267885393344053813228149428961625514541981055799842651304210088610159341245216275347388975501027266096036198134513657528377727047464068248129318175851388533644514551283828818405751723382992378206374394969889670091171005681748010456316130006888011298492035504414042854585196274682302823188314040283043386751611396859411120493206706589660750689370551289600735554269808699476349930360210281615990831225554120601607490449445080623657757116277785849241324946089640608472500601178265769761634295522714039686307400575120910951090181905525961191130514435356673377386040224223940628304651807102176230034532139713947054824643543109366852826590925644130492972037238280776322361092828896140870143425366413595898385956646807875019507392531551970701717467234090567955756300986114556833720325161766845153736021770530462329931933724676049263475564565597629280025496107594318904586710853934466618178002905410870055973299247693346538009417252384387007591557616643185712041601478699930658497198015173627843024531195228314197440223111652468025008565673158337540022364833271836728066580428188350929877956197008545131635203894809533732627160609336895522711551448656125083161395343202044455552125574960312974512078755795314196448483367663063532538591114856493320392120247797788333753563982936958711093292023389639022521211434639148607084901134101003979434412986362591247019457463509720322762231714845703069695537485734817684442373402113049294744067421279678906792948778088739275339315554708767956636131778724682694382890451100791168908764969062210529952648115228129663507222529774456937947079846379187845860395963504327130130685141703677692290132269141962987867165642991494297478538080532852782524230026478337160896967050106410889264026046046924565397927635589177567201962975813432917683274853841578980589263287661840772458132592281607670461857959812422339637951050030798176408825192596172021835090184176141699009486976449450754411422929813524255282267266549726938479689492611921786675223288634201639314847879229744630512216032652035481038900039279262032769611634581176572692251119187344695069096401670468798737609776464324381814155694985129632821963367886677344925303173850125167923395316338642060302665373754234108018560277881417696328832799602679231184552292911480605114574599790221184290106045448921727239619002516265351616466993820463498150723599201000241758384524287650406333257460302290631868741069219751324472704855927126748888294703996787170775300633653214400708723205921082147579550403939845559980751406887239312295605593320571269822875712442374283310522663029753780645142246488308560121282974318634020926889823926019827204903319571890499708379191070432288723899003037503067005874282772466777992176471640098039112087111781913367254273391687679514299021206682493874885368928042863099529506293335548839396057486331927034375289116316892260317200912033273085953444653983709768112435992105056252270355336377802843138701020858085660839693325320813330796541804594249994655731416753199206381910657327293069617955216845490344246521523119788064859375442538408884765676739743072995165753805614209508346396201824482500793975955354820067513605129870048325865834312649294400567705560498804566535747391638441673343999888847608435033293449400702763203459341956888105033691250656365632050921663560584146691833636323975689789909605840271604387265022511675372355260886749402635522697019354809719877120910640374501399204367061069967368828785196502132936972723453222578902314305198094807320697510567333957954945763673085839764072813237239294316296314008258622249208525151081238329939871940368720352480112058734172909545298263147247613966672414260084128394914551314971567237534353708357981478624616532078372251982517316480435180979634532021463695480638154659968248096614639236380941511073909223025124307623688922507803809809249283512806949021966833027220690245004852625143570920933760631808173859209061435470926176566844472474808989942992277655899026622852752728667834352309342047274213594877733665173513052930003958112485627418592970588091397862195192611207221720148295970597538670179980672601614081324301277112935236827408877522131377801134219795849540286621185529558817476248692465069272162700036398789858623345884061072463142870958794973042696553556804948830228512457091752803294234472020669170627469242469105518849017082083846311704206319923789289704403927677357572361350178904209851370065970247528385835910905365068983535594033185880801890741472463809329037807992034289875634280718777148265212120392347672879860280468948033720160752165397308276111344382148569987158767689696774062135481240495241376332429236196678314575121000708268143399402124271905692170352723995771491130383799402147200762802255640363541290192401189656124003276930488764510648836943275077283005417932529122294385688117813183691468429401063882645668628860494027833192424947808158130329969758777003721529134826581103612527509587617520639502243081668137496114932423361571196235642197494260161399280945585567330745276701570125684694095451323251986507136820407282430264289653107969906379340982768033985942621518175375436051306940752444047721505764092388481333221454630400351667561991640761747730412326679646936765102325391331937179172553616893264818141565287110440262135844481504930659833645296333889794702495089151397769790395378795985525194954151410039686965072638108232467998479359608125420779898344002227225750199101607911874456469191218446962763012009446564783255266969477307237626420362654128237332357974490126194210063210582087294923773896527921603900690489487633519811721334468623335685510263651770658586099653543915989130937925538738421677586809346872086290845143117048422752946813035082060225636954643252989624549851825355898103801363066128539348864696073726470350435421398829435724926676350012428549795056609281583407082379155596617081404425174951986565379020948247805077072763351782401818399294478329182098873637971155797557343199964537788471747799838572732536172342600197770863908760196519810174789797807669270754261984178471918669191861619400527525944349977813500613024492893009073990451507898022971606181668679422453432635131591354974268859715771264070216936400189016106857865881707730601321332750238870837739724910053801457529827016024580096992722354667143236102501338628430529662855009934297409570467445896358589079433876121622725641777620984783472554445448510956705686578942498452148020829478080733025303088181185469529210902934906795131796743298239670791261049661975478590679499210689672877747468304545284230156078628488330968686279163548164235064654166808696921859944122862182574788281333992487214959199847306805591402903895984560030090967082586671931352400378029044714654805699615560834560982114087553941630128676018936111113720263989535298402459473912996128083503470323777484197413309899856278708715381958318577922764004400091699708539329865422932795100921043430502772125717771709529296825601690946946975280992671108348197962227105857877524075118415723595837851639145137908127206149803306537344014185913406556218768411716230485693726727277300089761357638237946414115890886296978215598224430681989809774806384796113224497067166738072491059564389743579534715015397712004315140005109533594472017075287467528889088907446534159606523546462630159451708673660869174788787394030981046851559197846102788235988769322567954676918572328651124373466847725880197860498033391046586810148271919028172425822345111618697092527370155676094514369282885802131142385986293789867791491806035989095603566707170430581147612911973260090437091672139518701382045759583738625555502026355233227539352151780139682044472998666124736265552154467514753746880494278128864978483752022155476088244402954857575901012765972477688283711848448351795259667509144705054167629600813620510974121943299863042412012446400545096303779451525260800538580837212293247965429089779346224746737731285091121943365555961638283461988203185659086760358103873407679368643313744391728691831277082126460860892648890707324109239960863527831777229546024072121496228958029598479382674187782165906259294783421009254514083659507666431025837310976933380748401922209263881149649913397138785722534205318644233306363804410054186666667317350216403473117196596752730708716177454859279550537191420373220914753985516451908671156369855362190176045927837253701004423603842732278921030546295324563179207910236508209803420356203938765127099859350710590146836068028626593239621045344765992040191069394919630638479244611635351102747139352875895176363421602582781030481394179447640116953838958604569263406809912473800121267702805533295273409276993999178146765580226318861346792658255321152704272699899971406725121071659720816011425815890230759945482627684092634980552266673783057930731722765110436556814284924411354001458495950952059454703408987789288798135067877460662239160207013389721335995296646192690792770953282257724272280540666412474691713714777748420369250490493636850552628617326652725323450845433003676139136466945680766213774773162124229517100683389285568784492246223715131181714548039344776160911451336486738853902942440598484329725981090415966415969149469586251678836520292150037117043955049065480896123609000857687574057171183943872787104852653390279876147035646682691121725468515882313132773200847765078289162261430004078918992749122942889711411185634299979270223645758910926525432084334006417828290279195529002391553162766265203411358353133930054541949788574575807888311819023408111024246021729353723216232652147596977801032082663441076100476793833678364144265923920796272908169978270660405300819687261738344879875260163122839832919645021820831897391614735513453303259390772014020489358918249899810274111221939171816583427292784008185552928573035759023302143468089944714906791061774906472925079503158957986408706750356440850792938367743228624994887165982560870673980651651633376304712452932688445149620474089500089659936339583021396438534706153165158324544169692802263064202175842905095406455291537362015347228090468918274151651230239553597679116927785542633572518400936762457164760265306877406654120570640182278368477031479814780900891043672310409768448867532315633181627955516454438707002709575755411826493278088262041639223125954832005383813224795843204711249914220706854231301801940878945311677292863736822153872839671069792631109495693943221427292887358945989393407171716765251828185732675637666665858682836478597044280485056653881175041585856130217613876491460819002951110315025171235197090520361865538900860445969420215226557718909159679198308800113058942933860943659638674320337449668938464901090884542278817666555207525109979293776706750249172237770527745253052657654965768166234817605739286892714026444162089366767801163517757658906202814341542210484436237127885807283699685663677554295939714773644792973576088160704476313873517851399988589614198937482317535170453191395319593311568400877866897728102165889386144580533235116056128630613246751853943081124615264250456726794847616827486064477359230832722048907071706398429726459865637844630796753898781686040467782182249560601367752564652081542360463251284536627252698909931868267082010473015836635869663477849525120823258055624934306310717143064067115020635887398058829836709787690078519200578210752512556122502968027019257417738028295737130779774734827509198508074502825877046568792004775241563490093197484244537484075540011840509553257772719359571771506644689870823325117404629187187788066550299823966928823269662935481202722127691977565898152186370809097483232144786041364248700902867936447997559572852362136135220728003041367938170905705798599138477821577153233397312796492995529883292952894842072691942140023036433714166765278470912517961070099169975180871648515132641022516009626716951716663679512582789565496269090082241030528300018350963715784331297338474048395939142105719792328983472324688972896785158511804628005351125119898834797901650092361684521945419613854229125721640685440617262107689535491965131700014693854802225271770117838883969263237727800026905266905190360305102077666215558496525753215106563868555491733420973445242205825121804863880579157092270743404223442966211560607980140330971788489928790426530948628241110197253216341802807835515160212422316433358523496685003322107087557682781891296957496077745420122256585675048163454594735552034787547515894580093621042507198562036479507210641294501821119621062516710600474170689384410088503608466769330548788622365070293887325818487193471068934147064819867457429378153998996351995472989393413317992170169139882546693279573606503732261443527304048256507325473907701595641004012123977714321440594078716659195022331303771883953287104665168309966166609011050042106377487503196051306827897467683455294782554470073790589736481241535936479993597534683949739006166404529417265861496193394533754679051402271564694339918479532758885773494533894456499570760167371394090429608665164849237308970893308709577156661046607792871273676513954920881709696839218934221799514826372848246375053669707777947406218108535670455637991604713898463090470581249643564160870608441345855219434817788630280691025559388984232242254403164400865488863275812359810863939830211710981898128459897544924611554648622817883775737185425670029295291867066719186122365952972301172480524691464730771115445342151891394192377017194218118499923444973985211003438089898362532760425423146958971625812159035899306119339153828238905566513280349219074313521899595891241775090393306793200125638393925262611363980221303044160202596127950432396714600667593326384939955472685671465261374041744167715228967034950284356009344630165044225575764537576717310434892403350563918719496635681357294124632769897366133782276433993088966972559009456805266816564644408593261129623648716503687376829091287396387125360307421746359029286192604294002977029254451944558137892345532238496882076399198913472041675322049724649652614752210895222963809731160282899603120114191859934976733783005261470322960125026203162997507996941952852007469224800061515128567494467461897014598644675812807757841178944355801301026880730052501879212673910560880460317540994858056763253491087310096361662874491178382890881003541585833678995427721553909043231439317698946773756527957952174279377708964650407623388058371523884882705714365790271237545425964329479811405342836051445981160190980899029113733528379278731044838511097889471092607535685274476052214931432920163728385067826818119531576011415726058199748843351173311749398988024510221242018793358333203728794298901502425664814917869741325745631890437472242213875687235361615966501656209557364827423747840269799791671483620496481745705044175607164255076644965928069122848645985815443387893312424201533638335409727130197303645505340689936881726334328229287917605113866071156681766394080336674384660063756897355743933315666550530097100440168727492024612316832182844623175919535634228261641001928465336273248983132159124864524871791100596975461722570874303518457324128500864884324310838696037845324222352290233543034580311154733898216217589505414344090512233698109718786081704037083160898119455216091817851110404401622734317646379869741810636919339078479066911779687276537792884439782670279117146071334807806438914032014988443677171718893862929678352081432616359614835472680309247425686035885664311097948665950223009580242174515032344870730495337318606675113798756210973043529183857466599828666964362651697899761823439669584233132142149629134084386771199116130438927520862321252951929633941303352294945419010031265957259929895601841802482080489801676422825313593709057828584979827775304530342663641327578395479959059225382098918292226272221617249257010669171971631316292416903241459477003809129664248389087916798041347670297023094795703133522843224992020850969589377093711062093115443305342486886674303841747337062423533238650450191654816632619454695021994302468143601435127184907458418287147643162468649605236025210901151896047973348655024340547746692021566814149139861031692542256840311815580726716868080258676557129170581985628474382018681548234493982491977359450856224716112921127897051821206283100580164935397324982877779582048221793945156292781549965999899198420992689460731167878357045187744472490202059481846342810476263422589933504031786605526702054016370898606664530997091171982357947940937313461432544016344969131846444162483695287158487271025740442041823106649952089753900194728796565006278788430787048166710994188424499737416501384631489778112132411737160376528025828379488973436784975389711639942101794969036478235271037251145623295189616706124561417493971087742675790463355510809373206776550824841398669012465293864518517111050648473227488550739275031087908656604473149807754758023613883358800540430124235870514828384318148889340021916403587662863546607955976868530469798071993042849918741137972039635937228034327776682797242076717201914117608699236062447115236511674734143038565542356731252052452512905032565826379512507317046224844334373468972039609427623061021401977784424526669981692523813353531432400167283083583616588093732737441195973347607001916540009821836748158476436121526066928107298155460985497102644217007738088989893613715817176378295353941288776821457930479776467743365004544807998865355112643284854211779359444599165382511556966526020580355944304773941615427739705919972674618115899611830108339414493547029159882300455828133069656148544129506494773663648961259949371057324212489265089532764238570712504747708743629937433337385052068661267790134843525371013618588115812324028721216328290178278605697770874870461435764656773318759374686821365657180821456878714400662411714412653887672465154948543653668061688393332295435126646277666908530608623752843018618169272961549063548477937445353497554394530060414202017349812433061178597438569615743658392737248527027424102141605969130693282158326226288441417836063232633461345694472658043192036182758190016037107712701032131296730862764503536213156921878014148371228686910253641035772394374811381951606459491515580964777755187502695825841081001415860270728132055946834905289376895147246302894454398660572974500351829306192337047925493692717332143880449578575404156739898506987434697408626038553050235598245093132639872159171126798903210201712755668907995210791744055876624222086123658817316988348117115392868004935893580327940946065890534509538879253883923132450351656436383965897733728632757637408627383069286375256652648703523295311854607163234224566597152058822774797184056673734108477889091094100677385840056468616175497955816862024761643013354339845253112630806447830862424809228135279669263726082154219784648463492116580453837479735942980386044970813371074921200315081459818720250137169011156832922564615764623782671205317936943416671464960010917431032252152687518970002251047150386690024804552118799504876513435116145248501979175012882932629926106483373445850501826010318195699265843435041633494024580292869524777345688079796643252761202867992522747781306091834425547836951804993376099836204801621822152002591745413778958450671520772471876577655537953344181722732267003118248002860279457528607340818418179525397124100193596133868090960545072849085547631771541767453108447812056111772092514566529587591826122829787031685542475299712530380247816568383892732192672708305438486653876819170694562587271485383135303628050108900563894182106016202345539985108092474795575865339378151952241073285755306160707286997301676767154744022801208373695060719226224310838684419827622262827446052779510263747707682811416810694753013856658466064300324962319015286874781509782211612588458425074144614198130757813355788607550894986148841827153944792795512216094035992751457498237975034394769823211532172755354496356185175654119247023931255752078051552182808559988612603730531027249583244396023164936234116206639093924118960821944024426035443067873765562205677306520799702590853642951201896799148116950562440560123323144384873918911132070176373294075468948433035897308712190314406625557275258145161651087991700172189868711040304127879349708521741119181618002102338044294582410954067843345224720204459729770272671387429501155933583514814554725524099793053790647158873661275340462502641833405132250469546038436128387350223897086051684315517062406193126131668101282385926820328335856922411942707706576800227981862664953453886392081243895792412158513106965305094702323922075885066067817947547743360257964700363752300796563132061678772859728943678400237079365048340082651549310236307262504542894142760196815415275120844648281992465646197703430385664610904240792702528633451134550023017848992395328801064025215178667099537340176582451924117383777672319184241963069517002060784660781594460474871877866915170768270461249499505098251625518152406661351407062600145451363322320371508868033886359718248375069202058402872959940639959468771804624231392541067321001750085763951795205320002698484259041199002684929668051891788612529032713984036393980553378019251500073765216311476682247827673357793921435397719354771545615847308277560072241732086643486996543470737833834694545665040101515606039162788958990635700883029422927849134802081916035755641144781867892269931635208108261126495668328134513455251972910081062573291595450051932499701722513396051139779653070500493830862521511590102303452630841700546059312814952757360470826597107864623244042045116608431661184689285619082830486714128191569934006144814748149212826517900583172715076592520122337350407792951114805874581159969811923218580545153406704128369643887003612739046192859426300772582764124716605652070570713520948749928949333748794415880392350753130377702795318303717063973945955909162520845915599269657581126896342207797511347095950120777975961292698837095867551600090115183757184304790644176604303271962735395581964832826200629789299183396008154791375084840777590081344579105980982427466389650603175548167382282943514014891075636237937981721419170342810105906142737914993308321483413597425527270343535833039058976465853702293055281927974567172644018866658701062300599657020999561415993989847702838244682588370307769039190147930211664996608482308882499439554217692158809490694254101993152979172603767732230558453268709953163154863860621968158884885797642588144418658794176400698286670378358952917573668638087679338995056376129972608997928708665654851554355574006159998596544512801515083790354483954042018565953571405361346669089394618798081169937792160529461544303476177420795218218521784624844222304122848700470229379063029716802097137261362996086828860701500178846171765916762357289303017157468263845239355637336996485332088252325467497765741024000474970933769709633277985539501481224293167664782928163298897060558106113380338131221413916639171752045410611383107083946075072974022280054161134734781155953738788787554949080075537861603854666230923690963998891102098544109269112801677043138669076364762795085879708919630919453535964646346495788206307332713764904069324835037394868141660342423063579562961647522454952395498060784373550536511275750665476471516247107649299132827821321690857162600242347160797462334328163394585992478327046400429753299155326432192189325122385781828478530195051401146463008848735500332982976673953085841133467617412396297796259076776675303424677900840875620906756592478498709995049353700385921720097894474115353890349476282605639995428530422697618405977896121297831804569200101216875551272158158223103665838744379007494141819671012602391896167436918948066432489273992817102611483696466539191636870353622851020022883317903983561791710572210603533696433359400946796924759934638094576003960685085785110768864385503353805474213354417874940277316922507450837875739942761985191422924446516089021363500734237435617188759345804152509286930101071366756511447111394606572396267814670710261296487945426238978541068650555322670260140100884214990187641178438045917234441391745956960420620805298316970493495099055460414606396616289985885859593565050815738220524236319357878452898969859225496492070446249262105589933396921031166837511513557264727952962565578894881748654618133905789066052914643368570034466975965014778026482347390314329381135256568976620541014568540888297491604170059157190274747282979321254700688182862405805913141490822641210404605382709226768725459769391562388631895115712406771084829728433022894763834240211438857126436957798543075826835222593564791542933550659869862085633919525843840616072906607101432722703761157030986586323133738122039533324903929750525761697700746625595378381762438348478695011164114537225950994890464642830865720593433770030993658660813960756340335408552368490526453265344312215701141447942127462048300541353022854070005657325941622135500982149466441247555936359758093186151379527742491374525608628133277923687305004507294714710638538227604242162412623165264245257248223019303277104462162821656694535029412868517925233445773524502085676015272862292892820069386804628300610981372775940842959105318192444036326017411904331479344422021619337603278596256660346458156637811456588606587544730499931297887106987993583788117215470302096014885813164802144641709683562629770172081414125898532806914079412694931783950727328281296705904644637504583696242571241475514919973250823686500016985455390673610366430190248379272238572346860697887985846293661704250102526981169159980733128439104469529039534371080889310720587263282932745873590254684798513495231658270516843964973588338589746156185801261568096276714924022333401073100251995121054330818088173163419842989712833673403909852722497423634895293808812937295508981896098960990033139430214795859661501275921563769615246176770742084984399039116685759702094015633608483551655809269149854975942888504543895812867439026835948293606216978929216627018469693741527541023759631289268794175631561737640651922987813102730383904924621994219041689102412945856597137868851223869221964279269051381886338333681295713426125149515132089046361687107762728215706474563351906919606473081985186228438254485470731456749293519677665627880051776808434773344549683936463882966949451963220814006519216904728120553327457049445970765010911128154830052924412632576602403676238308994896075619545405457757875568418742268175749092958069766774871213221374007558218655198986946714867003918138525367901186729794650625123615957442114888066046243925426773703451193141146557607436699054108925313775564498623586097898509271102722880045063938998496144745484472702528011170257793781772633814550298197658517926107235599546007899508699803995311735979052683258456842232338651770775738696873955682140543552937670301506071662062580226843680217951204577198353807037343167242953869763382380335895463716787296820482001502126238659587329673787141733616165808127039890686314801666559360413700540646174463033465824182920612962306673919262703331305520860923630604284308767589283384958666905000535876894074331149851495655221349871628085047895498548534804630995182026157178335123640655340498445293641372551328508557509903280040298464289950753051852304568515743927117624961066756042229096158625932520514731991470596647880772923334332110580799173110806332812382315605363692810574586065236444760363681549237519133434723997822464689511803888737438193635991527643300089674214466692389332954669765505829368902888798210346537909479424248675833067682253648748023880075706241237439361618392847529576023531177129981581467478231350544097153272685899815472107185030228358043930496195320097299274662083988799652040157045056836741933939280102743401091586638547602286403431435716624322832220374155235516424228530856009366017070830019525921076774727685647591441567993112428529806589112659986502419539821393906848485181655061759139689475738269396277628731453474027976829494709585314732981430745321749294573798187001282774808330387008683112018050661334054623620559406475771306846850135468702282391033215357154615087640221463994406456341677675310832614625633778276500644342891846906588977241384845631431949214397292548961540554764904303608147642303686678209594275123535780583785289972935849382522338473002930920949173485077011184298816773244358075531895352785789707752037368412293048690366118045659802560003321028851920148405552108377653167472084497693266997396732508285744480834155946137671163175821069626549689527441699939693385214145764808814080753786787430030090800118361085151543496839246695920195773385557327996260194440027830114840203589172576108686638031022883408233822813952382311867943468320312370629631958845422705706834268747325569461984094585200270255639433553963333645656299950711688833406384931274132837738549250948954869270959128064162820177090066318690939565901311533141915118678782874574376829005914240776910069267811287664017767655442199669171728898458055039011225694264819852375903722281339148456185177255814586041835260631145110128268347083552571091204245305559818922694720110518663943684194352103739739986512062846933395565557627529415787088015153905690943273353268004277925345803005698726649527509780401157446418009769339043346634388469352797389186151625337737472827892233134930597307865566132181757614946659632559215993675723533490198143102267974647158701667941130862617850334188000287437363128168021111904458439666507522063505138940728787509523772108846752627215153130745886020219665462020742742760808686271324138422862821095270800882047041284793211025191333119488799057194095470978284885533662564945774821779485720964111259148103960065715531506968880680606971649422495959646888430398870817048863724720664481319419614336220977105469203044965063531173165113521530960683233726966829858596306952012152257430319911861195241359896108385630281553413490347056213538629027158979215303694459495714776822971570909251063513051109939586116167604384618781508815369885823161493542599160445335806618734276593015766519699885127721512138188999251494014197531456415815128539981882069763908466449134739735155965676685846687722297385077761834707046640085308284483151905785530306881026458977689855666364613794445472560932934587035151216074494443226110950505897094773376070325592851055025696355864443191542443182281959376834803777617590454058657224091089941609731512124065863647537485232907180457623849991914028458706820501207348342849691132392884607341214300179341636352227800399565171162759232409750532983408145059017534903456391007260668192685965055841247969482983330177412561849139091468823253589344154524434477352495120831695676455739777553566990022846349135769836623312321971768270847462179977718582828176584861771804806914583108794063767726278118811740273271727077775860139108188864992134512567198637252503070816243804660530963905168766848573702335821571668710762116605262247829408732858417679656353060361561166177128247025203100909897262418631766877926362281012977031660351769709371521356502000368146217504717537476969178780714518587664531735734033506536612170176396393971871371543633510453995994390631498997803018417752435032863755240492112815881675517583862587807660072859750499616090870625645236953139147423431126305859767052360442777649368063590067843309568210521102324873825187586205993574556980283715061606197421270181574944581947534940546148450759817958851455198256788703477203428137116321298845349134567200496822803201325857358476404397858547490085705915149321921502382415107919460446414421351845719735546147074032884518650427045061456316663783860330470089310860380128529580951061663273486117227756074042919826571782290925499576608835072481545320206765870699131347727787663971633715186689402006993039689881239007649042960740205882474284273933854157083991550451723396480759177167303658018958318594910197328309809974421129941960306132244519792390013563774921657572414443205158992239835255587445068091201699874665379396782467360176475916286573598899672538330811874657671179340294171780336519972756963322817193822703134773896171268013050691898259103194901150161406843229969635824206240403553010713581087592360256576133004799647841277203130544440170119134550943824985067076706479988338662337140138005875796343383158001755122004170913244749840504693298879424569281938919847981007403888360317220879500582437235428652949013655541901981776793839818165215264628617202358413008747986547265426423360018960715968610844563506705682369310056327299372078691983433115918984369691661576493311804483373562973211273969637245243298404594820039460138688037259867172386009433395625742433696237160530607924172210062375909372917424507201480464123166789136189684553001654389847379289162426405223256814877842621606684676439341487549037411225124522921665838574036583467017201253254203712057598632840783501203469472825031179012561819624797745929759353462721120085946612196701091313799306153987123114354362851480169821911881452498134484456263509601008695319435295385847609522073978263936961081549526887657526772454055966638914163696627488939677339421276659140508934741001849137332590001715859058493833276523939031325011437515229786573853157702731300381135211871266177877029963994645379474890536190401461378723123861510989577373725513491413954520740058674259640645964627678574834375104281191584380039529927274179677310656683944442398071151802274122053251259995887782431732481150347139331138256325174971370269235822638700673085869915941120104922702425129705031010255483696381638056255842472882940737180550454428082272125134204932960979033481027283874121719821558335466925582166279552463460708937645769911710015008519832499866164346636569568715741782621830758340579977242926714701418711727116050389656582359228728746819458854435760751581372575874046654365867433743458922430780061875616308613099057303371284073919014336951006889511984401647782055396506035963707482132820443329792835392773101442204549758677163690934581884102725333249064094020288220859770627206573047351079197304609015302651650924353214366460433197344686179969418102511618063691332827267848671496731837604719133327409368635277232242606489965334504487606603156007584336224672177011793568434502628023700950735667386351611639822946822785179587801164990816252556772516184494563846071344011066547687602236696446742439131813427871162886841723395611722088527270619716314033057678054702708564920006020271017283942452023640265862173780883328049421876635197854274952819173414675342768534421229925504236893685974549305595800396852299522101021379464983451571186519032055271670668574666106164478875900977616241178885413407490066070737980889003061023029440525127023644377934344130903718646238405827634818742164291544809679933979978857800843787412704790753834648601439270764718942553725992850013032998736817458901158868411339581471589365591780284345580629516898770039498281912290232014524431210243365210606680992081909960602572826830844131617179706437142360350467053656985281817498731859228460498598036918589205370662912680387590851753307198548172327181717530850610619682260975057495958536526192798864271497684773149560230628205461307251593292085953232649370150103364216366626768665569038395765092463969348968172300554893063625095257385653068686878477321314518326909404185855350517187294068916485898418976772515157570310428856443157891824823526638483875865448446484286407188167131557183549782859868485066578648612864350883434478375821516855267542138505813447894423844623585598412026124267740072393719874785059379546791063731484611708294881579519503854540408562408362286869072076137620695796637880292752463030725795699211816486042802134848503783457371832043889857345927732032893368942714797669629149887150890711464522099708647020726850098291251485502298265947911869068386185083741188094429759500201175422532355953144153176508912541775421563189188593928743918713387455836555831876015027890082417648950126475902575598360482169028601724944327572812849836487418941253531131061883184355637530384741404421507263152782855027327665769069482249264806764085175250553924929903447796456084321618257205515672345894959282055941109462797268347208892048073959258393335884584884658517824312852791070862719767551062593321532757156247060551007602748587926003440351019787865166000826847039890049106684504285623615171559300592006205183583961582535643448220011390423653050465522031514717249505590888766762485771481736797323990125683258698547613795561139528366987471214539750348142284013396718908754819969506959595733519878708253188245166367530781815906070497273859636558870719913702005233026013817908017495510445675782837818459638996266049918211757947317361921276037813913894223834903065680605838578661851360525338281284691836576509381485117248643863681671785497644584026583810484517043073655647551968372417106182197524046680173723478158901759199540580765522735626878038256428582241231416701451139848328401565330140921435318238136823715899083197478918274268657349350937514676686132845705890530005438115248352224230850261737991610648446134391687534430379936383821854246752292222891761058837773408463266301743085369398711001568978448811308543258804145878301171657430870762388856356148818207931946672887686901657056046938338002367822949373106637923259564729837277996706645183036074074734446724374219114169296612662355693301153738635258917573555898194934042809951664665828123932411966363580153416225682169570510424073543098725575584987216078234711713065784699279858647591742591584134406908062827376865705664566003924846859746032500684486212701856076511999610991606243627054774853741475398042747979900355165123535991452744353112044358333685793404580179046448443583016885579289740924844559517297384205515919723563238933174922131814350324008013897611517060822408906169570852369152683238952346220239903511174410105395408526846844508324334286628724292062868121621534956369511659802282923639423495178914569402717313849522663543125488368962179422292713504333119416430611461484557515141165468982352206181974551144648797416963205641210039632825182973127818321815652222094953951752758972272624043314751639605759940177734397708826006790124854140909078723973984356124658056485699494517930025837611632568091929214086508409193537593419253555423100777503586620568098209387942096352547856379049156641152632578195895130158860738608344411970177517039745659842468470625912416838491263139282850154621397216847367019442361369251417903739966987543155479673378692832717733367702455983090426202924871841215502262931282863349099829355613109118459304786682522176229868889561618012963845733782941896631947566711347323685592684897598980135525932673187812030709094807445997771944791858872616842121903618758540357529215409086683611392258145125936192836433942874453234098458053218773800424683158671855483717147265945672554327353776278958584978743663269521341200620514981406519112496314218127317714462178746094656995963555377724922765581061000691750438250544719242988681791416508084877960251179839866818079195677583913256874709004743890862071357966174008088948889242586703149537768537057061015857073484289028366776255600931520531002834015103511186441970144234947451417608444912142624817786418733188808437400059414256792701422840650894023619733161056116447587440887700884339229245498418013708417539258774741873713550519213913060808562709330219740705298384538801697337950832281546114613105532937751333846620220546055130776098639097490668255242768238458697859961371325310274909980348648211420526002541648218325178638286608826505966379229072495367666178213233714599210298631567039168986681502683828426540399150999517445300489417253232520509911863411851216172418758217981832196953248645213168026936989226590289322730493265003895917177184932378077073989063749587411794363616783358728891371246369945394174189786435189716060028498932979725493916810956696468296345161188379132918035797053534665082287302907144744743383367439217209673987872377559116578958761070294989327909025887811588168451191580410100702744548708665888428380005482314201928652814346752169103182609285020859650277197852177183153885263193043762989169810544455161008975770717568249142949037994067375929632385399566950277631508021695566778558329666750084122357965072327656986621247580759661925886676184197233323983501088513056115524223533281888004619468781620583533680797994056185086231625139292229497911020030272918771258656278468855960972580990918964134015792533247537684289238447268465087253354574454898315927371950833409702303429554838194974310646170148492227391466561476307400311764181726538244080927908895357869455540058134584510418173350801853895471594171046537059089778926596362604939696028777542407738201735852456897344482836698684629803204039226499763958104519620613682210801878991930213217308147411494558993348686572270300188796478849554736683587215173916307363642339862816992872019486344123646056544139169774239510577514682374147848244427410500563656647276632641981849873966871750964635373108467358795782728329456619806679506860864367012920205427028649971448376872930926604825619323679330940711321031619922768482828366875235270157042792187655301210344016107579556775863347195107238255537243804105963805185114758798761249073221147277267551821004844681443378735362015232678316749131931598946852951041273267679327523812542426592204040750197703154037768802599723521541094428823022030656801132986530665160536726340693485193205573067427696494450287234981489218563223822969765693267772117669095469717385608837047116208436907371239893328967554139485985149166681713879864692151459287422420328841392227254499855862649632252254960558333754075490610401675201584390711226645655860109959392764581198118033158346862884979876990515263506895404367331201872127982636999575589649236294801519235996526345872564950060098250118901499192879171534381380755484930803815394537565415286399067751058847517145312326423464002393159132392481282788189012863199424097255190294001958591418326322612589713029438974543521862056832050137587482923278971298955279535978564014051591781462236160762360666816813715369454987429592158143309791900540628344788440526570775276166505336920489084582396025252641016771128127367129375067114099208950284395829063516541237441542963792830442571726454694303400443721083521454696044160072324466642878330079865727734577978840726533934686071132918586447622690450649222618760426505647140569820878814504747952267442817636494508905809704398652429313944353878728362230492696282406468228422081260835601771881791474456073030789885655908966601348338481793237057868358708849066410219192824077744477087053591454423065959392370718503899348865013453665706076229282687059764428891198286176142243192370564990653631509774521241569834534475128240599361083617444306040603492745632663961541426393208953410819019356400443217837074883544961874520412112655632818707590655098650070171401424538755061524544304736327957911396978653201932109398628092925008293890421552865097979458829092740173220557259795438307367309084353649749840286142806721122835513013059697530256694393340730809287435045998790896270426564162335975491132647646165987414951779457843768654106930181016247732394279904723784197703204404745176188511749582414527718697175941547442953367447624723830436834623481568697392927491333980543763762033621825958711118047551931441382689636591852261005452956857040167921523402091919088587902212761762802345201301695762036261980601595979610270772602138214418276963909651308662171342836495399525847904185096606745242980514744272891544166707224660455924126284219783858888272304224528564750765264436672523039726000671560889519069184647748627566281995634413911459408356956644320922398502342760058789839556462192123094941738717227067653034366334829321230126593951143631378642566532398153152768148650742585222432081476948678389430371631689424749089894728909786259446363085741632332720136329858651293561722559709928741641580292411591045378627139708913276553575256942713655570048083736871504760226828302069156629643088285806668332829667716152502044232604225730971456491167204679264192804054876821423390578336819809204513404058540373234260985081744390770326226297819006946357582427210500846440091531602469294402645744529608519567592212285184106497930142052593073925314052948498910186786383437073056271320341567472426470821302650182254834688767544150588540686193315760121078315060589569158112467725724987508152218491067755770238729584695842839824038289580626037632084051883387486701744951825439193793579391160754573278563771466115706999681847368468165302036886569850382099022423827649010818405935169378792884301466889680540443848756824315839730981055270875585833387219041492998581770519380683990807609522262953252327875179411879522762861049541560485414651731310557091565616041067625392509887712514700157631442360803954818035471272635936295733186786434152651391891897469927240487164605440399479682982514707052014208713615451256747993511291277655556824934098973715635075614324976050355387084885992991561210466787340668412550494945568547915334500710165688132507370821022764102557706376363635548237174554025281607041284930388646010092116205994526616958100470373719270515347978046945989829603881011382894915133345275021058674790871046587351572260436398806869612562211079029001578101610208730560733886530570808984739319008015511933645772336882772993701502835048063152660360240221161659322277109346100109119305673860141002240499660455056306858411788058381498865150208098039292974056122973662991682815275774519653002395237328643154399417080789497141694149026588164780977817692438311926921450446877471456987475152349393678849107988635044135101314005938690943067809890096608350807836033243847426216230309432797756479782995815620301689613987216742065631796659551140820083418291872954367345028821575776750137298749425437874754930560645541687233067650692135292019328000997428631760542264210768583712760591185261360694475779677032530641971417472129944492955820635542733239100041860384983901295497735272107414910523866714389178963204009382332496615443448997096752793701029333379585542166798993714096858331886829307714002415617556488460355765952266250043332397767387497016826509787125891423474300518065793716521204163629866920625646483438272226852469138702037544156382431835848201508386956306314188422734900457569143634653706217928680191470363087377370880365104917723230600035892838870380238805668975529420853106286840934234263826241912789701268738783216661395866281143836667147220238743116820878074014266989036419311443914494977118543280656063660014888055160984452394357829180825127068311378512499114109478622066080338124479174148242323557993897058375307605080660379522839143813705426529324432597712356894764342695841240282215879704337492340001183188997532525710153631911793269948836114342666391928617213041440825879637568052385408329273570533747287081192174754648567665663650742603484837165252079065909671536682695157288360692058539032933222865490975324277692098192600074012735122674246620349723838554658936860491790987021762485429428110401957202797715503911045262890001989085576026643516470209444279733226052026017018698843748465511395942129144312757535783336297832794206317542825746871460965792485872915619774853885060869139367294996375021897980515113648087844582157517733866135331971040961708499144428170972179569731193753543323783795033333807481152935010517634234128294195912864576325980281155414859316087387302713440281136126905955151611899141823996261669620018235274566735093441323341089960678182864357726704378957416246608185276349730337515227449277311163658049206137093279621545159083012912877320627044902312700223575251585057834941656219261353410075816713577258344783740808395533902871837705672455449994003124881109577173692778324755850667059753249661839688204746091316757423266667446010008135933939258247904107617169813443474267807967103630547857179500752585738714104197561364889723534962479338185967736671882402914558290102340691717380839492821466180402442135168814890106594258797131976235025843139582856850967206149060434639150098644399887734145130321478371798483781219584054067143195001930030177977800418900488281597267826258231078797523029119852239028455454668105138318882660815156425715617563953441387134501604752823253687928632955128822929130193340321804960947159243688202965790529150341744239090921750407413009060518624937330998855594441351622180979030466301203545482721154745255238697734293304069609574774041464096103286624474558211768580398349148409635092607401724860497574863683665693051307868927185472988374871126581796481620435053984157198250936412219690644880324379170578400591476967792520601916746810792729567722523902491181373553278895312861970378443813367256986663362130655101175948576783847233821386260091965099064688984442568248370801203481033363954294307195321276229766959028357874128349241452120722732122817809744226043043151080184186522437079779222916277798508674215254770022644778009583703637485047364679435932655938508999148631002538428370159571751705882064060601486224046278992187296460073601421120494330979220148543564196888051727940719913629341704199891483666302121319404290785371310190741007890852660914070827436099646254070324619640842249084280603485637841177772418369565272559094489534437594796975841452291969593418263875316403525214814077221546231656203687843688109223601528921245417327496599564958700499048123536301690713331380305690793436471928829188481100704672903546602528204667410029881424451645434990984595241433089991808026271352939954221896020549801222311041037881326895169209041372434773646125208674717428289662960191647917868336698727275465462377839014586883497292017445499404732876205031098654861022464508307942900266882337038328922524297990660572645389430589836750964691349732421692821341018742268891782862930254939319307331387655451970910692752264691233382180322474750032661109621302511687136935741288730957516463192676063329846263340110951304707081682943355653286319997056842293024890832599402155158712965082493845095602508082898177342916855427794808853215937248312641305975275246217785846545816960301385228444684853851524625855060775176548255683117879648661967112559579908811849815954800371964269730334242291190358987317053109558436168462307590307955300401867890362966257505389168181578331549630908405827806349564212740791311106793607837440363156464181776650203283274654447934428099004629931482722168684391640959134886325810521140074861062872419950243853852218287061214799077649705390666925676394732318253588343249903150301157576300435528327932986065144960625898297237783491738952590618821036389514566729823151096049091105182074275024707896421557611697687111391632842795398580602198798943202388422290451554668125872043630685947933852890842626220448573124046235183688092204079339429880996851944043862821047052775380190441260387510776948834506278777964838023651111327045646731987109655202425193145791608864459583242299968118240282175956275376477517139776120478712688755826356989276384674760967319628007561848712727878339113749035817107917002013033200073867495066585264395854177676717307160259444861971640718070919195129429878153694232305784506358239165286226411826675703439472251754417270778654086196265254557935198891561852041098834466019186597921473464479058066294098855016657431743551645138371490932313216109648569236472067707929677640699887680279039404847569043449914971870351500680284519476799320713041909195098412513129946694378827832357284731221824093866750965142788166437288970682387808722489513901624601094859932330948851850759934489224710393829564902878867119949084673337493415030779056272320267326469762290108140074288031352489074655837423081098298170785136188017594631711532433983614399629006933548136743107118670518275419523202486972517630942722296662154307059252770681267761691207401120347540790015149542464893134475306839469272909543883443523926397667088484317962602325975159352409469116653028382196611946344118185005287501776493802594890195576640552333752776957040351017856708362848695675969343984060131074299118662383133099503521459764081144743284401066484466435205962868134772504698289540868193542260627770767143674873521431788191576880580169832479355526461325084768554637879670991453061495567575850398897255108746342944611251851074956729822716734157449966680731797945946032621880488696023552074289295163936400457178042215872164700546656510288916978002570166966740878635017788649730020664564135410167993965849890486178853132236944642901249899986326965656234708087987368390565564355409341531910067920319818324176811420339466215486994702288816804165585496849533205613329258168779625675230104426222165053860389414295560414832219429149413922849402865179128211929787285366150136236313426024837971236097925135147610769509856084856090671870209308332057040568515052457060327815061095290165782370574494165703411118938002206163638387976489212590256404164542831862988363613754142645534368251262143449208860951540351253403660376899219851402182144304579664329602462774402898647667641434530032122975333177418715386548945631739246913556511359055833270604923876910170197439408310196116117334731628941224918209221163274459003697431156736963348464049665167340973015258371924073613923604135040621768317301438742967178903573206619369642416185568217064926283636543744037992153553080122877759714044812094856350882868397613489377933958688494595058970741695790267092847743197722120058339044725735265510301965467942948724919713926963501990399377723246587193184466460752399690058842196763649829292060971165048109957113923887160013472449386601416996695943286982524367538220008572517207079947204933346214430591003291887289311855585759769566819585569243309610308501829855590446910501722699119827978872843507796000972673529424111939339289333217709779303010205191113498786621094809239369226738934405322063548544063144136279346438268766856134898207098927368639126817772896025437603016819480263630145479710598806120664281157620318175796707217881325370392307151980636422001239240281103209009593876861454473100487506507229183542469624902308239866942094443144905700000747317228946356719711008728682361171028263011870513854334545263206804257442382158290786092525667769399822147187182935366139030828845748418421712351458483917649610680327913347120994379272101625042023315706151600959314623051936254520695792081453242941397659899533839760021752830487364489932246405502134526995249632057346350736488250764273200467198380878364374307836867606294985682888227448340985014458505864152409344497012429723749491906557578345981197423194119778738549448416905582315958439158925872549711249413493944142290332905697444310289274595412639228846673465845045532743009710794655263441870195620213424535408401667688259797839825363751115629892924839039661060583053287946494110751356829974411847321503347974320867109949990613709927563400779318235255295333599404075421332668681168480004855348563956143808564627712112046022704582116680406318822135105044078597091956409242560718474902141510560576725663046719684293930027017246597935350731240444409706415406813835776881678613741345343600679242484655925284935205211307582797694207381701970792838383356568491716543061934052228625987573237816719484839429253562922363814205037371319503356578849552224912785966213584918617664883180454591599634982600802666183211426290825726696845566237388671853008237814702314617581699223749798752384516652523831065472076553712201324704332622143332552479627761683968893494001823848362983539051833689736046739509127182178182585984467168242630152014465356591163542320059825096645680877933833416896100831095878499937038223635490801434518893302091438352228887169817392894552629112916644529919993489540942774190478948490643661854632247361754828632399799128390218090536462733072676521956805566922380317168212185313052358612866030612305801257870790538856668318852805818645407171430924331379921045470220803219524612090152226466828128962524073846259990941038205856320414127388617433107610553665841080586222304539555431795934738075919094552491848112720550186687659132936201538280910807627100902602366109162915865614490923066426286259123846060559044820938362762494215025682949991365298465401335355788886935112997402273966461936709444776431662254889244872132717195686407675162237766011305588258302611976010991714899539012855435525304408840756636155141481241291588790300036171306974180152859772764586060650083222585519933954402626375184993535393523665602134738382595377352853859318659393483844905267499405609608071945054843398924855808009224455861966892712231985169181323785851153853560676469228000949988446223665698223324395628265829241373087122350396985626439280732992525670446275563176543258650815534650541554072604942443253640399868856004150497442017800272236875070751111436643553154878648698834642582700705705670644589007543739506791810697569047853438975875309269098259330773752777211128652399168518710947966874125180397493823905680176640498730620101336098465740489276865373635447778352867557568916194236761233977591543751333990043040429244037568449958593950382798607578688515573402251837079549245465688272473162621337152842437405463881190681100107993265810796839918020213413460323222713147683637351046683064261137418795793065822917262175229819644277375955201074315454142220502726840426538300960137773637725315095440622510906466327812033659658560986375776875376413576930509323046097094296653784631079428216209223432353948532290159314358289599343023860198716768562786835927751959041166172102121303950839285857627001828388620867978111327844444378156021007105517761881523735103594472122410909073228402429923821192747298751128770452995239612801369106662710186012984435395237082607218496053000447626472683946796174265940313008105151111621924895259281991160856479530802444581350457752218084516177555431782829454022293632568043935424805972312029597963822724126407120945180754915223040386148879893869637896164488563256512856595666286737541626778220925547262996265014928728695494974552587839288336924307186579832118479758054484253161449689738028681714441482001315785462972254868895927084245545154603860720826361715585913437089040655622396521002567533774044808053177501083017022923057151498278861861234556279458169279010963661313706825344266033683100945043678630537294821914936533837839766105827403694682810572021714803441104567247689485186133356333265565872756752127404203142365713619397663140880920705697402865640974192046207459529080272847199517994116790050248039856008488507642013332051490178552737422265669541373214006276976702680309417549700118248643126043493128088789096635163269357875562981314344222368321506549781993330019456192508648627448938814871940495469525985692616838057515999761195424570208025116679674615721802804003322270922829529308481749516574752790688629548199631211647703214085092493923601552415244332454224058404867279782699402796113785916148610904880132559015237427979897817790967332740832675580014589050690762829758417893127218222030769347347325529109573380788368846792685767092801741900177124263406390799421628616773021020211525940154236508311525050002574187370232363954805411887875571847733634228780352188595127850657536088446501079958967758959780470643470848870056109616511710066319431293679542451924262510561293227165977577571462637056089770879226298759082266688390835753500884286792998491364251832632632305361454084225477337088760168740723766808398657551239725221744316735566806160800947701001914600249612829990477146042888603885976991569085851512550132878507960567483774887585960116122120035413190338896874352560580135432011316854628966706229431179667604545670903692788031355015332121298295715614109673307850980970856783003853455880085192510875008552091111253642244392936973961683900416988933213264594485861779349094325601446839888788162961455447526314937123082501495149100596439524528079738276384449924522368267747312476388987216698734083891868468197882149845477533038648936658017274723483144003927865300490759426252251690034715383471659437455800062857994132331481269222421877273437375555042259486669098367648252275405555118493349679649305955907729499060975114905718816871530247141057307084513796564999290501582440265460021999823012442981259534298529714877620427822753617605822530060363967490912752884745428738583884816585312872005490500405500397013040056759828751264678672844454171418488871372129154701023700855550833444949815336630987942276841043852880533293756210840631232424624075057083604897850940151723528662837439559102909764415302109934556262942131449845272389949100468771610329897775633753163142202836961165943707475089406278095325099983662861407058750728016921370131637562612770966725314014591192037798790495826847356760629362684619143198084587306035013473595369607394182291718521483591930782226698013493562714021547756321035001319599574524792241112493404810883886923435572433081053289618862513689672852143112736127039157460038294647641385092493806573684499954070228016753307893171569517290850059984483315786211561231785402129249568884620619091412992798231551513753458759014552126546758255836773541995712230102405434234574152897753864472867940296880327098271834863746577125237853448793531095674784741175332849545087101144556354018773988069186906993390898763951890329377624779728372137345702702098130449773567298783085612580136121831666964038858094003967155580990691609074187429791851336604942190273427246541158311042344724178522273485018201979271595763831752085889964592382276293194050821033446690667465276987906350771820681869196627185864059357050142011920721885606058956739029975746518544663301891090944079065544273114542249649953281699226192821251968232357580342525021318801506218683736164035095383352381902005278963137416044320239952102651990344141713778309698181455295916430566923183470356853681848955932803901040351501224855824219204989043253600953014213141561629677851436110860762265625254752577956159556004760340064507249155526011536087974405541451384218924499531909170010333562792891779912711618297529437166453206904253193781260120706407193212287468734143453168071509736152942851339825656010063810989594398058229796283681760915253073138863818083150649330091585489996750589918579683519610021194212115043569365565783261680890377975628042187150802920341404183258241401877180168359255070282277587139781483392370296335801823172588966342454483582399378303114542261389359793381586058339453720919793796679609311636556821358243434132807556734266110651792935208178912884182877309483777032516832929928033962211571276213639012781996126049802761947575161404222676106057385670666519612139723476628409051142889779341313634466521870128618748501011214961714221198933418101479602212251495805528791129541924113367210509257543585294396999103373085040740294263360390838023468868143849104548333194151388852020099457474411646632371755314940874038890456370972018558719047971142329258724131225264110449003271456402695827828864512161791293595082143478899860089456758477934246270933314513610271122595120306732871456767847733579816962143829569080017513952208429769518178309624004685187259870962001963664783324012335317175205677895293747432494380713968108628410921183009389647625657763746324423549126966195991754893886942114606236378158158459916508013206390293926253882935596263917255245124346933302888278149917983814770416912882542537673463829343963656984017670071146438826702845681025884175446746655507355576588889607906042731352369883953610346219685545395343123912304255137920380813411296015762426452208384213439265702819083687832997884157853523914360213495956872223265314561014469347908881176714781109961013465116791313531158802327970439762398554880294665261337977121423425485927491364954955293976347265272420589892886610354620316723437153501229257770649279266917172534117383476013610232146609769867632123140687481845833394450933514582884386409361650983230529566012680594435850019615907237555563530162944709444217531554375900892861447411832088570988930190065651882647796654343807626941607591192836682993120656739776279258409600786624582023410157292137648364009399811007440555962649655204539710421974273884998745173037066892624036538902830255044504236980067121713967455226698986140856394241615952786380719377368702632619471310352280406925165640081312416611751281721455245249532334620184765562852677698612026931959546946373092048354577137653690492850328727199372558536490403544870381248846277989429514400955790244763651935398961871223797230539400130398756897126643825328552203041619813293975662024782513538599901743612860837775067237668753920475849882930543658832978690023794679364013908835030568179435986924324318358588056270661125956797722391846900743621599595935538100619388738012360882269889204232585021321472548836944823817944401382539164823814869476586898151811055816174157349779111712805695437473290184589081719688207005230164733293538607971354751308521001009511931345870489002028609508401865707314615718080112935445639786478615377587615727384996333304375907758283851068908086511553511018409201709485576869639041376375102444588090561486830695403907610601698350444475975132938010569266844076512271956900323875859798323147064269471792929958207388317088826990942161602229572889855242387367320252946090109929966729099157598856511688555385434126846784106926281157412790818927321549568860699492756103837352956942806347480435792872342217445884778449650583847347856096729145904249336974229026905621514110735817288251297481045089359736882662331342954026371816485166769821585558767383781859413074724321392090173337397483131879724700816402121660527643313435434569001376477054734389854678540406441799885245943659795687531527071694642736845085364858953060115635629197743460299773624641267837359891883241996609797937197158617230511434049196024450256988528071097636144018702513106080985153656244404212513852752551552667816949166366868671262234591258265636058396428014838345231061877013248921870168154794199490445453304428101659870872864270486486229509107907906653143975177541020740217454932634824707066114723011659424366544588989128656650820631621226054246860318491347987855722761173405846872470146958024902865376519619059444331132414251838762280448474043806976626164584556638904143071959394491645522934974584490909934702802578115205878310645994155043620964253181417010076363049606541975098802418449388597602690812114363484971624637262020804322603231234596740839559394399484073234840723720734005402124887873739170096324516954606027911011565645584345518132965151362932712419015941527530414633795997795576199923948091788157608514263870121348614303881779124601285337296589153164458048601215930138903844993546163527881960282489519897081776739378372362329569987239025069695293147949747632355147512980488957023867711053174952407060925300189909376314318854069866071448902948010509130259778680218407698520429815006571040453234760000445309015773961897489823081734093401849843325986555051566117104730396333275012646252063580104686689495535641744713580419888284411631209134935109829893278088004860927185132755987975523326606283278875148950791533108283006067351457367658454491003158746826584502721415355564925209427375062523968012065684723326036945101292745833640563171221654321879358566314895441216077490839837454782738378155440173815678973686641252181646981523396114350063653972083079790201325542384917749643426862374512324524402579319140688656162122136241836084380749494038668160255488349673361282021320389906712487505604557085490678132832347586976416445812297152814114856297065633432998265815423290393639225118217865596328939809072835406164470414007216759555352722497771093723002671390372650168999325159267271877527284048521144189994500434566675112042478307563760551348317969807909765681287711786050316491784555707928497549095144251941893955546419384149825396439328061128830038050407466339652190211648690896412627610373813525871379361040723262598519227338226497048022835679860068150672414439982416145911467167690914890937863562029651740135238135450023777922933550960414618622846970882327120718067656453973151809071362480452063823381135726475961524236931228764474217214538721573437768793915520743968705804421568651607421449093106458018516309730378378468164676936403650285775801809126794440013630864794969143589390610756198719101004777500376666223938276042688045887411791468609828512378692149450807857974452270519803726751484280180469436564128490849500782570266383072810681393638400278597681925436160565060589227838879906129114674065387057116282381480973387409396217951970143119815813099072250472691934220306107621091682777925672142068364330263395630801790150655542568804394145265286347124006205042064631227937361040288724616782878437909536859815257939885634250641531040346516021066382480489205861121778908965236280283126027075182847196722714023993804502416338170095695584599903481447332382550695671519351879016422635248727490462784908502049555218457491895199422640654294950358828327277403497117869689622227055817617190754722564913847760727014839850452609159611222037872112500267048847765092049261435589658551562740803176073894668476571229533176054732767950687198634335320468707173967780374940624699788888049850194735227439292164985370873674120389799983532398722983715661805176492160001021792067766204859906434988565371326952698383703163363575114526630861002835075853161284682400834616522274970662436437335526015794768415589356842721749148565606645779417363202583059977496262828214848923695198338334167630411171178343680176817709527820232349733542624111569351159809350255906246575181283383421042273143773086010609426713473239337928876594408507951408673934938270886032815484130678458078931601315332858954143728091961682431008284864295286525157173056552952331523383577737123290118529856380212021915802346850233364858722485198214588144068466219265266805711798939963510538046648135854865160148353374899806957714662776871158924038704574576926165656962851555008844203633203713058719832979223771179144706259736059271129628650820950955958799505668133213296278520843894640751892752728747717281369057336628822175111661739860735042787536511146095500442801284113005458911440310582772416831360202662169401426474594396710761742923574515277285961706114151157324796954455856185315435097504718343317087554780812828776536747128600469590761295003297034404049763313228052845809044118605476933541147809823697861831368897498287874065950374733241660773310306859577163538174181283789377947467212938922493423565063175835753109707474340754120479471090902838869529924594065322104730762222501936324805057297383258721482233646806447549531507015665956387012007826803056228022735202565710685396491286968788569719608770980971117804279723559363009195953050535687551460058182071977112702604138269570043622074511935540689093961714925604219784920008134883761022066715065958235287323024557727690269511676806054089354128835194600451374853770888470846480877531757799583853884196578916419850888489588877757718280496518740163453994484441030889183875762424785474442536989491584905012099328849569401269640501192514115336950198584432250986648194463033483086920248003363584404832049435255633081385222348739011915570553778672957955246443099020990706111257218843133618400666116919807844569834959749805954098104388648128651038951943248241888547361506705323339481533787890541611005814987931450351641173330174044477996830802735507472542190587719728208264855862001463284624903573859029772360650606034871592083013802085375765980484708646234660663238035477123020569957474780410164334930290827747912774304448372118920439390978107215987711061392722757983341398167008768416678126521466813224833093858337344246901468241283704509182367294415957521965470333620355363480241060839164460452808439006789426553456349113907491274349230799548362364473496305456913916965685784150820935306632216574639907269281827970906588078464619309545058526001050619148248476229044836316887182625966966265542196488500165214317246891950791871602491717863349615670550481005574884965059563847867566998409316486583581940870683050470652204595666515358464953505843753007740470190044122967635182648385868648374649850935114766821943994025393415243088787024089738742881055601817439841577467265790600925731122911947882126517445553271048053518485445480906514048395411451992021209428487159350688858908888716455326521354531277582789590521927153549730274938619186740553341860030278917850038940347439371094568700444449286989463572581572348745844440722420321979588476999992447102328907002001632579361487916947875895206835227797971583688842702065710721773308825728950416945026573415786797822443377898235236366869872728792491742204817623702008335984244064139603228526101051530596715593132769072053164565730082843020553768561866830743167088399801620257814811174644956175652058248469186086540047669675835331561202665989191112283334035441008495426614715969297136215886337401951692538828979525852211392528243934901176231940542815709949958408739417610950320506394754455948868876032328809894412166532743666797943878773138880557516529208161365552511818597187922010557304340662645777879082294044046425344519983164570863165917373819385500059340016722501235694152274905725173943092104006033099911285025511048420569339155355312007188106490657541906001127041064677354413263660400685760857973055736290527180534136378055499876097514113490441129869202892067047240829660410394242109214588583576251850217017873398445348359353783977046659502678844014780590572459001071975437320409231987741900458177974761680843935605620603044262213866990930467789974154507647307087664517457186655272704197251139216371995447028908679533860417924891499247635831135966980715490147874771250371890298047307838727502331819679240724066889654739017410060925546959475849108042906039048433455579718036668134703691230951659661473403269445588242863873401620205097947887020891499282057454787816761233932390023287400190695175707536878712790925070708482308508105104155351106645103941582490617224871407885500507902942607490141539182883027928573597269458391966112116874883627474678039083702532084699997517339507250399532189002446034874388909049723839269913171818015195915625398231278037750308927415471882658741736200280540977359689782066595886105120088739733845284839268070947163464362489644404270583289849761921313967153040440112734188314907602723212216685075108056931371986910875265736592139796000993358233706245548876236791930844333344376952170258511471145568348617140792014805998356244599123005599580534787488804966461636664669418133653176109663003068778395996434235416299190424200810258149604233101048972321934424959566787057001144256092583421475405170767130055232928961198451403040711923053378707885248718045585013023661093225031184995091148034451235291127514642149674794136889916141830366290431678300234099728576028722008328334067261464639118446533696783046069014253926560930886793316028883621221814406849857624349414317302450381715620030177195626145663524899994671847353339647718868575138152347273914927732288640957104464349098188578494340082606961712453220507298864507589944573650545067227697316673885327443288153900339984716376879823210957510722243564000439177081678980928250616557301685025626899810111383815888597818874918041792729675710332531080926436069688676858011521422850663560680948031111570084342999528500289814279136448741422800283556871686124143686991164261648726034614863323307536208986905102090862514524038218509434018046081577268555821058954255197846163856096762626976657495215256594695975721721052124464442665493585377841590847778726583242438715441712704501649570667713188816855226258404649611249832460352063494525958836071145924746525961188896122215040662350803612286542550598622168697274560063984735874997934462261539690086806030975320879607469455518577818128419370391262779631982547825805172668444551054073268771999093171506925059225490139474750413984970998189092245976315473635510065749549710900620664020311626317968850947016969007276302690621166076992299318581837568256300499067825952285994197626212588018518158052056046768760154736533118815582823562017216933643698401313988880453751387877700008864766493218607574263216309993096054998491848867802057720562427582175954204909469226542642365672395729893586454160895590860847327398771136804331540442605020600307251029120461082239265670898537311580815366392038573051637464958246293545709181106525221233878688490588291706925685436594697827452344794548936293281210631777310828755856113547334175612123448785121756323772689616070862980695494886881457454770396994199769448466359087176858976667767754222129234632916503860987332425020552829874331018059972642608820579733087567176219843393263276641632263225351835139125894002723640405454491994707211238772855844847278817078859556922372011310468148610989440200851890309574321390863523953116895307090508245086135000613401369663734759396647940587788862897295113504565978414449015857976448981389654196119169465457073670818602054338990927956457477926034585554670571447727396585165021974928486106858210943586419471113601298300324454414790678189679637778501347657396431946228346277704177432297655327578776792520423853336312333733795575846679271749187335202446524747242631143776502344357282166398702462102473671398070874003766227688891800574267449748564444059701082919396324470016044700591181659375463029206884928752906471323485359113953290666048147759179534208793289056572101690194105469699403741993043611589489708132175036284988947098332833932110955187328107285322352661869375395084675585162830397291017255941008823080203638032803625257308144930742171723232985930279799930703049746425611733135436480114525647046495005786782287595371546478634733503667275102026830140872524301676406048734351243646961210700816926812664810849580114277385031163621006475379022705080687379169678928913685332539114424595033925624331474761377557008071534943160840692975816290520373362731660762824767133160170450423191428977625816625730796519118760739192235198626087638805794505273937333555241249631611668716104236484338632324674042020245475709887554316567443732744310269681084898818021954837969208234860734062001123656582624646164087322959714351242755221235579998079956600589611230296085680577621265251917685193337535008883403925183452679465824149411493342860444531541863020473124571510412071475422603246271132882091898988088379997412713397814676100739336048354905108020740136234733859518142611706235498485721463456654409921479565304829506610276089580313718490902170783785841750653461745746093713807915970975468628756429632612308089525301877359067555014045343748717676478670651881728318349228846167533051606304235752848546727523254804972459297068375401514212548831142877309294872626752787152397144489568441138492388181638480781377505362139109709324776652801332376066884742646742929751659864890514368055005139358309078271361413018504012106598993460215659799125520712336249757479979009652989534856833178211460959606453018996524446246251652243440605604571499667125533891519056801044925722778953061293844636519065027072942979255885880842197385462756045851378381193415963567045435343834094975943073352871314262713608231737385159620499765249997452829241331572800153367153365354847645520819269198738684038590041396420883159536869213609539530664728306520215727561227704389198993666643246485588916362609060183862927339312791055210856900300230994200619963022067671638183611823135587255228815643347972163587519839026305431967397766050835378533747814768186137575527598933552054932588499444102052451122186784816680698764086452628206537396711493708617344263804475563262111333614765992067311028896380678476955986158857274513144578608000202706218971840627381793626767376918531594823579330722976547873676692017706377226307319649824081220932758800276487594113804052762076575964630437737994304667252081026837969566033436844624504242998399023316628215935154783358969076766384853939824208570245643634675089420897922314585053401892856664358564861640721420103598832745356154189892132300386973951664790391562453907225742433148653211850956477716228486714377534150797029402875217540484601197620611379981633812641966774747544541533354261369109666054210652982829860937089319075936414279891574859325608400163007410451147971348172070779860236857549612212426635057510654971744576195766356935946875363450762994279193112687386856488665593543362334800820455392158791705708533080731474423446127275115931297076512016997176341743081928680934319685640828767127233654703062079456122552175055540119090122879034670534585634320624697523768290550445305125260311691972029348036297067413394254740547413481199238044289875649911528830223873345254764072361433106859288502462193246323090937974225519217915952529757136723104081163614215217496848152161577949376340143297272233925104281441934915960648663286050956468019255890987631858135121645009710690517408872917349232676572988778920417319219021616059839172823676191182791650755791662258812958361056419143011547150685444274377044064505228979754234781553551066464765190101882411132903335915405332068117640937000139896537033749847220058443772962636348457313976196638292024705284122570557448918222262911980064682701321726027040141933021696354741493991061278389638832987435774203180572978598611496730603056691031889423801574203127611584575080197563311754522960021023565044942694007085880718911021427627931261298977604057295356593639946201656994474323289669589526980060780309677202711319421999124027563674987626481445738463344998773388006090242390821151223460401335949399845587381588062931730483397855246463234561692456541690635698036994246498176739751688280537046274259003439154194606985761439613703854946468550386735007535712096354582153245614308935516479124877282296138801899658481896245909896100634596595814118785765898932192168343399868703594824040234610942380159083129798612415822842501993829246750583401816609914956903648995053646272143967019123752475941045947350745154784892853996306924679641381966770386847364607927587739908489616987800548482991159266814366729977827573302887706139417544114945563862296960670828928605413755256786633622641680362443396488914383259090443323192855271620595425159130077469120402751888523345882048816398849639553681963468097492823205851924848694027604265874591951245198834530411676056705144560249583465095656297317797550643141237796740774245879094596382028018518471090228025430157158797648236051531253249101560642825338257573897543365764650594455396818046169570293023615690332179661713466143170061212799186820635032452096638047499614853536619573725403791401325895292163438338997459064487052268437280985972002740123472405273802457032126076835362584150066229787636961365693759323618117557967560358031409210594184537497103166918626368979527101868016205317314795446311333981404375990201620141654448598644833997750159638248476044768671222269321499852986920650624912753085358145248179611979920149476172174396782458388591882136688293118574876718627069687117259502725206545409957117735024127911561854938487083104288055970266122971848229029312424025124037234833865502705370705804322310322418920360737650156371265485155425998682276065520235173067579549642371793181000060955841036363346071949696130427513469186983400396965008615450489937821955484970945583151377168218420007639552248420078200875704327274376308749420306616472023147742364638851537631518729369193647362150371513672343985501200124558881856997085540565276821697803633127677472236496981459037355599829126816972875323030692425806432365697138963002333465487071932761597878659035963510633095748167764789487142369404414351435590245541613766032633362616478925939931172557803250161505105750919772893964183745189934639830069538631451124615049766891946147932539407951551318594129946770032307213974766305602513260803777978093743191271041109265651360154557620152757088719317479302722133858393549814917143847611566090586695873387897559315119014323256139508415118715213196106555402986201270613461916417617903900947895724409735182722592691088626808263158325489848341491640379105702859356982012630847704914338385362579884026775191635089520629881534797962140033659761446311925153010451470026637518721371111985339020700405737515485259469223229921100960105618130693619851124684254282540243973854239197026621367816361104455247171044167516622487705632648973721317715341663770434178223077598015329856628359274930845520265427758294449583414814698905890263812623732631120121394520450158724315390795193305811522805389804871039882884822723860249647981439531294357085390780544310895287913952558883166374678967750895940310530631624704094814425588463505146137470156165464116869913175654017482441639372624730868860016610888114494097715595532961309868559658431878935021877318524182132038179496542055538644903349570355615657641261229459469220698480319980648666014884002460772180441187139295235032563500391218553479602876252343501491634024377290446002901756932408343543459587348030288317908476876382505690898150065654710040739128055409747290198410527767646002046530787842962791513254209515282864636195038694425761597359740933729296618423145411277855682843889294089242224027278915592551537787881808422708501185452937332981406262276823726691276428754421843270867043539520098064940344293754870847199350417825894346187697513530043907498030862050746560277989906312405151952123129902220881956132553771174569897256651333327552479056983931919868203506260525459151958662236984541686026376439744496444663546119643027766371800210488966386296500641332224950524593060890970691629029879925247159648606438734089797424976904879222507673465272607919172216145280187637955067707655701428288862374607097209615557606453934678321418131474728836024239791850395050308794357516942774956732997879351183537012792777822787052486434497939970646952602383178504134529313145724304008780998748664784125774546939169823148256701371349883523079067327560077529790415779199510649982203145142759421306233865196007734533291136672404847085373594049518651993676644563201773792889702277059925178949923949295253289463624801712485165695525583907544372473346763165387742082556582323575533252591565378803200461107252206377605872490135346223063740864080076201893370016970667201291849850284368620726970812429751830894564672575373623015051758955161172342504981808663434569393226275817733652815674244154214548839790111980454935154709626275100592921441004420713636843002421814237530049144088188510702061847244465479492994278282991510658621267571800739096659834936029794312229315318432644500361727308368485986447858806940106372889080187364410037991734124641175611004062809202203638319924019438844474384385721770785543992485001110563725600895205093847829659077897477658616190744074170875943189964160743462327164585131075941622757907534141909273873455633477480057657808458459684339459275350278353095450318590330863954034454637330801743753624908847745059264280906836055088123138589099557765962676775288400912633229652024918016066560875425410083356077852743274201024489813153588124997431107927265075488770444359297354577199519650408291356552509530736486403284730847821326151435805976873794940708192552119159721638769579657796455135783033265274914210026436253692827338182553380361485855779956911916757032397873430562516302906907567249509321304063446662755223634431876166292882344913830162196750847139677672376618237056371990002798666606960998743534247746810679931220595451153554572582336497235972955267467556488503331961788410126814980075499544204384518235158449585750172913224842925593597464644637621532030139977142700053290551135171760991097574004465031990732968949541315354740162804773284469814945004713641236612945416536096870051966280651627181274235514450863734540592359520585769405078080789035775323465547522852455475740792190207793378077877663255079726815784738320775318237150075938655593377713275542124983660252042185993038286505438744854804473606421108911844528898743270726856549540931300393472816193285285424557943434508247502991422388692497719398409056360827694519914806425246420594346312874942607177460407266963147684982401075408768706649810450788869387095295780783000517671840695181937725715346053856830434104082373113120145318270750063879517115123264440689013472918396464142051429434562752711481315049058371384585999679203140872273241733379444500441147663587984675422359245211434918821864593815975838722726527459062993510646096611378020489617055995381745649209735137254011583462463718719770874970800563772748324037415427616418056439111178819386970720082269662860808659377459589938374791028873535481686407294176509469093106966809053140228144760378050804998223770872890349197821659834227368485512487982125624951722490559800780574687862000349373219494535088850993569369379142768234415583848173209037985737023259050155563656246216658004097119520179459572997932181063237280383738449789258010462588862424573230032162240006343002781962094269433634140281682694952563833949076212940446184076897135175726355795804701937144978182626542468790537704583438369916980139598976111168418172357165987788267471751528293988975412796927662163551949854999741067866559548648588748704587081142770551616517445203619231513496027005050669151322447080502396300635326795327250841666239135254434180180546011695628461679703181776449607723589309202716768585505124062039205281039788923886734168756543762743312164974713930495366846601254761824537050452824082275027279993355635205232734677637128648348315553588468395084229961144791721614287527524599213798761651816107498266627684516943212489507763958384610969177243325961849398921650508196478609241235613386247205553531439229447885824956681046641109424364032746946538378611065911753650184642852363566923123293052259657525399172857554090116193879911053392882449879777605154000196285127078425204940486920428713616385296062820621746368577444073567757868839876364820365806971677644438920051507610312301819821245891390737667283354201620686591610698685188386823618581216081791668829651330117518239035128924682634318247945921814737521185641646106062377539216955656015510599628163540076322140217358306032547186153965183790341646056092334299806392825431468688230458024080712538863821560752583981443134193587700884457795713831314771431972979904087092854673706604621553997159533910508343135140815502791583311542857751301669542837470636837746731100882800811688211482433258102257727317268649289634318134765533928913680301584135927837853946585623511987187323188809262612657579850223800143955905205167721539534987184152421600810559556184631587671723524901950343065766665103289817244268415798178118259916041655224831777152995147439668061730331630194731465483954991352062851245394816453778862352676235496302984299692932322683474871524206134407067391995201276268684120790915206877583710249082845439586346620889981397526480726331147396892930341343711218937488604043860351207733375861041797919175716777919488433549291810725614934735706762489941729052569301627982506816528670168490541783764739607417702987578552496942583298575603191706287369886259629093090952178170733262019626897681952785900866122580282512869644632461530469102205309328276843343995892072443712220913792935373487534971625076285575680653838420243289600275177646293150530110639006101579442744961100846038845414699358221291570643789856841193370792176672133433628626371304502717139753405876058164309338289608988738842844490791636895950866823731064114749252777295494813176090679869759744031340079606805229444809394807426396002811638679386585198429981538766093223125964465136273145422397817128719576074122594715038302635624614895221678995028219831972337183202719023873643927407308569584310350554170793010775117292787131830178932441405652118492927807465860764965656274009827725490751231106676475716076587040127464990276824433166533289588335026485843863192666928206113623678055830129467725215066789440127407249899152964614392769275179822556752966705341540303694765395996943754983170532091048822904694470157852061952944446440184031149106533404327128193112091948339542511929387782450776669916819428240363125008636548358606573478994549562418582001317298961644846722940213066675521248141281822661729825455540042136123525497588469641114764397639925661225890017711144156231452669653208193171515693426369239808406455576153516128615412072926939820955478984461374353622457547549054333991853538007742297262887611674235151675316364278522625634703961779590986090360946419529248704097050225153244479824885493481292090730949503036522528923677842552534407454549926251005719770673046917494862395784897320558602296545439792919056661765515996361048151945833540272529890721030574856103696407337888864801924347917946119522687090537088600724660779118982079860255136707878502122473316805952075372389773993530952527084182095149439433727676788240153545593791729789393418505754718086149382691771675404652264974538460777740993029768000710449693986598983492488384541399821692307664359293878180649311100124908761714743325210809031081275159233062092735633821785515402332795887257659524176408978335235507958288730654210678866410765485121177145098142273610606641897210664106353525045695177076302845896059433111373058152261720298470924543051632245414003180062379859158310719060818188117178777793491830700601802816135996065559916973929650040249869747618899590230947010302866570796270368908474378143358475737712843079271978996079650915757458702339687352045189690607561093374059701273826412887922714956856046638431139255982162904816390765515664608862952792664018698237979896637860557354081573063759886217230630228208047487229360665996366193164843739490366074542360345438180734650365243629999479322306509937605828689236133330551296562365931905045973831176271698083196169084916574467984999492058738687640785008480050787351593127936140841071639755715810054803268143140158409009965778823197998681399230550208897045433689452186826822837938956319632555912251544410730022463513807607274493236059681664164139430297795275528012275041203287351972531886466004048127003703778935265341772188939584634891717057176034156471545827293432563484690478985204277740363142423558693453838996820716440633033579888485549458377503069551806152077778084945689137693217849255723647877726313670658139735059403268677723454009832662241810996262985237443947592125719689055424646715447271657783916507527451373228304063622822374364598774725304848746815926486405116010096276123562197455859522817874601122903642814828273248722330549510503965846188353028917374133018356106168407266207296302261042757306027009140245328473783620500011395395319469698240248217876209208074314680774279180883891751971130775140217672523709955989178150771303042443821386103391467496254926455680186782533465415230112769859485604105458918405529540139150987314145479760766000717887180686320879089738684050719724435406803874507968280891271780546405504035696714403010155223904992210034542954945639408624578257767263566864576767920989055229114818748668188406289322599032877900890952878914058006597295256912820121668995624831903450852536248262442300000949214772440318103593265589139682943466924926763227968971711729924255443454278664121546144485318353465729058015540972368374451067137732187448241206175412542197068363973418032998387641960695031406568770461905327234790171114512393258287249705610978808758610835360829542237240770503079014094010338725166357271413895910578231710314591507406184143916165090877133703524844776614704752863725001047484507086815661986640025538008106352058182141395099435593372481802864473834270291190443019247305134475325352174734430534703105485228552439186684211204275132844572385789894250894158565530609224488446537332139163081720862930699363214466436700921875641119542084292020816243298351447630620072246072929418547746615777473058135599773797671796431900931951534715942667809362442983110847339454314461725108836021938250588884723061806630754577068842782388349207117304434836003102960192863771382653368868584743029721498475289941615608728370343710584601711602746956502402944264733970536742313940890928543859882608366535154458235924275307951613568665834936395268317021354951698616821549191080279442532960657223641652195673028405554982867570581383880929833464921592879601603427131838956044557071146843999531139970594737991384914018108913689560108348381272901278427189621433637532028265873436497051427043927438110011016828243540254842790417707696262469007888147266002772981240426097120732233229391612393134753720443330512629859632415201793238229401276555087594878752580321854308620591678872926046913580012082014712827453581491912914380129705848241997762803394143957410087107192106386026870655077362188278517495557431349738655447460716525941812264293753218970951426019264464520056030664680340218503050432572354004730718570217665213522314400590687240425572419163653880143068846311979519553916631923502356874346302309888730835095873374654379878497038974049217931242409400517969119997788246874353732642765246665427305091965020866658131207756023096681489268058969560174352958906275889192971980924549861009549862844947489628648126937363247801710969892735462263230334795475349955714235949835569193058202487244623421529356989916656131893964212619942817007085589915588410448789700480318041417582924178457073260682846838383396730886933189654972393306860643936057266545235606139695041433731357938424479527136601756141054388836284870751359585112426065206931570447037471824175160788060617648296056616834792946684342667618443129580394200833051979026490119592531075260181975584646201690372523730681239650486197917680322943845205669329668550907437028961389266608760426145116007363510392260488617581284978618049571206668122915295402740867615742785986388170184519427586345265624398755341197475046313787009024789704136700313073650484783209707084005847543980579630556758698912825588227804648763928390979016044404642947535254951415497936388583444550508578892898679176154934567838217209039705496073714545326302222681355139363226834586729810838800343060919160844632325590052266661345707248758922010708256824816375209980224349229361434943753993537640799764276885489540673801539181548020743313748650498700287211553484453850565671555578484720200056092023441307603540572578880901723345967254779746766194302085276673141469578967695978299247667878567996822969581599164607849377380277864723861584660153163080313821946807979490081151463130591576942846098079329132402204622686689350113218749547139935268177991068045049060101144458524192619780408574354263859011541655571844333989582586428160810909941267132795948504328644948564815963522612230041196843151984905098752271716090586132151761898902110338841032060300175094184442053003484295042722053851329898654950369683894106290133561477632717914241731222727500477431738465299988297263155318341310222333706540693097940784373333784958389609878904293899938992186647746327034003416003378325670340112171758049199557227614835549939774807320363270559768039080282158957904488387161535110701014657417802782614626014829242465778102809898802687211433713979595565979277249838237075962396527704455791339278541975290665810053759543018449379741671783818177226780216581674769698717175177060451110589973886925550145094574847246532393873397201798921253581944723546411850461993918047462778874618728595440245379029491000861934751484810939689034816064461434733266538443705444603477282306161789336392118723974160906679431554585756945710260505496848106351458285078313442430654582268423253177208649571348813996345096808401926843127411421265878741566548913683840510373957539520693764781900346332960875684009540312281722483519777805693971691286633582887537993241958418468674736941897590566027702593474154119607057016889414307009471873122088838160747779593432862269713553738222600731533019189876743058795903820982298216206618118767889135311355783645160367658222912145008672247093461550063084836054784020264080962061544975217772783521804049616828663566862017050298863154416885554792048277913710024332234068205079614443903124011723752764187106561680520453857216224263277888165718612533994566579547264853030477937192214792723165592790008519603035294276547648382503998593680654138801052466307587293017276819215237925476888090609584357227608144800276334900871117180220678371280708479177952242015869562852408371231346571974881575557017253742209477517533123326662062529714632445609053430290287346693812186972016500360323978888167991299308088661142343359668308110663429018322019077807616690269049494908251125077833144836905820051822667577454790016969388074202286832721710418517762901779388673293660547667593666528368647524563994586495236233932175480748299639310904084794516983700047510460867478853339363525780112766361159775138361905501985184815247030732075347383372205808148145342899703086986014860196169815901447277704641888310081686002393191832565156576179067801742428556059254936716895482210673808121929105459080210706672235814881419807641627505123165222179873900518926400674025687315479101719723531661744991817962935891462721358453073891275674650062513427375468630517284272293954839625302739046151403852347073083913364118646803624873108852160356352267325013177361209887089646718259152661677054949529777975781464757844613836859636701755081788707969835271960249689345003407027177198929423728046250423516442443333345065894618299313004880919030795829843184615069828940054829456850790054066743284083890985103064745498827933105764065486733530616615539253760824071026269244741078955199133442673392918470516416112851920029865700843787942747241946808654233714440229688296259433064751063102072893102094979578860082820352007654962637465866277552371360641346227590161785105289256914901815873839114254226843368194746643798798984428133416655333380504511380524569210222182329984272016615253553029130148179199662785677180157799633942984002729829101446441521662267763395974999834206852556184462122488441161873381505202352612718908488083859390312119965778782381360430769812060920839694555637460072814277653568441201141188103292048572458825549200578492329155656554449658504357982320406363333643232045042036483077941183690118585813833463240898588461858104589809801204712909771036442987058566570066187899935729339129395073325403277773611405121310668596495517737087215912146331269027695301481979095764161921853371022729235540025204885565967321327283886113055054999534847656340277579419264449294598432044294077698122299049602672198402115769756210717451651643406989394824534296245330998972139302593473564854721952998647187579739277947381292672431331858700239753257559426169310578946711587399268450179325786747765454165553131657240108650132997278486637144940849618705790182804766794187425101475619599140840163344087738906209439311005233574057494163658145627558022652835161934254717210715119990527510993396534105485378943867668626612577433890498701632192837693824203632730280663652255037492542734166254623140540842927802175662849957188268359474184197632579432373218975627259596891117387350002598848854699153784993619989259274618207481643203402258111726870648878915728203505473321963152123439156068315404369224821267595039259980889690802259996610357491709860587120172118664038111463955488509605692544205707189045478411729019881880719989468778310752367370712276320594190430780421298103292902029552682148533691897205816893072282931075183213996668175977015737016846340865755177949020934274170219063803311224504007363606841867661629128999351548602100474971324655905449783824528743639740304284008755172759133262840730618529493174114862360686853108046243947163789941095284660811262277059819971438532244780888075048662579047794581015827848968338520790613101988531515667874138824898275929962744075633750202338514010063846506557583025122388170282806690699999519239959845247422182526895715361475434869229976427306919128344150573478904372047518935167584984630885220823731602821707823167566819383657012760049237345477411564004800730230654490578736760368840779464401595327952414841969288239532309093652241690866416630055332888175106523653170462943157997487205126586955520339672629544476771739153124119580103743392691913053922035431987910024115924479732750250261283193918146138427951761068554175802050092741160887310635315668004358732725392457876450877674617141802332879808820326118752545362530700256063880444813859083523105800698320149539125632079580474485315492677020525273414969197246187429603995789359377606799242175405891634849741945332483963653771210330365244768528719337346800725701741542003507521754054932036083024790936754652660144100857032012478641031240303487022605890696905604007069907455472285435537416242397487304979185163343943289023683252651838435575937135453110264502661731883831556441385703576509247047200268105653669024152864161895200813969759907237913836630171848188299077193630369875228622373748966414268757154152978277196193447912102274188234182434767927206784990686449285064933413251733952557398953554947696412364647874675079327501794794132709969556507836117000074666143065454553660989842920185633009760755527316413429161880981963469527719647781646042062039138218769757997761703472283336726418643476546441185291484144746355967511894525413532604959142741659745386713267122107071817317666110106235831532860813138785406330753718376130462208308657452644928017608667972951334661231063886731666471755064877180828033602402813867136519809115357430321251409592940096492325345088438600730055424819861137231707161838284111385737807978020713016309647425159903835000550900597489446924113985111009533344785332361472471517642018241773557626352428821262841887473567298982032086777306486273324964924553061922030673671988535002401904265199124872420315028947776980379915707073495319163646967605129819929291497681974553393479119498354477262608528766883966785152577135156063832077650288989824614039522363282258553196398686502279112417714259835744352589696967737068952514427130355722834292542161191042701257409770125522584656762001583408879594241213354447857335292118189201695226313520013690077296166386563394388108117127304135022837936809207615268589830399778826614819350525454847242751958884301960233431622328229652063554645106097664123538191938266749604022659296467996340980200707930837595778133180026319304827727198960634337721594252790699064132517271881967832280921496517880542707155787563682959649431734729095719441208517827078472017229989442516254588014671725799097365501210427726910225182662076751007353870265990745244758623455676236941358667085666135203121004925986921284947966943149687288657132931909393990032830588334161326912292585713613588412075960434476488317427634357187723992538055355971007124232916524011224902047608546243882469166118066219263247416196342353181258463024781629436407158152035074440123050044051383293919325848191399974330724899716356694426266814482863122715480508577554828308666232912793459579960255130537141617008858772024179842447205263130532381063421121162262528241254381975725459363418915951980049064806783694505618583824114941995391194161125098317313862138035499930720559312968755555122193662014002695441167126117049882490719558983309320031283656947505359970472157211530095609621212306617201463126778571221554754652017116955204987992823269707416197301475013434728625581138269746223489628160353125065627944886817781422109243182788391808347161973334274132279562121798709040232717844142545824602972017354462604597395948614816081859156484875704619134744961593777429844841082092494289337052721873888523956728939102006426355635740506508095421681738813962103315749219517201935847019267274299721306310624718824776195461009845632938071101178047326445088518135291236606671644978164895175825750878917008258578287830126574670013112290059846786065615052934111386523334997770678045271568676671232855918691284064374063687607729680846059686079537736234192380562752418115312853808498577028657305915109363247242692132133501236317991556181197985459582035766534267100090700876772833307022984439819516181420523147663480277793689463285320957598149550268719905568097606728396900817026876024521793264238891346624835968011592260604407414398211612288957829453459033887797054260019310812578968240771335160908292663587981298761069131533322422560003576504950838497646439566790958963716440271602592361188176300363405689177682114980331747862940873202838856757067687021874639579126493353090453896224284128701215517265767332106132175634561935505110807549321661936198474621725931053598570764111208469398061046021616148736465973038994780465292980654939843064934247763721586613290161926411758395876075709872779794184187549218596271640339543154434178936176213473062783675507907271104933766070971583407184989654430861334485856366903533599725746193644797202744209608533348960423753942123817129373457034992819596071206846820121006298910854414996237387696962858891774034457869317572516742156939880626563539241345529896218385369955250388389790586356950548974447581738414492136120997519797318511218993827336557935516836670068009138370673216896317548363349503734374466842151213989794306157883718573865989121779595287195738832705286034950951233440232998823845303662439096970506297865029722504241765636354093518642417861176253479634063120347445663457657767209694037712493814747088400591375746924734576672133947828439578464943902075909460279027718664512943427683239604163747577930445567369157770413526775057449609130876108325689986107313650632817439601338609844293417311277284992259601211016512553101455664987144248959979236102418057343403602708043868822571002040493022710761288065390181805179734371415130176094260376769058793365126315342045348023054640511973345731151708658757270837340562356213643189672375503281167803785225160703661016900682225816818158026144743861898650157574351292668137907056529902040876006127390735024321669317297741847105769018735768137339103543434152583241688236202256797307661979708103025721737427780997767038339545182026048861474832768940124556897533761037897289321228776552806271632326964808329490663981797214410893038850504557250906480358439289414348730796569161088120869720360764301122574619506474173624302522767003056000776332818086061578808245507342935962633421933194213988001401513929383450633645905806060517109202229652202438555478620064703158507979493970587649413378888632935988052567761928915297369687229868368372848323741420968785518265648535000354913338397896542381867381455671274674235001540635909241263508469670326961183301295897913896376358935784180963861952978776259731311962372853808486739381888439097446644840246041180530459145547556994285224918263392952568355871001351122886025251969890326445565323124712484906470988350201541220483630359157543161083278706687334243410071631846756565712266841094525686052759192660517676670834939477229441516895419708946461408279370939372820718942907146596534472922170808659794920492583135606533002555907251583988086008480864401086868259786440549537307095883764906263025930171743923499926602626141822495975984490842199997780700020850833063149934422014701111394320624433311649283631892569321771291734342768911537704339810220315719803184882204453486696029737351395331910228441365504983891686257977439658955632058941352741538706013869985819464156927689853117262909542780417848080961160164863320506843667161932807294108165903939503184647748166272639580486106433493464470074501075965695006084404621912971244789374983868805794945428769543231561496604502102059131462494538745557400793428996683288537916868422693779091087015317204937932125680672702334833404535627239335454070889770699387389054331391482883398437226281893461687718190973932344890430313382127567075292880937047537978082581799250624730480779210652528644256257568907215730845261376492682270528371809608696287361731340803647861662774630405463648166109077844234871944061817921063634517944726013113875303136498912923860363971150059072866824273641872611254875939899416798231145012459781633312201475570513331578427737355765160251906424071096609784759457184831793753586831903227001284334226558733498940569232413917085928671119766613099081783678962390008349573374316959041592147953785708198407658429115055470932257680067816990747135287247861130369008718299166547374029249327737651564601960759615029044446801075625109619974564690057696566830723459368943860749709599608398516792020468379283798276426041488795608432974147306560729314328592896997399889729849856211019408570911728012841348528075798002726863567108466709747721778553764133460599144300175200789502745705204488999126858905022215744193870453824999275116749329991921386832124338127579709967960765016782007740261484590106836393973251570843482680599872980033272754540304334697222766919899854461537842345489571537812537118109605389055386960320709562667419047762285393480478948748486529035265079609225819751320999541153905603439233997318851077136291554200275640426265077354858025058200850814340428539244359851956873191705798538829615305476348183949993878486188971017060435316364730212423601018303235816208116453650034189017534446251181641055653309966975169141704475841538184852277768381865199097699063948164442857252435932693719592323787821381998150774729778035159469909995583684991415580045893284953807324870523363854514428495918124731409892811764648675338447637841746859831289217557516366112852387104591416174887697143762802209091686275181432901073082429120489928430156260293100932078462300861274324305318506778126073423060583513404868489662988233830220135205407524967277126105704457736320932355997953738824404384152985022841965850516121820418714013957354615898406280422043848252514385808111286241020724676776533309135218455811794399145301911059869072803766947752728786359138431068836605050177985541566772804777810140257432888958250515550229556053810986794320799235372757337271189122337849803922098096083947224656412657075535245652575380973867016395814663996815690295788146216459594593306756431017318167957544775598430506293855562561463141047913966121234032468927412635243537962324317006112069207298953833901815181392464238644592864767279751270955574784311808351724715271655876378391923375527258569910516021873036853808892962031336783238209676417293955852836547062880325713808540188647878466173090235322858100295743083417528522622441766742281976605215330848428542679866800240024116349670192108340356422702397895585417954964826164358038133241815101847018438092178126863237126653333568451988094544897351544529600323347548761467114999603815592561647839290109822697899126615513507741830971550284905521064121437807490432269618427781251099723734492371982775682000469325180093964945520077482409190671421509539080203550434384960653495725473194825296330378620817610917660834134956662055595774862780341491854397036217171060799807872367928670545403482685962235312228026136106906185004202814438040123678343386771598849688964299532833661157716177838418809764441940212264026849979934897968361469247496605342478108942056975612568514590221773019987167454517087671039472004286626688931975642026306925790999459074835866503432372027318634449938479658564965346657101346198637551141333873383216708444882273646048250827190585566662832641165022867792655742184192057561946219971461899360023106664687755761709824803033040710574663264694107631380142096550907234868613333029777942886278927342956858345235423543403392120329815506955448803806563192459051703885004389262691711920904324546097994872299819206303403486807678875556631370446580388600100564154982109977022977602828833187312117562812215584096674443394825427806865984377933243874379359055721182873611968708243730014794385171606925911704589169567254393151345753562417715270390364401796318811508082092229259508419917964614705383608597289603866834644962979854284366641278621976864087623083088365477339308692424096325698155084004987655904193919486973119230124422286030303622311709928732747286594054359282862919815679943593481159864658545201560264502279701832968008468189938046497918741091842351648970600578043447738376131960253147671011849611015172740479718758692302657638751552210329221373142257284101200021918051159351941022950443437511080280676811105371069105546566218668450176327916014395070731153810888473885541732363495596700075925145803844387590310192359620791153766287020920079919644796163321994078763857157124494673010600782533105067822117534991065564620703705808898003244394012828964657313870929679370559094564911407317645313636148662152517865387915440384403096005392658813037716169879026094053480277794929732302205517041276691946433547090463202360987379217238287339108451292852643716069470708492485099990991304475339670951378673518250581265034161160440115924078194437762619270923817072085319978205592882968959530995950190219827404858548528950835257525109726945777568238908826842079389615176216901725068076673395509295112062077154890609293479032816943436072201727974860742080924244118231700353393920634440238583565613245138180470382597840855670994000284267470235888185851370763707006866684947461958114361894287507251962545428106463773582831184166606835715401417047818910413422696698062525182265875768640983604893024784652372215528908711059759335223618269489822135967931295893452814565092915899037186184209112785762990881909847209475649438996622253902299794247000169016170933670450158827694346320986537146719139575628913188474077908768244893792916993571426648089792861406298965247211008202334629248419792173030691170198054949954702151559483279373806692550168333406398958816858759308574420778316804437517711928725650830298805062190918248624263454678798512265912455045793138598925394597731495440851051662185709463664020609144212063153982339057441747444453997340189291011607993489737461974837407968470696824226104740575853563858700357507291825442697847074012273522996123649554496986858445811601587753154793993540906800355154315493391804862746812624633966227239035545847586615061381218810655978413594282377318157210608748102065393246338512648833506406396951922417486223169618428994669781129811334804891461038818945339253429723688622239958577926850132028365062792478288927268462877484815009136785712476658649335570050445060508496990811485288706034655280756884935860736861059601808832351498353345409292524798130572207847586884134911812330008735549302069429394268839023177834454837048917653835466467067662471465565421897823257656299558449021455614740149920516150842285054164896275198062599858106511640251542537366350742597049262852392512752301466752256026357597077993113103200321314482388695221688323801596543384358144999545550659791269699229647931936482599821843087042646288620767303677245641509279559283830609012893970168614592809395218584431626700585854747895061709657135678216227884053664269174782848388688398698149136233497339257450828515389615276907947443143335710241034157654311318159030031525590527109553595267220156584489641211468278356304146983163982031456441261610520437662261770428056903843176560887279227542669905307542790285699704947777795146583216719105653297960105346706962525357582739039494248075541646637316430304695868194566861113325339571883006766785758857552263863855394072492926593704173757191492374378623879638022919629895327493774020859841108943276726443924741766311757800673137010456604153408417556577613109378725433753308505024725181306227576201196934813179825888675712688846787305821965310267281634844922032295506670198635801734696170885377071124304195166593980728571564789399093842028915891264076512523469652130461803816503411007641041437813271997136030100347109172802413032960406438545992409644332834637766999619449560219121034080616809192713489572445322247931508192108452684241666113718044907973731474458695374847009723932725241218355208403820726054693674617002124984191766129258346422126726622643266843703522986848446126148621372046723646816031957339366305663983200317075705972640537566602657954116398170498853870953785030076235681128495091369412357429995963114061783023320753328663921321989191288398548743478624675759968606283241416745375165475535383475578821651284606339433710021845327997260586870009518989282055198749296627284829220863137441441698574951836102443637729498443944979954670878078886724350843103178485283086779073560185405436045376286930515629499829926827364857375057169313016182877160876088750060957880247071702309527478037983421364634640944169240411246910207162222961579724981297013915368358837670137139246214602948187233314250100367870780497404583120626206054642893739441056085388492044217938010547545221288529963573010990002832955807195354231666379027963498800088445322244372794484187293959426319676586308064368307633345027427913704168678066534946066946802966811916698221357533818345920115625742477180045084421758827304782586364601003607857608869331055315869236415812945468951199390958123806112315187400542510542874055642132310668048208000242852515927390386002463555245542872908606238661933119385881499465049341822973673434824873497445741747711131494006086863939959749844001031058488826261458997711275650957424957056238139843349850884820994406621225339092781904858658983334167641658821036148648959440712758858278314906055704007663841997880660510250704480283274345414553298674289867957576440260631978802392940039952841609942093822009983853606899705755686716606255073521481194657927092072265406786784571979552561472190095427139218522985923728707994055422205465956606913061025575285794983541051904753092569602462343063656342762959975950778760811488303469944372253117386797362662677343547332338536409278840229791760290590143811233619936523204813473056461271262848745476467957804453181225922883840178022296000374662365110574039149024496821890785702993330512774393354372621191473201592518739061464864998889099505710272574910974580149741565609691331724861081466254919719061323302505588262079780716266441960744511639472946060736706459587580068015132564557616815932901039327553228942378781714549680073616101676758127058800136368766019203473971117219665549652501541112654542963801458428474256883613744592722741398785922266933249959949374339857102924974281159620655591389513143930012541969584652087505288242916349314645171241842366228920616525668483927658638206840851710146864467107300266632041758368267880112687394856698252530747562292720284576175673125880367696397356017607910255236987233782477661417602824177206237605099756709121412845890631113703414568011497505155031970520957412741833296735305893494087663290908449729983751755031408518160158832720298130394776146181559579635337348903437098485531208165313198689967672154717372252592926774910464632535829249794556275171301496990032558699813847414845951294979719449259679771760243760609433095817591528579989449237907073039790739881205009204687840071834398635161790134154519075753147587650564601274369792090212962337321619152261895405498150048924847334740610261829547442238249801767175886639896713854277595048988229255399281387733077844637873881812394797634009280575180136685709834295031841822936106857389278403123510484363152914783598394947096208504614871118243935572241137372575568138660275289747346898965074477111922785779977570106071609332279407933732686865452606601982899373488286336736951657791897504162653855704302951052898772381197856940869235899205763638933663689197015700346848680631606762250388519756592751403270215533184561663936394923020941866181890167017821039005134642284065406111209344432494139519421133674638592552287177141791870858743552595134590727982246258430481050756485402595885666836206917729197358125992286073066681217292941481137742396929365935596708686205152886368045623872715852973266106599620170584874220794192685090630053887246385460191829808763014882848571037742998278391648158362598754109897648475007242589061543677934182231747235166072648809949807445675237495256389402847774290540050893219378652931470257526125229775383506255451406231616228669179022570619221025345771992216067711242139944191395293210041949849786382639202238520107046121055066466794851751082020487859702808815663059097191238951779914249118476691750605809661970664866714504377704054139516980376303961065843490614719268821038283498838877838247754703718672815209268111748745580894380131788586035199416919982305107075825993012565968822210852661720149650211857026851797527982233543474093349092961982933131441683149960212713581743914189718286087044823067399730583034156985927116001380428227890245386613756065249759379373612614222155459634695314414855571580672074470848346593477019044175535924610028199288785616540671946065194477718465325591335224841705748155206219913439771049596567360459983965878116156467522924915707205910025690324412461986206788398483438023978206776801782150657476096755435253573419332648353020636744267998982645555618704116065075829416005244140538610053132616690501177332127935101594318826827463040877118619860643829735830470455307108702615523170056725974073328588196599853524364096205469735244199405908079146944682607946353125097543015218126555245051778684019596659865776689464734056445685076990197542497050052471326040793064750283827339623070168517748306725026065806603853965640715854037221879469378844794876589766523462832194838879599221417670336158349813290790984851503371989832573139672249640972205610262251196459112620280348174869197441193345812835162301017238403837667486186778439967464972573904886907522391141015326868294110725427547294881791425157446093857108084593812791761496771789183368574113773373080062916733307836896937704516100536712744556154009678766741782391666035558795383539234047866257115340568052643821193554645865000990763940101138785778642538227189184371142477231127236661302250314709941103352630480943441019042573798626404907379021853143885423251551769970424750364615734228392173973838046509712239734186047012376828966940132998356636854197150592062452650819357322066781461933406714822934175675526216956710880322546782556731903832206244354766793332370191496087079540461325883680366828519822542033858749790500295395863549331885545471022211200837418519840141378408760061171056794106390216723387114488170780445863202368663365127641207716600715914759103500828555932244927896390650691791297223686733336418825604294578944792225627950481336883010740999808006486988950031301797369129686762265907313329017651341875437721523106433404322430658371991486627160388260568978464479022794095952845733934444563809217294250409576095329369960531157036443033203971842207928963142603433169950676816689940901799250908413583041476192780106582833300177977489324659821262535203190124114317795741032181623314056144835505958774927054656676639596568519970790604566061753919197994653863803181481378512878938514013118498131339325098764407438550751977772598388072601271792862127199132567247444513762329675501758894866649140812323304331659144785460823728547763120261961432020057284563712268755845198585581639779681446424675822271092151661181164264212226426130650276977926665780252775030548657981751352863592747653095946701681309203365322531729881056388279236399193025383747369740718855838699146263140226347244941097176277690883724360567970067013456047870480035354658869255639563168512290290246196931610396179447300814168129383234072841849941577057815479354712396103228548502439613016649836889284424001224281755345746289719997943674313210216328978193145555968329650560164180861931248165945096699361757353741415045428613513421156112770709958731361260823462125665946795887397592577244932647059038088292532372855746757990137079517228733175476139761408923420858378468020148308205323126504984071302038964664038483160193404653370777121493344218045505226562135128395506773139536890344415104518244461377640194350162384402859019037255956560449208954874289177297388031405675817075807377035980022035670595209165222650920013159565955079935273543066155518626019491838890701317269057489306815386703492918732571880668759824040729635092758750626879424475709531834608539612981174258480064641541475402520558084240139200410350030930895935086443715923963721824859308388236129380663808339492470187402865917693304093658859812721708683221888189862125923817829713002373765558326087789974123915501462912784876923377866714146072050400628965460781271001001987742215656792219865127853560389537909180006688346879690956096698121220955863410006267661178476911581872334379207604636918740207033701130119571606358996380627599347860944369412731825408582665535378458891057215999502550745954136085310249217145091012963262222972439510696774380331881745610847883168083555160972019920945353793960079117402189479000638524996096365645570441301526233315461849563098201723992408166970393063445047020819319812136421846564574288230228694708017173524365246967653659744496826309965008950468995775661254736255922199570787497632501785338039948152709783578044583221926282779322310542226150204022781430098216758184653389735133106266086760270619893476149702431617159223580582552107998536186529411803527422449512462532075533544909128760714420617733436883531873190741107749325347766624748509170765519052708369027870628667441548909798451817663503234139150570463129857430248160522640107001116111604700369159712283551026744050276614663253425387570392962139944328409268141836987843224265307893704186330677635575548406906964120562769363651661466434562653611763732905139177212348159845020930503774495075224182348553617678270648826229527264331722128504387084632772213012661451414726857051929116519063821271732466873922053861066096303355846518314326666784845360235378378549251027208846926700750820217989628457088267025636403316412181770739076745719102131816434839355876705539258406310730503578627896902503542975145147004495852248383559995466667462760270168740310475771034185880845248268090716520126510941578190063391117187815495613602178974192103679881541824911043652376583262148199979309697189190870745242127602150871584563002766070209476260228837861547984231259012213296611006867636560086907238355366654482745809726801010924675728813430511710885971061535757952715526927615162453670208961832908462337706585993329778315802769386011713790299702262813985247171173568688442864734863569568127371270993903917449873017439890484427919588495943052899726772459776249203139710501039508544318225342838340090063032320189089872726001386444329342348621443963792594930205293127648258887838414500773143658799647011975937267778900435233224686022262761268577966399380882126554060117786937630353519538855338072684354585343116797083569525117823434766753641749304065673023740496657684717116041993846409575273850262200195942035803116835188117422436598425541868868097495604891319869599193997978175564171249477369266398431070381479005704999679565714253197387831543748286816152399514671181775102376369813186628249412770120250792605251264125631120328075155861082866912550079212353041978311125492402466433502160073260734598811596037272749518842862018754036895220239091220361165787973484743492214021955537108931401184751182744644789463200515582922882085591630122692806815464889570656748093252797154284487108538681116808048532305131179614830348106302113679998953238984263136518830924192968717357257934751002575990872136218706609041047048501541900726580820505426453424182759218991120403928095951412538931653481741615294663993464003711185237903923828087049569305560735671437031922108246752714054699336992191821087751731517435857860577771430306951019015736108471160647335373692988046055112893388257309431537829154142886350386276284522437610964641600587811336974801749582106982583295900117475299303712942645205657196610263129582954857385324717364855535506759941404922984444994451511382184607517393284178544403110457616123317613472751421664366231371954498043133836780843841639547077675961258161025206661508708219322225547934197728851104296695624209053885481567257882814440927943290986981933432607883905503189552735005638631964993890733167660389598204648237926038566660155112749125233503430406399840991647388257931977568523438771460937835336801560541896717733503120869603215489552674683018541519910154007111710174147852564970778912368755550680912967471272966058669186913124038342089479111075992215156346208635273677480225237560818981203278327479466931771653520566439178872754448090984065753154928320530630861364394954228586423225057038383855458098974318978407017821411202490473423007386601197824176993573474087110959576939952683713787569431164320827314254864097734849863356232575976189139333812029025856260993947151733953707621612494239553376373766887385423859990338428111308820126976476853407610161105503592308146147033293343165451732793613775026754242223656168502835252091084331928353076172164819627456878177805829257886881036740098339901523805994529420432789245316570092693308170897642640474571496107173377684253178599995982888941807277800413434549182554593172928079632257256493049993746106695470454791424642554964672535717704752357503011355822096877541852031969515888064909950724140326664032199416589295104410022902342609307876897839433513207410161598955749010456020155427450001068546559112896094817065504394325173193723883081453112142811445970810257045988556209090294395697751339833155173144372798584737156405011386226082723620411707374756839159458000582039905614165470964281430099320510724891287478432540707056698764165874688732141498116146890307611618806300753793734732712733482062850972967312240762323527816072591259643536519269549220832833324699955762209458255997635148265572292052582018287843044563110180486892714239812501942781341233175496977203084030110690910439038928840996076946522491413210517160743468865127625854393925746133587765946919543258468700280305150818962296451192168159709352087720539751361270986184479016217341852882175530936954864385060193411411227481855041223180564437352124622120222001260641072708345271930763906273126256883098902887169362814474476550656483094597555554884822786238876457207952284372539460891814551537922451058509384014283748826170163294497718158903023459209724584405696409371045759229219908511066391921629142154926477042993368835062012213346777954744586058710511039648189994823176344642965293493806366953387076378303771396287421459143437082365702160504058446236280006393267087584729121479592812394239344692387471012344382632930186648484795854167023058742594020593279770547930366710022824810305811158464992551255936363211469798918566903809379173749618127613793640534277239142844249518294036026539999812214048827238247976489833035685955229992782353172922743149480058349839681232677393033640882855348391160963526303640587471517290990946675012784541237830662993205149880571100545614692577138722525171345113478269757104037839540226196162642397314633405422695705136825647415760849059028577691558299914324031832299696893478913790940923675138729416014104117592673185469617807268612246867984166949710757301964005421235454905887761633759271607147179592261063356175717559373851602856491051969207956320915807092993110175652677761477059537477730706963115596860535538321525296814228250298905654432102367049450769616995967399894118764285346821433327775179898003072505731301974625325003876225697523911151572962264937691593058020818389299200892892760562586721126028057471299984605008637861647129382209594381815340679099056602359414609817393801118117507868931556972638803890074029114288724623849238563656389705556548174081705819781887625021279442078119286929596753344679750166554983680995862075104535421860060534738927853616616345630893892044880343442072701548017749311020615800607107553246554631609006283575789489690097820202893399380225066001196352223121687769432963449352665152851324681064757219184356084672036954435878586900532543379810061844053916038923925749986226701194152652794302475598533014832596283911643916373015941408345441124753865518299638344736061524145555026129075585381586558189095230773688692005910756675590821676797585057797100402166341152505680819659381838986869520562904285868348514553731865872577378059389859378803811714399819143237156229654854448858449600217915763856047119142548824653788048013010345361816770841265707756978583918751422468116523672685623461041414090716762412601054203268243127283080187958680669859724510829993402685177582357725737042189334658496472258080579754709784320648536073924042599626593725571246445460878042702473165859250511989803234874112099787849685325331364747336593262479228523134018520538044655069310038718927874428150382296150295662021626269856370660848128302350583431911868756887659151239575433798792860926822715058149707647896728741534941958885205220598723509693466637632199356472736953385051984397047093340709499599004904955569494192145465136299376267158946002837871345121725492301103229780185034151728116988574226025516028209184145788040195656583570144094991732065398481034817548131126461246372706009699444553310273569602948073279507451402977035433750146515281324145958972599897960650405603686720701853505380826285216880017358769653403509645708850288898526889345778187451790682627834543466787355676779362374427119307172341243142785926228803948545482910563883150978074155645989915703765207822366928642446295951870038942868330750356953080475967964994388738767742964542759076649347830003083161717456733201233534898132577520425022354780927952568758676061502802302223180628700979361255997368081751381385269992309592280211567474280697598605244646271543368078618498804236450678561743801755794758213490269813176398280591338908995291172108137259926063823675210644041117614510026705208285695429435312348479955351309931699667278269757233198405895232867753467219394755012212166489032047842859415276612307269728881860233594844988492230018253426508626501950955872860268842927128976366181867530082758514587863612244472146794809395399796544720743699967453403702864508566668485709132704595650708841602874424354186229482383821750505868138486236219331445000259608958078254897600023484430317672908667647875391582485643828423523847068857457212417826387716247117233673340326333723753824874614680881107715693836543098289528657336785556396262696218631637048032644078818660643082228456024521813079607716919167075351584905739576957763496311304043751034652193453350552964989197270897091738826659432024192768376548652620968773463413440555671382235217999287734581500888014316220364586537574195414523177605572150092883379626751459367401496196340619325116329869834320622096083589646068959564952429325996412427153481160871118600255550925896235466627520443086494851558012835981375032840457337447884734349509552424504102080476083616506018770958617069022911087772982482387610021458849564456569055684985646172188507725752669071834204484111930718317532562336512745082063585895547898119095016925653806444392300962589048132468970095426734244177093541975566418679520852861475261714027088183302684260251086778165870366718948472887447422092281313738611642693627007420302756720034359837949403038840871221606606492003019240182201160126794699544375634787719950316351135573993941457692924186382325799687553183481776635661821700639029261419881978037680489017084247359011590433814272469894361452480569841225025130634119563074052616962728878144344790693663341031700706712330716603492527802701649711104328227825708586339170250385220589581391279589927801581144281633785442226393643806428474121283908808374740008608909397419154012555756279377936992289529649774123908493640500203538631387651542569702847458463933015044937729357176391231863465843321778830984710679478775563103456099958640402803227729924275090209388157831060656871798555559976885116007288870419607051967088118479687393781844658623690784966383196912153763392235046817689642055111322970115018134174310161793622378461421945835747083083398934880204550986315319125947876138835312893809949388134217803037493984949453870840454653151161985766497122337393768442571812935507458987241291191847736060669764383241283296785878074627827760913497879454688213897428942922835587498730272604055996740167443794246625051505786116778066507278633717927113369505630437116565000980047120889804100064193555051728546813509926713883720905154154542180593108335584089639719248059447659680719422178551895199229835885902505747152226857907390277930835639990502955525784406330893522078135529442090070326524337587927185871464468853347981655600218927937642227344852682884566166729344317640034499932898320942043227486586619218210641400747300827117850772996447672130310077036117885016261163503124243275354397125315306506625422744095077864686027763419189928218464775602179760680335523072429659525399678671677356594128046522058512580939821928460499138632318306289624402895319286996393625644995491493079285164314812033817872963433218667762894658889699766839980187314325979189014230111429627782112136158198494734170488993648258473172404748353556535153573413175407355792983360128441225926806915899493025353297045589954641388123254433459345425967614662964587925075010657840024295325767830857019804303252900705155483667828962017499795783723459731882347278539233611021556949844242858779994613504985896464107354854626023344811379544530384798595027362576407214039094987923031223205255275964965934480140939131590064264417297827226503998160125526749653468077883701542907119825617705851512555423280415871166634206257503472384061656427443263235008903488096542000146738687961137357844364470949924398862387751751432647572073444895455282529710934098357874384185311059625784631085435827029073437543512269043006480724296075630445948815176168192418925590433216037474980562110681969734910366542475779284263325285010515735459601550727670976834838514182295839247219006401277543575645326382339153546482275622556222508978622328104831699823790671532547093495360785348366423803549252396322267592426465774586573999763318153575207805895408821309475140374536127794386858450901059069741766834463780290785596576836152255186491729261048728939514161260358833074124073474594597222113826940649131355249473503362079490831679341218656320130372583714846099381271395284718529012214314508656900557858914355017575676716589523336487361006223473047041580078384424512500456388478883368010903080605034432632199375059380215812407817742972857779466003490607799982618012470931676177769488075906837510799785505773896326493682262519640697662500315183134797597801392891228593557362569811064569101582435937459392064813350999281445449278620366488062823293575196233635420946966760255219668375459933219647439822643144607471144173281181570321501786274363856816403834809583829824276655193071380848440062996341047208958520859714290892301141772659018186192730937224736933639429775470547981559408012962136332892275150900666516020056196473306439455618751714475324771711409254742691491647409245224940203739907279779330188844101344491139133866807387798890919916489906053080926771912837395160089232461924322616075528019944211555756491318851005256668776619343575933526057774966708689136368219330604965219095654578653230827592089059110898430956063201197219201764799894621947507297528180472699388119760286711693191552403259086280716547206287083824715811474659924569177114816858467535781603706950592020572924621776420830076462240045111466595240753676175420746177492085980223328795177495032480635600800323466189513914984434299560627655713721433671672595066875332566182103045829849246746012722567541897890005466297440065416573409122012889939132611575287977276444779890887059449071695612231746942038958550553094336105996796639070159086375621682874490641106326110108972743362781662269090991919958601809749014865620129088148994482613487661930788163339443033406165863760426552778991510031196809212914232443144411815288020712106028404848902131646324488134366272742164788366003433765932344153830431848239531867610289335871024472458566428209514070162710150875437585134766784516327324416728097108485429312839921289867290196609242805329799338195918874249921978385279733799134213533206601246745347687813879866285998157925556586408288583003799590852611851256128240240280095084319150144809931760216007950537325907186362087996004261643124726982009195246798751192184045771421463318905715710188195473026409523424295647750317957959021911900077636719256755538831092910221816463982901404461050510336115250401433498449041073207325944857768441217482745719947899949449874063770276496553186496703954108826225597862307164501449122455714367245631442896528916701199284071630146770336231803392769288503801006399274727938865558562801126699225632312276916410444408096469910585854276190575044482386907188481542283913395309863043905008043418055219116424190418634332459474167012238284417824066750129708634157617500082158877251759529546232210481027861653410732899349211088893444049703088370426247125592574975919157796622110381656264863682213246397474059830957235964842198190117663406405867035074104230243392709531122200608692110018069591391888743190478068431067228633990024282688170551594942486035840097237162671006809941306211167437787346167488903485431252736396215985484541122667076778643424756613995611397687630659069631240999952501096083695788719569151224843654835626371555835295638801603363615447704413424287363154859441966989096582118982283751449923316723370717488130093054305656456814580486140196891023649508381804126599829129682083037867544998490294721671440201868223984265933780719766013215122865144417000267487088095393877002674899116828407234188145891650796441702424869813717445306499537701653621906294543228532037002185233089432760640309368387252562738625910813855632082308012552053573182566589180627314905101414034446406080876841981307369326755671458374310246223643951010920567515610407645389985777008987872584830667498124996049027875730154077562725135956772564361586205601579732613017612165675149474619287540023477163689619381623951625657095014518792995885898802455027935967854944132484541792383903621669728201424442508090267834509251202159139132151228311018870145456595285139330201510987258227579804263513505400993804915005654069877900231989321637441333756707820773633488371582608047238629330587665532306529080018952271847326342236501777621729219910096352129821570786699154474012201460713044306711585226800584022177392033390352998782845963130705868882473269524243652900359992307381253304005786634362730547905325317160441646984727722216883976758617401962106247953648202065154551036563366416475368153575795303066374655875621169705925210547098444393375799966475025485555289980729177336929024253523275264981514912109687536093999506519588863902614057593057079278386059863591508796823101770545915277810049332615365370994105890031990474210571742743875449174797550276513308420955497775686747004862009694164180662154564774306138795498138426879251884063760708354543881054128419914493416535269819965643698788851761773180342207125525215520727347657900532925317985946144207575564158738576211700006050002241921092303033973358517538597969180136642254235028986002186552384752186431418422010970330761616184863523322695658532148113412055182544850675132717794098744504609411518097847412269771417001945344274348551362530623315383458489869115509026046981982568404373245799795901552630791577089078825630724823637361563669914837819158860322259106844276830950735459740106377756888238101713847320456241854940728546661979482249435141235979780254927769047517644051952981407841372018788540202531750266520658063850697544279225776919383507758162898650897120420715085918559333662499432372170254389133233867806254849148133986199115832839172092390124698140445755525352067107466002541536547699308393655966172737977999044501546718040298967845296095116975373242662149864590090935083463734431983647092451727923979378440707954443165403541817646502696837633309428243351135411525957822472263957205943821527013018480626013199726799433683183495144991105997201027398844881107850370800481717809868300604238756068750174831202254751198042618747703464016562473319497550642861810823691403891047911405907475753061206405780908676630107084579138865650007454649862573142659976065975273032123500092366425724206187926043301356413319294351660000579231301502979014315319047649821675657869450747293809081183569480092266506003063224845458666817025293738175383373261402578429579385249965735386852326350457408062017581647582102500766502948848649085821137828759900645124516197276037013090212877021876129110899976223864003166763780086256173027446584937136937783861957243614413944224253345344677841014298160164956628361910998009997841553193755563439955322879939525904375586243773211551885441965105810648659941288406011931971005468019775694936296897642553080059944877342283096301513730941396290954780907945564011226296010325564266252340097506824214436784173769415219566360585129173182591740507635456647592865783631089861055164178987646753624136854545661201775612397487552282647458636032008238390854574202110210853479494204447573712108959214096027293543458152274657131964965384183979492007082138810436788373238780222254715512392028178134049079475552785243062494536854508789368909939673012160123428714113245787604299510243545163382293933287623788499764938572227859240159250296531658800429158685422303527941706188380018001100362224601161838641831685602055685217582825223938015557612578915227875270888393136704296765007189059489811151166845819579576278746039389210346260955689111479802523279058773318186688760179628243476383572313045482184723509981160735703966142313893058068956107912332779848662717968737438376506270296076558443324875027612015554586934526063135310533842459562301144294187818578510418122338861885178107973770211522784963601885443575945473585218902772844310301269534612960070332485739517473165925469300201615138812093958629364947710845310948195230032005499600570670222801413878105283395644866909962017100633144801085080540790416443995141915168278613113935659390819758643321000106474993470883149065247271971875987686985393895930156871515276842030769586519027645683373224687258623258671821451877056758970989983096511752034321318737991513282794788803320399977818054382435995507825524246153370883924269731431681134870946881362197845624699772706963270541756412548215602125345881213831547953869247202864954842299693186472495815861245510817857661774288143702085918005974262745800081185322928168206497740347473894263283317158664527639513019293940256847550057447057137623645820314735676294978784475550094939979454126369850295597226157035201635122064070752383633148163639126220057756648551262971036396200400200126067627002062785177469792374372434672715589130586134560118134571508481695541442049438671632101158206568145125147674901110762139169997774609565482576706967485738737148428037138698980109959705457625601576541046118377248093970147569438654242568633445251571326489620325757109335306447055789047671140134278497581842009577026299401353193617418503623153477736922222382356237785265336709778136874069581608860582983336795029716876674980060497944339186637022515451376738660989751506811550513045635542593637432218695191912630602199670406413308785295684301031296860271316290440616051269203550411944290134272413986943859090613301458664912704438604580058307246353318880865645568738545912757138156685826299229118444149488204902673317469939849301040414754762297244229028470223453830456296372610579046047929463099514245325327189017316918045779608698680437735918030759961686744322214966165860408516413121337921580742453683328257602031980005254623655598158849988611843869980968641494098852647088238381449410104054935706199927924068549793404425563168976412128980169155394928323304554753328065656490800472243527003653150692558745532156733882441343776056578447334889707668580116119003522171485692667853131894565650542662238663687941493598397723145162874976769201571727470565641615382856853067797313371210544493583804441004735407567378304134512261044094457766571214024584029521541206363379778601539282389518596479383052158198721754228936625319294803405448869711062309108964441908365007681243055703536689569351161590979898295471707761585135631643508942524773328429411684401419305222703715581620771718979969541045768984184218057547884588916374152996041245796832211106938524490091142734743645240785228523988821012852817668865486336337237868938193683585907023255904103254882314580423978797887554940568441489373497714928456653598023721097892133731544878760752782320177404847471429000443912017111307467251560245519700409896682493684895681044121893415822564388846249043237954747958459540244478491255246745164010479416322601812705069913725406003701550935128342168264505122673231325749416852416379899434473848795781732976796563488202760267248724350410905985183882369696791039748861639514313519796306232786655619352666385358810497827401216687009796426520336753949941671888151966408852289785156400631625507793091522889156935492244190714622931546166942812459865736219996068411407163649552396202076342031389877023088129777700240563530819621812868251678228807956154630900837524671929190100201413725403355670740251933353019060006511432966118843732113939416084405299547392165657062047901011342755852935743451429404545214193276301785749714649929162859354070593842785826278348565168475543199830910487895655189548656737502654041571270192720550032302775701948857196724876887156032558537483265427171158201205112846949199498579336006092300122854706965614119829519055705255993279027492472754345802620789931502706425769166977937941757236822535468648853424940105007783346308358450124598042965746376311357487439438193750933018985290061901412961212289818004786517336834453321934391190623925442990750169085172374637738317752616066708521002900733264073060156988160226587900914850569904196896909187315654576534918194424694988183550069663701559209667962253035997647611077600037102802360276854897874562982598511991187763574129747201926972724516444740969998868330916097069468113185816701976215759728996816427772693221970230828378814790836043191982171093669497463517670521636032897911768672040090565153572362860880845127499767940949386939301615455596655020873184261187528690815721222715967779155156016977032668122514321012660076289026677048539760035781518662403616711548271448431472180828476090843431959906622995509052218517041683650262623663139810170889920985668694798627629279667336614044073375282242462263602848118831994157765559168911084396824619033412777455588807002769827256361312676837869442737611393704841358579199030124120566051374254848071249003303049049574454703019680198436294732930599058443398758577279095827710991339495143018821094123635771631658036622642403323883822758299802438538729970844874794606575161204688628400435107367820716804800170614285223436290237918318642953247701689473445395259800580400887010115045908016124609233607855635845960278285350040434874864837646338775382731572575448049491220195824175773317600416081383969673335195667583887002903777159107456786423386439828627206325311869362196996681427090061391736797058451956939572704603406011272298857086538436286964413407688825362856846169708667658646686480895423960675837233395149187396450839713043494141552382562811396150067972600127039847094199372705727833276739540396446502629236455443672286031478375924567445265581897734826074561055522025245368931831853504381968216865654996885709082351742119304201207106694194568116155589017734727968501528822263893854832527250906120314371874788680828718319874802892031524885234772318152574301281508082991108237610175495638005767579930068183681218821777131730024570032554737352118142942437250312037312196437195160458003882748147163464303386855098470173951973711149496477300369051303867819129128255769771372615303929470243830546493230557238896966216682371173628680284765418968544568107319942631245398053099448811378151751399073348044091452501605096639243922178220177884384775507048721880919207744942596054777218434920706082599778139986374372631071052078960271047838109045950414252659017067809953664402859423171348398070483901560756661375831119901433516815024640556110986874706622718083047359662056797296100042326383441164169703295540458214720878350024127758730302541120874277176599243238645195973893433948212975414751898213615344179721778068958386017638646708208736632842593790392040714315593425804787026030543173714145491534719354972051142349417762827003544327672653807585423633608653432837509040745342250164083726590268695814992925611354207956755089767605164313308946865124885358549102086449717557940036808886237022156256228837986862975068438968592046307201933448750024965383079565730402051640757989651329723760053538846688581712330232416843427163866780446927974858307695670437491836352751535819883049650256538481282633833726302191574083590652178692455915848821217987035906662167119952852215630271308034323543628791569234345310751121139583045020894661020762676875812752275127619180048892185903928824126075786365389234992958699122779797304607472048835565313655550449584651980277643142672493222162146041752889003112164319663188081290286848385915819042244051422482374266947691873209208150581649150879067371001272557640419759547445152478939876330015916873215091276818780524156038827793314775893175715869984673862755035121315510490029580524795282503851972367290353948892540447821724062346264463097133850683373585385339240249319298299085253087505157914200374233056223602504805992758095458145956097231913082918400130070502131473503219179314640204930439655629369593987800984313395590419581457680776157536413312699096764441414016786408292851565331473827485759904517671384954956451749410928611913773754953711086833633946409855789220689706634548577826621663027894860709342143783179530287726496781152321327895008200248744499212219724110922103984009520166858779294075508416181820148560344602503236594313596412755789718478849765261442053752945665243068779172734624867207513952278055796964998275851763465917913573702971487962827962629885423635640319129224963984952484284321327991307920243836414639717049329647590270594965526520218062898310612007636213985328998581241320846068491946984158583228837275247788374611020099979075161017919502308267291836835049163826113498949981280867232015518024719914490614203286400192633382779132263010376916891024830559978568424617773713952643892579395428569564239500856091076186304072503543929936028620429718405554523600992250678977006065903720940037330705805731083413213565397690256073597315316794261495420469398605957659525014193655521134281596077559584688522980060274398602178015144817287160068176017161522913894227863346396622930160466435164577280488246034885629932529310752317104989462249290315462587171169729952621315493318875816056215327910420528723682057288226375182729319276565772358692618183046349813368884513748244053123616757236245537736595843057643905353160104073762849067023437243244563855501337171493532998843059092418455527090438718024172166121415223704123449029411310011426528857924646699979339043149769939311255955982193364195636165343981115275184850775150194517217751466224839138729900913434525070282494997708958213599080051487545830860669952684442508088920242079222473624873586214253075761197136157743517258768865460753079195570578115878104544932325499403502776330338519083997081087121444013764057125911331059049574037838391112615975557676364850412864571771489432674441219239754199569259347448826861436391470043029428184679659525705872823268410988075301991302655828157714379010423272664434009478198909978013891101847479662390082689752338446345311058593204234428455152686010376600712633946023483577692258130765304519167842716382352776882555184046665420798361488698119774903000963566558924575882158736833118966824849740666769990986991867507500828315906349051756713417578252380089253951743457850220008293262933942051185825864194283622859505399826989258192266594731813716407627365155620507350127670572348953363176432233075552510808442322871024304120829353163730909117700072231040274001465192797478980380068654896916685585681783644755930090688229915438121682270481280452348075858661559179520879429227856783251825292669215584628449647844839821173919956438328925476141492192646346449781877469189173353891500737305250219053151646133766247741512025243681771890531748018688656209462616825097310634130322694136715774526695082697052659486352856477650320329674629613458982999542528604419923793004579048032748445146134211983979916310550848421674407598965029840043162890633629344893504372207012516626029094018563628725648690234970648228189789006387043422839670515970858659099989556694664556826627431487404366370873605869362344311899421168306072490221377929581304853751649207391354045959268633988113855591543993116624467402144470038200913141803678027892836272904436704572484696114346064460555362977542880816752727952365465637615968729157788306416835739675914331039811201353440115807553593949091367931884227343362759387559455802538879302296595406991184916850596547010363366211265012717755097501480422316421157265440677515689441589771687509294330476207211698522064906536800458623019155342755487500019760591277758549848325623878007545341987657932807802078403380627151386862838826802951297710981880442366606594030994769418475742782706563785948031298107632631112246362978455338534825062620004550588586926070238602227350710977418634961086205245127477139581768118071589866209947430083660391774833367747722650678239030087191208208228245297354616158818156388105038726851813765723199082634111053329372231830482129275604951276002743801817156200967615312172705134375702004266380045485329675237651556087590028042090669735101985626590818419328043006410610555203456178735492152655397936676725722104391790893299930351049603202974462803226265254465641198645896918014175202429677165200146819324352576252289783129158847624844424760549274863273868039277537132910836169451527763204362044931517261284776146014924197286796410362854529747184248620962517502046755618424496972524111721783146080654962307035918403005026885265357488562093969179135745346265570643141240782710824614550810124614733678324486578986081378263975637432084470789889421261592628010391847756415636186581628608171644998993438167802386364314397270983837741905076604936288069642402917885727265158103939124088637745793458507674995692820420024097728600750817233988997856470486455837319378654795468862760602853043334995144242484443338678764094695494130578185624337431223654085178829111155267028072528112183069131186124186653278477892495791896353915382931880195072367831396533919939402618359066662731790725558726526821090075952599613315075540239924583139961878118576494372050155169589702975698628690900214706046789221643892027434564160498051261530777086122942290608127671519551301043788535523469042009886550825846341610190328279712667384031391643245643118736928024880629133673655785785751019765350479216748559609967723112777600554760014269064837561294368638144295679512287610940008623343678541468805291690883157436655387551158532001477386136158677490067228563551595798344925282348212500276959572710425025597265040588787573572121592321776416637278109233830150824550776327003263874872941098314937735153069055268244294648413364805126045779011507672089758454322508456834896371912839429030735607883725926011828362595342382691610730412425287167589195669030735696750727757729849911362502958547176790383671298470259394967489149006962146965423824823678766254721542271122150021089982220468730759107587716990747972789719624523903191997452620216616926251214138330652683577154826025961502251864563412575600969322023784399224157362288235846570903352462431685896539704310907242553959256151973921419310222846926613825244520513510824808305353327074888440675796042714892005159694159547293423544277673396728756461894932459885131964975798665910913969443254429415034543860551250465574529233779158035506101513837727672732006243732433368521897104702923216835015267913675922341765858245018728686769094066277061531286578444585051439682466923103813815648608892893522586385273512312022512459268946539169936787818038160415381427546537338760789067273168968023181984375502549895180938214374235003533170165562640804527464942029035883250546498530691914575147632578120189373467507363847147856535100748351399240543645937756084108598740142645735840925129154077162461846221045071190685619651203203994656419942123308153022666962124206982482534836149506147651569662650898058110937684824977384672779221916942711591839650352605538637266421872608014986618224823837400558379418350440188081898247366736447011230237607116574240514904269143704928933633877158438243474090425343096859038135958601307258691827668552827003030778696670655400757729719050868646112157289531842511095275959440713820154486175654496885522678400274153746757430041369230454618100350608641920247899909985336244896830359216997157607694440144430795508225663001020902317141510459421008387951421431546751405156098246282785475203135536770807207467698887719110592645407077089112742788863250316569336994603553657124998003630687302334154498378419590153399533156463043869952489161429260327040892531160859779605209321366572778820674132727440186264908139194670178263954175780043373299995063561974318915827141359153670431791942295524918816202841181735928015080336043548492832638408466561973229504850661100016264690624284608084680881839823301056847327205553901918070017704408110631271821516665526682383688404464728708954173095529873658416551135705725566807965872803267275127671756606428348061587129863357983986473028132395233419308643152644139834615758366373262765205144135359585276968771261831936749137350985658710642520647782815925922276370765304431097598167099470982714766484288852924095508491652563547730227276446847042305374758966916752074778025190394607183505955448752661580618607260689739704220636374350490778060493008131648172263696975779386595029818553101204893178270230276440046336205798006251070014650114891900914142359396782571621586406517376653712831607573242431123415508783361476893425239168576104006936765590907433709833398293149762682083074745069058400883269107998262617532961825860648313395230935032441791880896236387108997537934388662463591635569813591601514221949101005125710806793613887234149464963591391497710528873458388262099307554649108297810809076811088100756498060790205799131253698345046729193585096075891712859004929544674463062424635268283919827562997614483439575045941147786743195686163578062112231473979400574749945075514087300744840316807757307337102915756423342085653208601289192519978994856688735813408288799332417305060208114907942459358773612435396649081160453621446961789288560178518638030975324873790199553085976697766033446796184430079027420200011779383220290173084581537153248308142899856591850561666688107353001620796406406547047684881948772714576922600369772450084220960655352325948555559741522342063153481453751653410936927575504358202228297741413574939010334032462445887698535771851079195027805560413191161820152298543991564210049200208130914132948944225840621587287668415729109942186499431492981010396510865046523450719380117404818731492148859253587663242412493076969095896636815838740683816308945388093730127145727901691791264134640888332373405501141465105989598819765916606070858605636047679680046910372250058936752265264214293469725474293257140271300736159020240484053011958281447671844138536202987452015752329801450832028807601301013708248761224198037855275716516988591624933320599486593919785118600897416466182096473524045218109940310875251582984601010021674905838096228588937784989012565224786868984982264155948053676266488384337289995248286946483120500251352947960974758834320194010893767556546526071581642259813108191915308335773887793737392963090559493078045733620995887233247286150527351924990581974951225215437606883921798125767352520702986978167136085962126970641928446317570251840289803681702098248970224180880297417911981179680571097762944553400682191440840067553402555676787641043827455192547387669752194470984827725836124133417181085375336862249732415621114622806860858998635107327760964873227758472273691077010671664371740740659134613903742677915747014153057585776271482678313937192885975467428054954541341429778172212377122072995681839376759391830515410093862225625805803535490839747791391684514092629912256030544488757786501434399390357711686995779771774354560840149349283297040939400744136458628488987733612855886240307301837913735785367373529722679002892984773514271402389447923237177299299246911771649346124039468041660929614842240041112210876187598762909297577359473629591179611505130130761365082531393811135299193864431884749007803501774307213551337254313293137629589767853224106371804162708944521191296082396245674720759358533543146690182821172624594010400145219524729161623512397200819808486524807034592284841354066339701800195629383848544913260267779986226671097143533080368362762824343789271305475423734527297551000089358380570580501435645515519816526153656447006446412360412722707314331246006584519299071202883983729895218535150422557005439057309341453872625347399583954526443102214739485836636391923619016051880220822926079310979472386035036711212914001934793471752916677014689900134435784093570698450390426993124536176908061401089515474066626559579537410397349224082267402305451246619680946466213107287542872357181588694435332670322694551214142111100838174061338114867512974591118661340179694229397516322359412017884431164499065134826142931515227601421251261906194241982484955864348069242885771150002309041988666506187062057812279589073975577192854554342238316398666298116074774019164599983224916741063405185021580770578803051953968277706031670257863323968314600547037694316475076735983981539618587903947728531715043230157608381363653031301177334097513852980346961153534104988349011449036588692424418706978247627215377257370392168193189354522355205030969582502932345122615783211700526906796192783133929581271766913176762541599944917133334380232893537074781958727051335126107557008148384062989671075651619745828798354981161967186361884597991651873822354129926856941254319337352351081736646775432833783649535569584748925775368320215992549726595147529253556372436097523805802993461959317539335497275695320775769946693589613648263542232508912763127559650100806556588809423923723923022172138504503005752299378401865498269915850013713011123040089008920595337532586437568257432883301669235787912516707727551159074864045926187946405200118010420843906118666549006038184710190833095696583678841924249236171629582592425558176955231573877209882392800706288003843069355532369237271481873369545835661535408981149269516655515060280741162263650171438186657959457145781795400922546895758344184848553495360440812405323209944380826953804801893939852832435790736407246363819171760919781965717145810913811205513937227809393258834651174651660464216316601779989976362372674489751552315203419813669413752017501031607970784399825594453128961506972720818186700801299402327605585631450883638902439074828693687503469712042583914012721108214490205827238447505740419856061276297712307322956773004257569134895980883916351057105005483440368315224452091696761203678231278084461918226646831097222428037158390484037733872767660954087078237105538246643147539664714420475756620915657745255744846361471108840403819710965472695460106883896267981633878331628328763599210979828182108637502355222491127292926871637923172571265430734179967204605460929963551930918143350267651736038789508135397015061454928783317986199469277250798330152524481157859562225226759152749092955325134983538240231624398823306146572325167193895762184701661556160921422980081616277458076811238622256628050440589922456103520062474976029685837755215877101366879204020917870679345864618176825918488446324573528652462798900379741054242955729328307034447072542381010062631812356551133687579043747732987237189686873945010897277007504777386109259987704083844403544875934361989252266115068145710310947125067462831441300556266603521599565719839949228209669137985145823913059090090893763681089510680724607031124668192584073987614165808442743806954074296168321041873664471098426001391892369313324038777858244409374234923098770140009715494537384018349656237818148282481545894529753628631674629084998353179831471439922319715505194688957537764542621037939413534139955784378049268383467633508280378501759009660553023621075177640251171793342104700391840579878864911803282210938792965981227174414985127802111280180965442370118827422213850346934078111917833460633066156645367524213179474283295421991686490057660628867555525741263432946466239270051072533042490139422473951567510627511684679889738113412468264836440996533180570598432550823422041714512848112628094179737260607958286368416772667163044759590050670097283561749590734964277604106294745060408381574356258074452043348118839510375873906318561876787346408245670040614288022814620454905298290065739101268667590862441990027575086632099674789953296847809611194500356015152156638057029539445419935260980517370627585453321801325764666047793028794402007378606509475340894213941077455904966965299108894710369142856824067049161822638774513156822534481770839288010908989120885202883949792184739113596713440711194603508174664806418397245382019432731507013161523464530184852339512248885308099852220396204730636952971162889616322344241179900328909789128230229489101096974666559455483334077492453179557013378104543809993312736747443402338171546164630340338034539961860942163073133952645965239931241537928726882525616754775800585396780017023759335809755424048656432576838012800128900131975319522175195045959505099240368597724053962971794571418748920624989138781657043495493213544865584688868027753846959831682649455758091982593586263907109690023121040267263857585794699278228629054010288936983576723234649759575745689153288391620425106827193476629097470387298231740440957820684841062003883746039435465394354189159028597764139608378406793367382351484091162988095415350214177862088700719943386860659365186863937519312767390666452324215581651863667730148469919117704870230000093332753705770036078574259918472500276667627052467234586418233294387937443508387105038588871653209558160391517133140126265508037426717638516014709023427304702224573820730395463461120253564875971007334391829934764721685512397400485804962591535326583291035884580391349211859710859444113883042932799819039766786222526921443953931207495533107233049189305879174888222750015064469948821201370454353339257047570467850100535878242277962238788706946335373649386394441300135023571101748542593064590692422801892751071595792036590946145913990069417477841953312064125682459779032989956831607340281327907094197660131665078242820173288751894755230826055777164680034247781642283513694097794397667759709199476651212947304466566053303245189167410913122337932060274769692938726780901523581200651370797848832415181220804718116919696230341784780503568023151287101138516914654997177209015316115201543678928861591779073197895295790149212832516285488886303646320572960237880637231511923566029961453176989504748834227521845142841729610011590574420842165532527697457839326325093849031492392123587632141158564020144207538153465580788103709036846145283202160857122772315695813464931744624182003660909472737723486635283180503832648939739681899313969711224344925856226777139372706117282142998740560417560470715726687967795793528166768626598027304644192924171136419330389630320209318755800074708443812026411850326084400958105714993076080160378387860031676302660196702921565903312454777482736494391085710557768865965435555904646811920341592860692196519390869068749907342507617803498986336820339348711654382945594195984524609620432191640978404688300462653540545795425931099735351960723313776459943567823015401615396448794487458338347974938393121420402872912659130346107569552230341641706059396314442954927576715118918343983037684299639565795808461704322032488640525122179772444099810862822958003604349088840776221962713936117469765788322343017798840568906871074901649265373355391328085925956849402179746161300893870903819925818218541929093724808380443784071107031794787498821770175779761325758917875176505113069067555275189826999974894568951295828813667410178301563676857869222530759488727245902801952713210610733730090745924360715613262159509002322608041118269968190897950990716937117957639217795432284193979512588725488531974410619460199193347469603350594195518392356971458924189455982044175671743354236344919912459125969694235513332447352796872946895246153019939895996459572004432552707425896945265021728518919030268865563965876508920633827311822416692032949839322876875460591688578526677892005898342472530466509656679418753994501967642252940335457525197788821241313537335902866949394811475962876810833480410253960227475296694455603201635150352936208902304825888217802166865214455816251137568755324880574309142270941898800213162734639937576382361517800976978944290528185373326861638345635256012202487547710431549720914979952988824030980351685943591940052845720076512117617635591114271548157395499745621684627155518892165014985254905931451224418294571619154421119523545843853817564266645777539853185280035362421232358463939659431482653703679452575590621064973144599117295121126946509586193599967964218517228126474986768620400895799362282041445216475300028353592044448572408498742295913450884323083258577417444029803255735080566849005413846623035999743772536021646022053841471597168469179936122347087580634559782987835281691638341744109041127524820974649886276477627989876022187077231844519098135670449241807298986556373566749634553216979433005389761796019833555912560543364098776903850537272652121569989422187261373080978927997967025623197425626114247677556551899387841499255761477241751385055188186287206137354045977303572492317738525494260722544459340056829341074884414273055955606250873033325980216756896486070443237474008260880895403298359826179760612167202676287593202690204152509714753827561785497723562305251055990699553498597642407639556407763361461344459802276288011697235388095565086054291625442896371045746001494983303862395936757004466627529666479724887362182205749921409252037350668337920514653387104093452989524898096902708112391101695102293422014131760248334631526394084021924380804662595444825332159278504992587172841021477394342615507081790962111377017526603383608206274963431489137006738722214079129642207881643883707083711268751303659394469320083131235836237285766539973388172697995583494545824299030180500627694116379173168457171296756316169102091238573226348048245539728322908626684269088870227468775333653248555261799947920384317823120207254247859008974518459293638804483480209998744126250733504624887617635683313748353516024127058528417748113249990865020764802931678516821052884667065980620259954367701448309880068735635922678117007691448423289572621698277289351136175312015600444521353204161329833892811064992385552286410587371807108663223938565339902153249877458690336104788631787462608637925066381342532664525821808590973439254700817288995241954728210388986895252461378291565548121838723853333425957681599189189244913094240109991528198114736112892943758471575738133262493290974404335357172202457230571937907387670300031124542438927374540737832769284204492327517886507252016862298761831840230171691100968322613017870634640415922752527576801109029615972348142180681235613304256369585792243322937179895527786044078511124838090193815424160694550549202880570946737644128977656846489317095727241592328163582425640960284018102280678272338302204646977363293442545698059424903671711616745740003825360776039233649651414174949938852993098519102409707532417967512332164620734237145315501402175888524621668838589686757919948638064551353331766338944412632835608419880601603349357509561620067803272853632837828636588451443433064085630532766619849472630900058660197579883736143883588481079328008276000243653846707170290789083216789022776973389272348372088192131236434193568926174541901972178874409632619884259669648011150984313209351312472040291058907194652503820995099185809159020809601982928059258396161763506638633875020626392382295530034551054417434458473127627907872673521998939874931033693208205917820497452179585261168217361741208981079732829444814268885680378944258052480935457401987816159717692457898426207491981429125939574615405250219518480504513477340277247160399585847448461776400318351353489636330366626976638454756553418312654767735367537449071970517961423524553978465689224134470859152863966615286601000018928319420582457337835501983545078901546842516543991950929516075774391527036574883482570894466998229221751912925452614846947930945102380263277750546320043942459342636024985894533161516869595413754529185993755199478621004383845062623948577605819130377752534964577274777034249047226237109366177605202663592648570362651614457790446874255050389064490755857185730493238737210053218369891274048810328867916110688934668292884592365073239704169152652590867091492626552506937268721641843369485070422492063416811193756769315284766448495663475965449255776760721392981716469343918834984906375731886975095634015228990919187653415918087255271349952608533352729474602578632982572874344573244370708399374144317640967641072397900167782834880411214480504704718713970557416445920170560365880704876256746068746499667629075332925377309930742030952004241064334591631051676022209035240075693866728687309364230939629787103698770880426573593833723929858913622998598902642178470686721794525351726291522555052035814457894612523154574291289457006924374222008266843918469159543524289721076166669211991278419756451023392913111064586140042032043114805129997450325192566691615714734516821082854498097306035933907436021203514983227218329930819643314718061903642114577096869716532329180909042526865538497756874165175058184494073802860994239724233793557562205558319672159434474049074556889686497947651522790803836960297595683670582924966396438387203794408316185893771708983887669904649668893865439403008632549062598147767579516619002651218925404694029288055954302939729322062551282423726848639380799354951641556601492749497386190833639199973569597188039068610715583266404706783880620253139212086872049733812869139286583969255484866351031732095941746562090724132156076214959929569711834150470700564645210471288128936487287669266226836508954663312257098203285491506473029606875771230112762267045006821428584750393182785953903310761862658282924808157279575101756434926738852319962783592992085617224585164067635756585301251408847296387099704722122448327697758677575473550470890540273197849891528359679775961908500836575985874059898862051100014477517646517648131304040474811549812984087522648248720133627120624410998616566415172370183890393966485259778139413901159483272976130442346216154886614287359441302691815345155266791083147122382980134795199256072135436855076200857153026163273387971295935372221661323166479930986865680642608335497531724525213823952156784048035346067672211655523895305650030334637616366016259802781700520780943744876593436237251155278646699831218538598715291967491293939014727450841973827349871973771269478627250141425974350859485477466760280622295327634173727006438756494817665063175417312486423806990289215801861643613243612380966549386450264983885349826243335110317027713101435336731736754639835305955227459693070047913917308116312495377007624846585008837262133140972665221292184454480183897692479255974221574111728021587769513556817252449844444931061782763971882760717330201450200407594678048852841814028702237676390437249636653734105125815558512095538406718529960508546947380006670166921970219598865293449318163862973170534550750373946723149267876726663227142661552328173789677609810601547848213399175099826029419171430480162593398038727454256610694564290268466737118477469178030167383108306703458943039460221898514437012047470503447812140508968403966743938832801710442953328527477061137555294144542532509655515388022824047298676456970198513050845475049023320887382443527027085394713459163813553367737586840090735308374173059213503952785174555175776405461122444008563287532339092531392087226768611823124519223542598804314132570853037186313507519065109745807707728672431736611889602777668729640706190973110930671933600002124421873675855075421445059634996417942551945037482945522927416972680509460124163079013042470818713387619529080022674247227012223665850670430038919516888027005217296359523288845569101379240313035640250213991324709179212524301716037728008641864025506685420298457608785775948543804432559772828282717622582421690343034075409111678921190479169043072966666820496313780274325122795758701959880228568165630413558781733600246198740874914423154621671674439618458362254030802877771626548211412054543318631528863869808602223445197973515060409528990300883002904692661808087677223703034752318273384643298757038598695455025856973308450240784253643559094578986836864054761353022004037914114948851461463466348145263509883982156392177676675630000679347996758922702594000548155622363353057589485986068274595093525113485242898310817843246382254443462288626784898424244829039668505487235412584237608644837782184718127793611619404907782641791907120253241200701245046159924363282062442407138541509636708948645956958861669043612094442262836755620002344299170897443686687947298734951662385569356971103033068559700610825672489323696352099987806241855134043128191403423240765787284339607600865975321536441855683505090313515923894482485190476380267082759331117861246031515380081910223996616506575423332775678358488421261621052673134510240939830742178233491611943036216449284732134975331577750544066960489832366308372800960024001843808821733151270935669840720528198818927422019024677222024724147703948730545229052318449509305535182562462822405625998136175445631515927253869730024762981710868985295809448236057862223444922548752728752402261513692113675576633861064253135714776679223953921142736512109167487265073074454414371811215223725081168276248444781572014203135358850672115140379712272605372529333751354779468758588442779474242636304268488742219253640613815116976345981597229330984228023191358328207329429811320121945073031106793005764524110260979261972962895217788228216726421743027054909853326168735977224013752891366281036665136314839236311262318757417569467420376615051343993437589272021307136070543829750230725249805377485606610558846945655468927695262753061942270201435714070193369494237147888805292479586312228301446612912369383213840641111408848578383425786551004814127668371672023013375977585419627479347193623835582981424243981445423895862396789090604631441039686261217791490551724246410607179536437563887364444740902579028430706062466265016231928496139489761702467821117262378929594233905942393447834832367899666857637646490088131576229364573982246243692804767900765718367987011175884704008816079956358052942098546679863380461666612681787566566782844688211477258725333997510692694663980991728254723611291956434586463908486743411767528158157014635034438647830410385524100710114260837408878682304747827397325028683823851441082506477866978516768981056601204787866199398390626776323658870965010450755263431904312909152776023092850504880691681578477180184502639623922433599792325675305730092444330963143536636843431109853726731119645345629640387518525008825579406926032713682525759747805772381758764873422523924616016747726957935211292455755918072043980948770884804349078347322461243469342752518118601943973155528918338919347802204422041781311194588243310312225016766263300433657047687831945447675340979877285049709260654138160103261402840094679201335871254894034308428005414623356426550006348753265272593319045996014481393855396932957222018866682941287947199194258372844942640630480523222185403851514507809833157450924226781429953685054643196512573061271583182883731662312266319228900673172537718321775350129742984302028944772874276218684519671395538605919529606386186550631806172927302676761800065523356410959621844002980105147564780529849428557569549174995900606632120155832681013752037370924808171668184213943274764076874160218751861300389435380470443342678271654484102125646604950250482580063460308623405372670389374840794336670306642164997038501690007430018215620167112802850329680459831498951213902916733772176462439508277280801515143390809748108152343924699501760364622841089831930514803095101778030304687679393367610617839947938423803792437596255836965205331210173110676768657626453232324184772010633519398859398330056912463592218050199270940446937567395621813141087097842395129228567155261117642810711512217487373360035943106759056804310265559940218800771606238324282310611256669572599712320648613094698615734681703175959329130001210450880007303293370458998254506354002755487329784808600689440418467084820529686934517392726571655495982277718524068845692414986354968946990189416374503328812577316361719118370145492920128306297966537193539197641864956760040487606317189065318071861184372957726316969644641652609441155987768199613738571526867621203238034324005982411688635412135895343096055940519180416348992878707383070410191746057753233183565666049243703207497532631929371736599823425151118594519442018360577873189284543299183762779195072278023160190994702790174533284925219289838170550315368596862130866054809145414543160736325521111604801424098771849757767590985717439250838561375114912037443399074109911587296872508069103493964650207921378280525864217649483253139889134193834463661404771323384547362803597743721582818195087814262257457931979684330789977088712489063109322541777705792408843083278092459199972256986371181719528814232992279071472630125332778180349646525858949088097618314391271109373591757020071088767358225104076535311684474345043961551731327496295498076451037614455790706054708881523285940517815686451306291239617318441082481338153483371079609656378398096343669515478186947986093269212221539023015806937817589910402682353109669316255641892546235062171764576905139393428572680246350690011627067341774121099546397610421631120071255749138375501234957809412350457484897639910555245348017695817464828402980871483512252095512072452835176600342574774943906005295356766610871243510948063715805010327020911315942732452730062211594262553216886872832774517112449100779942859004978527292070188132285134087760344761159908070893530762948108734551138983363857038407574031972323136703934676036762857112525226053935000631415125258212725793289118126607913362421493416991486690593762702754649169277230113145650161366529364480906697934610678153009804430337600224797013659549706853643885963655353608432771701370370357895946759634825084340879252328651319498433367452252255761866432006266317915607323175284014170010208100646573213019228607350656944119126541203953644471137227320794174578621131876786623972088209601999119108751767428205597458749114617990873337376384535460549726751017536596239768574663007185460382602455129311762129161146599901878064400781440822270112991537221071707231476242399447562395916165134915956327036096588808634795307851437887741631444258262313356563425047442916781324695998433290976852247274653223023786102576468274716429301266732447979247322869375915205921601560598252974089363417502969502052469370562751484035704918497764312272308991515392257988744639918510231085051772508837648653500855088701318196460064433390141506268446018300819460330252085656630928577255630053062295792364823555265933245931401459202557786297686597025392394621339117820636590658418317576651051610294500459668636811826557789002550192964894410587053369768714195450228430801823703629912257435324571273059150470332555853440247162935774405016963057464168647105837697165723200129524959595514965378245328789094484755501120431067027436976749637651046173048043297266194717730552557219295874460138552022425487644935191211127239658872871498066519108381785215403485457102881647466362459208371045771124641631774877543761096591695590561415376091122543099132160145689823051987334678907890275524077981970061639434611878704031446447584155587327843222934529095836055872205211686191786716071323647825342832144442010988538736302187430078896644994391024250486020879008479903430276761656758961091184496008184836097407217098810297855932345493751930312272766968113941839979995480844754936260076984726531692049398106360734071812553123565569467913801929384185472908913997142843091720924506266947773604626217768879699852540565885498637046910206165283636381541895184227237517652561785083627960681055924739800962504825955183616790298102689216926762369015414692102002556031168906398970576379043911439328661144930993109765753128881035941370603314643576678178458527598467342497875901397814243171093062662189245942025472944680983239392398078872609515082373490685568627309621558014113277723026306426294955614250559478101776846355024220216781018349098544960321472993510404739256328230701402005192711971664181173294445689162510247008280163293723537044666832834593988074506041509933975789635813150073137326315100691855405239415347627927258321406865342768114742326481119066230119889792962715654091963580704870147801899645563002902970373842858311030423020442671039499973608730875184339003533770947977325148895211333638719126788839030326136094250726663599135826208583530564179523510835643557306270587255158112201451413077293930900448396966979431030764085872914082832924928308468705404350914540639660138844568135632524044203838551980342652073704393002173906682789990094406672428078573243856987392771063371387569024087114316058241475227566097644809946327610328923896053766535041197321661869154866490895399867648809132888541915734491139170205091282916621475175756935989141137185959460131529826355092043372623852119860743625115567926106680195729502367092008091961163334435481744479920297193494462832790465626867762112427688154785990456000465950760267495326379015294918467259471198477649763701332186332375560939768602875181990062076853043984919985529508073652345693589652636185815004447264522187683582163988346692238317922700822574036878177244853056603349553995006541687435702628830859788876646368345806125984500711072855570746675771526098500225059654524814468696617752957071619220674185402789849797559459825248673621540979921827949742168359790819274977237559732089821880164534073883519385670466262870376273420540535806227117748712412303245543418276231907312686601392990465972530551325535276206430068687918945287894046337966836116044556233820456931921151805168166920185884706497105708875427568176486568730980103159064128218915882031442297042500015038280766857213253727835854828154495781668723218107337934538682359139112601803283995273278260293935682053018953897241665324873129876903929223609244521337771552689050170072932684572692870604908023257386862675358413613277271280119448518498490919745292136751172294981378672815486789786826684698175847102980645028567244280632444919995094397471995928035803596500984169185609251885295326538799162539914539081093998846652153915485576770734499527840022194948743157682748713531881037959050661297845892083615062796114276275249999577432892193841175761779941739998856526811102080841660830224393810243046313317488084589919545536863270760114611176469243189620196638396178174541088343395257225739247198209961245443247522065066577581096767155365744717765931168664351945630428178986178294819541863168380386504706990309677897668566919654950621262866412599663351242073934896393767778804680229769465545762438308348887432970747359156200949658994991735911999388413186570625303128142514162280469773420860843407902883499601087324242546651990924230402203712601016725740969580587849901760907975072190566036197644876524616563129365938145649552699161489525505640688956420007449536324485251785913865622251892626164603174416022446301900731945692682114904391187479520114688143270942738555687378671314936112597288717080267849166499990143906370652978882649472658599200611509364581376864236377265178588061591732794944808949763775939498553888672741959175806249309709751773002818421677661085953109115439415594873237149950678850890215489674730356591263454549097353448780827093358118941444148954759833556542407895348270482757019340467214732475481524931957854782027765531528566889180396669987565754619110363261421445464993071600421145114917687218982331307722916513166658602539313223752290832912577075790876284202285777768445814370665888014556700555865864213035065828768679284037754581804615468040317286787559168889327032804697004400450428404258743116746166498258678767578919098032994651646291154703070658635363933851956843470290112901046522051056400649799471104576074297294763162672339433415511343095105613494249588461531082498126835683618173124589505784835751735255780468217341664152042840144148875524131613586606259294741210476630065513807378243402760260346635588114862547627744465181488161004710872808103424348316072321811235011010733269276031881998138784632776608889154071741237305633814365060385614590974924207962890006693867091495700216702107290182929689301009795543396501089969351779266599155164838526432139866011291436279910319166515951208444969553150153535204597669244681400937699485105367582999689324571421588893400970900643647408940406109219507408239459755690345039260854042452474131208028752748414984279156122732176191465650776038931529144088056103598909353719825808594089705402633756146964154641344608662694372494276941948965852618789719063332456498806414139457303638567261100508554637141328820561780459438931864087198395170546478582899826103394396259058235895107488129450065494859738890361778029805389995239145104594566413138924136269739132981555991686408677600579592332104954433079239017801499149059882329695738921647136911333452348148925370191923818331915370347617675756689679759341940735758845419456255543995433555280495524327177716153114598646023057463519205924728245466288580020417088060224889615651414989175834759183491916424868251025341854476493755351221737498539811437439573328822420485944502762791792789988835334780527387814911805769929510222005484071755451431559990378792726265253403500169632983365900266256054050458440817669933658442260424264400488969888927691632356065655050139137902263488023473802395093679094086783457707124417852833618254676357062840297507999376227670174650381189568972256425392266807963952564573452423346703597540763373127132170191825229877925763913542916294033943905957370245661237813005180454904466047883101106566668796001407038769495284677042631559490107530536626297010975531753447447032325146003745393954877202306318786047243509073251439057286100093930030033662740017479361719899937426996808447596779659874029431145153957827570377947236961944494718846529086841096523639140644346837454285968760322112333000510768754221234027218994142467202890442657973795511833860114102681689566991622539957328851288732558290040002908958303065345585511644745716823797224123634243722100374959784424743959459200487116947409446636535601821445229071869323823033822162134426211655721076575981809968853415586961288290656712104501485580914539999663759317536023263229176062863077517966594605275978520829494438998740456450680843610216746041051506881334510546570009706747989561628516037102588252800322845672186175605175273264265618738466021350276115885325377495620008512966224910472885283805387857214836145899273682171259837355236617859420490913619856610374626074906995405910695879852410954485916904779051505634066756879940458265207524502110697314577852955380106763455783707098369708820698491386260105716158761081656481615196300890815111582580229176473769193264966750071470799317322552632219338873093459165082194349419468315166952412131854605761807774961472166374045290070597446664711057712733155638189106677631008578154735939813830923772466903833285611100411047123768782901136411184902601950482329091176143120781217315835281722675925956750588688829478954886530349001418541001270354494248245224112929201642241173784942562641301843319262013161605967741588639147298972280976149074525651428729696817620018634930269710179558813855976908976670485135916506019719201003917608963152013944391859178565845613557487556961548527574473846851320446011079192048927139940570531642695290032200348867589733440590011398754992927499044533813859923687630327262766994458204299634507112758972529397387505961790086808467873572786643325317090653725467980485994421058953616947564859428324317379558782466124497268119681847307245619025204351818516600098461687054570598498311807491794214927218203359751607436160399402180175200824346977156213692389950924427460377010749156580684720938437022497143532660276274447985102804649647900480607419519470151515804388339104944019956585727143472824735515174072939265835293246457102451454896276209989508808081353462144329703607031812028292985641770859261666948468181908987994300277759593085834160181067274790341505120950831204442991591226991577180069343704609570125135190081799504436024183372811644436641321948655931167998192696739965926130220384250041942987490701732923406362618289656147641935792535934206956298533590346960311905868955617544021463197849373493193480833432773205972359182408867983636093052010293795290121915711123994215975551178542942432662070554139350496664055585573510617235866622570698807598774259206646289378916273106564236138029649610380018220664739971575262556632869428966398707911210918774269061673522853564832624173001380907892175300658376291152178763056900431477580766392712616380114966346773209851934201429678178600115072789090075455382685346067568079989122511168249579800708037436328153611379057028751214075724931961760722954980418963477425590175863450187155937769850657223592660753155487159367530418518282349831261881252269779254120875465504962701561762895148133761277312419196190127110661710968327440976560050876868895832767442830995461140478944903032480390015950462021633717098232130946104443144738015190240612610666029985685158873380428027575494160389485722509600025419760061201593570993322825414069552681839067084740088348642678120829203068332566751360953376538474369652640755809776420257092675041633397652778591366316767303587542923393057874703098247148131650795380663829998135989089562951134642339452053419127943678833603162847231956239294359992024723121362859044554452759000596743597829339710837289799920099926489005568387771175133431076182684157368670709959168796812731529597598044572019433624203725962932007719630163863359203756119974375352322039186383472090921329582352895340817120143252976501868864107989580961560579535631056717927126601156368145259752532944410013161171740250975307599711269197900514102662507970769666483460062081974566543071860317328315130241761466695011741288248039586658325157127324007518273307678495527365071029732735853825543350248270707110548462648210072311152734753651459819849488685381919121423528123376086088514933735569977065906046193332671206552079960995000404978491250606838745211791820481881531334045691404387294387527866048558372858646747175841122313725010474915482069888031828032112012592351031931792699267478372195243837039509969293630442754156885990649087047558832892960087152755866907056683678103871659929389745309345936066993762175492353030701645859562847247680598999284829392480623296263521972245238403652386037856466151952938145908798943150351089858509976242257174165132482452923855093056603124722405991020837972249102509618036336302540356372342488238113545368890142171536732155567485808042002718327109650407945500076163828072808033287810760278822617563172205757007503575851461841608222607176432559113509531502050441710491500254765086624782975167074439734169381064799497135045184515388716761751229284539812310380444097925660838582953161593172187797495245413045254449405826308138724087165988344984381307240899306595289857672865872353944305724502475376170844343564387591726469914462737775043028623488830638915219324798526689705868438563892375546900618086634052271809974708968977475524048095228153930964633240835182428193049518527637726271876058591281471309551754492600875403207545574628037057107019282315540214538570674923011968401470779265716064601178970946037652403785411889902198073026220729572680369088023534387900513111268222206229213782385964287834717780739212788277514292211244171484944842415868257310028509327469372986395588962166887402423630014203022777712192326439998858178307954541022702914978316728743179145981151119329235369536709624832631214209876604810545503432375881976614295248709775025367855539525088414468990098390759756686295995576711917919227013401782492579819903043517572904606151816689574633601683135067621982897943235964338455075257715272724211049153660829970818567234942356587536241391069991584375251076825676810297511256121140669405722602183124838602790430196175399926955484911827324487447174878224505401164471533962864849064275921399895755714299376337797749063010135003344736874173225164198393858393107912970513399093631833232826391406990110878030321447275758674819528139050223123292608480909048997777049192087642262002342112537934693061292081192070302921106374267517815853953357292402376962432503434389022859128836138023412104577290847565498069206978629905957684733705831648853372805221789109675037241137828844227959977937934236672743562709217472762867622334673500279178250331859505477177668757697358227426043438121165934044490874917867324004231024172385964527982788000227825260395189511393756217406035284571822066535208404198924767951663445016211607986641604861562384821205701112040754765441851096424816708457598016912680308322776174594593170132749314488732066144296625261203240770478962306525271898998572204607526534641846679977818844194999187042521708498314962770251163549796591766382081962216983895606028752100762376361808666229385666666804384351978574254359896821103291059938613082159682747070685191677841301319526687962274452160453438859303565207675335495511301943660471295402116705837962918132806134037368570361534669993077914705866056186491765884281719529476619354892290126912849921742325155353934539938775071879235015524965137643098338122482816963925900975655850397465093594794756722627924102409316162421115311894408017652264039248697341356115716118745380887331461147687422477106537157229813636751550650495866801955098644795195786362781836043543458014679245241166404478500665988551128886051514942716531599760660640087843072971969394123294769339893969760159093939300680533063757330013668030954359509481393990656489734718663507808927133246190908129158170005542555454662276123813377704380838903271411548925318040026390136095267252651350637199349414833153848923839102818107650612703218901849028800490771024699506477106312781933743697415363720400090465276399203454178309394181488298796331033545398768159226677703211308486753779129401150046457381187804759831089569772568440462438532646745815618864104863314277583042405564072375586304711499408018605776229153428986599127070671894292929801806432823970513222005144947779972397217359251452596858599642104530451630944267998732059240565123093158617895685090776298765610497554069019092392638138219453873213096883834198342010713277569317714083558815535657800342511674238353203031213114007900676820447123061627232301487917815179684259467821644331669806566518076594632778269892063537686810940164435152556023154775942845498396432953237543483380883507453104322275159988691952035575792123241659004942334363174311131693291691880043261230758484481459832386347896870634218581143698555948096538165437426986582694022820543335324654178039255689730270562027158564056499733218920074879779198425620752059070741059481459513122109593059303621804364046158095082661456213290124033128896638571713066381631148556284067200906279209210298391250727438096656634799506839103723427247988761212767686669596108227929525443147412167793381006675375002658459431865513222433854271469313980295039015323026843546217708339933009218837159404157182635566694043369020128358909324404279846328398691302173747927329653179442728335856912694307375868663727005695345429442353698796375258044077151097368363269082319129211966580047079622350647504227945137116226602965171574424322940905078129863693788475210465782283997606242149637772584602954532352628105503799043323493477773646775299908960285741973935740396661653151921648695160846567637195771577260217625727383259798616875683602692550896591259470770797046846528009647643253869908846447311425382350113356624669183732047082304222076889180080528670229363483781656477850971256278182590979000063426675508510172627333523817417754990104685820971803732369840169281507072519672052156993262408834173361699745905302520028618328814989818030874926128149250402523355473729346773090976488867273289923338138510166655930635173868656909553978900708773371178971032470703754712440124171483193394023771164754090892013827022567082446380111404883811135849178569287667028628918500081874231116934692519438938422601343977276844612016288321508730986368977544739883755738664676112628786587097923818454086608436087786037379056640878131459933551447002727316683915685873441648817885747716833505232068013381515459419464075173402231990359284123083396705399256892144889799341539211861219007893066741726482921562923601681094729721926564803388700034746355613251713603175385793886947000902890398127619425241404359866041545911290212606698267446411110653265945777061891124472486670689408053547992506923024858615577036454732505608486644545353788695801789052485463767289103260761112101471602834703406296721759503590776849990104327569574318367074229579634908394757301020913466186600485655341046232347130907789850634082911777881942365266426790676690189885241656480624374640616731814108980765755215397173025225272733987586542113885101074369941146754065508147243898286018619801092142461390688857529891172852353124196665556918266853677261534141456442261669837629712527703053464778059988565182824454141508354426321482483644231246564066177204846651939820195193065138154549306452463124139250754694264075704177639158800148049757754835928236287788560602363593743983712724674927399199177584135496771812562979489322518916488135190295645120967971209357158468584491229994520469038917176212473631726041445265338073401791369415358078328077961901085372616981683492655895048621245494651332788296794495734891677104704232660002429749211447910516255785616445383004858745935496404916175437452344357225787409269628683899428366069175651331756662089694096358429455870177108218688079047967658352036239907086051579393829394905592179065041781035761929179741140659504497267764076304115409490504317234816290088005704123863119937871566655440124000642032063543705034561053712595303745819522985701710825297197135791718073434410289036908914136118506525611789423418041894575370821000896540871937644673515020669409281273263560051904308373957209485419568710171635270899190460453513619549753596928524274555886769078946590004780749151594023512887501077802328893885173711792228458374964255971834285751501200465202184283166050761115006990855124265862726303474967844037529621895636905845937607997715851581675561800073163632175814733226745742330866860359171977167423531268341324267016998153866165518642982570597103006828913164324139393624330108486690337022663228541289734973157488622122355326691678921710763758671167155841763563636071186540212376027449854938476285873256435120237345308211586939947195491187317541061365989099316595885952002390332818775869001598927944378019200426155681500924132089733533555862516069147976818900248770175291035779761853326516524889753097322602319796417419135467364910304881994407053088776853870761458008105901940644592434468719777600788845543388829426738349530120127499186923580192673840858825754508222044211363496688400036013611083221569038852704391608512597615523936525341266116172966384434440567163528469937434385006432575372780118203632601555669555490438184993549561835943081447438373480768778796798923040149871416506798672996695115995343822654485694848272630807712382748647001024947426205309839407812414694705738475887322579458898338889591064626116913806918260045625636453863431680457155666127103889106550168991467211284728559877127175838585087138306953588441010771325952918045440251720736862887880200054103292706310201082192812348624633560897256755250343654763157456553510956070787296814746357106543808823043341198245792778103554634876881869141907479483110904863539996461804563144070525096458601801644262760088116383930209041672203409684687492960286794535234631315460208110788322663116930939919819456927171605324971257532346964703091155894476747493756016134444836202048339659845080803346668470304750221091798445539182172893311974238371225121945381429923310936141933469437388770816558566161164362999093800356597624986620857770245121865992362970641173569994548370195720071149737121525992533444840799126726193089401013026031604304024075105030930350363987399579413554630950782113503470792572188762237547794115524431867866029913752892146378215807808214247178267925495221534773129293296289499034748926339684181062646183818773100734994556908387303995323313261857918567109419137171631703894227676299988109648399388609737148577150442776116381992205908677544840009106230062810657578568150664848209689691629315445744543753136801798204191787616039377908737645820565122205535375015916334242437856722800765135577808640135286721418546031818687587188502865484984531550354402666686884886555412961431747129158537756263284933624591318006577233148432827215816367099291776396606460473412341459072113110674852307962091253460776539751605573488920928376368917859691591157164464633335614976211559378050498830635908008852923988379065012608685280723727381382800580062106701582512232547607697335932135950736295878246911999130194145913274293978278214857377160638295509625657099342397994818602210518587897598241876056597447744081591808977731243575147748951416134203477037040331093701072686741740391364071382448436617639921480516179333791078393781129293560431018414063922807488675656553402549619993556562147667859552734219316648797716981684908155452146861173277548337472191749129743777440703244893071456209634973798217806539367981448727906036657013584220194054607766159359145363525628426260010740389574669779036256341125437104899857917878959103836823123605543324312450822229229134357115727880735857814940796384762548830890371188456663733576698813783294659559634306270571420027600742089790799319198160291311360568128103379081288271775734827489609821834502491048849655148017643059580676798481056525871202916964593964119021430582349396607237632415154953782344005715323141377957563798748760389329387945057696477260500977461486706911625954841857768266857970555810001717218340140526198746460590773209213447301418747132904866608576284661690739727756770200365124974824608814613797995122059869768008382343956240986101644903548667464468775195630880952120997805953625298812386649022461961225330139017378554943345087597381948164110497946699838503450993333422038352999760437858960406588334376982568236212931384302068535521417711569159800439455153662044767080575581615593417195226801816957982333717666901858331659622343128789016769057679750881395288064084095299433211514682329128022538730786078010066060861066391184496439664082231192609607094069259469957890885699409983362451925619719282857729470868207712958226812187065143111485405357968255947082148111120347138593557382160395868428508416872705001129508008393194092074178708116779105820973981002447318471494335287485774949306945306660922331187230048505178304131447490410507038868546582789379190900801048511489753921383094905238911633488052442363512439654945912230941639024758381572904018825782000201770032600859470959191530055937741199867782182148835887628862614724548739501379692915355282512391661131181708107819451710209923962387070513162602982236898843915456074818985573912925428422441425401814443640672675879439241752390305824126644170083328283897046390648960965928514485235541566148965363277341961293346324515556821586978810989859226628812792910287619108476080466637125602648566464731043851971741640467030648018373946238916635896537063208395568508051119960464582394338132911717124984332826346488279450431373926330783020932806895299309003412383236565625262796192712567963963428526556384873110334917255167140093490365366086370110762464455699684946020641548257427333959418274060447879000354229391699310978572116096547500200630783989513107063860769526923038601071685253525201013995014532480234173175668062239795550422640802739910983113187572929672024574744064160345052975907967969913192331618342698649678373802447858354715658323115270886435027176226912814942043249384137002993733607877455043135087657604924384294310046239013134684483298653765717903608522433704783495241600133169751852025028319443472244386440710928900162254706595793578169155722477169091762342741659760360494869731430972480711779894700937012471369966581702776017040900216071047566320606184160093879311981815327023279156463230074141949798203748977971599439553261516901513161122763601173478907422046710445788101889202119229526234644128128888698015596588177333857691295103278480677899146895931116421155422409482596020239404600517332963850946434822522420842665106165710828749272927774406877200582308986758267825425555334575035531218938617158618337245232034613855227374787278800789175048734132997815754239798145286470177849943775264273405820361943098656706386946126684542566095017439536112441227585441762404443874222182582693504787672418311983484661140011597406166008706495318207246401354078883309390079859843611716628820860019633270595820115006182125781382742824711737653245364403858903526623124679618573207499161799281131522512690502606444402993347310027995594303429392226854382028667034382376043475572322861914228932594258457311389169837508013409448878746874375143127866062088934441911504659757651552068234752913618561425333606543716634867405074577776357520064219070449522819321719858766248112616669000657659670180116627350190389496825623647052617601522093176730881613182707092408112845231602123099746677207241749076227277429851747123510075811806691975692260405407653351827218936579411162240594362418056959110798705972168061882869663488932291081391917881421493691327502303004564310237851446165320187561466834450229215293696472768093233119357418909439022266201672008420345050522404676261855183522175380605180917183434166690907671859274520872889810331270670580001911364737738957099278396528356582766786325415233666931659485253696802569592389709129061781075757638731846304379977390053858120711193233166721113643744234274938299072978239177079740799019075320310064896788390868262500680269278209638570174012516039333183444588525106370453562490719348088849166877121042756319157849907072389544453252685059743725860312882064189748176632329202547144878067476789623333488931944740736345345319933666645345033964815612856199638613446635179001936205082504522705159177498231422086507350443071561053611156900119027673936667765359940737890011189474572666682865485505688610191727127299570060970035999275922188185699433462522842066003276735854109925656073387833681543609816244003642606105367862295465050134770885870553029112929658903694105465234190338036406945231867343207539382163576710835671045129434188736010595510781333078135974232217000167139371659125042466702985621247800666280138618012772001896448470639212115324194462197625055572082641597842424092993508290436768937096204717235049707403473023518290190168752077627056893493117784801331721973024502979875740035712841877642930219298050507599761064835118214812676960105809985147156784791226140931549072808788017429444677225121648844843442249048892544243034911628734231681665020540294347908389059551338288661233562424109006420721358200300952021180283931110009963170747541661136011358112752676654522651270588126888812223170246707262644521877812688212547804545422092393794326601770112145356504376204313057916644559662697423720906586277697202719383068051143958710547652273950945545431805482184347132443491344026286533058666231038663601537897724405673917437234985436730362111624762927742405181393140825932805959387818004733969122162476865609535628750521570159407750816745017480586788931644785308796430528172894464198081893037372258005854892268972499873567082245014485893028689131583986448112773357958751594822177080750807705341670219945825954962672933261749322457484177485511219846036773805933703612779836453773115466152937197954037680914520998543812071832087084537849512504066639618415609332162993397817511590971459512312173219180181755507381747753708094525372893371062238562306834124079150740583186006478207034721501085700709862015689826484784777962295267680527697656417743477058714327963692794364451301262930994411051887819184179773980721798648650976886920782748436623776641330778057087629526324624048025929516170109566726900562153107459753924367553541533545913668185649484370227124456448390695600091993948694857678394204702200129419227115699371833992810965612094087891686323802780081129942317085989411486449763996460045706707117982905214302927822822403867267901790662048323679157390507914460290882986556941804445168865831460732904040963998464259004287829575648265865564604252786512190735812999878233137841712247760940410626225411149508585139475193199422342356776173253931433893678343416560390100695069609061149563988028731102276663402216570301835641108935783691642819683891219936092529247072599886895212898205033113394233888991434897618261525771220137561883461067969488620213741422397918726172959627448133950580093690678899615340597943830670731189668632478034496089468203905207159535502835726943366087151262603234584633530266173485155045814794567438229676369305048562614760198647460954375502542020523905172606908466938154173598085479660666937074449325787044451014273252254752214696298581760646188819403515260692767851690332942130729269460552941079149434245946612902652144282098919362185141176862917936995466613329894098011135927210950730873455205172927941955970958584433728297528418618091541682387598202542875259761432565150708607275070007107929928623427524336164452415640625613820800605818733819451729859437277355781169382305600650177090505491385899265544445027347377341094995483535076498576180618920344069014224175581124608316096264075221513800839975996435279235683324444566073424464039162978271020950912195428370824428729414220419292246778706901999950263269454865717275395309178423332708344813430365349815511343786656871777896455993498389098846321385155830145790743560658562803612218014096394928599702891233543157511043618318824050636826220587862458303822614495317584978474826566795745943054800197633356535845056165812973608993635837912200973059570693119270406828000741420304379253757907635623445079320621088238311504276943021545351424469991466136035064776808833956334323948308254020598780484550302747978523497027687038770141653174905057496099220469306761556074372587229071140775293134565741328773654975927212244774198067294730275336267691719021722866280149473750566551699149543661255888834472091008569388995028687298161299704243258098135859496290049459150633146600890337580810577300053052148816389978084714970909649761094174256238662568743672846207705092770724354278956794007024807456980522109406270354709721794311272664573289390028286090849451010487724715684904215135042735767549143222283056872296010113495539882042395412361680224457885777707767661311442829884781564197644296134690645131342448529417521307883026294693225274031032932142102514652372320563217133236904244079287133872222568437307164006602308831531440470324312330601967819568738488345412179574430179834908778992656032024620685021474595816340405887720960076975024571867167286005799440244558387060648489260891289098225415466507058549651217510295634213810360279171000609464044139787208069886309759469517104309581470946237529071110936858303857070604616061364160280003126540484730319088325756569089323495647839581608465288298535086564446862185752253038133409529834800428008703166646524888207701069880544897372981927597808266349482326820985922358013753144755446232155415635941943690699583626941811973680216221962602018404066673093520735227075798760415064826954109654688178836326523461964996525707936706944017010071632615425252827026485085827408505506864585451747632540763858710505539643948868358840476790704546009200289609202264175539443951638402314501855806766369588281612910870337978624832177149618055039856704198928211539168022593067090817582523082243835481008437521199829823021594969817127207012947400649442694886824453489713964597396016409103086350554981234425007974986607257165583644312605722775300099001394071807721476614114988215536612039691532534302348572461410981320250072583802445101470725923700808037890120402181878673213783391889758433258807331670207694252527174112382269506156660180880663088114448684316508433913859066829014660983774651458688144084528151000989471131636696301308397449290046138208058845452355784522228146563107518171492069989110392999666709891699784824535438359481276098079789811244060771464762998850683556624275968507392333243878174852902673585822915404264557664725428257924493888078892397585394879545463450132320306699115812875726623589853566426170507353004054726663065771368633556668574913476949252638922237850108557349389044474130992577674921195166138057233413823992535342543735911809137929804430090226287950896569154976789869665847406179846987407549095972953351026356915357347520020016610607106116075587399438924746276981368696048023262504690074679139781764201374346027680562906821329281866276647996807003098208934187351208094364001363328524793238106522372432543155717777647414648012399424727901169314642037334526962223799065890696471423787509500510185673808041323720122821907473104753645822702273110174924142079260674858314602405524107194075005414206632217502943432474205449719534663178154473435881600115944193764964802757228024750376774454865049985906643836671758499970942332129720419213902762931176551965951800806443570289625382620881290436337769648205318774704415644227402032437627271208979804822626501703333126508896902216907406920491839522907951166193129812037403985790716763820597614067999572067253071122328736154411542485734108334149142770651170984520130493783348631462566160081238078750628088368098636463936435292131958587979758083899566680183725625474489810989314186909610788546769397843366617427425662656207654309062723514200039728053352003613880611025034259659846840751617047991835879984625914991468344594271814257730025944917546621743149694665289984380421947088276675953605543216064692755199719372166149973724420489623547981428659076581721707670174626603861398289301452026592786493006560249314315572139390946959431441986562487999843395931378225491300647310664942991294077277109862396293044122345089196184137922607404223379642690743045269800093420667493552683596546202460147906526834942810078398611107644613817862316620013819915737954288344918693171670134180977453171890698970343220737712396615002151862135399981621520593778905360959899067221131901428229653240736438591683372940055866826203048796683021377797255665372459013160628171038469925835210526893854561307772308545858339348154486108849389675652589680128616480197653368878249490315761315123975905994809156830328496903320500886301210575305203905155796564990420184770462665818810737892588497386472481943636756666619255033963118422479771286713359173162778191673687582980160231684784241618510802712246189724473713442744080854076110937015222029745253950096198342055103696344813463161000348880482568027737851515030373682276609191987036160425509614629688971962575676080680668250176769792347440760297006187778474628726392391425538271111993579445292739689646837792549302965792304450303183080865310559845527741219604314921061482152920225643959087565608922302854122638381955745651296184211719560809447151280959125434573609310576741876654813212621227737251693662525019761655797701259475274878259737376579215464764483013770285852422522311270960239771324943291256630164714530621087743683160099173967966342164770965988756163780005160101587881781767707282513313334075931444783541961433106417828203688528058315391335009807793490944848312738743381584158641156546861960033563346353669738984250259582600348417237644639688006996102383494554539649172866360069711518332667876696194684868197364710826844986127972240621478751808447980121781744988190334169645492331647298143593696958365279463217699037045168448323839578164995715781580885173630023601146509819512072361343778923626826633276065903340173159552105638578682248798125619815413324958414211256146725872951408796268186863206296504891965194310323681258510730251352222419889399521658525135255406219914579580795612262367034937711705241273539552243026215597833496451759509235768638411205092387138492974991421970658906086449707187172569311747627316240882548740022659869133148591665825633703144039346176599474761248771669465503089719701470533396899162419643137693584276341435348457323345905614451581883212285135116692925135462223719293067317336481635133008383712336072127268714301868083358804871828313616007890727211775951632467124347456645672148123149127752837700499420008962860120058028010903685199389182678686723007141430841559251692719729959354432536872303463427821618304237768976021691302568170245092843666430216239139119127326612681197751264259783353250000699203053902797944792072793179447048422465046913819096237062993189443478183704073065335260614987841639841872857316969239357919185636087097288711923307676122744763744576311109957020118660823630914291108369712311571858811290250997437640473002682248239609348779242605282642825560370747552787230060175480300137231793420438422977063930851030557263923442172807315535416829235112782760357250286729680172418078314684525406135143926200401580035674769295501937792646694075122659249326187401478044741284021013122963161638564899540611916211677052092713164702651886058822464397369390468368967455687079660562841352534285259189112146487998044850199797034360928468679961235334183692866825870650664389523210189904301813344213894517769784387238144867601321330498781296971669296905657997922220823549744964895562843921411597737931748351164325207252545858093511716698209313254797918532650890001757086141023920397251862830616401376610996415701703899125325822453681678177446687993383019099483473868193884814073622570130405649891983894440004387099417237153007283809997534564800701667215548550740966537030734101785896303824854532583234339309361650585163944949456986148608809159739391594595144775658452858444588671743237216352842136209464214002409654626928629563707986754272490391043644841259413731293923899361663133051053380537700705303529938347541399448750485272937548774462745186272030796329664475843683903245536002832422440557266643779090849908393157420148730716712804507868915536356286017288837166141014523902455407508770158101762313260883653487849166303983892789649955792498611559766623788399911101060172174545215759102740697780088650915720681452236810877669512128215567487680165917913940487437875971961205044258841779739494063085346186850256482945916562976369741403900473910720772631344883881166433873866130684915679921092888787226778909423769109203119788176286982233454762149512670051225989486004355800590005029405980563948082198204442240055576195105565823872579324281248767362068119607395174841853530443622350084551387104752468595595075984509043512983246178724061857430626382127026939563504395203522611168841686168470633971864902633965825656081622510142825896817999705080748618956469484548370430655277025501170115618296352145704941977117283545617471502681252110413592511272863397093932057027949736199480184096501768790048499673906618119410431991015973525782860981871347883236626812345153651115589765559463527818314148361714009044925330423527528240896444810210089426414332573973596998033337645474973920567956467799479119929047949938130805515194886453531786135424694217780630141244423212648356030220230432908500378813323103629165244395487001455340407534571908625925157119995278494224405587975501247525216427575125957907768732643799757383473925057501238583980221051296413743827764832517154636855447763006380375357209669911508164475115972354502623838807905750698758577971971790348484686556978661905543985280480457263009295377358729840916015837615630400538643394479733748516819589498836060144858168095885764550097415745428065274866074346358416926977820531190582462019706242966885609848561762810883793102813781272999432161317840044308891710380596059914984447390164112958119055558117517040730855277461637382016418144115646405924956957656774680487728611924502974971492273955558403450700651715668922642225863901086012517911778492308691188010092140155816920396103652220190337784968728856975717731441974816135707808674072433420305573101835694607118120071020171646534139162185084376586736939671358757373352191255041387905565440510060302579642879836924707574906668808350785727343415254752990135636141392603647137201075910999734844296584095210599547467423399540904567188297405477111383004952013574332286621974800033900447770388288740982274942129976017672565091660228480129936154925245429176436049403200373949029009206322007667553328704726721667351960346067282932442118752501095310671848591820439479950172674205171725456781506367284389113498468158628880300331254613814331480198306323709379378475745892181875660939866228691487314212958288424512575026747040212165087967614045901977979525139133134293547318233716375760752018777194784865216364702038797476199140795658113316534007565551015870048751336776981922304614291366701335832326716698928124520732075526844888676969217699545506828573411623039207082689411531665242927037331360400246608968966388629507770614863031749950314480467614871098309701601554734097316704252726521707151122723647819328176053132435607125150258467302140586719997527622297595978001020768717830566224008041348946688804428204905840924971866443637882833472449597666173799502544139252654262940425349138636326234996044543370621906503256380367336500608307282289666800206352251475097287019732216435385070239612278565994570747006988235248231558654119051220230395702617288183591274099187337152852226173647921085701908259428947517241503743277154558384841232374778433998278179812392884015056924886569413388999369854040615449935951833188486856223778335480016512423048692358225272426679207797147809074114488311761649070621190554659020289136455790030161971225372120065533737317530917604583697033507180742264948767167303424071578972016448819739240103683456927273219737553059662338311988266609732635306975732727038919189130251696299262195135310539471925584883893330422971797477659014650554019168605411186516901818477598350158449012019884513348901863626601751792080049876610531691393412425672550550260326133150974690339927490322064082601701375240799618813795821434734442497750116788762538334493138885304610569317222080435165951604713249357288255808108134072989159051275261532526571610503617515321575611286606194438216410011365332323563556210630615827201390870116485667438031958663043665332191258966719610689557887338828887429847239664656249912808711105158874761629056280594864790226359657982797807591976048612253814110775814093232007654591480727780976060753171689905179518761477777269443522818769709716485589928667830732142237055952019730275054730351597990491962572985117090046472087374008482236167463751142960293994212585582407037200977310038199497038005014122109489850869769651442106457627672532450372393507337144729601637692268571127179536273081364265462298215024886178885431413383041261956416338861834086711466421166322002397420248134229430798200354348544281566141079073053811042947698077361897305521044066279575421590373644061609636995960779298211628612745215510443058394982773234236697540327513303423771731768523256917518619100551355664159540714264378841102063662088763660048900358104342903823231680640868328953898759035098702110034023441581068527726200384927825989339766934912166888582535990381468792017467710053298403230212031221650195003525755219488918164060923613720572103538368826400108175669529470165042412894156263461605734738027634256116807040353510207923054587420180027713616982779749871702813111097162501374052131028778072973123177116553562259871767484380105682086833288439746290845971096594817104816363243207126580313611869576424812484031520981290198844049982259517843366152256764823501908712435964397009626570922852266430476055739153281219345096595239014634839361927086873510210212734909042556291218034648691182362725699715000377192050313718117463717788894891116568971924868290365457803726982862463156577731239263793173021507463580591359773979946054755296330896203798296058777869194203088786553093212489614592837872715531454761899844404316835094017571155339279487317157281010265426271411248519357039590766492163899444276616203902852272770290515976493920343368344621927045324472588384275637649876218455834203875138742484813783709205579080482494102410893693614150484720302579681865474463992608247309031338387579053958921917104572231225036538268420421825234700610556883181097284101843761782595495310779860918194566360121854635769826311785547943763881919744582709611225290060180842831524386741436819970441914495935845187793919479545695894430796091164153811929712144143480667504843964389194718205779729751526729267922810269216375531594903888785731425366323610753546206543719233933488978053583777340970761512212038980591742684430672430323366570296513899315152237323338084483220170085733232609802701698027735503622159115976586187216682267360204696877036341548654314426809638516109994084758024659878312485512225594187613123059332312213305571887073360045967498440848344951821425098875781735929117891597236017607321977016578517330048981124208791566827115576623455098814572160235741638057222735867859658299660803164871366326307460210210621509435671135318640696717922004031801788225595799841745759610761684455876719489774983898009044407837097974675999724506839686047186757987016992561545964997594433692972556029344899500229411670487262603682578443331391300560031498092083861965904265881184039114554720213533531066014034795113423018733928689496636557781195967641875854460088335238689765891418563027451553363388075722692132495499780435669562889846078071128844102193780444761325858179118707320896443027405340424162329186565403641989383602330672065514602079428768217973103201634266014054778162020545300386079541747333260052797503025722104643783928308957643185717368236430572247109044836254140794210473601758120737506875059793192899804961599736824983753409631760999377121982562343080437012451828074981245067055347684313978092962760507673197756405932859303877526756903546198227604575915531717827476694322038619290745545677703433237249136861227186286313809662298267022088273876797924617113248272384564925486123934539414309505578728397751591179664436589015246489267733174508349777781656433710258912718359278042175230192933942842691469917627554034952013283467822633338107695884633050310153416840759796710948155968797695263190452655792238770107653820109343029677476609339929032398749434561553318733651682778714525143081468451405423455786150664962119566091797126251037089806426100466464101842797074891348211635956736083624818212925478428392967138603570782813956146189544341252481853463617387857516196484263347280116022506312389445578589065650482114035358762646701125870797313460577577170651265954141897513212880205012664889975255641284388452363280812839386859314547183401421161412550884594695823628949871407533588102367127370760926472483145525874267385450554917826995344677119592894417342498124468714092345682380447852945954174995566765337934108719899431392456282170180154561863439221682377624107822403771479317554838713208589867115985022537642489857448870555457986489463052353397955582958835872777817975371631057024958511566856405433961667916756914183955154037090925726257926940780198720397881828267230547558176275179879734424795638367610902938307073413195844261389297607319862297775286066779510099863059169690400679351994080790689223807297786555462321266634710973803519398073831183377692678449821947744773521503072445096176933174854700077929197409944537030588499659628658458406128026714332421204069236305788907631399312476417825799081047306369941796694530234240822355405215553478416294120831744026594761080502452004876758151659841387236510911811714032370651365494220823124944920181408800678304606863485138823600043959708787324247979214834852682856493896832411924755813398817436608495314909556193531461478219346764327489611970800886373700489551611006444978687584549866673683499154174756314922782771097718316284645057069089407171275130149127750602908670990635078369737848601227940483528601911145605389375437321710452678838982615376249031259112635849627869270286488555385745005241871920405672277731011306872796976396719742719153977571871426327525276293899555815192381970410054704062947986865223659904517734794092048687265360535354233334720555795309182847495300547675739811398794702158847486147107468346876859101504840968774579894445518318230903917818003707186175311300104822757765787886678044709305832383686590015368400573845891485424449710969438729584959872859601180201353613040570532545261000914130086278919737096542164435780829332909889421630903341115517569188141032189937256926398019561154732988642668189478878690717336003456313407002336657580001991408469557876371245472581114051027888046136899352599342002888317641406873087470161769673335265714629490599647489728569092363226989997487640893512519168622057360314536725154495812369383179192667271618585368878794730429216843971677586269325495316183183811100072604938534770354282888078292056772358682368287522297484507165102461821590870229370653833239385634848507989462691130181505024020136269735365222843734507860932912536113114078071888083003241185876300370630618022752191468544196004519857466906055151553149590565670869252165437558447186715809633520553673596594585422043186269991108288533616337295885482571127757327236484802029866131922575813765353691249991177765249396469167522662855512194286718555825340995568507528091629280888328505888843573209566736509869918055852478701786956139925996545903619503440355118089468177897478500029250245615993480290180389079098146805979306445788971255933156810434406006484254309272320462166088818185503182036318602577816658383365096906055705900050847245185339215402611892950384205486514460769422258681679335255519568984368317017390719516188169268712407412454248488589762566213100523500484351402397719241593839891932032739321687978465462300588554136208354060730178163018904574778560093413134274361049733228747203612449788933885178953347763639628472499770077841188811751778572652025540695260657334888145282395654934245005843499614341099724899288211063437227544224506425146637725663329622546903466297783360421632371920289963610283184579172281296561682275388170973624798691421834398501686327281285163102968575531664902067334878742397439646781231243782518212377610017128459189212665099032446940524430716848489803835277791580133227459308857387683839577994093661014598699726895722125897720359170216612305103927871637892901418777059757555011773811429423860006004245682363008432825297282657183001604984330542864819577982915991135605028139596640944883918662238184969735553649182122486432718491054676793891069891466505803587198721580549278951248995712925136657198918866599388683802672291360350237890605969221575780459796010833213999101031249096155374178338311287350021800742977932156586496416118857437083325403959385684216393430855803295963431913880886749936601571405390803477665336251142569933218413714139141079741228236254483632192597528187744885829610554679591908889322835127696193270641023230210535057909403164423673134698589473702461254948529696326143011517536700468468680463765559075401559079592014569619256935806633690947050926817248306318229058458041084130169164623173954346409880999711247220563151082119747521451657707519617198830643294700424354321938235653183660250757240368043089104654057492227971111867548757066520643378886975412972856047816900249828703102724739048342970595884225258330280956795143184911190984380883690046333193349488217267928376119743478307006839975013569782921116501615151009064158039513495885062244394809685865198086319604421281248170978236596552670369525101692325796683091486316568899168359753886580063671819267047452637011710384514505906230945462093723058628403049464064838524167825714804953505571563707140934866742622561845733307429763977771033282708526307421144687906929483545563827410513257241016020702634618162928531852097905783507888787327092181969444557473782173088734150573177970061797306135499080502559400191167060297034222342758504295117563204398828117296119777182834707170147606675570009989731546072636020464254423983764183443397416871329099194144182566985875693771737733726818284169885463574705019868251375230225135964148811418154354234051328332054712859660073502447000438831364947658697905863928841109090060518250922919163204702274577007475194732839132638588338248630664943519971465700707697274738922485101121059937288333525790768879234791935160533947516025986356234431242756253252755497270329551691297902755111571778932614090002841576895416101050536079331959529605058983435012714333414820077963128664098246376194763944589301404875454608393628944863648812773328778030304917468691206378441225868515803052921952017034364152071729368890860121772121969733772349760935520363304698816330587842843950920910720601869263932626800451330396151096859430406702154490528571142941707259062055499963977766397687234985764063029975362535763869441706699412188073101858373379285106526878316623006717936020168935244897658974232361497525961346890228633180406027745293079130912885910422944040385428782458854731688760914670763031439019711819628830345616004560598498275046195519041163864615570412325234830010892645566962513597498896492803765920274563955404272898856755576339441976185752737898904017742809593746261291583988468314227552142949728784617535817845416978353877206455621090859199142340165057329718095896109451438075634593441538228347456144306967035516655213240090661898454657483063835402333589093608901355999370848988724267341626722190917579947801917838314188657312467001106064359920704861508787621178227718671197061405796171390956735316546816988651366879441414350869314985832831930332607790924508417952577021662040266870675363104658123650000652304550829617874701269094311062129135347933857938763933078202107468770292134326326621797748349738839034858256496170202136906174421649118972611369654931211115415353370247157508057577715064117947495965796290878927972800772753134488718923696989728350427137276985961029658527412051102656915678680736961034900317427424306020492913710354296183067786458536423105168405684591572673907467787161246093466950779308906796758104619301131758927751303576470864682445054932750323546516199745258094991566967933217806873092524968045469166613918430202378483592790006111040014122332738717779190994677658087199548600327592509183696943306920575991988434764804442785384958249208598265370341611026085280809804152071991927361387907852328268183402639515077843111339975959534295650975176722909705176131331164459462050822547541336478491107825231488479049437270144442294383456647719588540038081833176663944552481289707465563864786312683367311677914064109065175794806970724579704870507061955967075448169146788055414789118108008523896461990848349763476410680939279486545703708267622404820354041402460210964491370894161761536999694791555575486772610023411520089528677891763206679312346182060509559246777459556389861119611087024223733873069645725171437926327844955756888224560950732903114443440810057482463959905438025871196464835365695592963478679748088462177639219470301463532922523682970294270169602034558389490998241641598574283213632106234549164975240414105431746388195823547690044195942105802658382848628598899498170799428327191902410525624957571725881594007097671875622018264982134640524818167723245230913149846240824833231042305038789015761152236031858482000109742607306682046553992282677527694615722963274650960945102308008742460910051962604519307666970101950410393360001262857625890226047849546451928657937127371705273736643450525898982648080193970701707539328574119038034050483253975876270018238830306352181922611704408157411064153928128791263806668093166875873707752949927309471758313140106368553727406632929453921660601848741352529900431081334616107919777786120014725649782912160704195862943484735270115729986631216310501475645033975055532448358052584278774687266857209777486891463325140254736791802234796931666669821599058609848735376111220137356599906177745092532218570212411717253621745484618861605240654011196886311357890384207272040010613559655235960334476522627738361737527418832848929770792142712921906365852241879630680221301901080096843875191353554301919264102519179500046359990612977526439968329013146682451258515554803558243881701458353555156939925176236246040119804472406199032997190314093955063324686530859809450403708416422649907073542395301109726143677080694186953770299488770013675376543499599902444770693764015763965964144443250638309175831458753240495613498644081459046362521926377815023802815718656453470183553014427615022262338277267954033527132138857204327110394453561286792050427705336901597325506119119408832924035953958738379658882947299676727190897723421684532301360147675094081607092265130466607466790423067270893456628007746467038010746393018200013094070542890929587071681316505314027437466658896943020185035433746622575536425100792812773985276773408578584528250496640684985707546713543021177269630115624811261980572056623928757222394586261730878310153037686300056128200397180571851486865394170297344461980034038321426092036424541276933756151145124384484950088818491182374044388059226023572978077725842135275765421636563884843457193175098300418279173187678890809774905687850510629341073130630363882914311661593198150456227657648185330860926240615314265001114598453198328888311641473929119507099377608557537522008058253129461680988214866271605552636083160225109130333744349236403321105233156525990200576869518226004681336575495841155525231602615216159764906283924896212481265308047420807772364972656621162255515731777988225270719022453899123331745316793635916304801301446821403702434750232061686071176462879402142182574824101850137369601806908575174462967037330089953374778390571060022684771723295785569162155914563949163327470908010335502153238724399331061101166860193184012767595492914772650431383644815705063984180036915446812504066135331230084168265796363877647481810360247548673137208304430975499987061853494171181236868072204899485331741493080358621101752808162003808068188536828364975417268830017713397825448614625528713785512516018407741847661468453715035645831855841158278734883258756554459455568795251773725621627719134260123412923547847559876272358962172834888677659482187563497330967116343958207806803258113270269874068485135394460824751926775824716617045988787905576204311318774381363187334152672531463987877236835646140876890385159229604106959832677585257189686003361982038646001736249604339372803578312096702295307717148937325669020727570071730086595518423984907920586595856693392734686844279386177826841294450055319927786824642480731238840233136994450009280100378133006125639372245558253289646620012418419325922162523236607033387910056846312855523921366182434283555252444773402677306425468126197476604906818770661565920007625244599955378614486660611382869344261075143881352806047383234662865973541128083632671738353642027590450089910749792105693927924652805576532069087558403044583151041650188580748122859250303109915450398263772517205999718651653792248054552148719496231765775371459539712118120310893478766935824668815717738515990889708817579847703248721920059923694320783347439062037676571741244575281331201431865797501915128827274597331497219128286281886248150796140503477676451759257014664342731120355496588558285845388024405143691360270304265438609618918862594657600205272955288499883940142724183539514618826797079222404913141921930205924751884674916814750648572193578068158869636934858535351858819769842878383541038508308627539692800690294786717127525633878017601667868752514053495225069920037872651650835787929421383910714667847737335925312240459128922601531373573234800377906367339931692934881992695376691360094135643463206931565648410342373737678080719871744442807917052462149889257200678882816744162546000100384130937274889188584314251901903645153716435352735364705454681688787474133863019841843824328966068479270149207073188593659679651435376573454766130932733500581056984524489933154008695673915120041751186262602658476629317436017233114764310582928542523517757235336367299288040856757527680043078600377292129870085811540878475167178845926501249558002669586532907535736444548088249000070454394674607996809333068008260378257298057057317701286653391693822548534677823584301098645550892445134950461993310372558324246567002562247454032370505374872108565957500026488741547739557499992667003528523649227681218918587238117378042912900750112910886745357758088368204345395213099032758670577787102026498011073905480548650781730389180034085163509803550506381442388183492504746932584110097212959246478738081875474084554851264119994499333839076939561446491624579480589121144088145280932254843990708426257205121287225972049369801770717954484754812776622949766689469379372933416410643278717298805946021139029810651694955223543241375990914171941632809149215907399148806485817025271537597892616126647289583674852612297476241779548523209104436005264865086356260319151946275479975441756524081621845265758967452666713153005566764848368336460988577542707035062784583357044791834572055444145254346713817122242378178624898121356933650860560894704855865766373794036437037891743249678827192579572711716362341137901367048301739009992282137365933782579118783512636524578464352055694854611343887897719303870392648730138704049054321284257460209249394148373243997097526201065853697936924256278085087016376079245045959584563767517704937704185770546012057382639849111382467035601106694778942660774971869296696448839063478308748919632019808719578035383202367097182023298361017786690068931575956112549109361164699401094632408164094652947482971923993365620551110098982604665660701335221294133203537178848887317858316339638633759215929797987362680445681929292733245122427057336780776659445482074211546248855042692359075581890139532879194504703130048219171473176562207061009479915690229834878669038721757101550898207416886551573322388876001482588461141991723302834888507558966906782397768868225561901508087747416722283748363889955255738503894458735979610049876900365551600604515686534947469448017432118404696533933969147021994035161300362589915719012467318791767537992775553743922702400211109916658364397319006183594783904013246555350421241229768153954616898803111703762716912531205371445738944023268911205936427399148861133336081214202503125494959711267614771916485131831748279664183288863340978890140859317273641230092526843416958227739307766124586313435748589684910913434952985358561193624696617304053838731255112921992638856539392517000370412574601454200695697805302076227401216017730958843087488114527372977582902481682149671737304214236227204515791027003740430047053011500048672935516614047888115482834254769261433555672092516162006578065316606860684486765599678879963466235713928486155949363358344999033154015011363843024413034794971040204032441014309484512325044507656393134846104962040412476076378181130327175810558335228293094817646145386700629564618718082044841537551373440629166002565949620027874672853748029540018980440796773947830506896721961759843962525237716374468901377086069829729627166823262720118505860577699404032206551571759023874453975131393303194806900137266564254840305505748346351104636774044566269618199062208449612225261761956786786612033794614474067412008170923346328247959333414047837531347988918074629092417743040020680640809580239865788668132436670679931020733838944101370516098682095687611841212436857057228755893265815593670215334538991838985191005019882153068487437022972578467893100330061635518103979517797511082621156198652908520860819576027916100191816438829487927854049578594645067705621221788553527744236375642400634222051662112630190367755761404609205038234318483120147628562984998969690446906851213390989554886242669365672054146645043151371721369158885501745809689101401616322418183108443025740920184902876298750298187795543289306945833296478537087253582151036791576047465039978989013283490630928354480028417272355457047688588662690884306326648653213684543723270169794130797908323398200137373942016945621971313647122534671699676578785075537066092972312705903485784877965507628652598224480329807808725352279903671572576174969835267622800270899598613639938600513436400381911456983839826744404849907760945309787339631820181280746142058480036598153436922212730945376287357008975132595097813313022560082622387492645362198193474483543517148730782141746563949071472788256925061869515720102311964984546613834180052511063729848977187343387934596728634862504901435688849067078553759476525295909877828523344848982048343783094631143384463951933679078997994382107275078117391860280354193781171883901123668303870242477761037275081936744336023342336188258015277524382916935929246218728358289785470617699336145636822982903763283811597284906527732615363901155362362206617030513120384139896179964909421748964025152054926685635738732010757318898656296364473521309725516565401417284737966013683902866969324780009880203775906793789236795651023825210654023374929169767800874421378443847047319673598965880561218459932658089773294614441824329528217685967201491954653412214310128473190307651320826024018764214612249853429975792019703949103134502220300237307390104345898025721190830725690313071024511480212264736404406257516750055009567734630130617774660218313867153658393040300588189674679704389198663829108120310747251690926729615828782509505527483295003748404289216396548969255791975237734337144342858876147844894408908346094025051117363576862376040572163825327900525779526171733837298977337908523206228136002400062985347173176688301563850569349259564109725101853259213137860289132238182875179602838071539738733384740750356981537863060400196637084564841579199431508033769657897117283313835407135133200675590887090068566789509416148287731550959845854801058916454464368537528579104823467760181588803413205395204947096004827332027750199635017432113878031112811652260438656356739359789934097308005772518362097645017454427840465669410981212209122802849210986862018822343712993074850395142079516237585914895781945961759057307558910416477905738427714384724103056251033790263416739447172537664351786122848270139275351552772544903315491163832963716259289116267920192875899755464528011967468693922239240044633174464320283483808574228353717773909589579204146544890913728571807766060679731144241183169119374336406539530804908054368899898243536326415529224019699979642156578437750568807069385608033321311693199474632677793057175435275030338183278629608090689425847760758202293625021869200413558026897214210021417845643102013917781504155050397931133321412490671759741121996051208949770221031839039914981167465386219741161554024457060836731991553826088380920009558475125263284263295945733583483057013266424004989056221443162558324062201511191149534468460435124310710549261723338115312372851867218917476892947914940663571560596233792393356918011432226722208817165161107139698794616622496486553937488688168361340457639825890169826872156706597888946843019134908407095452215440401279500047739531218495987723357816470417488750455666168122305567377115710234026753672812599351275274051023327284293881743285615494456417083946976761773698035674876545105929350276123774509942637718827548048517838996298023312905690794288837843751014019560731271725959499105408552847877031561886193301632777476016691042891768944670964340546042950289092774797387516562051571567853624725637936680922474765874423653015964187566916966501245195855187448912260460858289947363178986036266212796107506989802338764780500332684263935595767492814236231404803166202715802608536790282029149805029746016470125415012235889806638999371493229031578267951884585498424089232479431559608375882719895743996359017630372663532026957910069000406320789046732062063028964687630387800061394344667293418444346044551128749640741457230850830499330300502653680368938992964433506306321581361837020494350203663273711312062038660209439990806288769640576364813365723004256209835513075350335486781369749090713448123024794322334502904279071911284786790719617728224602213321727983267311271950675592944004976699925500710313915606131734463430537738835763964946165506259340405555450331685922901048152117546974090938925370580499648489950684548942440348729085934363867607690553681145953396321592984756055046652241796842948725144165015026407632266285650233250370908389666965390312215557159637054314638770921547469118273335673238692975999999808566377263455550739790483341195796226960692990414333403752469088604040105740815597125234603717031230279467154098256812447044660028892072768439613347833931164909499535955151688265523960193174284963979095366880982357094040125560972379338198177526027977426438789869907552783675533686961811326186476732364637588367974875167973758088564766911798648869460083637897747646773671513075585192886138390440002426485700031162717809695370351762316420303540803528204544826335729345629714787061076718485853150200399418657322292446176906542065176577995410093671892868530912991892825529206495212014405505506758792895733559431222910240531591597389982462954803169002488617443140154442200203555279881320621596726991394211048692283810452238475541929789188135435354344151421959027627162129612475728599564715194629752617390933845311610064463815341290490028646921594123761683021956008383719925534884999995194797774643168567715606687013537614335086911445259464552548521896563119248082499836256141375136464054918835499163136136252301714650286082314322430979096395324174407914369591592222070846672311430510466487572461669381460650118473165499573435199739146941461971421321755469276810930004139040789438114139448237437480647973025244984004328325864400377932576541012463565883374588201557460155954132448302752514989758174582941536849445994054182816221983625537981055885177839262390827500945795285440670479726822920242723339543277669975105262462774908586816221964506111479439826054434178443932472056544902892565106291442769693928827567014001681334626838618342900503948939761534696780639044065220449881053511256743325856524050121692169810872722313069232755300151739223369581309113833235090789805082892989404500692382788979572820947915312068892188012330983888205435450713734804649957578913244087501808505222769754404943517120759407944278664771761896012565038585170676199842154873638992473612624865008305461933463265888026710950916292048604334014582547133954689894713277653160094058010348469555065315071448046442476822968991660173235900079138242198716270392349531156200962232655198520142356946672616669433700451043109289345040917480704328874654472554737503309199770110712407817055176573531774872841241433978983331864439494800123861770058769718884814622117742863779655819545644194457241830100135921674530619372205406382222615023207870260917472243465073899607074162637927077845356583034115210189478750191669180559882328054214700331934053225312577695855090959472378107476338939559376932563885894293199291425489994684012175501379054294281630977115012591676416403412076520767476012330114989133476802480944602138775990779547393564406686817250335607997279040490534363333101437518952542750626040228988509514993306595663372019603524240160507274798897938609983128469304477675628999684193155931394018540968012423596847000882464754849360268585175942592161035898838602571563270981192119791086441248690934337454585406691988678555238975644145091180860715793330957314614813092887254167090249060439874950309260511939650560513874347117510426243517101922396079189501156446736119645902639518108628435197208317439386976109586610610728687150002452009535854881201779388694097965758688876481528864187265958886985456605808750003474435189792406538617063816217682702124997425015262052065768895911340394622929494728540587737101532037195579511426584142723880732575811292028058085275442546872515495409719200087996296128193812948458720848422894619084283695296867363997288533363423827340897270870017045266530938194075389828206796958970286423067730879666181269948609824394431038108628119088377299287612121571084632255753169316466498856149559980463644040244068616264033502639925579707556962829681219080391017705744762407087409108622738618368944069829582979276161965540022933640683577862609657278114504482655733796948325637127912687741631800979054861998459586706320318681840866684529535361753167891244356164284730746093975731054889374725202510443437128436003753858219867562784434505463767915418506825964152033807254909774492967509298486951984219328027091710145046652656261854818180087196747958192501498647179197421350186771384673251688259846460682301777708061229039382999333639367818815239505233369151922125268764720448528291107495175544768725892555623174807687714844618782203554294408229074691281225076532053780339546369655691722698825035152502751338985860509900444253862631501350896640620135909253871712062806028720628064550564451115481269733613429748091671650711985849831371499220786281402599433959464179461120084147151481765476865128622691838328895146806226518417921101020739039242452799236497472287999381737410907998112849107472812425914551495599458496398782424819895038123264108485144272511341845660658592902580379271310655721920744349585041949139096060549964799124450598827441946402281742633094321882726538987296184004378573249906182935453170918267841060189015142919389524660112203955064398646661287193723455005228566500852411129128481216946991141675926322821697452201977610253692565061897959191012706761680062987226429870111984788570566804429111032746049292949547872110636595173397609002145260915483259854694780667800487485910968878960877259366290848056563476601334227334354842615799074537410945139494373437582092727460098332801355382827409621524175592901744073159870547909252454842491538697975711734813971181233885203992657387589925217898005120943296470371446807473432249942259846288037265513749884022623551166815726142478162868673494519796438150982982796153759663650522391969665019215087382947809083670706965431198768936766460439783758405263375005501371305718953270818555131332441993052086950751809514090549926494186167276941481759048353765657659259069766232017155368251511664555865532306981272089950783590115444755624974906520886109534279610865630840395204724540595794487590941360347935308570878714281496843344817537068654630912557332675342919834262128217334078223147405013399121621159098379565086636723481414266165424780236993928279875161704994542612059010493023709193611620886064824976017550812788519137974921815792438445210030945889795631881455242942690480967866392190881040411992912520036487168036475947461531187075098018333425551282153474736742857403054434801171364231848655536718473756378570407513425994057553346361985457092320415973449572943813604801207229216784559660081667548765010519999652610957280210087328211371998735758415508004286879235845306728206958712825501299099358676483311684432024935583824486215166099066500128018047765031563022988096181688474285772043483299887947358596859776883563929510932855216765064319739239557230966831034191465414490090465658320147191581129461084622055848842840915484017345199273631498319521916876356074567684893760129690076817025294497122568344714868635629263908935099621033862496065895559552548979784043733559456272333519997234103880584856531112509142535078553112139409550919876979917539783111913678595094880432657214032907897863072535791236196661363842740775753908811604598328181143598649123012148063188840460446667814664248860888351508293134574590181327770174068174137761734220155304938239622998343785460442622185578626708383830657365814953083339357761989374165321954868060304393355147879257393037845339768460339246848936975931910493230058981084571338856434896316137422389559423937284144389738594929536242818723628678907722448382064476361364924104282010088572687943675444928954999857200524970870592358200391532646448710881039970443896815731383942351160429101212402383774984708101853034311434411449087195380473286722900192732949193268127383112069679295350587522162769229776094948365134637050364540668528494262616071389505555364483649289787898032100384090505132134393483752255089741306433747115278263899459057090293421463633455617570326525044824751429832734107182997093754772609118743034836455091080456114804483672005454768438995047471024588393942412257846849071482647995585567566662952736112303580687719118424973093860214344578881103522836884537917923797611093713973886007964694626916838111908951402989834417121215179567966214549574676553793565348926985496825956782683277382951001816797699424849456533093675434433753303213073263421528430893271029474373214021839616813636472368377331408549474849299602351138573070826153237002235742450362859507747958543479539169114747831561518390180523651982179735212649225790181822626944431766975197229821872285201180541051488873812913676113717435517307011507234613160149026713114115239227990800479420573717347822513949444652025580889673024185576748454257480337581570344067251929132532883494075597050431092829886019325132078724182900242445885304031227104620081975262954749940158994841073066532995805967097621758620396816729047455589177288301011933932040583049156295686608129029837158087896187250202326090563724507821105700946313273348507903938105666841737537633249506415122327219949878722993700179322506489836920207325421126601702891451578252139076234533634049313827913394548294366744294064402969100764450869975342186957193482085317669681508102001525553174828310714453105377940299115133970263717820950626433622473513822501166173232288384623220983614472771063164741266488215850107097415202511588055161074787122609444773941674610762141763099303285057609509310926048600636516766996043967581535263844138380656761858471732090565468057635016799183144686353355065056255750466666468825722646219594122933641090930124812087332495403741290640967835517908711037901235166567733766377323370873282737160430412539884843007222424708214811643084937063441059653324419689947155508516408975980702682451470282631215358420445314374357295076008521613572049951983024028557268557666463840153449854089976606074442042189375416206837030315473721370944284976375385064252271744042987803541182685463405979465523780094299212210532319716311086995970111220006856609808280079891540647129570558137789832147803000656605599760177505787306761494553399628216323738069519400428484489533443409860223045792376109486372227392607940183961277522775767774894340874590043128587617458621229259873635578505295174958314437415949316826584536270224746750238721153766417385531457637212485329686506989397165813516852893324833221895748443387415074366849486302925558427975222142577135680949333406396714697816673986605845290951186907649276628691669060326509875725110481758391321567695181205904529965467177917844597258551637916216077574647993662805633915522523191802639761384745312625610428132865826407026313150504801530606904158703860904162670942370410447921096455447881516504224073977410390773415856156877071336159297981993785360339940446182719540168332373746606683625526121791286572526578160364970322596459066394153580648859157750012521957994513278028256671855276720960921375778737727319462932767247554998179930009960039845619848570526925221629014405728278350864310459247218387892633128890828829141122432380637993031671063557689164396221480407441576664281697018598534253739060006575398392985958385026985629209669951382468208790031689909230707811128633846727726925967877970631663435742994587787710043058773583660346668569979199103050473384174004407376390333418813274044614863886780056991254699687615115181371548619668024625201815282316535267459641855911304653674604853537224478692093071073516994838782052679887292893592466305669251307930869680573527622098003898982835321722288713738218619040960449499707598024864683148113786715066387659743171374428596583937704275211378539326074861071278991434624191005451333313746918319640229635727284738421814736164993343041033591050373873772296901034742378813223374271418070199778745175689679739002298504258349778052328603030265551156226076417478302946154393991170030854136645173539974900628725446332406577017626099119082941361739421058864773312577049595402497797752220577706872471154179179629773024586489352241541633384342382485442607635432388812458030380879312075320328470556053737770525357523972035643092983715265238964787054986828665967314801266420822758923035155831497261906976416541385533130484245805488063082622032544079442513680154633259319691109392394069711299177096948550105603672867514606797092565908906918134872526755411413012658393119484205740685359021761609185657536106936685280064710805244908687211154388551161278848514821802658879858819230377914287777282317099851420612553069770216346509680919664959984257864020469454723116412984297539634102329029309070001668134353973700228896396441437630642651825791277745802193300623956054773731222222512359754986054492954539819965458355801268409084123850123088297041577803814656696007402401517459978030750789721998084091769867084438335809897283411779599529557610046577223067765841195337964343965329178096840737289177462390204001238534162399975309150597767800877119234244794907039669842154703236813214261725880456342107484741449525922119396590418838499766333672853929335811274223836509098383234162186688896370973517378866863037079065955306550778828631113142365574218697738951478570028983581871937145849085337571300857082396876090903254849397506513973410200010985481604430298562312077876515889737356715424115781976519625105373647479375745080569520449937140847652989215713873195894499098264385646132592629380989505676523950668090516345054413513083021662258048810610790159616623503018781035926275763965869536339018355183282118213434144889350732878222909515286310850346232747981597002876064220275188503916892909904227638337431100218451585452483638181762318135489357356974518600681856215695101328902992903385797802104639667592248517379552338248216344800430536323986625225618446437992621046640616557904525331850299195494690958580303899645256237715882968419857455278196175205868162063559451390278926074290394115683062919366376205045500646591642601205721683576832319021914727949230788079293490620781119438264164064624661856074336427939889210277795581078574723529328027750441377478018577623123841350346033957419949207480022973421017468646239101495933623465403029977241415529209170831094783142432944333975195193251781657233605465681132156265878865542999772044657513924392941498409511002287236271729775249119146431846504948514314586214067103869527751043825795660202682717879734498816034681167019079257312384378738019673195531447142834102674449883726223267212546471320549189832410552633600751257128273458006788291095788771949417296941690896984871723789832669578233736776775688995762373513091327539738844334363968403383310838227522889033799356833456055002914070669409742466088933479504748754596924813801507429268473956080572732386708373959310244195658492590498874046849416522884242798399644701899232149431857460912027815622959663104706797428085058921669278617667946286175617749745862351627947762286884136840021791106987715646878374459965971104831701062292571560643922709039851788300356452564947960411740369699005853101294682371440801881842799263375267235108462328337495037702387144339048694028695016617035574306692787154457299068077250844176255963486889596901756931757262839536128690510496059166327688081445223948316254637868438319149384357377024481171073493287767070787697013508871672831061918798189051928150610076828177906942256176908878231817551501009687121941607992102299458262913501431419618392546140101382940765530804193839400148271217857181370313600789615543700470850422543429799546143639164969187401564499475444165798753023956821042752113964567752545015099618138818132422042806690452680778083585902487585663440582764926003895614204786147238609848530857569979710400355066015633963008683105635298594829403530029926781043559863388717059729262377289887135263606637383418407338916774906779113913643856003978858834826431737698305822367550557542964324204523434602271778646163313789731621549939117840806730559499555939067618067894984657654891393655139871797244076828768652157878801445793322769324446322252670700129478504142847346491296467296019315211376408734195051578499102378249027049604346495843197012269728410509622566686257938339639439710495917321376596135733278446528295396313588314397995786856883169111922424587226092678731591972298031521050649124778782084983250827952200427370193204919426926708850514511104431630157380466983266213638656320261017454053526137155078749083889123150557409247166585739146358519475450681476169407432188775754151626068548420495530770308771453569770286439533025000517045468702877368034875007847198974616858520051246874548229559902090145140359205594354763425291639371026811084066404763834553672291441018754874576143620274513292205308999819761368544740057755036250377131538084241639543385161239970614087527871157134458865043460366580165573873566606605518106870620170684754877481068894096415885643657453802141112867087170809695695354258824931830092565126837860219646956212949065916236106739708867359191307934761685740491289405715698974185801187955181709611394450970951422822044551422824691996784739110974656137469583898791852944162251640901339531912954981047248916871930448888348734621846327163190530890322680138040418823653333021775049979178029654388384572375886813422591443579721094269387139942838379945568304871694604680208149677059428889393932790073644468610445395591558714912214273663520591143793174092395279835773329168785751448017335304957147607839753241917638076752123524403436387180250151791775875767560807694812981686076349646193378146183585897699666211037699100351144062797279372329384491410723522546609118681087326999603359766677914660611499622524667291929328031739499613262221818888181472253326176367387674756787976847809031416212624270413785248478840146595363811494264417703118828882271804858382326101146358465900387771039268038580039640650529013576843595524438588812181708166789540634858906742475084064899908833850078596762386079675776820181931912406144949867687578394246770911367889812809617019426390518659469130751579550497453836496771519674193648725417680676892969798394033588392286270923581346976643386618782934885256418803430018055389602748912701471419531712722802780390535170154471536317092990331338856997404351557762548411422849387677039802871413310534002879286593650126444488190530601914319800465499228602867232796152825771481654087694143142743850118788495876171239490924928214721560664767609382773287078467628653841729664426581423606998873971297752902421696425448354524265064501875900514680910693171752558105821789808130421709688979374956980036856397856266898076104879771316193867829023063410079241388087564965316402785861250233216927278333109618961951817547995638736519979373052576874325589821379559443866419322490217834863620197977926419566055135924651750124869683051273710535920192699432468280551080702597397410363319376439111171404500411754363985832591751412109601142932107811139978761607096141783119184905776882664094836542543330072029537505621660750889903646542036394918442113073305424052205383225944370848589945547106815512340186979559191458604374918279062957599147606772126924695316646665230112103302143243078825594502113699586825148597749198607117531575582166691795080785522928235523606722644710641631656444990466666239909318433643238104273526173959257898189527852250039958611108300277301177549123148962232837365806604215656929508130068999043950438092970561560070153182003543310402112841823829042943749576030598080527154580839715045860942785496751811358317392643935018500982171859084964240791773814009111862542222075804333453040319382821437226598580536619659821787140647691324868206437152024444947862654670789566302394286765221225924113690052766432658826169466039430213868648052865272130165939311042944648916567248989739131966357665317029673409121024994879196729427679598194255147900683066197497023134145118537404197706866647398353377101091337270296868610213373388555042640603282626255395960805291036947501005181312332030643528044438766813532463932746072520400748899078306859875115612676315126863807097825363661640181099020878592476640170819503689239959504225262013645771384675926037703467599967707840892164480030144534221012662395113551197740936199983751564916042118376476573235146012579861734748127328659392295177829127159138095375200702352314864551819357027731473094388568769006484909942639965661910156295533167326971807235659778979807970877442387275578099451394066100195294141926838962824842179344384454728541339618314037720061948435457401305137223101684016141258975986502964423424683923676579720625251413615236418998093029131378628094128259939932580610045372487531659183663448199480371119930464567828030606425662400940273417454528165796384314252437839954605720683806736861579328958179855480203545328902078558501546754169358839501474517977305606444685275875507126846016671144564176467539943889505368868952283450935692437792035194311817404004071249572385869574533368871074710297816167735118406313776154973967523094259065482782399677067772128623339963284132686448588041605044734513181447050543950515064290250237560656996103309568756073765374336218379199704514294468699229940911636503798689729526596671303629620769632688301354625581976660724941199836845744315999557806675090415919398730933943791063233513723123510265554905647749708759819309321970551819237307961907441001502737194998301311591618126068754242786295054357391685514014223789484960664724910128527446657668563274995053813951929745308352370895293570835287520586168042826505659265785066582356253710477395004402062524595104036310015964980859427282110685289486297572000882164740609389024466287598479870464621011721782303760334837177091407785385488091037915530583851310102959418235050180313299674279016689535944764961029889677526292011746615270493955247062599218804067974741530359461141361259231189949137250621072868284613693315644777898151705224803198217547365733277792969703785893097597938425630919329832705133646610212425004887847321016274031827130828262292399935308160291688681218827771954043946310981984045087416854085284280858303746205940072567402416164328351628721409630936550097689599672142469254866835778953072288415205780503024239491407636971516422119326003966041733560119660261549470665217968040713224458180940536066358643064183210112588607832890603511317976930889293779247547496240697673411955772875448131399389548647022691998852111785702829302852126997609785267922415617670290485807631662028941062050439428027045507398605275638218107147347684564504659399640755732006199364159632352558801718705365731078970041901968782411396960528596640670110498366183707434367807399519632073120245029708572193719479647558191742675034393847114103863173388754866322415416552975453530952646105395498513498187738201119901340165869106805148040146505005587655514580095271731625309810214843214447740331572703959550468265143083640759043864050032992879321655037199363335665525480908418436058600515626221079588830285901459118329498091500782951085161014594622006285645710896372595097271741771249580807386272898064865099016741587794469451743930232013383451583603047363810776318029393518921617712566055106402246027192339895632828398614712614384389258106248864443433029919767444480835178309268060337380513992984775106656958005501447321809760753848510887296794989986609112836201538780536515714666498065098238229130464023817851497163032324925351000635003783203983883641854486715474401778686703308717914250444270273259654853160454221269794571933735152825397009277085292604114642533190711398228330566676716769962297558597620335308575597104252810337708755908739699879695282939605022458276370490253656807766199428123497238035129306608103157211274319080189673606722564836230761665122303587528290309869389546897043592459751756512873023531451172755088068276121321975629205907858232188041685552696189775920186207797107379033295717860675199427169847234800037077348445954956058548464914535469594920822701417998737658984685907916894096516952213288170088392664007572494594564938807727579990896442747977426317340838944762917378997441459766362849850752266906542323422007295645561647365015780343686662378182252249446018257285336708774093224319294293121632049769803017145264777609733932952683137336445820738227980953405114956161995684914994857688649254120924243666157752885475226282382422320808275607984251920263798847794474579807484915872163536796978708258764113025893251636031426195494366793976328397113396658849284495100351517127271304982109428930210710776186194845933094699766727315572471970394604391336383323559923220509783609338884132873973386498145805524792420465526239332974006885376958311079302631970042187828526590041074964082449092838846022014134531745613803955104813983504638390260724722150688992821586271498811603420453171355069715954143516047241741104383780036801948372734231650790999849878096825595737195148930213789521097208073946826438123325362678634527706720067005602668866947185555970300661131737304846541631639632884047228743626200770695000158832658025375452555502633084282375668167211529716432342019377134511124268687381537569743165177867612646273376608558872898384349494736476115985751462416030790386672272583538936742457753844099068579092002126242461034008560771276427032127159534416568721263503270053852576549431609291804955699714578087239718733209767181870484750890690387119234116813139506166322370021700653686353104149027947849641740741326662504644080519013801364976380883424928169925118426436308036439556364182048017820419152628422945944772356008189364432004972479585429500015131373897628250555340946359577604019353078119250088836268518856640569997835810708541921125142561603240915268340409973315594699808566620128266496233630539197643283444488707185924796414688741083851846346627281755626323845792102241433512923672530615893709096195984468422232196038573767669294384953276370802800891379458272667939715377062095218794125517488886589391023261824940885247484598764989910414137190326891415847851876087483692024312367855164981269594373840457348861672939075792831411659982484654258165442160234537585292164230712442617995947821426047179797720530205396238255089618241365095106523615482384480676947883746990237579578347875467750186266893121680586238832510245144664015762308495872418365116089123180673025012709205268327967068802453452073697211826807719672173391398671527311871793262840672891122687606206094896117201620979719397246704995674531211971392929584022613891884401899152970509570611420200905388841572178111979035971348716887441947049514706640196529052841907268954749737318087635890093395377001186038299090358142955843869145137261429991674217354618891829195576860909117614473095136271643600493889836074283226042798515217604719475264490084874320380016034984177858936571471840461660484624054624249348293106148183607406878793528687551419026776411167014890755301216832827114872631073049662423604716822189261166723428101595028157772498463760964939783224090410254843495436257566768068154243430557601494228026274783064005129893567574124652576710611652315626412661609574191754019618173046257920229067863923830978759564340434927819587041283813551105898545950666669440283153203080272367435444661731313386250396442887956301311667410472757383003287963597347476862490451635939348888361349890856388455774839850972834120596437742909894213748682467934805356568104267499030989876038144386245051986650804917037311027760197028544994039562627287696330754876263948788456591527747886849808916690065304122264602448941648772985849717799392238395972149022782512891077202081331585288618685724083244261494821534569636689040618414098686801036029777749821648156707820876220259088403249356234347125866594309163006814260128290795472189988376788793990174942099391024605223265497204314046348308390905586242416437505776064795200853502278451281343222211586041999959977274020488987745026568767223327414169976910529390559207450879678535865224997194278616680936657661981068971454892748134373506766419832279453911055256344421733038422927591111196286915381837959101672242971597912459033668983012485118618265202435182806743625418480928551717797692465007712454654953387681146937011072790149534910138736052972976308117882281757785332296453410299928727459180411081170368855521260616725595924133823928414901760087797977925858295675078349724869071864451493843637239666357769515018769952647332622722627901113460419464680712434998628058676832368907631029674952949399165383021488499116230244913168964845331814649546855830219353097028368185370762557739582988579245991254799478351609223548103778855807788884073041719320449661014070659452154834449311129292566323323202054604526078144898783693062580076815949144421305950942552979100272972809167687094177576043816732339075475613446845841123479067306231339326373632219050259044441068368034213877710602945890801566406330275030637759886776894139962038559894551541552274994215982705905692177299416206224959973694113834218576436707713080103698069033850903440205741482135037012337928853287732019069686351408362268836866452031802473793672837230200980252398779525326018038967537569969928960935276921356021912549769466662287002189348096661996860038149474577285783803041232662228325716409058560557565569731639173319792703514612248785829033948683613730783564773455049981342206541427023069017569511503452095763305796098387696945936850766566499653031816540270612583928518888770492642919996053179960813334783956231352710605067736258564323823738294599980696133761938372001714215807798183164901510741586336504899760631022261588773036514300455063794412828192377920147125728952229116308108086378699810302752745665283424233043769047018782659752256949599443802370723226200287363949565049354229878329732605841312184008570508696531362509273011137874102103208615385372768310502368513459240461592718405428869656051050628063772950573866577338097476657948236335100095581833648703933349464910217347294219038347611413974655859651634230283429968451251278646987698844677351839880969158608362656072288808664322420747801969188459021705012231560041630690617457496233303656030910393726182762654690172480013275040075230527640271526898267392349720920683108170025288259335230763516245850628365929431839358266923491282924755141435418641111730487188274986734250730482708933377119635895766109648828427208399219995438251465860735487266890805207969966613450717441358108898877748143684769283075519829384971912800330451075387798980837384586444020390712097177600955284133743189015719253674942126926519083733204322032074297581749473300847545742698979150091497395718343972775250517635318370860693714069772886555135316156715399512203798807573598879316939624058906695521902166029214850413831337102522790350800271380899489449613540344429757447034351327701277701224057375362725638677840875442080109503619681045607360897708244530112388892903942350851401326295840725656900925704363486396940415530423783665426494766885219603157437513889532415680634333254270660371264172828564778051511310495081856344644834949775486593643889914811974478662086048038654064859360078121316052493219236425975579883845418246156999228392252960378752657348875087571095764732426988796344006257568723889299541666922996337844409791559582630306898760326965614920310245396875056091965234647616531972452125155447973467601566448434086130875521036915502085985787927716608428708350502730054924743751637750511535754653158607535709986599023168070445564490626238625335206185475859465150003983676065394340223605654304588454001873090730893770265678510037990711000635947080158805279794067625796655285299525570070540361348786914487690582226329937029269204599501698972423722424767812158678775127610395180480731811075654517234027161116927091279459665696658410998921368471157775422575019124951604769038999280726974045973606222098980352522069511180470481556992809624462926735453556061809158537319379701199556210082686966598080306939315313431243982453483750463652165639786099485084444915904665220280734741330229835061622145812302420848865537218735971671552630375553737803362135981594751167276509261335075408538972180034601242251313497252915846683396069203718171611900364235894305479394271154586855038998066827269316578114498420580813668726915166067743007929998716629832078039592029700213328205483930926136837233518190115375938264199190177350963282446363322650935141220261962216429517562587466926427615859177886521204119323670271633280009889057920606676177458155511182015810318857129206588680722027598672029227827426464065497894574806746294591895573539944795854500316859416594153757982214123913771939594308722023869711751274368927185581943614555345776660646417363532974926034496076196934743140991355905283101797886382655699021011717809164000869716398851945808412277112069518539996241476384705467344563141039335715183307948721697847306416046029452435638861918741105784228518202990057893365399280741183765571678803416627558775334562725976974679414553353653714800365873584492709351412707708052949385336639880185935941055594095753662330520914532924825043819549070649448787376462143398640997322625407920782841523347871498736565470663399765031035239317068463277325481224879724696029467673403473709713362444087157021663513322570433953351824641501401469747864420508713129294697675791446427825660151114263192668629299751404662777345611094243797417363303352622334406618759216569712965086299270370865470597295804499152439997046224986183289627190964776401792613117381276969142791280531641929868509501280174058882281839190710647166070474438204657616775433681116945286996424459530495059340760159206094264221172034197892698703849885797287249740955763883423080002605294615484700494361008620676343931243023282211362532878131930575469753894271069523683652467528911286636435106796117156616391203806942510078242138330293469158164015763360359039102107828903152467481747835723141624124502123573926546175570822604314206954741079681070439685086601632616121108771513452530886061637960731198717209300046912617296820697123635206531445961410324445708267829514588491152147014722292239373154147323979948664118789542649207759692570636500768923359265779208507821545107383658300438080508229194047579063464376511620023832018312379929672220788481405257450595200018146797564736246736112686706888768820090038931212492744793435238024342250980055949179256494706321935710003988105511915110994902755026735584665258637019343891627117678105357622678532074085928677575451934609083399717374771747989178946150816720048327225951026497005001455257111173315361036964143786655174432031659441660722952655130619387587712521867253397565923493542754483487998123427042490653479756132000355229003490175783589190891629771042922190285730830266040480757083450118783590397749688713670561161780467718939331597602635439725174853426593022937240120413313690614719788324258149884302076927205216874958053054231669839570298766151699303314453528323279674347286331150277189420759507164449448077217696702645619036717391274018463217706214933596035405463573427552967491460606534590928012499129179794298700274096299076999087312345135454978678912239258805344543897523841661205422738174875463479380415937883407206386251655102586483399012887693690870970448022621076436578635986807150999488312788911110719703937262167686938397403550079320601649457960418080415898772372228484464582668219812080775233568127903165241900093962792356589645617802829372299617638102531170230927046690435620374321822823481646194716752981242188732405933267903557849380117683401476475948977974901262593910799375476051913952936469585423286138272876763403530681781992088318259464649134965061097050711912056497954394445758680132369815340025911838981083827493399616730162987886411757384955080597593653938602367803664867751941231394541030925457899009021152584650636105214786447094086602534885603390769275449017669077306948902628668988930405334025138390575937523331614658896564466152086113900635925992675760881586842040478996876855489366121128400742591879935780932029752627776199427244004410198088182064475086001228156800731752417413900327549697929393735637706183230812098306377021269356574280667711389179647305318290702716556323411906608632743853448470346283865259146908926579584822538153557538918515249827758988657363144543980412331946037521331558949478668891343194078536068042185617057376163664931273531857887875710743190237054297423544898406763853221876133489029129214020423497443034339387713859833266804675858650621701891142457854062808769974119345124687824578489489643345554761794525993165206611128556559262150292234972293707690825442781520063942045551301542298449395040542673304904608041753938374925657936350231933784885140242394870310949699009500140581284828184010415865201660911767884258502010402189751905228825129686476876787252951680626959010436247258421360388655046175882683056731880752427999137493868229997641264147502834208792903919303594014800453570132576213092474184031855914204574336766977770541380402673810169861021058193082396667531308588395174141513291990190512160477324388789719230065635082652206297800923871030917168789298637721683168147505782899233101814591641517393121570875243069507409346162473939015200894568792182323225547565104026303257865283617990559457165633873680243639783189941007747001013762324258223361689635913849370408102422122137877006668124289914550000517185441390952500983499596975095324713816763421250759624759382386348193881741872187723205638072603664772734786950660190806061201977791597667738455436929241674263169259908698338270324059605684684278083605674045041664989167705052273292996444376202791734435004914899765378298604000743459675656428616438917933718328800491510543150622148369622908339713090717376029027308161530001816315645414642449675556914609327550927087915623735873485055065958975060865082932437949974516351315786693930019056756801642672061127415555239703416854058808484618946568407318644562171104185106066543870944843983052241486795464721164444131192541863305247008549846618600057777757523519398822875763849275905109222517472037733196057067821131312058238306153287185072033523357846495151665314466020956077701642300794921847197327459660859963889277921031396764062158719582203452257121142489761750349250047956785842375532850527737932160000968866908760570669843295638992163397220182136041268748592855787181725962677774426550078854116493515449893545547606100252590159807908745595903342085754769934895875660504760732494529719550266912230077509551604266938868952984159621239506551001908357285845125412083836627898461817842480072880687951328155045855410899198601628010491914278469235646241875454226217818340650276826735131132697114276239503231578103908106312504577532917585201764607226083189619574596814701727917197139333780297848245990955383218214098997441373324983055712603735105980938086064911548702826141367713933689065758395115770924662835201273462816259616197336893122524431891430259098845470884697318783828099429081853559854986415552048428117416103363143855717526832721453261368279436226959976675808683935816537257684339857756889758463611042270230998099192029430978394477288083840583707128050239133576715349262037340446479062876303933274574102726188938191726196965919261595471376644682210414558770414905174330825909544302983674588545463987610884915449201840667604488210645683010498592922917223791148518683906299603944513143425033536441096318488301283317230551260948360809401162726427722312722731276065418757399529236934132016819521160804584239987927993073851999282655220903175804191346499224728667448219656172250161561560821367400829783957498501988639122279853820135923447514155683303603339011953671246432959873344538299631712757588202123977507455516702430078467822049394290540259392958765213107355640069126570295598650812698091396572955071459267447359231982986209231981668401239195031547738944104694787702068064973306297117139838754193474651022029342026455941544073831507134868087406985256795932419351088341261294827724186223362889752297028993833052002276461548554114046299570226294693742820149082749507188660666612894139492141938960197966192755580247719069005825711523416564050407240380881487703726622242879508900521445451497635844119247891321240575816487315351795480642755537576498893122728985308912201271522073093010987083910451912922050581588980321645455430697166285476879484139646089450522371252978626530197962872718349993747558637916177762050105364784232850909298827480297955572701762336231800044728164636704550798558558123199030375290170056327093755909180398257102237940950454473606270424458676359789952798461957615377251684562154418859278881239776015297841540485254471497361703218934745808061670564447304181649481256859196324781481679721546199417429933283278610289932125770647200647133911579569106610123712182430950158531700788580023399227120611811658462591830873914095077827313260254291353575338192095138493413011599766746872819768052068467660612427043326180700307627745113781431370214363381202526898416084482659618641161379234158586556362066571501894802151843221032594388752809456065924310408981643197530117314180443057201050742384179370360035145489256441935039098541517038112457746123374758113292522785755827836848275708993133821028609333521882931322911030687846422977625850384982146876135871045368001563943338780274654288393456408061183055985590109803756768329232212478004687954697459071334005212473382795134366454033908787532850619260777764713956451761882555017072684406842788537899146603449291049116468229812797087173397360934870199543920962316569263050311667169111312471656681904066565410953604560187593911814377295020483676886803475449606335758428796320557667045720933805979307852141420647675802630582910577777564759569187004590721004977287389182525252372008556224423143519325698893494093832600224299837074403704910098076775192465798862655792600982031538883914247870927064110534216906217879525521871342310997889731444536468488571635887748641633602125246929877623611264886256082225210253316404803880045411772367340485368431763412809295459033287432161229121523911861794080566572905583103097006095169450986164056404042919919025070526810513662400175034859740728066986357624987640193855124251307223022721434563895822210212811239935794799804241049904787555316761970265025504536643823408428446522922531868042176467749433877510175221432060282951318338626862993094186431069911053988219318312149843020408024428186830269542242916220554876969089674157713698483190132533968323710079433553663021705046700507523623353206593605092162688966403567061028751943087143964451158125150394294315709688478313760564657867978604195316691838575192959465945637229314909797041603846835682762690102586541281317403480541087595454263366467049654033232338520320141817175141384719994742805287537683686218063466860841099148740101362912928042987791287248319812871181710081141191380048970084530865419067833079872783759246311583648225077886002774601130554218072131827804625671478484036127863170059387334213980401229214331049390682039622334956787923475895082550988082377928596277268482829257072025400581757307571305379827009815231399536598611983957232081165843259027551048117822758688794722644234077079645087818743545825200029784898632672341952336353618309621389302962116848077767941137756144491407831410862535880525468854831022292180537880461077897008289565293133076565273052349465284942847319377588104591003085992329212135070630576332533232749722964341468151102657678442042391508868201900284094487877626413215647687504742476189594831755753095915457356717011310748498068274255557394643011613979944908906869077274162168830392594980991067181819323311953559274884963225144787532070598371075860913651179276989573526310736079544071210091551996664854456823540420242749343003329374142396719779297716787997133368590719543322545527904708059874915673229428003035611981597380544564248921637647159108074835987386939795988125925755964345598168578494504598266546509997218701295480152252966906767416226615778984460774456466613582730739143929322346941327638067225622612356342226966977382579611756507596194292988639143855987096471580200049838176637488126951496633941683132421059844745598846691847858247032893812173647947877175580417906831700815963058783136010214147706031506530993857160906343566425575940794005564006169589593083843467833548698940944639327795194978484530637895959049705941247700360615585507014400085854943487978997287728995207713155230634516126652575574945320880653573018096075809342075099021945275388490529424972106927581848593798140236089393111520289604784560746648441548963553159827743041679025047227335568094535974117460224727218789994701178421264619378143940618913457502139555317961416029676012229281648914548913547801837187981080014011493628686863181852499949342052658890842795454862498997236846631824963036424094956796110837420744608990827595178434539659653188153864976541520695373887716962008082432319786353324318105118884238312565417968012594636984335211061511658237340670521472622445595124477727562840844033868117318889078284261459167122284749484713683243676157752453426469859941675172045310886671350409786046614355410670431649544810907822514871780647303429792450421070229837881558816488420783725163845520124798553827473993198418958939724495127485737959816323602271173336983856225199519838975193585565340229473358602021771534971074202186786816401910611882400173471868338763031102726532294405854248803196423608228936239876895098710608659486785064849007112018728382162652835669784304058972540193427368305260542010193006238981899720710561027528657239031392238123688700938007529852786784359439157525103821689328767389580616847163409444497751546731847337137599874342259263564549419565670564590273414020788274948255547099708630915261702086667360932192381475777978479037039605469716715720861907188161309347731444972719740063745188723076334494064825941565026161915481631690596233863202299374071189983286283094560340746566008727756991284959029183795962850227746451052655874980485104760484858732639300941631362540136940005075464165967098160812729060092616734849507612587705290885990630569842229456252911954465825174792458343002506421344835344082888469863351109381405140594114511470993243349351866576008415791710636452669452429003942213856441097767850868324935857316864155380552939700459792501176017232036806892707339572299786025965322322118195282478189780456639713594023392505837780425750873930329014254449405349706651398726136298427766070142021270757622878768094814584155191766649384180819362793203105249951026799507288262441591979035261937087243694204799995731639791965347383329587654022010334319774499350275572082476572383351041445299487406910324104623798166440299155492916364862242300326679920414575935017051020627249986030745827242551239208436462114119120244051798102971660044387187904039932193582473818252084780875472214596949949728440189093813988525378803629249857543836146815234492322702832923583051799173750916792370166706807854146287476288847400845270233076051175286498339857807456267323103821490611856012324893235772656839614165379576861697176927608760534575319285440303240852460308453100663108360914806840992362341151484910900522419789579493969964201680607020296452651257074456036116911172602728238915964687949289040353574382010182142761023668098675748462169497574328383572341778066241824326281273241965110651742144121674329058697446783705385464656993338692615350893414046908692056885202463699844533662832139837700004578259353445678750164184967445556829410711858313593518934333285999075395783057101922081977854864779446701448069098446571056142582595238060863765426791757217809365344540697778974365977732111730771011429447634254517381188390148659967796197363729669909912518226840129753439523185306594732482641658891175185245752762831961121846321730729653315311312761901737709998118294143758694006007790909270637144525131015620121318518974727802936558188476567288580404616202344884975140597805125699909586413288026293627529518791085355666232570249960523617490247726790237654311160074819437912303745606795558459454258402553570721826019247508045642602161568481150032806719121111946207965968925052184693647954219263711826842959059110160418031496348153228893483837299749236857490004176141205789818502837092410674944079260846470049015559556124140584067026881408829900730398742508576276300982587363799493095216752378669041003750099109300874642618804970040290127401757959238003578736763851368616580833140969429053005728348153048523247913999082652996708244568019994147321536290561582309507700543886194790476440052725928661039476517622801489853328659267805847166978500717688353289848184868009750896418488814269775439797414952896843959838446191186152005806476740133994122369924572936113739859614824164309758990840217960459057230182935130409577044266013594233018779629200356345194699062336066755093602341031542626761626825797522347801606524989164042190408956055945176342298489147063961124510475188399740585614252412355875026197153819086767463116854496629919382646748608722742188923130649528735675929768431405959400263560261938516364263988062732411043257101085386907448547429961066432401087401877623415903229552828362011878581335043460078066755406197775488636085324535605432571845478578723388793364648341391015779088361817620998988348399794994034914007158435349724011387093855576122503089115737204878631897507975468983283306131827683300892030697083824722267015129652846974335654569213425450831735958513384694222876063717904700750447594851839497858382202641678185401069169692782955498923692724882076074695377662355092756616434644919812822223265186072822884939708347101047815597452842863553949803557369937213066053161417343868890572115129340987504423461660483326657624069094162641986400556052529999917971697301923148066189873448698106908500192002376749514684688725580340478759175541911155048140959272029947261868180570587163039415258825631378981795604023113383007355142766992929840998569436808383306753047189299258850239395261651920959389571694360653548479265635602357887689426702918385039211295890511062296521646325027678704000938893412027371267580486635993986305620760182737592014186884019834944583977848821402224875049529252088070081943263420255602427780441828340895775815702208400818872697970503322483369383154913954075475572006122047070560252928856660205938029015192887082427150243375403982655299986784071924121238468583203559607568664514755960289274196622224895501025774586205393593575625592303978731024592815269040720212065169812165224334484158984637515587818156315688450694933364970197613186540905102580932270512041217018780901078185476202584956741491050179057074491855218977945786038835510155304115276014259087625906942341005611427014922813371828890096690495340461800790096117001550120650479725993622181327061052891346993373650919332805301781559154643697719448001622200109468637362538803881802337737021784906389383329556143864431532687587977341136083520866350210880087149367355034178509837363747172913953270786123258397018368966338537261955160406197912013609674767111819246713210646147600790512367984185431295108572335676595544952149106972761231599279032037747202659713458742529658334150712572318713256534588903869855349453572700397481061645785069771973148162759243764690457159012446432442346415679381860616629458800368754463064488294043849226560583879878446758700693822383880368363544446289339695309812720037192769171259853953102740248705518430336981053090982955864435403500415792899572644505816956431340317358273429570542489537105942810597469838262163440812090776056271147063078668965986347271216954232868891684978261136482658394738084447484586381612726807774575844540474405204963031456286457124689815050613234765695000322959821617608588797090281166329652379854129173303290408644346270619625079885027458680454647195016333874984648392463297944850343643054719166664724150738767288495458846895447665056139247161117469853747358518131568553895813184657654936403715677846881409849091362138890573177364483319787237082827712778301670628157425337444853709712243738490109524677108187951743489752491756065269988965111623346477915280689446489698712438014974151171644177476995272809153990850122592502120951284466561137999556486766057105498273758495913219813366127636148076090707094563841864796575036376504287574709636508382519903046388248738239812088660488267847093253273094403811920089219489271344366167784874948940119735315075209024735807018800459091571567427635801214732921891436069038942530921604336912058382644894318767874204185849189602528568248839082836668984131061041083767257773622775380944863737806056587106148073176341558291729688089936354075983416766757940410543163639490860940799913135974461364712935413207616926074139206241017339819746357147222432653602101822177146263357628173220135577955906121082427173455300132819422190199853236718951956271244696852588647728820300785691745293805957911185088153148733858311071004623524511166662140326249682750613541151259128605090478487544439424453741729142788672503382471563032933247976280457032150830325515471767545214494461726261254861324596103197617534322139952742772972026369833419200090706653613359336505305129762596411421540996068194925376282968846417594774804677797340662930860615179716029912958666768917666837034560896599700475160235138773077990145935260381982606853375532003345428412162383083944858006851618740510936606763427103337449764300039983836914275004524179301407412369595808764208667548511644520932495368637092831182513329934335720081881005422759130578452177306745168806036732016651275012118454847321991935353883096145255057147469390138685818783415739449150457844936434901007736550397736422772318812222181648796450901038498805984575658366709058621119695528906780370381200763820583579489663647727669210499405396241589968769250931152946003790729377377234696442233580947050124993537672046818121664853860760010327087165206895944171505158489868326188476356085197394495164254084434032323487781419353384112804319914762247230458378254618778034044870169979551622556607671552046733401366587951758176292403097614033915153702735888843337083002992543755813272573171659740461867330859644890377729790976550508632867109138934430825627770898999776090073932294216696410600837288493020172732036600230315374312407102612787071089717310790472432328644387430015578763574533561777592047271978486055247538838890000063044033288880846275417148589128202224335370735201152424147144753713857546065809681376156020166851605150313456975571955810058106438151019385104025310459039107086078241100352416519710310348937427976089240846454436171249054844655568044676626490394588003591045098430261347815861549397515000779257988223092589388694762780207756802491788697743059732359608444284246144063747710332692275413624235662423665846107009177921683523311845449307955268259510445635891523412619453243687523438117839016503493765438827936323440680824249046169629274044463376107846224715664891815861114331157163113074437723274055886592477299135489615009587837079569545039051592599256942266665556216808292331601807398508050564111217946083014984949717753623333816933310959176225693897225193695014347149221072476575308075422434055372874475820233389268103948998229476675157076068828284414940628122225774907664020636283243215700434621707737889307473640881998025923333897718819321168130778942330478106291314040985687506538037719182095237748959583769611218220645259456254265639088397018634768291403987077137389635951587044915078554026180378919135206599648590556794851711963946790769629209586625303903648717318023497438783593518094443500765614586766979663927986898116206862291667319636419225128781647421414759571522641133484185102598545902313807363291690242286696097522125339309914898088436197768812224133472244961302572654725013122265173592762128116805987976392091074416778533362005689142428191286426442198180060980189681751600432146791203891541176852702045741401477924943487869365667941267521785606505316458591790019941715769157626686594396835675447612881404459337410711095491236629474205687666037112799865733957113704355340255831956769905682889507443743967562533361625084653983304255191311178313579166971670244333134654019834856483281749890260172589556712194698502428745410793285307782801856036604295016177536500033466341247961952026455944835367200576027777332310679063846412209441010156589539395529720833281261911166622110219463170377176254620913413627058233891735205598445678940965228239539249900950152353679327426951529066169669878430000248899564015503626701594936691261801023543432442216994367115595471570158865353586210487540229456393295467233745001960604931594437146578938150069418648920257195999431621533766775060868663599072591092856607347611405010609670419716927963748286831641682694206552713569437396423458010782058679999550914734178310678846188896671527453932395358050341452181906784118488740842047758353690562802500116291586176396362235231425037503996634938913937236398468160129343011165120548486867119703179533720211143254783803911881390763046041400580157148539703504465346883270479280484996471841879906867322752845718851011547856705199376889701737474624757012548709588302884666963273679744055318090898182094887979370857072574351105553651953361307718119324155270092931815466883871800687697459376310418552361651528328703057211498988047123543696771795224346341691287095086642058645743814448696280482526856996788779485891834229047396356070132674785206174892208621806037586703580734495043181925774443483599533611238776019962194516082755436743542317243523762220613037532898283200195762136481605439240331723819151190851922632694723851681856141978890614478199295612326436699743612803281148929816042600509666626285965993070569819768403467098894744458268182257356492359956379015776182375853914465289426824818369412235090510356038680391869291981915950376357631511281741278690682296528662375516955222369242531614928358748730863278858869324726505448850897658586097673673440975039674412212110244497762232733550874703403287736618554173729117852775727915431352995750387947426100912846648605611915364581810587191925136639359701483319422829807397099777903264290354705933887411498303900303460046872583298061178657828429619527965984766711983446020334334660012717498445519845756713465547763264797568550659374100315567967213127794970585866584466595818621374020572625339131796028079843788224495532231838749440219620057082696992972916154537404550720908281370858290510262147427915453771589898605011100634398604492366864475303858225605213104332004457605245485928782546879486036630981703270281699747330821006099870062954741201880375014398071155228126765172717406229449384694927439252254402805277194099802377773483244071237173428800234461998592836654715998553821479102944802907247824218716342055477970849830527836475696283123432059443133752394520016386986385125614450624277020726388499748874424385867359252986529899498807037005716007705071050164014866494783426253765501840143633023780102466381739236866463789067809208292416865797135413037900640519218522745996480602118319405162743235236857096149759814129458179760912418522935496458811566033849869563931068739447725642350479808789023377765306670772605863827394337048071181789180578447558878112083805947900216800962398331106538313722350355099349492773195865176404518700650398673410844570709806969848203927331467270715652517442661901043181751672861286198193962008326582935168033603721353499809360969598082607290132666741510608265164815215366904032917030168504101887610199732110362394832211476308770648683308613458338209281602965792896086346345181643434002893325630554020356434640730209145772607408812029833748476442300449957436304290225087219203798944086063838668991117562016920031186024707361511510613674342728582609355645126427268872010963586108127070671688448183387652593914371757736620777623688540676458241145395358076359745787058718921526533899100181230661775159761600906548573424341135080214950136599782505902170676471465422708649447527558265341496244014561948762361270068347346097039380321680632332897257650839108183448859353780685276860439664987892531385549689410598794878126611256426241950497828610098740927183274857621320379504849610362004374379295301032787034267070892350505268962987152774716594183487929756363430882847235385147402609635570960421926322160519813942858054111017507509944058434513316028497632065010882203153627208094994700641976138974535418869715115873331227811999565923766425784034776266934258237262409567340840580321684965821794285908139972694344902314780234062414891316072736499343339468563616807925064686693108249979503280007206043566954745261245531450788032665110877213199946395749677042001193845205400086167922066931399584858281963655480172626134473869668832080831662114259014740829357822738036696034211259957407569796333675555162678114549988768963785007108819924070491913234590021847768785358753988571914654255903741157702631380341389299524189957742657256469573458038234171340282594574523734301780467172243877605283047839355374081730936501099353690988975113865302522559073642821351578508668414858620891879389550911737876641581714225709558362450378475580471710299298719052979506902545279294088671397592892827062586322703795367509731537583310721265411877337473307622670084891761913820530019524134796120454996444301636120916670700678504484555955939854154176978330456173401430128958214057490877211459913501040714796710903254083212082181240277834831504026774418576682614512986000966371022193257056477014401858219291745170868421040941884031974115310513776651497218914640903885654932110930007147340076035795793699869136364168287172411493648383090717782784422199369550793367925607321367886396114579471297350666416444561801523561050593425640744421178789212840590800572131218278009197017383622122354378531403303876547630787247627420342424916144844725126690782890679953652848714256917616705108466798867409250127677592675985993950346268564131552919147843388394981110864041365005613476336297208971898925591890616825242382660336271053259619776231944622193226117894247029043852983081932936783452661643915003643672226171784444275544768405429975380502473633811834047141191070487726440298595026705946104998653745908229672445310316719570729007441124670138410157328335029077913572140654766888348590990804255389591144906217679026945864783175899806888827629884192277972549527134859610807065624121663869360499372230308079629703933327918653763581200198918562280748096180694513198042676051092128382930313722594716005301492391781938323763854194282382866349659075458188132759353043278461648574360863610980961365671304410171156095378924910183875000559623621439312264943161947203476768994987978368158262088927085065312060232142604630479252255446009250310507329812122775495503972765303810045341077327868542654202200323603770002285136883994941638793378778568184227979496912717932167520389114722756997037314700986687588699411213461297678382138641875221599138197094478450246880378157534176382288407458802712930508795264658898832581267617348949237915585526090566966762484435364282704209042088147225681493579289962424851433203693219236983071173772614741108648860776669299756788305603011714011555577445806664355453500709348242034105540103170188882643796147152749170309972436333933829998316075539813792773021761867698177178499475134250997215776428210993917245544676201337045612728193609093348063764168598075435338518594732091521093121782624346419954412673033926913123634052888102422879952453782770286779739435342122098261711761313705978795003680586343474902902399871320074562401526505010797778928834756286555079606245539824052881799666852856706054943072575018205337487819385102926552332425795532930573102080843202131555672666636455703729938361180291304653639392923684527393358280374333785607189080122151965224555855036550329245469085037034996715558716851838926216694045503727859210988280043696381537953051895552829931952805437955598776874433956349125188716053594710298073572735022470062997334108699422089148358995879939506947111465121650446406611509054361030218081759053320024247590339981817261494019359353994182871901510432162318097354204241579111195711204771533693827086493728721768007247169749235438804382530674506583403880674593970823463208361058546354103691002980281101045257456876507675096482596921602834675651770002979453646705377928459865416818304385725625890336619486202784937803992902560026240178492553910981128448721121795185994955998186902487700633467549281670590757024362680090811206119045350061884697864685347159640163334341638362400010842813831560134132775186974648201484325072310592414880353108548693022704289487815663169658666705390054023675003662404968867685999347242181502207573970817941286896371770030657192847069127381840233163390474578143201285452186796156814461827409615704409893968780571926301757263258648831847586634921699767400211323597520942390671913162871053532489908006912825018673148306702754130733699685843315120363633678409963617215534176817054754041764420121439260066745214792892980572081740920571396964425218897287623604771228967840630179588979813299907533468920135366315510079453232140646461225659731501763109820940710501112816930734297478665364229965704088812768525410384012252075773926243322104202188602982101439543099481173612635158852656609611644762940508368725798870893502667570840888375222903374737588505066627092387292716802695029585975515443833077036552438304823129880967561918828757403173342357644491749623762801696657511961408387663857331711118527331025525280523118964805128367885929546233250074062677373851348784140820003092422275538333527013953680596658424048361761619642502873090833292603298282584852240442554029254631115335819319925837406800944716572330996693750924610888484248880495227884815208215017730795551256045824898179078542792587909836179167893808043229873596147897587802993436127339925317651304928828177644654972557332846178833130955551306982671096354139738261943976849176675225063840729113156969022756426486990409694482383766480100388718636739104801429369292291301164413256267598337811930571448087456988043750532053473568181302255566310372914895925044070504604035987255681956959313240218248542571306192759499197590828045680181514949256323494957534584414203286324420763321289747051351215417159083090295542626936860732584311552673233041760796083572383940753418829579663256914124352088192426201081396157818188995630267514958484533367546564768051786976554020171660386640725532177674620606012353830029465286497482206278646779711067561883182916162103738312049771467267126317070783152752551189083200285488660944625272752094967248774426942114141668639476395347019807937346553621335559508484942051207801746189521264582221085609871120667301757734118154163282697278110018359193644408966683968301023881135152030343561335515527828893972119526753804351233388322955320526623641262288086319655091972879834723878488862108026985349744366115567170606224210052929663311987974228521996872948242568998670103387882199204621832043939512657673501837892437959158050684131772168582095897758907271280980505404829975850121886594895235987553151720810506263970187618125921175731054580211403885990593990840121449363548876668314530740452229725269412714036511562119461608923229728386059654757429586536278378999927127766980214155268809609898355850663092126373802288318875998891448540673569739536895542547877382769816900023961598892480542035063575555271868288262375340796940598711522370767988288021497950813629906436578316110910656424182158049444411311905187150179761220654220289680741347818405734233282614925070789957028847245766201909558378502650435135882109149342804038655039886198604779271215864401918806610927789391263312722100130335890489850481871385822269643798690462474815056513012828150230538540463754028470911994580786968546025712662360976235472075246631979363749799901669421647876000932870470267551078633275707407999699437235442241465064167416084453012143076760620784028264836857309732860617291650362607715364638543666757430691132412367301803482582807700417575337497537375830943366325520988987029846271486901728626669991068509373238374785567194373438329462659618022652695062734804101032697418754694591780894896323195433725591667650041776973650247951272053438795093834049646227791121435687992327414362975761575426668788197118397119820173497240961128791419726470897067868273213653287945445697182595757258604205772649098714438572422370235815604776582616391373918671015451165263835972979057720887736326682847057145687272800096551905874060000380488230860078488123793065216940851469632885591319446371438592934035715684629512791440897397880096818088525938362713895514864607548319141092958575511436605594566543575169491999153503830325390008814620717029091552884103497572732371995889749234300374148853941300659361606318403068201126353238768513001358244249636249575518562560289361075149754516323410172337624719265062684578883596438489852509874014203901375214051723120745465195892618530618108794886300843681607910617466886984322955049270103140006627335062469968270149270727264975763779613897995078259761752703608624362029892740087360079521466618049543971936039835269250140073775994446742248377324905022833919668041638091555670026124393589812726352585609730426371044824943787417449531184744858279563109158239586111282192284207294876757094697339089973704612772916990718361821044588499700979908240762869545761424931239271479627833385356654173372514933090369388029343236293881082584549007936870566416563280837954858149041993274684987520219591284504700521208545962584707697835621135934581750644052609274272477171886120719005471105864168249357833911553874581356641805189741895946731405487418700815045791050004607849644104514320085640469335353403647784831332951911372402807708989384350723933195566657922912388239373030899422123506139965012520078671791209135960103528039975036544983561476924661959620102639595202145626524495109221934576156835726728351730655755527393776009265701545323863888871949168883022233634000454541040971068182080650431411814426236174686985867371231303661763635937279914923931157013860578179982400398429631038223885948572093193783950590147789359089681086385361249781506681855023199072179731113337216898777113082138927563578162107690315899379678816763628437440947156642256282425217432245574870679011093747938525699396629030998807997521812745319002662972953898254413997354923660244543770383492538040891156461152642282868776187316289139445071599086217677978016303055076864822274110325004099938795773192414725839309756145950128337048874221267328065031943856104353096362982538432432342800190170002972814924525452223682004187919668864273171524402347822731924175428474790777079306320499654992384208569291002289975088616213899591508734366494737091759828817494652919359390831394993918174790108630927197038823002047784743899509650269571470577839515710016972193391367690860042428666167081414617942245154234196942652827689823232663955672264315740171100698391881316731942411134840934503669091420431613525321367797228163852777079323328385755827094417887333635883951271206200458733618827319999376480407831450146402289528216281594946460333804117562912084503724614542296690889266187425336292602766611456586749343195125130105133782347053250657662037899878214463924218697634428858416395219842757984391615219361792272990079180564081513968465574013702496896932107328808220204353108032517693863317799221266441708356954074040077849272903848324027237918570038176120251505316279511515914308215092145376403303628764306873880517022727568629193312105727100578287753130647332376811514371719209054546986811058456384000228783930410986251151539731165316768299927752379531027812003457451001136616031082118639087394045212257379247216581574189365700282735060414419814874685742655688170356215502614956701444179920180785997452974321411948824986029453708870801638291261502836775334642152596564544990481199051341375061438860278105690166567721665937109977368157226063043434431681828001258577420159397700160171895119371140917841668596054036337348908825781912444031691832263184008336273555175159974962009923402348398071427608336971914215948597046782813870951616437817722273692841616266736123602843275015863841860289110221479540821141297502695792196313604295650032261209320196448872513285808727793035971017004988348699553567681858906745835364351484470288924608382642457202759863757136773524308794770500730116387071702901508945356846614988979139276578137556258444610853169483275776599629495149386345958798421536055443099280921206693987312665117505339235044454349183664724886949140254227355593959066289444156306509277752915747979215217971915791692736152613043640208931443853183703269106106637873323586841605926627622911022878683535975733071220680649366778925422692814830274673327655613470334051149653400051990457257446939466288858847571427921614374495217609179372914806135853481273910404842876176515999595133916670170167824052620522203637920458228358032086645276676762804876584492283031493849091323230549474240538459037733777472771333363053047828769055927925708565269212908021708765111187292204087368686833011433407334047951050548942640540370965098092132987015111917796313325238164448915748346288255753892829465865980237823975284813184682653002718050688001859759708083571272747593633977708651566569278648699620343646887721631692070691576325137207043130624943684664038443876243638935247516568417521199609878466691365693737546425282432960930637726326134992734733333256630350299517386403733368745620077733494960023742665241509817000730560203666423945990428078702268812997456005478134053341751076856562125602446746479305390581631279991164321072389839887280656512708443199360540644975798535027752655348953084600201911557131115441802406032212800653451232226860089291700466604564743818776870681471541432199417892719438237562011522015481035786549534870508012916320526378587703051435408721622150223875685955395228247192722454485329122592040462536013406964689834432796735895201400685682391583290279935185948556792942598096228341827875860290119526797968191112651079226239275157836976893810916395069026364009706118136806013172200958297857886413542940097665511015902753760507864084990562745222816988722389319374723325459344041740801045736922130508817712179835939179149702677077294792498705001154181920493554496357540575481312320575720480241245350502205291450464582451073424750164002399614861150104813198271096795770396896923014009506734817925936292550419365950404569078781110018310659176934726159875156302182473111480154147218359615689861439702456236161443594334752929535581247118048799987970237053799133468751964087514168773274427643837500205941197025629604604952847592830428191682980305692222773087530472887124869778359138572350350361646232018023748126829811688650088735434445564273451914254777130542484717836172416408866369490464347185819086745601928006262434952879084719811059660666844784319710411937121916628611114140582091461227851469699011502678175332354085436520837457686070022822987793568664952547121046321464366264504824442357789474151220956123082187880110402621826197984312172750681471924356553325665534068052774190466742150942271705055030482935061611648592122413510440250689739032464774339039052760054412604891777226463971473392263126244946627862634914174160333325398980755327950436161439539711482618200718648688084856616375711553402790188624170589436204021995258055670352934624077177434070575326544307638117304297002888168192352564698173280251776795248067657532873839444996856393029801897555906560246886727871568985111636980702516531581377714299991590342308236880734053437477588638206328860059177326889016150485586357334470677273029697183275169431859274024218047827335028525743960999564780680957616957767220570080250173693897329265598010877160971541425446975848099822577850650227604868196619748789436799403151484079157405668833309268870814021137300242944395256933665431684233191528342463081285344732144188211300363306548515351279855294133896942256781090037767646384334541242060510601818307032730750619827197428122715798727274679526455094182738630700542046636160324558094704751599175437539077325653210124013645267266277713766520509540560863557979460839246176305781448998467194547540000386807625743083809367279040384905370051802360533652357105353665752405943159129250675487015328747416738808120406868568498534377106805109194802036048231144195924005919561618857760605132292975484708397324749414297015725863556366511436366537095355495209725225019359792819022212986139264608877014693686659001199270908602795324277970008230976384890627989961884342113924139006574774653608305567438953949110190518150199644476621652188970231630563058128207731673546385567632097982924119298585942223852572815221718752064477634102950246939856255535746395972453622677323600459530978910843793490110962382499474251339567405636707717864701208540006097599928950757774258044720623021386177825247627130512999884026727324076278709375491988877321210515101143482185248124812443924092547963928084069815255042446485008261321112269245933698099010520518937912416591391495313586256556281427824221901997702827075030521510772633089583272541609218609364239255560108503698378098985645491878907203317544925996797909240287019219880057615979740005449456305121130695124941863196745923855848443534646673755938985246807609902753089852188719388906499641151574665207361513869021111476348659075795843098466156645047556182801714803972142546316364126207950155455679928618745544649946400129683710220038462020032150342629679321892706346944264331397510225135458805358047044743899433826142343226409174867256172602040279410541973478332333303049268312005709021932611655963554886544929205141947006632333773520254807952652026035842624285750925939015568584280874332661831341959462579225249239161190472919076722222420287664504396667368507676533781529476344787883040762320915052783689112182704665244176992277699401623151581055151619222962785528985033910261940159035272438633129207322221323132467076943085094875981453344521463588453383941767361248805357387992133811040615029083756475772038589575455858174636392491278850294421113327356697049359930052021881769569478102639799248259952221390697571555973764639574930007360747900494791964892190129001201466843434519597373912041330034570331064606490767939695088357761143701534860555708880317561371791623767774009856969892411098366878534921589731113190071989315040410318748665791222312785618676800209637804176642859552570789070424971088114041078082648864692914146585353171685272720802283613869459295494455685422784948251664816500378745408942771963589797969936628742059582005173527940163494375349608861127620720021863874526076592298913695483402181312559202790769981934661643314876881245499351982693972116942177111963060463542389003129075857677319293567091356920547557708607072792563667247059890934449839053053114386589753938189668324688701222067329238861035316839945155216956287177106988995476848046671889972629317960146704388868250837879088616327151270173113793132518811073643633233583760790815852648398284824749257451964429097250742780250850391852207750638375892259426118589019105348866254530863686931153966704306322056555973408536710916123102742208787110160628876781025559008840253089668180082226352283777023032994080391189391575782497212622715347328884236463131879225015410910405661307282978079639859558084864745333138166387700381249576526277519773483997937723368990873405956620226294542527940815699689153829753776514510258246815709098533068594548863138687000787214157862874411349916387369838094376956291894108165143482471403624062335566287770364664796851861723619593437719130114686303550303618701858977714302274309758077336758078314821000677427093128418215370560185080400541362899963462944551425167848178823333468803391877429170937651149407647113541186716278380594353015402091488637976430492950540368404446692971309046075873734330368283694448563224627256305777477711811674369772293077542710356977168513606426719574518067575523110298727679903852592884133654980266457683811313276144421290046589707098405196850258346923876435931549029091272087618799278599854674256285307004535495379253458105464165269910509885857398285805332534366616710887151549301977728929110852783497607460063011800504933487642696834492180048718187510138147538514887358700778101672141305749165842530340696494610491096351229541885244072343440118262530684897942432132340278880604599683083880615636317593706702297060318529761489527972944802833558075362674270907673179790746920438046710337346611969590792719379811518484521439615699799248909608878952994997601847004547122596930663239472640567279192954850609147716999603281322598493235094168510724972199226719872095882243947331278818659821400780214789748184815865368510170612286152884548631123573126637289155359932882210851143824558021525730292816672321340807701916788336864323587768389673380873326630858876360210220167213495808815680621305196371490180808405715982049485989696124750968180206443700300127541192475656916719380769893978241647744910089499909688612964155339822719282857395921452458277597403224086426295369068119585923181202326939516374885389422768025428858010973571863781457545317133186286138458467155406562206959684539954428091109970133932878872883779212104014495403447048210134348477123661531583455031261034574757035959930243429926526259086151092707672485745360512388510272656408082205017247939556303364327247757365920836950070938500031708040456584111035598018719110940429416208680193554281861086626334316480720928035763072827512306826248361496126649566105200952786373151949462466877985443969274420729542569166429769651115946607227449408053717774961932399951548276719150425559068899733990319291906605654701128538588892580066413416753650637879181652321500244413907450886241114842632580877013341616804479554023043165801276903782596098651812443169333543255480935752697609505411248289061565220749253743212697064708488120075377039757886445301780205376430211314375152091073141007009587278355351128460379119709103399030181881905660120684095183182919727570140621986438550180217247705034752355756351229113075288931377579455335566981843080327669121116808118796877933527147897245440529013727319051763442628424929571253796300855875304431548040877659946954957366467611909075115059839296253954769670481488828474702005379109890573562895685175014877315120545621608672637565238409034082871097558989068747324228475152143376264127499992124357809583387998052047497157112352991389774711775868528902642977446614538781556147430433850350524642067438780009985313540212980900169160396844611100178000285440256236377901578128831356755537531049269024675429273218558875090705659063915131994733401391839982261738208378128157532403039400795347095604929278640889153858955314300375858446873706119130502739521103827493983040273790976594416568713883767332185518245030977638163954467480918218421065870913366984837415905083970167293142442940284607351139969033288963331007513409706439064280895133666281883534837673070840579093156923563626843570838477283811665296916850385792707938813662100287075580091855946668039096024419886263354206049769186537219847729613132886535638611084086098845458121726078428721673959289517184714573232998095652364685492141835851910163922555792444793213921405095517489134437714817068324067276262630718300413566053157469270674384422756235328616347945845470441894932788680980254798159430778316116380339282739944498231255090380262994066488080174821056261749075186182161077318967594495803597864975370565638522554165232367189092401594892596009437007101285305141860591889203239806070624919320959023463653700812279512484153152375807247795622516942610266727692304277627474001346342903939087178094616098386783042459574267397071855415220117695270956659285393426641476156994609964072242206724540738065327383632031241634366281304312753117240673494068319195191662628706199332815128805096475171065131126574486342495814443838278748613399423306178088003548988838709041945118536704699159514765005294565937518129762197680460284610247373399145539190854369128246769661183437745105548095004823773289759009201974035087838990689644716887576113199845145376486848991146682623443287018387293852381995308009398047894977341132701704866787212062492526235214274030631009479979434487946282226241971570714866361522081853217788247525764266457222702043792661449091536477185956327644516614772634593097060689541844042921585476745574124811375845306598895120878351704010961292910290703508059058491533516712230998486624255878590261375379105202932749551384196728445691819049276671515083587626274637573396014172831977647513729439719120253068805651523747372695738828586368739404277885112129090255256818434445630451101612906443275518218217234169279358614611182507573035106012887082827980343457892278868459561224841294348267948054629781690244094321648216428347057424988348408792676889888967659544132037439071081785769550556151157858133222698629077114233997077730631995945376487060826533742316253131089494911579371019383630367371219186845557456043236716652408615742209610188543378865085464059927843036354774931522989891010863106180817061766504388051631110579712773505689146989952419412216645862800273573034760783662996099447473763295150077285271127623186100889266814388972150365834013375504829254246652941698983751755440575290476939782076892904597638377964317222856150165324053204628445293399676363116801716031095115608068009291580683511678229637136148761659326656400240914318839865945754300889915777496866898963131784478956677812011239048316766966741766023774454133473256652907118757595843145926085773750633879661138769459085343337816905069950104623173742661846894390351399196144793471119675977426584276952859241723936021516504055685861970923545746671775452641531761847301753892228053480891376228940282355916995389213112718666845951395567690674336450783733273206122744900936402358674249083735935536706744751310941910170269440050927467555551860002098566357682433327667350737757574733901998456237290118506085182306407798046457909239230617848060375903280567987126494844206300872283689198980429733444379394549490755708657639237676726475562723084855711352081435506348597596133892262004545894907322100802620790031866702867193814378811393631669234375447187923128450534374669260388352138425094550274546854100898641124527231019701051598180741091196706616270673347941869791022765181516418658942921702208766690444255913329064106199066689538518302945754048031458304753376270679856990136762356114753935213886772275324266559942508538624931660881599008272545957560946513359524215590443992116654105719514361513062092966823157912887998271370700782158866693681706489096736585238918676690134288142665930083120478029493627190100703090869929056283078236313494850937484969523193631134489369232310896186355178924243468502788307919716333957937162499807463899676490120735850536028050786583537349368919530578438195662121221142683489005058878417046314988120167873888378394771140905094733083247774263359967319806239953634687046281819754565811065248922377720271811656825936193529266500749264773145359886567565884961515828204523559892251951769808917262504388348674049354971204731217984344585382384297327289331593853369508091928129294796788333655089880186755898487496901553698256529935710322221781260011072398798794845638743050256149124586319096262348459732228534178620865621964551983843904677022635669565411494698866677614477775253843382776300195092868717780962105360877860828929087037563713900653171066532173979299102586402349202137206865083784901671954955200551264309522675124469739163463694208016507786666175695155963861311476528837498156920887826414421501543666080719597980339097465499390099983301511658939237440184225612008105661153081471738973438396451059174735682668718869418306291421354297485155379763616250771362503022548797049714649667485197252459132117366255712493203257204259703304488718403260179753238134339006187269308505706770811207850488607089319666524105833575590853082368656362013520765405742747753977422400587270438387611683308207797522451569704686998721486692040976715177357716655625374153582546967206596587584707684648616560857518479157721560468174656990007404791598124712383008275475050630196501583156307910466801234750491674728208270160985579796435991916933611287546712321469103782498586782352649110069141388983628732781889757322904363187384253588651618095044380876521213769853221119357814064934777639115092021410628632400716612807149831025713938204454786593235409808786432651643964252678393891993641614659095588905581063910117637202512345636987216839938687760956604922600833773847643663514842935425684227404344255167756684125004801691896228734533184565662014677661349944897510562338014846585804545346547473075106317164971110766220961080967944811165938874863705513369233233239951168015758300543388173950336689938852751171948799142068624041906685460092314004318858644223277597409041789105722095676847060745213375301846967874648985386242742716792724633599545411880642968929716755622388087243462272235962432511900037447042619007530251833253839269590451810969438935943287705114727639708337364796709574495540866584811779672888017190264783938648881804793990108202687486878651744840483236888776340034940093415369053941968680532862267480997041952501364772598436432974636827688471850380024187626195815570046148413946553016934245151407403974372143694312727885860047768668859547631504484039482517827965931544331076329234860310189301365502031124655707511408737476049601864615703052196738517579585631516485949321981182588491864159506322041169331192826488401987089876468750241158800710687312194628953508277120501874912039382608223121260141837790891421759563835219753536496396262475409945016007879232365861585368428670737573661564008850789019075112676864442689310162189495358341915302174809491710814332299504019169213476547585451029126538417836371721593839383458163313517459449665615038914026118630300443335398967106959498835269179885499771388355469704142939898408284207101379013823372318222647419671625204649684814158433959358919085560153922865753231749322283002570896770737432588455660670148836705107820727007007531822408848826355984945410266103250180389024871813327058761720864415871918878621806211702483736773470469614067634932748809625533458852646759617354711742008189422101453077746174831106533844118161918928849710505129472917402983550226555945071658530715043767362682598856152975808670274968040855064364635987669041382655117756330575041817011299612627788171604797794472211289965951847784860667064959260767168858714181470490224934177766775122696572551021747027857111320838835889575050114450870099307918039880520819538169498415681731127812425551858316848683437307542989257106655976310643578768194487984673516606282598508114898939446825846048519347152962346830964913263935074035010604743866165941684566682981599167401865756745154792075133816401737807113097659529913055752831964742110629358104029479676344729953048892383855738489442697906564372041822165721091851555074366760860074018927417957540853004426784449863720193460904005505441452235222330437807582436832435577857271769054850692189399240761936221167305017853956249205546531876688979058853053045928421165949403109206383019647148166123920627081364741233745974550667496009241770381671180055891295116925608205683390987753120414545545119328069668309674263302970358762034538557927206305343771825904682103634230705826666727153656172013874449052489753538384349706585258224584020730646617033764049050932269258771053799621148577514311701787612992065658133815198047520293161030171661263617750383058686410851828387580385224971207391000815648192154371713156305338414108499002571242915064851396655650178786240938761044300381555759026245230701057671431465666364014821229018149736612167095939882414198894490250341719161910581305814946539364989388873510103541763170377454680498478992301818831065451252482280631150951291739629360610589691201848548288404967427575693542259757737635176686169835659587695786339129686136329256022773561902837884280950610245570696580668110476645794697897579897361039046299561686661797501268388951564945852405805198668749327532208162738911877901480255454273797362447881468197851410567332886558983292572554794061767801433838876317610522330406344522262940004502035778662563513369806072520138826974188822074928169555609003353426031833836214774596623610356055288882139313422040207660303220992072863217126701159456395885278552223722485932525508749517371315230968522019446766420005210411346108291787642815126592632581759419927525361187032031422391402626328083688364855906659036584190793939049367877358803404033211309940591850618806558125638927713115894525539145352691275055885348088930721029545994212989219203988179111648895395344914405051851129168742202367443059823643690463419233532770534842637999437315157334874599797706520822212438924883245850360189061536224823178991765186173421876852478511579530839705537232705317589213745933294898956104286738669860994981205368877415381036414654464040515897712806481652662216020207282751169059348489057646571912909320976555109589801990307551097852876399573609384849280012405263709204244566680460115777090877792556156686125452155327142939571932332659431577614016363186477918840584642565924054392656819243228233315052527601446806590568154708738160382719450475174523535417131822042093589271269822462564219080322132301246677684118829531822794555396725621780409623912587730842482717698756038317091231069441239966143191038359805623620795405189783185904580678871898459188765100600072438825605375006032479386332820527722917647394952362739519611030979438055808807136031606529734800157058598166668359955089155228751133503614864859565284538476808626776976415390281818228976705864539821332609050139689038290404789427961032732466380494042516460113738985963165346011146599628375518691385854596770948265949769937827740142260685572001044062532272655765269475338118970142382782134349070294167080556751531966156590104802624803207429619214300787135081836940389869686485938293612220582784880071165318755111309309858640560688130774672559437577507062048352691765561819163166222869799071206291288232045049856436170722414912479276633513284547231753193324500273319607749635090541714137204012143871767134811059474362626660421752753327555804049894386215493241511194345193036974255870288955304264939036289118134633196244155292391454604722043042550114594610841446948557968501062414397024715980131140348565646753149065825803530235968154171354549830319934877437516302157116645441236689202593450426097982069317731852459639611180753422716188205953941293769206624802869945216832084480589888051057520808605247834599596057393445507871510796857634627169568250988144785196875553953006983604374618317036785823734949773453758165542733907974071249739803712297504242940039039640358118216134781560186578449449722726151287172932791611289851223558436418684433021527557387893628289634538981364179975691247537437605104719821645523153060783856091749488938220461075321543393163657458939575014299681256460835969228183133156901502857767365351115604979395024708677551557010666135181497662371684427926565146277727075718931907595378513479932068483452667194659540226075287431046904218111045221175551378652481597497162797283332582660195780975643001088248601126894070612221367496421307905545154271111246889324413558157398194252878963585238722370428682017634619417761878072006901588878619992450917563721081663076754303650690347926802401805057237843474707738985150120435374639431511337025624526060598424224807021557059516272423356086158007946177012429063104081185638366079888401313961203591202479387728167600659593100546903315344537140407988364292683248386978060801399703464096353723198489214917632056787698949136996566777603146945438248877725264746032476945405839229987031422343422932003277597378392591472503342475243056322883438787525613619510140582333296772289987035782788498332479726462737969260512076602817148293911340189462555864966304400258055421701677324057477002076315188865936764456854307620583846612516160868202550315616032210274809404024489194428301972334305405999934628488847196888747304614480625663018129152005490235403816730792783862328168198099101251642980532534306428067341425410842173374188178159705197573770699722689948022686461918024523618680043663960139649517865152841346600062095633851976801250074691808044845534215604433012004056344347444556399435947175598089175868746911795265322346328266824802545962169245674668158090608231809234540749084876464839132932118470116636839338360760975634998772622680072002296247835819283184188553839042680011605983229992275628593588210061389021618125524773836453818290233483513031370994908057689321702842333190808001237889491377453763844575317363968243149829832870250280622656613283049264573736170549772075738502172606683235578171134122487890605481652582402059934677670061597051843296068735057733775026604007387592007555394339576665053505283141229467898548546989427343214818088116387598410451898669947569506204927330025795260183712768397822787438720529738004297086109293104002227823457932581742541893015750674732773209474117053924625010339071573333037494075890889145793266858367696847240335399421086946301388281225087667891399771512581417368780062374159866146931884158563181029166968862971625416685673260193721769964758774359798746124318216766270254973600949392978128629201925195943406925427426761516942624022793255848938032100398074262007464664215641362078595024112843641409817600117624836608838506434240787166382159542988711695221583127650284095203493026641464949951744745412144423161249224764569579816490610270691773590541310731406786526532646866491316178224931777713577459397348256063685450027234044079849605131366034064571454502137845914612788518224166251849059001931237807802115760777416809477045121676889363330759107050305275802919487171696303706709405780065846722769554985484954320027121893568398242247065933086047141891514375073618276632260433302511512521574904011798041585629541475949024036608226595009190958938528902228813763650833976325607228274713698486663188995817146783068486083312155736183604651785654208343963404964384436974690147913655712351416046674360539430212133501167176839598556678894038867990999103257457013407824188778691957504914779325574845432015288219224537339958825807902789806781220998010225782055560543185690536174195899435787819980465117907794206073310905965910632168480948488604526213230060635740909523112528553834862587840716662295942986009126074801979404845763326293630546540635576912033549984834667834212831259182198996741862265199738093513525400286215092896060543413351823252873725871969129141917038180312605364771736981395032227220331519827338341350016909175155259277972735200497867291494976977153158981664138127447365436389805668849107558132268720556792181678200913062843008934934322542591705173151549345180108703457240815369487418723980355544000012613399981098007324728975038252931491766365403187600673325854153903335113050959709396398397189014235818539595615931435490394871672948419620322302229795591873179824217823847402394669861185913667190100139070829378053659156061625327802685980805977459133821089981520608614130584319811465518535871871349297577937076629097107648105834130057165439575306868105243925312180473619876785739907422089951378658914894763816625469768030324225791596914078794808097805388286222650079073460378030933290380964756505838398396260029232996714316010040729618033206466700153703387890691384667728741087511784706606713438070341168438886485915285528302897320554135070073459279408848600973085739921710861666781171850045119587631560135650033463615719437523877940846128048613034208062020609245225967812914607761424800475336834027306800195018187841463776511399469289770313144374901017401586938075677689433884475032925350263250409334514137591086370783072714832981833336948782553795346468985033075376682864704414081527602581060991331720453757708900205430550058282585186801999190244132935098844325006103738721335955188087984542390401021710977112704590408376564462568955865090192843790598948943968124221475334490594091617214485016168516203674909606035256945108554603541426944641013970083032335664881196787442635865224421124141769476892252995755995875623909940741594104939562757818291848456261248657659300004415738065921104085277839137524001682890155674241667021675648044736561500734322383635188332891306878784921724430661611008063087310338062297528170111394843433695752762665709536841690435354931520044139295988884702307078980145404649949264516215425960532998009916880597477183488281497724505111942787026433838354606792065094214313221953637718290951286175629361645447806525729534921334379041521948416772074521345855798289635621430477062541870575066973074605609664214667614225711498441631242027817256031325080298476643747805251518349869495172782651816718558817862915952766111975821644817814260345621386055154516054178524923856718863010911671946343267658902107895597993726948446756825272065304910471203916394459645620744032543372678006869646251366198012408865820027074245018141742415879975336486988009504356863596201412329470111968609813393183875563775865002315316363033358504461146210739050479405051458827440627431841558001494847025797921301919346760427286631109738336736140657067173882117279202979080383207275265513465402967397640656524263181185845191789045190092306268182775980410657958626110661976594337844024779057471257949867758331610751230334142874623832023863571925555075613278688914779835240510354840434596487286348729537559971163429826470773314735944809203869251509141819862783609886963886849022468599715326965001390232735163197986390924256715064402999353878679178315980855250398440656250783382783060041155872755004392139805177785336105353391534716917527420777249952568680434992339649214935352935301434320736169855387166467754711013954900528196470642925064987505900284197946669405831871420263369403994762802432149222451697814755349353690052900000811630211778765555079827576301233104467933539396427361073760875856475492790385608098719832107394673554532762018351310835288183948603860639961037201183730346901578210649132805708186681179903897423508737920476469481228993965772020570336464190068393879727056070831538035713257262883262856744940815149649102827522809390524306159535914281916224640690111495628682324519307671428961566957227531525644335266112969284267978552123795692560726121439563861753981609289788012325780314464038512764363294334770635755048364173536983179506955519633463572659572733789496236014469763870446692908143418602437202926860376857606306688925865264309223429056172685723906003549107076210074842369309004269526383653466475226744567700691000111754909812897389759708347661718626276740341716633321357279991788794445029037039919184640015956654279882054909878848948019143320619360552743267246348768281882563254346962499068404508007560217505561965020779833314442320653123645652053976751606390099036386414451821893514878227847544142889843780354622696557934940981573752909005308937785335852932892296183316992320299558837013249298453854809343628818039613152726007672380280657489965433491511550610802118032565346768055403704886805029588264307075354399827713899177174493206925809529489319575445674432120757149704494981037290836235505599423059979257918712304042041108288295172994439522711823932405866301222022943238062976538440755605935234380092432871885997051506439871075869282269355802674388683745546444571711349067185634810735015910423018341229048153787418512992296822041433318353133280656481089995569179021958954798292753228565728860818326758084743710540665201962673139279683231943048971998945278081878743182292174264739409125936317978056913350742077900544480633582946767130911826614613170369707960611440319269932595674790723095378817036326383743649629471788358751455417937496937954931323393051758009315465018043622380155788466748179668701974924236485801800046602500790809635224800019900239166011166372084407875648912448162935182973528201962057032345914954883427023881298378290533222170981495258921717161343581144833305557000334529948206038870466351208763652319032217145342397415897048287414956856378449990446307329330883112513091801180322034533895239343196917918318958172807455571324793090011171608266825909510987657629819289833752259504082671707927099068717893879439799354998099224906296932111877170301457775160523549117280132694456218080683621641485286920035275014408829844064143076567430440244785040119740598742487742586356456242868835554760233183857260084952001627214746347566283352748188927466526919578750008738171586919346221990554279458862909104237606620584545581509219827293856152369195554421404874189553556088221444622014005456851948390544703459426813502268389051489923219544062705633174550407753482557603074378154801853994766709385409050880592976540558494391004142816018283966795935845022572477099388139884624264060555579458337866022085524524154361148977593867106512443872054841420533771465871739587368531698200869512433917231120236921923749965109453914627444743028411117178212129068710455093211999737454021289561657495876644200978590209206108576997144501241341166978419430759736623606817525230604148437325202385955250989677599423551173179716935286245397379571301558604174086670797437317580120113342302171405601927721372847018695212173758707384565740137003740507659495768360147861762359057688420925013794462414769291259980307053285962332330995389182430321815877570342056350112929057013813785725332080629860700543363288907446822984285073158917964116048380344797241862555838533719923134522979099735293735431867249422390240571713560447998587946514405391790446779380485490428026168540513912746286340023868679199441166536007967207557169760165568501028004107321574271618829766973286309578475585241537783163014065849960062079737166503199780792694648947393260523060141779070400420713624055234077030870487053723523259419196407624902338126106696218382910743922384505195484402801272774395527057179607873984214509947332561295833659610469514620135088780328159320243137717556105862265557682878020545809733365690891669426876822663612608457328818157471673390214411853518431258261171647149255164455594661430813288782667190089158535663443123595224192448852469034355628866902322922097362491017423843820790979097823417947943233686947496727068457969512086075185242244847596987212174264543979816084386895639409346909107666368761124552545354644878936092154594099789272185797215956000241282472937380037358668241870249917588924933889831395888581423893191438128191328743338265101764196391717317963298416634233418606226279481428453481998916492349955681338979902264468885485236972858197846119013535987395089133606471690929987907702605072436911743801929035733401092198634851402733009201474484509300050583227468921936396433129595594021843714460481224388697210119300066373242573772630117517754204484926481002100481880525088523663329480929321238846009207907946672839277792805505779908867101605544797535007220439069119461786144246761396740067431756522476293866589700112408432918303350313234887213223299696565377280550838269319550781401821471444333919142700944366317120933358211982647696512241721468369191459951316440301142923379451959196057960377928621845678566068405304497234439637129472008096038214987852438416529655478945967505222423935537735054077101828399511201178688673989765807205167648214322268939774619002270184816641483591461244996527287618430422161231008099606352517160791911159008397356805194504921342333448268649987159731532955417135776294956286584754430312462775472708062836730127228473677899671883767079708293134627956605332735340039272459349627281079989719879444530999913186719059995892805473006942045513325607606908422832347421644011053849787125867459350072856093850892994762011376993591440653184378795623979000950071798783995961526206452679452554146753873893098644195066247996807611446868159936024975623470206948098047596444300931639377425397778069545976955844476947195334168107684411621761584925429074019916900796360680159138181945404299797316334544708875666285864524926402829420870547246212930243272946161450066124310568909491003031049503515985005456820730006844022916628254257344886271028593225301859994287464579023879091385649805365116439180344733404204044775182192766219179590115499922390213508638754148857878757036008220399135439885467058875558493738234921537593076306126650838523620422603503515782673055297049043401518111911982322783388858747890879385185352261708586064627908858949483578661788264305922273774488238299004476236885985911458436397117042239687435003882241415374510023487404634249802195794219174531258838277340603473436491450377994385454861709581040479028192515929181788775712996003056191625997091187440783606534443600734014061981093177111735504642102761558263039138856834865224822513253582570273039536997530418855754560303975067096624579725540662832375836519646853771741020343499069299816104860938445309450714709407590503268649167061668795810482308710426286140663187156043935375083943705529767483877698229697897821566208592231117751626599817749601255687762961977000811855047753896288929111126556709507030940132886869678444683672750812858911373599272521214551966988567136049519781778477515746331620541565778719486255285238701842758533278476873548659598554172871643378724710650149108395649621464352281597206228890725567035270475818275166069190744402328173668998937131425852826326439545496090011553068728878509962975514327235237235201771834726064965873529541421854864659797404126452053723204056853586490642695319339552418079855355677058163297568197523666385203267584037646783495805074683169856127801309918259192799360762539384826025241277996839998577371433713686176892652043604366003594164612366108263751079941692120487034995753227664212124049643715410228513980453508376690116463010473531735240825235603092772855071914911207898317876740866340339525422440877394743500185713078574669398616221436711321160990877476010374654642627831867851998516117240003247183688014473119000468916413426403500073347541912242804446341178221600314697347206317338676917369844653789032515734449065388686318094543702877363965166626636437904339324684328109587528246444723833682376325908651475489527373932721943513055489268965859406662138202560323857191544701468895252241874317819350165910307412398704769387742963124835580455226393870182062579213501383767087579910284793362151617270608922206724089699235589157582819520914596846263238174293283956803215718036435550485584414551997556331746255599931825724191776033357855367524237998399932065836261011982081129482973573625593748171826988233738213456699655743392994400417686480392403026836622317546058805728608113932478595832274147811034836545382003015034038441754839839664209687618068584143363343773041819482636731290718206266549787562217874592132563505641791290926771440811648673502719956329460416158182499275329270285534849617279406170394374668360039590218635498412088938440888782375058432372395957786138692869410842419480861048666654935857602337157666873277018215244752859829256798132039222874449610618625670336410980790832129596044178127436722159544743850674069690266718974955542254720054842486346282237171443706661179817529677456584500801738719138866974126419453149761003548067809245287246344844808532165653823144929473109400668705150001840498908897621781906337132129432980849674576590049064801529063283729933229464204260174496437842600729441849668404647518701179666168544832113736099637689789548862136340721822800303227236980077806273186385772324361861456456666489353561900668156265816519183233517900720780177070441192083867926797481363879067962113640887771910372372244099206852509404170147024846265258822622726757240906541220338729924077363314140796463568197358480559461232041247617723419769693406404480189551367112345988579587012651345980955879833063795190546092411917585885294054045358443815306856795010357909319202441669575515402686471200982926440998881611493115361451488015779137263327951242391255750538849048534477086272145481600423079568644603217586491227976989831501125453051784094732565093086703476882684166713689906709484761146776921560261553016660078610477130881777867182308363060070744456964380976071046571455796270792677983976928874337911991425796804045024602853058849919645803572265905931839258018977396650754997107275822404060461843072401989269543527578738654646699928049002655510225441316048073542087425801954932890006489113134680550304674761733018357030932091261720986955267952649012827481628328271554974321677913844425765038116853531959160481392211411431766213437753845536530582969863799316169281450627021967227192567196131749638537573098928329219334436891618089978098456428377515332779151155236901847845144288097967384633711895895008977911175866915827746917647329985593778324368559764682945685837239109653889902114878676201080311913328440834434652644412264066941946732613332019107048676041195649688451899390519640150457981560370887310558671766798333646753698235177752656718768653176589838746715315498970047410056655937406559823055289227670242913780263264897090883864757841175066882148277857125331628163132014543735757804824338147452039966011899706874473274959211529417184428266616397386087417341256600265796374892799017316429529867746619057178373709623613362553461808315917138577193338385551127845350327881799104989210582466470520672406159365705655505457756297251345982019504178137695319066747302288105635800774529042969439143738825580078215080175777040657420543616514314185728438939731021170971469487486634792389998565732598214410957944888427262326119344336428909584778944360541165285095858404981416817785011553892753274263906584543984105052360285682947096561697072698287840305273711332968637084230199241541691465995473531864378743991160187781096836638113941530298272044429444203256940686246819203608365865189444779663411169547357933373656839164502942694041959708937373725988289649723235177284215230885968057956893733773378648780980291718486956012571125608834727975904639938384490408250908909178321214596829624549186470518370175012736657395023400421191134904032454387551018254297575920258548772137938027514660931285434265382156648951585761274803717320023600037337248045268434955852259057775163126461803221913927793516090667123441680836244281487204652064433346982751701605133105053988771221312188643717549915401287226496806492174963307256258165211804208636443132917344553137439594905204573974459604381141795279447102431092498001395319817127441549489829559118411870758021849367132866571918414624414822668467408326601167311621450124125652659416426584863033980369768451093426545785193767964198338922605537909094845548491617871518486637684074155469326106657654400416694294610817533978208798183901507280354108446863754054501886169989667347842627571253802407881002944987161582547471140397174560389890866562595580337063959884241192492784366409848170096649069989257178092120385476365920814156389614406968969710624866246570990190968721193175352183570579630747055091795052718879909870065025918137974422984447483643905463409267297317987474883423677060936246719076295783918653801651137755161645286604445046857471619137689675790406277350738449968506509586537193388068343722694054158370890210823284728393773713450648161704100712956451416586309609689583180612445490727060295825483542143856593491063132404286274972487501186204332601102318177715936894467725400289142675608280409666353263602746856298500139125363916341158838180531282568065279055835501582239093846360196068338062975550321912386581525818452842089069882746092961568188789228014336937466772766440103833505857792445022846728292409747117765824621631527247665666635898245501721475863941453660607413891870742240360245645795313864390605728638791214811449586417871485058171499948619762533815242819893163595377434124285097396898209473807983328276798210129108096101305807254240279111886442252791108415382180347285661735496671751490518024235431175077130780527836481013059326145497023711397809200818207874494457167979342793792289006294847196778195424786520172902768162280451615057449902694254650152651372993654852600949986804760930526983437666498936586015861098527573710062035185337497860283611485100458540774008137078958713258386065755802488692928804177958009076280194770953768533806817539794591956257639259474859616456163905626349414726432929161681696981908698345285557347735307845465491168667848053062543931922352840134337617349250899921942295229540453523480350577219374155384290743416726531664025973650359108859829631693192914631146487657520839846588783500424971823504721695982925083015863981967892069664562494644875791314033831259073125654719818085323973021011775070065295162453678387687420095718697371433812876003256814881491597350948629457620517309229006629059937316630645613301760521703545704108314707287198485414196555962644879799282779057658064494096015473543806058126257945628001404586443497810110368565708855930108022631368808527837304416317412936846658732163155064707310353058847671191920905060267905436866968744894377786033557588442265091033919351278556559628771470881148393267008895682770531053171477937114977715584187298771975932085935789145501840082075938256374414548356110582981965300264577443323131240627644641845749700245422866223997519403896266023226908825525533786505358156678710680878885628161372229432473657292388392887560234926667866237370383375857776322612328437179043153777384795358236094248603435880617818509306961858729283183597172250443175555363043264020519358137106236611430063269334112265004056082422539259680296192171277170192116800213155156246477654236831557356179361949543305436362180931166033257198214044059001408454936531168554375611141507755081316631349777432058292404415877620412796307616125315675332912031014848017975060159927349141765417704157560342549402011142820894562884469038047672035040198919241494757790489999185775289755181820558336126589262806121771825305131411732380333835452808489170208796676646065304441428031100982944254683909377009696209391706505551667085073501849368576919932817661027848636823261858618743911512326267469375590681951903601834820246463904882115011294082454131791917505702312287881739541634427655332288630403447209771231670034397379759123832412820472687530256967693578050057676625519622235820896879729390537427549415862322115493366787675413186314050098048452651613073982681558254714062637399427183941283581047315269044056955461342410422232976600545269630671446584615370828267100163096328735285959789225667906614587835577072786863588852335288489547816563018771185914492223501999822234722576743947218084499694648088078232760588391717467241230279093450917931597380879458691589556477091092804090486297247120091184784975694176295627371576878300870696493440425792195200850194720927081542383949193087909304168659357233619015051631440086841822138265312596180053366431190146549633732871294278507484184494919669663132795776643444691038180743248991814220830551712874363335924054970768333712513362049150051149336477546145690078835351390550936015292925077956959935899268552637713743006510963046536371876890262600321996775267746580319710644451743735003718015656489319709997557479467308995896843857340525636209275412782200863774423000188428930500814103864280463421817164223743927356987881621466765866348702680647644797998519438404962201909330667804213334582591651182939421145299053883393843503929700279806207989439843198064095198135913159800573500086123420828842804993172253790819762827432583523598710892356689608556580490407261619272829914993921391491030355005496779456161318946701685161065804729172197872748595550089079450143219176015019711937608410733474797857956881271643330076944816073887525955390629649738753427207091265504240930456537539678847495696330933577573081198386479566436828171928304525194836829504085465885399015274558897813941354669485740846138663527614800885095683847331645854193018659725763027958913072169011079685610454207160788036250986019180003007554823782213810579320056660004078704533698658990330478686575999352053630606042229985386206572781209978180439398770141512970806270196322570369929885342403083495434683591413874672873584321997440367742514376090394108657046020597023273997918261580077992714945321054725321951477610135498362547924641283783568957972546322550531337449133263993421767616910449690555200575435552885007262506919148595111909008247689819689323269613389197655598179082068132662990700110109232338266112994151249044210290780408820481858014209434762714891913822408688216964898231792784928198458636743047212288687746387025973911261929194746283963177980927160808404329890621406823964686870852759378365861641518385748679644110079874513770894281201488567347265575646974035283479084771612237662908967141688828202909502564130790517035327358700661929492104869526179249088499396885827612907866299550922968865401986266440954485845904176106632272447587354700450233389146848936589218853744046093512300866474237134832603841964683082808423927943921512950355867486458017518196853536215744626597321709873603876333968529936371535438993338548580799671957415440822010036259676556795042687709335761089554106650461414358188544386591628722922425418658515698236290935295502909713259643449176524580225979817782430913387070665756047536145345106095005254596815491628475098431883341617925106180831919766574112508576017070143840066628497213252297255848728392194934337667323624030599898978157153108730261207347110538210185970796586830163434084814286474072367307942704450747353567992486339352624916706175168026901859459742858424843769448420059990925338181607055930390788749123676620957030964968411175346499397982215793392569431550431539867565771146066956760567819654977540028677383524348193781140743942838538863976440546128090171742501291787874998167036454282997267536372478889375492714386833194599142767151437433335841584205285659800377044448995667751465768578344774897858952116664128074446000395589219115936419558636186279142955891906050607629255231669262021763770963342304762285053053797074425234924818250565892010222022536675803434094154408231816801726881522224035420791450245637993944544825345993249568977046267056418391333227224969492534103825807222330625327605243368410751329424857835845570248457039488837208818797614415068974333493686329188495852386780808027760399825935194688876489096322342403578153212692898718233648923009428399007055942883773212933797923700521475872903051410338623841558081454139202971218634711467050918672546182054875298873771754912873425900184785166235597234374913084109078450967791179889541227009556108632728602034146501702859300364084913355992047748594060274170320167715009237364674496755933807159920116435831506034831940968685935708043614721493201524155842947406760127196698502684616397332588153503796282685763570427137028449353142531777333972240156128315387166226045711325152015110363139056175424576014537282950126659013008571648172492988759164278728071742482281264807606254625954513898797987016926230445899535986914804532279420319181252328170295158546617835300307884101290807629710097458485519809781684358872982062844081369513555489024934689327287053180125510196782231493656782665964461547062436234543613588292763384774351445587697455726793254544395465842376824424719190783487157327358749277371304095975582344147125319547851070145944827216061512170688955971535756832091314695996494347943247767848247321577932526717219562502261559205244740993511699471065193657531280053762722605023164345144314154342380478871739164948805416537383502617244681741288286727399401911188823520270604010484136273201996862413184053039463120798678404212076061664079298176251538551105237060155370074357165518936202660383895295241174891217265141367969046985942089951870991113340165011514346074995927172771571119081560462893081975896544411695501805597194598645466337144374319801374878914736641374796628781809102265599456825300721923025946048238970376834635488920552878566831805475813531267088889562508786988803454946169341279536733978181925413257035393014310779410255142769593057519435683099360550424102302128740235896213397249618156387899473126724606978460641186470932420957433541639422405020047772453258735238449958374941845205158663632911354171744053709447344783403911336250182432402287725354000001175292129400122736508695786047000324726299675587055959401822976663146472259482477367212031106592961675905587091750759656324304178030587550105752864233410899799280585793628565892101107942004146834873857321540057362428077046814446550546505119406461240662809857467010860437538694076094659505026807557310278998266145282530297880609564621311753941203346818616417134321597899638907988843342899292575489390741434336915516307607528152949479133933949439800141469718096938006278197796441393950164742809272149475209068582508690004747844255471179324264355453644406621683013175018585940219083124335602964288176202949973759420942562274031507765217757967573353102338983605533588774312560202793943922311216965091610546040133496143520831420626158763385890557798230491503301796520517704939169093836293452934308028307071883986876262724040905790013631272140773322278243805664556138863680962231245867309787404168078939380138283862899493327565680011056972594758543630477381348056456452982833310230020505280111938240328891290078017454853612439538511002645019865511250819410909032053909146869660196200277358327563775188420134698396560201623036052600852944409582803391932017062831146797148185353076594771058376669959384348683085549365151482271951193992067025457595345259070573933081635777997591926988780689362666199283272851660431131689427841819580432516467417787620569863300831040355571595566337450829315651564693883802633998736693416322708616706517241419879342919173370422776012243995517874816128933819462416947685877933299834239555378292208691435286488768009035670886091890203484909064046434446071234084575986210118639601179417093160119606013421240769409286911209548465513573648754760634312360344515845038404755200461961127733384670658041900584169095161599527804436022094117269847308872570234228746675924226192978933143870425101746655533635078933103235163745512591133323965035065035741854266728541318170051458529975475801065676351360923359069639924314381825328165420595920249760381817114656195730481671726448020754882784428741799410058840465645149473926007076500972296202384598313245446304762444394375956136051838385314399050459127260908446575786933630585038779213599263283821067308767040963718608791243777327811304700009685057507049351418020607215201200407845662943729198758214174784938141523654315200983323018791229108038693846046688235753590495892712980029386895819396297967366051783732094407701829337356324618239868624724751208779689091854693435266097712089466775431355801955762676295881406508834234713825660033979250958112509478254751994751289789017589326280102133912160081016994259363408926232258168212478578403285301226064401004603869179622777053881072978745817968611261351487397098879358974667162112722297424686906422395162968646584505264077215803680405578756228100220858176703153188303804606042746292672447426619632970395845379495699696953806224421999802826445684241904000504931506010345539664006349592644556941136051665806119539911003109970930405308107637752106706150699700681030665158333897227086776011093019072713957055824662717709638534347568066858125471564673609615948371468115677149969836625704134007246287326934196827449564371679880389961459571434823653996915549511718866497620987180928478942197658495382009450561367955114738359096201740388743691482379288934013208395159790142756469833139947431509139978328744576055135980115831166672183988180208402174857866320665680077765803750675776861279546338838271866624224601004771893880677545271051627694402633561022068428100503563928917506936024791211487985708845970359653869134781719716529631716289929343567343083670461958166231882581061515281348871050215939351792478478090085759274638636884448252226898322917555374961914878381172800112961517367910194153207259494633290182068583087557028620884282319990332618999081177910562317330845394435073563015211136264938734726324460582676517572538333072055247667819729554797088020610266602168409687822883087231089625356706654351710175951588744861911110946306224563958945802706296370229308090904944761396629310005411377438486201930010814274830792999588326276873030825223290992114762147040667800538426414858157858359201845846133567397585391225055358937885996849921688641150601592172644468384259502168174555041324852038023692078964985833025008393253104917607099409326443910149842516911331836468663174324876373998519564460229571749057895618262574860839084589466427742269673942433129183771013203539136475520679581569388872996321889545339662831986419383986298155292279101520563426068659288629212571056011550817336230916210205293103446592615560028336709599398562465923138873473955086165987063366102016721953789056166591168208129392956611607359635360540866292357887603877474255312605325472932036463050745804807992878745931226946552342558524891089554265153506423426793182257048111468112163126264138040204369769657172377923597837474976302698414582471722744739238805353613127562998764085875236627226128427783058580582202128722587691682792354795250605810463924124989006238829118836883276377234244125314065098940910991040357910868936616212407601865898099600452263069995324135387055989838344677969333851969949528970973688878572594825432361526217438296152622044427624211843846065476456078726617591709790601361915128130227979081558955738430989009321467242722661862335700754413133704941553422553709055420722265089394535830496328470119315222480252972089544745231491895666059164236668034585486319162731186844213106651011923100531567127957599091173754415805264084203416415662675600325243306034486531521686215298670541342398547244428602104178456888567747127339616788765253176830765570129343081233817102798532017006032116212604094338549864985314866076838768646858788974453098126268030451526679996150127380157655184372804496776360031558403787542679276182305308473547470470659378564461207075981606679734701812103768343904785762173700104634423369850343794664120511272177445980305204540480875095371059951845260242905769093784752731580108628222168853495763026621021682904367957294727073977167822698890808895991122759658063065596281512824312048648549902728897018366437692349522604889385528909785810542120152658250681226598505459021167167109899547136868745776961317358940044462644836160406924456978457347115941586186673561830127423962255690621837088989112772816681197897538051952650390589248693438603220397106699058380901790541279426735091420830506322095210876369943883265196280094995725654906932109930442886855773128174468274183027639149404728694784149307237960879240964392355342732229074451180111647960208608294899628843759291715282120186739888219925418491183324122947878751579377261980838427904309114698220427232295957140896056892276584206111759015207638378047658513605419253097442406807795058320568062835084755660848391818875512121814111131685994138321620175793551179688881196477410758463729710223828949527371801948347413927205513199555747850615375763716282757272839822182734346488451931219966734490487152539910219150735393165969476403675642183948636002082012863692607966681302614871403904186934675329012563341889114195369011810934058866382786125512802471304493028406578640701259772394475235718135632556388911370406210715323305678146369852614123438179062933355989309639683309987434305266032929647701408073161663683170498110693257552236696407355850597046855572432789174002645212187236582547725718035893117477681971922090506299927436454892174182688632155493045408310309413121679237253750977122688925785190069047622344669892812907264237335251158129637172686613830758436351213350159735489839973211684254041151636239837852234092345817771355850468833829709089321877593045543926645634246053452192651693809579648338257820985680346811097631331835121349989946342739931784025065620622436011064915197780807696907708539153487426199176428344431364224546709903529601305126704073014812949099245481696766932260695296943139925851272916352456749016250325250150686798453537973268117755715421563188184411081478127496358400503711631590597534801620151623000867379307598068196288930845329398102637304087176447603108379825192662163002175065377001382573196041302280471447447557050094875244252541020880528947060779576295965625939564964963298778793966138177718166128742769074174961126285795382393181443140711285885078255830111995019390353174591810166887885344097046096093492194929595398072142078875067669813976058979107175145460769943024313543678699910869224630599274840871572457083889294998737499966312973457816890745251098372889828500368952210185126417737779613365706966025959772111594460151475935837110902113626981048484403457292178382652202495685085983419745845385940994175557130613147756784275744769519105612656876648537060240963637650229863758138114416168086420593358653237400954434200700341735188124427041958795014296462808642621273105479533595800744683238387725039279356111360942498637689821397152585582410555146961538996044677131346452095435945365886405652575975696441158137162346401074165055735405278453560386589639327404226217714286858328935466693399631684523433335251121455656389678067827890305020196640514754022590643561255635236018776281111339729733804526616763909505699420901314944981135201424148323182822956183135498536505702296690839955914452036859475069487439939931365426559421941867415971551523706546093124163599419120193392767398894716686580761930792737149751330261108594280394785977801904936446821827164353856813067567345247519149736895538966003877926279474896021061725819667171099222068434335199558225598832185066445195514624171276094807623017261787894076317122756890889260307112719188379611681159855189788167147816858805063568471738895470127635055860841473639268865637899728760514036251186295110839228100062628954052046021388633196182174878650425920305027604503660428116832413483247309340705826069415592464195679930240593949354763872084357596431130429168193427908663003764130267787330097761324562282117127285047336099409014090146678132813096757526835375103331003545261608741932678464953394241307920619160357456095541038728952814704741134330788884555723060167049203369450306283282212893816012838962312104671947292430439195354411994802923502945460181696343208051712971518590702148246848808947703923717452014058302130579802802471231414897706877420311545983785900280862895059982767185683276023786627883587132227416289953359090881108462459449141008015122306469082133336702613633408758897787656508746050186450533087436622261065362640246991202271553381228988340204636486173894141019199269124607397013159112417204305596099359590389255210572670781381148520958304708632971361340006103499943534918200033724823236516436017591192479763456168204512236836462625218793658196135417675453489784400463941664447640498505934897895394879060358211747683571842902513322594444358973190016474789610519696907300909257388183282428890439541847756430066441691389634578866186958050369188582385126450765792273968711308128773086302706055368203739997005736407736680792550921078317251260446891019442201650283153248442049136266232643320842600782138122841198177173008026332777180302896213925470100012118193039853716616686574588700139295947023968718611743381156673000084742227237219893393168520882611467881146126270022917020371786156471879484503469330075520402858142459828147881004574515065000769241128772104500805603947819389976965698703362195605907808794549850270717637365762788056830670400805716619692802124034895633559500305945766655250076586650849106337017771233209294838246541819492946803363525644948915211688424699662281959396559536372573713337237147119196524549483120498014486037443999486207059100967405472737438594304732216583008221659781603767616402888729348345663241772078734438340384902707492106029561177570638041248388735055668191344015690860826490202513976263587834081250193449779499094623147049262205974601474227645698395373846751439768826855470579908042257714575678928630226517004992387937611922539475025503182632123385721464015141972044493916538105099375311408490906824808898325835477523312594420729303239459238087350603659863459603128899128841661258337040020433400820997188163083910108971245776539010737189888433205403780481392404200155603748146425669880669883600898556893779697707707904858070122777204421189163174113991472876498155812588065445949157449514234230533810676756529294335581995945997929073377973044933234547991157635102350376951047253369979514125650878433770055493050531976260255104897541556071561300714121895830245809170627047233518099134779102253435496046361390896663548322046805214066825136216085026231751801154574787594757888028281440501388332893927172485323733751801920222200456291982341522306267293640455441348048672235839147086008121228035019765811486634139185084768011013137962485352507269785673870092880264934821553880486031057976722847477700715604260599819628354597728079919004127020138691671269046592135511438778351313411121156640715224120561705310219794064397968772900995124911733850240461621961670699019850347042488384065347756019327265150143472956560246286875725712940891033035137623379229233306917929769614459131267314894689410861746286693071104917335599410124420682006431214504183926709335683700198699225893675051001346419525189285493441008662881579980311482676918143086164117396509307736093989818519958110923431993119561012965241027097363788248663365705620334675938861905811118569343919328510233899865153500606037010301379838466240764198064358730151302038240830185683884936124398774835504114035324919429006537392784164956005079501889774579985281416756304297844263387227298435445779074280205546642388223319680079503928256611180746559549363358485252214298433112430604989332541722079150336643503128622020771344171237381633671351235157461486918487007928427722242016789686109428934040993317154156356152922513948534259984432200319904451575264920447745283732052660394896047490969082774869034470046775031998958469640916580824719838026775480776245492384091849022145434647870890353895429496914954613374376680034851970203005258098344546054819368644532447333484443482663638375899695885145658198329035739177732353495437769206656231209676149459714775887588331477284547076555932028370351227814529556406432742576796622082234647829215972497521158981412649519611626019891168160175099178854154300348777138732375701560156026272648693465492936980607669989951735755506726761426133014108912010270152765659036349250411329408584502200652875153397305543189898911484943427737200753325440177078387448063911725275506661878110567581329468272275176255303278434765117642425427799171156732007070449269077296169466659911885943285218714314096218469514624740687459253377490429247465979312280040921478435786126198663436066638981908691539193521888867678117083956492401533528564669117890559358908564225501549295749119339665309461522058154708300648538669969798352824200678156353955219836279010251177927825119753924714648346059211590198541323447357966472043519395015766095622229256736784537028758210474418758207266029904599846772731749191711606819460012083900758467512319655367390834982593935746269420354869626956453303721823019697417072489625452734651506894480617902680264890916323764374976137983181935238607015547679603525129737872456646101328759549382905504177063920578156960744098036182686675722364875317036694774329280920536832817853021107714356044789826322734819197341564037914675399174174374206417695174198954351714526258707065941760793043385080671432527808489241875758391783036535684252477264024974401051960641287956767390192388877081536752588202275253001318136576600391061469151227197664412047530905121251393406865958941031130889723297771514205637203157255497033881139469664342126175959112201930376155218625049826597129899984178653823661607871299016141245541150824775980911571661365198672757124928530094983394636384987190463522483346767600197755132366974866969921976195558973748713093017296549553975089167263522664665587985993446643319428047497485885646200011811900802125668064012848676127107075538366646828733496824201763555643885385916009224907176786479942000696452988156475300232930036998131869890959843963553811269854065282771539790012018746701982990783876828773790390832520684359945752357923538655912522049234449560415776315412524108750965994302057107123166480971434749766838593455648914426488688744807253375962000646565949640024166658948433967355446957765111139047753729873066212113121430502996664240042157389751580728730544184236189262873207352714543768049069163930749482845143538788520471030951666371809289350383922179502979905888894476868912832085062639405483631022240695248377698309783999583909255935971333206745202057999771880651337728651190949461814459390375310743876103162299952110047760020525177166937547731559794797249409048321158012199031924959724061234244961336388267205168750593654608610301050478505000131454830087860509378182239412290224070706099936588156104602267202359026385989491186395439686363162965320495606995891961928721084609270160183448997868035923773536155458518637113656401755117846823945577308182816026265945565150863397061546992684679046895313652806342206805597661048369384662045045710365826632667346758061487652821401778280955259119497993909738989939866712518761045116910978667570333287768837016666019696775760662856537246232304642983429975390490975407410620104394627111219247409247801759124861143997677220964429218949469568211279110474973355147976143070993319675036283771090008606270194002814171323657536842204108492052452625665968084333942169559048197044370280824453795215123678820140258032851589984544453435677727522829857088376166258158563524495940100823204867885833381233981332244213018355029828076019085551611135033508423266996090763306932861195282037012046875778334569340239977342488598850269103487896605088255080647236225528098329775099210401332662603889442822059883969428105491916657675896329307480158529161512522158792841091414504024975586796954954152090756577370412340157249600069389859777719237194600368871213731894061857768357155889599026619551321525478096232844236868279633597530779212485931290672285176157077834815708690694872016590051915549519131387866031302186715486277566685609322874848631526644004784864810099220720877340034433344246538062482617915851648402209729927192734052901764062414606232597953194341522205506347685400872364338591214159362755497709134474631433846697544155017607009215838164884900123992958460529539597868264407207793899300799566927304291195992674064475348465850897139205093348704553508365597931897983986714418145489787808503569736581137523182598871318843302083440761229214499217156384187815142853462838680437938127890971389978953362419176077610922127470940133790495356492758301981883556275322159405399084630167330700868808128109165922511194997911501933675349299180283805809032449630661561054931659952662223178325334734311782174053270195870677866020554186026979908432703122131151861329900330437393013193237015993086703640285401266467005546844159033403127280033735702741341625262113056094031153637881696983059355397867610368590886313684965816273916670326480820893921901969556424926514366909374904729320046147705359927510972353257313486816351902278486016216630209603531502526884119581384323303162715540425014263163583065465399874507699880386052670543001575314711175453720381182529376844288715091271218341574466347118867603276833524507315068664916887555909419041044880249814083557368799810187414935619897124645683965278827609101105499923182360166138500629446758573835021296780375783386753610176890304661041691448401611647930144958009320408626448649303308633218258604598957323370104371302602163904690443052140182220818551051476634961597552195336365978060353281070526966373917592939845705173121129604027522773965263901003499987181711082876060130528684866900094767525476424727680463690637630919095892057153591358409032839557414075701344755904521394471059017166305571142466063541580590875519850810930768265595300441366932537403669338494706511054834625297218179401328409997130410695184240606551459922445263056432637461405454108734042646937550015659925330790636101767120485844468977688300109315186549655920676888072120856712586833804287350904844978088158511238574984405936298681319307648226441387449318836296158064050599950710499467513867438030210157016955366330136794998086414339458006369057012000762126128349679412978476654683332206059907588508656005975839811054775745965091055643912555520851054189053268457877513851534985908568954872638696042831446052674026693212131331500646105695401930349202336223144958338931856529682490650702665603075453633352177569894540388601483836712332629117978738001172020210931515788183014149480522901898470125673986124202495536487775077714207152213612807681442578698633012077943692588766836147590284063550428835611106953586872008748741659481566346992983479113040198884692324554918963028715074651727579516457406063853525686990239832035091076571893364189685068871010566629236786533951263180329299123806175598755569911839242561454323046567354505284285151388511362690290701831931835808346173656835174780275888327536641542174298838988870481293798483732589890426050696343208972057661584613846365208132636489124243057963312938946403623033143819963207885599767827659365093093950357208563836972608701858352151446556512354475300496796795202422485262029712876088777874471832136957510367386906417369468155506055794213140153030969110954189804610478646072949384218688526441515277018156807607868654127771133939297612555519612756219278086809084186469259745132006488470918167038258863685446277224222190816654466672790220113524951343233912072824612597392811987175588261934386067524917017730934729439007505535052756970323848409824976030727855026166385143287546424283824495566610797050240584267110758698684533935187452931245862264778311311319414806976942934224135280155822533217486613082671485579202228125489069070723830336199667884949917376174068559368810604122097907971904616906679897530188313845742675429557473576893227177869126998386110364641247631922549199899893074437668569292114323366307242458057693411667875667601566921649862960065266142166937955323767003947723318264000394951453834400507130075422769190833128136444679119152600018800827252325125662496302181506133519142496752849376423472556529375237694370095692745667512486957369487253072164776165457736389768693532304367266929284431139501053370576750650597837145754595163649723470717775008760741678351322377160165642488283743392814124511013902370895205284903647069733225457411682648148829235018606831663118735132133756409359227610683595727114307888033030063157065842525676854986673068249419457895242818918775167118620646480191974363941225862212454691539078805067074068817749119439349367771612576892952445813775529763327676332197217946225755988366842600955363808720550188741482632279760773785659415548940865210303402299523978526864693690151018285323653349675894676514524373085755635900847792336451788216217978112438272979564610954616057887609350682040222492611488928236181403637857233573993875410253218560714343044827742333206625449093970429843249969187438632699248065806463721313230966757820568519605285431815410924337858652042135372552713895711803616237317116113820093800325570136349381032535025465131132806211664960517523626336751952542259781804859162037965680256823326403744757618349374807232549766739404697045897713278067474612781951871277399646834125139780893407895695361980541278077728525726694673111949092418523649427682462260444427311271233573873842662025678347682261142520197215472821632837686734494268668595099468226664172105857915900413337099203831390556741975586003963572904351005114833618962540473325713382602684783357875506018220704813731938773488374968102883478890800674597676714423733430897975943597740338431459170525218574221677903487803312999051887851396907955523465166560317559294430610344379022584879109686243051676401621923985094341680849116389033907530051257577301377085028277276930355064634903700768416906235678855171846005195931978091064816438964613135251979154771784677980747708494638598547754740225008647573888383009000099138849226916496836020530447728881009307235911619092693879929482347816748960400706112931402606689736601389960524423999692186401394594085015015308809891586639595610530054584295721702715650253152077367810719367062473605923272463806849527807014382296415733885125496289315505773025091333228417796361282348789964196681526773266942509148010711493605883207446577903859360062903056218202604646977376411992373165122115489519008555534665115055654042958306960644797171703132105440324920787326748775676151779672178820300208013799668509786850489274972430424922355204044860762021174732436329891971915037371889255533340195352862439028926986764864211068035749510910006876141482015696640601105471778222263824200678578872088282939599425752078674147651739685224900799607544155826687501905706789402405108113609014302162806966792984979386748303576189286476114937617186762069478201930048489823348615546735316494426308281729865809872821437090996575646632301928937269784821746291782767924062459406529105685725146339603705505137432704767654226874370223669785613533284765611996886275926973803269938184116630801410506230495229587661156581771879577042880589719274676283771833729320969181678332379165125155826869819880189768224071516346402281157973358590182292760362348583460671192489858801996691534522132961852769960774385606900125359468216029461878286725697735384648367287794389876297146042144499746793244882011437207100528018861297166734575856695475451556916218112272113807200977925997589009087650686649330305468230563308915125998823699767656354816671461285975532310754250866887226634498849718356266610723383681382178110768390984509245754166151187502614958220628051082776084726514485775755768058710645075103070168274641927138027188739458730420564228539574931459918778728943864799694407874232258687608326559933854195546158376000968067319104967132154849248467733762532713992431470185500104982026318187271440310828871174609215064044660841795652178434133562664002986980136840688957954239626691301004224210751031812301474697645638471440426883337182451149580275542406526307191434639041383533498540666065270570704744767970512538171992043807837848339683513918120665408906207567416639849740013317535227188733365630630815236570333963425235925820457105604042174446377226632522937958464958331907314918405468181867784193022832476082398230255935395309287629556262963176705723384592967904795213244960962696206253059324108856567330511596302480210665595246136845423601828519276320818114145943666518149875798200678431535861250883926257258715581081814504928995327695192353069566896863366698345046863421610718644998195902461171030442734668802701511076638243364257567010117845279796375161001027217878300723864116191635915136532895625380942624455534838292815179179298878614620122513987814820078861084682352813478433987771988013910474118774246693754382985270129119659897814645182576779151016177395293308868269654507465198189152331519773232917867716710458246129279597824769561056403612283350830725907993814153837602843162257955219217240780855905823506895178335267646901020174060388898066826639016182383637042985242505487198512738735908577812610083244127852676523397059510378463382968391888880279806007791770535106945059775197691294744147456559577497765913986830805739362931933823456883453581342674781247757159146341579866032058607992077614331446836351996215971704548812821148079208426811525630535887633811647424864853205911827591494171753134499659814959410253367727654129691148332789392865814922739747540950428712965598015524130570872930175542048860262201037017327513617665833414915109025557822577720013795975356751967893584167872984969056501059570341338110618640517878969567682778712567669284404540283293986581408107733339599666250937387093787296718971005630824712408908783310338141624617217064584772283412288802319276237359636082432326882705627876943417942540947926968240583855560791161261701691332188425960369695277883243035732157726481988942630128392621419361049546550177424349840714899106702375515870984796653270373714199254121077321032815234431248447391303570764533994544573168412354278433158949446647055906029119530235479214385409624503366124501490973298429383831702633865875554825540726880163795489036355994083855799246558416726260508677802646071202798405121847607470958143252118035156615960675884296867099954677206921784374633909331094569383868368268490648319060187337302228033896470793352817167931263472603462794228723480726938990910174877771760376132365258033430246815152186768778139009078595489574409348171590938293185058184061577762653008309900422574320229461945911493561249882861248620554699134808859879221477717046829637414968088869625295905973950112464649555681719365415992331260457634139650973053554305200298041092726851528864460357804537418080354176648785843020559919885409786220981080143596351785158120413448896563861445651720595851259033240332747559165714546360664736432519511872895232920248949961959469444345370638700378587018026693597432602410129273310825752345263249234741071340560435450354108705324872751366121616178583221964419853377128677712877862404995682525896537129485916457477323235826018842777281190774379378197053128085150515692046207900019879021494163513179024617635843824654946916369606519478885469569946360436167260412049273106941532993549782932579746458124213063039753905597359360138830269775987268125216962207174803746942593099473169798519498016530911259822409544450773971287663168072793065179473207571493018304772426052920826147264524993097916660649541149625655076727568499366105473906119127958724993636278853728436427715712952850710715434872600198192624098429845925863271634188435687595364273774030318173824391277953148004903579496868316580371645263870706534178217837250981257243131485073722949340890457233018865361866963502904876356275181465936157789123814550639297647176833301123424369943871600664799849036971399350587041406648419672138581265644022385536462923144704647966426263069158619711441310728529328109533703048295666319916598674326057489150768549977070427739294640951347943773492085701770409231802733498049958675991226749174774512875617897231642608621976573875107065493887754227107649536159703345764883531509325812556316220644724056951534300213955004463113516529583269146676395444830031205933325344200394315897041025190579662274384806438231866798530365642349342997705795221684959370471719190021518682082288963353678115567971314943438503402341810262534657440862868260030342389579699269358144773454989845490440063917012147232660570208985573593931838914467567065634705821383389086009483570791080060915235534550788709920608549808092580500505951507984038009337227315624434682219306432800350000168108684606376998053086984498397835058491410695922166125198727030483999235110832330145084391800701883844145747078264537478209831832051253483511127848560254531251882611312673528527411927010150232263370658401440933151929896439230722556206912896576206426863153043875617136209387848818781524799435133350130500495296785153274159337815430738866507259246235801020321469494633730531697184139614722077542066965555015212306471089873922063370967821285156231021157287447673306620771617801552055520947917604287393951323402006867382960709158524704688643269141027693218056093705013425484656782883910987471054682049721071553703921567926596149834944962508403312847635964955290599390936911344997242507608715421413291340327219579001004991477627509932863144979959412102475362135997043044958711477626881685391862084822591657014117285814816480735863691296455486516305267879470415261724182351222297710150970649710885979267802817210968491873719545330754619433448333016483087905906575333978503491173871634566734895751863639955467237417936883252660406939089976400416787256617625708923522937856419799700930823060147074531836336799179414528722766976629781929028596018682201923383080073232480011644853560462767428864356820097724244896720442604660622505794973654759497564332708760298641404720845731604827985197550192381149493058618778340904065026921781722796548136525236073592102230761660414742531127657497094460857803254170051657363837743372752281458512580621599464677164904732783293792874423144669569366442446607542554650873604235797793879524561218589686251522426431391233708221592084415563808012284970220254630589508432907119885239534708972349383847940232763255143139181482017360609665872108639300522109316054678524624508554259567467243992253221136768959762422121760610156828546135842983674094855686091821216875733072373454709413227677289742553405868523584084833084659529439549750600691330591157629554115462960481500589548254273795656911880756713250636855552239021073744842756139924085573188236563012969883216743987057601325421183092896694253585467762973743101635532913383271730617398474480679998563423953686049488356268114587646908302856791275187035751376133897887852916016144154847536249644506882843768173111950677048415742475678085933339736158578856884626837400852993744788479592076039636069507369838336741382324081550563739284370070486290856888853898679220598881952828994706697053651004741643774360761726080048346697611653562276131725244720989171796155187063202569614261842157335903402350040975532272069216329553732268509254094408099476429372841591140333475628407999263843562143098138587387912668833576419344562592196275833195251292352136328867103758415996807737485300598376581999329707479913627387149215637497211996957005449473776474487306031581056018836101730130328491430183599676946899997208543249267236035461328673575077376952586066444608144283854334842913479179844269932515692069562131932009190076488042085559089897713020579317303807694233523761336899665269798557980136523085657415409864422090381392067752430491527860754205369110950830498728404049126568995076727091862604029756308941512574027533345420584606631153286433679854160995864946553389153452279011346582228082479207934115712242304678517012009104717121418988663720510098981589720713852079871346612344780557883069958843435532338763785289159529903422542761746288573127221082104405108005404970528080114738213801206365624906752811452423603841908494987536324280885578473337693306077185008286418008597567078043682745464846741038989058112480829366434258159548757736353570599325897673276869815714641476545932625926674957021789614094286538900925057034092482915146376906413991618861849409318991775604586848846998021186332579902413735886747272746378454669095346329457870963137119833328292066988277916204549512961462810078423067743482481093628664600662257472823139555801067250291305125365372456887614904631331870753499467440730020523377493681163754374155223229466580888034449543791786906644093588372123175197854477285703564319524343692727538091650023937265399952211051164650604510749175246055610115025557887181897062390925198747149041438217914613323322352161624610065227211039492229669423056886730907832494616010994722456828260242506079115088971389243331566701500325393188386163824685862722293516746774808434394525582842199790337771808214436432600501613943430155577984683322813534975915603197866542661819027417391339433966043833758884402537708516383838052282436051790053325777227622519280517043792621678358854989201311155097034732336419260331726296889967883716662815871190126094326448886328961052348027522783642327168635258420211350139743558332021746546691406613191582956694632361994409626362898368500051415088828071870018996200618664967103794632881869228711379319120832704805902734520171437497515677281417340446600207448438572339979550949780612820470229298860484961719952895975229901360446698375935914080013221808195024204630256819327716472004806316130656327691996415726793686371557925130226108963309692815650156557352022648478058941071285484670745582823187126960656835117150141079550925545937762475801426355945570584619057209257076307059380579022327326325642043101448376412668607546494567571467314935630296959780965640866422380648528863115668075063550087511920804605085352027016414553131678993887449836196491139475409621670289199095272818782176724984657950206029393767222009933555522078926403037234219556572157923166477004590750704492058291092101889378797144521969361855679976929197379417515024537066513474842160666678008372607297304954200865706852417253012100067657183994576632001085918013893422391280788811458729606616876104281728952465204302555640032969393060113493765195746183625636951357119495571930097305243788723869829317051665976182160917470533627539334637360608659087913098322343834143175023412500392163195507577877512976317782639886022721018737885712895858859675116707004096906016872869055556555862817867845221277240225909860750506019398516147223623236799637036836295334353373865861894047204567579950156504787471477953601016736340246566314556331935873345675444934535063896390309810548050319146110289195636017376439646875751924879890623966120925662571216794346711555157704409895584220606018074061748966062822510586361608977922085549283468058397356616541487802125171708264061878507018390026386392318901733690144503252090162869080008361555785279586125107425480659626222792224623015148705045694347056035798451728257324586475642802309221138386956448526246635202550062946219498789514439089066343982987597717348349587346724067568492639420399510557854585757681187958733306457825664710789697964201295205911472534164782898775725028987085397334811604911277650634398519211721375724297243142366795475208692120399919734851590367713442128377237309464261596558913188247385415360708219995306754599643112099647251363074135002447095457214585751141038849068060924856762715346060229165264704497483236451505947853833961577597616471720084607930707376240672025309494627741786748691009709300842771600308381156915021373442107405578961246353260538222882677276948038198196147872480171718673265856040468225744514088024114850494675992345142654569978033004466034480295962251767469422987356020482514186459130187249501250679792455259507356202637566371711243998297298552816194978659385413528540650477646690399985921771092453607557062984688411708083945888304337524264926287399879375719804066252423503125954597937922720636616057016977017140484183794117141447160403407402829485654167354121407958742149557045329540794450442504104440187455634724411682675837904757121860807139583890169626906062174710755169380609255387675894566943989325564495897642867073006994432325914033596995627708974051719524675197375212556316625398106993601372236131737122400969788414986421180213900990547343111411643136370399403027636457938908084013441706277521964795410914177046530930134500522190440382978702999647075202316823417270763579248514379900162116512720121786460800718114361230009880931520475129757401481225710132607412475612560646445496736472456182763822119483699429588934529434176843024925673552502192873603485806525384785078239635595576338576108447899704316428286414499624919664611899480711504424303565976321379136416075740208875648763505610036963506423449835916797962363955612723248522176646567023186127151310611994045285514132647914793389237540107277127887120231745716907633240385543068599944944618899811865200514031071028493683424407363502449219552529032814680946472362002179240278300309320998563887119903025613847833123635834660602489126666626498552224848733391981326228242182068272562495324624075590903102261942586812745396547594561294750939122418671814292182878464457732706047992084725954380803366448219779288979341741338158895817269640806054456430756530150480103782665317216253758997719149985151031012194354953638243560713347669371581256851885683462718712542688939491625816630975370873767924432087558088813118579133227277067843501833956588317694935403696983870354711378643434320275256115858023438130928672470119410779936194558586548645827615348039900435360468573061416772216063625063202181821979623463154031858939031201814540546075811210386512439115488394692561554908682902910063392798945642074348581200642982704107235089781365712389043680089080396145497725895176443223930836020706155754336283194348141139174575650970872302299451406937354986841101055821827621537669007810055451993741123186480332425006923169470904497445448639120144856817206105234650039576532723728093543849193114615393341186284507890911346510655341334791086344116257408933706570648027635824357739941244500184231821858294799568032731098928723609900660809080338393100927267526896922639468220315790154366133031300820840590066958557273053918649147672387433984980467789332198888618001644204741790174691933589048444278607587362709873385682632618037470626458548728968394766949220935858443346356200684387137136791193708833090540080199165524862721003731665896343687855791416330503139724474734219312876025249893244260195570120176640815426331374932850619496156484142778158707481267764551197193187381606694583375360946160379439651936736488691649032809556350746891810184041386155622529684539293562100555707829379374819466706006153573256694659174828719443845260011530634423197029212081548819079570673321788701018943495950966431286911992966138220515019335503627451957646807046612834319533940976203809689988861592379703059127358364193888541176077762991741290935238193137023932321206100274979574165190250414916362205823688962509366650367323248928709476544502613498226487426712393267596664599740889064970261859516635853618963548358833149615451904368728476656819748164577053314594765868079680526675773102430422685780694171766455201518107943185416279372347224393403387982167279000073986108639302107662855220184654084980036082473912643523492319303405891324809497696608737343138604238301142111996168770923139979814794145307109644296967746130769958521212194960928313833426864822149813519484972759704830806183663019069821231091550013933971646740712147002609273645473666865472776284444096674805081233336347274590355886512224084955267682979583569777780078150467515864155824635168402053814744296433857982488176170097990098319512203794048588606754350015214623062674910446225399931088667743271428477018785269868697745197992327418983737547382622950509331377557217777249006418166687930791051791849771388424345061840273098140325857596740152425643464750033504521907088404789600160223860121828611500753066457166093382929477056554507534547853285600516558847385990537258375471442476916769618303860448421922617386017221571078726081356574504655040638143014620106572634239086599945794130384720470441715339524072061440833748392864141169547982618460255990506424128044000767777974858219439498670604479985942114219589347863210980283303133360519535031674773006712882936123741404100101216480706776895757652792416984120130866443460793810439463350444842360334003845260387306248671587221390523027776870525391165678054086279099786331545387954308666796878774423511368145379164092101694653374845739380851344883299221235913489735402446983782726988663141482438858495535608263045024309937494513053762209284173924873164761182315670426678188667890954405085188723487123358750194092386721755085460863711022037369336250897565490532828969366003917603617917954861251875810856957914628210236349305169599021963554173750695942433735227462909121149288015477928229079384587492943791080612684934921503297170491171266883312256680863774933081559171900672448872463560296835753439527179854583342852339683662820646568127905802754663052443302808354589060184952273647981267161795749088459655596076033747415590339291607289335065380658412470208189372603990079656645513146286639358645684597684480863306431038708658199126351998035186364446478448256877220453094225237180639702378032213335870748542499410269276738618390003331808737142986323016862329612539865159925052801959673102735428611776805068905073940244893696136769852861726683906114579304314521472670697878269670067023876045685553775219226227758590876334797345433392809694339036330852081857452813014453950132109711374735865673399181469710082909599193827171543404577864443879784597479983181822392097736575333644397653217522395991546319607834324817962071298889139272039777149071844357623819441111195846021863346031437416555793179065553660036946829968783690385050629432743771081668123406361219892335094638038553347850596948947638129106258092960269532416204108253223261166335472839670338511858383730371396354586570962994921186423841831868764507490142031665923553792252680133572930475966940097886311418200771703107462598634515203690281671810718648834400064909427308515580959027397883050523913930240852565739932823260621809367522227293723702448870652209812772766167322661663178880139658501879182637227637143963099617157592441307466889136013850369365856215751305009986635639418750418316362490091188634634544083765328415825459032980760130747051473019200030457928127046349121543809900703217300979381148158319592498069882206499152005658313334594126126943936829076027380502115949266987927289668048881079295493473332592482927879980731302466862551373349347236140347310630028444078097226910280716149048197619511199449510160447635899229517625221963543263068461910249714005570730550112672947608183420256004827935870665818659634845808319434891652687960462029263564219825245126715146469718384370623909819824092180067371115975579248991516843651364259923911185397157712046528577012585277934408076854240639472483396319281811679104693900120782143421719040156943102782447208992685731899268919880073375375133942265512511144783749081140464864536776933356844066185001307452549631577184173395585515785919854016939982684171360301451321318846747243228304786996534204056463998978184379206626245149733752546003638595741817669748961300800888687744802087151568183169033590319866541611021718760931070170621805081871947430002890711159939303481014034513365264848112705470879572310937663676169881819059444359566192325819969947893558588208272842690735624628305480533061371482213933550988691403003679292819691684311470979696390518568159225898314379472612493219087613017540022702456149041847725108614821070310685221005612416510860674855956329955073958826564753310846132369301040534081065808974525428613717407269145001386456509904070252012781892050133487303637263238812591367388910708155701212974409983723576117174827548074494917764535984303015166941544105111772786558757019470290883200875899271866204039709700035315040543755921531106630057428757775254783649839915666248718476545932981368019560163634010592211480449554136863140811803539599598470137270846812685361848542097352113955150915136449475819768797251012304156110546866968314604925466531207778485672717427902631571477859389133142179883161127696517949727630000220447915799740127405157253002715234426581146822935726801577292419397616665701059775439652430706099786676825702269681101904252666394561388708547933238261219264225538569458640192460235419595012514264475800797329944089789217003570792291934097677243728864513286547414740315335901637762734078596585991766395909482486399771488189447639457551351448852759584412125487543862804410317651193859055039410058680857624765316307725617566302274864154538820665043494636335461793925517651081274653497187108638755106991551408955267589186715375876239085967566832895310366427794029639563010634227226166270501700782654679377101723000084976974466433233767215135796929582138464491295790660244065286375234632677224625670866104432514005969446406721234269185115878436865388527125092933641470068610372943206959274963528341966062555480152961255437795681366420392589028743315718247516481125439275036116779133448533040250413502600989924776464116046305135857820691936317872283633952502035516239277248562921738136569068333715973562695916743053195768569308918360858774405185296730763117413072512799493440707826972102353712049676857048258614307130471409972371664183813749016594423083799903535228121997150213760628259889443834673507536257309363382033429899508591505431719082059717932271718120061472392014101561670638479179677161231991526360623299845329746256372589817537224214196459763256620060086062757804130364606950378018936456971249330305480355857279765698956366556960276833665780954917476519007301019465230338925440110388668125628414749403152501121620032976491168181660337120945334312549535265273942512360373403378462911896044635183293249305416190134632249182177267438264609564323123065599484150698754585510315909446817120786996529067076409530470393030905030275644026016867732045788708212380443734311845557556005999974273524125617197285506733248660221187408196188769073823304453277888656052552110139250639564717285058991657599117706504845363501314095401028822468381032867456207424509131902838965078881897694529899207317396981087135743120023768136591930119055593791945653393286136981174067406251962753480710718993090196878409156348733830294189788150823891720958334504367488261086001076179969980869703684585760392085770344658288804018774139023879582986845239438948513003641171672416741746481213207158612725812859050509087063811638264405314163061771200080394319348295831876858081972152573749409005824263033632685346576098252594181655612323312067022662437354562179973521877189824893434136030892770325689618144102036974171068527282077824314337484872692874394642297191400943651484145473484978233914922339945881212101978116831323851192331717987303172613696554423795199038279135125122221130054993509492620347895652219998049984941335399141558493896840084225913561139161241362980930264899611201961213894318935303943763865803597955079596818386768690253512103710697771265845529633033921200588254654422226407522307025481840267824463492212996396142561089971233529578819151293140463247286681603890194153964562574109327349577096938908970109858702805812956289305661113778904435491904642745893220767106946374752998505478207884975627585547353094927688355393188363137331204866488698523539090803256783704947461444065608317995519702126492253193271903145290351420227598556684020471345345164312029596865974242044116573654626285022501908733460424960251161194270270233148519466835415232620237295116101161090485206547206213963218923773260674477743226986154716591050149122238365698046659752999645474540958708901400082143917829119227081635797631639819223915409544356894315135026046841257776740552386131545080972802722015029421812748748049116487797509895705412007693099740338668046880376084237671901149494228946122696821581914737401009996094495533293373215985114324403089149755414952690815923543263607860507493160896950277360793561725618406311354289385753464410329741193708209780244143994384102653530125441634025781235322307521249350158117612587898282165787544258683770152171935860709976393702508860108994596868882086308492968576261013953096559487459375882289739272788613482533748000535522810283160065960589216313679306729316230968957715073732591905561069680115332787791046170261913078091530272125331823389803912949832398762041088291972966779821181105675207278368372348868316675324839788064462895423158730913744076697258442186742508052203594795183049539108995976870008411915541943401599723830021847935119497356247969708938441044026348855999161629502174642420907393801764133796775009304153699105077284940082241035705523248408169315107150545105232662604747087122191807546757187998774013936131275819692453349154797262837452499150096179993114950136989695275958213710806152335482654360916985654048603246094628792810395031821637397148495537152455128906008869661323746142498295590165149008667648174567675837056047853572227498462353000006126129417865928095810968652169551836444017854981032800613827218852672803619671320357973785417981718580171314864488383606734892130660676660776520943079319455177903916294782171537096680384248351855945094262873743426351699017329557267085681523375360300637802385511091398494194369492076563348587431275839659531128003070895620817368473478845283237763363257586671768666054724712943018959946157104148845184792956735022592879971999864409220992068161757716763562451983174308664416878548155671395817465815040073174227573941564597069181604712570023153090609829029461172207947644662810175125469768431572792366427441089648066342717391569731842712555533764272105246770053291891446723582187782766749708989751137496238692466703530634143519740823323722284605088474281057650310750575074837676200712290574139156131357372612474243847188364157643586442803158961227903135287382918084367035854954610456799175295536895834475756016590285735009531344956789491710656089221098843463574051193841666656034023617395114248869453736456953225700304085442363424442972953321763474121893389654377512431611607702752598734924911595929075845534657179430983870911391960824652128445507395232138644919824883395358284648206378700127406165335779211232731080325898809213323518712228263915568859188889730696654509218353894421582031907978204120018618521689916593963769608782558012111656583532831129734325906661824396520448249206819694470963063869203787335759045971654700206600333245394943316649164473560693427811451388758319488850558737648536045020076890095854482959172410387735730106585526052851693785181207945811695411650412698366793684903287783445338296729453789369034431125860221373347842923037421132235511542602719563023619084277175613265197498721008513161617453379559333345864688611113224908582144123215296414737241668747521246447438141040835099383480706281612470883578423043035108791872457907651862434698108098813081818944708664158358812700993899190690259444561413329984692094043912448520827933889252489726113150076318352693492626214911549079522535196575840030974510426434206756490182901365614853508243432192660404716471134058948789147290022033402541971077508729941342812099814103335920304620165243104278271136586675076269748911614037798045593805893167390135469769756240480938029259910526144958153063206812373484835867024857185768549347206979929446834738512123703390637401161664097591622943875035715385340306845068766469661245965308058766646842141827729007476914272150279188371195719113939546288394046434319977212762835601423276475154507401887393772830168846465860962859289241037253423419807769016974929633549108234360148369017844630037326586330433189202519432380765689755715805664207369492482873773989709076392706899774805893948810371922707700823505345104794608203330180730962379510434160989305327712950716468676410423648103773181705644244535275656618233839407277433199006628115030720406139351903957849809143365964071550918902982581142087740797780138082990627776154810569451495627029816193296293708842599803588595509488744640839465659284155832208806952428371699134883224830186058706267249602581593497914845263043546833126939701742082526070189772271705524992889847828027499590811159123293915644729882824960017219925522079493399579959215677758182555803124016304084185616825650526902316957951614854406877511690807866726893544494504511388827689822613714641316504251676610108630331458431044986430798612754252636495083667340406344031732027745552346319142981461439195496284882231275711031227500112560106214812568658908961578497519282677316132382034362711025356072639073311342202774716992959854187855516721069713412248419232299741316996456506653898517998794093007805729979426454752228608080073672509575435987785322582165901318185524830952755103304179059138229569910492031209419362228175830441337170893344367223585775078714738206914253245349170190578520335077190336331618978059853350108364915789578666372882554649515092202289273181558165451946330783839613569796984618136703879844592971899779052952639054815368024033740933571356875957142596367320703854891297434726479897535113515541903666614022862777930180541620612660722745697105053521291412491946725894902050704104873643539275078824829869908423603014690332272225462241911758314612998875016281738569386828608809027374429811048261147042106187998497372427154504931377883613798214430082321026694534110128398781741980699625132348845703182119882061172877573037035254331513279419275203166823907189931578006078171073790513074621415746300697833571839191349133604627257106483709997297811154524286638587450080983752197336948778564499442237027595164087324875976224172010806443449293213726517768194318888557707212198319275751080177493784646375273882511724723081781300176125957068082630564780562061112827829086731881039553308989699628444721612843000605732689982094437422232909971685947974205841307175499331959099307409207325635474201509746515989310074168876173324645868906940591692426083770372330805118769096295101271625865100709799438676036721780459072141474310518628508922780958259416279363607758061807880533586427068731119986754186150575362253072609032115054969290948692519808064744100690267600078064041117564424930739834520906686559553373595939658840133812834009671702573736761299930952440109856271117711314844980303819637492981106661737695983477386428574663463970750272638655658565094962662747067060003399881171483062425358667862965268488087739620763329823745928938302266630954708557993928825262414917240237386073293985249681260347719407328451694178566678811670377128020785595004489046198865341660013901934435710330173426960852618025932137926820558263326999197067196237026006208040476791493289935938473949251662740801327442513384212660177634036344995830682752664921413384793317435086166012118151822984763446806399280290979610877449865438661538581357497254868797063880160871760504627080250818327144912730500021942834200046835420902863585954035189893533110184853222822786185009459490585545476962881688596047534087150418861221370520256232803190609568635456790349815971899990420646469089818238653052708748689323818952634831243883285436707777107842152605576896470602087372514027545665286666398224944911116621915279728409479701522950463817342450193303948460784249367583283895242905190084794024209680884475285490397403651113265218246796178604258365661134114373921024915151449623183675196813927981134329126401402533203425823527948888348133599972255070967752829443150197571808715992209434589974304298069226330110380225840367764633757842843364676978424031602378225589774433665345441016213293456602408039292478115080669859079254662279494541158317555469619205612392297373404264222602237121351499006000890364382157613871498826878556088819708557540652952509829815517251532055667138636911817817446746881094610237428024207363492869942787220569004378921117823856023665212809483846200822760182975865017436961585057038676840542094951233541998355854505450678301781215700292164432932366930393698229854656284879647711486584067808492610123098907742482684704679012554892644051374090095784131177471475439128572446850984040380741433664879554367436127627369021151745934206015142151514380641832000981546207817613110219523934502384301669922297542520389083679055943737052835667352131229009591978524463185539965174883919736373186829507441782741985615457890942376514289075467171409301354308965307340290030155259081117804794683606031896958805876781660131489992300671138762780260133491244203835076321966127833531340360148250741105264428776020648717751613544076073152601561931808083365007682978873759306097630184657066574309569867102389232822775202498660283882421331463684301412370316774159666816806363843404944073929990009008341220011282307963980602096964097788879605565434880229156922427969492793508222821248695674351141938664406268304361874626548265817298623538808135982174690128813281656359548171395476023944420311650809513844226319750341468024877051790101709111000729837117933799184050802414737569603338740559093162529448968910133264310651603330187254408870665625093672374178167227457763909601425036006854102804347440260569841999037202262283123889539205636738948924841115026575043570997763298558242048427161602660098556599562095922109297578611108751433013072043765785192438235317843109540434702265900648215129300247565272380070666620141204800594440828687154158479794522345997717420601023310933595271441664750090129431861494104663974955400953833981583833842601119219353750759942302142959457667292082853837362276771354992526041682277881513209849279699578279120492876967067994761516000369592727352350334432233299666711741707452415639427370271161870401567206289250504314897920747971743451900801422632526804515932945993438336066836425653462893019199908576766969842932116426708538344978279078724342401674517899055968857340620842650329286801804363136898408273804477639318810172434964313592361096536166729522907191087349182763417143389895565576542993105348506809446205016941711593439566853732507832704348248712254885128802923379290505466898412363701480415824834959714499945042124121911735118263782229634096029791362405334224016773829510928939615275181048265625317317227710624582583241468876331930850945873291655881341642916953863121877872720123858391639776160111100355690686657299563131539657567964327944173863573240599300621847972610150227087738506287549641641952571588398792546582016816935984936492386270447903022454942361510563202901770163925097683656305986515636447251146474829622825937446183316686977020169299996955638991716960011405596184139396214306963755769721980477820499926103665802268630569183766420316286025618368143135794531523648215553330014102531788445426471856640912802713164633498625048330030957282443249541569688660789048698646522924002897478924241314140225309222607570002629110610675479119994413493313418294492775312619584500280776292253759881367417104058820378026052521488732523374800414283018978499251428989862268615508549844801628170988734808897793916457394123752656959378977015430300142646724398409157754220672041878890640564353101156284106009646475607769256969164637398418211502715647290897181611710818882426469664883977986795379560077495119322638505017093753399958643705496575882057358184590707603220085236327415337222115663657495847904984659939648062455197326340938618175831388616303318530868818520292971577727330718717550930588663342045396620009258568164174777733116605133042049895186052513922485656756903633424248424905945236208784597296911108917333989119245509483929414996906183975304117197190029868254802363540440329433686140103544807560123765971489528243585184236513933288111290206643564922450834437777365453257324247554215985359091304834233378613039009790450723138536728668806724779974265332174480714937280028411707749375789493903815014705105842630644720194141012345911726091357943455840289546076095973351214636984415673078884823199087671759648843092689079217092882021721440416121145482615356176120153611897069015501974468885924717129424457762711518434908694602856561543945986791145375601350498703734008719619839573370909542528604443349474836315187026290602284224748573697240116311323105196949697256708134127988216958321710128964294104339112768082230261915242727579620551629849790417072076339519872921044253524851156209498500765176473742089653917977876894326853822693294558415458083685869261023812565376423053281614025959707065836589767208198619326725795271300333748631581606971368067130397416304354335759921461411658894307730249152380259647879724179825422651668683765330880981748092033135808493072542680031089260344273572045488878476067341296480494319032936131278797846515986402985193912981815294038002697238157740094591482861698750659032248456444098120399488780491103361489694073691397792995194595357803509335282948754507699006949203638962054476206034710425373770527005538723442070447878249660086668754664589702343801772534621046420941196765020176702130166505458073308246216991688672764441106721542850090162404560514174782519406745888036191338025744696257446084338065173461519214864031188034427810212601854175950156821554392037677919249631489755867455834577378816314612919163201115447035879303881819403727545420963716440801704497158291858605573143339002515246773013178179280164127262887791851032030575500300593771458809154768867940272487925310925303995987480423317484493506730043772789095295890551751964380995059282562076084264010588923488374854105534376862520649131123363061456490193615728931529010720547822357491088511889728832252638529158246521289195059966758570801216452980868496777864652984245186588622014534866569362122271844028249903718323773326045967734021007478799585748386230472943755146477945937930758397703492378223207677187066512883841839597208516885711410470825891854817246988465904633962623114328031304615678159436291841085182320664121352988929727852043914537112015300106191046841222408003799736913209477782541132704963136149949342410684902554585165314235632365632053032070159350994420132057288659804776799482357151309414505340311759990230831111207531540484809595269783236248888520413676747771321990343670675344578383272749641954724197330933005170423885974607077591129166268870751819700027068241790161682398873738674639610154905734022505739246803187173849179849595075257007973464965150943138629589110632165319062188745230151747264504873105472624009325937401614197825062090865354532704955011190987030950586061214128296793699335492622587778706119384149733368449720827696433341519685690391529749938681679227934848009417893063590297212384691380597593702391417110891624152892689016282983405064981601316851102636181239243264246536802443327696164389525880792202468227845297895703582873315968884035169731216488262863468552147459661004758191915001013863087426595141906136184491185428101619335590556348846902003479950770632775155248415680543467005647593209211682848877243282128005528202017119602929869137768465762339405816969494885347807065545906581211181352465482526254113061702019421278681495631901448771466841752906688731077936926515848159640900243550607942892194050172124221874114759816299123817975011397436101793837626658599637259900842436852447570088515607019175761289869060675041499485907898396008418196684757896266920429617968322598680234468451499815867784320252287228952718176975429649346901511312473225401385163572393246267669393564662712274362455396429637064036972844673116804641057917174445398798518311313210317480340224848723336942808819591154911634999430608393724303611642277925983934663909085750715172481381703963812250742607572709247763167294866610630747379852660516996369029897596252043698459602843764589296424827505370973885706060495484267138450452986168337159547192648414068819480294167823510986708602485406247306700951720779157144911287859263058158193597019340757658059536762340122859878219954580352701966930762158151488582876832213278407752783654393336119196709487347722360384484403692143682476757338715713475881321553186127635216201455753999354480264061370537596619358384015190054160502751983541861419216601408753963937948796948560003093432574294934280074899485663660965442029567141269936020006645190068326874398119776519752771662250524215088189888820619393379249146846158198034343923794236899549445473280262174421308445772085628349912255985109849663935224630628415763056044823754532662046120074891556949523304482772308958589408128227612342451592676056834897189078550631678765238340942698547614133608824306085121650804822686930807458816949370560083187290927907993950274451418309123042605026855828791723216525079617302048865847132028513115434388111017693126619723851608575677766989954501238222993768357538473450563665137884662001407275478004035014177203833599114551989782999542482848956415299377042854618223460760210487977443654535654260000971816503407130869858245586073167158791534197336313408434457930486660481528900702028525845422938307572377286252591560590864600812856779643272757078560447280367314366441204683699698042107892111977120902838215889359264260552555869660335197094880526099392239478726275027767840029690598635057923228323561288103086891453267195509822904818418633204963749467523315520305516161154357862053239492658439617465057564436722470542023409634918171511642730073071105310611129247900506522855486689576889139555843688695066489734061922767263676921871641647107342088576267330042838945522067571242530081279586799544311909492663956621428058950357641898369763434968467161516265504793395975604529251979844325351644582461161886064204186383420748421500060844555736491125123708407236193174268688512649273398854785798493851478392025341039462183480644852932156785648504354398944200504297317415450284380982122533264543567877423953234773119461936508810780118668230523590208984821514483893028576654157005485636078321351997720160216429700026610131260061066344751117935287390747177880397081477912336637234494757755885133104970378208216300551942668851753249191405883505003736899374557922077113624615164459764421151743960235388566095300892163645516415540999730069560143481049685410649460381050343647114966512304613219770403285219453278211419717441499933197932343440082254255522007391788248490032184830989331137051124022316657513631298385474537982650405893956663329902083623695757770983216788762738125535570283894575287599925391816611792424960299023112729901048989664772312724015241662658693479889805030051604313206965206308228640309392220476884085853056847902067424202016625433833013293976791296275138574272410729877935166711204625030938418816374006332754550499703181455684080999417749491722832475705907291504716291860653595676392362980448411428201460751222366084661011230139040153925950650777691249577542991218980707926681486690437449156332252581355075481743671255457686395525977284166144604950609247407379943473472744680191034003769789246060010998433407359221188230231603777276415759155396368443123139812421164161074493975189331407872501288941262123643843427229938581101438436125281147664826198417240221657294147275011312493887759892620954485784121187849236851512873727685099758864996506047845268370306389819335949315784475873844721624292326758763509997473580302874439663623250397698507725102288471130448285292601391061383377855680617307187337072816055146374349812299839581314565347821434498522632157924161472626919680377846626298954861326863836271303669594668662156973627407937873189227463696216293900330085783163329438645053350249805570809491768962509188024129959647197094890364177806396291127403436726484392564573156264964948406524521032422763050320159617313573318442797332107574417562043325510869183087641820727302462962096118373156782384957883730650522680132448086145237678145173007364428324043787141791922895095925992649463384560425258069186751669694983563838441933170671736722614775087379751432683442822232807654301180934985467349738022691429121770850630729942032821811191343021680044825168951773846530796452978985218027674904256234716918213782423250118069337523691134905118377661634266205178508540505203981561920507083034044480122505143737070330035947597064667820102484277080183002801658121210750030413222448368173028772928160958492829333739691518193494278326594021863943802050070428766648247124810884675646948591500489173318040637590725740530218513855877376010260688689358677655877685397150090237621862187304653549050454260566981372411367915436962799342827651954798309023671219737851543456348146077363300142400187585964142535978413609366995746188877189497586747526167915566416064418704547922857722749546770079147312249167894495983107569364036476146617808240554734277395692870024578969342373891204481140002548133078802279685929309204557976358500100522635139965051312372827346847742670466121957637775356517300526631914283776101391059898724791038124415304327274482123144470806334429955918106756462304136448749596849081065461069497360309499643670809918551579417412970469996207941466096812824444285769863258151065977880083333331486628284662115353479746169984281994571675645576936645408683739657116951042370520356086603850527009861010739083780406643540069400293909448961616836081310560272738264979863348731334053696041050027756795848381230757091428920826260111612149835756135507384767162963145102793802106880841304794533604971806476362782810794961120163231467003751232955217089737127179401151319215029568553906129376598227467314632566692471836369711699058903664916989512322190492745486650997332699066660602866203564876995007785787692935538040202056109341090865495289370664567293057547125900121758720349785788187448790153479139581131897025933946379210887686400857645164998523581206685004254422694818057358437987309613723264883212372354632281971741988607188422728997545169678611967361164083090111739210271704366545825330580092184377834364631070943610936608665636392967876605021521989795073997041622754200204886596997511527999402164824135882103791988478284153955901056917195838930237272759860084413281800080835040952364422733242348628190361325477174817316223354280001755338260443041054260634570618907735961546686715114864576228086775311158774081992703948048619095904022828531056030210421149402059658040756163027449570044524183265050216431948290737321002448845449798350477155400213395178861448638465070629418840227723162806928349763214134846775204999477144154890796702261074876010034616204551252744767947958748193365017540414334810631770452066665926034257807730265372789335906115995560217104392567565095756843231594225545146476121646346475583087876371821266872390054772219473654165478082472999226489497996397115455161519372416590782811601915900721562700641128296320198789882116299663451973058120126451815535733150590274564338596368138188274271949359454450560813249534414437955014236514633296199189880827142207510862379409114081607804707131282147188386429614615936565580061650268088393266302175327529449710711531825966482948954646824739286609478375687330635201019388317234335566096153890311863330340479968426593000948600979117715201945414486575578140706202806090947657259965594127281357925811857235009817771697014984597112249564799069927867699607524687326157498152975712883819208007381499014100577911309678941034507677409922654605954058804788054773510149893020788304682565306358966998817580360746545382554951665194333011764608791278748247150361696395432525415847035754309451921941997540370835115150939385167151282015362302400756151241724984551740828755470286643821774804235942667188654839619133682625693166327912592198490372854634477876537475299929432630633812532585800153993981747341462747307991121935777443532781767010272448854359597508832479829610441854553738996494034555114446538298883275196326671625569358530082397976993343575920623358443639893613661542026884742513271103997282727748283300798276259995236986308966731096308169942430523531708022061635110679945195006078545864659174555543770921450863057038759476047908455220149475246261583247894738337991683784799973951844197084179945675165379398374368782650405690868201755672751868143765791859599869523382526731709541211373960118732699736221977332582475832221849097669176052518746471637243491019979632887373396353603008359616465434349812195280801125585350235854981059292032532031522873849101944059704894941349558995020726067333620505331944830745286391377700788563172382605619868778305138019861354615497602809345197523964440826411738879742060554705920378835956375897965910059397286026487780526655235305495484393141653021436697495484799146105884796400777662419269101212875212133486577268166657498322655853358866380136984994460988852871927291452094925504582373549146203172846106971089547950415454464906257405305916881228321235075314721820694136270027862326783672848140629646319893460875606074629771607776242214220780151416435147697273765555738946303423600036786729470361092335634362341983830654756119283213238926419854456118504374224249648991639031369898121537892341360260485039304148381627746589417409067218353958891049467570131580734498975229541933254847441649570680564006526357342844816727690916277746903671722157082292281986626788814492960505959690102555940736802249034831864210540739803795903427353526337356730661189177284493079309956161868892964784917980568674214281912225415205080884743773965695717223502771915048157893663630246671123806289880191895455860421959709029743613743982510531733685460440514665906770999702921129427273772291873955173596991547790079998219605679754473696527269731029917442312235511750937720876393970454994741913646727120406448041974394047555112639115605962070446313411302670186877483606135615631739620157308388401482038582666240488657709978451102879031191481158367785586621106932233229140047528391997814248999122857393699235970388880062404189184977589085114895089528734362109829935968820302618546406635794291423120677899959343007343646609105366578337275522064747230409945372976764810938739810290425363354221609635964494258611115276793177828777460736230378709417809010732609441412516452702130936352688557763082616066908692541194520896365546776031006722083226768855673535995670119084658999201405832545480985282796197394620487426513117262053069727373423461861839366388780405982832904458902406600336069254479881432871135484328438642419441871905609986991178913378879683096179769023272461067955960063547528696182463962130373781832426784445474749703971341927581101443575872403515122559516021830788338030660733989472986167456258050513107856189000330470300022425139288770893795173675289923434772021125339803087038358149040132022850483615211552189086966086601055688329096035674189824060866456940113522554321518072527280229593092257108378327108939208313540931515496754880813664999718799679355018942299372785590965309434838715832048257349235475569199390256181096244334367104750768961715284955573984229203560931809022575358799728691242128483893423111247657835626970612851847923530194654025665336738028148342990327751953127300720236168901485550518725335486196823336611076428408817677344749554487087394663553006402871430226429876938887327277235823104765410019081215240180906778907491606985721995219752113020231767019423837846205622362196720408662930241895759644429524686816082223026638440286584644144595624636892200601781073005001322533790881313036591843481174834789747370957408839059614855155115526976271940819740568213340054021918273415843737959944957515687464750637394586114097942583859699602379380998092451509276041675219479789128524489488252812836952335634190372066389764931476851619477583481464987384809392298241332057905540803267794053519645871368993428883136652755756822704479334365306638003553269404369634133843331168477513757694444773606186685214540581852825744783243788445388054992507062798575279382822152368236614224558384824449657265637816074184938259603293259230680788231772924949170501819680812044414878173064771729778166651612799545781416597037743038230635908834450583807574589277331068459615154935207316097236845503256597784704344421417051292803916129457002919587206663796526693246067354085335871198626372203755578728186622955892669283318817018127300688603871614951670964116557125541025944673336053711890752159930852794826206372356187938464608310756278569299716531790851592281582900059371365308847875753349617649981122478392503146941876881025732876134354497337839721630404895644613712242380519278385482432143570038445470716428486312643378455637749158527285132017743132236389303876869150221381210961872421395284827347872154486306439987001361257820307181744335331250850396753129268814755521379565973736553697521733841574557753032960807774176586008320931829422072492159703249005852308827791053109847973452803438022928791131163237233548098951283195505533327417250774417377796030085907325196595928731899448643433292611752035410943223470182269832760475234058341262317185626751452971518399917025206120044805010974892931852237040937009303468703535069563874062726652771498418992560736675432675060218084591984608276529428585339354767747418200935911761994362240820229506308260209395242457889027023482826520397297274650149927317625149954191303888462646520884781627457239012413863147877984978454626056766256903852462654811152713269671114274800952628223768621450081372888459226313363228348929761502590794009718877489802999398860505578658502077573093317569416499001420042077903854775073229322001036407992146325476865137796927981063325471969086961175021649138307656347629430522024828617874988582526791478130683595201115163185825308309402718815017125111159735990386609398751433003484726247779487301713443030509283312129222619544908879135553101990211749134007541557526783956102230099979426099447222446990156072316862298214672358339669553216350134091920162020411511104042721696322470281391687749004879697593285097869008533065673056213969357118036152387340040965095335041635684082969272976283179241205269292005980835836659503695607663598729078376833787990179799959565258480731417432118048500636671305699855217122367505770039189303547136250967652863839662173594536035256391214640243714339224894008301351923022040278117897578338898139849197861156297841192488590884890798187575992992254340408165842192133985284501085359995775044866905618108006530288729715030045588626478920675223393954995692727256520641137130087167452039780688258604062095252880769889668987540689474701514238729996979998194487782992193654601212940557674910763029503761491905103368319477909664111111643130031613015771606043149205966975572183097367753809644346307991843487331279685942086718792526138976606850221763462402500096747373406658940989069780021659136412000142132129984245321758268233728914474265880687128568848398788939222197928439705879809678015798406260531063545623143216953039451703319554599623257959728005881622268149707979023995110454002572838937712014778132515945464364674980096985412516870510037322908857130463120114776838742813735285693988478485221277916840895492602766631831777257484967907447425647807368878066256037768315431432219684886251494131609002458961369823163805171236101895195590560993450030432603809109065438014211678900096611513602240831981044402094257795813896163462179057648219657734966430480232676189802565819499304137845422389064000893904149988195333056841015149631043073233141341117539880143961548056938598459876732822955537810940715187921045647175436318286948681116348992619217726126916924765256268669868885768771039942195740161055720915895893448248055545204571286500653774292817933994690288244011953410033474058103888688204400366731272137266117061457315082818189498874859593298767252406298439255774159540259368049753631463375729822027103179966254587330311126425532373301800919479541875334871678971999436975125333807279938310045578535768116146684689291833432170370134535694770117020066340676757861119748844218879273390306398110483315314902826452850498070430327502131801629768111803018509201178422986115205092023903895150579701580334760248114946564611712817564751687595556328463188823264127735615708219875281156112194043759406258964387823454665760569536418706745305367044012371412185203916443177953065577030878532326741862291160199735279933643554623492480509539441220483654499128268877534446652357534921275110436861799210464087278696020648869787951481615447860599995578700067345365437967343949369120267434941054096013395309049848311952840407624573173185754197329122366188143151848844146567508036964038526354875915584532129262223097223579176705538426122864433809594449337349350773121268346811580437982700085846124853647728704731923581778634878050758279708311460984476392290782870739351322099045468699362887363222242887263783138760895946170525586086020508664071428935484492244728415653570974406032436961766930307403895662051835451183379864722356677756463409818423168601519777174425655455895776939581772718178188168480202816028376904162458471792799357587968872514866533863691650528007880565569098614164911299605660019930036897552375901093004758396938945399745065459838954433684698061845913786462747238380240048511954702884037893194275441047478291728907569208606524646691488008144890948393815433479525279396724192897716782711076504426196013316860407913768319145407328788642915061998729775468713863316870684102546826051899649416781805543685462654739422213411358767739593669618171629817025214187584821093064818173210243544998071195049373667101673911882073138986563656026493150014021488362869954250566666604002193468821639046572087450341896305604156160535195798165002471378847475172517990101004033083857716705248595949997444778303860367256368038194672260567372394028393170172476818861317373647201591965521557810655400216897360702718974012353131560630393431714301235309723014314294126241325780049689928805630965910024406362484368355266888365386083332457697530766223621610528389692305045192360908573230601756816822906586708616988351900467517804753598827967564848707680394504355368718696838788570809579154450421109957228408205986869294696148341529207872749486664500095992028698764657381953478688256156269104060449660936721347921999411457677405881492724732847638015741936660655104098422484269681799938889876771985713178786972913292019392689808625024120185562605164366493719496064931888873867770452132755537729826868830991358481088213330597793783314025337772979944907351008439318048514474753520920892624452437183008663409541970681841334163759233324906031063646605989997855864982561890179941861319229204920673469756921656160435091090305758390694490185134938395412796506001004053558844629181354877617337986665919495810521660647957054082306757087845286043628022552649276866522226041192987059861725528609072474013348437544225352835780703609975177352052839059073382117814956806318592362787298601187241668641686831547972356275947964636578134011165474466018703881579434290891233864262489462653608161503062081037764393148852324750176458279805117635183018675168793851104988129501796751414496729006394770762701399462964519934977232050241668673585755373355599167232645069070551436592359878373632270517050191971125770589448179858040963783272010104342709858750432193745675887846911376079175987336276404062248932147137531594329629041417239614494563499330902242399843947942330503435201651073068596257087213880282180575012522918451835788217712096701230017035871745922423822795350801734723372960789254443471844081316848539313350452045723984981280946850324018239165856193129128326521900230799955084909558061830934910446247878680019946987553514451536093702083113961691541051557986418521099594383770570672211224234071529416141873244496825184135647913376010656735664057174370511219931868596941599751056002052181506550442701801556332371341505775349264579321357633507235208466296304994461685452644695139807765334867942888822033657862660954635920530615636523722392293781606412456786063088023863098329051642712902043904120578832355102962712788992140038438043480293044890238384983997973487975938070605393443444327517613120715284299338725548238515469652211973565961746283470440932810041797233542981279702642745199553472170370067918959061190509615604834372503955805439349138798494728835231547923285017218592703616713180101547133534201533996635033785796868007279574329211989644434948731441685923086043036052768028361828662791049720148703737375566132918829692082038091699420078630978808847189300349198326120767774085490433115575036664059262785396777390921553183166732058279492231090211270787106803159233880804822550371693334565253186028413948688005201272948702978373962901135617385428152779769383571870281897717516226577937547001370829035550153462459663491686459086011635087541037762959329577133252204065151785274014876317508218540948745594690181036900113794574792763182122765444678152873636380834725599316226541178958447272373491218833685753098976992903617168181169585570287529529679551596732503897170015588027501267969365526484548198101687676655717928636685214562925214673077285127775745060130146210493700459477849492114427354900696161551922292406551728358102054734203234082804646117060457928072628466751287533196399059179918361391994701238811495374298282229831898547110186723553932708132136712763765324851843613910813984529758498360582183274299358652866280137308517514496994101935001206087349324161219410292970982589355784797413053204628253324696576284581223221003116590596170307934743285577571246839525020029710644648007628096568954989812991871062874971153922201332534526109877894749130282121899903756901233539327997730785169409233780475146689291918513771966407466927578013978930214583839086225336586702836589447119959825768252704982494779375090722259192938513619393438793189461934836830415455083123224101116761062488010512499111407060777885205998534894206504153818516055535345715870282500556452254434521525870242149884730847556938105792855748706055544556631484652248054522144579761251556744507267189440353734514722175237178984939728905495449981525991348303538628097164217414180782280614348268801670876849118511086660315793959136816278100527130181928689618728009939334216391311793971178463105207598146831873449460726586393964537406176988380895349784960377589825537421298952011111545133028263475732742707127409548837718345959807528140927855140858934665595570359923920429801047451520025402061263248118578241552959365915461897854064343294863360930718651172338616908266620617277518269101788156822721592441295154274777279581042580757542011351668499066773554228362643482536601870250497210578843236313241749286101489147692606521273066134985875278264416041585809714327912966688710482905440924973605206839430991503838813026349195091210818974181278401648821565217150064088770185195845099243985747111617351757443959803069129577392080583829072606957153086974891868708659223620697248976894865619129881837788135713000416051189211271379699929046702016197494150296355428750663453688740476910319454677780602219759321199391094754108321492016982291289126270923603081873787169616115878786733084786614873906566842864240931097274139983803069647964646100754798207277903290657547468361039792262305301286297802192530452936286550798083174922078949548004387485778490035977839655741539648290598991152614716773499437832714528311815625365631545055012223902622652736641060812052549490187554864605393251697053255954509794316024706352378980367408741886964356287048325239268050876105219168745931715085583919137860163231014109520914378641939048339432857570285826002937850877202854790802076963884483256183575686258410149215472223212183564485655704367942213758541717569502981556209869037251595844991668502019799267500977720198250183730058122707226488476810904629441090411455076062680975837111405826706828530739250381167753444691313868998290459006619199254180914114828608308859013361388945567813415475089850453067679953428026228471243258563911637510694700412877065101285323255881593241611403646893736078801407583830859774110146866765671635273784158965290928710431949951897058502621961616634274783863277123932969287978806752746466868073971394806435894178284608109061565976677853453401087098386377805906446062478719406824958127062832141144062802623873988717423105372519991056686674994874651807870940637653227050314362831817438932552065960560231030724030599450525710503036478252554023670693622659975322731492980996609712673703843846720664591143900102328429831564803173744224138639614698076169625058733471497026296360419223559724377349551924035113525792918134094198955243497417294712839099334081589768833282724078919142912980562924480470275925146863230682699885141679418757849208207121073995489711675147260100917434213065465846097507304248822584930387658179677275766133739818898047150634069135158061125389189173251442310395816655739149651378372907410943966843948377634012361503692333880233133054549179585120475068275204245916102101545584256835616403472835741965221979392763431993769269019457731683281880803776729327331858765506498124109645211482644455899523382181643670308164017874997811080954926176443025204965395434403383246519304131921930395970274336216848542265912600844581795849653059031363177803302297616343691603257283870763902019661191117645712443339206702621645920650641376328311626194533298565413537550711812194025843823325052924136976459570293616958830202041535468364946403450941127796845943129704799659563253431578701777735146552226809011729118521393174063677931573586271809223220002805764018741940977747929679764045720326754506428057818248594206379423282166039763481774579639125679512899114889824510616816664282965928997044904574885286552494155773605549340199263675390527532999548251734771139373462157832607427437963417290733281621873967009438037173686516931099359663712209680719135991500721974534665643160566451596419424936441353804638845702685558527418213706997221348307074111476033874020178195292075345711803150597143295685995751099203191256906289453344827127052594162266508554844965925243840209710792274012788772022831226397507926316185703102724837858915258130452241047265808124629975081415559715830690565348173697011667853787088129216950075651378591449794140626546620685757734949916086162520478215488299959340205036841829580176383963177141674908727447372163139689878723406484181230937854710149353365549316628442033617111593795642133389806011039937918094969624434645825006302520921956028244257030394373801871417381913740637620805937945342031881132049854233605151391193110557161995207873879743388469505403159971271644541284127195808417183699447736343667437631218944460544006841423050511571160064218907243922266612048591255687209202103236802789459412268238731841077726178390763762931080249949601984863652980864476786591925623966749463995007735428172455545640475686038670492181339924612214435480850136358679773054667620210750156632069682725299875797877009780462091078639982585525089981427220521656647563171599493408305998401583302213673390918938615971728546414147142260142043308700565809719396870889446088127402221678692829878278231125728481719309340290052224019605258340382578642165781779581767380663473086934266443127424037414835668380143231341832019232609667990217626163876769997653632697387130625793652210310500690413846843334424369031794278354925935113931832824340213113523859271279142696565737853380944696224391388463542087402719459844398103879270959368658544870041081242826338233793845021236764068565549681165336189119083005636603456176240906882374846335996671703145408004284258634976413780211974811034992157414778484060265981024013297929256428959466378562978506164054929391013873239842533348302419023221778608538293808601928057058906579477012892443722326902078475358959814726492035573042900970057918513355943808495237031723599953937036417821119498587393533938118074963510109330022165635118455602151943788657424272406140587198473744041092601212338013676135245060456115945741748466223715170020823801915007747449205497954116600829429392946789635465911805830676819966168387167472497653334565171227769725957370015508375679470322930557634602016071047720909407807958425912465692062950039320665600431798949676146200737776204344968551895994027015501057859230438285828416635060384358638202082730547967262772716321781969391346867251427919902839690155198731468425971526771487146904375012740148779160628050425337851888179274305584178496812112022318044540805817997555462413392341380593502182825021772977926812390398529729668593468182181293232269432310140017736236979623185839630972237881245861974087251991431457507159673608540800707884958671368347601235015528332181929644718226234125625682083219454786924091857329306605535257740068642723263591489194889855898364985552734706369780855329499286394333930611084002488624456943633774482311290694723698597726316274169230510320808100455932122421753233085868305397974659568044654089025892824082943286562745525128973511624153064719907598712763964594245514714110899011391169173629321840623839050045614917015883859246560876301727726983464555510549200655689574401020277374396038547505836612198480104120003739828161519490063394756090922476342281653127196139516985663708269831299919666859702949479167598179862236008827493977047151546784401631125721849947027318433815756377026239440296308523646242012663734633663733676715684787619142156525459836348665519802295053605711768372305230037407752390882947326002167711932364367726022637110788444398660312317460973972335512022905391613210516694627812648544995306661681072243539889371683337160689901524318842158829982742868391042229098468211069781249313302349885091187060806281631096615564466676904917431254383586922213135325795046808998312211149109992016890851112428181127572149024921913618187885006026573947243837031971766778398952183730134911564902631702991555305250558256974328907192803708566230436773286295561216737471932316763368779115430995005874508519254255120008201657159618676935010855103750824555632000524632652595200564065298110759802927318184498175651864581529350677528274102674231017490334252388817623809002791054566421868953997448634458120473300200264441254546205199255608115629725777577028516835518988401025358090512861664259603731493535270806873938475364846035889729898529619769293365602104886373263817833768174356113283179125939654679821028333803494778321583338552909589502441675386057154842778919378377186259426691646306590670273667352606072147331372517791855069109254912786741196488359432580646176295758522947469083308580653191117182389791128367322613687573975417382549740873148698285062723130185665166929493640936262101970000254633283081347054790738851705732781312748741992720140898642236636179331875683382369770752298657989100898310616170678318339916256188478182289858434539567925534034025504707192415577606380507253073372715190359275201673623916497695648451422538093617544937855196007982400424269590383517572316906551850488942940660864447503604193686147724264062850215130885776145432121903348372597118324634974764417552447244335812401481558852388681090973210360373996918425795332019345433137149550190685155959454733753019313279918827544097678373175123820771004934923047686878204574871117232098633389238521751497483428845776813942105004361223024428955235067196198340494241233821539993548952535713974569979751739539224774685387520613369204179617734337356532412455387385479083345841646407171355428200155928434025144916750278981595826740157826746723897501738802381427503423624866936974420687265798924048601641755781130551446175566182976437405676773316401689501219953006696102081167262232501301237962886596735117254667141059999735155988165646594867294112408012005006359792928094863851928903899924591528258926878403991266534377408585876386315072237289054088782378754185395321085675317194803601755194700796064469287332425239332842363163163910809308326653341721530150358753531587244107882649824279687894514900485840251541612395237809296831085116539099611596532914125369287310917375869345363145453309305381036227961562441757840383469305105159038560559405957879681340022825994334355442570268091643388391358175048760791461619391392957290950882328905618760195215675346008661843833553955326998021821578216780873397903872323416130417988402750979088376065396057208955453220133248798642218021358720799629457444836115596481809865536428883578594919209076626022113372857948100295183090431476693228732077348382422058184644972481447957504948513191470574178972225052811219582541691551969509314795388940454067029369829653502211541814000900172720438277399471914334770039745737870744438792739090237623418781718856366053123321978624028116675425212915750101436102278019897352882932123634119981024177217153163481112359411006156287345286559280306935444300580695165354896483358386171103347370772216884871235289785820071622413437674199873443425533197746775299780490412137778977234195169191533303192420345959792474220627817706918461805169497790381040624693499577710160811903904221808968794026923939982844081584277149995925491987698069186335354685906918533027424302670799792844923755816287279812662771998649088616294295767204761950180938733233651789697492074387427639412126465504298393290659795558607172310057554101982025357679843766335244803493236641458338384807622805431340035997826276590903526787379501435456869279478452655824070881591527312322441634205724422911160913221062217642155901071044480254139913325108347180191783006435111637911975176919552725790045888000231887936161848327388828756474291318402999810215445568032659366055069114833862156822876953238529202359634468919807454528081901266929242323575394561085486666279541855580160873690095540712807940325881453792361574392870009668413809811155387286269096434185468492826346443891500079659341724924303195835233794195383420166820651115410649898869347863527994060236484109071940845604305904711763484961388403483706439766761280993115813676725188115115550784163049374602110147147971521679144413415033492811302519494994865398299342838253023121551710607962710464511294443035486421577165938234311770365344324415786978283359477704741072287335564146892536876381422791837854718932584081778832802124616280138678755645348823905400698122910219625743982250919109174028431118094204380225996890312562974113297829585269663355714359562823215132810507933915993908567635109493141324413504650315372117051257796166943863858900652551084715473600215257029752692848919152770579434955772922099664520451651386382651845863733550211006165401638993625701789304686278817011825342627883457758815351317282340861200313383890338016621191725235435845137806889169210926893824978548851672703117597637525967068011905201869427876916117585295213642062072443213767071296941451727373125508874507411510659479350743002125696543589186176515859729559462028998032538167187385400619753958216559875235390970514523413740936373837397196184772198012430141393912120388713672923796200153382583244498372978889648475020355612465928341968845312587562519280768872987954730588799321006621838153276420634887698003196290394227399239886705698178174826937449772543520980870787682121208629921327915078045425919442596390830652538296335084264445921002237598476589996806516045298016503514877572081765972117196989369729700959177043185354578017239163457701205561105562348616590797221578507958579163776783784593958546840365326574800544275313916023536579063498592132143601032143598291030302282165376925850605938844581435538662185181905411320463407084254878931253938298775736225484539827804690079247375732206442374929199112218734001143641296559884872980167778910911617116606162921233523591478666158777816155097758131312302299501637679011638073620909372906032230997601554108786523962453115894242803510778738674588742232950344628504277456327248015451841177141490131446223818151843007336093349357955050803552661990073030351525247643637176717429886783236722008275417003664987323321980827298967649739706076266139011584610858346960488136574332872099842525286576339609944892036762504981192894131302727221995272588501463457997169074898960199246556392933860899166716647359953044418638669166128557043588888648731523019375867503774445498353577575280437803750041066382003622165583846669896453159190602175685009048230632886816847414841758008323904375941450684586604921974221046267567572437129751097824531939131374171039802223924161868618124582255881342259002619418575840063603571725405745271787225798375022478390310204492659758905699730715705338686857492984333810184868885802679944394523447403155204270088701572963914134487211835493510708582943257168303997479293143001676603047554355300038820084809093859603696658533033438581475103391458219639865239559722996630434618308772957079365456751039973488218799725935498464619849250363367341944083464287050515636368986644002955723201840370463828483344782913872082823105666242325358044794209894655275166097372661564436633966664960714462080323823451084365034260910598084458722454412367199435494569648626750954583216226756939101868725733231955092636367941744610856992010360011092671304647901642578151475864128565819885173724300299029619387653041389439176714837876189159341248662269453667922189646812839908905814760172290166438097572564151568939520391457936737141455267082601241962301735526438007322771983533481851721725139254886093487862796727310665866357641483964840789176777291529655075035216381291774607785611201897779579150204981608682962470139423142056086410368696996092905786872174645135438791815154531468226415398453068876598793130737272345140538348688078939841751474520224767931456344887155395212188865364102137709980303953087314914106919382366300933354359391975777973189366725235346550927181104715870235710317965783106410676508457406642706094872527236724665886918990399777586371991164564728458091181028049985519058236354780406876151906722160040242022063059367861492119097597299482097739384627402298686854105290421496170122288026223680432418880410312983126881066630766397838502688836729797056388630893942766587369760980123374067711232434939517222589895941638121834193654847994061808351920035727286512620005464831834359742021163758271594771018055989627688505991728310692714255310167051049886384700754920985313316929340869526463929520249244609352380168459910741635863176619411602327779548736571712369295139465353516251250492173763634037312189052385391250076739145542840818982844868064395724003429652243887290763741288141464965880250145990846813883423684980818018883587414126986700528547417268902959415076123079716860246958977390665078430906038337391708029933118486438399124564949212916083567883253585141041969037696222583675532665387435980093382683157639754352013110035462335991166128885951211247747448673239211796427155256534398776386436528527079774554771449486884122773391254630213973712179504239892078621394819321167982385955767061883234716734421954761140945095149663346740169973630183340176136366504649611953418030208710110663312121545717465081063250021281794183224256068778945865145400311595311514030373272585733626573336568188975343460856866850712512137331797748800449290042363826554675879680214370100776380811518801734514142081981361620120507391603338504042639355773799918014864720066458414524000772016401529910425779609501916555261282832898504091986119592660676753441436730117991055887291916163284953370791191447904498124348738908521043047764059389658006768675714398293704658115365828827595344898447668554404996788938172906043359569899714666357576990252284884523336905733538982150913491425863571333147268917242223422614243712128530872248849124426141371469745936625697256004302116909136823571462126836736942273406274745873522947843418081798887722201157488771667740849328455269210346143613639968867992122854922621986857810759516143203337803329840542735349368835945820227619189278451013530230990043733870076261017746547211418111437315178665856671291459732532717889363775591848857068708308544063772495971337047193357102551259161346438407231627297671401618564921586116796785685787160393682284602267359569171027530299833138362915300666447206531392237678113659233047750913705406396244754742626084556310015631969063807208365814718688231268234627418299571110922025746539266565715432248681259994844418362428268062849207987903884964275369428616127553958402144566768927499385128729276989210044884222245653316142295029573667049068318991433412270068188479667869975657252083555443349979371959861041186711503835600423082107124345377053036809286881849540703112540118946358873107438536871930023863153647046801355452569465290534185213667224234759658194950941427598393398851233089009882068229962867109212945595717506268515692412278944549632279912642842498924503642803444460014860514307185258962214194080830841459291447690632505954445142485050585890554402989866129490881881955403286290049612059749541616493733220328748205252595383936803893974881215400457264553689532113029538899120147395803688594251624997473395030466369274562736380605595098191649569550870302024376937739924672121619931046573079713784414840504066122276290175223264269748674537181247518602348419056164665133346850329492398655807290213953484039296091042947590502160784296979992364893392846103134191865783570225068923845572016855813241643009497573222353484591754239003483402194485064165047630222229111177490667927249833681698860274468711454466839794007863480372975396498662283466136584556396829244857494526420952285112663850745576289481763124150225129461400505565164572762718457158669075809850111401101664893688153108361109363782382207796657728235913940601317363076702761394905573996144553892304149934647039182027345609449036083055933820560990507077109753610248682433662414732186119004698596723587438679010512131895190566366044539063034680988928093101026101336322628449512455498280530186401452933225353935046946514468121451352727697267091634510980507424131540513777364816265092135825729110589779136005794114124969824937524136545675399389976580182617448471793222455805660703875739550597639701855613678560911435357832386714274951260401650579236693168303151117337687475258082574854787941143454192494317175258144394786412670086375828656121196871124857546569634028879231178527651197897260249740508926004831823956725218777950877058181819203347944678893234231649371680388471037455869122260927257563173377099437861576947518122056478568398920032386278345615032081937409953546075760469465190453273199167398442967226105571881884000251856551472621297325800540795773548937174031147137747912573375747327014913114357615520576271590438371723188863267591496977946582405922055469391858067022542234474419560327118626980849722783048753201013760352417661717905684714473730367291721818171922394769297011912802935502218873479977398045197661744639745394175423341667274345249555039554544049484254293508759964830088575292557727258824484303668917710642898376873464033816479640938822060811918620908727284556674286964376270969501074240907233611125030094016626373941753083781033047585314432329513116967545520681386874152396664050359496533676000093062836112301083247320799174107834399143899377415577024198573945214035524584560239275213542899834213745467963672162746051955806862115355521855075005277425722711189090630963082743844745758762069196436632932485178058943250769074194075765171645419868057172347775885000238619351663425381463602822863578522977076807184785362351455972137567374579640788989126045763472586601300024280534377812801171541335684493199644370261076363106299392887882380772722687482079200508369491538107953760306162232897754845361933961830951070140801130253154491129568040141781062561743997610428122640673873018149306094746112695193285828130458928835532463158645164163058831665491147010681784045713527005028120172062757596601258636094852767601177147472183558350803863370091358422393278184948509256634594253266290359725593968463410661558077114963530677031856642918408024539695282354170685691916948874316171089989270576048280828867688561946120121720810106074153907913284282580765515173766948378118871162057774913278571014864725015763643400489267929387392611798023593695073532530741893003266637563543123122965580328911761432315936933265356518824143548988215660857446466051846057427711899735746011484489654315231579482250428315006740570866434465018794364582443892090397059688451760347266130289692739346826884528537928857467956033763422934347403133351883161514994150362811487575404076222813689576988726582091202682012178628861464593439429007405547799260007544159758879057090199000145559933600622970824161461845146108393057621557534776252012166241136840846027121518737204340092626884592046197985184614578306184693590751482942831558257095003524916585198909725765161255687316609202901237409039268701005986727517249354932562977287145960642546109836083511965132159345828469313965657978403029146271236045462441480043320241721511163853150798042170481642928502684970101928374194318950128728693113616696835568422193901398936897202246612752677553306822822789646931573211289828657672022997893302271136245925760655848546300466712850429398509987752072430582565482940471365197340496750803252758658296786327691136913051348202954319515468791258206870109682792595843877837608811436161901361551274185974207667513800459763387147675714902516860605838192627041305143793839949534861446544659093235157670969061494158105486097448277186993137518625973757291040649005385971985860268680171500721580365348973621480911226765696940105378454780532471211341253344393403903085070136731058094161993962541442407412050438891566410219190509409493751702505113478003177343479309410011620550602895510375994272932258294705952751904459733484669236194100994757987265151613794722825886957996513484674741807754684714486774161468714055814587952087788305489310415092058376265037751718766526553758646602212203153505909584915010829617261997898597604922144905589964929861222609522148268675464624136550683499491770250591603938844226718013813368737193165456282258968790797712960582918575515517515316668749359463998517366015918324893876835045367232459723493520605976297072001271266485499773473252996440136244633977664667838747432748284168011688198301614540611566648035751764544525435143759775080148508163554248171792642867160360633462314316030481029319124022543791566650586087086549425245621358490433970896243615607196387546607250878632281652305944246365137865180419663871863194861782442548510622995112183190893351163350149706637187388593239200820656191364937964466482375717205256870603868777070265561622608757162725895817472608990670688204592745534767926434924273842872226326203936626250442713083017148843401804865779444066317686596562915598764641137521848030934161559970315046598024361117191771858004666216908009450922238907884589566392432093904167842445780474860981480290726230044037309684745150548003348890977787641745747402215226406435890511332118142539762754518729120857724282574509890020824207013765804708750732993242595810570758500908266073658556216831918922353442048149810817664325636381424515242009906967925366186424339420718872787917823450412637861114880882683111349848665782855239302605167490344224958180263581244053348759180811674130268064949666588679852869359859414946914048973616746419293721804473966518313704354303256857543044447671149665287916227011221822681702896628300010522145070841252781572148445316373888245533166530495511637836506257753027437890280920950005659527687662257758578902188782097642765699118140386609352016529893148704970147017780611288200831625413379785597256383214754854575096376102129775072670916325131102459998185166483710162720150183039358301098058125737272551782913182733031622383079686817078992532473154445020657491947746029340240253788087414572831066086177921175542904693922552246674561941130261639995489751643879493086974317199201304470618689159246677664925489506268988028263784552166013227584596111303785234105464948790511219342736029635501920511539821771140357326914336507431487066463185188842188055321114702770762432127973083187473271803652951438386351802629819468658483681770826757013131670943339081801137105355154473430538504356750607014059812579013199827689345651924773147772046694981734850485810213068588242588475543319901837478129240906857667154421972727595056196714033270375350316896216994525917574301063878316913968965964597038918800846396853902070661591308532010584390306677391387160805483904905424162337507537534727144508016751516460573333625310469267910956561223018808842404825614920510461725151925267164974306600225200320021694527660819799364007608488284643753245017796019976088709586032784347960599067384404249936803635178471595045706319429584985392623610074390845600425208134460003801754024028956714009078053609040202795815915539345033574325215534290055651223199439140885137012502647518395105283265917471578771723153470705808119895265743502988539360179958209316604042233513787808156304904028508986574829184951132977623899230211966708761947623513857950372233796664268361367418137380044666682342651096547407845624837682365830438967188805292836080371963758248713319540413454210786583581383429218753633031476338511928051464688596152873412163491374190030103979998268433627380751428809224189052838302963466476985595323988230545372132656855103906115478005867856527681770314661679843041967916971320327594218999067549697102589907599370460099086160716908189828035011029784563617798260625344348201116633318859078707445785867648907931033120522790510099716210601265502662139502563238384628611667204765866569085428002585232704682282565202270501596958352925539788154987301845967562109092521568644113636657289971591460841845956022288606948689144512683746751827264325634477732042547406063337725046399531273264672864097253961197428067874039137332799811047566804649733514842454832703054622475537762094363560490574415286492235719321037753581945237606654514537153577956865722756116669963412010395559717461458320520526883860442999762892326676613966041504316645876086892975738636266880795437468597041833775622443005143001016533894807323249120816447655114530693551716486705918634133195078875063803280825387352619400096608829641058721027750010549675259463430011425393681933428923800079426503462779997617596027240888545813814328290703903127632312840494661860386894033555998035456336661701655688652866274009301536830286676163561255598970061974480034749662210750716139013933420197432776160220964386748158047677712702823860532563133335722255237127143534476388194894569770570392793524896399979479371774436106572377363070299655070592050070099214580564989637792282599842413591067358765584400756204033125099859528785023019781516566846005316654333682620930620918821480043607118370303031141908047662508219703030205360315668012096154750061300274035811147942879837204831829329270889876352286150189243393525736276929609851398813047723408569743022560431319700168834528844891537800784354691523093184460645019138109595888306348865616190333315957501512020816567348140053000856276832210686364161816714577866915477599621072139774658539678688760895154006546504601045533038035761436938604322367742329544316466939816017218511076296746502736047893970158611135237870332671713059619472075037152265979908420768390263270707011095924757313492883085772151881028164398775364817002216355847851710228701438638766895465796050059744704820979505001626797046652121403453490263421284084702080475588332728210898063747419242245984870767542561009369804387522040728736283977910459953744624924585719310332510275384392812056618731598298668867359145432936751382515626256919849236366335047823782107937862389189743643093238365382084525810813340409681184617968940062123614864733144382810725905738716586120936482766091425430932412830629596656372429627757790521502432083007784913785755046559346061209936553615470337178243771295228485794162942630401604026482560320527181906626342174281359529811579244568744795083245957644491322838271751876329135862157145832429177867304506566361517077893205592351036916319672546115826366595569125905812869213797986021589636204191305263101737939169733136178952016314735478568918257085000675849300372749129894312892825292566904807433850128501436147285801203814561450508970975366468767102711579124649159509325674922474955186944806060960828419142878832986258030370567751616340668203680721812370577746014822982209172693570621912191249056101400437315144608145097700016237942837529909182981900176725251677491660991129535622960694529340406278810090965004008409234383134673883219104072889162430644820234127402833933938218873113045813959833812317965915651783554787534248906273967722791579905866382897690543678525214797394057148971623954619447575806029523439634549655704522985374535372884243318898003150748681792560200874901008474583614292688278360400129001436635562393765570901323473945072323420766359680987074415529227811868981634801557452869093989801455144381554655007488252622138634265758507153578598282913771251906599170378118309494897265164148118107632152256760175999222226756224741152770850252613827478491270435513421154883001141101399706088706486052277791333646943311421563914089144239149331582687893612793918928997013063991151309769987413767598000280667207798289530483147058979343139662196023054836137538126662922995303466729378771283232635795851434831485382699899216258975657396023438805068369661859981216706688662106510631782330615275647945946018162488894753349221203640961183991943054079624191790247746223648311873475841156109513287152627405120645546938418281946944491665603593708594702561553342438366481208926279800009280777707374046452684164007013270944484591237293690161542268982009090259639314438074428981408744079177432890330506949837904855398163671020434855775873618808609524155230677416088703156044820792611845293976470101477440244766117241921713287390009320361304185807293007510742791715138183429807847013044760901247104517293251554995628492608883571102260231943479322659071876182046439215313390192503906170154453285080908747939178601604127790361510492755292644697112031805397143268006068564047435988901698398977614825164681881988708955691339993235104065200069031107137968997739814182211538196595448086882606678438206980412348320156000286849343108593582007129520700175148407790669332894240906441171081143888911816573597196576101114821823509012647718098544812542847007386831189462906139225753871288288314135308454598189319234206988644902555178660678182951885485596599438651269399284482435212243178537471264977189144331002180374806875753971403030436118727910510236066502476882904011132016049713244783255094716149725102807166225432031332049641611100092468910602645260393620393966501642261999529210260853056473310958585725064331344454019833141720976277475081400825386223923153292981301752732858715440569887932398346370642713325579799113438155055158096010449750578782112942592373256873630153281422366024254183340499927316508878863860897034336302121712553109423347884629562038534621117530174362233734962622896155519180262322652037187551206178533177406503887033054696518851389974566883494419019482225199124000827867463146055877265419624822151626004851703986228429205518146955281102968128536996966828218563738135263051061932872244651157240028238545740170134548088526468252448868846183103921556006191610828734841459687749853146883910559158978991262308381456806680353690521419903666463081720815328899922379302098346728283596010559183880987291209252816832368587361698539640506643323206201643003173745225139645578002279946976636533801480437351709129928392066434459696046048679149011104743269122954593605358892014324463441345967910267421264710880530391451440271077151696488470058768519107769003116383382780998880801330567769358257068856110398590176090531459877905851492939831178097030698889542096833294396984504590791084129007319472024924649400952154861341782119335094457898917412679613237809944141549217870999200764747749255676067947400851885777947923201511062320387944404900634449467240583302893626170021101104238941685334785053386266450309287220791956006873842660277893399503707058862750565023527212589821634879697429100498167003014618521770640927371146944419393711115024568309464528768207705245776082964251894399282393598369851844564884640907113928204110318366517730076283558579867767081913809049488979539089883157831179976819597271073078204942455098168828009310979315306447683565835565818672745279215271189107235481353275931568877963263948634009075100783129040796929731025355719638319838672845202140834771989265205674956831341470628825505897077432351746593239998140206087657939754011599848347474541762395348012949800005173769178329664861626527896880447917487578453547925482541357354928071598065631470520477442645368242986820514486017379055816082872513860623962282230061211675366859692137864008597448434495053478520333763575189062681682568063197422203673756192360144527130883834692627592728543617612113974526438850315842251997917726647818547179193530800352596713471128507684340017389470318080406091871237777474884870880178761349916421217520676151155994879221053467712030675971952543923063956604353028021127516457425805566582095185811055702464065979302899319172805596600238568318662102231788092924835451486291596661968725321449759882255154856061672954758030623109824696053774829414942693478346321182061227403777595458771485078936981841906140324877977381222350511922103223481116647683269684266921701108081626655996329904848410423296346470221429915773463441155868339808286364153854450800773079479240811166120589713918420203347278740985399428802699726044218510538098494519362425888665291748504598036618983137694678624078317461013888914303553590339960517182781209923882312206289495367973823754668810284685379254569242730004483359855966939398063403274119435798824605693538563874629775911313326522712846120131901298808975199151178268569062393136796420355808176245375435025828778568016148893434920128358113355272954486065125193917891473915747154829508454074467606858048613971489877626528356508631587180713592994391741604890832917628839571100035284012759867270958875108119487384395495325442250354331178155865786176938668300541887691149238334062028256068980822772950731717091554586327415653100815354626422598759916205216624560451385971344205538488927132930179819097419171365190190439047037451147619448890216104030686104821790010823855796671282088986460365947008565398423932611017168796359555283534938010019657934660592299349296684072404101852042826620793962326506833984236684256394161713734939934081409927333082060423827002231743399793388148995973360404570529214641685370650037745306267101508770256382040169139274645591473698126860589428255173718382868345911227118168336338268460846041386914369099699200922749327080110760241219230387927996164499480355396298345561234098456928932736111029569636713371022977066367138732607073058385788107062867347958787968685699676150882691328343553280067439870284658673769487114374099572636504910211882615190331885700146058003273157292998915316442861615348209889019028668888703354146575532989958012805714667516382367898240170863955000754968569157364680413978532818315809534974553722388736493856777450334895169679738779784660999274714846152761613524990174804027745882871228653366358151535164947130504172583385550055971149621300376336004758863387138958088129361815596463567942736685189509315746194901403936738469983109182529937138883969325526061758453839553922248504327412968183159641579740530041334418316534782350148769914428676929819022650106406992922859667799410906286516979135892040526980870574995154577514958230678980505109373963010043523096269685041262172416260784650253642754875244411846862190100893376971208010964328966347572446869827902122268409787263816840023909389947987121250576800254847332051948587479427221090582185200529897216749738995980847964900679339680385310468622672467488271846609969305345494263188140659078649197824649192991165140840954567140694888885717181959324566639978503628956836444516641414630249695844541776216835577445557792640260120121170245034171402101998547628024021862397369380079610606438594806230224069703679330856565664227309959602521436785679460093049040906960500217382709838873818844344503735558375329076712626327276375905852058326177664519162401146392864177563247024146360331662300036234051963861322726957553363146439103437758831710579784578362207952370947737948991622908493822860735499015480838852707090744500028869786025523948693446279368855806808199528590479944699493521735929978096781905515765918082020288573535870255329343410745219343857011019273975821890165811152552585371938694083643730348826592070517644859388690517734308360096080477007521962080877556399221897046603209188831611515582396283799947751695533292643262906472096734083045042508001556377777410504212447777625252103164784346381119626275890618300138871492681710183887443174748485774377403678998945864902610181474514154615364294824665742262707452913189713901064355814380769921592401286777358872237964507571927012410605336078897603077437005262849970752431395021946378396653734246562936917330383726998072953655129614894927545262537610961876513534592817637603889478247831419124339995684356456657003645267549356218215541424522626675670942914198034838916344668648879120677154777991957416220120940876147714854519813646639321711640523864104952599992228032275691199967836578377517651175219276313963868356956325542567825939795590409451659784777745780240878975925169455450643204850731988588917567121323697320071750964238214350889128368576377010390348121300702976824311003102015007696028174285203425392452860423827036272313195269613027875419674022562973342689522131156616417792310328572903857210005520746180825848967404788942122136245102247006791653580957283987945452665276780221125135308237884765262665857842480677643047220058421042649987526302080663776735005759873409762973944516412513044192231578601196662707666265823435301586179660582295536875349864872014418927628631327700616443424767587623198820563740450349962603667815089534780770225409806427068523167628283123882387667627363705868711919488590442833271412207836083843566707157646911681260787662066182056002765253269940573044787289909267028534071763915471338311112167967049206151239537014595007822712729729986610847218512593522250531900031402518781455039689470475439165825246827256480295466074253044930241255282873962301722388835034861489311365483863494415884681960898866115749051555985978234567413965730205834686054718495084090533318161959309041078367069669315351879317898230559471410489311727331311347871032512216748293619411868086626585658261458709008766552399589246246936782706918875313629916132595399475395307090370544767834630419662103181727657840072886507633256734111417695690518290156341580128448759812206441685105189956106970334506995844376644180489224393964529272201415125054682418816033023233199754582997099128738659392258935779895297562910647381735927015403373615246853928987734471525236982635371892184851923913358127000315475570252489587601949666338262282095481085896532634769210871607602013983839004088758376150197503815695774187308771877062431800016816692376367683763397759623785107402168571858059653567865167162750145484471631249728543331480280084752070100670321780567056428184523334054200057844337741955402908959773952256566530737170529501575445719263379191070916472508491820613264058211152371517411714904590736203177890233897021334138089438481544031540057203909259845503913465278888742125177601606959854804437026750450309369974684842819465805351679234386447395352699402285088375562606277510514885246276587844607657833360005348723818926616183789954555440196417887065704737000787356665859068997830963419055774211446007265964131277305624019362933307802791112270169201992280608728617146653470788539063099679521025966536062453027861374600464657248690165166750308205137150990258218347516772437377870465602122808548032914993997600450776421225389852612907962642548046883806523015863126599988437752883234384071689978645128134820763116506842150588843231360310373335829554542471164847708057286837315620933550989541193805810762307065642283892824212776348200833267350234682105894887530434920922721918556707910156586108410841774139068745662913324299045305900376900069962125673263855086289334926270392991314177452711975137152685117632789322356872058836534484213860615480090890623415061180204986819122407617485487700271441077279874726173645199635904697789184608986344153302256387853307832933180545658191324284717206274130857900847658124976892204461115571295155569784967212199754219217213827783812447950724077140417455609622840426047761286211380359719563288841788262817486763012144704942567154972741646957817498110810869541989161594791113297528869969728530361416071853064907846813265610910613267857087921888185000382482470994472505647840863266495597707915117204488577039590312593828350887929834102776652848807369960943600216777240429607785281379565626020089684319363240029198277492782334145162687364323808991544193750254287432041327002136250958885819573612982677296847130165493184791597887465068165513670251925385714794774637176269273774008418285600602274754922421747259879583015381708190867810482486742973754041525690662948393159273474573103318927595689555223837828874497197929288619536332450844808309408680703950291231201115101660570863998299051882956378137302586381622013069623091822063667464572417296400191691202803464333612191179283169284905962976107579487150544015169917364415848747696107584426614893546698591535714836323404335985364080751223593971190198435584654541279697094926819064658579444659431577712715212893533560469185223850443537824492218018705694446190483641464010532065130110514848350071592487314992580330509075716302636936536549993330834387111543277990097079812533566961661188541936907383675237954446405145573100753170934383916750030232034196214320192214336230478789103688918325908359131350159691615166603277501368667666551570395242375080759971486434722996547954843697565564300602867993323599712891556853870043003599020503059213300298068640705486178356193664384902033546919106711468649642578598258203055807240484562817198268722227682269812915639013760007568787948500350326093526162518570467613468714335014747031459817580885880776861889981906648592791056098405099818585739889878385669939184400779236803552631067454346795645212501149444553312215187012263646659685936510025460606003923028238919790361927767169130584444246007762073850021680764575711100560827898311423449286164877052907747224423966075495773964729073410178312466265426046917351760921737747357253733911506951024649473993060288668967045757150334094375621867677669914571900242345091141541039532338138740179535919712961996006464126145217050765502115965767117480931049350165165367452558307693528782004490537110728822339673477875047985335175610231466040431621304222205910144601992485302254648408451753047788223632609007563087552790046068522123802778123964754523083519600132272912222445716284051108321341706569563744984124460485647118832808373482217048429812975432445073631197365355914362571272064033549896889187471532951298062103331036864118631757458975098998843373049115693872153876912407902455846201290544676970575089567671961958300578176311542032381707378658784719541514397527297395850910222145773220194172345542733241302784673530608427212006449073578680758615462856775837314422366203587108182687741831955242563887010460558812063583250449382910098268990651655467902231125691271154669811383394813969366684951501225920127020161430723922085709169458475607058872460765492411693699720495531627802123656662577112478825377979305611584596167811164322324301346566545608713079889039827529269898323473768104878569736889129693748818445191312237353258772702294045283269676928901262324381212674687521366987268023063356414800627223687446902939755791110971535116712022687821160632859897721820012180346024749844059757958308775805422737431644947794692609353804480433627128657528553474054651766923301361507671654084745557489478602573914775660177238172938774091689755969079903155797287755317676178458048010156458436645409881189692132270441613277991532297054922500285915313241396482477078943300642917298044015313535865425902169802953825258848064963939556441645021503873603909135326380791866338033874012291193928836529075162929638472576367997795931695600659670463492515277469846284725476052419834083208836623726450606545945641572656141787626109654516793477061932702745233213013354123746526868236247553276559758953636596913270418711382057725730674558945938840986113438269915397606288630349454855488942052105235217305207488328465725634586341784023124357732960916987477443625167318711542805232417810860261462580229928621321047699618802630535082948830151273384965037153310088613194881751376563709300330374725996365034222860921493443207041788627744140714330877170223965238932849959595573177188179152866527865606935921695105983975555715228710848100083040665676993401978839171651933787653160678649203979746995749105186507011926039012259454412019569381028173478298682695600199405320417188251274160249186694147508436156951019895884122229145591350016027340254302280870857292944365759127103715181841497924957922498765683815317032548410605766792495839954976131100213843850566225323468104682166860457916486717018162710289625757812421387127102161245879101706955611643534570110654392867510517592729072920771511643330541601071511461145448194185084296324067180412237644209584031732342198414496407379088264423591753797598302610829962312987731097600616662225678281555733649961831886176144703394843562517148745181464428068588277005544317573331436834226748950620921230862951039896721036280096397049480359555210378535659377344322188583786010653005552402666932258631610635721196287149838354833332667990512393511908384708057283297895278046228838861938427486514984491398598334992131184314138062173881315970915062715560233077443171288686214490379569953424261365909636833642476910063691013383032543656774416123908857801449681370547724103508678792456644415405992470287489411163813323532127150877867472343941194188468283667563906793890675236381793976630216140134495929217733554880723006644726038226252336666645525021874338623074511660976576690832584058869613135039052805844801226589295158673613385915836976784881099188623590015833667130917206695173085108403312429693349107711954457963635789835544562183935869095816182778009984108597101413387274018728060917243541240280455747949058095699128096344446004509606656681381847238053590931550776562027728276368562453917151966661003713877722919529612237151421789293759939878594498022814158581084918436974336903076311198263776612636164651942242510110428689505501427037025242796985121243482073801646011745152582292231389154826604306593673449966557089574139614146257317093820112676721318171531422450753527766747339885947087380614898488579595718075246279003248290611743447139080931522008008774030028329310692685720236675759374062226817153910967913836593698598152029367736053634079700640622553593585752095323843043811418113795829965886653109445717054391005699974706392626604737187098427113707021692988033058216725335839232270115125651456202546368293765060270663785752366983620364825162253208194518814635665976312720293995371469883743767211991039062104830190745691077627571427218001348039551402323997762267594609822679689049015433525656282759085706246433648154521909224981889834739597825844412588856056726449489013680380336719577989752853725316824408383386660312759120625368810367155265114474067751357936856148895213278950396971458427574720104478726324988480551443297753012974295439431290183803449025948123139716966381245259243677056262104652435393006924275112560596505717759982507858484306099029455807346661064214648351874091196360851841128465247407668378541584721696877212901369546150637579758882153963481431341389676463275748341365709672449225480897113107205806997297770861800735134998426862817374170118563645159169982306283276413812187254259349259436158936364160139864652225202755508298633574012738859966930267902481683259595130983218353569512962080320880610094771991221125827535238195487823276092836241640409591181904384976003224805373305962510908564739309182755861012529214790283316553246171128830021795381074432367469896428258821157083724155492574370687255608784595653405471835624597773390240152344392275494656926679538907947279051928544352891208728597683485156209758311696821020831057459757288384370716105491773209587395134411002066742352368584151281517952472952115355226980119350169620379575773818116356797679330472697421633746633761871390753060771401581195182589005035918595859567753593708140287521087441192430253852877512204189881561114326341207481480440030084842291982989365851223391304779147686003821911190188710594718103077425739485546960822568509139300095375041067943120025816739742552500943972111830943668392174371906025556706895046508363042815970341004450340103566222173365447703712289645401559529053053350876235462379125927813981261578126146346794107092289764372540960284450427330984917928031553208479020603123292819848877915956854362733066683240395912964155268857990623591185358573578185605882965736822428973670214191392427353159871422671255339055993045067434892010940184059678727976487101060383540080459648970565807593479340997825917434595597187644843863825488333244525630647821850227415409404402100607117662203708534109823044328998876809569193262018163082151302054304753911968377778376532957974019391425517977392924055272993284476721470231563723338083187446582657950385995751383124401376127566101670943090669490207516202279838674926643117032828020374619548438894387796910433229966138116838286463653201534610066521036126045561415491247158046257384646952241309744004934835869391920605805645940043867246181751473186263585830666661059498675216059962738861223511708279231987125234693521595623209802804664832577664193511297024977141784021632138289948601548525694720241927176722174892146691143220104161658419917536787090108489745040712867763625837861754587404282730690462998101628629693509875116612747822919639578229026790016974470289854469858780285494559709522558713444997462207526839424451222517114365182878371517091683230729261809426073500189324145209843356508804544057433792452765569965989101956400056418175464852156704216950674188830675728428360759533882075754997730827831351008668103063959474905309069156287204736689949819808716064357263457049425333430326796515839799306493832446543089027718301133805907325577060374096709300219491704244847760651793608428028749598508710035011408426174301782003882552962369444763122063969007633776468693916692067966463072880748754274511572709446537513101358575752296618446291413467291773472575428283915522103830010464283859898104846118024520191789759926601120066155617946901178457139523554294039997908289331109572015495031795731075329167118064403775758132324545220782006826243890295271350565168629615284179644949613899939271930370441193059151370707119281328814493889051847443093638647035479269474547836613904682115131687631945012864928191391726901923142268295543727852397363342465752955880868533221644284109469933671936753505906655688195980370575270760549259242484533587611707990308408671205525393491034569406695671511686189929893297605460747804077208341199145843351566166251590414095214385961996506929514966120470691099272035620627009115764448039959283200487292484026607498687675962989935246782302329425608693951101188291603844233227166797950675511344562597561885954074633622551495751285213381593609388172707167325987422539038736458567165788307292229425138367625950489589526900573085389059233837096338972323770209995131469732305711233671243485132285453150939161707171057270660262690484323276829359468432198534444557200551491675631368061869992080850627807459570690153292669859748727248948651163287672905870796340816107870304145121731830768172355010382762551694758213541818811881849063098653212717813680479929590318857241990142968628137076556217083253811846424986029041857281315106115084039603750314636250204100252305213995070050205420507285620223907813875860092794804915803943653219308874317412076925429070999067312065129981181905159918017815818980884155072084524386002565768568478282487899720660438479213190519050212730248446392291540479400639069193967546292905936804856630520104862936278955779832761625075193840892171204382620637446840135180248316250511084361375094484140615315067094291424615581525475979373261026911966348029895611883096268533950319886626644907776431754273150860096505078271309230689064188099946964959984654286548068879242322161709463455654299120393995348902001181031194212399808114605926276996182902805543675861154528386997159870028961565875025175630651680046896619491778382639480566459085487146114698092622504435282374277019833478151195122483587396480486711516857135599731213105626700632824828038407339196459788909501869040240462191616990636588512259371197325792892696505515359042403621960056258031080190196185212697441359310388675777210887955666801715902592078308425612489318871738543420778845148435831980834079314149721746884416235427630669208389795576763796042692354475527365531745285735369319184427588324284517010509703956196394309986409692515079089236763249221053414945245304999334865084664760292314833482193814356716327891365407036006992322842046221316871924810478951515504453575772075916664234785930969158332911162923242993442586295914454729363357665273167600590104974895992342630591600042900604055428440104508217044679232490724580296828442148480113389286867032308989171278790916622558386938288593479268428258946269128652121735598999087819508418571555005199732029770588272931152326146399941902658761736167642563248629228071524809764684095488106129233765927555111439192584930203505499648811326164723165824715031754004451078833525513084577444857593400688905246067155140514101973655059815720037544596037624603346166689420340605476472771069498542469544899708704934910287876124300755705833220064966730028193003808082124736308330185407438506284094545221487516768845235707674531770452611669455420869118358144460093214344709149183428677691627512355764978964293448379253681804718742722340406520329174807837355141678800016815697208701745263930206518311770816997954385311144526693057411476815960280103907792120859463856493151036196649111984238199523648398900421730515686659656306569905194071056228509837694595867011108457898265143078793036064331679859457722042465330435242545044230813643889649084611393268213666286023349942420319954808489299741188838109559765003674777241420422125733108397130154442557788693332542547802521300403562526273651767891164213384549282257512240031745305480102938546934142064299885437793824137723495844153197309429216917499623316671254208429985483163268133204541016674845921224829824860320060364182747117464520456528693360874663441741950576276418493918122831856205668553678074263822204065865910912903455767563869656851786618143090748288365831481183945253982721337145869066162007622580531636287729525877799853654580465594297097493398057145825933087367937073999685469453821742882488881490777212478560396912957704109095122612799626583185299788083694596267885105279244721225933459934441130034416557610007121825033084137895058006549364199932999071522203175175810756375999325835041107657433376506125984553926348314691511551359855049906764846958869729359671487158908184477888247122361588533190398741172576373792896137208793364088446659835587396513178381861056706975901304471230627638729576207872536865822486308334521731753345329521704441890361596869657524593876906858839478921078357794498101907513182561510094367322224019607583027275562875093851673879491643612070655440635927400771059222637099367454561829493778463300044581362270003253629966554994579485084465020811804784629100467451875024425947632651528875910369826708108601519854636739745901734832328290838692572608140617946309267328892537605647488821773026909048853871393702554282100348538097672634653258377342281584830743684491401172917997574204035367270431775706942723279256571763559456514281667106358248178017078669050915834310083619740203135473599913630380521456645257752778685346934059215074704271555362180316628368500592423836116520357425806776538518671173731320391195303448328317804520621413636442778702487252961809189044351978802903246189269247576259611014863385138319268159760020080217260030395934426323887618567720894700650347725472362691122559214059571466801006365071582426240266591402164445025348963203440285737478646278102131608545760485283725439477772130894948624905659160549053482834527638059682504458339497363671016242736461844438203972824589590062269457960436438854633385767807809967643905153216024945072083731396840688236600575070736894034596906827475095658712186491785659864715515887131287880337393986728936937623140810253460643690664178538865008279219307198133709390181726952441672186925501770923650713966907747317779079461704671330003125437666500962116272143457393062280765618037784224697382779030220648125617573105174609493027461413178978934860210513678698095012504197213625032481174744269888295357420032940960384914760360396315905355247215840375161629508486920921035057780174129595892774003157544586036356141343723081989282398505998553574224372557667975780444098119041170439056830535906029863166457861371043437318290859667322865630372006788892989659623539319786434330106069644814477631658429469364866436930903786308553081331534367214588088220192763547716077965102687239966164440434379597155115697419471512358165037128499275825693532595546157094647978501959098209946964870633119317135629923121196696756634617665289975947654055306724443672698348045210345443366424050859952738931541177208637774528279087350472250566387153107438144499056474687622436242763527470866973738249007827817626593281379837851715666712013180647235126793196029437787516754367875454710932036435980341755418823608914341980002673802870618560062775909414453442857867739914293433606832674837510030102525468510108520332286295932063351919468058080031857522494708757568431890545553443842173342657719311917782291956684988763817795453155440681850280134028385416011129302909725970605433071129358819232068740263886710796095578807532186854201482783986774898591048733491903478694484236272994936781795944441040840565126701119286898632829665781504768417919546217063080610529999249619758471578342059075418045519777650021556616323739955393532750683638935265406733237450343947983416307944187558353119465766966548516371133597622357226009558962827019891730882847509927751298188581100289258112521926093244099076857127084567850728443705774332152837402475793869236946170992211232573427918551141348075139532288054844767623933501886867691678759869550373317537451772045712527932088232041259837989226639751400174955424143656004242770929125130943357092446090907094007569127595989207994924469980020888369211738975462968747789121785980183072734327380779595675943961979418532461659683967188876084476531060641984241085917569878559316958708886452401287008238271731998755338079444716196465230473617229713552592483886799059220703488827613557781624618751894898730771193348469413974797550636709865399834962825532489218551701974975667743481742118381541834655905483720253315941474616961956554647035922750593590622664659343117895257066668900606235787104347908257371327206931116683113214083045424763651640201913978416650057814692333300463053713636874897742844699381492049071912798003715688529199882634935762540059146742080864012365105936201752381659344889415102037952162473816034031419711318956623618011790916750646249104883641881095115220254779910989184505758698555553268305708090871487786944241344544820585055703280817007836905139251888319932373846666647263641263970706801394435925763679847578867835560116378481822186607834672953068078288008765621372844591111615058582049957836807923018399088356321451091242523648675363439919354335040394983593247380307974189402453219469877682610234504085371405641705880907982474291481327124531865401280175054535874402014868044418108468723771095169546508339480709485689176840526798060649752071470607915931851424167810791107049584060305756288588968923037508875449801425500897850190253362774488396592022848252392368761446917209583197766279024421666069914362225058237474540876055569911124196847441880088779576589834844570419157320339813951937447823798710825649104259041149904836955383855291923221445933527461269029753111988426441673110563814163293309428098624171195759124332101839671136058379745183367815155669750673895076872674550659523431010945443108228214714769503733396698717973522640464677825813303593311478125281238499399093546898703376313365972527591164206595525701821765370832005580503997918845041772881926011957128680085286946499437010862790215976343275078256032896057450122072132043275802486043595652097980823782843269398610676713072872400634629297375409145780215067202911247059713863288398460516634724553286598359000036252622614846069141072606975589384173485261592048972628349306206120317922016278687915438098492737604952942331679831351863101236057870445311853526699368768351400178471864938285215968282298547631248277508412857619638705271688896925922641307318607591410220580759537351836803417127409116436087586495573548523746504523279385918687826888638869942961170447168671610880977775429979848277999963022866227560204681813988046964553701720753943194082183527938689166328931971998403443378737727231398143982816034222835095370720700852757128592530262681451442116764640235458281824038852303621510817996339813614046812864056053045842305554011423340671602680079333882846551508135865180406253459718350485355233970187251931356834595342269043452718692262356746196996760607130783772986589439462099951756903384890607291996126569892399283281513486467808959578850331708385311554047938650102507139541677429798436322202059223832854531812756813109418500510640396540978178859383944789127920593349561202841134427164078300171632131522185099522942293300428829247667320919977727738126214194134245923314333157936959266920058070122483569297660441056991387635148177817632150674056091327567732703008917634006842765207491650674353504301631650201732870840533569852705773990127625431779874253098673060900127167874009994715073566752975656434741416532473779654995951974240475453707179596625382446425573887627290683899698244562204623156451287968588381024984318061875505381895191714029015245483919781879672225756675205197473542441298752593076127588037370613116609275813601384226031620773635576689552817019615761344389511671689278780758922809075885491948125881259711806195582886187314848974570850275044075687446204075037376098303098431217776170119013774916989409037966734508532497654644866718530589057960709989874154598833357768445839924086088992657968644770594677721604548613274134804788355266852800588967020702551799418414604808516775580908101035885491684164762723499776103549490772335660263820177140058211770197337084899606601291813317006824571609486556828714668111266014581811821141079634564834784442846432325919158913714475518440298189546589793975565582786802706727677351698592344576811469757191571571734451474857379187651390951467644054942336840542726512683676818726471196586491318951666839623189015094682944902689263166708703089591819169392672906147615129434429595368042632286931542679618561113750038570777636692375737344076179471080152738751374534651870287372229055146284649982911030358382075084220663489571488640077610543281356067999076566903596212159958902715521212933971636340282141087054831430511383178314755981422382984540797871734545351077833391933646730984932466385028892249658159888992404573201483155120292858926561044920637151282339535404590813414119442794358365548389151893556191566697316921256943288468178654647729902185480166942990030646765677357410224904209157824655661766733651936878356749360831817740710112302555973288918968428704915199525225445480730992809251672125753307043773831306902894001200564372233040424930969629302948802778550367647447441508653231081704735307229988332483156420121272669933266562988482759045961700478309460267053943497356508158646710320390711829039651124445635044662278246009960876682096952532463010747084132863805708419658725207588114365613544374236023599084495439934886464936249200984867715189327159854189117000313297849206608572445007674478739346264518466189205141706606016389973637220605153834506416002080593847690383332646087766787384246278716488013035081487192900656999242673712463244269280282434680118858109728586604475953015313522503186437647416580112606076495118890439334571337453271026650314020794766393065908244080111893818513723452044401920502174105368396192173940978046609437357310823310009052865506862328603510534269665263986892577628611983121138942490829084765920047903089288867695297140935563776126999854500664988791121545630362900429884192101520476348579180591929571840492804992810806689512749949232441552408916838505585795399824622658244372627730490090649105543757091574383333174887713363263322791030273055028985125637926622418672659670418368372920281974893758677160774830950957090833162991699941289098095969489167869009323888552960236691958899865655955152841830325935499598277182185670736072808847621558840862232418407820904630177612496294505953121875597170121090178191339695389902404004872719502127939284918745775336145850072392073419980913053115842515806925936098211013667864767197609700243101076199085047521121597662755978618459725203581543254219611091560390139520853274405141789596955165518310782253924732268776841898455195998191324981090127478697306838424948616753752099694509703543566832152708588245852004804936277362063965746741505919327910179120721720367014172221246730618795580297730860973942494608166944725034344313921187082042770526803680346891705431786711550424275731106244997811309289238313620095789760933140251989594430504694208970531042805764318245806412906513190564647849614268129927363604907658354715634954020340430971240300232075978800254717714448642189202066881518657892415181608810013375356341451539053598332840935832859969042212430399597868869839893984725584781291440395937433780269964946699628908038624116462011366396592237951450804233462634075357897524267765746186086031604703348132522521955346660104060868104009085528620752627445108758668724111705279228115235265773249162574745684737983660134244851727499714261992353681102490804069412506366270711209450819123312791582824801807391788118471313033952047789822150685210444018689539668820344830218839597500730877698135384385539809436459772660360449825432494720620708154438923566928398050403610807333021493350878736461232555394005713089803445159853236599466756425012105393472018281855091141219774745946913493476043778841155853119470630205244617908090398049722684915529489627530286832049914148162669358259472874114253342095057647488892189131149932491603867693190340576091363483064622819928506736246412044849016679334340955645613817908468673238956874371680244655956044747755320425355427022068788292678743252016377914069060996530684564624217614493937152317436418985112138277899746217056916359829733784210479154895310844094359111705880904917083420919456280860358373626942190617073474587322404529304546493172658921673828854950988703549033556190232111126094586588153570258709475241719998487330316266254071480143003698717728308859780476127376325775156435227545260401161294762375927133400535020614467826267171970981005241747754475883199318074169809780148064700587283888024634598444938196682068308311354423719946247032810046150611742854730425440174204897504446453611397465225491678622107957201679273643601612084923555988699153423054263021323778267235317278730264900788402525675946639249380862595663896511193497269981302488615687632809521236196118926904845060096465947214169997938488421560358235030074658963068440796558623145194428569841437219186462156371368253948339146867800606590881312388952301765751309925608280459953706539254807142080111990786227117573995905354338039217057200700398809800080034280009163312468559019843851832051953470601026695991872340290749637962682651350935050543325908093157397010791797497357879825795547711155867422291924640150684469369302876194276972583215335450621777231799582789191799606201879492311186509673358751904758879609351387617011860267037982853389751092864256044930707292000764737446514335666732429725712184077594588037681386991568610823171982854527750647293018406626347032228192849808635379931436575097615988072926867901497583438562163236080314352006625103864481831371984715552759089993753797080614157449401408317483608588120581448848477638824954671859740601630797765899634296960247004616964103213902415827304282508255142250190922544269483724272043401898277331664733313694820924582140746261777935577901244046994354387579026770335777494846552814487429734593180804147687198956018957445701011681581986661520712595895005145342685368166548900059832426606465640345229839902169421193491903143159068735490826451851642156937444615667944190863960709782087055862848969578663666092438058252396161625372706625788617104800793383313120434142475049295711204259003571968560805311547935664656848663795661465489672315821894500497744155316007670603794474381977469965214121850124434500056783380480210909356032275678066063391166043530711753021661794150476201829251208743160563499952006196425328131232445578585342438361434407334309253681526397240705156922294434979715938888574641284867223192308801767880245237065548274890843810127289252992918104148263803227521591343327245846466549074347067656893010109014237019693617324772690382324430933209853109606338418058781396449710115189161167554145297279427095647239114863065762468964817298837453056066087736953128258081252187144497220885512632653017958449593748477679251054137740243317355000102173191235385796651034350224704447956419139520190284663575584548183902446059171521254765322166937537290318847093481214803957085374450147421063190844281171747363938186196812159833217187723773103080429007136473437528362108607086145890809528856840286970007431584518886243609160893117652746129411643323801417370060952481399275436180859983202385017803121843480963302114032155873318581664264202327270849106637068524198026836876829524768751187034134732671222710817735041207284788833734946812583158040186462230842175033446062587940632844406357302873133750540614482790212731520757519750631423220731679850966441972921137108352247481352916679661848425532054534522634638770981001344213915230400939688560767317173769424423170163891365259903234139707662848398014216983491991058546797466862355607079570391493658374730644699777392805643050230729412909058982914457308087471752829249719067903033756114301329106107462192950270173747464837478905222196967574991432646719110390038390666386501272007960897610706644882441026887386505445302111297330743306721749407780373411885024342311286541886399351284671669526555387816699016513115967435734954461551949449881969522274185876532737264793559168299351431164297697836927334811499568219006296475127358206955792984212455711005724492280477423018623804748290612352247910659323147457740847186670355128365209937906476336040401663767477470199202993824083598209652414987791984476650907660363406364739037967217089351324704800467988266157356377434284602516187076144136082893576643362326746580218845043622782887214979009403337827768790607919624512966363410824544903234443416640901738914488247567197518793824685841980898147074952887690062769541712179836770222947384141203992610842051797041608169554476828499753256499013970275634255662070174084813191758556359637080222193242793750150109139443761761553407733467310189695928056421251825587416146332323525276176576690806109215536229233930396792861411647456243912719090821723518901199528921914508191588419717058565393323425673322415345066999431784648394357030385774102824738320267749126568792435138130267478158567793145280947148560185448007720602130681882054934158039362112950053826957905708682132783489906929275010734834824136427494794491476073406826220486919820082437362923279762372239301249216888046827213352516617360541694437967257365421603875551577334081409601255519607134475940562392313080985315033000060572766836995299978430598553446075343859070719241455448740830822113736938478279724523912992855671221388350797289448229952503341760768037406589029434722755638613277533536913574838250388032649573117793710094682336788720799661075262372856598600782294582179359230896572725950245381082437031646175418641445403684285138040214024183070098338512898518971138504412963994271835332369856149285372983238784212180387001909646085086231896343851667890148725968690175879350612412651976621216776374763904601955619497269612198667750844776283382516157846928053295927173930958175332420760670779205494428942497870467719592547806186162715735995044758093711328962719016947857063403044781314406419616537366088070763752436201460929980984426192096366071442993350503339939268154996464500847364881959946725221772889996707834500492778721533337858335163112432682345439062467043363300159107233940086398749034243414837758923352194483614393085100107911475086929378172648508454701090804831786957538651204886079481211038967015079464179674925769271050028549043062608007569728752062110755300050034722696323291253432325257945583008715065310972708609661131906329360351362184735957191744136239856661837924203347018365524113624629444134540726033569267902455067789190496883869396804298654917969941480503695012643396660143189915566538921577727273304435756287092652452407130296191648119923509841528145547789195286143695926535822751610858121658518816055956528767993985252615357427856918253984668535575449712765222341455091777930213979081145302021067173414183266012583720566464223719243842338432575723278925665423839705541143180591849349375947028484597353052222888193282512375353882600958478576680932201132042571536025991185482282419403674626160009973204765510869356139166945130607372158939086006832955633568801989460116661956492268487397261014906196094385349751005692247071221825632847109968210987688326322909513320349878091280743744881484948891019786993651947104915513575496838308854801283415128036272145312727339688913743255038801433863233284656124950107635750134156123453731635538807590008487091003296796094270377682930273330223483552214927937108542851986035264442102925253931151320377141324129626317424906909105605318081735687313575079155594709245256710883629973221170002749150819296304443723576302169563631366101603782875942098614442651546240397881756100452988954306861222250798168032299927302886295398166467845548908373880180918695431954144366920805733229281658689941361636809105031677196203584781535964022739691793740680501098569440204687730544622493144819896615905498736128049683742927436729089329756306173632132474296613824197804232524432060824337651768647846577390237986717178012777378962689917146451629664514374207947388571040788081589874502850953165727086458272934749521243859516259908961442849116774867776616268365997193275378898654678990003301809796323793991307644382070922082564899448235300688130285775853590430642219736914017883908578288689094113340006305634864608281062591215341734357587176384268638285106159476990205100011987369885577869522527330486110575762860253721500190679845441200405889181609479046579277687609063177197137773789424227055920195652479641063615424396548364019915510112485200865726024512904733088082754919379030185747904603555794231596122521977269701537420899718140533089264234969696741204447544461318503202468368703197538605315631298159291593987641319483139295138176788545647197149873801286320597645964709156139729308404547642059455780106719466183921653801933772578940785083720641394099758706761204960937639496748572936172044869030470634289600848543547714156853813130521238258299555663208685621545485839907801830947645094135128929261931616866960873288539708531030004459552540530818512067313041645811745725623615453811932201140922236400316124108246506169359196785238700061679000140963054842598183625773853146650091389495922848225451042210414061654238495182472223635006030448026565339908146323141226981962186903390564458682484418815193254982934902528931633222998361880005091806218355230374458027515806123328598785660280319614563802227817575076213804044202344655516763353030730458495308587347971904439689030890449318682465030571000651984566002187581336384636440792180272056188488792526683572761039917004565536827484825078221114325805031648028135451695651885074041795561839052260182939101925740746088223456839884752705902230227318122903471925394964206232769038562953898451851102355792040881759650126902330961356372335838163863280962602787177297669220398370022439315953907563727455024774517166422242049679640800713387385502280965228465247968358998139806705750732023661081348190161633469819369917443410035709498436634902947269915607122220772482715179758272018411011491025524131869762324452875247455498988183061506769155374814775419011469643981660194859104439736685125483071145490212820723522204797330062911453224887471429601021240622327075755234795941083468025373996414924685690305556466006550519510169029979515811593665145603018066208053684291949930709069878717796577909745063549597068849190890793509149557606191550683889184452227678712746007438468536000597397400829323774026317393221771363479417571511485144532312785263846618244653111308994108525453067242156120248585176806780591571070520292163153885781038914384850120963051557108602599593237936743566720308217157704647600908260650296734414306131608922452788202818010296444763308291654039234501194870349827026087555048066379269128763760931223681046212090562334975098815845678418636236363641359594298301644119306250789320328559799298132210027520102012971145190808740293142522720740665075158383577284552002266571011515340230728540655718128476507265831278080400449118201005089600520067206883100055906717760835349645047164293260543215178326911472294268960300673030142720823716723515217013182470139045976228177248880102958455612721143662940813149732880342979489816459790515708381936256271281391887348900101510776493935010486879128527355253237146821863378517567447286780517830772516011200941121722765349299182359635162656184288967567306394763289762155313854864711642454756236703211051877592482647542150655465098243141312091722405327193282867978157237521091338676503967767975913769211658300129000745246762011008786679648008558943504126756035657279655890188321958371885848010336092151386242333798955304824429401057656242836724102677936027124052598447562783009475625462196971288930750153015210876338482160335362214421715675977790443738489464706659805176389232248437955007183909293895226752084800371508169204572279230687654112711242104017486415886035544293506025963934348939210446468100155323732437017716131419885789324518689391353101177172511142913781657689630334885483949922443316867691368197478069721765564217646518661132988166331871836780801422532062128324421274955011298681493655402452158876129294770574421904900099662303568968793129913577945302099209903285061392987075213910931474880254755903902174733906068878927052064515271168180701639912948271106627698790014692189553403757076890928748759594014929068418568805567703364069037231605669937909457890059647308740964842852390396167962164021748439164260056370329254457336570831028253498777804950028178790250642982645488729841943556177263944868460480306744771902317892980690464089464634029522157429537456714449148137707495881520108909364265806525987510775903773041365802753641231523381569304363727791156606227659964290926578284897143233225957645532260502109818782828513765204022386042478132474489549072718490060166640736513838557540044737191317468265951966947090954119291049672040419397432971142749920181098130683158069120416610036738433807849598884354698179492337241895916483073675139156130800583602126828314730239970019008202751995490689154365215588154400820455039609217726013951830273385067298732129038937606659129232509013329234580733622575348429345089797706502564988298136709381900099931366228400583457617119919929401021764463955571351358640668125183217232395338079649837832585716756281731691563319888874577024606517140453103994067805204333750584758010907648987269847907579843208313051926219987782484245406412086019418184629021300181181519978952186349749353496041718148198728972947670090122292796373979317319105694260093678867187495170376431420637274423633252624454888751926507385502377762818475515905252685181462635656965603606819527016344979607220133558521568935285591906542203397949145808489721634287387157193132316796454006761728227921159867283728944753217182017362363458412291682584797806037059441158118412210931634464981593841601879792140135892064423699366166777123574338590180487456396321312893129890997794788102767125110845208964706509795640007653278479036511461740536896073974266777661858533245178362170547094235038129024489674821688840197304784988830419538689861362965110396030900788621646261744173964969224642286315062199890027176372273942093930583476969589121468314842708362377674742199682073287911718042696483363580981822795094015055982303221617093948093339049938433087690236232969720602321625648838211379909943250660573904484814191972022153331148238180576129957936157707594040899432403092940904922966861195886722987025824766902984280918492104968196809528729017953557285431824834064740217013188763022806782799221279961270399499057614854801203717331834252881585503497634207878577470760051048051486273659638479470572993356440590261251375962240034777169779186793934680510507897357060831173021483759417229220707496051807013007508133971822557224350624511236650700101333554420100683534519685365887259642691199844864217397813216858776412121955032852285134613855273477643233397815690554269824733711319997377344692777164062342133871284898948429215429918610070180142412923384412054755519892194452580705348660703634811950546500641513571007118314992510325311305815629581989178403421107712060058063108591149057133727646665258611004718776532899410827429691116377984488539640730355721102312389929987865986221439670576683006314315845692284368762115365635214219534868989566129137800170088207395837476717133312541517377450180571638318515332523941498740696523402434261628613375728012714858644998665515529895382763184264493303149846818082320667723693529917398278052957908553353509611673719363037857871680779432063650020627183255096523839094013274067562228855776746160836393756368745044107635090821235347247434871642655620423506901081175088680830408577180103076543646134501133458825645067528409173439294106460650533537178187634586105596092499327174078257531692434662131624062372585563406545938856631953583122034993384780770456448227520076916798666917020735945151720504020304099144058912598599299121768248871035467532104926004681283573154979408433149469057989582797691533563751019201169024319691523967005647804447997985143421277358724933468258798144715846925178380800345171690235709290250091160983296871313991294715597856294015109706555388641873371522377186594598714858585696434059749373721129788370622218704727011152789342810606903836965656600135537233376497047937340978150256580731332517015819027728863205355590962823884749614162247884149728486001880372493952737316196896006234535092130502504235458744306725439203376400449692261901499531930351516940090499273700563924165912637742255019176246023960361320182335434870446949774626287864366069518176340206019081629483495436450233051956996878180101863439754284164254141656305958911594744879592854840403878211071995360290687981280196561816803182424568343399304246955716347269291155979256966498153960456095049451408381034039141712881378844217552991867750392200320526813307440296387246623090307797716125716093426122925198489489669326312044570913715121894243364739520186321850180254111980077897255570695142338862215501581563253882182675107214366845462261531152884553940161855670502151248747598475224337228125944265467655115466033651987135915146971267940503832459782842131867269380958758846906843719928549485402474154700098213781663896591741581572770135478850496282444528686747461442582026535225362223403449011507986813664547302365862972691074417597606599613516683604523245173110880310547063073851829193067194543893433550875250258593367279831675004032509741604081411758628607886304782207973731574158403972683250837867736493110926920842115880842954259305321039678645589323054361865245613891822706018043251751736785235467226784498059145374060960842323862384368065250453062148975223995951478968724480358055969440751486889893085487829915266995799181913986520616832518843208391898718463695044337013384215589800563639027569517223147936720623561840330684537315236535374168403060091737624508687303495769653688953314868352669203693225253522915701378647185501170551557060607386070223474865138291743283453668046637179155377560741238815122351998319512999337883856676819767458061362949226686740987107486107923476275744465264033177906960055119290898367504855208766060413150476964334927636900244621415503439080771269198944746731302341873539756339895690042076949446061239212096370478174495082106983229002346875564447381267003109960078612323155044016782288634743263842112422766238987015681105443115597437902549025090453422033695287999815357096448044364720207774782291996739427177677227359255785506571111508407175902673622743131238684099684942695433521975758745563286059450912117967149699363729969601892714377019274254843453109707570365225889068011804500029962061142874526198634904547850984711856803112027581789883896875985086437186279005541567642282306132059206178921400725356274149386014598920995871135396914680819799440661811418499414519294082687080637898014826355217938944612441577238719291808896912196026012976713686661702645744644560929514340808077868090279031214450151247070367128420839314806229037126334629193151267628465816325793432250503290632239087930417646704164731639986885607708028126004726269398065797121373882998947651041094941129240283719207926699695192911722359954473221466106067589020015640598430471187138204875644898417456320416982811065266083461175092966140898568282059466887548526270785937283922630003059849210380948141009788872656149489281387099869450324864911439960105045776295820501806540397845028249717642694157002459449156069019528546246249823911523200314398098474665942277503833213549251443873418340127823252388011841516416573507007118292377286359312104649106406738450137428280310576303452487665455192872062683526418476976612837362179680810834735622219523699316811115617575050441048941304596815875639610623086343778383334125465810730309073765421430071867388553739821490735505157825837815169966842533754649069957631375463452824548298520774294438421727367019805439889926028510705845657059382312072724090720080282202484253875633092385024776234212997067379024243240288925598622761632429985797792360807154080583775499840272829605065495788561086234505894487433882229470605484260715812442958291928427566868227283990526574030312790961932504952253215829063449901718652137859179830427494425943350999309579870440796429603905574354811401643294244276119966824433425061271735603885157994745392446806771643155652761078114120488402529333841563769911489925646118300550219489785714772979291380224961761674925867010097651906976332484778489851812099203312067505802673097445839254264039139274943057655587608836325245409398557767903019832855190120141324964040588247919469596696255863705457835430873560557132940561339329978689063449969250456078467449926135358379820785628425278429607078105860897193876481395667003898829931987634331961661293271911970987029449397069742388303155817368730000590306614938163338895220698198119484525902158487535031035937258659063403497497334422276404105887719642798400774392374621051830193497341223269902912243338135224684527378121668206037841864678777007140745302165276988501212423135411200536393454960175932037667643996203036213779945753345961614128727758924868576546246511652170024267874422393064118331311068796013555173329353530592096730472718347788947235797989669437241669398965507567518979037228245462654537449987455921382455466822183205642579474926959644391947037194525100445386183166856239423523482961187310004793342612749991903698537728636780085897223020572913630270948281117044881214389558382452490121948259110012510209759674138532539229739779736870808092840931518850006077445058109555364483401786807916247432040470831245676799068938391625693747790841732010175172103481046066363323084575108674892285724424375643905149174707324068917707731879732483948039137046160440103157807455095347664687212836581088414779895950046779005732136242471586913204962217845468371925144829259926274259728705803435822881783442259951727876703015196102442836208030547423155334971352093526265353711367775489001098195258457042604455924086308002265211625315486151326498561163045323384690174773929651528021591019130656955564012685656527211400190463493452416132551327490199821834142531576119170465402053808506359413293166170165336455478833532784099349967962369648114430506430442013784644290303248526160266556132610954211553858913273414493842567464760465560261684899593563404529894328916409331094221138536152328481163943984053592879436122877700471194701072402040909973273055849886362117211372889744051403928777993115128444372703902968838615540133493299401016021925380299177936136119934502307982869314489059755645787677291024055224214501843269417805617476911345041743054916075704010665977237101938305725952884240335910509543687761119694859806800219367913669870926515892199627704242008273738657432602966164244680573539869841849832143173097984037693827902617617271235298563272301419274798405692113699840529074090031893349469635829960175825807347042354811487542486661093725167495492916494082380053905425072121386947995873592762928451446709522281046519836822450008954264578634932543160552580635623875300447889567582834354876713704676731745046025115073421820045447803566385819018623587210104695234536199086431027501662061281808864896675856099423132421149834187729479102451306768550569375438403806497728582491498880303312098255179440149964197795329995726605101882385410352769359570371492551041628887742077383680238114164961226432084803697816553305174938982222485022279165201272394151179868980919388634521817287231030314936677014549676700871643932979660069631186548034563845131900708010326271412264825488885953636277141628680431481190416047912408630886113497417135664480071826402490720404358488409240565651160867815481564302682765859512383277666846019352077176449892046203764382451348396413957464975523364362393455693921131644113373241969040584246867268533298465713042187868911836687728232068799535415719476983079692811782103664626318600814911675552761718900638703913941748141096058035697774230960290435869477572984053841106740561591858731742078754606581525048662421791870778815838492285417275091405209692155721514282005764351725631219376792215862115593997167213016406439266524725270565202384110762894525078129555860787624412726235715550667279187316959035305379253931964652112850090198094570638854008993889324793137490004494776604358862820570198162646120376615382956608363468276878246637805020685583641341735772556552036566654161153753243986939198891286799707380394632686396940253091280417189143199617030593361854844972701068264360796592705214617593881909744399009161060141361732451397056726858168100165423250101654408256432816432731541293810062990789580124535878980292584263640500562786747094805469474612825606599424979477630877388581420275147325342602138741144009443953825814475196162541645589506259510699662843167034454917049793336970537247983419358176063550509920980529526554216079576028641873091906396522173762461383638934738099656796601767808279408836359553032658079757588879111471055678412558935253819498336411610081301898588223810822735382241495348611296876652168988995661732117952657528829876158305860727532800617988417595730926917518740099857259882371066596891120932031480347706006806769429150507676015260727624168547156936472690591193030637350407533676681485365663241354669871975336718751333258610520190912788911781847062377200599392548942151486667780025795489253921843829976928202350765047205739351994683123985758637233990715760073080883502933784268381127487511325509495787352990573216039831339975830524878458729934289785865563858541708318710359268702160081021433595433140020079830375991085671934307895975144173816578537953947439964828118995966773963101816082796163891022800570983205217202124322076514856771702447873447858220814452348395316819833511466548064249787460526700295700163735290622868656008300530214865945329683977235558248007441751016513495674148538837738278602094437014337574495848018073018318374597367808479698957988464756429137797262085523936539251455530802014655832410970428466816127934633650223196763617539783679303402369378324940180614459012959937524194625876028523165651934063485256381505138303668990492584763200993924517688041829193526033748100099677650197025235987747490515506044812422273418519240608129094342288178653889697036034101608716084403130808213685372351578752251772822401041887013967318880130395009304383041997822580060571347913216479351710874969941858339541158237213241549621137559319691336571309044195360096374204211480377002505915998896063319348584594114946225702064908363032274252004444501317732035214347852115152797778831837689948973027198066416061988978403658299736979788162283738641898404345601672784472902076836787694400676922061450984712377168256308169067937573952370257063125397545031712637245397627604241976359747245474384193117954918463051249888536173712919297802165099562067882389137852236018307409462565290619445181560059039306911008129121251523837934645834567174962003307846463395516038066147438388298110314002417129169125537600671433449261837363036369877000124872935575450810400958823628268345827824000834807152490560059380291854121646804024411633603959419447969307275038751448445945498672730455729622611517574945680847063632648432872732569925691991882613019545956422905223731518077900006130552912850716859033568935248444577953071467498235242552022506585848083868478008093556562504230702109941440024359350096842576547604934539981903596712015942136721679383589155468730973573338102988578026923413686557570313423012539852050826583510082419114035888723666596744942434684209051462062243678515460814332193582244460516681070798602429841672595592828025713152392456754018383818647416111062457419456454126885119886031771837262053745217033737114954050756354671570244916108130140082994325828795223067978866287823793252460744274178023414906251135616339611965706009926252029148898925748908468824257853854424387761503079089809831699319439869045167706118177508187215819514416052505746603852258276383649013738610635931586317420301328984150772008360541622666868482002981520720347860810198381348888501470417111273016706746112314853993322873957658021851999992612513217671056395282548706113210231598874107354286797255953382303054012591883469073208872267534230727947497396177410937799097368369419196149326791254683058004859104494441608719035609379092766586765222868955695082759958444648892588012209201391239866512723482068475121154577226503452388925450885242666671479052062363776477881706917712937608000086880018914888228645722974879082343457738473639536690177314858174766829042279738876517500336409658604716715718411875582360256963676489919264588855705304893257241595022344432136406255784944033419801538582636703166559199213694690408225247460602859158219087887290600355143429834245744219850883390245486576609230898008979131379705895358385723755168004253422888522048162985378020397894636891515562239289002943912998580549753763924497586108408521993203614216966784270105855296527315354874489565010159453087920042630524703196010329819638889004927615778827853575378664803193518097937937014408813457287775091815228603996603563095958938511123856565687890502441064486719495040264643993950116047969670399733363345163713640118386705701266735987694950400910121544040977826016518538043999815462764955669525173634637849258754932340809446132145532991081754064343663555266113155487631678766287683369078187205179480031309345442453315712092829484170583951649330761295537346200474656685904836315627499026865806284762902947598344470995001020337398148813725141316033545274863926680938842124369004381037664318109968132430939760348426574243286886133977154939674531706603937056814783648782719805465298632952663757516619921043915365780562237770044528454661823403906732304706464638572458677942382305938687344697315416942078472851265707303119311045992911817825115451187329263701210516910293605244540133186135514812526582022804871489305070409681081585302721206770171077740065317511841016240650365273540143621789711885069932188028454534369404481462952302304018092919910468763210141458446869012853968742629897731366080509478941264303516749593899841724270425338140657990514039172541070059419510820867785170090525004207253304312020586161899163824528753675437869162483024335275432436861041844781763173697294545873556395804380078967193449075813851856251527509766457742967670645943628342936527631699491181688425206415514769875570065552983636450137514032059343054779314810347101275831077381508681962131812968538672573667552922595546806358162063467254306464388860355219048913167897380442341440279154395722523807484727699562807810375241034673199134345457176440957608151682781587494052867843957273071150014847367080892513289393444176982196761968512356351986778729208685252307002026721089176421662207191787715305370775697146375610753369852060917054236228372186365063144771408136379822686054960483410796112334758340653863024012497215186470210073975796128420731814534029035177327306287333805668271331119037501859224524120860198567021790511132061483731947514406896953211288587771717788097502426267595356131300059460975117427022813108962612018992474627015210219954236836619502617661883814780801125762407695779730562121748456159380449147945001829300284702013147367963624912975642025334531760246492548380436962698727050617880718881569606174672657941610703301737391251073632812828802075595133741642310231961945506082451134134875627188558652863776252188595625939228259082158932132792430765546206110714728595521737760314985665748590333044218644404934346524717632284138299391427996300237179532703325405228170452322478596976286681388851536212154161649005840475238563671053128301412281677875710863811881513490279516508450518477251652347382049113515262491770725934905019255740169996550230437601267566331783548018625450712169059680996176907748915524081128671408110813722161753074180936762252262279135245402649294660067216764792752209146809498687056322589275230567386019397600985906137874118633857097422482772720274123694093326601810982936099122581647343535396101253593975027483950338948155772429400777305413768895538772343561018172292814095842469506531671871675052524218410883136816863676295780341662920176231739196250382778331368526048689424583878307830614580889126074674891238397054350532713517699033509080798233803034839116504146100805768059004003589298773909456590465982344117106311129009199249099499090376122114930702172264967026472414273666054788296279556197126522148638325949500487619445391784651314957817013654613480804286582795344515749867329583206186408976273180938180722003347349813461099266250657023689558885039091990870525266867027611606338787061261499206416675524641904885128949715532734609817155581572654603814774192438697240570539545650212010116769347356183658779021212297176856113138608236244892434350144343814252447338990689991121541785588897701677575744496056298496597715998366760271869213133903462181078538925092331652346305389601683269719466284829145196124257910663016575527543347237389024902836134338557628624328914472205615963142003601234325978109506201695123078795723409404562096251038133648320857515458346921674326427945280507176467420002514830515916920520712853176546520014822826071234530096331303688845155337747150715098240518363929403040117625910782454351173912733926079710245531450725992966779317386806094342672529025308100736947255767232357532255059072509760453789717169867717519988929508256172217135799493798165392911810993039704908918003685592654029628408547310667126179637466755122590776868881315302040561667594805326726531155084020138044315609782752325036369683555682574734803500143527876959238469434377614590439355441099649233871545139819691542184782216989130739652035458440128791993249842978733739040351662208526062088888150378523375304465987438567412913368742148865385052509767606265424262881721760855903004270967607059198332703979934665867156921852700806921748312683416633666538454095700950502669333390946152037979186225154365063875987571763943903256555588953559062313748568735384958576154195833341419285300647712672175372375927834020410988721906133976013495276994209655875059086630519701633057770775909870859555000479391152002982240866387260238948214500047001175130920098319762485187355957029273860447367296792923645654930496078841038362228792621436827692089160167736675130898845666277347435884206290244100011883377163363450816892466906046541721648564396087671684161723354468566380199805091437808955556801438168421639780612879177253920554109763031694659373108517483375656152279556280712446377610675285900105776534347954398002062208988940818689069761952726255733051237338312112118931760114202998315229587814539137306590719616287831002238438115417115197169575069424849890647768361420307185774758557762994225625812919892115172236541920245860725970836882806026240665951918430804319810289926246824898356803873474910814043851525813433480509209178038647725267095013290628501654709087818611984824887445336576316203589734698894404217443246762340047299989207340555641905521969271002253827974929715716198396531260686739689474017890903831115709832395742006014039579079592470651858267997745055979785490747814600315313842333007243358071952487681998985510372674244992794746544364195777287068320723403383282251690968337405337384263814976975018586492399639451348524065230395916843236911901410549262366394011152368145436969373307935220930212313790816361458490833859949006104798392557883554901098568842221848042847934343522617494982807508775950094893176367648031892297663045318622315444820961007139285593078445529946770972443710180462498212251358317889787245538122303383780180223414042867246795695839615938899317823258146695771508901715894795469737115308818832587596677776210155255697120293165170052800696234878399417786513936258563426914594562159944226971065269357993694949484467334731923240277608024942867710108045259795494699737486465193843451993237926901492418030311621891276661690024619970254603063602100243373129705429719430126480509342810459445954103017602817381407628267770176101606888587326419582043173301186862018354207738711671967200337329100973867237012505406344498904649622636498859005069995168290922896695911848147314601073442242083872587864520138976615438437545274433077743074412994330847593155295871822781426927666085788879059907370624516871003329225393540285563831955256472383675831747167011960726418627991427142147044288933068312072312240514879332247334837542639908746616256379958988462300816638944177622084620022837665097360862266075649918906366524889395936431947293021078480876240725789266046514247913205510175080624794408769527029156767756212259462813235919662833380757494185271033206876379495845254576192687094719643769691651368976946921209793547160286743839252921017124860576005473661055862040740160648083681502305198053944825638674097579013444961494373784708726668441294750533241323028609593323694093470340076799046517683400339953704675724583391774302054792874024958259682164280015285825614253742491721352642867657003145291874889674410740944843806643621798999007233407113744864717849012312281074622075532513747675234003288260412420251074497148569885978104054221986042492073532165073449257386333447004956691186999138860789587682317831992741312937809780154028091246775883122218907338579472372925246929961924366025552140548137303020775519837214305052604069312543426678477172075617564612284772558710206260564472778693082786313154886919639392715071487473051437171555403913196054935495530104478183713472113267594547509002679749999389794071959688040133583976263360807514829139322490652660995676528026841339136263711823134941316899700918886395059146374585967729979038181087696961899490302581972118803477253563539929652529107852682963343730836575297248892384528781474467692171492416490718716996117477241662443493163736111640938072823772093615795928556685379400852344777001584607615502542238562746609886435808383526635711847986900091906206072971706553760316347708377098165749651701319911786433420062597473625888129178573299742527797234140389053928300945626664484461414727664528509597814830847996545456342453337216470660791279264654604021590518208259405735490821200104327098675842984831218701751548935499476355826849311764521927699964951978262959664742581536695009222544325200153361633316863994177964475572099679910344458775040766996395467706971636504477157544224965517962494837109264498561394452536110831997848092112638951994446245358777209726467496314234876237350317296396381190806478282634977284874095317460079180173897333252787093986285208368799147118353927523874522745244567349342419555450557895529531769919853581998601427077985073589762641738490536581823132234404078064050527825171387643958553193141577713241989482536208012256273113050427581190349641622296159230342537205782602904789021643161210801778088297016138707242578312460454674213803388537077765770544091055367923629053115279492339401457593588934035156810480563944294298458203033657239978393533663877714014044442217670484786861098527163088738928055402120781476018525067396288474244057103830156256722312929675652245913037953208898035870537771706981221174127487518880146707644113771142035384628091353117383610247467150765220833241786516228532952648693852590825578617260431366149956131546516979190288817742148457432187392747589963396632366071570144588488734828588006190959870817392729649700030521644385570328929869634517310438002227666690833893168120405493459354706248686685531472305577426563889042460793008302115571331765739792100978975154343285310173896579112201096706194711852072642642974336208536123712018258302011622106738360961816729444436287252395317780875900827696260004668842588712012684394801465770077109781536535820481872708756887491336084923144930189583626231825153205394913967103738691258159892187989333755977456143217364945901222345541862448537569011209824973855662621316167444856763180906626370825997501649691220268179158216199903264077913484890857885346331370243333225082373507862763890979833473153217227610919466677940101041926172657282150211211673086542966525375407683341374557894692773599179520386243672929404672718686188405075622306062154595640841420484854164731728258458073015550731994716236650494477327975926151546424151259320317233104498717224187308165242350083523067712157217455436051051886451475351168493531762075769252991977205155347696688810363549001997518193891020990294474029360644469646419307850740108641774816301790778300041519800326587274187021067412100929239599763045734363441346587051951266551969391194696762838899897407085049553706865847680413689017210340929817962822690345369311348694564101113419900436747918003952524285025372874021597176190947450463685605585777020163921168829908419518182499121390240411625921038433516381446311063203548050604965110995677485518079350308863772682780506896955753081951413027285523530180564310750782550805448409818356781070476528262098409107475290253396758637953470798790366272276752704031690042106661331678397815598683231613521848818634094257920011851435131748693172319534514783818004822146424608542493895957156848616640194271472943831803890392972146641802210512681262664785574577365011156964282020653777276027683646452175654798423623765014753004601387934035224744177844478599928464301075278121645010309456733633768473081262817129613814105474668922373751505432340007932871846974844888022858067669090776792170130896633764578820214853479171584603595443006377688138696029892384032367857201117175303386311771510303669707362826707275255624636399374405860723838837623492209054937879509276613786751978922549535599437577316107794834880708427354026529222861920961562860031444212146644651037448575298961594307282845418605188461695306678986087965007470456838615015021327425038895674383691097887022965837440209702364704291029377014044057581979724540277729207712012311042761259304314694551155485500028983495878880130396552143367022542883862530670154623580865679720679909122370508631088330791454124167726454015061895492123333293927289571045663511792077123987201189675032580242298794726343379349220064832766956349995221830880174472648283060581568808377036535037965209258922429687589758562719446337953688742580360971510248969339629027951133702836610897821282617129394282972098860024755090022848969646631605989723581316922649077877788054117065438428078111700389818115591666976985889388414524518884315582659717041364443037638350173252703224928864349839916613887361845161878286941661454074110512214325138518852709753619546025818422117403437354885216572245145051112341693674845925753979512403796603959329434484941229828855276909473805402705005728332017164942221847450501649734134733805145706869580644520656901635423712369482270182186364679993857982505115095613784577006111755857790480266554427223560795007859484722130696773956807543858604998036724818618926514266193465672552357413940524070958784257486550856485580993652177415131005419362201959148734299667557702650531751651327535227863560218545729690659543604095009900332419381553641997122988267447850639225747395194466376585962536831188593109013304931682092757648732341350667466117894720871222898857467743071328856715700909612017257465327159940952463739588066369764068487519091152257034507887325767622636389607647574482386314533189728418139463050525282056286854848657594541741944600275434023126627726422553145010205807298957184961184077418988271664998958665167094098870943000829242322337459927522448917869699264911742363738497174115368387506182064874639990365660747663298422135469541474985406646517002603775315633336308792599987469891142961758329847428851824551642925715246706853396161961749922050974478591741102871212835396635688233210082670499804082468836412641153806182923404282199975286815115918168159150660844952627065254838860050917558181550256974143011501822737688237836483348154746856480707896944198131118374216347356203461465306945351288378365196359421720862279223554679021876732561635331795041292097777063723266429638524768465546712980853567743243992500123879664520923851926379683052244180635955662497603778492135842594899061166312370816987477205639312723202465762174309492441468290443908833277680087721671390163534424436606381734843732857903948715845062904580629155279742266692402882317591210663707578066197531260825688463471810425289908877002151831046985849279710378922154278658518183198962245378155922048842843944173775906645305007414912697095426526559530203430192678216244686414446209868054721096411037492648522353320949907378724272587057553431088005578881133369521565553299057007805832090659474853196974684089102744514897665828978779946316304720183742637922421677383525162333269271786799433303239469188033995169621817284698802708649005593128340189172807347768124858142911216191149695960622629201395330822000170775515688204976278831920643353054133700575629205227718922961807904710720163883153240553372693176931092310575317717225371015168173500114559479897802303300498696697336130341923367068107679399036681715715530792735205213132424786446495582293804859909388903772772513362100882254947693789691457557399227189878992601173461168340412674421682316055537412791119010574474455841667644411641751251820481592532374741886527655368375598987576155376629077139832481689087609549437552359374398688712270125640671755756971318933070644885370992531731654845157143558559003033305089807223662347605093498041058958187238006536787027167719797495171989783926712448431108152506268049354826664960580955572580216311740799973127911165574473774532599315882972632514057170101416781340187252581080432391890415558846347160072513540304403175016040022465006026132666323722546243977519865566528112640003163573313404054236120837968511543327537387061206651389346415645514367610913967268419580670624407037394922779739277662027832359742358615229277423766653857796927211739769014851706490958511549272126596953033800825696507284568143181074370768562140834564328642848183062961673802087522550384312479550320522059488210291302968278508065055400871235315822960976654487302959650618024377382944066279104863170797711446570045265116341341262916736066878233098974567398969425582903150864163670102441738544067038350365199887001072998717006110336700799676000472603700857760111876806861523265716681312142688664227000380415727634477748614494607916437274667181557326502790489596625906063886412373050900819834261950688790850619272662264068424168610214661402249405663303809964116482636899284455217713615485050659588652562437124433461807003866602381495023007825508757532188521723772285063265303058351065590648929164292956097089962224306885795817584027997913091061343305882215750905159282427702196556136908682844992150689647490304192774706993290223644995085641153728171184547182294933479661100907092051839113500944225669260840179580153668363730664792187683220703810099036214900681156609748002209490993902685587717895843263276118931443530531686607427672562416454019533291761525403187053101747204105994375975202023628327970118867232781728374125114923312766719973438732395801564732901469876771954883852192002260625219444002689742572150530162208174182336418475944590543908082456165749884243209413264931272913424494922413359484609367124612670604345405007064186604006038376558467066046814193045524515126305994015177425091830055236523333634973425355526161122209261278935080453327342816405089350806517704329652793951083362891692736573557133120115236791669144624220083678871089860761878604852454676480643824827211493807622242541485827958693201799657633011873515953660214672522581106062785210063816075055970601006972873918785358923577041980536093756977377094660824813675765686018853610601171320574021459034624165060100064198595478647332731381650483981445353392147496310752336628489824589150239283019258879726809386640559607282843244861948193951035553541077482501665336312102338258261425902774961995588327610143335747425742028664610733685677304505041415050925265303402478870711835943409091332414456451045816725784179249601674337202468294273175277592371726154710949589488182639310220988038381144075181023264242220489843959964365260250593515828086617349127548948923264627168179436926248645922074513237139465437473038059724142085282042364447089484406435959243483377069877968153578416618473968510818303909188333069067420667902866493265868674333416773412238913108070498364906509409939884596464113981425361654828715400722525236750435449449330701546620981075030782958387940911178875355725542134338428579991679610561813820322171142516864765801587367508115228181772622423652781074833622723615675145351990819472293242527036152714247731171057096806728029985966626938686080538447138610580188574215458365353456350045779928674565863718113600237334658662068806452381328205983252268671533354610655215543465622839939158054217949560526674948157275461183807680122310589537984525439624782019919453444058743182753110403216164294454539265870591603875838554591709264330984280920139069761811287752721874342470271036214932507207518028149862824421701850694389000649416982696353227146522195421542194856276641603768444821522495985774356361147358044575235241139032952461462318188050115761284833337860569290279725288991011717697181606916428221574498197443650288548555963357680690870231230173942919491860767553999031418548438636116790885348177574021113273583001851614208589604274946673184595908472715354291631256619914566362519574357137209887685242551257644613056278918620093787618143296758094705093446235333312931391170614452754444609588745466525395807633236575535135325124713036442774286269300740285912142686075037431672428317904834554572124370746024347880659377249253909815653601248051570198971475169351276453970846031329406920750581719766951244356827118851729629022144872231968433525237329828814088749861089527077910181200285396648752381596653928259614595243109393233740588551300715518803370036706382944858050462852769841116214299865165752110562074898365525692777064740530852315706324227555915050017128763409843785078781472941075684177785487598528697456815071334288827482598034951899038112601830209677755780633203521546444123232195580551000390134888163815784369100465250924225493004506405111785717546060483524321158345801139836227713891382699496936780215936000336376969866901457832411473029699639259862964772746177706047210571740786599106342929729392754260857214700221702360470814182244541710687131020356799021294501560523189474190359864516498399902355302683152460108450173913517854736704619777639392615000932714176793508383993864868584522951713522405342952170415086632190439277352826774208860354455253799005187739305324565768701314727205503527698425131388152306834369291380247853763631617854940999012952028967957679615867070449067126483930823223821343580284294796254298024841546404100708998256896874215623755435500432464543538893276949581174175892786193682205152522948115411972875019072930157267126377226773799763555689299422978361976208130033093001913524777800252436407952830235300076778486929818798264101907492415494482764046020101476362584163801441380618820569302285217910451903633507611896548659504051587429074458093127990522321382979044533487161534659235736274728575673960640306033192067380413960129213568690718660996601749500901368518372225870072046955453942117465076239624418453584981385245797647814825929941497167135899808150663170271569146996766029099912311963045290307733315338314999910994630393856212478601880016486978840700968764649067077517340408210678216882826483305760387478001702057302769019641723273910260781116501412699637232775811357354929152888986726863127563932018990767741753472697758660646905331376935595941465401922254290038943509000602333797372732284413152702351568456982142258186130184585740022542647403098875125855556510510141804636939587141141349361206423836582736031364709168902869149785217341316617164112849218278664615897801832768008436853116719189693935672163581941910237306665960874513125883224896398279061163410065978068860686075058459333461190179683861062248194207975877041001375746286403325656548023892371336582151071905579681675037173909600207250536382940049440551790568404871815264962527599670766049461982177046190485861663380499021729995087610863830835175042124792979779881174026140904158916576229555222949889540241001927461838715914027148205389789696495321902049679204945774456966941756266172065031861783985147269836550784655579067869632865864132662182926981601721447014002526421260426338342115828934175674572884994334756005798980951684212519486286083624215169872485615089415062829543352643555946152082835626476566160493711134807709256097310207957363073820255890353506683606007046139685673930508585375333252016999065318667958442812918994005653058941703441955588589432389118600870985081788953716929235450351108071674902905684920849988203056887924021258777073392516672425806702641167436568414287364070169864707969213773298605548080124267267455718245077770409256645212667967196243521999976291591447110936351336744237227172288109494964676987779816422484400103604967369227465224760385142722672007593820262171084901051427679809370689579463748267377546304432025464836377010904307044286176766295728847412952308465527166354867423953026819505695710047843175194376218960609683202041507918375182987441647402715221918597805975317030972964425291383191095622969647539751993678595061239194765591160642349520454661699594251583872471637936188297604106763569356047173525586005311148692552114173430320470114876005990794699991245573402340490108367675180337749822306455562123152404694659725812470128054596433123750879248026801939941632882024843631683871608127572994982062453405812245026316666248200333480880233829335385713701634209816246745757019845762110163769831177360515082697216229387221754224054257682258595544588405915830992261702337787428294349528988491346877603873287697583091313011089750276899976030313483572262991764939115663745456558264959444468424229433472734064556804684031251097599682587184666686374035338566721034168780358744654124837858072409974313009697333492600517686476966537378176142100385904772205959651929998356404100458910691527590105103702838484536661410024310706309465732261914267473799102936521513425654203790311636037145524891133342052601399281333466871906407399353309205275393268583237943471357745173293073149421708694375611288605062082425802911621788264071367093573727373171654383437764730931893642565581827273264945588200169669735567236856487316146791287707128062872062787101244994991258205062259046828829814235158175822798405548511764248523487260971913135975231773685968963349278514736540151346468338446286256283728755875410257100031371567106383001108315553888064431474691787315360666883721510239065543431248928071852142967697224727291235230046159035767653771174096429033856595303179879971920379775347733438533699491113018958987141859143760476820039686805088828953683945470386555411961961061422352358951776499069209251459874304824656973796197481661715996532051518106862415959429456392014419984458851236986914878138060550347760822492565005178659058379455128940968360340567000593712513864113656220337082999766771486229572279597821471961082697112496218405806922224002751520697232444905114336296309259126783641455589034769515848298502191091656999104298763721350030541343693429381509741891643947191085047820268968979223535723663742754377192698742125233177225611985537222719171376455825381494205641696087282949080484898486101357275978176460515781098495186244147658595322633109500563789075171498916446201454945726165226586779141486856046860978812001896696856374030569031214255247006964435694985945340682827054318538619058385583295108646486466103380593970662343358502605236321346119618802946915234042317626049295861897689567170110664858012189285991995293297221161283004983950348508585738746321961264916580184688689815943906598777514769405551752678394307414511564012570269431109659720914891361175935086754079543921987039400206431237998689623002299188706433248833271954735312505991663037011560827696820128239512146179109954222322000526109985615186567322692605553381487172750823371922869630371365842917163772593768724988983135292470068475669738643286847521249989176083373872388958178888646505050530743751568195887894191103506443257984812360043758814213542961710637322775429592421000690478390312809851410344633977044636189279573139662692167396922555512459921669049323773482699548942139801482070597192815948648782217743775531387024216236259910967325734232935003777741522398390793070174523208131012598544413648313398094803190495839203979945037489313202117810031338073017822845633610938702657267139868882725081962959148709657827405913275797697097235334431051593023400370031080426764335161565055628925133675250792922310282779829574751974594908483383561666535245104606149042505119148268235340175021937941954336877799029337026516715483506926565612107818056254430993930972623650258888705403438374746546191458890692395989932713003906618608085978256816068945536042421314059920980033761819576682715689574605150246716627120220270272861150233014526571993404282597875420949331008129136136833420225025941222479004348842744885115476428740185593577609644536238712725059780919740922629788306758202005119095194944571762521882387171609726185399005983902456226615328570665390932215262281137888046076283622958665906203308198015857170766499380786911591454338102480990029688471409686209837827726868232204315311843670615690035502588713423281050415717610077421062971603959610530369582339873792214318496086092080749390556018256938655662418675499265194879652340253817867065841642179057238485709564988084930366165663403869803165065390128129046847452274062783522482956489433880483197220081911134353876804081736273494068779784626496559844975457204576677722601315861210632076384534524688804613567330803989979533757932214496618490970206877054503147263566487686998059190360561505242351511110191197130058254448097211330695050262619560999061042777139020662601382044353809650188401812638859675407216603602231504882920445897568463430880192954183934135564328970385156110486775352101538429213699057203209422433762212292027598026376418489754501563644958981794753175974466672150969051806541832130664844573074819457150850352921301089262493499702925061264044077500055807745973539545589122144113513508916393815153107993133836904563525148226197924419433118742514854036015045936642199469071900670609096391920520952614463219020315613136183519229125628463604538539227216198717462983705729665078506906241048693594712253155898936644262785351191610589050288278690146056041336766279193953533651772327159386886462344614648651718917491032883474465902350140497070956757458892572348695855400891126392660253518149787053181970768052102713653878169676822513676452552964358187164142037526546075975267716998038383950434149429110519436057357829328885411629578515040451947304079886670898309746389963197199975110777721548069780321094952758411816534338779984252159601517648126701027792850583226282136498906040586272818030879547969661495739745709533985376619295581087970577501897349552131942639023009001808689589855732148957292822948536348334169090968582026496297565898375569794191810710268596655895323302389015440841528594087873012883076991865907099083323365666837913836649314598018463748237174982870689503794748691287799829270771159720215614878495030791198443380320065190591879045196838020678248449956222488165796276279810135969133437933572897065563294875917616264476899249954166794246755904502586247686005600583029181155215452321983146732661226920933661398248297114584725337618607506461719694163830362578268407450807392041158576875346807569998274436417112805445224759515136611288313729659045485714025040246670527582267307295968956913508497462879492222059586060576255285985407808819847530060954749010008609250221207944968052047295157660805797749019885322848787801568103425654524087905073878202206851383341711701746769798898282008752304192644340790747770460147944612711976541297930972189356970640751069317650103253252790013211961455380385399751845550354321750463556254347061092917577772308630844257425797604994577363823525531265515512704466189812892927291074848556032005046949265341425773795436303275342950170339482798197171926495882380903651523957945357754848241581151017390315360911794257936544260303785150919213657542176184133705709474040419543697061684430995829332758493748514339362413454741831368777412956083435715326509518145336977771334369135321731951666754067580532619257111302518828802347339553892634117327541430795690938298458564816929296238440888904628633642912881022518178312696414409140660706470497756282948281589868522155006010842588644663696640178302341055418465952614039546870367944377106220746300569908627014922557274507805982184730926083323788465109132886958263610114373691431487130505552723904019932516270489607745961420301361235256445733959355013755004015934499774973306246609897685405878312885238828194530961516329785898784900702963836159227551887419664390003035588116927078042088451226821184221574129480950574879696959298118423613008096384429265736258444618456095440785783861991856233412222944147167787951123509666728344763788237468497211392968803481317468275783513623383343606340377809912585939699957609202133282964682112290988403903258785837629943762833346246614289104770639488566048568361805285445684697234426117249368265967164047632977537372367627107713580775948603084694902432375154511276481433770395804644098205182339263213415059029249120021837611062934952019577098807618847351399743883423990275268564587419628325162006525453923707214765693446292402254992149035588538277233440045741192642179445467718686705038198590067757869561789639189585225807667867922866947702092608623569102830398476023803285958627041615698121554402128141008156182739613937575010459672438480177630677445869725162081039616484732712971827094654797151025104551752212777441060782579979121544733962891452660674816662603817395733118286658404880773484364094607941798985643825122827219619232332233251930681210775744285090562277240582659487633156832417710410424395883914070083890162972122015688370102314742041891976142719342927656936223518177723114359749857834683571925134063295429326494197737477746887699501617412886994871754456401481924600727888896326947997390563602570354046159519508639112980448307937418370981573453987889323416056626674108146909270507262455443576444029277756487500685294387425439808469456980630432119145151824065171535898301031789635677455515301452369733528467492729676984900735775092197474463531045543811026846513302949889583356812308095629405042104080426965816298743768416167000006280328461577442251342285292013608797123202814495119621283662705352837811741335786645350079674967867745144684717675846266401838797913104282431045875432161473211161107244415737508101759455537036448979995077074003691601460921283724518201510868854630065222019712315984209218684602513533894758777700336602858555481836731132777487280790691749475738085819699687620715729304250226347411794561880197232553404808383014241877554050889970259705680184241882698184346960232122987967268711130459233274304253636450889333120898678682678755552519078760632554684204692938198271965945399963713160933619093756186592110878086586282053471114953360190024717359613428335387926174033862855548951489475767649274583525219605421550630643084671037524497562084945119260627290144114379347690643189323221282144455571500677903179375354656636947079291891400784492596263381345867645520364269962666172803207556782290904610089210486647435299807795389417406986900366885990641660271027450724957545839583835454388353375719375642589181119729840858408647842064033227060792893523451200751695173454658811522967456740305191875985807962096658124336025160694521524825521504206516353709316355611737335701316245920029737868862350029236544578997127254724571375773431872939520692123113394248815998651882905594794401274497008496230693216216230566127051587331097850912012510900580287246296732950994539969778092393046329146751896604258619721544074801609786773114857507556485014123186704110184249009319324981986722818989404375338795729111687169311025127159252274873741162158859531106519528357006490168425771141976457578444379996050372622216478111131132434645223514019499510425381459516327919919345652557212305595954016287220474277234023596184458196159453063661284146461236466700649682013743906330595702186245778052337519596575031339571422886211831699739910132564458673339859635640320903148427671705549576545262959118805296423344962658717870067720517005045014682244971735702257816671402986396992066204977747891619245720931563050795856960207587162381402195198070040421867786165517947685603164619333779189220866614430592770924125993106077157317014349105697278093770506666987420969629572308336845847431405361860471299470771536647869811581322079162662717968399169212184565598763211562368929484601576964500978170854861741262060707540248484840558026685841628169389349452996708670997222670548288951994044565381831665499050152971601458049110101064269094019662922500702765472014408549280633823571293237435860462143792642741668505382236302244781914510258257823856443265477163900139616586916652406774519475888033009549493582791638260359813349102995057473676278658976630662422775137844232377120308633706354491733255702740729501916372385349859880188961297240416328195308896023603987719344804248106734393601199161958490382087523621063288219271402918530870811607743723564547485235971220124350389893166430639793483532666575885941896114206525525145231510436083624033428655276377027631255648911930653445562936749851236918402174358246936203777386296965785811188462050123520152120766161079709557513688020507132833828216993250370681527241543341785648131242727607660398919204784310523223507987900990568576933360335957343816343446970115690003426254957605800033424668008236456235893272171183605748157622901829570513322200728942826382872100330299476188560957584712144158871467207669976295677146555000449823286132015794128951596815275366365621358761322931698281668862605610085196703927024787787120086654768493492570651598459365406292598070352427942813308386305091570892820767040752762354083580546667536937028723649497575568121913248649252489882061496179733703863916877995543884939010870785067302606171481774828189644546547194028261835650503240570214309158153541850387074427958341561496200816089105663569056342480680090769027395365478504681395674650028558732345146783640980556673875696038454474557300301588255649052909088795413206955242432288415700218366100186720223375543494726690246594013336476495533025284701791058606057737892557201199762962434102283704979831355747788991192819601064375540757412567258476447251043691067457865537909644936161582712927038242288765722760175610988096520074822917493403118618257319861982900734531769676866931601998338014465598531573791587947415918616472418681935615325885372441791978448667348228862855538932491735260718909979789261068186580823367209168212739853639001558267183590258900944386228089967918485744511581364954101101952079113340352335583068445336314060615413785927197946789038466422433912659049415623385059421422594413437880403735034554538301566120864330310943313754648972743199236875281660098050792533276949193555431868923952854248108605881122708907570932171091554018367886589688305800348063362703238252108711845882384726581825088614243734189383749073979856303334626757240898101837551667905647740353900535558733400390903697020131262420778691540141310569874892015375139642549356553962792473745355447840390846204381387770849533648436423587833580266591508426797118846833778917239258659081456533067490559017215022994156264456731093314182197751148106899793358959429891388235784510919411455305676512657761920311643684402641666175594676659531805164801946630434086004792113694982202241313490082880456065190469671568709059682067756741054519834777625677204260726803613590983909747332122093835321291447556114396130565736133721842365703791698411302045421623902590697037953980333973199693122575719022470442458112962172842434621477420208309616907203672907155324088031085930904003890526210906542304684012372304546611943877530088294096517307626749590752016465675226495085725144584488178752224289017317225265540969116697709834291379261556768238476768628802613308731678471090474734377342400334120798778251330373990041250471353414111398965506570351403692107642542320454178841682146956458387829879630388953122700741426206569445102079183847062554000326160075803057203369619501526538504714195862576785634497323780997748826346520820805521945998510095533296780069548327072007064067344686371380333891719041388099704888376927436254464922835780973253928231488818878457393611448509096679654923317382503019518019338152000779328493283998039212605130385274784887358874705752937251038993685201388925976214873792798971951006156137203851191977407813033081995792637692353367599306463267086239704147932710950322514648431507429135257846381924582493888943440657400718784593819363302713787230422965569595578441846273796161380609399799424382746798134432642700798885056623152970420676771142711340973053695505106673446934976324289525385756355579911878425729335428258536366941846965637360336831878415282752016652871700985384090071425262495137812494059573291089886760914880488122388455920066453085949859720977649205680572952966901354490633839741202373910343474481123178047280783501672862787513769690975181626864986270386769597625211124050362836293447866532318004315746596008908400141826135180520349195583282930069541111450581933500347234614028229106233723004591533813701990097142401267605099447603316340690951593983803377580452043479290009840601275812281240289104230249210947845893047375310112382800558475372184153458978984731896260195631817917009713709293102571229128802653304171994451763728911630631119635483692582126970698776592683460813037401218800660814408260078465982129201550549503643081842813374627814885937954754351422890062171988263917342925099969363015226815804072213963746249301908342482506704787099594845751592272507734072190132555137053320881585665708984737382308552138847528198921645954699544545127625450555081625262299191921481078450372170386729920566837166365451078894813984961987025689571998453866245796035358178051451308467576917956154177787197657667491073517390209913107855800703346414615471300233272479020079053380084760052259764504855282633238959536242851211509967371958504674287271453978826709635116882674625147102144426180077858163775134129926249691414568313986654929641346699844967903596850263236818176464142386478548862945307473200891699074320776469747226232632169252215050442741814423213982007900620582521396684008798714292232587247770597591590197149960917725261964784279726949337130735102691428544463016880474227320236765281513977879783853263898408121834441391593105012692697926105814075251187812395247594672268341705257249114711764450386132470911426330275977310774878767210808901059542316343184126759287071448515538696097739307388324050561216298561915552902419699913589416347438828249256458222596585770780397093111683272415688854083649650300570235664515881314221291511158478936845538485503052950427214574014869464726670758868913481760958697763483458922635707466479760035542483650867807588270537735128956585068218834719353613349650254564863757567471782882316394742760806523481074674231078146468488192895944408612661782661946830991211543754206819930335466290337080034217974302730733475155740830523446585072345300913056421139724318659916432418814785392380750879274127974510256981807988239836160474221765157686848155187887774235397731072352899505209969617841862600692793371156053857353828965464195445220063550867922869599371994979761928318603237471980886836146408940961086990556947599185436115804992315463887515908002375273728926091058165596559166435648417564762080574512023732488099448751253583762982183255198264860222526648889013783605317725548255288473990709398489047602454463943669648696850269317197296992754329069829032001562838701825940181253376042293929448488558415124783595364630849763737445034223894404012426062661624863367967011155264656467391617640312150753245488997311670857617740259476432426738114142560108998442959939341123522606415727733983001882213531439862486719872062849687806065576308785216946157791460447220770924592778332156400896576414053583468023573295360397096352944836869351969439098548841686625463453500201022420192852076836307324022053601679726164732225549530679308524606978966990735205207246204644069526801541091760953465624981648391665530774778523614888687515810512618596157698898273373731579312036680022352039722030699610625887751055089393121897677498685984050515688811233561815020712968691913029392834273999203886480021520455049236679235741316288671360575747433503084210564479070825307413311739088298160869966304598342513952680900715163276455828396911218981996832633339160546407533640744596809157609039893406076122876776425026995961532884456195159437134919944367614338492606983746833473093275214830274171990686702027223948747485192560955761026307518462865347614693262723837775845475295580939299875379222604853125474202785366711260419901833821921262814303577502869828279958846840474416371782877477310005500904500768091572555527423551124892895377216786585136544424717176833371604710164752219668697618086138542319479618008802399098506983627838710606533277854794205213259884962521593630922866445168143885239434539079055603983625819495350578916589031296228545742949571482413475053319587701704125951080134263192765877164214826777094564818563185742003807052446763780585387233398394846332093970672440403947693068266659464180406805755525349950154358325942355313865624206396954661402040606894371240860832387917915942743798538129730122534693665275772658175898102410149819907436997316048476813860308037512822455976223636758153716729551815545183979187094115236530756105807239850502685879911826535859291337817316060755515535811096321909494209871994405776622002616819675249301807073881560920439184991031995212863292334080030987006329100758191051000306740903778824181209647987723450175011992402104134999625632186184856471218887282855904386205168172905122738322236049480501923140959594297050744085261478289657162737384783786465441904455890935782313410161507286193969460008874110529399188783958831158276471214954671577965662245840470542260041854929556863424724961207355611749897138968852789459766164207988481338398999298596891299973026744833591811299889730097558586438197886884460923461970477942645475755179481384145939629700848062996745277318659837446204978664718974389704022192010107933338368802519666432090847674486183471738546718309890554628557963142244187303490054570359029112427677432763369778597179000489552132302690921582278222803031304657310295489221342362649158403403113812488458099025728205515724094613215575263542141821108430950414614784139894468979883724429544047167649412333473153735515666572062920551671282839418199610408799162614847507411570670572755586653314945674317477510208474489360541948261597473571651104103640151284952916325654536494286890046637892928618609775854002837275522636970740870416626146737401053488728939952739506638903582891416292990114363379081133649953152577918220900583983484819920853460798364434646624343670199055571846977698854295704386955107418497295757004868086769381702127389331741070400344143749948986575573978746105048878568880172001876770730493414185777430693425126492519189443745509121245355885123482714487451489524260202932310056066454612172217811457247411730447232329048351658529130205224294242446992400694059531553790990412302199234912304534375218472753265731720324392763531763675647146450504403632506598559776902991813224463300560460623627056856274583885872383104012822960035099523047571896700964291789603297962051199731374601949155889853395142492654700069784040690027478175083559627761763005505263432665603693813357675474172689047681301760746643229244742591724514379579473374177851606395151504450494150009887063967951330300602030624807101982765157487608808088198528911006203110134347250217144617639989404004069816023765835319261300924651760282137985439670535137415627091206726788068436811770661108253832273486882915323912318557827141937948240654921783093941407046492440359599839261370845315446532886230209289744167170523583336755083964874516023145588255519228004196017830178191534467042952481762601433779097653518081456137917158397187951120197273338403309806617814624677833015619456536142758937873436708432008061420127353849873371245395236894154853174892318113854791623502689246429789380023882399772500231629827710175069983069262679307491769593277196442801603837024230269933254042588542229061432231767470147647798505956647852593085769999715725364622689759840321852549931451775257919978560868852713957509165759664792903980800734060459925702104524240830122699838464047932948685096538259982187655287040907696626651385667656337017496103250927858419740381253552987023748209699154814689708526384185472232206825453408817073847394920021350978999821059324461301042582575989555887879221839825284913745951491530324797589140476648355104214156496453368939819299705713607471354867013780475027776170084741150600245358357889941894267702517506708229612207292040563798911223233980391889848495237800840488365401024293168366884501468980687513383087130010764249375848406554807946615123223747409410548200070538980115993225359819627531290272100640150241378450158754321339664554545611037984946717439110595375353976204414446697616349332629162541279601137572623221085325942865116239368009860488520781296414692514943651196846335658849717801340309934484468598083960268983422249999701538500560986875422563284293532598671747540153473705228828105823984311531262515684931451695606619727929363221037653131729181149242506893564423458593515808822276393636234432500874708904536481994639458748749045125961137037967849857915197531872430297500019316485682329971701769353267623089394806927571645461471442936921179675510355493419170734023337774172844467551559724681482618220341812795864598171381864286129508765313890311007724254034989498934841867595602723238297502583486147654890606255715400280200946583496838598625858650740879805459050776755733926143373722117299311065303391933338511729907239752486535700490402013620156901417989165635307917220604374320537578425928443307496658118094137738771266790907320639996289210705727715412834052702112802449679431700251651951958413542764255655993424762413952720848352539265878774102914644219171703282082520514233097910768898298526820042019070310198235055176231345518952475034199210928493853700667139298786366727299702482058532146227177930493264883078191516883166111567141758609036939372870986641373567002325218275863580313433245482700752433192096475286460325790862502903966862106554121446912664859915137183459914016391734303908511740505805070476437673279639908020330140529545640683052453373381945259965008434346389473730458686059457137252270391641967909662446876030613579408607835839515849013701413256990592270177027975478343231122006039502680322394429730764870674390177936052807534247424566443895379689853051780659846693332808909490257195514127238638215106399379951415658740572334184234432868753897136071756189604351004847481506213250898592846768094679815858064658044166346537592693836056743846130501368874904002206319520922899147426333114245649239237551420725070968268856342431846199039842418531816045747655990945953165490645685898476963838222638207407837528070675525702863599935449122057341711857335421371171077854227710756696421248215533141539880149779498675477674930116508343800944498592565681073879106890213016094530390651417695200677232385134525722839980322464225885100452307965293275402270558312946153554327701398747369136902818299378769731698862962674334992361445727671459554695271166099508309425398026437197201065660696840724764626052815032621828619689855848786315975967058467028857089911739603674432080708724293524169991146624195147120806863477739510455265032699979755823648909257601615123636838231087148052494366465476123141599209596067145962234478259480975677598591786102322109315714975526710598692007794465876540427317179730349867112353120529636678861109491524441284589987516475866441816183839456770770172545746285433631023477364975519605796197096767371748553356297624028801597615035244009024176762539641705353158741302447870614057106780745691365692338435524828149310264571342739899640826920062119062641552086827696463442782418208105377250959735956090765153520388364641290881743213792627713824300432153850101058300201389543369206803367860311220346003875206537602647765347115856439931030175429011928941173741378713706312348731705270464224163090056804583398528972635668809824082920596168170765686507534522480457299758734592788681815194335001010464167344862341357865073035036814744529940716744356558767760372798430415710403137499215251424679220479318391267868455435783137697886477500906812269204378322155354186781202450261626178765735727473626774135494661656073985200279091035910102856668949488103632811182077864191451416563049981965753885975019716995261797826836325456674931804100501212541604282247650432007808956368445997681932928166566444502868225373327170437648083123047444275896098692236975406731482493307614775995814052360703931820292235745488981586867274714396924586313510097771886108425329212174408835784189378540020610612038871023863684984604718576321831338777969732074302626026738741348627969534363546422062733421708030761676881948083616244822120135275849019570854921470545218571727259458330893320189607099022562464007738606556195591351733988387907796485869252958488024171133932924388502135875692425690579227379761304737426341688473796937143413544033582223585928882144281866643154182812947417534744437672314867134303129394019851423665343614915671955410115101715223642026485099690464319471542843734760349524777079294047920290867459240327162513480623197987438016879738749926221849019290782491080782501431049154113370204465872982602897387985133529092716578640986479016337375676648885292096779614627492886921495971566360952640318144557288101031245662238971543520278400014016173091825069757394853382902885643041600552167874479350982665266410126057221542541488100111691299213338700196621378777367677298227040778537568319584486891432811820192107107187150185915896114796615042948025262073852878051197940190444832302352130451913262835901516071456191209488479185503144457729322355642433635533454133278635273232833228113590666687645127817782187603355586093387866573610768831778825433794693182675358479438253592353730120564569310615814183642480793772924943444890167579063432278398693044657904960186004144138683793436563526781400835642325123466440416451125396417708557800159504272089405462745069913227619219178632336925562388447800477694787601220892915224188550301852220407936030794627464338658231870425766381120289701078480896376784396469911771289299611858853775866317801104703136761771381962068782467684894817543988378082023749043792838140049174273129040210356350019651650868462722092233409345799494062875625898983204277991982682648610719842280801728554803970378771729968237367430910327783447120283167265890178799136599397548646027821695028853992084483425349242060404645345167771147913915457094407098763724463475193391077638631773663970679404612924840172135482003082642867957055129928438191464249186437162298582206826506538368442127859990753936116572506434425999282426399944687042353517712043053674604974175152653341506980686202343473996561369311483129329996302882922732603440115103147818031268312441604438550608403310574860960707183338831771158536922743045492969969941483490057195801072630694128833972899282871639933931433011258109127179953480294033541271740817455190688433686718004052665075644803342574480408668786573858721174536252590198273674545535886034693568637597539450947385650871085541276472602071436580011159105604182275973213805905473370706671991527381310219337825038951817363602898423103918699122811949102168581884223398486652312901937049543457568561608766617162658244324771075586390303424987165755721208245013153050668876577354594388731993105087408498150850918226942348419250142274067079479069289427369273132530549004679438092783850475209035635922497063260427371876385132322859346171305849749002933788795861327699613300641033964061230450083801382823038353459207282146828427412728475331471166515401847156517436440883411436781227158077126742170747759356977056602965108779149605778393639934564385693005767392098668588389236936985379099532341285411133188443731001169932291277489563977978775049881213451666566797770165549390487315127155721008691416406841230463023032181405085975829204326067084330439364293204547477409740890681551249450761085618494186760513917179155841649272891929588589801254960094179832624117129433984443515262776512492506660040172491131164286992198414136259379949257540987809790989731952759528362675864399545759507756937192194169124930686663522012095242715747373017236178649683167906995744299136615613182599761441717011643463041447183951323089568317760277941456903944261924612772642465742307527904341933541376226717760761080112829407868005650637249337839909459801174438497746223135721415019560129723711508670782015435542349729844150667142126830521234763977227716747637358907587618671719237380286105027501465701684730030560381510989659993134217931972214918475180663080680997594780573289477012964805984551663422104812946154695255750605875385263794277643454765812494621578116819799605540235415754088442329101129480857083861871396158699551053274779143581393453234613379563559766001963428528207875151216390198694902367813437922404151447845242910219380050761507666831562265531849128555905020590708399883598330241406905862294553045522552346100437890228623346766779630933432295768883382371382255184625490222982220906570391730682253103169527350891188414524739263334408792795787964951453942826896398378299769123367379442858438129882660602380919734921688391582197295803496064181829108074947111348372125411983447944588837457877759130013606655353224602302540751760496009931771857864079087624596389254729025252505637305597327588972025074419323702717752298925445965426586346958357834348003096401630225925048760957471215769993639700504993721004626391200629321395532971151527644835008150356677277715550806160940565067378641825388704787417363399935713739329603730300254113611892032877819277984622752501661815852964971388381217922605629175013837034155026647914981322889786452214008263978193468467226718296692242123720689343380945430049992306201511816546478260097082756224568807025712415544863453966901924798392366002203172493507570892326158923387644802506988407247504613047962706494666581889536269122352538666924583138827367558017199513270039700904554796681004061796543238532794417806726911920301816463568249335115287155707417020265563596528738504942311014733222219030776128503843987479215128474176597535954932314291536266465597334037851757042621717841896888675330031973436521959627132890829902381104540683620320894173757554141696032477790516438125511207997260744547506194492466888668153225158301913741024297789474758540981040687921942353314159615193938586917379996017002003031023243797287339855846120460035516277448051303250461717403244564331037922818150197163383962528224963121232448522671421308147346295511055485813982625180808697570135346030121339270942908061612717147597053213793788377134223249276988907928362492527924115550396712415538646870035914965793153042920184229222819610499107929198160156086091385475214504902903097430943148414617627818312097254063537555947851214560674991449541420460271929203030364613664533263255252901933226157822974174370381897019548458199093097818311425457576851279095014198464331458500865060749128163876770866965959022640136874537274522095850952587214280884933717616950157490015118971802200647513903794647691494920673210194133764660851139262561975470540021000080977849965758143089598257794104334418947798434735433462507121197762683527894131074037372756790535877725609888308093683222869566789529621488675031562668518141290222241824894559391750966698974032142433875989818596904951875121844031054257810883189631273928999129603766910087274780282630468039973139735384057359192582732642789617730000634031906027029551709094388399688546306456368811844806776400286456375819309786095298788385850586325286807067053107464411236867567671156524105791932950237159228117809395379135225112153304100294164608748591539350940195280437672847269677167033631380725242945230918526361157601824263207009421016800797234950747709187925984012032846383589660692156257896563112454482817640603023775106236682965554204885287982847224372596718060936891927913992244052832219116654747941254640551734971481207572824707243320303539228554798388230706762016162877305407222021835916946159850094211038768893164720310059720324986283077135850109513460701431226242041258426703446365162827326771590336721547469243117634574335226443170451824278625972352056419411217288316139616240152441313907841640414609109398323132350640853653280931207424300591484500869655148570693695056710917811691513247288958547996340443903927094447901082603717404056340474561729758331477693610200969216365287434733055726172499795021328996887959765315504225480563719867574023862149754588521146578227109499447013664823468621030673170914992753094400516436824067069922236694095105481812148826540249897959426405253896929602892346419189882585142050033042031610678361571677382747910697383545815735935677713092977024690304689641500615705097132023300233851972441232587340325791729222340101556613936303427381559074278393167728738696855384086769671982620631196000757157408336055160801507372951717462186456743963185386966746165072348913761481008100772154657827163797433935813941365476236276900423636944587699686817669420654071421846517537990810992236520801755983579264212102848749324925759828653364892509257069062428151216669198788367358130021382347823672691671907707816182294143495838786759203482188943683531371011743195644291261071856956150112099214280505261469461927195108661668242566889293353391840025323014808050436256292347761183880319174021421707519984474311938404077094408437349934394013373459244792557161127449629433539047125148023557347981641644478799577721354098968000191719127747352627741202847148415884720823519336638158225124480925303465553636950532706480553182290180937929471236698763185175767267079982985969321606035638039652834729331458094592617847865140586206435164032480556791804470485430912115766561042494305782019798643777956717067810103714133917404446340522184201113003257540060253529457897795092335892665699152627238526584768119994096524556918584816116324240342655586034374447400221032792510726972300835333257761335142799486722448672457666707681660065987112759394391549491595941774107897753126746114861428852135486237721853162461027885206561006243078091497695535988664119975169090036309205568014631631261928399937166758247972142590705766332719751194882669106076493391323272617385988619917995513720530381851905114509454391507136129606701137102112075201150765045924563466291939041741956126816009302988977241303029007559102374375683146329164774130753675576308843152391520424092835050913339111125395710466330758832696020849992388512008393740570777731214573150086927961507828359238215194471458872342079308440898497176294925362463159286844289600077733299869775599325554424083060087863229555886066077284172844425317466879147762465015746634996122683759955672739593558884827371090957812923270021651211184727621969425356681126690568500023976598101796195241293868527254927864809383111301556837367796730685515021725246461998755022769860741831939773529013187225595624710708051481901073958256901638534370814137719395097487008134109007243672366421770763580477518973948667099022323073808426495121215586399296818833309933151495257964504971988648992711948734205662588210260212392642811454196269953633755740634103448084837666126712385998424363981940197630122194619333412323994737188295238714073724350932098323299361609164251958840224543055713349041737256000758214247275238003544342703511369550821972435211191468373786828110133144775082554317682633017139420518863090502778191658231467375641940729152109982564442495653081788575434937669681332648094361441050939233315150465520300057920215881212365212278980597630944889018159852534706405175609093577756099219453755715100072578346861860766400533040997040279940237026771285752598572675064649838397872777478985261322126956994012821999710335861304893287996148375226444566974599781818311517065880205146716000467264056188015919776895139662779801217859915388156136493385273026846471732632374464654713846609030294364526897315898254667013979664281429875630549976216746738691073443028556445387778919219639487025917255893227183582037613185039755046320256128155491425948129526825088065525716233851321472619133152890210164297599199509019964870477262075308443171837536625966484190807524365408624132100239251083413162284037814133572087299228404553495683849215354150022903385049117613407925751213560903970661518372295138087396811207767403327780207221851829824128486578117692536280607004572218983900437478088540589379232833154233990797540581600697210930948907957842745343483365225662570419552194258223526184949638786755645690696686256631270132979096188626096436721283753770132929157667532629740955821386872927403737770582617607629755104909285988886662998850594667826606095831929979420552325334335367908009607613959996528561706114302441622808334053812132729228844459099060440307175792533778501215391909393214499430238973062657965483117093500105856126850035850451419815745403378949527496787809992213035412321116321555610450186831468488433743499523639631860307271494342800559968344271024563931773699040449010266742010659647999880454175767532898176672456842624505798640563838104391221111306609602855987515038216460767900495080001470355938571745469420755493323694351121601960309221567541092034956901095536442326509604307498010201002569994097692158389778991236641229370036277908966962586523368498796436109506576320373898229720467911199386779047500136438966247001818979646203333327280925884019968623209360064077762428418800998418714092355380067630460909438302381716472342816503015454609746404836394164029719700217677634050459727228851613997459712048341438181171442720960865047975051050181573305085384662615465823986706080568412355663921051697796070894993176021209652829801643696529291319272406189900938850831490570287812770037528360772848742646027957123272172609920451709461802393033612140577339274635467153716834730345895071231162225059977158016260164673760850289796359041874891093441377605400046708115528426989970844936491836917748920582894724343153497533272497764632565999343241544963802574077222339642549187869075269463526674536184054188742076388845184831584041320905237320852418767716101789278233042622508377081094079686955263457214303200624721296769767427572917163171002942371343777727779952029040999443375365268175302653034439090512726777249626737556363120539926054721189969899202676795119072233587390700172014679999290308868179841324992036084466548404377995946855101979368804784623554047515223329908878022463737439319281356320132454761367672610317254423399745136970618763843236840478079219464603624952064028059741787596638216657369173947131503249808168204798126986764724803290205173598216112999263186795214111566042015759877018843006682019059789794039831502992672776485131531396369350978964179674955875889732780610996292077444339907443406728892474126280186990615525421659073385006088909282878920404924998850255236486093842705704941599172885023513059930309000564627595920500936191894750549033477746572821774499068270322763382768270125545815763596922803603296452130699790827054957239890410412428298180395531537556223428823764841917633227896337528230788851162074165003691942515003901385335382595161261343811023280931174834665710842347918794830066704092911880289961237789867421581139622330984612577524391748319351739313065222000436684684662999737304504657248001578678748862600096502759247042193832327157488362851570785496091988539307686449682760471173304185104870605252930252793257128673781795857907556040639073843311099115583556140357610076671515497211881238980403599459070050146162798724846271704112355953172146467912149172126022152637959939194891087084917364621145886022245479091669716626709836960042243112892529838615222788624722828980333448937932207540788019824575757903535985236370690762145184658541032418733374176566567629899836757587087170404170181983921424533645429596652751234649631935835990185866889217028404064902154595352956032313125224974253987410388171579729831331864699295533281917834458145158003730367798755844888564838442208092953397194064919233633848039547968274886009511594414493276614945100709161085909807234186642481884354572304409658026004568997588788488475919118327148483704777764767243930061855047413500270872951117130389173027035116198427355486732914235951271394775949510060100669503464642500869516369243571971186426947909603483662245345487328638199707581963948600652651468009152062335991881419254964434011479987082402887780378117947722363555191651223916461067799178512506722958537167876813887471739293864634748853958284087961913336567261473097273841083729692821691675405546279136907164461926619673812617803413169774104345530740299076659038251723108190522238384300813882445386785590735589685796729907393122057942042695913445601076305967869452875736546666257614511555359783979885916506962273643073299104473692055109386168517341046491425284181262208108254010955695344830678149601537474388305475401106447527752742365766147276525851185858953569569544848543868812361248656301600430937645444239767071974314312069894235905556606135186078179270850077083114911694594954413166375225741062173115921546913452404882807266421491679095660477433178241385233436258305553553659491405933029898610466459080786307536110314772143879396657896860974873334186868913908960699764188737998229360871300114317782189465208390308029847083303480208383564640872527717197202770734047986069065958575850276029752975447486141467128537999823727867855755808320649487593567903005214520122682284868394712081677563870789944588533266596745282805074899327301042937699019069563193784110761720162119995499246421287679521131757745848268665598637938340521063352447345159741643771877371446106777864122974629854064141391592289542780756079264138224560222474763198652790530654492453254518529762513659000375107758015501508643691102190553514812781943797581131063534748479497932448577102985774541218812864563432229061588780140767104949884929057131507220328861652765414234402050694402019484527591043236418837172251582630789488587333415126929406338322036965829337448031908741733181131845612027362813866221882984246425943378631847464906944929298252827196649173136569331399953300658642816270383242484479190458999222298900045474736573898173102963692508776369488076392312036830056676559618211321809016460874918819436543559410060690091121984370048016123124164661873113919579476099808463419040632663886099752180832446631079662236099504414602094083236341878845735797852622102613972075545352772627838007725223458168958353287919106207678119115455832949639051933766281297454099615346849937468701337260681671954538129034449725343127376123505053210904289447299431349019050375320470791279948746099665688649982611846711661495689333565821582889991372922820005472803112274533283399887504486981432110516290460415114063835315748559846153253238698246786705414509945000360755350194413119130892559926060237791765316401328321127784528402806409758223190028027595849196251881302981134793403204788043117301182398519919421167790250132024855832890794153123484789980865185969638201186363576851449939889607000303412423043590378535763687015784841881956226298517324927751833916655021264065538614682621303803871713437805863653901655268366924704853095876498419882853404754941006543319512736271343142041580871331331554921912543233110269746636862808149552455989790636208271971488792300887584702248200270112030427023557931840984941981402969604855768364253305246003451609989688015795300854172846118412823840308852462007659653124005301372844745643389683629457373612999328896333121001533690299212927431766257590503838723679733400718370752917990151267864404342503323704680347244321228842388656796454303673179199732484769441881591123989067817703344230762087639587432203608542153992527967820753584483001711463531170409485476178656031909289416268298505095494567389695468086259780692664223477459764164633441910185580440452615580491341965030557572241252082556475991165066686719456727089127456311561453912140002797231123193861562594482049195052226159771306960388627168665012622520074428219291920312928373513806676116597466840238708443924913275721158308041112036918355503842555985099116273739202008956299822872117767671388233468580270839571330900844717946947878395298714103877747606053421776160440472873578785497668682543088988993523110133852088268938863510182195402071858075252327318915499989458125092364677117433195200720077448250453684717188436135421676995116716722156697452677005073688871589209496752618052552084445685092473948566068713198595628092952384503818181856492843750885217520842738395717101184681142662704958044414152102068729378871623625015643141898224156848116502738805246634630781243080748953724116737257869772676874024674858963076587701172465170142742546948660316761245007890741596587412602336065200212767747346457183657242508699408677953905715053434075774794511847382052648635666895318876167093047121806054577110244642115795037854515047409349913374628108003802664565233339106025080781027120849868810377377885778250251154065796746500531475623347573900949674915930630865328784954701723639417555899522791755703385130462118807684321429738817708077722974980950322400887767002356414605518255246532719003114820826482066593291953297805762595234927755046028520819338319309847637746745637232464131281751298897038273531571531852430773921859541901651714261131336279652648057682484677197093055691859286382931472674626361644294151948404459411600608557149045609978088588208936394509673167816361975812939908347672189887879581198615796175692666257674874543281252474498883798028106022557010892846476825372723560075622969009480013218361377973237837940117666720882664278044445044464701299430091226124981052758851673499723397536559401895701148514807201343912548932762421280423880140732126474434647676959856078816449898073546151708272474495415571181806625715775283189250843559423202949038290450434011990372470752553580469636423748972481511295806786810788595483953318857758156191523728401237600716270314853732100155702864235757472435675569119206930992717498411458960042135567452354205350939719276577475226754891811033857782399105581418706213996062718649377439933835856366277377635895153165087877221916708912742628342868233411434319781007613293893649869519424587344102069566058878067278862419915163289271509141270881736592558561628027810945325754790740071135055262633019877880860124996569920546613468315453590443765585347294603940301845511461597975990927899032767767133858006743609034103350573140055862878577390566703146417308917915629478137572606230130854017213912822447077154563520741195606661458394462306006522051684201141007682841070822931742105477917132348796805248081289866772661042746774796889585743157695353654148897290701317357286979027352444869233366159485574325688775167964311286372513866514143235907598931778564696271009582611836846413740208915671996949241764173364492958784661193743368663225791322042520830203845509323942040428545120395089396036721242657878238864591234999200890911330918809612126697683290936273686741578822899548833636361493745227800023969739713086040245025528060787652339569249393649508257748308302261371554824267306618168678205827404446689509985074552068576690868821140031461201834108021747659666065953693974677316675969645559201996887206736205869021913803275765834656599052288847044694893639368749371240123487359919889585109235540449026718001982084767448058579192813722518799489425599354476463427068809149514089427100386505349716045491964736226513390927820244312340289055921380122576370436241560908189252754679632804447944091314987509798013917077329939712520866961733841689126036011428956272682002394354387503436851969217577733778133767915037253415861748912473037353074776017447849362398363149591450415416556015023766962792081177557697345992728062787172050834657272469807947782710581672139701028718185996370533822910263789937248901133308271446243638069454779587403333595107916682359339311394260376908331066455656736588529071173826148254574092920460207320281472107140285426143789623449756387303248123618781041423088616888147973441502677741080034515946660589811079011528000460156985588498898199875319160925240873353990786913804025493175004607209983763371089320357192245193364942505229772182533742444692000557731812816240499758248331018303527336356997336206321660114277959020504067286660229178591327351263117914730654824809956552770668848719313139878699714363596003448510230539329220564947802975921292034955942094103493733074404158559714975863003402664263773278971957609038959741741499788919112185695628949255355568679868415034256619368536341068395565827290055754917592065930259853794825160945230353523764487009548251721675013679480788929107146087689834413341243930051386509024374788757914908627528447720578088906346550456134228743652138468328883687409842770283635971271057397804276642308353297339534083291404086235949406141147171593592044440014507046744159661231940677310927278209415658101150045085776024774387411826528304475079799974461157260346135780967448416230555483477457362540753704142745934371319217183268260187768953826001730486988475841464743030668653884976070687606547404013249108135775047351203650644238458784595543548008527274163558734235638142864509126688151278277300618782784544425956904741004008817056622740790528439844170198479238424811375036066476655611419091168744780099070874176754117610486788364409926173114016678091232025174429266799022265417707841855394909006033002491161760992444236217103892382563240803945967791622738406695794518408200527096824681634799759357380705406613336136047604268286870656635213641138555278569106691640831824408269715110808908496288630259965262694955307735346428610752357997880283451032455239308720290544409673509455872136200829755582400245244506342764348125363397591496878250303617778402423913635128816998061382930719473368907741964163497471567534459845122022040329505813675213129860561027854082492095255043762990671242643014735485252362996694056014976725747957953830474925598028342258686401161701441685869119377454773895955294040123767657678645724067034695715460622039716973415393509726114523427909590282227580089175540322487460968712748453025400507396859108719089012030385168676227713200835972619951664346058359732604494370701879395640352386360175132655627757344046415377998177170460152320704182707132891234309641788775224860898423320659836975204641404239929422000956854447294452534137841836333212555772821014427591125016525183954483111280033863290464655753221395386075767116526850542029572765179069255071678256650344045259779610054298366484811284250269369553789005653249341448497146441234741570823697537046294647539279724585344305266300444213933455009079886395293670240371013343772609794165113091003887015264897018718425466076557929899932599599903705006259812537430310632613361592078673209704142479041526264979143073380834841314279005951365112375013913393927885215223650666011253363187724014515409803133885698266100326735496414627571897901592498490482613388235330706079726886315187143722095821119920944655281189922108039573666137896202318229481487095092196720290928564143574076048049416267909992679599037668035696837229551358492690528553806613419340578647621283031064271651825391058365201992032529651151742665225167552717477271362047534698700648638388438358728498376691080068501116049019445006128058501013841285300109929606683738751289366185218120442721361441120721892189490211492979830019976525528782390347975459224847650921144614802590409218785453841606744277954032012635312341272595825515151997501504223248831176758390842061486707653498622807243873908330779828051069966288663808173481343824942950271640759738734690529559015465761138409440545770541061310639848323109475043122608029580365739168605425005035068405853250939084969448731652969077406366803078015813174671676654443128797234357592521715220574700507707224050686116629924751739240914457239140781422123686305768209110322500837743522269717703362970659513986521678986212809365205468783140690633744431276102434535536277642205142903895510067475455245277911096707788866647811139912444115954458325919902788530950174638772830498438748926128979338486693529925160008008288455998148079403956619317954437543446550977228600304033776111372780582237125923330242511369399731517212643373253287286537205300764942453454911340608145569839892919505814486643011756096593788765326909856042688704616251941679290954857135867004726500280914485909820092882539561711974463702220496058852989652686499040795145392846230341139344380136699743334522608130174437003336728968610149646888279793779037359684815110367326552049944300832890408619729063333969624710424844134629640957267922027048271931516310393088015673164551295148908790199886103164234351769207200758124029285649714800851138401514659160150631292104589844184339662166401953886915989734889621487987040341671559820780603974345319033027670319017841500420604651712536312483568551407513110072011768556573839559959682535237657172586605441615955271411513221004947480796437226462668905280083917183907322267472902678397486715952560760345954875804491790293861668655613659422078105773588270704889581994566588844848033713266006713066306106891413884456017631576453596831626567075313384613383997621499982188835963634283702990608663510088708611505909788755541322006072451302390631559030637218797688440968893094460002685459342985947174125896702893557923912136388573367625546988068322779163592517388697667250178747810389795743444099320538723878204964816745186111177784137374184834840477228898017186988821628384383829834418251087798426465093462197622212388566966527929945034744781884886516800288154208660030531040292685274099783034733863545386277335876501801698077775270575608927400888323630368632902798506121745459548920683588508350604014525677659183583377022412115490635033095455669867524555335542532521888556020949638871009798782877013144347659788605200498870552796950431918429373669132227812712627506604631850642406161059770101323969313083886211787265127357247141276876879759522147187882740957853684199173186833889881650333786156656136106749597439350111460750286823993412109638474601652789273841994320530578425251758333937452413860988123152176977630337691058419123371277873172124010956337631525245287502776205673211054501897409872510444176764093714815344570953542106853489253081001822794808650532197249533539785289645565957470837660522250354523511387719918487570598764109365705789801070035110772511651464764755935462828389145978396339749809489709497929112596969050129716275494812478076962018750157550331289720434749650860859221696330723060632021038214429311044757889554957114817326478691703294585574649724355370853602528102839153260556453694030921544473139766911041251330210673520895671793560173925001138814990983008298879732815804580845386505436380290811405177513440202038667668006809357021481753903969844563640175680619194942479233745813729476255879765839132081165318351116273348483387430302242800197346144514938052482209874532705431659208894432845423450066352096352887748743021639022377837242477940790689848945244470771613503002523847412514302339631510472634117103401965426259639393211602235486081011741480325392680682255622764842027363063677792391448009261686396787682113983616527103331075277421390789184199602339264016476902190375765471543389912687316875618024387814162866655329951537593776622723084181495271697538875556029870716158102908171728236276300983991404439094194762631034847457240973443029545895377921348462826790691117555778883880523426521867195155630094584653325681152922016305358979792543977353051956870902146189230775362211899757654180478217658328910529045177991842005112905392074484101433288495906947425567340088584985911055016146123423162581697434777436186188484100260050984192740270695664261584554875418543604703308676343372665126999928552980561243136955262598279089520968740405022689939464028909802224629496661074772225552422390931366933495012068081692974665604197950115247067036588984121097441719197910766334473129880763182857649811059313888016054900159038498639456019818574640069217023123795571935012233206778891663079652377769427971775374139507675538095865876193674644949803686083556209856557273353725153649853541613488067230701574746101681766189373837254369913329896373288962920106462192967498277574967533467832344949824250629820135868726662212078285479275746062823108936941541724099213942548561723775485949103922392275007854856534001866028663676364038190053815802172740725641819152566984629865060539853194536169061464610805827349284973932181428199762221481580714510328992420573750446563279050782373507428268375097578754379810524043854402503317431901012660730065684645657934024020678455047058183741185915885619045967215106647788573123315546546793526583964732713785116900261294479597018029140514290259398604814652930889590906133012545584381056981878786870859378508171137252378737649662720943172493920203339897040006540384801517319693425197919772571378209227179095857829255785082527292164264523653882170558416471932704217183152631982304441925259036499559316780601748863306321521543956792220698444857923922707297654801217506695881969389148374938523801045540767944528442732480513068934039602025723738717664003869353413617698752633999446713744218673101269054059464274688497772104682147085445894391611462655781654258700569130782080327070241782190114342571830325329843111298834589331007161392707173851421696406224802339904832909984005726435811945307298551519161654585792805134225794781831461351660361465886753435699648851740030305530266009991704163678966600613288884242907439833442898135105828651382618989066750678466584335310306046373725234570277982615300575817709316475501845275120247184330017575718223634269976389925634357821925535981897595758078934142111260165833923676867605027318277411927964760669617278353720156458776009459415356067722520969725829108120206471057476276926924487811339188685397532716507149087056102229775540365278497349843794430541714403219673100117855633695990343713923675314093507020466701798737753971863216620819361799466775188391188931680376979043808061106377040103685532821988276226915101981944909909020972156402683473544048240249150885892764717110159488974448104078442331696937838484539243556789353264648820032863897995867590723823516673444175505701106950664194468321933531201507895577094914916711340804867309236340068552461536789116416958844088299951950015709219902527508872655731407563606008863114233917739064646540734483671663444298597708613580848538762374297568164443078259125386956068717890719562262728539168746124500850718420720471531866385463257279821038261766668023293622973081391503433974238310038081561496784992732596424244951095965292508553943694881881047718469002095171347513918581941078658050736233568978046390624499494970544228919699998042554130545039411548594719555941461862844986716596214465958178284016016769328504791626235937209252630912288230719843205415648042280166849716702745529642458120739545213427766093567801614791304007660462129364951323902762056150667150719920278492226972150334494086545577527081023043765877625616423487000299410605639853735949270518656430049476920427536370870797259970377530708267854501016458379254147024355176869742571130569921843149845971281548019672548077354587680093274886903646154930385128091080662273228527688827150443776997208138890836573752070730135009517124374385887021527116821814494751398614359297534653063090583815754620651666464076743879217995299100652704659638675171450423791866846874328342765406609820704254043315842476799027128685778590023456088657635235671865321886607717197958755351360053714316744006587318461835764560324827462817149660159155530561153818489214282814712743266916876569997137534740891414631626315929211022477701642301567680155970558699758584821517359645827218733886474552795036108529958885699602810604885075879792013178924910520180439177331354690827038529224919828203232655167671955031565016639491901266525529500878064430646132587285513727327829577428493628420317932773924934030942804251790698513832268767426160779466087722980188441462920915587587205260709211561220597695328605284048242700646781742422644940219862207275024872163535485733125473251492627901243086485224266965047356659286622890096201300410996372287507210630222671823929031443546121821079465373204554970201999741242025545034052170434863626408956896679959387537415874124773287627201733686298193115026104081937601568702044465190623328805406387669465440339295841419094720785560954353427362977100983468021539329988723894650145997296067492718279799429033587067478177359761272066048379097137935656891621440627630300502956837322844489397785455081718245955747260213916983867432713705374788248077929007426675310566792084247373351650311376324642912166947532958592824114218278174106809455562569603487884732020330628808058467184901091860387132367623792011072951871955746749641268216774776070637602474696331537168429033949161050243749319817118040556941226406383255997093173067634106447861398001149694487615626694002600611015070900955939124057746160829298957234893172582005519617040720129894485649344972218956207204230681224087881811718083311507260426474694772053126757516723299509398052461847250534958014613158301237574834220573563279850038055931268854821772792502559113788190425689654005054362599847736143164654947014736164630965676667859829835768083899791673129518090817759436423025881321055785185966752148926232544589801101950902764104018602613742295792128697633696352930456023524580215072326514279424607920871480917539107928351316270041719940775892946794269883404022120170129805947927774781917574956287507861597689869927215670552330586193280775226875912294836492744399630666578415702437064601652950001879985449733762906727625083475286264821647849279969502569906243251238432478332845464847467501615356288081292015178639091651772836148214186909830699281117726779177600462260407504283618741754047043512898286335385209287900138566679769629769265044059162503629981107395936985501196615225195632966261340849363280124303163965374248183346928795359847661513383700088065212283318182770862739113381664069504820671392054092158723131740544486214001682673674048677926319870667398727234514621084623880230224235057746931897202508092441595147461278101743388061275887776672966895839506802381917068774230270485710010502044832063070922897907766059740125809460004947921390811558429469880331319891743037256597329112959275673284635011901383410122077066027682247573978403166351650179592500375645483890149498864041395407230516756460756049670702331848362267511819316372393670174453479388861134743062978600545022838247831022186058485086164060744005275333361343938861542938873588368762551832348492711041054984043021555860207868506937476528204517084702780491163965094309883231366858519807647375355130376609256501640083858829415557112392655194305070697640939234641589365248313070293568386791209443978200918714878177629469309020652344915300618828196742842145213762073561169115520630673504379707107204496085387736899754155981182943429841315112666997012677943905046234898856280544123320088717268067026638986361292025838225892898010160290195553825080232192495171378706468136084790573753969160590974151171698265399445543425783680024660622848143215892110443678739047326483809364449329143819060441014059507545597415492573343537306256038718683061996598801729370232830514109099377510040573295453982563109542276003415927374084774106932761277675278161364565579436530517971144417464241600608693185480164664031718959760500466338804847388596026685794091875188949370489209029195554046017393294528654922289207368353202782985402083565864314324287417431986421448295700099442309050743800562490853954261302395014499762963195116334437943138155602355490253693196663571186879475231179426507176030133436448858439365053387462103929899394015865205437392008786512525574126278760993691793815164613037814757227666308530276617298040127279471097253106917107095391269285059924665167849404278051415944010148249992734191966947454041711011575672101978916777709977214152094322309883460095415788009659365287613001931232701698586290725850539795686657555330516633073523607165376912897841891844255140679719082866087803018023450660829910577286930201441772503189512911104344166201674563387055965869526374890712384493975542882838777671197466370353041511040402646555468326801413365931459292711149073016393774913714331192410239274446136215182146640671874482033492630866223172754414631927442805925654549260601986844227885983940085459077921346719029326381550251587057930643384722148868172871512757681485804491089519429160008951492017174337508743487627273307721761788711604900509484506634553559940535574183176006514594259999138948287442176376056129372192900966143328558088384213700542059146879133873896872304378696006486675300186190518899346013370714776355766721710286097053300411672270040260664455086950491660888158963770865929312435140340564279775814086435699117669665364163359160872484550175838144429720560244501077594826553269312312461374500432357604486520162562894223540141978252233373556213067123077087038250593904649203522363250780008014764090947221517476730783220064158733937795050437123781013354813266614887136095629640167274037564916539609348859512699786258458769784983374029675690418717363302012277457090297797277026822781759135641534378557479068628359188842944653204224730692917662494626831576892514883528882149457196558457002204974965542898710207858946774668641709511619810835005895067391821774741909489187577082942877938891627899288924696216025903831370048218436213710610117357602669397308102041375613282494486986834386638347501649536125675009106339147691037401644448151884058680054745572154219773574298162239299038978669466052783960424932317760625453288792384090647482206026609158664487459141998097953929254176173144838497781252554362621728166662464607871752042935069127909566574562178416745449293887285802401704504266740523505754788167581824656360254154348117234999111803439775923273737606690049215909830004634405883443313658526819889742882265711419537037476688969787592028548561321832592371272035172175195963192860249493717221532636740096947845856227663970001370497271819163514803444429527719137038855443919998575742636492070895109687598216797405566335687995443059884524765058403847960961674803687239089731455511679959333789160597504905314231376599036262547987448426615474115446936514926077991037267519722667863066762084646792629821855420569241650526482926191950768384897407099121729277206349046106427210769837693895707802066173342730387593961035334319452004479436553099622575651696771571899807307198116653726268833263840327644335260285089454008699787799050073635420690675421694137705140001406600595733326506566420200220781393215117190079830852041894642663019583555617990849891674342213300114726917060049495847792780201792071139822622969076001556487957676137261875865625811135328393759041274032137833000852255236782704179639490450074969245975544130701345894398024816440614161367260048675327299296649315140998709244854462129290055598580107441568195347462414737205040073739898704349141446304948949044727403073389951213598756533982952079697862745834079411157828355879837033946813056332014495080873390750013485783311785275483350053453211114281601213592856689650779574394087388570861533141773437122393457367657388273572861421874152772459993281349724862137003050342643271942050335183862617454991723879609167307288117449718917377017907725302135335995288971135483627145327933134106353313764801923472261059175014511633156289125926182576472057441077867390640375538422957430928224177528382195985271994375779890026049606047495981715216537140303742803621247313520886444213877521136227887575875046301708863747846403031907863122680090947471019049867820043224308114802198496481342387131267668733571539528705331939099418434722828225740460037981661150828659831697040034355941424522619838019557153032289527772995141049467284675805854512021428278595992527316107396794413398172144172031238271490719583926698308863222109023074874168284487999852898703673181387855922043040596440690050089381813683817054431158826723717408702348474680049385058745081235165638794216789750729455828341804261527258728404970915865143546442069222279208388129087340250031199363035327018564547982263453177082354936410276061162981992001402247536355594699718463418551596358695730918687520645974541731654844510821154623898397906217937238936870612885008898222116514791904565406633939261110743657066145701017774427002470912638113389420152373917240120846112603363582145839722401965265496137766434795558012251316274600624746864316950231320351062935555681993262982809891057145496114723701896012057105361870502678271424962195984355801484283362100003286169739696051269459604643672889798946726830801479148428773412862764357817045290442386354304465326297406981388139914163459860684002350739381878436815844434793619963119960716287611487349344048794408925314282607098462113108323789697300008465816681372831748117983684715785321891454347189222601443063521500273586204255280684859050125950861212896573928184432878711649804145537953059602925576227946389628061089441911336816362502733236616881730568793535474340592362694358119296028617063261992910944125641526838535837771366570075687927731679366012873142458107478192335660643453966630577086168922819887858333855488786591816168486716804573227004386289980725577996170001070362070420056715090331876720833616448743170788989366277673849893672470448728932876729379680984414045908181913765257921509106668987431771316968151652417001382319284447291233995588004135920521042088155501759888951286424132319154183456269505024533096282222911774096611557844261639632824038650827448236590781602734989090267461756463469101874647413323135168419078881916384991237996328033949928116962310683977257210371467356465256469093383577943542868761846611295733306083571461599451832409215797222763246564276708904769523440561188086321734589400110743448730852676446918726404257890200862719229565882996211422772202531340922400961374931604255108179639070553701653198771149757369499267177325846752820795390516567501959082902604445614826861119041181425279971128281683007338596436759186675028698637830730337996287314516847874450462010123619327744986321808443729579644988797189822867129417614721447874452191926428178107914490070292784717149143600271366477416707370532970810955635492628145709052521752785971042385819600334443667465999366716649907734607012737500897474146902295442950090625578077718073932810939120625068660779499367813455921750466238711896213899057689218205678248274573161580760925820952369896548720482205610726701276331245196290794859544868380880914751395914121224183151546898118895280963239126562731865906645534941431269455965114353618861072352282836417852182412810331920631138600898608371530317491037716969922322945401384972847278661322295281991434972373741274077783904426851791009542270497102171909717849132333881144577801173425033501179843506538434719783062452668856572321111605026919862782552259602725747440130345533052127269489952765726522997444947281454608157322371067887890997989662657172717235794024681653484660789574940147876336136422920883315011178367719230368594371328340619519603257858010275781861533085865089580260905852816883987113655872800153271537157973689072276408913600173062325112709588142870908755110416316826553653763536340160654540679367820526887694053708750247929404318383916672508708780083736070836839387256619328594177949062321362991647704883429733238756191825692921282248453339620354593316711175835338715066665425632943044133742343348458620132702549064061354696866207456093269783951288830077399318216278409376457488022054788740996067950833670254706171595777284493109158936739158153096321249515659505343526274732197435501521746449224725279006902691022060908800995413308923078910679197783625610706702437659991571568213765547974692964008820335879876045622088381047090635763494445542491674706731614661707783115336381741116310865601838330009417237523075510122978139931055314738983624148404731213950932721598987581768837713798770051177981190413090707156325395518346460506990476859855271350913945922193430193367171325232350302247097578683311322737832816644446427320049013190694555061624063240890413508810644151359271282460438410390114069978593835842192309101148029578974446906075795346803678448926445516048561975807758685188338479911179957404464039734071792593264741368137499922053450405928761730244645506256664705777907602269660331120568326678755180721070427812915162927642365946764592124108398294259154263171859197127161687756640309427695844247068213726703874639180307202363219665351652754977667212921722812005436455119440985653834206237208006880981478378539274219301163616066990824007929235764240067943648742633234031579682515380620416841441947144652562362577588628316060037472517632309830907052088113823803144088380949170282219218730190836448957301376157219001804602985125191102984551488571180366983911782990053514552232064267736439439051856627232147550722110625439608560316606261250095653010250382435632299362076678632121373450935706448532367753439221407435378665296062883797297506211929655388767796258202443624870713063510188031243310441683502593908211680504139292785097654025430189071186182544670397434593696430661957133867146674257329061091528051588827611089403577778147198157131148865838039070800923801568706148185752123308081753275629654870388231849422695882440460663462011359336549152759806523701732059260430741800029614675187357925548695018791450826333907974877500100758221826922340866212928310635645562496408320207786466960487366652806746568235176599077113295506508645382607530330123484312442150880188966508536251284604697471974317465212228734025035755100507312733582935922499204058592701356087916652788415658244830063783718433108188734609660343414453027545077111145805256227829860846055543072520485087435250078349468233824611199997582697812975087276824662850707051681592872240026808072901143447993435083179712210831030423737307715589931595837377928417801851156582946463952916203808423892140767715284186451066876199524874793875091334342989291013853739628657185393787225716628177373173440843076668669165673197266327663313145767967302363383135485176561335216311585117209005535707874606702646726672597604624169568991114109922055500075426486215607033056490834746189907894585241092415416411686935348912733718648168022164330414628069815697436301366223310237828127786147559480699667328730052655819215620584768685052529728977439789447662181494136613563521891447435661528639261722934494190140535160587818077250278062160699600222228299100474805972596059831103281181745007677973997837155969417988986486745244086168577626541982258050443739800677920883157668628071884777944118133165567933515592984752807469451661444746898492239419392107467863314776938297860023092380318102970164537628291182877906786698288144070377101626289108988468119146114740184282535026148644988242195816642652807764638376055763959482817406038281842038200201678029971633524095295715319783672640957848457258678227885122184158823244686017644146966229874587509037903447589964876657854022043249725379314692672641709600886869232505053971508096362247358058488476341083604109009901439120911776649459024905774581141939899088908221117596612357125095876779176188936704445670280884032246357434240174665985617127801687644578072128982001752439858362367681915789928097949393091510963679470254278318327349518281004390521632126446697729556949804335874132869300047267800341162207413851511923384645518499707073609925656726426802595454201132084114630376158236635924918561710913578219552080040888453585323690767837081190886459803709242429461094035257879018627573156532048535261169822506784078920991470702971799085085479555368249720696138712998531998299586395093306060940140804426140459923770240148069260155076507100673039623663916284525452424031455353029462457024371553411158611074588370827244623039231491596172272631084962670425754440776925845993197017982426092714144527724807163885792987331337592024144453325809113259945315568409706923729389356093315016849228227459461020054917308097800276347198373855886026147152477028136547785310269937551926923188870457919803545435443665441734817564747633851384656025391990428689261665529146675001628165913496554922121885696996500331685171041491035102461959071848912715415185804725840270390183365966560935342105526446019717295235755770544488856798435013595941596535683208566623678615143816343256659254400995518293844313726062513279917747909105597975074798018485233521097056167568231505134317973256242325446451137592357308895024981173063800516864968162416146330913467027609352727849422333010554707949397618066703439314174365956591703774693133219513662615397053942163056500049333812032933384633432948384495087512855857482274071645116423762001740270815248540915268591695646749293352876206269341607481738957531986505044178737520207490687450770159651650378351821244854456176678429974822953942584752924718490115907993371763812056061051755355453326287699604892050380443454685055495255727912326738041149160336826326845483160804686455834131120183566366907529378383251166422704703805753940336530306955089528570377493704562011769751552819976972535831926556533790235057075771434130694777366561776586776373694466258627321988372171348079886900344811416121681752774144869862364151749532352847905259886445970591834716975657820303694375024470776215306523233585550337852183407916323705159551945276427723614459193171534920140346493064467365188986183570574982245645530042457758599568070913259218368425627329495124390809971995275512832355250690259425144692249712642514152223774546683972584831815637454555637016117597710973357789272235537936496168593332195136010256829779234468789341398012295797352368618939438178707801962795504504228664055108357354011113145749996505224897060095993790058847671963021859482754069318764389030953458559815970904386062207212374657473373976275626960621998692402949027032284772227744956111497042523833844349204309374831382568719243755024060834885542891212323128481383657919616551731519323816930781920615100932322638698926665235755138724317705762873370947766925757295124625519628987128103806182931623089031649658674148868879223793620700567626021039952123758837193953445343337578355643238357536017571249136160490917136928297754421177542414466075482850770029156664876577527122960980753653574221965106226496495448919459172692778333863405265391311483398069084568321003126518628407625810600413025671931474041924638758804984368488021222350975164866679776792159929320115241101793243470315111777510883743717249287545919506097180039655445220571660050856375225088625111710922110480039991623658844963168933497302413462021935395141745352261038504922062598248998286402725291991598292916708402462615460367159826213819435334523466107728543930019383048371456175081355198822692573605384551601621278652493876355264087332334958758276262259268185140112174091638635017504959456309997763046708667001421934667569503704387088724730250545687541170625281828836676594062189423972070054548671372014504024235173955079737704246879225533111044677889698394281696346221987795509508621212983925082003132064763198538059748122857184132578421346247207879706394046223175866746691933474595711367417425457042675932897661388328395079755874857176640350136857538612776087725382787297058751043449829724052840005708319964388733969026273874523208947558278635428485761930833923436262399823689801040196139004811599543212995374989810647285047358235129820920599380844399612057616025190736088411267821101014324225271011196390854805959739180506060372113525297339860528344117091020055576460134757470185584748677395088715246710288030484498592798067494279974987357552970403676629561772369508769681717521785990283899678530614379769142755703402961049928338371747192636529380072939725252464084418398501287360845148838184992281726114224814511920391354515075438254470126532569367095847886376904107508975944815617211694337886907225320850330768648846342901524649523036831867409426227644720907722283860390401166005362123478279015556571534087158321010893226993076026178119029909599625121512948813669640945161948100511726523725177097741794355998572852218588084891723192181593215757615577501390335647726911066915769781086681577971867832640845206243644543379673394792504424278795120538054503964973505882042085326137350129620390143078666559501120836983484593549795733586261416175900556337250652750133731733453876633879638827410939245332402700462662741171420152157721334540163790943778058628902574533723900147646554233263327090712293292172433307653659541566002961160755587852615820102017432510564237377338599486395953860832674826735792990673595065902632738684767171374266086986220944583578337339950622255632999493327079028896976521898803216846356185800219196815142207904863943788155972110371578473419775831920080045781195435075125068379190883198459031103135884410712478230015523085264342704377930883090010958985414293025592535520577630719766278126024378969727490701819965677551444037244591887115231737110051741665714704347246717369580218913189974213443878669882713294976945142589310571835113840600166258284939892065684559108448660603168821049274865857832024315321948502940065634648959586880102046895646184493574266830007666949090540558827019933859738880453034476780684390230702265206624106841194460846623472603265558508969424313388949266111010327440318971900146192546264670910976363413064849081294580829545855927531096082774312764697311242365524332498361408048692521524034907461398655199388570123594403278576163620429292194249077721001448515222308878813051524996263278735489589420367889772528195571860575497718243833121879560143777953650538317918256366243485675812551068263023351472670796749821470971984601814538820384981491893951781372236939252130867644496548461970292489893268929208727753093407698936768070893754597057987496582890233696812274455302691618662979460997372134574798027117425369157363587972344256121062314396902392117038439286738092328680588000807315150552421749142796805294892523242080559165736598349107239441387578237079101081609680561527849107852912812433295983720652762988874033444890991032905605693108560857067478395480104291020956915547188939208547622861978677034175106409383483571077269791366832421948771526603510193232368868830026321358378984471895827767693251551291906751812029469832640201094641896696016080603784828607330521172764733793023710443415610861502750978477912158906734772092567105828674694214297814782965655170665939939329632623548358886619628169165024533181232481691102010175673667814587691830780779466971401723045389371817863392764249475640788622964186697014472254494967817322883529803194300286006328173881023076736658375735861934257659094562126299182037931397222794074701993859854282467359844346908226601988610638164624756272560391189438097725764959238599907450732356896263115587289417384018619317119016852911777638559480630620095478066767348768723580071140068438705668019052911777377071300472811321246523276654960956660583970728201445888724387009141095882103444309506877614252921068872142870476089669637166862534528104138187310983738505719125611819937819432245833097157533211164525653773349184210821115456077400157476150122033442141399330840582019449862916813369365256941643682581122808271531225498822300999834331384511593733929183083513622794723441592200836509308273007790023348120563787735419689845486897983608015703439034191843033977771995960144865907979415787330714850750256029431950486058939053843905071904981733793663548100657764503643407003141857143125633542625524121066308117640307950838051278297926516811888121417615724472259944365297060986688396886971861453012283291289567014676264790692713602610623162673310655865397536877399732902859994704003752238017574780654361320159850477567802459809921850138561535201738997422747696249285716850486018208567154414568262646523990527049026558103455161912391951747570873770780293777381167365540293182579010053298316565882561560767225844602033086846529548344433646991262760818831805475767196157076382028585856769877059424101630600337216833907619237484192157055431466419510633112171675486740071081437470688950659728737351272972002081494698057645203765123853949403054243063651043998391258519866558908995691510590969566339757586485807136077320873261516428877191904934833466621867066634048517460791895385933529562176513125999502115988219339276926174163003017127251716472369343671286302124329920156874695509434112108388737991027244599279158985961169416581453842047197126257446171080427692311160189971545620029546772026148538573921131405376228577822952419950458403573926017943275209216387190984513682858916642539942012127161504784589807033513675889154701378471470858609573689031692686153419335111640909161043468893029800917017773530380811623736179541402034714357885147660409233344601633965933652627510600747305043400678880229893502122878662043388863864068948870491729202140836691947313306635997859881448530043099671921589038396710311417971545237726254197933866235256970490261434646984553860648204273353496227051580420949904362390998916207401129208689593077224197583857430565629366162597037046430604575429619696810198587248705547077601240017719892307746311817525474964204329120235077033476759430272818954631374918950855283033873896787868408398511360273793128357679092366511051093125423451535134829514150001978472233287523153745470932583519692057542434419596541861369742552506187138947729468570551143560196341132154611208543644785262405105844618382198377794415074933114990864278511113053039024695827814897518170310870812026950543399640131104809422668702892205231487408611497552778355771234489222250467728629318225806461657309199855691815413505054219605989860434418403598429456399484835908955525758922075402831530881406453414418485561454070206616429575669849764197511690877894632414407453686056111643761971699761532996637136566363342320704076511853673674616787644060636235223616015474316346009009232933228763675132322869944187774809918550945674756976927336968916276594010448870653801484254962647338383351610433374995521263188935534575024353682512047353689388752919418935796386471650976397159922154809870521986368682760864416535199553151304725502770827781938629405132668849033556681701981570159367536905890231056887081038167281513858416196612771445292747099657940876034537043261450957410989378156345048784206633487397470549756597586538903461071260936095294308303789353613745478655783764005240937671259239930007342968151422216544722120198484060247325243868846474411620784172772482785829771754127940469205691595978882214354638046942967999226172261652873592867796288267718116653966221440847205378588444158141771036780068603025448809178420459810649969317637595664303188554634934896758829199170876319244885026802988618055823270091177384868788757494361458241395074165036023290513483512135208387743190268578678338213744189453032713728600898192547092183937538721333357939130708789437458189858918215084255124865479535452664629026868317468283521738805738894879035599844262820947011010000527502148541319352721950291779655702519910214104899900943530495563717234830745155963337610960362245835601110556484746383669874048437445938321008270721069038945411848099596610935055003121777098465441308192340653075328433842201249135340388761276886085614150923444552856530420064606103042266461270637258509353003904787200408364885749803492076052432501791568726949566808623188114303299768750253211740239376734186178808164968603500625178531846973036768593223665305815345643658023516458237143500353534544013026511510784339859952603449788304105529089756766413659204198118527002284916572665609901273272966121451507031865185563783595660945529030835340230275297834845041433641607178736459145611896941876269764811667185061608140789964178261555722412510676650254465311323413345801291858536142608348532313642696289130096786106353331496345173302843333140165764467540195024988666066184576391979598244094059056001272783421366550565618433718860936680263733441957748391117780990206961001110795116613401374456774471316402994498796919855606543001760202412000153198158775402905080517964630299134869258156480591241915182723183678166677636704359531569450848275047758357559828706736375889421445072482191038715348204911234517319354951194172104268254669982666643317451397747045442417356932402369855927285847742387592521714826922835992551262792693610363896147467078829987408239714284178055602804977412435640603628887918603688266606026582076230409876470585645100530734028598224681598674790622716094797334938460605601479754167817888889769797657436055223442913140927970606558833041185988242051685357880075800373197421991489158002344816475946860355526203031674486067901688600986053163680622472988707125988288731839888842358192112172101259788846991552906877429142319429694675519797076242152329236502608863799297331381677853574866305263213470111892435358177187639790536158969611392213457902932738416743704462272786800110404872252281972422978294931089738177396515872163744145834170360449247516799161665097690055867696904655082501721869459056919262967538927320637771543658889968443168985826418470659045796680981116225978012519570946904605076256685849382156976148674928882998986463250850777446911928641991432271955229638252401567838810303430244645093200981533340806187209778327202272745995144440769798735833441554786638491123588241279212999991537993964075497914110771766057917467125702720547418690614368333100315228825736801348329913939610864315787842224798906795499562732172709888005884123117787805990450227520505717098585082287926984366572267171255370008806827273241476000463794715365663584777009595216913690551484153187427712288353158472365665872576139958088275018351357839720419391466496361558919351398934985951475729189073402396806043000273687718701706482156806112616304810143477583423488753074078415786033626007672368234948283749740670461351924781973727273869177116077915648360272476774311988554575874433721765284800237566435141217792900854098498439509357665422825167302354834012618320399097057210508612192255459854816238799724623305522250396888523307645541906572613432352646435748794403873062084366541153910476236963608119581209603978185092334705441965636073035425956116816764233260835760200648114994900114945520516966593884417037348185403336601717962653530328542227098079154473148350458797366978943248951674670649065870518488150199715749186594132541562640287881341072621490004227713391407537089123923395588611356980501405985856372022603921738167805212184044060996952162807722444306031275496694827491235168156892402962925953869691333989138333511843451255374093729566727155595108655423511061455043879799109913061862044614714735970812107290228788656092492027010560869089233365681479823214633291952998465671503922119763250340283375439740925658467565913898724856193036862827811247091787095898465310481666657602851588886024568370923621904993075831940494806743918342165838061597125354773884924988510829325087679911228508541190287644431323828732693507723264260724913854230169139712053652107136803485103841428219964681384230096813670963856776081147885595892929033824729488040374027781681269157001778728770077575151458409031653342908436335993534555458903996547576636101716402787945390235340235030357100127065547610171577764564086966360632525369781578606231460815096233937458357816889832599594837585720165022288907659200933451693941963618642906288829575969269916389271005157422836281717275754782870818196034435991016376888022014803029900566838289384503404444782712912248010953722005256480535208549087371986897358850057803810242926163671435471118717750400258644205303199699237538655458110047112658699891864922759837211780289333613010441604973390478203796116782892671105251320843678299949580998395322087347685838230356510222867178027715367280712017137372633294029481982943944862223201824281882141576959245809188528552447521736042049623200992483800588342949228865780321250537958814501908056622747438934558375067392756303625616571005265855921545222966058439775211061795725773897240959424570560072202856968973856372497679824486083774347557065594514950987693846500147706410983507682626208120336934179708472129007455857257278708810038755154283411553723981828596077092400678651212221151709704937244564299266139091087497164614447794119629955650904136919839807693113915208785700991186386338485062102552096284624966514418857869700838873309324025614350403228370206711960170018631403431744046992780125820200706416398104872352256753385477344190879270964175302159828585289282079618297448291103592621283331405930608078241570677778433866220435468596821374430016829934271937057321831279473840257710030635403041650278057645155022245747032951189690481752153778579388040589115589087642073173993257927090071364167525186265072657174563523216102592246491858837452650460424069189019652882342798713611600078882938690107957368941486269290895811723290065837969354818270462346165128776458297960629937787455851090265424498371266916766474740065456376458518749894372813145192249020036046010473903920672379679554941644406042577966791625374876080681487784921620433603507197673951560948302974395755531997929901271843884027976311351862238348169317467380807246703830910227757175070004047999125350468086201757409406091097941329145203526264974075393346833970497032950649832587405671590423666976099544660436988904537819103672481297957708277338338861227398624665130825121290326407108347288481785659243817093908978565817004916557334795786062323240352746124696778005906801675270662496626299305411796269529070877923296849926730960521797678368180359134741159361058307014318417861980268067865849041652460244179039598286734742929400643490857862160161735578161248283578556209827242355330545284204935197805586130605348345476437690908688715183367276142250213516880503360688122059273801959823378919933615618198419129481925224098791539858266087178102679552693800892963533390710756013710132413452803897058908281472748879101178094082097280761470587746464469573819720192381233349833817226546762359438998510952467224523534889131366413802072858959893028444183661191169121527135525001394723518500418485154284238466223508856607710214541405703899761177827766169698978095303679893782053796771050049006209496041799442322958330640740587680176096730572044414185239556825492356263213916460924365351473372432703854985834830790656585930671999213046947946939772677896631411855468631259049085377472121843042030421875050845143615579691912271412231092711049866876159992733176928177769359666099667413649975258090616775797675311211087410113166135969613135395842563177314527481155453115612188552336933617579718160713584937150612260271781394570659414143347788872163437613255724869690864366374849093073377361144270022314320093056294372582269321760548783970992979613885395362576878684103441768367538783882303532457166047567029596390898809968914571877439620572950316116686692546166259993886832242840677719804467163621965867254584882682645285118505191905933718908881162622555142885717453069279741021018753562684675702918226964760077309807119923783975021031888301475858834220884465692331815835964457774110979858970309828693694006989106302959922439085661910723880070008545994085187523113683389192522735218990379747867503693766941239965666244944327629516897439294352641550544627078767045729858474820512930486799919120947929842203771053984468264592309402718437184617068479398214287149728354769401949579975409257982495113387888137199449021799517499243964027210722716809527730462916881064950037875114848438748937299891076316795143547277646321311595745924601387424434715940556325602549910067590437464620559167199078076793303112386201625427506529674445613198384780248590457996734877486702112313995128297320684370702325319208968482130203719100674689470840222976468070729460077192359458342391946346582070652442602232264950403952403246854336721940657385478547518888565956543169352536122199230225903742687226969440166847711988756679672376416111429974605282881963898617846167931089534864171319515051854554793973402005457200036839113270226601970244238630993600300244215711984905600045039555224616221089899955892749181257917912413305968466362981392433434839286405053667957098459032383920308202802057980728374895549076459051805041575952618866757741764716685192865771101235395767691448781916544160635963943972825971521748969867999190311445766213009933340431137111731481830208765121483572865532523424047286253631185378841918401876023730767833420483405326961480372486265220161838054856006431080510432864085157665088649791523748009819277818629888743790843704683170413789257153969623144568755733674856825587083818766253412788815123402136579397726677755957596731164290143961308358349049083331123369798863765202930866013661893596385552468655124070806596396084204186147647054105199925056902381916901162727817937687643682103862245828759393234006717339038632351475971422035857692302474124185991503613708857993124702260491913987082044916493153883846445736835774902691449718163030288359342206806096449515349593816872725768977245451935006527722125812459262434569588069274977889951885671818023766508183059944580701163548997419187839971834112636071078618989491760794457698757144420882935766329033285238573139459505012892994924849785011415294472990142404878797359176267840359843880461408107103150638902606245394172426330509622995342276462089031808897038251622673378983183274320025802000158712113128018498898825319738777158684446545110478129980233852977547215176981232442822602177605378833803313243606613788707850413183885065744374104489976532129544148138954937204988663948712837692130322868065209487758017937127823621464676920291619619721390622237787106364880473552557840360905983420019003460908712516619895892201976179585473799530343583223103269393377536672253430061781977854714952152856282554106486428219150596586735652780010083297476395610656824812938175715849121629112945672648362956070195093798124441600589243207495547310863108214772894103885556490231772462979840187799844582293807476669673449048490785805473688541352779577308178967526436084656494824864615566211769470711296603524520366508798630570765137090149998002712956440669550247971312806035270685363371016532526414851966899442626984171655489350703001240729925173697945628415441098687430380203659015022847217685736886774128372903562616434305218205251228095036268545518993302326060342936055347438270312807446724799044006720157700023423792224949955971580908476086657560778192384058689206226959611400586263103547826891089094049564435471077285331072975830217937672452300487753293705104338853101514489550926819284107865028576726193522876187351331523343852900796637767118863709550779989068548313864652935218268185634513167571049540946534712700851020894575142504325892060711409965453435150303725858008736289726241516340399369879989256643655491512605125422361628639966853987001935138635313868818379671168743911562121313526705565169739123089162403027409204238741765724531422532551986120784332348146648441738285203803250216200473058807444763455992955953724288337335994080312688467214486600735856448188763470031466777390173769994409185015828565264262053620084152722560845836284248149659218564896525261088334675182888701700127152075814143373382902382412233401785910921931059782941502154209997700783732816628636907334093730027179432092846945799935915188673631785039170392643095866908884252759958841731919874963197722063520579232373852405333672610625115288124622615340539346228673062483342187056590573026430948557918655490513254419741423065164787484293068420117262329361750904835808710451857168561716630735037455704433403943162790981667491362345084856890602622611030943375065304931195525165547520545102452399398589328118786125379596129579877848958980779451994340320165440507988746390932259943474321569925000818984364589811465131334106152992370705408488579681389662833152525771053058663943694871772108414873522851044507660789242806690455891466519723657337789573707227232365409671063076691234816263380007159057360654100758489827440807895464213660295465215516641503351873475473215449077484757575814182325105638453882661751478065106217030574667804744025501567530984752039757917182247984263859029672544702096640843677374020178047902948226268221700233792162990466554693409992860754472604114182074917619537314536931230049541103725064131524384791463797704749641211675502717130436743404479914393070239359608365188211822134956175033769466132885526647754625487554006673945492460625450664966930085165732470172310057604140310380371774591755130939124338543686578342568939907555016568162501887304523880612585145331669447674983310925044007484245200702180305941779850668915078325198487328036553541836265870508168615597927116394335780337667638100883280639205970090539187971351643528011332910607688855463510702306911000503350696081717159048293146358916543189250046651860610076343115706132799921321018395858750216128823231681343656559466958311228093578894961592246968428442167370588233493467910460393859721010646108540811403622725501854892184547084299806348191740862389212382793981330820363003372089890826456438774902376594438262730693279604711407257428230436882398156565818085546277641226359609004794036483588249841248119569510649877162665608961160229245862688849369120786602554903055773014464629323119028482508572774563355980935694776198085398632382948786301525200999929650543861512695693874969770738790683563993831713643412370157162186505866924778592419177906789013086760783167958702958276573355598067754803494713201014320435960451768956794957108435824096141371961317671358663805099625427295811070330435754232929243865184440614352242650690951330358881882213441686248044179761713877311197602662275333334610169723881849441931097725250122629902798393961037073797042608769973783003480054950788608678902646797233084760809752375728890017901616258390109868810761564925927370830308542951733590473410334641873547145536686129187192585084915777004127516671991717145017935180601394665640417075094036764289504697230714469913584562660770695788803938051600508142263626497997564788610613700872753626517255882417260378528626749761224590475696532571132003233120321288561846276191838352872296355555401625181096555969478137340705318711316753364613805976139242825415495208338207394431916592888155396322011931432313902630123881077668748704460076788232752061108006197943611271464718344541951652846268486728211931569936651675600103549307780704089002106818358186059772600396593520956982772749345331827610394176355014032273626071523600047853425128196521266151175198460052825702728380017621068097173689612580695200185414547896247290255763871677435430558132485021589063120477286844687328121237045825992029318278048057725688192974883886095190949249363125708435007611706007332156061121712559112001757515055580640635241781473758926275424463932985176009332485302074124789133851010027827877681541421652528758863037728597316343084971419101047867537303883051509215456116138270792429774441384103401111137743955237774040901439614001218631770539728240791453133556473671616883024472967771336949644476292927005601702429642299047770757211461652913728660240620128795813553857693279061511992649684042416475827456537451899316611267526213374661436686981072103891623820871296265266583660528298777537855129409175702470296012928651157499347863335843934424313660619721011767477241182010218687226349891375889710134251357263685042241428061610944982429185710099891230042446447693506306033661363627358973918779285397287128202990509401871919176057266473849091161908074790669962043569053517816708074818601962471367675330209395265805609908489162623563744530800709136821925684903589352116523654186267974219208604152966214424616896775087130296973844067943209206872557460164486317674882443025327663806407956335313477703897255203222093378216897878907017023456018387563676007984220580331829574876965829504144046230095238495439656640615724962894062714004229855881778785581298883302886728114712227061507326035616478473975075388228628131323587472467565058034732413129988159109679329700608005947852404453398347873952745709828244791216440637049086223485442924036666032317203338354669283428635252057105653938271957891494354759141747310572155896446041913610584411829482608127756807234536428875259904115671229376211240384347466655111279064751680857139970811365069663279971692567340413739930791112012609789873292599130851440351512863198766811827711025168636297746109179104036101719178357294899087343897037987291278059775345499535792608270964288042804528540882188955563100478733150978562601133236235019810952395537981522194654771255495628843822769064183042348228514029497751618224689001866043938945486649414668106722196004335353895789410619021941100455301978347846404015927799348929909475486078894982612992525442644047826632418586634273734056329718520998305761176806181820591992147284618749600014291057576670191567294386258891900012229924063948248621527108309059516135187567690821858301102256766846267530690713720650108715596961410036057351766781031871104107115428144233489998788713433132477543383317768517400326846424590844804235295517025779633398468120406397104056483522733456349593287736090369713677094582529732400333226587188936393534821731670527648042330586642967109943552222530483032829670445327297757134807406827855403206083022391358329689780913454844878603206633956280987015259597789600479970446383188916406945585672342945352561235675303707993144574115737401900237079386794941011305950687580605661094259070712928279055230909306605425280427795973339482148878082984069269856213876029107968253892851925683559301202672377329239674534532709611841986706357225996282828465537680402388292798148397061654306913366254428975077493614450762704381189199638971161406849401699776345345793361647079068183819944311042006461619282144828937498636484819922480186528631807096691271611178695323518285123444538450265427766348893003090673358804443773337571857903497974228551246117553204512173177403914029323427916801158593621486887199899281144764165430773584229053701309818218064613433200367494403231534327265241343331669824945571480086306718050906188932147991549531661343418223450072257142462307124154492667731960293811860927219488723297642483807418466837706500202406170581169090900917895465551960614040768778983108572283892003781207365078688032996604525864678805156918528496560094839583685846419575361793551368173415344360846074166196485584812950477671463786292834660440880553249209540225850570574591012893088569366940346948630788801532506246986347264390152528716157101349864507223818759616263937904160121703510823287385624116782815564379645238885819639484598354582340073300835317693885049828374198077283298787347790079302904347033535723263877984915754643561274699178414175766282082592923042088664702734235540724039230321965091746965805778984026908808292672597975735502893399490819995363011318863883210967151565513575732095144520348276512794266678390736678917892233543446716814231592899530178179826346810570235646655838947682947785861446986269339230041649446977788883250485077509364965134567615547556802389783246810471043017794810611368929836567172347507141042384589473831230349259763178144228905899013271577793525484282156005180488239937794829272810434102101507471390348021109946816063084628672516047122433645169195538477225609665089495672468737883759987543685387483651177974409373802232903897375504936481046039748745039021056376451049314732202945075801028604893302386619208468977846125657558490980554710980796053440147348528580662506100242772355250953897902726646778266086261796641344173524541061075509731720048507452499407972430936450183312995931203404971736818434844788502351825929013846269996333544186813089515724630143159488024616599682713968464791042350371446356294867681480454749518601591483564601900708402985640391513599302814870221626865582577055892817551507575192393735443995424842805002927239274514005884321535698112775310935308374243488310208069463927230166768452486095380039319046543817739708662979599572826901449299621052435421142356352069912452999674742081214796326959726269741530914754562450186029129847739399720090658941009949536396906133631306386657119947869520929710096972250760908128875161631552084123433260741433013115764192306205614367203356275301832012118517301400246569718258973703017922613083224774092828342371731114448362820385275285700497675314115850702090405908876010357986001011556990133635860745497277668674698371935606276627459318742163063870680322759677079197169112217426173239299226553288568750650974458857887878985976047206243264797296660946215000810989379321597595682264329099162745263451161974716495238402645088988261243984261478476223638382603956190000317319030033171313954918683210055472896335292013052998714367483134100726931059939215979970178758171533173242319717312986356914642077750077380094345142555679231051336702768484118207954969429715132692366995742311422005562423531813983390118296349010257779029152363396868693234793241987359180365939848064694498810196531416232394403710277237107178192692604578997313567754643249294630353561982642601143757207786966478481338907018632480638961770938912043323523681468268938005667693705976727943247990166997402911362707497450949082781104794535146778561004197862038529600858212439061392026765929246537941604118017644549282282329399259083110087955550138400494585884496872886354122295476372281713671583106086920345483206845835184906033698287992336459400480174758376975436568550436982538997856697666551670942061376351530795750061595722240164502447358275654587066401607183367390052506361404235636007065749471904491344304185836173926139531755773792809607448908370061033978871163981419723225871634878471633818401081927275291770737538749886705926255180373202245673602425011322832801315384963253325153679122521544707715833594025289863290830470207229802613310981615871173425222546284316457595740813579756871312429017053192198241180819672876829839298676968591565099945265616858276990146062635049231998477735559571100158982623907754274854649735673558197767191078589146926714951022238095557882920931149892755354784479807562888832265087017071410981565877048357781530983085377600084410549488333428960747335656573743815864082864141372171205172244394354364076097906721726174515291514015652664568537349215820883614975379387188352146011502611282685808423967166515340294661527545968881517570950221226911986162441237651895138969467515699149673985709286451774274862899301594305069693107356225616037687521284703844570165911894400340178306812831655535119453729426182638168409090583070123685464732769879946757640524281257395936693604416637192354985795457139576149395816724002244173454647332699989466576036089389423149955905273829978383212152432493387161535167591967458270294702694646892403548767567412644584425779340467218242517513228081546731271553763328901419616981093173587896749455407138808325986515450323517277075038403883266775534776842734799055551363344238776453628752357732959086551466736775903167091332572350349282577055494894592855554268916620547904208722283402892739655491151608014740775786946228733495239255475376642735485012803519819497773636902394145339014070020591747771879305086320733049304659324174818309198217920040688488145989113929647232908306725416948546874911845582537740947116397280130138388322305483366240405798684029032574428002702702359142731758890826313311244372453133408442170882655391265530097401686937867707876654572723747717965756480827379086325690675885517405578872552831424715320381515424844819585206018619230603423245844354076932878704642333984798733207746034333995257322818766772635594875100802312758740381414151854722125523283852976920064666220057628055078287119127014650710249517166667147859133018383842971541653451081237005271984167213207540010115176629985163440167799664578738194046198520791457647020782931741700414575313372019723347367267059066267130987707973781946720910817030403930263461548390312723223662811214213326762841581756635037039756148665722219751836248518314652575354998766773520614004775615048300680665374965224234938898788906581124672519126318140962076336754706346534411173581541677547587718965252551526648195283735942859837981442977580499645318987821808703123709223517296369837026175029380017113116954573080658809601738773987523757988288155953640952581903062426017094951791861228808539652199440087352879273932279414931841155982841063736505561712891750983635876487068083626965406995868541150171360392947000369241348706640666612957154730862996197226053246097821487708666364487672627059493218911764219368123561937069262116823184942809100283014947769073291181002780752472475762583287093066274377590349223000724122366820140719142988495401775472381175953341946766121694941576922284301649496426908836816220279278215700642975448115315927993863584879848792433499574333361220236279604917389135740014477633261332244954973678152986149388264365272922649010459291221558660216177883090050867302504554571129262629613552406157192148142109075746508773389398043012950873595627677748743000618016913679858528438206899654911328029410572775331126202998156487450655547765901311590457366446574229601527908711404264718919051224011967229663371449324017578494695509259025985856309524623444641592089883438440464545308620712999321506243261197455989634938198508227239331598511675031677836821373995577888751660788924241662254511499621687067036474878235258444992831460631901937370934783029802938988268579258410639968736357575985447214693867824432915001856151000362889056866346490661144282677501377236134155888385871053716216220905678048799702268176456155873568341723097217755919349286788509600954010016081730816332121697958467825518061276921096645457066062142269592541657712168734342538097002082442267091245937504587841569256638849440718094153776806685517258122585876445640793433228402343948550262128228482033740613986963118334051829640629047339998200422017423030433628972084793529201334194179081574058894647069684096923692763462589493113385103068073178100775680036604960958620904662399010638667562020419148286462603806274799517323560800331000371414720185286545521792494113160379680910897754433751590910761558079693494294087380579138992104606231893510132739868711501111039405404852172396598527029513575639506630807952954877292384668227623487290906251192287912333030941367976649867604377964740479998092479384721526806748365538172114285279775608730595801062995126666656496115977416866530844915097446113135691092410440847411089616742887586890631914677364069301015991717418931691812027066582362486934153514655966797463917319736706808705497351166900097559837147770132855384643245295713288561220729708596799448741363204363554423862490644342312843382658079300902710433409093943230075658880968720170213542015190430031514659349391127339062920866560738272957767066563368838186458036497641042459991510238682691709958970709688519023425125361685751303226681470597176200475311692888400168739961416381567764707356854522291774816014597042624888904925465436728593072855912613847372159565598643389797258641432121014656144779203020002370188780028266441174371672386863330706107160318885021833997358518662693307180248298689031959803301092582760842083356518796129303535279592238947151907667371402930428416750835993987204012730223825522455639041778720561174389464602604791732078616721346991398370330571981529406515581962567986129617377349739037824975429858910602972625931300686341434532562986077530922561390844776557791093257255447127551816345424894250100722369627189641306167481758323939124666869163846119609598085446282869166710465261481535899178141458457175918756875964082370427748639882733962301781388559973595497540964145679179274140274834613987011487034309250962755923107838083577301468690349154613099737263567312120976435066501021189674596544958218997061788731025815733633167937553737413354026895161037636005852724400264516795691893448020950324136554429275493616212543159631357649153119581636721947758846611132956405280512099333914854842745146439654926499970460846646715887609686165277257923448906731366956651639611025739227500951980791714894690039334073200459651629848062119109303054057562630601562686309433858449866360096523318300085261400280875378288865355779605433595789059276350922386421856841350437434151880558191513860431253330239842426960595426118490565598880547664823478641884270393033450099202358668918325184082245723178532782336959439873771416875999515061489400668440968215704481429254183619739762296506276478117122294683457371526070609710322439630615383971275660317348984887933742878685527422449305340053612256775844346508884228548478476301706464767375530461607495275969610407133010847461726722338761360051611139782443400000487439670196021101350834252127367148311263776855566229954333806059679045075559715289183115132075133437859838121716340762802765155573479001369542963880632190416143122576200114172231122221563175189748042662957362118320559448529098968829124286162310534278493081376692166366491526347252143829722327211061661595005068085223137344465340114491602094201619886934537763375747447935528875475850436224879973179834746462148862402409435447730704354584864888927848152632415544117801847492877615311138682216292298684153153386986556621772712813549147365569291410717152159836421448634278469408677568975673909878689321709095078516928381867532352890250050920816862639869148523643430080272748320501733213650078385024076971916079982577440475929940046617206613447721259945670929399996221278132756548169376812398436172232323879524445354491094102789930753769438196040685431060563593895089761752163724203829625215553464150613944308375602342671023862510259660893278018912057324905278110317526831800200001040372089344002672748560635377256284297892284948950682461530742796267350105899642742412059061313251619211025679021479303488922478900882863172089969955667877905628161724401506784104613068364226895911009616836715344145418920815982338284978298108900183316331468068868324769797630849110085502404164307781666745946139256709047225050702330479101710222249302077537314470353206515727176089300416236442346979513454482243018944621479743173460159395094264539451975471519815053636274021363904039045967473857544522418960290722546699621181959854655499053977057012086852287590002471809389517606717734864274929025311946784391829610476074866518212018189036769393046715116950605382245873724822300976368616734207478202595433391165920231781791453071797730495404489425129410646847038494022187023841044317753256319929124223852611900518548465648033636085129812144793040759603170305312097433535575147767001172955422038264295369242055174722571915199479825043103790947857913404261350294646621942169331006672270297757174591911760357332097736592189241708690101943079339447669936512129237746800831441024700022401137781313855649446481492057007935299383325550162517815440595367828221754213285430102804312035442755553404169473807850728351571697857192897928995043413741635617875630049224567007903081233396129859796846247185081643650441699355619645754572663443228399410373213670977966857946117337109130749798137601529314007482181079788473210120278715894707803988283529075975760611577351191768597840370049078908549783153326081743044963421716573352225809777629497381489763951159059984785470423374210003819326095947055441726950695001747441478123963015177014675543663603131613957951375542822669108906366113787520920563126872567945528719496655400369648714078544780567590256943587866878208150176231399634958581910151249489023427415683396689756295940881519121729957155142284569686640933674701036357851170559570002727457610758059656304096213835501449439621876837045487350897493547825791280859977088753936453817918369248112635202169865308190230309556800825867819471304166392932285443025449326761149877540598977277508234613087428389362968798234350040345094272036087500275419526875614677132061465630831501605061837314045035493962910304977605544497355992890435849483402261705299178397531782114268779516122518770796009262249743506527058820005483654790081173319545710904765281442067550694997316841409888688921115363317512077912251429470028346983707167157875845144093661265730198918883162351859014527247807869175397791459866127561785859626254043730674649604738507174301157941001333284115836480086149467112279827359308960723778473555288187689195705020860313523346716418576276138594912113045492047607798578325225085863801604070304632472152684386921507657124732498500247126160477637952762701191685311682888112663195250114168023343196970840592737614216703200122304615505607556253920512634007508695781960273007388809643752961848047211407698867561297758777634418064559357183055218112144648778139485353365113398908562904931036602022320934136453782336315146645848328440693220527690562996957839666946839794155001971042374065763826176707151634804786816168391793910276143953788696080897808998184748878348503750889721496452030114241093038029270756321459964699290575347220900839620963789082884135698564166916038055496040830656682485140509826622717847256341984080565177263499700407892197125673270684682336108128982149812616703874652815215251019826176555498360996926574140401602602731228525962015558020384885703987324079068208098384450434147515934640407552322587984492859356631953245646696013204842945751276204968358593315416068724898820195175060435626522649235491136705762947666124084348753581374621774960171553403043867413091591238128105196577430351912573150906788838109771656633054497799997220789684447831342482327319480718959670146949205903303114192851232953158417542359658491579491689220825394783081193725700384656352163844438881321628804055772712641860744962921706942218733051179607717483332734903223326091989824345033861860011776787892535259805963958152183021747775369509737121286432181509003345276349489667150607384636754002993460069598443279293875518997798212136668194313672223390205592783454305258092249018541909100061417510790540204522029838337088659196791123854918813861208310522624093433259099745169195520211548620479092569196419461786357625115307467015257046703499769714583444008510853477745742073075616275200988771049558523236480944212395205934028385581529302453488359022072060106446965941816266691919253103744430830962130368258000920579609890714233777113801827292577304412554156943219500787076967373548765671240445428834461553888427736780720083836640010320652089567139468241309803465384747479084689751425843395596318198565152866233210470740242002236768274248672301739873281032393665957172301687318272744011548992538170549506269372750266087831362607627862998534660604823913389624015678494610759540226126189870246951610523877755231487693231520735629643582126705953148724086060041246581781252959900473374017013753776484195880637726311297388948726650392414179321192493681479608531033326657147099551376755526725693208163622447721265129676131610878202376781083012579530122574419985034658742058580121259605157596496946390188950169138631042845720507929170944580528211522155985117156543772972545566946150079139252329254618098214922377248997308109935648797363493202838928292585344576249538445981962146954808842336146686816413737032829100543834227034366113112573669647072716706301122361025808052061846103293769579525998322505760085198935218867194976907247872481947403257989909803449894872355235930530970941915892443696956503230278595601429235779519571826740370281035504927609895972873648903745599983365084183271769487590414793041706344064234385864762713821827769036079370956988827861390687827825867877571343916664932516019957731242054957003087401865702194382315335187938444411632046756224570170231570684008544379069387092556821953859260370590237064666026310283005776822866597583507102805592632683895801919932749321241250924102929683148377705964121359960274910780508455348375130266161285125445611556576713914269937239354338951757383669318369427378032068326996476063780572505908487818933855147042192198357205826845649588244400075278332351424001683808888820718763301122828823141318730999825616405857779680251499957750251378564553504088744855275357896071938426187672494874151685323873566251903087348389429896159094650536271120428290065539817046659279638201466797634662316383939010496204098962009628593070017395985459445722107226077149830227474043851186952418570767475942236156521445131499130314217097033206194776110860516125953987130473972401972084575961080283230467772023663597462595355506656009301432365498429254063368091534327234588406642922249089917938431595479993420884935947341693379342368199336795588521123402188167197560566929943130954147256079231280002226397405837054140395921426427286506445472924493324259832824215163807631333552290617812084373186930947382189132231832707635282559780871604488176388638698438972301310192230436467003646073888585533346416484639039832356302564867202155655295234913691789014030062991800218125302204021682242978816619610519316504256638698371284363599616931607583777936899091591961387669914911772771964864771619861828861658964963217069334628208955702005692032715228756114529368514439559795455123660775311052234794828249045387481709625639942026919970506430960719139316607531201480604065487488252143653013514724522594201242613134676010923919836298567978219877992464217548155272687558933224778672502423902689143409751063971219616762416269466974255488636057040603017770486316134094479744149143744282728996845948756315752772681269173061427730455521461641162820598514308681002782595645674537428711667928286425836288141451307280346238182964294679205422359691021661819831684340801135057205371935819927305003836056890424155835547143202476579716288330108638534502097211394037262712306360437220474125045119182444054441202107177745571517156858013328828705711691809181446082170338734896451801716205841731168486616583486831329009959860283406946726489945201538134090484060910516957394672536253125483539343236065980387108579032191034476436468788648268658776402984557304119012870810650604735429081404956515219184470515344618662846698287535728445545443021889335755115962467538336599870214467246014437244596572416366459552843769407516093695964357981732229898525670464657217736636011250984249451768063379752635487222144351281811213020701554076063339561400338941982658627544316839413461601210123962261516676036316054080641715713098486085431845997768722694091062384998282374616877665289193185486054238211848941423873727542167702134976401875134747308109034197498974119521009013045609204372307813210638168146334109540440168575870586953630466506004221093969593554204292558194238888803789088569785588312833128688696445257361370104476322251639294020240507182147002458741592148214784776849332564315275866874145467634631860535082832725634492129632160867022145653531139940748735483048358903637030087027178769248321647710000598914848219256449816296735430316276890214270500292199235060894663380939515457782367563993100661530293925259927952210892569273685702700369151625698223573547639731848551181726640267836576494226773930200928289701087435815193591459417516681147318354526986090392452782543053099102004174724413311551081898376478603164959265533163904798388726504199499685614472154960671275150565338533338436468906358252097047223597956078748111226757710114604944577340408921542141537084640468097317711733975868516593255139059373719649472426628003369799285467394251176540360580985849973734826022304949196911627993741444290025339392243092872844198792827039827392926586431095256711879052899423706309746843922649326999196232257712595780143009136713499223916415331748376320563606083933752599612503086686393308756392631740525007850112635493235423684716414119254210716069755353030591259061091330980562884965298674180428658085631040661415616207551519867859762019505657407372427601568457668511087295741692332263096538791910263665162138777858031099992948922654429898093457532420469448766589383615088579878829138655089806969165810042373712604208819369690063317096384341956373947788821503844045300567701808779755155574479353806030961289622933010413192132128738798270072254854847212579754565807634142469813045586835569430775931095340744494796103674828551345758552328795181268427184248138246510006061610565987979427305139897029543479505164901573256906949850146284002759820366174618563108770585776353591183561202303492863915705717392237135178687354891084581392302393184747744611290777352093760970225381833335574728182759751189391048384506730055341465551777728460319335205650066859159197073338954400547061472686724168834148180829446711011879007366496576125344719940101732192977642043766289091934452287383444190010048396364074723162942120594011259296374777033843920712946156516262796268299249499166888023047648544391023833402916074054942137725813669671767711608663360633319612797229418657624748091617424933403457652077503235951818835698333975806050531086778103845508116982380720234308147442986120753479721888142195377282882502591403802349140162854409350386532720581751505702312478812907089553181214718165035025561722282105911686408527907087765233652389514264591775646333733814026563580346191020466540001417449535712539128447648261861137227560684535135360926856661399796294260043083840145130396531322788746373825431970039930464407349392257327223791043453105185182969786962070476895319880365635869480281558242647728389653448512662070710923796388686010029307996204583332708770324119340584495123862772412188291690040166927319605949989390216418975803011272408480158668185505340023670052593274642331940463676795700645396745599379988170689223063184056545524420572809299905869095667364066318555844478993470794366622380181807273072804411225511620930101986337661721271426543417084297508443844038808790511902970637349623624671361408862607345035845055405159596405203247259781079971374598213638450268861113471585514004535516252697871206313627200861092465596252197940985206949632385048502834206883267250784930504368053538790649734739037700124326801279987755609333948593715615068159912739899989800313585039014417455396872461713919688134786712716511186415875036925125155202622248359342038787151885202348424482564176265135093991792564205862760645419085585266632651981427970139848828410971928649152303611674925493133204339127221728709108188849523907297274130450244629977305508364567580252721688404221864595488026105155383688463660083419213552439915069411431887926500076991573594835783050102050341773670112226328325193119878448571107014577975296031889502364482419509019324047668018394526004851577518064712389324622851678205321363933602819818180971400181616819563567712102480672637153170865918754734029709515769948217896715232599217153412257260936850115275588008212638896315650382354766404643418119298530201355898657204754105771905435869831102945120239877190995367440871421051772753900158903652223577658751578441019106830494243712199236677568225473890794315593796120544365601539420868575050877101294459624930746576902201098700816574409619046070457688137866590373700704888337817784454794500561811959184403244813372113494713923315968473343480264641204074324681861103405447918542390052059624581742279172047523958754842999149817941357303394766097464174352137381833427113079636380572771968307736320309992044320431739568348717113418811912792955649974939422215133612310248217610292152343241090953321119552949808986795044821248959381339487761402094506407883782035209670507026002325980080878982825811123217619972898640545778744771954064286770885573151568078157821833643567091303994103083373360664087581145235285682990822419064124526760322172173372364510905933326604705699823584899480333084827884761500284878997083418563645331989021744807827891118911394528035360004977918682282406987463298359425721834666282976404597724478266399533096038325706582251884853673432453835497867862166228844257565671256459907967589364431896790911250062219612114109730465864053019927506423587528366755388207126326762058216566283325692166575694233734434756482569649718809586460472111377264506118613399852172941812937011231190317162727704944474239825036712586590870146091970659687630408544752289727812709175143958883098525892309897715643477989887534945310182918835018762078093570631999438884823548491444796918112434834308284867166092960365903885055563857606128298704789452046468185151619395885781233190839713961210046982015332079786602360980300153409269904443567019479950635586859134186496196199453983980430654766716699620962776086223437890398624865059312678824286981822530688042037976393521038287865063518886529863616270824553651346572116463678635837230431109380391049946614122451093348309244616205975656145283836037516721145959920387945735867745095824689644122037767753912437516614602185762309126938742971006786677004058257818289239254748761183559214314810684549671563742407895045263554554901092958791841980046048806575044842511016791359342099015419887623590612496661233930681388185489634719031446167822379863911767729151306071266173618520285215886111472249966830603543687940338605361184772209173573359801247011060161224945593652244933501728375427493497119671429356730554169564547840009930495119763446601352299026827612755977673247771120935897062946068424287784326041439428050061164149373432001805945970564756800760043615573397618118491907919272702155190064015547641810571591391268470040190392463223861100755233582259237054864078128803544706159681959387810668916920291690489601928200535609877562852137724479351338367788329903408107297695964793837382581858602939388452909260523794320076972786929024607295987082823315410344979076641361920690918600410937562431287666950188143320235353306185378781128153100341307060060011707765381923462112252625117869339457078854492154367188341732108650211247062668392462189889619696118452156181580604076626063304497390448305616199857751759084112508791751300705546964124043646859958473280967206092981848931149249574938949715019611756690295209355221678432600316462495175603488881936252103175848806342960134117266937902884628823626552771468444866691222991220709932692479670554021339504002421659486325897987115134055715213543450128478640021921970563751351195467967812688776034674601024255282499057041964425158682055690359144377937753792765943061217754847535030590424609530552475035655246825260566416156380667177274253760979416101742258324886134362645932824812654039239759028987794537235891731756886625350360069116276499825428253966241338342974028367587406295041268200210416667431421620663189347960812142663547701612141591816441320897491260572573444608186250764282746660109659334651099845917697251335856700945597676965794806548496013268954749089126786032545446186268247902676975691877641958247442529967766971486813188516006594727749913942564529196259152676511037912507226309054444954504970062233867309906812669719233576082203926693422813201328342519841963303465586160141947537386414136245284343901965325528072803810202813926139475059086278386287583684623027835625785379390725026500568126850609203575558925840331289312399635563977863499237274428293917849833220890424412491329470382178048794374789303266575159843046896459837816131257433663877303161620172648265560238057019278265261492391857553966630584886173680229295934529291610036126992920628864802162228110560968790319005260232099332637877186085941914588819169062872860281336626255164475399826520425277891809556193333314178987889142240020952929288296214483043234031243202745515955867478227954501353479813740037508713319526619339775091825375904754196504714286078314908191500254823925035936110711447759743368963122087425616952291053114755454727595421283177543621576066496861415194268505127887042701996565254298224223877993595897532900827851120143710824935134282516978859495381364169463493889194233465081827048339578796966831871527475390495834458368779908029281547109023669123331385207711536599830633245048235021644462749986539084980909300830002934691644796100389297185531210797933517908391056519484145858737106803856204685102485954505472646221926515494611111055343399610737692988832378813573553911505666006069016823842717025083937008117004263810302514163901059457165943250002972842967062137225598440584939725540517710194998551549080745323496168860050035369431314462541083673425247460034476095708479918461764746721577467641650276358449597808669219957129522742992887585313018082455277647587478701537401152641876418856811868438882771014279064608931445170306924154538117464160037251367664705043374407176952757919362283384966215333251158916172693406565331161719456961803746469693852123382718629463120645593139667066734016323016786174342646375216076451338215107127964595793688612726545632435894631615384718051426252131939884057509386143587188478443746272347802704645366694672469468461493574526371857010321082903063830675637462068840186643163303897566437220972260817059125120321885865700239964239939548095728523786085668156889137156202782314192157379046506746112996497954191478092989163796097047547700518514776659550594212909317657269165728143788469174919707062296460279332276144276740946273754920501530500104196163629294595419778377630286617886665361621845758072930280319600387261211635435945197377962981922369140504537023643132960356950928888844010724818035683385624134384788386970518224612144408607524737057483144390646144407636403415646110431797734853911098837534315355994228468411297883335654267729761425552302924631241417980721111259209363424530606768726348458524894834108581421423357694962007626683081117934942882743260418972983041293163211719288431589394527786984460024909065657173492818660503427244189373912392648344912062942945726629465177057111578151460656627599001311692460065555528547333400359607432599373762701689768659281980069761103375040968198367991417702432047403416642739517500391371969509257386281026999176460268956060033659587403133233367124286862367957431829807947754961001097125214686733282395658062302937997296811859461676541265625625889562868106678823296349100563585384250478798593151315121943887074013673507538932457257170821766671228547125702015208163502412281587705578420299154504060728839845798737377850042232370059700092846278950742380873617651116678664021455960944078290238843478543525274488679757204704848132110526925120071520839685518318079344643984351524194246632707956359588588647926338423570656503651644501222811168270149775333604585338593227974787474547059158875740906369761646187356667511003687251977167895416816002449068393740231923687877533005861727465262381736925527081499708276910007441988310266504746223851840714157401422059807376459955451647004107556071522628668085597024800298609663160654710533698290231520757303308208846885754367785840298478658979288716941314796338705706051671903668319781870326396826387074653634858342848777500068061243681901510463102856211420056221321527956433450203664123635675126786423332394524315848148240199007042906191395550349443994830273397261670734760720786510436448792898307260273654226499133869320572518791592441311129086173566101991725711132225858544742006925114983864905311522366746052874417100338019752074338428691516146665079209235567785206957071332179222745823439656747155374604240462127478011716725088087437667449959758696670249582163338036939588894368690796399655141397396081646013738622991376447385209015356247685359028827587018183335677632025176120588200737833232133287728221445662549155694890282824067898522678472376386935399864444986995445236594804075883837165546126344924437477777024334006827521044708148238426435108558538910688883328601648949006993903764530464194853199345304225976142187002007542908830689145511562857446387690781850994873579340329752707037707836517439208516753201779983455242501955558099565972600350223669486153513024561393506800651256972995894846056589255885222802954978192761159943443240148432035763653424895862431825814806883546702245467040558274522482628696547173329410106653474696588901715033291527827327136756149774204213813057203365263873034479959130443510610345856046455347887324860415620957606696818082156873475658334670544941415760475043973571699028192621240827711441799438460106017351310045224695469195725104207827916246724171425394670933529092112232510600439532007995539290364319499231687823586496423878265439342519566860554466400943669245063097900750719245789359913713879740173007305560853581270223552847552912324832820382230368595681056799934360667450740692375436288177403523901574958753811612091452633372556801641402163609755221923310414154239449568785421573552754210482978782853971640082682406800681454398330030942477857773412704764550074945711221218633328549467644470676799258346562164213774911322348770486233556689164597445113781837750773125183271815145261864342390048841207553339182910932228289056162930888980259629401882764144987530819140330374923792996318037063304856527388094455118170040572223495853988733840515750745918235782803562596752127412445784809229564358940819562116788882355926178579878385453505362092204761845844390127310796058064072909056400099251548773558625759611024488991179891710156487752569155492030661787219091731994251027735415320241436324230203988558010110995959026153656265444107928325850923280990422313118544874577379550683706559509822670893850510316156243740986779231383533098231055935435115504578870452196827749848650626914409791858309630108918864113276796607571042312279009624179193827803286236549453969232389740906511866242102494428335088967943200508154086905649091972189138718244101190585668904028867413790956429607084128200144212207800328930358440002096295188108457098889018033016579071144210612045193199374207411486940262131283295232698266337356651208531434186919957542881167750870549476197808422705131737255897024211869086376661082386343756747684620214878696823184918811912964556853598179323876309862228102153736779021220247989804878534918687355318038365578233718090111220974945479395730973092694968547192837691330991909438831533791782727739486184770866291969629986633426927469489342653347550375933418179195358770412139459462564776074974103971946453814543698184262220923669321018123830777108820327660216064339210618301436740997190525647067944684523001033309810090544579571477219561197437208520346724858693092320800958453056454294983621509233702641242240589803292113513142761140601810533248276422029173319363007151193310759746931856075013106350192356539854949579713907290937168272738829103521978795393080116799854987286627789780331558811841013420550266487606997622060112084000037569599775033682592791475223703698415491252123378663418776176314454058173105520549887685423816569278107536017068395253369166588566831883349973927400981364644413774772770624817201437684352229659914961286302591896218014002559724968171922237109786107443730513259860815355869050154700838645539085500782684057129926258132327083678597640536712778315047466142405061544482526618014454833016626534471526242292178101600933652719192924014967817190983680944869521328398979289157367356363831455828419763581828377759603029665152507037003679046055704153788928656299912718267290075572630941942704163037479427627177345463279422133187626927848229773403663753525987929499739339245722846066068692225646116527647561403721354594477493870948070231731814307522095944142690321272591295839170145200203142009335313810959951823129634012793641596940946184138741415180383261888409826195990713047645317715669771569438512910317139645711433672158173338630987481122296368584075574740778884039117850563309491720423567001141991611715020012048537804067993227869792729847794621782853972567821150237640831553205083187774043812550926084256424838739011352791093260647137343537988430023413173709293540763691159815989418058032998123556999800101500529760692430125725816283765883040887147482890214726653171746330323570124833967697200639988157239274334324147059796584730862285281985356214537869558730620416029194252411638890246961455954745008508383534186612665492717443060781390549678678183056491101581482278486632883126772893490823178510314876422095572833881438942985271501155417736603195716903614922867549866792337965145521687715573026841076085951795600571629092107689345748937606713422101930147876054130187775413920832319859955168876652231132482019723447160581931342208141362337468345778297602529960343687262970878108103090142714250126409203075322133715334521186774353910577654671752176856752384466741815078610568245299544039697849219892261418868697542443253153119713747237919075249016269230210761340146895686075930579522601599225045475575130249435530744828165286912526623558756622680662463380810518889531939345941591942452917431456824893134040003091119188592235341727762232360432760917511038558111735603897903451643869213845680550381439914717641977312433221761837942343442283256400432752721824168218362108398830504377234378923217112121280763181836290969487249089658609952310330732544303485417369540672113340162697682759236365740023775651170811197074806960511238355366781589729573411230870821368962464030885849276191853777483802590351690299523103432675263584313957810458772503616159445853521279497187237101792307823167960198676343553181717609336500692522276466268915195528374897845233384362208723091166093317234770536111227174151787455071187320533434709364184315323225479834899021828025429077692449360756217301893653375609647519995986023747179045849077349051804652484689398288089204121658885771617479465622139703682141680441793161876792395642283097802573031610773057660667935030999113838781241694070553940988981352713233456440206228574775151342831633426867351310837912953362046995278428426753600820042365738899218299997065543175939515948742256099365451277520328249444163323846096586907322471534607181044447702621766799060935952829974670100625014063421773405287474192652424457559401224375377866468063952606414103294291531632106774337162378014224588039282784269969915172636593172717241621866579222068641321252828688280738203319292533115078584041383128381991972278829807283350696400426842099973130310467941699784667315492338352936442739877569913073705283480146858349912309736341748493774358054671177411321545281602473557853844927730991845222014551835338916843278109532952166750191589807502086313286663935538523006882895102463144714507761446985181503919346556201595819247725590880889558318359250904182393828513853202773062935984590326798419524405565299608309836677903940399869317369721976645294156068414592049301617354578544435822163374514317680511707389426175202662178247494074754548171840339934499732673933671024553453182681761792966508946117053050977236699269976279526136909477056947197392678671446633263638329960573643313203701802911808058738604515112745708615034624198898968211418450861876043683041648933142232397532077519301401367266332995633811098628252516524862925596046153880018894542739537331363281545778435990074845156981431892857047439296318833809205468718498321389297811456274806030535803729732233413234627011032590437879334588311681039357605851054868867063922613432389268291205145832068059656724700728259442394229291013061294612371701932514887745202205022846084010603585942321184412600521731556439650642335266001142133578621757694207041428020973821182296004128187729658703714925739118101275383036946537983306980948448246437377125029116688031378358691974645929292779727772754236845890068203621815436948105571239124593956553328639489698057945872011842661816778710136940462357386012907579407375710821731253231476902694154522405694553410313942550463415914199167625880629998204251810434329586933148545739968081831704275060540023085145609370568854795582645527046867936490794512869992338578894499707941352227880469569203177887671608021323650483331137842244683370072415983832947051521791762324032462946669308781830734197630150371449252594638507487071318281258360063923088107167887586760753584527503400458405476394267235790556091311900333104069515896484785491303109268762321018270639736859760665683777361620375460322409203224083636847865099215243355483415361913423489682929810897484956757346917881891224722892600583587529091048094968803842844691578272573285092491199932899432468775940914693790259808785735777246297370867554796783303919403292407393213845706596151433831214527235177435089996844504755783155669803258493755273492336518058785085264168624910323537275661898711530481139589978919883948076798937958069299230637470712121466463188260300141882556332346181422447873620289364027615053736156907766708372418838827553420301676776259698347893354537733524607127367887368345516594754797251510797050005340045560842408220917384295571537586851725732408987586529139128895627605436780893165276917905588028842645928416755816940732880854257125323178803783992341101049762958934893048509607879471598574659442912225570065211443000084987813778084823749669052001741393491474418983933753172822437324764580519744098331274831559278486667357998516041187954656024110549201991105106828735262646779397657777146777855895092527761583687569843463397775855430682466870639329684634392437662995097442662763506718894134904313650179042936090114549016840269336390836970987101776426589453378715709464778568372406162886359817697544189850368875214072496072014165857432764346631640169004708372107725475627176010671273099467865483052483313866884515601557712368623234355102705848554597142889030441351763218382545657684628217848998212219164827604419311209954443662043656769576690419377597707174486418215906554650445214436273816940346155921847709560012793790630198752461053036893060828517017686706362774463043189008186450047617020408409138970516660138415267798041073250220967525789539098437822413651828470669218775390391544332717701043775570499113247689490524124503395284861760239279813631591212361334626095281032093097608670334695629092285031550264590118472326093216644452717147848410174620132171228446934187691102617589837754151352862705607053834036965497661655322353845250445534343823804312271578994003105521327420744681202226494554205922530202304026860395002421623724231069471266169105594265918006958972441467932225712992858938618696913559273443886809155072635952940922780587310692202419728043913850038718817460325515455576798119201708372945592663967798863772150230904414957517278489967250587442386421411949769017293247067344067970081976468686613294962724080425606689216481045298963630804145230768675045105161815308284727994688184371180883392948988831328221005456758117834115711790682016414053853747371954774441493963652716239944627738791939511991829264751737365374991042362557705744020038576900631449625441200724982437910752409476888565032734397700736279591314501633618168330625018573396659162984241617890456576354405630455643159476251165877827374011946542075153311617664420970161189037536209261298563312269148036382833010973300674769125729536560750178981582859629365281806689586861408345240637566945371042106871403181696241648685446760046919954814422370841742721616429678343763707262996941944651224759158970334242168590286356344839366651579862414178781963177964871220911339665996441347382138832773301309049787918344095773952914122983825453755137825553425075353633265485811003738417656668693527202734909153169295398415202675285938666225136741953275996821151538581425419463937023620246497169994321621289452823234586832551233344619040996624273083440491276797154555922616931525540947462153982955785444949634947017846887210214811001357483233695736066172197584384175121537912174826915560210260583653221323441381986516693689527488566928353781801351690528649873627149493016018530926044083395080204726398858496659227267843549710148942807803688720829525375521449196451749397883393129910608589295917141974213836943535723056988508295526462081588860949703354232867147120376424014595155357785510982532940414041929305918668485276042227788388478586484971742737721925287891158699198555928274483639415133323067190234565261591785627707510351381301242530794712796905902127444151786214405888518596844027471528745819199816682161464710692399574210216636729214807499409441888396958883556298294116704596643161348551059085909738522436258551725589162994246160504507521167293513347115306087220538649436177298499666382812208509955170472831564647973328074882147075342978033550806501700053982029693061880640520547612612957767297503053588700338268337182532071999151735854362852753873647896421911934959331738236508655314593265543627748066609156825904442558745656130832784818515342681866243407957942320344058294500298538136138549693480126454923453096542869840036035156315468301956424856060435489963406511872979237008139612746465529608145825589322759434513151020061746984872681680857670839851491050163278155599768752682923424838394024581575155992513745215104714197397297383387268097795599149900301332635079751669584804097823457336390957982390469170052845458443310075797752810160772062197418981923986843421853081641079331195982837709930887542134974941908969556049029213969316861688205600329319558764924211177155414450555500701377014928918511796902008583762166458997240857069458429360558274456028481909843846050955606033167869461332604393954259707605914355849488461096583362874767953771680137287474634179739906999836946687516864167384973904076770735806219817394953710113573663731377278257708226780137312940922914782167920921388980377836246013624990831553796175075971985277981860584756375302434460591469035867535913104888953064026392134263550750339547875972239747070595320767809823946990784858820166325207173114856859130548294544972832129076440930210655336046209020038965337692022155839173575916570562340535802998814399011058710241399315551487084811211516612020456153013877126030202164760320126515021613644017220206158273243718229935821112678795267894933121122179260488411662200200300959810878610121384744635582576447141776432974432122333833678075845565106117873501700390601996063304559633441072962227143751305670993243343492019331962448215869719122351760914713475236435256928829194436706784406380924749188951610852607408105747387817717486446345881649812777571985926064603806983002898199941560382197031670570699731532426277701404318984448278616371746352428117956695296313668775029295818235167557180631286266098967187064105451656096141848497185379947700921335743982747208256746628091351485086282503749937893002499113048575414125813310435632335011768029196002892368580620574595246053781214547048864159329334182548100161682509669666959817622102944700232261394836110924008628595267554646682521389795848758395475964470439488409956636932378838482266643835106307239847746110794140604710472646840412623448796195387145100970978706961562066588963379767304549276205442534664382130846307986331874948684879148485050887817832791614286151314202959009780123542701315267985288999311010747088416866587707589663894146286522175033492725189539370229219730985568401786716756586470442767840346272197013529073847491674714976711641093123282440730876799309277952203050743079090492696040370052995265369963751885388343547447677368537086785867167799849598606204143287362880736344874352418595108975788713107168879706848530474321781267323593702178409884885358684888610293887141742280051550216487751068875277811033909522241278103152805137346354276824401203228800901058340381923945844158954467790188017966436870436156942704344457175254016211718817757784727459478978286733856253915852871212878637626925869691229135661820637669788675241875995067733255098702481383248701631317430797907977359092108042804308719547980491936857585718590267034647909068365934204968876100180057204088299866425512866200024481862418509899969484642332168341471333913446997888530504434083364442376685715135249987291982163969447023149009516619922353805989782635217576919443124269297760453976621216187886969192769422873128668746714130412664164690097383874280054969783182086335744657775763591463341207086183760034558059240363006539826124990734749431791852084476283015100217469178492054014838296885061993894075090383728807930582232956871875298935953899647460866946346555883499710922344053873660728270843856148734297404299222754607915966840944867616678918692693828947939917674624775992482485550932402796955644812328857557556348077908969871096138598505385666405505357798848199051213651859699936670439689514197257470983046946226834467752978174705989429695358923800287903193503648968636465525360158907547862578484045359589133149960099261225630109016821042250702127977600620935151940976345461214123429050733661331142950926797895260588672476948006563765712764348461778991554049840501163088778223366112346582440456919096419055204629631670869978522443721938977005850531312181405175942016794628712717469719903125776721932600745629039142952957423054225204450802391601989545845540621199946334815590009467357028479048568501595526150787504010759604724051548922307056973722154363732183004726671377095759180861172538697892290784154413431928153969305076617621002992803439198812884808554839902997015346239763309396528170769896494933384761726616768106819633261401167187436709331857840480964675262654323175988023410692308403186802528464423117467952951614335437789906567259110768930067277853430644220423057617818802923739399859210808155252351223910094800141602386929797225859460380863229133012214417170300906788393300248053069024015796944604501296090469798332583280960375892897392626196153101923090530537514983314231099773609236557829441564086805136497347518573582269452289615334007091287601257066832505347419328236349918463236933439496053370315318219725999879304059052662753360029986335389361532888188676953754589534070966662387728711304825220543395723097764655992759320064238959672212434783746618438140044614232015792059781326913804722618400932169666028574774127575249489699866303233140326105495648412120756755705093531799543036217490715919202523458742148806414027864109761118314098683757571846723417265288199852288532031759442590358435118036011171095058366676627702940108802482639604667533032205224564364350738897080694817932505600168954580899707386678336118902485989199295432897073931184320561033082732590549609086652367953112443945472517950060643137704203603504023384275025125577748718646355868516305999100995948080152393805271107842819629054677175387898043057355479542691366087106434843333276747115489826025128914674440975058039560844071668881491091661833299615659122061441779368249973364550852711520154783988252948148085513655985732320790230595953527985380756335937695683676980835728327560087948165434067146862489715303730278166280041868286132240862307482277450631230137057834475285085179009956325199007266444066121770383753435979558856607177256196293987464472161846599237165125232837764902520046816361793483209969048493832077114881398636650868327451726758300750038654439849952878743784124635078988475660794630342564332740095753006119717737251625815052202219326187209980897931966359449570672408877253658927707152762405420830057469609569176461733839187780488983590549197668775186881597568390474387880658272694284125316571485689739291900408722830214159719183301454865006570004760026292555318843607363996438420691719506312797136966744938124722828743066385480379787243992276172046770980150858358343111687683499988790052891464667837398552613880560056724131594078463960738086475355095794299119201510764722947482425585471322837480917383757930553670281624186825176202094292426117657224999424644587593273700590423708360162698691472555057895598984435027455829957539631987196687983540071266631222239355649128306480373627350267567354205042366864106926542363471391780425017491956606419759118399774928905919120914668372514268118177791449986206400084475824386427899129781829512008402057160206786978858882604003186078934397827368325604369923455906523315235846959953878646743923374109401350839765093905789273611929733525850207738917036565975205947188534987832324199212506617581403345626600537364658891200572168954435773164119078937779099705905406176694069282499538536095934862643663407202831823924280226136731008166170916882003459129747934701765947911998909241098298640734101412358238536631202391039371359357321910926565401746510643608235727868908240162364160568651483520609759194802931130382649491515596820868895009133253136552443591197644209227049968884311842236734183586741465144768592258730422274649405996286776513006371378423393790509482643328777403473179002766776838110672182399658459613818168079004644475803510741375434528697225690352650388676852685593792858128980632003008367062508195772286980869440927356731776902529885426810243954991086802542048630435826127831161841638675078556479212410528837851515161619007532214413484746581337622775163827291071928870304471225520874667241509521962087082678284897428915016356465366957085279826410783850582016874462804538254247038765683249506107309430144844222937355934607247703347926031973742651056895701361021972294152394735271516916848845088869311673712950818859986178734447661365393570527467162430111196372063041285887135571436905049048985582869860197036230498281476014838491919394885197619458957707756171013983652840057514880497526090638585931105128886345005285424010730389010677657140153089852342289637725184139247135622180026477348107369053811545874302274598113280173294896252435360961820623755403052451697460639515384153814863537904478289079943748323281702702384131753919394370923449278477014117523890279418493045277396811840285517425811683328612253981354970956663679048107992963508868339017341461758957031434290456237429783850358251207088930454393567617999243084763419167376040841080272940613723154767676206090843262853042493736386154784010409746315653142431557394322574036477354212101552059267841984914996111547284246233747318828496772191807314327298569593894873289670120772901771597160714368501861239093884696010101325398677105801148473144240920883460539814692692321512812901940075662061891185412393062851508563915454368704511408882754222381816011107554674939736674782354302893313295432363427841570042412593847311153012055958626393318208021623523531567759786721444776584480018034483420952394256189820061950676043013733382633367274808889224434467670917188245669545027315785486527629609282967396741550168991438088594048908419358631839679160707253963262739417908939701733512466698513074070989737500053349141054927266656509131914289826196313751580771876169703403563964774778807619124771954957912130613017223713414521080620738825162202940463828161296589229869918159543760235834472532965488751205140198146310852290910709172013950255023510734863956040443164807400597379667604351878691579776945007826166612524416080355811519056920381201866060871223371844890212297333660646887689031052559911723008088306849027211937381739197133934293904516215376157284854301114092129834067733977892957726408578958364068615950193621831769185878799605877153967144745696366941173068440769622804626547630871220372803150010700916133507734613659187519088256416381757603008940031303117131797971521622004297124426909649542433886684030193271161664665351735202036147925742494883275524085602838342542614270108701916930557710319294373204041577276239783800939808185366469552099092317819088311690920708709807607761718752490850909335236535785355548899666538494802074149299427180956003841474679199998248630082445029133839433520475206564758947030497384082071823726003762199892187717465469539765596549754995701528881743264168032149503044349013174953116241961950922670170743009427130376188048215964712064284627693477136064015970852910649839147176688730736804141133369359450756080156276163316073658037543219764810879373221531587158539727176245102917335383022178060204957106215948449559797433380189019725432463885204118782254587528438783052840827294208918660401900850342017002316612096040684770898011724791571773095489546514955928929533226940874745882250208356351794730349637041615731463918806436999628421112979993532361776602006539301715977626199873715013903958529849215729313659768555002464857714593654804302445626455467072357114121483537729360402877354951396954583211111762709284842573229876669851102331223818808169169028235652048660574774887268200471234117313760660742735302308700910830168367281450863926710908516330876016727031939828297860754712100556234684765361128887012404651099436317092378014970966407252886094164491976385713624572703758495469842587544488183875572957102542697162052887131664163609187282477313668220055579937276471640093063761338616141606726057093367179703866515446875768949420935824011578530065629898488559089387293458790542432965345544410374871652422453840077057888687855812070782546979379029415898635818154682592081677953651870548678504632768941719746619705754945229974643161137175932497958080912743956806298692475768269275729842265452056574539788087788120932956593487170999865214544748897953307893275135297976092519050653392056081452979246634103627926112911212942431816293030015834719402051422390054940714768997357677839726576058791524101165051048713964097545042625010558224044283126811507687790994015449902328911448416191096241516073036989269977235078628136654105543975092460935463260137556262167894723698156916745160213818592896656351225619520901814789762156497518546939755679855407026175892708569959085852708018492308698254958566020086941392884969543835038385298903338915287955904469672579676820837950311813960065376114374635447247461035955521059344420359456912413692776388739654014607077727846156745644711785243769520904622540142129488925288578257273772393854717385865520952132944458087424698376421918889977589279849884866847905649403119717434536307462105479817450990565406509801368377431506743924092315914835565391758770368978214410801751367777630040774355782778242547473166857080755040562764556157250601021413495745558688773760944258785665684880187830782643556606594326610860569059799073761948196239883579140229801728823149302037947915883924855700869399228997274312367262030693277825824069050856416125916802829557069078635403284500837550615112813510762330924303693512051339419783332032570309819223435020946633664383966299550404932922445030066333112012098939888103361151722300392530088361905538022727917732632418923251052081711480223706776984049589440175719193271400989557778372166910238905307664366427527623182732283384262805084419741036527632119836510016047157032293292558142070320181702144885307903875659806696777335988043386206551245639547080660085571012570562964059044056211319815732822160185550890872011278131621917420323533959664427040171779049948560441063097502476744510581712421212053188595719710836307239531313094246484785396813741282571621266866801795903863719218503664367303134811153115924304719539729046407271288735565471148456072874390341903253226741513844859158436315312984753062545486534782623410853023760182531384185502713132638621538395318161012972727761497579068101098484480019967916839233054961350736173914716397211672225832108176114990551322405557001073301194624067394096545965631351679538924796409184383474383587993759990339030675341198173970870269474928264072816923876159966644006108256837313269799960368184311238800731514657275899080910619358590317760044441124019188670225655877852638620584455843705260407017972607699367930040373576537334060371044150165347523671382177998614077326691768383377725337597234651343241547925669115053319621448719528752854889456608327739820665558347705034420840418540569734039941241716305341666032207379539921304414847857835844099101884837525752504865104489082030570175997911623603621520185671683797303946724262155650635414068029670916303366604956872100247407193699960822680021797693436794795056464281485293011460516484740893963809322829115020110447551642305876263792733706616864958445106767915259420722358562589935532294271358058350420523829975909030265770071884692318772222051799562006585255897929287250183290076617045389193647984342148123793738236585088007086108307416677570562793694786079249134484706926757467440643306868578472963635983491812394717229784182935069348683068322519945905903418588740925369864318283277452340069328671837007516339448712201554766331184543132537512389990465026016065446205635187091691235394191756419404706139338359781282092019162010308177554129241797625113660678453030444156962864137574503163714618763327856378416834299512848155541830305372216744476882085344082718763707162071035823579078222214687179929633525675207596229231222392294135113338803053738571791676822875419997740934688404352031737325732696810965603510966338652022428858973645776650885216323258684247727824261298242406910768354003973619019723104578346555889366999681652041893803148141519910089593710713711941951839159245570831615808309101244611982849018140647801555096318204490585152181453627267203304227974429146971041565321586380578564487862619249203306574001633464555650408212684769773473928360619401530698271499279786342029455293156819408415298897340026722028784222360519797998345474943741537648852648113430736498826566196384907588510121159156197852889804674425187920773560971072188946500208884913761932664455066755499349159872025278603172480971303587253645359749049664499157992105633662913359721665172765005580979716976718118045732330192548413446199842240996008117787329283576124440050004574550564026436589698829037132620712086312566318685605353446208779872110649135771732615319338836260696913156579686355495226953980128485313763364783834624215139915665219393595456940165101870429259764264712893515736536483953007054557230707261702335944498527010865938734827225183257952558494213379290784676309507470931831888504248913666132876173375219655103898801940785870534764603342796890292761981005756856383576617151906309532872718153930572827127727213997812939826241639050883765017109529654039476284986428966998584756521816710853774513817985424680229952578020802738480922863611277626565381274477404400595737143091749960669888437257452068571307262919921841518461355151572344406560700045698489712345180142678286452352102301561656392252796646595976814855978094501693670619179744121226617214628558611615256941114829780057423733421244217798767205039089866791672998845578162722591169738299208154606170648166188273288921994109465833228936199040633572752988724655026891460770873901793367075415655091292081395349709614950095168869008862266424940614950423475964260654871743611571148755852738888356359548431759468417451546601363271387335105629435053258672213398315786978281649513594113465589914917363202668192691669184324366857829874754208533074249779777292313425363788649369292924910643344441108610149869734079629146778391033216026415464692635582849140995713346728712587040208815867374942669465037386796940446689062148349432125908536254142254545196121960963285602546113527664180502531006799995585758505042841009019159830472025365376564892392774759757393046787107538684148574611447592766736570392943917264027679147425958063039423395760000290903951535771749442937786277774153225551671282315621700067321819754986829592061812916661098407067666210846523828397736363505771381944069045318674624220855742538582132860261170813460436468169583160676542388302802346031390803263866438392448917536305199559323990584883736126054051226335792501274395628525143574058839211148576592697210561244065324257699755793627393647537118068984973944806527084585779799422200024941254428053120400265300708346015407816864262131438365678571177373431228077102361361126480777654983751716644915688850968892421043480025878481086477870121839464008418449025642743204737267524201550268854307832388228579518722093357043277273818251671434335817599986415162699955457729861993005871710125850729439666023174250916777266371422309323381738142168752454135325948403929917432948754685994925199225213366386123786386656889959666257125861164338328316960262180899760613127195359004688404513150643026926361424354918162596787603380369552049615535571594394707468195069431806322002737180977606080627004668757209347633488492227463235310528861795717576433862614893773634152926882912517979972484342541737446107361110722025881305170413235902185066212711289085845778147143271201868127801893873571081632775806599300316279925868095742132791048296130034318465462474458567748437273216875329257895692887589654691839346216565009770448744625257293205666905848897361735108728402957272935408384221220937993760386013716455610416315864632934365544440418259172400103880405220497587469723398499336246696303174814270981470716375627722463963067355687470275392594355411253041791729654378121968757308319347111207658918291822595172487535579451245667667175707713741417987406012803055862709631474440673695279629379044656562434125887709338920548233848885404100877757002301343054374450468185172816570230988826077799956463742142402299664513500614855081086352239046494823619461568041228267998250920814348848981680149899005049998836458509509955153339344040965498115758166091914090553937281111981186240941614527761952097345690153236039927002860903336454762719816995051620610088626319680773010686696499303123297750732248230652601498192982057494659110242440840516387225786253913190439404743570578969794655225435068452473167923613819934097784134563225561811131050376687573173468835427048373711834588884164507697976377348565014841164423695103902093210676633093445313352161934742448429233755090389857670590903178365241729697794681516352598975602762010717030919228042862470458781340857552558925565613800334708474178586661929365809002175299990769359875543695955395687201575313673140605329238539446068143860785181842115314786077528099705548954408266327297943826566237465831140003036846195685477375586328562443327985708816815877832227680442646244694212706459078119078636839156035347661224779390840209157754073443120394990191339266396879793242565115351667602920783827764927167504402230662223085254374107656114552802774624316017606721484979420730722341832357102741136168942825422779032081058870433880388548336355295528725672994212377311797897081015976963196278258854288652012162506513752748226710920751046452388824787687996428468144309471000858760714444906942228142757817279205148113927344505830920317950577365148178211953805137536250121696305045049903848197548156705426497896573188324740958299672006222131027602997394353370753512807586894266088412982247642023864575983667377719803111047957088498044213259565079544110933751415551169037045255458459477692602149333651661212008415118289699323163229727823716009377430018001950896070471406227073935022504528173582706025336290424148331278853085152642740509003742821908098228683745988315040589697375829910405908452699533540681534754979051764405982226257617437350841058217196054972734132279569426518958630810717560210782745457269161312922884996548972273245585508976081375931112642415484012892042723046680854355812873049017736539491698300592992246732122533029102505360188541076501786370774549451276072158613032385037753959979960895675332849706145076932287321170979545469114297285958677757741092025536219559476947118839730258866452492250208909554951281798969099901249539409855669595844126497826636787949784775785880340005244091908005556553076751101201846069533531555115484518631968760962627337367663522020257894967801215076585256604536018905763293933750708076687261574477053131433718241839885434884156665641238831280493672633076247309611823163485532371006539865693204080765416017056103932281655940914746961414903638251230001319226983180718792273851716889850798246629150286818468154293920783392578137704665769024357942432515110423801597686593283339338367789115923362180824187425113258240461899230123321437422185790687747903395345191288502650215529695395232284999884867401358869760825216483620890680744449816953436976196329789018071124181776884398392609368303601658460413785648594265237540876996575103596828676520775045365299544133787722231754629981265840345860188597927437717840205863394157075215790632499715044072216167180302908108051338085318952510575544435063541018698560092643689596013077834761260835810610434933354645724761469115455004738505933610079274332712723679120255674512092822393325471538538355622606883031365348393508882961821376106237214700070833578671495969142104003564686753385825058256105639658741684944111273937287695163680057580428940930037544337633995666866547795875750784374320068370042994244353237507837365333632491204604896121253937150726632890840990605018797105302150086314527316205557931022469538144175072261298464448919291505748721656647749312484462463151578846352133353682522980625078111255695975049620535175038706682734282233234522682471739849307514140178179395857171263338511249916776190114003330213723694482464835024014778118598221573456937165597276395158760432360472912205029333864245543855270861140565352299345124184154299321457498202453503622962305726869885039605212990568466678967176900112498179538136107018132681550033172538932253808242062068312532350223306298893533833509719576478754945798643909122762782308520237503159951411445349181841960142081446170152091962031073341845332030822449253469977834340652212189075675108282121053113782945639967274559225276945588032658642808638894753098858793401289821165484104770614119692152820330982047911972303151947438173598788638385916465554740384302937008044051615587758301049294398953606876396949545004086746052433858206873142097964505241421240088485357526233799440057334334357563050423920224245893766775645115661952004814671245930796756355379707373827428087229858357460208394612289853882057603694082388599224986661414340186845779091288940406576103557831933218230646919545503909436144333942695956276211798844277102410337883879582342497446686451463323419297817560630735040727315046884029829537829381734060038015865616452052911950426356341425358777556213037183383426445184349211772556518288181093464570464017440311359823358727585184891790622210997889081900793321098625053707227531092551615872489712828408366944690620533548266453498865468577942710317159654210942904835698077990285772190935958225431062045147273749777047341292774485539229941084758373442594194790739417381376685211218330131145582719794803761606264949726028073804295834735961171372469693492242688757826584968855848317210106351097225047991310552755452659212138315672842728492368027304736055820217101281930674123376338077105799464345665665513006478794465670019081848453237570201693421629916919249945663427313723478972915554490002549277880575384244660881424424760705412425848127123663291514385965310807314947356279024445861094506328086159759738835095784741456660098101068781637981769773252374025446828819174199077908817968430124039210621925487963886511435748691964137108926409697375723726881913083467735899945789191815640232470220299586460636748862849778730866927794366461541653078188450717476444969022592666340830145121223938084141116280112883301831072339415485537686073907521852476064792706337564136858080613711723312827691880628293390331422643306708290930874131629976952846791224678363777139696843273462919808600271340437394552763057527293930340798011934695530500013952837679181961133931643421953161598812020036225351784251586745857613274400169565262676225593169894106137307761737341555763379988012326438405816017442805014871387091870686439675084020983794676284546364610603698332342840413724609638951254036423943472401235677272735990307268788854385823838199848526028950353952641060596592529283823062552669579418952082775423308734732499703261212720594059346391163526786421369032420088761443545495624412821243612533880537541293173118053196120090583220324356353674022687184484648337381418411269615124334870425793732199878426038755125829342792982667966005696257656271432916037370396311212258861938478934012570493947821616283813402794940714161555205003717023788225217632291470121227718633185468999367597236920973324506892899759562505686372579804057910190272296097013094786685298578637186203845815371569479537401909457908599301796659988582632187381740147335152928100923321359435110207087350620521083142010336812695504079065444163119936305741335380257754640599661862452219333479638151212240745816254812800863782063850222305288236956574743666299013491704048124916837822729735319012756341100751795690459507714121162907235912944589137230356628814408926123776963084713072588843178872639218555712101339757099467231319696049362699712601858035339283892206307963572037197815278167249109268747862788204865094115679458868481646305422476558893562547104975742473775102503417535213939331682169207333589583744529185358277075349789617770262203460450036033912235425978115893533874019509765747168443550906852723956956740007163859074263750405562802333256671336259436422967564140029794518648120425050438219207534009747028713924510086145001647773865599883039291427640192101785213574749318956724871541136253858114044340794817625659702864707421153163538128837627853780364623784543709539635875841727328962933766351701972021726070870447246310609453768612262901074098605328511054133331960202889005352960377033749485206761555976725329312842540449783447961175105118310776118863495741805267209762989552714298510855472736637355247550846123325615104972066850188740162622295139754514420938889229180890950429378077986701163213998125961618538370286305970709018688661502849745002031872522418908709333314564693380338562873642084832464303665169468447435773095522700287158433560764815991524659593864126814454252243441704913733586951639647920290726619644800356529761274529970155236732990423448822375498257536199425604932592083262222047276164405719333827340432351275626305873128640667479496809045309010608729624629024344781690977444335516221080785669792517721658831863877776114320995785621885188571662772023612886728960166143821576366880165410528172599811589096892738407891655340445063667199152686938383396879258226606315224397221232364316624283994729391566752113660468062887929468241523255731320571518104391308858224954233782710162780710996049809191088496931074354138399879878726164671208151100974955773943192748401243947593515324787845491277216478150428703778539644336057757031129995027177779361973839485754241724932816205113281341962141549097371553841797452387945295987919177420417771724305623345406388150433273395642334225657670993665326209314189336709220418113878288704335374329453757989179312380776701337092443196376181116178299754450485574192085666340581100336137457921990282668845309048210900993467763563167535752631008251765272431039158097591667819225894682080460223131148876321726059781283566533711690805430577917633674383384995982087660369781352545648208040637268487198884616599659886660516500458613097850122557598415252869107413103941218779322673565914679868786341533624229315504919153998518812483499222710052067033706765150322989206660406756408427571894668810818168189252227799902504141083185472012770103301048320490099347200706064831659279201758807845777550367434137245448322459001923132668770678680352648593390447585580301537875781066856420118521927725149065839983121395101149524262247331157477802999654931905227396017953528080008326615883138877711006961425412730151331833725520921635255784892860654125174622601051872435213152931852612829631373737138557066768342234653215035804273513010756478075236765445690972392023434142695321099618284807197753407836442024685225976109657192674143716404457729551776324302334655060719979753955306419530705566600181369063759181167803525844493550467998704130446707355456233551506242088445632186824095550345650907528114589571141801792743859838504252178608859397594241729542869263893746700201468162444990697552872330807125497209628351325567888890992746307514290179024672438995273572757220598015832285194492963857596198991035752165077884980162266397257424402244363478742849013750097971742421073701845827305948302750879084110113534338721602725479032392835220105209110256244618686307251203539005715811813960296563760833878977380174769605446693010882191477921097687740647579156944322702486633117143984561641202296463543027136510701613391787489531312192373067037920352049195630935942553070880931043751632742511821858518050291495448233788213897877048572832422543891022217045664972853542498598940211900292971904572810560709298820451284978430738947917210252194611536224671003468497195088784396795173297677361533255553769315319603081836593631783176162175520686499650261060912425799421409669268412918653639991174401556979188967283590301630675205240973949193037651941323729177910381289835168892682331410181021761997271202278637708176780303261083609107389473593018365715205769100073978756566625397398906079504604488336684140731304213445288354268995688800441852753928060520416177043149511528613038930007056633078680865529685324122731791873112243205104479241642998376894416295489292443104278410096024594342259232535751677648785756835249955496270292490540536520012700866305512221663705784905669798359765469655609741015192011518781154865457976921746177066319148050555827921644834985392488123319218313634000535548276653332067280686558196584431321617313615989161947943150655462376326506821743278251649052240108254201223168458963619875732641957280878267450033449154373924336152840932624303343447274821468614703315057357120902238534147063108250712224039127782678767241771922657139850861067960333783015777504618940931916378479751923047807946651108760281691894537911915586657571074489694548566873688724600791477201910718319310350013876988689731951851614868529323567898499117668119239657474354328129679453274031185032574207679929773900201074771135595461907993324056347839592517270212173200656066440181203604622938486950401828180295771947963587207943467658183446772128461071168537986571682771302850663630467662502983860456085194846302326698369009707624375170175607970151937639953858002537021233433424626103493712017206127810964687878016807188033922870666659501893873740704027896429078758749514928768247320502941811795906586928647991637360718609326970621501574287230577532860093050395633347349500929148453309295091244845412672833155748246905562388706410863047759201532178507031545038300561163752203956895377507387520566318581426741502460593445456399380348287406449163904527193795488648009319288295072530339073623509446514584504350141732354034660622843466642416722816043851753682672416037190615570998328142904925791219921397930078551400292198176708874108508489366384313406884002056367722557240100560705800499507991795305874963804874685230934913186085804330741206522325595204886765967774656190056510114751284590797423318996390378733982342958076348215466181415548736918432104849520281642149362409900185917518422104691376727728878188704660472240239471487909225464281120982492717570714054188551896780536106370355893833274999986879350648723733586398004723844123510718137255353372395790533934955091531619615824548159105841641516269951171055246274235227913881579782217827840400025041881397097232627403030131410597968073820670026255157204119360806525839668643970215702476225881065528175423006777301216300169791056365225497153634807479577807739891398515181935115227708255080306518989558410795379583083370890085526440886595456521257664074339342526174237939266385579321397273982033673121146167361797955559168952218765408932749749940276720435118478712313693202840353680513987755278341267480934986511794307457379230041136235192577537567127740732905226172165880274098238322127703559782530805786339749732697757148991498759615033816266916788053435556350468949152752884273410717540291347138941862697855094220336062593450891700465650809703337926126937863799715014486996317546824128249271688269934664353913952502798875749757019663012760940310918326379238853484679852495830312185646058192412066062297923110244709241367994356883380693702053961133426685881122041006455205345140153986974246825749568270183283044641194460931904248163788022800325610010797143609974807138356093887616906190385836964932172804158673722905739993033206137215212579851752316652582144981953765866006016461245112620826155894659003484069420145953449796017062814847030714919910089393485828066298993632715566840531062046615757476205438481063000782201996347245772141814210617277137778367575089113375799467816271081178611875765782643855780837097431233330693778823908841111389100736037539011897602734180326748227736460926060349133461367270352536772401012549320129311303512467811387910499415937170271005971981878844439833646234277876343448952368493525428823498941769542650577934855213187234532303569931608396938384116483249632642342875791564299097622836896079334719059852490274437870433289250232481689542797683607760513551581385066237998592727991359726393855708170251875682601449144661623642953689366519294645483808456806021255844181682056916402202430381564505390243055507563422027506774095267773135577644066905896000561328620802000039896276550993814319646381662611952550220623707006159087976615778286047058498428287156822231060712730422222079840781321858845889557546147046084540856871393253194151090680919785589337513762840303950453282601530380994695987071310149214631108436171539017854837189450160324909809707574784258762851167871632761974035048659324684283049383653583502862835221309917624070602614695309786595102404361912079120621610730617336797514961057899371012059809859060236100798140085291640550005452490651018652172589122253805362141705389620908990014094311600506537490863567291348063694881206812307292773113967296352591840858995833335827946813473996369021226776581122885311084843203766243524870276466420404792116999007053979680002205932986370297537137252510365998419080244823505357919765645299732579911999609222425611713129062178017187875951044949299157834765400449344945253487799067721948452639937341854684548094178703765170297055846191258329814484466964495674992410726305252954345024842445400331358949018015022780966840775749092864858973925344912865775331276679461352695857978376991633331705707544831263898975508413976018311798368769018978521710106567103177235318359231013730155594951737522655646587274762225897101853896767590535473994623248664229730785914929731235529969795585545508165445847049364619201638788018205641146192843269340786547662953369040952640304442938136364445728682414079603006361069686719013659431492624307913530573600821854382611238740231066048136402260981322238543745260231676577163030655669681242514397278343537601200678820884424378771221322914031374100054314291931339643646783271543193111965482246970449663987626772503087483580011674153795548651825222548657964329963634296758243655930944019338023462709153998984951642930498631359668383262296433675350880823537749983784088475877328964020541641105504774269792268807254726733930765352529535754385393568531791952714151246903546224659035309320756373238775416993655829421040642956297493986350591595439803529770629551867667933689938611811905569560368388393489520657536341183833875526209498890607886761469649875273100889496652746227848052690319306709445911996959413113232828220803910463285409371187808682642043622759619292653558680546056699794028906070630258456175953474955287978078535099617319604332582922226234922867312605200283426518554639552284580193904522145600520424986228825494660219559995088612541164646437870813547909322972456348620019010756723615924227249077199245084672018331241723294638185025637770254346092989132430702685658290224816888237161643540319579387873252346594857018452781078489952907661808466307998614054076823000428920259718337736271612193553345865990307538497057254829030966960317234544185854654445372911066571489441191151254033494510832171980290073193492377112463052213565907293713518310759230577124587952222950547267807073052589919665247883716446155981543920948390373785231591874470374777264426199994306544617474806103257718535752633168322385318392176523885538178053772776688918990357445610055854341390279815497721376500599403660017653226911551337361819758378697721487038736774260723417684884549380176793087776021047071203827376979215700308146241997351003750774635201241873325208865112199220556484900119712160600663787840203395837568521944422241334610692245874605488763191858403108255633360345450706926836411931253462181244080644439336104407776038773852694942500247955106551047503101299707005565634817306992435487347329037939268827204052382130298506068781890136271135171578375149830005960863284627327753786163092238343678533629143401764829729908209363481924578131703498796498612863751779114417251817218880981667339772703492800772741370422665826845570982757087207351168884896021364361263178126523445709745464461211040890108725000622384121380318936508103233386456797620615094558196874096898507371862136756642370669609144765465195878531964426492967221370899998190603972794321712703486793684004072633329522095303207517487082887033757369660167993050301697707160772755730680682986465040548936801521372841779628803605343052589252937373920400929788427358284273625253600718112863237198713112874459465913354975649809632843074274518591752468842528737657730302692545384827013732690988341973653125193022959623063245532886915440554375937162523436174694507632217539780280183079718716869041824317134902068340309382325061746615456142769699030454505831047154074105342915574863065539871164658405268157931372221980864438608843112204656195873277079145523589417062108390461731956935390079015465458544488984368813232659928498318341947614442660218150396706734607846775711437402609624792700298708228880470599523811699502365546289886002379033767124220296646372789372816091597783777824369425651745034680046057073157074184342269185036538781756522381129421720195043778304057384715444758843159352964942855114389469120859502358767750907870227421275394921997875058967177435164270590630204348361649845738513090853923421540592173839881629192206423952258177571409314422822729390521256385146431798807356397179267371241221082816888609189079441439083738475284975777013732818831716120981814260213395472749259995596224427064393853252990810855966706583088054564002298980122716675488306158910491709948648056431922302889102297723620765412646487088140976845238720835504196089733216574392355010469243103107257002104641704580999781917809094345694009233768339868437436769300576623112006291272106492599894314404032866321590927090693048924682733465073996413883824766128613346665790546904305339319451785297389087437171315061816218513396651276766459484556261185274286140765867583844753439628314727946850337908742186810624185354996480269786049860967796230245756060834441646190436728103922125380912711400378464097363469458063303285764972754668001472093746352248228697568861861323226807861304009495268429382457929981295321008096791601433949410081978027899836274241366333727574188739442324564876132994634971081658985631803713146657647289151739864008354166679604493945934128637125284641308631011965888050566151158315221556377511174161708379095924523252733489316853876822041022716165834151249413593012339766592961823706897826307163491313473775583902002292149114816341205387542063750588108162049027385221450377258781947154009109605172386190856432635540056006107896214745216812890819796588932401512369366050912664124644060207906244490662141056681191357523926385449193874685288908872732730855094991731141465361320485825576623824290504440883192589276833739658113458715038503540211452017663101494012919866688888948215516599546203082139912331346851359526469106555854191147732628475097630248931941250995786662979273199090464723359916160048278809267955094257120657883416642621179723807500895755946888377688259983851798331052900158943431042084348446717062659338754083640296429987255886655472490162105035147141397769044091868925595886909192483389215455314410126805541400587914649875276462336102609500280899234198991638277308260519151004110230366915448132427746021949716639808115825474447443050444480887487143996170339991222024646268663074408807213521969519826911306609658488097785626169162993411280727595065728637190834641712707801927437639004734501236987325942776842543311804115776278533841334104783082670723748843316374468303392171409139569492854571745379959084267878726536333071280650200065685186617255994986831392175702548507485750492017950904063271731920626237801263690804852316956006473511747358843909936358350879592406071946522106163590137719655120454930687458539513427064219141805228798278847887793845424798010651824550383615551201403334285530400031439913561728827124071390680525321751142553843904829245420797172285144216704619430921690754017293934474472574049792521813977298191393506762197203329251765458914506647498636230845693166310960614894183590003293760857072257597135383751865135995472500707471669758504072775583167336702422377591627096714075345858054938904606795426122936222933754752069904101274099159887674182660821564902685593368390051216561218243010050261727523991269882116872826576871590048265522575754836125796613103209029828920601923595093056969640262579494333223752285160077367858522340196548273416916938678679498042624976322620652734316622196782462108613101454582123578660358356252495235773245370669605876490334239098004423663789194091404150646156481862571879393474441732354800861457273893821970847581017090601591300192212172542088108656100027830402953022239229683948422894618662207493352562036641254992596149685854823284233568428869947938918648795000223831758890692340097997660986049021243404806359418955782222966703149187191529204990319751466165030989045096002306818244848138682392548785878165432493290288045454015540117916907465815467730838126946361952898780272191186761928529001358723585807005393224451062781382263948291930212467938072550693376775952711488908344077492463932147655149797693804730477974020503588139431464875835912242881678676477117165685543848065972543611243132248735908116411869215699883897625355292359054733882752366572923822947809994845521443568873771939362710978056678558530511304291543043198402690089966941668664597029435957544227681603482057500868758960792920848522471469514317484662957660681874217329041676293590936752783235961151847153192204500548631179727314509888218722985665329471468798555374980802610357676969857069960744158922391163022247630572050094892757482874064753745081797743721248568511732241780843168914655713700805903906505651218258972864007598011563168980516412632185393527677296308592967047318541374176720010038142024534647984294598047134520810120092380912087128102910845894172360161848400201779607697141388363809958725178082193352575550941348321229045918704884076052195155967911573346091047928105541471178819720801221954695064162968282654740793072044565035794278305565181225791921446650233318750527323792432708460345941370319495273507077635829055153938983217314088008328309038249262154581158800667320475749804804334106193279398566658639929987110594136845473143028516489943696988912750849671767811516190059437371872373411352720855228377817950983417403018170275159414892807258141943260805242629882079864693319405649409964456558289690949636848511117763628568137095351254552271608514859088414838673666136120405779878656479367599234974410867716389762503566094114375205298748062280308273608319172721536701137060344243951005777774055901457957082355465297583292565604966240671980678373315550002473484777335641611966719048640829634712388276495161054479411922728441797446560972552461448048775969006018046065597472270996357497784196807214464857796333586246645431156458088625657132850458190945254817683423469827538749482412957079646631239507174807891145918101635366470555403749529662053077584384216715508348162860796884853719184465676735012535563287375734725617283768560923135432033141651830437690450098588632115457514723077069887746741551292710799687857718329542703560081360979721158062905884532146300136030817570191906414462411078430346481236146828059042920955986468954469085951666869102697208374341174614790456805561939191722486371684407813730949988154843461214140862419828174913627141031596042858478543470959325768326916709598588046046184487729641574197445398958536234177928865361946644505728697472589123220400335124648163307642577085356496790168269750848539398577123403235280920730928583905261884709720564700022186795309036872642740829551397137529465229748486870311471338341372570302012913305119205739747053616013623144395241458005284888867971136008388215822887185354874646404496318761294767071566275067475425743456672790843917645281113128051867596854957847418316829725833140499507199183594985199356546486201685419127449628760583112876780791005706134874017056376705181874918650818262696541081733822895163042300219144871147271175614548095756583678967320108359737261743324573237049816317467393233128708583597543426210578748074486775428172813263509374946030753500656942040946977028976368459456447701301764580792728556487757142761299306385975955834425842327313210756567920508059314961409644162617882634340317527080449653908639804920934605222921858527483695170903074578098596431566925940760756024548078390271066947794507651651778272334793704739483731948612976137178895182315359743894340370751802096406464548982215237772461843195467162631921737663894805676168562813494767345511287030683738038557948339387768432930200425244073066950889158886686938091644109028101411609352725152085279262137110262140369343724893840404445529283656876493942513316135557744277316968800875868578428105784140025818946778644628937251651693603902458168233699391851358160458919055688749531121992910502420118816201503644195029828790058526029232330617018866759577306428780976936953871751045270857651872783464735223321392457463972422669400808902017055135133447448080841327101415916806920100997545247444024569155862876963277533179601087250259169762480481869419248202771887349113167149345603216902264669668846726452441743517280434807747086676065446951268260362639248500800576641411421932099912042352507217917391147885214563856229543302435862666976882820054235068564844998907253007131583190043684592609537653808695001764271023612666602748598072523268709691739967625884883517635668416307362660022102176416555688879805980739337525333289964425878655198021087482004415055678861500508838435001521352936697207693355883293057672163057994577495194172219704785475473730088631322299268603962929439115442919538131884038067807037790249881153008267659853214521014760065525386374547335683316417391829356957717261500156166326857516787350610577346360631106604550639053960856991904309211462417067686018049110220416128084660254757955207772677686161563659483728540726612212832251620517414920076949175513049736676119220032179930833011167110654111480334355789034441163615407498731855631538556603822103178893241914561680099512216072311284111885086171795038011628524513837081500938027465334610853424171230736344405963386124610900957562572719914481292740502239064978516794149404137054992707561104080452742475147985727562632435850892796484087660747566581059850384026987749148054007303130543740165126300577210952838633095481085859759108860591825265975368097338836966722095058841430916847662703953962814399499261438422496299539061087206734712958077339804642171776476295981078169910245769907031443910404290536001964742943118093804587581053220317496688181795113095215501470372119458049906045173419101668409534131851598897532269628780665203818927493307939408753935294133232323952544463548836832104847487366181416729927184497866144209686212361023914334195302988510228288451665863909699540877394043852342313678958622353236589170167779466421738156286574268328431537077344829768548293766797174242572396402608826379007875637716255204056922879569952519797721722666990045331457720243078589255828296717465558100933513800337146101819564562376297927122661184111562434979775593388226582912897122000158387093644794375090394135223971400002033718832695024552138966192118775856706488439829539045233461334963927248824114081205939654399380189448335186607430464057525364296899432865486631532053110717816808249182300779626553793726192030358960494638176307911817798107737105447944902325589580148518544911802749753593311399331501661965585167077421903540920997444076860467767186781964848350968742715627260509470622600587635829713482552650391162118459332558418256952842098285229084812413194521432891009828201044717619024151870799769808699975226599121271534141710668656712160828897108555105936202931500133244720992706584902699155612683047138618986332186929204649304291416798926611656461911908775860427386273343800662210683460711501049196621700693032925668763295878048139887326416005597649131540065278193635180996821050713247827650476186328640244121030395989878663923089016509401007820244299188692702859489015857551973103248013137990280311505109923581322704286122774130403434326601958978373612817910859361181301051476304966529805851973093690125487089713419274700710313738097744922196252475517010105518558807287742527065718974714861563967868160303549641742474104489479457794096772049591316822744400394419214776968768222365359357984265678809402515090091817229560254246197276754098716958568065109481431382122592663881757352439822963772895123405709474252151588505897438135791064390587849921328375292391966360168251293056402025822073031167544644184669937730936544906659648132883113663403649473018856624585047426485000006315368544241298940432291375590450790985012343543928563677430494221478837465095803953848036746948027002093914061201746875487644532901275540393113012712451203063079725797152334347779840370131664956613296642269846375996542367399084843564903853624090924492611743395350733571882685084646130506844646683499983241558320460740041529936120366005441014130877886632245673089695827605636777118339738898694817544729320825306924175885045192921229525785668314385435098461206174655731754691789218598754903345940575220222685489586734375452610566771647332364362856786570547720806535916003600172674940833997671665292462293798356594699505961858341608724867539836858079162985168322300462075566826858693779049431087187050081176204642340000400496842195201255848195992348699922397200832293574304673596476027401979757313371196294909041870499196545185442103286930908293941704156956896096183244472220909034920924217582820950941937716472904370663095063759771082546925751415206522008602165373825564652690462482124024966080340473528153523475857882397254264828652665509717106422761955279798654979706124590196315720913098840240294055800103090193667278692771905029293519496413775679317908023661682484443625261561772911840549980712077653831353535433845724952087669460894021667764765607829931335789678816302978509350336600064741884937673372354926154218609140030338820511293658666890906337321331249655077357591905273575696022308752072274995324427296392653398259881325229044110159928880153720809153212219639995721267594079822746398555874775724043262367570681481481080770828500438134735693770786031479417047286540976637240197631697783131977733051886869045368802755879037713211662481445232291388389326902705614494737034086933733730968315340063992976738378372784853006819732165747656067348262523623525969441527280216046520869997914411329503509229602305639482847558479290492336093981852515115551357086844529345681998688861079490589894295588641024470897963707387476748200599792062783636958964389117360799554494491776985406725109509247541046719703845612951998130567796824720480390473223892234150436672848668926116582511090241300897926966532038953478786300051622882206332583846354844941849423005836774176924116040949612600174558812913296442035243152458511566684163353163570438936139473781868003822597894958961082489015203894960452904648027814790858936368640918933942102316266317927714583754864986329257022710543300191248042630232306875833324600050288038253563438345705051060271292116719194717103288113989184961328767290481593450961647934036877654775655038490043976564635761346616108401434079321774109677262773847778035415171922086808165842594935850385211997785692136397441046050598734679188619563683431191916859882146899069846030349386473436623030628907733126431024812660120197360234493892702285170935444169198329552076150457756354628447549241053143483275066594342118047544419444245896021517041161673424288896516679286669806325901383700704764256879651442976635345423399866907101238008722406474762205737164297792179277955983190694895587328931890122520524250372670882779640731515442492941820472362813128330937215487278702658009608549744611395326572328128111608798792370877198403401273379256774561329724219357473508196770502808137268024010392004150983753643022345589324508700239886142056024213422122097524010392190979484419859436785842004745928698396387141254719424033572328101139367073025654408046359505468614171922832124722924166863968388541272187755556014589566266688160796846193476390324393787452693409625292585045856797546566611406547875432017288460885274203520176792023696717970905616637492947221368118198721814920374165841743673607326767216708033557498926437003070894258001350788980515765947779624518237401035651491480367229111500993248865055240909251102739377739791941080573787957532030619967429847209483765179818248096220340115291515861475554548882481080046655210567347067264508960012392770948852093414076898618868530162101490529235576683954149544083426716565069683450304169995565396489175535274467000096127092220578818197354496291526128488044630577624004246071826126292287405538553883907263516566621021602090785224928551466797418163754375448736835132582242145152944486872418590715578689777609459042628961670575967547392308463867499109709544006785388586242678713917897492036374310398069720964848545485332082798350053581979671271358070995756459544095961362979884977071771146082533162382302544842966684572300764705920535417075316664434615780282384120420990247499277725831951994058554600447126353911762709099209201425145945742634798488966140382235263027934680283226257847554967672161505971615842796371794253114631079196715866233001005999360412011684544310416686816006799728655907269037693488073917194472867334252128072664118221999637349062327846993674309258460137112492771276077519309435184222970973440174127449384445749724710854717939847936611360516862693797129753763057077514369780745605024167484683304450073228196481641394126694616507465360120480901690979737703812289958852385157279878857890067355313897666804951248801407774099350354793298193330220661614994087558150446419874569930107040926846675298368681587769559458068094575566916722383337918968127622746962793098057635513672334447653262298098311862767503755430588117352468949033754675527202470171934319534543090437231320291162672752808232159973656698837683449995656161830915656150146494945992764181011877258496195205653937232778552920320147152034514754219861361865148391180819190100249122576109212167230871255805423997339516438400183492651627234213999127621338494024369479292921881373928353332612128136171802728506411663440650799607154155809769333809327973367214811687243551871456933128832681441263411627234120807758322677167619899683382021688678627528984551195181341043131023506190969440239203006417058135578406994809236252689330888938339813852530404246526542740112529686501969156898441033083062085454567519420937158330062094901016816545878255428532764436408051164605661837610386250337716177351437400152893366157017036897807610425744709400848322037969939268845305668775208074136647534334983288986918948643467599719676421247575870624067654101904355606588596853638799284602362513334690002698884903404472122409693617227390949231991228403922505814761329177354083436697180127529435512011316736641126158809034655572024195824192686402868498010673301943013004644145507624926714627258934829010822795065161397847932187457789360768329496461217547540561003139561290672340652420356851247498888637052591459868008698217515403412951776532269139118670628877820548097435285844966038682653645043468159627468198511462484356510824738071234440027577127354137394945993095903561353795022437186885716707010761635778484648793446669475893096714576692158245646410814532192825273251195062966559299462616776408510920794272355860268830127255475560455711262528405553214271990568201528861357545181934673682199341358238157800486470282407961568046683066061461073379730453339026260200053501425444489568462571383806295388168248050970448084172984213412733407491087993049929909696786199782072587560445615098685300676343364284067163001130014339176231859057468059447330026765347240598095516234282621300091060837049839185142474775343468647174935691527522775848787825813805709153635983480805325494097220430971456264560743313430438399600923830767955746294575166995808136396937448072210050955214084502232077682441119989539183093197440208157286143205399253310419679365619022874878295189940741438003925776172764609550358871359691949683713537933208524962275516756123534947612383313498386624634630085120527141574209181150949466538325929809358591191012617090020606984410852716954675602741559456532653402720634374109313818406344115087127251448869492435956076454813165118980605471119010734623458829202218797228552090794014284578951000144139274685422750443654420591780735119374955704703662948655580756282793453607635110495435294706730729274374706212264603781926989745365861911428896261627371606953509071574757566960417530772361378556980647995656209594427953029675445390152557307999505791745620515159933159270752733285973545795339123343978014429037085044016723744678632883676505857253504770625939209294323424090098840329130832700492139439687987743430459759178364499236357186890542397740231887449317024801231274132850800995503046314593222249777584379448118571480077883598061052285032765561497201663228028707365866254698860889747399093828067176210026802864493336727048039941877822217510990252292572677216135626185838351203873438399038654535607432382276982477726116992974581841644881355486693791581140026350212342456369277439829228683717490032841649951011347426623945776319763224694424847140201757541130693702236314869187886317689479716938638784431359390135826891141356322413059861605484473228230472259058290316803325102596463591061230199158193141302599394319662648439417853404712349742371325934395473989335888797298558353576254329628378006774889887800088029899549631853109212966277251568838971268282276351049260335098106840333572037205874355669391316993827435239032205629077918653107988575948503726391490362572658248210502552988322119347152429971254099286919336847106090360290892618841818649359619886528107340338012442570650640609620842077658996604031634759673035852104029211492014024463742660989256321847837941129427071325359347141861154496834712545663212534689762766647056474221832872464985044313037119435986127044815411995659504126334576645347021244161153573421230944317884256741541608161699523156511038345698437937486928270441365277407414714416662559895872205497746678035558574108706222570911449571147124695663957520245326270796054548990519707950205286753791133673118054039519904400350420415722319264953428801448606073776813068347907486642031649225881703028240781280203392136652370615275340301040290052566223105459340196880783832107149368770224300139686688886422471101408747305978639978599656720216330689797714882905150609904070794651834605355332031606704247499240808604712522671487361767522390057819452149316021918432039480098194013933471271842908242698717226409504648913080180056509895251145198886502750039124055126762400065961002853895456179394250429913056127964492148892235124790297001829669540419975804467277455424209745853311798410911675652781310468868712549367118725798122893998213067543957878877651915755393986514389593536983905331731098392123889669689888744620274520237788367716954920990366750161881517667189654915359842503057709596272121122625744095035239583407291574386993908449793905099013463486858665981098359422964041767742683932734169043785423913905953201251312389776102513589045975912471294602812651681723692725162227146198275519782785585412506324822598271449455659371413827767832031694634233183832363903668879413171309931059667142327572806769151702472924403233667323133447990497080861305032266496810628668657929055198532868841837812094698889348138712156385721577851636372511960964700392534573665173723438094997181944293909390174389995921090238340934829923764497871080914357229573068308292843314820358416150072188702930347138075712981519191703335085757294574590761085742639954778402265422627213176336661281050985132271137732170206672138424948314335542517790540853466635484077754990571970170084984966883106096495691234543411371639126477385482799765066613167357746713441968435587003231807660657339453150672952283494784805694658292914917285933182643576317071761751144351343014813593616153210832614312958904869414743961057286610247495753543127578848337308600503031351076001482848489389638486530633350457975433909115634008657382051355596563024935045437058683170826476393377584068049728175675755377705459405097871639900526250717593160528953490728333279518619737519683594159387569593195293903413775410045531141185261098988149325241047323870844698854622525929348749213106671208279373172351441578553849857987934653127226150241603778905336054851276948122787321062153916496927435514942738321702183855328167396740213860589846547146279712933731401115243497563276186067907391596798323340144384927717408703881351922089786498738570289811403220009464940428462638333905595951178564577663542721880443810068996095159237606899165723010534398126435639454484227867710022980002956654195529291808850075837944499700232611645690024919557604397253582934623432112100687634041932462553717519821233562649757131992718786796245636930108238393556746489019425412084233569554752215547113113639712983203311298583746915678787156193454792091054691861260198365858699780915515030851265077902996214677316770181170786746102198247169451691806436634068074679884126530376166912456252328317229936970372322258965294644397219653952890996211926201548095556123004560119809460194238271608130069834805622481990119662673796392880424855991559917224816009977321959438901171048662503688707586914849923750639446436977905139756969319952335644415826700083900598684906979244178201125349310233496799380303462504165598649568561087996860476695579464169813191588677385558987929693440993786086544200811603532000579571331037120342547081966135115440463944287724401358798649352289424887962839416913043599015551412606567365698481527982725960019687666497157763441507086884308130378011361551888396130223909395932674749040326901969718363649244160801186657866694901487107628296262264234027796153830844041444860785249315490339438878441512689685417937906579828835435435790260229626997288962341445811141878988133074743356823281352595964947872359758616835045538132987173916864411685324237950217729303150543134404090301547189123110892054222185434620486903762458466326079906669445569257519030126335989303265013965834172582123733844738094508489131110630331462375281401585803424698962921953029088330216715262013075388683560908014294112447306013147390611974686555266797026227190889400735973879218463768208766626734045125760232864375998241889123716248315270353611563309150532477658465024476562844165550554912593418472238993227551373362766528864407418638945639449908021078967148737278137506978230197820356168861402047285078291537015425060829691513455709974072475075919896427278274683690928636132272419855357124461700759124819399944300876130225184975287163274926187814794238815680978759245991405501088443237718777975215120122844006309255103861306937064611394481522278769805249979427167874002552048441724688219893054458570946794488072436657292474469444973615886037933283529946481755762588609174683629888050351746389388438638059250658350615564301950229180886983632184737023465631157446755236803773835972178756235216465792255347377122644188123930421388329195401471489915914832596239911378187293970629967443544736934836540233400110671232113439366437969088453856095073748022085838815401901633199057939964872802836152981586959145161256768385741316098759722031752780174573063717795233134087261094936020203560873606266442305265915022245201512827738420729506994508407737849280526744116208264754994802730885658713448017903914498291450172652091064204525022310790792848755656840588498963467271120996689946270042752163187574312502995404296580230468798753044829670946970131447434046411767901314561361460203813326572900617008924507489873877158109450298033339606897750012381681394206566668866874940181408697981313247978159727364947514496208855022030487165506171199752325855572296739206880959488323091766494651710476650487321362642169872174187109788293591580650826888835457407966963795565553711285551225106238725586044348570821061595553501664846325388571410434011943267719300165903495597608346299966660441111649011855299007148503751989572141044189578257833826827846148312607159800981542746926669175135440658316896411924410212226445005015778112172407387644059317055921695387776551101355235608207964801038383444079429495384819336818797003072027924196532701046408788282707970315714468637001992023723802527598317033094119848235737155700308965156403812693359489030313409240223970477402384069572074323743881327143506845952318038597706866161253915580996647273411870483425922911206083565464238371978475827014193920394211856119173441274708785750958764279292540694733208475448784926727224436933620867851472951529078051065097165504609632878672209508814677287360947216136155855381699355355106878241171959758223538127277094360746091927410091484420385428095416445482494296582377734946850190423797338728169600363443780772352435909418286023905904822552810355775522341314313456893043375386498358729591408334344856904524263033229779618788009466864913447717763079861898363903653971806509222492094826604309593623137254393774216076721092630481849289826185506423642183827561398687883619527178616727191333537154233225797826385729076588788586386521353673451084807058648651717505791944729249427250371736725942803974093620674328486163765324897636777751278778712154437496691288407987821475861647274927802421243387860228757844402931979182367563511968549662083878811760361923483167924843275082379175349790985687917273595167508888192729378016355348963641688323290683879799408202526210187724606118153648634467126934413960069085998781600758958170385105803801946123637388543170520304824527738868700334913856762021989074520379049306400849127751585113701902784810479716576954896702951617090021515025995996685909891009344515603540321227471664305707543730843035949259440067371109470064789588423883585605411852374527646028924836023265006863644147912182290377939433341758612451959284235124614159009251204804487719890863292693843381994779654568262310552295051465004825221416215257029891377971221540638117786717129070742663083128266176585603047339792662197557875937486002177829061756685948096714125505880794468416536148123181345222449437978970893855858111497482772602384227520641844197966669761992994745329227721364645863038572388018007589436277132866726727454165023610707906425973153550522158325843104729393348786151406816004092829611263641331407613827840856109089741493101395397728826324768801466795909185744160116750094972398910119990956441636856702504880842934201455792552526268685899845222334603773486949056326641386267639265726924261745956116932577976739308256886643515408799982320145555162683319027216892745188406191642470193485756800896627077806740998257795920909666539009867050544019920185900997056388842141533305136286180982435777994612178710316199640290345358341822035441524968777653123115023619513676115934440262293873134232268133103322378779562671773154270538016439814085021151893819079421049854548932615957605776815565500848647152742027165645118820340069773232946349087932320064836767812868387883449143174405605041144574948985502796656538322716008636785164390890681422520337980031133955040515477260518706527115525372019778008753795312652113052458428701842353191267333103849363529123430656101974045461613596453017903736665056451261264158653419711947323843435996663654365940761760444196420150341680003713659662955516536549311995136268010949017142191339655372244346001126802332077458362850229166684999581242961462680406940256890498997075751848235314943314672064422710812996331562854519768100993736214058063414868224115406393154296317245033818542152942936932188945340981093901618440651800124271939091017916204416593749589897550817662460423569180447325601176512238334932678718085002514804494224918792509479706920182050801578324588059361880951302069333614651368331955913039221776794429266293781356874937903243619339418127922082405662043038408696446316253226932232115752766949323982162027845177368629114392979129172231659924785471471223349987838525401998307247284622923612286171759841085963758725661262410716532961463760459506086690102646527709587605621229093273088863257631153490082145935831657599743217793051401329751493639612073559036754117306691252194801352490838081954039029793974316341948035965973906240318824786931408656088888321275633319005131986787302508565767576098994103260476443560359319393317470515992584233154886674516601097254067801025364326860432519201098469846774170866501483119889226725922679053071470252307983017418431193463303353760467825829722218268412084613128541793711250618659252549756390689379271666022180278782352013308013178289211108807423429441017576270662796142368817535937678082145125943632246677673835054530860319407435224850146462215412827019290499236088265834186603670980353040644990295813315520996637666415947474727617347063287610986097279487310632446129522930800184173196252082265411562840842402175451265571687992747336521964873829620133386972067395562601425137568500987114212151039333316524494259001666428242017265974457866780906126015854430817943461798392039914975801372530386632201597336599457134336580358929708620689227327727498628394369054913943996589580983899385456607141606728025400969776502041393107288429084097347411386242094838535569235524213887125884002668527705798202199650725881626028090964590820317098901778101951499711706613673418942341306194172260652823330686883983106671070892658667158504960214147485349947050021263321585125827913628634641481836985219378048426693378407556232909286372680642080702290191549775807339373803323842023122296968916712221337292363427437033416835423038388902809250638689307612530462085982942841560338760701028050875645569585383117105958296911913850740332072606622707736590724995115333066827247571892542441854048679064546468137805120719887956720762237622536085525150713969901013520642994248023249546838741146721114304705016625847461247333257253874163308532169955001860569695799085656215673247814271317576002215891319963151988324702542416738674889985758722462494169268945771437145922205285087690799952806133340102662393344488339017497400906773900631865084860792136124008057822700948833151031166134009518749974801722974382764879620244107105576809379803315277189719724597240008814985213610879194103148957235127791134082758732212543645225485126505947292518337710276252230866418860591418031597093608579038430608767692003708709503145773051881959713538729327236285260488117589123842763452877333411722494848454456602700138567037481864786943752489566208354750880149385605184015527612930139018404447265673625849864939081773480115354643693868535646641247987748736091392720291145451147315901340148637726120598003234027424754752994529943723801410585961586157259161004461265053384551028744875709262611117122400059540186379795440019479370089606127238695026694902835788779221574615562043963620898413024671729386972095301167417307125141043882401844298218285890036293167448490197626117422980269792694355377544397441619124004255932482078663466025714550354720064525707919473654610003365259515178858382826618739594103750156587495631205841553475095140564204624756173716859817668160773872296971678031503213813977763937066305850440305508814997286793257189031831225059859977453970117454455857733470328334744466059614109369756180761046123803157910986078323362084758295350313360085226941481306566574948849649107750087078929302798341333478105365789589559082332150171022871230028652661587534149816411396493173275186188656761916966710001357743098581032187860322820317125904054301295767832328984503142964593707174012806470993853110039696877283680707314014671465105404913967786712668895609124740866094873632360849030809589017145324377968163380006164226665259928505042563851135890903253374840773753229220946052959268226232924754658273946336362751336949036418917816051028888060355639435754967395471636750917834381601294368955217773931716652904174686835740378072575406564327495685389717683293396423800458968421762194142900011489216484149150065216674151980079643683908621350484969169810092222447814735841842497314880461506015917788725418893230589091225068303398059878071820692683318625705693814403712212024385829762338413638068470520721968047642028660591539264535874799842344693502868797882890052369641076279689367873651698560497631171616770934152271953014510216336561645003760308469955753182274227071358274844968850731819420737112439233490619087574653360473008685438944000095022078585627936740439259703051820631859793812295446771737453015180707014291330505144105299754078913644043260383375978109142066584361773406589752013523726192364511660082589591103570092158066236253754370656836855311997180468001627831099840522325254376131853486234872296249596498898912988858507671296464615490055000858212361244268222003912761152094965462160896268004446790720355436584562874621143487228609171124007516065021651892052685725595932351330433379467970651298993386228284520221748025197785704760436314887257189393189860620289511235571739334494279952440427417065650801725524857748511579410731276005603706094088621726722677130410531342435526789582870974516763631696654675831284267557256518352261205429458478606740280045820689304601156322162100734146891921943525184057500341440675228085945635904995055991507991586267040247714828952623562829154797537821701718936604292758503766170704464246425855649860766866230724275677013933452716359815883444913653408740449051951488046844057051247380377180338139930418637607997619563126356270001794209660575175555969580447099533203812066980008022976228178839007259000961676601949139163837106451091918721027222542445251331360368746356028475715754772975213694698170319277850233295822133620473289539790705792697020820724932998602055876708115012601694732213247172198053067655766272677580334085434837366092094662840061940951225889713062128045898070332224586425969915081673848845842343634196556169238859703605743766597872106547316935450537251026507119014114157011223662983092336106625536511272945294562097247433005974749211430355385925336206176691855563363857714598055933999677502369439434036862893142311465279172040175531153636992993972097516974274395954149002902785630633989113715582314833640064861533238622558230635113393421661094176046387841411851085124902771867841603722381889176836932789698301989585659252602568684540715467061388282735340904274627919695877451590535949029197354161980995369920045704191110623707143974806138207280246133943385837933280756275453737970838650612041230806372650989109440732499266172231717199028872878672018796254330667466658279551597637944145792614020060477877296025643203121129787739360773001660082059614758864310097839532574709508051320746807182484731467309113811088189102882437393730788078938951952272254363550305040124915684689588517007591625425319269462538225398541878858711070211235186472834698676072787726605858514912956647806479644307839413478032030890863599908447718287770684189245622197558540606806151504063662440680046171259378659680812240116409305075048392534163048779649248798151464229759473396667611209076030674459148062569004442362417120898393902347739205836535893250458678900032023745271165301322088968626141117061295661691954535803746105775117790039691043596625016693233181009252034378357045343674601046253367568896045797954467522920795576780691642851544057121473486729272227757023167208220691510074424774436877460318832154196731332366570810073607407267863054933983780357403631922292956217651319916104255023213584011102264539197608462369248539428412215578441215641181828701384935093270036944596901862444464393178712072211977296747354465223622432286119597261699792950443978069324720175934741485498056317050555666512423855636723001178952058241988788064931955262096227487946691757056434180386201366807705049366578171741635771905163754760381450926556990803255978586404074128897550802430994056545190212372416172165737698856152469946005790040630041869878116466782376343749494582928397189234555181012853911575738370385366822722903908321810320111186583603800777620292678234443713975961225101953309279078554845851327090568449564755251831006183470616960753306798626996175326283948702409581209207157131166095678728589661591082468338510312033882123149151077444893104635306211775893490886424502387581079157302956012138925688530670040566594378588532607340607496164482426770649934004080814004863061733759118258580080296064417281662082912550998904841908598330609183991206336904612150911819778367789800052689433881507759786931539915447480860328064728089965038800944374255006090166525479610309825835580035158373052561177405034320161360646516839843603592670468773511721522449540491900679318313429529708848107470785941540777413399702086405543023106861708169462631707272622089424175642912876196385743502909799089716678500156457228343798527983716026667343743690755963920074657841775489918001012455764101682088028451951023346413508056630384812940317159893432420099895411818918507000490843229666185047256403912437192247957740856600129717377726300873983026456189044933995209689984621543915750020674501148924890983383742713996052034835225152080632338186009481968380987644379916617059674096413533244590047958360475523102874347919209656245153950356338838464865520176231618265651210941815600252065412166860036877823117327279864387085807888032654290461753870794364909419403269188279971533159905009667703512329313366829001290256347701360226050499510884055026433490202945643598071928050175793204847509738626395535775911490981341860260511078101463284061391940007393883405633003295690084765857017285194528592093949082452782207397931694306527014595952722504780261627447760244815487143682480375229681017505180259979380826335437286416193846128053647104688660002519626150035668981248580438723841443268591184286994800629732418503915551378013953357883472732649566109100075374945828416430413026976647291346524126502087043193636113827013729755491198497192564853765195745688282045772773215182910420044856158504603374504271538469211463083329937361723193705828174773897962682878964187000599668125582886629249909221782919464100002942314344219121831348322390340298482420611601544728430942523808032261974182443239324442960661606184052540270834863993808974899922700975472528138199804509883235317687227707916008454956121949117457045847329395645040390020471871395436863305065210679657969316935642238342643297535010298944407103084009012426759691946567135336474592595349439576065264887812350824351755829310921735649783262010261591793958331815457060249736438175228608009485205294324364706084340409429178210603804826602369684719063372415492719651731550393620430498993282804595014498010038609244765948666114811268494639964553970413396789925816625577463469544567231903414798911201678190001857229648546712157163693324775355724448305525937379681233869592868266555547349786871717131677505657293634239207499018885066940938797199336784949782845103938274587164703806939879987287951054329376439663067235207490778583193241612315306457501975302832326370199522471800701792623725135476037135620998561123697849206558360522978430677977667818066063865654220761844846914152056893964876225439570955443209311476495638275257125074653971534148287667337768489001915539133586386285946751664990309883790934784332319590975703117726998525295981094585257620665582294224568925287889707155318582050907986914686025877858164495013372188841444742213948856953297381872422258972463780329821889779163190851804084264782430298367375813622360021811351087996840121999793918440336750901141673506909009994376812974740719783281267095406226760408385770536671144772515625240434880692369450010259210450909145023177280242131726305521094699441958281205197976398088916822043686426361084230076866865720297985330767075397163606761181633917900101489188605327266914758344298623463973642659518633228941362412363619022991915298339226018662297037337937415270980010020067100698241083667345000092448364424308951148934728411162440128504608129189049169737856775814646985495946780529129393340942732194384038391546292461978141656682749598425848892240901302841405914119285206560192172879921886551027642200776671409660245440802721613295125801991755151701466403507643351259113918978104720343267893867988917153222219364265583957707785500455430170207802954303793527158730560217814616714592926442808792882593747501047790652601601330008183181879647195453470937564792072917900593661724718828821793902300087605514702559405623380627044766993005496412656499414650903127987214633016848176204841896494608890553854392598641154580838205936156717363315778402152059765854061755563949135323216345636210390947886827211556074014187779414505943649441045687047393520468054169127128296511708188845673153187380374957177527590876533807893656037017737003133346356858263008461956415946429177184572386595364398356350230299736519691089686781547603411911640994608952745021071673215927643224048864848906134912520885132175634782915939061102219005678274145470043219028173890433447826712768375993435063170462578412843269449294857410905220856544662249781783047448680643244118589927949420197913675726684731568668574563793242097389743644089174813516644241361281527220636336574929020324122403711146094090945499470083955929296211042341303627560838816033546451101977998528622047722834417116034200880825169147478982000058217810904783851378261153380838130756191971981031032191697186508519859950696257058203625871778049966271847523314482778899580893593014569497008967511346676814617082100289745731712112289617695022464562140980801858014460670274359070770830468550100637876507493899994570512539882580179544040403104509592923974343221933475036703938241565015685249347972865801818162035027322367891243671789407837335929437796983567137443909461905214248393744284674258228715062354457110501338052092488458058285708381555485913998690927693173664230909436170495767056096949935330577454505226901113599232146187528114420119367223278415436730730514061163856232197431366448414816957925194436336012814747948375246713571692200868729111909527870327804171067194398410196112875225246275529377022680251035228903511897444363953569258088357900953788340741876470455543488500998753872309233052755614354303620377562393909080079337928711980955117529035885917934559732337979795842737085259395876362073918215774519330224363012262102555499558479343735892029140913303890136643953224091081240786497303178932057378794797598932701932764852383028158982891905154176030851815136573572544779214943474506713952700181165406920157831489205410803934445022464189560671258661726483296977754397430285445872625243855999748518848384648639816277617861391410407961156686662460364953400529272003368787337557800503745617607924832305201919244663570434129750566037559446529347901816739435129971160444618372858063166948175185810226745041090642129698880930699947189929416852385580624582068395441729978208051268451823240496311657121969515194483363234769112108501640356809800083939438529362089735629162990910792530822847600863736316080524224001717768411967333879073487742112536372024577039124094064941586753006564890121932918983497920558136681996126191430142011800837991732238753788982822196405460416027238225804351735916345927465805018533543445905744096438761250571446800394170126442795939351603472547837537700927977569838213231051313985089026807957390362672989876033840562470194339397057926813426447847719001272120070695828897250479536743235723334982238967049683144375798170597982979725500380931087024443054058301193955423001288826411167562094935135258655497710639432584301301029272581803609832436878835221540593766386316220589259792828594042837525546709665199291601672672987080386956360504836947465678943146323613960517822486769059249934335875361221619577013370943035962907322985008389146630131449722140923508660805945766336445305811710375409873150330145118577410409540096285372678292940024757853512422261871712157001635284085628766745852775592776566847349675295718921576254068138360911287624505569242142808473012453960869892737407636453094854762846641187346447699673179715767708934674606534185063265113617803838458630186980880060151714466585335038914710668931568932563787415527479200655194635486713225373119033612957247479338193645482653156622449349068979891793036328948255366383881014944933513165487544295588644303278900113403668548926811804536820398893134951337656548775974690170748063125157841166629072771557991982478133627726568440832963122811876316100650532524966818471917355795084538783174879088521962070585981458611138753760508678521267208553173606338297846267421829457837450283730087107191542435725238046327414330719108737950848078814854362380654842247326420467317873496076887909668817595859352062704951052802290470444133301703730503889674364416702314279139628389319925123511817202001398963177177007420531419659211774657105594738062756661478321802937132883328594138079299806250250470954650760325342022054930844680286892635566014985355970598253961488602968705116016493170629835934150456902679993045957885978256879666994783213946343392112094612772928577382135905336609594430134174945979591514447480285509544536042465846366043992578947554272901487821977816294291112892118745957849653198749590271255620790951764889265568114135218480065802886736285385043548518757330653355310635796791160310629973593223526237724205378177637568541764415707369902537797760676701193742943684023873902858825992638378654031266433821993581215593499321110103275913488175539714171152553973541750885224564942233630618777342033231040940409299367500674022143857497084321682867243214256284933421229527242726667473508162492854555394613565209047158015121401759710421920211986630133436371892864188399640489306075619481601385628263449986869139244956589016774590465848028085536275856784924250074165397818469987114287202470713163946832207357291661929301305171710482821758525360548724967279717622520044437331553447874749857513574601059946214269690851587571069068159381761927741701394064984907854202272509032115049755274101779474016092032298202805890823737651221242132961242891414854445483939479412305192189609090439819447231826513874243756664647860079666774487822601239084747458495850396188719216385977732299427800022308733276367519504252172553066351341251291815351161566976742781877265362547594798136095078787598760069346800015643025152263026757723484702343796273435564361315076808924834678566099545943520041842514648567786009808398252756189605943823780823055302878463453182159024591434605697050089938186296767607191197992551576213064453323701646297025094731984694211323160530607587720225146487004862411162130932036891932456112003742027595374289551446255009243996153244448166379992543345621740241482150979328862002924064774608825119261432761976549812568856354791855264342928194834714935217633383242728427987656938624396402837083827427131637835543493849227352268748333819272468687872750706201137946487709083385589180826582756305734665366921322497778683472050951183398705130997919476851203771399664289205208282629581504981091165424748616770386148434958190247475477410923816380121722148826347684666263747879280549473781874637852508307107714308316195175563526356846824997777778114835567913775128365788794161369400761999713997663448513776908669934210288909877968069589333273483954584436521772731315814096782191614165887536614418658063870983148358614550364933686547920942701248673192034161999085566156559461014164303560560647066497947455996929784876219769445552414448556524959904069662548515691024376264218589672854352676298701791260076430847363442882935794666830649991862120820591410409751081229463688614290267872812635615435811954710657066867306805021176558748091319107146189223147339770226177919201433314763899086988428390046559825978332625950823483798456319375657594482600747860019270224541282490433407934402331058962895462600283512350399739993024923213340774211631954048194732158611411950404061915991306503831734786482445527656444961816494297049339347068622599362547869376650193631483579948610274843812068835188736937777724045823196499548752263711629110301645294217474246713663286049771943461101144885704787411987504080602181633898923577013033590959852816368124921965887026486776653424310680038521393965100397274961429398243259491419061825593379085763100954072777046789407787853253560434051178603415567842462848541480165251063033983540495688488107793171170523328887515959623574482627728049573637855291055444497279585851024269372181424098526086556024158213654200654135328951731053626518352264787568474008278666371554087278719723654669447548302465160644183334584608931317216981714529303770206787084412002911796256962971502002927306555074622496311903618126182903756502254242990152532619736622403998942180380249645077282258708461904869605820975283493575385391887373306226574753562677812338643524042581193373296030872127792562367075852761517033705165042937452361394235514897206252119457904095830721114611672588583035057128005088203687250222179758218599812630074810603513416274072264324807960636538896981704326962171050006848312939095857984473625384777554950283068696770191532235979270644059655663168159148008328571019602076441020569777067705204310842756745244910973856660243890556535938852474101513838964988340213160091214566221390735877943492513735218256414772620509281991201263222213093289482704204257936106739302977997970843676091009692846467952027678819070707818571118626770892442278533355389669697283337682916163533960862399328380169798264974686782750635821501835296280221590928980344431208762145196726753806721944612162513408921717343598669742709522525171781560295477392834264724093008081639845091343541109744719633454500670073506892398782832733630669946959992457724738592610156972127917478338693542156626626247424819714183537776612400712566240003922335610258544574129615315916624777060447155967092834645568273642002741573712628737123692941611468517788943729812843338158140875664892526429820557776673168085707901373520130279469511032251212346911453555653860556636665722401191097171622729369905206517842381101289291035897456966837367057530130476310457469674618976961728103912480647995422188461831548354187506845649849081473964072650303480831068983878352878482501648191863112798703179500421487977086998623841139399488364528592389526811194319186905559369379267209194737044149003940424285841747484377839091365602939161904844212196399640562147641190959445504183224132148660236903796370344460928112342225752795460014774654061029250978856309276849689014769602282127299985800909288906219485761571399485773368662085462108270741122519021339401938110088046983321111853032025559884832792439261044135505095965725623858136914598683246945306973309302141808888032845475046580268291922757650334805046321417350186465352635675688439032482813800936883638792910865608871597651196801680553004020199901681652975875318909887258344428514004903883692748050607710795185431605203318284326513585684966765444467747301724027897189400685474281819997712945405077301798314342541944638314277260390460196952188003686275080698929958040538603745860053300359196141068707587776698382340078198867820108532493601170212496500027717547125492598732934542040122077197978838659027454960272248439552093900871041978729779782928651985173473115952381209968223992226370935881664441696899716222853424679780691238532266663098604693291181303291977393314242916079812015113581410645385964550264426197865974066546435264753015244053930726256939489563281779998493473660250776324786932930061026551430936255219497424762771270671711061372859133640126452715925231265137774413147523213540817438761874243677292967231084992226442362152242283378039244299397810061860576004052138014126345708857611771023564426063152820101767596015810442891415082770274929864450161270823974494000127680264651164803852733688329781137778976849443721990628872018424311284923725991027439632687249443906160074197609724408499147883460448001043794308156646055798569462271630133347780686770483887133112875430058597010382481616292994169763311438566935214691246597922223824312638929869849640173959883238391217018939220947033588367871096995589190314261734362219386733870715979682479111400912190791447198221093511225609361681606192444613934075449080974000303354279404647776612809563466486125987003644349561469173791743295308940003288321114516427064280598890792062550466040526844585406063313555642002640135662609729908526829354000902342171253043634979857006617556746603244126737510432650321543336961455679872542642893333925769038154861931654500750388341629706024464186031373793406227585549167419468165628341771803271612534186789135002668671701908696936820510859355368677907504320455590515311178762964057830775292896212463490491238244216586694727418066438462577288033415830414752050172008532917323842675908122446360900692553367380937507461567659241877959075258555048164543103255345820601224134757145025916676556079790014249879260048738273139667622185099220765537261440806273854518100419338264698790268696838584527307540650034702599942538264432309591156106567142229429019263518129926939141397848524879124521353418596169493532233751190202971529671071524783021249112737046260363904894841730498046165989904436746110860630536234479078117018794201692054218287329443352077072723224154214191932507527136025843737767471484456993021804533991677910754092652684241411350548358325865646026903389393932506929150900398858961549412532747069466655162279452647630270776845448677675038546922638818153049404937123650499997006079738117513558682484013849152714833209534827600707589368954174406012271973156498156774400047262030804008419509746566913182545574723246159961234125490576878486188512124956998655564886818909851756700267741392100173257353899035120559409645308439095116227159401163621406367087031582058859641267557579992279203363672536878086715177595869987390003663730807971542775596484335001773298418482888412447326145931398077016570475365505160366565278555866737904598876393932277560869723582693063720310156759292440512534111112278830869957788924274425526729272357641313441272849201605910657112817995086831973679281843441611659121218309000868034671742747526866865101631539312636666025783796838436293546161358486874135697019341810589435848977253249575691115596782710546983343454437572485184870879311247142845425544251134707092019746177688788708617789469968138245322858948715678648949584441679892129535014626054430239206521170808474366343917480230523989969293354044029486108684838011810402965523958238629548822258846434052779912554890166683517414343995895593679228409945152210766882530868451477398568591545735402230627349964855370178730530203188902754947689111066749733908194912218210398210008223297684162774348742180350584078824699609401354221552893003815379639270710460657636015877406723577462764906155784224768497263170755344985966507541114355974598978722100534417809035469669905537522189430686421733974984320160850200227076726278411348071313035081169075003559649970093037950720134332503236868890918766433592370246589094582259391474934820853952228578657914103623022155438449645450901941867151377107660160763538001584125442697712479330595304280940333599575131890945871151517865343201732450783297568889173462410805940095075536497119072536490818620924686078233309799612484373698103507108980940009683621291203518734379836373573241991303611854639425064718910155886774541135160958177530149578356889741420666393809140813425714892265353334329547778920341022269804048376384068353129931981621368052029699372985765983573490728722627576149232379154327818573836011936485764643503104972094610511781564281496263251334470599423139220255184876248876553092768393300725000329116549826537685195123631412237766513470157473336025996355654734831908672003161624338702811615581184543095869271663719450359817426818473445812622020103506476907068235201383312150877539982072903623970893738189067234223504551408196123166812511944282411400410728326557199917600723181781048763095404004413967802682276395733357529071459280201423451676026644192232808208058872451768103563995271271636737434000684657275366160237190560451213618292479587505773172022428278099300712032034697822671325133055346686124934087930828577271258870221550025659361579342753100869011093095356878158255408693283695897805443741103488940344262681770327073275390029524222863519345708781316359686888451544570830106689407264653386114464987046868049213107860460269357774252875052381553646794869467137116373468005405459293184966794709644301353057071781986395788633177757848666335182033396334512697442933872531260567514376394431589628631841416713734391214810294160259658298068199464734659314240434419823617996486135101162995775500499304389536182326181359825892614316842746260014351759413151951540787858077803889485017654596576049672232090846027731899629696427644436210508617696410320379765210671599294402458711839499508470295433795676669386618775058214299023434474207765456438975364663862299729100732404775054712990885170911797006684170628182824247248915858266475326708189976510054084421772158813488656481425907288875548778990464213835162749030870209353649786579997612399084292704055367927732505499194587214475413196258634732975984390932138103461595275173380998344597236367376273604955026940716716607080705072954443316656729607364756200572812010695077542805319389591186508683652689687927312370977772326436696921097507350304748970709430137929529372083573841553401013883922942624538000368287919680414684989206110692512549221223112416394682352716924856920074465060632913065559596571349327545167812913388876883619953577846956991433825280822289343542992941150897109994578670450860539393954120732867774558610904850453025970344782570273696870120434630439360539609410729145393030628839776920048653844665404060517616516379945176371685773066936624226707494011903529273967966216347456279626601375017956394620297490302009236323362638398149421949743584326216419320029552008058703932726637350255148156865610710341692680880128517756437350237110230740814393680074896467641732220005170479723839064287296839833697822596474435435813462124769330054826094156088721456083153296956652572225218166230374956702249636195171356470315221851996778341577278026504365536794067180963026764308034332227800224965990395964144576992576859789354261531437087080866306730310053420410448021539055828427897316726203963794969801494469825097936976555917380686761682351316160629350488667613627134394467852066700975784930246179559264400686815805145998776278162933276141504274023098196296638014198561902903344096210675147904242875552448477260096055545337437862826142313578749557995944018561336766454473224689681518409496149435024983886891032926967783839297525285873293996205115805418434904426825832287027304219486261428832643627776926245881610862916757201408155401646302142040759196953062663408766037944252529677307409680127121384642712801718344334394885139025408879561282210387176000908797332360456684665952188330731958095305904021750679912999930063566174909602334264673036531205887904932998697200547514473609478869738515993009120839042983868362254705996710398010520318276460222980519851249200531571673582442479854852303665262087780421409388753709291853902582184751980920248815476792506491170334804135226199755819245997884522822046396740634970209694178557398423424244460127537110109062976375370814052016780422207259002424683446503753689669530537963116828935400377079368810515595016366339906928535708612500096432556446133386139465314404609595342243057301503503097628655647504623225195109207826396751594940180524101155173349129420265866083299597260183253899111148614191541488360536792397309322692511980281815890044201178503674520810713438031872825167046751951026953101035622875423132312062172794936651134153134829214117072608175076424120759581556399817549661477049970520718474543110637608601892448671364515218358312262119597121743873793107041321090449406946244485855852029504476750229552778120384242826764270707395159539587470468916724537298428441891186157063418457113892276121372281504178278940969979342643906062327440473842460432032274404956577337462640889781010432654544148618268053869089779736885565804435091876975389376082760386819185846083497570692695317564134968720086739559882707888064755189738837188299040673596458803973557472406398573944625933851792801297171321257882796195335716232998397129436296099708904011514626854909386218878007338490505760525445272907764137487464039642747803103651642564580702838019079284021501762874397845678664895942347239066708983749092254930341500830310345333437091499374121752069096355168000180919716418179217044918040116340259083377265965268452759875318763531219941579350245996808373018453271461793119403613184112627031170774577789836262306040773974351689744024012656856260130861055681938062335370848124855920764289794105509058692565520467095982541307919196185533313771357883899885700217979944333040158725646819126153338663971061618699557912493366525108158056736533597125761436703104244871121178528710584411003511805102513322810643116780752185727123439912789003992585550915388663327845758403749820075610397496663109703701934004781255740081116120887001594488826883639326358158935389046175505487448185196672277569227907742093372825853582503683642816453193052488293163600876222983737546323654341826467317549901855858577777161933121230014775292741158059457770691649938358985436073492302525853607892960670854770148378443585431899649438125153236387645742442193433907445641983058138027180922062009018384189331041186128083185964962136194155075550831540435363697198767675856334425363623355299572064268570074135880209708855661843320106907048447247666076211818079739373497716262717188749612213043230911177206022699448235362428724273613622881886580614009615127684815136800289593890987609158103871364086167903986308223666317435775276242700409274585607543891532047173249661693529091915958528710181773710108623655212820247647553176227411218260855240832501486802625818137252739761041635605613428302592956013918746775673223695665183710353321482978719851352254032741166419284052220340673702707947204537025881668411708357531723371440316669102072786319747290712267044757684629190967231745282278415981661271847634891019935041735614220587823547829555532802713279824344104076407330604560288397083049130634042167289888812977037285365829157139737340192084807731928912696997561447979593147272208252409770083133603324140337069627125570322449875749304346209875389423635868459399166880578865517446183952656254032094755632492650887696588643986333473739257082632984790652388456076944286270635357580434283669109701866818631721417598196831205307737473831659878247605197056809558303943773564088064754797870820602678532921354143600290971382579983574779573602611169982876514789597824601266417709845384658297916250844907357730932307738670132267940476190714767659657588113521874020255369855422606424219050614798261988311833671492249048410567175326625469541954785093708600098525363427746221160206190009765134549113403618187323089828617155718107741739788100405058062558766737469697142301222318102199508068781123042324921333939983982098073334616221213912744890537184541521585086311150479712618334901009791685624916039739895042877404201437583818433654563093330963000200018212807804830701297167763461701061005598427219283728903642821299493908215349313865068205191937322822058139181891647589709217973336588974636661569407476759558204151483940616302294373851155531185552201560230557900724349573852812529224007663757346109994589048733343680273968896282517494537969447173943149428772534615727760710625811700894274449751817770414888153300746902171097193863097789655955482744819864438290800050472849695419029370911225751069213051883756087032047805359212906638864919612215102649081373724242573426243297048421705933054166511145464414780312988431455149331821057067258240080894615088263538200825055928212859559579055022348573146948876838579957675092873015287569055312497868466344829674011703249783723760852674123921564976878865759738583535222292866665453577122921939100431198773578618045392963432023402736330909924446725195140091668229194924730111242396835078341892367380365534497450019471760831869607105323202881666673431739339665677236925781766071480222641189484599192818760937929025684878013030222910878894236187414721893697807839908455718271958520264228506328434536127749274343861137485704315594543293225875357795168237345545214955110306839211963775523556838380384435747673441357577769423022279496448417544920587954455387967690139541798531141098324637127489779652695547197484518640915607444899921783267114656305169187461298626980554880379404693875533040918567531346504161538755805416153029823461947020931959224383741990673256067908844217386586894482926091243025645321606564220802771942351388197182520485708646384070551892093156406309300713656624312486398175719586063145815640438250832733464794796670399891007808544421805598120599685113222238491205549478028547745418819282528026782111374417435135536354679262222305295418140938500340324713541227044191797341245389091184464891315884635019649837582867467221874343338261306250232581869924833431153154356880894298022020185814452138226855527640818600013455808406025664288248085746841747532448570373602653805618247123436839135632927306791077417006843418657756338090708819988615153242387505012651965423212650553486257026455334315991606825825748763980193905908001523328125420808585594404407377120827175731519271424620914732200699237398448894545506818947701870391888294632242279498665436129811006639448368071988366487584212898991081608866322739824399945098500206517414991644427180352452814734324356069345164738137184923942197744610636303021314268114130967919268334157749424916168296191119283977165106213656670000058354868916801219107471095829220526774541390188013520913992672797173680057996344722845361637247058935406346082114646762615620250849128345040073022057598891553784402457059462991472683614388962699618895098678762379459635061412540203025875691329736768403747428930616169456342853890780576339377942964008323259102872153751477572794753033684949022896987978836233087313464100469240040395602997249329819818048639289622188117513444866041607809225065486025178889624475954043841802777526317616779236211646340877901755123726529750259216675801371173711346490871308160942620072114716359283189812627214287858427263373648625683662807241119025200007958724936333219953636250539819846883838095417100842089315721262438577263631444336759849505944909983955440386449608070049817402062820150247187249537276731760091150929782484459019567412289276941419483677615148447854991404883675015979630173901957062885798213979446123869400090205932852609940114044438721579553330592433526247605088392934261789475416038911620674253254962603375043019296001981192244749246589605296017141948901237436998149152455332848895676178949648678391777074983477543832324466714776391203563862133137188374651783116422847614882505894091845710704834869605870170245707200906437761326730319117320688879521139869932273149716171898262497569360501716400960778860027747990503112387454039237737717996244677532987787234335066471504728422389429485745968214493673754488724804131595207265078661083416549920053809943398450700535638064371306141673366640167819136037735650230574060296562397387800161482652024157796096163122154434350272165363040343224392279714994420036124342662471927990888875117577670507376771998949186945732320155286163543656247984299880717064033663286317570390286944762205554833451031528797660670066925368957212589941745720559423574509837521449025190611299930296631952395891954823723641934642840789881165038085432851512672945309808251039225418760617117595469170803318779825072337067562984245073391717943458925742504445967233595307991650657430472741357517384431768986037149412869385928543330089691150016776269720545452236252052905633354476485411368510034407784295935697989352942496594037138834472309973457044850770644680277927800316508402360609177104566468737986059629164971501223931569420342725047857057822178087775940497983296890731081017531111503391866126221437918321158858542632531692416193598455721186190653859153273314635773845744640771978321652988071591478967550181486377466626661053980149581097867893210670224665234600132225449110561719128522896916827100113815648353055714011158136791407768320898000427533563673880509548956317454331415267848779507680527237599488189982385500905289891263034386732072378188674724534897012283072598211753719164590724741878034741908225660713066287630504720705083302423360390465898212517412485714483577331306794083924410135857868501186063745152142799390190989350976233922144970965866274959568086865058713030916482241746375300336545056523473079691586948472724797661449213465696760737358760168245850955086778613259826145011436544568795651520105556840433000716679616248190944373834522005830994762195850396772747711207256361710985596246068381275580342569035942987813321587411939461525232738971279941062473974813926452382202750213796981746922521152810327974892243759111238919165474221561801729959618093023897028418905004035693588570957412924133370168710588414764128334291996604815953527866475107883643112896053255838223419489909512606018403479924574618375000365692837208210870980180491863411582523596491584070540194377109940243358227086903116676341335779188955117755250869740336704821696323768277390478770573904687003064237446747553621767813683088079159146165616518123949174286733754995458246518414175687056558510180332426403881744434482573291981386930127443361550991502886766625794234293839065610907728742272377120832643062753591783827547508718768820207424369393181520013228705422109120272139912445318180137943041164193377856007688181784832030886385809821646808359081048029328797110269103265317667280024220816275886391526909720019940347924974396434683931006670407977819511882161637487404946205662878948411806441878159927228927906114217472208374267665412771686522054412750277087368836634305065124975538608872754177354928777841942799161128200262721776683486222724427247028081702085064231731973403470559434285105488627037081029296817441847944399921239660779796342716235856744331671479216276199611899164880081000395723042964381136242660995838006572969973511004606168594765089894808317653537459674896252636675492411011640497475859431935927916883910941136783150017629107919878980545344852128178273734792936162570045206357458389538050070575603788249248089413563961970448975039908867930878778012698155160946299950031470361633209960429725562349355968938777672149184888621694486268030031263174074902941681769782384287692589774951619588576974069600924458884660463895378163750937022784280133724704910975928951254643435622239792719314939173860860142953171857490689518525318745500893094966825678467380321559346202189259045807807907866826262746093429280349389846212213082012063437687657478039798221548126180865477393701254209291755912000742848373349899314270315040936247310938725273077022057122084068006206193651816053101240740530199944023936588994485921387824728313679819603177298749020767353826017201521949440727922801666445016004812002794178186136965680103524403262188606275139858936754349796400981029608054511592201422951469564074713474073434063455725123776326276617171553886439509822089913723831328151878564351968115140120754519049039435979446425614059175682960162629114680732268237350976242950710326878044293215430380494552350629947516901926892404088566308044129294421155727026186439365995662772186188289746395953779035693002379594754493456726671401558078398417040764685279934456272037228753006766977237036166004875429894192452724342365174937312697763848431414567976762313786531956520007740781693299554186389867500843889573766592755461853391379286893535645737797680027375111536539186792856345475569600767055713683455593520449163159826760819083241497395139503434333255186553443802973203847313629956255912585860699221373422443670141884992525023302844981768228911542941983291048178540329437581350450423743424139807576146612706114138727256219703405326157239029127147038364193414098797355873605342172050315348409682004989901229008426403141734901536331904716377635311555081550999349846380338073614880890747300080805100912648072501371159931565157828055317975724297179072164868271208400291696152196951630816612249151137464387708295299431292648308497051688555772475952572942606063893625890234591117565766705967003166624769134472595724061730606086121302037063833014480876661409071269109175581276492258920785148506066036369700134522786778374909714456566744789997987720415781369766601382879763995244902971937118110896563162652433983408001398333514340553565564414634841573621098467735580323197092983815254282996180806262760582074006705031903817044604996147295638479675288693041848899019823181111766184798056324489337811256633150777155902287304119473143636715399167940170828342891138641053731965230845300093544990632203085712945669297594153746869834274391548118446631512172639291612266102594489770565364529458045297251482033164425871326780700693364880947360709858563540073634752027601103683860320745887982977569312737164880049556146151277718196926752966819120342308562935475981055846701335281213376544605693329126764278406657461952428437689172220673640686052234806611115963846645835391809362404283388157585453609860263521778091179225995717158943746691426392843773513328967869676311910503367278276663056844703500449294390756219714116004265541239425293053176171126857710328463172152100173449823497435842299852111917197432126637432669323765875701851876479136471163933934210716561685523186102767896360602345096652354338569320476032227885406624749234002312318739454199563911402203879250178824936328776895468493036607710887325190966434439595826350090638608985174419376335874370441124187557890191016521503044132784369725656446234675196841541372412386976486461804271161111200189806952218502021870960781560815772404026893890649061076510829910531724881718580152718690682642535527366366874018548351348065118614712387959151954762188102444422144547114144949673574398877225999888812927083079296485461941233368876000760175554278340920713524020597271074509962018392843934382658697296444032715732495754626291879439592044827899047222007960991894267474445540638066689236690074140472429355951359469764939411693810776242637446854282322475152453799564761418848260988171720444817764814111924937126705713138254558230747101724271566378676897660629084091818664792381762883165030420319675450661902976358384974918113767924127428217606517084550049860870998783360643841489121863367730268364214868639324978887540721397930494086790811053104994681111123882933455983923706073392304338340651678547516894406010059356616194444835528607946860378364912498403727630912159842383573519952805296451973762300593223171987384028772535132511920917077878551062628720429586400550816396004444011591650849498976594863660673967714428946402541257646717105704711163516303333526327074276981355724339104988030162007320625479910954827040542642606266646485689216091043633496947176700867754949086616199858059203172928594538288476142705192112606255514513290812140068194931209545673297557557499550844441706675914567983440228096547174310594228834563120262520846352915911544527437977675628859962556806238578725195455682249052843134925567350199556077268914408583450744086432321593012723128491670570785909200693427413317493516124751789853813060482491120544872049618813614397161917557796898406635750489163516684921590864268637418705761799532266813333738546467954148798825452530034146368650552621656087417306333155104727176833434078344111215726279074324299355835087140867194656139787246687552113541480552299341152724476922386090919313325723955095271979939523008940962429365614432520511289445520985446280823487875837398911705167232750657126597323759162721776269736425996164492038816123145680217381229409361115294453859567463270527446487725075770936785244053845760629902713227831348453295775792212993274714765089999196116281655655140109577695708439332702098349674833761727487332198260102570192269077586819839182795720125713002501785395378206940203560347885460732741028297074937502934680017950033997730629026008969977536009460049461425734102221711411721508143714518711558621477509471919932570392248753097380584800097876923558677697497666819872390295883166961438328376147118595806741718919886135687592296457012644778017654296579246011179763756933222872938324245330894430965749815646594452145138032862899898397379780662483088361098115230786764241101791176115325583156244248912185341125599038361316640931035622939768142281688761757683049257184464256608113256677237897933424355903524403674102892606143956287955330642438242552759205284061231308712836349653222830084609547587960114401767361951622667040918200079400440948101577758036907213565115730515009063381542608676444133312667254073317971311515300977451207127238899370920333191859330299196791280741378924728193082438242287234074041232574917875844986209905934611264257004299864193917464265493159476548530423280662583514891534332408723870181453271843073372938172167249150577921331068926754244613797088090908189589304739653996035379086143088035095899885734746352972125589188575682343218061588912495760272961891849253867737902149973128151176224499266272153890342326261635511126832042258341372717512932240178622919658140144762854660478625604896019067127906363477436318765934243938830864977234755857237028880813034430906203864396965474362506480356823528243573098526086923900699849963497162062614623601129844873148344751854714221145587853427684907105382879905317738994135931115109213914190613111221418115074386252698353689955060936180073535053531968710874295660595272627072821569022803263720122244259486950507982746986090431126771468962649062639559113931986810738537988969318737081308642842430344920566341640699675936127648380055205335182715005420924039489780160703976067972541893607824046698259023098803942604171135449684394604351736181508881935233250301477031412965122296860327097603003493259427940321026198928613237348609627414543069213521899453835315381582992498758488102771732857750903109875804129438998354818555296307714366824164542689225837550745833929159705850309893833534315327053893783690525671668965419783953522998436183908671930922784440230750329827653902471228566401563686034403216234981280163809201250680779693637959694357862369616479481619614542194858619835587032243034208247483969874306501081364160769294341098513223309019789175881989528960104027496021534971774416078479871608143137311858008196079265843753346957877357402366082119486422265297290104622220933994229505141232584001868460331626822643903102184550879859748695708455921937915466348722362325700133408726375220828408577296679020148261845560219017953873394518640122318714681522783514662507315274308625127996575470538996938699592279313448132411253317823303541489413334533065813547717978420465211407140962232464540812169033760810583792878008616476974863686957941140126849447813692489773440103070259139282696034179148379526878293271961176962183404159385845201393808559108189844739142502501690479937614702169074921534820358639645533942612328368095309455396281723043255161150806278517491299979497596950118898370663071425190863971353313726253854668618682497081440366169290838562320790682345615541103879296138396884095001934081021651516511517066433347249216381567640347964662830423643123500396048513597517078785491688449620950729077261365758947022554398818648724578577042358157881634037301020820722486905691003173997774080707000008605699792202918183453440114862417153128336985400504680777665931473939789208936323731301688370961781890641155648405381473945989419865612357400878572875846788998944991118576407830577215538243666261873627801699832098614875126357402870824165670830696245986719724641232376091903255892880049482360201214337298510954766560674663055886385037616893890314264428354896053059893833753927003398990828248162831368656822947692636056339679660521207736759089382871654732161253721012355158487737411386369213230134998934747427094399941203138920424608215197498270299909672412403224183231816092577755928485509836363379504313078492031599530923090266928545044286637871613911144662339435838274339507201407571886465760325303555129317930527563355518535998155402372101922495545930524971020157012913502734307648908608309018555256388174979585622260723919224501822896139048930957313621350677393771972816300307225786762162809381268154377641804427779526869689537493134021039542372434153864934828686698731909786105499367110777193696323917356246731529131946594861260535505413069759193326565612700378030709996697527992197366009863285048669529477050696814643551846830957273923905048578158199964663814891457687701466021391158126697393562684745496227431671097297209002569720338552636731832826227849548800863167471967581056803698306679818205015000319316142531603819850592115515361654151254931891364157517470510651103559982692678337392990780840160625689353770752395922661140542561082296776872890298676762611982727604582942664992210872347833793541337119194328757825954654975280078720251883555337541327811928562615727923864439138744757001584985411192022606737613093795557492538674865176479325674191896563304196929684200507865015026667218574436031113983181036714492787788524142821973406119887517948867081391131256381257497912508420715211134166136491279591702455275887929343489130786171311460758152670728089582931306177821761049350452667773626381462613921493713198315020018027609072659907478504815689443362882177570751747373954077245356857996915722219835143877267889074621276392374381670606552662169021849619051938414185538097244785475902620144772287886538947500696645795767898863602236313972207972672995471685849493831467640634620535883245710463607755712172682479493005967840085024192324638032112717226564234972933718540521766338390003411689132846179749555379953552876475116852933437266236691155562381634621123345702760224903004046679232525683437680575764834994520652492332824415428795925668394266996312286197949741508620143010208944456420206250160795111474693936888670096604669984122095769441431642607067114230537455850862608704728500469351589929621226695680282850290157247594400710058450072145092195412925671703232453037657150780138997312402797850990421498382253316929700617660959486614824000432963503210343623741348844192995106387214195189073618912919968238512126831954855392405665993007219082354815494931359685181801117801990723196754317439371266489861311692777506054035819469227237839614724699770694411989788314609375362107666992514235094412427378784050845185439898711485299460624728161968343657592384062481467946085441086562056365059499785901772824586957379521740564423408613870755665788607636250040049515258739522350992079024909696750914910915829500645014440562563491789389515385118725120042254494046308549846108238615190845627364977873934271215639375716290341360464418628381515692431283508403334011240386596671294114736028268583140355757092487687328544330569764078889410325846038775591949207307845743351708168107109254255754730718323847978655247296413433723493499122267919721740158072447490476723087889000546134882218904519860026375756452952928426575985251813504727207368018239454232466619838109716258062652918894207965048150365273835352079354553314821044029749931321972667928374185141286494285543305431776312306104669829052588937750617490981407126869550718460686367920889649672454290970033712090256812864844553865391812113168523499244128789094633290022915754811441870023807715233994077664187151431420172219938095157798999070452478805319099734696294105172295101750900930308614788296482209674864885751089182765127573872233289004959995693418486018289090023258279271739313882511000384659120701197101395621046793003073281451578823016588044741984250489794454649554678342413996355994128638182798819015764341555438045054299080970033405143214060064900367111262119287461322506167866318198024107342560710664984058104661953799439553757737566766752327120069607107594393256816880846201725455194069963683268983854557767078104559472731799349965682855786000419257995620383603913310369914790719786201230082377763468436188706622428538440909543118010966723562827991067224805504574628142885002951867159054200421940692423512629011738322428391954648388350563850351270436658730250611918681531410110443593909312240831307467497329267918640160766748430457544216949232728657460811073440656191057871964933264545057814709644061158915094703322212796407004253754740107117870035337560273275969145556974829316807375195837624175856668968971673257441837245215678270255996967856063141102082021943629294318469501635648087217792476835214153951280805894341232281613597243963175817446311613995802817479285032905902912780845749915363636488030604480815463948460277896048306282312569520564969706006594996658808833703706641262632123271297345171551210475267973087147016317722058998739878767434751501252330083480263217682121855666372370141551531239606344692372102637462264057729163443840806786409443122261667605176977540459761946888072834453756853881878344384631998026649354371599587703546948888051871352967604794687829078927738071856458792327004700358279431060861057427839417608504669901566232321952496235786429288515330989766974115640013749538793463506694057253086036423673460189214659631292867106422289604742467350006941352731071448069703009928706740607766316011994615424018023577246229323427833126336663168020492757556705231176701612294635556721983520272150505532992566739670190048831971007671622866888173210816632150033616887840338908162078700260769640692485750809985797255820996862491852712720533428943418390185373739680394855709061970964149503868511662621545536482616050373417679671724089016074027728320719210387479399383301424832332107242512335987234083866053464347758279289740743786207154710173107558346782715546311120228435071126299997415977134713822122950073796669537182048250997978269793014388950956870217199598782494693836154781059740004661792750918200549439033918602321255782333939531814389040622413562570405818978022237899332735744779202467922244269508053705413082794407223014602263025284659144445298727647074258006555509646776094158177249121962489712000309320080145726271349182824655463411131260731051530195235537590964065174260715183473925026505662394074044051899299822374651036754082562063337703015286213697425942668259842293294703775192431514795134587523952333349061235836065389069210095109700208413308878143064446299388047038238567123997791094759177111457174348391881720132679310690414389905722889945409114622720455898651151220360678371335930155962045005729798619814474531286629609506782355587523993599865439204244230728480849240928469784702845298424299565551802184327744424544147676796327455551372571530223749272375981186829342173715691840882905617955087177132187881739976178241761300851414282127961082676222573320039842126362805597277512183774535934731925019713321323641946350433424905628443626657270118928574677227253804529261694802642492637821381017601098074839646072224116221253651432055891472230782521998408518819246833767873395576520335782222592839626938743887877615109643225015158795289664762582331713094826454768566582361784746221987466568601532327905880827094391993965484768821981607655083787008305983358363583292990538917259604845318731690456228242041321708712372294402397956062536028586319308755467064506803766938538767463369582814905514699885832493898289932634195718117722717408279422616064646875614136764826628327426897595144048373935053950296939880042271105013004075232350259476042943904158335102107417512279005764667533831495029276381827062163063501929637434158372360097901983117943854148802907214195050422991402396844991542019228570926282848169387003533207786453158385352777943918336434868776033675970207759468187435584108642027483161656433793615887800650906441141454076323037201747745436441291489419799761801872910439052578030052110696086829346975156565801077681006717702949788038649513515805850405388643906271071488065354338237325385083060024341076273218137359094573588375983500962391948880325718229340066619592420548483895831122443690457902791921379532518937318480698707229686754805165752533200073142623283267877932069247999462304849078311061257491987690974342123777763071019785673194305560919757847133608273279638348744800316972366394508940284132020596260890241303565277277097934716384094456098596974060419011604401743828416168508954970187475637820305135101770046689915717372356650129990632093408680479506534249671237037982167715483241394047111249348976431275536688200156148489003557375909471209999720106120741416943131151264119005889724838650986727551577451085149533347910586300993848873133763925224149288079296241895912663946457064040191317415399385196420399793790816782855613043141027543859173850604069028523630972547530895116394890652306450812195333172224307850361406187367341075083692886002187649473756069706428918750232638983371711247979597082573339270277204354560675241397959217905218661701791061331639251561213382478682553776424182724982956651633735780042853096006414686304241386173812183635728351628850875590264346746299534846443773432554210533624987559413783872348438502567039032809631024861960725324508291041416966023679748202596172554531024237607784707881261258572327695893094082689138458221910590245726373607117156373542729536700587216277278176662897356230244968451612655747388747290857978326975439983198044876369127196786981592959887462846734241221595646421931509707980620725931081584048314217497408767441033703816167234668214661994066458116085225237972282394046897966255079480567247573397293533443771500128676460350758158006737549184065478686441541670039173802193742428122698998273967020865035998874672826462880869903779990893028613637229608524810615594234278184428107395838966774357977028328299967886559364028032419604896170511405913104106104617830638826230273337953867007942725356487750711252491446419751407517143000360768867355881816483995248983376061105542557143022609569897097021773645392692904293313684414667746356247984050200836532010764887691929827879836890335750766839911728941685147644020793294258853213466764177481015044846318990707685293086582355975349736018740004606739147173717094694593817441594546780165426668977418033106166847167305428031777722337147945885372847247847086204486150929866441769771691517602101373803420621619256570345219632612985851577464920828386428688487122606608378915556659423034510560666437617458701955503200679392241728062702033615014566531470956247502299432164506840236430824455141747007155972998125464213078014115339413214474584149676161999819784259432531099073548389253448740521325025525511624180556383897497283455722178222921630817374065966967393417597597762453251022058463460182692034111593215590754625237481175060375988837056113443413765838833226410374951175674737695419854172169715226372647667887104043762761594284004824414224218558922157303950753296305264932688707603424957182407855210910179921746788538174680113061441753358994178537022005106675215583546126889854107344098750136656585884473610229343116734858397292236822885456146505450169645213401076545195483767125105387401048858741874990692577223762887432541814963870760867884394199174299653563191313485889199045474090896525227935088968142566233583102021345976493436140783996385495308222466261431036333757384305447859796478947109225563864005412897025992032868709847223685196458694330158990112746159861029317275689604268137564112918483842279847143209693368227576927204921582449124957297643922525610939296222935645436042882956084034398787826389167706392033818380142957930567224768846784592319923567152559269553683751332910712990856547144970637156958502901548904648518577470278522548132860029136950237501024018043850044544064539572075042940083726420427092229350433441861860749317847094551045492756585127806606620382551479195657323478297490915631240850887489551690120812310090292260748947684811429992212820916685849512652329409110090453320386239322572985965347394892869628264548930289910416915263700628860090451206284890060098387222626412043918122822352933027555492125515091651612016864102749681981054704688353829492927011483139451624651568955990352812936132563522963513767853552073714175186839508304421655616287484299664469869564836398144619547850081301417361791698715512500416233525218445257377608504341852291019260612192793837312889360920037816693216611754479546575683633851975014197988162463750794261776295347569678367060005156092551379280143649665962010152635621389902599915186422789365226001660498073972077500961360678109574823545033862035231132466377090238705380217952431211661175157028975334940750725964376330629526114794631222654560130594357386267798534966613888210190683511041347066392330586969911784721982499931745314813293202167100315690144114535601217151348055645221776472964924002660460280886967093814577822509061593275093279020827385790078001227641965382563558037263153068769682637131971102124231765956221519611442128184717082793489994962155109282491632985839875117177463451609489781856789732861367666450203948617344100480906083086700120056984441399197136662775875093392536573884528084776152950760267154204300705650488216986265901991944395506846465328138527245505003697805374169096422980008821872796073704419907311029320358251921126398480730450843092155495141055324297865795708198745287238614226416103850265556592807562866215836352787173427339025508024963642838867346941850878668594008289619066148057206688762527783581607559848678084161063539144878624417323080679652224661686368165505531550820121793066701893264334313349646590702610924217737528200400757519734130141239336062455502449175001818003614189841314905528705598577414188306979504774597605128672884763971188193653803879037810846709190134779196714571254527225003477964810513727983155867403573146316319666808491506132960375319409143215561683879007320878977625093001719017465951373713222401573621246202217895626324614984719208095377633036795580817249677454198351326351642120589217556346349320034316086806884299592652162267736839729346945820434287198411657746885732017316562761219785631933579418803380617675796791148590261415970673826735360170784350081138077068522652524336769512993360492956776533793985081092738420873522406993688477489781047054671353850477438370820907044386963382136093903606595928596835575229383325324066483946458760902596973782336660540246476965121660679922580415608566645926808692124086183782784940947376393781735320620970144239295421842112440081000761612886845218021644656287239751058599297610685589622956832944431486800725478274004688667193268696480378999993052483215328753498595936698745993608887087526612343562528500198170933602991768648846124403800832568912365180193162971479130897390462198955252405341366099935300368202498603582949186876979164269175860535309820652784178966193478172212836157862530717833806886547370462142053902002570770505173077204846204744537083169661749202279430099580724760034694156493064136303934995615717749812139331624697151127047024364450192713794806231466949922876779444756550012885620192049956051219163911051983075455005161969162298981071410042818528419903565647710257026938114758243954851310255638737260620863239750626346381350059534662308024360542796261516320621458868901189148185869304988296358114299557887156078261747024606545417485010991424374189805670327974668599282003358728233149897334815416790673926929517065886965158170957913343167154098758111740612480181622454542864816331591778757327036416652604090942896856887546645790532942151031022601564166935095972188263820461680442297140732856710015448894066104732687955030079749484977701141258654685935660009375492961846324596004430019707508657579997602701196058901630112914077489239236015079180160932105984426284726402099145310834235042631992881713720004894216035703191516937004049395792901476679313044153833432736544580550307902032052958609977904627042753354774554601796795303804288612905267739108575969144963662828888218403466785544540520511134025525926485489450499555996416774035866048245490326025587040316271307741771672459603294689633026341970104125386083062845169949313884421711969911391485577786361411350793590679095920058641175819159195509957096104774506047717298534566081861405279131550005051570273378104297311553912643851675749575483262039160154457019804365617175871563866640852743694622631326994502578505188839825487167242225654121025452890473464912621013786152362064750947889380397130694584384115204454837696214485788868594298953179946396269335718921610149578733025691274787645028882260179885482680266830500409354442053803708701756287380014333076214837185417520629254897379074851215032295264264718900270547622202407723304257161466059618936753517023522768087405432000804729968489038857337672740809007238339073017272810163502408021293373055107426959059450465099505171829333604632068971153629904623546566598546198156264474780207285998763276718144840379551936724947043552435386840605865528303939443123241586053281833393374998905192758865068433352994687511508959204931825271153239670777457174546284677382665948537780672362977230307751310376285018530125081796108183420762463361247608891128298888301874998279803223657539529716146926888704041038089763927777581008941684445733885839072771442322915720273978734755572380587688737953058823700326513240170598889090830059715716943044370784641572511220040880301767029428257363756440937767535830131381311728650096289059743904039314451896949048716945425098404614435860945619349315274894514974891065435205876887162194244752985661713187304440168602988225155362870943919934942341487099855904398993194471909357990900202823195953075778399722594280950050442543801390749586541415204317261087202338103906209353744772252711050324407651068045637135567066711394167195040202794319748566232805458451632481410472950495917488890572206588741172171475022855456670340080622270867725968047520837688719801871038772159628232311635521383510921875088904600600938734733762305603218422070384574593795587660457820121149663885671042709148774878702386497653826877681574105297910768756550718898949120449060528035793585120962573316577626011259309462632905501654307612464857418317832033269857088374744587379054674919479952393180720961240657699988811719061953920208830831589966103493081710537522754337753920704365351745938829030994326432548852440199862593717201844585934155760096194961044019345846589263664196871186585199677775503988560227124742483990553593553404467408180427047540079470601399242337259407028386745830100441372651791649994504568366308879069234598698508221586515168568374272767238404308085520034736391462921972598207074724796197146465312436220806059410133239405783596104210937235090199473097834016635743140574663390404828229329379521036381538146279167125835221399323362765984470049112751747949072367938208531442469870417055318317975967354577123077928080569466278551964172616297055044367301058373821534220012467645228917112299870503817443774662092617979536523223222918190600434638643451969873526637993313021035076995013961441945477467356047419507997377350169186896727865729634312901627497744006040821971468276651397005536404980609543505727489964622991579155155417419548960318904202476502424744497906414331033794135122927469789536433555096225430331507597035897372065580924898599632970842931792785743417029299094685312739066459333897750089190327715586852337572048832076855625836718560619648761592193085049245934535576075766403029045086863307185175109990010372607549832436067856132038956097050487027599408354806417748456883599991645844675875577322902980834833466443319677477588123746224178487558379639491772830215352278917877939186903338365885747163395013114995673457238070470744428480032710977307378908482953660125689619251681264579290354947188727843210282164366227308618782887376884541608764898007284059791254059281018972677064082267747627102030346124510310903789122689471156512056228632362828834337841407033653395794743554021642062022260978554841746237620157392976646030003783604097246807590823884309054514670955909780660230808596690770484742360909856115804988669518647775394092754294185081363896006814112868770313412110639093768762077043725741009959440965224902932562274564775676845057845944153477597660699592628032884461643243706304976140717861023114380057666966428274888401577821610158442545437062174802756533479082293131090350084990045924411421281848065240743441382526180238386394889219619586273536370088566983209549575379401554182353225575554931124932195005094190681336761975243667558956776835033386358915401421665308573327740634150097973914261805504292272562408005214477373723849882164208669960062592937049981185694079770786505380019932335188833769643407698846696323007528551114798859023386804998444031062514088588934217623688548492008543426604415328351020121147952073739358591248034418690666595976601023424935117366530853938167602064472051827706435729597434627844652148207589898958599778008112615864088770668912989151859773200248473495839909185504359872832504313037926297518282011628376837210174295204523530789949496435490700278879688836565003484439802847855375541116853066479860916710506079831196624686912904166160100727240689165781646483666809436161991519578227465672502166207267176679754637481859241435488868124425931313231913018966673966250432704057717983867371445820748298250272990810381760280773209658131236436416347503201172460950751507394959592066590623737145148416394029987869985065290067367234075451090089459083735322028497942294158279441548453879843165775064844864290767412018184122570471920485411881970801638530950717767742447430110980913577817264842181525898565014253733130605299031086702264929415106110235256431074181023053666337295468440780466260790481883339507324849062879300586863540526558218889184128416410894749289448734715950957791396328553209544574580249713503806717012055285815323419716287197364284846813774094780957345186553038280437984762980115686877893207686899695607199684013924100974720034515248808846242482930664481764784807577806278707056884533004743231831756146100015564470880102424352410062908322182093285151703122068197198503018025060693632147728004501514045445672780452321536990449157904657769349186361100757283473363854022468221203235987343824538290713351320577810502475808688061020684240334962088391379755917812842399959550073923563634956757380782749312449629933893678078122820074238257780638365720141413862939035264448171222224077733346812528471874894033594237642843919992146439336647830582158623511384570675715090961961175884597180157082471687471865172466249937606125170144228149832785805702270149846126351161782035072255721156574570546243333332142532739508266414778814580652996860895527125690411611396740138705884448178636591623616261405535362340381070407630143792702920670304470550187609088533673683695347676204259722637103248628935918708100335279649323909470858374349094919325718658138926838661669029128536952954978345548654795461968611529827627172418017482653740758093937919179524343748292007032560486171336423109597180719750607019680432259920404185564456989791683087071837640338064118475018226845394816749810020434809815508590113275605894088076437817195295185461478939580785369072109842806501854392659601485005022144101945597777644834505129492011091224492225468752968817684367180525770094848247199133710175388777064911097558812432331428968393254566436788900421602583474172275117593147604071016820034195921820793171669808075387398533878294893484673867497390703146279328190917277681357976393483250460888891655866173313959304144645200844583462607249623345999903077503057315388603202611145961137439232991621063874443101429365894353552264672444834051842047891514099194819796345081236966447204119422270698193048993231653350676682853861826797412773727459339088764895392879076324493042393332860666178643922115497287214572398394397328104049170572865916935045255744930590969647638159710437483068019901006267251213345041549837617302351201065365932529132982009918844513002755659221302056336903503856327134198461547454509442048449584185171984570282054097300771251450746440362447048649138784555245419466604797798767556972031445702154658627260830184184862613508595740909148965691798172793937866775150303337923677318073265941919576143889910178492445476143348723786299029570471506280850924734306317665308525454792772166919624954634954127453325079120235806836062570331369530322510119387755493162561563567864599894530891108541494276821926709220770831201651847275502845859334674616653447983559286639068092188615977669551818728133524048201436446857104553097404746531508519783637874089599759187781952140732813315736363352661699615308153163980485335314835344812441710583741629760522733462126099925892983996412732818628830918258190600701234153172793444422715566671504287087819333129152758223271883928477237252424139176373793442486449458294071842547294455163541625682922496685237751335824336576710304387907903854462413630151271981999101935361592046587248755296888882389372888603200170014565733201583791653270128503215628636325977423386625645418033390219487019955111531132289112429429556116299826289126318394565674049103381494857324711430605252717495250209702417011977368840194586729107678556130746159659706576104448594171403266924484511697890207168455285091099878110181806209963848952949403908992712093515037488282621520578109177412071818831541355665722425538232779860588152474835113899303899543966288116883677375843014630911218638807708182529531677729023433511096639703137020580515932238380724106857642125363470364690508430695779530871426208074060276740872720646423488670425006441953760299840217583386519371661804360841404081006532495804962452873584928360243703309232353200970579206246881388117018438221666069535532219237043300504187890607029730479321615231237364985702670249381307243888624478244240236313872766556295473964784300189991128504283434983373722841718320825864063675680605557915323075279877893642255483428894435922839302958396416283310545858247012959697569071571356443514109695029495441548423172290128708760574431177631862487318557333271532271181024032381905346826462064727594478794895490022152834089464440159461584388544290234479885589693295743373040220974019595118880201916251396543800356023114987577642452787726469011401492975967345147707616610027098253807624660072105519778638249620302492535087229164077916492513388226086336988934679162961396774086783149917712535873696746051327399486107555844956670250263277973363826920677965313938742657059652347846886830028406082619996833016106931740063691421871901018041732039537703101847795873877182984316509654412273871891486345749076099104561954881673087381118063942004370121938623129660823350884268610165091281225762845323307163914606713988609742452784451121702148199028406797305788436215528677831781592837540346254600189240324215643135754416667636089538047373464163551828258285850710175371182303983100575524778959263215727430032882498494611925098586358316496597182548806340393900357821354700766309418160540607789913065571432263463192754092962628957226268502694085955852241707007512084045329324190776695958729491283661988210190850522910433562616850429183157126179964304075031432098086750175896039150749362723523074324386426784412013263046393183004831367669040874132911491732011842598638912557345198472906412557209097964921838519062884972727676362670872774671207405058924090455797983147283496351288289679903484624518799023631245521460969459339516417561698191410073346830383523493289415660794472832241661830763816983947618923962598069918117367457099612548238027678076291334516353688746871747797696904464484415263956859100779401979809046970704767375985351559507657177441105292593111563393724102557807264124906489649325380925342482845542836253346952894804310773655680287606800626010426382011295256802433381635724936115851073230012306399975271977879875543947145592247547121753368691568349979366160851150044684509388239636027241143601651727182735583151056680350292129517304168535777933248232926370556841024487334716786522986484140311091084128688102750327826457959852583956023754253776510002652667205667724737183340514806170846848747355626253271460640295263288870532200253499659771315479527504843999074299016833038472973091563526759675548482235969856880371426219821061992656024504374551723929544392840825666053844117637571816731386620338611888870483589853491347371275565321247126394263068343202216388655595622998933604215404777355557544459454355293646665977720103086360029526527162383414912485931624703875767119604283894683550234636321813078469790878603858865936701666923515130826409596258832599498846319628637353226258061265558517630206586855349631990962314197105909939064584095140125524839986272154203898833231358829942801492933117555165301815801799714198422935414242429722598270556979968125758503493699995387271419519686022894561133283320641424447717110543834968774428258618804805501302599389261440074930841517119813703418066590003719227350918085379891512850047641828411630019346453038229063376580154582596269691654161460810325016826082392696314815910174745726810753092004594300782222334881161491173909055442285775872442615765176129237008315930267291024750901582788629244652243638147886276012880122932105874600405907227977365653460799786524768670436507870338372021878862075548497353017209087634635648058429917797011198716724459023099159054872342508054298626880313417338434048048419992825675348369967573604415038488833738747679206189844598100216575744228646363824892892795384699381085076219207916356032112912745050662378738625271871147516236899105874249624892121428471107367153216750693531466336850422672920403681969200336077329883053582090105751932833986496869166241470075863666579933015053975878897477455994423705242743493380211351753797092697995020986921800672485778212374066310984641523488372425820761043778781903256308326319201782238201709037647159801907518859433562530078584938871647625010821770062878355372639112963013257154138786837796724429029462461990477264445219222993774794893956800045797702542240386453894604392257586664787135970624871256596823081544052852921772899177701726249413297773664546041988208906115647556514873360069862688729134261261615354819508439673612538188832755078015789115505367002059512509923230561359937507683738777536242377680737719452661963460027146369181214726068254834230747286865548206367267911155045760339896760691130560320681331501846689091907014301870954833019674736543958181371172516617913010399460767940395511712713926363653413557577600939118066138869995372572297855505664297099050560855964408086817365527734597148073303173013318317675069655071511066156710630800331603700000096786237829335092029147646610491702910082286054665046146002553722129579693946953642822909131856966534608354116171452300440880913346499475423398082528661584650474133321731341148075499319931134622465812537059368919149725677611927366683788318777876881801550123268002565652383408384442231224969840345183614852452559160118924121523250318646602048762583377919262495972285575897330752595715990418678316651619419976198447841875534676138083948982534213252765053653731207241440442490704085639630122653399793451239442855361564610289715655885352926522384366534813103981159412926723171927314630717113228324113702986987229737823378666192348359601654905553936130607207186463293931388944354883786727908621089341186053783800749003411005900867438698553211418486477817570147609971391463026785809834652830561407344010304658884727075111614005836856762875248040408607834593480144532844533598140728546229068982530673152650629663499804107051567949248889863539680522624191502781198656665491132672452694610037401193930637041577028937452414795604106434595601844885089827376080334249953635456082872567672109899657074868919058553687872832746876845203677493845155681871762464790080279676416555257810598939132041027382136389752845806230979408022145133568435961300721566171532107278118273154340484749170003190331905417223388712203043903441306748917683915966990204992053028200901360480286840319780437871016512381494144596529174895454056342231597299349313780886795499363250082324207856389731117703961206381564213687767737902894779987229792885210092117382013980631170053342147918381325258341890678098121118214929665488414028850930412059957586011262249516152748375525794712160346607192212156953480511858869608069265049533609661199214945761115599440915216611268500120323079816892391196288547113084915115941206640230422211817444519708504018489881186206328563393923061455577152574414369236419763973307282492353711466367488156047338445708390581256247861862881994680639186488785739393014146459194138172018942348324474743810905564695280656576919709801796650725424406332130280761508323021662680119016722706399541025511616092869899571600652063385219810342143964872877897669633728029281565066409439988011055996043774127407503326862079208637734565143477154038094542984954352944036113221641575364241777420574426690485031416676166308840507028638210451550878985893066011256795907960823236563209684708095704026799076152833696377532871439866605157978800468851863492076336060707843763102269064387412844029183787913937775088685906120206111784514745819781402880430237854858913566564977875144351059510188276390892952986601099070966651144507264587703078704760308095570424020910474057890881087016821651619634939635775492897916435250941419091540731602251907582659368621471021345443748008441204488185724944142793513580133419259240657052544750020230567203617776076397452159142506107430810368890784479180897944518443437528457234497535342690597330391166235105034639831750115168991167571312136177108994478587227519246595209309326133569499600818799705129941356758898503606636386530578874902582861975896169348378796944715086771523204099610132952286860039928307040440008901351909763426552818861000767648193300200272800139193983987910390489110448887197659826284750070986520358336474610012571158329810324568937222775540453023867065631792582425113199101826477621981621324184253717121597519136456808955414892313768517540120190501776597763658109562001716268877203494111636076046796239992000891117002866082978648097802637777122338887035151149938926993245249454470052008923294619646914841532436448959364917066751244829055123421591254509377311029376535214512307541049409157184310547799245899578118753512807490498084456368783409684749301639148151822164625667763937560268077190731783566674688364397420547496403881467367703044095959299530087401292607806946063583940660905753570692278310531530740562260003018499586261769938299530740090857788146408744086293313784202193098859831461188273868828729530883927847125583027816641988354000396394720824556259050996862372713289656266628169620081316710895194184875857673249055371205610829355908666294153517209372271210528319610789485208560690579411742132738470405896986791396068367918504254738760896973341086148631306226901600023302194046244448353918400154138967012391052201178983235140962125627082200001035195598060937662508546242481575313249093058410886393557517678603951427835119727134233108572252741775325348091510682680956719981184614845043317378544803308117445083910568010135838254962758168463418874894675769904720915231661690499964862044903587078884054447399829944294134390109365886445938731208069964868012098817271490406145417384282591846047258830155986679880585221515369370096809043521734802891681641378178005890076209217963011202795577237099669882455704155260867773143971978162403349664390538197956193810218940230012010148292616247823185721813523367397439974063338709833714315625993688869129280772412078177098173866895431669064267270007345347740718948554302571519133893497222496109473536423230143130864884572615936789979613984885688975313606196388187467761414538760236469815738905239271730035727906945511533925144694574660557488362269341262629741180832566405421990398420681541037518499248562104716329252106435531472408666415578468114971840275929535556068758761563275253869822395035603419964327501034869180678260914539139504379116747316859845693474758068120629119720933698226132294452028672924475736683713721255315513401560735648365693619414273133330549484185881158038904471949097249343927862126805588015529322251916566149969656003299478504420646345400660602634845462477727286763684497568623425951047828373310677261072145488301592715750742088294492634687269885825117141212346245394874420087189711633400885352486562268360938396785287215467429186106001698150625127338030216713829430779668945796774056397377483610755722008410597105604719570932023289023102149870850887581283706985277987206610591518481031267997108483379130197210267943519328949080850534415156042471971618047954311168930782677600952835804577542384402707949622260934371360593016443404249184564661693410142243019500709544034956591961586086675926090275721056204628872886000392510228757283723949053060038484164590726584627167903803660689260049959642997384634183380059157452570111502717772134071926907137469837190692297156218691750014502052148615461514723982597945121323354210470092744254474833449635280889659819563751255253308932104549095224740270870447835791058576635283562073140964924596991233673033938227834005058663125128496280666284914791814683915914374408204214014986813935706168142651920461391181925005390760009670184214414355461759390836900865774650016580915038462088796048591327716343776198084643458323950610835981221476108185786793186017705854572602796434301923747176933681192085767444833855545956122898867155948028252583178546136750317148247285721442725999645284587765012782390083531344716775725201786173063897540312059417862705137795129732262236974883691087301961212418194778761528653813822374398305147524054683315293179870838345686841012826653759254207720155073607678838783426945761302850321229722884861621370712327166289177916198272185759884515968816015711788838462376349674675382154343676386959808353984936268685786563329811346996108018187202592710544356722070781959505047876231170375348225992871004328377445954329628427477496403634357026746290885628791893592414713812532379596184870227945529895677413433120704482103979502819085776352897235325351965316321399005244787870382302410742932097989351951591453935173608802513585270222205189692532087634722328729778298208413701612995118456977476798113761599782046058308957687686838839483560613043347020869421627984018452287415333094377991327056952096737479875483800763174491941073271738206465478577999157693721731518295797694493025715868130667798067478638694352405144298683870462860862838923004458005710772445397160887491188075961579301155661693599859079465843519990243045554452498027812992034670145033010842351017972087158730646459972180952617924503991262604507047159219246340024310511962039394063283713620763781083066205467802932236643166226877777179558614142434945058640409928446532266758912641053574052083517794332671463110591373305427414165066844689928350455887566621067758569675048888923415630951885626691363097566980572419586049818091331204376991336977123312410370206670687114867539664612979602404736839117350098838982840427192462415494421527615536411063745614617280975420101069024051589355603822386621789587797929477717299186456395355117999774958840284804580148996052658527759697168698957960614225168167726521810752908919037637503072062458753179376416582045181502731844918506534160904051107401767063301899246067741014251676692274715362131869898793964920550437638680287081083021928961602906870059904485987943914539285621657770842361945604744340017607922112503418492326704538970453305412964003955793515843497252315173410816075358424307905910149256096646689631540683496728501865029673077775735632910703305577214562719644761347045192342359930231984845711853697879167805304174011384781885095403243413819692815925379601153889524966280936413451772422971222832421238879961441281904036765123447820095631830079060380457986495188188217297386065691409157712438013910904961200293559124914579427575541236506691910399928263108430760535892032431003220906757618546588958149194899268828438710007480732097824121840996926340389681451405730294612876104790605152470315967482742669852109735799801917444820910927350689191536449814034713646924138570487155160043531016530520960820196916505155181812417329411565313433496828680632864286433151013495933612579808121101669260030387134899433746695718289399277480792027633099029384401647465108786734996164048678497968117140239173006265683097830378019339430367913889473457248158873182797754629942553971580909969357850097556946322095741779646010440782752089598473439157751011610021383680967552142622378261496374782847188096438336888773636070418352163235879776112394165385521115630492088033512817405725386661155116850914362361343950974947314680454116009283954086957308296486241201809421867975995054554836471814832050787811032848393078842384285534495335640509789062508828267815548742784207271379597807321771914233679158089837945362746806857141194868246440534474713037432568536933074007091155058310986857755975500332773042106049521049549693273929164685426690417045907678886774484626933227170282594448366284196793699377575272469980110873123960877191657746707522294200084577841914220343107124972532597725164704030727120710003594332258047617679108985241113264561870133035400318592220217113976994126804161803066758877206690107257123010852435117434898892237804787962163844194400384251950306894279840063598725450440702816287173401529938035933848287003797923053667317863158845723984083577141562814404501296629153808235582663884406649737524709093693876070404591336569143398951418325901490659585599426999566963583343280853702171425334830364444137715587568422105178321517350995905118748685502773386185986401822566005859580088068701456849087946828621594354732401275832949888296134979766070738079529375656307187778380377868203664855424868873455328270357442043788791871153434959657212288204846803312375442295514280628075981761616305437460700864300132907456540158100857363812077878493048943884096020855856724778674775372280930672352518389063717685460708732233898649089735643608973496407742235895269592481903240848461505806609542382982682284938215750292175606051822717439136578137239192152404634959371912776498497255437193982738417027676040457079526160854154969435250560727183097606850098765281864837214968714834284815110895974722103683322932758946480940962950033282543014516186444900324601389570079879624208259091522153888301808699094731233905969436794989746742996713511105449799165677310186257096405748624115702528351614735044677723158942922004591878401517631013488669533909907163271121626063886944133280978022531009163820066288139838108226782034723019794387667311804309942057973533158477297184674002239899027732521384383192454492717489679138731507384449577989348986504174210943162667534323813265450496616570092446636570886249987127318984677139653417416012000786666665396682771700730422925804298963682440889399825200382577329285674401031248100875869870136149480123966532878630715311842797972629133729526387482861544871772473612982321959485249866955120044128936847416174478123938224359379798034997826527906040262539150100602810265728028322266796200536458931903626178496950011713096683233335802840788416925769744052833711257578336110315132141567694264498874247899985595917157381728536680973597828055616145070409266775736972311128892596708661780512658773321986733047427411368640224150990744534375758793762842744841602569105317649813591931266329585817911524433298043614860374674848693698845997315219363936263110189087450766154937302661419220327429056837811065029698529588342548522994800627541461450959664157115378952930376923562102783390743540686532332496158149753353654717393365406149755827018246720268033654471678343642442236922178830269664157937332506374289583318270059530060958940394741909182485049190268923838895735327602849388974277499661942862755163513578476747616059682637728035422994630715323292835319784993192041710973638634942489629811749228590254807555588647258918348552843834132472224729510814197522963388655836390613069937404867514863526782499001219389638942945623178424855009818730738929653340596030785276079912618581364223796262839729933996938186223949138532605162627004681105790318262096121623728344421887977053385621823600698147014255884864463176831278493659885727036500256220956370764094999645508947908216253795231712801531776982571235852849238991024104697403318312812700318633094562975086095607214344265929017737262321925540414361044372719371311610821603748135447811971993379215326209026143503635019261018713372454519174216259328429892158918176266245027331710471833835453309827199846172195720389710161082232017631518715466384160261454995391955552163981808487876498715604978733042654039891588804941593183623327847301222259181919233746962261478688714807827407980080553002855172807555730785684031075840767804951895464532817928635509510797641078290779684302736583415028929398464024273999302188055080387883238507630973866683634641138067764682711966728620627086626375159574484652325424935550236935445742729077283327061235844714423080392267796449844874682109798315626193221458503515998515790243900384891089639968753356235118819334194070410597936327555178308258201503849919316339996007575809840964886801160091519181499606358353647685928767725468952122086802926112997790334536747626408494885585406447327227776995438360111247972957171539106308543986807018214725543696781707921229525473000767733714552885724698855393456012557093841773175304070794076107235556797611327101955734131621216800925298497383374119072703332907894740630483985794147970341943558945936287870671393366853320210515207134836559868782163528019410021168432749446194154083193367713713788031454662376279538935670583630473810947074368074661151156332853965612338121703212671929113030122057289755367497949665630938721207118130152311485766910771130946178783222293379085529335231620137712755689047340013411153331462152231228374874925044269744573870631188339942504786015368862048433118009074848365546540526020746220333013204949213147479361351363243327547763571225315311979651439289981059521056640572964039887135369721975862697994267931272706370774735546524438486830110646230195768332466673407998036010710318682478263933184422227716086908486726103562840105001217358420950035885804401603545624640814257282728329969444000688738570503451329914159782568598939326280687024255105470758590440029450957871602441381471990670714403476207957613910954515427981757364101286165957943529094790704253014817109915333707775816456263112031683751728733130927354443377159703283479479054942924680163618338462934717888159665686779469507029867490541250332116128627586693490259844970233846805006124970632801021373739618491772428161129986173734836939712837510406149378703348082564301877750507550641879223125326385551791496655445667914976480367443490887439086489054091980042323532555630337741815288461681746747849549726376263187882651269851629909022740551418298814489467080834409332406441035967664191416799758425320515565201115904829421440564608555363450555592832171660904286239246899040993332554290019028631240783991532029704565243482268919543784064903507624723568482947416106511575516539525351969316342929143471391978617978307612607643851604904968096006920283035219383473281345765157264603044237899759834274620119805803930181185840445568418671523803331705447666872006884808475907598572176499626484700229182046143997243800399003672544357408255659568334870109869716961818372214908779814418202887011113659887130756410812877802279494942230338253717225347783098175118293093072464931133284876481762300989856649535245991298724636551576572237288424355598688844880444243767006811148611145754436026034342132988741897795885799359220960601572846148891552915827495891674970447680165734451966147219075515261245355250850657384170918753721058700220397632781913119735959637858793367856645968086946267985050994386127246287581131153471965360938732120348875045756676126001560210087977749184154735643377337043731577602735355318946929090744884561761236004807100597546434125291919161486046021131975578172932706837951573007543912065954353916279992406520609769687259001463218836012749328528997150845766878209906869515919705739328755041596156516694368870251826253764485693139086991049891710325055027564801918408647005214536468472712093155940574452438154038299595809361833252630581063445902113907322648995048053794999673602007154442544551213280431361316150885271582903985895259124389936682830334986343147424151783946461564524468894376249134732028722462794444560867033099747985696836883236522467812940020077263767187590628874787768354129234978403124762028668966300927694580329725542854048099422485608591250680635766677278893066935394369541848175845919598767495074920365730291306297319514777227184763032793730301396766717037155426575181748887395866496842241142215873222479592015081485953129462381633060581817948602768146134984353845739158321081592376308585273149423930445054506871643491932924552213712497685864165963940012983188999782394153037257952491005937724150171470082565146600450806170078078052503203102612604559873165147784963833766549632910455416516391388791666377931848907098880179237204071154506190661006943027175311490371826667312485702230637705792405868912942590822224540795050797808590401612496742368325928589182688298746565619899504621128849041500564740982163910431236231690824603737675636251265229342736607762827788678185617546015278250202147275111042614662345132089278449690385955425917649398996379968801749186781725463070186590116456938985795901221841752520967427044740303597939798240163647274002851940648104920822335725239922803827211063156744646326280595506818498110822360349636162621932050949416017894486974539941427296323115535226504208384232889381555687538468228928227318220748104569942177833912140275141541248248980396629296753001861892751470783688241829331605841465442041463055873659481150866656907303816808514980525439648529870198439091438376095181280420801589028400597313401333977217590319605127421793218442441706752559302151208776283948598759387127196524410342039462682040313885173868609645816885426097831261016566840275777488143587835473422478119767309049251013338696318828677974440027502836366478670658048667252043146279458127826998225409478160029509105625167606008104016023381460727409063579673371966805817516001653267590434792705953696934852346726034986502983209391933253621342397064571799777815900478364910835682053803280375506033437843306955249406665448390055671011630663933440484700969766838636460505210933158079687435230206938326062970252468594437697204660696317373706128822538042626319953524600820736297169123200379943802134467620118327760548109627791967411914209952558159148427897438999563544342598169421798629387169259374485115675205888003618090171595588550847869325199121437640357457654405227004794601309758665545078267490880651259808468315968671450963759342950889221755609226819618018688545601764239354216273516515254811878159227351353299190125108450919418972886385705509995209451171632728700645611917684984020966970261951692009881874389316892016686778974719453681309020371149437848285924851048463580363434493019591366181459572178963402416386132477535941053743205642701167916712929786849114087578684375863204764110752391498920779305754900967035224577139385912894312946523814069814944764345428024771872532188785332713636897726844675809205228995059272163128982915162222868098358292196246880881637530838703036122900775912557717974861858932987484554012095459799901903033273962042476542309790964515010514669845398038274664529953034352497313864412199266509765563899725622065030374031534924486111186270990004297154016779154400968112377904187321416545117798000830987142825172165524042618909773929747464930562691241967417204289374784695426127776251141089671920629710658417078391616653269751413035727468392983394021739450258515105038294041474353438747903456731952927251817628669297266008186022094090968798020199855490312273114281686244250176418428641823715340091129105339491825981464595874430164494436807988608549432838449197285219435937360443404308497854743080124072785293443555303323771140281422294716492908101264926734409935642692303311026764598938918876994168224407133210697898168417755005775836262534187547414839656506545411205251925353479494237547734148070862481834547042558362137931303395998948000512248370895943248789429489912335893179020749689182589029974287161704753075625682337898551256703523182493631415607283931643959854248626914581320235480275782436301446856094658150310513946859357835839420629273743741604086291198735845721989111932017793050348970384299714312991132965753167118091909379066344291923560171640583700123719475084142046928668587286564403139884052193276769689564362864765605822766597380426939424594993245912865564780207125732734554719129873524281333563032551348791438599256305265584966024739067891206879819250704975082952461540501259135217686098396535747745366750932638501036257702145717229521375241671783974520259482281586157887395549015487505311058472329064957157011031622382780085191710190561385659925451408633738466422923428731424350010387120880350227024685036106159417706964475500883508618308193519094730067044595597476240628519473699917415303535045195307224353584455144495462228897469994582687370155422593376890305289791870303889817730376688649975419815457390436223585142123027057502971677780455741797464729195577346075086472517886523866467279220236193888587145134265204008848226541027440063877721003420602474826746445676598610451865444969795400558521186225890858721476388522915584790957801496685683023681769698456758384120244154365651382458292876805438397301673273930675243533562413905538624772989583726562998672658813760627655059576997268927909081871415118853139491591605781894104843089709146000433635739790055795291655856978870044730139090198822443054401020731989883801617104423791795081580756009238355406872321056605256321491093154905318756303527847002303884019001210918138295363888151720860184661208879793640409848059628281889823673406421745089296811044639948470136412549952566613617180061098264473148671096065884156491443122784824791037425479869883034810869404404705583638568150454428913484441434319075874032482839190646937981780161908285249951604029586898748928201702341795487644522601437529411020752479618619689738251202975210151301756343293598339143169014806435995105803243152202743774083777186131867288875944211646614673973506422614708996950809113001679638486331675464517477882549336627213578664168834822175177809163256089267366237475900910806081381003919965778189349510893401856028897495534816835702833417502513611188248988033438048154589760316052862056144428130835419089965108982866931012909065569205484682087278935538733735481605077336187796053284571790408726840787264665131607181372334301608711020765576731324155705528149106291543096792542316379133911246079539968191898154140594648009578081637250986658916107647156804544518121684585275030493173366630261951199027515349740882541879088580357922857713402506676757830002280065001522380021685454348338451485628181401100185617523748384254761381218751303442987057815164952569503674486778507809750301540928259939208163257807807270658461859093943065450616885908747840088148339233565452118656477588339570134011814605463700336277727632106695250924998438164690413406770101838214983889928005555486595723986648056721168202600046700672936575630314693416272260246893942960555848352197400583170534666782626075624924992719506999495879846881501493198019840527599765468704764713339067396386044027529436083378137618162110407369082775225860751346024488500731714129464739516975594356135976466082478342353340702863730606465568245919607605607894894081781446161316781181415603196530088431571086790825957008102425687678717820144660884231871606908225309952324895133609271204631017881549342223374282122654172045042473952557877162439069778891428148806890004761272898869490199262675912523671586869182571199023740704659045678379682456638850125894144793189427601457211633999482901707293083044468609884112324807102517892848414223226498907553059143273697379981829514195521757440175700610272389585982264137983920797913916769371354798984182247235075660105060678328962622042193135772389241850460347079952666726886010388481445337403494328116651301570463214490505923770036476088675799385369740450611647559339939243356304438538522319515184377308237443436620887900193862142767947411438429227390262042473431877680349338458257063283270550788710719966597399653625976197652928467411941011136024024353451984244570425610037924246915598314686980373804614446299109340995702505129805512071262163986082754041266781399762282601459838687839717284174427748592380216666573171574437035968611242584048000692663263294643306066733158232604539319365808274517514532593066489374657354567624361594944869367239348002595401351156413044153472000283794176506477307935972305978897465100273987344702873594861845632288952486083025266333582885819161431115435162450952283316544928341094555402347120489005213463605291111157623010237956617977113406353948306151577692270093981912044933332788922682555073397763758614119503987924727082822789709856383112410648500960720461050204627424015568296334275706979977332415844683315610364697173316433801956534597623067513607513325160224818964799869170911665804347838469287397913883546789153431954106250139944531195108842555205398084596901180891107986735930468243538574256364810606304711298471916990204875829352785082836344597343381957555965884461965567274588177022418245818226890138715427027910006817151495989784014788053549552746587522148156592116034946982070616267244514341974959375685093825012618284047217968151479852319506817042288338212349772125692314197633514861249930686354077698485514096919179130527951028241936368699306921644314206890735243036369985954559826667473459535897059253721574089757272503936459950679338074511531207739823467417330522861616517562170646067472716782443144656590523109214208059865154530447212281309321934074374237671409964890462493691144156545860855227821988591087398716554441029634786177304247418455760790838997397555786605946321835528092544054881171120160770664455977913984237383446306511755003716093994382648861709469964498421325771939761252607739502896514142036897269346401860120036820242711158667434670002548378506226561514155752012742904146311756769169064413773972808569766822904979406164590149846026479658948600356078382346805520036838008541462800385805481617803130320214743196788024896969327876487644506347189041566331623292014324660237164835712570473336636369680879603748814827208484111444212429835683820632054330300695921523355157992544187484219079613384353678700587925950003195270513796687257462381604779437822980948199721232057574105445004942609063036982499170845278428651477593820071577325829154047316883683724447871436119725718967101733080221559796532019669131940155634629695651327275708953423017773892604166733422206029281601532429546773300794150094878403992507890599177420714388325687838805683151235402458230533427192548759122871436818284994192958640601933675496516667364931965908865359168791624625434142263733318597231443330284930381822311275939854526680862166788632947556965972477727681699129105303805157049313655973367241626228364433219552460431281905556149939841486776559596659567379472782669275442534701470088422560513380764367901327159303318173354954445058808615709931135768928762730271469387969255340162762926845298267983178441876212801807813393560823838819245262768317903564733797450645278722958647930707174501744841623942287612469415653548695104109434103852167840816639834718958582538109128470388755889772774832140231519570917151546287130685050822770238525205700256001509417966786654877393660503807680026147909265434769593384755654245453288110881591806243451068373335535380122239585543877031612585497103818079111206774766184285109170068987518947796037368262627875306939521411194246051245215008444019642594203343707574561373491496922025597947730182020396045943154400952030813629757151727597204604422342839977265580132359779195795036262791599942415393430279368674601724745164555973623314754128886765646978323948414926797403710208797650781899128535820931220297732372297941089131166031611796515593813037509367255990036340332263657127080752770632186164667675655520966995594157938806076262006989383793605280452063318770680620405655977847175056605207651912653797535446868847971912769863301705959657108189566808337586183446770622406126019226548556157303173723781751225071353680807829583936555622407696425292598832471751860171641378052546584855847935796312011638910640728916561122577771615379987608944510893786031194306495389982565620339489747926694462937777623934720826051942204809202982765965773169154883065603508920665186498202941287278079579882638097477772793407537932754087812569272107295751568310041079453916812744275900686002960416367654538750256756923949986920945293159208331503767991142072671682232920390058605753516492022604485150315494962960910687631902045545272848316274609904090646014142730667867690432749317166815319313740188675096071360381645552914655200207717570795021203351733012182952204713239169160418964156624193414451601564239404843868329808929179844704972052862282135743730198124961047847560162027648211095266648328869444308291297621590614162412138166514591682081523019347585353857350360039676357873958771986237784839033523282826970211923484326380198413646229424796734842954571956770799780721284171906167354270476989888175626441217863658342094652641519414631465725337759810561651197658558067301198375984487117021708990037152668726104902561393237520951588761805100207168628540412468338613134896689204242955717618581022617350678518147966804680083260032342722443550822886528060223601150293446310895710512842514097479868555447561509437009505093734061133418881042745940907504223431510696612053199847986208767658797450179713747303250798413564808868596194010536738124916958899481238937353191251471860068497178257992442718701753607410582637134450417732471686686921685850497092844881410290066895738314637798632801574229712168350039874193132845653569648002381099195154998238215910151904311239281402659348417724668556386307838222520409696932317768176317919635325762951606402599691591319938436288305483980789288294319363364423073774169586775028944351704690119726793187014457609263071467611223679488202771249804696876212120065199127451792058887547448264498859754721770949865003993566747923696326903398064328642168519330159435304691378055217420025173865462285382913953232509702809151334401449120069085896477036194146036890891239011811909677469742932751710054352089783976314548307819366306978492842295648268685112685509192804175352250718768012435451986887403155922139466122495624466422388584075383015894720209361740925036269289716932703992334889937652019057073701297093932710303064570974163261795392200637952069991630760566406746654009039076168310027579300139737857264081815064179116778462294664777794494167062225675882683021218700097217532929409945573961196428097651385220508792545633425126691168228358372249188668285106973840731539604969973908567035563234717175507775544761842948527986057850436597257073878025916991226236429841959079412406719943902381171333151943735901039741024940871235009749350506712225792792451009015454129917497838773845728211821359496283779681403924753914435950377163345638449723556091620801234870234602565576859901243912552489174040284482172216746229220480871030082721751291868180713166321293656493134583979031956564199574503566115340749314182446583520402806577673416611733240316186976307575163615056965741619752715484338609335936060228017322310362983687263372240615289301525615139664257515249376605471354174581936793754768346841709303371658094071017014953760053294414301128865575703671443300529259373849277616847304899064391932045140498814826736661993202117466985929847600669955525674380165213521613719611537342774741600868949459749655627449037882474591826894581769499771242244375369069481880624655586022398618666545523368151581498685599023265373028183842456517654784105667674249333695841996722764961962224493889174623462006046171419948566685932171068218475388574142809422482878124563914937950451432569338763676565800829338876030271246036498081576144705296846214607870869988437965018239167259139629603925700663638715759951063471217011713397058173667437499501090480818079635521363366844586274337953246524770916786973035817291451632913322804029677521227122415752500986085433255444603754206468371646558430910468954198278325942539890903198643860779817293341200912772800076410107431492416661744551243583031729766197578009772189180912089282907914527293051720854684237753866395336925209353218540691328980672725113676226797816183506698598835916640738329176237812614456662720491218946889322552622917602245856495223845045044734159704468885541551754128998199356724881657635606457282516110845297761558721784467325215970424879049764338635755907637330702427193798492655773530205829780798367885077729487590799085151145209397894696829661099180365323359535157644173702776946472068657809518472522139338289857817399737120314195014659963721590854951533458422073650514156794905969569054177571834742408741309606911404981512486136106148456721563351646857774533024891540550730547300328452020461241351350395799119012989540280814033014684431239217875692271173069545385523630081308900661869438081940926647218774288769252167499028378573609316884530498941420975880965729776670749184548774933020478077686701382409270472368530259132922024949557445033739992521634850214585403214774248846116643784506535830298072640203988660000120559143072692481009534150066116192064146470563400131695853006427066106261244018413040857917030762449666186823622539127554735585250155684090547091202914444066493165279642429918679575340041919820889538919891273723461735654803138077036311900839761376226525855225433210425349614729989434061699628273901729298659872229438128437930873698129761211676575922770646853728110340636623595299623295235232426865397808715902878241770940749731052925751115611578279795638737821778040283337001366956731472989957890166408107220867841075963303766256574900454318249360118166687255002323753688846724035129389736519908462347194074816436579526003048550322492473365503062041748597684500311882239911105474125039644682536114767779977525310895826495480777269343660813028967547220823524275237328953476163571050800186442261643884062950207737806651020662759795579068033021749482990105235409313112687274287894623272357304685382303286534871110097335925751169012982512852048222869333576934528079758432881130600007897754866184416485733977178229176034058124288808005848399949077768585971156614382734426067655463736121964296903405409578777508815190939875328497908318066836638095234869900114437305217842936191128662259310007206751564749324754823377236286363098514373561051638423725522616518426367179980514099190347152851093150639743118915951314799601261065886094237763422394828302706734918690701494065635759834633505140064254644330329018357728845911659867822599680049218703446601806666355741672387762748387768333782609161893603722656163346710590450852878273601717846441270333850912195651777689983436074828217108778583938427719301145347203181221348906568069698392869423369111259089685246815580731192477474646688197184912821043571019199047767984301519532062087662729989567837602218412778511575818984034871065238916111396081201159186529486371476985898608688379196105186101814107901899987379066363504796383307311144781224254361451021016897944388705213940968219227304265855200599357308426352151584951817549844425119993762296141350794954421697564798988532727774266612389086030696465813918861173677012647860611766003037756168260811491525086013706666068888944878267331882078895655888122681573097580058036440230900732044102542958494125571481469877642068175586822168046920288349846570243484003776301997192843430652017661465932487844090835097968027642814967733364421610984034064059036957769886218349995848043494329078602451533928825251636591389486480402474730903467737796294634420206209782528678746287717454994126087783263429814254668282898043675340689516481126956737911719394555741333072900040025341275542695397065694313519467042628048450390140118472636058578677864180762289782346589955339677550030142176633250877982408158332371826159655876037619526213926565465293056188463930652051521762888299902102876664108335006910329486101463333167920444541227350350606114826265328337332539432262536177008593466964068928094789265932800962860149405445295728711504069414231792234694037094786703563277631891587194912772339774376247175357947592597871649681246852836971822066909794551328134222926033971600210584499105236653537963926335934897627688904565728974009204364962204026027533032241895937118824241765524620353179125073427870177297834413066746604654740088653728776517881139360261141787225811885423906276579601923599582688685309741142496651734303651720783956807637790533839331896075135471628082344192870097312978829256858249747329357509669349615556403827245444983465495648638335817164389827789228553279888740932375966844779144534173187436595588806971113281762251222805530560282778295084702127292914764621047805884221775191272502472061640635168017520165844002049565557517609533163817711867574370126192851992418665317043391367972372941432292131546661935732871920062098776639827912402029097518416584784236884125159063042356922457889430101504060625872259730436791995781486300472421251040427860332360179772551525830454770140289224783077665486055529837335898070419334199999391206920493218581748318298563741874723490677898511031333482545529448720179259670754918437463145278284320677375145746458782348061141474673945140619945898014043175147295313131380603888729438516021981033030581083776018291191307738911993829992654394558168431532659984121878958578743558949682610695151518005911265122251931901370735309672956485739044515878243889487879282937308216705352125100847796954935717977247866225006996546969826733846078187742236045303247507098884430384246747272868141353829684111973967538868352096497925074081764874997951498652047320752588383868865486202512406976744938579622144214205665776289057825031460556919339473205054970975557634606285651125382921525189045080426917759913891578295984432389268924015110206376513783449071675768844660470529418904318759712152826824616918640625654266103398706822662227294388096206944629041106778493394233308325415544700598136501576831441273807267741870181098923464876669269877339315602714036887781041027448631520549319412446200505793503624473220985923954526864656901581967035700009126100206133264653469960616573066439132405923911069597592641036719356618796192638260268874603109068614384811138433764386870643628482649035467353315468791850980017958197332006825799707895178145761301968569904509668446742596974286701518701477446869929491042613699838152374346014064763978297573638040188910795046181967699645904025662503423268063143709974419834148672545488290485093387374105980979587962336765425200891403875082226561843681283176445335772278119200944059038950537499545998924365972094216306203485947734204246190644603760691546196933779229773952515812379023902681248655769228675619060976769820605938167773447583601240924464963808635771197277986081480492611806237558056057867873436905035429430532798485788903980052048167332730250575716824410971291824698258909076296057543816508115944055800960195405011788022181905018433271047500660417979273242737547726135199359840444467081496257316423861207395216655442061223249901131612694380586439302350933665486737994093937823963317781913509424232169538146292111621320009960148959376288641532348606616728241414601923902865886222664485250368805265281425916778055291278120136982186861535759917905903409528079402625986706068503584695021454873650079450017002902109954949864514125329154974759367514851744032671240171297574386598005998190392881206248046437450556043646156632690345604584473434540434700890584977445112689705994716950669334531775292037170969816219628374656392684863517057568287657515706757103913588008734629046230411796649775723181455422640558935956811255834828476538279566172515597632971800455824360740692691911369513625490497625316663398478997902094666856354081943383085629550239296867295630287192941480999811436244390271873940136263907661553522764616213527164779729396945473710613203935943667382842965846277450836497598316067409100391900830350783040021013473009106405639812138312868038619308380841071082511658913192445785911661984554299355002115817495460470085629887059251874698358498657341216397305810905408870352660456513584930538574882931888696346001178188822835954915170117031664745396862924003662315121886774760926719755696553428548378039389180956355934680664057295643752100453426365385310563273048349877191600543444002181922820869494166134962603703701380469154834508876156341760738072279376937873332586786623645588480087884000831581479576797201185293905359435726243795270460745825724329923296714889718146653402704286530459929718259544578905899560067419147724943539274683492392685924064550748607197637894194981119890936307625811601861886475580583381787730782730664637578741681874731987168768630247449690943119882765038818723921569190002140270891832228211136099300758697557997985361763360095754494464222181171676930964793940581146238521840958712740559698709843894056348088027273967958924490784338869042925553811451713136922973711383221766119305112989013703403511491381976364635362634413580860071693808428296013215737728900123309022085601200364205837099690685738219645404750174998021809850513989911082411838139351273417316071006161439601507165892532337927606352829517212094162881826794101185503064242145774119986256689621929376077937302992591831660843977064491598722033162208331883203982616524890418250783256638896588866992692332690558037764928207588913481067409311058618443455903998341828192329244749179079079328914141962649325085205536264801839416411699750827335661083710195020639069447088811509824439779509102609608009881506676323467202244134924804977631423373084809324512848954134498036512786675978085195228062929340396088691507144550474643553543289030749678953768853538664412157595145308255768764878290099413821652686732683943056452647172805978367646500621517548282366016783280224317571381758468028525903332856296914165587874718822913992341305717766072779415382894659959735173456715958557277942307340059664213738664281379593974662498623095964772195235590070217798981794022053858711367531598802313774606376993119428757192465871950126849551774621234669720197682475871104732896727992216551846837588977786439146028517340238455489346924377985006862776191629291795359552889279596405690056680751991379805559026686132920741637571581932401514251765430638205067638332714128715583968960385317353415859376407145107834825873294140121595865910402447417278213273085354916525020489581995490846849104995689295693428151153794042425713850084437264417767540426656322093540759649438328834207633929124511505240634798533133442095716828508126678495723469790711968964001317710709843123979339557227461072546889761301881649444611283393756922927956134076776876423449801874207854259039331729186574224088642591548264344810850225535085939006568161238201451249937885990126536264830348070425086601085935268866951459140439659609522021051278513141682050172633203873256594363099045828887968535313276351400390578961531405782990327438593281218782371455210200792447354817646002765401475075649621171065552370642890483730200987838184268830379015523712898549349342998481252996625939127776237395648247240482960776915756249250288299225484716809796593388571100406331305950248407906328451241839372854931520926627391407907398514357190043018939731646066734617024740532610058598724600899447181961020919171120303023156572665405313865614251060917528734122288522685714522587490016678656280764851929909435486818377411675481736885903202552336056750521941588956187686773114259383657172902931041299656217528776653844356354496745099508468325004448920525099399152286256942916495292827096699922752058848672035708735520550665527086171395369101176606306665543339656670622594222304783175964900266929588639085338937107991824267202209707796640598571157318521313130513050303202639446943368608606944120240754158858538112507101416890567469892117606648685791988429317481240977646408139194791822325145925122762398120276821626477513866284689105281386415747857912351612567227768369381965700537914936044860000236804981534696697394923446693485918785155442880566119944363920421707604070605032619575871892373431726591509369043758905672605552416876517823918814504963643773800141053940308267555765368890881987957601344493244294108604893557779075768656413547121861616258181472859808503179859710899775281002208925888229711125189396217192629188493687651896893626548466716588827534501288910244008011565053157230699583121716326665940814284686013756298668378959251730799803886738402528525606977482512986993974899615002707858712577392615506245626077831687565679068722644774560943667015949092031120157122953322832700858020185212423798192161220873917515100799728292374255163873505781686608560805393165052772332225343507533634112818728220786569884594721681408497518851178654888271159445494422461641033005291156897703399653693713960034342675323524902951829945115973380208217165957642576119780275627148554268376385224014978306033782581673204299467511555264498754644277954016737833001677272978795466386222294097174898618147989563485063320488019269216476837863858931103294885995636956135520014161541121058559046611418334868673819972556810402391907270432264880204457396267724085649471839570743020850293312293741181190900085394380528384132888228048864800694715448369423637558926169902889327331261194607399615449009999043426962812294821336348107755389549080381076763177746047896328165780013620383173631083734818628642615770677314983677885790606891740624809895631241064538957284890764391214700684448753650235685328652037620787175350438741096029587734834100305066971066829573502177254758432755492679698754223042054776016454912713655495299570646135311304049686304001766964331507129671448209054149406842293530688068184886484505564036831625086191342946804960825388595471781962689143536238504978691864707915191506090264926921264754166069275845639869578674600492036966843559514113173988489554784743769265847684377323874985963825494227139808341009830326674002698399047520695380971595988823550162623696710501074659633505995281702640467343157613105802070254861315957305221711238730498941450970850246369276919938284137228225957869277820028560054624359272001709151312926911929819514619151927660438041758294287422368719981187016868679747779873742279494965202024787686598856961871229789316216403935368667748222070550751930873806535013281206485402345334227763989861372216980364345290146644022825943774189857875149104508336132415260479454953032076791562850101023655924508025946473446887305080145344541808714092866492717095479413544378733931855617584761069724673619595113883303341546452907675622795013308023976366649527775537603263587785364765059528171253812777794132079739148351594170602696983167225003913073796025103775113992690100092030870148327685711825534086961367314783030839595541319172321542228020323756286957346789598550594134488992766516181182682745883419925068708931153220718520256954041664211989159714596234885771286113153561185352156597362919247876018154512893711718919632844079420721103134113779361418815456681151428442646272318600699828471214611395192938185877059787925749117792807218859147036855047203868307933211101014870540809216445096939165860562330608533637913914090950619303406316627601775629824336183382369235966860499047328282616616042266345273632055308297077416141469735838999035230707390590655863803765848387945554906912324348930893192031579467350737886576900951346215972121968778062250341108695921924541797030900786342670071051033134803797531237527410350975610193823311546694278455718971172868040650094128929251078254695609398115336278727563087434404861428615884917888969454032851828294732784479885185653283198989798471041570001621982599909123421033468413875287870046920955151328435776454086401155137802013990366763659364613159315855918584142651514512272700178959555493204901833385830326268202044156765164804313341854119351038924433791999594678059468302298911741858485161814330128307936568431377852916645559505185590224754708097914099554816085983689143082837070345626288706379968256343696977105006377999997981844793389780140925888354409185735637467814224539801427020434185382347730443414620809186445123389095216865772714254597228682567501053328031108371354081014019748489419975085437036003280349582366302670085486283237577378770391745536177363837131198216528406810268287582429774992418211952518725038897266640253138605597425072328253152398410970434417881635765356284081639317436283981793467243349581745547157611024772465388878913366864703125748058517700413119652608360221173339030688488153148856259025449041661772335988581462278799934107802883216555995318227080587254154679037494586963042696967429969594673878433322062235895148344376983707050552289698319161065096052625425998164156891355378771504991853113175385384649275405695992167117376119423178727880591453323293662026392831378528378935445204544986381851963786562378161803231869788288867407171951120856516720818565669404828901361679593747750620728758227095284279384506155722638191426316046171635985393861652637142385288866244766086319045843088498532423835391653710253061175111937671362903129551636767805731807988405724133110225664186604740367604121586785867046979467546729435014492119502036892193250483683096139393246160184814089761495260085640952348871250425532352077163874947770335409520613656631910367530196787250283556673905144804354624860646297437491348180662903746520311340222046878881103024827095438209897075901554801807019248938563117253704689091766515616501165447903046630368613309477833953555430253702807335856739285822369787554403580420408156974037384641776643115916351731659409396319079772740246485772747237032380900106910983054301332348205568952580358696307649530244786464865740759288719193453601070367776442614659039986752150238162263270318118054838008281175373364550815468651016343345476348960499269361729555866213133523046552702951974139755895381351627459602983404606264619645990171915024302795897673177177987091440212275747043323873428739012482732264342330657809028136488287640876891734019168865346622325529052862545129726304126029300054983512693062135092093760669431006204652980232339714891053400587485625715424231009671492689723117668814939528677689045656915812070055296049791336390823472232904744608707036258031553035028302429980145181233668308314502862008620329396609276215231377874695877860457843422122883717458717532120731683760623001669584068392229556969819417932083780349959015942617933289888786906716860619566291126422769947671157367539780028657909836812063333452377184914241531023607831980300730423185162177596522977672233817486473659772121700507465233084293783068521308259732634503881571431193125600925780184456230809958910860446451212756185014701343394767735758294754072123383305187145003358207539251209009643944067804671871697447011944502639641317734092670173678193910507988262519750274299231699034945752794781954733286830050570120729906589474504241186757082407416375367738065874794174400623725328835314774196603908456760974830577536613985828638126188815013347090444704068665216474149755814189868378571227147084796983097456381498314879358610139707290348652621218634691000390938712374395011387956899224893855443722847463259784336691572141107950152986834691339500720623847734947240208970136556795037567494508003330411347107924904866161303552301275570209491987607094229847162619897692993859545554625491640295803388807738683479402317792459171326199546522555312805654381869851874784552482972698798448480133660158686500069989154139346308719202425676770640695067482123344212779110192026353902954984580125453422876157606523792578758216724628495747756987876461368935437037427574136529169134315033272206211570672785273348058760860736560461743365202844368694254697518713527661659420399238484092504775961362555572288335634990862256816285400398821223458761524736897294742782283261370140921319663805734778685324075350175489105992057269034339749528312188379148639658848982460252577734355500626372740367328706804714129390483980313824842955496671521132273386869273940932584517175989870344560403239980195126736416167451321032410018155736493185576071735976640735593653108181714827840484224119120149571825087219667015702217145839537359981479536409190219323586353804041897733610362717868990845547947081097055857859711043119416001800231340681798585191648053455285196211691304362490983121629602688854518705547560538614111628254826956251573273204292928106420149955037483484941143731997681871949914247167458286092585183689209392679346382406021385553578679291212627148468927216929394921722394240161742900631628165811103017981959276727884785542748368803162553592278892316505572570177871854471542090284469911416123580634211761357144566726516528185251021194678088478018505728827099243924263484067795659350482227529899112738801475914229585271405802297229127674446263123393312343331686712335257403011435357346187465645808100129131570742624649228890404704660064168231744281450421715408883667679866113577052814182374170592097160135563729942960365429173432647410754672879580693868379928308202091386121781786395895357332815125405230565596129608174646209368712649287334791052903123627758810623063028272758955723683062248640137529993752836874841432109550796466296788125711440115945943234171204071193796944209970448816753835824957684103262214322522151948370704499911908653471955307355543999179387980036495379258083723210092520578181041962977320882247324825673414062090853715582667973834513957304964949756609784308139924923260230047640755792052878732966437109533087475308963662382516112697209484807142699666791673346380542508185391156745724222146461962118277925847852815261728578795233644425754837742874597319522932051492242916207277136657506009468678716458687571752697469320201230719753815625089187065899586233348933195538239270684024886246012449751463383457794554066591181297012487916251472510335126606260969860430702127210825624758365066665612210095766107973507341901513821114260937937414260136285539928263824180914068986723903188461784487837200595788880455075018038302622647563059567019532157400293860945974705438236239821559013094857092219870098801097234368857752744037572373317346349231831116168736909038984532221538278846910039304383945045102692552740822527106463815763253223660308675131688250826864383326196688415902530493410653037308397678918050443282897794059868591256485585068444993905787445902874662614034778861677919632581167993343115977162836823439892068017745698305058287507059126960426742278655344266077124185484387911523003108145725823484013633388007024626730387479167276764907785047312903683522385383416238175038835446107887003888812793686108479834328971321358976704645484708340866101854385822574197460903204954450954539000631200951586763590421554006345370967151943071553282893840113023232418154410330077605938718029881838079845932382826154933086871724127080686867078613153118128751597395783061081320785820014334059179497242406633718136195676786821389037073312254838648245676479995552446546592342119756235414311716347078845555512103131987868912234049422654716776519075175197364639755014510080374778558649840143067311259583098966546955620157243266230498392522355493309275808368747535810832677282241363018784470772508382424059401136159004493015593442331309080294009171001299671194655939634140598534288138712474839185610775179220419792186115340741636258961137275906769196590974412687054455566445614130704076612259678895896900436564352732731167510881287893414160119522201155031751933010571795960405623263957005756583925566059068326217806155749747847424282077967452211156295757207297191139730508688544865078176041307310582873760145861867339775241254145111473762088632023771137106684523579569467604839256292385583829635091860374398174113320783305800639155141017877126939761005217470786823053962726472660090490446356604895514584752919485691918071557810141197692400652548390399704924885926335466400186912024505972689401823833132056877265558376914937150431879481934233997041922208488920528047120310482661400313065142346424495585792845567493876068419130662682773545113786353015302236772254354473617588357912958884262762451796206758483139850132822722287437124943930299986322634226109184143653104360219393722734466010131661741855621219685172418792947677565152792105836827913584727741635695729089312310234729273042051455099202221367122653869263746290086785185156451809989326909043109048838009626450757612920901351989463990508598983543898998715914549933213966265949368664676311050145002459702696860413015984119134235947147818911694847850844264053468484123773463235632529708536234760671067849643058474697962666512923265896553169945101828201970125691037153363679093232859120110668661276130795596120059341674541587949536946715494874353624719468123945312537659229611718263628603010129029719654291452147916783589174225700778490319127396853865947828751185647202404901050477593954251366071603253687383385270414570520850848052370050835940792347196826497884671131790929734640094167763830448190172259815436788227703424297859739258326805220765341247439733088912628646920345486724384509691288961333647384464470863054794064997212965469022414471011107141735353766887838302625626291050285149159935945357165569761074586295237488718734232811038439903304268492482786248045232670615051688293355240044579619486975897035370956638616014224145432699470243752534752876394532918005987922217332128762699964857666888966393816217981480222349951734242629236402319834760114885604772470933287735075495431275917672201787110587597867164971424890662528811142737367996030450376273349440149678182826371440169011557061091366629054340490081311667847240076214373026021621766940061092622074433683198197510415953922344587398226779053996821024185046985133369422581149814921260741165130697285060252217340157314655677705534544666248077730846737754410477099790178530729318688053572494931241898717057690628071798262992056141442035220266399445803996368613665501004414291598756589959215941357087910651364762238914739186336378766994892522453459103325918333631156578160032626755073726955984047019932809603610453605006532155011631266562588497574632454546424864377327050243105001177042128415122366403711989840943672100735918692961994471465073969645477877924189174310858501039128067306244890103801256701536438177254560971252426567089750587102246878756336160379281541832727298006789310815053741142238058276447667785496508701587841703073772478579486765154391596846694815330550268093107238668429778216119314973745287469134825186513440792105297166125969324192441684054335587818601392342753516282109430802118973783051115702921685535756563701941099989078654575949401993061594891483124023137637060229182044439336186205669469048592346134763523351903058913037470343615503766953583607827427702591438191581592677469410843790038907639244222758595207096653046722435675279495805042892767336779537134543420353613057064571963059685679347389276718323075578428348189713594375290392928545067915136804609535875507982264603560237558940001876591251596420071478732673708913880324157173258716200341560164921798080636088345050380088313632644889779886664733500346168363197224226325259141487435847499090156531222207643385073371846476506768927416991300156004141019141918866956252279697520713596962190025760130560291696939433695354655460177923218721965478445107709642682561623723985416859585628199910400352168011446772297575711652226120567545652758366812111482297530339327008373016262447094734206662488532323273015028682212782441133448604747016092118822394165104739354413912610096882248344571934687375997840307233659988525898497143689559437923168931486995947851932330999527468530325974665007021277367450484619595613615543340889089106402001027995312977828097292360298695343580809831857920493599656021513460177481660071339633454926287341077731694461188763631574233020316824029711466229717193665706650944139660452914828528130986198865636608217166154963957303332224373043493014197562014333530477791461725326204352156535813094848856203984372744345846361259893496938328409759866273987951630339196203203322182508023353033341782223614005891699759710579991679151953169034149674733152587377784929849615934708138613596092871099293852064346932553766692829327865211465170283978454359834472967579603965787429147712952614296115926053089233489017486765260201264833675145806671913500627968785091811129636585367544018044939593686301412220667779347800338210301369454117970416408477655601346259840291065952645199956442255020909216480610632702539537492807308859663490160394657798397010961153837452192010352982866788803425410912499687301170910521846318082815385377633850483560924332177010939396237712646040570036472575475912378511904572406640727263586185453499525138057469790351066602021765290718614982158039221207831196596642464454766590595233940423725890722192611861870257974029103738956984629165771801086874187061595446223607052292492712216168322170843218481838185720231607726993365893430752635941187578335627145824476520742166082590068502745029342839077252079753463516748773447474306274119061214966435303433402089258815536833290296012909186092046603981605938345372374367032902771229239166142106727658645568561880365828478265759077540575835821425455960168934413412328502026201061538997879913714570110451926405192280079242165663857130579966334840900693820856684728210437220652862430399348820655870313807573010061865649653522440026594797091332554263900344748941517300664709734035268171892786939449360728352805756470657546786037603189393763644986144418622401234628265558463295586405844748027558784562079249275539406348554550841480558525577127159915919509779310654719134354631479799263544160539602033616263618586303986340939802441828907271804804926333486863314495273647718489980170445754602259175103477333809686301996855745221553665439784977170687730950017561057367154236132671316724219452694418649095159367102328588211520915687722235551829318488340614368882909205533237397754498147354522834276291084304979054902440625970290618369591892098421898945074335381654388492276298561729807691464078989716022374198348044252652065617992828754643945258452883425755596879885668999107944660302514407972869916211012664823094142966623275506311824078777983063300736511704190096892891000392256767305014563590951197358850576491960017088999851279799250348057245052850063013316407610764684861570759312626917513260735003288192262641065615156548247475089997833584744433019448322345241187930504939876027896524382712183554893138385284007731973639431550986433335606711994675124878018134142904258916608175683856242447450915281085224295084867429878246282195360114522554165312063474179720507595754802859340953217717029149120902265700261432414164641498782346850128468514155074533070635830319469453908652915639416676151438784325539789643253857418548209143804929207014067202809835826020106246340031386670506471453841250679120368324373150058181967166502094826106117938545623313046647732879127423307376591569316407907714713019058606853595275472083979257034280766157071886652272182103821087900047932733620647679394754184541285635550627977789025576654670929766353701207194514136758182671175579700682406715058690374422666289250886891485647319775347327395466082385591798503177494147797603837857408381521723245711025315824915495419940905913196146589072101718758461852657299760119280322602885999662552001586404105850018420410228311367555410656150155832368075785183416596629380371067151634257847510293116272098762701388597286487165379566534238146115047627157689226087653535342181292442914343644716054203925325741719256573697614555032661039038104990189512229749305489434887518111010112040640727012494716880958014257040464322250872528243912380746328815628237169271728181988945680187985738642915893733242454362149492797915655487635597268629550901110670533417868708343231383599206422145710075456530622744179442011230445954432533079454928500520355858864292591258442312681372388211326853954619717841515797488728184036686971098766299951912258091822570212225118115621408970792629256108582994367595381096568085227114481829050971787262065199856094222721405928135305705898751196986877323990348845788284219953934092237887653716110865957477298737737687399866093368809441254749705869346833554220627587475694742708263404901895132415039087267429651378329441458786243502577890091023455262960239436197244951886523862075314680563494264541462371976526354448682175947359386919318741310132191113260892494353886635796896766433030910486007239776324476191820579788613919273889848798768847608140368495230776068808243107735196064327603356680602700239765885597561023123345082314136627304596365945445643053549653017767110443426694612760734263697877158225785221421453309098706935931895676585033554226775474765401904898562267872699759960193868491202058408274684859671419305499716500029727807394571641136772751029037726733005807784999624505514330946019460503042777776613106881634080003114919125345004954939326162265908502641257469591764061109092590671561906234326354442330735282828847725189993482524272089620657369051719433737575503618274620509105280350766143727332853741918397016767648851970804383979920098097348915350814602449882773284976508176982301064193156403615437092922510541752853261512078959762526656190694227980554675834532888493949227427149694976782064571790940561449117622234669458123436052035992955433846089318885168326537809977374219776334020002506736832952846765003906199182145559211532859712604720043250091756375785902200156942423029606193333159615062166999900633678846060533856486916212748650741723988200630547574269019361350903849048910588818460271861899214036769380284544164108047485169931653625600560278125149451759695163520074271423486371503021116906270433904734712139628818139306344007729357355933385942178663421735749821291034130980099593306698823766108705958405782547179768466300582818198269006417625354856402402287619441344561641249577558529207699344353325546633459594086468582941551725951379107950547187095142541810545630318465467042387278396545843780856746078889997738403555450364857791954667732188158077828821769867437583688109722692527651568211101090513883037003478810375288804793379271246864042317614149184140890585940712809032273119466808463748961110383473553031797896501191270035953148293936677248290740851150118705245381674793609309361864379743891138682133856835699887355299235947537556410840375730623139218708053297442221286910636210834758904327537359178591801896590133025806735959415131784350295263838158045245640033585433519071034275262746903131220438690340328787350900578452184853588564921956372932576564716824043057143477901068872420243207829919170736397804396092085911487751092786616181793369565203758025384154892477933929558658481017781691876631781098735199133002716163817738882927970813284093661131880486071323240374234921147311398989155088247881183763014040986356881858821197859021573373264348558750046615863086305541858205519245786820241727216598688210988568700129473317074501297974762998453490793804558460040823340889895549006243054141037412558247901623590697866917231090266706904814952960587246931091977257162285410413745166919460605492886701891032904141525018910019332844070112210914111610883877072084927120529095076595347572599596198735715455742538748167594944319586693176574690798745187291466877971887671998992325691977939807091318318029788018150619603781460029848017518751246242536154667234184539731899703902849133146406109371760384025514024051244306270464124937803236676728252537997076513397016451520362937871369520058711326815729866179907237266663431641212052094042244673235630239389559840485235849694430302424014075559816607476307210692131732214072605515928320269579730061115248619606298274390479827212354449120504341025801643414009873515165179192554360066930456747392123600810227028744180036786353161015207230527073328725966570994963835657893058237833736599904031681234887235285711947433375083528250554333547951168259272300129896590945258595819495611895258169089343438330301835678503818849759490737816217512212366383636534736022826375105248630145463715377392726538546424941316464036284479880081184156846941432641373043153520422386341061249848973627791203109162326483508336042290544790703067723253050242032932053806191230285384623245030395491135779653846794992692020995565179545607359091726530624055357660593704404626994116194260162170506723186979172891651312880001052283643288646295291889070574150835138454354386897603691739386649985902165642225301370801775801595992825299304959889536127309304795267040227755839047752777545620290102214391872135722006935337820606617098073336252193222707939485873679234336242286483101723900589683795472461539856989999843020188468369091170352115206938318443825541642423720414162585226465253995765992692986684321994086477639388817601937245031449646335963182467167489740460806478709203759417074654735248392296180026363591455123502194994844545275536025240182029827232152588254075748656269563807794414474006738120793460951402993272781065379938247822330636895356208724069678125205775911936215487312407094847285143573870173428770637745540465203437719361344976337157335278087432985272233379961591119359487403656311134755717061130758385421580811560951386881769207592014147237792401262950160051113856965897679077749371884273567815790562280680060479887130746240388028925439569220189978703355779463506312392029717819143060308514354059173855454481807723837150454085118696676653104254522187259018852185585952377424085682911380711636842802801558972453878663786849427642581869219520974428220765640243076330145851601865564663198980134052024674487569942949085612037419521983912512436073004481421136802953837500569054261584228776424755640256444464136630173649291758933541066879166843381432186480126792140671497462481488474997291586140643901321345065840363930828664886761060745518513341039418588720065111911132638098425505445036435409796928172558563261356366137106863695237670532355127270163122043937576852624972873352699740110304478104507825736694871401452687816191426285536020127584856981344015377719107215753007910377901743279801536890772331632738069871064819608174369366263738332588558415895645602566565643979944727862864262185558878682483587247294108258651479894806194412761223920549186667623597858726952432397949197839417965550156205552420226575497992956121501791789767861178849714654916837476525311168628232352618239117741856885018445494534039525844508997799870324343323827008311132530835162027784979596632153100699974896382104187017767074149323230706954454047751620030237733524125586281193190130501020584439649959015824425303019784752426590788448881247736174641123490532971168218800040887638464297905549965954945685583721403419572614521903083954515171333920882446110806212727398541466798586183617430376803599385444573575451026324353070597810919839558275319718556197503761991977163414241586286400473140181977464861148242618845237531713006280521702770373500874713148787249114398089855600841510426990814228836811599018452397824731774146769976403674758856320606391141758033425754918616985974608847173384978065571557016232901166898568370985790516903877007075265576993145971747418482422012560984365211962939015537043151572657564205179451207734731946854144431162963005182448691184155531654221258257619876842530915279753416977598874079087241178450069145909663493875525132555228506847512438774210297475873022561314380031109682356942366290262403267777945571659567780735390064016911434006328364444298075602380047069337093504640902843974064811892526311288515140802545340898722520258629808681273428750722817132354535932924920808167053537172001215617693186162664538030785421046019658223795280366997447820790451374841385656331575805035306208282237704048289351487709924660487828026937437915331889252427980968487248957681897781890760167504470870545616307553595723661043992634563329966172554393406287092324275599229036502445465832696233388335570601741128256031109768205532637657358674994968338067900527473329700062896769018853609511308179699098230777516135856009462604215953982215390977757797202080774625710238043940317053362843626243881394846684004843426842001949410255390264288160296640217043573291877909211716887333839565690461699067394949386695074469680079313196411912299485743180435198983169731635610134258929539793475007212834405003588553723767878898657127434533758173151378642775850760804515107027422457490887983447292465178506145015158052452411859690308643284750338859159903700387012684371490673294120575322030171974103551403698090070864439978616421486672422245353096536657660786505893989314836500201710142164121887753897128102789083272808606528693951586602069562542543387558841415578850192427797058510387076073717071064860809529825598531145322463772113027558217128921252011124346300184554858516467157280790058021926875884111632457181712376141774532130197345584788128499589572605243890711914449084698026040581153257582082524945489988645001659879068905157234120440112067643744960574184403949251363772127174947121777258769402941463765385467787478283423292488593169847743131011645084051189545394292725073594619525502080165847546802697328127780886187645249306986370080189878601816627962414627074395213779483179351661684129757584152823473005864370872989204260039545501998514517245848105965299316622128038914473907246885679310168853979899955556484483777004611557927560959480886256109727496694468197102273287146916861938517088222557164147201158884022007535711840247119930833785864182038936864091710729362848311346196936887512969630894904157586544834822142832987738091488060799252781432319937269767065547194318703731247528147800347184570586031747535913750959997348347235006065177799280785070489910183071372962420614279759702013170566874850275010268646388085542324409064960947629384905493827700337921226379548695476364163438778195268059196185429546233556525691269738506953129602705265055410379132354012529304591621089290214061332431346060662036056910373110854037453023133786714953961981951511234354461092647510522649004357970711720354806216256056599764202227481112950427597724782172349116807378872773756661520523561499887030860678930305090347938608949626053245501130444453890309306528052336551010965833210963875535159039117304685220675354019450096020510376452154239572788090290129355431603546695317098307397815816771487926117057892454489208873881430024790051990765987502669658594527586179533306213426658065873003693636720717231578885367503654392980364009287318146716462633565141181193783095183467316897965776604494076102415643088664855564582849180260409313705512025185372599148303211439360167904983830323407016357155947133384858989858461751716903593797972806888818426053339235467712248151230926763078968226865907407062282557269865576564703245846453989452653227472813252838038867101374745840793242112400917568407489929319780085390923405598520852041336166295327828264642457275161604965107867343542850843135918312512123399612802706563605126005365211534519661534759746438576945790726305961152836394898464057250536971227096612893850935088643772513926433904939387316375639420332212389248745908685823061752392926488510858362629493433037703980609702195279911112341715803516554379661292570311783669604490870482283906860864135644493391235651470159670944814633333412281065206066483292993097873430091697740555721214596192465541650898500235319667534730987686016372879191857640623464272799586335091945064073739746752287656644028552551682286884799033603130221897153726552983789268624653703627375116710302369791665800830858829037186434124747316221966217939646996594308533092479437297770469337228169612522302727649062671518821106479902522500191598816934372608292744074320109764071937338464933750139070548560927670926182825031333848242792443772808250912334787543575590746415976329393282801428064023963395803409678903519420722418250477613339075400000381732070468172488957603636895582714150838236459765239858560165628669872333667204757166647998779296935359902671433186205880628032553002375960862218156146139074223576838193948917437349590630863233986246428776115038402903714569106904778884947853524446240390063432329476090405272610214930430491339774156529963280888762411667032988782064812351593191608155267265240728418188912168589155482473104026180628769474152482325490068076571994932786213253853216284831163342556560514515718042360641505012210951271584727910425722904889386368219924024219463362538051015393431952932670507429992958648513650903823725353763160726600761734079171614254703339776806591189216669658353840314504095140591634649523839579128483482475932897587781630552354228754264809820824489528507581892081369298089364793725666165831449335306063255003375383606020344808963252566113178102220511918469927222372878046716267118170757550939126623612611913764736008316123617673943642396503199440516926881404542214699011986650624582797865158789840599892567588842874767670508436621171978820166117491736554286680215931265322943240554739672241973996731541622667141415411428271000055607137025007352634263037846413975593943335364729943903195200278800301382313135304736244631402319908846200301007685265269137300313728403465784580377637693742795624539970700808581423886535692392112968189093189639196995472114992215283369668647291902434186402439513387061284951321506003862433124269657348374264145535530010208318884880306890978355269221338808202671579243246167312403743509053420587062854918454543020455152835362881556094239028926922566788768797277864200146804002817577007686222151040790112093710185260505661504813776367579069139054056589579513651475325729923856063687625550028623861912762437717885826809212873092359203419809854955918581967055034018731316222490252297515387397196741735466936113007179263621256350619201511404971335388682562812475426393348735567981042638002160891474896439723095068214912794086513140189117537076206440775171676161607577853566448913849778599207951064032073457695481261862294746948517206924685564178287765545294827871269310951241098516498518950462768318877586625282039306559939387096890765864308785139674035479260401010294209127648211766013437608770849881440739811066430365997653323394561794222863773848501593515061757747127648329327668668310898420312943856251804887272053846613978815318805620722902562401417276940843566832651272057006256566851799894048592986518114845594721019894120764669373932205514095830280333100633076295119311183438412693642976944259974728911955283987060278866470371115522813613140804140316504062031042981818345078213555181174023127761677512720418710479970252882818954703650234418776780882478503193742393115094402434154930420571153920722602215883114396899713198329187471944156564206408626760227235763009913745430324812677094398535118648734270200448273430855426249780147231097287587870130017672443448229767829637570636812783800938871115992801495739567881496021986234700749132534327573254272857236761521360144267336952298972030958897279346161502656433991729514640899136110739814233910698644690667000637545979777048275247790166696551217636212865366316221273687493535573659777822280147949545110232421455786402770525849792992220334079223873013001901408453469288061990547251832950588784081961149853545667070114056578726588627471433854232074466455538793325899394970826780653127487378808814574751890417247014930211711721374857298458508167934899683702633420752838581259452447582177359217048394316707807407683361445007615466647864435752946039854741921308990037950813655173134884502637724734450723889004870470119123084898613967174144688853114891882676080237134013783591530152314903261261244468431726022676873981923051531873041730649631577264464331711335458000304125402419713072975103088617368276525975336329555644198842688929856729364928964206761045887627632891465334343895438950226729699373943173469941719457438535826004070438271649437813286633374213674675263424442113444962402909848612340921853119630887396910982563038604580981868445196194381268684312439373070061539154867175916579393481933557975897427617719050908274144578135819691497192620532716833451845407522966615506418718919006852816279740207705757586648883517046055599107975904767403276237953692353158976927555853567841732158989171436276938066510325462547500963853048480553124439842714449068878405770699174757344696110502334544581068134257274925873195904339053310723818316466753256543148527159360531113004229245197977857230369357824790512454357276698508140329030331220898513455476635519672490315914310727328591946791898129947834433215694999393095049412156145070446782778411803058986908285723492603103893110343710235506659499419391773245540466719483986121855718148277144231666939945495806562059763133836199721765902393589700958691682809869572454664815347817535672706671167690264029267792135675563335644034162687433205423344359131291643063983430852387304955367950000957637874223727611698615644923969142499804290837027480033404853312429289483102090230414499368676868744933150840295925190845811178318048866661729947981195664214343803940150200316142995101452159744572728326079941320503299926060254333620336302518609033154829664368502397706752836723562660661159685226782868195426760024880579780378461000271287485002542251912050025255619200967223692787568715231438038539391173372191426793092681318590529984852630755491522896036936431346452833698893482617163961531139118765471795703912992827315455003781571190158397143369225089895625671052302899605724121500531275199885585180194641073288290560923687748326359450752765385251568605265968352537277712077668189233887774337599656807681194590248538565545922680154910789700499629207712015705502669721438663067762181038287805354556333404650257748552742969766317787443325717464739277647123886658222623209750142302404372962970211177985332340847757693631809357208486594891580846190502562154329436645424875420528782520571505911004076532930138041348953040452191571547488043761806866875042259914229762634035843693105521097776969710130107115057408393737385324505455764563999750086860422716392967884704854841447167384503420620765931354523144936017524917101733929004474506023753881970864115419610787642058608460149925510930827664507472097498154739032006090729302054389414515950184900924718280641313326243019775749673037997307209120708798280530680755659667752788692555220200462877833623405804160540273681966288425279589825820201179462149509289304309352494881120009045157625636770319693174956879723505772007878732613309174012831371154485117394556258905099481065364427129296642448133393757361892527003895738662650550990177332995720849628185496260578733417339468523340309290904502224711315081086463553951336921007227973280034813471435293565077385100685416771158907454255993346947273703986749891315238262060282387423251442664573752865618109153995326821440243871194877558818959737064416223599257049240696898378625274996060088852095295498245863021107200064596354775766294217522567309147477306849264978720625880986373224930612035196851328140212438294236107022799240704735090481956103291991300593248070087869900263647753577117687925884086280266075789014628680761722029684234292125417933761723887732857301267358311504597330828814450330735026609802667153864665117705344049452356279744756814690454110963962533421938649097006463789697565636012460312330186044209223968142688597145507904680162255654535582338005396754285790240184961461561337884850926218662949408376747255155928016654066931908973108133705171551297398079677274038762379750970754522162276577775038253169824233731466773570948829285236232098532334461386738397890214545814759873492212179957754965101895426752838836491658819701027659653338882542665120478096108161560342313995553069870021322275958599016835649834145368176243800565063764636050038226758658920085367192890282226128430721394097523800887377215228558396394079647074688104829713366125153134485731237163505806878188634870064078927016864503736813121572372184495417321203163308446972981752285979106348650045183634704640309084657168559054780536745848032084170848562252308342508110574080870187716917891034893750834477893863863487217587913385578156398178238831912960493907890229088243299304487439260035505857588774585381067337496241463037852149680732171260069286853184462637261545580865567262417108045215221983193497393885897834283145283725315386855547588911197639300482158771888428261256974183936515533383076201115560360954613024478795229829005221774931275904373681826233745096029174827374342706232466126118428100143823999091639995555869957427367460314701842371886469163048466241934630267975418176881983777852950335996623854447566583631057190154221582466338371286804983359805139252097100643716067452294973305259718576048688608953187091731463867951058376920952618273879721531681733891833741381391819101476044910988746611604236362506784156087777555835439629982300112303082995857200610926589392344836004800460443563442470729737318826711845948169535628246688292636738234226015299245633454158631593018870273081163543046260003830538550442244830456988214903218330921786307676518986770085410023639810067153479991591026534847888438891078513556836038757534503124348003625368967771179745830879170159876295749292874597548746312055120922223973380008672169708508603873967508570631909598505856091793185237796684906977467626171829260168756075789774263604095892866484746434847397514942157406195114030528474120969914749827277555352532279124663888363020484291361008511907717406166924026798230433391589026781087822154485814944833225209448300857756126543793077149332671280644234642099953589751483829567622966663146503663837187174752644047508641354607217570658581277797045903580722050691944872743843922970656811976251543999094949203829249846881871888611950724255382131637618274047564030337512427720952638576190394486504402251059937516522372031049825742964743186946372482591382932928033992326771425215645185091462418226270010314692942535296041789940348307050454463261120130340750373010608547115340346617050219053077599570404828970667309104003989239987768979702612972617501557493659489535760269423953463960277778119639092681552424843946078076660046861035648972289779539927544136205220676316915712480689511738706615773847463113116398686332225545399747038866495456302049445331419252880560313061004707483003357317251985138167040680452929121026122063475024092342118545007396779439262610063280307887529408473718870847678228067660258789651334182428402560901271117650872517994358981382325312052910924517884757150650960168321968176252341273941208139497196669097050367547410568936537072620382381415426807732663732995156162872251050574709101602978885718506523043784920229121115937486247271357861807384530301589473325391618026922627264789299153670460541903563194036944811635223135396101303983067862199940464965487733296306880128107502825191229308285502106661145652916281778771398552065525966723074266631716380180328954643223563714236792508176136944029319357073542724022696904476737487897821760885884651745571763453456277349783633462012713201337510322321452533864570925768895045671776922608836359699456439046648148237928799400184639963877851584504736806784858009557599915562455071474948359914899286172652980578714734240383259871780626839756557273901900254319672198011827130462291237978979283114476144981989138005442016065950052291010344794073151315086527147584174271199627570508873256973050092245118087357604899310812373597657963230085262717329135575954907104315158896358949115763770407732751636079124527132019318177469304940837713835045998918672640421766876218901270291297704562701439902561601156908775371241513272598806808133728050979051347249694144188996352991189056681847501446431453437255918808694956432423350437830374926068501740054406298858721077332530208513181932192280832568211626513328128335824270753467772282524659541243000308931340295988480677385436373711403522315846981588410474009197270455072040089052717254056655816652577841087315418334162583690846092999428642004436228065401054107658740824882624509243524162399450535249039366344567246295154695511025088119347126205323141418260128212579544194940993654377870056715518147268190523882171604514757525382776298884565738272400783001238632643133512478275432129569971821755548515702155198989195430399554950633769007711929968678656437578481576174329219495799562619289695392917568256975576994339497876385334077532259288552913849715501859581716898130229407752386560936523070228908901645196198317678908111170715940355175440769071789511964443595544065501834456624101999956417091841858858801304919885442815708484115907661533654960614429229236816914719575159494157689877653446029115792188129711871488585010228618534290893079518960454488377174667503944755078854597057940336625874891665167543353793135977454092668667604674390013692669025401610997401924360195711421633385205332007755308756932129059519568140719894231037889836652487853497534050119614093481834940224180365271074593022082958239302851065420037101833047917844248239987972795500238638558054997722585972502666566833702076240916229511261272748606412197263140847525617973808614609234105898376161946465800224701363828191624122444799535877146615604177232930887862974771377369084135666900333300059095179447378095944920288036901193771417635979107186523674128549869120988390993784204183135453570508940446941431598553537897940930179910980851566508273511699022913804252977173522900370984231013964975494425987404366821427852691017670491640576002220442528822836973122565345613304610654662102832451724820061359598151068757533783180613543138835460672871467551262829058180293510320152529982525829228016347275170866638101736472641432298815690967974096928449642304026211956060500470789267962022682588843239769525094125617280904054995259848111195061540182079426395266992770050263260878874077302213303471017549026086813393297454997460234860271481132526425938910580068435333221288356811028287442884811731662804586813979441928238910017308033072168515465347136492318171861609298168242688776682437138869388174158132472198701573216953112541482927640850027110722801200436494873573480360005897185441812578241078855730193579052223968517779808016429044120347020366131008736021541078448716981374520093874177109354026432834760904449540782385677681787417160859937147296308366225346911483272108907196640296870599844504632733726122410714906513716523577248713093652626355319146922779315946698548658942528165229996218684368807667415407433615166574292394761146019562230603706406872883571848956012179520216000927989491179424500260093636231053494432231450589207671723157730577447189425094606924342053989612756638270582055430237759568267299644002459172946620504308068569295401017419232624621087890441142715861963776128868268054962359775598891102151287702304734563924749294856538868676704402391006148920473675337823730726055362486548451803385174182889527570185670582771298666652128341542105212192595495302239507851380106152241685701448540285298973090732146814783270090377594235260054785694556930836217229453280872808638282162608583798941252612596439688065605115068480133418707223371705078282847708674324387014975404439459446861127463050822469529279519133810974379437821291286511538766870622356372906114456469690918861803272902781049441914460599633007305737988466878263030525142592811166502359181351749059967408162492375639325796551367386460519205321382635612855407897314368896941105170048230058295106039040005306353728341722619119745106723531531848698698063156694102387341656177320910033347438396252711098327302856353543411438566586867428303737129498361545042297219971168284555975012549692242749711400460418579906541576269786213520725461054287329919042543630993235081833522237800307961247669231927815176904308831290039671239436621172870199445697670192937964437400946888159143212300055596238794513534450290102770843180171874685721373822606778577081727616739855255044878212385772855814695409519500502613502609735942978506483657217384271593559978436861632018122056617145846742508622191851869109719457166436795131616822395927928342065426363146043417289496131763294580041869300483008587878781000681104100603260481585474442657692396155076716299401181542761676824184319857932651361109147838024688665788628527801637622782036125164257719219563555478756299029069883914677427786649883089699857772178021400005388807203899460355238182402005151166051190927385673192484720622681837427779772107675471945152907403948692988850178042268233005903381498797939090750640834692002840844846286908090902567499407816537110313085486953680069014979498253839321359513951710965515291543336558483925043660507974946592900745644036927772585754267420993191486899325956052250682762312893065778193734273720437305889692983892304823085538111892908639049023281421224519454600548933485949577492153897331297558300042206123485385249585896381164850310234201409023839263976860765509702980425606047799492784406319945166534967168983446847249431277024201112623535429661655298044546431968409282274603385540651095520188504758986903200130078177297243577413000680734505018586384376318295225564377989732260975373179244002041688093532240524477261868045459219314744867480725081610939854074090721825831568194617008746447227603204103930383914872407151358656249524245125347065498583464367091170527424002060452634617519700523779851892277651286916259231415314996645403660208697739374013644150944241244411464759705359361799104631613253535842184006637230574635265163733986937578386293779740390158381106033264474811539317415836761523955069309565629131813066661765816868435384531286941979962489408866082432787539780402962193693770295824874309793347670901082487219177066184045958236606872514049332481220640287904176879930839588240437736012823312753748478043987403900085352639837798814664151007330179956884180491273229686085259938154518199270752864984814397955072885086841963867129049530968602949395200051801033537406810933341916095565834096244044664292540879676703470738273990151983694558063537061876197741240331117188263263796280737113267037548728598198720786424588599034479931390919474115114142290888079177547820129020760362284645859081968512592805886094018029308820209356732840086434884219928795408301517678502357451116364335753917761715096726678912078872314111804999593132804121799078972448848448976331141640893073119141016611247949190255330384436057281967027372968596024138992248838445490291850116305710033359879109282413927070343643217270135674130196047739187537883481379048623087760617725699299907063157505670802007228482165879259015117113027038684231613323340610190460955709094056996648888181009501432718440749821911988345003768814536157260104280215895367487775258514466157970312730120133497411074246758300289090882293375475272428913297926931132495950235079959379536992755457183946903358876946594446691658958667874551937321758573541411948353083576767677456001782843839862719089575821219742263255212814225210345693248873320407068821093581689604525745392375182177338602213223602806523614753478562283427199039878024079914390116681119405245670383774534394239254921996420704000448440818734536356920727607399988056911715127170360388908569446366281176074242018161260518563010686635952628977756694825962946901219521578089602714987414025320059346905334100374454122068915166972625761596063440843844896305222322381225473887263070830788686760592259974514513187380687582983415433299083454444009973160362579016671328254670456887591265670799432120202107590104835688941237637556021811350379270650486634284155710502518438797030095758455492298812723014543359364340780659752033615349936537342651347582498784786778218524029428917461713439622835388271024698887853163340387025698852551508248373820133876696707570763501432791100438115911573063564972657874448277807180537489167501077407557180096883351622367532904683887358145731567370421598911737037694727451465958726608772417118324161628635428999893500135592973192831984438960302757512710308400457117694839239023402712485787798684314936466770586333295400697100889797588802844800925261221161125162138552685274692365365177719868668452911171676083994577844598595965499045332431746578035178372903731964314019130593131436747295664603132181778467805323750352165200516712719581465920191228203000807033392205022809363431921291465989960400382643872377781147629699969076193823942498874814210585216809653866397413399341463396129728753678867677996352139526182611928387599194888243451874194608005667868606392667583013230540016018870680599619137403801156154159234753087095875487246504956323311417989195928396179987925211624571529604749005601449742923073955890907952022935904264617973347923419470911459547291848922467178955047870622565632820409404947970278362103874401075682963483861353935317029223949459931307082385531573898902428926658892450581937004784363914456473216593179126356171758349980629091338857591659761945044204506706183179169543876620623949131778566597251547141541826770891896691280144379716902995350090556025687976436520346247889303874695779455345722773686587739485044241409991845729883501839775829439162555253143391533934326423550749812433460006283643330514478840833904720125452786353641751262803535588342130647031071542239738484408606640959738054791306953128218267833494344875892212670266438534709841446838279172938312811062909764038093654630714170439563715597073444753708292241773358989071088086290568058946130978536731339040032379335333723464043450677504469286951463250500044441534599312368570621966760465423483915763897282072617305468702715138458824203723465145636740085512775234733634297109590323357673931825279240856460486883742937437658625522279017685769902860466693672478994897808889533233595749274229103643966481970448677872756476686079221037902947514428336743365713389932006855131095404645440882652760933150705459196063353825034917272250612639053805586492864388195133201818558359886959906253079602837752597842067319413901319643153682689944193237003033128708099993819132195305165561519407974477342496469170672205907569888538410846502494127778988490456839447308205050203476428883724318135431938765592431979473486573912492776887139559035386499444990485239727980578574449279662251471332317027514591971700316970228414563935103134022609287142731063468763174114221193792048045039564836203422778239544665060309278785192164721634676271241132814701571071985300246717610907425042217092221670212789580955162322350475807992098722575384081754686426285713314281133856725135792229768398897837297425634118610441680674070653591698976747037457275724401132154584581691555338260193957481929151412048282485639464599620209476744462913747711382582599666683447673979773818636175704480867167090546122403572222302209759745663850136060761420160894723612199930590089163630352940874730215475105917695760296720946394494734732129415706106528833250610544828682526366762140758719175032683538130262500380646942000702935834250655734655391449039175794463745625972476060623158444446610921762974205422441093746942255027397357374924808478647282418058545404959847278464669548892763386571227874297529608084683646006575984059358244334901176313467621024793242208288851838579746294378770731675408917705039044831220057901977516091107594156380568327424326209152846100692576701125882568136257717652612168439645986446146542404526641837861000875357819482578003960909315406375575567885983347569328572283454378651900331159561519485765610044034180639428521411647447230916894089691306420345554643201981016158908378731864714540416849534065271416766574882491110275740577089602925235721202794704859347075257056530907030368389612429943035110791149045630562352729151062435647632695298598115489335296968084954450327432063270599733152732329403729928743758373020892995797629861490625255135391110320160759959828854254131457519177867770617948705266744737884692489960699723675421311751740169621914254305663899639153041953716356214770906481587225187922910305932117392915227448647728539260939789403323958906793730157900860632299476441665199632412623855479727631346254033440684842482823357816830363376837938290948124260019593347671066585403080992316704188505004945100192299838880117047670580961525595572161138014188270226434117173616339795018723523583201051001568975385853288892911791811064067835149680739920268350814643247118567318705479074700432564090858866557658705411326187654575099511258133958367653848025831565427830017157439095874397751907657381369591866042026717392132170670160033228393240439865098833341755325789342283316677243195534429246234768395826117383599278440725594364711902230401886177133762671292563638059876571811358935080690471469974828145406148485842936764625798195564789778140895623909744305918776493847135376914568507295576180574115414597546051166803386656809390986843715876032438037226718626668198913580692163418348921045127238083001395121433673833502147860016815192622361492131632425485567738017813281308907116894853032815111693395462737997408808970927108426837678580735527519805251774435202299419040972847171014368412781018536349919427329614297041180831202652480590129666153784341484957276925534188829127226242085992292521319365840784462398449038708623434891870329259714910178706312021183104985565556386333699417588847012104108859609480717590323278489398462768553691492171473137095817241463308352612205957284566233351972241095992014720517522090653491548482379283059925781413489783024646884592985725824761867013538496385157620991208034140212559180885481070143173597863201203517569696315699381420764952881336949568958366170699137098645726777180663646166566771716806666708431752155912858556119378385506801838167211240709453029225786416776126462847046259471914220216265191202979211288153300771789490367551757081322340674528331712057600395676939122127673467574130395707882441262461815236074355789273434470385455535396723676181098623888293944283577152831332805563846528472184529118973541230719816482135492438871929477747632808131031149677243396013987384959974449723465175738191833116023077233331537077231562111856064384015363433628678920623950148348293076855162108881578058371890593358756501217800636192057827686833945176464035741801325854385472466343790042359107461653713920057056224266196062420890257549881737953572602326531095575708727384347709163490544087396485325673229027476992893316382603078816442248802361638252224724209386616824494742167449750749246485772130285859627951020462023628606243494376225062048062734727296179268711796916843878630777074071786272457908317265666732714208920372811093188349231017893956554102311114333217886116481446233967371473603432278402848953473794821558457095575857165506419228881160493291610755545625547206460494886812249839318149180683311593567453958432563967884301424619730469423843323275704176861149910023099737343661855730351991668128619949654311182817668013641504172840025870162931376500825817477919988722648316681638353624565773356462944055853777103985604672323004542997611062621916528273940390041908883121687664700834593928057347496585114110715014040312975994178857177109335000319561132033256772332721379682978445751800309118556046724083769037722354307314478208164024970413574339460836441509584260335269962452804058107468799968735119263742953505209870884180038228036693711566535634879979351426618212572008832005330800361462459838504060627686395595884380978850620046276828414107752811242080809802158069630052104877169004158263068939010341285306300740195561166949944091651734390668821837120290532455763766032169795412553932192306390618774022808087654915667616766445975317324432884769247536373367797107894166980951633092413426139634158340117461637455184133953445422865811984744068393985099339053848431794722033207516504335869534326399938242678983825841701538612325825082845633551874409133084881067218884849877738906142398293983007574646741948993549725969758315213124926969792559714512713890321826867999773435037639128481483558474598893056607631815595397585625582346180884043329996943350139314685991705248707596609249825080769883154881493881607318416569575909277334400340320209897316358999825108396118040097067617521723221218517171289883382499514748410739538075297229237402708650132549237849906405338387995347033439839422332512464924786893872127535385751467450873376743442246264411081096839456472553182376043545894761236971661991765671311921692217947853224798386256688004700087467787635068342649699622055039654222095891072800364562589400716149413716795916993289480447931467593294574130714721797769669149737827917554287513289972647101890511483686789513905768472132869128669554102035175835915453776590741599944353108475229493898310462015617332006388173602497277828535291179398429877299893992511128772678704536389013230680495224182720483160936132270176796031956919509799344460262557918138535904073781654589644473650759045476911389968001068560918463918589596536938002012428489722896062114501519519062957082268689375994626928334813596625502541686989885566616784824780452363102975660431183666642662245985270656213332283046403023532593099411929124299054463878401439749390000945301841487051312886129839570215029462630635950165215692220462119119870066366787903923030048679422701236550266062927310937291385476416594875297136059424347475421484606270942637045547689202074929615130796000445564123550860560672905110899717432220361863384634299767785907629835818785850752820380219202704533924409472820519666849298647902419968132968652678038673349140801537296314437528610329490501243536279495423248683885947261593731022406891385555708526434218264565298872825074048949099192374712460184860674112559402469137675017501417033195694880941150000423194031179519447878083718048090878440189161389598638249293723705704409470059487387183765889980299378278224224546369413336907953267586198786359584094392920418577646157052244419974735205073707617793358055778715684504274622179630936767179647392880865431223231220829805500147508687837493014347609056269634108516524393060291298047167345182673152405088315392427503677732011758085238550591915125603281882942066637149747004810148150566775579088489849321937194879475113794528155845019360599367666191222130147109743396664050366239665458128460090783734236461903184358529615893665236979286346128767322472564241025724506044994521372220807353425781355585246676028296684621813508495119483245946502536751189692083920223492665367437167438390817378305453873275050312451694959323935624746225801563933582182783800755718476889527060042824586512246247621342357744838192846929313862983549149946088632324440132269485816968180738055677260753309364281669322665687003190430172977573417653805829722076356309453902070843951524686408965946347410182129265214735782340334074468007034739934889076765859127190054667286360375346516239222122021907557407234397261092250510408386452234866868907008974879683985711869214055427915799630196338822421510911487123145019447869714344515962750980856139304666588045635255383922995352308472859573486661323499596634824557497053825635901100549542627255963144360842845086956536398012977777349665249566157628338063189959591016479135542029168769147962156638749077466721467231152533452389340663735418229570440833111975908533179159702139647210549504255749798574389629817270597057764048885184284083266572048630214310167458944476129679545225570613393421316809228477619206332072386268048459093611118216216566395249219347921866427861123278187796216372981461209534051524591889189083370208301716916286632744318656104206332667317607897453448684917773401611982470575545626509352611319432102635262878068736110447856690434121527307480586530113572839707429088070758121928880786923546825548311777496117862702881565944018719804713169045981510353978433224717773820487749057146212245035230919063602482104509537068261452255315595756934416024301145405751173770902772283143758032120446585184601479108783998222009477795975873488117709005103661588938315033249316031013504724711901399919053349647912335904845885197349275724195954521128766300211548908522248452269964405908852143612989626294643376341317047943911723412893746439834164562530358027263912641149707901562526583877574926561785935494154924072285976266192831791407460033663723738731337175920580718199551976289366892408872347054124170462687721415087382033878552134780110196897321554614309853350594954510517284080170447570790667810591242921359833619742416208468309916112597863874660928261523488611980872949672606342015282347622027185971719442977359974978369354921845031345002141030441307604685438427859810300738507224608430454302893020442990797787691306276297986150934412258400237620643941184325873089228713855384578013085982194688843305506635305315181998587311049251447013650082663807918111792731646377863921769317221607904904539105421899616932546971761446235186820947451102869708669436467464824203220913388540932620423153982289860557081772700960338172833413672899789315471696694726232564989479070413991470596507569940490852962045903984564887787459136333897950774812032251589630290240376689889341769517600183131555851271399814713864451434084262050563138069055315634095278402074708885085717330220479660280734333129072523551365253841035024913510540801335237616280164449003518392110718100497459175533432625393697047948477767349555600557583739748032177995664906601992550338452299221254510157877660625508390063454039871038551049402155234633175383201259905341934857101495138458916663264750407762046336224609611154657089853188511621637285142425445259457548841638768608436896565092989215433522517848747289646824730658196699498813494708428695287881636153618599555368909775928513754582399078544859725570110362698156238017734734469943004388673036071701374387096315084492794649311476462112405900383571885143442650920686855173977327677389009567491587997944354778500508619041324926015260837014257194578153820155940823052822890133096725121921735071623997012128475890730300604105092159298071810839650079474109099769974970673304175582795938891567303487059204987647300991228562037825280098390503728548600107895591812703666082190708788775319114889819213497932689231077862322285592800181040547966782848101668738299701489333895975640099849703232075363227787453267357510942398617672419527362361411013722624096986636400564731620675906454459315116167115849896808883950127075116807569379816031810034761999704142096310246221666529583869592844112750791867261433969026007896126156304758061364297652197535047374459865883263326810427047062891616742655167184921384400301086647686665068677509928519091813257646158872597802205542390301126254491941893378270192064130645488378556654380113544912999499932696827980789323245626016825708537931850415787403457205880932428177946408354633813715102729061650173019452641190199298111786163113169285897784085563243409766823515540116074164653307698011705117478570550835827511271924184310449695505302780834800830588664735763275937245354190885500420264694101786313018022267457548885956823145951718838768611334357450952697036309486999901212465960058376704123071559382336554128034400625897377518497298190688116298081061552058166674304423454757083965890117162351445688087575420096697923822770290407225031030017338791847957408185845612346333165892426020540957628526950009008690724673346605355742502126334468494475156155922751518353339552853615522781706256241377701654541336196684858471688879628252886798590608561776917305049549958777520972906577945413309291187962331407730969866545382012244330294261866738763060821351675347240603166861634040259507439652957295635412544776562241246919076382504493455308208099604717083561669788500280322853750270384777391745246170526194825398293107401850541357021893268908124827976760308441073620812070957328927324208099361736238259984136931641334699423315056981526066164554231465921971952568699161624578650460087768416237035412167651940129524191881046751061034068772924887540616772555474366060178208616566229966845705817580238205689957675222051443527116152463826261964938438979404976800590408899964027825776787886664870867983023545575156296552545637383776923887988584108119048713903148194093862331904498679932660826441437881691675148476595031177581258223055515176303951585435444714397591923440314842908408884404655889594569418944713266919548505191200823600661969329643591262656026911170542147623537580839855285097054148267031852245183112011709362961478047494084041405824145313773816422671018621705948272942462535692955836281221823979233660345388639463549709596770169627380787245961916742018976485404147736013849982771841163639652985155376406813894067695669674840563612792793096186166095708038841968838722078640877812283377865174365869153238903661658424522992176587549445218830142282793012303228027828434086111847279429808708917007592454105473028012574091148282647875643578338827521428646945263000711450685970522699664759900644336589974947992636750566160535797612263652336703743071247435357019631469928358530263451921386788036231464788187974980392431841586254032149885640837127215786924268471650239112955491031174335256424615129594111677414290547165719046977064793183911948856039282502957887761518991625331368669626749897469886536037359980943498660656456258884960086328357948879212025752897512737998828957406015352779526172646302362745062951632391588761681018020664475513714802390742215555994953829834040449001321299379365237620493089589892692229519562970538942138150930135559869014926892513235652723624849662782986527330698045914798331092666323661719227899932906524499060734500907550403118580170266874648533396553352849352665832743240393913382174075629992579018342824312753762286994092049861840759923552996735826390011390997632976222021479970453212485047994921243804288675771801477200809521483012306613745255818343392485675353006302067269549037689747608739844854002703342780702085730541719104787801413701021942180531744019719687855901116134616514495651011133747537461663674400517800541743522040057447054148777462126030242041816680894729750202856969107690432841552085657026894538128898960418866557934302411169790509198968139317238512163751806725808824537265706798934580240624893276307687283168427843562562565794182176725590549892241599199494355498748032779964021219469531519852531004060246807222400743361730756734880924127005893550267328792316465435210436445281737137498942911693996961697066368887173793495697489344385726742762660171683464012332093664910068216480881006967119888274061991964451242520323698260335668639607990553132192148695608891150479701674943855039330497451013259321130340359358614576001097917809018219143742860262952191573166640303764807605713771507793667180148186721165280811267716327660187982430040740011626395740615221108158783668176835273046354811072535460353829340225377517455526353296122101307036596120863142178686404429225497728574123167257660843373461067455725230616301455369771386395768373328296167790364484056028209561506771164717626495661933098537325324659228232889118918393470499351137965847500810493503675470510785186677968367500819061855386560898846690713092403874615548730963825686342743129720871030864374809429435489988959777716322757768991410657850311429368780145539512320631664847998395661106996291219430738038341433701284223380119942003748257799435553391967507375577193237073478656913725651457697510987276478572026799019362638818090319694320020345289423370756014830839125338562020980900884327904421202266431863041166591828036696526669006098581534139115154610643415421579912117711497442153714749747968097198261200534477463714934423606931335260557846386830713200243015480914886948490318958364145953912471819892983034388278830255205144831501862698682833756210608092943438396589680730877406894717873978315697356767954519087177466100410287706312398482008057194457826300473074959107327688292440801988451569425927258793168095803586318074204810544174387622201632046383028105310071748376396065389587719461026924236275630493353031775076802156710407499230655578923288542523867581047433453778115375270522283915425015513011067204833735349735966059853870019795076653061868133214919563590889993379632924840308865322908256374225623538731459275005299651708469821489333607121204051114204527249333481751473187047875920226099307399296162064397611988482019860355377357031015944601184216353796423299020734483101557491477441421771906954887283535997672216819426752640088114054808981864955930458876071187241506134084537574386772544575804233652571482903440597887961833760250179394413201544093576857010562205070143930539555004068115438303465158159113231311316368773892202353646940664012784245751609896376853616351417944322905339483948367620580000076599926915153611626320130941946579124982176302145689252431455189372598779534663095252040167915275935595477023033482211119074950837867968276661987759209794968484093088637041944216157300336364551669114552510850272405120991710927842246642338981054574977248710688732237948038551146361964813876030719070050041032723277267194441906935406849913449441930917036588298059034732946188825570049439072194468944981092448211929138758239232951206713295863803421741363349367877041655228455791162862500113007714889131316858776303979058986216447204506784666409097659930384613059727489693246208636828547460943521575359097297712725394840308716488803761396210503944817784223092327117025438342541084473735776369337027871134068779884480531611626156859703811203411977897061472475155136066376799841853251050995988876696714774516969551174065900012120124258319407815998869501437482892473967853909259734040329396520958442758965993399218285228805215144063474508111189277384961051701003995645603532905156709143294020116024547099156362567705440956626002962029596360492009459419099008353698071729066678989704389570536384345235749969868026966181293063980740341423849525754389090729347946291442835722666610874943247834112211007895629980233022468426116750377386004928181604534359472522099167724797137671728784111362627620900257859322196486387416272006254456443468390642046220537230795939283290948891151457599003563237726442273441056299873404163123686179082544956699878735773183881343075999904489500901935086947332383126843023717522546017403177656281970954400715759066693293750400108236230941786606834496692547905073687196958905480888201211562605122325272756958216933540012762392593135087230636764282488454902007866715932866538435255729828138009560861814772373861405532424630934530218597791033021725517891472459027281470206347068507729313476043134691383721754157516049414393451885917622149542102446653801864065655644612345124545684695022103222198369357869798611517415709874731261023797195157999723111906671856973645724053889708825589492737224048010322087013518113065185243043546159986048097313747165636469082506156802321190917435406993924652485176297377193500643986872896515920164561263671355809485856036514183859559851387652031948372416041147306312874624712133801847321971852310774918890513877723272402957626181380477998694673558703786317708409471638441993976587402777010019294848780632898460701317120969419138704414057134757996348995211009210823857828898771362624267942463705504088576628394849291892244373921299560162796717093209021888437662456867031668724781259993532800280838960431615923470241192022220203451725662813021033178387779698270757413292364736163385529698688815499103738533877248317019694229926496410531644229553147243195113759658385383811497188375743524453982818019671530635264883550491869839511777616016979648004652182310914981462258125954196559857197035625156041469275475176002495982647197960330237208901878806635416091463107288011766663454544992673414825063212378772759630436163088424828762094799094266105687588674455821956769979820085643118059911901155766296437035295935687393018703876260344059974696123057743399424907064031956428406761364337097584427257218957253985918223352633237021362347210851030226666378473174672757296627616535178248993780738422623426805383912230280980450060295111752079117520399946348394318295007969501968141018599537796343469022856583367276186088565054432461376007687117253580210555847134328797795557975043945632629126372091797989540881782611049321092267567349557128023341082539805913870092723440848050925944133669224270161990895245810897485408828029433302191808071550190000209909808352195175275351351064173891968723561269865873794289380277974604287623829456584416698763657950580734562999275754772735594983608687201137179517243309595952649662941182294436382877187108738121877448270400166752619937350807494948798142064210435060492980476091644649825092042254060725800704193337361440255539153388837261445342454283239429384706188928004306467869336913548919371373038824570872667248654098392269771262397781120532321829565331979986260619616323155353737347143120028130719817827412544788659954001896189497837367139549900581710798300446784781964349789557233261842287664781856421036560240784884997128996592665701696619560914407805169449695170521909960138558020332064762817585170505119098638720668871365845328298168534984575633353211869925138293342267490876106741143676506190539825853071933219691309384486453537089450903129236203630766224728026475431193264101951418479997058634510286552738748983453624770467382840496603116760483542081465429875544970401383919000163196107824755751618441915600352272239309831219044121937020914838570062744782621235547340522190141497710590248787703989421994257481201888189825874793349051315354707879416973528584071951367868146037247279259988572712792106975069609375650942317958108728361075824011324859410181467801549184337471767168377042867548180468983367573873439524984346721888879043544450907282880160046505709614287350909215440926004097782145372770425115212842857144820717838748569931424780362205215849492490671631387405699442356670709207588973120226893839602541240150128609410275938706516100102134653682132599720568728593887822965394961482126250198997422670261970513462638041262893745665069579027990243839390070533408118045862720621029258355366630709203002895118902162183147236564306156691465979634107998879882793624296657340757749833116598017977912160075311165083018345738247351886166180600353092906908910598352307400599065359341949323775927306974325311394287928921256370556335592310133947660273688873144914830365835769801539159707474669713313196592547835037726620289550564349374576479898705507374959854481191593074715544856004289218087528117600623407443960597389927222859715550395172813385644564091905674768352726361079961196904075185772177513906551857586538581406045944946477880192345087250866919363324945542700780977930435778216025993613335760802294154893951256516103741054762857121772954777260061642963385289308703713008471571987289104410671544152323075823478719972279730582582285572975393140455447909671706984052357971568946004139735053143527280528872422046174670853168103418658907489222627284443763488288790864080074535921075481628911241427531330735806931672024987963661685789443913123241045874526032187056425921483071727045254161744849135800441279874870796249287973483377048979577993551846263840501195997307261609672972043148360294761857707433732583736949182610900196527844774707540022321624528218708750357967536645446889478308464481295554526099962285475407577064153372152790816677680980652477161550405293064278304584750520422705976915054587408641805122747378775893517616372414666715794610529307286980424895633008735366474352305869246637330756579848282918337652802317204448029400315185804251757990373351445217903820332769797060129716137216443045977717609931854769587291104222852180598304092225158510407112108083522775046643121666103624221639411375156314700925326207807646045737630818116638902587671537047332151992184389244487714842627207748986576145709553893401609982087752850369866362834861213054702094872667592047094637256309897107051157660964364263211191785230786800313533882152087786423578861046800017461622577518837266594344591048055302225036184992293586021830697291460439119493048173224326564953236895360498939810228835356224970546496882253334626723759364903984458439870490097606257380817305113616343380234008162351457918056662276831649633518747930553750582944684345265813651394508025082178984315358040772566757922321995056684872145682328607903312639849845661079637168073357324535502260971146970470387764958269032438376992526233038171637167448109893617671019404319015486186093288339216773127451632427650755658240883406439969165231849460062507608187075599391747313684695031359581995805101175408347346537478712979717791544108567998738535433708823253529579769031229972860490310782473945553757040631672159819612105550919038546044340346382771436341383269764184680131383641551260037638233499491495057150717593856442736898443990062351594339434053300901502772751885803623260902491565093928027516902923517447091375934430083626037405935872290883659325715621444662042672558635963364637301368060210119293635332403712972746774275318297801614748206934135745209534974050752971196595241502396990819980709133750261598141180905711184863869280678657677183028691688868977587721278078370566512689873389033401512982195624751827927606907948076086392808219119686686120628896712775994263462024318163430910407766825061773191108060589911385874056755892107807728347960348199185932934342594189014588317254060344958130738222581598064839960608275983076587011922636847522006037624458069738776776694256262340481714976121544986177061617925436904095027981438420597946823913633140333516772388125785307735554999201183104578424037868732007958879798051576206195751276601224618274293573295657835639150590127077919107378377530235356688542851272424925568970578208755687401125127581738493509844678874277343737461611585217996735575157808311107002310262814369679539504067155244406212768300916190132060291972066643325006496394289426391848062030493476475650975454789738434545717617291701624288709334423743821355763141705554762122865431145798606397946930944020122459632460329924326540347397205306980003045011031944584117554869213963458059844488406380865862633394050473280069872889423892124339910288314788884751303045932590245012623298985382740963696086323678598827110018969398215600031955783410011250452623169396586849251670422281580518599822650817342604220913153996642413839574296461363756308085066634189748652365870413021908087667891402706034258781899833692058835145340260762540992532411503105645643608113092514266370407400986492020921866731774272374391012360605611632067174591204871235702850287657887599466460446695480628837529431011211599688949778676922463658110200994574064581628833882891661132258704322516083541922988046306136976578633195183676880238073338844756548825925147948698059643458877169808056393217038769111810011020260413552110383239172151557929310565817504923854175248152073228555532455506690689963562275385845560212125878363175334728733445295395141811994115890003417302980373934277957587400163575767719842880124270762480195555538750926301711524593966838363833246188380385256538384289697765105482719712634177219479962755324031433704603918142523354006458667878952050773009206474095468551818766186555378531069921292490413737806938318259342050863115776132302840873315337662332631935642385244081076341640596281536451064754927204250752254397355557565848304445621282501785345211095326187456192467234807882918552637455085349872638001154165601402097303211834780449348843992524235302636133608076040446348552995632056197994193453588454035731527451831992816724809681620864793369718974989718810550556648489195181802873375026416680675235307016113358150017229972077628143811952163787218553605601110968196518166021992824360032056055228977917048613731726536394678969692429739656829402730622811228719415056600219677647656848314184663293619862428270231032462534507980805103485827692184229548425398375605516358475840298265194874845230358141292505112292221601121221117640752147259042211042220261436283449244588175283211975047146549123082176366686058402228459494329624231032597167482080221554873595857639974946315718795730717162289403086554788437256504222811517885918434196354180750347297116045964825949207329843428169696585398955328132409885953090781919369754107707505823463210426899613800284574193727111629588858932447940085024726798490865748075096455821844077926289716172288829258072969631360848388670114153995601022413381875195014750047468530816359868638134363404032938073649361153094462893518599523027447471403750676759640954228834828665105557964751772658424029168160264602190473525226665555745087650630697050097757925532301480123038292557667737899913201281333363001778578852546501716135298831979830922946848477141892034936241822057482896959774999949968298003636596079302621375205297579969773564093967062444733337949963776299813146627039405080111296358082247847893038933691176139432086468509124300968950919668830445804188806563342149584698946741364578022752259213064953414292840382436941624082544970798008337087717506202794890205931495182749420954020714688323881194644437804918885521709301208553792068154440322185892814150138904196910991466723101062444687761195712455240234707088254880446955553149335016210692412786053588086102232007575373767952767069213110957756851636314371640431269670627586332473886648084922351827035516317337774177163234287299086594474682796307114535792412804934709074183223041946957990140942123618534683880217250662679074884732744477127372948275725249859867377385645023812984552571200577473317723549802176587393285519530779788092443897758358842107295526528318551786047839913427680380014197849884713717446485038769480964159395406675785827258461849963966927011977565199289042276858757559265180570925730633049226660761737700734705458062447064662398026415356309893670969437257639167338391050235875641912919627997660040735023698070573090744646268408277645883462444996832523086976274788043235959916840009087534117442973219730541665431418495023106925497875851020673333938862976629443381834635810129771374573740486751933602040279133574563708393747243225297354030109025731264641965986594775363884418769847519568109858298956931275148314751925886276057884819660113789242938867861136554576292894098596149982821919669862248307467082902620921472118225909749949985848958356868151006409173551154814698335493076382714774555226686350567944519418676346448159527480166446551246233900528476643759715004498574698483685243272867377617020175595771282102347456054476581231292439253805899124344610591183587154485474561593366302773633046913127664277348301660501865534394277854812386178336867639950924913716940712187742188589441538955647679720642383423918872522488057436733324709282845104665912718894147941903869820408102691995667220799151347762162131617501495352775170263044188098367675652304787050006653018254305509429339923877486115788043194252464448871796900206727555303024229172410339024557558267595382264407330533786551847048707561651845976124923190487015910017488364189108173360864514361544859464473000375381151577948691146449329517407967094732823206801802720770316712441679534018741161481550836230117017349302246470068238167840305454299829812901745322347514159518706720918118094717354523472936846952956991042441907625209632811575780310380820569860426328777532574274349146272627901844450793292326358020647501244475343258211265511978030117715631296452682309093105996978044842015512153539570279947552344722335531575421922199800402618860076687863171818926626570689546303289795795978433951019487858903118560402015493434499162930857839410688573571087461744086215154881665559188216368284777998363961608292466864948603571345750346101829234549994236874584128704120650307541176675777072970031933613289993375477397512026850901135903136536751926134772104856138214014847489746644866126694852985155302135755054511681734006468601330783387148790357708637564647302746313077011624646889858337764312250601771897309500013378750434119303165879734144039027041480787751596766090715018235757827853897911334955600340652944964944306259602546058699902279758435268565721707307662072054657627339007737996613272151585544464029978306081977922184769856990691258134470218567860110072185040359404079001414678837927069584480491532534874290054033281058695556158918236005862969636709942468895047443545412134935614209952285211825051123343228721431026783169649048971970836474333408742067451618007918529596593895266246805551885109082391857955624191552678557699962288749035727813243881976239329774118904438877327766116281612619158492754366099454135129178616623063498361326407384220130795909769162144784010896120907506484951724633499970203824965250446455969113427094778912214543810237090964551185865256149999339086529935565108873258132208793705218857044810341935342980550441331204265051574600418981499732389721565580386602825109774234077115665809933300243693805734468142905337237919996239034858615161928859021025080427774895281042654887394207865536465971177866974532540302478586435130300147437631429108732789628923395614371727841992248929524075624066710648120203229272724243741074552237650455893811968296085769440618377059879624334653217503602446117712701812611526221743362723473211234780481913015989300298417859503452645280113431512329069815737817780279191781179000172082126838183770858559248149325985665881242585998925156171942629311220301267675287500025041179978182128252590423855959892232554922431514793520868568536245899217301663429836896348103967982455520497854837559439003937942319641476952091826877311456657946381203505811021530211910916499432093323933017274542019172378195476264261763334335782740141344721243310347853920695258167201583952733805974479525449651386921515658650775543591586806965356259542898263177176600510189424409183627519267538125859873221330581537512330374056930938716711324649020909058012300240116147863142344462480177791903935732057789717710209825784247746599239954790056465006209608000532987982698189247772005825165304657122693620795503841950322779875467664825150862006800413200699181460425397047739070288460914184650395889568291559668388488859426499526070209074685751407887679010999120531033784702503803692957976045932713952907066947566068666969702905330398184692236104974393786062490857007935597460480876286947108545676483228157535170655583164103699587933664023860564165230722323120428546887871405039416784751116574577178015864302224683836761468004583784668402751074854750965397913766983174377338628902973549513873029701135225641367009606664857262372751324471440719493124141751544914350166294175767335422984693592169825146005414107844028058527536613294026003160297487603085246041154000561479651074028510113047050400489749228354874566219773941916296206706227998315301579589071183233314644851698046790242945246815222231394647050957698704329137350349370117632509366033363678388832954046027734161004235793597754268066591385918310216206433973365509096654527009095881065188013646451873226348006801832767982831313319084826747386136326694338262923822003451185812788629889165756414321571101582057095873588205979692572857474679505455318754652327889477473025097852280482068644733217924356346533503060510397194692764119283024495577586851756857102007172998732284315599197200845954358200346363908195892824206463836108732287345963097780226278582948549950131907246349673811060601758011257110190056258798950783579519814810078835991675673138517257360028606666140626985411803374713150786585523418079101300442190848882429537544279380428243297978393762511707384380206489930687991060362902110558520864566613721833889312118184052275781627839479577156596815539900446179668686219810807510823889446078119104422098359486334004882655245549794492799027078803725768453319245364407316658948353407813152964489021208698662571504999370837781683849649919089638976035168646428870260064601360388527766327327499029275178693447854536733078227454329138360944034406971634322534129589476558274467657512540001134664577030938888669784998892017625540410258867126907899420100866421991234007410937914701646632339079981303219240455785814318440893163082896838713003366306407878731080159997568185104953697135821653454242180709256631711868402797981452904023785734845271242604668609673016824104472333890317155273982852867641086954939932051952735488838010653852272670145668571585811515036997704394054322445298025875911841265327687335154138966685519935059984698525622719943094946694946780698261030895453217811497311052356930668724394122497598066655071505595543859180857033870472615205796194740723871682034176155778073285928226025129939343863994292634721695120257312086013986907074076620391224690817663374606296057682258879609689987943750767285241872892209971529235075314060360092929344130874553809420785914103657196197213587926216952317379898702428294196075618284893110647005279292470356007386120006883094113497882249354197238030188040986725986320451937554753290890877247790710381461207770204918858965496857458856242979206339473038627825217368010972519015030277558871386326934021012569888180090804781436864256176990879953082434860637497738838976831828066709685315803991436192042461159194255592563518564231510196910877089441345218863076104656634808768670550055673881069229910645536423243016985862298275887212331743913049457817061484751837589353960041917629629115270817654997093962651660463636321481123601347846292091204247655681316339708356032283551955646486234152255854147376339466544931928321699025651289685637740876086936110429477338592862098802610979193448468260356450048788626056328964523584044754267116101408035856821296369465606566533075268973754637775165026590799226762329965756156520972190844956130384432076472656832549559567072096964497689135655976158320057466184841145006638334017777648209364685280725411513474618596159888204353111267291250737670043574113878412997534773948833399786747275084242147743152200804063357977687652103091455670615624340760278952371830791359353673869259416408586124091020267507501461300644585013971407045760798369856022456538765968475384184667509102120398110064915023348392516846820598668708690197637993117257772170653918019064412932194447856301224534588484368312046977320438772146614157013669404218972263441134550062196784185833484812566709558255747417225345181466706365608519615898827746423278861187937159943787499901580049946043539557806370790756878895414817512307898797757787698667714554847456643433474035233612129129564666860830499381884474261203269029964217751679761939473625535293117932494373833920250283764746726685437796757052091721364993711818289098115419753086533786376516730109728508166533541351111502969771559336426594970906728437060103506350595593954688396994873406506377056467856521933195904327781752331584338067359979043736160032214005112366203957799007934639295732561558180448643773957081874680613123007337107017442149075161918025806843869614825008889462764807392161025165130353824967163339140042062529040779690522279065006398219229444843235185443123807918195379375116211623468264946803739402597032089284971868128592168603205473647016001128001829103358520913008425685518671182105698395284179924177577451492050908772281801009209436346139968009470547988987242471740659463521590750130562058347916915722560370400396087331226915502744644900751100816299450025833519864853398843881411411118398041450755616413069613298349129054872180404659883136358287010704655969403312483218944505083820661619738809553098381147857509327675384843414487133425956632737003483506799865096392332525531928965657978781961705833855174671291494403055610153469026077376590344506208563420592512704594633859822529144742926545978864996329414671220725079696868551518120036672552112576161479913017536720623663207864810542371792156585573268674498953989646911268453687659272466223246183138976197089640202068027670075472861827430352674053240710227545316815911344579654333908376247419524626452668200373994726747038614361044090917856774318418216990443947533066351200393413091044540790940004617771339938130816947750238158729146135019579945081084132163973020948358755906306684052475184050458071672775285957621438380609021353058938929280177059948388612259342518713134393763781824759829892148566495195047321254992999685795839236273791226226000879521780602654384904116138706851531643660902762457519880616858004916692851824523049298020863026482036184231312719831266371370874990350636915708128259257655432106335957502003270698995053106295364613664194930356221732668823364402372301081610725997049064406893328926335723220843137702369517373436334390541716493096112222082754844847306058425953834158384493049755124175258283711549880015146279516251985824227675565624176478931175537683032901407986457156537364476548998757305028719681136934775142862230966672441782196386546748598410273698583729976948123961125327970605514884521168038616283968474018875748607961949307333971999892328568916728414364822282911744714983523476642612538065434499314618892260103956112573332037379114880661601776272932662892036450335405309550382699328376506323125613396364560245364336752768708146114588561068259701138657584939159465742525333326508282928393026423680187286362825184619104610533567440017107183849946155249461810676099498251068196169990906172726018707333020513694355895961991407356516116894073820238725036963984856012379230186580656104804414038482549832309611108344840782116648682625791076688320270009374710143435696881769838763143266689263295792709225081334767100176679284312317041291709751313483712162270419967036811307941881984358441675427935111380794329157494006660446119597459860227829100347344922379655406660173057708686019595640832623878821522574929402704222619459256377379042953889977177572561040489022330963059660634427514118121426001459974449471118504020326667785885432849978590893132105669219811814435625012737673864371705554116426345171299193645263000962765733540123646764028134453548404532429466639918900978036541623598302077411246939305089422023028558330680998447970746069174166352857711696101774242830672806867285594770008538695403107916290928157728897218395798397843355877679031616987987854446426746911300202419330312966395644367249579337532946275673150231209981241241076423094541762909446049541917556573640668685931656995867740935415639213886890534781201252138664440895172414900309320852252805656857179899730317043236134800555874488071941456607508437664706455025166969216671200028926214207020656089482633701265734548442676671876398511444354188113690456499550887455600611587035487743965251019405805189410804459427916039738586676528673366382241677508003402098760674266268102093482517379144076256480977145298159619568292776023773112189437115084908685002427712970614059395368086651401807418580306453233951342833557339472203939230580066329453170690117007470546486115785577469752525478329055544792973773320351085570848900623109846756790687046184365440969372571632064111035503079581874929724247115805377301134187894001471298493277190399204973846906529869854318631565633643178296870934759945629398470618727531352017367410457730712276163033891013849832145744353864772015764944499723793713353486094503801356516593039172047209794054357058856169352402209478903657625774746578203986142567666592368422054809147215150802485201681520116157077420576457556814424439636175138871750968395270878072531510071762547829791261659942215328666278536493244073852092157613323831321283341055299845475990962860434304705551239777143813573668044467050787030356109274916862301322686699429127825871476133775581627880583108377800187352280489862859060264798001083064165557429977048857580419131131331546470797370535366857750781322166917528174743625475017587857791256428447389718013031667560958035530191101875373334232076802700044193247449609696960553822536035185501360555848146573873254004864424334033563991071482415525651444355869363095676946213575015969141703789737085773112809132804812490605906703175794666741173648585282969451802422154129324408708924961247980982182232415653137356807564501549442571003287363711373935272158968732306639232773495614021627642544096404354052619381110365275459149168250321989439065375079824813219555002276204096970239603123155902897763815274452419840450098819520339030721588969835657943033286430157261355603263865787352092938426073042632561460472870134748380177247130387111836854837146499801011431948589857912669939489060689199096675758774910211648966085122258491601093922238415630216712286698887798533961244114790057683037504776752727078894735098197073201955114748762459654163690560276637135369559912524717965607866947195073726785565628779665552122898006256696987225619295838823967369503423639151784464538012340409741873165617220084467770907085772359838728724410453846388292780692064066304779437670903077778205304135227376396780791536094873487440770616567208839648538291871776964275544948041766153206151000648335858963265711935532827166612372463333383623081794581298569793401719432255052350823596401420684863397198534874946513321779969027194983625507669401138309168297148264846978634214522416754750983382218582693520358944390365585101656578289731523908057564024669218619147883433759616939437245216193258117220889868836255989771681122367957932428199113850629793945152799927792881052543828045519066325271212304117246977163565391309251882155480124134715720003913641337490846550365468882790865167027928084554141131711456104847721922771936183117112884337928701675028711788862396987979309569062590283927429361751391495990026016926251772574323072861163073646257293926525179585747251445779944480601543309631156888237787722443730925917158593114708333548138575415294037203306240481445890336803501400151879577179423283502998029993944749018351158542524229799751823297686782413853118442314119314585513211456049385646005469933364642073460270113897010943909071942867591210119977471893974836272353314814837330138501886175040617596583618944614127881784458800138814614263600079024506220990453236136575817154209312489010340272250252445019166987601627726690840607482190742484658840212044120448061890037808258205321422553957738402258013189075655799867403634307611378849493712205445437904295284876801760354700372702937298189774018359499414353109614082444110370689789618668708208942344242983353108978612107769498082111569938309852024918614770328335992306422769402861289512767106794531131494800679408309238743691494679619365151808730211952277227052475757121011728403055428476876223815398020920514024884849894733273449711620127939738741060530686909918606149771856184631574768804272945912121668399890206503120056310542139138333513477899281414606544193746424651618464813259505379240279600523722556211544124569252423665190258114652245490280840140561916810941829599297093159070930952067319167588108025514640541253585345566331876004097215027431210376613445148736189402951297557828754082083605843750732994322946107426211440766481801291711385010477435863660985668465496737061251357141098420425088286465825148866947446654550461980820545079258251409294478643233361117723918660475710890086377544701834199330066791402398520104779857164361846744814138971139574058971581717579317284234070966710038788645625451419518499984279261925755620999965104667510874419426060018502346698045376555929378951075747337414162398376396475526262510388955348489370461899744902964584375568518907826653734270476968095831697524377710498834386853690068708764948752144040362479339505134207094851292915426304270734051981185576380066051533011274559696036348850384918272841605370082286605538335338788761062447170609410404794639769365644882663211074508283626437717350023373509132210742070607005131977087966810401849553706959825194232262790609440537563107891848457948023827850572142958979958621478691140554941117562606691859281700807186159110042661414585939771121695473032693886912401822012062151886215453541064632412748324486713214102217309717675105015070948506436671196474741559058217600716188734020448747537578735781931421547762495271087305856988817223876458857819885903302410273986995254682842649420533957174302008113895645513000939348514112549314170829105724589612341508667597657468585827196213836675487411061239917074087713018658537638026111330522433757895228557656485225905497292684308997194174259554948034226883865520520752018847504896232541413531324111975106218559406240725503516770517586198002937385513837164835196431148279191333476305572742886170933048568448809683775208121125508698247747033836774508752448924276749221188000075825807252310574418550996290419543861482602981767984675722297292643403547893275107319146769995870330961449413075499631266830199408654703208872841510424179878754456454190037460905269132215625205671078564676533004068699824040073294315391268479403479650823611409373920682052520933570865047419059420724208020036842254343059328577721006713051396704423071290020671763081543140044459441146810074404076520558634935624147974617969661640215181503713057605008007598006515875071424435105855589421314212865360611548210398548741656015714670761129432990880519443825442948280782458259478529033129163125258071006143849430545098326365183355903936653543000818495565321508678704085298757384316085177888517830264717757721820321147881599520714469371902723313642679446821939442335293617595242095664111094416122151317785885170144815295284451773343072414049809812278215473238842519975703179866551642219300806470220300629953969902861959162359085059804895270387483779962560351980034479219436721213315409336451129556789851308287451813155165780558767611766387371887114723676955365940354236917770312414819104111253820164306321840992165937465401238498791187332379777918541059998610853980096922933125258941933263121590852287104297191770097621160436463578039622108452543750507693282785062789774132330441112720221322413035601939385606566120625303798376057991216026708576615558370335751372292543430742475901719410570566032620840954892507940657547263938392906667483771857088643003137262534452355048049266361537893052294798848880915996326348610880698378221622572839474976666380053945097055916706561413358266960535645284165232611674977243024254303903924396783812492880479822918220401593721157922011803746578349808354081946849083643770594601784871270141082377574523612895666386036735099557333272898883601659263754146973110925158609903481592658885402714241102921783049096321809092818980951459415844021464385164125169730797696909599877236075346185086637996207612518825971900519557099274580896892741470119648208031005303808712461164290828786993377469371519405694764364537897177159211404018360397100034165788249836831812166355244427982009902333873525405593281736744516222937397164834634446592114884336909499600446342397959949084681252485382420095556464731929777950982727152780275376644675366646860447277277108816075693479646394668130525542015124814984928101574449909863701393307785997341361230740930991941965486352468805176654483645768023120702371392686862334540464245364200587840713535821161246221813269942240598645825268552772505951410193847879184034707531505578512209477331287780281504984255448608666996034264552746129475668841832422695227189110530290787231718774303854355388078422207180451717846143629506867013355200970097425300320832117000056384653440178136845799475553994345170799153450314630096755628786299392226874870487215763879685404169033518071220014176150772761908023954535620179289205010915675911359502522222940330441484182232383961175601861129066544366092530412033242431724384281969785752114938108629287502429267743194078775653654143712815210734322874162740020887829889056158380936958784595053451575324495246871507253706291100160615542075078592137062630982160417916330800820422896149017059354680197216051318282971328190022330001012169409880434830420145223349400755770486731301886896630938051901298623999481838755876935828757989616415535086383948595665977879942416603234061686398179042272901030958964529694084127672883709431440941773809100796831971956572986003875098287238468688041845213272104612595012926241405187994405403112475686182811033845002293735620732101525535264629639805363159351465866510129968827116655622420657929007799485626742609880564239713632740800090455469531871336477819609511150348815551217357385669530744566377130289017809468870185696497056095981136693889094696767880968767297020396995782041077194148933601990334284128320532561993824455974386220723374962299149063173655896484803281430691037009730903951818048021720598464371839220066777858920164445539718661676072921322745941730478641353519320537423771689091872771098923925381608162859318289805506247893187596390089950471298412980807791290567278830074193163948264023001025819255419667817570907729019972434627617523352200404989740109213317564516135714282655588256235451743494187529935766638245665601058340542544788205387933464624433429716690189278920898931477373562831589853853223042131334712135617353045448595309255831305970169001457084194739880678054952973930549718350801558969848438701465421856399009083619281276635113150548016122644698918465219938457509260661554364298978224987372641154612173425356482909455503829027594751094110504449420919468564524970888754348458804610540194053219386044715709134850322874494415076788906739951677939432895148369793163033367939638791244606186736110337034029743997826619725761089531240814428267044324601616194067160237510140708271404261009156805608327305044002697687067777287432203611569737284081082446303341036333505453042784348776431789878715297028815736826456880870093934517362203609047476904275379694448704164963520813047833722515992501885731126097738325839245296609586876835807720835388559842205579765106221116573193177083940709333272931703033372958601341224672800409487224882017901132847508139165886098624611878769344520974175044098938291102005409046743772720012244483508253656436305808720735020266366394551676400792552691491552630228666170000933035782347640858687620985904253769223286812972635746142658034336828865126751989270055707295845543287696761141298790516498875744136061448788568998233249768310340663137369256311196985464654312234674419011831153048897743988207105390842222271114490118331606943686939635832962898201301438031946260929421696827148335870135594365520808353479253940642341675985715493870592245236312405931530421753981301948093272874221530757543496859582438113962687303598217910967228875532049321249801252936546866675297636822923267438644790262258511666148752283095871595960247474943890157139354757209340259644318460459140179073298522634366245384929679087873778828480525032926594591953346577127491486574850552159403141406664435689380346609076064819721988184376678872240883141425108333053346694712521451893831112910052516757197060686127842132517413885543854019246170767164216998876817560440365516824326014109217164781105185180528658791126123185854733572465915387403164199409734091342234749724844852604866555245384336851974415450439019693831455638323417166777884276631277540673790118443909753890475053715161829929859284924143642700099167263537814659312168339689813657591757479330421918169526669807206528059642522176293700728119215226555515867007844622376741459177913161746316475816871488168550564096724852754996470839914940424646192111916973365095381707405796112909279069022612046479638937752374575912168230312128986556306811934232884800804035064062496253940836855534192341416044491766389344228016920121305311567015632978440547334190100471170022868482136986636887339754295957541908730886685401113200903006153070192546880711131981766592452018780296540709356502984515061939454231594996253245603673809828400744690308740870905504326092790541867318440317815502217600083850308347297512458118084877957912852028657796618974575134321897194523201967966680134111056917429181586196069841526342603477594620160332976693900000787218698540291746978196619183491021278691878966925889055874902884107235511693363551608220186424502733962795556129079871215551131344501946119717355804516314987383119703334315275026898586442663389372150551672042416675280799626151605738572141601211787090906991387514239247729437408580465412527422815521286804571544423920141320789132977343902628716705618486600478119887804840604801118149830105967025119569295021388344853671525887513579688111049843664883392952830500173845716342481762021553120279358237135075882114843343429529354151868868570401896752491900042894057199692013121331248701401764841971788641154734339482751113287610930748036936608874984124064221553340676720715697980885242963430781215491562037418383690947158623460507737761140616173648445269369733635370087244681776575862959650642738699178757605766385159461301060741748594425256470621128378672202572025652437767399487663148506772181554043455392517209349611617938688676902471269698038829054556231042259423716102670593490640261709635373681656798590905594717725062135896291960263970882800374430181296760706078101294313635148040848629062718670873366281117168409684387544515365332354451032135403867607794004027675755036819565142571971848954711949158322298125576564819660414150924627563381339177576104499493919677596174178672875563588537607005626696259243582592090970831355173146387544639378658958883693623049193651879190242051059746267799932768302004412715747501552765613804060897063778557461092423365040554529366197524382922450824745373614376254620598365295015416300318650902398473260614058920515560862578422962321252529454454719440736112366924125894470366160283430889647629307411494695780843902901094271111230287681986230435375205487308072842001044557715447091412002121129556857607731836118364658762808200145939938432905532306767361017605269872712872154306010828727810545379750740400757546708255005853752211196394152633888273595339948068058729037106155905706113783458528266196802838514342485140360028431918585283926072692294636356462437629070199982228523236497481897896860122159504140506423547262399567906153503991655629828248773766925526859415309161906260746749439799069275084044123347862959109108983209798963250047723083692344514453451553931212046212174670964059111244742963366863250769456531334018864928565390079837241402780072147256200950487136020114750785048164325484188804501860664026801266865299753978420954002986463082438537512398237309532859500636922726334560256697768910613449072485138598035037542849646450896420036417647284795808861713779452294861147782420557922485841352381484242494712576234145284776239132982123891311543171743279703168410026071881186150221054702931463640186235025057062252311528277244320669605538307093111959928041126840252579845086605389489342665507933066316389876815132671567917985959323203121710403361640379930880410965230126792846431235086818259539860030926300201444054435092344888439527265478047719544474149668945384611141631640584078918961382987737690787956681599290564259929015090759076329409767558336485844865481666534319112064122927343303592593968312698131742462137575205460856931381728253331430994729199168647130391581648555433572447448629102719707368892494328702518073269392548608327316094510474740111049147693144939602319437601672746142149924599318468135079990496307681523484373501571332769390907413665789092893961345108016120167533037748472155972821635450066728161816834338554436015273595190025396196755806313791585840358607022639943720266324862858870202558699752029770646588871741989760470007863569252408337415535852498735138280480846891018567611336210656297463896714529592145491291133247760783720691134971197477479985518654940873749691384874399370261200065053141039904228896570048908293335231677185256769828159467024166949404034308288331653498177792685650459894571086497763568471725813255846518673732125769520458707423005592655527004149389836094948855924309555430070089075839913335596386339753590163981186079814818877657703279098557711074775421677395192842011465826883642012169528845303729747293483214043466701888656280607521188446518395051047929768787614945353299640175928586132873451498148936146284402832129343113286121835388671632331786505262147792977507534035705238593018932847275495831252395017533192215172633328427428298321420851548566481270834607555897646341105534129204907650489827879738206503465722771062642872944225645963076979729969987463191960514180156829949861394673443089581408591535061590336600003812221850011514231856982554953793773469406940310584219956095453546518158034428348063876867107520632864478826827110566231101272155715258491885249133009034517169211780961621899752125294009541490861612079557177236021944438539643829391807040643305341199504493412286178841452353762496967426392009945499336680311950067318105900851846799787563584879946369257799232274242260429632256294810397249243609502717612096496277856639554244246052763322616777306520716709106310380565454223557163881250998871580134568236886763735224731664660237573474984725903510934386425317400434036591509254611950928647719317142305019588031220734812488151684935005087213593745462753619093118249137217777230849466356370431308600008315912165379904505935084922862722256981468906990272314359198275878305311698267394884397071074532843422283818524474508282774655280458615156939357961328017024484500587097884127141358866833620475236493274053110879863710120747524988542895812949033894870766123563462638664507225002389174788131240605413867814767620279996930182308519229613197606730688069089785159286621703141664212603230338173261298644266037286110939569229718603158212843768920628059219877490666631369394778398565965261172556246484029297217393273977576937069713256805678420753895071997772646521655411773026352797997006736030398535940740809032720972205682459148320137990448074570252387302470524686843681354415255687410092316401440506560885427239511973616631563497152171783743819097242310715145081699541858287467074423991050714711492281238571597622944998431569761683983628878693096125378733428417233733634018775546975810379206290510233112318332989075904917533815584564275825780753398040371115188190748125737409143258279854993341987535155540521340747191208084693194923488551777039738114980882766784077426933169762793426138374036479746489125129430737628027906652535545775810890166286468825954085804064967007981150515769609856362302075438682252324715684973533289846539377330776010156517227918137231752349553492245848723912454223691598680184758579445206276428534996113925990219130989596019217844539158322798973985601827973353412469076250311196988233842057105166609060372834350184336733595122683944334862525162713710952575815343325467998393643670635092638489090517334162917831088551849123450852360560422251336143531302656972771072727036301058788792918968960678264308131989381054495270307705105825524231864897431136097143008308602590259848118630869758266110460225065123194110704149091607937445035607319905571192514595111994094342661626031925304661435767182361922614770729186428722322342872289690013105015013979141642318360324016730323425162362137170489907497287616124842012726717421515252740873237274948042506578352112031571676681468995822314298568843956578804563184946197740335578518147350714160244813479989770431852764561211461826070321036946521732168939928498356460372907938679304386615506716680690187997612741116576101622813023635055683488962637396425101237924693696223109968714467388462387359278571569701386934994579684368467093253009034792660274175135486159485589364232508705103361896280702177052743310254807999335274866198527095463184716993421808591727771713115991740105659206240533530820247918324068431425705712536824619938996408087011915757381214624452404746351355202258136098760758695986973030351135318738681234947209723724261148988637213011256394152427678830115714469926045732195958248439794999066828421193649653599621043486408704966478671375659873580070444503040483904359249191133516998996356504661697438813188625772773528967331733096505048820092860569470175310579966378250148646331982893842397607125187438110481755131491675232906135141632779088731634275273320034195967987045420751111896109745738987675763756099417389967270126289402783693010516995929378777933954672886083148909163299308401628490146108793500681407083426537138278102159913188443092431282461763058365780547196379063861693561507840638676699598503029612263890638292048258402087482714025360330873126838952731744719857615877458501119661736771453159590945245970571174599263511888235660205598992766970228809260271327769385417172575585338708250438584115144125389056952215035720224885610919493266163698351900555140990057855989038270227638002399229159904683727220185451667479882359894999891835357308988415604996956219689450514317231711054739058686566057655836806504493361658952677972549403598697151136314505547945708542707472743527122021292987004791728736519747435659331665638633529358082228413476016235537623133462768729747153544478722965468053795129357814392861630050267718906078947962976250322154379192102548453994462364018939535943000257148015459532613616643758118298474101051905727599812327108960416378447688063188603739440648364032590490661718539261646283395110968511016520307767279235358843974377495816243828938845242271509093190245077200781670300462692549832543197815793867423404251585445730127240721724138937515648980184042894598872972879742980882509778846282536432569918796320129179634510053389982967166299252571672930168612359901971758790832321780857494372839370612559345125426857183433971902182238338140818795488880206836135854871284325389015888704066583413503398804738911093734618408871021484058977544892063114467896485126263859173910312067245541755354806285193747349446904113435863304073765060899054964203415037620504567588436587770460876944567027065589740109297724745102256536471440411782399223842982652216362318683802019732529665166201132284086728766925042433086930564955087493476464259713153337045679150926273413299533776695923676325380044076990016267668022605334863809150650727421754094255257013612658499242195184621913273159633858247359929257184624899029424902722321012677731666202538791370180779404632288045606714928521050918518631988175310329483888729815629351041134539292136001174477470761333339792280976781223714999960245332450022728486211934937969042459310647758784461845604205131070410006675478133673796568880731568743808021478148743276732485744397114375110729012419044294634828272026293383864471404479118231162865385973280280562319409155248480258039969636521407012832548162049908535867446861629757591413196983738259000466999468487103719541232977609837456771298704515146374935823925729686941919707419420922328756799532757696714248754904149402841065390129100685837355156390244778809327170451393616195341477039161157349765787643564454830124291846361328924140013245574677926182418286755450059615992512191156201395765621557433955239118361926425593195056619181863072883253823246419132432790552406853364602829407220153420035203737641812373614699140595933232297841430746498926219328655421434049167968802739527592732670419916474622173600778837202556662522121845831878443641813116267812187377594798967584042997517090656502670609418041892077641741894552467958329275993890873034293453993886208100226187091892853694003719659597085065668408872384223927878601670729623056973083869976426679728589822637284958365369718725309096380315370754602529052172171173867780269338834459609073769121468528663196161605828806951489007885225990796161529746720681769440415136521031895416158344165172697968440868597284724329942654359759806130876092388130961433677464550183341322628822065614488696778485652065131747125024213452703424336229845937609541550779911681544051485150947502708435409919845813968289899919235476989449309533449410760511713031727689244467174155554529480839533973927937668040575334612170813019678070421087656640150627998747108542168911529106448698830521363841807318320057794794872080232577952751840798192323927437848857515419596178196415633489702754821493151321905371775563896443896396465032775398637297220370162987931177982272271224132342756082895906155753583442598290911715489856105347383461978150564010185761703159309768035977799489129001255699252823699454049478796425179510312886325642914308800548637798826507278639657034635421563622641510347009184984582190241693468850764212624656774998605761275842539921882519893158798442383342704023932057739517487447120322871336048899490500974642805168456528730757647760015265256479035056231067738699671689116688015303689728385543514479254505482172838359174067911151714112431427865959994849998210247122627580037719472523731824226553036615222976810952034695876157079745434313223379958832005921498760461408231888747800890741667899808323185326479017476838729962522499722281887752916854254827144311723314542021071725612142101093153037566254453022563503831837396903022599449577719191623257536658722477307791058146932596805983106667760773991782578089103061033875016427194421731605328316061960749309112469751540573762846975444458864157569298822581993044945584509399459451310245441071985101652820582627215194442349520253967086452901773765889460286002319517209693633802610839341657716438115314785369120895728036304397464190755475329091503817843130551007599154590471764666898181001354737872667181540650005484136924670171549327528277294866591287717878053399383544759737054683660036451640237096135093907606369205302321033309724499553977566107914977309856763667517634252287651948789158702236258623570691481570610976070235583299959081526709536077360149464812992007914603426454341755715784755422435238997093749349326277755305977279578452691216013249153205702612843107843222937356031498674599967788509630535570925309268685856077194664405512697478722793632076586188734869479596969368755435447945762267144267000610040533959265197418863590264911277164544562279289567084349424106116968107717166778517461448344441316739597311538328569717715975946297393357997283790513821566539534453064807796304380684119114645516011508302178613925027742296985341898060868159981907236823437630885325789558479951073650088514222023527874857232061802663139433547727091612160060529259321445183909532542855438702371989417855240872384525676902804112012829895001490125084130359422890542685782260021385469845441369214441943659883386774852840884063114927556040708879153163586280290445370344908636146103874134341721155435510287219805669161832267099584775967446756746842991203795837638714297177364671124729194929483672488282150708038007972117468071207308013383686184400149952240322931450817323157375879519859935263471047178798480326378178052388673106106045928864190298316791182032826966704645293398199239046123236565320807860993714351298075955639233387601268824053446782525606999436432008305060747275320776740121311015283764813704982427367566822520119671202051208616931889485185806221884172685275423089922812073173180908975507769613262081363323741148424768457708888078905964292371782828257371393109756402866948361216139632204697941202570431051748868526561171424963868786347112438624623986310295583336860627558138347169417728213734688043518440307163544157104485972360774756002232005384124655061718904818741395607255634589832471867103452241806308162007323998273870046103751593037898273418729898268152039950913484407436195497928801048707893845814950672315931745743348904098559534325382189293270466753111548615450140365175798277415814169030550622384089954060783591357782283609202375496022613423304631070861385302731317088125226314547803125640092569514086627159574394570548699627595026075580417068076724426095028910037693507875639789114258359377228698595098704054733962813071909059217962903582449093965296054655848097706842433484257280528200959765228311946358737161009682309584824480590540469812750035545976886614435458929498742270686486149762476112659195574449810468057675860323224254704144937560964988811751933554368414017082235482853500992109917819976825218441403333523290228066099388831270807285451510262656252587369558307004181698182539863920323362884327969487449392862870494490564200753784466981830648286010143935769030220846090149763247420394127238925526833909911378379007621906396468935332185138157461385686762419803962151484593161514494422015305292686871669780453928930313887665556475140541786744067919510072479822209531157475551653807320739902169585654412854569820871009112109089051793650441813726968597362269551688869186458577366592962233672311612767341960188281736289481128252908071436633691629283263044852605807741523720606177589071936546072403165818305619224064909481283657487457963482337580161302494824179121118460685359038881957818670963112767118164814892206472425598749253450388192090143482239910256114630307709267741337532598685009076029411626998955491191680598102380806227516154694111404020570919856467998212682654639146503299586932869458806826234930503812637113950596835471687459357598541071594775506836991665310736858190057550127027912828237545791781839924877885439014377667149331687778667151390394515306284878556601848388861441368803527603666459968232352028951821688534848303162801497185725325822223978188996199717735552414163747057402804431292525864439292487013041953704002261625660607860692168146595796369942584499387906211043800483593068740410414329517098904025425231588519018006613919125284946936321601379811649306901817371153801333668540204594056092116289741980103426108214227725003013786643395657860180168191472976630705310327032322876022416115567568459045064838418678602354531922907378230834592220660525618581822918170166265792370014649128061029802503449929919749501856087261057879831378305251996803329335475827910340288362806923294485185798674151599783939621066341569118315583839778598242586932086008890442893692617921880109295916040296350465468985687756107596701460892346567633981212949325412096123465533295357213886061685973103402642252544466140250345517499244381047295280733036128652834700801473445664376881147040575857278704466587974989238558407065384908454860202121490587104964682934390897683788330949822357404320695564175957328309217904710563489471534358995322977151969843948673374395974559294740409741628953973043873557444728112821283416685163710693521602723767233921133711499730961733474552840125813921248003386747866157789441563076253843629026461208243229505038117584094726251972305913673547629788263717112278645624084610294426149603360195145834197505894092609659393791530025616047301945044556734919315552059454955614823628424103211978397541773694267022380166724061938856716200862244341789533162023666346569337371829733738352727151142860152613905307174457325933158985513785191884494016917782771659976208423192639250142790299139968110434087288406300378701893058432097445841102546335324259859846654335797628722348630709834978956686840338384100705823175769918631155602364145826719402237281895099124422095178447150019659745259939996009806179864683096093990430634905018553481177420982570629366719884058189623195378508838204048055904255826954823448289931883606855349279113305325724861118864984702343001587328210873878448417373432992658914590031455966169455371397758764554480455223306350921479803554742961388179716190604642623179829335821395740561431858149690518954423961315061498306518615036028317921438779660374695186170534946947329545864122986461001613712367146725002506477755096624177538168620770291701781495467447888863698229864485371957170065620714594570711047084362930944881227759404402336505545348241506519441963363163130751321953119351727194947331236244448822429687004632386108132349828236063430969188454422080495040092954168863127387218600835250417551247530017132829522785793499151096408027544453563833746823501191771679580216564506697089269206865435120832763816599060620986689712751286381165483984726768982550697046953918377727524334582257588512893199758422404020870628157167032257035416924162136377866995414469025180332397251424110088198992841951957902522061165361383436853973296134468629314780653472520777176901626658795865829329945626031063070011795028048663880813889275767853174135335432870585241314778266361780118887203656379084608114708810164576907093504129342357703730900815613956933095411736271826013961416710537635384603041668828677794407825078159801997488983621602305804332086166829675187110352201188661353102466996031692541889722048138123745875166666087307015511177938148638909495377241513604484687081213635487466873553809540219096130710644883411224438073900287071115404882559677009222465376953203955591721902885275683257264887135611059390230225336942536554047145835928319112261359801304750440831744503508862244471875460092354841772819923064160106342805998397142018137018543893967231351234416292274414465079343105141220337321612757030653804948800528968496324021044564169206529086600851122015852748642294494553596825677633772345634227092951844667079006467705214625868459087671025595246092695233712462038216791642013652420834120878383633360863676672688884442626324065340056050810730127446368456845073330792995335742669360988257804849605503671006059696716208473575712723660640097453384560977074115649744215623657283128539789816701252130211942266682788038492525392843799412655345032680523117195365811824638841317617105766848148947424627775524769536686289206894392018144304201279538270658787431959875980859219226264157651958763314311442691791040330188834330415712228382119131507216539076851393094648691469433743551861282773470600703678895753401882255668556161538929301945290847762937590055690663758307700584454368852889238252788277587310168651031726766874797109341557382695429343679811262858639737227972251881791336778105674904745302771612650389832902047229699424605965021310636833097823670322688427423467643898785409817750650840618809531007091514166891107180551736664969884068545761376102485072018116706061328917172054868632764360032582136408492062999931309135467236946008571815139739943300663283338402265844068726811131267572868874295126621142666396470342147821523601731185058545400740476146844332745736715668678946427623770137368809637942389772446508483626545736443324144463714770261707020799925154049903776983016538164111663485301798967817644208856148991046765148798178780424398761323564034361141109113325250310879751438980377190334635108268634787648807656422275320407545270784209030233657080669886649847888437087401154116706863340907643370796172266471097441242857901732642590764964786817690696338735512627120246265366335709302145236672764443650194694906396592688003372912764824976014987534367633171506951714278778425277383958172946634073738522254036858926731590922559675602822510778176571546099564899917025847588757549805120248820764598324698747017439664112591840341162067085640292733986948386701159316469562566199039064966532296086667265271940508091899142790881086878210799974349691799611013503720308190509724582053329583433600665290645894098929444957944780536881435216819273984861887271572894407357480861630374298777537735095282343333992781322278703748216882065309400889489304326876729241578621872770964336068056145470104174266140642344677603676107046313542297304453210803872224134295509304235179902020241681216370886720424874472577560878940601834204159500014362976342337523889611348621994351376501864027084737158847926844648347220165895867608515817592492951353401991358589541887032629362502379189763223708366687016886020923802351902784243481440730961040257315827004588135234664431189655134494191737527417655200651155588172945585139783949386284714477167992717822880192898758319767861194695152815521171772117403191953986180519152983209463103874355460358156834162481814701517867074577542792311885188259455799550511340226759854918328308450315713813662854370391517192780086223706295870212284630521729111186100314934385184479192774035180721660176566607105427704614259021450968314149363539104112955695119688217513609902717856551980195299526482226445295041943596926007275145619773176099664993284670999655643348894168238967289505052425030642770334574356586031637204364117529224551813033035501086149787236676568747447461997292498619994538928539633274370605057493128545085149973370966274297269188401326823222869659610701438377779789967100453360284542596189043843813636196194046608794834513032301809175151401086219157873613390964363534134178527183963289029124762361004992214689956645571016119337171105914622669410815449032919460610064676505510506408049485866029553457914337907893243001988878932025382115575763983595234461056813225062351711442527771823259240337316448613175665116613636429698738354546076157230159925973782512193821317109075160427101389083439340072436181421363820082679290643220137968379640904339963818767870877522584367155139639913651846233389536397985562136714717415778992717457529420915262990509320674345316900192284473119299738090341712075196914853403738890836658242938324607107678639489694747007618113602328830920157118060924153814558795208497768253063898688551020724851679029099482871044378016421695710154452661082332265804420202606721819044079540121994630162068194580927956694700250584558621103781920823523382136129611195235661557679362903618948762178352163055932519470591862164862702748382995137576768401047412130631840757207351004217966285517051836157725718573913124246017174700334862163210764703964693453820352360218843174408625672736859668530195739960883143145165065891906512772905221887279332833246376507172431953492319175229435200717104004639545510159104596122991116660373752082577556342748918151483621163508312248302671951280664358507985297171391497795814239990902582808177120084164174830094140724495241298959072914770579014395586936085443953344186251984562011544865352404250173016991405887499585666613439893365035051391249503002109905030847725898040224582885596381499207689735031583003456334353027829256339776095100750589889725981414695925433900720083825703602893323476125453227510929522968105559901045405841582296292523367360700308383508908493354748284769278930007443375067348969497042835553734404150814849898510296058707352595489849761849555841819339090248362154450236783316329441170997851212936576195143716155691921008220038570125983073727995779914836234778687050212684335403681081502946084564044814750580765504281208185052438238814728676408163441757529676076038438495190956529820651472556706699875875681888325656334699741921817471691722457169395188538865385057127408352289019513012153552402255555947649856227650415597172537438386172001021188399562053874407501706326086301941939650760459593988469996838595205218971082863777699679972446239447074244901450764328534122567548227835057732539146755429769530330806343012410776366188106793330900522001459917943942847437713056977436522009556934099846675558634351506864056958303878842044018660553668829751878945620259498925427963996180425362262959882124798667978405149739518056043290609648808843462730492486764848524378730979103898135487641021968071801222012687906768746216676500626571730940609363788942837476483918045447089103911336938554538151514848843196647088815784806785049435458200422778089957829848359227910231629956614212357674761001115381371384582802829418334976683660013426426187549205234431375214538691820259614754190559382777024888197141985754141620232354885232094717086656011845753794802799982481251655548607531581497850016945111958145757309034386419725911184759723953246987567498474326849152842323945333068057438624064643511041874045488389043511512119504787582813096754513855405076948564729226285456241340988212869845862440677563781323492551170898999993592803678758232755815367633625385686667216258743499755741786807102333106684471168069541229361452938441020157871532688323649577637493855591493908106006564676426132974563412646485403818285134329044846651389216585385880774519600438455384241188120143453251732571033013465596988918966006471816251195571592008488276591419543176504676499919045300516305492153865828184041761446417404056868847412491152182193633114096118952996809777242003529138831180700550170486483117581410320776420863816125218937985293905529317617254596153474691210977517842834511777650423656166789307854409563549645925244366924734106940771316256519150024380613868938646797210177036659299619904786561926594317916460305517404829283504264643857678927467310348772670288187053444299186839896662299680573704307073547801990569330078615720560513865995333322133341006623299081095612829365477189271057299228271725778402584572739187493579484502841384030464416030707831353300311981554376912121817425646506528843245813497663023821578122779861574212989809603934435045682305700993821087821105408237643906543701156375028487105164566425162830346682351476154678509054562582180495651399181545819753380411275696194241739573779072930576609487903446290049193357512917691620238203861039112079981070797272726137564288486455372449186717470971479171051605193835947314130643286458312922472524328668746868478696672443980685009406460129691850278906837865344667101635077680111401566284369692152308595535869281140142362760072311491883209675010063824648407370011043764232740108013351790872699722201018336018087075919410382864935410753901802204987758266362960553695703101099501185028115186051750793061916420393325127170979579484330607683162425001867447451770890757598839134172988023843862259861262991353261506822129446492802638927391568468039040838178668384115461666908597331167945726858354068236895789980770780424511426524137282917354841911129913502925522599323737889903213131766220885434846100399383238592894757668858532297658037924673197129377195322994374084292105257617963279746746078797625958465154725347607862499992741397042714243665699550950324439835070263343375886805424956841652757133539211040327869691775058694859427439888295625498747481774420709432785251290285844022015790425461143005771760826313559768552763578872797536591816029935626925507741526631421169027599102226016841115802186701247295656783987890376612169274452438411716456742905060031589567254955482262092054625624363930085876996257967681391520432482536332661688947403383135645097307099426062177423521664823840311730216946021747928243847985587426499120766275179405730940495827994322465860462519044885187796057997234982272362737663001053277077986116231120173259371829712989558349894991425300361538934974013949273259105969617739043106305723312589211066544057048469005875679723967773356839193467958311702991091035501029661476353207063873646136931602170096119298938276241474041169339250514945106679425405375314882324626472989437227297760881065022186772019764544176036740197036088288479282204979264756971478442233473518851135871305784161891303133400958683529738660930770271881252281476169583688139943973431440995806614288665674903413194340104657522296726709975617933690175127708456978817606565462530171803695531219714901968384109790781129664087638927572916314480459781555007671662723810801784373872040497167672374415710798926228191020587207469390556173621714149056928226789449244499288187111407088909483356773103761047040747516187129930567719176503813676496779008926652740118431101448064061852729849101608345069077234036382852847108722925327244143346390316703976500071708558990291955846026332046384636342426519837330964011878026097418874864005145664837238250990932139619667859728233947689877946245840056335276570278204374287748017983868731146649045913291601895258623023621765823430631235756335256507326648156125595733065356345221352720627314256220297233173387255391849493242761709103906311828405004978707185781429064324514087193920246400448135947365815382161740545756182678250934667712843908290441089042158924910011723182905605040535651066910438713730492571651333924315007858101310989319254738361666197596391474574525192422431720982703201833692441183564540588167688462020349223070615416819943421036986322084471759541232831127413340915566275997868841332955096942241602913165695637249762411630222928561840384826294394612719765830222067946365957714512107995853008619258960151498510495893420096161820459536508430248874117514882075710793776820076733608567577256511415208761370005703444488197950501418889788788264410000059106710175126414369238361286454912425260466051025305549022364516235216289249250936351945560861460672900387228007700054764808106480145446173681390394501146961604420932349158301321895355416461940602190332713018717393964665141051241093731989604332265594226026432710516231989712342826868080000179711419307469408688502937140194244057123936283077533309552157846606139251234404632021641688511173266943474265279106106832684657251021803365004780701262525931167278441040227312803938992911191921903416953950582071671076398511561683369985664315792195007496542659844673667437495899713633587395854598062448805815127931973059677865521753877767379502852791134878972534121769684666450994134414778990308059441012937672973520223924484033060794889936889033736057152108810876545409149553091468996803838155487714433882594621373240322027839723154766519389830515563961769898554384226497797809049308306543791263245083005543831394764095861159969022615959550203968682572306022772464557895074147185522503730015620147998924364175303015435708847504045882184805300763120366366364233112534907163992761640053808366905757696673669811383265649765193495490147183059436566445841249764502046479890794812801762921945573832247359595388374725115377772875583321748892588620664016137096397769889155925648900764811896332398132547210629428354115120527222848254367236272704257664609247087075699849488697613824050213553311276398171866605711677880371256130350415255696722891159654668136820095337215739654030922757503372247822955829106597284594623324235697904107372044911205328452691242126797705543570907829636445041226224717123350198611931622703434356022659443766994988698791536012339952231623350874295222369649828422066174902607946283212467096950056670353979088952165027585882598919644403642496065705629883195038227952418384701137687736768485938550522926498074046402498085443674206001504874109793877642529697676583558571201228004846673035102748574545696189701557965041490495836539211961178541586621029634897600620534410129999642280005543913285576303213390510730805306664930913689914618112558057629850838367755426048298425185480430536129569661517922398519359873902176919599922775630203527515687719644422272010369654951530158314791665322412692376930462359379083146554084623737858755624665147584743723706110025752429285120068152304529102711473441094289216719582494836689385807202306085612626439868278415754571445864657830473722390164992955139584794853154990011507863811648819202897297483341248480739760942675995538973338217175535562824766854348028232558117675791812796831179679079122134996581031987931249616482699342882384675232052534561696224712367332110755184785676545419674974797024133152314669386754427517922211377843422744246177563943237957775722942840142564455944438528688529257242862914591597699354107427399665451197753935709159115496397439360410727981302587342644123935046300666228951925274554207933384132370592582230358689740153850655026080875238213679432136464674184320248388600617168004971985322269085323031171231206409144928524088076442908308886956617137279519925601318767516967507656210543399236137391198246921995824250794944685281394677583485589854840747069951587992709792411733120850119366397576546849051525394664266249630862029146453050756584207849239901345945498455679201336894556091723914903285904719555173576624488345616668383099895530863466914397151254004291987473666551313353251111705035657445439061930556328616993255472234927814036859086862884913423884672275520975253890950785019089609114697216053701146778846359830381027094430487572127896931493522060530055670041963434927349406693734738943773890183773979674066676957506202195818798979794691874755947574613169657128098212189151773525968188747864134154220641005701045555883218770402631929651679777673063326547435259636654807185575955270826238401401687031855531122382857228248214752799015914200532499283338090944375348515614985420687740779674749689375640055833573887042173914838631286201938893258276933857293124760308415921651762623926670098845515071557826785243344350667998342975534348691562298175552376387066037253197735598994987265852799839913751422779335753314271266566736239136343831829606899342505045915279247608726733556935114073441838209424758751548925251560592317048654136964067219039217961552120730282956180980267103614366782528458005214490575054397250020529673060969568623038122054392740556259095763331412068577793907450994500000267126930392403272003527481320240764904702183602622747181445646186798852747606587147383916246996499736256474855693206536140111658539502167592980745836631826270588367342920919134352588763147503740759816003832749566526013830400826204489666366207504794423493686627723507621830143664289232201980446715064737995625761840074109769993799359756869445780416072148337523552774936512823968867671509417666356473396795198498281543020654314838287388571681225603462210147864376755046680698383669458784565098996004350039856062525286228903102859041996068854275341411793849419772758676543661224644989392904782251466298948083089452920465749114146670599835261314690338394276022479091558083453216237168557101936394755800408880912838427276259930707445229264548782051587254431594362959875667867310251415539405924564506524498658374897265261835009558522091022680321103182033608580597230639941252695520302161135057047962099998684572451242450282896480868688139813800077469822791510374850052704990544909303909416171346975909144071325767049500012858516520850265384415924736815300209994209645233512008670662617442608851907647942412865259405986575119982988833526472440156355082906048461562265388571074777740038079152751235305231856683577909958137266420601625391178811345576476190397350721835760329850788767804157623841404571626666032375865710760207468052658990728540145443433353475885382732155653041227340270465548016368879141789915682920336176563170635368932014948518806820505011924680525567969565510996552460774144496339302239590278873829286035785201960799595947574972715057253593705125801731033961345560769258393121602860105632017892292775566619066161791747342589216730780319865154680676082372090025636691713264038047481035378672846940063955539912049010553138711689231897540189467944910850134608702981757338601938682007004576209660888300779431313269978872646978210362904775889122407273146806400823335924039637782799842595055995960533310287411806596570689840099443292753585727756110609072604134674075104020993623784146134606559064042502000326585814452942004633696874839601664722378529166404726480936464373562400865010512919706687827759842119795999809484306378387008035274352866664732811933525688578773131636132471537567792532045902536693563301049878093328773558751953014159193817750227769365058289125326526344740750307749674411509392838519675517562383107490123627601141478115807507864720847157478878814601554447952598904122647144881883817283167124326127341150021815958117807743320490618923283896884064675069232424275395711203706405469884229623757564576642858585953458628894997558854792892748607867892347090285464873378130301372206699742167210903143430259798057761437877187774994229444158357382388889449175927711409601181747928897155804510282514901883778422459774217235010718852675685621535590304730492300705996610140860812854534592653188094765507813255983835448346485310376656911212673981983517173552164376352051116951585269496021055729837695014523867404026126447404684543442828525504843513223529641003426487504453688501301343243755854438143276923594850267422643701871625008706437938248237070720142250603210003672033659561458535811666759690248580956100790982687814402498737110389869062953922415371014593187375507013263811255841778920373089957260212989018031283447521928037954052329369999198504464661406353004376429392688935258053869496240017936017327863846498211399149787582940591718716229014559618151236094698357655757150984781716405472787271120092284691952729201849772540847657012843449284875232884154870055429938313558544900480012889798078249915437243466036863917007542385228829535808120226077381921980960579990247301095213444556717641403012910397427620635668712297019641708919984337615695965397123772898965632148988445918660887338078516669241646715125034996496501407343890307743151284538837881579790215672626485217673618030467973620258335565131437039099872451882523055655230801161669682379185112000948282827487531346906904044090530833232585498130609322333010658596884389498570634697430419696748174356119091794439415290667728270431883152787823694453721024492960332524747572487687906654936472239851617697755828231942412840414830202017621610512051404819518910519226835107240157690253668649937847326095107354350258124704599893480852994017577836288784707764877219434443840869830455654208054852590729411337389115674697726785825622839834315885688061262464110734623082006361949572109298519291293874380787512542814727978114251633037659476083630306061216759464533803820974191751734480200294348575803765792762708908157517734157984150630538922306435933355968437277084654082388074371366582501620649002781528955629625860372934020253559543188170680228870288554413225755258549143656551037584967889328968817871863822035375690979995568595881292309272043543671005423456162450524791696996892962985427846745654713578420779817628821229389069046758159683060862243538619470037742733447836362686307964242186427252797849511871854725129536908165639582762366778065531797328134843310648329470357388442006346107328884282530607747617016240544427906741654273812301127172910913959428944909523817091515160502055436471768553295593873940788828294214841369865356211920606671978391881992729665001082207134425953725131704060898110920359562740246593675730237403167161201932710168738247776422858509621156618199019158681687765229253643458021238126806077179721346676448228207512246472720909093795493485084765943104443365253879463281155069127468797464752471591140637311669291634687762242021668880331316170334612823437069077495190584443147050724740051111049155212815175619149735136990289668450575801544198553000688487800949496596164297707772101486292567990658932437037204843741927404000613967693303562875723075245079676632480120883443125637208169298750988559990628238342773588056645127609156598573663689450631752778089709117272517301434721623671752187517837557281169014520630374792094798953485277214597820831275584767146308329178092087371687279322905807924602642839413169717585429046610675271616925722728351067391589995742111653740310476766849979170668025856175070014231782574281558359106841217821285450356190638116301493343460695554079298984467744449157324764880694558439160605325000005319681856243094419032922085158901717548642674536951690164765340670207173363079118619557417953332531667112024453805679727536406914158367413383188144803747284221945160711630158986952920121357345859404919479008800732741707500166473279504147093414409246534255015911490953277680543081877693450119778200349760018940636239327118575239273696064433232715888234461553241888799143371591134937310546044187901039307322860468723630448655390241041475772443610137949442185436663390987333089658168180977973117160875769545966173657446192427906303703381647322095252868809117972456966616304198010397655842736375963059631283727967672478258861847142732355486564588302357451855631274530232963511561944251100760793086651955683369814784252517349436717404784485941057043918637977251385196787788884843860716979145520930820190796762753418832234130065788514977742267825958883457573253157593054787395181273218290917316687844387124790083465694236248659292639755197404296621731890227297812683811408171135678215852748705368771620583222724821605793379886384362183988036023513961288098855524165222846145018147238447554638216452668229501455959701196748836478389271307054842036876704805475652751153060843254342482138945331646515808588573472854325027901295834668462328595264466260623957149728205830262810618665727326501811380411502502602071955373249080445798550211836283389952451800493019852957228546395198205301469010337002956900370359571655786557256739253793682475901819635720055211562026384825680367725664706604934285902719525753976702201406431940790035236987923789579276062006492756949480154767218796958769057691160815410483295784106741689904052098812220596674275647678629183585584300576475670544938159957981791846983025982106039394215551076027843549452222482140653041915565627684078300014369411464530962866489415722597522127436120261351028040188485688711348842309012166570480676107836212413323032426313546104764459268156060653240632680002014168516303357915430121600187855722368153066929820008423663192630705993826348749233939818245676561992305382461293989015890688522770228029870829804710329115194201789624990001482263601159641579324916521438107078635760027789329683212390209028959635231299540613967455324935783138845214155830477178363244330009285672324956321820359333338264420037929961335297139342058000784871881842912730321098513475596372354631102096299409209312365558680945671946068749532708203507949288126034586698158553669631851230200976711493369441937464109737509354699824273621200731200024501766220269687648250215252087783777145233362638346160257120106783722099111971395134206414647013264869622357099117209207214623533709885210537834102663394370536586324841371541943196931613252849388654820924291577315257778241754408411178264071288431732389104629979348288862011917577750646149288389068770384713583522888633919857343923076568512180568549776744129430731800006471732190514614231061028809860695672711413002579284493505177686203538406297240897885197583078223539749811052199507980731970975036733626058956322282244536989085446074984358615301728471924607139026271362020778001886718879249102548690885059041941004425887108172046641232020419381079383409413739086120094378866009900793098110357615758153926099026524459134372391624153948861339833448673358961889600764077882492315982113803887577589126133826359826128499202171067514947959830580745078045405950308163711303089665265391187483337557452073184092596944295035411042204542733283545710795872117107601380816576199327648583443308161148972623574662073570835983134596698544061326629634247912961336457008026810622929066387692666066938571684906691196913546656332431283580668021353497758239481749271870775268414278489746599070313224239354780981439308881998788199197636409597677350571769862368752275533237239153551461500907850106260806154366041552562241959655472724303074955443473064527398798533979713809185654932904924461809329858320563238032768870165539643891356319369782889690235469777192922158664387297526089554137009495533885856947783839324836191822851206382876289825159818540645207409381282510892787358335921733259835886104414919644521083320054144767024462665878982050348133205951769607470510643487046932719870154616130788358898064206039484571710940219426581940670229979304090747056731231098787172757836076795489772182342392531224183918207574442655255672201771945354589711917950702703748663182101247129019616373859590362228241208390190103553878867424859552300886604415436755696551766647151093367157524134596107715358733050329474898674392633084124447154255189135813058046195440358201101971152851968595381675101669600564102509765681003041540828924152808460685860975516933875524490568547274140997372261400571733666926296899051316576504839360547111277962400220012654706129431636975350696464356113897198319928143223598664028667008614393649296028109235911964651917961533448717755821399665505619590481358448463597261009494779651393086277500771605035162106330735574252497486742632090124508881476839541427341193169143353584307411096979308479051182118802616772117580279422456245786368008986010921263688669864055476072390724346162262066639471793573191194738384510114371985933660293576419436014594041074767494455835712319177577664388522873662542984528836932656976039024273992549186650653996540289024896315223074910058351965753865404924937332678834557063553122834780063324689752407738892891557278258597771190557333421329556177991172137020107502607558081031985419406586498189509727021222730113706655393839347355270830600884198083644021251001506261507590221410068792145606529839133692676743261239851827511934782528099356065590624166381100216667729182638020802914119248685547676160140874960058131318701583234835172780876030229581171403462366013630484781292698351207930433757477960551469763610392853947501273422722455109644848846750174327627161149256117422943758410291933714956100954167049358048895000237942499561274994787765330226652410557358247244375408804972301325707575175669738906289396896430455305200331890818041226511322609880715800895813173325937096294324042755154199640384711230200409015393607888890178886615443343421858931768565652896575317993158078838640329415546636602874430067506163013316366034207566001580802370243531261407164039020915610864251976309482824535341784404516457973622029179172480630911144994551844563609791785202067686198801404415131229228121146694598016438818772102065725623146469556435640363263314775963326515795859814846310274681248893992153312827458783393767971665053885775190461031366529328932995777297226558019979808022955763243335573170316221202540943055651267068631641426465601593956726636275632804129930330033401741269078251950448757260878880917819122072868080868362710155593612204588755550357214377662709352635816147278656353511334364175465444827569470296345323289728315187601724730988964626609626018607511471005869135219297202871350881135211862028618373169496070290002162281167064180840296334965808064519165492712922645170522695773060224826107129332235624404584849959684084772596699264912612833260443323688486616250606075941070437769331912104068343498934811450105626778749499403731494080954076280390076849613056088949666534233533427792089567730875428711158827788777954781683223894805000653481550820316341144368299719199403692618317813575860126157493656282146043152281652635759159829703460303847124995893096312213148016719686936722848515655144681637722823966084794969724187727562276360088232947733280926548786906797992998690212932210837832325582648768171461091420240898473258283881948592806260638938739170269995837978221531798534798816010790300601630041306052919525949190655106106089534729890889351789661389083527844975897491035871074513537184952455546554607045505334534615576925458091310932446751515159891881814008256005413608971407572452747336972077160474310539658029044264272606749045991161130989765427400945839944887501612467973094795799218164208564644817139039133789604694801626477506447548950261920201612782322650610313764562423541647479865869587520807049312374186263940688248235421043017697383592727908403751175478325167716576423916521445000518930871276418365669276906300194497978575961121263202971385524744253682943590936574765016934987763196861160268274908040110217630181584803255955198024857069226144369856980764670267441995781978314006054164308616597917754270058981085068942275749383768419605970301385374590587305489607243634939903722550723951725190253991938407666099670828225123866718958228412026510905309637565746473286286673356061391717657143630190812008827208897563055862403263899377448414262622699925543398853750721237378189638985395464624648485453682322654022720655888103626865645778345465920817681902857793833583950908589023432936671644805811618162632539592361330343756588394718662523516247414275345034241171007837179121073607645112821547106125672402273608000558881765534643666870809142086337118279828517609711831983981449393579366205779294612186537828073781218494806197762473615299192353692260757693423930481248873415628692986672078970834411000027923414218882095970312806103555840539979652620288670365384278453294979118154074243253176571162833281797539949704946394699895867681870613572238505628308289437714048729326533053590622622179712725350550694850640244204957567992097167959094120832608848304983304920068141596285944771142511287544776192724912446268942233958351123656730791411241663160671095289713385875959779519870543561961869325891458672410616118588184660728609050651176411803146641256880514009073969183851514888866665001625687358095996027580905089262246465275769209427227787634663821186910959896461109357222782849272842945368637842674403476709820333800525918712212920729790325602809368308023566829052393098418361973234128900117272120705972875894365741789943942823408544355864681783726336008666651706741693104118370097307469269438852852536433488367358280270657665911008066168147749567350923224331559160955358546858033622027926131358636219785466352710305313399969053852881622723075864931332462388871372167167040318050935455267306200691045781492919019466831477864123115403523800321937591617474509270152579839165375312288096995850379045911929073308828855148338278777982011343891608016551485652208029694273630142990105307099966575002447619225145247766273438048716370173305952742897227849455231093375875079810023183219986108103786263769891134329296781095919834351742066299795483097098256367755289823126700600053375014435928011397733430303339151342650833085151319069996846142962128365433396809881233909171827032772542485601440777471424196468981135884020202368465545811344147272841970951802875380045961452140174601991860834212365551167928624001724860300103529831430044401859593304597034122662494847117691755659970966150029496995055795623542535983396083974198734634717406461364891947947696345946888998304170077295343843413333719274701205897350676681787693253448302680619193764236973717550671751377175798313547755111880552735144043614043564945316722931660033468105881074572567958916951318035150816553007721426533699179776561729216238876661454075823086941598733674196378626491142676483773374778359537897610234175079463064789999302185532090400393012080844007423453999283843167028777298902822508867966519638219620411668581154815241505170874142641288725561997732737907248054916644486815304368884804841073957231328314187092644866549694290532243812380807401530903773877627508366013040789188204450421442615744541740927859141594684767440945105057299248065955495006907396200693816692135827797720489963560067495463666167764244854112229117838468481287339988824180357281444353046020027823172963657356965282323530069018435408444571818304078459420365349374519182449758588692330712698526010790749114788528003993562448916160261415230737262848765519314041607166158927825267142653650742588021006627841731138171999505157729582569755727265303047587546958013500950355599594999944367466447679651301104087434715387826245799629767524731944096352719871241044428851926967791308303956312532018435274084159662709503873316684419230240949103580085557250183885460857424511869499246400888218570410654444289651520496339461912907184037310993115602756959645033926030637168372753028427753313173995584299635123936107405377569669788033456092367032733779549371040746233603735562069890655604497463067947040279866133738050887910211845192172084366673526013589469598246159729504572277602064341531573635945709785133553094472558079804309663505125619293378984402878968304033161777630367255929147903538443365327819182046190642264992305128742401669348409215476756627642546744754204192764418732729310376298173437999413684168437403157764890282162670709682272214630726309726831065676337083556166919505125009260288436616362908002687425629647650709493022609763391059256195418254714074200928345288617825344155436909393016567067910126033722370850591243051030402029252966493242611863635302114092832887869525935736226340812625073741255146523381501926500222883010466382140560032043877994734061278528624957161005908251410746218138541399594740142555087930348485696296310816814291924680362071066224645055770671378910631545374469409347758185214894291699939581988072632388793397707425821420783300464475614846388976692416904833203025096901578353798686859002821257203145453387222038977588662631644762548834133966582612827437520134957792859513405559382196519097948433480576890323808112837371522260358588172994125192982347258779722181226122692561279756528307677685039485868024568301879581754318125454603456369584651865905408154683925715993207038937806742062404537135074817502651460229274327123907438237534467485125940295377300765777880633574504531494405922658140360015011599124617731839764110200315517020444584681768073521920377174438815026927296860604051760320408322438043536617162994754217501940561858801370514223137328109562244908083022477196930561796446194693692374287593845688811371985336030585122713529227139139903801597485942555839242881761944782192242106264560361580792745441778605073854039423225520894260556818562209738494502860218207313131100080606512436279182482211470642657967412284861842571855686775430118259987020495091705218898202130574207174547611396288391692478214249044217773646535423940974207878911429781580374838939370730050458134621936106581128826983767715076726060321375100768700674172907231360583096020308684773615283081775503412116538915726025751106070751413157981717287874369236902815042288165910180043679921668309124127481903273444043116221008154813425357884171588752331683207956455076200153279215117288885449009849849838026117664928363661921967583656838230389169863439066180035850235276672870404696716434634202275939853936441049376811851519898202113317610027262283174485828458451954693891024969910174525862864925011205054131936923981379069318307593435683337017469054189883421678168873008303491048554485890321527244773849848275945041503802467022190580109810101766281693097038627106015690136650441870447505570250539808476610126115861355308649490103822924576257611330322271678826811495186137913128967450458094034672400716691205596363986032978846133857436728033561684802012954698349057508878772704927095216367704478721670348511028881229822660255825048122387543712871626027027278737476210715024255193841776352322173275862284610009916229417384944620744547013726133047938093147261350850219662035955350890230325068750116866323722844355299579052223996861539540696594963469946776378663035452133723093658446655018289284833088627105443977536539393019488590641935406512669854598348592064774083840932437637480886117358547512211287934282198862119576178699801365618089679245160489937985753962638237893043407992372454389809031526681756016229748043762342443780542843929924273931351449850015630136609357753965997612171465577078053981334394629151349643683136288534520181403924860498729063327569572844763921936950259189971365159337575274565009605268960132527980696639412997329660914158473166348516235369300027030767371291962011320634635411891979963346955024418304940220908653881738513232422554182331781407336791559686761723481413018072610394179308658932155828945592236645704845055236186143742813487460656686135782474675764894006364321510133588256379798722902622900614840240957279997338294831515685615070389691416933081010891008170570904540533448979631947878975442394991702043870225473378136013409879214988189658693177210747957544240919000250431152287334212635999133971187449491521228016651516057180475536419823749140663879647412344010771581851252018135116668300073211424905691459288183400827529373177335918335096539568105644466692035820757587119016813865607679317413752066321769179117469451557897730450809359638306896523921304895317232852902279872661563189586267135089607344690951086899489282854943848159252185370549403578267242445586425347837618250255469172380110479420860841201058239109298258984926300529901508732452269580221533125383300542723755705959655939151373058780014537774723815221741920484752602560884828366774008637145022349867305333770585640533530088830005832821994561990413299661852969580327555462065894054247830701742298560917465592499262049958485293691944291455111784998175442768120417208758137841325597928015292335675263744135498487246497514491286550344873351561091406613493144444547231607117015699717153843600992668751061698423089710642475126695347094548498408644370802854819296127040570134909541571610539006931918480057033339749588210997459235966856868883183569732953850961550591397234015760652164223228390239188747988364135686456163202287923743780057664893674375226146519783425180352688283952911412965931735036356722630736617695363453764594623370197581323079537016173037803964812755223149401421326253824413665431792824749032503581648438417630037017370744937303066432010706171521532873178803359577438268349129052522261727989068046154089988783767475719253611973050580976070385370914095308052832805295764538604083843706399903818898132216333408838066686350336497654026223742601192579584870636506642849458725010112219783609804182147326029045876505220665274188725895078518331115872711248828828083585839927716545512460175432521416024270327108837554702448939004857730741336729007286566910781931517856799183360478315609897178140189222826889639436499709978732175928822619666328644204862809104557914542814926132183274256339591107713845906573434291474421875664579306425648657910438509027753941929275029729998609996201987453011297168976489055496848193510078401860911149166693113315899790336143036486981608436215403812976750725336686320527559656566726881106285119597968248649344323628369518048303533081496218879161568514283765106510227712376475529078015941545259595088428923625868358654270661771177948464882104517574666217797326547303218983725473967531940286576916701542539762744117841685448407890078651867144075501872652813172558843137674392650936659618576461593472140197142723968159727347045387863456965191450106983357085045287638982962711550979851455830620543661144011123433058614066995677022339051444981108610321913329033998320976751183503841890419121003314149431054734174280205134895171440329537608717938364286554774046844748449332267368228841022827955741145966957801979509044661354632216782170276479902053559825379279922874215776864913260752665682602139782834399916180918791321923976804426860169066972299781169238699626695293133093516295135852739993364063090644406717198594646608751455998980722152110057124342032269991763254924232833396464429175018667347281134891103543598640409936056152830737387647627213509664935702203992313112310578682617266308733881235054287752955744878576642475512963707842916258352776339563787003230521989456357012618880004264431645632532634863101770478342645379474763908969486340287906538726818618872781296411195852505325303281163616893008950680056460485385239204219526486403450908581916957022695329680718985622287251057808900825124864664669144041146136327679707858509001189354101925450307167069047546745696244434444775052409085517438766287967050106398200980428296384691704740049416634879155249748622544626981421228234611953550068637406036680395927010572599889896601212366281848333784083433229523623141644812337968081673371818785641938340765348355400232442486275339768232274813602053936466732640928653025520857560435492615537869175844053453625386315083184502407667698059577398474981731360074937072355521252382881213256719067001112066265563902760451013220908049864197505532087464024250309249647316571483035913854930377784191887592442376545148014257353391627040303116659729112831161808723764404529444457351338451882420710791866140709248105193211193185354084850352737809800435512591747243981653539693264042684587054442373292625219733262386818388656157842110528544375385070333377184588335475389839175050580718640125239135714249606384012585952591326800466628354422925329306193259255221782913468114133499336755688347737064262755532212842778799433339670798824362335223937309908241850624777362318653855948000239307719062389665567159875563404857008719688200995437047350323553879551661888660180334630660755141555584946014101851153100025167927932768472432626260787858132650962389786969276697146998958524275270045309958243788836992469214384999790826736462697847746136098482999194609775671534886354465827573882138200761711499978764565740450890609055796096838030718286457471319803031204605167614964180797961326381901273794833547952761765827851253183452431534470194715987507769546710513175052448807013341038825176545469555515285229571558822877927332030608932328119469731531106151110063849505818568992112551216220316428238469661606696543551851607498380036444334653689332597818847875890175887075669700407640227684698530014337414694125537700407563030652580333933638508904458077929068316894875790341770766162165367600774135360163468640795958186349745839953039354976677631106039735333787183839012817147370346318913074285382370004463235214102031369701906784193407430858076801592963196402575037363069838769171608874868092219285799501410850450319678376579671609838275595438116765999748754075796766719132146080948959350742081314421871799758567569729779333821214288675659284234112688960536800275078078371040025608766807234384245124838788673926957972643205832977503950697043728752194912761491930111193013028850732598318100935803941375013538834320893457691857238689416233771971072803684200142429405517548473512417738820155300809125296840922774140882219707854344780911755725912958301804205435511220286226713045878969847839423403434736743379700399570756457797332786514233687231434581515951364029154792690995382038939720593944264053945119706878744496144595780191696263491510238888672150397090252851865334562522711206269498892274438781682738978039178520528956749898065460865958496479707741001756372094983210494666740211177039907586527850875189496281572974708962743426217812791947355002071541403898705891365965969327694719108333845448979212445535220534654599596111424663085664615741829329949266088750854554656187774216735729784914770355252817464412669748118884533062960927174638326085152463295469325524655998751755361175910484062254372245251302023493330409698977333569487723456795396039653983281097641416108426647286802745573826890166139257164989991079524940412073988450788772348447785456216180811350648305372315857423734941022130943374993052364232591124843531326345027072908370539292901930408349021740408129211820052535421400381820101472461642887856954767721443494612168587957463654599689026107048815962302250158268015169073598556406756890428196982219605660274383139333700863956660754782640748580619719081047796988858623444886292090885896236642166914278283756044809373962956402856195040790718449532475711344026792004745556998253929144719507164856854149907819258273247611070938816250266778942912140666730286962208381953398398681834125936508571081470925222723252811326166450804675579319594402212558349002543187335229091587872980409873729130579112599659584656731305993802381854881748294594284117984823751411566271309454114896603191685687080100376628759025771167740812619709617623334142754646801369662228227747947562788396371574928875232585785800784583017801513421949321011287194862374969585161869580264088254246689070925191040778347361673600287311442198590197255481142026340285129092356211509242939194279022837961986710769992526985448597854399919482950653935578000779031976864618313062688847406010016826383124948452755505062431004973497344192241600711286952886823671924269241079087545266599423211465327484040962463398893598707945514121501014595211757845161686853916714546787328868919403651408473303901652237111299449859406451742954741874984192736851838682869899376466634825834144283533783193413674977711047920738463355694690897716165510269053700123240986251569053613002220266636873532810810355248878844331213742903789106350827053197206698981211384022324333679985286550502674928057556259906863748910985367833386313930154806639283461805057285136247310237397535052726895318530600108588173066693188525353812865416816639413642677458933192903426627123670363020235109550482091898521766705016049835026595177585498083707641737294350468401108242470034748067817870213038927483469231311344157458534519556012808296412028849573662597424230828453399568306985477889824755738992851709644821295317519266723294976774540347018190543839892720931893642100139507447366536278682080622751740403369257311578939849608653004678919606081726479765927181454801527904215946320627654399669631238294112287040873679817660738048739741511975100211379461899014403079460708339419323273928252161750269307173677891601066597380812371604556774551269778416181898322239699853207403144501791734033390129936539875708329086009462554819757862597718397667364375414971510738666756146404525750613844973559570323120880704599244976014460169200132887425230299811402478674698045109226464856517597309887104009772140602882432893651531521888184083041800637483024288701504052447264117715758574595556650797575066164598221828467196318568191212577816412635891578797691636565048248337185883366793094564351889013684239808783351875455609973410840929947302110675551958531657894209556277592224768660031576968709249667706639513418969248889744679676146533894107745399677711141716916903615039215377380198725749800404738545297301778560550318479455247577598121178320713564046750115229144054541726495851211118066651922284298724383208236555935193899360555357947937161858221294526660520657565338387384311776565425029548390109548353287802985094815046167585953626000953040970231745110835423107971928984637999862826572315938794865460031868983715822125977884414851835093245974456386465957632147994171680340212956480832007731662547084536572629487170613319888298304168120809010267812846491328842771824952733324929199125978973125763010586908588181929045620028781521427654732045636105002011373230401046614283635891955236959458261590771643179146781587975230444370455101620217484608294625674163681771284410802054049158340145223926045492580946954802430662347294149350662140393443804478751090725749303065977631119680441029642704044985588887446392838252129719865042851994546831498090384871212984573968065234500581126403087820035325038201559794730850736409117917538959084263383994138002547027309059192295659537381159196010987966401765731530811079809651589164891649168930033338269879506471492596114644761842775369550427868847709911551051041439151972893013563058546867398733029667365448899753348197010184975988512109002085535899331786828402048850732396292824236638404124270023998344591653223729877772039904463682897917786618950101395597021117143422411277313810155551172746808841709220847039990971828545504331787595784390941018611638572216028957397327712772590892634820029097120850540868371700819105186193879780272272303166375591647795969249250501811372869861998879338238229951305849421559804304063475251983402574702924491327408542019911193294264761559537422918064639013740427898060287367373675936637868601834508541764976256994833008372601829644485086183685161736006218586755198963781472806306183880093135678262245552572919983136492868090922674346802337600161195398756204174267517621772879047871263620932343288679444351622616132791801119838720065898137118822161626581270327519848040953894609536933989271509786412956932732468077093975817328372758122612250737448853980403159533300227694591792810199943959800887503133919640103084011402100389378963217039957589519166642673720504636864016655319867811013323721314581336482522685164869815737646034205195736952139065704796143961592446796125160261836539620927741480339238568166503885368557955878976262457631641295252280381049004065902054584037092755409806427754971875759946839131872134594175670857580252295777029270210465739753846767162293051925796295870935477693948708292208955069720827687493013267122743699437834109552766770542726462044058201531055702612127410696012689483874506493139817272505488056069127673493207762302650920576382453230937045320446802237673802456327543081038233122303122657448058049154606251670525500388455236922291367392529210274921259812452139444890476704872083938881679821741174070352521851995327117888978785017347945720307732558972218499139586380889793664853048532561523645830041758877101809754126682362658562205627939918696468341157242148809465793516771879374545629171234956871808384057537092925469067073717159120091323028213796626702899509331929027866767838969637476082997597686982803781089080640918894863129018082557924485571915076276986222105972708175557111411603931014790786022560698551286663966305332588561571356081208657293614413058442916097990281294995254445357765236286100776119932608029378178853897684350328089318932474732148266769436114096322836806823315419248850771830634144817374092588049684613451154594583749397329083179989676947923479410927335318776300212355143788545428566754277421417437517183146900504885041211858153412841485752802038768199993125186350402010479613826118431377594250072115794053843810458595828742807939762251271744124120640478739709725230904831793292726586961052026634886887089279551124628171425334523540927737560091560921951473437654215417627655716279570028565131470528113486924242110835033143994093703952727909081450380973804548610896273284861048278215328185001693261032780494652880593530175511190190527775819943672797981865178711337385813282023126217601419508920837235204124171449931740114187344278070151773053059943287802105043350047836838571182092505097212542730744310088580683307895753086179621236860903558557697755863613353134373307412604790591957707783696359138351091633859359206427276562507832564721270598817611499174258609889861854082101149521084751779503687594064362248803155936679384404366801257984341501850582198996837233017878524838121558060999239094386722724634196686628182503315086574464395082586000863203441164714309608098111115178601790075992464039882322470605523338579118683694556355916928329824595005040057924103232060289663952480403759767961253302857194177789814453918253398808977947168638605808900911139444707265689015749587358935855962174119027002914597793066152329472417189775713379093091202885484055623183840603998186407456854237131204594715947209897486490445304708966993970034014473809452868735253717010717582986927076748052477329750183071094209898165577822666383372150049928663912879026005492652835424348997126377330598843805921107561476929576450657431128550411600972533358280692305812407287704879743147432506001403945840814955759164908023849618032157233660843728572778833970633731958767668264897487310700100838241495844502997901544389383470098161176267555824403565194137993018279595459757371474039090463865197306152100601962804598203894596556865907864536059793703594485869980026473697003553107232136850720810977883839614917441834847822283628998550201298889750586429706151482837952870660728650286765355167226839695524699373251793986974311405416508934338963183190230928337263978062462439167375442474964572474839380188573501545149760933068299508679473758166755103236647926465775815881473068897875479919172566477619799591026171445538489541512753458620993404919437685232968335138179727519614316837399421534724836323798182036912104025345233788399989779325462653615078956553090154941273560789391690544362696607561742043973243817334662153571297639294559607666327902676418038824145087591072723946219149017783339926749452412653597931420974461952894622062356897464479348976523701937446092956685704272088465116004885630813967414395172017184908880652509035532480199697296636682258250330548262732056464747080980208516780944061361000823893965764910047736943716839062133976810604101176080348257628311048106942200458509247736106207454805128793973751182307408611281698485293981505398528619089944644042470794786994204327329233065891745763250388999244058002666858541910635877821675179915709287376513020252420797356323631421995635672426105381161450449692259301479384748289727305665807927872433540105999837017295943915603038170622105104659264394583180635364606871252416872609088492637748435361700113849487357274366704282269067092972550387473260365279634973034082787020721340381707036349074102124648339697740404536980178524272210127190957875559595844647579148660753060484209949808790552190299133621220396318338116003334270523848564068446632949182584884289660753681653188352349625718808826625616044319227162506468823086376456492709100284541636006954417129263023119036192233454291933986777195030738258267344880631981566271206098714158531055884908130811246623695688895455259101016111088645347652823952147097347870363950005958023922977820697464300231126457093524758380786643024194323707870562529244835405911275704003042258651671905686887255720569483985868762986343913947228384687867304149988396316082733803472857250544065177844310734834138181005824382894723396981394677119468735707789660468630769506061506680032859163529574974149679724653984133255130937477157701553055613990002602093757634362279947277994832154190920893599326891926454257804451646499307273101890487603259385063292789348583618039225331959555696905871055557238074923707336031584618213999798723387622479664383423041356715187424593118198438427476618323497930124380971964801945068018255799436751264740149717334254683640417801543969799950394430921777128024137892843797533123083883207775385778408347264435115538062070895815806289727467258722677672352632439390287730184618990086449741756389522751707002548056868803627373987447272480949163104323565121112584521318151133595526197562788306063064712061022222752256202411666328881272435608201275725829212897466238643843845514064789864731308003687219887529757809329938750630783647267116147778269053354782791321304197023553946074004436814980387484303806930855807591483542642095674584062474652963644318408003884410639495060397195635231323508132250981875535167479401720358604492564319788932263005955879451968484824333026322659364157561120005467264366375304650309407654445105170813041641608900677917600295622431470749449990337514837397001768559248836095974001892157160523001334265030103787712898406493551877249600944823002615609470293095088785321002374203245734298683569111776455300373346064402176290452148524453380199231713169422748359230874828776295951458343680399574449914166817489845554299910801280626173303014546445258650432735368676372569506938824184813490544793151407901862317955375759614439932043591370343403518388726866341938201050168584639114104096750538724450260974814720154527865134919008775778163643072137077957477561129037845098555127047623149370719900354615053518162898904516369741193720788256998658689523441344497859077214114198390781791892386756276090518272105827851307783283469385184255579409704165821967672265118501678192953239699965242502997848836658114590127794506405452472894911165868107895647968255429828417020918097603026468917474828409918116286657730309936619625162297204381242342072414715293852583805219275602797896912363692265233005027472165448529765520222803094745327172496365339943171086334486187027151002895712256022679612534696388772898127431435821214655944418382317988373422314621265950571587743314485147315196287348002693223123002915829364172870410651463121740793061624577583550687708051806258283121174661032487116383278355675625652764287912217918640022999642223984493375603595349389079504676161818932217426594493419493776260150947814150471384005811108073822988147531708887148298410756982571530450532918602429535982547560375491891462310059843857160041884254699077986052972189944852412262894826613661323657297056313138476744302750575787544917270681784331040030733429206390263734824404121314849057414085927886041457512823337928204214175544652543157144147899640993717709756573611012668654903165429460258349226966985980701103922956383467440547194614160112858495847431314079818010665708712757820105630320644932388774851387809871818489266978227871345646220989444648549873409269367778541211361699080484813448679919344244439253709528545849881726270891811234400315614085836860765506040337046198602011403342635630744875076716732842805515982517603998887713429971287962690211275357334120132005259737750126320089637476119707882675771602575210824251733872030566552736258874338050084740244212647947423378061857461929837918576159242978562812083540591601746822753955574133381616413976610607887115469720891498929434424930307255304738873960660225084361955731861520468707247895738427946229301861597610714729121258859785669721316283220430572595250131332665903759597927890934685341180447455774428169247080522177991269108167350125764717085007812473263217083077949290458094394337911920420857542702615404326598681806565065694888532282039222931729531293136873312455331085181772416132262517948109708876478829578902138695016840733410734000333835732073484234698521344269599279944938440507789464653024586291842705758690943805116220563966750567702001305614121315084706609341093500535055809800762433399648929211064902542448844464770418687991617317485386686956730400141341759287406338227049937630276506885105608800237865230006826794007503112096124113340414060414346238755442248517848532636286121711791247470750567383328263702585448711555297899225664354871513378188978541008764521641765636316384208463949128461149192239632985451910939549934003057047679048011221160178556480085446257478768467687463958885914221820393392267141260686795730942735277569680022729956349394146026495586022847495212888799005176171155566545083100026129610481448074925891774813874820595674912695203879372664699552136513432436545270231216980855035143596197890078911740005845545699488825066415190650067682779536988150721607828890915217206038925560786153328308629941226650375804723798980161517569741236324802943205185444927573909891605240989629623699975875366383713202781841680562983623059012719607432220277964701175840398575200293360333675223640462722633983704255034559865168357853623147901070229616163934212479524808690375448987920071177693064687337345237077140700599261783307574125758025053027982729442551751948958283343112469064882722882951614537622319434944140552781018814880485106608512464319114667751326415497947903279266211602738157143179316575986151742705106433032938188423034292040065572610388676462758677118264097290892843277457352734566758680737125558298237933658354151721439767568862192960632685028150773741791825161476896432156119764236576606749931871127880740854975348051198892314010836900908248007071960853092450218993387224420756652783895570563543944493207733839662662296776821246726173025620275481257502710603698263739772776993551548201922113393212436053390399885588433260207108869774349686090800628625789639437612038369561852633651190349203073578868578192002047683266229476638032606552434584841383550679880738245366007273846560160695113325819345082017542035265041694344938098595603682676137329302126138701586720107792883359289657839786538681688388943671265827843731722151512115352610090584959739219885529464659638132600096175442168119180019323573628232738866056877481175330061647114559245457738113235091211832897077773501399520780966126438917099186951961134918554739699422836897118626459755605969778548576514412559055612588297443911581080188187525608891326579820225800806671638860470191117816373714909963823523857953661059912271781120303240513574531124431543174176620453139786889668051690324215244954954563310129651255909217581584213865208276244127839659341183897633216405187896726637869110656906417135933690275156996528040578251141323408742972430255762421963547191034464630821019997443980237394119228556871340968679701482544825125159753125217285659942887715928734617639398953738901180287264145647065556492324759232887421638410782019422919604913879625806930464751311720353965574499222169219048106732264350410859319854938844366797810826198659884946399095206383988266687174396649226163067904860202899876113662598208118417846140597622910823755425099793281639053848122760081218712678009088673472520665348649016239691411138385663199458720985829288555483532787773310434886658896342275401051390026224614144092849829447512112196018337455610777117788264430528218264262778900774735371605101100828810296256049792536812159129472690634494729910129130866850169874387883708539900302038384560172163365563663300948217673212939319612703890624649742468534944659045725617770068290383470802212092080513544244596373097164198250304409177818906646201836205419805992903393994396829945523498179229022815674048398770718827079177115572464068467825355559762533614727813173730014855715654062728131551086482369079146109488462181107810659847612827461700817655096663132669738732270530277201388709043913800069745094912518489601925385964266279851817597522903440012412267597910003263295043957308889795874287959062205955330494088282303084326748553046224252477578367301525173683146796676892336592923173692749499375933958434228582279141733800191786705682839928389673198535565434752119619775791375900068349375272863137197085421340660236233019243128728014127402357437414087745799896060525903788381690701869086262951717376735425593651368458828136610932720204392164294600496150948217817999746567358178706969856224210232383151941664674339116270279745605671963505649382666203461572572227481463463773987335434912916472431460911719987494202524212863515853985383279562027421398993913377981876929975306003320476317590984139095257151095564739774941704363183643225076625837901954360088318042867931022735083310136236194678389803116086298208013660354235071787176413495893235152894980361841671466868682173885333985417866791028251687361067303152291838805233843049073829058181192701509124021274492541648527303780911263480927734652102406725588673175532835438722059371187929429655863299836992475263443170247577100618643471753892247421808818262431344018543648889275955433199685367602963512636246389656021496448508609293217194340340153127761872604485038207300220880449974469450248052108136308048193062876881334276568046043450188685262350180642762032719890095671460047412926886691067678537672088940171303027685258741598785166093883401175834378148439963468606329686086494134103905044643598997562747591851966143268291184382450373782674385531644123683769816420695492557558012739827018655754910980850261547068380901546008613722832236738077846937579552318146447043721467605392368696862734260380458929665097876227427772984401697635291841351700178725320624007178319785606867122469666229870162126199211556154174948405771232274189894875267417188588230451624011230106942183496873617713455491754245644050967436636143495230728910602100761037622573449767350892180301337680923189029688302635524517459560613577830378264447518646391819738204206239727678079084815428270625465991360034620544873289260393167117951972947930547760472389568565968860654002823748129068572971833399387063339039652442957350732455118579150731563857380242006525882763567988381176307681750804535204457773126810419035308862620510226792872085690295022272810948194603513605485596927369001728831528846383497503886915228142556125304486869675405584542853917467549334134434332867042917977085411052236737858017511461691933193565705213596963431047130987832521720754832803170284772105952945406910969520048119758449482195458427159963432751624032184702671980096104676412551102080803904656734152367518339109486628228854357686439087086573742101113033666516183260714571508737164423361006389996794483322197950416361235396524486267626271023504782363289179224361744742311388590320291966440149120856847524592794711754029501331753241767150891791594721417272905329447543697656140998116376756945104150130292117739405168471427399269340012173620668139666281924108557660723231758726354301864037206997404432023583579732195679655169179112603779332434995154492433814660636601574930454124787371325323259020780023706022579343727875629390209189083695753273161615565243362692733851729440937628169655835269212997147332757761199821144091860204900915519743571101351032457332820418389004849630673875998857893404746596105152911467002624520007733316150836810076623198404934911715964897476682592819520700731144977297758636595706250963245251849135823944017156474304747948470042486388772222410826632948739583984819578819044887257467531739932640130423784298486938665205853434405965668573521610578987398745512389925413417802333550491545015816602769481368110035233924204079769483663430023645925434278552799483324521635925853153535487473718353562873546861001390164763140267688587572501475851818050809922389474730110770717369690154043485336633315142052560516292184266707171625784607301168879491294302707737033202265122951160263970186030152145329730694018273104437212490545776588998031198272183190327682451260601168988533903890859090716852902068910926290029280573709595323007857919634886012806396122431376899791012434308189541429338339603620412574335083954775795821281821823212235750110793531649066445896237899080028604284653608076088058986027644412547506813680719416158384572337397996117641955941612763594616308816404682401522856478171790695839543031562015874276417373795952807957436007152068207559753558598190270666985731995664555597427567949600161569597502933935922851067131717362045235533278724995736810204849321489130397547757333721164577797216869028089307418480477347109170795401290030144193103033028961889870193937403832678295074011533428127465548910012505722375530159341803224211524336841196783828812342281799928340857320424337608430491859619933021379183479757114146307368991974884982544886854180919504476731792620514305512067318166703822201635773101520574327382216436597113644136180522927301202089338811047593309978340161452783716665689859254307875751566443767815668682129290911079445300262244664910616588274508098951939999736569505719589765688467621003327238974732887214055077394097182502467985672534316872297947765000964494406650523150962748752471061741832022229947398186185197537176744755136994204711763765645882782763917433693604193818303185774090780050206183530453360905142892044222837823848683086136637838391933049468349136390944498414193017129588684325775716221781486536596708553762224888346195692785304813739864329375263819355959915005843046147082189775280220610481518226188138826389968317934438656419676985341122435378752552283930377342261719904310386632073858917921998090365205237456157506855744428697751794680302047787689659095625896518466316874408205823661788740603815300410058985479286250227525464046831918508364475640176976903074944580653915560961319431717166484479043336024251709307139381612702961353621682333585953022529765821738959488067654019726565865384919997768457794468271165147138754458788847355259876854749329665863442087765087322065411938506528748442833766571959112940255675466922335462318563150938275386051532836084610699505370449744757374881136862722535695557705011905450472527910604054289570967671159178793383852297309104036868051385698085320623490438885534877439602620304534474360141571857978683750447916001688737792827008164283777255771150372174281333921510235450442913947700794268761269991477880841058654661115921837433440292359436866086116298409871446608957575966003146988731050366020740712403206169420976593938819087149043043458522345412549378963232576257964832449213869584655203524948209683763991907851792281225413013456558725465511354269337647409904838943249492672689307549203941834958482195095680192474961677461006173272906133723675830572028094220976527319642315089669436139884307765755213598927224190072766756842029155481420809105273388542847431425111657530517244433058670090466691362437533571653389942702917888018898368968074857503076977123626963884470885954363525021514012121049694301276485513555595447198676717167464039881479837057780151210874796735136185693827331883179663074093429244839522991295439023353385256303983640886426645725701948553586019958250478496881306837622987593377572588062549566238540560824240638811126533847708115743657167816952846670624653512317577820638342227593561575991657791567744660600353256115793688399774345179285292935241928026784410912804853133310277514455872432353143409324946803528377141823861794654508540046697825799503129128202373043594021503529083648105374547988787696469395707044205393355533094939199794171851938178326361414083313351159387725405888086886814347272100007879271573575706096314493404971329358717229404300749349386763464751547683404494914274218057588675212409993433413099701344185117028901393388087521008687979184596568601075612212477494023455135740406577328540992685875161876302922943601721635616077836184974773154496931265155289817586306960463293306328782405715617681124324126471632350574362449267578836616452346833701842506327947143141104035109623354758916039315395211229797561713086515861111929959492355389652915200947302305303804941360329432100414590411857895560032725215064945233348504008093012237408494367328862756409165495973693801160050918331821100134178636082648324024541589278274311791236864716635710755630242432877505374855659214488002235634498204515931495305287180582641205640638860388106208694986552595047528030952959228723650315460165106597841054680320017799696026985582078709919072897929875585223452797755727655573506303062800879096537965163966071923905733722676716463153055259807431955210102333530136400481217957975912628447103620761627749720004151405086377401084796163146629890085823268418658225651460453025754402187776498397419373658883375384585390930920903492802680721672572572229768665427142172464283758888159245452573294495392281464993966018846943773730116674789548590829602174901449252649114195310080622646725234102724444888017052417720146740074785449140408013906478392556915934530004934311865166469508598796649079674767735111104456121241904817034404851426885464296439040675939599809088835109499673195852352790723560640312628006944113511768379932554729511463171381274129413300318993941287812000114258795331006086442469212851084151872432365527722024837206281650740887760553295327703560662025889752958704773661910054502431650372442308317008731767684397377749472273736251063679628141983767359464486219570703522055820359087182420546735668586152194025734155685209032301159009746602554601059517434232277051648646720145702239379089857815118539605318177207235658136873653645418890807972483005595805050233575051689426894329467635123890362756969971719273531131685289881090727795321032813048234266762695798456948629860145098388588976073705509296014034330267272373801080018939838094787628333836357247701098918285679694795135837677551595471796239014142734491420847893759901951037797604711163674615771105421958156598184494939942843098319636184068077735227656243935623732181328526894838763984415927557099006077943226362912820187498709046957394416833463293509729455707689148410379877264895035839869124560415409724850416639568299837717118124983036645993465097683726708312094296381565630320784224659899830518247602359044197245141959116375618060140411901780778691761025384980262377274090400735500861054346588677185480233349524070129655131952670318581586800374365573694411562911343260205680456590323423041608165564235430856304771899721479851350039604509357828120336857757642278339026887236491300681667986328469752938285619456321912816261378576090292632834874208112218524736161690356243443397895582475349617334413160081516457209485580065252399253187536196090314478405459002828186262876798961187434231192563165227115888286008787419609394968749933912513601362795537528146908123915955398692857383189306411527273702413045579858553638190797645688414021333594676012480681028941045664756699357398455888246381000842312688534418848724831868155974854783451726552043359134294574947551260751500966972643122188141742408477785322363175645574277425434780139166653237726546601475874476786686883017261624583361234251992768455939162690031450174801297924246836446123641206602631911748894363681166490350216068749726898347231041244666950346809888455213898560561294117225616847716979230682321754225020359796493256783291720014715072054999302005377259982988360579335068838973521794143185989722751310721760134266373592650300106223576813144678042940573056384031113160931654924757226529696030943943442357230418452732146028365685339450458540824803985995569868079322119100195244320981044219330161960364672296821137318780390508398469582903737000699003662663747218385713099054184275717956374148619657257456100168076386718759441614462175513597622099384158603109523706759894555261952057067402198716447238111478024543010695288754603858725142068786604730691076573376256317756442710602079891218337943836855589042528712202057557637108305185622635791685524361808549207469866761806198346402300217726297129519748967522861467336525185472520539703279656733868068939191188734731383862111712695889750750531369490733468391024920570090734158236061215418756100955827890886544897795673080162958353089890511613615685691714172906872266128216098407567488540743183535450314504276423921497012432696360605283527138281335597362602229591841915687745400307451241811396990960718332524264066696512676909217744136908605495687177515251649980843539397930567644588737499204184500483836996568272825119576647609828017358924793710863798951410570041964786566124867237711170014656114560729016295024647173525081924347677940908505344455249011548937847812805580048997112553529184189021865627825585617161559256024458969607923480009184799915980623010164096675010919126791682270079093548730604957706345245294514991826669647853517285459983033302342405711020845137029430904862422011753924074692669533399885472198956842950149296747836064942450948999307994550322925641600392769998270588198939540590954625794864680135867553239693375911217475003845275371496247437384903149335078300219949862464200568022791441390081697329181655508246454241822582645493397530947818426852811104135622215415516822924859930177809417960395946196755246294973868403181404852182502472047814800687805972340041656967441211400053323971399596311025603914680494904311467629830752497535446824075875825052485699349816925804753377210224265630326139659313562665998107679701684886666609922038144419496454946826686820618066141899428621342089954735220538753770604346369107823407385336676269375991281579247859024229797083023225882295059864143031766844563171024425647400517846279046889683351537268299653753877963776750674583639919329944430228621004900804429836639539978199240181093068578496305890268761666197693925829306680622848648363641977019733741593980909506168125918339877346205108594194057947603480498557316444303439382023786546322191806479528179848985938707831764405281659712659964776333009440530942343718769368563016732955929771871829841277272023207341110508886246647952209289683894830087336719585152567304676750881949182066573199836301144804992692910055023781761806665127022640146979009232964084581821492750232198244187906684251502281640495013156103654487752498562392178817384440620588732690669920219822118943391233423381399262284313857387329005179309689387251799220651751965818716285378022021657843115182201687854394631174908978716760388314059047937188550694468023502397292881252702337143828696209549490611983426919563147690280755979676677707270051263206964134806988962272778055559365700927503925768304136705427874221738898347751639563380294267187484581342318038268299980732567652927472140934610733876819947131883451159374878010721780912472731295271326201638568310779349753914624751597911914804602386071532246174686673457538729103188388544216769452791857177747239951079208465271722404414544340188542102007225504358583289026645018433781328753763850569573565095365837136995650268342989224293409005294769320372383174057288824105384131315348094709038112099858649173055947695736550689160388526326881748442081089894802803133810713918952197871012091776906067481689942811951422164354005366646843288586160142767695472525032669829089921902973660608632383025657334911277697199769942813048109637880934380501639404905025582405063184993281333547170307686896851356533089612807992410454200885030303214840047784341478316900584737113397005918572287078710273775432689883357737676167584479580084757724075129532607334228235268838438333996188414887823946743679125099143691570108072073767051506134918614675844935238332747226837232566963945413052221629340331431663554528635690969412892588324074821447661197993311177389382064220332709283517354831426513958665885354742238855898527011640644641416057164130363598359460650955042804948644429422399616788535913870105598990655911836427552452510206344851364523125626468455740657085241001640222336865588516569741221367037024175623170367414783370838702023076822155366009791002768893102674383302853421494813679274398706829792584772793965246558566136515508689338390016943464962362233570098498052876723733108394321145598032124429264245653930111125404300245605807890033704521757171193363068274781801953020403642952266899129250526772142406052880102949338033789371058363079953008283799324268528900306370132367901205019956949127500038501421187336974755000303915904976252716340403821975142174011158377306185646538331002204854486728037330268648063819909898094362821591375531958699696524358529787014892240936157114924017328593480688615173020642065362893237996930449060752113073866241079686918643487114765559176062349684442349198251432995948351287749803343018077601648681779170066858123457003111557291962782911179463454106063120610877459909245752833460387498333553918128923672183726507366052446812922108718017999022373191901096757167479718850008098938833154340789056582542225109136060706895898417709008275258732959167520529891793092055451024397403591707461118136371450174357098176886327731666491974287258542649609659253625187965261676097204717105903170024145633434367930632218679590278903658100725394112268340533805443347232678636673600423837051360300991765820340169370945217983773516287199241027572550655669222699882261269776968020621728548339708526270714734407699952971202627110383558562148856130308241083077588947250113582327823981880329309559191893033351525030604576109015312472078518891183040253100783177018321640755266992262422466896074701019663297963598796149988629540582035022350528622640588764547448590475336967310804926619421466353370115668564162282683878133918052326260000350757109894796342289920952648713871677230346905674462594804647389762068117702446613354025420475214148009993062728727680948398281400025195229742831794911325724420058526756394309123157181999366506100184669104971640841243390289688387217360828954099269306277474712067902525111510136347566055893093913772225162912269798004251530236407974981969228663316506553738002986147734294930109452428401679126596543759164110700664206927303495304196285268917464123395030899103795345288032594923114998902359198606817225810147192264587153684548196739061957257751775955946800173680976387611725216334199529446544850039834742449645286632845353066691893514000355893755771368957425123214144843635445803787982114709555922239901358361510640128797909064460711138663772026560378659059178411916645925907235494627702838284929436702145407703262703492585878070638918218579742157111304004379110771009363868643531274202105790091526566916271556183466129247094404027328495733889616820381443972410775188773314565355451311690448517159669302259296999728398582914778787927210234980666810014493201432463965431630330789603252365821983324964855417235467362443617406601560465338076084203168139739133090914819571241921247354923238803135938778513988864428459380503719652734244030679079855568224466617517407116029807855452165120128019398735442416792127032324776656045153026605815585709796028027506982722269450046411071817074791070402840293302660401868046939428333816746795979297634852567555224945310937869548752828310065411807256638673843781897999607105356518155449524921842829765805066985413958842208847332894520291722513274993116933821817671671437014862779829546141888413340465857774157289230879187766900046886187603805518608653617444783690743383712957757964942193656505774915022017173388013107969508069862884095781907161503104365734345618599145830553438680561579806306851200728536606746108560714354338966449293071597942615899459238594324495675465434578461784883780296951809955198494918153255749552192205411822450043699462685679365490309762468858706595190453703652852916384537229742125837777118180759250960287404373799088244649611447609027532899858400549673594475974906754490699051597879693053868709829550949597272658802149573790307866242546793519445979388088840111286635319143599122745947572228509394803819859228679520892754304299482725426052140673987815631366297116243165927594184676585536112176418382021784350608289347576593181534626891937243535769687519462953214776556111028617329217056330248151136587255967994868660596260214150283958336803741322262825345440262739877387684395248169959733517743426477644396647138769848294144698707611927512908560962832114562434619910181378170960313831630506221795993589786302448936068431460083925287120384193664546741438681342378077846410122469743295754061791449500508204188674645145649800959360651318271960584079543220578392096909054643877125367240171986723904275157070429641125231436331259172436338734938056385420003386231204441418126678761809032064001911957240146989952959011997551188107983378581498743894346923301213167979686116869904632872484208300063165782834429172413209800173735065676724665362235069454123253245277108727561981303293466906992946979620259734571528801373533627934181983778359512183148452865577645081903492309807390449972206242298475361225401587724834366013294341678073123223344591316859386257018087172159728234712826556752759308280250300393740362845760618696090350487058998243479555988238184780738651447271366044428651663109790578906994613450897491287349243296462793051857206003858459142634559530645138067524305625457067741576705924595689378592296067136700323738830978104744794726405003068649145835372877972476172038314690526285281302189823779745356754533741868259165495542141196799637032268571770588475158534994438215937218297709608489724966522288015057356539159653727655528651915347475152832368748614395835123930294555796542046538613477592798500737687464444465515217805129156574956368877595055214555040906216804187721115240417072935604081592882426780627845495085271441983633151773324417221043134649939116572519964831735426546213203810568457910956881720959110324110909054736827356421603853649323243257419840536437783062836754263103259739825336771891381624110251485437191834543836903435661583636276334219940372151149083279535754714063915627235162078316149605130121475166555098020635726982343085862840396897095235133068184990897070468187171766759089832066056574681095837471997441326013941822891360992164903447999278325696289715448394815176004434908852338449528038358926854085009771331885523819068486597387369972444413449386370407694009040276559341845061105830114222706099468795228524170640886387713853610960084121380294330823789085380521173171632097905788132017332362018379294329099741199335403345071061193270358970663574464939508665240520475617248484145591728663201443898560123310604560439539278244411656033057130863046284548951390097930337881745078220606748284618470519192979568943351901811761303128419255815062234953644007785140641406499834149321556340550608239006283439319247808958431839295220724723518566324643921431759421387263120754372321626540817454966560788523065168257664150611336861958042458336015421163645210280979845766072146503133804968056345141742227877969445486680121726935235487476708035438809036015773951187141262882500341981738630661510714847151686641336062690939142368999154354009123227401580916459242495971847226325928739172229008997486184558183510946312050437705818371836591012122626302006083335802790533788113015428043779454180677284065814902046673770418330610920397860542401706504327382381568205054323955371190664633578968530175222883357943712285389559525281958754499871167628535369606061913619412528514126378535767037280633122716018981010268840680831025412900057954548761361172780415908246255044702463496162405693945488569195067755142402244904293494032098535920077188116285837335649700652339364211570301916130030130016829472567142221151106035423013833748057630184230453618878599935086472667138438784937606975142194204792776355986254881765156796573264869773681063221276991329639851192869548260418957961187972351131391567990258066605039849031880646387362859457546989463738214213229852806083630179811141483477809683089315960329890507948117559527939880593828405724376942388821845118508604213566546778976797980956859690512630436393328183974160319537793855049265512092522119869535854543784682787551438411539649545116997414979020535313862853778413368346919862301709268760843700177655449312654848443446286676930883741187600850194099017378420609010706330246552335386732313565388862381204674625887034976908158381256660943131952282095895378578966695788574882605873835212551524430415956442640013956586892405078040797072441328064142429466459343859730926141369828327671025344794754143249427796221690416168900991861693808377604016313908240813549440529659480629573888553079945620764935429857507434667554939227807722155193095718394185844784892273166261673232398684722260846064172811784371021628533531423440323493089548168710759507094719125517888472970332940307027651725587459791288673444789155961760420368810310440733263615773648602052583540125893231887488014574677686656517248828303068523244180869968384925927018396300402557145764999794930401799373548010661542576370864631345965763317678426207622285473464331234615306390796352189763190658636975804967599988494798286410100128752569697413243187625208393357598090117825359657059830096808179261768037357650211740172028462528486628780129006146975786454772114051318335741346980545635841463277770967111887445592447910760797629886555791056320244156221933187723367978464653225002906484137826499701954682683357807353656204293636393859898017889160058773966211597401893310912476088132356952418380231419886142305277680294909380282399307798128945296304387576978497049588639942560100195227831463882712628309769489545472936336121334661736568393124621467058880440600844126519537202574312896228873492500295293071283566953282329016431200893871914489975925097953981740669268950315523761901598387227455478065230581586794897840355389857805617488675163548294893926553630966999061236282404535043209287988588431458719104557159492594013855493937569236054064446337725573280472112180484669924856815162678236521838483611214405961029036932164562325331930084764786267416448561206347206198890845775820477186735705614734442967697696969068075244723613069501469752208169402052274320103639902368739173418428134138653141377189744755774000747574937529031762063788389855381385334251350387738963786718518105651196366252227911388878172412406495669751060382844188561969484832394279320439430273500007853477559427976187960341416411872256272833998726769961866178369520580794252107438589072702895946702465343132355477956445414088056692239534618520749205970903694641058008128379114471550037875521259418193445329356867978073419926171249275260742361614804374764241091973558733384910856224117832010393696175740636437674052046539638216339438078179449480933809272046074388448683071979016598659935929989417350889000713561508911052696153639134769530627911154776591880069133412778280500609014024308571028113700943136897296094803370011009744198850723853627317209803863266586234734073376996673695628114313589896808197988978215389886139772933403889026235044465507351408283214358630223155325095668454531285450843426673279040381448000050963924972659227028083660398667397240559462491358452713623578249396365340348530826354990005360086423094056623942988238164713307956700511185635821237229983805670787914207576107824732613284532704398009263272192214305145688348309796570294509701667191341994791214132475768203040380019166700558975708567653366458181231779359084397655904943597005129597995113702243662085333053035076484303669488815410143240254616198702275596066978261488782330861410286360227021481109460750399098149564455378037711409973287021641264817207268213741153402215330959994474430265498308129541145314034431791413252028732223493686362823783831207241508788728596083678768664487505945493457871390082721735376095125477459158150631656762277012259500928214939077358569999743302995485294877765447904910247254007473050487033944562435934993104773831733588645425366863859377581527796287741972869355853228401441013575161063037645936922700747512684076417223653307551760906925357786152944855359275388630221535249043507706297575894838831624001841201633050361075214526307335232630490145918088670185466697705203255125141128124940812998759219066231230616601420781556560244726261904620961865921231341226951519487615507677409910232782093544567294885433730649818892778798080069247845019722031070816123649622679363153179409747908294169697232432307720604347450658229152985479854849268595495107222256856864456500893382925515363247627426448610883299030858832974503703486578273902301264902863018172184379059498962222962706289681926167839823372588800454933960808516708248055009115022422911412033806253251459975343230558121206250855511238565624211759388062409738899806984205057084155276316344303680426372387287325105038808021569548994907457526305475563740281271727852778736382812441851238711787551432479927225501414852903930487592682742376122634735896806343512036975522850091104743905284965865480467246815046382331274347203446484858390291021965151205140876837101792242319091435266871699792413434208661141915075614477224195723759668702937908155705533895448833852168189503672040092528153597260564214152833902259541038241185286798497133237476720691316717823527983153434592079746569102595320340101264829784747812648763274947595732184973194667366560257121465286606029864626153393353005947961588186854931689786272452894044798536634697833393310805470466011939636399456667036065521780286783654091304425802847117061382741800839732951513019253239379349646591078818414990916316387117230823398645960969698659742570038585263073957611050178622181341633528296501789549212543483459291040662528476502920504114663494942090476141503446705919374185427593501456424478102516664062714412385752656662485864738454471020880001885970656169827196503880337306662653560953454786333744723644214228758385080223744111101833398819884635340963226453665717784806644093576643344646610322598165775595941195680556629637889616841983226631320738684931153931690467926484555266038689813067943564979924552257145906640979882345710856498713038912259768977592672965466637810195433451281166650523753459120138227763161470746651331404064468406511008857831273884985971449408048481437411086821469043472710818368224959899072480226054240252669309698772644353247043411321867989283477383651565809297949028720183309336243816707758866201800411873016653128261291402248520692363432435836429478103657531480783246326586811895138872368555208007328002076460056752737422530230011004525123312831591688487218789659557168768276177129971613076536430300868462948472624876899428068726502291833011215951271589301856322885353027996550123199359336450009669336123810341577950180674790515898605224153912409930751811402351252152496414573363615674476008663237401599232811323119690709725069815770987300816582127762978616263592614634636972588737754512774147597631512665029714651043034136824822441235184033727815713678098960071873015926886623294994066294653200425900290315858851618672971731548634890927758666532275545975147276943563110780719855366274233536908586467463845892813223450809094075155416580744870932800224765390320122514958211072335064235904889327150928669579630098430681652531832092494277717114092678031092502491505789199680908587511741154140215597356837155997634103303330079017821418414203137319500275853871825309553979998340897839950836358129693230129451204780574208396250374558175300055702179047785616841364958412841328115714262798231999586759483055166007032808944037512258776178037745805553783186634784471097284184861586270197072243643101848432986628561613880107876674540719501797530923471427772130921250646305443295037716636800773079653881458665827535954141832405872702944881834796955198693227592635970706466623545547260637814734939984667216399259865584310250302958617257980031146996961138062475620996370104264094760148027431178016582334275167288001622900655975268467094092800427535504190982651877057954903322247314695031833207834255921117291920936223123967341020393546835770785530352036962463753104316881454553442995217291712321473324117490068684343624408190258453333380355309685785463822863895264398597803173788315522257347953689482394725831564390456276001729295023488961546298436563315920134270757356051534354673424762166686158197566127923091598713069393214868580601357193706192108091774124809505102207589183263440510567236573230626118330207177997577578335323415794105580994351661389436653826231142028496078279483402745387530511750989892004625171121247424101499966211658489296805912671683082837114524255165125088179337937994014876722722091354632454191122502440487316121258390909678977658120644258698297503640909944950995447823120852301526291049588869210152437805454388046866597624747419620515665247666248066224780901918002237393136894141666339967322945021189672487168162723725575137117474005346732271245088391151813486737956219724298745888609492917767436315486712051857334403350415819030144302728113739783719598552694059384392286383948394062476262902742038465560361238892302857222492479433617882185957381333000794322097699069009280392508384139430931129079025623539441223528185444525132293498249163852456474206934334693130671080478159645302006891963271142833344001449727026841606030921823053219735229373298679748045332092560415215598896337888769886159752196766235278318504112617325784728532912069411567921728335529871638548301313752686382972550254585961184599662902616463343597621990182293804553566674285800261739606540350843711819864824214354678071380520144364247552446089400307561692446900698630760115831662689796799667755716650651704940712218510685449977059949795787349089675568752586091278664446319379582695727343914551944127836447382954539717127745331827026742264435946331250222354423525661246395626268048561198734270151444019050294648784189135152324531134140073190052819508216337516572251136349431851155353345265607003808135729741337081056456438595809935456560391366247938456611421640117414655677601959635518255441389710634591268014565483504904334101913023268165483367808147513224030628059005074076119574544498534833965697222388930170353858729806818315004319485431929441385400504811720581708232632692169170882482967867407680669815125356128965430572282418252015260403080086281111340673328991066418332349722774598246740794479922499670982481168418682200426857873905479684752513897891804263098846090816946786006180755006558376321401348540415676407681719225187161802741555521676572106494003336423871032258785934935919034637372077763822102759630503686066231067463201752635991158246931387952817402343203721761907488070796306994308491004617288395390692972564317527202640682316490504154492642568699848439528559928221981847374854326578880761654456885862641061308317833338349888016946461163170704661358507483174724758360924028100273207281965283234625026318800175403914053548039177249865280621757579142837647282462306525246545502949779030071233490607405299946248986662926153709776258471999649475130313257559094051619759812517236483951264951560888413178509523283269081897287164429263091370673720672951745749458913242728259350420250053465888388361128523143576717868316537689506331794584420737691194613412619324263974937634268871713110738649090243503775454874583083904450010595770376204945956636872768909867470058155192378832838401273564909503481176047701151752929169227325951246331059017380754434200968610958840076231038528719308975567376725319416809846108181585252915523945576887844433413546683673747168693946587816918218572636677153096873387029303552310497549349764161282125970340888883280580204148082914053688467273085363060170672999170932052303231661477523708230991352404120510070047693896234711301248765644102520353260508070058351431788282257803903314008021170768232764750154646813326689401725032894660811229414750432983264994987895991080110221948619543933077319538170307655624356162360401017519140959234538844909641228015582299075513502885730504545945123392894101280492628915217425071445190944209816891358995683317092982530080073324787257168465533760121287048248229525444954260453341683643012744439766582766242160446447468510265553063367984877898985370180839808874440268184338453844671626552363722095632400560745871388927308076772175987067129413624416892265140399691532875420060635956459000584822089979346418182194510687115021373682337872555087683490647153896169199723437870414863500335490683629652717447434391623083044948260450538868768618392221653511693613728713956511566044476883784654860055852529194284842190079634399151863930946150473257331216466638550496995340164049761736969528104348165963748439523231325327892132748443152114197701442182086723756833528764656199670536318094085023099778669519032334127611018715985348691981412672307278331570640150371754303606663993894629656088338995822915340904530192845576789983823671189010462653872920853504641937460310721069465135706402917524046502830672904706265135415321965482397591803796618628647023678790319382750132398386624475629084229529865384623704087297647739075746867987047751373515348073917542706134015520477278825360478050359481974953025390814953448172336583087059671094097765232309619716787897477295164688167882743717072202991845846511116051484264884373094346915688193523707344397493305999921704928269085836481391860131529973098624994801545089606424245062486408356082585091337731687093381306126088884741920180699979531053422102460834748112361785290006901025555916867679140961415275443540173915756623175299289449919264570864661540504503382819779490284643351495032312459429819179080344451196566867495751039051922468262552922390288659129992761486267893210616882388273871912580444758651452687577094753385090309727085759301220961697438514690774732840932937155309886524297859576978611560887070468927849727559590689589001651124548674249985786356248776102149138136129353347847495945076412679508245153947443648887681358755303710225279984247846064012058969792062039556472361090390509061663760272736692530854496415988205722515549173840543798863379676126241251454926827837932032224357615165423918439777276366354952361824437010552858524235183498045201718499603838195446150774085544736059054563230985922366582661519439731356075969542680313352911319914071080137997515234616248132372011258814304749319260675904254370113495036255051778039069465069576950062983691609533793366302276976926775023092123655384751280196863953714027961649330893719070939222116961126712982907959195055443910064115661105050985946480676656464593622166297054522862990958909730855023971893509436616545060151687421642197828288357759753130530922951293857536534680782264758749612221644974924543550835515021230093570126796161134167495853382256256553975896964105682306559435087229433529857086898762224891355977655638150227377905895040774334804571334727947102950391647648657447798808893558038922031048073892084832519001622533375818621845979331660085959003038406059553902902755951330453899056911008458152436902106938042031596201104657935824687186417203223697256238716196756471846377826312113356800302796483455511532402591465739801278773631834304566860395326241758516894609142590133326416349035258841886917414615703780992913174598020445729004493806718718129699032243320099302740465346633503260535399117608884574274053751601470059589726214364095424925166867815302983895025697676244668930712283610081720079825272950010228122857121645644368643282423863261621138376818446583244163691708606584326729952198958859900130345708509459765488120634559973417325097255370552415185247118157258822826114936393996476418420189239898456669599496305941836097468555976872527487545574719818807026646378623205814692279951018547161943957093721266766286746822901482749951386463784665839327944116451957664526927361325735494482271333666156944762554213031552131440848793480801335104820433985445092460031072243702217880651964986605484838616634513447499768775634252815184119434939592966984069644819926713443526132208171646455778368114088109909199535295545260491270319964387668959373906268618322716671328163949103726207198673468154570917389320429649789454107548231977230520003102211887182107432601702555766602971283547058128348181452508882704640706247591145972929500619616752687578495216306698871843371840369568619656034381062619386531407502269624025961528328345712675975147331055650023596809790965991031014744838726271986022027012193478410241918404247572132931845866089018435548895028021385520275887238204777162810141602591403549107541974774693951558023884725629032336467886130613603920534562778088080629355015735062738489153521878032589762384934655992866729764397760074039591321000074121858586405263071849983639825862030304525342761562464079232041574063696625062229923238234797126772362407037091509964134689687832433791369784844501344361976507085620742901087161119191687397196431361012925266329622578066215891439881014238544642817780923286537731187246490697689311245449499818868509572335279774599215372920732209378331599316488606433137450130658407110337629471142486199045196368013058947859880231270732444986125927094653249120490131025124266470718705423963512318017554560483926371119981676772538090861883268994439912016808265615935971504750220267921574090931448243857922770437108242324127248360900175317781784998954917399815999805145719153194221122454248645330026885689093406235137991303908328370657379120630064458039076472399924596777190092598115669423050117372827831908918931357448178891312750228977128563809784337304862680701086889793698906176360895128015500915792685483087667427874107884232966670727532225538186431817824196763492633855809291038044321166391817925067512512055088922258598374566361436012606468918766441308597997190305132269562324583436253873119535537129353528575620164191962650445963230872596968714373154978699415486576116046709760622753982185539767167049064611542483830437678170497335930054344547046245127309500607983774889807710630945163452850534070396214246291758016914139011713657031154623109063599576291826535278382287381395808753515103088406792234756405941197610266679432703975520669444211833992669745138858562866512690203820650590481835573634778862951410211851187804141729746625363542212336102757658507548896278435858451385083231599248662484525559207875847976941702904094390395572984944457300376475218056249101384247282278013685223251819962378757922001340242431266682781582163400061630642723141623502638222170517312105063923315776263516066865587122769971363249811614568262927652938815480804948623839192162501834365047008867796793654479067623118456790584831002602805932810952022921589742290724862717491199823887921299419585909268783841399246854850138603769778528287000207237679499108877956867090643526474056761278478257628750952553003837139586230072897382601264182546603975531751375925382144456510626874443249108567520679215675912202049666467774893851079357401050319511715471458901868421850157353876810728147716905641616960769553341204614631353610195140348392660335330987449301883993345884570207360668879729896395980112678892004263952865301612094733375792776666706786263232777303818579652791593463299306262641979743360205169682170584222388335413699126054028697051194507769288443784211118640470434616573045721983927477395141734083944155245821207692326055596372358619352398985604285789072249814679217564950574701989985064096351871115895438456949656202695412519902417170089874996821640692900270329735715910471351435686528126047964381097734137677418939412337642264666142307842541463800806340268312687667839004213949457663390497650827843263568542545282535169806242553582150127892124242911365074517712800014509221101467266208603144161583824944105809601267623857079108867391934055049284089973579781077044718323995284310655243259700854521054512622025812780643134257893106391995826375326433217534358728543995544026270111093367939709191454486780044375637103272279553068641414262403271723542382208028856985658689060961844653702620736266690887291778491779116748282728198540768833300949224857689663645142335048342158178470377889914589257684153360501908268004600155254329607839627314291448397940548891680058792200943618691241918038095971095993977603941378973107318468705790491854205784035032460338594860134197890295689822742752542384428713342130667332894043925049503199440436962443577431552031131331916697176922509997605042991336645247677653631123329414561773218696102361818966850941698635935613279011477504185029107409208696776234786250373826640672295668306846165027925351566748970058193394492448618361853047093862096112363296222777466228324301604438172034324265462617408400494335248824398197045664698986515878789930414223630613006542843198859995655395385776530726519838968728875008455713228426706783860906050707957805710080927331443559818759941775438109831569516169279883487587062462522271090497647885508621175086015082137215143372466023321981228435035286790331983818825998394496273880783382117455000143655146027844405538097280433794172686723057681288938525388153142773620827133954625225096053300534774114917882751025991565199474499644759659058647400349951253587179062080662900708708523721462899592911442703207590806315721955987887968544856969862926104640369770182067944942386373742654504100516074449057447415517583204882905841136447737719554058821491084353002176809365779878981930514907908547734338576058340063466009589122583051160546346651545961809590630334615011301220347446591261012697295771820497668097449053582009969081006670267010193052798987473686210188230495981083204703469449265686056620186387546366737357900594410157452548445945327138696068093525564084654826123295398960950383770095901540540487943845266474472438612175242667334342812756087406506030596633755485389491323973350997867587144414792538224180588743982156389082895064632923075626035706889126411850435452924449312832233527157775224763404545874330867013073942457384029112524672338622320883942353579717412170224157167905432753984785252268106304993738265306379177677603792113898852972439324288394173581106609444467357325045122232235490828845073330371279482303745782898654425350765370942524583612607902382293709162800817727032794796547266615600665863352600144344102480901489521255125171386917152165194323451982206999823724137868423384417415428561102529371087008354818694334043830923350319823646503175563870922493637305103130591561725314309985048276897695255207893238872963458050534495532833607855048843060051437660069115644597889824786867760397168182575225948278317731904314343953420639670388156550147447069016524522105610413300018951216357696152652133383480614347638632415418056096737045320034362286491361428880757778216908092219110184652826015569616770860482276187232377301908767084956507342389460575620869247128158266998038125738718840105931169934719201683511122125802163497386599773879956416200334280098122005626681013676344129142006682495129056919589117613811798325115856377055788676755763518731226700119880537549723375304657276747489212348953947048713086948290277761951423901908957632138428115059873330907233067337687557158449234679320755019802751335177717056332414371158777407511925862450818139062422516911175714292827224955804087825137020523280636775510906278612801947032100458770895101743894665048359454619103849134810205129392765681756082185608107194334085622315077291644036272505906914186889717995039128411349421597127477793631161347867796152245207774549644701172198353501435541083056864615971336432668293870151645236460742106931446280538418785527133880758669632787343635324952801440794685607148725360881860016614025404771141230299932121719556011750734537260459036598388463718816620277548311034151724950393410044986687505525900515129504239538574946422427251562440685751651337521659261417829015132723711951424245596501441786619194563079352865060439131174538991342903878717149362398553796252213660941339646057111493254543112862632846367983380478007288463020519217950478500813141756414774324532523731279576478593841815824513346306639354898719711019119239660584528993286391573588351864204044440484907888353649849066026663302544210825445712096388027474579772294535673203592333567984054015086149861835239176625510234406499536171438237405332079257387458817618645530772094043563413637013481095632400810579484746760654625189081125230855831747329161368747519680949313086987053934201722496688236174508679210336479215929541315240597835284734330069453131152541703830343277245304669508906318302530750366758285821541907075640715498150046147129602117395522677723067969240645863958363475131698107527502998686364043083225271844425875389236136241943380521248285973621298361943144781268769907309748437976316959089144579416220163260705899674955076566450797949734855643128555544608611534194942773889353269038747371595499089112880101228104277459909272073131915080707017460311456772688922926138356807254137424486480833793972064117838541923123325671339085347060554624398983577471065369073141307593194066654301517164283171061815627958066628570988089913432461531036689632783276243986546350737855947901683943925888073091197616199792108714472493302213763125359698075352658905397999600475866341824811296228839320477789263929053588438326632444076136485069167157181276215845510995954938045883393743895747665331063466979571043353404307629047121761562464391952835245593197663254952038176363722283454511237899644153462661309527378606420831488241631441571291880024640276517286462714732014411142415750566816559786719056127064350676549123859528783099864459232520094121142775750371296753617541874880716671494340779731431905764711896305905630704666950053953225019163817060309578169136334462796658925582611486952050881670747940378805103126993235393390149298032817085347704473867512031823102232349937523763818972867203483457927998935945291029579344858338312697081858230393288682258233115042374073120718213397338355610283761174566329372728224790958204027089111985229671231205634626154787472028846866527545172980959843864420517593785653211261913201926417927626634029354292723575871777474551569688100968163671182635978000458522523045531864142452491358440226643456385612534054092852648351228023551392653107886234287207579395153843807712856405004948946386335394151260402084911338698822113629930601625831068395132275272940504793681502004745445091065969571976719739870671031353779808572773280814039595676947508121415473432721483669820972106556171819187050375575754332402435969940285247765285647848286662649974399308475608690594663308542643063479834338569511933308313657616688945139816341942036093714096471352035641982914720253222274022857562449513403930146459303312707958387650890495680972978373160077420285356346047622687088248749737515566612508070650700908990538774986475797720288515456262746474740015169051376932859528501632830498805137932957138252206174634551072225261645083274151025879066390011745344130097882524918107227575211010176262790538289846277672325256556361058918209640268283881893519470524251770296718965827343685843344101904724491253697641319997446863402455408148606015434684523098605747679580833190935948031502891474143850914304475312418967288468674772057556383397832273723149653185955637455153542100926345109290546327539129267227531912369918815813516847875953548161078419513033603319027252187663004774242273623424717443191767809136129922658856968040137715753957726446896123138406679253841495239306124870169395963806243407677642601200926599977054853579323185375704396356057936042077750507560238348109483717950910085270366904995035539363868060066056194359152532888553269004637800365036867570051221186853943265101468197111793922525317299646913263983982466482907096559429220302205096485759016259530344829593114300199054702271808232144027424387837591957940147620846322586160451529809256401213415484570338581546038164900048547437198251863967853399343998327938642735342620488871256750591914914267114550540304794573882783615582014257017011565190360966729946550702198459828554166040157743153594735764781867904093517529167847959908100907295059153619567350515137236248915763231068266005687942577151928409868461410231126011754586559850507729589520399377673658522635150921200799597068517300930487427703610822847565474076568288829048356184077667195394903311364761369305584750920615173389376268408765417257596275801772035261308179427538698459543589715025460680544041878161601843142454101163014229755139830568236825823609301684389933989374854646819343371692325211647043813989054149930671656912914024841776317767399039274075558846564015552156329498331056616354852170075453954400370665783562133105491308831319222884195875944848832641676962898442834014308464859434613488885781241088958683046345089998707172440849150064954774808978908034788124472801957965153799001143942341556162828845516679546386058347740684329859886325439343075441282740751159915507846534201540598298562180252200476504690734690393822305677526252988449564763642128815323302264334351864002562207373986610732180440388205685266145388656157617793549904911100545138711783454448927710806729933208018717694194791615014164352962095175373295079025162844673770772096137438247082128284995504059900587395542662779877402074949557860977051698088468485462602936442395527956792305704458661528585287208187897052168617649012848377694624083529111957326487724069949104347253733864693891378407497000068007267185511383170152824040755553701834548638573188029627220642422422916492343792594339995255358425653164979771575403651235802235585154645314383860490200118409261464833086732835989003951888591094729171754343006044614630481247220119613184947180936439148595880644393718299691514786215898083341349113566781447580637342464106058734126786387011899705450512003641164002709475931996550931697704942507875549258966873080046686857286997945653044359098515727689765090421512856035471820464106345863920641170360499450713539034284491165447540923470828181658905920706962524356515573822881081465541295928176730620016697309121885474206170133693295911493980547861158964557189353480292511516927808317102110432229359702226532077908056679543095208675573325900455074527634662011288948853291875245423529154466496498566810438087700762496790677061153821580438405713470514679247138875167393045302742348866843661824876243032444694993785109949138599802378932549613970518953074428488723111150488644624015986514467539262320310701950318090761520534924291507189385035870739353284905843724574733923235728367865253835287467712602764389507742131588735711648506976444690323544257445230051067726939160648531707238845596613594637268182494929284912871186663479903182847428027507238235996272429878276706574449536091184034058214375407830679510867979289034138448222681842495280209385040689103397806520373909491566700083543051872237043356761506029745360305967443139923070083993486607520843820679464285653372574377478277631294898935507427980893268288126069412304776632676086219869981391326766660125383063763865680821408538428729281505499489487289392563940746240355663181475422980030164835945059700912203545368011793762139219879607689653735957704415086523461681278860816956983289226368853615156332412949960763642390339653365070360117872918762931625169896117860068097837036288556190463666134946264682693543889128059547143759434123598494831891267131545109224891136040741633881345461868496592401829297973134639667073814435631819929904353504363340949901119619544912793275636184157868237157819735262159849383197231966156850037526799362475870566962349411952630093270623696392375196447481308289342917397103242003706364549444961418320657875906988498845164217589910359764487896868614361411026965775549296776236411599847452705972534871706043934929347744989509001646469890837022518917967409505156654719409708033912968937779852341547408061736337989543065813704590555897161358447440288181491011835052819876586637783626256804787685216557590236299253673955657661122298417938145005265168388429426476705651936574143212128592808956738706946203955330099670657071381206880050214447759861435323865030953427650286149953469136541066919687094490570125714671665223797386956543930229611325970962171515688077741143536065123974258236030171572142235397415434791756224179272581235955862569879512064175552562077467304117118922650834599207901899002651838222562723084852106629419383205027817385070380082482402606742061836831351036215891967694164690322246402133564937554768079916625830803599051864348150896083374578243142442257150134501980462785378954556933070651897811002189578757953468920617847919177348856854608935291404722622929597927836754661255721344829391678722442059440678494463748997339197803472122021883756225001036257178607099534705950112050377808853166172636292065213535925889100891926732465772166807835615228099621365823474771594125362727697025140096006189681519170906903468445413009190625354696008054986459533003554384035143048298982982728999884539760132526506180432671176687326806865970153388793620900013095153337845281783237994845147322422569061978212636696527795388041056406674939474345934859578352207944194704112585734829659842488667149074878766225935941388754697345916425125203837731185378075868334571699182276326224498943128453230075282164070834385814703326714062360304673261041359028080568136711221457534398921782997741435945459941984438228318097419029639876206995518309470895536213001118359931121738109501345734614547237380902409246826234825641315583604106345309203019123751313761623220480412460596404211877108923313034755733772306222352362038898559115106601471348830276090274424741031967845573673979529860760674538623411908409234182025170545175280125441657826287880833430708950588409740959382797729863464284742150249439017373544875442354332782155976227546821908662544667409077108100710946822385604993988698956824568223435219758016130702035683898623506433250210153726243687632695387584892496147002021035113589860462471335237836373819243181007181849461887224670871690362159852634414911717179409770423736646290347660477459480690249146510090241892270541422916614521300824149725419315457054813666050901341122413025234543117132425845422824281004973844745696976817061354755696331556313515267088027741918726441252485125345285673980094317403446926968405174817004866330773983809979571171485885896503226312362100234804838664467699885399009351306133941018947562962652657111157694264423030326985696653681258244229737448476115163176682468730263131197935344503913317996809643374600985864452315556539576084513034861561157313110213503657409895678628814325731846429416639628470449496014982068938986737634256847252428493988814610067538567248371210164165892373385008154299667677775679667800833949955411154634087225718732779715905612416761159019148035623952188328712012065037179254061164472663786333423126282238007486115582405933387742377715464357074993991388226364306991320600236010604584149803117817038036689998293610357257699062941072230455574997591675719865491423184392377005307463454171686028279828766817138320164118837037392758258525577648412997724622501619364773063832625769644818035777132949033879637675700228767513911188850004864312793954991392545152138485020954127015613246983672607757226953599807330310958408349129762916853728145019571454135913417154679218095506575844979556874617836287405205754245064317225259948619882109007505052360137866584525237670532080264701574238995628635655745746011497864897908883574799549524461156964872972278094726710507349429596697874241881007131810876274672354158755344430387379384470328316031372127273025922153301251540109115950289977319768993953075275520991834828648206254790874569290991871098081448648635344673860328284841226359260149726516570470486282275566904855792355525973158645289755205163920994725015979650719761827843799854843016274032735395799092334894449739208663901556217155106180805392587139923550374795679265338036893340909188671407215256669699387503380592366599451647550690527752932638482138776857670067287693546409787997530377551742149802641558701463752699448641228737530762652735189052037131135560007865896143836874557231469436879572819910095951638946910750289565747594850409142699064279989772468853588537662103307430039246787084097065713187085999608161380482728510450350265073483877892965673030104970392019329000407743273211615534789633611951312177607293706670601964139513988816736731937697260679220440019770102840574843516808503847440087874096313761589413864544646776353683156046625225411575750303883677089854273665030260587198939940997594760545055598345612034719603194770792199248325015214538736078090246647840723662900870333999008114640714107078252839597659029218902294209541966858449494686041911227193576749110827633390357589995098466305027416781043269674934074076674439671996507913650195593717286837114135310715222377180704667715887193904460654302152170449236910948259588162981278711541154261485911580112506703168711585708221565691564656207536475882774842057434475915570571977014836030545604844573766724030231258096089405598356514291542419949848528750827220223636457947329634682468473928253183359821228416150920594508575447067153912753983440335841913829365799722223764053104805292059651087796587337027096694085183354145782558824306976848649926208460695743460946910655661522819253984264340599076355765411804529026603771862427389664792128284750237521505160777074280021782552495198080537900947023043971259935420689523311087065642959202200617586551776549349693457308448732420883905356707308390358928210522364637523867511390716915701000183756628868288490768782209195937397165731991077576281118506956448548160968402843211951337088857951756229150902795873586674153899402242071510010103252942010893252470786960112524331803938657536081701037033217487410225744296944951154037365441973913990521342728405923262860403420910189639620342819445753079983160296476429145822518509953775925406284645199827792816238943646821517123693556799635994603265661748980938794145771175544545519161851203816918410756873475040056788575090421118745082200042356709643097252616648274177813533318766498528571977850923268350851606347946083996679315707449338171692825241547282892203723661509309258551356260577141033912861274490862311533815915145198826797104356241291298825615117433602938596340651444926188617627119647599573157527804151317280386256791699566119391351857448296284877320521995952341009981516283411699481181657217997003150930991422651781742651836668537225110732871709935366167237926962853168836021817557249659572844437106359391922444878314821322756584679888891113876898343187207794541043949839767131319364352612566082340780289980381211629995863224331319778603376248823253023563833532792694966975657086750083905283771342213464684747016070923000501590947556602889530339540981997486785038876322373373231089894824519592000651138772293757111335436613872270266282818954283590322252536772687518372788659203038279374109131646738323747693648290146280116903633744208371376964291196326291250584871546185544196571796551603249757514195260983320726305550009215508835077013324633561414112117122795568751658959814835856459021721751550540919990576740044777442200159907079965840245492317686323475089088445204884309846776066897268329795893402222834765542751418575390035965850154741079816487480695159891528872386228073480566725392520363239708251654474018575706338930323199562805727699671025268858171954906945599766738880227976322337581309258299061908057067361952426564937791446312430299095976897933039143929644230863959835106934202872336683104688762908498500498645191354503215442841810231839900442753584140212909900110241039928449672075462558016430934963780209188044616599837630679206149451226645956564912086772256882343532721008457664992996650675678912157526232265586255117328498756991817489214522845998840185515744574050920087196125640647454169107052284885750183171516955087061712360762457124031316278801410312939617776642656545032593227077738835805523031698669766135472883683189384691050241686489314761349073187941257272786858986894545931574803131389415501900169352155596437354473824653475842865438245383172865149779761506374397182437894585896477674167186862466041853251201928966804019485385185014310514207124928758009239546740562372487325301868257538990662112121698667123895084406972733936720378670963539716460887725642422095109439879601362514914012281722145744825379581854268089925925689706365207653633293737998687775067860302764341593292658661758232837233501534684397718246138538146619072782871216767678339738980354662586703812622031163192937725843698367379271618425904776935283999974667933773293625791943553374308966006004119225425857278312583235716054267365043906762150874525639949830937737529342930013498989827139469116982491997650714873274498091780556009108971839162255938919742634072402304355835023059155128634238586703685093614658148099758025183019258661218998421106646525195745377478978836013362936890609503506109704713005012934826562213581575147290281447450801461253109361505913719814326667054022950369608287546555944507133294380197761105561419497095148926753895756119485255992543362826815754796757147604842065507341533700552750874191118722485090338323900448299375674425292165554519903905406904086747254947855705944059897949334693977910350594081309863947840662502009398975560287632760934775133984973774533825864779595777294173589731768113403223660636310410090035421605612849911251592468113383527672438721860178236269196224423397558290150678277073311317430288402965099963111066151088435787640579168860241596715973645627093040416723850265889410415782593041988717177310752891691371933144790138381747915150149699885019314623645402428542335761410482944794682877321095989881949841880602360781888153608905446103909302325435853727751869440405471024127669773863137893454663300602551568053107116993340807861305989424610959819914754558283427366102068091904444707246636297496538377348460050459867289193577937800488477301907850732271813833486539960274115941691228792215928230340667344794440478278118320410229781295155667383695119641982590202409464663250382121451493224524169584631478169209610371855930316357688596539604225686945494274929606549733156196447584015020206112086653047167170747014128182685069601075258351709987968766557199017626386990653210168096656009747219321694773768700750883732169922738091786043240464658787766694426952463662701766501264619903658913394634070058920728141913231942418624871768417965330602117729238602462420403091240726779009618250470457547405602535595004343242763569104500755167925107527177936521684644871648918645687800849375027368166803194758391603866163175135049238334748586529482501663888065276914082075468674345524293472382637429660423463143083449809990347085352552228143190821713428406914748283317857596181052242273269440130794476256746048096228180762010572276343469186205974045879686651087317219672232679997248490360693066701160316239205449884087746253601781203032215711582144253078683853582388823546233967009441526943837266901461992453096608062735625593251139178051683228722825976159376857046746292724527514940720841934447761666500271331358245202394194845331470986103338212516257732968576553413961879327578515035899298268459356572746590865931758920701093027115689267735297136588566797849564341679885895489387711448808586079095210818488444608538458543876371973280697887454237334124284335694076645406657709694473108020299001006749372597180671075966040508451564339158318467340712912453116816032115509650004527124931733021974842855634452433273586408709931797202218182646826198488966391268539379666628004732487594458044198638838198467760398524935442030046355274363824083632379977233930106281581035489528011479928986457666009700712521402247258498905426168236569462761126193691560685959984777394002489353826834924371858234344533926958595997647154859632683989874775313570081976909760832868989050204663453317911630794617380251846358862704385969408417996870909164375351152216132041180746671589668095396113934796536452000296742741456764634826494234918408009773935392576998038382711878565862892676720419234700084682883670051867990882703468993649692268012423233781578332803804372258904264024255622913736653718651612067481515211118048394077060437647205767760830640629688657215137824502724805224157014898160990877531926587168468016400065552120048336607880467423116405226091197355541368194269041952225044941247487291766596065473879041185922059907961116365916507684218850808905643531846259087688511335181346166763908981399356734682902927186899138856027592668090354864014968240125376683853099966832520621576851154474363177179064871272726419771802462834896073415453573349035668989241050293447022859057013573022111631672195114847676432225119197324102460967504881522856409514152782671183828357411861898101747093773458473367247466583150932182895670688420740176167086117391497629677551927321628363000265052083093171743951140570683167360311320549007127042369604377678806049522584289604641809989908889376550769947461235127035664852888646429266483825670513394749774025256941141407844268454733830271749243753238079863980394565074669250612706069128550116240265429003189268902324121906304520078605035156935992687729498413647857879556224115121320740478798786989189403569912036854061404627925543875723615625156715396637961666878076598739282169570792938638568264110359173722546887585284823492350535590941591877377145386825408294759789005524919869216063878992624686926718082854667054048102640818827793311070914688963563381716961278653215536684301608349429473785401223404033875808108290261962868900813496115746324232150379327173755067916717009058674970866452382756183616750603551619128263708383794293362211193014766839701749142146977416926363409254680723666149115164234693603246440506789523863244127217317950143579665412815978355351825475768108369734269497827140259466514168289972646959441873173832408339061229932504791732836598808254016506263179316108372875706174914774145502196933275399714890249229938208972908892447017727727004198853535668371234709650808210523076412475025262588419955759321820190070025655759045084973790181745855581593653391071818648351129610153959641474887069101321266715583276157294560189058588795757609160943464364548271201069482598914986877967044395672649128928057150864379249729971840241877815173242164941657773863144727667179515747421467806615163921987797676063647362617355178170219140924652153631429293568943685995355975499040330646393981405777502239161101877965140939679924455908202229004562561509463002212766532168220691527620277740181335527592406415688105649175677091665139675741612070489316968462004896898817447998792686480227760142622926060791105269349042396999478573373649778770666968141483133497640400812132298021723247588403629979698101861905280046262411616599071162413726263978807239181177208962099987105189759494464128655635416142047816549550616922040679632348926537611802742009703837416279971157640716085478371527826717449347400653779108541790820529811488946018057179716703290201712712596325455824286395646225552409733348984952886297977543405741652877300338167290406689737831897780658443304197797626233468904900125561829946518995832215158482601219960930124573179142158693552831690384692794932542453292151259329934716542884146096045865441911882410208374183270897792670413561754278309522154411748188580077624374556892698081176342337102960703301835805880490969002849298867393713964563882323134709407098062815606593378877805768405812429007682589311504897386038826127778156914342726911429513279461138575087814409797598641330682963388792877958047614985181737659837048422968433496216960723760618922934599622086106580593047308009576082223283820061506548224006125170824039887218753014769777850872322582015413015641080474606038468326257759855855968519010459446157815368176323208097811846315953718890237217663867800018616595027580009962220016814379587514972296066952961406543628442165603343819804300795324955720608892713122949226441671919113560346468885017233903160729847455935732308359240667327305585603171471503939308633081631746852748022598147165639226776216632482463621968599857703012912420025972390338890671898806883649161263702521930947387347009679480610023396839189882021539002241755654138511790341201820930520612918862937635648845011382996345871886876726242600999551730790211250804046627616324964115925128921360535179634877901171008608453623050193234329008258012706827579956350021698169525960700451823547756111684295504845582661537079180141400414248597104722521918719006426311944805533783093152785110735920340163094421597268883692876264004059881429851076858398191180094417341894854195925815705095243036965636036916518060699854692498413905661117665726092172686755988883383248452051623995973733075957220858257887592689841317216124881493183910206701413421258238018108067386353791124108713567524279433525616222588106079132850872994014307437030933874508253705485168239272277210514701429608390988486030680071213663162239251451575558346696323795399969518370845765007398880108112139338375952919461353656271759617164168688409080729253757613826482806818937752812923968448155466270833813600544316552290223915301457524526418947604311419095507704365455010638064135133672851232175762168075215992255901669389957182556983444206525390857413088928806176189770411156450945756299569118566167231504123031812390342981398182437157696740975406532498933642691108476689883512152585228232994882666405186837056400058254060647922538501023686600269250143472433816632723706309165561653656125031043846889178676310661090585435601389150557904454309802056770959431538041299869915454530234883987713190408313285193503072806513131990566367131522536492519502047918573778108302444475148726678790989447798472167128754011040426413020289503200480755659905129073110994822669831672545051523169121961021071473111508883875154234286945931997413456422259792206440001272461750427673073753926364725730124247387107975713477928321842037223801672597093215999611548197401816674957405553977255408666742477000307778357459979001423597922038467832352828999713837504163124076406082285506268045677403790468806102493671201277922090148905003427508501945204651664365819826702277257729998871893443846428124307077068651115233745193679279451895997777704218188897751557227313763297958765584362815453355932972793511777502731281044325940847020048349370171763607725675770564208088746614854821387105109590015578825744359399526169733647783087342537775629370108855888447332017123686079376337834528829690062343058810414055024361098874034808085659390127018518288765214470819652086917849823348797261136400893304656617965842373411488938507262102151287166238221568496479665215587754297645827277355105501490001958763927567729560479203176615102884277602150478861052756049471589389453454420382116943712428348167458532605508097451327354841062293935533926505609971566525872187698159278196218830277586715363632077055611603253862379349955773925781805128228445393166984915497153988089952600125010847934541624228422063033697101095548081731006939025778857705480181407841205873158107724235855615383185182538135960001685155438896055011193935257740623565963162645420957788194487076286002939175671687286547267891940235114719726103398546047032824126773470927135403668078556471540236076785401762404651867903101023889384114108799358020974226128846895040799593379065825326296292210053096182750370000094953451487932441613992376245245819453788573370647207020685102715975169825963546530927612094805100093073001961321442177752548020777099203035440770720400894949614907425942472928839061799221289346536207610660737938398714636337730117080795406649958650765640263050176137795958050043259255777328129111173724083572906194391122574939661254653495224192797182712733822846471746150373835585822895978975455426865808363629697577555655390501123575345680433268460012720059281341615270151784631688263198932730324096534212351239481365886705771794905081549294063528789957961645178941121590522366289492591563681935278124058011196057135043410958262550802981890399024460081825541756623026617705925362930722804428575800308031420316108061996769121412198570036487735825404087059085248233816029344703060673188104276334077708939205986424701487056896762854854620473860796561410933450431154279490110914588900837944456046451467380803558197454341375201455301665432321781052958477159441881366864808344052071836991026587573990151124852852472274031092874656042996126546298756807484664479892967987725162746361218507696273946764100209552384162157890710305465290186577245092373757906141300506271330068040528226098504966288634836885163606588271553985444517725985119458409698426407762803775497066738761400658948474530317712353418578428499784665125944184206805088446788173357084130056949776195301679114355760644122022993047292306294453147620009086497669256053540399673672778683777248707601683617337812661030821071629788249396539696772271619029032351148252827840356901736119272675429906072831618047040311792765999667481380643643201037198497546736111419838151010541671077287738850759144648549793332082666051300642459757238027494120157917584313449190744389617838889653998322487205003221952079686478229655158921762627048276667892175186141241094928927359077819930195968014055452656162047383607830786767966292990837541243402242877513538428611560402817177450350818146290024607218996609133238534231071093308556640007911532521343381486458721263330102101625882512765304136275641482653411159731295344685017827154551274856432882019914094888580163377831168380268248575902766691426391534509901824606876193214854040857191809302466314682250667262827451142848908324429612727199065564962107166611133633112323332675787325637656110406217615850664958336506087289739840094019540984393476761529466907227658000950561561742280260002579580214838078337762719754122741929292771226526580143844200429460256772695463365595775954242578284036812820872055645455790490678751977629224276001335824263735247246119657373980899804828256572420062116879903535079869820175184425381938835605252813118082066800183582614905601203547332596315612021000700609562836920585385412863074394029999384015878550169434640251020530460125441186482130240153151839843501111365800368258718231902243004297991642497452861162088087434813221805999852311637758583558956638165765694543243849244295721492211648300286800402998932034784862494658471508200706333558382889844707880421003034659325786451193704891397557272531356366339799685843225674382527749862808224109709738508112944992147476608441213240884457450636543301741094139002138945851334435488382982659456997440934251902317566141012008012722331472014768323364760506931944435577028153293132174819090394066016125976294938537477716368519384788665190298638801264179036810910663221272025410812725642512526605411418388527578957143538097983747806839876453347645597797568688762744745985186768067257554266131830717016283291484167758516618196274097000763520658594604127210931024943287035697414480302954851737480980046031794158994612194794868393261104594990809053659228734518472686221473429838751293342547380651045953945373924374900807710103172669684014190921162514572949926308057537233284560230875514666082372474852872379168041706576879087923386581784799753328997722260444794215433153619272895650336710110898236559349132555243523490986165051841053321613459632852089923030728962721697452651410770520961817785653321647645481618583828432670893422440934504749776977897277375726649568633360207863803577374246338241342043144949992381429114745947803738755971732046014947429413687421513449353984564451607014345437131390815938051786536023535934707251544131543351325273489346492509170616059035515895121818144432279348444415329442129867234894961144796004077014966115094461030428738235334935533422319265516924524384555769521550713641111102268999719566869813401670793840266713120961470048489947785304531556161492325042107776100900142519432056464089189149356989070283605735753891633167148442138003833826160283969511087102644208990412197480899762781178895288855417092351374683200643481222850547473979632876597725331044691816775873898279204263877161905533673228138049598921318760543463110855123962292340533751803787340436863198773132574896247569764279817119666465477682067946960702601526269393263211919778085052347614695630040410492840122380148138492660684396994917718543244097817104273570768019332736212014800065908047242455373093027210258626572327847521669325796962895378617461197423977475040409431042051445312682753111147998173884750585199962206066212008569490022404243428867021594935498029309116677622767371695838191096939693795229988484546519179244063847138175342228807436703049392832628164693027475456142071994356273025481399195520556040112201651890277354640139367527396430741196371568894276942336694195949482411384732179471763421788973902842540335762623052415268673434536639560607637068921124553826220917064586092946770869511081968198720107659346159072107768941978703145122313261593688197533330278972601502195848801996079795984043210688059408758500178684687878307167082640925638797796431634059684942191740919218811056439635689834285851172566536792967796001523933843145290560399127146520459152529982286421465609629983432733872793290911869635371856502968275927266945682126536340465532381163064906581867762033676129015552946186694989836554792801924757218562460602367182432823552767153601295893282639512796518035481727742399793333199161392059241973783311772131985966258007669560497208073297465246595746005299601975561461848635643215055074536365123400583016803441320997319166738001621210174354219836476071938255788953924006176396144456268790798791043602604358135123187545933378788005301774506295837152561371298745972943535793289682036842156093520550061872322357448415305969448796800642014795832860611412452329511572239939754541933407143577964120159892786722493523657009637594617750796645037352583561297961255018353491719389600146726285037297964597972596787622001213184937779086025718320564081410017536000344706092778166416693901173396929611611305401011521988767947702039260139141648166037354235366512904010885987304711067136925058510320024029491306662211601983161162822870633799216156395422770062797330939002534134700565350288616321304117490670655799179120887990299382547228117889937445586802720524261862766621417584210239760631216794238220202477368014891766299690096172088235032610706825095761057850784126138995574116605113558077344441867080708553106589786344036727418304929659858760559248422657784648040974420725385798483284777254666717059510524842432643622002017459358941529479445876560439256866954573771720214870251081741490435877367250098047479800680817491025087494390229585469452238408680607058924678429626457346115658408388436928878598288742575135893332453708948349845827724363892454379628921396290163457351796585246620635128322456499655717964015566675373264767605115906164718821364227474446531616574954354655725509222945060758676829771419140031791510486730271448381636802914729441946196676994064760265616966821212565662176260577985210177980742118231817857829197830222576130786024236498377683496216613243839929478943781023221523783101122638665310472269623753143776024006621322487754261137381097765433884487507802088108251353290122269385429877126878817829822211638109285528678931532237039874080043086742703304932197026967193904377480889306934221558711930083036974918665756610684545610231313921685399491076498300463347576010491151631994862759019165394107809371085759538180412438380458155718955179798581729186921770786975147877115520293698239786222707680410477025231563342304617270622618088429887459721624558628383935263385049268387715329343335495130955324657180166057309171842961880021567638618143135968432852922176691972254050177629512088525844091842779854677378489591347082425061674934271492404926021317982907986024422865071226527878038426063389613233476358343441755764012626758465656366183997762539915935885667410587664891607892719786548432892478309024801248022803322602565848904875238741758636996468089101273744332807107501744957109997702537693808951404218710024972461126621910825247565530328998731128078749282365082824229072239842812261791214661399523254106645680736010295315709546174532747474720590778835791325610265272942482476987822774317503767007231070900556195450058883046238928138320481234490299012948881318607904731991723217776136771419650312086308938890703799731595740639886306597809929942321374697256433850429594459500923165006916667489602177269636345254111552399279540551994394121811814836654599581919632627930633202881886721937285474713861921382488810278661011685950067611320772948935209906951976103015431393745579423839591986335087240043723980294312266864855265072584810153178629651743821668013353373970646455453269700008856271494565728573029609286582732683154099693867674807745434651985790003936104733644083160209510910310666441198812778939057757324991427591734142297090782579302246838645321589501904941845139745005188752577177582808515077509655762467596547514328535795101255104299904386964358429943439831972939136720806777797429494432954206812201482445796658614029716911045203443780849669888478108213246530503540834220537618896236630312195792084281437399433543429400754384438371185906125732523447710080725254323891980832164079577975835509393650602190339472457495405333629709676254929672080757943540735013971712582161980116871142092336326267816726511173422058134185060877711855687327402908137981647743138095773968837762167090311606747864197695639380810244061489550033674246396168341098417191902026207615100701388774432855802252073090092605353782152567645168388859329451002617239376133017841758702737012736998536144855103757663345861978775678478727669565996630588111799172040279623250801541220035217426215043947961210680451378782473406208601984501796430146859203080897001649579192090887093030454016755044730567673379271361176197339732720168047513178447354283984646348341579969068932709758807225903539968580779023018324969839347860522704884434411490106268236544474657329699382738977595522331718931486446290778417228843048573598194868031110761856138280481701602454726596835537781368674105102076470090727730254732617742107784718942940119840683903038688383808955423093606982007372290719204160647327000618643064204965227121638307331459091394377599473731662600949459009934080876381292418323003563755309543052575319020318350871842082560175427845860109902358906824452329244855133558956582599946378954825434056334870828104741283359996960523431317268671677447453890423038026194636911556740768731195623265111398914420742355339340817160099397738702363597673019660762343226871115129179968335731981649586619874573443221860753177781818855540400510773117633338551124290131099567100056853518111586821550199551037863766232536173752539651834507343854243594916691580490775361243505087569473119209127005388569186226894805603442379195277698859736644284203819628021057073141637255632816221100280389672622861945792774552506673256882665323564947382682835021587312149875933395345305111135163942206568521350839050779085140260134304168108835849203196350512650885694979016285029483534186859742715019504628607045333517426969384068258225189892668858326650037233794708805808524426162688514773413568180843985222401657373421625731383178779182047018955664036743994434365628418951436908947029004614671347772236352920604445395213366300669144047244556868609304811886163019455332999958118432696112945637286507683038698535170106946322279022749595678690490030549648429981653339638499655583948755658798639872357460025972679349014646958869570295584893274532264740929964041708833517095548231705602488264669822880599374690667154906414791642873443370689320484457782328237405903209583083185353939357078285311999754535947585757836564616578684854342848196637702729483629834057014070543340798254257923583185212929546123359959262406193090921289222238005248972849511262873795035124222054167880015509963518679260182455535139979260802839155480048192469723260140041042714165877322399438296071018563177547536865449769482223744846270802396576521772519047572683338741564730255289863214245297372859266163569977590294145199830499354785995620120379038209813309966531416806305222391387022325549799057262656180629768828373443312713286514715618443689063062812458335051161734318719778476395895864782039171182027950504086857943143287450920918884445071660997138557281919989623305251725171109210015023674495296140849453828820901529927557451084525489816491311437108932746405219695791034662229637770401242059772990631939831583526010810536603365557878239843463535206284104954607327275293675087145212503089512644163151591482894308475489325240604548733357382625649274982187484135563147859291732384934101996108080375811377648097445094569518230327363747086105402253177373240546400026771176578747521015558673844400592489073522874727613883700470469078038202853068910996144316415529967629933415445449350452321972687685081666385461640717639526537475837073203032481073386794135322170783232021225391468969355185880493788423398220009435975377231432006057262360044453762465632689806164584361108047202216963345102099263036677963456783087727509653164159591222300031310447270439565031079773290809357810035215738999227606234999952190223517777734684651247567061769189110089266193771549821719040064632489354499790950276455000945411496936530576174484373922900875360168799399574518580887855629303028199639807989194159566860288820933105023774864323169706584289998649534158111224498443476836291381387950358793914820953549762123047699585743431809798414222580513392397539676525467230982091497029032336247346346044595797878770236966138560843948051988899455898239788340540600708884949047128467808356529634800705277238832139338878741966098352398613108433564114659958604566317759015779051097064882953715743553834096694821856187876170485354595030091726845818896636332466634015189459673805837843551882296271317453332611764376402771889242902331764332919483125479002589505551257683276791347597985426947687918294095061201736008964767895477441165709426544699834100317603603504438412208278902080656194935670628106156327762225267169702505021672762757474676562709012264313534817930576495893119877998576280712436953134019847041913299141096693032987038060431043239920414698633441704510961348015296903695591999360306642545345347014750708698759592133878206692908801780391268857190429500366493305166028690423383285059454075249213176604400591103707045568611539483728770300570803517326100876569978790579484846940331338924664292453965519146668287727555787600565297226778180382582980896772492027643136529015028412233879173749356606677298125444557857534703718219788152716321149166759237118676546504970213164708659218278433392262441321761431551226044080086452940198652333605324375249472177822370964237241621439264238363149774349179530856813519455843124354636988143672022025307593104100796752104601692840558731933307598705952388166225693827161898764920604285514460030512863751116804530971082997013173600118378273026406565253757071628687071753040315371800931226100612693308779470177234195274666715870476558927019862222279975017790774470907497272561985063102692082124773208064811322450870313444355124363017858214473978931076611429011079471038991652263979825495523246753908000240080788266951958930219566670958541326793719591711502538120600104374355857507535175292069962437051805098591506239685781355309844861098541715603586305295816287124033386343776541577037349586470574564232549280278569935659585183250702213365225777096142194442746981098536963751749069854386794330576102461021917507808436990573943272501923734101436990991198995864781981836623550800179950440523560938149363227440608189683349132412121895536379930219971955095411021808616916496802049613080556372994198111135528592770133247181089024113508786520625359700511142439046683706406917891758586666467652855346902559282014685413857780261009760510847754057415427004119744263329788066002718082320211997010356976587444395577365695815654937160750399885686889735189866778768186039489953122920642898404545554839002384380436794582018839955742761117008175507749196546664870466009302446003263151785864361539808621472295448915970292923991336225386920024742404751038013556526423425423627972103111614047592107623735366590118625262089229953918338226125793455469229835430962129114364937892352726734623873266344462283093314269160992369733434499570948198087309364233476105306577091548774123440212643541995918830486508840688933277446375697339491297400540196875013533852438647382287203671042620516565978508317932046269418646876829451720815934684225697070756187840130303849218835824656753080400894553602415099012085590682696228171918489195200922101994011680184313706942826792991947912885207721269783332120479172350709976839850948775442015409855515090361852089233599176717790911751660546980101175602102573476429545366629974901705751318961903209539236548166612323047964456540709062715357558088794511765747929496671532865878515011115235133381128075557120443107073715214341266544588183932884864693126329052162888641326965045990813419794000687015093427197012538556743688325988874066964083655042004787911345221762323355464060543995936484607864926109500984518780285948998810933620658142969448580844105147689641806204966234931457115007335370508947449694563282314548575838254721426418497974130129494973188983957420154596871776945681713295914444592871886037241153180284504750045003677632531938001212545530523587296153247124562687902214616308134219164725543848174128442807816990438807437097902955278553978851302903642926792190883350277476349078830192506109975489341035119618462657833594706662737368242779497660519470653491305810149731846348977243172209660853300535258268510216006280836930617163277174589752250054453857025184095085854657265684246540538894089132776152777615441705413321402652708325878016235374841566814647505605031059837141517338741939673707839901489925653214744459704768012137764523695520327428945542407828298968386788418666611565383612269535698823578586608089341623016715298372089746623132694999070718494279333714920143040965675904225097186563991593619271736170278312798686411229967823258591437798384532685261893034447828333053423000950950353456264897941610391993065023498756366444870151907755319526991818281433826845170054871725955118949742759194115942243393926718823101568203098555241596976289120220311541950005216030442820067764455044310328748244986235585147276328568682811493076190636992399699288394857857220058344699270327097310417708150375875399667500055408188155487915247140512299013353968894634629638733515816919956085999923225025089687292131023440047413252258238928295746508845110140130013981702081973275450304269114991797705569922567565933105691185384661371276398617047101052702320618507973710960027651199920567852734651781573045693816226657987693064060286596932185281057400907970068431961267146808299345889151455741774388609802057894549554714222482600994437738538854209686000303412818644130418774309651816216457477103489814924166811773024205954287213311044413662320016238799804067176215003386507367861280568320722563585805910686423015135174754415666383624587863855469123891748628474064707525870912509850704801069119178812715427420190515460647690410930258946594240051864234316601136213212186340165855717939752075580818559776191347429429849080147928026574101775068038035613797500645979342506604985921010157206849592135982352800448568825508204195743428840841660136445583108722013300898485763890093583048439233686776252022231926129233867495451538206472258032749188398851830822846245605562749143090501705066289476870564696094168577904648932120981569039648842859907869360974631231364399868441001341963079193379668452481280966512729095241869729908431587366114518895741162719096433818132668071024056434962029562064267197840211863230160768397029438711886265445114533690208503002581942492311825534876858466606367908101829759608740880080378035963050860202603812627688760209075113034376172897710230746451504516894686021484826964929726627187782563854330418550698110349643533235587160030858265016750781391796675545946997585790904071890957907682155017990703499271297505596622783174021640837066360303051252015523525903560900683791480254899425463684160886857648476986200334240056126912225671058653763735006370272483704449502818083249068140459965127219872500603833493327950938363387009067289135268500367589448611030527413122150933934471421051677420760148044705824418355476322374501999539837433863989996629897887276200575383451872829495390633068294378630801549874789719555277012369091638708980769892972136701017390267900091184048855544214752516807953109983241762524857818393854004538386711545420228656809315139199490729380463898388140099082575928122183677035003929388841545718496126802031801065280748376178640409445894480380510240596361186486535063540751788343094099834067528219441310788359294083392664077479963038255526970400250146561568460930732977861992249835636879666095017140892465631654499616560096428638939203198984492828337782128686364720904136977619063195259004811034175181380801606242920918461341752978441123508201509929470836634432447166535321914320226495385200649730567194634647573543542165855903090963294617738674262463248918113577509493720931448980731295352161909031032706661127575176069849208017479536563819736074076691162986601509724577054082942620477262867586100531906982012251421448773691644579180206076157656909901677251264577292122500897264630781991759051017757828838073640421305895571667782504838098834050817909637641927871585841703915110368452060706188794794699295381827760800631325018211241915846627094672701980924298713698174211499489756790607818701070606245829779263100262470019715690010333915177651241802774498160499890177054946662948932373257711667269748632654453126245113905374503270728286095973665955570801971049553978810731157824565815318862346623858603073331070642795269254186466469112700931295654878460721195903133790774154773213821283806760299084207224739294654382338848536269679549621061994399023936748545605327585470477540956008285063266961662159789646182887625225784800204684305776310423777787345539976582699050898293416441434550289591230962963066759012389822300250039711877996020027146192712988409034729984010609038188267002455732668422972805650750785392572293612595021036948575520783492374506394032340823848591677023155307355470660732737642617962617911580447045712938736807711897225723610418789327099040318210776858027180500371127452569703975197375260822444552524246888643513372107661608096975262152800339917405186655053501424741462874626166550849801466482914048111438799160599140783807203645847142541220336348797942337502310999822352562472621732905453747214907159979120838946125870077519451456724953712270941713168385232871284112825794684991122405524149079679683019764151424769299972761490900495446820203767018526402774323551639638460375633247076482212524993508834173455577577395361799250079073985992117447587557103016795289559320693855355375694014830743959054425751862759416469380897364464669346393655185344717467526748779827664220435218003761748661310477876186289401006340385153565478003147435096699180433429615389160524478028858348399413920398504848989140785175350653606086579535886308294280820324953221566249268092403278288553886934399390280876676176735549883156416979166832701348127450168877039863313853772702203245110692493023190674510272462610146843307592885583399263906756322369262689683786913464455642210585429465361666600098409844726001887463375926317441889838921613951761566918649842958545911840684923393869996621801604451120501718212850057964327434108385745717631181213707878599465701755472874541341852112670659766867618121191436071003820625201225841711174430781405671710766872177714123000702638025570978416104248107287405369289311314523538793791701302724730369669857668820100000557519981084094884378107615648732570491559152587171088092847906230013648962503901032108679275116455146254022485980345269693081188184495276737640314910510699052589086855577029519119332142870705825727762424323579222386105921458578215154276485556387591526843402373159551674604720277765827755750116372996697170421193842761169015574994406045863857733261809302581113136393620219641394003148431758441625991143570668190633970374561193256261013805205568894346363293129466616959719201254423576928730214907695206163417390178178311950979294082554272558266381753677896426369869729037570052325354484335566608992279343854642942627332558725054441713932294635253557659737600962232373764073744874500575602024937317527181561279867240000616645297781777727029822977554305222961392984030250090323943313659184041996339996335009897649768867078214971385296597853652726408097154243053398781137489030654796518146089288246456290397127665603873439309918003173219829210794495606540663131215323167782645941490879186057147284780989988327448610257920605956422781986225149281262695657037077163105641002986321236019897245430574530045565282497392286213205808068402600183299092394389908524478726569286408495856694645738318199336565334276734081219739705822629704540735955339897607055789475726424133045482582968670828086936902358282833580539724963154591248704240888053388624001176295821460329265531601163880651091144928985581740486660304528732718386722569748497978849972979721780511902721648610894090357658526117489384034623589150301523910695573914457076390079160854976203407265716801759329561994714846104663232380938485670663459909372226981620400529713997762136531945264870746946356756796063151935151723750705518071545369734964792194881341095737360780593899162194757672209264751318937893067763932956504177656271155482415272556756606423917666586154994723926851751702816053542514424169216788331714647779522045710827767260628046963813566253184581532909846552535834927605947001100285014794085097311825298062320479122828420005807820684410757959766740562340135714635557884718015995965442449962917935213203291878705279885023974739293778197948946502268863163063747454657386344039306287823016927454481866587593409541915305357118257468687549292657843278412880278362503869170151993683510329401013471780800770854558387022608414118182135473802302093001394209637942024139051107465731588734181136658430747438865513663191218708363259016934990922116099671635020799739940049888215583210639350208162009225286898885033086664537464256749714155145601175600190302693782928901239185697858552463679593001371025381712705110680499359241578639474631820729224105420871610326014225772080167597333691642569618283099908125118524950535757550931875140062416295180853112245014469846977888369402918089475656409230239062254939164149818839011973557581227830484858182874827461276789196309638160791538179708971164995929587443476840365313460240383779030491884886832803862850645766446917060450677620128418974130407718183705295739636849172539763837378607933452713691367940762051430719599159418290996912546141400918895381528762063216870998514321718493744830110794673323776969299162921148720070916894083530754796212600698874115597903748183536825663445859262193198596989852343997450429971652784019960906547324076403157276966017192212158113297009879492678090283380159078827113334305192528678523853492662197326038119477267404280171537597809650178845217822660801132052061027082450620443858608311501330633892627121391811789793183553523070705423178659473551049518008439717626161386676303029370786189543791824490229089957101468324126914610823138070633325755103934774863873357006434057609681225343006256912759826568013048771282687948194174890358833945862600193097065585350082218858846744327606940643441398978434315170722498400751322560294755424246105421568160689216270790588369086662630034974341147902534806401170029155084835503803197846475402333455995408517441910159165061768400282655757675796779060189728043350572231260601148433458693883931130354802191534714992238162498175962487621310647703420036653011242583433529199655680145282515277725697183782757467736062380580202685448352255876440891626966912959968154291416424337554694774761402729498516373345008132345873406104782531903349103887695698732122856897768536311551269992917515597467797926003385560779730655661027826715362222838427939874398663214081155337555795752291409437282526918401385277986832238197986091919775394975806899298594972316105284119413336698645402326239156612972216447199757648387034023095627049595527388883905041281518622021130272474099954663125553065904455243330366534567178639238696354710070698940700047426638539109251078156285486216931205050191557162115386801926087330965859596291653176551658208096879348066217752722714604308049452590490058193976267922216848421719486297197217223084967604459842960885775991388172771233051646953118037795024239267891345954746056370555151517445414748559272091088807358634297676538430842355484810103941152126510829797513979722708147526804819431552332537497707197514077713991201983744774896430487702328408903051906336666919160180444939642583993090806865050986543490547951401225992551766858100909727638037852891636602214604475792301064366651781806437296933553180288058111043373680076585707779871244527538591683818025896684290460915237260143617641305428024744753668054659181802104235463481933821619401246647143082656756616977079946048728200692961505920373508764228267563614710024432802895436772043809753629818985188468927878759411449446922857272715714074220919592919799778539562360893610492453406259374789872418965736941441411759103912010157394734498629902448967492048035045073372195571511057199573855275545129339501236958326253070627400030649982096274556592352554916747798562505840069361931018527507444977150017167226491178229009790460153006016398180547187513789830729014477335126994543451053999347711039984616742039698719911346242260463240792659047458356211251874508191876825101023463927771217265968334429848752195447831504928715391791225677449908108460448431266107475886822269044331768305122092046020725246161292488129763450126356868306025474143073264741144418995690905913949703579331657463815460155835161514853476481651199673016754524566488607183028970303002271276220885565230974024389860163245059576278607076510708506208863838688788337251226960406573680087654004586100899076316661423713989030285261350191057849455104533599869672428695731956643433680990129667334817954694723754745865827777694807799613209903137349160997348149046906505767505186927102350720451129080572211811341589549246145870756448863758751701364309198617262710837054080025393086561692649825854848307853943715201281854575245179896657707491550175715967251980341114057062874558481124129324581805988753552201861783331890137334020839680449730667154295997992069894646528767844317052692044013244803792966553912403374575721738272793165075905900278656786897671733643834132267007913838214060218579576761858346623729952220336055066574455230398901386213308188797897909167831889719664167612934120731685260259018797582740070152243565197314138793866960203843623857065263229683790594931102026613481643111612485364712366716011430455519584542851545556038679604828749326314162665540803352087884533087805450480903072173347153929750048820180175926987143677699119206671166543845326944155519208178647349023415092867691230173033812748669941603772573722046935963411425918570783437523145938919681469975178321096033958198802077106716433344791599720329102189652175114253514621550681476455954732968555803375234267375878280584586385189188157468533860337204600570174609963972933878800067319923265883237525824065296916463731320464063573153148628233130150179162691652101438199163551094129561942649914070255410068618349994947079619384443241965697313716217406110277642528137701769710459601212166719369464577964456249885891412220174712106543395950625406318700967521360700841853120168970928599942227564067248280766871580650746320593612050162197511619115081209482591934565156047281746775187032377379643793347632779370425169735163327965740452085679920239301524388885480690771918235756518812466648596564470776210024939713823989505854585767623595571209963333077398963555569977853977003136891014944498917685764258571479691878393468611898245477012047307361093029891920136832781969328259590794396831814242848703564534142140828011410868143595605536083274136427230742784148009070992806577970552481989675825723249612376384592709451311763307965485149214727855597454413067506708233445998134483108135797933381761366254273506791817262506450807928312001560220641182342925485825263553621244512947097685628607818866075542359003608666283961658637639306982175616067244185805564342306559933533771126230555474531975141128768318120384209700448259361614979395860991515703295350258599985271157891997039090889027550163579096398894334987646002768469639740435278903067336498529448854272787165395225125234913241144999169839595844308744835842403201464956349565430557401583670250626114233401354582513388804906634041758939173934125821623617962397383826691770893845299828052246952446663125413860584248250631144203697681431210714165429169974042202292339058866365478662740796397779731965539849590978030715177529684416646603782514045321690786879879909282416136014273556269982649893879116098630054985825618927310330800073327609617867701238995319039230067021176289886894121550678385370263012733500878501674928973463240084994343923295716518727332429021589823126371185994976484338073061516950267767017634585579324685193640456150743171580747839502810878881764649767351662841202917623816873766146586918412920048949563684407755302012415442036820195825936742646545224683843335136681153545253549737752265960303975079323801848776442586396550046352256458320572607665440937345392993118662728277251660089827523512505693463663471951804284270553116898584670858242588521108369399506315694902325044008518779708297993903316205509027631288200325278053418617393800159145080888794199563980860790126820437981523211225035006967240215494334233012662980605303612051779405520180669969982347981740269262279612328155371005956151096359499407277075160100224194652378797751847903459607392881326591617924178913861624853823353735211647939074959897120527639183342954832752838803679761047184316223651959449607293429842359156094404473281446054166090564922069810916408459989131430445619766613178858408246853395477582917232040864936090394044634349032912952698073102928117066891500927915316354067324289171274902466688232776005256282370249009648456444910832790047694445973236220422707726927383635893433104054958519811271574335229088598406278776019485874832949820524896406100896473505492909245380448282966822760487860808146800911821649888841456892349557586691960391797362361171133418053692409249032756488211083031546569798670497795686334807546552974613850825993296037447485612907408574758870911458371894751824622305783272252648166767905201651468574767007058285704683395245399057583197033874072747377045589059999729024833153755910445132332932860673232559180976284179604505422605530221328281648594581623426874887722481482129211958451430319898423769752125371767183002722943761036831935418307060326992129866670658049675258558774213469865734802385957544175500350074962746966493487448091143644062688276463899759960822996514838076904180521851372770820421221360850519514284031649161335638742412578332102557712224979962727498260495054062515642873781433264470848439795791955946564830313245495090487767500059306312346685264959390956561691129673476873282882932975872049668224255030321411318633294695135170997172143927848958798493637074875559766826720644440897285687953593538691532169479349958751729919900818460952180930844646271529452656181430569004902867661792924642329260331417408464307060801354685273451430495304627933709315579275083724664024372985097504195216893578027836034974330796881354757682732342236003637337553484323604702527538199570884238041045658433890760883759070502696967242214656805508698087132195960016032882019078934411913376344045267823901556859586496907743950556797487860072373447376907523322067631672274276133305457918585675729623689825539114897861138327719503373569003175186390365123189675140692505422838171079810415239772405940246236622206175793385164103101403082479198449028217905816905949708516466728195762090129511734005223108465328610013121322115199346818695384245550285233308872158177951903798466048478550237932191537443287880217009521399732461999557254104890211911050188389681035079268804599302112129017966756481655828358139404530455750554927977502648870905448355354852064594260817443619250328235376710406357124941364786033375729193022017533139258796960347714128377524239590308806717769564045994370431552863306096365902592966026449661282454493184521764048226826845505680529698258127020622186638893073425319472880738140617268013519966339016408207311740640205751623922272644953505872152418715149236331389734991567558780896011225810104117196426617214422591459459394041227182590323255155042989549498767372497431756173549558318637541366251360911851263990965595063603003816546882105196273030909120927978137180338357439001944530778683855841028420350478230776713954731637832506487364655629575928318753504090894157832747391777248266563683764202162193381414696914519710312643860335185921215470586712430991283342254478112835326686138935611705435542708920605239886406975201299516257906223054750037970957540070289362250556785957066419892412637464553742670693921015525178484194842253637074453805903241815135368167494737699740835796777625580081575393738903721044589144435485140175985954191765975974175657960681686166480340608505622588352632156106389007870210604346278354468346687783488575741821496874818004117161864433314472015645130892471196881734189340972660734721284033901532961036745212177047752506491490347921914608770627231519292587126125712784348769746378605909463509816916015689459337134557172897217274092220320096998017331059512312746355885639602142661140920798834902286825980848347744012794524552620679508871861873386613756757090916295210978255107388777128062376918053979179695166919914253336957298561216021073524975519688322784556871032463912922322752749369455231381814395642596886016590392255863579818537356693147561254701826000503965711906814893745005123740698685744449939624703627783100948904879848766768061259846097146794857889244642904157781646716338627472525367614506276037397688077107520432905170281207654626272240718881676115883908123651310115682880096671081457267323657420981304584666025914902012011195580163687635830600794039999294541147803918551911317872206901127012200184769286354286365356532258494238712444928418331347632054896750769478286936245150322856410289851906220618317917024483196976703220643457017687751937927193287387481523223506074082380441492200933813010827822836939485209574209115795049555990107005585000673802980040315424183025309935930916341452681727831721903825680886617875984880528319731756894381148445326867829491143420775852509648078011728629588095095114114484376597387756800324905463037986237515578146343528352430562358653382907325526638842064174479851078552664936916444308759712167549499057434240649417809823874198793240788266773729673248077728948528180679109527443911971936508570769160980968127762418553843357981334260211325582175379737228941389400328957279553831499900894148459476534436512199768099967724526079460981993675687676520747730600714425076980013492956764015117181109693946361989926231221707131382960272733349120735082973910115352293470705633280437358435121392974841833751603079509963544317622753996879320657159461810182162264198546214441236408557835945829298005165061472603718091637680642243305579274885994231485415614896544099212890317747488010722869121482355190150026913468552143494359608525094489345980370395509213962175276060835255139765189259838219730195338035817577164267398225699980967208737255757210362585716216998436946295094031867345853403533834837597111257859172184467376449734934980283508905367613829273368302610780063243455470175713669599182837340954195446688209584502818068915897717423197580665906881733045571367150476148859954224865820370711018693903999492672501674567188494888565534738314519288409303545426889277358515079643837275395840577159230206778139609700323154714183835090904725458985895977963742656726364739331950183078531657493763671268891820099907242064605524045851381066040492159576498623182215992327782285096072354533828546655254207841545476453969519796998715868952281618133673411683343150875082358696980244615222712518656655580180279119151592183469020373114978954440446317969344497738092791988040145901250026441771763334376662698659080144890310114820978543303282352888144982289598117687417706936314412637968440014307844025181990792163966316617465661716442357385378248811966225861930983653192257428661311580052656116965281484850439147007074705054011671221595852365175117384431874364248351479494771076202946409606136150758764127788489410035669896872971287337840923025027822073313273205121185643228081736002908165350261170077602667951314098565038647458083905795690705368361458005510787045584427345614228452133956070488245224883630585578053969496016551467961906473170391756912924369654265817010232025107861114219446717053813857240093480219873921366370904251103352839287767217107040492265338426065267198157114780104506109582031330747799161566422654483249535673446139357258800975842415351421434399361954147120476807792749718624931478736951873788989213621925523234387762769216926630112762596638893572275124606784370063303014672662334918984576006008248391331409219087848172461789047098400316173787046280578850826422173932469530747504335593868348421624535511551022254631684373218665259828113303994079830259951877336174039262928496207322410028821865982835397163270344475876635866279580218946794500133392582429298173708770582096318632751263478495620142683283213944402777557767311964477287483892216404560089690070289536865344895320435839132048773881003260585489031178006305720402312409898694848326402011262579103016017429848654551424222557030777653808214543992966847509573964358774380328123462362482116855521696476252251899445139427526855729017944659162149071581265833963455426698349718876911601185086655671939127105284428357447452045808311024277778246505050836532346112196886245999302100514961323279146928894138931543604028841781864337907694808484348457129744438020243180683270282192698843609684790906163085204312811279538104628149638061611364176953784433176285377623378302153646876170674425111942993311690122435461298282688239958884565304423120115371582807307223981229848241175534480469647497488307469229838990980887264469353316173721753284529119873670334516954858138625985506730149144448107272930663363544811040089877138406646112829424725223952734017614569083347572126526568902105719800946316401168313212224064398228444952431690560042038061735078787048450790902526478061692077056906176793575640831146463845163447637810832462238053812125076732350849261137595310725069478279804182888939635095618863083793147135894036969512131971625497364783193549269546997790190340112882138825409391355955198965647491664252929764468154502113693894588395375396885978634025267046887963488621340701352595178068445203358959215836576597736780654662013144343550879771592343333693950721461997707579241888107558733500291414821542685517200845851164852767261440057988178379702507665112926768694796777102343113777044056731198383889411660133983597321478126784691915199324972023349941274917487983106218100868757070514087842385486060185579768348721895414318063617765973467048086554338858129213409032352119786691296817710483704823215544949343730875831167144623508689805881046405484362730275305957355762072512136220657099816901455061976153716473059649769552201358089566121538063390023189509623495373566310322496926866846927217920175282502688028020143317601043635079522103916919983087155681209701639604520351908946920023739006224012835334755114654655828177553310565931630233384421398664153382613420187794134392995007281606499042556806147615651772023286946543218583142546214250699917486163149561708801700686843189252668192841316513602853760419929313681263206611284719013014996250004981737861152237187379925611347701938424677992362816073279948880884639063800957926140307176522518734652450343229318109454819474352084707484072472802208700854087647130924485954194462575734945145757561905064292126306156240127033954848410683554046378146800566483314578428475097553178748961499557450315601260138295079632147784925550884608282307063037833846328104266560069914633765384485236170057113053852796576035689475087192747026865667412684243270177818828527113979232800831045667876220181767691504855185944183058880811152515945048119843453064587533971051253406203402306610697777045437711974286284131696041184077725208967778314277593546522222939835805557820411693273684788183343903371667861765992265266477059761964812875105438525002079159459401134440794529955918967272088604437107600454015511977927753183450143860105156160967626558111375246573459429080403972197282501536419841157698631155480562689626927630116243306234922365259222794654111787152797045748544155941685596802859997019040652541897044203849534859981373120222651049482905095125103040720677909774186142766976318004635558795296771930059057486021970918866446482315902073083376114183143819637014519512422763304889355870479214162065418818089338181551543031402933723594301880758122655654432065288890748199794142601545295202950192109973634994060053324142698040763401365857214806384593957699554683561503742373043371584387412422202673404866986825353766684616641007964568056808974854965923392576665854054710652315229398409370237555360182497600513136601673443230602244080082599769418860027263338736647533933356402592732634286122813436624033268543836394899802643354639646978756365581709772016237651737215080025478652589756816040478031151229757045553871899900425970873054871462454551403049895265495143278776171655974590844975089596824714117769386103817315064335962980680002126153731872243572748174927857659832342346894194879881851220468137205092952716097732376440377567493050084653930776423977169196869635140596140150915185615206589353171703321723501024391891420321578485291976336105854147902069381428903642047929149948916416610698846027712303520937515967149625015599693970636204259812731096779085141325740960092636487547419086478744417990360771863739689789607728572512704848724285733821986155958926046438657767501436387475861771951597051701093253006448119890256136533316486861804031257165562249931324541519974089026805615893837391372653804750114450057717084594451884610639719794732008395338042855938548973038484714602914046879422305357526673281028065687254491784284803827569348471406464780436743866784005317010969869745535026484828091398462129513332515709650863438947441473719619524124848344822436754037057016968549783384347364596359246448185200940959662666826901553886164925957122128016878204653534110152851925325388418764140718009256758041181169499725131759295039536187857444996682484970729050041493830283596357933881397554020007357544934359600856823746072784067215625069458088639099029982912871960881876719578809720215501690563261994347514449453215369938403466213723666011615472247570519169377376628449472134999986296792124860614707779006528938231695477965851161499691539362133169160399925405098888639555532344614706613077197863678112820946677680834119259445470049195012310124895705086380701242219602277241465520985151754225225698282240565011792623086160298340457137994302802766097117457045579963067240611346104818988340628888190379827412636359145365984434292088822513449984954305663154776367871125786480483671140787995550339489510200664244821405533860743110035089308781233573084296704647905361800834559341834227196821318446181130597263726188485415624952088751434281296061057976023670205221587462364949865932375369593297578002691208694424390164098845451900658221352551216593091299257152772247546931564094338913172283558028747999428498096299473158019671168007496658429240044791571855823140922403289717969066660366946384404328933279421218859987092924532554042122695580689659330272662067890667014294905609578322988344595853445252126929710284873925230314139345025079796352767838278499445662352998297012483658543978229038653142974757266165247745068055152003770582851742662176406364708865040899561266782751778773908652156532347321173347766153086810308622907265196775578960898989986566723283894508865786925578793363350700151653321586282692656474261563487609652839060111678574404440316466240953071187196368707537962842661846478129964769019077313999864731690053671969624082935713433684301268478632777085109769522428198935220794537720957991466438306252263299583257005675656984444328685425136341025898951715320685086743677404321163289915177737891019414845070106524927429388057434419610646874907355370613462257346501815173631935179553016759995675721608825696459305043078673833533189260499398319780872647339027640339473736068740251836178657137657607673109204342861766203857250321249851694139571932603617164811160570816378172357441658337310144289255159820012416873007884201558784186803783657513618537186211017684210217062917024385994639135267226612841121120335330076568187832465021964604531886560633508382158001570347168800091320039982172848538426196231756555746152522157194342770917169537796725378026820082201492511820361098619588702031662243737769227272040825788943018478448940924201587127203773591100823525868970156320395494554359963469272881892363347548866951117618584332747198748607327335388478336534859079316236302094981554253903307980731915793918824083505370962291749672258556438511331650855033298223507322752768591606662099876796501375753232287110455095794871432462041598593774880855615228544014958777317161070344192478947475052446614654403888311674559305338885658116336258004406320657243650356625666659238761202359416626888030539875089986350462326550866860729636165886567203431466641491892171186419633316959676401684071685597857549288658864463798824618821092062425220592924437676029603896256210779692010395326902807288595507922357062318616962485115886905509316822492394002036814551458794166468581866507059899878363969841439440687223515885118940015988905650084816252915355316568056535414796405869134753233999986011331594015148365336752778617338812782044826345415685513082029749429408013762661388185282822181695604679738891908589664856601111562233957406394294800692779356071554370974136220743615009613490990220610521295293789727786368582734624117324879299820480757970471233238006416612916992858166292038428670486194328177832996624294664376589411928894303969545251613401768992278898321754181992579393837750271549889465816636305797184202614321395217608090174986536181152669728133580216516682824703441166407022150208159851844063996441131471474562056043052107404916314711248356591208250074047865748835695750306576740628530565449007753306005672372063018386536958945274288248166636452411033829645960239484855630027767599359059749782141669029377916991532182753721397108592469137877406795688912844250163333934781425445511518294589268361881928942397013107588963500062429108949046782715439929759720870725369926464148686414064489591414539827694297618350752716843746041916857637501496585772227801336824564535576228841596966990634325689625842366231000508115886301619454549467634791894775762468440506927595707218483905045925452457175729051268080412525682491791561331561864714535065981872307052348743293826076539196511675111618246124942100335027944554299593698134882386797722604065454069507786193712634115240635750526293799692300477902951326274775997221047571298627213877152965937349137175960957985471254824167434244106296289354354732406303903490367573368371993395821405423462802433617837568777285524896310375364130510768939091457665681087495760700185206781016287064767933278735483403810452103509853391101135926768520684468589391913409332049301299529995136377367860652065558584826728401086033728142558934238499526292435622428235457391686184541871805998617406025885050450174823515185494570877182381916151793788340812230336498166255226891427957164227278422166591929886589678463608392700251281947680191934812864535922499094785976642681612764090846311205418607303450991394901016820409501225826560728104534070786695497601654483212333734290685185899544058540252097815638956550244852329267349855448632909677450889787383676961383365523389244105642367634540730516291851599055191969282598903645696840939490864328614400756088087994370869120876680696029278633900603868653698062562635068303136941983384242615019657788414651889291918828816677619507109318258339538011331491413786372153995478281809684170170339626494921898149951665837188389857785993548402598214772385273353673227456972940547239812226991580231034316737393705641859169757282216369253774513279312591395245255482646209289874709711518168920523947380189154329931183477820046200564832467558045200041422871970001058113771428300574947261713512064689410615970382770167854842731216362779659456111299451735001186653814259675435562977319727533990967644403112244643636091874301308860128002487380561948625532298386320328083019574624050766409928700721383620843203228523877767880747440854821855960692246092511493901738710872802185982893830027091640598742177221177500778906022470131759503772563883658892523818602943293103038452000802389153976428161449503451173396684665891477776471409734236436212868633844103944199161317207113039892245944844268402498408972832290828380164203022552923432660019396264415340839141566897807688876070881477519119687779645363824065657880340578542263532448551878223486244204277467330263998656257167121531712170104046054898324458120271064806863355909030127693575733990552839872273353653178441636812944931772560185988426039984894043752676703236755009260010350900742271588122681746862652521613836880929552159176737723141700856403227205083399314892365748801280545123081159122622951271705436259150132076988665405175602351744043620084270528685701688479361021076884606296290994237625231336190349228353141511618846504148719635952214525342412064315699846176676762650925868875478006196280390481733346938595952903090018886385250538210165131903840204925462030682392756780003387438764556590053932028928521018757902188287006826828638808427428812958048580576070634188823238676147953407564319121247586104266440916936697390941684212881759031344208356786504781017128893960219602982102169540437319311547935428687223964479652343639486048250935806966191789442295568515736723173559378737630247178600623377987281903346919634432709895756966956218732879808623077554840282892316945199223127953111613022749852030091402437018657617793668918474078484329096874290804836871459357619063047916780657817335869770114456470750050126499984248645357960053911337855128545316153235943040181999554146310088942424818803030418602350470896835024231364676122634362419544494573788574030857508089076827466739901538960515028941212999375779667270089608038182658340206628236851439700129926765688231211629972922812628792609714281539650746385627002949448174572631467467020551697268754431458867123852923206208729515181197349440715631643820726571372169987457316639818777006598558042109801846844842104106978407531506851657607701225207594825140647655141714117804124116859993581057903325327847961764089431818390645864882963691836057644783137943795101303409268693556714485229093089079878410753107727791715314249445177492255086701965098034119909021762534489740977357770769356414331227738624316424108626923092632607882743990025992495981832179671802182041626260715522515533698842640490451960973632946620631131182067539889689084431520391518020590439978549616458003004160618173322783186515542785624119440387459260194870622337676498450788169402442571487914264630290926264794094257843440537985832222389888871898940815282407580188752633628669566551203396461552328334455103591488632272126447445598605476260137854189598895565553799130315077667102662005108629428559741970410017923691359778579808429969483526324706677051162302391448854090510517278178930402827782277026622090595974821261074501470670438046682139758782962534462315980944265549134971002070123822065913817528161714697664448384433051506386723550397170934984878950260060180893532806346283844328851658735166088230370799985887299602146504193595481330596605372399872132565250209254820930752935786304934641853516566968776954587413123429159269062143944624381679959172762319941533507989480598736849293897747162847204683307710802216943292284646938628837516472678886910708224486750464087084825018079678492255497323457517460026358858347230222097776741313612545644771101382420139871327348684409329815036760706314867682932258771939970124560342756782694284084974962877074316469466650947983574877859843028142760592507749045873600571040004569346543307872813703570742168042515216704018963003417860582073825260552199149942181307999393156997954781079732287525654193547694325407817258607104460948155307641908398900775241972305951412669282620766813131991070913596733830352180453620882237569253964185464226289407355718849714946970880035882256508670024602556487656706199414633646471865133125017136033052554537484163953445897404513330084172386603345166048098668004124837503714941839874203371090646052117316632674659803354477000330852349301189546028650512009314617654262941549386866384516217784708994820469296098447213679753417967370909340135060629543740775019664966166438950719855561686727812456304463342417561442229238558633993460153318613531790389222785868462844506204809721703738954214647631545896188049710157102680370862756877350506383930384500921387228243802163175591634439971702214198221410465376561790873786294496883352355083805475658635072321952173598169076519171917084193627179028865926168566088510887129187091041320988619129125896620466626213749234656155748970610837591911787169784380852188189907964920305785657902959135502546341075474388527972292794801843419477256196980794794726267984903994124706040047857133332745272927608098254797853803256258618587510357816226984674614150420655159424124965124956786842140695899788343657183300167457778100169845307405760296163239403011772221669364142371361881230648799692929239890141501819424419889288549818490872268718704874329204251989437932603446724174467766594325595255290693470024105735206336115682051696200479609865248676669259094111480393384790291683123478537960968947511726717091313055562083957866417069104304980204711515760682834053225075267769012752990920626587575442423852380455461207382822625417249220983897711948693578717373311319850098292786887384961628116309822058291343472512572586415591155115718270944656521635642836023301603466270414664514606537997011196639336984634944709297425207617128201494154775902146570236099172047360029498133899093060543499169214718177430574611662121444547456409778711694572958432620728143806124459868656667354990118856130977269158310877278787539843514448965735422376690845758025335833540763836607793649515711097721842657659648545158201414671302217380597473286030561770194631176180848268949738800266499648446438181755716012261373839956151122898444928305044244582100600980365303140062444200662675229913500514374127184715073969509937576170229476153835789271096525789806795974738788556385724158693991805144300909953603895626792570631879380018541283866927122133211709632912055911140771120920530950511682791450444565107753667765612263814440923822953328438453903581424394458503118690747038066791169314125331091140640691153908857535506865272724182956239418877782923120513876346656148710945743175681669675458783137200873242225920564417697758645965250486686139693597484256302492192721495824788809522282609372584856324937593037002172179495837148858709902265092724828931453376508228647324882371513920305735484998190643120552112506768780481419991233734043309698053978364002998803573517357913780334915789858570564784283150205047743008022466317323525275195934183263605048584287334064537727602756157819491003400596761320205926287067552061474068531881437423929479841627851366379423333016325896683357158901403198334810711938925020441955188684983400601144965376430787740189685576888786327441710126650210638965689538318290873632047003214510969122700248463479079014867427694728472952744555125006871900696612221264075040176078029297855006946079452819911771244880833788295913181302444677687667725711127519755734485111916344819663950471652722258856794026538483850074038570545867353097129639674664045250529303257317593370055537361732526433260456332227909401703245923903520090753452663326508570732818865503977428138865619516323924693671393140961652933881224321164731216397146933212918709907829080109160888422643480481782734046378547844473672450584454462672085376126163021006527666301145762323971496493591444579600372181156503527379358852040022085237162842964349171778285691708851546654245522676988961154164417965213611334448137862578595201824634521825574074823433496320578224391230904140874356640888453250513880841301801289027209715075101321366150340374836420966792803801783248055843735258013974817275119385981544813223124363356500017828925182167110199820035509165653828708407632776070764527616532442943605607273709624997261701472721490178810100421570057850147063159337535320799739020545616971845268707591315820098026784632019118483051374203588518640334477445118201073863129876525347032046014525624460475241063338861940345183716256763132922444304899844388137594824826652046038254090934827766658033347475526201706474641484171220092509107107266575257649646748194474656727727765546947739387435485698442041975853904203949864200900151449465236897704306042680933952599829354935688916114691322913960952339924826519524679966804115735812892320673933647298302999868349771976707221835003481056281147149585905773530227153619704562873613807529279709782132375410436306333371937100959688490319979999517804463588379750224614264668527690937529326483515388584287824025210276293698228692514165834905179217123770751009428464477833458680584106115330576197296103908832604653641461187230696017055234010285973539860261769861189071733757697033291161870011587680217727605040518327828769303123056443591136454727873710305730243824664571500778493886665816955893120736476284880286828502348331448682504030174082378826965146993137560865360266196502570932829623584961103243765573109197540348605929880786183780087017021285114052954730091596616054211324921125362610174133642896277422680790110045534284648730913618476809578867869347779001594598229671130232507098741389527354187534530748147222092691013852945424001601338444088092817338561481557581343233326739742243284098655307138718198670673866226470502342056651887543845417400726408516136620919699058020134603738747203218162480652592875654673185005980273614468713235692772797985374102811046399234845777293629344960780390149379316834896451433800446187829087253703527234655122008786773261183169957952198350651159020388328843161785554127960782050515351537143038956330870509461878866927602793097290785191421224522785918436836834506359974955339572964042195822393425215075161649652278737534754983904903975626886331080106787047627646256912438683045250886681508365321597067085233945920370553972878130683097461740114954284137734271768762789997425712532077055330683258106820783114889766684090537715207718209234648190609314099085488856892416847357315684168219307936638581605860647782347114065436892056993862467039682885569336184102306760580940368490989733539941551153693864971495322906602820675050541850546572544433983372713851448043223075187881005657912811482939129917216693619433172392088236497057435448955199167165509951637982838858357725238037634655621967335948224145093370629430081743389738184866876296391572754941479770723899707548951550518740578540659337206694493738836210984364351793436467255309768455782782831163614784153259864332119200994524088440522062886728144479625798205709603284956364663208134319728087191821509047289874812713908005318523561925392315916184867773881392974916748841813742651296331722802126283348507994810727428194427779273759483145302483128629518889201668906332195516551999274452083554842330717338805144972597966020955414085095804499567867188931803263808811027558280006798642390863895101318665565570537566612496326909068065785363417389662312481170058771185942588444011005633041519769438945133820940083519959985327979971990965940320447285517689995859868672705509501271172930518418403811532264611818561357323833423215647356251122064407920813720356739696694402805972692667811331166012333366944399841212932895059032049220767621450257935151505424489802854987886003313857726347497460637636088645697346494414058055425261129382436447164993372941461510686905819144905124626911268341350851412214971866960336238341524372145140827812762263587849314356620466861292607696588304169474803794953899469956099134922237915943419312529178491641788126806015322031963199256135232176154701202913018595227183210468682093270202913183457380496246377228070581370533049529270272269703406067031565068150817681453310976094036164657602191627403660121769693500229106470201347903457667235650365336803528336156762217761514762269107320810628814803834500902407482915170935739700241579127243971016208809403932128467984637621772208695864023129173758462699089498778389136117622684202316473028576983801687682354258333124008116457291713454918821060315585024626142224408574199300988048470115207781383598094571248357263386073871532478370571038631421710008311724556700800481199643145632762889540987802294028091544387181281323681075272955963903129093518922882503891676870593415354631681314504244076024826830708526457301494999958124556909730467901231226843655763761453978193878013636695809220963419296328121356441292573421241643291188049405804423226044004999050596972592948165233518014207187604324895889159134384846254826828406545872562292994263623204287466267735186189268926678911771156991217648655849742908130632121329687742709275867746787255377639028574909163382601202904661916297487398028434524449909345430019140257111863347607037185020887830108927962842966203678958840789572329167532303881274625869472179819160788221142830046702951471758660513674529897667300398734297662171539780928617432191951799870193157611963123753439713224195697680998761387379955863669641451530047901534421388431579076834580785403587838093970054559425539389495067107229803490429086897833716789194435283035147573427335460072216011188921660551517893901142161741175530377017797581082252432991463762140190660146050437608662319215969469205264820801490496866799774137020936799853668390597025823539348405915460745720982469107465626386580180955779466462641142080219046953891212766995055549405823700438287378689497684540239767176521871478954519526299279848162695764856913038559627431138740049257976862837781704281345972055451878907220359710216831118527870923370480387309711277792734374270320625554374080504497982769397871935676896290532531276646841645226687288354486721254776014242784849658493967564478630973928914122630754822540659330712429456556085531814157731174128121685624951091106580808751451169535946356538868393463699728091652305353584044717380845945548788299917371829262431836803702467813083013666463927641638230899277348487496390330153896662815077906121885577486230650981369993227194379705081241098739455812212137036754001171122717519805345488849712576856943294067994825640371296126080174846190767221619772700588601221841819309057660022905126644319270623029651691461484010585869124454289372915338654061471009826561559682290013401987721386874993361683932568392071245324762975519677831399431203752050184505432700356671507963478432896937487145339221960232096549806288856419616881471274411454498204692577253100350980517443898901071779696229359877085499613972718380065313874883960980594322094301342186360022422255479796142578787981675383317088729060552995063520269889082323523256093817167090741944229478014369488104107557270940971281733195241437235515508369659249033777614845055820558865269824580090921801597823060477637899588824417997446248900453846101503809656151427199047396228956078926755594706050073239914065269884470539823853960692176482746607104782415500747986047550906244003124383838239109985752590016909855994923658034109346190794448971447918177708621188959717326976683721738037409724527237500055380671813919827761470786966820798401197031844019587630884530246110369559535639719787677369120408942135409154810939726896136825148467253259086751759648614641023978880617157666188289013403636269861176621750849040692622326785858106810768090300792252342660611999088267972279473553554908020111572179428825858931185789723214442528880462269136373243506896089620571588256941344913713333992263823594614871822962221400259634818597112943425505851252931513555444108590120422173047952614381050430795018549389071787151921854331135717701613232702408089677301979922741804444949898942081973889519040349855845397322820757056860750307594732320411476401347857951206782822854246175908160147838569757349333730434562229339120527674516135520494876587898776967744239986027852199465701393960483061330317339236352110944671377652466332774966717777972488587481965344651568736698377841435366556803396068623003279112473600370559288546475958871111441419250644310978522405038560664110049416453868004138822148829191889998423077555322372056112883581040793666772246529287910470043858728395215072562464722425725025650270816929961415335359208990335486174574145425340684012649737496676048062628549703238471663593559886085406548658917438389234886893474922532078614449092973759019386242204949056029090056812454797484988116110594795889114022544989485088145008336542570855161247928512698132225905445338325352100751462387521238613056503427820089543453861088987399728239573633934409281803892172482296087489900707983747952198919716813672586994922616267599767126188575568314348322863654346419089114209111059021955758689445167230473495574055737863819198446568796754311098670653362345133452666133366076793414940724252688388428391501805843274835534985710076635542954724117511145387242855075061277098720776625393884770134208213102045541786876296531861821985265245805871425242021183163202778677500764504666055925766042325431442004557770489062479039647051737565788992715232400343035483594636766561728854463063225000357608471520764519269467065098754602998555896196634759268909549570691663976427445754445906372903327944691278020615868925315276086281178330513677114473623714062504254062871190251748271427330296981901858533339762169693021763280464298894343243201880027765777076443664574686099520765476225195769667131868525382630306035210861941265774891009788175923697264045731174857914119000946997601917746931735047759845673415401309168851718825585911640830846765599604602072882849742375453386110130606022963035111868019506245086937838768657176081845803305066457651318246709189217771951550608701867981795832747932782850555047060257029894722804567532337179043472778664087599190410834161567888273590576093193262293002037494759151305839529568617344363505887860751257378406500749586009382597641005398040416157341917947942809433515813630280694845973933710166183241431542391107197644054035244881700439715331266184055542373195461984769444816629191826785943827779212147419262214876266476817467293933843978821086260407751684111402239156180316279470927737481905757404053805137714846128399638574381960216856995024507816075422138177301019003227234088861267315788423101301997991616080162929967168239639540471382907156457044663593143620468097504666271975372444498233140494828914751638228858233844598236340785068200116914620302832380712476471983719818630720799888855709625224841508491920978279753470236967535064863961468339687934698621054725344199663419421017899425118325725309303444451522485943845064640008181026966588609943654899779355257911743716546460108748011731767581100585533231873448938989880237851515379062634835889878293794509975434707268959694581498492430258413211024594010624495978652856550433322993737046149451705790488909336826534654839552311967110966058251514606855085452800620792151019712507518877310319918929886118239084619037005916506805329847372291457606387554987991707443401099295116070215553118338371938589075077766137496213736072240432704055985161151913346521550686241921947442233058383464385245197499605369443933129802079375198869208081054245804819487726403277877523103841637076385235058174212380048007325750237950123442042316434045790288167197124165031455597878131178899958372519333875211668521053610417222126424685540370518672754906873126132493846468597856316612483696302651188203700939354858191292658452660745988037780577187199148722384559659707803750000488787518955253464459397081010627479799315138525599043425595894901395446241622501111221653207838284498053430518255321096716938961977825488724143090937192713299937912512627868938228221315742803010534012940186249770636615091340804172754167457768655342667118517208568392002968560443785289204841914304524972635667259837474448128053209086188494790944310391717403970202675518067788895975421000563652009753406134304667566945735626095501601418440699219089559033012008236265444423710177019217145557793799087809830446525113869508388702581984986937158857530717582094489833078607675871841264598535636843248555559943368173951034106506404352256441667768130214007340099596049929045668362361146210304856315607588664574422707935343628813044050434853144459203803147480458752377643073769445306160071545966479969855254459818201753327952599369626259883680357869903863069466583336559596499902451311385327848891923381900148506989910432099359449618208428277597186424832945606676922001341210214835176141504581332420112045189218934156548356806623715445155953613109325803245408589448922053344360276294817185044187605822955129245662960569557640234624910253861318178002342759923546072285274285946846242109362623098390590039932653827535651843614486496505175977299453552115940122652443268826332427123840510790053742320623991507787213771836236157954579460895817569575620997333003726819141290912673889866264382979452779431030987932377994453329003140096751514508290212519542237038228454497918815989162081356540070712437418520294161746040432158335168519857830923944488537930368253745565007590521050848881565785399829631889230863950144913101889815600071113632095550022540704005870196580822443889698297865225512506912124864184657623064299514622775033172066584930583715252602930298608665873596410885348333642001905099387716565970789982940535362559311222415948398717217151988249456813475707164941207519316490022333367600207281925342972921357318690066749347059143927474534838921202502383861437866640268993550726073089059167291043042844880409558320436649809345103000268725694234222178480312410527338532841446084772524773588225635347983991862769114488113276584976111161878347181476725745213110533744910674773361174435804400606121356622504903794291668847593154481992578628994040960628189317202602282323947632834218741988558012110254367470916508984748034218738206170279750662656802249546726016281440142919884168832593875370629436097553289466897823008822212729959085469632951251876572233695264187260062384304489425122384137094668874652395110332246506747370889270294031763559018530620784300291606214519071929995895999452236484733907482592921419759689656521964060481050554675018274927666910316057956484187942030676290536321034898780765919032264478310768348632745264274500371254256276984819774704416457941034891095297584068587262239988571084950091577655114975122413362890345450978500329867798343481622183619913903093698248332833477525530580940401491246431989984838425984431536789868793962659720305409656650722858903608192544451567160236639386090388047817402756415844396551636889590075759363377458276994026589375672029407872222556868295019726293881983116624516887295088839650398999764014403807015449831810741589135125375962204781612856401044952831636091267988644423157940288226364650358107575755914550947063889936965020267833191962614694820210424864433779441592014755095431990567349920199735903481662527877945799747123519885265525727800215619109270405147200050140448033148451575033230564017602404521454789524928765804435412175848746518708956458922494742309134407243264287985056398878544048524113217308881135790889350955690049298405144284996667975580059115947993650326667543755388372953356664098974243015886807301431265689941907585321158002488040920078874693875392786340420092967030063938235226972777682324953727833850618103763148593613354046970541945401166666237145041993265849114346201667215347900312377404436923273976696302033767678418127825872778729629612783159341656181794679808537034806187013957248352531219660886564988050283737351043034311083745510346030767391552472000893244343787037124255967366657475097397353768845019337153206978835389423480576419519724169970092943986635691361986623666394317186665618529714454257267804401440218390726994719201057567689341936909918744820158723323130288604377883471415879141213674782690136508370730855916231260466806169583155428019830838641965575902679339042644693827163188127941280408570956117954161610128918067195341212059631174727648025047858611416493460829783982252879673642651733871912085555356375776637378278538407176086564462942765675236607392051173528066821509283872169850202267749917369337823681772139694808368486785011020352780880516712604185240239431734193462655655260911369207761695070445471443147562493320437625768414530529357972453867890421795365491931114443069126181945054944991695160419649420699873651769904710434106393142960469163512833018587640265621834053094439162636047464708666961559616490245075101802288869847285753242805624348169207902571537248388572619920268461995972012048762694727518001976692804759204559046731400908780632367880714887485759310116579387749322486143766461233603560951796746684267614399409076594751093771111602080500486416564338256595189321861660438641542961190306761157909321100875216179691045468075066060027248243325061974519253636975936377843824148674669331388394840634759264075396038335935070577862670567703257602354741742978546695212934022084441902444012552935008977141402613721226991981469519891159736447222517317354822057943555687326850972734640918898196029114171628227729025862911677124549336200262521997687572946792574007277955027453036357678052892469738516173056007501609033520097305599422680773127131971767777486525355395491895763465107578023955027789176768376912324194853295804928278720437019157751963868729341774608600662096861714587683866610905014910047332553691052303695119187509948854912594648614130261176010336684068664159478135420864228891450323137119024530067563847143567313611909557102149420419769263620078842605074555079398301940852282789200602561501282734782766886562328000666605675486521830701563504544833753179063259799467711876232809330554960404659495322257221164462859932941593843984344332549679227049463641550785798408351226557405065660603624666082297390045113779865279866731226518950180046938659902954417978009072743103479657839481617434003979993796036393773741150071996440611972914703805527524668604349245829102755652633944430506905029958827174442522435811329695537571769915837919976919552159244720825685451120372678095405971811023497765294950078277967577515946250117861313068180786297604108044030331559489167363457842260169412412993551437429139918480596076303765067353212704960332988590923606507748901673169403739189045448549821379081075238541269142707500836587219920704297872856141337508539240632461392257581621186804976048170314669860363311603773111861286105005605137695864736577093381761274119501682443089864638517198848688610667959692478219573626272893886978758203268943815017334914676485377231293050800308781801874658826749770620623228331871296233324754598879064567670586477368735961654168388265564004370194717683038156290471482899919797646142519028611897493056730560308417583179660097642233090491383067673106163513386917538505996301290682157105954043446461331706929562686045447431291549399826105998689811516161409742714256630725589496557496993649625520345603135065194409691019418069861483398019215507314170445991311226834849550322280876160670534636054832115238757178746031702779288472321308383086716929193256521321412830673385524171263531326884380273654643397808470746239165670320478945675140407380812729581972983354708506830413806900131064872397366957015543820054390744144894975383083724181616717516921641932530888083344833064604124209293851761586999007486530937947573927902063451441936369064625293917142095419118177625417082807868810567074922559518268561588361489676847650543068559649103696081495407320710599737178390943890129842261440869395010259112083748135225101800603521865401286520581949828334296806236710556148158969107139147437979818620144593712697472584661872932246148442323877377460573372881841305914579188417372639544320194216241150778077478446400817279688084596312761955652133681262709274183506303188945846971956202815928119980922898108885158834301188691840332380381547957721377830877884633710321496901249059637247657245664786252666598230797633930837771765313672606094480912813372786180911147449884483149920500931210219637453697813254958804235811692356326839611492385497062559650557487502129966732048805902769564191772465696796484987355140968373929385257375276241267037937206429842530744094287531100127861077400527475861889864523214768029541465061158931442436197126151472732535365681246126974076313900573163292705285917273344643676110647422775573289040296341417968903351185789272403047703607998863412120965565464472628018952350853590859001156831448423124910899280516760476810095769982305955140508764720871621197476708487519383340998738851486602789016388335895852686258874804105984691079310694500014267019911233801351074383912460930287018718996004616707004722422939141195943955708062399047443777327589131826800647379553479720881489100969799072695255829255345802130744538072078367158490981937463228966310872571923799535558030162212222710076305786166909481338179817569314261479550752348371039302223803635184603355291694719890098587001436218581281851138356735417391439991172081100476082605782759730643516095751061711934475715162079168997572449942745573325692263160223999338454244000608784112021861762131787961595636068732017899846973880553115400459070584981727433259516767055405572812971134378850295139357850460529544672025775736331559782139255762918881412183764790012090129502478092183198771574627000645832837201378720051396472501342935887269558625699889627223741173912211154392889314291235678147949698894380822247624948546857690947336929286453840727005942921166653132221917765244933005422096274490611333459808579862715056079416727671707257462538660107545010205269005503939059276177117264675943504386656400254649678974579907700842439958359305236031646259830829630421646625010530645219817940258396584076176621353588694359525792132745174622029922241186915578442901498975780634522335459832220255876008990838352581975882458215505699566811739218285907604854556536381470926119057260173907948279430722788352683371924976714465447127463692175725476680182719124104066730652971307715147173251204945430510369120831786971873273997700677074334373238787214116697701068857552663934693002967788674054091762240476969111939689942685047329062322234750161261117490678178530631363349608157675607686084986137040113176727072533753331402852189641745763200737006620303198440545111017313037664578671258906164733824165364932984772766279178564970314289446068118382251677059916284195045577434009180562697044178344325798619509251832571465910271960411445922277208565991234950256662571443802384935263363893481280417085332202705178018971751556732922832753612974960212132829746803285065830852633797366783418266119802233667273625361364205628305525353576132826612026036081468833251757522971593603812954127770328345160586877119213562171070401757994788527570656814981294405668839681197758296866046612912098267315395184090702557407896361131248538512078670303782094614629143622843617663266496474345272521412618091854777617568227862891185504647470009818816268423039529806268045539433442237028838936759549982168249285104281649008963268097176804433407554486590860945828686346236209512820685996055791472565765065612796122710514306064441599293034777587376398369540949016742920620590073946968686901480272169799506687466850872896644606672428158024368690333854479452663613412373055264128583171745844404250063273546534050658317643330837792286776511620014114300505745585389879032942282872496713184161779470884454963124393777610161413039632216957590897072311742276430876331204108098206895166274741044044779359597230899487475872209292509817814978766648092185146058609927384332151322594712335109749693061788065150976959128321414023552006296753731747301652407245090787906733072457924969299201540691399694401381743499071041338900578651453740503221459187118466746717565273543771782672948740368348483615047729719535661687782049391619132870755756862794085545986921008711381041513463202115558978911414458063505538624169087813659822645137640089341031213352549133293335181147014579362992931209066766813373248000413867105529010282520012149426823889508217202769364221612596282638837575825633946675885198707934226327912134015648396677047422356975158221119055147526959080482373755483818548367480462095908943782183158704270586017621741767722684958150050814376477335670818194101732850488934334792027818539550631013387049424704690972629327105256047521185929378322104097763997227718186470348409654054973600272037804713891546436877202019184256196285003849443137968189970736053501698825000213044992568907377058664833294350890384513607476372685844051807808288211587669513623135395951403173990751819797767501484005601021859968864710460266077117222798215376701073900831774009795979856620304782137272692835381369268622668401941307161028460098694735211950175192079470119569802550329068557369232846443775243805136744272363937548686475672146221105635567701981239753539198930814902205440587724366109547764501133459526679734815573490742524997094973918686974825287939172534927921607916010880896611513366613577366702536636773437142238239650410555932930410566846435848011965481802609157837463991520283262054299544969472858440025013225453767242005409218284310903618597780187470987589938334473569791332609678433934340389187618456539502062988124641759228792599011903803420259609152873231987375875641759438573983102272039034502280295889607621142090091597974760615697022457826039818346574823181048593124093292135051532345023946766712454010867723291650560346245077296617637885646599955604270130653438494699146347378237633893572648577919567958468750360786832740944831691563638115983311219548634623117372555391703233545027791894018079187333102257904697374078832043189334852842993784243394883221290770475878134093920855113257582641519635889631876167719780521399563952098463178348798107791399340411072486171202631948781251096512637330929912294017566701698999425226983752102100673827502712579977411090661064651366981479164863261444547056647588945551944424649302672312638598308988106706395120468406782459178892471386975794552373699976463489477596114701761513073347991259800127268021720481193091749014084431913735691321138091705411038354299206263355594124409737919125958083012302035264183972936431869898231817128715848572598803928583954451193677130712890076750085804868707777584813183942562822545034593466437851592916753136484464562215699811126162851568218246426113251958336761181243146016226807583666727797292587099133851242993848948865005816584906866758659710671495326506780986564230038788426522653153877379688694869017504137891787292840943204563780990737501989106726191194727958553554330502574663351383072954149545363718006259369953885239503706707212048280657721193574868528307527450227478134985025533351098021897330711565964868228895003799242553373980182204107096064386165809182878588241263213334363371812315265131043070884132733544338229176194447315233004186005691386280431631748608892353842652939173495665978659457409117494700532476794407361311430734257735151467710941375381163078249545398351631561755012897399545846730378822552682427482390042241193695968899964313243974246357584889883210081952473934664213433652822810899311094050520121548912212370680303163459484283385696533773048848560629280704721948576750176984033233558656167343957898079447144993156778426089189575565396831875296180783118003667132573568567427925378926923250362057991225802243766199520847094834013207168394616888929932351327867890795251023287216810427019825193953236050333309899846426479561844152781282506830321185810451757203811942623451698462009228189016333198089927783430204553069840659283348063524756937418455049394703675082289586926984279954014156184255125854351830843692391981928470601540873720470257015910750863172580076247306411435620388707579249216757896828335523187354019190592090042369818496425233347907380235836559862014064332533334256684178141497576789412127113061530874548837643456579481003286220016179196804401669352033085974283174145258523846169226398127862780349806800916590659835435951211511793338048349646059484745250628687884229972439827388694025995058113871075205244724444852674815736836500511079654765212739336253345278265884848099568927531531317419443633358276367974479787757864608244760444632298931908538292235592356890844997265491898476606788001713471876348503228241344786606354783368889566160243713807875101725273917780302488174662098329358329408742673298393350845692173334252038015147271838585812923093572586013746536875210628348523875829018689449907946644396490624855472559027693255171918083020864771893998615566553385089447677349819718329633580911759432210501110355607465712677004782500005252473545485919175008293034931401383522483152820075958953608024955466080458245414712194784510198272619766455476649469077084445013627777766730204149324121334262505035311126952106775177265213799245959370859149436813268422796398652823567074656184666940298710438180005194286277385196783711365014372103429626743164235854848663971288679771619593162512248160447191153492668410546470331772622328921688226935745061310869223865493779256325538617624435431839912174326179847511465664024917879367438070408507865941660807762375092025623912276869660552257559578642565202693772870333182922848504272354124937521035855630978755014446422956983171807816699597716990416016612854897016563597597757717673460045628494928677645963040555075032161616873162400301081693821117164725731089622662418498326164147297225968090021782214474764073329205372992993204916923884988564295178075161262968492708539286529978775022783170914863186028736760986594660254821349394776082999781736460444520970748879059045665822103261998055881082984977968595441919171274884905589995570435333464032427795841917783971879416523954148463059960085829792699189825853126989122701369461985653199540407755076024867500398603160018132342262820613726021759871852750045864499696770510312769032529825928094019198065129371954435258158870756271607760313699741586707529508946777315443391546417524124250187576777938391826109706957953654697245410328121479617213554380966347708341923806816595000752569014901043750578866077974154899958819804678526214782068529588313731078076386957616913251960410367203318526928367593581380692963588366653794829939064151819299831937875779631377355195420431421390011648601590825723114149799053157920083950465043165207404859419235873524603034263974738481921773726356888092012535227521106167572128079760763034392516849104583339048527322375692120114807168584001405115267521341248875340313204407624308070267579795950939646850742762996353242499795107454489259220289179502422181275101835538775509268622125808092564534947612088890701479280337415569702846940255675024661658465603148041893923912848300245973940464498569459943079698096321700880297621648505243972183208170040857754995622913962788910547524061337488338803532055555009448835863389966468878374652678221171739225057623371765556180598275261112844543238059614370228616805249602260750892020138379511836799108919908855158471662747333866772602931100807828424564735683464565541068708040510434754451953661008083313717295370723600535862750227681343655302200455208846308387696523785295821033411220731656190105044343978484930951945293765485971719043421826568662200110053727670792316944938774851760286992221853484586963896192031795580433807203095502767339784542575171274916586016579470176238478912813400962056586080328790370092170712462500628791594591301002261034252883784288453661008227047249534376759300171670069756905957307592785772261171683467166443455354587052802737635484432062212899023752706655050633023706600491856915063971870970604879684859499674607769470407841595377713515906674298722079469483887019246382512341463324062384168906587233647676210497765296704227506550055084367390440800835892860695030345995089604168895629777708270961175130627914947081387236903434235257812399307691478350242264842345267331281766908893797580043073963138386112252187897829516095840532246217855054451974105735570984199651180182833683686591562145926711388521231426063741851436862911529354673307021903234936902542083044269088659987659444881807741185948215353675537439994642338695038406159894308422980587665102106109707043310373163416657344885862499411693128646962576764553532545150435067789724906921594990405253594156281811027314032261450720758067941788180277683995132248386674842756539723200715079368292958997704294209087464011841819493802549796701118753968022494419497896194138355221744362645377187164036525566585756127408242244584557882883367021719697368083205223455841024162555895957923518710592453842560562757435305021990520430454864167223186212551639861899838672484396810756492332772436020572815448698389556318511370246818731522748413416272040318246614523480883839636983887339720418913806209646294432726355308674595938446393711968958868049962755424282776657082116992350191763951687357980267241750372672967867170751556584661896870757061350120465379802335793841113201201384763454998447220079720466064490580402634451458281329929212815331462536853594726938702578161581453185523120052178890932783372934575278241376136850637331546948089623071057925525539171325207475473155241120113941901250036855964830317497366377792615813180136120552942387243125974464718662021873341902091534524262064995620648164495697885783486829377486951332216815023212502812453430463096400715916102417919054681367482658493871320125333303155992223928158505946359437555951136880058409902325777156729203280152810625069041488853032577540838789558500763335370591241104429217634618405143370973232023654923403920770523154072911744720734045758507945392836769733418209734500042686845351494113578787752634156623676913692238920174586141108660543291549905154265175027720541750743133889033521570804865406992386432031916249664717839010382957570689727822747050965863908156469969246916707169559891992538040855945514235655478304181367340586285557633620249057055952372746835825036349532406600273508835496170582433424545474837955518307063571206659832748116584748625374255036288634000197073362778072402687107826187768417311782818071887674684281861395594408943608676688528485817365228098839121873998613081402645451782206749013265502643499805666995733409845328351649976063921362990809709965231554517528348971615549899583976304062657445930005054394383143366999894840438777871101419595127953327126534218999268346752978435624137005082699466050510713549424429947428057817233320983790539689281801824675995260894738878341701507413135811496462739955026240070197367732816833564450300788727305646387622953767043292965672787575837584435850553747335874969089495391778364213177175112369802312388195389204275819326030720759177355901976135748617785867644949488591702760985443421317926089468781507997494679350341101079506642322034450274968952485603129051443389660389831726698693019087749716150652605922845649923233650652240485577020313729721749691145006647009770517438740442429343486691268572295706140254693969517548055606038435948308003609479354155409350368232040181697739341730933077571985307793739230181915616108989186366158875660189977981330731985991798958129109348280520002981700130934416788264046356735922223357331294714573914891922128599715145195555800590226155152892098384455230706736924590708491955819090801898172002464129707242281174921267374349767972004845917292686724246211195228278522846099486382312462538098880639130197942668039555332385659507352526902850720475256771739813557176100674497790414086362546209079971031465581493108179603809058954676034868630379391625986101773502385650312751266928879183400442152160515520467645409930117396144389456016069644083043412738762545877368879483551900688583815171591706675303932901399461702750515387617739730611362923153808087706995378775015920906341490502262976445166250325818726157391974821598904975883513438858504480790294550397911217828648387136948657411696689028763929198729853544286408341344790635769152439894679574903746167331459182428235642523992071172867204962560079628006041646710541464343310328789841137958149852342508542285325231690025505893921813718955914417501611146042632811253539291709173577165820852682509548242603418595539720141498632978160791998310503445197407746326530035357608409457768199205614279048273495940615689995888445048859342092297885416551915406529591113783400240201710713604494438524942134337337716429257978129226757641096095029537406023307237369496427109712873185092048021367408447952880324009792048945558651006912944612698739853277118944464177724613740949242622326468361781518218556044590538295159269816270890073738103792627620837450976412069384972789414588556823581283498780415619237146697638831293636710515293332684283853999775194092603510661230460370334929577549622112933399095727211520297110535769950215570763061017948068421827997821407043545522052738684616727387530617762476822786773596547485720314159035093884199329742312736710616224352897064039745688115662898638739678912869078969974284367661051894975317291115761517631559774864442264903984667649482954184387744508273893709384901438472165434902904059814925291424654711674253731995287723276868035260160410249379683185852711285957631286867032538730465926736569755383461254525367960521185560122759288741160231142603790103389353470092607234618636064512626608694867905034148456184602991417639213254022567285028578587232430845028144543080301017568106072907755024225975996889348398009278365206694054463972531208749484625352525752838487276617234546780146798463464531431796611443830339242827904374044890113193007295537925504288544592076348112121989324083361237749180978647511370939489490293931305550869350960467843619876130339879356945657572042877092779708741758417426666498174251839545501646763476330282994505505437245672599369241018111865375900611102058314599814151967496823353084068280293822908609066381205204363975675116914048545729501820780108919010781328945173176328373192839239106362989061596083753487844661620217547201830209562815443941970630378650111528799832528974954075672293497887914854231987080870983410689705008657902497809759299732753444075113405017550567094350241311127714717870716976681418609343075104040687141082878099316309117026220998337717494622807536657481772061106400479264336060370267218478410623883148196881990079382721687752095264714129698676320499674084644204603560608875524246051413655802974555017582360842622205225357304269142033841105700448282395154528490057204760260320252982214539436026227546913426477043401738645370741100075997357460815409959467731832383872630607647983649924897091849980500152224051669997042167660682314773275111539639192424815378864098231305847190769986202777132021506835422822842547020105086449604447077312325184522523042157874389076746856437528724337601761413747588466854606738695228809364124049209288027190651790530695427354239125376516478531694488231101381623455841894713411555556739662092886103372210635038577899251787205465912566696694275348619671974714713148748823958883551371255386280654429057192714726672798211204603444262198637496623647641824961977543761615525917916281816807693214468281083762598759148789124434764228870397274853202247563540150938684489225299720186112519261355366623285659897508140207475507158383911612197895557078219149889090394892633670033412764642713560783470867737628742287444146630657897627955884857552456648047002202431037156022481115635805699830812521395988799181398847797798373841432575449424694598974926935113033150408784571892787179784265459792657245071051071466185811824154741584915947170395987771167468250123735907884886198076064357030208686476193477212367770117830369660299402087966464588876670392762003063426245911302952383508886339381287831255225613946044286944713493766389935387955492437311421665012740082487710340104706898533933045305936806622916274886241784022321087968364077756357936578228850155406906865542079357483849972083296645686785196315726686275315677266056419955663308094836909400926167097028298036743777220709787820442647646315308151922215432494713194628609378468882393679441084836769903557065430782928584047726926182706577735837007200156709147697567795640471465709666271880963652214608150810562416287648937264223886874715891099892315622716476566624074154072222081132589069424778965790776242368655706743753503551704543662531247288420706315191629114492250254864496533210718418338196740741768607849393101104596306716400666292741532998369686988215096054503492001969423291762544491063549096448389198114468589845190900426261896191065989848501205890350121762756274706788234562726608504491099116633517616406880032930472303147268566908692097498315110435237985533007793496796488379539942995507935065734886163760278925694541687212587865531054503577643677221922458071332008694533564016297187088981881626779375616080108963553133785307294559586333667887947698060141559865117180155516785050342513959137669778219887045539084467710541685866524927179570637244310006658715837670203849116508006792630308478739358906475989515601754641688544960829032169867965537742076666019815713886800786406983335005134397151643194691120696606057013218012702183807582303334136761709731405283315314729642856289428948714816487405106307213650896942376554539455555321884197805032793823633321784376658873227208163877940540602663044693956988519126569176681478282326958077683282530733855327869917933243319953015530443437437383309707146889358458860711309679253641804031021294313471516936634938814499764295344741672041045206826912510549471497089787287808576143990364133003151814671475484186780584459464380606946860563403606269121473828914830175987424688424664444644696355129001054700552168039274185652668836691505046533690993671021243530048607024840046572927734521700659586221834137473017873267516722944906965753665734428942047848978485744022920157496975208358554089750667809811804455334649830917057311119917344016972459561478248549746738484666645071962766644404050758024706296664056054267104171587393562689055354025441635379805376021382395551997518244020844869206626961703773823274124097119554185287141001007567872403081946230644968351273601327520956319308438023102284240706500461640053103090159734960778343260216043893157178512249726803519690954718013817867594230152606364571679281920878590872945702545004451715335837036691320715055009464308467077868161197483085698125292188967273681737863084621000609697249801048946132222126562799996274411070813157286082505662876058022296825205717917035512912769303561012858147518989654961496014407052230577409423031171914295437331711179840449436751050800153789113827237436349353373532087656657153271317840092012592901782601364319595861598892379029567726069493748816765781174820900697952506943623080334099655012936940775895002223888777556267008388712046649441718835307920408265092165395193589006009657136007925858408917655128252066752591736144371869524130562463245640283938224964374179241735345255012629676205284254412002131592694200460509322567657398646675908079875606304278060632230833009918618443415363558307111280626995417497259819957943521679385883155974897939852310156525135513617495823876252135781442835664734836890910304931284310324864838847659260275691398543212009936985828750786364578469401416490855648292156566398372304796511377744716673750594407027503505398127915018468897073664405274967638815198672659702463570465486221185051650821709331068378223825781356257989589233777301627140630405892921146217775622376346333572854131113661021489546378605640966168353135159568526830542635687531669100033654636933088741023222778770120964846140920105199732664205458988771283268727622737651209444686646804530584311691935736962658416471653627080177556535860248004516431679339807492043857453228024568513897689119797855992448956361094035112905743366406630309333317427195542766597877011796435926514580581529938559092053037852005600753260929979771063113783516860622226707898900608491933803185526761170722081853392729155967405002095513981762204399876329664300751532898929931946199799669545383128275871279423532262427582117057600648673828436848844665267914453074825207679154421605017613651346914376738709766217436252953760510524029993540987579298529434152885467332423374866597472059946979263401932749921423568904311979066342557935008150845121574773427014113611578358876085379196246366332037834400742847519988683892818935909728015811445777210781553791207187419737219425048566328260735009438516679282668831474619877070268439142890207111622396240003155401583677137454680184351548345552087038095387593715265785459175089356727063743974419045366597024291012745659922298936487802413667077671041621959577191100593982534996579757669882038789719369522040043100274080104045007842824328060577399120841318332555808848093960220802370600189728151278102770077827991418073013692162518257410478650924721353499841330860742413802348952244679014940863779889778671649639278865430140820988517968747874264984173463625612002111080829197767882236890145801286173496881226312471219427748463236843139764145228337828623598968894414218587438302643350865457045499194794787987887557868404236091329798796333394889797729119835750913311250726503369490139310533942572131362449067473352643546132613413576382743837766568186080793134871485036382699333405571886965302598217249589044972837823331940138683406385809813381428464385751249098411111288087478680791555213737754474230443150984902438084104418585345675484746439733296077898600346587691551906494528043086179953552525924539662117927149488370400842423388025951850423397157277108378427988279574418233934281262051137472820505207499122253352895645258856702970297133333155440045860940081585909545880281069788889877191210856701272933845556119910545015343978246946378548047098894629949573757199149193827630895824318223888391532359258904733710139225389457077150227655572765272439437605457856944722112749411139380417704818941571617320780639671268654339029891118744453607218224326520642984287015122588458373367829014161466605656356875700694766639106625906021792666239465829050170494179732609526767082690005275414769138201833641629836761882902412016105587603125616682376781979959171040183219219301250776234256742293162403688046043174152172482252006275290106838773643474878123295270120321268369601252548788212577010419766046151015756292793325565632656578555938843231419110755595279789462997661484380189945176118994644593789354169564756925577018892493422395854625662323040297308880383405915201433365379723676660748283089479667708795633065047981089096520176665775436598152568522151444891699419058547970668485333367227453127048878055250070005730874176661918151162174412101622163853159529524406644524730335821010513191440092998842949016235498042543605053376042096494480533075858435567935316088614490814741741502497832661895706700790440398391032121337338600970219263633778273861261715507897612156056128661903225811904186897665262170549520098243239056344467018331086228031380421880713446553116566254353930668577854952610720520396139953702278316540876334888190634903060115304218220621671389645419856573018971496948416823530167198554763038558627784428998584563906841463606541006619438433798198593600217804170450134075663158437543425219630404587127951712490467721805751956281710746057615684725539446659174437280281352352463250779301178055277196601659864049232741985594060091948447678198341443121267282211240713316370393737825016983550782453389436043540949832902923171046619764051217998626082539569357529902655116593378997651565892284940206796492822452567676201355319850168851013496988194103713902561779652493404019053861518778819458046782206037447698051852187763428699749418595487727939071561184819921307265784379559370048009256409762058928705495071701327252136552916499041560316356988550315263373745889506354528988479365011343240324159870464684340245623790790567463572468125369812786251402314448960023226797861330690810095801340447361784593146027917910339025735891068260132485738496239865368984479995220007266276716811762430711613602553655616311800676302564569400270780139672821502660842856604956937147058235060016644334049201023489884115315670134936003328019965393169290322648832066314125079853131398276926820799639671614209109696775737560698557652660458117263852451718553532128429644173292068783410971550001619147351786348664206161835948473251231727534998966078632677037826170564106224129539358104493419060281654994215930668740968194754933585749911892091440720243267865623973848942204586946587026428356782240894508859553015026745951905573900096022421484818457927316959323762566382778560556986902777737261418334946637779530476820352560057247679333228136672805755405882467474395929620293953605952608061532526104433554656911793354193538375042631342946502477879766666420735081091125749546352164648565980972918572365360449090401888719293863650985729957386391007833515972525904812997718569612459889395498759512541333048948045192457376361026659872097496472920199899227647005300215989812118600604743348990600836267020704425623611181176214261709879730775927778291134813640004700250446298693474190381071036640651410699233314136556074167795189054258610563377534059359990028496757157134089214879459973277089292921371326123273097320069971391167026138906593462660590263861183714006433798735479221835328807447262316986711535317244284240768242920519084410806751397321805066655210153936900102567151454242581919782782051350445136755677068460621186048839127011996951113551287180439625802200904948465579857466388381117516441061299347058972701268686517609425544366252095376017409818919668061365697999900464001639260278482338367046593472156484675307162923041674412746054313507478377901906092348963657051073822974721792193314002287008717076864538133696962669656633121835252944703335418357809245299107090869764262543775638514462959083544839178447642075002019266613488375610419936339822407174332555692138368452270031116666048106099792838095444194184388678607528254666618392374963126641538312463385495402893764693567774133265257038939426344071135201700727429434253359220332778061199690987247774335336945481769955255307793104132000476427593294344941975049908947498623380786153446508227212214414218439424585405762053743004606663793912558840523197817853274087880969872190356318601839487775715856456692959614676764726862613565413030042149859905625362324038019006490422873456147051670412250721666624878673063041193178359669238144186269782940486674437986396485088996785880458050215244704684448095042758469200645711468302608161360603340110731543044370305077096514455755516652498912053985392781613901593674987133177051374557355112678651589168131465219173159841156253336807557292922792402674548217043609735487852500090603228700200467951740255667546695728972316636526299654120693711763869059711177085274826937400837038056518168324236397016791357062305226648146828654956028333041951634088425723408011283978651703311974353541221398260562831424136946682505225889607805412846143407135325666299441665860884574102859689010808321471900454892858924096298064664061429895409939039113578999222712627900753018787118101569696674000051805638700912735728133733460099801945232343427924863994668587189481603244741730004116322845480085823027326861274935799214080575939835610614875135517459641929109382467629864947813439983249091148787204086831345293763080903377359935231732496715557183228648071716002811156574311414319536741759943181788436989228006584414041449550022505146131611830418340138353828492086924765586691662099905592183015239005530244211614400184905950505091192577926423900270195620668167778115847682778776912556698987256132023418182088898867767720735675903443718460499318577765990115440232431467018037781314273846178176990486292337571775876747425047459819104549265528362597524155248346784659381603628582715714546740440064979091930819061486802076693204755908761743372389730871378264460819592797477805537139476376832733446364903053095272864520736014438694947514130424626864010473370201505272465083171779430964775155665101495320609705717014041433896281178781039647853647372744113085292400112259912856240289499390525407604030286228924250223387452865839542085295636872053101740492209647767593545529713965042075860939915480400482195697663047939860408537420998593289543080710811393425674352619812612407986040776834162994277632338954319599770130214781549960929033312277273824710014749675408324974083052490634074018175796654524391660003686133345978717731654992759579384025855146050031219384912786936870540308474348139385515367576306950315116188341996930502750636803050185745374030113387842298887544851847245488462940850579893078197240470823258650593783720320552718039846084134986146791014603412411644547244666320488840678285096499734203127549768819195413336712043550760129747700697316599587970854959699972668347652487163529572610700946903939728904608566420801479534827650414785311259168551751579914716614252517508035257507520682949163803041968978112448747385490866000680713885733734630462652072509515160832685456189499430207482928542974355076268916642606742610976487012606041516444827449228219132723221810721179269318884419526013580936491374635783893294334747448004700452611099311371980418604986039638060383838096735816371349615924143771247834949558218934722258077640280550636669026400667237257556448615242041374999380476864308845781642340574669996060879409596110827358470261816972253529563202737515398694175366477315768434208065683909613995217413410618373149497308710176548975245854007568672170274524289964793451485860869757716130903574052541935351444610312787193474933894980203472592856038737129487200318709300698620883708641708385061273210661878984374938965913094431694678610525747993315055335673492407050601770683302600676999850531712489916269213322553883749806215829143788848983620076484371921614586783702591358575549126671607375419385306923245547927731297195039400132729587349730828479126875776931621202788832064461466458617934741256430701606448870788435651161269247537899391833066303960472184199443136662467427643732896256395139755379485026357393691516223481048826841903867986678595573665023647856870956992805008410611471692847797016102354133468529974089565981440415681113548501534580659482851167900042017014083050341255977131600885957437997540161421490607158057354838626649049576161776444866135400185443902517201262078908845303783916238399739970864676078856126241423748843822689892211542161544835700215380210248977697735338797897313702590164807915483011316856352456710682754966172972226051405346754783551718858080741633841853741342609636327834371578218520654261068759962417508950210984802841247850942144277370782857809362230204070374432134710190590563473268744779070912673828293489353358236596381911558111537215320228287593707602710768122986180358779639374492376444215682086942146792241234037630108806910961884735445726662851257697408652324897748710401424432797680259157854602658671785066118146212240740511462679540868512528859944571380921338806732212825425746928603427222295870205947417020553503839075946541129152949014649003600312479652159270599845015056558156253223959885367719713645763174166463440068009395961191573760347514749207624911811099485898276033983314033067344074218416229250436900212190491136414000946820009638034417589855704808557830862607530308139813015347177901650534680860194257660318573059358818894649375721000756469914268948914813198633233662830308070132187182101171036872783645853043025440760090368705303756816620677245595312192446584510904795152027295250394678185418742985402318258220878101469292899537827419472752973414122202274694002210765291945017028994946052976528651957258654070045796370246253309870073583154410727345646396106657222283218757565118322457046335856835684417772182304924635654350108643997993563583347138469246919331598452466484790064568759166102033027899846074044993267881249141012236977857550929964240122981716422885329095555944446304968136834534940428856543547580098016201561726216519351536476934065374750417225670591816483896344353765316092055667992621300900437750589664892554655897624127317620593341071007108662767088990091573099748149353760434630762298655944639487176918411263348495475130782443683110827030845567916761381011987247908675240784504854347063062075130265242425899007387639920602571250034676214923135211353620125688359704324016183563114227280634868147415289985294977893930477899804831855630362080254942502728542631096794056480230371936603772357784328069333799364365031244918346508439642059419872195065596863890472728991216596157632576967113711293861534242463446836289774711159153249890514148045680805743648333426454570300405490424207569624122584520468116863970272388666869818189708651517354180172539263944726073809854650948574924798796092365794206136888915887910209972007613204197687011374816937104278936166077402350944684562522819393506873986146271240485572705495867314229029878830740997672285067523948101234309704350605225910862988303523749892412186867978053235315087436906377828078362888596440834639113944836958984050364030713534266585283088933962562739911724937243976471100991609509390251702832500588667116723442477230392185218358333908504955197248749534405537175748382678297357630351888967545992785283348765486705866723512544796010355044621239184126852406322325456496910600772115573752779291397319888570590203511194032963634306660280068309762124016315769007538768369507466818832455008209048127488868606616387275043799074003854739562891752045980503868280676764152344341040111887335894006180469846364390616133591473977429308532210496768017027731490471543681739482329663442156649103451835408234780026290184247149231150645089109138623259305151588955196331755540087003878061451528014517189617096539804524539861517033883465022978036613248514017520927751094227386416086665669902536378364771614899272196769073734278096129216044320712185451114377176147704175685323378117346244039878311619075188574681737929567352172938304545634247075963696601274221172398233561664115800600574035461841320082225618421885779989757327959174833229290136769062509168388026809448443128511129540111899899867812685000005366251151267628712299220154263386061744461593729510290037360685786983990759358757386307631835717382337596928681909502843517949775457824061899664129565193562775888079510216436245483310211459367983261644672595129146335683548642069130300802916904772820497857730688350015417651200852753254497305543595489985429671904073409550334455206180437779104199927769833619939745513702771165622572716290966732926027973826309378472838751620522667308462362664177442574930343194089490401293186615891852588612487801041078485397243203228837194835306121228014649404794509554591236085870449081310853095044126512781321913321677902623190783853676873012089090503140621114731045160252375461573363349814567827931215963872831111511244320191327254773587420604115837440908811301694904471893761437726035329499709536365717560138757210752401981700688307543654028433684621677418299526118775855764402731236172251073350511532600600017166488393527278869315041932093730131959330258114457187836174954972704332114958351711777881533848835552120633293534147882949309691470690148785999765756422813756159494332130292129940945939604790047242072740808032747005217667078539857913148955174786608498066368643679208654133575690895218464333581384330905448967809000631839530195266170986726876378040121043010918136526161051209347560218090681973149602376734177965847035470155373771302142777170699333285936290289065893055827384696293909467812356931447573133604484744558383386103227059268469126984841732081420828850338797282790172672214256162806987811220863599362718517194494856082855409464665993527210372685834195092341915319153074079208281826166243317018171085764099453384087492069247028732661352245362926411256855869431433603199147856012840555765161935496164944375250756063570769680183509540908921991651853490787063481963378406715123365868406384494569927413417686756683409452832942254094192823184448704032518416740017499437373033981060566704505705732485668052478336357481069397515606055048652769112731535326030228105763280495808581987701005631119771418795206771093603909357294316845550726530518455734893660697769933413697704000276921715039556914877104870664998221523263610234538288648554875810604834544184538589531775358054740197192785397814646749285943504739955993663183396382487884906602485090311803915112047193027348584643965938873522537025205611307601417339168264253838693526760433629626657973964464830187140647742904909021040406698141370509476656073778505716480316513320798022151220595439016337307724924419591420646127848654775271450313581397494334725970417975278452607585255738204013310371041472222198757449382298682164371918104492793321702083061164908475124462735954583254656213448718988625540605764331187458025690769248129418716378090275109727849889526773252970348883639507346489979830601871764495216271963018546703137088547881156409100716251665199248432962623935422859355826937944336211393006292466583352778446900816983199233061642172691813469035568058990059872288719990021183879008204121208145618997519388664942070014022968146496455284648549731758456087849410192083196176329782398310182261214066232679456506209790985633480007270874663784223922654201854618900620886429442573384073285068363391413274687793712849061295200225914456087049027222977363446314496247986228868291768465355842961896869766805653108602040477339343920107491308495906827073049748623737656721761952438230937555317380755205650934029257873044603445117905337399394910368537047731322990166582622199383990705103405389122494840541068862858278980452711459998789572803219905410932268311191239475687255856993745813539413109934915696487724181791530309713102171952073983044956226182370721513495901289452943867311765839026576597298669596541420266209668127161596935743774421500921842218957568466445965346359739323819797323247864339510952934488187442471873807942001610746022622043795311831262907754311078722987287733678801508454926414002632904324262737818622294212378237781014377617781573994423975108614465201406436559883967575980078775919285734059641456306170366143800567563789983877605362917041099456932242200410501930161084115683282422128713845387968273374984087972628085578218871823576880838016229736407559683941535151207778657745817355137083120167472391858211376023394257282885199252428604539542724070501863796258066295750148450607009920141150237327576441713507940461044631445298479979025388219203178660354055850644538176924398141397565108588674747102228882179449997046308889803380267448406282294726929464577376108342279353622820404610072769507666950610410681690733160214998336934039479968502885048445460873756195897206414717608898608356340150163023524484618924412820805851389712764314238744459865757803886198940462117009954377510219822602517917403594643003198355714794508027546824111477523425809547154335707030282428563826691569374291058382693574307542271272771784465338326546156625515532973444937260164980853425959177274471600605614997120738448483505974949982910691164935471143265598081671572567897731020980311066477315205916229038364942956194314556834098778152234123091803169629237635332227339240440325775659627554844794113093807991013307758226240453620890373501330865557279427333914221786847122275871929630715498747301300430541625461910666478845194445358241187236907028895748089053835551942209206555123400380194541318848626235717693412429404490501840642558486203191483790276370032085097553017907442110652013279077877383005122812684037520061963903721592269487309200660416169497110625455414095418393346617385900427852519495566836706189482453754521070401130762578251196567401566690851884925002430413743156497717040812876452782295422840123325809947031964653176000042624711264231515926129238596124847416508774971000266594420387566653911761338693594743412021980007193364839323704073760277750623148282330289557084270384188865692683611243817685550221525756791876753713926297414120554962999658821828201533522770599139161201216262461779539458590652059728704177178792466430306569417111616644512502878756839631785693499165051166651769929644339533715348401280478321398568910043171865143143416208166083514401847039801893136019052837697137141829938129679557378468319054104264717576829969035866530323076397330861371746421870207232446954736901942947983363789506124539970403222968454118278601693401269259230748633083103483290054704476125010208174905408370761303665684936092352772518072139936356792472450881859835760040963629401920830636628459024092275111071957249575984255278443999921930301634000037606132063513617319516970585571262446976045718788220465034708137557065346468443522216020447271693471250253406827709786019738109652924942563097683093408047849056321908497111967610874075447779236273045497810652867904389096644981400868865970556424047909036122094932028792814419846908690723863092999774012875751213659709986150173014289732279346925307876535166643723769217299191144422154556768282700397702174514454811484307342304419679019311401274218157485984891472953735870552932194549687388769160182433194375949375750710626558101986421961115719368610129203177494936606976633603983947509215617479188845980351464529408603390501988197337531949364147280325901612208147657473255010057113498738040833738794419552262433926611823241284086661469886905606652665201679934010307188189314209823067310307927010667847381379310687574234060937764379156768012844323996214781368397475480121973667691094935636885249555897090658145019494138259552616012674012878788925746813029612102188809319295759492778332348408538615636277595157894398749009397374984944427327507755308623299516218248044896429488797608904330495387570485173461661343253904302561364315955768025429544015444886116167272757758959589480828943346438051394766663982424712471316847970834207485565408676342608807909043809449142817683321437852664029151215743294015056310488700485552876494845009687524861819600992057367459770461042121448268109791685776143620077117572529591930992669488356069577376202668541150851278175781913021514492566275273186187474218055460197168649521066275420017131584575949858980038726429605825935760832672843974731792063843999958511255304107950783846535993149426332181993570699996037080946500356936494665272275888950659014131736395070088620921473439384479039806706181405251717678961953672428847761916867701290805606787150104282024331793384253603933117035031196328705561795136722698538101318029980420799981230514227718507435284879653059100535830556071540393723192262837839847997869713828274876962513994571560179367490326143978955383623085528188123743569428653023366600181971977403160530557734401211160831829569331501683601069501955596616424315628924439839799720687481647731407110458405604376164667245105623665103234806393563445319201060903087980933612236616790149507303902836385587631946061957909470529086802901830419799170136945809182878224104061435746885062903039250887418500023657106809728874500569427642010882714142988711577847233006210279082481812339633941979693418737145626874429730481120382731178607877349416409025712980178134250851728625686481427170838089484400270198815380436258586028763677773568452399487467130608015046347933393080589829474327163522533114778628421735396772464723092754179999203823110214163386295624961358662780531714469084201795335798049612939620204585245045483717191932581010502352163002796888579741039441713905730661760816482050125943882859275659818177212916590430491373417032423411892041353378566766205188692703998899745714902080230358320705821325924481237020418845844895814989864349881104888529942953514245734600706728237788833487946405009066900584048966822646649966384194188052298143799134477118047870902324635236122441841507539775500895593362429716761100411747741406550138999952724245160670064478695593580045784347578074974754540277852265624222105287994516848650260549377890867742522473695118212145736487699228400679187135646874455130232577168971274476187873802424047269250407259425340243742248749323503013114820933340292672927338774243972247933777091159648890841775014360321775425007444633599837598358783281696481827162884015219317613496118484218797028385962937847362125120432347375030970149649443758658412621796707992987999473033740531505807224786612727006230372836830466012579141095125120016479441472661756924985846106233067079127807311822893485806556349951205516964656588707880649762035410182629437426008537732645208545528205384623674948764840635602481435637536841000807268330552682939532225579475347332486547187485905805212419716077554097009241307363997284489694081742401559615635676275529611521894962931226081719180690448343828296049855123833441326051034836806999826792393951933390039648873660549257900798530545936852262291365773500167754712769213845375242138894404896014803973342253915222345290794077339719410042344229720688926924124931350991360935445723526274340488164056935115004154157273845344387044117936074264980286050750727609174027701715358776493061111443403904799029938301532696578215004910551153623996232668818573743225890889820641211547890487335393640438645342615632565583150219634954877426992890082138143418532847066983692224375074973142562308280498331988038918434603679404869104628100572595549331186193682844959791903518816473126875297218058070026947468743601941824128311946886990770766240144731741498157689128279811093853862301304796088833164890697787418427676180308134013171844703140684031956842825398874666029373331182052968845885183770430275502783971680298490800929639325951972042567715400487598724173403194250587943424677196607377326671266325105026247871976487996814528962933559172798788309645759369417502506120801938018719371984459035964606954517564965526560873290462842363670866237888475743861305325882608203921017403416343186023763715644273694517830765584791926568974470856611539873003523384003400089979214636573652737804129627815318213599681393705868923892770965389130595391532543532033038927014684674491637928357421591440908027696173347396710523489041349644616120153324740826593290661125078019804634889575132317793620997307630430569238701804589494547315212450626687974843519169530489304732080129485955293811506843702475550484089458715697105038243547932991873264707043578320931952842254417726603091964024153550446473549952745036782973672202594789186471992934173610159428856169732966413856755842747794734222218770876405606540515331328999887154741066823641319587731897278903605561048607458755859514780210936751653456537739053920882240366225089438365985254455749678371434018002157855786570693330938879695318733656392168971010975083977156567535684596349321077479635208401442015596302891045453128655287760449593631220408275621185310056123686921368419028185996576913274021016603664583661082820272548581164584844715033134454657762240962230356528537833701647154621291237335759331527960891021872564435815577348421632794062518008064686474515059950605566616375820437427970265679257057606144278421044004129479417807551376330814394462961058327666018578081227112576679514040354263253791295055076643535592821782562810233611159863616054029224809104035554544513821970742510867198649129631045392262834158220292114313740160336404484555752639329323670626749097349052611245197813805798804454081209786796818300188629578068359495143183176802092113770711068085099280647976342748668260718930540693833901402641200328802658723149477764397757754212436186668427443174775854105487210366544850933379793521810535542775297570054459868658928939886874941284605630863103748790889958901611882042425978184651126091821128113188167334045259459420353817040161500730823050597173022785120635189314734924934625624411455509464589636805864088076985754198821332568752006835481192988748929704554423436657971893399219071926985820215862691620591411678588974020520105216279933334664970273245790836541194091371562322458869235290027504332665456050861411685218456592874636321723583983618607227802840595416582203802569364683656814874906823803095102051659313527171729367942706908549662013054456589247902323400749726483898925018137497516619183963847688029824193754864868666871046695860958835307944242390145021564466695661021616426562255713615455996794930486643459290067110853175975907426332285946254653478887998974308402184480944618611348334098857674047147750431593635676023828957975704896492800583574243915886755493270643527581186528291044313792515068569580414947798461270726118434162286625980297105661481257738776283253508008510438227372569653365989196253994078236477500120627251415988599705741258381746730999871516916858952602436788886685071953662062792799729095523260924357444830320164260666839742760803494478220910434133385233873765483095329518302072554366785455557708758009790243739894303303603167201327797810801191271094445710896025659028356847997912759376819665982563726986525590396571572233823370501229110698360565123057790760093516641647632820560190512394865622407886312069163045790412075187100747266851441300648305287169141692009782892093701554230876661524271604320803316633004943583052808470939591843351905709224683175013527019200392740101594971940398012083324084556539872309177036267696887154237733626898545574693156037713036356828999769726489407546700692350352285826052543477635393634753575343678722380680224373938923200348123909755952151382932796797022727713885864045533318017327606665457887498814505025287258751329810464580043856885969497605888201019444798921626529536298228889845200804793456776832347602757353564443637221247858948315701307671694365337388135121940450250514551327057606700628014252751982091615097597865945278193437268854338341084781799565754995501628605069947973541275052924432296513122133189504911771092122820712133609878428055258206597970157828088331496897049086578514393692332515238134875860732529942375328192069597507448944335179960422735391692744462169549667336374480609470630959671087891107968225099073290974874732354482604971768691448857549325942173500469423366731390177706482682109899226554725160739137917176734724340288662351637533861226763196414294103983240468829865184809549475693617859849068281205698305911946498434834638013707947507045522378736500037582099085946179879678537373962540046162231428917839547818699004763441545211437325839614047425142008322601631668411846493245556939062393189942768301190597582237220733285305460005066258364523635581514603163670524377264922115818714479609005164504920786374798195896995854557361135241106467944370601495895239024609204602756280134164912945624728422925215391787978229966604907607190618564275350602132651450499809729989482029886050369740554253580347951517423828982540731791967182230543343910309709095672834089786456809303781937375908732396261403377571079550179867069647825674782709599709088183138904348161065356074373232575701355259350326693749076792089918288432184794453674404203895867445069487029658388690354054037035411278903147871731963540314514904654253641143788190564380625795335395224439712126321668910378037548851382221300650315356091061463649434422300224637598070590569889210928255244241676754563633223088752153257209240265794951436975491589613454351229769138503052942772356111666792168154948893432971411187800837155122929129305816972586875675084362252044934588870102692761957682842166527825611332516449505981361097063490585242855635907985879387712256447035214863064223234623195364876749322565279081758906849706693294242466845289483604746525877223853204661548262752447758712465628762290314260062206023165938820823115166129424078869066359587782581103638991910259469654662239444660201898984623690061233946527813994394758597395658279371840400791101389752879450840311471620570525205801440973035789377182970093716278930531094864602052995469312623401652056317417593772343366528218639040424587783061520222452602419237311614602334087634842632273839801625584429929668291066124832139577882010255841727410884657800421069830151212278212495548100335109772493682259383519487870745940376202654368211192235971795834089132573943561429101231424330387422158062736365519281834353432118758686234537714994478376296342160086264863677750574865532857972144733795958642781179770880921921515426850589434136459025414881143279092188283540145049766280371103816910703394562858513727778199051987540355996479723413279111541837326138590574698991234161488566545292604399276142907532576392263237444965302953133263229445744067234343809076821208937598629527615095574189654384338196672830927670596815327530543907999459807085669938734709199212383414141340001297717518535949630086747126375159409318714581234197519480581322415207220517013811114866838143560276784257889037672609742966150426937187951892259988877749037605947372772054902808300254316426908275860764435389035293213002086266688276355581814794902099045781683629627893709776058488132558900590392856859558377233020583178971303388603031326179222694137862823701851045409664914786770132415540106305441029609601712328247339298297242120498608793732354659844286784411854903301599896141596950021885746877394845445652539535758372794419174529094436241883562601877854680485845329016527697875152815841370641258486383283251284393688445615500775248707570875352508932360641386114819434660423599445437099824973860847755244086810116620262085492758180897811653012596335022338274983782763243049287087615624408253156533282894597382712440034293146008777274555324568506798745893589201258506778887254046108519488953705431765030667421282601795217836308020283695337671810492145160484308541511566626106860344823959999254419189709053386315374780195847569618628111729889797427287573392366924075137680492506260268437696179175347426083305459061224826571702693899750349184992835624649796512345078828019935550727921259974306572212229563458253499577279232030073915427960319090368040694878554325460445453820496481264999963621261056370601294030306679084097439466516257726781345402171446258096121833314076973946963633449978627145359234657796422660309838949093279485872552846432806810459632438452422235685702227910747625747920832676715304310479332807708614519457249215382307454729221958918762865724364863403968040166314550550483315550603062769945987784464832774028644012932926289463291581351736457834705285982432538289235679210182820301374079770780567944008362551817198027143883356609505782824874903530117596285541950039897456792432491068784388791541682625299635035955088266340182806134960914144887097291821944550277455847627842884249654866732119666525193542585041634436784846596461278502829130393002610359996920941950897005083174178265102976948960257725440146864119667931525012439851861424189320744456354145641496791975890769017836736522239883870464960444231303548717321478493129269348547320722572022503644617313774514928108116628498613519583155794147905986630476941889664041294076769041631851418293211638673669891159986369749475780083470833995749025759209696633198299948212981993723712157600096054945763392907147542914359821522131137763332842972616262675050000693587823089446482067422007651187967374139718490443703370052481866265387531373266874978749845985917565475625914235623587964859260034518370596668144192842068225729188087271600272958205367888703283096140877909986872243788447129005771223771613522558424121642369612861048767438976844674733573277183061148895519122084972031687602354408545700050840774661813108024060980066381546555211462453941688297677379383829025316648660487374825123591283885289262551397141231709902559488518421833164479711821223795570781434167766557308435009123798941963949617516100530309846305457029110412544635274427301476204231986678237147439878164328691267216828615037874035694088064525511707407724263166212374814358253478719369828424519534423040004730748852749368696489619416953560333835389918684110178838275321262011984592914367417401350049152354207771026976320549621074600181611465978419781695099832569938914581137711031886753438961024089727241415738875217415198023978378870860661010484144038109719053864578478243848679469750943477647174917770570339482570846131667548172828948275806942833177577385413339686518190456138617043858348046118180211570371833409903011666109205862064161038800175744215897420652193948284700127216445114585079781390610789178440320595595688532407497639641725606988164718365822788075580538949780640443766471450604392347830455634178256695081821402380252367603270917446404025164727385197733438839286208064173355357676710017879340355039627651519945591383075853205001565818644600333245358775684492471999275574981366620046736598965358049888727586127077773737506884179367500385938398926479515227886226747137511340687375490188600762169520414547840201937666323101656723730728264055108951410754469133738631446842117482284104236828735674707071273031971960930907113292283474166919237337994113160217409147998945622823717327894139380779114008714950545852060524114563491477777520229922853616119434716989303081351440747836411270054672302655710083553538031135074958457285176730795707686523741706877177062925850313901179706649604430914429352144954058344926264472420544261917137309070477499869026184608958299944190208596827789818739130641820000592764921898159104507788069675969943822236833165057103104494464252392961303491149771277001391673076861374797853414953426063347626101712361419888927065812557748220980110816230128705794462183876261284388422844242948515846196920095283848038617392380873950250985166288432738884516438603920893977343672927125065946317004150016910593526890411068895256064968216990172641733889791804570153218088438532727417177968448320580054609894233258952180695876767767609800844472501974967811687566925082345459326937485294755697638639138610245850445568674873416824247455453243040662631095236607059066313701247513021028363454705625856339142767474351727549921097155739498107467021978711671304204812057072678885127781797295863901163768404862822281872736914377066436059199176729074644995133193226321722941114092401659440218722470934526501097879166550437705516251886156880685919073183381993832243160661889043139624396155703593785458418562730848465217288509366152750641871357613028165568799164003657941975767540993552825475339482885403724684080519420159499969501884813066681352389430202899514284003866907272418618406446610547242611930601253321174004153692986920862645958775844675870099303528885061943446266713764396853990829085114949956925459149350753830452333565820383814620589489964579146698355070952536027279467650111379702333367450897928471638647126598527482684823723389228603470099279820460156928033522297816861646468935737528242597882701035369433839333603890398061410586951595614042325752700216537515076743713430156684394224174793081060909219621744891035491325913182955321037359473239585409225419227738082638962277047758195150325073020718099863314447877166863152501433305983128308875904001937129177873358710106132015860850689106031927154375459648708711207281880483556575500542629168954527130581319296444860476682588964324678819352193434002420941008893440515389832917421340858993395648330662292488336211905030375756127451601118723013452273207807394143967612449629833188877316421395510641297363982066155630390807783887830690917259085029323450373552840259819237280678184957292402317332714674744656187654560176736839845300534699594022558338688065805323904545504876560332617461927916182329889507769048908182393819873689513562913013807485285796557410763191562139865012074987016287144725044934685020797504211166123447722292824620641703306519561282644247004843038340568783134342361978190679534648939971191377622619975781224690195892143652252059802263707839497920178750281405788038102832211051097077239252017024955946613637850708789640760435998049259057235799006116673606423932336582417328065028467903128544489442625359801879304556886077770039992235433377837483812941751417412335945629416568952158874266031797865232998438020916790236116366057439485076982457208241955017305752436004801651220661894548511807989347204163080194402095406041660683490088594811385756296555400299453776168892595788290763253750119098632171171925027472583331919274384005688695506706167935202622001698985802803906245087753913793202311807669501696180477932228602323382964310262318769612640146975827007372512378674253214091684218429973891239923958004538541356403187288857537291809369994541956559383875892199568785693520098040128206238916537764045978540104093464139650997413706479969192058367380750933730876863213155611274785831248613050704316938692850980274096190209686040277986175345182744778288837502495958406474580372060167409615834642027779293922847010448798080214673428245044546374383241988341220127859065429334687253443215659023267922146793698238987116262430836357253990080734522558068776469103072955126916936374451783170803831514666113861099309966782187339163232323126689083636472081333092119671581378670432700352291075604431353303323031723132462420451180908254576988385825344657661459779759558236299370958096089401289256813745355393087352247275943817625363668993356390897165677312753534482124160958419826877842910731937619293954445487787596684660387018179006845118245264388670919824070192050182137176704902089315813701966009234718346462672559240075693621272284552848479484672732987091001807339018903736552648962822914827116775571163625581658778767086090867155976810491679911266516749604655659494938917248210616003011667819979111607632751257533316537509100719706318734506421817996619642978119823367558841742970601212976791070135173494850870816451307825187696414039153233264663060669668834610800716394096029592391814970802906507321560750614030213986270211759437008882322154776884395396457241956484238110694532561919096861240662544118798323012248329299160365937722469885684790959946055516113608363022072789308579769978224245195039208348115999998654019395456590127874744858062815492581773229991442258464068006484754604678203451896701161745484203897289674774123111659059394634521479817306853802881241720233932636238987395663232963260634944313324909909374276311419981880813014190235343223404851635882365210884437156052729532544077167704747218727793122760363314239849734466021518491377391195301599020423345588273109396813838867790891185349327855697718889108550283228767247998806479368136678835393005185951586900551799899630147127522141446490491328792178902512967894213642189084185146726246676171691513499168424154805501759255865559513857447443914305048934366410426779286139338819717901009789807534741771737671325917898107796461951539550097664559811683862408019887305002180520732250646116397684501315253169296827413222460453390334600847249275901416271200812103673560097049121331169380115427516764446214093786974584725715642707561843141095170947759635139614692791336657296402033567649370535636974546617151988293566057416707887515976852621194880197195500813871987491177697174950626686262909204675483112235780269439485032793268072923293304509890505955669227938549590999779213685637280339613353597197679513150637739499249255454734257692032598978669041527617374077849204629716516682085531674463463412788167419386080082991571170211905626737599797451908563135392882999827151992853143498146459461853149417257262486738216945951207366819626787229077832471579260827498165666680558444158588475141888467353283815888297506241693980273897126744619178537630644418043558757365047929979597522519628106001422489847375157466701715343448995717117133210978798720396929011323280215821469456555464425859886582211329611050840920672099143001727740516252561943035932288663024458593723777258606023474186825863441011404985698713952805253723526299266579497140922618880687240817227487852430442399660087890602468952774654849542672639345648153484996085823663776539319247933231532377298448782411803382743946795128075612024263683122081138585326129609078944270818711476040679295049234540361756793172252676916168800519519783174676221121007659513749845426047352604453891904226691428373607805390165059190428946695119928450530862627427868345243760098766269583688539393243512528155008954703211935735012490066729298103320116090738551230182224407149050738470831477120231622150339648632371032411189381794244439522728715595677185805543441475693519947202003391487116879051544868860791758390849745828693653561894163532745990448169202551886680101535898789660790701660305305208376983177861900373149854911696175709728119501060028720258209448336501082610579894323127462266721517887053440211957109603040454137101658375896864613840803467343744272606770037241489346884179954502503462763797690080425623439262380126680081905617948823438533105793763826406399257497867365809205876966614062218792647837615981979613445224755209821844889075531471888561594588846009617253559311592858963659297687796267847679823680917763846409741676339175680795911418005919374416769822715379727891826144494754540927561380598017382622217722504671621434293902914053743345186160354880759181470260697700749719181784394322070571468154924809243489404663656889285604380980706383728881731101069765976800759000442996901013410009958924746687531031665150501791707193182894791731966618787166410208491837712952543176737712371952812723578385492344209475021842721293585430073840817875503210498585567351617715110406241802305547960954291960225633798587978097226111049045657769794909991620471487170886136242887377598422338943095413420198109524506178132806242547660627254832347705002090737783761972018915306854715655103662219815863498241912592913937325177717926615518785415075807081061351137899803159411766131771111752595496769654042212844803847730509606604296024092583810910353676454170242255072344077210389380058818291386996755612498284550153255980779973518391255955862550910875840352291323713717271226849510458862665891082304597100204227039630878606714864973506188219394922139288622058044778356022666836404819848331369926412271130773578749708555340662030731742443679845230504533487162488996831493135899771994553871251724713621698711865855166221376294984598349320897981829352442670479718812257240004062856836233469853098137152261140390228612128849206406426919725036190180057333574335338415273565863430868809828999228818189702001437851834644985352291747995611062231892496819612789254924346822845106732962874834570892260220478477052377175930702840497007517501195438404492339960048273676451148051495594182897991121589564553274324428382759615242541196297761083440675046194615355059750487274163557753331694814885744397030740177609762219626656565567007619685520621107150955093376242143113599440903454517078520422469866681428569164610741847671709307358891327979943796978413461711630249200291272137900472660757739857567678801315193972768400497065797725377985750259009562528988632124082588806510384001624353942420869165975138021318864245560615967312939872995327515585131502301823534426321039596994297053574395922633193646454640418372182252957775003434095345737211663146605211479029460030049479911976991492493502136685299934943947122294040951916327147776808755049968265231831912926996489732707429995135368141226775565091165482773838206024505233141608836991335210776074160773909225186749988495461510721144799687962068382900101735806247807997286665567106734464222905242644192648103499839489992317542367784403139783905020117702626090101610606809891926849032912594279150822550983406294194096858327243739221329361082484037465277838360491546314638578456921343831405435823502450496308133574023092450801951107504605588713622745660131220150031710619716428445075184337157518689924503001172298183895683947695225099765200713910255205619582932551642198945488950069714142388405137066742124472430675856239231118080939238187062431528265137010805802627225161965509739890583418126814007609851857054914839627139867611763685173671136935932010764055837309090747443030421946704190833041298467012601775328541493196501693639288097201710393977200092833897771915269395574796113737184784175863811000214561393148993767461679483385776127688479604835695651461461094301887392945672558607227651216039779654158184208453759565664436873200320697027486921882146231562805618676152006014213341484679538186402921198771545988981712342283088824343007365868611380807146972923347470332126917144177652156418117684767718041438725683857241517831554263836766135486566751115447513473339168598043655172666546506655355953431380021595405384823820194334740015452773136888716158033933013426788481969734297566464738310100693554373939750964656484044234510411073510193808243142155222768940453600778168030227535258139973036013915688317668537525991992494531065702055422830658802657563167990739586566627773344277504395988862157943800726765384994462323315456205712005538515484988794500949822858109878341373578600580989014613869138398926546992593026297416903999924299388373956715251138942845713642574390604269564101636767887910620102274622024897037191481310923381961218604610981324634944449427377805530814141614933464713041898991163332421789571830067055547322362001311369288737436912297319018818575561056808913280593473645807824042665575600878436437164301776297418451644160465243424574388545689830252477455359303168159603087839508100726528358237875689393028859611388182550018860617058495606488688518450425562947275257386530844160477658390147776073316873999726050358152774215212898390591332631743134503546365699318068915894211903318646099253432268923588117384460017797811926585468688064411709162708515112232258977265357332474558230774333578518388964793878215251182027973791168529763935961387051454814568367124605710342742813668040014885442119075447465193440036506546555965921454353871378682512108814425387225615117405795510871921413932142403351304478986613305769080346915375086232720700209735646680944414246399977473195678152324587384385928712109964868337579763827980350302850635667052948518708318001003811036672539626991880728352771650541214955344579830292870088132689565980738782079810081119921769302799446051467744599749350304268719545769671305309742199433933973247201463882887869507479794450149750259117083521117841850522230410191523014583406855968614791073559228964763541846660179472036213350475044803812860878755850909925907381043842761570125521123462818328820164589820559095095201507322200674311432766745283181591180984324791524398446928897337113737774184649436717113049438674987393136987266607561000407607407727636147127894982165833899820311568044921242841884169227345809193228353329385295949628677227645647651960806439577093105305426142299983624455321510932286473005635844697353049971020186355260545149080873639959748528337393175641779822312452232019480055209322787932112538662787001764479444072820108709799829146613477127096994170031517294624256357546748386444851224231437107740467927530266927658599596453253667586110558109235649448138917462800244009028500224919852510305239847050981241649532595915844034194466493884266076668041312794157452182642817165212301013673073966757440113222275199200432518786579813241599163244522520439740886999339282975304545995869615762549232486901193960485628560175875280298807933175846203132343440852834580626272159792474343626877473198114132593861784752017942441650888604000357983410182033930322932165741218373123234246046638736516277006113441578907865202814866739362536712759002685533977698555521305128211926951164548865358171692535253764758979812033435001439464553404137192278542787176858225600788257625409987624828701463398759211290115727869165003268544945437579605996603646949168269090540727150145295374752977035075082630568178279147583369030785602079950298538664349251888619531325166686944730165764499144203805841104509722332293632487185046082181388210944273195700357375634114139357691370383688680483127522867816220159698655458376044760007439045627460604060216955871836526160142586370780171963646886041244524770988840932340928263916791324009943212147785058759892196226035807261856837747891962655582538119866965271611329415079170903541812224104700610566720407155002644058525505997920534422531909378462496010938040010146965075195099365855276626867839808656946798535975616621508019150885031762975182207158084077269085229565368169044194553495328401398145608950055256642669854143314670397689573826622835029210775560988650591465506991231064529358389411828186023987094490084913553645368881909397903586338865575319083081227308223863271584192730394032550494970498994433209075085392470574671657519045502133345215760488064048372725892222190045139745348250167115745849151805768540038624750461492816833346651995893309036523863262120928079798293328774211651116074211448842544020267230551529202666450387203805371633482193072082447179982804897364779703452518643053939513637108929701581019009282255374838858283259047893712288258774517052523402131289549903289587838158689091260141879347348766062196629077950292384090279992083538270348861637268000448065978941205885818458817370918437798237407966759719166299009509142745748409201634618809339624014220605454149588878779713869048381485680822731736913713796033826296999415128216891111400306571193866992365915383157416796548172726699328330808359547923274359655529336509225983362997646717834762776677128918561901907338420888496784072357284200151876317564331386621110789315512161252851719316302860679607305105292880877802212610503149586883630513597171227041730533629426185264289016675518971301301037996003801601337695226087780548132558544534949605337015620024785029546789924894161492718836929965865619833111568498164763387278603734209620113920340191182163252002732622538798059051332992538595420022502388440004992378784764911893972301375255282486823175949693516921095874233768667590917515842457699130656942020349926160659013855723736635245548777934908830203055206051202025507508836591746952119095480748319778219046375144956892901150368605817133084452135552674619181624987075031556373599416824285140877712673808503031942561445525980659691387796222371292249373885734715476448155361498408155897365230425304323925920896414319233859073196325949603731789082230855528851574443927196755818530628862366152573910806780789363657904308803444810810466086127177216542999646087665636246348832313409044091980402838729456341968338718896359414913074648111276269751691906887603936626770530056424634570564890353347811820415629084504282607934987695402072415017615502552518185654859503318438127154385829149018845754694088581271613867780487613622761863984574891109543520281752885134241382444719123520939103365754951043062004682475754194749655952293668928844940099070705178786428896218765177455610889500353121864752288447337528616242147875942309701680135593944371169083616143165555322228197479938213181227043761275418693958870413786642906220315424481806492727545206600392768912920287850253677097409532620314459139325633913025651445959191223782448255297419745575203887076367609374983953710870786540295597074040129159136732372917922188498718651039279083698954649021462978549868555652782771204984325428590628423471924287591370490001854139975045578970142209280534941830099720734553769580152654756335954169499227980057542200816302908563999848012446245271409280292518697501303082999298035310797511892004375841757347422370248901751541275093982297974831206145794399216191582404617977413894120158468106782239336138631115830570575104428240471858361275684694445942674137149673613201417079731545975063169730034617485747989720849990777008868441368776766035064071127372893117561864268506825796554450015629621606918375433610985209552831798045792398671202726448458689150232439587502655395817821271663163307182998543701863780050254032203877026775615943371459711622999252798183220430727728527971609927616154640862952143098331228074649880494394558262830543501792717685662936910375819264685823888912109178756063325506257329948416834470707306187067379296396593270694399194008532280368389232527096246065816910571768230362391484331375216425247438766614279738924624806512171944094195055262508795347475778746585526195628343052196323810829079409234866066492935156604389585051314713104765922362183225604830820874635970206601710616652333445473618297565438365155847030246783604464582121295344504256676984998289175219751643571346779916515035681473638059038871546988792006260288978051464511972155833011702187938309742309231916731673867217891820375186997941861627646263399286433111284098187005193639515581526200116267758220987068005252299299071483083149037731362869339517553525048346231843959945984055961618789382599154479534155583506446657559017453022669935414234235993994138786497257351594544148643688889936164578807655073142060286918065134478279453308308505248449353938252623041517214060744591772112246529790783428128761584013377903712069796829495727792889761470627983577595121746011606551894507263520914864852552693899933473304237663997588926038402220772247986468923744272094518158336014609048040337267599273863561531402050995845599711590974775458520980429697515444095498729815820787847142368770657614876735884093120973497599561717165648122446282281036276524084124624636623550284899273543026622682848250536663909219326513975911078536473836823415838087479925067141127489974358966180232908095735422638836981335879790059622392803327397570119990665942285849316038490890314659759657440187409354758815717614452552437838704294328967921807026231023395641756107782956188397690664290313779142941602829539958453377811397647881390119924029213812980954938467813470533810000680561044664624422627853808800664006181138770577369798861528447685612485392074952479827301070530649649736056061913965845941386546821467846190870413248097434990604984059368358302216036848078732349310346759149158985713953033514932003264160673604976896633914102876201352802528820151634291991096511344729106800382733376405355669111169482944919714104931570393888020973018194984833187250227678556128664482536907262466744575758987631390708548625636749255836775371239338288310347874884569967031847228624350915862627377029288586452960011198491942094036410528242238279248146605773324381946113933645490237879405111887147537632694321975335799012985745866391806428040902197929231476096581737209987362685330124900730451216552839299201937711593731590561294566641852776563876455596027334623589019418662148085939916317147448129164632123615597429907012885230009238179455958138349301696688807063498930737294726777106402330280932407740859027887185214210974072062210284583958880786773774758285843262777885215228665377515302856960189587733987432765344320832342092140751777625142070737044792498047595753736676086768062942169745469151873536888947904164116685313666157396626112743649970384907487653561234216737287771228052912857086956598760969657476104219741917278276608377567382076294964418831156380184671747213911888926983571969804852967306565814992541302102869567415627095535481037946600615703375861904288992795706714005925032609935122373891150782949088035390472069268466539412656066116433760689011413235024662209690216695183668113364723795747682053766429119373309861176100020005064012156448298328057204031321871891006631672838396023058627355239271542009388896501429563372226705247631126946887292201355335097990055068383993717041145846185357288693770150003193951710396142670056990215656056387784913159350485955522354606019016352930322061016248357902120682997051051752090673748510778401330556639107953970711838125556694673118002338354902162269695883789948932662120437795782767412342314576859791573048249796430618191000072768000558555124998401007558076448063273569804438205489955281787851796985831019290340746634749466162158910605599595441061781062699532444269792516747598458964637172592681771513174746066202081193574532430381343161507319596885876117285360032309414696247192134545397240739943857148267217134992376088056465490194604202108884058879100978966914764927416587438946632930449913606093305057816738694432998284290272518577576393489506297783950439885740076976490030294872912503977636719312789769614882239982519433437769980298885595496585626921981499569139042417475396646823384211313582837906982780458826853879718266738933119991641309043284233416870781749973152447026897382505806772932062178902418570363823203832251153925534161624941609459945771886702673186256141003193089130544542201366844589363412097538244440204264237524437196901795262919703822256753051123713448545964598848746853546943722191708881190955423112664956974058004567755502779003258250394724134275662403543401951125012713490353420664187229625526506646329203812130088790768251569620052359246153769142737749017794964820284936202285958919645553381029494587864367776837929296612091453684307484668792626216037397398389304059432676526894152550426249780057402640724651948159153388310985646768185141845420814391478120555288757376507541370020809090512398349097901955885474124717246229922314991533015686457322145783090026667442533806229082045885298025376593025943335612076733278842273264525371678296037839927739221656263308137386184802484404800463463414074203527243720048525566422707746731235205210201451874954928376859273968216271193921390715954382356938226408310421304487319143257554412229800218779466705288994827420727763425617409800628059374479854663072071577768755057935436680196331690141255203562033952867468368849011400109778633133286856751132337402891493178458900262833865064576481304704228352816542897152438922512678364672465071081776751652952173517891484858626193450785621249936906026110665906482395608488452850109335930903170448811439206587569300534157767857781707568190154915043384147221601227489956862398159494695874370855560326026247748789541919592703231526842648068136912923580764216200961597170753617517855487348740819098958536294381135582753295809243083461765137020697987169404332048006293493753307274424270046875535410846376873609852993996320568840684045560964061470600923362891047106325801656135426903995491967174959927168987233315789399196402876145674662304859211525243735727554014432676043750779473226348368090894443625688330337782932822044087491031194681210075595509653172840823755625846527062994154847637381626337823258256559270968544877864396462138275458247123673781531100477959871978029423653399893893508411117851635414958544847251786873567449926635656715282325878807705912017240375636332594481986955029167853649634326777805821694471790557154082093713429066816248529017013702479526563951138983375386124674553267997371258666088155466227024457364626318935828028058311837101086319059180300339962588957741793775509814095039937462750338183895121862395168989417703434577039067760479749022312120848375893567899455385715022615502612676590389873847084014089397986471462550698716836413648641933955804593704925136829705757983319101206501252510549159745265273239903871079019623403708636122875040759010684178229900827265196141368436389070593048390513659115151811644981808122861802845011833329957774700378937107298120673133733503847428460602865055539988603936926922837797443794863967290710410950001546008058562010795774658953274989191389673868482409733221476556638353596956900570053854828050635252875672692767477559423700271938232225879765956547713068123835811932825899396431705659146351218165416651925586138999022835721825266690689974464000175333426777669639475689158257588798801412949053693136151310560182548648738386110640189967858334222775540770616480688138059168236475470001091501196184005113451890669443950143945950233314405822307616803155398099003928073170411165331390167914595924463054826141855855382928307907646281592956560474497231570014329590366865566313579596942533300176112914190034011457231286799915206836878675759227273681010989022040115662091742265527628081523620117860184391535240071189957380850079627550909061557889939108999770230259761687715945689226925257156185525796954169860175445470957060218966951074075289285524300812693795829920927685330886963483458752680668000123494860968229816453116983441780245484842167658390649190480207049335799587318448543445155789765102009392198630503962630188396432534141899979583002081077528439692012006749169655666353358545725422020101793700736669362622189875306397969231741272527093069965695524442330280183404590385797333045835452706046200254168910376687966714238381266038608670612178060081869996475985895251799792756504465354782016969932214265659592461924851219833101640903488186461871713168132955874345114765572083792356805082105924985865814568777304379126439080135018284090693088907504513892715499504029338700414886158647995620745307634273078975516509042672199463259662344327803004697933948953087624967218557078325475163784333470492699233347052735611371641117556383966633948853070219823936251334107286878232945599761964508143794331473030765654853596979497947951841378271648885288822855965673621458014314753703560744692652792722209726180808155955129360283826833734159069063307782504652114353186807042884272257108841389361529903486831004449238264130007075091384119810574258938205603627202450704931241326554574423511726052960889116133954013152926107547637658384620837543956956392515450267472222688453263141216118746301282230186955806067323079866129224949750491255769068373546471539512828140769055124377581262611077239011462185156500773846526451487980968062383981018844486619269900049054876131317786723260115034287824568435844671747600952788312708185853719001067774504758331241397457688685741275799522580522333733892942679987351406817886359999162109244336210432929951759814529985698046192172905584599947979673537993645932279973223677935866871704663153001972053675868871182323574470075658989032861878100804545324542676754677866693754583623780927727777411538314871933218105293576404834159268205081040420816320505343239954308464660155570059386647824076966685189988285192561503218311464653817265070829900950145373848088173469797513504195682490154540150114092675005836763765813210344544931153639531356142097506623762244886699499471772140762359742696649516307615908911643733454439564566820142862894272564583569613710664291028623478938860078102367279259532797657804467497329606185518190430826002732710468366553872350551362026638800259606674642758993944798021481706503908575992974130613025079693679113957453830949109109478787691132806280376581563971352472433470758867744238311277073497989282018626928607776638046791651321410571267155607103210634060447808623340164152724314039872514324525366081862483045089072753338225513918761293405159603548703041528178140250902491775067096616439947731307785200019398951161538476794069259322904995350532632530619750670026152249101041319891930667180183678550037658034117719972954571461507526716238229608313501142605621088615436281533415482746571201513195815993770728217087188665126842038944435846229027834986442369865130926072915996722231138795456337560585313260092702012901622017182236915463844419088403099452078942486662812143514913495675779164291798108374627723881695844550668635874353994015964920912102452620933487548575543712965027613342523900698606353519597168154890694818096365154755208603909151721611156832313305434230498216202411283655016362566452564307177968381214577424367880994933663444202175648241880767368837519930748509403745772846555102565780574515852242212667357693082670739642640077710066898029722783743313075647364750629616865800300155562356972907575841394072406995116644578595677370965377238157771328164351274133654207325886582522286993400030681275443478536519290279736604004371975624912592675744942793304878990836684173075927699985683112214236845800369795984506129974441443753839003921564903650527023395263630873013719822791175163121732015036817351958443705887993409514759807304404163092145531266951099624690568214626857537216249429211374101828738217906577315084312444101320806686457221752801366183992493860921972801106213031007109946149910751019034729854663056953082301787229516714349584762550113946642798851845291519009172832830430492107739065667476758787099013651445457457289811812316706557689019592710948720050189605632036150735577983367004547791137522451568265170767681624547919977590648646541096577733327404495230212706824961048965912323904260920968631379842815288973852356487946261784659598688524058072950901039419457929734082525778561909261878239720500421542305440373925074163603141597993163947227693397760195539681549901530972554991600895374831627802330891003640005313551589273641454986948586336131325328007018507429048160581750661907450893108625152258980364708755077068021293938231891097250861950370908743201511526702690096073879712769582563220453436333827706400966016728300401318566515794916470236389880039498870967816811989665277016076932573171415274777439219478896972088937312405245250343794120999447074166215641143401937853356688006820833684375911738369494872949560218987490924421017642912052246822401530082688744367206743517793447803886279515043753718077243197193217730563041860989801196140718519950980574855162399381088201167938002762157293300136798310564047683052846409636280720974933465341841413968760324578035462335964998648076856669716359527293644374310417959794561123185941437187988543984014209665843405289258850108755597105853837389124979325424244315903645780417890916309468911144453362514412191190651452387601354291335755910299631160911425353681721293655549727685466257100724313396494443185357361717760339099013498859914032629358730034060885403683030726935507854261891659684290542302339319656598630559231784056233635571845241925118145991407456467487329817278476838771667686757478814695150363973767556920925472489636814843538383601330778252547736051913678872475285066576610194035227392032098199142124555782901182015457671952593002816664421473235704920925878176722462251699296122479125468322774088830884774251302406026097473580838932214076013306945742778496472433290157673493560170457291443128858358688882915769663363666778024672105407546040437997144138173143423657366018634349048770451958388739178787391644122916032525012636114512740118672006609292838155123381376356550393568797118759730082652144970310535121663993802327482720756324991649781963631834135415757747951564465726015216343971690593640768402368916021922837745745186708122790552490157320202876951966446778271169155672198551836885142119945225427747133256041463614151529595581636865472134815885911110791521916590664020893421984243209602994908961137265908529744801711928624817549185796390052361841239705245917564011441126418447198589239439379989561533689357684478158020909139623324504946270772574129988932075039207873925705639874057460431477733692114829226283088988850383043034190033133037356879920573454855972989698112553010045760040496376216853926388808132330960641377956873284245491207961875928561015687659243648225571389877032112646730736171027592025733700527933623402401407577438694992559603888070730801446717513937199749754477880796812378574392834166416867315371868877234057578359140263002948713254894202693951524544101168039815009972843134527376917068343973504622066748277400496914379997906532971124242423404211063950234877750768528788261670898585069997810814015626076273469579466176381252523751861256604010146187080538770249929564921747024075302969114346800094817067247763390814448481191314413728640654664559165796891538114391972513889927903993086959748923681029412016954607449699678119573089216412014015721549677182833650972329031241976290371763319808620875282853343120861068959603690272865029126617828712791263575070699659644839458935849337132897779641092061969645687140422263258940407132629610959421739355212566299824092122348963941571487102533678329702410358182826092165324542850646447691359399356042213041028421264291334533154880351154163384910668238081320882188861040151643819038017983591142916915714972551421259502747301556082079677086911927048626745011478578527839830527800608063799291893168459069288249544308170048657959708164882197925103250071767689908508863693395055107247188174498899090901237568185904033940129369065558446506098973339392526456167591016128509707439436939807582151513943179006822554553366016202407015870197882683152357612618657864859234135625016188019493954983515957554784785152434836034585604776026918008750673177095140513671732080034823955906989014308457698187763760027750150576098718880995557575144132409436363483573764909424694299758610073575465099531628704428661253034446447672404107911032237137881132898664569776634400716596637381236363363354231045524867169959817261722628656079589493981971626242902421488010319779822957853505782111088993804337865459203558769769194181305632386240499059781885139948150521244760176753683308220432900472018058756031888757506600869626185650323987196521074361586353957622119762586573635096336212805001551794997776189856111003310724810453274538416940523149953766695042461596155380692874794696816353002707623067944359582602187568869195922755382608769430392330260564297739975486260588812129425408560915949859251051514981347043482073286404324244178054991288925828055776949802066586901046293331360418396821628541709140407382274254636841348379774126325969107693754919059202627239721001306252433662385203218419704613638394362926458692579490535822530716881435543081188161733333697256622664728663623734631203049412456103589112671144673481251533776828467318386275546214289617773143951100591886057014401470454721671426188946978447816823269619810151706619585271790968363284858873166982562876060008847224642805772423132897196493083625541939499308299413794535828249031810413444976299452617982123566197909093979632473729505302069222038527231037423144651100884909615047253621839252690826467836604072368092933477082194648416669852524207152231120717190044260899682363574810395308014813824326381549235422647929997835804756844006465575259920616284294301880270483172642918280206703400739482278743223286615713034598967982173310547637645653739146825300635197292889169758773979581543294018587962537035624788360496663188512091070972575618448204652471834965176940776577315789736940149090813914059802759017559087955968457446955071008113600672070440178874421178171359994835486881680345853887244117400037521618713016570518604947080084155476351588510363000575606714551505272692649602817725652063821894741029007721072704115840369494431253522106991582532740757720105192330167820630429744096059899565338806350212403790174545937088020846165090921396599048957671514739304081849201224312469289897485586897398608913920898697623783076726711620574102919826926615802505111255614315634123237379673304476257224957206220385910813902587832896195524923305864477005051104872710703522559157087288792890399346318971472896479497706313693505833220492150692819470699537546751575679812185276411362235745014082120752354029512166157434091827816426757205831535229965739681698067234728238758935491172192662560326004502251016838898530859952655777074016752521004628445586203363491501082991737254831795454712905668133229104016726150135550603100505821523965000618975954196136491135376685962565397245168844872244372973152265941617627730926822160829181172566029382943802317754684240755435038020734475411653139816545334847211543113585299857824391555992513968063569003756503627732327896263453324379497444874606985586489950465559778992578403469085918798695576117434309117897156265459581716299425817535938359614105838349831915151422830047000492774003622186011863411435807919978502562313019617343192173690061074248345912120083789915104177216244854765542961952432067812016319166989702103078202028973095369961410028227278320687768413672987987068187113007272828575707040765203426364749787948480412687095818436792828954484954203907018206567379524444503487504291840953232336880329461751106045249796278619485950125921447477330531973268457117720780885087542270671891831935302026811466225625725459623335276093113895180478389569343245894390765738075141552570445824447144493351850701593964395425538206152586519428010517589580780840085979120745107189545021509939061728888264460658487074634914244982846361436790552931058738828254290572013715688918718935480424528262948342730861049695532880068312948299951034401320930977505546373254971351423474389734714864368738412437012621079244980474709311635762273450672269521779968591601211640398303848082180948972857344181897778970236685125685807953501918728833874950943276846141098985928859073784184200301423284028723685577786630620042827735510262029450188556153864094940676323848864542675114107476998032150644036663470253109897948023708719132483672493896618662692035103382120485322002688188835032787297736796561084976405898328362215862738611659338108101184541327028731338003526642431159961786624653194609946974948190596170230314548688128613437907566008457168990629381364840829921872952124078712254295355706835286320191550647840733226437192180882737614133330864938783669646237511389352298493830743690617838196957768154472368204076859720340214070233355943609041268109699323153394507178222287770515775603652990326418059808379018415169953833380062274503325050713530893691840501019899642959068175350698994927068618444481139110277946089473233327928362268276870302347140808172531421078393936120315763139374537242250337574110486266679347104985382271601704577703196987262495136983962882609377549908159012978187937232343993357335855015401001874648141609073305932933973137785077989112483272830817180055578399002422013456854459058874481507256339783688400735095906168725387161921333922573345613875395274190989169455544734566788001900332892470133579395671657913083676077338794225220169960904944508738408261905708122979476553721382822331715534143759411613346023519260597021481615124792632139153735664455980839158455375068161139028049112108792928491700345417640496259161293839283660649952145302935806293213022964258545558009018733527227816540294538473949044840538826259073506815518864493486456213828943391599977218966659106638844191722898228699061740193875172758845187342885260473690930796851987676437871371334717035798987512429536227820814712687231101232461506777903684957780560680558523731263767835185201882227691581122972795176439953978831064402219921717632799647376366071329502181857433289181252837475452175918407664106873959240150901450511188093330404142011751134933602379550508097774718876881478236888787407934018630632204995403409482915405939733482207240269553719388131172554935420568461542811334549511171213122161685110607180521197677975837395947065680267405456261877652111436549860067708167302719729182969317927174433225861056456341963020969517139251756706707137235378859758271399822142456073952364537523557545396966771783467102650922867288571855222093099758155467020072473781199022405243324790870306994352472153690185381140760065871720802137320383559501018298965845640060180725177466186886223299405570791840086127384317724792073303345377333621619261602672013138332427230408333772985779101686164259299498973706358510427725372640426125406862630984743250654195231136718867702062162457358088043792338779005267708641808205359498111922068571996469499293443008119571235310821214992699820583521592436183138075038352347056208424836257904247245472132600907559456778078532371762274674952373200525123700774644019931959623423644396368689225924550975011303684173795603490763826233704656494168047344975039981207349787378744980798747574952221046829316365886697866053999282036624239521702543006688354814775750968280576431201453197476378861985704406852681077386737060030865233528166226513845656235172320218411193073773345215717704864767796430497904228528679616173310216122062252096926098457920893652324454309182421884161587866285626082617861960297751758827270269864466501965414756632689316274336244685551247868425397592098332265112235227146367637464630165853616283581405172935883497229236396825341153522030432685445103897650316821204326869774446072404296911465065395022930503059519810587553846330928974483206613620461015952235018224307950222905546966361731145905137686175473641366295916815958278176482834651914551085208212887151954579859375251202310152746898049093848618593685615861300844567525070544170015339538647494550022266897166619275942419365327404373807869198274102407961709003310001556529438004975006128226705891208133088427922223436650466770588453111183486569033615540457780140805821712268830563312992780933844289028025787768143212645679295964115771935126706526739947339346457723333119900852908947372661061639028839413431724975426973548048302557256849554205058611608637828971969811230813668078090507758193792146518279863100903203574954540389045880282323291619828989912753720660838479057332485092023486619667416039428762432917632750273399673546074958792100021324860871247107416496285998876736434506860311948921287325254372542305261693254346331190779202808015516462791436349969713495062492105204452036167423967962754090764805338162301927586174082346882091939023559213880470979811991946124464310768879181855740659982798548567699031048818173339031202944101891663515961104357160963759305798234090483388893483374038528251029850260251106836568259562130077470160251342887012494253048203680328965165177343720135597475228614782022752659157809868432960898813264376218605683557636895563200868057290308380292941965334619098848643991289356360023016596334016234971824708436835228119560026630620285382683475720912061178231985770796507934608166877681781329099099701481407143530344858895994560476981605779041619943153036061546064216391044296925026128722070197259417708502533420852754310258528679246016438498447804041145611210234734275755760758727719725888939698925878326157137038542234753900018983120004233399498732206871541638336908143442049950370534885795596844945528840860352094416062815568949687518947534460856967963430224252921397670571720394577188440572510875448242487102352763356647429854770276140943346986586038054109936823918092493101652890904259068433774418863806077416794410320171499033177594882644579648418082434747005807182765187178142021991297176192798248611334586297158254699036958073231563330508312562957644607782793195823445323762208904815931900820105750069387477237749084906515796702413498548444672167596824020053298190938198811678135273771813419303692284517896145642770325370458221324162173640445770316988626564360855278524904452208237205564444896662113135670080087604235720404260811303275005218606695635588353650535673540344423800572301976477956169419671900712179143218157418410317845363054060915812782749423768340965197163109903208071654791534828582087781719604391817829117753359982465017937258851304551708483639821965884067023339989578388019964210379904874829817848474701809182414098415710096439041357526595308064475261150330902881239203791897982741584779195852436285035219379569586515839223781077672279759250550255590129131130753960101202676931034693543337178805400037091200176298449119065823254026353903144273125806702497639979621734524577619635579169699501025283862478701180144051170139006443381897791003830110848724624883969914331936733742408170872747928199010509246328730734258810906655461985721739048444781444955255401465863549831513728915514431890175970489703371995058411921844815198348568979457342614270525156197877368115768595793767833977771010234146914381978064537209410060424529691886802125480897107099568729577570021843065353688410632898904606648137974555692977016761735569949787443455187662927346666055353977261145088123448885600503927452011787577112642540443445919915851096219555378754610953383103059583835086554406870559180797297429590688937906560112175156785877161821882226966670702143089673537604229433363929889081445950624570614177197844390972041776351877927257575078450617320855334855085106036973612394470129038168637983851083905487754713635297974231570797333471380529911276007889310136331341267352487770458437766062329900855523522618776106323350952058982722574369962258587315973577102170044277374342740039311363865615998890187746825338321125094210797910566784791906398413208132561935127291820233704117740821589600392975072534347265191707341233278955724226622586374921668345213207206437168897080334332370736100273420257832686975335383063945182580919973723275974604585511029747691099983796207564910708937053100436422038812571154546675206002354437555943623123996515187288980323391400403150499213136320355436039112599931126101391481921933223153709632279435993449404775202735042978655433337688266073311787030269553699789274159676263505931860349531419535127908789599654874430469086817560863456065524413463500226963363823793029267904533900843905887175770377271755306703559047878616328511611743547244042024310068897634549011193953495351087760074621087495551022148546334139942570749879708819047367790896758766998436285823328283552519153405854932312853839207052445842133426845175762807661048171396518600563785457448015224919052595805699426329237727201575539251090739556764115770981316702139239034579849398366238326179381549566059982289566270376237762547974442312289407128082964612897393091750237171857855021209557788331489462646881577672749164603658941409632776992262306888324177438146111315603608462049451797700554968894195392554981287227431202884959784342963847027821187379223283866852274629618978443563066591133793103216701483940793556853746088804909845432925296395054187925595722170839807381586043914432639073051686006563407045279355823100949720524104115577147661311296224187525598546042692754771040496492282237606479090082964492744643885399268648293480881945931486786666914417676590738172816060548692517880872437324502259713601075103427654740030597339261734243423315984930019120226337203352715694617036607379834141782038351662726692012291227396321427598037402273313813662698892243333247925360757119247341862853393291633952744499697887416729323108522240284377299453892615602495209399304065659784658788765111749205655675370587431716124921362198557155437331008402535561278711774941020116294127897431193849792337217087947723544354881588142950934056556160190748292567303137005667375645706114458634827795640093859428714557748666845067754395020247363385296972232407833495343766684133459338418291696904339884801615570149503464299299591828967227550707152835483802908072409398778537326900200849646884789217963397461776483074862219664442218387996255189857278119465091966502373684820283506568762127323036656060387857373362888423429885566779579643895089230318547155083071552791835539098788852719460140595282459539022712373860719188976783216015040330274367594623235160869591123024765205075284704148878345423886923983837481325590151641496983024173323252379709146024423591163630865558461314850109593960522979511402171466539478540494442961251164376474651519229031000144151738245110687268627388572722015722815144257074632462390998310792766769571533515413644879566157202339565428616693513001961956261814534884085280733648343908112628794519045448543567376797125117842981523707555910048706210362358435442845373184668200193113374221270499857317718291571137745661192123082962394300438203028967438625841238761653620568139946904168944864069483287830533621585145475486182578145338272922745416154503926968126482867759691220713531909602708625482342532303012885067872717370659243998392135101669288237588366926817353031931596694976889844835184376345475553451821172270813559528355255513450447486131081621905505271363776195760257512842763364287633395380092271745720000997215418658897599626489624738518113558791524595344763578652852426506168753614102228253046680872325832884372142422727453108225930176958918487316786001111608199686350763822612715847554855413596478473208955447010870454799821787545257682570111686032783900968714259525648163789139227933944517998179992657931406152162198806699516185554751637747463175465810628346573990600743703571722643968190317190730083753695118364013675629874220369204098686212440680874337807358883212891368014466047211667255711640697559302882591563627940497897129999851398569885448750808198176170303413255913313921702780345689881562744678321658675090422584047567368709536993796045069126259010281594836282475750031054089239738747394835069091517100549402480493824207864241500693307313803999681021558337527695542001165185843857666229142343186379992763031670829543322835473179445165190731743621435557063496557882487096111048558877462322912418341882039398150325935531198500958217681078174154628343587595888501231429340994409508788395784519427413287063988745686261760767464257332779661026479093576349522314465683365002894903389520057549785847477868861761975106137918538265236136205170454709734249447076879620119484523909894353375596241203538443813848109997900718019983066285801375907384212047759226855751440516353518031763475153155932231002559566083934516203433869300709311528918781415847591315608414627064134173046016385106275660045527727775641482348943135596326504457604433423201027054886559772294745494982581579747798065176359031170021324257639994980478004528311736090722445969481344422802332745739039139006019142437957042245413747161143978455410527510188364757814002308128095323591904823546834312010345404969653415561631688005257495697391915337247942410098705096849413527718658513968223155730926684947294866308198600296475982994631803368450666897971720355922386608370865592444567663873729326845661011495635916832480183415907367335267481085087010875046936320472886494333382262510528928105489593090480980702178473966997731312599474730289974756999758024599847826202311584791906117316237525913316787684992113467132608451138908711003629105847352727983614128646569930265933103927964627310982809738820558989398444609233241952868390280184715705671313215492158296547444493285978859452072829641008063251806847990809007183895926201126686360609577673485689162919288627887635865530158155663001698899034148860540315801901683273088652813787053404885962206197350999223987605246389466861472250703548475285884186245842557114161641859337763020466787209254736034177250473234089066876148618406851617389612291522412620658000546784341708361588301277855847407657424427358890013909501680533845265957937271827180379360128733876732297715465319166106602902008623886254851027153964607753528474188760702750245949682933691202867580540583031082546673773064695445755198213360195939031058267251836768266045185712206141433267407162989618647763384941765158195523070189658888139040827706574580855045075796126448969665165172778731673035351131879063196722516821510867780568580291297489972789393680888470897212116815085170559534742376529220346905519864532790239862472179458705186254452570367858646846233599711242488854345144375381134737228422028358923187341328299005085608768948887334825486703066219476675097786930689416067624550410682939506070219748057400439282442438228125506200404329835140939707124215527445819266154713129368629056910963233179461965898606881919032914435148390200226943895998130787375502039364237857699372738405168211889126589129929282822932877543273470816013845363917558288790609460146440041856926989173577019249491989190473442210171816979780694966842644586764549032317509903069323590914272458043337115019849832851570911986402120703272385608249316601667606363198329664912131053351867866435274675134092571178492348135811469910161038496632940619890716625797836528541119521377875041344625157908964710422580963459856142727995232802906699122227541885165616841543212082645260307444998690209141917801138557122793417399965286215785224068429630564027771584362779192213305600063099024483095769721620713488926632543879352696972255645455174688895682686423628460175426916308290213497232230608289361975103990193601577632322474713398513553738509443346873526770932496983844595831581442927326094347449565022782471045984904577348319700716144972597048622173745655970987335032224394513776054528265873717289250259360591454231076573057019548227488470518355862414733231720358725923059294446290864683356262930571086203680995500637416854514521659323539838512923557160581678655051627230142526000919374468919618979948566872410429981610346603757979850402619919681492347419044962656529228745766145968307689142407074769770463732513233609867997866128666060685061797787679202254251148517453305397867513181046969415657967439427314299936602645647980785536631403397816410254594096536127416281024455901551804459461478370556779802461927229277797162827749615677925065624025311802798308756207868803397658774134096658060865717202948658305949249082967071430906385316706321166915901817360370711709856747917675269391318398806590861123951062560509528574403485001212221719418698417182992096690740469477755714138856284874878320264756145623328074600155734897242639293882247589641378947464590967873713485087818126027219279291028854313098162972928239039146186430257087216807495038288549620240232199826731404511043830744941992060699886123070834147984041280997070296182831408649678586149511176849212671422743670987209528427240946187790738310747684459924134187399143664289140371293540697927094918335549695453947457229522122043485541360948284375132787611351041506933685259466374034721672627498945055294318031201106425109879716658789085318483192528888963351660811439946891510617289796884201820699141223884252335614795077956290605631839564629219015886522744160674725949514381171530034128206518913990334619313817337283792361976492492023650012002407943074753867872633264745516484565881029912821471332136630756332214981444120670136157334449434261523712748558538701526740970721519991625230831956960192272649135822893832667654280224713094377613052869829590264445967837719486253976230690099458291668270999882184965223417571950931690335754214581471165646747259310250677914625844143744531932274328752789636971025659227127222975256624291334005330417218302408692705456814151125825974429416086320240097788210396212239905820322197073536498840955235994861806679728773925314785114561181293973898161918145432702792621114328056099095501156164635658940582063015089041670626200475465259905302662471823054106570164573724910951855354758982209306029301073537893646796816630400350346068247392811771792053679381843102961847785978265831092998930213875722235472067746200698162424718027939225729647884586445669546679039361887534934786788104825547551476190060536196169261448543423358006667390237790835213759470922954504065337610232636066377823254806827540770111219003360919131861809020034019493633715722140736758978771389008991176564753071826114301007906002558302086480008867544006912073046989064820118420944206084923051319615742225980184823406324941327203853379433986086457267115461641651171928299542914422225562722038801146574426018165349472186840356904277681743706565522685368390627696091147863069413452785633262625483984069237629184786673702154488760400938910286001398862681098715306597771068461304637307523508237196716982095748978096883768870151289290762385131539506423664400076835157076563131828355276148129552240452655760957528753152479120336363996681731594258977041342599177681949840559438333672898177634529538158291499817709929177665939441575359635460757598606457553602495164272973107300616348586460741207462297806822769495077605958206503066969106043370322763665920199009787187333795015026994600898721320198358086258962793574408008484811294239297363611654364851358416866403516992401431580341890739794953267372568589361978462251834621426766392137528726944363328552149002476232724073199880060906511802154435517870699925104565314674499913774730164552093986494032930306998688180864052409070247905990694907167255987535455521343390679092069979676189545347890549219284310422370803748074431543615155722706114952483854590662065474341595570344086495839484677870909100129136632163868755480275600478128696391865640698108220137122494022955395308739467502887691003001729175778352075942839329818032739418052740173636232538690527016911652525793650606705104910958328925262470315181526657991921887278434163402942964319842214274914370442200533141283692456366175561540425175761378082082867147081576868154906166035121427399939159911937519002258849488502566480614547783551532364486393493963283695301462241554876815182024220795035600272330424935613751070612561029615974348577830972057420636096538176339503970284052151706631814053470418059506792679888172031580853650241385683047689263245635890904133748706237525079416498826425678237015417244821695411538387285153808241841782981353074217655903977867969976110168856489931072481891940283288983676527343027410466823912419037011546562680220752346309868355737620836059788241079904315162902225968544553079433139076758456073111441402058500238997606389738238916124616348920912024027256971763090684313612727451026205366749540943457930716974586524597471289343324733264560272686521356833927089802843985225948385192783098874040974200087180445642731045811644429777512125900180206709539758268108764462990708290645800773020716164119299507347190291808350501826576156441882481221432802305688566083780827026757473552446054108684498300946322365681026512554067628684366870313192463865355120641473945344521041856819557038029578513838042109548150403304859747157537584266593541539868428241103003493076243194099721892079548574902948371644395074455451509292521390740418532177311651218136713405561033286234180673269076662605724661373834320794023720400196910286106250816846913569979557787809810324540048258902368320888367150378914208421591598711894323714918964986550139327316723714575839180921999979382150825500918580718305479329922911407108938600260478597598362685700441503745587542019349943888176550517538743713914303946012998773660881254280340337767510652304378615606150879030468453781648917436008780187124884511999919482457121432747252459667541384038543782756193703292027332511735149994171311938990027773998024430457619257621426679885001073437868935786181101003040856533671723490930030282177037867110221058547067464911031097974204454170907997710114633791264720282178419717352007879112645432669932613343016426634025364588624748531427115390399060025217182071921486082251063287628467050052739457070934633626368744231963577111576069846163819222112614621397672417166680530905662227210788242902594235095554682986906859646483547385534126968484619896835511034997383935435901338348786249520790267717463209023660704825892883699871414460681547858951886169724134295597418258889570460150910972454132750320279078596313662704478372507602885739884974050208768208894290081591863881152446427568397925913119165095303137478040764347800823515772896770472788565427995283063069751680276746640544393395222129532061831966684060013425236450051374442363555738142166154630933518739991546292119288126677148766355479345839296998569801804423444123551599625118779748524872605512941193248086964997079765014980261323126182826147022993818610828946764699404038395101938196582601193672129595908356314325758267765000456508281346352243262802999495850183595822496445610491409981979096684896061587888451431079593665771991225527701220996029193999057951478302528669248596427229643206005788519762260174993242737254085506053474568178462760451852079204550249701798820866860484255876481781591131312383510501837016119891507315301326953766294525678475243701243727914937685417013181574343510085273568706787805956967832441179687425423067685552665377969001063264708729595307503432749894275138279738951257840700357640162486419203207823509224046248157384902097315540561443937617823378592938094605948157348668447019119117707930785942972229916268993711120216813883100633341175379808050964948192018068283414734265153030693669527745905405555161166325975147763385956740215801453535578220806893443628337491755185868872879916677279775651751166875893472541673563798609244232693194610212852820078871213293100487739777426558879240321693591831960615816681857129506750002473564256981502371339151070774926523229927372786132913351357208584048358370876488092504773444328446304966893013150316924894695782161595542579321278601257197776604697999102993284559202811486717504320447963680368868599804035888929436550591583689958878920744185445842744481324042283130833975887119321011724555449736641868748867738358807296140376553506746351670726347495324083841303428823836871895128023856722855109595257002137698383688482871588807875578716919976278452794803494113268689761990045091052299315830358334068981158958778697321385450304281151849693793924058414678974435935729894250709418851359850401839975214856552547255890634169145334150727847107165151797778413421692695671960973179400386617892869030270497137690580381031691440412211394066736186496823854548949235214189020583427027208759590817726765981607622247459907424575578955766338781804553622720987970395005152409990055261930769726796209983586653934702390302007412449694990127932529095632144259117332143824730820531592983575559983049324147456229350561109504603566295779759587069333389861893268237587335605210431359830387773427886034211252094375014245485280956345692435554141423135598829664230069739714152634247255033085959925562037756302058220707882358662159635759827199425618304722971649909477910472733919503506384834612115153089564239781132601194944004719525882066235052469531539914559621849792445490373836849848700108783727052378862327629103754478157113480204964174774470670111712622594378817406798051789006931201859383731596891272266422503674027482032442758782967001262500173069408081145150947056586526765069582010785553276482905198410877591199733848585077341208002369580691743930137070465357989928913416669188479955007133677486349855222066033775259113944242720625397794858935651149652776040728505966998456232627042205097378019946664999530941559269439354186003767583934033083237665049684543192609337954185418111281394327729196761233292155160101279384328593139776252488115676989516719393520213425109819097289332094692919713403832307839323371748042795125976333378720865826789236714550381414158042582418035564094218054482221043329176809256034750680685390772372970377862584820293469060262760553753627864724667649650751747231235782061522865822748813600132873760391177631397959630692249644835403224045805297527839570111149557378574869566506813570920817328946088902459724198069715971778088151158384887071509527816790703667938956583824338729764957699042158991657552881297893181517345856660181773195201155829681641481375294895805148954603101605503115377113002795028341832792367770114547352359327369807592664383793484284327261989247555179525596138023717425807729376042417972273026486889094765867456974042100190405323277491831293683730496021316730029882381693901054931794254771997963026047765824763197705393938967710438711236494941169921737946175593972865731070053331806143330920450278307998675947992045762791725534522802370221011121648625336532522921656155513510361661798236889104441166792792156086593935044796259636649024635360452036156811182672242274319425378309618954936609078087222002313687953513759541874100962338118924331526207385921746185457001362869721155776894616967944791443928927417767270006688423829283738825504615270372523786795968949946673736230591235817692009507910344178712668250883874144138990741259220676317213144746915510397265783858920452659552819919356823964083703447536251422091866659931746750651379673655403547667982453945332097834850323223167228501222632001805627439488085200430043378464444907517518497940742535242495929054275802031938937216904590846764576561144840090528153015054219627695024269835154442316722925561075891306970808516166576133796091055158462571596873600220139540788240043537169877404588819104138500319716414610596228304040917826164269965301594665555915051046074493095711730320782791082609341022033524144582649007616978848395089251396441397859294918808956994679648037643489834979049516315769314784902067301166622879090613837630483064676062740487870692103251648086183038744376876707048810119125782217427483440599094901867183317759602333484755430974118853094400258252432341380667913546782209839077536310776986645113933172452018090726937965541413374625085820466264846482172517567870491887961820924387510654210341649716092525212360953701932068323367028358085523006094799359125369169780616972937759124433728953205410440778093264725802809245439465064515074349954171163984271699387426503919606282411931804551787405858558075392774952878190055043516950621702141464977173948860953804242964126365104561909008552108445484241892803957720490022488869659851550634016684301669572614100240424086132855784645116166878221009739061637865808797741016132160752415795182794496490724732446281395914299919683626836846643629140246884956526752643538095110352598622450713047114290803848529209053589036369338535659944621403448876688526116335701035647166696592618175060459979017194954805387925685113126239940649945648064121397210586368264693449423514990162386674526623188345473139198793857651505266066381008786649126845845911800430845064568375286802500317646288489060832587063909233617246220864294848874675417809854345890465311590728304356442690107232423186764508269833323150623642918997997518607048783725080471780801899794814064735898863891934123683504311269245366156679763604057613356296010933639725659530410854361722645032362238358661351142076761483275275421227466206449885923752368440611479636503973595052672248203426202254626721326478784321802356450066059285481254220084994855876040178074884546954893659666920527493900778882329861537472675477380074467839673391409494291503458114519556857278322066811470428364193972958294543705145237409271502665014744580106855760461249439876282491527810085623902411852773687527359329287679339249345446337011905890886141234132222031810986912541720380100111026828807143655170729952025572325616888562020176224696792082266596032122668864818111632369238726032639758191923495333787739011975549497906249375160911617210115253745383086463843203111711765203514982564481105873595973292421938667208794642994864762912398541821959608252335520434650320675013606773349930697489175760084908255813712012708369576601642246679138905368399358554626457596118238771733152324427475581185266551785246373818425743298861791438212176131757878131052299005405187480281054887960897849606524773602059989556872281253022821572241593982460218586744476142117564481636954281301718971748459364878862972929854522113589049774438342197789817882710199500774802140990820990590390796762934034469786844509308947693324730720812124311963975872707384837355518316904767988545498963215347312215034671333685309257058024275169067044117114895510996812336496645314935203751852917995776382150514372905861192248613196927108040736359472628669761008295672514969638396318327635372217848099038252786851871958981963827089684100257120180935324472807377659988925440924170433100247485851141085214198648988856727496642999711900367235053420267506645671064932593368096017895413361784325284235919783151498473453393095418969343686323799332387959418156640224801426682021385021307582575686959381137570142083002715945513659497855206878258780047827681229476344871947635362118413480965377495169919968658423228084300610141015103656622774102075014128188747440836148596753192631230933312743996628848183322742394046806121950601159533438076837134657284456462559403150469914230373191022891675269260764688240557093345103147116411013706418115499453231920511169752651504404482687158053148373907746985156012334339000801869824704036575397274224396095019188852503066976555740880398282615808552913718000826788056696967114521449239305520448473892531287172543925791615271500607806946488594275948445749119892056756208744471137372877547378730730938630366680331951172405577193515491224979631545931131364425587870912481620483085839905836870514027135537454571951233508697383688406705759483740108862176681092554296368733836248529545971829127656800391887578807014398798006398550309619721630183400945087071344255878387122980362056991142386389764137785947011100178465445381825218051300956212292526027077878584212106433547101527285573872024772459914803360406980018062572716150948306395081597381522207408343333571605792018591226123967690537679479790922763110145184676722665020081392662060860102492905823718721286048574859617031650060079159405706815818654591980948998628677423557703570280001588630005138943537613079632756258463004250527864884229400226312635169678438774071856907329035377547188660739239268615242502492870938087807555620014667691393825647000761063836131810335848483970066221507521378220329699420957639447893885267094183179270669322832990591755449928779116047228619025836676774180782631393964945183533232763287597873663290549989172040847885333460773062363037974172052719572554619046425123232452424633836203574052517659262219467497522572692116891538769998457961008815350820108043917221041613395665345338608577801226069071420742213172280081373169076391757502584736041446902807902463376612596975804451368035812950776729431196160763154132775033530053755099682389268477679370625364819678158623344914221468524589838570128596523677100669894866829863423656020854365070333582518876292509019408051837759460949942233669028273203273804945022226748301983423278536760088082585694767403187157120138596671659901206400504406670975667406785302624060165685506533566256863157848290171596362185643135969185223098059737300387031418808519763720852443644352758272802101034551659804306754153962083098574968247884602514471432277868517762455907101686950909509557416786619464074643585181246547101606074819753676032455839870743152580321604548023892024676037747794958186555112942703260037591424535903380539963138068557538505300920062616901785537569105320102788599305123717047111420996457224357801387756243726467283035832727470390924774902949650144377674136272987097026601173564922951115056709402850576489454028107916755834913042485022269231387890493114896620229155851703736519505309309201157318738095390141317688836428836709452020570533739518315104500301751173131678079883451436844705568640121110195997924858562991001792064623744280454747183604597608122341966085834409634981977742744819746944940427983889533377258563171138651213429071198529664114466067917741083249642224412178003076332358864154748368654129391888066328639712013610021939492641327660185753774019542147962850963172103255995011714715436318666204807746108475484167851171958614414902627097213246254390912663891491003063457248880577359339766699798528212864360822864822656948840095074182504930981910883533811035498119022502780827636445989269520692822587422436974551480654119654212051419148892402024794407707760114564089997734554975060872727158490279292039134203536843289606276834988984102556320823489188290362544835984451419949311352328093946423754989620725965016090103047844694670964969339802906064437698208479331847282936716725770125223576830356799759625214712219587194627476098258053326279573359202746521911337718338278127151649643551817770779143111077725830477919207371522297571896208656949315598829293711601532868367179047530916281599072890774390493934301582642784227867534439727620944619169618648924472314180009422034514198683853668255807063482974745829490364506553460299103151525738737979876212725656271119531405284746798147149343985063188998193928751111348868154516060133289300374254112574861166606699648822359638409385618415293000006657221168488245247120166158823215499963808198615512545203647154293765802511360133356949315876127943402255160884826487962412216541667915513424805509813518057262071244317238260157483023128583186804693191469161115108777814613150974589937444564338017898909769541044394601236592043527398120343694240080556767832058214223192446881533104625032997163483275015919946011169723589334496009009977532964195085474617157113380631869987483759726216235102395811587471575364744351934137487960699080610597651291981271379051045495799764347685667832387455146124422321789295572755737388429877099955709561733141162850535017237890548949743447780414317193373175582411256154844521275594904949488956977027955470628432445545041703901111911884520180742394226052858946547128606359915263172488721638138179873988722434853685362458589344983509666456632068554546370276080884058611615123800959312821477539338838782993992018536194457763202375285297172815599251099674160618903021739646564270826364462237495353869840109827996179957314604782075813676069369154344275624213505458382709307945045352507757735931296622222060367479952349417075899854635599994949080331821957597301893322505285388844876395628576220195294431041027841930491784502526388812307291721088384596682007050993393854478388194074007462654855537695733898003708782085330833105788221119112539773344544552452785460477403308688223552871196719105874554544308582189218693253336486601716672020027726608937341363724960801630383607517772316067436415562931708901495838528670161792801610164683717558289371931140544370581732899272777739284785312641438379146890545666433500212886964313493996108972777183569767532247221002333093333485357269206156588166852784059219959902932947543792913266412197282625021448464134047780295962017571030103172919568107845924733657140085568184946194689165726486408160232796990302073402246772854718822288037215065650340946764192706189493692626178924720042234714567397988434922259423220301735093332928555796473145518596472910993083643409069784610642315749577029683900431608654978401267268043525818538020609929345876079634388615506902406320688363450670942972284106129182876564024503474815966180507215578436750100573064804671698219983379432197842002531374406631602654430113367699241341764810545436109721702867637711908344102903207253635845402016253811831523134413023918621575547936194829503415450078016989252779756376466617260565643818289243158328083752897301958542180803739550223926063510358841173295328220160143474381471961868018257690056811136171827465210316088880881715058336577928813160313582712445752125093617519754677539260926809806869374279538844018229183624041937484470460102314045351780182804919552475684962005941347967760958158531140290690046543190022863071705309338454748426982010179919500721159507878418378613159752869400826186334337890255950181366124476179914585448011404776995806054613414056988738103027791880717935038788439200281883728493831143831594006008407087249311912311010390890824892243420227967841297887987401057133025795746757087955718160882130425461577566645926619061007374826045729518800738874497506295370749527057365902738130009700984696542709187369802256947100937948965281668466086136552669960504100668490096631509822010241989976770166355898309794753946757470377344991844147001521372562054487093144566625752690510388432497050649643291986305661839840804818378166435768089640572951738958282391759544296792581390657489776355327578656380151566961263070124781330406801515194133449598576321219617639342161294798699811190508761971853650004873031609542365972704393045089927907781539628641768911305159227042885094804058232670811967798148071804620779422168314649202742211622414603162324734319973161541721154699708490719631947375341143544538186735852552388035435438315049032323866743873556755285504953691851669258989240444476156114410529667016066819353202894238540351211452648969792064782243611624965718911894019927783190946847255723299973224283618740542063294338907103213142565362841855082774176018983758578876672297572652656944161939421039126414090957620794194183438831837738040570527676263793633118972310212555777345649899516209713792555909792315631670020936868688568551026334694318755853180409972387422303514476498425294481135273720432577488843772222867581874062821980500004995554603652297321784633113500425929589603425143679337864724894904438844945238509098635548551038507455896861001402871132934491383534445185474143471799491159586299439538931591186844239482163117576185322459295410518175961796834233245200663718762791137825680603675829800634129991648619467522062210132224073905105920373318944846767386253292115889264814209397292714584357070913328224522112458277761233123315613250482944962449511952844949361288578487871522000322533254599944238980809381369518398287293496465341343573759581160674890056562049271962940142604528250128029468270429126693701796306205783584786309412966654699606464155718305045075958124645552609843053651705536677964939702760622819452410802456783818775757283170699835065967479499337271692946145294058712155565023890750792212302314447099329216053181067970980934785710338364970263695329866556671179419373174000426362616437267295999521757231303018001119985030486671293212384516191287931779894908999525543782527061767952942419985421821289793221609869800960970257089486439708598407170912882920470731152516660258915902037101600718949966716052666290988282073698848497373365583997454393945439076260192444987749581357314355090770484557946492223514816885960439817900933038216868065196265542539996763183689259345210691855108132086692423740673413384428060970413359643101400623287193880073672407106202233487509797930337497672528010923579540001759926942582789061640652409625686957859051551547719147766465397953477774246756113212404603149499557853228944055543557372276471112305601944385048793762728680399432568877621048893135499678141946104654323404561540454740877017634574864979413815768363098622079772850885088760097548157970396130029865050562645315128562081048597315099265246269245180302540140448380616543520229189284453895360118291942634287747661843159398475369455206004995704857099194151471677049952554470681157601174860406593564642224031978475195532995022186844137733918356725536119125386972616415563431139970120624383638811183215142943584096326752483378974272999144734971760290009577907492535911020921061815017551195274370784686909067104781622796192721064333363536078022938115058206971893231180854133583678562361118578664871159518998873197203870835042577055070493567895976363550329157660872167681045145361756244837577191352207124055211319871171139089493082325236027079810200640016922960376299158657823292433726222913510976242085910167117927641416802043870021406518903407660456396197409662460033991076462542941920786927409595380049587279784531988490083806412072122137963978837284244794385877321106683967324962605223175141066834751615208722560527008352491971070591442554860418805918347898609342451830262054127596403491187717687282918307256197312109065204567976246611267960568146192076362330446568983783671717966922484788393920736161284443610886740304864469812802147248119468016785651890260155111932386838778327396585044545610569552830468096273414880541613793458054801777226967599198084566536208447346495185081043166445965370039513722226452448646364216788125573755206623996369200457324979999168888362148180639013180333329903832701692576959971729054092247429027100714908562385552196608159319826895556916594403095262692762398735734848325942071728104302664051037414232053486189417028584963277242547328214684209371483749871385288664480291208311417936818649510007447614728266956450887165305992093410951198443210193956111125897443238092261598662033880040488329728495876197753459161609065950818229654016851543080911123827359166074751096451088070396081491582819496794818237717114384455506181522937500651719497732541094171624531353563621103723142206354290841509858908605330907594436268867180278815319569949478542213786821631196591614125815592544106560233691165416014461470844243756217830302401280956705826579914660425241990621667871544464545801805006874935022582514174312135461614848284944064196607887141883414516753635776066998497486864402900757548848893858042035190771839717135469871681061201505379991380871106654375142243197332766358339576342769459212178582920705284032176492908500124536769720215217797430988958508607027419409694039304604344971248793958697284823499619016477337523634264725072658757240803380563406232367389134245161465958831626552425355309982762401772508697912896045753457817277128843780199381095532716935902292500045049974859407303246384657555593950867016137555353233517798283400646126358706448660657872741421362490145194216556386463837969547358392210164858166849948067767550357549633794181115170945691296606408319258781849917093511649955130626639922337772114639907675087160606208935130141574356362605334714861209671229245283629912806495354931619542626291125832382326517841196732419392244736289758001115441223739922766051032815674709556033405650120465292546131707187541487552240317263289107482216155975506103224268806293488889172569380764264928821905352695875887349818271822923514322848039899477352257777995682958429117178576409302166546440618075893808344149519517221346107120181055750248281445775220789604896212006273141946229829348029110978515312277003186115825190418073627551066760076423494754663459031957712994670025723105578530508791062802053256632137382011001364591581947974925714438112058156372980500998231074346249458092543578751879382032383737703207327391402815843638955647748965487930071388626839758440533239890774056615072379427263562473509741478446851175697959724874061138795326719747064520318105027157089306176873917118396612519644860576820695227302455666690849993498174869865943880288891448864379581089352160020449992076206243066517926367682621988276470592695496367109926398942499659455850979020498388254249042587375395521277872277490585720827790374653019053859015514521396363331448061809839841340790413472753299900883967842272687469321296330811106528354308672644966056002652504506516311881352447482333265996742386577382099432356160410197119966144093191574480978315413113257700904624654618183790410884734282491216417719923159898414808830400316950076282016284652575175969525474317999560900032644138873065299052851102590447408467281888635800237600392513692302208987828898362541056901742278174887011230947849152977166235473026201118740067867629202482096277907685788168599108270294695754338277401461166642861180633677600990187623182173082351437268962640439436264841430531368382307870682635804119980555701307827596095365084335308254741534146985407186724983046978453502133091449822093633497981368504428153899602219100196986615989593033157370224801374429574027730904438214618659559754773206716351346971604412483836297046974059355409323831221531256086800174692574709883267581580103784884880791724783079047346946638053201804341153810225121654234089798854343679743777424975892685678579151231548097004357416220859736776282202435117606971478961632877642534057909856348581699834782441837896917908688930196038543897239312951638300313085708399646586833634881321859940957705811164190392277383402417917299365692903723936368663468418857214124039844745759833903847717021357037430146609594710220238722333715923216082462434369722474149530552558097660642979192575534094430792426250892081693449163526009487675805775598397336925110928373974548747689048449458136444063429594733282541152998453883476247348845182983895952174619433302899526480065861552666545773854915242657350589384123920294423760573935724067080668452190177349424979118203813142744895136026782886705592075156326446233188320419506742985845404364354634813375771332646925214593925995988304721936824906035298794690039711385908862749197801887247756504676237062496070163439077361048322757987081735591733170195414765384077602379939124662840359151681898497075830853955881473389095991937987031656617594639478501616550693718405211503237119179211502252621430545135903007123683595164601808008652667955753322082545549629929372892337883932346170683447820246922572208023093693641718645077110425750129394776557947363676817759267584923543254144709622264994808777497423448500118315925586666011567878554477682901650465124781193349438216315727053277513155545668953392976872813537175804816738257970514851185543821947186509428619013133602278519335216930996064764184323719358957932579220397582261414134389454345535036331065373034334392095797464254382950435132191535863238056394369538454036518400640353635428052622539265813344998383926235309601102672013591160137612015552807616358186261054171530451020951423621506312851647717622639473307050065698938451435614055866081511578629552678573928839839345474294009318070666769789701209912708945515319612889163848627201811946768042050547188154272507056054643045108948289842522439010751998572339394517523746252336371026933123750520861578965606390297214254631319237941292962685116522086398371600531998614542487029850259225850543642692541120148251619489074498655500670061429561385287804726125513707651674387667936204655152548234354923834627875825820092592795745025899984444212294134749209009986873003927263846788738569710907129396019023082421389097888333181015801327240863463081390714828608241377657054154038913878396576196682426655098107368356833753413914810413754363396832860830237907330882050554983538325285638130591419444124424074303094383010370342824202447607737361603457404539715200578974041803042844829623067683922652862062477900745293115262643885183909948373057207073604739724223887444751910545460053522506193664105304952495776315778340506737594595282477123563695019868224369019711776000856753818741520835903909547857906804456635137159992924874943697300470911659486750707232023528017649454606587304186922147644621396302793782391025702129732961198982821150102130786096261928506434822471592485764429529738042836146635415799016533051323356360373070234183767140029252585505829758922455661606931981294706157552603303008767294101499405773108721136248915259360028870740525748259629885106482193404453235365092962716662708471426237890319167628196074139604761406744108576959681906631732870854553442376189608429094255033899666077459762603962332517695383684483386595266764946118097085861958416280912544400078116138734517375882031328971413495883725595202805146921465295305377420171243864237981970269307772216694174583438142118882516587159329729752196970567599704673803672557308436642985654032041694633607390934891827257920488156132117732051914016038973789326257987898673278648345189397142975907028259413543326921241618231659037165044008642263437142309254639822670534224196947560168749195453880918666333432088958270199163984166183903726621445490788461021164210536096375024259476760259206741724521844589035260890668124403791626079327320184885845980569725165943848707067385605983520666492909191206411096345811393395561554545365076134593528059819702743790964501312957560865583257750631255578822758677115211897724827348775598672062429877011203098466482559855403568698870423647355687106613693135940609399467288697255055138278508301550657677270995880489577485729977653649355985745310195596089796115479585928763603836402173948915433054547917151056308985087483112161046124967934103489388578183650135395330861797881916655074812665442782620095393560494910803728997288457501318425016097156151022998514976306953720939845314348417258208797278226669377044258524798483053274263126325947753072727896131179043696773648708136519466001454126514970468955891070240609769089803667065751637432782552287650367368313597942936709746014370637240581115299800882373153099428282848372561979057240988968454843057645317744059686042227866208849316202372260018438501911656054960807640531807038384933199158311708461084986067578369522651624424622916177351800922338643415973737306671880158578322812916027788023914820222808784167829525066815178525041195543446364754715166552879219171589862946514136074891643966123095374279669887051683967939919767494275571389638887824317532973222722536928841200341534445311525413358249948720346040580587189959545146397048952857871662250460127508408980525647206810204601571108786806691880703717922744649010097264600843788884230864376446734082975726315864356032648333746560475241482077027962105858331515492496557349536964926885803946327585730894338963501472391579461982974246525375268110713099968480979759620595085183466221884798471634488611999734378857495786209632265341057992793740827894705489673126278644619171763627365372801640377701227178824344491364037384016995646994446171688346806479956401758286634722268541612139154915943604372454906260395225844974090384768115306594018533072099969010453590158492216342750043064838401738712767273122652668161684849883430697366875651325322508401399462750830292018163138875737743233474838739117274894080606250427590763880555341880658122985750289879832142973769718788802353380501314029456497434853826807331716004160871985129237331239855145303824851476745613603673780112289500574231025517544445628558345905038202573986284391448453227490727198594579805991789070892206248401760928257484499476476815632048043552806469879422373566601408957300947281128345395487940084277473504296744741202128801696947368475042637337484428556407447980603796684968802361585073583217810092023573775167787111090686780769718173321773359216505542167420494751610330813959879820906803256028459760279960247395379714408488131715409606534685384808003803393334283932732326936180490284723577054066973663179388574622425514140962871118234056788468214378199437605652235703108386375423226100550627853423717531581164398375401213727100972570273808077313001567629271807089695870589555802934537584305310993571030849149011973241997279449793505084493666585258826276840188458662520215067344785967395169153752884589268497148404125062984000987421377821635210063215323917675812292929529806861767782091016420109088577316279255661900480455268528747506937816966497997047594869941797829787439651536610192284306351227083653026792267816097437304083360273024624985460250386641626038370248899853661380877868029810149402029697302604793887518545381468913911709974918946451921199574104287873122575893280408838873310459945933612031465237449489448903681930059687492351644805640131727342206814552207355196885104035117127107724442226991980566999428549172525961606454637780901429284659372916392516653792820101660023569869849287591203177057118465336932190459058422690993291684937550123585261761475780739922820477720423447276638483813857832463134131517202300990900210052535375277384351197322456976159995057880244643536829106340399823006085533366143015746423424453713286928170668186127187603145238743844132740193439021479004320079843781544093240900666908180170328073392292992105760810966766523538910252919022963217916169593200611724755457967579489423701971329344985713843181389309333497983721485953952993680240058078514357462922611250185696183253937294508770200824750188358156473737633875118019853640591470374498095837117064784319580833278602619526441575604252435186493019102483784142867041608639481123223505599030841115813096285119414650445932637743139052918223145266253213316160421524131345592673952197356138785902737094473401606429468071666118440015088937632399894663104582557035476133069244181928146224408232253504008598592764248017069540954173874349674935825943705832390340142745527947502945079509683631868986238742310025720518234480801921293593909884096862756955769419323901352896953498403629403049738113150132672872646679616602989707247930141527658901151400787485512833002439883418440425794108094726324240857761572841223063348648184320626844146288621975662848602298477543902570258397686486694918305274078706382736602207434465381235564905274447165238436598424134334045539743167897560596707423453072136299277714411038794725235875722039936773315162191474552726174890885945793525378423480633774010048169088493710588225371446548801456137374939641402462804270765412509905495415828774733818204631779749529729763972287159578428148405073187254432264853262411240718304076767855206975881501068725077601018151726658825497523096154189663146929169631727932374005225896806158352400130966334915278881113453069307015997961269674139180764424574584065536797459048725808886120805789116980225293654947734634920452836112116099384804291640009254462816776952905336901940526414767678428857706671152512660399599624216953714538217782268436422674908073069311656045022849986360434601412991393643176322668236819877425815914909832817038578082594754943661128213100720445372986333761152518150054342612250287157155311652242311001562329815973548369029920717791427244185920683150343903321430084439209048405887464932355057555956553525128852231369953227417403371244879396161844709018095881355197408248137618255425868485278198146794285695104614119604768307725564781628375862634670166125014464863464800078552011497039078091037241306832835434889455342344698903998152890310865606187701106827437383241355255074181841281680571452476292179555153030436578758523909226779470539216524726983158511261929905649861750415393498300839516819024357776830319973794237836027842981157783641763992937131840787802688534662395382142712464339852885614772948873858536141465591284638473383412970560498502204845168061185513257379407527603912001092353927232640401660011628176549944080668452466079300192444906998478472755736086633567022011186345303002667807551879761653065944656064047675329845463458413213799457836261995589992600729125881938805414852109519415061866579892269484679107919003894254124516154427306589237450567594146454209146302106269211371032501164965665065893183657354164394318737952466727975650052663205904136738776290606969445162280069733986727441587538278879369282152855369959393713757606169600094444287413632586125623962266339391675795724415033855668817983765793631439982947296647772969205864858431419425985147247806248473614525243794991510852419030847814725256356649415549497616203417240964870740207295516616177050355361949642204114405557116518599722591678464356363520774686344906672312284660487211280349008668375790927016182337984086659627205659131029206036123647236401457882784081839736994747528894237731597054600890636747339095810855019028895351471570474433186385064130121808179157558042255733952564265696251080554093974160497462173043493674835846580567668863639300433125945244908691475020681939148748810974541722206790864728637158065225998489163664143588839338288176701330630253510452838607583877034835680020795788380176487375828449431083500811557506303827633828004728434352519042456402348184379975045865283680036369525845513332701995158031788290824211013638658767119292549700379554381586606489213569715568069901657180823136529614700096970050713014327529388774519067773522017860384987838874301400897693422991579291121893326048498848773825947248983335763440100008336133167732602849922141732280281844158465993923690106829420489103930632123994158451434692090667353399522337135713614236569199142226877064113539913578950643922039659620940211847609217578873394594350424986311007556577113623772372505637489679852646406208170486415582158060411873915748125927784087384209083584017524475008284491561067179154331071258672331381450160498553664917317109893544389490473548691366277290628734835233626158150699185841524248033394864201883406562441323577729556178915239174427961796663156553945634679403740205799565657571473553160321711374112710433440974518551182302157533454277789745207841144053078612346497320104092221670547106047647696786557537851925793159184983125665044587970523917871531262816348937072129426533250097146214111895691338228832257451620344772325389416972050911123005453283064189122774170625232779618223187690899708366690140821309414661799005234940100089592336172422847019808779667554440388338286874108680788972769092753907688598968157809555596744901538006026200231091075928772038064838298041831512153578207054856315406976586146806606108086509643597403583707395399326341314290761185888634546262371943244292845561286062777136470796319567432405087304449979948365554027223320217091606637306348406698772738729520715154125065623322521126030301514984997226661996400782225238919014555679308195798423607600313418091948819394616090858674635305407213602804795000147892851168979875196268928086237297999781973609251229883947306777267099923020493490752536580424905870815344210881835378303480470748484435690105098213147105134627413142983336511182588673846307088998269593580878935878070572886795848070040241338001955546160626650462202352860323291708196870159622931024119292782217727023113327634264436114762564401399975015007108054187484028991061434918922864140461805343889392987476585805929713382692887198020014709440478938859955563194798663420441286618286508684566150189725749800597094086653341241964590317978465366576490765117839850390421908386249169353185719681815934450278972032526197679647955201414139694655374059861879603224751776877760330520384772841150861407028444698721366047740344443625956239181380161077984115000018179331190245053344847308994710299468386614361173723457421376493871272078981802936824040564807707955848765004704722654102304325016809657149048662704574397484235884061921478959155635184979233728752365859010694716752380470210124717287237250627778252284783800462516562751412199815533491284241204329400438034670519630359048632701893319273818102877412782167057510776623608775970646012659009682812263805137675856916541712714130946448858843181917412525897833698508807404644375806895221462090165752509786203726742984322242475878339531898657871169153496929243836270020784142683522113083379069758672762976475552823488261542726034435032045456745937923316443162386887940579732339049560240144372153694002500786292668291485107575893331884103036131542723341794917302658576201203180685024279658596364214774365172733934855956333999170002071093160801870397942146247330414118152085595857924926803960114845481781856247656568148481492902559893938457209365971299361456801751894589064336257955106072451681574326104799275760671615186022066840214712238002476607697951665894124345442923384283591438329341635357042598222209719049673534223043391861006888059804349694971483630280035674405639328147266717292045732013849120330563689175570844832571208970799033061312723437445521904313236961305553977400184892678952834317144475410800453729991490504212043283656109118744831068079617713803739521361561183402988528264787253406450220730524877343090436192647216967270190220865604080333491206404897019611330636120893516836570041938073688897278015944888296671898049896684646037418481889331479954582795402663177051161251141208115915488886551421201181188559090291924857224871230626396090443813250528851347648241961437721683333969486676807783984540284435214506211945824182428916569172631042639807674277331082514600748173143891739261269149633770039826902555305368066960153655994105331880368891647302973790897167645355421659776138654410804855686241454311029573641322750583577375157449239200267052923141820487802920222817412869854921428000763574568000165984775036735490706255139300600209669870468037352597882129865170464039673455584606118146381355694708901885346228414374829690036033286280284223883516992280372157792064285204135996467287517162373976158590633925441390454391070571390749113207577106489248983647137383715600444928857861101437110098071719465067378475242007976916973412061115412138563222950677687348345294968739821011420546094512317750490398001475489709603500503756933867294116297968395711998046979496714273511754933412789524824216390312259442046298909967281754761610624217442979903095008540929674386933041160058319452811107444561623179263996985635276509956727471374222487796657557578811265091162895672321755758030279054903636282615993035349901850221820078460140992464667157426766501291380714841594557395415187262535078391647831399450883686694922003637342572338517391299151986402260192467630477676220458600620450790793721205286032494019747388596546768923500762728339673758137635453715948288436961580664584037454687675152144975210483635942569784721424773896711783085565238274156756876382002737344639655526172624828774689381200796001649562027811716531907556278399507012527515984691998122070064080528197841998867884765240000118220057237477706013500122666237190623528103834246548623671451018423338426271258894930274365750741962657716070450253026084187210494928876939683079111148619595451796363690338003796163389831812010264350460865871479515844722026529501843652755678072808582014446545062385648020243886755325420124529961032513463630308658874971205320037187263496419207664940873452988017979029121412352169603681751831237049789846669295944717928788589832636859992707751931749621490773910893304149039061372294646997378132926756112051763445102912079680115777671752119283291637513918114504283905606238184519409022799637494832338910501840440573849121992536828645693698382000854948278001666030607747766815492554150358304475064118622437578911719410267297326033815869586547501065826958232798575362778519407102951704893187468241429608760676617223624708124995458025776812283825918029216017682218257443861718572618374259078211738362112406716805459450773653941206272741524028318360697870268602171986962333235469630568110419264047785001659244281362101010527642397599646707414085765388420435724746790786056440435695780832414678324755864992437632068740672297401184801045188885958647504222924533504212211595013758798077053640074644157864252010905492121508090150331059888094596415110252725596609169530656106162486723750507502594725239787636152242858047088483811392535405732213803025952728643860677636172460378093529046989619202772877839892403522846988147181478807237679878731014107050026053829173979671736463565241239550925861243324741186224336379803738745458862389603863414874456498945168864335927641637597930110876917245092709185026292240385625463017023683675214322886625817299674286453934827465142069463270816893863046394404032422686154105903225033286108674103376884722055876638255312435205703057334991755561405183812078964040077939393456024505780162367411392177166825902266914100224028500331594124910296389899563521388077532703264784717145001819166404984901982834371879038393512600312996445841095845718475449676078216463820673650934911518645878530913106250743683255911012671092703606514888686873432836156578795678268724523782084285087426144691682070496120466243048756320863899801746242363921468810998816468561710261109343736462946270202519720777923429782342177514996762569252738132729592435441205574530958311384997847386137519422282218305012331393673368993050367175150535541387763224014799424993355701189790357967568390820009845533565760092104715542680446732789221993871346996676349580748348342207712997452508257199452151380677831105196226990049309407120534182183835295662055363539371496247201764264246007390938027531128145462179630876253711379389498254817447631920076853133421598120467448774989975707703930557305833598963084626764749722899329597275664145875147006560472722560165940635118185499062395314276024715186950756038459757220122192097062921803784159094506135863399243083586181271572155625981410811629371876945227856175974225321476872089243760607927867807889342419015839787221916085067602101004533621966724882996071340462700320482806140703349110269029560709757397849566420584606048685510834020455975098788515492720640731818711341487492699195213148008050583747258731145505517058158952002193890924285160168760667693195289964078868947994294768603114242054681948137762869988968740008045697611314283898220844698231003328473658103609127249459351226211495867019428480736971872632942009611615027575918521282160845439348948903610404946179571579317342303140081655567665736569109578978344763156392280065920265964776971711585248168544865823239486264426227620787843772921603882394119888936007227164441593680161809749750150316317071276361195384236227951837115107236704677547508312623332534120198175640624242956794226311686520835681485264562860136332661252698093687271056054477872970602412144590909708945281759428941731214480717538414662077574409305339148507325924758845470646444989801806868970250234486541156460325925074988337259046198310238177392732682322243734780833725292959279135441250621633886575536409990886849222244555615350779719781134751841042208168392770203931785089682903698471202442304066270857517827705995166363019114743948382029897649103468958383872999369432858091585078471833080605219123934976837132076024202742246308395969534761160101067619033139245425347888116374262593893542208565045617056497918968595012435145677386610810258642738721353009070215903583392255335171915855932425057891367910089055515743850268967857106357019256270187897491313522506516298972650616933211167471676315204653205818341813231320174891863318240354752224671785844816605890653241288854359925589162137133807401265277664874099947619792310906095955777936063618190264727009764672301437973179622988379588318073169828459203407021032045786919644064781780771161809763453030564438897344913024007086432705626950950231731448939323503432214904320141299142361888914530745105302146791909440786130037012764204387349212133741663135075581418998492607171705395772471323719554472171872748523366984641652894814606713787507989321183964835407742077140089309065147923241839338443627803028560307985181862448370429501208681138843728893334338222097063559763044520698445004303358757207647191628981158967040430518004240949175650175583318385863986747830087770376789849512533663654907152055782488806553392378205138258474148030265196092430708761571836001916354154891266434880570566381280298971454327011237426219485201814933569943489243744012146997810299942295978517487650539610751701203787483793783347641449542646119626815445328708975518504791340312307751711419168315206644412948124047677176434989554866365191517556061488757561695402768118843537240675525879506697008336118146194851460261664743880115500865042885155957791425154846328110257690186891228362357828248933421555338937323855284151401167166620968605600481346906770500711766445928851661132840326295705225105168527420065589736656718094207034233263352583747750455631383010266230744722109657910194251675151137547096507195962352844855076466700171917842004926465178014581294846394999933407839428256922511235587688459234281838529799983673323567755019158719698367472413524140752046421947295082483432692337677581357523620868489822663403785944631893637316830933552351653994196694162386605328266236369748792534770089488303537491872087758868219902450718179758145941918544434779835881572138151391255488790407064468551063075665198111083745746777692752493145486364291249703893212214168314103593430870442813860547544180858697348350412842381315232476880422607648244956376191263828942589007775668731414622375486811734818118682827812005072633496007954983325681478971132810042713488218589664053928947570389597779411377079601883352309319975633260574483491628166970324789024866944850007915280789504871508387737726581303044254995266821568607348889228603694484580106255807256769600721929110142191201170090890386462513160193953132707886479046407536907289901212766055039134431585129147516551035473803970237115756831453746193880948168603338865876233391372857488446137453635525498828653638920228369556891822963059607495737278028907115932118236949738986684430864503660933665748531998066780742624395866428540647232082551919658569914764594030777147525666410755472103154743184692879497725356209933796374443262548337631514489486934436326059494637762965861013516396591154195329518164676771983285845587396876014804472826181611931477035589814942885044683747228635388826751053292990627555583013786283866272831223636149585798174432179944850663019444060245184609473026068883355785616810199387096264549838296365950433098675097981170801106383496512922609694990699230967820164787880390096738268056487066486581659816434464549514042546363542034317361443502558286898436140286226631109356654907562620522313856910820372467841831803222381275393897061119469157345163475386350935050036625475088438945519648262061843349709221186445667159674384115813718373581402683311183400025705291187115388013814854249486468469064233536242944850314274010726454907561501287466837122670348828266604126058112325301182042902620236274178063405373982304686656374922830318224716789789844964675480097035463569873538915015657940077887516771201551517904636326271142497053870631061424289913813466861069193015059083076695279118503780449670649046423289446335645614812041485533841509653259692370214127608667014201437512361542152619844308402836065027822346492322865593275252788587907302750877029739096267008090166718161848741761730345896247023160455625883851718602845926851399992225649768957493426992455400714914086167132994182489439127290696178209680026600634810743943607034221587035662827759647166992808500755793104993572692621872746248377712732594521509581854361286572822525643718588306429197555483325926518057736741877453079323417776586160158612480704463166550482703945645977497322316469093872891695303412311100024801875037696566629945348117793397373973696110429917761622911518650456998337176703792504195841146442002807581169464178479181495918625440011910408267576774668424934551057324614993531467199916369085793428073934831612748856475187594390362300527336970805763756188373198513525211511919508947530867252291367273983858148842901420044432613524432032521722833702705997500983802944302995165104457051880019937049303856925069146261214852974333850663017443108372016529111754474924240308686601640267756018398028284868694471862762576313169058534766734270236247677930231633393744722925135024450266095632559752554362666800695501741727318256603604973096369405458509264584259508127124236920968248129529016954242963324266576565918867608752829298858198966237857593142111912078788396604349869596468034670028858857465450074868114458882164057490733944553172959752505721517946673313980362578371512072916780646594261576163744848509839352467952012715256739863444654770890024131596560927047054032852832021719945638706101798947413378132603213312089037055848327782398802514943153036509973022274830824961828334976958158122193956377738128993058183710107183432597126788901646860111429043290004760328546976803061505375261273833823440427688002518526679367827731471355203981093406740364142783196978949588240988093061269640273587459532447240812442800941557394118391379790738033155573227581811443503508291143935038678033345812464030613198161164294410107465810058593809697641249612960876901261227104206404628237749325183240178005556894647117545132442139882019725122393780383971163869241541762608944689226131454733919043918657205359050567188402995120714631239305818565792847898398517109921596999669747913742037112343011138973878879285278953738014400649931651487157420519111788716578876580105793833045612064238442658182897904559126549013283901044888250555029543868596486155348537300853031429513729900520985591551274578781946767625351237337972689810217780043212626586741909572372869018537268827040801515605520119291058380563628996649891193467929769097260051576439464120652248552201022876660972446872577124236568446977654359878625523272206316254889260459117027268528583551322365646261906067557078641747490512612986306995534832005873308761311209664646770586620168175913739611697122366640244286575850279018094367635530814997783087561404702044044947613501059308356428609855766211171040863029582134092120980540086263719923369522591550082988099031530703247048286890541453672202211136665922865125968963800165922214234489429657080889777631312483363453962254945005633919650825956619688636294632064671783972426515071765114271844629129178511844424640452617581738994306387444480308217674845195639510397600503069004981130066225725830834739602347705579752174233219481698906516581940354551369928445366554284629176959841858192173679930407303949773430471326828133630185287964555227103642407362944277898810725521082005010470663958722302898504949733909399070902369303859474635257862538431950031495332940080279238071228458245707439229845960612430641340405136024864370145845135369024727452944072019178679028714912578316276861443257403030248860880563826389984006272827277466892423730279613542788419714354460765383598888768052806776519663828215627848745151863500294170914585653506844809328304782171187214508949234288523166296409044778475995029010790275606547226927893162378507771993910551143689327802672851015433264328231785077887349376581312089444330848252775620700026984918317623402601216332165422728220536212404591923111255072130845072972683926161538492269345158558417584646032503035003002004920223912351054800344162514370857260715081062929335830141950857333919814725012240786537971936408860531750570596523881914686696175721878321423848847889416486838941390206265217768298471770536366180507341045926224980228176909576118911669601489305415400260736797108388914715816336638028914363109330347744797773996203510685419109554629434209178653877278805562851151036607591856148699571095204643919246325124520690049799346149194251040102074831390997371905985740925760621806769203060828033208085698488758730076406911334150891757519132199435692478015072159683494654803003115539443362315977883791724844768483284705923555601430624262136346127559434980039384457540066413759419078041555643981029549304002258491349581495155466193279615942410125211986480046000177477894720388403614696798685141929612762715353342699758334642810379992473947611434139501208224208717731586734181522882874181403351321386752236815048392229307245016209650632072949389588281098486391318718743429562567207505608815985845197785647317122821896281449337470160426694809592550012354613423372459273254936828507226145068441851356547971410488501091883214738327047744659035386444285344577171565772525015685976850925990641943061011424413655709279506530291590128271707752611905648572504067172050982006099168784165934325110446443517992405401711173877869393442619857301122231475663827179438904376593840946248085412690875534097603215099741282346113872764613185197926549672971013772510166312754021189264868889637173381448496393105484402927025919403169136110361523340302788249753425789399915408788237496483042453983475032359232260799369198918197901968396084567223589435151376646072319020566246189431440785171020672857939318265023456520775467809680215063920738716753081035045544769794632281843374346423669667164432258287565110375762668173729625702858325802246459076562045011276042120523181433224799945615002081599011893543411367177311208885949217602584789404209674204378378741428414692776498360883696009761209763975517965368764698829458619391759036626685670841168433596508497653399045122581654638742321448803972976848965424772519386027336947702989742185392668302139287388043778597627679059873834970080228013731954258643608585063841374053097300749116022165331010179091077591116591479084874550847244111493121893307521450951307208267324644336846941826088767814110926021640813382640846935326370797345490606089194881689080543259722583113629208467039162240984500702417224539600945230308291897622045260402314094156756336860286917075722070378561641118607372971639698244850430989590144034071820301352292268517283333396558248211933550982323692398303642944234413583711067979657552638437702013952121312415387916889300787748630746166261653814846089084172525274856361908578707053309269833573990192044904238746282551731437043358176670754533939363169071910717521671702857753898581289011836766147999380048887037239491136994106273844472366978928859616464594350583230646219269158580681582646336776510945922972464081238115876800963721737234859160410725895323810618030920562838495896204908420746831582720409490282445777742125014013791812678636846568461160957868074313914399486838668294050706258787168979661474956467833335224202805706263792122653276672816476515568908632027524850418744350312739313884127609856268347792765356705439421181488507946966693171942018193895287848827503416569690011721142752290395105919378816355929533597432257978110908864535905644541769120566580958012601736120816512123851338098589231942032385503624391744334158547122805546205740385083878943512915977731613079038920958352042687833105022043825711452972347302253786657335617944447917638215935646058256619751908065587492909716414840880268249157861898722813598208284728362862117793016923817959394128828455464626165897460624338877044590629097469968094276322475996653173839322315278270999531726617869178505255016876396558489105348797680971877360404555867091832689720239436648611048036447755792437217170369189195032035085000010718315778691829007463733363078909196969731123352560922657255033572745356887296862016900172639745100928217791798587596178919130724690696764779833540403612927751941730998866457466479329819289248313093020545419236935078089901337530141000625097727658178378839701136672877538201919137559210360876285241086809988891573610037059801282241621498103367786047074639960514911806517702697349203250195342670496713690838276129591614635745047329259323750666121269060633818312516707034631906406375659081140168508639585183546809666368004602196168459822181927504553769269311043646989785125264903893939097302218370027214191663153480199021953788957743271726399563036107513220146478660386690787031993345890697895497312941541457319932733786519051683145259914297586809542364669905776757894946991320736806436607525089475596121649166022460082503632169484522654896931371776289398337027269226743984290307570465485179811282754531921415101014820970563213722611996917796277970707383458971987743910532327744317762446671673817567878779584260391491656012644068725525633257376853100386782016692390907479754885501617144658270529549220108258904478331275841747849666785754846462531191208271496909897240981723418865263439157607871291654809973664694730450879585557427995021363496335252511788799545177511280509212342492518970871768572312194828301173120953109461623588126969357098068902211827432096322607600424226393658337396215491543501384372572849089884112071603954794071991205340914870348068664981220979308876691049268222442520002325090606728144977309628747135685477235069534759841429467898529660734039504474324931216203756558362527030937308129349192385060700982937716427193828790204559914531470913703886794366716288291185982310735106744601836160347179095699304911682114912046744564020198343691481230712605394546101172914491678297450542975837566169217027702594245367586912968454469633008211231625734916134306782758262723092946528408338000577865432387631257274958860205571170691185102354402322232732830701202051712087679270749154998210369104826835703115444278335163274182729965169276625552645755248068250952335956425934476934012290246641837542635693538879222740245454698794384466710929567113588366898909298511633761296021765338025930255282973712220089652920458408152971689196361620733510712539419173411914697687566350352546815971940885205082216908768585457935923974901048225722613910629277775311538538819454214834100849242393054977730020168807519854662257392828542962744417761291683437197768434390363092622635335199359855349826588264032299175993171193068116956723946659432829704675642774554644058677082361059111248720884764324637037608185919663386681810787468869016942425524412593526918466239209065478240374583963663528663314987132097682787159056869581711799318958138471539402854409644883390362605700434461998638908273132756704031036454254930563093313507475360060188573814875690754300792456117432601911537762383218412349758749842195419967543242624332747782370037891187611469864999539164275714731216010145676164362897230733227747517450992033691508187317801570474056229025516092181443322766465036789468366915155257999686871924127324928763260168496667314633100969441771489759718606362247848689132582329168587924124450947602654052379660662007576936736436495695114125440972790016197125259974050566515264545896408322976399807255440844355735965658477076501663748165639030783461354712442833409238246991371704941328818489354621898773866903044275972179880895768823040304839076644172182172054391271247616827488390158519691588246121455203954141372807184578782228504909053072295816824959288774099582952625682053726657603198370988789131885505403620190609063387485717603990373940978050926282767443191626271601764980661492716291866772794205232801186949771358458988669814545715907498602279873896323769194289645172128913564439495020957293533437430694221459272299388381657203315691549143398481055839833934519979295238303573581462764620663880230299474973908353356862220012091564703186998161527586532914503798179334838222420434052138618360813400443742416347583663403713237764007147234833516971010513453064398015292485063786050757226431299106034262714046857138648410894071432170165124779542518984902638415101586184035478774740879326521573411055676998566295693067625643381410867655068712276842894930107482929487173249211757391240276892736535947545623947428870853443368205177461496237706820908619557897284629480188856575115899947205406836949154203710680606648230554664869832319953727197862991359232067897815083759630416620151526064470207092340586834169380275397500016882775544070269778757830798396356032671919788962980095303487069801514614430005950951973852979011025072733999265305387548179151397807399701348841686107938374037702727160703794333587130389421558215273933829167203892730217202828080508231839920710559439208126988554368373061641899408362055261034522267220670289856686166510099280805421033464950149906996867784326942151732209339667416118665137068660793515233679385159290564686913273304495094898814559212912818885885759779878044391094308975340842742537930930870259794766361008046030086305173977860525971753215176920243851740317924499239058946693835499015709822236593936602103310330357700683804785971542673983166733232074287753490381192948357060227381541365836362669551818545044027801016267381095630835548468193350575690445667232387738713935647690105585915720051314886005611200850166532289594756993219330438190907871944641085113252570472308930561748102476767970343013395711140065292435798255323117606946729954582923816814762557142149233979498228936398073412030433899370931096572588651122164948668275832821303468083870930404309802817121125123568305566741480456345819373220086183535649524582488313180011354730122484213209999941189781972828387335187858105623908113634813504236991876544863976212993216468386151963169149053780682120327563125066361685130482173477680172949602544044850213087081421537998712204578968412515100735308756037072733572814108280388398338097287304411981846388594862363130988589113991769953598970709391492371283635177687049044653003904042846236160012706076629502902589993217146189997063692824382418160489477932803586038112821154074827663026234968678918906533940068315649831712707042628818284153090494624788890826997235187974390860853419753513852462983482313436600740828402373871759569243431563150207011416605488961200792844046126794588541856560707516909356644176250368888167325790074508152929495558316284550734690291331013500452765563245932037877003929043563767224364823126978631925912452184785781485796586489026566470222255134282259273177440210334800100035217413147845526618226759207692844409152076436473420689786601363061899994905663956731105984175437285932085712290606171072712112960477120577328507673579591013644650704409633725696174528731505156580010345319443032631494223694282988020905511523542640355351813513215352575172037928996827815656866110355784920847392303195653521271721230307069669976998525882628543726639697987712122730003099264813329138424116937298210340084963434115891832988120537641515564152983334508800496867790199671354227636478717929786650333817746577480655290077825051480684421095662811111959791179514235812177252706737067136512334079941985527936933330972734691061936976448721390661528239802665607959184070295202848364632329519883947643040994175240522108064177401463974041063838379311578551048059370840650942732450415952893129369040591963721820558721099031206112227440933972473776720991666746407284762985387748450084332501530184788839787291452284790037374517150516074627974548288563669309845039561461434315350304890902583781786173463027640175369073714948983336090472957641827289017200656856211080534484640715700825022963795349185713682120398752538693334412046922270156052538485353070080309492754650208186420848378113507454633142406469094527746398847844813433968663934452380746025788284726998285938492778032309204890303539339342531383423922212691218934121007527729389372807612686147816321217361047496940160225875259424492109942583002724094066626799053587749507495672152789443967714655688861058314039612440870986205828914008887312359146708810211781383722540172828763526647024880003861739366364134353468995088373450527780339113486946097950717744314831097687232831608109268342391866261626967223711413521180327941040885811214553522926027437607255152835266925333805150295313879943927654849959266571436380877284799028944443108510256854120744816428924635384673750551658664384134897433492346387482961205790520082931753150031710389256161135835909477490555888265277922831244092205354105969938818776749642043271455131891343913420044622289832912420103201713708380987285689193970251830680617575865595323583005747238725850696917604886189588043678243865326674279440621530335849438658189412271420797791503558492591760138609267653270466867017353667843918408073031683120612355708744076716993268769270617849870783489046507564517848653302706309104845317314533929517953279030027492413354635305164473333959627506962232576283489362683471957298299435914760447239335220131922198728510940695503252081822381609288504329057390603044158564810033894808745948118159288360518607481249543945444852403158163237010425140534130881580352067734836405522033906893321802684382584648555281750537338161865713315305440275429138442803885332006727789127168837993606515798077615233867329990256513844310046775554130929923147292782076506412155813860106636762289460049069710768221315928897076656790514043016087976079633218626424652154805680604876539337942791794872359362310459382238011090608224036460658144719056694047035853647341149866217191296118512239876431527981919280923357358792307651773991805662491041740283483448611123224638552895251833918919306585417698249395513738272174944306597819124420699422709848011379587026939380005573147012996411098372638078920077603664374775176392604077761783614542176026938606909902607635104661526230041957322132048579273351408511631823485741974348424586607303419846366724998220673031981564581066454848320885764392547283776057418853771147611502977130322329904860348228979601748798102779284186628736550801254249126334629663041763274246308814341904620086351657156098202935365289845873635255483532998177146234482770080175350264109743612988209304663476971793135684403055375498702385446881319345625588235493086455164334558705561946923924609942602031634593311694259993598403209543957631396079622714436294102129095596650642359120986137606512293935435772650240512108735690007722579423377439500192903936760767356421397598416747579657031921718087842591117885159079643112706367790630510141654173340995009452170180496654231479790659672936461510644668422983153590561269703162288340562183929959834017422217807694196901345299239697863472564351714839019867369579267550950085087114481822380248570659465791541435053059835620263523547347653999623156439083835391716501325471866625704565363543661010369705643877799096600738888766513614178875618210215067507392845229068355462360858316024196836343131978934934130218053004557281139502783197731096789937921524825866604713989256392361088035381511441095580392323538135307524656986647074389755095797369447431598064463151760026313439945823137307167497378090569902099726751518495759630162495657944020828018944067502969642987005325357156899049959936193046599047013950948548661459798705136217767257008087449604493789765527094935087680597937124109466565488404036350305025130958011447158653619899061989062648746641282323598262936329868880247358227155250583786652782846644576962308511741567774723986435171929433938752853710433512807398023030135564800743481885524731453346383644298359161357473527473763049897797890176976977322149778302248586799009842153771948965592093152394066195924763458322701618616222656385023625736028547925125280482889186227897010371214566808912970894830101535010023382317765761753365548056328623349200974514995823252494474550758848504800925998192291892549677603892610850264911300363974319621593545304055911899565240514032323746060876532551697329766146206437716081666266630624847274448411837705387017070539023091833516134887671160017960644851349113378250023443501273144617436510491220031358529183976029914649883775071952797148285016542883691063284486824920013568196635798562283001408318857072410310104064873403958364213614765162397243427431622315908360936645421056739177042115585672190901107077904950728801938805037154492210957707914671544983351561753905133195941271300180903623063834762718645764114881666091653714983093500497005854614007113765634112353286003083736912260773643655552134238554037614906962285846948116988847890236005445430251031663439570239861900187351951014361931600791120673556056859970634354200988837373384505361579075008140236908594059834353928586024236591093486255119051175777904042810040495319733040167705281068855240089443626209702237052996098038587965191683355473573396047608764733798374212862739998573580949872722842489362461266998489747654715363873046533191960658264773035978813089906239742533477889528357869909161462300635140897605130404896591972129523312219517486880115385084481329320444202999581503307562660100030196679864354166585144512889290257876839759243531209662922046313965796892280219097576465404821490618647995187218460614616033251281099243456653284252590470578797667113608705385001965178430879608445076473484208145701326096490215297828140254887507034552931511095228661980478929855385130948885616205870547841188502520655137333235797579801987227836359936123202367840891710424286728386880300649826992252337201566608795901030417828821055571567202985508165246362472561983209617783796424010621174266015795438024921310150290550118649762640380941139178471823666859336657208823267838857743503244326992012513017698707686320534362449688787956164002372046556775997168722377402825062882481807959211984161980509294747074973120930402846639028315275481643017384151942529808186404135759680156195123090498406918370920105914671095612388882624250756766423000616206901613763394918389164992510285129990824596462047180916672077320889323569981454258591955008335143621399969066888181835076640943912580529525761061257531178058414961723736896879609548775701411921807191951307682116387142739175254920925049177194149049844439162475601717849160095872577015443249285497128463615097882099089885357261724024368356053050774249018922225552645290094729083571609763860682302015747087821176525231949417367056884463526516407379486595588585075787728961556890807617561500545031413073552100923347106268435425345974081435143765167131697957582702896377813975106060926166767525165710112838757226461091503812030258056818527086572560479042340845091183289496825522919010396871726056942177222988530692260142730274457980217305792524904036396936666480105306415391682788069524212766368708092619158785843008002590324381269872251300349975798778142111626409155261324638894856836786755564933519375519622169747545805921078409657479996600462459919865111156238144960763731471325174379937856385671591216353562286274568542808135200670871554106044720741449877839718184343958276765941326298113161170084518446248522514001031153925338124499128982258152365218428278616163097338523660020049074272281141804507814732075934934874983122511502665425543914087088125286905564602060062362475440163979939525201951043823911720623548268802580461130477940457834810860955384221071657985840642299582652377412119389354270443589221656868156694067877079535538859102512858427599990276940811820225007121432763213110463686779016696330290027044689370131896622018105110300135490708446188789508458970254667404717617891303240331740660306639398463133549640275324213531333717836022207241087816569861423172868662465459034537806202328897417783046215906468481307642066361388567566181800943533144477690930820380413073573604646108488382543257409122327082575328969996236422629185156894852077262729602943798172425659168418691720670586888581160994251032543900667075713159347677163495046777438281549984215417581028385276648614854001386419024521649395272952591205100949974304161285431556496785884503049921177210004314958588805262764461825957791205527248686224912573834433359359150149535374729730438586673517430150635486716517257397676485991743325158926452039754329499043233363738574444843966064961020522626971017723044134735305715557309495593805783113969714313396622922180098896520057858306871956847417147645938240333993786608001101883048442533204277051872810580627310578434030064267409069171912578806700162007831335389541297727272412941183317228760465290158967728064295688100590175164066340582175688865813721349974712787944112088422700027842429179591620679492013669375728462213464352715939357642952901122127798003030486696462569496277626295448289709539316946072217024929372483544112892737289230508066155212304600146397365479363804490856737536573467536149743294646887235768755139977400634521319126955039506205551963847772049824885169339064098615363931682283936402391902958508750000276244703612096322988001686310721547128510565486242674711819587697244558211189114325626156549174807315143804759795084172886659454600557775338009152195214465752118045669712461040186974862146438625778360234433235373092229357809711965354731733737259059376463443725537686469606003064933315681577617716305761463947829756366671372745199451458350430766607169706710760535591089293916508399278991849211760172194797011597605791278110598019797348778645694824657390770793125561940842227035885524361130155376537751726096050091532803024018605045219666239975533987754654376226060450301435968597302762893336421971173090983313863363783899070552834529681207590846752772279738597551462653730219582793802319368955370173187947789459306655563958447840353824962347363397878941675423742834236123104339962681333934168740793824231709517544034773123599696156068391410587626666717013809479229616149362554282147810190494565441380810873858592722371539141427451470643478380973905068337799716670495971770132551129161618551622388860286219088104775847798342380885619485899542706562634090851852243015263604393013302451821021522925463766294533098337822211360648046224851867212771777613105594449835737086186383461270512101343619166938052473560554552343817546686307769078105808542591820355038486166508346154987992759882042275726522626659255510089796238855917039751388108169642764686747832316931380982785849631670752349764844946142409839783869528633843982046835394283425903669998847619303946953946766662113895962072841197631177979124452653063250483727614401354066822600911515641048201455669681443922243199291560962280183318136724367380756372268747708165273522865669784837600326958996157292005750523636301963587920172787060881969010612171778783181336170168587589094875248458529759722831750382903379803135331485723498182236522768717022463343028945069945369790370893888108387324314212018990770614276316524539130831347019223279843231757769807862130162509929478766348729562501686776501916846116387720869576368594277731391482755242428430829459911047293869806906825760842939290776109968351831260178639095760124086318377849257937701775722015446476072410840447849273736018128179150555447732513842247325896266177396168344874099917770840650387954399826883259043804396263845027760846694690132140358023436588280194983165273042893319031493153890387138903935251924863255627569759907779354103273745555913618187536705951403671555636429186885981287518910373694336761527716588213690081712843494229017963367298077942478236296270673260469904743827310523306236447943074542144991281208554023046254208380863899654887153954627071486903071781072208235823158875161077187638233299053627071902669193168397503034028139373924928419843760014706949813913534430399770076817448560369672576488459517085144981999422365500879601151159947954700253274272176388061345753159029366307740872421029295688931201796893038881438298549936945314652889195156995157236659085800134094737501136890074128908746254864352469028220479792665741045013268768494515143628639681515768275295086671283225233551740466529438082155710622537589906771802716023710766803785150032044855424537469388141518067258903892792754329041654621480858227062185811289808004282424643993026016126997958978177804849708659440976564645790608382530886858136697844592052368148080798148530381392530542149823861176148633430338477251402692558627071638616231207945227108261026875499616606015258672467598716627974680843277686827867918344113822337102240447655841117740497682715868737691970027794312608227869812689366474101531657766052911442164632997710382318721943323325464591952001912939611819295763620978361990131782894081366089682874057351944821834128662823783150339406018403797354695071711327934256258343324220771886585144152541104983991713444186409510713716035475563627099614066026993832663231823006949926359785398890690942116927163369361899319377190604711296110427997654643691027094428221281021872481740876752177862018593907120679403534024819086729302036605930749140125139547603171404321744224688937793782335362022656181085547837246073198798182987228839664489915923208715255604000694852292283246375957243309277554944392382709596537747980377140508943581104404192309513374728958523529663355875253761862490750827976293132205799732840645090014322110116057451723366332882943950877281563827540935969714429812690709146294102556251025142078673076976344162650441390544851767022100846654478635008468925128156972491208772632338407179201098807601159494053751253214082529708998107588022412045326738547151911522650722853756047431359701410361854296778694077552659943481780902697720187196534556353990218692517633399490582088451770070938292528875447106295065425597470504012898332412528192810295830313673866743099082516335820120235109855716237396175693058864569504478876648810877408906337877521315502987656228982925771304656000177882147037770163722761606801705035432588680277429972688786081478663322588315184233817196365817671544310749596263383653088026520119844153232100101060445125518418909227232055123042066847737458915864374755877330609462643846226658100843009668142851363330508939700769998497180904607172842381625888399457320681167749145568926868494643267297838590338602614418470490016486071647466349598012937513899068818724569265611111833629826341286718686315654539920176732165353540368681463706766768196969946302334767657825390833667812605435119698357658399566026883305301248959709701389605974303369168073498082255831690907773108851264136692310594381819760050408086092632836034771772300350141434674910852278874799586077228936880527843398253464184056647607693920164597486317716442019980847799633931203078096005954978888381489453132172420384060287121514039466593864576814786231263574372658536477762089989418403213687742751342078574297450402897747220323235119663446282097055901656627630172206571143179550429200490491603862684173311809481363515354078586412852141015735618774749932149842534004641318395638615128971655996197582580173003832875447879017843336919066754618973678015266683530060003710189940925522454437889342756949006254616735920239499932108663435991368803705462154883007603864806083824505940173711071656052305363610763800340326008276887801507130742298632000307838825469310021463261178692285798237553398004916467170258056674076748202769727619812967554798170744787327508900506038649874836372426033784955117338424695737121699624071613753743278578217453410922826896039635868696648854674022870162594479698180361897382140695552510715860697688117984113347998456361145356491290669079270098930089111395768657118993449726133684933116809697636485777359621459561950670664845203516196117328202983178515913857263373316733642216588770784994663750454716705479572531493646847336902036147011285569905703315687058020045968020143688966638641392350776450489658200543772052564049437007725013813638241415744587401519759980189991378584498199767159470105830186883880897108447474278314235643399560650330097505846995613901540763715574105217952997821914013424489347190088673141544440495546672206349079647114128554105528297106058685678757830268826329778503611295229358223799229274652914271150208509550008322274709680990638678100863947999233639402022623957282616173248401643906036537359595007172958288723029461988922257771827108836568911667340448113903366233936423467746163050009193713993564673735619872718698115149652738678008299414045724788980812606968066025774582477807243459767257039796475731285294965199394598050028026497207779236193402963138871787397662063541173906361079470969871324673865604958723298141662901269063769101634614552090380066615648578211205005202767029589404868113488581354227926883172220631325810439142961246612248395132611700094217132951228225184877030026814404514758987146555796865282150535912976235117462016723997869122417037217312683464283889155695472558994013793495806570992132229568024032573215289560243127739721017142242234989477795804622375408163039894509853904433534520166019175785760586252607809915956529802496947579499240760571654516896262760513369526348893220723635667790907191331924864270412158926170891039403660958124494990044360572572067945615663316358601454791641645756044113960370905066183611437727196085164489379191582354262400926416766176604173997674536862996371206601624727838956248849337845219947482646726289697726287229641474640618202932256045747466899959873512692538471613505066063540658314015402289089720802819049355304540388182096286823303406468370033232475179522865377943927396140949418737366352317456372287157662027411257182598315939742252301574642418631150731948451550942633522431665773768198451836847694869261581948834574035493539624538953294231218315426844180540771952274500259959047193960269531116171747300929080816612841282096961928601090332568521795023099810526668487602204876730814146005193341843865797644722040925749356921288509906931133774751266906014395343499336740603934427589115316765126248216050371995960688652286225445336948661774199259181322285186380589931602040690747900231415071893845681718629133692090303825105013688626971990782909852631208142389132373915142713093485327465090163454211642291759897604629848100218551750554263996168867169052679049851706974316303185552596879595261298768248065412811771323269231329354948962064910488553786014286149620338348417488373423510150093991079380178336478478187877562417867367950603633795917058972789317048865211068983663018140904981525631787358982246353080955382409146841755781093690874243294845083251403915533602249321630332071860834971329572013205430138987484003228482647581140677939792728004166904453839491212410740899706195962158713892009623662422068062743547422107603556251485971342265330716407431917483114234668846989619665364721766687705403565196875788938487637221082367862530523633594933513509478838667978309019172016950988587359105466275059499047302411385180742004539064210262502260979866311133852319944670605801973835751493264026350806106292931124691145565373381170094924017924705535523020109048544135031559225467593327799635131506015059045398152391846687465961244451860743340031163301602837444617679396458438412437470354975418504436940222443531192794774399091473503151933124053500743374809600209244635383523853239686270527629505614135651793700969668324462966552636525922218250753557448665132463786080002875344293700734480130684369054343152469465602054560241332424834786201458390516531343085797214712669079292018721595490364650753779133907680306841971946645505998059290326300532471926640395578499073160804015760541090557804811155953485224817674222197601669136198439562122843612216250874088101593807142579870623231188042828490786613918442834986590882696015422895563066546010519823387003306477663809398064590825252216923413170383810328549773881974452037591440786263663428910597514139615270707676287100233604064751569377359783447379761011633123305625416379056840459665093303032725236183231478817640106206504640513250753265096914431376114390925441994568811468628735300479254907086841363488475887988019645900443308032700696674072356913781771147517070374777946210627700399215936808917980822122905002981761993503082234701588008059557855902737434721975807803941387766551902364430964299022603792489167066283594066156569099354236647515481390347200289779169980296219559974240592826435278999061658135844516143794676629427995616814451353838594020169444932854296715242881492762219475576440232184993017674321281581887508302479095480551146230633373481222897948313045110505277665555206766825580481224979742186273473972188522621698418364031485551613938310481198125022878614212744357038813390301083067738376578996612426185954338301408832615451408246102068888887361413809298748098192903259459787766778614629887284996541274038709402209280292477077783281429599854921889363281110013487146490125489470209030960408319557044000603100106584770581639702035557174141339519764661734070131263395936641162104091626651941029347376683472922068904466712698791862016103652742778748862258531773321476853908467734930331793962812663289889267804440356588650825358216358634129247698975441562268263123967598335257971173356764584108934143594756320434944256194841120436544892727616626380592321182472731340516523613030377608003882836746456498997079993143671162739811922340027785534160868593333366599227587304948856034988319350566881056598826813281924925792047937776396004866675108879165942568684881129237024762394719092414572042563357460198074524321046306427031247846031709406003520467141505720739431966824875611824855749609854314829174504165428609300936637090065922377641942480693186127752491939508747792505418095927744488444950914600242820576617204637437309489326530936675417442417360054094846477908152218234013809201667430749284197273486114841547007666094591978385184037573083407484213353437535069021241822633429998344809647671474587713432442602877181159686720224840629476895500682902001449722492385490985607675789666041767979922597017931592649282533490897238476377841225966905735060789598475010728639829175915541499985815693591080164271184884719088446549293805715004145757086292175114228702258952100853065030359704726401997572148687786216499783312963479004868417839665343496952612258072460155427710997112001313705886408440011759124948453381518264034017525272366179950806551475498486971432596915692565450370165303779504649220767074832569752543880321667520266138259819252506146483938001033262024485050957954855846359848135953350373557697034254185909405313570616859224980378020112901579585398930443384423709428557123999403048802149079143821205669487193416127851567652654590899084348410744447940612576753988392153723884588002839906745784454454414862982601732688591618150852973212633237047893568323045369424804600508935156976788038827203112266938320884364489639757037174615000728456934424604566759306039323832475443263219190838124853333481031622684286856001069794049588802910170784444324229330489986086061515637648044155654580598744724302698090329957944685350404811231183805113986448976640032953486249184396738094261632148336155719787239772805789792593952831661144519991554158591766667318890581366213774140480093510444280779135003725623462846499814127686292424239079916963079423685206040413353844916036164537355022911303181661312674588833874962322978472412337310785675936064672510165931419854971449095451981695012192302984039067604029819790905469910463116939042067165604243553883078002946195542199356662202533438409962554122058233654868369351387781184430870006525220789622172185313809683650612037970377166656187632465005653906523467658656276396709682757885774496473487806864889406498992670249917371134968486903407987166425506913909026476114546273414375502884097635766798975785709740455677322210151781420114033067654837871365753864084125683892813643986402184954890069559221290384561468515311945623572259377786025072389149287895537495696794709011787635184746791667449036544138633678847734470890998871844596332017634974910966903094311126477683381918334839686819035772076888147376003903695388835912097505676626577924654738150571651796594011759685791752714501359961817075907375395981137967883395683814880031827453407865467850693464178237631902079081058667541290729738862289899676742847393387503465628391482001888098446555484404858838495858898282100870408034267048166885293492137887048673678210438033461129540796438722310532368073271214013550504264980457924713852220708436735905116258228303032939001286457609898452169063882169150348339228112890094990348627774707281921797952083983683337337872917619464592175663930044704113248768468500592213727462296158314764457649216185819692758653188120068117035020849229970457629555603325969242021944380225057197731998381950114072794885976080589387203171786869379808071023271367299483622883215575751145644738244748113635290524314632642190757558763428060608813807719288177885305374142945549481143116560402161546612016981030292822359436067375960917761354375418225614876996499692368062212454688800825691956434498115134273890548328553679419411996646209318980117728513283027382452352050305406503022476864526722992773851243956555058949426823738643056837467482782448620086493638365161632988800164490343590126608338290013878444278119972072999797004582751339270218970663103485782410469870346951298149151356633542430961239394766227448168634820407012131882005794596142359681073576843063600858937446133959119610751393352552337460125536948474241411142782516047113566962605778642967399806138255016917747699191095829216100748096507161401170968287652691305100465141006280135911049878766346368770302334318063465257761795220794970010995543827603141784237207563512196143177681763554518958052139601493574378642597123404562677159344972626431226335769845184805446103372042915872004745913650798650017906019496971060826999003679618957484865709697961471438828716816837895486776343553252032223731338652337623559848962320076662853575244146749341158911453720028681321758315379990505232144725288460046712652015965225415946369117416807214991270131470818457183840740574635650860490842163681226335881950576923536605851345984777648808852937143348660787458566258598073683907831429642513607832167153126030674360261967093832282241314763920702965495669247266187263501433525856384071602435172074094412421955498297249897690482335753304731951021475922074581696919234935067716473893556865636993492521194175367673486119589998819261154980791183281362458670827117050754838767419584962583083388105206017338589733216480346149277843808268203500629799291075590464575008914773122373193496845666459855386063696522576632312454562437123334690222702303864742494658113318445017862120058873394223062197529013393658701499869730939092222301645291746926520037544755295486990392885973778030441637992797395950343522919107767505011909227166754591430577614636874185346648542011423443232889944478172598249627569208890488420586009860237268658510331987258533557603770652867089181284834192746837485200818828936252818227577953811516074758770017630415553068788037977663349840441306147506091385400652274952342530528109154762014025208988339259977758937820206517557708040062183233069501706310521914864837380453721848549921782135090289551495239258560436212941464198180793680774786997627353240275907505080737434206390272416821235782983116560444363130713966062396907859121792577529379464419565999772386406501056163645968770324726421941911942694796334121529916154199830268661830609259435459143814705068624058952431675406392133406002320243763225837476332535582916211337136403166121030304354013688117625256917011318313274101537534097199527494241822000919982242330667874001908066681526532409032946862814477695349275975136760443450421985564506082757189928811458755536308652875231483086736755680378673725867399124985767839746992031749045905257451786097565330252918530479589234534039699198212689048033240156712114586762846223065520320944876461212468626215166500235726834330687251487238105212779979154979188204400445238480679569756125728270099536156710693303073169227273790693155805661486796133193990260722812819636236272236157866831252331826124940779109574812778799173879522399553053239473991953317923222445101004080164184918447608691719509063073016244012991428846391716552861546699430680653797519284309509900183956504992442453070456056275669596273284998419385416377406777205148459320413464558349310450667564703432436635016437808262507223055302821116797626788832216544378648958813509864731496220647151027228230299592997706524360437695624416767589802859595662842666132479182078447233481555692037241296540894735664498052333496962062883357219512842189443491585435050956554884465442789098096319335853692644652253669519715374837448812074358834085016555303699841600548375477480854529915545552521386218820845251505669577174289822569052814914601620999040103172405940599871951584189112511034237621137752175332448059073464355224704565541741254512934336584515290251578243995418649574153454614316526440616985484297089287350040947817609966912302692868207676588851409126650211423794807299259699151470445793777742360341489197511120715682199715397659832589815464659583261712455304657235313842055784037328174273604840417982412503660557119468434392818958650889676459592157731842421881470955698462873059200836965281632476383379222463117449481114123090810165979223182648532621585374976915058750232214826367539302857398487670515162236989793524188222311330800074268642789072140682648069453751903621503896662233225095549707183102626245008626543184933546062998222476029255349907693692432005377468658714249098322501261401145884929995252448357544398559371799252652317552734479195509939301176882166808517154115684650594547882348852125216280524513786197917158884341343762431208988819546738390925427435057477222941267703023672274732724950419323821874488691760488150077385683719575564227299695217299018518951208382968012587265280260560892963892229354050619041033679253447806295058235278053638517229902439090162205362989949269394158544326132012675963413459077749785363457580183023186673429082140636153867974459762644593271717508095724147373159302600242241642942523771892613212540517147594512699593673352582107636831970727755593645159408496936827752393617724974643871879566730800423918711536106508415258899950846668276070601732395945874319725945629748882861684954827649422164611477462882409881128768327637366628359837203519641638181479147257779000756637457518588999885870874411433979132768891316305917882648933864982779758878771041335843386208997914976897208331886332224620014841209456033035481823858584198447676867269538653487264747632654701473678158710749416783509766937472361873597178076273432914194727550091073132618693059995223901107947152549576735158054035916022118284899830068850326792352465478219324707509982259322334519777332569326022559195690573964129581242567891909317141203550208160151935842193493312366807428368512726249474684250569035484924046581442691440283956012304626753518069060787911869889658703746725768420443558482779727277153770868439069959277877515359948727281541811018380717894442405111727070753565206854789488197372787408652130950212540846427522132576362858102705662286868702614240703211433384432321974495364832358237371144128198246466125826169231615887416764014376556501240250945584915392069231055113638254616827690875292607142640635112582648779561831171978728238594429041475252046506544344392398143551039121871674522811502486558150405720767018823583207402825202802978835517563150047677908444954477598806638126189403367891439596401487916863671112506934439206367536980722632993104651326905153696979540556742250879650278657284720662033208741430412417665239279838509618105126252006261689076560252207326562041751188452681264780563369454286516907831546217439775715596900643599286954944371734001781909489671666762661303482138016362969195692143906095954415337994776651141628115549875303959514760301330935435228113076044821064351515385530847550085955898841569372238780350946470534578768579905906147470741934031424402051073200168966861244236785381842386701139456838885909114006087600386450990482996755871670421253225276620658742715244852306236117204886802921394372176633360173843684827073114640068532399326438946132033182607236898889523921046515479082552525900863581667351379691354054086378805077759743997083244571122790329417640284438427419291158006548918972705582475270418807219443612592135396336691801307820350274655577429422772321137013059924490915762305092966154960162149105181690713020909380897762113054761737866395610151200865989165328528519391155274285484345391920692946768140341985707349851693366061492186798203684893444779379466926034271169856393501723338156849418935676946881008877151465547154858588369162893782836851714866897479062326829981649719038738990028652087151075534788481786661393887213611375595328762154279408542029464725676533676338385518208102322816851273162009820760529473639674674289791567614994789378351875710027043986659641241027203335147244613506913790006893173798797720946106484916688209579072511597385802457583032313037991502168278729064270263150435016887145620751386685875751832177490985289982278480462218107269557662752253864779813647666436217777308769534489175398083567532048188385862158382349943893873677414751335302140197121085115014044534850294802099179272620637684509678177219597890555084331129158745562609761108478982032645829505148988049742308216654988025949632532565645951653773448110334727304540111305689418916520909994913505363663381590632461582806742229835367356753092442708773997410724320215687183284824126272229812188316721594295217487143388470493178433303496948044931676925931019420679881727997425235657675630233314680914145324875666617545189200472684745538305176804072242506140416881483214014439339948294731492644469323957890912785146934146599543093972968199724678959442148247544064552683817772187642752574875262501646665281169308265968948281226140908447785072395396479223425369304459205903801814841868969001934535699479929700323488057583424670256424588669420778227779385747609060638446910534908033732797337366691300774604387695489401439927040513640556250698367354157449941910927900007844799248930743304465728104857599398630505327977686094047609978589044177640426431906875028363781815502462490544206961122078438384971043361749186986915568945246036067652886286172828612884375588751130628849920574966391189190021481259779992597918189004548479220911671400653906933159521265790822785946113565426246123814922418691683368597776636634920382994998573465959734245803882730168740460188930445450430405693745091385439608562923724192115476123838013879471171939111933127693888379083337338824734871723476539858650643623966339518582051194629393798935204528558703976199012787609722528298811846094273745102909284687231773287558491484599376482038689304467078767503560263669140222347103548849776404225111197481574787490906488981625693309147588931308729654578895539057630026951856103071210479513547400130245138032801958457981119407830006562989769373512171477552156671184815560968891955779363547682510535405946440551489672524922302462397298893094196077638088714719639954031343014469865872830079738070593618288155597473324505316684170808054470469834700213578718366180610171561000906203951078583233617671547986374180984305227845786706263720465944827512192053759008230950676608812311739178848871872137776844909288395522671668281707182341113574420289327927267501710079359234974575142678531971009298047681757397388061491617257576427908257974003978845697637707549101387656802388208919558168137060407608289509997089789686298825940673551970159750599831825374153084544219108341774385632598589251041819460072981698862739312830731661266890565942144343427341500964572035878270980818028123394010964130284238125894681874811831322265632290762435177551452564930660758952068329267326813524783940609142209326897755723696762601901803787158265673337841578644123629221113153848484778326654640367968548059294655468839563500265723582933564364951302080641558921464804039128721337702950434046324721130106589389307441201060628170589068084762842728978805764275538192807862545965216955836868384149247380853603022746679240176178415431668733182786207513068509348944843295066580551368111518167126302426987743796677247644457089650740608641788622638858042964505833295852305952023790430081650146185458449116647890167018994588766059394971128905123734935068828034765915860201388882417835667580345372592510106191685299422221747213383052881340855592682885163926836503830023967986933135379616005579211135669851937132274361071655631332035020720518513678371136808584396307494445504013176896782205426218072837681600075098151161715531056984717922324286698665674764580186649943839707908403514440945633537526337244278669575819242059035488476621652936975071697468639980235497342080448308749731135232976249980892435777725555544017716892323068543022049287057884443743151301125740183463367009088415190890811998583845187948125124584517110242769224448372192492042283983424741391244440586487495680702188705281086162750115461751885581184072130097126109006921636821707567922133090529357084572093943869157240871593758424169503052784692010795796035632815803805989497228994253278468578401142409707465992963529759530813307034447557172076180940640101227180062160813926110378868372082379477286248535314353633657809794103849427106167143234807694740054036812134919605505112958304363136104799330962716529871999097065752598737593604401505223021297404865759466427015375150150608176865143903211439662508636356569877868932173568135066198219686514851287373046728387904818022623451946087882703147780133024655161031214192468655914432896261064988955549446301625969751780366892372976485787533009166750932978084554155888447779743257867260195175933724654347922465070286752512176128063972508280488578617292856182110648784547749417215449419715025918861268600467723512819141257056475605084037923219571152693992740711920700110903113700393072401542125872317234955287063694335714723996420435254924712077475806541464061394555204685420936751667152607521376636905676051364093332503489851109663779318784052551829684352353331057809147697126588521293205899599767277571422351011152277514049150397165387614829198508461030910078968633339188521544775678007674278619767849130210708443851987362329952711722966898837864699887443932150343767944969657902194697410221253686473965484994473509509038300433648962241695147400295720677540102428115673769272722481033472163159275288578095994800976234023262711010946706986239869291689224600632045155784463558248784641013366786107524377044537202081510348612800381334514753852600243982570676805101375623188295010354003979388325075339183793956791593436576144473176813870459346386165699446106205804960442635417064070349237586312985842028016681439522699520148953138170421193774659259791608934627695879043620929227521103876571796198282902855109571189586096534454947134470061154890978967024364517294193911714973014570786687833086185353055618182287152473432008366148505970702593445062453155760376621013943891074694068255606486958571492904162209285078926509854921682983384022309260220461543464722893424684517180290787347748290862956452874342416771139277587290889818580860409882925806681988081727627345753063016502594672408245387425335961139815696563484183089126976017572569925742492589212817621067757057202958687220135131738192310892496714850713326275205454753293622461125474928624360960686282100597184998658488078596017575968951034583449568593855154848349020793218879007090840623164839956393171997185516454386321569482191066777701156702830990787121284354238706627869187365206606638181247860702241623184850429566282883441845265529239642486747149768255398875725197487845480138759749328541371085951775655274993244179841457179181979367152111462139186752530084602489520268238113454572811259104659512258518333723820701617965645653903923863628831827398606279167996567729974378678206549456042621831443407651031032021240509143577858637336697355758139571016918781591049624563334458513535189155873684571425183074819223247760759058453496678269317420368514683340980634890762469460501041775283069976272750287298548374570947382097809417977185001311012168024240355514808056856418557518323970286812070822379550217709075724542446969438045103129915781188945952190929023613581861053552192554865156700308126840422256885566758974307168036202301639113527153081238432136017016688783093229201603676122355644901880630665763921883653355544040193049499649441273311768740327277023709085026411554503199102960798529090198612884741731981427826353510837172888262761553844837783107889540308326530220371724791474328530182583708264528670468758879565603561990521989109832678607739073279070173316528278640177859056267681740177057293855567794616725681810911743712479183134903925290852360369091173637566863851105564401563432962137995327638739413729342737053820462092625997131865899731486643815436963186555675431963480410307741980095986495821033257983044942163793153940529249810620023833733297475231961067826246078385086282204631484570680587340030425725955833815816979794025024870458519964521019746366287236258163359503381695087643647092096441041681237056664813575060964338953031717473197235106195330329747615234454470823908998504737535520638738098860858019145064887256657945303066242244915519140473109943749154722456977851332758332314754167614954970376857074381377057497928114154471238221004014474338434861977554290401845825240137800213948640576584557230370473122653413285969921409954590902374000479812661674035904061783567845908040105792408716097058969580109873144409016002604988496304032849275211847603936477156861794742547866937297777671656946965132703121935402743679155939785318176560233558850904760761703963447489565679318444984062522495571292882406664631654280812942844834028591292920956996821711077159652901394350464435925763737764683307448978948355241088241283588228129934479163030321960148349046921940745952847145696845296327383090292917229084737520393880705645291266760337122853560482078628121117764682480129637653876667573090287686250690300053371672963948876348898386266255384212210730989437298343674396756312482563616726618326876409859375362232455925094255284695034201898887622982521972685981760949003621375600710877755506209397445423007894248899669626402269773721024715361680849981281347838681621862487169203038117301585106145865383651294223156824597098585780031662289195353582977948267185473165212005486673042949499935367684137876044374064164456997436324283970872968882054437201114290848669929547367480593019287694746510501976250527340271782026318558259565227366816883685744442089269351466192091810857556702989384078811909243224846572511818625454125907846554713132533327586246406032597962904695607075783408876166221208537887406981418909812473419773805094620245330546553810171427719427845206159762471987599272384793817236349750977472296866091352027509081587507145887130598478917719396473708021696744343204593082850276353075608957290834838847336355727218362028397973117698922774760021180580718035971851149097807391066821468756774777642785370448706184301389547574826981027223551617105733016456000921576578143571423875836219600574896610182644773104313385449297097284072563596923552950056468383009013042906782311316561389108982997056076169111320007893995243045348159119643441345814081581297077230268200078577112232421004428357108763138376255946703286142982837973672194785244115400505129437585497493590899220671317942025023442321227817182884731692258363006040623245841803115699452243643839893129395489068583585946238671823072742976599089344512070067332381315565209642912749921803311950331552406500439885741155141654479940385069653097411140652995964095716549623217534498957611952121707863675842188067874195685884256417747624418548352184129970545447606345885194034446774466495925076394223849737887048801630686270161902391639192458563334524681308382770653822542311558642756171715107008325874601898796098799849213178391596277036433413278527741399049183663033873400055603750639513758997287294524020155610128463357983620894556258202254330257676857239212340815407883280074887407862955944882823964882363023717880442872789488844818995194415928871707858173537628319163451608283280454564187219571592672340117282770744622165930676248471989857686250571343808112435917963113919828618936892008295522102347516377605147556889114300698019879297431840222088785128053351233467932878871948883083203171444728490718543160207943467908468850763071612388421478916442706455487456392621704733406915870368314849398370583452736429090105874787418483594147683482776215126801970815830853211479815841619522579214862343184746819526887242888699976226789689631994829562068345730607163907352595952169777368055023697909767208719942401644587361210798134963679928079628438484217711760775300089625977126002624478296722184395160421222540608234613634225764731865476699322828385875574998220406516761724623955093420289006155622635030508324954878777901455143703017977612315513113188342815404797786408501757056940732126026834999064311245517763514480210146536572990148739899564385534615105097368863954754757126626250666127513289642841531111956190350943152872177435430996992380398877051552519292975341335158288023230806297666667069069548996980011961546944942760034018504326016176902985390096644197354779202577220350564074077062552229469317281222115617874765085463020611800926028035569257819883731438719090125702751409653551089040620909219927221447049821748531907162775947315169886826907955832344987988369768836987254459330262155007327211798639553613607440196519378355706988711956657034200101652177935987966108450254404511260924237055315234534150187655277041858816846774865955076390645088634697360436284609009649140062766127080408664685291284198432453718916411154705434840102711573740542501669575842565911420605174449225785041174258348147095995666159763463571794813528549022004730653623320468549022444239226777187358505315797965799619928586795889716352888362596675708070531808033885207186822344641196728054772100604399990235726010689156626893062287615916230617280897290703725120235665768125430907185500516147460878028319044944375862375599689151856200054013670438226236409452288813724859621653320976985347268699472526575382143306820744222970519175737667134318120016865613156742426491644422835414099757169924633857469463686535394075824739106632687758431162660745271279568960970328364977643600577331495561781025293396832603708589389856339969766097222521879026443484201675114896954496310791129979199433505208537135952363071516954844005397802611119149711408916354850907654113285105275419788264208754063498067645099269590338276196635133986416996097105241976080788280624732829274734188619282446125834961715354143534011451259276877137728577755518815369441026751002553351934145918022875176588245468436935312156071078298190021392281147683997149625846244563484074435793045692320617934224150792697195195785933973656035855675805077608992445831585143216243113050633995607350676791486112478472513796158979436108376524303006323595680708144994421413657333024514205395347334152588088387917736787651596536531714512402286570179567198389190717162006026719824462495234867969809473222348710828201636887921389450696035404167011284793707854792447596223085816204490807690556992622916587695162128574916188327202687131287365512009086361241724916256844490223174661294248717019339408587176899507679110066762563712393192039928320460075420341926710528328096430569478171359187502870442988411234798778954803770196658675518471829542580863722556702235819178341124834717303304773383446001294745477736152268439940998545832990095524203374680313726412388052754690676655633580810319924992669758404682958210930203013218708102123255466989073559183457679512097238837762543262794597831388316547991161791113727306378256050026277840989312856989009605739169620637971801809126214211088100114406361978160759196115174689957663253195697090246123998635649998284191349949286103090089627202660909250268007072463695368310349874872125015999520365333767580931084802031538957151843245751360683536586218888290785316192615490267589228121944346249377141413940744814721958600014145171888395415422820823357045346350647456573837490643917810446348453810935878143924618688000977319268073990639084569575154521383588604559970812921276499723451557160590675000202731662531966036731333233759835580134540851116638867201389163828357024469479809444573889536775663429077910458802626054917925550725627496577120325865605788361531339042292496295023411272608250477239067517617423053645275180187391028082536502279694999945450808855025553896903179043357335653277746503951725535616241464297258901935012484514880365955116540866958072036064761378494018679171312582761895489993926070212142702824610357730698832193439320216682457961261987232124976145641111690648674972027262986306247941959255313170899845797336592831506216672379368264984455546715797479032335729749786385378318464649161153496583115413668509207192069113829118678200274582592795015406677023726577887781872681107880623008200144335701758153705182969639151538493559923276124370125713513429636925309383348356397361061481398810864477772314566687119658575724884942130375844085440647457035213125493213570283174773280040893823587844481817224251121572187958688895108384984252798194991837226481991569595829600210163788045439509579924447920767126992212659836451437274895816942453289768267095769624650424311955353558836443935979245991964383962980074937141214666937232539372231840012932722710822494139894836509189843057532835792678557005416868639308540150172834661666426786230965234551456224311855806964721896315419322629340308322532328172046423230083090982653844072575244421648531577417361104178222546210080474978158218873661109584687120872676454128774658188399002409012232273337209046285474435563285204509090765733121727912471581548875012958443871996441784104996020443885036568509072905501655719182295272965946683601955742862680450141328261591077717202199592699193774406851468239859291775840634150619518066410088798432586637604121299448988185638189596906049650052786934161363219778032199143590985966440683251506980842510298241124082741261372850199172482631369397072236227502131829393330845143681439863415680147168436899014244066286938211157361986732750645754120331588672854099872735132185635579297646412786522873029617540985037699844944213394405866575088519648024101753341857420812646606836653388457466674944038900379853963712562990353177429083915064906834227911371387297386458695203206552304812432315324510225619049943327560205038773041500255033644549323700999130415881170603218704282949869702757018765177918235531314425091175546354911678768108822466126054461060179452553528276840263039844291569582197388246578605747512733012618276706356019167076645845196411148548815043280329595525317156857139653235692685854559509989640247888641372620347627971554764676971949146844165494698954692503814027517449969702773595339148399280556711544119561248447917107999227969727805531645533393068787485652000535312518852745203569072453054942874504802140292687962881722672169209639033748443730429438645449066304746540424648473486772987289018616069165432054103621321797290907681664766025220121158019683879285204968417766244964023171552526392978580497699169002632965428002624890803073579824682018398156496119556916290940530084407058699672916635720829162633510273894024552148710452284657714388082287826423648925643843918328098580362300062531980397039785412021354504721804090362673496848119241067924035241998271440014197931255626664422078585925332374768581716923083900948100521946767352030548733943215330999017772893329605050230151447900282069497485572647503346803506178805549735020344181009068633979442857620228749231739881984989271401404850920255616605914430822172079740307874911663233210318938999818491254738728870142179437511496525742611297007403419656234061784112590966595421741094772341070404509941042853141618936425305932169147512782075618960751726126828034794340678974560891596162718536411597546555574186135167325388248148244072982747643063080981811205317941129844632722243584604880690682264475400210284183342323647429484212158238684989312928121366407552060461388546740940849669546082577889281037441489950037959362853204750545012616846895070352237434430418298772498043702691752549311299979922432328282933743193142340320216031703020620911661856367339704995245252382284449154690839245258424084784050427804061860796095643033765045052436186027620934700367936830191089633182729360883480778988974690752819045653666275916723479065335888788171076957303757739382940660857681708497855807572486649680525456417696648001552672691445890422331799889107878100857999998895106675085802117805687686830573074212592878544591311793650361304888465076771526010802085455091021194358167896098494578501309307729336134586401954301367467949483250711144095385405112060854785191383788098676555120258531017940548986643212223753905721989417296499186766600301977148159273725927240123276571818685264083784381050710573592217421008907316549806764732180851932197606394084381606640386511365450402661767950891085859702672997002245389886913791017182903268102198598856059586178475283102603386750566124809645637786684245151292225812280734289530414338295746824628363563234335958589055919694368267733902381950188886910454553588547098765522784189168841707552675027728437192743726034476896372689037129130118008700990286384513893871099357483392994420637464145450974633853939115351412942541506019021574797455934406006600525454764408653876339553143589637738998509214255200417576323094878862234506970020376723400771408598757147610768435349002172671294224658520601306074032561859791830199580198661282853204859112462764542434971434734676159929261629517093301895801785802104300619411688891536221770341031532820768141601203549161056800570169972603423154288278433878793039248526636064601431732863341240440417231667367976851714990919184836593036350086302359648613744124221351699918516728923755117448728443397617975305396312816548406338771074675014141131386634144034645407917694719454018109860606055012786878989010444819092257700996489782786800746833947802075243694719389923827659500619407296594798024491494644186769738618814552050079810478938943055494405321562147983013685112178101176593657429443127790734930918500314028175713931157347504847463826917124907135709643689250798666802397696049071884529774933644962852699731587755540644763311377906123712786293930069512443107785109842165083786498787166911337179244384547829936664837046189428284355059249855963617631094738700917757427876595395550979880484439045898824864270635312716808349624233089334798472783073327929086725879409825311315053360004416788954296919983670602792299285271528498515303302097268045766140984974799621537776513280962630766516081893565900029491187379391026105503261856402800149363381387258441984200979220564544840246569086595862924460880421602979367429044469997264852901357516266870891887865577025110339608920401644491225818167994059177748947570167529392751378266823648205792722079219240653676283971530202117263129965496680603025014446289459964905145642722832796249997705796345448970721174830648189693708245279277513225499481438350226194811886913217820781857232538238870449920290006138894864110212978063586754222152980616357749340974320864818683057218112815716009077446414927906227930493605775086522731022464229955833792318032254806970796730371469830754236155058010698894893539271777995647672794300400758729285650966290016086577717199504054035906141943919823064417859508720551766941145655608830880415580729278911127994649263567353563048142854689506097890828635633342830132699028596282903599645180549013884338209486609446655269046423069912169007536523436958015527550192517977370241113820013939440728671761182659238015886582424194091074477336441217618264112499644001960679392994302818875483526398066085492976513780423006141053064523341949957590274209784787987139970979477690093954706686873400583456692883276660502700589679102193995490953645354601744624197433068525327705282139707951520571137690605459755166699554959883950671556057678819312046507923899329072223401325680818724127632166720109121232911805105136752860602376713138676958811834673389835995102795714235395200907584191233179879690571326267878545961468440965067163153395252100402372673232409192010021911355296895299880197760487106420326071129810880740597995962280364688898425530852344700895522131684604968572444595426851489534252341190557137812550528384468558058151844364582800309638277203007192147746534892967712522448259013103683596396179047782230358159465419298460205545393874879668742794130722399103056054341520290581700859557213653107261204119891322224882644419581608974759365225775532421156159131644358584958745950535236045372318571971734468847747677529130213480535391629076431793920669163564811572978664948695371237880724367609981291107937749956480586425524360009077057407988310852141139639765583084564077155904107383079032818624296179207396213478847873167576567944990532441425077665743976202343875780326985658015143370586164014462389783019465159338886764230273384660028242428999205380565180166500748503657212945754812665654296722557699086539532628137021407097400408521907995765375706465551320944117125970789578034141988044183397901294266892671359485764747171818673744191692591169402338361865699118059371000899782924436777764612336321343266363355190303437215974442371505899138452063724349453104966939752235916245519135128934753986231525753101105996883316601613641050335356229559873992228946994090054593715681279144042305988165922409687620105200408425143024115852646527561561474350987958116276648629827282452268425546759264140975941513165427538051017017771001892882691862947515879414993546808012073408070057695633904012417596487346316853287668531525980050100989338102113077484116809562666557052450904118231613312209233336341036382782788102668923452362471447693620902512996435857646504754816887415081722734294790732730422597802410488951980232888860537794346557084605426444619155927795963320168580961473066410262369442655420673855516227808779207774924242644371355378689447414758584612410721264202804640859413079739284287192689400611658654892556383649884473284604743565023440697262975805684485993251606271129616457214339885973685095318254807415528097641706562082412190690903228952502609119111270964689962260415937780282051133523625346173257956059885520605677403912879055594315655871583178390011085731568240863498246548783977217343461207430316704679945957155808764750321865549276717419679751616461317596097586921650990443277313647890010352702216306672666824872303957140174507112246683970490373852478570775706810682528356036745990530507540429278951186345418999111609351093270176271762979874305797017794489083728693863381055868560669323811910679836545349548034931966195769817174196248106975366652994144369260303181524798605092150263185800077161647107021816674804864924815478407004803721981798421712073337705748119970853180431349802547549234824547044325492938672700502854724911550932708724273808603695233428406304713074334895044421772339063268743192339161636377245865596932556739419237831597925128142077240268218474494312103509522114832368224765732188222337988268866606468232951670472067932828116679240020262210953824647845962432660532315742526291610066292785280904181699466995678477911267692507911523489900050305481359873518428415390438348753403521992423763360401894081603387378527958086789117369875135092155752232741458586412225089166590813297448523545677877615546994437049716823581821739890250056474303460426266126088374345968702892002670805725352999357419202210950057206537282400339052724066784015579644001836330699960881018940888503296244100517349554302194835868211551122662954613112840868000200876187129510596581913214848053652271754308130751495230103915079596008267600247566493067123555414650821054486184963897918403322762046390665353504685944706571882760739953499340654891356195190518261578874597650900487889304957397582669903163502115106980863911740766785208334812963244868038874100233577971385213439311805063228323215440074615333235435886719061419120076025960712951622911999234246939680497914704313684498216891572323983317398061064399443691101670431194969928196610916994927347718650956892851953800770836531858362025735737279758989138859904407709609329601613354343051100598063248066779406153925218725308294942180601826855038211332465803985336292099011851805209469829123994991408923270727390586032773648782145336740431397734545768218420850218032908146322503751099982548228888458157627300039737785898946692348559767604789129706502573035869249530004500684421994639163919078546271237759972975580486472774009077150394285254322769251588950157076006585182634547416667605178034506818420579952542498815371926233374265161903838179203321736042151610057452481172601542770476965324102697988413854276414024778908900653449203663006419948461779510029061652281551967866275888044104607674894437115423709875833286393703555532074792920836562736645062999399488305737971438806177618608625620629328350989124213577749838022697302094949358006013134728238992171765985436791476130295991861562125521133304566631691705475791211776871825142415729463423008791234131133712020999268509576113771792248706613560049364392181696577552263672289341884670562366932664668652077951989375532087223724042018594152269617214797783435236825012824106121837744664119601133346872710351387239069869539709382715423456369982910264998993245290324615376942383786545328793994476947315207766912600009163346530679976870672915332467690945224600294779950120079491867362145099706646816955361536446566507909274507195023449694826587207062631140983150623392861110448536395989038341225131361342332975080982046071472147883790004688706166665819590434578957560332995513696226653290840294615096390739543598231355022324467517844758671831287492160582329857877368211844173009904466967617164188557987221662740960161476322131449325599002236412436208376608651105927903474129606176934209995680879387340291833079955183390964373200637074582846010340510867864021945607341260088519848077301141288672358678582945791060356034952822019883244348449604067300139260582413128008283901758748058848106444723035808541004580478231009064563845258076538161552564939454520944426177438842969814228406147555409488386929407778319396012469811857429479221941151736544754523336849919460016954788243263774681503317733672323011485301243946602822806942571372980954014831833201746569123588847732881146757712554706488807758587395819938196002399044564075499810356168221271928406234332178576303045632389983915781687131044395214118707423642712731504253362736199789269495464469476011433275516788692061055094896624057201366977999064593538510556963408811653179123962850385852998068279574303826179083272846682244909858759918958066370719085044709541541639111588578111872272215231171041881248334309283609116037565282972827867311321078674374068784612889874961661450940453884994752718456785502006648173410566895944952511622547233337907581452779384864895121357373688888678610568905512870197838779877125395771279520405872751540845409323807635390917557117459682817373649810179852953448456940705861054933263216053042471492240822555831130976912953405140785876327661439063402962839755577719479145079387929992207573073291685518744116199027530316709497252869774537377885399148134371088349536771186595437253050537729778125341335094186667277471091065462938692869932174054638200048695759318994218202687695365408448871468392736261058364865422560346670106901280061384166301383915876971905699997246938398534069455607476215894333784322258072683489345733408929013639871799969440535966120822925126121051800087992636659437613878740340751933039820125445901449995701412052979073985166372314268637673382890372022677623923902664423955275428520908037471284613069546512964276438519083498581817788073944325740005087740541693973966305769799711117270377529060234472739167236857351476420918285335203031101728134075689204871519250482697705601786243902453758105942869412012366652244847204587733774034176540760087319159285733933910487242825921081472095551429074889282260049831253656338512409780804322347120537673749973718250189434471087224956047013276954661746604063753520446867521213718922360521761519647477940732031942075343293883966536488321674546472939455283207836056065904025047992473805694889744212684707438253483557607216519799447573783155162622501046836318845316181734342364479491210984189165535532196862868104010918920641050065996147027206408921453240961851191586379158785766245171662448205059853180224517943888809285355248027795802685560176157835846145756828196327019796612946535213013368380763365869343837620917529266591820586275863984570386035290235486133338937992390825760993428036309335638559717966164749216693306166409807568137210174523272774622202639307575604038065405842499684270453722361474611177073393154585003751701799872864811202578426805557645993910068834928894629901082337365321447983109667829323236669560368299080350136493987211719270656093769923882018131687416098305642905283084716366261137843390941773475631057233573963188988226915582746295114758372621955676836761676129151231785035322920049492857899154975205956856161264268423306475134740067720160137756368929769419339947975334121641616463501381537147772559065286278279161379457153603184441578524162355381937819281373307414730660248914257081890680097511269752494070966053235752035393843721797207430650325842922088717917004302869164638518846099911137844873617342693168214887824961064762098589328368769725054861836760138084209755699333346828696413585528181306428743509451910460343205251995909117350425326992769916664342582431690720048161798500447272514416901748886191148892857058083156425518324030035088486560356808560980213459786046226417423123407105976297173389249280253146534736689256098380460376672189473814823481882071612762599721039647987219749923283322704846068962016596790126545927470503734062825433740197125768218105974097973868230010204997425189225964604154822037920316920482549790726346063614673675312140683272909053362963176602624642053366194467448878569783524465515351330416333851012470429532277504710512685798902722599097226067603215352795115001047747839300445816079164465910169046156624990191638640871364892535940388950297293406654095616038755698434884410481033166032354560765238481485254137918897309350558056378254847561842810703134771821512101342984430771803921510866472597375645286913580977021039143191976230210528764288412196776541525285176319611551823819338308110890378344032571800763078157989181229049975371137920489568667473147575389897272700186156495940051334371355884239926546412422656747308553794369988736327507609360183165899531975954061071557063559443224405411117038321564509064510267046059149561772229371178870576940232897641210972027298029939149985098401399083283799164734546008398769494369426181701990871311336806852214379906404103852162842490388408886678177720042655016154756986560254661986912023223051614884465220757737934566117532309047663445390406536533377116504804452191687310788812190650249518465977427783811238765483378136378674270786373558106763476275776015161669172792423311634527691025336094696338279844133790868315383790463275094788118182888540177859131291821635520519725606859651035386674136109158793044328822834628844855608364570137604890893976980024735798767994189161213839238868510758665587229625861143526546333906332675167006407941646462916225485959626313084437685523760875467096322968410582673222528254249222872216488930092159224560588888126561587768940348331108169614866919083521941694269520119638590237993382269424503882619351834862880318430240310308276463180479151046027289603242926481180935414439163576617925733947554257039849225832630651578829507714302242347266174497286487771727728760108389044158357345088448624511289204737944834013998321172655967539290163062812901542295487706713312552044664657562781988247808689706570443815349640889922721804970739637548495419476621248509722316129977676517116776270762749838484572456187712407465318311578294883564819689899972203189645884576711902419585775322048222301950229105355679523010365931123209713461140580159656098289969094495857925481981821802555229725159778949437540625643272246855516970288315443476515691392120028670989871283711611920036877809511956289523399853386810342498955386371391038076949983719441156626733097767788854528689883921210611705894625090583961688354920315371307709434277998839663415720260520580893362247996398415814687038462949198454381472117574480610064822026728431974578607285796357381675108437854754381002024408202048817337637453252966737770694839063613482791789413067438128954981073791673927639625237661555308245374517249842847856144776534188087841830115722851956555980202337177279865442544470851777345220988052950356503782628571259446690261384041436696956017512808738125209511383360266495094522333516811878317369126895039587428781235067247541830608522358695963384888695115956730223713317297131883799079181592699684944147424376908059265529912858626887758612334742978251361890213966339029777320902478966339382292225319120346853532606001523811901224322197268590048371282095937112584898559094597037122961278444423677303334479350862408435440634135864479192924963044265201926806012513717646089897206431258328987961994473536125250669506457666845353177508576623736158305691390044830885272681003221561690952614617674135948793753787113213893892691336996558636015487143736732422335842881004414298224562694193386627405632087032375468887318875823835527182159456341088561743932904393453015498565224470169348678957049943493654758965785293737591590109554308505227325090081890957204339282573091295747800268627084146549420061540305519649169049358599671635880178565819904698066589842866179886943884273210108175252879795863444801968274043099232718791155106675169241250168808106760666221302955958673046652294114606384434610830280463246674086156888759944775447519100489665784151683104991172933751464907644687214112474603521440527715105016947780867991675339594817265564742872182764632755588144884010941080777274835971357767751270243063551088843087188033634481460103386344187563638711069214650813812409651602126662714183431773775742945848310641652917243062203327098309007036431366461952436895693850380028024933391551445320121278192347645066762884774655997907530669963694286040960773060982106401437020719795025678029089414761218217251918311759415186487112140379407266630258570376304202643785251115448378753608356398820780066884701727288764336714473229232158005731739076791202495478710818744202065538930312496905260853128273167757262883214014447933998531737166919137068851994155753685694017616167423373452777891252593963718002330780045038661043865091724056492379030589592918774012094346246933190467103991621377714402297664374902158360038457899268788322317608183675735852568851267564910485498760281542588082917697626551761682883989084274107903704613246620144554257918484103979314655923425367048501154677356333468242292059767971847363110647832693628598320659127795649091591846972289564458431691287561683873624702886937837757146003152955381976937912968204995070927116527856996872832180958093937876132162034001210090752735523884545160228774573685269590602861244562175073038434252342871608020540914794323655943242471233062932178005789918939391878102394075602035920108377110829850212433172920905788326834932499161058975854422337986203454968582525121987303416735727901586949213282125912241625909075793426106247462826312077431186728901310522961758566323692655383354426373657617808956911005409582342221905485134690841629151981158687611857486499674572348075431789415407262303278455704288907811600605916708179606709035324086995919829093431807595162640564139717879350813487020417485901200263588075852749548901295998350572570578986774216649537979569788816716145338010630057294479188015365508064145466835196477470353017972093862158932460401124577953249095633848263237741126870009502152463068623718925804279842826573270685922000034591788400240405136298225317561072081687223025372258212630615526619788174819770241672773379210259014494285365283743942707346368816679459114592017545137132838253862774934031194953114160152577505798268475108219233366210430725824325011608748786753295705777495906455815751340458193847133724711306061343390479023559804255103941354520629456420573270759185566778185326990222115710405908037563525400149405313739682082364928315649587664027542355884423733726155854230450581256011459311467238556204260127713267573201104724330367717493941647755122899267887343891072005715089147514151828923223115917011565323339515121861602547485858589577155599416538028969721945032843973076241713362871598476200831306609994093387541391308254891784409719892865810398257876015495761247545645414984112927320603083564473262962805334104666085551509037057350897681096607799418678941245316207740300284600568691485429263723679137544747476216846496251543402093238301929422630592376280659929751696882536707310248403632616561187874871752253423350325690012029577011633115950412234002105108657328042250967121361148214807098735222139393836070223531363056685934763349700983112054552763094424943938141478316197203841076029024787831464444076810120337157565285765334989520843704514714555186756231849511119092444997146725532440533428323871722544547979268997166196682133335357489180883510469822383839575117320237495557610559320395259156545407576011173967136341369773150689459867380347794237120037153983822370599575894636701869467102812711361667877590953436914197079769471670527102055021171435115344326221891958021035407026474555153844155842722912734043029042749846872570171112710581592995578587281044020909656197554822891243711107479066503959591722774551383389947481469534126951165853470249600562138202887546501480051117203228740533825361684907375421241110945080714203731045468692478545661472856752067008209077375571912610023906173349975366026552636528487195195903382631149213240703485073536666939268467830178331983570174965826759949966483908925576710035809393114034943937358943927734577388494881848376580860022693794969121032076103743994990478480388810286016318541009448534180352819517724040637997069508060309328612073904971198644363858110463202528147396414873283316738140850222266182507187756640739967365693186370039489369617468007205479434466926356096654255992040439254208877339009831386436619956878628871742173686056555968650550555076813289054375055422535093932309288427929219974200785009072268826374361624054556238590275958337936382579837084691466623803137466103845042631357745128027283564669389641779494202676240076331984586855354050406111442780102245816230627079961935200576266228331586567171365352832532988512370270340558832460341365160331289081475823686799606813138083857261369306997225787593448076013583163150511865828157006580037096939523505270204736334548731012352241508038960945839915588891364090816942996197665062229770219462272614878068582910818856831531968493562402708671320139732251102422276388709949562552294243030084899508924918099330987991557234858920110854965756989948567442007681655895580204380797131314382647905807037883079600157722038583415666770206083496014359728562820768172236167985459561464372669004060410868554247842425314933515973679365596189038116206749862722658235474499535659890613092815444038841637427430895335798927361281985003235694940912025006837419543906611461059548889755409568151495028061697434439271493181193436267822700221498744218125458894888997443798127469610678982936154407520966111624085422006595853628957115184425697869303074012887700015356020727732102200941594604776000736996855001679493437851900281806569191110849538921327261834606834664589086645668406199412085353387507058925574329090170973107197423689127757835271512841211561013567869208952807847469644847965843624085596437002252146274995587122179081188302039599604424177373762138817449838599326165855197290801199361428545606412045266664340535991079542724334857484291111532547236966653597875520041666128017810548253788839673195306682331414754114173539780339620926849646722304438108959838273977771769462755879513230233032367965529640772588340532687408925890854041749401754903250843009937611185557914356718775811069669796443231952045823268639195320013055899757208413536301908937180033083438941022113586495100202134629345356846187561209810040955430354951192683351827430222146532542782592495345958241793594483872351399879401527068451320220503302015302801486779927837352180329474790324905572586112734925923531671530734755384778068281426864085304122633843609853903072700289563813038129286330836366760945471792920445884771155385373981241166278093133211102061440087419478468888343664665794111651998661828157222635886065680681834434891419139619851494707143145371656885822671734152809739275553476454727557420157923685323432289083643949312766322268141064247016451759553406540456716952395532973684751466346415921764386030071950357618411556348427363048625841542290930856438074816579183406870984384687670453352222399060679168253891530854554034065818469467532897989047276421922933001428638143641464284490278494533746453957781282840449394057325388335501498213989585546883396784337333233837363135667814932234736125475031586116982442662025071725804851672234683927046237697616609112930511737776992874917091484937001951719020278663830048047399626517758194596073628622767761872742867202465990661457759275109884529348337443023471616350992647064733456216647686648334670411262808146171467110870656404332126963629109413243144108638625870589944589301891352418338305234180680600410767911897656918736730032885868720254151185500023858654028711898018056885070393103090119952760314750203648231780059668364500768552638190118537015575102675568711280643592952706910061425173831553152903504919146854539090605431843501392095851092088080739178843648880693288898132449392992645149568777586518065575984613755238140707893072218458593612046455674314663091482973043873807385550658090309867245837125698034794495230816513208852503209891624541383479443934146361490054369036744940802317892103244808377661832805970474567006403900970493504456252129799726240659473541001239692406314318950799559366049039106056212000534482952110930064462927563292742840779071365336681117918120232851213228089230631503626632707269759993378103083330753692374314164653166062509707689187216623434311370417328028121842600991343832248886812785120348965186740530888092546584947851813906470029506491432748281010782524100654762416171599348336438507028393080354074062675995207042913302839268782860427706031742289857237507855977863605295341181433215582991907386266062842489708024970913795008923276767684186015311547495533213150760089791665857957418374214717244686443682389510377170718147002236491291907640208567734693407006491211477793058613339777414421059717744646684197079537034099169266023457932090242893180683370091780951321356179819805372719656605664943091262881068520185910715705017946039285872574494742294935383725148710980520493605401491769774645842935638452087366406424410727038569171447234247643186351546327004379254439713141193959646901309097715011915315243417953388862355924430507360760657508716046500887035403719763977711097561229654010049082946130717904853158297463786382142646178827067185430318702566551272631219968423779077282152834563096271635017434167844829456366058916501384518791566762256247258230488697508663405609107366573671212889058084690168837794653356873466207074435204657143496963298236603981182217633561826141166069687567534808471304298351389607269323255850803989121691440039367053681743601943338685631963509401704492542846404296982895792824299209220452899058993477943839973431584733315231195296973830954895796611538780421843871637985133770226985709330444651688293897736957487178204284883981779034814269103558120518686477385172650455477266836748749571086412069960192209596184435947992348477081820972181331256082522518058437121037946350086299468954541197757538127859806241813748769194640823797555705418184805157323513833095613740503722713916436491651596104633718334494279972223578595741884063398577493510344322279465988542857948331426708907684699602807426906114547521793614913159214460006654847259429982246745637410209071622175068191093878635232371744685654992258876803213550517036839230977449411000838674923287494648779041354396362887756747508998202303226006393245874632089909907376413522239055982717030222718456155200524633113120319414506345461309640149866333267235349468410609019601419755684388544453001466702394870618757687582130012795839756906864404160609605609236343694352833810284107245627319507642970725229045771903626891494495901553178160679879221037271029720050315352336716437906055411676986143639391297509887086666568409029489070130269022556496431185305338249628254089256732553045246157061290712992418465250995652767923614940020138093398100613845988241562051479608176252906372317322938514918770958248854106270317579736013126077665561850266945943863418719221578197959362857225519951408850897840903220950018755009694424296532667750687823874672269449044819320003316857460225297225263063659219790289429211676634378143491368947482914007635406942128601515538564188784496993672756917015768772311585850615841928774890960225712674024776348846944362662598589577958745230727140630153194757644461560230343019489928800009314430190103771935361475479776033184253447069288462049838676624188815840588827294425570301151931952132228935707353989390032533346931320446383209165082838154715973246064803083996365194646069616535353438836709503989574681650531739216311075377032902974559868248664577329011766993606023875619118872608035536169764304892564961028226490278641206109318150796429431909143454533573881138279919363307343496793031760702174293754808921334143223399123182737006287386414277670541527759040390267813162862152463211604105733816218069467825513720402908833873934584657951919774817071170395881067049729129317299289839466721894103087638618344237038537903219887180689167109813024760307018636800293378976392891012725866894576453116177053915744067662945376827723898571702565602045774904378194013849852101713966200480050646141480286426412647643432068064993162567613275462178281067104422926337190435496196723932332530797700814615605728258841015532610485102783237365894865230609612780427495642131974365860998573754469756717998682876003236167997247899291484541245051465666459046907147825789584884415586626407866350475700019607657956738555246835336490899315007763809774117159966697746338533878190211766476242514321592314175506306230925511048102928488576982672162123414354552934776628408185300285670221557103777656588103340972964442212120115295408642905424461606783923207022064717740899287426017294653593625729317410849046305330657463924146392826094004172625512874123410582194001469822135535680697551119467884384215277218903059688450511959983795317938468757081514667385488299200803289638454627145571844266921920981279227416450128388798805030271751144557764988077429311383671154093340261878715797587018859390078097837965474127779632931470876152935205024635699437839679361541707657796431078773361381843600477702051727473301429873710526487339282050133499697722778649668761532203753692638678189749772025326780957686504763661108450577575321835578302065992575993351891221450607973267457006666846895575189890792307550917886925605098943511148410748995144931266582571082270738110095968984002111402206038829649588075676697594492080320110702744590061728157544190269210110097825208815599815937011784646239803153820389955105505825177836410144450837493913675205826917167279202163975876283582710830797790177399525354056892029315815299641349236530553097405951446564553937457904362941341732323237437736604481638140851259974042481866470670242602618374887175746722994200985741718688751148211560291913841339002607008080148250846538978138368690048586583697085201673502446405473609036626935846017289263821281283286245032109483468234031512138391279623691485759818850230674176329620716198154059849942993120624311992582284119320872399149952538871729967722355990356975524440348918812608017083222037971334862932272903624684186346131774155663118801967711249967874181038605289050001488379340772328662392882813691471930341297131011868459299817874597544151759051752108189822393383686597473272799804081471100171923833361732080120843814530931222938609947755064346572117236436960114808424033582321565047843081484751441003566806442905967786620383400394294011424300939604336179587359966792986840743395157788406778384889709168130259435362042915524742782630300867910908880194350125043909746645979131264069490750251527425960428323780522115222236956480621809500113163170562577268961321834453157941157362943052462579501820934803304349445860346690679948322922058527963326965070183677740991380431850249780647318095785123086562683319458383733437337823831384641995757043302186870633235058845344883096426813504933993871748292924531232679977607050383185927039519590919649690645750830323493116782770430785164282155345139262052356750710801075080559430191234043914087030320099517987654801700953817723312887730722031695633725721074120895240538171454217666230197669309779731872540165791894614270323087441511677848480035104710743610112178325775067122807722855664445286911031060466547975318003002583133814054572263093375392835234274065836933618578319929799202317733054533969063927891674035430807269943608933366510059285059518008995613893499435057370334337025766220519742347344232669958565183448719697459572505879146034728971608268473517020633112813848460730091281057186613194306700276159513276256717533526668358380987693415749667059540097231776793328410748687123419012299355014413151288268032164059768023132967545982127004734976082592045415518236510026998825465953864060570616339192806261169629053167071767900648862574798557359290134434822609967162040510626849377993989936459864494409759471625354093727378176009529757420807238475401557041243604763375619716556981060060638060980401080175963334266597112109313388192423158868011155495697231209875414195889030876002421205942928421580178406416170566552358994993679504069660540123634141469261043844530699154073477285777839163248411766885417432671954304051353563805636366243515101535901133448374225293597267258211491008894194233765248665901829403660238301103262331402211259298907707882802226778394309171955003804728297487286416116354505913076928824584140190598612796164068830990755024104296953818083971980357741985893844278880337304834733326518308410273534101981420520668746842511660021427882887033167108516705845546158350362332652674082120792036914004815804583857158224971221055637335658207564318895467525876668256338172956158475209984661059463908900138171660793475712440087056178343153137969840728229599620897603058058444672053057985302000088793605422690833360189332798075160367809514542891429881044445568779550503623327218783737911868789712627127701436219486053131230233396963593799286087763102027110172447542418338629498619086656688773223218466286618246806093285802618383354978543639546591211953760756662302849885454033760732356849751764828707290472015720626649906415285268280108229551430369069111690713387009732275880199838589408608802661005801911185423790859343742190285082977122346669018167214964514843204436717169861388047481994872776687600261407044189259187879515015830295853396230748021038915932455693243512220959185251762895162422162838273304141713248363906241686358295016881323777631821519227397658824348034416119658352879767169099783628194357853351350879227730708241986799414320061545710786580656145861505957017481680294384718513738800149429540610600611296060579113546853263640303039879069059967452051847933322529930418516218209601853257535434385359427033001025682621642255927172977463146907344640369264314602264643526242375543211564540619900583774830545310005365608425239547811112571558463391387542875248538444235515435392372605097843598044464948035511748595882700954550327450784207630471351262820026383224759683623245250090729225034293665452611611487699135461449895575869728465508301654024718634205725667671031402470140987028192750812315634200895489977137154925519361928951720705012133846666579855408091049696525846238280602795402319590931408410979740435097149184840032153278175898654670985966626475468007017100842670439823765710893246877670884459657959030957950386724132494640721135576395177378818864844945102894162303006783111567432857333148271982244993600051290716754494885691200632876782511843641839686327938174308258911699941086050857478898575442146074809175020055685107730942472744968295523517665124421630125417418913457161755316846838798935069706660327693082033751794920697625718857610312654619854162590879803526315096562836701974111882981761130552410452249703910080464565573778850249048778298750770705441047059997339857794455938594053885413939285000739258242787279417313694734245267848361114457421047460886247864013674211947071278174794136015318793412762107384026061841171058860035194781311067344915104864002066242327081416624607391135016270843617618172161869261719838303037205279192350553920077859340727883078632758753806877765973317383289116465596248935098015980416818738324523439123291115491241670350388975671504861062849778554879631525061425732411405837633956116052659675298248404709316100766732376979941507136710554726488654016562459851994494688853487430145678753771974199359435175857701759415946810148813318225840328185028043419817638540446800638405227924836652483820061154395753330985386703242432169534190894889401461346864674357659413266925199883722979625801853490698456908264506668164568457926770109214086910207163157142403024113862288100194575730880131083337099226185188930416362575916219567723320092744130760602109149770456127192495258635009676814905745229818478792790098036007036311246439247835607627437101852127523615287275079762817965722551961306914075162492627794926395030989021509822209403765203241375255527098557994606707775038627830151413953076965711970404455689362724146605715048538772091871173725684107581655061269835346739619653150068051512345989118497912042837461308489320548187989713445631522935567244811709796621416317122324893867472732248087297590761396077268694632534907666689594158490639588512780574673917625852399039437636601155297564898050357675095973389580917926925558787571081729739187119193499782637017202611599146675031635946885808118341614535088836037304292308687724079036841344989651166799413983270502828259066308000108249712563075424915207686685722979283977952027196714449501057835313971475825661557237086352256784497443345267726742004129221648751974546808471584602391338658311158858481550371878370961878035921396143048817485460477918771620031591165832229946325220156703756703763391014336070970763070114573080480999964683952089101720634440304496396957576819682450652639874316317027983126318152856779063047833895974866524860963104393424949606415238834611766052285232085651199294508839081774235146865593798449429099050969953006999814595563026532259018722735377275651176033705916504921545139164012104849132280122040025511819031957117960524283681701802303908129610854699880216089258586342275136068394683155376213477095825704529562132059151050503371875869055036024298044865069024178070748691010489703553553398256558586039695618586063068598275051080420690337801446757289384769185780890798689340742705065957927728351689000217825489242509537512160754283827047263716799651166877150027763849344446704300979945780842598637665210161600871076390012064069123281228648684929560872753853366519434543729921292485910815159937109414258678577312199794915211573083799871826264171892323325513016545534199237734131418893012699501579881028084523029373776799844386066860110540207720797535000554635415325528523748076000314058247053910803845283455611375894691091239396519660021391258493123607261756698077438516744724073686440245323995797487634311515497249897901269581164333522958617203313874596701567419426712777984085265673329870040983478007019407951539929077014170740536923030689048085886563135418384764769019077249396738035589957217586474413590021137521690096394402581430280548089471297252267830357918018703762141761992016928176205754171832136464111653205371288309861935287599306650249917970015501091213724020080383047864467602780794570698357302174825392459067120831621909843179511677639001455253899413950924925358595487402457195811299548675789257623080018309899517549837946829130745412228668794673780075999139168267182363572770196650397001589095114233181692802311054570087297855399778824295046547632940176623646660833658249341819322822603806030485219404165432156914116557555694624096974378451961321873129445733595927613576558261006899727481425092548150156436790549944066525806906079862165899334302654311599129600046277454072188909974131527991191482064836450813868615813973489655193206298495223453622045884970751173498142495442837925846308435298259810463558905870164373011603863784821874069192151310004595100230302729205187322204229257876879665629335893913270534747381927367462515648434457807581625884590832269963119994949199528265364302209906240756380286698340465418104990004592196303954562414410880760104009527153491328036337525006538726189347699468450789270548751224775174505012021244775673075440089471876033788813618346669230492774300423735436128836917001787668639508170671880538616289135605729086257643200960531232679825259157878298216692923808553890149946861319388763410009018095369959738612585748384155831878556410622440352262481775963706753994392090961993285312068560654803000848785898647737389972742958876837289850612219925679584445190978369788127085365112301133719154289447243623241152593265582568328722649732672195635371805529181821544652305443303573403114727492363337572802857543654461603486965480834334730773644971163040548674813543336206156385467754788500809242856172791673476304201538198908724134556891757603674607632754190571928007028298501827487713174687782104842977415433985138464395919137843636029119978834291838641540810322614135179982890859004478689500518107525683036526944122789614783879417324405082029452960302176768687951905221019792188117790215588826267398921475476382954954885032202392803247707868142252042894118392972449575088380201739644894651182668053923038719953064833008258559426039064144879029090161568815362457749506651264735642321682002443015150994800796449921621314227812985786477702197624785444388478847317169870267503222542467357832442682106868217593474357516381045723516741685814214324537259632938641612485137376065067537881912942467009543967681270026480915970471938816245208058339313329189226935277650048907245739160048377601926560095427446658563309541256154109925125321670520374784587094260802724650132614887585441098456964793421836697995770731422028751662065054898652664977039174037666307853899661633215503590627223494913306981851509876103404121777803843155409265309562723516263587025758863178521316859435401812223839812569852459748169624515709406012574238131772593713176120482893501198615145641009179063832362764057966012997214363396534337122441369087119201635458265833778502259443013245103784072855617818481523551927412341393555818214955655781340933076374419410310824006666914934991465469521334777464834858808890799805961103204313713805412022318175981577319264687116582628457000992244465908379046580596109385810834771775791743900009573517533975336912166486998326040939549619686408963786016269049816310501990310371995474309913312814360439377447431026485358061313408015724529625574298129356482105271260632089986361588042564474000647516407182640290859121172381941468576996705745751039352177079301011096534284423558038032120759247774306015731816360381596848252267395084908716110496019371678953878714679628157341084939931644793561055501260806409736755501168030099954656947599754347272470188929385835084382316254182794618967372031839381038564151072203678145400071980378324592284407837607121033509009365237989108132100946472042635566876028277496678173496582684412161527152625919458331351710210053880557790973173207192993307895647745952328621816925686605584905550296297194577103703135078296358560459690043291456821524654598792790720079620347744893836207795722002275569645125783788641692368946104380495741622924873928052538555187961559953431626185749819322654768888914483317476669030015874297412259124895739775801293062102364805942723569317307306503326526671202872626142708326546855121415923540584707064666862614035582250528319474973372432964267996140673660110692843215690719392947498641130184662326748283902788200782115967174279216112538202477813804069571919022310392865750807217585482226673125975682925289907508366479351982519389538161634186011810776372924952431995155023683943718192427019505766176787644334358861018432290696376068276965519136317276246257888468234285780813452925073224489929701137199461216530106036787745309443765881382888636379076176922302811181763477623228552908711739910560205075941096958462918693366909867417784822665872343134577018380650221931368576549415853366109941733482126938540911191302760467482449276465555604894775961793902192429329940912856708156960016865925173700359617796566884964602473107579212681952298773217648433720359276727443894414579924613273277399164952641879280917316097381395848124081037819998379429383899897406071475855574570659323788651365407138482527685551286479500062552075312542833302596208324246962073192330647943814865680377725128906013798769180769534781176355299834346874642226967832239571774440050971488157569172370572532110976521506693178856583583114840133303646386435985367876529293201640160023471905110497005215418070311252625941904511875609954392209198873789141540281562515665721462931769735668353751992944008005492677501849593990624868780965377447871731068767974616725832229935551349000467177914824748429881680359365310389130790847811343518053731919253776193932114653330256888707542955398458990929628358784841004877736271867882184708251457205115560520368899277176227754947037061500043280732763462398640167826386480309151482485642636973126410004736018362429211631326647720136930319796582597890676815607379933813470395938368861522541523051304533685322558279358926707508397552283914703462616048602952418789267790141724224310584787194001616458549815334563955168023137227937621773547027955590499312611265692018078102584093408027569656625718630808590618701742600814885834665921374051924335055603510998295805390847352213144530940691049443683104664172471568538801396408447851223149030993017719751205354664723710695720923722817697225523445287068661016138623460250155302541567979532735734762362639821309228709658724649321942081231639060716859229471425935664495200668911237083731895629341072562501109314517746514701306905440312386093636562088280729704592330107438161583060733016735190870482992826373294619335896454821892737372192022372428848928684769946323753177119410343360049207429038198428961465905768583752963999523515524000210286579266586040467587513337473236665335562787700108362502908362712231487195377870534303830958057199441855575845764240956067065981393732186920315528575708785082681388412099215828284408086482737208732661926181618480231199546931849715438879626504892437491369747255215427481135623738086289807139798636860499409676758539709508530160383025912172509935910413504798048334757220484758643451372738618944836490746616475937976694358137622017185068063701570654938715157945003573643154761099946158531216428976322483755818956288337180141514487253406901119966673340092876619546276367521571266849299443616149486073336207586027207319293179346615147376862765383175919537521003734948893873288624099007102861331874215536677469869142701830080076556255782407543418725233502574193490630394385865130740971330638048605195566129469139056922436187123724720930231293947722278772120128550062763099897891549595034737317885570840370925042878874265602591056554015730625736343634614217131884735560303269324765346042988989913907012728035711648220357263728116330423592150714185854147093213469220500425193121462586887451590291433251716359665375013983395557361812722587577157471417461904826244926071692639921561947734677606182559454086462153910107351843781406402722834051849422170388370189854768809910168541292317194714782975091848433110859864713117084824000783163364613505113755763070130375649505786404447592726784819618864688295915756493943446539870500723755642699361111981039832998184914130039081029023425490755105486787055112434645589557180116610332159267062510596313321269255506125715549716633976441641619648486208753786762588598872283160391747841882885973947248776818155682208063401987083914026341516962495794454417205223788657018791914883658963365896841654060741754004916305527366298908068811408364474216304765173698246387417398003283082151166062627743268753048468850921892733918300701881552452667333987256572832518030187906055407500091927579188991360150189799143222731981581225794452819967617554303723284554201329775275025263458569173151914956818983924754583722907156912992895601111825214748330811038769841937166718566107605962944589301841469834176245118021151695224746191715944813301639298812788653287674814028302627838099158319887398262150328724236309569161190173824579867288348419637923264924406897768538966635553205086907028413988336053677844248540447242472401939014252307975537272671750687136764734595944855400536703240630238063096148269724484757325046584046515540513935926151893976810862297551052367095600912350010415125941334468098196113747348258325971272523136731292151546282285003270528969440746585383843639158665066229030886078361110367301066427144210296364213029805576449409817948955023819343583042983754849648428779868927155292180499619076861751345274970002486665463679057495187908872457757751125373651514435867308176625423485896179777369829292434763144969714726634084380617946335484998806327118135418750969125714355525522126437959640376357076605970551518733672453833624238043751885523615067545261802507908607510874564345526314900898170018892959197078037126523940332729795607360817601718717173139933650285115067466881549039239141323725294249633660091626661553987917142564360383780652569053425595133768956236742515578690077049753074260117763163305952124349596143650561586984198206319290750726986762081259333405765826153492142681021628433497046465012965585320036857892330950385541849127070200698557698268768673569929962291539350837814151266320418585377388849695299499813801193839551422625125410764764408929615632936691544966030506847821715931673907018412281141338943493564314898314430584859029651807629582518193233810201436268702608094844927416700223594438685731522204772360232884518732850104449602011591588579871596280354370022353369417154202603346706449615705400992844098424550371288728284819976438598368143101213873606466334122337293410645458906022247550884773602315736202252164791689260611982138279036324615982338508317487498899523368307567823807908949922989980839830460183083221058637068012191996175879628250941809078881236293973857808092745397523872707008906101668974351200004970410558913413642661955964939681263148237871903193497127733495482225097295159015591706193602577076328951760720251969886999937269928511751373103753456339945309372838359921891424412574424966157850465069168913350381668061568720100528034407463462977792908268982482096136332259608231096119939673931034161875320772031352430464845593352642371026697223088636033615828007450430831420219830525575145364515991501234421030147414725486585894194672304838088084252822353781305711636336648048282131339631118939939394571133048569157167108029517473048865411075663864890408677993511540690548291219024166733529856800199526407070122647517409876561364053980788025938163474314784422909347048455373807984911245573564831259158483100532656400942274636559320325264487800263898928093406023920432572287592275414146626676765936950182002709729506522406390334553837106267470328897580209515527916732166658043398277750160576963333036480133711620029690855915062668682674214975519976486801215178509040882758032429381805355958681786365750830784386052994344141088917518165401713557115256661797349411646400190999994919165559754488076444786802935557582291435607789750811535431862781787359254528648178356167027694628660340312694868553628386617731309202772611650852652684938769736602467575531075488818697425919757162415981425307294977054716049146883909000288934522002626624188452130707770081419119162983911878923802757306956239163607719204581144604788350046438388436209372946395980139121872354553210189405100785369665311797132505798108616476208056388031604756144199794767480187039401067806573781934231816764821538089520738385481964954340318200719101257859585955362894774964934957723546582996009124516808172927100359998583348156580984679802532573033517890287596099527944495752037981934695324617665479094415511430480445731207863229891377129027458473083149391128124836267012005412580427252201852762467034590184589628370179728407310623303663033224677226321100801890307017315260101346070085756731113355273489971635605783941759756449628081749995226337991242324761540632673884633328934551581720524265051932007713895050416634877347477279567497943954798759614004445944882497760083116569270314551584305042586723870207291439368848720240709489083195096064172976674339963445915669043903285900812494580509118951587742523016087962584202374750926985885779060013223072174472407305368967060212813014050446598915408909638493565732618017848884361063179256352595109454318031727511726232596215453953591506735220929824517466181009678723428377592903926943036000635904258512054378529841059398496752206883538784367245792975231677769618721087468666320250940004731766832347922401845364199093505515035292990716164940185401520167990108046470400577775632583208930123083252575416669186757115201996588641137232524622691865041155704127312853033680103596012086522770663853310923220241718745552517825096785784498384405121151859896279454367775424388060149349384886058877534689707756691334540078104158060382356412995773860511637904675698058702810465537948797114336493009832063304976519423603965993693667031335034387112364886554896273566512751649365031015409693368725223848630636984822776047412199071534818504222757186233920213898403715761103545550239835075364899380035477235735021803741906448553911569544264854370627131877652541041882219767070442719182552422591414316838013131987679654320486119736411093401149921350430995515223731182242471567519065588626605419811948366003050048427652022301159362084578717911709271078190744852243938457464717630715196972540872911491724674912797611512447908564496897263476838599909459547984541977083313097410269901058705430603316627733760842614012742105316521514395459993176665666970810119439771418499976269652722094093207786973361103297227459498756945255238501743778479778282511345548419348641174294166362295496467786325016903207753023163269343649454486227339416009681356157893853331491801248202361655903481040936200473131059956687175065452943934235604721865231413044126095060312688602025467474037772008394594665560058843084684267703617987816543218928148779977644255254734875571463801613364585038660186623942082252888384101349802326081414964915353633472416948264255149440657408542518263625677151268676292553241897155534640954926913762964792550564080047319756519577295095976375070758308375682074605460803108085222068270053812003598481103818923722011470999607088004406986981386387338467772347221761743797295378202000863858724533320283392169776832926368765342025375806483141825213454601404936238115843562723885749530969895693162116703134070069649251635327871954684076856502186652054465416381931792786330343688747775554576437350090368772732588136011541119801364386546516267023910428272359355732746278148396111118233490459693998691340377424360695079263710427536696146311356116894918255592727202848353527851162082609375796339863337985830420466307777646661985150500217780362600257165329296577013208033532009156723274160470830189911793948617584031523884889425931947197230483928352602413802014578532203998758114083368442403539062357935017130358649086875050612861246259072691770151412272883727487245215223713583348816382575793524688815275043312200612387295035635181303148695920136490844448131651420988667434719763222938504844549162861103560963576327961412235220597261808048600612119026594218639432959044613008167381554787814627379171123195216263704526201225643268299351854388689106888894727124991404631946911363192336769760819068657497010046421491761614872903533581042054691904864245453938387056962841683171998156036308922685139767467262665466295558567191708780431478615489172763964454180300244263803707466754021520970771232775651241257104317949770879294012919476105412762495730011234494303623923885845276986005491698395424479327008836939991181978658970376472311969382281862127999105784644052514201621266983041237110373286320392612957929620024608272473463877913552868078582198402699898870757206321261228303300002978920390362694945385476799883706635167797226482861279502556290434630647321541744353519086898868450845203182817556289268053893280806561697838498793296480183552735538413087523754056061709339581982579288677728601266922063037188128817591206452234289632400531772904542336514841958786835520733766301611481067295851817230321886425981243026623379079453203229369953107649778854538080685878716384617259999638981672949905226457416952468553958147711305733276073080860773616786749432639119583852668847861179228924364626278040356774892532117485203774167087940127097036205497328332579531416022768129215409451654283582282868036268443610497603191127384103886649941286238324093996466600923678275930085965462722589007429122676214810406978478452607915609150522483349347920220283392003781563751464952678771336072051556722431776107973784471654541840017197347856481928586761676210902893234143075658993441881304436364990132205370297576982787666962940138157256276080518377758786202680285785974279266357793404523369464260098246057357176938696173528951865038517604136369523166653632756928480646971693483817080665334828142299083672697376413991909870970120307930489076821608927126828730003570235068825332009531773706442223907909572069362323801859777021349204649163750867314976464166553427745859267822922569918491043272933509070828706210572684080394961197058123181415433355835107136022739051193901852253386771209848307942377029585515788752376210720752797400098803830930924419515151351969418306791693275384923326051662746118062269738707665987021698045117211699112834760812050183224296201224710391339014027399837465628765759025172582734500278972930528806996245513741256796320142322286332224502782818139611726227807821762155207133187048094252977993420865054448478836034369606847257333022006086545535629040812726744991622269298443565300953881693326327188936406802810341648973005992168607851690417347706936423578645256239204635166988129346779089400387802869943155957245141413114661485610783930912846469202896403470545477194154927728392895065044017553063620176498919331184938131071044094197924951943239777315813799156370230668817556036598724067869777313011174343411633290535226581164111766868226919234726963754937319802554995691330958447950593725339943721391710421478963577891762454843516589633336477119124630158923462113148316323515499648332536336727499064347883892248325906555967463978282871989388455254261971078334879405774605779993944425297371294743551225563376533940902369643483666860067405245212819561660128625001856840962348748767044401789237563228047741442949432685282611688420177882259187427824792406645294083342749135537448079200771251634413725852800266748110634163487732328957161110822291636725870391440580463686249730653984603344544014803789133930850087827442509588545581788430660736178934806521145950108255965478704025206271989027721950988174067436940966188250830936346013619814416666577259037143573225589859586891466738559852839906153988611343742498877165083639418707994718467616079267935790661176225889716408706729445335108985909032301066326266347241382687698458487767804862587387949834706938459751073285785411139131978319182480742111726807860964012786372492267527978418453960927687446564173040522978660926361664210689920051228557824910034135493971298917174750738292200094638250799249060579035800796752936472066112390766759920323924451805695970317267453741199498342316172601638091264278863084724253701408568924809671954499968777914896573547418451476651345749749119497713155887795851857036732000516394622865680806874674093544699574224459946671355740208415864805041476121582936059194287075340761165253465582971632631288193853940116206253307633991026509046499929494276795570260088997276236104046140868555409470029923069858355585919081062813878183523099909638271196424115448631657224046605014141823047223500302261894992712975812289942660692427069965559273275923128692619608415557271620348663050693573000907694730338781743690421440536832831083485200046686132579715021612484033736851544484742143131686148737825325255138740246613959733931872980005577479437788967598375171787686326778570460372575442156239332825608786047418510056736505574036579235153334231170471735766661417696471671910301725344969891256227755183265011081219456765189743109972544319179596588865342279962146567910529252234591374942978132958834269747037604654092972221332273569945681909098953281530400417322364702236404647216938829556747000110791669554543170343267799785195154062605413672512423624308870809400640461049251296350529511935274212252099345880911734321293487282147565901441991991585560993914274944618306759212138880830236753665157892060989364681091873329452454901836015125050446812969265440209175564755337245080183383295015309603614686936771704199875543414155580534403621023036837402302716594447527457468305419026312354928635521556010452016040203683199595199483393555555796995025538039332287095956489936709963468220679202611312448023611772418847005967795183161372753254961056879659022441218733930175195810972679262147904260458130875330646215392701065881125756570968809250804715316885469081600758194383818970214142347025818671505943347411977324407513482053146250807931261837944485324915250956541333422707946956207949687699142833194261958759475867938462965273812132625060010844943526995349765388507164817288174290008634122315739984927700750497955769926377060910942172682179670636528888142290833038587429837256193114806043439266968923394520394437652485510958446951172093053883405178948542022354633657948920595242139217648495854970056912575825624911493344309782010706344796334157711331402536261761715028946051019875596499382625174631419966933297387385461351699492188200279869901336725858629817860615358105182561880494086766830273827718572187335089355373556134513412990639969684528731560929810050728237082262432071769883515566021857344318236113347405758968809592276154333294135148349800881063546245022782981051338801476640417808554590291444238990056070768787992811308936708948060885297497832735423822324908305810315243940605841940554153787900936524928023361193044731909552217829436480022694565462160422038055178746128202345653455118821221168271906031037300556126610011028515923513996688688697052962924328592662513389291366053125870800570665590368315214999099909989685597401020313269313025665780680562666076841308756196501260865141782590921903623925698771734267863703861414955921870932256015145099426760899060210252621040332959309404459713395080367521121035552313900869962189801027645830500235012401318295854180722438841430037408043208847810988201326003331986574063216417024551857638761993952072871804916542643016687462542716146108796076322545444698448547057992147025546969025603626203912342289040085945529383750366414197682226356960338178329605746049697781188629293149060689136879532670828893185974976509889466335241742537420477778769527904792523629513840216509881388385599627251529679734029115382827789537315307252140504522319254648912028105692564930306978813273256413534737548015470651661096500136831958854244929451062452261310905973918086829976935088187341540812470635465608412462900303135311250045006281447243508588068389016481773561575397257861009876895525290671746026055863036180241918251976367975197952562556187024650138887328185339960886878554028957276432826343227886295996363104265530125896374895322416935576440407267033595298810529544519784528209166452424163161197639712602253228996848007423727427168032173567859583540403119007652929263417109873082706022123639210474087336382656130321473157233004723248977553475008003632069773510436466366431401675940089013909691032860538954572174687520086141419896488669580740994237474305446886763127244321485262841563412210296347427265163962614690894653174368807075134666859535666896341406295787817705460478310530642501505731267143058057904418136979824862393206141736157190674147849708538788421911689463164759789090231402934693311091162641795105448210178671370599876097796690152776585026257762644375282146846922856031074613028422732028826162291556137666200568759711025356828656418735407209328208109944355992155303607871480234358066729273678576895489814449171760855693409343541266700335268950469648775370814363600424687127916937192746579546956640618612129218642627082820537987785650047441450894042277104779407519738379898538967984493074707098057979815105366388019772870675271222781118732020026724885338509322344628182343936513691720017232865469169499898850312929206867468100956093738013576098204907247116678109778862546971071058167784815286955388642908042665167534667115647009872742766183297681720463384713332033470470768181406536597817620702483252067142871998971402819180214556609436845143269692235898135158358292701366886097610535589626226418452531672227240008880321427329551107433132685519527816945150251679741719608012484643994256645763701714178881542618680876616220476589831597895567035472213831776381634523901796086765974499226385259658640166086474725619553107897550763284705611295159848572796390522896550858550714363456301710857317701303520325072672659425433297223694574177623534460418706162659001682774283351420954065606390648131004146441874069150709729236265491500345611693620373956720686050814551449261632007667654975773575981360495605772772432868631091164533726201639685362763957602568038034142225097685548056524696223618844571398785142933765226306922334609809905522035684778977037975184875005478184304682045531428565785945914424474724355229195127673757958190203941720286751819556422174878956981896414552168001763571422219528870989071565043772076690820119295772767129289649523551816207458361734004199263454128097271441680005542224457562373399009917925809264672371840082488420306118564985293012999959278166385236974228349106075274913475141037634803827476219240753521081654049836972911534681608222319134174071948818454724435517270596776618992196114707905768957641512577292070700179985765901375543227939019168809738909076551640443332349700393695434042813881673372978968839399054304695030822226439498106395803656141474148940404270003686215487389004479924816512632870544070944781690432411086753269111214608480491729584483208522980748928148683188354097318665410783538671777204552754878154792570059154752238434049739060369806142175204389713268017434373572218120084958776162556114731126865067414959076193711402715849136519497840581284670772114849111723382891438038493090370454103682910970182914456628564020737742328165998086886139532844161262466144425855775294077147063001857968551789071300029338973906736836767044523829718072693422104331053540002772622598080491552713869006106084244106750752512430683801944885605964247584598470384929528556521838862409730223627147655461973956505449860982778422745516717512702429650202189377030948408416422732864553841939184152533395879702662336361144683463778049690173604752591569511917101052871094487627153048609244636559805181112917299240702264502891982422055156430182180706410387626653004208361395846429141140533402886411072404183182102068470984738535059541758893528011723352903849312959395676398780566371700576027123978838915555701558735976881493343841280255758378365561356235153651798821625802609719440063503333610593050287840327950408034239090238859445186335932332762885557001594247146730424179447246596844085661546830871559495396466322269027844520982320329456540232302643131995559080172179221561380677183711670746705595193104552721965950116289023575596023424461104654148283106693831635790213713509581793568708481702880077064354881660693759151564947538333300477130510562557519375537774463941699364303848332872717273424686961931001445768245309771766284579848632193759365530396746000732528973709128608759084960293029206729812499936472629104519518286171646616941902061949166750628123908186873255299248215377586350208340606182511117624487146128456647283810224332335446202604484732443075959708413245077067640350225288350454276064323413625332026514958032349942208758495910556433757583703140710032914297912723277646162491473966822197352004042257949311249342557083306575989369003063736327328323053747625935808856750000787782301599478214409889904412970770256170313596620206156758299646654121652878253778717859975438559750428441671698036934749265381343966882080984916647153576866444509182325675837983756689117382823319419853511108766993046784694859526780030594016951010266881218570360429557703273211220264999084241700145273774641357412431579263192176528379864910526842206610922573168046431043442617517173985295596022010052606215918572096775533860996030151175818145627325853996232861495386764509881252498282706768834025542049839517728320198502341769349368292244895819591418038925367749140290630516717529203238818599148296446805348553695439364371758077382779056891954167653471671725056553139038317129038004963706472673423482534750143998224297503143771446609043044280798906895174421453428431106927871696719323920798536634758982335660932655614052202025749463616781804299986252689241633371736889688650660549000981316348408493700144934566449664556364832897913889719512883255768392397738041028537702450116327441336489224533963962643839387468457304522946029844011472598492298503384561990447311440843297356384675872783179897286453954480292462810026636763922326937300626775532196488414855232820690359798888641221221684706457287255702765163844552006247573981241862347018790939153732528327243902644742593151772479008211369678156084193087908157172499979035021789966379756079712482677857896370131937749162721110117678750499000583805395920396000189346897458528705213065780727113696118577610836933955080032583997457436930596672502061926592321502133653689519843139484895576282443166930728443540061705928063330344173587725993202540277513615255026623795800979958732822239657003165493641542791743237093917660677847146289750443323027139528263302149342538131283253011378780112736611587910116100681896355236071740737086908116559242941083371755035976629470780894876307442553602295814204348458973800776994117983821558423407355744487887367316096407891282914526372171727722665361686210892524522832041391304658480990517785019904448770674056225915268664140186808705966500538404330205536624633118736534405354123084095287811466075228269091973633736415479743112479415449293733616714932359849890414153772301565049552079128167606192814861536165713969640740074032528466510211673264629689317370452630504358846461427053057572954519774330510002792136794228210047778217376002802306009130328304617785677232467098107961611560009986569264950453646096435705178709191567966757869475503420372823261985634730165844073893267327096178056846659563230763986049413574487903334423826099162629200850113513628262149869858306169018290470884047461268841503769516106955696604422023728580305112915134814005973854551807593970405056449545088729321517586014311991182812636067848883068889412705339547656584021699653832391078694914144580339325809222534082779436593498183564256679754219730224861697072720530176216905986633709847408709183218869096848991564016640297208532953510824481650070505639575216934783052477234701247303263126566498418309495828665671205509478680523961051535417173938509954938960420156937293764511891394270788577870642076586884696005584697680318137894358839307221514229759262869557448089418408755283555747669462716208500097523339604897654605890599503120390348850062513982249568304341007265711745635029582454177633859563305204631647807298835257161819223377427906730385056725397484501584845463597510028469996014518932819060142051183730505742336980786310857763401782262454574121773177295756749752180512288408850219341556941684649315213492638737563969521767821856171343414119071463947703402297643152613324431792480454334136159016380724302500535615098551844150286975060053732568951176317413567638640023346611379898404353314346421864564422295203539689985378608670614267710401389564972750109065124628932953691127319338750351279213487374975592634838500858108088748199142322705245288998953093180482646549297749698334236521753151239446606103286622565359917014050650353519674024555180961576948618944728232649788983755276473101167577896652787621616739851851825694715978504750556101806998479824570715225971632609589019573283014066729838299621319165219351130148479330538742203967559312079574745419560180135157089122202528480605887148405848049277789919612574898375908882549546810881918314059991222971480603040748198462088251667337903605807936250462716488878260081936538028560542174645258458417594032224232020415400087578716461372572086314380418538731939132115476757477456790775543576663309570124806479612092034339436445777330868856223784568414923657013833103750766642488419608992575376699360912412949009029430596177631965827482166053029798650129964028772109471697288191175293698787749175534533303756730634158082515474607532930511292761381454908655971510012566855682603483878225092106617857027693390877985935916702635410957936946004132914208887511229092708432893053901194544768497772481102571470265637962230465780264305356125599310002943318039968260395282806655233999433158292944302873454270721364893022543985999764383430252778735946475422764812138947411290764164497221442453950835696749759491290764446543151275091898561287717468459499443415385353393600213625929183065632641701883032806166877362852742363338142913531116776677830400897151269908180909924950322851037561853593873904140250306193554774929310293339305925686901392977258354708108385652080238466519328519135782231990207841679092921331182670095796042427233448854465159021502027572722748300562634208917182041367902591055292945032307934975280934814504430778564683164851070668799109833066377934673383724632656537733397624520323266212794014749795212861904359612052300039117977197946127077133640010329287131681383606254493206881657428373095127231410527653993743217763235954999846492912479561435498878407840579658488653841980161465674027870435529078123722994043581987498496408317367441162988680696777284847873180470867407017563712244983492623125030953901294237930799295053594583308587200542963275558801200623589325698147906520005168446808507793316175278445560227615813071821872060853302243383258913731473827256371459289600966361199146023023701902108690204312902230386340675704463672580291428574974945185767660115915195112621402626356338851571022692931400051732899429975457335316541309256917108241422313909940115663538896020726171642557944841020359796059531896067888830708908200287932305852866027508323615938628298576057119892700228408746032379919924469015021414002630522893554268834610531369865190556603381703145279262761500102096572860578035280636996649550017637092115957304591248243008062310843902588946177160626273209525246378786092942864629754835755290618440668868797846671925156261687299797934694573560659572986130814700876315432621410944396968289084322330206237634027440726946459275283829037069605470886810533678768221337174267145818450134002442219474286922496030529456955581669658534378721506971255042036337244419483088899900658511019638823720655945269839983707040852509969519875313994011470676695167626352799631802825920434511244509410549597326629865320112871088581060145685245942370860643434975413860114289107391872703701820829883972257368770392332579875592035540344383524050273588823204239599406477359794915063742886780831138863965220818634242513395198244226233235754600697984540289026779111527566876783117456301614251889378665156256585892221131007480020958461967930073644235007156501485787087970356566765930629783180263007463014115030136769730798928888717451309603434816396382542520296984036722403611363333939576096590366283223097346652814937553735663686128865467987183376708399213690566037596518613198656585312326244618007296401794398358026088314202278958818111115059145319569316206721245775267727882915065375631487432136752338201677795131756579370170902204517594675333523884871477671141114118623301228402563197749125061663165112691903900795317787661592616000662298618913373108782052856054928940807741457702615365370307142136265524694556910905169078803651277641533833950196808126034243309518401958500742310489732106103032019912618242317459151244949191942940317144539900699437884237178189849842642026839115669917192209950017155469822058051766955648942858845606972486939123642919752403120310817217067424169668415645374988071994573765979952454842773674015432030234975004371393127904258202982727691518542892305900560998344792343025812946651966157246314853604674999117631980549400322571158877702788005966832559206343408023766924919812658810834200376969686050509240067034951092674035636739203482194616202634860261078115867157833385424553503561441812494186002939076273209120447482127738601003153198289803923405653926710201852338652606754078166979344210849978803141975668954115681106969140745462187233555823394021418478439700922313292281597102608359816766175276390931241233204248023559763962488000626897833071414261150808169033746309878566888371920302600201107174311052834181822464059743862247788309929319499188160963398619979877575731341167550373862938644349759213045048584394422001621438942490315347148351861946126111520597683064009815706854233537234394401933039733742757587792103086917117367263292958959565285483643140092455891446949716866493946586792914463488445716531364856098491329046911077106442509840404228713356638875248853757419462423642029440552188949135382049377614014194367688529467098448758538670105952147683624533934209762550771942686903451920842801861423742609696297327659095065267477256905830397943967886585932806297655960159595459921808255560249708357650297962744781349139117039711451750753638553954911090205176305956863811966020630627719596578568280009126522174456605405646875660336319904816215679842721266563730137789198437392120635897098183461876864023719342442183600056762148572057350487087540080724218195484888659073311747784635711347622591494034512975055990258361012228071376821143463639657557313218322734268424383790482150178228491939908798211581676718475185797227651682138644302276722971880936675247930971528567165703471488349516332646158963639004181081933988018349201013995259421187366469118796741282275008757406008448989403095586511605423154474609848066835912351393310094786862178814957927784099309893133444018504009994503820995327402157324372009812449504538754102148590574042659179193203055983868359642516981514411573706546548232889409114595223813349290262677060772707294793267368234502054386667183509527224884012525174827814325822796941674872446150323750710473486797851026948737399888685903188819979438410339335774743459188137290563529054784662842830118390457460484703975892298028620972942816378507629124907447294928499900801295171331711853409379682168615597861163375880137195144094389850602055279896169473044995632286439703867973603199679228810016772931402992067677708980027634462637894488740185747397763814485688620793241936588962808316328398659835124250919403373859335941234334937618578116981217459413006394198182119006035235701904562800340229170830847864695729092594074921843391827780302934976720514262578768078597044016278611919250246270748336261622424930951583541001135023054998234737034778836617475552945885898062944667764660191553634761896280431301527323550795300514123793683591867433593395462308360691297868269625718360836468237355713622430282299971895462901105193515355060215079308882387287308289221815710767768731236505698262342545735472993319746003722340559287306964172349818705352026284155405437870695741537919627140440181127584062964172351104773423177058854470778112800738765164825173802556939073076215000553979636907990149648128680800163125396087058675180738438585552789610020943626551058698948883587209749605829131571753208481128014378922548244573432272177758256283955449791232550832088483976166033731489242797468502721131945557530099681623074871340769190480428635148745814748828555273167185911802126819877178729887779471278159777442737545224502750781130801827760279089232288584297732041211074362698217765308224468611220826179777321263361882011714691412031921280563408596341223874054759101770099723264137270575565460241991607895814752839030032943995900229872241581065058062435770448468819827302381730266251868048313449893239590808718525894215886895198039162136440514071232388418581350856487478582085605706141103346750473593143970023750698279051300042103760456906391095603873326265871974243149076641474714421979482852367416394881617750742606441931957986491665056084689681888495511854138264919961279122731846893980617813550518260840034743726706447140337075260313430797864016947943678666670138771054824237707003793636870160929525713220616248897898302779091413575458744749912790184497244062118792317553080933845193225260045267957758951730406624497319521060417101028719901664284094296154381873837233374930893260150337981095008597139898710068126752357085409548779215494257012516211308649925302734708592766090627891358611173735198007718580952734949123064740464680009122488701296790139568554585627962379031449646474849704816550116391850133626065389188161668509318576711162307451987642188436247254990333452066902874666208612895840488114173069448682980636455007566397809885191129818400823433254216255675608238000317486754556743498324592319304972669151650394793886579636748814489277066496722617785772990348161861826632703217078793334055104341522419269885385714944672876082587200612845656913300903337802382106400805485617233304002463636497696967626093903578179340248644800735387195512849219764796765093276964590739663704812503745285071121714923370280152681935841598176802142219312233347521123390251133789130623583467269613211883026922933850692515086866825075719875292581280392478908505152355948709527290937462905508281913378340400219899899886698325692925681644176112656809075565388208675287269360201545353286122669333725531292705645998169195309472548505553107029113970116724929630601220335613470572880859319193279569929624445207496425027562665910937679010811316403879348007488742130870113014676668322866113209451688825318642934223799095452754252333859614775019721226578677547300806724779428771316550957983793260375251916017518417198295449702720963667345409566816868812243065046637878149992888240614950953115454660540024605098420968131592745233442720053170031412509667938097603906102526714884253801299136121561913931805001268498804226924282548272206992784312397610966092382808807740018477122878346130416681441451343803691414683423908471321586424793249568235186723288814720798694476894910810052625620654711060294071764825517284312862378447167908175723662331035092758486592816063660476631332953059354552641029689138828619797207698939696654999442363948649098319015211660251813244739126139071545525804620567018587146005106401235915549225725897721640262290992079195711830945492199604204163524714110518971655303532543819305664582214133010724740007468818491895993390411463277848350659483835929199461415539970969701424256632881803539171821338221910213303455151930384888336660683788727335862561369219088407604307457553817702547395879912929502336320334613791825387939486016003330346386179762880179741110132331759319823979909351132725649193251403011232483648303617002469062442424442020358570624311249502929414042712907948494978155790672613503739363505126509364100335446839280469779554552434027119323297491662910069220796765204122742231208537573358278612604901427586190172275131865588847107363125269624901480747194698846763989815943469929250787183905183582395196434226834592329680254289669778373567465331461437732238938394152183800832208366897677943898562744996662618923560832671031975947160215606338977841635383619863090581166477313481234086578247792257902218335998299555599344720654358911494440055831861235027890698217747259822756660467955424637730248812640659891904253046883827648462272900406297069675387435399562581742484407070746827468893204532775463232626009751822805435340557475523413102910491973878796985133415456666901724802209872148291156308276907353209161461849151584817553842875590288132994858398052088593523309177269653255190121327889363300372475847464917610003281247532853513007109723544667435851962170721466053175810850512160372310016509997346613038086266129785265077117851554338757492027474247074309516622186939190220309060655051585979783639723203498665857592265912637177054771986392265842934116462479780984001720707536543283538836851190765253554316756551336369464866383407684657132826991315747932251345241406574478446754175368879232484292417694757499851116644720891811303474203607451925499994037831596132179445892839192560444640572719528393909545859784327253935476337035417806190813061547128109076011502914440830309191535762915915770217129307653220951878125268491879691692999016836533182240791979642324458028693470825290786200517281677368786071302714920429032983855911302436022495944944801676801199663558659451572747874691331805313502299473925747579986957059793267081340749611989931491601290866587731936717487831430208698856848328091370887638131027643715381190940385010053251149597188308213674174972811088298441540634879437863437087054626328738363320179847959256341127647639046267946768324906242722536533814168168146494406153477357139025035341741565663517977371396042712942821109563368429980547386487240023983919266777995240514378630161284302149086930744313925948948836839740564894631282465598549056955091157132176971690830872358243696433428952801642079440460057252867229843951734672556423225527586533474078198792569590333530674450976601405987199354143468602840141624224297789651431391689347736618310046744661110390029945100436015351184797967054476783398137154863838988430753869607109805354333640915133265377784084149273192725632851516243851789471903991106931475308086056217867558457000065277483447342318499208806900992375407393178401492928365194829263908807997395652153302620052988389008415709142730549051986832855522213473812065218450997413263282657005968615529347109636014791042849984376090955798853565970307503206967141316379783275704773204683200873217062203598123176980189084604191967390672604748264159893758910151345948761891362566311010783942093365339704179053636950817967926655286150358784044597951554014141044192645434208504677703641118682480706577940651499684340261431320589362695758830450490751284475720511186817937891207338268005096277075465113641751424656005952094381144610816658165155420361012853164701934431607752713000721152824715425159216404025294551799474664697261057605236457648829068747359003311337149752735931598316559713742621213081775327441458932554919627709338391408588432834776833951260557200660960049380148828580501387417446422551340036736953460585436753416258163968686126775584217769484226812508481938166575111334455905062265571293304878039633257687606254433987070377744640695195681838676219729966928834544335747287296086197758017444026684080904210043360612402678972755966682791464953005778899148283152048197701423066394884583612704196517854963505737957079099736698606278243284243104531254731545799705030874856927397507789212878560869263199761001567948781196431710143045488801610393408097078344077645822181977695888556581410608088649064597713895989860666017265515816607481677308937316675227972689803215987807889812975102641626312953576841004903968447527828618034144365885579292457056343417483366749442569547649229452866258103192343171826566158331283139756541356965996808926552065089487393856717070939149733206635038906504324254407158473831915446945892032333876691317573997830353823236714119732277537222987761332024990055908484208472635984252588661848445409965083702163024650395195034379118118985188217378222759654537242963530035768402860545984761878380059817326596223061284585906956924672476303209929933015493548250824154728379714395358806977864614068995136074629478749684844645158019560967934807219705336446378482751218731907848444804749989235099564801750256699458613063540597749262364770223941866298890697748200385284669468735038236678370978052587954436989022460879163361305241833683582848804730719673371961271883824073436247961125546392078088852625515378603529410846469367881583733180162584733380225296331343583844772146929286284711885506992747062087836088756720160608256288258235473479065165573234765820844376553087863705724608552702328869940532836282549756587650029412784073983971704322592618301742502006310555883016633471681498226622765847544585435554411926716081512654090395472437230496830797608378558807419488299461342776374296085762337028415813015686372015289245343967281041302795329714703504063331087461893533337650583926849890393102486632807490171539120529353498587988249320528779647754826822832796878689913105313867770251242098343157613352399941017755305175914469970779646831365537449638082233974333342564931771392920288035865442006322672224906480267274556605668204437694360030760252068909501657998533713014064795622393721645260817000362633756251500218201457517659759529450192868683651007491496103507936565039757637891414638561024713744755455572325289094300780475482307616545819715670231077880082599246088311644442584351374924000888622620694585073622148676510390735229972332018423795118750142871219942331383674615924202496245311638234525206301036561501767447497038797282315228486443761397521196472162577901953803065558928410008657952626532708237028766876015960630913386334604292609492821139358786250277094539863477657759127219336826909649925819826650375452737566788674397852352184249639460266266353267479969671192086600032902768908933493922994731721056952219975851388571187428478574254362702544072107603618320580305552335690927359827764584726240773886121658121134825458418501858932152820687626762987552463569622738633123552049188282840070154269148093685446164305366432062489825608729172144278059437496931333325442927404417113043465606074275887128216608877567771648564468379709360295529621693022650215824029960767096065866965943548770072317765194143226113470354082802626459952384226640646714889126153875562872094957679814305660050488868689474099192497763631687547295850280520139554861666210206539816165148367242499759583405582036446505314157353032639744654243069679179604607517870252091089656406500041641028163144477477037903595671576901314893051879020654469738152984297109891499055298346506552589069681856479489303976553348444272571947259000157394684797498034735612801540357154422446356554599816420380955480062750109156155828506445885899498330056505753436347190264100062321663539937867397506761423496567503595220766530990390462991094932222630337247506999147023552806110567996505739967711033483701517730304927457128348117704384558191744699900255984642010939401361559679129838300508363338966812413359646072757876545937625326460952598539779398111612583881864091613801940462993413401000414278101521602422852372620936222525799585969480072586368975144254465191000294238086177540817482808948800286510933057678806586517313504455835470383316711208912135251499602091016553000551872746301814310385172410565990107090125116543596837778184547866594031983123695070799639830827075486987555491350363333346711578061148116278800087038503876469825089099738088978310759313710842082393098918392895324539196154173837688980091353998403267310317787703268833109130131077743379033780755255407246641604332168507394541239482478204189795496026851906172013276861103651247210417511171143885999164917681663930880116139922130796105681335273708724560028550350024784874664021085341457181293986709383192497265933889003164733142027344562433094753440032202420198577797820739048036571350378837536355650304565496323240946432067756803870273101373383691093671203225405435496757647672615227146860624835719044723992003854264482294074757327683780996676550559164218938129391488914222040071363151200786643043255953202851827068866993282197050908309346441343715784493033053844520385355711380026280366765914417875542198831217460951948709690921599094461508286270780838765774459623608497444585916699311735205439565692039738061292351940255673492529695629579835672944275131979817828650539234658317881629730073083633705974031947527529147823608118550986459084184285261032876114876911276784702656147514284797402686707252386208908929921186163093378572220033151184702638280948218243944139033878182413052546804219365491287650363158612636360933921160516674552427883648963493315552787730497882313208405761450292463505886404993676079016101130776499916894878922907628095170022138169191173234798517277926720238686611349553311642618933404991785150110180790877586409563269624768884608800728285430054019971314089474948583006367845045639615078141935428725220085152878319696692131389130049212989427449653562301031821104305714436637662258104070052789035414083215896110919236342911298687175161979714048807555910541374518850745327219929276591278646332562060856427293977028492766614815413406119504640738146619640493352478522263970256762385600499534163499350265525774847864684204842005815250154922819739417012413906426699241154391884659699014337008271158241775022263338949937035978392896202402584530404756177033372298911922024837119943467615855863772088268751284356406957577581773516827651153095648488577122347012661804358090483460230810499183798587215310603112771372479888581032111827367285505695951947858441619967459425781867684711531721574595175859119677964651555488723637509599071632942258791772424276255900085500733697836296080364845943667321291363134936463945275302971255471780664529542965556563281427308437859979315806858624433510830190940921540306643596854543881028047167607749246649384244243225027950513568878164145761829734461062064899971797964430164548010670555905781710470866110687435021820692101681149733723190008767347475277330801387367398028818061016836213868381261175305957511649640107352202883935766835730022989991234832258343071656148846384288263465675027377566207480854724365996699848678495072460497562226093661103206084514729708575961569541110088249480355659261866623228950323700069774527533282465775022925386364667169794943662495525849168226166125104284926377283689962311774852541203931784786428829176023230767252773545911155340240142952191981218593307314205378926322663999566831967902195453528378984370222986824422067145957143286132238356395147081817338584818422823283801232060272816606495413943953350937840182112214147154614701338407930789110481549770774069940762573667469945404530014585149216162357179389338856593679013277252964313728778107928341007399932514936156968939025462991375832079418191816001820225617759813022303982427011574867914549099963047029399324361501437822391659521755768951097701645014893078808460259474653098289939981936337032854804773010796851757506474176444254442216015940808362563926784408711997095669652435420088711745179166955751704425255719699651975166289730582345664263345458750326631265580942888307513912906749918953119201964544630267610886321279884192332490708381035459757643391954871627289399593976328332447183870711300404154914013973437416882941716489565448410826845024912322304564567503405836489212024974771606315149500947055848063097995823997890016525619992202478456086968468403290821846960726163095690193705690168309222201501585435827886158727490903263846206844886861280985114748322048102219865059817290349524371834734473397117022154021482621671137469712451602775167829683583991810789717026911253322655995500642446132774372591285557746023287730777454090185081587747153775531518726616179329217140151436749357180639510265764087745651735740230113374532514771563710271354842654905527702399541799394967679031385953986073976244825406654277523250800903058903978356033518239746879582938126162774868065513203895329746178967516563153427832267275638612467806316089075017823120862764786578357199763985248665450131459329123565191169537912615277846091827559503470637654579638120267752661860977150092106638644302519219635499211075908633582201122010589918528283116345363485205974004403053830567499731415999176255282799533955264618984550892408411148756272635235433796897103988375482499722323686999910568357180127727383083817860259334781790237666235198600346837708886360515929815111660007657783755889647912377433419567681684663304520405772397872636289295186146436820904156276350036445710061896900935275069551730085330703761957572906683547696292128758081914283821917963248604673870204341959149210374886517825348089754739594231598078823667813139096467326132083879811176857942032484127746176385844140013693974022221510091451726568962444410620880966595848126888031535852840296181770798683231033330158936285776657185032028446923559515444417437064960686174518299432502202760150969855113766197296449647077606036664303122391963056260589487513786268705442943630073075651821730893943329342206988944995536755139889673404319100649198813092381814641771540222075395531854052074142829631427001168199775942148719696063614993088070112144745058633652534520556995810227640507303691003481754323933410797995748278617176006516208761444773337112183885940442687166477928333906231787315251232111480549433728445753055733993180046104090918339643228729880770821903048185062726914087784764264276594520548669918758963336828830627971805141604567211512589075804206650436121185560779404457348209456533276390031054791114034320223742752314367850845228893767472500138869280513682945803926074426265239567362777279923753663966073954426752980888161258589441492207313991200928367658292125893947303030947946278674751542160093998596822742475206824093190204693004223244837671450956736436245495406712727711055011975087716527032016765613897050126469211974222064251843714692162575962550849840563696653616307474165967562314347541916585686313219786705941488288690572066856337709540737259125732613005661481415845272917342870364500222346538171897865649050208124529512977092637906144137094978754738439825372812272556889425555331092972274877117032758019909759586311170231489444731496073669618650306890787691302397136854375453044917671775669586890252839314059273069572448570373535789470801778935517645386997137930045478055299935403536567974432469830404885829719117420444383526000174210196112879486858456380693889130738103070022140097158044732784700324106415164368366424318120082608921189704288085047884627959166275866162096756493696039342553295693666759655113507731444260931756058071311049280689948074898261117780101671396266185487972694978813043428241516436314291358241479956988598862623050308383836782406041584456903146346966622746793581134633726781474706371528708619755818179245985420662522025391656939484058566667706963324074006279923213185244310885534992138181424503739733020440071582993354953950238851157589144228975354654215553644984129315384274087092433212622746573335124336796169582082153177527438338330135947186723158006424916036359393750780576587054786861329800950452687849802049467603336445622408071574320673199020793093409345223710183238588979330427342552282369324936689528542622840928626243700011581771480518073920580121596290188099905456087852988854547294003485573348137718519994051730160171623718201504222231387512427108393650660423472992301965433485856861012479134799229831779809743339510107147809767907823040823977655246435392038610621659414358813977851715590818382135191877144555742375041988159328744045956045480547890387549291821596366233710463657406465788166379792720512781730576199890227440121310812226837147639239297464233842329614840235147633536879982483305235066672521134589481599897784506817656965175399860404384635087502667275781251359556988857666785401154178126125403940761816622586302949222535318080352293132197447596390259201846379530897327345007839411210892115447790599811031187720891039594732090325707894121187840621173314560199619123183277588236581625399897696644677228618156431334102198012085587600408327415012407593585965849801582742179436121103389585503147940431231911806667836406739538934194889336174594297722901405363952908143638888872178353225125256418975486590077759867045324643690981818670919699864522155084336403247966289480009119434494693580947577069875025323347471756232680657364840464430372343619396715182919396143777273029052335582442967517425929431282788804472234524296048855790855448146351828058609101873692427239885725123552008992381637100515588634874029410749808075297547819427264548025092307597791716640021223717279610781640467743262740788424560198297277638557408238093258120838473509427472102623713706828401291577669488679174553465292941779404022267222299355652533446566258908616789013763995718040622667365697605776289895065313045655738883380932115841819870295086609943578427455504269536749871049116982564432277551882188837221583143796869760166220455060808009799449739578516432688670286559644776775028895295371014830580808933027724556079463444567464815751251680333080504735521655015076097830153835093849477673231811021668004627142981076089100582050420993897597603536398232505765202608899295800578135109062984687119920016661791779433258060567992472503907815716615312993310337368172341862208919209794095093556810294215389123042916811909054981948792179139680353403540696628931017850122288318919391194897359918494020450195844883342717533810361816866347057859294546967217730066879193966415740412786035810703062318130355949344466995066141477838017442588877447043246903164698846071692704023973273428708522403185407783073080017852268345088737533333908379161073376468535012411291298043948255573881073136598910876962243688667972204985183937248825987620761216483848830426329832098273867136462981575824822727233296152108549535255180973759674016745085135408483378235567489710271742485707862343687200505828918360993799515869595323117574221090374048921471464178332922164864376913105023853938532237173127081703164760866818350277034177256110718191945404387863893889723124863381869663742668567453631668938058107975987887892609587679521344334553831046154513506824160972776570233385883223587709575769582350829984838070877332597593728310211959333171709046871486716890838604297377788763469111711682800856544337606845072677028239696947975441500004278907994664199447893698527253147532297554976814781914449935117234952451909369153924804966025202702009349631095367775449611782266708845103684775545537852660104370182978634960265536251974263738043408628418415207102283307385421460386128356687040582321235973922742625196852942311683440412383037906856171895804443074338816817060332090508265567378540769010178070381914397012150436989656124889285513594195265962230935708354962975853285251273140156705802517302696209523375129310763411356996769121214439091618881587371109926282765357864398825391844111676337046750866018301811019597006815435317272237698876865436729142008984759434316270377744593853338981514713281024617375850229598699664359147395503698788298875698049475958211809935572218428815949089664956673111747790611813696187509057152812404485768621746532596041266485842297838672029559056535070344816760182017421773329664312939761188147117980276179300966705256546628084000299607268248641345255441663478408578256711664248074324891084717516242825004677843692920132973198611099314052075466951666501343899985812124829557424171465424641378280728693491746346404635252689390195914368725282966857065451578750859190340269377050654370148004959866083216231281597825771210963460461611399565821939643814967501339486439381615796540475570328423040771199161563177965810917900218770638553019768934770064964831760614294928928580465618323709958503642720071963745148654012550447322686921622192122132379360300213325343766671760890102792671541242919260875730021923145421608077193364894514325090333624604238199167226261130905401736543315010950993522397608380042841040504689231498689120894594326457746967153570448157642172599765128834660331595814490616702761495438820916586132283981402245125386649797251528296333905682977907320600235572718399271449849824402507692009036676221805010756948759078821760486018751588361902617887609525652534370279784278955197066757237075522775390777128061591117661500416548594742219158812412282007633058132617994941850266977663473835201457770811290678465589994232965857635350332198901378712412756324225787323819849262102370787612070346653597658909317296800129883201573459725551225338946913203405356665054304487916616892551198016073549254597371191661548734963167312276673534664367737816567816316496422959337802772656723623435425154138472518372816695026197422594084219688052997440150102708164099512703803835352226171338946188531837724797889330852237469098535671285133166344205380209227934788621211098168252276243974725677030840698956138772007871268345548485933941549853287135640004464452461484533098927288003582486004481600778913059370734661529698022810509438373559451851575774127135100684975590225030558519454199964442940255046991570796885515278625025848291126704849182476927875303338952881877355423974781507595658757468522985768860625885831436111144686452886614481941993520151509687834794906036088876451181386478643979806287121272200442799780587643739489620109592743956885215053427204544332910789958632187617665906948292625109541329594889863633473998807991323371270807912111366639679251796246827116577818747403613473429991562533715814961888751077329518441318550866166816727948004025339172355120494751033267496563441592178852747528452628795353685084684315403656043081374468797142824589300285856042855048118776423239528207597920888524129653804822698634899185194201259906474651742052874706516899723319839589279721347802186247857599324357127467732953157885061585867468790245770712714365726707872850356909547633100604460822404741929054828890500810414053655189656188366385184539542549624042128513832920220762110763302295815563880988237649060513337475471449021833511216937504746354063108524479598381797826669538860735909380088424645495818758524619623056466789455094983167106427692534728817946495198955234105432080907661499638128029111235317348114136312849004251118457852447761894958090057394936631346466805170697069490216520263533852368842942476827457400892643643866729809650357687718316957701255898105824823772097005595589230827032417338473054029758059065805241378596799218238989883627174480343549887865915807751205733197236184489621669313053770686611024630538838240848113920494649960287568281481997930519471765497651021263056060843427228596221689824676047074118133979466000318184743125355126786680577158262511403563367348792923590037435619916481953864139211257177526066615056124918604491268120843357554877152291125809226366323869041584970998693138132176754136800020475842649142709913884823244245594475402080185591647250509264257780457420563882204591924696527708943146377465023779943385136252457220021094141775321935290629387302970019243120735159008388112199897354726849733822286559224990819655673522383537089638186215644571397412535157184499856521008892220769367903256637772766187818357775388884272771189213827120957988797281435445543679647510269109674975577481496094049347048678245779406156633332033148467883012654471099314563480454637381529366528147005145261296250155517731996886158769655093075752779935866194258371509541203837370773616254984474485960869265910390445531609367489027883955466739279965358688944151239217072684683107466324434540104581262714470209321706372664196332851730735655607099572795157795263036113630529069500373386241342432430555828896079241052873967091114887339025502689527127478551156020049260799606832746407310685544252035674300014302152453114074177134231886054498384234412168647904493164281947987475606838340078003422404757000920222347086636679551357420259713959831390175888820376486818188042422172109558379510938193276882892806270943796594999092889167720224645917236823758664781342033661457359570036207315586273875561341708617276813567489489705277586294853216756978938275393081065893491531270087109209039900612366440581815332050917737305161535860910898280077311914294300597961166379548216903312526846783622511539503833080109042866975221433962239602364172771111477825457892059885533182956567089855280456615172179382216555316708448421408958274409584639599815320444645879920324927351987766142753933137635019070473002140872119678759154664153241418880929004593369665878696482560411102329499361284015284434542547872689992918317021183832631962870681609063000071998880964695248325167894885454302943486188354994839131605631377633981021759434094969677998696512684996046926516424482417009812927891293403320382259799341989310485384065619751096814561806054653719177715622191234281373000920032254370539917482806233721413747450167584381273451641425920264787929799662535112057236797987650823827936337340896957966441993312397678112287604132115641375399940753723858288936248652441990721001000148324174624662291919928512620573545091869294676399911662782198328073210140542166282226487445438066080793690833214518891757561695209425778074067570086399702540978011032046674275769596159338590619710734582235283355857473964178041252236516863210279848469638212567489122904086754293822426519503753469238127386453854341144320094989793169435976424044215889490720525408371798663140467185817725161790576996317322961405683893165628666339785515575822553068408831203554970864311649203034363230542099231213114806976520267853000528678120511375938613501127669379262130194751936449584840160024553900501513606442727465167374891207767752045469252426503346479866507534494485368636186335636735822796394398898021731800112094973148170748295663130905547545166811749166681772423977898161653628963997599041289223944551744367894731159303815933477892099328277672765787146801509958085436817144471040900117974533491159578953151472738591000891587704020427498049036260542362648866336863322885968209728278805367618679904563677723988061849508053123951845194047322318266370374171551803173666948088914998524506938823947892573836824212556450816139390210249119713094369837028977084041013580062537345017428553376283351485467635451928515878078161354788987844868277566644152080762115483443806521935652057567322026675586485271882664650291236428406145071842793003169280784671961307773355145626629007954071361176416864683479306885795299664698497722589555200227146835849758891042904643602134963242640844304396981977285669581057321585295115680079733881232820410504373101305166095160865560779462858503774818074934356080054039330958945315002919281763090013137908976840922639439444956224979509193727883587600032856284851530687384126803094417648342981554681388454258550491462813125463486632199695536509253146657988601134930771474177251441321241283202140290870097586687470668531582456514531408642090354803591286479878074525559186558374311532137945213503530059891463706736987718237566644068984392088967413252580918447018367199165223017300111080604953738838820036502041038126102417006139246691736610897154209726096247196911364014442214002727342857018778408293294441303504920007031106863095226135069482041210450638302724257013181928629899151744331669549403598928892534764032236163417169431401879915005448607631165709513120805015022436189243838852365553460361383026180930612129074732245796352088656970578173623360052197151051471056626832419718075930252077374103312083159150387001731603506005351998588073867888356786198516051698157704906305909568617517898656052057880923582873706744898173549538736350007527699077339523311129114467257945070510778125425721100989220361360969122356530588449349891884120194688322858628532492112710000623531331634034994099601582106605973866665182248897867940281543050730152477654350868909566864713454477379865055805829032975598176009448736727793114360076263131394868943090267049790906555644199454850898979931610039319282250433570701172610284305254175592920320952061135853035000376117575799376589308529300723825297650747248988376358482707423072672958622918204840428674773199432573681480609010658578836301553033976209117254323182815622830244419441520665246032874962471593148143364655447727275954561522628906774902566751665908261469111366704151293436999596618612479853822817673923901369499834955930715604683551141091675319417004779396300601801092528452526343280989175847192220932455326405412931808459164077985960271135032387144084052615040046618246836835904292455525180849430723300480605398880816520126227091343836885940400997193207440430307563584536638224529644868272276629717219451518133090969300618337391657297983546937500997976041988275977861198965567742716801796859996625008135780479795724226878710065420248781146225740805873915630641756502887916827124816515635518091142551024168922205897606951758296707158543665533599302363129594644548763565576996158808930575348856828211843663994110553810483967850831017472878919556416379188986902037554359578179155215557082515295029576031844716542243980112074169854652901611273420043834548721049438703659809538294862538377471913499580025184908441119564598979231768855841814407363965413155264601411277110723124614516801237546833956454062508016537624231336708109333199184934948964357388222003338963282041447353806397846037814803279920847036425358402023291670211697633934774982294543162291076163674984269139121495593549090476935965627935123031507219484697165990852956072843833658820023634771350743206591929809356209258092508927796551426591111737030648031793810428537711448022089087646559141469088583271882749131394020750645784045360496905644149941448030672409568133046211497827391654917571043102198733825564500975172544523851479131959911814653535984093881185426797421280072393138459664512552601001128399598097333842219668920841968098691501242747043982883831624140340248375540714959090866521222609011773259475608732916244449624261123895957128301410450491782429024356372791159527208431965373408319387815349237134663452141443962006541940881305067092425914242240230999272037992275441816792431592431840410881896522276377454445513655064102189809418585643058292333741503006175517588896663496650549287913339988466857146001629989246593992825913189052121843093960305748067624425503827521148717190247617492403302900280394209108195604189565292368984401462628296135841863942670190273303073598604542813004469658804031953968551829469591459099767957704282237517818185152125301545743387925230555322762567131608697020529782609670639544072816749122316135460900835406058914686385675541786290483299020399430410144144540554847003446044150450610004085991468731381820764078262749405019852670885436235867535284961400960960252068925221025993278832341189692547728283565467185715730205233797990874311491238768665642905376988001794080069996630910861478050625890855710295916657859059450512779767368609948779260664879955858358415554427388014683260937535522049764825765970046364590473450621928050076687844606247423368449933688522372736647363072289897830620318524818251049309671923398938379504365869986816542317454147367618516407332250463318807370123995689649655679782906185567230942363402616391835297544153150134012410294649742467987425137469160221397634655525909720374732581543964071084075503587408590939659390036359356401481581635200048563474904854929847530662069984450246929004136071050820355776263338665504625592392100737597070811466444450961159243545949317074899180438057057861923358795295712497621848871065261031037412770281632831540579168606666580687616959327960120901077903228658683782962729117343760622924594124286192544762226796730688329471259586684704831324239920982232339321069498889835194812835396604350641480181600799891195483424127556320533505864014818333492068578992988161268064566186047468282697819015956258755141018547328554775199457440387268552671745657038502421854746924649475564081817640564568638344274431865082928316549113691041625574312867117569219389976953959731923920751137298775047771195621398739207785187069255715447220979143068588203666798594259488440951281893897411104373874500169511989205355807292123358405748666035288719844716455428980269779156473902466835951334990616868885769923642353377477815914047995071861977701370731693338177045089387193788791214424314134704180546972579570885286748108660738327258620095956797883615326921677548844268259352170611727593527697496231842841427356356644854109278832638938368955785168029972395430177057275053988302059949224668970388937627151724384998162904425913044018382191583205518114863063192625396336228161685526770322709659738849449704767589046093367286103241781209952386693610236664091515843834754408552662794792536128851745474841520572703120457287476979765520420937882099411944494418066157576714486990741808634209619277642376920542449797379887535084427372909603516931435403791990114875321411606015227503052066272385759787855293739805964713004559271927157297136062956820320930551443122836523836372152082965245535157100011784372099081087166091078448706058826436055557623575795065727226756160085772967427060388787111602993263230712442608930669329833075580195488723931624974298886287576746675536810478563144753485198046864996586267325829425903630167451898801737474643365643057099359334424177799226149963295560263832396435257522621620186656120216610190068809031470776856212637422277278897930676171838652076493922985571155325429363981913283277551007423624710356893074029659772706597050159345277411207627585463536318892074353846227264418275100423538009881813980856278919110548593426823281095855859959269435920275482837241752004290098277461735386044131008367381230432180012953716545348144108921261437753452476296274046472616650047105644636018734396452696447023467527638547874878355386000637644417370031920531958056102706066531488975380472571500889298872966663647504376540825795890826578483336142844861845513888166678512725901026556507925098791531218187906618438517648209235865566671219966216104550913850191416119116905976060931655365802152366829323349799242768033414433233974355415187936914990478434629107733713127760058087978944097476206626678937697909892335669098464769959384871705067152775675677655323430292495137640893430105753208211251731164969215305863452132967996576300027995254662857086095121164308034266669858669805102076335422876002197845353374907739752688728515385391726245636217186023360811704835369013697891335578624318801626361106398492034582261293459537521922509344406091289922225215663532214448653269393149763490163701048811051625604289150829435039815068958310050983271379384703020033220434999269171719495994116732155893719029626450870782670697907185245483553775244561671868840459582570804673618355759008965340438616114658496543590723505493556793817858764632481777113682131971628091676948620416264805072666829433165006980861669497020084008735132869194040030970714731547191133537092402376305362636253252842410430044036682869368099312515559094229713729478098262946852223604796779244914556235189594989631476678108050072423377896716149431237045648757049926551517012027327396805267413515648360037725923494201598626498083231204436330929243595418628629490339868506995100427853576876303473350341451643038733223173444909300921352009653843796078185404607606291822218073513571348986982472680310787542612542213809377592270243495266412848606268689572777289490752455578011675324931234714893467071978055591323559299017186230869212561297952218834878873243828287339992051685651165023709516469698245259555267939270153262631238865997763337281336693475861691001684946594076037463305750642695081702682970118456824344488017173394662724722557188280999158762586518781786525648507607716972748113129486531482111131899704692015227122357446133668666835234129206541612022924552070124925565311346039710500136166581428216947555545858557722691379944385967711569170918234343989036919044139672631780326624938558659282252268748651859968099775593606892656044751055439991714783358068639841719630275887420796678312327003840131372912421675865085786791213018094528073697689418851434435525513533668256874732308316760521553625755579051838163405775984242599695305905887249531532456998948548926615076139926626113419723491150033180659706331418149672695458022346262367442760207936035213371238805553529368216638704136737166922305136645736702626218959927391328474377795448331123134843921943030751943325862950264830087252993365294202823842181551486979868434863514948052310878217691952439831157660119255975455216519965960219033340808197764125698314442723285180966384098100120862104280366628679392778464562350680895157379518846443236322001101086877746260843929492542478468476613809506429898098167806675399186967166513242287821663762204785066681006418177479083154338916451242501659039009065798223147347474320770558256749826200337368605061363674108787591569495043653712146871517982794002369575832881110450305753405594311119672420667006315893273492787262453649967261727266518259259292417041228678493005538288971896937957814982879943619284434509125264158543624753450701441500054684436484214170278461159589869982834545715719514235619690275998775836775144228601199108541996834233347768359295260878850831234415189712617403810578463314135694856697149862762786273958675405195308171934904054301586509059910721599615623189572299978145613751595152039519240175629051005595246464222248109095453683637941659322523188649925363352099247575751653634364288140053362814256950893091002570949508727339907993713453186931041563873584222299853727728660437291846434339530765415141099469848682537403092705086689793791492089269223610518188540144722599679231332884685472903014933992156344905020025907031026014858966692247311238917689945626797845535282693068951053345023429672492542514066395420686529554564538193591557091449835000283082483273688716403426840268206251860221824266221748040319134679156694777902528946099636066686610094066789849933883365396833294907201124417635743872554599102289731326599686353389388335269606831017936931639139323536231192841192490865755494917135643470278177291172720847507015654415793557173708363013995165277798990023551972787110598573791617617922700751902252655616145007067846907014809990439998352872225165951808325940582464783791219584135855906687345026489765601878375990058601805648827969934390926607431576616023553239032283791227605784458025667447144117780189725062937124444531568723676755953521112890616439454537390754766094373544327462163035983287761575076058632957120949284797392991555280929602479805229236439056049012426776180619517877359159743467669459065045872784901096553825312485952979439166163565393424241849849204159243195994594078383549169663533356139322669603147382788641118220603804040020864130721843531532133444175483006892892894396276786554705513100842882963751852606173026351114615905432301209627765530620607008879532079261617588536592017787290598367824296527025293341073121386183604334453296413931177458877767287983986105649539504989707213208425000252445759128675824323867395778098879519100204374961502755543580428031893267780602334374177646846665249210656885898267040657003730701626665774417796958095845540976379146216706021902410378460466930253079554963241412387926236797299760278498532467341779553633151360931280768914721114901639075348792798409805882400721352483284213027960056864274254390820335712087751143553187906743711171321220803582708439192107015289941724637666791637164559678473006062111459592318822601463285974750885784466576259738493923726553745482625924207786684571308057097009341193760974001652832137956666391307288504425963057210918222559285729199619891201441759075781818988528639751974413840362590237019131347356435340967802997076207189794057730569566969542188175522135590366154394409408002631947154105667612012925416885558350145823792841247785984216978029650349555093829563108660691343039628552611047897714041345742880833098935071870689338200095676903671145896395447533996268867924899897361133974624752003143168283380414676227044245573061060511359130153666455127414867007445309083837180982261480973334781124573253654175090852739986594113921576606291863415362211830961616176960608503912574691961624762670992295132331673305970488299019182291845938355573003930715284199523849954900592516234336396400886817811696172364774388499862987367852790278048407266976716002913381286779078047646920688886700432714063654848743503247901896825475665547792911403892142813943099706576380455374067566728606941492953821258312291763269575169089484842722692601678859943871935508545006447217584106416648161146637596926930907674607505776524341597866024314114889751748415625102411959104555006143836752774562898964546854922535154463330767569196952331903547579629382394679110703974932586799907147224168730803662254753205519864533928883365053145855254546085616867338961717393136823276654418301041795426161306973453530773391193210709186949541492274839056500151867069127991635853463357788165577656733034495099725534330943340653325382806152664702841334528253130802982697999162491832758675179092918465831463873023409651572900554052760964270104790465242772104231444032523411946068231389216431187771200864683555384558735967115413074100936730820702106245331363154190580824691675349511708093576463009947004713033617516152475136761661788283585549026428682209411996868795983708166220180733899789135846311474228433006224289942199101231070536945650691229737549943777616771185980296688537551625856797545014254694419777599975698700438207049020357204599097557407503323462164191390159916810978673564189727992859504914362408107855533544219814736738260629233452237745135824657971342731610711233532897021203747839954335576125025043823720933923541307719110788505149326461948994174402714577565634838127864028894362010757446760358556923189496336611038709176064461190318089456118550662120792229194244503687679779303561626939356745211922793794746078239132441352117548394946088582782130308685146557571764144568181266768101435467019910677592967439083014496213865263237280991490531420958158565882877992992434081553480291334721559101353882551288994041137034697852656715913131194022278397152414047769557274121933029778968725332716290389466469625871648986429384852297630831683420860923472679483662993136903878666752603764996602221680718627980793612056679514689177101251353890543665937968514396752536254562475905787847039576520230377333275195290352420599907449583626065334750271759673426392772188926710882947837617428683340219165201363398661454549610927442894595524616509221158022260733877778443039634975780255951463840590177463063850382568345231900523125567279865150454435545470139298163965295293927333425087495673707281076861747360365364969256214461734723280086610871957127061738744439936354565329514513897413436235515715402295983103677195445871340545696802868147260643448756066367940750630148609938242284988073023314064976947782369728497159207287248675291871951179717322053633245191410221973028687817723028898298453708843756610478118525237538647932554300550068042191137470309874279705084648767893025886053449419636953285478031853421525560689677357743132885836623417474765920742269569327414746667890893992221144452487353411670531697430921294291013169279605480469578206530344781597361745321638358691794655808307157344984815617520238605550301405506641425729229874543778594301399955717335833485039977110970745544271934175072712196851989103829802918352154379791246714749807428167114205074473177264925116642362639974749485711241190258003877907235506264968148193067761660316357835896061088960229532903845367522242078491075250633565222840368282826059596208350789368982651795345665417288241613485069279874631888148329191475578374382557912531455620512400772663751688026898756853612602330036190407472299382976711198369226166261287977240132580566032901945585234201336800792253632454455638288002015962289770320775461075456331905607637695831402436166830101776020389067555564686845042767099600425522479207941685810960758770136611864757725133491278519730389781141300599699818380841061733548506134900141855662350892142753486051149838931714122799109060556812000887144518235818496914210477313464794761438179814988021712965042316857544699721583957146896061497761303437501203410739227228005327726092249997253913627044093495305922100585313192224952791477242459153676756447849039532474593385290676120647090114966943061388548794351269081531633706533228776104986755222226811497719909604061285912404185866021524244010996003967475285976220431748004479941097320130074628225982328556464029258567072548074720796904773074531693556991238150349325729465547785311770704582696918291173813191278476522617614064289761706017664174400212186583808299982113253418098910670778632255153974003591157292872342060093666344628536511488124015040609253775248206698721465476548805406423563259098271986228503318154417493644521109811215587293416090237801911607983530169656324079049121784390512562757545510550134964423129062508808370166711443048578033757658136219127557930758660796057826754485129342952393541867434760291725583651834250641320123612697755733685208774571150839991566269533145335588653070328547652279229314310969380683766864893066797315733262992729264754582182674084834620282149421005309002132221959893262897366153748489458085598048043280440087819113113108155579056517659167077734236174843401729423990617491149774147558323462369877628396035387315390120801492357825347234436204651392313660584804632599231607827691498997766732582644999381958926142699166924228532916562477812584649226449303658874877872462604984801398958680642985866211779636908895873536363179893033968840001868749422701552515989713331048131751946108132546319168768913576983787029201211846769489977765016535754565777532753711108039667625311618822335954183887386027686816411700047800059127224141414327593225937049314550197795137874675503999960106397316406866567544478233761380066964357690364822891050058620591027099737100104361640840046400559049813618147498967489648559177835768070042106932965616952592818091436133008286296567468035013584816976773752140446262609416300130890202923489443253832083485499622711204394421941221148379442814391065464275226658398539619275577268822832475858003948588046505954479838422772682793205161789032372678100645451787067596122874014372751493483039440968251866284472608582418072039883356870637428385043485275870025024137563315555278527934558684557269631626540724434851766183807929197614606209334648944691751272362554362555889621070179633369693225071462726812297754646111782720873649873629513184787757557593311316737931034502141080421765149805778650852606243385851826833801627925403939650185296558660644808742452411826681035871779178746303082763027314467734569931688505159646206300405600682135603779837754425773367056637676509940798298707140677105343385487270324660181022621133066832850623231866655658480523147031925664455686211020239126563896545328050148824884900344571204214316918538619743039792035340176795052912436684644192993584959704397452606205214603909497570886188472674927280859568661736607875609519244193101188147756489262977085577675587425832468870309147458206018944505601753931649443967988114052035384619393289277100181254963673660307731879263762469165221582598183630660913558110096006781894319600538906914422481084158431650425601458740431771393062945363600966189086187139327384666012271477917920604725869520800192583234657338979789639804311623166335075281922950219606143976204132089899963667184057777244539088250360276341777595667422403713234379783905823720853533953455469398078553742722576074181410591196273549207260684959142220154641175720611018517364070849514088936244611285645570593986464566795140389688621263330822866349828832594059208754668200699303139369803403721381725679958698901012724876621608859374087373827560450488345288902914552389405255180167218948694644101450909841043775484971515335925305780237980692649320872473717746770365916236086136891069145819722190359870531340678958653807943339998263361377131308436080979345029530469481625615265353348776269864361941502224429802494706574157712010455388139857841840995489422675632152216729660539015285495434039255237382098114147833672507730713004715326295785961711495859522925190395449368418752157895215264779811062208237219291829521198423077211840227953364220557661436870666244877444295646716761521939576815336172199663409593175886039295182634519643739792766672877497595551183368381864319631368342262751830362032057624410899241059021693341463389869147562535404310747998076472232201062268588087492099729945450311011029841404311480917456843830183953245672624470772415778236747495290439556644075277084074471364944355013750010033750398789865412615047785803299962547738804770382271185591095182447429654490002045422672845326462397751907834755784957136543950996159284303252171253948200870930960818644216138794997657182853881300881362416223348064116750952043077490285925934496286208953553631962065250305431783624748202344082471002131570467834133848307141127942340747903169842791891001500189336301701511867255401061336493768298175871499098145308276657417400999866816507299940201909153543069897015904306717238542775899183464312456738878160261826400063441171924373926636473380164651995351625207373215966070580268557372047138358305044691792080930489231423519058981229240712545265329271215348751930031419540270600778920146259459604464932474410644727520905648000659331390106845635871461135706849725524184179393517723041625700167393227042061950634697379141217526273949615994779577861236519090145470934182318419725227489093931949431674932369325740346595610312158073328216206865690809031120740210293392744850794182440748174620220707756302743108343936587590166072797928451023946554349381136952955226874944209033648894285083833010295261976100305088801988506081989478115793718928937278062440780972368956538911687127227329800469032800956486703570992107572997398512520603628589913044518005951611167665870202110558234627379307601721510105068740977836368914091813534241069610764649445528634962894861115182064023880631728994660122294295676829127013283597667700350880162217045655552700979226805751702772541658156090791108667730133724329815159464514968710913023896095765290938566404541367498035838747994519254695244433279594778201848534601252405863414599921499767620316627611172239207797367639619637802647559715522300025395883867190158557917170764450805875747121415273787087589329027278874171415255191968973014183012657181024460254483331466090829760964065994207596026261695424289176035710026679478512165926314772383813356203642735025012473389607752129190023884275281532935563215258038367084760089395952354475557733287607792012446074655522917143848355315319092691318536932601048493761117486384410553375168013193894302824495154688020251638000772914563344665213784515340170943952622159270436631209561733153045975297089018818475065553852351579313324689080407078497978114607902074374349580311950991893579927607107263269289036499999011613265482197416897319812708898722602388574103839969554437745178379121298342562440534749258709661080412770309115697352978462529113552442275240132814452732713716827816204390919565183341240391430952569961453658648012784721221621870739809344027704914066770391820062164744692412219021035858158674597502857786839454000130340832732799609230132267976381835552123542734344115566623399632148643410057406169797243753529408286724992079147235924824096819955178464336805166062874480648089605063120592814359880217451145729823428908876847567168750873048253467162927432957692377806562839652948531646459703596336799625448018289407446761137019359147931806436787466275148635681637426221691759335635668858226235537074155730154943437251830142372428969934072124761418914317046395557772823360740082878129767021762711267324947223930560102842069044061618311546809933968976742032917494272315588871598249871460360620647411824129865155238991287347329555389060984501014422865677226076612731543719200366984397052847066606922958546323329217812120040545412913067362794469129048402078219801147204082497135528494112874002824551459307206498680918371583995387559715778204119107757868031178534692164421915075267739464096574059307675371568107556287308739484357786925932622603109076812106099165453984603530030753388091669160385857077892870113598309181883228354299480199749729109219186615963285100414201077699838204984447223442618364858357741104689389323559585244089062775983940313314945650990932007061917056334689533708808768101849945869699319913020953808925983228750904715214736236845093933523629136183797562037745379713574263235642092171459030432923027835622085308020584496265141881748613190694155163683961121360760844793795969473019046070960638671281469393634143997399383012422462162482667270712691121896640207587958300448226511572494023276390896355014111719971495610936221165653430571928060559322404161481707522637619658388232410732912861024676897046232162973923253909310555128124203909492430288773539833423335939322480744966804710119996666975593314916374834832814442971664332643631437382001364108730519396897960763967988022976965082608901345225629348055819403085175439828704472398324066482603123328301549601456683888190709609681265492752579198125965039159487191173953260000380432123726914320925758618779064923560230681951954784404384026641217892384533436864101876730336085222827282530945433217272659278938450159260019731354162148280407965399555115111390954652701685227950714438390571988807919579989499567293479299004224568841584508084506952469951765989351521280894614231332816752357924552196096628806922366999298546612681406436376874486301960728088650837355478217779665125263300137583182705940675761944037901395802941306942112409616944049792047201425965262476178283013902948929704267111269411905374259707189764660287080748526385647782068039644573226314554107580357087240942427519581517712666838161618297647530315785259077799835344888833994532438348462900355544500870141165533176766418235779654183142845067749681720884892686888164868211147438721153697150917827156506341518941707714742215084584870505598919008741311888040448761542558430591265788556078193630449761313099721054393715070182264982103423357710796141921178028677547447184879697066206570862991044041152591693102533597104110634077506104780569033299569492982768599867665123165623068262035886854299205732151002272896571775494271319938791951854538860104387182424703765876812779012238878617931967975760778181279570136210104770069458101783128925356768201172302679659922835554172069272902023734775015056751568063942831065248409138743915876809375439161760927548353549159773585941360312808662932718951526672769316698912484396204259252462076803097958521474614596997536003856331513368856229250254498084720430977770446320464109679278749022180847281622635368183382033394618341469557740733929147721760713792018964280899380389398333787917675782418160950950049916050881163417138156247473331364907997392257845679636045303539737566784393556597255475150057321399227872973182657106680676448554347954271340788058020283747421815581174075580226256895445362959482251382013585574201162962822615074353239264759792117412356538516789168735701143886256785329899639710790678211529041563764432901833161031075444278654885683707896639041353656193531523612155227795883949377601969804137870811297622408348960296296010576823907348583943273768296759349916048525239800840181856380057125980631159723561424470906633390696298410850080884967042117836575423472331450207048803054673196883167164795853154541791752033205440342432133424113785630634919753935721690847707437872517727449669247222154019421552520034672034948115068357420220748380053418061260943734155670655621658089847111292035733246529883326056289649246938591772206034799438862969935818006657844047054389844849227584915428387067903225103655795461707027665709467037742427691119688726077479980592134595965200344813479885508988129977859112178593086122675446577276158105586699513112037121202245623652182915169882339948255446440742314679079443098626423725033171185032631143532395261545177014313421529513510191135251969475968685662718338787355378997548143276811454858359228575521045519480549069666075782654519548570943100119770138065439070022156502621582646442408922287214754599134893897579520132508847275358919690399878975974102610603342032062795392744725086852040468123761707523886676519595173838607550032036108032824667465676617087918041347755559598829085391948471438651995699457048593516049958043739262451496254565390728390351146098287134894415897821680629880747651573442391873036402710866587169494323644096279742603868800579971259453481402700459075672029313205161675205949494118171117922028565371568602797226550247799692256828500597522783777806666597735214129249526683786780887120437361203425929210452544006415841506937035929492331639067345658147477198608480298961101885892987319987717339522543472358958619853742876353308401229604503736354533847761251704352750786602608987054181364890139473642792721814743428350555788117551516748831623902635748891119053768078131130693140511266271724596833886708013449547345453851063762831773631378635014022642492396548096318992449283102374406224794445907677819292534260491757709994225369239577813779748923340501148938215509100416339733379600111345425789701315224616800009871845922681680523870771679643935693045857732700839749026446942814148921715982457380175353316802065439308540984033243110523003652775785337914933284461671132461896337052956820220660644317252061161174150285312878609790959874082372965762007658903650602870585423997239164451395145230174926433907530270400927664196657563005731805958926003136217951859531408188177661689819815924519919941621314613695809861471766143932504727375804801913230825709198368531717168549949830463399980062965343238792083388035893685215852571005029784539710039861556323245997538575592660078485508021141350669413782173560985256827836762929611915523078183171217089148150318064686885845337438789002057393345480558555382350574097418531204283569090581952230871310603660111133443663689373304740247561553439117568776963563860850079891128928684210168688784329889601960527544060798289915652384327753129179447764221797751687219081536374532753458479342295133913176599217939361144134061667551570287137213733338243676031414522427965687571865999855716849595464947020632218531689486295764747028950836582996451217783890979339207404529150528974746797381342625883050706678152182496378721550295559741992284700150374047127671931799610984006763640112117839223143091854039028937600108767264984258237185879612581081633747569835609721880388028273264818989562965115793672324926454362756014568679992397367033071182014603761937132673887625944701808238584400533985916871305313183361106344729850520270291892332934840105917497201086319742386274448597112366105868619851060826282539784553334020220952547742640466447691135620405794593017768279503070605531608970519298223887337928267980944331024516857107788559293526346152064985904624362995036886737204000068830043924127591136169982102506247361928659084030785881015858133163642493694682528181231241905666220781238712012412339317067820211784059157225694897858458220050225119815723159889362182815687304666448552663355415632855075327089827109089259423794229748564975086969216638026293260529982426337501972776945258504928534844876700735920351552773829977827116286298422132461252041891635569516506716518673883284971900665886285668997216432081157195431811041583414322908656279129910344834848447839597171405634753863114924453996251714081465031247390072987507874517306768232773874764131903180076639980402306432628850460971664057785643194408479842015435914950592924949570372355154641479124081828634225318093713686250073826809410604162815780548823109413897080333377713620057929754764341978158911795837298312838876010884184427111123082768559362803678117185779196737862902951836406181503528190697260640504593317072562267865715797516430718200460807661943888449412578675963235559751688196154686216056971804917076274170813856815749109013980660152739336334713144784111674144370018362157781651768823660808429144796326878237589698824251044930940481533827124094264131967368392779000371763047784401256830342624343410605206136110249690574634702551440168375627474710999608582801101239942944250612930543333382650792457711737964459466690600211744727351776473176383056794364931740160682183207877965373370181321125083437311703811453908262634156836263932809785065438107448365623224638109818921741638200718938588595343602010375828780781820033828467516743279264232678169377056730938672181203111437932146960056861472899126774265369274486058127178035934970845514289908787254896177646786978559238345193600768327326367460357111041803443887604160787703045534534496373538419906703922053726423163532492065106332338030211612025698615201625545819290413910338235111638696958705546006501746208126439245168509317516148930804398703041177074043098996569328657321410886387016782365489009584124082205259151457807308210212628233913837148726454543721746766500464537170980769453535405981446213564086001230172486252067123263523791092399757995271327390595800733384153318499048536966957745468942992522686247688174047174576148925556094328330138324214534082340726225152001664536133343429015269655275745286988455102337297862677952872893108660507360943682122632892892477598234354343782949897646789802270219165379913833646332882780873330289863739744491220085589698848498203932236256873065457866717640779697352692259876498196878245336858888276592930636592256478301819625005393193133781775001649807287663977447596226263629815726801029371012893874074105142598577413293255181072592596117673065882246647335783241523228878945191121520398486382740418506025936946263570544770363160839151689623811276519856124796739814974700481457107341636973669740200389693531220097467957251057584204085407291561478917229450401213930733762969102740836413939999269621354676062051028185231027224206062446285093029999618157475647854583817731467901410545227319674740381686590809437417956315360331187338537783494596781271641238380630713053736539741595166611653078329615534923624533912889820905425790176020981853007872601178815004768763745240700131642508576741255564552519750275746328317848992813374521083986622546642327543604491874664532143853615683431747933623236582323389376598653016617715125767288419349922446023310253029538847436908961264307913249561816562670556368037493995474708513858221945891968906303788775196492092989447227538143702816839262833734261732149108929779194869488483095237652003893016998188128944533233732933353415358518050440511113851363360532433719870528777033013318366263254145191741065067574616695668066053307377352688119696180820432414610771753267118499734066340931365124183461795261343593186679273128709160369504926007635594629575763153925936204299320278494270430779515180331882484112329960198745373174104465924032383871170406126607340366883467830031552737295846861221044095335419013082415489180123447827797514713708502913624199138282213265222494132754358259893409950553232144533320461252737352416646031141858362676702375909794882218168776790450975925595314661926282823443015120375136434424580776285186623848881583471490151512795790165493551031406913478402209278726969622083861950717760611138615496126172587416999469184985309531997600180658032783656747980162600344133880695068052095914704516952388448208022195417201105558427572705063522128402783923980582397027795239740063993205055040355307239238314045616858589527862231553476819371039748463811489131881364660175964167429094354894756963015404293108836812585575211075236170321561673835724001247130735500102863890056471640343153335436655288986572748716607520406811422739605835130176498088210313583300003938813358957266502554290506207806140698128937059083070520203548330902182877903107932035029229887269202229975584673498064866989219020075119766435289978080620179343886429589821598373717542394134348360485136250467889527609580314250370980571678668853045650755851481073406735858880549444870357210782148268952690961255745633678399930882222897703687993139555853310077412608211836177981451677227619861656692174877424362568423239930391972590510361023424647631576400292729448301415238620293445583607395008961923929863122400247949183999832375817738345162977644208918746083287808585319870788716763065731355797625428918788195024865518350058177822893024520475558552899122359863378043275267240554323232370405160671599046480989787286350437061131987218986141247305380891628542948317482147765000098385760468769736646017144836641278843344718944559681824355311920839899433737086036806238449135240023412832407036689287661228055103392329513537940526478234528977969439392616090739275843948184488467501183840288402176882208488721132906778760120773746253725450787663691618059959234222892347497430999427053162588783973951617014873276905559003891740024857842387208349056578414569340643575763038363399537292301980527850630898753029832890851045283643159720632047152811089525602237577513082730578076568597644369713949860611241507916651805309402295186655830092724138025542074933099758257311096220268750517529830745021585382604488616983107741685849548983052713101237119172587084438342850144266923622019082811061169889724395363350235216126770817581838808546223686512394882793285862214435834153644332489599863772872378576972704174532039044526715969862841563795182767409199222249605751261706748538793354562181463351912072131629431196876232145620384940150623626579415995204812270775635345402831630603351665155306593956916894333975731124824148990045080622588764079429459951993097316136892711390014414243246318835390614646432264872935698904525758464434589258926996108498998247750849485375083244301647005541032671306164526515681164677707839024984261164067306520033378249903634520991155764306162955597715087657240824255695167461819961681198794671733858308151616464814361906995673068991182450019556673063319116885907824785761861726217644135840763957902032682973663980291297250513052662230136767379690323202455640877366299414024963569037617201281954682244227945310446051767779458774295810543922529731553032631265063303703915966713763869682585123694135489148176448657876427831008108565147720118220251790561090168170054077562946416884908095345395210199407046723483267851297895683789728390156120459361127636232101797591946227061892056205276758007614781061140756685405132932672495861163346881539487457809396174254443885290480097099052034397485337065918792390245840809696758666781268067190755273456840436666751715683747784368652455553894679603665304798049922533344422381368309215198502081393229919133357518475611366035364682290683668934935915430264378421536032529143798003548607112531677093435481654652181213184906456394035788168344324489668029747147956584894651740929572455153218742339884702710589856685066803549656612193163070454952489638885036278293246330196462447244623291246788757503502975216179185119687419149002821510032034965956720303728450659653414395216226871802022199254209483937290436452430535609073778869550608971586502237335739882453338411027823464219115394020504879121655159285174406767927644750524884980910485869622616253511476712710045279024189874155534641014318192289350996441684100211539970621700870302643609968059419114581605661122210603502141072995769073048018859910955729930490490635188265899118984677166755405305508281843101304785923648598728305600530104924245206750562119023278403306572152871989024467473955729844366364481954626908896781024459230864671850984349112942929114149411757855770402125683212622389285148016617748996598075675302758117902015879554120380003552911830385126860773592375398444640003127390346925173213393748489299183316465135573850312334615415207617671120092074817742086464980409402565915659637293670394918495156055974072207847366539235146622869317060211115832699326620991429368313907311645258953216170705291192665299290215765492104134354308117446741692574970099004025462431706425916605345020403123128734608043543867187073487755020322149773742110975207002251931868949501890818595786881144418806179852842384725799195809183394072830496124380900635542988205091789822802224106825928075967388010119912228801397704992063404645307533663751507318614046191835526934827497260329140160527950337770488069526515048074634692788244398055265762896362224153270457192451882092934578854572154050539776236213253215017315880670611768467470903935091132859024081472562612330026631181755320341510136674911088717106788475373264479190083758163438326679373145133047229197516805264939877617617623158221742361637898964533928294056337632609356793549133711044744556773470593391598252438413304273738965137859234061928785520795435298355384573551841023783366682748131216769669596771504876260371423389147060638807916731314172641211165722903020470485795865298437382604905525422485300703709768400273141632969358854444144134188656251870819915322667946812639334224930866028273394977455966104699667251381480457488199113239897029771480894663457595837899868276441838721545128063792119870008472577707922253035914617546965786821798491374730049635259597975926290004956399842216961778801770972143934316190232309795009190897870567208771532078421921238166344418174776668498365546222914256417947508061569344349335079202825873732348266983730399523966160088829333242948377348949351337730867744656568243155315546244486393352122208205751567853843951815872003602459873575439959791285826746786214809447791534363212391764395212055038539813758113086561335808764991523768625942683050745088751749813800730306948982720518050389686605016718476410537859376448783983436933528368428147086429053145214754333264395320073806345368415532820509243155478856227310961014978326234563259471384453866919943500201494638267130775328487551079300180116413573460408317441529733482606707189870384897310555181342035195748393528342205635432603736090501190783964210291567848395745683909983221113235875571070269387681996454320092848969735525222907262098813993660235835534625073186926262684609614943219415284443633921600272185954042392680640807057864435127436582188213256252447503380314535925211340612592881810742850079879603706904135589445907105558516345693781143817896648872166228679725471404208129772916606118956412700923011465073658501384101473997070383618542749918765774571140632195891831391553743675213351865203874029342806869388979477138415726958049208906066725560635935629839531644913466151933900451374810680236398853025654004826628575839778982219502316013433479457863042554546585996559149655901925885452342160773780013587617317932033813451664714408353169560938439383333439547411785642650071720237350924470632787968052879300019098475562662071233602369805796255864007459739314599057834911383549228790241452906932104706532292848929395045727390130405399817375599187836549327275409072601864396223633977695011030048596154377732184380524999186127221888102624856845327336486675914815018960714708675904589000933793867045419160176517885896731487587483565682405936569110325011934387764645819943510975535192343239384643232498032394881905274103023950684976394649813709464976488424886236945446063236987283829693749573221357158373094836922650587001577310158228891560531205465149702154866094840611602740172669218632718406741471497076020514908346760113436034573106223708089296329273950812502179050188364097582867294722443810569498998873148438810159821891018892606068492327691871314930325851532927282060645606977612613585062392524622731210559745305562437095935551890991871813954042912328072152073230281057887667508847964266545955738904948372445021641596486989975980312736113855716285858577057423620792226243522946654671682905336142074700347575030154704372397741548307395572098867616676412504700578150967101837917796192600404117006048901734246613783250576002334980187947808417302233565368318495039800007384828195314306733843828909920763660099300023700653900863289329674165870683365675609576968809888865036133918344711292203524238447126223089131096710484243414241531261503284901680774490544633846136005538175871317973986362386337853441156802256037890799530660778072224152857565842156245911582647731007917268048185439003324880078921140820888655655352762706708669011859103870367324131764398341551165668638417700165403946002424004788952010842581876463511600914946521994766597484592488756040315642442948627312794166645654410352506083765107101589014366765257665154358106891403150923872652631512969104486127895232489300442317477321160882080528738403451425981480524205427238389063868159983158998475428249379227156555999064333353103421516694515301216157293263607823570062861055251297569292333666775693660150375971345478557771512586389326184400781936120301021362158111094997876358204021208223478019401863448222011461615022586208576847631536273115847575060314578918304008621623649868916538975300074456384248502688257381244512896858600536528474208638106294203503943136804197967183843585255982701381492320675687649058000646780275713749044161111362434911230371886457425406875998648525958304813387290774452932425515483873607873149236205119013998887287164335492294788566627099163828874663437194499337402686801230677959416126736677113966333492142039812075837158961707477969570534139124331110459219814050089438651960381707990616000883608131802044621692581295206483844336398576278049964494913906135787240887686376840700799705682918148314849252930215435033352374998953790908575018623402342108469232061178939881394036148052473994289170318557979828000506947695472315269884515786352671161456110154672579508586078669748174196952624112943408576956669232869999049294713142145038021239306152878728342366026061873597816916956518246151349516085348466215776680518992947455372965600841305076077520037756860068014930271994526842791058593564525514284448931883390709229291201563143787332689121197855618776789889919545485870272976154046955549320111145428187025189266656590790002185428534785973325254761531175803296121115295422593145638611611906759959841234137675059798516699563230501184472188904665702752185124071300351933172167016448125823328976278459400843550402230935261626011250435879122781266986019219918081901940495731423081505463318610274210190010655696319906954382954298272907174977576828545147276824257302515028834462754887018927245010104142652175772372577777342283724880334328789882995317455628682747185535560757571984676909665192097483458157697828062761873043523280022203092932486155943277490286296555982260930331604388050847438812582494996851856309206001369023017332949142430782406881134770257152956439352166168770473025707263654461813553171343125235271960165097244430860984024098204313180992580184294802369870028795851293974225293420370235693253336578629568142702994239658601157980664708344371264016835117934772171250890060250540539627127058810871817603740994572641915766600549866721530750286865753137567449151964062617778285750014369471927323585071772925101957691799711481317412120911809321087604625262847606311077930495987394373177773727585409189521783235945438021001853733991488638270978388181730499641414738310743245157995186516358115609012844517810214365705129313211022498432319870329624194470280175178894007399119211506116875920840541391577225027737441126244454785452169001510036307222333619993960098945335118534270786118742793455862159203669486699277751851096117679992235839923950654298452779358414638477697197472068575935151436669794554331542551292339275146179184451298467902023981264366855490855407960622782646346688212032534477579028006675719782346731060656357126903498629477510647048263523311511452400936261741448441394676433207573186913297898705162073858815089846545361713593975393324622812353009565163099017360298311584861322815444194463355174551081923079477273397267762821982206428214958978592641271765771444292006444119414475990609839483204019972159908888998617571009135877210458173382391693688587123252167654426350790808438980220952675855960400622490790060571725271874794376376471621884933985593500032902926634596246412648730811282856447077363933894620942224155932471505298945116421531068079882653968884564146124443029195612392095972479894111401387975271489305962840235696345890201157947799028051671861947217375045954367249897784191872733473680480088134655374306078157758556380151619946006427298682717153997750913415500587297808310289965589691054241015205644505563646229258296140804398797696677472841741620035518006693058980171034359684023044830876549142905298267236948655183098808869182042291113738299153581105292395758492920197655018347807662627493904805652604827398142357239060658650203131321537388350936621825893909187380757411047669275331153694112873697965506252834481339284112108848838202353300392232205891941193008283407296066311704552470974445290811502279504188666667502172063992025148152169174124235772959386350802727777677613257900750479569757144039403093177167290175000698849419749761345181716169773817760981097194090430733507763894122038384690693156338521133753950958556909014947178724691568879687575339142276323135324275849004842715911678607708885348961117510849988785827624911790447043730885798836717270290884845129383978164062705498549831391815120702517055846973189724003383431980102676573267730120014355241839518309447427960447981210477598893516173374919012827679907185577743162075071906851002992914634934505295118418567752063136392401744064320371913954462287759837760759025815076355818917445653661471050388681025626261769202154646415556194370899698548562032845067529234472164644036122857436504586769980018903999104837344756658472582181877349683398345291085718771846365724493187157859051610800233226034441288162605970421211707993556513455499703363209847981158970450046938428799945354351601552121432450724288994205768067903560818148084334645239116940043100853549954834509238155627990871434980966039613722177278255353112160834045696978080482126317984274276760676278716857615861039168557431880052592869757853701263779253225849669676490030257255665824507704647524934644905827359402352919424305754961031161944261805159418497340225241858849831216616696834401915977620304381812423051757546315494671538238678659892393862750038027663603953477482728005284287558012717134614211473253138784437462753070230648040760130913892819908215018800116192131337097454413993409107338090309679123344109219344376847286213322349732665248561809353978863813233452478243366785633014238476134939893845244286445627421547420814440708176518593166465677584375227898536243362920721691646461526183270376913255891152692284724604373857775625656682577458111721001160744727293294804753317217155812184688873821055995419149973412993869866557133637695127136284470372535655148804225844033681449671763216312791409683657714652202481903848602949659008686164705672732590995367208618069172355177784094482263378255777094031399827163953697708579581977164086594237751195957908235598365365452937007535899351339943407384625449680810270410596476253091986254968782514908657913511802648397213462838948361767926959259846924294130623861553619240764085790301663461450679652638035665286891948926697124732410758952440440431969511468598446468856175470807653707889709315470679554419640074721922585330621954667219227689909724911980590318861780330711241239314475674728286074608764341752846675363061875178700763741807088040256520328315409871900959022744758101718792334091603224729011426979358403206651442140851456716679448459941039426824359395053420694267861340851215428170787395758317340050627776721693933761544900745493970629576269324318846545991307709398278291630261349098653247815840474188394146983029838641537704748685593512252083555889782883380713036909574914702347906756751122155571690422481567716896825645717652425137636269601871126523781356030917925391247084562049761652008348627516909742835774965585285650888980353794982535830123047089702523659028852573659299194150262823612669628551271748880416012631483311443205777871534033888727648030540799815379377507692362624405398397862705320168796395275395590509816319866236148038209224006993188949118097839676847636063980350072382235018562314562212199208283973619484815726345635911701672645524345112247652466228215714995398440214781335653924580802173972418670012138164965865892698475623714788230394251228740799461990188974758285184820806261213809439786649134674530799210770819828604366056796006275017523998446415326424807965514871742096207091921378878191740686252956032324684508801451627719031640021846544354593957273726404888703969214038923322392643529580993738481606982181253173965704508017021947983500186853868274841255833444933088904970038576699654976238134489085191890849279570138989965964395421847839710887535693574777023130212385949108715872511812990023241538569990768304469809761952272501431280454305841376081859922648924255027216762689221197284504075331046095690514131137481464429004255372862344649798064190247735869680062667734693813587393266931824277415557038032736047863432355703317154196338464703900044470398123536218822132333128431379541298930788071613332741473984592041315582667496777604953506014708932975919726267842384401868897898315152964649293068093497488848632310723257986673084047139386357389555148223521148943288125941353543795611822379940507214431413682616929064075831503020394408845547199543133687368700989990933242723709405606989541253122370312397533955733424185479131752505650506011165785640691198094238922418852431813677827987608705297136071364476105184869221411864782265742960459239221905929311294718381786389248283955002371214710487207705243860365408799863542589611751588335836572138955535944821125097478519591115080170078428849808076945767361593351156433231100237522567572513356175912550250776902279306293639660065535273924556694631219855707762981948202711431541158136765536487254105646818698150951634711417433733876991473730412321748941227121360798498521109253627578584429252737297937266423884395204185622480090309133001216741042894653595664400643220972486622717660836570534892786215532832287982922529727637818012156296043896941399206009426990959673449995816578662942906598961819439984503699089614713640489339903375073242168678410951805916967199486644901468540498405851123518122770421312442161049444400733613756801786575056280071350339698856121699848005833650964336009253751428405612133210316293000169048843568745734764004223416736588389894946726857763207075196188161642802690423268011350225515759074646024976438988650653208952311582131751622000030923811201654896243662592325103369054240679960269201951377579896057396011310749960584043240802281973669411434046587300510534145059813829552204986513158581495062525211362823888827381748801730664862321745366314383135702556515577601681014852846192319107324868553864353927839303590387814538296212889878822471553389796498222385848852388323299080480690445681466763122273833411809178884237037813386177694884980870588542195754720937989554007435244813803657575019097354668396899636451748363325681720993511505971057091828175118077230469246053781309016656757422774375859482367025914569251184955563494963124752742425970631540299015949380767759897060919630516386632980401664210797258159592189403768704262501756188654921836980890163609854535038155655784949859374538280376363170659220070120127823765438883859772476814404782721063580831178127053300456622302737035028790613690389799451940532450793399482165588476631384572893896739635899309061381503695616649198003711281586041563466201932234540890164870017992871503485155709399311583505072957248303485228559969192552116393081593512633455712122872292739152312719797889165848190300819151304339469353049219954690369184792243514771936619964610654537677796447983013955989984463953313762534066576127572526315762156075198792073771527478349822468410511187286021455329310654159913693051855954542953005342195708636011109973041821558924929178182181704524920147152004237073219430392969225343404120752948661185433476351419336671908341757971843968744981291737302246904596242042363670841609310824283613120949574227089562196314253363702599901115945244098539084821541100533008266474441693905024438211715134675862578500417502898867244658075129584623586324902589994689549664676530839957302747486778870874080381705029227482545319965668882083306512662710039326989053531578547328960261852610132022795068805869054592932050059809173695260603554127616489761048911170918193414772750729772283317210534656167757886153288750256154894982858894330454335288199750024768713039109058374768169182238307261371885365972133448996301629723714187850753898522020424405784195880171665005077138733037182995778059989555514376840237443417976664732977171169966272561962678956379116839556609714816338233605181044477355610343301487113197996288110473306149622275024175498846595884744211930299824481616297359777480456631441326721479368247932917081597197972641834770800002295513233551440289924225674920912544785694534279395149098010329992293528286545578633831966386981246346206921297216392774988254720744133450765047099450328433135993225766305081748252702291672834722260347618150404959666401382724331287567145528699702285880813328467703708358187925230780772261550341342656906074841346266013341435439396343764098556287085449403438133726862786271423642673760075192043724525723645753859864915708030029632280346597762319471539333030420488738517775383152368827860964509648507558092791950959291227165425504060260768363542576801605919771063123853283694177332840090977493653577549935060135187715225157789458030193662232087997034639308791591295650082591361736073145957300257165111924886169733586779314359894674595612644152236426623279778827236267864313313374956461938349741687373811243023019162664663477603341629113333333823776037640303768320676002332905399652434695086345954193746426444052977307225885813732211585691473337573766631069348302200634510273338104190540709665574352103698209714455002896294412294608351219856723738458030785806852403902235840251852673795097322238800700017720000436382813762793069332534658202624268778911267017464342412030387165463953595685818448195023280619892403480058521088486643720422829591634734630512826494650803324023668594564009130460998499474434517050580510459904041323527374174570765707836512955177848906708407203868688018115599067020849830317004213592142200811413972704946461112834421492673816519509149675691157545519365882474159300151680001540391166884427401334390372176681692421754700514951320892599363182991537274205538101408169451219644637078801778918988223540916743613086281851527020548379863877541993497660790018044858922354530212414373147557352233166876580323096557768631179163363687473424324366406593747819553331942389697322760104170888635723000377842597281797396893895780816206558858469546687450670709432415630885216575079863618243997425684215835840475210454687595491847360319734575083761475972104005989172657802421520617986879931762058000835980653818558710540936350273107389933154109328739879006306275402449030052176643762855988009545175749271224640236217761716808238752346141890524518189465151179206645700239938334560287039368414963873103829710189224737919490741812754618638630391402064574142543557068491704015537044221697423018765386624400589425016719914157846844091550047199663789959163795488184975389362917231313141036616108631511324139100681997342500920438870918819557156674055980516729855088852978990109356045346953996401764145121759839842234616856382655407571504694668559532825425955166107864562892355261232124569125762366183643927148985896384447855152370955566449148900765479284093388135528218715573842113244553439659388678287990308622647151932524914722323723534813123453325820613370705092538870967231078367716955302944914283549238303295477006772390513276158840222333875889286268301408584287455380310884528399184586830022163821813737281226965283657900672155750405607318452815475110609885915084679259683608392853905977235180940520085637511941596573839397135872202575535929720416833475876143407684469862698924301162040342293132037482937832848779316262257728640870178015033422144511684554744286025869443261394170625339116404670367262075193197498105530277849415595006726075283671196233300344186787643527165961198382898928601265822644358497076918916950407044198768464606079817249896689507220453149043686863555454740380495521211481187808731462552809979122148167157175938117086524875507552387544400031052727363373089623476418763586847241625779413369884419815418983376187029926022816386414900460559640781658592333018280420717947717854545987525709188805225855138947730448395345435373130607615928211217585670249106150801287460078100126255876712438750661608318475152622964876552485901210818506145503908429693396822791188782224700797557706388075688458854906793567508892844288060861861775424158266828965184804199616238164079314757743556114974844532507371970501657350964140656182251194947739562772636810342659413852534135708317126211087776993997543827260508845941151374159625094179404754981483662029336438216775574266862215041424148856652716771519497079986462314972913138162357075997568226010774738421376635946797372374720092752873875280408411710177955222548068462177806203177096823193882285317836448665108590688276800721035599233931233717977789354979279112463740168042332044048585943748662697199226449340783329186918083568682059275419620926680825508441206456588759255582207682270368420489934716500408289064354434220653244962613774987453363837745041532153662899441892902371360939177636847525283779908555272452773823793731809432410482337611598495424612584118756998350564049513528545262035795015797114378967554124623072547840869991530577174712402843024327126496602249539003267145877392831926701232969954095481628538661032356228505625574031649468577005271917872871660879059398728637058001851665865780523121117465478931886913694421571700726265175602282824310227704859489626946581184180953064466618775711818784125880431262043259169526243606133061314615195943625499462020220004611443110955350265081142966302072503849294802467660511283602565266985409230839606712166742102487135772479616535274955262750089172609371330016260117460734232346577660564854189048532144934736216013201705689296473277199623043930268200043126614805478545470474036385024050421047503309213142861144345370808424680613228299509775172414676442051898047803751697705310744275700936027009287562621414665410016620513534887635430116027888915473790289247875378509956210686355645733591690762461751958250436424069583267800021388125489513285050049838432893464632452470997337993567561760515884647507916117101613773820953712070837031713142615768264677349847796423527908667871274902013049155445261026858929064076166470403316464539307789845154201028745395632405784583676418781305032083901166096499275514518625511404364028563020869938907619498979890820271748249244447141503451947753219690053810619801285651551708872811886961996387286839415763565506633981129337023747571547048967124325551656129595009720930402653432640098500773109104256439850467767018298782723547531917238373339403560554821837773024350652121766655077516042549905876931023895019354275271428614491073955755032098729808097357002861612548500118176980064933873056313123628572325502649564256672259404411721416208561497321791977287829185124426125272503463137596994802338754670140747425699543066058375086746817291574152354187912685227112227709888619362634672286329025504498023006408230799419334891881302932171345955400048947895943644826881038101857585120028818606467980300452599429537186375441250315112799350281658603956858561494256808471001136464823751280704545321598045207074584252633351164863835191766694901858688632508883467776711792692884481061619071681986733201814812044060088202226293785881955210189091362814528852101364869094984385470835718765570790741698437934310876035403776959688767785687454121294976884872912255291594513706894679366050532970304703805625229267989138233766691936065348526463213206842304296902525652768149431940861281503773612269638566725558348699687106933809171151715163365115194856378464549896550228067650318181974859470719672315497198794039916266321669152467330760047202948610809226868699776862336504097096553111814106246232109565398370192540854038576083514596837013397509311986480268302178666130933666968142127550187585306258818437149525673858474681387180802830128762719963440430782176523683711575526767330036080067436140032682316310515450165397483407420242421921028847560093936593705836903358023341561018277718798621781280556066055017738014588570142301786723877321791011838409429299813910603365762411146345603900013935896805168585116917990523747727488070743814833873233211463466582881028087616191501750496150900535761222342730126254692669243869740003727083384012874611839932906936995422154874606446783991685338926770291586838842587896382939374416384760290884489003279751415734473390458362538414724980758422703744084670612631449146421712739400648070333812298564516022178377732025537356854517595554995006258800275198665496129104508168287417202287919897505664033535806179528202352973759897111872382866474566427421845192725680929944954909010751921114146984084793354325453535382584483835798288167603914193949005328165479373320086584035203193480417632932050306613421846254808850944122035892613630001747577684385929061073989707662185714248683741504437524648381069760291183127475190572743465210299564080285970619982172365109390296015998126545537021266684621069736615958920999452360669756034175818275848401282878947113290803048685464515550846464571269865158020408624480620670520419461340550338258536533443526375681375867926801872748962436976325315981572146232985292670678118159480469433193905267586605804693171295098461758247485564846239756022987435524374138487354598529762154041426815706138662415681020785383843511581476830422604879005020830050790659785528328364826993949020242049915253402419080296356151947491928781842233209701544537375519197338707389301901240847763616701637695835755871623592674960854758409857059959896507343503311318978012516106692645003709995470273260023420150199234487072756172057674635357162543422234585545278366293594956340734761549789096650049219817307834415097709893405577881724400525528294871543112551898347885332718365724302176995732710830022088646471028617138785158938557470319923089665796961652707779807762443976628850995964779283716362491653462528363724892028418023667253739872131223720875795365557495624639298830908194249379194517134440912080326536355164509039887412345182468703792521580550005902450007119535501426179592095767675624732425156391561022118746507706433423661447685062584017028157746495475221323623917745295496160882024180199332680211136720665364962872585040406327451975811117997134881072605761038921026028455607424743721992740439308349901333851230405849278897483564470127805995025451191346556689243473862456587187757598648846111085675570204402823759040021871101852536839972929133726958864655474383998371786746817232621298095246843769733359421926990249363028862459376326363088476834812201755772205420116822271174216780791266818742843292826472841128402029489071202442976229770239149165958838184229388221106434058957387818830822462192706053458737439345396819780385854429643990433639594468098691048915284980882579983656959827862224025839508436738271998167502505408787764820931332192984832442781095750619797981527932430237327837974133941910679768255190202194242065298433573887972694865597863916186411873607821761113524000302647866791255263968367401503997831107439617526462930543583738957988059447465141085774890471725346163959924754963840840027006472800609745687108734120597535356005918602586965923653225858991518809951486673186768253431999918708554375454908935245941351797746387675655430506339635439525844892495635282915476882766228354354595055470914350092414138541134631406002855196139279460467218376795720195535308842907970407007816704155508290604986698324991335276815452732045085109276674993468853713649286618886282628016178372806987881348295947007918088564149963953127669241842650670521034405197172190367209656618224537131637722080672874341266245111545894005044233683697112750677622487761932544576373872192037608085415379634633782268222997769721181692925236911352076300092807126250322093562701909984090898464073705654952955892801085416974987223986804895533235427338879039127007894110357199707440910541196783407691573016974415707235078668854191272881473903990572372217539994888343508583394784052932264397083879080622029063253183663310393220549426741797648807435170092420180007812056408904674903455110193460085169411150834244127146256358908159090416912069359137052972308838967689946471888011035373503087977037845308776794209606691529626691008002129223378896238473237883356510056322272211499180972369395074777287349119805773200805183973374285013034815434576385171879388530807738579821485384884413249424010105786140913248249654815382920394243841449447405149503996192691684114036182238437686906964782137277343281285947779434957966272391423851369473546310554498473026207244226378446336848310350387105590882508733516738239758536459317252763459940757944970842047076112267756431153989415555688994496745045671453438672254919082077099336006294293030498438847927329484829607852886286894436629251630094945043403874287499927211145333849006033263006077664837824378392092215762064661266427650544538522605417624323911715220427872899936176430142562058936917979072178432348600430650277803155494172556043163502277719536456082944826868542616105470700287091246304070014366592689332217407228152730987802869395494430227813471978721092000475742462275243026063646672320372586168786951212423450960880543610803205421246560544996296546227519043617323372593167285194479559613678122283862677715382468964169971117966154173176562263239864648576680383689118482838395084359351458332160574727694673766991194872847574340798627603740095046468323382948089498827639377769645084360289069973501464088560190146226234785224356909956350356164597403099856017252257099102454637906593214647356384309600266535912654736204208406486657084833218653044544637820817266532500842455156883642716201969211583322134197578545241870491358167685640849056333438723331013684699920175566448482595254414668485993640302082367558701448318444175997647145319889860779860620519601730890630254828810707200079304330090864455942065694347881928246088268022077862956015196320680962321894630933552513039353401301517759394077373186434746711548892857235457284222006512511658370036161025650436018728383838170237174644268535080873407260518282893405759576064882354469270065826428006052406448222250507973535115691543358756072958695526586036231000179236108039290142785363126332049865406741454726698685738905797698804241066450097269168668702178121829906290973679120315114716830819918456945048636241139752478311047032515859972444629111037243973437083663177846594797062794987078276803692349709487121291765788153363842426855806738162785434807165904514743276350557890548937879049014000476627885180826022533127314796148900643088361804035772606120271580203210085675717383626252981345473263120396490491040679742037534801955890223267328167155856391780402604059498468154087616611848154246557050395691429286307822475599227243516638100537941809694964054294025566708420496808379378249914780547059837883251420361576056621951403478079292107101541453208069827646268145257545161203798050961890894552756687808018929268760661911491459854232478708317012435562183504833352099923456360274176814298261604269769977305849582550510932974010128295808078802158222419554955097988403817788106921697400878031357185895726136045125248772396364291245587389952284063415682799509422843798635893928810048039661278033200604616640257147782406442363580629803318913137694187628533182825622038400691987953961261438777261841186605167109264980016722685324956358737676795787612211408836688408123271805486106617861118456026970522488180629357947895919217426360822406724868626304753929057912323115040635095731781534889032657670876443305679827540471877246703796716810839214750156727383031470807670853556526601840029621944733991616992225445159054159574712996494918940382559610002009447475602468964609490913103727234814055153347831860484412638674042125922651606178928490727982000829630398406481468768331649648032835919281062167654135233460285492414822837825487672147800937883331051551177986472961864566063095131165727770528058361770835330169872559588957322883293981898795018611112621799010550420017642993658120445786084007843535763363003223551365416479094926140673149976574661059974682651979549966717604918111523756907670987512229318377058563489507069941789432600061816961098843827811881050427707779502914923886934486259817009441070009181810283965713662344183820981264173349603884576721727693360767451088116596898379765661280664616002012876734450888239403688915598761278142675701178457048604824266846498978579699420731744379463017253582971378033453736674182127799693488715233096376617803725565292000871255734772772444503314372579113710052352485156769900774320645572768516770482958390935435174077823563908608942808398557317713308452456422185626834990226858933791308140054167566268731325640100209601576825510130144586682487198240768721175418044182318962929723585644257010568531818300697929169023392806598010482503085338413052030176333771688093801510429917578537737393088723852478504104236288451447624139322592786838934959143964280005238704798324446531717753620897494573798402995537237661549279455238068236587267809127620473204868068443244396620871171872747618614128612585468886314787778565531883441059751588092281881637678942071630331762963150911756711104556989861221718793005846354139019302748846676812379219249158574659186382091189063524645952565980203724197284185873163132497184859652202313820827354825284672544784277053093802227687332610374561493355570165667168080849710991961083343413053680448036235538089005386145285926479914944468275580772621601770124615409440621790720264171019693673857030828191535336456213741419075302062546759083999116192758739916767268868725278942727636754252811796680497456101732358920907946497229610476846573174078532926334753312835873838106617040307094471133389879677556733098465260322906372226744486481586669837939389272398686797811002537664639899638747194405722249992601563068905212818876170335598344673840069034596227014959763928972723567565589916839923413484288505434165750052974491788406233442313982541643787806985468969917812869393892570021139254972276559701118870778591330470998837615832023770209622302704575004851971411449695975858318706334034521073450954018266954398916027030187601404458418607003868449592999703661198818283255405181866641322206944493341351785171989096706130445179667442858629221282106072558052921691131542969769763897449414099018351676220430187334115086215845386569391893692587382022489412134970171533976444114610571751742364491874423813431779628071661563207610478210342012081064758871696147264445197385795646540400803862456068691902846205155144910663120935477943572755996398167582649335431483461350939752099939933464791033479097941478038852638719630272180405759436986678619157720522168766762856606504818193491113459588900204272015044482373399440791389483573562858684779219904683899227557798894973228216437039563585217534605017349729613720134621706190876762273042818675900448449273243825718933382695817608947011081879394503929029178443366182623597588271443730136832081257144791235494700917018341311107156317156653781396411697163782393775591726815399355091980755875440611322505323636623973840431713602742385462985241847938041005239041875204893728033165874839735593242211162520761601378044484773337712026740878914886181331727341831964237867948077464472240905124828912586069407036129555459404080956254678082368664104436081345682596820905225329429496122137144915924871001633121599575327751984749610598552926858510086235106185347938796833774950288550678192845728528927184540431098895843210746145064046229470862117429538667066062648458073743063154555653128449378128454543692423630538477011339806102683038583099501205386345250531154135802764065075863306299948775542570180051614199402642951680794096964083086049987527074652293693006132837887093831125911355093591418102386051945558462727320977742854137821144361547023690387514741579924294136253517989752448523572373401750044901962766037945901594351364805062391195566036943626177031923508843585068050348026122661086412661849901266128440862215727309353769021540398027485519564843288476575972262291644229212371488906276852783268527552369379812771278436502110932498455745756875224418425692306838139804851835148491610830658911675010173265872819930440479497400047756805217853258026297038995504099717544511254222060868710995341856933454269408246141669621221169442206502144664597033351511003336437429241352103822442172765605544205166155769274965673950374277348268927792102346793696537589423533064083842339532620780970825480134097661733003036950921950143178170668252028067536772394910796803155782550221363407592233210227262363479496422474564260804651731198938469989609428152473866630148078087499383680822343604642860933057684722110172327785186745638542805411740821591969379374561143665682045252863614862116563006681380494418023207216347717871294638444598406844734711844683888713243295185226264176517782621082545965331054938089565517436736057663076738428108036933815848722619732038267598260038907654309345147126923347823250675283779503312676035713218818257112495459547834746817479705559584139578204017917077957831218329458966518357498120788483587453978184361843078822512578341538036923519727547941382523123525811902703632301925603578433408442442550869693136797610082723764108652193520910015034871314894152366008843661960555551682895335135287227130095937261195295913304988608827197610984717176778856148259332963426795070774102922034109653108851284031147896083932031475463512693573789707193198650936154985804887446520746764226077718631716788040350727486963074129204088466446699503116785710400435503038337744251954750966162015088949036368795455756176808470691149319887246709186611285608688780501573834195020248536365121664693656592157868456127982352299246329625170863120399926086030137362720393701691655088736313693104300767118002032793037201218252574491934984892592758872332043183966249695368850079735860108334385864712841026347233235342133548119293180244714178962216173902700099445444891582271860772349280089290027476618971015283692812960379179666263234606424446377196361154051432148851591399244876315902213127540137780915120235024346216999317187631933803676003308782975127506870027131358538319420966231735437567664305069256758197364792429576907384519285411490685462343274454353350265036201051285141246791159433902645593811450665756836209932351950786959484405217534068718449296259336571361714232855797445471815437876307082953525909903118288682142326352331261746698258885569257961417927205287416937471641362722517775330830155283767279261295838978874404937164766059383861700501657499389032411066233711299723665678992404496565883640840481772013434365451091638343724785335965356398223726358486190904004224822104559763595809869873627843137933691428140748451283902902443639815587664397377465862024991962681928854427266787887172474053938878525113701251289222382449325856368993779052837138650157489015059406016966213138759285592880156214781578266401963866454689338114224133528943121654126758276230444825203220956598767973751669223787053137915149527602573850765931892668150415651808145557659223228332439094252876671364160628038825465006582793331333828722539129584666253470956757178058451141974432244081961354210773304027517874712283617449053033283498641329435281699610896549596701267632759499694117738170575323415116598476016339278540251493622243030673860777256697354715849898779892005279239280434892854713534242293497004681029716242943436203292505028515556769679322892063011810140981220960204569122143752196220098553035839424201769647693485022485705953794443559897999936042537762630651705172598409866479489893748569119945415444676604267787198852731156934771076771147164158550786069575408467057227291298762134710818839731588665696077842305578581214793335806043274895399473847539515096832090023007503616567560073920197423998228659401018298217320169797757186976447893450285966132829472537017543326226071749216147669185528167056499435923839613292462513983884925024597077376962006788741264860120465348283833004169782141979787888771051290747833605866547673757752290095504805480873763146432865305887999395821851160369536792491480725658127131836713494038757434763251539827242243792676049365553706072472657911687378948802631942983827929437869215996189118984299615632824347133674416014551276028757723405043775091791375432447881269356882061597916273603977767652157849646872983459904364188453734361090472771873636266924431281512590477628632042119086619953411676600233050683641264852593175900028320062643019039519794743476486515230775825032041897743825585283397207987632119619255511465916174999939119711417516750325078723449472563619483710746273269502771383375596308024445961459678194196397106062460495384506297499426164438585797629486251772963193784589690321285126177124109600449240603524862129114897489629664789711930577903777204267929135756968527768339954362692190161466166815231517278524409516815130203178942608074352701138819950000756399057192766311330594646684107564430638209455706593868415602513879516080434336317948372616339342262811607037782000437130567354675733942085880041395989560278137208730133684190427659519337735239829515971676144108623332536863899286223332275680141411888277797666855428300787471278646543328173799094043748500345064762044937145697794267386438274391308514489015060475154106204699747315958792033177507091455811099655950977121876212085550545129329173794535405890613014668438755325637435122992132336484110198457878434264735198709231867351154139218453394044381268816818743179122456163035778833707107163049890181979756776951011990061260332775279382755737487998465055049903676420578744354200245063256200091623806019641138659818938503502258173840352775277507694862509853138473245965136734949766204358617982776437432128071774382350117758040179500583863307443037147901943262420474763603908381977610513290187936821463587697888829784224707645142456619856830885310354361346705444319220818155521976320312478184958664267334109675698612627575944368597071749785725001487504203567872260562838668334995621462725574838816179508417091713309110284160045750358231528458395398891230529858514219199264524316853916015452471305302455874977348595185790449614250162184639175843142463558006653444590729478242938385211345649856342134850722915486982112809814449769569140158437393757776108766279869927743068113794761356354413454229106295929611360458995406028010989640397039821094209783356163818076367931694113782215335259845634816851326009783504510862483830022723778536990011185447367648907925924426796771233067156629904927695135210448388905344710132452142228842223991421153098331047784585062230926913848637153311914305023918227545198290621794713440362222401713271020863639446538478411833931850370425051838461349752885199413556338251175988562774833610792523064918293593150054366478460318193951717427157241408721926312153434788487944894154572032089806133640031497847424586059029773927037992501817784240214384661669324263299272348325910257108403098369734214866121819369952438624849955076619557038519864433494458617769383422227383792037513098631953221066474153450835559606796174140364583206750905087589376223097991576385387606082929445163175882314005412315869765268662352976486814646802394985616323915902771403389128112616539205857576458801678057932181321270686239818643763525497959968679584970746264868918985348051214383705141295380700107075939471570178913163119192254909093328547092382650251012893497231458305199871228361766279571469803175435955674093045190836826671209805556108210732549640743762619639883201662280234793944578935276066986688013350600031543535959871948579362414934812824052291701927683136346598031527519807495554976377201135419747374532988237767956657779486577549179889634611905300269392709172392979631454016924757186127257233207241394070854217086315294849035053295339095519827318093944476430143419659180200158474010515470344849457043127642962033381141266314431206370889963395040773796537262068310522328931389109456802621504448238076273712028973507405628427221091474786635701572130245006215032374242725044118922296767796197439098633030382308892869578185579934407871706646409360228753450245965944633496033542618108757873275261311923497251258118780539258180745821342923930432656240148376093509335571153983730258347184669774315241643966729933814975376395104721039492238811095831892101554699673852001222509070793136891858461700791975382105143237052191868836357303549444631153794169978047319773007792608665672301588648026252393540598574737438390082272209495514814663589901310682081064794567468564800034649888913161711980112884801848378169064517987257352774235937562172886682947136751536683836195842787480145016508866910010158026330443518351348448760608811371784182073207764742333373125597277944217337854896256508052963270810476927154420358154086367221408436013823844064475521394623478458185104495249655384182105319932600205006638478230284312521911034133967072678211264556997554135785301958471797553916782038270191619759290260229899982105187166896270153001180539822652310576953975982030838229019605245962290169689943822757806796663482347590968081196110498152887184579993531256227662255418400360210839336569830525714734830255692511178097065428405142687724884701929577883504627741294359230322418728454776565257864196282043580414816164041724508486119410224625216635353511100018983084182252490123351080060804190182401902710063435881480998221773151043961271494152811541814612703972611840505849935425532696126286078023366462374931008186450762050802817609468173894256649157921985179356335800698471618785623818291008860120942860963063764840334070734007821676398353942304264373320523553944170235493374550138172893186401165976706724656968947514182724966012303218295050446033744767404174001505562995930237968330462169970989016577873658201833205771027441987013958119354804595415129564054305752130437564541459974832396124426241050192668601094741380099742382634276757517731450932749716485675847673321015622634564507868355861613480101880713435114036108227179220758236688159265412266500367967591132623304880389263914276035074045532683859718236875267670945686712115203006160383852445098818752826480271578525803400976143379739897459203027302498388534192725991889337615178576083733423838943232541781656001619447207529553888293529989900288392610253170908693382590860051798549407056851418516593114724258200712748311135058483717891974618803607696310646739370342603750912693864885172621333666771254325518679686570253489996087131726946337062872169112294397816927421940730175818969636234347763094859817079105769191332564074482766779403768932706908448685905596903641897095675888913323318114750088381552340011148457787328220889675953581132618225354240506761433780932980480680609707155633273137591416459570930426204935096523463559536703729436921194296893055696626836569293492946280378530879635024880832955829256690708941704715557060342814011619268303968989306846224308926110196697511580676970420604646537258812882718492092445411858501372759360340978805408027818933595165059449125654167400900939783843610874583365608483903949204353739102977747408318720097708110587348777038227988754728824638327825787140923500331528778891638938169421568326891881336724553710992869398123234556523762590698258858695781998503074507909169490493318712766720228633662237674071795829235547547713906168624350695264030770208811679184884829027604718673503944989246498657731050499216736634385304051610063476635162731252716561088713681204111068166997518756955842453561275467898206742592152018276558822153443238119280451203405843263514883724256179198654642761220918182842490714113064861563221100711150351736220537192337700094773378776733492916772933491547666008516443445398688313304764379135304914112508017858964065302295815878140962422102875340942717079059564222156240197719215080196345668660646897962191781947608621169025646353016875476017950523997828063774458164238056096411425330939477611225597701431191869919639541301593728119697076371785839179242395285497297324304617554690302149220456310895244751728519132704368480978789484992240470257620543854182671419402745172878436288549153667095833115644167862804301831132289247397627778831249806564761488505479745964114378709292508643864792135369300578907949099568868039844461759547050978339216438729682999762049169756669951212598572907464004152395314990307337263590230060633342876623563628254783404445556765580700119139858223325657862897275134949014062591976699225512636355543021742061646603475379819457839847559300641653931822366907295205963210515410968573769314003011764102655473875243018082257974962633192356585108013471070273525498979020826747392942864557259729814062897001449792150677026170297762229730925609566159179048270190660068248780050669626466770847219388995112038659155701238112568227274542765982842046106677005736938974655523570929685747518115636734577943776070665273361644020734904918294044292518172611327078665473042524438098585750815128110861718048820635596956030145581270613395954877010274678452043301474576823337498180780480080310241354527452629435216551804158252353826552794329470919821688262746438269268889997568004729443466607945350999852545658793780499713921680652778476206287756227279851132277618417215423092059425707564729037150609595002620146799089383106804007811395235383542228573650760328681636850221119033999177735925038345122865338610933391163801429574733205765056749992975218605464567083761378245322899694187422052919954315940283352767295808558932679948046096197170839017297933077915111938954548793673398788000498175493714737370415357288752567236018229792981301828195454173372988641998938930027312123974121010910813552814030166593435401234684895937983383594372147106211243800526770449551499788516064346284846589025656565324362806214643811166227770995256420468574320754945178548665844828568491818398547258916757668230012385994829852832105707971955162436891295497909039366484181185944237696807192607317194608249062956562052848345059280793030544049506368222903949013689172531939078805291578576509169870723961361520226203453733051816357438895045104527882473753176982687912543679730344340177703768267185298554916763585220868582553564637986541138163078960739577502065605457987402971769110800040911422982418814130969321177556062052252332579206050549247866511866547325964542959595104901563711168161106655509495752721576369041588202314578637913261541266475689729936651476296100016206390428903370036224915372865582390970606447341138143590873248756547382696354028426008921433594981820052510527705753241187298476519968692847692766490192724904914619238421292404408155796887561344490405516459445465247413992776700189288427922617206285337997748610767569585198663754102585407259165030050093592242722237586062239124925913040266727101627434152317350353616878500136710869127581177753712931429421705325852198836467558502571450005012700994609554171901814387137207952289992332467664991426932851323936262008958285532567736486420837124133863932811508180026697978848341313351939460224445673644510098198404205201808264842354696483771376665723189261115232538627323261408036101680537283117313520827418424703297601013942428513214632394132269106699786915764924050181144979822454594175813601321857442567580722707653491498547030005129190454936525222402759917828001864149707074801668794420745911905035037993973457166868887124238069107842555189334844650984186684352003503641319043032143171199986771262837860105198502282555401975889325024102048155489117828578471810586001469628122329619075516106660253203938974312925543520037188568540551172203321048730816132905884926648337598738968085963831446965866401461467387669534632039370069564968999853942757700037527580520421870411350776576527297070127952777679219397182594369526520649654221178857275144473456384001256639325382878915302684582342793686469731165453335332032731056292644865581261950096496105938090278357358546010880473134276059369932131399747795556806214952821682644231332128831294606005427199661756763781095388211169054077348888920895890874630972272863621161891518917816856096407819868627911669516297312930509567482128452037360521631957973788839493896204189066202227334189946770767793876397073888692806665410202783250296389438971255071095166340621212109351403396107994474771179935631573107983615900241615327717470987730534107680623007388430400608907450770983007024532338680115516541474611004965178516127774685166256292384892908848161814687566253979479080994121679959145671826409695928395280716733048809317906080866410467261551213510466422460359565307902762486916398170791869665641726806268985496903934983504760374127724847832153284504938703337501479603361926934992485103456185111081660623562683609194774767594224092469850820646944510977961305056915693012740892204286308070985928996454583587667661867091079304865213335513674576225351145556542711102158100813914475783229570970269008440351329670542824462194037705182363123238355679208362352690219764987493314935419441936902695748910738393452709713022467493291735742455382884599327522663653783171757252217503622914398189932430772036430015997422591020966145576141780212090539282938393973214396102743484968578274156307972800334130051467760144130290784136064297736280802230178218571508382081725237105543389667665815607215743174430722334133725500078641140815171696798405901451522117878721272749468923635850434885044221614525704336079609016732427924507035020213201584350129679857927651591839477943193408446428161958342781422946641158141986844579989178379971325191579652177694974739016205853754466254820445759356972385255850527484655407648528239581306645198324039346160725112440101599577927059384556100224546278520024361522869795350289762534033626843597388878813490435191286003676845417730998814153837937283629464776890622656169372957096893015970833323361814078288742282013720666398162547824320895365073293070236419021048250965426261855001814181592040818403733624725522829910625327853699587182834441847670446190613023378422159635687115850010218980115863497892000371055191152092031874295468949686937323296737174502459355544116952713683258805159073570309986388090685437472622771181629926900881117265739584795733632080756290042618973884994422845347017089790067145720447949487909148239850503529022889900133006265205770324673984404982641772318920980330172611174015691805298735969139507399881425532627210847340278234542017934598925658593074458555120721179530547077715286316062536323893643693738311680971944352526928159982310201571799851236840905864550300233990289899798664740969804777747482505671503294696609876440536517602984864213210109638247630396012815136025022404898971313866122686994387109600713702907827420041881650818995924372791998553227929269339935016913376681155011647047255262102946376499298683211313315587053915023679184187110952852803068652441602868059582075014419409428911387514434028081879214267911782718026703363968237703153426443962308433734064624629466865596996017042475157499739315619510222091090525786345401555053695826818599095647992175442116466218368702291245364884934377594761537313759795209233297237522853006889505081741596064406014227641206821942766002348997549540846768447268861143737930876817382168327470943906300707084685197084378213774518477528338304827037129359275079137393412667438741337631885344205728348903491374253266615728071018040492774991528056618073701312911475900137706797504369565465091755072682043699315309329545827459785026585281751470657701015680483059573596039527833245646356168795989555406975908687159776924998189776879542898548192015897549579994082270194499271965446257031392693108902790181859285182791916098190260405418483512098628382154060305984937359078148839901024903286061039234232784703168888180136205143709868695954030660435963329867405221062612150466321918925799604314028462871173582446846715525057141772647539404972814529973381629428394691678702644339498176179672286482270121861612184407624455603635706547272394927277638072016135442757096617731187150003885286905113375416203183641706126577553594281558397966559422040058531482439689037141115748342535563475250755653120488201486262938189223379446730902418367260321823531838594901099458283372059470410305907240505515097436825023980522569830625222104577240475132098540409565078202064826876530471768535551154677683894660936960894361921120724909129240347668954070690245890365407021655932462134062170924372245687205274534590488645552075145365186956894097465593541200351366879785692589698042605023532094808925546987235570094395761971676578666155758145560910832301808927378575175818064848497565019136238210761257464456189141208649885263616471706665027625686327610878236446409169839966220949056027142138825113220773474382855644371154485205867178384104894831504021504298282805229349607200036738235903087175844324049973119261339628302975823525425170876634026658645420689236832469418078398325874976075620516122040990953911736221140099344659330023690752937684152532879806741402470508152296884104155679815754246375094007361296041674122183086199264939250123473676597442562985077588126354843738997576084555585222439287938615372299579501106015502433979624535664588115111282932359716717763192827760944033148755356409997438928806603874998257557993359920941804840182634587665623842879872737483385768424538911219781414398342294352546174444541292807010071309849387875947355449874840984099947268242970992352043523872486063909823648248055364953761397553423819905905202106668447529903339143065253826427280402129279636826025441762592427200405909602873542248403301531487242349581674695489392212275798005944882167181463891119616661294420218863610879470515405781640234516863872014204711121325217532626294375906663136328678842412836587072677549908707956660122468958625751002720619168121104333232077480727254115122964220206428246142018635286158354825239010835035041893921689194041698325525562523029618690412448324848062909961010608274700170461892569066202412700378295110405027186457501886248808686222892296403104781289539018371102239289041955772802642151915891941411277167446748965587325127224356000593088702763428302475268880489912891999735014827872885538861777126111769745743038633768729395526262038950948602572153324999724519501396056166976488934910249627568816809900080014453651286792233684253259762574394227326359563909218176398495635158623861976030429175505446238997853075961623938898937359850870799791488002540258232766218528410489186368230202819867729734127993566620377816268019041153676448062460398910440530172855342521780053634734942974215446041555282105678753889738881283729121826374446076908104967365432581229532377262514670166196422579340114764411412877922589913541620625401135658809457652364445156151652349950553424005689283761450521232548174739524240345412293783774723367618718325220823831864776577017977070890337759450566569472971287535435387402583820085495223983991559031853687629868712212838726656193941335603522187644441624398572892558607831987823729819921444439663788047498802008380073342494674239496938595009463343589145904471326200346600850142563123895561156063827809861894243743318024963492986476029822731407178067471683049157724417830331409854279784305884304986410720515260222515880882618838255083322484935885685733049293999069323109209749789126048021909551326464512002322056996456627917296933722627938694650054504700239388769574775631992112809314031022118159758451327667131754143727851543575366975846424976469861400797886160774511432515877695606852189414187120877911717775381267582071594758800207910128043905515103841810400075125427937553329589282682259616646480789569339998377697018378845398805348364154919625170853022515432083778984763230400207002554980057079489326871014893400517278664144711393229048593067550546655062582195109401675781884825311807696010582066719634622056524693477442417444939113250468765800014651269962258499172790909717311334427771057133056348273868514926452726492065308320255986776422250127898184352494281550796720058433276263664921413405594638765101588989939628881626942068937306376278403415413705288902323444354988012283993375373219599815843695941958110569341856145665336435887209848460570110366015363565048736339624501351803393750151607676886563668773997236086892405212090573677179176851337946832810443842045519423921372340769942971416676631624564635024929013848006839156161256528131826678905587546958193773114559384188472953691736315908116027808023455742992938681729454361436484836894191441520093432038734403729974009936813266339896188567262116814369587144907615196057813581311416258283878055419531768086611588551785261966407418842445772481836284801575464283587424910683664761476115970074127151965866193398284813462544687532891873749972679048320191211626004493171373268517540011667316916435437009108435339995886524323227419803267204372308021277244807638271123607144948722071151774479636939075055147169490518385632114848761570354589242434417027796918223521610761890400510018143058217925297492946711507678498533866729768904806788817588913529627788954573073417208474925588310462878670261475140190878484000996394535257614939668724324878160590064905176913139012595949146705488277931081280953536412434771266101003033825943430582615403126634702670290621315294768085279264252151781562078046829816036373431267394294763140446546173227422118660909458104279023890694713662756503788465999272581475997301075131729730524109789043188997990967220684194887372057810339108037624374369458226881436698253203636868239337294467451440742497606610420315059980648891706950238797742978443413372191337091403034263041003016756286010227534551428872945647672942868670767688997750707135582850597570906474610701340998071159192347084155595527730159522093437117858087780275275859716354058210849006199773124042239955765340784347214044189412874301374156528106685234731786650461924177411374369015772398598791792248290630922663231421984186534257486820073709303741261620977376310276000398072842208726533196768246718658434114333494176786419914304537804847837986138312257368273056890829992527564676295668540919047983326065272280683743614310575893723382972814078572776205921804067520917363401086077833478152429745389935373956378476289540956899742813799331899464332810426590706947389962113347134153553390572314145831928777152337643344144332081804916411776655530316669119723849785810801831812681323662870270465872680399455500270413953683379255320679635823854188344131509131779858734562481025004444905957327807176505105737519535044649618291501093308559653750196590980378757730772540627447542500381474691105252662464865114262384460486882157293967516553536499505784066934172701075034940440093618309146763237892464064104561347653050020247245562986095614766992977730417761806992489099957725499224633665149820880568209164531265323279806661849170428808877124342329026151696765369945417975199872977074005203139694176688442364833762321753755394626834135219342808040864232422946117088760835883698793123200843385033793396377153882087053504107628133481720864097596975724405565565619084348346070222297653990312392424074320041348473229938911029652302420925601204642728996619165149807622932214410241198458244580205260656929874738709715382394224985486877853293316402176938051786629173161383774469516088823307920575661453624440066631335041880089379222097615444921563749554925031638339088596195353235932674954916788056232894952099143168842354880725991719500814947694569308024183982565222003226262438034002832394703844021185272993011899649693080493226189564128933149186962623417101106226453596097400723698259416634847155840219448559167273728107284185595252228409863735264699785283338402983095136219485597829552302912544718228356456203448217752918164108387368086067002471601131466463447874473343116367860421512409696150771167533194694018405452477293959864730736324256704321540910982851789696663279285954349689236436251096676480901202043718314618779860216014014199795151613471980177773073866180269689020994505434369021863942148478370926050748589803026265935215663219192172330454792713693516538242127930626789408280276121851155095516994828294681973595018131246306471116183877336529219123890399806671504490732018955860373109401600466212134666283240788850916802218057611904334034903389408237024424097578248423265281782860444667767803402870248941292298924254656971466172396360774195234956764792262742272563553226833298334086306365770773253087207174427923617054293491792573038197367632293713961247007333836511884898329835869396183430608744989464675693386936557726846664266677706100508001191083461798323363083513305671582488304101213219210583713021360891328300598207129374530066292477019011403271703666710884039268410862419483060807950274391326461869115663244012938859219366639588942130468049515300426261194066135669062747289400321610429601675521853297542793596163511004501064671934320490532809039232459709224800194270847030796219626003026274279699389047019183213182476131231240210514396756308950638384530022314559406001084934718662905200823416540940168442055994366827284545868430538155776971600336385495788421040793051875819030277875863903722536404958537074336862398344114074713129118561959585399416311133051162355773603550630192472039111999573595162484794964469287340580712804230888516823348208338244168473115785265422847398622461609275510524150205112542833465545805093464337923671372586440892042996454469105043075266909450846256455364448489086610975990515810671594082673891488443551944593708616715717692656807255881902469255239254721952621532928807674134771758421407697554937321374695966229018209899954679285899917566402135178633238147526331091246985482566810925430478760050459027871492032575755602186073240157773707421460185327759307167743540921395987619180543167870299726635956139286230670458526110040313498475253669263541975126318731609965661507981229982114852155537475519712675962947103878989349932358593297499350547467982520206530522668692754725544309929644554049883996594697060910027833860971003408441073445053485300791009115419945740772265513392443629710328952456951627458968902898603566298808586617618438681105858957642278520395286163495741113445724880107537684569299822223499811043230457626939035927461853621289767552214460726078889727143048854560652864689848302519869131383212471610729289238356187608754647933589044114589914735629526481486848580517455292092238630490867543532016806444802259562175111984634038112778655204279963304461609149350126523927801084426576741341871392306675340783858987605378957040827938222657545183532634663591026182637004639580240506228696444769111991282705587972274646769974576809699459530799644392985619057154267047498188893991828444048144754130630666687570835835653367324187609829500817122535950290471796035159935734502720290532556398160267690882583396660588415597993289554963502438636869033356810589827930134899485058431090054019170584224443582249451300107810136160432562630612136224136819368983499927560576137449540340541069056940711779949048256607611710456966647491506626040536106732185411633353601532449453096028605230972341992838465243623809394091836822902684838535218417773617848493882873677160994737073263644210174891770838518213950017087208830519743839353678169139576739725402862852298454158912211289016092951093741420732099407824040824804288193422623881645743282201519384962979786278803802933665468849504364315125913491824158278499595685344129701829118199152719511738231938366159355398046093061880307010060952893704948645029908046938546659519609703780388935116127116420942956883041414726238395266527033314403127702533440577341670705946424106958923096368868838040006572537744475185005072073425324447226328661569629811168236550992218474904247868698859427803264882544220762789324457667956348565194853000153256318245299269990223617343615297818986708969820239318609862725034956362019032920888273308946772185129890968667181229670932896733360715456657811530655741243995098376974898682929453851380217136832598453835961294537820787738054553336492821604987901755925674029971212487987185688567770310936668393853751123647518156417306114532142574445588676013844636104952727752985192993492249886940656127533714019708578656586896531066874973601757743807398640714463442536776770302933187426380546219650331764810082093245380934521864374075126835635257411653014125133276463111283351634699991489406157831137945946454361766038728734313750516360758718043406281269319174692239276115777928909589394964276803871359185860310202725747828026204195078189210009677698469437484701521589141610630966932034151772842972838806695383006163015866230662596681699453080645670703226270790034095492933260840813559749918839353379528141348048290435404686777762076082977055922644798209027219751129502299659694668973342997788219999790820490014900352380537913160296799836194539347252794405386133298420509383166667058521889782727898457897690820330624873579008175718886037870531148722256072680005321601360366179919303061849625359090641425745529420036905093597681594496616815127775635656791810810344246494847481105365622745037610517734193613951872077841237414312033207308286988511305075503132219932155296793023700325832289435890772973635742454237817863373825911689558884944922980693526658143950850818787986333890066050435048422868338895125067923390972615484761957878791323728450063028258125935375868248100555210240034237750699660665523490366161216300460292663463672442595499321000069144256429497908132187550377357093151509644594111193379258148399649400350745993141906319556267076695438555179506954582121162734868560797756691347239028797945502034735716617430016158311540948864745273941436322439112038399078891014360740804608585685711028409416176155569395241986377517606112392950849653038467136002035745919533312450896802107946259073264849222167945740179128125812329635011133094725700129209459229170394987631657056350292660668160832411110762955651652248181336195208545927341292856345256718505986296465100940138949472252236904314361210062842106650212305871540169152191765735697009209948715625523888870817315694427527961418135812201644194602713243183387396206718092534597341270018139617098787955570775644285003264598513064364215719623053403232194344513645816333475872352503966230682765188974824197232143223883353718003973181422925509325150810480970600344323489743424445555630752083501317441989335904196597660931953298475408151669982110342125915572681179012166675934364811812641398357647267131036902734819752381856957037225184615807256864915528866526147706793501537287424045838042286288661985846567748060682053894767809111145068590860368027096663438837288011890967015996571328163464548657437173671007327728951296264769939674502815379314391793432405852061285742346616328862758160091708159366403963052153561317357033882662917206644095866739433521522643146389873935140277638292221302543582373083555023738020871012281513285397090734890558300041440812242383246646217816321762982539790364660867170618606021068566339300798502865454901914045865378464867477795637631069814110950089375284761162647218254061485631181253295861273028904809413856732414675178451848299658523763673747360162822526494661823778236444668839959784871777168845414084739845336383669163428502812497612128517373700265634460139870819714327225767103090820782516856734199908691185400175553650678821688100970705142096247135515110710509184026908100691471728291823231314282677039148419689341982913423029525274787976914550305116172602119901759400887458011728071867830611789608933427008759478586262325001488343806300119117619031229562298251548745112339327218331938594589277379005788761132783507049793970168116236171171991913684333482029180525542060327350818054970084830331183301576815318322340850542869134159429597734125069002639913506467150157750404511118352816732272232116273053623093570318648182930689084436804582201958264765760009731131799266155728938672253552922696176333535764154792412007709562848351994446402365019841384501512790551301408389952187852037478393237129836926700483170331715597803937488988933776951226374040345862457978941229983803093196649911084995372098423448434879334144514570795862127271974866603486247262898880812153944250900482696613686432601750472765204558373182380396503991322291153322839011874999797386547507759078946212913443530690057307732153177210678809433755254418669506998764484798919933094526177239749727640777436260482425064134571245299878964248024271106747541785429043263482603433153350175154074875791696014662318542339770798085012155278835698616324190388943414261814004419786102098187046207441209178799612488278971056241576900940347890175727238394640963978290137235749103479001216818415224668737176178706236171528949839103878898734898378119414321146827094091188158539628134619297262454240786416157813739715152465967140435067071741075247330181314331988596665349428128742987027557043698453472454966851865826526464935338510264014514935779981603434158242226018480807235408896441854413769779080292166126876659493190636393007504452688162257009348776397947809436526235783493907918135252054274963503600848453216995067196542703736291450829381826701183258610220439397399244437009384874696508542650837532539528795580721252017076481430331726469387637399462877490250028708113441481031788766474520349468603991075541191570309106508442612151876988977774215252464807266436648286768148543484366701587050697104365663786771880657670038972757907966841444483794422228945763957266536459688802651950582600909280843303403996059664376198122385699874860960270104504128689592794875626377460746615519704756080409659904789674065940710786677286674115628372362682012674115932166041290721962931643264584977648668082439749132690136463980812403616510479823881615956568383456375170896043232330205987156714363093959559464023489413478028422487432920674318335257488503130939851714571620342670923386175712304521446084113787382417328871286173444374520042456917849871645973433435226681398988675795868135157244042290468207384451246860435738311117224860629796680450146670795165483968544511733214789417613296667985067094054857393927169344566885724502204877691137729345391154934560422775076766653619516253583648205198682029010350472825780609455943127147548306157091465873535283246908592687425666290747478129948125794449240631992117456626815428449436204917059970597841147656124001023976914724154485459641987050244689984275268335431240318943764711040782951923716559608669068870358287342409356025809487398846406292796666842050564487345127841388174913853896087207867136121359423941541053204372510943576941220715471061557623627345538931615069913647394741188122425279301804105477114597148476509144866963175397496283656364705287369643275742756075768571051579544643308572654862401953178056231461281634167683359469079982934990843295181535431665469416772322217960413385638124529865224404432849383983976575719033951092310505874891222778318809061234755187986659438858244616203159403446195721467934464344130893896222995993033681114710236198666260258294474833973881210663187851892366493728070777354263680518437363449341882868362209993736303382126053467830382773107566561743921272604929741481179813063057760887555834225447359694295736255722440703763653608210485981876596198623546440781177548616356138479887787574320279860851437665830768568682660170772302109599707852972089715490001196095906998542351998906413595343446334125343167484035710149169237090641033187396582549228405844597601424481178362314563527174025265369506071102906679034622655252006010772378607499581304020151752644209876205739712253283787948432627749761695048201160447385891669867639199804626793602102950955557490567006819974221122061571622448480532577119166525943360217170610974565692314460772239230237808297941517328055779134833045355211444437212260142195821428593148647099346007814521594979536961848476022598046713858268902090740889638229265266905757792172922396890737238470283257027900537561592190672099460311760471916052537648528209530851037247414608125579576604809171400832517174734537674929639309514270292897297755957420719395032664928291673771901051014259848334438947472222865577694707448869007785106927584920767067402927110616358429118520857122730393479192419775213292435632107432979637407871042053225768205800746946499034823279352493441498004961168326901419809521010643212224902950352841223803615399943884290166605563467976719885232029875570580771817354689945819345009852050255195189373689450810561098019721034749037354167375067972744490281979299982711972288392077670010959344571985215308446073609634834879813731176065813960088037738400668043046552526820528293248381370455474945548586769148854372940083225366313324353785071279511061965943671956385678336773460238299368205063179552634243245182176598289658676429452669726292673241518690682303123404304827000429923471530395755265273084718343971217869259138430794828065389648789892526332566610542472597597974903226714474350358968155657172021527954031888903302739455901860770769051122511680724904217211997282873085083973758323400612154327698434672740247835689330204807359686256457308061813784046869907697297453712545785931668491421783165645064972887785792818731618653062798959866148375793147594475782615354609143622908473131638437399944503417229199152186527328674640806777469474230369258746249846507340106479348019986080499923293717451974302601399571561160877880089676408263204176047591592059136347773697550442296872921707282487572521159053065975796200190829794528065408828249562920967455227879807293882331035774968563949204520573899154500808935066196774013191572460649796845655025723732425688686924671063865595291302992348600677903226123069877606798903785732325539925967668280415704912778399663468200734795174327377377734121960360162022414350105441692218122773168671968217108660212831270903434175163140985948368994355739415137030954815882968713772639619242464734868326025886034721826859178241183852371491948431414074227727713612856562819116817732533868023242771424143701214581343527590191854905156028719708942525630446580995285428997836887094768661264124917756994804390732380048265230618838618075414023725434512262198708950160584590452096662701989965767516339386998991171818461651245353087052017385575915378006174328782487502706369868039062649945453939958079209447063641884857240514248032353372031390423732443127661355893011089346815974057434096146782687400237085309388874383212896468557572387064546342554907232890830556591424387367886057790651064814999805095557520103518356289622839924811132271467686888604899827595505025963218912847828280079045434255989175778999092889869726838935263886781009467140771404671087491795831199245076522393663604413723396795502374533201076557583779632662082534469814879427437532049550317875458468540010480169935601602942803248146164227371617713289153452790739131722436059208069828070064447481784567099694484609785696683729465642753848201263909888861999049599538664673480157995706561212936030214144008627901766680961541556061201602168677532943551320388488938648512279045258158903434140854191195832259938276170569401362582334606569671776238899964480917442987234060684063223631316187464259304036200531811852158169605303524929242599662942106856439652367428340296046708166642014757949700682494304220368579771129890352902846862213278047531200870779242109506426395991766788481281681024784343914104183366436110759998380864153472849331258548996937209762894590005354863509297126979610899405001380263993106509658059992167414994820168460592818484042161602925692151538939990040570444274878534253058389599915786306529871271035059285771567627579961408225961868326244675283084884028950782010187941257048826531428766556872523802480494977367568963924362152295018584286238952943079748573174683463444342671405623292433740807498689648858585669679737613905855814508216555459544222620300334211441463868529704879572846078100262584707448718490476359535700250312994621131925337997873123644608010284362377318689738006831538299850403433577311430449688568363515701521851718228537328374595636794812508958714957393387189072248531148149124343417470475776470053736236762585057727665653438350790491424942268892216000371956471860755728501792822282620721272085476281838808962930102624351807607875831524549558450609714891611952536961695189642511860947712731836926571841287769182656857821229217964015797940580340352138763190506658336069135853516503767207953547386441035505179153200864984973057981364703788452626256601507177929092090602317998778600714655790721907286987659596243048823694679206264270564936174271984525664091012100907740751537575019997049580583055878780363922376559747894515092486089017500986997442899609984321472818415940004600469112115275433417392261509457411548493160831237273492183616010880007825183011955431110185163137750357981988210159806940323347726635189025801359861190874264307942531312248314195223151249708438348151919221528767472156498340941508499453637899293955575794752482548569552513665286248427231713622954006259628738714585361284215305383226430331960566594071114606427778001834159908843674752175494368129138650253193248782922367990353324046987390063018080185903675641713060909099484390609268626210847937111619860186887489405813907331447107485614215066982023904793038027393684291302058173136501801038377804752611034080130771724004271800062033099240815369612808885957309243226065316853447668078775332172573374356305384864062920670309741459922427061591291301569971236363272477872121097977575780782365833086566023969042748891997281249858317990322912538470471015748912912277826185848703346636956412987883119520552156442912780207882434872391254490004386971199896710571534885032197904230538004662556669751343231138379601268810509109866788115438442484602918281829531991308860195606712399633590183014364222004852225989811629451837525550735135314312972480801100400406330643171535720864255029771467978735162027231865492290843092993057042198612809026672858731705545204570576482128605006991225149446276736924026014905874631167366994713399443050363067310381589043298405069937664673568070582510890205343318367356316699660164120938333083875056506667480526417059626930028660494782663559264079549213664084022111904630134290914378973282636401000058863139580922163018083744423164390482034665901847193570286901105764027302040661299619717188723434692230813403170553451262029898916576644567968042711708232507628331347447671977893870917443958216090169772116333557038291925996441385636615093239343326053215969825244849023813530254342471973156946778938907186292123100257400752661578380981555775767214206063967089144531192075813721746803175875147153127411592916024721300731458365885586670675773270487361329279890088146204014156021562870814504784213984623567483295229781108343519681289610509491866571733502512943593331119320704001805891248653379950540924292919001777355442072565673621584374862992746102145719186347357928831130245862259627998957778000000259895747049847160482238827233678312529731957042747512808362935693124728924184958334559446757581046688343940081889063122689925838399886204923208947822310763431148140037867910241928093700557549309448342205294620056094992936673117176436797324408104472333108061224503162427804980307685547543376733040834310875045749905548740805785035001234231970787582971237417373876183207875090354450181553864777201067936725260931160321657402514473947276700886427179917498424222068650569427698630793541928610602599646808744149581664859532974527134493260802507652048306439691700364752587467439830873815356510404241183267574101246386807862606823090328528400360811133624060201381419487437944358869912195066971221925339413675133422130435392712869580900758585321598507090059982869568363785572654747554129876872177915202444465000413028686483077752711902487521131245431522257188844758110749050693794155242645967997922510896961677053829849695223206399749716957308854292110379712792371902172656208275800522372429198851595828475477900966412423527339592416377447054243507654202806406256955852035351123485627558751424820423769411534093027321140706003193724897075379275152002953589798538643213320567822735169794956865255356050615753224233066136796374539878450136632836699667569717293570897116809232352491523747480488913020150290093989230438919262692732512573921969515069411357475240999171254997189451433563536224702427940524235822357811279442995944082481065932722506942946481802192815175462772418878374165145610639714330791791172813914939773736302656050301406521434009598220399129963918792257701508866509830105138401701232881783383890185537619864521427868661928948577672265680588244918575117783205742681883436466965237035924290784733825053580977362158323642563991259454522663055488600934422916064928129701135791673435846757746322134596458898620547616533525672362825437020108111789099970674434921260510482195710519037008546744915221926135786098729084512348505342931911219882538523949893985422010648152190956048065810068179603105694098561028439134586042319368013033935491394758076439229047541437304652693551516842041844026823922980891535011893637301675295311846554399150484290707986137912087437542822618174890729683778506025146217095403188339419422721340612362721087601968037907353023191939350570086176857153582692420763484463635026803042432055824350785363182676558547883133933880052896436954724901495185276303301585097647562924859361507616181138174258178268055791535561108057846509282949284202522493728818558901123999018447726397955107594853363021113967119883499173786450560354599003689698450011573235225368199674741701852741068716163020838009013180929947085171886246095448156262385646325258737936250931520190772093980868074168435247600717214244773877988426202820220253279286854462268837311582162107316620558074594972636824154013200394387087074097256913153868129975376675719732844718049446621099715612900941654706328433868032926366909021233638489331726176459916449256960310910801577443870918484226372024667454753555087934265398834390361803634482783322253127818901762720006802820501389949686936570569249265643770605703960024284872022677712039659208627268473143347221848866739753095834185196900270580492175774127511984446076731707816016711468983690734547732961261094277841195797269325836800197257606165074541767792752150843939055694888379735152987397743166780150899408103150111004608851676950157663329228303113962460524340432485038191939411225085722523509717993424241484126127961702651504230902823915868516258346400004093658141051317377987086363275515157667226159840370193953031197425774190667031850842085219320670651217917528010015277155013343025032822909830492913811787679089527929238434548694692764040815775862558217162558901276130743505718059713962497966479043934792821105835606736770159827556647447953978930883931237820144736589874117053140806957366675640741205233689144269621481763742852002958648717103907941033953829731156262257170695373271341223859628313097650612813927318947622446735339482573300806799860863435868305404372854164784640552662702566885366933482058142678856855996624691430914258888589593773077337980527728218007559471567833529185030685884676611087575529275706948176046295349900410816855508164334177880281689974951535193673676730010315531063994394951838491087554966963631982882300021230023930123682815508150722886216862065109994942146182861325754157802004083788519719947593164836294320197884630744546934235246968835097835583414104058080625693813557545036055315457051120610074808831642169472107535795119119130055303115488779300447070586131311009478752863319514840429940387538119357463200298126828292797576351676247848353764988772708475920866002382794157384377805544400321589987806951620828661390114974806984842884117052808920305284863269882220232212435015519632312695220139604400039720621308228158454625818629697009303920193519357585509871839617663467436127068206898887862387189223055379778824696598834153258474763129919688905446297023186938584097415239219752216943048366071749759352630537764401293124100853341392253601162774153676936241310806649979954657697243152568440692321871542905437470771493516655079765916423806135376033624887111969085031700032870376873644661798558698578647549171824373870458987258822921389985238099685064590300929477544294696093444044176688042618502555780269263850281293361108884525184569277081720751659280910385160670050245210575661844472890351299569550559447819740095472953893852932954118814111546841244947478318754793744846934403752858773006962822882324586776704327498293591245271982384930075331030724249387748154258116630262654014853941938679145504551922211009432714719989248017026117758202827944383689013347837608706387772175952686610916248158254677893732677613376951475315381798963067209993268729390695258972302009029482251061997546591388834978376077856652604585364029458271472244758680927525030834732758003259294397254548838274919285584919350418309870153268178113493408214533085485566090035459323268420943487020318132243692097536770536779076471465266852247698781214310846557217600368234497588222546731350006260807706128860279821103544803588461240041574082742472097558502369943574412414567700734748346393890757316935284724600260416603724070701516703926007155409358934748288643071677827184201581884440744632111330415077004185983641883493681493047757117614336888692064705022332903803308022912983694085174316960218326935415399765092942586641692640109565940557430681969849611080458547434724454927706221697546123233711638944827779361933763848476568905722096859674523279272096816779924144556890797639469754997201042042553838150007227792825637173860898517731007909530370814964834309730906722596863410008860989190511876770181368770554136516492876152001773496708557637784618361694476363289000396414809516577473052469989312433836634427875792022412614290740934486239693666417821975784217386270800268419572032290783774524098693683575736695216910467377624715085635428743580799574379329789497948609756901313226735836594987344738272022830383919582712258996218378713218663829322086607513062814198178569290619104374399409427183756020631466847324115411783106273652916750914068009544608750687809338888373890505026977753363954871199228712120837858347285562062405885501973797889845117908525968495933936776606003870586751646587249005278790009888814758279322587330828159226725265732528811480482876874774296251933851524695802535336378785644154583610722801815324853481708706242964345160920443698004361227158178539611636661941653542261316203794958895171705357416690626576835346395059829808019726202972069376449434869351145917145289395658342363545378447853763931921465613336407608306229141301028792260001147059125739460222721463118099255452978870893620896985580041154274394606539663920801035983042978322879936055437352436138083240711924439029043675046731917009006611832136198778154826032338094725136685623141546365207836804218307417544802289213082871006842668478146554096941110290327423216637203943352857958091378529264550934378185841147581887885862740320744941411912324209897467903101747744350583267012066047429450478280015859269480573518329423913835218284006210283331348088771686384602277807545840702065455963986335928524098551005743454788863916633806957672587881613937993845455496025817068382317155850570387514502384627136271351247128408525455758637006164731236916379621421283608794246572384109453317157041918242615726962917246373763149046712539865115220129050953804318873635464050583095213892963381085148573747532346768635145954153495592232864094912673539115822902733793046727788964843064852634753046374959459905894905797929297322462761970362546112362464077512249949204148383440304317248470696189697491862754866518463350170147451627780402979573053449625497065449590621936730862137964331209227043470644051815795347698804215612822004294198764213387879108625265408537790417931276775918766158065800638174162484426029656760099757834492633947537644105757530754540662466158421238764767841999356020473198080826098518180421190929028375737342543363493463383064550495429018904272080377133442802902280000349971095941137640736867340805508374204667394652299571765487443882066752786506762549679988171498979287485121460405575666269391687973661169229867898481227915139662956324234141780000083068552247739795263187768954300398081907668021208264350504427485631350366901077879351031994907444505993325344936113035868638777768269284264215930113106470090638120423504719621642648983632931251623851237963320611018687110474736770140753075592085636539001228870355267038096474746967254560218365403754559367196296464776573084995638286471984054237110431766030473123268616567186389192828466905133551385809114389333469503222874858251319491993970578402536139627850000783368571044156615154852819999406390867847847156015405103556179125947444157154374702979900910204839485494447891161027644318708027825992512521441196537435627012502571566938856279748485048146843825151245671563249607511969536101588507679407314685957540564524323693502041729761993842762401187828388599495671453678592805873972880936380512479952706305535080020962516189765023973429838197005558515215157519522369123988188054878820729259276480109582424117751354232216286396935630313423199759497275200927827377346702722158793088755875668836733377035365343994006772703619325130601854925156427462823005666446117849696524793180848409001619767120532697525419413808268746649805650631678963665546517140484242367895767883367107652371829130943964916423048960749551343620916309367654689815313794179482787760518846432844016959859336483115358682515235853817028492229728645740896161139354779101147125707292397510303822384443429363242575546705829988996593428207769244531634036172807468944034603810307621026435381640425577946936767796686773398720316713949918802967421974029575080356821165192046453862736942413355832140903505563569788542836947187730081264405704599221835236507244845859911381118823195537845007110712534900474518665514832830268782589407835683966586321702441826004375474380211203459037439061590678966912341150868213336771140175191369728207303542141295424053729238601173524455811008252582056475818477837531259216040537986885938926031874092060042223666743868966819835909892295474086251789830650860391149710433437728182078673688191676809206043230697913821294195497856854349066551151156597915690176445158632781937954954045566281445698640674217415441657061833806980321391172408187603945398814775495708181352561089896745428133329350633681890809473448963866230957562693356749132481149508596639357538648641277795184339960344716630131156515017679334226193662422827956194397905200379253320912915235130304368230635571236440394218900313950662639235341459790230728958620239728420213443747367096630348352325778705897034197373856294188582786540770033370393670773968175466277510747424884589533535717774072417811573256468673827568416537446191048523966927380510234211890079370998450696749041469319104060602372274975494346090249925567697998014599471923082972005367060383024499599827431628613467000520326140074291272528208929461393623745329412686769502965503702983724191787295168048258047883550947516840126016424040090492403495165155619256155532176206165027782465624697998320529605214072033996182867848543376037251469934852784380535696478534213726087944156079971360676909127409913500571813060315945536208579533622245174312616999339710160873871923239299561688855404175141610532859683023412674709507196736463621893512763350547454689300534604375614289901890352492947975807229447951644752012171861516270252449370271576122274252281166282108585586782160605835253544145531771476408434611366721942729269595907834292222035943852632687308271676734285744029840483800533634440141145495452296855695253038445362715754343742686835212610670736268884129558545238695673841164876558567672348849345898518864623144239379029223388901044861980039177674203028431581863723682940153004336277871544245684686114063720426926690283802827576159359501818853931455197055976757362215004139200368883841457300020438434772351585446177944426332126387309550211967589996347689787021924631516814019036373257578245754966973793365062693586562116064473075168503636215759245708260902751789257819730935065032371137643837849969339724149953882747189401363010130125371659264874901367415273219640946287252128154331237488818114856068572781219704083418130524233547406108557983271310994876881816956294643598519173003299432225923603006563353637912098726183988909657472436509715780474678068541750665557085761487035806866969193365244154829837624825304841309993136088030674118638217321930407275929734183998119915078351160313801946783598765332616014686551977299586170643658496198783325639762166534533199843237202059403362000797421704457258280439689376964112655997590938250033704748671580301303698589444244192595668595154363551295581592901096946274986276855366018651280506481758720120609814783278477871062986031767410753398458916952480322927887027583470373966751084143225083341461947687639219641076825854640839570860587568239757635299426339395035087180441494962093660177620833245647270534714815509590520968598316974276324844587945351674775340407616695600366809480583359017314075819247746181831896480660772961744457129584264748148640341302772280987973042286333627636659491606734556277540222818094247034223169109506155932875275617056244628959432518452055142540193629415056080665866278852737894857791528818217107327225757117124527557712897256016561862272286713698836509492658371511020400522132761276292094985219062101196297197905213448509194230573000779519625999344220455891657550189513387386982423586676757868782361635864919896650406331189593985537793968046846344318723937176342546460548354831274963768192719458892779889570356892174173125130519880811304915616315844064794969928419634455843939083533148731993958055670577801486901348504373347239375337063538466768559268548083768588793452119544506511181683431562201939989246590250354829328301888728184654107287516857146127749270506278771724735738233631934362934912742703952858451006451942632842396263964897315796228589994929075338709682335589675098990921561859913599636820657837197010884016947059525269169780512445923976991175379525618608556493284050855546167462857638641198308763133383663071767438685414888387916774095857015830641356916342812560821776270851237478349888711706924075153252127846864581492246667206009042574596130238730154599613545611564104104787561551732481282101627492032514286075755133928332559093567569697469036739554824536973239913503482713465378726614904748679084093206089142762193695465542547171760401892663607281091650927081212006494380330946581745306336738977698423271015457314405528736918815018862466764813419319339262208652715193797792966935074547207178323118194047832503737451014193797127032907784452469535310863316253494228296447612563526579050892872899373335786649332196231070538808393504284203031552610285253270418327288546240797058852439433334061646086842663310460912665065039038939842388054710297716170292276318588301480530837685141588567983434436477242646704929902251601785961222352368724612807305993991273102870487138648386881470432833208270427171710909942181026546446537545113724222342080420548167234610108662134875735465167596335179243591622457935449661855327196448546944347834172699138284345900087916837729952217102204705154419065777052692460814662484378802598893360317021828719420847111573118398768334883078789712605608297192246575024857319266343413843015651788395908735554849785705612112833865846067820655999644102457863838295379172356130612304950848825948223839718332197471061120329636458665257682424789075236209577054245662360952026291215811720861839927734499876561160141787975384274507684333730490032464986952021055123153297706620729134436716549407287325933468179841389147380837781538486386725711872384415962963822830387724852782327708997344130288130386903858665945665856640012751079255291697332335966540995440557166015703118622000724259475919012289310309346294026036335945039425327224178029329331914153434492391843985814499654167054497393931352666345337143081577134389107408855904563565725302678811854717809705377385807297581227710225098941232735917246469895076860868262021961483056212628766197051418290190013948096076597303863850732988876762548853029386800474038740369453353631909539183592624713216365381435325451276033533972198556629321653015904083502928729220054654411063922315952139004785448347552469395316714586034878439225968258776836481143906879437275772765876024556691111904732593894106780288906560797530937784468101004792726183550788317121923420577555936254735940603803549665849179186287687665509939075190873526467375695230248264404795908035096379170150172646499398843716499737658219388454293826920286852990597993653776909124638595928243778479487205142126714496647641445595681768539248075989417298937179528350846849784815680174465215157262316371670396603594844252300987013959316325718733374978074043247319692342137585842920872603757800497888222509777619055340770699020778494165131305140072633731274375581949883417862226779859725512840137261483273416336097422585426559037742874089224690096126751225112303443821545978724627643056158753216735727857384363269131560415341300793842812611398306157367495594305064825375655169689261047453652592765046787828095015701144144007308342423630265090221017410641408767610669174387167313266080544351886801339658848902022046588823388842154432761931426128536707370099058354628900646575265978393975704128313627612988312207328101423486477993469013920531556846471756411292581325861878697452354977696814432601533469694614052684645670666319431138344288456274028518486828163098032102287179519740039281642077053388951811645360531252962553472098180925049666898260150601361978498457477078930261837650078408690670582072888909253543932804884602648555110970518548073646006639374037588660291964033378865493134438028244663018879910927558817937256062463389060807864000281832956434207408697163029781484147983788002032587830251385364733417944839086098420159400199776195425794933774413973685114008276139325303601105109683701631988970670349299948922840616173594293758094854888249981049300789917172218683521301023597115418809005065252840681621146738704369452195622726457817004953552486503321044449648290938335570138274660434878534923201755389341914249314515926124925045299904000486619742210498892842769604764932936231241359853718616398162766946654896323632038448336546569585811694070818892578159737599917754023626828335977283546080125057952627995815030434701603578335051572268909153948107714278349237480225007448536896961160436467718204402489622938739727955990576697172175573800264167721690497071698807220252554486983908075793007524526435197656096676234395635979694600657403126834293493834148735457056907050012378786375133111631192412527281116980610083502695612833426328811619756022168682265444663795974394394527592150624036124023554103885686294835690452311122374985400687497792813645420296759337560298230419530293301832684056626003746879269629370173235116826855743588391652400240887820345822469193926451156821588485666223175551305528543774272546427606967869335609816051582269986712124595849890924420228626658513983228979798529736084100443757528085820841368266195492230163058948884509610714685588534850736335098098519242220673581520347195479711586929529004904287349032600141485704426927911481725539921136130522693349193013108277232362797631311542607158899285959379944869667683919543948763886058501477341891812060040342837045461551890078826244094822519177082806589258046997803492378096466628477269726539483003662762519667793468631701620636767404587834364106476323832454062794284384567672773873372628949251234076636399804557233581293159350399662205369884169555542718779025971016721443713639944876277783302664593012164182047248698040536791255038584260623357147452438838955413084855713750685048847596560469110981917467515439656048241210197146173391220097872342022133621053439292221417195638784349765123339783483206989288072250850137189312155658221331075237234604891485169138084943949153547922372962290731501745215504006155427680139048546435500566682231535220505817451451127037211283846565335201705195859768483300438420033374973211910398472688300295501383524640806901019322579629203420416489454144431017631996962880731367464213508923105353930612651618600309283898572432326158320011926993649754547561337284827742086896292192940119668622783126355297084913009091380693123349861052421947931725977849519994025132755623890725392742879336255500967901359706293743347474870019356100561680311857138483726200000521524190592315865694407470627112203353946420418749203600958598421690233839545580874828924009858739502247697507583892519919965676315001122076860837841360768800235767198390551273643022468993731924204975964741098628330037462593259822845744849839021596397192930893743247551161319636253850597366126419575945769385661403573879417898991406880471916038625479501338942324729430922604041052614957463567399168489111166258589967394152007385037813341168921500533167937746788711810738257486548413811278503240936181379599593057075417144335689832581312621261302931813802608657215745203155576957594489551693144090100137051257255279544668847328453556572809915500644057367275507350719799948471688098530832750475415110798191679366495339832347999818346045153527508737401190498151491262145517186133526028939321727044511855187040773955681361816578671453531257000376486898375716323997958602060195911567869400768471124014630706816037144550942409739020425285208440952743495067785844015332533164401146904431740918278412667569106792978937796662099713445036872247117171902799978273594926221135052273706321854680625237030109982350164404123171727745208612998820411624933454413302002774311060378006475307792883241409249667240894090726921654562655651889154564928987911881835959329759607544620618206838598108680504333206589634880233534122337010499515628223303630394374497547089804158467703170316284039502356804696240720569610720649886518499203192876449175584607300286998211331623095881544002879513807992949400392518984331875413799783034498424580445663184383687689529498671540583951821562031188875959844457714074205810401496527146891865626677983018931237449015413593947377898553578836049105785180171230301919996182306084113111847831472755054612019440077243660606633272002577974692492835460420998903950739592531122804286455652768886563160255096118910267155911902040833786159938113542278656394679833486460673708658084500228201227845428570074584826704832218370041248527738904359337414239920942402752141235719101008489083083794655717470371273370493367531017155341150499993714421374168629368078683318836618370422334060287920202856184576307034667897057779831724550846090301596199320177119144906140265659747578208725346938918743597449970934503533117796805149864976136251089396143855073178737891870528968818169627590695714631764232240159915174091847752866891203758822661554074722615934184721536873276306688249441278442979646533364145572987496752071132166405627355891220229464631809688101772584467457062955379520426240454740666544002892845735539088569278958108633551300955651606315554633386689025702281482973788128163425767113080431129715697508242869915443206317745096209033532347230181167068026390942560866967723594450481753637486231271377162488896867868852768858148686269713223525834855977265695991024390743271969884268245135961802302899327246830412749589610520076612978867069935355252274753666786783881689155609708549372349302191577443959527890647792035258406849196530924962623387378581788140719871059219919619681213914740514991945140551716697168572113071381669783997685955391054484068719512956559056112712478752557907008167049982107162041126611376978242196022835430425825809724877961972287456753025499049268317614503846589865109916316254137823195887570361465480068299947574369792754109700143396218193575034822294452596960128785651988930716457336851203592698684667182971473696412772312188721039450868512667730763358616698807524361602189393486440287689298124876568829884158194510457017285122642262514238901429541255086654788585333050399297449305979157610665272987953148246333133070908365429051041308030344503423861955822699719588204754649802211969786752088737160660517009950716503714920664599200760963219965547423917090114782517870140912176669906588665252298545452188325552483263153456865779732474615228477409601473332851696068170899572630658383516354234337176311519506392381948522033425061644478723478653869975723017561495008234866330278692509216160949902571151266145317821165317123264624476325377784837880320271938841403709066393501741759380424233649728080383296493046296131006284147294772580007030579793587248663522370720376755643221689485746826497829850367181375930341703430603459835220457953718324265505701084975165235127315761450909799296934566634479767300250093311592032274053883032359874763048339860385312946855788441201361996849014987865624225742207992272259807020150120341535256859760649062004878228660611561938918380427669001224275529092733836795624718482952761302976153977170245579910023049616772096297945026178439237116424950991886900503595369542061204578728837839095821547184590944153624378105353756891767346454996013698001489839773758204335890049647438896817843322003689910242978154547250943493001224472631217338316916035039155231852677432336745365213153864107989885522941443725128950362304516674645043476490491533108021625146378558623392069300499256330411715660450812628461080499284955735486633692982417829203967702173757674044484897352862212657015657230096192549686762377407748502422918651058325739490662181852856585672612061238650208497140200559551894652773473355528069096824531023655077404847932527913731220731750044152886099206700606694857689133923231983536621655776445366417167790205497723703556340781009523424322850187857278182484504574895641565545133544237525345578482731221411281224527554498612802964240315641270842672548088070492083084683761507771080446779551573347859504098613414059471147262833797389480777252725464579979094432717200386295033216421372652142339564243952417510342264452347222558652566297297869565389281942771754942476436451964862029041267873245835790307246829409574024527487849752126421927267337482444184749667220187194284214540608684007071099666685818862683730975848553047661101000980834447744206361764480291938706952878342258834384602589056150050260972592659097752479387393986819344217717184899171836541089998823642403249135832713148007566252405706723430309854909477884124935711759141923084065404312097963130411388763329542040077027839944455785897509568667704893392874877153922314077324182951506181681970065691863895204171093297540493740225031080556813020825403888630654586286054996734608351266451766956324944560134382227831152759502326431847316608849546385282840613505680847277951604948675419744135287489852160001681972418556203083396401150522752985478069822050297294363766557041409193563682249721084914111860502069850586255386543938791820274204551520299413812459184390698252233647089041054934405539151664982955957510674308223342904640160020625421906516933174664145699061488510971693033879918906136199274028285024327834260192465573506160481547498642001671681500781987925956895494245444541973260430040412398164650841998767265176866589750567712992175312269339517779545471890545009411199509822133255868618874928595762451165383349258802369411997786274667313839459381839397643592909658113200113058947389649199126985932973450036488973303441798239654840104373993169799599540607491686342583895228702168351431231127647717184066231313016524245181178058706353730721611455847896613488627382126914040740648034396718988535795902712683627075338578093116658678071339222078495652254842313798995080935352632072871929934224140265839783756012897158923474967939795882313318156081682316423674260379267404713024009076071705911825298155274786222067943525017181736446109050848826677187406363709425275134222716971433651516606173188097277259680832363058811022722801564607142942708319114611834748286376363519586350097765825793050303216946002232573399856819157623742313783240002435532527383205551677589610378899985271484115241042190395694811644394827220318923380851033604764385899833043204018671325856416096193510025096435652553118025907404362394461735490068505993472904114227757849547774257203786490155945518162791773541900694726530171237932114881384086297754312436823881401732096525301944350660412985073371424398298320566765111619879847411002890083267391570843179330050851606739379727820246134796244609695134630896446288542499695001366624489389714479302667909459466493364570366504567311596024217826341578846217841539131306602483929833543530931682196521401639582261056988613200216128911321969772619219960202564512534589812290763882668136689271934758182321272502201781304662367432588301566565566461325093402598006486599555937335538050870479745724183642867806325723409297540349404968836701427170251809600392796510996247078812760970780614868403257466671069094554125013711159555354182393873686253523500529710129426458281517715734585908557411059212249481107049872328090157867841035620977530679541498979555686294512470643813578656721216022085576158975442715779954374189055049458688384940563047923711446619380334108091489251399725496907735090600754139105904650909756411277463511778039166282688934710472486239125945510530195564877911489297483072525143842038464202220268719202475062314958903731474220948215986764424685309255331863918006269235019730707238891165641848914322399917815626508710403803420103769394758861100878996378568824492847210844216573620378586980307189389552606262234670652832795253057862188607110757496368544294908096183302124451326315842315609803224896827633962055448434534080140829678905507213388012950931623350585317349695935909808953208517060647042316448443688963883302342055942355126251197576383020347017633109333803211473195551234629326598290784882915384767265100587525780566523935762335919209427267062657876465054985742600971041966112877129854802600951504670846105271725876855491448216449458656674847044590352600105833913587948571018827356087323292640690097268614403671831048279884241533109819026028823829621392189195797826856340943866434851342676895893611585878201272335574608965636429584487342131603399747185980127943963839949528106513180916765915692146391414016438147049652295264963909567941478913673532842024830729306794109841920066916196342217705747782061252757951162248484949693640852477125464598454744517231526127516581931938107007939760298508744206284617035842507425384494037098580742298516332168364585781941557347057059760203417197041255409309206219049551259518188991186809637511354199892561961112543037630208304901147502328507854348291337272005647156627329152069019382099087671932594754020434845100219030931212487945506358510067996382669112854285479840572486371937283304395229800289432496165404198238830374473397674125860174590170733010932305361087471276171505886298963066866600613702592481225774032875711455051561563767434281359213536427739297899725922821803796415738996410807216576706201524875376052290359437302384917191983070526888361323525969357525553736441673408898639234808372130761302953954039040800095782731578328930627609883318921305690282133724381460882309819624966080149897140721947690374295506723672864860414960417736104175265462407957432432989573868113580616527530131672432369862028676394912128077715063753435803148245279641313697839674289793780661229352145214618709364813528051072090759243355962926168372679133625411545066112596252231927602757517073080220748612396348134040546000055933397767599774609389413158082632096001747632338662453299655988174465303794147954469945711222326765155014017040906806469174914794809332387918093405875072131637128020533264981961521635060736810921155914886120674749781643855582449030398522901482264710320624871724044732884055416866022122143599487586930044682930483403703322463621522303787150843589568134464126488749177679641860702377713258424616523673874779556603317941386055634264679078369616570328569944773493463994669389980904707832816416864825745073606306804495822710718413512427170379603365150760522037666189983557738889065772980313635688413597502148917152687889726162089602683650013297374817160326641236216856958930914292114108496254282219608550872489619060151426744468382610232810697557153070912260322626134144177789829247940211574488393983058853716580885389883959749319576746297956302556472167233104235708500175359317285946907642806520555403892650376398030145752404768426102205096989819353818531949132328541373223907632336734508423579677828319708815620899406828267477922541389954391005351220583984819073697360910841171900770881905074345022132092952154780101510646008605509211661319938213229701027080452852290086635032703372760345799821592778796868252999745558713610164754876823010891378778816513838160802681696670861728665765477079261345493864509681645356172713626688643221988043181308805504127787651868899667644966158819184680980220102550926423102704115217091232151117559393580519511777856676308128606681013858531679563693833895720326126661583909151602693435533517787172660507825574957683785223102479387959996350283122280799023287737250650112526504654773231228373910685519245656007351028067150111618959570522904540546044512998789755846597996981162354471817896792081672444371109447666021210557405057137147524948801619982653459810885011074503260196491632208704453644460216544088543677591321469610862160665579686195350970117406685239830803226172216969192224058440998270746548967647053245844703096684057108598994471294658047035406236013258394396515778187407663791329184436408574050715742218211413794482266461221787850725445130768192840639556279112109456440033117805064527621861527320062775868618173541279008420321940822469739623486321901363311473364425399976738143629164851556265957846514156206435094015280476345405119599435772784022932396555678774719681244120681202457941355106604777241546329993473655997847869048163152760552388975927247812138334646583483820130359420801921649982566600563123921005146035015215175094585526706898446459232259074771385187754456500070928306815106895779125151293044185774832244374468034365188299489392397539789530686034113810031454294084300626734205015111339820920438543867136198448700446276419595950321744811031562476319125315363855316699952337017096336735536164222570083685822485059430196894078803717124384616405511383336038086926443641367778323446233832627514098173006158525277401363063381718984192560557448037990445505476999673417302272630225622079433276044719937779840320174704214489610585912127535232372288216829818804049106947365412608859871199100594233462480480378028657959405852725781967248242088562072151125779564213166403544674918106280270723681107966212746898948722778786057066054026171936470722642949468352256457757532243694200776319085699964552060904803174894813843298390618889217622842049223876931556830114327517456095123677375815414940929924260044972183254605329335245336893449194872412980077409393498463117239174297188812958915187142989774595689202061896500775515888724636486961708058547137513520246177640006363137088766803565006483999619955794682857291332080079565165649066699743691590046672998695107705751926904390404105482901700105160498906506620239232489813626026631980635279643366304365062737027901354431496223820902277117775692437397390044373347186313855188175068271179299972312075138792929612135540585696453326320785457305608342458872832946715142747756025618044799509477724658821864255979320198236967675514277938441107200556941626970337824554713225510643416275813618642978689201008282433180793120691888643000847298734015832242338735325194248871290390305211003446224960189667731401984162077337707675399920487770986730952275963025216976156071699252994800507534497310096632183969837896765495901815523285680933917320492579156746371063900413532156087471807036929968864963585191621445809576750515632432991085064041874176264869436275127741483164522031190578752251411109151880346389665457770688033674737693702988231389749324107046588818938622835230905714772802671312383026143357334067842330832269779892810495648088236627148929760245790610524188187213858685227705704018117450794696998541713957874982257370360709185647623225853983622052655649634721576652251796504326606489602956835714945153813565942681921514459041689578265505150673299807642518808581609405976438779584930894779777943004575954024560680792421251653255875470671146430823789276246879821479766417442330871731527962927288326495752471986165702263196927594708373353702438641481917984634390444912181133874930042681095046462694337531735242191845662939235431962493082981775939156715227893917599180486807110139468880892245946920355474521963451913437632851081992206656430889296825124898627938967355401461543122577434940108820601082132246185108026864053705399372665650174154157608555489769607986828471702760013630769959171675676105262746260847820514004424269470181296697760145664782136277874712243569808454963654355110891838542299406017387377901411322569602200334906711287406525989573139494233454429118750633610072715058939668758308509184488436218017241033190909299703222335815051864254733368447025603028218854535717039657192503193226133003893694847723625309678973831330925424277899847129106848506139939815474397311025126442274807994376946356973182716722156030203019405162026777412073146094475262216943874858474572252455914612457039879737995568985805773990920073292757886288566753754348247551227120192186498603264783051246519844555901113959297740224988394805467001667745733057098663419413191848333503051316454212778426038351250198381192484465411005930402335982581658953927221612258973567830835205445646855427676885045981004509343486204349250807137979216352767907613942737538971600618523276951992600733213918279649662740728614000133386285495247914309428055385900473700858094763129329241071579475364460823114435615789365273405520566169621984248402259993497926780696314162773917856283919612791188749853683914859351645657564546605236088857507724027848048177935277048418128570009336290986438470710993591121604683716462630289098879206362530036533030568689082180582608792037473118711755027149950701307449207697862986903926712681172848816916329533314606684340226416255594779059902039307994862212310791990662199437924508009438903335561166871279203813528953870711642378382362595360465946327692229205326019352952386844139282872397429401564946701128486252373673893304710533194918468238729533587950081148595927034711510105832839905955324247426353866782689449779079076523860015854922480238935462567607949346261138964738545097385728852584519400377921912976508280219711270651759492746491576328552596798574381614203008028162676823641548231175716122653420354535208833790242150891726740810931179610224216802771435155501049076973045968361277543838976030503141849139454214446151396438009571214327718763061636180111813653455560825688541543872059265508022570272996210846974951681011842322606258143822102347172751250772463741058698098004119423562669763413370597607238616089728548127131508585577315530498209122674369425670966391537098353518573077948517816035570561775719987380872175552991071057654031851389455769250776601540200901057470167389468434174464785061562467837457614225791402144636956243955028840222682600450254220053327886235607243753780200673809090170451011057580744734397194143041847516597402759102239298093196367229279883781740026304296262871900070717179910256425202076055070274572658866764080430708695967872145368102151494655692685079471745411723751346582378589871139848264052144625096219581116618684171192495254928271577680382771355285906295645835827938652180638129865637024571209532917828233371485985013838181581106235598666371403219298500133452498409997519028177084806974256758921935207570539759624399743951748263043806394494936319859560286833241461868051025942399022669129321368821556355884156423392168703954791213720710046817363253120919241247110170376932955185216396176110570947158852750353846366668852409968308028550638025954726756120085572400073614813680720873956781552409301026469789487873150660054481640888578340424581483923391435093321487197309471834006944729549426061760411472774959823789741157555525096267275023264036345765561602573199722712056680409549595812490933515734716397027412021511883662754139417674712176307276174216689857944945507527104814263562376000029992771610863728649825282712599561511562844189694953785988623062399071359997305618437543895896639725598849340822865770186810915311133316840602468021017615831826578106178743494062845910940551504086487917652558298153498898662849694630039854598035312448128519208737182969029101937920095860598689217644120701628341170556283969566702574499188522822766761661702104369519034495278512958834481168438975056862076107039923531672822950586837335368856988464814403974824557009316559880000620119143057218742727907380240969646743866660120223062044915600330836817611905912445583427821340708698412362770631552956084519050429522938031411274014140139014589696139249201449569208880034685693343170825228891686528371008181596213710312761341498299440325195822877814324525346136585605723516616288526634943304457169766605406774825264032104883777617211853772899152050276041580799890156852593773819775845857773334699745069665000982960038042892535698691387444134585105992826761402315769323221028658525285990372744454747361147337707297368483851515425781941543747495301359895880409223293997804756243298088404385908800226375616363581699555013057278885126007128205773029779874557930628722169641930248180293222507568316238034736231090328105218472963309916792540151961457820363215919318235940889787687189893555291316623223700328118985140237271921237648168236371125216834953299847579452418033909703495311631952501271368559715237239325640629745931467646720823394868282628907221173892483639113759334712545157327768180839230665666440893446333036620819568579125968455820996524977181837938619987038003078429930141677812431264342720157304124951982252126288564790446054693265588754490460039707617215150772995255050448466125827759191974850951376786922361923195625251070085268942830576275475074856741968901594099397486536053363232162195754220226638963930873978746917513500824014668120782618179852475726454181469851680582687671704894267345985103004353334368528352471528335516810662153116793218506462805552252654779703546882916571600924938715340779481179816422279144491837666878480940855921778646638675004914712742756342986068177724610860831097538597101421103050327644494986567531493354950448989147728640253283110178538372811748667462641831245433766532658447389787501713205601400378236464434296817362552355103005790916082496756981377897817129873745407323815536986090985419571861583516876982082995046231425959203016292465823889390720265167478794645075610108583573683664083362593832205256364876230044036049202031096468289799232726086456624863987921256639027705251439920085768910265101778107260042431318689199661692705553992081409254905739414100277281912910426859718450138805368985939615744981987662657496405026329946757120439052575255578952030617220133634470255506356378624460542658277742892883166514789268072155091191674525261236062228701528111488610512146373439481265086176665732017338041071806689592709682435995860941734776982208764941551104921132981683683227674183929804611507783005644342082142760965859938262879555246483099537316670097890954430460016476916236113241586206818698274337262920311085073447989953768004760256218827123202539016667518768539030599401593463758487324054522512143048989445251438560387228053828214172815030071241169383984048177875027355062941058907087724812525694321909902215823546304611663281596009553517424672958653906775320247455935110797886414833152446036036756887285359307968761594000267195118739409668901800660794653368580836567164570559193368733833963823188368635674679874807431081351142795032741873026990498224539409440074687688298158790248332495085638581196017037744883573997681098958224099099222945752175042094047776042049665218751874443832425002146286836955644094481995902869139045552595367936747193748392987214057523831813715892509260912646430858762164223242117172086801585042302283936457000419146845990172964351806744568073870741743662470979717810814969732550448103742348325367901893377082560470055872818900114656630257074606660877022108137701498887422666455300119740868596850604748681594301849260243392183186937970444245666970125250190498890727267410544266829141697676539652981424389565303857486298680388978988876886721719763819897654894539678826252317266255721133025941546728417687166101433526008518700376785308104943787166776361205096848179665591472203422724890996834678633058538928855074360528901088071887080257941896684293071364308455887469959833628369346835094671356285334016061681750958012313257343435831092071602301450111496457501689436615837246542661291265990699536364757227389866255508580281461157625134670472842480738575087473601970688732412603470933070659075569637870388737029393641542950144134953237260810488231623126032140785671817320028790428147393474399735551995753326838625853039175852737788634362641051373855212064272857720597192145546752711530327128222905438987828270804326098573043472296699230701757929617280011923405283515069533708322561936941103416441926349955752470887805061016824082135446099430891081970580238514948505514589593879806976617219252513463649148150674462871070636018157481279139361642071060024153334409560061904878951204846084957055213384289734162762723625343228465413551511011285971425410933811118865245648846423647478752154157455466716870406653854097360270347305531580111245974667772015858554856122075343076531871562404099989318548017697434312657301205061499952531688522198946627686986161406035491218753523491758957518385777037124210090804462344395087989975904123384129635171924595546363960424684097592565605043863078460542047777583804465268306847928396742570103817416022201656689905722979077941712924082702441041532784532722985588006122460290978982503209473251722923619806646372439182197685999135520613868526549947889724455900202172098957044908090353942242716536615836490826973754482354731227220432217215204478780954728383743158014006822342750039653789937390898003500666627929644450700157951906814183691211794203320143776630057908688958356767850134888731170371352564759056869144234755052432656444982804546985557654066759823144118321164334010773954508881684145262411614081898077065755093642995030916714817612172101461263287923004842847237529845448411417564012782009527595275947178517458678371635222384344440304494896668229595215520864549326453387420422171982329915732275535051584305718093441643018082263240870107815122325651171856817780566274595879667520271922677660384990282272047195122631965137986903195012047508217874244031010660981102709067137040877367659003238874281217843203987840959395730496708647730291116688428471757025395324570713257966590407488802557329905401513672509114445049511096264165276299893591175895759516357114033404408145104618737415337248848628103570370235431450449431078383694252901832728227988561195224772196635200176801615803052734860641207989146659081643006575562914966292311917985478755276494376049465243480258804860079755110856169337637164927230732148159963523573157502652889027035687839461337288639136282106134266973639975632148852714079114283197246757054368576055028526577067160668638308493278642605655803204663252000102782015173398664194690060693177363977630557581647831690674762639343782243289832205790675474096610937835465247818821668636583519010535259145754257203533502341927182657751320430927840670009185327632412321001656931219054327601757802347710818470501908591523819697944137869919788164530712194990586733694798361250675167666406050098302565766680611835473604986189606141710627573429555962699924430628880084463192227560280534300632617272906596183183722477990641997377761211851918195589278885974864367408412255079840914567122718653693007335926035692546912966680552399991589276093021296823187462633471144969867233192431108343563649544395862936298851775649410344296263004170242757062193259152080663003519135499542735045918076434857115159270545409424610186990779167680946912071180603957807337537995365612427044884796749148863680544076173923550292069825469788790762734685473894320104817624232985309410928766234063167052760744714365172145358749949024917686166555546951338986043417828400654834362446307996205420784173248990416817228364860086248144914157724922423066685568265696864937591901293390708285353078607160243095475721518648458141834398463982552622426742045233094946268858684137567703481993189258212390111773201742149503525776552906852328656084168537160847907911493445740409026097508209664926774072624761718116297589367126138928187962055476143236841060061226578874968103543098361208911660936284241960758763221988366492799870321229107730994468829619607150747814408813989808043057821749623480547304768962930173818551694244540027171923609524513928713171978919140967320978006334379547627346975950870778833790824661665691513815313883777252303602584895859367829459202787364218795974507192343619281349234602038035399713409433938898163485265070410925975496372899302275643292027399511770051548684881446083261827783472082634727588138972747726013448035360315037947785497635900317172478619672275778574287514728454008677841753368014245259732798185056160799220928700205068305258194303239016404668437096519576328500854991227859523349561586862724748577351712247464598031141196210733044536810875643200046134721060743034781990496363291325629162083936305857794328282407681363548260418713897880123264271246360906452816254057587026352937105598396082956581445136050876496999508573181296144471435772970177888770699657137586988087787861579904013431783815233585351954515610393157170239222365126025215600608225952529504117954186450861745824901124831799441798458794427362740291716173108760974977440453801266477016325104160854635716430392170278944826899659878347932561960822200506534606820986283857476741668156192074711504284038785011773522805779752128985864026381739785127834772133962509981659142211122720661363014092578046545952286809640887877477678582348459143505233499347336441592507550634562108132544592051493379920970931565637572718322425565747285673428693377816272785397790679115001951402460255445088112426249681760993308103282782982677092616803529177201826914813829257276116688021941011796532877702661554562380536549452498675946122673429809120313655212042957354369115459827535819015616894238903610625056392847872769259677105562009524948717070756012914347205152588228052727803677501563574489971279001535964559669754256433129312274532929160476502308409378191765875944762623384555015479295274886400103167809224429177745831524216998902173658369047450880605800851571700005292428071195385390190476208958947515965181752446456264349382026458202452559300576135751451362322317701302349937580966156329177860104012688051125979183209776367456839552032518539227309248231322277265659941879047039571234105519513982580604729800483928426394039571096536773197566346236262187943661187380360744236907060476444170618615893466846381921477943477344416364669449803604131846345070745381862478829174451838150331002519508856581511572076664739546807727222930165977060691700193904018677667545249958861848038184922508569601962806177848704981843980472333370395003496271556877276541802372899862836516345612031502361946592511509669743387982323328839941852002967322568619119582398417303940076979322057556522644833611085286913256569248967176990444827302976242935870369135208244728048461507650942339657443011936728211786660680827828788316967097888624254892349318724521762085183611178805817516208073015566148367072619537925400609418524160867971667571713505400432725818979839928881254567308829741946079258678655888818810703026891321759115034064912759838923868795499582687425774876300316264259943940614767539745540676139100190126455429512311595684424778129173140073300109002656627262383533358102417651043749688060568311132972222684142104564929530471420227480456593723265971380588988107269695495694959348496035019226379035274062109361082367759719277277621393921303170369877602504211600881563278835659018735409356970449581995725587853823658520306965079909644407168970669282450873706923631425368599688212864347328775552692796721874357951084125314864928704892895200894611410266908209448504072620589943331702611788610822885062805819953160685988185871140968736894965999631516196121246936873954214599378133564213919985265076885166617789779491852612678906483388579914874531350575359724221733512484086233761953017102785134855628556368379524599567575460808671506955029727221388017763841796970516700253180719140087192458541059642343933315948757290408375598735852259247747202872095575947252242357827390706633896952531488691200343312333981712793829660514541442762810410711819888979136523747733749724259067946609461062733711036611782542258238857512577080475876315313423973380534558305665750711659049500384093781720423424758651360425527571391483757362270463836566595953012333165591577903664779285662068212395218851788856033944427094403008970270251576489708731055181524363327397329389051678083120432061014509822593295650594407972270795182364798054650680398688969680317911692945712233028260676245324292354741072607290353251444979524195009750498079894694089922195847673716685368311699581056971070118886705283256396920751424792072513016479374117153916398743601109671444501486411364727832856885031051572301856255909034851532913349091746669453392741375185127050129483576038387273255730044807330529663705616059466733045737822773389552062614910979836462363901980847148555713958289914133456777431299215255648614384494727335113028176212829473132992270963172651090074077985808942465875308593461455424578126935867025371314521922709476874338857218766844172511963660141695640678588224558192090723177074474938386669669929116778765085391626184926495167219421965202489501065556151055922939745274939276658951210351782900259615325933267707159468273939182784963158649252799159572305088158623115425199525457633206735523055725355297493324505728936048578535207908795155567366949962011669291310818449747528571202918415851426837710870930505158406641428882535361254585347270045547735892840372692919001674237834159452195642064001654332028143974236806399264979372942051493998654753307480645503999353756170142573567397954316321810695237350645711331739976140541682545500214134217590068365872500967479596316864620921913407638877536518162282795242739240157092249533330849493736079714752309204124240335014026478136417928239337476544161929311653883703861583718806653539917508893008430865474333902284058791332635221951289961946033757193493592397166835014829613116932029968555207770940282972832125436429630192511470587562332906533908107935352260620397151366891627238065022667300820597769941521298270935885669326659980704224916385088413389611910917468435519625931460519833793610340457397861543609970901294445079310090196531589205053928430226571681208537072748495645038799218790096493094585140636714438536847888231089845615445981543216776967128402672662709778194925289972447655924157412851479868476199562009644535414171729863225229611971908148936244831479343947378471343174977577365943996340301022063082144604877451089911661346027023877526371029078068284133270965500466407601811321315063750748673430807664678981648231806329517088435020467110976094069566178228751638544346167902991557708082491671056809783402769352182840212504953531653364030277908305761911984148923233268809910136504906084667027255851692771217382990937382768273343850801759875944922209581532598227266615727241537203148894707663129280462252030131024191980085824333996861378349703592140426944851101950252303938318860859486548751051352332322192300944528750972357741375329511794581131055199083157796725734664147361853444229994633631391259340909326378398527793663186506807851957419285478803955481261258123900479100994876471571780300265906650887012346395213394173082765634477243703235013820144565845112165619469400427240985099635835667895574801783926710424318878135395324531607065798861490806351629671649308282564055764595802415792526729825975042148064279086780612342778281516464646801663648499906249082146564882219957950354311246168829992868834479359920568964003185382725454514320965764263850437968005667000132063411344150830814052343398740361674222553413496306904207426213342724842952305091108148594277549724400260983912228420009406055672609296975854895779320308378040542902698135066872262195856315452012408205862857337623673194948724395757774321573844142501093506735313924586718650186069280240578903706261051501909221379966955182030038348006023029295697337684335088426009329148383157633676934525131030454308051913215821305942295931081489408726327887490884230235750771470819970411986969006036368099475092936806768012191681083508369230205948291751686073544854650097506290099722909193345676350116068642574899835736609035397287218578617126290890753543884600514343043161000787904027291143607415326885415254498310110821682401435166352852971435187289840047779927187684454657615828803148205439332173295476160070945902622612848003478371808286414199183484838722648103802641619058809846120051027269149730857180987577752447332302047534280961601699185072217050306696202014055507083290324255174147557700406010391423415813656841402373278150831726861773555449144209678618950233983111620122680314157891870828046239608131946775855389078822600249523361382268168568091875318064572376315290270705315568269113211643708767300340021009161699925445244469537340973447107088560362655273199174694395779263829971895863555251811431174284657935783711407707121302920599189775734007525458160374902335464041323165880692576705017173017250405511744054202529176940767330273658949149039727033036784316630628169392461499896993462968859765207525239372125164124820782270570847380700975464763545904459522904698645879612878273704000541058664397364447398149151528110206377323350890886289411060139038734945597868397193237646234856155823412116946473221704740648341721044466748840769099282302552583913575498995424779317553143319502954644740120540648165893125708531103508548840563092474112108777107063081199485420109134691220235250551627338877313025985082791229217385076814760107171399167942256235085701012462960084915150671996542212225995088634693923498369000091054949938302524786100639198035715271523534940368771391634925780480643592615297989085700464802035380818121463782663167406733215554040129287490164080087871121903610543014746072230008984719439233196242504338084974124198372880849961899878005136626828164156163161712628865977688708666704866334217940523279596287679870817291405991816181887169596144834420331423501389141644880925788363638342805721953806793721506124472426839229202712517450756206149224658426423622535343192430226584721800686110772688892514813638919122357495359719643641726271417606309612288570087293832676160947596764620029635144094274351721755994875539337344051135325440574539376747115632904599820871634253979869231039768380821087666787122395547572682686241968362075581984263384076627077319051974877112481549116679211503308274745423451296461663002377609754688398072981562593144562062663904126936774330072352625490030229180311389841187109965116973760444968366662104143952509321245890888999091875048228829284171690334034256825034626639464779270136765887646825106803769675388742691091096385462985920217717940163703613274186407641366085722439085094582454744251817817087933351999633633069120447599358390024225926739832655942492470393820941871305084994829523714090848215466609905724663254668331437174622647385737916367315302882526112482332696059316849412483069419699701446636265493467334175485011452349191122366990379754680584725061542403930462873523911686234863481543466000344461695154843294815198152598308399216568626810950212410671728508805496874205940945021189865722237463121623904004091349813725308610227170917812023064622943282529091049203734476818455121533266998367222423678571496515617067503023159019860376288704929802149101890783100854498092976140197263480150657498413612514004805527316021770396873501128016687417649382581462977194500941622925831801693451829497941545144704072285087944125428467161800195899852554642881192922172223275044897878799789382083622158812779368826062742430135081459824288033052862308259472413987523706527091516947860859653531727807240479259759770534313066117134147503749694441114645857393066416724663079286576872809736262912595461291864252872769289144699183288027823545648802581438852979985053469869311885284150817358608435047174147353695454549252168932049801848078506987291140717450089371044632623220836688081477284796137442498277276596639764017362056054655781994674261475138545567331330496088475773411809769595017763086900365509801104938455697468698010658020365845837293913668314318673207632693407412564477910649935014062915559185731243626585645667295602367519247511297952447375676125026208322239726154400990400563066842734579716870754380756068267404157990397916514008540084661771877006204867010193687699547537650931765390309455250808780949820657776567815833562240329241211583298716088543007350056270150331080502999961217251787252763403703334168146874567727894920500182276007545005105144957202538879181477974003469874963831925418231619616515341388440655032603919172865259187510157598778247750541129199556672421564207355404356457004190932112040131236774867355111030019501934617635222754237054870373395616102893735037653058999819982023517611784067186035851864731373698811586114603273781563236704772921441215051492634653276010448866884867176020606863911993327839182293897332296824564730331951038998295328114646967801310966807256200657764014481654745926296493043216623649798993433682825608959060534069427984613723699488234130437021692475685409839111297372672933247931366766311598415407002887994556514526708091029249823552407208292365476284870068625693035328903001753183561758572361836876650919178806485214741172002729732884284805226005320272376936292070622794259888978659472224194068338688307109869305859721125161642279392592471041792150463238593842051506091372861194679276760158583487320427795188035382745094476015964774739472180033728723093057022167338494960252744942039623267053275475385944233995346144058296743903155440353090602616331134879474026616632627816290588607330474542180883237162057556786086029814696511001348508434635855895977309539489960105790993444856655934454051522104508420820165957247279871303032114884153658501673420950198859156373508245605168852063798044038066935375650184485617712019250356597513816698033858373138495778550099665124707129976211679219440342446554958197434174321412172597638982419120017268811522110357535981648384296727266487650197440939095125943204009639106978577426228715508875959756924626812273965420103216196498130303038282494552049873910392511719493070241118815099547470644702223280028542143564069257635661589541820108122022031350737047495475944455571248769288218027229847130216339162797478199350257195383106358354878324641681393488332546402888120238707945965205081584283136966970183960399823492435641792120370955431689734700261133873504498697501527676547900998281459546686693347300179882237034027277398896438359916927772445047950938501602110592874251595921114355043204935097272428166484747549719261363326275434802314897509229853288472365348373888863658730982051880185494278826259256760472545072354216315070296016457911483063581982289958770327918711720098864378438235146596548739274728460492877836870115072951251739537498366489145876853007429954401628185794594260413364285296938903862946954002607976285835102514246191945400777506609604221401408421718864901770077946985231452199721826047691694245756073291686147165060045094965414829123169953857616690009572594234137652893137057533518192066779236249134281357725700588171869551475659184593578030482083623142648681166181371993800228125891917532874737120789331390705697617453779510332201691874136444026550590980954221789565608003435183079403534943817487214820363549488940535974562508748760633152387519570318569065077667907777752738055076860297146342717533470771692372990020596474132496984767555559229308763506954869395687873357802352342836575450921336161291351770959385817298069273481443885432480782634707713872513530915377037822855347624043880037531356552345522220961042097415358467523930254458765279077917062117250131588869351971677884134725959920067671793764739408502472806278880918465762110341109825334707596888684499836366359812745946810868962991703926516114568152800475482637054784965250167830304187773041535549604015495844928883256561832950349254306203297744942954979167833413654026281267192878483884219848754619750122687634221527672364035351655659842386300589247494697065880755219202427383588795835364563478528249449247463985875467363130074163412274326413753883575729547380385426849505999270007649879351931547019041188305448522615321956703104042560849300339874261685965068077307469513250071858704334189578019422251144557269550217994758103294182550648430540564890038724584022725360429738494961494722943513551421664945874138822778962214970635569777400313124350893954141069914326692758872149273539265572563139825171887505869818655746861118700542234726907044002241444058992915798699858311429650002667040933109270404066265645254465135494780777280751528953590082405814395515679111884156671832026487886475799946091408589611087980844453519549637103819724560327111875252968899391171941194486605975119319364879992918505205931132030320694464607910124062126360227744655210387970009433870186747310306666926857620597695942071035814309165773550719547794489411866927088648187073061297006551765698225947706723524173222272013922128361492024567480030282450911281583650101869855830631363655032347949325617735854317741179230845303799961151751594439207704533717841787112558552875469134558070122022198861732028665297789893542504106993686497338146244379947314573266758927427000982243132411087643703503390086183396964869200171249382550562538851067464932840080942093414200139018701764825539460503754989080313930217832498281475709591543994096007886252006379795911017307640080305121518586418129030432872817326794835106811659193023459004647030361004957009494705157423394511868649471874143398507997245869801081054290031234570290692678410905608523180552481379259896316502658034525622422782551067730802886714503872117275718857366294754858473603424178035303425780802769735389577474496615188769352780554258672460445045734004130166211834595984804431323816074971775800378533497150912874792132256886474276623948123763373002397172308346911170960275927746909547802327473562997174792774740215200556132942975295572037819177288678504667656609784322819893605445117473960713790493450985600121807790004041903506106294096878780738676411279791311246595957992175653908447226999094658418662436617151705324812541289935135351574571803841926530842757618375472575605338514980157174099651779227645247677659575505125000266994772529934292797101065216806783242363519673885296345777881654548934896990984365647956391131481559256542158658222093671215996621402802032321652386127068996611131396775578942826978855698784145726683560704744322650385186786607839202004350115833112522698634118604747567824303013327699381159855463515445736066492386755912460234246374769950211294863731244219591019792603605057069735804003425786664988294052772692980611497610921655100604957045563765806263813742626974357391784324292561935149809217435490364860842500715239589022341038683815173615202264392327539416050297423589410681601755729026457478802642379546056036312856256301549162863136608420734646615062115355208210815306221331475641781240811588819314876219957656827317869093986463443985354100420913339377985616678808379482564300438202657006812378833217955577591816992510118544744279864416400109823429187859376765093073007326073509021596881483203659088646748632585072367849151583294246439462123155574390488680636414462520115428044827959027642105906810038512249182550595602592351729587287460017858498591358701233520206219657235440232579004818559473231611942575671519817906306415006442115884090052554133850566398655715010724250898862780003836893882694682447050327631826537181938923793134807789379688768424209584344613391639419610674353761805961922466154415104674034148875675333349142067746179581090254964722833740622052826565263750635372081127300389260987244096857132426615460472317886704327765177963800930444943424344955897795026673053600340551440902277397533897383391484013496623807954356848898733197509236855657270158387175934752160253212289032477496385038480484914334530290700220707105491670401373099752527514342423889045946943124399153102431947980148223358999543663012939298891521104507407256452032396082369896638447258383904527906816270358816486727624253125912009195593349016863825680288827171152851373727808666741498424051404489078400715581893515226416191642118443723677950759085898226081135104207174878056215522941091100581562960216460130099041741936672422627446679586665524439944582880656827905594193182221799173409838697609094126597639990328129608621329685993909564651655543106832845398133484944947978004019629789357599242300109580120085671094372810658772195815828330770650760130095181365512607642255515467747500234952289972192737274961275568612765202984881772391764835641934971842959299540245690767547178819415946784848055261742433586374610871688583702617819523853284561310482463780862133306406421360318466012948545505203369284705006200417721156321085369328956993476847375784455619473553352481685584487091507270561935393456160624612535025596668927753058305933741754030076175887245006754359878171835814706654887527316441727132096154104514342943066790675588681573886455461283801176569139144022567102310600078924843236046359572093606092701095700782085331289006771082105547084786407571342098551213874147625421692427614639742835262397151632405016168699409280828332659763742155767098958093595981270960675411357480532991458697718408989035561211004124310581045360529961738181192740625754838896796588505147208604564374067455548383923392087443727538854990807892146142684595449213638893365638077000350973061463182848322987157336057718561416255735006511459193365270869099687356571660044898472368485616176443503190779458374942869131846199055994688572591724298186503330055628511818117283762931237641293031007773422187326312195908431933030556217886912395904292888612249593246276542568668150264265791852094760656516426977387983638267777166544377058899648442065122684042856090987178626510731872116170881568954710483822646539972235340152572415502803339017474826973141370497214758099221059004282636832174291829104808617187529300697239665870020180946311732667516796931707432744117534311970488703954195123694285321890912828254922260064791376152219671029161521958024517033645543893119194286990101725210426139488460463180598431230935842819315879580682569039640092212074323723031872101101549337422607198721551962229080003550683847114946155309366780425038872995066664737269594358468133341366373765533752757203952175560144264662428712033441850897046852176656518853951884551097098312590471533304485257738633871625968428540166186550231397407931256991105295760044393385477616681201808260609698470523778076058492572234948000207637351319283641266847620010381707057024501767941594448848780631329327418967903605924354836017742601305613503208753731129067374224300655068544254153049942804946760774467177618132612262671553327496116557681070846381412735415910800058767603639605986360177399307244118612229045748111469706410408711267501633657584657619067758399921836868285325943145171027672337402244947576192964533285036355072552209465356796082870686393701762019702652585324121139773984617923864531221267547465846812613272873427724854789269484912241256188124560004594380994480911593372157931616087230633807160681484879976689362085964832205363367161723695556738481498506537997803121671097919650912015535064036469763062394169349508367557628139101362447909819777971730495134847359128236293184607144880792091460240630948110212037988742891895354567398228496769466294268242370385457481807976893391136118947191152213741331317817136142946868345822591013488734769649597867203742388487478993161171216420611852130288969491574440041460743422286250656802310509268276444846828099488405429700805870340598087797647597596551975029803615622903425894265145900214341334097627654876916110723839808316888925965434305412655766857872811549758104449668727678247301208272045497586886214821093253974878630782578525570240425619393276099400863535819199421302285889508469842490586402661735624014994420566535087365470407762926467427428986417154963861449315154076964004162180543519470575218141018582560606124676832341473427952222287401312696985161605413806931420864133153728706727540567358282004868211224187023546094169662429012564882447138190214609462237549159744438604300488432502033170027144901553067143941116475115598254402945274392387456542953803379141633444457577541439295517426243767444145688989131567080726533224124022806264576534182829540919798815060125477174184368321176936764865587073872938071267926877841318159575973990677655642343034627707796971776059186545317394530791369284778085851751958086967365352328325747334100758048635198080814596300901346784250417838611306038528027386246323291072246320945886584674128404130006137962574077290810049646323124856966117291427236037164153499453499771131132398933983365166005765708470867431542803348207023006331534722718548593196803038625387753841934553524566563731944795752070359723379577427428734256108697504984729751788553297317021250715049384028861689528142749532575405986921008296790791362014577486641100029311832685903065645700901742212135943275305758807936723939357186181445413140326369233175525773164115245267577676154574147543634291538004850305239902329124842798710507727722819427317827394396180810730408476458048978779111760087088317036627508164199379196585074023161249927444706112061042079714847479636966373297795549157898946855166681480064236282816519018409534933342644064285097212785217544692534936611999013818005388628387828600197552789180899161209100120599518002364178937904781425158561166629292814640173627748215911545811812221414956130166325903968199146342299838754176188541354194782542523986565092204817903323901014486207308820190231759677261059517576662078619027028014762841598027799957697755111991580109814387276688760822381544030924785774284106229948170580974294779037277959426692884609694461475910900064612003103937795781092215949219206296010095867839451190840629718018937378590448823105400350303038571451505739449315898376821078076549463181680156974227525065632283631931708018940299523458431459538188507562515309914038942499740675430425366480963351504155188553355846073557049813985861531890709882749330925339059595267730760928517498618020115297246179633581852387414088776742695003875346626081932282140591975506068202563539178945734386420609655271556812220191906764193411192866671633201846938809321029073762036425676011753707531658225388899519866981329336721665190559095380089764055611439921798777366707993218976259981423369412962250925827504924373045227903460110790370800480401941429145316845418501334634542510371169828564668822484508999038141291507992587586613785030485872007151334074961822228555711936158438099788249134844297073910184705218211934372312113410531933827729891080148543887132523464013613835525536979218336618235678194983904499837887984828576498857030713595068005293478302894339534442314724503035877362189687372999552040867988972652323010464872880185168441803562337053019148798437687288527140523404303694887462753056413400933666072728946716311188868349965837556754494169174847630595461144909614173573302689935166224579238290176510370645660436188955408655260912249244704814411236848031169234755767806854414001666010691625894751285953318594371329535194697619296433323801489053118238434159758719256190291750786355499670265708448157755022218720621705879543182933225820379319156203826923171845032063552701079993635525045729477727964794250192437752034096687912773362921044438427514854508871330015852413603732021964936919875121145917764759163303309112174725897581428518638650622737110860139584917187419543130066379693925691900651417602291665808456214684611177981253519305321227842728896835225928613795899643175059016199748054131897596243038059288038837892391762298616146913178194989017227184237084246075065412631365377958333421951767592488743959086060884782632702519314373836100279995861078417013993699787818925537369852684435245437822697503532316008221942437743287172148471147145356195852267628326257136406537150244524728936993821315319719324503527516189066130164583422716825916639715521090032717224615436590015029136824712398929918359668166802347318471191999750787515511965913195485542633229430386901245343881032869857186555727702765643642273362120798228196008720133508621409274415671815245774910988898741368164919727214220538370256058162069963693991057859655711940397287200749686496758286044720901722539537394355368069198851929498343542128375683651598371620422359960980494988586579851911139768984652800350410732232927546084010941585408211161087450845270622658175018570448744554199624197762275234448970123527067736136154575515548900662616254267886276818377720561488419696758375630826003723778908069181979524979778659981474102761406663309223802330310089478475007655673167006657214750459538784493163780874141276722526626463165680980807013113825008362296631861474886451317519745711923985326545855599668368114395694546417206246241703396046555932230266911544469861416852807093269076622652260889501434993788320410372857130050783685355362758066643318345357044373000967990611364738979000559121229543849359538618485093222968474358737598858180280045075277929188166805119378383019071344148106452035410136940667991230922535988329562324990414302366528843906978373113975463803126727518335789560816253036598477863606393182608749983528059857180221444417022807325173131512836189305117373896549067917676984172602280624483332907319141853476073901023366653149376694623925298773342161583773869005105073242902935202500094045353543728048857024265410905488086847447301558073638770864380052894823285842097994593453763830420069012245762810724993949947618939880525079867638849812788302337534861670171469308656575097821320464981574473719395588637635747145677252075663160588214024601294341762494394942839994434646108629737695729808298332559020500738644188712311777767124433522953803756223624766896578638056744774121296031509544661212511267141486079214132350606595474623029812414700174059062020532602216615735069920957932527657034774023556501533316466827945044832144368919628924598595263973085466089667019788519521993931452866787391253923905602673193266072953625197220909666419134987404276051851137302052055700778672053550693774820202975930981985749621231022408202272589567150275299184278977684482215312116746175762592916699390488965007597528859705247300021669112535425687612879104344354881601066242902475260694258560963650139283828850393153860741075088800231360325229830129723000817562343473237993778605602632426250933147948232023440640121371519074471689003583096545770717600004585566012813868687197787420902091506987730194419500143392663491458884907518560555284692792518044207163528007619998255127715367301446846212022444948291826413762025572627219887303075992144008989876279430365648783274691520500417848597327407743657324891275198532929529760061224200012454467781904662946649081976313307295082027593642599907317291465538979494672699750678235600463200038796699269873314396920526052870127926372189227453189054839397855713647944015423499694392525551584684684859191219132094226580737213023361290220744954527000582354386946508588618900521105647199049520568830912300506944401377087110137414237564466737013452503034860491358133036958947266788978022200970707376623007926145183778246348855728040839425672652965313097165552547105253868946174121553084784809728479522559207167480797773194171016605942811723537225648452936755707087713848441008175646694327835991760506927907553154286198255689932452942351926410243115159900676436728782530043423337687895540897200197465942175157704529436901997402016773077753000682152721001675310320149353582422288503132855927075478617192930874047945576217749664344608194192967178701740345494358048479810371908900860901798075310232785016303656914949107559491389520356288072673830764715761125568521447986116933779135879033716845647201973578700255356181402442680650326599860030956600602050007454333899301503626528247986717888083271708605911485331574531422437851488842314532277644930353035155309317816405237250388372698272515834113132293709789590994211017483923517053292288329326110064074215588526805241677812319370296596295442497841184734653524667584183346762308039173415636746499298927118955306681143168412241919839107856360059662373556751060779179189340488336380814569278206612980348686935932191967173700400916689922583541332552518622870251577147488060756321755979584829373197426992711361642398967834346602450358717805276652129894719916978690460022856907704304032126958847031917143225533624441075165122715666644808258770962324831425723314095839191893725472434824598791803644500124437592621038752409936071886237639202638118027995951846923694639426779318229136786624421552649954811681468553285147463597121926685511918810100514586619579502979368571990004123146513466012758494406833456440120965119655741553540266596821953062043363773802038600230865695411938341334352606916253907966397719655720854451233347847615167080550647243284167912880579429953970215683123215336998772804391809128146662876755039104084288930627457682630305628982803002521249315105000361507094221723440507338779935036780691582633166777830987074227059092635378246381508592245508227615864578609806704516337322240410087046653831530043991562203918913366398665401399207259870550330583933213246749117406786685935238322228936968804521437726307637971612496917070040209606632250695355119566466328707936914614613717404236730000479637552932083691981191387221226441410952689023897666532127030622438154503852182897703751711900575656850446937276161109474202338468139953062827107678206623795357596469132981746635289454457552299811497518280184413359974513640419606395211369241577261100766467533347367911590882649425609050930807166034040757818092532587449990162836620905092647259875377357396794987120578807276590331142199723302184277464862424907679910156923236566260214633169174753972649878532647200513944396798882265207356566438654166937633689887356997111592487247846653986274468223510195908382205647368386788798574560580070339533357899894998754023036491293269152629905111288095869078360240596353584617751034260327207117279011414322182180047961293210051863662929737018370950808569987149835806802756597482497325388967666354345426327501131241917743232290644321020439204973636691041637234176404143947284643867394280283862571574454778641622801777837350703017916183998758122761532411064151875245874979526039970953938392941969456454827000374964304190495468910932336350012737540708843622462633699120303968630983469521497684787557433962559349515163453361763261438931003885429114446549286356109746625644932774516080465302129778442802986921031626565383038766387103639369329257545239660950030647208686037408183051152023096186511374661995642075260809365249076768427332822796817336327858883580544312439259323246331272295254818238600923953830872928644205461451029453340325614135132370943067264607689396521975729244654153353616617969061637802330378427496809816960705130592598919750971584098567110592115197327863616377435575074823965613350514938057385292835551398879468067920368540085438914341448227930382253782778125336852921350415281260329417358748824593175175701124157864283516008894505658039833839133703938126407470438505418055523579749835355267336718440617202526139021645329678164945097100247829397755175333307706847144237145884315785523904289355665893476702292896284664252636713073915833707906354169869371834794796053938405502780050164055799976302928655014286074806884375035725973819958578695449525369923394215266078895963731100125277599595701041914481191465149222342717857505515184329281158576013488992487432528753093998054184431942588334389956870420117728011701795867856860200185122833992728713261019656705410818607559505824695109185110259541214499891914182101980544328704281350790993536055580997415990392987722987966944268405872288132470999510880048865145987681036590882505134283532249575602155118339746718741907119365532722338849789153322233465582698151836758251251515269317316031553744835946743550732038820015376343167150466417298922584798608939595388710244762666253728029088900776371810229403125417059272095596560830489572556082339942917524955045491527201141293549943115981959724577558094846987151609598143801255990246298558479863004536494664780792169619936419830394822327812762755490087691214526172021002730555804221100487138325362096288680131560879216618870887550354370681452807122066893543161906514834261336435055530247904606820297342504662257556020702134191890355000546657782088585773685235488433089849783067569992658235428386103751673050460130737608497633436144418729613646705256521815642061740236327589471085443145573792438767347163858501249449151224143377423374435353303527612142779487379184439042350408894073574867815092674114661501879080686565455266039640728884722825131009857003085869617506527528548638809275704343995077613582477428856757565217534951867932894610841651383910926833845171674593331240746513116406991934671485660248140138783281643819679223931861381692411628505861074048753555399801743935372734870397731938462858170277098331313314111716584345929130907021319703340085225266169336367301887873188724221779467055860431387123595144219408091542416758248755456319338409469254335619977351656300491116970121237395401874595288183019797705693531865960605416364296421164589824128543539942014289448257094109760797341013719569509633244824462001938029818311846086282017549102765845586405975776938459189282141864620788100067358783109292759249114754383424252395730614320123993320831677902585055619173898270812893543741240543084259655788726218980285813895862274553837439513579387613847437072944242344204737207369705611753191014513646219351427063163699680163098805799606739140800732466739582707263131375769183693142210215169314625949105971342116780899225842747850248899536838537043487707560303333662271138494637633090710083437805839891766411202206194769030649949346318814339273588893203967292088012691847161840230588181469407020710345788843114670852719913391520165313068541435440353521525301928660527213447676309866594412667923990944370331150719998516471447697271269519420831715283344851199860538140264614041323496227999516679268875222909064383669395461945914739004420174931518903725760868617408126289798404942038612170972637964432520478707662973649396827818009597711731041565648484865539913283014183679200457063238831394016246769220894498203784737051544178142206515134868635190239177056818541622370235988090803420678836033169486184016447394830902329091747143833238191970731719190763695108937697867714862189779528958552182396386159881937151352396846378732073757618425432139856986085150301663838130218559905495032807913483825265135492354703432395699581223753831842040315834251714151691451122048965285867258988279189335534794902856562492743703718901365349863784980490527432871837728063603658319357213248659600720663409432647749679270535192435865443070712712804633946119144930255588027527774712488617978133881566074933320441960016992672924500794675494431181755663551521727523333480978231239114845385408885160669940414025841239328216020331242409639720725436367159128846512327986685300778172918100422407285659471867175160732375130027413934100372559211020192116517203477286594443960151101118178358353071707117487895179450077363710768093784999641104663539156938553106975156642382190320992213286200097385046049091663825414830581960089716839096883819270644233419171583622465019118753770544138517594494780692635743926611215524983117329361303241442670501973554454012737961264396899527504277842595310699851547823608640271238039077103389322722407850046601907866301992531949497987394259111938317957695652430475988356461479786503248996963150931294378686719499366979853325452671389083557140650099740530601896649343233541547812876371385601999008766294990533506027733603429113986864887574054866751889259854281069667780618898182271449995046943618688685195811762817087029755416022470440779762666801138055367938687696197916293632145092440296490591112025894018289616480000155281422104165115046900819988507809467623533429873108871881288191159500081760958695413022313031683387490763634012639211431180524392343001809330717154644423619224417400123361827764293577786109538070364779006034227385292489592754419711126599785151218822055664381880118798794833112142710775397268395537805822599860679794276617802448930673874664926933613426180800893820236716084393399320409850846303335683918898602232413207624969106222052059944930177793946522711334979056967028692748478100843783878023472647012839537505619266515870046865816833894018325062184393765268591749596906925534798409576620318011970271774703573506459927772669218588024530436902205267877334306423137581356547852849401918186079696432463642050080991929729949643392467195271307918997962318161245118382734334131736143397720651180544508936360468838174538396885512210327906318620442285184673214826380308325573711440876293435072252495672710019110129778073764594284823813216259386547641743341780841115785540864315626773419355470584370992385270167369904315493250112606137400390589144151597133611636246999934367836700272047686830892135962162779363577028414801457402067926128099442819819217123152879176800615824100954794196630129689505954120534925480780186613635101648938486010061296065277759991435025379256196130311691653053531831644794862177625121639627111186531661721312284532509875517779199069458416731943167475165698551096424238661557098769015475496295910529168374942817299391751105876737075876643625944787725699224390982156559281105244073798961010852210317078893576940023891267103032931213389572770200753197654760095824603725070631119866622638767973054798116637452757561762049696763307085667924610944304069646351884932354393413660759001967842152437544710823404794735377058317409155957938914495103320612432292354750444744353477095494319180214659549626804495706311375331576202383698645997623649502994903161365470351238353122901002289637710526126366979238678221414393233844668486593138204306867480366521306669729396246848920656971731040334442403022055416247385020875666902764387164951243669912652829158777783859967732978127137681522178033156605759425599759953539057615458195666164916399777526970260715616610405959684146716759127179244565609607949558931319026312964186933457546013519671405166423354482910480827787406796528996423312738292447004376758705601101689725661987047631391861447405495446841849744611741506900881391801262119809501666532982085508192424602612485606283889331689947977392113231311998863058460832876149551895993597518644081148340092750693560628109152832159457211060915472230330432013902427225547930710621321284783854744621813639969104997563250361377126365346853568517775147198115646419041299115809451223620187178230425258666121623393195976002073823753590054158512611207925741796888596810127315564231239550060995409501039463829000226972103884805066101838066357174043700719541418491086260604899714190434971691605844312299445922901358311890543131274054984620724932336150997087515772647969091329134934320124045718048229028176492003924007241746321137153180767828155175875301066662862727748189069262869932084313288804455357138757406148819333161430845534812593509218323109504272828785009388779165955595079622006084177087128252289134004290824962087231824236640800135401528002146989573050046950626635457443844109087093271867272927266480730243208162742325468929102576223323326118699043752778913835224077813783083221323250388899319908850867256166703752866381973101082234673478761858132901238283290245246473664362178934071352681520057272323638059161135770113305538206473354776714340776205273307431658490705694721513532495478324373813840332727734179731388426770384964289824822751041464215452848204537539779838196884418014300603052053443380434744941704202054260190927504324727563256833203402631371775621027994137528446885808689369597383584483890099069657964452789030148115335738549588958983442702560708935035950422403691867500829897767067029687425825292773964624048798718074952366251583421879934649588766163684464108798167480289914693807414606255341121881661507971433677553023490798703221510225497956809371324998611716756709133036724755657177385764102445597270306036326860317922421312015136479602608735126306420666088528799427149883196800984358854307522372891554962736449293514256492678505103837468850761944109046156068035025192507042254842536256691296808773029930650385077074880566837628860662888719163367007965453922646408689811486102553205770532335000504885268418468002672033176022575776617951771654943546514707216139530367239433377815176962716978597885640899417521790207702892349488681058877870287168823227981112302554928041997404390754615207687297484154227106409748122949197626589827536510064636393605769984968170345806466279868439807408934133598946235229869752501975240876229806648837927836940678022457411871889612410955217775382355360293178022931562750137963521229464652373049076097088566646270558829032703011113122794444310986152631503178071128802032985495739739053397804753514203238054142809736138898563778065224931537342137445517151143981065714550038818839778038397715580326596167779594739098140910258769488616762289443243713715048345282640208934380854303783949685671219213703231215815345079195895161861408176288715939826595019538458704405981899953467849943915898617819682370175576404862659052644191808307640117889186144629250183876408518953256913924645056533221932989799791753173565908571784778767439112749873125058709462363911873523638924819782786119111887604753632394706972442401768920726113351619851938801880679726197753440607618909853922102739899300977727976985887232568665577390171483990954662164081592805757215825411519897417689694480483335433136682985384197603580702007358376706614992601995997444009028578772212799395611002711298776126728784305304315760282409081255794207109519574205348849798128248209995820096651366851506862942043888074858772984279913142663222783156253020062267311363312334354582232280214172988748168088167407481379623246696266436072472114888781810225620302457550531079525462291192776155314625424947434162792116156884297781003861160551945568877354336869347449974011409308607874813325686167907504412413706828517538916181905599727190169696057725556847336152418354003982814384992883174974815946045383277182060319128869181951599606897799739327948867670175206150514081521988271376375138330877745159688380221760922162006217964389106604897219014178538877301648332264716271232750372472526870044689260662592851023100642218549001985602796138236216080929524539174273958415927945875297498983113475168835632986029034388715421560377450481955737014562426452763571301674433697602140898402643687025584021826427049605644188450018947316815294843125883429711279950424152424979355483960463779251893859585910138807560265771201798933095850922373286959431459662482631797661742932752066277611416950040312187984119685903305592171235328824333525518632610615557824200174743612378695475741311808069923320101712492394068349449830954333232751246305879809619217986228287925008870183708361622629790657274146017024752590032779984958544724567912713184550051449932234388770900158717271994829785454215316022414915553628628660834972358837650745129235982508057306622328973386837892688473251387859249352712202814488673745397809489126899134880815714736996893200375179203334468599594636498289956832552866291173159257133602136726958986793623627679136309507516902656555159898197040243637759000072358582403356539986728583798211545167122871534846777431965055274838886564226447537392923442896539139371595003500877701937866552668529993840338351559408893140607066330709231347785227952801729397321056628965447770322545871093637664753453286169446716819620090690092964635054773268478038907108171954852426205184416758514292065080384671588441966938285454533895835724177474985561711862432976048706452413139642653896066907620300372593334925663437744644729433840883368383648375576962602747328792050280009696811405092127753930703146502819400783788912031542113455249446992832066087594925793741062207805236541891965355114399286373511601270482909464610194560175659412956314870248855625152719873671528420982762635284246513480274308345645747280932857661668079422143693769951620912070688367233696334114930897964831305568993349571703922581837616942573176198188683686202652029405546347295628735154216785094986025500319400727269916115184199978616464302065120035943498101277376289421709310663710985557508914411259280601809985595281267637185170577929098753152792834488080762300481252352865132306612901800807004514304040697883733434377423155208735437108968578368885080760097583525360240015956888315829950895815759849560442865690734132669067886781427551790927918184278239321264140105364489895639313245651900460872093730138267361320930840477115974502612134288184169130857560127164845921054547980883842423347952704054544214797598774270166212045446364791388818161693220624478855259613160944519448245371129621852839245880587876384284189237608069702325382288526992497671922667694254446951503984082736015159923742555331687564409001555404764157221030489753948785002055971291325892448487059026279883965502722178281430235942747522251942132210623612595990248028177915105811444126669950763359299128027635276312885044540220964836024577870628864140839124019109572578880710406197528405211394330280958548902829210210345020042742406686226861449787228621435758504877037446056952293539154140404424390513543485166630709699467589087533320680838426539415843222492229985510386492152075113227554862243964595409362869258897166006921755250244574571154680391834181050674785756808993088425818870353041393563346930539928408984011795999017381875445450133363895615697798746976823315129759718771689189353247422695957754389914067438193874216509847562678767109643446165758989603306205374318352650171971638460450499451930881859741527945873193157452820559514688799105826506492261015806269858609225138524620130088871792368624659557172468257883201667715268796792837850872184205104067953470505986538232629861946083544055589764948307160324970584560320347813899234215597969784105885739456645576861589791052673987585024725117305518787036837463845808580645532194024503114096528530500134440772190650886373043279275562995486335452425652395275828923683367074085404768030295123474778598946702652708242784670520266335342768567464759797566557603548245111632362508797387745198619358666920744682796825490791693171608196021278574000365390056219037602476324270200755940773335155089084311068363912101270019242242055675482217167876597637036211672213512532056117939303193604557315732596701478282793731463707525373418446914585788817780039696244053959569002231529162533743828696584474233900529810902206102175220286356320484180134627827108966294459705618094423400278055028996635517382117086411997337021797214772587310437101574103824985652718373550303360911976310477516192786161629814121621224269959245746558291886751517303548666789949470288491185670723411984435555995062013910978815462748292482210970574419179548511582200831981960664365412100555795744654568226045696654093641854254409993542759719842055990163280831822658757629322235778279436391151715792047472211058566919830994984940784945222124400710227147166507671086483924735831961164284267293962864527992835085721965405935556062988332513131415837474508245073445812300061429899768925930326683093248600149145535531319601940788194309305913619031020811389031589275572136613654777904376095293973042597814206761325406863764475062636911455799334941700372690580865604839874413840895291652387025002647392588030581798696003691817355045876606886628743635988879167835413916202174375063042953922610486453505570622115030916103469784913547182812490978078177602209417059724268824484088310658737706557748661248802559874955903721592674841048489576084033640274414890909711537796694258242795168142952610661208728406336302243668105528612502076789463447449539150381336701084553229763072933922291720199597238750020984141735145461701131824198126971783226527901728118012543498073120297293925926032894303066637835074933850922654276294091199805650603748570369101547187688390227755389888802621938368398283647318734033543429915425046399406037562577836504538948732793246717474117610401302328856712171634822786079748168523364846338028480457897111273107316130872582749591736606224190634297980344593540342751648757596281732437989931285410116987565807450621240869614026942301745539060348627780230372303750651401548274150166863528869898018636609048973439416528249932372718960024965991164946371787761250417362078852361882050602986794401225579025424590836411253816196052516813956891301413849396456902682494541227763716605564090138799599765687683887844970713751345699620474067105328157019010085829389355087899209041265863823668932600814651971645490571668733971550082928459938066485816477552119238926468967267147857390951737276510793395845274141238905033617668176608406134213175324967087740692934431883335832450273887228164771517529897393785221132341184321842489283275366954977473492869679237465303778027217603257138125958673754192996787043211199751265520644180008009957969797103414942875418980992013526703237090249533158918496760195288212205487849799083211001820524424843926447547662852524355696022589600099427524869305415466415520156633506026814629871179908908085986698217062060909077724946848643915037507143387056589652567893571746074066366439301359952729803327999297894170551287610515392597831439385717512723534194128002380798942970440913378704670676164391419209458351481428686373143527060997354130550710074024306078113920915508814574695254818593789973564942747283040866375409322196103614223485004916066366536602027389904607359673564068753000222972566139315548496590106703477522242679441122266434748147119886910542546616460389932254416833099664630752904120662158568924485227757319514498460861212480073556944553650249811081233317023839809989382023912755412655018923301388186210394979280948392199643585213257152367058197890446679940591132551286236714459790165555017647288320237967552557433815780523198573819564557707871722310333755895350779083321006512301447796409914926254466593866355802622927737350279055724821996443930731611464936129445128369387903222540070621649256284414078560328766123830275740697334919663445717811602879168604304742499853790966103692073880628255628535135970301206073317849711022130924801198015990173157613521475597502440936406638109050115071028489524114742702874871662647986959361474202686162268233829592559337365477589951352007263133722431110807147361025170074528640429036360277413914559407351489723971337520961148008830668780708239536461196070697797413924606418047246093145928774777813584284317957581367567064258453483338256683655833027358428614199160877480693007076919650096468916722141915527605842091793536313084602388517995333856948988878893911954984670861419047760114899194781667215413544939282615605108318225120988314929039808622984691090534428364513675051639028442446172555366948851878833163878384908509632328461045040671338343902706318391244451225161194833134049969688908730228355999376466862663793962522065977708218406011901596860857482758515658689448742477314181695281426197132846667410135419809268416650332706714206246284606828940661810303676690866886551599180501942347313321733151583935973969802710722630946720406177808017120185544116668635309402313282605295868931444516565816065807328085023524246565436798500831984348153197378136328746254067070148350623028210220548575286403603408430645568144246496930030950595740845978294305615819346193529430031455416279564502318424738256811136290242383987009548690774355117975912507736589493699032988971685207456873290767064231172318262361300203334707452982401350124528341096375305520012809719578461085372895726702610519366128368789576239942023164542482268737190513434866805743536628641031615457074050953151502390462888937023848975480207671245046056174757162061414356808977924191173833214019198979337391389284945826238864177077271598538775952204221520098749799445748308636775026378651978110615440022450771806683907673247368972777077574996837938310725134117462455337418794842485271661107370761536761285025681925405139435360115603196983580876239649355970052956924291837282247527561687619626815605630959832432728106779973170624473856293332783695305718196923587557199383913763183956012208465544425666761089485425846773514349714218637095046851711072508595048347700916213547809805977708420146385020831579335351405595431845223952825107516072490240044866434205062155628093695853176983997904925367283758853698865661346529721729181864337082117303018242036815512840398798496200470034874336965912602472595285173119383972067015299959961774588777205985729211387275778049170728412187815239598639778617504736857149624495556066677237003475003999799804913810331947198678242347256442360992035606031440762171350719617585411483659774504961567764061809768530306071015702693632186895553968421374495647636568900665485777951895653385338457048762744498359871298499821665961804340945327135409822911508901778193107925172175055450080787312739964601260431343312256506634024864335292052523626839500470118770788846885073508197453722178730756582727491413591709280388623020084986806517213819055458923664218090957669148647822303506999607104884020120125500612801092596281254716833056661075556587270747071489870379445120119203119364759477915490790413439175075547814916157524814849875967076406539564149147474033672985635394968812507731253907783474649294974348526031740855379510249970560184317438374790640536865609953260138089503801794939554139056394742927080379770762351197811235250433876287648286495323344973313066603674778322420607242917668089275813021486091327405324582727162536758823548838683639115541139540122401165603363901177176141788622746226975498240171047994060409617532333418616178276010561558360888370605094116371944624504428168813351841161185746095282985402770918449334950173752241890624956532934052568561089295477166063946882853176397034714647620890522300803522974133854288352143766947206503046157634168912426580407440923238191056196398980041404858908071499039465671975210159444810917078164607275800809030366559182217020980615956159451884951769915823595906171268820229406498393088188302091462275958909894246120831098281724250025425559045125427396205399759976926278176732993334626487459417081231004006242514981159609967609925713131488042935233059031926806299930851306094507361364650876498113948545211223112085960733331883894073062299510029680099535830084435289512280989797796398078633254974537548578136397525020206803480998753922716391105256512666220496374348009972025473098995499946423268677805942820899678033207350717075513836804099006708872511186064689962416486769583342794727788957111576716448881398980439093725419125141608794275121252246448719375435898997093030070452393992448925926273741756364614367747870251098481721040523183057679697622185974323624233514589466125555272172915177361186362130224932127023506609877852793462801113226096698880562991268122300062308110499620900352641595032892286302171426404761403102109495155652284806996946837034921158085585781058598696808893603846874642981487882201054949041869187931845766767405242044383258305049613329557325722463986574584970503388555121749115931514857212373262679107845875907120549378342052081593633838668801357361752350199777438430664356872491614939621022538983946894845680766395846279538627536734972492995203219817618371841294347918691780929530198933895566240668374853118703212035667455659944843688529881286569987429056748548067628156259246153258668106676301414283156682136411293101466232658615659025015855775847176600423402598600767595782081680563578891119421561320000479668407230104976966554511065575628891598820714879015121478139400443226779516017597515328530372900039286633358668191041973545594180948596764501889182420487281130053925165314749307318074672746305576667136472216241201619903099038104177028981108776845047991921006188118968938114097827915579220596227699425742125561817628766903941505264715716453939606863454877586168927754473487169127520374091525937139409450269703379272082535230047682167698314772600632196044645362024917056670772760782042005001885071341111804296814106531125613192650854198281085813406988594428112232171342817852936096244789237117400422781209977357648432538260799756776287311501590950735890600211582508976630023379812377325917112640075585633751550665154531847415120512296138801109782269847126887682238044420183082236191454211104412851657820013511474640928904595279083468283894593510228846538260435973952571232685653990459433054572062874008184381892903862020725684558916641114509557651712206276715709196101613367688120247881539483117796667604791650793924749046332162964467331021760892587927396360548563776334556417982338789242276348155004371756164601610293324172353383366498356602312110960979568635661115445971534215018088682683623710400037085902207160184298429837778375649931299011868647142370309744598534967406515633333848777826832615810560295418230696675392753462413827610595036330617938484472429332071420339778475956250040769927058579951428037911656100390306883530598353543274101653135612490155507021284425137032473111477754451968970549432656733834872459048071213232517611621351770868341343133734678929543994596991057974995635875076341786027755996948565146518888614060100266623232815735094830396632938752265617097591547562616465412796156382483363998321338907288585634768522892794017959867600391855145697498713550963522712640680302446793776453045484635112187232733976842061351245161414068508180560899002354786659783426259575139204558710912390156936671733061080197339705074499997673279290379422771962126546991351623350779162855686676874304891004102792159045143928190849742421050613632473166886509458514996167120837284923768262479276797227031798602011372226815458778942284080836561298591447014476934603713641107822928841875320399635903834654612311536488711592181769512599681033141723872058723923269238862453692696128098891491708696324310509427952545605122322674142413689563411756641225206815539850504183437806609074755413447456695718953879951182007495471112377945981501404546168461085963083067612848628562525244089568655569895830790223675092781734584884291006061813988457853991956997294059769068841584579372422439900082379672652008561268489182483188416402735107217784799399829326217289881775483961750902670907739572473088345469620378448318785873888350703740804191867220881601957884284520963954829272638654211035881268017782481764701130514657114602967514431569912956841338434526157592960882417794422552256375291630223963591846361536139118706339503207934981050966838853547144478526944439274974867582968141316784988780081685783029763290828922750766699778661216328079753365183017286283924706192585677598007694321844595639066857355852567689061577438014886627228704004532443678437768836638372755888841939822664842801818347329261400698919194789944055470712660899084521810991708261984878454625330917850745590508276132278089679533001373715527988305009655457923822982600775202694704369180054878551485447286608018136109065283766909420179422820508454179415768173580947931298702654911063691233505272258479750562902714580066349580255116646024207898828047412209249357439678103634526465643445190897113643615131697168302362955638727642473871227429177691182493093210791128896320065624371763788353451586484204133816665227208954696125908636560486524775288147128383163727779017940999277379616909063923091503542265674311815462958994117582863791806391372982014581454096428603134785866731847466671324582231256097330015966743014143244174612824930864477403118738818266931672801975717503841444942910965812519031319861048323900087454116117177844745696375660312306105150698094227485139154567777378559140117582333639470112833118928213098722944656853911918767679609810951020298068893067280413738030523210843845432203105527403413085573906714392580510280978932588066416936227951013725828340628187173894780963706474847572314333758174267340256169758786742214782585906832521867431855113395824593414948446924232477094445096798948480911414967208423137126143117016002769131958332396012101684844247339035841257931708546963933849678812158567109911053351328101096162750161339915004496652802677530949282841725911492108056290763537683612697252219571497707209677388559539436439193429267189237086102909211318611207830354195217691900553627656520654523755413142636663072732439325193527777525712029529373413317418749302687692603057576102316301323550775798278484532693292569844543362845858606094530633206144713152235475521748814543205236803398031829892682286033577954320388336772458090008789944688269988391667325419851816985764060290517167384897470900834478749958205465704069740479354019781423420730522023163945962052771666412668400574167857491767653183748172224477425346894424512732744847551764457197557264577057893449417753222119652679972711718947876979730148791559786467050057230050404327396760798590854946851701267231599061813007681103171480158527778190142588309089385140299953155860777330328958572961908740043345875729399237728828609227814657945654107202506607879433415411349749667609329788688315263035442264097761398511319127430930855118254296037412354062898583139110378189778230777647420785582566073364755624156751878950971075586256441007850068943303756509839164809784135572930326975510761415099192320502263993929160135038487929738212566917208182160862041991435523259060439334416110185931113740691674574310483046834535486654939308669602443219238762361296398463973927999032583982589821265144661346933263046303877699149100156429898506679810976598672779894629248572271462939761239348501359927052392757763826496097102021903770764438721021570103474726966587932856421460021844345217310379511936704310309610086092645050610344832798062138031149504919619146488321191452069849482996062620022163153000510929794983391556119737711565210978552110300457764102260495954957803381441950527085708020893753109391013523615031263028341136304737137174758862281694025585880487343755176353293591282691724953800974229401834553237915726155031518546692524487240974559944565880734661494086873772451949634906480724785977245957103675336164042933522688844610060721025662532160627491325986035961064617208392948528364555560520168169457444206885739593537122934345022831086937572076300603082272082597256197725822364151285841256012944745734039844987826890054620026072682645503332222371056173468412557195048202718928462441445333803441740039761152358029685462576009267486789616606552896096393817798840536342005109715236910268539705564738160954942827487786241573366037024733943470462695878845074488492012134123490744509981874276682897891879634371407724912823761074389424518533194730932658402558807226043879686111344637757616333226354681640652420150630048792101670498455306521421099006733690104838013282698656454430774699817917619158264951511257665228254216322980288088464822064236450825867150886056242899283836074898512076403902408747881864562271829615876840795937742090740519088375658941485919590439382246857998777817866836620150855767658122431301232475467481475953496314228039195319185996048738009599395205193346247281976344937771117129435217366002591071005369683478283644056298087191240597672311208806533008364238684189713541045363405012243186134066219629895553567965592039691894667622220540194568770532583972878545088143441459040411864781204011149303475188534103217811844488879512938682740054662187773039936209392092489383586408847113808733314218392568682410193690216959262275482952857588855789709373083925369695113268565675624546199737744701240185836447791877850750786602073599132844413972549300441582070717685702168397358953005347725112966677541284262338968258111947464698185657127617586958553366443699377123993510367773069385051364002760884197353784767999223311416371643471654361718787071705793035047909194092172978970165089042393650429035231100200716696294530810988745971797555405426954383254110808206536261453518412460357875137217554217446244880256702405555640442275362730479921250855500597331804900705461518063418295903246700939046608672840440908648817394197808031690078018884411016549954025180442816391309454133517970896160538327431543525486348627613149892162723691784742468338606977689881092445360169355004246699836356524893643178799721394468851165110538616288397240580809725312506685291633455246905601482831454366065403091305775019265361315744398688955115610862714582477890608614490784325848280213029322533023409674376905822111388643513428056376884370735257095261335261426452915466615545786165342682608185705479159604291253345014519006801355910158950544525156240516681351769559791084794925595445744779007959911902542769962967576661191392342590184657348853940234862488910535701433424853557473887904906005451499286076386747965507090378952594817861454037015663705628531985016136511188738041131312803278629943792932144643100615988065791731193534221673124848559999012262100324835926511208691318349445554492053185580628511644521791955801245514110557156023889771324101961372639132938273647508882517716561530156418342225672973212473295379194932880148629980759679503363455892769762125986629089283725626270393740686444395490814643501777611129712912390058840313334400260387762376260153222289475380457420879119310583673357989588730579057623790005149964502416083250671444899390455715951368734730286342319144091323460281888496052628990817370210106782754632197397222075879389510351130241788097826365120897064174822466653484007755234326143825520834170368521974186147705416688760120090167534136129792374527843637706263202506580513978875771606416351117281478106592591235567970469819759346481392853195670389746046157857614780633457262343763894391759559343468584508841859698351101095524648202566652362256316999466042071581929496957763548144662385715076635020557162722431458414608213378732404824376869584802833996958277241833769963061106830317377359759026760262239728701172871038026525600776878221943461293723682638876908529867395368464172233681991572774728387934379526049252150679130988125593691916273242866988734022560224324479149620006986128874241397182889884412809944156525370283375244004186044075915165878337443788797547612910404864947695993907315081602575473449079061086711117304438590482176257534267053075621226830303685970116904078122035532139037319087354736329874838731649161219221208659802401685545936063443091768642341604754429922042983494604769300248382075982168614098541147958246914597007145777354242179805828746180343268961859259038073326916269785769951411153098995816686163956050534066192908034200488423249806706464166752043545447089943039914037243428506615737130929184954796809352506561175354705617176882516826698827882216266898765768118151519581234470295103432960442768565577727328129721434444352464154414593049427710988320622252376742741340451938684033584508790350627474959379314077982020443297703236192353317889255832292430021080896826114574694713172834490112284732295839672946133529382554902946038093404109262153014850340013736674573546433990909581611317500389604047081344859136975625556807471041907468846208605901544152339000134658634716899806650283130471561212291595046074378596467535133657854257745286233274082817906121420992281353915153796280367862578063381031350848955179957494177373840236424640414636076662742202440936392498868718687735478958643863609605250661708051925776816209108807015578175190543783708195542349823432169803156265469777212054046254049234302754005266264550108216872262748592036667982394973916929546208115512069719333340587048791379137031279863045189458515172053406696378664031102265234721825700014032661406665505633074615678157052567253462992520452746559693159169074650408859491562920254381151050879020271121081806633728567251674321158971229656704044924484593261634205177184534625664383171084758390415436565185526048945964526700266064324658810061152280925259347083543082559457083350485115043018558567231190525982768522663201616839732184563541943580663524583190138236961476901829754901901532937309617995734742246764640606796248237519882482498508002348546076023655014296497643233069865837535739859861048822234055399291104728606446958202367751245415686487484749953252061628470936044335750166766554565165354003568168258010609978396502019729236159235556368221759466576765496745369815241470456997536888207971332240317625174717531776285650316156123832749745658533466596819543705796342149938929852023124702797083478531749876362538982024481969032115562055631763742561276205936690913054005885667540104838041484398696998638082911932840233253021161824438266104649102681686562349854634804892200382170170288741189707531286450834555735374727395175878441189713503378228555808023051907088805811760731942255079839303834845206075520653143511410186028621829253487110262057637617004511368218191289009462293109634789877625195217227619135928768231908728870780432743339568602785065467895074308700934467802795711202500304645685128990962327422288663252473504384922418149802970161803070185896394750983884543326716773721639791379686206640022236858617424005057135173160073454037603926471204749121496359391504709915180342491729190328440429425995037907442743543046323559330306251470391346050232699332629242232736715829737990936376167666177361367489382871893997361977724029543442124003588029708464934160667888468944865055903220935973927043399173844632234167893958072824143594618172242523180504960536748667345192166012200271920691094648609780860796868094852478925798862808250766683223798422655889831015944438605184484928232255570060114323872573355203677452543089187276039562050845404959584661209586570669460596417433193226523149561047528232580528992221854324549303591381104902118491732828310079870449073404554836432982275746551772231993054342460525841373696907305252921090734917876191315532323580503615200166278210810881442200698014867524838942741106230715881551398504556286068782952931219841884668687295756196944882760815915660159611106919483631764734758882411611431988844916098219961561758877796548030286632163343446087591940645563285351974268135281645241861389386108990136719236094459718609536987815251242303585270443339507817625015064648159621990868467014616747741564404478782956971678534194311975951523973047203516165255789336013029017261093725605309444353364449771335392921361010505662543256622300450455658107606283726156660858035477539350418724676150032558021920342406709508230911708042409351070314838469046200851493574197919288147479114174548421180365723039075528842572423126186569145840751163203846265518131567203818517426619781732962893573907561401716578055074925133993831533713912608137339354776217736674965019200510441438191404721780236486794430691574570900356674092320668527824436251800481384738176627843698587320977557822269563343286523786625413714268447168476482045063003205785542227955101707656921901009875397870148886367154549587692917967756523880228740425135111664663103440852221060992668835908004387324277716323391006551628387135371171675344886462852447566250937245215619774462237684574736182704711268886913205831548252425325123212385939169005234447849593140624080616981768855038063370549762004666716598952384631010284137068413370347712691932105763986394068182160373361279778035403509612474941857004382551326805789151602918934515715491363045062647757394317589935795641173462545975875615325262074592925929583013488152710136170032401915478807275722229958487090366563045636898620343158196587433947219196636186578474602100309215352352034816945511767466716415393835400552149249027424292244489707439879360504074879015263908488818226040390321165622304648279699499972454896055356266945896069255381677043540198872422812573996555568335031031691783575071529554262711825716581281868283646140614456718412400535910904322802107757554946350703866018545718632658321756173279932718397406845137393057546538661057430120821678379005880013687598667378230040919394175913865631456683608531964919620933947109080404462309881768902952838753856413575003230004570478808847045756124055985540627839665611785520487150742412928866353437803886172267560340075288542633298149571036639118671935933575325727945179353201524972589964783296856759696379698333429572677641329013545105540533560372722838376279919305637873501726367272033479804961289799221046116336176248909535290909548827321583253721615983851937879670992983268268154208278433782979009886116376202240468326531642954616225959030258183748924962316570097021464202158207848452844607299554871803654053512920708633048754764522386205491576381398590280093142492341451485620334417575573727039936372318502880254141145964176357277613771979731337246950841813593270271100705999279701714884238587787697004712021615529599218257469009512549790288293030814762536504319846737408862552552148599927160350121639858963599502186978994236641639148708001464735358115616817952305854089845083534460729524406638325088740843137001581480589211821519238785598948625655970440156751028408106898162791690689622674707592652293844922133447423333413383788296882517911387334210169438940770758680950367806746062578880104601919377380015931932137809077544296616056193655595870387446823096125601389736691738636299538449190428122746907591492074314891328812576931807513877082845056464314729379064338950118520703324852734648817674388459693313834209470327603904987707988240884551289691064343204791856319024510509743701310096432112803161746101913916492917331801859237800664499275386741604347828738363953713760514060735574477480052533880274473034943769892158049417713556051800011180554618352475612924651013521633538388436446081633629099447101325919582431415840950151466322227014258108120766201397931372497519385349135906155389488730233580870743710554659710950004405003473968248625758879151716074043463294449955337301964729629279002513264861500853774393026756010038979594191382449753757821269485065378424439499581531545461908564476771857460922898195430659399212917919737771255085663146261655382467849037316408969181104997970289311603332861742330326541489815024795647914182616386919864103146505015038948742762864659430972615339797738824968077974541960911506648225773016096755871972785677959188047367679754173504440773134546682479191002025718544728266079179710669653651472074645924648686501981444310744516634466298676850932615860324809845157040761743914221932012199074152815373775409179454942001178715071802394799840212990522856845005929017853241722706630337176005488419146354544398209920670774912529589109449413680687900534393314308926038006701658040693505076738007070569425227475557034558834183415183447370122021653351737326321820678633465622903344511529885108357776820473171123315069561696245036551760359597099102978813611887564321313935826296188883345377108138410515040569533222228010024198677331480831187039673592421544969601328400722602774079795131742062558735994082366026460303274936420079822901096498831735477326008139162557478351893069697904433761071289669953514932091852476714665293397156280783403020597932686902225486223885378183709824991932119955681621634883780620754157008235294497580361317277912582200992930982208349857116217211726041226121151452701038396167399560492734358533512506389493428425035133919810398141214765304657996931481323832812772925553653131659164873275118313475332926819883274750508308655851433866511961773651204792122118879225945050744435713395554521182011617042014149147911189439553985197365622362305594035447763267764571113077918528486985832812101062761248440053092956844622597107701434567776842440351528035684429362373980944304582543002530260773916594081057441342433664345901154698841439218338692701460268514679406820491603364372805932059258314359587898502290081585277289834044517151042463865157122098599509508411645663908510673469348765963890662805285877430153494387191128892215214561353377511587858301593940505431411781968112842331234004371654188293736430457303322065034363102245528621583575052594072516016166190876189569200963701185020331673617683602926785610365389908058146911320851963790122261740120581081142492945466474964103297630268889687659265189534979734509057884088528977664738648852142720010052306979673961636254658598635076216378219982262813674847454991115170174682654100768327438291653003169769130764451490757546334604638310529076640041500503619789542973031024823973227813643935050391021881687698413028020246691493282441751981700666019427456362259909256715206042353918814342435503162209277682229667434515621045008096272286485818339006196044163114065425016462081128715651801128098828185023270190048484051384794606455412035841262539373234613789680170667940454067611313142938635281698280468418957447310553454906173144526896826041136223206991891799924595248407781577680617409386221870656523453749106237197786252733332396073673529639863344317117886960166933171407910909855144587175202552091480133104317973447025559828200374554647513427645320244876098404346912323652458027533444529622528167370030167201516825821721168268109080038959157380373198538523319748585232040214271148667550885513798727802366037658858611165968523415665385395915848785035304080196769781143833181203149747630281232798427793394762900910158344588363379723268304045886747459135247138325697867642014387125090289044440663041151448766863275765413012677815460494654307089100886867240147057964028217126866104110937402855825578267971830315226609656579779419172876481651042235314853780939811654463441170546530650598539590373697835749102831572475354885188286037560918145134388553760729260191121307639420938916549387220059377517746986028668211821122869504925703784694869751305824441196408333333183981947083695175427841097472705866793379039926874255310572835493571447132389506817321947176919428171650865105424838581500792580629639217403502438733639472492930992914507480907801726580410797324277100690769161490503252648278655160557685293579708530429124017486092411851577968642557143643352620091999164129223848626146766141259536060016514266547247858560132984507220903612921967238131073952966849239550657958381008051667384211482062898535827541970044606757870915816877577143042506880629845140738804648601134125330839952749579720508281564686927748365492390000465301983710678933965126103680932553537938024919215652330594347104376388871668602569647471949769706238305996578287518388692665096344353625375324514247663174165357962091762076355349566290633759248253609013419841303679023411561830081508201562758750281067594051776171601926822682335078724689535201014359338308559615213681829138563929902320161400317702906141607207711633325743572909609165192549686942538390138553542777799236789431435673547444492742010591990480770297586679506128535181150143913457447503774785680771220540531714520285245967615190384272469281636051178776789797459684724679341104451665475681037137607160090358552452235905636936244754476540743347873678023156419217197155281178157970323549481769094088326271374444274999368216973835065481543664045248625923492324650585549922003731996296120396114818318135940597646692727096647927072482612684334042316507719275144411791956387409897899652406929743062794469066263302513953598852547036052067769111101131916951194064476319494014199720250607662860008754346965050253203821971096120287440065782863320772608953151631226525233963086399723530439521859170043263831393812307687134864971840368516645334824813615846002136485594091154296595349972039355738311248402493922636568262883798606837519742217961046058541150894832202673119717114273958247980537378496087430001481716376038439122712017741714980305602277052873874421504164837286479146173003191763997645632483681671696717947803760195876761599363031163198184363151893868760902239891815018213869394601155190058812258485254486732172124158109804104676115310168986426926038084866295232867930541467435539875087780980962910210553417709754319483238970977798925928109815651071291869734404365958299789254566574614455940409502304840724051566352271813046174581233912921838076176936774268278788225263940911375117720002370456114284821363092964581640143156569954626794646707343615482116017118946016518588820738761213658493417133624955165098923441529964102165543999733813275218518521370939264100494084880404549752319472847318247526188202186812336806876292384175942624686825130577880972316482879594134314418875044102927342358727568288798291396984024692470352683959709836494308951314607590632668533723094246020248271374996433886524164766508500061167438155990184052058859391683478079402346418721731150005651620643084561939756541707758194593233494846367093783007949721088661887633198464274828083592549640601782959518205074280089121267392332066880552660634468854625029953742035993680481096745815715271723719653706234931795229089229135866036966340693052354249834012351463083624969452256328688798200110337268836467073683032122718059947091386983307891955499000474671905130479802009444177630639818918206746049279115647805137277175709334994405953315107040932173706620815386393687996971235233661441563987466938269478188205295917338918294159934819106346440214268333261749645228241616601416890069442146962686922866617419211065056509889040566166359501869430534510564177650614760148929595577061434694858230248723747679624554174451035144374047605483492049149629355232372146785532364112767908594342440875343792914113794714327367458081451581480108569305547315245645435945010928030150206772229043907529562682432063934700160846620542052504317871653416074890893167664647224032431307390724698652496226819308918613096168207641559690345034228159743442236326796013362260483023124906943643262800843242025946575706024782231356163081329355739051269816317073882547820435830628540990469907363283709690617059173392078438827734489575724829867297278581481980416741702443127639317649299469133871868927587815535331918233792712824725178384073449594643209340982334844550645475330339853300012864569456154023057529826093336008647199968642830811425348317550868692582682344325845304977291215089416999947302556713906736966917156867742464478641468014067158986348751214713840912385380457023453302483021944591664569915971000976646018529791411935329805729809873324770488437964321620436684635787448025180184521103297117737548210634602225359159356914216441284855190729999299744552230448323877360684873312946150924415439024387699268347505653168634276119093446487770126212903523153884386993385257032575878172736144622181552750688735811756587744996900831548816664576145965132609951080354809457920734656652044685535265286852367681031434600492756001188768441220626566115385446436331656086339471408367009207415586371696330260433079493077622627670682491649774864711115098722592594306005394831286875766190654212515529162482502148532169266144968121400077996009765933654472664537782780080086798967311326353727074242945084446116467971365949840705507274347788124094249840124056081395560419713715549079434775312772407870271236488865168080110704364878927277175490629060088563750794658254272718183183707967925299747152981150647838734818097033649696104411034756059956166612011407335224082007480087924011904770575075446242052670702461849331242666860397514407116634453923099301178184524888950423970883290270057255026278773614658804104562266934465016782024432842194855485699554957167079214497201554452615950034361456076041129214837048078006483479803234886277739253118618162938643488057006418184243505840146075148422327469443468276317243996965269356030233958215192814584142229371287473274939809269895607521329911415651600543053959593396536156707717562329278327614216443874681868453617610099781234742570325264543349119003886907064137349426811817498751566740331233468065160455684186983718047068634779131924150515403487365424167834082343043363234663833887793166815452351275027859965107208811013866970939485145703188540977792601002493607716683790457812927150150469079047132987703628821879412868613383623592458895142762022633873069782920858266925049393953704789466102708371984577820559433462326225542530459422454563609530424557837222676031988487078745466530627586389106995087150865024245469003274527952410966358448909674465409574504679323941419869453508640375524625915153756082968285163737498359907625215239715094142835782206312639156770336163428033437623464984786844680625530135769606078488386806211008208713322570853497658699179991175613211173183648853770402151125794305504970130596252749637257694534989692693890713361970079589078990210286462839141086914670854523015208726381934890700660264412897305151685693521447333162249688706862507375535160613673051718773510536829751368587748669699640238346313385863747556671681155824839831087099916453601706602998104215167434099326909315421569746120440007424079000754536089639915287417664014265632857450596618839352751907279431369683954522647537225752856722720413276577205663458607930407093886016403001245910686086620427666895368613566048688185099357771056378247341533922177771239221305217275632184334395645341534109970749604986268945054961583697469459685881438543113000118458948758276535324476306764652742181550500634401031663487327268563304965123533263088827111867344918560068553292674129100652542475639741298854007113470393585051252424819657361052012533356153464273698465602103524546151698486934976758320396753035004476536209395372905771526819573080010995913714743250436216436146025622926027116068102426248497583580719260501404422256096441680791837213846494246790445484943503405184920448586090263473102576229330678068253552700626547866847490800198512999175664528111151680347410541149443417112319227746351683195851852797033450891157447966463153992427093460470859610756357492706598972291723261438121962772799109719467021226157421076290370294363583493032179705147465776213512842816252834818470631254312901432587805545996637890417838835885578026860809169284744705653621248234149623489844992307968861699903000837761976467466164895933028954345884025667264217296505148777577340103132134945787542273133176728950620189496256401754716149005065113743012067097633518390432685227604119850494827309596093363050388584698769127441527578499611672119084390242745213358294232850520855318007003112942406841185025080339813374756377308533433916795210575029540570451820206354564170372826362610109224835802432080613683566723099945064446743579601325411554877003914354082590552697611952242887506917523640826815925342651258956682446178813838411237923304082818963661253899267109067973776820893339584356466731831710175165801083167818250805065566690070707208980308506550396668411700108943609191383429529447867128833822905770228088532065034633498124953169224982207792382289334276465998224992061346969712612691805774143376858220309641538266007744902174950988512990455297476154931593380741171572506010681283705812135349383913138281713143791305697078451324737115734643828713808475331927920411256181471286992688569453327514710139964519877564745929732744891710136695065853230336995677867427068515553668132530593213177629327398836928051894539662462253692749197283691481184776285698449643280439379584089801366293253392020018493349282004906902237463064460497321976139536441678944999902788906716913146616836170963540109233890498016553460299020266658968110347982848856765721180026417119923974377370690611148495722494056820408690803403103508270624688481948576050222127242652265413388531401274538581900149170178862892762045955468450615271600512057028946047195778046031418498370727673800861501252991283023567657971038279182087612360077338445004723869521350308376473282656747787924428581000032725647058621440200484837725989165436602354177780642116466858875837617803169145341106444886387020350473264263084463468791020838516789200933312533364771918203568836818588107134043548722941625179890284597618616423127687347223840774429203089513388010504640642924491637123554268255474629003830919390136712982340620755458578747620461114998462419207056077938929741476308324865271597229237289191961263918791849508661161716733626842969609377164236774222451191366388942909867948224895209392828136368210054958889731979631731377643412720772846150791393147036930403939073893887291686102077346601060064756466606496389281097258410646457400869510753205211923479475497495925873801851089657383930994279501189449741549328924335919932106648645605330882237898003132647228954257048924441566808699140040898404914867991031675291006215102502663825392056297356694307759960695554851329379264983645899540444295842943327494053640829235137167393652465682541352882992989111161207578442319901593051579970341147567137352699579700479534193061851920300158588286415311057793964665996586329055545408560128874805544680317316823834399416803795642193941327971339012602679557769653217419288402386539765859774815051114666555504496339872143132529687417381713131758185386316340811010740457301697071194600067511418257130357180653585254977008890481817097975330817583215148129638059829632998406933923538063406441755203635680098867376336304389644087933965859278038210272274512531442452523297541053972318474712703534416531956698074864382991035575109829742318206217233540725556356365128326038115293637599958964654076646839091559155364550545737483740179628465395161201377032827419940328065731248897225784812375738587421245620396094822300781151558406406780557223545431988421659350378272727698465349709810485183604498578739614825558075536231215450216087352544059607604539906237864561953358944583273251081666125615984691878123224638871641024866951530918943026042699119708316742051172351968439619615636101029750940605629641551761130269928705268759446726774677597995575993895590278975442521058609245088224354860701353841070852506613460236719811420457487355806132869581921667070074059371555620131781837660682849139583406007886338909873801656393340531219321038553813572998083633053026994066936883588726899402801426657903481277265784355273277087381330909030473469519122001534342676442864839139395025001264865232136088723097651698687628730717752024285912783064719454041257453425727832844650262302348845063506864226242194778456765402874718363156710377992004102810445143431551701766587641187397980262338948031252133532644273277398611647990315039969284067308664247180462927732243810040433292520163893665531353778134533972049025572384091676275237155331032779963898002242489332268260941919801325698362144037325048393764238666828163480893040033685536811706513467698132172330432393332093406133501940883691782041160868253335624845349234777976398658108426963916420122878640651325931338738318859520248118972173375059877568813299793642390853062310523223940725709516227539754030501548673058051992125996536809120290368047109936250331090905541603639885821961314511443219779996691060358647385870733662486916035552655324210753709629207362123416543481569538002102021597812446610339377622402617105270470889369014586802271597793349409573405132494117842784664335756708213488053511040761322424972276756403486385386957206491447074725956079894725511310398265101121576749809909703631490249491616601742682699250420841448787588925737565526305735976058353612462438743737725923816254005104774082273962682113245112303740655863260359570850060911407720249429990869272468235809286869193670155620200023596465721376078564815439743550629799219185082056243821142903423070291148491405895292654926316176992426488772499713190941994705600792261082453035856930660570159964188321081226126038972010569834990560483679355277399065681634802224832167600015987618113408970124963360928790060375212360920945496564311406926635303404520931111440683732436855561366757077776932645798819165827541943266467687013334731049668020722759540805933912972698120473556456463428275635238292368982310182870701428689126602365127236562136034118917576591665088367937013898221153038422952330994456629058123189710313263775810345251280132675442328452317823003752116079054064479962844732155510637568952098987921423293324989556858594716698577304567093257138131840258631354718198665008697261260241620578055642398154533820902634766484875815297347421330837066775124263231638584782260450047769469940291639092650856817877670134554767368898762011008399157239560081477363947853656141323675227444805407878706138229788678587676664659515656872093571141298540651238539626254131176798800516979203802385478208930156921286089611316917357635108129234393874963651181520813343318096928926847845239435545182303950151857182145783674134258934840078239735156912277308416074149410840069340735088105007413872471449527570249641206300930234284759159018538577045039083229765104118200718384164424687272163466343575605802294086624747237991904817652759164278666501559705646538094207855967287283158650049420157488503434354354595374137595181276189068466446834188702716682649512218464524044143842512544891709149504674056748389298858279246222139004380969237785318321022603732925995111619358515872232589390584696699205833725779915933162567467407621721900349757448828545415753718451355557375253602855879081038777919261023509008756710381953498664547744941944741848311470942221991369793874575309844708655345601880142870347768560764053701556289799504439470658337145690783476128649606088678846291767157840467491774142025929068515869174396339237212876963233373467163923184128218485844164143220112035100247312475062412377403868274804390923916337783801466057533528009321561771774300510330858059603685942366183545897799075915709257809650100400727198495015301226711508007502697025485831707636829834488002446355660814459870842492650943572649519946817095589090738314428875412611444861458932390114658429300686671913749420882032314908696115192533572446598288830480554096839569394372464863000999988513499900124080171983204317001842884840125710813230113113383027793161099614468311348967580133424242392313666260065137219919352173913435346428298699895681927382005727715694851236320444915404865886919384566873465807861053614132481113172874825289869350943158348056049195402117603688350150624354325375575011906284794291521100049618586789939761298441332235623582860845127255341884621167015764554208668623749181235930480231987074372436966385527951104358070965751213242936343475436045551278628259667584005106793842948918995060770260420918947167668155190040800061210300777259054061253285859064441339445046134285402649327746610227382512156365459419993999450153613854492590166807128260173532265299170413713175435223990668287373234893851901611903482672992008245790079183510655816645226932590256604674185693589905379977933757866946920282321696989162556873026448337528327890156967085961835609666821379440801507329542700262533361812395938339740977937854100252298896163035342566792634837630387017146864897228411022575026810781338991417058183615457504328419396646841349970382155591410068489195399952985449057130515506677267093658948579725034774310600499260250955893397814121552918157854264714261876499439441159006389374907969013386814474379356992048179952008672072630282909711656202506535082215615931754428277600678802757201599489430920577839135541669291553337656945982851330875965577448992678547257053199412016666123115863276174929248604778570258927581493854265213297073562455662572193057506040042224281361399745693338860983670116073281082858643269492958135365436734844180422221326648569015696664834755138898270579823546455644906476342737353972541784839099818013116611994895969837408997446267063337550587770754142551677769263236813251341356320007195458465070643757029245842978748713087780132711073735066179161020079587851652634821445138304484590518580010088658498800059332522400501954893044892802529417281323518394812289845246984069077931152478857609809499121874964756435988048570696004143063438939408902043229920732481129173697435397124231530297945961917558884144159608665645515657841689422709199860238767467169327902977855179239107654815914897564065528095597980174874694320779920479220164249469802206817506035889489283973775205926583810400873401605136741599974062006274003329629816080057222711839646309296122907015854291312600273397582445086304503250438007882013636152209523018939226278175363804578409626122381259160045786334775676702792354273027009276166629979747246688187278352945565151349504548997631316095268858547040064282245283976081489613009731122486161768830850384224744103991756800377236476127970216954097724475449223405305686451845968355589941891918777029725333901140602621544882466064747108563867207906642010531100601559946033828060059079457764573972963768413925365169103916039688496197225962138256161770141787963930872059985655750745097853932896656469113818549305355057528910279634373611884069919083195690353485964970397009092215473138910761472530978356647950012591947598597251858898411145584234186012423864099617128918539473723619790205020362227831409035990503789976601844409879182805087085897048921036589810866643726576278817176161654788941551711907133295206906432237157966496162723732987188913546197239357041579117486960681970742663485732725360520109157632099418441514337625498527882931812957029095184004569587313012980458858472239457408749088017386012558460199668435343171493296404817971508506796480110526117046459526767118620320650677933444445040289139147022498375037843364479629290998332223901084375065796588311340015681893866486086187235867037060862251030567363900200538946628848963265179492124621170082489733808965924311499718172779799600820530725287030092142296338466041162495921602305119547838918803713369525879338211408064596042758562251577940458636617285785741236601710580248642437588946670762207414968974914240061671248887586886486489235887123967737242903788406028956460161348732078078797094830419688366059039132363730748996276929127219120558072811482397289235323485998487197464522801271850075817325412322703349592529140595915309532007431177136000292070521991996569847612297004644137635441105018138297214142244062286576094207597856896318262845564808731444518620267976531344447977484061585769091022710940133900430677865409413349095871250480254773696026045424030106744882573396012497966026752183771223033302284362357928852469966682115726929015374873252921649367534352517315851858874470712915514071749485075095732035070154180245994521363446200396976473874621433324933600571485751365452526541653069976789444153938302092777578040459910565556113208146035033881058884434650694284583029504982860669630158435183948259519723577141935478256236787832123219370684531412861558140083281075135228837220767852739106919716230098077020251548816788138062009989476294538745611801365329535856708651581707676457009447030277224127907939874329730859688981521020263412694775114753773952983369091360426564909203607831297762212503425104418800009267503037009300765337259282079988336180235436295775444246765143160087187713869459720003255109666782137452806671439869968260830104244793137089109380700922228233689986860759928958000861104904923639006626001114942453289644265961496586624917530971719885526150542302372660386569247659876860248677797653600471207912911236855732101658090427786441464557929780983250466864439957485235553151816959579246939671670158790809409393427085049382568270242195701322253089446774675632019516757404147884763399510256493074220031921343071669460925225164757850438074197223307134352866045265597114808923066171492145913091459569030649535847426735947907169044692649824199784526935899703447884972409653851684738850172958491604620376231119511695244755926886295195119200579636023197981828020600837517443623364653713511961878559872503857051401318529213231580373801724929318672796901658435804676098514189836675621565577523433340693337893230447849314062571491873751246219269325800682194504194302813896806088476246689654072161951126906564173109997385712699293470895091669034827486522010781484219468109007921824316597345848099575897380579636185245683002036299823791915344470401006200122550620913253346598294609590211037443256612814222608602874936013767346674303942953106201145186522061630770663991868909568334272938684650104552293708425984011132226651958559552758630231752493735240516965541380385060271672472626822130207126578146924470949773289384472568139536937957042184076468729738839301444944293729768479238802743846845177520402071734916140967308996515473309408122370952110282613223804050035216979894791124699889808039381627006793159560256215516839011820724796274378266174123966417517298703370221134270372775706537224828947479274037438067663042879770011185771285019321366886130756389240069885597670739017636227282472637919353412637481945096175763645714188911742656953683395863728090511793143216746788496990096028602060234930936730711372737082971211191437663724805521458139203756509885352065659508459722346939042263392889374855836554534771450115361979927317255065267732255819899472313404628631185510904589677374708154404230596415018272172067379174055747457633968956445581918907910557053313819307669374736131910217081401768532384388707954549523998548650525459437738422320770832611337278351405623394346682897691953221017192537215607789178164577836690213088301921437897140012538921772171761374457831334295076890548229125095859368914066683774929824569256200346037027208062809070578529126555727780130923702974671498514589942145035240967766699386409830712785891677628056413638196624625129725224241191911845778367284605652487808507794754991378211512903471825969063416038465893210284088191760810604908830311154414414195866655499779534609733304609285899968662332264094835833215967411099144936895366237749980337452772687671955243327979337042082160580165513538619743092692284898533386003195610722933775879943211640765882008174298195654967241669380311572521035373759237904916046002894305150456929116530660862113048538830908684757126076054738331489415642276097901971389969986338404084719251352166994484958845934701046772363535273293637267691057959227619072703116518299166918416792349387706260076232116234233783334798287519853682246535883108339640302807637190066961164754430375253171667385417600506492198194717894395701660514396075379883174635090767842082750206843223968734360374901836564247105860029817741830857185127501747814694540043150960166369299541706683415902331119900541384205136857424293230440393211085148937963343586480313542315926640189611770409412634091661014574529567395408353577639480206982725819862635790901465065327211804922932384113247327494088716542612362142243595913004709146789404202189221611199525962051001354409720620842906172764720157522124608358219963741797500144051841122939198645884097232748360935185913010457229395413214001349469190808755478684540426620806700942414558965360770584767881173470716674178551137273745678516652842998798880590768385724533231888155160606082295180967231775891989157254052915529287998688039735557073420078151779730867172880669952580121484281094493717136609923217583607603289425134455840743877588777905733486961662435058433647366124842359076926963171690137812211997456016259771940668319046519137513166324476041809641241282669966680498874480838431286259122795255633555350979182431543382690245917841304390812261543399844377484378921949605160636901060806907624244494986863085891526631712666074897188074810747351678728418979121423757453449043356376990289314034221530669183105187780565880276997863683569310092281276830241398727046439368153166284185751609718665628734506859072770948986043423399484277277471907983689817659139984465776313439204041934387840969484549496894740488680475798457977782710637523617498060073582927025396347790381731933746951009471215021207857998745617960098094173685548042828341428562327376097206008622292356367132172871997377184106183645536491548723264676582110770345109062204890393849066789407225910782699255461976796237059318020278608843213379349933191825800151623729876646034809748650667699343832564246736329568089941031119324576888163756023582873817214395394783790725100352109834811196797545100831647582588833662550357675402632650471000822523848998158424572050811345849128319129310086500562213662392387584414292209968752355781985215865812924351854795770136827283056335782923872826933051847343776259718390804786542312209774642639548910989072337216246769595758059435727445969925856776675771974493507157295084276221496051464293684359699019788119502064831634090819321224718091510195244865865536469963215627226113114763585887121474756839389188994751240327670221175621430827655884199618399586364676682568627870186949658344397578536840648521195408406287603871359674207197803288483996933674070328618586150803652570879108980278236948340092544736795211071270251797995538922501630355865424611794232551731100652343731329114436845473580722377245730426472392847477775101763179267984738015051351391963623511923757783657856431116027874678498667831989670007434530387167954366439626960608231431657676937948721040632533767305270912866848204992207396785349541002177249857523716366587807608568279107287310766230896388358385252138782417208903557490406841878288469993322111913399117975370537508078612364212225289266236939570897817406218729425398252856899645155122065845452497532441675130446570958205073990316447064317372884357633244855682084663205622653502505166287139390111902237169589121591053309335140829564407851451064988821180083771251019101354766338073064564605884232189002976539642204512681328392274219189768378269038223697390929146372954016224220685337710240586837306209144242937297372345171581426364891826956025300367287635910190279326051801811042904267448753183590073079565817902973035550602390064058220209008573016590971914064252243506275963160350171453731814209788007459493937165461101172018865979832068995302973616248238975325951053115915635506802034954626063861783669932200803781696008371932304215143569550674507346274815162410419603976487187206567422578627297133686350331607293778002855501899287412695963331128853032917051380184523529723521223981159372835544546675077620214139223205365185316786437163036070093525625380090423648313556910024119724301018015631500121219302868322361025129719070047346595505255621941149515720956634915782110254682600100118236170430923776180079942591275951583451368521308846475310945899847473604329399405574256655717328306672914619755120374380046882536438018701409160088401563032499540506758264139914704958883342392179793266567284860236844039204749237298701356074046040280436807746799153868045909584308646537593353767621756984127646043049061681185714226726415370845683965723416331317126779033977992441931643357953364890316027757730098933230152679873686760806675682522676827035607784202932501912058728103114215862067762017541784761274291300459513421036520144619880953058440365616452221754122154556295812207300857228893328187932711214903072609764200104846439248225382436820600881524092831082023406007312632160253510849342715931755048363923346595772220188617435127959649925069536822028315414319451617411845288808908616926590864178920922932979808240864143212592825308889921925862495187840094539781054794686345346656287371332268376863431225182064916530568124763283864895983718463028215538414104704291008166590218154910165592603505769631817431366753995211606096162289656501285794164696158123735110702088054663861264178349351341043220345471893142078092503722838795597550901113874950121618248469658446485670990270983331924131908707020839203320943792866598417844919150119806134450128120128736281618336157630444970354240559032780515209764301140222600689942767272089209367187402274510269390723115717034564600353702736946507547627960680090858180900633355810188129815608875390227807716627848632919709997596739795457895332147608766800541557165896819203344279069934645654939987252346249049943106299970991331179021283897672170801736287640634102821609153441020141680855453709113783670259883644065979446926229231423337447381831153421263213914165862465333146966898038824710889621336653753624792279245286895207440601457573393709771345735099661303784512917777686135027772524439662651862354603447559889567624630979162118319768208985473865491078113574532817372650518254970085815166989691576434770067295974689050806235859889827739883589969009002395132126626374204471554889703276717553395873053424584747537415091970605073694499028490329544676724176712637247240605432964350874840437346985180465905920382318244485227442851623527252983103174139417315982846462939933026215678004716828535245151066812805839572614946073615983091165958773107283873597538561354525057718727061078835514490976550504406318438816193121823046772955195333142211490379879629548102147656209609513016772611150700572224999738904461472127749797030739784405719042036778251214394624450708680702604982285579433066138488130366999246954208258547581265665306967380622803893405858533469993136751941248933172448059091717598672551556326188703589424382325621756168276487021278085037381029806580230746441951130053588437350770364183720115794804377315453055908827568293177672441705044298951318691831782338793674697698732668325251950887881604909451877746137876290975103693699388768789242775897434583524707705172683784078580698496063177250590481341278026812640156697183119081504262775549499259781920458423500641600167764502081298041944894298301179054806295156927693288349569294395713717693698158755695857804961490679778879004942448448964204131916792297631074951449993783232099386429221979951094792236168360057074893868760429764347434582615434839568984229376785516988959139461892008313030569360141356285206038695129043343150726923528450713910590485116199882194708272900662486156298908954125200341368974951380404085437456423656028098470789489916779265231817409393423952675817678673411171828063738264389414963612497619010847124832618708919958885039711436475126505625486698286452368040813054373717619449079194919999493356466355454724726254809217883654059441240431440764095535634521068199684987166648044531886146840492572877026450339420240128993323579662090715267009873279010396033679285701741573458500985975792608888634563886310596052437562426974558698972671953761864234327511471147912080845750507777964699899987486366713684487876404060171914631600341936865116368688422346875788802871540907006442579263581477146514304932080314918166560559908389411710730505631398820333795701423298499752718829238382730007312627174264653866423844252433212339693412947486162605855499950267226427351635125174616929603727082599013298956378853494709011916446030745623802843825338854507394614816902145930636858614175884509761764334393128060224009617535972793728749627684551988099909423330731291713057518412490205807235564847183167356167334210815453134523373704933931235467501217041782964473839160786831113822886029572361962318980110580900553641583460569628221795863029125125460259467633003655184890505468324769747574565939859653797307503328462627352489239248242720038296152907879519985746203588486450139794931414998828655280455485336008280196134241235771477248416534485885687035175905117148382244827463356552402252327146676372553785339237427612677087098843481235327940064763625706194239251601973920240287054445876146033113481364288710892949529334135239998103370989428363124355705135495321186515923363058862851081892854731173001785505963176965354777441668103059305538443557781860660875014311923847486628232883849322250945123714802115251144091152170312986355152498372702113413781267900969487220893100604451592831723673895640845269898718122552013240596839894911267211263079199589366743355684964996556428786596905360993608643022389499948299147084636403163506931959324191017993950302570283256743223536870667896615657980094254212322463690228744981295462402050524509624535070935750782618905300688619071579898376575357943701343688900694961662124481063332547440538020760740142970873204890518136400953395586124020644497584234138028451567306786486252737314378974550808995510194980966607728801775096041885412041346302877987059385896816969453787789895527623401839230795657277804566019501319915297748883763107715300362395409904657694001178162400983951988332991683765118056726978138436754486269276889179627372042068527188595051142761123158677378696779342485787111043286739543550926472956872026608323723189037238953226255895389749665313437556203187049280802792211753868685940173297855037214864398251870795722566217376578706192661390676477058747354216606092290496788049386937716092840896381849640500078424029426695591490174222907344299669621533951461811865794095185499440713432505550216236719840895839104732397603759176006094956608290326592159361246389740602836804598376767003876998437904008216739231699537769809958285493385889370467814747090027919572557359783967551213370189362711644995150603040355442981763394942822154785803181903504289735415751794919176957555550929897020197992537150470526664290776512093884344243802458322895829916633735930095865661991688365589773665978686748034530333022615751632888626670759199176969346662394116120265040001140122820497010045669890682534062699538949742197203294938204931431830738340717671082155217754271098359176573129647379647865605124238499219251200528066406167634085158757958514602162078155883653384870506300249549718383754373805795064600063064296145608926254520286174676913415860540684733559025907486154503770215118477986225464988524780531885203410199278222285383789586619387228183494025521469469277476428622388963502444331711204675355541720779228298680116160517779163603090159665242804201497385794125968469623697548536100223012185764268392124670804106352256624360565760681133739901742034724495088400300939554530191816767059403550474348116583814389326418830358310414908932893356398471990679029917296171362274236804456715680033628631613301523420576888875796695089838433632241183157196430378995081533477332127677136399222495041866493283165488125219403209039837131155594955654044323715406112181707191148416748234444294676119810969200073180201599547720120592713871945583670057093775171485634270528885080585905751006587514762140728918086252050090858689249678594917544644474433628870519562627991665362712771751693617480243436539931832133661145491292181757721860200033825318250661480608860939883663734738077095957714059506872715045640792821610631920807031840175615666332074427469013918454722513191679007216124501927874910394040990716997195823280311176678723002307208789276915274885237670074978536570639476911719745923765173401657420853888467660252284960302171004966824184409526207402945148862533536778847218305180462341208410003170896347015544220112322672395792019834517444892604174686770073621748064901195290387590071366219063107565844003145969109051125970368540921104379424150743915227016421784713096499406835705467901484175840723154676750668030391628429717104490901827930304105504316196344789640651229914269453790982461306392809984998038707584654202143780371836546837668508934385133429328723315259446246682045110984198710127922240452270247827391496664688160533988675435481037776654418411362177447531187164882785437784282607505306667791352444462684857237014269425849062173131909339255302397075234558317390492816104486168365366756018429589104463795361348373280873246664296973128108185980731665500287235576851847346359854047749194615476089477419525595288107267213448158713446714930051783568866092354310045265332704427827139132382989102356397673258099570456194543542864022648662574728180848311587550906113910162259432705438589375504428039155796112290045784593127546204074823121905406583496233287309092571508569977290813043960324119821975325660545276206152017284797462953689394439014410393751652040929349551604538596340275898476659876551231559226865769700297959734549838261663333903563899745472438220840812914665779724092107955606652182345178869221839299918660835488577500084607624156057102175311096973941051316904288362833150559280745996057246878780469615496111934285441423257049422275951982331102769684972559389279641450748203491495006898683841692738865914398478579725490304599353453016325168825451462597521804447562093454375143133151053182370834498553819597152728860516744343507575512524421449011522873271628237949121980466382364888384259908952353698563510472594728913410360504723400959333022236603968853668188610117506132839351908166784207729440713405981770205740467231176831221810703020199036229821306658563390409899436126407525966454038678085964494578991966503065084745387505376142916796170365513046761476149173464901432080430891058535103453143973725662889072803990168848561105049982574091181388600143382857416579942784652003113600272937129213505683003237851256847623524534111763991056803028749989293091987796747063452399570004345005913077214464724420114321566232576019094927118403689203669407238065116439061732732842061953631028069767184642341828988427650342234644200341819329235071372098476473687447762994234283746218683097382155854998315613567131107545847092942053211126269954131754781886388717039986624731028933660586647880022696815652812271691617489925323667779550835192486934399729097167378616108218919062004112288717864441004387646585046592810469100589912880481839092391086612772309627808792287776219269352309466493466413299111194572112040047619755259984254267511466518407552697582815147522173124286044010551204754285106788324446152900389905154306990325618984413997026409023773890409578266822968195329843012218967532259048017679052222737289455845690959506850308340666555022264634891356434143148722040560996255249579349085358475966904394452994821467879195639296174841016807451370219612348696215392239098301921454962074869420739884409148989171116601479237693682562043789502456642351737464344618067313809440978672318205962481542247660273453007637607147229230963220339448962355146438305085930225512178940472215982580283865314989805401606590227175319270542916092098404836561522417783315084089606535340317752635250623080643872390139068947035438948081632617856740104078000406209796836973130404958770717432727643138885506588520262153388110383195256650189916582221326337586728184756435068134450962328239400298124232721765880430105716061268460854711812336055703337255767146410677105929109622776826441730142558553118941976104729733493441240124835703714343442433833525533889290027841034358543328400857045953206528058530707055817857323296350466052897154037486822813180684978965885896094857013115824069467908061054478587539018466691670994762084849163145321094299799765731923962357609051147452863545993253102182067554594515922028687405252621205060562893583255678943259593225512298965605828064362662056216790518248840869557148245070009308877254558250279103385711101362510104704398388329248681957536587199720775311135827001164907399035839161495633950186903340725822414242877437198539792926076767861777313466537268398533737960361424484783233215267281501586638874453379210688690324281097530444575874431291634173716171344524389975235234333975001258475040382038017038640475823667690446716869278926835644317411181781828181410864073781375174426158003425993392681047018262853035348448216608318120914254494899210089464346078233732841624414516717593499097347099847904397875159443457222337755718480015563391213519749600259760942780999253420938132532116530421758100538729652010584828654634643741292842127345499805742543462274125167388390611375036703042064406354808637011999621366721483420486557979600894203303799966550704271326851532629494279241722576003802279137679438394860008976622600768339734235100604630964890973741406838758333989858386023917775310782440139937763158546147713243208698771485533809507508913794338179127555696345644441742942530418894431743724100303623376538008564056720267113745064740190130028872427112827540210829534293411782973339145100294747737006786041759636664436435978161930686894673498919259772471228090916048676464859405915344305057905200708032863540746804091146676990097976072387618433356709599481022570918960484719896976504923002216313691405614644503199480305857049192874101777129245649480630278017788671400804966540627633976136502593636111619158978122989859176346022476610279129461285314850805052831344585952691407239477470688163721991978002004904484786544618895757159337738299088805741313371701341658953479274470058254041451158189304865120065353826683947321848496743237435959861128225695224205055320998246048723116735747482769094407058789664913458105839549128157443384998128177163878641644593668264285603648531369086958049073488844548957433470456745151183272418690574872395982355850938431701176217019235435691574149775268726078814022355960176469449948567631207187637842605841137744765399590014893210135369851007474478905759466844278702489687651272497101675144942776836742862716972398044135379176241491439602846763481368852309070335595669521417320727552390125808676583502089713626220244296607788999879565349717020261029437864267447825723576072911129263406057574163279938519394769050864738729569636519614707117181574567013039293049614821186426823657398429677010907453998594271978045931316342483779950340860757120990533518450935649762994126794903937183219055351414694626855307994770429271004088004634637824204072804973919085748226466831038927175565007158651572458364498199577111781428569196316307356811008085522474504325944994382528862434147459115330223787962090637284871969912366343500678487062524741069374670339500349283720352781746496819806967775665156270024149361893725107258555889171414491734577626451240412495275871560697919129375470482450997604253345317205055038179653266812730533666812065969046944631655355115309793356096721223446607606553464658703168393347411955564605849778340305248505369101938758598335956373267649543058250352090848188414002195039448913421237947437645411735525612425329673969759156194216191574081119440049824429129599398459226637352817764582759356767932571787992114729137484427741085639873577285348052070245367606018388548317362783754921760735135398631570150925284909255536743750885459973985938573059654737685586003284097391776303194812658797458570705890633192176063415086144025740552789396061798550882209657057890878543101076433144804573347234688758861980358623433449463809981006200354732604232810774115017514314009274485891554080993038271572836157395274200737899102576356740862435165456787014436351750998604060211962279408634796194387568584373045259927070487789020693459475813796470242546713709612449181772444076192689431710038384042364498191417082516221688285866894875959440670481983799478274479659084439716550947645815095749121298901462684330984646893890819161308668805493233014387032145150011573655388306964446442345061771252709134044254883699855710541656515401130695215147352750673523601971274668581138503660841678253814902685032402911498507695229914907127622350429945306135911628732487996891755633354121367450116927935640766976842679845775747954087087856563956195780601910839339327912258524649086779101827365790057906036935931759591160604572775497950721505604573408642543604586851927238575874722140755446365912428459690346390936468189253433524981833456391167526834070529836372170609374330689988912210473579799692362901774292614644453994865519741504535276987772814413368351252762259735190040711707819022544879973897012619297986530406780706841230423218722835330891800191486172657104857536496004300554793292372304270065195473545381839593942093688654894936466402177370813695405434497868044170459083950638968468215173764128338378233933056131506683771651312501784214359231401563163347537532546078016925345699528336949467837119057560257959785994876717697626150907565695198426425701863611366020859465099045263571679839643343092901312103321661968870086299500976632804867402033063750751769560953095334151228702607912752538407568175135112097510789360511852215668109817320690999218331082154162565796223084380691430475841080357233498184752234153979384856808538125242704042765857143750035726940361679818900883144734813044601612924203564442821371334231580616157956316875294744460248346516074321042628597976346780713817967071522295205655974413462227955989805480203551661931715074310968242822297331638357306245303160865426303196853714358057647035084736535091279965084351297462577731226791145381790542959304528830104471436285913705019378732974354227933850790379544817880385732967632331815002607869978082445601951099725456888430385048419209531335535741727313354435956132162350820276692129268401945361386057025304726591079658352821460413145073766179428363128630231886353664236619401518204427111219462481873931830346802406458166240329429702827564915561685237694447458050832900933591805009207937263286065746949503977452244766108952810111402686953397468967422174809137148988486536073576565498140882197771202333228220349856732471525943962361726203328842077955165847989287015111065331900849153712743359826799416807669652036071385114051824793688148918676418756275965127298365864600071723646671488973178628409739660675419259384096250579062670000114840332394300154467901608010476700946708325377652162521402175692482910111562757982683581867490447392919924945082822758475758195631129120572591842869576298465744152485681194876063377472090018246810119071038724077228570890689763141167520638744199143880927938370994362733010793299663649783746423465674901061692589399933344442289550436234614711424152715524590530460322614506594019343393190061528999447550554757388612071078513908795660896066384683844765843676136230334745431125106993794201503023097882578915073162704548873072528535826447481127269273044778925787237611848007676296951228165846741328438977254299512414014231400559694384772429757190529446946503265625130470836650395684819582732268768947696918823459874830923622543030734783927215548104685407711071800438791437551704681946728157461298992798722652995182218878656926738453762660343739697533376735935444103508014356485221586325766400736467164393327780673850771499387716736772822095627313307713812812185716633648179978049827227839140688604963418288291634807029327549418277884252321493442682639105026466574662978626387929121192581143978201581668597480151530390748313630155740032462051502006093110896921429687359212871394203964771091774562846311614374914811566013162913913927062582774793785382380933807940245857970199434552578773611856935318355723525091162575139038244922329565124114572472065698973531607728331943516845128084261172906761643542135886031971606965676353187554379612250632469163995335452930108706826406458753646539852117223887307172518355039980214920544372947135931597334364689409724748914710313586283088277001964681506436633196005095358159596202535872166493226506266913962062631642132142321004403044273682747956765762613133064134594220530975385076678526162580224674421484223917908169896530535297983020418211402396870572248221867221625426031466892585612044729732357197249022128725063023743561397699690229771940704608296368706296564490844040061874547093923464251821311945373523731799598216344246381592695386145700071020326200228152843492161244915118784426893815173494747559738373835435566405670380263042809371765543000020247535865541751518808459175014515824343901012772416782768920991562852180053839980085953798874779620240060663111786346555120646066715919999511602528045454317176538542168422625784430945534084138186368704991285614894890219358037407322477680931964972236720847797750462325648640704248184485800525386348451836853806044767359865514953170451471756948895975027389471618088600723256351661065841576857310206133717752968876731740876490688384872871192693050098775558597030287590562139732572558969234120793979894833179475615270995383898870848074596903414403072803677140672783382941588807749243771619972457085558482948177675058794923967701828400396509182171051022919084367668175914483637643597405696947594089068085910748524743383935747971540965068497528183417402181065551117367206204534298562121227361602715893700586093010780156923449243397728004124227525694667844557802914963076664127373728098687745006676902389524437349856544073912076599377262031330634399772563572128972407210826636528295033314278939973417808817963921012875089704162165855759193404107417573094094245560260962514342633008069171112059507621839121989788643731774993836863162075978996522170982178209616235498060431281963007438334847080097740996758317262242576097319219446433778852635261220503079570485709487688208295498145515497453956389300082055755907179251485099292618852402340809357263807627540287394688209051649283041220227076691003669344422725037351769838948485675286935286224140882070011386115094607820013905015096688122748573523535072770865443163146631302628545821797435101112044748380324335003683492065348660600807253355990482415226320114347648898957848040110167240319920012898818378557070510418899611171498279533454069456587508421464715057797801338292740417374343456850377469458580195746475618584047617545194318385269518435626443206717207543262733358380796124459181129916350109325504693898956503194433339085803050769767150337500262473503698159281836168441980195211089502405906175511619099202568321009916306290482724717476025639008623722928872806978901186511302617231227828255432728816344872504546919305130729908053497412562131456859697864311021303415863199663898412761395417195189823491933513072415400638889510327809630651714536308240035811012619896015855574917460094907101717688938173079594505245804352593209200783556310069505648441602538318529231851822363637113339049262239161099341316382004851849028928673292907176207844523373013892221961288842538837315970764262672341613553356580755533328741568838295190253408902491081943277742275172136908502208871595347133421626759991230966505013906151661287835668931773820677084172720135355291675684521539636036489697913005644955749687629853167863863601462525904061072767126509864740176206389089071654065183672741191095129045802052209997929503757369926241692834018021753890920671982154662312524014774901156555324702486086781631992818906781448184689446660905076268803437648393274601857082268462934180249553609725436566572901008493513288421951515158539969275436890041802163785263305833834757000848213951453070023060322217702978310855818912437592749821890567027937758662751827806018998560685356649319068263839866062024825308224119061616524810329937546993348351700120994960106237821960246305998318021744238137180126060421446970526407196940430136813237117326895238487745776700917245645437656057333465769571201687158163576006379322793495322130074644485456760441742238847049205525158018403600830966247743635670030157786131324858882196958336961862473141462861812025631800668019574871312642739474727549273713443641170172327667985787093142631585809644313740690089063085251584386053616184344987719421586196965599184391705099935204427324805871979599101586366641339279687335958044154008933821555422004620446606749314599391920995816081549413008645161240992383748619650353049897555748993640225549897471213466559243333281380915386331092417777560807093409241742659602969373151350979242307548473074256244549569586241494537513947858161105410360304689700002180347250011928657434564876494369383265985429841393111410917748558389971391575671103365874452120692934287471537889640247544778060515775056973465878193891256015241607669231337304089937820616216394166463997637289333115998422980050985893219585829032068350770027708694824724686001172322614137622024736011718510740373117347969133399019770119058840057425563124284341993838724629742700635159727861867715706317357938911203591707450300087761677551463396019589518912689974308524303090703526017270277207817066410438547860389200900675509336641828742176023508908667982788796418416465360420616681063889941967702113477049829814649154775916113736116761076061376135140742175136739575631600170741684363090750412408529423117078123249511497885751602367977950054070162595570584205440975510273457376485105051944022905392954616205195982137871467432150718156154834731585316793803567717990651554101918988525108764010464632053030002084210891484402032963597685961927709503905593416028460189172413911113615888181717712991711316092999570562803078641166857387518849704695836053962715434956049707723120282572980563319094376114824424991047091011071382098642976047692653290663578316113740989695444927641461974901638482005580595519669529524901215569293057191768714696392827478047161056134225926913897926544417719731219771608955814738874520166815704412587438393470521715900310704516604863000426567705648334735626564415328403297415090713182386629035065148956039612627632836264021074041744902651881500640571086761361533884157302700088208506149044994984506987925756503576957350556333757142312018502908276217133023556556558427028201839621489090798273447160854553405401365501843702627435486078123871104634301207065666960815009080038409973984793658868251726891782337112311038848200064690110348874292857233158670754565531077559335952885815304710840967731363644726209544843685273026086655963683524092286986293899128846130349247139855042318668390622082859949621347715244304693440253397267708838294638950957370417913526778912942269070072021566366374968706989596270993486440228832843569997143919415209877492196181150510655945315645053808757594050068302796734512686493018935793593377712358584180034874480865053671232377373083043195433200465355517386237308166113109806903667236843801208406502718995293553126684628653366170789802329210069807256403241098321186565816678854275435090106150253048143396543725516675582160539687650904447452744314558011262393273221246501873674934135772096498871093594552895512373681462729283764111825318124570922011833155158337033445716482797072808761791514429460478384966475445324137497992166136685006279831312281955355359229789617811022517897290305779453264351563783339090605463375702480649008709877951310283410943851242750494756204918858967570996676400874705402056957960334793749184810118723707914663891018175971833507933310362518095467887857357631173724312295993864588355202169576374034039934777641738567030334346230313998620838008989228079465247888736437725890803020631429122081537247548549432149104821074742109177103934491793362681341996115399202252810853754718516545876854011727500015674896802911566429699548149371240658530966722241546419052185293799863926564050127069699976073045739384376712420148866935731530421973903168007712025230547432193719936037525387090824982487577476709783314287056484069763346070270776341166723241735755842120802623183782272012136414877398545374291182914927655780409711964739930476700092208504388009461331791329962729707615446740471751523477217750486730631375792954261794091018760126316218142143613436563206997468930760813841686334919135757467449899470387352435141714300075880280435156323769517920529097298169557719611703529407940018504415953990820504858133586187611245430348053766444598097730544444237871811144188361694790934976937105621569728869030049786356302246153830706632893959293464742142731792553459054335984233464219236451897112183828085739577330923497012024787010792900923146291683300512082649797717546091122956650941914766154893664384476747127094769181539690189016682604337179219677752007685363622838470804504785709447709975906370495132566735060532589027102920433498541615743943155888710615869020455508092984931159460371382961757809755247138449387596391143205972259694664390559607608900642999723956721241053292333512973138926979949511994569412332893853333965609174087600521494011985257602283474359008854379135117070857094705685455715400537186509251070518861796838690089568128327232749777145992613829943960620489719699295916993692046624006830709920936024571516764943580533706854502167254503925391140296082435121986521286053801363964568762701216893829245923083683551190666188785134155518201637107681110598081363107097702322383039760759353414800467782619685414085572001561579623037658942685133680719566538665742795606588559779564253975868925608402725513035240775127886378911431636097378521722557541694611568775528724899607910812307687072789604212131638364897170919949559584438941015039102282113123691594653057073726379461481962724339197448770479786828659757874547786721118533005187228444685448196851237210775819063151370272377237460344438303203717457167718050227347444480939378247009329261007042700601763762404424109862429307060731273305008013826740635491033713520705205809762743477116130421984168540153451110268078232488106828221181485248777562410231064478664675467045672382189498528437396280868472275298897660755700238909207211627425374805810074303789501864104976876546900447175281788461271047737197248537395404893261871347314509016272096366049241013874581297867093534587152953649978274730940745307730873280483966317571357984310961361121179363052318238861931711779824122697497105794005922131767725174207939287257394117894434790592389505803484678710360200901869866887693851009778477889184680627891657194469498148701031040031860802552957195313885671953024333838376847694006372583038863444539627231283647713885224881671467303639830910000587450183126951324669837501651123210242153931587842958263350685134058236874515340933452879144686076128210107137567551402851481497121593380960704843074847420695291565527397748584117617184800843727987011828002832020946586673054184912668523962430961501246943513961503504835934124385737512319648759505893697781194161552397275624776827922722002719270887329805171269779500311309503713310289065645627803655786102930387688405112184451834228950672229773968072118198820608403606101947036577631369374341731839046763467534782789583136255088529332941986084244356793691672143529350166983220679653139544496253110598527875169436191448074177461755240146529857123392317814260563627685999617797994751517762860957852232206630264778713577873568316477584527696991415603352282936335149855844039647675378236321864008403107275750928617012957154959080962608212478152368483055198128398954818047833147618121188206956885677361734889887281881367758361272317473707087485509284899132950872313167366524577832476447700823102605860858165300286216980958784758484699936322588492746658608623630123018370274757676244666098361971718041769575662897810651214393923282720495716348145971399485780214873704377681728586065960098329021246045502156175715875599895138927392229298945006987280800811704056095263180735427336999638788677172729464541967467050662546355650031125600891958437107320410492734095523615215253099044564928338315519239465715591411700478128033277132353846090430350331119296903814150519893114267181052583562053419585022536972032650415146539421606010151198358160352050042075490612306379076416032308267767798166346328960379753201409971124069659421410386216538344403964392777416375499848767592341048869344369852947669302142002344357204084570692477317688560804772245608887822876851476681342101105450854573911729140876168259919628640453991564710542100407496612467133173218402728172596754893627239093664662974362728150276298571444851743723615232684680040644258146965431794587133963617756622838820588933518166029114993153845790922476722077104724055083014967019343482987883298560508035616523155364434807787459827550964898766587522132113876885536150082787586997897351970757620404853226703574002552770081740512561030677985283263991753073075446648634415341948182892259670014131016399193244528301586666699256481272935440370221654596412355293318186247313682776715442914474338637866158684351340447310777794422711589222875884329291668942223274314596254088028459864102323083896274230467752362170405093476004988526578314293137641488746650171312901529679042542032264865274459756298934904170741023291359902997395728613935739954092789369789409830414288375093761770238829080420132505795167183880499189614288762895178784313974088598249889896248949220986869939179304823933322841875010538179092827253172692366503067231404802368718883055384486851683012565600894679508665174835606976133923361258782527883876344910848474636403961240761697448664448424053243794003909302444775629876532841400516654906845188798324582018805910654622612378885692874834262718699533358525548556679856863478694295751009671340646773508524262695185154713284830042580112520749638666737141185475629744902917550602417259473237364206307436603956908596284220225516573394849020631381894946662541680386770324798351425587042930676513228541978245713381616615412459216568535289097630364493743774489085491672538984034317574121688941750738200581654791863428316525079591680099938053804766020295236358738959564329379804248221348565398897641762195434107672335793283974057215105586749236911920672704390068992513479665486490413209531484730792798499952153761432493938604932768158566991072990482927399387322218428863837664509554102062354744436782273922471479231064770273070423691914781493401012217693848115809615294004911630608403973618847766297876879049288547971858286954028415104906365407494276870449153813902980540937700640565263182511647120111082913018869050544432896309601965686527603967750191367074671555827373723179900282093772665453140907194467284063233643150252950290792363862775755082741065909570034653790799665803626454160537082327654136857139340436049063885020711447663130260263254110057457564985206971979167642871256182857269551720779436826077814397640424804986769186963804513056072800354625848600946166901834436340476332666091756668578321749469220935790933256951861979291095361538778390600148154986631661561110003589401679013186126598446915588893709005317856925458228059489283237956432070984085569813533629640574721150142649808862230939363228748163515327772840419622095044213131410859299220443010565285421436661743793066066634408323644526944678015148048590670161555563130317955674811748593712645407803829978795991490554621718869969503560324218201225126889152065011762136992694402839008924365232443187548238929091615575184327635980049155648096449968387576023783515528517420188907919827828706953204866495785340238505437584266268848900931318601986675182372435835372314836685018798729325232637701551730421390776150801724447188176550963750859664902634732156030388958012436223604727590912962247311405846433741767593834892841550894936513449243362393127402632294199357228680909382106902511765158738423776220808400459916115505104547601791630013664615233605898565649186616869995465994319037393273709434251673413467725846455661430586695719802880954985382378028011147945770412825535983595696763869771869116361059184342957691954678574227834879818290179131000768419408939765257414965167642644260129450787564697594947442539228832387378682904556642827525668954011893816933853370678189246354349197427554668773926780634948664098470010635420578759256346248343997292634710789909276689971963632211691937925075844204122003638267270828188234423643485929643423253716068523012545873734288893460336069799542708993847062435357454343627877232859463733423520800247287903568151544920870319073903179529166695606353207911762189244383382911278039483401598459325523948123043735596093276878211430975420411889896151778386259944735262562127377705669917033806881586175887385216060218235606865689471191439116091265290498575734720041947195114050019385743911009697174270432946824325970732102786702789950738534635809089329169536312678010507671463754832669253771114558034664971813278649083893785976325814511207380666573236807491284349127394388135540221161963036119350101767125343704693261361446430422715512303581470848343562192186393202682790506077430959707965305599109176686264739956901566576395501651050706662686129338454563288165729931967083768292999326872236762760499868566354623254909000270331348702553096343987483847093997351894281532854921978498873157047918850235253728631597426383461895224005665559407944770640391835397476314530198694967223901593769655656137482660383693568732492361977721009608273950445292547665888123746704391220201580656623705342000689483626768012051769444463872107610295217391888846668972662787239329369613310937164625469786528238623206905291813546169480290550096639414041938437610720252090257696947848140073528087648447876876547107218793843012614956733757777037512129186305953901080341296943281646784684226805685177193185575783363830403400098230180720387510619381436059085330554252763915179657055625822164409735188934241931639403155753574536430843356238401690505514850878194350898943498413131475394481898528669684385259527784265566984400960889694297561959026309038987690024841335457721089961270018724012850478787239893957244386725632263197437470918606526734031596376340331007342608433000732351589157099662911084258892235782971179870894941786067566272087351813336171296467724414499417297488611732734070589344637020442051009879385245605458656521537046893245226931721815588216019903173197155097938473273889317469802450461968896279274003303879193354378018867657383283370546599774655468731798619572989884134929986173257496603609851481292291001912722772679348307796849960044947839359410187540083816762074843122355753512902036100774034519969238497714415863537093011217694823621235122002839988353857272013887117579459342920308549527241027513172120955093288237424712120353004796237150094702115719878331811088927512319526770020122201917472447344432617888122002705552467252693177889258979623765445973478301605987029457115646078733606381466862609823220676208565569748163337203692963226786489236506696301751193880455317459520796071009793736440700001336973082704953583779342000065545997177554244537051755264309552830898611364518315835746114843383449616092150742444200604172962790808987443122176133203439447005652005412599818355559005777666088888765565843583860935994517348511765574342116977519632457563625383121160169899121525701893366682149557649118841321239181698085864481877983372216684009970757525371511161498004320176004906465125952474355913510571215170922888581962574358183741656014228702767644203183882965937179516616844527524082429119221549740141750211944621918971823202340175533879002244556395412229515142056023168692272686801657999640887595208510521541990380691487864665995681175407451569856100661612270685025767606652085142759112559834566344838565635699211599321566850749122977187861595011184628181977150292453558333211247126763967378969376508370945280218976498712270755178898619902733224362508480701026146659214045788203158712849905069670829404407085061569419153468310272827161072083779132101453554357132654364169781503762396086444295939986483144565693491877389474149442184267469015756868152224257331538418738324770648529490684255671249116350759853901197379192380491740963486293137121345429379657344526141797592077748734674462926557776090084983092582209947998483147785875781789431430198706678456439661934011897553612559268410860082198775831482267122803857060095726227402934618864036410585316079361744738175441162055487967809354355531821957775499875372434748282603400982265464517869499396858830943001427781520298815645634644472807760682711314534474881700201109051690925398625128353799410883109239129125321167015068707663500541799059359889122884481335015220655022143596055438580709569602582510275291087136853961062847106217346404830980945340488383669537507401002619558223064664818536006361406393975572893363997854116880374536673122582089208907386013092170024315950740065803944356274048645429688806784027894578898410564219394914717566731513116364962211222105110179011458733048991989282966533238231483139605768266381398366531663726753333150574101541044396153723716666950475815395349498192713448590091237819317590137239880634995200737600393478981784106838843402927050176633657595000259606265747549034057589277796819940221011658032602609636359703755751206447032221902512466862492875067114529521085309378025352348559589247593854370781885361696790473402471980377709855508178966267516820418985698410094294283367678084856937329474633990070778128102683949632697350314980446532836314281810185506054381199171523007922914995393490466474554542012650969726226021973673852464115462416184296032995366003383986883964450010225333347070295184171878257222271881303255455488921927076728060643016378732471433512971360095053009817544795371796622762790086890905774075313900244689374017426343909729184209708221694324283201465355278710553824925725205613416047653960474070300284629406070050003169062630470595503298059462750783066103916305193456882738349835101953805215134260889482990784816323761266191177341621610425896628786705006381699274147910550581302085554083409915913205923921568837614288523065844776173689434647059090714869614930811183096372627063415494824993191411664949248303640605964805101068924557673847983489898190910890793186624975882417505048130465971374496353546822506856236159149958599794288144545182729579354205636877720013981808051846371194862443228040480409245061141763081539956358210781047530295809503972026173233490921873938002428964863540680112286542557827474563559598002219253168772247419196871176575778935600119961996546471050683485459743158359143270331870454086148824562683587036513289866904216845180224591781002355476211700094669090154721188466730504162294287335764086472303395711059879217741677448517486530933527098540582348871973296585929632903082415736505834968421775424864278223954427212944279492518933489358667121306292452963428198239465126573608976266103702446107117671831090849414467591023319269899064596353385450299262996108684878241338262770491929904924565002881712625588923356202415593189521096286924827098803139942833158038396065245890627946637340221360563276758728303088936968838275804632013899438711677823243660891682184894732718486190611608799248788787705749612280241172417856329411164910267253129594206825828378934308417632033432121861759122698626266433584071571958330691633395348034105313802330444144038589528934671962789129087413088707004530857589681338682515405007630883490391340904060446721179419462202281094258729063749479965603621791751530532286950040985553430839338320707142259303887440097711064697542639736789401422069393826521783358840278904486161283153015715248782532721241883833254383617743491298609643180998316097732273393186749509073445152543319639981831979911249322839267301687916041549310778296801951458041395394142755297373562288460523082205410762671397628318652439276476025632851582125323112930182677395997868812538111200522235368956726589482714403186760980949444275704504702988474996406387157285702719213157156847944873228224536367395519834358856671841509499382344292970518656434184438639098429536534960373206789557040039319729067650818217595446351648482766060323866209829384152635190908030236317920316920550242469451079593119228554356451377522566274166185406452182503615345876036543088052640043619582493532596108873032548903489209043987636166140885031668559686974921973845168660185031345275769259451216236401422648278810628826558418936023323871135771186477053304954356041694001683681495587380355895067153806197381564640610879551044640916403310074091873192170765031368331849490695277135649349677170570170449356088558498125367216579009947610406397159322312269771728521590039274093932719767101862827006040701525298914917492362955562821473846717034443386309794308504550740081341559585175580217844477995102356880208487726202669220201851387743596548820400337537425601482459108962060966956510532878232011068026191577631597554348805871552227905225877944860428047652149925467665334963604013691617416783174950929782012137634450790336771919821740665633228879237237638955630982793759650534962978933578582039786807739322821308377523493324369515462702606468998110304494903342760117779428583808253678703669853505216967903888842717333450406951992491918946928063303441847098757022899797835675662956671861295110009888451719504155826443181712093647958898399086000498143872450725808895207463337066736640344183751886041016434309862286598555523968625223848987621902798929496318153350301275782754043269025536823599420144575341265916261631189664026577578630330570729131746835916370992694962309978301682060853353472358952512912614230998785207132133592683206029245019658517660352184514498887536625761350160127606204831638310009847080687472823412719472511034716241806977750368153475496995244811763836607988516541903235120273850381346705072152905720823194642480824768427297501252399912114640485952595947827473062641371233560122130080170671886995047957803459117466897990420940424737228542124388343175240736680408980605155653335941971889528151168575671077096718993708359389083874169624163026652266907717653310517051376791430665144148259671086774118236287219587463881712755063257249609513709080542482031958648823593889831769466363494499457840082180778662818383701509547958891421274886658958918683813728776649287440679644043245346858293851811747594905584220111776922121010128375627510682551113543861676118544265673680765580319325699237888529395350201219655871595800719515099882871722594505177821452332626148711381491026186857106490410624092649605355867744912925218877144265150420877659842416948443413738158180823500703085987200642916095780856083960042098709721615308622233064163169785733651756084657738462312818430632212778868032074293488129122415026592182500444174256648258406046158017833917700172990676938050368547121205394071077859778615765531180780068224335013184271203536402468350044929841713957837136455253761163338537829078079770764864061874073066066741913198572355807194376666524069565844986474910216801504351607736729227616282873038808901477044367061407265838986719877135476696158853338259960651417823384654427156641534354021179236667407684120133744369946413319345146825884333046900297899291458487775224465692080232533037098984238983970084738960635370012888983436132500990682946195380281139102274659076792364580881981410706214346744254347597923423734515082747718413167276275176385271684251321119151106714866248386755954726409796971572777927567837539401903717315187572043009340117087449029186467220462242353481975504344058834360046603780911359289302460048442526289328591264425704706154520620284905887823933367925599040550530632738125811012568234007392849291870665951395992781495658748194430508161077060385819833067112440348071053573657518451749577522195123100924719210178375936274063452494859296975472171026779841414540647115782685443940134700375366224991321518360956225282415014621436580179820674750572602680890430358610523927401018982403314237036466691437683394555026334993150215777536684214939761085398376253079070600170987205846240403535959425096774276555567530237989978824631669798139140781165416597404567854660414906967114755469283902534265586499902359783353916368833492552852889371818507574991257225716653402279499143950742098114730162464928160824507463924317097614456941275419008201381074701478791770395852641475681565893455638624319507747637163783240553512571082716382824064621907512388350369868045618765562186333332394997794454236656658932422762694373682482779019615004507506171244572990748838979750769797422056072394727741969091954736054861999103734624539094583636045514125443044908029951856379766464616887453746612154555960116311236456363138255150752130311986908204329693787809216349151795148155953209278321173325581395502323039056961725294657625225988745022037313232323425225799436374078726511377600291822267772239905411627761498897895768426657912411405501748380574462949380064348140259360717669635317386613849791356742068101334564473818887623562974155305724685289325785979473386876984369669546488039054645916315717634804320935799584351815039059057221755992918659348369316944506242666521091984042123709261842479471517656724548415231689543595656713853958788920290090125107732841822091372296616847170427380258412733248613684483547697965519757303599754591969054254868876232773996082778481826177695475536173703735662044656925836044271752823352894414810155698330829398694190815482926370289720124881367332750415203710556895292841416454732116700744572817167091925359182240640695161327179593618751692297503225953042404059447780851574320969356538264343700802907235470393251495307095964750709475975018681451827913052020843981146093392936710801381469609514438691824040112046179131200989900834500945242156789614343186695638322458035653079201453820895227913272142610721447719803892573910778890122353592574114782429682135528886455953455614423427471436022852688894535870699402683382400174642739121828114236893842950597955188282173023460758182856481880096071634381004644611198669847390560223823204162860581466188866797559927404285720536728486591062780287814792551334884827864186321810563812652423326579438184287724887769023657414282927915411252024473218838917822342289789051121747549681767985683532826079450286165770039322132899311099956806630294524659422373790372970725025972133313627864224800705408781152746406309400756991298870885505307855627944363343091491398479761848267245206327538401557588175508082370690799653785781516241720189910716938375890865394037475709415252820666763873128642139797487286457039988246264513227584042839665899434300573919571088997641802354215372742754463706839077876575680130914456282740058733288551020832236638563046292350359205609215607454703045952620543324888726508604409606534410787591042666395605297533112265486098299749557953405833004419143770599559532462345094621887070785791151186154521533273545753026400616020241905631357980795088114641851973702315711819259951934410916630008589390179673733236547039050214640203445760890440967278983555041369986714279195694415192093837438128386146217230492567448324458344258532932721337473038894547081635604125419116214125023166970723305880760588312525577900558587913259157748672901537492469083007666611682805679885270916972417453783528131902573524857337670931441739827131910317242893530494323649032219293037123682402579127788147371273732543308238826286865978477987492351586316925229387200948350877919616656810932810513135536033989100738591408304596823374513646481614021145644992616954228096805692360877869121443792113887700215975710432090500098236788956556130349631206895138745180535179744867518450508568813217495698662672210174367880944874238562190721369264575405700028575296803399925086840750126048056305647374595267525352255967165047825400534672929953677929528043494133464820724744477218044906300106230528409105118569447831932367306803393415887850911683380048525955348390361354696970235789191410415441525977483715575750535167222872417768534890925991005790711540658365769958807153678771595288820404084727077042106708627700273037090192689505764430966492324464809845227738141452349440908642222283801310990465617918145889935784315697160987270084543972332573879880176777069564760503979521343008660950510323810640544371213976834734427382306083386344159368267193180408159287681599324033831989708638221213614071788087098564485445973952358638688611557648961574926673482401388892404119457522225249554856153544924218432417931040891421148253304752627364551173619044909917274393627879170701665393819418705138922966419266796451795434946658583452481490074455532603507873993822784329301916719268963438554812811916089640516726149760605350740724444259196611746466644806750293388015270921855962659754627155002718706609234015379252697340930961698902380033198399438139381531193720160749059925156759515616425084328656036013180625844059701522880054916757470214005998484503573015604324917848211332673407667641094078962714845919735834659322137375064489761232945932024965934548990079868994162387939905092747342496994087732670295042402380929865474305074872545246090512740737773127649655751292200388670834927360958224415693101632449498274508328253019149549481703225237600892195303531586539410475208877538806448499517723457124505216004792727141316489682696967708016774914045413090781155237865112209900743989851159602651687036086540836311079929130314030396978330681963357505545195650732952638689849316557578031454561543724523288266303903798968713950945811897204071866741581508001061302204410574838608512676864468439546325705654467312308446638673196963721401391895873763916624227520169031182444186966979479494631036900806151596854599606341609646204029562773396097186682714575844528041969932416279132068083600996627509204511016971259819275207182232748911145878186248746238004879495378856266356907072630063860205992901642862875101084072107334441913309227887865696916935886328138382925721080001660335440374619270936801313648071907604122361742612456152992292194716332680431887102775267703548577259652628992939438126035355584165112984284645585804963947305563062392725871464274909081260664379182192128216814455751194379160731716613484540972214338138300632745339066934214914859866335193781836811520185380205462233520589999906045864608920719999985100925054297829577675315207244530323210721131879205636038037978198096322838500000954500704107735135520798536327577524844793255047442868091339692639664412533368311286596814630167352684325434359880435849711528101421263738182874573347614228239666993536768483765950747640131119715561054024020293805809333090838496278760688027318595573870386723857997633375160163642099688914482242140923556097616718738008380071222932156247001565838941370988997120448771834282250443138436967086454283905145124914910726285185971633652787955313531981159620215750061418587287632548618754950617946503570555842691338540398517896434382032826544134871203968229385642062632014429668443399768690083065937644021461633630633820511316198091398830520963882676594690906644276699165145776851835284908746278004270900175862081315124457782010299528797321236676367511898474163581099686351024996361925760548608955716078368876470538007181401870774491953731101930655518334190760425944962585009177294282155413524146020329435601193000387900021846030119431649360626686184441701978616900029840390253288180651014197158593773667784786044969726943735608981502634143963460602906271517462379805054808137641897530025378015323736726656169177287353308479145441030037379116660106955930394746281283983120882092405636058792193750131253296601316997267334300657255677630393434232951247973426025992641389287073772573968742601951904009077759827182725875869216472662990074423983482135668701576716836831798261895227733691390648656955702594631281325903084458179704770157227323647669416087965058091622923341264618271510383248092233836835219593748992135844706034184158734181558703884335420533501998137382735852354982058785614469190519136236280272852232550412121037412687767266607120069930572436977687703311058698581672014601002266484771200782044339221201465733478206057359694776580439464908471480795896166452092746692113723808154857845794477247101182608995092192944053159286742152047163136170639845728154519350183579382658663807434114553864234426594987648726507087063157317765910833270885088405070224091835596548757344518154658391306337316842246425905730434226449011501367020939011728371140616335484791597559180623397242980245604052091576853883836966726893365229934715907536226372122336938090538299076511855420156126149345517736781552954053026384010459460463486934770573030793494566113971506884529237129385011874925102217740882175712418339869260791450997771525471659741375272347415225277012236137901582596431694163880814855564240865839985318915590046698230011464822929626485202900729833458414825287320068891125171266165080747473703396157197633922086600260399598042237321801956009585595759615584354558973202118911988993012315401757694958702864520554616463625731767106039686772655756819277261949676683237572112062937243173714297696738749961180564806870514325229426327238747702515063206424741486989544107849598219440651764777052396643985857535820207868522312122200284516641801734296837840687865953861616065062614971279526862149170786633286649382983350305878262610009437874784707706915523092703750498870018010443862081353199497149882036276865356151355450156420164360915305682624374952800069875761633139229771384485843591932979780252728952863877392838498795346876755981106567892528218130241768730876696163037065022986680384081068089401775237513935660048005771694772355506053344903697471314347468371516155023722666206925547384507433351958432413933803184360459217876112318475260860111805180854755898156464047835884069239823159106942296728457518511668594001766137404096976378512849424558382891187489575771093013949434460859566171571103187443139483192804305284760083233498003839657215580134681631700266979734301710361803790575255658108272113317313427531123494431126612244018029694055809863711200539908749108810658214529551699201240365696155937035574865953128105444231385481643116599950019591470702870262205131953635925107601533097696170515921012755503251759119755058543945455776057314762476285728396979979274440771812529494786155952637217078669124320830043677426683876526981683662777640027915771924935054617725536711277253191716104571654460143792370031149320480133049330502069701933879982601000013405999634326587306056928951675260934667320340252801676264282100824341650842057097755892694096090442647858514450306856487282881581568072526189505541198843982741092589959504103125952082769025322059124763685579421276591101783913147017739040147454871818063822949815478946535986137441199065840600361700089732385077709596531566444904202682481754311248308699070206296461309969868599544080771773085294204716154795968598411064465948344606095974223793957601732951464665468826809584225664285297472777953196252033289596120292327575824034082900440267371333366488437254814396671417424065027513894849033816103700620403184846048412815005339882434615305533326549892847649503904880809507639754892069842759381028380017517586294375998442133186194769745613138553117687497436028535005013174290020554246916185925263098335978546912110562880405242995031783753316398116926744998965272141046285684453910057024679564851623405391691619226407264702942978570401322241323539636152770801800091447662763101804023383977807931662046308002556719328807286614613960162554540662012775028529809251555882320775103846921845143087487887951136486002869610997613273146991561571163360532890225878271105921412680938094750956895150637302125706389427864616547425985240550685336008808234678216007883234238268350461800425854277295697127784438889490448912647842887187185663175559179164415618358871849589160767201471644505790401813386913993083238901517448425441845998176982568375775196222867145873278677921795418719186981717169539301104731166249344431831781031007510280999010735744796190191712074812487772476971103956999678409850876787747831392795723532436989814804385670050174430519266137715990687004897878238922715629097013273177358357148014688210355919000859449355444330983040150084317815136333152187749336828393333308796146467675314750370318525815482111786572435140198204418270414868978563419360760622866689767905171167430760183337002002302650451352323063322479335883640604531683045298373779188672191344893824359609485519926317156146986777740862011330497913670803084616429118135852313891836019284170294856038616949607147649825964090285611713052840797848327469625089931453314228204420932300166261636258313900665219871509192519479910019330998274473198181198528763992061216717212809619608793374984434928938183607025536410001306498894641339137493094487946086634410062655768255471432712042575359322796295725465412681912819726334532442218557253459861913809490587242194530845880437525676787752616536897941289487213025708466095447534949733177938311975796342678504994874572544390098010189145084822595945849250518488447543936969051412162832319671885615439670961765411083178965075808585193715179586569754547159844002336100103173309846859647122760305799887174742583223532270290248691649009820275755189302544964658333012633235660942924602234685948468280675172656251254927802631907348339313071396398083670500343296229246590886600842706358391293268480030388150281687871127045920309673532317646564924304205453300604806538296679109893850232209863804094739340442658033948633057481776684714946571958092186962254487117875544038110335886924267929457248683828320726958218256608989843027626700089758711604888896672920523715668838433609235507329864757391415211242978574683055630352778319125909856298802824072383620941295304371368457037941801512103165807995082557955094420202175330674975190614768002478104062527400425308711165518773435130592778864073438693738368642326290728986670703954030385323556460488791343232091060317831274794199206550517761794739092327678760389177940574399560747938433938665042438916700417142430412407560735706252537237565354943890451327934332030153642994949037418486926032954222016103319691969983115107188038351573503356125461040820045930418635631446656422040688515954984124338035280555690705233984880816316974495682237480261210942186761778544309223114415371966144449398768164101745316986930176265050624659828278356378338056192822346359537887492452111545266727946356443347295219148420051207299014074574601511927092851860980259535159951955172419607218811078466084586159602018460405010163176101439462746815415108733977861140363519900691460392079150320742684484832267666557060311514035522626141331375992908692686332406767307806129456868254611680769905532023982143282131778164260721057958949863980050858361971734428427291301864184532112892328502576091969052526098870183578965801643284059214946641527201105978150400506289274386308897564316141740570736713469160468036537952858694736411680814111441675568963219551186060299252459557479497283531856945976138086520993218569126740931093708945782178549748680709240517862499411119698843304246345589445431204747555139551438425684763595134078301210402873335651698555556304176470974970573832559126381507021811220715000978008440638484234435051467983086519820002023912964404139181872021727436571971499921513612167253987240542266086068066302615573859752531554049797363101424479936496612309297973198926570796482735735597731278389480359296095967636015833637201147360577469307525278855829568905296389789377134489764595509182870425923975318879462628042010737768129012858618428595719178078897615464432470771905107507717065053965430757891955686372354350543663576351954858193540391297953494923318941608114254172440607848888365072550128945969144982476958819116462570800473610302113711796815003580600587571719873514304198531591633790293940611175810410291453096595159715267938488510150749457641408336215161119101450020782190491644654728052361428441473294015237170709970304498859327231590539998850422816016889435900436555972686152168662438453441851258983308651311650945712351094458255475264501179295017186691889914869958792849376102145059429780586826769740328849324126326650565561998703111761318565716546183225518375516080617292811044523468086908746277731988472256860362969217655131491076990364232775968070670576299099384994892905964598903639413917837091192073229943727868476433968872798640341540412369002881434269492243791608638670677196855244883262876062740572075058353525720114574135299374523799172566948031079605091678299535895342111851684204544172518350367441932993737375719377959560793141231432163935494212134707819472330811395196331639594594530859198166026279739009818150747952835566354661162896708017190051822526928493981017403683262486501750765048933516476105044924494333795918066545116455826337475082419335224982177063368251653583259750824422642308650490084870836541082590662345498912586445608241898510923959498603146316347399034997380237036241119197829625991378368072924852009559408981701404070643851081156487316892967347850669487724125182884764462436043950061788993973230109880215919110877343717188415789886462868363612555251357432680747884581990842492054946237775240211876608768036918690280368105365717466213668552517868685540282459115942889537629999124438750436821625212372281657493573046668540001722308530954430855814925704787064050271051195252831285120933489213608711769140561031640367156304397765625112264291290927879705536393167754197728112424387757948919124557307439476927680210238334231914321451772393298092434846047858217503138799656814682579055517888023655549803252689120883446567168067951268499756527879699259478475111331087257959232251071702947343953507063246342287234827910334583125283859842836693308008072376515440120922122110792989227533061073616070080090532454118504991022490069719148829620389157115136278231969120987483256671516111702917096732004873308668418748349895507497001559127805070881260334393935648360999443290475571060703798478198459588556895609762158852880666673016901044198227890764153790546417727381631247986975761130359597463665157929150364904588318879235823749626029793403413867756858594543573806669769053276920282460211284076051495779578115077441960537489687523046056193901304725451780351118430762872377073780654787685181304186114153775361199310863800176604545365458618070265089712968145208161618527779763496799274009337286328959647479520228163527774303660711923915805976047259256856508266160270311385006910023797967903989553076190213495302574254017969802727321463557394053577010636733692552656777666254562161867338273133006152589786552273784686298818265567716796935284005275685498273956870229329955411359319960253851715115387246708856479580327088469856403454922929911825121653053871725648679866923899614166009842390983231480601788997058467880231404817998045025635299219717427024732614938691991393961081314044904608559623458550648762413934949859034705895654190658512005624314822001518983716922166351510961419296279752293433306537394054388919676446234760685458992115559308748260861554339361231085776253947908857845479503912533568243369713789486908725444136923791422716634561819272595539922918507573537335276773630140080456198197143081165912312304521003593956370236857486014078324174877328293738824143028372536871598695966239530800977060587118914981860826495391063898744648760080328013571854901505011224945741559856811726025633814893336788066645215369674318223080491309843086228669415594656147686475233661273238095587402571180394442796955212617499787460240795881168923397422997636779081358960807551350962825935337992614997437545839800369577106383004776275157848000005993445896450482205782457860845126597178883057249816125444655609767681996753586506563309100704018769764185438432481023624892303807995682453129519699691006601624225194507753191321976118881859602413236997476067005810248958038019999967874576897301374357145618365475904516498743672903730925969073582480267773943255955364643020672763216691199433787384041851010997156989661044104412614915869372167756277470099975945999722153061334334146047838026162460522523049091755080914000711262248928053148295830229014113741204835827473011454774588128433261376761562784731937628561660901849117931385713002075688940535004191182357053000082140266886033596576908766501393831419482469742440177907989401212826536082515434315025495925860919818411687839797787385351416513397783998858620388401912572037556062101848121431235211005734735638988753007656543721806068755479647229378347961110655440885519069583011964213428150869748212714403178184886268730234457465043825058176215712916519194733907292801959332546251600603743466797619636133674396723396035261261809783207078109455357006871531752178175050479212942354668284356584176198072505884280493596962203013191331806837129181964359258038341515892244542858691559793464668901862511929238956999903767215042468543929616415060983903679531753917854694685285510474111206310805784530182560422473052260154753081516024196218402856276706650670166115383236975909563481046345897748261785938374726710134225558653791025106455715428245030177154666091040015112820373183059953587722206209437464806675396397048824353637322940447449902975870203590052608605663947980733059437002365376648211236803440990147561376376559225746071200848789179337643976425642125077541180934291092874288176618674061170086838636559576190130798182394020498030043777452923142347097477152298780032605782804904553798469084622601482518241913829672531562821672286270004208031341252025474079680746995657268676088605425990485330215218105498091008957823401873672922791986529589303097808506734959236708031516297936041840730566532833420312561924191877424419686381608342819451497916376157398653917051058180512690689219945078446586453985367353273258116872662771729112333497268415260228479226235561756036742343174129911845147131237382682001882784415698174699086056770245380636896451703464781236760963802614090694836586388694643104591585324841629309492131435261138279510961469943986385823740893436340237239917307604785985862051309416662621791668542883752574062481117578695089257570102768026353523607002763338342321772983164633093286198589639173101445421821343016209447506957469979762292128194947870686020865378625828891904930104936935021987679726298946999342488644906918360330706321546258587959308124880842018863475184196094192976913876589503847459515401789320449995718507179430755997842724199600887307942271695234452047752157985491857203375475640686115979638503682312884712592086729674537973627188848328512519967660004285328702514472775312838589025909619856915788882899924406978264642552273187101375101816187368412012452086436673354607778758999358924606261816779371527434979801095994002601074241986923366654721250545086858776138476855002249433443370831460119495120485929951393753940063653572654606023511651263785369082202234714218107385715309796545083731824165333365648850240087305894521768941782485438557866400997048263158365184683678398265263193834800759900548962699675850389957983844592354776968730190440977670287071711357579327737539501428294681764513148381732931763908000606229311279178204645463029824009571978061167776435824406695359172565953335965750120134951852876112021256676707725314470275451397125526536953667952770963786656612558442951049880907078650356615464706581920795193915504032640912925474546322123088360154805305947969964477655223667792214309094916775525827371839088359896986982454801723102176499913093441115939998255138280478213747379497874870512209313525702794527293983211381044041571672448452642058528475357169428085384179661184352777372034664821976339227337554384292796118074482348962834661020508872308212784197782482127826909322448790387927582649495726351675053682222633267702765348108853843148263058105724955944677933882433566120999546124154004886869348918819409507345814426025689249359929180122097057317496984759667226291408739820623473200972868793718402109198332037284540743268331568402106177591952689907125063604928173737507547649168624101469836272394797496562110961712358819267038297121871643091933769544850449200935218564208522072362570565082351974799355551105788827027839805434527191233296841935801334028788881707688422742538108077537375983059354336442149036778100653749154718608131399749968441707284237894314087349316041090985484283881092345356601384321432073753445184807678111853791897593729253948377760807086974085167412576680100952224238798844601771426817204068257561839479662558384128849510713480961531278465314983149759924168234000146004667473046005934328043147880071380339988186341736535888154049694518435608043186378223516981405382700272796444244611355457945518016364271220893339893170137448672212752138865427443553321165445292319012167720831312668824925085426319664474935580737097474356906370719614893244931068800308351722499138653891582863885181910224817550847581796719665122424068489937568763598608553206723366849791887527643490562712674376597023950346909932503130823956414405019646436889904281579339392951091777458590781968213580756492748773648490873329625439725391943124291924236898658174622325375018654774320511358290346983020473189996996713657098690446426967923700522111536920338316708020195257410203551200726357689548950768467401058156936574003916373542244285227783623224880842832322795685638747588232839200349760847421155173456691253185733793889213841894655066525766149284664169532481561762556164295388785058619230045566536637593031748074759223093634222066113927129826957358364029483971966043225243682576500077926381851843342785725924531046128315986757699465906922873715965188541858919561291537200892599257577740432598770294980937440413648481931588361076668257329752541309941171049434465443079493933276511613395177727545545156975030762101461862820894953505030046240952430312861483752665950671809868998039321107603001918392196165939863082872869501007538158838474108093407682616922544797222061232445283764029667030211006004615977787067371337792189420943016696878512759363790685343636521964047091871236031685191994266595494288274238403303262444424666749523711684627535877020459013828888963040301989297980728171061308107078766207657802004931742108597090535209046223447688985031157934042727585800974617008226225670166741057295712701939066729438338050372594058100938558254795443313519624458861240560755461175958594644413746069499112435436291706592302869876095543110082061476998071335384873349642985873542900818923773097460372421092549232462089097751193168788519880530150575025095970817471216077519892768035949904011436357195647532405849581810401622977256903298661134270298153924986808085151105314827872522240124600215437290649742882973744166711914097094012393490449131957445478864855975630729515142405412671536979175692998046302511504370556459638888200733078251253910878024483333747968766596174369521938155732894152427684977047854495427201908622720308390092121571147494323585106446069241784151756914758825390540359785021672955478213543148664450473261339481618164573511862077931632980421161705891515462424299230146111483046371153201017358958113596481108228109428845514654397644606404263919708054932850749095934632517749485131435482007592116129218671972535456705045573624850260337595080227786706299684774878966172836252769648389885964328616131696045626040606578902037615128617090149132159227055935254878575344777030247877850297713690534943360603083607406857574790278666219873037776334893819287913326813438787679787174253378984813024606939948895825333934655167109277311035152645168242723670985820016508365036249229773549952014472912901907389029737751309932256328108178563859142489627182340915003260656227705281128458945901176997228931206601092459379064750412025092278097045006300184756563171012482213576116935406919488682905832773232006220223683341358173163078493038717979350424886545668024925745393993527451327646581015775607414680088899442770494055997789523723449199491809689336442663242599162473779525852148364707292470353829530821241319525326144752671789778876440207817059604135845129338665544826922989419793757080351917542668726912030910491474326575639903155208368476042347752053748366535513946115188326055845245639659994658410293201692908003072007482764764382160474507937653280051526891388904170704176202786485386890135187140305662506254746812079530579110455682735336392266395489950269728268676093967907118248160475033918815340578959205624724919063304608973208374192471792753562750082974902463825854287108125731407864408607915636982470042533853733899713379796618486030781877702708157679265347308473157470964027576191558805484758004698034371607545408375307219993786395266597618110354518467971740380852710739232025814331231272440195640218101986554119558329862645202608133382831148302787394940032705302015534463451691610519195927011958314645085309883452455444565795539479149285979827298566170425997770246932855915023922083413828422076466961247495849619241069858519905190599525124594700733117303214873700903962740650653659491047262876759822327490882305606219863395432994441893425640238558878483187297909083525524879554246748363520919791050325495542979215187810682899568571445296770297494250918401448289157712871208560046858670800739662003161495367731716161579396059570925042599565023143757852236607077050259188038807449643930024887429123798315312022776423124852603205596666002712075458968638329194212479243367013106918799203300757063882018606659939623046478142396298614367519577822902479641975348480960460532836073297399053748612777352924170957936904115577275504247248337429851505155004840515590436669706512248195982325978263471724623708208531171846727530786622345926216208420706536530549307891116151856556365165373092264821819108997013512962491785345763618317553447640046260170499731947565724325463410865978457402583833156245911920158122447541620305863891204862730389011814127722289357245796762588460466773780725809286378973433880179451324904389957718048070229344383503271942794107224568222071042973066326871138609295652847074314807935071294407084189894743133826613215049305710499968973680354208020233433723632977465462034875654403038673007625867477830103435893887907036928542645338116632093060485898914861288021837686499299877842798301450883692924030576603713174494547786788150013157246279883729237538523414214183655497201651126344371966930863557263650105389121932814457887744879428127675255357344798066989830606099455545697457023719982229472057466151230331474337080120610700052967457251842402988504810125048289296654085345718384722940764286532455998096650159851838739973912428890234539679676701951437848286400648626075913712242703945601056679631716302263282911848238610046140447528966239225419653002476222045961638253568312822483172579854446336334883767915199647261446821978282828589496356357955848225401185554497135754502617649358569390399065864457035405891090295428413624626390602839015373998316258358361455335483467897268552907089216093110533835488081837869527281073228494526865969046528464595374648448469244761568757496846812781239660868601356576977177533112966305958132156762142350872621649151448008255802193611926929529951514064630872473916410212674483010731986532325181640632266747561480749137931851062020470589896969242450513756808936888479113406768149949669588927899827386914425038813558160034027332118675326740101387445751549866905362302958386216649128862797810501447052703650850710819188740640037033612606280489964303934102743813067207411757869670497625093037421988935960410871128253648424514241106498885441664386665711676096080945049305833105772818242293386126303748137841798582096898459978533469244194433661223878331112970053919567835403652853108122488691145850938285807072115890427651351827667170097815683968709933418087996955872955249349519715040265621048064140245686355427090932966448293833961054153925190745728986313780524154606258569733055808463061878374594408053854524580465762363404597982828109100384264339608008970263298691555330867225125193770098384333131563532443522740673126827588106329047811361335668141953342968758155707257571342111516404392291663697038686238025757466496830447579343861863868317054016780348610714763313428659948509587835221187670682733173327731147111542353634278058495680093876445445064164151082832626675154883275696180839724494568445343835818453492947241063085807629700973868394925129817576765445596857406281535654621673649508429032380623986852234494487198518811804331663695709024893429674948070729855315123616719537901629437674548267051108238295586620533918991114109412407539321439066798382379056291502059885118754460332548975652696320664291188070347987400399859689631289860481063092359172485414554117518216163344811231530488623945763036093677772411982159005196516347050056569826600059769235321715987531715033831138068607265406541141898396854087618678151393116798331520041387389440459392879904912729092749326547923258268603214694916987297939219143678731689323610326730762847222135217311199867494292105046962206891283767548347766334279333839741331525164510236216420703493678866705910729614592212875438276125318961345476087802374962374579945404092059064627386923345318662806060313407174492058447014643395044516351484475457444420800189986502329333577139297471912161378658195288379820413545078078691050591230148839451905739721571890255618159860653279199575812322247473332663912911116807452853348506477050649631974323096537896233166982212203631156088451852002553757221054007809596903461406640794750557706585287915028025480028444700558372116753726269377537516863265227906772586626763312564275102828308639891780645163788942808208504366922444475664962690210710606872119715635623064271276730741124008916452631714569309152001068537200837774661658691637620687074980948070390982922749643353271263197923066203923317153983202818769926593030318865144967167202532230915309935955261792100818093393098356703233124146214163262041326748548119386850709853657594468872951050533883239878801468277925492995493015899965386303589230273391083216727671295723738850053774032949959283217332041684335364779648682022007604469250988223195717578986366969718768548959327054601934584897132879064721926073061722968981697993464047468411992684200358038059101317666609901749050068479553725780704242899906900001664378881917508608158953626868856211251383765642264005620232506916846959990215494328333151185785596765408548640122477683164519999255817490043585926404979825349331249399573043977955365660279247072587853657495711581414876055258178668255043518550406991638051734974657341694895962208915979898490097416247213915479761708238501669504208674708361877034162236911719097345938672505295322329421208491933465171013132953258032456808767027173936960267103442411765553065035105512391904480129053903472734084157792146414064079065480502756096731692773358733467282097805669302676677682007194068750700250520874473058437281594902865531101531320705489423484133258486231992906488161701300803136976822662733427147314592779911871819252662012913882846267142952437601887939234851734939049991618728122936906640182391177431623228022865631156500329327691580936266163519343783674187932236739815316854399890209271125561136302493868000014080200681405997799416906960812828502041146488641957034370878928902094782382275859699610560827549739592898743058173883728751162766544982701527548005789981792575872448806706486970298380606665775934988968388099567250304094218983430477098704340449503996238850943999463850694109702552374809410282723819520201763730347271772646060530323693857284328188427326508493814090764140629728823634417927486026978184423794396772835246324491748867089431765732096951926056313817378576043338683090641739010807285453801658246849194881402046928318120864958361250897236701020761999928852185166323775636583593464329641115712673902702559723332409301023113200501732818192921670689996711583333599857179404602857557778688116004760325098242233720671945861650137220676061565060829939245138697849030640558228205359876188756085573715630374557776993926731956319391556113499213388638780248128072730652794734279096550599427314410482306777097800011702543277272843586011089653489975649269429259916055157868779278952411324038232910525220007072740028221276997695773154133021025919358683927281905167723881196835547141364199434584450044018104761842720587194834596071822137893133185319142481553940140643044582772649609474792101804161279934154628688833696763172478262152953548624740994477299684150669116915212489449789474260175266224700399597272551341986754952217341002876724083547845971456675722049685655296314193046986925801473045812703877860394656891045409994422940254450486710245231721457376738642273964554471390589998605525005600998774530638399573438455882828904370256344401362950794944619697947866479707660244271865517147504865161569096239940063833014956990622684952070016757257077156504149803446074032387510106634740433063701840153350397059204377368783689073925048016576545088814686182051569601897716900485776778705614934305682383599030634044642811045900690729769631113405119942846417168432328473647308213107368096512352678474898180555650751757067063049149799520238583118510443571824029012031360055979037212612158545471884720871307324060827420811157324857554139255170419413736306381965092568871349461620572474887680862528359121666087919373824969280045393435730374999992698252114249958154784648433344135793496985698082058853158654100368911102587965495637524311848974502362736888461088393303735622506625236099165061761998810808046528513124823287921305900098581609165036909111814490591999669879058902594621577799646783147946275519254170206281061306483738369268051973408471142341865433102523105187516910677886535932330423094969663569996245424979303069904192809156905520393173119565806111899636152969246510391261817309495736842351339310355991443164200195021421063016508521481447183356949305157702181685607034661840290551047433140671087075895910435283192501445743067556912704913907338493624947476370267043453646041074987907313414926693818891199551816942081281203093267147988222865251025021129772184675445706995796432858124006846197158274206503979054465782999574184018865548641679578773630480875587588716808376581585209278082206590847152299798981897208583711836767666188358395834609647294032368812495298781710383246393677563328934733211593361768634131995239421787556979477522255318560472432682605527346946638666803512037047592551039481371010361701116105328371824807275900471455114557050758523973349184336564235043970316433822592315678705681078713834297168064025357243282829089831270746458232410836105727391713786438423197372026808601346623642050009943434180736386668086898231515087934113531794482730128262542739998268393409910424310178022114035569892490067546248640203350666596810589754306827996323128991780136558659881955674471392603265946081617663079116418195299931249169283760796635221984561391339248001700521613616832449573897699386403856402159071281842102407903807621393111628914196249574516854714212532242883007458753018085932083157603241781891260415640660741014629639607213782043815094058128150656130587590675324842885337368476855895789906840177005155155378542022782369137946034516418545084321765988808249333619502581909110472370473030244285439883181991633657673433425587034499899781883645428541176511371366789789409762042780634384474532738341140016823127216891161601747460164064189190982846201032810450907243528936769048756619707475708628835272764215284412030035689544987220301965372479591807341676439472724760388487728130866740132413971738903356078512490232001249949601427114440999891144622836040122109172983514679638492949279420413892807371414208254456710291345640852348352343424431853595612639532405886406719944457096436006456359696868409085111901742680941054455178777509357094828590184106900008107997916860907633622943785373756654203826300532037840496728040582922711296228638844561608740800956696148844791162622158303008977268052061549064588845317449153687475533881270910980435189897006079628086274611268378358392921271855192046208101972967587726281277880719807496127248811234425247458447036521471451388452140627900515455911723406039720947278816762485644727627003881943611309178509406713385741890439588038424536276777329172502086869623103273253029892482758704477836748311183949759533333257579232332681105278525009307305116011660581313703113394151048939975374655784144584567050775225808358806180240970457596090515355775109741847974855514439114038356944928429131962307958996051748924081971096549410563935580631528540371329817336570992104460167102476679279241737898818050591040794445648071609331359652875977286392258299995116135271701407480678688220402607873789730532866111603981958980700171781721736666391277139016094212402185419848573137547169404321816409701869798671740567457993064092159886193808514462532546581036298970745815441051733914007670924456811111365563861546327044502805161712966852549886830552425466868222073288379490095430590410400760290767898134854053834506193580680415345855863521817562670386919217365257904655197592894812761375177950181598215068707033840714919749355854987889970897694326570136008654458600596295302490280118301093992446913067031914177505352867342451013485207230870929325305345613100411740568150174862375549431921857814579418887165453470751510696509645243759936028068803128750985971237911038554652041137623989218341807830211153816328637395530011546046505673535247084522087121341386023730487749827402733458826461575720666719649540340403516819331984053240767338029211565723247739506919976387070339007173592057932802993726224581790306284546972021645765157086040993171471787330543368085883216830569341035859705768263841792630685301149896699679988236396786548024630263045087912879814225955933741466680347466079328579015274823678269631788025342946400908800324423664543828734864640372067555123944964198774254957876700335699419255955158371551464079836858843567435513109765787027357252200728981376737624539049919499594314520867985269147336558815067979819665839904554469832590562132047443914273532761755177482709958834933225738811339904616218397473065030532638557466610673693839796067959662089854281514146083311335300611967947184223661938461600142271669127685002283179281673708642990755992157078646362921427567028653620784462979419089844728693199105592425099993489368607737033729800732998024317907405514557951367034225006403622713376818946526732150210081668486943009101925707799448988056099905204576815024864152468192041184483208972458629110429124419314873363181194007685019296644265061679076948455793687907855917993715203959239365039936823762365811239883180373972017864033155417251498286369314890282369640532962038683903552451406583501064334075925470249301831658225277808322970313544387975024238140188856399831308562846345082593944873440548727082875649725708423620782067721487234628405896739770226978507793957970758339307320978485960216574922587897181427712839483555211350853555160148217877051019182196307889804576270280335918269280655702598817360900279460755416729008716236990961608192181766668317806284883827005501092346008300645414439381770063472802544193045061842412674432242969958975889634058104196648518493101910181185074588676175269507632183771153641313723426132888612949299386094497577604311945978149801608050062240063950285275269691252524544951220179779210318835942334863297612568780497273362060844402283223778872403395458148655431960012737188128728701599907157779006998071648115486412559548731616202972041021855232893928368304862470679618622569129307347763665576835622870057691806446118369161239084219477042688753307441929981172002218773397090309357102036274303389868316488226378308185661707734760858317368069513196381088027689172646252710341200533091812854111417826995579567154773289691960974999698900497806203162943541020003799863518354272345701360208970477231603739725797925419296345479218636847336048193194585010506727128779979254405071509823043097959746072774147905767453798194404141236345444620988318157641578071247303199201253948174878537424030078764120070494128473160538417094406199991671626420038745994000369824237783271678625406727537665492232963397819964957677895771032978351013480478771354406328204842867230739432107154766348834973658764177813648689389373422282397637804947639764095564963997265703630895404139110829453811955417108092203046602590388924724874633855931992097913841467368823299698290488877274151376155258982526745051817272526797262027540594601831923734927264709910819488376672810655526663652782535031554975811447674100470528705121927671155743102434760229948611842885611738331720512355778107838467851521225458317116276266170465830192785842559751010088855790010181542462655300643916583144344163155513034280878170711610064576545179591432831144036948255562382000557693185554468125597606300014221339779222754438566330977651560502425381313819031727443125265350526043174242430232348396492333777705462735736448109754546680921704964550527063787358415764177056648766992625982192259493450426804809039283805582574885105105783528579650958432856289245580371496003587003539934711603711989236679256901089162242832891121426687317457598044635784407607185454737338224745112275017089253807268318942977703530859699768399202792132460736063700425190727368144700192619692129524889715391631180685907257265245660886844534854828919859833155635482523204863755271209454694397585354615103482297281667488546961274149423296719511784324567701143906791940274005684835448624892170940075646261530222188004334256737696143336421107499062320865594788879062695975913747652757322832096949621880674726840562043387305593379981198058408278518784288699746516313670033404576487609587952994917668295451819282640297516567664233412176571107997232059202130358353183977368860488112676834617978740052065143535942340967435762621181108132694807922302361996790482068170814138704185440104835134628253630450141653889840914521962050575750952003634625016272777680933783207132335177101591899405538723597997010936471952299630101069408428648704829613593172728454052411527228102974508852621485162817466311896447490892582016733079890096734377086591520413261236584577283907008620578919613716808287712795224080915752141752076491791860078832406916772535421357737544176278801940221488549375581822651217190464527919923428762441506440644144963747934240584689542784957958811300015777192369988513649173380693295425627563298172559508033455213250348181170710401923952746901782656401313594953406268891755960588649030163001888495131334842319626997510547626576083994170820227741554412389701797317288343070597654969389199628728134773374981817689670938772526061904689546143573348360725977615029349901887705649121547097051931029677282031595737180931664485493204591842134818195947266516523297117983275020063756929313550116571755440199928611897237448071328391970798685246718836327207277117825961643197411093207613664913367433466424740761287959238598635715323221658448821443890114372713952529308299910548501293137232755653094384833122162010245627658292627264067615059814405183468259595835607035103832209721583569142991637645369813878302558885327233031772883973565217484033972995152947461487945207608504087111035627979920375075345612859740862292807169474986240715357775159078588900097229656392186632750299981957368233790967408980011800821348650423608167892988532822115993621947879483853194602634424737742956994187137642248447375042765617435593158661559398264841182416316453190219271945388053442824583979499536642065091642610219986748326772835659627044493829153826623696211002541706275327923263713348567932004515503441559070926426253445631420969575326190973093510617657888496982505319673431183463110478014622220199931952013405332447768613896393775198400557760410274746789958824029802978114727481924709645090802603309517639442170624129663516407573127149578110911702322362725732177943566277716831611018543343290314334986988134917560334529791579338716804335673511847598199926805797604350963412322607603451955297732419006241803125946874960742113779868940961329018218997348772916667731276454812375616324676839625932601395228831123964769827308496008867858320005042617105198123396684988237559165781949172781822673924293033564804938121166531293307053914499087330859485265165520066615066437154078817330335427103712161842561224764965488718738507806474044991831435171205448831077687066044501395365401016605748879078689256400446471967512616057937909155166571874412067531655846003006643084875977501317161685409617905346203317518392703299184144298600431078052949557313325840739193601385073625636210254825018418929183723464713611779217757036046696621921606991056214068483578221772113746703483651901797667730330617784607306382233061010931899756534127836117916884977418315386754236102702624663536618164733038532113727511234988446391031731762838792480423108724183370469779601935277804522877937629614154317210929909205233384135555643303731763451525108072184238917466590864205871450745784479981306169566406370911355923661954198058219945015562759937476644858209978033758473721383326478450803156113447864757740551119854657424108905089432307488772624878004553851275552075707215221192895167584120364426654899314384784583535382274558586953379113414477835699716910509682055775762907801459705809862609469626166065466467892239345017154224478799646842883580705788548539274254322603913427938396452151277609658162714694776298227022773341637852653816134768594132263792831321837583816228682224710533000766004872363564689438594220147740269853658278604151704812596000479568596586377757842601881341259547591120555347690099746251644481867289815587978400009695873653364802335046015936942646639144152422728014076063233204401415829629311740307096628150658538708837234591218172745232907797138979456617698718822732406690953531369904146914931885127322278292301110205038738719593933757500596078432796431610809245535713144786066892564157029880485233978825375061757808625399696464031577797597618351307153657597905323115409728444385450934688881406355068223154238730910043115461665920755360686742135252296682023460586914119710033384638816775407072409548635146698328617077200754082774498784234908847893752361610788961013232242385235574964296701123233251462732470049298785417752256456454440376175637041790252950578955697042877906444457428811616436738347367676026748380718728326160330972473331440082295541544767565800065241438767426273569987288917905053317851435247437240579025143896371988221234597460074455167005431215035932031712563423315666418506954508013339356991186528964316259356506950173786483582826134154642881840314179228516106583904663523570213865126890664418927237992729672560102271927735369614556639135530919694550268208753136123716027085355545041969411261996728526594644808491056094374079671290138347324858914972254612618855274726180923920583907242373694267430373413090625379366270618798724583437591413097086997869114811518352016135678073577962210789327310188566855072035229935062236106003778661891588170418092283615342982414000908090429921252510854125040733231764849614635474394362130159127228230890752728978831761343321444800359945419823022301548246983234017641797958076011502650380493293797495797798652932597406152818285057787304573691768090335795745285671015610683410739651993416087641950030334401415159381554347214743374950551490391144482504362343215882740360718896597464148501444407498604269021437017687742541478526185182753888171139377643738830253689087707087241806771259709878323794424403518995683424648587277755734225354647161882115748504216987042594212908278133922277688505019427505287058626471418942590742499037645007428262723091338837165190310553666326851520079395623359265151636396957358251460600243512327728050461919020600135089439454798969733054569009105052248496534160246408147929365035742468052340066334840514525068492449050833572220777254870771137423272275299285219475256605239151014152261819672035803368674592286976087496248031963819491305630991027090018356982184145506556895434438186725474236144261533622790550818258062353164832254685471745129849440876127723845995057103887332372185959969895102755528089817750841973004168623398255146988350539404390388095689295495608393635222360791350458733597344407037752175277345070742160422613801707943260302492919635002597513871659058556023893963908045581678072383607600849266834277680167179292697791634311818024251186925558272717120131830802990300097331418663838658866237684925976716663777485560485856060426808124148508804970110221510230887211333324796711898570365733389833943306618035740518155739087902485223571969581149430044319494776972916999728376504515385258529363528607766581828945687948770793838290148585143967147109581878750347353244782677891979158349389406494502798375662457062935085141662800490070645921570416387315316157355354399455974526270842355287227341336231759363282134921257389487701772488212765514254292176605121750371512902088289165099494387712582962713123985142228356259115617330507468439736319257704628649914546686142597243003946278734865452708242969751373505100162608887736492083091115072305044888757263324436383799596593585997039199815769700322051924994378112707702617513248045220666632920759471979450609646470097340308503102609993252838939510092485936962429766518917889835041124574271017226524519364208904143541089438407713745722113123236399480869824717596758067665601996992777087009191858929258996570179588426069202382054408846744173879497873855141054249740228934104481883186853179937920033480891074576884846059365679175196612434774449388338721301038214478612518445144675324804304957592860723458155245664137773851690044350172718097469632092398909371342820482037519048794976900803491240715287777368562868239104377424313276618176609507627444519883976346257253812810229726031801936011940812531528004215985180743372510246360302381283286326790402222177720580298562100742369889157176144259063601496919916972324843009320326359806663000672006841671653675180860149906685579559109080150775295349053397172700877260701779076615389271201960190288235836766127333295955644659871556393434770712675309810667139005576805040770409332243765481752058024528295309768201976680920932849276505635336326913231549097424362358354964177520631970012210437039196393754696984175521695106837711993207480161089933396139998498856622479552777797717301870602548002625947512343257962627602676600237140639254172397058430912127718815857101608154765331744331445864898367820395026050851544888289496202780186724774958019683585736838917213517672699189438130368891175237414015227199695061660418565316532099290411547679945897710708647003881154654441459791888255627791004835721451045295032318123080924372119650914736337576656860297502838032484897042654719429935932419380596940888863762079238497580284911737457364123376539290830654702551415332154441644061995106502529926681532637837961853909669777832603813137176218313042325213809812655171496124528720569768095673431180576890238494764151478885961108944985494397227038003530171408688325023838431403038203881482142085427930511846458939977589762059906160466004417205819695676747117386591056231127940193506016112306525905147956141250795642840813959230675171382141858391400092813297924361722351946247141393667184713421813429901386036652419059305750471863875027617322216024570420573938389380923066285808333485582106497058791087052481877857900711574673007877761406789975182477482708825232699644904431180484186783165331733433302921145908402277718310842622070250168743019087357733692233852111595797929911219927197701829259545947095358579050814574091096344646700737448032029419364491931891355874447386559795526555090085977120802644275036963085732402216650301282734079390235564842005416436713388404035983317921027522434014688848413963378659711579528149559159256789120883673368559904341197413405252945997570626611675518652618195140041882767267095583295970938106255901090757145523472458504417135242085260067234044690918445746733703754223237552698407228640438638385581213910377583966051054911154703177774057529803324221670429465684489222798886537963657799673455984095002956041567180524336137709236839347522209628167241304377780461802602245931960594061063508377576952323870949318866771926144691146062333482750055020817856091716470777709294866829749837657624973545120937527751269621264099330052318178924049884171706239938459416106361664379191613207335457982547283623965719239556684243050360468891194905347492577108818459263195936347204589072976830394206987832969310222251406153173120188122471789170241286643689204651745848135802942698396626552499818380428871375743868425210412883292993387955110144715595247431126180578607963480881950429630189640652434090387990809174028792234297827440296191878811622290163326315527572885066470793010483132449065668328437007470840947324121481981953081813724691392590361159545523700057828787083892564119483442338484206453744833972680242608623648683547226744886272921266234234122516211640355037256571793354093007883699169834805094108810937887272636811928083641180926751282013393508041788069185655445745281242986643932331260490144587800693200007618839074550824145101069006667810053019946827154300510328876639336429653315819327114229505924445188375128947357372841767997556940567355071073897824088024477735613027474749621501385820981744313725275864779674385843678565175153892035169178271246367264393910785372653024400657616755045400281320597027184037743419526663782677305254141490723225976687729057993585269902035116442118915306488854625938072547612209735911836045194332119847589213613601783782369925070116224390890855270861042350419128791010481624283121034928514024423622598815104625079902972473697315726799261759872121207614477737221000501811762039500250201431883698541791097663038939802315883358886508037039993464184991201265963518060498557490011948165400772658092055992327152282081132985520397759695835566720568745986069587371670917131992961407282217706096454755815988846415586061892315677893208630000313199512980502800284808100566578244127383135294206484942874809120353505181199385393912565687964519909098135726970897710371519623445213466902355465169143645209980973927409908981548661598042999355087473670411709082281584495257909919662571787159070014735078517179042786107636958895811930058190734563032091354228558754837018221017916193638861880852314921167861266285467464614031783399966021147960897297504856568096383850725803402744544203690460056807316444327662169537039805389619599164396520681301361520141919894145792256890683515399093886549155986125389391085748245595050984484847940678413033398514907405938166744673205266753107683779334472861567566470975815116420729392778894158032564469847691786796305320458771294221954087197244047876179422240805758347193159850343717389909042240892290747188094398601778240286178067697794927516766013175583937141759517414987162990064120527765155977244262689311027413847059760484384018357715508458702003919167352049622375376821972544929349023877387064253067702884399309212045524461250124648429781923653455577836426587201724278085461546483606172342918891101573780199206118945342895228326712241902232746393516519282293669873504835377304681180474451633163331498398756063158104469356792938580092522943274834549649099650169684628974256489012749936100815786006279817999013732617269470033382863704191245051028064655497479265722301407876221846614694843923998028712854954250592491228141350268489651495133508874024285195208854564132581411208860081920086943101365679703470734035543790428222116599047026313260925301462187083518360379907812746711373243589524157649547240610268393351595910139423656720811600208682024284563648533097798227540133739193218925030293377015610698591671954744097666025751854894760140271639318392552257300106531600628451163726075491296448265148515589848668208759528561892862041434351569568806536694302374031303028387078750299031662771945547877685275720116521447789051744098719644575666094679390831990582570532855058529588101506095226740749021259141532371216834465819489986497988970886820769356968276520612078635421886413360297351099066222131393623108268769391492617245175118069695444299333705492758467825875941594813464781595919597043679351407035493434331251595945678205000462806021398694900699439367679896805565096478038384392946619613333160239021972264074555795904589824663980437050835567326115806370139742359555987790098031172465127238569593621006579132020529294407050477192766407266681271643447148547530955190684735213492917745446549372257533749578162842385645227530973457516063752105416398476985188944397939000881599952812016622702666680996851774029864934907561927641638028932471908130830894081826781258259207108564264468812527146834327895187494120243790636436530710576974155882388377933055615443895555010986429901041594055595718743486456102625859634019960280771526084300918447947910128913219850738134666737377067362251218173683168990796736442813218522270052590807508571977597704161232274031068170922910801708460548146336011631465519985069604192430988455192633881031730205775118832532699895841929562586177140280932266543775311569551007068940535405957234472739825344060734520722770705852617334622596486722748467296403054856087237944440544843749652233822208136684715135606219230111301091197863746094674528690409702141425760757654444689880957100863120540302712124872934024360102716489479320656061793956215917456111732624838740977893404909004939198239993017635648354346623860543332782395428571707018034096333090920552430935039375266357282930859966388962861363583447400696999212216234325216558110780858217900067173094980592358132694937391965782015804949997680927774979274160954107002341933407266660525670979949445313556224446949832657594117008468919746282510531608254561203035836136003189044511491322871493723590891032431450002126055825297859077706003783899595810283615655048458513899319326691972874795437702603552694985108621284503182286104962294858924010685349037485813748360742770707087385948809102991921425791790671752341512729714750339838775664460537206823825208366400606482634975666355823373101667873235873053808883844055256695264424097691630457296400062711153205258875612914768005002332549696045652667637913626583941928275777952635620946786479219770277731292255171291411916140503854073712241943829540713316128886675976760570420713664632066655191632831958872363782513721926183476370313143413564497808672955608783718794466368266922493312713290713998088841528542351240576344329913907333078791061169282566535439927181743479006508105644880721857789834678684409332924342659126510842173351690193587413187068191926863562745073917767883176006959560229234077937082989544606907390071747044836149766103364141085950431756595448889851960396103301458665279823988372032149135293081190517735967874139646461647450359648790579387589290856618513568717286026839212316872880115363511558171799934424453993981677885310196211060530767710778239134388398164464020760938565709024543651859316591148158092145383468390614516992028214365417903226672229957887354213758316168671479494504193268251355969299041080889702409085656835404606622883618303120848994220133843426286733729337344415845695198826452767620484076862945217362186435709105538186133957019457066499521561294866498023017059772853388063005614653553629903834765979099746118456197607878569853592703654985767849004155897886925616973600840699169363571080517321678489367948507780643656653569586461479896032307056071027502823468483225038090331012241123370278420252508833116467124888319511022351792455055303334038998510230649261086920939130655818296992640050446479924460046851020141368982136617260145500250580673104471907253167648686680256636946276730355349581404398672192652984936210415382233284790347169617088320918300952768013041217026399762529096827419621107549577862327810141953474264078492592673975182240239102948902005250185610133868114871055195924993225828204369458480724994326540135479285187884920864138110723821864325303467256760838316394884754688600074166090030207411392124590786000071489008561507054182259139554451921514152241170640600530412879601733662627402596148213084229374346053287410865657017710446890570988519806202619121138404668231753244559628185205908126097376219146178890823005110084494698176873713141838394419078391037264164671481942371185018934541998860247116784635845152988040145046211317159867726935724140927532384648887193171075532990983094424668196768199721338089663087671467977990649598947992626447878976984604692473230568460642318659050532311462833784055873316582185814783661003685919064901542853043306553222610321698236168258375659613704132741341318919446350663947249246719597147848244802755444352376751202519211365684569124056508963569302692333000920754702511184009686601951206769830921620317328221780851285860868255252193477135444440158742247155503021154614668431343760574594389406085340816535796529211666312579601306221751815475112326049944121656008426167257680313238599328425860358059629322859223236319021075788438960196619860022313158054899825431083854598127970015477757817592581797752168878914920200065261546404148579946804926240066682101324359931039120065949507036790890469089932924135321591283634063238829580300139360617459056664310242003230651769591470760529723709956672765897354611390006490785412626989544098757416795832012164648424725196110673080748560695641735756710660769866846715993900528867445518068784055608749089022483771279579043765929101230647195212551039449482472631908869060156810267271936554516673572140200839909340202778957309517512914295520055290174772578706677997242086072547608033687506551038775795529341227289768573534186048490506726160708634537620632811438137118729281180670431307891164855384169487951755772391517323175956070735130820941990239935753190747321685124240782607234879969679399082218303988079862200258618224605099470738324495172146451640263298542190775774363604208515114798098674717299533020346269328142105540292596937340545426465680062147400335486200317667701065882942538844394078743590087590325073804786173939900761162574425844070164247172995073689408430728411242548710018171159064632406176685235582401170424277206547953409765526648176838430933928476386631327691131313724755081987452533929415863668332906766829694632369218053377140824651292235669603026570974203357708666941526645734573908217989251486082625424678809239052533099853614652438723012199180251359298783524370221508618705111445541807963791062462281053670450998836697796648490905043809628814162813401164931134991217697815868081671848942209534771633385074871540999476070822014908553719309430257480076307668486047359863592304193154832671654944244736043356643119813582260927018692470910284046152678280283204055414845916596160106016491917718242285319795287425684618346596000870242379326684858901721685704707144417935056661520646884938637933230901838775790798249236547515430513599282451255427663510045770917904265950359794665262169819628373983859508935639955700619145130475478285544895992041892943548916354176939915238692926902720491887936250949150091782516226947745829686748359908229604417311294881147678153266323390057632165727859204374895666049037556716929939862592601435147614860518978761212448890185879405039387740445584404131757775505985983592921388990858012613523271927090549851870164132368536762863486259679919984140703294073026539720285830248136421982823739759045659443820691407169847914871999282567051589152769054924995533398937674975046693061673699586866464785703576900717160689583117013256550081613277536327510687694719580765734955913067784791905782605149197272296869575722659437026400196099056812401679597171647934790517446256389378662248130406063512475194608039738891436367901064451831499996488855421345081058888786504695642472768045970834927499423692633459727840396698309845243585577646934549860618316917353362096209158979022348689784432742198413540618477285522747723474472938030768436262457156305042209540991052890887842052821937103047138146107241435131864536526015547860636205294425792636982245715361823351035896043376999396172749726680674739446087366919168519650748015402913605053943982040736978160813284831057590094303331331891762102792276422429640916381268949350853909809758475684756812674973057007872554844772020158367287754833127207517686071445436592910670002094000985126818668960360567135588538966980630921059531603477654344911377355791707368889035178402188615293690462623442889342770624995834650244855485510380781499096602454770933239397190018632425857127197083831617508099732605797402270608972283172322885633062620006136799010234621684538735075638347965003301612946374371706040094520151258979348508136027178883335945061442015973034302043568431161074579348779775043887957418334828566717323869648988832008429886210839763603334902893084567560612348215342796136678026108703777565910471395003885967210880422601669200567635925894261102874799275244308615498926115119175105178911276790951858533540605848210926519230028968939742178971926808191096857213565150935568174176042048246687289830657109658023306664758223650015128485963730472381369385194371190346416518669590279246782649381627509291406367926691707562636078812891130113823574155676774533327811804628869552466117292582147489556527925852532188227799637181410004424412572318060102726174259502731636850815928766459924939437170465766888696197814340733338821662764023685400694529111015826540854150416773234959903946128146456472248789398257621421880058638535890097598672881221744323681861538798934342275797061343771079355866572394964695942883250100997734672445630018036553262807165900020681923488762375082250144938637043736292017691891185226483179491461803989969034573301360299741520363453426889521472683528340409336284084468584229347523004283770613790597782206489234199099066312146545600558985501547954172213059116857559680064099694641977003929455807175524703533025346425608606100091979304098355921266370401297037349341635479311712736318259688936553258235568647024844970051117931474555065293317766709075055810167350869405063474931405699789157255473674641687168270868743515937984029840221060241773849695406896236862578011741993134463957614767077877303727405765034214241075641172142261366159073972545889215239090758970439991757241315873132833253675949541165274851662171204348247666230139032562508382311463132158829628964139266099389068552593996960229916934756625978522562598118201861700155743100681861357418307021261487264225628591335112964472920199319738227001385292955016371830946462827645658977165806584309354851132478483582580370815366458650809847155786526339555690938485229858503356188750895872083906731289308644529058866330844314754473202352129631233890145664903587615241816719634964660118027274067039229944655430499595937910826654188201613571698734808295474509910563209316535032710182395603878366192537080561809793580729755357517500376440416807000530840825792329940719764904299966641779984393657418580645017028397741931739428836845933126691391147856219234615376099768196133845787019292575335416377274361158156599156914587427606069715227780043710138674199690941307845259483290467212592183570796110953402237275680369523556786169189719162367633288140820999532425998772355417648901746453887227244067170002844977098407680175877842016535333531557248158573093640850075938235784895604569544218507556247195822402507484666705593660469813473716237010128753267412147456420317821811179280007978015956129706218290199462706984956785032785124045898884076853291438492113153609263558173551551661094865276921440684983818731246984813514603749722840641174919811830548481946081156498425264838441602334105877829320537330709477534889001800237800690448132353471231241179855290915162063081963569809066575473656196131254672905307258842046890064673521272443393480057309657392283028156396649265122984964678640953665729593685008511838344209273057972808085534251891489869273692317909727220084203713501999375408883405276040334049877355110400396230355434096172063423126438023845568218098887462463886017461969936585482386825856600621868872808512734410343881013394979608009354171322701833483320749396250093177634681286003775963578772690263410171561466058344608638905458375693147322488885816086870384156688522030413163283048992945630590124025196928804349869466354105513757986575442672985499683487441528603777895928087417774444578525443879697089229223060127538088490584263977292096886381370587670579566806168803178657796023162134958892451180658272577163257110796241647656483558069228630558461929359240517620803905974374899032478628030633320007575020330198699266195849272830363305923417554074556057415693951547406960208943463796853739964813154034691973507436547148624418158521450261058145709144793668253018870923203420581321332345746152748485336132422175111798912776223304471365211050205117722423690463918538114911639420333093769394332178962151136137201302899994538049299385090888773359638366728443435249052429689525400505370808697788956987573719305693904947206422622445140832905397194145428786380437455405400019296899023489358771511637797807019714239113664353917265056877021379871489079903227561585270423309002306447526561426906431403730874215897582771548709272742298619663434547375100733204377973555724139579772597570013004873053137319907299111979606551733109223719649946851990178989835050001186455369565988037648234165098805187148787534288368096773961695274911797715713162113181145064399711548876096768537263601981233979923859870534733229939948693033125808055852074613008116804445440099388838446883811219200209596648665720442034124176592540456261580648522445762479767221619204363202687221213069233247610238748966367306019976035469711576646880209913915607541105836634932696136107256069314324901875566578750911370647366165622212553163722920939038905905411971101002429013005141050371592082702945190590561228505137029806911813545639368117319036384183717611880171288909593300712985711951468871855646057042245494596837346817767655298550278191529533956501743948418236584485416732835814295589682075462615960420330603159792709161809078346645511435748704110293710389087962208590552567151861348810587617091823641848844727385175105149511531992407645518656753395346900085993093578947090582701437573779349264070669116161314903230098958979210434597213294398561477515913662077262713234499266015568194266025776922060401239151091109804399383574032068077619995813075387669108462736927972365460344688751362609817245778566269522238809014271713530443797709016277240280827072872806322905617873573736662956264380626840825270556135977041038964422418109974468276077324192750874227297414968178013271129460401334706573251077381252500917688001342093270366664312011804355085583484680501820111725680369074768715192427646800540539604257750986940813607009029738965677872224898113225930639591321388678064449857816886963789969330620352237315620496973814421195864648153821131566085222812418994645505854376465080663467323827433144205715971255016257816812084790946628709791221490017120997644299734246844939299416096151005723911817587463552226263782483548114885870188667115332540275394693124286741778198346180915982289609107372115202950834045907407163508257362066537101644948549225617084303900828431527317237158227956246660318995743764037503791734992915933422322844587813467045509995759684191094984381142299182953465686060393367648523815545893448341516266488064117201699776751167195464919285959343126950195629141516961705846053692538270791230841787985290519130689188817378154229515366469638126529572590564704853605425076841269576240336515699010919702675864760835576453119024687938721263159073305041190986160172066998510612343575219111795371152519061558315339652959851665537254503635661059128707999933639891667382227412764838850787399005231015335254480469623493284935038066973837083959518434948578393605810592713650804782194712882498357609141360381582346039168278868501995863845556495911585675477729920953868617232601049407439004629127085332713361918315569450145489331739201063660904662094162571733603315998130687396146551925236449636181551528253605394282456102561892969032309174228160631725833884281138225008074651607515174960897890725522592849370150838857780464979975343305911300593785902461665890205048296136875986289214200901616194903585978502555052020161356353825530162632170059448456564783268758268626151349544659395038626454108990621394890702581317948614225406038357591145404498388742124161373300249208462631557505775088762093572344442460268432194047977692097610667100595722952576382585485818833111764685664789597433018344772686335300288748682915519751229488062747002478512776671238944890874758677490039210242339340454476375505530722808453739336063426705068927519398798692755977044696857830653292552350217475278325674863039171893033671637767971075872954265237713747231003097561943471937237177976274990937912728796005912396754055219104578941179530013694922577555381009850797917867025785928625395841396028163537227163944136102738006007511572935605185888746748041015245215247114417159474595502472815427328195770937686684879655437071042654121888130245833396971627586247632231741265182221189655869893288329018621962108641125846038755411720413919368227881077028361833010753423956680037106134153857894245053168544980272516585631542138288389374647321447378103076637615726109384495627499478039614210591128795153537341223616602171789332419545568333407194141157518175134729339475971243503170333620672603790937280806809007070435053972055620334957055358519286872327203876776186549653003115613508489697710784182883100042610761675331404910717983563870089160338822772331446787548024046717530901964096505351747239137954222934084411481745089732505203526152771635675834410159529962816753640729634900766163390331793618916532611992527673836804025539730602436965845990963198640023544620325390353061515721022173675475750171961252501814213429932488316843919069628240113466070081718038886023522497582925284157913489015752019505754072655551919280231126157142283114058472422449641419059445468218493478339921397917699381442602795681932708348113258411978632339035301015690539314230324185428247499570179952003390265217039946549576235578076772447040174779115075611307596917954701310755211078223055947544131619597150769294795709339078965109582279066045076110396790179412215846966401039886212453495438541534916211582453194023359893238150189191057296987717214977571280464785848145368039321025613280326143392022090243170673241557653622614702959307559166532620763666379271613631302990009787574039294348358679061982398575092849336072112703757122915371529500443998877407219954532325157889069333620090451141840634531002281648210363539921337978763693020694706644968173881220674168900295893911331091095416775887093293604565358887810008768318716197113990101689273609497810165771820871952301500622024314547503345501302267114622912866221702225616156630403204956803501230063504105360124256464958823724554762770154196353629944563294409639311446975079447005296536666305809062364067190870165041739737218499401362741114345772097744721577769810955404083207740011386595052170886021363660750358611503740143870045387874929467046167788044088612984704342231938410137406710745097712289889828119643745862592708568516916566946731070342405989270835064862832031483688029617308198443332850724116808678953718340489167363350474846468115588614740289250126665454114150176718325988605659239138118043900818935571401767786812244867047587499008264356627516964784026115844381785861768014701410622002041657607972304376108001911753810034886294482856741816513831557574636854055334496538207888036625630465273375891824564307422375634527803536004375341730537666234677925229603136794972752373625490051805826736292361364537431185566429932820815059172762191085591903722293848451055782965325142589260983931763272861239552397320331383599765345362008183597375180303371832809041049271874107203131366860275086473227442655805004181781645127767003366037159387740080152622332354555338097593683045696814644109431089649836919032540626024769203298727631983527611214489647149136762027216376099866761366741642105096650992472010322351439225281620892013339758592920002699872200931622205882066288655024550961858060175311935086869319128136526031336696774056870067690651236871816830063325767471367322464848450784591649886574011753417634259612004483041300856317963021405871627794744323267339185405797603010318874559518390893144862546986100324505092512830769095820468018764185694971542419039748019548739538913900845301691226674847979951746967667151453842564478637203544014055422988305307057542444155236053335941007416189354192251087261446115088881634355075297913373757422172563041000275175805611176359413890028320987602791282723169195041629256027242331692203860177250530741970518205437786831339809598362623349832611338025669644958622594060866796994485553955385074384597801098079863806933909520291541966334023182301942344120927518436081136033140752954129767721415930548076704321028237037298860211544072786469536489210656727739538436755782305826373009449622051988362329807983952027832474806185957083426932104808570038097259775450263087204291552891852960126609767537947296367040945255686215727481871805866316985342686001483267473140079808544601400088015630406883627229124829403699381383566671636611978580913912389277127034148809374079607175339712948152780829616908106784572209142035873835758805379433763460087378801182952583692430967499392261695749622833841086232080662192412309146675590717299360364303201131713071594349741430636834992574588129748625006349517146055075940906418819827226700418067709210813664365445766995470514874622925970365573311202126877270750938760864047568690211245000480127473029822538211344917803532084736009720528000152037007166866302038626491979830615321428969168892667399406344009952252837440623571627168011134468719803547607124914995884582246239364294433666852174992833264686967182178483120049605904089201797944562725363253575876297414970131055055511964509149074000544569946253735330138157878907908179561801132399726793890767744324108601783490593529118547577024711157890242244227443381666291111018372324363164556197926943207247498756469845174649276032383376430027532459546891576579266531460583982604921038100802492397770818109295026225010900859768495854430113717301275859537419857830551392892003620232281968967858170241162109075163641171779672404827087143613612415288174331349451758065689381903325474913941806779006857402614605515864387211025724580940805252766882560023243890220574429721637000327658423837875484687035803465143771409035038473650066191593911298575447542562813905413336868400765686701349380007734179914839462070887157760048403929215839974307544819205058384022261391174255870896868826335884587313629153924582561383239468808982979677821068489139776783688734499839911399835018721128597322491407179944541097522927167756777589553957149175426164504177410217364396486854293731582866775988893515611609687164944371234762056111589324742421822186134172803296732693860302196240800106873722508163356263461057406218996762658121955966321456879011478551142454599958963251341089625975086844490404275709079284340084628803438107019764292192815417627246412684276638237889820791379688263428133954675032592765707424773816319132420408716175479865460528287451295861715645136981856789294425513352388978168972346578898675361626574723816093638985421410606239653037107376560162571362488209076888549839013278452539163859781715829641985788756799165271650779135347658680808751846850697252364103363452830942474851474722863488537826964990109877285594793144196795936351180175029515861976019200484832723867977172280429302684959643594143384283069714649021725169352819928300393736794324695192823816324978684937827878138015865135144956666345135698223559682719704871019977193681659886812069325047327187494278642256974336899450521325025767858713022341449827411730460317232986406174131805832847660301655730534914915526399465433852484361584572761993869463631607760011926706105125085371949719700460396077393079885105534737485965531468865842194409479758275152225536673918811190040008872718899737416632110201578852322564841870552835057974771028869279239250427671313487253209986373196075511455190022478924653097831257568980712908863942375717407788655578631681900426947544649915496301699385137914722915523820951892392656799604142456252565762816645894766439700444511025659749275900953330626560969404389205600660309183651851389426072596159415308595931750917849691438492420636755284306639441527503260260359332077503129620812792259261097454354364341144315651888481886835677573005872734949220393655520200364906202066057825241606759502839340750435425434334473869324839988680752946383687978211054441257760650973639464769107702300509252500146179793475868618565165692851835831344939682638502387485659271771115832460161109184382071879442373967195945346186737796865983885317764439302656870533738984091930168883590477162226310973230919463409161987058754188209463044137012093757477527931853984866810152760684498513728211584091582739061656918125657375190387645757432630753516629991085001044708488813994261446156745384701270221779615373069478412869008919219900827846237250342641344549486512516649912126041083935126811785942211977627883928142794214612193054753262106865181213157152175362281748244426257321125505792360071562361804061169950320335913551007150912120726187676857398324369302257489777126495034815486019923739905953077278338336789903980108161094436602586325868432147898695301184638237770561155019933594177665596751548735385075837490794386115672749112746523089972862370112183633110113083807187733770277913365356492693958540845748726785784801742306747838906577124963160779707963672950767720709306284178756885285022084330335241058283173540681680249889567537867752008806967267188255096412604179169314781234287506949525044566786234544045990361819100743973906978963950093925897960830541520521822249088883944522850176860074666753162439491879544749456653828177366165053665563014014247806784463705622133668044440780533661835295361473255150096834827435426419809944188975696983503558042503564376394955712956758220620199709350844328439551603440871639895531770121606878572771275336860964046872497448617609374939319357587919102651025785064038215537458255983705303473898889538408930525115314139813603720366440238247754463615795058578161629529754974380143312062936074004204433797024770357308540339982385123944323817216737926288405374506947674903827004382029942419605628202683046642012183795675099307531222367244203604522196666860644803341985352171777675027473580482039633685150532549881460508892076855637590907507836368429563815082946101756149619180225661197037939454554960137937692762370405835424695747058205448857696731524151732346157426603083496516914186990309383680478691492663127211713653766614664131995913615166676617135437265117190709006996314220990670266946298315646494980378629532170848072984902627161020129706640705360655546116546945756880082772570097796685024861856172452512129543258494033831826961781773587421659826176587538996871689481104800300333342765592640085133485633100586343657055326638865251642508242999223143700332744283602318612913793328109414669883790968721863442891999612360718616062294531286262816806436280613459745280505758914046303286211228616538029838152240572172453709092458872190015922530396551450920788558534277314473146745992372281553864981481711217861497459421149380749769976422842501979330690992532338632694117985604390899647656966455641818386869076940791710941754482247982422383699536018452995426095253828671337316107798174729645343655233321031342370695730398234959309744100935960353316465536585279520510462874624065939339611308747762014907317313573049079562530513093137344385976343913784038126750645782346061626361295894472072473732226387447373446436763442386161282853745327504868710582900446235977305396664096448112740798431835587963882240384016702145122333474434170876010598736089427112198714575544076629735674098432115159542737231796339732655956408826189762895950766215754497015328236020238836779070070123303259917458794128822717093874143049199240937362137635253054624697984765608066446897401953306140574920441352039695256464642698065058503114205787508384379331521247595100484892038353789784073336094021846836347021328711582496330138688591977871093269279825479205607120375222357508962017435729146122614012736551230663483661213720345001072267335569668696542873728238134091672212784479428238904891185885059780387838812358014023508310654168894246735875929265338154443889937996996479822112444171902827775302956463745307608550596789963094187550292157751850681307945059385244815772850694449868401011071923080343035535222663253047246382057847585875200711562044948525413551082239289493986353892468470182667282253277176315415183420517407762980634198469307443345314742864268485082163733549188866007627107887299875460361450960574594006917990248398598874581289635197220014877680493749033077344723641250002758759093595234943234329889903523333102421665268369208565304444681684677331575044199525742651412756067142813282745440231785350688437696968916769710175306276834933401799638342306903757808921093330327454716787073437601484441564041148612326913009924812745075851501544270153239968934358037811115990117029440355203596188787035395926020614593164716273767933494607994810488415110763317835377437383815935758896873113950494026405775635354171886655204410947091604232765545576183035564989519964730928982488913915732166507792196754878851630714621783402198285085580086484292162660876564574791043911695581041390375598591158959149154095810970613048382344661092382481692098171285749610400429458323484968894210460448918155568738931293850148011122369750109749798715841828683428199075924702168913423800965048083916778421094212984472251095046653528148379059487969287154107996818613441496445320497470437581976428633473881917522308926827877139910850034808705448857722068267096934377384216535505586434674714725656896601878581686038676486404968708364382931952406266444092748966287387511193045990221987533373110632664881705667127622056820711965775087131589361678085738448585758338859406615245338842016517398544993908532472621027248427724469007482066119747113261572745262095093492283222460594078047495883048699758558889938263876854015696899447053299376335447621054147581665546395164865419378476251414822943493072445428228752304829041832911918831315294830573797031141582049578423013980673074024906672377486340792538070856914057477288588634832041475475940020836368198594985864727283472121404579554948993451620250986319944994271724413767255984971173590213830078945259708042783552544479631007376311987149729803445704219062648799145173769849830979356326789482143140909683146531393824881377286609849124738148156270600609668234237266348721717694869813376349289577883091960961654826018834768787372974429340946569753461817238306255780003988189882647398818708359569118615361695447136689199354996597987019167869111569086145926110788569355717254382200752677908885531072521045203480301351238302205122728936809433819370120214831348706787286309478432735673326734746122182938442647708490650256718788286216575620730612783309309350117862852639484316720607739171373973783130856196760681533790392747150890422432967290973167111257631851591358425780185052852295319172259203118153725022900070006618756466563079626601112570082663482206050273373832648172749435622847383247628044598775755824507344365821025593658010941520231318200409313058169221723408595842280607330701769455974676255137521603975317440224115251701149372784242953416069480027314883231886492072587701293159795171079970900397720833520294729016496983517404497172478367781413081373218695674126593719628591205728354430206913888347815335296954889123665985327904914041498625144439214698470773285657956025707087350365118617734726777089221717277246885641613693882943337260861456188000602619929687178088398148829702942443799263941281056727298871174762580233026975245866061965774345346005018538107697773995525774613136335783908115741797530629048403816651151481343828101626018606733734468719742734677881527966525297595916450781924546460404741086174028760994294704071701767137392943557769570405902595119058718033715925505733425973897811873218243472056028394196493933176938027148312377619153677487662331808201470598245536798031507663848650661249408149240065812710598928248394581692399856566428009921887280415528831738687330754928664761840778722777521109178383253599807695179669927898184097426345638498825205369670609622603479218463747820094899503529141194359848186393052884029961616085992216957581759516981997997003002355166833179735384495608280755113011283773057194411745514283016845813766576424828038076451460545625127145377880145973948260292380165385239780367083543240852008336572380679677831612242531736125397001764291008095287049762777349495010725526368606819419380914712009716979898276523907575455336930682220957539325350821026201602825763324548944597292651042916337699527657382391127030056578178991686276099238059598495453849034873961090425611576242366095418693679921392142723138679325352707371919038359263056719032617903926101676662097500739880396133243246869120568255838721212495381603943411836012258688704569276026749335408308029721128877431533594770112202950656471862934519101570221703599845323001458651597504421687674709298582049993093523675265307255092151214987791605633990301799293526498259633679278638650234506222224335863358268955317420217650627504311820471251324630609081996924814303728739253793782321921657297192511716917010148838150855609328833524703137811776321295445210493472851996175469081517430632376257525248339526500633826858412131111467049696353423149800011984769381168212490571953870142828958121667199151119217124512838570672819463910579650114086733239805735075566614451940716221620821308160650770334508353289305321181669331462860880832178629459171777007112017573201183044016862865523568112686389831438153506505707284048029180696754741017761161575484693182287854640682178976085672587360380654448969305224110410653296872949988536487055314119295830536516611323197507995620687649829328704692621479837419679527462132507521809779286635896327624997714769223112846955179201813311067778408608112097299101098615740699979835017587167225827671847941344969282709231139330009314106644276383261460886511654139096198076033158000370872890233750309848555745585891631936880528683442975647708782256263545532522241902774191593045261015063116486241712507468123680419478479676767745347371951514605799031327662626205865715486999147319900199096057009749749260802222699758806034366263358044915881017620713861074213343864964069579409418056672655014711003987893496011912289335868511836473707813698878100218921793480994364933392685837709385926742750831986014597479735766556199832807838789256380398917049899671795062037362646763565161831596386289954184823132915842888354121108631711601728315288491167768190851193383275779163036955554803675886101141605498416446018894535667069551221621928231858959991813041762311598146103806359588996983389027412874598342527605466834781484882053737298674743180149203200203885568718116094741305097260223564159574422689173084846639676698542460292911721590344571198381259094417543190142894196182924965986059209711268564721829059011834719136758781888685431509887149339274460003100786227747672962100267676298313749003402030750764613174458287617996946683178985651751196720976055358028977973150152373219285048619856504613999040277638913340077166239448175278512032348409417238237151206986158943240331018746970489566380331985193943392820537555555624023042451348677075233556337009576457529937855666518139555502753724741656842311483140402829522872148111814538707255596067912644335328704932484547565935540115741629565358304018517960754537343897313345715956936529812149091266112550619453538073751184969822445411931663065659784793032740881771700771991934126475892589095678621655845052416470827403118863597336792174760181620539952930552072941769720122902966682694241113439729685719013874418448429716697563094312378495162480663092041577318347387067315481454669689792621210737627850020226910510367665501501817077116730631564183577549118658957798120386136282118828012450077829674555728427572092115491116129439934526107016702766391354857473063824888914691729971573101555871107271940736253758162176289515999518935632464135032257828503216865855748754657360880105898409232323394656564933791100493666336788115436541816400057879190392307366053546028383536489712250817980879613656642861927249209578998350653236821967243119871396570757665007343415650354962227730813993674366475529073958315183294378273589518988137190754903253038097767930934396734762590043057608722890519361427222090110901580847673700567970242878557080097241974255271494583405672356153062289624760193611706722112507764878304616019993736146235141853235331780270430039426250312134000391601594364707954134320538182751916081285226983671113653068461070407552397716907221079684666274918898618549660242753635130878817057978233431400087130021046534569573780458210741831088819607288241083593879650451624766076641346544424396112284543817954446232646937920473280320444219669913882377843665399904199154254248783171186321632729889921213852368588988002501538568458749328566950379707238304265448122454203988473514767379885033886888719618811278934712662430970945551999832886717108962322656087273745389765494969296683889839215589682577192875520144226659434837651030640207824832624906000599110076998918575639343778745347361712106081387633998723860172715609062179117639608443855554534153865904922528672215998510216825722772721264569517360933466708718904385988629398297775509764204480166289489778452197717748145649570406060493012330733141415962383096655571289848515385503484026283321865089629620218887498136027444186177943022682606561746275529803044156173027089707013045438726818389436507369311206477159746691522338819573126964406203082602080916854370432078294232731790297652218818611162567805470837171609384168678324952459276481344273215651533178307450125787083115675235709204475159316219160451955279844224954624846619738132713391688011002701156212763589053089753960221290132492036588638442960581815593403610749022995243111236339118294526999017716825991202114143358383317687012978030761604196513561430281227875752286357384363270491214098222601129375889174168893245019962939371396888207734155645883425434628921733823635707077204645816074997629760212305966966892769215237588690902820256747175013566797152728912425417153111314025677704107654927000295599180432510492936300375858316650475770150362419317485465093424045806203943631337096610523356384411582694210184649483754379657924114851434166947246107213427034206085520796806755081101558808572905020633979332042738207788861610844201215155729645817435017724038999345292663980379717582632017469344865263608149106540188918479034892931783063037372424928636958529620457668938530607615413451294564106344592763690110934376529135781338623538190590245154679215704937897594790111211965168954570200640012529552058291804115683550048282840687840818789299686137649950219804365748958403724359484146278206326935697968454971300303021300495780143437708941527669732843523897074818441573980270774090189224734234944126197779183896217417079581044427718951562123171704169335966730420437051251241859943042742348482294030568437027731835477341565242346492336042684892342080115919459082555831636705615234629208601386922280437484424897587137621079901787572758898266281762522221645540217111958878619913778011047020501275515428849806083775593176359560394241661105603229345576740476913507624225874771173718127519159646318251298231559682542651205127083312606734639281412433015386546445768999534512078978830524868983261241809437290673200095361745289437396835545241454544813278936650235174047663960225305498894930682362460248726828735221608540002785960788116899142281599580977539413894262713601650547069519156932108437281135140783294407296602462992326102349457246999971212217575115178526126395847215431548147050739962160809539644873739269266953454668092278921775303386875384377809108864424680026731289975369086465654601002048654658315933075643970199360335065892553058449456024397299859641871504959797288348276835959494112772098370136603789715483178073733933763796166930926358868591731634614766374098573246748833680745869266868582576346765648572178597898272529127834336859946191169036300212386809718505699304617273081373174246455652184649296924648640185888376395047611786505080354242372332104196195014487390245066195880138775564151664799941125588068858865067774591374772077492331995100124082528415117475543885491532887206504106653001410685389387166920155823231904091078778036964791373086010259619418033596642492556322826984631717063914957278588659906899886768245461631097070653204533990253329179186417063582533714588112465938680112268051993998953385273600117888175336356482893496521390525809467207281053653397348218324279146090078015858333266707366469829390630321348170340075846342683463119424593667476446745736550183946977800721452326867419941625644998355912616326274182751363000167479839428897118443942655593107515421096073143476211618811636364125535830342033714645775579317152842242061459102227275587682981454554128897242582878321400989968806607867803316469921091021309314989796513931506247236569812094781362521735989040756928996240258560460895082988190172160939123139170992344891031934192846430567547275083912868477255467651168928001784826461149211472141722891975577985898115512554737764344158181653153326592689027074750091430439436465536000430705008567505729340065781718468396419863089201182065836513007108420324157087669583368910396647964391849373893687837972738642486998676987115201137347658252707761551257318065871465100447722412292814767114766338759224904646971864242807717974926694417644185158501081956192044161225743243559191387304913151510998628273769710025376653714665790235197978989340512922737718288321322552876144664784505665018749289756524103649525224792878550415456018876583434152685403513621426644559046989752187750683842512248678274420370261714616573250374673021622463728842916463053702602278146789430788442975263522839401259563405959479751394285204938175072785087770360276552668502077637908024354714848125415497075463355341679709266488048522796356351324834523609788598189765355325391498562243917606800190955020523587150046090358918722156050272064886284071281991304002253742635062800364716750909648461414914251920925792186220254880656551807467289129330387099312024482828410210660271372943640135067087509226192277331164682248120926877311058019861496448639032139261543636545895993461956607080343267328810761605002455466715502262712495503880440853701732461522312729863802210171139798126007335066679426096264936500208773015835533186790940314980143299732762645550905724742403678321426548506450489060030561092019955619573520949593934428032254143705283504849275788548936725120845396526051010263545230337898034904373058338607433807185432030437607971957305306189389605303466668451402370196624865208241893344630975698901316601989815453584776522587276265817286804192943281894011060485681738349830631825230385204897265712709074157528604684937892314033896332764327275563824914037214972127671874675646927787862314146629746853739058888932920835740650283723407245630047829891618276028353828427441340380910321380796037011542937889497293167649802681520595391846504755985203257157972531412437790874386491287790089341062191965647990289084388701471943623735588851277244014294249785433250687777721866379033988413725661310977420418890687325470191225025622910540245890079473315360181184034234390188078175071356266347018221091044088339632870577737462967727055532334981331035489803549160654656823127747248557374076321114494055265462378645600015671339579313232299468933488934292492200731791191379910285583578492981747860465662586685726306041754514783719554290497839846542900951572706744216367749123149470646138342117202235831887524021688144871684748362219176268928901262993512480651768423764784991806386569388463591528023964886215327547520370636083400479696182472944763035165557423363449370954577138534218126746234159993895473544933966133369505231647015723383195781429500783594227621392061800586170277696539796677909887781264934239161996406442337709049072409456979064807274334228876703340059730574928153860857144195635243269566765835648651800452351671359372505956042630084212574362159879832687957239748675982627822554837106796431185219469679175388556191206279835781946475589437409303533383196015287350686608980475156165251019550674814403261884520010146848834182150658767648486665381233004163998848896526485668811243589366053992663571690708956546693430800031112105699384333370217971747786695568836827117612734880994305100458288715470687536662209297734566346790278556240760393498110893923049551757531133483439057017838598703205804469982709392886926153190566443378879513904634017640612314850560635073330523733595247775011027350110503081713275964637837684149979565275825730544901246192250144495111814392468794412942675554698964640763118331809420738982362259693039343894893572963450046254154219633555676997259679158657933695579941351890255063639934944143668507909723204336051688173046879499180583950351723655096591715404548859374584725382285292669416793698032148320370031045112636767020392305986677258408239546025132082619161850972291110098621343452302262148979136255393167010965159671610773868657834217132830137987824802298071321638703747888728972012309373217956160826245300529562064573281988756430954931701972796750945600175643764978763151578577207036669072055611178856577748747489599122460324963018006392442549519102201480177768093027650254419511428297570456634313147482319535266740443383304022231576051566574459240759920256150545817201913490018416881934482960959570215357636154012129387368730862671263907123568358776084280548985324945127265289284404814446202074309436630492394825082023016674604831489769429349939252493096941676947590509535527883067143657163356665252938159060652946873287707913193447803431165489856484404657265810762175478370036144362953463547347355912026304715547683558220163402426271220572611013265346647119900562658411910931823504390521412415728033431900061446898546608494993016001782674003364175588691803218489011753684838315232461350177488206858997872817567737685733632793050848604812111281712103339570444847893469849179613450339827693775340482930299331980720959282918363175034192497991401426330127435969168598460852716399965060197833779511639990809358864976264936458340431448461508269775410106497644787689553748625441110232315001834088957264781311429340287187224471342845144072437259182075904169430872139774999213777817672876530913824954563574522917687235850545155556645922428964994407222212022022866859554848854893285326466950259042068297004906069628512965222054287213186073822955082403987657621657781645609077230040291991957859322107073954329329711635621844594806570146029433756995922315696359140122874469233003506949675145640038810500841376522132670950332702054338028263834546473696591497820928971113816797272968474036181885143469006787639593440094635289701527574265499576306091689765958286784365004079898144493265824419057116476826402040555836830512221114974409821292519468898253267310934537589553262087623482986386062240493714741987069158509978808445953180614161747133717232424500975702787782552458270440850198678858438290614384660923668248900800887594458904614993276440425752008249260963909305464628050104089670804394788802336410482562366214483595631576464126616687401735789107095092498731507026917637648179353807050529331709277300194372771026321934954999473625220002650739829538509688721442356076111832848547290978119170579559388592151471757321875932913039049930425603601468595138976637362523003165260616860665266704245571053593159473237373532161103068875960585674466249932386111592301563732453150631932535714195177042855900642021900201826184908970837590055013863547540912675564487796496749313170396661455873313152156037530999460973327919490568662089394193122682138478546755517147179382016401301207428049154227596225527506122933824057356597922905537428989169851143236418469647938518098356393230096874674905767318890753785292400399414883878494824920898381071087273302584100186413247551330461372975830181921004930579678726236182229802411700620622220972310893765168918938881039922848585717785714285910541736931175343242839517525699855235974090056171570857369375611820197900029683628950171190691786163011158240776297412597150705701006029527638714697753041832176490107684379046647876938727463742602533199106350328407475582607597077345040708303564728625223809845511780323268714940185701644264016115799336045272792067381686295727579104666067913199563312455568649293192312686747165171138525111261299073557486114513760747974210243976363170456702857803818851836609503200568228637051712607199285584289362402808177858433435596941971395979827787765246805699422418503479804874276928355006747830176922245876024007431597519554741330768788853268188971314785580908003072674510341277209770768939343512688912997070772966262451281191725067505386770036744527701428649068015695652113424657554291458860472757477594558564377264651116129675251478521813586059657988727179667805727986354677878375366423602920258962905145556180730404412654957101611762204861668485417404176133216900812969744222394558033610650342266386127101676018450294089458176206630499342823561144819845925730459578806720811870890226040213046756986831839217424219428350825962109500012736916119233327067000602739969003458935557065422381226748732580943022475999706590769690144125514265235114521616594936651848995155983727080213566350049467919026416849151822186313183877231791860887561677529056333631403528220327433274344143920121179148702937793173040416432295425834918267151841566518565222344280646181121504986546643876133950118903509045319438696757525927754090414117632868956773359611244626910298219482170723275260965661471696089583124965268710029455736479742489306969293625586223798743723261120832002891001509700195840838970418639799165208541675972721820704316416450557740691657217075918953426775803939580318644327431489138564074724259140233841152657857274448430646945973633620095678220094905715444844745382298631751887196537288940767477126217194636409075744630670804374311810005300164369512781937994088557253863226058689631810498624102124155604430495737707012990103279704100511938505273072113528476329003076038787823441010602978095456680930235325229167914421110756610026355799117641558455562216704614115030943163471590893429981228386793433555623063740402962054695968632030278873248777135277285482839162405392443266443906995128972437062513091474855526250216514076483518698063795160107988118915867035893749366639221658375975794316493992472406571318938134365457911327387606593732363761530610787091474946450543606284996974453976498182706156981909298177365933783871633273346534980928106258861021943953962136816123227824985649759006496242150617512485372945466721994642372167041183794615968513230478685007631034636540929397291738368347476671102455021749932073892119269445027770563670149898289709003900949340552964037840607485466911651554891984075891435833229010335014535509774456846008855473802020033772239218548829721554382090291693226470538679938749763462196851178398176082777199706585739731088199363446171985829721676141475670032770571155448861000273784534135062364242976246817767991535128767616974815520580837214005725345465344844985237618440919600034114469744708840497698632074861033070855600499091818828841130601153482787060288589915341798184021989994064251942014355027469161466668395956573285631839926075783165000438293352834888251580171156300451010654679447188543841564237813078399878019283582873883464549784895875539165225442170321504378503087961017378064368280079569027676198903806253427028624921358191517857826201293562603529239188516060568107053841698843934422085640679090336861320351092730389077906509581767882931061959311954254373266299905150413155868865801097436289832434610497076720815224431348924712180802805604238330136288921968445242845851698365403374576217877457804725183252310426763669683895716831491211122752130090964975646072568075110953746000228570461503016064369163123491030284571273033191734471380640548334262461301647200256146204509949739452379049180149598533201235425755130379952906410944004523448598925021600356122131011247562739615496646045415030614337196408590714957352727383362199454347457485741195501180798883590196542032337410210896893945648675693913871575052923202707392175452148105788210489222717444338830266606797792071821182755186750668994007139007903310587347360412403964440963047619952241515188711185766039367667624822405061592028964214007090869202507329066851937051795266927290860596384108758768499596344348938448424522409494191965051301734387624246924697644937690981581751733308064391851539792094563375465359032993335026593052421302483817020601660430714724349763323727999903530692273925926959892714972744700954298062153246344955099377017353924401033343294389556067743637818678969371324402977312120168995937953088525234707044720342137670737405930738363586440589773114435432800555252576100476471672964353016600365668883761883915537357682311373077004447317377082856926187606154573956588167228726842024002964613278450073599222719856107411414585627402531902889941448231390289941060113923412553139102341497833486239496395578887257394781108739636154669249037600187091239114555837066688588082906711848598712059311740598854786392541179939718759779802003142477447161188821960909097876140465809743477395371772967956724604327973928387017953535477150385428184650824796473211060531708095595548776405586058660138215848824359216179268594243141086085854678478791201275079135205076498674376406354836483391088468900958725779193228449995330711350042710105554674938428339920999132881097938215117251295125476746545283516371402094044414253606582379528099666979936830171371003276121613686728426753784685829718335901398805319000219452579596459324241937033184416779720852418787316462793752150380127762768411947665448483001173817560056457546483249098225553506348849720058844353746581024552777247666569725409967456499343545855510864180494954426824651724010753470241343896335565898239572115951288603394698268126167575929930468737118295846850165295392289510726382120694737740398762064610020541474171148781730420768042643072367219131282266106649614467002893392730777806704248479113432922042090924484972783970290610213829004841570882426270787976687073967225941354158410067848619988913764911654311281569078976163891512047955673579832797684177325777392791017642257329048045056304282755403539640076218252902045408588644033435085309155969478467759353374219960414833211656592489551030139414608721916584792918611134733426861140231586721354828374969219316527908508575648515343968661856751771962608867111703028297244708290465644010984451947662791406298905270715563011897367791137095896659971967195787206152957962058667756218282155943719693960386351139653350284750673447525676201319810777699664928677407238184270946802928920856821023960979755985438011264315429050690274696606081988564332653981337749322438342362359441076624471193996594293802930529805553966625195436305547931615689485967992122563097769922981779593444814249487508845448966562776523191177188869270762824524789441680539380277472966593490597504550262904714928837208257235970202840889772963776076479960717537715669293203987386002012839017933166021927678570846575309832279063096233687955939054361184895800894410403681152470866057253208698478771943035792158562619098158185994860114803788123325863071141447574707038912554762507647205490997844115951491680191277934118922861303959230789304321214295871137372678526905654419490629121656992029753193726566435608931881038222698280828151534695307306596000991629306807758945545024658770607765506352671898550572272665528029534784841432049780509659874296727045503910721918748879079307062173452885791840496053825491979156368610983797107012444395609528863987618580249252144422067570227048282898931269544008451767257812924922027214158637969740704086524007541423134175569198602968453611713092893632236805464900613767493157840131459036446165043679623780465856628880698174766363982545354829679979397770140307916902307921869093339306901686803763427646873855148937211618444997578401649963147412457269068999662610374801124476805244589461113549015434002190791127796291823035073504377050461529979058169554482941300706557562510688331854500011661523601777896203869699202248070362486791705751314227762256259638510047791241102442947678142236680143854441762417840254175268217038419488445927604378712677113168578821794509013475174423683894758245634256565035779701928759965126030367246929093725520954183024645447913839321553385544726094589298871419574096746350872432877179440862444448378206694858104316382495899783908266208330524083190131086386180958596941548429297878887506974892856509309946193727243286503257848288446676768452487289653388946279791402810822669302358476416820713711633542832532751466271307586969566904181173644717233075978508251339845119740860640186897522834425761918806964252882315278785761507954895983199177417741070662976940557016493399848400290655595994205627548165455808215904039730083587113939798409912860678504774196448933356617228551104442751873744824963719012369715054479160376237128151335477898038834420495401627940656664521541623135308749613772591902311626150201829651422477089790052942894731389913719328036744879090493790122364801590507205364036736429194640744902602002882451256215733084950817007921839477385827585962991637963212431291083809179366937929224095897750871555971743993701637884084717455271634073890742186293707100872024228123523529774000036164054269688673652845894948233579958442697726095394914340517403521970135339647241513014734762471815194025500932987221409988760133896809239915854610096374488020396670999852411787628603642560794403577717604558933818247566172119462870453033289755892079960920261409114779065277211094672413486766536108300949435701455028121339618593959453594152893686447724450540188962836609118146411163562246580363114538861176898969846750272147165297306417112041910286491316891025892376526811749551708521638763550740528542017243305453241313953427459662209369169317441859703635864307179822169245895894997724019915044338454511434186570949566634945924242638493285539683807635573571122291369440600512269157757470607238217021694276242911755011424470079728568928913192955201011609179518537896107900432233898129819318226476932115337802957028951072091252878508923335713049153810566218459755843097261267763581031542584877899771539655045882645158053483923938229677469578783368396938788100544944489602261296694993116946787090380690792364369988322524628040183957923462431255192358050891497394226009787094124056661637272383596445041780368856466332616135141836484489809803328438965231248148499174315883012803276656967745101648772925243206911982269894010711891659309589844757310919142447399086026246735981080863436508678061907630724694790947671493027704389378567600196696895951617440025406998501151092091131733741273337008678577429978634401692405950968221010639071852486585730580764689712054642885173768358738451827558299512391879244220609835681551048373802149101639461225751051754411850163625956583028347931959062065559686137590046811214381127472914640491507721571503963948339816909148854199079281955153352420407714872617561660082304649669387506420232833308803342096088262822370354144059206174804628591784483602037844792109885579206117014397853443565591731916232867702700631435833621684337631458881379910723071289253165075964290481221426624451543624768846414220423943527641580176585131813348986630422467652912919896748172012392405336959128548941749990909752202241583336134868894189874424125643826837184886119116906968504254834393761019891134623351630430169822560740352351711287114389217496971913917977547024359501828017160990150124968039561865954868079788222263760393927929002697971268522815455724780045657154711653092551266581804928589640818174018232213449338885074890821520797269015300985603516839423390623152362146290860625316903767500123920934194972270916013328230387125447486341232899559599309734310379008297530718882607453254778287463670740542597161578110175617525398609332017094383299516364620372752089011696828615166346122105978835484842490681911765925599926492314298318095482316250357304463353617528579458859541678708352075557073313420052505819131452138845578485736561634973700350727507253809656636526951349712987678120499339110080898502053302305914893963165658895311850826403764016188398099641417702888272349525081250101202535901854185987092049901701267290943563567324148590784448068789753682823368705940929353441787391085576294207949681373938843986864781779992349647855863890070650287131301578262432172862372144197642033911138342115308656271836540604859949302007278242021264623682359802738313692257538572042401765607425160157183945249090857679732396717308029277743850125334587205528942090342044572322639398357366669035071505364183009604957112559172069871681313435332740628156879669579027904046129760652149522656374410396431104424684573408998838215550012308770304071112977875789819887057857723354991696496433946344612029118994840063410540418154247335987378288262803900455506802831850705598037426966212146067480878938247550099063666493084134801609469523811659970188951318771742975540776388091116718947108996718806376539427822197553323798271684234391097713635657646226003783471084775260872199084435138044429937631104296159163282639045279565987057665024419499656992703308675744323761796956040163758958478677510156774164565105550169077189280528175059605357872877564717501300067763297856065692540392468355407824466556210313460895443562714167735419865515649764458169823353681117387816180103451203627920883680888895754457949495256262507485866318757108813398439305452420708678198826997281953376979898333007605167851685564047712342871729978450790386653383733672856839132870567177534883769189145969102974503233965450087478866846339331316315144439686476280594006946407357593265148063991353842501167867919275282738604414498848031914752636439650949498628456463300502640383665861605501111466486251805729112572485103962602157456092372414269016391772939557524877395846872760806100071575091674562010316434153536772752209896330607332375818189235119570622907201224937574729116638830708075644046724462586071604795924768281909409134644076571144449725106226982686234710271460575192040497579682446407234306101603495125894559069229897923315807754964470877467723251309099973387658512599290009767508696828202951020326585598676535538629982047325213975957510439439203939104179107227694906140994619362797975106035376592076802592442233283939379207405895236904813357877018977523018952156132332011942675508744152940315625994553670586759421878030082547363105688245795901848310549154450692645956358599923491965862064995046009148775563654882158391332713874594739903697093882354483253960788099887064173793047134172584258632010828345744643587889765743388721239257913034971982046071264660575685228153924824004720217388250545410292907454338189575472526137722224044608499996525104475805212603290089507250901777793237680358477476231822739660544928584511807194594177961645669935654656475231583651946855513109662155433583174247503500817972213332955024979050455419932015443432782031657214395535100287902415290849396814080284424314018320053823759517671270422482625322631736352115282496076468962579179782957850829584734894804436057511322230071917594671246129339086084459024370438692982639204234020864254752171039853567319919086902545279395505533584383920028447578013484036554746901847764560869656047966469093465475423926562715712922991567063902778770673510885694758287073323514822218581875161362641803465917020004355865023188849050509937356691694961881003002590307362975552128865063529124108976995823777613947724140724848219555112521900586348064874080886925457198095732286391588306677062533545809285339829451676731832446110675095738389820883672793480830778142002565400212067890623245540334268115886036736423478719631976993102370390577173887927061480547518167035591497233016044433359707185741348438168128105486721138590665803649453981348982244070632507756335822206154594789625350459423653302090937373130323371041169021328347498156371640985863388655456236800782731529994286355619772473553727553009301892531342693969854258295414141521904904568399358259270470583503422896034536523679448500702824968912242357195783310266885920357414297333783161294138154474216965452843471398121079648604950387289173756310497010383099800004577297501495362201049974178433735103397817396426260604657662303438087065685889842255090013573218511841614969284629582586574910602330273080902922953665846901853464584721223743322828660472759931693697931680127458098449142822249823150192481212732073957258435788825934755275469620939643299225101184672513015793525944689417965029644644135703217127870539674289261623086409954718465858915956197893737434317138151189903275295141764660752345011359616330010972975147295354755808311761709344332659192144161530755036035339602820158496126645637216565051538471929702998839254397798489429667072967015877770037195955497321845781607675757367482317121575588194612886093776846031205818647195068161147497469020458789230539303963858520007167864652931135082899205646178607675711057595483504968060795147089309441024074895547089123992027966858863426983759524598144043768097153335062930618243042973885737419752477302737955054617309786119816056688256649618190240301071210973942761279481313076804196862977752762462057349517572439246202027950206121914280909824493960904322601786271418105656830405652514433740056982965808540507570020000608253871782295960551761390054237522898469076172846580517709067543351160402428596617271682156900185068164560869562434456162956221405947168361803490652281499677889981720480482991872711113116282350350094739976568837772020284343807107761687525771059577800840092768776455842030173141694591024816714585078571980682894561234463196291404816960996632573204778998001559160815792162895156080659370703821042868864661110412599934506071669074632355795331379159137693512686746472747269924760580002430316056377908858675814908776685364464443114564625678502617333545487785595838650852822955713107255038483953450339659709104937458890024265608365130237995227677754955518872169643756497281164711801204455735532244133824523594596629047439444560388742717373367539734448623909599061313025803792779174234544226962533379131499154042605739670928498219845163267590966534105355857297614038843603738204604402174972420916107238990662099398549018334457718257722737245201795139504182284837119176330199905797049633649721853377040578354668504528137963734445150717300273072956484273021101998694960091525791972521946286487453806241895120552826938779061058884288283696746535473388219870474709115084029997588749627856254729510028894474584645570222918152419198351147792373852461111709105786752301806344503051313669994109907398727820964888627782527233622216113242771843319570879103604937880421790436922398168967992905597355381245637126511485724808090042565204066954675254729097738855255790858216403787554094596091755798726944939537903064635809444340778807470330091705906997453296135068987172938868944795172862977386407037797897492731020492065249127106316619025249766758857872519720647914726321119477339513164577104508211654333301104959872637565434806912095677337525476175134659378533323902343199085522525498619666906580299066530853851752422757560324748728111437482578840215203023918915851740594780833097074574595632762756668394396277264613927380050607385478714143417812220658772890924345767297135440946009593347179621696311803524062023129067394540835296854267877020324497449727391804716027152498447999524137182162335280454574275783114015598588712051391219312044625098355998147465057195856611683923255930527621765253316356044142286143920106920438317296686629208128641666170139489114514058111577341155925674567624884463365909593862084249476102749018381353824317364529234790938144883302909090922588000916414646664305904630033880038128485089910594113196155479934316970694045020210550614039875086451561459151878434599647431290619512456058997250873816616154903090029827793910992795491787085703659398813501558487415261180761081777565047994921441874814792799534834468678301153128337182415486982182305583571432595979011993823090978227763274438892066398674789334215952776772331769310208586947415346805219209108246973555175513925325625700764389680735453586798577234551230646796903939497177581999973795047843384644565612482180876946964771656761943107841729413158754464281820105437029194979480632794200641793616466475376030139135237277466801979737146426981298831604418106432819629500049482009488378456281914532667286961017424410830072664874320718456273219757544525354355662958863904997095667320726886285166905558205514450302758144938236696942534165740045744542485779983243197852792895675639479204911308596264311294754367628715472738556075134549191917701871139127218284893647124656561350682529330463391598759221016190622805126265474092574198709661575305767219696307225485643980685455389344915411423638947072737489519092566652762864405008042017641537795334202047981599244297960971597326629349498038695689725390261706349285258496996390371296557063031336855618146276288613501190973083904148427673501399092408468454673217342458850246437114595440593626608454640363543781345105038675883391851169824007156016368253741694060568151470984477383622944381858999832769394103819238493040002826475815447733826421596846749976095446559049897886921630166305385143010473062904309091833434510737048328859567257655391620759959808460776780177352362295168239282200686897028901534234514801096049522976929926532248205934052210927420083023161084548778884448542260566337403132080125051988308202352858277835257573456456456695472462275677598784995343937506471129325708841192067197407169542577148514812367562163871672264470808280032750183724521783989244117366947442169151148723453899569844813227348585018004220885086633453097670611780729418225104299494679775597158902620862870820895191527712828283340711202572807519717141469943978366444371987529508206193334494655908943230765008104659558077507677465331660303338880323778397914714130268035318848840307573661784253542748822555143176854325031949635206665383279135844871903012925622897997633835889180914927544317521124169192268189480205268244030890088183112756051556448859831561387708770146926014196967036409958920623881945961560487330019035387601288411940428537582865217351550811173336606591505902256414519665244735400238048638811734603383653007159805804949369682816155757211026294444027627415024252066921704293233552286281302734032474844390179086309171776133468758800899770529427190068636484308572345263925300983370791303701276149534153104306297703665779797848484485948839220760678636713394540999739033194044453200520036148201698931556069394662487053580755465969915885452751227602807309235621799094544733214554280924825827605657214954253791772011103754630579058349706909858512277534152100898614468577211301562477535105548991373596940452290107850620639066494540776754834349284384118459119503088049823549489348917872386844795257872684606967207930828104842933344348447416805359307283035819289934591768981778398883421664835135783238724327774974735602671041288898405654431270160153180726314833448479924706806597938916584360891637030106103702084821209424227628351548016138681608808405680052581876901779497316766009943265552605688315638429521386423081935298249999633815827843167444046341794650740196675375643544458019928440312938691588873822747771247369919933598379848704512947465339252678119270068601898615295673997889075179387609101617133022723898072287254197206161866727282636681512726912199529340489951085034981267137830448600067056583661197945970934498594202121292638408435856431667053650174178620242428208128716745147462780725339856876955321106414643985927078229463307655847086245911949049884497908257045620904710416125080277917251962747470600978012667531638473260827445913191286828879536568894876290788851470264967259704901252342936617428959785068112590940658842827561565407036378050627085495476952623537814234702216778051442918688500944905698040699398601703544696664938906690924862106740454555133973118376828889052282673122680087230752547587191620923340021495769633960029876922639125739282445572602694219429449579026088488540622640429309560955975049544736440863540855256187338751410635706473358617383855476079012195431626381863391451507865651702994988023079056988970986270694454459504467247007371293511365316232634696591967420547355863387203837416655253151377866611997842039650588859110864975632589846273672170759508854060817692439276036474586197369828876874719155186232097343979215861297178820295236824167673337286511464277867210346879798112647898855245176979648763660328167458974331592945256505719641734534028342423693598276960744176114777162534710017876470095929581776124104129909749520169213035339744622210503528525783892659339006474565678745963676722014687562449768751274910477199283842703653964059350898017926597959191312246574811153379863659171828378773683487308889970158884345813961476466484033505545245113961188448251729902403195131627870202458203198294776872525358196396764984299476537032962654319929904447026720637987104630662664227851544596442092088579262739424168449895595282441845410721213733749233092633265730721565783299752898492305608026554735429732621306114222055835797400852666252001707284921331505170887352070727924932314476744057071293086182343601935495799585707839160187189671696359258870541093382761055629069984218691793317222643869817785728439517419071276913528150526423437483518515051930869289125031030265367096709337265712036148557491079816027723005713194161558438143964003368943334002285247010539339756121188178050846023755797945575832244965715693349772628492038651485812343283773045368201811303122061076424612774507185905487699349960900989035137981801191454975339278545383281965652686894669074862406343119479929211154067683905890517049347886752709843890001271711431857921357562967077569536327418439387479481814156507650948149931488606616467539278621396927411756630937374740342346562379181531307522198786013269303101583758110995116656491479514658833655103041941713764843904469135047986525167188185012573231273437705358924619102870621901792883247595431674821139691742260939619939957206325211711393113106582574280115514525479938965749870290140029530087794707826117067384425929239734438150286042191603535648784032179368051140744372203053792302892011802195994727489735828590524296087606224296634430402549245776917108968575635969859941031011296389488627158184265025552930041246214893695851218656384897582431599026759799073194910049599715967966987999158031343853321891733374798188090156626727160801379779610994543090688173501453228438658648165855074165946805206950725489470259626273220822600804426061988017022854009327013021869252695075513432476453860252984326330315167735790585390115019549002853461224878844466781650822632507404416932957052636401686375442179169734414300578386869405231857503396402948626091822685804363300907014199762127777532133081219948887791262854106521849904183409938288815106903763552583698870307132505469166431561679928932079301556414045183025491864765840160861924371776484605110874802056531612094583928350090152612087745791989032902302702920853182091093687993142647075154955940166691419515245203215704567533547862871205688933662591273359869389448190797492059675136937077471481983413136754816112571663210480551077715559876685791473819369286572526471437650560084865517979480353257167886237202698374718423677486417449633792118218243981405831046203717674490283318422864001370942659236534232290356970136211481925206854202397228318764323833117717769916390504698361734604398592322634525367168335625233333559256307320884296871839310004253550851333275745450500627861208681944455247643161429056174004491066845732760352377649793355866034791789643103601364830949293383752023121164391523991003910390534794048613957826784373950683096025581293765114974372715693791352609277427953537528183570672388241627596927089492303261916571498854107621004349445956638208025113405398178165459080663119056127063994752982615219912795728585671247381464151752915456786852291913946280256818890560250242432976644977039502245929603850206464786279730118197443386032165111570799540085253207141705281319383976873911623497733353189478953470231724849196922869156390364382782292629259223409269249989106187289135416532275652408780230796599786371237183733196428289522940215254494829657228687907871202143743707785834169615449812314323689045027742506107214448438705094140204851866045154911756792929932127567439315977043742100282414990383650394761677464348718558798237916182796885445254128280409961069533531896371078587138437076435510406871113103381821210563326190888968863846479309101139492857880611494822853369113495981637141494145330177851421781173270150933914279599312401730634848053623468205307321775337126782229203983748664398950101973028726664372605267725545497871910288613310661553443091736360471290346771703036285397909888819188379311934069927616517325308648098342117253823749044903448592131341232995869902995263139932965296900886396795390992953800916750034638966690280754733423860825507329348542088086638803602676473337158735423484685608774251799757745706195578232937531394646477312572492046763678005702940607710216677873844005012999505382891473206055226255012921217127951290805700892811114576328309743188551506793818483995847255162100151761044869773065087727386609793893249061515397213411036545467949742304848781718391418173236332791582480205049118754768479515728690049530051824595277427371140287747764396902683720368785597499905154767495474593188114186148475712962559838343591031095635181021654297923981412845179663954533868651065950806868249009813680430399327957438290182368949051220110331261670234477888928312980569244283018012672410650050950307392089841005230171924740321341673016958059870958761333026895314675457789668961704309379257707598576637861323356396561354522774302350112360311529966320990943285634177661601982359646364174355343380812652675614324638805915674787957438881397144807474427227437747428027583817667603932658581963387653985015638566508640229360353883222815965898348999651458870155954226158266751363264740093073719641311275585877575673613341299086856224162320569744835487565359835551571578033255829528900798540112840234131723431208643211874195002569023711037571626724642193137260057003883006351179571859731428786913526006412875712435150560576751385214264003637089421738775241299104313396760617699911144643810853161580935732738481070940082532246311675986474942890950382962958265794813258209001192778276251730992505651629848400600660008085321158086232472255440392266242068707945517397226830626974198272034890940365650585444682228585245108074461545697214215498458338282030339350921697858395514314806598285560378400806488583581608489649005144752889440046589142308351887489489581311375174328998044789157201125859818745415241624509597456431026071931518422048995168547450212429893156607453727458855213731538671211113271853323155170953056799060515659765703734512123826480899282896489430555271941775323138594496441196590485145614320111438306284692720777301936390030758946095670153850423149793294471014985467186935769883712703512570406446111845455889993983056685151743776735860545243040034481025652107340692717606396484203706062502045148252743622215058354802184965164147961498938492303240782100588189591181470220273588999058458857786650364120980808320932366460903436491265399628952639550898357212231775139824722810984165907662394303500660636720794558895012221866545972406594972325203898470605041320936105584399713315290128768850962686510466477795300821311141657626325033550194510528753898951689648621502847064224390451646849597863979947841302523900609662726323382990976920770695107707783325034384280924454643531003458429287504603073632687342307147560371542119280250234779183220450263890779169102491396120896098705173477975374463632336839299264492386482621035055345292172544128712564683976664932627551256678410470731095114704097443975685527231289191207936989767709252376849327256182412526858156620680127107889795919600193881475611754364877915615209131766801004354066979425072936692358363975558267911012000784377556010260132320501091159094323439174051816326898797984393974342291774364702137223888766522771685816669250249005483546684021260791392675820233616744830886877142540690582228026738842429060772402665796948133072609120560318000751864806076251344826516926842933931140946398985396500312608012237135820781333687249836015106607389478875498358758928126815387539672252977116254230666390145577851152556388260310388156942732709583650685798149874775276696828725815172073127723254922554501650558005617504619067071994943646326436587490430796742371895359094276717168329690896734377713126493758682457979049761716531277359032865064296340901598594786424165376349364449294472934354783637764245049012744827641030568892737916727430056177595314726988336848344144311804400738168574626812249137095704081212261862686499749795809098508814719154709962676787158335639768853061180866410120528898433671686782844698984323204810573176846055197075229924576998156482056346580071818196013482461257539293138310604467689068373298441975061426132384086731241840721480110160939452201075313075251914990324353148769217018792258259131345213198701971308987587254389277788421651007190985584800381397346011354298328181938897089786920066443212456370418888687502071074711979101161549844993402420749810137238053927866493513397827409998672032865952199401198047754444375517264102974033595699411930216838733603626291131673721455526382220965115591898618183295170253781580313686315139360702605859109131535323050783673874687644656034905126006276945468066707893436338701730751084229595635129629802728017390522022613874886467457886028250955615035244702125388688875225010617088327181535907268417274726542509860777910222735122937700586181469523932416679524403484369983177737043935660131304522005075798740167260986705361801316772808682745650269862869821217395955400772804476634452322270979710247331314909448478364700126195783871012240414345038458691346760494221507689179279891436149243489098971240639558030372198914863840422861417083687207788060098580424136935587687876087632369402274821646051418260395400523194569074288795961020778114943966020588308092538133486669636078679278373765847867292805458434139111970874322724585075757851453120387715201904823566596318520454990059965838658355526573195758019934601990032059960930438491944522809394816662112476792034749282275191441706194685363019947844424056273996802026551901510225864200121489703108074903861987066875671609993203265083080463211352014571977128974152377244331507583059490660489703949732929867676490419206909812419150654661025891442098624647360809094903368037079768733307209899622153950377741494935449740846987680227593120271998413447072393798888285554769464834593152303392852223886850838052864177834338892230037862248646724720374861125177256634309362871515711517320319102043911375463925948015019747233493033599000629340916244138253723097749980638334250856403321239545041832817544963074518423335409286980109493944605023119132778947009921344521499052366767916182837771175166988494197781296544246559679755532998036824154042592473495729970941490707037798863292800670984800426742910972032747974528421846016516079139172025718099092259767307042054173713807368680417336949198238184252272210348849573675136564322630606630144350842538050736835621638166556472649382367613795365779659421013400858457658665440708598526507273801787918311181925173328598718989888481923786320201336468813483451951165470979700799024885902729988488695724668417749156393928805706581053536854366281993069446249160953610532757988568419375404771851174615572519098786807096280032598705414956655126266354464557336500322341498420677060388355610762211963841127585779750564979983877497823127322264753311763610508569022639013788389591938834572857921244164719624678068427749546499873703089341658994620981760511040855601372379228185480297059174276928811096918945828574628680367117462201429290278355463097585331092467326301518661427245760267433113420860558583038745695677003460671282062377868852653887811939954432166012973344314079228544250458820659466780303917621120781784643279735945752069855278182655330676332136669674293025153046457269037087352155928497998284059492084810045446103291308181152482847056753548977656645240013929415001363595957656917327671734804960111805200507218326827932753759335967999428659370084345288559057439197964306336595816504385997433087624309424165913283637333320357003334021303560536969996791250851232205754970947197159369440742128520090123433264502999326604105828280472354503198763227022932174118388369539295283142544363739560309950216244906314042845890980948447667237064118550266475626677746708292622596962362451863089033445644842730451569504010392748131524530910467973414671035366417219086684457017392461057744408492703556633646357822581437165556289335694227837194235360372894356805917380936284110433573281640291665218204435534183945216510284816649147566321865228832580201977734482330475504465706350120598828876232836552803830594610272525012951934892071453730243706952737986830457444166778889748812252283186553593767120980596926569803475386893736800887511488413156994800745818169409511504063666844494760572397526903247804367237796570394093942023650779196443000254102128322242241786330658046626057746081793057055721404524055130940437329013392052643200268143609210520649950891709179859326708418861397796663638784263090304715564296945476389250943219647531643822369719805482266454851196719577081920983619671463512057795369759217125201715899963888311632384692131284253124207857733649515528178143410306854693023512182259408858851442744558870449005988263320122537371541043628192785712302119046291129414058053100198467865635345054504868442153798372281373420031534356854694797410694198010954414774705805640126038936788407794712896418541968371790250623066192092249247840361836977913189165057896929646263661507083665261874192617257325098911909891661445264044202652376567672070217369209769212974614960124391059722970952404509280660851068899396415839659272358408174465812228609655198977533332344891612413231735395142497469658211434191747182436551807270568475975942343053333988807320238816606699496565234896576344690165092738269984486184465351417825238470161916829167271786686531845939524588219277300173111872264255449641082924404511374128097019870053656784686875863797383217025469482087034849451673285963635325414845472776603413324024113343116606363626371910251452312461417657511518047639492698318669345760435633242202286974686248735253386325720369688381997862215147007580345948512731519943944548351245667954785776073364391737554641364814484620091905557115940339378179976751765845129859292482712578094598605734070773591984411081129176743987610815158502697055101076634646098343714481070906629722524195276832181059378676625995869577557256703836177005082771336147777422431539121465164276755331214785314466352817770342744733124945479706606656675010278314537469884569595000590073026589636989610759001627810925712499848597119847115450602755958497917497970855559677805442021301828499161156090432502049820376914680818615675242116473873564598389436363902309655274006842931713884398769731212701559630477611139363092917938693514989227874535718075257850647653362083854271860969820490514829382661659628065755074809850304736355386481839214385913964524845446702142482963012356478650932353622940924091373295672271136822063870409484635680340201274396853270579770043747990310662295621133010596329043869822812268259564958640520414965957035477883698974265330685394892884024182527237887075061657288196949865261728495294931736683382314037847860001629801170537692651335073374157861425191796296141461006599818255261716691807219745242184903755617606322748854462211748589086225828771857502896852834691696902197383770606464735648853527598598720011608416310374418334057220919454936512594495133439799118165384168068885617985804170442674718623295977265365851531602468886692773341372078643011844627990875314679636655155449931981536054947034314941399251626304477793947878265143732592259978920203992824455398732862324475670439949544637598946881604209410328812507500353465096204614858807127305138819070872560994027571789377926591369617546573574375016535905738727669395980408425438775535878126380989170559657211227889129488220962483722466068931910703208212332626290148798087055758850557718041117674256268473035252183678482735110130715632833371972177554722426280597720855512322361710580565288177250155555935236782408315537390905994380276908936932190791352207215961702953442353965287321855392054811687469178109562180489163274108618751085891249411528076820725466886659412116333677255056291291517299774444527878759613094933764274226880851515978937450231146703179163492536945526918349770604685328586834597212740679895511713065548600028226461502791708597593242009382098145535687898943302626448382526993845773242786621792086845034637284556420371729813326159316116755686594611930564007709427687893539641601344222738417119728205259011104725972584358626499520257380070909437594704083091294181777875058292064117516721853748225634446400308622328936022420861836398447073813324838241896187179818420972811897936216016275221110968329849485225764232444344634040790599814496576533536731422351059452537080852375664798985506994103461669792594296690025759235875136330593804061774760465617849554425073657980210630479814606868145408961480661433322052329287757835675027834620443785317731895489235322194680964190444977230315511529888762081394538721624870523074181509072109868576303652677510150465785470794146571046622892572343642406696485052457964791290895521591469057857465683818553093790989908065690544956776775542732770715891029958152494119875103064212147196278384808101133745214188600785850734314556296964758828229508995942859395907724657883390640791424658451689557043552993957882465669519706267465907649023853422246585146137829983318658717845469704032596724701398058921083715183141291131256233906591883586428849992153629641085926602945218756346281248679156821328870645356877478374851518514880347142321719520750359221621722943664171720879747088652867366160310904363671281498939288171771196696109162099001755324672218693304604156163558164382440984296056421683653802260299153848941773476610437153773369690959176817837423792334440272107417811452614177099788427068973557263237431441853934314729348234306324906714206315630790525658940263823649803846141651913786198155033514387409872109008557822395678209364970080836665788862517818990978321925513267102625698766137674152697269334536965089113519317230948757902421856290994839506235476513462109219069990353996141831066296560870973939620949602219837301485201873484253171640183802200930094490538279552142552294075694004360423426561407235298894320268096475403481536579253937658512976540647423702035131257986061663341057531960123521540507886975447880156792510608274059239937085232317491256171479952644179824781190586256667065875693846732870513099077295193068168049099660438715123313292419190138664706438147454145149525685612412876237802947824849630924706902945716264493578498070147586816580343143039111809998348437464113272394464547902773204597462439433761591595113162752150522524157656210498948921094762079043441123090641836931437384189219272055306239956565203962269450465206962710529324971673141199868949460916471017081328656933097070827557779337770993968055680308863119944663289045918389034854627325860232506006736189785469366339048087555237844389846897673055019538387798773231017114678516262880831816238647464129344384014486001510392123200860078582248513205560526700657900844087874577194081027406596155788523272196867083656971376286075642318672093376887329070637506166771672701078577145988834131850802335553582382528288101602765629780160788359193448867008782576001221279051567741793386119486170406445208492601380715105171258817051320813405660571349290070317368890464249758817157200135716248848970297272420682838140274135635988004320599932632491143028095204682141955101014847856278971119340534544327973985110577679265582261298639957356362270171861443752017127602898411870860877815856166324787074801590784723891171057679198569881447399539440556138351606356545774183086606598387701964012750470171586064142171302297470989366569282206150573865622721373099458775205350170205636978278828908707292719023299318496208075684234450726988600043634115416516870253556567327428027350681793162985950916234087129171173649778426211022057863776914991536919058115077803418754800400560421444927088781009411289349639470605529139367914837589532724464730764628634934746359408070395519069282931902194665115324254391303775831313857929066583981533886591039584017224877188087877809762295702726870319958397678708338756249035534298547330719226809362919833275258614129091458670095510024421652788576210305806274092650421266172753616813308275091883283191745400913193193443534807907451316459827043452294639590723982914636769210954224599995689065664669507836206243430916240840084608751999647794151297808029717851805636659817910532045177846972170334579868942475419440818727477083775602915134199727677772333854601286694426268833239792181128344934978995584069022488554425933851744630777629715975590750436635374452835249046348670259842901766269626411622247940802831797388432031088566928368141406500844560565159447487791040160040180366337351868649149554801854583922205814513661748684693871191757246805792303434366570609582041198981042985996358461143590058265939916136283010690353757877628491843331615787919284087706689893021515620806564454544870483099321912807444690818950129850157593509796873289989244465486884670901812303819697602185219528955977034313117518466589875981825022630350215093681281642444298041793785279542476662329501044823111418503267179622000372191273028650229843639891774026770224518796535635875073159643911526554817327645193974327337780011842937057246445159108717154280314100098025789013864635346801506247355623035860862835960080905058428794062043229685669155831091695713270963607623398807675845652077121496719314804217314648311832309210606436296496513409562441776612343578215833577712863724227030485260664659985827538172566060854608081370871178395861802362252739271501462806717026589181683016711188437354543291943686089274441745612194771497808867309669241524631274647305317747517790825385707274710127453192170985554429065437300695268930467073908571457046281973142845217434709232130326505778774975200007281399297915428789232319907444743238213873378210644291179612681806006724516763668514216277971502979134546620083552989290986249390759582923752547906371439944720955380214311261593521474207877392120090435903695863901389584043222190763376215226556863236923906075132642432759152594485319635505598109033724566556310560035350794055617906460997080509319702833430367287420944947365316818865134111830411328433867377122254164533104436343635226372316964399403356704857941994072281423502465651665474494867796681488476430129247699314555175651811521894372526395436837420307367881811852217470511827051625859013011231644894140874786000993334283246857389543080886388695737611408572144549666380133305294580205618615158310759382059259556154891383485302580265440759839293533139753796558438132222533767803499738194409292221419487243778955800641640538959878881161954421819983867475396632822991484216223132171276584655252014646414925352266048521344878030442468396058669794980804813706868318219130208768811301403768234694665351590099571118656310711313398205360755431872123747589637401798317226228229570818964267006634512259297584679548804611407992612081366582013159188341491573910845618001638729947538967639337359204607086309475131498841996053170582723971279666791181944559237541395780205864211045917222581122899178237023446726135368427840637302083632367846827373012167921289651521608608881029580986023240102984278188536102914191131739566478349689846689899989877190368198029146602932916270704058594381644376236753669393665549312277491420773404049019505445404850994025574037591307599216265943200464968291323416882570980108032880021707649007810190825331547598075797296302803820153721399068945327075489377704243331305197237892037037333263558943343896397831005987254872349183304045176512798595137444244611539837630106064063101363897144106742183579028766314527546213825133526470273840569052942777738109479415244568527718026556821182162668870719600441345369561857455215980823850893644399278646840047341931257107610623346828383701302546643320721655799357202381332670324608573655357340168624568086079958133124210391634810059651560888813170328118972625082330425738225457305985413121588395491985346470002695052106703520150151597330110245362172288257702964722733105101886564934041801371690533034334526809079072167383049367252799354660134280292333134666526185181400850677459529264451248909909685904490083809843256205526268920646079756224723811818550016606792963826443770105898233822095112131871547121057236780597280914884344711571139933531971088499475286825456237349527203538221169513892612447221862072286757040137852455153688547761693440609859690995438289367226773240135178274580149688907891429075992923146754782471172046460580989517242839588242014208961363018939177015849468737862961882866170801568696671350004599240694636009494182296730416583054931919802048862465348303249457200829211423740048776480704620523945052367576138065375379150975643276215015017397833859418885546485673062688367163887703695499617333502846606514925636723057666528511192057648702773150758606211912296589900603323522957446368113720901264648223517666754212025994667747774935595025528565697183615272297668507976332333784175619572663484920191254990682948758949167192740290058026096782427536922377584993974504299625949859065129980368988942767745431223537086375365797443267750908040313651885880235004263303715772443874220277728465839262070053937734281755403194975457246987391480354093828414139930464500470017882849033853153656495413804192674086298441259946673875532242045592232061942480185642888319254826029724176110629879086773810651923327752030588665881608016489035637896415740784526835627681029360279346310893148073371057587990071227002585221529238480240375408015056878306188567055280382617595832156184720378237872131747660921404104641791457239142493206847966020367764218409136396740891535416228706778596975446510985553246583478484233976972186974951847268421976841954707228859934580713582803231643057625250788507489615256474756880158372055583403070078374357241297848503358867027711032971295413381107279486445074918047938614762178801502505830489377543978706779078817285862003111434460819324060313419848154847448365157756024397427922902732611684113968348605362237346993704962679732912043442875970737762924532434519213181711664147627346636011000928345923275902842022541870799890696785039973170403395801257170015976040849509549224355675264874143508225480827198114917090748939774764963517420136577237197572923316854429091589777956419730669712253705875968856066250000600294174102476659162136953997569988969244621420483031289430211445374757642425583506328264854930225593138023265025742828766637475298817308893083423662698149430563471820163134668367542782296830250030080602806702955322444569568172882987426408284634941146459804206518107119933647665154710424427202358673293801886456497422408956971457254312866883208092853693898318887573271427864159814307136528193196139860511571169860070972104036450199057671927635891394440034334805705671827390428105658773945128230049025717492278391564160212504472036652266035419624003754050299850083609191736297827879587972712107415192716268237276550874256159293378091560217589528628175044507288826255564117751745043898426257681895730532964194565275835393303466500485487428438126826782862900209359570780174769064765586932011597329409799201472901489557259087869313042126837020386796201653073514407101641880689234546247825212053071593320183292174979950184928357652602860317057218172703910409199849914575976211549371337330435539588153271239246306255682966620659534078712634051047929425816220770335128870920604778550071388001401991675034347783052081761249934033259601759165248229898591966895499475820291842645249872876638501328593581296964863165410629490020452982746254061659719176010970165695335576357409367131970469599768974804652806211641223121435546026778724699654062229861696379001574053758027287378642813936017238107430522642471680311861407965920985885177789729848792160957582016386138150266750720922635080032247186349467281041980821604622063671519207536025858928383044882599360192641420925490157423219101697392087470858344129633315042277519861659597576708475268783804259542895295208591560946732019596124239286792182184338840182650046001711999602459630896363556854629742426752391332678217349088693980852822225044342961078781854372387449173406672862196673496778215769329027323851683853512772425572823768479222686879328014354029260471410066507786455855674306418283042613815162010973779413523636026845844991504739095228649517619709740699077981228270646554152536261220129979852537941364619256117824532617653806363016839172783162434222356222564428716704595742725809074243562528202023350826991865019439254482207134438967914299915234943313230955903686664923530297283242570617871828960869694794274884073929582667953170182953465527265097477547245755559009978657847024333252863227608108019271747625217272861198750577047349272989361218985803380263723065039907374532726016331648962067005482464046034182341809617794830104061025487662443801152384989441466237031109416495652771764729984390968477956537486215560735783303615183459073438531738802336858715412676428316885672015881938582784180779314431312219135892043734582643688018655139850007757569392203904928929684649255582500639932563686380903904153253529005176894046307769025355533067734598000902441995546639529521649901499006469918962534326131051351049887890358721390968367144809650911156979247970018930846788742502198032827265139906366515566273313205833857242583440627088541943274640466456479701515551307138434765114259299684005609531390034702723648410985149823217991249712941791477922071611581628669628976753978714148178055818718181158035446617702400462756710274988746837728636848420752803774533320728639074982496253112663156992197649131531869461365123682937696477326534327208309553565428505902254157112936454793908894192160511496192829548745337656224991669768352730523467906886588287136320208567959939708717713436937837620842786225475114760299349352979484214661885236131676498983316596583191940738823421594303144647073113263527764872274236387791190419462780465659668956101077872846377196015749831509663586860474680083077474469477542998564613958541528108673500575701024770276903960667606283446491270965791990649976082460603682850278904121736229800612471872734776693206503451974513902796932304485433655719240764535381674763246052828773202490571313189279919820856612393516304910694623734265764112723554135459225850779563717324280850515329456693606426476771156435200813354830206187214761662425520883715367892309785610620499441493881986779206465281576347053877033687838211201794517349186756292976754808112634733939430354540130812806518287488559078050671911513617950307201852096407470508978967159579329903498288617729373697330493632990774401659948142737971105761371185659051279314575572319781894817817383115043370453651651352077158369402607506165420436620940018207447340538733810537114335719634499844359990708128373970906842066028484055512585746450810658481875837869340712564788764053567518469967160391352925395070101253674830485914739967059264996179961591714178151784928544958185900122098435347860571698375571442368045637393980867032778968866019607828442277553600693616253188393314378057328819189815160412103365650328347075068440804564431433189615798337933235936030847463238158397651705770257540187104445602729649604628609730702798167573932164660760433748635511363548537968229017715403547129198358975365902651272381932341824566935285467042053241648258416633965344859904092487569755227765474438948489283903956353740605203256072357219805542428704509789422198973121865915433085563848300960835763890640671814029372718444973530744104705141949844077029495970690686838302743023145574838486891997329240289322407618843358740816851800590393113186511672989488544631795819866879151758674036323005479567144515955733450880780863771639190546527371800857350682828398167608533673512901798415515991431621291013914112775051249774218713574912585406874125675741823874951443209555182243195975153232013623474063860380587717357547501343182482402853927448121262787342829887674102301236932428228790864847590452185382154429142490622924086604242077853662505346999073226263989352147671105766730597179479419763444299735696765345826486578006568290881244632133512456002349381434665228391211020819624393318826252489543302565146190764529707209876359228667460867606050396780756148813559414691353611264374935040959744209533922650994926481609425341439932959025689854352346042745413185967110028480993975190747020023009125982348696453449081740352506082888144325292557533144741535760279437408036786978317093784746033673294427944743385938566988800108726672682882988949414890669963621418782138102808187787596460821150229009186776014528915593395662454519591489818843880338243917477352102333962650322197888429706308051725729250194353236717449381339416208154241882443028225978043725262126027639049826975961213443726733757103240777330725111809548519192007327552262221240590821576424871357484998394095166197147245169036532459176132265218877010777792711024156090085822452790044308287294250804107685183736641516175768169340061147582260012063644785913946147686193249363585948980343156738597975548181061658946635660478358578264740663308258916025983861669043898666423721686877437582980717416442145746578704820085358672630017547261128839273065866483201138171184858001598769041837181373217662658840078907314638992389069647918041828748530536422475147236943761959586827500600706544559870533770050685304630988168837267171349940966512935337493851694045727155563171533543999700059702886387965473019498527123200327364260557163612206794457816600249242052077250817299980545358991567668441447775805467112815953825896388681449142410106770535047175779019484088700967901414302413189212047114440059984970321059490199223912680772062244196427930881402715068194324712967855718383890138761203786740726401980432164604763419145476340568827944913762524880328390724882085166994610417093232167334088534066339246311590488603145708672361130410925738078263051077580641894786815577871938142713417667461392383753997976910891003585716996677419627022754517432361432036881165421704349825773983986656910514473295485157991425230666162447020548985733615266543078928140626504077185597428151861211286407151258348066098180763414704828375716176965087595486717523250253962199435670025101295282503649248082865164005205067245836649368768575034091506720437369292856072411792884205711748441619307745659005915719270789560310988818846666821585329971650021649852184506488618793027905590896982091738418868303917430579382353862131075193359269750840389461036417954490190887538131936967734672910832318676693863789660278596653845709159769278060931041205374468391955723392195783280200508348421155070813479884357316081583588925389784135870933306458290900067719308197094053284453006004899369252205078053728023871220184863793983194130106876179170449509202962957977933796038428199255576425773721104423053167112368620383651331794103083871672156974828725968511841364042165942486001932133593557620485213167232441704090210517196358881471807711424664913130052920099117247063023014541020105409369250691165976849603562277447647451071128725471152554883890511933480731891519516078964963433737238657146564438895857591308434394572746807987323534705477297940385003563113775351268769554228606557639100490726497528060694800327786893107131291358997786242987800722718338244886455857163484000851285778183644441334412771763307777159688633544582434779707732830879630635296843516742321657734186958853835446157351846292116807767837238754462803553671295343226348423716595707770356983230210886929727231429147878486960219829839333201501530555271616755043858014043185059904622005136247042505571289603491230456233179445541150222747726572637567382523073616451416993761335155455606241911894557619597608038351480333010284198113323192092162896092344136939033898907883710721546279238875064737069922049573761558395670275718060574932849987024583530739183904036581194990391294101536889901251053412684903319484468658497580329821265455177450396651174848840430215977505053342197963277560413235541558073416397073052862198967118718930559450157892011771705580272237446139303154090164320575258489619905300236414843779104212921503495380678662052532261055561702543077049428435403694511866017159161249926561680471606257752085364605743410809334183381273651337474493914409948491123807387592932224571541430508201346696088227637873064217060109816304986454499687673859928822851244620221207555830648850860890135629660184714357486690594141937963032546494316940495973710934444961951561092428142774254398531971117127842149350552904808060037847538142389395751197194424382198587210676122610544808027273923758633644383249199185359758271974338945916184688191251174995006068100318639632805938197999449480825549833177629982730090832516696117405917808820255847810661037196648540330295672605565838017145195555044077183891546775867174953661331961817201096701490044402157564163181273596782613154668215811335217721804723277146923142582226909650510569534181241114511576649999962516394646122381372829790768904186150211528084797609140127876584449429478244837721411926079459963072484050444786655277691745257046781085108785834829079624851205756741294581310062481348804549813116568434063860379357440378429366922145774177654076425648659180204010395978340979780656059517095737295802670129751435860413438759976619485216633075479909575336859363713093305268240783095115159262720253868711149688049081594680591871731796905772332513618128521944021323835577120244902214011850432989559757496335806012179554256550838640526280176554733822219294237068851707116783193303280087881530306898324042417812949323962744717472301965791973602335132512976381611794578068124659143137716599371401389199839946909952139521336618437059934697449192664990535667059669781793293698987726424103323857042978779739486295965455267855058821842359719865452875457345462646331928602628417638056972338908743602799782219131356240819780440400934898964899264871672986258338656063191407470571967409573876358686904984606407210008683459430595091295028923936193449516092903167446441629411493592458979398872221914635642658993888973367861655133215830334026600922492383676840776423800144025510944659344820513778794162193439372518530886827514833562454920201377036942149975819013384803934670815943421490467875395498582649236660171089497370317785281839654340894252885736341074937065257109198818880931534875748962087959512775112553606432447113854969661212729488617442717366760495336810287092731423674645934416380878904013243097925823853148875946559190525364531916652487023580131852231269202398834946915294880489104635989195855115127282481544556916545513095067201323057506487023069643814046607042375291910154642540512364488808818052328517757620905256035145069557002782483934025647850842011082198402853492218198836565146664224902983527990875028688641854945858038749376568500145125265067496179348431779981617147684354114704488933529409113941175588555249098394331817689408131362818133244403702609689872232553107463032425276644022374018343024563229368482833233624762377661467503838781639146176875684382313084485732205657397960246101403487566840618014720913704128849499780867413709958842009735119882782152783093930719743167476261238736078802696520687304292833762928449362857063883371958712542222652520597406479427097464529641212862136483093760421162706893853730617178905525121003657800340035394109518146282822012770138096169742269792411601504953577646658613476245731185360555685367354318870087810021841186887576238485841490154094903498907395160778261934819946993535631403850425280840920452648364733035294459386639512623172106811019509024448468431774556167473630363591715173787164445643952815047559609642535100184553327646217960059515012367860784675302640123941438719808632194673941817369230877931524866186369090013708619251210201713212190701115031363179669059069118105811972787322161868927979271470311735775266259079094483390242036221606900610562036509487018827760369371138254912599174950976614753253334592945852348457566327564933415930439170862338762863166681466448568341744327534809539730815043201024393610915427303998620435888464514725758137581769590223280099567833963412411301218283471705903119571741570209020011482933963023034093282535477000729726073069381913482035414219930558875049136081107542120390081312576720022976464045586203979613280737043470978443073723139827944908989704926644147421695860294425748397241263967092809455522886224237065362574052511887977184751456285531404362901885749754408231844386107292466913443126605054152123431516921131890036239242350101971158457494732106481474633448382321649815519635206904010017846072523291274702935363042172466613839058553499446214691235473519869761036263793296679801703441976725570451234560225103377760966723475361823428318591715318360213256996803708392102944376027225061503192584317920829010031373872341292126684136178016899964309175023807958919182365959274784130188999210843294387915373058036758317235936623329900833755311831350017975835327579152232787218490239544168390279366355082953283973008009425971844714531491978318247484898636959689946685123476917483166633770923914192852342598744881732765796168103558341457622367825260229632914218349437184923113280923084839662036532047264706956460261133585410098428347908182469705534315663318024832279157050308510431907550886059547394101871920798912476181174401646203876182576718095627864553386110618842965090249958570443266206176236631909836933743257800098774988310624394910406257776928490855111238264030138372998633437296651973257563381196027866342136357686233856958130248626043509184721880745715769548318363296028737756377582238147511093026119539017219507357722788600298768081807718752843503332175356639241162545611700178693779666633203086007099370326819984448052875220117914536262388684413790146331770853500648629727877554779644524781209781087089496217115519220285107242469644091554010945489697476362385106483101293104147832481539875167647776609754335509633438374963261911277644232367361358801066447085244382132667478008180015242890723749956385532670994460418559323746532817299266248693681197876794351636803661191118096825840798099503947396810294828974860011999827804909536056419121726619834902801654244133423895608166544651022476381197261651709641381025894443409771803508812927951511751399615531373608632130962722020862208640436765867824430569822539724502434914140050753413369599723454086742401123828097577225002019388264059258657116074769492923823039476344297720653839180570837382300655019267558557779001131656910058481993693602034658966323654739281239781428720304741643836968872809694276442367074491964584760131182261978344765960354801112364753823669123316887778963711108831480699752804981756583714969182191409354806471349486216320057412159382770138035663962186397145613742410736327430648267168707424409482042833783906257689690487891917414908683379960879705106123570846701536741866516480278397337389956065087767389900534529654864451969757804992072126694109469051364635738294849893215058436642036182659900051579160878800147613707453272981456183926125853691915672121389219423234239621719976156051374945942324421713682640686419167061675581088651787567076846211992959717751718980925764365744219352528464359402694275991784085650972451301613137327361917407483823861702448176642661412787617646104097869779572430965403371366020881345552157723669306865037168305585946794698210706205708732054786945184807216868264145795539639945445376924210465044451364817364052727458639998214702231770688663542035542171149867681070852425881786460160902754771492064775378967242484818707393322964618257725601582049233257663706205578977720150051537085882547215383460015281041471741792428843295429359933154948037986475606523998088823938102288338389736775662505908613028662173831710059256676782634721557764853514623060180869907338875516664702151190688115904943941811431686231405423679579826353551081646545260512571427407159667228550492672813380758196209209946373780617579167973109683500546336477703094287800495336473666208715691971705910969088008643563116920114521977218586766188817511578410655506061743067403892872656701831056050842922281882521529916869671236310507928146934823213278574871519454100139438409569253270744564629055737063824699648073841185549922887812866676864650776422740319627352274036646888935718888990777756164596409576718559985246237407389494656206830606515907372972356059517491045441692776028471659372890213456412565722091972827457815694440402108915831023024254167869869983353744008577214159277039988882604958122250786535405295352003437711120958902394990225817024390596144513787973088940506658224717117625097078576346730631101933367096720311315672904391595552345407473420539737709559925897167666558681021332234399914261189346196071743964948943069299179392011700233259867575642559954342885427770680037676017738974267482151213068733712238546656676301966784573735441202870789027465926248586671118848111989231538029723459419616132602181012559067273046426587607659191912968506724406883379577666408253413031465412605577160371661503404138146237829986950861563223931904820707514449368985675385658707983323834260920681671589419513637983867804478937987558200833854146901458265388284993718726811256771842084635446580895819506232037097227581740981469426397692713532566939516428862123905035281862171684431344562183751208009050230527194585575744681383903558302815158951084134779215237262757592125881000587155304004386384397707714410085657973987869534643834722579618254628919984185134029391932584457554853817571148631916892852795523151646806460546948395537074483869778017524517327453963213738475318248552955657213166500829781012478686398883549755004792148646158748806173731185035856531677264788852206228704428929768598303961779547144535093079296888416831708604301393935013105003279030848461605472281935458551690156958659138511217246715033756631187708615098329216541418325332239658179744522397701998346092205881032854634086938478638177434536159742640068398911693450276670206564147499236952571580773643251882176296926285151621953912315506211677899158525609262202807405185661392695840642218329301141595774399561620022174498572368296312291304186819957009247257099955954791415555799491840387005482673362278394315124660331407851145499448070218651743807637352690973890902467194312439870236913950274226553555051679518769228893021787385038394702139055992137073750495000538191827462942398388185844720811681271858717265597468504651608664584134688524926637775645632857160151316429417075908427916117818098546919192765321402147703391584339564822337982911104729402717294187196933203584354924725943587556261041322364618192259310605255678198185144476729250041320721204755966531702862331089776796793587907035833149014772607882104621913300067858749969462539824692144715387635664766687433479946052973233934422570384193491513852400878645296827583292300488049819142982130967223297539159645017821436315990562979465474068904642355883624364511713940940049967125840813960910786627363035394114376300287256162671678582413180577080530183934691003423517524440497112787228180073491290816127669395986902028626939205571477961971867891766657278529203184057864464375771426975196216756368796851946666805917449559285401346830792285445996111862260311716685756659433889018916360193925611885962247164226203355871000770531517312215948230393626247739503932556100661446453790752512235301172422651688835013863001200323359686837573268511141429263419892711930135656399938218375236884552116328747187343324237533565540947611650152634920547440984473665166506691538115409508439670795442352400290941609855080855765064373976679299238187297422415904102607468196931279594709777878425632767135928964225506934878119276243063613268973978531220819503061756504850582049539252458373763588466262128577016531644822962157903834389773533458007717951207180697885725270836421860410070589849133219359074061940622775418289883836874023124307958690060963578394142314933246403528306744192442286290072439735844004083281372178898489555918128599012716338472194524810611721124311012894308654273212711152042861849371268895311635173153521716498771309351702302655720144232375646707406061754934605984471156018842495368937645134101924056786700455405031807615304920811551681215998197632939631136006133312974928574535830287418046100889543509810829708033684561628251989643971232486131097588566387232399758041486478345027290179525196609278202902398193424322454717832726168760094831311846462271759673915251778249555449025026688858806446802236576879477429162840282390667054939932227069362483476751739690898761427176147198519525830748921906196768599210570853621175833283882541666003048769063355374440424418891206213162702370616813258048928837900245496438188231591546037414580987897350025083600646608890068712132625642674216322527881891133136732244879952220226284799013940618594240453094202146424605479802593830202064439355204693619495457479527760448942062001240801954862256163727640240514261380736457192328722182336631733469318685620851398171772688936300979495966664663501443099978848368988863320605051259578555115166776149728735314969817183068572185055560423578759992116246784264374104639268346461176017487625386574750897368736311408920603608679117340483496278463178112807442497070059954346083146761805117382778615761298840436201611937884972903825330254172362060210872426904609984440297239665761493782568440484972349510282758488556978904148915404124922556193821731547770841138257814495866235892259274604851868697306078416594930824739814825311255531818706869587805580613914552864778171460393556042421136140212653747222485613884793237145276735289421049687775670359531269166750548600052804064200777412085770435219422243571807355019817416952266800012065402602980091222075757661565175010436125715888533690909944036550293374480239207293255382891725537714027893411899671447835872170299803382964409602108859533723620500700212587438305796464726534648179695635183045477841467842855685575495738430654739100195471444010897020403179827152741038954562661255075288270740569781055923042589287814961278412546089257079274161499682113145027649221835919672689052630512807218284483620353453100461711048900642498251421923957430235775207273569150665291645443976782275429616682859915035046000893233781618682758016814355434929588164229177727502418860210764348211802545558913975087312133656052395628238047021879939338148795387464778925704580217828542952850822465622161998146198093249558390496708290500974055946526880055447431363758921941348260456238069216058130939843812507215464095030109375909480287760269184447719657660815570349168367480224423924713667863010169458924313390929228576804957243570639355783176695109901511751261904016820120655823900938652863232025944216089976647285827992267010776930903017271189598748503985137543040193127679455760074397932137409543200636108620062794959427365081907376740995249891349400468900814377747470340220483339619322229279703476037294258956644708082178204114240390094392602049263435705948328825859986459462268425567618339105223302349029034719622935404847344126554147848396328982435347942247840394818677494760408194566148543541431525433179102059658173362830264854424256011937461291704334857966050615157674639204739622244690706694430305930453874893322648809776562914768603516195217980026949948576221633495181880302826936246538082398858022858680833666441062590814127802152646983944337368792296008008616063687695184194446447167223469712706574416823224086733707257464553031649171246760344644013277254319741596949330765018187366622042343202697411194844641861027715812314113701518184176614922057404034457342674905491395426975827813768660248539246817011518110076507847089065624334202405857431950467211155458882376652071419728061334546820264987413800439912050235257030452374333284679930488236287606753470331034060467381235944117916313529328557631016132920129083095161483977293297093885381872830142456643056638679205393052189279300942876453718951012487331220724901948301994896420171504064091692499853009130817507958177514388210124438591787180396461480731281484910900264140215385558803156079443601823186462456539286912849238759735133934628848801205692213641024089791613985284447544806818756065538320049534308647264790507051777919475238528071593326844660779713273375077600932902053276013844233064105009603313059284809348429268485570314322282731000958422760859646272848186239204798225051878637533865560557631118337900861379279617860879791994014644708752764337158886671294555917128523343249716547734314007272564655505793820831357735828347885747075824250754631763196147715247793773447893050876868023535783891368338047135900545476301870541606541081718243227271123524862711832688580316937421385269328886013761696045592511519216766309070290916803364321192419923376667906510734645275475749865294743134022087949262428102340666374032438577806581392213455596588236418305220423510370039858589423812027737420355666581116437723148091639658283548097029790497659848628147459925654631345183522550542497595173032095704756400266831381272482904659446524289800474570273072015849709786141210311324554711086662373545601209973127922816804892283865427928110866619254138679380289065373067499982507350189605474904767578801681290211456913275414188701853849735975608312951179107125644139898645281500040101919083490213643420122916298783780859245790212598377663433160905708930036187533208955548694911055731470186127359849188413407973089773219669057602099854374641707654543174919035220977965083595515653221293919201239146728671506858202825769465981702458899472779995539425681022870739352239811600837184031928125386050720728038373558194777875909400041271986410908116544584655299778677053366018366771990230841017157497584230703268365563611172174601783644357114935590190512259325643931824827628871554542285250406198622686457273087605087423197558080901301811416482300410783064270758642848597039647424045221232685980003254451059139851392256395928058935986006273241175833865439579639067323602058871175320888051667449778774148967170496126555193616367888053880406012003453078230259413783570100483543297403265912944809912316371927273992135168703360154268725915793907985511539158749935879472869044749197409704811397018732028935864404036273365737915903015583447349183180350542785154545857650391005559854505659385847552681322829865370567747485064540051158954727942479523262055401090630726353926051314797629978738143347154708453355095880891810220309344175630416211676734862532705631357838327337679580185084257235538178944244955213221528695416798735710036906231866909694149246625478614864151832379943144522973010054118761045038794338624466388402756314983868927357022442590789341432874954483373382258370646748900239003299299045928273725359900124631879912189492207375024703451904021973238559944413920905044583568879970512632917321006272784492210364209090219456321694411140411701866263510600177670026755493363223868959445066410241221501091377116097314157876731628797204708085850263682549351958336373094577673495046492409551987472418945643849815661166306799761112697407665427039774496518847112161061282728427464598757496295970865085847005492852320584943304652310472884118530524958766220867018511142597039909945107638631966267932258722295598488884893422002754171243114341801445464962739531922541607172091136624799824153595892238712066683582713449447654947456033656665444220020203978716610841293866343664498168104403678465253843741136389613078123170471938288594840976963794040023720208057843005754917410156601523847056097613028535679184642251712436184033303912738152824581788922048773394164567601336141333852759066931373587213948041883024580146502926999160574586417415814706219389098518231346591638738960084136382654938879100685868238793379941379445181836879202888497550714726164651842825767002673212427987730379329798117946575631265318995101542679986266040814023704755227223588483486583022340709783991999071289245177265232270231479418500809437519565051848766626816129299847258570578102322081158800132681072713626082373807890404308153754921265207517091933000580263180478906734955815394125662305202190786037445118900209515300132003790882138019603061155870713209809655599202377179367816703646173797108412972448873575411944543061105126016908218897196203728348316428890607309072288674693394922809861816597188121087804247904008645918928940608831806889305485025350992201247964557916979292563208623145117269676406043887538062313345757026812922998968027900063602192294811454224406105831191808249018943703251775279360160289754102912170895561385553341323305572489952683395559978380238841153866519509990613750365976970460627360114614767213020754912963204659980628785775775364876537672465133456462901631651987767849400635519269768105568987214456070936003178342496647748302714206958715276586554213198753742088508276400003600055054100014295932853169604460743557761304855037616329578394799728079782460845823723084220474301797716258065578344116421608809769246719871389301581834975593374687106441194904597594817158768926346239355410070026014541551793261508120721316330176905022377464659728792875582781355324084745307727000067195277202645645139945460800295934299723508420954694012405055722449248920825278052440389586366055822723833065419385049641389765755046768394413472994335665987013443041879425387894036334299607291944192575382820015826372719497692808690055403469519384394554954051453119589835545349266344452802310935458588824409598305910892252683850646951142494014502722899528044779478683263857050781014565411752690723850179787886769933753640669913916484424935257035556450649870845834795174818171384697732028583659896372141252394485856242875101924398196026853030368788305463648255658470091875514860096172597680332112180838828094059306873917276998765506889755936316696716268121063447885798983543483294341763503192001875323950702499716081916089417732028583729109989257902017341512180212571630189610944154131752839255203248254698705267911749867287908127369560014544470428518106854293962516710618246511283973089470048036068459961367372933980506892819483490756678165211520021818613759613105618870353243594048712509017623900230972703834400991941439132678078268147487165248742311926256235063672263541323079069039463738058158660883464974158331381822447890129296222174777030141712959604502861389098506417268335652291600235127897976773773232553241866621725584829574003971155826514813368870451159816970191123057064769236958013888999530664222149091267301155270110068969485556357960162286422139676768411269558508156929464258689930756138031654281145035985141510908287392375264724321112725469788878258745128015725934841174839417738339435898039923227552896646481041415105916777442271913666869552179891463438881816267121697972158481575757487726704558062925927248423952036203312650646719382185869563944915882257173096950001667214386917167496036004629680090778064024378000108633552723375660176278144489626745673571371253607379856635583636876650827856674375403475941326100974972248675783568081946781043220971977829911186526226846009206290151899250238247423506189564573844699541450135060717792979919673639828191040558723565411317508176263153115417777683711102995490955223610567712813980298268520725273098021561042999650738731807833329033758255019166879227923163884040182009076296757903006478148740214183564660002487364994195881939481306520409168633149881920877580227352442268676874901115376080425527527341454123626468868983015702378266835211962453779087566715045655017093794057291972069423296650180702814433733912223734863149033234986437260646237755679906398740421771584959259247912956176950458235057770913376381746058888605550628818469761884031176049010148071588770532711846523467309921292242668011286973736865923274264745277096398247881817726040244319815901115974507264704834393647834923276299251152713800129951088011990037966076275691827749091047035345696741021497995703274903847009335748390658035774002733461814424575192051202324816966789633325728037700715828665168351236179531707749463143375910758172055258855639438200863438863049121937895908201055263878696986324607016568810921505541903812217509111055122321307524885061170268403709938756014194977364472710360872348868328390808055753879325283263281906663143696137501336007009333091553081285326428168158102815321716361195237627165225975708395604810806891382288716405529293901460942395355839302687015160968502494481896333122023652196487247538084447478802800966331989469140968037044036832800494569007671993985261992997226472567352061798784163250963842740775862483979582334704989213638470266240349465685873216466076312709440902584129623434060903156257506747003095766289349758519650499155302820723019939651241171417953844586108670602598284650434986107039528249491068778117266010533837094400863132521718565535331409298088308489667844974522227070829028526099495052398511948336161170949911924151198309387873075540799948546444701963726078954273059867759289015020434271300639804767334397053096202072093624825519102262957715817344309282364362122230720637094894781624864620756676517514480060787112043295646481517839971853172225895937629501824336923315247635315149123307729835671509216879646306993824803199142964687357127088860494400133930300532381293114651280337247351801379843713420354052793787105302367560659675718862720970208872649730375620713827890122680777318901829607638897994411011364201923133688601193926137996695201305587233872269611254434225293733862902184707210661685060817579109983392944275677063580853436392071755807310923630010635429734163924394911093014330563331294078125206614280023756545134939243829642182585169488749765769875682257051292196844397246600817649708945589446084099721345532281197844949716609477009880371844210517453181396489367330381607745317547178415818186196714495639851137926294408653771134107190747574508192470543135072093487192037924563143372427176276254674089185593842768518710743029542551040493604063080202370488716979768908727402542846301376328098574717522589505099764049542650403748195377130854453061312443275055955629780990792260896898498201455546800653804910459176647823064787965122614982171864092905701713503606044660991577664203301168066064598243950973214439235334293561424558662747166553427755022621679147153131927330458864463403872547641616619032093190090699642798660316157809425764103673366188774208686245309550635615318755858947506580225420051043402997006545430259691831268466815258143640089649723192956123735609843685731608368626488380833365917831231361108071215546460257083375990630762521259042266777536785979121241760640800688689363202813131946141546685126598659316458671189173190129077072783079679694169775670235220321092281200613785641515624801450310817373280436411000765841975435602976555451622177838349761333777703376686920934490740550025286837545743648629947533874613796498094455946331310486803693943425194635167146404498895549078468741422655656970500572802858857529433099285145864350864873608735491051510793731379272416363085643365488962408392540032830843630842012825642946025352022465545118884171108095185839443906654812057625467193342572601820196264113519651268395885892742922024419731564144672311201452671074809695205644754048870215093683529152109124032251670092411608768964785224515305472231951992353591636774008795330019627378669491298733136939951164543485562661060816443461948457660374129783085392796083317428963791719977261278280147804253547154665293415898871618288580447565833818310062157898889015421658044264716196723524627569769067885902479624081971640742955588745283334321658644761825874066303122606792043378053321740986425800911636476551053214765273422347927020132831682500786715733586485468156826457066425446739514183370626246018705569319253462792860806143469932264436001665196461725422238011980983493784669012446505620455800496148963177452918797518549716331794007036830050913200020707720927173155587981169575180928463180899849627492969632851193803181955373105977198498882812465845805118292420149440659798819798996456555569122561809600651928907593957127425222106072313901225265474207525131544885948767770095972259160647192662670953652183006427947744892611638796675083376684823173446673346290992907152868237512314345820719273272366414638685822237674858145707093944431465192196764636250273670218033454200845445737749348348683940546526318400271919119731249263607147048095840106861091258066329734759786846054117800513660218079354918107010010682739200862373326899207471828068653057050599858481771189978049262255787352956630106521227512835176093467704700648360167484858625318329845532478085581121206636695450790683528669410201730649332347632982004210037634628911304405565896110984435756680744673889441644832490617972493138135815787732422531353698752227814632639975333789144051368612717969489471668744359654077413103765035508097278714083476962372458748334923766531958606188981810627655103199767041105597966274421622870062858341831227692570182724513346273736997787136149887210412400048138018437661468491219650457967261607921353956271921332521515210325818393034937044254252112655028404806219094376509244099700585093667637471029385766872209802843023912064998254769235969239896832849638221097383840736485984726896964566876531725943190336470199198702492883570465025534726179895589476533051406932905290904505184764324443187654527811736582292710485307075214617424827007479515062499549538140948688306567865498301105827712349203594985989472813379718302093757960022883073588432295140687075509149598076000844592066018490508661703309964896588162480420456407596040591121465692161408910889069024855083563312463343140832710354329060720402417985378739678180643381686849352027113417491297360202193300643284192304872426160603377956333631031142154154521452749769284842602441833549301396007221065227880045564094564039015316428735221142531218343964223509368879777504009798707026688659577112545701773123708797661317971900107644740921602420746639127712937028035328797839987245911758509275568950833971402015894347038205452854982853290441591534793132803488825754524071535872458826949880637831029943956751208296720023080666051508358932037789660178356935492421138439344986486531238072480437792869463401118019197471066193862579936355043596408892404176821792640497728329251879019914250827621587546264535997106267413130373746795589134818825483244998141480596348119785749615663906965551211322290009792768885923610679080124134644779780786972621028395070517896068074831151083289853804986174058376923205119024518726184028819258534901558573757916731811912654191595519659545378007508240407723997730793109997556401685757882205842513482384212793983500579217691847827806062713404803592775531274593786204545317750222958820127734608590545686287832001468383587522371652048601505801994724256565600202607742758624430367749416502544569681792481652311500868933686008033652459639519120515373991932469423930541312550834793426024948878651809343671572928633557951034397592997949046118349442929234969613429745790966099586035666091379172199313040780894165820013923434445555088831899502450148189681981753934585984253021878157484086222712617486010030378950360077314737209517474839327734727664003684832896211094909139617014233901223769793758925399022801398075544960113305031292444860245198231586425046967223352114662178808258715323911098809441926795436801864023643494965185188879273883713936083020268553409398141256094552842653842307397403182064110705107036181100738432047860247021746052674357168920259504589193885083075530235886151878789489949509136584454502049213989334802160121946204825583806238190994035665332610643802136345170844805919059875911868965098640698040020269819474760536311975979113243926454758206494831677095130530065011256034361347045542538383963373548884989964830287294554288458042643318040332021687861444748064670417311572730622632250804824391008082424606224008040709847856714034051513904620687467593009284915187471218115810874863450660595786889219142035549764572858575608586091068317971806402847756106890192728159742819743866177028873680883455265308320216624401953292045897779459667425772695769414133774657328197817707235196864179821308011758494100533764416975877108934964191562686801090193864488541809732650542640593955751151111449776270912090713858992654375613386925445430824759014070921216978850353694744261245603519636862208098997945402559427326963101296379858446934745645656253280827780704056050821250569489299579467961167185149929334453248644339313192902292771692062011173812168262046692014147980846961635762142448948815775931931199932323096464074715074640038319254033887150386228964497292825123822020733531968165654548126492022575043046498511139145953722828316645580100722764161247046521404930457394594430413051592908082765986561222407091652374034588089277405809021960887170309709220772898666949746007174277308382164276237177112804590132151921038290158782230780672250087852230813408359252672536519450190199138143535099989020615127662394197410757284348149180260484042544135806214421893198833563830530734849073118828295927411296242584589599340130813749106558161152307740761379491343244781061247412828869387082118390845818430885419517416455568572181014403371386611372917907013612829551112835902028868477703281082771734434451497479794451734679824673085847056956064414834153943800519265435820251134364473699113709919775565093957269969432719972281937073530126556326849279705632948500582758245843182388279279010257050875653180539016453726295252757643428163925108888468662699364115377675539166638744197894666964444705748385373295981146813481631291069815444858186968454822870341818315018983798171790613300707223754454806936743287203856061500289440384216347767261368903098123677217830630850801897030898691167946883100241450926942414127668472766546441659057955123682309801821556381944390630633040117809083681353283106647327008366214230051507300691474507875767288470665710221775496090565135751457753879147134394909531934699023192777160145479950607260036092088287863392085127354301357344873350510789377525531167332054469316989391299216282556347929704387960351480155387501890202716547274748150848030637064943703788195139119526149280932494303310507713623559900330835229100338887578571038983947756632688781982219471761955980483670579544549905487977717561503888308645880421961154873751800863990210893095179763013193562814883355101771606181832451651013373849338579541507353310256709041042009209822218970313922855462261739633163354437701218038158536431386010526924507801943937996768749012189908230986290056775884891078697607528595256270138651574923201840901595652656635375559679931784218913333595547471633802969439811258298533114861679585334661625807514626111264387875236707132852922017842851921765817652506384491924524907938666697181708557831598051883350655338131145184059149699380629936374362512225003043774408584329711122540815617866929478751258587760752842239552686791922991068007493288105066178036135899658637065981978263427047145984398900605519199867955540814665678994079811869776147236525642510955487902234909749074893660052669226726635323386343526475564197417716749974717074509106488919648984797594777619105671621045049279244557336513951005956689048194602634051301416390735197322499963887913477289622783532456087151494148988753223657483863062684633836210320816672314616458281460022572540123980554762736124503156136885890408289256355800753783865773648041254060453652217555579882361957676616561991095360874506356330203576133477641201394287047485955383809713082124833072703924898900302522733660752770117894615415278095152864232519483135772103335828692016257047587878598259940758336177468128228994487884025003737114554973348907498364378323929688458393795558052373145001030932604934733142773669509600725236869187944900487081896621918842724287208117921746701109025334895836543831588050238622231960067960080630679801414644726596536092928180707261736837102812354988520583241157633115595112729504881295497603058143935953499162393618850910888723011532990975998808139371333920853925164270188389604324158448138917835851726027071437046064457409967061574633865436661279693861994241112833629763205550261585962238559653635173651259831829610271157843991350502475706114582180159026344065902918537192414635750317582249414824640982972572979291771205238390405138130515403209873130263117861347461810831065908025660594346315947600949462322181493957359096190646509093164033570334352058873741557533281906041045888523875475521230766575847584373807586134712444411408802768023318934340443399417786407900074090655978392177063140194814718919268676894846863755748472422952943291975815628237381585381410362864673988786210260912573444487270008572806216457990969058696841510460780543568103846419902811905707081509551159095430220983937725116487256820619014335310604141884093119607732481930811189678787121510898955028839918904940985427936268397888354674088710090773681285927127179051668335886585170602847780993597173520430377029160348710451985390128066362756068638175579961790614422984998878569166132341979266902353935816117793206336352783675829569850695522195668569304914699212687729742770436145130197331351277661992264485982719112591070651751688064351732165780256558272494484077018130942636198245292569245564440618608835563044046848149282066304936311979333671165305030278595930394677099867264663096361788607154820089386352799833805834005311238712449879601715689622042523534731535973819823659661652490611249138792690655997800526897050794714506874596124653917542579002706208365709292884455228808423183218923400567659758686419419928385296401425216320360869139070876452112948980158010770706032607881016109627920520407551909152490288670951539997327311069438631890201361965523733446216920438903584751340841480869722678611308858739934241788155479984343215157145274433166788261928669143047118846117242609517707685829914630047920602211111728294416785246479602136004481767459875448593055705056591810007995673244090659395231011376023279631159862522055899201853848878227375716376638624954945753055910349187610829407814643826566526224409428478786169698605590652725323540888982842098053121751313445091716750704547336562268255968188599533244788294085969286732464786074103545462227594825744436936915697620760655606054756365092070217548679647113549780619387989621241146884098810061213273018210409533122535621850082684675794766730925532650949391427245065157037089749337149147281829211468358179317418892442415532266611644871764740192338284871543277595669982331010814487895914028598532402829230691962140596300326894136612537561051250692907432972708293582173710511887469351658414240124215295498347989910574031032592231286516364281415380293372889714664454326229164218996294724213601401960042588341216715271822011329322041380307243559808767968945503746692700758045357549821300001121227286464025470421849649027113405634502473052396861909750230908300569425831920199354502390687853868139436607983346703029567611754001201052676523999480418367862586245984209733645186212590912602095937167684479294355291193918613790875210042643764030153290417422130580408307560811290668399153566077361258524900847445254419045544925182019948988645563318203145198052416159987092817594185489997803121764035112673119943410846994728129544019126978885058043144744296134395142658513825603161461930713743860126604067770600536678709439395879566633194583397583975743215282265063048037673521199220283125278764457955155680108381360745006361136805175183523211131184552068230624349087035293675757829663093252516938454106677206205145667180220171550498709964112969259645883851051439470508200023459415084886343543059613257513851216815559471448015382325801107506051288287173243001829374037100665270254942581186040555503961681764182111742423336783688872044400864861200660442852042038577298443771301690078281787362696877379261436582889322462408848727674344591780072485909410311915442075294163679929647629979891645053086934819128212781792201204973954683103426360800645031050143402630953109089696697803791060329893814651163072986294582375329175296454887297759766024776836820214654847119812337680278065332401222922908855284210208978151793996425496144874636645263738996965417595066243649242504902535752013506126149519852127969359327733746185172364778557622539163653985961456948571257093948149725335439094041817912938966127625180070181017238108756499117759109194941882746840285692394060040200959450292473273704519814244372829946426676254287578468784661273548507628435358229448524874106206657162637964182798069033065244518893459864346874356527417269395782997015070679484441549069941904123212263240340580383518346446165998235067851989601160044774997524215751097572262716704172614539625959407645506794853434432817262986178325536459244169135564662385264373520991165507941876500862280682082654217699638329717120911884785766320111703100301611946200826300616556184070683187724234174054701647740472956971908351486517928387558245387396304820974921942809042675166977831065947746086926642886626917483584399474779010790752447971654449831904416454245769523373944819853576353025006193874883045589270140911541435338138555346375581309887024069370310441231778785622905608668815934424369995517116048507347026012094235304799147803040357057763891811257872765376191322933612312949473623320596914733776307087903963966985947213045918567681400632724732139465248311047882743093945300093481044879032978371806381572986187965229131485573994595050266335957314779244364590137453742934832391123626254375629402454693420915742635931789483921029361624282233984969358123840237127157020707440373712412630810486453932205036430671131127691863424584270417631221598536882950582195458089842696521121346589848516677576494285795364995412653701254919210543182658241333401312342994451406864754477755399544269646850325080581122156513221213061144525920688041004021890343597753886852937090490199460562679242045941473299888228755406532884881293487463366660693030038284522522828942491900613842902021707125025273971209847047593160456526758290488997230340600653628841393192173302285853215686648456741518079969302537041778185541663577216968923489630203203383321975685419691736210091185192456432433937672120189880186561731035753012963314355298002770506237337169112452815177692634323344294961728467241349871564572778876065595590694612943776301825824666463773124125982155075861489110352222880511721072051145805541524574596346533396883219412911787805779201307850459234962244748364317968292831582334637932192549625708531324905312532685638418631874648133581307999162339574806225833750925275397657496608683159529450652321789345227779306226012529681872317583973210826838055759900205582934134204282761872583871098540853012775958385769268125001667024033112959698577250939333074155543081418923464158565563238465502609892497884764190732714197778656182867043232389331965836187316139422950440574269119432412670967660569301289212572942484939032034631612447528348610947891217732840279928532852125826386340575294526246673022260612474412150155676655591488741337266458257920048444786229843876970948752827772118101431656222892585565805621365435342445284564022738142844320151931139793723445749085814299854853357653469471745094473784008997531368124532504296020505142948902611766305128066096813222159651258499530256350063242204896737680057169480090347019547862569694344299472242242482372555771083485340308114373937412501902076871446738557860004486630605907063779622065460519165890373296955060377054738415740764351832010941841807562229578045138891516139391266768371793977075959877144642660944416862899737112946288706113837072168470876716084396261006020363758560584026787783564998180749022030619355732371466790275943144194169557297605951364367148793314171845880419587492406518068590721791817976956576169621575937811816982739460801902389711783059869207423928913290013392774661434206824277386444003071122772548970799363191044330610593069001150554651000745379702510915718447603635457238957375969614195669086625973005473685560324363796015375269275435829231555820250778281548657074659959119410641592397537215183480385908780055574968339278625887101673879814844946880271825449180122125527249772012222405720622792959629586698392183720298351148783259922828003996347602715257549588483878273249913508444095568000174358124676023530509933662996906589699850844829586545873520955924563846618732254286278946455859815465656671726857943176913102011070895359781265619891304186351932323551316320243577833855359645341166598797035622071339631050433538415450628073748728393739784418520136413945258907767643196283560035977111806749548894841049351293192624503541146082097384568548869030867775467717746146581591884846979819571529239466576584185011870115535534076371562572139587970802902185145160351992728221451257534987896219360501333645989261410972679821278954827877806537744606664029309632225932220220799415182475094341501452005182287078696561545802797565989999607879242051544771954151565750270752406751145675610871630456960962371844094431036231469010053621728708797640466232466518010809513060135285705607353271557958291753931199445281848749100022199168370074734328299938761342968410683070043948180921252797999786813685512953434456282284053742867062287888606980377324138215992277767382214476427583124094024504469967969742523821563515554113027928644383383323241956751807580590224683855323665284758936236995056617115302035533711567729396722707349473529082695806484134767408361801546761987357264960529653516023040940652162007009638687397180831874951394543026600256563780761064544314111812960167467124575209835254521682603409112065991060396548911181336305582547514266027450801783915322338870651957559754054270762322458539107829962816693910937763764080641796896939077552693657825568309240461060004638396572002098478659856266899479519579426493886776161631871037581370042652075734827355991160652445908606429654589300292345052529742421297406837855758634385194161696947215428379625376502240489678627685034267560883673468141554860230049951034421125684090370971505923607227459001237657549809876413245769906332202692601694698355524099036592234222612878398312816728794360405604567183897610833325618375140683074818965220818970037290795805188429547241187569846081904037930787115702243981370229142624919806387501084359400291945483789396090915157154785536748890104560744689792177986636406588669637408235287843439789537254203591175468114123532678867097461952649496619965153536702022706436746772618998471564912893120610084080234038358202609964549143558960088984549512707145740065258504608325377210911034653908456551100542497844869734652377990392364908386467009497157707775268662571664740344555742959945575717339921276242868615273466650712717963328921190476240504776112557968657149426921536553461876549020343464268271718941033718467078440200968551442524804912823049157454826725131332118128602776499654675009366736558951077430872351098641986392501220058832059652742739837956585143243714928203432068253646338706472723839629658959124692672446497370891737554385378647812234333506290015073697413712814379853859021162301761860561597451112474333349828966720061267910822334856247313610117896219531207934152096289100504065154646964951143460197498839346341505692875788013786048795314635799319912973449841209002640435141045721176948404595799597964827479139558214780323794118661791071595019392341932617284681316566193608070976974605668850053468297167107044351413298271499804310825546872801419664306546378213780206584958915624921082869358865793264320098769813765649326617194692492594934297150399009203384952838360820018524551204222782131209240225033384785425230474473730038230327650012284703679147735060991797603647928122898403704442590950228064825021067972915847098706664107282027423963439655679732808446729887123452505030573723222219227561157305301739565267984979540202656811578696394879800588298812794713298753717073146646767454896672673075882383737898736292494149695768896716330438853953590601709462327329595569734711185226563969353714455416155794950395607300922608761665319397029129692317247997025666983924855771698824200582848193224684296197437222968860392520379014116837630475419052220679177381269007429837053628153085338960349410799861303183788412635671557957886558578068632406639110865693250852155940980226225284200652306415320406893333518905395400312572298646038172778750328453483938006734782876969070407314717225841717323350630841024478329027321975749559497121178083697334888966548218869471164090594257498606239488628798538812403447212965473162277074667110836686096708083387680540297258264269688564879581389105745269107589250973409544190675456409404344105990559578042914113603191107301434327670773444437166377239976042503786403251580056067050377207839214862972096676161237878816359338714818188610584702380001952658448374038738138825717410190037341808279210312603129382871567339100668185334375651243358606726345993737154126206246369385478389627198794010838160565656963601383748048073005142521775839771715404656890073687299618745532732992135355866346737011419770790282271222019770980533401183351172866314683383353667545020348290265164074498215339457589092149290089788371663175904605717745060497644935434522709381669702839890056589842695231734284361872984939264438818640486696701794745706505714991716267672073919995485086837792057423288254459329198479272466217827811204092041673507607660322585451532975455326325592129228196872974711995569195059960336168277673276064961877214220716007754841402830130589203306228879726320365579596680531139205491826552746485154269347591638729354356663473394532398027219237467186531737788978442475538303328370949213638893679816478220490603157892309625287607782699445976228053650323469435221137803720440575260840972608449602039212369725337815495242379168745551183816851009193507779794660556108632602202529455851897349039330830006410473717354922487384663345639635776901555533843277614322522010696350394427682246315236873474832666329119811318889844895540353753456190848511672051593010845774282303803799861505564295577464407244520458424758703314541797926213402383871255548387169213752124026439531374769883118732282614521856948369757369806556968246065113710128306259786948013652203689219713597654925726153098593666898626663852431909706058613628239773411543788593572708038226743216112234550105591183621086823340280672157977561187516853896868242750598701399840031774257686296845477879499280614670014748119877379241971126683351704067203081803091229429870522639635546657008216602300492817423080789741313333073314798808740882760072155135361923638292645783238496802033676450956255906660666561002276523550310578280460890627988166710474761383010865681536841616350150700051617996735106228023998661599045646688134797243738812295199903675053112265376856500822709010305761327508829550323113505706988484701730909079874567137664923159766393517514390327169464822784207245444039966926483952083736450660913142853578083818695562360418863576524410048969512373356208599061674352576791774177160410832658869690158267028588481671777389745862785407590678693928839697920832764667032744488360059193232808789402012425545350257687840265005343914412395730591755632330024187336163648750519464208190922920761641473606895958390325441358956748306326337246261616067771699076022103825234385019969752724035465904598184253571181690220270375459196643027662523361688305685298649025393687757625699520919979866816776434381345060916328586753024382161235795933162135534240990303810580975492086686809456286905458720372690141522675783472031624419613168097743731875264235237406973049999480562584136192411037552991716851444562046268057092227093930872471121316391864714935211253685794064489192505746047247544560464121387973533572492029664854320965191831059954373093187705920380234036651815774688120016805624348996759287591359673823179501094505291001502703340126073868102084660185847532711813986756377241346502690918048676108677535842227032266759504640035952639890128559819790098559933077271602275942532765608318248305870330023770249501788283417946230115191757383150153314929916100341891964329859699559301610209381635423066325854116361283509740352464239897821806941814482484336706329266969611812839063152134673311872160249976026585884109363889970871358354841220189554071362607486456025889374249895893898937622320250749402965228247376749425606078356594435022352892444417822509527568033218359564480762960134696909097500788356275451356656814340997085007549993208955580072561448206210153876573911686792275572127864892846189191672444368520532660755586264062572957889864642219006819246449505151193093966264926709413702306970424987087764379496629059455140789381959146041746670004033518393236673296274677358515905100001161252488640421426523337734006073325368602600924724782551091884097221897807208741864900739533136497562538007406769366030032351255173424237278656252153153154686885552746662572009203494175037316609330606790837334112915056343723955780943982542385713039922563474943719681345905035924853909396236006105334232325136865209390728455962386604467624352585355528695106002583171369292596523880386724299104555830704606856884372392067732992246992029062495767592576814966990677285194983895534515476853240789455956907068540674300768731430103993673789157860081420748664641569274081347012891548560466067128087910224442581266716157601516454004526364999728090071143648562852685059428683981129147062442153178134719463458235940512668993990189834465600359598804871875589216753106421118130920744862015879361975220452446561180646235673853982281603134845694392628581560266400712639407502258846096076583113898296007931139254211209475226690791513910579840647940568437082684546840163524734252957802606701546064130588468987803055761518886749284258275037838712622875454278600671296761842288786713997531636148689756583647411608837785048806187650443370089157139197583647096815274114262787967356584293807532060793859079768919272125651824468220034992109555118066154857324916755351391034511221397927369089691282314410765862253497216972226852815871021075193936674706124150714978979442536298980230568891355012088642558032018497332692696961075233193534691637496856776700120647221076687503378196866259697941847640954117807596194474983204620102735436030675522605139694790459641146292436499379677118322717831692562862668568195980114596559379770300288004490251675964120289869687695180600443927895070733771100376816244472381899601325975074995816899093975827465530632918767411918400598028160709840701088510863938988160245312906573204216669503660435445755756768068691672424398287319614292477173743671452064197885133879146103350137933883455039506530615334603015462718851909358849446268445647001980044157250743580649847522096151309537351398389686954067815515314653067342075663601512193521224570125266826398411617722736450757824712991815912872759628640579496978890083304111154336047469953830550052814691814640735734721208339069927162716463676826635225345568414539515884560349687266199703241222937934769858570791650972873746491678652822866909141784653225297456924723523770204239219642630605330517396234189840300209971242904335384489374397749383792562260176779118564379439416660573219045032527802729626696550289005153471995608712097621528964202322954172316441444201583712511327834024432591184335863318085128512741467629088278430735346144899967337562183472827855174261688342734939054728467639041969063756891655922807318366751784911287700249574589614056135901342361312569157935146026552194202018903525122815870535878807013026234175121355588660593327049504150136134992526942799585819714767515386934916387058260530538381625948331688011508198371212214854659285477295251456190984594294153739557009481973253812475535459038373730610340460884323169726177430313153867853681730952708582655504315105388880967083060999747328385193091133283069688015996649876152525221346930243674463242989786740369050226240353877976224715974434191032303718381734283715729014318841450155461485764625787451034974378776456912419113187416606220863950350943591457922229713998284580061989249100103553269864964451061221218796984710367956978429660017212293017243385503157622645128009929211518488736172630574607124829498461917858318300264310444941057415395710904139236354629861446760468268993958140640884239053458866419208988164871821651920113541582030463332349934047410472903180055756131020689805739864776483694723599243117464692934216754523700839043521128970766544498136922456469798297407725753677965215059928654681499398864845537834993646853193993664089065027886191369400509006654442237790739892025734936728320325410471978244526221738650916853428272786521418212484263702669533333373664194696351073481856520981585328263270259784645325129366377701344071566007481219310920261290445749013778909704745616160102195856778788830640144718926805411079850091852644172808910885497541359187787601804548755130553687745320487866879983752591419753240386672377970216161307525415409083421827991969254307256753876223217366540482875289512634734235851685115583333725784869624758050602640810600036400561402282173860516498712886724759901375469458697189084187023332666518905022219967310836177380665443414940780817266483724365651442954941945845602297420440231771580397065378081659767819249776594345825536444196012583416960434739220586690902046966941246509129027896241416014260904151777755522655842248648187367640012218739291643821519981863473293640210521720610683509823192649512598483165363832701676882864715310602760103438315372299172530896491144917935285237474101292276406944901748744823577953584474996781146647519905576827018603480047470909232389693863437893667523679444481574765689259484395362565284872043015511206152078942849357577790720848837650876926981032555830921933740719941722741992647823173401456593988782292883487983355436319995595301330111966270073744031272661923687591625017592353004826237626645958155017552484489158650243564620349138466904856161645299502674090653252772058957392601341866673599085301162728675648093398368936732939197215987212621341118104369386261531023124341611218095631424736426843490300586470620703972861695312498206073072229985292902246071122656119082605713632554555016391726277949865115827557949949647392130923681912667840367933643400863591745482830781520278920649358377247416998289099819906806224472499147080805693861566419290982995325455683695254357610360331451038783107795552600567366961062145967434226684298764566620096707872161346165228754023722292028289892024567327098277240090254389236932019939529998884174988450539819283769512548705460099668619876550607136694013952213386101635613170943406986147045505019857958690407209283140335002613305903486508048888328002783123258492860907266498878123792328141754386836131821787872742000987103997016966364382689971125298643692214012644165468339613816128881962760170842946985683715888499551644969100246628510986281895576573187976818716581202990060551701538178687055719840581599739067578477290622670701311592294246716359064861919921804659515021223136378721149989190566634172477847429081870712024279492391492150416363009352532310768812456724335342837933780436132734090435691349235801021764775946750162029901122141363922077458188208061741536290389424092069688409956356043641842312220715572482371128143472066582644825388235551615606589740916012732231345256491399222145615288160927378093506850470038251232609648694496442608622691761640668789125662122024893105447808052941780200371233845558424054106783716341806293633192189612407575804130480883351187477032583242842023346876378132404308724672146484196566671328490203612462827880493766744447434663871131767176035098729591194489187337463936916993412323126267888632751232798485668717130719127650733843598287305326378106229527612809572062989489541548814958215320736621433971487143544275606143942055454646376952735533171205339687583796286993077608869584033677367761725243264159322467382715237802463262345201026025184059462026914142813416606299087609486337520838252950490255101533497304395939213983594833774669839506359998781007395287063306076764116187936822810283083651605366871374365758365970609687510256056942715795350723169163103263133272491131540001970689070803239629249559012831583588478689108422231174988948820893767555482437575159872925587565855286995144502180074536020229534640322818770816887053351822368572617243993875852463085196572443930426426908325030078026874105414350297728041417452752092068747532808428324626176873390259964175811111098875955274646766001648900119728322520030887912222230153766529898404305631243175802505894212355786275227835083272937649439413895079265378287146712441178502866070627712295000507467185297279921866803851420042671524125912517898454542758795008004762854166669578047606719573929294431918843598441612608813565746693881681441449048890834023591513492483744919716095732145272046166249552065174103110576825219288575693377389836461070321011036325148169922998008930468674353821086795634103415134306684364850503154616455854638847862818705401505755788155918136011513860302957489535511320360435322156891791579530262630139585828139650910966904445095317824478020933407659167981030128032370172233189267370157651258067686648993879802285382639017157931274709539764205640866641826745020073465790914204417102589190107592959205333639876884071435782346463656076956136409945931316673029811487852749321605450955764178505279560145123993786547388564867715107017884648850827045151059610584013818715717578574818837587802847515750619284892681972688011065742086725911819148738359404315244314659161290213361951624503101778205496342543944197082535977622402043335403693729275747537495921436592876630900330765640571865508818231844104704328081192130667897518247140604501018217892163461296407845150954901451990147966626715243827398627280104911100720511649680953427747622968840690334353224724404585999298303953382612894991397881884132698336684691429400868254641592161437037080347204519419928452712346781868280538558680375805699305456659372906299967892803481975538609858563570163300107515714833708529401644685435557374066577286332147940950179267333068194228700921863497727632198617535684396574321995306830621084491808125886725666992417805442813663416142096995502429903328427254271917046802342377335154978801369183911066338303494449645423254939767520874279555600567364858300554691943584957618102818540930582039685081197358137084979209855783255102415674055474983154070461711664973113938873685534436899104062401421475107588044274806894467261458277490699978995950641028470618593124672503884766842910184001571102573385858428518478559822735554297030527782979911358266489345972126399443558071869770815510010451461436312827373569167502063039088690595730926840124284213128433844746194658580297419556787266627500426550577662481265004067591423246293527498953454505795654853301021017141703885623062583187101456906738780833704735746340877696204476101986833161837296908153007715967326185990335004485375398304284920352292294570258407951607724126393439555922274055054829755591692308032175593342825572223913268776287288820896090661814614686247691181823703969334703291638495207263454782066885571541213212161196489575219414859209186226145355941033424053562921957763867609549808814035072854478185070309746302161215680863531905056119750915696818959571557138243621646243899055343317117956974763925075139749352017035709649372102778264208132336610427029900040875319246720272366260954008142041183424899783932910861525557020124900704867937776282256758386546120139970915862021391457503735738723322414877480782627624593678454481793690083766227360084183679187742709579937731564923004187181370934623625244470105760314566703593063982252641109749227356155249793673396815579630027849656445258751922041463066089602353069367725215372665844042285221796881363133675131629131428477240708288661000944839014170064742164794989671953594773028705630384475669486572590482059292997996269826396317314313971949088665563598524450723444752522687097363322386246568647791145841335020115869311456299725876715952271362688593262116886254103952645104605725218156160465977353200849698126499239337237420699918007211040781104860259794269575280124530406899508854047312321586677731115571784086371249978536898164500827368594113323632993369290782158637901369915671133510276958752399286883786698697133094621761160602269362636067103556090768998029537900613725110002025899944638201249319945162276442193796774891781256858790869888172249490351493443713549493009660323827360069591418092179544870889570555397849569507425609298576972804947766357816321300053036425599337531625486549106304506767471370889133872012886203969522608841882107794500541777406596592056849156568430555159306364938891384084822147070081571140651656966100444576882357624382017601744705995961915387849652616697136412627987008336451392590857617621512899018685330168832046123974377002431143580119135612840976586272457990969918404490476997763577603339147921374026610211373674363362093633523466310757745563408224720726163946284029256366220407979726967873840350713427754418350090542695118641065541054471995906230534279743111442761392964722631687218835669184832211890766216517255078125528454832299572829378629046706319135720341098800957460187994635163385927479832081370607234810241073597638905568100580455696571936806652206177671446945821116880273246963536158345444258046774910975284413769498845550154020670851147617604711711736095523041699276980305289978515653275169858327424191923726919167883589150272339992959016363606301801490769979604413655875881545916790090816924837808870100560533551616953568997801815822136545541352830921591627934336496111940567283086582194707412943378568171809154054298829046767933953663888335927572878801772171402107994288226250465923827787850894917259686413117363418017571771115651393807136565071179135506200089190958528887150235118712124994100850776720784182387148693196353079885081418044409263956208947717493003409544386963155800259766032991285214899200821481193460495517342540983686090793524081371682558867683231504642784465203935205354814243132063328790054371214077504411971429951585035260560992924265922462190307298735607046197789377434861821292381429182516373613878842531671860765321370810515120995267608778513794884565489416676445580869262138586780726676035308959066782840511721129313623430943298585166964799622101716275961049065824032482071120135942753559661719299286608194693813078935662822950356106496779511710815346353533325995322428147811113728336373147195222251545142015465153097867919551204486510615319202796572925173844597291796710328550413138401877752156697713882283726261468752062816825631223554493774877528932380876565558655687200911690961582411424984292238244030026215918389913215151673805314771782481475330507656380446595211736714886430228302633181700815494461631963342799414433038497786492014865545924239432836590266708831654477479535720362384018268878014701364836884239309609042737544956850838871928517792057211100808976622323025424811952576491901520518908015389790614054331774287244906074675765386199462386977541853654325074404735335313587941700983959612744510843761179737553673268786074890451618701673217105654661435381742730672216371130511527667448912367995620905861856362759128796455984970081104316841619451335858479775835755512291189738803350623545081111630667197767179117031886696224398313832381151296876552953782061751675170287146242454730649535071926123989815380375717838672156298695110438597316904281692143231155544999936447116439394303682661882536073363786903432190410982226585912142011324924094667394316743912344911794621355665737411975248901585053701802281644401635399698652266139227668061374299152904886722210194128802181136114827734365594148832268624628955326672652094707073632502120511140649135264719143826118978893653116380454501530819962837777246760555700546995636803587472431919455396949562269096181675383860455335068174066991122708189670592875182695200738309683771538941989209940625642083104499671719736174064565291314828908866269947273799522430802406634900365813785025819163099637628114080506154232247667223238223442644059695962917233023041334835891738055063778548940474595031532420554528605874399798288330480260421623622284079629104676131998649571015050133458625991415884898920111996166678254411147872130043350531413998236278136245221797852519329519452908329951131548101682880412996482018243580990516962038977285258294040285061311227020154474676770339913523530158269667774678066484586473267645360014454774469993316101172550130582153789936676185608990092595259532330924112399014304660528945363697279458821295247896927299344265110471081266596924924147758576230328984318317432949938329362626541956992113396157251635868895625411110321315075342029168094471332505469376475907212150431037267373131702453662272495851035016055041845364253001168849072789589989422002840575294357209322742725137620920934806365178924831043738566406846638337348408659949245777987910799336305845103915747810786954285593044569766889301511484311569058566771190523834495668650655003332920537098115639583457954865420929778772497469196085921737151264601631315109486974628735207218488905157039188787050422698811872216864159358143975576192706039621437459876835446741955896160081756440765195066810987586827153997154498152454118072024889029563933778512699004881091342323284246862550875271595661652778275568667341401409537673677677246153046371689075656923030418438013403400995430854582272165742191279785143892333505102372433034231512265692355219461735692802233199560432757715001020287870316546345934391013671900937912192534799492128594892076455268545068597362853026766747377616630746924511039722010788623991048794681715249100475806602548664953357358254625534344522671532469223952131876043935561322693252763116418953111271095470940349824608827993331324411203881149992085850860942973095424529651653512939429503672519992529557290966504841113976142646237032278982321255928467243051355165424363218403029341770711726915945585978122287975749501146233022796513763525279522752350285141871134298950321010843555523680496244056393253609350904042646382317611761702736352113843925385519236014402506602728049462605396190747588954619802201058337844261967606963949615565861039334812910478964353492508715632925707960378261844354753835031247398141157244274202768422410873968605659362690493035922504175636849257443431807776254486240568522205795666713778299569726280711373700891089012873408253902374835000676397468580796327767556381320062648512365109553203920087449460461575067428442611443280487018578076603550491201748583889871318646953463004317871789240867587935780646694821719343927619196164863545767387784286382693076345649225350177250082284987934739679596259582272226076925747450895206352562474745029654877605289888158029200423591775501793839752698158553406173176330464054598098332807953354059062696302219622411636266727986748569641850551907410476932515430536819949726614598625999026389115283517790221106616331810050203871125807661396482949187782715938165865738628338318574313515802249836381622752098219488033299351344096199470888515816355746228145424205544533069830973458657162474206302688584597329983904715241585196483872125752563140461563085394551888527665502055638698466189249342910173207812157457734471178160928999424847056293130558282178132380119807807152447471321836564471875740651185443400503274134186676820193434964950502407444066984348572681375550386609824916109463949921342853444265920739582677295795858233361519298476465153529262914170528301647405674879776231525829161225152094396990166594623654021546273018242840496019531073355897377130996938327722144250472777397406107980665479905807258298459558888544249674000681017000262661474479821555757913582407600155731433325146202529538441467046356595536598560124592634976151271777106088631804641693302461003180758277734049491555377019947607256036448100114451485967097822320705254833714468385785207912929338129712640894771575335749003621520874338771139644503605527172936151931570547136228026174351230756469019008399350817896898258371696137487055324764869291429453675945346523194143861341587506314895175515655913417909411975520859882991389855921933705029115065108592340625717395817441457753374303198322923837228461488318655468398221531924890235819447236540520306565089340852960274598215355715066217197523653119764802498548138092450646457347663299577603069340876124200077834212791570210955039968748331431547243020631009286475015987515875600304086520742733296452733423743429733804365243077031576072969529358392963808553300040023350809613311999894966312687700335570594900173983932132346246023777406554168342885222705605986520078672069821632057797226772457737186501029278534888655073066040497705594527547699414084301872282894375906271625366468243572341143324138247155936741960972204659061521282659341664675242495859248359770980005437067871061801957672501308196151000684482390206729955898895299450277150498462360063393022045424820513937956198638322961109220899346905830626889923648025946821891199590168054704152959108213491828253511266112658223583367775440658030765195953935561663219431953110161794708724028080297117636181145186547489369784102246779390437277097114640551902491531205818316270411309140237567415989178276033929581522791692102853216917574211834407650299442279264627378840983399062489160013163777909445221105545864792302164768036918973561748043141634219451793827625469691219567889501518325071991737943166453345901227074141246514241609708959355718478581369478577408577139777963337437268517860394151566183046823617735910643845764702957243844644117978093311083595835083631224114458566124772652985212221815781460808736936589149825848969774900033630357998285252810308242943921368808465415794439300823280541403525536912491250577110520881769980575358742463819223739059315617810114486807303503549831709403396278338017811438574999537538170927083629909757615924651168644542922347237617391234978618634039460894439463625409741106504895096317879824298528968714474475265964459792812087592266749153646752772359047547852370409052719729711704757827219978259223824985839392909597706586680789553311156977841464937606014544535928929454967989296137445339187727339442572488739769164036295507190506230596510494784683712509034259917669360307895696671924712070644264681032137589025053466223874544045881001965016325425692830962409360450207341424912350322174759334092856418652055184602240678113500327082310330655813342965907366636934616701293732116914515318798288828649566280595965097321739105759592596965442783042493699060641350318945308492119216953282393002082401186052056270696540089139071998865968358456638683621949592203364325569023530770420830375534888556258190654586138246291796767037769496134412220653858186350193901569485680963179984416094821098762188895312559931296215259234896776859962931068717485060001023757971037416780571203201163659454320942832480718116225250352995858540153589918965994269526755488517059189736328571516116974863445583048580160699141204956720277608515249718058061516732607790003661540357834900137367101967040101973089456510396367381557626761329183282314577890662246761273726230157288470789198286375356713253064397882702480307965803066411583326330081756655611052263661740209660163867672706079328799951461921628789430169396191927164299555219033880571276906575233261871744319004593666584755511965947959314489307684489981917343123026436639698543565683696262818410882179294583722795897358707882586809168514833785362829679295927496421750509367152140027588615532332948433163204104926825626435417290528994162847098702550822221953584282050595080854009330495028436500295256904270238198317035660000385440301852093538140623136773565462061181420360292903054167727232873378925187098932552762790817354814518429638690583430281346085362028558369506965383679626170760043917980784980317642926546396776344405892809590945801377178301046740780654251315864083886767172047340365069048124635684884890567016989814492453342058183284262226352774575000652918595123130582227182800772149913251081580411266848048691844772931335084414797481893403016112776137925310046226584207960989481156580604930312335306442317327138401539210241028682736653119699440744448613793663908343689800433422548229521213232654806866905152394924890310238446951136656879603195938954550442967736080987309341411917479601575912070439498028746647389780991234448874681231768351180569090697170165044293850243368682052616562008120967176873072932665143833143898411055372662901483098092862778952380332597216910929766902406900655241225255395140681998825325917815449579222831940771662581597500866312404936006643674549961701080184775929729820987820598080765263803302593831939560680295432193633325530924629098250613989561465156904725623213659517936818187104787711279755847347001221914729575682625238159664209550987479850737066452685815417978128335661248269078855771909693121114450609784525220793240174779897785543412842302210669650537726093212542335120568131169349320944891730469756925923751390698263876937449922681273596619024873970040040007181854333036977216924760498895998948783453163268383005560502589011536857865591822855444205375790122094732650704573230715615713580962117012465994378932624698787719419874015512140871938140322659209887818467046799819324622141058028963119038908507909505329671581778874877168191164575686611474831189050182671014144812407527744695448730378223657090267965061990426029451495811675382360430227055244359959935529472780418476344435733809066840170902962071578869224103939033928579251857279293158200701461862177237897720759221509671298628065884944348532549813852947753065514121409145347112540268276137980510985808031617200288843080317631376125516158777113596953869661579319421542190706154828510427077024996694935266035149899035484568192023926173051372307861113703610541025202535642849882210567403750933119588629186800803051497594225343510148563214437654171259377273190906641769879380271038063292524410833416922061194890277747231775825873110440076069164112201367799032935614576915780251544042410054421923589443203227617163298473631814863423128691263657978749314807735317194179283548035963924332344058613854705363054838310378287570881253910595050068794091410414723067659385641744799612108555798453406177785352846579124653847419153285058291738727316677188287116924886945510295283131106134650797424069526820767140469257454002533365833233263804979643324703816964590620597372592508112600684112653199401037597797972976051593076311122465607536105199550316703980713198992349184976478682452860769268474618589238688828744134413682053792034955407628079419845208604847770161145978831960149108364725267134418216908121150891128859585078340332269094707530961231361456104522835540976687512257128885626066473624003310235436203732295187880557843806886716491554696826050039065353017248720432912063484517902707564548420115833930011519240056521639318311185462985237361569084764336609043446807480108546340789417690897445299140061999133326773866760432172758249270390772249581326585036904151691922098074559511691876359761060431133870851718451381895429404438347744309099269198753797082512869790083991588301186850384558517014492930219206533162750909554402861409910476913601646912368298027280931644767635263975875304392713368224076491636487208332546552339807244064861206877258997808590899621114212219949478662620630241452989680300455678837363933664347041314199556370426942587137363671554289890286424472052233661169981206924676576639274130618917721954453942617822359891544148169477692543620728167051158603803732987886765090389183130964153724425925090613592829497976453299686601332774315731207153440882884202505136979543270536912016959255442528953092349828299727871103805118779669056906519285325757609357728941171934659267173053411091849253076756557966221102542726741333894159210230133280294750636634224531643579630793135816985731102646386601921534245981326936061827778973476641132770400630043181156988369018890805314188095298087078506367810101128549527338583579578870938852507244460995311616829918161156040868498583514166668745957861187926251890602557385803301274891680467877727401111433221865181245280884817433398636576183264617584403586216136345598786072421088130105605360271462913587229407509323073357852243758116802321319589153948515793058449850446967398735093813719203436300075694010243165462161286954285195131179102926145668597828705276337697731213520583977583946915349513560682355714233597992725247785220400762585041582740205795276578262496169935063380336856516232303050882352561770205631838531593491630951446325894388272760158154048081909288001755419448284380438364503015802676167487683165218900931512263937595768300201190154667128023412262549097577537963304505283743326828182226183835364510563899674313541896916959513924641698959904648705492885948093599094787657841479584137939372278113842562541320827834541199363065414857733998504613969831702976612478493401557097235227017986492783329472723991688656358232232316560726011133436611338947266173486100889847697009815702274888547708142877371938371065222007360512828527907833389183396645036349809315126133215097732169654355441889533857192679769164601717814989349676402247237898010183682733272323981775453196051396113444010328415404780312956379449975018984933902369032283370449289585125707929679811471898839687199009582464450006543334116673767468473499973848637704933866631052504137364530444042094654527424974783477228652428262879258129154060990765853775290273413330453816415082268975937130647350518114480580193208687758030206869253696775474897642665381191046551830791157333139089645500544290131754181690909532046554996578361714841843295802616584901080306702249349503919926219278546155104031261959589484068807197906694338186075482444321662372647455474478877901349128211479609877705114747762505570920987227453509621179404187769245628249120811108736012588205204418874324148184808995802697721111034388489218899016098280432529525625706142220698328618892051614041902037706635100177588830567498325068108746573224304420968753768812216854671616379771146670996211745386705650160432019761912962078510403847849299171985330156988350215487936709846370113794992519978800732999818147760906412384142286560413501821622612046074085976269150878578034348692704682328093879321150495660247400561363289404370897279792882400644817162071161246032473325047819584478097987843583791452170938780667253633260675231051710199812731365945020977939221156329142645445376915037831690287457934719291007903592635438923873573599346452650358127138606187966768005135311509346000911692828644607617996721087302830286348080594474499227294220684287830473664907136725154156794126183568476484972489156345061563220461658212214101178793489912458474651480901487620185666672269571196748647717315636838636034936057668971028056304335534521883449908146911914399196505022122266605479303481953576845320576146211632145903897753137716764433433505056068538167138999582560423193140226061566276852828208701421162452838634344721293528101951201266211787744199366997307233311210610183512411956379203166258486826319224888154462012228846344519411987377961330970996905837401041589050785286167020373636070659763280238190717686176791011272045306512346953449222498849217651041556604609921635389798875252517279297627846667855481868876624569667591213807413709308956327446676950808875519174368657676402234847171539279022096987765567444381426384231837455752896725413595531325853477699063419890589872338443040795673873549582889689671291511831740318243865646670522202465773412684182193789859902539370075039570038517934795907785737462862403082553131347577879017308783896640347282660767150478426981279670446165745928292838495510329289044135374268653067171512826886129100938842454232550647170946214303545045274337480567049903654240315617089706305260468557873794979355281639002156587939510272158615262793240280535722955606802071031637858497901508231887798783122006968091362797415955162299512831938751520540162425062444168367322740668053016884727633564728119013797586669671420599802182485965124043024218383124148986687666122444469662095826482466727591740323004413493252643489324262282910897391318890938976093170213253312510153589983003940875893775170308236782342097351822993806153116396358242262184687483704525941884133229016507092388051334010518681016235977277535070632093612193714784996596715475850223451443478701831638775945099983516650670445880080090741571950966101419409559026840921432068316195453541563567394185151147755904377972888239070268831749734856382890120152638044176396110930744095339112979444463387654846400667221474174151098886840846360432869444000517810099075033281267747436302959946944078754868468127462781014997959970724156800168751280482982887850005331882574525645485845782814744606346589495299692848567696707040585909079026910234314489412103588214580191495256454521759795493882099207820562781853116167743205303828099124531077684938439023567036102092970851115116242206828049792243294058369920079395410244594625581082667427329369395593745673750460543496267387082211740127640217744789079045323788445187642918673855472554845549326391618741411025523373334609075861665698446080271786943308636426047361894459063016380398413248900014683263036434796039925127652101176199195199177951377472818442584015528890326368581564953997963694343406932337575682642682845057836498808202511956144720278057019684157224956900601126223158257968363175369919185660250469868879325721096053306106417970901910040805365236666422248877674131889621976837591489842997890207814853211228541375551506194615788839660829068376741033740458135911762093549683903700850534266971701850621371339840239811672264583533544925561943509245935348434125818189246865286642534233533205318537790616452626632231455178209665378461635520175225878098587192627722396156247948266324294987814228358574703994629230477086160641209865288153583767472326240646578080783901166875694238796308502362204489669100947901422987132952395059961551544398510928985242248157886157121554924797807566209188428474707728185432697541518394435668529578147449800868520495922070011941231041421054209199275123129873252003887441118111084669513137344220129871843225612551553333779200044454111435950641049289524286810051101832654751194429741233030734069886166765809071104491808485005278132747106623088736193161875184803658191946133500045099596638619575462115481002320817701935458289809122498753215524082886382856537502777557772028091716553494593996231943131758771241188068675673971215007492697543897750888271539612150229215143914363505387052412085988190181527077581704381847855057792991980105298936244079866801113320010598441515163650321002078743442847081749531697007393463428595205897873211140654276420066538681949652205313056377860505026360632479084922164095326354741653920054361964004362776589095012713965375225317101107033570472753948721608425576162365450633000961984572314661409300112462801381962941483654091170571113400594588463362511246978035163783295544123994165798749550631643185635512369161046188163391638852027750425858195207399374149382122865481041868326914338468319381258313581232067239339648275487317675783616379176816743228926124632818984590152485701391518447673775824687729286677740926261016224372463042483042488314959068787537333631994052209870313257407049120176715464363123911567632464219466349846269085875961885635559363477987060834958844101447510639569817887879260949340972547617379381959308692931485262773238871289498300439441615312162843736905827910822598694463728391812223728758794533526419079486143604033321838793859110366777911028238360339522700620246619266694837388867177783859792453239783962950056430402708157950893925039683678670273030870527678860860171682712875716478883667054032244929912794537844220691381794569705801896345313623735640817040511314287303465174431945648869991178871053625632179820479446898358275545822245451406250784273787829967687745581570042925680338332456035478867069751492289807109260917826514241478797660710392262971586410247681339331801139496871832842650507846810784117118744612807412006184952001901565293867234066813094399875905721897178636524890903482105147021495459884865976813936227686177539085828464890344017583955506123373776616236087227642026317405722094611315075527269605718929702270498045830258649884304713341935338497841435823243250108058047048274900321393766417009352330962527969851964256248752602147849100162424744195010201973833113012833271591957181295811268379653472039518213145363733189294474619389454053268698453471484300121158784243317237298943069157483063574539612625288005560830753682558029761468037025015247431692578084676849623502846682668916061486156624434634094129402177623012484511149550169039563953035913843360767079820290103133247874742097724840157859129483490357683415348803952058625336286577513637256109116708961389930138837094486659582834472765928075364219434997731448650755005064833375388968758096070819176008140465240041170380047851206669147207229721541978609684806418648486441241556047032750064582977675235856454808991264738236419904222670768636190210961258628687368284868473377061944181891923543476965685088192596463880694229680459720052256163253383894047991416862775023535344282206197921206562346835750973610365266319129769827108822731375218527372836701233030156981499404197430254789015955052791296134560937004058173130688976343358197009316364315223278566857676474444597231153986268720693404674056194622668468025923348643019952014758530242714080181233638879225215815734448989396961325096894432956227889705970934388865638988233455416154411164236190249006743806688296765827734918781904728667399618021916056507080574552819575834816220103380444651742426164710136705809741247641262244464620170068267838834920095059155397076374271770586460310440715082257863498343336116409973327792550524816449602749871011936146319210259546236325501430780505535937733305979408289534885866377333723278443155974313649122899678834693990366014937407061006268746887172831887709323344899963660712499259197664307826141051888648725925292653213052935677731159718262217794522398164947747644654432204823255378585274846327075064291424055898235355706706464248999941632595554834043563979929878445448402360944285412313010029925020003742049264633647975732171399489309337247578481555351332077758004670316624404435444565042100344279125386261766755278561771247758791744528639876730138221036503974390520905718982332319211788924112625713661645208170830967804051235549343550399880645399553424401520108533803442413747547705960404549424972595884933727467962758911254637327441522030649352069738925250001422491739301697509457318611005129713512744565688165345044810291523711333247021254268306997336353812619015590259195155532597259387774158113825835008853847664053159758888074670438586555518064837245115767772499586183840107848602348939271650202847789960411959438798281633131630548167634688928654239490520637716601349375362449595152670292476081589609315541175187235092900924608270891814351669098925563620318720617062612561401609218783907195067457315261479354805264803897964095191239162700303825508919447682125867580507099796675842325261853852797339521761892189492781191351117401014049944081213636547147347715077490443934294021426704114312439131068734301135797959366301941991820875719874650071333342220525036163339631434735178876330081551534691731071491655492060298689004219034847456726892655503149639299977583714134377771348628794871472695967807078446971452166807904945155553112288193547398135711447435635848750751083256567262528587184586297873271122279410146174196689705601114002529704321222068647035942711737343826222094270937701075864775930472686636916278024393297775104489331819930359304319170803719667537555360516758687336256505005729727492342863522229476185248243155048775782070936727454491695003916580297972785430592416997017593007810492949546137990869668370867466405040426470811601593399610695281483003981394383261519516601946272483612906356963531360323184203917418436210369030663343698214924765886502364657021946183729261968153016638933298324108637940001714301162582238571726208117995938727933865955417282530954187572680006874091716203012423348884727747954233745476385284666580956063702122392540902816915786258251330614651856898807114509984467623223746552098554486858746232467389139296388704232234187952166777212100414753015096362076594613067464526446599413088673399177169143832643526550096557971429370275041858016728851886056004938122525856884154851582981763744765947356955606314111155194300235577586885284447890316369954860054675707761792042979009568002012051589610671304999925790622783263758583526953417708721636506054715591270764261538318005738510538493020450679450303727953651377419952905014211372303960185510878323702929495530132412300006213170935471851227210836784474554168630376413871914625489855595251753037368617246216196247702234205908684057378333547064674659487545301094171041912157477183518020246618859671048586569422634647379022802544666655050823676624452174666870418827392222881094903305533905388601679722050776172680696887351673130038690635499194534663540992018995337696642891417141730976789668961057882498289420843221196869563482334445440978599016094651221447600333085019718367635581262739685577345085073149380005818661476810946471864770190170269465779018846400654216415983442266125111143026373712401607502102432214228431612255779266783296873268982325858933647550945916433467149917953781726613458626920477996726544751415041377092242041440543058626539034601030106191298947190245519421093914851362580970668111913992404650631104683526561084360019335465663283534560188993794208880192201344404602735111569980859153382903502972903052157062353587474888731769445687389723056746660079886147765120275592695912880262543355645682927923106516446615921111506444400405564912713561174268619449667182857266541938600483399747264214716606174299878749796822250023180004390092999888162373849921319742256944220762519980299029179827812750442432619749474818742837043434715298376060957363275830924728900151028873340530983680550548542612914127957411503899260381134507291902216481046838629350493341717232009607199649276005066719374700459785970416478260049251874481717949063167247147018160481166068233407119348618067231227446490374089976965871116475592978908435638869184024910912921362583409584977567625922845217161125573084224528839157288109575747881735056701923198699269629959072272514950525240550438892374469409368898566700747734261503604075370783208571738666525353903489709838576880429076800624952702865122346240169728045769800437976210531151058216797762511033650075852528233470634924586924415835896955986723984884006355920249233629405048832032216783544458747123913538202377672579266282724099066356554002227890060856254092457685506396972835306979922426178256226163125430814248008592919113991600179009577695420525890544844969656909729224630094748056251861919154705125066373408986772262864458758691692141230032912612297710881689413079680252207959400436156849531812995722130496229156405546982451633894008917882257352141886486590449846209471104433671547894715624139223313573015430307107831760569989496142277823405716392147238786074984366323100723844985393190984287552875513957826267450778718045897399244561759081512029685127707210711148609556557581566370908934744168534031503134372242908971487686537685393442553211924539006552053313373965976761539643289023253124175279436345182251337831058093998048757213763374900764292263212259094824455527901783975580999254556756740305681607975752888406460613206317864958890739163680164760115014840729824972862465821630850845967665286767390608367090395573071134162259056066098288655694294236170211908335812263173890350096133771558718215836811637798717598945105539877655954866501954176517279705926112546762736341246017241454559687289312609080844247913872091061068600074330728129621113702616206342737423717084415555298241699254772671660693329562139554404543773886840791287436550803888302949371548601164275542734060478165958176701174641457150928646117164021317286788761546153107035540669707607117407480246679481841263037124879568634184972929829773911695605959346786738160992830253060887160698972408198982089032643706612306552189239415248661161066094140926738437817409741133605612671358856224679810104108082487169976414109640668403339664673889249059909625826974849752406188946476899144944535768704236514867752008462072438746007852721752279012963714417213116429255284028569631420509803803984579220151912561364817297011542555134916697085997836277133219095057023243769334397262643580655035341473945273417751525052278559731619906297277012761306406852289731585845743187226483642789104678115049437246887240334610753103787342998778668754220169694283951750510733785524633484610730672049056770493279702245352842232718996911648998038605097631859115396426051031743748234776770486916018056428238606188584986274394147888636982268413074371355084410947888949189800387016770011567383066939571929288056291573924362750093552827979475909875408336820583512702840878744145657424695861103459837481314445283240642996560134496146184989275714304639010035888690096157568796632070006764237788355016479621444599411063780058791532591330208657095576420795162819788339024358250964285803306724796572616380861450048537402867289420458700285678613984494490462658851310131579888050856409143248077347065304192012406616810506867328559413873169221893778228939186499178040695901193280433684637226823240468891233744686496041356357818749366830700034920311612603376744763196861462462125113798830623319705599025916321798971575118142258263850458066358338686593887225903113856139492319232624934527200567347439769828160709726652222817934600830498619019618346161064262883696676309903558599103694916944909471148985959356892366033419233972738260447598783613252108499316026286148373662826655162052906304058292214389354336887000460348710411348088481986212107751607173792264754969472770970135394841344776544400177862388093585824444257782835706160196205021230669827959401133753320065302717507857781012726183337829893195524630257227117507390772461406448383842409511958788549693613930491937821773823521236903321799098050239011885033341164120622881818402779821289014837831215123772339054282033716768330087367820170355772075185385273086554202615787945047118798821958216386629637315824609644405266324362239731407351024046842876273956588188012160649942095510936028162970920995582996383899841443360807589270326678426582677354658770750035640538292911296040523820383509047141308388014719192710560333221985516297223071016653795771024325357442786229275040870053468490067229031577078285590574144564276884697182397313771756660184491130174599004693225267513009032815228591547856918712028102742711591758098687483430743032026979512290388868367966888917229771075518277616243084649207842938897750640393625545671434534598514282984262805692395612461683981917382668485263744413670017552864519835361272084312260216584269938347630599684140693086515476740273994869019847757289893061208460574503583337591139083153394763793457143484393730870158353518124881263984470900408751105513346081046545128395698427045184632929973411938564859656977086688583509992545857929226359699228914112216753182643405011361352022567535324097158195770233554540549599413232857144273144512828388242366118485485689300310779610629053596737806563622330621609679613656670649775747012685734294493828671347982633544362805767690782687367785509145068188328847744859749827404376384476813736817510710070202919135769570522779780164855532716480585304660092711182708788747728347213743613316159391250017078849047634390737315073067597502894469766557948825768362823620285418702113545793145187814591023754300032880441027337395431755228279014316883594193283484272643909380089756879474576202769645343435856393108063749331911117319865938488449871746367984424369220040977162331919538279531987404669634855262151637710407217028184732490746182563816284531793020750010682915024054465872254307434037582682016753553109990534521394961917093650934583342693145153128047574014143631201975519331864646515152008785822783312246877512138859974094929186427428948637911778970511538549023659894317751500528986297101913753780321578402506696111771434238569388992335493482492363844653510541058396895106668275828872052774760465814612512261873830427904815647622330469304669599508958490363802962477712134134829208429190019860830956686452018873025856511632302808483989636125825089441371611697268958380119462358046509649243864744380018900093535194433049052630536113920543574782696813527306904189741218541632837732537826315385085734388880537936553747661018034169614338063006281061953482448744065200309089771894600498333599374871683389467913010794154395538432957581313657607990393680392345493256073283484932751148834857663563508541288826789169638316316827576155951304543242695907065553677641615920826740789310872889672307722847361470858793631041386977373568165415398934274180700429832901931023534580982981764607876677639845921626647391600997454372865458350712566700763241902071207590962525634578742012353961211728841027643621081137583674149972022863862561188896581926832859724982589802573363245051830000983530188924505285528060671629755694568265138440787290897767923385888593308540762880283127381855188895139432548313368908209489080158942883225019828953105243879854615037677571062820907276569646944430084929790573253100103636351737919117135730063156716902513127482850730019730303294059583125968864723683439074705495062799859872311806267778482485845680788378667498633240215725009163436732447901232751125676578845579056518772311457327589592944852724221677261010512003848250298541461106860749042111615844403078033373368057767899762388429804351922475022599696381204586203068963900915277938843761877809140305822883796424549569173694825007020330461676315631012003159506597510693026507763884644738855394051420875408058258238409846359254014972983668352936077451042022630070334738297399314414436239828759240107316668266889395266440426020617925267011847299724650206076236094999591505295833247685733236063680424702252967718517115228210805721667755223447877711664021241754018277474498016282608583652719086176010928040802284908829202281989542549200822135913992802368717538169880405854674990600381608886550560817705735551524615670933024410383123858307405192351925558876100014061922953616967944623203319577308444721991781486506796937257972309908404702425441476689188596317934824796555510307089040402256621228610910633024862582621176801042307427905073320767691012741597465263212064386712141628935381479702287566344784936253544498551646873132041979903602213798634868295805261207083703102283655550390601273612059239269885532394327476539897627861990035337147035334588702494986514028484213339399051344124574872525389315969279669376345518544007591405128735548398867187611313968733117794037867559778213227637451610251537645083273205997312734522011074217115690208121614655033048873186433983482978188238750746115917070307483796908051248221614519400648057091073913542945855341728218072913573109085387463192519409035844072551270851776195800209954202406540420416622457995396051800199002230295430818805433165542359042162181824914651749393503657710086544157068117293123491024556942210807985939044730314833024356498839609011251694733248014066438762518296398842616568030486635081855373476594114099091458910824451593489960815645002174908315680649154250119843000939698702138398431369446671296165838567533570242975177946375024506404944848236564236605626251459822735585165390423231381763043221433859301987661283514217372822335450522531450493725686891436096165966293208972174014515151720503270782267313726637790850111424785749590205261126539330240624723241504729288906210667330726916907844498932418078448437211799026994595498943658840711151815246853736402664879536774326264801274711653614150475309879865057937881638406199520040724167324199495767615141740378160485749035789612237787088801868522951704771320704597836911507587477228806935856893393490015804825416297579676929935391891745066060806316198472596847647974184948320630347760741325192704341863295128264943899430526675015336024421682968875778877093781768189539884672858921948825173459019449985130050254283087601202403217470525934507240473318100765764329467709415169253496693137884059611263400758730198593256511922068353985564925869331083620830766128424698510938796353657336199699737855301643090403415226564244518286528367811685313729112675948132499542288308204256910579650712388247219982944695641225954197563679365438407599738755669996719429558822934596327908598185332728422481239934675964597691337990798843154956890468579448271765949436268758132681945538483646931133448491552625247690054857218833729197384690637913228691003838377774870624888618817912159937985429110304545630337393228200205341330292487129533790671073948379662275851457936155871647837201298017902523017864844095731417132051221150321495720530194248537472469749872605640544463763664303988839683015742819976107630201262293320673488007927514792346817906561304976679009847768865555534578155442589587328840813053277984639442392050463583808149030830725088786839235891657452636067587713838141211430866853875683613945128499165097553314335727679730016875898804398557014042169159176963228172867436674666546010995713586692480168667513053848021564441223232634397092742218556341618047931750626874277068673860575502457311008742167101312319141620975106102542259656426777786789596214402574769342545793792600101448605865737860552113599658270122845917314767752264296917216239020943260090646932699656311920995330276609928260403766428587354352749632792867661482153995901152820960273302110537516207846790996949847017649763411951152960629488803872141351599142871450362222803904234471239067334059781489742177684933381108772116215427431308407486836616654128144056505446499510710044162075701605219883893172200471742878670754128692489384540775223879343614443824889655130452428073471602189850716397339424228527738700472709322793070624497720494463413582985458006193565480003356932064603377417617333016529775502758265780722147793084419155035906437619613867790183752988166740994065073336773575976165534409793468050379064463303077747045026721557903714227764724963195521787046519154397634404347047092259883984980871894185434589553623412325603413194402883884763775895605250012486845983225237319271678779302057227958647963622444642642317294200635392624455077814811356425916724693950428805832751011337106568136781943240125366567329583099339225002329923067774201227375308013262545971890225718275417356972632666666925242529144150812220391735968973939631255646622747661632592928920629823600924512227904019737854720739724923726306732857243775878564967723524578374547216823055328935352656473477206306916695088733038705510307008138407763817045848379363357773142649535003479145539594552231484276338645668983471643056770693077914183887966968343846269679007216596472843204190707659981897385477593068983088781753094584946450393224050729616116574262617618753170969064813642468938497410086201929643251823496941926426162338900389370922864701854582164920195907979612881405133987746062492858914101962952640439043945881117054839058971780735415974693515553783797671166036984025929751978258871693137996047647907403619219617564366879301073736003586903892867853632244019724385486844786371440518490671555211213997580251871164293846790393472712182003459866047574662836525606316744999903352868522001756744108189002769313670753513524704785242133225780625656373445873078648365175789647047538975775123407005869626472457748648400608750790580817251281979647231546092491208117175498727066111749198520866498343041892385536102695936317821511596209766503706627365709636796009774863340612111978808824782905848035748411397209548899092181770658014878852730796611846485943092139350583642641052140186034347937715052181470293313105572578569927766334423638767814865269419574923321129536615495733197486149927668262214231409434508426319490592453395209072445464663213545292990637681399651691011875319037050053020004388733558390036160247852752015253817783733430707324635754281831971975523455776805969937398861007001476366024266867888371603640348911453283128872204405182201069810275867631401146661178438292664704602175592080733208763180040435297652120105205015539143229966418384743058168526978460466664608354259329876352059411326837458778052405987729881929548231095314581643436654015264315428028700454844102602605814512297108943292906397068276400098009217285617914827706522840360411079492666074594891590425638267461957986522665637524923795614280681541996341483665824805597700302940210608543451701700381008172054143827230685341442393888148521376210306718820434506639752056491794341077190137834370322607381553740099895559070430813446141981041129385539537250182954302780352312338253770469364407507348590331553672788732607272229912161110248581637704557569627308742172746879890203828291971647787459224626441522104787372794108180446628104599032347092231755887752419051105935670764689320633854398187182513361526918851338161003557569846183054581304431150073120637544759094248071482916517545316606898479289262718276038165872512258830176546845318071352900334169781957898291536004086248193936102045106675527476065115211627027754842616828682809061989972441848954132888286542318792918926343116603084311622701682788980784505842681204994264749392225563130777431948604509164562825355916044830055273664131340352996445679937716603644895806469992495965767873551189055018368483692828287627297435792047501645097367728281784249630494764499258030155176041007723057312047809614348319138465372067899457413333660225897010469784620134057344828676124084793605967450983811186327086852117921097405422218965179979773404750840510635321023653464254358518170566498238186789444571835475578008894893230393062288211439408900600339956378835920612592683890717502270191969487526150927156395009177563780973327757602705061181350521622239265376042233591221908030433854975276837809461378523446223856859737232020831922554022460044768143469043547878748630645198551801069236830618383377448396080806023238088075292762251824229096967913566655892098010276712691084829049391801472521188355393112745570608576100188841247222129465192313427374346167563501591500272513675872868325446085042095919819395932488562032916135970491619973459432074299812968077083477008617402730684641220503833718508109047636370511113737886100641475937992745682363994106213725495925850290294909582341490538389586852460426854899002819584125900364615074604851205060589183004606540659977689512631230683421835530294580518750736541129682039926663719240000758274071419311951366618121204811981132291940560599416166705210897793353807455176809373261673719430663286494160497287100078810376546018105466455222821942807158603321098080821039976296294116747912834064368036118591093938698625981166344885005049128772833201419396060945472241392188762881597841105061060766803257902006856897932243486483055392038689366722777489603097413375808845898660614062702371296119580151174000492726437718069875300898975622627425529012317711173925937093575444043260727002204106702315338955591182399390235829243147921729090869430472682830071094567800844171744735807455254300622800509393955120415615984110221855343491661983837561977927323689257612411386078643747848305225184751481501652236800472576745326856850812066021009270309467465430745778513944993174969147915623854465053404387509830128301303262334002523156741175442388784229992670771562140122922587456532402393277061619173667929362841689645461328908862684101932942702874846063830143036107334667278226466271963333778474617794785774733325004696142607786496548186067447754534348794762445069508821475104286395500444681724153389748055396335641554210094883707480883404194114295932868363541164407889599926459550294777927638884983301182994257863759476452295332901340722638120627584177020480705356034145571389906391524403917097374554844999101052996895026984241367244317973014456045760930323960389671795156975031032005433015288799386147924216522254617787957837051037498905228646379156902594454392945317747064116674421845847278139870084526261061774113157279618560687692267231817871056445960859854334486082355173747928430035541102286726104696320993013437317370002797005619949950991549441146439871620348788125294338763967464925022919935680168329949962443155224711593839426514709445560566825488029136234959976516899460763235449087536585196452256270720511433831001065468489992902518451437258978648421925646584540856508266993304126973610522044928994537959210574383545565377764628941107745654635782591000862714123628863073570940359220942912358088466895229747130413406814456579631250208536509862831269175563769059946964824067696791780287633454361970542049629407842742967709346131392360735734535381823638830114095408924543898372252824302910890550788782566787441535017075379231402303976977908299854100876316824867226696643257765149415797225112170820113562804911015582564739364312268532188250233405609967299876808479204348769226989723236187478171382824358124095222507309547007237191507663896157127012993744517517669892538213359081473222577394902072182272451973534531216276799898078215074549720601217551965315729828484508065541842444912305925065766873211543253165901264664547723589597295862136763669860579304335408421948432413137003971400509747415759369132840906955624138654971499231628222690651767389596070840910448075816552658953917434432822209164422162668693579242184950507102122728685318827774037202608487948148267258811724270345496003941982628615600144688850443732317144670726887274916382528587182901266993398270013661280419827414868002050562876008323204744986276783552388181389788700409838702350443645630796867173227938619981278957062766705848534386448450830833830109585675880828541464798178107725110402576475206259907569136260146751318881936951829480858652478854374397001893133145949010722996481939703429502204360702897587555437402840973601290566559776128330157275270072730367860530578018294256743526137582729640427717088529018733482322733889996260998358439252769907654533539808545301714472523449650285108586275754755871048546716310587619799243485084975989557529099463144290462580166881671544678553801196185384527755573103859824123916179430698333637921574887099380409641111906759604999730219893280023387339704369276146491084627690306778609286655528616939653966582923204718211415985812445588912745069278589098796335571645748819202194247667299764973937963665243242971945215917481244445592905166512794796491163353920514158508076182782569101679348909565956238587936332087985446118465321918873502314778771707686053188176833790867232241837768928800505804725746122902118828755936366198402181457885408781278615149782413808222658429714847602221714616101994386033784445945226607519972027165373987783233053048886598730622811933735705432742123302650261894732189781115887945139718667671970648826417006383521980605492242256188099208349538533841378209060998260615554852477639661365695964436986442652457974185078656083867818488132285403537627642191060980742613777177494877499835957902911908994784874397611203532425695921821463503215467381728800091631360016218671363618079322972152307639483774218609373183025967202588212424510740251675792602188595612151778074809909744679445547195964247914593154060794998526746903903764514595159683091554994647197357757993849103832847330480091980261812655886463456037290428942875246923163499030749510247621906468163117359929537058110502528532503817812724312416502597688792656485479832943449106695380107949803391489663506819246366975128584942437752131603934052462125388002256532296404303878371239117434019958815567332355060933536770976815057071718443789733186443177901413598092228257291349462554861072747623672644886157663971104885300147244102894806050925462584770987674715818219774359411999898674425128814435872814903393431550398830116073119123236742220311163419897053452486899551084749820479037620644234828999439462013124448464273420405279403056372208300707643494298921136140022815035080303290083793866011674795486721334424625703647971268686446170605379712442483893034634380883866137226321777983416786181891084202713386600320640009834337141839617518875370774900819854046155432090364435962918603513342435932508058039364044602819396421608328564392232086292600510478225879855350925986859433889757986808399387648253228829264013881393507859318354226811560354516448126480136896846476113395852253576911788502999552557109011564831638877640666047670251668679987726247209849284126027951569512907606266597170793730964226337498672699251349320272497243969283432750316300913107328581262690877570131575940953691221356572209070577802487744276249781582464045650402903587648694208721662665011360713318231708393867191569969324728670584532912438106660690850922441833765206597899281016493148008635338302039532391288722603975912162317026854476792948382877307719563098150856244009292466188441350480045905913978476424177018250538957872102095152961717879707373997754216656145650707040527311700150707307871981788304919491171538322389642328724132138755323303321776098782750462798395557954102497378873761415026535081307982492307169557462407576993463661863752742507216336153293380000852300922767217223940996804766550912980648605809582871123403800804415896678785983680142090651754862400470913986222025708691136382371457290315977775093415984465911576182228711404894577722985044405053440998778462324413080655605877152100355456481417214032501017000313384502842981958557257839916598265867321757438865053797300368252641087285199584860523430172344743530384936839282204895742500686749405733573466010321535187330273850741439804354152030560851084757493707566717713896235664338268336382627172815008965804633998421134824857525989556997797831463745511684078661073139010639684532090568518729551506821455041416057873158498189233590106320012027034827906571168911073508736343097477611319345788201480778594344298132470550268955090120980539705851217634399266313785095214194725470615115214174066342990474378273345402825658489815671561094164861850676024711166267533061475184557659825541112362373035100896165749267423969724282030711930452422366108598336930758931153975539314666288402609360815215465604192294276245623958341513797039905708981088766227412107728282482620948152848984779068552488058482501901416337360487394193995768588780415632026985997020056467844633050359735057483386410878924694853033096164455833837961327269660351536712022662786617906569869682882527645154750671932230574607265127959033161490591637793354987759054198376679457282453408876143842512781536234572025160046244353665929143643292463179934525852193329611176763477866864445451218025765639998957801584454618650328838336823339224734608642606677968295986058683456861038776646390507008813770205857598355194037680612683818226759167353341833344925010324123224738409536892367279769222188200501964609840163871140297029974861230477396067799713015471367983461136321246788766759709256140316862368912336821232243085609008906929076798993086052273494535111633370649072075843680869808652277131166479568073437137404182477164624643575612828300493428866041571455897058590256745912796396413295968591265670487207326011451802678750138870071806435566407363634172399538247808196882050174672397548041527731649143089003716535663943315351352659664666666164343624894831573042630096286940338327789786731844022960984059598933459521632450406868600820154198013079895030026635000964081476995621286208688377880214013155839122327028804581498433236295403293429350563732331373955844756167662461169503499245877367166673455063361399063094404367464075576262622726983121806741584737255219367460429172524988216344168621990686585677875572476646259663295188174790918334232771009711183777112523065913019498428241172087681109809615105021978337832054258625930435019611104717242873636467049769958380339794380362837870227000145245298229978419540108326905912247546417362722361748214189170527385367216971016463853872763783898796725333460349913767602580398864363401856887462240707650905384420668496418159453039906566280150283142051617770251662137658846642266082205497527595224542095473805453846372620188954044784253550373893586896742179792612020146952852379674547675325205777066522878842027144812639832135819601410894314178979491321767321503949444044027822109667453126986057841716720539871600066935630474700096988989227921214726455485819802899709324808238225176674173387189467379643909651539465508779812489260023044876663668589548423803543996093133290928013199267383473315712001651252333681983060850716156993411577923565331641510624418191903890565937729235670752720090053198007839681896919736868891303947849399284429076646549455272394518469430447144885152514013341954507833351394819835400251508054800421816486251111382464490445196485804954923431115383244972814629752992699118477644387908272581393445197794825461909709884620642987743599614247460576849540298858381304745152651345156372411186502726605786928099585734791744306179485645192848441462178639114780992683243232386537989835356682387263489887084617433644446902220312736446640188364050971563628914318519995195346795842327370187075120899316613023024068975883451354234709019886697776841998457468548562443942135205756965963146228382324324740663687333331667739165930045806728367658217501455526342102339199023220122710711054660428853314441353810298463036636065453695322613640328913074758798171647529393966924591951082140520192617645479876768719920133959205473822001902729459946194018926407195633460579385363618560850243583791313138671667755705560437542827785714875495254504765000566735993550801649323954216648980058083753846671544859189969835935957450991937974465342639870175719061287069956399827725164742101725698856288753018546165173741612993768795124600931320294514287166973463841248249275762125698534134313011079447188597756367095341771146080383408462497989654485793625761825167133403838012602004660089529763311473772310410584362028791679237788150587239881860788427279461780416727929479509882698881936224008076123257926313673735204468842939668357615852029185941612744716091098889011203147562098427412602587438774821207092996105832331250990252190505090554033974344055951892934092392584459790402928862320651240209319787524567433955529530959580922975165205214797912577908797143625754371910115037887672723672657812365470017979727598977818197537385029109575847471296100689977116202400144922076330985898650338860895529679314597511721693585183160252842629733670687985111509281500502245192892063816117371802112063393165023244636489562748304946559181204760908351092839113698108177223817272810829407689766039143565992775979674856572411843162490730735744253425102300396550143103077561388270885168768822836702722841020327421152454028943953172187298065439697109136613898242201017890725813522276018341979410793767316104987018324892875257214790989815680253762639313852416624796964182639849916928436847568714885550071411169694182791164773795748447282093339804625794289554705691702041217980046627912098678344297081108655353897457682095923221935389827673988981066757015373951061144461004148085353153874401188577228470751083088341828200822298831951526113104886768260763602404415219274104104241523174161128628702028367957953035355745897968406743994703620283590183263719886061879016631544050651496577572480554541458770452453140528799876184519052368370637803813866055015670671792957966718183231921329292490551926621808852627234748553420927763272344504487348995473716677806082918074269942158635678011270856647586150158561893549485824253351706547804484253039890068474213608864834747966771591376210372089866416069320389760766282126854107050661169699557872436311657507495348861652589203196365624010885313587775779566123911086984228604476174651087967196468596978143787218090382388086613656326797936016803669920755252201631981028723978603328753268862722511529555299986043010785627857322880847600963162305062985266795390740648080342595321387230995450802314439794194460825209028579997587457273029034199192753234842712358323378504864234332491879879255863176092424027982565671083300807676268111490775201168801039917838776009801642152655064474865423164736563950503805890579462508590638751677556472316699497916027834188274424994646021454585863832874240704050655184943774879446549864552428592094858804291065082070863917836939087491936888665852750234455982312315280370812768719266223369094638859099360796844648220793691057645515700444318778971879639190980483220453421763163676187250546058530456689197623061605564470739419257625023395379843258098628089607972826156650853979309296613632099123983284354978333572323343482306346600127510498795230705810720655525082244463441694895361524462989864103493468215143341538164615732424096461306782918326897180511519254180974974469948405622632700961039691431709099770692581512370733511079666592819047038068143390285845816443003257032774258093929593819196384910968299766267212901323518506312877954280355072847837372073057536890749105069839295632199152774970640520919969256215701477747996015477287675818404984966766460352371334964174248859966564265747117289611170795846116544312866844016748265073226257631354046339297606885815337051754295036552533676074104546820750096061315754058390299977545567707159092853685560572925880904533988158180452873649350707660525256594858161001844691023162968212341767186223478150071027536957158130688730433289838751187330419152717759675195520658087508278897100076107345950862661490329450189160331018183354527169198154396058449130929704861090874966587186295028096763622517253206208141950685928106430543498268778950966783545053497006853474240392268118791580974697369730440676207999528802798460057953731994636772167248365862276334566313434387190739939147348079484046282030946264598567311894164334339428434416628078650788394695379289861252132542626902389228691222911314482694259234222888244087680594879358039737558870295307173956165341509561095900018611774140776128743314591458339533796762478522947555358808964991990392537029270108509633092538328945537203145477636928547475427619147624244342248367546840653096599049753072721053749153728605929281885874713546856039397280339439826187606487014704847514235459339471417318589578982666568567678976231054159161508596732031028041060412007858353767200636649508521012733479743724431726007863065048358916834623403193270971021491912122724327672261259391141207927284855564144438634455225410215333730350318840472385752341124400129352667079790483991575213039094455358455627452571753112181600016261546659620328773605965592355743771183893425680339009069015549880176847905518326592880158504215937816573603316009917747200709555837180512554965246553781077737899834592542881317119274241777545543693810911210195822026653471500165961642626964064448849339833111179258539545693493166778797184424365006344001196838099706125040200438289418113282402118419835809424429876298029332217792717046814374296977546518183993991127429538622294805345323892372579012663375389437215603003583130200519418193304714362339466810534855680394073834113812893371443923854252301897548157243964091073641495206290387804925496748462864331170789388975930206155609304417056372972640181739083852591361488906323613109977073739428426560621477135514235066705683472175471442983299471469502447637583930343761681184266404503234367011408149809554672529249431056231764313835638170447551468276958898071421140089454278322167556515031085438079887902294653870422067451931079339499701996769840412756828013664186851168602095426180163418616420200836747501751481170547639906692632320406435460242067038317578354600272454691043232161672836586661378951310633378753971679818375264209784924478171232587072247970057103076661132691355048133383242719485647422587864699551515261712620000629077206406804403202743947438294936837701279705418593404184928102449367600901395239262809554978150832458538336772623238853401039079792593296115076590048194527359500277502913885422287338849085201635090849982679998154427570922177155577926387098187298602072589621971341025243046525375802124290870334766124059354221680408282654234259955997858398431204179139573878882829377211773541554997885247889509526839990147044787930796880672311042803675276886871767469865095661059695122309126011991468941605496385468483822915662586425365384185768753161032621521820220433571245228745366149305162077700883728029253798435234221995221789750279255360932232053077382739932697847139950078557635678104193231395998023214512782850462634449863893179742282381938906084347871084508877499321206037145474993846490919358132712193155954510503960525013769342054703214148477927721560496578068329980078582428860901592593938300953675030336106060014418067227713347388142268477345287821821851880158964859789030568388996614194681936808031471825370518711407266821560081981734828331276405753516674422264820104349651372408156871707013193931635017987131502874231373196570535145252399668492747035315869537871184780961018705153279529416475794567049676498349913605653215720809567362844628806262171804787410129055410522887803255253153476558329587394057630016109974645695003712975204436890083287866634382517567864254847526698419576280988849926065890417921509074958952449321580157975036357299012111113838570815853593020917285636962002834849009559986411197731502151304298027300285960688618407726757184275416772242660939977486962502753024045348623721288559151445189749740663420626900445322123255351306803311870710212572372706781649979815134290295915536829194483053041724859715440667407029844024768462662585379891673160564404727142450780732151387255133026664936270679355669814584783139384417456532133672003419636444958668272724215168067307408437718019143485904268817396738775279597995784334783524069059398017920876009606271512651923719689320446923390623003525148164804617173909815822618389136272886268724837087167632887642531613874905247994291230485111539154534612944077367899956261520408990311269959953090620570984826786046609991690942300007320902350906798491867133878854541614726808523092895786245418287951400921264580818676900203806807505635616418858268853266012674520488221770669494108522802812331413328324111691237501281054663982286970486563620100141273666504997753295327758461388428566322234906662701028283559448837158892489974729747765590612727109050607611203336043381347488139649286320483516630515193050496832159440834654253798821731076520063179848870288716583920936436413608886271343220068591089772632199642314704787829755264777378935495043693834338403737541362453692832665098355238797176319048196337293369033085209214849758804760910397400841645761582193563249532842956999928627726254167846195938642194319010743085826341681571580960142717822494553795088623933774324193003300976391662573008979767319689591741348826890017466920582544567643808112966330004885832769105001608529885017589963631576499483269705975217982396737970797285630064829701975987921460185369194622230395003977072523518221673430261883373104159010094961543464081246670662019819174147404739103742558596449688537831678671461289061259711560878004519667818533669977772046270919959444144720596291093589457398383534021046802561380034648905215999793454633737024612736201609577702026985316033623139334340082381522022817656988896021540930505774111820818994101302302374213171632106192862655163027057964672254993124190241469821409413118326229611404541880847282365727694924376645786723526369366655683771943505262213502445860159636488942308042458889395980336456098437883634054916967149494004466221048877013148520618636761522032984557798748082650116875685108967172703910015939463141412109191960927408471813509579037340888292544743119799592128510098955587373845114400105056335914093425217952689703523898138653401599397175420676604998070160268091523677175409631266704840708737768400480194562163293767915092965898378826176833986122336238959420306327350953771174911791267943115147217907686442786600341037538819609281240249645831315629853633715617328444030070273115743581970068444424853833381005314730902803793682655500512017118336907489452044815546096823394726615102685339192538555182621748168930369118021845959008090655498944487285086111265262316570075564815482023499704991062865729596010600571161766581586096940490744263116269172860002182190566117268521167417412983097656863043478181979554132776533375992495058549847717658613260429708746956130189494046911473510987858286232218170781254506405313029428150355366810824525967308800378790613252795117974859746682209625625445479666984375467833215855743216150864470705904013757638232666279834308891054424770650529622028126795166570192939946288621114010726530378608483099245016183951114739221436495256430130953529746746927167821505983917833622709951297859937372366212643237377833007801332132420001853037976830659528704868894963260094996837886882747916895897170602655266316578251849558186945478481764241603086791222642882716315611352773080090666966969614553021314977599242711493184105865104661998806567702216545506671732470979823511195768233835190460736988596815793720975432972180549425238175039430322512439443030214402176377006036302474194614999760048369830532257015114805975504236783966520421518734676595418078589106488475573709478833620332094831374323530603050931562911919564891370690248475896111908386403391322930388883432750374149270892413424977466039141728943475373919180664634199309772390537149369531222750959262534219941718754260496572705991935015198522694691280527550402146709073328827734810620360916163522326881389408626318048066046255984483292419692091603686139010210584547597267070087348623333041552617335720378015670357638801278622685312366635211684294535122944078873215346066769221754552133425528074378980849595984470843007534755588716191135723829993534209175256287429497076515752436238064615134678498029015947530534793920923640385232804087711981447255273477862557661265847086855254347364061320238753206862668708252322577500589242491660531677962473438451015941663003233523007973980063695007153890352765446369543153104620730661103019230839775917495307868203825077653098239397267966167368347604664188277640245674213885084656067421898753690931687142047307425744183009195862858363996182036329050647437572204152994078689114239142527042107324707397098828859952677783877144756354765292078878073831670677418537383476440946267506280752068735799186015148104400444125492684277619581397563756668371601657358316214219717157868971094012540330430966528973773065877030040274008523931872405465844035135463165256754319161639027736594825554764750280581391490340712590996798121371547479228209233994294163890875877561094089532059531687714523446009443415242556299699459299065852969895117968936153275264056933362350625375630563744495167670828189480514153049969916321192416576468765109034473647146089813407548902889252021716048228106320100961902379472813866909463936385593134734876705567849876967494333508090626526906025725170546656441806704285377322144530410770394800780888160857900652612441155636684582785167744398199410318911234914873557469845870218946306360078412918896570830718576184502389945320541959689338055978130404627139689221561855868472506832760168368520965283086748726393281141038870757864849663248870208052007724687987847297446535723635342482218308448576450262769978471652178782847004377342827588408368456488023276805469860682701859655298643361977662362100183037853440862025616324234178730298437117110709887382855163229192538449520044397052976805132860139619238519058960663967816600661974552807146124936861374731053523164189771663603757938920903546847089641644731569264819138398652707858485072107193640721089232586285361314725753471727855161754677640544955604700585862327331809781118305355186230442548443674071736322486441846016222843518717405406822776480618613603702881726070977222331107794140535945023541057387820841986087521109669420768021088050574629972861796288193560285827005503887258008475345872738612480405745495529141745992811755652365304116389105106212066651955559913573112618485780816044702786902800069948283211693931136996421172944527800121562664259075339859906489793932025702554045456178523801706138049606422946577304201672375417362211744287114262245983103821754723091430102879707073282540800642482078395733002413208891544382364958445910214501431589032215209802661243408046111792249626034657671961331651742848779657870719604169793021418734235502049106010212106670088542348331547778187598899858755015250367276078934662627797004193096329217109813302038018599080404455873870444926712392174042964356311815481032995867868671293496573882045670295145231576457060289221513265464980483204052705701691449478460246083955069869907659886511993621411332657755901086195949789788205244264571643441799565146709204460337039275292953970845533897620388105281339607108323781995761989860449119863466545688730332660272597357267770833478673621998127866899025665585763478919006142200941031697259544509424988974019662062094122087189047611735719876363274249476424379951213434401419865654851267485547503748594072933556333032871983009575167316407553490021268179550947909791263550536440033548154756095463129405737926721776083784182428906373860780263212695421560407923669840970037885700087322313584823774782197894148149378209322571140851286751671224403128091035298718505154711838516681505527772150103087777168343566258941104445089337539196422700688060070913459260340364863314550804152351836540514921235775778974600892670995555858332440194544888232237931316269370490939035417032231727314298484200904368505595824729381462547418138770809460467119484482584183196515961331363692154234604569092038680789725027928647445307694375672636941192271413730983377050691084982903600846804096650683741330591586491496041083390369940408881672973567198882046755485124105780333831708201316668127719850057999606300297384733240383975692778111757661910828340268878487561909650471321535996004092981779508375800051086818401210385791667106379630792400131537504598364922343900073842664420136532537496334668025279390697229850318019072671547525415657270845851128605442614550668265832465456349253640053576291268126797842451286209418689658484266082148701928787369918021577859862322285682601756913027634108459743771537993773351426869705307681399651921649795111299423382039065810535899675739511019189052992785161413510343010378548183938553719076677896008488897989613577657089127917050369901625421689386112480856885330285449813194183125370331317557259240000224322807558146121335255952167850641659844732793183262388448910342961619419579882193027335644027539452708425413185403292234198496574465655523762242378026819020050061324171119510634022427273280245591114928880901667038724243321950658871893673571889425697999211122051523413163128161605190357246292163067141406980077270712884163721047517488161778847292822410712788559879252233878932987088714778689861199013878592973279652428337735699058820974142209583920707676115677241428258794604911981174316829901628263208896829705848877709582132115074412973912488439893878288375193922978986621659080657924188682473402495672336429262912426136069783958151988146274180343870422849065262541953910318452050644763744570185144188799796078081888133142096425671251772596466615455990922715450389204827835092908870349505466882408252178013769851760698876614206295877318811960661252681255371415446891856616133080328340677623149099170750339604793109163646609833650685718409378137105773861825625594872023499423932378061200930067985853686474188769731876888475736598147862601365077028061763252662245303354004626274738914151907240636717713256398233245174864246507087301325531317064467430887811319809515182824622594300182101488934199102350033907353914417824115664234385425151263645656785742362117885619418430795391878869530823295469929681819586279336716341118034695614793017215245420325930707522666164198831216093462568325847327142701374179838509396718061890264912817642752706066341109058010562696558629632376654579717477266084868280169056201590141365486916732915541481811806735328147629912376621980327516948425678727261105533798145542216445552380486929549201066047058474420156595634179574703332761991492800294963942357968054418707809913969184596376434739388517054202266945037688338374070015208742228525389309136985934900169365951794717386042492338006362970747599205158593420252599060992602857853293614724496012376183667698363886358185087474267683005541317410891689702181740640438318115555026718242319225967864416601884687623708308787793487926563006322604487790384344039477111145722556437899221544308333525942785802690912902907449386548868830642742904606533162315184514965139748166732147309701488305196657510067282280742584154480886110941628934489348166837331043804282122164781390556048478953742272984262071901473625143119511667005841733934938075060324059433687746485951914557349433005383492261476629583616152754814268682309572195984596906432764311297391426232567815245021012703586905457258079737235863039030799197275847747211970514152271398707839851164531548322571859426841769339424734043431793515425240614590416436200898129893796251787261235424698172720730208283393826242133537940659234581439739763034094436395925989542556639133945109959746754283349252375030099465875563716054768269023311050231770685924269736484968848911417850355777266361874867647355185325183487963638326783984558647264056586306297152899466861923304403448321401621383557955256440688903001091160089017776992909625769212126462829353229276624392806433241195751084758913199450577893278904311976792446917373394019981616724030647134006312198475391566891867987218490709524709501651779818067088521825577282626216072735328087013178149115233153202961260236625503494913340764714064624606191750916028001995550156490293451467267971375643334320233326583082473257675757698931389781331695608910985760335320927304654764539668298459224722341487382803156497552417772204740800394583668109578360221008308768973858407621923821955519359064222640984010927796913489119402660568496378531009677552817516596422380913524644479322053521838357072401559185936025991136155830336707971401896588230031491429012493161960589894199768556878414589434073725174119479561856311251096284527169025546236025852589661251843849832117401870725049739867481761040815286445188751438599212447461321359697459059347590793525970412779039725466180468150049353606843682419765021507099809920301141145615351562873558599555706012447430767678237092901548644355656242026412734945941588579983253538853128675993311897385065411874607909944133202582895258481435118724648071126622944171186464584254044796183303384132605977438467126980309008260900477168091368034092736831138683713284140657563453343072079138037611812738549908825930961811098933997137488316688433578615533099776027831011783872987535738190657098555474192217216498621877201115763739930887643611281213862125408072573889010439171845227173336409309588472305909665657309370057659551772058536234164464982811248721397097880940224730221967823339639660536426859380227806817901185511323101165631224678615369551253907101974071009569516039426783278630029014977694832244207168896721852512479965296777078597331091609124059224105782847994840186787017048220886050791288465798188148628499797078815752982987703179998794425690149976436321201581590467932321242314299848828585226435878270407074030657891868322194553058054469199245275663328191983413443592648674509795178900066594863145767308948326445295681301154880790392676343178621173833201741755990200569644964906903041373554716479711404995946530570243204067749717702488207078849937473244361001218218400445401753215651252741817440411686305670746873505263278610403519081391064559896707961678476075831818711410234331887647953296682556765226672807858512946510491059124683403857336074562729595974622656643821084563000489028737815628086802444100743512960458082322032749107787110958963202940644227512036714540660316239174037112017518642513721489585903771342034243576055671224474793289540122867409544877975370756429059369751988164457046295557906457843993146846325001507941141896997722376531933543213030545218728901915837301296698006773615851011718917967729660647701456808582354578015837559342133076561395174211620025676418832031101595436431865981302541192316114469348035038766053170190160202811682883104654797814448179583127358961758848335594408457176227835379941350637040526595995793791858272562860054033578629654233655661124518583196090317268883255487267856958794718006880431847623179773080585744147267851526363006614985198799342682281283494550571277120068337501896758137790479707882327918085258876569322087069292899366346520505309706407374413048120543303789169093708349898347677326055217304473510993439328408277163714654762644943956714438565547115382427053162570737750640056860005038495459795399042532196869708298006148234574055149441744130897282517095107102456352336525174326350344751402699999702433820163351766326481559264701621136809073569765990920443113548921407847865087484651460704365213324613717690180435641497645875995704213035831446121965410152402033530373993260013690449109848689370065435661794996775949934212385222218902912816474416581719322962230964776292547690684620683882162382079581587874164406745474199250916689940194137569683803232014058547982655137028407820925554732194480020411184324505490666844972342367076155091333632714751329363259871035684422169221231913913081951499953334497813181860051975755737870656596911808600474817760083921735557194661589202139255292844198010258221269314284034298072038497258394556301501850522757980838190452999327085319071095298262505724223526279877677701481578774548260239988813373136441900913478922874449894994156569339660690978431474996263435175285935055937630365778907946567536792288057236805734378950177635815688410831852505002609001295238890258363356437959378441567363696866123744334275533945059350299636637276276300883510354912054938132707950202050897835178107976319382036564205527233253528965698507778559123558864221897147211842754295326127721826295041045681732411528930422663812392453229264371870809392786900793705181533080382732211719589764636636163618521277126293219542065181286108647812923966446648136186897107169536914093946791679031590532083661350938901172872010724298234244740316214823312717245765920789416612588815220158411041627609748275215681508081291462423156469859104166886627327771752059253091931860455310942808678462095384011891745039622094992193603659835813219193545875670158504200245880161858230372100016421100377370293627813535942488168327921555667348855248851889390691388936713375930737476757886887192365973793729788760683621049762123649910573956169398803915932314474482742604434189745743760214958713504740383712913756667572433802954482106762667114376169196535660913417933648456732701138111653265364212486302471368490555143302286777283741595283352060113902070297117816073933316437463707310230490775467956590306570359007651035416562330158861804906866442428982933794189441265626353000848987826141521861175304724763570376566453880021617414591524595658625243318082525813698276374199892717505502578139930585669116728229894893021185324247898892646128642314961157687333611118396425587896217581629012023773050385274691618867529207271533901550356371819388211733898154809044418734279023353076791652646789552550981355353103817797672315267835255193024720999300143752907622137529395656228710875318669537335637537398861308478229363153543380736046402386238374797519229186744966206867523272305087984538796283649894167909159249209166326146300553320805089619322914936641327528730823035087365777193511054177571936248413968163832930847042375679135524252727051296444909550326096494237217689175056618924479039582915063780528281655638713877915854490521749606952953632184123781928799774489898869486247760791007369202623010496104772592089554710140679427241859016338593737583872285540707515704159926701494131884992233972656123388558539682314037049661943720158520495790269929229338883673147483691596047076739072839698237269819292961127078813664861947472696492013287251073558116723691194204687267674377085584781446946287280278533254952651894133490296802892622632945210745460020760740459004923124662377781900029087204828856555669047242176675446218600865980005002277774613999294398115147315197522174606745935653409992835172128229366633911252157571230369872065709774651620021773382286900718370498183090227139802166146075055344003568963462166904408390838538091747165540169500027934417085369413711793274182351188585918550193188406189585514880364499238286300968998540120888163234870278798796724005793480744743261489570440320490777517395169286921929304715866428127824134210760875613145386463679952940336798771167597823155716149682983074352836899845272382160242067129300213864365695105128863320193205137526384479953898201005024895237471817868101422354161645632455685340335258068296959905849726939102607847672284120608230352873321114014488862099873769764603004621647893080878956610950372230670014181440973542313406870606450928288606210562599555139537778755195598586885253501589171231815743232751638439303592841916430149374504348252344875844922944746214024209442614337723441625843846555314281183168851925925473988074546195226652299964158303267911103165362933065207541192615378605641258428141297792448595456729696658382065064556340460835412894165816377562664527970943925435581647009028515414390768106785521815476521332832679953381791854828146648538316704275072024815666876793165901328011399109356917884607813936639758137095625143224158476796703909585042332293652992065345773181301830704317358030951974613569982416801630866629708312179755939295951336955205079306216936713997564112438306293366095481429190318580908306312020328583110582239504965946306189218205778938823811412144180280276006858771680204755497131985129610019970871824896232463210293189898806881424724465356492996634379003726842058459288753621693738668907108527335298966892358174937147274931013470371187207091864967159169749041915503137254241352797976215226234506264088925018614250230383115811210698384176581341721873957599607592664242469001249634988041686872591070836822097627836881001654075521116274458918428428857085005477685328970897425278994836115892049878490692234768332246412774824950658409174259953506762825495456793950621174336729718549056372628579282613390721017055166877862113826433133124533954279766476495786118246876839872185029342712673372648297208320108225758419885282750237590366846979390816227703409333395177582322719231948747399264438973044441601855600021170599559145218895100660239167316123997163423927952254262820495983472702022175369835131952558805582121110391359831363925519154848792570657021072237528923185983841893132393096641970978750884658708384722597694096250858981490475897568951757757890085822882794012082920588208146624375332537619529612577657402093675601076041225247202495328946973211682041235557576988664697894812423647320021808540565519132720274180194057043060308683887970819156396434533628353756203714867046870918571587238042898131162839431380577751549198939445357658773800159757983459686584167264157748441423718030958727594777880209543965808599788791659955492618903207097236884199002904943357640320985527307501812586059221962083278661542057750111053930269711299188934718489257543973633748006827166871774029271725583748655324986849121792044900129414435412097171863023770377292834437254408757148654428689761568259174217000540341828200966240921740555650635894382038018194944931123711348424733386285239982829698307729641825415854640240309964072538290505020519746137179661780469353188289912472183866886840471220073617624257455603910140624820494611308993448026957283490618044487219853130886569221640840839060476805881192560660711326173787785175105154131782046713808958740135753027267445835735154128587445443740546766211315944063149428556584764507930251172686010141403724126726269610308960609852799697481378696005879589054537956708684693604109325969608586251940566680999741238559917158094399573088463514426943801410347070095926669797905209254523654439156992567822508272485242254980874474055848301728218548951264387724081158445792693968771620951989365437897427861500788504896362795476623801254135621099183657463443947099193964373725968322556054020837400758496474960198454914724047934673767204583579008811864216574035945633513493113028524354070107486756940658020949273554539192238137078075274201472799166763944036644312386140965445121108509227390570118808033825215185676978427027861029451754565666064475561943435961853161173673266364093871698298725793136624747828713658057266344169221869738072892999291360938374946701394988915149288423918048102807387296288185864299349167755456303874359733827619825355176700850226920877866272688634301468634194317435480273309753355418231679321941425233710224813584694859124403556792279738231743836378701335196017875700444480074022358691539070408810225376482116999163121671852976763707963751050153443855263806169770617023824417445392433107895988532905455526970019317479860379251022779521894678026366768763625254155930796585739464302857448220262550531610266079952189805040830679785850090369152130038375148873793465607031922756310768099565310631595814208484893859512261623779460065935066459121604550351574022335284800812519458176269181895034532951181932186849449787672875260659288461852545682657876552433865917829861380269573026454032906257767151683484219752631737155758506105003429818286674915067132865392650085748650202889425476296155028348661309459895986575556295962745638413911256721784672155924887890399410344956894586846096807041556504178750167367359354615757282088131701876008038102949953451045544403998760251292286687588672143036575997393724057907064019985045590122005345772364781600704972674434017430448431082173513370213646785672567481273505438837879582506918843422330865792560406833469904254100332236781558396623589405069952952275257946851086896053626831840637666434327229201052045286352401135871907504874924364008777792929183719681366326505562063386554954063047634143984722069667839290103797458612434761347919611262628148007133835299409378626041727897492283297833043081162492047335900662159441598811998357362974498923595403696540432482941840279953837996389497820745721635100755205852338115305099744218037713010250317436586519066489921153975408943224927613324648675001477569896926292677146811287775385948196895065311976676179738158034096161126346945706224627563552953111848617610644401729545587560166866158520204200134060920584651110300092776535213102428712350673996406372165178829017141376724813355110825332011460634689795761790222112276103253720329775570714568427910034175435390069395063676651170042806996736224256362665124112925925489092058448095657049154283323622036685841047039780769142039641006829609597047029918076105156292280736273267746422620090227587973329408758494519541728247560228695716782312061632680471589973875427503443278320379673275254741532151471039805489725609802855295342437819096130576772779577959294373665089013386265098677693913232416370219457336565930331700086693405661091700299381261237191064924441427481077635522465913027153207013642162989074701205481213419284005082380819409289504250845270042177898897820802877208008855842047436925606937713232429105310162747912752489236709330178368097529001342489547484934803837898466977376640531567999158467997123802211107782948239005050056901511121338303002354119522487298308053406329732207658900068623426477891925161259093842693771642244525452489186818831775011442509170708359801674282223311470475344964060294615735749873776356087841413442382354789098240682410628209874705954331596411070391402017015103229671990465046699368396805808189466043135647541009812472102136367633642951132769848001142404807481076830306918179253228124340864303948448712283097078776897467079055288259498136524697060605554970847009773657116454093875837345931038431814268926997719978229570359787698009233440836594028794799720565519511030536837206635402265327933685755890054998100650557833007443462860204307080960156141296416856056990274257909395254329034728536597408229958126191160680960441320913463329725245493629503026615139518921693953366365548503110231005105070663127151463214067472377546611630252943081688185954677172226271594736800985861679412051563948473772516916221061931099436804404088761843333781277671306990041682834888228072223612402274495510595880527728797983296237318544253578621306432740119737325888218411398099273216862444482128159568582758264877859592023982874907150904788307614374698581696362103477539362683924426510662946777825118423856996976516128864073554395345104571445663877973594801089448937524893068639368940462446838321422412968005838476508324018929099716789562709316696862075877394049832733217206899814009789117792709714407966756612035716386809584579881940272770203104251289194465708520035489588661534316555528152607024598524274948031188478533861100565617951909204968641705229552482482742916165211625383079632372529274399798028187561807013241327117390799369303869711933747225592765474998925563969297786683348711193320682416425456026535467683278802000036208465058752071331398724233392702480144794915080500148724984485959843352301927347171737052333219692317564929374383194905318201665961368892263173598896347711789138686370836900266286041127010591330207949226518585220186231362366828902563910852215171869105478378728404792394018439450466377797081364223499832075836173233147652374993391665511774274981155436632722147881367154962182778682571749960492524267667200863980783777618541782697819815173134288018152623507948019481406405846355777013619968036314907468846500298319683164964604661343253405019693718327376352467759805850264609461004974694222641455539827812831082969065665203467596303178760547327565508993983725033617629078030631472744665991045873812957468637710546541082798544678265707434927271694210229873970546149653276036249679207722495794986315110717443943048981749373500264531753262483436028237146161262662780473156286898115402022063697141861025242740274518575288342944152076885463426830992230246204961410594298021838323786503575874097579511127032401984737395249484542219035588430666402057833826982169735354915763463840364958648651650800148337512290456409703778398107128198036266140418320357518364915978317322135214395387066784336957297269792383589655135432572217682833000233705087000409338624899458694684482421998412403373395290381454356755283225831668864092280725247807794262313287513203890636426570408395427736929632385003318226774777154986522164588516019815476100315360584731222413587086026447434049983754150340840052368311845143867407625554420602912243712624444431556332412109651865546433367401065132672587579393123001637802809440276679789887344435379059117425499397759912436032295033343812206944770821805612365360418777262453601962473888212671668015664088628039217455108798217705012588135946900938411121901592589318521012289768816735349920980542811137756193920093052316490839498859865581361170816424221508947423451677903521781301006566483557455223658159093516716680044625017366479058328128549190491294511048545416038094143859236610983001987316328439007009935519700265205086172933573025374583385184671175688094724827907267047906508428028058103446664414239180351721559548806336590989788438162029643813031393316507343738804915836399194271877425934166849892826645535737853526576544787000598912978497101837238054927383795551363967004306377942068439148881980032966498487063699830745721127195794981660068438748982482177825062418348770273594091266898675753726347518942963963987135664927973038956112211195469399871404129244639553043819456057524025751139599673889576453058483290182249154569891198546024297087093103824779630072859142636443631962818506831873477292124025251361140133999094133080711512049079379743572953771290100624857244502052551511383819971046464698066234835586066632446561206837218700503957662654102716831423563928058534985742029649052463377569626695963447566294059160710398919306452572457596781222195833408629133266560965391773314557107261118200049856950065942392990715615270303363228367232265029663273955560651900007427478196857160511983022981256183207460444794442942797304262962746177123287609289316395250650134079986706248092636710975630861103590716270384096803019409610592032218726623628242017247464720628822918595968905110484185792880792890154330442629331508214349591532906842436449847875786041395639888904685113950974339861040614605248582385526194658246331481681639320811682264451065512810043179977570549516993023475687692774130375285212259588264549290071110618307827462270987619000465332773306133743750311068275998130593461976895941032674782966736437415390288628546165331578913843348669790920431810241306406619239775657655461437668507386359706221257211523578830174416010236337446292879552361623952530459681778944779046195950036079011218001968937952190111871284285582672986432144185006513928678940973581557983246683977238142255947320367820040754773727513525575994106287974675441003459935251049098801959838397996899009255020434489091402966873913534632688643096216773711045950502159797212117134718949423923582917345339009517789711775404868121226050686191890792242386828581409532003916887769049380870540691117096261311744661485486296677013016032724486269418638541191167245594185617167254455744744810910908563054015270653021374261219602949969856897378140912871664086499428509002425370366366834146433932270438506495631784555488950319977887701830906653900734006206545214816390875236304106638992001266005190034983161169658648740859115202529322125458406679794797188591430317705842506930508595066052490490577506619049397033310453409809997096982940740899865344733450183118163291098063939835093471904660504303626398162543620626098601259194761651836368599941212167895827965151835838545758181591152224489250331841083511531834344010503504303919793603183955629443984980418914355369328357570015734164822973951476885079524779666363981223115105388392205044875371840563354067407119742343906766681493942451045511172206296348129470481666592640589245708085709066832822849564591155882705205048489954456390913048069649101368107045657774171588755791332704314485379254671396347956976308528707361634465236166822150362774300294633443741959719723170431382768066013236052592646484663033423985588605116368145796998448716590805168053050627576439351933073713152280644761917274135977692989715090850501897703425994980576284593630441326734355426585257973648242090007762244048142039724960853926185179458919523624215141088340461682850118964445052170976544233310168115435004850283104331047987567746307668961975501449353082244660911916861317915442784723562951686863310671409357518682339258903946335128357100541144461871117050081498625838741913548229067969445510635042025087153761497487635531105284861702804180332025379161729591794718100845145807030808003891108926752114699583018243280373652110909098018747526919364808784843948310830497497718216943924381041757751652984144137430035294989242054600558760842531286575916591586630417194028651008268729203851645988474841981166715240206293889608740657795252314921040484485950124283011879238661540875518784139992439446505400462985798627482858201232775426089801781906714203022099330204038332402831467430024679705214305699091840031096294431341902910628773082842756010000537084880602151652439442034251584809372567217741253971899222704094306939816765518987716406299196474461376838525155656335940439043385079250812054789571803190299384041640982032451599355411076530467663202463402831627658096684907407874845768164447938625672667479211165808072960440638720375611562666155045970560440605617658963525657580267796190940210063705799228804831641981136865640611511635404347037310626461430899032618326569086705098470013661348284333928870850152512217127164953117490141992199574746030258695501915653001956733989057099921311344973926579253075508554756022607538709215659504531527714522728643065897457404369004552201004565073012243491871776529678060977843000519909978644185206078194365060684596377302292233539456407662721940091850149810082535478275863403800673705966603494505278396947845883743888056569776684036117835638927684027885427203587270538759397881563229878220012038838907003554846937801861215233825509505787052182124328533762222443368043892245242075626528209247835130075623454002149133993181563522381895027373371204563271060019603263716690335432558021899749547770963076405079479870645731987331166601774854202066951486864829383019210619702980573955374846370310282821109721665462825448570021359730228498125139240038894332335381409394262786478981135130879633869583118288094021457038231689184875665585192166730817974866481867277831761040888089983626730941519726425157235098096832965112682651170400398686724227078079232234581795725382888410126121669303601910952429446928482173115878272568755910981534513815608156025510872457546346554519650366357020311406338217663054189388672162530807269258316648612015333862076286541541024956950284573676329174490565820573144362654684756731205486117729724664755597273692675549454442530222817593946142998422816978661809783459239672038141450500839517900418907527012326220873973836095321393868688830409865425072268279580019098541486939264586371952508835864183326315085241868236278056054312686683342702613974238319801893649599965823630117732722301290245386253625485990162323433986447265428195442846527232509482260174961501163804937135811602646943272479708824795122123032526032791791685752531496406766821601105320760167593931273516076607169356960952714968103215577926611466357199155225534031153835803029195566084087953663852642818511661432188079746120534054669735987615138741636329463923575146454669793001712197827539948329781423863753449709724721411563459664283986062752347822145748764301274474854442434070431376179165706175027307398268156191354722893735394877735459716686212041645510587122349230855017248913009413233399974525356259742222367382573519094161514903964051237890238852456483663375214429449025124877101701616827327959247012364159936634438528772540911773770426551074563078498493013394372808654695792574411426214087705215399133743405325971087738057348692067197479979646369088713651215342153992483362686419601472615501884930816495630840234896787577744339044671200793118358287232809515065288525915100793788447941525463780655613100466052227559122584885015761939745089723168282985787421992332363438359936158525893470258750055651567545140516350791452746535102345226547278183504401803842912678072416664991637711170361215211175229508683199023791498600700097092854786570516714254621504128126295279352399621692998407562590459406763093440610842175928021579686369130761302825125030818923234084156868910475591334877306342262527260187433549742891232939471599912682501109781118656521720262713974643252628380119117084092707381782782349576278415701314015540998988303857860839986350075887151389063554400628000795933467533322566997273829945699656988233578222015898686315725746684917325341513378985325056697880311390739791127277235836907455329427361855304921734945864169039990061079683712153562609065926200015327009241695995193250036980128691797512300422103898406218245889604420072363871101026826258335916109196874758274921030649871106057898245687938829009482103600904945814828003821404745739631389753115965532558925592485822638604011054733764081680663552453931953886591519058985629902158455776500795656383423044166827769648109179617859794059612348154941340062994894502243235311848385175255505844538923391872060450736241615712952115423446382928759180345410057674440922110759860392349966739067426906877886342212754336194791497614198403067773833946933191014796047261400948087963672111983555771363778626230722526812331576578210283881855662677997408337639798077520152579698400291836203284920570960715591443416140486505125425858833110282316730384595244221890117544982857599448583409663804424306171151197889091064681742058001119818995697880044420356445174260992738733796238580336414410034059014085519641126520761607044927416191816720070444639555809542741264012843096110331474773118477881800674360766356336152525554287479052538159891958615413143368777329261097947277200772011401978974691029138858759701440216627739475393448550051226347564810105841702128286946874635842305312490429074503218122065263539118152376598091721449815547001635130655271144161241277357930232611285904046399373194140160041779612511032094179589398185427513772126293711035215764424383214431389942125145011249625781646111294320267589773184203607573940943385932684041152847513667906269454746934120314238745734690525582436816147731567729587490448640637827696718997853890616862924285481646893312306669020781254590026972807176402906576430538449389928519179790786847182078972271871695041484678810958993689872691958729163807039447253634916017901802546246003796424612387673064358050686941279178846210438732892897794046057476476248654908300629068842067667391996764874439857190227023915636824822402577301124747676904568002858007232695973738887135046482872970070226478253227988888138082731879153276826278007488920311160274638086564279247812972260450958337169672673322677712547975759852031742758885273108730025059782733995227928460730456129470916560618451134600428009600147813455265100661030959060162244201306583321167285439880673327348415404782727813682507639420709354270608003931744856023038110027490733568427027909622363407188916458571618335100729607614169257982723100519493739501881875725209991389977989681170503369870270705556917729533220605226440370719279857529244641584860733367136048004594368445161496045333778124044204461771338974274630365723854045945646510954654810563336634917586347009873701460882218479441603036545214782338559842197367000913897826497469732004367521681824230465881341784789969312310648904593121927548358514968970890919450170270866983441500737960621966229055776361819948994963022017241465438387382993269904230514406428747174857146727805568009806291048643131827114068757291843258391614987168568474064684115485281696511435165489724831708875516838306862013041725611164416144527896746416285125703136203990680487420096305944142397934605828840739811037525209121215273611551439841104164616567976763062751161897326134040104154677683399505510855082918913856787482699568349796030460606776594503645898680943528818281627645717081371960260109485079002981795450037529312707271497020349195305498938016448981303780009337203156378559164701768780745396667960174997336469574882160019018788776643419515039237982464179396688195165195106806314230538815119594383060616100722515655072602802638404839778515584822097916801388948607056019830759272465564851052680422322857113856473880207842060261836629676668751947522232186325233774459097851394382609477557513911352562129023664877366851483869880123118812964659632361211682709893289801228005927744505762081988612385417670868102729148684784258693471285067570089862170275950488671381093877898966752352375160092506721235434319483063405732119882364781618163346059563733375092018404693378163480544645125462033316846792053988489002095241898895290939615189671268067622799262594369348635420006987286567777660235011916962418997441118580842197806314661507709273096824831530071788598554664391872610407525026360885141770753538451202173373264772949390656191464050603716896984865205480035353323661692191955443544017710054294809567021189374713208515220175750097814161495712509972235764354416844317335691202710024420884260304417429582784095849939732965335898592046776638315268002992469604405536604230864203554998869059158503730615600671351598439305920476426249075290000609139368515735867361102940932964739482595173867751421308404215721289867975217476888227002342956131768047921146230675226440764762149947768799002903376684038262895912441454686415127805583618073941871528836034983182088581882136442237421263747517049572266898613192862944561806920139670903101405680741556644798174466521921416712388451047929793928412568031061373265954061858268612800866666317688662335093381270506549529965223278728987183895248081187616720315038388670297278328543924369179803927405913501076933127040931539515368132166328572588584124417446865185224982125521418241306425030922337745002777465628348683533241772012607273307393985600738643964437222937035148150093048502132957936254319857275393688051699787437234614223673700606665796226141000587332167770471741550233749751820870172039734474043973603653646073093980267170109347822414386453150288986834200494250804929128174540476148893530295864658331663679924915186094822036915079167708183184423130301247539131473608295649977176392049685225668508361020272798353972001773242813222390931127478328766362795120905260672625527776571314505524009201364637633762018902654498604729807037241411066238239199816571317137069795663614489559505443515187906669245693630581502670691344010267150153638811081726068915319717550746416858547396885164069546081606931347428767307604283646417071510271290260257775171442354718399205242074501468820230937657844106807028775731358661809233126102460406982022391863334483083906849923110799435801257139171513700920926642342607646251119352999100852435694551119200346111878966657735023609974311524841807419798265811829143653409670636384239524285887718717971872429833895244797091769539043324046759403373929569952177108524880608022710622470398645476876259485922952613425430496594729332232558128139919131501406920930891998301078542529548044875224424617743285062773299861998076005833093580848752002015395298994172731675204065810625947602672182687978453213203150932930860202979916433511925392505042951050417773643982996703452733677657036205118933620537796564324127725110629786429141499730518992518010530904703029141479388086353127539377857934584742901075949942128114801994532684642726562611245653536533809892410143861787060783324476004200158212611888272789059351298315071048935127598332026247957147164329559030290945575221974700923451308779035324879974753314183090574367764259892231690907939109850533090272988210147612072662905642010888106261603190301703430471660782944528925544836968398393782999429602872313056765619384076407407028242835607954793229052445083057952629354755327855877995368011480879933066118025131719545694098223802440897142648512942830461589740790304679107310403785295543798437752385372140295937492957744387150233838331687965885493697992659444159445248743249549242793265564468043944292426910252614519647348186515069887340770607465039215033598399579135529430627542413813196243956313620381357740417798718546753932264875151913878311560267107005384805788924043409628419771063087149940723727146858889324766222639748607933350404866253135423348810517741041528944002164915301931543403083050960956138123637487580709195360351128498342883031406856618873246946097286699303059655499933100731341734862011370989780367333923683171700629890171226028517000064136688739335574781124845733963094085190803571834659293677337950022815523406338309733929498829993975008804556868616906777210794105129033199610341836587106091524603605570427269213062644454246476175955335695963903765783602802453180082422549430543114001615286273002827850473602768900823569842131780723574813414639761781675654725710314140646610686386101308977359001985382022307864906147872743553006522697202039615182036019390348205987802502540070217912735434829385242058761947831621741593010819625061738207826306073922550429898437998229265511089274671882540256230146699917818608425992660021599585322680657278357953664317722376023527240781520608596435602249483781131498351500759075832104689098012974732554983752343147899437513293773448114080570466125724646222604807583774928388181432817307667927026711883820446525629408348147208378826686856357518428681476112905243582694732948077113781106421973056060530147971821026684793114784550036309226181985916197972205153414223432461741784553491731135863759625334716812423907037198784513357586894603406026058962420829738313074460929804824479070467847625474977982505025053909927540256418949299043781321031113897043123865848764717521743733828241632391492261112940576042096174769871569889715617580391356653476081102706074055966682255040039477061389356562383262131762407495592029269194679182282536858239710215935967368092068590761571450846823274046340181461566710167095197200200964067518419397957618351873478783303581553880480525718640289050679092332523650380501243656484812701757957482820231795004672608039526043612304041680978586210217968584669977794991769278426457410502265312861481663005576706253169412966976969165879244151445408896917802137146213594382513744804916634130360886756648250950251356764020079447829029183253782261002334447595392850868339663831652007155729702699656704084461156454960634998949833048529833331959978982752845522435385369775044151645074594217178795668830585500146210737613618178042732233031668038204404729778673333635315622369026942923856939477874352206866977430490381630234454121998240346819755723459961829739710428490669682506734527863751590915354885445014169757617966423938921579670046718801543066771049652243383258532375751517805237102359183933448710577307692817330817980605050441209419339519282918387772332097002065860796673578857144599613092130910866018233662008305255444241317998566005228680219343928350922513839210970986623751914615517690342760464334576759319267772955765581493149387702910269355954542749279955286466683412201615616872819671563313735070399000603900584822375113779701310101687087884749235386472611824462327144967357080144967732093282449028467802877684619118959211958738475440421092353355632890559147944838485398736017401670478482462592092915965257874644050200959723671459879788943156257659883533101653079784808181306718304915231337332750917195120615830490172472509785600164924822760587007778176063322899180372414202255919785183598591827205716153112457602587332281661923330721318816859464122543702967429992744496197377906002070162114894902010947645103187411203358295774256240905076043223118944199039909632101294033220902714578003144270558935153013158891626039544378141435218833610845027635783569798455080335593211229708449996014127932768416641261532401036885504054247042764476411939250732482607490849094637261778456640443453286364934396179527436096023972555869249233317459704215178217775368558129157748906906374663088166299859575317762801164178785129854471967132319224293729293497818098927990334010424265780642686250988582365775821348099271655322432543182659650259354525643238281504278096785821203824333412071137528731889561314256225129982241498303920975697523813909800516616276278664529027140308906573988730144545217632554684186093726067218746944158140212743943925321974246173818120099200016170726185795536622825152635047297706132661903357991756000277550336382917548430339261845664863344759674608065619841704017338945119224781150051978363730336877120543845483959425016141227567147226661962751843262311534420954379566819643132820822693898071317956939119643846797334373825298530500047068084148519668010198299373293766175383865820052545680078030240156116797341951558318078199822406876037712442870211265485827294616775565104487559946922402564418232517534436889966013401126897823294076334117999568665424176484935902087631070215319318924534327344695863016497592383681292879855841641131183995064560870033498255505485138881302880727794759327358955544217744627947220100682603094828482785065394888193596638517807005204598962309442802107147009841036033701845685108462179938536715890907847545548879671341800688491629295660114642407696132667765954781309416733352021824385539263262434500477301906093071290082508947604165894550021507999313849873105241898665755631340542280027223178203868745341628037889955269261559921109641342472399877323698038756443691095706938234767799585270468164317826842786696502420458733583603817400193931248949397751106103872216556156975309985682716908271860367516599143577626004389638478928050258759980760265373511843692995583317210864566795306287714682278433738123248501082817830761604329743975488460940036947725097325837311397758903663026979726893904950175265062902334942446652059237481494404950592911181335772463187674804092538544343942582862485505262073966487947612410426969362063013115554406293869421776333159844066857566744972718937582303624421975165260945726103711761851391162641009237772997750193877074165719316159281901270570848294595020045953107566059344650069750686148754741360527942104000445267611294076505764624782194053627274268051531153459655695274791614334417037533505179334383607442752179023037849398007798888274390698538725077992024533004616325641164882254987255211743322021356037731512192713478967581891976589523374030081417683079607271918095795123494306975873716577716299356654393575926411565355539961914215701313037030995183799823304031619767522515291845476705612198081220244452192389286831743523358304263528160111950836414652695914318830806248909688039919643881537539921439367139585506241684096701389318916075034325651089888413838141272048434179818684124837595796810105188956163850871843528595123672149342205634058425138232863494879307480213420153218688768028912852571239426823746476853957634020301587445688916045219165067151904434170214085088124382662526087374460732125389164497344364582110302076702723042200457763133795212258582717091940833896574162652307140208683018776476278205449469029398650263286464379838006334913343624321681833025927983657651418610124010475069977533305937470871720757642041186543050223247092908470802878633462153242569353509917162156535738739225373364785228060903731588084259324806804199154273339425854773602911005116691114896554900424224817636551186006096513248625910494170868852401084568556673535256757287910869255531564219458040054665920565446968027713939602874922515093719828027537246395231852541301063086454863802762811556622177208360437023311859019817279984513624597851723395702436380808483468958556072003843988903728245125292268956444164410204428244266948101636924120643799350830506676669188675032624708756042461863541890854682350706677225203389746040996456159430271672501504144837837772824429267139002508128914064230397906692403252418933241118260738422572923138385266641219131553339152007495609131659243025776424994027196315255155793519045930324660949556049335049073299710737332572143752134754358237372647360961785612761036563890818293426927489918831525601431884602983580740355728847842973519146808734042176013522941593950828500408485052596059185326115291550948595178076282919126031084923415773581117763197924293088750592464211790712881630329491989155140321979054087448586904521391851293539122894698303859088663350332153487599966427027959615532874114548293051745804400085216732264123508811397672734657627037754317630510507848748653270790618989999007308979119817931637399400015919711263803681550291730002069456731690314949427963289396092336107314372576097159757727671516501049914297185233826239607523814623625334201049037199120382205597602488282494823561800242662418384467099745331509220691704057711801034620616797400188623303625261166809797546075024444707255989305099935113899371266866387357039702364980120485512838017038722564547880059936914245609211505102279734301999500095012754791292838495501916796622356473374488081455082130544023802454559658734880080421597217986379889085113493103016099758926358670858908637549089223832706790076322329520344042640942549571598876447575826734411692573344676976214306598385268984720415207104950867734201256017417116390805300326172667620047450976764178637383581047892483505240071893142521562601089361810798867008929019553622599843370911239575875007315173149506444577912469684714845351561187234408329394008573907538492782444463636215468198948259606517492308699088092531177623731883313218886422511579269400299016852787316809990745718822639855284540046810604877372606492539016248242700474753810130161361643394292295115918349479181612330389582613136774149388590181969125638197165237352130893441703954199057839453148685308686534466024189048235836574611642457479094814687254533926213636743407934417855717719011883639896250042655479427646141013523108225744030413642873055731106530892819077886322795807501447264525610038905655425513285443505820661766754885107097266315537117487929309848636468030089525341025791803255032510953166926905495328134685692757455344938567817594468439401420900569507289307509829904738076447512308756667623486214998185107496828600361868452588472057972370537373306747769339703761789926289670974420713920939836028108928604541979974921104515836125380774472913601745712776575511508944602021087100917326930332685183921843849320969008933354160186054016430625536399523912375132822666919692793616518444499207724650426056479624135872341739874084477868454883271887221696189544374265192543023998645987883298850183002248308336848627321173318288232669856442702779471838876435488439409903692055031136763705330288467114431720440947068067352471687137597505059992114748334271523862094385259381327054699912412887869763917534919743263926101023395437300553388598749319592542467320293311131819860521135829679156841195606972931120986555481213473146334588098760979843361815850006602861125424445015653807247146275939641083447734156373563185424829184836748266465349478201646548360002292790158420116343175711962362361057697840407221355247310406234028148110267780007098867985002881827683509495472699937069045461374793699720039170257805109298500443566437171537007085151008827716118440908162792966503503416012137460005759287612326723613701653465864128543899392147623184371732797527505331190026897098232863125905035666097491019944929616123084870317009149592764797442355863096235548140430751923916785676056360484357133519782973866317228568966016745007451260806372303238441609870220278060985414543025881669356059629388308399035996845564372883437504861368087983125272970889163649814838702221453107094016015767170369824056138115367502470308581376553866374991273577081658736697301601663110659788842982498944090813015962331765256454664529922313384606217468901753126972207838580173702221848313973701306199664828002535500699770393183498937042049268467957142488010434930406855810467099829090455592605779729750138091056374437714803281073263982144712564562181577681537778674781211242831098007245329783053304994724467908200387798777450760237436277542219893470316489698542162563396281110622989843816292650382292980959254382952188605139999655727180439209701764705396856308646870869766337171551740373255959693921013246178343090379242969527431144487263422284050297362933577234712505506281029180244994432976977845833581058250804367573585475577170624110482707254653579475217393008785777154802253502303460184732328026856388562308653860986498694601435563383805410087585081485734898099035494237191139519532405394397388443019362605318575734148393700155323491205809240437169105284707318308533985032146878204496864865069977689412389081806870457103315084917937137767988265246986426896490678634763753450298620706973765475701582386717234611880967476172586196086981333656824013869925788428047599343903981764467841740819796500915679601668630584340952817581422182206161002231979952297448957294516726968977444604157974596126512438110746615763732294830061280788580788534239261189402335628563934587991756934466345927560063302782008338847589431649665624105640320327297863891966529990364679883226033809713041663501890821683486826337742769689753168260392633944607649196055108412519979575193268100355274188517259741364917303716837565800511467829295215760482195647532534416481687060520197805490934077604545389294850345751181066513726046828451514884791727452063876478968657249716099424171483972226353872455567697419113285759618973290374709380502555434823074555862627535999588212003696433998824916916835427518606938459757735305931650326153737676376398782261339012200492197653219974928338366561929350822895348823721914065413403604899054747264372426060774515212310427071561517321832986622823102830920016437801645872252524692308530498191195780123018224822411266940309875397590378277167929972819071996015255566068370105158013307737190935924929138347707194597052706813931292344518346030442661517715893460668999144989274398647982557495052618725895204467210908601792670289602695483581232558586373396479094209631621881940580022122688067974071130442900178263437641912353771328133568127132755646724496236676339929735202268778477545174086163603550569659618687434553449428787287649121741430411024823797714117876342978598442557031477049717743196404424872992845505685029016171237327631979100738665835334360963503170645789918796533097072405342537906951360224466184481190492814446104150839693343165483948289434268141414379694025364766983632160216528258006100808596537181196498897522141108259523813441783638488739067247046974749473533799228614718128959580713112483936317622252435555611163971005541238153697562809984477801437113079130262321859997385850287770616851933598930483202043781261146477182274183293575461703569935926984028621588966663487787465516541114634096952626149740493855927538482174629249349562179807245404410534646372419687999144124745737877687360568377264371317487480962668899318297720815836025292665718600777043877443889195678319990522176701640430199972151335372527556171563806817129271247376441804874838238142179374656078108057725563854009662425693464319113587165342185854971277112060916208067485240357297953346008337356562929927693509840268513053682501225044787262507254266712205162810782798771044460053994261058302584064184123175713565284773979654906634064667165025732045045550124295043563521963025151448566995587373140496096304621742107514666869997066913128079199442133409694110387738135563795035801412912683803540798916221221763186725872960672638778831518872815196010507857789477180776884091339469871827390239425524597581261729529519303435637689679591968808736643860239194021610806006509984450008793784339127946092670407887792597017072908615111966037420049584381584288018665036170373634817254331544551300263034464080011441836682812898699188581738771134346129966388077230256112834088625733427438270771851177445876557384798453211351636156562931491880330762041018505756456160041127029815593989878443398226848420525032794209368287823907788828500814467508405806089357645967090003575056182639493506027915703195345953944476922710806349066966200633207438105464301457492897990267699333889093731988245267028735368358151263952505694507233517301751405328881214436900246599895022257586581185764599352098072298202503887099211967816672175519680674254458854535999816751128134425048962750538778275828056738030252977396020267096781917130538875210018014980790236357387768247035518216756090204404610266155552432659548861592919939654599045027595321696729702517436584091885798204653574518668288256883399068895393346997052486477578326249995990210100066296854388881042090528125352793795762008910686345975243417505093644555139119717113498214204292410999454511714079589782663507074649135727502825533739962069630040164763037487370826726400382383575120439854788541041968269347423368185216501422523479658309796538176314329194346890126509334597216956465428225654034292756931702548249420454845999063236459549078472311747896869476817941311427224420624805832925403896211270260062403158093262558272363783400309550909456003691257796912807573295578571648563278485699307517587477214539205363184162390430030902018327008024496675392163490186851418610029678204826845578682153712019879542804189547864826949721760670355499626617143971829816477321655311917708070532262353655475610989561842858903874812408251313408108159909460705779747870503475502470269516155755640453846403518845521026357158004534672945592571159108670436631922620321191912510140750276818044332529086651830075846554775846524998588489313284678831290177705190841656229587907144770093176826455006141101101876558959273474234901592998030588187398391224108840588574382255753122801833369990447368970117563647108393775594700573056645775131487182850482781651903553652968740024256986076501597114130436176491146714659804415264097779223553940441620286855496214096753224196741489721032159167800920965454769689129612811670700185968644604462447944877020746150606282010270717075813851695775277461387504252652941947931720972368935849711641517737204225550485372831092055543005318235557595678498986467120754930378586725865640294920678613787554826682193776618853425445776405076672086274683643161505592403537048180012416896807731456819164739306518598681200520519891791410673901846862499229561907597664438381933828763296599146556836555331710188332917129623924941839051155085264322346779667901149890350605135684789299436855983194419519572382052353819792375146775534468160971716032495091006083844950489511303269780845180163172651529080363508409862746940494364588789491877974457304468503754694660336753978907394391474491813702142031987585375053928176519876934803362257661582814917615560680862141861757178993045141833748024607509213184736675971656104071383444622610845928744906022211968838311501008776750943758295884333480470028282083060140419764655817362810770111479323210345342358613071704291415272605650741700610400372414199305802956736171161776450202541588370078445345389806940118847959571051551883646778065748944851587649702069453564360043509952827274835109930868582593061550935101637492950425565800206422005118060564558066876439978225708366971788805663824277110602469112470602092468438613916496535462404628040422917309571274967227625417685425672557045049225197394522133204476141417668835698589185735801608163974458914289129257890230445635358342445195387183700354610556985640358010990330097577348557337382339325262193951842971947399591355746198982424046400152791782263138159768144060817381106784857294662909915583374702169490558247371539593453604452147082105246586436726309914541466335549772039639929139247306713415847693842235995074088694641775691573736479635229213484141100340764465416953256753366388589915354250868624114862572872861637102659951309453654053599804687627583040949873865047033016696512969569663088011664019254969977415716127487175539507218190165652751024409112429019739197411641777460793418713892587059369640739378851418370419480269996557544832688107386449123741515916102838268456164205335932450884267100913463836963227065741967211039322793430493176709445516345970180820916372945193518512202348296283456626364568042670527605917677603667229791276168420832697373655329697120196020522152176809156797594913355725220052606252375738357753314372135009031708589523470570228968903926487452939470189911374759596512036026950415715205337648987015958956064925009385455020388411178929374437290400801532091033101860230186853929451054902773612626693721166599869896797596678756289869000120713734684593605773074894643800229401847965451032786170182328933172783205991602089160158415366046300004168682101278230756907397265111052782930226909373485794774842536973454547372866171851709967245977068316940591131756820002877204859708823221966317719962689133738672757834618299608135064703363676988543413646084627210006385218028370004655920521409467248403538411310243010384952419063795806500920132544794626093187764518394434366551195820318555281443488557377583403011043746054123770167610738949990646564437041098594571190626368707068130152474117965339491367407322382830847518895943934252514963009274269425299467738723399291211153336495179147886407360644249672649958326178412464742578930093985491857795351720255465516121407492134687292592042530104286003103558363759602073217371496431928700529096536557504013384779490510996371850003126087684025723021656793830615720898114030404246755893758105051632211100495114437943062752976684157195272292049464409696347815690029457761184076903390797264457879627327558999780338411493269344594049505019219016702750215943428849102515601649794683067610031034806587844957037691784331408360140363695822501007830424027415387524556032586361700659940947374547626775445864392792161066407838901579901233197179608627334699881853370932251664599405294832208161971199416718293172213491324003143767447649134321645780604419719135780993224459751280951094220065681310643032213614440532031495445799217205882618188302243374640828690326669777420652029475634953150035894474349683033137446541376520368783491259404019228895408374271412827819089596080917066280458307580950896138255864692490451437280789432275309143356801429307396455441868847324135347671839465566384081309337519225217891188057476917824240502089803689333898223894741829228076223601585570893885854555374328705748937838760990957687120435690062714638809246611782304039976661014797125592354508374516197902919111418303022808185427979627731812415865533132629755422304196565151570465622124818217579369101188581350046849629568613308023698672183151619291429382521272101037269542972018520557560862738689011868355079646543212786228270644790614560948133998893191706694446719133924865303861988796615581660846294783316151055647214136854307883110991291417160375550903781523877384914593913765267352446683878064044943812790821814110239946280096663828819278099951623627740453879933181585829482233832393956194823063206507385914457074159515426973940391358213554435793456990757387322325775915596533945438582394285072479384401043494897123560528596195670749648469271892060696081540196251719511372000987266073734964917761108608625851348277881193289954326861734679199677745131424982120356630490000535824199816349309410814758297436847852201327178128095618072304585283623406261572883242513564231396450943016052723426012953238314313872368911676423200405946271714252069439343941687290405833202153899276824191530411603027856187587936978879477207968502403817091217350093727976513089199757444802126429518834614258293150537974492770983298236525970706884813355674194253847170594808459777532958587727883674041309876863906944776061457560295091843994778705004472017678465616389368966800508936287803637610228956148080627293903355584874225297062501646907486888715412646864704591026390341742005708254175684760662338001419260381021039976597962148802075153551038000304011622233807838470904714850900512005259601490207320323509123740878657560040479353327921762753164809338633903095681975671307196448527691291580808847571006146521760153459939379689983768055695720154436335304546582849817852240735413095489475193871490174210753581615100186610023531143409563096747065653361104472603725013173477617229780423463453788327691478921756657459393940363034077579870613772366177868741046055156200239590579305771321965297514375645172660856590065727458409890493928577981995208084033912758067228182678261225768136556311205922667052210978444899690752081902805035426995910408307863840568893836423566936815818303334887886099528666004899288612300291726487793691371318422901305166833916284315943553985954184018030401351519218765470725167115600232000495947455935934155738354878871732060452713526994506616290900613658941585310156408918123565940871299129996403327210270208877003392371234934165445230383924654660302646029040492728031432755358555937150490795533426243701639666573440454180870590456037992052695949777662162996443465419389191851970981767481300582210449254481303181696588369840993712418056281821009084491803025065629655734487553309938619443390761724709615800778140195734611197605984441658001043819088264198938409048507666886232847562815665693849435335444217321235536005059287987659023747722661195103329835404266476165067680573458643598771703601897733986854504499349231662528002817575859701642420906426226362813077513285104941860267256020531213189876465357632523683848658973815760345007938325822244360259001354163404011268601709670558568511676667545288938136664109618458598268705212905057782066588943830860944477831866542254701025346059525651376139403450693520450508927543430270285214944568368585946080450625931229972736188578198784270434859828433728808130308952542352339212629986770088583977156078587799588682893691163791188322559918927721902984909753759337699647962871145182212091879681648003776299320809812341792947098145846595059661927190497851375376830930654680302587302260012266492941321911222846070774267030023626896373517125619643817669725940774532922447774614177119615505504380006652312019106864751331023761340489019892349844162118494169675624192566025130366883548421680985713148458929811367308344931404873775316535571789613699043359468812364757521904066722149922049229752516892314611856456418633835476936212263199854264674402937648502314772110480020013337428314133842583406022377500915153445554762144526126409648657660928939427210517226617709497070577280909762127898243585132658286952629354999079945710488373924653936045612622642040247506021855931079846436779922601414035223895759165591676189773950609717467629637996095799724589855746809431577033256492664432521603728893075600904192638599824885480229702602892358758122813686718225317948322393398051724376122268422617752299715745961921725931941232894934695720516916858765457650678566642577880889603020265987825963853322770277279206726154992751462564678986134714190400959417847248492615663409109310704407739518679303696329255775627750666098407952447859785663508493020174206893303301296070116901651714142383481698359923452958804336520545382890967527422958132226979771896640706665699258459505489391399005614291390346255357862488401767752706951987149165670022935318090899725893985076764970813696978753864827424114115899726102066720020134804473551760860302347759703592896754823515186391154791140417415464767127229645253882601051123347577866093688561181083114695078064244607494119623376992440531957302124009598386500728111019318636417817564447763953213644636597304202687650771747899885757580841004472579405829503860907510900867540779959337447616141392332605999232912486412350005261784927546611855829998498175214096377495735381362709635358302591441919084399699132365035945508116757648702574747464957843329537248394228394165372942916483875304591964996745901117100501316280189701076470865191609531855727653728064955371965927486328072079239861877990230145449083438623008560869236806482479769735069785382125501786676009873944643706238963163674711240472698540829065132562798108049601480562010277194689116373421732339436434875902564731055364266154833970487408403838016766262235220509993952959581777155035157542089215656346453852541582864915021124151407959020709927260754703741171517536047685863783609881282748877383721701890702446409927228313568213383665041033958923573259096156822549159721252151377127217193171089133444139606433936520286832695247828350328398417712046352934339846800318402271409911262024394610877319506960843820024663519857348653190599249191306967787581351984195690275514348501027346444255788815322058370198352180522293030272601203929828251686944702588636057792387626882698813519543153915207978553389618257011820696520007824696664750714989686625714806066199875692985307104180750952004913832590241503146893698851435976819697109656843333456146231842416193051965679018853027458764946928377727937560253363089578688337334340038254265595410042771569510142103967318367863002894371230027010459674165177068944556115788236963883441209848824195442934593249509020049690919201833845589884209089186036636965899876905572283169055218632942136897379775056462620680708243051665079644307671667359048608726096958991479351968473106074007502025520665215158520193144364994162825046681485612780741299377362954856089691571953233046583517874211096537939747155479160307583725161145453047739629647866253873394990367414483863210819419861248354133627728132541534708546861402422475685992030842789481652270407632651103558604962262174173089086148965424706414261134212229269831585078858481544559234791198315745826088435861812128158384682265135980282435051811476052598083622534396279205197606368034697143746474763955436506983047014301578606880822185035016624660203488900713216722586742809865186931072116414076667220534299909136414341424704946710186430797318190176026514063329728695259476741756832457487895279414555071562326853060566517994929804128710282993032233359851799904646125450092781072172246603764218721212573796024065037553563600596554321602965517558149879908629646347470569903687109431937114094799466137650039967324826355388454246851342151604206481326407264072814054825756841037980350467133220180750801582755396613519770917728661831122649975666829968721664203354279774875424621704510939452627099424573737469648309424550231018007500840812936914040425152237578967310220057320749170710709901018159870103469039130001270879335092363721589263314028812721871748606157297907312558878197428294989418709811519448142249493586062095723798657132268771607600495297125314458256230332222782534528753630360446834588993038551853200633539355106955328515554239153479797463271739274677458778464152795151667225075757470499260224937605269941866501450843412286344018707502628559176670134875213273198647593783168065451814960631866603213946836931226211951638855919237360604336079713104564811146882526647837796049052976279554714821016506690762794404009325077240649809020752053362495714091715285599528102156317304340179501066838561627218940111653123633809819525771589376605848124331163744766110486989979340993876150399573071030977009012594888012631429834509904740330210335125032364479062205174517808727259217466170672390557213216343757812190901100342496527991641682315733184955898810069050999210372947757976816560691294291375861213373493859189897599842728256599737832016318144563115511488474892404953715561239203664684593622049267807937760787265163622081454258726021437255212148301684475899499351620951542229412074271272500679553650689961588336949053549084730508466136481857568302153912811050632270682539093855431159138349368496544120694545299361612003010171987480054003955662595561361430236087887177851161536636156850200131516110745519557641173283262809572512245331809377373997984422408665280395673915699014167808778951208461122664914162642017391362538317641229962721465056547177833305750841776508639926029979169815262865565225189708528683523510863444419166486915168915809090757530924057652181403063254302900753568701111530600151177901938471519729894586570235018667391456488006235584207283916951452123166055857232585878999741889025620789205988887912611691927906714788039110503629505478662857925025001369980269224511344856999821382921551284995823421376342051011357747948645864353059808380723295344698502250670128980142457585296517556414579305030214376257194069702145540189759834703785438326118354344659567529370001111163401198699795862646316860259880690015810120641339718987990786787180048890094779424949926559330478129829684669536829505315119490307595098159547712740008089153148465754978749535863155404409830278813318956488394646454235143777595473897933878754598316987420386433197578210087078036893594944984950099254229065388929859176563861880338905172266814433705158725464740831256010314168297722155680915284838191321441433156692018106615566592681601474558252025298280976823495762975230203715372150832927655534599425666871324816984094561456676802871906610158138164738108181924532613094675885651679223263895662091281479493299108812833138733856462295805226694132543932314446778450806258103036217567691352703158576115101484647561353696224557616989886602019261399453246745158128844412516064921608427042857393377234049213083959878417479872872164035491852182042280109848876096056709945248784268732812129053916903095489814460150159492229917874412975570325238151353163199394438177530144101150185157414030535781342009164653719880254328131861905012692851366372967418445908823892029564214814526062961167956296196085405627964082054621850830877846402052479879007028012501646345279955922370574518647392168913386258262185158094808142216304031548511795255812935456938917350959285913264257417440421806482690568506236849063675736762411041721156453951224954729228710146899826513194011188130311416952913556306905420836131212900235047182286395005787401380527405157430709359271525957570375213639810684430149850022102527990033862971063585913666252771446338271807212783718005332587419109579011208884486300882634015063320273417396539770534683317440823144194665634215326938043998501076031358142498066064917637165248528887143846597092197880836728875366256825189565922918676096909532711164795344467255195827961276590965681681632553749707653044500983496121471216191137473051337374891454346609557181732376478055202299299124995273069758946627439211023366282480139851319657014227770178137103428881475071046321603544428217830260721470273214608955039144361986882914729346343363021198246876532237052444050354591630941556057020208273858440275647626260850676181651794322401295659978952281100534749096130627781793466553760194126622877849604635338284008248482562236575625838325371318637637710762535053764480982183842774351294662470899956812570196481699064045314927973310107439015693094211736613627464091284565863100405749831528843212881659045440474838939392616338135777136808090381374973392092943393789246996950593794212702511833989007970624600581458600503776533930115922362958897852538112988634239928328447352537924943550739645355052707780384406642376607138157490996615956760084244777000190349451941626677124847327872148573591521461308251608932764372193771519137151310854104743003955767765703800984491342557684863184365842169162722810515376902838206397131416504870398232031505222151509556940138337212937494375539413222805208175440718392058851147445186419827898723827522516943733665740243382865525409674162676973340348811273264007640314190533040831869778143874053183383889944085646567610035664574882883887488389317195357682426170009847046742730589436190434161931781944071464295456694657599882385305590557377668264784818502670016707746355381021945785061097848944232299169461275144213122578227366435029365587934794461585300188438276833424397915218968803857256660623247013983728157347698443127600918294010352339992524946526921206865466435855411282009242168272177556811282652833846123569367714730095772389135752715311461693674631961570626426548152827773627811857245986396688267541513938161989051274732837809770589038790351244265689694827058618274868959137433359079274317032890450950082745169715806253863507364228364229908649507378116984241163527507577382571784141042561053265819331744420123774339972179786964755030200611967396988457922881441456998677222991183921047165303358836172458502301392492687668135016336470747634434837925702346954258178890339586214834279637087172544306540312493533143080914329398953451215836472764368395082144192703165503952837561851407962010804563252312728471252426776486384042705780551032375780851801307624752670937757988769663114211495938750976407559028971773067700362903595833979504547347176660955997779022481529127960142880667407393684900730619912205388027895891844445018782666960847322317642704649168008101885451260362786366387567573900551354485510317793190646633054653858462319858924751965895936751782006361948412363597690216941969221115053191219925003331179372658219855423461284815920500438994959108272794400603571095680739381319319516544607543952091208336397433417530689413757375533629212523612187697935126299536860209352594551481194813287652828193508782306138590605070899462251952661100205889439217098562932052303685552480883430280412335175290529945306152736431174749988118557832026871476883775351567743980187611427218025448565214102315106131599714509279694080418720784864773390053623218616771140426401949163843797268780810276286470659164474658947344440871392493055883376331921390734445780185821727253397364292767270093102659457949748838974490804264310833227067017924897800542534816028669927459443587364519487343038836774965910840104715736183646733244885941488452863670357511918867735832763971884886419519281314083206475284963183589392194251093072296112087396428364473718873829205929043739171759865504588197804691520102800450116171018713558393681341880774174562355225331122010272080869844338859345752740985553450380280943644384795219103149356104759221788203748789299841137143303943660153109065914470963823995574946308867929219063031747431211619820323322949330181954564250385793413902291555397404556161474928380042015838559933444028229646746153176521209652937133550360613037507271435265954466754872298956452327488223014565209157409011218576544284590357202613329183644339912359630045290934390396416526510699605079500848865657708726209550157895062209755042792081861321057581070041862045625918565838728137954534515556736173599265329221830881025352331993582226918064641668976911227716587685771041796146866256388420128754265745187444048497399473792462010487422178460246446027251238193329827626261020973316067571222691793952026553702517490047612106324867654871717625331130065222340007000161316000619000940040492304475092541224434282243764222272406917872909950824553870986860876463500224108453288364633381947360506137031828410868141349878055408242371640254001219480282903620119867453754972780654851177145725028039224773522644189628972403685200652982192881682133957736327994819276125112167691842289453426427845340797950170769322370290155198982930788345111320778485350749942685371497603392556347040815551925909144992417241021870869250640235538187509309003192807476339988335946442788776875702729689684338056500088046932973156996080049023273642722626440687552362750382223557699168719550248132583536086392485978377784083963758937121411668557920338292737258062492947063223769948348407472288401315558372224073880968258747230004645531180643653593080553543932284500104154401987103455473370633476494934137593799590042180366798996138361224667013218137235741296119246673515709996221811672349946726306630177420972929207961738176916287885618554020247133033108520095834171114802319203541799135882153500166111663885607820460773227221271752433226134250698048572855374994458122466986966529738072423744518291026927482129756139704376369485541267599471489390826423951498246841124127212103967153288989504222407170373277365764807418112993627586279337088913047031036294878149166334095628836149460571004752392810518468073794736596579802133890279630162008921048860017374251421224778256325869186689901532227554520345754376564816041688986272067399876066750842151455077823281176520216454192206717064961676721237473133736875755979678521268741962823682324165090009339567095244399906273779119416772764483953504819065085350599189474816808406190349008255753104830748427992838741730916447037485976100858027253592821243604305035311937924538251249813923504228290026283356599150351863516068688613945599918909906210769778759266703531656995524027222146805512228316368770703859110641564456166198391156242612192393745792592555198528570208320242764427890116856190882580087800205805827233317483942668391339333811076638378243266524117634804034644786251731431332770294267075736217292834654148054722459366769270132230929375526350977473002241338755519578833938981720136921443318734760867224381229456765411663325685331909309495078239184377305454413266223218396488776920507265564499942162759608760656082013067745498351599080831431674717750877913379112372806701381117879452630160618322942035674876133089448007786616280397018605496337407319642049830430862583891122242064416145409108189220214611512205069676850307682037290927470590942714962485690944364472341675333860558996112550313288304830672836408812741343098040220147438171805218682893510971047179709158302086339899255401123963909532755753048274640206265869758960512227620707736186469315881921878665259377285267508239707249943405862652404381384941400697995594033745583167166801661436990116908582645656434476982219830315056548933135253993140449150492006348367069364638746286022845524227417893045157090978757772433847156164202105912237036132089048231907271101337139124415852655374027103063302354099532781511276817010802888415531196314133744389659458058484845592639682500688372464942621775013352113847395240066576253680331208943580093025836945818106174826075019323095597681757247152132122662408406822439692178539016001902832293050544970080553773847373065413464304287151756118759136768787665251797109699487276388909611678220561616496758001509364895622865054214868969814672713809057910756046593624771203791682611394343476353102815041495191502943385125247964300556255632813746610728986326094467339290044630475432317441832128696148206666942251532446737116721800963108131621688486399236874061808320074036505775946632938387106852632883652441826675053957552771934833938056572553001603067926149427070628779508873746294820185391870188500718457060436764141889179923100988055873049640427564184408545200218065219632444218574755082304271104886736141319264583342088208739021611015934414845358180821427092318672484582079964838067993001547040844935997295626375091216596199855337774865353621804281761290335732570746304954615510889465569960693014816418076320265288636493872627166887740939926568496312611739169263448541866676739900383442619894730712649693711569876808686834360132107676079460409649197930179282247058233837749652253250929925838875704550683256020592452455493960715835899513801570311791236883081456761426602376448659889098298222551549724550017810517671294332875250154483006581727104857927124835914841799541098765358944751992302801230408078604251275152457858484752008236123234783110137200802082922721702093927685589312583093398514103105851424393078211408457600974426988285956577275971063356024134812020539581937192781393768838364853378265037774616652606316785001866192587941625631088652812263841193421402727740611588832643712036636033767312799512880007770914172649160280922639365967121995451814459130221206902413738055695004432932876533727580290410020412965748862375905452314982774195497886935788607353100609180651999516741553159740172098883537509900408997028525095277508164918053675922300973439575936659334096807330262571735037784569181346026038053673974272311003174914023984519445578629966354107663599210520612304679926497873324121172504576322566695955589239833128985134485512955323748399175486052362476022581035454877037893693929613664424806627757267428172898106852648242754208150239715772419402737810322477843129558737335980397278004458691475885959648928814998407894752192912155080059573279206558338375404970265291964675536600801499606979563797555570158982076546384113746243686152081632249656507898706514877819869788462067789535738325473771246441713654389889248676372573421553605470550370761156346100012266156391733306111325059685046372431991563686403529135726742408364307816095900977010102570988921238030095752893871064550731170266180458876746322049134132780859949366629611002683653620952110630579267877535575066465190486693830807606807049497679920548769703760218837787105210626768874086288004115161259352914178863081801611153965865039055840408725643316384972260707733195631137577773409871928618792554396523941731970720127022413038773835248150159008811979925236597302099439526200809798717302555658307866889911202065368915075360226162200400245359749812065038600489581376456879174644064332286852942787272728582529377066663028584466430688551024361356595302594361588968060736281798997164184992369279748131036468555342403294596879546553150240942519750307220036574464876048885687646242812247599825960304541235747420714090427228546161495621149726240802611938278468354639317925182167955563200657302578388101171224239038536907195278661191353883954502490310825926827384220949528714765237549624401940672535070473786893367068863782573135566532027662419757011635560163071057931860193999839148471682519845675515621518924690578930504951089585685366026240545909044618694201770360153606545361203461207065988422177636545153757247626135616772455278588433602471839042528860885459652932478187762330380518121548230980459353608454663001758158468872522533820586335233819716012877602349454557491499803040813880262797172707591534739602909801014643361579876908246324959028221339495144114881060475411562765314377121394202170577549969904004151960157337759733880751163495123593056612431783766641167167475906001041744360381913845543999745331229941437479745840084664528160102351989155273749149530404458780574055353872865741750787458878868582435417370756108254471962935474530756892022259690550793941844483786151592230805646877064943429688398340354868716241467399768936942629804301761108697546416058743523626245791442898341292979705965638709673921781963963311744129966842796882279595819727500751586117496989192145064006811227073279695002816446295697748137738607041337029909389618383348642162184544082584288688885527124471586500138508728324844727069975903886695997727340220851593883837469967290783357046391453863007950748111892891220971323388288659265976254923827497745747287333708399222849977933496998066559249979772419625638818189245659217147181039515972714897995333718481869554818122147088160632603635330967942467530336628574503000975991154986142923290863081635299793450923198500343408059440140317716277877221948211221970161997294768297066056397756287255165238327624877033091668099242220785570968387361662699386075606768096448052212563058370726321006645428243634635820865859773412668632928520456408688286591838581619598905805894939292655782937073126960465046651741840822304686781416215942649221753850488682442028517145014849617842264527481405175472749419249010430197841439579891969572318038341194420210136524525422175417795415454063985126419514177263640731489618671723264477436928191879101940017073569596734370963628404614115966137801361032864110144988387093595125624430527869205324953155379219646592645897508467031087899345945295070216546498094224325769034225489854285098868327500859672446280884575508391247810372112095022294157890876172983454338010234228021080719758089402324387327169051359618010155142169315644809218615910106206373704199090731657770439172646608221334938077214226443453092015500711610589409673502300691137686236853928254579213780112019565687548485292388880131810461585127330301617240823360785305273689308007311611636261344646566114825602790678770412085218607946526608391417966562729758121913514619376769130680030937016645999270417635515533367854713420600578793863001490725250872800266065811709775483799561633697294287293661482496934425673067040939463124585737348588768200224156049059828741879057683648988282436961024976616960859898760229198723332184382757445966310434834975777255281205955350595224300149595125655048601316650234149871547680365357040597871342072631153082181738792073230363560636485791624306738275786176988963531773186784695724751211745460656782136995471777120378105359201994937290483873212073739590556428718736876403919785114903233176131542150560478793456411352158220614632183344186813978801775559384728642306292414937440998443018232269806194813583279909300127260988679243002338719253517070466662755557436373118977730667319427962715711926921029645162999631872650093245091884849669691379654487755533882071844877412646259365701524012780781929888994517994437223221555068817825411593450075899977137285418694581409088626941167427982717370947541894326407271867371844225560337417176741437923379903769391069642043399877537516475832546675256506871542632132050913225021705609972215124599284244618761166100022846946537042248238226903531927009191758456633390123708359526653712941696104355792284054145996700316890209010304593469333894299153552720687272862701856732802053610705506243343747504649693380931018828880848045338550708881062308738057856904232777617322817250038016562062714756966960600266170488663501252120846048453619073925685031864458585433139961881543656620609436657183172299746976173509514338413940482476155287840197226839278932307662327164031615949783734466125344767238771732228519582384900106320351151483795808872344367216497459518335018833933121339922677051584168066230082787085615399953838564208302910154828251444636855216698255981699008304830079831675795303404176049780452918403735850583113273183039189762319573726441464657635377111179168580455153532403968103070176717232567091351553393519406968634739856327755922309284586589991697478002306517609849084609746409790072741617832977655560124877554395336499979593610101326103026607447472027123132151689338571750436928135132611777647231746332221533563521472484246929511133820391269071678605021502794365082018827404070677804788863331900995113303841915265572376135101631912934229410908917817471744886091517182577040752964648114262572518035085699391906952890839420992088614237606447633439976873733047341912343291541725402630037779201673400492596920009032403837614595651931899320851912993326240527266116108082094025230362575915387804853091457650997248059290668458002101580604893580983808219223856499016251801020038613192752608276303587867171523149812489447034747205728282988844395047422209583886601030816748152885254058553740893190857078571334790511062251825833893965057191026234810073225049468470929269693134287591137072246685994903116828912927405214214465678671996036413543272448890504316171549047835463371517057668407384933743432446903342351386853482879138286319979384552854837939510643488895756276586053601157996577101254461918428728331296949360123629301603834875095048367227897938576003061348008798608917565235983684529618627026683098466792587672409710414987927674858022500360570032898865188859703791105607851530653106745950543535220225093554346368960774866395203117255510090681369665927895293904744272678445308332200856561224689028102154862536945695534715233347914681503944335808439329080488252686206498838813001072050438886092911977122197782643114131665661263142768708053781043311307368381576642120989883367961566155075734519038747633482935919767412368108356527958453407844970591451545586483751135162401655197668465958198119708622273620657915715328873428654673362301610883240938590689193522268257509908585801087167272646698287020066211324157239422199371209198109987115614175999793979893176569096045537841352002834153007611613533451817839624959969176808751318084547772123629352518325244036870168707826341339778380603303763302374136265229146097966949140783995188247673650560891948886617862548931698806090728194644013176661807254261289417504525058331165075367058195905728120331140220695988705648955789396596666879019500631405771742980361963455715762519116330642803622012981486471562640849859424049173318942358633140006083026868084584479551085782532508448848548091355959409730242075155944284370048806510560289796405460197904738717868984450319690534802712521816500316551694977047346373211749583611756024113236672913353748689303885750352485673013000052922406822478530421983647797083473175178944195824141689493318119348406919018315028404341696263809960400240948492618108686808762210990763534928965675795515096583026062433179028259224078914647154517617101278784127192023900756495128267473386636084859709058736090354877583825710408276150212811300231456067890299181867606444258147771158663160712879487166702638375228901851697161981888772933711971035169554768327775923642055653173432584078194807349805963805328120590278980286696360907604874751770208641755141221500817827383003126444020938440740636160737723519003210231456881368512885603539439755410915056455442154161649660764599965215649999710810233454199163811167404473409935620086367127455918433982250445712206925459442614588948560538426194968153201956384940020201085942193106639479175666545983429888838136364190247682490880742977555772051775016810860079062198047708700511684940218416124355353747716049571362902751375111497094982237340526376812151748284498936942930868256351995197989694051036071326695868125432870719811799224759652023096816392796738958341506255489613668853820464243123233553574973885563455633485792635117637298271331146659640589935425051547669433929035693303796061212787621898255375086645085942773040125784739655384937193644396844337878702463293575302514892145423198276791760259843911808010092137549103975782753065059306276079965456219688394674870666335812577882033496238756463541196495790574901316819314996166373289640419873538411154272176088750600730589137355817254666457457974222530999065473656620513416210359841604089283988579234213779399665744085751705414933711843604420782587188206921608073340730445942867058882890834104104847434963980527914237262865792148380806054671619886958883305116411066051424088817908917355062475736111957008810957037537398168435178437572581435958366211257935937664262651872119095301549861154142561479480853826928620336378458340192323198020454257364419412028782055895039085119376505199718478618430719018411349107280271636506494222082394126185740950830269726181866576093117365058308178777848778091963085041508450329471769890316803653881785113512120938382913449862896315814464540445575030685954117650626852818786896010170044540516587364777796869417650405931843821254672387238560140393707279535685018913189141590637245639346715894047311347113709728203232294231419336594395032499056049486692765134556084201479674808364319516715985268866664859937243063421496476771318091976081495502133894826482924219002863431121266799117605874622235780522281742389820683032595668219663714718868673658705974104109211807353544521064135880020449168193407817144290990306340962381810283568291227892879373662276398233724070566244853803652736001975072413180498994340969831705691624544960674705063911886763884536421564380934012168961166140294284738769359641462362223734218703292417414178411757194792029141105194790178693307338188836203963991054591857237369365037323615606641702309668615279618739412838622603606923000042675866601821900665995901803218771590159819571070469264059994091458782476784595910374578199978012053637355221133772422763758157754212027604317308403664106643539108130457959677940610634926101817474058457735717606511731107554361647448589185961558703547039019894665925789516858560861310015814090298832525592962197332775782685429748687802642119147959860042580942241497142777712975843162276521400913509896009657639901963603415975654049531604418632523692563310116224120615745397399902157529264668616110519478051676951180873768444768734098275265685582745430742297446146270202426476654680264658379029148812031333477493193642680809518672111470727844606205883980054469325064989956531534459067431096941481401516608309571993658690891001566047235210080588662283344925255060392753105711804903589126378288935503183688238189348690636280242585548744141808319847896131147989351030225939297974283701527460244450038650501219138122050254261285259266272388381591872485139877526401979261315589971088177692030287569102298571605275599617644655601861254687940304089459558346450083483367501585285221730495543762181634518215822212165033819205481876675551873374909438502511070153031208598669050504647511043187711854250624345013442007139726079822920901043652895075995240466667058925205626880877727590180124994676888922555375914217153196251935199126228374112903703643628676875446532098325980688957156495165724156479753542630834275746974258733471392769428846154327641636282752053916321043325016745041568728985683258808472707784753193676838219042750428257307110537241055858966371176021272370908476363180930581016130693976450691974871700939186820250508519206753199932926555371952198153896080303674185291724434366178836697976894339678628741151013290260504489326317847030136335546528313345219117156301277871153013514913710899799127628824292154092045365016841459870780217159226659640047922523577431003460266090716571573480410432160411597753007225632147931983616927961958229640805537274044064400871097411495457070211180520289591697781335692584582395866040074988209543248266202705192881364427753640617656930985196017560716533895538368458079209661588851633978179113893526681169312934669600536701332718135655744414737357938028264158834400962784953435972364427478617409038067920616602300990435234496770114508783891405606397627287435999422035110697238785107338238174192898065693759337016829411082581021421051315225569622220384744323744601294496417397216213282346273033563067708050787140148894912843339783103732282789208547153636969924674940302667149546581420627426455484086276913673448601026807277043908378572565598037055287286647197797441772786213130660661668478699088415937969047274397470587782206725808303575905603644145416479068666684028168247148069577993609735674960794000615300015633610630323899374376955224578848160387671677313805805798380392362124943003503801301746457932948157900532651718972068084778565122344608885923113040505936398816405737158263950095648582062755127180856003586657897906019802621377404668146053526277275636767890246631322846911693241068431377763817984532493930468037296729936955098415522290516383481639586146414560710933086163438237784616522257671606651703284282058457651124402286444475311799009125048444554765136369847458317773811166760072208782204917253058738801703386243110216363042122191475081659324485536990940101318504288001566627242485901663571061980101458009731226328428351458423377535672944954515342514994531014523369489022362012374351713375174870956296233084985033085310225376815881010681041819260468178088694310387296459962916783569260117344552298582429944768898931938029911910412200884289359480374450102820633621776615082925614507889829097996818887909876676942822795229366342389722208313731294848880735963554779014831491388666986480714687407399819581205424184723539158777274668045575251148743051494145326349769335585185806430574237136841617496457818496673067906373125110870538804859644508886482187065616645658546857874288377778029001287986293727924305149866686092065115649194326494219294919468638804265733630615190832943941299912172697662988840733432895422715002764049685555816815990531969381704695350415776907976335977427135485668204069644543045439878227480868284609139953660474939543567252763625449876671180468042723364954475887183799507675641375788628941118644452827682887498264472312851424986561174550690126269570240940474194724505271180450526421986626075989614723201807676702057692704172180815177841188211420209672435496986321953109760311582045817882971961694437222114554775886841590784945908411169021150309457422664422700201208975046039869068593772590999511778190374909287906055712432400035540855511264790035211777059137376754245775625691302901145907364808754332491862438460058494985622582292260243145887503499572524342061531535700980496235632572979030468164734894839914929698739478715886645646573843619949411663097648545845914437816991567735995997244498147942234536627871721111128915965148989309664260356088571293487585040098784662158322484543181986607465006523714020739569141809149652374839512618296056348487782064297600648058555036542859510095397196516377104856473792391781059429611232749820238274073745234270573765880282891710971997812522649395543473966585383958994986386425386383707851129377190316519270985711787007086091747968259879995050813553069017493901287081993031424925836183636663871738389088199494792930034541859378770936228166698152613940478030566786337413513604795046702784837370780443234193788521978158843109763918993213449116641281999625106855630619345671835441181838449527560094134623464889334176064514571457380753357245206530837081047832652199384825598169805408133324696797896081308759341115551142763036915212679366479641425374096291256339926465004760593242323045049165860207089293806310611612281814663280853915490050398810545926227095780414701837647890869604692972917844009339482874983319123331489423012346530328389663316292511448962217963128762145956938149336514552807732422677229964521351288288963806075973310499559110759967301314540446470657563464019869381463474370043423927699515520267359854319503306778454158502147835540257286678330207508028349268700819026784256214372718613076460545704391147292647826511622810404284069904956378116020827813252481548719971297528313851039137689649182861342033130261658023813740045667542068133481054152173513129926444698321616798450518504655673677556918747103268822483346475497465340451723637706586533774022598946025801545629645466917687719663249113667361161489317498300154802473536406699330839130383212616506051180311796554393348453246642866635438352127639490183073818188300740889539995332380141914408706969721894307392038861794848540638131615872773798618651421663366028225472778373293998664171567613007835144972112880512209817910187787952569265982253227414580336711315227402349291542053207822339457488196649781354255273695171425397930193340378411997052667614903799447164106090227732225362460231586251854617279572875886203581305579007247866165587420795610856718975416556713360759353326945589800668327596529191317058759774264418022274338758050796555765627161769592966896633231215583073016190387814295447274617668786884918573491473964778627499076684216824803774160755609866911429154798439988260140724524080463233830999471214262617583024636502708668490922428141111526497463816612962664269081947003412828591090187582988591889875748164393242169192719086198013165876075820428572669013295275052357189460329759329116196017383901615400439510198387089523547029138659213963627730597811968983764656662786618162704597029037074921091176710889523756486613236145743262315685983025566696344624762608482199449407132451386364482253289903601245694733955037556614382511642019141923184598998661429481499520195057142618579352828848355181005514540758334753770868486726761930279282647960316609730636427792310643492625663408460102843501615924176466140228737996859694421357398292569529888868628372351567651290840884639285957583909814953683387172612797439944588333437980057788394654858941969997886289354502832398582153750107053329933021090200388212012158155078406876572193349117703235063073789583171290330093191500214514742720181295947926664406770143408035120293822545058692853210966105560203435959790622011507092925674883584728379762162929585712290840625841687146595286215724839026810936282592846298489395621227784158967495191675637594293356357468053219325756507923370611206394245733087311043405539832187016368929287462054008388987746848924199010380246941481097037671794971863729205601693477048984104103207830331454560941618461262129022201488517764805576045107407434627802545952630903531304266028135694637074779089090347312981525849998206201627351473345046845448371787852522191066870242831506824717716460702402795108168115549687235374741590214661595319459698904255202870692559364155378497024747171592758693425419908013565688197216966323117465315429172224370131208054502256437241443991961747743495100944824677976504362499827906128659540601117814888433442359534225220260334598632555717325251126780870852295247163366291922096405843470959472081980522662851416729840382726479100349053903671448178394881396692168899205631281560683448679347727627003130797047559931111242432261897583548751271750517701946287991179817268473888795410731333776425322805801931667334007363450668950456919116306872592706073246665684568923417135587132989663214510441592213583311722700014028586837632488093631934619338958650740657336625347420598660086987056611089023138718442935926916733643889144035746677584979290902643167164671451242117196134503550712937471472341787604447116391217453151108115437549419134379208946547526928682807404008123769868927928316866013762784310022700648665935690423993077305776639437704591744759674447644475024321165578556613141784849779038118774826644950105396366826898140720707673666366724031527828646296232803279408254264049759799014364883146033906317968510620923199957873042313354136700961574136126087921689148913924673092424265556450640180946688790987832698215515828076250245383246407631390686351402170249340929102164782838903817479155703155546938692206784337966091283076324178800796444180753496253885455044142637025838783711571249956261146342054774385224905267855395321723063132171768560462360324562666828623519376012259255862635312000402199180953789227086594335286508422250038628246608234206740104050189750996370869292609124413292875502118800498166604440250057479813709576197803505353599556291637424369981879648105523028212016066482455427333036565213377220300473022280393339323734201858276277392143219931445274207336179357487992458329997807106557604300780156239002702416957183690529767959831011233165618509763440442910865746179371578309115586915489621665126696325941229867875125052567092412144190809421531051579227513006632545119804775480603337171555550922282322846502230012222438336734694472976806930017345056567057271992903991350398586308798693603210667480511910629339020083489668598731506948735015118131643190863219120899842316905039832335712956590246786524744812779718260864646148500271460315986340764588095628380984230683994420044513828159483069603225221115356295314138867704504611321377315424418269001624015519344590434923740246890302461905063180897462722644362587335732507012979563332855370204949053471851291116557875922444198295946476805342731360709285791897099746531793225445358276287615483241703754383920793035981072923982411782208566548148013763241300733640679595339010064309511963224353268665729426360698709779128095856888303353434707098081017066889062626287618709460190519716328062901863970678721055077154378835293649547216251702830654977099281935139405539325341319034417514034945949205470482038102096919397695936007410541516242687563874066444339196829989580033385037932493628351347860253704874334176571937101345579041840182031769011933480967629145309203468563108827089034353625305622616911894897609351693602376827407276917646799123727979277619378660151527209520257748405643177332766963101413854260206700799119375233224198307361590805808172115590657573441008671948370909339518739484559121943654310041476480252920522484926782149972760337418678809257747807410591878831867171728286519699850271489393406302641135028268587183819837867187693120783868494578234695088657275832037878064398382843651755607715978483061900387339246944586620028534331215193405336595635730629332562811160688789181728503276707542119635880906824580269201004540292737289117807749768812503906272826890034184585100153567648985265780797530247123315236520135867791604025410981552510766986708714193475520126900344167370191137298986282237830864581768671702844547709758750297033540527292535205959885346450814665378402260718882262628846604559678914921254874888902492148321903099764555354608639927302900482118019076625747258864315545155778411330104424369705401107098989432666345315530648961898472068266717342098592994591997448791153353028271375930122496831797137666883708600207800321503514990433164999737541030887740284802770801379368488782484063424947572966967975555083026571467816329509739800472985065489015698741191974071318247631553858536430659550304970140807798951257965402801182060679050458966229713600727917083519703475656457425941037269656898976075134866427838113493698120412043670892077761504301378525752023934397060577955234750000501126768189550861594325992724587505722485769731681094636404622120436589059904966043193783989601327427598992093654873780032667701383221768263070187824764496065953872037539352761214229759433678653080040346209934117823407961239334512607502770788816500935595654208598263116495406706020649075430964946318644762721289854043754699570448862902751074816204142515002899645124347677880306095114242272974045522707891623968223740652963474804406727833742719334474570560768136096104006807705441572798869527068604647344011863956452106276481952923824189981977205987397349952305878992997888728959965311982123585069870577928508041612298504247102714003453490150408569840465613157247794959163790894134775307831648581467647770070419216691712617233330829072078414463336719851752972479387345665497529801007434940332661996558832302515702528580537169611369911860011526082066543800149899999601339044681818231379783562811268785768554667893827916563136232848624744685259158558136874658924830071878698937367005618019556649329200617063454657235292801240536840912209746590853822915333160120523697035221916626684734184761391141629096600463034756495892159807239898688824992933412527418417342457809873025670712379720751838417134018558334374131708439385575810135581325401493349881042898133089906466261165299089825761850281049438479141744396202260237054378442621633843540952542190008085300403146520707508251932528228029996986378328502852226777230097092694758803667451534033568950584900790740331302521530716720345356660141649650652157171979605350735708670489421269122668551424283811915674550991314922167254641881845073276959073164703061857810385885793064298675100479751842777413656158703798326251877314126567450688857061278673213623158198253381974386701012265861042898728243874678987238569262700569845061093868143965559987748837324235024082605387095305886124985898740940371006432937059227694506448967601861693761569734986910359643675524999669860780830758209364015877156924449720872668024847919116015311250960065644532304566816719703641848329644863370509903139130331596748552342365778554273705269716996474569968279001218176165652908043879729980952605532152847539558203978419050166650742857940169333223536430200900661398026962711086232925118076633671285481447903258552783186040834016509583109442769089325020295765850107229781339062366933400635037393505703247787148135525689311028831836497561054665791215336387104450201726574255839656179798623670040058174160374116196758224546906534517497861508137849877397201645482923917857821988628998941848602625391186227697554975603802242831823274245307021960041725931284567859116089043526966365205050845296024249273511917495492074740796052922220692733910058646513740269125326022240694575922202993434860360799264361395684915028369600026760909371138592538154997017612507739148123723731179759499744362244387661897882651928511504201402505791333357932951615256045435162237115189858162472861300148560891487038830292210127189246859421259069331533362137593418270596484710359709458743453632231607836318670936854096086395675654441046839455131622360006852716085967086227352253257871656742344815421628600243172289416198787707676328873305875078194968116582044144282598755329914590629315557120307114265331069015595359882476743019467834313030010407067160728280220109938844703459005302798779611243217430100193363286968060404324611352716771513882577228781116162888063059340363792571659670326219244615462877596385601656497562789972047017527264619823911424302660321609393637720902203239142373563712282991455364186605103266741414111337476910155609458610103152747392828195466398158214805799123161884016263501492382826807823411324706606381757366262704015157445551742719170900364033793392860456306792544865161120871166581078453024777344174021328524309364894245497534991390011697644079650887844805456226453717594459227817242731066345690196122263187796257919438222303868266404826260443322772137945682016547977806193152377437364892549177474292902966117912920442558326913412712461430572910103326052072272212764161449321357621740363270335580922939188537309789683486729030190465767055229431347945510197677350004124799690965305727816861425442170647188569635844874124677568324846513047919055168404008478890684436528833742692004346020666821755093808508890042116536316551692643681384467807600963224250024584745670029630884039868284494998276907326352649857868064443145234621237668635006551151931450348798301597630427572779272168340330694607954088190641155970024852734828650070156091261439693573406196147661473847779722917724588395962955478751370510924719825064504270854178800536894592173047920830417141046455256237777663625062362546005194129176075240999687491590634846436160893198399904596959624502681199471973541340816829257115498682889591497027738157218765836247347118623479827358030564336177888007915430103181340403949156449931697282491499144640490224758804146526139646694055016194392814837798769928605346291461214433588440141378344525982292842454418672143839078362465343446101469729747475130518593695691877258401647818021127178597157788773149875938923239438258223726274110832939686492250447061747031208251665776731881008235580107639682564579323226305104532262210803006560419995043141121734868282892657291471312602059765773735672080936011051980121537673152004663530634793445405826945845797413070210138520424671472346354734588491465036708206854812629538000525117532676606410843603851195516614208831541126698664666947346174482496745193053398689680564126090039142226878404648344017662899706713113777419835830714728797504865560055408277877659817632745136097028308646290078359965826458253365162874030099565876233789778388773117241109641767818475678641132405902288032536726895687506243861194213215024676350696649315592861273644209628636789756518162785214468399082482508856358423885150311122427132539754438366477966152958164745779199623218994136931855819884468982952556960400380624848798050973873862438153338757811394881767693974768707690235515031683041804341490965695311185096409827100047495299420792715189157129599499703599520558453754782533075370410030666561621303793315068909084775085561591553555394679370436001405071198917673809055417123587591221211521481055938023528665188565819086221321995396090766448960982123774976448871621844082236130644784485296866975863019503668815063718529660709620839165798885934821274904888387540548618835538054664438136444616168221981924043434269890023539569338488289348895703635666084619762681922954563182774494680317331998068684172405128027414016804062493787119338144878147844558873220307308948308419078092882107910583139983464607568985367919938729043208864462267786882335868768004178238308337710372359932845644770432824385379548255566868462254662751954497907767652958715716417011995967919239362550988143970766552318953082717202349071661588771536316239725715712348246793224867565173506053198157776938763903055753478009105847291640321311864281150814208716027195371766160262725033240519778449415549546608545091071323868265255493148133504316951296681085010009375299845795262211306674739625379693700179171832899395294914817076629739129283479893491447691528493589659244916332038545190536865325864372781107078902092222583703953430828487720457176670604016430235988702310364207395184818673397072985103036076491855823085261101503757691643829685669142391211072150527012880484204463652560887686278654710054219454085661054913895574367883667863472627174581447413573360951208177046375687823910733323584147540196734160258512116142204099281820201691853744981522908241354935217116833795339481243830474156729596628239378793444612660520405017409004742844857765068575133123380496170569600529724265431060804394417299255754477335314565111497831656853714387202324283179579045079854192708398627881801457748179529077246647664956140535043935579615571440763108122574554142857336969048733803603754537259409545264902439711907947006874809092940190223228367475314750469992131837406846810982569806149706090838854345518021691733065149398064082405232600676625631190404302094940926691469920156539284060949185626150467012623631860583822959848642549658711618757776482033234404908822201074799675636000054966064126377940314097567180786537328241755300306287874751336823412851417434792211989383768303544197750988609680728935754174507349426212977228949119174134644913777771023522528658277009385959066086594466049034461585005984455994419427183807716210505222409797882617034223410322378451924097925109511819675321572969569712497675664775800074497003628965739605056746868554993774091447386330928870896267156169932742624355112407374698039071580842940091329283518533418822386101218641419975837804587890204800852965190218558416935029927391530182281221282674158334247668991517930202117188748387964102458921153420720547810988820265785129795190017261380002906142156909026017905469793740534098567887135636325385978163753163083007955802776217624022828855537414444064765133134984058739960948804755331320623720280785365971887724332061913559279298547089720886291831966214670445333412032728985499788931368798308460873327147284367992394713806650694479685372679484854972035382465672286095743573282120506678335206623898280613295166147881283849498945953669195774636393718378653213888441102382531066641841888563394015053404627633173936709411993086796002272479845912813711008635928539543618384945323875337496067506087698175313510695917031089330219248256729124170234321691883787018987012413247671130727389500584446467887016355081496419190500197011759244725195251025142760273025720000029041907801914285741781419622118081917182272539752907667152717538360545187570283349970654754725332963692164678382447856542077084464272530596340865815402835063946842750698524863820112763992041529294357231807342657100194287204840791348743208445137615996530658859357514188729034752082410958274472409704864875041979685869070866614754030033577840134074862938149547237625864696298269254660016772024027579632986225232007657515802892155863254578309024663977920342008755788316528321223357329858510292167825253967615414682955773615013509057767958494006090296143749025491410958887192114317551450426866260295019999812442710821441458816735814394077865183341175226944153133222912723462759255747612641858867604865115642145891200207714492448562651443625743268302553367175029418132138323912284924679805876597812890002158321332328247946483716338834198786635784437584885199575260001980592801584126724193159636242839479062191737188509426495884868360775433682846285779630249792105311673322585728021730064935089734568203320653382227856550045753112349821161557422591411017185905237896627777352013097243546113898241273818246909146182941277434386690866059758111692108345585281228117110151705188797462627746981625565182933694550690419883762702125005901753340623165969234291452543397247765573533456610912216838243375105202772271130384788312935996273198074990425481528155884274741791109545353151261355207408160494073784878280823838633078687040499625591337165371177332822142053996652527914585054891172860904902896027696219053346201348447283152263348071830986873770479052281609381224348502367610008664821780593380427872108398732737464620078718018183661886609675840881156975257577449525967473439208024245411492806049455676747921706008055858427307877122328545941039591584178060303053540487833574753294935808464227306283839456134191930668910140439899933594114428772274554369240067006507601416576123702945146032022030346865847243700837585084053746704440033310449930552358447905674099262586246896988808771590470070767117345965396861698348609565930444269014830261014460120228902476370911257937918348088125087816060820171338300287268126117487027322676180191117847056871272442311135484116445530126420082598359510196127992724899974450965575745136028553165071787131260786274497057789725082558597631009056782472144473214055149531279386648151790899622804024582383064904222652355230159457793785062118250745444238362022374447779631009839285879990853441008084372609031122631040644228755008146168554366984864389492089169033306431543961143851757093867287664257240403229223880664310311734604067825993169326440664221975610872779659754312444382565644943871649434163815542171785710036874844494376248886468102315117535353066042458710232740569205233895087405202848437278767675081727987112690844503305202358550824951575234338694256509414860387701839166389927315626150057133713271943948647224682458693342315660677408529857098804739436278672619299316307886147559189713098759068972213472731853853559805295971372600220044876728547653748944397787678252249301241395741052184753144474674705667349537970778269252767333528196836130865392339039446850337379067148150220365821730239402710668943562935619999560566719246112141486801059566806723526758562554789834761397217663200702871928649192723355161580947163105241927691727300924033791944838422974267368674135951268229405479524341880390073662025402054468725900519505927945485254473256560132412646768284343745161816341453895896039418728632872902090994821300849795280934566469920953250927106590568897397861114372147662165473341943200255141327945905751749882969461631367914866528951520312877853740828732340069538078962905851978113210821501984343351176884072822088813130858098285305952092482155888177260565212585623856505666366615650510798675556470407261377326863895767565691828382924516073015409843356157683758352443229995302756558735126860425549301222899111932179950880800167695640436897760861824393974107049413208892796998843311293127507663239092046007685401089752397172082393592158175995887668545938193184998197168085319085052439748243752346203500054456943454928774874620989787854211251488292616112418858957718357629881315198944593594412796355503479649004893663417259585643665646644884596658797078949508490791980157307298328601156622285978223125034206795366738617883136969551823814628788564011384233398329444803785161602750996309257561430106861532940883930094429680672515960514192624661020167242700145606476659274189156181747426119508948925013901085018014416394927289551245843249523932274610122836159598335068515273899131879463139486359651594268216412455964178536473965585602005385059951622012967821769931166562173502296006880859472870430406745231519224403210458524735270739609687330125778839186550186286203000900081715958450880171603124652890131262013452303964800612611325663429329436007240055356196487155855170341020527998343969995674308362071916683264815798938347591440685174639929418144942729013165334836657286357737075063561149846839956178083678510396383142978757725292204224973954808561696026094563825445187860190245783022257457943819596997422577804046364113227445429490141598675315731281341844287074566037238603959426888536604693055825709288650159195050644151919047714242335567843014455836087978970506761989151349079625397185195759912750076597975728924054766165164156358152951815700918136949855317782630332556663613205061843814478365525943775800218260410134536150898279115217173099855071557478540278954906209700190443400620464038474432516520751037300279230868529330649859177980095044415144159817754930948907802359513732358493675389358927799114548622614426212266864821541094126315416593990094684923664237858217135870439671632198951825260604745519044521976874192541580773711490218995643870495534535727922067904721043146468262825682354237532944173436203069829128673312345135316855779733278924280544708416515931483958600520167515882654361705488144306557019135514170820538831696313264154249873964137122412564644408382915882727056070463123366967075087398455800007143107440338537172028094457997880169091299206632368125915738236911656703687215499041354788130042974131673005503584037167478914449225023643754868474249401444542438288446157512325314595751092915779533454256853396326019394121428362754378504103889810303077211317193868245000799547935597877141376528989473787644516655533547172928253348758792396630385740766840864247814891999092140911938459083528077409564459459217087353293411346362133736638905454008748078435646957949206560014162157418693386386872968784018839202132519194100642474848087213055744695100654233191982604292911265138153979946067802483520939779736464302740807460882466783505135163494105518813320390627215735859777260548191690408678731706972832178372770224931598359176457281634325508235038436684576682857296651466723627776178156871812607490428223963414865790469172272141076621929602155347837107359211164106197632574942248586553501134650307592610944587636958454941789606966156814678248091141355521634691782622731526650965070866334279047939818452647183236819065863465005514455929987964726514221335290432487419423327470934821594889621407419884258125295600286257459017274077123193012559138181617243026050967845462765768795140223823423092092400245006915396303338996536594306010344209421066165113734401769849164930087214791616870209804761052005587817098961768758763914455909624907730866571678113337324661753822960532390222750745674381831920612423325040566538064355170980407259533123902200726849848362921188025583419520750694094834076224934605271207088369057075741114720987147427340021038684788361215899348836337429246468666131050616586755703253845056433817942850104481019750506797042847013954283218391079131584514300962797585821616015120832706891105972708861458067025004806469413151868715388946363718254870277071442914697538357809501211039317877059329085936043994234820906741144547088577832552087965869732423271213797675903319849390415576880633875935080181620786141726868994717313121156761026975847442272355914885888928596573847806310468764276668345259406879940534040164518074370777182187799021644211783008308242536560404268153147143602484311379977293334245797166537493427436989109120881359046190540356483216054741813168825943546057837749213580996368702869760113686402480511864916776541898914100626287460914234323929516373293261953897877321051052340872279435182031187304799691175497939561749618868072381468647915824684484007954972802051971755210863500722463596714262027411793216901451875091207682776204030923882749069675636308726922345132014454865189266814346136509479545827932188256828569585407475021544118933718528958384866563080051281803885170416981502690157032831255393047211582058371454063320809053642002977763540633139113103516794025577866814059304962039813014774997043499412741151154414459412851357622434548222754522876351710552540820476458562658478971212588422554722133167167512878125574616789321833989060409974786281577351675737934460702596075263239747383159316096988565803601703242278920578335266522321382572561354378796734347110768835302715939443347917777098642531234483270132484932772334247130179224380921985816908523678100238747996871994043790760619250036029982121596211961739605886957300390128191007795964444991560154794070894122051720389034237700976173381859781509875366311090957134504141573097776628861087410016413698889520848376307343235033593908438220674306476306509714535376922023752024004774029879625002383335219535880901659645073152712511185261956582358250319948846373821044702768559855889424825457401155685385406494446984679608847480378555216631760983720188172680739126322657355781748954744788581649880690944434179293958177136567300906498757398799668340040731915819729509933634107939574238713491696759323303781367363786677621264835197465742377136995733586210948661663919185526794793736851908761139442581979374145156107659014498965811084951448411096501676609264367953127557897215104885722610355948822691115798211136594608120684312446725924480688326804121726428710671308202840037343691701703274657873487855483000551377430730033585378250943867614370006184148965312189450371332387207946736563397384391770270069526185657577725545056104349928575439537183456948783006736253451550572285822651284832743982017193582843550374675783861522156493508120471747917577486240247322957908709118462560766066605330501139889574289603241997174083483273656764583684344873734662064709925679833525144974082631251711754902301404862529225914136236254265214087461436926409425891781978014454883673681805589987388048018452352236204523063856518740306268600531516151111072894896632194797851111278853157367203395005259484708872875973783595340372838848490527732132874448171322254420628023121419912527676611885439099939458583304043473022555445970550752041993612714381207330035512457779199234637529984576310030856990079090542659734721769372592703279579177814361614805125606030006003653152535116309185649875934377420515386829464350304299339519918332218597779882014542760189152455429899503368945581206051412134860180512176689111459913643297901980105537854820368701415663706760717732528140542691006628074110618528845772312361511074968271751680508449681326183486953854835620504886758641725459258625368966957904111888141081007080003640287274255182927999726853608000353262137021358491798805251248553165976001194677611344774605068079108916890859730836916591899369017722719628542716059813024008435888923577162901166520681269905578816298827988817602842393857962698649299642383842874576358579916009751753604229997217009022159497420943697216356198157045306212264946260429398671318356069692814419534440239286145482435338557627268946303622262691731572309683293025993555918059212761914880303226129400121370793678478904277907477986287362051337780016071745142270654248278561739719865472544799770936770069733083799618792936705386297974720091500835037087571455620411621980100165227545839454596984875776031318380464316301637047728158486560207749772597598983959345343567208699560963396581966435839476057401926562594677659920180248460122938800073107194332716484782065504980348753738941502745383430464672839511408463108249888383427645262729649829223077803395665005464388387677343338673313670943015667068455283731047852668062767810260859653140309650175478892424331999047801665912614300209450829627159954978743171495837763040102305328454778343159026392194211237016259052362165335015541912324888527554820918327021213141314029729346827272513636984408776908618766298179891669457455481721517047571388437576934803354581527887883549966123664075941459282974335548415737320772015221849261058258882896198669812231164502392958320668796838949095763335870780157613113576865242522380092997436347155250155476604562527934571620270197224144626859565018087592771830528273159887638759111869283297517136302044267062930353401524525405805311509940165196374564333118487579701096598820856902814159867921213423402324769128379301724002561339766347963214208252383903711172140831653828780577494270977577449072546342040832669602851283436789245717719337648622914719308408833060055506837489275284149198446946718529270188863662616207503312347794447171188577735130106294095914323827170979670232357448042767709203107433189341019041244256571872578916720580340260406550832138881315698713242263973039627636642960655242464536732541299838910027825493048356945766183989950434528890385275260939075712418340086611548301366467541658063487596005649005034362150308758072835268268833947038047118229455889746113801716232086528391997340665749271368757703514055660310138268934182638063448412061504617035843839304645546251673720468787401856597763637252417340872316159590264440114592151019111596322062482002846130362187582818720385142951989398650135822637155965194814726846862071321748723520885669509347507236767953953845213914170425779489017893731274465040540128500888607098681564875995347101692052298753642025159162965357706264703461056471342071520669688888677033924355165227838922221163072118356541099867453088411901748113627197248652013765722860283440965647182737075858038170668407658320884301693172543787314607604868984251708321108825157614418819120041060440196481878996062868520436949105066219146673933754472096058230236390635060124372025439042196862532471037928027388976195640832402619575927189735238056308159324982588311968885037178025272290742681127472816740080046899061275334387553905162053772541414685294263090928923156437694901163349480340424555431608784984641307426393657853724675077620539689234428260687834511402666822427186123069079826674417687703602374391536847871271179236673299660980639478576209370803527186939692431953927385682440282631544510579553544432007369895856300070278639290544468035230080176059736800813076313340790826886991996001427608559614206834820329190869110066330445571266961654430806215802117763966856363329947511059743988618331519512839363845959552017617835479848744322144414560760654600062646333346677682533170115654110691965190336838580068719839776332487824687797340401519381524142607178578538108399274792634333344166230542343368590406696341268115448899363373644618000781377576112704074696922816419700006702249873032602909165482074226152631688413987866337922821735493734681522900910688869233952082692744131633399122664088450571655404627974725543216631409933088737133361323477878294037427545093763528211622544696169504437559581183658770270653995331594725877248631536087989459226208689391424601293751927044620538895252285559800784025170741074724207989855913326111212479146643889686861813168728015669138528011362241121939559783690974907069390758291292646477618678045977509030373902488687011022057476738013997042917890738510347729619849912550556699592880743240936995307038436037757969416551570069270452013367079514855386913366075742768134897845903977908044819910756443133436342061275251116217207624850066202806093513898913616241806716771593651663318219751447742997658870007737830202341049953392854807996302958932298115396194635279153970624035472109115323402925030205023359407949623942395259215294192558285072430288539536133998584736852042468072895383091831086255536747206342910218639498554692934973735102414039420141679111502377314462332834195463564796561822262075454069945736865096385127818447204189671265449255315731915552807795862957363287945474548849781376438918332040547090411500055849455760869306486571422806209924266323563245028675125004404084562028984230569816591891348692941359643213053513416072102549391003849036678890529978441387582667601930242296517697463356312091179149895985164801746326914016058262405331281770309205084005466759943741730413804696516178542673010618969589665106488809398973692355031584698493134734464268257815904882887954514507012383121691095307946098190853715180558737193234392248236308096121856422215729432754336838918656237469246440135140308427479809723459849709489120118069676781779345409162638463612954263261580541848373186213335053108634164678333266410519912842451489519848180840346707781295980709266364571529339910572081219350291019446490465575051515500554128009165866658229253356284108455581249726772566071099467343484154913341497916996688002481370953061517875626485947045748901965844760887986337050577638155826617201039894967098163951188427098851236725422750429160285130674693434614905513728022516081381737037406524099080125652690250387891178113389350194006049198474015548364185553977482461727572420230808829682629719441410284112678568434809357677211044892025419796997548149652857023817719424186822962246463795434919211059174174659651796739411317823096875033433799303183407699612279604107310654778887104106153871482519776515195076856517459461603144073258579824789733438524543400165956645204475418625513860300095638433016735759476399102171839872003113822152386398740769709801645073176507917138447371225989140821651557983223017787795338461684625547960169853102412185818575508848175707580785189028639894505811709723661351285190920722272674244282522307372230991942207833680051373989903758746813263278238252171558361988344884969867389176436164911119217709950225972194569833982548470376809848980152604350938182447553091464501374719650001663817932173138177993942331086981975392993077925459651214856849085839389758292159619861921244793412720234232679343935691475662581270172507118737467350001266567395975992038040780469647753508539380610126573398291435801771599194726165368860695207536455602351224058480458065676316714039193739470472332028119808429607280055985024394705188563462635161578286142634509339644391839440438294715667339839189713269061309865089918076244648630474129099299476695758984372963440651085985783288915889330360218967714606843534518087051750259914973814678122743375166836533773127308828529741888019595309737768075120390145340730621266759184444926624138629425357592994552353788324659650210422044935834210378298370625820813334410169327741427041678864957339573609309894839072802835610658840170679314647662594341817571776640499746827728211616457576322723305703318328313307421106881218395286629035173904117093769103624511134368200038287463802161291085114917718106047175042714351201635557150636359814222500342403586939087939798797453275178539526290606356623307856001679321709315673915555985772099081997966541481181072719351126392317376496111514044129290032694599557946222439665744368380400317973512422672421676600093735029193288801282651384427762339682351148123267488993504635796921658158768624133989172086152000130275838830565391836751128137629039603435694759580009833744703733891314547345683022739632091366686074556855127678800375063756841930222478595715926783477246935970865567462399332991050683112267564695668771573450587677798391623269048335323152102355719597852173670747974458147555034484722774174310313606304011059192487934108317427488273103953156112932173449899563351905293547960514780837476307031385080018403382124938395433598441061551185240665657852146743190972502236356993960247937144086849639913641669583872151361736461125791300558631355260827238122751026883179487433513932645009623479427086355391511672933395258308770037420029638904636329176818121469619533182269304704890015080941893863146579213271191667218334629241517494657479958584057640442262508250306297687082262233443859396690896891169788314970485625919758940722959888955902154684204992636158873782409234732223306801492692402823513771598927368056042137922535430888263136061728168743461590305955486134071327262917079909644672949139585296630986932151355313470071835044232743695247882738874531328392011644993933542951359859155841128511311742262032877460453818004025815618250860852957853138167943934088659255632458447005141788868074095318661715829099309576987543419036461595995534764744733791419762395152963749268704947546596727197278600318734769956417108494874572343185002243371659296881800277017589531823691533443268339729014365398737748001405627589321853234745783503633365130511727726825931368602305828646851347088864502954409650541273088384512866391944313162318334212370928774185402392315788398287050760056292773670295774996977368213132942377509232053760355294036555132934044598997106752574739843154448034096119446018584933695043126249865457602013605564470046675044585971328785589003347188982881227107925185212308828432348399246241542896127757416406529356392387877874403883657099668294382965031405175279596957161518352183830190594335565266412166967289551680358989736929773028228802816605827441501790855260535217855621741386871868608004715826872432946825383769012136857234728612528438842078678711288578230045109573119963274554667757859172759240528400445894242531379552523700175459173664058951550419777679026804261060180077519674078598107905813076374342733430187395757345521745513122269208867372338027271820090922797208546312201828354354178599159774751370523011776842836909005125620515577135411691679771314171693806484755493959713791270168441890769485492987783246944493910718575973654526872191066761315226341434538775008996400521402764006528180100673602492811294246767670577547244948629030707181678387055575219920072309279555094605312423202257869696607061043830553786674113089875460396341757285450036277465630238893618074570464914381712451874959223833355375778946208822606253504694904588762287260695382002699123127340484682948015911747288960149383768672712058249153046178922571311923855781114386699627943514808674855898065804253583447216816757388209945547247735652453798570191840271362544512145082402291375394775374621627579130173870588501589329960031892169718851379860951980200217707892393841593233484957677506762301565292143465683260566269896699179949061928303972141697453480192446980286286330622960263723305147357754997693332894328982913111797750545664327369375550171243207018714594126175036907750642725667737159999125728458369013117358539970530386415795956497788307589706986363762247091476923307519664644530364021684050328187326260010285131848087518669932091962514979744548428610563626184165490741536810571381058683051838309925705636916794969366574932888998659587271981208414779299391285872304708788718053508543327623694199914594581041470670900101123195821901222778019681015830556708261350255809162558568044634592878047329798219669529678064619955270632229811171507412230618403505739730252553363651012140130488425450133239605867115634536348667009580135077299450908555465982743977334796291645574217726091740449852078583765316104272485113232468325290345777987879061709183705109770841877728255560704143871749739613275161093625994453263867123348049458479307887934067759586347934453832679250239744350947449540232035563247971588448328050663926437639869723623830568726838387402206891795487424126046779361182351214985811034331383992726853781549477014148874335720953371335865945610315516632823044623478826304739119766788913281145005538483020583515402443214803384050898250366547962678132690693187174971535910915791402517224688551598558421318442386774880696088392360012886174851828087438604305884087320242232493203677952538287698007900958226599779314530624278077262881467218287514805849540945630124851927460202533990094942851191224201062594664041272820558082209040034714038038690329984725888696590259326903939485234433167881538591053565320883485374565440950715402691647159660613659358038043404035917086055917840359013931438559043593475369981485649980725999246690376406139507847850218382612813865970701803767966812560374401780029123681509767340736888934352561653233175538295358808266701172723453988782428613042164601193210259248296324539938981863300852363878602254058575527789068033241381347717733857022057697042262248205434802969604210095903983757436889448583555872682880634861122925142388478609170068550444645758667591987284017426498527204317117812868350152403722475800228014561698371127150784502058159620473863652432877156628991381633012045990946287096083590464801569132995385179807280125016360598844560017396483106797757813634455809755090670689014112588642158461881664222988769928725293654063422965313847731100170781683697296511478278696759240320427344465444853962166058324889265721072457714084575868683682569424952066660050440444139845920148686734959927485089352601103416131985386108037190417127297384693813344878787967024601088703268169681461532981714026702576321576065234185450887072577162090832299595975757244843988039798108095261672893095221282973359101295079354236910898711250386780245132338965665086077435272207458178177153775931107629264535425575450171049456907329592979456667287146863973769474460088867132299936883341077161650139361802927266797856936866699371102137246779527225273307583987281686260493432920557595545351889112561852062062782619530046762041835319006263593680717150740694101705081476776444320607075135881496967939558834140499154579440656987849485053452446248282760864304953262057602454457612329082910181523404611090596200917293125381905322650188786593182721051765459484014998041871270848341488874174872390255922200300978599654338465941436493651751277992397246842377267455428484699493522753321699460870164194942192830094249879054538203385603681023821166276918948442111096313130726224935544122921824143162259980860076416470846533521112544583590623280952319318911759936202117888752690264016995322525155303656998412105476684340002733867259966761856145066206756184061880797097610613730109343260295757512426610814260635571709505060368108236982872418771541805430242016256284787777853543320049357045436517613341210829723548670814590032775304796179636494990530389368436721865175288380916470332316117737854938574918880603004043180379641688498430206907572091222730869174510953692452386779107940702183091542163594210553700192856331085328934605886535953003591399683708044332140650916602996449522823329415746070877645883319590301768075845977752481220301684060536040641849948316011103882451056123764965185028328119452357025298650513844107449087254447245812496821189797220622748551367410984710247166891178130536226878942332611474988495490414290906323231680712264541875155708032705760758305352916473362232109506052749019602567305659402938216719738957084626886828745312555544009338547875863688087340178427593651813958110595451057411385052362518051056496007583867951933684332236478983804811077273865405637737591149667323019663392704143301952057736368532025708255479680613000450019625966330639333690790536956996937810112914801233614072316400911049538934008008961801802864617485801431924320070493145752333239785064010738560783743624245657119414663602124985361172403533787797713842972469783253686502971683341435363317523909248485661031745870790130712042179382509036932662533838410022726102732932164456299657908756069481046634002978112179282716036731943167988549405194382832371948488987130466441303994526061434306175253484409245391906744952389355613792049550849408794005336848729395658984795019701689177864470073796768643172370890320896145125763933939625230116334555330716537058353861333846225632627894104789913648161243144225960514739170710526366078709699150306482220487707030230060870544870600647963920114588392464047120943128919135760827918117374517629574964067430651160644518411196679212202634201917890791112507874375005280670317472911005979235015862016407530564197010014923263290737110682002697507071240801258469391311877008404663221547756856015422371501999255188997405153298719848914280864551637832198751935311213525498733127163234364994769950145641080720814382466649861865105424955057655091937833698299350457164874458743018462943651695871492689908810089813797688972794876078684167197030965503807651254876447786876947610034990662575662436557010463778025358391086772350327514923387345733508606572821825477358800437336029626664812586292872851405477238858255588794744363126430788914505368405244446882070957276185058789129530134556963103518169000235495581305446520241551628430937104930994339333115736508275502480983545395456564293229071069274364831362905995630539276820151502130663404850557058156328344660525944018118620742064522235932713965193442747432716773778102327254456726286331614414217856382809694829739492040776956380142990896699046196832154955064813785736884411478900845489638104227102777808521051899918081288556715183696638225684462024386809578937402952240533925582772620382314817151131321034905197853967596692902363735260476055521840672468341727838795955497569189542252005474573901211688606962591454433081426679392273908204225156439896026376911371687786823246882267347236644547738678065564252520449541863922654224883516101253697323078221903021922745905275678154548895154470761523826493314871304628227886536298051779136912203276006456886932908948431370092935881976169875536771712350024228933982929688640751512337929039410896841889648261538281882560947239480966784743511580674519006918942741048722190153053028236773279581821818870882790218903158755135828827238363095036926643644453782165328176933792397214590245467448947218280866275906177181289999687349273908894362492260759054724808214184877756690541750689677939276768215295919715183051046083234555052773202241821892121571670019361640799934761119014768353823629476026528593667544280973834025854149010793374084253603088983982736489505623536812215341121161449869027707207862880163982302110004107485840697360182847142071099097147721812289465426960474230966809538811705145435999677649109414518021152329459513421221048750458539442120605882398120764557386969269804564637735453631302330165132587428724770877178880604707243721762125769331308264695535735838595187288571971574763063627792623541184552174197427716609800196258304219810567472309347253486479444812718003661698239407246801212340977589340467774118013453411763325466883652448828840819986616881498707347625334096921848998916951307861023009490463851748966166307143232257488453889930965295628427020358685997613061548014481324761403359136439824250904826022403132000502223499580032289578439242163242687757098271422413841641058035960234149601882853022981726755925944877005999427856805895762013670069562475688416008749774596351636208799810583370812904769893986384306606729381963023009833504603957253690127741763623157784256547428255971611978041009890980341134610956900811154156999972831437191569465914747987394359242828673949265649509694739754828341485144862858798247839873172126143989536303937604202585057573958519983169589251972873178101522296528793171110993242684283186092652744184826573660249541757519169495971684418407083781352058112369288546828069251924012533928378674104736396846631634919899200238501842293130141182663264663388135455619247962589328909491243704167348257563807378947225471549542869841350335557725626646979992985316385948832361288133042984632862907367004969028531821560032963208572519704981764536293513901540099222759337882758121461565433400932839524379867395715773746850378720780493151283585761112296308940072194905631399213377270592511664609954955246930501352762238806369333890598581976854431787967455461282975465318787724335583746170542767732945052635292422100595881074466856402903894633010032185267477032406587056562430680966807069156127748235907032403346218180690723472423163608642686171390906022799629206467580160671005062031739176181062010520691988169930196624971580153931161116812165266929493772148810961553415216908272312533907900340846716367893016024917463994411030055004368807013924109423416694430950393490826764055861981810717114441099171890247750451185932808123467949750521211451444375672187834024801287657727357802410868882995135556802601574435061451842318507691127389165603942812934046278112683835866639918699263715082006111441171556142621288796225920335186578701480967413357930847137863369000006739328383045607652455307784085341950074974122139431656916759060651261798991925527793646239564976832578388754986121137623194479381811507907678825926341429460242036351803379791649302357837066108475780749881999469887251546914668784869191747257021979577623789986777462010224880176090787397934936433176015979795375034026923078492706530635717451964709546855420711369595751629154746346896302210702458784719204424660953132664259143042965432167626823361029368493017641310526749035631295881262873914870744972902921477465088176631828590317022811201108920314127911835360663693242710092986133681485227058921726390319761564342283288129007813383605917916941297922386980829836831293824279791463787223382001803624510393019875923590503778639068869361002982521300025998963904492924080817234581333263683961402756448961232620930657676697894553767289885659481662312319816517892729352692127138121872097245431760704433277498061285612593607304667252908920026985389496204895838521055916238602527854398430705958655278479933962727768181793416300138525020644243213629261555643508527796366421256862805892283197030267242253466163009873482569403546995930871348688316510195297057928985021154336149166037302787765813096402401050621173551867728834492515603449895097862232178906315922155789253961821011874663703491318595836877633573907436921245612844178945453440564953004793339432207124735567342776580715878366378311931494374284515205915969279039565435038529105626506208362731333444193385007684300143538486283977933183248770899612886629697752437086428652754333335009752766192466501132953689611069137641862883465017971526116473501478484075994306333786500386279485989267719277371651364382799207830861297663569983620943561059025517941368333029009816780217693174758371787200918813588323556011937684889289908133945384101160616240425172300221620124523531737830156934769725787432960892955181606040295287534598476493785755916255020484577025529417588849946803200867390229563415959297630353012943025698432426035801882900672037150703753791580706588917637781506476724306938794124293868981059914441929709133741243910850813831332342561912527983843419253086078773082798794980590035916078506527521842012150450818425098662914037920672953288731792918265672250108974941495466566851307100266896433133611939339995795447874663093261811095128606387100558849205438861328620486728936213461026737186061687169752804890968104289275509975967653156513162604851997727693596187639965474453514584704925218375232022054022802417430546731822542535052820416091185881293297392326029762303553527669068062263509446434757798647343532748150480529449179016208439676348922194484432739522932714663413451803799965010556940086624569605411864630377860328930496845665052898195462290371277464239935647390127372093543200972435764143159533844415677525239242913573055034016342201024615981515300816426534284636225914586849335121148035214782998281811092826467177620193400747527790738027369846664422164424853439756576709202204630338285650320496794288795349966922192319760285574518219805219722518953275661036913233332954522584614526120615163722520095176415909339367817640223267115966567257262814430423103474616929420753730364687750196541630343242024572515801181920608229522089780466968348792378861133614229350240409799214309876016504020512918660392653697993684589168204570202995127546353876861138362262881765951320114445128333031014556236459275296302003468446252921095513621990631621831553733224834320131157033209727779433610279755651812150195147236944294995163057914497771111449112417258293546341046797031194082168461064985192694932298494218023864923091943675576402777147698078125440123226548657327206214849733449628017067863771464172315067829262095369603293540834586092275859318604732487647168315212580432361349022058108342813480409946283928920492425791657328305921791550709558014312138647307261199757312190440608171493636843437589004197331558108948327291968304520821161164082047118912319983840361694590264564294162890675675550089224525330585816592840215319875685833068526223680300851419315675715482436207685471704831134676715411836794381132147608053279739632439116036396728155002081249255341048819041539112265625863792325171870001164253551908581102949621285622168290676342117464470192031188850116101378929693990221828368101907816056900120252256627991982115653578450042432694907856440877040510230865094608051312232569572239233221579028832290229281609575074710650014430172894775815196052314333940344843837243944314503419807437057793049495894095032058532470331438512064881010793573452496655478663624846802860104809226561430758605475186947138179529956967168079151346861565496179678842267013116519171228406190945214830704929287243311334165961410528606645466189985293161799526192693890002979152993708771638059771942405024449681526245811203232592490160041453102363671661061576701396241109277865735773996893774039656529236600709283784630090220913161020310608679075395337164242823274626865267704380451446163342665488718722730949934294388443498939844950295523099804848439915807146240119243627485647906029051589538806828795035913521186721455249373863701820779736668300300699542178202296256830126739787955869242875407804189759951442944747424048229360262377733661449238995743390301698731536795637264500526738675962282265302778605491056195769713972988835670315391763197056380670012412371409042690973609063691545463038771325429179827957304115412889007190764420410825963008703175580396240930461500624297635036010332315782669142769665449070714741210134620670100090946874669683021034912511488791068235920575097150332321231940163718830680261505419039362091600259455290576181500575338694376612924238588588340557289225596304481368653646716626221544164686595025698524028988340753144650344501401719047690379146329894823927991466661391952845606119292331331906756018962921455147166506771041188124661887811848065612211131982016020840877400271677677268921916704233081680013604501947398050662267292059356096392213892575144373605135378771224536767934686786014697107355327945838836031792485618414079370094004476895154717593581712692554652053998235895064112475195667369353595039398704034868214992046108600552696191965780672428588792890770694143612567471014021661860548026313069744948974746344616830453971471757326990086650212651025748604212569569696354854627943902856302710152275414410636394436525885050440979192263827734221098749407183470767775586318937588740293389888996457434022850645497455768316374026307458039788578994000635379182741844348211873376850352877324098928908447093409351757585657952815870115169673252824303042684390310237028795881530271998326185869530790943466174040320363138400523929520423872064293464968487795193318604382878780555335343981179808699582673689155589474751252134237199449472333475630318767923645857487772284475510870193859525183597813045962462573156715776639668148799423289560290827940502495567955167173780968951336919107447978355673817084228743423672693313757024734592596676504071842706603698192931046853280757701478598127504205623090357430299491913179624158300414968823910773684415621510112586533425599671793446887960413288095796232411737559347104432558196766691336852639288338848763901351697115459709609749256727485698093005899440100631523057531395296988571157909077597101977855873312564622252117050616871064504565040256916366226895392230258285669442596918310955740864760522214429483707010315725611011762122038977282259121848384273084245494902531848320594760823569501892980489194081816307344052842231664891064871695855227850136749491817805975913154852838134214161267802371237213588332725254952040875270856861627649069407170897252058542844045609801622473740874159664811954302893462258667115370739679114633706061053967875129880497961978543712163341738127375596541079183075790806946580997644377363806897785715000574381699318337920892694077092945638629143603051490489076881117158184892092935239464230060757841739108603009176991251365814334754641139215986958222851481027087325188896065960576625238300385388410415678272380230084004638339332305586326157522117736883593570258484060797589255607442404519035988230042675604010182204756323917533455102251851550505414003899230875379799402048208088730054647669883766104535551471305485002984070614114164912417065319896476727534077841139827790043288471771123156502363697553879832018092801261727208447937464215756667615217558090879899829914907110561577534957437458457077022251903084862117203186813378478239892319343363849737836097689220519330479373475806625197075900222012892494082400933312588624721192011669437851462113585634771759414115907439152855521218894178429603629547255840214198899820690628807639187839755129996688806758809432586720967670073948235287178656940053908718566262416491633749286715602752894987698160853478063727826804261295667982199794928213058850449360461033280123011333059814357093904357046592513353772312788061854591705617892466248955019482499601410885177912858728325152992639878143613868511873564161418853201540160255159831094880400783412524073721559905762769975838867978905781174019067662573497118655325465322645996085234738088852096771260725525426902599925494738522582018880560286131229906266648823682911957494701094376674501292425212685840938324213275904461129137591833627445552802502703570165085113465110780097539124052410114072840734819520072590756690623102266724289403371130349942066223615805958683334466301255499324334694215275559525688293626259114334156607969596771346600064915482173580869778485535663429174711274954886092404545221102800323306965135946450146801911024378369338952968389641297522926195933999848952504076017960001647408638023307846437307699075207183436362374663059810166613385060975575293110056099742828565814225832269254789146766894113638911773276136764449262540523605959907637247919116075099906874220789228873792584427751346631825626863917236594244251288794109119012765293653652106115972724481125136898799639082574330875382323181236010160680004124265428179095361154854350509588075131542395285358721063573002245825308021748795258024764149966538715418643183828381464493740385362035890173345521986854908130529861943410375376584821740007161465957407257845159315663717405104882708801037035518557811443717338547385994595099694803173426807893841928433475832690963714910327852190258627419870042390386293763492861939306808382830314129196316298572694247193631054474549938593623471894723040066749224965353299581160951938479091505767289778710926471927114722878619509126402849668064654224572070822272971595749046544052017427197739328556904889472883303400136379547930753543617143939292121153886588078928732676595752351474682115522808391455862273307234136571867379875131196244068572450524175386483337029947425891477064655878750958256987130289108710376292627843626590921047258072871700223203137375216803963115286438033164380587336356953000942954449687737196581326875855183227452272418650537050979311716135493371685011934784487826789266984504115245428457589630871966744473838557702145900092113497542690585487019494137939759433393492847792489873848855702210707989962334028207921244441800848431077548455159063470885398233789568957244822618081959693667192487304385620767612217048629544939895852285889007382257561482990540457977460031864743595916943603326520672814670165999419786664519827015231212862990085987521333248500765192981077253566105888469928648244582333676831119456357864679051910104728718451783049254587814886091406162215634976820093328666541279620792033556889739697325012318958198547669441957316561971384895973248475364457768998952793032838592172249245729328397867890492348543980140197954514486747062672867029027084833908734272425438141246498765601536864061450200120883459855486359572024169180603916423564463562932149863883461621081592387488526704914299532246110438783566169868491407230384452179001569357499495885196384012361750516324159622637240504478622646643560916466617311651795083250486928547673789286081906383957991627918128240548298562798265418635889709669131863228304847198036446531539831206803451851362015960201002479137982996099383685451835915350854805483546406455906084991453672650791566812839801080565281180487121446668963881153329945906624601779394366238171178856282743637762901150353799108315075682616131073187047374761959954274304120849473941856767186670774259463699724952408797211427856060777209400881992375355254961200364609224159990789540147795234728208711925144245768922289781566287902271294963394021369125199699580255969299703104629031970813294103173326279033472044475085761443116151912201647150844022627121349647318908991413365814757054990165613315936945226446318609243889960889223983568889201960488213983762726369782397889352637057460354914767381310606732741967819241476291418059869091048449049283043521787089493544294680142253274982111593687493122739782116938716560764636869165510813721103323196466170319780512582396508829192437911014643861246785396594267712582385823144285422479708817849598924020621476830057897918889586981232134532127328979249563283127001530994020291855495532086125938138204776272269998615274448578156572951747097760602043169668852583171992717556440072228162019994941696266877356481744300419853006410707171841365572469784109908292670731120722276800821368653208952976526891275377118585400077537195451590434796378792474486800244339580899935736102855977787680461307836083762213954067559210989965177995822193230523950543046152850139332320006691948703363133047996181683669232817490324763077976461339202760027534752838149658573634585632974837085377622722415022100829911451711186853068234759503075401575593468394160411406046998710536087739700343697595703763357259144863507903798323055436024893260682877604010316890878972617888452671794059248429015411605324151221643633743586598806330053478620602972768198290477783891448850765426832551733628022326105602362718154187397497974855322480409138139488434518304465357044750882915315118867785802427512463201550006333373520611619639580560167437910052494453808330158681385816601422993682662124223787935806775049919960100958874907524090429245353159929401766940459727588972319663180467885596336447632582924001298341349787017977039027857307833196485646348476879173784012533996470523918961498537634631490249108979540866588850900222271660357030501026116438930548947346704872840418209246098380363118401918540455518571446717417618990376681060167368231438690792820979351171006484999520355851709122222819658156148878093604041282227124599241475367662512356657422121005580923196741034141490790482268319379265578816574192872893759540523269972719285366237056008867409586835334182789553798720211729822545852393389074553895286194598432082467221855246688787612785335038853949931887360057445098415362106597076390459088840424924432972392045915788916781763574970259036208142521350981763812346731606425068571065867956099107990199578984235922218832563976824796728906006796557224939951185014257497467258129296910857877922456967588764234257322004391606959301806122729528195801489218737432508770373291574049063182485847884743657056653849053598754558351941205936270410351412275344006932035694144251811137383204837785632477049747393037456621543522003275463389275987267496733261501989243854803177511906656932610880771685343499760713910837807391238115710886604931116632578488816016579845572585993945571192939705583380173339466813827228324582513720360212480298932782412532711790485723877951603614680272930226817244675889659011354472105728157690880060355843505669240347018841080252555557996032443118263930379875769140454404607696214112372410931834560172501015403856630291326094112531896324484911433186291437731038229503311024350675544895542447177791032163295224126250890955764499661215242810660841831521069103495258451781066618566330800912538508957273448435101525175511401301962508075222505209868455296319365976736418871066553437965450850951774949733981580583803123292701304130856166830870174415933299138439927865689880429097100303944824863055029681958971487725472720452752961624202851844944861549421970462501033176581644940549093903439347567584640715785727036047410313097357378446655690728051409830803085209221677671471594059988735124095742809638919211582620096214385469098999899238010041536619155600872677871171322276214421588192553109845287909451651143916431330990893217967673405845586611286313387045724933888558235136487611443438069941252165909508954059260687796085621904372488607319355387957349362223768907474049635354259396330581234170361463853409095320095140182964711024114761567238332538615473725368560383303447755705100426584310630046204805673785926141418847682513751424457568063529390236142329688729700427589343661137754061518888184167511992030078548566463650796400654215008310855107354672094123885432807535957307487389370698030735810292839402813490150516523925781211350737519164680364333073904430505585164753251023616055149686557322748690864152177076345988302693845072315692477617698864443025503094549030570923278685114971980531828860605898690906954739880526015745175006191420317587239317661516748541429996069988179913492559588278619291358665362081367136046873733272917090061157660413765367518525188369037164887178211885299607885017360190879327230138954730954194099236098529336403204672772299382852314467762450201864885140101606509300444404976742469144667092941711818829884450653954808024286718640112414442536589993727066151493666227320513628144999248674400465439739526119161807908487491889751747241975239663861970037308742426440871702405551120048119922668868360587875158583562568625742896080935842524544059427999847038937077564538846145676177034937746953496034013850960119006527875667755069886994569722857220128893190802996659552254374795809368169627393194329999181520121612915339828832257945674577151506651510248708378266408966741997882535456672133743632150367585208911278305413702279746120638037013329215193208389940449434787162980370072582549999206230357076225270921096333514486662166776940077627149866631985760618218697785860897214386093765629802322744311680812917396886087332563304807773668163476413330872441585198712324257804346334612303034811708024134948577705273018748271720637431664084640423731229094122817636682831195604907453554932436003732532701004123734978720833827871610633723578525889876750832608019563173179521134404336096665882184889249321093226468215846390894247846118161362701599047303267046913572516819413464161214761604616726229814539592072531913136641696859939959477893060716446918507691524277405698864317489985351678862962067956742664588710382001905437674952923014482627867509293695079770623395914231453575880318184582457995073282206140470295579711946913362956721668208094809766589852931776868657142591660048931854518605839824344842173779458910818870474458098540356962124926016824394390147571020479565982930863123874690828396663578679711628299379590891203638106261453316742289848811244091746560401524539460371563673554013414134331250710701838593506120503647336647080598750720700833855400828915170051408394128366027806380903733736217998080395644081413292704607254943508783477814643311294163633340413133823694385305426568669351058526417106245467100710254549238156149722934069802401284318638250894492607434011091896653451321443615394825874960244179417438093441429643761556683381549216282079663806848878750140696708374128120382391016145888636990672402703933718679552381309903034330030303901981392000460256912123747653428054785890256233121386691306426113888765989011368190935053072701092363162131557002034723541796277378996117265881710732974683544051138844044743700546497739286718590691603847635506012689424837333775612464263915290952596464157012859081977609200288426934288231461548147559056719891974174094328514792709941358606955312745709318163713725599658981659072741424946852001733801556350185857742060368126547390085513360912867805340112783623563533012689902741798153643357024644534130506728432432791285493445186986493285412537097650464102587758716793204576922452141031215841106833398322785095483710445892354998727169441065660923876465202276533286034430376066220037061967874905456990679997383989547515491148890724076127196501823027492869553612387761624708896124950659490867561409730573248954304848235702107380761028839963942069765434423941380510238416365598770224146752789827756773520833750790720062980718154524513235890699915342879862483762033684281820279886014363379652807315353760814257801620456133308922863430853556556482338993168013999714604555329337094652287943744581402288858567400990108048063031600535657829548522908252080417984362618340527401200896617655786887870931438494736168917275725940277818744858012019977801867750057855261579660504325744067450433040252672149380509058148714586529637898967577962896719109221630224738393180469488334504744875178227471755310566639867726009972919459871707363710429532853344969171539577999718773426277683701357907659126453499843773886601523507438900658282986974771709339051651486964759553228781844504939952573213255883229872497345458587118202883547052842692479468024227861396123445328491906195973521372134154919876512501412114273536235593840998157579004957589361984604802166707213789362816758060050846883738447878977585952029651042872414365197179265818707796266903448362241181093599273921221860579266586842563054723557041060039054957118044733476415987758198627453367474867790790514700046697066661136109521146651230967272664082766468761656187865305518723825841079768139483336913161045722186707356872364165402249164603785718473292748625043856623614911129133139481973932952399146427477505403417977774951291220295503380008047101847643014515662133987594821803575240388635539752439796059902089311655650548817470522409493022976499668275398334634877565455164708975958238985861845393743413136094832702123096613744272821770503281604121025550477156851292209735807558698594676095597452664898548955823852841720943298402290938634596889766585431905342605469678047907389367701226643811709301999529188427579571065368973544012630612167050527712283344953524395309523774394921422010208262114100716305095385263047355495392914395890539863793211352205248764608623839371513760895117907987314434515363657263800640638141529346821851596751295316183393249186650971213774422620761146651287542205906613718508132479640032570077763979760791294779707223564617163053247695521664729286458370578145189019047915659727327037561457281256754885582954009966321446518932263571083729495603611233858347129966540638003378182864028121546341639367710349703326823688973707981262005198883967881923437109680830384737958850942981550638769952236548090559285049671277415020043868591540378462790222519482476480197761296366956823018899204007042083108034076571918016392721131258850866245694528537680949949675766508745947105778541286780515353826475345223037876291416112859710669562988593473257808046413192203201429565416975398824397895942817092399978617099105182955691453334833793650293925199347819653085316383972988625516542432305299172927047560404888207026521902119963428881669438588297055075249001427538415854283547085676031558483769302990181893758202427130243240194285283388514360429283129675816761575146623797879870413345076968912522992288660045182249079345156535716960268363668502281014654460753964881445838709795131514954862547882958747656042214131619949534619281178208848074197355611736070137652341884187006899946803159884384175131297079625988443807333920531870275543406845284562938997158378035183488592425930371322988264315442821010491168825746347487929753245091113805152562912465418421794517650256467228401109879408364269965519416962030813881044419608098855115276387039110298681848861266891165244747386146250918879902677787791686546001272952960917405491188213471289581807948801371797356930572827825245601788686184099129955390568990345918237137593496697925534157639755570956838084409279582953583254155129701603061299180906890281690681300009869402885988513966565301807043936578168273521717996273738184373778021016630015341690256228169127936275546149604033330399898173192073760783767689394465438715347010004800755378031645166964368194050903204187622644202702861818130213200398194838211629959285662277269991428137905680889900498853210244906358437283811138257314658763530212064488532086605750452402112945279020451025066490440513478701185991042872904045601788772211046897706527731956625337772587273307442275000386347419410372005475133792618342694930289498343518549048075850275554464849411914380439647752679047898347577743481413533608179646757073547231879826016016112497882180747096357633552161739793381965528134297085172057641470138724996736942140554113517578881752786701894263284143690482315023076677909014392033651283603136974655414668921884221131971827398165514640512826467075478952356517808722375056962917660177441319132037998713894926606338025748189210320100327573480274338537966608935630341009350216874030159777433459271331153836628768020857016715940654803060497942365899240225932305960526820903404067202677754764092567198567693950374832720003064927765187643641766156230142763041211696441407132582059279646755339536476390268901999622218020411833066373669399052127694940015880260020703822070924733928148098314147961389678750351426774792659704165167265426516011337575759593064792220129636227327204454176088412330131026801934425749533546822989049458029646752478729349071336985293137350732695799318055636849877091332114147969791473671179229044465136057920676919780344975727007357423504436836840138208597127658331153252428885877515224642747972539050029888698921413591042243804027406727551341829788080308652338004337082302031268709260686282469675124597393092746353992894868950508994719773360467972821821210365870186774735856463066454022852946314648222932629523646665027067057341312344867245954680157424497683060087811189647068688197960203588572783926870573433442122684935836946247160590069285827785776377647852086221923274724803927666842829057309939098619533513527224196604178426773115515157529134527875603550440915912161318389799723985183738774994303417402027998524665383078650747279278096182717178583470250577886018501473144490578504052916687479127373962532436979646070128501361493981843726685656089777819422679733182683793921117748216606791646787207325567912079649156628778157754434098320663059468011788158224150461164174889870060736996713877075769220251263547434977407716871688456281273067180574932733079511147124855778972310279135518802776753603089651984195935600727807237928873717388110013628804242750091043837797738410733834733575445871140632381609681126642318489734915088964494634758442645040479137796690467701165351674724640697429027515435839430587025604701782431614453388675729270944257682844224272351152422769826875959743284989227560744972157360253888380040163022629545403581676573023587569922182072706766082258452054566772928657743289803149227197627940393491708771493159455630014116978137934440589724543808235156164626467143626741391754782878341470503744625577788111845228774771177026907216960349436393570425439558275409906583392074545679032104249300482474798404782468089311572016892626318708966699222345267698606530534211633368199918604316074425650090202888038438049091334197753042223237726525603009692167399865124600303780345724140122831812070486822086037645956579622604000487264811789058739093013852406217947624993510937937208945833922129257038870736036404805116390434803798277602103366269301898771535547521511663837248888446372747492437727313897090850172434494920399244639662570540444043960897837641733196295520168112998218825481989180884843092485670047525056067682325888045030445478874135247875537401093341482111676868070692806856997139486673077745233322880360831804824774427698999524194362157997896079824249752812230817557899151036953572391738339423745720379431616404842171408166922167361792049244053372784213300902450942546036150974854773686841824590882575437701855802122506794670523488556030008312625877353009482064213491016628002010689080171770268490671831619123465213310448277819475085680531190057736594938003547380254959763390052900553019313956074837970531657992757083987879925741168677867706297878992941271821443781464082459138510713327457053617232345791688311372293914652643618918953270479343824961576091533751803931622837497461904667582459909071717351068743400783960319209577699814992932085987151718001387654714374584987022667876279430863009898770175350850156934048910165846595645558034877252678644971257669754251425364022838229690070184787737362459457970175196991544131491992360411010651478612950091358178777613557332193819601952459060854990200857866961774390285577126362567140349715980138112381827341907266631100602032567965221776971591309439421484029716788957498307733103991995875956714052473607526563090708774679585208898568368540697150185630963495816809603969407981389986476353567669085568217017096523684147053818735315646166990051916684022827775252209080788088881182563021738580303691466895189315191017225434684079244709152059756581468710251697692848425735581523582789155258693590664570495349035966490762458382859301447847274573507798613017095613878513135461273813960210328260601114489025985918485385246273640371167650718534254203726069459412491391520814171152649213974054894124398780467211898539348876798229366259641281121829695941684092826534228885316472325216592946009043831013853394699123931466552531121238963131101744713791104740946505898378144619759438432764354712542379696183961506402380870075858852612411211147659983604679492407843825397054342769964359841693950614823782642912029927852848339618196982783003746759990820608613219019571032135355064896235810116383969090584579828226179549552884830273460378947108261210301161150768763540400561359132610006648138937156323951687725253627483229546908902813588878724442349376798282210094246154042117070294034498258892734095083975147076279287091249037348249821654843546479863937994949354395054353624569857013129394206779931252312759276126495030973214752885929049825292164956985514958619333095042657129752928423326549876382552102387300511391480034303134615497992198034518572265949900272199084805841450150112579728951558127867869645255078315685857589733672027872835025351348866901757995680165317957242418320882647337516254234331720910010734390994188934260756106698425237892412233149802717547258862538803713102235982188955019518440313894031964424676613312567747907668226382101219448381465104203445467991169656766609435072651437061124600841682404651878503816817390125269816865275681096331055497458736027695613187497349592348076139808468148059961600753833278310162635487896997942325554405240234050210617219412444884580662095997374855072831271973344998357000226662808739424320225330901088230135066363804925054856162896322187093514140203136921065843797316966622012736643219670747744753993355013293762530901942499635342347154577778819366224092523726877138771304065517273799318721963669763475260621869233213239228625085646721447692914483706173621341629486683254068309910698696516388060731593426546194351783379357946044191968622422999609224473616651599549867633745413560384587510764835388499911480260356567629607506815205779982096523028202482723496728117938950697867931908302364832029440827325842583777500431532387771164877513796757133549001095664361660156684882174804475055301374185158594110165422826190651815623368712810446360950809242842485735862114459527254420114050512926363395390161914012372971107989999081349838649909124523184609796061887870130366294439041402653901296019992077723918575340634710853434142533919644462587337767215355415287399478244411537168056590000647401848097988973530248862068930434614219729263198530836247743318099119112949331891647386609655812325535666355144416015482040413998323727553085139226775989782964335634044982806733132467189049543833079096724309503638639085659815683997915706950510602044775814967750418678143209880664263175090980262961230763373031868333522195206997878524385548718181478503179923679166918090294721743899826798515405916206868434862080181359358197408329684150426899826446649831069483011708419592753526472256458566570915138950801173491008297459262787192862882879625271959550341825215995606232376388927523435074025339613584678366748295331319477329606862899688873713399769191117853506138912927748190698942710482238199067708000045116912992849650548523274938620477586439521405339307104612931796134051461547134514477141693264376749555898840065881054523395642687242806091868543667582306337861249988695880234964077427816288908482321781862258709921843650911091645115823476068174805447768935553124749513884985404125038541957111739143521208876543986837103352953741933640058379259530080586724648875940080858543223016093779857652563473792904527912496441823360151517069241476942945724910397824569721474273076001790345540052606559189769670043685546575163342000575283834355033125868936417038525069925384808280370693685708665228314212296792644006847995475740577115914003127405588291985032932949150541505117483529440523145790848206837909739569057180871876778073433689029911593203859760033988323365659631481116090495721720564478391165673820546759987087631112932454618113571739104704959548073963771462644267848762761913523058625947898928873921069623322851466784961788115287326407054355984738766958422846247220229141577069899355216421643544923857507926352703703410212051306832460058797295523395167827617730970607568775397375268807798643871065435975258073717758694580737844246564633626220078332478210978093604898993743434476145749673739243103287666423082125092930691361918546990908487573748358536955567119119384748065582847151671668109283244439777128349410104941049858804036366792138712251123887834309935878770760453547527332570938607559080887291953512956195266128158887784285449301573376671877616340066075941002967012626728550695324761722196557488414877989354954664194672185117048022769101466604931411803448740619441747136895842040754562984469038385734932366010331360274232877077011131683591490817586433724783780636152968513872902500427500930083394011011496608280598454744217982408827798707657765689158934302973818351956422412568832801761053630428887182719461639444789433935793597500957528256270746619257127820982081936612361325471165575967696097695987497927858185656307042982675889735438780104981628275380003732757118760884721307882284511268843237264185151431366022516528376948224435487362760473099905902535322392680628146659965161083232721118275080596569905813051720204777187579149678941554506463732624090202003124016130680078364773637838571311678006057087703220555123164914985696850922317763403348931129708144823044534023613867899354018511629698315960188126893382137430617820638293233200350819124574522765754783538902734287197837474597047610158897710763281005686186802733469847918451329132170960539994647995630109999754745623071289494812912331117853355872978256313075122833820978725856249528051403496742012422144582325329094470165070862503274012505145131867362931699709068398878765457304381428069441764214540701399132906019799979219646148546428488215301340724152921824443697782891617702004473982913091296589577837406971822573817639235389584706643354255513775585464100077805737987873830064924462566774691677800737482637456859743634359488748934661831055521490691500570068793976077902702077706046585690922755926855037915723136876277951620898420557380205316053020725256190326896364204539539943059461510443251785445388665247396248025481370581417061804288016131940688201184527920855250396629665150860155653685286245601317613067974824024660710546932517277286350987531341673461903596927963686959547435743935956804352004505946101908139297278897235320554101949088214600133400239813508726614469140906398268746609411905699845599622118639682651075348591257297561082728133706282432845757127961421567375076751469763534741155601585052476306894779356528086323117638114587193951508413430905096617390469775123119359318266127375329878695664405067638143911568035789154177700298058641393656039766858857713941378644887242791839302017126310931452072874863274401250596528410895078698538076424853765577650026807123709700435208431482346013640859274651486131848328464590813316188980994433493441380419286541427556869451226664742400598067979866929415601162365062903995272371781860870075648892242835709386423160881549993601175154214481986745328551012652639247606703899955835715101807413621824718836296803565489142316511000901112433540028371523483879447025378381120377951927562974027385749279306053183405666776042836613043044454045811881808170039981841752862557382499767286052892104326596756617968409529517915842738448337452371969044972216613681226561480060844654525688098119642340438594393008439195320813463811394691109473340195933297390798440040348992791956283473982150513939918090743843607520856242184209030412465939255519705988483637033816310589612475825133670450458043488605141782005058567224564610789101106467124851185301744534677482383707089509565127850035189917919189307318720248285924571540101803314975931163663139761247740874127707068418397679806077746786495024736701639776853809258622591894901561592177943835176320911326497435539006128562751987098297752278100874950979163105266492610440452600402428226106184559380487672719833413240268992160001319141603381346262861096448728158405850660739325616881627745048586317508972818114644757569601904716276045356886519991253173336752581986305364685435798354651271293312824042349065773124743813596738006569357586281475060479188308713402495760531456267270542206416683312856486723141073104325473022226973715472646024521050440269770869411824779929517426370266142388968349492844055989956218936404441035160500458315497443905787556206360292058323955098696966781027601003922404273103128554473290335160814781642833565270511624123768697243889446890722381820737222152851375176505294005024885881216012243874655420984118815250497028552841727702282247835918317249363318768422430157379289733307213130688733188521858752856281225783368290233781450385589572954854931077208858428032471363936767167392398003618589752396042219564884705258770650653581361825596824264581614381040707909530491727367073267860894140219957420750151241908035799048183001916799147647507114364113487597099225631765626126407384079778158803641066493074320395092771204286857098864180594198118301985064294030533764017945143388088910403280473779538974467137487622303523480042333275946734069880407889596255580767778798528668856716332271916464429145418521919016806975097502668350891928677074532506671226955866666235132613684938899588401248093703934624124275497414020160367563686800650085353679662339662045695988679783697050664182007588345522388153102977216260248934410666992043767571840674187440938562749842503595499668683858144760800393503877513698017876460504646893399107580681457678906976539067752217795729687513611196021192919779269513492913907034150892467145207264122799135156555108585093258060450902098341189308555907040712459274289463247708282113532985599610341003162532119381523572468543240091192274102667019753359351653972515674554722946094537222594191698406392456702781769875859596313733547692081353293327502259128748338652523602079513838840881364807224640327364253831449539121244515527179254383533911347184782857585041124166731127664898612896866072286831931471245295511199311962138647558524992092637138829516457920075687978354242328539407384909536714486864732488346981407076960166162760640407195798440391984732909753480678906957219876095363673440003478883874765190927029782941550343872880215688639720758041693069337846348887996556479129711586111351269979979744971850580843820917600870450779298261753231349480728496234837234353366079147322688364627750529339314505436360645757458661256525121437813951661912011962474624372592797042212268212466860340932066517526816045114113128348260071044759838368863374323194662695365002559136326921002352239135703211082011218580460827057333783270757600301066332394586246418380623948328627348207007905829618516326566611848452144268118155486898703141532043740987494368157571407563236926453942100588754703280803342137614157875293385878068754891112389927596836462620043944503471927013330555580289293799485484781571955056233751892871443863544585872065487684357134025098040296952612348382950260153480967396917797759995697474169951017903270000292800664029399043171860205380145713131738434452855719131935655368714369169817023855215701541970712742409651591318451534012491947475651098394974341742363824756275122405750909543794500726788953052106460533167699309876925772617172441424214761360404654338095222468061545072862675680984687881585643625649136918082222902740705595887934842263166553073754858693062615066025962211284705078238318474545138996703821561789834136673755766486944540878951704497260009458679173512875705763855834454740961609108644417575548135433705996012398544375407013039741581073394750902030242151362460079030140899715110313276529896894186179965385050665934468175842064450261301192733443620676797956307240026430978972683571942816671968466988447548899187043676386945278712101770969150656669709300399123373399936758365751135293863300497141728128802832529324409647493570343019544205632194248288069003804158546596453129778032838303289670835586637165903126824945308775769303408197407137113386402618405241868146243749066321232345683995510236177156286655111080615785636440097682857635648952398260822440128065670538253750558921670652308619332249532837625718244615431434220884558165034781274268039375409996019460898814939653071492410201404060845585475831392035295902125500620236198874220495737490006124834859593050208795030793279214738137215261350687558666229387910621326327727559622914098738076932623950696330615255824037621221423481910887178096556328355029143305738610279106493460075672538957406577375068836372674965512331764142248084791702538517183703426918963898657502973371587539305407299476620488686535380849649524190396006934679875262617102398498319590479187339528628577245345634962397674478195978139630470977111795588733103286364331333014170424505116439159772435021499648589760398815639159321700488773546914745516494039259508888818294157222694977156517340096552345569636510891734417718943487860253723734497636229011199649234802623898690550558139698331576016362443234804773094396085630350572369415147262978511533666611633679334689169401448420831972152614745614343984497671744257775253492459659112168960273972562061483914718917946890895325321985552574043817302770641331214274859935914202954550190208032362320596950332974634964178506097644849284274368853002265991783695844982744063740458704682435396723013965382514889834803076492203207205880069901544131880026632522711212768895053234958163729231941953490986711174503614010539055090467310139830655641804963462468695092200374767080569412608843496597506842552775265407368377286928651735025539077593301714153296909390682669128128465028921060132124014255580427007242473796365036169778090090195920025483623277432109868337302241283621558764425675716690586524051966137374672623803501667640727062224472491586017886532898382129168836796501335240179723596843107228920462873813374721733991898575358842549244528136712537541869460657573168863623321628847859216034171933804537913564970694685316523336147948894442541717954904377916983867526975503134047444653988298882141612953427646945786610947014720917834108603038600359485868603675005568836557704254487374022349326748404500477122724701949512434270727169750615292636366934073748073997960855529912761485173488379039193182250981535845625580350703679507247416163852359109996358233861421467746483975369442742334557646889041075321321143131441381470792900033293730013043461200904692378857895698702904081381494113837377786904504043274382524317115433411661383892584126400872588085603946193387305850454952755001610723193168709233099343693333074742202446802774277477100547471274792914323319122898321476322995413704097535429925143383016488131024591780741170015827340609451907475714760716880011237465048501534087906335124362971960012386500009828234104055598448081261210229662327389458594824591653315038782140871474998783220953760661260159267258189662922711015734146960936484066740614228692181921454497607217545870233635857142811673766624390250791646631977831413219188905082364276455808673550208690797913509967871251665226701727828976543516762547818204192030755230355023734119370414508470987473945964499895701462592900672096302063507769874509677786562015010798866874499009346690566409915766565180570266391576307874421929024016723852780089574580716504219500167243074295687669153659969406700696512913836258986816306403798630567201984329524530925459255730524897719672185559222470319433433161016913908698930428012868825962367430418770281647955709593801334803023849426997756190253983069864138632590668178174586002236190912613426380023187075550384386160435510716349383660384895534847796460126267764537536786505461368589766131291108534512623582071153265351476624401572769061978345968621954824716453556986225137967405436577908342401207377703255712192887675851033359240126087464449771612527752706075191532474998512636549455158877192029371468790347932677959388683539275325280482429083312954555520207068815155207600513020073473814090556128147052635700034641744252871141270606207610697395275527505343383003026789781025488404462671812850640954662442338712455373102198552524445079117690508001061488547180728639539878403851567049120295078712929963741244783865890109959129492822554537271814667506002389410532637246213027834694685602831728068600448980950336016075060500348048453432447968832582091882602932860706080864476766163319036891757012871070083890223935673217269644295166238566539004714348022210694988550015269271970808337418505264502077726891086746080967465997250257786923243616318530427080737450846911606917606482861220705317388948066699612778744340030871137586812048982388615846464030749602144930738157131603310104524743512762005033285967577163213277288158657612512577136685900270098075383930473005939705835870340614374889123407330887905865495384454313421585829047321225477555976812686947568192296318339160458060381694811937369382159208709709980163985892586187209453874265757112622040583276690730045201659388815095928950046118108940375809607584067346813295130870416323970513536370835530236280573763236843104451542237449143879461879547138850321884693507056865281537480104892649847793190193078105607711827060579229181167796788447359022127106396298375804589878008140586531905965022985736672554600704007143238217827372701058462121644216037127314364085856751716763544094079899032537271366445264217320951414411102572951721372286274974183384505723795132795796975668335280760308947703052355971309643659151541418916963449811031467235136896452184957006740220648767145141183858929412359432561482481590638762051997486686648485048884684673564118090775229112009381995957663641627374384086436309332523490137546078826725791821176463437934015748476457131149797942444120726139673814219156251673542294238430857730726914567160813236989134075230857724824163319496610894562615309881351655378838674968906897924348115088759869946220933426161862839189087248727272228321465265770496394832633564825081800690329096528063352187704186107007552681371143563020924336861439198526309924547479737787694714629520141532561234276754688459830115989031443788188177575774257592138129284506713840376998688312344638932885169905580433640146955254739758324248128802069975675022004241323918128609583778431746799133633802002966593180804334642289234811322266071986971263361012194289135987374507239433782753829569344791150550882590159634941347026358858941513816162909788790214424570508317991574160231791432602894868246953002158402236322235424829440364899353025494915118216201398534185869678498856908359771189252343256396245806825744029985974459664259637092039866067623508734405554858934533506050221948718542285498359851775304502725212494153304601720424886299079982399772351297620707917481415320052991086841058235968691960455556638970005113008810493885691258951506834255607215790847674927101614482522231838815626268881686707909457316198106810757050377618958678440730078557023882474698225695423426475728733260213274452920081466051829763714856233005265895461612363829500067768555564885738948140068892738905014792559487207857096783277898995072914734193188211568757218360451669320515204781968289234097414880136484305042169514878893453881010301971626797602489051547563488780916843645609670924191328973938001300375531736261345539028244488224972224617209611474708311164403092826631153546282865102510378025331859910866158373754774680434544986958683551555042714758029287619743841613150253384295072905205619347915992561328991297976873995618419006922268909906642250437077322089050405716754581536285936272130718531394299043207436860165826740101436363724137076245053145397650072700605159245444476028856817117639978140008576299994300531947611201215480587500040119621180050576022259676690255082026988742382878729014767768060771042868181495879265969167473996885923133049521213510325516928299985344044551510405575676835963989946548216235148963097238296229034026420983124736399309131088697927727248454960602543476221629046947790252681944206250307496342590163254546907284234078871576565854917260112946892180659718022969360065523390435585832525741193608064388508320237870355542269987631978385787012441013858082416054743072778975239285814131434460738047991834999868104108203975997437772210831901905928499108219135314240560406133798647054862559962443790291594888538476728830493107798302748653159897959135841643538499462079052756026114767681858821162587346127306199064843120154222061044014035558309547450988587862453321057268984257983750526690701325234114690774908812799930468431555687194520317556818067708987835577331882237365094340729814991391005949322617063836063222022467622004173742004619538455213598657860064449886764619956764925857350899876731776023046793220740589786616481627741242523293431818457081813312889775322876826759915072559666951288048700438159125791970899202254541206558859477193569900798697157787498010502747475845835628413497254616724695660822711730292601428879088378743073850055688005071050604076069321045690976867509397360257644572074322164558522367417074949394143496364488970198519353138694373168925251902072908975460568455449172763240851587980986392224569332939029550983956904030010569820501736144416591660886731420864364990865865490045695195676203689249370661794734146365129951038373082566081818676002901553948669599147012732469001306390471535387742742299119493628217639161996107199473292482807525904172963063499701103043902904143326677660503393404929109279150615839779849750604093218398611075056758233463801862679190214065061377848341895273756918455633069547379632856805235546813906342456986897998123901534019154620674395331414388627900750064998288496579935769118902798834289504242417265197301586573935541681769464774817994363775895947699300626378155573912051990420314589838061408735471564306826136857003039948336477673267544625391237271622837583677335653646195844970712074290647766680824678389014731706363512194489606807814950557370848357652953695519012140320070729847150036628120311978652245760923892811170717118086891941628776016865811292435861464869773057829999005479287439628205412426821172702071099448204136209755383080743511980956202361559881698591975632980466432642297197591397909433522870321166020191672061327358272823940367288775900900983087574028752443894436545433029424692705946915973454182087649082797904703104153253114009834748172718571511627270976182492793311298936833476540142012142216182603033182390428639780736443610484977244203026917442770230569793829475869981743532592470912562936916936152969269735773766481139740738482601015418359871282355253104675110607021371303800532605586079528183508491901363095953256406121490681554273376568573065851734032705612152332254169080041765774162565204983812393191485485676104186208206908350779803972097369471647499592883013497318978415617340304314693565202354601619721623761243824256860952525817686664579763619747862877496720587871861885806315636476482764530074872257455516262284234189823138535146423452698201332174346678734565410429449753117690112524050657900199128366792119530206320690892918612149387055158597007967373907503709848704291436822188778858178419379534970751679689142145646091152788168926364064277464041208204458238837532706987716943623670691949805759297817891585728809188415308130881503740047093297523304181913799140337003588799354732106329297909931893337426657548017182198617508950985780366107639266388897110310902373013354649010506001544429845877113599114614447081432848748554689607120955290130030006120060599817828156461720023198079566629461928600320587023192290786111610059818878617957489933244797979242833559796350406694303413533166980660001161786657089877943354110221777353386338175089692549681801582212266337339138068914207377360750341929941321660185414050370483325544259772608040043395673677216801849562818734534127420988974467058385413747387585494457883621915079020438719921652580914769401493451903465828102498420713958686408943065814491790219726424873993482959911614652756006627850308757793994093115924792364792816340129848933671797639689173516351829354072339340816681789885140492201803579407764247103640699142224827484475656378035893954973843850166925701976710685853660143503728333543885386174972349669160648418152797743127041376920402770760839499437612758312808347208127443274105010727639571678042421989741870275619113198456471885560616270385791016410972332014151490371147229208519082579879137695359971142190054485630701601483213241563581336271046627007952091859978132519965922386541625791083989492353186046339840296617896723366630514075564128064116645665032602275460452728126943607946546039432839294664037065700689638877430300246283837484396808363296385624970693847517316448176973378569400072139059186863957276338458241791006146428991987598113018470354159295003440981531559483693792189492891308934329216365027517212938779303938975241194074269999086104790886879365387180201150405196377493219079223646648930533764844539510698770461451358645968856440045539448550261380040915202360950709958186041976913690460282663501039947310778374453579180738160281715064311283173317150798173049755392047423506909827244518243593473986126520462369040751275902178357320452283252654637075962615698340866959674812426127453204479706099837318220747615624304757752274185695239590131442913941716377627250533754206776193245561627572987814938512869506476696742599334173353409829725518855260454052828167633225932323176355733362574631046562479537865457891659497283913613542454270011233607965004820567042147821876617818562364384398686911210797354452076614062480003754364628248489002718859765081176338940639730957790508195116950797265486885596598482753213100604966113726507912341622217784181324607866490484267612699031210255910770019581613247651316095150556682814130450380959503723281350773922340750759749513403879110730774274322904905133766227247999343054948779762295665982325197655955072752166395291204157735337607015359414304150634406443282290909258315004027428999013332884403365465428971398018869237160669862255180797222819026562125342893983803598859567984686116913585624191625725505082144438589167705527956893776697926276574056167509576769003495100938385099640366795132841130310030711011721638876294070864500040670362874021584256299588583833133963518877280357700616608494978249667603165079843628579354108417064133869547545591867039967990833320694474002107240228720781555835546847117900288732696925224226420410130908057263041587980431569361841370755944120767877130522723524863804552470384518955555532313516559533678382859852183778933228484118655792280114180111724869306093180353817320378156327031970114632028887644587411997686455766652279731867988411256025404700254683171076794403963322764109532577466490564016178690156423192088221228019425059154062037246375120613213881473350990060378319994728197886145122883724892182990836171005856181712139070602506038340498045295228392368565813016254619329740075634768109627911523947562429068821944477689022954874148558165770318186575388311943578948094656144787015746074867292265064165336571270599815634471512130262587667518522675230713604853534811694909485727842515694745667748476078047888744314381258985926189330112586823880459450251766873424738844268578980721007561123892875484054353230306566746909909986743412078880777016050120065387183892146327945854708402889041445867609049033715115190488008874221449100158372849336479777821542319201482588908323077637296941990864819683196061504623700060283355386830770686607606207055183232359015449853816385628732511489605088296130602994662806539519481641112273255701704598485339071362887261034156115140595876326435630897462146057348069600362927137318557990638709277282826122612016303908955485439681568872468266454671972163083985076005166954931820938932588169737861188818802504597802873246684480206389278577491215624128041605324054836543254679856229859362563477704328134679967139119529065519784266416680798331928099787513763895843484859607441011060982866755334381735355615719969333468988320825608341717045633286009894134934442247029926869091605498346758144073505108552428301154296251951320980787671681151999559287396805612247237505720007604285220503460745122257078811242322168993632780680567606559513937928254714245222800134533096004052808478841248958779216455195114586424593238963434462965615457702305957610877548492800092725897768777400885367050793326794919472462626405716576280904678540352615101035291568806829173268426037101195919775996581142877674974628588957984360529092917034476168062271443939114157412816787159109100933777120280777861762272376442474996293889572329003910425766635393071462339156826325735738659103056494890714286096626948727168881065825464136717371776254540816433222595489637189408081027537254894841038737706637612280052713869922773480984696021019188833817314716799886249932438063462008006453230328913253204145858892654668785301189708025966963549588472292531046536238038799606840394893554861901342937735371303326876504912310203749073737657973296405931130111753897409047013477122690667930944550122344528359466590497729405790045233561160085502402242197806290637424621980474820969391718161890498152669469577470664366990869413518946002528829022544477669207750412250244968758067617139061775916310521099398631742371523893468029565709679665760954174380109012664964968153377572664262642890779776165991903754772866735095536243424575317471736054976062695118887325857885718061938048016380858070889411921644360254891133363885051178137272926137026973116545765352061213863776068924771115079514405866285475548525421437167586136583841533113099950133926623534804488910453530176677033955742704491989823232823497858737670108665823072654385009452995623289628896043415595676057293327675170394918793230636225234098824295228879594061960217128713388525954266444114179052061081503210221839691405447248151919505228278325507640218207892040237706503848260447145120165894394432800430288330026618815718766331938536487320152860955682339225457631067978486602211460783371309659121875308193213745852522471052702302892642974813691736357617161065144675576045685687704946545753003964334671559222226476861751551007875876719241248103247065828258124371707252388648445843397616709815578320629887241456457263211164246264096548248552093733298903756934679268939528341949778697115524907750433510579754598054182322798948582653725898396217107693740231784195945352533416122202904331472397083374171865614588083803669314162857471616863428896845882976499007561142267034277806443338602905127215137607662960138820752340067595538695186620682632393732276382208664198808811125490908388972201270747372382537309340822724073721726667797881463437427165166492600232523040006322704246289732012753622964161582704002253586409448354387392774340057940420715302073027735043841606914269373112478017766979298596908480048953534971459670822903511970342319230321862404064335729628523754414194033157956875655576815309202950796474510540148153387653225597649027936754558640022768446268609955826122485404927172590034322470511346377082931102166904339913876236968792861905224615424805822109462700637692121114915069766966782758005713606136106879657330055538194179400301476740435303478495237487147599926619766720115144494515593627763648289066953165563427724451500463821521912038247659432123411411991801114464298512267190630754653780113337790256784812103211653894602135317677975005707938223356330820563537216016640454084656944530297147629047408520268091425029215255593179620861049167443549279596072018165032227090019093518845929238220217543210630609593018626292127345537573496492602046140594185560443651035196876560230233806208432918885143951424906078358724962733551895581788268293477391804561901134000777309254605510096251063668117031317528108364438265622077590693092473847967050708797387216401125644211257393992578542337719296329798560163107603448161059253584233858066792646415327362440109144506669755182656504080900138638146338855551119215289885502807415840860291380325353613463910765444103476737878574284277201253801834661169225917948758631681569379425455248994346242870122186820450972995663125458453578928015532287592156669594748778213727758599029115091709485634629094987886990751562014881722955166274002103442512227846956371677460883640165216501439648289871904189206918956390665908556652431030194818988213922547974707787749903840962868743011766041416747124213748219524128652506343211448474315944531348013869676348289179637483341228665436805856956225936859564373091179663607078016944696406088296680855972992264162457188898757155106646805162257264533687829628042714518390767913142244789033952426931957336805066981685960997691072305834277059967539166282257363653541124477631544436512342919289505439164176932687794468562107506096985203541771227829536024959167379205196157996296221275249369244012233905685724979825952400352608850726413155496346466002400107346046814368758838979825734356565145069067023985735575580428809796190819791700167175425187904380711684243347026073802881101604867595871485829754440804384287684208072677809128473510958367010106086539881020370584248905302325967685335255977750403853013207235735206730806023743638593444822301856011239916244949931063762534078873374282159935693409922994896753796914185612833047700360124005102735139390972196254789238558314699272194781874263945840317579714010971472040870134232616305974709161801755677304930812617515510542119864741311925864348801016027500249424861520701755606298258446422796468119798111162818496305059365996723416419364011996532126005015081366364913095872116432699674030146688502889975192784617097163759971642692228590634707638493433578995322286255977157691327812246469831275486018989085898860215817792975144272148146281330479031280252198956655823537864739200124970148095792504078765259233029961699604266901147514499894234971836577801704095089194984952852691666996778487887075818597442292798357585938030316660760982560701175632470420342336446899182376813130388712067529366109418105507712189979778250729714145405618677205820990189836445674897219703574144859617430260337533302868116588913071876916092247770499928556340440205271278215743162994339625236016620926927373183925359772261899817610280337539821951644696270885196132551091452360198033507060899706219090643861354827772652162010293006538680481853814819662594488196912656603575627433115718393723342846478880667164080542543052211154616174945444523263466704740525904757115547406837024851629674851388211291144074865808536999316463090599133937851218985078812731458300072582820419417448548119391602560497932687481698857240491589087238210614479125517796760288516653358521883665393092101395740713791025330952996863312076025111047488290187409781048141685019377278952794951866398961203716074705338225635619669115665885963085147859459635237737292520108654738108926588071789639205834109787668496893668305267589837266891032935464512208019664184524533835451956790746912284337514032903194977967395518424887121194770228201822759039712237971094054551979526700732106722353903379536164157316423991264445346460854842598302935399254386244765490163128728741962411294756583491687759977380947879069866174449293729960391085207428302415258327169430557466941943507008558986042692487638882784746615835694181834620446032148973218878810550992118672337108572962830961173341091344493227869964346697155527795209074911535187463369299329559512485994235610818695490074727099953197328272128237889322796199934717669257475081076160729305179147623206450627204638767950388809882407744243647398050206635931143281323746086020591992276595374071466761194084477558890093153389027104976498640401732073129853747000137829494201511196259884456688025415850575486125540544292837789509795676843637055776143053331829981452207150529503285117092230420011293612346687522045763157941223070213019849858450347178770727706762303032047012691683631780973565351706256080000983768453980039585070116371198529876750147706390807511398821266676961397311467665145038335035065820497398283213250034000464205625213060889368072183336511026987207876380589842628844358432025687545459124177413187293430637260036831392888703631807658890884383056904292002879384370768937456712664343219903009024621600742405835380928195047180852243937854187624214656443845853116962438904349841244920420380475733227881311523867679087137279348940753027899217592156852620598199012177711403946578935473905855550454294588277562155805046827496063310478057499579964944500283222169435384103242589284967284835826076762899051896016443345121062684916935171096455527800576363933071713141551047966338367796848349693423626994536806925128809190653409347806973703938583571328657927404269342552612936562755317642862879903919064894385228060973139795183982812288509202199784237591361756861220729145944246534594574179072038269609094538425374944873773422755780229669917729562583631442252574526969979469453938236473872028204642369718389765762063040089971208871556598429718480768924528297401535664964631972818133401692655459822459894693136975879049014539495242244813118638235393131124767901385843889612750763866474023235923960300352395751164692347782197098860922861655221995124792511666172275431303328344009453295351168834207628487883469245213556669233955580978131495420797227108687730962667314964660796981728322845100541200993575066617932230198003156121079938110666788477182025605616904863849350604775016766630332626482385136526529454210771923521632250584194706187312892052005044592686633511287106942292018998189421606773079600796211060460859666024019469900813816785186665569387836559933064523580143920110096092816324075267217222188404596752354729388938289404951711791355414468790156503941606371119936019898427828500535165596165407017107269517729138777384866018100540265971120170125824785580009439081054837189642165209284689205159628545701120058401747994072315435223215001882411311746809580974923799436298684854767588187234092022725158822237904809226988021822956648801827870066340987070750398071375964080833001487032817274553353813306749460174704480152821102785456228048620772867854675030417687636455578276865881275073106011779860861619592374550032300791682182160667297764202123254321769778300432920928345237538772774843171961669261608877084360755226636862154618243257214901396040787233180399819179383528021368513343738583584313969568545442106117844478819551164870403217499907489791052450680962491252205085962220424535586359919432976072381742367867368807704122373493373013324979964534521593764787731151926059999182056072904823171337204792687241869956257857774320543417741247632358426410996649955710467878496978808133700540926053955058717328240303224893779345638756751520545579766883530559709369539948756427178030721625595583251992127051270414895001222169023052521628882957571067066363832078934943024783868551763382843344443780709265351384830882426851802128361738827065286594174175665099459079136098716849779895615663109027907663840831136013189678653739773419528543319224239081217509541936030246554026321748399282849208604439312713151881773211507921020276265014016363404424663767086080978874883598022479604385707978690810714313484634046227772141476827346913230525166130743215089983413212712695644034961546306829354069648254690152645220500732466839116115937901199971421180770852787543975734752302624664397316559959886964930426362138661530931527767237982867216147052595343139635737733268406581673036344194590920795458694481193562528328746647479471157924408782457338436795302855840418217383059911353783042585951843924124610893702537520032364047157224238970367383179539697760733835397849936581437182978093066442729610990065433737896937513030123588399993224878200101467564551645949743862770937482254601396473753732985714909651040527747083282507436500702917229950267416814175631838951618741011566716449253526673309634910197022606848456898059029343991442309026889832511703303583266375619374491118985054032174573672867497696730236858571069920863764070714140591451276438859687593964112826897893327462227395916895881692090402728632670527202380115429156240559786861221247250662136025384935004902625880462255894350447124939189867376224851710341272624265463748913479822780807187407434441721350847015663144019263727266128882465083961204843383784080729483232572525603888964064583452920819693909746293813984550576974146708396133198386667318247299367195857569578900041724579462340668100548038995544315381621051402767734130351416195180045201141045498480415517816494345593765452207265779605444432358853832306701467850655273633045609892017080179443627154941550223872231545531979688726258117936264020789519998732131209848720539319380572603720051661530496633067029803318210281118339843483605346985909011980367407309880926079774245123979694812813769917450346545805304027634242403708926582035123507004702685654072570442365664134342501026273865473510692201091183414480265533053868545828147145382411340773956117769456081461980302976937926544538602580383997415915666760970374740407282470408283517576834449002064656784245519958836899382901964350609667863464642321757299147190754669360956426470306968334962889026147059973945203915023533902359965718589839097023194075144407722412353157646582591464358231651671439072405337708705660590131054702349666558439868051100204150396517525767943355466066206991957808265644855231725236518521812533696692117142632879009208551013827897378753711458260415070489744172124724681787949546349918075101396130170503762447655002083425473953157695694755108670575084229985833120520728161075658428974342902116114260376424575453672862698542019599624921989906770527592791755196160496348971263272626149741705475504040066593948702265539417385131462565385487213304896108118272721087319694538997856128502127184387226011314430796448388013103020064704243407760405610547622644883236516604425370697217660353537537028762368381387807791572608516052560984174525793438570675034318893582882744226648088467342523223326551804739936116305154041827913496858264124963653026016945316841486379895916336917439936771355751681068465557443399977563779617145059029634408756124721727871309828897332283193176077111227029711687901125096727187439503474891027554398423502127262607423708337631089499538196455385850485510445101917712572259098952108836340502440623085421810040825617041166614364158933498615856909329028367895940624033068767640029900413331078057965372257910954961597168549288378949384633196026228687293361178349648046656554101553804662014277476608391366987430786064037159979184253969674169086281401254286380994202179768558619016705966620933695308895875013204393100922045417391314399627645450260086673468619227607379107067582838521667551802367777064093157268166789434080302700914263641077729896646911622581589670976100258364997522042218914177898768755220345213807986194903376646108647415391237435328644681459573128849449386199480466638096833139315359303485530142971111910481611282246462900469458053682096113928053532713874292604941170881323277077285843679038301182558962072755903225995120516922076471139629965729232855219515290229890766710466550224108372979920205472303588628870598985681994109655851999817663032133571270841652593057971029511035864561929118775323723747242632043640839063979302677783125503274496999594881697836012912737191151926715296375846749040982289381746168418745215188824950125206079026585391884074726747342000266582523185254309678912202208220631456223852104219745463661691178085966835120804018980049199825875741831538964313630565558757919274106218997087728067651411478264744728591638131911810376528809589692340827729730010185184775179357481970183573908802214888830536710011834213412729681983151393539447114666326439253152350262366165882677784527555636826360738743870415524929098506452418680689343037939181363291736991831285601042344927813160277577717881250682844155086117445528637757000708468534496468114107327225613578227337679607857078543201223933185189902205084154967834764418051347268787217419033195087967482830187385376800059223237448148413408284463319859538790586199597833446278783213037439466382158720318903480767522835386510339463631297139634575619220149039990546481846521281662664305364353464783309390697790273124252567326619507707738997564699035449002670413624179889195137426629535290246873633318079020779759512089072554475941409703274138849145845475107372664009467951036275946079011030898710563903307034749652746229262514883365225640158617827159415637285239309085615107767567593928115914741176465992702297730877950053132119809507680451490048210489167929268454767562943963306490074880109933921499678027471143257625568707042465908417665828944169812238472350980765048001501844733708242644422447600513238601856353430233862212961440016959252517145399740109303621903841775813082566375754280670057684622613432920804249497230642651447970084504183844054577239426504759812351832721013153432884155951787413012349389166068045225119372631604855050723110950597787190721357935019547536444415503611969175308630636487433281302457479741908202030270072348637398599853919583950916476603256113854108340492070794098971421324418364976978972577560829226287470612332089230146261343967823945027048658544176741552763064047824383424771170672147104836512372117854709827284162671549695090320819571399293546933563406909088762543733151865837387332405430601327428796358162264629900360031531007360014846671021925329998365024900642238327938981821356542405813162597739983594563047136702287237620637423837132715931942584671848737042262722369502819101828870307948333107805308155127023520093666202813622726256870024011791064807455730852552820168131901782443416523857721360758463699984119584037026043666489289329576160701261299631776143529825400631512103337533603780822077725760567432196389939148904651468518129977062134854092864036284169954292813760039154678898036777858080811161190933793611088472212339976157665167224918423126409574725869429805006425285121486199870715823314386115096976931460643490549283115941721973550414952585153100058515787145892049868654763223713742386238697812720777746973787012300086286636441345658249700250133629934714561293904681838849674930848019940995889629117561443849274176359023055590668651706200577631370762978472641841672041561103465304524103851171932790898867151915394031476880835178334005183001185935857489549628482920272475925730697705206271020869038280086655641548445767414058067844800849037196973432483979687781131719836486093793236192707402654531716074007841631526527756054370387102181796253357921376533886948637064971329296456946337284367277914656498445511028985592456589289252625082616107317433886516038675427727664797128533045564765440308933405644398857674439711945562720250098188999030540007871707685652558548153973203907803464931951031928799154390686340546741953589101475153643531670891108870197897078330549529218946537439167464207336959726440532513139741893262667209371474759778394692490610835793647756292387016847532624127050410322220630026552064157793436038290312182108192624074519227181101285956591513606352865678544679764518113841539779580971377470607425823317328616261145861516669859821537296465417571106460362936182588128165623709584825707754154371428192770593068735909801978433740715073696066634989421949002846699070760585003095556877395291326729728348760072131137111871262498259224200908029983765633840525661382625525173326277914305372311298640932557747894316894303648037451755522369557564620288059704961596362328678812103210815278957703055641064358364331934477802718698645049856647016870708693828645828898552338006317515592562081001881857255383202811246107312227925468966331988369865544722444258394160453883018954135848826517513179012109235465430926358744308047602859641345412403919045333135625168665073682081703264689978307972891614243868607573748218981707430320586555242749052950500887980658750727034629771005898466470072985693503397098564357863599676011575066466871838546465725540956155165990563235723450084265172560303002202278056158754444724803502626941284544196391505797856668505046240599824134525580320588864111616832801229600515726257202042160825122531375975434665772602812408574351344258295762661088203994456697492240519689674423646126630556217458534675823925597472536382869985046133135947715046799222912243885371422986880594094334065238777206429730214510905839701359928113301602875475746060680371757181970477826229888045756436130405021816360879652154606826196549498692043031481154811664300476703065758590656223967397832570411405275557192065835304317231782283634464792112533914097155223027282994155697253024418486913599942675589342489013205113501461917323980624765766820796757067115128064863959405717749678929535792413021331335489979258880895584028718368847053757910204993782472953125817780389701192656872267818049246686915635186458130964936175670708777611606771228717105340645874508854730612882255153145891235682118257230347891666061602434095283375467461848021362750007026624883396914181831695781294906170501462408098131332343983179860064966587209601427445493448885234644523916863021593823631433674251667214507506624884787834264751153385596307563700167827406920287394166663333707540753132718361569902914175701244563115122694873119955985606371093456427430264386737260749854428208678931546456183054513684144516437532672629896600207451025337225452689803710868076870505197931568580050008698469492919713117259949446113874095011637683618847356965503099764358875236464313550838021562546531322496014965192146099858256785927222607261721596825302412424415397953596539099125825067201727890958720834043866039893333926384182024310049279944445698868818118517277100692111536821936313086601924443126654713276474520168913097168722318877811379816597064743261302788923008410559693728764756860179544918847096384149599414220711165949676619401539514626213148917671850279099803650550304563309755365958731447335961997031493333328590693718068171291639056733928626475008600114615835920083589197092930070253078111281298326786992822395095612430476326698225970777761693331560702407652555667057974552474890031320849498509438311553448092016434751557730196060574912442673905060509941453977598333784747104631759816815168582601050306466285860046579757455833529088679514834685127291472388201283313675401475397044388485236752911595136681988067411767760526426490960807867525270299842121585100683697103483966642082481110243589979305556253354617572911072830464144716466584069183676050261668562810464721975443376734991517521831187964605507238739309029801827302744701646732472240396392513446361389638947632057569470862212438974728205881247218156557803134400139520539304044103175441122445485665925134897113504710395800865962953402001399052122983744553499328976715364461019936132542865909574189105603811554334349956602646727687822244298408625628548643697206304421020882889011047007486338976065270634235725348032418389895394873648508982528448672548220848796096624075583228260040068949797871671980891763429467311149827278795415980852321690267662251853872901411205888980055363704342056342793905164631453602451221111651886208265199110329984657124673871324259731473130182512660486903814250005933608847659864950677264883235347715039346420858783231841813996351726361856642854220075774257221599961543985670902194716229375842073465037466710875343880611771741751198916915733478107215455571089324355988004278275037905040702281292357899460271775719269849515806178554544159766550539063681248131939771074883755434201265267618785274705604826550592896540140423627284158911896374019069251737805055498597668262909349274171797654115289348471244901394074952793022683451249722783068114214667292666576233262419847152409963104680848720498734754796126519052983514294456179455080720647589416894961534266776168670254590188376500752197266450366739609791612582262718711538981592361258867315887187630570628224832496004724142514084467962647028131006710706589801227383978017817009736624023531418463405385253113345509810478930574698378801034587203980281074836837887378390662403518117082981791843940853091755993818943394789081219056785031989342743134954813225112207886494312188214235555408264630899726271601510957659115632175970450820891459436521230678098802135540449774749648568673613377730785600635852047530019341235002231574820089676440072393387829572295774888250907502959373679430874073896293770631107948228089607810023934697669400297665927066038514430360530982787977450753107807835939891881169397378810888153671496745433255369251784492240124120141248318428281534129785442105197808012717188807854458476758193557506540009098763578648809211971938113848280913443491117423879997820762264013927428712684451533339271322136327612556081714610135161819506817003188332611495536099823878962870064510141844169360842992349783665284161949785374647466579819044430194403408932565204646437391793307051395629057329011218698501152584716336433419688759273279812243893280037814637792587281283123374314835616645136516672941747063462805049321981540010107025001021518810354308889500244214693293820683652329825851458081045335346386914959479391749453314227207175169444427418960096356984431275370476981659988554579038046283097320998889793654497313883841442595204061905658810318057442120265798658371275937804953782962166381442080733384149432248870378861348656911790047452861017659190073990919788479346276088446859094785028857958480883598637731545809027306444704908781456131502201181081467838404320347943738617724829065468012408896775327728292934312894875952250918524329155866902605682115747078765452123588089903340809915923810630582426144156875837599914830580308616172318660082490149164914305570799076473106743757413810025508068258188642114713363797138818899954480192994615758481541903659940522702182656973237936219803545654096763433231999048633597204809014193285752202081522845136821156957138430396197595095540392001995968746813841147769178641271329629980052620351227204895352575914282561256152840380936499297941812576063596633991711433951355912822573544331064238573832133140610115009569049774741187289869888216369971134016186875772068151620860714486971520410994615734657722610664036732798996066547747180023246392054109111343303795013383116190869616778863181811889099045647003981305143623298682382043370512383387212347291213540237671833027992033706583114806205402659315012485342725737506865949198217995455157455792417217358462340507340141159487220446222963844918584378154630467437260042807757867661064934145842181123948983726667680225979144307424213397571654722593701977550843236631918216375947212737453085491349874412560018098851930333746715220031096137294475399442265013830482640593441074837339776475911410036043857548856550695493774717673068049723802900222349876400548666270583818937290701640362944545630322107247623997258545238294833173675437970866253841384858671071970480461963128468905784998469836911750918019723608559477003003496621981164974439648064815050527069251463576746463892925035615516731145241744949376078024875720382446001570502331730155605618116335151229066112508486380707963448491196773465652162905291411186083848542837495529026523386480766304386625292814459082544153770982332937277524660265893704709322006635326966241997560142711088422612076085284139578915104498060429322867895705438763369770535115054267843297026619986046065325103369541003470214638884029563482482218143335680451703746562438194129722132121619522641814213116440150653804678219395122541965274131743202807243092704855881955736011484522276032436239517804060433840442749198513646045919425154081392936711828829805764364491966710735845790184777053679449208399385714627254854987461260673086678473144422557667117726400979443928880784151880961651075636239314731489830108553342764171142337443735411815223312793680907824137848029909759253316354518286227812070394333225141356145965093620529452217895953822760292919267630015040673511085697134783278332898507682192077158371918059242450995588858935455100526287275856792974326167139416949873031987602747520680263436960691178819680608173536071085662818731086574859685853434191095543774314513460970069722091872253505775078061820411487496602476189764206143105945345508738931916605669232476905217478805241697959798545435403992202878194525823645320009868222427734526772022671665029445841226651353989288133261530141456084776822106551193237915118874277447645233262018301471335629120191222929735513739944847906757030128123649904298402251423833369290725323066898711624748465701796847716018860835033428154494386862801752709142193673919181419865795535181763765925106652935150225159535832333520959937062625534596461255824684341467063459551342627128114372582889645848340858535626777117255478484233834491965017160966911634448884222328396879329509927441003544356746468034158486254577296845794669024365502377075554240164070022888626718891026220129709579027293904450045779542601973016694459355669396971827337524902540276470702873869049033359697643267385672233827157440801090691943378723286291610081227173454161449575777899637564724763446767931805910579573520133480707846993840521913222212948922834981577229822912501421203738821019216916847201674231486628556289778190283545986905508559087547804824745178240415074453911618803031212282645461255544848320183593859527809662227378822654239199173280669119320375528816022404799922756382206894547913148427013918594332352049447078796460351850055234108551468066394217384305214598860574397690509914070203531792343478666220093037705964527770155916506792508206330832406323941925581625196860997310951760098463864710627922298674248038623186548491595353462682328208267167536730126578803452696048336233347585154658330500692453353273987291107082640278833297171395979206071396462079280907787638273241607529309402938359026749994426058788869284790221574583126529798236986023539715374038663582033266525267932352811204895795353531518485282685142260228748743753369338321656428489417779758727731104092634451208379086739178530852649657857498132745700068476651595990135302659358796078866879641729275298866645270060835589628459918858338837789515912822003681391658748250780351182096894019543972793469201616593791978252302791182256850315970684282665984035872725676010387295123570462386923644938349385056714704213141483416024238548992116827089417161977820257084713651798599558053345672086584009535257817484448540667083421473017657711389623178738220976714535577482689232681125352934213316152215634130149840697403347456144621272980336183976335776462894125331115284867307634244912849753160200599096209960797593657484400184674684086162126521527878912292554650989761437331619349523899044092938132907287149579138491603287601344438565901053707646402743898171718519246826446858723560339154317241054444181325313791326396125094572456049053983031122498529394958508688245278668637074159919725795918291292865026465702529662322152846051684014609199731969645583730630655769817325913087252094452214130423843021950559397359647892335589072629536476580234143306972658061987544676216182653327072260190396689076848353048582706192138815928504973974407900649339933648760419293502756183454157090178324993196344876813319738986213975922411076679350834346843629924231909688814923357985362539667216647441110328699851983002588284786118938905629054893201588110975042405851677264446815226709865952172188324008212579878923838653120056656897602615764832059532318480146238675825746110698060299359949128818807637371503147296757195489299070652041880409836544890307859657093853816192347303438489769797033049431448035296701257424499589292948681492382302644218551973905314111537885416450985726552300071342072029867549824447316706188320826472444234304708062417833227602010470867098626974149837038539148501090742215364082702263823420046316352503897134572022814540647798126998079448830005568016285249191221930959375800318913012217408237590977942895474107383165908245715395353196723675658312992959342447373095966653337810673057017641372157653077752567912073398372788973664434674546591297204155709600164819641516086646757553701040205089221786812652477336084112746067171015070222668612488763968955953619963953248187552570097144815568536085698548007549259319682573648336953372412053569532904822413031882471763600114693789660043850789167004239272621482674156838532907440960653324741262221383421843238344933905914177016279900742730132103376625955741981322416438100721213152438218447080347059912485380213967972169390845665786613105321153678703836368419585793117181634550341222999228963653342861447301384254721724027109235233865256812556038954705049962766397115737674404041710558583097741448689975650397097979354069281260366811405585039412771981119429153326702452675630557960328752951274175834652621478737647625299614528917220573345780238569666989005137061965018521662440022164442664691770468143378925867297046140049479997551992731898114272404333344930388818757001788533910493721054415161604233297530451850768198152777976612562897004908291043150929328018235994181137962830229101888557832202189388391049943766804521491748498277536454987763127891228668538952408370884052316670981280595814940228593631441781241057520527969821996854317818233619472111932245663359418993434724648443226807300411426856247697081769096483711321412101594100410739937035749011517040639208874595247050502987363319122299443240941772734841777430587089273296763036422963007537400318808715947083294403270629115042813189167379495335066514547169150444631661642993547601011634445419926138163867865123573949355453032322310117020296408475394972168098647631448264788233763198682266744619539160787646103987664001554426879076264100833331290868415246106539862182949802399753843225837271673491544222662149072266519887848901471620158555705745722944606295343593490501024610554813739005122077472389864163289006721709429337863829386177349929345785114816902360256144872528536025240948360825873225590981766384346655436919125320114618980772808203971750411073824614761107686260309143813113144620407236421539427409832985841701962727464078072730744525119738257566739308180047133625488436449087395073605505869493014013751416314050706964106802349523328822754968764421958596689377725006821418829542856476914898017772372722198090133618873943363539693484374661126152176286020053133582593615717783690964879036304260287786707148537950345782039553959831547760551999326263498672944265647961787751536065168283951950286685815450927873949642808114722435639687389099028897165622243665199344930820010368992709972364841991894420811658078990957394794840680189285042286726772582399397965624663836183554678207093669940400848617740085927600461788111524843233961945472555705925777639146561252506448287705025631996484855335514117344067682082497687323296991760186058442668718073366193304171078213115696416913194784191532266106394220649644307788681732868075661884223107281473829377389203263692059630358677730918469657604637179225721585748837774039239824020447981470852900134594876905089118699311815636207378276043764174545735880450471073216635039983013304319456428174992169371296441103613057517056115941097298689905847665853245273436026172435025114336789741324464143924941319744935421175897917490172178124364432481337413700329155446850758719170151492861693821157055997082594492258339593750526674743118522415691828569606540987649969646114019910256487518482715747730549600412886709953718433443220481460737251942260700616453082771627966786096415367454609139712170577293529221125523465839923456011064022280787324554603121504540165964986710581490484815754254005824027206671773409127081478130803433593073568558040852286286692146121815210928896388118073242987500869129622412142223025441231550663523577688053084900121382817993046772773003706534398193956947020500587891246080917280514340964378719368220572841627433314156031738188954776745513919979565645967540653223491911568560490093551211966268852770016577051021721341665893094203685822187537401669384510908735532310826740032506301015590791493689577939565723581226581615738636112937637869435292981544571112333323667183721902197159697609632653687152553872614510408515627401312410770337746562996647341362645739477041323272623151782601251040162794378077883411853721772544600317310206136976681121562481163280588237584105885207077851502838505540888208060105633191641883708150186978951368936951377422585736830561275354515533396547299976530519717523955519789996915302855584265298369977062269868343903855899260883310581091795196965968513299464403239236945629806530202587243301899176302751903073852496444974663103291820472125286229889727958423232892994414475535301320807151822972589053007765601959960622987497852773951287707494438345324825873864268743350100547854151801737301380163683039488962619674171617459075952235360315311301352296696091821138820893550336154837264371649970737792051571379234436633653402673087521929116174810082886493000513977368051959428462589448148578297281664214911150676420218521201524539957594332235428168571175796891985565048734342304248846652136785112674643859468437485944588853045044304282757352376229096967897042080792056091676787198935562016332745223152899676260087436933421108194697454663597541876046895533604010069605349161788129228316382260043171972180679657316585599863552197092384325460253293403286973204039820865177455680747699811637806488799622846475732312822949338739531859093969862464603449161629804297695599083033252486474003426131811702422876814744817418233629962245933103070320084093534938443313949532531543876647189788048898787412720719026947614338135080806878011377312828371435522103547286996721375972357976345992830648899542746029421366481008589614725353193105823367865332373066318815379323046704842575713337058115985857457439756041316776614141711053694180658029708759681780349074548221420705543564005817981818119637032666631691858321585841130532073713669757758745445717233279013726561266531181338347579055103540359082058167779387487956475682732198593473504264457509015896084587513549663459028233218569431500364607372558721094590012448471000914063300490769800573195085049915227745062452657751647836175645228150885488821532960450165242753594005764981539883787860675265659112679761641615999800484828106428150507290118504637527846036851502068769816166748000012337964758939260249848101432551918597018092000181691060581983911196165298818360776638976052266184548705551670137527050000799093144228015543072940415303325062489881081228524314657808863784690680699132949182353867395847247152545765102427155837197218200086501337260703698356934182779432341001279350733442982842810018924113290776854856955311780940638841310616996347460808765232034207617232410494296135481347431035946708321877718204668698519501140385980773766726932565521366540588410785493490879404130380690378210775596440077912116020877207028089327302173171849648947777752475335003415751751927865925636045094605782632937860580909958157630517217746301623611554435567653059534086234430153294515261351142779738398290968560689619337424470609472019022726900604011205281066696946171611581105005900108921451121661559139080518962237040899580444720867483982728397572711232156727579405369454350816958284316533600833151641003901942860455003621502631676053280862014284792561776598995639157438104262168750436044860924313072428313536488438892940734936918851966479896230885497021713680183191566931787521419434839508656088603420581688028974598952214146602214419653379333532083073544527847182761019251665044028544341287153156856797708614424330241552203908481900140614297637525086555778803029910259939910432731681478597872862174951690635476493476919537713771913324671823494649821604769366972779045441884341293864544916511558916454238634393067044207846816617394246121552969971538533680749556360764140522962655447022402107834163908871373583939116020619908766419847922446942075692318335458755171076058277611667375792233933834902989863847305092352876779951130618822234181881573435602662541208714363568884942674183661965254329218277999282239945236239990476452988236721076439633514595286912192319269572490447788077644078610604040414382176823685922567181907274849635878660658908963668744836209672928655584459808655846488822440987618439849442010266483129571013300132503761369353552645353118508718915707136429405832152910345394426014725556486253548917312094563342554983124988174169942263867408773247474598235158044685144512020008120760333307668253521115584081006894346104494243922642893074689937731237298457068262414823963078574283437565674504682603657178729055174209158142057592860649841816387521309362991427673828025751340824365214993795210289972100943534538317748439354100464978722391139788914775164828204148125057424170488175260526255601945594180266729806542948240389120820523239634129212218328281936463088013057929059337616797624389884336709617380678897713328180413150110528390281357670287623875529827158834491970541720250117316153122232164240594004086066765038409990250724588966087719432200331079626389133687996185762721074701210014920506210620215816713355918726879196775152080597431300760714543240393078093633517271671249599583449606673569440212734861453077972133399358409000262946209793465298046045046310180638554647252588984237993720942269074847974789379154083148404686757535365224551133253022404743370821025229908900770202095447082134841133287266704953996046236528680757876415399121670198980024768599747382502805796553773683094015434311234986541799632033121894431100042463957252512408340909033176683359255708689540690885512720873232821015509248055485437271292004083226077943668293096358348845097511975028474919066131439298089492798588377905627166450538736922158269470423884488594663729694938056389549863220168062633529301766861351416536242128925476034434088827977579275238876294791779448954657988609007644227016547094074804587163936317294351801867556427713028910789951679986423740350474844521416716628486415222280325899223586152397722322361829612645223717988684848065774668133214592107338048696412361199871816617749408903209372300142698040691668854742189726192295309116938526474495689195103375058467586449984728102211574069907530068169685949207615443378857521512940068925737843218095321166521677436762660877553971063256795327381886295126373957319518612109974151351987574520412003938974911293336116474329004152215071140050761529427239213979042281664113846938267235506728188433403558029652420078629698431008535972494437855287414974511552261987924955916216702514658739041460880586552238747719210989484472263140822869720932547235297667780556396124598894184692546606323822218780415861838828950879481138879007753774037774143175915964510140532792870990619602681024281824564438740449313310850773349094936649818685738232089351412758567418000723157438496317910484225964908069113768080240279105947398772813849858052079757164704466163839292874995017856411184874100344567241429681674433479156278845195022939932240741615110043237694797217296273697585883555395413735343921137410969547712974565577366349207591633060325542874437758706049591684810817360741761685533858898749967034367448850315086830218550074492256109783264644453832812792555796997660217084051120515395695210302634771265159935623648637325765999987669955814737174664808979983956639040119548456035451884295932672119414334908366481693896302948216354451457117060658382076297968657459828077762059178282435070510358309636807867658856944657190125137701799270114316313751770548915842380028208091266251176299963566248460206893608976463316857029183420112212546546929573860201623438709859641053768505901225290246386046382486787099348463036948532298967739610547258324003990797811914545152093459158767452474957017485378443608456301627020364280743501832503818100441189789717481298781630030431267269386026601852995672502192954949267009690234847122279658225261247330768358592680184081341678648880889643425405202555425448540159549468073013094725412898691643998688176152199434978055720203047945343691169552313431918079710688451816194738768190436209813978355213870329880787513151145397858052011034873213753435745962098106562224713509869888259204552883380882088723424936275440400469216649851764113557887657178249463576524382667040140355279764725768487560397823070770626600269630219809246489657113897077771110175166216013096157117487281989357656264159172104207562509263086253677726636018463475846278613148560122263217126216906614602815669505449198310018284215628463384732888616734825339307069338243924092852925509453944231609471442755737148040498772621630418371053131153378459275725437336422653948604092316270852086673240981772238139450875533863034330190016538410355362151995232951399991024550963110866981467626649604767304735274532688066648658636742805012247744140863354176500913263429638562986234997124569506218378678471708920338760144384634241555741822500598659983891285625534008495408005965795365516315354090655102658605513964122818627892730152562349401362395167327069337241048026993287462499808038396106711321855332423929566437456347595353554011538884359390115652130557004760634141863454934166260408796718243049652431022618589878324154940231416431009914002719825780595498836173400456688787144248566573623008609550246997167292922978299293786162161390274951994610062685988940226990669373610307398543995450432732643626580081368688354843142750910571610550927236732968124715529204910766270736250827376333417809261188450662953206085881952374766389878892951235733326744880980495006464813363051479207034596690133866539256123591856598398178675822837331797421123068966973970515823901173103593966024181903968029648282488010826880818068183345962287895731772797433784926743326014773930025818805264751048451159031658187644993005674707956915603694201601076055905505560354370388786216519477472552079576482310384889588775358215635968559906031987860041855626128748116735155275788303782168176868314239089543515532772772215163680809260613481042440939065298413979051565332675571618800389182335840513673208364094326341461163923945810312289260532324545285322403577856852125204625793423214743646927714254852207641881030797583127173487805214078909226141278024753230198141035493222549977161892480525048905138089659474157232721718826635830789178011442658513823869448345238569365495732753405936124058618127111190698602561576239997060893961878504015317836023130323234982757521972672468308002164233348976481482917762288219304540554071762039160684537555823554321346764678266013328272359950805674413507564770832377192881694381625845148893772577636251054242097257529590495344375816160448851516003999884965520246484544051298759263258392130190415834719366422501058478434720814782254304634575728645795345110615865724476210175999284058297685621492802378213774453388205148513895730175460324046616949926349218874041468210818980105548006256691726595060311545453301053239865495864143967613919853637227146741865237071254476752628023947183416196011519067436770278241832278930886036421020594522398639448770913583909677966991948832451257198653988380011877026582304505520573690703155589142237915091666711470250308745377854292649037347462406139071714617680310071962164549990938536756972759946643689541319231072274178061992353068727049404171353018730064693737908891753313743597321968767239553146133404576329313113625999415359025960572163950639685650266192466131727966834013045167609385847721484227905191562899196193462601006782979601751255698916410880654301661786425006146007215154131877315088561547817524474059351645523484926971466403151596653513488263336946289342513731569172781918672494023215651098081346979055057062912798270018952465289313442069674392604712010535204048545875122801151600376000953496593772702638361607483418083890579856527427132218158275435934646110387363350400560313426051911131539228883601923990258364683687464450025672966768680391061437469410954439421534240513215412567108214208961626915417860338130878538920704380829742075314183816534176495985322413785026280455054201436993674344957578492175077154719654840225499881424838585232788868951201161625642598396914073791871772413531604926948463834130831659557009936535736838162140637039641205942722041566596341581749479140918881978097538092923152139351586873505786572760939701634982120832144774189609519749155617948273059927208702825247709614270572662308497696324106527781973201348452421825740617065021285038148121636308746350432599958803639825809622133442218167811803922827879013538169953022743904175574796336384335440697364061274314570608911337152551934159937360054116014651489825594061290424715451922701185156442592905225357966699139355523505283533442209405328928495695538549904107921488754790633034139465572867475698787995732735222206800209211456500468882075064255950943320692716046197671671410631401866691630041198221351122895680244097109056332504788343276455639549553834449330215160208999826202742711372787442036761495738079188942647514705619068551558294197136553809000824624920774177258893653327746383933948623011239286011267129476136596612042977141642087752110389249780514845550080747698734725705178081269211494710873535506502186764498001657887714958781683570680866114090731906550005521873016419364151209189538595993134673121264737957064648506052528729581917108322275956426665386268355211996870317552411554709006801832603086309055635008929737525472594602392094131269980024382443898300142905832473786835164470606048076356033512440883528824098868075350178311746575309165290466280872397680301165268380130913239773290984542380254004043038837993681293949620234957917381856793839379056091786582780851652798311366683023093350256424606574427535995597248182839957053408120356673229245953843332704562023935072896877761155666683677535598404042709842828462664984610212660489498226350124147694608667408742679996287937277268206461659097344755769857306942718627639906588417487308922744208624246183558855846013946990893005707033873878407034829268997552083109576217810838088501036181193905830624968698722003903649788020226760352441775835915594343604404683641693945188524386332320575740735743555095305139525000852950913639877340174427804234351119374197109815942271167747192116094880991296810466420000876412125059543512314006431852992624084216722784658986430300330335596787640128089014968569027328360273258242331336618058241776669044376539562258021549481946914687956536345038879487984344227371329922273171939824895942298175864031734648789772458124713895080436766270484512419266041006685056127807729945698129535157689162939638155553385402013198087117388355730369944714820729661124486535213603700354429679138987005936586655160430183429682783491724803964809340065520694369267648565324984925288887671854088551513537503754600839309055939682793469691285160841897568333865378028805606177394545839772696532863993903255025845058190718106178763197324603017420162758577026963020197700717468299358246044785527561934571204786357964329496924898128587214727334838065036538273284553016702001195810139227934828202619184991647417784099647052048802389978449493862658643379711593652015551887245907746781628073444790019628785012175015934077751991704781015975757802133445383115103827591093629306357567308488661638304285635842232717571620918561304650057327862230039575962514754047950102564304195988474488583567613200617979930892329457771255039000491423625025285038787807063992749085464781718936218970082182940207713867910564769634412862438821372751107525139013372858169874781191106727078714234006257986118047022636447830356463607307016988132110317132416007854289274900672828249411763977344687875275004157436099936322313473392929364026650222339266016690591560098953034005931310851941732388847820137175260685750025562715384556608778139334152546074366876749640628989732266620338678854046179390984037660230133790231085593742784844971375833180785335584038327987164937289514030175611884007191211840915834064333516984451536237378751630664378485765451971809248295745347479126940577768120899367545949594208738799511564551890111826988862604564342775727501361123568536553105877267651158234784461927578700280447162403088554365823264348770241842005222615548732836162987908358360887106910379932953526921916237093927744166734183528283258740194896308096080221965181968293557333227018175341498830642917491002067009995903755781024340977603083591950103867739330902440291879857263278481547307527629065236486357845033194132573697868766400069190553909736306143105349187645677276374794500177762537779837483430160494612450167417504187997762946396023512161616414014425401728581107181859840363197621239216329274369889652139441646594506840925906832723122059739685574424147690299082217518178659950379013614169630213448442743220160641354421256594019018259277715818319856485874126787864949543321505119458398838711018335740373959828916125347943965721502645039908821730200006631605112483777281329812719839008716611272481924378607172180850048558030074193059484371450506688553299906659758153316238808222044492680570799599092879741349785766567525055943168209950747067248525040854484395573902640161251831886234737810402358373130961065300944535524172202030503853547615139797723230507329531350568040530406833852733936724729035483182979759032017189486466576612726792824224525334886120145155253980706115659439450731647086039590471267833200272693662126680065852472792158294960199712899601961519351407357692739186422500303840361470115511522831914801520795484797225780385660251725536353344392787009374770654526187768585212591244949016113904300790960809352781425418297445883017460835536359802425223999790426338715265032404019086459411022023369176586600804214877279881552560266659888773767918442391220719229751339370344872393047945149807522508118591068556088227454930330777994255888447377831399225626691076645730137119485153383692093160521654891095154660631904603910193861527827575763596769560347045243307338445455642427982249004796455962807241642025521337297554862853105250150953844560646492955342270353699059909695685003113964819881858066633843379940425678237339053106974193737927363374659056083634064339145293250433414421918749026546692850905610907329268490383013023440588332325788450937290020660395050036414359662590068552941607668800367648747938302395801561688369793304712979130391854906581707659417126877019958784671453239637800353639204334427243205245585911894381251876739969485332982105853856440971622515285799153166965957989707161798771026752437292887166391700022766181812796847896562930417560483043421372893125744696156696388292235520399454847620464698101855740880178294553627478387662253167817115976163089864848646028129714497329612020112476778641723020411486876234061282809025939493891786997673628934330679505914098150391819853998775202154912693489296672998021839761680715529034628053301953846724780982872693515867089852930052250962165740424171031275155103465771997092684458676761853975745308763666786987472700849497628006417485982391574556410684274648795022464797771115254732413387687965414673137288722147511214355684622698605100846154357751840287437908325264203295664909810295650041335570988654095168872532709957742109098823514099945524240479803206557941740524110766902416178059457959549458700405352119823566458606703766168859517610475631425137788208986713042499084513458116296618402963497656279587010635908757486459451874137089919536493557044361980122782220327179640522622444786274510028828836777572850883385973631635444564731479160454088561097733002642458803595277741138246846000364410070617001078621184636181842810364987756772975600010024627605886920122962294884189391471971504636992005148937135253614357802170294341445837956280719496392499096456397582499404524450872704761921796527079182418881342568548113832570776678105539582272134274787210352512966033722080235453882350431239817634933397653037518936063364113963665076914568132770172957479136830742640481200444249855681558448345129389987920753474009254719408703714630872295459519226791517438632345980266736237697474785811176506708121872724222455931074316527865310102097814600860302682800709496013224717448322272595407346300366161306723355007250754361881921393301313546441520802216089168447356269557538122047868924980636284245207247010073671302570567596837684999125772849700357172087659574386748222967566751323463615422005073597190706253448066790665947148621564208341234345956423654839681250794912594706780003608883957169480974219021818088148925713397813108090837229808431343207250039979121338165765737188017213473190453154196153591245379974087992788883099528069991810412955785606866864712322750120933677043028048239658652672932378295675859191405199680055025787066195603495957219151301187654806080455983714873232974278016648227175108702000563932981194464802035525955113484093949865490781656836942146854725493706316645386794572571050080573937296025270958471175382600255888808964666497894787930869259539640312717517652711834519173036838202438382686353026718394602993576524717655225051214487460977612848805400081511483283966945166076474396629138795274952959399067261140326364223955177460949726853485988016835301126819536385738871135450754751599679437065868089125813751760750375072020422186749106331221202822748677396809933586924871204588351797261272521295179200528611170529572740413744577645846160918920469561436814435220814733251170074284815660909361880337576018998204011858857691587600002574894441922068057788540414185095923643187977271334082899312382406090303544478155185349139769843441799170197907045024423243653088505070782258530208332495518135689287527455281895518394114975821680621151030905347251552018524376768003046947513736841406065076553184166620555717722415419389579870854954878207236150622263453540879501296867587370124740045987224802044111823964519326518830724488869363919522910467555540695509909703377922026726323619364950987868247941999594044997805376808045752462744409775835795054413828690333680587983329959488440761422376965222081631715719361464072771283842913243184677364478015684718728532036119551251622817232474344485270371416897903382590021015510021842915016380447037129873259225298141976481274119992588825072327586858470760800695595101987074889622816148800337297833502472301780557470083275622287094034789437140661379939872349773803457995464283971822912747815416475163556315561960934151820648953560160113170037211270006769179565076092939721900400757312784250376311233002070129637070894158870513947414659085000715502120519713648313812565362278883148100963347699937330961799942322956742607993301505332505334533638031615618699036323689134103222882283763653977210159411518162818394897197021746383073325523650380546810767912554141956471685502342750236868243682507627221496189273781898225615924697099762498130504570916000402723507617999731139996781134300773416526352770367443167024508785633072703899387552874691720186322932207654513583015744055754547246047074563851116938603906047474512214981869529593422795519172883628313189590326112163389346931183068935967562370257243291850475510827960609544088552379641717883604292935130882783821251754115263126206498010284679367220649181767869402707120737596742568915966761465804703945849523975700431592353525282420810849716798310725996770045575530263542977181103082437594795431564602412001489282143837595498481425059363815991738438724082117613863917052858349544881035278101989229474131726847676897789849966633251456136685920293286627246913947124860252572945748344015813040146915096924843387869220840533610378663907019142894686664248389437731441290144861863770257804438917160177365040891252881023885549876676145164337747674303309631301914358769063881441111425078206770166502655366619324382514838454094008859423381646444165704717186256211938708113636899267713818590556699055702007304502252157818225917293753196699788468133550158453662760248613144596179814822183374279794650121681471729440360373291230118348549561335317881078989126121363663149720780921378175683468230254631931524855740945984964167799144530985214312154713991723718193305636950340085731966741544507305696132214619312927124312293641801721154193131116531035393085272979477982268003803419033781107502971444254246356530680912541946997300904628814303624985740091077489411038957251254410994970188645026988751435735675898837505748136792973656796961560563481137127196460204056700752748456314541905543310071642007548706301345231868617903160820158167995644785902381645277362565267005014009436666437912018723268897765362042466602230312426574207901641572934350139397194487627370821590681569303834786823367158776269479629611054894125954596937969094535710850918321959260935371540280509140820019003906715040937836351331722594805010558790145029673366487235362394917703440841918020509413090605223868326400183622087549161261572962676991318062887371549106230199172827091180427146244520334473885380154450351660350471655437469657074861859984451556128074037370777485439771115510971801777443887439342891123626039209647576710543802078616653388315158682172109949827496747841070191341001124633878970731211162661472760819279836732577340425610926251079492163107326758607103681634147966181596750185978892470097663103493938522302740782087652125206456946905432635329724733531374035468973255061330008417703119200223911995805308962888863934080941213495076655425057611264143370170162277917280705591967718718021572782563133726340566704818789475124119171224543796788734137677765440359399518471088998182590422398220975938418911030698960544417180783153009616347080686165728444160215842446925233930982415160294527080468152827840110392185325409416601179782825444673475433105102234166836393540256928145494740275325583592172972555038829358954309292214223417051553654038797419927882590855221745325524355353949055914792107940335750927336846487351905078158492275966285930350802269139641440167484250077775154904082061256115042657852385990811989454089274608103993716882626743070988378587671731943159405965196604110574152280074316578371943776981069024338935961731619685341726559068589849776187952297069031915931490788628484001463984661271273497058638248502028525234689279436859061504748794253278113428969873978227461012343249267691123081404177106752962399463838357245369303180427132596487746435949169449244054589907842945867743927045893081876373631137711762773608813850931095990401964959547801185142919855977530126861022258896690754939652564639208985125881566714880302044419867701062480459134688326124280244627036406327457631838714418222723938821311284598885846424546446569446053095643642912315158334204963485288673622977316424606146356193710916896065948564392960602747626896105335060472364724119602912920900355073169645850753463282407971441004099284680668752032435190741927729369009900187351066713807063823214496052624586157934643041002443474816508853615072658167585301919156394913103210307211729177956948490003425228854370609681585052250619993704579186196925049404788348933091350146233512970802135079191415935696563073813622934404431694626383525112269439348219324312398719090849833120943344995998689579021771056381214401567906399477189018612592393125327440055650882825657751076155421226005872542221864952272758317327765185165893234125078295097464848536912660351480885746653069312838047163700780128527297995000045041396595568272235745702150684400131432966502615754987028263328641465730474952043114667739483655767356382455705353875744870241643012398313291092884015633525574765419596106035470278803885131483303751617357672607863177169355474175418250045401986826456702341272863397187041356128760438278065766084968886855685272977338047655223887060589129908068501507231632350265640491580098351225981961156928568511518172234734399370465371899717713719313178559209566633519721934261241969818322631006580342370534508562105593039493178166698423636822874611135013981258009082396903754275883753494428993349453786987175255428829460085517324698569071677680676539872631130662354343446620081725247116824749196789766806313574612097511649051103895398311630147849146900479748918717260119087687537167819625703276208613529618184410656389970916428158540959573822305521186745531553363386879685895550997689771414320798277831132950502910640852727147050551074688544440006842028964011198502679970736085963230238516488640320536906163473712276101523119263212789708856406734292317136297430898020521450795170301606549300438877947021827139525597206981201641174806031375664822678327588016663118838594006627147131918247653811682342391384494324898377775671621114476131545717368710968536157211322978731844522244449353080190231793668349696103624098463575387065380871663189204215591031933342320894975182954244158694328079572741793127607248993244267350594230818378370721392150694925177424042670485894572682984357438316863622787384070494759932084426881055654411869292840647477072809253360517077824046440435222780790452605677623260566528060935356958842560745295570474709134241591513616826203286045937700324488828362966873110272044838905908949525429677575158156977424100536747511914083539313858718344138403639788158896371700259316829112528737822109575023555975746363766838370245616561994058422715659810023661321188016214104034155775770875023157580765065740087387120462489596123546194986336657702655922281239271630466928005244640410669701278850636175838130647803164589165288143337078869762544134067210268248267927704531550743397194548196290539229225577719465085368038153605081240241934172843456476151225476672314372443027907589671324348968631643544001314965253767736823714830681552371996516596043371215627055740595250132968264656991443087706752057125807733433897627206106333615539174585771825744467537152643467011515981078582507574836865927299099590197135490190888987736188684414594350650587586196609508943235974321828614836023345902330051728552606322713227942314838139690319362291124341487356571873041218178112203465970915064970369598924159080672137185179453653435726663793092051889641450285616742914232293277453927908702758136817041526348838350787914738947588735208402289400084577132356067547765751177259903651602558613801715655208936581845887065219907748767933223792468497588334115776673533701438309527465512296341417489648292233691268414067397396897307403781422461284540936245266244738137438556669709595351830249268677404256774747266924975954962270795137710928086123273449935698121013487645562571290282941284027395569263973092092120397131887484099396777624766361261356467451171562527599075731146496043634533530893795803818335987039625058385649451599131609717044697923959748825925533345498829822339920598409891149368970438704803946996014961987203389571919475680931394430191207322463041136951005203033439411899380782393025301017794095696432405601254946887832309986952675742106627994956706483035507472418465775307804747080359654966471680787921864630854022489918126548565323154407169318130718053948948108392874846175078926288750525330352524819006065599126651149034926126733069239122095202725862907837843851197082795910512776591167569430772141241542921993388243647461283178631033477154640521671922376622096479624270494302525206240540419715099920716190138097310314548962932507890058074821215039627516612146933506785190187776309342658050878315230209017866662075227849757600211270631056042825857961831664587066482535236705219616787381592655004259752062519352109129823229920677162939220961075245315708426731721150162146703873838697035995214937737029882127487190395749987895038712853548622611650685497005397700790401481033089577437971476528826143482631524896256207558178603295134463907732685901433922795993413385529603904320781457126018526547645659031849274351413279902784708679446908886516323882286218008356980758532955161457457509021674189082397950149803600723637766723324467546608172932013017119782255587883251437976257720539822371671927752461864134495680288211309097604685631721412938452833757515519061654408703355199251680375990796714442581906946683532683387508037602420188591565969742076849503808461512880164464536732979008396935470889908079435114517155370385521460032267882085381588142209111362811709817919550311392719152272330750473687966529856843974803260100988811889833430066886054914573889729194480637488445877125372155370134151874435126175941818834833770511281250141071784781863561932822562089916631080118687454037866157467300261428453690065564361800812988717698929348750070884320534174178993501684506572700271457761035977612848599606174752043207062683606452473987590406043342769523206225545032171727547300983395351852672135649475956567456660987034351832456489048146311025229891839964928677035666196935458148855724663264137279862917038749739350065136652713294363087886638342068015965373559741740793930320007319249912733031920589272813748448787661095587034287449902533474218237292403297565389792344392056021474217803093149060439002045012674862579559716687144386633406046668588280543745370460758617410357393598872592205112698604115463071403618817366262683127706834612644247490922896996412469174903032763006612788911097144429193311901468355856154963900725811638441137308946871016249698586246464527869540316985751004643414638464685721771292270218857540024347186959604666520926596511592504165700850045206191630023360373451410789343438346298968964860642142157855601005835851417020911677637752368834025785048045709151212236329154916978393414300010593031861958312537686014154854337957283730824784151983377895765379048371321610943352380672743107322327126232841450389552338034444049740906396328714407139195632952156043725587695682238885616226098791475224179534306410182013153673026567471113584635838194924126850881027686807244979720131111669102595334527952730133479339964289956896052272689487748258645347037214625953485615045986950350489035578641241988432275970865300982112440954860654759515530082876013732357329473058119489380296023797019212471155013258744385545271426943809764741487735738709454645909493535302074819126697757284417736849856052404569533398279078708252216493628370359018946643432505294983496213648154573385832729501109392963647697358226093358210720076524764352620005291155465841490973841581275473260280063460128089100883274039617835383104338064124921741625035225478119992795940010962045934292599710710872636813138450767087825348660986322470233143061602438860329696737214154294838138027741697968326068943406411620444083708870434187658704817196472036521757573685289279000917017378760788878129434416931547436376593616358685599759791587815874336740181065159045680880047679848288745893005234485756931119118138592279015871202119786165432814320714282556247507820753629527317220402395796580098339843062844487508221231231105258708896404504724385920501467348781707765064101118252123468183294764459846412582806782525877776005946839768643691146505347683615257111940999757371296715794050813859711727113144775670612288797042262010842315772089772827523788393811177673136632452406081296865953990655577330595053945690242698740278400718773072452160635231865675968301267004536808955423204045867080464334565679895508913888981811040874891909903357924589520491945683428525565084889891557238351660158985566645360736082902497204518470924176589468274105414139349732412386185142313972065855030142081574359006179169584718371864495396545913006014696859567926372763513112099517909620439981637124678947263749417974249724905168811613238749396429336665974927404113181110037991771480698616345096657846509789294706023200168219892878044255207175821779989062495432201499373947436157913059860256764644470864231098217479896764385957494530491267220939415857646443737230112631022697233043863948641012234064006614027071058778566896502637883868825207752126122107724224333826906465605675054997266842881652269881023214115978679176028471982201793694557076749806680526195984147191526722160459812231536981492759182293630081801123740879368771859650676939867238235573452963109903996612950746495908335641658426204465439208624082050609062487134883204798259839024596887031209218086609967380819791193540476491196839236837482239082679915322924964067168605007245693986765290912014532796604117897045163932769346159275050987418063244478155047820698238425902258886232624518155717948057243912484565966446709496344404088549253481341965823958714997705979278318553084252247476420410054201453284404092850863131100325431842471061649963324258031233678196598392361295796095001566700894109396089456182349743632580975714682319216292025493742457612351133275767764159881936269090713869238458124211367866391868185447716601496596440292909173019422417953262261640334476736616008412408158233119920662128644240046499776627398096518045779882047615688377750488212925679860973248860595766293637987350080512742209494794002010874510593526376326312861915012306730206097783379350324269834821647261488257661917838847077454977374091810057297367724976225688786785553274698243019919811733376833923030239342002190872888969209398485542987841663927374459132404600008748607739402984796721898146661404261348375838889414236285495611135441169300442073085522183705442660137898386885145797844129322000513854329492850610802654770323396854699476680305526122591098312943784679578139375435172085348482802866721454144343106820077734535143758187247723024130175764028620851322543781026306866369096996068951604101584522319557708728042554001644940669943084789598894754932738011423282091030368636406268200009348821483813395181032725716518940203518655789687453509596723277758317443956325645270256904717396464722055260282772938650812324621634380862448543018044952672862955285151843600211349636917423229955916344360138057941035569276559723090284747036506624886818313551838971092450070564316693336652824221446005082586006982872386460740776327865174007731488746023465529430287201657083324842863425092787879706845628800420536777295702260902317569145916615158157705263637762902163801229306755232227480008491660284281548499937904427215905975459707428571249438603475518821008590515486415160851492044276390389767287799248258651362953088365489921401783165863513798551995613556520718938973235486849449161477668586628276000374934748715688100888842028730178334583873453084941042027460895523194821818470543873509499510757889786611395446386268858602697377195832472275200529570005467654118734853957582541139215256576942725673911761384570552904698602184429275766869533586950112204008593906590278133387612902234037647228549756055797512113379004115873317792293353776658943645802574384042907739675662861323502092437265870809745932464082392735527677671780089551824344096328715812574588916664401691302361594152336958329990294638993462218624942564465146477640964060068186021704124759303313343331758700680287785999445284821516818458759849552729325239441529901947501570039682911905482602457277262540840800716140070543362463172119060006957193589527013985904886457528032551570632953752759196084392584255643322779754272552694039509933329556079746025465450137221754549257197310487243904839046125697053436523821079747320944891037309094494050928145998741837260331383990819354790200589258969632621539782451410977054608357212405042194609957501551650440177724575164481204950981479408207908914835936727137289280553014030391588960741098095304493325982014444623972127596722374794372990040620300032095378143392467076182586079062242713180615763514336472567889625343737189412609857541571596216718646374115686331269939325683746478208911403013735975777869837259948823218988687005364560932994297402471891748135654256776574075410334746971289109547602102778601029495343874145496344227028802519956221323718225401593969774055067764564688657068376246981386421773210375770097132701684358479852614627428281823310865748090850399917614851959192833449318933997996619770329474279976157335532462538420557746488345369929164016786906381939630947722406677075506628365770214944469738537857306429831098241836170059840807889086796926343372943127857062115880511762745293512579407706305126219619917938504272730851199761648657901125158937530547758095833732838543185478290360458554858233951231292385583237418041202943776834177100061415235187601884171279683281420048272332988431786069776647572790101167622393159099732508753121851920894978167967221350186186544720008266908339779147943627181972975467812691094362486522541008955323799107870650154192677380782198710556173705126276124410265962156882954975423953174358887823012292380867023413092895136961438390964022221527849980482030718202011633346435841652405694802194957148398600583335717540978258580050971308332630143891249965298260318710568351871094531226008640652136219545990165362192849605249692299275560938579994070959756084542909509040599631810772999222523043047270458645536431387934865339944323001574377883756177666906952910633107776895578873093200732861040075275981960385762931438435678044442950123049200893382760987244056872237475990041376379671784223133041732870092802963015112422026310768638235932996172825302974996867251096851300196331708823203096329073013498736302581797373342975926065721204406955657752471228115283656616700646533214986246135952938525110076106155360980322133391981396002614697789149426199601208952780969514586097958625498754774921555475033781248772471018690411171621243430991194090211049306415942318861581355239193157947638674519827710167160662049266442520968992959023744532419266771249081017134463716568598170031131414544004118244792653673020269842965359890447436331491043652614547165226765532409101969522989519873262420938984615677012435052580215812101687250120696227218605024064867220460789734929471154073836465806966280674383211323639459935087106026222069669780495087244287648895113478928669738384660797321911676604597552241111626585556985931366451928132009588720303268822075988072022460586070304401884762742149398117789170372895211212504262646639935060067120965858732544033599687502346715551257847877326090758526136263947543734328721415433766533882068089779430198817856716355576506549199445042301232174094824520337781028026606154049855017188772817311253045331436181522928527649919627258330946218882129654481942262357981138189998553107974807272381622662964521882965593714421440944073047553840684947415702556933590752739255904982720675775366882570016962837077576297980069528115267528837688370169336526825352411373670919676113462084836685593031872667252463159578211360723509169770168465981504556103689163975650429618816369888137039929593235264425701663594468270151034456762421390981041411601030622093823272110891467727099408533729123253310872557595399501260467290590857712660291997946668922308088864981182718283054621725880364394913773820610199937927570695906941305341570527289242329857202528552000395346037106572259467090970061211030063805517731267503362269718051197044199492111360414583499106831459090718578096481754077924818713931872388357456812065726001619555384023136696004531458947897360094480243186133270170556993077884941237029555783644959308253672896433301327939892058409956845448179610752509764856407653082266842084766070233027036774898675735591856088481751597489442795361836974494896881987770153147480632637881894215387477445332455279657042092955468127492569413408486915232420281801888817902481190309272283388701024441381474021429265090743942875013778830666193087989599565722648917145851820997581027820916532214995291572079134466581533364897713975768253079130818559061599089558678838641462160115800848862877000979089466940246268632634025057045707917787020311598174276565506815089477968944869254631919963521357738799227791418708257304775667379674709946012601072206502783136726296425197304662245800416220371540621066598009042259638068435302486464266604857648694225964251719787641491312463562851300674213095891137554134956309359357302475130641284096404563726094762510458863033032959110622653982136756543387075577320082583925176992744063984029448425010858843386347954373172835764827630644575685935442198400758262012116099836543515405334965013922625145577712808603900140999627123842817551207731593880454587801848861879465125655879495405454605394090596828693752840762213704791017014896836646341204813872682900079646750045350090473105101351867895880212070518990391426911314205558935020607708182153988686365542906992927212214473027405148507619072741041456841735190288027473240279478203239948523510175613555565763673059449547916378776416255249755006219034410268326358303170105040647745499430752836302790542056496829597812635402527030556583188277362452354281140767398871356785724197842955513726339180331293312575366036055259637843186724503431475009519011909627677306949289889054176998057510812670701484775817987887112637670819156338308687560327416927751239327461117564120793132879080340926971919483229346229578244273452856699894056562772822318247659300942957656238679459487077122913383444495821614458188121771032818547521513890308925339210456966082248891604698496238087462089391285328668406009321608085155233224049253183807377843895112284570860230929662464902633782976277889642206157010311457144895730822341870140230030208201351954699968647263970982404303021327741966438097476042361686081963838752044222053999948199930178842378124087972989169667493032342620935202366177759314224208084149627317376310551669009403228731852926699479055064711329398423926284840581642552651806111289063948189660631685174194799498782908248325633840418963240854153661362124672177120599433276177481326207815811506984627104237539454241186316935469426524000629431429878301572273143432837194191418734675240595452862411732652831246356796863890060911471186657705413550474182822944788155498883539677030502572243661557903569086208142694368728993823865653543483616857119274776141447301053632459917448692679139480508706758457358362396689911540466994468958985415197432047889824646317500639283827650496616304198008356952188069104232878710819970929854019776907544593705238760384881798881408303805671232535161727569427806292588923357296295203766036072930644729430986110391713078114403480397541504467785569343287305722917856812684453751893486743995370662575852053229175442811518430648029823551019699593554157711212211407755214888996479891456670572755075751242749508544830687299376896480211484864418720080029256823373252551381410271982285797506223520439741653192463697848885410997361193630258480503829725879760933215014979744327063323135367573606611661097737708383083565306152741114506132455233068992575516270517858658558686674916626279335877655895411597697150697530138973089471667030612362777746692963027269574606066676454193488233149437328203756503499032969405006598616350350603949361704145837028761148426668116017237918217631075279603488028715241271181768455518351397047579124252890236315073652944399937254702135871180480388200555726263088017615311968818024857542964826293119776103894576437836381313869267916717190978802802407049619678497969743389733278937349510632018557465304987223230118292808671612229853027304590806426522141973571466714546608446609015243821041002761396295354689054497203334532500629646726352648872044576486536115216899496730121531013190400501180539464223060202474681729401300484830949653949266458344716237501134322590970873051409268847821436104074583395591824955343016720091008930723370334044507350676057848223648793434117359548693762344808936116051602871470047521297496370753411704211773634765147248220809522678692598908006328803978945604381726416394348265900907142351032260314693347101034627380947087249407960229430979271470167273554177249010725043664706808785305985508604421248416651229938419304446906136337012167274823248062540104455821536570454704990626823133769032652077256117471086289986973542052326016443855317964888883753906801497445587220054653975256118362880897463510588945419392145898490775257201432583401853478972696932745035814262068287287053333817115191098812255866118952513140680352731762565362943009505641204872731636280234162486173245051674561622015434142168591110263709051315330263623394889237245542875103916260375350056551914814765137142599692980306027143932517195296979391570246480883711648762089776606450400501146114436724962705206032726525198839137165218759235001261686874196358713047257957392795452558241469904431758357042386064244522577244567700902276675982705139618174478961177280821900580451344196100246165220731346960625207440581114314022763392425628368636492213392394908178982697255790323145080546817840010195492718497735537950126061053943489206455506497331741911205439353593448037343212005228465301363375989730590627444260044421467958291864550558867603945576292641054960342612137904110946717665189354693855161644483095745873747198029632818345663870809514421175729764332247083541364989144954197359515640046161343694078753001048615566358256987490909312843622745152710486882958364473117925633625535918550339179843465803051255497974785757917495978639579114989667184157451406216873635790130952068064990308723257394328546827886664219987607948426715626653762673439829797137206730312475998270185975060617070125765107254666621327815212332276638485417250777115617230056831141458010228786701458481301395359264307439203577830736054839264273568592553388656312353763000313323476135436542819815517225136580211410929911335007725076518913580434500223586355890691829271209082277525580730334083169730918364834478775659091715318107699947963155581552787450080821747490203612164387474582540970229596330845019569617127380045731860107585053061457809853833708581737116150355729991121364545654033398455134819450321025843163642609488497381892350898599018005729043516960219280338290724895282348967921291160724607817456082805730232733017538199048534306062315327874499440251171309124298342305800568507083942708329394115061831183043185810423948304122413582102051874635735549398001740587824670820341203603304600018537674847740472741009072533941962111302842438933193311391375349835358422962667331589396337387734283006508091806701398688488313146021650389368264515741458346591020707174951999470022929791450462555550084807910816658882027749830472497012838017730500451068462084494388705620633633732043090069259083803459002230819482226204958482464869313848997883628245925382046590524017235310730275829380472003158371520947373984289504539720318240829849569831284943911507210059000478331762194421312054978865441408806821894737066234465062929485674029815966339528531083560654292568926917609213941377566287816060041566990017114095756893954679817072338428499317442406505802754677193888566106682955544113506954389222835801850892829337500689396529856366061420635992661603043693283965317569868050660382753917598969867465717419774336793576915490683749834213596828516377260949203824129586709770398484479854855187264661729930165021365243676327747498166737381191448792835522005673333681866403386971938994652611742416114245442056334012290536668383085441018040495881886432124274331976761425961818289548617224460724286156691855868158953086628098906364510182009150955605895243653684392079899436631322757445937000764868674053081161844424958777020043096257861706505083829194894269014347402036658618551812733138483542066989042416823321870007887795890182684994422591107117989765363308121357345265940836328701386240524405025987234797344739566484519294348767968549146109113884040496700021087617740238217168391695915102975480099724115336868766674907034260403816603011521097045798059907525323467959690036904577758226258107468960189001151725908039993132428847644033910900713464691562804455427355301633829950823849880967818376352798459653810265408422356005283398099709854423185339703476515287769757143056896378607155167215636652086135819280753852635757628914792204152253134522828593299283078342828725599828888153506649635171697535383601449893268014489564520841606568976272562913885770442321269068431487507170455886829324577416881336381226844048227075895582807268625269321285979648944834951693177639066026670253802707532905846472667459836135884264564922703718450999359654334883306179819891045309581702952454817561332582288978424621449245829913178531775123899712417799659698096390024043006321072030836200010497373083073722200696643705191018956134582448330140721935489473457570287334710999731818189531417360918144554418349707486025876980701992257668977832921166531747344747827949492790979367175751846615627961665358104239719321318927791270780337924796864077076921389615077156623906916901836625180042549168723790654735260022638947100484495468767221673357915894232986097637505847973530241599270080885129521498761083416147651310720482323288203376074525475678817602889044056560538530880454127140037949590169240878877065620251769959985221625787435742976799494306905050240861978656115161492900539365768615143480924744560221505565525965976401268135716294366729808328460509115449634944350538071447725714345188571875476332543717228895232428523636555964179167818713264257291396518925315696822354560960308329310595742489155439360749709508201045602277953949266669163175685147104560375429085258348172298082724842833540901760209844133776757718820974195358302830840611607063927218166362404834362131891706278097762490971286039253665353761386322920213058690035765562885117861556266718957724832280849811806838618607648200559740295768743734407098308072892547016302877164494968327528227500648720675419381796151227910199872300970060074322032481158410124412210924197139491415758155784520113520277298681283106676279819267652368496685810564816950685793115521335413077259080228848967486359393116856128487022837827005099912382461639152170796027756753527539878979985438415251672040522632032633663100873622633059378394324621447697322250003006161067414371968724805458353041659643784659404044671073517429395188828887108623169724991306252175061983200010818890726886264834164183800673506914898871528206810889353453046654329637710540613428076253370504929071473362102958335852812884439759791406429509832803942979571426103222228736409062452031628430708122822583072657939586457343859320751519225102216192400754036019124207447896526238398110432908051473098155328015821439069464693266653771942819172115638369609223042695032444137722393965419233186611959194941759928591224535030474750098265830235370238595265465350242917214754038997536963425167556491179706587590302022054588312281303250546445502794929270638862518366400895351391513842981536540377909156803201395831954824124042808156243827195248329902730333233460102996580815208770352474093647824289373989131572365259238139978392618818637698837272875454381909751214366420594763531917389784440575224996920943457021174645263208985361135833956753994435032641842852841262042840812928072565068000381246756818214743535797964983198217649602308194788074030499275699480147984009311256582402999225137010919722744654547018296387965090514132568361393604982867576409434657561826796657066918101681561216223250411593693243062003762514655031820401164136018291496944079161225315431918690310568013691126404274767541425380327651727628324188962467046157520314815716754677371965499514381455402987917900162453547317931562038989701213274054611151053892092189922315817563352360394133113497583709092797983301224551236506270108020788473635887231751885241751115165936241702185581188547506051637846431871857037974046490114400320260900059527766987553094710095433454735882631599121212074537388084613775536832183602833341665499896001757102122454582827777378023853552180312956330600784006499669924048467341672167266641588685841765666591627330916540329246379268728418751179883183934010745301831470789355863125650895236061851948628164557830298771471829655466192414037406022607729987302593345298762381750741530694534014847155939468925191076497307465180428146415509879396063623417952367658228055503402882946577646631780755426310786946484002936273393417614895250962556464652818824484214166366207115918541240120253099764337432864043422236787713371284526398500834433214741627039587904349162150919558623291395785919428352089094103991291293788614949597128216346934506826493473524667543672945276863973310117727079398799164260466498940808330289931051323915141085273946177707896273159096046626758034199214385471858680271110057634024973367764213712946605644155587962478273858942461233588906409333662868667113245563557914251677609844458352028418782125198080725700941952468448314886652040246821777082479363859209636838683393744766454413906786128616289287112835037936521590455326013179861929036547099498889854514111722070561956574069513210932530602645859404643277905201834320960909064316477860181652673904311063804668708688989146358170017422998889439430238398393048872510809656571744486838504440898447960601877464977533772130716122192284175780349950638741517470984504842061919172565083984190141321243646518409323798080014311765031911532888854218858235383933062493130735869395411942072776541992211422287001933965180872616148782188748688835100634926687861779272260602835395509802251420620348540571307314471056311710503655219870743976227305078043248997774305845978622062998872711950649100557075002251125234634595329615573922874584494915670544023762770936976823664276678566621786130283170729279050911370779509864652506389851460949933578485121104421441364930523094305848572784973207981518690587438402688369043343752632857019434537102770608925728837983116191360832190138232997310180207972754923286133404853192938096847731721358602444425811848711217624904134933344063613337936383639739091261438223560069923880424962791751849371778020132939747848943131312037622159700885442007026494330098764417796094448838798065564213346821279029129354568172727111886500655568072676187811627822360128807983906554436260615951686461521420811533629792467373852169113221814409497311823298604922411940859851836114280805729862565512556473463540779152732291947105823166522958750814919056949711306925790574165618677810481116453731639626974875571666792956094937688196521068426730134913772983675319187741978194685587878192834263409717407025959733026320497176841455934615504165224836740389814655239765801988200386914776508894781444330505927703948227086081957650031233864340276245014980856437949768393486123073104949201255276844106878211246773416579570281228195240527843059947950004609731165194676599732573025883429968837067065131431414387371786590610388786705285289739957584116175270661974150179914173893400207396545704013226037222410601534529047665944830831117918398762444802735261945153873654817012144822072523151022893823415819771374050000145193399954943102307943222340033122092513971591586300587727513722155192299735696356475449919921394295893580013743206077540039635555565488964270237356986598330424701552948271974773072487063920495016151558236133494637757838270794739471435563864431546250179322908206214260756273529214012406417372252745291796372444590333370613980059388380205649395267019322542086252190095448022452371219586401744793559580849244533952839211593292073686061316641679917926642077694891644436497995389536398223135402196071752998963434167175338165628423893191033683329254692639198629017545050483663636102634372618077852129492191144502287016063634552702751447882578329676430761867246091664081273069638735327538150309207301668173182941566746277573558532637736711295384537526541473669372216665141262664402014822743730160883912148560858958165710399120891919382980436702526749915440192765019925535425813623602210248369466456133940013780150001660471425948930284809876427981817397271086725871680323385380815022454777164240957311278680985285122483775119552103207143526713004708547769792045156470901680067836099316251206138829231795163398181680906702417394771615285590587679339534968985644848250202262117694150045999652429007023076879882405684082285364457067954305934574934365195765539711823773816206984094060926131865129705883063911754062883930128905358764024364418223122736054615938188336101196800749152939400045111725741059246446441460776427178312584276290077264890532006146294414788181585449070345363276555190584966528255154115203551067462839350103026996624497773150509053102802096592134300334651127516190762541392795209208302235640664794219263907460612737134558721901710694707085407811474869262813826284062688310660196409526226533369114630265422947164360241147040833785289868610286383420068229196207844696655096153512030125058100511109434714987923262623957492568131560666701802674315957746545892137630482700307863249452239675222443231932601981983273045923425656055389885212601431895191837053466032636702039889060100758809296962429566011172595878036143806994594513919800469712928017372032547040211091296949117929280764255709737123932547747528553634745344955626485597126989112333620159787680809230014943207062925346873150060759284376762671090728981222663039344727840984943992339288444845760427120090274231948072099491858279712323504376382503180519459573003466611739318782557264779148813736983160471924794008008807442513218250277245362253296131511695906257484749122034443182476238180923725147594642145641050183827558037272378858380121617049509567829639143976757308949010331082423368163013764544812629480604941639936986587909208695098568242549386576307993075768564874265510831399009765633034412684681653516152209175941567438882252084590899141548177307663639136618902043175496358569710786581492001858009835633930360849521697102672927616721335599289429106079149435220038619109427575213166247564149312312257692098441629629358422772007357522094807228751037326757493031805617565633476218959009427847737012409425765200769951519233222688721318509451163230300861840240312078202415998518715200919365476864868145598134142871677341006124833052631609181223803240111957462515566056007077126955953759698109059521855722367064015108285086243357491852011481000848618847940974023394787435880995700560841737362975151491028413061663154141385401475873140166179386928702857958586700889227974884945034821358199187202537204877261191211615513638096819969082940154827833262913317374397752426336855501802410596796818389418251430934353628028408201021747666423683878423004045804598417984009549754664326590159649209623927204428497284957717431241059250306815161492558474539789013156077241488739324051898766973488507745166082853673411297614582637820530057733876024678028177500181686512271116642729484362440067769198677401957263948318841425275832529014400670726512884046963132222421390651414997441521229460437566407431220678660119103089747047980885154717280776090514151597722850250319091841425619490979480529421762484159875605587140703737803641437550050468329204835201525540827347735941016971469038286209943825096636048158786993662258294389552014770308033767905410636269655032882000034865655523557021151073286316402698103191437920429368591513937948290927433474673210305495349762098597543877269143161332897812961704426313909967822722321793021480478931391202982555244936994058453287651880682131608996047163396274967330445937117074086893134296912522364290290556306773000662337455573320826760972342549402313423499690389297812252390957702254237882030253904109092036181462297662468576108146820388962811186273333133406328159786534314548715092776518292238031750261212680368231805594056270601618877367798145864779104721631111183059073755535934779910914448789615889876164425380533818816064298660177396340146777877308215490220169195728867141324844149648158440599434263699147607095665762156423770059024776019226810438959400356599701171258050470921221479005315481009623738180363245160359229056897095639077184166218721576677674164504479167984165603318697001051497107411755300378055808472606824385974416441839522384086064033539614259133594183542765895067145385191128070526760915060566440867125285442182006125628391330498436001481925167369162809003548947258095114582803373431476489728364752033442465318465866664545913813019144151472338563110616749295061327813229721173770320913837162915668182712070842767102375279409964226936465502795337320674747708902904505164525466361155352012846305922634374716397212020034321896500738711260187569920653442473742161020960130622908691017105780296285602393379583239621442599689833190880527936684241484625871168263841360732110510899176863868834563213768098525555078069403952551779324534530930744379845258805375312943157264668770542376739351585510767024063703681053031578261791513870980806201614591676479526222174290082929170632641974371246828138151597664996267163044568835395801696758826291963379731382749322380503801281134982987012869487944109768677024644435422717424907887808229974920973993070237376222358539842164084608320911004559409975383713112340328134916369181507874598172772689612261763167735238502215889418370224931333493880617757359309765548472839481386557364212425638478836770954711128935575887362636438741400251894441779136411889281805284794747103288893158697648803102717720090636313830516901892176085388624784677401342171324398541117440759157064860379717529715753035237692265603150314163639819815947151817523000126158606128338616497628638723661059028457029465673595555194226902730016015967297096747837589347398309883110173899998221103861138937010098070734981301121159297758665180485024377988521136775853131448244218171731057319409769276609544876659430925009046078061540132542348215059910657943397555328267635641098996522430994314628182697905434541544612438045670003042236775902341623956387114032657973350486515057404678544177983716755588865241461522387440527839026234222292719691449639570007742763047604388382340135430913471164612991998863693262660767079936425139293511895932137340328664216625787691847858300711099816800883359690294174116305802761234648378402512104488984820268613156250812665412653931320989689159895182292093468758834732411453670220887765900013744434928634855971615049009938272159163587749418664576134120840733053744512135723828167016840193662774516106092793983838100189567104351649714307938850328085714248888834838895375719646466801585005911117061730444662978982787276763498708208921995327640013217092232790411146347644364029366059868715175185184161223707790046443554387515712291352823567719432206419264469900988772453448233949418204300601421540421820489421987685022873588307672725278184384483178733038214012155235819962643871099058697403701121989189669085695268406085573663266057949041679069371765767141351745392366889652853182834293390912124181987159579887404877298087129459019152180685757181395078387155712861726996730455459209292122248725234322183606760195576407800802606024507828645903746987114931132605495844595976963556484345252539354923001560251412335585086019537936266113871679993171462722196973128954263802668401052690452533244812455509613887002382253831739213689701663327258420658048512774827087995122020145509239978054627290653016756651602535236792329676932187088426865879937275577520722290240001460654742955285364244992272112079043388002109367088887402030438445090362828012161743658259566319771720461051234367791714977629749803961214919105546650978669541036782376011471922526341524401372657239543054092958650008014729452557593747470341371101064024454102100993376180262272602139054973398644811106624148411655036866042527908949783822619173477564434445345720298709891610568722844546939358147648917603236287989318575578003077238984233247442768175506198026708756034495065010215061020208070826995278831268781964011528083465920855010392104302162397445464722371740163333814528491636409283465044868271159912083133492346064711764452074287191442408537834189726253053748986301305309139899797609405580665793920585152351539941998069549014844127854346755809985374184930697778965219042904119252456789057064539029700986367502903716052767172024032873605789709774062228940125760229869996937140686460407341743417778912100422702564728724591151691040004759044785710747937370788541316263329419685607495003661793979624802327393027043290491511058856195281083753495597191357139898445679692148561929371825761881316184297542688475970366694243585321137679216435728522906618293877213736570250108857281709955102181583824488082248635493680078418201526201182898784940263466992208525598243057349674080394467956033587908605940436338277462292124031222267911474682272008120636826930027660610583154061371117650620465497487813820404618349978357535088285580585104310579491900877150291011726022666638932072880140097526999358355342874937142257895059267485498121430300987348773821186862488542903415774671921700924022534981940361515662708604890173731732835190910050700430391922428213192911690666379044609097149050144807665217611584283342174975037333886938588482380360658216271561699959998240559032682392508780062744410133352139382458711764645717599678723121189035215811440372798467395261906347860527755609672436330351051830701168455735645612370547046285197505434351297997437795046333168055436135898504466818035620603256343742874307841603387773035212395097016456376944516516565034006394535676440646794451349705829320477736747557492273913954829443746541814223638222146590882063345881082136923820125012832270385678160951844636246179880354445198780807758551725117874177670089414089142314984593854150396092264871115248539604407273443430048514437792676326168527643043403656167625786228628613843811918543410406352444080612237015183224314045010466827327296531781379214631853790623530702837112644732221885963410034724250492252798469217784968453069574464573678196929279485717054141313700268532856580302127914607868964597248649743399995740203429339946537408527141019262357023429857655851233441083052608154209290369497855511968497614128756603846746288168913872991672762600715267284566139559569228153396995787986054385962808645688167116583771654205839385083884216724257398796297755263336670837136257298954427593610956067684439404908415711782244789840644547137459065605980070392338623943843602421363011901531800445714639651715785993809272107244570741700150992172220636412365403604431984924758941772302207034339028218377403490525151034495881870713393537626602320283308431343835108838252052527898253507807721512881214316113483535086691569883684837990695962901068852931792128882751321159240929240089126279503896322852814725399336790787392108812965770872739250637313772862655713844512030835324608697578827853270855145936235171859376146478925659101734559083952221370649224064054490338681822277873932223591318069623087141732030554420266852982735417086789564680928523229987914030912071816037485156727774144252111106917504334213632506129323338525026635734695003167129709574721883555627292872325024359153816340043642608367180737051295768362569188266559764063448770666449543423779412595048045619695611694696599051355193743390718708039032578033454798923939737006799869819472275663310531424302559972464496187811403576894745553907173704080318070517220643631713052507051934021236780424431802595885901942918674123810850553963007490662037292088253823568999498111150669655884593847384266437334038511129337933766420152957878590016766899119875887919396631833358157428367920544884081339304787329876505404931737118573150596239705572723073628578016329126155050048473986138089436727792095470045794762113138212079382670529776786675091314562890269087189169446115480966922215827634882849595868008193875045041555757141070316048417291277431217954669573557990279977616825556931675913402529239004313291139956658668538767389311703221123587051111529730759584816518101784594802414688215979932627779743848910227678491932783872475159307552474753417406348123247312869440555861544316203144185165020945878259666418019149302817552595740936807113000283630730626149722695437001633332618545808601935101487761942543852236542094574622416024125928941522987431201383755003903883217546807273153212169834775802001551001801299972792747705425369322613463120327922830039131341609352700534065766782587329644805556381635391115281056934366876393295045713888975486377092783763645366436564748294977302772329486217784108578764983624917692625912602053683809855508865034720981847035810606782897965783794521734490033074670169914656697647362107438290462685633331059462000090598396048567072732370243674483804893206296316903960070240385761268067036543896803082498245961752923842751953811124311959831505133777455407990108894387060135022391855633334136825195772769271548978981563429226540706072463460703479650633824905609718122605875735321345041138084124310422404712600566395087216094143970634813880281689759587818206274082613151415273412256240530678635840807633822635792134003240778110446029840810568563112328718888337711299219806116447399763877999191013489739888747193448757601361274277537964310400494764342895496637055286579104030801352131686767003625088780535041746341006178205441680665773646829428117092213713669237688697759317814749944039428551277045858112749741236774297286371723199090636793773494032196542822354333372020014357615315387665195981416991692018786314397834126042482462577934856019478738418088547638104811445898884870344134419095607611734759565777123809564379032783252401901973185465740384246713351482273649506468218038107959944201828830898163935887833085533684303128605540474579257401480297609435650255633485950643789597468720615448380265346730918710940283060502247986610087327960458714526329822129419508642471395419511729333875085917628049984038848316202975828444228595658703919613106947417709677285260242165072498721514507119509721607049373635915518077094298558236084448987201597155097839511475268378419170462257983223405644979640741250905980504347779638140612866016631413333504427733262460990651096728855552828620936577124039162109500299134423728954914392910831550156133301276185974915774506434893575455651324676691945559658972755092928337410403938996108912936945729474997122777842335749931812119371902203973518972759774164228890548824150731373390816483057061067518126729558742603137939235849556519683368848377460059642127401738191290662836402200488505763063331351475957626148763439657948030616037130404698614259447621247708500147788773713488861594366416967601612981442876762554919055637820165307068281630965205964141194852971477697083917127963681416949690012731173998978591146355782196071819162560732004479184249514511946527093177264718787876924066152553040234443467992193840551215404443423964416842553635663504543041445740581483273874587738949739456004320996204316727085677891630488674931716908252388000938859055285372797229868887216385160185784455379279610968414228945405821777099660075159908594958639354304585491513192047368367069639493491666326250084048568147793984520055772070087994000816335438987392965188837280366097281545357247578221369023228562030771146279619411016288943397134476361304401938729129104334778034557454004431129217679880298115921177899532800378845341830332864590879689709697230875598729197927307193993583112490842729494526727855414031575598723812999402247863541252178258726740389282111832147250660692879069637122680265562032995336943505751877747711180747839124332079496194924322260987992141974697019657061019404470498677693805132960706390835777059732815780363950034233681350763519851637989548462662737265050004728183992558350599485358892007268271450172610682118868540187207959802437986387785045893567671940676691718676097933427308814270323315031161814707744477941756947565694323493436685982374275093553940236811644086893838442372708803394153738442439422294052099978947799145634235792714727772171865969727761274776980511318670797123474255627962367650001360133210238599392326568469420633981288170035521318430869399120783415677774975018920074584096011370426155787186772490352037331535102916334606311990361528523226496895190338847188483844086018775594888592626828818045216464590787778512805621390917983053059963904526224326805413345846541836846902542029822849361445093220601299215481257199793602363387078613566337882602976077210054665704432379950298079836705543984073828358044719974663949092689588281238280963117861037425303878291541373393371282855355348512994695101002176889649260436503064811024177784629058176189297932837230578969317392810996960651810676731071660332827654993656046302145790036804967689092523088698818733852697654082150964318836070975613417974609329450038970040997182202720382633586633261815363211347326761250194140489257788812079785477827717706822185030792708613666365329389970443215869882627254067832516613729340640327967619007671475648518824589586811266415645225663063167149385834233502095162462401062687266200701647835734197470135388410719638167551375097711973551710286658726035526857701833643087199604735502798611090959163074014609544365753886564368071079096535752857854028401446744183835828306861141159108941999712561079402205372672613771969298661411014472163988429964658677572301102658416369371474124181482065422511258388792549155417223826048910936427287322479736378371771170839623258268108195420429859829143715619224351397003467483338506560534828283281280589227702989755482338285549165174353891891272437171020530441199722967683586666812118775418935650879358845926470740413061228023491562052450265319701438375332776301228688470991690942205112695948598709279369709958869709576657281348471074771544671330728987223520932642042956895405232263451420980746425724048448828902482295446549091653601709486493201049492079392017325202484638567849687111537277776159968165958610295939276335875613440016303361405682393945428144426461530813646506997637032688192610711809558499392091039148117153835155392025596518414963916754184739379396130081738965514840166813602798023673518829287035007098886564236842740629994331811690652539738585617229121079547765202946551469878118781306289866522104040082494153519698859531464602449130298619677019874154427032828639308387406232686276608372753732418152913894656084824130439875763786793191177116274161934673526160516897590905729520619910991737759320806049708686333497279978123042114776287449617436999758215977503642792468451285284955565803657941954195522107752937086556021172443691923125189536638518775702079247909765597495031338732998973905195917608042311447363139289183369036965076463863947893417867161237693545054237405921399604219444518989023217978712812458727759602132628830109334556977080562489969935682958479715924312128566092571196974384401601473183433184691091442683873681738041976100057184375046551742245265063194314583452065909356112549651461241441301433874779348603445249197767583896727119307893577814497605047620708962418255652224977684598751284292927463920810529317001259010426007463206220177516183773347073422219528929586646967379004875755296490392914329540265119658899672112707772874151386264534838527235422050796463146490604389146314242832764021780827964250041138378283911755773014440300559487375740960270385676021045413960700791644876255557123914098738951520209937514706561727282730513577133757896079565375355884109922625467083134763902980921152520142389662595054529791058493545317590236785765135719575023449667875256675966105729623343585412457567062508395385653858242292224552901732453791366817879800473680230632820931347264732590388636403787938590417203610314131827972851181944963294304624841834554592561734910009886151029697740284140081449841192579964845014337418881143475709223627094040693792928038620796968670751892085515143470499370907975744361117481985559892246758089777470360620858795154325351047008347095542494475057079607085352249199864372465633961156030428740316105723024174926195237768063633840586024596341967452275912950103542277562413043899029130661839971909000735586726397824189909386230638891681019831101172584950821904497638398499864109479884489087911394904285246142568598180774943746130190820449480382350199467486575770900499731458449735610486448020402549331713390672626698110467899502672614844520114356035505418949163452817883710716117592455917291591082756398712474123522477521271270322061683245180376959851066920342898165407876218399231388785646401996300835128935759851797953466177886951098823994214668331919659887156603194848347099468223864412459098291267757012694212362669372546958732471762697206756487876828652187324749235781612782316977440147682361637531499840241099877636273271070002794445026446376497119688249972231355724113141224676907548975896138433340846830267168965805078802466947975228778744654387676631192420290239721326650018793011411337994188689634064837211531050993535898872506395475381317124922594843678720998100453742032316849368502099030379795405440183594685529895633910516651259101254463254261290124062198063996441210125071224867720682256527571561764175106035031502553578733773092815917580287924958599614588475998735433275973170554429907965596572675639047708141312553615003675696838132697221954439561936336171584289021115624476770089286640211682358253030872874850033538959982749216386713561209359872404590444362987375681208011299649241424648651201564934178214584906333684279609222030596990539690281868885971022928130067644684683127908773451255099854475107729177022409917382287523261079814616862387950920947797626020766259182405457423324482655890509641274503366226981436590795775243680336166538248298174437050019311643306797673490524210813048936021715351736517204111461171193729697045344943262186707733418292313737307383320982456272610501920746584398974872335585891032834592627019939989206921519006048837654971216992785466114080622578574650673193685604828043159596227827572780474967682024555333725798711390521152644068615023029016096181966331548376111819860945198523390748718470400333073746221056836918620582786002430510341322169969455081932855022262521453409094856681597580262419972769934229904919735893801288756528535377390943363376246991828668409889980148438148484284376517716947318429888335962259675562609574075607232660493629999494607865734995077431227684255118304474702327997497587252936356545112470517638099505084791332979177919796718816964725690215807957297289903351562238621101632240016737864163444653768295505608626212297274118618742652159160509762049947096667231095225541491912473331012885064552185510302475071786397456197876522471985773663049706883370364534435491758382879088039895052246150332901492962823156719344271430021258003292956120683615892726622129269524031906764033591888821818277406108399702075562620039558490893866206245985962336039741269899768878269967896279315624851763523548511751323413632423157596107989479736273847611115838920909414984902459200841012586010604960509086016771108571173206881892243619645481524051036221884430399676614667707227244406234655213127319331048702095704452200931246441364998180076450321537396022078650544347373357845916999925491132769168474587908762943403170998349025469499908629068497529115556963613677054102093486007625313060912348583426808428104182994567693560333774472526944155868169283319586020650194719812166488068784018170909999932887106662252469660918467280770956153373470187329920806852895004617409609790223869997210072825225503775982463962855700140620751413022607675193801077099488577659317504898221942377671142035162185893270963101129393034550479751874071043608034873560782111496134257959434838608827254735982132292586058351043808637269284939072336378681216638403376171771875032166335005761731010763916140480990963223467875932859400181153770750958019054547381853828026891555554548758748994036809569732504857846731141929586094027161166427561445025338278023381677401470883267649545476627123190724601398330874010773187668339712778682502880733597646444903256687817971520090220843920150467303060015926738362522628270185597669983898163205702277166524313888850432386559858835398437501178855513346401794826252901477537376675458738311550472095501394652570591309842584742572503075976067742821553910319409115485041932191539525320023921731705634571034083552249492782948027856956303811925845510341710161479834127302133899997834364968816633499688042744511105190409732192081391643385211266688691335638370321546714863456270889482768534359781347097654468205567311863983730589535815456245830909522581363446724616936688270985986545855250077630975903230925280318818867483114847202165680983145071748195136552306130445880306517304170225596096865464856380826092966765486299022712949861485280489801127100897825460797703651323939940290502830034052610818031599110464926787376118998667007325307990404249248642160237502621504097671465644117341469957035737746391864094700036811081782259426429713794372579027811732045515707456611917241360664376922283600384470451803451072284982439583606826133840944425932002379675598561415075612174454144525176538534129484814892356561957297033435941301470874997678163395133103885016028811954165422451831972429915706056066759365027398230925784349795279490283614427299982074569190767699283661876140457630779218573594734205896360356911662374415767968101422484474610697728020278589583811868823185045403909870892253196299621301542961823017814841607217240472851539414999979091116387508794011270977424916652460040777925106018897910154516296173223058957403121839876112476336443525159593399871107550128299864553280987037188184917600004060428152367168861549747485848170214976657237197642062371544580677966064706958066140034022286830964472231412539858599328857211274369032649300214190913589877020618613819393209728471154887736275219727912428432560601547838075973984238104785713718037461884650547345980357398871150737778774084376532793047118237516348977367305258636640026595611152272533791102317061151635282897642859707302876436642650475358707201276136144814929727842311447232101323852230346933901996480621673334848933247436831389602467904212867022382004655269315611552081856905710865823008000310492548753367445300485511684335663675689697390112306215027225676255751338466276089444571109520911042047324625361582317547330925823232874397279778388949505461591749413780518840434389227729962201533049665048937706267296382415727922975588993249013911480292119639147335497158275850074851167837399156428500532724094671976287272073998621394161208690275872785298744868548898859521995906423885511268543724317421287912433468214961826789330397165224631661619624349410299694883775754107476101632140734140831118600583599680838894493758613157012780242988914818222786882432454057886094034410453547820434125289930839813037990155587882170834104740292423971793933717358713628116017278682166827912248761690284366349642413336609597577084270046109845376526505219489774704580996889128247670413200174836862608617390364377468956496267716669752889176098930994832735053749597778793439507099403735912823547536951061998222629301776127394421609898404548595109020028313677371714690233180493507669383303153683558258970181711457489328070855041825840173912576669003256381405176760222395487525498868822407751820627451551267457259979581598795952178921668951280029672419874828901890604425534742872160351686489332939660147101239505466936332063960445859872950602045309513770611408325772984967692661793539255684359192245842320620814397424094071457811355047704828632346670461227931667101743480656058937709868500498104560609068292758951592828112114444308519171841825396651893786532416200795590186590381047342027033273551807931396953263938288986682119478310582232428048423257277437894079538949924756945049924791510971647375608562310665178868175420869836622447217169178273290777113735828005571718187732417176463760424811754416930691390443760137729424142220057894944098376563770771254377461339593991219774538415207614693558022669943474996873419886147097546110814770819255417992636383573873076467003469972714301050974332132706700431939710195963344885850095284717287996135577082414796833475362749557435593457943549404602601878318692984741286478770269122055244185557682703443774995707287640871502600968639137711752375470951911711617157487224580871110631296470795550190490776237293129838353589821201680782540783649615578009269316689381248789337085901369072587673881691723579531924416228418312547037505409979903617979011215071748499613858308771035546582963407646829215632117894465454455737243211292210578914747467864089571213444244460112214134371220704574883596638738044158455605972256913517266967729863947731160225410748404218909643039754893212357660455858537114495181065182743921973273180024796484176740631350657155849092084988733706733671515720308693024862957335394676078671718373247623437543754743323697231712966813625097587613498652870401325239776081298870705105211554810023913594573297453614474536889008439286465702506605386613621999877978387170161494692256922189517897430827924176982860700444726143666622680821569330982606788359234692580561753916096921765431279954096671600802267537756957547180809068048849451586703003840409745131364803198295808100917281959951554924803411257379700251705988952797726915050899343367198316981878022925109162299574610631482773662955521742124723615900408596272979076807142510682947844438595778307048101424105970174574632874622359956926080239499855906742292431330388023387213001660659102837915084361515492418254552768005499775271735410782650406368226161201960853632069410362632245800543518393088108659037023709595999454991824709806414320546993338577478744025696040516287576156572530972286049485003840352349389540013476649268546029209906388360682224811275016687847589586366272741059414114783497728539622411937015563059194897747555690502577140930728053886155076073166222514583005586050031735354160635766449063466505138311103107312378670432183249627729414412542489978344821864783123901823113214678835672236756446689941391205111608914241010603483662580863016038743137310957647678933627474989297666783925002320330283896823658496371882914298331668412677533090016033604898026525636902625209959268873382157711321328447935262467704135383654106074445304979832726662728611457526808959037379962480316666230873152159459889501005041945486165480694095095798530955417986085015473148122020075557491345992040875484940853479633733402921497827600393249610215161901651158558170335630281162700871357042353220459400761732980713778550692317658095140204643033587395482672598009316399604472626838690611311300767609265798345947101949586328795229071059509405138215315468478854038175859830303451234070244697139322407960386963854573323160700684638276355646890659178761572631093669127680494230973956922646938838433638851248836730641606839305346236829749837188439728498479177771105933700517366568789061132484341721849840495585927470071078105065961283633075485939164075252716390519739783881308125262474473509086241872679978816867143576684928898913026044813086302162702004954186368590740036153650801522639634783180347020859052825576848909508725183359874205111964000970524267563125358279533519588025573036110374875253320750410746471316962544940847932184347397991896335423508252180567156335039895142100223185102196896335359770109617256914242436624344958931086525737991775009535131583214097641761948302362907942672897420098152169008614447080084561243035853875940996565338389023602271588720490364779269349749861730248412658518950206836128555522356118412341551713468471911921016026839896439904582179897093499526158173089107586112704171614343381571755703134475492932938214969062019841343471000003279914018159442406969559812989974105900793677709786941856815553433943830081764563103205696480423761001067420043247051915084678951108639678986341214513277772391109275789504198463840785599793224298862898035536522788589041062521065554055929421897943421239833514240829761206273132560813143189380925249399501298979243875398110514846805580378153677852332322980830166299329404501602676774433970371532966388431991259710680832247750127573630791918159633855551217677200855828234513400696974743652076993186316540170831334349502694715552966044581005389957307334929944537358182317872722977395484462662176938100193040840441179694359295014717231930194124763298196937488588296962935933085284194109580497509262118703111854874443564540912595138646003576153205727432661332362294813075688947709969499958856059504537985604735645069255937359452519939309227021708718091955280673547824881881676280636914413319972372334699728504934314904301977064364471990836259866548429956151574331032335009995074014257239114951248065984079759998914288372044844705747584494562571024406574643342850895085797394108818627721907311690013853213565440712015268803577936116999640089778091884087892838547878002056117619447367101918424435951143248880197823111465517820486698561506025750615135070246262858582753417279349898559673321552591291003041257237294290396251814460505174133578583871759998939478366685252845734770395111520808555764931935873473890579944335345422153343060669936277274149825903711757334018664783940795139437206323064709662360416976394594743335479383491051521812031149216280732834364454905798710823647388937182351395563054253885639171070416695914671784337401094554948444200124734157358233278143975779912343515833474740511036984674216122284457458350045975016393436774534612095503256200447468479110817330199892997177096166276941586325341210356324958674774289582700776215605793590698685826070607138913628518447394206318649731881421909111610839841356360432828357149709718206822899018553029363470031372970388475583321767944442386097003244579828114159905640475510866204363790530634914586010567950687722412337808398095591608183298328293941058726797162481357721313652828779872531255683169797181277375852429534409357585315430269744927819951521086798291736770062695900578059522796407177961078618395785787146349704757598086632579412585097044384570516545044258479491574123091705665161812219556443948121324121826841665282314409068607718322418327252081244576778573348830660898784561722782064326251479110898028530043187693595604081939837640687978022567321258652165969396266704972811359209710359387456984735705463799644159106720528488791778765832245671174127228141838057147922697787483201778560914464323458424446381373208047305543352614411849361250615763337803831485806245931741381627356644298068360835081228099877286015283004709405208284952064412835826917084742255837363658430508123875261528889394820784835780903379699521783684870901862008828272922564073228432445518882007626772496505703561890804049390846008538323675928246578259610922122100109883140374976009188111770345277232274558748069387213663087658269301045237511328638773730580641995071314061099309256609558017222040818715769142347679742317103141474237861945128034954059495406527573654726702326446843991569489743157053212585237271613427762891790728509401627842430258512394907653492587651775020587338240101719666056329466955238218292676190683539543788116330983270538553133399683664014033994849983024863506411514286787516597096502569050425572050644872872379140390411702504521453964187330533458794728074750031610576699507016999862063304989117924313671413716936270287094420613667180707267594395256134304106034428535261233484859901855370237586042557921123316023153966247951626121963068232041838645594898160523880678227945641940345641324488816856424607348159213886009614107639074238763816239809759445797830626610762732328794198250292247166912058403080352231276705751713208567426842684723180555553397279054898793783396391292685717298532636870088449679811704505429673898376842357850642403472460512561404205579193639861299070638171015836859361160484335279773956577732831572774727878277157287960990772152428297410240040651578259113276886140184214082171707354410014966282999614937224477742439025796505699380920904010291461893954051685283468641541309363942384874947467510151215341870204084567891380153946173311677234077948033065190127704556304998933769888635010450104007235670984098753524556992669148949372725595813461617256943498717261768289617895888424930379730654074946119672190657365310614864286602225112634681550215514210246556485267534031199352108404482365630402440282697244798247437295967988028887311802463222957179037370419833868351912258340971875770574493403492705574065961971729446051823280558604636663590424561150228839453280244865310239223141536296324573919931749286127088528552694752949357414059466115822074690581210850973647883272636375439923689871132208656478048137467166369115637650170329951274279781973785034426019911532895962313831907569688356762954110411898610257622217006182082135990712416001825799435070393786337370407420334403201744234566571690098856245784088021751629366785289374303301855196948160960631628492443419579956093978948989414464849925950386544757423009974838426921704568807806566260531985318595245114563864684601671958603444873675945602456795053024544937972284230983123308489013267776983686927765176518471877272155781500416501977112179041433220071377289507703021850306629662173235417675288998592771978691470425952712822014919003536233568614298221958703623373275347614667656835903790316989226990764250875874154744803562101125057264589520955514167774279008939396112170157743120869543488719464008464394607164547532097577082871236976914388114359079714085438823811870017859735647680492878749939923724643965092018794759069937082898186270305500614212152769714250136382674212323037229858786760229531648234361950745847280983387032299454056416099925584602434496270547543029417974412000807409286720150302787213806616206670124587913888658467298167579854568232008308462687879208880847428868902558547145380505985846166655306704592053774669170561099511537376977447507113240760338895326591271820319820976438654364854006535303130246667948660195583949033494507370121524464024143054860126465905342877743556244623010163091163051916971704613131958488668195699533409485172399224539346528026297782128722348149155181248999016941429859918237820941798113087734703287782584420742106373291704857140854563264662404729541107999639187371872752578123231048877518706577471526572671186931739510402455488716971620660026898183101075719307060232666861445316213410238942212998969419676328450604980590679317737675829674953037260108751431755044551332023051854149926077945831932076911316826216644484001665829813058161206875839506128411568025066870693483871420878404684505579393582311299381980611212469047921925522556022555341177951491755498821356098605817368923634414148139576308056696241612899272370667377341534543166588088365648514953334506594721852829668336698067561158472150915106920949120005007504323923324314160460022229985523535652836089199855535138977074484180814366233223216264335074573426466161606089465507258050848641556345664104773719611902516627823835351982595003101689871869012816163618443583962004230531631557618031427377790717264775083468067059647756577085235001626155683034325364015428014959391564302494969291612647835569815144748655291411064707911029541783227360637430097644045875824110503893090939663012203793174197489039761477166515925835626885110228587848952467028263846439967765509256924492970412102166950829132993377203341446749225474342692091965985350681641718402378958572012816779401541477449368615169967397229985071767321919579310570739548544963233929159909355388163982134996043519242153300175040434808419532644634059576686797093348960846358162263881162186321582814873978640327291330693910160849426857810343787641254887583920203296279861362881064027272380673110204546359212570911379050247125057792374233091859302886186041219156939993842265790825953662912868920002743373474422574727217745826913768990733586708688596696516226260170403288189245882300834375572588109394760289692031249415249100675219313840442210122330422503079335207743583564238719481428642405663075109203841878894147504499594654886300464334616061002051957634138882944253388134601396982075236854626619409826087220271774285621494736038797630821525869626970696999505846919789228386381310530027807173245706017975206099817612586234969441671386358215758884178491536924210798103810341196653872069654326392001567390872873700373550773023593354759748984388713008911596418425357239106647382181492918310418654308735504542028932331112109916573518548996039951761182795846001043005389394291269297140620324238872220633371066502668329884653995311255953056525852175623628236897400916147678611875235787012430245009265142163958281795555810839026492339846183485402991560431282714921967817749940863610683161511303864820857534666725395859534560804214270607272580068683297102223798179487054989596795508160572475254401134108429515132801809885526978371934002917074374079312227926157595912927338452620958074586736237544013100952603596224001363773485925013201540075556662574253004623355499231233420294671141791303292023038686018188079517573448062862856268461068808432780418286922166400756333283919078846615510665680057258567985215766162875637109199612954225294000175522551959737256150847897531034100494227557979883796339127393221800255291337239060793886235083271133708628739311151445730801262939951002222110031571224579656476418482108977315439967639801180637782662714068576473039557349592792065200839344038785198313488954920003298042713303535904238305068608434142382776603364370061046167797639769036370223010460028465693903047558446170816870400836811414428196355801791348053203161683687186607052625929419490659645745438057792642160713711726423706689831962236784323220731372722735275032074603150239289000972224508430055167594564188598921952208197874525811295039727486826968137042617151139096231938761896686592703380021248212006632052192241536687709715419276038358981194043849049681071818961595015014727131639383783680429292638869894870064743215218720863416639933119273648746714890383681469611638797603371741233698541420356019849464285966273326002906216892075903413757389065541302143847484541571159320235693251579425210143170007803511984378935111970537966305158747423248785803877100671546086975805548227085567141204343859096681671849918349832394762398155720682591629756511443955369175523210178217665780725942638812161953748726299299938135765019677015950323036079417067107840981903968470094062533519675627915388957157052446472819789506728448802940672783935420599029249818302363415165371424342343478243072763851240243987938255133386423855826943553084621810657898939520743762582449301309106838570454106923618064001110370827261600474800933257727873111852959167550372943802910762416210364194103463669116822459060768679772734457799165060145187155631974958851177916275436402526056919431529566529081277954785011435265448438665619846282866257094452237106913645750121046995043213672495439227008841598906303358188039774217320358885572213185056214459933890236570012457288992965689652693314013122619961180653020758489788839817227202320684432789517480170629999597093013923126550627871728976299271368786724257480810747293615791804537953311555050392745210140335864758579091302668709903995718079535898793530413383259535309879721876468968396859934063545607021925370380205172331900953943936813576535830980245394014915985827450211257617683286582962102151642801440730094914179624407323165405535109888684288056478481673564154035252415692213302927423044336180934431569664530949262764166326015984192759397683914633815269908891044381006352354590135960447014758028308196880943774685701179583053232201952030537117753926003902783457960052671353520806547389513747515180983251252646988876654188477748532503885336155474310493564756752240001752396146769510077032311839825933105130562411756666123453925776789956931278518477012311114846252555374835757226819504305344330056523630621921010315670734106172856391010957872237489471635183012608587698522608141508491521522814649051157196550810312634873830630760584063236160011546278467616011409673511262469212612450921898745438295729542033770673598547789851581947794193523393629965563530958313900918008169526126861600640052455352463369677541377319317184421324171529988562389073468804572237290872914396113009047741254749579634956633671288096131016487045104632568171562188704583019575665702030031361055059763716183832150814138944125390180972817261874593303607747554896180958086803823952462043498215218870561024044223009319928490187720735838045162947637873182043783899272642577572550708418981967681988791107715118971961958273826326761033891511190630157259494878590355223470138773725151788528291270793507132609383525609450514092555765477061312405042756296673638763188924525902285753159595337409163295309186168721692960420118409580280735180893825482287901985882973543543503954429288906623183023369760133460965279409271598198829050016235531401586872594828507129792328916884743558446635646248927146840638912538095464793184389675204024660971719137971890936163747306704811233552709962933623589659127854095027481589814290350343546691779108649780667085823250595749118997626843890671288478789443944009370001999341933806649835589133853434994526791935523000297990692933589058826285029773597722052829615204989367865532032648788053621858875741907524560652621493159986012639949484212134812470294659127158008661491339181686320340907133777448725223568535042515384326278359752778573048254403728131284901012198007176883165508165040900484776564656961015891021117641285259330334930070849772068625992947606873563381650899842069449897671400760924084817514803104144574537063735982405777488357870183686517508809727055250767834982548384468017413763635631312978366322038179292877634770116062455517960362194392052186163652744357296850334729075635111391804411467157748438138486915113871944412370221221534618978752731948100749320359747441637161834606907421821937697812394052929518631432601950736739337029855483947084995582192720119791806678980123809186786869398652743876543228740766717528902224971362830285301477245106555997592193534255832870437578376489385728785741685731533237739816842623876804384042990336110775941801248735674679920235498915209164974191308731815776591890518178542444599903314566443194509233748847612256536079722623998326864559383922754649079056908134787227159879170008807500507946099906588566156154097512756328591031180066308664489879557237277905485544432259043125340337116082164591822046422539260434446547267437167891819776686252015031841728978730223498556162590576957820785760709734813542266640923901400109010198604087825470382974689850375738054326925739193085754400208424028458420466448119101738029498589844067813188088410685556709481080328205127658924427261434547694253718931092239572284777743946059500456167811531570975719034190606455362274967205279798454533135101680316548978952877608129536458899012327135510872828463362103117668491763759449454471504559221745159832410132222427008390242560192068680501765997518871989725923728356517116755115402683117935606842605952014358764251187487970608891427742198583908883230020696779469694355802178527496621464790140718004387828251833523507656449165396788818653075724091320771543637756206504315620903186905677188998817909022743874381101783345146554210978517991338666470092167054685755639175115408826439218902210493817913945235324720486899195334041559551886422469758300142853286263198600324697180630809683362811624049474253421581644421511233819624424956898183866974637185942593434725411565399908149105554072583517269685616473754145484782670775621050462565669299315474441001711059246093296854033514175383290376953869505180190810732242680512680292698537726993914060209560088983791410491438170497615668116601578216850134712494497497389168810324977430500515257640894776061254659373247624078925511689895740021345099535184591463517735880907206018773063990145023947664758646798647902215385371663665720357163132462496521665569150792118528064435750549173859250928943881372836081420929569725678489600679941595988077859907743013655148060991063713802657897288774732012610795155451111247413865741403595301438413816885976362487940757950169814102069128579498413333713506336795255401967323031361528488432943674647820563798835137922155706980231636438149369711033642604845707767916463621905456086036972731722964515517228292781982412082652819683884597182428984881852867962570307799581623072361804040431551873938635195996776248410949726057667584893354492989345456174311551098666575210881528527352670962534741749406793058340095505212788153119087463461545731348980691209174791143625385376012816091805488055742317681340492275752621262318415654783112640193353648953850082961563562940641218695670986320600892916027978859059857034824664881104583152721665149194330521400363302998025981490209529689957973139665341230979138459367238859378301117155483234137623504122983830611419426201483922145113377218027834965421310800826149803880897696196944371905416084702800911552205486653812878198454395631048135294247226860182000910350273940799318465864914137089661062659406916211832134606481551422401565578317147636728211207980375493929126960798345604152259720840803681236618123604229874397208911660222401060987660022117246987608364534979765289684520519172463569061249960380278878448812544641447642524111254793864012391078202831325239481504546650074369258323903322953621563983869477008643487164061501514692891058999996011667689338251097925852351916924200584913236383023247545247832115517006948776031337045068041470396641041504933669436914974001055673356774963450846573219842859478029992015475683826150421646054494817749915546297145514285510265561694990274687666498765527767575321227275214814803329438465906223889746915033493972291711505388526228388134293918401960047765697402989531649200314744830410936648526925160026251043979488258426700848970354403860498099806598853554415047843734703917160267233511234734427085345664868946548540741453820339112849139251053454358394788678715816437121585659480204459098668026753060600254384881694261796078286661825412414610804602710897175021382116002097848137605990330319709029100513627913473246610040673329908045427469046793248257409247647835200441862841343428788345757992943141909239495248035921445681949429556420127190205904860515644015837477298376280290254605010324482907888600455677832785693532085360376844599889905441078923358776567428816472677461073844443113022661660708306033966041796279591186612130331454982605492949547589331365498025299349740067293805479944307046247865587410968614074411700324452095347825114336747358104235665586877917661346162612239451977135273341216646085596169378797973360250450067787611053528115547344264038277702396092088670700609275334476384873393376818551808182735180554206840414568601848020700703500631231793931965274655015292742398127169912208416430601898706436864591895529457273885455856415382061060146691611891187540606857243703437304984117663142148964195534714781930380828555407058897876372273517317298987994363161554679800792923701997851388444767985075590302903702159015429546576157395494205961224750684690672358159502030124404991749257906409903572225245524410457692090105862332797066100041443000392959694438517955333707569984936457796290698366140992395852898418835721686943834577312048583847023977046665519323865035472205577908568502586762657729647202285555301950942949284933607135626372283878527442970126508551683556039232512333344242946479514964683636189192248329361649949570923748860852949231672321195072615896855442092685953464828502087986348990332308669096677250477191133653416726399160519239706570811051592546829021297740553101001056371028972336534157706298850473577952488478791993771320996165382388127375824317859581054645912170580117255306162526498913813560229838825043826297265389326653981423544881931894012861101681859797956315837589935616857617346644884086021038918494091555934809533458713794070372733447044081840861795501117871901533400399542557098409963747234836573129991533114027228645945370674774588908971186267234308119991192286732827426518171410477049310251248900744846085267904029757854089906209884097041084350384855254602244342484297366751129433812313787809729058452915274161992123589135569574878437220117218290261045137033757809767891295066102125224604351295168404222310946723373661388926866424835741432163550500031491639659810299338141907581606273875841513762908631686907593943422238879402448306958296898358679703289282608748089950890604017838522588685275467603494156682606920024056997700478560182434449789075958325599997155486914728616662560547015172750642702398859146490834569010845688887313533235954468652299095652130811922623572908248555892468582088617880479974260104065543666625601037405749971773621201333799596694247837256986362533028734703096559839945266318418698997624213471935830792809107916014522899816416145385514242520811947576667976095885553978576621472816617752290334269194214689843385119658761664529434248206101935321977634680052986800580819472023725980654818399268416527931008494484971199569144497427029677584805728170068679453943704266245379952135231460287635891165567907185072488634703902930525407953480666430805205252966289871860551946523532718307975290784049527740080392243871721821422366799950171112264451612236819541071454223675617101222486950423474699420052022781001684713014896850895901974698939935073120447844292976991478840323024093038787954935271490448895774611363748293328921243370125352628322486763743412204475450861362216366645655379974043007867256077335706710305554074054820980522578887908242470643168518034657911991639532558712250448876593351142770627377351860332238989423856662354805544346174467746677144439755112770666109474450678788173910332656960024628030362672466546807857766762305364837427591911338733392904745304742593082777334780570179259843172440764718152315602623473751842017099676229917903823731098697129788521439875260778013884840550035998758507735843230442641445399096216861634297755265786695691272822755622424084237171005684981740936992943752145018033097859417158304045478562810471050788586958051150701689811074032566126614553814230691644702971570646185552939008075793349508067250364672205347592775190587154139450512770440715587223096592401398131471539131062191734131706244691185234876254684978960976236546688870230131882449915725318202294699142016755224774471904919286814313210904124653503590847351235417233323053540083860645677481390272873442471155895546105773758926114993972957747756243011679927154112225808869555633186109256393303828761482413123297199083667085150621061615685511483530354039748751544403326650698750746948187557847125849050809947384491601399614952729673686523470641389657429648194876178443958036601572151302218253345359199419189609208684350322642610173779329138570974627812763715618400140062462239678659431732211760878368896278548580042978649943662113006970056265273131816603474866599530865294346577075977658212387562787736458201307718075807291188199396892476380476858340897852367887574003160072355470258126012191350577898372003099963786167987865623685411917053594330076104687190829916934105994799859595659140591242511429844491315787987865751987185581673103028543118155673883174504830386923928206336569869824400221869157899773379750732964868257805702275840028871144074520957390487403956864296011270984901522527674390405612494841198210132398076161650968127805767097568968675367996010504416279293708664204776708059498894611105858589494316025480791420118361679487097818726358486362117645932880559833255920684379576068407583775271850612891653377631852439894050731507353392642472106746786715514182774327843838445646772358162575136478102290507366168322763527834809419623625539339451082202924703354959961617252182972288203453264159166349822444322979250802159465098464758486644116005401771491581449892281910726606930098440456260067907035703065933070123801147485253929883027864039090808238468871350618750826552602992546576120563926144671798825070839437906193359269418514649037459548151398913455862024873829946722593660199811861632449187027976861566020926446473063895299803159183532470417150831967505761949718448190817607300079262815061955140935829483385524726020782355611664499702676878412570928278474464693407046317373633602763867272208332516913173850794174779139660502660488060125738207095779576173754282431137807293183754020958650387359773790617283715791549447359478515602844814360110577483506100844761203384284578925802968276413326195502637113781970503952492118968401349645046481876117670081922024543080682124622402161749515279331564379727026212328036790031508224086250957884329187973664458634096460229817130292852050826706821084206577975957671317627372606876222806392506937883416553221041165004175039492544527669723943904770987486312536292282204569444139040238103437431247909331399189356816341588891080217055423122483187586395748552117239402068145939610707322100421811148024805290508547889741880108714141497134783292486832762956766007047963888068961947970899897207297462755282677415573296533041112561508976271341866183957421957838282885381586868806986670137836071548120790670791765124675327165110219916471661864157140414097373498914353782531419885837983903097749595951310095333186283387210260383983320520997935123053602138755615514632454062422379830544659156478108996533597808121197075574903531494910294230661306149487451666247666369944306641553894478400136547759374930350696002969332176096756301819726754370761225518153647791549772772954850031572430025592656718774641072557443286667429598123402331618823953098061894607644821672588403152660902052874445720679476003559919944226022325830913380325297741160398362367791431945732324329741740577212646483313493727859883316735217904253475581666235874160965917983312801505026102267593294554180465072736362941139464552806073361335103735430471140886578382134476575978149924595831718579341316781714096325819559930685660454246114902411001869992098112408215350727914537406816874947557721583208492527294504867874323891504925989851063428949790177788251724759376386615665201769886133178141339210416956283054103329984675351783984021475588680083904436653758956969367530492990316543682108445930518028695367992549884190722846878863181331741842996490899623271292354651124372221986642178741743458924256689084820212557040512462560602724096194325694860656289000986148014941497749186707075178418199794086627880989224092650153662457944938350855937885068929069956710978111721652030470679039567716786694021846594932160508294427578969491181363172893615292354189010403323979710802404091661120627095352818798419701742118578862602037417762222821797876069511389314188336772628301191455576215793183442199481408714123339131320290503602803602897924696400252176582137115870009776353879753126811783377999411153550382980549714879617472544737857543122328561411181360829406354989717700272288000251564641287175276341757883174760759257630018010979992550042478436106777347294190090746877635340103057498159884983414917058268385840396420465817534576691920511755138284757379452800917049447439374171598272829467572298748767645936977156879887102991521078939499055688676898894287116889886287511762355416579972999505149181027850752120601157730156224300611470391585360280681469967353301455614231055941794713030276893279073769885523589045100337120467428892040529549581449900545547895931857223894163868789034079366766821347243018441665988499259209679444248956500413646201247334668811039834947478921437435147345770162581646929581482521375463495412596654185727773325914903024085113863235909970194621237846504242675025139478147132451185536537727387082462669901296396560669309714245777578970962611970890140647134365960948786830067524198123546303110585703395252946415996369674026834560195692850699392130485801155967324467660431217556288156330714119713837358900280078878836659712748965110167584382854160797988562200303212000857029607254869748206922274389423908846795608535515659986101810104396074710797710707589271711756052238031969827234913344267472719633846615101080768051335978734624127456087423980245935208878097524615264952351711247407127385219238069542159561128532727466885117546253624004208281999005300171338558581100955827714368695997745406282535781234988673431991419289464251254372981239141244276938770762923743179146054436150277729729690052786915554809010467320076015400244392486097003257920395086977256775299160254435197933398265477076974465845445594596708563720114142789310197458259385388684481784605103281010095627637285361550245845354318206386106923148443143955939570580381338063122990339730367119619081623090370962511592482460715070772652105101925009073935350426719027062781749356773066043277569290187224263235316180715778327574485758921156886846037453394448689884436633901262219474818257520377415154199853256132553865649181755453142945495198920805687128185962420924028933212739953437048379379876163681629802821228301426281141245916732124521487732764912267513970087443305190205792234329883530897593922529939751967867228837954211969855735930669353579368703874413004232314149381251989138362826930722911993820449654134310588430624989487761410999961772208747383162617988728330160794060945346255972630433855599895423107097982805166069414272074075460585465239782054725974592178915028985740820757110956942603764543134959675692135738142736794688443818670798702500185174180088763352345575761476921580407438202910841957694827130325076010419867156967135774574018976171108187713551838656647900966620723297333140143371260533762392403338096139856421015746823207491128718827865250993099507698371438698211404206622441852570208846999888721822066205464831204305744580681816858999884538919580195354433023775196193644458946355132412434642917325998604037687568583630935623774400723394078678068421149000173149168923735252227511633092259264937658975639802104361383130237752784077482059954313573223321122090990105821109941223704373834326029125123103429065538126538063922044383886534352646236401418082763281388415994935565037585880346424571746806655854163464775340360393530122197206357568961431990632037960672301991125889666324668265694415929671552039252060556690328112998435529849787651841254487632598458918339037385696575139132424060115499629422795243418257576015833225358720907723246994433712442393976208093959687365535912616799554167393869332513588712018256475485158089920481908655969995897622965830947328499534565209082721752595515756589368599265429815909946297858056624666862875094507239721778904852012634679138753299623059341907693051716123949086808016644053585040390558158700745726843116270344008087798436707044004623011010092293922534689684701029223107803119379877675508387632529803136828506173829756976359268429716458863531035641132220307798909338909485363519195505201568832739279215837465389859458724488426920152476752241981649507558198053008454150616676674656166459157650080685422821163788829303069275809005915674272692290656814099205393862702153146317080975152387285849027085731872246464795955392218034476858526681405093600207295538022116007097423601047183334303533761062829627233404475745086075732582644173465108278473326825578902878134489821414240509073719956061148183533549914580040983800033753003269322896402868113480860667336774858453142615667681738982992538280531366328280141913022345440773683521803316936086536538803189243386192090016077596471027891899471386399030439047545059019017516685181532981043382573351639395082599975981608054516292786429397663585991225046298298611741178651560271500765328334751480309561105716836988055396727952054535531311286567604534358957667835442079766875033206799857596340247205779002960761867197625732074535918372432126322403391611350376915571878646765770107427086698752413848057863050628127844570851725514638501467360484806177037411132725752014354933676918283406090134243894777282984261081229040775479325564943122951828872521992059022515041463358076874905215274939643086497035719487312467029984535035812461532371253582570600669001415253092638512311464308967461493338041092016861088747937182655684287230356720701512112655899411294851238443731959451405672253974501358357365512535586836443257501750791402401093629201557822333410867243928375516387025610281317831689083015777971939127260384751469765224735296979030681144293566314579601096812051235268681572988535228912529914171942827958976491251658460267031822943918531292540191859443123762725525124220970225283833579324360687182748203998457205820272982686106034050338173656249024684875533234208631281645165133954928631804690910682776879988844080930234899060031965324042300820054273564904733463208396301820134098473113580687292916571121300131188815657053859823933719243608029428176466619878174820411079259490831832466842453676958475490200800480946692081028643095790987602375922648183737430831095822083420415337801670228587559064292205297284524091106078709128227030532173868963860142510465897845053842906691965808327972500662870365607220820111505732894689521380970951333667382084244614323630547965694255444634206700993999550946121434745647688722217866436689365859889790346482504912720010444399922333462995611302360298684162493162570952679578938924947727375807794792493659865375416185243728072260652671300134169811903905628312840755525683402215863984368360256233762535772683316738396794287324502119814423998635023920850646959007696380761518630348524602459371813495622953799905017365616313294957061633919096765718557434500632327855394710248450621127588728952217242385296840198142054429725823335277943750063420493230316377839565516045520335997463082318037177180891526849109207153577356105734506996695673353781828922325231853184133053920474422205744900497518525960795754708302563764200534648370338374156407301912354275631930747913757978012730572124309398746516274495193171571207499735860641500230473350930796187091542630344840237979788371159668864074977465209430976567047477274487073922215280887483739949415858379863221800721218922215661088067481895126215351701368058898132381706581148052516669340985834546266830812408888813611328286014049091886833983484388670427005604047871369106230604924355397592779096942318243841544646658068796837733477583323573766747028143093356523677622166329026503838915402397019645047787293929252802071920724413201232299307187354879900771300494710572029321735432551973562144400999389961776289659171751355794480037403767096540294799748405131635812575272981243307657661077171430383979361315096645282509291177821615220750614617608087053801337752345743705729748574671366907694283009082018154703827116175007531528742960853634709977736307740774377751087275038373934901947347159383669398387113941553483774675597410364815559891305706158426152944710156783291203889353846281909869444358694134935425431599699194805823688002956297359885055372753320645333838500978820082202183551388318325047165931761126176974661093060502000111633267943166920203954433588040401160068609984401584454530745360524471306976206615459928250014803165629361755513922760755423841610349019958860670532960850371913519164576247426681378463445950259745226777190200210515116388459041544293500978276514844006444369768528157608526262388554759007841815962948964532643075305348201383630249918466883271143341361028829569312612820444161197021735927526653620572575784573377063519160405963025621536725671592058284559955500310611810769346153418299641135543755823758260869662432329566104219226855805920964587576181754572694589347008878425600555288577845643904044975810392984767620565283735729403311929939414220603212139927954903629494019719761541638073346624192038623995068036905588455441373462143100318516431030247225004836823745020526658524921382056035543509490965515662440271912373041150469060038894454872475299896601572481231044932526537845239210001721012194841988794288389440127942820205279449014436907468994223945716853202340151248369129656648393935577936007864241392213149629691425815142709501397539694000697121274970972312653515464345401049737447992256852751649461720357664484075588299652620708025699585181435814253931926626727313770318909385343034713736205698887026611056182816914163517029130743736203455968957659739030615517275747653253387024782734579078582308981509687073667406780757084498948116422280708433763165862154560854223663952488099650269957999307521239521824028047491084113256312294754167540146035686759816483052817860105255700761355241435508812619603652431443095663489528522458126732505150206083579170895533190320020579118507762199811534610983579760993232753068657070668749239230109904654656001091860096763811944109383978034212570970018937153912769161976102187576021060871698464803527242612365240729822601705445207216381250698562408813241048928217194144719498716312862261040719760566087601737561258875245547617395857005284686292954927792816330540345302411880957036343530105582466716218777277273068400037948199332766745666794979122333605436299958256335251653965324687992175691630562259692072931144598078572358152171742552285306418297280067654106692413273518907260315494850048061810132757959518707042951733676403740764016760588723921933597086938614530114804594376051296204253229386671366901492632740258871614843669687715059951500561408946937182869234478608768346042636720489485533308551738110491656392158648735251256115711114905540058432921418530548773356353385004647752155781859855234014988170370562144202565608559369462642543872669801573650604177830144202801356049764100852121842190308021192798111231294117239376362560947221248785194506127238226349772036599362431044339642450317155248987468660413970023731076071846417013705541555296171428574289152485798727331730531902225688623788381596163408996732187493618265070544196680283304055410581524902094654159879385310808024997851975981846232709835207380639587875533105619764535034802724069113221250728251953331710255796239674652125330073457769696020943066951771566416308563852343696975508609086673461960049925115732952119047579564115378291793830450727345217725141497485402551654761367587037122367999242024885337250464188814796976118425391671408592141364917088320312381505386307168509463440585277939045706661051307872418473258506772900501448801198546463699856155440662789419604406659844294756557853286514984171657603341334124585911523949609732275854129640865787448260999020209859920161468937942705969746753715450187123244417477797143911167062665125902521569664590172712106625754717458062767731746153661137677445448993114029020355243565615130780995996147273024140688666678889715762011464967252093631836840146368379878637608537926617618533640919866109736070014603247604566614920268620248042122306243943992135166679156598817058147696825873009452888088412634246170631345597423989410949498655368182093242963309695983122597309685658955251659355960158463235480763023453700343625173675909470901484307120648281594913778742730852484886711237539739449393585301260807836948109939587018671147731141123325453136446609926683718395153042199038911864062209698233074224883818519051411095052238392061078299824635941720109474233362070155982841776123066450425777212079561213735754204504849125728118611840769954297394671215722923398024090245618788167418854074689541980606525781652578986984196838180437161082852462776722871754310776968432965869031297827592317935521099319473870217678495194545131887813283879219527161122760932968961471600070629629630743395523283801605867602324189168565049850566575114379409070439726432548192560330218985768712985830785328941522439681329096930298122422380604598313852603489643202425067608594486697989478154307579578726639848371765000270078684023240603491733761856181611250570520613082682718849393989259647899605333570191690162146853337220081292734811565342696028489172213814300030577383509989997667848145264131793688216902306713194726547731632461428444616764464161808727792437091074481763186360433357144570345688377468553657503258310244000032909443905569207749925230423659498563958667798316212538528483232544556081993738278755208621886006664801835087569520386766304746598331139026056261760829472750727952099692457688706753978320439105674783655852952291696218886825878759429433431781640387250429388991163465733090630216129605132800229609302883391230324313487406026270468821564650203425416024183440772815809623709824565738330907478986285485730324623694155285923252669463615012562446445613726600866634995524841050925170265911672723578583835885332256503492031909572994420398255206921530760343379237578864564848481635230982586669485284535674581895979796789335063025949067374573468202849449676386644181890318750133733640175658636121777438057198697527566836068913868233197354113471372924732101682566155609392467552403192517565433660868619660222930893445760570351444414737485259132160713769840759390541902753787305030443707279840129383806103530745883362893418010662468392675536595833972665491205355593836344555988598284672738149788858293546253756223543627129359395375854586644599027299467325024008404861375974660038208575198505446035967832415286599025614329646756736292857918136666817740942097185977319292710723175033328050501224951873799645013031540154147819634084014423816175468527821699178185605919669008992366849876708244633773609287030351026869665656698239009840947810726943612219846016078210364826740680348184034318700080863663708943397739672769984743615887456233235597823814234422978826955654628495594693082634761849447437338228520310650164234534109726977606430069362785882369722309310568639547008292384691420102735286868864570694120943413159983301625487193084371443435584135161814683993831605487287909117825393596994875302355567013344189258137120348947589416685144294722829917851693157037838729503337302736538656518601463526362076691800007677064059737196674624339121489296714637528199041846765363247347001135540375367232361256090424272246039161711633016499716290883793178485389897526479751587913164014991702020993018562078113982565686809386503042451330476359140049935395993260285709012906265018439589828800815780018463426421653862906049431872763895522597053535615108440444392397551540845280461665598913183500597219283236854387614312383580725156049436912135480206354696574992872241213213079990726473342059103376755321334529769458886798900463478572480245302079968976605948121583643708921529934400812833177088303418702039954979519522538680102230766936195655846329865292744306601487825588821593202113876407260767448533876655064970561209123408670530258994234867149452131114246887380103890165503637505128591804430751443331812024914006588630337223054139975016053684279625948996513712350207879973675513910131738106044994700042717623709732913850187024467607832816203148417689439056071771004748763818169231121387049309139665109204484496709448320603722534378582399889968560987451439721498683197522202828127063103981047799023929103936801457633824730762590073899647492143294655203970194277712961016681744194804593524272972226568006122626882183785269753849597952909550921264154826863607142343472156588390315455783815492679364162400457406241569551082240842174241206122466913047339933311287592483524338971448093089637344369365075661666711087336877919308535435409207265775738431094036838254100113907486174638737013141067051286238450587273358350719637040142315182151887234418348270170497517852799879299397360799841400687610511247183602212415723106405547163858466656827088100484110177672799853093736785040716445588922776372364242514805734816082129085956451586057022876757924086103768769555959431312296959313268934737747639821256749954934865429959826531805521680001738287561819906615028731117228721476426138273729841917130294905477436127382148670915206260433059869496075830690967395937673695185407243108344989123072449817541187946792460214080438564866328248667297063436214809405864060654536972057379297754984017956164387531377264016937932145830652299350300874944648458528511544789488642053261402655692063203599927162032063353467739852027327174088920007941255776270434534900530401679820902802642173524060116161390955540815135749145995054749800395439894416881939447358682458724502091313122716588253605270191147727213795726640048841032732051239730372273592774420244629161849153685703044404695705897987664102846810363239950656920906948303385772365389095171877464162458853986684968336090333441643582832326940922388005394240449351794310185974762390141601006747287504535295235672236303001435819108256657199049283554891482854032290442192747279208310487889706968179792825163660594603749355338198891979422916670054048976849938242560594548860458896014323026257728948929367536489607572229157607074229894462272658187932767102581206456809029427830666169833925698713767943105440906772463334397677828742464332500760987303568763270203207501811580126986255058434048865847078683588489110126031660203317622222473968857685942723387154166584991146344081268195119217374326581407398557413450621524753590023482126568288981674071216542982381736707723666905800223111466070561184499759383900048168672763116255804752307230881857288471747805332164271601402253667284335125029184924733525330510329771561658865427350134466217358629473212243284697902936715117191245074511733360811248109448330052485489856368860052535701196762439043463595593789480239607070912310447673195823197599874172101713257085310288679722000509633216460821348881894024271306288828225782408936915753301360760535245763739174695599730257979784938478082483984477374955883017525502591183918228992075070827771830729728184855958113637272551197360892572288231462162380279700189697077599000042260902822407795398078756041312749856698212239198456716001885812659269295420391229880918967183583884480563884750152846948732608181414041076432951209486556683613024509709367255012345346004533960849766719887219882300470609476854918901687829446827764662195464954010128462921800882376548276459327960783171296999489466782170587502721889355738153512658992248297811189437122605219749953302841223292730726874808778180187722521787508464052045070822324069793534737934023570457922658762886485070401954628173926831461057034335561145325860926042039326870369039943554538212567474633028647876580374559027034435645721973938858344056481817513615890834800683750473005111713428576789504799351373084626731848815916030062885786617732694135905652282652487428268987175262154062789971181258507902171914749933539469349237216072828029290653333570424768004598606727383723393344045002597693382190625813207935393232934642416288243106804700607007307367683672865929777497131387030371322100911651242489342900174173605076386592926433370296499234086150856244256151580626404586153460668679476103727541970695201126894958061359112395060451953347724760433085009036403797972091338378207275083274371112843561685404412514082864927355513124636880839380920504393206165104336644214904427571258634906753239921144578129760935546971635456724553251305320045155832609665616823148393396211939079960893549638135255066022705069092135638866390872034438452936990286386063389908761063880089607207957510626591885535472381174728849998368257870351270996488704133210974770552139294416796903181296981521867745430531334983258972854892328893010052129788753707880626133596463764010384332007105906812259121680566052862052822967053412442578288752924468579816676371551096921638338574990579010338329694244912531645016490708015863420288219897306361426025173952953229214672694958964496621695095009857677207841781271466824583624218227804715705321222442450277809337018173471595055719893743289381070155574245957342328979790365968722689735720988837761794975388863792641155907779480811006082928997869669278754534506968221287087074693307997773400312686400524551066806377333737132397972853363695565978357332676268898889466264474688596291439164335835645185455596237822365715798197240887344370377724711921313265135147232698319476042429046278935124179829696909537941879569812361730298587742772982817585065013820102620007967291386886899034756354946342759448293167010832205967813014731556185025473452859084192532353717145557317009231417164465979221059595889589503778670148010384133870441352045754908703171154120327845572487159883600529619316428613405751841421731236971553149261336878070394435830486403998224729445543068289662619795971817631361259626144055463370934705759115345954778850894645711687219215331214707842817346856437704977309130569724974718800553537289548808746601764612652899127136207244244642742706783070542424328383679729910133559513852603377303798252645185290386359851844409704636068783922224111907381276062483542958530807610290100632342815547153165675201069009609315116393365357783549057673403852893762939997919753299893735325140121480563910789676899112564652719132585397607457157833788887933834754193426754952202478100711316798952029579316264499665719852135442200052980552973444913523551401810486973817228464107681249181709630292498174333161160299652660082481790339587877062434217843772639177005431247230366244201353194418843704022225772247221312374301998472670371529738066463796025290975556199821917964206387363487572645160908753012833960262009336369457164438641853587068632414307070667652856099591217443890523071475625521929402148580249540700579203535506052315405925498049093182705244897382889027251047769786191407422440863148506197383873935638882089333176793616142967776164824476806032730535393366675782763773188560308625436087978519724089080090841312208634918155086217773605767056149374103669727537717774884130436971407381670327419786856951354694673641252288710978311812061401945689357467460699929494091821833799622664894068653947529973409153547280212513245757651308506537214391108111480124366011688124839282430071098460348495483226760848789418006634255936152243546007998432157425458806814858513495333491668626619531521007246494904046966639907872517292997899024720760071633799358245766647551772131554195318555791992467010983877494005718544648959836746237264834357805653830284261535312910226795458101511670511384401558336964345844687618710306952997306860437343631949680159365097433917859823171215348771730815368110006629275708847625507624896921070889447681904322238117320572216394496227815104653721997779314242045473616824664299139609694738223807952081917151195776038370802684104944595844953654463925194130719895347232336042214782937659163120524065988810144392618020869096016985353535256459827256203750428184175865591522999005806984265212139151739955033611952507563557087116878065806630250597278058465816785797131828828611808414517586766599282946731760708372188921094222410216315701609821199817260720183635559135418849668600386071436852277598410312107334997499591783826587665027611046957509642799322630936618968205524494478237844797649591133206699727267595081723835266727589169012448194887213647295833453262446801103767895582994003169478432717007916100736943588107525309294106194213250667112404237282287278176029932030266008803758503022930157465255736273056938573677251610789658148222391061032279499391773297427593626406495206073071734618027776541930777591038050263334005420132174082148429884954546953059733576247970857739139744868314348125576492124622885383552511126837601079441342058359316901504329073748277131255116720839530285373872781310027991295503253275498730845795991308575061430193147429394933458041871660100795392873428694932707979163755822410568556772618443266499346606318614896758055207617231183086676421416060889390246370387967735058197445063522620312382785058727586150658499822550258407742125634088446958306474197237869521727974295879036259529172067196889966312043973823009166231015797112079093014670822076379822518006778409621172691964099879734704106962119266011586908712408428133939002554848038129665041704572386675591257825089833794627548622272322647235250195592705617148657692721644585212967425611563465075031593923018231884249393190768684363154901479637021339251096807107205782004297231853501621949603234120614388233845267133649376253839104554776315528517905513427136383003744550873579668960934147224972099595298311972060548914661679590566540044164192329342696837582960254108219796765346645786473837946857940777311765772427976937801164214542700179245008852458253936075703500760954472967783772643481403778121472586606602605491284186619044463012306470720041196908544362554123550811213980841924872880245840891999665405008846828685147306235983128239315201253752388032251361174747866522485267482286850047560405106472957015760230472795168413089298459516301600886118712302615067092512360136073638771846962147170864927573773530204271866592854276097538442917287941589322160000331756507763213194287813572641228097817318126203407459918884429611261562303482208275835365779326380953561461076279801897891313003041884152653325030270992087902952799055056978355364913252468198785410816876371967993802114614635407739041521312010729115619596318921328519164343436032966948430658791822280175542617166428550159040453845611359624598123725039309454140100456394395649204716493704492271336166419728294751278100513246989818233619897545574979792818970973878838174238465094313374980028647761216874985922130761992143230201899164517506959521038581581794827069600119693754155855931237402259765109439537155649367881011969070597555539412862056773144037052816361985153630499956748826830259792452457954314666597057803109553248477634778903016367018202129209440037105528395907296485812850616782756811915085487758456683484058025920329052393813112555263810361015700552201591388748534243661761302628116505016199147682469664775646678676662453831932148624904447456564976976632783422055960792980242833408475588957969352953758986817660354326361183106190919213608205572818508880421952071697284834180644260974834515479570490781861790173156128292240348380757722448708918920496809175854406649204780373032780632877297970330897496417312134113049470842097186599124852064877590304197094242966669294559810070011104292241502386044082316969232553133576724482654403893507677763217509525087217836151722147616396540678597750589568751375330502013952384839572522951363264404763184634787885982571800011180995948986849270713902459123478208782340871995940111589803238225298657235948084960541144135409380833298557556784603051184878920670200569513707429931740120835668585969510266234739023025685025791248278355994161243841526470119128180373004740595569057490792882682256893464526459292449414391979646632536098455153861641701383923410811066561843860266999559724708181155997604698938082377607781431749772895939345215554110888269430937834009770469094344372282818443490266775948413930221269241446056725612345735083111181821162730749657500472659537457427410641431932770636481552545245313576608963356266318793235844545791177777387877804978266663015018135489030458893393355373230586871851242042414932813073264536569557377790637442398644433789529226641714541185579885114940118239295759862903841683863831908023837442458062870743096566364045094708581614282253974110275895309981216319437500962888568504230216400940849123516525892301853923034653409751768171128101126424121108063246746190858173952658628181738791356512580903537158569318785862789125096244669209568761665115819959597894991125888448096325349793226364767563912175359987820662455948584495652264329939842729959242633114215409857795129273349169891054533562848876106991003680543724496651178612346961164272860502553494616545445574665317122919422442022034391834513387074139882443072198205935916046726002582352106365446141660466134939064480111228917108084864525869984343442203476240126865261307297006473128417718755025836771597096268468932479944935703428805748101331607154973894107497390626159696029338146706443643481457499858073287079049187910937351078136997377562500378009073596588860143022158162334628501991676850851042203534081778933415821716633724400447938315465432154394155140342013429096967342446072369979819231689084383049350530389057904899910096667756791364296570739504520655852043518660009984947949478179062460423613658898760573370756919829440395917830664167328676859845435352178404374276436375979627975374393403397279040657463838291100484198637895884349770940571393638620196758228335391725525646866328978190498738969777345581065026697039376915069682128344597650488962645405816723292586881698911468058130930822353940468001683633763830287014347028856511636191211368700180282334028087582304645251745963977363754898464977740765196706028404769560443711351210972588917437372154413547450377454468961460267516571196662399163993843367748500298997856801537542767169224495577492631341578567772310574787551600305534859445948672662414704923121442751821329375444676852897834285042620787538506653639050648274026248702739949344457238941044729082267693147825247580477679911735780339674147068320969206940982931142080704926732698117845871761550623276288876259553232427572007894247485268578009502612382009725605608912634657863306355600881800503288446486520320909701467954853291108354058879963878763530020364791509031178496157790625058014407942647779868250338390490233040886945416074019879498541253559622288556570454105675669803275680953039589324302474305449655589301365741856547772644724197398057751809879909600078987165940840100085612916606159098891312831616552397173928284785913834596204149072145254108561121145610151573776763305657869944140891540888603239493571145585469840968903727373929358583125509955614203678955129590844850444064935080730734743329569066328505387845687359818248228332577656946125658507876717326604598572212493853772537901138098657583260838499647283529705982287212424545152048958254509921405450918919488072557348348621128537631788631498344867822483264588238857678359134300362601476021705625384235725346529629306967128134824232037617946841361126526873034327903584226556723515433186578850957037245636939545311722386677260652714537881300450223937660558305922127954777328511821172786925740984375705718946017391639454515794414970557572671098195379083386674835516593249089793019608570475902249836144182295216761928326744101567492846494879016399642380452333166907794188109638513007918619952481203675468279084185541272104284135577741406144729685100651281476644550792093429714687541855778319680740855447477371539521975293431725726532359038295596815381391058072088897733917262654206087484503762619438808813985772338122182830633491721596536880170199012783709927229489150484303564321229647191695992127543383162538386874701320671757401455714057392212532295183081140342912012127867714303842218982209820552860922475024122316773648286475197603257584515116194361149334776333827414457899310797563174030556600107978711992109977070482760137140801608470683446377117127516451285063845318021696211799020655118761943443595342620023382942045408524123396696138550738310454967767194442857507349036820345679700899503672158329944507177766627217297097102758879722012543697520979526519563396094116177892532130808669646774431653745024229114743482804367477756770267433076058243342345165647050947321998748385793788707159312018000942683682671079263028112781147589573993795594395017457947704591923652362467666945727572146013964924607583444231510843331817567680541181217366052351504431879787171003377764051341945417535050459810121163754233327015926477598895921526259086703381720859562900232124882064890533865427298761785788151564265469129083733610950486629350560379105449020909548975498154157263959625425513921546484926900392318536664274540176056057881097465059621941116718427880444946031595447026442264326017990701544620433275007835575141968664733419532713353666397412313003045663145298052578992686101692169667104017928137927383986924019379794594966303399242990950819827405289977423103155238592736678328402981698019812635478933518319929416532032971459018008286867410845316353487622727084700312215984258763055134929906861412192078372163295989800636087236088020432235283409596983374703356087400425116228338084351813050382605879672338376226104565301832871892348906398993337666217149553477396023326870771617522102169864427738530975487402181473630375583429833179344997110605405971590327116656361075905359012387181076602582192301277007673690411568798509788954553083743681679984542299611423422987805396089236804560757382827634600905828567369771044492871776167775576179904741901852450465002534922265030961447013724267477715956105561101244049687216942565970300847687054194231153729850877903501000771633843527794767587441336320730809563518628561438577721677082856968837904087100700833058499860709498726145895222070492785354763496611506395679176880731298706409470596418082699385436705036441920621130209528603246263048475792019020336880611117249297807329221736008416166076005037372634778225912531421911032337770061886581643520039103577356731667836993232493174471625258636129563923930817039948836516323590194146513083668688028235949693702262981061423460521782050613029960782157184212992253555043815246373946391201389856498823940609245426153875901588680264112808092853464066064053570777747626031372793222350957553288409074178202109381896019167031768220280131998575501349051513777240865509431687013691942758510953938158272860358496405603569897028426340205603006461688382998590496467146543477593758927979231176917232452396691827355952316101198044825789898091580412302883339725531626703757845038164497863884499824193975938033092132004241154050665452106766914685764579612735554480918380432445958498308416097455077419529094157735428571962600703154293288743892730968123188812674875031919760382015293726666576415744614172323318974533054333512121620474950682952741508243170472960032518707562197405924019335890412569923275570519658514659515020838860987559554750251432132438307972085147078330725411822460088427237622258504591471688735556112509320770662735006424149078237552511667231778632161722219455892173535659192560652978685298867859210177006984778415323516437787317580089001918105546838941317483826565569734799206023161152274961928228003168720718855811954810944313760517426898538779333066479020530871914094127812572268821165221700879010172856073567885601894189382959672499940161507142447245589261890001394452874185764812204971213245940618726616087084808065342109341767884067844910658766947036651202876452274109425736078416957084739005028254238053665484264110124729311494000461120276553896039008659918884423385644152498117523228902175449865065761291849568288158514005536174381713193418068901393038853808178371104461093477718391605207771082262215666366995985078940025062849000804292421934911030306021772325166035305079663361285011483498808554378808010958123386199006475962777291691290771853362984959935295970887365021737560450440297329443440737490506975893115646329297284562056442616304851163807522961257121300388343940671962670048600762686497742175065134634475744192005737621697971076708733513164738000176196067516285147021378266177675193186589594607539347915340729331829185635725082172705551910774577336577329036237630230021803062174536266428185986319619617727822836183263207113970174681983383835473619915608337886763568900399196926546163159428735556367902305907134195261847351475278990028966706504992610990656103427362650390570898868780320385108669020484639609512809118703766204565425196324590250616434592238815298331410692303404051215011828863338075122513315914783684221962338479227541151476815660563679671929660660579078279748638535097688807672554962113312986350467455610117386998838294984323003977141671448823944982704084783619456030664499081790151475928247555247870844794093883062109352946493067289511729194131361650065619204166507664079119545261437252201257725017521357460000819117024908482533242107233238097103748871930335544171074491353246771603261004755166659399637310060424945258675738836565154789395886152206565665734903946967606663088038013669363796564738622596077520905967059909589282713478131110929225715933499127677344740257710823507377647771098573288447916495056532804505432722235352852757267401341697569275625672567217113511041234220781627133818157313488918556029888118255613718677347325951156080705591156670184845369872544062966475334214966858263120250007947623928263400071082378472991504313116214642437054236491852916026860682582399932462644273705350394153024692114238612003958523422044546306087034927531264221838086782041341725150787242163098662806487977812243694579830067254988767489960267642558146527398533227556750620692874750391475694460920325426620512237438435819284689639076670754119782724631993399883238104611953405384250979491968030765078543579760177906395924501004637048885795036332537502777479257736593310995088609167681317630600157099310450173352920068807627467527683717497038064073240647870028800508035059790334546474852899346584068861007021200751160751285833543751756385784325975619150408744997518240852956407633821981557333188797720308919323961495275703180229215810202416206223050742567438584393819957906396859247894913827929026978428258485377138670884790701087050426318600267588548846657722594458003002809366556696016197205127901592486249768073982870094624154008124552567402820398921215952394280240749845499820904790432675805640230996794895835473467729812109086437124680077518769306130735921656869485278032516378034656741240802162955809396649989148203930641809245314897395109300099247157632257918812123374057985594393625068173793990293696516039879184236358395124763336968248634243770392720228896247485503564635716026487023462245173170822102158864531868305349233812120751588781087670634001306305589776708957820536707868156959727017860450392171052731410483202123490677284596636289124554118147331448895367191836563185715795305502886887387921266000807614474745814947192282181353845392256836186912641930886027551888434557762226137766234324007588361070490194546186391318481975794737164938946900127522753935993431429129309948455963662002563428417074129217132343780319119786044452094945052630597379097767082030075405415956983418696942390263888945059933604651057326696471070172801194174652615395906524285005519465099724872120925477789558653224514876056219365610269742058731698863198207868223089954134796276425739128578929062585824717240141243572305294003694138530442517929689747519041626209794353750981468215874045991572770714536301015619643017212893250543963884019389438399099831325122320669717733663388333799382530250634600109681652524323048058891242733284092161505094723037115434037617934008507536114886965499409948003090374664981136964091299668668668038068802966224817182925124382198812757660936410585005120518614789473048778983005915004178927867170461665361307566500080233923976517755673524791296741176601087316882768173723522972748083472445330652318947109284732239503419588212515674972670908458522721904049717084451484205617845196504255953852271898132510116469884566753793579206575286453522844973288054911033119103305691670720369190876077765517150745103658624289894104120997890750702410613078442788561245354770289090080970258165153104780639215418082374722002368409137497197290024526422516060761659018521332787860452048778094025647040039663900915965770808033863767545245185659446518186376008706210358647302141202243219201176097408585096294752344581858561673848725936890062653659542828142202257501900219678169201956174213959630442569023637665158053528124045343709140297951440712353275329657777448156734689185789430817232113849388315530629970634194719377052623451342469585825799308442394232203631658667515075520176832180870820232067178935984040708088807204121358335482792740141040290094563216147556683080840056310476969865933248867824969073616120888217394188011848224202776857414057884488600721731416195799058822328719760400837304245140717544372627859853279860953843833313261946097236158412863965236650817974830335698715232179551301144156753462932629397345556913867370362103498397825427514528478798963135029322647053567112088079178297783986780378689958108968036631502452690289480714630385907265359072843366984739069373773412542213874197761288207341571450922647943656312705195277246101758056162496070356131922757021955423485791122254487478243684311420044411815292809644725262700809736979827670381160095702899806632342963808088268658142976796367384247026996728751194540611434661568411141543254463585115357773991978363923432100488854790469236883810913688004847656570062649406987563234143481580812722671751540895584733243463954737985520124623060579370623125472245753392236847570458896099056206186277866430114024985792775854064222051170207919781369697597939613926000273891070590764776434105403920189065013634990404222039175631338970169667930480078197849713919439015108114420345952247168370695072915554243213134854024452927349043214640496875970274290880856872306452247935976364417278695051752164721874519998421853863431462498013592176628888945160286067782975628852815659592982758519576646559788648174876474395898899965113031514023835006216398428892474900277051088985044765366388195108698332551972144366108717059281726011948231748694242213707315711568783949289354896534651659744947027577339983216944937416266436099490371390552420824315331909373821974685177915876338268213618911337960515047634241399229566698530473627079380358135170434335418853058968224278112286132926127462122092885315802610712702431437583950197009181139364554718067780747088814303408589534105359362581939731267882916567214887092758746545516394933925036357206349855720709192128468191546329505425987971241016294665939738687524289725634653360716623271841282830188763797587537241312526052351736010056520741378615044461008446395225059827808049725661712801100785442736020276152142772454078701680418174561732219825134705996227971614691884573963205289424298024809725472412552706189310872680574736651381736482255856571304881276423811189882077861650466779621021722453748373550847619059939444035989599715795421663495889583224000077547110421624033144158010953098403797108098898283368839355871804689804856891177586063513395702902347363662706506654150888249204056663813682115239945645452751281433143048672617831561939712795274616669057372921255280644165047841425829052282698602468619567286088350241951211723197583157396284363287721922774436494454382802938834422549084810690737802523296019227409812035927953108402396834421745948051074300171550834540385345148417483987887323115052766448910001947575903254107632666293296444914632665153131856950269933300063646497725620544860996557434259681683054050490409087961386047661586828056207561578277933493807407646837715301768653403098020480428177802390179751799170270626830986599119036496914645449476577895913317175504016388811885227108176246891701418175867312160655068196369060090650984355282092226769246592596962106679478029086881989354546324541591266244907765630404896246993098255338842448635356300946516880518006033520783389169746593182951292049279566111683616545602331597811755183665594799902192358409718887151765286044445492937127126505655292398992585145870608491474185443496501125299386963061688889333477902960326668844626359531075209804976989202137340122285706623827922101158277517119448072739185449294526323340045816124845758931096515692389156358573687492820325005892978868424212034252183786406987225331839011450799353762433179611502749275488086141568454677818416553096165749283085508937924282778634510150938518894663263626773041811974544234823535948459090028011086693402725863730758624147725571561824282199538472561099436085297397963956191097588107860571860002461052361201022981894643041266460864061024423449068552705079538821898236353506901139550337418419397071474906457092415549354275080149299419843392710743513881099328533146555516349100744445796735014055885104522983136929544629480560751280910400275961439391921227133291585734304808695134481297044698846376019636138052786215185172940201050495834086225634532753288844814023606975941013325594956866337432821801635125457887028763042650189481843811840112210229049900874239581156566505345905203315263339741109154329526807581574200836098026990081263899034818610545251155541161812497754952203599553569243276456548679680563615602998835508881542572898499348427105704543316139238994495019321916676171786463859990685321778648935257227693105046122032782847919586375780630792375174881216612136662277534832451505040071873217465469875233562229837200971541366089324896429418344281916563095720893106252921820389475071291899257579199960779030754413103265594132278608795293407165055492936771050615538281672460845875406484779103804491292302135106921596805517061506362614423049103305367567639400000824381970767258131491063218151403253553587398271933151368389194207828761462722068302032859519918101155072677998103637067627129045718403443276031533904120867987569402951199422778121115218819207319640554353480813828183122025143316641859178887274489686369884506093579218582809768610779837150146943998317468809463521977895865822445033020938227144708457409995592262153653416109961495047102437161535582840934892197339919277304774478145467339316294405915280320459757847916290879068776544492180638079613832213808776669895152377467170450203450686423649379301648958977201352200808729503485858606574709524056219918960025505630013602899398718173909142066807039675529925943373230593289595993051634353330505197462362031260680673612086235605345210553963429196578990093643395602707468798429846046156848189406767230350600150863800771799484142896487550256029296554856714002570173273536339958829592623377866143406891671035672849339567319355588415148741913016042018424597173576573980526865025916122562759480897407883610826852006305734250597734229552161252725160013595734832675502773384163006250035969654287580303175111717664443945660515105803386196484072809998988535584018768506032885196651371105426868772901196083979367098835462657670287880844077798142555953696136794843034721442967821274622740195995246566140227934804962582353776169545315989352025200663478751588390617624238054400947598165997942723367034775289139710009460826835201658873895738830830857838644055657175121513482842262377221328989940687801107425062616549478830676994615056922461350155429949469248293053061090678061315721905459548927158497501735396398778504896505303238242758781445731543918537866620937529511594395021170139573813574494526110551536352925967982215114683464466204107254731226670867598130302577741961849478466287711902809859266952401959344518407494153289238793220528598982739930217360889804048768924428441406480772083522197554820333448251115357858068951089091487882514500191961786578484091792284891312679251064180360833084268722069315283701301710422317675767231379974060558131624676295406917965659103236702011051418112975827780767513008925862990733029746750148977315858573236338832193327458767718815936667121812946418549999847129877108743538366660814422417763164928039298034876651186378632758783269969838364110368138006656945452131046358358702282093526694136809332574724177820290899121943897516305019511119046358420839184519572270806287700041087531169889947014460835612748576781038478643708494224584352818915727330957726532341598569187794755149474744717900476651977636103919321940357611856618710883120614466571769071576136232300077715131776477655947268240894717254134547089462643852418722956117053705709573614421938915900242768531229794286916454417250417524644064783387695764046687473244510711386875210714277661012823709156311373322701690126816054271954236508297568369928870685714840311323477425931313258978852085546890493539559991292379161506146578768934076934941033727988662877333439276466572510605199342709499247651108799912526594899378865560409826693898436242250670373846387572013394093033239613811488684471412403708376961357230889614991790699758249181084488577131750593365550024611044361404001434319492068749785203109921387650025061456852582216795000214249339159978762930047407766463759949054626446222784731860278762281251989057002752048960266218429794839602792999459278877740069632489908419007817369203135941954450775106218645174786201982013244249406503896162581157735571886212004327164130363962161555778530896983929541973304671656169749852473470191527244385386663249842656548658438153707843292168144563523778207800979077750045490843658637836812101063333714939858688447785177565516126288608028410157954069014032442803220212327615752335222077623785655469125106917338722196565141741993187025826645877146561627889988535003333211948390035355798340242708832546236629041623056402932527808585813800898849324213799666703406210692141294086360701747803000815706486010728114827472741594181203101372097398185707197323717548449508495037829765967126330311513833597509416477953156524179501743402932318228467919247572799647898452846650111319113715658692253647464737185949305565621505674386102270402406587625341286480381505175389026120668012093879803367945420943390601198455804090809905655018583935139163617200907621630278938173967834261464236307930890756308515306750401969203756265117126740105923789073325648529687804207046139507914587171753803264106438494401168063033586098266078338221466548284667188485865227661717626815493749893422775745589975251286839552637321334010875561635093791773201591617979539327411937592701354314863927933900149907121479620367050614034339928474259771883955972444325130906964553944732626180473597521535351178308870336368457688760023033560889450497651648173195882367742201837869283269361043900541918180919688397678693519988553079422957804474298311667076193682859159129676723877136571534852492099068561251194088372175647139101939518310507135921173772799560389916045460556075579810510929762864808334823335927789779838533152552704921969731738302080238964223369450386272414070414673129772521101127158342767921499620415366282435548081308586817648966924131423268405182268017989055428701447526040574512041897659521717342870728845635089342454371989754711048255207430475834186559831971600503236756397459837469718311834663961439516871994738620201092896495891664848330631072021758835368640295803866222136322790807757573775127220592855674077287276398697601709705503667742492732067405767408406364998372257417617103070668494103166546520506111153262113876735242634738612043649670830486660461490638352955815192343194184175094100270710548779583602038309534394498643310655291918533875877973685981749665342982532767150137499151421498742442034425236016150249163356897686083316640149542008125398123923861088298524653626404816827267275025193821171299245049806703210608827352910794982402289110237012765296581785364684332745144641666145513209815685363736465923198527925783002017955763491756208936200421987318080994852444410486549293248650866717898787637456702795259402657856832851494645530809859206985296241235669619649262459259112153228015257921851288124561556970499212457215168318844765743544168630107493220089920769441011934283333541913168331729753251818213272039253892334157815258385582683838379201543966029291889942175057279843494555254081480535849275985421699025068245921077455378795023476842598179681112441253527977084576319068975547865524344840994083178196844148562497381164426238789674582100204529883006758784268916854090879318849414704982656840124402250324378158352914418648248915798614252803903647434650036376238697080389695255181961194280462731468166471233265222580822426548537396338565783443497955552695687352816575478809191244815620561949668062078828941225605312834067098741197801755674393795607288695875099815326032593932762152874018171482185990375354722789352615487857699946975145980992443790779313468489366330410780808540544924105816821283354322751581885766775508898759804393335793459842220866915198692454617243686803438717109611327773977787437525094596191473306440118790479883305381552408317042789709289531065003128306769486792952334898602154306143674227182680397224578837399156304154814233146762687438461564833257359534914284520103389231691986133818050532706599220403255547514161423831006043650960121884817410101189270329654639916443844451731064534764399297101619657769699704036269033362106631182937561125797059304191508896776104057908879988344253348981957027226369382866073696369886052921312641986526546223439565067537420256459223943551461171735545295967663662472799248298342295092455165069181958832406100807445944410202714460410919710714990516839001713465785132791664692326816195683288099957633553140956780341112520827837193647377603109137389010467007674632594304398020606095646715418374314685067422777950353231148600988869191282917349865371052406079143102279050707897752507824228192097315820335429556548261691341509142120117030889998926260342135889365528143807221718012218212851164083880004810391359233620109411093040421453418149726540833416871464595469687056200382159509045702074841087625833341958801471979433403161586934706847035415874791756807014400345211357629038313884263666947904293773287355681343376791385448761314299672861444078879356684614176514723253961400496189025745744640872077562811489902220488042001525306199058538872856221845320733598010762634473738952346635841312180582706495068879241507479510284008741660902981651382252905400825779269483445032241942629748343240292426449942785132076024321647960721821914681799562163260000438444355246892351251512512150490929351446772119937140477508368081350252491351363723596171764910004802631411354925759722612651097118585542892880825650272811236151794924400020487584920239586758386093855814542927005875968970962508384515153130038692048485154274706418164388038244520531471528627151556730378997074261329023993496019346254781943871700640725048661979031524817556398822581146696127742183753440756544234169710567315240053467077539335166224441736341075459034689274835462179726815453340755733329813916856330677486038385138868042074195542622399902990707832520097391361516742662776858608700332122017348794644830172367715561730666782051694180936533249540954031902706715779092164297173911498064093953572575494380290714331829724641906594167182813330529813146518656241618251818802855504467488604410339010396795228989893111829800337918898421348310128380893082115387027740998540275619874117393593824500305775400392719412803776565476438649631488246013588902350082210708480100466803934698075573725090582436328835409889869496596383518062200521138451183504623990574005230860996173059237043771093064281191151430607860571818659448759746680893263380208077189988206627755241068371852344428243564366231591160052326933799267095042259632369662405148580060322544187605122362691258738958768622345470691525468269373639022062286942943596673983848422136702218503233397590536106843430142578443227291338333373002395525318852270706196144835481375286833230378361557288452639864717939786082074856486789294010295266936104065609871785378558001774352007040825152781631663744519889450388481719595033178585995996778686787411525659575093189021043453428592694753500569282273135495689984709492348114625266533742413250437605948308593303926699296556628240909209941822366782135157948636083176520819382301527950776855037755456739237303580590004641523433611798135651217561448931692940133773549722784652039086148808313065190475609011993579579321936225152883986250101143410456138903015245328793076054892609610133950794228734448118717586793556579855370189646434295124896682102633208149040020316865897730980996963085863333084011531111751299105895109849494751985463500764101395459148104724961079251182122364065697584004479474948713600350163207803140414953381258380358258480171243360650592951296281760032876573129826625994757980524859830002206102578241617016513576235091236394854669703743298313150474367005843469404731130899676167660447476518803784351008528396319320485293553576379414314484061059902473823588373864789897637457823079709209772867673058941799758574203765983679840247442426741629277770658634011912283840991093872336349130470447870722206218728721922110571548172789688824610544280710196760265143459498059161744522447930338347118336956214270890702344335809677438728762399416647340770256889371722192335799985052467627858326181025814742004575695371852056252553083466155728211962612176398004743613603411941976290056676356866724375358931569786176654936063325649969253774050490020385978861185017153313773984983268746732624195924718250045771493387830506680004634117695261907912889393989508238400457019876463091427940353342285283853585108095830346155901295759354686085171823560609536550688507083030487369224497192003400914219102726526853115027753741701412736662682643857761104684710231671002892389380613646139870083601084187521196042391441397939148096898141749799934535081180127905879528829993659541279692044684082098562121943522498407961347239303004411686636818499859631823666726360300234776668523958435422170995141366761052704150208511646760705737351456184004281842794526147988251259454638721854926023169261531929389118466653859419537904281974580054909203945618453618968861718133646108264823969820646557610303970449952221751563532063254513542641059971558251786821353692719873929639857530104076150847206536437845279602355153783495588523416383663487798692023612093095851891500255073305393252300986531180135856156746454503062724131271161155561766314238877119395990945331306657454415320216949375132044493279806623541152685783391024726288911936142092741537941149904374422265321385736774821229352649993724828669883558037648063543770106825380298820240470352664425465504960609454433893720385702163835832087178963962627693389752408365681388045801523029883307358207676332505572790993182724697092887537525953971611373773903862729057717880684042730078282215305511741824819683987250244755836475768297067927532752834123527627451113484525220625713545396929500120104914591894342945917828116712549949423111791979662099928821525625028124026482603404718117533633515590481076833388850037609177448143873102767714739908492429107540216825826344851524549819102648296335885626820831725683393213202811645145761245101715266765542482448852684215274575293045481810034008898245541191420962344858053519965480502591973513373046862095174984673160375344754101798386658113340753612612517605446303654845942344581087957484318201638525155727173674064892360452510390957024358289607121299867627807432618938627618372796960225704170223679629719880293939275808515872675268368054179649652683311685553228625068839102895856446462580494454757326870156715247712250056849526824745257726144190678185973868160442456350387418673894978068542173439696243214193606096966730512085547579603652346638828620004165493635791288737036102470607680965497325646387407506525667642958193392544365781162504902789299274003689291593342932281693880963599086576840708569725776847467849235254019515677165388947801127032783485269516535924807354974791181007109718238140483150117836267095144384265519937898819863355084931543547894099681550030029769078462543725459472676771963672911154488081318929493486912302442964905918471194362503019130336814613172100965535206397239987919631639155483050494144767041489563274478595340149305493764450488735271705200578546082892246844529160230556130706387578889242089243889305990547988596528684772278019388689381772938541226767593538002076469733359923616776795746698165687039110921710324427821570143985954027369564878049143097741510951975836657728928921975111705853364646970940998444261775049502240538406027203504093510521631928029323901130659514523077106307289899357219879495858060278809194539519925089329958784052374020583650344906623244238275310986968226984088440808751869884830601274753122934147513598618616821480019686999471166857087748725066646605303261520936170524174807631991504036863015248387956733674490153239383971319408091665378073866689689311175988941217475698517184644001063462284605270514863568247896978116506845135050158535247197232289373478732199110440029314565608743677028861861188314600612733675521650695571931716883661774586744703591446136903294824358692144688070980602070734992389633314395824246724219246771597795186160911514438521673417508122968782164545671114306628696487395821674083815462052848065628462870578580835083794694677776672342371337222819679607121372647064608491434030184645664947638925074735141125064714412958934964480295962280694033958938014692913243295502051370505073811031004730216734750560200731659603689312724036527075328487978526667189756990693352219101038716358075720628674590829518138783421900252658750828453920114583568488838330537758009683295671346230217159971054945104384625972398109796301557581179050257181727777076144984230017814154150975287648106718659007684458986966009773995332090420619691625426372592245812657550922214198647318523758673787360594693334361265739279169187320385176427117070015557505633818179000496975982630316426682985488808034407688760959390510878154865903601648367065656019699002910370273816115856464795671745553411785361689162590704940253719736031919821482713312538856471242357019765308499121774731551512280264461167291226120670967760388006957486542643452941871760735082361217071092886578630962727601212998098997284183292846096191980115144957529773297872602634378889122315193820348905052740519825205838795255578503757040779089149805047125087572522233399542568241497231668769286524231397280543312220161536324908809196138154723975423554436824273625613117571220291324016173714289521848839241334783235248994838379112548955411220860756518902794164865922160087134854427350997869038656020746390441496069475565448564241869828374730822576318813825018335982628061637498020756148503991254698926980774365806525915055856507242487914762925270698744556967223795695390298627841183774384562927701331337777458593858736803321910968059274650596775675713621931874786108103767011859485910879353681168038748318061628482126948555342664443398033358124499121709044864913625896960579313670630064340259464081420095266534130259053134523209259777717103065561607936026250204549350629360063028945430233553905592102155064478477333035410673280996059211412727101133562079626288284796029114679589210485300347588955036444664841243079952191043283559264022474457441228166518587347916478582800128491052837794194401935237515150067374145610996716221177832685224953816024239113586483809340404944560249639396463187223775096319772001660174574429401432872967004227189740844354035796915310913285924908162494705355933831445253569642390444932187226400742524588097462808092656266179907286626767662284109438054380337985296644236934923303993184412635153775208519233229350717828403778007915011495259415812538575083161807762631353629117399309545014125352138236886147057013195589376534389508707181885310668864321098853624398033717458676176713411525719580181748210519270095855476164164119243076516682276440735867282894056319200405765692933357982707908027231923231239592147543267916270661383227896915678252205236571285374329255182181089239988901454573328591555783034910375261006076414514742295856937177334545660260035857780089666463842180546528149051025843515137653222072072949881510960688588405626384935551203399302078166694873912245459699495383482586857625997638221897735639286674800852379527830328420627495484070878573400003550915622246282332437192158876097490723470216097403281720864361162156543816735391647347898783583651296209021896288636413777995807753749485417386541303085864957474647465324867121889435630427702129499892413706882509578015522743592781529211171425728056255337728359392840482263067588410143317217235363345951945725947008757733950277400316454469496110963378485603776398440386298580337587780438750203289273718431520683805804299361456889386260119179591614510418263225656108017835671784131324594847843166957940684951709302425729564624230610139320642578217593069067643831506546501150869167659298217444208197700028179891504272322195247854715309592075405003095508734832689014507540961687431886946070853591301565478392770707748379557285957132600113850044855161143704824495845671002425486893255244549755403121920362214777286811677727116182571101451248276284888485411216655899287155760906994798890278782095803494840241317547301937127371447724501343688983941408257870372326768021556577903088014362796331016398320064915152275130213393971407081818387054684994430775773563443725405771270413710109383590290308766448283951464126832337700266482979297927853831502721741135258714501310013186380350084220118980550893519153372386277638808316620274090751392787261497598100108987306276780520316689228068221043864350326206652175068246376045339461666234136806450456605955195145468455467484028790430018201630956349203790906595649412906106626377117969127177250694234125520310505375900352680170113468902454946805860164206858818460608373069810348568177705154136548904099020009991756154385227540382591416086446295322666585257306736816300095956536941628931216900266286176844221761476206660792348145696176727871333536245098317515322305734348210677059146726118429735590130395924046474803407196436475764318454766947426452773789746475152239795642416814052207896587498512694321250953522853208726607844973425839399818490986211396913446156858095926722801496330234790451593004509442057292005148698986703688687645369097405366886200586711480280196410686406836536422171226700988688701663698805071210941513609487084839631386556437326599520457301832651658500433936191574849695882280470459234903898329270995387897000806355095366250205649926390922774324033966865312085369837550521338970306890640124291963441907526321144232971357327497224385514947099201612002741452774838200713616849511036801473765852025470851363457151646654567278890727382416085384311374765011947806778085858093326423148099732473281705218927208364833039528948981148479453672594637379769273483851991690128539403039638755901598818217260556141988413117171401659394882936732226970786780834871630815316394808718061034058818944365413093925167839387900752824604472581725902869895649034184410747405888670586942063844068391046945095171727394823417047263365095863452122044115518052441504986187216250959717321511044597849673916940510484388166886645512252253569201126346843164043900662660907392337728886570397322359366080810390394924461166199377168629452241419628178343997973117643172350143420591760677252475700816342386117816895031286706002690174510804732460241803183464316658412531860981385116135977718662740616024662362183595595695884463024209479770621017864757392504054699226375355805758734880346814018407815860267263372320469702613678070837466365411952077738880481644860369124506672346976668706905706710790272871648061886643217808001364771887436830545404638015751035219593113744593685523236963128492640333394781553229903916113114935411860827025283621633237616398620387837395811571917430852092244300639690499086448383605964855443291832363879669317928467343702720749554650890683849892719445973242913960686310950906587316838204369502236098359191107537850610277171471403798955144462683392696437190996067398769074877529844703430978993626111901606803335647905468873841458075239957537394624625595486392835610744637555935265735729224187407700958819871482016369237765080438132621500583895236931498362304707830982667709656786498300989196888484641037133850226077254204919319628712911038015508850437782379615159100234097469723952208680233772008115027768503941262179029340507009584034181745362208335899273681649954924819600811910154798979178093821597164432401664198117406725683187378599189853991429373913594655860340859831859067111262985903385975128805750093801695289603099401630873790661228263142836503148288740064236412759430076231277040107516381206682956447806927063383926479400498854666663516485480679343718095304181097663755012670811910556665920369667299944577765331171592151816734538729227630237914310223757134426638386680845043662882434591507354681667969234551068975994225207716168044660666937193480625720934248195271654617474829234588662035322558366361680327885898283829556196126358924604587429474320265895623215931361739989659187095823125862624882298851493942207846106672647520459539085486336235931299580498027370321050246455963909371610201014690376209658331075543848810343690863997990378925546454981127629319248385568322600994592329103648444630884992015642828114249072513868896463220587025686456307737462504861967925976334202616177756212885203929914236675554881031405356323993537996703679132818801946272815102986132135893575776983163839353156165596735152924782032022315505310677815732349507693072781112065925188015462691975445707101641444657992647361131987739747075362884205086260030084103666288690490356349037053463280792365467852145574023741327885629480355745011211883788455280490963218705708696999231064796312282416022808744015420481911311717985646499107603260900657234560288165710173692767900201223218513112084547112259137628301566263332824250063742787957494336075376508699048257248047740336824761882500230027595762012893147016114418715979636552175339577409822874276283636824715536610885909711326526735952138065484089059446726083313509778167260918840745393343151201965711674765967951026618476635804192493995188633792651767714058774083969269827884666536785868087827959865853163105083312391187846470291816370985277257824709113119656012744277138002475063380708805871969222529442761134728361888578106133493569775361313747440706952711305949260373262866314248253721630510263426938943531032929141188053234325160907519275672974367590774244874342792624299076399075792294189458044852186501143768502782336819537030827889830739127807237104546803168043426983993352665728530137866429755669260639286736169673318635267122709303571622660044831733331896585490648745227752246002735463343201339795986934230788102098464977582195707598997449544042328884106936245092725573642794438168144638499161398653891279719229235092208670405728116323268590874989108220680955268805819657958725433172293350745050724168485771754269561829895463230396850211670269334151185487188376545830472807380519681742072614696111847959257159829860783793629131822893031084681549666304117386483658033386866807239090157957492012496942006199622252911444619755210719105983781357266134568961891785522427988170547937667531919374399826304701172756180559410257833253761550186042922837399995522145191657789561047994800896151022507033056655102518983934647175706661284285899400770039554300156512282331018017532416747957902716256832663475030315253185354411281502518563354544180454430247340726898198608763665387856825659981120680321679336266971046044433031268479899534772255778227260010590511966522149576225127588383690889226410875856902723567664880227294604539463765362407108591185932631846003554118258701375007730305869738300479891352420076624570247712808084125733629755248281776522175583035221185093917213212979473237692652519855058118031532272349060230173216300330783883663827321962450034984361308330975467329633979219343571914856136233807977089589412163443655988022080883384500272886359632647854419697981012116757701797461378092025112472806221547855062766817421497532941386491964697077575125962617171318533058472567287366258084432664134823558390778108440530275506164812163470534432099951901171843711682441885140266530481118022519702180283445795523005177260243158833283390076015024730817716835283123958284285857250732184227293108524219599092018534978482206228396858853903242425065326508217683592343220979249651633311489475669554047347133693222559825027395326625825651946496820991329150515462446341985330838997346345328249286101529951937105598514773299032523125679469997417447364139581818091698257450259918036680040904245948471859316985136861637428914679784341738275125879845910498354454862699397847133216225477027523846603188281644290023812280070602767379189487636185869427647148721165376324431075228743434783888794371435051564181883173716580443367637101870853904255860954683796050969316620491228548625051710047034086223972879874103408333240452366262249291736031846844654165985719211270434445010705082344408851194953130321368754938456501089474112217258239707815254037183102245247780290404116255648215279068869885052314457823927155631596481389702738109340210570545963703476562805391414316066398896378656566449426812104696657749242311018267338493627761363647504178327562248641051906973960188300460987568076156207797107801026015948681678918096600239008502681896693027931495314192189797468133957518651314218683357654060560080796028113030759181257263503249296563546638562641209516126333031600990872992089597986608400356364296465580684431841090448245646310475242551566563274631915543745726076394559826814320910668665006006218256580045372926763123840191779345185189561510102439053657725368959912478566935336698501292462206646583990171375052905980446811703129494477860326575197168273153008754757316794700339797246679142963826271864249789667052169461356741049078285719347835903635446560431593429375949970655814159463772888877580448896679419924774370854762644621108625592280687943876813600930982157514453604893917277013263507466557973222035286735697747635530327366937715273414640591285032546951657651046118088319447101889595759751841773283563800984757106428989484519845434347865133701149112611812421425389571759387564294498768038899180152271577206261890465782655400812134666647576019192602099289464790402679115643295408406033032458229094103317076402562402549041795031505019898725359446567679047127459048558724099685190000816902873386881864804654954967073004103855355469801744961830539043444240753649580224930068225295434706347808809791827095432190235690879486442336761639242048159009708802629958245877905436185425233501969158434589054582499489642826737588145235988225599379479278260085018299187051062844096962765184270594243724036384931329495612436002631788260920499632593415004845751279559765771017836281528774078680458896521250032905215794962233065804106291761303859960847337218113003123150721299265150661518921942635882361539074762338448159418260818559741022230538729654113016542684359724998387192150352014785921055486666037744910908217534504516412882158207814845560274117545074701340092048156656021797665312457409914837155804398666741080557572310305494967564982829543983976114995693037235558771251836778203540509199949454631789928311358701037422750496810225944247646491007491669638283306630147882286862825688146887109379857902269860858291033115146893752405089011318599419955900981107677514223016084605398803170233670625204819623768782400273541140388216633553994056096279997592929038424148381213922172674288132452239162705378457152693391793127440993213278487592866755833153851518729188814871124086032696202229743046242724730855575092549399628040426446105883498734640574423188495507156713502985381566136848150855932436921530637071452999273460578974378106003900027485002959758392385768894391616309955412742822254878921639822044131138579211961687543982082201527285300784151275581780982132908083837027312952956030466276377373211939638492643448913781309508318279971210467477465029525423593877165083615971278689936406710482249992848823721517720173729895850836698386669331822818958416312555639730490469536461408239642510283658739148712799296562299251037194711706267827104397692536672493302829261213962541493096493164216118906138427975923470235816449253501469908558124084051911690313167029861300783734176773865378316861754068991847273001534128499931622490896735100407210976875928588863075213677003540838988630603900311364020510629857659649083914398889364367493632707767804799528133410461138106038914545720235805306349846255156379948284480800802910910845896342923155594682166149557669102255580678092521696631643432239062470327665524971131285255822957923937486602300900976262136737293992512498172700232578035294871742650495549937549672539412770937598616142986681859753329815530810472097392075089702407422590726315754337512496837576445309200304549488892604366229370993587212615088212401914141487775152078034253273048348081094789691299934236327513442771711870716752236000380156713969724038874084430970108300861381430769430994663473186701468542870962980934519127534280841947897287559551871071867081988577271145951558341503329656144818820905202803031783545235966849112270889955419492090599227332371633180600748957096528198430888312176915567844261007011051376291593495079986716747843559139819268830698074528753227104030685690236293152956052978935979486605761740803235534854579521662484786529333535973558877517129946331347359192780662377742130843640670871011117747705043312809340861908618405766485215364091229795442670556646670685491544387216589311953458886245915997459699069426032093098579901540022144989457925306135294417374034788238495161990019307045491640741053392778832300661075598650059939169737065084621511489589259789577993067845882843477574744297754482443270931055537560099457257974901162412700675196305643429330062978306468359537747902432285208040327765386466205536789567301657502432247567206178720360224640445706618007425742202279861303275936014712435686215373967997968663522399350381937946697882948045088860824292656028361168678601706582315928037827991028123310737311399482231345238080506408652960531208952129554775343700119031267431005912074978398420761291781525059564482999257224276232343409953989280654681519918572166147260595536792438817083175227638144646683333369919455110998802908807793300361310064195090064920501315527344625006406619679438944719048539605796589571292165660680211573917272196740266924714308166454382248473319292346374761899911296658668744593809758461974767710507033023321872648172997736928633685080545619646594579610554733048768580761857251237207607879892737326233426215043929886687202913176336100719814867586824505129002686072698325940885357856450831237997927406139161948549695296384898962583165839986983336480447644373844353594851794585965932479064535099461859412739781709794832537600370171314991623026323515910057736810167383948422920338306351619275011014564926267612987119421472715904348764011142704048452532623523274422404592510322013797857614079383901162136390691044118833113535728782142817520540969285366326145344267211509127109074194914516041825594230216260464113391258858283794136858715047279088756157314558608669316562623129547294131030939657477378007322287278222123682893656368367202026523284126415204808997381445360940270059694975014878399657416454490154611584485767752711338101094491844309006410298384987409739646602483440366734661553200941022352508627481259681623966044296750722730222748999863121489859511106998149486554261729692552691739268326470157545534680677161207812413097339237751839943270122398023446557803034162639382594807887711844028766565190287626307511475493270863339426077789863628215309941398302864177799317714459146428378287577458339150614788560066074531050242683944018059579831285947435848183515612587321181086642924193823457326964757895964758439190045123335680848419609731115018882646365064405162753932157096098294593785631392745015821570547422736537367556095066027590386166025704973809486154777284796756356250462276058860651975569954122778391399716518770608309120580137923174419699677342481405987232790187629238095001690368892697253883766480914581898668481331922325887306470294380891708271794249174843622553120090162846367810367294863092542852691651207561900483668875871455708659618519449670749213314266031822514890978150943206395478437991940765844782471456547086956323598929945430917293050199403814398007070821381860455160078593559294772911180751048843128735825052515565455804364068586114167808282305184553684843500757729163642169605436425797908640011150260144245379308822752580565550853557683978280795371809785908525945565950592332068009892736109792239099961602795267317830859451781474385845695285906003496613491299708746732217470079123618310931419051308081044965707422823871081656485330903600429379624819028926645399226178041762044800451904704610496364514084217305245928814927827780325246734165726975448672218606540264894384095227020665386573479965167858028655164945216541300456832503100555859191709450199464891421537511913411928617166596202284061526318464537507082090460853838989204973980454471881880927195422813275080642158120749374609409787138243100486099287753313033539568748226350211954553536696316003742129397321527760469992884207875005745414005040408663262545657427044037098247137830813986994280063024424540940724635949145612209705542593032513690729387564916382962323908973489814572699808695960043689608661596591431162171386777147126639794069737093163129522178505110901704389712069121221321747437601539063001778390292594215432616386525306281081126394297499908160472067050812137010668756669257043839973170187189282855585109899379928014029700784746990186377922902739483813200434762331767484469250088373300054343428627442002404161813356293627550570046487944935700642622828158711013266937086389870679115575293865062809449238231281327103805993814183910509248633912340906391641124472204915635223933495081605333010094525631651621763685616121475253214413273523360436874326572404072968667065243585656176300438793940416982837261548579541691325310638051747289234901458652261022459706467567536938528592949868604711592814056313759487102408646485299387564759534834779231112652791757160672923104397070344609096389309253969262211441440018700911138180515969187951925590579646669858384483723318903820009900671232671348399456887877876760734815958920331026761978494072431599281360846615950475462395075085957291628665528354570608588874568105081963747680201374526077434276195581080637514889464783706065549642689274473160892224645540545049722625403539580802218164268293082279519054793060105555303334875463116944517978797819262241827736150280315048532605378265471222577229348138528473004832162619152324741064009962398997974347246966597648490276544601431472516256778417569083954361261490557396973201903878351375927237048993375284085804677165650167371304467867406761546443684690898438096813636296417301605478205590530441245043246704981126365860540922104399773749493111145407309985568253477365128977458521525310955033470387355864553170255870386158970310021871746994814379652766277707152572630110155892151454382887425736305055138940355737569645846679857133095770482619188715211262856890949155399897793259578347485085589300848044587529072635050233063300128972855300347476654204424843967698503865653972972457077967102274079461160049779650593941847680822170298714663287043379710852959587180250427545479592434461995605146062462715654110956589281894697632041493595205882068236872694166751484895655154082086913312227880519961321377742199396857918741475861698135928076054969547275453510379054357741921398528855852600050477014564265922610842924927545571875656522564553107601149723931745121473289135672318481949613656199017935327717457175263810902747856827735029850649517846124466162590525358482027328048824096999354862090335440443421212383010866096759515642750620325773760487356936747535969719362623330182004712916458720516437385700172194621662227256681236673999787301990149367789191152483851572481133620652709647857918656485392652378395397716556465812647489848572920115390282975513675225194713920297367728397931904171870636193705309171323355398163987289429735212544423160361245469428858623732868246299870346439448475876692804357761849588344026646308508628459640786475961548945966961464677315106636487598619128834858310718766566894218339223766077907456195899062871931651570030272385031803806551387523205036679271778196787378932847847630444916135113970680491173874962328073013818844965718392234396370106689674055525856682380946361909196203419132190050318838911376665335211798630264597905813727603734626066526815472031605342424281661611346578948154202281723463856352216366552293122566699482766192146721955552122588689204580234174778529235340516487157840680197558301164416058090499523401899979792590731345604128516978854216888752422056212573082124816157807332580493560333560689468051526145620783375520072060539133333482983282414607124154771346888810385939116950241745685628137884752940144350684421838335201892018746553681416544924691614712363675159331008730802505371570154572154359202060217283283058795527433166626934487803969962930853225264514105156096025360143375909114800675249539320751913245092840873539402740445996358152546522680137503328912158039808086625289622865602326480973175262914856622572479239806251108418713318303340034075779909193279026636454123128631212360777057447300552497118472597405295219744722685842473498875428594144399892499851456914515841674603729823653628194777842688490895413402180027119893883645686631381407636389820984501325314280428242919139832189596026042658834187918379778131968661785612885070469377316925162597637612000797298401781591289305103538980206259209039547153784689998399875505908340600223344471307614169031537046219789694122988276350357386815607271350046712454495496544425722387723144571625840322181299990690964436525797787215872992518425832343555270236247812167727475190494810931390343284679934647277806721106814029533994517439885793589381111338062976735576125641355055748244115097051870782295619579989548175336429130982264991457820510149606014149628678691476349573576094445251025638455631830711547950987462246186952058401420585658080641875618649171133124369351661470635983913876404431037707782102655631196371898894479056349286164325516296212669357875151792186934734291401871657058843403242806092461674255702416589231164163179091788942140361842257147891343087941933258053273119924200065934632698033289869653072402243618991871001003562799699081168261216274409126581247215217329078179990657451617014775159490147547760067122386613799739915514328835704943115553884466931466658982716751316092188062298855291203685603562886645525870919828864548160109191320858640553740054980263837307569584357869618607066436313280172635575211619249748314179511655901936830380988652416869409254489742808887267191803266138544667252437265510640511590963902100866316277138824982237648262997098727428223734510996631163198789177594290106506342653808549260702980458721958098630129672993860991031331855122016970453337364939851321465544411812983996217216746662514943243658188077841036578118926932788981783969084034812357087649714291139781971717660642912782709749310908438608483580526006444453617326713533638555185316760882975595782538279084449392500030008532295871553894671603803264875861516831360156897757408815628302460618676280614621067827512652487303093884911126318595295361205488240489590263998346287272324427184874776262000912056323862183900669838185017898928754077766677638385712061486250063553729356786671523080345323913648435793668998593260957981465442041660151466471974434560506563239730366852921031169439843296443523502870194962300840308282001712845770977942892930113845174944297238380666370412806130164054187947321179717345075922203721600268680262315265885512905574519890525529125622432459408021600023729585725196612591442181806618176476849718981423388130915352356094675191700676469737599200659506142895975005770862798166497580797095980334236599753302448732405527082829358932510810141509755914953302802901916281344055091951280834613219121314527493411564372466930994729961176668278159387650766152359868763809006268384269174616097070147651299811404729893625568313850352698615880334403156814241428652999279551047810608878588686486205778102548404277010797072810413012767490964606630861902359421663329174320232859392945113874411505207938950523037806000203282279870600697015573322837427222327506325850475001156742589200587101144558505866509003027639098776312276800137689987312056267494294297835192693887522709270721481075476680650189087771560809188295907360620919496940769704401622033721014670548745434090288964081645157078251644333643033736383354644175702074921513090004210068695634554229966795992057613802758698059252586790050774808434428597961076633186753165587239385318489892897287872757769802025742794583696960175624896881160759466277823661791723661700604264573876557572834293729845668734371755047292176844536832408370913830278889664791913669108489054602272280003194085012058557028958800187704777112212936103933389284203123943138989379149433543389719630676776725618773513706514789227242728339913207226143516599711110881031962229710881492500538437553962441533503269155992438651875473396388366823533549490448186309890620815704918979728591917625569568066873745250891878660174130181890042167751117258856643283528641328592690861520367709693856360913930347498095986637286342019889395147903895660235003046106009994813207635137584275851251219992125350454126840548754774828857974269758314583151663941327227185218594287779487528148511760944629536481153997751724731584887550079897050432923165035714745393012648365305813126454093426638295208126721765393834231758384580943182466551734788053594486581148012350197877270681732532478670242588716810728118249363540357450463113910119805597353702443877758383179433257851995368565024967837654842611932254942757787762973413695547076368255267907255981744544513444863165827363533574086706442879815829462952527237362297754466283479392201308916958112801996214271073977628970516031837673168188317621495725811628987608553825019751884575806382065218343542039682436320080504702852519864943646809106933661880852499292612214373875398554142298162911861086202190996878664356826225512507601433877267909166525050673583061228401354029874549032389561927991727008963745252726385850645739689670912783931829763523025343673976726822008987718943054097796843723384249894876239650434615855239674414639924857350561644369886111872963122986435707481303155516100641546531995204444041180420333780609562353350536485999577457820201985499687509562324503350298781765317406865152442468945826191831521558725155400186841817817122213859545048691664089072105149649765498587981081989108980545130234570078364300047083441033488357973369519592928216585534985655676339315793575398573736961509390571979858239612306229531629935049713624585872855002534662901727488910011373928066658949317658583887715073115873354749635013898005206724096958419768623628715365579565496805348096921722725860864088466042993662189414781588262806052387011544977066433072560762507951841718470567758451636651795129127226783124418427752824079734177252818892575133743656225389610885291051240674653884323339014160210193722599740786562518481354997867070007649892973929209314539653030923554330526219259549981666341336582268883628318341446571083696696162391732824951644435263167625206933289982349429959725870069246703088566100903478477619124258811912642164612031909228116363820388562867047732121879135890444593407843036737453042123950395515039422655124709603794101557194114800567337636864717965013476347115407188978208818259058928327362893985474487726589618940942776086508122416139951543249326356923300476864170340807146449933059747758318290235416677261251199109445126834514756119009550848380194978797060535557531420151610736928331594337772546204222775607953846641103053242358096920836873183959551620065053974058155322799413647121645083293716512443422174035800068906152570096986902596796565213567485569881583446461016428676887892453592135841000052382640972126791845362823332121098750617184973810688222057019449063054200383557050429517872199295730616985739183659797974072675039619922529083666823963167965513701475429639664685611036206726003323277771203398117341364482422031535057333360560996722412057322624067194719906248629855677921106577817475369733062290797046214207040168905549598232397462949603852420131080953113219082073212494477173601065904894120084471648925695965234348360588385186782910907231182540554712759709703290372976643759749818146883663953909978703965198682719524336308968298668022033102284796644450634732546586510629492362915294760068325201697283044551564767774553437000772047155046662835778202871357421887667128573373043715901778188928523353437715293861287436921757273753070649229983320731007791510984932118895508936648353178085343735024996404628614845218812543768409674242522710779220371896317100973847818788234102738742643915887563892878380453052998520781438403852000325885907214466302749870441344841597219388893605413300605006346852728142356591374508851729914226025683069617924298267415338408375164617033203918718934341710702559298354987206620076119999591587131181643086725772516204714775762651887625343257120219051497244202914750310485761810659521891466319245283930437759946984239230190146720464968504288332751837928272675960664888110716119257272636545305208593453434036740851788466185399581365025795001079699493070604932482862941293917662601298305970685186785467083648243487013325671656139270061271083135656729741495055642108944091009204239222305480595587124729453680255466007665098643878186318436475954023632719868434757066629410240935220292012111495597620954608337590415281345124928045015412046717187955128226202911494993697339926589789044569172564945785436143598076940766022433026166246513183494973264653559146242031851312273675113686954337900862414586924353498729064863631235370683233304448321081505610933625628046208347065503609592882833341132334522489500146074187848067795157856412935391873628647260688922988053158394608166899320723543942555277449726020032679715359865166242095904333700429699716855839108542254626499494414418902299267422232285809243818135080890206444677124727005836199395078726587838698645288423574798614531781331490810076860415540297770062086600269173129081360294875713880010124177454161703242668009790165482765522553629571578195647893328240586620581797663641761965223228009825164331871749109943462177148003486425536068845686121058723098978818994940403956333981279043229058378301083075539825249015559432931984544952451172692928393030375343714623272230983599067766255091488971393493649455412839998922370706959148273917138574831190173344549214348382304021516327386280156502586608368735725425476861177146250266561851239706067136145879431109222861064034765825021491612474140835563621701575329535502920564101581051142937487064457818889916468507587938822803629527438917450789760880200652875669148089708120725293501777199692318239206665060182011541491174815769780164407069229553034910175784833036330026096151395474365374078409030010755534667869068394415670741805072739254657944583271332424270839105312663373670333430714379360871373085752052445535668792724787437221291819443270232751203956282920934347675442101432045737631792280515284503013697029006365915608385216131067757518658536985209205486619553392481356466566611571835730681329346893777457020792567302047279501982466142017484996033310572680606767477377743856643698235573887090827483553974060874688021790246072284421456001824084896759519982243546884692583059962008485746044134007067320958754226119286452518166341603589197372242403305753107099914805406395406827252240345700080807724189507666082134029091181360427381963242740976827585864074876090112261015664473818837907146331098196818752963454286928897506866654341875364330109910828762211460871194781661291144297860145400515133037542952876754295156211040232822169566903700866024104837646495003564339421698804583020740703641507940253889380612656860232656134535337161804409100565931639858645653154011897581897940211621174588706191508147949917053048603639709567117580652519444931733034703599368093065205217840489374924757604286745265147539702908366795958159152041957065585508735469192847537027522650116115156729879457618187124509931240886371278420748769776981157410614093695317605752066037624760844868623620048387572121460790596917813031823496990461319226632894161394983767428377980880397702606873250937222521328946175702946403746061719212286560634945677105254516399256107701363111297708854049442332824882380142213896182132077960854313828999689326513356774787782882729687378992859549018762042197301179665635808186312609982030517946359593429241192541673003746200547978397305505904757004271557691018763575764046871773657274809380974958010439520503866826433575179485398451153439921269436253236526953134823453163687293121484207290369767008236531547914220612932824813598664832352630823842234819147399703812309891401088898666975707908594016580065082563598501742316938475091211776700496096475014522620924650127175612625436249998652714703208974404376287421827293692991439634703619953441681558383031553038474627502780257831869998664911024536743095271266048427800603998726171837568554955415086187146707252925961988853639519729841408811600214677771767764784854123976846783932708561613389244085453111049649974970828886529138848432829627762213417605105072968208888962160922061262646422799059960001939058162735448679861684342341290824719606618406967282306846649799240112479590120940639029880072880767056776030039527020237569296885854638314710317188649472914585074241786932976844831915739048356818519659329462479859127172516130586365315542094289808892140822499107445467835493448191225036512193015074974763148819424675699448279595862443938043052037700947994149986615662572506216808399938158911599171418889302631237211482555143082854543881198886530396962388507681642535675716818265809873695251404505409965491910445495529311429885366487803881711175608710000421310752979039301402764231888582171927866781827487733708102290522670097919483563388372690947384868996302472660243814895109491138319181803216087644180603545051179928735180060249081099496914497626986074106038383381571840414586547939600778818364610163006530936570186840686229603706123993675263260471529743015544807080601886633447967131316541350052052796311567177383800538668816169819657921276456506064792720039173344260435757649954256933540175710237230482635241903474834207199008496510462226618058145494042618863281207405420235685611077741737518555755057191191987875886083401350070332070297054790011031436039018572679047877446879687598731827437545084453492535948775810722169854590006792129741582015352697757290267413362306455876608011195047679058048995222764774534743154573103410640651591328121545734711468156732720486420424431209534737205510821222201669013013999464246944688702143126755996072393345007523156351816146469694659315484170469810534583114714968452203319579842042279846117173487721665472833237028158807156662764833701977845587711950603266402187761112167419537644360856404391167793324034606792728507268289099103971483608725636000999199609550396920860179797625295434260804096909769035919403198546190001140416042836006208648126380261568947405818647099550144172135184422451471907335799929575869202383040162506346826316151137110988873580752952758953557830328139490413242661378028391565855296089665632305127506269263575266642085043883263391167641298177480829250277721069194438180714668192684915989973670494208517400533966191514021862502179374675706050409228072001011908150193492802439711706341674713587860612918690846713723411583066679374701530310197396415746891288306902177665830051624287720821732599256731428256479916506618514236577452007356095490885019159879438862762650332357459208087559798014313920583469566672848186322582370869493753995644207249070471205822302199958163279577173881064422810350785468233444148220503465257888058859221379047204954210231185777865497827837680284696607043955574429745349253797615577582300776405784924139907757228275700851477513993845578422305726510864738675309914543329776350983086610289129096338160518837836691661145989714730546138208529646108446896173563905872028011244343980506683935139670592052396552203568389583828017625951340565953759511504703399760151775285807128013883639921269346690535257743261635828061855800074653760177289819749198699535773188386163433100716888745959776238775555259670794760387995310046798528761453741406042285603858987843251439243203998163165252054813233801923661320829075646865029947161825701972598460459681022681403455102809274658861396414038590502502138255088537698873131734701507470649386518379415615274019225689834087919768946762582908433537346072635319722724442666131299818433362530369340132350932073426952719770565171800670660253537979178359553152513285098935078367411408028815108626862536174213609938506090454047163401099209923017759614301198496674745921001499079216288892833571090933196253875148580915934731685084782080454836881268656998284228036772711558517709407880600849688560375299358425646734495275100477672178606500679606311541918253014977952202016911879848926341010031512167507972508279854049818252792243041401150453838532553206198378202807711294087280936909167860597346118401522680963582169029491277887788596916879870218093939160385693609175369701766766778074438810599078600486057204914020710512034947397298012875092872874256593911738762368985084523871746876227925082792904113940406022567832704925850185803206833501200721117921849355953280956781344315448419360735221792725452803889757742299691645447716469855996153001327919334614717182284439857060950026804913240716885055926388474424805283571217265533293502846608009914268823169612164483655944335640859162193816218104522443630816977178118700859439412811667873373535403131667833613416192888126782232575771652820003339512489375386794812775163134003683462656950877433882948290521766331495128578718062423468765683043945121624674576852546064322131220838850702682104084689308057766598696914516547543088588347864693582377654358231955091814133051120381701254076044745386412142611841859818908692738063559120494629845567761465252842882401473237857529917933426905146500710030787270601562966059135425571015820163597936000787074052057125230044115309473345055189318519320507312160748848793727629269873184730505590021294711418130297771048170332015396439332940364964445770626538705947266072035970138794593559582305094294065958025349284007298148975677770438694528259261310088269873129152184478827047637819644131318999880998376361904667487562133721256313489333854431598583914587651523260397556859506994069397542739441249193074581210374407474843985783646302914883598164943703089915176285924406259374084449927808011748776128810542208688381562429423273113443411549529254457842359984263671506644704795968484842269429467679478447150687991254939538999961695192651991527941975023326974824850776067588391225936757495075310241554780121383245044257697234589988212147105983081781067347753226684231336042148134796510556288341689009100352546261126099822923142961301012943367011627093177841288709417496899766541329634163979969461694643619427435502478937168435327705700747111436509059710610945471903017312239397426298155301447632852620023874648178662280503128585135815235933247390680985414186671336791009905145938194456672815385768739081541942296343648088625415185154367500475789562325569076792090823478798279053524886492763122230474646588791571443032195741174011419265429426670967306225448859625591853794540763733186015838250295630830599929405952662224803366069047470279875067774534262310000923072803909486149404309597053002660094955726877391514722914450462200169472503637350530734101100692763368644869802698193801878710811127309718530400282505714339049608205068772692316131746519916858952567979424473261417253246844075935707721087855257178582137593988553611125675531152661430882385784701584209572281867181082051246020344526973907868457672970534743035356085748070333910980091681462690871322368807525565371866260938058977870303931064556490185824686910680095171078430501110082907262149447765473608750326848977586173714730664001993091634664144557264895045727066431022706578945071811374506948529224972303911832308445231718329567781606486556682739309634659009748305279747316969962397439000957907993962082544420630459901687589208647354927688278389042668857247225452301122473785627606587479966308944705331212131164846689039012694202894720799623844575937540564325625947843085272393450086874581335173841254369265778707813223334401608965967810521790979224061494615255098636416386214408602916730869809531496196548838343880739345982357464866513500502199088057396917182306385391424476748907603414613946776169210538037550731455141392524693016422175745599709773226265148323338947713297952284689587265673646834762717178607690446664894560389761286913004287636439394647059580166305853429819468409309285119115782332220690682003307732977271194956297888246599525509382805703079927845392786393520412067592569890860582808430482022945027780527732851578081512171602993642146655076907502198927546975819647599055167680771460871746905046849426220587849881799799448091711341961182277811424095482058449893541575517524567853462034130074445400788288009634463104642716863230668476903187590064504285425690813745803812285141857544032543265428936585530345294730463636191989111468345020546149770251515362320976807462232947432923413908232458635411656950530262389246619138884552554044792177734092358521517002462248548414886299169360532900601493366481384314056030312003994991734903730797365075870006418083605341271060235602338705038561308215542943460786827617737507872163913442511813918658111088649384359746794446345298009888681592450638425688886519076927748591524358879596318885253355317335969474504891296612895521001849280587233990203209234471825249287163627694890601732194085532411761876305286938839697459426363632941302331316722725919490772583702071055005474547899469000908653875198140913133044714732644206892205487329913708139606150798757318634913317005796553595536139690868921731286685032679434454497768185605133364024653755515183379301185389422973663597530866017108643007881482779786201651853081722173202717669642326961213041684801878032392405422455760057923080471622261960405150959523544285966684158942882774149159234520297671155509288606574995234862546779729821173507088536112194128791108943364680394877610011199174063713665482549489275856842591205505963562142363712052641256445203763243724096261380710258075433014028232506160252118512103479040535362634954154645818470559478151132095387757350566410525815131822148802349475915397495581140790575288116823093322679712727738173559489925832219836115340287768430993835361769590684789838316911391820775929881599823494438281202271378314254940586370887149483262432256651105670929292617367872350781825097077499803180577903663098592866269072855740439572326493343048812415295872900315911649136988372926301922981053455369060603150695523676640293634474787232941253658362466349265932434713155992117165473296793290892761997293422622358805251456725336476309233816421497500152929932482744432589279526868496654521132891424925594387454525657963896853190645661563208802428007924283444135636375458844852802418337985141086338881958488666398949981575471071874343947467197445594578149566155870883958030419973733259581729738004167960997895937535766341394741216046961239262406487698316320547427878446445742450578477624112776331606366418342445746931127668294164801649939621896180719800595496465689904369156012384748311347918715081781758282078137423645676285632285709945583167493849475149058290608960288507742246338164669105711474483826956854955142795261138501263101496833354798467197463791763449085290992992884344560573852956203747653178676925192509098634946236994339636956365062223984598948142209251625833584180147491287672785352633261931636387288841815792756287664643792911556965656646801317503324960367121303574615134335906155356730465930971774886400843427617991110505463726071511382584705340958825484972302022127968691561237677011869426364053418559037667580046946930045224349295026082192568514932412609733582371563347437803073699728145982681725343454859061178982673619159164470268499181245021878297788207718729132807016211024980348298316014943589903541135964571536819646092508133161396039845307384451501493605592846708783934782353011286692858257035284585491269731334501468580158265747471442305079748026361844984337562955997073264473310008059768293902706208485674114976553750364502818288534864297611896465842597878503126904980210237827972827179137708708032674146093717788744439976547986153125664252228973998114939727929385233049240710247874887109094623220671505553022363904351834057956659890688878147633844367688028265780918217401057206864288966501846762319110207556763931514468566959175232707632834643177674028792229634723122873818461473090878093560051507080342322514467113360349932158055073440340014790223529714555614760292979068261356665791525457766691904853538610933174319997047549739059964187750292367384947482473349782095159864800594708967680541511010441549591612530429301330148544545214694280703876839438059997495804449727604627572447728426509611860458650775093774150243536491751561433227317592935864008666085457218931251923774392750236914014629955183851154017555209291935152916023174420249922253700726443301390747631925167903953592054082653351290933350062256433940695710890841643870557755908130694371332892013971904650026841866113738678013750913365630780861641949224941239400489822795309804406214332860894937551157098387389553725497389626409220389983927506684876793018362594646454486595957759921312362177478359450328245443658352768614097366064343927040315390875119739381567124229861446290608864495315212019801430808929855016922392321370424392403232678872536307350422982821850757589543993725119899862681989071433856269070147431719512674951857986954109377748809108262898527656622968701340217108305345421746303037051076637122543567043850797910606199218092784426934229191453965730562015198620822423879586548321610044933468286181355805708015951316996743410192274282899603277850609486448684693692759573884570532926641843444572679290199087919853063375123405771547235738977658861730895499405845488036032889007401290706217901318401529656278281523119575548465909493000850289997167755778925401552628170692424413934008210381890861576283896170233909372708471070363314318400359787071201139842477243399292757126083140053115931879281182313372522417967311904568773301055550531426406852407543023168903845438178665697869923160913395470183097470808830143900771963744677353591121931981428098121231493547954906258295647777411346609816418554207832712782560202757571144288008780025513970480122369478089937202750598979890630111044742923597009343759871544505741428070405239305318088181359264264300675873201105563676488785865424526727392619510927051078168099829480659746455745038334773334755685415139605007887029254092245126799531533616437568386139893828530890506445926922199802090532830788636622166676917099529739085137345165486925824889454654669547214663057783208482852140480287415738370037053217339257968542914673575084781538919039350781165889763870732421486602666945775818578817023681233683492250785168875579539515506511661730301070028683426930709481772397614559834961787437419551108900935903647582545251694438853743810854462685832237266027684230878862110087954654930192222230717954278612028519180952042519067757384492358881626294783005469977218362364019702479701162317115960917293497783021427713688812712315628335281836371324563141914869985242226819308972087989588888813758868521384156526379627767171829598281562592830287077850094516702577051595487133337979739278065963830497955636962148891385481653083519025252017388306252774820290799516383519863338806324513217597745452552892533984957493545668188474363200541661563795474103945699209297635924892240118471578450086803506460365649892092780303307198779373642257119808069782482850735073568118789197054806400132641387876173435095788701388975248070696196053154173469497356582171426575840941273939740026590711334012826993069097253213686569558471510032028338702606922460629817710520205163705205377381814009387475835021727973275243893466509808091340941553364997149731465354743670524697211406798680354822552396448394510279951255795831941697792130583441704007672985016137889514954049119235817582570523064451061165596958400408903401180941935421348814484057599266337854219143580069473464030684995625414075502925527854940048115617693982070091738194664809248493056657683379843878947106624356030280558103095360291344884304626168028076408165057484713767562279447183546719873898677874313019346100577509575344118793175660146521491291471263525951218558892944028130399325728380741451140468283826645716919135586324903295818361286497110960617726164115255322989933814039430603689788253394425230679387170198205164234512284223259646368460675542683002623683823297249994099372360450752097076370442473731483502252716916647494598896221385397704356510255651213404291114846450240744926624471707387265702240580591326297411530140498497407374879896772232906696503021419220351641856484661559978811477398390985732625592518330509407103511306280410229488210836916508607785618736701386425404184472715353469911436967193795015332514103530333397188441207570416625925318620933543431320552699674849116858447655324040726698220698021990374180686226693840475109044926360232955945380988658491952749624371405335276870864488827185605268947652757642590292092488853867807622103301540529588363117135961894240280513328424443238677867930223758610035728433188215384477617049808853559387604709550732440125156375010619442740652696237398008865431014634773848775834106813242839205375694337464147956354346658946800298884440461038005930496483646614422487617217572701365681550760805684003638170240413452562173743721719144744843053331144277079486059170686659803137120437105501658536302108766014247625482924170912084182829096688224138007145101462754531528357904802257305756720132332089902804667446892713140149994460741504563512831851030005790244799856543134237218793971318905144665214538252338864847469741020295922561951210601925367881914118100954514183247564918049164507344659936748268368749545677398959082007793718612996651632740077182169239796120825556878037586389270500369551141566010681719446609474000508632388162951511824869924976232063032386822467159615976753968321636746274789738831787073160733261223967171411543225214568029356885389108821114429127606555543392843087651353708329255952758387564844911163120400638125197709960433189206635469464313264354674687357682634240304010280753782071227919295125412030915493704056222013281106009246131702994578249624105086766853730238185017473782168609412360660250442842005419738737130349391091274950066684654525392696828158486972534247191436784822738038364048798314339008961697987624905363507664081332430620015067994121293021662401384982249952394735846087024466307696725455127850136172377508010555142704499966505034740707764446152353006789448752523847197238315717174698701786070747838107469761101733411587420603713295732289292779404059558060996573740284816522872195220253807752529834299476751892883313947414920663758581169910165274505345236991543549365098315793678793972288576516620250246020213716405850449891861180544574264509933517482498870673315113375464040487270978519905929779395266439032024366755712624060802996765591540272359503623571981800339040424952735421452861652550664610943762874384261526109769889701366913168925400759031364082397514374987435797812489529012719531413468306576062963408722715626829262169666821189463531669719715080714718044914604326570110464347954826291558646174768036600854838441940996152931372942261805580948714485906944384054876880311634865150201646761294571905253886018055133165075785858401871300891578100030596198185931719516668318304330567040933181727171363712297834834789484930411270942454780932706151821814608518807970009533429728111971331011093493094638721268706046724120666046361490296199344153188299080839180576209164945343371632978565582575183197597083756556951980792020407714653653947060246705460419434116810116482570191530742145309992472730129423991321077660974744507610451657679303950219128104688919885166444104161562288117684891551430403655273739243099881457912853704135730947813503661181284252683249166896345524862444292909527831639260644096335455099386948534191754771708515772212510472233398390889185047580832409981112838000535738189093245928393618877198128914214368203621634095263168480223028204149179367440769756027837830908113555895198115678048408141549436836903681665784607927068317042979453181241541974676693648472929473987916090902486780192274985684760696738293282631854935462471060206709057782435784562732080558587700092592965315135415688560493671990158312048487808730458416816166289085667854514143532740360049638305107004359264770358330151901501274760531494709301886078692716335274559323639907859454265036349547171261120346237243920137618779302254195913887356232443739672877274040940063680110563825132602283460817005247615031774624911454559100653447648529729045496368031519410982419353580328601217662262785156391161433052897939414784619862672427359309768291003441291939316927586709014753211741485902060870442474093975454399612219984499791925681799018901970082836463929263698681679400067309150207186452444820686003499030734089142662670421125297378140724978182868219228567834747870908194031018122825212459121775497427798279537809001513212756054193579596563518650251847167266784922006842321621613156557801916884487932712610296921746444322487695355547824908830831173164319835688286870894281592791402476509788294940940633224621557071655930719417668983158224071483603911515411399686681142985802808247145000025651219060060136197245397844988955842578234185566057572104900588565324225448921980578998537729466096552453290472778392400146603805219480263804802804221369458276023465146103080602175963475225562911199168577877904749287335599239095443647846166982947350612070561917206614883715616435526902345531792412658655021242943427498904323384129412546493954037003072229712951407567107419170155526431554709383632850414318071994508179293372978524949326131683215672792070771618298343446065865502822454772534092703354116718146253438350969034916226362275586981856018775117783207966007179471619576543623354095873742376607564667971345741400991396165066668523212455387882717779770289783316511314493851334628139498904233394449000442001801947578597514924031601448951906006158075776327228407954548557438703849602391209303523843582553835305437186973424058183236769853839367985229101709015351830603687622122798958696185555191067960294242618724048050901330179430766552707476627324733184341783097003422224212627340573073048264717665543495723190024996276830846093051652373132721609211717504062251846268893323817526051738180438190166983763657820592847668161775693861472726180599938156484847172913137105342005174534988203152232768289926899193232681576679487815585386433210082536084773391994324549148130831690742860311085302421517320955707466507471917765848042878230425703244210685673585349246846528293370840740560119682408898172447644259182707594522058537581802096044691849426363542718020632311743941513427588013905028845387625035623943545093312911939156244685533951203992046543208424981473422777318857137039173819905340288322180300504284580155897887041868179861561446084767244671737008255151263080096315722086792300573434490721770801799511611190149647207641002655025387384862886563967890962139238342056673310215596352258974917353633726901626712259015285574893572595435238431858353919564760616740769108528971483042425554407470413108880391655173921681403483238788571475377951603534249117232183476822021508740658176522590825997466038746114000359500301530687971238579384927653549401614770330428989851999821394942476319064392118865438492877793806772662931125267192929096434675295001486668512091046886298022197482256091826840520256572218379851151357109777215852508799852300569256343959870259696539859101759884121789167762552572276879690800777298568524353346024841310686959375363354425092025710135914439403067745613504114089865790509045936195504170982244137214143299527534159931610587214601275794390696556417219384154348997706383483156223479623460322085701341743297095928944226873956779413561224235457638667689438401420630734866809466970328978483162726785749511237592907560128022752223522108761887665402215381923582727772057204938869554854543366936575140289064960098420621029647007149684449838191980546071389105752809906027149051920113686074054772204810526296414910832201381532463566547387416806648894348363358741709514778876851529846635714517693890914418237188404106547904706210567048881904667181411185793606626613196704426744067848189108351841694101636826758774388780299585124018356096505910577347622195548427625937800358072182830251820476964190485812348191369711595341395158581740695346499747374747033692662099554037590416747854009974460104504551636984287141946814741192141111811392536515632575976636837882216694071433045979149160036564031862225211978671525364121767682462073092860008354047213037410025376002456874413440473782579937434628761273106446334779784772521695175540437546611955003525950615679491825516991968893136764452604393071287079199182142960269140182777119685134924979090019101136083847138964808687145225693941361592583058550247626120892843108599485681514325855752385142564374521324351678744300691107602810508595422390679928849786870610875618532757794503461756404571683760411613604928077142344414916402804060253150040419090780115114807670002365537886378499211467645639692340126017656098640457492393719426708275087850312847313080925049953410728164469989697610982587643166090639183152646313616513737242703518350327838678678165369182152411007458603444586978640800467619408452795503980127033506684814714920765899879134955104662762948580675400466061327963614270727716414211314565052057672063651170017196554356091809511277821544533426880550098621979763153254739791361516810266581854631345522686323641353443617568217710539895546537617369879073567553365239025225034885003664934652433406126274412135769969223577089145601017179293869569988603313473943546380058880256802223822676478104863555876470744113263029738603956473457706828940374061250592732841348928581678766447896191860827540429379803331046760283971976245692215509734172937103448559763452592659304079664737231104551348313424054459783216976927388040773647068943942860587987623140914874467663370140429915797776205324161710286254943158433281296396964278383564743115468555684916416925780026860526171378469876357672640856824044780643978940651022790718459235880940054344852917251021892428792765869418768824010682293668749404029818224662185968278702794965635049895369953655606712633827729826218677019524017360775736687242599798009338534680573366161447223877256695333198914720483370241923573273766012134428883187570389001740436301288902113612252134989104075293813908326457897710415909537829737180218960184382606693391032172357691426946114664543137408737002744506432023293767354502814436624139115658319040613780313378737238778476904741224018620441440347780928862008623289530925722682057063484389238126483698742844358534043044032568117228757612376803940198870436784504316878913665013747723985684705841260846583204462153199105869462646548412538195898890882209482027386970483479333889906287986787050287577704645274836739929179730254672750470707077066748769789586887969822954423520800026189400677326927610000319718906458919843599313687914516517615834142534865594112515137758081586176797587938965502739899281529309825093380091506785308015714180232677249833373448002329777136723968537847157196631041099439945014880356095664355909346149493178424768953457557801533017078523460516682040746636369979569810756264879655947052520396369258428684367133782576939726779880273689775590701676401231314423894273187340905936956328064433421614078590110285394656417883168755789080511436920899105339472337158075761299436287890140682062435804634874437313849027636151561292301914872547686694239562391338882754437174075965715448198887836295914675766841013467075973772585213000430333747648058007347643050888272869455979501538608923380888825815546016987805015186050063080813100042110668644865985849134194746493600528275495647942614343649658169555640511556802511397605074743322347488220281812017500564400896658424095169987204142549149043609081451408456745783633505915378643549404142938380259610310435887260611807636369564916500436423632682886638689764720367398975706826160118521914450090015727106288291689449358983200006579492405191618832562783311408909543803531968944318505787731713920372748610593018863777942718040451005790514842325972918896329735379150088321001508526769390568404243587810991349269239875641448331008807644597322619027879587380902697334170688259683154736197052496073867174911225320543342795359361483982725311558093968119505492881371579978746813419925553453025699073561756826617316655008809376547496097534236510789088366257101685080268164420409246091603334900421581926280419180916170359499504264415199346018517455903360198203197930599268084440928228645119044685615762165276028816335288159232437303019745844868489429041423918316386776465547375571753954373671876949872779418398040907814863013928332783416148329273692743185186917050254411120205191827371730734729301103671093544315030714698649340829470352561831352963120579089987787375703602690315854633570631005380355034262693772372202774343171265984801240995808794073186493882296727847666766655585436040814568917339536943612847011160458164623345490075733757958453162245774766814883274292687493378017592142000518274958564299057920348988214733750026777039152782213289691840015237737326862622560523522747019889242997869446593204781881723331301143081779321231484635688640918800611837535148906307614079108020515225184680795432478827074338279600173547410488560615220438481731693970262067378497874329399693938131453901533757304902763123407264584991552375000242766619507048646376655754897590142295821818903468491484105877310416026040395337249545427038344102020684387618629489750006020056163966496039365481799655716832920225833431291074385566957687233608747099849241909214821260213942775618582494091898702133814322391462921871347018453693188761391532360937295992288234078923121292165823432392586505962700461602648861578978918777871717550484040297538706002886435438851734323665219366614542826775982948803401356606084540868687494288946041841620669355842241519915019479273919748477303349576175068941715537082292029486060934897470693930984845355958404132943944264217623831869800234876550199806525477631791141486707207676235026164407643389476427869049262394518778830420818961967355762514439285311781018738511022840222484637818596510838752944887754675569751951835150304716903366462117181664097724258325378133909891461028648067438324695913370325202018042893307557354814461875925007784319290954087935799286031316081841533081193605326492285038889592924983316250867878292833223221596672287352582106321607415067259773531697575268712624813637091690962230978683295681945319218513237265994673517015669627577850776380436281438664077467796778061752175765676087683606415959510258789719503822493146697983514250718933375488301458955958085530577845825583604344626412351604804195169526057598147406577257132448437531004676308095190206816122771362271412571843817815234003472128438310532042500743013444435139681794192600141913408918709114002176511510124352698787400329548426298129400455648801885624705298351162629545012480722896463793344540011637286644665629972791664491017604159746686845586684289470387193067115046394093664815786867437406249482795524633499962263969998050981175390865192128196945260729322055136442325092793870083934753044166888511943782466773354896264134226107754980301209962480712343947051110589089087791106983090810032834519041800680679618006791899572713889920867560517567362679209744998918185458877451396500938383649004579637611743021337870661172314940441335843882842327643126059680318679228399229486949122346049914154100448089030446099172444623813553668890403807177564382254327614775629454632733399358908196225706735165537934385122700267453618064726375088231765437123641120140206708548118218733942810983472550027727283387419400024448090545945519342783600395242283019358406323627957322147257145585442877990412866202584509340391396800327324907945526030333741117877464324807145176472791020808131712605897959231059751079862190901555747804560766246369496313237234389669431669903004676339473941596445238909864161482865906556486922775096732116378116577389466501095284095218906028233108646871504689511582757044096962564919477452435784974285052173477698516055574286808934070256008298624342055414630463949280656637782716071164380529509994799510346596642711717413729176070912615706501307505722294468912321073253748145824327667914166202721964834152259451559215551929585367346726421145012785270284941791802950462572638904621321757435118339654116206960021081398086733061069196891856535707005585873147559260604253341244839347231445247886577825484123651445844776654286464460279749704726717102283669903246617737942071150574770921319738641225273583290973241642073924712836583875190721508748033252549281573404790522380587404835508252771080251231499370607431817297679629233631119960347020846744961066985062683412891334074116984155752972519153437340277760100482367765362512394874082291695962782623199875778766084863372856367072551972539043467333524195477893050702118152396268520377352180917018906108095444628476729929308257579565456051283627976138744955927382602677797801042860539925890064375944014373147188565128520898929642013482725254397371232868600609598099357136204657264266709642345487398677470958063525302267055479656139023690420458645396655852196226096823705439972647200283278113058730757978259862701266375706248799506305911714885818268176594599826017360901543673923907058678434192779815360858583342537540853591715546232457793434129966003219995434042473335065160975896330008524792826116741033104033245842604309635780945887922301603862230735735911917471578327749962513367638501915170295753234051101215303234336890223025636580729036053369553973412627417673261014713466775413754825701539611843925750806976264729440508092660307204003603677198837762017273602975510835950210125452536164839017944375839694510513750511631561758994897015304317120327035411257018952763163582436661747662553237667364106377406140075039929474553025117970536003874164281802210978803598125021844332872201491128962674622834582690074207335398308690596610078349612485371554296672546687723773858805907581850526161389700330758552069596432705094587092474611647376565542906932837314413872526455462956643038963555221965791092965562113353643625425524208116692277365574341043636037609902641695367353405247260157542993503720366189157031269470098612081176382059769618719611824337399350647539654970962748008455113216618880522432122144585692021296614017125979111422348626057087358566696682853209724576803058699328292231676035370526018616239385048735866446350532327693506300712144997206566129957202126242498863812238827188518511826695400586391533955215427373918418419211934754861903369996088481511246235846359282362777688959768479830765881035203064899693970056013059436219883863327390893820454139354037586744704403811896462634149575785505427347317539191740305967269103568314068002297288404779917511911985581222055433419671341534518718778938538865840558673838912861145532419255103086790235391604580419339285964885190342330837705195684169038934614211716784370717790194520638930921273219270643240771101424864343509450103172242216087560796511355626786531895087617439389356549867826667312412040391913831914938468870148981713747141932363118276308260831206411550101770571509825281803886580371452241642310034399156001300845788266775482615242792195315706373737299988239842454829498717213445773566430259441264175461352802467145625953472874516024647969158432854594362789084534377985940977495932599304318391289942448533081401234549993993495019383370622480537634672016906337449169825615282073539787479079409323744314622285208835771250142723025172074223116383024155926476763755924967873128293539392683363799714220369289525415532718421955430104710842325235332895188289959704711248570244672470194813531906513814140219343192511493336821103907110552740019317672762795522663703383089635271626552602018266368854685563490218892811843552790729848525492337105349713208019851981731666664886088914733022455089217880508819725443959976742118328271244800823471311228412137544255436962859405130080112989657562570153693080653015968387927612037366926549674764880074545106357588783269880258039172092073084165144543424125210496402532041521181004472768213312824448753327244356004286283184304646176555404565458056959998581058429673461098627825559354092954550000955822181248322158915450011659649065097447929066591870617050983930238778389272218938978763974859808585346156033175579198102040955171183442181994329809276228186491811833774402098843604911296411196005010410425703345845711504794801686245774954615920713103839427983815412425184488847451971166008670909632450828555907616127559835007611882876538384271626262811719462698175837456165201776470692827336182158827958379793076572292290736290129423307747318165676903380991422526529652245408252944779582421133158371272254974421478470167895545540314293564149789781410456467999023628535403407433947872372347467754804041558230769200929798658071230807574554341185375611160371431036806599640663596616423403928743357005031038764498420681578140424348163233515526344233152612281887919775575218367726016940755251559858862050201999021207567735116888722883143597476255687503230294031279469756110925934072975554560045694515486282468850334704698192926575785336991931157230666234789317181101319976212234934952128433473091273849026806973147586473033148027112414787870029720602441505045832318556747044852944911423876604659640722089060925600768923761856087709138336840512058379288137289570590722093460638448129133955736093206351667736971375224263023471836067593938609009516536858926596375612937544415475468091254175881428270184961207208377083405470109168522936744773690824752540097995306999760663770112995757767271984440036423978982785741203774452930066512133093011693083381755265641288741810567035631580864684444273753631931382181995444065998125984032329993267747918559809056851599701762632370560501961148599033154457769384845994957790105491965441740505453065698354409117144428438786609855338691228202713727295951534999016236078525311141074790448847078767024144818656318713795901447532258495005601108903745208032662740760490481716661084612029074145006223662622075982764261744545005618725674748293062260933696170697051647748718873276389785462316777600910872814446307202790002372961463879581686751963794552773767718753678489364378365698956254898989322516808752627316449823779877183301572321975592952158827804050508537697497580122771804348122225877945902873828520128658171435996018406153713300647679237464719266387133873654637506657091290760294938177334608490317814457847402908385313643504971780839109571963150025429441000587112315037697166300313274639170812888015941051022672908311710988068925102245359731669507574189545972442087274420855592020586186835261824587673727248876552349893760161819675119570439259758560402254240059691952250378929082078975606833598124101104931922830593063340621530023303456741483044063140738956628184493397760893614641146049089922119702650471108100146982102153737830965391014952989380895879896219501234127812228409281011271824446897120120217286048877173630681627292031637164624741563674164374910182290085259439679171782263232644716156086836554419475181016373154628186626118049894254764246538938931395596922592879147032891799851665568093859651730360844751638205639104493365971090196244578147717077041146363334487371700948247985790844674974321944898243494299420357390464839823897081647328514094609571319830236893697898276650647678252644550391981998822408433206372617546678383697255445810148673676032999101673305219767559771887854546734279750039293840349936528517206371945090171164556599847723296428753297553789536854578305967432944823736431776967483900878269818681108535576401531746768723079786931147905626153245954855188250410646017151324324237058067089400299520001388666090562559289953493577067753951405275597312635712197146055119670029406028962745266998957401624516181509915677147355208587063492630347615085838730058808403305198109082799660956308362447241352329306136150214915887530444863720110815575034321918402994775354913509753326809194337807566068093846259740782255220363969631422730923192660919514145849166752537164537403951268236749479439041868730454058685877891194269046039485107513275757313696087186502635610338631440855980669070033439856540212627979332142300201555649962950753441816846829672647110746165305642533706106822490395480124635213194401394737432055546060212603464683774655446825875118376697903985751222927861111007439867139712420457081845253375994385620625526165578838776919266552072412362023852177907144296487733914632025662639509877104018510751812076666588160154005285367818536128722417770240046690444318927221496389476728266321982529359608179965378511718134130369754564530624929660395250413658516291777530638628488987502905283571274939251715727701338445148313067932769732466810501374521642664542178818425755158103129499005756254273253560274427649348819437580997326827532440036465536442175469992232595162723004273662305880515811778307601222423437884044992128697697176407827070976164605248498939323780111691829592382882930875608189624258343018616259450235313735943053839169725209985386137674363666375258334037266588510531683009064346463157106554448164075847416927666698787486004665446565443346537517019345566280511816026696629001715530345430330196122140165138326253553308157386315396264839027694921045048327231432471649656539534222327287008163474104768600937734134024049504081345069378450358425111248261851357479424049994976762475057776006554809130880671019025622742822026249918816638940961741260520882286454625345920993838312278683976954946253356493716110424311239363409237716301729806016591969490814942484854303784737877146720696214406417274497493070509822070884854712869175851356070973834302303904441028716436970423374465872660828258431607468446626274503671094202545887996760225548233595203487879660117158569012016305179094203712177174650050087202158244335496360757167929271637524154581812195158195951076528495048010032231645815683657955987645258979362478410347507266752558412410814213727171792963903518803806371406382619368395000771919335024307722940396678761740536774389786910993200673343099883568504504058225435940004507205525290211113103035638301834192650461131951830230913077529740533079952339003806987522189907635231443182064906728604991514462067933010607873515476355420278330096722545700118748548108769842445932944053497868934066493816306083467347110111302052072002803208707979228388980068742844625434237942521144826530079106942689602832953332872466435013797643719975674094329745708244526226819807059445971442112561658975516250351928736009094472551312008253993805086049600527067170586543645291213541955482982317392406985081688222216401872328681654040876907644983020675261724504402839186805643701868596710018275573052903207752055960262200404949110178934871701561708094662337771764775394734986880315902823503860393067571200755686114095105687490528612091176324682154129800752613900741005534460182704667439001236550503929841678917901326675613041344918763609478984417274238679514052516164209278858662387802994857319848650689886826594745584727554592362380200276144749803719702532323110070488004037732438600190540385023796155800268124086912716294925077206412317336760840015634137750876189616697458617194469851753757022717949133237574625280209873797821016709739586566966000179415301910769976454262516538060148791666217209468157373714172892892780878198017836345928069870452101471948282129407526147107072347121556636785927403418778463781061090953540006952199156827905741390927530437479315846168912330149620055466132216291667102345439606903050264477309105498948570241085118375480371874168579286539093313583204180415373087817699529529169521038949219696663729488694635479570471662324197896781842827702579092073033226876836807678821312733523171992448935371128277417902368191094676326000350146102718853922470464415736571144809687000361302966391717998673094175004149944832131966369030316685171550294564042274511477685843783343770572877087935510357234903716322173865249221238130253755746598365971223037932455709767382767203756940962311811745096521070796623714081660620626505996443215259327883973348196124452119169543693935851625879070692680675286037533017963000065225573495715304234435830827203035910375197403334587780635282848370151306463808994245290108207218000570592411210418378437245028995764099545346472473590637928305056527204779082887719366782391910368853274466537761005257524296681122612600617344848913491140118783601563220333800201858760578676730611365181330551444910809071791123570587163848841189996007384122023409719607853773750544669537993160931361203874233897873323137052376816516723481840177114874992003266505735553374418597909237591131997183842648885865990873581711197239717098941845250291191758551939829232897872824726843549698888388117138107020183868079703319455134934888870844864279357051676507891796455921051451348936025814308334514660369230095426302496237804004768240292480956817379294811942296018980705380092539466355522018821926472933171209448513990858407340360441447318679794608891659694011476289885106334055011785261504080434999041741191234195419529626505828563805019239888116323317795680572922631213712300641181029480557662257988373429339657228661385481307432903102151782281096977911267992818170268248765099943752133885273809756496528801608873980254896416732028208643555834916980331924336862774652793692744760177260096555772313507039544798530603847015190053642711027291750419146333730560328436113019267616610656472939473705084185531479498007939194880162687841112128497632864029623892259709973599167232321705674292310385240159702560064571883488142528427058526006898332220443443234443782315044609542453332369634934480708726261830137099795809041774325040892315301842543057825421444167027233608101877825174237503365866371289826114365358072618395972425729108714706598053183967450072908144992091525482770353136551356881915426317047339417910364965413378437860424313061360818754461695498607098534998815093166931202737802059257372908588693713202787645580477038418847144373164640359745795910463963979168705020221036468830699911679731110646288457734389408939707595833536424093179366598033394306706498325753254985087871445165782666270868848410809921483923979901573046255095697700254009871445695624616268063712687057103771601171039812367547591233393596082319445923625235018238485149425034193276754730432974635799959178784129757074112069963665881661156345567499076843272084380910886720212449620277317863722686031830905063439617361253641532154095475130636780741423354662487873870020755842331482430993813829677157563666291791698461211194096329776786336178765190865958929898024006530578386776541864386824815133572807518555563957551181399200986101541528302648290546110123612252647844987135738633317609331303793727916250954178964639242244076402722007426018278521699614572488292477731347381577153041532629639581643137961997698584762118985800341193069971456539473394471119183849618571412527726769802360020453660903956339769960166958021138013097226172853301739723143473317700073623711756236750788242940649516073630817214807734482396320647010632471919529281002359355077634429972063113841220036055444474950324923271815472068091144090556602692440858127276954084092015810872252260485941080155252660914488365413404760332228754098683670039385638602069544728498937887994180543553427512363053764766857274053174540272127154411215750006754772604883706839021406206121017316458707526652772577692891606650872054261496402981918967807982630333688555387113835688747666056074551798363928494752808031300267900050834241685569768263534889598720617244727163388693074128076790219724961684338235135121096614041555141873625864352318444386047161121658188838361280827955926166356230417192286068943359535766223041721635693105130243402080915554098772527158118127120435616377957906582739135167865559954056997454546129747890840557523340695685433849461596603510718387552021453064145861091821471989488514096886774146072137148345358429099786319263336916503991754808652036384839426753479559896442930588050856372221749248242261910840438449068243522691423521616611149981757231912742327042160867545367658548636408256370408241884003711982256663298785706427421714060288934066235367748712896724162159801985052722835348365387745322313943845319931720091461614487752285642932658430645906231176695262124550878470155659907748367813073366331560175427885142433860681527286161661120291869403387318849228511884597742204330146306305252534455725103371733228820793214242172074368974977183057153815227031524355825613085454824784489545223921215854043991388538742941031154287161740632784598442363153776710927008919293045955876385174362919712533673007420593115458499452344226186770482499900520424794035040692189177069451840556541399037616374838098411598040611866984666690971564113650946501794441271425041936738971333445785192253077963113362925361865441482797413858756732294416481833736240699390634847004227151180558527311644249181498851979399853373866914707802982526760777203079793127637033729696557811773452305660093968415062895302798525705242735458742835503452801513510263550516170876809883646225327429226250202222724664969866491595252465674787968328804475017390819429975833345606286249593310540005408587431852212487567090252102363609687288455461382824097153876935436712787504002216415927162137368559296811326467281952101875839989803253556624339498180544205035925368782633949999059238020223219392119561299033062116396102836182387128186799425634753219765607665580400518973158767980123021189402811181959905663582409296734378483415053483788467332257481446111007178014886125264568614814612447116149810974194423392377865309273388763503495877305134485974322228966199358879598357803611374024844404693222278537284932615387054496847105100164096984020791966376506592744533229069089283137566077511116410872863005960915179748617109918247316081288336845659015175001577172195628498909256639675670868186646693620387219217175429311907475731187569769819289945702928414280644431952855077210112694181516643681512649961516985551423731172382748366032456674001326045394627555889196850409563341898011582492167372990870411017972605456106581458736634986821149293158758341976723325262524324816939850702630909985881377962121391648769011555130592353673859791563125750222585832329047368133893144741510796684627810742472439987587125510651123413537509645871705130606590264306609022147448421940016676481049702930654793393133614217434358256865503534850648936477310617279865084914940702379260029626549981280896141973604448614356120590245671728106104502848739526172620584555094935635398069826375223464208274961368034608166942943282278663360307752436502779553821870830547249254756554910281874042854916979167469252989985026909122335788820066576207300843375363158384169358636332145051278222726157318113320846824971047079303648432203001108584236364527618892396144990785392343875213406046350742691917144057630704388386442905091060885756689944838461465410269132188329742593491721348113736605845925410509629328494449790072089004550747507938095958977764888025282842100549982328194464768012389969865932039676783125216089832798407141122189646877228781026223887429943184426699829452590609386037590140765059592808857422484061197886814654696378127700694491494621330943794428943068434218029553735559997467744665074564866230146529391590436418310768317369853891419581957036626358750559704029769422808643971799292781753264181980205758001244217014165719604206029802263273371597009786488062197935689517457488649513021526438532071787313060421525074402143784491866505627446542110333698237652447065076369956905403656907833943674018266679726415073531907688194698262327593743471359993508687800873469946300571044288720009483703706713993797067743829849978763134322329213855407152671207169089397591140709670106449232798830613039571907154095521668119900095328897021526197462284549682773549428925482300662658412578501770138240942785977927615594474657625773381331207102207946016755722149053957392498838911884264897888818693345552115714029894055194282461283550510808460477155261373086972285354779349701649204259366279782870075523176151885805166100307260381894912926690804769524678840494966820679386951905387208130026234110083566597846028821012221341010235544589999824073878863320421082623216235213953238527328035538270104447287772834820240800953081479306813164240924973501968300574926333625697974628899802909961871228808498880092519420515876689852897878977684815306622322425445267322508053683544839401035839453280498556992141190072295753366575662010766897275221061484267328580878435436363437086331528637486076125399565552868649417439102047101210678833519653442887531434345351081807541861865968207143508159475148256911307904633949431429294462054392658638176400774795307550601796134828151977011745955038171891639705040384824082819321175818203458014140218328876491715268635228033067899711038591554190253361054764928650667334019413573014967998352048373479398031099870398985510293694645650239068244266577827451000142035892014038546269124107998893254125650528693426125549893683236851707154872526582724413888475254051237167745624535237732425742658396451871392501559293069785800390464435484574933962545364659115228965753949882656163064148450721749622204142335756953494399935029999183470848168998995785297198522243135019960393947025363942938291220797959088913459027079176409073801825308109944676283380252360792172718139779307450385268997614439315107881432136813388932932402501460045929863285634011500151728920316248938794587270812832453626995658210617774082615285665294369385726575929640032424899608372544308472292928212762800273788063509652868743780917860935981991493086626817054044009572086462220954630503032112564004296450533601322077810707547166071990097990306059106111945248292422491834287561133268373526293759469912179752435759609493449664201821847226893228115205928040099642566148198380354042091137099554356304018202537650512241227293938379393938922779917676083468045504725495642849489973493822994347543722566836100532756596319205475425119615505758389318817217351602161255797206478920600299737653762936550973052010210283013487754361457307373375165632750478671209847535026248961330400324179655359159862687043590521258414370897288218502687275407216532172164916887421436953920566880208937244481577532592572369984114677551548495923144385893189620703184750732283774128475212380807774280363016700523017842830714019548972564267372765629577715206099399759144615672216907076062416869517922370116392250517513763826303256373539257489459922000395875754620278185589753125821826862859806505986593021348237184982837159526391965783105873186017883004566990866099949226321911731507785495067066211277838535176509499231159621326783084729779577917569373017167616389597645279660834451938948190055908474233878656333388701846638680910181840331560266949769105320871677893819573547899215836238372445690093990075006537197622010832688854346122076355917057584128386770850553709552728824893298138985234830011211041597488296597636952669271326560300721614949387729281706687867642064579459213791112452041227506476814797425764896110587272573945317854314943593928169928749101085776341169037813783490220075743223848464204436559889757417117390599316257292857228275081260207825532008553892121638385525858264585660050640206126617514935766171861722373438555439929884448871268481741234070462275691228526578263543536884753981213061014588294651500666261685815336440064976218830735876938363630941445914721059486893827280407388357893194668097881330932071379544284097585761156352241592904686762184546978838758555884515154644280610095444638997740487946106017766546167674907791088066046267062844401357861151392237134475094556709422270680847831181392964226213092831071204713109568111704152917858635973922828177140304286332638029115275759667937798678931131969624733108096748760994584932072143293063530454633355057857001723866546081034526679514715826157102208326606354130435758925575731693915129287504889525781539684574929929528849784105042250521412807911341560195279861683634604226657573132329082076585571098878421810676314754556489611424828965136662396653161385042092372056390606654776286708413167429376214658701745028267252261256758892663753099613188855468221293740576521267766649891497564145541804402985674078341424112036442710921823905158457720332773228021687354712374499305836078498075082267401450837411858648507951324848843040322905630737725759019811945287945812792441376198524868643349898329846703095850392877916159014353399425104235367142008307484494357247622447480419641385564925680622065532024817143402450358466165285465411612844404849837549522979651384063246503283993309013506925170402913910137725868846435588205300536449173889149985651112045350934306607497060812589329266202062434235861681037516739124402774585608938179857054997029729819052153416175899156679297752816519600989715544551752019462676112985183048690771734011386360245761873292365976318716433265148184331079377074002419567223862524024557516705923460509165658758460316007701400018121330331824407766126031535828116482678927779769280233826363685238031264249998143201515877216925241127766609965973612170428389131661437910885413217499921319854790310108414398835106667030713260396598653569527712750639968101844388030248737632703160359680823854293045601474163842755338861709460489317949076630327367906847227206810120381907957986102194829413785798898032238819036035270111161391137220069679069774930791614501328487897215397308197766854387679195520072738891647891886763113246037166675144189992957085049056443923228824683096052055726512023493752369516813607967479784527773231668273563111574410845504634979834663968502865890021851875589835028137179474566195650248147592198669349651920020087824331839983443284382675703838240123549856802739412487820895617847930538966035196471082344630619026940219685535968577797379677314218119174255795048837215366993989374902230068613691021857818019429942251620742717498478031056559025136197994382942077720245436891612160766762015954247661357857652773569361762733285752771924710126017720361303920867476174970791905147052565575244163335466505397061677952578826369731994435605114696492151793287432015603818721079452809747369173661696050755665439013448632234702373715073535290908771978931893852048523899909758290482937015816260572052237133613947368119400166048543638380380914939492236673726153299424654985460571536314185714228116009227560407238063251647468939732150868241593324331304245022059998868904299744683029437584474363711464584771736442239351185111092270528496698526247701980765972254942560554278240709724824681157876768818481621433408974372615872358338703919064945550963235846245360428991025107494934951203803907688907354389240219129831907578432184577581117718529626462201618026303604272922858687068402141873043620425999142059761654945431823963161969690483726976977075765667160373127446410104744195523573348110424760470816690698848231515754918558485741523696883805150299185642890083045563942107695928077749802793670843407183466274441050872850376689105696928435378535398180060406551226005629077147426718051246140099467746675854523432883409134017624589110075657131307627541465930174293717440235914465385667897710210601150968882459331190496944914157138794407972390196170954736560780492705151010927645723975396435412519686352636823357610592441118949604121427471609414020204297604036567733400233771965891533999234464974877329865349908447270493710406030482364269860260209424698291300792497633646334894332373107797992867355934887287014497737947222598785167756736989522236867073389343353834037649267962166035741862209769087519926372572176933251317414404810584597416652802098401052956400336947771661596294314526311511864814939973067477930312728438468748955682227057942098341779718877287192114180313854345288605609612277758268272002713267410693568024660333183856299788377043064374439743514328938767501566557308356596067565721715865149886896091203187266561338154785513820209888858116850675842540337336112828938627291681134430800500761958069882297312397694487325160092139005069638987661872292857191890902299770221538842641318442306561872513905220787793934171013145383038507475003550626310766330118863262083358360790973414415682623689665498751420194958245389448151488766983840348374937270347090921638614048374402016311914989507736676245604191853815435677014484430506376077064659589276813545200224703961588668381215756998902009274257148007213691982376363397282226028613312621200174102608486367286823139272512502161016984627291080419915453572801859509450616113786399743122458751204985763081234820266140716368125561793853601315554138703707974648697250231987751563797769257154619426642005814520098492406658364514512303051720115901294882282293589333189356651875735839331700549997630309976939028293625416094063457211274826100595478931573137584659568343292554640341337007985400461611839902333108380863468006789417301482054237926430317901477843563635606910526164679400553152913803647952136301182718197644219526068754907302294155186138202379976249172667539255539193609500008799359600939936958131642962127453136553301006681652961618462254335941352912089388628781258897876214155663326370316267627219709221730104921974888230986357742504081235562981124794093645109628559924303404272997235266939076686825851368517242718199604566959992714302298326320260816186223202779753206326804774770137256899412558382958546081909146780978420677124699847092539384653924315571655588082065825376276343807508949061407946538673975278166859370955256109909215520267692181711944762301085556096403356917198823043701534472312412900110747810976075944267856520991958971653181801583281418647300153147560765268514946216922758694910630276958133136768233714812334892606794278859472447662056855054306889516809416947504688929386028830927249386795157545624507786471659260266048811788608145333924615969301981600139760403251587123767773471607130615354039662196887164169366356959858740892616223715964132141049205919457558358675162278115910403309095274268267626203216109245512885582164089927416597239530755948374258974976173549891407906884520432536307332384609322930230153120893772225916329263702017744550020317394687695554539350652305830740216380035292461326091841620146666859048506555015579185520880738716325216496586564432527509904691798962403815175232004190951752584654394388789801318250143049407239435397611310327163862931065188828719994374390649770101591172875554546684419557684086010379303036619151383141650743088557279755563386694452297838687757065374180875348127480738723128015644930399409429486550968093857993209096329738771004437183183769821359009136876878503188497929910684985689641804591160652803607815081495167139246990188893315673885886940429354597775752546739063010433754954724911371696504652594266370143629045860728872913993156249448829028407079170120648689720777763236423627294063975153199407101136356219913006482100704902176724406978344803901039444730769304523791577639050426496622216912592582763476979824506802909068228506109464867290802470282385355505629447938832012786553517509294935948660475467035999913911292187992364393593845163288946313820656072830007312563818357448066294183242326646796728274705572330831043152692247317457651128469268721333889702344790445366395136909958778627737973482417238464641081129727880219954864282266566409750573599763048175785898635981099686115269198920715114197744728446501656376383774350619328857973993280030179797669508432260400087358464818489751657339120612589325498357121689653236218942108750337985508130978151449882777989485643092608503339206659688779766641156327481535567430935923944609524500968127941120369446079046072337160947700667316969641970825849614250788833214129585176453142165476134067036052866622234351187577683556136817999164005881909652787217704407692432239976873181140339300753573705896043261090096250938148312616016058879449529190932534812197668095806633531454792793915840211101083532809587688742375802714623467453142737262011179345075796772665536254625073567927223732761772537535222402312415738980098655060283396148263939000171875994045612924929346933914095037621865661166846313852422582499465472971740358673089254726351768398855270908647214625105893891655156880376821359530948725714780142402519054319069404634150760213156860036559694069785547293786835492834647586791441081411231346145245722087503824951028512557998376307274194048151798883228313155064312281869096268541432522964404065716382260670155779225130300891037216495615131058130274130534654646760207655595664383612832908360402926694639532725369834923861203846970519570774247727670550520512128971282493571606338801373232100537858402207981159374953402897372015179874410000274413760930457303533373456430950615141671663758321080433845866571705560322073829978819892019871546069223928178874417090678297421020591042072649564048332248296533749022249859556925528231125254337869801423317398502760646487372251010635176076306388150130480127680669494846402856114902081837722227256802160925794752946666782894539223919732292294233030429780000367557069252436737714674099156732742644604712670355833643978141255662850574671350940011872635202732551625751479794844380613886962785539970483291153873441506506224983419291244821565802105272843028351454924999155195919714329049533347688492465988380479131561183817184750188032555921273821770769854619962447673427285833896055218609897409848510514587201590132088021689272378973230354184295220546091322527655123915388394838707863426692518767751879742761244470114583763680351048779498823203751012962932910806297975509642647424701696418681225195292720297381406967600644619314783269229102567612463131852821906188557045019247679628011583884467837003907983530021754692123211497329112504510543156839451554758175597496206534927106066297573762829976614829602384467370946921594624506856330175911990866566981775538485229348212423029447958634870902903324370465599934705124541946798411065125195478461992456217997302225267281054316301329099492281116347463686045359469354645825038129664997011660868665434541343616119983935396802707120979267368507624441172831305690939309138896105610224268520163104676578537973719763268943519428620416527172066058151755628238311577701938089890149337965385909292703774574517768578632101169232184358302769944712504706627466402132415220937517353546678532363898449851327704767366148782337163097985532206360236225306434412274097552874357088050117130269094308860865743494600803158275003685852876682042923707948715341473884700783361026627730938451344228997424085158766443625866502180479999186051422965423453158188650396873182148442486321700221491740801601218300802197501979294188543861824023548604353486305642421647272209868296084819316242013937530804803634073216639296673065146854904397993034932688280152226582239952676774982541514423322999219650667058893026583176781148659589648643247886234034692374405081566214053126602947762110116678593983500908105768175009411758185859981991823211400594675074346209539788718794086661262468850723783155283123494274205859281047340482018220570789867152391139932330846087796046723361541423067977624958224077632098266897001618373363513990916131759705739256062151765240437169129153893118954708323441213410585148621416640727131345141650861642197014358742662911125465277434646353202312496357540591213354007914695832679984095672316282704080427445981030899853370023427366751054962373273680324773098585842598834885259395784033991159440715970631429131351444467580587551218967146356881545658466437909876376009477218004313162740305869449786929704724614593885532415037658698252591611984774305820361892218355421948095226545725172380824571529217469244392564940371980098940740902346157877787370759011142824688722446894464268895393070471005677148473235291969002353373392789941316665413305629952382976367341803666486214591730362625693163881864228879529249720762371229619406285371420445837818074426106249163367545838653899367581344579556850084805414939977049424451287321659446644034733387345652717686364625240739632424617849369536344460346397262844553547179926212252326624671753215874201929285426171576825589200814919508994314679200685880639439095468725738852676716203718766462322846405390342304484486568954569753814392156241480503555997357780532744724288391540851222942793551770044440000596917833885168002141108421431000005782876258915760636073013482552239795342080219558685950904899505185108997121861174435188497747732214505480229749872975970326891858411035057319889774980299574168402754470380689384348383735777667769333540322950049214658674772460486033501056283756458784867714539404234540892544130740082741123625853336327222710246212172640658160804213141635938460321637443444250114887631219749456710143147507050976015376906233414197268897907496168130004288625110110269432995543253891698381735251845595050357708321418919342471236542375011034000531907598619504928477401810828465560210485476710364704328999060890228884220109334595749293405327748570779212989131089290938770929687259737209335643542465257601067934659125261815374532357925967554384520802486358946158197529524945639065451951752184952048561790185496573950487317072427511951425880848142882900625698698685355063588615508528916341457871873709225231794905638824344294999102234466371729146152699051184586166201133931575278098782985038508440996553218818820955239824775620174406648179026159279691745161125285140721592545366169370734999208953053315390079510245909160530188962320478116196015108417154224697449631613436454779254500876223115373612284091475209551386178778159652023790665781880949693796739258987882429845079306416101013720298081800566656234395640242822705705727927834319464275471461100269355582069276930647372590475793095978001432838988371001497274422569470029918169878181511910655749145776020335989240070039275615078798588006423684114485828036442722082762179807365978356695742088858094579246961112466705945146697636689107519810382775249332982225562068342514878702006052001645413076562817283867870250572150475525489231220838274206724196783391726110460331325863446798085130572506315242210712389483769856470496899920087428616840861125026208668816375013387385364806814357989992036047546311270139353564592127030797305367966797751256642248387466052391590178770051505567085807917337137108490567929790481893839298139232375831807197912020327311672738044281412274287232982207941033241520209356393868315200967981846375884245816869847675328424179784842973441231888074447050777081227040077583071951789162985129921805317461384084826306079818466464602020548717764610931825227594770177466890372322370701613858066368650447467418861154519550235352799544685414973662341798383632565396959180262770074421377485849264686072226664239891620891942653825536501720786425134385588418417951575749062804225937290080251920267766621013573006923975975433974617970181808401878547369505506807958991907210458712111855330438088727853102321559131819967591503535878090225279989999316023224093724654823950363295113050985598966428606116442625574713217820322023390879953225584850880377893905784895789043948218467792129024805656107698472420163716276732538499829487314133156221465231919217410116375715650593006794551024613462621608490391474343373187632541398954256042010000919357055860887729099843811509478395951185115618420382074712755480142611086143914761107983627040961457025078472549773337923827227760197816350301292772036936364797679967263990402172776628105306507711445510806369174724978769094893985340861351030533884199337467246489092071420911742178505971318596026875867111849356411280686358079481066033986635491109220519313721868271982819262541285767993474299221944287827177419585674198101899523234025133497592305784716939140423559918865074286318000423907178066687762021329133174759936748177668174454804142583812878847521435079883870874391938855993971294183237541987689777705077410467977405816836501128534524371783156667823041618540572359705729887949679573607559191153711316321172967794981669296149172093116151527350180529877648756589257899662818021137553287269658908750785920294972803252334465502848207589576532485265610961655205752491931182646813528838548330558661383613931218578147935903971125900515288398213436542789035616193462644111443070724399441110843003138516203178197506490389358626232546658941223726680096346429481245011683492556665705008351611284848105192971302419461546137019240575591266951543886688385117692387307823361616231669860968276816896519259678452151034886111411685683466743159901699446284983861746803515632832668258765054173609228479932271186011153692609760011953438528102659174270836850891062024635390995519418583464586269054158087459976923557036127919294582704328402013183459729977893503907394743932389958500852515967289513645543195973265355999033901816668616872225978727332393959817160069785001812676943851207602480999136314058006019215044358184322408369635374833292175399140298314991984139911279841464718026786056171697502754335935910098592598628808827690512444385823529405132658728996289064444778082267128132220913724678075736936689537900577469234025905708812430198659694853153758353252670539270209915777392615933132680963388809038099545852149680320830039487283797675363173109553742283322979852015523349355778399800256966414510232227197930686826906615893185783901445605335962453425012236361847976552215076243333306943627392037965365125759716718736044552452838404195069958454025123730501566773580871713727282605122512769418220229834292930000721429443162228924331644215101790293267463941757542062930383636873245931268639215067156069802422033582874328146815349602489113133294213522488861728616942651419285639410700178906362173909870408048270979420827137170473296563758031151385193961971310016943125140436839177931423569918311297577999000240189793566410959783720677919949299213844458223400890209024003350041958908549451427542450560023682410737133449547839530203319832560142393658095207030743470196337041405073540825349577002561008648895281777730633734955714037462673850215787490242054497350778044055941939617662468186943840685614024186534432501686000169281195966698277129455833691203052063855791182294867624864104726194097990028158891891173214888041129543614776175838438763713771545760438238624615799055255990181053025509659914582999870356236289771366825612278285795346440246763059442277937933741667807527808094312414112026354253990344325831024182958779876670861005595408762379031502717632603012009989977085406702978628975164692263948619597836941866788813198262864862480615053892919469322765003888837886656567778015694372254011008774587837501659418122517087907920359860622957467888250799884497081551211489253716312151362069863046105546084482428616199020175895745801015765758030769380383095769658215540991958307673504322875018646121613510384353342464896598461723733867508969054195654188131563445246952671687053673627449670147923180707576899838867206531184908924993049289463602910138727435816793487854365988761190819066692159319842096855652857092686535722488178584259174515681570617970919286225304515979713140861730220490757574015429873045509316924108071185826645467027323492331302176613700334801724291223147335507246731711049343839308259617374959536647707484502507665523697563926727456637684518618454361692544711587745923104260777260859596141698397712325932260851275166567334604529510301770604653175946468747602377343008654971138741495907693033927278990725360723903570886786615214978741476990852207577155050162067423506460581454187649788344709766532967313352931418385364028287617855661425946968883726199077718228737650220451473889910014681074641012842098451841076161012355555841132818606952669993864636112759434824594082328858473226541742364317913021228006646605826102523847307084404147574691219240137074151811211514760305610475838758930303057563043014759460267954533795325560668861806901488954914672833619488215128862431863387259978033639580396637680291490184000856342160004922328498673570803046295689157179567674544793453854346399664331170500397009028961402098125807601481749463054861633655438552396225465344695564638575627636169758900772110904834647979245800788566885467631873107025589628459913355589907851918559874541608616618206669361523688851723147900504592718806809736049543240198457565976936226814089272964719428245658262632571432881258573594766471285473574728267092914668808454261272759526598174847927779548229408308654439961709772123814757395889022070091641948734683350471790298709049316005218018421614451837179157037992108917469953262800496488110596867511908370029091730542083463790898085038731540501174081422384880577724170351174082911946077957587590890111097400202193211521154071177159120454634940124021987129746358527310938637362926002826734642443913941399674415714154947281091473237941702072265893182156927325027620258112313372840409183247761963390949952505958136320572036357704149763964855241509016799542444451630475842388379733769076108371037562750021968509844697996178156251824365282606096802464156612683422901334623052681097867203874719848224884809336111985980570193198268090288347244003474862566540130896255560065010085655434307352053943564516168331905771763371801343995262824966510457202976722851591794580408854379685025027634780715135514857868350293991314271099464474966301057953735020501374861871097062477504299882232830655265263868521039800062327555172075440241966221137076125570237366506987316930047359657407019669246166382027025629989612539857828387721074367704467857452970672365435404147959583629814929448563016016602883944424334760419491123326328464701193393094550275078129802226915228207828394677548715870542133964242619511903530193191189195228058146115192782979175698171650619074063883272548290477335629285452949360533225226245228754703885604163448638436459482186031300958004976103942816130211006112483222590298613858975906955766697058897574096172018230536772931960527100151652013414454349134831408100043081500049206652512564221206862856764968089406004000626594428391486433622732913914426272697933469605030151965709003371009256528152723695131900543799724346284333159133226373035413044888932450847051912473650461810007239051504305291582898354287710688810364926523625191462424823731332577685257419049982380033187614592069376153690898516861018982505739104175096085713935993242162820657611024594448855996162338051049396366304929837237750392201183165941516545710661765165761893306166687175309567952624471264747522286124321531033763840002780913572151516547320219122145703594111592167394387334816115815765258781522090067633954230924468625631729993398900221212167273343817666362493676931385485622515816236332972820514235514443101724164820727388693460225868640200471871118186996851780444204609773681977530636721755029286160085754235168591851218534130689224983378646538275995460756651502204856551047025390839389111470706010812456071843786575186293672016123239775576303955852654796132261791831746436877787577397102466823294163831094696740605250308596436820507708768430325364614926442333771439688587185760164976757468228176635304423757653126816474603562200800092449016155664557757236738583867750906508365555081086000602730512742126306780778577943607148917185690549701959021690906520942806969801362048820751250888998093706926639474508547247113533746801077049207947515549857003897439771254941754190328975590444897887619308450972849480358925507105427610659676984832369399948228920781616585348289184359344155328573743525237556498670266016870465462498207759286768398897522462234264619405919486668625672956065929923904532810525488874296850235285906596291919058917458286456844661859402216554309998662464758314286055234997085015091063082622694622394710782411592299544404084501527578361236744515581666747530855992105642367826786386375602409103221798400557893526422942553993703970501518722208399025964317356939652944170313589645522182829977043256528536900549913254576606025301803306001318629629475369565084835991700675178758279604978712492725845786134402387640024969308602736070448898923987346951340406614524521374952108165209178843951660428234743124346374282995107072579016854735037090539432331079568935354192103615870280693838942820902712264327910190809697438713814293646156896029478135477673385787055893751027385550096380577485714713607150004868889454161801843342129229588677254269804672176459006682660803923624189925341491661306021793135096094420631216915951046273412169324901589494101513885113177356365948401020837432127246324029480882577088626534506696554476560579594384590372514993550280923796461511488218788225317608813834244211730080287524348946150758931518733718172058299011437564509389279465378667688523285419006262761789866329844623759028317609615900345248030488836111336762767220601498045618030338983728046564496173631358449399719236464948013121369039368839126946248372801612945373161072530516940233398919595354787096798424329815337074035106038660050919438409841622673397753898380629286002179822374888624966435865735231149390244202239026078031139850472069729615037947247777729080771210257878723605601833772452426254318032451999785624998090351037624318058141790130714362927787829853750381237640275247528451215333827457221202666583993450426292445912249113140337389663901471413728133996973785108300019424148050172634725597026394817171431239054898718827810805344979066531553122364383505723231510335252035511996298345870787677346154525770193174626117804048556444921675457267375646161985187593276648036955875432206816350045556710262434079143233353594097269498296071411688439840463274298855570577655679790192173386381274130995147066167906232569502657281416743618911011629991290143758424818658099497585384312673670651661023765809076898989192884089051893637560702848457956514261318404015627431094906863279234360290495448564297302193106622487530440520081030100705339643398232090803612559640936746006158230907220744527715374432522132752987183112952714078920314529106616445458478521180944430061189199892714416442474245374197711495877031452628783184805275394981359113159332531183852719424245738119867372847173338223370369688601032098630053561069377078543242962055991711220059762985624042473076942479104325562993379528662828690988541754373675569200499653429130789032000949984103508132383670024048415756447051569294461332706069698693501633818035108540901437787501213816336682336797491274316921206519356327165491105020796721555486350528760866873561715796313734830060817422364544432775607599703248425154862359854319831039288540463045884291077278077119433567799519317136566897326159529975123159374801344381580411678491772995522366868213481772911683915328901676145631197032506915529792347847958599373874778584907840282144982508999876076760378298956020004810610544054937710849819460910907350612278130610504584118653923492193483217892788437660272929650104755484042615015334666185045845523912852472977465417369078471584944730496864319304048011757366340555052624995961489149974645620747975311922819200640734507555666564848168132637865028452967019120048256001773891806276296033587329539088662604144593096792910052614094233509482627193049658551292335863811993329169063549926535272710439163729559489940389432814419200066946265102519569428041515316823460648298053273952372651368516750045093586695447742755920258655207287309043296962805673705507169969095342607136569492688954249945856880046512884279925616273026969744629541757073336524430830117482518958878371114807651568873056712313026771281934663618136669053746222763703870422159431121451188210642779539436113649249352584559806614510813382840049220759987703860545925382399422482812496459911848838253254143932661509500649059201303498049955490256489075755136813056423901615019144242950399348555801845037489271681780335615572187878106994427516506454400524240262348475682965377577775031850183300634429877021436467488872799846735513984767182476210654836988744274259476685045920272125508472428258941453452179460993939793787630022798887552283492595071240120047778017673675298794983639885171121221532729637807909943367734793130428113823639335262074794624450857461585049897756695497290779882888592373631781942144179952764408481803746279475032661533477317895842517991037959536079495054186715728794116251884163056174037622603559465888638399288788003866692674759557503568117282383337671753259494660877205371270133425189672613100177209619444636354949587611066612673309448304987057213011169966596463897129374749557953769498880074265797895786126764800094054320004286253254874740512024329265992499769250688251459441864877061269221966953873895336726662948567262519750705416704576600655303065476915737618132529001812980282466803414753925274704513636937810449545274658840290374250511220371658285045100413659129338576931295224198859044924856856994683663576190507581915524261680607291164167296190342296444102856416811191744729751158142151273475679105329542894079467154496322988546889746008068712407987182422390416151758421276759546308789937935655056081353004904594853568435062467715490289003393410690373726927189296917728992552954112943998663157709704520765879564469493987445471965735021566364857166971964981119928868064215142689935257694521320634206378291353949304308827863133387295847046440059602559334290844701762876290197681104483856578154366663102532212093748888372532581793702148114314780559546494502238168470621378514652033440608471791356512997817054686074485946588117451660845217436339467221363606121236398865991688516703335980561498408440583482748548928265228828463841078828216894048263957678925921921159981120878805019450517633594373596065687455574235446718700178443127618566270324501706710901695285083536440891628669288258381309684482470350020012706032961698461746856896830824550906328285158159450083721731874569145474843511017836662364742540334365684084930108653237492156802296724204836687690743253738798157298598736144140426843889704872660666861151117767641534242651502943978917002238452509649810675103129217767437028059779618935225899052717960099784985826033883072664765187459382215314242427190367704772405318422979237538372419961240814486717467287734577977726315546765438349793731113690331635516492344175640352689905832032122245427952149612086823881692224020401855290821143941227849414029513551315063756007737764265042333266695367257739732736813515201648516979077419559224197554090014523408037240885970804588306533305346887158318357674857810639950489895750529573002815630390137360635003805626114390871473748855773213111562360608878426084073553255332372358053187596866672044425620780915358783166746759241210280050405434457389733235755398174334328098690452022026385821386470983240951774831512260825510191419702463543509883638199187717996418484982745823855772407281596667444368468688588793458872148645640768403346824163023589989643930126312605017036129565247689475624839649823526232003665287877615192837166551459836502160497859984233531931879711254857313425149578189808974526200044926706848624855488743966886695382409119866727918647117135874420044950221325458609731319436766446797432770670304796007738897835748014631672417296873389064894483736128117688744461727758068487038104597481377899942052736858233146786545301093004000277037082926751184828050131262375100895635211886980439542315805815580584931652096144194312818874529264919674115113414061986792688088423846700673478240047756403999852221973261990746819846731206695563249878527665560127488705717373576193917654879941420077193160223862701727211504157572657123102711216116474967066612608748138366725927659949964060295703778757771278220193871199660509749140710033527830708241466438684097252865446305666607119564988822676693753770462024359359109911688114988898370899188229663383842074292631051022795197872697957661800325441699178708734427311864488996589326178985237451246751518206973916694995873159602136227951642183442120857948461455005604978719039624724708652831159675050305856800661731686822265744513895602737249768864463723909095663764598419532945720241930052250423558930322389077863068394871198159990759338142385365435805432184202380610972108737122350859421674986034915006713681444207840478317318247446264591785269682121276510614317602002815143554067146916504293571348489197055760649449055988735411611878932020802460721958192197127027461688268127077641631135631588006463725093574389165714280549200119030655602861841208322900678071303915485606132340178346145095800140617949208469419289099620514115511384510930285898849432826061011647933587106898348157846644521267836418713049753244169644304669788097417536179812577037655320640636373075747842705980295938262164476389734934150149134099915121993112929456595820986888207661114644622767783587705837436783418481790891463115028084986299356635104410928972617456552424348942912918820616053905119257950350037949339750023414505903293644721039806382669768751148927279050440731909264732547163958178352262419603229742022972797164321698392793728204413136582290199765558307123409529647059987443331027299491840112799239445032269913974277931255083314913405230406677006127519895881133833043963500678280372239615216279878302542646573442066263302849516484662972154270302775531382632234606589755083708551201841596896389269779575668613463207930887348064448150374689396929010698252106114243310309369279996390892423326728623742880274258557798756163487014221493428628979792200615459622288607808794042898307924160054362155330993704151661261451868039821657835145873787862738996318078650786743885228505212948501147627209631105641249392086959920100154934159947167959020620543990174392087176553234094437633022506929772241219034441318783131818622160563478727158262075865975825248584241812900872817989371158514544253395837478953425873177429372899164104961244442378223523339699662389121796740247195250608949303764964207337342023554426226766626453182172920613310757290266140600461161311337638035501816446727440905625836001953215112500870569348630149955862208579684911301876581772876050880900316705455558755252751057669398094800941740884378266587293048234903974795940308945129579648922565921623819120767077427798396479925534905272117428487428869351786388723632082372794595617855667168848922548141358012699303213447469106929544375089880094003839160763886427181390133934826652198273823623528728671111731311066361499328046006599545663640160450625655708678724061679465972968689600216276914415609712354464051955697430753224460413703478102481411162687029136102940969836675150880815342256367929461878245345532529008955143925389901679348713040213512004872269569149811789685311188949443187016007268713909730314285574990954266095415752404648342919318867781762143807795145393479511580605786460287177030616865406436291061664346502412244236430739863404287317215921256852209974385262189375807018917937040181060081667430051694857994041495437035389613390348986831092646229000852706718514246891610600699832813567574131282054527409802753639465915485939479195333510055168785927054808767370861672635626725020232806014149371198741487872919180396312311879586419665101539762884369492617579929444541552222490000336339463893309314296328721125987913206145997305462885236592370945850639620367788382896970642912664870798827348652895961789393051725191217778927407504830219032981993227002011418452752289121001932584656441385972866284279976604789102701682649339621594712220745755999024654969836362008837297923917982704313452889929769611632495682696265655392886506897972182501764245811051117981813183506623911551466791034400273287700681328048207138781806255702677327769378337946729160441686665835991629194035613590156603242150275927785374672582884229106598677873880222014989331296641345679794088667087328769426421120726678310332911064967977790338917481818293582731584312345877129243731919958543125692477376933598005648932104316199199573035465403987677649085745946507376536814571943410392208746940331472859111682201393463470923088443764278426277418275681335218924885749701373519610047715813084477413041957514533040469311205039667606360352365349439789902581911979717170120337864345038097197703388246496642567916058133704062577754744679716125592622777268024754085070312190307296804629640036880427377664208994754577411112681469309537119440063406191806362487310768238374935675216517675460121916890720153675111517844986383471487130747440376544438931006798563097523865927988591242608200843503476356092729388898199665130780846407569519209492475083374885249314874389008769666375502551497790570078230139736134351883682393423183593447684189600464617035059541398614359917353918921944458579600847782676730005884724649811812976067019071140868977575093611639308429816856879511209323740714008037183503381882509721264160971504477827158547219852668468798843254513771229949216097913335113932850572819380116470599501375950057298323691763495708815187271132295313877972484011298631187978342686685034353091555705162654438022915099567258643933650696392209202373027247841745411883191251211218654070530500684676445802222061601647685207188068674583226304027010776559278003403885517642817551813598864932845274024820649738106799632779192872397204731451562196640798924953435250397089812385869672785500940785928820921099121401771898722623795351494483599232080314801819965757742182237737485187451344075299131203528788680737444165193172948248673058898840121762979047212279896757593330090250358068460774644736618718656322945836786579449033240188262591493873994610600183074563539573692531530618446426254020561318713534044746900185179140648072212395118474284738921261974840941264356010202075104245757258209044302789220099447830289740084248209644217127647571378169530762895386026337238979796738410432875965808371175375179618402715860624390506163947473490598775892328023033152009561972838595766369188043960354400278533167635646999095177320020929102025395695616499919135574882792592347061881749186234189151894971498197857798067805055790905510814331298225271834459268775944728892761021545788822065855647814475942086633564134716990104079334120798476903909610907665528922850554833819967561889075758562892982652517729232899489377008283195579189994098307540368193570907711959296558749429564708094369486882254599983275502169712155936485994877576156469274986175371455040424853063488507848103898339350819979655403111454748114707059997107530210433531189453385110865256388909413131738962088909955178002424337373801585639613033267295264789712547061826199837395735118395913647259881043032621340389642687977571422161079038761111347472292529214547901425815073813519796092188184629157275979639092565708462122783602500912391572134231264753809851698404298630691825930114745178606629147759900796420323558603275304717114105101231379559060899697322828436989279787407403263835224169506494487144071966846587328632948678715797418643518764275879676048586807991107398471494606746344436589410094577014852901970031796456577058578585496490155615833890621390265572510563448677630448749681741262496286334991707382097284810063718626469119214722814450230829852631294637885772955120302100480333888629522424002876438378465181638027145333664712481890069322323926945574782673344305703573533177617868492543157250481127987487286975505592806343688299183980092547968834470826304797484098302681760080925203268014490281701229794697009367091277129500985284317136315265657916303936762943794484556400590482110090157486921663884621816748944135342469586667744021450762652801046234772955091328484543548167353096534837949397358094403050005473534725602531960130411311829852666689261297330439238746976404379911166221801294832193349214187388635957585880865565528371042349027610084422124360306541771550790382703886902632576114704674468372786630712895665515116784442744869461024626944154909523521873691485301896091703507281073961940147190820032936282067666672873511725964286856813428554455625164932001029482494711582191603383720017946332864162980333818569192502901992138110373229090907665051601440564980300772256737594342130930551817986234551188179855139845391021994098641223675443479978402853879904066036516014877346649611119475250450036368525851875657839447917635902797715943857235674885566281631985484148323126547432518913383628849366799794959282696981915747143837580489823706855336425357341595399142964563681463855313281989658769292669698291484917995212107218747212265788204646708832743195083147527276905121988393518573267348408807072609271570947967717263296947831179924331927820035888250379437675389824420735513507521252937624474538886433300128016704692325723853810931541782424585442480834817023398977616421957601382624254073579375983830067062507947115222257067332079352198775943493978711092024306351485942174112323843108291590603362561854664011982642987644288950549738959838392961566887604969517649170768337500133866996188394177160553913373578454887209341597292574445475510032387848445070676007918041426589467092922701778098311459346040790265017156492564711833129187829645858988652748301072197885636532436130475924753222428647443076778194640933426042853331188897089798265508475871466608991441483093577593521955576638056411907527257193550991387954371605689545863508971109744860295267345086873088822033519036678800693271187410825733404291103502938543889637937741850849233122586772003898381225607840736882676606402884786441101583545468404667897646455098959690730561025502041127614660138922630198908569121495284794683471734354286113392228472148003423899484066261071544859034021654341422619022093509774355986172696960801542658212601692633077505352781525996815679428588408603947117809731029757764339430580149009974994341826392480695993342697141592121249002279392504576850416139382908609012710803363431494959547636294696435985003922808108178896356862148809026404149779260235814733819770856195047617638053453327472611803312927404030544789563642783790501712449507807945538606039135953672387944514208110502413470939750617357426603295848600163356939615590768060141878805341458031525761599046883242854975367913813933360569766456878142066988832119156097511443465495709303208492025531447987145864398314039408083888876081848374641397937808158772452440766646009137078235140439316547675382155408119152552167935493785715617832364065961092782974843083633597493273308270400418343214209033851855306885836339518779953250833674990599163709228193764342907583718830295930305744411876112632851610181014706006804645345851430503993175934185373391706280707807737773267304421602225978979026759877245527343158816729276380454214214426014526003337289190179626619639453102088956855545556918182927692506953153342751890881362211328830012774510108443642444891575301356499944878850061869391135788042550435531933540654313148681439146374287808575489554526442841094347999991728624096090133459241263275836418656310459810153079039993423716201391237488467622838150547500305940328066366481142653583962679086713959914809967747869548501780071994778591362146469740706661145247699183922731722893955298517321723908804162297353233663855304336216083006247879595080736957844014110142925657906414512234062670942632350312503779535084706769009483208381075877891922843569380932746584476653567097587992908864627220486560944503567423602433151357498445110051949219233662637130341865029095206082260526632876854293464058843333902921954788957997980643374856800333248648926341386949293927877699485969014050899895644019668523616625069806605153095906785094609591055719376040120838314925097742281695834365508344580286210945189270851034880636131579870327568861666154381203938761195017608949181801738050931685173775562238941325226439249188671422046307740727262805409843708147432022049869826021601540986339027459397655498125421491169984725894685203378274679918030163989775139844639800415308622241159027247966922413984621534458747805170900254371964953414623509265742972059458169955871871485584487223166460933294391826959560491921932638718028575425127700852379694210523030150989712703602459330402468802497168941003712281391721896904459129210424592400376650389374636649375700643972033179055324804205505887157688341407027601389030889570740022649103061408340220715563079983702929459931643835603684316713217753237677613932703092302169346219352851748925915779355480318842999138533989345359504915616324023977424628986411744503217933280815543081189330050743090057078599472202184131183416972718251449833495772170773852533071178458124881909092328611082278034544901712173398239152899504267559069202389014769444051293712583901294376429586730448318723586145032068870341119734823077346962207292035084741932480496517730973139952460280132110365409315863732283876209607177218839402363568993266614660671794786980642180752993327961418768950573353668620858940499291945001014196666774030415049332334207751178931487591831840030363386963753978230174900767873386998883910850946782573708867826853626420619924826215941102605960262868867889116822490290481607413389737392658215322534051756756978413773004092367078240453315519360555935506302127706958477731710516082772480812794459683105004196680427337301932303778924659174685495030850882440460389999352788169199299855758817652854299849614677631394391201328016060725100507919093248612575558171112254450535561384399393899208987731474767906986344492647333604510184343086491732608644492441407425493150183825164382659973940750073241937739638819839840778136366798534087137087753488734784255708229216651475493711814408770653435661205235667990810010819397422207129757700094355223869901937167104129369172192345629689102475210131881743535229485782999067808996068834192894086502122749776824744341105648398235357685674471609300254323367521023079655787026304454699461009800320982026418588397078217640471430803722133442018781278194617812472067913407030931963647661780303132848323998098930542208615394415482732413205203176562172524884474642978414275224591282819796408317809281519889127066650070103962457978656376887753313774646530984885971845196980655947455254235719143729090068042600607900685970543181473195920522075749515755218471915632425130606716920609656865804270734926632182552801238814850440061673832453963858933750255312223257150990885356902867942135231754352852968327016551079238986360860440123773078238714235664937153830509348334052488310882941023681044214441864602132993408789371121934412208043666565474059156193129507588819451621740662440147948362702613184765602727900609295940675491837302059322030546075146440974500072197941471078583036346468151343643875940936366994043599875172860899982244877427016446182788090601136324965968355657719766893397844639902608906850817519337804743524895450867591557424495262253436618963531376296882760510241332416962891833113775268942689640487225827923463020055554809493573663206197639680284820023984004779137395077245469377502123355025907123801350106792815112649220482960752702885079507453056501821516652899367579707661538694716878597566702672533590618598115740503904732792805760161342216843044503813941941490156566407446162744499888780605547083569387978450483236839557386389145528002352088265900797286749420102959917060153010166702105817922496062701893284188949447283163926921512101323931750813560000684375216975172465357715062109347191533151221898607532956611008393813188320226351701638019213568232206149858805004076459379112449106699527321026811674866484419143798151066216089337685339595651278902641983620105082245096178573186280523008293341043635700702077662801228501829831788422692554147468411370395184748002734536348215418308306277050930212131777783238819393433959567831739723253243180481765769327986385075359737971132033213196044691333892700925817368907332597100884053628432001903347977300035347293005206883297976692051320048923470349646403238266551901298857541854242075576000251565918401412586793156965003340213718911979983103481673672903106645063394545255070649325897603720978412443137633957124615874533033825124190177329910688721771332971362514285685801533293312261329894847972339232544143038267944563351635954263500153165742109219293714117013532823026596687600527523871503733801274549689072721454247612580682860334815560530560104244571012055590072661627236233801606203382363339371729164969382267408765243257608282929356484069562047275580062117864808282828271941652478203434493429697203821057642286268274163235742436422682078673758160294733949488291832115415142841875299821422245097544971202823876868784500752449781605023993422035682026173737469989748349530652941108485791303966939192624615120701139363511437712652165521675288981590701485711743390901104092398481187686627352976763013002518986671336160758544639061074216902058181498376592727776259185565378386064341150090211557727661267895399105963797274921749478379841696528763306044173104317380175080196981632940682227674496538015011623053882253193372911403579062389327695502597846745201354104335666820114052265915141130808320809076228525052033170623224992938806414700776938843030556266978482839760436640460259378050438444662748506253491245557819541586495623977965188285432667683096948772158292026423282534008125418869691661000430791782860019880272116411174547915291796150325730940693380918367563514789299718381713324771551490375030965541867526868258283627473730953737160674039689645269416420777327409963197660874953606181915494312948656296440389782563215920146819160738840403745735805519582150242579048126469084078407644757449406102153159328627617241154492939496507146537506475910552596732771830254787461727465698403526936320436539892258233960554507369496480601530729718203572430784453956478305706686253574004088367800345901885072481454594025447285078177850188494395422869035882986516335046498429950767412368518427726195023802639442379966143976902183880870771501705050112439880804646237844335839183430232518004930514281175811088403459934103107537651636347300338315930045860799927515834118822578046309678675018379089291015316835115357611655175388546481300511877061101447284969826209583807119015596669619388387958782120383250689117101099187303921909054909264122255482320977606230685870914676610780333255139800583647575200437894370029563984847335475525419827491058193745289181930641273192780804418071116279936914237282221556573928175997822693089356620963929743851673685345382940890489879381327812176018710715793312188965909013978344658501502929001443494010429666145313559432760013076958033837771836673339793321572453836710247748144167900451921547314887423128830247566797397834418752656255261911648132666392124769155570313788188248652067672096535628953859179569592016380624687647606159648045141609216851463572637247002964065414793940008682273432883691652708993946184112245568189229347778360812238690096751022868991640425432473152118188257377667262807952271601990439857497600602119391770721408375250403456878057357489517227069604269394146064334269925829198606002051144414459100308761809261032321854240891449190422612676722603163475140378955268807378301646148461736168533889724869648036939623966020312016272154910090314160582687403760229426254990149809081916936686743198277773688356272286818511292938336061802668442496011102766152503370192364077093777301084178189633034643855083431970099239884814319185465683344000314723424657757193342010853478303196656520107442208528608106066872167523767274304190801740971137981462857678358565721213516622878417280823982674667423438169108619872712373228221009868929353416717111530872576683228370855652924835405614652638971772613000381568843648586070098761269466385800657638639384376430426088799172142639631046263907960313813313069001213691656796792076816387526032163123051954730326484015038336667368144727529670462243984690513098314842201452056146199161607536268163506928959230463818894204692874741815074783373233969862792702480330822966540313636314981586481106652679684851305341505047333331308490123232893054322699765310554836740983029821496377238715499078848041946420990854166976109036052677468390306486185521228962823505267134717289938140906597282513237216921113656244752504583166419316649752455147457583392781663867327745162154008976024874443029060009517551825191063030003449379255016169824541940450516201820009631974485724530585360042252462610840793626624891562757979850876388108645148412042788350795922747227746312948351278127859868080634310697405816941516799597747319244540974555412445157784745396332113887807450157317764639764649831174314551805854105834689653369330412100398626405408087189525678027960655820587116062207904625334400153573671486430987250398274750493637551707792809679539022599489145702079822150020271071663447567202347989154921739892189270657638651152562252400478376082508163623588381729394088651909071629526713527005371454932513495243373803391313802093122050447595551874571447506488319404047466977353407905337770634509633268375032146907273817547611320845931742491366953735063594026330700012854673700997718438252842402498745117036275169554452423979418709399147583232884815589917500185087481054091451257114398381634160276099436794142391051763142629111056855966192428630869996928557545719219891695514964567801766475352081174192155052243930435054802482327464152594697819506755633144112263061519033640140590720642374539473890435433046996705890638004486685783117515734701412620231993781377480226431450032608512239791854290689896549399747107859928311192250957181689030850170150710752126680417210730937696295987953570433580509940188154809758928375449831102857793324675288421967709967146348986089498206498986359518043130315652403662131251037778108406965329458984255662963228717688345675684028988681939634014147806629592231286736116685131178874744180616455211249873477411305748995551888177593847073071154958758740150806845270626032431309075634540667218800171482900907620894821158235496885185285457487640578884375697311783103376307608694695700184678116112252650347067679129183396936573228979516372123647860843368928000269126156858834512008026549645500974513159612262715831671529481316976896528053166286154768733991845844395480360640764885666082184893938326623556751221284377622034620683170212853027114704230203346029871846525138869470986402855814205427760659994158826918538477229773833685451757307318902695294401790283231096138118007018910165557228838235530741213119006945013335195842106345457197268981393106501344805311861708993541066196612768481396336234417860202778078816326433288169112481377772349749589004110388622616894999029776810225189123143082174857617206512532605359023363502215869340555441874221514819131633352405617287857676388259608909083087381065873653225309790908342698167306010815905630130366462458495590812583567294117619607757295870490771730674954361202775312898639538740542851242517412507543865479428443465660857608325870237108200137897009066075480714094004523084806272719778194702096022097418249815652421301816020796332667245828206597457353264289016632212492668466829236552438067297689689572002589588398589774385885786412649584136464240964230007438581197221791827044190873047046716761075248716199988350704761359680798464305207676127951906426720910716213500754117026785548252234090667550716840425251209374155909031342951374314311344957908879115259321849499616437417900922812071826713985132821331161604578497813634088728893478767635776981562610706782960970791778953917445563642043302918635143935997655215160871200785438274843026847111820801932364638186577026242577591905171660535852289943806152381070659297764533808853233072871629129479277002193224760658327326598776639790348253598800199101408733730202245919429236166061181584260106242430271303406483126186377787855019970806716397797270086866487589935650214362650329969997397836423427094073055771955544019464214857788940632555039504784901523774054080809133088854347800950081527348619391673623996638585839357085119502317077154147676118661150945091570182731200513404823177841638543143902529047273148340993128624320902950970857516661806228565888891025483473786753439129983020632820481054407100827925529363572343997564192172204401484249017895526565219295407791815236358452002954927147328345007454850780008181392503492465630286428207413909872159523839912651802611321495522173882437143856625933856506871672478832184796045375775731077044967641288852886159849393319618454850562542551154072237726275834833945374409245613939860423985218004782211977717587619677198674815827114536329879868692359774095615014286653197321667727694203740386017528879794369145302874215177396476289966012371815569734429231288604185406526766306555884718726650033630432977155058530405510342405859105784796966997593529873735539820846932522930987326673203946983449276302978483133731635375558983187855683096299354714695497758195466926706602943146219733030749741534958423752493218195880930639094222047171432876516488780172398105265106702089310671561324753668685461497245828685169818135285665904929561099867545150586389700002256879410447941651432126286823222298002889618026170489192282798273447207946088960119158863971539068467975877489941484309995726419667345223944376860176021758996944520747291842751243685585626508310448185703258634386563536682104524694277632221059671275755415989274283291125262178224882559949182196192769720265875593017120392719941357282400496365727649463151609544728352787923429578460514532725920588987571112068060676683248716191014285625966223545404458605887667826973473667139756916069749424874178779663452533655007622037819358381209822223135934109510917709586488384540074171840948819724676531911993398703265892850297586079741187385843994624861439035360569294818739260110813499764385395359557566047382784434218593027083054418839682829404437009452168867406904053565650238801866053671336892775235575985796853661990871208123826875935046784256492073020456016014503557493810756545395536005617390822178377220931409079780256538156591983076857957371296916467254022000047185803081204976062552646739753795191597497171830173076544639446708895206156361381812178792637387333631061458508166294978251802856280724134888338220522167944284531221206026520535067283166693109423850926522169328796489470251221051049213095869208092849973216801513884459097259957479013625635629959835093354962424200915668735044413610294632230448023685461852104369746759833591435938691167366848489402725134252723851709953334841321783640344826163912869842675788276983542968223730884725407391157639468717580802282131832387547915465248817171722170503588641590301514118301144484921583207272830746282127948280650309759330064667295363913150578402575677862004729152086293837966363076047799105835195356485744773960630771074274623462182258628013662228314689833727752681379218358985871721983339210093094682768757936912213185665056869049167110944529806485892722523584106152289960647072777994238357600937682213898693263310451552626563579632383439751660591054155203318287197110790774200898266243082340475498159924658875747217054264496056641999787448432716068177488688910504998788058990837730588823635938675782256888128179758509852473744509100014661577991146971082810155853196558757016185683446833845737571374523531445779783888740580935105146019874310141634280402826544982632243540794391311457997410833156506356532416153747069906941762784705223182514441634933207989452890742126992731909995223767494557357280290226421842394604862771235864661056226214475098735939037661196778140386102404901589402696822950625273063842236089574460590105806344759574224696532508457454895698425634825608696500699845430818970810381391115528358617867595680406387508382793414546191105859962790789631006370104071895694117484401572934356730252140959452143703642655157074857393262721684642442322463155851441020764590317606361416361497885843699976119545501755049142037917914506803757149660608164625215198140315827926328245591297331766963328573900915931790365559991548231138287598784216499771647679392401176009838891616626370585394702842762379218699691563066279660793656951999754884265211731454560740440938602178647243599369670357353624259506934424794704995369099771053340392915758037736644687271117632768695525869187655127932865480313067712160132307770488158647128926950029194505606591486712223802235305612965459307655909467637916004756857916359562499959999393186452851145848977257608790695504772565798987253235526129785303392607337309894642807726368955042921102461517857598011930752446882606473555731675330553828670271338679078853811858072865643524858844104045418043061535299260451533663560570102571882264555384946061204499512920984552154921152724035822294618463780610265701300359128817456563426812356506420901839066899268347345750311530200417030059920917428940647482308088881766539679213556574022429458635987079001079848586626089521032077456877569257492534583767695998051113571648995541539428042401028072811855073363595690373533316662890135125743917836302537497460659397078626019133221772256717083968230972406104463107089465357208602317899983235919120532304702938847147576945476784647009693023038813799430590749609463547073838262903453583034170495819152961694923393781959270752041890000037329745410941031165046468971973242070612188434690428681787361125986922998928321356449440681142143927485083913328466674164806554619931027206163935312685374182263081177640534022429327247539514781724461528122529094194155571719959349797251596029116709946566725405470764622666384447515339876818631008525807039497797956119206266928492963478882302051791360155283771767208817637879761212232388577513018611031153048671472117202923551631703051543678226377019936716197347545823528804869339355648524760347342820527367255592948846599596565207579572251198378369426767360157065579043792601037048490174418984096606991368291779547384698838893882238610278269704721939739439521806948505732675274995677343092904613425817514110865852552708379359931320309355988268127750778274714074041009769025553011290530521372808140217931224926915566385940711737989888187353630360585946065338174882524823903378221625703233901259140761121434477163308944322245208790304696149397835802274914494326487059217261250976749036054308045951461595696173145435970456014989224818459047564567864462356969792162259381313784978980214756013781659877833815758674655948540921839396680117067771403490123957388752693163800554233222773540735963273802070257268876004956728495306089440972147371373768779087974543892992861847223874728955201655159223778194878012825662034283892778597167493896557060665536844174728255755295864031703363643888612022544745870120383158866404458296588672340093374744779559261564717949854108204528303036162001006093593535337445328868347311506697882343936680789224599604028837233253014132562427800840703708501814976711127967927141844373934935522499246070586207164309429399585234872932602229661489388448762917529509078603698196444759968519175510430149520250237635985989107903377962722818661568227219728327359505775985140671401377006268917979235389083570904699763281581660531434091508526495292644886752570369244452759564646469215811418864088248191234343571133487869640137137436101490528569663255986129224684176681274550254970653393598889674873350332356100389579421375822067226972748880886867833137946293591496153148645321352249713913486182997382380615887733018576126099266675220306359831299372305552895779747623998986930225483228411556658400002885485620915527252908807803551935825104010403606772681830344187276008360873475800017791163328257835172950000855799056415356720820560016980824679573980833182329990748127030070669474666299568308737657349577096774202375112909832894777628882462629584092207623794053158778819060829366211519509144819813087857346111764899963859034143463729595633743467420537872628809227282766757172301548017941392464987586332655574682081336660775308280562937994008131542670363021299633303646181163048843187525548665901898241273963869402450676824260765005920511666844948069157754498240842272974096230533463164017453364921340601242067495446379917370275978871124726586293675999316034735910168814504270457543930136844777943812252420015797654002783661605801760885205828096741563644963178478729376843734019233785493923902130652808066298704139630460039209537335371788124195913027314179198801488369588258794688494974145899773603071336320929027404793372066216104850651480945041211382384690981579376445130968196916292108745629050013745914801303336041300547002534703244902469648819294759511049735776637519951096380984501053721522772877034926096764121191173657850949141487160900727184439028729404738631646679092721569063984436390808594452585450690725349455671949502061217254573461074342081245868026723085523175119523981159371497914216445698140209378197961317668103627170232705539107943519530641629679884207320726190822879973446219457914270872694514257152225797861917989018688880921571577575234900863149174729989160034340389435291805204915130926813236244386521257916582272073688653155565992289755799419432992053254653875022218657557061419548882163599773089836890616188642506121355186524931878319844194068458215156611782298486174678592546743713146490344079683021747762144076538978524852061500661254684715426058980620217865403747586897093345111736398325036499454693183931347414637260258298251671238884866429294434549623265173731791622154127650350060207016059331110857921712392603439800755161643802120703455957339347089997545616761310515113831095999723504805546242427634100901354069411608721860045927554807720832042154695112776400556690082201777490591723959885611210395034101140149895554355867444313249753636810550155414739344391062925139993006543755470269383529480228264681469289887103626201887030672523371840151314251915765683106988190036511581593989698454204030081808579041543027597487880962574643711465815263184004764032318286339243992712454043142510078030444085412121141793319874557170408651476030526412578371813229650910872120284785048031774248308509465092117766358446397544746739171588692097789709285226753858030110934969046254035491423019494130116650264943658570377446724872618369153423074501263491215296089663735556403632040484965560888495603093282295776418313252990815575890057939714053383733064569973246773062672955802186580551662749185346382609256245385985087698653976067207950494176892870260551357681391336880600315349562990612180570845093978714793364290030741024504989507842352774121731617294141794106730154039959213702878246414086493307873351772325153923874414547084578757464905636750438384711184306166742887818929372169944293585580987718118971832210272564864167517820276877244349934997487086099160754792607116965844470179711792486261401138442279577671182402865574285852293304779195941984668644002925087598820264628831827176248865159422153767736904981457769531217180633357006235531479443991306752756803249495172250059448779860433048469072060699312844255287209870125780633749831870834881973342153310955363666599761708726852801023776213286497611936451675269574217247849624038053891811751604689634142717323346237172528086091599008273019766732033828994485029821489686926613771627666300006165070905351393643333096066561089146676131785390145830203551992606666821022837721238023565846512824866683308902359083041836379330519640911225621238587634355671763371111263298448719272120977816012920606053938915211021166210776777322202449929259088493619153911726123264405087602857959676107470813025094755988399095755249310742335849657162672726611234601908345815014849544649471396319546811848321577905140295221808829219564542508512255991237303168671629893886946845120803695268054177098860637176436451454253016566221029712906104538353205933737754465647521939413814866679464027816233447441109122051562266307475748352398345486493505407567168737191960488267159428256180221442432793548487938316046272598016634550004438285768396386583587695657597827651544826990698661706184490522521542490206088150856256411653091244613686250253593834018963285909962172220884615524630152727873179987048817688093607453947690629054499776453756063896918288851011456019777884720876513165340134080837543103704620363909809825729488806413327503484913632572530556500192332074838877268333158546475814217828926797149382594588986989905570582926970809800398885679966667819329949819489502759712393105120383297561557166101966637220830198900744360289128912183634866776084624589507926468662682444787379503180851694489510084113499522001443983321456533335137962937465160508552471277634979271001894448790008577356086430833719256811679853807055719284924203610431837934441285972510390059404656527929539235141670494548154575438499010567830130600222728390729537488406176515165812259609099824551323947750443675034872103161301222443794075858392172646958446065210428299365539421896003567519004427660817912918425950065988072185465698819373209844551557365571149617989795029258546299593934824985021536550913768073724961642977066841590872008993078645076129155035952468445533585058510575875021994006562808155494524823442449600995913562339453220556624399880596912114319797911352511175309516546032456255397779125521239005085747976023565562546744744929342764849957395814848363502100583771820149238596216760604435847790006716549343301812832660385835109429757566898270334115588109994776121226410819804149564606634429499483614493896427962127150672431531752531692951426835581675300040004846766292231401140317800793744510752969099753946509019070534239137634882494943677240375940460466904230038520294174283661224490285567152883182420696801984440462889211931834454307212230779443770855058666241281331077711235096977076304310467394865117209813981955827967224119335982930084136424568990111361524129473634805785043792095149981458881493788332907172245725563081877919182956478054540278335702050805061442778596462000715511652992913444116703016169493962383255987213753729626102200381806126517736936479436724722502847570741901115939673346096449982398949491083751832220149269185397589506082599121876888080776678438828161937996706325580337587560395896611447273205171209628460910047358150536912963258431826657206552318772058692841545526258857230946334760243459104089036494200938351177347776478438737650892803470012480154825707727870122730368610365663338378639684828009854064109340040052317187469128671733397355749158107374941027718318005844922688677966971707256876322987579716613534479328013767760378789902222008162825229199017954184996746181393716723891341804203188867482641640055830705139890720633497847687829572854713882651563228392150666027018599609420863585155024961023453072998742915224351501712821289057161245099467451420414187572233441155307763412685652319108618848748944403098135815607814606994354306009755590982001858857013275523157029008076499954001065251637440105202516442984602331568702002301775430057835768889601317283818372334753557363557874274677875097721932800166897499615770634646177773652098998709134264142339874329990564940115560766663703746007610039793506120747999556116062514584739431129079085734593635814784281149093077885020785432416485834025460931492783929243943055295978462538853412859611169138234050827154784129166361454888934983230958231605546148559543897063726542425602637263790774716946696961739428048407513673095256939670113987687235737317654194383168255619854433348163874052515023789405919088178125126653199881432424428556359609439225048924975827408467755311890613642399260963690358960329250876854333891505788744973709155992440576869125700853630183534258470399322492613646897854969008319099113540468325182305959909456371307111989550202959775256072175724783858262956795711173473478283673150808258854287267052448862559752326967049151564697188055608720588968705904776777000447076233069891407460171484320069238553861605415726562816094620095796533119338762807417744474893031974043731413483854063851972796911680079111887999757060608948171481976763054433631731692187133882344397354500790344898108791539870926363440319295656202953716412089337909870686195169871386390346827737125089736830962735256661874092326404147003017627458117127027380956930894457385637989617438768798941818153809260182854318886024329611400855627995927839650614212541813049668685282015085914927353673279538933223185849951820621185515119120385747992379561664905055811825724096631556250959569031481470403178687081828640884807595139296543180032057582648718456829333823357582993839785542098405007390596401172796423700018073529278500900122811256948788915176806335884233225561586847585431671909713988795102300194460179311504988058971416496233917168379015285895598570180254433834691943631815334319684013334976523503101888469983649063656736242035650711767879317345336483224142817894715382596808251885270393106050485307673077346231415076401590669998812427348190258151967080604795168181518922989473778948628323919545842155360166657740462729832576617791695892812907344184406256326189107075979838734717288400332469675925034888682990189373196683555699428365637818094807900352688195732602529088984861358395821164361306825703727797365420796464025193599681743078381788505475708696442542943283484655977487254721202032116978882958640941745420067944398268702817540684153457531851802896458923881820208470057154566500348967620153365007384903521743715727533693036350894361226239448862358616466157006373087609182122275512893346765922273300018136328351471104958276491656417237179951924187422367170106407009661556051357178703231376803808850912482286276197460871104144359843071662578998153627636418595855231627772607012257151100413849762726232728346808552623075166735546368928320175873456221286993560124413656408674151724682389764339243189133911711319689460443278195862819871124087388193599823215391765840262466191037087585304042832569589952480620485529836793145544003514206368796337843379108737253581944314007373352093434494826126731625493295889278205569108091555795222474907294731133807115187253364971855280087425187907735379681514398829604875874867081526972833421538229556614227750913866274340187698304834213736821843509737792340670958779247543977227063389076402056670984918499730303477588310840141616006410556752848745301604953897963768820094346655706285862020400961171882111240206416022157212556616755229375541910765207244037740489463306518169202838788440534196500200941827756819671246181635965293294067126399030281622444066606656211960844587670227915677374221904050887571919607461543961401090443130488658771426348222504917079026044911993240964494470696598946085059236416685641199476222330043981467853003519704850796198857076516879366539973449958129445621209877671614550493857588451999717978698010577006944012539083070537371359084917161246988357516661533032126674128588843138783947381896761628896436426715375762523675825238811653784187699532480582370276749893327472371138221772495984423424218584642920964703753624244528649463016594434784902493112204342270636812505836408890151937913659865676088558598571091913652567731284900912317900095704684250759830615827521215067142406110599050580168038860620789145315477749486593231151297532236245930057770780186034587303029937825461498898180495715295375028625940396825357940066748650381946201593442973951506279700820747456800071622459461150883867909430779615216284142114853544649555031052580321368803646334484393540611968416401041981048418781926124008881816482256827149322943521571303133227393939016816120442473445675804928944125681972756310336855319177873565298418479671907238157326933810149806266879181573862953279922510751243815148890437105034419478738899144177428831967604593981685256327294672748872560251874829884689795003796740096842537554451152523668003256390947480985654415015225059894213941242291409078066638672552144460055187268006870927376983263703205026771511766166834127364054183325223821429926205429901118134529605000699777864004552383948794401202387638644399485839117496426606466365255126018177599501335074104299120232915250686511104022166599618126452882220624149726566305990708693541849651929579022450971448413284873902388101007312193674348405983501049173000729790284063130599045543164841436734044376046304559805069903736816217354038706011177424895322355668491821195686346287694481847962899080191958322980727562382221292430056687282369324149758177437478085079501442738440068220611761417017651971072529779660643590734602810547085308025315813068353508846490761431788444628884114775079266228178368353947951874810614471682037083636620877153125032501087023433969039043135105492861207304941243558964564648805675740194215135419990602807718237713079190647122861676248502494729302337000950051818013814095298057402763295689996794620103506134908359221522727617770986535160423824096084366023279408723436393179938871456698385267199910918089137886676890870691929971140904539382681706413962575943199088193439571040946330639683264768846553134024091374227288211823430170813699298485501695497946519210521537036231475499257343391183122180466815231157937854779096622184285370150457701235794154070239107923909608144972217483707567876247464330924934745787225222575649620608030402910077959313079542964696512977095157080739204874434198468585050160527524530026830319258641748871758148622091845125757693684247496036612375757040297493719830550775517909927085700113869375777215821810671286629642823423894857294545619200675808446673338514406839284926557394488269217392155332179770756586903257687974171237127455468621651375731094121276330299122591756573920329981007936947807115915903256708410993284934750949262329517353888094595080299470444862636473213613264145336725580438934322806604648953790301099291290265933980672052763122572742984441865866207539186412516478400089253790155396628920250519077824961256562382388344995221624199552109916218801828599731284561636417303054707416936719512181970973110482066019625805135030838604650957604700639742253575785047976301357842943529344653124160837667261307710401102486794774129619734137048247396880494817932744580017027995890131142708136426056717799342759338045077882858199826424798015525652035800689993871471671360737661299648231405650752010169851689836494444380111120670300164710555379396085661946018968864966564016305545819543458899367652299737000825676124123081950354624452544012737017247948818423752911032409870591507795981672821117655560587816025214423993160894039827780599439528346317705746522839680902670081180906304556475849220971704940342386770314737305426750910303994334553619276836877030449387091820645885211614746835397511314718958075823258189890812280368802077772000107580504222750748539442882547897496553853937405748298902784243707485783462814008164172302040970661830457179657684239690337324786029817188355308001895061391802398030538974876350068879327012799929766282453625050542078814007684302718281665914902979250265499477873573814269251903688226020778858218956672917170458328651058398614221110236449094552198993008714322122334462457128916466541020910366415992327794960809729429001051729498251882412180014325040469387190776575478206093922675487747621853404039683714357026971588195219132561707880485436897907560942754843600371934300914176189659011199440500179549527000936066464562761198944215718718865578279359616973437477067152909975827672027249366635979217231755670496434691956014156144811841887900875767922493314173564886817180986345893598049027091006709194369429424669934262588032702614396744669473695077656862896770348361017799816000822931095771920259112340903341974466554680568905761837847686748648540132539548654696336859767542500450439458704895863893665744570923074886898057086784176960962913465040624776095423524496610194441313787172170222143150827939463976304484421086935755091426658532660943452992452225440325733635701586207398017743888084340199092284851991219024826637594458235129204932045517313474541624967382614304067914341288255254566301437511621584258312434647778245303605152280271344946524714488301757211710377579926253628855288175126913736944324370637751248064323100245404363419860396214661747261443977961424385869457774559923519168877518031871520199296098293219409068502996359452002593998010581653783937558815481062612099915551905900211535059770491669531946273177502605846137507239704727020111570767340027136052091292774075776881541253358034792348276725678729420399350496109615311027596800018324978135389933489059305205160269920127205898759658599097208685789445422998361501281297057139747938057099588809185193944105388278708455733382419020518299088168551889311805274350740526000486213274269575341420011899748432269733962566214874709912978083556579582557154825163706365373844724837887185135656506665827462375590837310857266241794775660655625600690492500431862761962201025048266900667885059988566529971568262692886120822259546859746123941013843678970752111698097255038792508598284915304340576753407352774283486233721505200237461835076778336750046456112339664412473328882153236180943226682823383020774705146360012172371430419172308950486412904360798850898639517828771343792892744523778107382062728071752152037186957606940950690898830032986057601886219143098011210703648257399409816113132822598590079708693209740206421623265556970376582261088500055255214663157131650290419427931256401226007331596432284411062306412457155833769529148351850568039655089219641294932737063453322577860876316646537087845372132912513980702051998978314046657368116962239969937671016909340999111962425563910749615970145699383869291640194953168837660951728742687091114364389789419554270949606847012847562803811073766641740661988362530377414959724805242184625892170721201963980812699208015907570932099557764084585032705900904332613273453856273188388663727883017153164243584073898243359417266116911758570070043998457929369642048237596674485099616576844531003496825669532050525341543971629980694379726235458448950857305002848726251081846060445909392035270936824708761098313598340781655622389693815661892697472130597115198585266213461556929487875053722242263512193226709260378789643804622281093306131268862300413028912422363351900851972729314047044389127684133281964965834001896777631572962435143438676227240293333011025782534006510672790713037931771510192923102200165039070634669735247052917473547724498266485240820796139918406322413456424210477106962736966449800481980995040063972267995226585251129953612648619265457976465720516031664753359473486270792012688797157882672316027108308210782282640077174607347339135845709409407708221832342446347501704419456546727393831493539457909714099653546160848452209021315647647567351574263846322741049445257928839263230548724711973098208781562860981091584612010571078784842022697482556466021478067593074273743170053826289740356194306880159299218910538439626234453598399781319723966974312909111108235659217006250161925702176862517003452204333232859081118475729905604104618857743245072125482916149084970118745324311070196720591084898994060251097429494176071183122057857204753667022102375842243529756002336659149520113984915173042013210667571483687917287901783634212593800890990884646902621822643920479060274004695170130596148101902493678332693278498989449740602454320688652986695804838455195901743320879572585349618241987368428649980900745006723626493644567868036181848216584660551069209674690346516474032159071906507744514045595374173605164253445411941873912812371217867672781208707022188384085377745356512092319753867595144938903436735663656361181183181980691339981981827734140236144467893862670988710802345794781719876020465824743266499383356721767824704579608645263645835911688484823816008067407942618289233064496358634197347256806146341602952199965612186956858114577055994726269141740064803427890246327314699472106660348332747623443231929908296719519144489965500806880649715513065866823204002860545991035535934673960341583296084086465558308959717562519271760760910383813576020896839494013714087700142400906722613637148205687736259949625653082580250372637186977415539235134240252998105047940917298854684917566478599301493141709258675446966477353023053040659258416292836031689474739342078373983716577953114238782515763185018564413034696461571372375692564357830100193423158330839844328099905803841194182652077891640286856135424943578286347512176042018745577168397106137439095875416124461516629685176041989415717168471281179416126790917900396459308529329251256714122242469466343899488938409624804929631683648655262219080763097772371204738394490291761815938312237162069659836614039237266786100118380405681161798835958172002664925823211810153240298533462961593657847436225112586320266995636127713475507032384680036910027861032757998202908066260666922643582995291188217190882020555853703597218873156826534068814217745314870784899883097239860778875803458156329703493609992544914669525691959021053105236401088164587311709233069026246786426438354449300758890608962745785250727802542441427597210649173462903812427686755984202600942578009120275332735770066016430223863538576710045125499071237874029064283526345450383940662078405095607904435689267008540350105045600269103617047887292142570373936882279127730699051701649122794908038365512865153266089919088004693076035210715011418123774616705440493509738156531653354054476124508250219587312374415919571819621587767712399196617764665088210257798815532677959625871734746140218876207616119269660050690777474661213811908430923042316517521287483498590827798098179562994441631577823510052608979881342416494715942259849836183722202947546543214995533516089592263545850544908878379941021200092316342645936094628765349063848285037264582719355365962374289457379513192525550392783479133139155833516283120949228515696259227160210560121908154661298250346591710574220015939243961172563598065919830163578409769761751291885505100145392120621021008466411649054238075789496847576476898590560550734455228909807335212563618984626355116927327419462467683335907046247284222965600249062992528454339730442323111959231109392267927738520342542504537435168649584552261955651909383169485477087661012906066444811021258887540353126669931335803419611327435692135302454154511311399753455637444414462942136875029033292456798018122068269624285755444379935530866904629659141395593900689692465196371228733752257739541254625843885379948631200072485505556032872320956058373837577858869524219369716902220252760326140519956089382905588986396019814548469630276140199870735794583564966984668848512414853894946237898020883928237728566004307343358730189583616281584859633153419318355970440410421317101129825130373450722528875908954458654989252234800344117207902936317508142717533374112618686737151944362896002523464479874349255838167921085791604881892643150098889208811875143779417975562535375841787352846678864750013238790945505545852531171519190631400056348765424050726362202531149327852493430689451658318884264543009495226742771958832058947628016964333801011130364389731187754840194224427212534548657605587447248143002289916850911047709652555714114186137030677384431556093438998334013866685432386086801477721085223639153779143603124981751501681718146019340974202563843484437797660737589108107520224482335376720983605399932521012709613394260306862721858261144323067579367816161749930338520912182996330013389986809892434551203961122862872291298057100906760653051187963912515235778164437718968421081083743095503084492976957316912554288229075231701130495625040151079475818413678623144870961482059414357605913195639487408792042705083444611321787061555439796047813001334979487260944993764771539623503525683999327329720973697704219754552366350422105665215062631167162911347528445453079263024593267635769017055653462785451761189651772344404065186982262475218542947857967771085014620004390184071884558855524277496175711629336686953232002333684816547258668563810550474578502269656063682406401430354430643494203993625762915492732814431081312150433212898200858983243686647907295517595997987144266487398116735422146823810352082671713704212829924584794566327520799032716894818470621390307260231594009975111846754961656950794982368505696079436992849876784568935568749985365037259140535169994305424965825006210928736212060113325485791948430253330693052222672773619447093214435401610148937754715059884274475677034604689461734022872967298947157178825295015985568657111289622720626836934830133243852754573339614811153998516062684006987818636693954561538156331297842072488336102410949316381336612930939051635416098105699639106046716714481433729784455768891009745060967985378870054706700289715015146091194803201821925855145273100389065686998262016624427435630318671586602232535158579825492063226982436742962455798420057123780552215580064474510727649206257819717875898305698358575517284977144132432182066910424701538344149081786189085880816883655431037675738455192090278136385632900753234788374054119890257298525664765894464795676323889146436580501099109915360176157951779030746581968369284008101710584887491818454136995175390860158118905775247843396115886975508530447948430811264635865344512815838650936565202369255469733736037422936918315412940883656297048632176725927369769392571459824989643589175897594892616906613331823439223516160088800815184435572550228742270823623191761670582576200203087178917551233005398042225184309861508414853805682247716927378404335292091696701737738986947887118177421152769410976728118953655479019799747291686308711200701537948030132377412221444451513337916679138697784450551356450933150989437734726688699918876471346544283232380258954971468512445555564093343119416840127224391318290947441346262554558870390206911036779446082387917232208065264959191371509599654710688883932347674591214716552712707961455806494352220581296479460089569022752808311446459942382705417186000780143798820695314699212163870797138675897966041108284374452060361327650350348659952086090698947997914863706467955770292794407964092667369239008758876149034389494682283203667567441993621272048843387739450036472011934146717051922684327987449925811869744900598058680990230762179959659793832394759100204379688596029332929468634673823207462041243509511883718831080468377948356853188957714725846530895521765247737361055231593102837236184133912450503770939858844753771394318453972619374607361886482470230619445630894192716119258875544076798411066130353616292991725486812194405461945473468880021311307324497880234420403730796604333457016344792029113564976377554518661740185390563549417387700505276635186939793857913467798383460948458054692362327801864940177434401705061031170687679490292673438066866965253933011141556045154944258321004483989999504454762010506980285502873135329024447666695685160823313464723511838331449067324730242712903686186730091718225111615933898287797622104334469082747511899181510861167521707297364993213481667544787546923140833118432743170398988196391562546421630267152847903162927605022918451721152358588649489791508706318496097356147763596777988708614564685658451874117782664121475591782668847819646100814025967650364889150289092687718056293858995360274903732943592214617973123364070707966741086001076301258112369671917144125250648524719313641734943932756881137309049876355676632529648828384115085892771015353268628876524820106991357545579856210699232799204305625430430656688675731643491917527724598987760584016753474620083316530900834634097871675183466271154083525066621499255206885674701302249817198349224070205998994564098995610983831805420162389777096953646467768292069813091776503875533021524638357520433320214579975582174846947812180550757350826698703923073614129143453075030552488287676433177047974860637066610970609847290543508412415870730952370182800891420699377469474614729738165555145760116126239262887455430736205191941561913664891028804647649355881365505384335986197831349662049945589176650156151327448106439156982043481597192903679743392726694508236093757399137033925110715740747717206260369794842797958674757474223042803484801159585302827382795198127698787400602686602919867313898928596229000908403955405552647112185086018348734893443458063014290612062017289825606152814950872997721174911684694334053706114426761219620634038112827708861127863182920449021231859158429301409614079176087889030564633554077601750591940707338288951056453037555947571899466608134154667913932075811913830883352767134768885458604002585919148812858309115674589152025399235379282300828804800735968909468321600065842105918647830323158033385461518906242350254471337687712714356804487651948450570261563675890646164729255939543457273881967237938460216968826397853910602803145021531157922046872693592982950723706742768483696901675552264542000374400954989777537125607371102946098977149997683522489565756530928515204979700739599014745802483500387624206191996645949879323330181825306708461260210476869018052957193840476767101647668044845420792861905938233249422833124545719769368191055789162519204785612851832124983222206942433104854697952256711741095587628808843534276190131113109735917428500653965670051860916540567323405069432889801582555747025924871509095101730173584329857453822505015287589550454203800421421698030264522464740263091223278390621376184438837566544123021392202135821191265297302617595844772724810887112954667455032033471287000713734708684164105211461474522973238801522819899391645043473267712356455753866265280095684883933165107670291522845540491039032693854225277076880182179033884260376332446966350124984172710438284739105041278091229256781277822031391156741879372863726847628885389618097650657987411801013135033894173970583619827720081556326038785776587274845874495969861099686141966920741096607806081562533213681693867608940373018683995864610017375110835492215899775952383638848711363196950518194931924634300677985537593917794362795298742798220244871290409785309960064963208197244876100153099979770605507950064568452364386120624843319492416840375137611198963222227137336168551380348491547259251160640958072649096550357062694116570122528533675155624690257072223641189177135996601590946364627185630859394276732235453777139410900044738398777751083916383962277529806498206731918023194517000324734539234344518673984002903986413895007171954935569996047381431447937011934587106048971832515291627713017409246201358966114416229028598932340227180047388386814985589800449628070605953148381916411235908465478558643680702111661799038322837273541068126034960869753335735936312466439333470062934915249684662846204546167715340386742857295289079405563647547566874260055942520795437414654716012835763715147453268415458866864682732598652576055895293476005822640810818596715046949221032684805605956576226345750104685530576740472572242235533151281945850302912406112688117607142379562662165178399163315998068036643976473030774108826679961638770204786990283346963598230550229180243383294768487707497285246003945306846045042485642973593330035673150574001779254939283651668659218088456511797655260360378029674651762899387054250245988738953455718369311019905395783716266694784919252321208341746980941245198068609338454503020382188878072798186438141384613579998899936314676903273640116389155806877995472591918058208297918383277293477338697859763281783106783749217510765829457385681439626643142285428841200870770372223682776937910178171828153055569170857636709622021107044592597067807738311407909055193069157462832446951306640565826933307581711585050207649071471477098255416983573510640112132255189221191654556203014327566501099094772577617930796233413281433409321912199093368765354994441985690054069920123368489888001151606315214130231519321237612183668665446683650166902859545113204432849756562908290726264772378903656230828013366251678417494070106171905789513196897871561771307014033455514093705795655174836606222928839300096231578083151899991059588413136466219217262434553777444732390987426535650799410673390453092887434892654547617008765500627154961622197558686667493791424487478440520801416595584579724807505150916772920474187316923625858316750280955055828649165180133831853852034554540544063163593488134374320071805936075839500868018482031947525242336518396979151387009868297951549852498752115765656193188078035467733130764810122817614366345938869639616939704268021582897500985221168410814158399737785941342938326744389367643329299394183169090637770182881809929753872382696111121352322031475810355241275375842146027034717739462035406839370154903448792736929776253943250243608288125948162722297494894610485591833235472901292330467719946573883051059692755590694019024443718272791565743827485824121612617668048567042014611836851790508412372624934282931567502221004548390652961558259408200403930853070162908102789564425469287309492145467146685590630913244351576050320970231128220041353081899106612468577262496055674688037648637206423429401511195069067960242464996465851544278497274125065613119411785300122693403858214232688119823395339193193251958423198407443041160762308251130216598370304759665811365359401187253729536640622988688256093278537490344544241927511063935982155936694974787601570520424040576587761765137192534842685452490037352805748919745376802929480232327882937528449125817360161370390373906252793541418592240903150335834612493288648341310952045455432690083812601557860713048466067702658556913005636515747327965856297123914137551297399860402712922728350888363425598504541703405573262348986645797844335423643607464299123252063918471852293406659012290191409482698795346739809256109129025220186122761391639845243379237327800719923208195731003158975882930322782061446806422304865888504757908727727540585334146755590629787461688544664779858852670891784924139628252086294549660469087964946818605377491449465634867684467593655919552518888025333144943131936376388462942956779792102827097673605907558002337538498903931521637203433359088684620501888436016169496182806823328957181528687979750725480009411335975713576262484796164577578653075006521225104173169916790271107475991125503249372943495953145719526379654056871875449489364284474445600904655435624569605082103892183703322570324942312577749391608448404761346530637525195058517733565743462870880428021855927189012283461444781874750532473567729645933201480291078408823102394840161536713563873023082645377685117680243632686458621255040652861741511051510467582645210977807123849391927223475079227570145178962517918366166695186708774791789270478826733428683784297399116675537082878237051519438207260510073517461526416729115802313673400110184373871134915149474186084471816377207619267351285293335294715089886468257987489876274401134671877600094798904558358946184764619130878803439493214242307961692362118806375639462009505610054028934140520608332233579805182098634622250453271929006334735406434830603895254809182470831380181230495052546589723672035853331004712414813259222678832504601916827551339327827590215446894118822557121447570461534274906052028899923684239529214897777604308660412247289009527630547185044240258909168573404327079902407582899776756335880608907609183804162599750790814954885219985707901994258032362852220994306097210938594999499954909278531711333681166247284355863236956350429692773390862441395015310974130353852637297039989357258059276935153596031325523669693907773078616919408970368703062098814204459329825722552653886089437708102266365495232071215815660086607590242216549163635389979453445902014393133696241566595933005492294142640097482789044752915906041704938575276878440673585694387094935583732344150256291123583772202615174522858395770836285364064682416124501464222153338421553470372323522448732805250899575341096168336677609619301674736380836924879676014892033793631758222817403256196476400354424754995299797889066285776998630923371344106319872261489319605641410909657106549775214088976201835781840236967673408034841125090548695559858630857875806662076686306392078458556967785225161669944832869348349221081331521449323940915048614607935817336377680626811425898861490624194286913885800945485241634741408463196150521999495643836991441702115688567532575037815840713064215017508948598343777661186780414085403864048153751810524232397861714333423869801928368318747674675424314733257938471358834805899782969765195900419539281571666138512344209160234772320318623958706667526829903899824892848882493234416152346527120910847927528317360305398977953389873563975128661516106261844962895521906498336837534274487344507840284360578698093416580275621845377569761532062695808908098007971785906231610694307449451738415862875745581910757986469035422474831203132462621721298454017883975189798556531908624327026888008001060837830602066596437286128648000283506445511861335537098767838560869915909747356579832531776768189981002798958748766119797320864575935322549033948775430836095926505351544444368780051296451104936395731129081152761220377704668836677380133083420876674860469776618431301162149333643713427142884141916985216433003294736452683093607241765283749049676667934681404458502435765007135275158652662585227083116617427558707561916339799062878713296058565300788434848281941714953845279643367310768350991020565718177949590715846527039571317758564971711536816218113195986197418484726339580830380927547526120790783461327864533150362259192863879132991240948551026378718333872737484258494415328245052892187058464598510207718543252216929994079254469077531399632095009293879484138967902116584027403653944696287847173327943937383829082857093581429711848827106423987045954352692635225938751603500177876890471404471130053409790477532342758110488081179290229185840014468286905673204019759931642814894636258232131615714700304731768313711046655227303510617578695331055788673219437379429619398710741980024002506770926095863079085228394580925907118065006518905577891410061155355388792288795672496216099268278572520526665794317034971464669901087549559214474739004319539589448149379590941578613599573281650971568056348443716589494647318763702743007156565996213702096975094820232846449042761195991427491402282114580704429090426747218484970229570954239863338728773531409822259351916817908752535381125567969732142896224877270449669350086529742883831196240601824950548139399304458788019379519949184005073642437923588762622389548505705199861340108242892370228000745120253570200752407235306169347478381354412403389026344928501865518254552706751693347014367643846570262497739930052211541595086713517905749307856959778264125916161905122482360522542204399141462165776687649921576937281082310928351946930936126906154857850266970243872509351161956984838582869367305239398193270211104439411337178598711998020473231572112208978856429334418559049199679785514268648629407402143800134878217718512556122997921342115764244389900686339843047727456652928897060195009756429853528883139618307555327364818036908857197072627840698577747827864718716496141760959012093252038198325362203223259352506678796039532423716968424266096837896754296077280268451665727652982707905213858427311402321496366871977069150285556647634846353317893722872774369502454466678125793515654790629794596499625357020041673602948972674872069326437231723422966278909599290763553068421647498740074557024721885217522447497750581954024419823395804204736274023626283759294452527837247666615515403519241991997384335509468889693254728592227319514130973660945515216636165183155921996034981512640702188929458443410819794690532953492863937296982570406639337854412840583250780304755609072276627980956361843478577581048372984381089563739698622127262129912972177232948225339976918727131490247380982806779134561127151363811069176986563077919651054581500070411291551951743509106373015240100985124468328900659992874537454650870777255667554977926692960775373721206023193061697755625725486544718506974430681876667330720505477813655883266147460334875646530264420160625568454453695430235606162585947392148513437926132364171893049398596944912037409897992128084027805537850187903760305812009200497752898222383385027356435842409317538341178456884978491463569469069947272787015480703262351310330675076066262595113986421839700450065565348272371048134229933313330790908845450850426204987718808069116681483449061497891723209277218810916309830998733314878072631694089644776671276752035043852587911024421543672346215187995920434417091160230462197599168392670788862934924822599435926363399829008372318218541728711755792450649274608215975863877194813782055109945056994000224453349925576226746212767932711154768173521344176211141132077763736508242477116252561701683268724578500060074653537649786675735686680280438750367993919316275427930748293022511524755193853282772540170569269672581918533999557510587781351724857804911888005918886426379386255785276043926685505388296293691974918430568769905948007555672756412647170681919753282590259768822773456552788432943977706393804600640337260116799615910860574572282964194420227390499082177550052042753687041487640176360958747157956132030681563853377185648769460470403451022469519822603862694171773766928936202330848847914771804007555301047223096345311099457534610957186949796833628419805881752348271418878919474159638059344739554198657658294297687347755522035409216531670554636648691006234472018770936454217891189447125850192487067448615726333833590115516961706608047221013877035172220637755304628422020055502560580954071707162674382913376169095885615849342718271561786254701659690919733120609903538868677717200031278515544982476670958101494766153736017677605039084694853199625102064437554852845030812588577423006600496058785586384013120821734452972341110686591302754856847321635844279490670145185719491687167628627982208317054615595572882301513831092200716036741496597793968219273710816251426493627838560406734456683967300953737727889849106168315881802489114305723648742289931160803483094498213356265784995148110347225778118888803260403617776926539178837892549453752082905484871162888246962435630364440892551539728009763714509248396137094900127425064925972672586021882125386265419487161259978325609403233775165176020733046190439591118416476602844776051992176074893622717183125200951583246468914409983391441316350611877299083171502507731841617487507175331077566130879000539979352781606602248929325978568858910867931585596048292065546841150281533448501214702971625075693929083928886242176094051130668511586955012261420250552080539010960219081572133436916185572715078270681677465098383828795989208261355628544994694886665920009925364163135943120769580776672737685369064689065470206261542993734409395414079561116070647677575995802391378781183745805861989002196139368331390436320818417582465344249229663179577267522044843976154668251248931737634990378399737706877673401825076786878541732526159392688376596154091118511896972023800078167879522871264612240074379607786906592530633431185742541432015023485380697353294639257789819560174285178608167900486432035909677399345728621607470669670812284090139988792823677652993048425414096077352735641829827405885962986099400879024833597607981698635848028462111391242052601819811971194743362591686875064777829927893912023310188164384587880253133897686029004751290276245323251399250739805923210922215893463237345259623854680413882405154396966947514713805694617162397727389375763777116772726223631975259470473934171955087502503143497727836981344166071990589926829789087734215572058893143260397048054180072938311412067494081962307610509514357263313523368223033472838804504137985378146041103618324374554356106474138011337404799044707753546172723944839706409924030950480583873052420531066903167977946512214421924152424297768483178778900584093116993619632804401750872006172918046989763535932360755768484233250568990214663152664325556518881503026462917701316864125698650993455216877485358680948495791437409959369590403708327795180558032772582014130914574308141476128909782457840297875306216650539010061163242556519619715746680872326457214548834411777454128003083549023839569136364653667599425025749264422892694822753387946096743385783364512595438213342908858636491961350172269452164943268459335673681211888470442164041131552914713353929822860080396455845961625675996037325525751233224707883054095516612181709547782891208281891910560322705638661848284899033867909791694953886820658102123352924092182870337772393473456272831663884779559902040588876866642752017580468509166981147098885258196233560947627605854476526188412960457049157102770460477055426485554347842642224057846069604097943565630595452842793063149256601206386765663859652413185341396148628655486215050341134026391523937131827618766540329008463697753541117447918080515120373034985230857204718769530295843089919555056101001126297773021236286881426739913423293673899817307015158083056703789682082985166517744424537605600017463341982822639547286569056124270297001115506573286682502841986665297527770809622712231877769512958050384624697525596427606466048028952692190654058761938588168526740318637696043872537466307460770647117161108829903304395646444348156122839649428913944942482517498927864003893724466178640323572178288880168158834337266130658929851208528455162188292490408843811786670059059672400647830291276633899989988884677257151524796376871726409477024651158873324860051915984335327596188258549050000429282792121177298079287718241651385667424872340074571486658573763798018197066937436210618219537547865709386020769806288531432062548253978130061429658160325778554794677689015907372000087259248272229569075272253096246898905125675079484433030071056847315251351367994364651374976165358935242063150610804043665002844442849012668508676192746301317087359231587768122417307633946803242416413963436026253691548222602523162894172373422490191892388167606609608898082431835053877328339158396047475921357943702312462963930973281712754470849823752291831356747751353075505273373451390474017314710201999878257613089830197715284949087320762871010538443428250109775472452102063820666414551302629748540265815960784366728684178358034896642187076415729684263263267368017657172125545518708545319548181808509961654004220472631478167534169994234458925712253629580779588444486164301395545808081559046859115625236971838499056026495309841767665830356883820809673379885247919148500849243223620699585540638726356249211549671325740577492807384981765744815046036393235899810512081209830044055165556810989630331686328390367928390272613380669915113738587605701817459164103460126931351050696215657130144694015107474021606874621591740427380866554969342606440140355679232406069235730853041053649931862146147044432555868968742191155338818949393747553638479689810308362019542590332322256317329116087714879857629429555526614493040061893270709258427812142560627528902684581853238188749584142095863499945573585859115663033581282833210513028393429163069521938025940475421226804981975271444059270722766235295604007560281406420197401329771943388253533473207254288391042678488909825191033552588366170351390100800113360619396104750554732885661016113096314915447794557674278476533169079817113844106573333327590936310237297250919123904776512339950637521810591004707952157663636866976499351863151276933489291738731819277480419197180968114299116347602044765068315116909011553029270808689373333154185136358850409153554649913856027824106920441032132338196516352498322215320963706760752548860196643001760605545786853359151361020196709158098784324605491513938095176083158047127251366455479355073391008076883773713416926400468299378155920903312225408707340630448511649834915577630378005436156593414889569924190647013955181114517209593884534138794713007408979969120346601834713572585910317951225828574800454498270744575752173838205649264135419055989431353434832315807225788895823485361513317550203113911756083107001490146094923284834150289369580897279631998629760415683237059661996908601276168326861375897433184197649817080275009830291100656350850879125193576592793847427316507485121964214409709098101106781164594147730966051989004855346592414175920367391926325005574057062004363552665095571846808573702234869446945952147520938745193580051380987679629712178559326568329969327471018351052702392010353219838372172313486315796937505667157396545392560492548761762793466341852801069454745252453728960659712807587952713697011051226587613282447531132473802231984047535116095141114739445833610297803309301589985561848295885614405589370859761697768190106945486741619017946856090381213739384607410335862678411682533067038967249780113636411061761996321077906367574209610886127011101374660799802993945540342108538151673009048024093995772562630274587111952760512830890285769040766264797010343192128037744356267516468220081570920225219149027051942178536116652621977308742428007997103409724147013860407432562311692135048552618542618984660105545198798292808872683973061466816165346476415285406883780310195545172583441373116026251081916728784276249192759263423416396998806501990231057614249025065909130851596747289799916807564552003873857293015982062709779588081108171069852454754390948818110007491487861070036161699906214632565920608098186328370134919779669126128984835805181124811963013154591225105290795536686587497869591597711002370331149492145859448472022094515114303101639000263208422251685363201630222223340194604062778856214468313516537723523039166741623972672502184607660619543478135958756329085129082124136618951587455641669031781055598182725748635417667624511500092913259848640142121677505973077930011498354065673299167292628652003641470562653982717945432436317913209062827796334374710168304746475905871978791290816897020734014645260075970432166412931442582845375331134110018203636167882446078381565536355046281161996305646266207678094095901799360882552250129054162771485112493785581613853268335507682467970461788424339261619869340541806939409418735899141088470366561831272661108998617447148815523261934639761936927585900393193639814243799650711347317643798128495448432613472346436207143634032270617222506093786382690233109244021745864461315176570449729761799854140951019082190569638688024790032103388719832278527377504433658734578348131442268267446997757360783526399485789062323658217261710223262275014087333120020256729969247445831856095247683961101760295123143411326838615596917170539090530328161672757523578144670960025875405853247003110636316076223464765382398716432761756496420142071821932682514917024765296360718770828194306651314647974428868987130317215764984804965635056715596860609769399446907093571836264650864743524837965413218721202683442150440337869507602098232002775684398711646898888357952447014332653291624170838562986738970085118447636873513169583034733009514047593993327568466176608514331632299291381553512816903815369854030145096815513037105718485366616723611216645769427422717343137765283345026676350411874503722267154132413727349145604768403581355930780095865690741324039316755109441391997427617966553822188243966514449654289614698721225632991327775972854344806112567529731283456915392620782773372332601869002789548124630663705845940658628561159929117936148332579421132601296493431831336939967126568159273131215593520052030933827123098594961626336468731008093812772510153079173977018391860889792631084001721586860237503686427155796973331833256339860441996769679657762276652834937583446740164087105849800437647437084792139359500554134699856032207765177466386908083503522279389094041960174108445881778268210166767818794624070117857413427292475470004783356272259649318864346050761302012307186878058296838334144113355246518722524558721310162144510585293408710048579032373587043206155776185871419917869473876774328940902683409552223348019098690277189177908002925784549374901135011224965676212676678076703699244042773353090661676394053392485291503531900087864481500911595618575363981329513651557558801384605968596607501205266938092375849786026723219311947962424858004832482904994363544333879786541080651413353152547706857454877954637902474944836473986107478237414820146495779717824423239079653672920225286316148777718525786145638689076826361250247075352677243647253315815764828873890470352685487459968275992538092927190816478280889065353423067986243466080001115116949812028430198314918155867685297722542117699163067537113851614486459179731889081442992323406479975604481818860401226221621606449667999713017142085170758715032446930677459714640604118041986468583615341620425893041603629377464066909385047276965456486322017248627303148946749405854299767407737080417874793746824324968936011184532558725374926457370307449977690784930455623494560713172294804733090386733495436613442595999572801797947234992183572414847257353249060733206442392028699973868427612680380732389421464594884176401589597083861678194397428893950119629812341993450835321053000620468983952860002322048870849934660206543377694631017763197941709120532657578911720521782800882923724231194929703378912015591414698662291109437263079977673814742145743312737546745591522858184130373665694873817385664723903768210931010114367709334070402702312014815300442120722679621347845186502924703617211442038251871029654799175077892216983367989481502070619936989700563321435078347461383640190644810658738804724643930703347014158481564417885502580788386504542535064335181977344758575206866677970722324940921975811455983253735811940772364682602787831966880570710204572710738111620733423457287652685882204465858474987374986558922927082710368954131263923831973134244135363979531943952848775560562942944461456052192927248854949427926784568565833354616285545418144333711925445144727796318826186176224326230109682277406984009507881143967979751521119402459786158274218763518374784406297299483328170593192678576852889307542942508382160636706062618932739400461002035662106560609323179619896300383791387162501175247760781467757928365282936254841517083667802647956514026864587450427984049535468630258898588258306885779897584628466743640561421954392152950795815544559410845156699069722339823538589161882705528893104797612391384187334490520220427482114017714175064819455560796138615248813640381063955871105373287862856142166835956926034473219162331956000489212235589301618147063711197865339071865960759822464036645691204589227815094093661439393789525288232545143792514042855666053085715231566013076141257256464582813551694389705559921902976918467407285167852141422672573620478362700753288448541548951750691111073192907449248617512811187379812444825035923037522763261401986264564884540428022488074503065464953502362196386263188777044473905079886238116337626314652381967133162505984178580505432296179157863197607861072938697102763062513120866470355005817243663356618476645354066931924898759919277102300728470391292164352410549039669963937781380238537432379982809641714406421374888373396220305888682336150879127708027145495927671899576039089021830488921162580825308796478782006764891122923784338100727319455526701084743592946712280379735585039926701807885997799729549732294058484944508031444995709866397188151428649897508777147282403256578270387103228313033966251689507587407156866242723001096911068516395047280171329390455078259862904249744796868442655021838357209658345241240639101620358591681482540841912043876289008913345765837103092614632676553324336585101845059334699502765148955940100144333539224876408247305800256272798060781452146748542864309313407488550226508953051158163640425159423158659482235132736631802012588047577006603426541746081749758646706265996795315148719504401381176363154756054193361869918923464920872888220690697403236029403288776524824842115032595077695051072969182945690485704036497246949205382766157231256207556129910648453679566620287846920365407060799932622651765404631969069697196435546929394582008642809929278853523022955272712600524548779504004072060621370942448596989227614033655941063471095359774278195388250363233727119402058688274559151919942150463194638703759896124707954354330386977014021416953119071255108097543339703049016064005256821775740955631986005467073817155098752605317339064978052685025928097910892080024702398809897954702363395882540998178489459499674314203665450559391571696537585674902042600021561695132986367414304565756156521162538200692523120280502070339990277429492973272551417340615717126611639342218284776862231551029710014114307319468376096928105732287972222782510611406755024857439564206769442532937656536755095524593196332384478345538300883873811429388850330082549585314351843995781166613421916001474970399191796675001839658994889944768757171772045648978243388605421038561534979725959794289698482238102289633725385245120331619682273510248311286211036110450349148725937037338467553405489206552689453199379091576164160411771797520427972698964209481534135599080054670951375117095153976452868319040979143770460004908865561454523779036204226559425201354666187590847153021718844841275600577341039893386512155273979608709737589356026007712365917684474971963157623098810143709906337028866512501400188844851060347696441376176713695516521625647057891420729143880798586632205725893734174010610529973477573078049380094429692671348166281053635283793965606715300798000435975252631014164086000284712353831052409059990786391222101008803149764465111291613336880971674608787981053023137772994942874354297472785197330183593760602641936128199254301546942858461441910710124710092638328950418465991484751434583392287650418668667776831280984259740608272244089122558421812368607573690950864806114564876539180599887461731707081741830441685758859530092724733036080943557692040311168884215971408787803240781126894754615679788495570690472240041783050560716521140450946658457414682349778597100340538324383293656226472520655148158832042436071794268544461554858143876120955040553112125208444487855298869943363652024285606974638405851328237341975631599979924491451469714159360306271919019675640465401879182397940320984083128480358297200850906610506446335954446728261360217004396253853871242731474725467700445641009432755496875119930767581584834580249569666750227327674608119577670518969431277198290278918998576068337643395877900142660945720961618121484680560040483923258574609239314212087060162300220403739755467703050587811762488579394182477868323517756906647416120683608744763703102261217722363201270065633173558475052972367641839267606565375988128253671713889256117843908846483960162835776876619535194792417503554404563892021447506288283824692519085948368696012474687098220938056483761633212387525038157959269461186929437911753907744759288466964794424967750996622753799016274881922722632888960519529482550692124155012487456089724672666263602937929854215155195964341901684228108607277305947459915940913563581862061946649479735204707038133096907350527333162921987398995700079828160738488418165894410684244284860460751721284055995563402945811242315957133537822693172968354837585229797886111044844368476070845329249146574836859600353456475457914943040076688281623460195873606098353624053119050042899244038418885709433238980606560397399297047881826792090962591818958202078913155301304178038566698688177978683075866691934866818602245506017464827551785495229151869049432721854837777583293509752585648346521985448688605313805291155017623843330054378132593799862179553331496163730710080299142541223478471108989033113588019231473798931132630283461958328692517522293223732976844773752692876443685084074831592445143389221492727219756501036693322944352904111445901814326039698271086325238740672444466459381546309682663893376538857055973308053800304278627004769528101263958656440982450092390372452138734890868616301023223415550586649286398278941841721996066545502395086887335208775528160063723820487251785904412424014862244327851495644417935063268391014935480871963746365746553998566681387059401464210521255049211028781863380215407598787072599240139079604563830409375792538358032911114649956076573042897410671985089910562092909357308260071859842167265089578889593397875923954370435231328911078424873496233618906926715834651506778549955952547013294809033025474524104049822870070880961647803473098903133243661045173879939600645441743398988618767047507570665952417165300974471550577126696850875595302254338344209515175871684792813158866410564890064437919889018627411253559422247799837426006294440774650080782140367554803557161589898708304801347354443658468903742033467445665142410038795304422905524437393673514756849381250004766519799282485429314443331685473982161372526689267952649120286637344911251670977013004387027788385809818661705363735957837076050804465005922711050126037340208443052284845576004503590814580728345332814440159552457481638059682735028176551586796696275073185402431812508658327591066875378306019263650515858583555103684544268103259739107971350241734278056836732813509111960536257982645488539082104631985663998231855420342046552271565895233091363196226583927905701991195434875630954108784804604235391151354539933111388391369045603517482913606284879837393643229164936488749116118425317430401122812313613729523284000252091151091850848369093280679625137672672224020032702272592134802751776243925492190502131810279652482746175824079531258480672937886151922983667615207042089845355427606781868631727616351601353017224661270956731188513791348520955853657092721804915711227110101283846690012075698466162126940285178819288381396708732053947127267296119600352675438032981537200853055168101258454011023717747548279551919794231807671051260223437045670841858299349507350242261625925266460941369935425986159377737214011466856464808339014013405246071047970370167875132168971026609806049496315072107794495721590121455062140164494947955110078576624268589219002098471002488971111105499871239273944721331132734972043581615483869778975801337131739668020620306975205812143952565255096753660740431476504265201038688021686338992882811562902569972291354098596081092136053420666507920832272884604968546689199949807373963531441840564435519353151246300868684125249879862102318869496916780071982175862887947313798659833984569464290117503535449565799295665450906365698843003996230131325388700281775382583125719564291331181635995634310274424154520175765542670443380071028819120816527189491368716937930786909477140576354445878724618563979687072502685589860995286730399200538431052103407681749224063575966028288480880289883486948890921094238380580006635251094970524004821564723631748449960774517814804213267731809195750074324330199139954689936014337693552656868287953380173696238299865557030675931768554521927732921491018503291741370703203189174475114365914000218858060355904543866897930303356220385672031205099951548736778819026180268371171768095847939462293712138070890876557411558956839326023260351166280444114332906622588760732602444956280956081773517617332156117231309292761944154466189393625910889838007203632895041338218387548801498372392098849348520579663887412938196614670678176205831453648709132106206142608671009072827496038272982833631416790084049072631076655514514445398807408970079011255063245804561293311296604405810473915494523216216303736833364026842294127435762269765145061135377132212064883012361395415207693535538418832058351350922716041695847634364405095419685477853695409291617853365387463447447682124760027748582896657743560893549303870309903514660133646105306768672176994370067653838791411123826326803171787174064667999374956753770259098852756701719231534990256220428853023779886361539280467981836340029697087397433026496405476789232978497228567002472526634656517390791179915022121369468227242678908521443876995078855595742737785690323546625790907533220922420124306347251335926541729028702748471547386506110568299033823647736167372846346462566165715512059888737875826177290877843789797963924038857530125162101958379748097435890484682842154998194036258732801602576115137907794566997800089887262884829665626908045136633741026402135502973251586498920463177429245115153417553436619619288082270264450246029518495790469262773437469354527285543851537496843318601192754827722375166195915670108483784781021121652844535132523724060429429911642259618366310781578090144166901072316921393583211486673783979640476880373636269474761989801428506545692782045104437698594331359925323467093464424303253106779898267660934044087407149036012447170992445747776198913701156652676014474454286921694454602689523443758443370645040356213084716797350363468394076170780471846603727892582041124190944458176705704699641058131950756455808147648644572515320577165601052468130112911801246729611841690010509493750918025430976689503020916510005358750089282167114968758015878220928495026589017773224876696077728746593705660838154676908584310721551685796631557156111608791203598812203903089402795617221463423182068634737157623235656785195415177879709003862110376847326527590995959023871291356408215966586964550363917650430643335866688673144797502519944240886883517307563988597958105987730991001432904371915890555349395737483284942993618130699691623744803982239900533426317578567283617731246984608097854713913479554947036196116457365920702232126811537810740056183153349168162743862304429933300642364369724073541451414092681453340455668852056791812058342958688986002990326413765525523397280236207253902744647738039623895395256853879434370427505055594543551999424055124244664743926126619439325075138165936029453607650717996018350387359686825738223745633285719372071991298606053698298307807053308067154214409922315385910645473477797752635382702728622419318201623383150553326922429761706770832749466399772180887360685558473795270454389163448790676171672620927822910736044561167732473607348826098453959222296828457312604042129275965450376433249727196127241528944358611239848089322008858717333054608144793825409102189485781421739499864153481435906676271348901419727372773448000877111976968981626220123347366421051305918800259985031667443783060218117456763255870599943015979179433760502256074101482381555223983130484899870828175554934694449768193178860892990506426521991625647836323370120556849669941090475450651158774705247798825543850997744981431777759723423464919888161215982449789242970076354522968021658016744262498552709782110398411666232568276610706517529732687370611494296469110695678240372100107028943466339629131830106879571012927559177063877073835175014823113189596478883716879180598015401303883593359590840240322935270766801386025530496979237223282234784670162106544058362879206125919315220845672969022701221353626054415863700491762390154024678436696617823706308133839066783426094404112418202670568703537211031191021358969118574423080263185604365869621803671973033874891398686826917557142238165458683685458180579139088065777937543958110529978120018946374003954937935549402507367981507852293790005378797098715118644216323880536568903771701817752143687660394718530409929603527343582932556751215728563882876239236133424967367608060564936949602762679573747642617830136753010570838264604813140493392534183196709293375550009243041494580069508973442813487499588598209169188790734244864197897495495443261277321728002694403463381606763279816882289290443535967688397196618785325865597089369263348594733847345737056547724357831251869287771779073348983136810043832391699858752621268491565523134639784654395189568818051053711553548127077440894879709847060321191217419914349433803134654155864366665299129582658320032540171256918903468422771024318475194103538709062376651058818958693852232673025088651192634902600307009437307892394803728674474181049164212697797495531538020627382258277863857305304352840035323897481860296856642304732204350419349547974450645728165297339458227921113529029923528036983589748412812900353563757622670347641784918771782772956956358345855300234958223717684904811569071787517677079873959202692972191287189350720586870222685570359777504689235135158315859323001827787156525573358755943235638826487982284551128614040491585685402831585205653171000215941914154885975843428601623411892657200107642792183936759672135493637079815882385481079103816000674779854024190765860577620566251733972649813157393030290342208982521736214668410508011022641375096014566045746775705524813730621314804239992340948838306073959806787270325714797130637819904570128372323124579656557448775658405005956204414852066795901546337256889691998479880372924350147079515727662343593079138806272288704487566589661807102264860549373877929376846361545305947965807448706909798356691597587526311960530117549893568198364509987368645587755007418904825747904530652307367761232705844985686453660855416582717343485101510814670507495395088389247801126300038653728021215550321884196396094474592853751530481528242341772711345356616425049312362598730039539545138852141139388712562696738802146424729337660984000276242491117948645279828518088677929473772783964802762645608739119481932048584280748474780857289918771304753183523600508846472813010812972304047464184110791446826689504812755936154812298894386230909625047094421203203460916646966857042163821128651558975548146965861346904201573151909931895286297719423950135445064210073457973443307847805096680794455422252039117706324765563042554733883754530547165841704990234386094841543820093346752189982074972344987799958044591687139603059276258643116867418603538279205365764104854873314912571461845950032313433958942256445951023547158806264539423895838673411648589430841247306805616852945117585478742581751223877819076148581497381348780998616100547694604033159931659434221197033218587418608822816532597997634393533804162859056838768977651157719375207920776776070822393141853656618595530824510285006871924531188188249761817737655924582201433673158636905469361558515869519593713851683078691704453468866419474043975513178538249943387731580638708419092404600241629274896806602009697028966910853874187738333673073314093559719282720980759494610001527468082048357358886245257120946742706814920234350602768880473321828405863231090973976170231007611458529235988326704230446637810940615216829259255421520467895176292680293408735702755701549846578468928358696258924648080598934131537018974182883851584810454330780298508953872799666145754062806193553115090116771491560902621962484025563728343539361979095710923869490904641373203580363893944377236105396803982494885157959322339761606466233505711841377115281065670778688730453883003007748347347889749183470521768307821983734571658044734733162702898581530983744445426638941981179109641582078253625938096384219546264258437511559158882584428359230182922834579307787842480492670795139972550166115102264391476708954966797662385779986992139280900473504088357625019206913261396026801463699117321343191959356969894701129388115150794789796099946859586629785779829710051442263219631247716273086811273981322873752246433871024509809517225797032297590825662299693464383765744723943280913730882403105116717540883883010735214250264678162221256640245518855668581068642401019536814057745386948179922937233585109293488210278459217267747027088748201197719074509361333316043546356889892074142750756959404473765829302142129529175771329112090955974910259444690424981985066261280986804985969996987751221600263000665051151932202885045123887918066378918793396457400168585092585874322235285178791440248039913950036172472243101347405970653404108741872720864157184449229184859966517637731853310926105125869052703452783886053147841760498242873637305281751507754842069510327505975759034326310743221245861562729305364780408885435404472018620787855706708990648475131291330608210685342426614930884229597882610750286328290719510681836335304486199151392526174885137251172221223162204355209130857418205343543186798428013064368002453760164558745428288473002033499122778526444550567276077200540871649455849004598040517804620966937153686751746461053241019607592047983213629862102277459930679209807084902014343978121565869142616509060507978192380760498852084525860511561810545727629335209813726510762842064061403459453018788327884318100392511107764454320972799588982945526938388306254658266396278729130255229431172551495884713629829593607524686536858716944038400514463365900954891052721360719660318531931701054175174001575819141671702505792390946061039578220078800610909109384069549967418309431173511163168864996458773663733913304673546979069252526897460420119910961209012188987719504380701847182564985808180052456230500655333987213337503574114962635808009517514265578911309438713503231819323722639448704531350180046958753607094553994220527728601703739127113318835090042734503341757687999559981537405695147428134248738841640430577263655106407216645160025105085945979484084058167882213132069105526300427868131555159225200619187790329485733668937286305736937075037238114855204995503760472157921387300000505670570519131419853281142009833649743717206814768440277505728900388464789222402264481181664691468760089676308914639766308817999832008331599814063829570109356435978404286977775532783601429416776723645620006022647564476231441118194720369652345083964454521346442614355986528400592709198081933015009627669524694444174411625442773065978146803894277560758735445040051846714098573462913302157231939424608765512193666708992525341384004705349591449802692067421663501223804696773835741255749691582434363815619485634117151803784402586575772601184484828246045557272007688228409696082514445883302153535752505368281005908196828081116153933519587023961534811473439474962404180486717829859049082825077464080328089495377100972249920338722871378479284728680819683088272198671347715491159278389444408630499663386715245250218563139828685024243826916634705530180096994378019255903241136775169966752841291159030730982748311562819516459354494302507836436635263072681562456519245319733196045200134398838003048276370440448067436865678334179005157961709915265038377978999595095921841459399929789447901907847724946456547878850614123680793385433558061614947907344943627259255664963791604073878668974614424188310060395578277508925133712377105632576363432362712050644707829328134139521782307991338040264883372933369540136907998502855419280174017734307893990612316630649260427827747165160215252173784879284231257239861076685899766283709676877835725283121772484678915617652726147024349033087613077235034896491049188713662791672374519833385600320846747952626612530703646150081703850726839699105087673528394450424799067681127846598377790068158590124430710142753149697006225376070999941836487494874784104804292566728917972553565592415682487385171771747542289511758639337172122153796258523224926502568003781556831498698252366962539178844418475469637705783308806872542590196140069447490207741576938581606295073975015726162003617154807128041685333550631033976861068881019785404491431689545967565020981567346449947519619875844169497600347015226199656079681805673962939929787889889007281319613250837443007889103698123718130809965805107815485014700619783605296194732608156037589518703377894924695369733914335111368849443564459307848228107827739798364902991626308210076413347072284333624283154372549560467618414165151447352752896921823238401534208839277105453153831099761053414721198865244289245896214509271981019982387106069742337011839943130051064078072292560884220964509467643874625480045756125202340731107743355474508928150145712848550080530674253257799677589941224180367036576088379841783115517975551136512583686006954910095818598310640104067473224750770169926290149176021695069003366203910872622277170390630248188112873354949233067547125933441368106898503150198281809670899092034199813827535312965416608320084876498196264043680647722189269081865599278726215179178909532005159559901369743561424272405208461422242718451861511726294459771071478190358133238607563443385808538724188623039046633570052085155734974811653466538040075349721846187532122942195589519374396173428394272976697535535899039549647964236618149450563443092798743551764805738227181971513174924409877107182665119137052063992433250810622996864110670433096448700858727080659044490262619936757205271712534125050573431008644824608162538105625138146980564986013787114605056439093565366770186541476886758443975192500432901007355483494577957745071511622036854172595883053093909890038830767276231948986085577465083067988957832150391545627397691161911265060266221788834893094800255685327283994876612229569872140857234485018732005656087387290728186214513120010616783530453527092568378867540897176767994827521093792767470113082579164863019557394871740787306567564445316975307530965730644468356038062931259107832188425775094780737065574206746149959494813465510309640352966912297070297280537985369423954663625935660246577518278185078598203036453307528370757678413505663395719564999372701600934270184750449117550890286036601929809001875913945755230367610383799976867036775352636174597551223316586995543232500240370756939791805258594103637687642426419298998345201870355636919413191875577924486107221505635926526971305014943465709263924434835090528870479425521496323679500693547298996704975464632652546422159317050619079527173980156318273051108027996115312168139051967671387383467686148766704845250891720927791072831860390127499408086855439709890940825434030181847682378477211347853123117980770941705864435091436016043327527599869214195158606247426007413951797807038897206636253132939535890933843422230205798571143129414861344631870905320746151108808471402750261068335546875625190586253392175789694269608549275249274155279385244062257538415431895226904313803974391235229360964314890676048251952193778782996399076275079398760497853259836994894692138138344187424336844429683497336052046780856544987010241084082666018588549799797678180436400273591701837117339726814885321208682051855075364775311453611934679456187809506307973964619501661226596798714669822059068395089228460045508094798284825168173090825315000681235270821278149548541537561336158426145470602869170133820707458256863611322439675293334046549850140632586105263454412192893359468895909067045062319004652718360801878537173555769902454177170603983916969375334587062680281469127868485030232826167063036913017140994156685902148338039845029373285529824343334807131459838931831574926689706635026470374112522792470580483245884997372272209476907952984143768230376613363220203280332219431875414018820768999904803379227293609688833876830288031670531428273683998294415476013764509416848023206761257275106547586671555408095806706656957632715053618673832150485485590020033731710224543813370784616284116550514645059919107039719003653154057017924107119995204089128324788177021112857513338568778117932345695834445637668600347816812824851151482733417181024072765600770328044217837409532902832395311625395306562280472579380395199318680521035945939489409065203955389392720112848840966272409571376704252217407608108904090597315354738043439921644880051682294647106008078115987698723712991519615127729181232124104105054683121677346165202683433272137800340437033064805570634250881341236199108469770882226858899690955400629519713253729617767653415221546044684469401273093816799569505334994513830855342038042725862526500106087207984673683170666676260097507499340536084336023103801138223182773178117403900210226077638234071672633296387354034266702544234772798256061376873866777090141691879142707528803446434135440263238755372828786702790327548686072418934090487817053615428629602023036442565169591678950921173464706846901339522084609980229304289987388471666871538660904782681615181167376488111457202240065897624198374622780944545097226059162022243312998418174734844471510668030974724685995068428040680274116296873748034703938727291895429231283581613117406814919509356189838056982619991414083502639780215243008225683764597793223958633936403309541475519003999417590878767237143886395295278737050347214938280004544101539564864089509713043505972445242049307691397550635415626273750284779779569675788803089023925366336405388613126089621160287741782487782185701375906863652442164169834767396892242037792072339514243351109039053730763158952705114429881467348549316511319289163052734263017536660143961504067784775592590469136528659671937633390321122754670933409111731514543916138379592641876897243927378379218625153457134915895974242927050306405567690573521563783235482158055712551916540800708130018120180939327494479729402467189683899224421776541450063246324253982276371690183126591256765211633665400976651596509182024000913650668379285737602474952620759603058400531797784828326842155170811320186904316515466035593694348827882184605651690573139177081114172174046369825126984717137478149346619516892040591355387274931167225692488294398537301167512745383666568347407570233803163224301315462755451796363570748743581647360375892461699108806621923248016903347206039547185793612677655537787514713505382428695996137580119413924815527935798595530043147208502695906446757039878287965113084708178874792080007689075148892078516072104098281330820776394395121660270453196037927630335949043908069400825233643922700931231348934272317359487896985936806989574258751361093608292596123721654192553976008755901794362103349635315759262828718187982161803183149055181715237282525820220063488228562137136761457033055263963747999185237433347900506743015418818504261789133612287709182361486244170761311256444249639926057976287568227307252140807857522057461131397105842157003694819184928201400890004598449014036892227691549881684167769822180828519039361984697894540302511460619461384334400002406810160577139164403357561094645998179966222107156654992127098243963050268278465097621956290348158477019248884494130156866588212024228986889318030944238343275959305470239770467049177458780913671515828179900797804589287578819410296383202671965097550276884651791244974340870270955580589943320685871490879635032601551198946404004813723306764881040534654730638612069875675055324509994524409191418521330549286765223963227038764764054614740707958094223581248469322306514039038813711068642257993756385914332385165973486646434825607412949918496382506320866068094802800912261478542653232082411421986488632357214032756000844522238308462395172649955666751969184633106176481958971526288858375072677394275131212945985347259272438899253756139006755669162086866528379231884370221745092061534676834895875943634450763145914219600200081717505454013878499166820921535280023635319311790870912752825625198551794267919150605067308377397461302749080413462889716930227465731509191576179680697813137222480414947444619622313973201233644539231494138839900265479035923794772752306244001710776911245861393454155566646492871461505229129764894996164276630823151012663861615082061431453290420016315634434283610703361371520773477989537234263355554160560962288057375603692650670764014156130051379081919846116006636315490186769804355728318292967375247817641417903845605048522936295965895398894644266606443468807996680024462526494442199933572938845677223899066348388626985551306816149757544233560226926689717250603184989705960253405613617694999080724135574257299076147193554274602840855756789157704849356132898150189701681818039224131819787195663150849519905361363378363644017346272446739605580009246357179274011000435814644860860689030719618847433024097869979997666084873399559121371853919110720061457197351189868145016391755280061700769157742085611914656954647076016812826804135167947200756923099583664499505353424789466313574429276156748710323057023924568184141066807781790962273686649294099953108063415217482579219247220839262128545112641063841212601783958985723736984460276976115706924434838453722631642521923418233498098114190499976154704884905221598493157425295539452948139865069785262387221131181270927372845305393463551200602833197692262967167861570650413417958241518173050843087435975185671034156123967333917126125451168330454777035303500070047995069182205843151542313224710853563029221023957882253804722552813275997521045797065199036019078233600584587322536757626998719463029090228574343418363820616285742586061126085125043166023694684705513349869422887868663941152175193552760559489373479893412057924380838135924804534198958327130153619331657223623430419830570231834876710869956894358377347907635354194553125446626719579038556525518403199053252525281103956846482390093764115600864850320831720447227452225537313212938857184728058108971732409004103593703634815082945749913691807146914489186633803887477876067071443604622322105937274829190790827026740617115884631632831939115032737400005241655402499368228067646377014484006512775775690305240215349800502266921790429613095545359786717033761060762833866364005309015451132531914269951073124026952821700429560905749956731158726214491710439299360128085310076306626432765202601943716451521287557464871572313862409994245529803967259513430690293727858574109802244406193106323400289166314757693578126722844464532705238089008815224593884387151044762306767067720720355159943864159940198314124675874382412361781154795382592088077898556090079292299033411704320250902741106488245502118289460235343565756357610663253234532231254902916013134562421822297064971960091258567532933547879264911109695331762845797729432485343435896069143148764864001279768976148938563456051929418514416433487667620765219786853616576092985901695003725580465138397591375781165652230696044758167487870087247473222452712894819014893520507106754740788970591865262578510087194789288801305976210794121849143467188436717082250973167803874911547933185477458824394495184545307689340452933663019850441798735367075584089728135423741235333253682093970977281059901041625901460581113552411722750260760896587366526641695784233750184657670506221795042867188427014980116531312428388266543699766485362417502830716148394428824423035017430774891970425917502065283259644865699932887341645465331778702182128998509538844145279830192994576916242206977236564431487620719630372287210727945747950246497807513891371322712044855109721638127917998832631095046825272003513357491147563148792926210615500059761711587008287740113115494456434423579457018020621622076000490242103937960614847942649016922775772957773225310940328716108882257519569388386436793114034047034100874930486433338621344722878940850156449615576844286848999983141800152977557043444387143255984547264685140847145211488543864305090290760198846149808922323202197819617596209777988826252855666096530826684884843790807229731296573978701147385972971560558910820509915388889414004677472258021225970760191548482427292018671661199073198326551645453535704771751081733604770084563653074138444264425973624858675603176829333830419600616039856492408568217010922947774109631079401922234880177905427873877336782939331581528390783749334327796379697279130126604738364840986457811613413478827576219639376299053669135344999532897751431082560420737715523396991781522101764129907150615292227137910963231350601622209780107677722733215696369498020885043335508133458321661100394377552895435426245510151632771287330429539871658554031648832444313077458309326931447834294682196401405460256312722196422386831540533686426073133945797718787295092250939961691933551333152416863233174993666827690120716999081556365123163305581047125693402341762565194265257645549245607897795545035687361376970469267386455576939005727681737992428972421548247322355178568604260006257567119053328833157284949694092448200462566990831303434811461473756299693047178288822739765968763741740413745292299559379719474300597104992912719891341069130201221068942072347912353280715607435806121058060726262245270559146018864669464979988743928937675976927791690978779110700620668955214867040880304848381540339589994029002441529590066544043000130169538028559929928559565810166287977340537491240726470747060684077476776052472983665440226119880344147103209598380282868820619307102127143095855205875604369552207840294599243608822521955051402708410346404095353180587795367248447677739040431637753148887185106743810891443123029293216128423013020229107192284781251184461133691927189518434653598949726487715746509172917943426076219276389790094972889734559153727430811193339876444669692859011445828278482004835531956937201727818640952102572200313710085444834148995015231810560553766568260354637520135107962876934711143819488681965715862479820663124037907498915554758339172241210542749631488477904129887643549625838946962052534113709921396745647120747943439976116347482330518293557267130139395175325090357125824415350500616366795662064110373930542678462531798269708755662181582026419263113662307521210785423198613614926319629485534039691863769410421906231245588179649213674926302005971333239864596020917533070397743928889156076456954203839398067027224893114573057874127821429723573597966496897488931003245094171231410973419623800744851759146361777686381706625364241002845247468251748271243978458044821032355626105563557811016728482896236707739483805475688319797781201285850642388285218005500362002643405118005544813472015517354079223067083056804129217596892016600322524278689091901053255525852031396526000504835165695560543566033905804469752635260758605989700873689508142419203382884204603571986508616140393021304753083513753812983494746805532051581588293739900378601819261372825880712155093762278044041525500908570841680944959424985853311016932265466707791664406312026600373680033278866457100206624654932822181712554955962631126398109685726347369069234501270433748381540363269702329968825756087964988592813605839081839785009446036223047467888041142496660506404461676511035187925324243373291001508039448380754587996667656063345303496461478689640703127214803319393124248186600165939903118092198469755461810576944875169401572761240108575152698449079552374110211513727753675550510306404870321489912764764431920719596383866010184088733490839968025229544414610195124783792128367303807375477784076125605467702049503812278432501721196399904368284682607439357827187308484420309753519552307020507707200613724017737897957473940488972756948831794706394841080250536390664116895107905289926344586485121915492217896380586007717377257455593096792080953969257951546773844568685758945234644264924964979906800959261638305492688287781368169629307288725466914618093517684172477942793829712968063605897595109879369401740742925730784257691558414993024111104669761686512340851189811876782577375886455466408400080443158686911629896385135662490077058225056582145199653289605990343921694101848435273589036417325920584544421527479417689429364891044614094468569427893343608888593657323235218221325288207320159051248121373018875685269367659153777343081578757683615541817674096745825506177874671476523714386325831952599276282578895785265016934516698035336594806616502625694814119469100693881607357581100210583951558890760242501123349863204355936434843922911996018751583709913867992437596074905470999917338501237556059116358388083717780183312775649426616080650399338287575987419093148314719220488905958322741735087966959077391359702122571914576854477190930577758612036383452903767123836136696692607995969541384050346596737507319338649243168892824705016114106326378465600475276204526512240511950057535118277279663303439626135039093899552871637142128274356860945347685499358587053287105026602735552208096157646637353072998850520049651182759841918279098618164321113287531482711358145886348523723428641882845719777573799201055444034235601147810599594209028904570310573574339429036862291362875974742653524280251029873121974615684203918861955741555350754676465546680013190535514260383559451777274270962813567923760954689859346208014102172669820429665008946068400646171347030875067508747646126903302856515483868013720615471499936289321361904262302704129054239316460068432185153357124060124183376218017708172285688408836743547394130443204089255823396347802676228987645360963000358122115434339787601747251355837899619503456866253114392567317389354267563588886221645988634937304003527400847226337266785136633144825855671914294730825747152396341004454253836189950571167747782096155390060933511628402125383578710056921910086213922625794829191596338341556094027291938932707459849043258729573086532654362603220967741834974939814694247341656371943199825243961996041683478862672709064605623830495664784307581521686922280496303484170094716564524283004561476146808220504749992011219808701070103005247451778189109900760369440729421428970981455470063657684898106075224462117043533835225308046032234061415829930629673550364034876591622292175891897989376356862907127781943470980452569693782976359519304847659370714353989756067905567883048421972219739061737401875563039601697643547188675438746951010268863708960948467467277836680272445980871458155005537834425661687720860327941738804151404545892104658976364941976120316694953966820550845996067177831553906610712508627879987114866545908968341217406214104591825271185419314884874611744410463454183450024484144853024389755184619412732708546667481199025079549788801931756007796451100572361091326303384127627866739603931626067628754020544269299078330900363308040362886474869234632132550331811918646883969712957906724325971311741666471128723710156281998358939673176575514154116476026259947308440820190849139879368965957293252847102728533020519146148753826636998384582197785884383986182984041150002612752775900003548613574256231665258912022626177419910489290436471546065027774147560970339110104457336955442503489640065053887925580644733109211367115552277521894817973683859756627836882211070444286790695227888031398393356495996749898913664241905780725253827920618623435222255719324494750870386136826177803673775465893194355497430479617369104152842352077412540401620339344796429936692661452427896856195190421100415835286117312775948359666994865529054559148010202121693403977494435516491760490875065024077355484353869623331663679045339003813405973114662037443466928785222914089123460302481338162610990690903133078665596794708258760712372773171557966634947376540433375312884905130404352925307709538529904581463896903518625071900246227781841786412892196984746220800028137827027854053815942813157753814897218978566315494421869579731364126664932566626666673598146217693121142099252479078229885545771382718113081728642906112344332373005798675341356245554917692344560627181041099557985398468589117919257485709603373771934533678130188154806889796718809449006720372044754399618671871262032576740510658544347043220775094212553123691837835745438445301274611909341946881178248573638458452450099248133051177632559109426766260700735215341896401484908181526296461517207527317560573276998515987718288951146343261966664951532313268787097359625140421050262555903882597689781814079656035564305371217162538192582754606188361279493332616843519130797232082414438676342428710920205784156465467180653585604125337631513184723648269381030254828436010985515362806994707979138739252705845334200110373631398381471980142185346860597324401098060465426384694866968637247369169728631113314455300202228160694861012272736667724122531094272746661626378929322234878238727264887980263897191902770195180478408014917073925587805734305966688358161220018425407926327764472756802278668246425870106027469154854109617766930412385896383990129105862642867715816593030197618039957928789260778337638687690793543512582125395637240969339966795376620436635973350344583855498782339191021593509425214272697823464175551894317871921072849653594667572221213541115784299115903876706555292239520312142001775829201223108341134013171122840347446074115811193580388573935291958606723925015418347149663662684260617986998694011162350645024913478301283623930168336662640668495628018133237843057586070725157741915057180778197354596809388084950007711931302295315303722608649442872968286849287332437957374794980778994404198886430999114190788363697671348647189515185211354839304565251334624283577193272932982201606427055681138571678351189820138768200920338476353527150123271659432039017973154167496355184099311957941693032402748427149188901185093559333389490418067584888707855692051810105097111228468631774995712018861174766426885911306787497205101632213389878451944157711633903283030347094468124516050368001335583720317639843987507821835999520866778453904034331607868182114629572856958222986864695639615459153312373026495565209669841987384851470835252722530634154211846012799175933926840708897512270237289088733327892167844141447831221998864416188262730035520922675506847919415576490031353608681830588956458251935283354479518423423609545407797246280332607092996121727956211757446823590395117064083156189537686642482736964620352704184117742479304300703404033437801142464971187865305172898893791405582330668959016958772857234563967366510922025886929654721328228527509152940093809547733880490844411692640082691040601903277055137365850766265655738869124237116967258492847038085689963664966929162018491005092893916791367463805190109920601965502846838019164530116037642407451171125101991471801194465535463985036849024078381028192945042492164384958180707531159432672586933625491152922309997054772259086398548019070979764006986387362564699756674972032333038286195588942432465135288930123962771199256173492469124344119956701989323048807110002863216616100523576129139025474274080558083676159409558833554998223978527665606269339245100920741676780696940511005556690046671571328391156779320685738545941172496186695566183834121026008671348849943513211370951496931452749754082131071396547866168574511715249294544418791280949512871285735395583343066660187979098599299782708064838830292567235855819963680168807485097798055033528873597991615568549655889411768684818964861663622878383691971093810207706581514673987608853090811149702160682006779313370433009313871381032905333550483642197064257503911666072808999754105771330278218085915292340642257458597935910670033047160102118002647680304290068961574661187353089276435721723600882710533517035521786432318520163154997215414693911178401105055327458083673280860148815229322483221175513753323937825247431724582465883942999455303758024406578645432616772566210922451634148192554369994725265390165396429896127852917153202944989180817989760876316771615832901220140313821706599045951764498275966434799438132534250800124357025872764893224642764107294607552398866911832606948545378780380106675364010195216554040299452680524338405099951115783531668685194689052042228008161825561335867836473076153489323502485180937886229876197641643298204384766112594534249356671428751432951903322981741952990117999166422764160377378914840426530622021348718545648632416740615345875889593456948353400862315096829827488142548363802143795316860310793530048527866713970347916855282683884458713989222942305573276547297740524583493656934947712372773587339203572776881273425490427496584283234578664028827551762906932540332921278798047647683462046854388703236828759348266460311760846158062318316764959914354652624458190260435780883429504472761269302777393988709791515576870551286488093218817927721937006264560061262813091779758028842442200511845308919855709947165411564234834373615555159873956981431560494447096024638800800496835904971816084242737092913749468190263056811820039599473432584416555011598261472739629509837804260182504842250278967402358981243229791895996474668128161840721710259156354849055915321245888548937972770334989901741849538375968939124763525867763953004445756569042427032076142723603917631219132110790503514208056240066786376165888737346312314704246756998064913972302936028148944482220252533521025738920357639977509215101222198529928948272657482327520271995845458189665155671469881452683818752814863511749144661192288895638522239331059684692485412931895551361301312368825599390426312759035681305656347934983718828639962289669478884620657986061003427845536363041865314684367557905308106461521309084474555663551622855111534223087827932028080026715651894359013017528312674218415755581685670440776541407382738579289163059378833626824199280641377078111546483745915160886282497183244961282811668068767187123077227945216114912771097802107215037705741778531587952402458284729445526268787943248071391551889606811274615599570697589770688391987372322382854574948952076167256021858150353986826262332848200131258797781297769458406127429315181560060149941111024722808399462950587345735358722651080019198633215816596684483923784321960206620014726578014260386668965420032761140327218053316810458977753482233319757190033275624528536945934077150630804666690338383941831297385147797479595953910229179022322813814558233729995826313171109600310918716521184151293821034565191488316232465166185158511712961825685923155566668843357215494247947642548597299731402094316463450806017231236122363275689182195918343183606614124031442865219455523812476740847653629238022732937666853443834014902028323785546913386821846347070530437045325070825441917477172067557566646963115242123335962308640307595507536295332912688101829291391483806931890509679659085958471338736002545100739638947841229083330029799113049712194865063198259044203403230571691119052855834605449170408207977134481899550150850409202525185125173748249402053715172356445023066054926395333408005281596515930656814917308964853197618089058545953054920210435872487502028763280508281594594282208093944127209384524499083832452877087493898674421506171968254062771672960722509164312697137882587940574747061644482596922054321006960889489745213415473019520488076668013457082356365117895823478483340277580745106366875787547259748333122242859221646506944089495931633410474991109147432637685449020015741527543428992372092389475424206995955317083220219988526605097639862002717990932136677403473764595784384169612597184831449467806791918210409833155108458982648435628426051011702765684383525501957161130522429075493626865758632442827197376256519075555059698989739588775999152408353588286976199855084268767966674720282337641125892306204874923437848141922395734451932833038865044806907872801702515099251518966487783456115413443465896650776087966432798407487478038647447043664530951511572452423912726367208145528778977350374850700650775757174268913950104680804864614805833004440703404096904761471813881013854923544215044817538944089055968048438646044242250377724116091306962877772529621895136887246447168395622337303423322083716385835741631954063829093835799769517593861888939730413862746259592608954291029512560664243914282221480458360456283400361473100759696604679637630964669327232738411868341712896942203758929012734343796188308776885811656645424721357564127065346997095510197973321055493956482516093088345072825105084373717555867984699295070013349638587540100095985767717476909051349061394204150286391207379553411222584803144720706162245461809560165633919194389402235269668353318256940386690108783154969622653681781833404883611093260167968060673822238030190713807031919971884576242654738124777063032790873922230888905969581239491520402152014890219108968676880517387612776241526535035692765395570989470374464380172509175401812680145815745811565077268673248864710161255844149938026109021032587628970162278993713168943158268097519741029116161601584881399279665605858697930665054636477972553024509096711844901218330862717086385208024014305514239122406564761629422054259563322123066183465353794755555860860229468707637677193295940704663379347714858236297053917247390167237510651248806308396535282077886086240976481970236017968283371798879910464114945954140241284248819340579112234289210035418972956122799917867027149298043259847557403955585041775905957853963573843635222880706701998457778519217876897558883340069884973496994505024907429010268859437046075860912391080140496988964860165447410315637037623698786297173124806084597101492562167989734249080632604343528012839130336245197509442941863426247714107460564987126914926639277545672792820039088494309015418538920775288408106837037584570476338804608526953780326504468865004685286714321334400920900776061686756969475057738570542542182883947024686297353056685445089083105545346891018536085396700719548552175593355506230747501311709584128565275411622623390352997730476327026634360145800454307099718713083849275570968238728134943566969923168567078337000439156015627538501429933572847614974367314518683954622295707686857282848222209574875429916800047032938137556988037641226382811759315229849799923316088450818636831597139553860018387090431770773625913638345102304976195282806260967883950253460549377161976488756184809908497130963655169489265960294318357628547057971388192730927110388953394575444052345795277538025162111848851286522263484164196840621490081411915634388455347775632300109115008071842243184451266583447649527362727560435778537350165433938861618786241311047824956191613380155461038799707926967434589526592140781707317546232824624884487759586932216052310919666331320033985568382393135440105723985220534415899848171557681256801218549399760798142617485672109370449976422323510315524178388037215721242102815923978264428906826479699101949226152598707152580285323890714606329090577998780179923308031347505439463144451546257325580875686382594949771468087193264414001741440923453739346634480016111600431755619612219958096173148058982652068115373063905442644990685103729681732554180603742957396810581114653533113550465918299933296218118783937475231605364938444103167631650013213263819763000584393230759889979762366648299642834083024401777986090252217412726419966584998021808171742620565929782718017245747681579970067266274798833068260583669057857461449825226482507998209834925061893706724247675777695834080223156083624650864252307917552861333910709487366351630862935073930955615599823825880091606816421181764165976808276351401591652149600227360528294270081471787084782471506681268801373510302690352994221272184948561153549818014481829556988006772506584001880849438419197969281359267923305334342680984256447678763889957476890058582215694884170302532906835622096387906596185597089660021503363253596201047315571222616473585196935323762934797095892914702148107230746485523537792568212922879716883771395295059206351941231840158227928231715573729380959605098298063264636331342944786422596660103161936743887393478336622054762150024095431027844399330113309727101690823693556915621824745444969121488868668137739986086495281368369880044652872312296354932132583436554646795439217835314121663650829678749067973827781457420702805805964773954854050790379337374061461703888737874848590284598107338514245623768540228664906896577308084160989070987932395423130435909743264087982117021255091628740032258067223562524566412361551853595017640860899967122705365188414467759342145954921963577819632120299802024571592998905226098862180338791372420007404663366985703170949885196618826483944449355678660526909925522707438932914041248693225114651992152974357441014089253024837667139589393773463260022497566224290536195251085376741069780418627219658896973097780912283894939130662322463770222541187696249230553534997525653059272426808234549263747424366833025067962341499487246578622969470026447931602706554734972017670848943665479407446634595224336316377684157067989765781370647513941453898767261460287708867745639478817748462047518975474431725990666297217634430081528528654826129896724048095988622696045616235175457012250210229672934376909484089023880180717014729003547624913491854845122343005581892588173932346671927017487188771418385250138413199902939686992748898028343321786071785859265088361477897472230829127646665721633897868881474851188673512128284503102743167355000773295311563020425771286738518375424050869411975891082413962828995301917257493965578434194677495342030499372947678762220840109652737489364004856635144787643595298893909404974510606703785501988097490159714024002650241520942775121291422550638482742158083115019681629374224696322599044133366137887559030965365997362873132228794267585824234198522645161008299833507813014916272959424396856541956299572753438882241249498145525541603744099971125747560991318450692145517874182893746147960108765051512872326686425179156244022555999840240418631481965684600551316911598848274144455537253641438936535353594855190137686011781348377160935462255922522264690956280110717321355100880715712755595887955870746121292615081756350393221064331194762420920024537763935505299875724758049242012018110348491067985840064404974001143322147673416168371457046678077986701062449765398915867751273527458167877440245086967485283918423893802732458521640238274052580899810719668395116173179172320734343360324656745065392599542663014486137819638208602170541981216247783880652854843413882689756683716764001768300013406976029411899953932334154762904710920019619881216058031009790224056751156869516488994425901830785659646711856919709800899824395419993604791995738253723824065786617068194377918623219485586952707658834818369471270376823161423981259553554942053760762313626566784742393231143050231425129845634819650806986225173198775659478073041874395622605441335795645939177514285237586861297118331398639436793594056470921157977841857993780978029136105220632213999114948891700727778676271539245768078272528159283303010764275149434288815410985200829452038498048261495494629259467875596403092294436879426738770918770675661502260231278894939002820315281089017068398655948539052473325431294911567890575075765150951670081254991425239976764682045501498559982794378177376761169955538526909918895781514453137603933818008101068799504653297469269506876432865272294164266508155007603241939621623693485321034160852187182994941539248962607255445977678480547059345328140957231714719509012460961265728963937269821187115856579566592040589232539994859862347176015807328830108227761232127464430857536924877536448179870514430161043449568881775616294861709714017260893109893860491549231773950993982925111191732922853673038233683354034037811900783479598131995413176515324167898215217567544429281370219255490710771911938746215142668296614736423982752925982676429425732879311065084629651372091077504437438040928383418469577031482106421170694202924093380045347238044196829518086047933938080973986817602149883963259831568223560284771486256227774976489742744650369898146507544536714130637443901099299096390185465936831281592628854179376882553390573175374504920832368004172618864221726751466310591223605305852968383684115744347887252630171933372886729832686339590374992935413458140819739186406894341235305022583387343827161936841696525905185686745221651365236557022135400741091186274871607015295161866643782873090159085154731405567706702718096232714650233705093945922140623429684778740392329141948510705138287640991936575010449477283814142016040529827414921393856609107597759373409703845860116007264701165986859440579497643809527763761535254097582962617398485192818564103858503818724791207599735326477537170016435552559370997256323836129469125333876869074811033498278346376897344174047746596394012629440011624407194073615262865497581078600938211394962963594015822019753478196885474326676523160331733688399448391526931460923841381078099947568975679231622375098478437404869666655735223165204064124073161113277270494068900760480052913688287941734669678834193858419839469304617253459472385788761562286729557986007331689416979266123422564877591040494074582805597722793392667448735660658627435222381514454037944909704802781804244155918737867495642759017593624715532308176246048915724962929289403870590246910224617762911755900100639869749133906808670486080206754379005980324930793140357286180647966630199098334628159077984629571822727853704967640910656579755072600643621617177743602784963388078426919433912880137582830213741240028613308332699954345791931309787187570850605782898828146174526557429530116197573790644367186937227795448933872261531997805814881222554407870768430824072208005886508010639992570605787289159397009790717058922517142155567136587302671250114569431172463815757047792533212229793346774551631465413177307334044821375251708246148779773134428485408330687618247811864247964635373930544681841701737948545611664179575148174765862973073688567914135926644574964683949562443980539702452909810529140644083382399628245170411571430086455945080352157164233316559881660467728262764384581944700336722351129508444965056198606691657733317117448033900113712369932013085746221251216082292840507143575343925373435741166502642489923985419688984230810471839832075187848561649686079854868028232506271738894580624064011237757889461180029130212411538628050979873242988752334285151229074847366787322604651054575065760328277326719552080264768838084962354955503807187811892746155701979070077896948169733299995968656927928513158747591267382870792688225213979137188669971301076324614783414533273742750159417307767744176022041733198443528089140452809617741010030643027665136271243515781857685169276806133278394947102278311962395947434221452146895866527398246615424621807672319896673957801812353366899987606163569852149400701890487150519105503492757564165401892010931946728581623611264083990334051117594351209737773198548631498194170675934517682136310807654274041048572777750088514336438097982071024212962933839526196763751123616172360618300615854157007508801837722649829141098903621599899114608382809844322033186199867737708791229656741547668242456294587475158726675384150338152918797740450238855885108865056293760880855996390137083987302429038822905391285453853929416703615273981826573306993104372264001185054981946289093350719257918948388244267109767969550684705932261546242857113947069972594246605212706732549308306978389253031494223905580865283422555572193013251356591549218808356715259836828268395970320169361478160284346915764862482609849211934828208108037034292720211154003111990331658180381223737775201910612515009048551487562077243987437296650246866531364400729250167898916122578094984384702705721652904534254649167405036817127690155182805004927396410432556747738664324548595267612647224222445827037552423343209065740512069958435765824030748217296108946872284427495231438266101231511619912693732651877962778162267884677536513465041921044909346107960547999821700698486851162435033023654906761213222061027106513352110596780714197039344814035180834648483626381372886310937362346312127340611495860331724606042625638919849971345870473750046198624585018697995038664023929320751711270159985912579483645224389957543019890053632343174134009732809709398387198700136803284701744217075254291352179008513457557378704285309643155922913635500058230023927108327168968254286799719902709399226653940485714757634441181332426747502996227681562084824735909699539007585746668141646917540819642714140966995701777421041574303527369850988963603204899877441915391328789063903408188925522701855844503512434156470181565035731469445575783973914167692070664346736845863221987883400148879730158479398754004210449956260104296014544592661345484680937885591559572530011179401244014343752499910806057770213199143689172413383414854545000340456414974894381746905298180996223649329065463412166252777085650595160083656368744218882349506051839860733729809736066709213903617719518074774331544555175927465512367298746827282349166638320315209993812331524669818991084062084881176809960635217895938741789550475691305246355287733871940514774862878055057824759251460607250661844198508936496422950159891124899756651584343376581775229456301664741394268972489204814335949604069674664490234905994697676639142962643985633343821509362927647687860424857899760910072697693634012080821775660203026441226361747799979026843261986655636741705288392055285747753889777813306288025664534957805483529309370311848608917372864268834647840217642773791168284049677060922919468499055739310392609250920205753652772140717044366574723460772167490749974821119242073334793428541574651210758554448696072334395372346067035017030695728092008546170690725580371999157677394684042617072837173346928241847123972783631393385970796919991385008150590373562175112225115850975490445511984483294321454957718201612743646589544688285023403038252289732893048435558133579763307491224719218727799449747218010580575664060787228021975464260572221587306477082519114394605753331027723365141715336513538421781866313377521455226628206386092532876283975194301677359850184713655061971029440873272322166487933536656298297970376884984950143915432114450481186013805380091674594931049401400762690341468805490678256780402355647311582590614272694875945410714979104011385398800229517007495808121377109826737046692589523195434064197751377524088000703193576204484392298491483415199014999260793258144764562467232734970134690681082765550083401095209210827424477849855001601141357975860315768676514745497993724346967704663762802427138568857723808839275465221906017217658779066217553615029087535420053807165721752610778848014847664723704559272435856169814628635259584979510030787275951631992108132906834536707315047079449296208900667447145963482307695254111955525327350909666744620309903804969100636750814263553729236749568483753204173217141245412241849951297731803089529807003327754764187014394084315025160358595152387744011899833111809642155557176150991551882707533161766015065826808595271133952801065329835397123406708342570533777487443476332300701483661334065514991858677271644930571158269619545630665994457528618783672886510673578200383991117842847755917501567717120115421491904165702253482911024686363281937577206861347965768345916023487571929064696707740421221110149472083105863318203800626752352288453560478696561287133007782482585378845711120436729467605781892685932321437959418339646040046431676913551025249305186435157461434471366230275040966289647446938187215707888928863696896597602208958093477967882945506490215743452900392712333101024528401344859111886494772339293670002398259419596780453234256291815521698400819664061447810954170955516714224117674252020407158255677583586399134014657201421399935545457484443270541419914189798319435127109741311639079885136039465021783674118942552974300471254400144670368866053343742994110984372371554556103640127302212526013102449513329491440928699173236245507966757608893580335293649566278610172593754733809806439076479505432322120780273894483311234587428766664288695538659006389156340284139193516299105991386821100161051104857601643973584643948171750265172536636898504435352384423336534238325806724207469344110733165957760281492746898664083979987472551278778412857953465234363367432817131681985666916316408747996677046241314757065445547203077328018671762656715350994798494427174225401511325971308985147473825966023234024151765008777926861990283400491463267629779215373876832792479353159825378241502251762395680373601592427161964230268885686245317239713193788032877617904003109895811055189174386147129027671655528876770905486563909780916081215245617786525583556225144402831130579960043764593820398850419895229945504924721866972557135360093473998471526768337861294277386850815649425494248241115298723541946339677149608838057332763179894259567683846920885925063769261772331596313218818409073314994833480546444722742583430859390487843461207741538341457811830107154515563941664490221344155943357790953934584228538530465312336094005435935913056263217957735597983944616398506922999236245837764056262890253411345937632333398457439213312620181460087030892117056719959763368573387256848832425840883392497004946515949720090018320846224321593258320857248513902231653038922077607712589949661686427702452513701395947636699202585572565790610486485275404445220978415615189311974755656802215483765192160712395912011877150933586245097377327662518996160188017734380549086272540488945048046515103018236949233004051402264471412120505098651764265786031665832918578873109029706854795940136571648876152330405627196185984094100684964187952117444093396399875469524375670481193146764044055744012896336203000876004368864979177889879101184242500351601057213372221354355416741782674573214809891266766987191319121801827694756513911808933210001254203159673843794791103092039841778634952208691907966137075343874523032537228761933064562069333736773731765031217066876786650012066256279392471234992457645243118136369017803376513193272609690915968799802134966940946184036847896884435496616542576935906003822055164435672292467510118733982438332288792210795352460028416805849327214783081691011915359805911583102285188480449570481961987601303036109255571347580018751945203549391768803640296601569868124079097095316626251045139674205247999655903684615956125743671368378666497483524971819708883452840597223668990742471225509434647555038452918753059003685819319011947166840669075601209560927946740922861022673623203608596751142672447263624828377213352142996816089280713953363528543604258679839924120573335134389456452630628329425005924834715431198762997493246271817667664908502366287946378375893914150247279828895437023581021507781766597865655954926779219329181903328824523693566238768543979325861971282419244920428819261762241146243186722881504820707858344816232649066384951403748367674645833158335212917532871946711698275113908068907685040662889645543707284500344940479924802466987760779779453951648064891187267154647320138865770552950066512202623008311755689132222202581026567679576776836600344503057278518578190547625251351415766880034768151566011292659441213810109035806572960669079765520454434877943084324168049702911226545174874251569981059972100872143932028451040304859766050932953798019311649801203032524174375168080737119961019348675649940677491033033666414215414757207775706312951357242552298771517540406942353207923485404024819083904889678237561779904694725576398270180093573776356617149149786089577549308525651101740577231285898880474495707876404636967057414344629775681400948816864314239985098864786815321160380550080274242395809049782324750493930138623923153727522184551343922342272233565229868235152487562992141953365343149197884142290451768348216100658496347281465783704675412319730972472696673244851917082994070327021160286476788949093590812823143794829350805014581592490807037621888320471814614175197195398215942757054573567360044382599681517153359973467496926604769970009540243458438983901137811500084262941439020746586954757397063822552117000958019843343233270009345331959888505956369255060724018449763587358840567096977354793696509255412309868547717304490638447964058771295780693494070407771518875429203990151666423521641756681060176392898475826450398673707837002250579656062349043887824065863537386380707739564409025133978284119320558898777313071264773165988845211085581974499138280669720159228520492790496572336861369869048104667041254280195507623323238791709281359377394310753657598605042724132104291235448084314577006375738118706595900211855162016812118735703818852895161693292868165913810167368511101919088419364125452080926166186509871906235717445453296842480954206182388637306460618431858598355517377968466530489776189528919878785113937999677723871026888011801027013691423791253589979573668407100918607298578565064400951452331325838887000841067501230849999210955385440678237254557677752628703778203004341667375431930869202089495962256960664296947501875094937188395963137157390845473353019398181164943023530240810521605506431516353548990049094723199678346201678487260092225423980227195183720395843711157733782926401443610735551798114838042997682934017702184519658785973907649782076272009738236804600265542361376975939860585380838873587841730287018749530703364614531113196062692882500598642617888378048599887327270967674121786993949028075771395840779961228358501026840405159783067596487757454293067482269251901091945809677492899293745379033197998764444062622871897161695474097910320778346138566834154134754693099883629353747037935991851414250206358506319925081231352852963627632338667703902669264144096475969560398018410088913566849090095067619199814601143719345016276705038354083800953846183969449260129447170899607472948904477719066280675273627427535682041611877012051771520621249510550534465355467253333546470320426220198657252109758668092565847160983638480589706852282028895377804037905754325507283177580173336141023510352119696629757145461583591010001559093062437780890578769433903761351418586495750502241656301940474778491928738727061947101554953180543646949059919515745945436948364871271237806062084544725566168200373796487692339710963881404658393602411368531641362548909360640443608803042557445629037624685593901077063086098196672063287846042957700116919548667688240298408373102844952326565583567373748059881032862210063285143305339319575522207228734359609373822791108387384017477522039356766016981262445395321777631995194379545131132406593954857125418507685052644416126334563864182670256676908552470699326978970824627107674861578187903809413846373416055687857175645834668803247275992679520574405387273883683511748461395131184747088371225353751476236876429803419269803496479403712701412813911331470416773369513126534705224353248207593440189270296479561251911547712236563907772992034267097246441044844436288421637265239753965568289383380398024040355314069205296096291611366850119941915595511598496033724902553715352567847061826634446007426158781015567124004928771497201551548857977027760569052438913179955210605895253508214786610097237710003621613654640027212105154770939367201396873423152075532987721792858072680503199846240807393476191001171001487259731267292271704920089770536263150331048303484679290676759111689178921327181601620990351735245144037605307918227515700080945824617283028714564687171178360708515030969848742438731927033575593632999762042245111836429046968298340694469776690368462626209398546986168593434585472193503297314462244622637667814635517476790765788713477077592566805821504520127689923301953823891675803369390103955049572326824836534894008331306639555941911307150310010041744195266791591636610187652442127276618856255887928774859157161397890490364979816535322087915820939047433014347523067711428323748384096812325656541447731443151719805493704665151578400322999313864196849433771338999012966994578836237431155959927904615351505674581148799062664363448799907146680187608676698710151431650511706841039657638297437680157100828023939259418632401509433309521311508143502195216358604863179100608525445174613859636940768454176697988094203418643468022876528487197050646229989557110151553343556273751715043710550860936149468807918385358528259793532366163128734751000917194746725651848185902433556594063458688298764286355317911130494627027099232860017683334238581785505576066364984389346798458907474220829266220793429325482060025139058483647861397096121473388501840610542678374129356503368312982561553998507654691279706870676207632676594901112076779004237188850257865321981350397204317770356331137790983173410775355610862847720701168124534574370528593022972492992343947250514405069036617666491522547820222938935246008094570561907581020289411469880912571477101246142486657203848927524167221254605865686963742143121119724445258637057392155194015242290356608500730880774721974384600282316610561924731032417652528933823489041537054956704199848632555280554025383653315172619401131050523669356917278687115168676691050128360589027101219388809550815458540950020837871781777972693721421414130078800763543967252525648128913903109765026797307914947735593538544858256349832698916054162688074069254888097461716646099162654281567650411622983281772197530046119157411066889716250964112887034533084090860232509320796041444200037778439358189761773628840073272608926340730460060531982847844122028868013322867580791172149345334979617665894417762339747535698250841736767211118686594870414540465904417579874676338355159240157431492021091160820024489576372002265641021891574341623995790387867001452656691914549213042477381838231197697410798937007944313826267462259010655811053892726813670897436203336283712966015742395451861731528591783008156568374577454586016589528949017912494390240596597600140716191378659760509375372513144749298925856585105674460379833894317954843566693723948157051698171211340469509846589068349214294440861159212580591541770901379136751624229788973040896412220985435223121663777147477533385649059772671555218652446307574363210565843128667012677524641832537367911690060741654191391105751207442626245566920004904402954583646601438839262266025040795405395937517273149383995745303923655661583446575301117724494631576789403522754691825753766980984710602597379704506116584947207517923745499142312309129331888831449264027867556560147433580539751475739647848796790346694351238395983880452471207986732015247572274004355574340624808554245339944497174565458186914914218003134741520988004550325122235757809504800472921106760216552022901959596879923639435402279539712945764787907652258171063266054859841814820125492520795993598806576240799749522181091629649586352479653954244295515483873498501872555064723369674339012694664026972450729064491942394973787647957022649330897749032549655081731387104745471941984817461158948305959917609159402525243110960737802459627940293312558391916991921818375732407701978291184666485019980681968810389268923567695019535230000800595304921259431517611579388067880338035991854020824544224318085356734561533060465688765166203941698604899923836980752799256050391768128950195103818994853067195564001966869212660331371449451077860435331027232581858681216337197238732193578014687034046999294619443265108008965483212912997656294380401396051187782724047579581683582930791586860823941090132990155160150955751385422776124138795706723529735180607723978528168384956482854243434800618468854067345232526167391610936887216797104438188764837784472483486430342922059490596319200691367100766940961112862854769624828513884731766784661296815787586504197630034507966876528913528253338298693581680822901089359252899642314948213114445212091579300219949653228690994517152187983575778746180891278862472654147992278152449197469700086182897725050935081891963079836739008794074900118063643787442204157537173797117176762948172416000851619986586636790337965875886160074839619089132840188352095980981784680217741275101938004111526182616252955599134529387911428615642391603141949998988616745806702870808628969820944920079388420794716805200129112394476797740147524507371580714527866215940510254672984808280162827236681890504983198656531866316260176791738989019475953173647012138438028274729667598644464402023890724794782704338228685626317093226141391039264918266729124262071866251873058676755931525517965402238374714680296446310001925436938291340534667459201068662998005958340426329595009641607612656426087486317046317567355446621131462853052827744133472248769455382773544666940920533895787829592539648866464350193353202990767437010384570742933456353065948120738009972855173428487874666740644515684942366052394714342917506489016535035199919974235153102362261058342935836568556946841063419169455100812792912580724826793348838688531054457940443642656293282242840784861454614674131356533714708373603745475274516425485157105937881283029178353429531430358524854176460999902572740728241942880227486948367898064414880713407834383929333393874836941690620292380420559589130858821672913955115114610161803096436371182163068698807420333473907539228729436553106545310603538526435432788573616404344422983352639847287730565250810747860480178351921998394882473922078733285889344029645706423685649831663104790126453797290291123064952433817378977165013843421510476520993238847095116320825286081012998873445705757041604083482558307436453383626889822146462026297942310041504305917124572241783298261240204401320777082138080682332857849598033615434627080532586532085292865198776254282436912536423071557142270530770589248799111537446190092659628594094026887800332797641305312032944887256568187600836219069294110477766284639970287981000843267120385662246582762501458757327812773189953149549597792997892128898430561095098465663563639420670847697273376704928759056603631964038624094160031800890958031232839973011057544966363079301825039361082664864300575444274807778383904673781983900298865331482878650242299010343662569592705060578093827389573300756190079357581770148331653430898400712338392688766152332967991093933971877803443815473911007610686464733411669634054220613809518727707379404428827002999192911461291592003000222712723798890337449632699162900791090685122755921407036501041289287984633367211608636280671783794990221809684287318456969648043304226257899313523516680465003989878245173253121662666938218284705846199154351123096935702190523535565312876289733450450248019107824162995736362945765533203143969843895617903304500975252042715457317838510493177673331327987172697418929995070938203614976587365412571259024440569008418743650795457018235006540308656494706839734890989643926495999261585966045381441977737173360456993355180476178567555760481870456123555316965126113553889777269054077506074200192407665059631815492088417825584103439866202025519653734693782169186571666605440529545956089381544666424004872579981164390867525693087148994684532916757040610768239471512092024416730466965216489593585862878366349253676901103064320394919015050078305784971132968358439409843277237687924533572248242608620585856028106448724501223421861266971724930171591473337318408586714949417830131300762023667709790791894899389906439286769963293059915530718604972240328438307125248247809359528575372975614361702705134141905751912614603872283321480008392070964275491711491914915994165032608491966403327450367312224811377512641748424348059518974944363119825218726693704330992430847166118137246071956536747909455972291493930073679781563629817978468404821982003072141504991798111139662599443115864104262316710664619679105229399361942333364650232452881361861915232091673950551438201031559255913279756294411832575015429979936448889820873461537518564943378535704330386183517033701408004949266405274976406071443132294974323963851006201412633869464228913223992792249393756706965245594770786538796031243812064024686973493789128606797479946208359455777110487049304816532996726845868662245283609609478286140088606395849881134914664266980617811265431550033835671896906380059731761419558030339875367616800314756132262912367850717633019952625569728178404696459873407198284430120989395097736432139630460592314333873224358625657649228946453980482856429525933335631279053347606145312491968385632370932013541965579082318482030798211561264921445792203826218805616393568590521707232283321658058144253881557502062216048018905211719972048859536310996218308446230933395284359470031894158716420171844069305315104225560023281059116721311578350883044011205847725236641135235381889611098624931778779078324517665345845937433434009895750311362459668515263728836810964816432121168112526865594973688992354719495496080274239920231588367727706024171526700563001592675432924329902696300496191931231303609815903250278936978656140693416803264001593955302153478206967503393329568860495208134570466402327188697910023998223176593000188830272644277694817676148589867414208850514903708167101504096117835645657050902251970229642270540153115414744647950441101224842943323556555650988298117651243932707585495042133603788917887612762285088355821319605550618569614445837308547541833050140541736505282616200448064303177445962797095705629099010165618118496336488752160352116750301907332785693080355676885830174469961466721555581728346767639119634813135697499838722831931606619702793554303357563818290260593221890498554925683410212268539411189676560086400788408235685278097931660086352704130795956413030769514661630175228385901918678917374082338129966835301320251899899218007044207285064686495021876417268709285363968349393232036655477076150939167835689512822734304984826887029020247380878341355232208613173610948719017844227590476102083425337944918460926645237083871677529168578801351480121747136545586935598934864615419717011460403290642206786484430353292399871541805564885137085101953765860140175841112267417831018142241471059213855466455791061722513486347672908041864668956369486468517122237126062374889718512450151367822991797604141860757793619976564795971295614312385026867372432829638840658400677064784896407437513065205755243945965146714371189089718538137873944665800889731961013478995354359268434125963835307514495038632922316892391312598746004944624392762787994963503138446498342501381117301222434383848267619454575984916528241512844984803339212317263757085299494626179512145126002593066957311732333247545513581050329163401145368946948223302828658229218603344972635522010834606683008951470310172946752603294053155882528733869998661412327488742048512790666921219336646758702195534651389991143541530710662110968293094536498089788248639452712295599457133629320373170665925130986397965299887294775943243507522334829271760038322625631824874428764161473080117475577163135415792095295061421209111198551786364324977160046485657852814697713562371753605344962132924586707967284908453521756655784384161461103522425360345144716138934265669985609625719105459183598723745616059298397221661386401342481521790580740700767000519031537883558423224691944107543652024690682448796975263380476088830835054916346546203911869210267248922870506609255063137752454916381490238016871916396868357875979087308875678677184359069834184792516436844195762298066080946246837874660768336285368549190704608718040918457075307942705867486091349755366983275422697603595093505745135374844246755670719525184011803032206971848486511621792352908458697734462223044779866525556878645805979347095666036467953903224014301449705844621412088134571936797346044319594244589163011771835285469292658036330416214994800717330703547331036827055111819744095158169942983445744648892721230915907072921905433723563679168783496823037977545782139567464880727055388734736936881042851156943949362366126923196039506764450408905608231332949755674875681535744865081964937283711878882977456699210443312361396454608225383871187873409284064087676683228268219473480629104573538073748777164273223723145302555694939374763807080792375790003019384204590764060278262607077810427283318017284343416721439132972764278492907321248817823513170517354428015368689426066019735840363450527798383378517047655582045612325724739977010055150363434614474907961582174524537523125900932712500418518949220692219738980456924366637630711238687922120878658732147795394820641062971027454763125635828446633724051182728817643205593872166325263431670528292760000134966332897011825445250496480733339951401766288591237003030805228481152657188167675159961052305538024341270140631068286683882752998395175651993168100001732232327701801028950340073536516369938479263244141002128539496474529605399258385750817604971411440631560000072835146556710792673471981108714763028493612856447122941003401365320949127084423684712582443652923921397866593060394429951457401900113142007632557930738691864715393769820832962776846460523719018436004780414540530780676880597057915806000575347254944772888327680082435135125933067007334525117992611965726679062183590926209061035843359502344560034097084200112285469133497039827464933090788222341093330266865444114245757713201576715898877186478078934121205907109741314615891089103661499584614190594198450963564466659183454113715501603549619108589854354855579428252838241068753934730214711808295561448530674105996624123575775476471739498690519157657736304064938940634956042959953478109215255158003282545035163412272692429865007455151905692276445135523591519751271813903974221980974344284363171014724413189768161215130833564763774586013477773456406479064282936091754652059118905696245695541561070809685625256867450597437716446733137504101514749049471769642429798248042999086777064324439697240389943553823116094817473740337267564564523789766951634537657131200970292026703535336377807122023558340548531257803135208555198031341938262415234405308339613604815136683710228492318659491171099328472553899807310471148968843493630771370678312353790884105065439882069491850349898559282076091112018373935831628816301390336234125159402277309087297278790539451968835743597074323313673466307142012709099431962343295679652028129085254901670558321103217485506348911046213887287236758986498295402165241836305272266713567311135366635416948758262967800148566244132561220863550981705728065687432624868552877302637310410884794191371794269622262743404675301326121612425417066206106266781511762228432345091507794363220969492686349281243008470683999086150579411516581723864115418513094852767518466884874926418083308557590891447275888875450879952067605928752460191036054450802298412753621258164676303497558331019965827528932952416074556054794268073174437508002016823173615330291773869278880701888318639935521060517046520713550796075707235421066454176061969220851128622700156998545781632247140172580221919461232306762372541101194052771234325391556355320367013059413679114177890207612730172180216958204092217543159287503339285496046651651756830846561918459821125046769679324350182739246636511714587072569260214045024416498540658349328330083563553087444860658255314459713424305637848129936924090430837770584652572248196612343632915264546298564597588524441385847745252422488223783767993875706906758084966412136386614504017007129005746150152219642214211851739333726081754871673823541537213394881991757582504523021395288428446842714964223058365845611493235495413270742810818410934367129527014472620509798199506135583919158694530627667401909524613166465192172353116590466901484537154280711247559412119215582703785216013167841249305175187266961000300783202597986679284034951300009821187477984538503235454741285640623592355942246806200911453526183243218710067820577545020383957789300420803979915493597861777749510911387165705225115472722727418116951946124632427415129010928559753687252749344843883652898156729320978405140350640705225693786332144871389459886711711109665452203238685707341109442688353568654736414572350332062625903084674496563613572724694022083456867501835445316919450577891520095537906951528400612129357161183115110889652835948292342934987726500464699893892846980010508915074035255880523321586795886525424833733917362605609113596667737594815847900096572142820851167604597535076300008725078255355274654486332207779934919589230130366965971046824007840850679013978295400569359822970750868985994312078491256962191250818809203401071390717288655515385277290222616590556515536391463905230913202325718433009187892218704915374204151452984426347659766032726301252237527796974901390905471070504362751356351308631457286801814720011152826920763506899205118152065659322076144261085080235475593290143362949456835814140593517507994123106290663197575265049967141156245518382808966424771472252972553917984406991805744079116627997071790115408435130788939662947445838531230565736546953181199084642213823242833568892648278606599984562708862875669006377309914838485738633638901265336474728954163563250494404739639591151594296171796681340370565730843752303265306596655521943677574273619611621731848359390765510076052621744499190316716127926562269696774650308309941572843126059353791363722459372842329257271476392358888518963012654696588026024197141803075610489059937452598362804029302041606410477168559801043819819581719268542080236991711025723929359761833442593009618748579093583880466251572681152868380592243800282743654901543812664309009426285388865700661364326888043125233718854798730638910650676145214653135097158730290913678353298058690863641837597746640642975340062535993127951476746281352613562748627058649701614859798885330805983028512926703542820370262221157567048284841818160752936400352976075257696003768957001383192340894798564412836053426836898832719748656488033763460888415654373956733517056455581672787147460238293777941176437679587359252375900518367574811362406968546236608938885729914652443889637456340353006083934651545942570283623358770675089253481091938935428340010209760224571551970302107047970913215717117858301994515154808391637700482219452254230229880173582797555815285796398745592094619511648931748923810280628157785192437180686733969407979326631615811693550938915521915758161896167698042128997416395169642767924388388644186204981820916916671223080591123177455394018735150471899623294117526051379127486333662551839907765250464642804194645936799254208754701378803406006572919076023064567777675487750222191844090012006220967811105223404357424177312696799509612070301007880154580239662645094437913497737906135129392167996987896205776594848443060244224230959138571989517830119656421413245249520623087846707886979599609418413468241679088940139268218052230460416215528876686792926663676613971720064277038421958260882812925733962428017246558835397366177319273923315274045689898413141155954472093811698205865413363723491655067522763460204268475759065582879522432851096535215247107831410581345502397988548174456659187202870104266388935308323201268997706267870436699653977634873857650207371104511448429428742675054543738609137478835947689749459050242074182113115330911661457327334590956420371128959823472608018188699320811959204683622502488002715179987115175813662411369989479055655492806058093194314643776242019017210736418432782140282623384465748295377749270488473886915218537854253312157016258923458918865055150417865537793432669684373451299056258155654788214670108085395213356667022611349317366284554307022337847290432303722650307536425567321330055188157569884026849816753464607813862379311105688572848966310350895314181811241362815835194212336614149135183394502472385609707926601727533798584457840392736071348092480077673735794255279940421581284446474292430645253251929733033796555110478088567305556444406147929612603732928695085072819017681606333659519856553068153446001904947993430715577191550900714035933535491370502319466427107083203551906043081159825698627416040322008522021650359733843998776307264036545061591000800891464093926828034985465624651507931980997872075560187846352035813119749814727995095920592117925711538063970249229767578795557125731943066965497031245497294541270459712584765301749078829698773052051482076058486079008571193010708087604170330176536762144865686929639499484771154909511058355168070678279794928331359682100920673202837589501456068767779407220447076800709298551612061529542366913732803297507060303830071827865797642673901744509443572463375365589463640135231807994246068535908223304390282276369182913020170135571128428311447637300321107333942156049135767525274880149069227901435722505710956885006925933322044847796299124720574200274996530189131364064143505547492583337669534038643406473316611609289161356376100217975994658042865310659368945961026896833882509603664857010991433175385671626003313171419300901750394952863372499635378572100570236013540934764195099746365284223012221394575610723492440263259328546533581207798907811205168304353439340363051048937127250733996196628828276503679760616551723685180065042259081824391450994805207718623048959287423475509343047184764081859857826541021155393720604217870809202285981581204548558510756524521923514812803844600415922430938093564575702774919190240491516163494064941702647745720984163395720056973423221630740024027658040660125710835591401451279867711724251583325443766567566545579385239986049139598455320709341685901307857525710186851873699159439436155583217643136572411393247651499109332867604558692083092363757155948847726990718918720780499716490721111748091208078294515197536684736560557640907172776192432729319562776882285687189003331243065505299803386946995385849573894332640476806089027479987405633269594609186580874983865175276885149752910894317813638841127818385395837131937769895651872681768583245884371672289527117958802045316815817747681169192550001447642283176421452185589431526112646326489570576144510078889063739510895162432642908712343324439726020051073986457140662809824805907144561246536558129032395490000535986972568890113087896595778748482067356249235992869517682655969182749865777006201727736416890899851800764937478580868919853557626320548582027710750564169262552397701533806518561405041240102743372540600445395709867140866493803163453357395509678912827735901390246696716737198366808799748475350012800010358338847260315764916184685943207700462975700419544935981045070285948859852739030509356332448144160736269052564244474150934837861767526512057720674967572454940398899068408704940142647982063356049093755857706783393193241064502056211740371045126123680752616677609996111159748689871666963280911000267709985140161674530209044784585719793259541698368017607250931382017618619932433584835071672231867126329462304395131396303633099674860586330743274714364289539139976219660478527970160587131431269330807763212508574623422497587758583727617960397076872235685818293032602661063894702818623999564133670041125444215258897774005867307186850369748101973832834248228529244880063898795656334565301825289579813026116030385172424724534746426644717740861771802660622080594279085372141558319762809637212407425750037011945016549351919416144029014397673131382537080298469206252638905523872860180570195000751737467370138601136685241779685768489634103287347932037895289030032991900446420447736798282939025910154741080779595016530395231688170274508408083104210637704127798091536624686871628492946238116012641407895964192500429998328384735643657136490988406642177753894637139627095361839895080482066240995057681593972730937352644999326680971791442244964354152808555993950129278818875052128726699171742191215692122826031416404855287411810948803392404766022276521357358598165691163624406261217145423103475043726339853563023948979597068516447697121167732745049055983778348055365751302530380971038663436665072066099994277356241615835057053209272521676168064748796465819712201260309394604494257353558646831669958049354778539949933226850719340346687278571990931113675420794273925526243378792285743044646150276032207838503764745584145952609773226937793360326894889068926028241316292387232032790589715737178573453046116705954779028713814560579896137440512338185078119238908132316534574603542525446774068068787710290529285223180427937406096294491711892319925188105321550298815153122423041922941601636400285114508254089869861912716215849673043998687058713214700800739028731590796098018648428809411512843192336507885104595014237000073407424126237251862264358121385891397315090356744361266720953219168823720893023952695532741078395767721884371383509694663229987793175072087941809013533416492793814640617305235573845300352898655475944838856051795229739015339035390444631118142887824911998674154705980819464067618521895020679808960967026331906103225210819958341503734458483846312656752335504625238709600034359800793876112750160320678902532875372048817921893552339607550689094374485229937527944555145543640050237493507122674633530836168022522858979071895576209903345847045332856596186175011575377662505530986533345822774340705750146613524326597431047467145911047948644467604535532784277679992174315071193250160679810689896803642095358926880495643278962512305946135827394443333383664271208827645157521030277899931531936568297203816573289802127268451789206039251907396634522863965428840937368514522197725679566001651399539588813779460419603994804621408518627033953602675956083243991465345480413211579147428424320860200602564482945282709838045748769792476750901447579103882596454323793221926026743029757513350247116611700994977337345561308847710170167269259881358980990345698025507882246397000354815021185518121975613224109180099488813719529044940558875229183227118907596755344309645826396306072357423711917406549302829150160854774333707027701659755278508223583271824355926475878565343084175060166186394957841341371364613964589419190401925889966904083366088192603228561642488228759813198916437313862319160705400007679887361672876891415723490079755789256511941478793702997960618580726927235866268358759747178960329823369990480375081638090743856799701131510558205483608245720583758398250448983424324397424007218747433794739879459658981672268361464902256773864122397097045719538092966103837141974764692951285789426233261317487485934469981388021345971181981422667616033759287522456044773430492364169655322393740189052782591991603566244736462026355312181413004559874688162467334623941770219391550721965501948987106020631035591235063607464086049264663538718070109022932255970243674389893668337083220083769060458581338071946548761369938217816903625199969902034902481473885356244531047442535673724529866273212960949840953267462703491837603673341561462265620818641388040641558758149932231797051274053886835046070869308107967523042030979789930756458957594927694863263542888995106976130546056698654461273579985983342318089824483280542342384912405637417692234954046891288599279351218253373370447941148108730495723157801688711307816702799973236548108147403782277454046205921976362119642947045953674625289387971962408542081272224606695149436516493058288895059395907082284580821769728912486829099462823400160825809789190474665952879488378587567870277891728519668807213211660782075908672845542243367770660763855146629340554659349248798872463108397931299230904557552284321116994612763988366553541530965621697175874783986203125278808270759353792284541178105048372468471879539923964424616436154946084747066590960795093942248343061220513057053782388055757574458840286146307797690066835223198909070527550920805637268290953529698512951628519917549794585424702897605193057751611704372952244370919894871189881276506004127880910560241412902575237772038329053908393018386051690867680419467069064000890996985938486384488772030942165764519482728896538245803377338257955091101603180476038587655997679049500042022172635364237429514224748225126425498594205819825327123062739668900911651218093248840976329379277237807538479053767507388833062970540304785779402933610249354759724959692935236988322016224026716344817476468749042538351285683526855401774521363544730128478463211822080028330044980919795963109903623870139355593247006250051215347500528533900023044177211042536764269357294987261689462841436825036461549798786003597467306390871087501709804725759233630999984749057465134458589718554069424804753311115084950383708266498340858307652705446389598422482208838463482315634666178630789933466326765042156071032813329605010351900118108506554738278159494280192145733955724525801906954543388354976046002165944167409781749750693519746871855101344710484281609472774127170638503034791993918225030169526721228500455390216943089919129103475048746344889430810646104358824199559527609663379589744199676345131269143281599245236691532130444981976064543700947136882217707603537525606000783525828020304994590327215154227653818915308094046774162508584202583994618086177846527351912338884987479755066863203271590358931417076200485001647927485269277989455740062217326864977363771161591986448698537072605424945959998175621297728703875080541327769798273430154664843016397401798503329023714367422525255787722138768168172592541514082741674563419302957745441044579392355873771207137641988961453984148979342976070287591844853703765095256059305964317518219483417105828917704733332265061648549454043106840833054748150036670688696663333601085039852033918720933651529350389920083361152496269086164245400576775570659595378930492399280183703882332511852428019342549389762039807156986802521856587039909799426507444402241635416871885926703660813614470494722831194645103742314612293616181045910304647912183475573070143241072696977393283488053538015355235045790886819871688171762705876718610906004990576518976154530140086082567232997709693038279194183920603587614452716145894314501777162811280510947687665937091431207741977755126902788780071101463185337994719286107795630694421363490066504924524611013265646790065173238556649285577909625127819743900052419043518903056565088506990784419530556074680330918355789035935868243520867446698912261382325764739363875336798895483209969217560975454970870257971116375750811261148293577016050054938249327758243432894951364941991141492421603276623921864713362891258172181904748650859108152866854896156503331071125998811156538289762041502918627969602829642575531263361571935493589227345101882440170840745762098490325433834738907146201292372181519351816841477920921935854877262356930280991268572226378659838945940372664608883151079075114149519787915999136113211498898740242534586385142429467970510611746252352383730398832365658092787733848215019491838828893105150637348483085851824058597625145094167318462407835978173385312599552645002575369461991227934695419453184405292803412031048672936070146223773765111037997626440314983661190841817345447682934766751642608072786146264161702648450284790023913316052801296834067162445414440988350834027127138021897835459186415485268561166769655464635925286470282005847622125859378528253622230837154622766652162889377042254824461202257552184153429081457101687594910570395563174052281158666407088136657509222833484840193746580638511575051830942153232215917301905347544330967361620856234724239724698203979060590890242727429490893705368245321440604680204909013677147833551676457236460359936259788670292486037009429737959276935501602361511237412559296163921014203066937360815888687952939316476126680813048394876668943134770226429190168269440423016214421130021905457314715487749441002685598653043091245979733598041353282052840253885885260538935075519399265918593200399322886768104869040535734754892711679377678277603244186643839018178889118412335056121677485290036235582940210291319626926137135641370199910747258447628940117050132428434902213180465703025528919933171024235009635451134509740989747295972443898740835478803705945013903413006441722764003962064380455003680615171073665728041290731976417173375756502563564492011045252360807114972221735278916422068617449313220344606814352118972888272404619208257734118569430712960606184647273847573918110483551728285068206496389492487975159807265233590252926571213646992448005441096587446940936887366785137931971702254975435060265987832374573992447271487896284207879439565768356334353499797593526685930188804747043824130787803910852813095601211181751919536326009025223274714936551813499209388000012937114360560554603340374913349979907969134143055544028052463281858654454545998627120013960780569521553037069397847495153739606137254430900942714492704754310599160418055551592698133662229037951488711656114940421411956908420221429490860403623207882371201203345050342627338941331950120353031415722740531086421749247315796694535267306950831518995532889938798597192244910728371241575945661484217430735949509634803918531290740872216842823558894579093878505014042854436924696221443004527769131650804318345702919634646355367447409549516886849117619495360586044943350755635818693031490425916294188699934066780717953836401402038886240624704126702178555013937111285153796459779293650227420189509201141719825399052674316631991003554275291840003932782188635829817092974078525498728095588168885732922078461565005968831507985291783632771476613566702247963514809067876062601631221523268836683276217337003272457259391079262467541961725938352201510331680326743816423384530606938389118044280912081316660352741715329338957412929291661762548949686448044874679731530623317745559267521076700617997492240040929562758561383809011192624445405336839005597300687191683841746919263248525831468196291317743702405673744489139244262760693369662662078596897149770209125556371511072970116053202618190691796614201371409768801368210297958385207917518351038907357563540902000721775291876769513541221176322287629191043636231847514988797323660683174544079275749396727969883306600392477048825940225219514597027831136126184883384417114428681660563515985149200774276201987763276343244755691494405863556833028438039667666053803450805776157681448204192143750571409891540832356785683216758520318072666114150325865234299294466475136750087169936050063243960557502794783119217381821842442874670173216726630734672930628922763163762660892914410760288877519766596740339170294215443575969666311266459091550754529888307810560858377065895963098694873519846481995979759330851802439214572785733814223913587698913945115942197119518059473938791337009485207809456267235697171350263612236985607972006812799099810694193571667467190196019130158783191180050543971964761050347585444204840573926444713658038933913427695641923012078511169094321421138587704375766609244925743320953961734927969080288072380623947371429319592554796322054043125573849113253220919457403746086491220833561838907917156832505215838393762095662468331290367467436168911424154745278727237346771851354564406066272832353438518425653188425446170168555630838119248083697274450140933304337715059688053260314348402023021751046097268622246502646227190391478593917040181968794895963890656871172937852238368800896367219833177337410944386135509908400518618492058288048389965000751408046574971603554333497900312280131810749006911829674803135125896582137925439930840887412959611920092542163219345131253668586810054003318205390109449598749135534508969064253041009772867621534607728840615191225338812801320300183613810131841521765330533958653906481743607611240087757278069757925386608615397920054686136196508635485944442249379806880415811799069424225553579118347740478859099873410830651464703762766463296987269684622512143446539827261951178218954763279519962332483283071527987471927675828067351313191998267945388996801445181753202858617932017758896420517724376937876006726222895226181512041215263332992970344401359741555363368475259350590605353335123671622827046286041692961156665833651758443664464938437436457180339741225999927679338297583704283643100831544724917468624639161451524323054328533307503389470290970441754530712648995830238941331932397550636586573732957829181513619441156431516645945267700005968996192857148339136479767725739520343197357536886809197304256936105414777858094815539367922215830305106053715094789032250838682134484615709415644025393433453394062442141201233151886908027944820423042187173207714542029917043852799204375827668956128544977639480023301394272524641177971593979887665812451344810373411387406112210897175512238561172822922735333922171421432137502122855701801287430089682755370333855982786243699850921431681227405928626976815482631360023700149077391436160994921177011049721972679493743151608935684036778782355582141192156613458213538637429785828322478287763890769313742923691078192337659980840355077406416297110124623663220964612261819341499788378937670706401451125778417623468249702428974524388197522875515555636790198213637002228514879862235707347490758900314721881268327667715145853878068460318436668113056531141902717905758050089274585154202794861172210421480824472101375713997234218590593186261575512794155824449089292605564958420109533322691086753396726998091271149285335939738548053569716981404828640949241901400342208630326828291983398850797440384142054728403831679735150608367665242549717826145319883158529702955915245615967359324451674211128991208601882692133264292132222270545030196201172424408156373015275339105604662179602896594324412015734726171881549157929317480570943665643993282053271471031154513634926231003684783286442753631309974736771907593559416266004398335368476351145638235288647274586004481003478593167183586040144468096579090222753449913488788132163136286484833464552299464531384526069773196995187705233621966056274729178072855888954309544485827158725894685118716527730849120361553656467518463978366072853527480443482701130154901618940392560054610427154542121446963174464417567838758131839211256139986555850134054446575390136195661197266839184727526182621636129299353471585580367708898045328707634149514997645032388297673905852822290743768856640702163172188076345474886158045169845505352475491646654656840147745205883905252464741735212426021411406572778260014385917059382587222141785594632949198067896870706376427269400189271130997752424990322631343517747142392230761352919894978472949013300182517994318293029600374684159766134994612788617994394981900114306157112612425217874278616191668706998334334095198134211215906036298778250309974103160473505310567343001100983879471525416498882901601808274094027737867532194628107350139429667412336060024582643231919200700013763102914835238103255758588352258846172705139878308849107942649988173181506527056954075370602555997712805388540445473857692285128843310703721643145594525809753888755459249620514636015015802821983350105470250093114626768989695013630870351006792582527418739971193271279787318046338682070150605840408320202881536442285980958271838113553815884823733809578673883666070133318877166578176149246621264453650512356479225797033213283398236927943669319674171756572195765923203557556106872629770068227733983305818682272717969180413775803450896454557785707064005575586372562511718040997516857997419093529030111499656820028884221260262318787461838011979122411591819657149842217777029289587670313991708864009934626629689459912796123764188626202159516759771374754591024765325763313895214453945996095964650236878777961971433936834055652345449331626910770012683027584162886910409293363105503500714126575578414304171552936674476730319561420418392994511635776306889786950233313066599442093670774181659264833164730790345446424606282200848403815395970503443995332675515889492977173879264697466249759970994958515938838853346665883636817610446264374898256224587296682224153559101319854732799560326834280902572108514245732443646946801251756637329093806897601366395071267638841609920707631768973072781624800670837064892152138080356056796208224609278981252928064272807914805903516094639057769052551378584109612168740896102090625687994827334737271678951067194614890066182189535940868135728754354798351603128803196117322974091584427556608654915518060839335449629075764571400129988620885119776516803338158061550231241713536962598394866594804643464684992519916644857684447393175928913080315725267339449096977595588165310987595220630439918097857878715707886007222297060057852142334247319281660187737077462306094632845170194534261521187730125827429583659927985397216228364450088616038722405109108639908579621795194579328049828519222029737685126856949538479128558168247501523418491217582527541460746589777955244359445856758027272402524972993250213917706143920717807413515197512272724966622301355189832237073238799649764427604879496385087663053999564206720620303566046850801576324182652802234651552132741558478253426505344174657357600430890257957259914093317274435948234753331644284372893520051783017837953280968756154845780452355242524336994069960941503842864626950024392694425118870270482830939824348789532133163848729023984729624938164269978987618374534970372365581773716143740784716019133714652955408136243415799131424117117662292692124971375421792893386015174321637211361908854240872368708542519573909613295488717281467180219195352210475726940189010373177663836309106696844266093421820704785376280997981971915078218197766064891507383518626652564833942414206315917154047172003030616532015816710281123014207227801635115222136486825511440289538843630587290970619576331799846213791528245181830925279605273043600574667547123396322008419865261029975656309627387483288310031110944199144038576579480844328306573608911319920349635075111243152494000806950259432501330618723755033177770648502768201177546711902463137668985215836420443974345134006281934895784923355159487664925184047663702481739125797324786718516519831739208771952592258655827340061170304854604699367694893327409687490726512499698604070421183748640221906142457836278361190828623762058230934607596726311949579806499275938460078594149305218697745181219257154995645251153218115065946827364967457555572754567446120033203011200606158636596165978425453038594665001372155431131945924859849766812468465278979825295435496896025629097778102629749751081303059396602446747385505438222800156754726416362905682348859007896205460091506875503358281525285188180245605034490989427187084724894020840428534934207158676919185449526177731352724608942622462546163007082193385197482056534720602759059774510641745323435164961192232780867113866357435576738002938390421522634795570871628011902455820744520428456407401963111785710726535081487489471702116426037600722119541809462785559470576040905655506432006326174498770002067542613971633960320711744806817748418121032316095690695322665976930609191586391926144228188833820506420991748295930475633707984256110970017599652029923782709909777457718327373063373698729278597510865013894989132233502156544039642669772995733544753434677079563173001078961215483078506736668377720590754773517763130424572972780504641226480644890876813989748264784329677522766865151694095447898474371093979618765766412948641147188555632549219889378070830878226449631076900815650707218128042213354563843826741288553036868494169059393469924334668286719659234838799963637834988374774991048660300653135740896551668461058267592041235472814119330741446275534984073130654961328619969110169415895861656438470241644549077472697488864899324366063949122026722593762097094264807157916459011791555293833131786576991001530744732347101929872259749634577911703500397345436514760598865455329987284458046674626433455411163740108435522561721060891946763404040785813520749699631057493773417240756988021379417016241003075328642595780384312489635609725519794057493584458200506077896533232671750546852314619207073321666273000356525648857450597103385034634377829926321894254180946461704705124431883427882218180285892254852056676376092833000965133568101262972383851040607104433417072059150187351639411005911278078764241535340476726049784280340557765992069908957059367491746065160661324477767736426786949104118022452207829526186859540565862977128599984896268591683901984641637242361305218445799504886760836790131231928431978311736341070994957238801882494176475510934592273924253236946245930608310098831993702176042155626890539203118858611120414874204656114464389914269677537698943296787016972771853995587871739009648878352367470314352383461430937772297268999308273720480449699234392796416086142523561168098458324905877268820143828519094828006255368631469008658874073829888999935909911124441845284465193613208119258686733083117138711351687577145560391819558863329466341292384285048159725307363604954827520289316872826442977257969754808664769979283092235924597746348117447131965989358794965102058773354845795991574918528825811666708902939263073200469950064390700933178456708202239283245748623694394711179713716142502080573675297074394236705963493502232770480430546656289427308984278982317787509889441021755138891289702150101579440113658082026178438166827365560471521819566719597472069617994974971968186642418336341941477806698751353846445503636368831224735853143568966455736104480951991885168944443744349917484175798141556460520187593051614565828424705642475166204549500016348793917164011655572374893483456918779415636663663930125261366588270979034912011988693574080847264185877753544817747122305106997948466458618674682927956539329803603506687108097918962396736806181575082538927705867737867182339916985557187710981060639451334055153597009372086629169252048909290588888176315776569652307960313918510697098506264518433358306106009686012543783781941089973779520467195986981389789746298371972463954623327992332563091655392784714030238605467521328107423381250986044967360577953458399408939322287322942406987925007417426783730511965403914044779124907231920310313813539431587562844221474990103376201986590610657262248264781913320157732046603249315036653408475191201117271427556694513646727122720885043309318198418474679027687802348015955507924157318159750984112636139824409701651017089900127987829714124050714145291273004531962038707869041413946791759329958538434045196616266362806870712819463220229097109367084498880663157370138859552371427241178996935610016738750366402179614500338040107977819501485219647844310810184181217380003738530505810491588851350867583584270040622961002523676619155209088058733349408905508604785450488164112658491370061112768521709630451964007418134056746954516023887681363356270124461092846013595486845823230770658521652620134323829564596299560698049564186504380451769781010503215207025684880960080374604945189333813988161081167369835119706895083614617992002907057482288063386266703826960852176622463732638418246393202554915855609438314137962181702492421320355739255091607713223380740528879405961937237366371970658828987576444554003288959258711806549838037756943535023130254638611541981663975786896324427231513432179573224685336119539443061041066652691050124120395575476093349170494819506272457563082391997348309551804598799430751159013127884084138857677773873780907753565584559911225739901124142358958449765608982306501362453910569108733167311078645589694075164549818403659889657913930359278656174959217107459022680001402537060078829138990846219973989819426612527736438623022585752242380675602583843172978313106758665702581021274317359962280097347775736671072824006010485056697414410206868184690696441306381125099242978602129138320542001929644246545038411544020971775547324032262477330452411634050475075489789666855529216270557728004826510942888483858415420657728692650954880248221285497676207851102246575059542143657789520038768715495671989983205597297302080363765884084862383307354702119117742193374654363637259818338078441086547363280869396648989253241460954875166700075410137171695429311067707539872314217632103447144426419939647780849593852433761498557592983725895274408761163709055654875053507847427945083231274837388192493980078230198761595610636525587235161225492968955719316150466830512071890770493124121390066000924744253579994156364390523417871992218497175448402410329670189252245542829478262047102851828566944492573251244465054083385776535382506501926750306777846195492199886218284637449656096840544563838998101648629693151908222137986656214265309891306480423624082093503686555603314843928476842818979819707851810595565567684891500012312673423388570954037874901784974678486094567892412049166454052385364512097935229220768569078021385646110160701465499972010949918087622262569126261643371229100820629591156155973217050662957509654356221377493368546109288726287462539851244113186495759241367098525138173420032868271189818356584988269520058466741052142170969459354451487307542872050804719330229374170256029234646892574785068436486695312384374818995438205260833712121718087610897268388907602224862409218799793522313501847492941069283993070522977152796024059072693036930046801976730900148606593651014181393078754716342536712728794545789797755619728337912278278965339948438630253141214026511626693769294113809133612867693455297530770946663132144591633882394363721380875895953719222595765024171275852065817343282539753864165337004154257740551118254013097771005327439954299635718151278248936253499777391109891021667152251251323071654757170523575802213118967214345144534774065358538922768680850989710280188930104210859678800160324008661845226011907494832574358487881359289701493781478875012759514260708874131505020475263128493391002140119768777444986906082225893756537057429254019973599231500018796912295862679019291057677303272091985041032300337050806689758628203700936632196731980633737899678936448924861952694145291818574128708511077029288417363532620449565300991327949153532688011759669881290058597909396040556273852947714215463760662139001189647701091172342702306612767078321089025135443811865096940763435332434922213512375925800813640231377182112271964434495279102285664326687138649596380843053548740229964015009193454985909657083764179390063257524534324874940279548121987553789460113506832701354081469786228776880203897360992756669355616572794227420306774353093469454953513591806244164035701458114545228660384786818751885394345536708228902054402789928340169571926287279584124573768285105199729750642544566979137103043770133220759024131741289839564572196769846487011583037426020671135206563352978419427743262333307592262266433282955009869267838265593568534992817363071419224869332825597974731798003950169613863167334218176415756745723974552220954023591652609908023128665359581705633485337031372480885094930189363359176142211928819050274308330226972860791061995213789371723173097830769413273699178838039684820287094075023149815995808895577112794968793637465764406258750249576539436730184467443676973094307586489328434343096304958952748261511398821621310957042622605260865616092553816483666175586856259418133034616656584294155235734596017084824662104975638809614039014104084183125750989228613932986723246595419917375182885527874856789437905291184059288089634769104715227556005873055970927140113694032632462910159874928703948037501785281627269452771561915977244857581413246320613392981513494098606466865749165516858678549971559522408196624353201889643618506877689424884044424390219124063058476913783039199762576314082420098952882383769156315273740062552431127989161862797933587836097474377348791164233274581198479744150501053960046296572977046964307567710165306481635387868822295380474918850423512885079384812397442601223886546798313582217290597357596155225190251508550750657203590415731545455994611876896134569396118450152182038215092082854160460317079959344556818571759113867112534120561442850044653848256272507026992457443697579824584357374011589186324619578727139731288981700543417021560713874512842566140571068845089556639427833122720484835033342472273783591311109191663845002220796192794275059419364916860793737212210599398238545762082505254933581340415547388916253116097628933379935680821041142014598897023341370965328287544902027626562338773500494356725942462826179811141849165431747934566726745605065041811457616329620300873929649581721685293643803611586661459703696890726938320440891902879310465692776909752509881186736298547619317553839513496954001947426074550770623097760439132838424983914875244344876707031760902633584202601770265687124243522463974538490430599247476673889076711960930517158270789549778361701085884742000191365248166759760100520303488382273402233656927169860258171247441553715640036821060033181139753287512879863160191169971954283762533764401519997117453640982366577119944491150736656236456352590091833185814513733229758059537753094142486941605338570626889169346404354510968750499770447544737548417577118209178781032058132794418952466751414725607289537851203270952889847927920782130591211004122496807393212064164016579724903067455236183014684856091414073620078939769649870082114603077734266758308598081307327115833226253862108561475105606195597646845661362155458078021347414715643769650519092929190809738668145813021143931573770449814505976597788294609638344482721951207474298481726775095478020742794616203485865814772674540811078367653715462874536136966512726662946833927140793203295152255034080538434624069453702500466387601667152818510312648408242121102857685306063606391135373795277092140283500671905436832558013986385280455987557133755456031303735233611671638919849114644576039662479025233420969461336963179057853531390443190351097455477885428851417152636328424884166860307881030773396865296743483882037024569629506817933951570342002528093706308335278421222808296975171781505681566300013388216812732258136722961874941276645941726977228405362754550540751901876346164802417256973758736930555068122806790294420289848018055412879096740188386196703944809674409068435488619613861726745253482533172239532673284302868908983098283726496141586308691864706766331251800576131831581209915779456058440181101801541256866122630406770517241209147167924956491653258932814395975784263841169117662541133711144798728733190397075316780480986628842493644646079750864892031987705119991825940471778631815454772166374633514356388099091387626119032541741664247629527935838845081376866594415630736927223783272080599880996565502580977044997334859887261603792075008191096652265048879797968512058963242547015755634431712414057965526975189523008165859405809145265251844638063934634435612346997089576674892331215505441848523919629382081015082321656895958115030984178695745192466264940550416489562393360507511997276588682201036202317212935344503473742120418212157852461180280222757483111500207542602668669559713458691557947398879191298096995137852200167978956981172952038054293027213406584295597382164104343010817347642283048907097025370744853332618782917771537101210196415381176306379126480398964829688150627951731242568069829215512547994444688622442024677171655186363426699747905616313847325133325479585214637396911434191716393437709099284566838551938885770623462710937701465244567020996171196126152474290126324748156183119052979364269803573979267036374864062995428108736984710432684109690669299293060499639522536189224329688906998652969128956899435810543883362834290000664767838856914068933380933710739560136422431620553344415195599241992931007664040945112234373141202562617935614628501285801028134190160105142344197643031594871028982683206444834439087027176383748525951506341938604512731957801681982903885518648701938755510801678638941669572426036159541292523678399547397836258154125242964134124444027517275340682856257881450017201679575219056158989873083787921939668550070068005985144732318178456984288914298585950211029608533945832923010280696254316499726755172303866935484859141892881413430085736699861141804523070688728425084429417066610577749361786549206001823253580934498625396635053586635735198597094094380628576812783898781069270492921198930501191655044571351842884507887319849737743083806620253632035435791062831303804700647399336393600388060532970084858887075734913853654003021783450966070373994648622361584675512133605622671746091680547727530717589865265062331355796025773399286654502515626629495390539399094639076552511295753948917056390710166588618882535027677926225405591359741024780946458904747951221150758545542230450945750743252003939878950010925543588323968022447141687953351062662164572628560111576225575263908079168801775345651699888180020253409688022287754201416554081779096871842334836121951069802418392360352156615164790190691213246578802762697917717885072645436255860143968379008542022148276991419200650709441719844691363288562355134156526131174568477777056639986691365811656951459935214971814381496730168077635414430055392402555370848280445559974047524686484729798885657531211443442043348891823292597641780159927752294420940334760454578501509848467367594176839134568116468089458561126713188134622975034578080650151197568518821485387751898100501403187891384558789156422310119653274047868280048131943287698262682978625876956181774145339451449595243201273215571255320685875307248507105371339761806340977235707234991096976195504817844273369777657007737699115812379341822637641052013640072915420089398055514999735788152049276509257337258566173751247608188468595381393287070199577846557209077957475611797174484456234254415291566515237200736329156437983816642865409273173768961732188400241539737198528847737023531547765814372788947790659122566556374099599115115602074205325825395164853356897914834156431120026401719994199591148959228745606108685483677679969633714284651595060304515727805522091296412399925903677522667151622369773148213526496755595095765225558720601755137262476847283228771330271135784973791005019103401026085952724527935144945905213542848085783929691673945485236988588918153219926858585257251150141385762574258426025439042607529755004287774710193889294207175115282450505492530378526898510412002808291586336983649556752357379465823196941696055590300605693365021433270524679150175503776055332656291955760840067824397282860495614770211735184044448509700001359364685397572284968283703925982624063822624179803585468304696936641355008595295177761136977487031208756164517213592578208142333188873841714802102752503356407957684994923039822004468818677232959211229232246968273948777086945914325922142960116923158173097933438848341724832923466651094592486614883651057001286430203864905906378140167518092742988741506752504920121845327877291216408300887691225693594054795748306123898758115398666876102724471844811763157622148686348365556889303657065808841161173971705233778970678229096112502467085244537122858747340317190977794275114304430444020016927141655455285898910660973827803477708592219623389326498291456525495855344763076046582568546321315257188442909301095832594973633553663179537437252552356206054547106904426586902478945050509669932260728342790509256819013483433272018943281470291931707267106736552169300981645680853615742968221345441913980762310601081337562654431492560739379250102074452390847264099263054418223019599960518579049940490856062983225104197188016365647464026570749261121186804595707186535626124153143701468332893957649156730119234891181066269344352779980703481717294018719327272912315769691456157563943342823907348154797805743152725746126875754484019948182320632768671945653444992313668657279839081567055965583281986277432494099971187486146765153571612490503749756189350778639658477846112992001312779498617632967378171044024869242458665010023829674056089522366570085029603651498262231185808236469990256516746993096140035734986018984412446649369653195537981948279560312468108409589720479576005347042520834708770974690545160385374106689838284617287966729780750792525771666730276605438313537790382038784807925286455305588335165202258534872466802267312796209091161240011086671238891023044315841570467039562259164936537899796220736668232175619322522194704872909230250746020554069569303806968393155601534388482455002537089843029221066900042360751930147655790562243371119797914569199451735216652226486419782691177069261840018395509957998492056537783766613760050207924176742350913195878889678998823759168397360193805385584410745003622690215692175442428178811370262168456093905244846230029969318347251930773652144277325254563269137717226350608512933172152613611533109170522055147423220050964570357411503328951125415489817973836697748475807325900076205041327621642812367367100582083013987174608255514751891694137595308108587704010939371820587815259455824838615450515750237508161278012356833000416169291180337803705170100859946362744511610647657788229839435066829642651695518990619702222440665635292738015191439093618963179494083136171176284111406454720115640863892542260753980518596161869167115314144516968743285639244871529698733345386074109164933352451860764253430660270882289993546511294597098588885030984225975933005870712212792391422681152187733477331375193828740385753867894119246295622652491992240216659831287953503516985674215045004756862684694956137083890235432561952456984044401541772119475635363530895302255113962327524093632544513402067474197163585716247424080484709301136530707398392825663756070507646184481534648704664574667261207159783935232657548531010988549649481619999878669119147592105613898836913264418664212309799217336889344713622261255933741991593903464907444072793605689817543090739833729653095314852629287088520579537214902431537605529236498955982699594120605177387348609349402264097196859630812247872572873990786819935820260180704726506643238687928155693572385333739019920532616111351079876501063370228426780892108097124374186807828706161031527919204486492660237278673570887313855750923304636255229518313662020295445661094724021005693637269042286380855539882839553085990034637335943036872919564563903090503052489281028898022965469269907351689824368194811121235855394458368547779435278943637768959854594804293268059455839666659373396922299696683207973948558528200594674406701558296472043874836282850420498481032993364392774139492740043670631889477371395660847517465846412845382333332214370973130952651967615118756942669127704117346285370975706504188997816505220771240733496370662072066962214780900445151098254017469073756424606936171306977229946207621624940789155715358277125553698523835562612191321540323790052251885137703453992008902191808330310852383310602490982270189700666175281908971353449459311921729261010790110368787603303036279310267410154658839348588618571744052739214775044306134610671937953809764992419722704528141067084330402376465300025103534284197925502624821415277880647169098147781659551542033501325828923277980647672657870701977986276852080848907059880811146984184811472200883592996514920718723873238230148081194899022170931310400092652730767192170545470331159157007651975506295527586640320946932915291165095678501839058276422031282973910084994802878505000145785247037901428048004254935551849694047361770791093251267171407646597441724743545017914178330236486936109105924675151685166833032408833985211408702143396402219179878174866875977812498843299008556199793560616189605660186937473385260821929710907251097747139428755079070946265318727311445662102007216505583209207183907385916512895101644806833996916861105142301784606172500087755667438483174441686347556911570748053508369293667461263770559024646361170461121488939871017140103786618937042218790842430400420246862812270353946059272022225296947415915917503006316564399610608249409733005659525508473624401177377501773737234840868011549983717998565063101763140864034493766960448988617021037600132609759761169481256273246259042267919962734441830357988334162303766232997234518628785627384099221943188066323180568624152629947386282335838896141156040578107981993351196639401971310742064260242899696501037621460351875954376886626571693826768124244014537419240752551994610199824647561032065939282894042323067368191355193423581869836798055811080949489275344022386320353234905672568885822410668941390975339328890370670817381455388288627922890579769282329581965801286743727358063296094253579538137026042342645634076907515497610222402772938361536339395556594264940038431399597004236054864847383921893344643051948058730895934900264084841433815153537275250954924198086652780981422929551952000093995884563619360643408352107867693058177598087685190961776323591714031425751670738323748730996055493622315374417474105671548946289984777006871919600605989013101002356836271565988825580291586666209893562850319264504164352736613723702789895666671520353652727166044324054856992127857203175123708235181213913769880480734919452486899273127973866578271756518997408910709822520380654159175346830142027619682756455926181478939113621822587781326811570334800329410509598464271196597202627749484099897905706377928287449653161800295959768168568121672639483632663124512647539453341074226242473102577973787670457951341849344847330522801760784852352360494191900258949203269653049429830891871967695536401020607632813907378349264612722922711745011019358625386266139579069264990277397334220157418218380195220615315605942436520378113095008278745783572747241436773696192713698624440369354087927889959471627359348386714631912619266188540450339712612549792055721532572440279937595908277835842082666471816231671656002583947185717271998820200244598187458164798942582994732719910614540257197293448536393408459848853284079905169220453998478320505468378063631377816057490528808558833739699230789728534802212141348289824490140446287584608027609123570579063080560254543234748586045774499884837886264805117524010885980648257594678268513957130690625625470631767993184705714352686959799555430119417140306179071779593059085012716998877469400943858279976166554071882297420082265031769411352751564280265851711792931336110511293629193715230241217442514064860081009701467228339419130048724371640488920368240743832865722851628109750126046261141382718570145074940539573225611522354878718852931579728895839034451335375734604245837989471434735780940181690478575421559003106423342922212712692655148053360632328180773646743993185001296940008191560531083433162467371264976151671421697519699359343186934126130243638757088201536497606714227963003400186010694110927467711404104012896812330591379742375602530138931971857134384242436913802310307130249134782919166354761301228781355582193197081698189549256643068961913760933938068120112821139617704959527202828711971074668557732971414530270500817812423148439903915174511001499806479178981447787983826790998637460392577123819573191576678057353333710114684044966137991892228196714109323332624279546509647645247035667709060481069691316907912919517521559846382755540429858449372805251074916480016639968495839939684829132468374796991918651619903853293066251289373279439501467909634104197696887986854209051596737862415231603357520565183787727568246309183391551451342686084453143605532753211427364359686073850744538978834284978582260279551966357985109924293802520755443933237849599411513998515438670053596901796121212418528178060151978065904863677106039419517192972408556916039872069595193858663699023587299972213211004466732330219067512963924451363845935099360904226361081457366969637765893577559442700926908484022264225126938233166787727335936419691343085421351288645949740645389177879809844992911043832343757607489709601559510147515831759048130150634187576354581101618219352936578927878491436740892298773371562026782708218321100023955389785876288035279580525809279323927048026893217737576815956104776034600081121163424506384714230274180902986719120589550952629728695035578099232155737245786236026838365248914431098845121965463358122525726021972372855832892844557452234432973525533999032756491347782030872425111295036919734901254947019706800155684511872596407986479688846411121813904388681864876494128935298890222554053371715585731332791936053409214874203901937546664874635543385400646054657272001355995879738365816618853775623702919337445605553171943232597720128119247849776192003460161806999870776446503658045915428538543951732061142843523636376610769994994385116235914547352854153157236629032876217305527950422204401235052274438339086653573930182005060282689304120694738005834931864319052234668786998628993582393251399499046080613901050117708686293868827311598844756031867238534283725168634833799685358986682610490177976225082665684449455492123444253598736813590588619904687804875071737342774024209979340279553724220915867970261886774288611445269396885626372525431312934049675573249241722132771339912737299134610661689007523395348503904724264769572668176342717839665491058066217462521323729413304793364849519373466760985503392626613561049951023260052228081982429199728639694884542425261023312165668223193139509647891994289476750356304065353464048326090373877276867591593855219055523391220726388614165883667713180190576199046971302433246926990074547260663463377380656622559019617064775720864862997123721386463947765705860933153351593525005690409936081239845553821515865120330386995624408718951578825444100468680493373339005580010482024303277576207127710936623239835522464663099441910480660612392032256107908456003647788120705614556299744370726806552761677373716281147206654980134876715544088428287579664915400859367854323236195707927548360169257314579774370740027887426421372824709296126423172394176672943363412150909348152204738396159673103754470394561305589471059775090994739590341217010588223390371505134947935840546687250171236384290637811720695497033628504324363946772597880492021822934686844944532329940356702976509367418433075909609487415341067320399956199185427681187613174579401455013252345257901385108861736694934698281036503902683216799820329949122786618639729298052747346214054319894161235425896409193266890485163352975662670687754377952734762450739824597757696631389683565270796217764400542849559106741547340640370203554335281314963241005787746714366786851140278701297033453733792217254676790230027008605422186803107010457813777352019240124509124159992975793659334138273608070871870085883104309595086625467328733255875895949396597894634591023086247572243569919429046689041777613986033880151108732840832388808840461022424062491634204021203479288952490544314382652725146624230291072731350705566464107294426999316308930862288456916654241134538619393547477146896831919354474485621834646129392281647365622545251796768016950261630823718376749872972516874233216856432896838544407686504010468236822759204206930708325439324555599419170543153510983139997574427027487450892790442025482007606202526270196855439739187814171538843148777424087703615459786117640344780352166842448184921201135349516608255287680173764283442255408738357077496647360110011192242736459232255637921825612100779226493520176076078147803577188806433248327224087954268640477291800682123205393164496156944802473625691128508352254999126637250915631216609606929370830822825263311544648828405358130290810710128432552427298821042939935606760413739289121315667766092888382639742964786634614821661572813924978475812802020203442741042695988236074913567608751551186944272584936249498204532230979108530365951651182368971620041218020226753372243524275076694970267761512130884406829966942210393938170991235871244228696121455857292105069608337478711917045954482874889170595211425318452780704051630910617293800469976991524974928940256992567019824581518368631572989314737143990606699059345146272855125029647503423523974858852884345111927072705012413471252236783924221316106052778528317993562438340163253983828302691028884310026331085879137448026344994056340949729329103406408774805538407959992598597685492525032249073857766044605948097929538409151730918717588479521858304200736743352128008764241750472657748776001591246492834212259794220981281070365191202829568087740728225675577350877906262834119235398530325928010373583045654305916876504546818173397559180431137146227769111603603755203685004203842594729526518742633707802936868132073755336546797795262131133794068477105737039428621687764264470046099603242796227581073056497677779181700765170703211871037301535847012146226232947920274622088282393700635891928047013627811929914623651463111293239048167305564434371409120370768116539014312366314181696002594743269880781002482687432586857264090096756953962732544065264688608173228173366083484820682669078429422398905003753517407110258080174236442088187480094402414240249561124126922370834776642077763350946041108314081370310372284954637234786029117911306192534497708831192908881056000938196407379264998744333302571804387447830641283044670232349316981539543778090851205912491830690667688345628874893177666662169408696708812661285586182373525652652517100109269956798846111259950299140964457020498560921622131777656227281669439599955757477238743311548103638344037865924360609093006437456681384529442624499028024271303423197054800215312535878953920860514446281924425843664935464575695046980365843046094544459230440750046829483911614812129152741477541834849591797437375744179887618154172793570605689340707167110757468615229018031890395867966649433246844927940957767803570725622199157066273343725178739804107132918349703863865924777856088025462771458208885358007999801899534917255010527006614617568916114669778561650760918906328466774329497044998372103244224188016321664559031828925832081550241053273512087094243437553516056989498058624097757611440778494536321241606800016308970344309619510710875652333906527742780705210203740748042907129917178347831553846860513556136470783219093694615578765843833369770637512687773813838860069772664223463109297753846545405371003564306456969392933801542868189003799130691579681636011152015545039787449130584643566035598144954538342114942861132173083157365600825158248676186648714425412373241281463927540779251247242757532074075008239564242833956782822908286446378803237057068990009594404538312489847040676847121433535846937241924102482770804500463107143424710993538103927308662498858741218765377684310384496028576682502072816803404945746358819945108171997847576541470548028377791779889410241874663301568719375588142202771555689064053771876405942833674056256590035637003344899731085359175252544579818635916109392772029431705764391113634685859551244965595685606201915310330864641614482700019327713892604962513291808215535221691252281840455906150026709160917390208355114094004522684864000821718543486778686194944901884499420660279901443587610398199381331180474013534308254886042507706350979663041860626128309197886548359319016310659031010245260298553422892983007654950258762262939064431648069229987521544303398579002637776027194609212527244794257354023197095120530231179743672444382539063585508448124844832036635155731431466739188069575534901093652040534628516395077704420159947105988065716046860702727949656622368475448332957026721265460693690133773411936364770909953174662414349364648166976804457244803494028766065328411158556727720477774961179070174866617875817497517504660400831137827901381794624452083572734326690797988568779039061934393925597345056483596376849762769005781869606553878319507315899734991923784594262429716045618662667926105131421806923875095984879232706168940849018480306627814862349409489763116276091415464316707239412636279028200098247037182086166017827923436767029055379183426092681121390315050840514743906036560372210190192870568572354451251459064917600026358805870064270834490636649418697018990091502736563946698298518712480098815494393253213753806044325849885414480599543809837275945238147879384864382077236616734937157929787307967064225712506906892642057771712065399440355019186669888826236115041801452917467794591197452439834957041940946911482708175711578290466131176906006127013851877368117743731358074431087803362579224377015342715445908732454724059447369044825105930547192967868172673586253840849000138540976595468988000620178983104108084588133913219898080058626657508286501261089142837176991526857144234286767262125194430613109600481743303478394237313913810532157203397958823922799498891890078302269082663821753117404586835519251219961873974086200256065963472107855664987558731256034949280776301199267811015416350007799932010506652822104410256579832295113439793228687520388673835860612264458088080258127725588968486488179602477550681324885291662695302465198356371710780345052047605052032791666037867613776850050359018445306554205550037239261999402261529352691153301513594961470756294933853243508353776512878756963103449502148405276411415232624893315513564164919155062375299107908410449266638397957818979295682757950293556628867965671639041746025721562376886681746196042654635647524260108911908313729310285283999577679273971405117915495997614278071265801291413805921015333703471534908517675891968362039778111600122119488444555175629984338580321172944952358541877133174056684692303273781868177733175081733801569918204140938754364114674577176543110572999810166801158754859401390032652558606707977741340370090628646430846559940956985976723443355786115341648594021476107035165504634487139401040859298989129729533372307350637032896083657395599537230883718694230861597244839207491933808430046598358217906933258540674441690108762752681755318885658013143527678420778689946078168266978364739739565704453953995364005674192771333700919076970146332229843837745926331996754560589353049957340155035270810468175195220206400882421886765428339485090280482191100729332743339133322803108148936268405742949584707769474459913683417382243168706250520355049414148818331383263412044195011283390621641297522348099379520891977186337521011207239132127753119902945248762683156981948404906686735322043957711635408470730848821898612751610807212258215761119303423239137913422382209035223877101958062086357964770289221870681245647540132179306122872834695577000065910995071345837309854467278969631792666570015565024798412359017230680283968560804883496670553066150450334936381160473373045840479387308105155258535627888690706737510608664989170025644990641676283807409750889191895248509971612562112216259146954283113364774328418052461001430357462650114089819980926355038894011157318539374437101031837893061819618186182418134045243040774767213564053105487519418428928173937175860606172578977427264206795039525780474415477931910543525682800906317075083897417579436907696177507538646195872110939880359292177112660329763582854399575361543564277104731617365208329153537913480169209251354219162153567838764544868545170538705382961382382008268754844441380681985368790309037136256273501102752020117612373470195458459049505389750330686397328984018959636180670242439110746569274671933816637154355023839093494998332190974700673671538032422513772071089935587151966316815934998706536123137637254938816733392700707854886132441175066160888213295939438509540585959596011123631419775911274316621919059903459367150132245753781970721772329196317713658560507569913776797028561605207326370804716458340576974563819459133341140337350341408017043265231666558575460636945342962722359251520640752786202225303104695344637353617382959365695840383792150769148819396763732942852857607766175242245642186261515970477961270152672242244844496388828700061853344786958958470668715942333926447068172483468720367277370701765420253536397583769651785655376100111864486589750670934222881594688203667120112095097992027216353362268896918027995671459469112938338258313324220924307972736764681532011937594361641676493925390444748864211982545266989307190834582660158106315166362822173772558700674788540377346642755197752306435800396417308546285521472972143972651244131769134454977580236935548441895183804044078500126535379359719442915001747372666328955095681499022438763094206414436419093186766373191182079908832923449496207805818657231399304237206276688646352457921152206794416765265089978404304844674053047046306535113455920787216468989190206508143705042681439977868367929955937599377943560101142634534656176308471690550788259544892528725683409734708326440904667215421928991669473108438363544153201134951611079612857564856764197168350323145223474237849865228570555585037861809276273187650335689403066599027746108439241843435512090186949647614205406373660600137992870397186706570172775685265097800778415596779166013658038820200410468446191732357378092252542495519375180412941577472533107872685815042244099633404248689952616216443052609321464547142260680678920633731660430456393946841864015008961985037578904312630535323558819190922501835938891155868042892016525143642939295183709226036139742982358591107064071726959685595934465014748461610486737640949150236405152170859073464319083690721962762392693441150656363041000117792276981250740005543143954375023278495121247390302315107140085304276689360283482563236300682447476206037043789462556401239330598391822024656198037768307349567728785883166526523303978531010656145511583346431527481417059204885799334469087491661971650440847903308478265334034114874425975031213379800268264942781254944759399012697415417902934821672063020818779430506239495015511029650223800829067817893257548657035676612925068302215589629415748695574959067570079378729356626547708839706715415544580519917100076712881473642362459196656877014997625726512710528721343613121976088174450061954864106201717116592359863759336967356614868994334428333228355343377895356337974545683727024254998642603553130528645215073876434161258150041305242724616986771022156544679801159491991906046606835551331349830797979594353551042372054477346398325394159035331461714538299250683578893662308510218695732081909392242346950224966590826226962278193954731358794875411406311228745213155310218708463965967535214151391534785828279817160588246188168165873431162345034509219590077658703943418912385104019866643159734026711590483386267667752439404281591221044499495242597041750335975926329030259732019033858873581686712390677698134638522237381030320518823556526462929822482319073152835004740706159565125887479275654337651732811620405680464523068523141692197274362419591921298830527920861619466990198587196922298654977593557526310081992335842094178512333777885425358116444212741140368630419339633573048067513944110992346975711830809008836054049077013060028707543689738033046544589715772112123325216219249378777764926815697632226689984507883923251154264994588079842639239365604725741787766138820116247928098989507137146649642738508467447349095829847677264313931522061504964815536274049292423791539416393390316320005050816906269795166193519905345869392515049268730236079052497135868489393294919024708105136133195282435676784333523458593165976601629068305703060575537946286472601404479147441719777647759852136083867198883799685051813478929454697862389227900112740693806996077895887492912289205266294113273184306889409461136919794847073403972866650762959974474718356243873653713407991080933536032208952433298657756289320003318728167704299098145611257225638289206161684568311437094982320860516250496211088917379771100330213872690216892892309141996069790173046311548350646568111853364871132913620626335927278105294244129786825172304473339695620594426185201578720841888195558163188388800042534067424535416241647783481872008009754787061682898353060349272005874359518654049371974098911282959901628009480377673751191515842469653851547285409504759208718505792030622227103800340315680445377422957491226000841236372372462317684734338095729186872858924681249413719147594243350602098569417890044801395666106929476480495984955848395540935002910224665337836784992460332482294485522622370376488228637288165359303466462441965544480311517497600996310257067237227455094166447171539434782431803007347556462527838678288125471136243115172754896098393924168812313965612209771948045119291640396678585415975073078382522750804515636952647162546910468831246723662034108504515047350968738584384526140902133334620437515538170300809375095126778705989990349023137819467071056031663263032690596788865366070142951650693700890169266154575448776481823677348376478370817697896748460561717182577754907263991063361763459738344468167411813571982368746362994239821897814213138404947387759368692886674059650105118825426085599611627828651475403992792188746780450444449144695396712297616843878918247753383435331466192467661768860375518832872496249735940081439134157222105722266421732875814647408405042027329492753279064988289932060630449359113676283922183010159961899034191180345371450560556011430378313728602173562688027474121598275349342743181138716746260537237921766986139947126370648751902783746815111836829212634541431610003029999807409750957004666029453010039279055814643462351567538347888148182912084537875306322835193520533457373111105431523832278142231872141348631883204461394929895543541346023310013678006033104058594529756625801532394612746428817171632371853172929617770018488783996867872115870156249908855267932023721792468451764048240188214930764048349944003935432604833038667879658162056519132342952096347086709450450882445568901695108290151922517891963825805170371208373745990424281674885671539797520565377512064415865902897982766624291436807108685698344873335446489921979313158934163592956454556358532248278617620039894107511004976863550349064574661553717607942246514173322601731441853556816937431647136844110770533755184468201630436715437313030875446851038201437729803165452310700110235288138437637758678439811247086539944017735482310663128651963177300746610442756129291622337229163908217193179724985389071970261677929587274396481257736743785329993141582454287125591020856274087488585494138153945601648836589075575484124263028640939453961708118742351118402922817660617526549129257471083478361858162530885387377275918348173118582897462251776227612422551474918066883549189222523160325269632282776044760642923191846418544938304346157987501986822728675453239547142917381823340066396605690364516019551820317353799904591382966918753469976310492574445098038024942060010918097564763317430641153822765613179725121339032644611018881294920080849858621786877253802451938948936644669537079352338051785615640148045426162735751479187971491991058278915575562085114951365305954020244429073685903617501226000050904037526564343433680734749987650855065580131450568505418875199965512710554008174302507552900285970262602446676911567856959269608125338023032247087129152623404433761449444241500217842841072063428865993050340790266789115704997537433507418048582493294402276103180844681046555223283585031811170168818912845960973645358585851555664471400765251318079897593634439886911197083875978650583060293553543177912441799453986027072339329971975131015322626899991534646515314067006536862636121958220372127344150467338435989758551627170400773403536419374821098180449523083657806385047508530883753942319701258420142874077979204792166797639822741732115574446907910554120966340789952771159280649500266031640103088846392952498005692651008709392559351171358725691514211987055628460145281378990861049032158822491773513129951136841771449162541073542324070598899202250447671293208608932758940809113811543392614829154703528826496180357697462894854349405554777041706189198702568879014461809535103061605230096812081317571079869501476972017689728189323705487962427220794750415592641337076226698671941517430377761256048288606571932188853840098719700840247587983562883044953881772990353159932237036254392211748517452333949085672786096445803395259173478745776051410387527826385227951916429573132402008392801952844219108738254395375560567634767825497930281227523082726919263434319633569834797279060921665859496431695790295597108332684760489781329300053765642169600224001523104489864955671467997992941865950896074206102784915570927021009872887956773366482015567634398838329158564443895998861615323147423430223085773817167702935707039157109960599241752472250753583401446706885947665774448949121885959846597671300987149024105635519912720013236766204646542941947680275066236652937467965068415152168784924100181562847385692421724254317505014104878658253180627986230744116832047200278796221270406251382186776386425191852122651748680314122228274059194762096433945735121671633411320101110199612398511505014221798863247557028620427014198985352408354935512230144325802557332149245804224916605613685550860821311138352051276733562081379296699991998869164019825888384474864814880152944164283917079179996086233261188328118076850987259221987035466262538607451066941086426722634118826249743703446152672738308612500871246244679573360700429968385476012615119063092559647252317677103736174484607793037705377235648248499029914452004059996767165494426123043690730847344842110679245614735727079009015880300835742178506176936283732835575403988438743522407309829033593486415106399823744254292545299866865338368700418713393250209943309019323618178995869229018347723625870170874700725727936848903311494154359312359905280416676997365134686071865454572256499913809753974396275930558617412254036892572960290549855611611060965962432418867914161799190911028625383831109608824577274546257749687045418383735071798981816999927861374940646290928675178242469076259675179859562743034905813985936816091050543277558845712243611601832143477265303180078858909995066112197254941345226680142002680408986085566323718731826392104552764738790946202651495532690889219843410373990788154672506805945733098201866419334489890664519068475921948601147406468545160870236910833225129917599001158199300273222761567571758201985331787275765648584908547623080388294730372457505086787724691482879029010420628202741181605245218331856807336711110909513658290566600014391193627764973885380633977945872249377699902062958513662527617496286104452769419013096381724824543752729791680175842753135224812918617390867090931810517082906651961281474776153839863268791547238087852737986561078330127325699368267916446597540154859334526947814277940665152958073207667172468605605662000360921948236697729676209706699296779870647090158016119544671317050720394603035123207575289868094535855605872794373786583077821451022178957288542556570185820563134724313916668416177833033363845154797179907490420864312506229734851941260373641024978254656204681854997401996667592513882487441758250148014413432966385741852068748234203295632729364004812309006762725892682593761696878359938327869666949300205035569559631065009008437654558431149847347997799693304733156907541545051108495935744868302449580811820417053474190314575737103182931476629611527551633536469248471908892007632053295794002611333287023347505730248220676863137986949079803064535309009390149475284341576295239158246042884902941162820587293858107950996859805087097622092034023200660736319485595942870906183373013089220028706604538096894532763491183039559136879246073238582226760717387096538696358524186636182682886584044815395214241107078361069653874410476841201658722773870717901036536142706091255440795018695662808751101243384028070041771834667596116083097319500866365717557400645867907925269125871170026465365309700374246955631542485549145840217849666614105539887005087386249699512478115961193761634095875763000236076720575857291769602093827236674777374863505291492567024313819060747782364669164385972017605076861410094767545020716934943868767292944169103956816501774654411383912043238005830832809402632829352045722510765352791026425201213920743473865400417084393739529967062149579926100872206216064505016284686629897011772810068394432449415231345030154224057581808052412522803256247815616306493643981130488633833301384209893631584310550798276139412852984739910462193586599987489411175326077896541702261821779280343996228930785598191009830986151297447217012363010679712198698572142318459495594973348535157958854307688726875406101116616534705681386827740728406934040506804676894589712973879172928742660940639199492258925328829723336743123423394751881805898630317223899502426517151019893814388036903390832741004797058508317245806202993299590757757057027174136386388370304911725854029649851313876168892301344437705152462878727403487486447180903507701368886164111080179109598074019146572534544589686768138801703260922441153077262279019147055786921085211924308706183889070007497987178406586237578995663601802647292999844567517810368074632906894701913829895141393520225472550804166023599919091923447577999001222262033467032298331058490204841279837981459533345663377432260728852484194400652006594297933788971378779108026823095905216310601762184651439094666477004240646960037822488272780691211751213749690235726013600428382226386737947525020436049354564221282196015004936979733081062924984041378962239999431268025848125804150018809718105530041269280190241672752851547196882813194719181458094465389401819191312640055624230366662806242503441215507531035674681722904840422368502820901695740763292007103805034952364767532008121188942633527968046129127873420955135947031193712208751185139782435507973713795464215486959885784089134207475875268678921011313137012461472780930377859595629577270335585956729499143777490863173092651003925382257432380526114469616670666025710762194116272239425510039056744747687384103701895163164818954397201286616689674429550520003444974715642138474880526157022432389174903516603450541402336306819453945142940353177541171641304544064016354179849575530272042040611082507403136330564645470521581077434652994932629455783803869744824427428645588690019132034955164542081630189700055371578687503493305839342516770585890293611584051622470931367330424360894170345343105740798086497899010974456574077555793308192625978252355498664273205375591652598204871485131017064675748395829005009297985812337750952046045640622029997839240050462220275805175131194056521752217416837613836808728095043277971575139221354973916155375591052901987568777724650895907938503578526618644819184494922223645369695291691124123473788477098819889277338970417229927197113737050993087625464046555034406549007984207696655156939191393191522711533279487726471574166050850200331611032468879409338916433619693197799641066195436829700412597533500777899386601996124086917006457481606056077509563834469132738203376901000012981345192267667895979810938749981867123771756050624225774624482510044280599143880584217397091391315550261150194360535271727011026179134515745872068099051863267801097729348440214720509111589649856390334491663648049666604470807990501611428597378623498892844388069149929918755434871766162722954468398936200628131614821531029964517237290341748277126661847744949788899706274747823248690883435457128044837202378463267415833734799014354917103141267292636781115205117579716637693539565222899782838425051401198950192470765910674517345363645753459771349060533135656226417209644432667530402410879161087638580812774628307162704559136279216042466716577729203338364978258429371588224917436338806582639499022417766462261487096157972882404359014538324300570635380411972076636993039567065303955775007143286664723975469845396712951635788825669953392321852891160464542705923848162959632670664952361319552353298199962437495115358249754267985018582376043167748764497230337999835488890737473022384339114313093906056506262925678994257239450640462380865540166261406169917371482612250314126122694770183007191852572913115933555026321617946116011531687477647406801990177634326699763592736794163181094121217932349526495939527305348649582515130400361207502090688120777045412913974111824648484489510342834699950269782152222411717276255314293178042490952840809221701092598600122928845945653496583020329823350232392905936344232419508154139480608438716201165446066555434713683083043503313631337119947633927937287883856908407221545991130817789834007515701823468262731222221740075084463276456271240293070786524264733593470262871549767456387686031074371033360179756994776486751943479809667437550041888983230699739293761793531270466313974870465919530159126600691725612983129599173984208337036215400400835462455454471224755806802649454161556025957243899885001884096264385542546099696000028948717278975893551443595176227517038700684376835325864446308755870702351695873193287073822527028680269614813974858228246592658397692913494442838976201622679861152345637595009256999297178593130486953969302649685500829561184018055688623666601539776691352608870714616028212133533669157603223020282162856294794077691872697975081251945348382529172793355279907046479779727323807044445103539282848518965851291115022699653429993861145129381138267046363941914168042607445195292825442904374447529248637248800415227877057459831087337738827919234501753081851885971130491651561777781541136946301786440661939027214926235805545008593798163978773986686134562794225854303764627109900583246111613109182996768498778258891915673667573545466110466628697177847959448604926861618181315128486127160629026306149169594411737131187707792233976331387803982951795769394492822759333162728133092538702431956899374846772916296932236895724541062931326831757439294140506105453910313375198399075299678374306517785146071091500095900991753010082516542907300425273164814350770425604122856478591021571650032758144324515890458604296995616399206814994684103750357356173982705917448382745823264219824276222336365087070349072910729069006521493234404141943278455669507163029003234017964394303763057557859987971355688019736718617796116920472848567377249027561721656032004245952001152730321721518365527425116717901140736769107480717766127063077735338184764962305075623289357419701300808719316650870120749041361833285996673813372651934158000906528048523922629363266467979469819738009166228914573329376504241525693697985307525066049627869827561527132789295476894820622521147809639771894292990160537478883228999528982108613734881622096672040082324754752422196145303619782594241675299671029892114268341270362803569432255224203559741861701123260128859158420192258296466740188914455080006120960078839106863764714740272303793572237727517383209784098667135471026500279839630996423534315211515920538035300572226551127927506925085456083435414720464340574771264000904227519713021047905482419629905863815229639669246595767804206321841422058594226683631291233145546699387957357269535905458518868144414324486979589165844306622805751504815822497027340642119481663220203980717170547039986856144124282818798120563161032937413624354717201672102095254802241466156599044573614943360762272900953274879239605440306307908739085381748502834356039586698492247081666483872399566550597020013414426382055207882452429804894562212641838112722340245518370299947627839699721034342341554350421657062781392051377530659483609348791333760310844525547886328014026709497344038511279629789196096289215546383289102602281534625962482016843850224454520785363875040614816914829470996487552603976791718112617177822388063769061319693907010950678047355743945880540801539033259721492496725124650232455008742699442465721770822832788259916455930557855886516005374407008657861060089843927244035268477808927570862677161303142586425138855978389827422334769990929406773532326344770768536725269749409283321262975825866674631739254885529022589666013864530022174678915312267844893212446563531213258397776095562809437461147510253222070104598362382112676996392098526041527632206636310105109006459901827933335894252623514582801122494985929844240569705358020641162172655669309792409725162492122393185094910075608229117614620857721267252249677024809683945829117958274891060205729642375319172159418935637422976510053273506310686072246249385473023694789088222412160511369477791997222993416285278152220443640173039118900438653712755406015168481141492930701047426595411906942346320445248671597947306470403602245986752213891290773323863025638307110912556493499782806862819419902787801916241005937382327901958349599702753050032310410069288969067029768320943330678715212054634682873849289248776068364377883688383761896399370068349025323597062405873945222232868900659852306440844658532458919331479469581504554120247776307679972504432231315257714122268878939211229500933692918197921663094447261948671056199152918638275231936248718346196440179500075805938352249223051832500010579516643810901824779223924338711719972630133870297918241700836585989626291816447572771253416741665967634046003783149048684168640133698813577942103156520160467990797997075362346475135941305924634216148706769922072437879511523930596666155386776743344578252014482052259433959524412571931264173374486129498219818270535517521361114858564455351382619020345071547977706799872015436981255921037745982533386793748083145790983039440340641112923141993315173512307944729985909619760657078800973451581429564658270078734581867712200489537932669005934307855741178710195814343865040193037857375011507567256643706045348553488836065326297477101170427594795430346438425908215568107682187193274550892794966931678862364553036064173853185652901842039512085128677784590632576966399978143451458421975272524437122100252414032118750778412153306193846893184981798627858150296411634541789771431892640460684120508217136570706201451265261575804863386599581995360694366172909644548419713308394359676311666586716153233561999121759475053745772891123573871135296848266642540003446720086053977000847417300369658026929915988782697322881975878028743587979628156827330794702351925015883886443188120550580045721927724406317137245302157065395009892285960721578017432450392599069357954062073389566101673112474200085519982050297478757819875597682998393995474689750108660860596425371429443570927118147195770862420348461265061438809926029138505567561390469124039755940674794466036943826927906599429483279491649422110157951950282733711676989286934917721319668879280446449987113343549571183087344236098598266814598271352150670453695459106734710268742805625986063156619844492209379932305751192161213978002597691759111582796772017377722495408934908641983489259019669093772817133148026470636931972803453065401555935118009334220958663431720980321742397994363768949473562795117112589362501865109171963396929896963884325846855984908646910862975694417924859581701736243026586330237183680944782703495489435727081145328283649651869632712072710477390635195155958749036066113481569618703260126493496866136697330295393437524903721490402153581848320657927724321390676574808775542934997302075523943357393710918474448104124519701339463232146029329170936193469015781828556567822108849842331362499582580561543168926095911728758090885955198769573588178305528173579584876321475685597369267575592063488088511547693546299814526541948365761802286978128564054819769430107262447874041688721990511060995936899573505802596675387976860251122681495677066528363053692869507009074083094578183607355754077530173049618989377030930537232109671003994290478237504741553988392900906973707389889142017462896313085628957361871647010959982052712194917075210439424703906392745749951589006325393720012201252762000519644342629328400194018895718241220468006260457128198670197270077572468266601564806500871406875973662836776976661760199144522266521019318629061420454185158331622665700308242702999331006867167255829076440045583003424369633058178253504964259963401135089539709141604183284378590861281061150394364932175119711072202801701809461696127908827362046120802417997502477244144897017005637211858108415032696625868291631495545633004336236994303904442111205356866427237434671315969570879855962889111571948420993889420147091289909917416161105927924068004783019789437630112253891079479385882849458401536981301487734686766779704673115088238537133062271803335481917420639531467026564010594694077308125639031265200296878196258044597403909467214315531453048495349235006853841266120889908354213869334392220142455068049811447998316164117179007637817530714771836615622886906317852726715384004770325192951371360797342506874883161079203693669486003138518304838987905232928802346631640354451542906718985868484402874720148915600858746069668296919573313450138750405173400154403858894876850139075874111073744102089061063888509655987596067637079584593243519293970402827871864540966690512468241105633456144902737790720233763149843801468469905262750473353492766789568045285544070732107874926083100529511434448862202909175422312698030464247190216986628047913249894101015600584788404315872050488124036757836693479248561743919237566945755393963447070981290289980164596144141664129315221649885279339587166957136414466925015673459845902294995958431871743986360564332198611799986547201355502137768263873675231621955141435599160109712351109185420042022235289319729112953698267327589031795342816835614736273150293508484067612375769905162524133244512073739316120681494015572041644810922930554796823285045781672103509315696324877845531077716955840995976313517096139813925596472121532625681580988046460771763437059210089722861762727722112653980252958796691871147251065080210007665788243632141794139481543022100281679331364764636146993575114619667274618278728779038528437090852926148290191236253286606695115292083329337121942412715507092193185611918474156031409880005249804047540016755040380201270000044476253237041313029167013192836157171698095848016686357774405964746293902925368912421155761430817523207104821570391261875367199757378648584424379238235380385486351599595107265111103700430054468264983668326481481268981494424933607629219808366082530138072203929968505602970716233655511800850213402714726784118553342433672434598388322144629195280403354658700025030550485929853843539216683076730149242405082508842941320272677118190112518998815374338820949208398960970430537569844351884995773893957574598876673956589121774840203529071751729950904544002256941842262189530306308762269780903144508951995244355442197904444924997610341733634684679699576572866806582084612130415048520106042092220810357489513755574460218787659961109645327077694912381122396618036108752380746308699931289807454429730280485929072880956872082746268547105667596041967425383840151687025478830248359947788070088540737077789477776634011611948777347803032893342547345848937574626855925402324932643912045115536332889129368448515187033229537736091470014467793339045221953679760749797581958051789372985751801698804284896842781860818185765726580880819269379707621196770889774360096529642001011461992862306783889116196758012925777160418608185837684516684334488455697766218158072839968880889284540331288218531947581270233128972388398109904581631304304375371509365991973130272778628405547895903650358722935698268005457265968123056279989277690143858887863174450407014083927722782916732406886206497185620119289385863268317500960817498209496796632771763521344737428649258143334711681138261125966765159948730870339826270945574722827286667473987338706913056053508618408921749615950503363585641741497108429342439098976411588674475401172297056719504697952651795115548666898882963567447430151486132999963481735976618182424412038624261242690666230891474773280769890377985635020346022217327048474432768097527688993324676038086568967091588217244866756096320442248761844815406386632593728029409093712006891385621530089484600037991971946891719592102732256515725129402916111273812956652938483481692354072502661549014310213828930988496119921028328143627179092439223715675268792806976395281811751008442460990141243292719736116805949901620721635639082284368725225099968205159923869794513201947648341565058815039557266470876473645230670762025720103375617941636368786119783128998724540210248937878667839519293370518702161905183629719364713527538315477149132922666349642130712782039862002820217954460382417687232053165418158047456373366555454184862801229080728755521918023377315069416251591223393490689703421356303360315681738938959716697451355836236843857503660732056033177536716522974070713945977731511254680437046932799075327397594831230307870625676441450402781453081250707053794118891817219400316881859559973817086094133897044719226690223396986165467480515066505074871779220988341767798386930296171090876228014971865015889850101453682283874554158038230916553484443587046058871663697860808723306792400131927268837781785148491216457951764337950058643987174876939601071043143817623149737630324354902607760074721480162266192911287204123676992774490509162630612344760337386854748467658214575711622214371879720254984671063628029835057269876663846089000508969466379433261999281265343425749442202802305846862632614297168255299853645900866029557326457985714311836333934172195133049981433513388922303041694630458552985987895762217930478150983914726094819154880280415408412469166374285940809691990721171204345995533860134344837456920714227415558163961158646151585738415020436341413540747222141830419758584864413378280941492851249036944417213208018498450251373942499345491475167213941397200926338706200603637045306660801646543929951984056534576325236029672417457152965183080284824821436297884475395343855889572669951485017273873879596151087922450383342381097422813438358362298662978601643189354937653344559456181989455987714986271616869436207433915122454654299209730015511740767481423263467987048441461165626151262069798833488978909826334538865687877579331949825094525931848670143645121541948978355178295841888212375304490621626655115133879874531605905463662868108258287511216220446544261750517540895122957330859686127778149149584387015448638370518953965433593084393940623392264787415725722781939302994920810735978385557541359649822353707922170208062965696711657510019877510760492127747739668876425304534590717092556165422071070207830856952409088839036836123313486314216131241583365924671105134674688449177915361336829152115345269542596806060819559948215051680900123742110204962561652914195916619878295547320372301862265508565892417142611424481421859381567717756762007762856418820659956893114775255206094824412265796545144568576321895616757643689838406079331842583262297732578781975596835532642785290955371571600931617742371340943315221494913659962350657864253810248086689844923083813168478571638473972829841830192549407355235370590212882786409545468244422625915157632240604052300591601348776754164869722916234203510096264016753276118883527032403501120973109812764745699425715015175462996379971811749532070758121009836667183778801804337582190115204842813235602673753706687386572388833615974547910110875560874145490103229869400301966447330698449991180210076243002655484079550586983693085710118991081608891529730822337517977741495601701076940434870122910937145045863410093494350873956969824448975708180020391974260395599499288077399683661534874783548824870350846346372523717248858670695458072771011818629987327405286509939662612666602739238538665445813208506571570761796079656485674330491295702862726153837825035353960122230763795123402049322746693695288544401983873538018559859304783505859879558811603376578756517176205775233849870944357158613497226653470676953991849634971116735032701950597520564217563899556662592423368629308863128704634300888024927142404667307323183777317107756490798973071268013860423041103579086895296030549678564447853831149764975440645549687134545582812168790895158251921450817330560819952356590386015536926795767459362388106905358974047680677300033580127672353018923318415620912221868071710840053491263399604562230523589819441467294640758556084079321474776396195107080461066507053080284212024958553487200202252537324646664676795740398403320089088737741341184866868648576482530186757077525988749130322049413954783621267003110269358305775390194763560662905732767784271119163543067889170166669136362806994025845891465996453017790314508490357578367700547558250462166556663243086533322066873543468403971822373656873619589650458520628570158911138465358931232799853941553153069269608777476854122279627898794966563643693820200678804581244421472910297790268022040049427513107452462209164403072576921109765704437383258532478610746302927951806420234433007923086513674603064955148347222205168772054724702331942523291633195823998093070225855110210680076177502058963115509489086976569123994297648320243004868168404124772162971603150597452542334580395044401464204374682930058119774155153501669572838114543494449750020172320507666636159990807507085575848670393321839896761814777064976931146768756867552133468101484944306266083843414574541234477555350224202427462234065734640489501470608363947072070309775921508204664245747454725859776292428419419027990132508306326079465445980588654660058445452823425487473052205253599440149069862561186558662190699958224457861559864079474008993640061404666559876418995271291716202142631214100785589420676536926686888866011381965973508735240898679239561161702010563082616341133041932464442305968110558359366355115113484755833810534429564883366342561915099284905482159056228076890464592500833110600250388343767360383866278147828463715195387694704412031875783027740867202736661345626985459430987618217190945129966674514242513134897769421689090869796375582459498302441079185800037402887051488870097900653365986319186173441072535344265954373113864206408156697002117069365691751423603565857070718663325327436547755888390732388121496782119092021722031372017687857714593417504515404530900089167344256619547787948177900122146061160783699092862292425912287213662974892865783386209689257326281506376620006074160118296616322169412568689318451388662498769982799931922063870434191157824681690839648024105108777049755550429593151333440725968034280056614353754950160053330186824373585282064059407055940199762994945488748566369221522510466570613339216658354792155319263691557895831391691332768684934638374650510753697128196207162910504084514971764106477763619506145176832280726064163295587440990719112554931670690709133210766053998912603290531882532744098018336909694875966336376126890281192376348813510716568555512255676736077144236004592548373399181222801645095892836729117875256259162403388393435850195367231469635199166230987912391420339941854543314971305941574872813467327257677646225731227960521596332059912853948619848892367615404816405393855906757126497913417895789636157239501424944897381753116494281623085179709749652486571286656398129736862089504173423299472117572740414935899273912782837799127231756290134875464671093986915729863330527583371427550505986512012182416705554914524405365841005460378010213731981565215810291767135460198389824573101106414401112625126496470358469331916220476811626604349147859163828869978537785831098502079310916520640360581670945250297153155712180121752002562660236231741305771156354029799577166312548987036427374789855380856492594696691330717720548514462037339169706657917140610587117674152607707365867369443051295820466453728453800734203826376812412207681105839697293382978229316424179595434543100994406004065565511254999916154575794020118742682405262917057057934113548581723542609609112458730237193330170136995305564583553925418637032112531432746989857481232342184311348328464839833229375037203720737112871200411534390718847873321620147820313972585626282807253703236264863533720102824278802168919970475121731808883242353979792759720932214189669650512842422606693478203065890383783185076057107809435089033530966863912802612444047326135604687486410738299814447255152964934415347803135402128414082228624413842907805485202562793421114689624226435991612529624225453613981038935316984927613217844818539842161937465781609738111755320413729401434935231566020650249623935596375070200329310982699129003165539642071984358520220522995553593336338739504832959572856115289866465327353500386916085830574290072050232589961269771445330275365871118813162716209845249147535239556925937707535441918925982593653506648510839243467559961675145661165978301638855241820677723465526229300164650014691481836270380701709192069840017890306679461120691510028547349701974941883391790382908680036148978926460012631971425371529927461998972208509790336515714891423633249711094203162192549751421665900490309714724982960360815656328235278305285997604281496308830066198514942736674050777656017095326707931993844735963879923887787121009368134221998491841672974938146235154041692436457521607386141211759818482137343638968227194655040974233958593670221676067030305791292960434092166456285444821627371439684179702530751160097519302102919676001909910236099872208134511590018506425784947855176307411599313607787356580945447403966091644620789631977936386357705097128290713745387024362282774726695191266000381925408936837228778583342187118388840247973236488515732195007032961345195258231906468634532411221532803300295443669985178918042997450102485760012257714745532818510784986491206772028348336074727060724106212958517896432367658858346998070950172262117028337615581596699911637159818950581193051009312648438522112104212637608429296749113303596112337898427510082162428439998919215235138675422992837789941139295104617043772995273810943368760973115792360870413259465983460365333341972695633564965337159111146206847732095771554386067285722458156292492810505075271463309460673622680282742637048368516518739100205958389484403200954441703535894285103940381950999551096057812546139558556363764887629450816767745305091523981091662328491448703022869362346459702634300160034683683335661003839198903016766128363344134822177240232226185579911430532824095401037335928730865369040879628581178704432640036410934320844402864453512204904591956593896271122845860295810706166779510989835731318037030698243894848418157245825080166408920976795771390812935550718566330645258807142121217423797040004359943108379205885366719622252063893338546066722170590361916273731956536955897418850717114145557472706358847951690754317204751174633193464376961896489435533348420978026619958486896846742179099022413958071512358543333367302006211008588878131789343343195277873561618134142015313212853936946960575629063864002253869075561410542952694612157347288776584781833078171995556668961614160006311611487627131921361321497813495856840017992526837661070916934835334304599425756505796215237880544547025320573031489225464954790715202548189436923890326702046406670674787970626556175877943238128386469318847939969224239519575244613785239953461846361805554315255635195362559051586534436457813061305094205768407696150041561320811035613527337252772149320829665809273143041560607104737591302621570740534869551625989627499488627682030987087591707978562586993768738297588711971376919293243218911440078506958976790079508924221862894244264084679822039249348768587837478155400791019459332693660315750243240044557697830288633362063840695997425054531286752565812244117325984607889245439854379126740999668494055468048138854426897671132051597420643280479665665548913648247017307676098245374737881975711453984077284240585712249152909143179985241252609469655857495966691911830582947294944061470715728447108931745730471711012089226359258337761888531201322313543071316475200076990437564531984494291267902904869900808286815622163001094036817971896393669964210748168404805990126135586653429989412588342942431082070258215565003174244639366487396664453579501145600654103990743171235489214491542108342773577058999711518599313478254705508180677892702801442825364440347498440641512267182136432339878766557104526273439612177299880857415158087313276268601664424343330404429797246704638849741253079733954679085700113904901808728721958101269086915400905977532014999164016521744081919338752885177838816164413695359503142403591765233161869315230083446347375339294671516365616658422725463502995807337959336177605959765769539826876385507392693089130944507490779512016854296461164761791489444609953869944678132251813538415921306853895739774544393588013469541152256554041435378160720955609353001635473865159238308716280459829745257797685635411001745496318058767872811544501148863396866916796650410071188804579622143714641886998298164746102063815303772766533631914616857808511734186346737795057926599857253245450044517397270930393172786937490931275049211579765383343521433427928057720331073091404180249045742961290458513627777192525701890302174811328755473729718649871834144055242413833956282198063142799391312370158653731278632597309937762934212673553480167247980753232030759339026447483799216916615108205237653516603887013458776569578866786990457862982743167423137237010052953365829226396761608556717096216170051839326746610679989377199080399339336438308499056100611931454356272291450714557498378146935908995403308675559866757042209871010765716494045905940588156971825610736083683674790805792300158656740558149871602449063611775751262560020152155686309233962281500485290871883748923900112345096736448801381956907982729770107020226695363024574969858447192004918303410865328543639002941481759040190057821479396486841870257754934532593829181810219989761326181483993165597647314680384797431156942854256462224406844622425438391341407700488804897373189709644757877330321379024900226789224798507036126571497359535256011802257550270737025361666301616576077898266909425826328010769562191140056838475422845995999537594011667617269186619120663640262644766650168829378220879131135302515374469174539826446742884743907228797599439385238289936945915736251853724285928581071159812674289310530087988773340103431431831763850113035116312047671398350966398802225798317953396289400501228958026026827970716090772344040259479689283672139052237425772245567877499906310483911162894037335322641471050609690584182830341982444081468998617869291242620913579870938826064421316895045899373638930584863985811161673941417360855560877651223891766451899352407515241419447193249538847715559610475517669304505737819261086197736124584760851465986638918809094564962668599719604659904324437476499326129507146669170550544701047237926634752124624265645639093886948662262352322334842226935698104559966541635025660469575788345852224863856700285698553225057295063859393875621375212925418520337104372840194705128290672777961478839777900901098118901449036099103804785346933065633511626445825308745505702719646039560201647627816036124026579905095435617138975659221736583063294310510048460978220469728038726879416850961467750136071054461636597321158982750087107388780566202760144769117661145073156326700061535854935262306899062277866940913345565581778254889806335479816433568123882260101586796757567484896568610095002262949074784020194438093523759764131987521576754601506923996946199509261254984194905073272332111856315666478369229948167634494677699184143307807125121430561700380574834805291750216121227714035165595801688254702916736910628563062325512024206951492864697247932096976866029191588936099493372480761535007322522140776396361666334230899478238784465378971193777953153933142089333844081697571412996545765343152318329803325658412766488994570758766449236781608925069729910824865056787255125738501562758565611871340390996114910409126014060929979316966740868565220973235746672490106461544034668750015633842997512449078120321504229746399665077747556500403755134559838053211680948032403650406767045436497379216925994948454805354998738134192194517716551197423384328683713418700236102087155980153675119151443486102467485594976490877377220823922374523551063406890281304501007746599031934574119058415479284505423885191105877886921533976831257164785370165498828309493710464253348449906770900006673706308923490445204813855377055335560105435361196536185214706401699490651417827911561104523632989608711536274083308905669790222924462628839950287975090528048654517703280039872000750810910319418469902219838135860123627996069047794230904357856783427949559382876284818575689358497498628561454508370818896499638244046475162825580974719163573226966145177480612319404032011923080974062636747188354956964217400478680765376925390828521644734768101107963082658460725884718005153672871046186745217305804242379288956720691417104953992004303654973751755952036053326092612011234805525098951905689860209138342062083803832358643984580642425886476566476231699690327480910859368731452515655645459578196887287856769139468614429603045901751039448506037486241622192010335624820333302214183904695088135963216873319181743841612399093174342877953935373670847874793629508802844498833631888441633596567778399114136487049787667799462265924115196435295546657479731897153506057876435598129866642563191351889990148925673970661416330956698715522757435209651932443404883190460910063465601601761223221477698365886819531545173368623888936944630381497201237445300599974499403635104916162829585316646434365457052177528925174656296070716659531016847002845775720365217057028935081931333766275420992930931696012962019450963419402257745926046025470286193128822320510950332896685835411567998092823761641181250008014099175613731426271523690930447001684533514308258764269927663111082498919042213899816289920946545856362670067640422285406077886589854507182040586526683801567599802364498958277585755584428420517011589749344979467285265463091092802736576652000652552592145471402520034500810610100896887598266423772942149382310402911724843443405072068540391346613656880935049392702132035768820952387766422660486435154440270396031496227033877062790137739453199928831461094820089358351350852771858585730928203755478306195674538082653880121421581614626224796437678659341956313194633234719892373506212343288312119516077034180099985069708766272128092425175542556862847792595391600399629623052798124325070212113542337614644860131809393777991469584731672703434432321891034748653639037573088007921358273597129223642876079960045101868357934886215659038989616561946332478129489484417600975611303982864846887812012274566419331005338641905593952108531768280145243344617475338711573129919700347242873457609964908594041654832561782207876985924516720509100085331046559854490882204546566112984139033827354572747055198271168608753697655839062070749552213356890334846848008818699346296327247425172249143646741154517549211232650431660372380095215818817464665658678091299333473186222212975382239723077391178056039215493194923562375428948045055687043096362640227911679890483540668335221169214299454141945417515437198485197480600408480815682288671030742811679717290493362317899670103267135589290301705586176182632595443853480643584389402467917087485262134550211600144238530968285624556190840299592125693417410385570211262647089519943128648314329162307170577357921274532851963423520410211986498670036659174607833738248366915077805052866773218450102810912378429900287288515403118959713602973081667384011056285499383498835699208929102161879857925853417340248652679103073073427692789285299853024826224119034856777326842062491504933548822464755867543244419002674651153381713318376307163168529335512254444919201217725030033035820641529322649657397555396239489704389585143757926147143390913714596132044376241417578035946161291219312612568864508900925065220663190854217763116325647470616074799823506291259628347837040971156328981341741452768400266204888636201554481659820010494182756033032706029134206128916824130659406709658772897395288128519845067195819024669165515862322601974157926062518196509596244873095728595729927309569263151485277716312959406465150157989620038462115063063483585528810195452151899461871385113348335446663143036977476593957063780294854867677669073914801010178004472643657807962284305847466067347355958847056091161430003663441746362162891034216620779240902317341222398574902279088795134292070781872742552220966595804575371047892150054156718604292283263161051867592613527745142074007897365661867633435123414971598237026675711242238818389722992213027920830940551071778070103939794967981835573987259308057166746696324639951831726046966077012014986294898859652014645302365393398886899852979764985200621413275523810063311918498444454417328210196864427684836481263332201997465299261349587769546298527404849059351268692465344608004133097807726385476822417990218643054280858470220552470747463760870532083640422878788629788254990323995721876916346120165660379312510179024426452008947059963801888322786123695570340626808147787847894561530928327966295543890129774850715523100102408184098554769709376255450171591394130275871340006524799134843996520910883750371580396308024535535380991268102694246200809495384530858831868207388934015398721717216390212635889231710362296811264585598872604528811150274897159362776532391059884794150607475506435163348183542320723829322096824208655682418741038585077186916999095210340570281672712323827562362756391032739698409453485386722896394100965818695198194495585822057911080769450618378788218975220531181633190877545133082751633711546728609395833787385884392575423577875930462082355693229857015953001133522044194680463618184874191176241587834332907603691440529623653233972016178749708932701195004721504063292941651900012389663372880200700314859119671722058758407576800884181278950327540210063739146961979398165283744139287626600558424819550618993352426302199746142335580921630274833692275714115323557802756762081427767061575089105009834506399614035725305692893449600386839536783224286843099224122558448311103330040839755099168087144478292446250105044514912063301801637871352566899410657640164847879636860216026806994856306191898797002569437770742809743304596889071594168244475646111734288509086398633069885701790674621029310207282161994060186236848241570029643313332647691319789272871773621622377994900232287415603328815930156218611798607540179561856407073573042090755211368016159602882144375989463430717267303691915128314710930406712682946967291402531985383808404317921509086131526953868640529064036532986340581335394569747044135702278626486998238559510740608455244704592933249710785837313902384372112580103939490341168988347834638752068105068695541721029366122688763296059595326262703252548372012211393524973045827986059194928701378936370006040994844334788114767307695868526646701882360185800400844302054396987352033094022289953636257630660470767397284526649379896251872442724653946165679065101440896047190333543141731694862811958900433423315407985297183732711992450445878665469965068499726563716765270222672619238018086704983017885513561263693247665570520546300345558329880479841451985561879286604627722096383419533279036976911184335233262253619677691199593407246475392401785281738216910842203466391408876017001569202241566805435235154765662560125138841458974308651008520605497387651746944660988205378539436522001197105268133952406337825583379220611762427718866482732605552863823510225945964393566915370790494637276310911683364210438335093854048492369260064204751371752713177201537173961593572138871205827964140346303993221298275743724236579654754438155018558870113117166298137391179081521305824193904703696695346002981690480128478331222356437457227919308969327900757949574831728344794237174089456321238079029993770036709970746039956268581615386795471713588461967345136112865051910637710156590633088053668314865295176003565385435559801130507605637572780625378969973321232316809442510906671379795168922715878948426815129894572623345877564515963504673102156290727171228020121607651566876727342082779370099790823759720058724426982207606949551083152444806589812701740824658758988649627533347553527736076032037570353812450663917083153994070490570041442276582126911629796183615050886629489295807444962531387870645467119426009992791944495817470973817289191841590440687418451210928563146794544923867340719175500090767338834842991588912665993370844293630710867671709974937336970056194622033423521733210354181795514945436529754251183581042183300201896922935965375629744450600991102342589545409896954568143247354860291277019129665444862483717718625166980519594559469916546328491459375319980947820315796359459103166388124451137912467415229562330813428820572477858316083655064153172950271079584182448880987763710397827763295686988004761483205654397127073782846597245556394947416072406194069439815176042881497155787821879114440322892988654660281526895802671548946437198491083002638782957572747393208290869590607956162069819961671644205886067740014012181639641793373380109261806868297369656531605562641110878772464622929529283293013870217494870644282840847351699477102070597292182050887510766816598329580853375538784240378011046478539960756606163666315099979314266737513187233301103113505032882119391985207714197589581955292517336942637775231982985563703201960121507365578243724549071128888593590757979471941627839221454542185145655582647160417330446141683229862169683267308820643869948708596157057955835459498953778135769873415034727859255233352315669725078291623140681090477847799953424542869909491591998242168365074617153161332644106473428268330087528652572488572737596666271676262100726307541761868969256974357424520317308356231493764772210245357554772508639198854174566284367530416126582143004908921671740248931011567643716820298594538702391227835876557684840622680061785313422095677998489952619331670751867063334729562319740173110645641610935538443159968695214828875448512949882330139636533736388288651072362620784133524302936408525568495019687510000467288940145155892664127611246076782514642566036681573085205728880947708100363184071096721671623531652619521996486257784839915190378026802583560847044186270913784142493628502931520427690573666623325477763233082638169167678535588206043921169485791569424556398213168088496756283569844424120392046405544078683684982045051608150207471240871155420392272141522671417688306668188804015953680839219523880470123066729163270467341286691470196034984074852971026971814000608936819234259290075061756225286093050014662559909481553656969606224441033930381277754602621493417007624085798071765214931332685438728942500938444008407089778608266017829425450318766740454763801355173313488552304331623638004742596283601875429558306063595743948835909217985567912879237343594005706663265659552039899213003632156306368214301573659699879693756309392161079433502792618245533020888223720403925341200605710724029747538965529821703800079039027192604435906790206892155416389371443610649026970311129054530308658050974814575509627935611842892971562879996608134446860652610384551262393527530096350691486579195629072338532459582795894444882482295072261523750680063872867270339387045379151919829437774084039944021915218979258408424866463279664384554796351660464641577723180123623754089219743200518009819695047139870372118764940782801342479644634732774425486334370810294177236486089417310548263948071757603510694014781707287334151953551985377686406382282413842254806222533783943388662626398269172432983636429501146895607866065939669154547350912051495443739149212426997049847416378091042306979214738377211649731249903552785887223257205394668191239322211746998798964498641668649150012177930403879015876865319534343736716640773555647946161262821287902152655086959123136675291678230811100015257965043148138990924796805078274255661793165268254912295079877427102602256906557073339905395243524854504768233374669648082951329779695315040188231301415558110903360936017151143314806870961820282399764965668643346513821379813374046452616806583109145281831813702873503634619397219704715759680908777972265287296832604766816902247531870855120766285063359397120626834136031131727629568925962474555461589085318785841954122897359245770278399136484209577624099122436668049476622711914594295049925258799202332441879546556247030714565694698787967933391311773794054480846329843393760108895537826519341421049109021986347676696815492128628046209191355154302405173227111399354477242517786861251595116643889165052261443347445118702312217299574494136660484424861714875015552332616356509412137808781274431387974108952905553192323213481837867984994918070671412585393887694816389181456590702861331639512523210624803802967001701972962321839103308778669042664235732413171843320438759234955783479146000475538395589013684450868120989710914616798363889267408014302229996507821832590948528534159284161813341138414459902622386055233115116171761962007918799402631144659433036796750722776581407621762717081772402635148034216139485927163826090919101911529247212924895359600022051602809865405612254680031381009616287218684617712012478557739915933048804521183671624070976428933915908867815493750193710334440144205083407924245129445875187444823078116934967179602379572470384951118767595238553636589035239562683328000686742842562907525699545908668676807957613093994446900999104201798709613703612858855805791606820719998685009213816509176394111397153282383330124821347080039575025816269148512104416091484938109088824820844921512866754632152340705233855609896950497362558076941335642149578816557307039679616214291931496049815052655191592604008760647418503972711277987744168149560786988313138998561551887745573037368122945534196924299423902577866437628338109793389128583661648522991588407024356327760198389680240213532061811866437989172777385409460361636734364102956773674261820635787362890457059058000020513400776529023544440908323282043904017850761129074917593546377353450106499093543768308586354675287456105987286108874033609007659919051139432316557034006641057297621348745328699102726866781335701974072822143105906012145678688838308266815951939095982592720891776405973123384748950971808382675204324800969439558173018813258745731464394287916639177681393956926628512197050931696583130466371774224626127651136017004350511300887822691622097730875698777367677462987733290473103049832937032893462922602266229675224646953404644433528940337811759376035516217041084757013076501088455814903063622251120212696927882215690095895373135199543990300011424546545304201969930029869353954191959541938848838743467627786076083414055459902964403030926700125465642384186257202482556209387911020742446068830173333988944395296052238588866135348752886366267018310675319731564378479107178592140962651673649497853656464425715474234938643673521491181260770011501417994718343377681644202886885017048860022849794597125968208680375369376469231708487995444144148445899504510586612514767156105739911804496265792115932565686724973470576155001170043671373877048057115723485174238226778961887629888079608844695538176531455689332904461349702381532132476838325991412062726929201704028454705450503827951777164531314372861456354356518026470170358949329091173395191778245066097697200249588115935675859144690184457473286114892378264573777166057668900910634137201198185725207604298706577199719888307576167856205817099326065892736363833279963554362865799960037835702576152250602106365693124204808181395966626587224463954177092942658970916259233483269214967704682246832268005577761872704450042003557752629302936949850643356776111802663824284165706072687930121162950371517696782332598940684879647729486188882421214597115589941218187411815185613744469587997318248075873515912340195341856350938815903803438353669862021443091147376453494728398595642541495377456256028770677243726148972188580076064115161947002165538423624948674198832590253897077724671780657424153057915713082008203218672742369119790394687678722502135991112934544601744122784379219151565053863347106340128009067555804629426997377664040698910803185878232577892013898885753106051814077755700482505519892512575010867830338606893910503406417523792581051599316669689534435724986813701031536389867111653072816925319696787967008379956183080135083645558654712785101352675187846313627219154436621832251374992783412673504872051346426511698075912011000363862572805887673498773395029659514935422244163216047777135282757650482584035960351272641035185581247631244409092646683443338825928491563405511621105158307116076542170624570846026838761696120341791478832490400874014188533944878258033727912328814567006278689319771734659069382698015589970130383566478815999147840373840852739305130574633474314866537546185421604590360039858665656417540910065891907135052644916334658659286679379652065600885740416208114536215927825536251749196572878469792865867938938130952800897201353976161585871919935636933278329034081944593396915010021905941775868938377957812847179155976025851945157802614522280488921185545136101290555503448753731945336412299037430585121588104935709997248396942700501176479009719193434325707701693977271301799453616312717761471398351731612854798163568085086126334310096616103404182243486441741162881584413134231736190941961061746914729441138438151664719485726424729979421587001530901600407966281600225542498256629768659128829689691744917021099188916762439136220407123344730616411622682570018390575260692450291971980282073267351448314766511837574896187263925617083174349828768632878911888405674771576812240971210332270321778947168380508017731116331801570834165786428413740029426424753360087286361180995160882300569488973406146750811494956192965738175599219457520451413559676318426544375801828968524252911618585888906403824161907411119672887454530010360420596991108546863927323977592759820504282214818803093346098637427333432029380397959562810694580048191756623339958974849292248713955737998703701118140307376021573238155001604744818022657581384332685470981671583988206574465500001794531720700994602906962921696206314368340756865340494211423986466086579918651858398289307715435553583037518450078404632641823214588888802177530410679157724631116403803912341678070054089892307028859857096346441681023055262310640700265301367300476508303502477330569069411908719653420853046545654590938107427394457778421364539980052628090219814592684083178205521530728306518567536121683844530621435559692684340843242254980739023190728214212185576993811977321397068506739921288300090042701273594911836477586093075619804716074090551115791053531714931991258101595237343534402567587206270752695910925442671367961844270829135047951628050238766096897167184840968549123166273184984315773434438775213862249011149364980550728693615978139177394495977991022809995515655674676244731881656763066758296342560306705499603460673596603909789829352577409484750002416461702894514057973893618455926992556973404567575047857978026707965055630817003451379584497535643758937356297076497098050128940620177638626293053023560178712024150496906594549361403910463520749379550959242745203126997985971486735878124029006697842661944862802086931256992435381162409293278597668016898625699464763026618794253959196291437613111808222038824506279583458477625235185152303334056965650279696145461219735873007927295598542052325782579535363611488726554543765314489684666001982639241735523519099273007854313734035956866487840479497338523987333757102239210172533496245322327417036689476501053713846518870163674549671329860348493948091988242866437295950313629529053332124470786279430319521657384523069209047143839043191078538841131342203407837767024596161405671375637450519587558615000296132237694840267216605128529709803162585621329314524036534089361129301363082661616496842289065764957913456680444445584991481151009535960031405500618692115516418443908325797806358140035151202358501215186695836207254654493310934105490908260447639642042762052799969397738483072277726318852497756396310039087334238909648313680555710731319961014889225692730711490687892053268184752557998178461519618702917726675926014486547792576583790982558567267409164509704581322320298216006709702145885858405642283303151033468725106984890777320061905980564989764568987983261325728981161026071894953138367049634297033376043053769224829155592769322235608893442719163878175277975251938207635272540517080960531542281877580476573069138526792576993102214090584185718511290078317292078780813851337645739076861345469333687647388686009783187423216219906192859604346404480484308216164524126861268798478220720255508542255722957225112232173428964192861628707307329721187132412483748365079824341414936629024105729040051388691170798833301571009391062652877753933327493456262164720556765574209679067427555724182899355068669994894095179264326407230288057312047805533833440377335805250649478124464981699220587876572010302541386923249041911132309224618771511518231471970723848583617540297839295462566313451658167873105004948376108726024856099818647759760666786194584417052183705317976964824859809457792156685504245121774158762811126410866494685286150378429304584300267148289027895171948313221650556691331613747771444743295755561800566013461975514071155509373204856410120294962583605995196321378488044539802240164804625162356580595756512720655356359974645162956335811544653957209508288008871967975417031421594663885355846881899570572765280330194710476785381200709069251647332626321859124036770575106427084066327118164732194771121616134880004621708894090682099323364326599407844780046957719541821266008666197032229689509013639018436510850235654960256137414542609847445168900808246879498400859064080395947020783260885187673397912607204026714099380116236103397469512397514616216602621925872954730149628244345825700737597026866799905899583749651762874122651742285688184411930997111639512274004393618585186454457757926378626519599643101422206409408160725776363188133945538843818916926726913219372420539544058832183367053388786084260229571962080791531364951164817191822369259272091549843245615630384092697500411172057638318109882575517630150694087799792626160342391572977960906485216320258773718009078317008830748860041338942162921091686649834292056190281562321777829233922942743068510563780060665584895179119337603101300593399831152104405549326054787949730411452352767557074596427281211643127281238577046107337295203817677672776721430006262732812516060415334040184600274573220516498168745459316315849095658166768566100802567749906536814596474708413281970905859040142705425541335244730209524313456588466204262863259589273501280706711698031705215306346886845207177777528343911732156993141788390915929397825781529193159888140928359480710157874173676820068869843762250407875247717684512376589612053725781899665682962952886266428708151978994134747406403766871314857488710274025337267944545106558549523069807402900138457344317848503592229418066723597591656293029848962072522131112196227248154808746827861867256299366752522008537104636452618455499448238484378814018410183024556176102764288382477569910474935526963052523367038603909737433210930617338566961594655642338254095236995452654620782547873748857310495304500278528487967520268943587975011346692101075867150709334683137891170966095888768889542465363709538127559795880809561321943329265628827976123844386145570379697592863946450983063288058447145017789951204969957316676119552872092319814784734835130813323517067471524184712399501583414518219789782319443884859444459022051634667552459705845581248052731921400003215934371027659342300044030743379666121323490117675426752907171006672220378026968966492487357225115570476765161528558240691802317610657415210447566274260090760330778357580082075508095738825717178679732608561332119994172448087212966525060807108285555381887297631453122713190100505083296804306374034727657716361519419241411630177876067380819423804198528931132391063660352086907217594651386850031544392367801321247616351700350804259016558428194850513216602584561711444376840082669694477123370919631735844538566476311780621922207599197257698380693208404174381990853697524147714839387209659578514746541775983946655161804793662852153638702082811595179958572102824179397002810603346288681684035726838759217595935635388749911143949878428086977098734048243410814020622035086578116142975745594381774329152890782423885899999012385618062490108930623870113316785337687258801533439301774543645331931692315223734773175350734040091133442114727086838539907855935142169892204983179931039158410077288252317139610452918508412539711215343844128798574079558424613709081653887797407606613546810295553560908208984611720797480817589047389168276032360049950152270164892681283410018489195227606332764236349261162648156207401839320386629791686147552602760696675084535326886036143692443678586054137291555277661608391702200447580562662792951632160440455612126530056907400816375145426809736422819329000053572256274028214568759470966458071335598857763391160821625632445345958857066931518120015314176486857434876666657526159378415920318063995925860535630691495367160530225815970698563144847528013357258983196904721766509978137014393122148038372986178851811219222724763636467617319727368165965570024296545555813750035892863672446418568468346556821220730715143488698535606713908704125390592856210824720762475850203324979541765037127173239439368301133726523734602543165359113827057819800141053775081512512940184507557355122666341018178087651330767960852458330922528635480735487341186055375697436854391055530593696491124174993455971325799682600152235869772448390253545284109866858127297077424427854030653082334719385768339941163736441265699618037272429669227715758673599274947568924203919833815859276251302243605087719063154287467641347351514245975916600425186975097991735604047610589082359744358934395967457841403730232234454227575226038055779206084552060992782814602436346283108046983687874648414551534775318054450936554519507425893119122223326013236011302676714529893268528662525334198673705307443469363697843168889491698333345558402434487193863475976169473882832212023806836703815177363177937452500025972591078429140421778601243130572138367774874737127235248446160138128489704016914541249020752766166375726930060160450506469971818514115442609260470778786879736102708708412321866801983638006985022503571593198701154600685901758309861064540186826029062077023942902325729128162956530159631425423021452031744705422518715730037187644329311590974978137111908396497949343940696924142685551714550653927306378278781877720327237499810935512917731948048771574370531655329094172004373006955458305941638975241495305765716828900122302385368630580494145312174310773462196143583074868971120070706577943097138676702465850550729237055300213593823169679076290342182637151730322613484263456579695365718611173098153091423811588611294779089255680321553768349840438322264382821987032588508919775907263240703344567388725614061485424843651531991291967740662606379203064804609564053029063574126136530086671550828088716732419233008509807277515593571603923475864246275357577331708592875321153731175230225082120918621222756346614235569283704310294110076151488101785382356872608285498053868244074348944383402858620646986613818483167740613308898813258253497019273128816814971544006514023012260255115381707053652383824687010258044669829211900229332302617607842087366531525632893630273223874342444410071968513180124773602208301057669356894280826443512258477519168962505667539337063477103012022928580266093691514693003542174657163246809640977748033222593170929733963091413171784162766306029471575630445660689705688650474227097073987522059861450330215157762668117252103343382074799976209920910784261225917243420450754077964874604865647714922021115386884523859163336815641373614801316998472814506390990974137328981760209642129407972985457427637189357249233260481755618597855231963450936215455697851167634138208568988288112748780721729178464823755033234824458349190380589327237648028447197692838538204998694759875094330419803920004692849007854500279813183067846973451483341965252031683316860357168559574765308420487777563799940640806030571566349090841163797326193447625427653891418101606546326246252839192958698291283610259310392958188024668414129882807285632243348149583679354810196423706704510932402428471613035604587695564329976235019728430428030899532815920324594557592658463631618920518849214351819397568598858123249449223256995134536901671208418915713160251904775380481685111104748594002268870819273990814758654776293351206858064107400246574948486660544296910321705165556404093225783297338832383872335346089505129068770229984674309031604732993142095981909470466710870955644986744818115907001884404234096502214838116019115909754554383348967750282005267939251971564674469356540872926039707341133433244154277325781162154327806326212881227598027760135026886643638475557780201798404014266156131776466196382279360785299132908957603879056679468871909692844265542753780359771754501312864560693954031571298602924070825942727705877217140615820779102097689662569199825005558530424978139615034398293701015391026527272911839644503734078899517994103204600112582476400659883021425855731907931749401402095827222696069977600419308282296451425275761352995285202734122884551942153173804556712786893813143685785809346209102634017677056203548076073256277396653288047721137893009154485606524363496906237898673543314685049515562402354147097560605465370600329544844778597778239768000738190692770922471701491232093690111957635469257491228514079914279075557968442371898039390083232896139634558936790012262465504831995684208449208874462106928458897641843252633199960649768516793619779339855059068489501438936958288188971686807415228351730856199794096932396047240864770340164442007297274856915880492189405794795006698490001919337922263759616723351114148073047890984988710541682640798009505482372182302042483876713592252139543451114609979483944048989464671887497843806023638873295575715619091892000008580527441541328243276875265433443423847332550956840991975454046380719808098034003764689430274429186716714864301090013279062602002490199223545655581029825227150501005366578307625875756385052804615050662452776418853865843668911521065883252506542731032167726445507992674236744733802517572486789539098816153806310663567982981414257059429621609600723001294299287892467536602477483209521218923873451686095412823323671431914701507685842341240619397318899137510801494308037930571199234545095139275998277110439187906155077109484121176881794917302107606179054628285214874308296352952694858656763228412523467897230252632876543597705021982647484131579412565424112814681998413772052445124980455554867029283654742227311998300949546127248606313286154639331105807469226783915584572015930647457645522722072351168267315063658534511182369136561484871034484070343808422063179549129306895462670951173562036522261793738575059621010267676701813428771723799837399038171670929353578098824617662187367644845426783210452860887544253945618979002877595611198429966284623052749474240068499607494401711965016796023456806723584557857002764533550511385249777675511157996051744266517434852674770165689690904602670160571317677941682567052332593261075421025404070240262394867704321774272629148467261675405145540340485200144319855975169752875112046628269662857982799695163402651800358329764047826964203251581093476593113713007097605979379530431660539860569580708806069695610749354841847380556356356605726952877512753523755992926828290682950237827062209523351495981929853889128683190718653248562709023865987356433969797156445600451431619765319901668747841772556566246753099697614814342191800619483848118757403915628781787700950959943746804010544756557059288733416659266066675751612524492340168413912747336971673349393917768057966274073637375245570046073254886593829602279207464616051737741956801312959386464675405308018239473377397198382208712328299407470486350082404864396778226963168507370907546014316312463319177561784456883945179090304363437121853324831251039532439369275194711370157982506682336117029220927161274616081828892677390820147642448024893956660384115484481745648600921483117190035492198231102294826095919776131398999702153209162106934922122443052952227213492168767178499389223809247260297452128474286986904673243247260284996327560605447738485748083927955387444500084250276649978455363197838796592715455770000647599526029307222707009413793337248984035540370433078153010403253206915602971958882589737700169483150346294035844231912084219860357122907978541801790152134658243557326571652988930705648066151562799583542887663524907685860374579785923283190060423859343314222945205676605469431408496563250261052047330101442421632657438773096599817011556101443643111954062499492632366358231129448647285977826568014483757601414158065467709691789722612173411023983045557819417514421594591481368775658046556755845962105618016911495557452078401057256346547286328099785411461643301505715588228321831977843642098952459221573022319520977461850521148608610262536518617941919110613281656661264134362242654631207995760017770469174403588286434177120065811744986151354425386793429334829677309697047450084866245216101713967142091276655599065316062267549189489430586940004301045977825223163474720166703852556014218060753354065309436139473599675802509839073107765246810728096510182563395146667640830970351225503599198623853945639512850941499841354479992754607534599654769601403410819757096731051508459362136186022085928642601864934176325072558477843074481506147494533922843629349618268378672112171242438076322795620548168540340571967173158971180703516659447878120158025580799556396203972777119924036553093987161459433968629532999599054182759259435007738204742634177876170568145697627466442802521495499616407229502842000504452964088373548022909104898303618408328239364758881123498586923867619789776914783235439436617923986257481950851891729746024526237983749404299933574900477122749395804199302412800595308624745885936794203575407676912096920804502881003985131261559524777204367674863047742415066648804014770497322520444804352817928401761678601533774776156421029827384638302398773187323787618901860025996370052567883646890575757551309857839253125939644914273519007506572302831583928402389431397100466983748102952190254463454241059272430233478025329910703830680602695088697581670292512699757201130172708850521598215083468542832379367235883305886061858683794397291423387730353334842545272949475791793408031340793836074304279267328006396055964429172636025871266502018458577275005380153123394777808339614421578362177316779593302663927432129700195308719675557455831272842560699652343818105163420329535018920897748239144044156166083600177359856944450471323365043819449533487411314005364121038284599493835288256924518344999977459407749243411832545311345230645423736398180762734603872626930023009261662933093701621382812726654930078862461111059016647002586310924091033382169872588966626639860996057150016078468120526813541003350470293322920333851262058551738772853531336711898563730235119133891677157048961586999841031407227671579967539594327602138482001661087446407305576372709238514661040234793934685409460338484681581025647453605041984800590809210300391699032156069655423241648488057651632458223690586449632996318416402497929058472453684595804824325698614473578883762331232140346877837343136541306282088628258777522867084647495221318961824856779367315468552380897456129174468252940210293983522627195548389687724161332038728443422983835356696448897750967887289049169190791377833337120618964356045580935866335274700917605400504775390804675381691466656393305543761890731659286738542845109316654794538417589439130615192625146683290233937954123948212412568411468971408601205040056444775758692630877923957226273966144559314213295211864772616047372117944621807612692907117955585408972619082919965052124386418005247673623511130052128738819871518870381842688338172239291492417434902552781134762103319250414750953659293712837219487035914949615363651006198710821032522490515039020739648922709862865565533370008472288367596073908812358588594259269334987300389152394088521971320551010749852214068529222995789314108693118240671184588316031655489293892135401418367069062222847645209441436817704184598162032459027603580387028608052518067674462466151714769086491711686350523393641480093356852459887484034735057203651791706968711696370507075181357385527500062715640441853118539924360368398062430053650306145048395243086034698730667862835007712288372110935954401270312048281501618234071705509352046240046675658489488691554902711876407107685996105910722293266010678890931693843316094218843790343494605851485079419337382294762269848395822829528684641088673482676657732926708896657796091097046973200962903638511409247092859509913249104040835528194582098820501255145909828535273647076499884716152651065839932957426423077776759633080236571151877300088201917444403800181199570850278612513896246772345239768195822776088313300910850635077425667782294992565512287005533956218291165241852066776299357426641556085551344810329768323871505182112457461734867531826031100010156114217491265044169761394880444225648456446517721157303126748765827875562587202179791986120288959440042509645595967767575769334630887095526886403515756861819337402592173833388332067765700957319419503466093678039714413492757802407003914647840740345062040468156330952998514146254180670293444973856925225997841860984456348721203358323614697394329367491650800261063254318198395228460148643300445761247309291976733795661197407529105642662683656630162419349652951695356442205428838005247961982492590807548472400798614240461837351303742853570763947614097725703780132468411679703153408887275707843518692848636884244731791537298269061325477215844741273303198514119671648576521808086075668145300760334411179759932993080501393729056553944786462478250519500820200920012742025342156160691147141947131630551025620157510723911460916438053846440209193778642144537230440490471208804753089103298274250099848343618038641138670779892742548572777244058503905405200499504949695056666616487292960783853630693401209748256016029970206741990877286733591509600682391718693614207053753106167205937462958436294411801998635593960781478299337636596108755688846823345894761943634660849478048161041512112959209867787837430969639277517214367835953637615391231263409668415921280188487008198999546499659072181941228215481737100642256787730392404762078776344714744772769328811361395161692781407222460436171000858839810392790358273260483003714354633016593626348057178752758143900219762375363858527722746246853852249774482109684144528356045136243628573489630123602735053741079031893182109167170764668335107455433651976421493339539689022523625180201563044522363745036354861805279542627565688469626796642533466467886991547716372380859023871984002685824455283812105121777846276886905722760907394061713311694559622404053504529395525323836123928353829462753827315872417248807394799416222026728554239279311396328022694104023718758170959539467070319577590437757447447453844463892438219203630555100039614830863909194680018068030503417733409637230515944493167518822893853426319433149179624940539617384984374438062633071411015715748652415418516223843068058295908123714176888109023350110284428187075957119304756804204564285986614210990204845931318065090080257328705450773192814999924831341143508735765725421211167951890755385068423725796501877247604206434301456337349250293174981964654189509701086213626344623754091704784785650834294763108789438438525616306536062718846150473251162189488245362169488385858382054248876349727102380016386398085263456949314049835222617549033979922879377331245899760719102902470013073015196014629865870407184543365949933863787589262887143191495973999926362198569918354968243652932938407700367435218544497018169358969317549268442530855982144647695541109345672493518387296677545863143625108736872805798005879208226510238935709758890380177882350075219503541442041193504349073250731303421185575392746873958470485359980564493520070978424629300000086560718887527520622723832201127485128479266325917801344151621974214666884941823518247708926844604450160367975169916328481259802285760625953392081854049621511329023353531526465641773522460248697810922965361298152458096067563480910234967159390758908253533841410589438953744498554123580468193867442949030443949134926171949071481259391822891971000248121305517162563429954736483164049619681181164259986869011516068083055948961519105162902594281958288178039357608854239659278943841364260890473712725843260119321349266768804731949121232692625893564831580354657347512577288095231925439378752358749400781786809177660960994423650989971971652036334847664401569921802532920670873201814149157298191853735199900475279933993593473905673754396982084694813838517298372593293051503481344457138061177117683456755060385727654323922343287508413438041513415821483097640693713113901514063945020896954533397527898689244914949275703580613214210782978362750294453054376687645433345322203004735629874352360386153912923391299866210904246755740652727752862671928317034532159192503970201864484465123341174675968297483723685684663376876960178780117823817269010927355701262993442058324361709587208721780661007460934562162985061406499487272358778961291933664891371508416781636626065877832494248987847257196558036711640454381161631839074595776122431863489922199232392075229887211124903594429107681833115264617119117719652246772644752047840634380846591210864416956882919719362385512828413931506250992286175187593297073857242415522698773778486090295723848481748605069348662267065287982656648936141202623249191741329023921790391765559323625447457780709379287746841856609145705297611559538846898250182240055435908184298103076130794967405990602699965405688722497722461771795383024895916411282011803500103727233491821057151485457551320678439342041926592677414778364395599405682498518194251704575487240865639551823188114238445592495983813146128683126039113724911311540866678221804540950757686934347194158074761758964483797310142081075337781127856660724253889713832443005984295090014783534546625889410005631752371761071676230477064134558272869307883318678511001356340765397946378716766964261561386431776663702515378419651152225339292114846442544337691269598616448638342045179530155799177486523042720028092393357615568308900022180782466240542157195490293639647583789561502394053211551606708595107706218330428122089384715687996878228587683939221974306866445306407596800545846932682824072729530991977696677083480415297691665915275522588053707495522486502580095738032904374824217119301996104499071949154691266148624916811838034755643920902951344617428573752352728785479890496244123820253131309719874972973871756858433678733932797239097602342315608888328790527839218519569605925309133610887056011672755728028318093153412056044970344068702602420144049682050503726877195668933287175298991120168701110219453806383542533637131821230725636354119169759994890513398726932573121037662620391032163855823586333223444985398302432416541282661999515281356215030230538007713598988147543173089055694751557886114189510172337283915032588062713985305137717598358070969156617278117426579815520455682430536165284854980493542474143009160262472308890620344218584848970313760330892799400888423416295717625284106485592413747008425086670228960733809664810595734441230496928997190636878374712481467469796383282309194271722940987846539828787434585998212867297997054190708824943704765059061020603707375767520801961433056948651933764092973582952373252764846470493148403745092820733593173367641418110056403251016315763763811777095009081275015761357690572218722661048159991968174576771159134987484241243859918891957563312393642552031531909701111519717295318744625066773973958243505403795491266988050209624991683029365094878491825165788967628673193360204141137412232899326839055749979535018057547011566589331478336123607855350749895374193840296740791029272754073679824250788990259728056667999359100976739879150939343868971681797630049899331481161860612976243752644314634224261422053177561714381858386526268277908498710973526797039699621372738008149132320512625151728442452400934696858318133019515543945982814504994740750282914185001931598132261491611127986050089231397038895509191719967268813024946831732458163442159047985900475444015127667044056951783646547204807310256528141980124740085105460439180791365759706328572401817161708111161992057093832007075338754793401570392470243579226026508527148332290438617737176514771836744480489807771650440411503798529199660210854369177340892882767386644080218794516725226043137761123822385194752488028759445680132842325759596349405764233832756701549689663131440258737136030892231989870352690476128889370334258167415436890935067247904856296818655345739141957590743142546505181074141164023286818228278665464347376007448098223790027163573699089223908615190973528840473279951369569184964471831601384390768364543956005754865442688011748981857319717673637948607061354447822676196372474599490089722279226100960946567483216262434068833967757441103079957546488164500373352731551025170423060184590550085104254090121192656353059476066493949842362814447356974908405386732327711634552937632538410720008617298865007715100042981380834741205488193105505792988378390169114712829137814274655731194541118449928093956091940583737774304932448748489898056317017088641488982003636228461740465316654986614869279480410275711506647907893904092051030899233146697064876455383123504366546023767752094590401021407615971615150073701082913338120767792947753113197392191409368369736484391538836265567321657350857319079270334723218120581831013845111328362905854367844571102508756375179852659691050706576907012556237548409800933111658218297892492948896746586176463706061974016310906748312105172473011230053107164829214275028238651860545757489874954212132164983429611250291166342474973326304131580901552375524141588719239774216724447287997428207686064306507701589989559204571276848853974552373886537689331772600269221641320389627373707642993658369603290638258166348025845406186170879983406178262204790120170131034197758979554518083924883657313969925505639386150057434770054483950647686506143299179744625996426677637009977634932351607433616761505216263855615989579047049242005945901263971253203962550309698219311155748681401020969465893762752887931342826986679520922257184550871558715756100948265408250601552375372718556344251524558420531424521630243200005038293789190118524247399979881011183963463383620429623356159330919178104232748743847001000643895431524674075966820950970904930558866743307234225323986116130781778040448448902758190112413538737189984923955057959811230465700059150268703199992291956844529945843104096993817649093064112131867028630609694688805854907297682275269462549276283997836347541495638417961292463322016198243074702424705932453538120071288968617215821861078474146799197757718993129281555154082658539393881402552606790360192349535863589971637746787042949891706484562806763876026820808170886738093567959246666742504009491988129708402663474537285381399973363029214742178290025094051192153491875271745001757014090762949245163574621990179005063988892235810376646634311581920455495105266551942183837659749930974372347020724079740689829694433125928465573179292135354108081255806447355297041797375291135734163672203259604803436233893274282964234927836354926683062259913269299939450868871029772697450598890545959954822662049182606214157146965508586211665595402142085917309354242381094199703855215580755619225746122555492018203395717855202384134459102208812958915982720216816721660062405399046921701902178944744361255041275269963271647177398271448377901822244283421299991275710708945073650660828261404257731660295999528353041175544570117040490313192949776247765348745489803875502873205751122364042971047393701232748530527712911073136290727412406761664109447846400959499257101930949125468276305177517039726542834678896767622382976697834129895852779725923138869493117961912259434550316668348020634374547376027388029424736947029207086801018669479221099219934861685383483186060428821284132199662596679500307333213488241254386647586446922922576331203266053884206598726543565518153775372180198759533898223264469209395766418704828682286773933441682870320706816374361281632603092997242317000640855100045200039514554509781334868614740458233268412269550310742342494072499965413642204214010961290835922887061961205033591281636978016000427329202417257865032297083700921275416574372283266677014038100646856994624180096107973359018484165865845216587611327379999168341959210261632056957332658430419402245466901270708515364927497537567216302490953731641140617456627682271364092908963665632416982860217740313488358960547466843506506637048563065873616563392696010405403189308411151323204980062683092309582612227856414080412744333168743946191928284384494715772968637942735668732063886218682583942133704991556000907481304814167490249231284854243841179697767313371064581393972186611132974959028222293831458008054343215220495452804094875242015454877136037941419279155192414555181906793795192373778836955316856777804823301711514396698863200472748427631672905665728696634487974928946538794736311001833471958525328593844479013917561139911411761717092105381022831784752589174491087753079804807723105537585889655090973781151026102992752788610997644988201259160476572220436893694893978909788224937028668052207066568405230457123973605332110568091293522607291664620022203508945504118611809075077631656191673554732785028323095539213045860439041792350267538623099926055530517517545273502369721615885316630420581529352357400525144075018979542937987009358975164443645527446070785609521552864812486987757442368379337423109734031690313930195495847226579005773100955559118355754339584476158787155283355932502190875013847330407181457235610424073829749776566237223306683967547080077838658744039279091188329609433143309204554425107452407625684050587915522074110749667237267470125101305238112188657612604199811702306806291304509029557125667340599467734119827961645286684244530220418479589307711346613244280366630020498321377139904159745673179201252528012881674887550424273573054176007767641739806311914313456096474595228282799069287905650240452235176774258232093012079840087607911599611219862506838535391658737916994216880776511442487259398502453717075845304299468302954419904858343243855003992722104932031257596190892693080169635251654586836862570082362243121452129629482880640068585738893818056993989437314311638346628715411639142603011784874379148134458441117168767654034594581223947896069261328595736292653603899412608862515462079426136015635385340330294346758159376431412918525828022486353714315385080705241510846553055971222649082363222001406192143716118387524138259319802693733584439331518582385010652158342641992803832703865486827242628041453285451825807506537753006992187740242868505642576988613477933401561061258590989684042241439409985410340970603830816122922769330469016044143522358335636086177206867981349091402193294424973216832459605022423369708146622226463402021379532837303487413453811537353176519004774419025214696495755314169902561505594953215661228206813742594017424612025500164300342184410872185357706226804678831396726472584203634720599997654466737126344999701260276249450836911300074594213696503465960628755988954162091641903800980744343285334386518430498094234138095323312682738544751768427508855300955603310192721054325535318992384259475452860607868208908473150432699441653138327484853449738879070997102120858045661612067645091184069753413360283372614113500854992869937652255438636608000127728711371873077382181938499502082605371556472558051257497437865935513620027717367813585349086769800633465050447056968192099456335501029683643890820661041753994092816425191000709179555095747402526404070120299232358064837473818575551983666463375100900549734611656920924878516752664203083883892410732805107741629752273996887523033842254482682607851505547691722932832275174512539770285108817399590990031836107858967693434178015912710196175303862893459935999372839365564485409988233575276039653869507164446324786461955070711937557797524452514709370838351511035478824021253211952845203382945303780480267653620669041768684479953773856165158371257568735639274912630164058097685274424274966173299304057037944450149732240861343664193220986806354592606072091425751231391069348298047825797163622123691901665334068250633272100503437855086697578802505482259148295588868400556760573465938755692539624866170475025444789992625160157346056220104103120531826698753696569140348409145977016253701752941518149791944876619307534874479226290090282271257207631317880274295513684372469701231333808546695636850185799341484913733106835739701664795097043585416302407435772399777566212867556375682209355186788677718869785032464965652313110945020796793870294933687421183884024410907201480423127256777359871952032214101731799429376317198006775496175603891810080531011104137713292682489258328412971775738367390423017596054688053849334262571106758761000546669681017180211263849350999704309093082069259754275182640594658016383097063096219484786617637771949846822528538829624459818350180637248764373273571730786652651469626239092128132335436005893549397874979424262266502036323910756361766469657173717830466515406927743007152879456922085151955858114459723671820945309593792721507610927610958731988289542823792307989551912738461288478652719258193699376648649205279667798699197804547390873567539177301577707092643824886269420021864625459030291463651344644784004039305825956898620712698218069587063251437071828563554504894750947558918241219739837484826406087390503694633645751634134762579286251119740687477168215043422929407837448154612817021774218823023377990528350763830918376119547474493074393366411992228537835086567089752223663249226869657993447226293765964579687502708196984367641458920482285827025327767463322103926349736337956100431680255534606699445413171983089828231294722497726107908434023392745851632718429722988595932883230937940170216677666912299783022533086179041697211487709505963391248724835242807478667298965878689095188358066192023737967546462015290232103356916405313436822451474055109571112286434968373834737497028226345833237139813476723607338265754510699671697044371681308857660419373167261024576466836633723515408369830712782297216815433935120703853333757443679689914329634223252250395933532040405785161121427951753138563271531405501488256780409710674214547748582786913839740646116200010462609939473929471846009407119336840024338105685172670120197335186943093401610961965041905183390361492017801293284410311293292801120078512542114067741012397828067102372918585910261259019202777049586425788681362886395235472723925824995034804497369954542580146661262472404273892311529852228233879101175219441634741023149556432711294460571790251540659893610788078545710305613499435592530654945820981862135412536777835393376318798405618830027477155624585902023031089758161757857098255027804330545271811374614736755409456892164049299203016701936018035846541666308751087875818543781365157526499727105339594679696494652415209710757652147125375344665450371126933328004720929331327323767587428577266352311772394220917625220100042081199348783521290436108234556518247301294060602715425083787186753650021370969094403600309711332572038983745022137523256367375914998645912202326011352131186424995062794058224512471938360586358310819113755119399237598852852236076873951003121872169051368824179082446854929012161542678542452432069911461265464855103862581842321701617913557610429638189800717437698966637272175120937615283023649329646935628947407721159375626876103251795782231601540195538782119285613568917510495522439438080111905528550285769631840185643355585880638528576884867331101486180387842971538404201354412476042556484227637542288797942833602095146519897670017363369067963852169012527078241823570148193770580387224894188368614795974244779434231166845204414897879869174449354853631471473034549218732135876691095128921431406757853273412862876501920704209616494042515729038995803831979510416960377331792611147580351335081225175214622892503936636156750363955610109097983005053850827636131130658085904993766371634607994749514878830379171008745356993511687108581917730416932587481757563395153790457027091186430192043047053708288227448850452396298709269411125957540534870620968180880488210459903951013986618916023556404107563032088803120823775448589297035142752724221025422108112861494518439711285432231461938424363913210600127430392742148351828604090233299711652693840324691369802026465646327728590878630633332816393859265480668190016531126720597464526611001374139640121259120265409975122648231081667316498827320677334379917892949240377480137251458170794470575251265252992673910763357936198313854072214526781798499335606734659508060186480922442789974169939397367005181370388281444148604458731801403718730454924764065947506153985221029114838847624172821734730437844722120933619419299109801820111896212779876821416265485983618672886643421779411725230551682792401119578534937044976922388390540504099070299336354633606829250617952308878744666739010919023692474458040918387041758067085923588630137126991241678160573015041171685337008066509352249749952022655613543341932097929412777293768209694366787565782642817011776481081925465593616795536949805595139227474090620145962123034920792322467437165229837887010614754329741639067210537979106632302266778414386413544207667068812232659444040115874372941102656846534815198589870985351905214849490409083693836662032052458240031320095932770467611852321419036321583917376569271902394897713102867766789170587080190937166007404512490279822943019145599238558146753556961018907695652267141707147392878703804885555871865345332881296411809486896958385036257726034554038680337626563766902558210042739116156513357097609006827923840819635414929879126716563884813111978494166673867106325400310474832474408197745338722135480537240436633286865624054018337473640387500959257143150830937002441366019495540815231980729865857537932980071518407927066410857160129580969131004283615606997208819020471218207082743329315371872054615608295153144114421101050709088730841643120876146441608993755983113673413291178585195692665978896380524768982555555008327029682637858507331195020246062167875003453727185702616296274156384055058709398593621387974749998187040618269642576118776284241537276064735806608641323773345498056314739423235641766779314419741067479574652288255797013913613088288083431364049037956548226151996736310881262003398996805169360940276215360696068387425953808784038294114514990342676465622983547223479596679556070475829530408482461243940671942375854256690103711696935715550201467355626640811210896331908218805022226014824745799028363403162074290355095500021562457058623099667088004267082513362273905727545923506908069311225783266623553587901229093538322575018308592564309704739066699481173807268085371091340014751293578768003973883085057877549794357018503193833842307419940539031682883675931684591988676885835313790671972264335398193552809070705846560192790232635314689435655294297424376496148015752038257397812846054967622106816214190520865908918692065291381783553147341902123719434288074927314670284572068386614715631812470516887362295499976618849881386873637137009973142244620622584955416663828873152873561218837322938720696340445652807721045951434852413893451034142209314064163613958020422418190181166696916150749690094966444764766495351522800739817486180604255570139967050715416174964536196607737792468415371624348463442248183870257449680594919152439689887756124418259548275227264006573459510347277641516533905308206735132939223035693244045507005987401778450059787127957111839727577012113501276611097713570270111728915324561237344703050176893627557959016829293983547820718381467883039572077062782010212830096326488046752505013955450243015871252107880594237756036523629429175073342654518693408629598237182967946329685654176907884483481898098679746651636499719417894815619421120529164277536641000668713469984184565013150737238584091806854811858830585690261065110419645622507444384261561470148982309911292568285978887551094613606471425563906520746387628689960700385631949002565160143378366471939451956561993987208493939438250007924168294959800896105271152870271428942499938192106438038328500004068050550328549888014658270139293977857435077880979704954523465237724069343980975442586875917746804425976647723591767952245340036202265016207335910091313043667821589264763372069789083888248381894703244248923418118293178562541989072726606480498579234633083724938263373223110484776454271235283310392747476413824923728386555747354802732014267553001522174483293345554273973828213450733780977301086643083374302175945849476897456396230321638985785789619982274634182143780514210144094017712709892022524951639380817165511278163351948144117029327374959110176598167333694007441050079387189860647362747252426060864290605990138628108718960789378809101952158274107360817823514492240277742956502225778331172166846516569489303252622196907384997811193975198297190565098007396795061405977488218186404960305909009092076371836609530139777426834095688775677079081526929399991696896417742483450956914305260417040986827552913394925694069372307035590102237285858814368217489938940792721155539507306832867233423294337307025138213530471722063871146650665523441537129711435231590194291038774059540038367112637659457695011433293174113725390813700406435888406663068122056179463169689040512605181850987318815377277177375171163342782170767679235040134457494265906745358426974431732985532734532649215149612212654977944054154072694591805472668291202248310576473398571049775355899524266100822935476968275364706878231880085712050009050749076363350435888710030725929459574446216595280618429265001102496405969300365017391830795330216620470240572103143408678642640256151820610849615659540164428205499783965565689497581271135870579546409987814042275517511641000382984902180000076213724861284224403810854786676489816565942106799550404656470009692794939724001074472924041188504357096574119495592883720878445018977064054563637786648770030455969290037597721455593746237212703071812181987239452752556213227744900453609635175280607480356576941374718116607681306007436376595126929961656494335786609053753369921886689575964266878906863364062042078801855604926937318673289821624601093089680655306087978824497968903362369603085088444892629998552856088317034010996432254308888864901838789991191780407905445873838329843280016447824570901160593568830967112213053616258200258965168348431503554440816020698956787844388218241410879335361145444003953796415813863032698594950446398806547290526281500771853559883902126600816212211393630075394945799898481138011610509933847698768704970638852159736713778732762702821369601809509315510400573825763091468717750921384859674236908182664284762918679880444128304988477963814435992537862461177838465518013204383177540700612847211716049971875212461273076230736888145935747056146785176715317215603538322149492199198127744151973961525876168644231257468549886348856626437610852241831530959445435084084117287978931983001408077832291437951635001048742547376321845178071498756004379169044071885210570908708185308072801359412908732631861620672245043869209727098756222835440564407628177766568251093753463017694850819162108967279617597066627689170429772868020667757675874806004492879185512171546388485705720213102610086029096207183586442818085279112635403588828053748615635083506996110271158135692588249399708685014962556197244632174208696713849636708057168633526367683466875602378736236462417915196499549930265659106289436996859633074823999967381262275437508413071484347802585834915480672969617802067693257806173294131491808009816411475198286809746692582993985887351142343002599981573416870581985518447647263660077748903450060214315259115622849855860661748031998679775279314129304296352602878770948056496593514447113136432738994083058128402095692521473665818115177863084112586840612923207564280221887323851239840828453437497481360301785125797957518547893675328651751415484107781280994872371302664653141566951732852973259791637925731541599283725801317763185455154870891997181962550876309072970329519300464718094196780418995862471198267660864986649129664159647783439652721079916824339827087747323556998532845282793801479987879884303499054410623126562848319555595544272968583730949212373084140416311680405885684834657835209224544945354786334599094605999536708106880322410750740511098338113195530207233954432975550115226034610858616840579527147522248385509493853615756096564072071032156324445834282835440088078410118018554572280288159661265054871484623146195615124701740003250289462231848347441982375819892497912092400713305737250667725099570727552990152117508877853244445153735825977500522559097624753674875460187549218579080650259273344986655219859830144202918282777002532012674632784106395984591649842062236037119756087757981259817691957189861283983766406546624282455196511075859930905193440800515323006689786483827072878403717827763923266345439873194802147239211829263681642005091950705394188751740577541383538484085400142730174823390012169454137645583798940253189049592263839967843226797390400805206062355539697668561774486297786733622465330524567389262383960470893459660924636700411693163515761070864867234160439230144085093506477786259600777293579431495757640524960199054017109690190643967662185075382364472422465287497561856409846901641178589770532558172778581941954565286952549565018664893768283594840689880722099412997661272900070069126315756973338662842195643561515387571813646603396062686308427039640195746723630415470723777921729383958949553960579805974278370242646894106000068949481876082501574885558176775451018573563656115711923491386138332679637233182685151631672869162907524859295412765770626009626891309649067969708970589996062745256208517201860412323991663074661170770684383737619975913542471542913644991617486165368090930493490544912945021102688503288584664524351692324123389681952167796114451798206758737366845263581098322849625523610737554107423610259409454157313885741156924194506880297750115763660826158522421873691281713276634620224885458932643427593784518970726739684643756439468405109345590213815902317106815723110463103961996300301524820351615598204143112376031208656112204819146412849753787979457183105242355275184688151343780818896793133633146427598430421264701170454936750756685807083176367055902619137502256963368803449195756958367603288205935009669903060205649601576745011943473006872417267527907335717023881909137096852971746384425556510830150788369797076365336578597272153724882632507377164223813330437286649633532137933841224030758539169929902741533031170981682201693026167822753790548705500722185108199967715433934030188507340973349086580060876236370484493057982192475132389126830345687041444546644390543975634749614053009345571124709984981858894351235184258521687760671402669468918106055237893915667435362786780167923068269539013671220879664162400917613068690661501783488748279512601386536514211001307961542980048752089891687734646890718887165236156329259986599619733264538889226347207325279618590348004007508402628285013595175297498894014502797607489252939108293079201607486153648070857515550701501694370936321153364498953205137085597736661463512896141553308398548874191951877349128279711517594442915775548597833513494427809020767495109195102149186438555732244425815985508759632204631008648364878839492010284286204249871617452910504405160148169511037299644222559886858376559354323306459651963460878698710065783075270818704882214843663611024348121168766961818376760447155615777927985121944645042597285428375796344385676150989700298309074326376057243282050229816726177421106639166952865070666551480608930396289058775892762615048496993033920249488010166315657782725583925338464026752840810734938232060127912780469625821122900133711712473636025554660863877005972009555320939065251401443202057818446127425143705675310348012131281626197838031664378596649336729478793824542736970678730836701205313705041955926352540037975394136347539580986002480157342148622832968702179556514381477654069857009865000367737464520317683927668639871704567822086052954772173305501023721102641362729323937459267541258499284158222446383520135036422664341543624766504081738727386650813804476846587721456214080908141011528818421221474754541552129074940620288286895613294701377193328097511822303239268331406459015572782746961004145687856114410687437725421145438365952503024901387177490543979167311585641594858509616434798331807840864084584317778067650736376886378816504654803857045629865419647003979189061006427952336580167366054279677133898279907307920655535643738248863846042053860844309212954756310433090354892830708082261830566022499586511112135078843152917424915233555323405220107044043192574787592652615397840617204455955696147088323682826199339681281184237529540895137929755062563577310937351849873406434690331989288705076289160709845248569526693401651647953156536944713874168113768544095540670384435906779180902227198296594360777420361864893193486442024849635793373178677152618947067897829868152142586421825556858990277300051450128473737964087820725316415620372260269181146787031259367621593424749306383397557779728921288971308052106454424496094185437748385601472427496633727868654770900087389742832193648727969256078133725216413929807930181499209602929954238525189568112757105950569564372383604948382415733480919121853916685796055558021710618141303270330653744865959900288005908124456050281778151094490627176962931570109326483393303598044138631163976721794793717838072223139733260109825591957274487710946959919794860968472390955402907282075605261315504261717337820056878074316639323453567139518994029311277145196753577362339252197458057514663996211851887871786453662025505479591294821518646865626502332290318164117928804781931524527476271545530431726791893080541967083690430287136784320535269652478183273559525053888134467795806239525209499982309974903064349666537279665008339904311509159084075863320749727263869872674518793876156948360062799029886005303341556445532277015897694052254466060275865813991947184923891245608540421096567603172797799591683610451245535607480510318965074237980222702490467777317351253535887522763619731065946408041837749112840740805550314025001867314238452182091764131299844695007631968917002041070296953230146851492755042803396878118055759285239185862910229517743469761979785180980092220735655033379119953691804179510627113574483714502211276413486524356214776669985635164031949742846722703905177616466770424822447525383567107907545358163929887253318815415335464620042532989061139902900403857707157458255365762083299503504705690477096838525047446439149397845489131262773153902811245617133242199071694212935834225129871533802119074124934119537871130022410007476500512584280174781688730720120348162390379817905463354829357801376391484825220113659464147927814726796319983512843736030652454051101044114049844794991469542967980888924817098377707493638047297229783932778618691061433384221780561721657709956073613198422095552698036354127300353950041025462853455699876125048475437311979897378546964158752572312160200021048175235638858851679833036218915009293302381664620938353036106176196692755080629024475935473871277353549242838150797562038708884024156126984911122467874369083529280891385655834458493704772069962406089056069715396728088265588162223099558029330323718392060221665392953572855024456773223947979875497427362343964779759091942571924436071018764562642323836926008442348656540917871240631156185780817846155790643952044842237927778051915942302573509935457368314816237637927760477855451255735015776372721683679801423629857999535944856522041573251956571863330490977182023383128121030648994535718043025057638441543422431677978723794015268207707258509930684233635704859355966310023357580075082098349171308303874400293028054925226907515648270826097071729232662692021816873621122372309724523968216489312154213216054507901669367366468559315780895601082701961196495059043120797264294533927345023389593051357504017726819382018463118086312262269607265310688594557785782218475458164959946521149353601438334450575780979237960211016840078625225426299413291009768420876111787770677869845759128610631091042761042594090493318848546895558450092951491270868422322310102605346520643647502842887630773272130438186127398355537395233906735908483991559234905296715036372274408856093478847842093458360605344135389907879345770984614747618465097718387407607764760429621663316183513051362000220691348618727745504550211870103361447611566749156646603225924834522705535301359044440423768224891972476161033270960599780527065921190386687226097226366142797986673123758272028604884228564179773666804425981681378179152274478990472410086707286599015833286788659268691281351961523122655416096093768703334493742790172488093711423722087400125613316486952699195569692299451917744074610384528200288612663422102785091751642744362706616719156475530373225265040510403805647076404850326118549797011200652940213580920460078276301453659311685886829994973821718684911060938201556332349163949030137573779984941521228979920275722758011453204838423134682633340708971702314498024401250632400621473718199874908504580908930904168387034079961815987280524721629320879814115855521604527767018869098766147017144701176362536035790097923556491196948831792479117022321343776737317930023963593006413751132893918749524442603108110912926895802304055570919440943444139839584770737563295573361726805449552063278935062129073837786612576980530736576764799358420429485822894933349425376539185105870605433440874266868977898789056692777466679662961338627690998979576069407936134436351171876016086534014701123135013852096207083233551548649152787172244520334795622828880438237226279759240246021789753804771504770085102435839852324991630138909199583675780126025619715099486073732130421121053497139765630509012845570932867134062505605110820817263152879293128879087348381017489622025499731908588936153482202804105017201657039792485485027642300216439707911617533013617983336187530755481459897770119327315426061116042647594061173015477371683526354962226640251108691698019273825431459040857121571059001733352388212721093964909859196092100707855780274193984124277381766828971178746696128491561512422586552575605475534698312565867815514332455743860458742357265347547035212483553702843748096277015745161743005692284804561355187373780888267625346020499897230015641573655898111654682006092497177708839924391572171713053055656255295321870314615954796268766836647959799566731970527117698760262988905845554149513878284964345087690724714705163814842240957204670531765277384550102211906228821431953157997432466723006940211147382970585283594506391226209176659603673928551109495640038738790039645053025063156856739765096694623031654643831909282100923908543035198655633192308539358098353108714534947615171676112143370067435707090248258642639024486374512046797678838425229401907112933362938904424006490232925040891311626467856711729306589738479754165062089368962733553134664754701981845086541307489301584752268113141929340028227562715817248817377115014533309604966300967699715339354776573337262429681705356783380128169407739785037086422923108537799127022801854291329784667324274371729344662075906179751861149667429912088443084847002582880369385051527472874398600473454574894430529420892451895776125844674452309217456923311025425185371879930766785103419552607585648083045416060152595724192861711765114674567094803465667912077041657331789861692980585172618570791604839080803644666192088903691162908904659746773354067311964402393183429859650266783495443599484339855436586694440771312970888553639103408906405834479957098685575655780515381678795257771076815064938914847725264010342646899886654964598332707824100157396703856493047134554985433114614839929782022456488671399682263808838001193785358377397090400748548508024251417388596634869271616841385231284062252496170596741000670029135279421242877108961533200143052493216890436004055637325877832452681707709470830489089840466767214344475100472689652610400086101614591496180487424869512183083841349517349194433391346010640175318452938889098129574671571995826430768269662334690599869845073301228580138937340325177831950472480822622058312305472127351077232738097082988072649639430160634348458161106018387144187614651329818401686937803728887153926164841941517705476837955175473644626023978892826339242382288139829734338718645276238982222801251727750740585932646222664593086919467614759262525696064634564471432278201201965878113348441070865350559983975313927244080288745118916579640718759071724160896819655559753349431200097240152751645994010712877850449867222456552513661210860963016408152600968037862581242851463731187902992534884102635872395649192416610852697162439336433562680068450412775370215341761710775898182044477113298448930663980908299959181899076875144472029554807488988807709410236774185612567612689671874493048215406271682198824436492248301184698435611953766376945089888897513559115922825188908805470742588877996494166084339239901730231071453121236562673575206529578271401319239163301643123811295641105699232151643019151660810759604875422584576874972993974039244226962853917656145793284092005891890426652523299928346676175589048748160105453334753999273046979983975935590276223901232400187932858935637846856159397226927919439409748035495555696432844609267464345656816214519433980418808729928153233788183551068530660662191646578528414862402885540422780473214267308780961673287200814073860863909350373248755252398138043069221142322960564242652556213705040805156495840226971178728299900653424931075944661364323472417734316232668883396717833069947643345271929061204144956670577312056348099955025997386189391261797495083385150427011334594501746411721756334388048401245216069859580413961608975911950222043985880291681633771219709380210320639690383976246126042336114092533671290521296991300342846347104810877132722506026985743643268938549415269989450241946808027823748055588823524935267800201544983994337085232288382246015774916133631948832748899990865077090594528941676199489142905957681974349786809617818324187474080209288739811788717677852685035240454377138477152717968188297393588134100054687264713757792443044465784925136466229898346042080552125747993991613631782101730508092862027978942155210120204053709566583935882972816886212484150510948376619960523453342839600698011569245590102000681765224486420169446990969497137293255013537471561756963535094014661251549816922183588506434544130770628514749673651615668955080677833106993347067741536785351954343791205034133263327722742715684657422780083360303270201753423074285003022021091729570536103598832432050523382970079358870845543209334619574689301407082566660606631027508261552285345857321802572486808681684448919054196502512675065096378526830261351624444505859865727898656282652883093425443186814898418692175780382098468224373738595125708481870473867701103098241787842822600274816894037623814331898985309345781111405139504095736043971605441020378173049188599581196836598329771462350292103673360260573765306786299173927177204741759004159080836979314932490159491255727065534624018665308393431990908805236058159044327323713335998193884357669170115830335952105386102973284178554723969420134821890767177987673987319093197200786387934744805997541271247765627136728971911326793007932259035344907410362142481813257771976832379793358864393148654750359560717628189151920970432461040539191191205615361852392300018213882067455915192065539357502002837273594050340331048233787883540354583850287593663014100388116701318326492371848525354320258764018624106553983846392256603342160070305449828016317452290827367675940946535893025569563577942994326140871333271835865081901200840978888777395041414535769107661869742235391056308588915853009772377761046038797938080190591037810170838143287242096460670520930493027298811026639205315886938290267036796040090730304732709426586040768365836594397061641874340455617138645886691267638943853184157413649399321596966565299253636236345051068644083659296632659888256330962152548569565071543805670152382120188019687788159564906940611292172421124892623170925905083875856412881803728597061891091927732367258618740491537068827117220061130865517522596889189610647104352936149573272374231058647696777535079199859973853373150771229138339606854445543850351990746726968568258054117028648689586500497194230618509218381131017330732614303619882147059278872182070580648369456721006157467483883506870327587733544341879150446039924935366442903725873011912987017938484061247356193943459931149363353616967771055251441596533281935385852134096421560902614465327844838135078429769599128539926902658120187056583225684064068762713995993031869145516539935207386686851182687039800337490667652587200731097927786945648085096878057336262180992011874538442537909802135786130594880467727294222314726050494358445180157822172035921652703143017798544655398562563240873591656131342710129217353725276879588118417343817947295112499819057459257323609525772004203171236558238157473245120658602975036543321246866273685762990707156197115541886516160167944619518042251895314714075581350357889433964817307924434893727807491966343406743472364864665039438882320860774146717779147849070682497652376589691005793597990677279494431330536432176972190948084252360278832338575742617058208760490770670393589598011580542087111059561956482050763665746402270566650003069933234033331641624107452776314144503782182888030015922198815659566088178550430058117772144097677217887857487714981674749056597351971673238666758391185932826113161814382273988002074167918532504922757267701745556731933722997149263167367996181703059021977680049480489907438340145881093601155172992542532627357720873075843578686047197283439321475576660251382335729158250481623281357398754950045131929213308956813960118027398462406294041742108470634210406031268142814575852977526741879383583834150886796454489343608320024779818595459082090073448083983009238335796977718307829836549443824347359723405844884763245900134939622711159533740828518570939227981667220201327968758710299795416945528226950076712416463887166222601716532809970402710857740841500314087624788530976398096067375516866080711635174639505104569570168844645979538546097663446837062366296288698651173575050457770741765214780871762633021281672452196123403285139948325979684824426302973702611282720717234188190455196774755609179403530280751435509813746641641341684644638041627135229479642162641592628575687631070934157737496544781223753328681994789629608337485197841495581508611134651150335792265798671187249455804669934495911620404100189403503746419766562708701750257730509878436275534971102353961062991230267004930583558699256382218779739590091850638779968586718040285691955403109508251350274424213465011379865055389292141939606017724996860366928972085674858957936017952493565912520917103125356799880418828800775571667164292774203919314588426229372310781061797601405827778061778359446991837225145908490470599054183597889432990989595365592951427389015510076937928375645424775886294047099946985372279348919839192887542753262718140695816335973383054089851325416575429860761930949325001463584886793026864499240620928371724563869958143611276624668364077204575471511938739502362636483562592545191572679019108264557182264810739233403743491415153668310454606571047475395414783005471333605407245473953455560724815488485622975720505491168832368298831024834056677461069098766457649730454071952051647896007295271276517245917661559715417969978646337650633409952602150369586280491361830217523265239334267615783354993943871744781294773621838998952127286790523269883930950835783825689962315600893429197529340253139640553445809074020128199112734617542554929503227492418630139145975668914841648698899447679153350309389986446367362388117335763650591123194410759010054531780904610120643221400965761493456744623073029813765168523507256496624841613728470398409153782559761967627509896626749113367534481139651356953776142089849007948699647656155040963123013615095391870183682634210835987604619721572730614386942997938707886667552052616109385838537627944780584585700625992259244218787893871754194553747362365667238302751551302476385711741480609507752157272236885965390881942393498427211490484651178991712159694649297333455338489501789704248602738889372112127333334148847151276594346173417445008210551945852550587709086608656895761007414684807245998557561735298859890493440917030409417588545416356383454965719803616801977616170353605665783899919279969341877750848374526066377978460104373313068712139574352385158991575580006916812501729389894666171722185709115078478519622085667827868239647262572614863478362654999684767539690175269914798670570039503686163321143200558147043763587949083919690202954541517031261878775523675151987574876887878290729487608655047193290939856224067413515402865252565761551349835187845669358831845205084640703566896425068539618233489557565419777425373030170539330068973208118920609609986751589738157165781059550337800860738004051727781431330050342871460363727501923365565145568287316612064964099961248757133505172295841425888154257002568896809490313391209927758547461557063065580472957228810229914732107605898411613574683444032325386075641258037029864531161324345096598497190332362563907868224750184914232475886443401024296204664635884389424537200523081483964576497172352098898524819758391395423625040667292818780947694972563298438302121108077283274032747275906680176161087000804591543867121871685005778024249923534110202899879815699053124518904818932729974675790211226921952802072129187546172859391949303604834056647291252125706806542407284776994842624076414089909668712801141361186349606758854248607062227595198368346020328472659377702195301577223105808971807579234262707790552512030161484968615335581250902343181921896460319276268179441684068264354786651656205226294930252308824547119610162667613429352082971184112255696607484164905329452283655527413671589773282731041183996431148211970524600169234750312980384360811474624039153754575598363258159016050021290416740420182193628657703746143692956605566941671893823033992098189542975554013733292120126624234591134055237611021300245796114111617248848751371632175142245460055059178582967530453485300422695742030211336135999843950448263406014469753064349423994258750002772338077139824640246888570225755804248858954996584079247227938026504065895449730041490611553442805130367583788195944942333351139751350946455811512823995655196811092865153955158391732796506746095206075838225710145371966835515254163809876235154990727785509604530133584897552558935104951171689978469649635624483188150611863943110229789514030705488833957035849701947624319073638960107916218913732099941425478273454754638700394969091621946861498354833331371315232289904070220369231265634848964702007719819489431351496735655911026317313132244034848010663201456949039186194709282989246524336788196395283642346131987678602152054838423623377261050059542102213599353268442532783796103967785302757594313705483792078648546408370567648276976990990259728964261246808655631659125609420706486749325246353134823800079170107620677190104830940234466247760882330184716674980600015416281453033983148891420208181109629934083290928424582250198090284466933082646985443962231975093877929645566507068406050473549456132681979479591766963757999602779318612753965098342862009687063641059044826615451193737987073837921644248958367036575412003596964416999102465185630041455111768868288672438976454586025901269893820872755156346023066429819232540031577870351125992828618125788086299784983353271476633174752847045756063063899825967533538512499692450119704762637879411328724994810735416554439621153980428217217992695929346590690554767531519180555156792105334459698359042931002659325998956110857149784409192927813748009041726895719875887073925661183297267242464355750721002908894328440982366914206609902406350450712648086284901455149147036572897607566916946015006143007786328145108497968024413581022857503198024576121760371269235058385887294130017192124169621895952039875256061919924667145647262472403723852287761313001397790943371743204967668366890775248213394362814356220994846825748919311984165111215916175943575553991470655246956029689515557931327587241014416161878317722476011789535104191133613241618073506740917207134485985699851914188136398527545132263974001368359206703172383431940471082676218406954034808501595205221663600247593370025422717329462553463234637324891889203206996321264813830410609653941517345247011717838262474588027226291729906023575893235562649779410736364286561044712254779003893999948169754915974519682511799244887006587820647041536131068098833675007596101196327172433437582009195460035676430661170335553890345571339644991685110088878501577381287757292364587704304719597758291051812433995236657394620835864174655956263309882256846143919032267796561187344729843563234689877123905285988808700221438950839389359429372718587497683023618066540750564447773700177477607396142726540281631989369584040226507039115269100489486389316157550872069078158895824663592545531339564339306690927059209791008508873598010665957798654143595385455533168492880205475721047796294080701099934894399237232282032741863155717915425689236742374494727745589356063226251602683810675193966992874057642559308147840820991010931043030571035838266610887398351834328937846166859135674618251298841821679754264531276872664037068405384814616414835237322595093802870387501936793624709485737103124719931712281346585529811973345538450210249984836914652345788719574795985878399942616416846092616279034734330910656092838823447426551758641377609169715640748214228892725506496987958569545829490644839758649471281028582785972793064263727726341011147635471788492026831669031891771245291065987706156966814456413481648733602544563503674671088092831882226493469353206569063124912529662823768721860009565956528751897897359819342258912422207052425162936287129084357679935311375086598612556246604171837720758553103773326575053309348656910077659276373314024120510019606559642964632865698695838949634660049246376086873593214584670819510376543439825110488400936052222483142441939294915672826792640355946841002995872816624583585423157951849581875750163954762369717007774175102516185501093098485522453700164631521160279962517947331345134392587477787773449078213452705319883693588615402308866016171319526600559650499054343496517396653423713501328579153493176430044224111711475764880168801103520187835487362238106605173219545362647307078814003022269741646488371558389066155632750533817165548108047747832217362632401656024038704656103297033622231948771678990689736428265857907943685231588763135020385934776626849186841129019230659965493205257639833540614492822453709121770827201887017828693768057451671273545107907844296679861375038778335480446897518522997040773729498713151029008643045983384427181932416122700617246844419931405667844613347118830807924659768852761549596541649491158259822806558031477487133836719251388585711157084387742693504603665955304149270296418489164898934806927895556627169616445254306496707009521469518701662670208442141126343153553523966418189282948109734010931870815646037679162785574341922454270561349361151903230767349351102247622758519696863750092121741107360823780192057158106254847549043170278623064941248497423014803376656306859129269135681255166699363301310341958887929338413747516045752271915850631935172884166393153472403946246391528956569589275682639640971307003183494810275727171564338069027024496962601403703902885713111888445267440892367554787040041384991747983230102933275844383198853678678275015220715079620681931573048531313894806936136099660724282644810446633976565845724120988206962775593775625469578736576259826731371361815032826045986260323772121236859252310798009696250158889007265586458780633856634223793609948723881424901619136964518560024345590553764789414603694963471826612112754637234209381066522634753955687948062675877889276429556788633881200213586863338665787347419308052945805148961583788694973167711813732556079261710655802443485474932157814601430261633154767921377370837363670286647768150286961709752839893848470537141006744291901197986140032173695516965421658662348604729845683990488614336659149976406841937196265776202214794676922560669808772951876693552261934205034467551588189903186841343415083421544388321512510271990460691778725138379315671311984981224798990986011364153778870502736387857175566622227171973409880561599594254279116904775334484876722341404311090330807199895693971188855640904014499470265775296489756861999990551000193903419312809104928111842008617196594453226403408028211547730274281047613510705800598196876060380905488008271454103542533182087778582169659486888580462024035171345805130118754549539323717089123007057630259286228325428796005445253860640421857568150584086765634517569538774483220998750067133811374875519909089176345801820673099736813345878573776538262168773856325621886104290553535498105185796339685902989198752282835505531192692303480678023297904482506233886188888596753278251132661960923629532279812980938947187979508725939310377666804178510542340812730045238709308467352257072058044109772131554203909494152284434852763414248262752543527011989239776850717411910647136684622752951637000102590702266646050331732012276521055664070890454566452526805273070094373371849190289244468481388738283220970323744841989586475345458449438077552420264347638424966113116907140478641299346105510887271819956168642844412734071970216506393424134509730627572377982604900105309187161589082901022155074804947711430832110891021187522769932657399773465401735171775335014423315921514001755630751784540186048731394252786594771139100994418197834727885595408329532265606912179482012972111369700950215182642706714605852310719025850385631061840265916804356928744572345375140730742044035521562612561008571215709542934730890454381644978070015813943199824223308578161691530806742776826415591422945470566667648820121753879969538250636176068707915420459368309205719851216095731890599697810634365947077463138335874398474276483801280948995866295693618594732509409464836969336985891760994108970094553369025303988190663160849676219282444891127947552752205438123382184336328972344245020369729027804412039569541844326260576648923839563908610508209244058262737620087475255958237017301902966792882598759753308090159063977308364064234593650895585099606539383427008770769497621324720144997399825001920448044166611294577864463490634956499062377175134738862040712748263757327474472141983555767109488791603412860407623206394606111845123372187507223571158933509483350173160917424957284374114167083862749187487671624760340148036233055905172462574398171582954831806682578344472902762766990094844638861711612540946335429629471446057485702480186642230415306141505666274250861923855924095656558062662962794818639429712807366950108602947728493066015483373122340706391621133961921383653661795866955699165733947857083648651351368075375055005305462064230901418615422874816557713962181437282038278230185584806520666825867595644467124322737898176110543496787991855839823569637169381271646141391948264924795846752911541910961959427519048430000568265524398113788459834449769135049065505558494181372278865649222975917175048246525726261686273251639734105580024040365127621686560167407959483434712077626353201633753916425447255984452696087945269629218425440677892250492077091389871677130272446380282674516520790986090603270781052376387163172553104225554688800164307416352824224122085361523464375373796700761622813543512170306599238969041782407785257891188215516634682428665955979443782695246680203277342594214330103212722900583445698139814231547445447087495217269956553006371185466128379252063498907442055147958339972249079884828724588819709305331058963946411741844571369210525227102037578163052375442669778891017993921786664292076341174039205089835139351781682017643008670302790011068135507546417721845559437398931533301766605667965286098455827992258354637004328108961754379195235194780368414381823696443072339470398187598783698338306891184253649991333971278941708998664207979354612227893670381000768496009285029609013408502517779430507237685770794602890979463438985534095070366887069295646740772256214497142337672986014063906469616896830115304644046935767638440058744969336790718308593536474256549196544304681115068544083554068245273565320881723681430116985881090520486749368241133518952036394261134106627163347995412647874244137794016167491780064038444774429619938063469942248135337152003523813943757269419936236291176587789011014417876159238759659322573216029159179548722040932042493709405499600111080590465270691093032365567419984857336593037088526785850528057918744258485283072972912389125091579482182187722150061879100930730009285665981769960740905834473878186467661890138991597048946529485138158740784068154882163941702080797348724322430135445973639631255563663241662909723486622459709792697019402215427494241175888026801868299829281144061446286183403713179559186070939774899802923479777715328385199782319068241700807145323170796715504092219610556349014677759156516309555641337247640446361353516194578060187798964920636750635122015662410919948442243259784541609121097463374746457783234739923616737768421580855065346187791793221214503460859710163959054562536267208459466131654307159666172574659084256922979007818071423498537870228675351425485918516073990257378324025213358282750361976183397159905994775675664768093258261505189971865277801389435234444530438836263900597139005366941626645291119405811934427022640142847335622835773348866080361936228778339945169826275054485821149099596852566412260372630678999940884064897674952800462729820343287195279153951376961321714556170048386546763150409372543859462594446985005900637166220377062376513316143503633248804618713550629590057433645235499990746558743201707396092590808110329562189259018136619946090522927950907987906519134132364216107382581132104931601658085283862679511798695443840248024556636813791709280441239366544823170086387920171400543612452416359214389950168033190992839183057758737622372449741603279918763627510015344421172384974542483203763502892015877421909178598247522024211845904672548629825260343835970563086214786100944151951980188193904996490450280691180325105551125237004824362653743879946569091081913287527619417725032437740670351109258376539649259915455516693248983838257353433901516541590682922215783831992377543003831400495071039644882965739009407220757322085332971981828427206007353867019067376290710702201080905420471627727234824712243095737454907989709258279775489596454481215960456127870160154799681861025897122577842318065851567390645194448206797288048950225256461762105289313626787168689671584072738355837284505928271673647417846524247152640527011843807327101070413564091864343983300703017589984994429432568453165649448598521211820994495897639538725749730779632939275456077054949269334301745258399461947616078263554722136660187755208425949574644595243650438760732201619245852174569572994601917436400495864904224520864266457183730530428783938296631535892240161520962915317145915481192574622306556238463419589918534000092290496105677880703493857193576094257700129760097384666163177361264701384941985099460116488795104390865426564292846708272612924475828884802271039890383364537033567574864096671775019290865936312921882577262574209460192209181973887566212534404783992169107679609926932542592124300376636162086725152824714165832768876481865036101471318235692253091519441787587848281031890023089237654997731879303662464678060324243945088009799623282187065162313735774837203093646101152759758122533215112526408742277252716270441931271942452207035059313304737912607834128798577400520819496985514943951248871958045857054221771664717953033445461680528086419297258314029435796572659637529651949093384889302513046156361790745928606925860843223451025951514786764786230391474152587201436614532643432072192961658094683957492708697657017458205335282117199478523211230840773280968698487448946179200727820563803571369353945320027339889841119545038522135540096321711779397785217356933604944284973427795295433235408354491662034528922630296269016317515010049009465959664560352900130253664107877067596887764790638571484068132302170281774554969149566883192444408012888462226105214137236318485367068844123428108017466741233941888191800326531019177679860910945094339145145621971933939142185042738027611691698203092552107511320944492430143934355386098709673574451024918447003460577912798632564881323154922726214181994356235244747132713145406363904579837852682134026063120980607787255847845600096129699673699001497040780854070031884344435316938933131253370751126993846624860085776129375448107730884664560981751100835490638585653898395842736887412498148166576942689534597515823658941895780855737587592720903459162823635552994314367986076945794202022086506130082078506679452009849162084691798867975913765114670792254280113243964537757247560653800516697039857738758318399536298837259546309237669033189939681241761395789943175143007625262888770595921948716165362675724049654868594570776461215005771930718835123687370176605581812725512571384004403617453565209091758021001137689949670448117574655001094477762765801731568361202088717730147370600189816763789546713420301803246454321161714853429316621952063232518367486902586032435500372001474505936736155455909326222534953237223465568601190601951586372479416376141603157415407577445586930768402455128261605144311027626021953250590741576979564058093843972212562853851188309078442193194987764628649524324486752048216274530410758267440640138740869493284405602083725375700583376562504938899963381452876198232344649614741070323470209910838861478647249064913142581260437338484178020242606890333721289559070690121291980175529633407169777972866885993003571370805652011731311788791225473635706230720439177118910531786275213667180630283941941491883252523247410845468617261608142915219219332198319403058596879183015172612939041748906175873783930428065015439013668991976766303891174314358364625421943835446637618617085764362627339516518623948411158623785428760182384998831031607358235148493999948368104900184000678062076758481085867301065029661352374310582568328753184667781468789132850339255036532517081276612085498391616527643820002389806506195066554896868575520116295048634463574461880907503964058590505224195456120411817074372221929479634259119478640150683127704653093475917099413887664616475269151692234463031888668221117243643820236025746811119925308334510664497690060684893219299043462863900452799389538910963747994185571086927845943676064729656643479642538197853941791356519330216378009286739664156957027142281026334769441046854926166780318916277317067997107464936721895559260203894451615573056623653438826150444976635458116086130700090046631604433194136684232995556559791353919173988034967038840023929670324322085473176152186403518624019513618011206556213087861349676708491545904580868115599381940955554343035949843744792342170238666630998323558018026674025459829255084898499782662024199995366125369541625796461521331749557039154403164605250686849534760415558941018236826385613985403409516582628606864406848313911011980748688606190588171611773747849407930105214650264712975108606273502722732520595739349210125668084342408560694097586213175004195859984605185369539139392297945972692298433411257077572849460938161342355070934505546685441482077990072875216801395128542015149769040302451829794140337803559647957559549488918075166355309528872605883350979868930797256918581166860113202949454260463602366901658848535357385284986662462081351070932901040911546682493112860420793760168805357129224291776839715946925950066471272364564832563444761691730749835586665140182696149569470401340784591003142403819842816970963400732426681551076637694433691078444413676423817688146958978673070483695797051578052296809710632407045889798745851546884295024075934231194214476685839741092830257228347932106642762476605965472135183969079097310120237401998693210399575981960539704803932271064821846211885722172429010518631273415504571900709409528554411919953870883805082071365233892918243078630785673796818671120367924962646561321518522131682284058070090729477230316449921016968479173066202431015027451600765037187815188848227807906754871913262375735668007336005339685520242283874185252403115094674657056198212109918978937122152009301032407115870372886364409852907278475067927956935623104270596679892989080731202371042836988388546553083222470872670366846884511586323255116087693033630767355891593092065510862651730135645246217767432509813868775220102502103332448219325956629882491969034052953679164342605936068946862124644581713172551425697645932482217296321014463714050737095809617225181777267770533550360707844097350889640679609584137903069831285447580896726758177794059112937100354620084792410996409358503494231723620245491345278506884011364197235521184488509074208564251926220475469178259063037978854297244581304395869509527834196182872602341075880153969412962521513274591215398518125158394028553051058514985973135072660781654195107838338326256278433232238673414375945589387739129114610405362924850806316836384254987036072869283703732152448763568026664831885713408310753113999006614360893661876066561479954714211589877429240190660582290424401140461651338491617370300683580407540634063287204000738880719244416683465932058244011901400849724601381680250180061001049850550604098881111756581614622898136241937506004163955744438812137559241253091180571569543143366417711582281317743435816104892036114120984744886095061106511818297330775560543158014729941080983911656319271298731115142849139395684178645644619906547422588956158666160223753570480565199268349650453939402850091864685704930319421658440795709577838557843101075486328672680369879256021826385562430504838660288234736784111641882519133792298774615444087987758777427086475138616753752484387965416552157689741218182537286053831399758487705274042021914489501500547621200079650651257886704524067932764439702774749829291362594557727131717287137849489673280288469455857276138140235697592564984102700878512220162494589763951789626639229039248197078993041660281175422557963968506833143701704182679045001591441457859398671900020818133076282997114281681010704544570912543567218726934528265214647624151721504010906548777280277794750268057381280771231248636355665295060379949288602217738952238689580251546249463354611716569150479808016973318408479113538852818747784572987514032797854701201265805724927775993443372158371065078048445643763778639841609568139612128072313627054984617602410848941495961954132173406440050144517157575554306182912215684458224803752026021672103104216026824087391708058820030714729212557504574450684751705058517963002765812206765382831429261602782003371657385819824838123072582279649853690061788661154274255008076634257011264183371222180461097911928601913511832612473935892985370196371979976653111448802903013985716366326176518834674955524147018031778131628724417061254044575355140871442070444329889133280185795023020051326310187567413560973360827182459926797063325326767711143934576371763160292398253603503819793556219440719482802269788219402342199997256618398372834229774133062267470749918279994128356392254695091909908520534993324008175278389424774721838351950645200719125744324436952101298922112617606525734059604313284424826838520021617481514587225211287248709831268133220934305890911569539970549080722704161039820989307376886211666796829736059218741711441066469736775909001181338709647875112455712755673045541220009810041236742631489082348984442355026460533413801144827878206604043994386338305977409647944854476915768930149693579822205963458201068089976019537936329717959797963338645095271654656119894949953283036666800886462645464141263602364881250743421243738872492498340442548381782802296127228471741068220524094927414000177685403860205505302567250548223180263687145834252355995204317895053835551700882229987386210713502505263866618141599322537029981557141429558139657849833509437358500016363518636947018303954654330266140133551770571104589151520714384660588997598659242720842719604979996947509550650084504266551386877268571675897100219096289094160685666345927780074316816156758088443259492699513641126028293233768209146512723426906265147457774947060807072838430521491227292613534712014280809102349895111555046181602483864054765585888090740387270706758056411256809253734842786275640369235606215318720855820813678665171533923271490036070536537534914455680876660029300198634985942063421781306151644617180516337642544853077907379447611462169741021460769985986696722455737977772523087847217920153620100613845522395718336110225136935863077606250288042275073862387666019168084784530817369987518975769017557739723932046653207493336710133052111186393191212875450752744513072058835740292285918811919512540556566396806881322846542987959613036464940438711902748832985021771663661654585394632633524480761325183769620500510282822102387448926659512310822814690655459902281290005289578805786847829288564495059835860523468682661097913803472538050130360004918592272437307248744845210699633834196950192495409987836627350788464508634038817075911675586718982525172129481290871016057463346334214555452424987219723342450604106422571889753153687452931998826383109380798183266707296051112186795425229361337426723824488715086783989564304706170501461942373224949038698815173706579014932784961990146534719216731669922737050970975835649305360803070000125606839603070426945960832057163932068442613078057286096759082887015344754167289527003942274373796953607365845807449123451976605865521006231519626838759513007176891527097953370156957168029663154142506671205418785572573330254426792412264459593125392240565398568849450380107086871889410371459727138291809515585983125196112684405664182181034328877473541184914650018029237051221570617964137492581925274652012069956602039572072587195342106559997503412305762783060919560174098889169959496102500476920867040630431710908128048705723561429894529803944717015677484226804245897901573075344065045357865271358751408687963327399271074370862075089512277111169866834195603645524646733374348885799657496127321547403557370642996808805780020950432738285432362659475770380641599818161728223602000061492741755731894616682798241117324607528851537626945302753920759335478856155040476972584000329402646742112085529891440974052868021027888547346373761944111953037710499689373344135346382509354353644394878389713770718620086976715878100242803314261112734471112112538339087365517468551117134895583098401429132418522783598246809005218094823656350627746042882118735118695616656864778332278812125980090643823528602293853137300344344647790249961398413773478136230343207741221575873346160394776249883986977428104572134724878002481894998496211387885247240170697788682128938811003264124300935422162472623071864006027781827910628249824814134842169647853265263717474241133112936327646139222771275420462537689647647381025952648331501754159727120722784003994488499291673820303945055397883910949740979587577544167356596464493703573231780329340348374892006313177512469287464385040269455185330467734910171737928048650373024684459839106236766158872598432465609555607766697746918965789181813347619438963997138979172813284379488174419842753223297618872666800010237188048389167115765222433354236434753693905341614697062934155745191693288254646276116472894543315570209138574773177996994998374813889175713343832117845605882641284177038830627853587970952467595887108378360419943231189244773076677261900837491264561489742672429501994826644556738330573352676070786031688591862075185198004306977616103873991975933494091001367417026808570334081558246018636068154207466571175555725238904931563628613854087058728005456657894197532066481808437956055226785427881164538630961288750589923642342172242508900401403920683098358827796175038257620543050299051076955178710144866649130003945770614760350356596609627367905961140423025281922081886853583520721027597556621547236293657440452613116121801521096633458017809798533978226093442061322736445008847332571108203919152659449761014142080621954055355663656569266237470330043347510017605937061464320285316498901531464881181170621290755607168011552234694022474544133443309241307438521016234756044677852543550828772728828253997560865808421452375725131120273465279801325081094314210040116269270437351755693041481952753772312029152674274607471273040344035582239996431492144469823756558608403806970922155797294999164222601349747384656304368193464106310380406258343192641901321883334430377101252862389387616362484369549656310780148816507635328533377343652732733278797312055393878909594323456835983888465597507342609773779478383531762052632729312481751679166613714476481621392656955564398154261471540015170149085449654357045948515837248652121104175964542290531034217409421466369460852033379295730219990387621323470923629686159592278202104111112604467311795957641145849672735312442082585999964936447043769983620621278852367765956001404937493674699311170447128099996303341446480245085223426383315779908794921256979398161683844995907074876001127546877138190562022402162894290403905026480958511790579315914613931997128524653907952496067239147784926025096319764489798996583269428583215949923968825191673787771741198389817422926522450300936479096827967334160434941474224620765718866071516394754189826179467018399610921353977735188618106204502262488377676074043979444794762037651020847806169594861866522926745409491032566421963254073270287798073150305999388591679458755745163057401932766639848304323715370549180931583636845855888554675170747594574981596548088167607463133303888713739837825043549616410867974071336249170475977180022738048283891703837102234025484921421463611610832347009021946872914114697572361958597841892464985390537834364978973551926321964998000256435022304135405188304472142677656240430768221873782732778966836500990910501826600385547552517874651701198172767496680440030774845610771016992157493245900469585792892933450278884653210268605375137088109467402215183691792644132687839087872179943489354301416395585765419727776914051356024340208693981600806084682088670736720074786688396360473587214237872027679353867748036935476349983767052148996174378954281070562094492412259543513198242346257794540335073990002859491981862247784027287608451218468430062562591176240790025241642450745186104423962883317422307056631871945312854741286576796594713135955063733967164932580653486964918644460320099263318350995740099235387642755390204807139389744473615678309290723416612296508429653422028817637528195290018877015760848515079802893778397938132399273513186318645057481695159436506131097069262126262988738051979334634074067438308033784859663934186279760101424346018708490722468312070373793948722721427170405855241069638216602631831948125299963501431870814706701287436940847162830161906957742275425961262596248318096903758724331593373324168546480074162138585979818169140870231651435130545778887012324751482732108304169205287544053823842034643726542595480838016914885425594378816181688713828884742117943452019104979416387760056459224848923832882218936501240225855418111673072422516087995993079059623997348722212129848505511140705785537851090332870230973907093727250242656711262974805852639659519642402257197282812541668142206068538841839394154762560882920901479787557821562465066994774686322494700663782124432535665818690193934796523175488939296365250576551197483759065928981253803397436726986906331042920935483931109341641854337802133066327231585985530682873262371868257840099215942825429041762326850617176309834432656867028942959927656485390121204099608781517314867720867939963326724427694280297188928981412385140381037743680601694194857893988501703355617614325741666294130886220610466671231817769441734043641947022468867736686561077667576738451209962525557088523746002908911090639400381122040362389739271781547480799565647116379244891963140015537245742497501592956734452860086603709408073504171392902000900527556916731459266865956614941159594636896849811388366132379123291224336719956743167309788280992376988620072028231986616641827949562967117611869014174701021397355688800888067674329078253606358618907378043462614119245401671262840930874884999478957068949636727271366364339160795382911149707800138405018486259916228254701290228396887423366498374508485133228696975992825919647585708943655605864634384077082052644806800797576884732868199972437134274239380044074940205788916889816700150821406788696564183233127911172801653634419923089188345169190292974449916872452777936828030520222878189695868490828275690844699867168605809220099369005267115436236225339720365172976615717268649872042633476038810000625029167139628371812955807948242299812360814842503598954208765037535769523297665336641633559629853936764753579178512848816813938608572015728488073332161736888673155306981388993770288486138999253483879362290188830480561987039527961632367453473742267898815980739796659986554194514163216397609056136322205126378328109918165983735855325463889421571028729755384396423901497003224983560844153110271603986751560770749688587813161157646702040620791202612100700264516263243257640913217169622643847387356459706401961743678845177338871400908187848398714326526381057075463638029399640805660011447196452043799985636249945236913167544999098429274242455840042556658080852659836694074337020152095806844878282761085764798081498248489974595701004262102728335410112355425133362624969970182063093786133942855142061233762932171131628683014966350776499952430161563314104842203046669701626302301708181197922348284508737454213602107316218375418659999060914446403582392559925535851286622154608846925213119389699143712057116632491027148081747449903006345999747041714010968892053852357469646050611390883931169991896227256289116441877125429540000044365304376805951344645784868005418657412152265153933384202422089793005633511301823772497637064520868693484773653777026609855257271015280665599845614367746949295587668922187070806197164128714348213130728687939361166446116391194656450449072011919430294181077181700136536484147853002708059276878718309174591985162332143921194782702281210872629996147752755659092157483553218347178657489079421111587350671796220330865085330496705595067044505725283038845353108914001537520753268893198057461199860040521342702996184924134064302069551611798425620213302351444237334935518123068165765299579054747064910996828636194145072690695226064098882564023745976607975952588361490331036502856005895185262758538335338016934130905568065730279674908978944507698531298424733710243134617148236151781657399426474454177813269954703948884563213640423379964137045403654091579325302136618876670769208387471837549050854019909661465702538134799011524218290242289293664962165705740117988554326627006958079035029532424163073745114020510357257674442047033955290328293154246927585079776031889848906639593786097903850586397307191724891410400365871325712968282598991447412024024742600056642484378806734370699360964463171933650799273662733058948832861351647788335589889194651771254639964254433868594798819533399381331763900213685043027263252814633421033469838605645132424224712725914303508777289041179345445692907123241793797997777879425630846376002454598215142697858181898787612855172936234971293094675894112996068274350413868441224405073648026265567281854442418155721965416058154297973255525994210138123447191926703974223609742900712225201132369190809181944638839460164422909991701776663575134167936652909129524420007358490222059972629329596384268029613558317677385929200062758623430667540709305207958377703691268199971367005719378163328998169674598517633639199665797208725226518380229889514351376775868883292280782525621684260498527693450772070963523132150789151138817409515286167815121804224631718152066342219470384529850932642398382941280478173370392444616540639606987499070581256521148212348810991646677110214814986191623466474581707965953410787974455671027051043595756288558982729616098845056661772942517680867607208007335213687614893823937759340295457812440762388353991762442301575680308540533502444415721649049816390669699207663106351542795466272198313788898203044028346744898349499774368083068176431412269634532444894172090592852072203173117119235322168185374704393412739407727420080921337875996193640226844730352320510659419034252867059625156772052260759810129431412412803073174305203056622384807512396400622497737866930006454821962043413911265145249595591531297108031730809817936181394196329321540731201824117596818902156609153228946726596928173571371293244745126838907086124825727729356622205911397399221702244981996904652373673322980676341744656800752881915510554924280576309546341102727746895248197242045970426224156787414656170282545949444701204312732103594163497551886550657105639126492051240052312536230648037887366064376597053168866066650716742606743964751735845843377194926205407976310251542669560201539933445975648789484108964477094443880206587770429084305864715244610867108933471202405020976737075620535273173878362125017832747075268822291456440106891193308204994116742239422281062329008290391125007540613405061218899235060003150451975626757603257521413342361234332806876006774136246154412087297475747563960356317520073762538447025330789295661324651923545121774638112167354524839290474490485528215930899458731342882117974952502224021780427931877752630864005795470566684436141973649969312003269901402905651994191297916882531358173633824141365099075632958014608033967478464754825727103738149382841667254980394805647611757027055969841005746346695920631369627627219348741075736525423081271511795681210932952513229273224553638850526712635721941278156954691969363779037072204504156515848764129695378851173308000128620487989865057980114850684417651072586658719377082879551299048880191911415847248003877978103284432835121942163384933010034099521476096911218866943902622976697187707452493933912290129301994973291159911124319158656448288835410149676191944165778198987643374318392251329139875535936189342982539073040692663023679831044996686086611614763010579163579359732568986645569647355726107920307850327382152825661238053432894739684022513390610019820285279015399518948154075339517889870185186839036454003365747629775237377286294318294358894168973965667255085380525361026275279431922948860990278791405176608569690693524603242129982449339461932171323351934907349952978535641941740140243552713862660453647588114076885504462606138998782782519482921374608207254857010639233575149848709817431476163765180567467175990766064540930224387505678490074091333515468292910500621123693625798031477743421817095176671430443779698959836764271783446079709521641867565057658977293015935614268381246027791299185036609058110080183946334975077697661785077574335124559312530026276441484679061063378676347773295035555529987174557386926977090028510236301168509478609546208242147665270824733303411039499201641077092610934812485549505698105730862239609062315107847774684314920798588098766337544079039378428435919055940791631242361402978274218319052789305648203979282076462958371287165027347396283325369466824971043705178788635320303990248340361296823997196907216419074162089619519738444193926856665634609508252276849323423054382554594540666023442229646151771051396433290419625590264682682866287211914715269953007341239596221604361010329276593243964620111556320215817852725779087716116787295958942042935354081133672733041298584302549578546767115134611940522142421266703393029823557248868734535789974550231839567552507747364865564417497161573300535822305157233251636947026620697395083478805956453350790641881134969414734630513958323218046474503845454094193819956297408450761290962392376143819712481599289044886963099250514904418580227783676720164342609674154419214608846123232560365699438507787127905771453762718880344981399083379795852140296883131097072536185435030404023739514780956394952063692859936832409815541858068447367562983546614353911527702057005805180811604332411869430423731471288375494026410371591217380777726952389566155285068810598269025679440755345016200274041657392329812223673112143652554557965153736992115249629554585434778412323144814677266173433015407329049251428028320421587320934421793279114370228561320963745634985344493537961529422762013188511559331966310156670744132763975095401028392695796559074515757156580664868914112129022119688877659373139882016598429025829587688930697121621570130054675516625829658953365595463328023882647515871211624108591440939909187052447020090202518593655078966642494293035465750925991652077677120937278388783224120547338035132007698815472565223022251618304651436515690679953190745800519959135220184535985556332889903973369448570214700593307358592134898125845832621480862723641335974311061186568826095808240607735670193631529102852984321779754633676106232387560815105616698658550948018870255402582409580838441038551697294483129891680209436716889587001683953968313049760500889651938824365341636959202960342671960839842094362678047613414855241313245684914948659203506119825025682172891374026928665359611145910851709232332246454566662947839825986330070117635415071380775812399984722460051517717146241467074391561209725909193794922448324718014288920108326854490310924924963100824431396151149944613473909130559828166640643977218617781553132293674233455171658413249988790485245961101061502218571815982445520342009114085263900939888263171896053573870331066473228732888966344478828952995351836470239168085846432860240415842780521909204628890561167471668322271790729620475144952796126357214526179898951381221774819861931514156366458040998941677600266846612004370425224912152799118258575471169421538898745261620017782381301378315236907474458963300566817680243912690927330250310274825952718869616899856893833113706579736576027332403862696463470942743743217384572919506629787604068542644034790733698851990778286029420585372544763353455640993909073724175041879254223772794310381260810533769897513243778151287434809301540786309911240089411393105829569339846719192791769674481744947489690689169623913246791038875009855687510294805237573744483416460018403035305006500257977441113926180929367647418542838002174015831119552071765507533014490009030023692785804336141859505875290822722516674567480661671040820818912636999911238682399173047960089080538487419282025035917135052245006907057148580204835832929411710959067848404676082325206098688937440641025060217622468852050144334572288013884327457490753126738054543248359530991717258743198364010356052946034710446161834093399143944445199762057585748554284745467426859087968388750750310823672479217444225230600049968586122447891224383194678888626991520601109916052896737541203870429565541160864710480950862593997195436734133901104149509693207370089013561052798247514583779306201275948038269653240874766623355325218441463842376509434275947745367290591124774921399363217632801318002079310906524223490708656072182969480765516147058057012668248413585079117328732839729081179585064026126235389543281687656832676518774425635450686822406907896375909376125689326208418733760122714104797775727029658961786207463757742270109489918693997218734180651493652802197655749528206799933734689526733174355254775020300086255211486261564360271889902800280912376293138797697448779159513215156455178510253008450014699593916183664171711940256322394245453320931316901594740898361424473415639948317325525223413331005047901222126478160305662198710319230365402379118213430935471331257960286314836394603415728627501623141617831005080405038156393957020246060403147308870280747137863081818758366832875199976509536465489322747795153035383179004331605209565162798983407630610267535130767848922575789343756438047532541654081214186282492451121328105771674809187124143170723612084928383211321093981236976233247450711177845836148282873785127175769067639537047050156311858343842229201337794041832877696463396855646370907483846227602835235157261064585852398914520298784177280653991924264107013945844804441493424843181721403493319566743081106620135496602145781820107134858016702844758226108013845112314723911943259609775387263741787780995442737707509500145192217805119444770429543256029614122393261238239776408117605438443349250584379884866117947071797675166502522414372215472093704060175175298814381950938184069139968976959971142070259179771442111657535259114351401033187928620590126570218556505887567221733894110680902498667102701181344712215864904696255491390770904955257110410909450391212495569324616731648446936214437567217180351548793874795179257143849648723509460665134378044048394026248165279125353511794000318186722373479732120501195979008309625579421648785067802752787792212618442096088521715362910785099160926523605662268015225696784333264931963930897552091450025670809566241384496335563824343331935608754316091580319468127120258346976625366587922633447627759613988913929945687220224640238885487031250020663202977020713387280382250394326585701468585377878862320764954053454479036930306656360422826701802645612305173878192287686549022476928636170266243397105270893968437671917615422684735147463702615826250609626407227158159995953860327256217573412347176775763704260570007838384265186539219068091436370299036040058053192620497588203036919911027669069358007820444548374710481248413253910454872337345826530609204799037450724350983753549515070091808628764679301388950999217384991632932508609535915140551557447095549324150284236153183840077769321500094327761284693654332862793799081491826988116954104472792166830054324638107618225218095155325189681224182229553308628804312950783395477589286102878063193471851965298219477155921501623326763291606507191142524854411495729169272481581857432309347216643838370186066720327439079270422424048493978575876143596307353083324856724599443017359449230958075994444201574259151694551134033251566585073398661590643628567439860167092037487329556747924483153337114344524703672534737703803387366438227331539241079341697586274927903584869766385180921886269278526143115758113410632209355136519576826764353653044680460255418524450132589752917066791734241233314001254446160553334623222797072246647305629477878272203337112046412786919250360604920727232837249171374790182483143467257461738766771391926830126502620912336359141793018764789731466327552807353511381101122154246530719473324356384436222172064781579245176087247370557661168824005768538678919474997428707328028279501624273681244352391284446278720574919842654411455383949728729323294714328480165198218912819780343731754111242087656280375335082101184516700560999734775824996702478893678226395632253182536896776475913341614282392920026584191226576524648736785250798727851782910367378654068828927959362782580726292580281147774123745825853730220791121890679592055140825514954697478728113103016735602285491192621501839356643440126937841809557258164346146449144362292925011105910541872608131153014230984806956487835500060890593401713234108762507018408297524028274449122510788759070128621388306498228125297328907132509230969179643842468081732115836934371755732950461376848279997568140112270706238275923541590973923882237848640095433944290209312143794976618676230003483784834288026376846330948397744063451418370143828392723994010369698832740616432975797953128497513003987543083283933353476665753530250335015470542803400439170687955275645738424995704168983639256210093145060579505508095562570048218006938714295491350443370629838447335675232702943484161685286450294767148862201821019311659269120340937961540715125012313470146690281031615156157341811616601386695433079180317978055440359284858385745615373459979551465509087906820600064817031082468739749395043096303934920121367907176326709917593829230801670672681356385485377072549528894535349306885666440097905261072200454533616422582471607273896962306777483297164867460567837836391983540754991661889089129133470983745774369870918749730661365449502857916112940824732062661409484224342819169412678190359541139196967790776323075293896548292047102530713053285771827046844622416950362531141886025929121919237976815998053813676713434503962071488130600683057544920007817341167563725953224138038834937047184283274966331605137606735968176393107714137795121674591909268252615497950423343670347411565913529682450134521997622589686919571863715114010934216433704017006414598211315705321470713420877933429444880299154726001147778543613791306905226602070540620227620138873276836824056076255839885498503501746122591885512532543187726029452038506081158289230016954814425663763755546379709480203510294131885598283008774039585209495497422997534475947736956903411385285501203311312372259055197048156283057185659364601666876712278223479794481387536508170004507987537998008817672079166030669604495701643513771352526905101406675476261100378733331690779288166646279555708525038701611255102730223159597938882116901400424487059086574320874710622272829855154236098087159544007976779404363396160760514390054592574013283889304327180677721430139915553470247597706101156994212057366287370770718431038817810613720211128143216840264938865582219051820798902773926863921504104689387873041085665701778519187816358061076471638052396974115987697505404546876193867034841274951650215231119056355859907240556876364847304869635577649717032198521749053677125921769950691291445840286495848459819757598348567750329919934481220347019826872069366175920622328034231304712038617713195803547003785549340750457679876622683952900940176911132864435524268148204856025597907225422761811774140727605872248216921358001065473633588330244919705050271724655685522972467282933688883149949050610260545151603231324814195550448778333804277566373411786645195854706739074733058482399419980622309420240410754434988618041729178049828838033155781843471081496518561410867396013938058289258659984268484706606116475146429910023916487849712853736139988757567081281174152087354365528853897572860856022652716870461742141952094946894331014706807711306713098551765474496194876183867114639525992137700454253626000317750723807541633100127756986274063986557417633687192367820578784376953191384289545767347759999264500108243023729619587188288583623947424037159661648855470999376866209666755373911930560057649796739852363943584256322438926907609238590645630461794286977485045379700574159759581020683618057976305225809453837754275553674392553653865843861738371136837053207475399032000964429017711598034567178999036035122407328834100966830942578529975540352109515366811838026543220362025985499662555275281467868877478973637718571080652985571664382797283628081713097804473614502493567772594239583870322737293389136011056530707109316675869395159094554520784908364990867118794812521455821255271583922398618718867619165781527494551442218010366141358905090365843313218287817412709575459354327134529080456496078654739209241255161965498414520423770297258379427906863115013587350843024459357143718205946324752761307206208510398149775550871881384733945173324493031385188204775705968986977201414249487858124096944295010550729847628289434335880447696251106797572024660950467160942263284722583656984229683201118118825244602583464261153865249452976954419171154687241030446155353570249841449132282854035699159436550187229615106452998064444725529091412334166709408282109743572838606750715769532665757695786237180137759923255763562464312254439719553169870369015168068736823827961123504091139352015585868653677954114631478751736672930669083363286741724910235054447984763954347671285013506359789902908479339743400088544104955120315290694072454631127083328694628840169002786589321030835204828006789973294995831459718855554087065261476318832942818103710842559869794918904972501369825294938973151923377733243425278163398807048624034879295892538375430887411376906857837832658778279874190696799960428867403587830825219756485337261940885621450976189361867016434650337972080524621463598171410167986631925069827424392949896918919741503469661410458482037565774231083790029867450166344309437454317790376610818606960793274962137839746008418511074242895115757472369321630383242056621784967878781015240695399611310120752766346531044513068836207139613196838737539388733884192112696894068714657899558266928435333666690959941511477089994642895018704504463360443224932018246155747653159389539457482288404694051588966755984622193705975536024822892439873111044728300841081792180087352128441137184138664526523531694936270376230602689738403715941661362402057442830289882210299134979821118921457415296277540567363328603912153322330951381855784674855172158236910929989951065746194786831747701803807828560554958826091138957299278823741235205833590669651260333215324097821964214357085624467609537928509896635089772346739015326633883075089091680436226621184351525166208051167907313415735776276581302675778033870901852575168223694667143532910961826018925669658909903627843458490266793572332202548607647519078831768923960160023196547069695371957719829703073819904402380023723803933346833461268721076373745898753354413709002529091504661316290113175375101091316495206478217201361120275575028608078084475346345882922811068502455474978102397969525566171071734770162410374635794631178120136784116798523788618924998734743714326568110736046357783791305426901471147498495586334031008898811049710118253081018717014734279827003049912907100269277341219760664639662650231850165918001991048854939984211052343006786010488935083091814338849811776155689454854565971977726174177251656551694738052100856263690006339991259297863118345573094590443898407040984243108297798249294122507234545059102417746712612430675452044773445794435426595101600272150332051744498072470738320587776879874608753411417977262387564071680989541319311903986602356541232339607639081261814625481486201883751213820173307016339063171902157601835521347929883142665894599967012450892666352455736685404042668802040934600362818499339378376597777751760630500233410011015493630586104077081079688294152360370532551625403618107847840622975167812579131651592449814301661041540831323633979678471028093091834794136545219671359972307682203145745065673411194769538292469226872924956755851908043314980626903881191194890987294465048913996507518145295031049300247707461518705200939212051286697157754495322979341220762114871098242278477353043142035775810828827162700638713907814262355945535054924242269511248435326608466706234790209265005376448076408121662951431695015024182807903350501378637722195091552590169841590032423485123347456462013265566279278324579801904611031495846386992432174433875860522462877124675966800183789083223236807803423189179847141000702839036041670113521479058695749006087395022924086093626638303562971405386377387959360925643630364605015718530684358514489908901321119118230734917253895875623827682701460427295507392457576621712597085922408102472298318455344495480197317831156672039690262410232901796950513749103053080372127132174132864000889180123080151957566903798570232894173111920980021419340610760011440838915552613518486667219973044025490175271208049936989678140809379288645603224685760133408288518927293389980902440631396139353783937300205965684005558326069558686907267989981659146365147370253644782666969425814140130680316757043778289246759582444742472642153243449499437343249021267540792830024667393962649576073408049127683322307263542784632826433491079035828785599662198265261801470444261268610808362879131256257389244058518117992124473822726759864021393350116134202707462257792730684082516664414798836328533775292986224346680985377287225641902578761910102592558796320675891003126422361987073172120217575904354764689207429850470960648183124079404400747017699293177772360935460432965736260098096898967971596960948534945613446712493124104574246309741183269125411504605566309631619389327870831096322319665097723418148373745243894003491836877649163131665866075386207698832817500248711956371817532349531795215379471638503745711270635893364999733544628919353009481867084730196182550767720539769440740557906604813002998336620746607354174687948299140886798182509831750135873912329163942031367791636359570633708850929368739183667816220855534613061556097499647339688135442587373073593200211664368594921929752456835082224288960383591791433991947320367484169815565290165598503266002514344548186312825955302109688289703905229164965664648988281482360184743565572135295508166044819705979489207024240286540376773202618934391071905763842560279070018461062276553519147638665605027185799180400630959560086301641028455055012340755916081629860563881236255429143829385192929862257249106524271016339352468282700653454440791111247575186420497786340982209037437757524985507972175739805837906381019737163761337759812858481494935251854999330549520650663692839501639727266490743684617593686668641415516842211149310413761977111327895282656511708849502620371808488410121453547323703704813396512680759330874196968358371259270339741123111946495066247409962016616357964754665903264716736887576460077088146149435935403117251706167731472299816313417762198611943313720987913030752626025361565501271425926999723188505475361753461290668273130978249905011304009333235019590790777973392396645023900861851183927358917953517368652108244772830377343133595986068266215172781434401437775419767809152770232283489903006915106453749743080336997819260405505959472216107700570393847006154327607327415963352535751366867082711677051485244923636305203972728350589644051685897368628965513369168884586809245380774512617429208161988798376189132654636442999188528893034172250124107313768735925567590765263468326482029589520387356790209962035793144859033883373791563760921675084439827302207359022515830852909599402705200297059579783513890723173596431831212716388515205587184784722206114221263147353870090163977646456141542864191886373540035643699956608628247675482583680274127182730960555576225848537805292748571240830104010400556522305644423751273130465603497192854318218318187127299045881031967490252224564396725521664766539354258516522346674450857985318515911102732723567562662643025667646363673831250639454233624429848619595456147320516360799574379079776040136061852107397727446123215124563446674142562050412564177882617340677946889821332777193406875151512062248756595250641869085624631417426228877792427019093027482640940148875220910391157796391643787820702185602757735833902273678395519420794659290147911208087776677661641690416699217290226407282396190442636031059110561772703078328258333062411364027508237051329424155743846398613783217470261115050268921461352879933030994082405943689355730937325773644879924007393516887175180553131983575178314117131447899363342506811313225692257706546621567131682334450718585988537356217253289172649895523424025982303652209766784186575572175406059142890741829137807128786919859777335673194406760041190477856177365752100434969205029516413487434094809701058018857189836118955065146935678696685094749022396973900471169064147815843366696740160076855166472446777853267237098014715566587147431420683437752448247625512787566687215953540089396005952668742432997288680810410576536008410208858692566455321517685246685328004000336338688090862670605523969709988078191642242488728503967853459400043316285001853060639620551682586042587984105340323873925424830694139486707834315667090244311181883499844571837853906521240154520867846395463906255877183611786402735981260426138126352666894123238708310111131412810443539504699289903648969410784188680241568750891318673960035677217163376667977247351674276407267715780333847770372667343530855382482359375149016417011574029018544194799598393433525338148017900700459442101777866749839231101154476101427380723586290090386792346238435233082009962682061149241268446097404729396915000963865521093996123632036892150877972236130523540970958123727614970964014188707846031919820041335356398356386190177915648899627577146302814739884450440783990171536246894481792187971606684208639687670314118510149686662362100558372309957288758238653511252697404072426194105200986739514769669339436212536665045209366141550092005599274699302206702875708034702741445549472779852068037460513623139904055585265670830299661009263003542966499102058130866056204296271895480214137379838658403170932435105038194059701752215435291920665384859809004956145452846585358190600973050607636810402628115001435008280429865283976730039102479330334860746005116095731898964840048456853772998493321792523141177231931360423405339053117418814449579392357247118484013117692368179804012849407878875160022689230538155932604008480615036277085938671759654098630932871060942478828147387305915746876239900537818692563543976355572928846154237660575790280625041650524780645164620036670422642532026548926925188625323369823175038936543202150327309924567265572232688131060433541858130831727700290437946472556572974015262355615296338538496612945879470801074937996748352070222315744904543929316890705237499227860864622700855701782471241434617244691038920003531855593953730231040638699556141799444864619824719176193497615606860749265132476410172719267261899043907871874117976232549031835068474001182839391177128011736280251903976528672861480397984716026035325783006459306316440734739996986810390425336563516490293587938952556641306883394715331647707907897832451696447630530435229226506089905581826086771261738817608271461974957908506681051511661505018153078214008607553326621019911839899931513767144400615369827208395182434321614671526023679428843680066532376438385130543144457170416839305592206433657073677916638916695005396848253825514112031021732747171658564457551827231769497310824656297081095892569639691890860621801110078552419576036121831217179642769646350004940111523791264497354774296421628731583120394752105448977385742150272405413089923497456356503584854037693273627058985728320415617660249982146380467855628094525111154924384835869333094012200349239932980819025509547980541306050403940931737788153232208516446342339526407142819828270581752474296303954549617198925086911150583383590605423484300138755931379580778907866936477081326740163609190974668822200779497993195817724746153083909159650333296332321608005431232368383438590690369588469255846567464300917690786871983673668628243009135555308215166381194404869524236439396409006690188552488402633719574327401224579522967700863261559658227591682904406935527693916638390060374225910197297065480814516890378364306712800253420092164378602557329551338116602888625621087785178413583065363406705084497956948506438494604444527945896436347231565027031197683584788806963099204925961828116548732680319809868286049774144482995436301474379239916639634170889681470333238580930171821977687950746691083838787565155069123706468267019691746646672443782617699568815385246220109872896965560281544875792985291601860450946668160668304509317845643509463750822750345132713392739977829636781850882019209903053265063651092515355051314988677319857027161960898435879736728537186431738059611532424992010541803754988678208880672855741745711097625645380927900111940045429031465055540389893276715955949571071576491210197597450668490774030510680977943592091196606365234247631510375278368836135791496101686452439800219634222206141337912978394740747747937017897757731882781379658250339768437122847422217753345713909137306456375912145953702470280976776899374245075312451726736552826700294370344675396831498157695970178793357896901416750752618407273574051800250439319707242591951630137947041365034851433771682284334979251098556807811053295392996168149701514285758892922244896332574419709736712814912473165204178026568048071793027007250778586180222826442777569151623870399628164947775972223415327527201982444062899050252064090416957516056066939125752504700418840639608069224392725911692367656902780219534723035188134100937900821824739859272732598393729391633246098502423961735670278999441176362461071672089700255612549511441606831780068809230059186884709117167083371473116992632020794847921189277436329884863969432041827673527214652101968492790828239309505615116437698297134297623008152079800120758129250810239271935691352094533262998540040393335185893010480537931467225618837288608350569526833456179407974040947811800567607963240099526203143989270105246148261349213916577692115796080481357627637069828771342578233455370831610227925872274938676036890745686373326985972735697747442906008544578340098090784407594203792070739835399492069044390126192055032506172822292268177611122524821071876605121810973791608901029397247736596260790210457745322933770938374592296462373209081935976955785365786053486499446505272152416094253506909148925464167082279787648658010780217343913533642871615446402000244816379396662989132312098494449168040533464001527530639040056360143578849649961839671763027271525668130089431235103180260723289596123690988144173965246929486980571863179413299589682599008691795762091789989569667556036794188791081437964843919720377713653165005456624249344458805202190726759909516227517174030052638302678320388783863933966069698278125805769028063407788292293699936780900237587556793329591336734481611920539121884321818310174112201741302226770305611703595410272492774647378742236883393312695226347202882827598290551580158428580868731524390708990653428016281578910861278071252295753358045078529280366012485198153302647199439441199716363360834640282661188719646791582756779175572572552898338359825441756628453339387784236361124457848773747525374227295892595583468286060292178632977235747821122056619749097503838052871279211621224807891562729329464730441271366573332895096759044149132125301968833486676426512917969902159630508069108011763067807120436468341648109208468234066245567400187764235505316464257434448627631482088342193416585413641122928880513262002967417111067263483461735084529043682196736393715494881560928719200467373519654402959776246130334736880183246308427983801618602391273126129040799224052222318712310885211858899694640480623184852381700205218957938127833374557522625390710518907419324618683525061444883446534488913344177151101682444137541220357529617271387332683505076928001608952058079008405763364870742584980515938854924624581748376438191905892573645712868377052659722992734919437819896836633521389203761846123543457585297608923314836122525764908393448733145016447488646992524678461288616922500522729898665635935766150594691106056959130321154007981190643646187461821466096275311925970900583815057206546156722217437839034772563596392403113944214354817719201131239049639128464037887103722007591470891195571110309176194999506419113254484905915016620553991084359105746480431837080369371452847518422660184765982459491567892604443585756064602682037165625263477849187169543665023534449897539840274818142693565511090134143750256722614575234856406172880594275740571089280823492743672376895398959503922026115746787012656441459253283152059113368768257151013163477218350509807592629630786335701648623729615028463686560997774541324177198525295608289561410912961620582124158746425865872987343532674314387089148993722750621305237297773683606189033643598584111987608503065429977391480523920256165455132610069492071525819513956502036590961342719646559022765053467813775921175163943111962847287892739189366764098898590567462740117768646251533800088084333806219352942303422196192570889892380642230341026691927658000652824735150968917231990236978407049050771587470823475343159183036516513655149532731493648608612210951466514572323572641027662252786068660644380757500534706868677297286661227305641727903284669397505478286362135931974757301992990746490631645955083305046383341301501321871181887009440697472367064152475747229134317787802385651373917422288482479627245026129808247046607664420096848078893341329219289367888529240734515129962083640128356359116191321460368276626086801238250346886482247554640446786206204509428623913253843237256061626221090270581877811857249250143783464877782139893647944640955531251220773430619290653649592654226819885375360067667431384385500621692734182976419202427807652047539239332279832397634800726771648589540325729246007822762159321230649747533785053273010548144967056193132739795229895181189119968165452796687664056308834370276720630950008002288855093277299594981901555609918704557350334416407653682771162836012865520281013043964824227111687391357363539143877760118758620056658940696420513133404114133905982384126936293296890889153528178852922159154931338443645899902294773237112852291008266790160146423243280721321108955217507007229869571800757328276284009991437209112317893444085379662277895049318256453631477608549989188827448831616439222241754872886633312552120473721749892150769847634329730669383095797911369036008283160232613065126166098274564556937284603928821253117619146076129414212929134261820506978496641080646202524505023886283818891892113637316671096717566219963259385577868976172028393133612166883061270788334918840101376154869567385737192430413899801348218078062922649679089399343845808209446748853566854619342377331294060469864086005983259066717034700147358403887180552214421369571090832974020729684698182964751330986295432624241506661273783067285519873309322422707463648895862960822032767324185193312801972341452099522605306399556017319913353297635377390239996781378868396796943833745873354786143809906021575365956355158136622594732480272272361910452465795512256959830459359537675592709453000260266037834661838368331934202169632157503218629009839461929428308836241122466751684242166022379837229188615871453902331740212184690815919714496913819141447319457283490645094023394998126224520748506891001185571846058394434051738404465175237143389650859283032144574686043670517938470448381723894598130630330771386961025180779797678497204217901858126525760225356433398844719650338967441755036650712322037303639615055089524421156894770644412263649273342890584241904636271760230040631497379874885891428585260031969849117850080552820432500631042640583218288511622798528852786638915071957071006172737380274835819040327918228708728581034441379187075373709818310842730944706934029343862519967805522689804524552726080149545602511255044622285590311746197300250710065089633304355002536749089749043016619718341789732733569259583598066379032735493988846854057249925451003830549373430552086060129943975597850672161676744230485249719833155916688119146575840828512769040187621650915500015069021260366598473442460195682956039101367336762115240988378738777502348478255423996216646438253063820508356489732996770569104240475133586985434186891191521158147015242276722723435545527408563976448105660411422757809848975914457951767344497096938612167558033551878253637907144013816940592301182755952505978518337282261870421337725721397709870695966360194590568992662537119433321007664538727160416440629792251564037889368751887326907283033407989361099550217941635184015883756657820320829516085522175789926292052819429265103013566996655872833980423661400790393119351545984255315791038327734577137182483337620924565354955408051388550802583370761978479785072564828327806560143218488421448487502996063672835061873745214014783531994361696376221530335220714932764648213979888772491597955197188047914635025382538628915452748009313013807431489286842970085658351816262716685010302402503726861315291435531635558258911704896713231888105967827190207547316055298832904733436342996554283742041178427328162462878550571302822479815391966053777664285677842452109874264037541344805706319080660476466866073684855489169521180762664952060476441583418133669453151329434650757402134834317879990279577384391594544159509040842850433511631074150186511311180076842967441974168504289258149865253767271356693720730876901414830563139153100901438589479730221761806057426505964992441394538783290038153814183722681604171613618283142090238884738379012113841545304288715407301232045135601224933285970179371834434947186321622957696745260746173020365957823007134664112250200081224943622037753648369064240476820272757038214446506577286915291360111365082439678069915851299932920679643006743433525390077544074268715687725953320297685282991069790590008609766632257826433306534799350718915974850505848787027909838763469084112568226473717236008024189670537785698981558892773650454727125361888210767798034234979805703971498012362638220777117146858726277786641502471777031941221837302064600486478654169079715872654703224335375597589146651010092522398984955377170932359523800095080176921777924822588507961217349102545347516806623963713968807058648728420126094996466021947177689279778719894741264230572303640493593254747429256981903978216174796017487087491479177403186450994216930598813590327370959839661722999309848987083045814058770287789215372693304867980954425591690743667815342952875778404242386366430505641129462284268903025708957060337043778719167443789641008667370875676068607584715335172772303215032748886938944288185304715034299709293779993702905522031454020784870258816667607325728343346056751466353219526862855949566778222579625911103455832349060199328833788330681186434167618896077348064777422793210952977399291583518941686119354176637279009851747427068886355745885991819067462605655618623595357329587925075350753637202503269862806403361183316316596056202039280804492899201748832283778822541412795173143991852847386545050595463319973292492352610206181126329594326888530421169029150400524177420854254642101623643870140403059378261360976295669731952593735265551242615867323436974472593677557884149846191449664166632680484085174950078324071285789954376935325474266754941949023130250042491253866810924197022792012215618801520027397730703645920656077360625362742557983985170009406960170113624157714489715771379839141997656165427307392787861967920258509389544811847519866982710397994139209816042685086583622618538810352610257165293867394152133697397920460517132064491423411548676874631784611317113582223894850916072576635704582796355593576854183940597656336460575916143502853247808754729334060268566671744054571030017093983088589845540467767042110263138704051330481298883245431601580207293344027998150033472310815421607161029929772149453259264972562716134583945557161312414164094366172308864500464909653139361608403799233876176413385034218451311799457069862618605790401461243602353313683534902976294796408504189293645112020916345542572504168127541045813648923929640092240492258100552362497576842869904897769724779584749792206160226845334319071544827273929873123615569527990281015921018133768988032910039191054085941779589740765876697114322084694988424726622314020581486396668566094295247027022216113971293751493498354947729242137876798229304727685613266662625698760553822910991863212010678264942212052725888750505780374036143488386446925932713804007595435899986261500932690894558577319908679399373632788518083486845757330512636547339081920171734485793777118583657230837992841000059605057085050356184219223051600172119125988165580714316756860923556279260386452778942621709108759724894358477427971254600551822731742424161506557128323999439720416121319714166669961400020425079719677179790948374381948729269416210472134373372265311253786022708913987586167680283417855723861220631053352112190753806796053319657617816617049494170734945636229355047298136906410609621907318405300376013127167420121702266018939739232715093670554653386987778285681926535462334678123945629159570859155407850329382158218584748583587596776575510208981017870623626829833513445034459505908089039773313248748320642455388593487080656978098782706429732047939239652923367645563040954800864303785255656559869348746046912779757902450265571781071770110406297553439853977234713410278908690860818260973162593165778366689196756475634572260665427814074675782659143044979568840927305283879705848776412573135013641674527156463392647188252742322072935785890492015841471982548954908502339790638436365638690727562777322874527688379348814050305631098134527729837571863459077864726037010684513895968706431082385362117823065708235743084392159114166889860257737873599433538746175536495234892333565904143545910187135105530587582956115826716974053518868971865460564402879136077830261143471254853021856438996312938105177381592321821391066210105912413414100542073905254600122497858407068819003426161006425043902396487993181214759988481342053402652832969547969860347870074844155438482890945655122616152822430390736161237105909804576018882345684217485347740571929725189588968950787386162402185625689624848953276540150079225050227993535479869694405990976093034774923177104717539311336948319455767527910063962088843999446923428962580713571194581663916873107541360802568065898054541568175809974379612968867173327271660416664369390799162719831005837534366591219969502974659406051186277043526304798002628937534967010383102261350406993261091242204528052854069816628873075810440371281415314805819907649876842188051489335839365869532407947961960203860642603375882835347938183134731667865636469113721632428062871726806582693328811727172087905042998471829256713105900278696852852836147250372404548980232754204444689887697453032391565932327805759252419898123977094624683303627127360248475332847320740636710962441332494414980159455521196069243430917891893676947668541208160507337159124165888529891088549661066451347975931021221929885874737729670410386576576377119726060489353945371498856135031434148982310941218977588579295517829355360116334371046507557828169412813164706731218885967332981996669966023351587662675191444916469980218647046028511016074341200727023967560879193138253549908837312364781135192654560667772765362777902025274198334974182351378935209358921676209258996450883606481605638470357851770622852898009814149437556878401090408166966216309377088446384090451028612666973962968110594437505519074213352239379182289762655431038101157036643422184610119436866286524648338739614079017795337013469855781791458548155275813663149087137269825795900526070147664163771592465367657575497977811553612225600078326631854287529570785341199321397056849819504447081764886733480896458921890152345367667557132690128905147084407351172220626500973873978474399043848638852867762954165336914115767765143456177979969145689669863556944964996732441287036847358261188216319754233880317887054558538018531354352194263906239089498460779839308189321466493962431961153692702064492909259245842724701968987329335030523352165796366059572519505123221331121320206737582949616961421565481886503190184872510375002301691938672231388818325085322235736984375228966688873162397155239955572765741646772301256430620074048433023302962428836424383392880991461565606767950952319405900023439811756449169142898003383029299307074658782603231367417869882950606069873110234222043563145724010410512679285315355725130418439007971573949316148807502372982750440979945485711426822288244841256125868577431971606966137997528939710476299900546798508515705691137833620212194875010560282252717391071220813671439503370063461857908793624449331528771464313377795741165496664606852746285749376188942994843033560916172238067894866741782804229261535142313281371675767644328185443252340135890892500024658222663933191978991102239078010816405471995665308224719721281583021405216571359621672283396279652230003480450931378304338754793472092699741989792747109959583174868812793407071248532022332510395234034674898899758256355937414505439996076896493656214662941744610915212642213013157677375807912805657603546302221604079059131906277559116528399722252842828942796136517674505527142789776850071928137872465036248498437204735099139768807586935757803689404315050897511935196717433324112825476514832583612917861757358877694973392944167208922493702632471526465542170163936125925870461965133820338401813464059550566338157459263130489287937958310980369600018406426181045566514337972423575085152922664695851548709759075055907565527649418113026650483596097026425435481035577350540228005257005481380856810740321214291416090521662542038423158578304568316168854774095858552446391680384422942775664222371595149956625772386764782870349458763365261630938912532347281021526679943587344982212026573547766437450848900219396673787624051815153175772995860156984799511662744465898107525589245212588891148482804336063438912826182615617842001398733348989764711911587620271831892057544310296399247011324375209372420640289074398258019940966700018756544265830600347745170359010836616633390425919376369794227438049180044876334391178485828103138703352964585359745273899116219122910562962627695893561110522535712869582430832788246655430380219590788957616697520425560216334932567270556164804698230395046268640493197082110994258284661648856721887434265217598201497449659553014686498385624847419464220346195572295911566194345875963911846923314835940941506925219505975304550222707716141626024169775012867692591812799978874454593534260210652546218772990052192305510411719223260740925323325848013681986543606291891517292841217124981625387670483573924207559778193666736174860519019016162988745893726992652663930990626938632005560149375528850838264013659114477489946770586394574747211417029329507303892053318297890203169756508852750043920293990765208038895095571009581493224529956258825223197596886022218226139914597630972899167896046850171188736319792775171213582334844125289728275321795393994964343855033577766893942582472094041655349394558780642001280748212579685255332936979520994627469776777341001865561297431931375135229074731497584531794756940961921359839578254561910231828192542932100489481837223924043699663829373074193146217677667417752215865709552339013265141695683488887015853441469977058254872146069118515637057865083466957718570185580867642153409542633092942269592125018620536324310530802924025205251771159725705543917828200500442181892360682022571570532221063140465243967213741010827183526158335561137165912404364026503984930920612865239359433900608366236296682181387050373239970618198461150254244227774271635897575167249100008102759832498232545624215731781315893616683977956891511447400911269279021826787093283198685451448814276297172392914262713685194456182288585147727052720209543358256601597020443216741049248600536079811224807678946797166201544688600332054546636881179875771108597381850720769453798910227716419059683213600463523137598436899113580818037145902220547955952299167165141920184090954068780246105221722870657139590165424418905217323808186316747624026618439916838136041284853841473891033802520372564258849269222526153855674465719004098127162657280454291684373532789933532152328526425756218710317456496848649303128302656340270377963068552841141429212602565499837076103043545904573164238809033825649986960666247251692550230639748971774463398447716487841497640081010755606205387482055715425676036110040241359390414177130452476784144337756497732464921654073735901202865281853158113689399318991180155920346721681101119146685754947722147624126154222764217925023905346834055855593265279210042219841003125204677958376349348375618820723008235915284526909350209822948719823170461271999040447319429358407169289589606612739035232386519182136482216450311842258897089949397569456350856193953823485398618763027015683069287040999786658971316352375168174397883532035698692207556657425453060947305995833448890975392301174344587175128119060469091198561702791611808811479290128366842252736488922343111195952971798370576699710840534429394529103193944424901728174262487369488378708839253520068034865343904256556844618523418630574532948299158764568537335826058224008542363211538705746970103140887067787216760549725084471258588189131921808397125148725758966680504090130272327568410915128102196379407636437177065939370538296861583799976265938357458327118397546064301769184196553138778656712235289839374974455072517638874930640405858946862853590103234904863843083047472126208091031519950470913578270459811816277060543066327610981591522858695025635125921596960497891161278166744754742457128128077321055469910722812434350398684458548353346156399464322760099691988827240945923997292815954200439989934448347235393038351451436377110061934884485834782944802791632457902023053478610470695791095490703483657498517228157917399797615112277065022053340901665908021055490270989236107448769073748709084112798922274038563701621437591971772771165041509667831258223492733298979406170405591898108351047570906559328976546280880223754386633209238988982925470804428984385499886951159840420168915902323479845367032600364472951637668987302711005139902383679521306594169519288701158688780255963551737928605826338741273773051421234375939122212022825399652236948388332024224575178426190525353361451787843759624980475984740713512754565922349132453375288908161756335115946878009434099300362701762100764463757106927862639474599912297093438153155494905292497601233805921487274452225070669856581836620412536104094680875122863029529332056159252549841068077534695994877169871031535808160726906435961773836953300847052499646219989828664048922404181650730873875813044120625719511853872995627913383240599358739190956000153001576038971304635446546606401171879902178399619627225098026016912450593922990092115212119490796226677537316437534373248038006698633963706788127265522689044183259461514907387479346558279801676967325537764193283879165982874504472592326130921802212640359635242323693409753250237279478679634965816572183438767351517694859947913137062588593459385488211432558665931067777651981810461844062766593906512596253211229292543874728905355888350716175562336162221049783329051409443447594446274998770327471499046787707060996698759743705347266660628304797277692415018304505573808286435370668307953405673310451289943414859825035168441756546819212538647932130434078246581795458142141962235278789868171958087145167710434031900524587823553322840360167698030590796813421242987179455902311971813781979498524460336298434465606987656993895768605182413331858176125989134813784811452284798530766274583153541421502868392107793344054416166175055495406895208722802893417179621390368306280016968831259702385273754748402345316105201534100878163404130519834292716843436882138779666616141854787983710958583925887307554378693073468539848508741822626600397792116676552408279684728091745314927251101213227640511469023294998358062233099131115540903609381831760954951012142278130837496004861467424837845324493582363931741254128067020806485181010644822123107102503822387134673619872406656286276522295584982610036053496873407156006996604953301818625120421323281976550869279864228489487573702929660073886956434366128810262368479531161081212993734600895708687420058906123278652459873656821836396406787264730824641862033294981571620272154769402516881913919421368064316878236475556981862027202238185771595803682092075815891853660620972363756362959443616981131171219693851860280680048301261353191853467339879674605746858659611844740603711084699069054103636775223263146795412866384614753403356316700447167121155934586489828125712218631423286207667494524780801088943729643731990677570428574230735381949138271644500506164029232786678135530891654132425790760645022473358940346641486869988695391211528165207089154387653440381274828220288652456162751480125307535499259149835248009881369011623033646309707393966880061291703704409476391689759449342060957113310853306961730227702239798965913247213104694843272700736317469370101178041775438047799843415009840671986968707268719373146981275174308973165271249606206123114437123057487255156175750375495111378984269891295709513468362802459826754442052552755915478862273638249185461646822422474490200635606271030199031323480153382568898643158638283258746915193701412154144711919251051435941829455382454806435798640359958087217586124205288882597984464365033488661841881424160138846707057704224259795345881306542158296889179615039774640434685063983862146384607128851516692439112065692544753965240345106512396459871012705813615535719650698282345344635018247441669741548046253819121709836268836211872916191444432948712142115804146494750019047141765421680877299344219095673073117417919063208317021897602635167691924626720069086098611368612025420063945814770584717351035957577693861192663922005413622416085287278744002766146791515516772304015272304902278666297822581548184635349244807429704505499300318510246366696148672122547897584413142346799468846701391453079609938043415385476551127294652485984403744226819290395314423776694431584648443284152827253843247171212762766455023803687537918752208929219984475958549768415107454246093308931684274275961026236148279773262755732600816703333598630639693024965756472985539469574578576246618705333185043048540562731542736497369843602790165506121025040465730711388901736708015790875581982388892514482445366994076530189708084162175339111343701120954806564289690914616608675675139924245315067180720826236476179088113364716597800681533028641838069164178094595757394183692023567673890703499172857156802573415179792205218200458004374902249321132648175223010848500588476876016252762031115055690116001279620875649370347727182911515962257300253989660281540970108018740936942880100282153262775756641425129635063173926140651604843892953175736614222661684392973643385143926176118053564343605335026433553447613228951433388819197721233909170511124685222084870393827989959984605112080842765213447211908773344213648926589003188927109775615264588018708893069787487876720700348581298437435745007300603439371655814779345584874266581854296449397405432331954875008697170891529419600514748078299217323941417471672253617124921335069480919364761579429467146149761890074794661465762264280762946879809676516406117993776677324091885963753153931182779320765030298632266740120610987640078832870444373716748401246257228003907132941148576376486500103139780313370866207205086050045233679604359059560363920039769524362071153552038599686042167758355638001644297504924395956968413120491648348764439277033563002269599085680585743468645137542395752556518841838387221602564223490886538903360375596000783381148461157961045463676921659170162813524074223887782476207791187646202729037479092215710138453559914379892107801612160425784068049527520075211456996396507164543798242122798809474039369782435067809333207981981191166698181408077401369164309263339839259431175643008067319482939707791244853214537464037095517873520665174061699084550637243173024407109726502852952836702007956803697247886354785183153602643906616892584434448717154891657808098812681303291399908238666651622563735423365804633145781006487570758177538019486696925607057294504423511429794520614182952001454173935681699538417221752025774037309467971851911452913032345288511949689470944911485269230381994270661357594711724264788630558273154633793915410397378363733216246995008405141263626582854984504874524982763273264096966429289815621234499967345283621419824678852658274389616873175951322966322037342802333273442817869220465832109243080030080822998449570387994738726646756820746248182585909515301886398418774923399668437771325647237298813169931546813845548043133369324240296321183626627447029464231387002132160743533167097533611639848672533587614675223185208113076343430584820189802444732668529311551037776987576980234706162360831398919160036916709673005947971056224791635687240678538016985000731637775986983819609662858513735988383220299290796525805563535565785612509133966848179512480693109449953491306826332585014582014862917209252353166745197120406908469084500832557279763827233224754966445535291081795338905616784632036229985594229824746790033059821019997728649393885465733438673934676293417981856903383328487093462765011728507931548465005471578626620909122332703731281496670677195478509309360796235745183935076136307544949639541806847272911294268645071820704610226520854838190811049978943420353951887373331860206983622824454210685391219606607664301528214447582555954040087815911253939037232588651237030277964828703168644127775497586563399262723363850636563720614168908931731679563752394924101973751494368029771216399589110601900912844032495962968065722389499240331943576836462721563920015738651434684751616003995500500684745023471239561452196095254021417926370092458947405073143365799224057363814470211859062203907987499809588097130917854169477284031399613838862567776295334078904918779509153011590560723339036100164564544541890144959561099829906280242282868523114601498999970474935429969158161800343368598542013273555537740516762192440416581171047300142345938458006939200950683431602155221492917935963841921745798284552482003918421677800925173316140553752960836953825918161748832124711847887705722750921928170363014580511880864172462215718764354123365461299734352697846930611897877855774374634202576116160510071927959894825416025214776925128120828986365892407637722286435383681111174110606494679258936633147314021462086068866787787302330864538128260331389457788609417607190522694291841391907530366208434859715081274531607369189288131719473798580946076617459981269108917364504279763472662554949218684015711334687140105856729480018859039476183094420135458946653301029844215767439623268131243917877479991053899464326852735481216878265507094458331463318431963929911906947830409389478272114961113252993323757750297979826015080835570738391352224590457967203317088308016547594273858283069073738106936138993997720482409600689707060229054346243559160743630298583667539130053280938757539395185593345596740425240224784864819761674929816141088696575178918161400716829624572192727568546323626712565779548131749794299458203875147646006559190662796763295706376781149098630469901596789460210165619864202574964585004155543851778896689152067285608676409580758434280523028372577333950821223604540069327569815302539109475517083021242389242527804617799345527998526531829855282141456515972365039136208739789454346119475195622979081798846994286965957702501800151347026404681148268371191859636894963031636352618371885733398305068325797975897842629881907248831313372323602143463956403585834642889793268770449475725447308678062806121987576532119586011337814869546075059631125744541171382864668996700673977010257965933387208727870676996922494202908398549192309494638161259540953834393377022521489109534447977907557379737220855587338751678827163992894797496462047863069023304548907619461368661134923779792317328198422302410098715573931533093081419591711297334946765539122297697879407322905180991688687217099865411980647753915803359745383951971228903615007579738582110045416865207455510703485841111570991783170705785820402236684458641946245078512176033535838320299775233267533555839393801204101977041505348916061876591046549616770397334906541458716573218496182924593380081165408147466922040050192014313715469275281709695324528581526979882234346590040956217404447556730811321129575824034205926498526146738189666184266709262786615348480717026648190034684981014902099118437738669797236770985869327934261883091164638445372741629354064991077638605222353788876621177510325214501739634931878903221276379003927666503767122270345333308361577965517210925167751330167165115228725870370567022990404431303929656822334512926451922333957725918716260753622619106151523108221099948059161461133250160206785502352448387286529915618759507662333039034576402136769902398313478325875835581557917072257637196167192287031721375259731030348011770136615965045423335051520765762095812954282315113856596874479194205367480618475504474607607151034035453692462669782160509213996213803973874190592773962923852187910358482429580483693101608779603076295811697908872608325408106856599692843280293893706744875923426788208287432921095995144143091319887059621069486738558611821487269624887485934505203877449942253918478423700689876778664334653981082061065743236301424911496796670949575051183784843436896447372063599014732641797663460019121587308391564984555050941263810300173882897946364439845451774253566111516607998228325882234148376830671414103474806249162975089903047308658812429776659885015641136275050678643432328349302438858837150613772687415413291862238172943111889642792221330249181577540228225228147763257379156066666684710701224532270186965497047825345692867154710491230987557059799533398473221369780942135231933252322140889910200615883327760558967619346012463398020830396696529836674795003757075332360018473192610846944260085627444841198255506589545812167122359293102408168992256489462200220193722272885208686047293518751074907134617507138629202893997975831447496940995225734134970408345884735445589171549749449262604424861940549960634142943079814495847954160042008350778490276103246732268676090391146895097862101242267286808893288599637076819928499237988620653249465600052323073320131268587738528114092724086334818655576770868609449400814676868006125664930180874314196071591883690717496595238996383144646940739590132368168984723308091266898888810213433892984995712794239522089852241241671744241858758285520271252552762909137987681031879559423768139863376764081232339449940665055053858736871621955545231789179032069916163708513723634253829923239275374371223498976958993547263479107268507289806576247411550787311090365343148824976399818047284854990125503159500674579400324128638137965387429202556918098015690536594824285332939609280779923173479953089748358229492259006621936035094541576413454879688084941381459854376162217671622160253481889111591370898259960854751453361150245101913593649416387741142590235563937133589296230173976783883335254374029456874278772951105942629803463713064573947482589636573071245975789996228490958150388575984392905241139233510064644205568942123569990731696571905758837998476893860553732263583598648195108078349562372467412168003082879742918281777427808914942024942225341665117383688718406985576481749395182792279425094216472292949278564114020169659418383900928872689893678443783271693973672013323478210979336028847224131370388972592217519081577818553559003289335576230811194611749248616818735660226842572668867080398716405928455088300683803324201868533366395952016491882197291856478902956836200302276238284020559631930753996955053556080785694664972550636421069472687760287884614913597094291153011112723082996681139853993037955475672732416832925054117628321333743994491206192581735307218216324237318761886527544261190351623105086629902184042742437337399637373025275035865508383118702914507999204846759127326096735726775210108606892396569729444334193323358040020609253908980445161824891492966373714331719894757074923407504238690679439269952208651322124569651817232618971800022659344023675969173607357532448052645113730247172707754722592139285893735186390755993618540735600835843743340363744781120836164749856914169354068082326142731391789703529540668274317644478709855472355069529099897698812168506936394110267077041416425204096233940464040612907303622485455005683785278239584986737841814659087162968801815114496541071486295671518236200955606313477138587558059858802914243812009067471679210044858404440655761018935867603742383251498877002979513924975661623194466408251829873935144266291143875625822092159838206535522143164666223265045503374514546426681142835829110694938650718981821244904015227189473327969063253444308103234030544164547278303894459091006790190610096433765880620362582970856492035813464989467245472814358241150110258271550495758567759090225959223731213530725350851613874466655222610487771093089655519703292005667682446770785429022093191960688019516557114783154925680645614886129252652083264856643306054201830855544547488995476401516886784885432542205458658074117714828274775767521688034489721001611143937784795776722406514817496906298989838639054575797708835909410460327653155210694386033693844713259294222868996325589002080312581833981107730983654936370158551809798789176657673069115508345974524047181104033463054342584182921110016412215516565460969607935595892266339202141458353906797086327201575254003272352690573961606280489238944242674502440574127356044647119552665058579383825088858501262262862020857540476755528481930248625528056196894315451349297728060315566569684746460265566892139409569125349751388421259231509827376439569392886900839988328323157244764904474499794801672709062547041582285851037382573433047628368927768136134589696399563222522292209749509264022325495140612171584956351243911961574305676929004450140656639084839540437165732087298995428021166974140121110997281188556832952339387893479094346966968685396652482993042239224676854435160790879768360611221894516743575346434273236265660434853847117009607143872265093932020011206745960406897047052516382740758961553516012864386210917691216998689677886603075073470810130321886612259849459390381111299695801034646267418417144820945777428941149263255711168291810293085966564567878485652011730281805184443607327566111175019872578539860352404152646404899780909312285855208049471234172646074898649344036893812624356027861238934653097906431537202743277526629231781409784927551125028776340599273604060147965566828464040284652543720269205471826481201784600953700730928780132180108502157537902461759748607101847786574864393571678702595232754420796389167731252307028217504394876127031470130847910510703288537477552184110471341988987677283178158751781265898153321202760285553144889303430203325154402591507722298534166392123839159321187684413268180424097651921732649300823241357135883385022884068011254436960509871008652816012987404742644790547477700893959775066763599890469498967202335355972350687786751002171627942584628689392580817084028867482514175821829393731578357218269334107990060337367253627844681931461699857623244068458697435988741879030549900752672023195660606949964114513243318612017732478836496602431110326705731090326474039607738985166923084352896194285937600179137247920014562524320726614170569625354963448248166176465738151267860415112143601904674002633810608002277912793597650074916073963920601235764810016949969186652482216636094573893289067699305919199002358464262701144974813099720521051695069254468140156032158965166162756714646645425630635538244689155149081742312690859013440000152130043292419714176032879584117786144823441365260226968371548694544411760621000416460837827066138176027738008364111975928838698244230846644297182777486182323069531280465276023840303597849921515294833418950701281087665851066833087734859629367316004747834914116967813239508702954484435526461290481261812216698620440111370542662900810097109808156917613927504870024974501940444547343987012307956139636163738238799954653517110164045324086218016528759944687988683835500070374694793428005475399983873995201838049499155132484537532012578030763995978108100969819745174856422459916959919811117690687582947223540562185387231019859392415107873837955811949311291126542507033869813826765083083172012238938077995499843114423974000214977845531940152709845953789559539931540599394437634498883100097524660938828112555258067594833290006523999669224093442359567766644041028483549446362638240425650553660805420336434381902811994835358366893561819023009188181748005254678345289958669397347783246246304737958295908060318798152809227177365277126068778367838403972213497512829580878134190406159145456197877641571588466469295608964459283436929607364988877950160583932556455336235308441408469107401882701087006485928650511004528971255354398855389887524460500349431924446557338270089343932043020882153514133722436050347459160950050038637152285371350948154330784327662181984871116501378489821594451555598981984556156565490243849464182401024989933025207574644193392763677167001542585235368288955062749628478219692147178985854397779569694926907075813665728536055504006532152131691046732309672998123561588992318574903177444506172109695108335123487873386420190885843453671966175207710229456887326680935171811769916307888138376314591841763784106819758135237487762651461625711316991997668151498672783190524449970016950737242302128044645430071482138880731909663213211149620879689136702206314978938765307822761827097752220265246788131139796648214300467810852992643536353868670581695353084801503100193900251212632541658839287525822145163311066054917115360458501990998210029099400618159566836989012661065295227681369064503299411842012683904970462643945581378995825486990503718973018069243665255892343834286611276799512409876457874364861896161743413964810816775597661314444199651105456444838882451704427043136788230603258676273638540264433077079432898232849281506723571325865471463588662352142262051372557263654388418980928345721398889616879391666299628413626677640355837568804383632404977634561386069917565562659152725028170853416338835298149326220863649862765729304254795498948689710765323162280645936676902245202775338790516529412349396592123000427687109212663842370613973111649748087140754914332912141074009213553391694294694595791322508755287485005053031869207324537127507509052111692873247422395424911453930377498830281148678440202284704222624443644806947321944134492037295735040783947305042757837846588908526125578850975992883350778882084500407705319509178230054353991979914318467270186206594431221541499669225225188674403030821371204552346689656195073161917136572686276527445792201920929901198701897999885829403360313685489670835765579772415364256152801668859185497256569302635060903750337385082858904248293803101333881977528283448816786573285608860453038537516434834188143490354377160192101330065109477827114343820985986336300150431506785958527614292598831984999036617344069621028485480729990504530920530021089685741188311012129897982681448653274786746717435704787620211611843653413364473267185452781359514733336973606784546366411737785392016547709822619707361324408875802401960841047992207333950669803469714732609699447624365055796421730242157849875847988143227123013739437200040306398460278118701042762533330846781456114128020851840698750833360333047923853675957926751945865268086595301967059281225616677038106798553137075331072155493144952213559312703717346567418400009389847101423262012716459967914781096306149418758782820167321892424940589142856249168209592073742487212712702762236745921500655678091135191344506720718014799402418234342263500970752590439298612364717974729173612414757659698476606855941900054022676061961496543359311928732539048034490409517175099196151522367865708403021798496169176158339377588053599733070301305355911078741431632814030012363426813976949098756899555877334288147699674483770880904387495316675892635744111275220248784125918204397316959307218413458167704006634768758844536819267030282731406429021868019446596455947660458716343458703983128182871937138843221830678498305392013321813997621234324693132778132414313871209068558959167088054452827158319002959535325338548934562910448557026354110638040044405276544512059643253425331275398232488940930264561960153289969903812301391981896614615591905139353767053017898762369041229425688845809701014018126649534633599593157782208343503211264020633761390098081537403708430717505467243868157744179894791047925301113680598397622403330768693076798792261420163876759948668478754161971443443300387332242174115034285448781230374818344841875185756360265178249961515748840820429368775124459731953495018479349894051177687601634169361881800953501802024830027945015571415682610552426120102367298016456762506924321463483616977990434282616901982913911294308844434717815715204995719785773867299708190944482583980760271179358763723906731692668600399104217261539047606589768439939848113657001022557096711677490869725256683569842035948181978277378080269774406512372684004406063351832743547170034867893023566000501604664043795181041690518866651909046654574733231612606682555721811433995337993836725773690915444007856372379555914133402993069053628064631014736021012592506623398963178918377034633074820056372373984272266894209996257281571860743135755153902701700374518836422348108003942941015462205160251773566509186516450601883482387173611566907813265386507118602989388754291169087661966893764532822887671081605478526214327754468048125788114742270237853792094591143478243121661935491213476419544471008113162170131639562176973374879441664228239597867497224281549194337123937345012024252180868943661276415162106970466986537466160690615244241406087681912532439215135366183232301167587171985067919943808123985143594046613378143099869194841697770469458994060564626842283163952384957921094551617998498019585863498215788183478117592054694419563405971211944666265333419237290359470394994305392628451860130037680547782278107384288186593688079263294060647755478453803398588575899449315876298549846800974502432972517862801791075513465115467647868970628169601582910818452442226661137737536234463261102268139706660694557665693728763802335713836384807197815894439778378137900052591800472987541772280804547684925826167407846572772139260508136219015007122277658224036322867780340677398760806544934192582261047811853439010757985566105551655583604137719353257490161361269759863722326906602965370423225137822282020693370009527754121510375857263771747525501425691663140307759268078300389486330054761282550234606360500878128465104854521067313972820707226014760237544529625222812982898400171937686696058970222109084430785000037910723332003309933778840884474886879708572269078176883274793907093844083757014119098159809198299314143154475910847418059680741388067412068793904124282597257917193189364134888490934341023874337828815037983624776611516369770059180516389925177859648886208670747389460396247070375296887605902883601695248769719622257454485322095837701076991897150493815381917403674648008225470735220184154410205643085136965709984180100370817000216835814794214758368383487651678896150702648517274749939073464590237622325988502889864347844758561178934837022984318402009503003813198149276129557982388469017729032911617613396986832561302571769026819182399118167903593384841445961274707041801180290225466115972160666102771391240699809112465517226628593293975541566880134248148174184252619259098281971547114612505817367512972790682739145570720878769413003858853765146242195908843813536700923302741450211719757916378538321131862170549541371915272615441651521707833302126930295496525474884001384313942303790216555390421301426246453226816073219792593186512435702006764594661909986139560694821021814008419112028847100924027024124582894164015324556869740893353350209031688155647222368508146171280183749864151077351268856587701319332465293541327768324872988708028513563794142209348842403606793308768972199698266200329281667887864996520271291375345598900793301729654544964943307301826080319749949874097806223806785966565464169294103504541175651548381364809681017048402576755511383321438430265079537284213744822631960778118535395947960460241084620016379247437358678409398876571468746739658891879797647031338480774761810066582436958646189020662152280127665056291418266140701926018057041597514903746019182278853108550230729106082835404242361220447999093976774447952439163265068490133295596787101404213721844034401657896882284357821996708766375229765383858228952380524178072225010299749775027994582916629445081121269762354630564626076532025588481103568599885141901949538540064145075241088082008947448251001658867474566498448891933674101869584323253170107799984931620770159651162249499080492013456473694261993616953721233514996100395437847644741978391942777474425239088669038336401179456285588375307501224955423202354760429527097919978138052087148304211890424680813264232930378376171458286280737151402948004968917492302344184399808510997430328982548847674179970002919679544821026970526114314705690529691997751117962883707317783749101364633733658087941177617542089614806676622881022151966983201549695056141054261661198621805138382381160921485436291002363412654672022855275612177815057433239666146475981243296543203783184980212961094379739094607297839170222032236263884606048486443695740400758293076474270923463660953527259011102509670125936507645508847507776332186028714828633547838772482894557993754569228035226616743648891269610830630790976970396491846131966723463727277200428745282007955288367827935664798650622512278513657376471081857484436708201775266881453888443960907945534997391355472687061219819010174696378268037646524320526291287952288047436733435153756331203379924585437210805782024182717959252316680337803823048366748191469690336643901063778020277079719939925838054862810588446726118590722361100875904849152753769638227704282277822195761866621273753980354007821951212572162716900230257960762320712280498327618281813880456597709728941848893933678485003352657368973648068808984528952286331291810866789564829900462408090364352690439077322644799165935162167151354840684175180860746543998918499717536019183493931412823547069731103983681674355284800019476532014371538476076159286172386781762431506694981505778922837448466035893039806940890180650721416067257368538044213211250942714548053593431781758394748962447056132906334982083663110564175330213122263350727851887719549808032083164224360438980491508114984092900420915314259849088633819366195908011707255487730513050370474082770297065078791002509805902140409317083286883440429696824197026730521442159120343508036949319069054290365859397499031965816221128028137675671028762557725654109427792262996986296433644027456505066233079272631117979799833418693190784049515038042437751635473202226251514868861607852073987624998098400118999533710493629573117561099665694671443206180135339617056053327252469080234330905981566127376740671008618706165870350946420023959409889011658579454120091411830043607240656728821196743573235046017727961362590418958584885392347888819509821273924869963390307094864054569522782070528877144596900648477074363548706270705353190543377544418146143315817985861318092382609652302327796655728767609982313226676268391209920365209722369356128958282643988268878315764741247909744953807210793055517885119174629819723232700160868582059907831733066677450896258949725540353156721433793105377082450964153663687721300397057801506851239425043403470477575351967488784711092745394118665464612505652333856722952937310680042839281454436627260217912811655295210987408587026197275577809345708353419194844705872323133929352775664301934141624564779988548075331013773111345619081863508338973389941973817412696513570883408167562876485703018651298297601383706526247615189023256742378770505046137343127640140780194264115405567697579427669703385781201690346643530126468197201629295654796205420504110447178065143789380712487460854597796742799203054873008872794513439351105649488020863377665327114529785468042774005970444715114550638112447207084671775197201773508596405046958598614924593362910676720977314128851772086578071729223613212510991421884594125313322542027922548822992928589931832623109721283661572269899426083588952934627190175680346110783916809188205971657854180061083387728920204550506372746166298255372624642653331242941558904771075262531443950154695203310308826354818878763550524059246692798907203797393823785688878570617957893800560522411330464929079689607368160075456663361924847426950580080047425380870717765242557801052938281428533724940306920777048858018672372593977128157157154698257863643991316028095875715683228561487754714488999575877867866390120253007173473020149891382615527287150203829109631879475700767796652514481225739998295225806620927768788156483458650417630686851408283168488065320335849382002290276479882214053959065344160899467986318788747525112331332349761909390323061993503520365226562548508921955498900000057281085150831886719556372683408284301022314431385478690583498444530860182310796495225171795649673549227643219628345223620545581103363070294504060828434101543865800011190743660420349199760638741384850666549648231210045275515715380446187456681743136233282354015187866092331011811859772189013640880380951589503822360317820744890308799395930691192908180330631606654127644259808119275446580432063279580292436358473136007945887369748714452226100551362015974089119773331076360793275252188625002724378328426687683096868362703548945194599846130885521815383571806693104373626571209147584692521410332560001063496768441377103942120999130570585846873412366008595684698578149349940847790519715255657037503169195558773681228290583967475912687331595645067776944062880897287844784332779966979772278238958469418938912406458611553739764874922230908351168121205838605501737450576005285853972669714147884973974366044087119647931831464247976223342178723307344648841938540716481854527217878781177516057074814325664026949655391714439312932230350345206120425899409263488195289429826513486725269326440614246917773500547168300696418763506859680003956871800608758980002336164767855509250653194150618594120385056330586381152866491630819557169689400637370629068915978392836454351066042147479449347026732203006307888446254346195178955861621289657722329505297057466802388964474455187706091734597152497187173300984226474319560522387471457289111599740195745484228872320458697337305166194356478204391309520870826457318704414865082086549860593103836437198306837644529745065135098783471136742793182728020333231242312128390644808484586415599400858317562377847313145536078785702848505263571146100175633782226700295890970464399428080913909434736941717619027832794569911397191414466859505369821086312657128975870240665447561728547773648481157445482703105892497257454728181470242460861325570470933722432317787369049717895887712036089039503572894169265550883324680325198867652211986258471973120910754904242809335817020665180874036188070643127724250353758177824464129007405904046067642977972728585429840542841506926316771206945692876232567889486446435146418948973399026064955239668561365381062886362480960346290462199218184959974537937774489656564494787023438880112750903394073281990207943250822158906329540533038298626681347130004677040490016066794062484920026148691584324267268924469244613912693879006667398659097362820743994295581973526015708445933500684045783027233822173195154324646524044045866097524220093038477463692181820900189038504760255963939933469050270326742629832248851252362035296682196803464429662860485143068809787411369288945275788436604899677433692380390981986289225238737426865765344593164508030437758320732213123571104270732480580612373919430208045601070279032929465317480336099658258272797531188320879880307053653454324988190415328354936364687424350612527768211244129164483436858961284515424912656793014706969034906315018199290253932662255066125541079206630926154411660229207672669354238488435131935813086526518734060733962106691287043009514617154807647489712499739275248258552568857720012693440007786192302429935112163587655868535527334960566439635409368451940885111381712647220034053536495567342517720076202848287866701562612592842832024107856617846000514322253454090643723289933239224177345780797187199358129126192599619339977159134990324646398974450319053481334902033926675151677333862770635217981256554917278163625718845923991200284003697119563259695097803055376148115070109516706742494179530739122073985470099997203863977343812961636751216215720796878500124582806819111463008171782889988520718225418751659068448973884484244859624614417457927648942988952985538165903262665096054155527703194761574990271557363571813829664471420197876697811383075797294730512665196324087323537354806880064298863266811288302964473745626533358506101719859381616612090711088620290733277858294080559219916891652348629509411341339680270406973539936054501680479454631621273534730527144953418052917523172783127358127799105001634232793997037060019577727495105117801098174438095889683468673829300770152368135324922519034983767218800086620847870452557720384698747424012822513093245061844209336708176114600653592514420482404394451926251221726640675227887556651981145556540122130752855983079932976835032009000217086388912063592962449534734952286703655216832702968712215225053917668034195291749749789078870917519121578537868474139951011934539731721507684520760002621324119012226657922001110291883455035797890635509813323350273888928330259248125927031513854574285095364612480341498235665054245528651186719220403882878373328540974335919790170985530250099931192392275533943239956110774420934538990305908698860745011391331312931601413758846753295545129558058222836927612552666261173955317324300474771015668838684773029539129565756036208956568325878254147120410097345743606241511482959705041319827536273093160221972243935346428673713839895302802040677940661388604165650162603553056378631742462978516353652620243896413584370187637877906091586703204561273839224709766498678532825222103092711930198258136075569748602994974041377157506577333247684592600865836617864044077573485021328725425731085387792951717056705164460976316072182791741572438957955256126150359522341906049217836445908363503097258899495384847993466681372946063133159423854179750836608446787620050989248378743780780920993873532796021540762706578409097250757268757471750303463784978278883384667355769432763051340263422054623500474410556314554978664588346514203504666534003744016835128072350926677282578880938159008230729968585407248692255057281444978140229671463122476694956325159028640910597957638846639677918020256661257772102553419837280837815100824459423702203445817086034282079150166197741899800488790193598255121462854352140396636382457377044039082720028123931929344656195244633685565210297154026665909615417070116476971552653711387611247867501770640312209141368406451204511576316433927199109126947947598274325952144221184706211471574577288672041981108897107202857684022783523336077848196420271894686694910024715990925907705454831887400534147424220045562516286286342264181722922583555455092052350178839226790992590881337497187703130061481697318249785796650971591747120441208675207295046443573773312165696068554773265931722527491156231978532963631581629431673538007435028738670039805860057310766860920656316273857660475735964715327552391756635684184927099858627671431128122844588568877713997281512028397821044545646344879294880695124491190568115831428921299478437745354995982860791682780565399187877195364268455479648218692609546910727192861560324787057925132673914585476021698703796116673566285358184361217009861992562864733095673455822043028384236715514116423883071947286221028708403550869600221196535714480780345578004715400980041467198149797569962958314718278869256974404603191869323189378609157007871363368059480237712518580675878509432315024637234914207987504109421929734247038248049221256790134295879538355997495805089953940785594601871795352350916587788755332907581082665138320300826634319833829827748552163109572891428205165255566792891106831258502141864519040224965835460826775670795140794606895469476396768481095527247755458528045327843850825453247281800749970338705363591455679472772612423567549438562723530129374377475285998154059710827281926408008603371871716087881649293725551028674016360075461063482070062947553243467742276335418193813287639166781273152899999686455281279134475170855190034575543516285681191435378078541513650264124104812570516155974278300784993166477452323919126549206346536634249421337943456988957489041204775970296964631031258402201866259770247674222349073565300885125516240836468599842939138153406875793198172264854516173740899697755220904693771690710624640392682628115367055234224595771918853113732744132450427725923272921491415604592618109994384514937369747892549286829694610000075359998203732814695205938645754314847188561080678613141038339639857823719249219976461556045616867618454137959977517177431835264634298035160560584812535254493780278619325696307522509829362193235834008807383063325959326282200061831183097944094589463097791778775673207924328185965794976193995613548214681714955823468452254662321001511573407373381346385894090295996416043533608433513760413856845298724395950814007740294231166289663970280305093176443788633205844425220119091654493721288606814780396062579169400481592528258846510423880922850580455609988728843903014746615111681316583736745061944546777672105372064485509262306983672965855227604043224656460431545908176723011756449419425978099786600242887303988013828756828659728650001929705686941878369335365552811739961370490944915840477435140551446459308640071113292821579055389864111282976189409126212777195964619638370774784182109081425400694588709815917739600285410110941094361712181254148573694788195421101804843016271961602846755339515756583811621878429072467887009862105856968540703971165844253643202291762272830197950452125590106179169267445362940915217385084232241005004002362682429060570728909808058965127672069223318871979418829190567735260616838400568895585136972090057325195201694261361517628638705114623382884158720797240886306277251864379758914243687065110951593171723433602882139426989404986958269568871881246205147905171556241621110384993092445464299502950897910303273781215805044151725580102494679144187867012495587179530584462976998493378577349868193275940588658524338718850435181142949795309198682125956096405522045887754914523591568538010003199753882009530922999818844499629116042733576345934544020442919850298255756649528529101444013224017438516527598172774462518781234098214887096171938464368370655405138964325339820795692068534653418229794424319760957365771761393160291287599737851479452824079367474944930683266473578965667324352297201211738369080321860603293549757776817022453987029471704646541696470520493404725225353241915186609196582683653065152610095166176183685181809317380435547990376961641249365923562093596145210456304393970626048111810161640683293146318154541808786652453839585824854971543907577652641429999297647396957027915631440077825761134354760186623903041610937327412369971124496628354016482387938245634021145418158965746474558842049453651662416619718090554768774791088590185062264663593282305939406228212154623390650816885223776355030317843707342891909715140319177556674223717448065165326771526493281861724932513004376781719837896139332207998053857650185172706058543851337252463457694026518732543651509679423478502346132050781178049028916347262523536486327599947557358498728368249972794472329939022601329636969268679318655471555020115609757789127137743764721126012806569657591516252781647648198371380056171067218779672924911268719374598054036178655902933970531482522184025593417895325284598147650643503569601418663878427294726132927873015322845811794403463772644916286339825658474288023224978004460348070682266415972524127638627579726063258167778565705778148658766983286280597364812437591445900137626842730641463655875663010013891747649612816286569763529794729016049782327972852280155796490126219246098679963355442607648381065685338334207656479465105824574023510467102873256600047458065460457924155634719889787155064890720682720214571924391835799726845708156728394599101141858727420478121641708538367914710810109551158231335930718374946736903533503746049483191233017842797125361579609325459039081885863551672275131671116807569404358721026871565364461163482193550392948298202000645331675339711707693582335817175517935077630584091844343543242845933464350753031715272998390236904069478675943372883564714863780962359116325805942178725722212921214942295167170100374563638616643992729281498731787952297963856614410993773483367639836185561223064970889858077833197437128510467563361942751443561707180978760240650716053225006046316619921526830906477975539686159529362110341796744250840842166702925676000836157307251126593700456882797536244466305912744115586332920389813237474286542505136459156578055218668885079814948114804736714774970227040485843022865401634145845644483268936507806219315233230430972984472113788767408002842220331303824087495980034038419600258328556898341248785706909877825795571364545356200386427903003736227208922244823690805570924287483398051915447144543653207223804728003103350701676990968827261393840592986879141729587829708728992777517627001069011578315592057352222334438216364120147193500595161465960583760069604157730181851940304918936382819957938193907191367565220798539699129411248357473803836902076564784837695208950228780214460909858293578674044826789880384533323245512751442652114436649061260882174469881851547729181112012308186500307353180537479292156269099384853835414386593222249989826148330282572414605655595659747180450837200326153447286858961948978103373693343019500109921159093711068556462569199412371893215151599424059780731437732583934140603917609997449705327755768529821621014364669511608016646757254622268733187574743714762810550668664860436324207975909574857973042960515655598364327351163225513267735167228785056428457170354928752768614004743624932515377391184804286621141573366459789812081943891611191257448522072716157492582852351343251293243354503549949414716182989286515751684897219546921717533038108807338346368945487784046279785304202443383591237760687089456209799094314131267834348459210078285503109297066203378532039792414372105430808731140023484805976465943613379012705990486279954486651538513855854095073508917168207442172928740848055001174910708428625384129097321897879152418321254273401439204218878829894757826756873442475096908196544770000913494767661787760245108773588960953388155954143522980377893404105315286764637143226108008495379433601737946920532284173532821351309015225603236512809193104698340226543653006992075152289232578369913352985588012997533590985203211255877627512016117604833281253247081013907558492480370890876337252146874929724033051807093395129773670208454201623884126677594398887564567275448730210999279255595483268216143153300858037905044066953824613419606038119670505468132704897666675031780543640317198757106426740354022085821766020273166376436154231927200149345518676283092372854962880297610578706397625985752972705631347702984080825165912815131088574809453885410277447024109296358316465612393136188675906262937704083740596743239173307633497384334355985403968262626302930008624959790099185456821190656492792184393115499761337774615171723018620351430184597235660775803232432905456746702612324083957837913875937543417673823800119385980901199192971481217677082998348532187915417450859557788108632914055878792211451111810990105543718183978760375264635445823782098647921926589598472558382276024552936649082851742508370392980398939703981172501756181300295840899250359487863413968952576578367682915781467373817825089755642966696329632343672713029473449385905820663933285115147732113898455296945007409481252885923550910101525938655428062201721043424061237314247751976636896276466325253956401275319734159282669425656945614359373860996324958154721924885344069660677215852384581759925656831071755084968818501019204321443154990968505029635139934892171307195364976865019680511652373317622725685795496437485417919097433288475972509184985338821316769551654546111807800261835646370436697163515211037334970630770877864447903571629720120787319635457684774393371580685995330679386904052440035761261974345965023489287267998230321021567093188036736165529494227603983704701746686915867415328550672264295330052563295279912262415261627201611424736132727616561453416315823761436893018537162111577991529931362672397858950935606871121400710185481278646304922413003879365652021274699691496171988071657303932546878750944407425930390636507633907515775632863976184781090384269481349092219403495681889433449960537371634930339961508310178466988438869120125131317388245981641883877632265260076412320020238499133464767976168424890184632591207704208259584256607487617288027520381783724759862580180238801262599997033773325428293126399307721076179320072321487719191356968304777252071108827667167443792732902860110678859628532451892164109001820523215568001707418887187008596332041757455477560174227830682283210227389594142187869619646872515277935335253242177141429504262062256987296050134162180130838487912484717419785904324524074424609265292927619330273839188380426452440060600774053787673510187066971554182868533183694382229765976868908817349693323438251477955832412702327997431693937694834467397644654907729686760128459026830531179465782154686573669038277841262726997070985245091684859422998780309018243686642946081077943459228341502604566638732666878929902362455722187854158383271641303179947215017810902313013831521798622197370551842487104769913888357538731427272092677641412036558234951751941617171206904007911180034812725171095703518350721270593339050896497769770882721611370355496179465686814303881426971639018195459388163652095189867562193416135251425968280276122726705984061708706597428317172434694105372991645892561474207379963437061521586704403007269854648867049573255730862496669053229297422738353764891584445714919596607528472104730849452291681023175826007193979010228517813884392842582651283811546423031419801711078366059626464262593323287354382234742687280050538052105718637176695620325655577116764550066329521513484521589277505630922100182870642140746600811352063219099555962454595417758181656473801726964753459363639150326633629729811964536867097204558768231911202459689364816716488056149707218863822220129831561069274899423238115135931442063390034418304427353773425071450442517946913799689043720595677495057961901327950188429424614008505248118379234583574314262613245291607204934379480418163644195463454966267665437846920842758690265738384702616757530085889737949584269202623688205960658234460838548205945036640619112199593473472439802811472203092878278421484257713715954717887944096045666839526231539062387346398609848447724064902363942472459028778099898884712164831858318286523940034418411118372104864877836082226661814176043150709751820324692955748793002844298789558360172323557338509319295797107938649251073991274966307811026992117088164742288690962144077629848730597346996701041947955341595017989495247076535122831040903519389684238196407455956187870315830657668480212785074911766660064022122663353522811285985015968699526530996373284321881808902979739976734687860639781704314764973238097860434368921091444833413082693069459757123974162479763853969455870276704524741212853453138156896312359349634078196617774558909904337424309047045307940127174856457491357761235019793876859857592256588649999534483083503549769213105027569379610758846852405065342021912659736815009161990850874931528486185787787427519203603899837305584953714023831986259253922447268398432872003283019610098806124602037779140360641656752306153165753734282963479795343798605650203037970564953750121303031810203510399649405961394415042380389335088569466048829941843699843623791035964547550443399234084258201306972491150179132166423080853198634610048640963087359952848349028437371091014083350394129946173702619025314379457904910722067692149778292358553334537208656505440429692876851601994752265265913837495367247116616372248695106883986319496220904876373378123179310013560842433439209333453658229579872302510238783806574986179154756702651482303045370764851070402532675429871380219363566106349888290571872534742295461762920132765354594649058700120905637808495685924228964891529009081252875494090420469153988943342170306917586745351129841691184671464044942552723511181637922277287219812717870411331304446144309994494221177947304712458848089511344107921157886654987336576663553125222968213913795281138425965093719250515879541785028172760208982740508514596678787170881360961541781805683214145923709930310108350549453892194908418742051013769753979473682477989183248478664814688081899804373961000374527485832904201248125542051445058586940569767210084376274043708913512211620901442509123046717234961343678197793203924794015802072925960620590481637440881468689426847200257671372336344516196705114652324061094436661902795662244717429819987658690839710919348027718513290437146938658450973247233093959646202698302732711227409031778204596736877530662170476517181611193775398404331952924242471380949703735447478412843075896628466535497251002527755556061534838829795463272479497035062227957927996692538375483756471419018621253316499542958707938857768581045202974922873481549944728375716759148170897061388095165363304862403626520748073017627703828021263919365199674662437046184952426042762521792952195085488817547616761010254705213158066385441713012908427273743219425125242124725482223735844269195050769189178818933555320733026767431529234289310798956917946441724764500922949743941263977070073229695110394109408925184905818463639100074204830377458469459681097816860823833709502428467193360238380247762857055136859398368763088173708142805666476634590044692640317191554279478765475718032787459167438612014621689103622534256569712036915428363607170290655577870841147389666445927893254216615046197892912842906767168978286676553724212539185218959700777512946753560615993645639217794325810040538888062175245579174845037279355197644115211377446558161971281580041340151044271979655059109996279379547202365334535744441856669831328008901099454456479682270992923620859742399229852981344217155555364441318743142130279497081825161050251411072235209567782874437902861246377320141102152792964282437334962357430624134831754561252833058844350325061813723482815458506821983571359058535225582917732324021551610015646916798207765967181214790295350165302123102595968087590908078042498595791239113767988017792361510586613298192604914399610956121229694486318536463559188135452078152603044742604473773883570153508470634645498677422049199726947995998465574256410371050808441996027441834433770074195810072363249105682598547755264730332894984308321048286567671728267057418593622538277205948670876667924462409162084233739454341917088392705881774192162999550164489009142503691175718817817936118985990726963168931261444434087917576398223719031513470688424568973241908019040836709254500222158934444509968186097849980271625985438042037977056900956840202424031784800001710915014048529961811295212370352911489861562975827503577067397539052890334629654935172085608236100211316005277076726986258476888638937879312496449317881361609352987773230759397328482334221357572035024200414352005205551478034464741146325145103632341486391178058971322270653011460597256763637848780630620842164372500842176221364811282539303968927070947021546292515515853200502587114211297215610326262990300956393568172906823227007655139880006347628626562908498496132474751495797921977993480795747890283054907417637981840218485757127411929864756848251854388955185013164163710611191404766578895611445023173549279567510901887794787056508899227535924719806440119285026931367453588008923825096818686631117060859544850754606576779209753735831004050311186392572035029853125193734845052429687526873516419332348754416107330270094568264569097287208969338099133772521060047207238825525693912487194089158928454539995832720395951095039383489082806614316735617562816617020101651634866996673889259092129880128356818270482659102099873643183778087725063120338625756700522138434516000218059625686643576192088805857402251093190596507621679517132441083069278125726619815835532244166992551824962549165392786770850827256883781849208497094074424031744050687111229247095154494709790502598420084172662698097199061749404525568366712829841098788914974518847453405282885327434024897988280318565209470137762050682506139199051764693008814228682509030309967217088384217536080643533207791041108616810282024012375416538991991540825682369577117325358003489126646077068769864653983637386692304112968145113486262681340435962988644889718491321996186393630263103795656397064099195994237409675891915935428133815414750557851477621267914115544588364505560377486525409487621280235054450153785323553749248552355205137456274272358524879789138755961796926203843170202793490734897515373453800532603502693775970035972749648709289065905145742917765625710391210012027015339694936714087977014112621229017016892705529217776390258824603881218556363269119221304282713746412329891753685219904696788608741727995161305314951605364253974056519898219671360546467046691520427125040336824156171369348885959056557930443520720603584647175708934776566350189229591818366931061827535579188789813397825161375930788766992980451448526391805554116749578016867580408314313930619914318035509937167953676971513069656724524915817668270737687350655470291008661760457785530889653364437381462902785479391839464844478488278376393125694720033523233174161877993856486183066279550523455651553428941262152029560337248316744618805699203422893260004020240132692783935138619127819519285552270432655773195306391682356143651887091473926209621325508396045325512048373529738543862097075462909752342629554628495897312587050945558872549731913857612129460212395615557219689316952223893637616142196620436783533998901821877586549455641709297881340056472947541128752044386412374348590810212095761304604630936176587432741876564150810862864878207650052556119237922569777155303099325122683689119601519885778018295462314835329528172534322672594556314952353767518772325738553430114047427691313766853261395367996355385680702294833296303821550198653053638838936545370580707031054706105713941841637428884058670077057355430203811154869710359828782905994619292392774762255425322626647039308683885429619182395749806115034749450670166948142673481010790319562895167787230464113429734814211547187804137498660744114944289962090689115433674703880091864450759393336430470905930280464941788823291680050153901664953423988494697782690891651227911280643094609016087774305462886948321927926777952846289962608783382991100350201101931111594622456454395300729005422577177315917641238753068990104236345737841541398670600734286011409868913008886642567932761050177363007447552537369531305342840028721596462344756831340052335923665878714190296036903824653300764455856490578454865636706615039332424385133379008772377734456218803996072489466480269827050554974819292512868882768568376702077473242938417375113027276208892702245883655203382654982248369061959245475384902905700181940225910332781483740282044870184517413633449071282112304811923569631205836947635672973130467278216866137509570165057028960629809806027464463089051376004332536953839859333423414177362334418342116063322664420190250398552226949164984044647138580014469407774025939072599962507865493543613662880612666496112284914030484203819453268469075938813102102786322159195264026058843105058874208762048808960208676612268227437524265728393475450090977286353211944855865441996590946070106759503430083213053184508517531385609550024033346641988771844483634453243033051009488888349984049214736765237553592418082866352495477079790430966798665032377515932612925491685236041266022922244453289231981637564823669239450378423825427254750050405851183024006545876499591150745550898730963748707697653502456811956177852466213655903001404646310022978561379969784641702636039935643986625564837135028439321181772024990272430842750004252647182392895478821892149122402073814129740879032474266066417574668346888425630913374302689605417769365547342182268974875755101973935758823917016519328928415699837544644690479000803265960930864949880830055445700174134092037927284945114169424094870586989531962112180088884567001443042497341632121625492169151496796795320484875966929426069758017225726608399457302962805065092455831753654319313117967131179909338707748630138734423046243615928894057875584836039386209985575268605509581450080702591557508530017564166471489688809212014194954259771382049746308272006180751423038342726798081913856610300773582024305668827360174389965536740128032886297709530810653383667659692375700127785860934427602741144525349485833518039105208466772857128186131304534838638412967287885795191718505177251823465417090176480595162805196579678938182209033525247271432289310565323475633900838164508613607760671692745006069422884911220228364763985251483316962001185973682031875520984025530134757786839683700397253797017598304635999271508986169337072898820341008180531917239630273916077961515890693389251413978286656058232723154321152835547160702916274266121773763003969073232207277330903040968489436011744369964664833276237393520368010047566196025996013237274596733548240603775515393968355636979148999020436259087275644833057009437568658987353608615253855631551383749214217593565661966459055292575443563142795335789675165024040807948204459719585070647964289421431054565366577830574197331613839917708854519206549812611188902591484324584896914071056107659973801620462664516146052999525255307371374772577897613805820953664654075735267563754344336165690514017161268463381572218705831933503636990872035344393250537480004617060058293687462525440480909327735494596129344313848682122464136253982995697514646816846377961878514175925356334460758545911159705358095090528242625608257155463158428057423936766867042511410960187017429453308336569404135731512411892110915028143089451000094871480016180998113890120900012425324759964692701626531212157490255149983480765576164592701947789661079652475267780972564429736790930605213013391133701264375344124077828433262311859969736545846598452945682130114666410775612550382098918840396079031703465259137078124465641383817954337973542822187738623491481941329485157344488985911908320691244621396026297241969032670067300937830238704656093753504267142247643084519266496509538704292119562891647002830761839641810292852308381108280931197910723706958321586473183873822818966110418189442916908576416362074708197709042277704778540388177379610675384266266057835348944779420680777796985019172823691759231546587231550739167581437263814465162072374231382984996828620704789483294374482564013964687633924823643020945577866199943339306551581913228592881889652013608385212556341614103710215128942477402111486928279044990809744139366036641395134362231536272521954546551796150859955992125116568877345511264125680141134319680170841126276855458018645654881596545367629537987819925172886883536591584985834284624912494860669842638236095680388730694258052454774526140686796608517677545481426291292011949981939355520973624806275552552836460429588140673354770022232509212544385036008789593962774516126219995055480228141998428459653779131361942675788679785355912533960997111838337883062504913085006240929368895210842920704915889949024508119945245041392206253860876815070622986826797496549775384456794147217454711984052103737761918609352334014612351336084998509012722185403642024728834878675133199500388374764347604307274477918652047663019512376323598365807650415221214498138383232501381544259341227885292698273006886426592678254976892262265209534614719820546080384946076752558578159139519436088919476107049942612870945530489956615496536407191723148920644793204193600998647536083170579337812328150042739551021117922451934386173130787208599052160445879667111647006902653758731031964095459451054975241834172841227384445816437597717715204184096697800348714440071663343980134619041807935813985538849608262761975233111835404298803133188261465635690815265657822180868868794407186426391924404320321355631493125013711934125603996636082899421559974946900922201761741525215323209530303629322811080751943377249530469914490231175592558252578896376334070178185993303065946399588732565636496182048629368013288207262596345523493218561167648258437584165000048274013624182642301183462600593842636253656562808085213821242535512395185411383185502939125739091052535438614589764506426570773797209073012381743844634025503833546346545563894049167302308155495279939619464806151160139038742779861297780942123027813308799381554177114815696823233236252056773346373557589670113026570855655672774529920196262771054990237362077732682506068241622076397601384768335327438145147627817673362905816670902244092755394711760400771444279563045405684189141781519434116095241839511618367475927775827402757682267115820433302879654820053423134134463094784081618511870641622569458891233908216828486966044048191802538360542960400275272624151344547013052887446416736556294502108836816383869787563174946706601809930200948492453842637881135373487381164974617742536636900404883137559005619236921996963243270635472367672938417615421576206198660843058772890367684833313732246322898161463358445549684341441726440923123467859770613287560957864636684115524074531201888636151665351452152916441034919491790743915800586100310627880603848707329172839050129582209890941747502895195320053301268190268366072308755214108476337918569294242036647205891097793901435658400761201675626239240796820653798322528638266054243432782278528608560182676259944573720557348394241070398328550259418793226227950288576127327469341094686545930618082037106105785292823972075247542906883078728225932816154496553971699466495457859334627484646928894279354724160725810465883992315028670997080375175301001183829812711167611325573934646470384784430752134834683635687510835332376908613250654778864741100519386758342583121817640448115221211462439030637525541367587788152264925542901141175276678976120870361751849891235388929670986262511063417390145044787707036467590226489553935646775650116766223152099925959882565637032244457241102665830587757355607320106107505458460696492515289873520467025414369610651374711602843527768231569882382939159272812639019647006782168740469398017803636060813112997554424401562921628989228470196285647391690257606518219996017586424232766112386521906392888359408918222715400679371522724399267135249456979725002294868546561827942796222727992433736516394867264555929556641168824389459386634397304682754538283023371498927733354605899427886418195016399770762303652199743047054318845451239659208462577406477977567678982747183955340681190913478081697705974744625982987186442417274299324283048253503847688152932870080756699204764427664969906616240535906818348325124418691928218233401451787319334779830632337202612193495041829326510093502139412818408951706617018238157174170968660659662403734828451763598455077177854421603308716999867187230181700055106143811490953448948503123386220369294327078019820761893453483462777884561315137958624070775423793317716596458608489128539117583506979557229144215620735118396513972405887752014280511942755634091713081857192877878025609466327710781812871572001460735706675638111992549060638655955505513348773136167710539162080703666904398977453224147259905193960147107373483882306100644218247764358269218330828773922221531233147144797433235791712197279119504937234374418132202363499942572069007412529981388082937040388208646064457217602843851626617691223789638865063872197800126667259964854037947099761670004692555339773290145555082557045879592243647812963537085259522597332858701320942436005743138593945223412527322975612515711950125102622133104835223704116625008489150476252813587293845370687541393881239838210574004410583097950597269749948156868682811334641577892941639741718649435365898496719296907681685153853481728708674359233193537330228134960495000976353231021444943258004105243925444569541341862833617956784272354416932599240099879757073044727309749423349342362682634805233137066165057598928149433670032884149056478289155760887274290420115766064760531198747736377618884504236448937287701964893600672847733869919686986146537972092320039383781691883512503393478607299004065335195774755470054223594167066586950668419381009123782612751748696947770533275466257794564891952549047418717158886970996132006663706811111517077991544269167690356086198298420426532642228983895937640745564308107759796630032631017343243500444718733728636575392397428362953152248071540147876008591549211837593373111111772792799350140810803210673927857118304282191608862477787300930355068147001305956225276616106858952698427141071724150922357362323842490419906534970532504902507853140700464091686873868385832724288186529253028428050995872911780225167397486108900301801659955748920589766424018076726089657213997103701331118424207658556510124407331032582361364371257880978037304986331266832101179235303626495354175275273441454298214213632584115034248245023078703603501145079821155147410054901982171532920877576909190351998261053741464437526426512867170766656843220942434038015630901824713159799937467446639274921820974352797028313383487738678734702888138017980913087216275090465593590193607557313344334648122059741783797313445125227668287951883778803017659297436391409133436166410628890691051433263590917346382208731852349746193536112862162201407590878067471256075106759798880193664986813581000116557314886653059401578166948135781387085221668618075848453167971669426921641655484882410911583059935679907925175925393041029798740012762447886699544163969096298507772830739678348734978023161183147842548824260852120468306249927599325516111359494092924373463206775254193078562194773642385016676793817415912693717979798626097234049891731337202765943848610500783027751803860347468392610218681391696632489424521180121570217875134470905868209669934718194078597466676171743759964852161146715915672401458497223235570079449804929885666240297084966646363726478287111416353887930605093072073957848386984944997626069314775277348799020710040153669666573715530315630315138550436949568166178635128084924911329819344396473305955869941205749807239989761325681571895721977900862927151808326759393825193311052341840492216705596630652563585378828040432102263809500856711072749137901568795822558898895531734943785266492997860336961896370432483807138350747629073576783786047748658248156221969906062769616791689703967460600707329300593241276209129206632495684759197170690431918855436929932697630884143250856095701754791481103273266209080166533457612451703484381694510413720552998717308086965080504773561250690976134982937456011676218135379654898443233624841520086541453712239404497832587708034848947313422495673617268321656970523061191080544819127998933079174234433862548096285887365354346933729364851313732543280928152021815962805656612230969698713500689926945786004971241646912416753463848923375801493228368527561891572078713498219243706233460701914467000316459345999470029207833664355724739712508552649419390488323815246261068560355788684372112309278076195159108928156853577816795847686575393929593532417546348821359138097344019711582564779839656847608996310685889353821244209729794263156701870970728302672202709377309538556060546003586742056200613037440700574902519730260642240024614994236295574534054460306809514869030510868062926256231905338451144942552299309491517802023772577281566190610009485592405918704043040718755357627355873951384855037623545966470722264737033965987197969070983199940663175201941176567637965165099008277051468096967008649441520973966624716759495967392145529057224863092849400470859031781147536393633309601295368235583322982630824969236133034161983776668175042329853569006418660703821515172682803149325964600835071996957361410909067070163605880738358713183478034822153638755150074492518510057112492501476716932956304142477249055055261179561549338085569961446275474485793027706390934385901079505738326230633083254735227259708345137285802021929313144034333705396298112292856317736623111197036754493578561902438474894862198788635283869286162564424651081154408816738001808936662970241760954125362959946287035064063312047117285252356379587210522963005522301482773520099632324425250538277887511323265934725469011780359694305163026468754805072070818936835507298532461920044258545560531230461195124894574399335658438009005768115756644553847329005395687968900970970225417489667545096163489016362493944385278496708057439324557115470802530284628805430128619621821621808614282880433150340234161892970067004017796102750181375225007280649996710891854392672197761312607196360081597195186201115354832490509966686891974654884082690095108292644185938579674484599793615110825882016101035803402889946488841276111019487389878357409076408164981609734590273742667293955591492774451760386847475619767616456674321246328329672107353627854026972643650022205796771175902934906760216875218742588941724382803576660638820711725704661871324766948723327859304151608518827255475134514455635658802439000012552047323969837630833664466795135438670098282734947317541019783720293918268279900909782358585597150528839352667403510223628392065244675640696349151113166536398193648993286152937539756952926408637058068091167123452488220073104844362991269131995542908879575478324288944428814390360776464818540374561724144644213977698249703189549426814573539779258472176746584181801600412612165110519894809131540462865443396821764243955044716142886663597480021108441933654864581931105790851358406520037781546446788591006004140626224734168066863857143830032076282953595617787562097936068053535806426414751624303084072027638140948732806975955967463059311658791268300634399112256238245864710074795525022150441090608685990502626140446935194396663474939632978828344292666774776667327992946640076171809868284842070269780444641856928414447810871447699733060424838701885151335009462136627691207775910332567074613654181666963460209242390703499250605666654906767859845669485775952520706495035363939129971013274188566125891944766078632298474790505890815473927493325704082281547927266680477604276080553209767100703526471367656684980538077981659485869831447249287143477842350054147827642607985297993331123748679611307677859136602422388341123579355970492370156325231518699296321147844618200555333033062487428267215743083350748197215945750018586143023962068280762552069074973531313170558598901619795699454148310396789111200445184830078509494951424739901437879558708160590084450814768206510172301727866380085061942704371485403119382815272514569473373068329659153387669341788040850178277393409863180654430667530631706006005452182255789767543913997993562951619719405171376492221670981466136721231374329943357154393684120443961386758123472208820465945863182412468269880496859416842435046630787108964981722384387886687860256319504878704914099116123810605880227409856405487356074340503789977475955112936676786261231754826218425603904161234192580607934406469781742076878703093178898045578678237162591861195841702202288212402229327884476923708386755412592705172742842541355943280228146255136451305008136260997492699791457315148433632536803626666239864258029359891867436357022465623171828495726521885209549931869086912517858023907199521081026942689837690065941688883411810165522812621579366076310114393977574507729037941082469220446089130788369969415540529246223537884235260397140876204332478787302255676841585396625036029431610432442219773351899524281893363695199103842492321272052561363520426214122530752596246529580123255892200200329209282591105850572526287585287220882550657723766912344989289163841174762367402437712611345065771300365982233624365122401554689215404307349301314555095609648992897415943743957672239667826687140307940164061337228109334181088586738036531042331217429665581929191144988094642702617815849088048117297522229268439674901547954695562155198283260426475715820962060608047097967689784678371153882395714335817872417975504972743983729521884823544703689642163017772874599247451787395984098756198626122405759662007120114165268511040175834334731330099575999866226400048796935435857002959231304491715358786135643526858428160618816926057094750516239572980716672529108595938653229981905175613626172465092611099428137467967705601273431068642750523491760843352165523679417079514101600174062526250660700540093706644757160901559860621185694473266649369911130007832476227959179828999223389080203323779406458041317945350107599395221292393758708182918435686426411182850140515577216469532262418085176082238691352717096273453149136556596560590600742745139882375418391860258125303760253796951009494291282693589048996920320129678532169480388858148090384878449625117097675902464294001765882695855252483621641715619284977287630503239080651986789105323988128237849477663877668904024837794890547110143185757533778164221502783681284541016713389832050275150671160639578293902964819476010137448929895085179160232257774387229144734316905951338812720275035830644165938154797106243709250246897810736798306615448637496734299857634806262368185013245638069018796485162995795033117804040961874095669265726114043238699691077433680322439980301070834030837569491229444123898052818283236453823194494383112083375926526053662597421257832652091772173343428535461108022441990361690749319459930961961376672388297570972843808694128901493253955244495826505689440727486063219307292898155444250874306790125229821708125049868468572247268837829892938239909175912767939680683312901294640702870788215653443942348084439089744236086732997262999555372677690851306678417500694654317897938319482522454946000383598527133235885748996329212253214901602602980069903740278636557080628687632164953081305973045725076396033165225429628825339312967811293710695497322835085134666605449142294663071180121640284692930874488897016790578280487739828551752906559782679369618821914723846252987238858790227382960239816573878006801913335346338889549207190719271105008646315440480916335658591617440282262200851229688546653370051379397965561697793904406360105146110537765704695691725178871289645866176238418542085651082197302558099667949314958619452413502520568027707941188488908108794134283555531802439282117641677323837877780895029871515265395390503168393980590062774053493845337632333336418521312584216255833370713159480112551523088061527617918932646259607466848642578331530520552052142385772942495700548924271465400999604163656284981862213030991918046076827744705492646426624829433373936404885786341951311080445640631106458108817889128906316734821677426335680292167818119453355969848408289413084815874564413727774622438999405865226965148618672448599458351748843414603961481674028755523847036013846897985918206110207876111735749310486078493091009520020463129690120004184110680561635416626724249604595571114949128917989199918482079158415835758894625181496896692053973393678783746022866970111361951610718999397039690986019813171415575833719160055606558198484624737332233354691984258168990238736733519800992054661691543670938451787742459721768897835055437729156665397918735073509463500389952892777039463410722731723322681217756110275145292916376007857869717728838187265461110964093096841280782094168002904154189050293585615271308015631253051290213450171237573023574950992644531641320169032181543813861405947802097813704229480409906403712320939173767780850934836400838263554386910474165165307105774409407953248807352705762879897634317192660234212030615799376594529441700617625298687287024835171330180422943277528845037555338527729455580107269473695046520227981716571580186137686882982836080783428893992641634971534295135898066070808769229029494314609548297040323937679350890388984746416606589617961231773126391422296159335164797606002505854839112784719061518178354267199688735634478336133910253480343111992776861682528354900465630716310298682517395106774944903113696255532898946977684382375316452473562230247527704215679842435883657824898850906045257959716537523425771355648041479701476190217629806595414782146264197168450851950722333626708572342112370887969408916706016553046456623202151924797123699104840996788385951298960940920964806168888564003952632406358484591284999392847272151403885397975185372398703245389583030762017571771750447397310985712847827013092280905609240988916854550901951823809721959110488708617785211400968302468342989123989517704580688188224615667231639905493987287778325717321187642284520195405518752976747144750149876569761017750560196731980284468594047990281815244363932546483926707900008861247945232491096204644825764185381047169207384868429490554208936966087090111883310281520611684967086816457440469417578551398128328622653541044053119029211315068967946387268672266690976013022356687037465373069114106882820688885949028771105945282200494570891521998292011020453182711620213684870222251062272406996237200444714703911655525106955539176353861587013673989502172473544940226765679215992091207181455847099325989509913689828670238896745842293055056278413887518567363495217598000516702349562686198739091747789512742566863280532493597747963395868505290548202997783468819547615886138347241437334788893614226691668238784763633414786683774835859384506197020120328518210187181420265758121324082875670567316051606168285048877983372074357639239000526489884896549046367958127337322441680026639845937942466437937375550783238256039941743396384712506603466853868056234462592762860253833030318985158137226619860371460440076418396850919956025569701517876959436989720960695262314584528046452382038629964954768633903583371705265776930909225148702768045222207719029170966206009543481891702650463124880480766251545782938917423891754357478125046169864727861089271003116563772654940395724235429099037231169286662084425901824080256883247225853492908552345975263216015251979522573163286270497282691816680509155878113606100706033632197054395644838826048459808985159090981637905343992601902118538422606689732352139471209907947247403643451295581985275426980586402029286723940790729149639774296868561155957211572666197469780232293159340998442588400598216442936873696300136139620133960015196035501776786720728460303911632976510394606681932575243052283088325733444080033411380600396917399108005646247958237699955560920721154086717189737887660501689849635493362782749469642534053553442918434578673475638651725162418432893033202828090674129359302676649804430079800385619034999427388606938155761216767818140404268581801948790470764241806376156001899331298310851767687620719108968826206205170675639694829621023724790730759571148574727875064279982354872524948461538994930932998118296095378307027635295596672599995488061431640227739327897219751799364602472135524236118428866428105382082267502372315187532983756793065715371048909763929248439244079764664801201768031915028811989250929031166110618882204332173177781957307963091105853701504617650870405169147510776476146592590964167638053218350890582242596883167003949781738833601869069039641856644369925135386097067699384299131782061658641797193866230031209320110335436813261049401476544343033228046453932811666816437015626419517054487447356401377651544489054246592601925095397233539216981001892912431456439702344713151555486577824413260858490988082467785736798890570251473324688694809205240430363307286565429600811759706021467933838283534423905069223793864736029640475270412950016844722003649536893739777382834107704620013643743459519350099686694929818409202088238293777602762199366513588666654390495172325508989870297301520370296422021635393945471679402105228435350610633680721956045400300064277503531830121047745789759766235716590083352079495011188746052757934072429219808421033476249724682823881624230634322106553133063843062571002533803246665626075896512489947030413301472243601203511453727123311739939421327377460941508773704846015371282747153959444799012985491070026317981744237678578436756575102864411768890071365437262840601033866954760005191171393390247249755390581848243684236503360081961116813967113777811827923594537575863714100307337234370396227851678806612785265517826862299890793893038965534336381944271047383707730392541742028614109119524706279604259580839913605329978338927499793909792184816114550814393970154658868941342907903730245284553510355090512036343841714814211374557700394947947766095891089848762584549797327859417635828290643563272412153963975714501941526246933487141261676806690111570527856050565914113633536689708443375343508586657910588623109986726253963578229484697487676308155397515051338885106293585445953571258180856066886560842146811420912829903316295460251812725938877429896303009046683817928078061487421271805680183447601609614336001903288937827024418127948106025678677108131136606031323014687190724232280738492921564059780590660153745518233310630282495797937553692567755604699964328705257129671333151407066557327435321844001593026875655124777739054650645702414499834600273311843214991605263863613930111656620110857477317951718600255532520345963804644321877040116333749176611866143306795378193756740353114871779980070963004616933251707305370389139613382319410467050686770180754523333662466291305331550880031135276017766574027674380452218798742028113132923642108344612735127268600385909757393916999724026042159019595986553582454529254276372612723099679490463698399654976632606581485398928711246032445879596242759809336169980658883705541419365772518881157297749056806783410402953016870791873488506093871013618720139190808215988444064300473445684920521700309643398582981928469298353914790489014917618353721116213367134414764592473101863895522077116154795694683313879558637922895954514428824008557944944978124390767410370669853536761443888061537569578775935699799702999713691685132332156609006513656483739322845076479642947124312982074824156342685059006158245737147962126310691944041936663580366873075507393352658462818259172390729163969717994454248045761602573400491955760337353077936560251641254540248139452882844015998627958981292378454324772001328261175496655931835220817085021670435159595785859446847203175111309582579180577265576503817370197241282144742975079942627066484446558165343790382246336415812708896795583110307306434711029467526226389509265202952572200081791969408634746443259592394348742712853414640942142910601575883395888751851448499692211332579364053899387062925983622841101100537954977703967383959325970033412588022403972740604292078775935139283116143546164804120166009587416780869558547932690303138691475251810309771104076228461537366160271114801330180640467380809036663665205698752050729604499905109146947712708341814511194101539846672857842824485313523280796728766235506825463067924272636459543231731982291849227372286363841768048730528386083760750884562308887414547543582854278344337915611396285117889542500571239720996666238106054645295642652369746782207319222069646087035106377305751232876982614988118223495261518133748048478813425234145857746015497765661418137794190783153128905940767625860949505863136190691891248527876860609041726493642635892708855713838850559829907511837307138639139847375309589016544905536784694747719673303773101593087793597119426161276082083059898406763196230623518721250909325291158421692989086520546690643310475929283748584356750664362184732294158863617337324340056809616003040846900613476207980565014267323957316129846242259396820800698013792100387352878922655300889607261569601940132185147327071037748510380568732374859038812932527017558742263222753297310809963969957989897459878401801193761540759161664937658680523468962064330301486423669779116634781292505431719790161776097555857262423073846469831978633200123219679306912745855212139809430360666128375213258652671859090663181921577652615623676020788050576451627694657306934360133462469253186089023592555726123740597843113041714588778317646008337443544272277868503393602957974084272674970912002308604570355975052546976550015360356142685688439614029059921064405041035745524138867044156679767468757964838259908922772150606363160770621264210748151288012992991225734421986315961120780907294314711641692125326558860877926300304345056005745455448069030144279801653145918995765635417505008776178395219223389933493327250924294413141999373071877418887972955073671840045521845275747659322211363130200899479050658813384754107560702551700352331248913797326797809315343868674855931710660689100308486284115593292505979452403429922609757575615880298085997299971531555632024780867507521974504126834647809901341523773588890356965366274889725840627079116422613653163405901722930118571817462205481666928594128038932503204400121474031061002648401002577395094491710793632092347494291111442588329767497375344965481755351155201161016123542724282508794848320022646169247952597654118104054338351500931325017644382841737259116801193304139796537541368355555704226801768796438791042665006646696907054934606209053105433892753961503371772451730051877374379416594232110029757476094417540062365734098145278250645571584601250661712382738895873723118922011478657355534688222424013093657985887244997524498622678818581498391007668179753004611665557076178177643851112749074759231322515671288341920389797331864692894764285766941269021540110738136240672729699138961008605612495935049250135764370957632328374023260991367568044027756776497864135611150893484607953778289218540284460163094599263965127767054200480309574271497055857603009019407422029612174892406399513723744495025805235953685061307400871794670880941070691331904290629129267302957710795116109896672712295657121696709808666466837413437050895278028997108528543281104838646363821448050799192425636681769895334302496307155856031434816723406285733599598079610322187866749563396524099980263650366313437923081529445855258675711848169697376743253927615640820526238874649725633972399717289972556601178444127420049794916185155184249132940828382703969529097528146755500724000897935774325287051077851391181530828220186737819281007124988219201287282713418410466768070596523207781968707052137630816848540696053026695034833215986942325994797777177522535065001661559423550308350306689923176286046924835399251064975444490222487399283221048610212584424982417040646948291655330587531679213243004221415008467745012623499118805715495961139524001863091354052457638728767733868631068674564681237074488402055150045102172052039398084866439184185252098077540566445760464841453453614086721342727662999643774071987868718981806051598177162588145598544018242472510786952246651887522179274296639148044150003705340091358940940597445855853747068552626784067105320705022225965210430452863243689910669176701929598443191287221342786796062851847194830911296707985215658531284190235269717724121578695117830074867114324779200241085838511880224411346258576610341725568793353083610665930999582106144523798468420950978092849719226531735825221964828468884929842608735398126975865345706696882565898192251155456585961185418224092553275931180949308096561970328324760232242589244406177505881179840101428608025715067808424072538724819723554404482532701614171733434889900947823163414335446547636285704723402714887804314156798170809775553800042922981537857257139891414564301440763059854276038823005271367565891362835325448598995764508316214934485197843874315536041480620643282149854788328186389631492200722687024584735204455848787707885230454226344392692514282682972120793412177632418499584079409354271038379953425978143220893268527190427471680792925942561223742689828866439031481296653180991914293833673117881293044482669594440754075986394305406218287591729174208063314849542914779839713025483413299612551338022586124240519569816559320726476381274239402385340888397355995185749712460949115790338545995364951125835211411311241412320343167354834302163597821727469677506522871005988824897937593361059149626508213812702331524270749213424179596649137190883525399578752242188305520268681358824597065480557659636641282064242353741670086297863477240584237519867434964136432218365849536104501581462784941373781645742502274705709873452651017160243465831042319214018413808397468230060440510833249947450862624318477931450556140892014951616845554957684338795699227472230401282175160617450846145988671645894529320440150542943195547834381833709017527657799793580243534713846664300958150902856207908978133740231752296361934631220898584947564850420045637667208184764763402296818285522478159386886006052254133285053318744345844252568198564190455489223589603494423571322231739274588092102901123849314808548039979930488210110694094600377523221425234662733157575350998085406878434726084569319512961689341262067753981221594854206121935242474189373498516957550922284792501289963183649666454746736651215518483550845654673225590519398307705162481688983647604860100223724250320850611642647093374247245550372270323075692968775526804982381970744027332779561524429985971042820346587254019628603113829142468454136933957666582682836863766700467161276965239236055116928885122025480908687449418670878861893766686864301527174221529433342350582496397084292934258968033477089609131666582183688235115718338002847483914667662958410420788482768914457406167403241999880686936940943154108701088563167301402204509809369762357604374027135860066499120336493920839423442786476222727483731371459222646874525153038680447742824088196334961801214122781721363789472701924354534799667489352755090447041992703026271651262745622498236229957046514170366456332894828962406391382552052918722597649179276564805120135401507928721931048651049843120558290326887683561528613176648033887862307339283655334266965073483882937594341824194322734606138419925084330159434519668766166744161390873845119328432760924645150509131400123347469731078794358461028497654037524561123681999494392558227919738447320917714121137428213870262751556199405643617278799582754907647161001950733202680863240653198407962807443412119265036883137845204190843096877100573064631934364801414129459790599887037271162446674232542313796529027673530297742586768929059438971391594109383404255934572324942578965851461944067068526273509151271064670069120873495021031520983811904785368878959853134314409398406978219630189715448411741940884088665112921179594602444081842716508893632799033746213196991942461159736225809083607015777839749543333507354993359351523720436554379681962858653008179681333354968027152684121458525910661884720820957296364013080391993484116965384306014552120708056816482273426869728734360453332796477577351334814424321780029198618665294202213563958327658489326810959136462894326905230184379804984884370451601419808934645846472687589206974942612740984443488128486872875526278062958933271170686738614754435591708405353645830052751779483366293982587282579699054008938169454762541647451800875481321511037701547239382618221800598480405492490878095487842317360681272061583663732376426309720865789538368589582561313158849062811114179157230471475737495508828760170735234571879729892937140579572996398406531098532265259843700602369516538997579375801093786849701108674423929592354470236280469223652984741667273751931569026082756433914917935340815170300688430842574533524111939445435329359931070225907813097871331769926363062800018104720485859651889487753193073751280523208502400369421854772505873600858467315338969722438879886200028232651344228821882229396546551527972230647736161212717659597762670900135068217352457654807409677165489637760936162561465415280352915812486897167868507909120537811401104481571231175267588452678037130296961933259046347019856163881577883837229933783999831712419339520943561638903903179925297292307046474140684188130276836833141054501903077169904908852534528439396373410929261016042627850422251241983310556291477092452863518799268258127170545622524349805502199383499181719530226987296959830850504815147098479783827507997769655188141194337087420278107142620711994940555699312952137274615211052211054989306401783271017101356815732081989181033819401921447939120046357595527491733662212334506601413644144691144076823219862915478654770511516230835478569363659123739764776039935548359341309018329158450054583457993268387849430974001211863642761772966285165387215846700519354345426065666229510112365946980792497932273741756849147891074749411811353954349961123235895029917511051940452771876491585393572427714162823996862557170891312588695924734046403275136881204114415187801462838718067741067740373432820351409951937209044071844672358408957085097317591132166348228435021822192646313117654098814862727151539529640979050605181222349231072695646413444290402106739538598750724544616297299515860007220807411114613271085206586899046192922126118336773696523303987289247449966574947672215535353706589277113033090794380082406601549675340132192191959456639448697278239324532783977692476710825469628643012002505219993709714294524980118874664708544599957834574737146312104101961518272804698657699223490825998826456716165399855763360662586617358367459410853487274519489895539894929126177778058675599743780378613106976725437835716437235695442370976973523847642200239407445815150731227352457853211592921097884432693318190793334440161348521677150660186321476371593222436611769764550042606904391125536255460994361581039894903618351235982729733035512127312822113373063791564127074086142516271334005354368653042934969281953803876852070958400114886594960729900766716791258217642598065268599160964815164806963524009230606411496880274644150050840945549684891898204386129932455164127256720937453028120880540765341463823357937420336325092667379484432822508826295292896561294492157685171211335416234571425184672566857681169367714766528961237362472086105550284003416292320994938613700874948180603231886289100966743626741590557809586578782739850551229159238157600636294330909676677142784922383489453060962804991631625818813757270654261528337484771436117001812106697479311180794970983724521566029310111378809849287772017735917134428253441234269189473745639524226445773373786507291440584426185540454840613998757685259027340545187068217882092107715966614568653108138358785141690469492637775296739518813844273279080693050134304839968188339305390998165093565813484068979358277198719701309864981746334661528704545284377997766765100477041230049283932860613581499414377819786218254744665645384173316783588586963370707166177298701590853622736160873635586799163804658119511066982164138280233654938707980900153027164896502669628278462782463274522928307084445627905661955650628765625172718626821085265478364050904502115152198138078291935100982304747188745698928754238487419904227638168934291220435300255136329782240653382190001746371723353726576266388157347863033621867470764446335453216750163117923342069027795566638089133396561376243397463812732921962023755028469576729923240367099945669031918575774685217222786839559196448972676125619722111574583248104564912070006407818849448346553550277603899724561908414743861070126857539164131844062796196272315394734038417515392423102125198239854605243974392996091125755927705440057916107368543302667329128775790745471075581672052519878260895350169008789799314601559630382592472633227067703778561079744636954424757202449606731378007589635350234210070069458135107238950574869287096272445659808865507998778172000156223166136280448602834300529117376027371870972529446215957597929100517931500692019497778959154913460306758832097794901636278687874119664439947902533304876940876007797201034479244471638300009798194953625987174671691792970513243750319390161230685675596435470929406980343223933145195445759041680302848062504389871161721835232258822206893436314520021487280481804654370207639491556833892175784336252560051576327140787235274791347917321645658312675146346499896106225282786267591810979683137979161800782608064631030117288335430505549869703313521989986713172108189729244428771892929757345995286879764391077649155478490834784438730339760155905438273147760831151352152468305944347537616122752277656764597288873062473842717168394956955181726693155890567395560189765570961935220060371808525393512407922531147503719596849725146756713193631159793162082185211805822450812987580422319429029206610597802384353241343143286510470256267899655240382920502085896941428685018289678201292225351590769811497947313109192543608662510214951295038094276165189614141226131457792478777580206707825800600061337258904460889377138598464679077900662066499340722725897002206001552243158093932870762287406365849843959250291810122687553953555173059456130178675494126265055609067079714695724459259418340627899510457867756185299945978032308911722356643149647023016953470255749028959768923002205056709429083746966363018443310164727546036969321358597660445875541644879552254936060228996239024094592402300770245372107283403029709539847991548325040790342607663671402894464496511967756026996428690383608410420320958513733437077743760127866344947257897388227016603277554886359406313539441868564689123478776042677984572719728752872592220931515493452776972661615671518511709388894730419106220820547544624893631837410864200129250226464100616380324917597758560017019923916995830680220795790641950587471941839642712390340255285820599660169960694323831737046235004667865643591425219150252824374809128794148059127321691550874882126551735171403245522011142377534152726441150787977724897309762442402616324261577065880782927795295549358306175282208419905628985968260171897744738048122621919631327071974315314572692266061520144889044706623857388159435551445877208141398664766201919897214523625528106654946310820566821759477848185329657969915510103576907983039077010540283572474108508044039688967536741739032068291144071877463738319024835727119243768916199266525499710011816118047174167660382174159918794614742733392700707586127610964471562276998945100811354357758766578099388232129101153843255818244819308925077993284447512418121772941712978330945210442181931892051977244589213755192525680048417230584393615392165035487370240472630900298578053524448827967773719850747626254598511211156414419645991883539867803073126648631026854774858526178505851933525674895701084465638821388455740932811117655062557529194268666746994555720569675903921940560438719482876939202720599733930924324315725169041638151868357570112051674861326624279677547947065304716330077659086456546907513553925272639266116340587043323190517257345474355271520973074701730367867532376914423179800975382849541270196012193738665334999384173268193104202059324089751733300831510681927380803744263180457082586158634251541313077368673172752393182833557213459730921531508859819960913076094222964636309976295640756328063124010619744882820622629980313555531145742854800293632248669691908405068775284606687453531469002394058883067138359754793337057396918628425465137504014985599000774270948877579971089403823582786035894649643586626814267881752225331572701603589164549195524391298906715493212006862969007611470915707267548060377964990722898379936699281926345928734184855050974855068456220380987925408272850050091670043829965478536669247085824954195815438925100940076814430422380415086145797417183151317419127599014847296438675017801000068083219419024194680168203598342468909104016589761924370010154129196356107585806011709394885520662987443638611145050371442921103940875031237636972865473465642685086864847197507503703425545351790246916931611705160410779353003459767510887499459865776500279187135579510775080049688150750237619102381832530615208945712695827637118929417726203378954285603675086200903284482309658222463810340658064414499727997212487719969407320731208037210885053938557059311178728691111035546058259815062848244652743015820893586020541434365005960491913476103586369023379996871826045209428545994960330539591688800043057484924623962262830240899172992907024040572444251618876778760175708631003110886204483083633342387534477738458540384444872306116456636729116707800139360737591597769563564338821809964330966452343584524703510387253201719896114704619401118781631397432768320832929234450669158527773619749708434741289113968735026825338888896289940413415660366043796155623430483996757094587227209048177449820488485348956293486572308817430291465174330094441979753683408812410286381432630043252047081996969991020016151268308820333291596823914654951059620085239769932292386608603798070110096471798932819031567486614132900168616712277645593852781237619689377719923519772866253616988232994449635845072699514959581037198173747178916412429853668204797493994180448156266940337187893455689340860591802832384532947687330999276552312541781923070258197271854113589576707418342297963893260434056828605072692933934614394816119707181366981190423037338197764412362146733711327282705854889221369053698780978781044667397733517576679426854025465798210682040441329216815311403742032422620221859465999530448974478875642857761638894507716481568673156799920387603383910650421886011344570445310075800805720176443229058266403530502876158131490203786084715976224250270138584606742243854391335936636969898728242404347363189883771146075105059386567383218735114284433967735013042911798421878355686356309077031426193671306815030451818132139649893608263961050696836468036132167971348871494300105521417580746440428769382797091180367805802479780429562493047572020155915262739908904934530878745294527217465536962128987300118253717821603640220914721160703670616466329038295750203340262023554164559236119579389933399814437318170115225261475045318645234441013530517495287630541894052604952004531079704895569440892526637720172707860288172567374307748931329568217506687936246880408401196946906951837850258793271594172636107226800122537118085736692191140307132293943556771643978253584708391367947615924640139588242763448492844053912147763557539693713043553046842195511645492228975446559747859507895132637666758751607851986223410197740632413445852595922095683558080201316117628968425528052891743284714481961101359775526454891869193888918624804819977477380238589029952273993390010056984548508338562641373915232286793776382958978883141415932459500596965020910363747729157340266026085259886637613587868881520089942572574537852808604148071152128939391419593942941941470259450448126534983037822208919331770198777105712740697494999390220682450627684792474393003366124104760097043562381934528254707075114781244610447833429750432539146850821013181491799520124692464303582362828175833612887192889887429869130963864260566885830436561440189213194946900435486462478675265410648962702875421391895489227975399974993427473198340959783468961594094409985437530931074598292922758078121101460108559908205321499946791262307608032444796590739183518181515803705853014559186437292901324259156940313091028421327055676105529493319916916438274745378463950373582831109251350876716406218120783724298010377006178119395171954291379155564906476416264200901943967097177951171983251107530155109347247924644549688947440323306044123320736722552670577041739775701702380058031235109565516069346265405042383706295791108173506380243160019639976117659795478695251051848980583275784046277879001535000186722585585496337480796457026133909869959080760716183674915882028148350780019757885754697765604626941499466855940742756143521206326266472290578561071150498356811552687963833420704934388924208032138341955481401420459585286657292569891124782913323190703811628856848214072534686441823160958706926004138347334746846624513343060303003243307443961062811896495286940662945895492508842094318680337223444596269756368556434471072395951514679749656671949358622008624634119781794059496651415049756108589730263767802918164783653800612276238537849515499055408619817367741259115546203143688481665510737067632812442330183691458453987275126568853761872671328610585377245264103187411851323901557853094594560433103705382426548961624709296825304086190879328383995927696645934964390252223089797250279392371206069457233987839511999527298739494037242127944037223732884683443774950567472236631201919985932589841910045155668357526357497796746783988103086075271352961542172842412446323719839617547823362079207630579474765068931138159093578095839245024393176648452012564633182233095905490439620839862655527674406972079185523602709404010026447184203100022312280251525342872987440424636837848333562198673082470266808981044890543166683610552209244758522446821187061756684870118029492683132347427504942338925527858156233106952870498706541269391347531672706395883285549910494848202887671100183834900863363464827888196499580921839677982084950822035537071529204987954692996786935636950365206622732502115237334223961823317048372310172013357748568699179773621442340847064593322219794540218853895374895040002666306338070318739874197811604820242884959544037444503356140758807395266991750317244807436306334681770909251156861527880220274306124775300231087317773710569745254811904519413758980868170837501834099396564920813671093528277225304393468351517704668431362256854129306987221996397795667944024086523217511652186180695556883032022320891735815861919994811742217391346033108380534212414430757613901164822389760022085621148876908275466307376823167544878827205136258803334261504663756031248602655160866344537200717507096866901607323445339207582627391720768308940821218694861283268621003389526064570802344250236585639693231717098942840109781664565221669713685479265924030361815870255841271522889724514385481926838777558699170995224507924367719010471683378436581822709578868038512126405518629588643794054508221743987020402975281716622025536893669342011027981951567010154301507028811775413494371299272017913982810844746478011995189819230296876971343928373250933024741136850408714135514185951380849378015566982821103991273776531844856445033567150269121044165008577373771551540667170594619825362695261458539261479262673027635133245840883430589617352136913679634752343764609010113193712395093134129820565382367272321674868780339279398493172948834357237193013581114961139446757303971275465602523215323237185213682180435260694924118076049654779431969458983180185627707709691934077121801474773922732864708302714389955304106454367522749791252103003697879819226133058817958227813785425923858082635769927883038479354746578018147072772469961833667002389634503423694852964963586059573552268992159142027683028681449158536887489693176085305551970118058602322753408680687397330886888437551763579367454424609285730871773363055843224918547583178484550899726965337563876828627544104046379124831384111475796167274076239037381509139674773130457421332151976339111774365602138694253071565670251856317150856464299220820215921719119894759516802266800689386323869110557022818918670650650821803244825278024823329211757962129131424719833838213268891423454249301597432128203634828474087689863913186111638961476619287172431267470206839872996062502050329826039604956251781738393901908826248542749997297997023981032049566667202107109394474384965685941784977803664744902860580479823514537204778341787585696731929135076669354572068044030816152986616333646749937206979162956561331309719146176661390861976392692867030031783935462432701087167420352699303121276709560349676434958270786692688030300149282620313793252555587540947276746222497693215743447892586917428440454843910202715425011288354529916911488410950241621513423059926005158446826080474140225382707994421105711033018433751669299815660236548544026063201750432024919111677945475260111828837392707663742763118565064521914687841579823136222764138533329908529472454699140372618872726855985075815464750154715595506675956418207569047743995659290705160164960303759803123861664701297127875005334273181100339681622799907184486265027189880131047223705956574426297088270969136717393520150913893530508620533397124368517260986842015998571607920269204936049923766994463266913502481337330304232959518389920471821941950554042448841262810156915765792945654905132122462245595516959622727489505880694653441387042693273550176004923172869092684510084413524534709822386604417635287773051756511325838831065895782230994148775908842701855731266282492650836228378562324121929077293308303565711645788564262286967953813480428695783665747086745773921976719970998238224642038101838962074279614561408205004784715388358820336257277211229430408377750296091682682587579869028478293310414506104784534767111944559624068215199372414255556367932777953441373930151218996082090448713470516847954276596104611830092017945635124766192500472625356392648170394695428772375842296240933689782601197758294054290617318468457816351653672038347089501258987320385848838914471004336301224355608748746732468830759097489368593402977969537854072098310243013752846047654543228944112281926830353854991603906111487180302564216641307732538959479268615497099427993654660631412617210792653188023294168663198935763346275580450025818745873987221252249277457558657530772235515506351946996935522691081826138098209940998645144633694550157494055614224164888002116519678847462903444062702560778809238783814846242818505139815163654598227931234767133823041818033239941768167323947916150134508850410487117917145304348868695380186750024911894160260575956592219397916294743168393922800212688385743494281644848386116637474648541853151059255929717918513283598262269187299050309659393251575089309950509431614421674236985601750061001668393404699925108075791938816058601835181623964264514332945131900994954056175293789211851037806314990321135882024585572781989703720292254756432488803518166468376287354804257169066560769255644018214154969217291764925399714687612759957075463494467720914616047353123626752839749517903144276882238423139573604759272443698842629876044058189880956899945659659572290526550359899800219368489000458285755649738098322257694571399966162402210419020083954023792660743295900278245476034658363228776752198062487512651823724533746373690672156015756361912161101678705181824156830379693608391181088512935661553021756212537350258240949996577550720980152900269849369592487736331837885013237147497606738897412423508675800671322732265768448879713983391165289449894774913036276063104427563708591021464505999509533024032307217953883876037524858778349863944161519775424532352557509659345354352564301085286094969262509621397762569885368530090647247315650885317193030770396633170666125063084731755492293403321362833044892479132982716918825435946752621761522314642073134022889970055370106493832263036124436604958897970790413248147020905128735521274803150595469366345357471449868468340184525614833353631063060906682701927762744448353555762282191203999874154278641689199133357461473249800929248905090599525543984354180722585701355251655218856824025588123534818201316058767188877597816124769045078558999365363701596852629955876145799379717699191989275939005345286666144238631578368793803208686091757499494558504940525707801048098989068872742928966521755065010676017476133747533361053495647077453294533986291753433089906442482322436647329889858782059720108926678118362444700232013763549665228356004658041765309453469973808852704021594157768008640646442174668614611537089977308470393445161663199948861958571807667642206220027414137359935154907493070722810842998149717089515827791943283315386535231626391825672945524100370259633308776105508104206136118615570216177700384129349698391951930614990170057959508545437861976068783791625113035777835504612452726275764817314939344077552326106174776275090760482817799729351562800149071305773506472393850044160556138522381373554618266077825527324885471013811226026202012889876643593755292346537648903654810700562561115628298876721651024859816595389389281336781484354945048240881832846018001956283077584600643472098810432073769386946257482537607774831071750098079906939046433721520284604641387525773751116292309620461750966140186567775826921634232800087148900168404823025680160956081851053461818987059073189149101219423380952303593212866748683398610840522103076679491627151265041638764980372937488016470265805881921910099010377924690722612571161403393892218988430409119346115215721532149192190056378077037013749277697088526079142049779304909615536958348013128613071466137425429415413342723734522146667818289002595523009658738398439658761177664287530754731734976268520061170571876388363550756479490689313106627239201067754713892493630449931422260678688439030844060723945629839498156516073873694927923472304879166845897905725309185416595365437191832614071402440630255868189088362521161268225176925400414119498657368557488675783477858490625177413140101010868245936501234530973745499215390978793287995486796157149127561685193390757700062080003765624810867084520021693504058844670942808136705755999914051809534458973882900553098068786789311368431771701484614229743782227234571228377174390576491669892654838267284435000541819231674254676469015678875777376655230373375122107250829626952473892883673527813011986101776939936068019970074418955643813643393832515012693723230006354210082732061758925533906273671941404613660604930102308088541733297205154158651325736165293178333742681975941194139410075036158699550968850540961072670126243839062236393209483099699199104690578157544407764418783268668970381500777044340368417885914935925092551497264446255911287343204046490339007183357497332954493375274021172401581383600205238713384332340043418752614274755759173012148891253258241225321681593659435490226078629788151790498359612352678544240464672753217318561173211831945853361396965062193903899569583083560258322229612867132285671216315318916715553747275480499257847040933884173461155434305956981548644620381996180448290890264203942436612614332033166578622449847264951918947017737853806653013561427505708334401900825710076307259809077159588261842086365443611343764670275269119588854980099407846441789639180550262277429415955931093255128929254059895051530619706573251617780355998737312106281562302851132159922101817563635517003221551829598772717896187808541217789751088008867293439477771882681331080372995007359931535123776977564570108246944428990324742012040651591989964896264803934429554019109860677148613916112922372890072098676630246469177973378991141340279967266886798977667865174210248935987710862601139517925752554852337275306780502372122658230833405630246451107518970069715486350116211127689974543067177425024326180441179742009051296781023548524209889187521746884428251538767335210282766250628688188447363212412046015492350046070146396553544849054072318300463196803436668771399471526637491630035937126095943743213943050635564143076324375768993591143604889931372923627131802417935172910806852957169512642770260137169803058978435500885201256412287483759284316305274415604358487469573318470327717055954988512030980099327081667249061366213963574841343921769265708690781040011660576663221809091832101250138554891456941251662491476481163261867788980211020537458828121629154898326985297571787061852966848879211042805811325474662697490311073618695426386993256702172334749995707369627680626066597533565389416187634625189580071443896599410429199055208386857422487942467892702136584145355592733396604251217940588832388075354968638613227234889327154128146362007012881590642450027755168976693201027008444891610877221059734883361219933598541632123951502553644560362725208988550592760116823263339766751015104813185355646490322360414373084538696199436235741102343334219156921029908034663359286713768957822882216072317226538773929093789865283402518615427172289840210786086175628204667860105177023853533079212513035598778568804873143692715188808483431169912506575594054052418419730532476419563550269289088282743775485594817305704645066810729891195723744458223393259269213227053438105381516884923727839764551095561840947893332833040136333183383435609357847872848176363367218431511051148601307142112487765517846675906735562443242293025446411343354339895538375316650060403070138542276917356242024511304915587427887596308295531257566586808634284709981167494887665432129414165886928140803517003570957921924834254244496015253141379029541039028505888874470911996295366260322210801106098874065825131421376819561928688881358552172351901687168458333751954821586114064479856019979987203056830078594670324347218749374911308698426136632204184731851705670225261351320661456311298804605121221920727214054381898770999585368154641522385935094149650157213653664228080998296537617985735627652239869339921749844517369039835671432952866345931426014209472603596174165740265729871210358212956001885139311795749862184509138895815409622309508744164109015362505258324998527567106890565778128797937327666123426367738617310963024698988946336651759411495472496053152598042158128534274431703647836669612517911429715840516297200308655400003879371684286109176657962873661076607910924849138253374314836925228965976669148466098416826857481420236449813164070384369949501949615005391819115664994600370198607163975081311360071933987588005904158920891426031289330515021356938404418263090310307402682677360808705050626613424180089790659231448453157392975801349326577101838377168240247786408928516264888418471149049240928691403990169006958694442500351667089478341056241511721776573553274830438953427323619345625054679039181601329064176987068087406989232245741611775458549471279839083307348640914500227154386024598992072637297355932885194328009672866731487477026208726695026677435097934055735520959524959255157271180297332248320529228736037373045578841137779211261120965449561574003338530754060665042682949201553015215903048182125408194784233159138241497294540675927194117429416297007048361947940507906845197094921734865470012570789914490210747335178580547639294934037324597956352790479591476361222914151657913584318214460546424757330138112617011631006617478311743155967251232588925282043662434585885152221104209058021832322130915752162299376618590365450753272394437416471572735204970354754024357552086577750448920533436342079239009220260635475164757893280585263679918442155600151780374424550423787508839214573948723835867723883348654805337008881845591924602899851550751152396219009449504758801136135591316072283171403308289370412989197258043358017458522561431159458280510036804112218797240566248053563328460009220009318820671171748332529964280688798792421265180191914995025231949166573466897616229252740890489894550126821114012002723142613103474114881686016323245740935500307949296723805412010209723619890245986601602115688834844331636034577915535827029344369215420335804172483068885852054699294513775010432582980963735239139578269781567606286829323974277954407038161333763082551977749815492095483731952693468916215220494423370306647720863386360670250851480243894690152264313861185037518989743530334912919325711087204138881466972519738027509849722965100190311699131402746690746145952816893745794978172728649771653182260816664001457076851383738489531301006129126211329129888417038202979926313872899395283691423723050970734955019945540428194484523727136805552624009427944768249166137717854919563221810662745695396066951499736007239789678866007413428524289534879697541383469689978664306712503876441993393958571501325976598606769218276936385814255704057876203515941550412898446235632020173514349892013548162807113646751403820361865900925370813673969166438125286682620343154582681959041506303008096064479931017801048181326753525942299612892171869437546397542268735121446300879331592598936469213401925374321964242926547394946529971393842675351758282563445386653681215463288860085251600996452554601201023868884241993221636234065677602933965214143559994906641737990088393780500790124939440694103668671243728470409297978965881060227611312450709559098984598011792923128605914999170758351042095653559631630610480662880914667431696063263956491849070412836574976801778868396786236661854239720175552413986164317408271521037544520614533393963536334687657857100007603458552150426308671683809681217702522986225325567771548203338642345967573087652204338511880170424283754969412208958919510824008424988794390798085529451721038692356135151661054797499100685372537795126745331977366437587563030450687124825451348321738543145768898226599194594380006474031456653426037610170737595601418512634984778163894447179384982267960895402896342179089162441204266892649860941329092244062942883846533847267736918558755852387398900946005202444747589693598993959076231833120337455570937148946674754729443809716589354015303558272540941175232220796556510801351773421094211384921831663281337120333237604975815472546569142664645914100610229819538285386115208424248400926189836054809108457069568747669844884970870100928056498358879936830263271953578503809020714424996451038865635533843761994964939608190921501326287378913964810251393305857148247984503731910485255352229349699582531817335171061057537491369991402930593728338449219616014776022174256366551838583303145521150159019969563092895250968412650587889449246293661904220117064485400536774381046762310703176391209389852993778281779274932666650904476709754040267196938111564830987544914146372432734025458359871338450967475830397122347637407003344779314135420765634601415459398979312661067432954024658277454071538427763992539818753229039867550607798205564259097023482210748337106074226911890880278611684520992036297020977170228339386203677614859719708043356857546694509443737817954047050420186681054624394999719459928224677604270474456955332941968909568762079668859438053170312299633851372412201580917353596039189554357797315895973212392652512321600259409661766282130761770011826438341553185278516156844825184716298534291721990123211575344424186971081183722029173081842895855989316424840769500976181625426198039033693563224280404849001652763767169211597624684733800201758863254263335485301641153006391451398043243156854967446315223459642579998919381989148135946613437112088323789268406349122287837076435368467937297284566501875492560738635571050925161501148918300118897348168420168597239338546839290959958934594919626078131588272906504092437192012267261438675895166587543471847863477029460325414625665654921563057145765663392071091491104316155932487347651781018996900227108709220425369678870679416267082088910341877529301458795144851052586128816154896907496342095448175730026434430325182666400494895226299329765800673120267205207853972146139211858189997818968472775306020324460655779321756933055517855718116896217337505267255244878858591258078968538413176087120507923300528598505713977896456366036403070505312906662960638664439386938717593521201568125488351883900213472187310331471083276814976583475709233958979830964787094617284082998584913376270034494269922271158702209621123304003821837555610508875958664438341947239826116531628662378059834054223502322948493282077327261547731276620328068849487188160490525207092475688834238629210711789339010914500432611889492065304800488263262500626426084786272750313031090187768894766482539641780201660272492863833168724324292610754404098028638014711514685165747948299419271837406836281291011023913712141355231783466839807495089001901990565777968273115875069872064727790907141001899336214320745042688272602605229312686417907924659756260804440965566510044730307895555721598053982223806355658954531067968423464589345913264877167231645487329910494938606892012622995815100691660185978009951518662832199142401157921609812020371758775918780800465077684973739671769226090124796045112520077716329162078876138050012078154080014446705244676941278410626411001286577272202419060095000856369942596603804793999611266239655494859182505218767078289741706510440976768560259618441596655990660644200074492344314048448284198619262617649725779668202033626541726085119987854067237085154861556097746305553455734785345687859702387735493031418684154653193796809376594835020243655045715311936725046532405485990290579826137512139312527645109633963521422667730586919132365751216699772433241454281794715895464649123041250724738252321667973983974335916712154602856453331982556969847034338605369788897838457219631139620246146943020917714063786794946033716240370913652871147173297712477713548127887840051816027392303054049769814458472347953654518668104759230082208685788217176742598296490063415818858291420118591764166539864273677475402691991404868905358133853746480511759358537789887215409980074778479076200095302584661074388548876276194627307885873804658841982966752012872344182255543207235465785117695317225164540209980255356213266922976308142221055661918315980914718085678486591169846281960584198354570170686392696127569085567399769347586144289925917656015530921185618356970589855483758554362712727764993522781103915716009838687467195569753218933581165072376827235291843411363455228270115710625822548569707038885926756779788035990114701584942104981908115721536917475018907311488654409537496057638850987452065400264864000850470934904301868042082373246035428497004140568528757689890266779071574535390434576226593043111355821008696501622059726883097580872799958420184853553133324168613295856646987149363943861172742525084961996722468524871460886740880111719216410382918123364958866144856643017260555157578553628694217669098562239293798283326512160002634921247124923936184189104598956246698870522330506432861030145225366179099900453174482235273217341013595325283041287059728350154231092218193353990512432269061419141044737943821296332976013850577465863271239769475448486061503894691634620499389442943578845855642403095879974378429943043542894518205932949212901519096636315386655514901193733310779437400017332639972295058207032265965198282329656966387096763443544543891782415421084690370741541544504555187758938809718870343566472720343784350885820310396792786725544184901331759821252009952684333044671352755825012208714771838708782309198061982684964900036560490437430086810993785798925354263401280404494441581213660364113174704666850889406828716149110010135621519652591938273230073239609396047673912254435228654711801585516305879050431142105983286972975894716851827218313066632282479876604595340277875445312453423442012183225599136222525842893983913443946193361877415398078650385483437379875256588697334528317034292759300444959785707586982038205692703238394981443560385732051133739151714502485267233534056354114224301056510858834150160477823478859183808757638212269268901574554200035558843080101479430738816273635054529246747815171912539628452970243256041348897401800180422210755108142142020744061723800297542788366819588830213345406248880026326797779506068642088293190826333327116194736165712936376095926557583130016787446015962504550623343846367274586711227351234567388857378588937318615815457318189674564445211374012759849245033275943024007851312811375004304850928850782771388926970266953562364506965547232841816315036898571416837965272474100264666116949679257614545364896306860665281220724056146249821584815633598760042317966215886105746889810237094907896308167360501429354524731213201517947523067492117545648247979432443250520787499391293077347781375236893580428930909167658615839233804825396326426189602672920574953089551785925752674556143633573237867412500925604589688131497614074044074887422284834451695950826558694185169167851345910716579106373344548942955039418721690740286998648270527714106099409818808525690517192705174244615571639956284488624932783746322656714361482758267572065087539285652844782556172957912186494251912610055196726130182831260285301737265518266013762710519807548745698567233300467847358757692858603960191645118863114270493631298939154100485523746445145387194223322925146503158635898560423957425059234837062944444240092160994762141336107411378287987615599175989143141700412820117623350417526101611216514560403463548298852752360839597646857653946655385497261909043342199498384092408408242396525767654676589661882265148612749049250497798552139839223933879889663492541556629764492029451986287440717587710071680088734680411867196822625666470310122675423929437263689859933504914396632537659824953770979876484750889066312935183326587965647886619944719237144607908028958308112403837749907513574178831622299884571106251893551452492951914327710800678823748566951718217326662683628721052442736086696593266804490677863696369099647773390325866142187084978702472026289448797572510918594612672159846047909522640750471559169458701398654079697267107011630433866483931774735220867688657004963416881221373904071291722116897706173508281261781934909897683795252235965680426470884227457770950436015623213276958584078717348436400682545709129362733338943032159113413105951626415875323479213522443966554194766979924326546673024357892901481939772879870859550097913443931337919773771169349794684164397996381473303154911594944274906089306792146034540357656412394184752831026978019630823773512285233556757050875180210254309806489148602561936028636432921794739245478139043580629417240008310899756928808005135061998118025195562891643521278401430281891741728143659474547836937745331651217254587917658888919218724426395005931638686221811806748540544583095961355005438776948902764616886966295716446941529234563662728150260221576431434807623046311057845684509840052113069078253400185735720506254651338657289497494887804916142148826411434592467909106417389054634566415511195103804776579457559374974917621931848266396526503252159790768308568792102593180814375081653217310437288840762937138441033412385440697619817823368857186052773517294392371664134221056133051674231871486808300277841670878701428317371256914046910873226930862289927685002025448338214937936710487686288007977474151691723973451933916332340812039229081212462865236042614985349638702747030536720437017742397752371301205797434832561658629508448130755841611054979794867942036070824631135142964706535558314903873115430258430080347075956214198483467347721020853405299536182939079386149625579071309040004032313044342848960314241231614849018369808878853979292935122726117191084785704286081301330924190898129387496928743274143943188609873024392784516489412107749515648451228628248040791097047415843002778711886775243281619727781573829543353260663089909218544151289612250195502930876856079580237419994666070477218846106732665468180668458057986172479522423399428659008091486732642585903012478594850671308709411678993566353353479698948821687361306172247295917765191150868013189967555161474305574292724923736347448399698918231346188075663528736214828154455098668203066325588158941356002334186281553968332796706772227741470820829473502629370797841845753771588188477373388415336251183553366347575148926583545281022930355566943554310053070018829595991522619411732550133860700968006129576172068660659541023065476873442119657618140316658457105072856758108032302669918750287499031059265838056864701422125777486925362010685838529604412041957542929713792938817610370472925486950752846040128397884391345407252757731722179316854289758761110878193912848888477966806848170909879224089745363991110342578646572280742330644861201260670088751678388142901663793806372953223882374069803941066625468446707803416634554882555626765910954751342573498307950205298713592033355497411284969606299604910408354279659167870430706956885956469396089056910309999902473769703743467859017077232897108790567534442619916320474060203791316437510584916615357891491056233076889357524672537318305718224405286101926429748900252220177142785607942823138804179818070184504720428807871277292542390372921312298280929897992002353463582093093618392045695951249134669824363148463333562620738268992010430513632964775208534165201600621893009967713887799260667070819899770980464603809574228976028919421845126970400985415264171369283809929489154632167523599964138144997568636960060847419670339381885992243567418291276447192492609280421628848861579663372461560142631019145123240656173572699310751850429747768365518356132493892694997247075299700152621141782928244469987388650739973251867360341622110077035591974323285464958865089001732595846144591277181372224643928848506116995594498714985848017110088862804566932764622851769549642358226057340765479002809905266233348255168343803235791338621242058278054543932906246884052065151935858379710793041449042982011941384942733241609501325918407021178275811040899748549168442068325933914084068769472661422353360966030559096532766306235149252709471432432082975226222283730475017265515830055750055609186949048945409274720776275516721336569329327650694611004574999908188382359001445020488898313025799855924063696132974303970631439717256331551917182081065862396477183959421162955848744585258665337827181566117353195096124973302050100806106158993275226427162044400938669397581674061224690231628382118776521344364415981412335255176493971876949961150021009585961636560691342373765402773305807747910272588050206508012145922440650230259561667494680730574042741159236634289854879489020353287146645812609346861555221868459876286757517960817918242454447314474615874703987258635191311677801655488061566353543760679428451912325339939884257791815486123227843261488781479144665577122490106574084615616689583289179935501413735221684723817925107521265948592281903848285358237528752151102070922511883414604118890467995760614259627901340603438013201202783081340228768613011791900958642865185463039966600988883798817221644390391816442529292010763768166537383947727746797276504270305677816597212929047019172238809756417915699966289421218687133942900104245565494205114744299807696901679697287951718675462617146601074897357583169930450331053843222766322720263519661899321147601122222977431318631860516245870028770965973535457635523543439256726994305399740874236693583214377805710402474820575518659524406663995413614332182191763055921902906485890133529486001621101271467479224507332320218679357239858920967436438234860609858362218420285199865667029793581185960795221859064187011531959907275133158095843286280132829985655241061667630204735282610771604860377809594209304923784395463750150138194410673071607760384908126944516986056518216514915674624134470348697175413094496887950185362917375784143810075828108926313177582205856612012829277266757525545433978186757714586290480106103508978119451229194646938667922674361805461652820449462798379943388715779696420773717728325360517260378638074059920858174497354268383494637891303271412959559209373685595300131704469138286743491856630987836780617044377836530409922737122877803033579613859638421539857395908724624371281396669861148372153136575015427587559984242641514520543165872501533663976962943391201391397247432861100865120653716171453276508867669783244490048234996719667397921373299190190006469035462720927298880042430896775662921504598712591743387806962540109954433390349247007346206763081638757202176136326202833677032124963247614072393095070762445139913325357340790688315396346247685009663887928746641144990314169311392905705316914690434785549265409082251861874581186375562222483505449396882155323339169545997598709589265631767112072879805497426312656404430295563041483234235551837762137517525209803822549451162389748183430814675775046284988544306780783852289108382746939202496353485865221258752692484540380652392066742125151425924382559189106581759824548856743963097524937219361980734268320288104260023720512692005629118224482710341557058843985165800971614954169807200971453775734607594060365130487864476551562661698730922303406892411632227352302031115617557392586616179018135913135710998525816165410223176155968448099693902375331193438972154565043604978882840312004084262846224172184319579941829647507638407030530015799716446594658400617719227095779965320054231771791587780880165398063453328191029107974471214342200200487896889628860256631773727779249423371680459902098993170584581846349137871349583341093560522496934136620491742710887944310540312689521475728617157307560087356871874581537551684446335431398236287931810422291036712477595342924420138153149293643771814267674101143038776150579597805723571860246293469404023535780658860592439853429222401544665351708934736328698039312986865728547597357081563429975108302750879051707480818212344107560498025280453149038402010830581616314258001659220361364135872517349960626521469920133179290896183133568970040251330912171070093404532973384912080292987850827856078837548527267709463829885414318673333396367898433697082719045553055257819137536862909088847672544862736105465518994356954656044549741296396392763202573049768501371425330195440730285630598807630422661436120737772271156902193361270631089415686200554019376141044550144054958254802105761254798557537561277592119725212246441137790974875914488467813580617605445219877556839850933357834052496581711495452473614404517720396476658140237343386480881549592883529115018112260452132968771677176569605852510987438873496554030556957420947146731765320356141315589896631083229287426865605563910354306630317496282408923219089021272221101502093427324027913299320094129890237095043792343912934303660736313202776079503538748348120802142705909482248616488935211835233974272086433796430681879560015277365600855432536726254169184286680462621786600509621123602164434184188336504848579405952479538481434550141973383737314583211635219154463572774866076364250928750356557537205697674030517565592759028656254025704383312203884588912622307510653672038621236839516441259493410168409668467144975479654874298209773187039301228151310960499354614012810795715638526923137974508364671212851389174488256218178572882967257466926459758220893847193281137092264687507352402597101828764490520832809260400408253452315189873566193111786115736014575594868815796146850132794764959541593278603134327131989931085390581534223188776801353988508530259146451010998669043834753748702952750452110864196598636515669805438068220660282882897640060763912580427547268881883572109075448104612391310777817491253029207282857822282811815328286148778200657240005863815851465412947111647454314839196561086708756899943861280888367381733308035873007514732109176634714434768533693077924203851700354117209258801529790950874329429134428632185143243834305253345959830205955135339991039294092490594010442967541972543101756368930711758129522947476399125293790035870708377062905396986413951589482361633887794709819329195567228277661372582243518819195392441802513317996966563796067664618454521098331620261058970315280582290413619429151922487010050180785518468902530681896734815537441368981411064985810323281952694487137098285022465824992072907868989630132654399335950873390561901005085592513531365094373341565036485011012619706861270251033906650617645427629656458670315459230296712468995101343942148428975641564522229505177179767310992213827142541331199352089154951343669551746408213555965077262829197691487387705905777567248647938666324915850600678309614731751993088756909479858972595261158255450094122932958829972172819358523374546797756005037292889434729267020534926482280116558371276981704967757169378568807098994588237271247126235419899043103934221207525455787702082457728337467062963932360115766682819511343032301291618576709427235828445182094723526806329163360929985828396918733768117954860094999861998494051094776238861879959297984296647234518263612541723292970005468869194076682347983707036899041986320966173223939187012084086774152700426718251323047079786838387550188034146420853726932039091743172709303002398788803039995959793668620062882314588430351068900701802658638990429839766619381224820712286829709163408553639460802679506163860705333674921363302928519607263079767814009206470744349600805616264102969313592516226219542225440834261904614417941645406906610102332302641581281604105982729087536159555026314891793528618794460995255794762936595035134708728691575477188029515286383984085893730125687220202985282353374111565562145244240519911188398968798152411910330711802715888827302884752868615346542860236129415638953958194731038208091003851970510712339056719214011839599066294630403867288049222753442834541178725334233223794553288918659712037365273057885898704173713655593506662929801521415170332852484575131912253658670478920566237990522256020346115437501171078105854747885939288051673534672893957598543247994632645771819953426905040945162993624250272284274521821161074999655447748266496347978025664807869499515616423609605843993162236092251833296214541333100013559754985958694355069415656720914034394153489772157977213357744144519968673944045352939248587565465718155601573771347327786346104576609293629969966789853180225711974365571383144592311314904418649403251354348076573013300106998115954251936919686051126071668566992571594629861823279671142542916780480433771262380379174541557707342382294399964871270349510137326394685404062971912825062439938899625082392691096579180798864807773071698917643203014154461257589195113610800687390683133241116630851709145571008590100857745773928557061610755615552081231977211126964077775259713393031344837824661673799897041172895487567002286620670241712211383852572858587279225024818933403117259349067505728599845518472724324269925797799731029909587654282882093157557148176267313350652495817131030013625025442441896913280919309184039672838819721199453097438857833583668018366860648667894248694035557635049599090843994224825154841391574111232768902630086431656303970893308551266216172506937559319645293691521052996852712204718420924790137297507065520839875322600996064495561657919741550844422581956538322075967373957297156904167681160010577942944353283567079084544098816791885074971537505071442754472368163624897302141893379905412757934319054893815627049062392611476640606130864488486960953492494695119933044546360318234166759562791165548393811637275373372368399482953231257145249774945539122215137637553456527514071057902838054044631197342861101784508638725592892496662477004245942331152115288638153572867380036090987157001263370944686805919980925948813380474468945117603334570146422195614295491531859216087708338448549525776806739563414046493773024498389005621075955654196300131413405380189288591284420500708067761699603456879467443344042697199754284889899841167174763901391676150097664261237444728163857486270160671296814193062105749321510388578333680337322496740202497357087331805146591967543039634132710726547616639620607583821437417808107075182492173128424778720799203535174688795887710662243807270016068335714139115385803900089787818227944670763749855717895591326447677812542104628756036542198269802499468460214447004658564538457382935745730301086786043633606291545739739346069886054553022850849393592060937080158860790435304468646601173789554512647518968731499412223282961486322417060409099724091408535662664698563071790941540045938480261693163366093793600230620388649254608939866065959786607910752779306270679470325964053033341195680622514206473236980744659373409289106299690341659668148840616963421157589003252294598942720897325303012808862261794299860473958161821112999154603250113882126425665542152972616725112343543915833566523851091504798069191999482180321149460198676445191132594099495958481943036157510985395754880319752422828555047693381379599366721080925992621007626999290116216067485543606978583857834410728307647438059577937025419732876141099932878697251238739017331639495871403569697696341551664060143715951546876691017635960264859100808277025548971818577560255129117434873343222579747705793684534138996351252583912900037411385557044419960010660714034483907997163433312310965510134986698853409268650393926109786526222715803045790009486676734655113236508507515131292715243899621618178235541910964183910359650460410428540506324641810945178779006122472485886152604587655945440551999938167986941396302527755743613388950208578252794041310105379811820797465132212641825014993406619055756711290313345338371309707651345882453607021553113375881668751118196641144350064258644790533461243834191711334691261445642898991999377832772290567209720585938361007216740440181059560889763471516774063379410240281749312006905499899469097703234468004324414575955450707343707517688093648297931587722104415347851338480075979532440616572252084081237427937526324015257446823256942831576142231508983542403324246780824282636117219656653020348299088288876893340484064256393857293972323520058451034733645152165667103631784389699197840990333449088526727440008992558089094781598167531070022373276430015336615372365197964886137336247466675835186980537454690712991828098599014692764459320209431118959288048484402977440797965745237423217997033417280353681155652728410549915411007552911887492916335084317375427144764883243018811270724327666247331473271722396602574182329204312999983778104589283610906351273749597013339240639097071776358453081337591716445899418117675241009036501956494914718494996590945027862566871278806861915265478725995262017651733453005320446628424952806532288843217088599421316211375090310090125881943200309367612633545998736532570975476595273171106348897423233760683714751868742445180452348325128082933001000335748603325032408794959434591741425206781987373248091686257836091998764659546177964081308327861575412820425322988149610331401745542765671194622456022457977092699130882782871317747603163187221391813945792099673874306807782262292037272987189628425531274408581599401617157759779737953204638491614780165483447353121695385256604020820875324013847865352580592236764526279083304582930092477860581992811199906230353008359349141169509407368903405399255449005050922518789017699343590036215588324848754827924195188055726504208633297231455327491112602683796936132831476728725969698851040185454281608965150125165678371627759454648734531601016405595670085792531948628933215489858894195232898278445774854680607341824888022314360173607181592601881129848370684516474868212661054087419153667766966169807034726344628921500845144516425781213877065720041289824579805033362857502879800255167740747669603400094987887250498199009675325160090997173539058160928808164705752259033233981960334682923087609225836544793118420442597680950672498788386030215136024226673031602106599288699149657721687371019854876302352911581235620662092560689442365758733457006512684243931693088706284280238699374606193804101442241162753975534829547281853589892875606606938078285104381921512203340059463844524165757671640203218353467414871609878483673660160013368836345871587477994040187401796898357029287683434061893375580361925829595445815840592475703495280570118685874439222830986213228298889399537098264278643981353573837262788582772305868481471528275006253166469542164178278883571634281088939440075553033070056142165552337673462715062318608492372617778463186567457553487073273896828232746842916993575358949835380757308589480983730224818444785102632152979934779675070910745016064454457552047084253976580568951540047472912094386329429617856244740295129307457885820054022380323294274880984927031557664938771011434016626005477111039972670863888517489592727180810169443902680331314929589988264024911105974026042123158951629441250804727699432855572978089651777584260899566062105798736296193285277247801268269217046085796641467772851263246380061430032182533189910771685475809820163854189470052495883426738716524240845331326429409994348265045277388585501285956688157987162348367851696848033855140318549481693613000977812319739039789749146372165783177912341702323887419667210152800520651784003101092711863535287888945826442762314153014500070874632685882938054117681464128880566927848041287748961565245645377805769257943631872705375073885668642030146760650564041191379771792357885105835629128629885713827382905966964389601747158989406286814883244162394072183151547107576393444366908143494393920002703740487629987022903894144959825254960537029279518162484883226770694464505835203970265853608095928788306929049524112186703514001628760329103955929331715033054846148826566837276342658643113054338533835072738193785312526477253300956464410898380249304920911506112106778458152845335833293317551505771525911882121117816808808059650560776626981642999048189839226112868175831557020680567256235068751300286417121175054762386097279561505424884402810753644229651988783873337007900843841998416292296343445008990747378684361985317675391409986318684691918209314926074642208722518690648762471256203688235709220033638714705976890117171022085952023196384655241669674131538524268640330528158606624578006172593924594104888281999851395308802972627646789916694975612506370304636948006455668742831388149254085863066495258369078249967879675543525224568981466928493934921727939250270108110070892177309677305719473754045783587347568127450039319491254282672565820018210959328847149684802784103139118337356107175321012115472431756265798741487733624397685030997072569779536809236452881802121353153595821435780547548510978304189635003673183512993574829260734450447876826629632934482369754246256298192876673175371055188578650510371022815432627366803741419228128671019646562866054069782788917793608090883406933340409733494572154274458838912631014370851784988839060728181215818030073516424102281901862492057461680448064536902640450670504456497241515660534715978027693183396687528428999883193453086256602998580904373594518745533717378236359880314915262627329075601754251953572113646536446351835395346062203666703556164663642837907914703377213522602615492776981235015008508132300754042069111688794477438543415035091206618051650325480829197785250360002065095536227528812034986348820210680458610627843384778840565231689992368799780352638830955592484642938769590618293574499875544797955776422573789403389485603775988761339150102056090530181769337411897562250273370570790079384742913932927399487388715295009044118117877383775556849805473669088230712937087983964881452142818668114849299652533670157652595765591962491421372326707372934179726159142707006594456611370566021964163005160353118061406766342828229799533512383583510618662584689250433507703393538434515713833582069816940537508307994334916675953218867453245996514949622873127038076726026077006984671806172521076549393951161073210948304706134642373452602328001160756399048941773316100657102992355804371403737685590595417892793329819538144451768264857478323052134090481953242937997213222672691109279171358722915613126702498133619202836923352345657468206207971785104354274669783857976003146514456255444108273642327197838466995329666657300893408225866552593521699579685758242830403363101690440130448213256494521421861170932443247133961848876253488209067414822565733064868143900929540876622742569290115189977483377480747646729298110950319612653025933994735824116192307800310609296297328932299309017052025801680953058852492642493229768402771177257041454552548044666300277494811734463065988303651436227747059731135796541501125838419461853752074892693650516686757481177670699381233219663151503684258127376561740968033944599642487057580979807678077534867389667803465260754057513329997591138681550531463049805698932356844981740058059216077953192389420750487325506305390331997449025967433582704815483642263388803976824246387347111616779281144190310900504406200485389744490238369851111691002062528593325765032825729619341913636148120267444807429632153486237486572144503727758276302760650945297052003982054246595847819702559825046107656665999054399187144471521441037115362493888557320155243990007050581784032604161012882311133414158531883956967800393268555316712161479657606280596128729900499466291856606511123205775732936331377677659239746604888813804794820428465589324005439805774911626522642051662773098739531667463030402496633356071949477427019233966589404484607098308104831207492485994961320501856579882351301733789348140850098705479124063740793121337040619764750375156476152616556062719228490795399897072947466940893545303704542602322991722174207645361166863795022337571057543308792544146029234398259839947422182174287097932032655073170311103311677701478617798920224579854096068203067473668522016578436837368105974869750374479877758669850738974075160788331275539248844212883267332576653612064689528287114568850473830749685983742897684807131121626098582603886293034593996608551334153866472512997327904306161008882323699532355775458275829587888366142129859204542137282763799198762665805138816873183873647853882451587007504136809823929609587948887858097997937408865035922609429429015126733045446395194094838379048691821035146009130640460620688813932358287174273340025640573144271491069275083905971817419748070150594173372961345558370199812085893938951866222982085109210801836388959609952794853684557449259037012207555352923471916870692139256950598000196884340934346624577635489863937190270063741952168663582931340601161820429826176052827725560754605698848126483985905711938526209388625240270775655429531243864123219552773925827375903525332976671323167866429470938238654118525567859133287305557856439435137140632569161303937430810922646606546878883185740699165158701871720857853910257176143411582723394796734873769442967913383674123208022595824153396769019708142941345098580429328750454665495934466582755163418179949851392976189795103709288262825548278054855660089831247513598737914411680958076719897691470723221942863313511008159534608086737419200707788787002450788079929741943932124674787101808745197942700245754494089334264514263076318013749002229545126065854310432618167051610655958063568012403915417656772785870898183367933827235172550663290512894622936045897165120883106649219399115301362244896119216785169963900044139724632853638377011198506131064321016909488281495771745172593956147839719878955547735239813290189315417984258531209359460293860033850053376576573002929801423109818707887989264515932974739757723380933308340224073121016819894736089717171498748022291215888363703367962348864936115790891932894717540382837905780180099189424727752646842909749328407370353604716028598445701749726218042141837460405152114494091609564009296507807521480359668908021936555627199901642330852115744805459689078748905093816805509829062633665023844269851025428312083816876151333411158131158664640889709778242920737895339172717115948300990348130881664826599330306929277803413609590850330051303283120457166144876589413999708921398329134632131056997172919529241769478280588474092704764522229101467803963033604393687934519829563398690577135728588472226533311811208162507424942686423802132604237490286776888525018877540697350146240645291448956198208185797417966242118563703411901822038952644006509473874987533871335355577581361101682016047540782945585841233938569458259387919474806144181269938073085896255320961376636640871653326623081389729340555278465359775146523813021768700191597228402811840784819288401778205811193380007996935714519105525909432544975581293046118040829207477782315672943106159607380131664892383098733081350707758149319561749948426797223988581200130024154656565471614875952142730168186482877273646160485228732514644514054949057297837914315548802306691698944685115865865030932537225791143421998596574562284050445143096656604686761566504742523837823303203564383512154784310381224178620663912493638444032760966385345541747162668020109069778256363035704297233394555472716055427326110267446344067820989047877111306271371189857398965631288821813339589327768224152599805427066969042007946180805363775927031817566013058030582587587866701483910588262628714737799485947639112291354089600399771664536399655355746638666323694282531557117641618935477423989787956477065956175424841393482207691069169170691830264817396227035860422941429776733786354242626331386321491334207843369478812981213702439908584676164413275568066120940001838786678840860970115876520268523545173364443955303137933070236534703727712270029635576913066599117615939389909659103920210930745131010860404821911086776870517955694007593716563760107674231701044687062202183673370517813915324421029370217904114042078953669706487407960322768250196400356966797706261078308482154331766172973305988146514868997870817289332406819122810960461328043390162211419645963577215383905523907348752174829507479909363739383051083509176383028287043673363531252154721608526884423963073355829655718701998088676291832175292832134017824419826913465677006054375541478301125374583970621482755970475780966057958268292249720001426483806467623040916073036249673294693702946560665513901657812331164823776691109465818086531147569106750665117165081172684841512862774165596453031515406114156532534208817038074603105756047624321728532068535808745306901927718264742994604888452898511728933054806672788627162425979057491469697020966967150923072354706388053641904975252635236595168060770010791693328682769082758112862709649318018496912197418293357779642541037723769809649323208324358681531120512954828893216485207446436401151325833941191066383469334943391920131740221042610417400438319897734471671798883150617913120397404589302591893011635951179387933035661950506089300589694050473338854572620670894453761716951825122674634851389030057035031735783394161265303306694034475721447064780761962566585933812365238934576903409577982099667758136272129553663514515501742584369265692127537307716984591517575919049412768042833339148217519517166750450029384529009184816251855356324666050965724344932490349398633683534504852428236112992926124694611508551310149418695330567184019651388002137294753077849592868713138611187338266915114560937910327901240286367632066989195334530474653274724696732135724071223614924712058923148590319677986848942741135635192602665211884020065329779905284394586342400953013065946381065619594198197824969040875911900490860522472956130498186011412929751233869587638864583358293190574164122977792606984353320458357700734052340684805960164237731115482937511696583792390209520778336563055635355778229001246078992749146789088779226239125101856821857965232649882060016249361557198006375351254010613587867052081437582400066767227618420534010371509779669086571125984881396859391712848791597308767429375205647549792495083879392730215085717395189195787954362758360281301408642657761753079759318861542256361834569256319481681731383452554866735314854106942350159414083649270994756234154716441414142943141016229736540736403425018167234769357952009833307452756080330922716214433029275030783464539657689257475481868644420645364525861100855218591895991841278382844720407374758830694341804183386604260542282735257561117560601251365921140177570537169910917551669084317657227145525839286719050091522244505305411864242662264553833099272227507538558602491390089842422389190606099432346715937312519958614640329121303431912645377659596636718139815532258387382086919844339229745927480508256882412267928246235479846484677780535678995290680104392857715786346692370910527602586630862789338473305110967783621241036670729474714906710349998916972601601595040606252630594138343419741689800491997271872900065754404774394186946435988698226895916373985637157840025255166543485816889283125954431110433071776038731439032817945865002631854849402025471410716707282245349406020810492375303876845613201077953608457936092190438261020951454596151711757820918780721177048469211883698270084293377824390892911820535362750127159364792056870501932327765743398174755085305556977715040098484341462607726633216320528621149956030446577351646378743501490496880094210123604195693235477032949445076770868655358005112681115884492738101939069750099465211320944412871153810723445724512031756400884462398499558499253700976748275691368531442817481081700033902508707855837478166781812524295851604193034910308790471266486916667755873638503650349790453021124380796620388715695785846265351671507415600905579534933431082937648040943004874557010942063263805994626841793840697326151344460041256525845270588701847609621363568723839985791584912301109135287797369744711765647274842574186400483355318967124809075206013463868307677870718792312207611870908747631673843131561218313321759251692967676339368795953498811988031036638233412590537067760212277769152942695013576836454396695741703537416416107771049605955057886739055127531167913678929412522531716726684962059787470858271789055489469929409148675774400001407731010905398944135001834019802223869533393700323857291343621664260551824560517757503340948554714553166153211404610958066461702149104349302194114498157029078654278691696271411286500755549398198351570857638226680065123610598092190918400973346185355481487794367920939807319083185231709226892246884146532964445576558984435963074580326231474260584411577402486517076699786401543339996624514470508858235684270748956263293207318884329466053201026090986325679171442266727272084465800352859655098833264716552752673225778344500202144317869503374654812192338873783869211996471989184221101382787024700109933332287056328966896344520084010792750628322343672296506467334175159584015314416932142377885395053757188439166150676283999048035638587060651267998569830975861063245100105957550535367849182375699081955686057372451470590543606114882989884469920525948155827605435351243258775462862557783278609703507350747231918223796498127206737608208726789652295566518346144994276386095274918729898610129983503749794186125637862170380129452500064420850502647779560373362168077770911875039412988609653429842766290546634794907678299610613584439197710620586058265434230100161053172770089669504984111175888704428394963471850234828472712195115214913203871882357702013827604148197939622371664623587512981564842514025977608022958856056975091237770295243399820717008373877890993137600314104084653054733904727786851328165122883959468514263470573967725297323115241687218953707445770485054367499942946271698522564976920961781541921104851100195181233195524939312192310464427238204036709402388010464889341672371155679337039945450082100569869611296848808395084397611532176681899891810124477960334064457898836969602873039088110021635779009431949304094853520169322690503499449706283456644634862578193918687180758861579415462980935921322149921805239776815805696041992440227938657513965520545991971409676806839086201100019172899766888020694117909218611343130421026030209718100229373718860537679347691867090537570405767159071714267375016592140986667846404890018944482916268188535384388616266107098325047297690484160858532794167608836620037976608533879909208041262955968242652947855932854429388925472310647927982255254939002626395385784922484293290010009092862150614036443823810855481913965551347400563910600644682603131803588738073885117518124384480256407027857940282797098060066024692361024675572720169043045535660567747256102057462685736141937322881960514403444953471270738200604126245814744050009392517221738011498274972110173484998602462880249714601165117068347445499735252954856325834644801953646854381907546238886125405632622072634219472918517120528917149571324041373462421730448662918088459339636127129940337945792432930484136597526362555741402211574634359674738741602376550478835405598510203589974817675536376631433306753102348134583201048748261404912981666041729151759009462452210799951921705220706651786370044594635916347708561916636210975543336997478008036142543221128785496338243950873757692053346192502130893067703991453626403902165229805952790413234077786542013744992299980189201152773866214255481322638615302645960432758317861234724995971915299885592267795753425187889041369074982146657410840477348390403814550957339156169550625581508499577707539491938713903339055223940733583163784905952569081078351769863126918993561689987856127543924868364036054789010448509091225438010854531724885111061898051243126204665031053288206437923210734416701791488801663216459900090529938416291932851614407273150653399855149797249932888204238500723434874746143073668554783521422870742804313166411149367293760367248868310899042985279233114777307462387899615331353710509589248040822061809026764788776351842859832773071676171821701984134170574746518074781672311160580503024526271900292328509326727373639738561956817753209081104051461625286224083581416671173236178215587852014674826284061567904624898307478031898650635451411741781348109589090752316526420033924202618725797326082291555931123913158611394250721468784281173207832519667306261263212925163592590129583106870500962041481298082995165154058690743768293427749157359650824012600991009081956156676008701165699380417833278048232547333413957854483559544636158581060770958722566730915850683408403635202756171287903692963691566202270607216999021411664130426551355806653783139671380074667816798500680985056581863010554071871809455671795398710691969957503511041069240547517652384776634500807013191156824441850979883233370726004558704609434445736708811868967042902138016534601130050938706869845780366249909093230239819723581956621642398675602427141265849451600102434764024719367804582247646440246886507042683804199800846138198404137611655481978832524747813530032076889651114799255699192066636540534067343232534558085045155661640600247825620942507729844890188212796453511103509855369337044749234431437384281646528739351839453292452403692756370399535001475333701108899912996974257056853994934759304643534221854681824849282970569362222153728805582817874806076379241802916329713524562447833991833028136869334240693968661818968949811401852169533761676902948624657543641217653248841697387234696319031869812082496974392553361524030548371828364153059244382117825760314363747926557640346824662482152695362812501013571163441859051677796653141634894939143544815852695668036187233627970333614872461528791661249082677223905314116832101458239773756407901729187865614398357715619067830967602446430964288822805430879351147037195467527468644856889928402992625312843909157549339014472667593985746319589208793478378922470378917506977030410251584498154786917658454693174713856384012387434243037622236622212013353442319507987969935610371315951965032771141713489698156774268818888544086049850789375999605183205783594308900771780573779058051233169176908544424819128989437720445320274613943607225268377334626231499788045845856816974875296382205423181933748847817107013496613513606907109005602388047624541132441201778884110072388366292188889879718573796393901520883069202621639529998090707785059543566455259119021385658981953528360997586626827092619667819360786488154639862026418085382105027248571994410253235665605813986480521207085990587830155611694834768949455510407047644753224645790512703367428342494450937078318764676159279283233800713783156712771914941401291221653298760654254404811740495351147911626507969094333522135791099977518217487082780679325045379426687178740218212669885111763639463376192013804489516805746695820586998605781951955936650519934436002933062764028229928483446906396918380801914130763031955964561210495666146574915879402104130895456139086166362572902757095125242358205231623602681904450281542395518240675155694277951507750114303739523694260759421635385450685625756420509354556484926063109462541303606900342668798524276201958206856068072683499837726811004407145670301940077226157971570310732246236793627005646646430532073645948314335893458777372832826879294697060706417260326837144280149858096673072119220311522603141886243141096364639822533748787032451995325468831561503435947811387210083000104063487743705386720071130852750481214802877681677388434555780298881048304710221234743887466808398613707252631472600886492077511575104737193915879351169093900416580779269039560537500147995587369313529334550663609325567938406063229516421735288409165981227451028712686689777841536081214618569708356048090960085970928156987700353616683365600855785439666707727032483626411691748416896461913831664031131868317713668630275683927760490174384557807467282629129234250578243375451469606473369033468072883152691851580789464395610459504630625886662169394962723734253454393915280371873449144103383945898761058249776207921086928246654573091712160432168904312748163922520243006214413457880663202996242091862435779580370795498140366039369181169267989203405803992987651780913643260468100872634662555415716826594639351725053338005120881547044216309374494636699968561795566700206676852863400298808309103039478379929802961947447656898587780544575396471990301027082987007895752434073903359118355582551856510871063818726009163322028456644657130386340576458229098953796881072530040258991247368860672357315641371992647648084520065623182009290527416927786915144475240070094507964760203524073301864415654238759061941941205094206998174631418806443778185895321482799303382157855009668757660413279542066960803141717202381891458177957392545642921290430276102274514678204522725943439745805901294019407002660925087455911424761646602293002244839147178442072732097821892726115044885385944209089210968444637059065232757179854921085455462588575137233419336439236861146205216166999174414881077577601304751833770963939144661934934157819861659192134210832433584155137114435355983492409639221568930215800400122637888833000491855688859736995000508023295430914161123055063557391369870228730224081929845380180517938553879502327230937399459313450181030961934079340182148362462444976620055039958350082627032625081506930057622507534971803949733387989788375268495314692281414107227881375730747503195528859553920884752066391814889789468610937088544741218668470956510906981281248484839632722200630354967429634016941686256566566616359499023974199501097329636375586818174085903052199342216623480818528096975820420583315718809983640463380682810942014343557453180758747470048085877926444175819826877449743335074467293336326849290123197123893707439181072220582206610600560062873557264229020579010576324528238913585488824275806501576410694114440602745380539883363948310139540702803926089796188872889339471172837752019830667713601564656687010583386521859615866213553092446255565944942982349194132000967282109144351669736096191703653054776096629826218272798215057158525390895828128349609961390056406859380643893995477842153532534218261505241995357805233211594681469208743416853869102312006553846571834275320327582476138305404835536420031296056258878052463077549777816423994229182703773627030980521888177432953930837960026916964581038564501391965297537939875054815109949300052547525602270827073369641446770629854713612319698307251333581259291935800320174013023428995983896676016015937372336639692945435843403296002152058207859426005826838415113040169979175427182916379870513842424028634412305285829083695954817409810294960574839830552695786202141207662099151957640076352354748727836686435322345638806113704988726254697941641214497047207868691279210985547578655747229378655078426403704807615567551738481348043924167210162566733119154472232688696767742449472298538444000013020765296882139012548223405443128553380686941516157473515994615837134936185517293743682219870182702170454617516777184109457203874736783682664427178225557878635386427860530230925724347827604610358162222593556076144672385943999639390308530763602154262699102212479062536827487771138490967986354171020116937737288079851312575159656518748458609902840405921583552190008769628924181357028716326383160546899632873564811777253096831007456462994665080707653778657477531835013413364558604988259918079425766613410405431679886237605559159853104057553583959344707266180750332057117469189888628684052468096506359300686580863042546381024930245232605282231280286550154311010963072735144865510896819992882281455583127809684062123137276095746708045160420541720266240013364183286680538914420621656668276261882828804148569859044320876710251147201393052812300530371570566850800283598464835473607326219280096698279046225594035161777169084188766990050458810431070504366587969741450805049025632750413781102158198727583884392422464362374303454403039757557481756868289690194920759736677174540949397367220025749144325449047701861930530083495345298872657258310941150351895794262522671320909324575480111425728347283945984942729562027779752654679959200207559766781291113245704740228943863295089487951498943625172786412616662777769130032370596094816903386852344179121683898019825900347787877250662081498444761014297116552253041983244480521809514446822271656439291980373590488724220333704405315433262538675051355517091787288358164704349459860686331202592211582142548363671398440543964836518412066207952478672751203674039955325240027057521513016086987885834361919551844583510345729770319405362216584103494425775011246066500175351731640087568086818407657068827137417577991138720859872770027897935037806434261096588131383055170817266776044523556680394051111143202504364516834326528991585747996879000660406953013090217817964880396887547686261252118036557480797652178578588861932752974772762701024373702138071922392574877255889487373749419653935037285512029390090714320463810309446189997092541565521165039147453969702220203044973186378630287669151561961683110288063228213047178027011230048556351806506433750248330767363297163458120664042459503613658547186253754773051047955799152970406389119048726993622235732733248772278955456979689748796446441622983760962096639163999515696407683361516888531358054881340639197564824844620799467193861362837283517715698230024415732872151657152745595131465407177521219471968873172945370965883967079329674485838292865444581592725193774081325119027405294785449383464322616789643317141624481740379058517169305666507863896994424071393197002882364994995218780085670206141543965825580461092118021467380984494012102151683966401847765533497850648615186368246652405130576320568828073497145397117727064875254804652815131894657496967587230329467771500639761230692393099343540550889620989030719002347075975479046976749701942782401615112918387076613856763221683985280605515488915661424606708979046021278213728383336528727898129354924436717586250831789979276628733906889700409501408396949327203478610957947462995946088553719633958077235519375973738381529646781803253425747427807890440081848485413057060753603197244428097190446769120899324872334716639868521549208908590394725614039706096939171025456533326510720052707198646825050307461272808323317087239434020450495800662733252462413479679648193023739669059265953424207128904999969992041122819147172700637980227920286530192171206219517743028470098281531645081419456047877241306582663096260779969971596058933362941145135143794253285515581200716545169652209856166521985177621046719218349019520221394407437251100154346092349092762119587624502583925470713045032680310514374932213599170513974876519387795174156371254305777212466727705893035915059243880561610248466123342729678822749533021883004764839472583259521213369937213616053192578615888096214909155707042510357190825062630341270093167054225554714077955905665600105962968090530269004677526468638845526751387786821980200233647969472677865398809082862582248934370014723369507489891257386481543224116269731960591227613017065244939514340720038930814232294407905659689200001093026363680251810579773304099986686077358239873601262257303769861124507212808101340008096928458428521451072213355328498916431023535743984423000245942392551724331349227820664661440644851167024223464471533210528063330066643547807465503361469577419343066707682826541371013283413077107985022975549711509931836555445844024446713289207524833371252415693527180144436549592357544726708209520276212132697221217562760341045049130778126515425094930866449049895692051508195700531475548706335901703467952884316793078302855953202528506243584929220715728111945448496297955146391356568699207761907621216951837259657486671560106372102365018964652738580646937341415856177409380344658103672444040851943888659056462003488167318197512875044894584735552869659347373545614827185898052521405371088578467626362295895778785922137950147313125600488513544975411281628032912807169531575841891126184524783830264684701463630641789401275489397871382995193278754728747574977220021988399921398342641265288918642524832868534912286521301834608952869961013750616793566182520677159630797925346747692556753763038849246391479246495867318135615675086035306329897408867100161771080766485173230942720640300852216772610575839481666226912772981824965807643782322004938653300663407856845069416119769803458251425853200571001975032833832223040555615023507680634343860173551977446643604324649929362449194615720926694706986555109758655597966540878349262125734041846115648651819006870447520974175679104057059285893076332955643194862033054477484126300334405415318314104089299245668117523585279017493353919406664757726781195203041996822219350148813026812746004940559196897959742377061166931363544601679967832345316482668808925287846245157279707278386204333438266027790710093738315513134771304045647686199511784695484988430264258440446227585251283902221149230076969459337480988535699235074701043802320360113132309053997442811462459531121441897658242240730144494521342166816551665315622542273303494182718841674278903359670480237775347876326441315610149790581441864165982176472332565515363130768127124086645373945163192401799269248639008161054607098436128586076328685006331386086443394890881850194209937205654759188249767566484502484409825083365696811220997539109392816133990076171417933856131857158080790306045504311948947160033811876532268415874150930418260875062044106427490389633395033458315064360299852449146968248693654845332202194417620088573632029454005794402305133658805106924392070573914012009792927243340136766984564817381594504801487660019670981017951707640238973181112622312791952414853657765485826564570852033466209443394678337907960748453202243993690924143388234732381331138201732996128215771766137155955720679101514545037672962905267912896309761293582413938768561157174486650603243720578464513469570888863757126408406509796372487671341343240830223544991109448887194442636521674455863874597492458812426735731562552020823597173805056786996758895672748593114604081805113969767098245561651613987489254936496312334815873205463517725065385380270491245655234549826725193119387909027590337376744476766149784934023063319730922830561453743362462369512981409651784341471070715451773106466952175015054000136328935676096691285565564991535286704854341824043835362200555127578496716405864278549493060157085333120486842612666111108737185702705920073309934111935659479084017185177432339323949039257896954343737394850269675668438675209723781202806903938512479229095599113400105038475423980315711862338002594951028093388393662204423859222774280611802990511828939368395932889455221334636320605990202164353368709681994320854078456063130884113164249530475567027887899164649887517661764646430801861963397332632795259082276479960625524600529882182452628767990267811642467615964389788996080884307070373348857339634948464909644253974384175679730903568875952340934454462689216706088574656309582409579280720504681281985151775845778727138471590260943275055798364746134078650138442899743095508211872199300216465678540930503856657296992537424170749101219943304618159319924123557605234206706419842081558242142940069543159163594104687505786725910192801817092259983404560813418587390187750711471928543792093368674019443607722188896859119740306854131496778970583781285683605195928926695803406678502070954478814487530864331994973840507479028376928461865756784449683423298430966669250540130987593675791381766503482959581935981615782915117290503320641605793695047289034441578425105516738743485438144390143183392851218955837723244115621190917464259468121642389946704163269124796376188417268734609254725701603067533736927414252666646901726642876967439044748507397789973929389544142446205530612468685936969342882017619806668002995329132689669898665298172933752672757280265163745769786258617492785184787695297078287707198015956272551307482111506599041300207366046521597319886540203996610704099431580824412122636162819357489351726030043460767501385888680206993424831346017082644496781641797177707017731138858468647155156634882887486354050493586887966643139485759849922681534243471595075325992298807674633178804789887976421532471723676322635884475747256879305699095671349620626468145430407739854188031258209303127152763478352704986283336727484119934414312453899349769877723682064322878878047482950002162357539057018987881741643115081077645171566232313587619555853755680081837978410128363320993208785441096513963142565591625680457552154996216133301559623997089245750710115842870207455895533900742925062904511190480171242910783453087803858972833902243275763505915117522506464258886774721968221513985865374286406964771271718568477721202346099956181387246058067280533401888417907084490647202203100580166516267138049218993893207632304250972318292486232684759556312410105124115617772166179373606041596158571196437163458164514505041620965509714522364567255281423199676107134404278901877012387574332901774469535401568274316026623605254681497849086579228082089876502272493002117685994996002844575168318034845887394125732116391730471381084574264297753839250739748851869736657832466974773834213284329475217101719626552301550373941338121605146407003796527773990168206788987505331834927439816888641609312254779926349639404679649862612260609540942049267514446508611315278980895742035272925099217507372663329302397585538004089635239681695440597763471714361401424639978829449133925668332204827244450530135893079626627301278214205561804470778943290607487399718654547122257002743978413564713994060403331604775587939504394417160328360036380436915097315867311268998956466557546766002342720815698149231932097926220558805626648478908945804717915478201481978420950495615514811019535957221836608073593639281675171260876416546971692521387985811165909778065869286122951172105723892105263772461308190746807855361681360943817584625964445474672781655188959270543849769068371542874907704501961621812051683090677844593982536782061099091811375983027315631488163047352414413521922951036502644103326060581412469631506344905274486008215107035579861912399692850072945972496804178765969915017753888494525386489319781436602509709581335527407249890632404319955799116411139198012308513045758910771569062230675596654565792083660750627547320101590258761897310370372251493675978716239113051896519583237126761959604471182088655932123661988974317921145325502153300307295344147265611258656924694275374965508473037146359105779159244537771095663383545900217098466667362656753788543228028504931340382513147271516521041435629739800667207397778555900113980243370357645628580002776532361883546993945044786861116332305080634054157317586436847760700891854977709447941328145816074058049790834898376061632287314537475335544729072102834079421246778661209263223129301705158513095389042497250636302898637625981222258177512411344426532957177522339910672537160604348239638162477453406662709494216425073162164235597295220220856803591998364317622029742007915435117555028499258278468107103997654007731789404092351345393679073268598962982829248536508715032559968519895366593203139850021378159826256057075972863771058372591198524428957668652584976247143299376977687066246844073273742609340679911840071295802547343237594431209801485166219654457963214083852676905919965810084687016814152560363622383939936881720667853162038011687997343759825154335263750178112000758998706681759490080960544129848108482358284329119860177898777588102641140257456989056684787007689803761352616707973554444997540451135314469172129636878089538615084101931837097960570104012564139562562721156404393900119423224630954345355894017798852663682636678335053297084938910981604485564919989495847451233232706653410428604816950689362841290659690906451067489106491099001280249367168367391959599742420482451435090496013454190816849436232805418680654921689733396778266313912256425253852928601677548913485357827775848079472684200693945293112388230357559541455672277574841677686375190261701262443557491578703612315128663535928838818619622962657560673920352984216337984561104871070598684309853284602251630714249557114120836105511872532995757189408934124152958621814340682050331526120271934039408112411352372112962907990659045623195344155757612612798809162755853749879547254993869689410731338870514994911567648249861945362929494742297556406073093605692242127969627069811197181960717728246307066076323561076707128517140491922738997430350820207655173137762225525122332409276217101229629013053950551466986102213836561495279801239049143009646591838272756889942431167407678287808450735528838743828531125229729680163475047765175989701311106390180387901565769712041466552042263240822861534062955918020127592847439818481589650160006933272485563804398589403206525393880825263850302611310019821764578939901369604022917556092723510954068237514809296835751129500920480907412542406631421496570892605757199244427110344081287974983758840711756228853874451244272420996524909660600617618724481564714741365153207027606621681541720083415703026229419200004607559979107925911755232578181760202706291178710875942802367756589742176819454349090734029348225833519792665772978114971487466450305286818820304980321825624583020970137357979340319166238661541436253917375228179563425807634792016790377555506118111524737986468065519824201445728035043818993980653471605362183096827692379730031854565249825275590726557409892930330156873285337200380265068650128744486629144987471142280501026989950779206292844925207832270951650440271205624580855128852407082574594754745391466261308781982258415293390047961787981729242010271062057289350443650178424575043482072069384078412852166769905965479346538767677560093444330898247316402964949070612610133352841706733397177188350883965872116620568918684603795092800839734838825887348866984476991406977714141259647893701513036247446967980074727566619453851220614389155924483933777308800582296685399268557999559768984336971871673502045982794439441621454984843856545894528678818086960596242634487826974504754898643009888897151657431671317564823731944798155674441856177117315440866680196490243467271369645291215941957753879042534991753246436303010376030198586409839349951773833122014357253550647123768755108265623135160261220344343142994901315994534846557402938887497702380152555261532231133466067023299625790246415375828994535283682586563304179486720743366077480624085356796185661037583035818404783316387435505024238176959474397829436257753073466421014776542602953149589160088982342923813759566338439099196954495807608329933720487540673660353527839897984355952651455459899068468059674090491810610492079370529810512528475994482177844313296838973567721604121320321867434157496893355973223212363726920024660300760475806815802663404201495069385095424959828559545948389375886504013478456092585858734761249572018679589961840453381860431621568182056036601269687769452132021587151579724532483603269978940616736780297848516638926029008638603392046411468913209151781543510872848421069997103950278206396333761508143728234852027392109067559631148884790085857113320568576707428901735064686693591858826318026965051062521249920628932922998228051961506980809291772423122250979840087948104490609486171343430210374506508347545188607517975659450223858368132440660414991917308543809959716857046740716483619922439855682638269048153594701799935688248396931335278504798489445092467264291480076950297492605372647723298924058113893629240869618749168032205831616185076387097488257120015301254627276413174258490713918955883124194041799748161801566300293691834319120870931967857719883481800848626367507790427797113281664912807653826703414873212271679195275016429370642848139409295226565686200546999360631238003881157474999026651579453288028770990315616830748037456196696860338313708940901901173154670886669641941533505128399703449184754626628700060229668723213465840726632612873497248438525448147220472914663955666893197360194804404100593921450674336045006712808082754472155814715407935700215309635978752432399396731633628501110716335864339665722571254372309994322330293013491536975695224372042831392326346821116062352107088301727577299545153260914825644093821756596508461226512582513589996446031567096852419750174273327716392565001358881072788314685120187469900541735202323063816516779321280345169201073714914999013174246344138490914207016972851228405787454492410199551132273699950713413989306210726719288064533297615119606260566784706471791385368470817876768707432333557522796242974995692112288297346277083184301000477548616679003789454686832234395285500584677721240522496829457685731013530167738730087622995196643204404705877349050845122843250088653991055886542609611316282685141690182158889208316549095408400015575448711369996034289191301148240182031886306644106186328775291166952108258469812744260847258552116318579575390157649566734825813528978165354646050664574533096457962103027074628377221138234453847815321397000213756246143602305183684873190452054538910498734273123346221196244326130307322556840763029616914336375780006657715794040512597643036495313392534336795905044845934225670655465563786912072052393714130908953087346198533852764416055487521523847041090970650147723731309833290345249587097546426192814521098906794301956216717927199484241277199582522302155900454925511565784481838999353279478291351022353564043132533996846387560932048110420536605812652813606061264875299416765110287067150838716192101960527984537913809484844052251674358553164817473884202862158593815156170460391763451175174976657393831141516576645490297290243536641339566359295542439654155192857573242471712252291600950784998934785061209116274397795620981713400089988733383909525917201564117782738613434977934637948229416356486302723640711399705948552785728902299850865908729915484524357082491085400242421653069450510784202722532736681113935823111101590580293146698180534054916211981165791028495845653680879205375400372579758547866288691666988328984204297500805359847597960334689180849918337693846435268797496057545663639442589230579170468463164440425114284690207748416977409577692032272726740027118079294587695178766899352599697635125635337538007997220826191200552315888054243507700073017938323966630746942417633084094738297420571705904514295818703975016814124774208991097788932487410211422194302728909836692484268432893914974275885724438926501408464545809352878911505427388617700217933124140927155930749336531793296438701019942047937699915136803501739127424765523558864838135622090145902269742586789727287059074010466621307760031299281870535611164354836034869109639004826702540871580503177032755883179697267435332619455597987749849686235085165326327297973047710109099991094153468237627410336506490710425154005642484317035016179979292795145610332315608694184466124171192161768356248247719105191354334152183956046944290150735627397500849269834282827119715031380002509386217855384935527090358870708409833415970503644067404908885945747609618197400048552360190355753739250365469121304506934234893879673652542887418221953430337152521758465767453479169108970039168878305211725772705068627453622160224618089399662659094307089627164285786868741237233698645172677379783389925764406745889846218722603590665515959553903773617064851529804769369865310797424631230132286811778617321945764752494409269614211328458158693097011052025299637126880913323361345784253843012917558696311324889954718860123275757404959571676666215769420301482882558393233093808840227358946232547671839545372929858798921481701360443370806731362310032172997089077091715260792218629755687022751803258199450508993200338330481160961911916288417334723668066274917390031471262759089626912674695059294628700990612821571276262095048085395724445121220715858414154012356435307895072667048426709846085856217892181029072417018984888762082504503015597559608502564553763724445902960878604804956412370901943202873075117742824410666692033259073902693023363988462402347196363839655079237087958840401025101051212902967201013980849517029864388855576622226469643322353785206112633771810601306543401537326391528540929956074009145079644164801967975057815243527906181211458129558203339433393692201852202488308416609389299974835744510069133403776616573330226342686481986294210578225893279837064809621143357129088398748512834006649072530677632404283766813427835986347821099652170151511281012029617580252001266380801240428804905230118585672286833468720894751047096092579995714988019337504040227718695101306792641509372843654959693249867307916765193956545336185549059932329770224592626499392812871167253173855062966277560183641360464105989788812859947976126011508754054109649686837390325461813558598853139359081598923860432418161647041894486950057648139055297276910758725203461758554723414247961567040000318858430449432521900211345344141681816606031656959308208102316699041305002109546186417483336758067168707592779194138077362501097190165638129033877528150051250682309395964501350293267782913976250552586724786598876719444921685563456510187021588785995259951276436120651426713544590666232973709167904575068373231346242132933612189266500473572505262745112755190550801786862626578864180567386385490290199068925775340078431519513192688817523027540937145600497184256107701328428599760436986363086613705734967938988570870521029163877653333219540201491897433231529593262885344846307263409241899033026581968795521716891601176089903019383163429128895190671406428016535914747035049717499836774223323764471022670564313446400908661869348390071840151171766979284539754707987674840912399484409943945266961388058399502080404541043843944482886342589197463219172792370442565289694240350243386413024861039837735803778562235847736859447879138811703187810134553779257428867637658880948701526785037278958903413438875725796313147875757815856965309868924201699912339745819933899116074396021940878082606331596425244911963275548538136088952926093687133629318432396747331685690734186642004245510780972251395809450084392557786002410267344371165056731731244792882273485384613208708535989684167793908544097014533893724233281314313285751083785665246993310578705221351888674025862114628940735471246743529072066985761793473663939425999543682534353444789572657707191407505154515157022919254553144506785033196905850897745883909341947892309593737810924394897370660562028722578712410314386808746391741488209701630431014268440282014736460626643846801352748566641957840021805901175415571477624289556547170699525122805366452014993010512910526717767849495829942209012512177476752675764089354951143299406929396453700464813608251598271072397734376343466565708768292481006778198191024123878628563852861206316576416133506751874947150970903030989038945124092188300687598394606971873532282316248212650053517515470555583801431012135739752450305357965459601795846046927513153289320275976965520241016202717801882669234877161548013572477797849248674831915109637222665852414398117514655690373688061281317454801778116133854099826310677796156085009779314058032699268868787924014074812159211684482576066389614349334241353181159612198484071406214362379294005904333522310547534235639871241736191312874225401845443294753206108480897954185059590485309002392900693497855660679782151536007226439339005748597677405338375001549623554184751305956357110295184614405861595954167053695187357149267777147979596806702561612059538656569844172186430644636074443061284401924482954985776649620500349891025117161345796330981949151876600295437458257561622220686654842246378591965995777707082873173797842323206430638848120646943425899671661227011865678323007000013667504696911922866992771561970551700317092805528729389634980368144214035079142371389916175245511075835700018363143403977316903439391921033149641526687719361077330151727703444448860072903295472377834215483493721727959872930642324369472128135661081006663257817535436364912760102405670430294726662237552323866415533716816347565301685437552585417839051626669882564625466462521464982917359415111642922752411564592109404362144665269097883012699207050620125503479763751829979052514116244133568622816464434917768038920980488848520283514997803836733385915631944808318847120579521885166518773357281009662943373579383317715479451381808001842785097373698569932820610172755030896908103106669347005263849082570536338804193140914046611498655820513588204660880859668566230304516009512912648347095154218338729279641418367044234524831396655945553279714957842521310018100523857394165166767324630273683776079681609141238175715717387671964450749372587796555281872545237695235787742206936127669925396100370986565465134903720809547887647011836167894476513819056693907010570744494858651063153469967207276669011091601713676166390940789059446170966218613131079012478595622165036631703932328434546599612829019491101267870253127394069865113243019362938011078534202683000952572728830161501310230830267836055652514700461719540421098525455932499948703779013386965920598957333584782617074310151231809760181129358048463165028571155634860254750856118736762989257706440994606249026531663536802058474722391413719748512899586093030228856026406598252375027019140223705424448387866196797709992177318054705617819260535054998047486475514462771980475103827933072716510089746783108446969993268007789009191804374309991272434872027407776388581724385228309521806184385497245202971986471035557387274169574182851756732904438843298543262267756193161117198608725289084745329589295702935361701900692070626403172401832953855090128410998931942313281423594222762995200832784752899785591126891725337379729787575535415828536384965239044777472677327100720517740428228139465772181592916386289865237801176593469355136689638909526012218642766224654283202107837181896712810314310635605180338414933907443660258299434371702683726165366616862170050360964808497374581628482471522931190875962247128021781369497755259068651419859284145557462184700750777819508839459853525630889098804938970033401936442753143389158535629427833136586586345962275835978115941410103792976111979401278763792273582476786138030815011146782607187329363664597577218187008607874264236672555008284534219344344543332686211228895718972059489356769615115416094824377654747508522090308976267775923282931147865619018859850002191017926546672381949466077250756906575069549524342241310851147738884215502486741902309584284375863042547884508494774076466056424615702340183430388947983688247873032708752084156271358223755293633325864835354966581220117359467828567336874488907088447341517660352046078361337716886948632304650188557508932547638819438058238309023725774438213408238112222676753486367944422967321634235372904017254329290460856816762773862989844962651068288813976406855830546691349780090830685074427338352686399390435156269385357326153243534829407784834465694101598503158770250265137511810938505942726647726932827753371455200083550444135410907952086297962732730893398390657781914948562583647460087863301129244477219500325606898987579665597283746409876630442031110379503103106691126033227097141448033416409820026241102859328065981810353508140628412859935129543177113391499525241265291900838052557943291401108954787738551416434387498090582226207118774889154242545012685191349991298485910971873515579640761988987778821104097248867317495596357615574623968158897097270962841989640083421882309253705679864864919164052180387998670183179945261915238429817440522129148515349621834677507402472931055835740087499198688636763203310277001109856673546801934908200115036217785065846381417424178669920636665840547198712308230887096735424492734374294007637625470487776810699754977018527166352888104964041397359212008966521261322224905999092252920845980916181634773191244286259270923586721819297075314604845597941666253274336071429207368655807922529102170027427857837863521007417364237899512179061805784528162024012851597966733894528407105406031496502925348326521456664903063880569084867836151571176865813463499021947129077755484219586250209631115526510111857085489624062181185341967212375845625761253508342796854097545593091087887204653214512392512575570298340679126428093896487232834597735767467006629702531901710933871839406155010975605732283303947367121530281741192412651895456576710330495823966415902321665223735583611491692664240160052867086679252969104550527956977407845853714328880007788162163779097964362303561837986605647564466417741834292668837310546625111951842641236133834811615117299600131546597552938819649258039766458721132019423258350529828857391982864725457061998555122624976416975980896862982721436127679262478339400004292870755942343379956648492189253627436865249772347726595106959652043894120514893234401328434950171735715592481683312897102397654300407575721741347918540217342173695605417835437584873432882164920469696410989610117974870940124424159702059457876554870522104265584576490562158967904865112222429925621077606629188719575777140132996535828590187825465490085451981427628400361305390557752242791515155229541084299012181800484516104637283382852981677368372598435950189544168769811432516354464690955338510642358546409913788458421632727995755179003035510866466795453565105321005033043284897299905902874493410705914144455879281514181239091620583430533558697119865166509157127674936588675008464882449865797332621062268670530880758879786513148546324411425041423384199479919425311167499298117198427032470259569186600878902951761382435745318269039448868661439806947654077799533003305727267898427606766850903776964250658885675717831050349654822954551104783897158442882851173839689181460048110781015865213145553957899458573669196757510663368603524028272123724205766882249899490468163107676713311406497347482435078710359238428016260862483799836635134287097574068104328885569076323923200997541388277281537539881191010700199111619706682426499189869530550520610869012919192847664130739933819091824552090080735856487911939898258277747365313214233258630407648638113602183197588417893578387822597648743936484505763173764354360132696273143942371955754463790681775121730993911263827762048990409793844402160253353474826932259253969804760712327089030583751026081172824646689103555648839167466686873772344036878553380729675194772459721883263872752416461517650246908703274225296243013055876589817877460441354522428299896162622535919006775121449839979394374258080149174996066973308136932518893833607448835591020848941660981994374381893500955406620223239491229862376351683439173209099280366711246201792582262991604541920262174882769169885877917045897676182040182862885607510241910135483022525505836463691562883227743684768637076864255443934662761373278267732985725664284417769031166384728594374177823632879778230114839474857539060133304098530478131928673269036797087989993278114964366069590278892979182797041248482970756082951987161063419473263724165005736501775326982482877465297679400432855050359188428646900123059248439594026954711672423024299544273098324542029516982488586730652431500520741055027195435245692023866018435358727125114010562963791991030296741785141943273177590800967123054235489312445856642247355580414213821506569690155324699568499378727065832699273465979352850194984132108689119512056783691950476441142311923000870284086746836787722278369096912740260722761488275188796052064254731631880279751582130363466478254647522372779868806731420926739047079716602678463384357789739338902349119762029465182610813449653175774785584369364659898855873894564374508154775937108868959077629752940056563279583417172869573460203789825959594727211444977193958939933783311068668946954871275819952200031246820185609845552570303337573122150293049886978561326223704999522121296943699375436058908640852764569138878985745824620347835347257303834303427351922257848813217313880646193594292950672822327569467015342694240452195924330763944099010687482708805580771408147179537952814819647150703720606049404599047670146734286035305359121468677887531222181330408158121200238601899069161804504271517793856427842601365196094380643403098926131834595079694841455943426135480268974341731731386110934715713712870259464609554738854049472214259654135111628758430535777014132442990819078574376996260117435924748891151869392428969229041086920952325361317424119585507970880861878338359450938282174274356851106136970893025209531346075998996824266334955620078451401292478840897511215839753519260950619681819976101105877150967282502151109968431278538306783812607037203467742270694231207933216304653660443594762511321362198621521889519707955765044681948812698598749097690077916252697613823385482380687213383146650236773213194238536919976315770599867258632749579075190784852920648734448633556739914981732606845998172385894310163615817760007245744428989642096534080216338809214996411554530682660921513259900362449287655550597884485532891201084136964104323381969851977989198619675051664843198783773292563751933819533896969647637548718741738637646908180510645397711557229996735370342986016503288983342343435131342509630654713016200634914798479507106108028361032209471830626625273411751373374934384961018923216949785877943588574163380831884121470514422725033006576240586109614480799040981278876479920912045551684389219118408093040503539146519198035563285060284551170905815482369476726595729615310175427032300328848418650285412391379318750858151401163124078705547733331648998810278919711279602627595336296054216453172463358927319558997583488288712933632303035353124980055521056685544296863886431551761078616510082252643919327048869536577860319853435372368688670814596351938978777224267017203734879874965104000794021698780539079074807677031064509776150452685892365564581142498949153757260014106808118929629311523736657153407914692556807786747112495974327970765997114924131038189925135073237823491153604913506900451190729977308859702334491512685450529256413379581436927647633060905293031862653082045376952759004947086377589493757227945204905295385770747999215383265027570521015419232800544695253127683337479515213019323396790911349664786496275281548958286332805222652748915997619752582588087025047112895718343825462133523245839044292910064070493458000598389866156040304153535689998204337509157513237611128617381809394779296582293898390127180635496162958670242695746435178330334559528047160169057718831915417795489799630485177974092008482402635692134342235504842534841053102821109523696084236077893838919733832444980452090954500234177678990801643702857913570981193263212911374753828208620932024842754022824596761811640541933485303232115701053241310814151884141770820939226464735591599148952140834392866208285110432485508810345979292433232259686427338320918768095177798110240936697931767163393003950236535903500894995502550131561216826774710961488495653347169639175187712337886393319650957620446036164682679632447367550816843148378395467910116521908071502350146878849670464285441643354489893012882211366808088103075952652384494139523203039674266270423487728283905657643640108884650513150100481597760789146258581061489721682776402573263820247324588723469217197581866834422733014736082377646254723415507565445345857720069830331776686293536478515807483996230279451356713598192741448881366297786498495634719079013065697066935191012307195399634103618421392479192883219359686130469602670725591738982605240375151187726274367279315979460211055057755748076056011533712159802462115592794434258797247008093618618353658783981327515787757343792962995305332753974132422909368570711141922575145950666011961974649494539731271141883153805927150694396260982984051229428195482266899383387298717279480383508502499015416772447499947523622784126836737641437344980060542473966598852740658175861864223937859252016103846541859094443538981943791372100953690001860672835376416368777399718715944766481252580518032169449990570830025291493185815907034631809596631980199637565754152009664612823357414240017033112469333886955256301857213460755422175681263737263518740172470488969045326047293604560965408600193679288631765598241237201774129410676861155141616597247374481444647768755920740080703049723045958145328331820305257387069226380451440628042019791501564427634329509019141463783168793578376487374014792442812858252219328368779388813951195283952532144616771848562596311884647629195109661609823868894132542998746368674071054699322812375625002923395635004887118620573714062569017062110839316713312037765770188002427824075291376125156128393513337431089347841659399929997335481444858972588541731451514521950618133003329733821308044506760503982766682739309467860681946345739622921794341740649919317575937185853989401831996466184315198421869021982326414960789254949152816508763940682026268228009402026201833471580891599207077802826170797174024002147338014958639471124717759448263995346422733443281905239908772751038744808112949104121822226919070993147318023840571566097117502940384655357867198095573845995307824825796627633587292520154275173957942299023540044605374453345735219910811666528996490067570007461047625096070943866128743543726127704973294443500476462317237273839895403847521743245545977247937434383819697648605445597228243853273976176987029036647462014215614957176370036597327100169211657513340370275446642115191795535790549336896207891296633905449363577416129067824739282545102962473067774499746808801688382915747298544299714851270212652606424646209687030104567001835401999072088674216200065502802857618633828495321629922539628734311555066841146658912857180721717318303673200640193586034435988238207315708400993560789447125218425621527527258716593346859034737862302098800050578392288821401185765501838784599101088896746625086008791347402642015169145653147746349612997441469416810450966393777712629955611986855264708652008154006161292070319965268938625860969540385702495895197161233937428543858235894909305720945834662203985626021532469047060360532271360601420585558071180806857884852095333828585025690146459690491969690761025187517385138308868083022266311897960355508562820506506762347024029392849857039657076766774376795924253462226284464887264136195702703385612713225469338907678350250099462442823511124297671149839544815992095471703876287266010432599498187867324986449836425637438688664809714511849757192267062814975234384824277791965032625308237226923032670210979911995520916492176607636502614670061852819960280407292137121978525243798937625101479640331589089552702323054763086494676545470010965348561962990304472112434904820792235679787221031747694784267948508461850587890493659822422869838540400326811233461624012692652862631107639823308114118294925367288504125243293723935468810342311594492899646229624911221681922119786280979588257611416965597141088956345835315614372875356902817244386055374579942518978400483501842339962499662974131705215794870637994106077784033583328915774715717234236586213804698389860001463431430077829641513167297503438063084995906903859367276152955826915160022511578856209986936305311249997893772092812731387877476112041675070734366832347053707054486814766736101290117438427784173942733413500332044898157937354821563540308381125759625999223513489800810118079419639123661931863905841179127244191935866735265617940631243355263460269426363734968979066507703519610266722804237181985002788024213202711508565499055864369951818172783350722806188485506044127047412142424204455857540704871895443309679876938110606626352652082432524082561263610198499710810289418208867577174714735890998915285333587138189612446663500935339664020505507351703962380796806939978178131695434815676229933918680878964500818960018680495164268400985803484721720089629325433062180463154746050073229734725684452555474146539707161493548225437626095403349634844186057849608290039486350818712377206926640960525408446508644244769441221119616261406079427432616860262004566921712234997474931334764499958152736224833760038733193779496618045313566601573877501481424115254180051216133397190814728293180406781918857664644189011897937788927809622667873360599154852940986450875475093345731308030372475063436683923372750620875270488346237391173050869659354315629642266609657425328915345305526678590951476043681248385140796834763665107250995154207736630672117086304328066232930694602528847424666956032423433469151896011563329699635670398494916062434839083320799462873175688495693381901985220636230124568322206379898899879269787369061519618313676063469908159057542088346655333315492923632776073326019095187159607715125310598664671061258157133791966498596724980314203457433387023033888802556571088675003708771458744775926442597603213805044488438581834345082830740068047476430202159388177594168421503331554190626403465136203509768484794296450066951817807800258043910937626650331454645664347173237913537200523325627468505478619613461721643177996345525263183568377262508382287458898103253490970285394757686758117973907280797148391763971113291740165008572325102531034719126171671464648945240503711643831346672336325920973533447821057233978708347822776691809426405847900608329765612162066634400410675206112567559004208849178384787212893068878846177337547705129085040159943469346440173165000318131284499654217121522758137308176713066201951715288303340188104162616960464710836381499981387543353353141263599718767983777571814183383249065882499957449382693785272512782396421694423606053720676723387375757207440401456799970549867971443286022654025478046219335108477201215855347563071306740753695993958486217638505731648971668850366437712011093280481441916570743608117379856225526036736499955910655763805212729551373089521483268361611892290327883928923393276252178199502832560275684625059407226268043165189548150723886772412330347018693318292447055825564896458571243097523933273465168827513477052168490784701714671721356642983838529871065108284380810562794221912577862945802840092600645882574386001653966801963207972284041504456688336189104390132496571378704115133796626324647448218773746243509782295274488823480363902769048875853164939054378705201489974166042691399819980649257734225354111968880838933688893910527547220012071544538851823611301850263013705893932654755621790863220910349993802702580289792721393840474088748494645634104052616860928009143867237451771787544192510827059370049767706236997778557047544574140380109725891344759584673686889830685564357644313100267418971355288989587738050722084928376452895148051573317705844403779691078582609724632123618703539521579611975600879154722878377075116465716788786130424086753659611190570012636968323853436357456561224524121969305328637902938603220109419761286582617416194208777899211440572611418399369965107245582565761988241739085964149319706918945306944572154313814830047368163769856446271840419380890698074079519269091047802375693266861694449411915374073246940676760525829131597198819248576942171854467619341972402422838518113387875767990352124355008447746237423214574561936141614911355747101655963756604330407952301184642861229183739842075065614206258631368576639040046026115383724258973387573185976559560832524536307020870931362610393349378271425253534370358260745605919137554879984994261841189995478544937615246305767578866014337095015470422836357891586043887925452429604205145654053142156499491022809150593681802593649266293387286941740463403192582800746634416442668924085715503516345075231963137442339160670242674654840968395148984558032614431152961183360902728474846545588507371336601691536313178278185741337709240914266564078680292882199449137183522030601454405230430612437726786469950334749359041314421258402290955542077534312643144457879538930855736313273808296518323555828961776854740929057859721688400726903014410275162664387411778899393136019134010037753629010835715833206166472969494890546077334802677482450823413409256183069265308797216513726797958680257521591816213172398553557897196676377252231857901369050658313884746187440300758110221941443010535115759858542463209066558233523808076650685355610641877934097696814040171468971683261967346416129767897967081568073297756342514569502027772737762274601012884642042500249538933928167031313105938069653649649568418185622221530901485501985457420941911610383624644763957311295285856318411576430659155124075396222619993632318557279120706884215800652191027956622912753570822725791158198103751742758349512268217181229093514752158418473449784756160983183245849365874403908629072009623854639239944323234309926576483213112729227340903301364724186898262536423226500726265339696452655507482516379673076954133908710029878036883983362676927405849322100830778504877501130837349876719490818154231923871910556234097612307422008205840864577442554345929875835246112841693100213105362507644924500799688390749223165712622602830792577237801548515595064684369432740750873623814146104981072574125907179981350545601560308965750529064681951092039795633430500531977888313314169880350003918918500025068140352246638803433328135541813256315813803724099707045120711331196207873584501579568828446407091771671474583222597116512692121140284245683292330651204763107822702785027084851677212923608864935656884776963342438631405232713020363165764034864237011806746437279013679976374952219752863036729970735921270064630498725293220979295103824499469812463873599755617082108857458443538411603839578476599570318557216494053145822194427580267297052736173801851203851525881477009972132306423247241822255350121304692033369678615187019956843050207854056607869778455546366982815765981274851965784505330356985414712275297170234738460363842093198727377914899751287661217611235977256794669109528240158894029704291211404309663383715103152990386232850658628747988476569357178463652357812796727877251771819285656749551718955879913180467388239774635727714534150339214163868334964136771821795818130544074337640205331494360760848224043946286543377933128842006903745833460758521128080902901609369572477680515441311771152193056833055377009220650769073318093463085155550123114723422334560241991833020832822448196501427881742675038192638988577715895590679717076747410334548285352193610826510205864627105728962446735644719865034660928043675641962104362139265889447845213035041887772739862363343808478063850614628712673843034686374546318177730786072702276819234423648122868684986766388129105674579403359139874221255034898507537225613013726785906451775334823279333834274308779945840984032444394540683308049075787820363385994650295914206995587509740331365133226206049652605244793655775827546044032883152421803103001370315380068765532733325097006266153058737771433869451902094632149917985089522272257292086071358516039501288848998632812090853494364429352875300578424429782022224046528859852644103764622166115050996812148731575320288945676341286285340766133083171995120439421643452621130169027244539626062539914568098720623008403542655092632412047253132336127754585538852388249448886100429604173820179121793294278355395021426464654099279148443315895791039193636769170121581642124387187607220332143384190405027339070979791724665813053120987297313581979541802495418289129990764772293067058265039842581807757817604029657063352272349100962965245552659745217171259844281509866558151372826341612478299802928944998801785174738375530191571164212137917634073123721185606509267333462659782888878745092150085365446508648233288450174173171693865096482631347107405298915120184743741209599165073232580717539052575118793991727333394706682286552184322842690291368395530730513312956851590045403323012965244432379779342039313824427031365579485010436041285341475066647823783416564018584681627255570955486647019565715525097339328460451100761497596512109267488904013475528025828753466588409870541563946117232848841306587017852839418777656536159550085118422276438426447914369156118023878477207855744094142284765804863961187930209614439365707992584367162028382042483102907802088659669658388717821865576337328711367161320858196264409735827530915187311398237952127051971055807476211570397957426845808305819653970406263662640653239756689400677560906315976414350224453534460875465405446099829926438526650716675438143003312305749218428929381599083734042725846880340295062861446300231957012120210697949895964961006542928961873007991200325272956507111626771448195620168517053862550859158363844028447269166609409127296984176842105301755058124104536245217152027982902179986414887587559136989914609397410537918286206025985185952287199022783536819395551016053245414378663961438614716131914969784413371239164904160671802842379367295150019385396738897588723748517957090728327665471068528522328097752844688316443580801697803965754851071500112961351867141756516507488890878433253882870615809014784910064988983187367346540860907989434750774443383924471898931749000097271767217957512766630483851326510033964616141067027624886519737529415839414165801787859621601484999315471567349347933131016817606100992180276034417156452259494444192418017841544662721880581789165419661788606589775349903502743287492991827597160350541996690288469468789593900001169907456990891917314387891522255380669348809571838438588091231753825356000015415930336372931630206993193307804189523065268231295031527819340722053748306237812425693575302957844329536707955511067561903089828523432349546265430502982995334590394642189543695526899916934345736788976044474635355746292855913023924185944528647282071778113566766393235493664003737099909638007666070219213733209994398838390812528504394095408277451716280138689031289216031383815062443556089980931741935233473407376734259800429888710194803886928239427811902089984702357755409259522736822671214571858559806160728638615976402821828437234465804142205860959143956152555468901673037510762497388254855378000476340224261514935486399307988600641232952219923683799424594875955276258762916978444379442465039810228729572259536788397092953327848188010783817032375154523821217874056924596031612552751807095660280574082164558783721242025133991069378870594301219935791247586006568399323367939377777726519578741085605434454915928345745669127642200610248524954107896115451053707434059150349703873955069907168111652512844964186712245473983299424957863052499609998610820474355206992989214476078416888171663581355852270922889038561178777542756487784139540717282650936990157234187365756432063387734960789653515401922704366943917096865258768700955566811665715445844585391610884826666386759018624088075715250472783683739687614715450009792004407163416170580977510428097392550699960944247493974745400552617815194883644666486861787807242701630855458226498773383839850474811673433449606900176475749216334750563492318612118640737385556642042769138615303155534110588175054673676691900948350431961227196448024246318345272791814682618381199269560774582448634489293162480789513515855437513282331624131476411772971443563756271322335156363462629068320435149953951564711517184233800878289573811498920097160513548902506552373454119060839316260386150055874398740911589197882791163249751857482901436740766594197033864776026589899956429391805753928882112476257336416571550135081553912684988667117197157053710871949052148588949115643005769886203012258016134264295826636821915824345630860871530722272145235333117988107098786798955349508136390446093451962323340363206885603316033376699295356876790341469473151189508984480526016405877997986417646535515477476602480866375713585705643621661073921921539542014871708786857578809143514523966414720388212807571778530940942636461859618460439013269270297286529348635259906022851238722838441344861873501458304494922483362717242396626213802258801720480022378057702786727650426106654098805827057235923171324485642317085348670725590361321430636156942600500979326835311513991593845188895497136341163302226265866655173473889414061566436347019183069017872342817035697204033322592308572817003253403959902254754272714653189076751367630555100602738906614081862864765435674821998257976788399999846040087508221041449128447080885643361510053428435672742986170507134222413936929101609440723759925213933425086296791570710730451527291417153768622537848078206419548208682314362428405999675036945164784039826184718109874535345920255677456752539714426424707138460475300347162915745536294785838026571641710194818502224102903740096751755568234081108895808477196764424068254864012722721478058663980819708027682875155791493703997825188377311070344043862846703231914886425036956049633702440004743023362833603538398611261260822086598704386955380212036891713133004694893066988908758094904052104048574577687929214107443963970906708489409527563696324846414582626282129027005404717991742913121489995719306630155654043940003566371256217936353160115013937454364403197435943606606888901961308364501655773012588048797933884487630111313638705286347687452939570750040681799080299237335726603204158069292433124666787079145702540364286506046513136040649120395065634703541743246327671808623408830551806381188036947908519299922329375762841215771084930753902937956655857891878924429174508125920316224121558662105960375822017141905756919360218568014053805877636648894124504804784394466386386537140773373158226517988226535655787165909883076992370596804512543501784165929096039510316977680097600823804922922245734913785086979484751670298832435258308320051774965196785086229998853790419340390759773362528638301778519983653877447893150486695471744814885972464826215938603198644172856690110109194757091668529711774357743865573471697660079889773110014354090224102194744432122586341202163427974664023698930647727385190613354681773605073595584959457412872021970383344645429763490774845407698041006000934989057886463651621684140298416149000223278061666397514332912203025042859469439267617755166083619512156689177764683508202788140255029352890500141677541196488662063626684625452477201085960842007131637526092951111150961983771425086499766363810783671079740437737269722243916686698989989210949064165154148577306933912784476114035200880598067141472468674541210476544071366493571114859241176412308453102025347089235407631656576841934360814066529127507995850073156461334166522985554226224496420336300033744506050254991556228572454821062171924859407991013485272091777726818947737800331725755419258529453859142207012216669996988222049269307568324013399930111618331087090934483830239025642322485234335557597988476480909166008706896299057918347434511706367029622931170907679866488239610240840438787840636712315041289552190312266804749605325738798217978810806724307423795380492416901145198218876537024282836884479350050981098839810790303690770645683027802739327805509497383623999132537064677635987758404377420117659209188411419756979236881136989645386807934382187506731742850424140252908703687129400056074570692808845406247073439355806558173158233901518615945114603966382066823867589120666629963968525394705273405367163461509872962060943171065202262016676836889330233839774215070906436172732547548132840699119150255450219276206506562071168380449358525133335540515108511246273284681305386739141027153197916328255916828277121969663768403241399652069663171647736116848585566916746207598744381847813728592236990070012590987336463540286170737963509232667649309279849974632318479262906208951833950719786520159110223549334320251273031268686969629399920384940617621130187059992020274599210575587856110431212591396087463239115243508555645221650063776719515080007981034550490811541196184675537447989986574338502710684223558517525281009985615989752790878679866609439141544403587081956107315504797429459150032072150681983543935102703411204097856430234647970747470660339950974155781905977731416016879765496718543082933220744810387048705366773430375336720024478448701747024222725736205026730285434154004560569863462253935712021497087209662526554238941880163813984549823555251609568082635410301087332482100445062338468805734800164832764341786081814694489183846378105147307181199010502944297350813745714028939784162333343654743891236081473657764403943847857527632211279186629106100435745396293014924021457697023043809768947341580906385613527635927490626746189677841253024342436489484448095616645851381643862004565188645680481393924119640665944895176415745353528411163202685613568179581001808456150838691673573592142247397528545885950745039614832747328905346618142726456544988572074931536407582101814197224120355314910414023313131201145319827587446961642984589222816617723417324770613489407543078133180057597479265916614399501445907258257710269306092061338329554364989059154082419495433774931700084482037420988055979025024949747243071153163168664315398198714303578009546167950793949404018996816339640544985798067580195748656413852326664317463555659042337544942907638340058362648272787432063433540785158908705564643707779744815621371835592874477236000981657403438274400288006854272797862981438026993530404685328502484354264074369145052242816621133226758569254761933872211148269070326885158754363970719626233754673483013981616496476682904509208757243140384271325853357845644557369121984110685344651387957986709861055612115740352882831470866373921871561007218184958838111373053338418370830011285417831694828944922729742386470917817921107161874188217630579768798929511700074522841579744401742889549247775786503336985715294176963123704680546442293231945973920456813177417925780855161458366990030260998910433488785981904150737026352654882929843238190565137876509481065787890456904049897209068693598904335087104448822348206993823215290886224926791056490012603144566937436509758100241231501964022018209436861026089423574586051736920713009579672246307738317151301021215570220100992189797566056575688685612851599207518875100221116481763742492319191158578119075338322649035638934410175875176499323019555517646585957264894790948602528414870660494992718862991438392781284525708642900565096359801407142443168950747711524474489492149427380557352139350949239657909937856868859107290726879461709037177105951879513584554413821877616568395940561842956298161198458910951509713415709034123770443365260976478470126434432794826007542319820121976951200935419547554425104783543068176837749646206319820638298947083397232739778882845947698511577819329722229098945399986452945566834221131052467129629676096771235502320272481321073695159562307603459203099975530120820643459217469081269133330113857376134219527411107253076630280647648163931710262081390508620311749742327920475112528469738278221595619124665196169505572714863233292461306038476959089924195399030697947414851382389465494394199548424982584082387508263438157436370515412001080561952593389263844521896881780464662091413237925618152111290958958526351958194104690742931435872299236132445088763940789791391444052848460686682905514253639687583472322864333940170010073887419737160618968648684795748413508598402041694705657257637196505796210994059082516385496073416559406461935416332030219192083299520859805398258346443701749232838708201992556344527091540208316692213181204196396419769133232543962901790779852978176092362423336536287549315453469283325689965044829222317054507165323139398778973865574082274575627313245570738257886819944381207629497559727992397479116139821814700153969142743978893379519158538409079135266640790615909844175645050776205405996073979509389486580715543962101668954263315612525420899671751857015102021134545316028601114614765939742040080997439625425236174690283712596249296325761171721951952376117442405962042208538123372026812641948437268197904770997896626388218660192927160114910352213695771677112352632512748799574305868680697859656231914576774041263361034919713420940347515237352454922051300680084225771816203924810879413646371703035084839700502787872345603668961028518830440758692712625261715638146728178081881226600003737298262279490317425404936116254000948618151539025439409939188893173457224738658543014076680210334084141409126812792956433916799456953294137689241440338194103985903558115940148408428772231711348593428630590351895479433995353048077307355547288681007963179629860849596727464492652822365964623488500444219936879983170152481748574008047028442254034493976283945177802945243856225741199156049189071658299876944593667299264390486261406826122865873623035079441525737747802677304375859565827693525577593719175546523534972069676735973305796529452408909025726396896414751383177989511969736613745132651183758479720699507478093992577729889260210618182342618159806775823689028160746254352508136254673386686344237101832953698824642901331340827923898990214599742862042885524999342334040842892486832507372480368511583883700754481612167239596231067571768430561054827225622228075652095231144451991099177775098805879187103159780047950394077785021347795578839217891265659198768104532236272058144594286619006456177591696820312191848148791074522875446302115240660094189758341103241841753713658438222631575449651214632870062446723685172870114306981083686136010747654960526116492116625948273147142413127687227548294038338135064480108784122517761267507695172027093358908903236856132454512834393973791311145659600485271430437960643395649533516363301236636501908735862166710481630365060676792624554627053250351202683495901150231719291524020879961453042007851713902843994592466171602595702762472050454897209762400048864018857948676685174940917826766786925454211171577405634890975510522429565262768912191486417685873212609697958824930496247052405499418882847606786021104260867750145753586465677705770873742864406017503267888514031278307568414239754351184368502262709033756651324992261316124377238767788687162300911895202910150521491103461467050461673955631328407393385624473261301342689389429367230919020206855146459299049189854772672110413381029285412081420590557415363640128598653054281674472082022607338873081473552204499184253224688095255858140344428642438819882447236014913133028114763300028982350064788945588332602080295478078537323737025437421287089379991938228073220092252558265916593407544653642736442434904007376410874597785860740686118881424092221160886375396652022400226571699468987313810809723973973002832314472184858441138178529678462558516250911284210904814524347881300268588359960831446254850840345177746008315362361227391626028774002432342683433576225012233217286368798588210231057464692755275066441419262984198444914515104141066262592336137880952940218621571717601714874365892357727422498546232471828187196874062844986475157179518237162848340184912874416351589200091874842751323519988696661075143985848226313698437842027146428068264305462347389124511950060791585881236665048407558901856356975706577636857812206393253227825558867245948605140142664607417390416405637865872384264099684618515691988682301997354930061001457499123467995398171309077931234524372858463368444570846847532902387586060912523057142446280009528100811181061106613168383567238205878540872202247631573257591001933949931031786631778054204391045889801818287792880184914408381627764867310571534299679679173567151996714526184407604581567737126580657874390241697057498851370554823036909917762349170626858752720386406313143894321429456905944078261251681856879661493632727643444864097937111861988709474485733759654497605063106442184318512292347621925832691925244440390391793603836001744525467003216742819831152720413890457020931807940948341248449669258736753148790166279623869198436112650825490717121769065527762493655001479637213415130977433879337006390997292712376135335093335290928122388162924706205431670455252154554195708251528507776398672021794284212482885987874835665182191524677082921886935583605237385319366899560512870428072041658874539406145171501040456908042131245458711828584584731591503205217222700728245024677532093703651562877701267210089863396390567795497629974761800976125749818528938294714784104344268094137379851810419093320932846286380026429910927954893611853562312187315065288350625129026593166964376159092097058401976148850794116733874329232666817572639371855836441917655413926461845037925642716140148431152600526584973625310702707479467494566920478674949498079781571040864796786293771023406569879743481708015501873965988796966958478111721030854902756189169426797926052551130449393706945429067927683077720118809799651885550088269389388223238288048926458368232875808904835957537603571418562984818195765932976162820797849841410045405592555091166031397364686304911021440734153037763303033026202565875824507615669179911496996679728583488326808027045185022660061923696513422871457556814884809971073216154659521999600310898351985159185370287075655524340804498171357284849055429525131668851930164834285660771813406328341288930513043690204782906841310912568568421670974211862495471162517898229643013227121130641526879345594827125549488483440310415938598387209480012458882792091787464678727785575673177907674990129240051734494005833772975061837336094829083035175847730658536838752601585374438613924111031079180046344481377581681325242381982027644550310637508934558415112170183221197985557241594383279876744892996365568261387109819815053590464583133614930813454384262828968491753184206049732900403625562085340901516432132957439438089699108240941106715156064893949162701623091754673213023967489933209418941348493334453172653776365170252623501774371113494677132252712807664110394216003508257575065224385910648266378456053409895382445677862284270877322362089245686888650604290114098427077577619936570111389520161354105259766778823767332447135417930767394661504292300547699034209496690223880327271817881341292655457346275386397481719474682829316936174768251105323608660732823665509639585794506627080160430431401401087978079398340252320777397845318656750974211768494502308857137581675752791845824131871640205237713131350567350046907459348301474136306459308290931901713313496619611748117414107868762921101806126932959915647968995122311721372309398676487692705724929247210741446505060771823445532000908959833785086664147878612102546333971000704535018943003421422309564386404166507268184874361314927455909763562389578613030327742641711497315901288532763900425953547918653481526408576118332488567043939898514741754145022735289794919174733043138236886263131227565868006966002511030621382480556957765674112193851004680686660451162206837903393555432504982975440212642251237848463328915676561302953262498945913828096896217580978610024199558465833664451834259748325905344712783030236389745418801181608129714364865325488951986435282811420493423979713700286401012225620576459819597277609207125896478560655839063697386325624678609703983405823603907044860360287198587078175214790715301773182238059509928166221796323726545615738422460310657507499005228835682692727911739651820369117967786427002957783179885787685311965832985973811030644603166628086232116008575861376884479697695045087911335260811376172798114130107536135280061397600751075090250289367094977040029213958616094920679621989856808406028667233280261334935406633319490933638411699742893247572210808883124182402262889534693230923091588031684304562325048594411299544349275675227409879038050603186605067848610421781129827360758966044108810465450217564935515546871515091342251590134267877195863123402327820311164984097101661932249977205569230458367005787727767533594423873707469446226234142961551297657998453805407321857924658082309347584531584350930779165559947660631190559147871385348289381241173034431262858880832255432706362829660785135202026559822667490233895290371632128206258169021193979256852192964664593604770123372161900671726151644538328282327821352821902202390321809316359848598955569904304472588889026948891061656158006403469562766630994583252625609227229571072495591842037469928549542336417341273949856692385458957849152788543205020265627855585226048316553220970584884819530586978270231860591909432905195218568020579133236729033435815701256915679465414606509997630811701525219381740455439774642664830249805228379066806183361170898707638253819748348710177860813094609130905596203675413426871362977958268529098728539943342458928239757085668886768287482706040880970123953746764074701855239882739324416162050447259148623645933737555259309759875886798510186109759173021877485740059453047273433781973873935806689908082123631696148725907991404133459753981867145026145495364780645174627840928560872616650002041264964251077453921686213192453009355054059627732323434441158181058361811471012978519505520725507937151492776899110460955824585320325121384604732086754981021065648593549964846851455371624741110965344894273002099570573828837061930118188401169892408296120915472731670168323157017243728353278175525286149540766933453668159470624496815156829386047519288652407360883971520189485140125859432167081585278551426870051688072986160229014643836881862308728458357784462111839692733745331555635906706506498527117659540718678116542805274694043973494426299539336732104352066260246755503682546779735101162957872337187186935929918457787346612787568201524972412182367556988915490288019534685026154781681868911111896980001640241552512873279337901556041310017929950096605230905510250519855373427940852534738812297983438847019209098326016199506805381075333180524796074638694158469138154278636006175730997222544089269324198346728128847579596639709644455036138032717922533216119787817919298099243362149794678143464060079635640139621241717440145595329358230633099944922225757176656288804733077790283878265512951472361381958894048833623791286003546215230683282565329808167530643818948946045192335051275738592654896518581986783009842784700267672617398632464767468593348833996630450006517252833249446650125360713619513322908686745119861689354517221303247258358829918352935599245195233940795996126833779246710250614104585441466633768153577806708929373689133915359076603895830799081610416316117057207213944495503477684019889283335484379852580710711613741658282039164244491982212651304262134447360730843912806311424875229177446505150925902510120454559893290553500856334999458406146491450493221427852870917205299047058765044651120698357248682823295420057527397234068169726170625139041289928379805963019693010293821082712445843801589825598385820516417103021315609644417220288882417353550464985037401216030955385312666362970790883255465132975762380138860446739288648355812315265887025626801735978084816629767930387453897953671644913640101050070048619346844109820772489724390250603966815058105690820875627480175687473131472797256528621330993021335104286793495003982069389936711502672559272478158057355088955587198994418168311388383113718335808825408804769896007121679108460730136572807569196894778593420604921607529768137438011457024862220808965874380514681428096955450586646847225584958364845985881417495045681052476985126600615427963185279660794957246182210056081306727634646327903266042521959609708464216936697125062049490659419538374310712458226266457665849879945027795954471901866299630703952686969514631967348011094813718460528801435755812965918763487071696318808049906162005306859176631254381971696848430253538419260547345038407523633031230776953847078683026892171849993123846678354169560380616305539831246650328633019701607999462418999598446967821890598770365397410399567049007105224569458077165828430331957420721028861112878531365678698872852693349243862176223640236687497512399403614401027826246506139821644374425086445073544705553942497885454933842522916195191700650735663396360118027804110199481818996413808026204298578956598412853906117573239946699816282518170007701160522015029620498892333218283604651699908211947011541684070609407592229267873966786776507618911861718465331386041316880473433926389301420987660351933206592854968825029727022094913918783967970914991323762299036792596158755965032528771321925578401201473691120235782812129363325608087600508536138412087308148329726428235947784083566316124263799613740871084743444568895724369515389695415006618809400473699889335952998603795627045260616222999791919988808684768127776267833035966645126009798575411687775740967555453412894479790925598417426842263311412546583470473831487873857869120229039433827654193217511166790810441058428309003051509181280505199007178860115914263381232365911749548791239055086984208544398207765568726145543357334691089984497573515658647731497513875099284893954481253054784450062343504046115927444066961139918481853945004592675258925378480960708556939683474064644188053876521201453069151265936744382243523428481764207360929857746557580547009015044442404646402176963182023592536450307467439875615842900429744350869850730829910381291147748476701988767986929931263550767457429742601339761863155269112196499538346513521723534758620064090028613429874315773189656627821680450453088827357860533101923347371621815398181450699942363264396863530043669555445046543210669107785288309892775988057991510653949420915180117736841122600546252696046878241301432577319871902827429486530446787096552389592175759152300767817246664385395326514543647693318735699935380301840799591471728408815403556766678189455256677763326784012469759589535483182602851460114972677948741941614873169858318023143973691926481602949533909799198280699044534154163768146946978700646762234712395005012391499507720337897922352535420645158093309277789037269099649169557099554219283654762227159535375096525983309130462804222415087074730800209012006829271913268013185627604308123961172043413964275670385575695017622958595172058078398908190606659707586346600165959612157018738911117271802701051879712682076673861752227550335893022779879668629708162339296245927915190089466622696838585186899000872181341356658205630963041063453395327065828165883509297874005055722947325109215777657514722224205866716941898233295293467177248644325102527447593522263796186696190331851622796320910172429482674892555586017528798466980424260669397332598365897592650950812724042941939960169050697811219195099860359456976779654085340771140405922038622264251686732213910499648220275640244813260207444647848946987477976476919247081060591077460299817396021548885749279889127348898037129281576321018393499545094032098987748105362800314187355863943816049405611069277241180219543059431022364145336087358987130184110142185818027199445608050037098288984889695324875891923343772420130433487455657830957486339587375884162198028256510381220240714293889566485649882375555942295475324828701598310966206097717328489106099693175584304909157365303297636302208147930880000036354630488627710926506486874844409292180681805774837475506766085021439847074804209412887847000319888675401137605992450891354756432379668712901559479431592835973211022006244772540073722675053971392072784071536774127402195665808432943549427636144295903400844376412230749971327293909696962178586718970568700858080382223347284407572227003696039672528191178915706569141595425577668350637692669142456773231227083166282671582963683355775937148683236548569881823326023145039846421230649689896028809691127110676134199541277322708094381025313650202193443986593921793875866253314187460672666388188930808571036032371131868254695467903631748836333230225992408396283085927388762072603516566677134963119908781599902438433723699508076586683083093542143036939346104583704858812502899430099534355110569197124595537532263300469758623128209353446973825694618287392660811939526104163027941715536359818518333122874759126632016223479788653990638307189582889743062091917441930624488526407647577084723410422174845152134814069659606114508489306259946888784128108369657184349305238377403997982304253503687056124987902788320867735739516891657349631611345238546419327431320787791544532310884437926357236482536309661868671239747438111394232056461597402629934554489197166288974800746046568324844221895091954842137793802896727294642362461410134739294232298289930268796549032763861114459254576118750875448550545294378878789771889083416759853841567693966717105330299155310934705735179928766929746202183305616964110138699594095121875443625923637255540258477165460285985395672511063416241216675671633269742654744141317470370677132437951707702401546304336444917963484977341648829981992715813540088311083084425216254496030236517223840886035880498760400324421977672312772591089670753572776978143163311870367257178685803591424302653896397774072394615862733848973410114063836140362211723560955095971728260629691551487103055405747886324747465447361052549941869270532075157694906940316507406514714533772237202403945281248311364222492761243448192446574756698464387530699623501379377789238014333323348536808811208962607610319396153907625450598474899454669769348235256571921250761565507377226227326843786885651733416934174929772080921643753068772385517173643512538565238527646311082861676929880800295249865538259679681472356402404420569878340978558518284035249652824855063099294966471625692359581602762765769430981295198905711405846804533106722004388924818045126738953128329273104416632909789550804129069319015958593689840213604734530220980406960454822516201440298122299361948514487069356706208709508602958910417800162605869995741788770364310274249474408468063954855552993589920227817569158727898427416328527528895348440520037192415866004792278662926291241577577571368085983339801512361101920502164061765592918928381563922946826876577908134356497002012977677122496849736531240651089255889054222784982220660889675242494584774739531069166615853424881191295231775276908193231873180900967982502444097677331869002841070523555138588078091213022687511494765557522982760497710732588472483479185702187031140599484540273055944249305128533568650991244247849965132243849551941744418669010790624294228252598711212861736013409135196814673725400224775536048685021771054547503577461266823244740791319702934478172093633768631753178485992491981641306141680663130097543118111276738103060695894726560009097282511647271515487962116880245054326549961330381613931498557744711668236795896375006983763631369485845477547325038570943415421528405935421864881713234228505341085942894832167532534477431742748782552991254100600628377911361537142934057871302840754656857365912910616163041612044390103062721589148968391217761125296011660921594585092894693880326023309868999532836756308585795501306558358678654685551379241561361256008549259894651836731132903107172784925889157623108223710689813966509165447216186331969173354367668954090054107760030598762715991114646899474174547517802854123223350261336632167917930538883973482227179812730621812570773273306058124813176167045826290738272143318292714444543586132919746483839362284517870378980613263922580894945168668171660878292676884165851151741554153972233983232076943668299123031365121245554020152850395249032139857398412356520089090442688387123881923245937476125893323419259521919378861408252597330864415280745418688214261882439242655697198694320279928432831407564510622085500669647063962560557191501493927789266487584865769100325831261200476160683777342443613273900887358953001220346729135311568978030535826501909157260933395494228902269322024423293198197008240317686860140815766262312699520423386936392513654505251283735347998806047833926622860923844364745384316726414226240461187615874595507442077821702326258509522639469249231885866373276613178625851531974270049637985368804734009141500247001664634555900009061622291556977117553226397812651520048034219954540668033996931975417404397174044060533504662365200607427385242788483313565033558854926668313510934731211689514413534805723724327184131979784061131555556802990305964541905034358159186938020673139566793200407888492802560071753470460935664376824310023502034921239035108359278626025829304332238964487587101976403138562269888716007483273743310759725982575055840476171200739371452307971996696429114585884396424403917639840023729127064380681827096599544059650632670368495212210674300009123812821548132360392491421897288533554216832822040015079276440358697100222642449027886668517834314683997211822010109833928424547908040594080987843848029786428711113084749821830005984416534311870563104647540370312749079596787493424446169071052324626505524082641504052830870607755930089074829388886627466849605133514940339473419634757601657982663452775131917128361307723314872518301155840839391966629503839324016904961900985782832309393579061451535143541830468924565149418562979981306276923266342034533993835509026764114560145182199202308793329863218292251118492743840530421523552581849299116774215527361308385210148177454254608989710140758270651330141644933464165798408367001025123254314304395195522690759763518925285702030376516820112058461066368058411957800614487410501777046911919915130840691418871721508504613478613986145209712996651203945541555234550869242953910395831190822193767475888290254766631429214187012483813813274388051534751999384752089600084711250033863853113555115325023858655079649486773238321010981228422999872603665153522846122562360374299623636658624393509273361474552930650869760904999130794191594109374904079095699544500443318975346586663776385661849714684313127025838650664873201930194154300557130658154790574637300406934413371967804394112174331403186746898446151238587672947937921623963500790475584977389994510009501556081360963261913145941244632069927035345130245096370657372107129743442417314577113969541974917342413991491398501177597927021527710245403952856310256493848330553090667723978477284823730568484879931256530774432503997115023002320769956869271493220867531306527288810930115858542819439277386519552210242209612340475074799989027640101696834014466583921457692667587713522182630424899101245063975541271313907217056538237990782382947087925146123233632241628909407676154100925301711746587630806405091638976680338871189321306338224980491722874202184320177341957387197536560622799434697377373182373539812492023000276550503136124714441701601856898019978763931541480851406563374459379050926916084960294717127951698968670087831662073900949073451418709952309812629247057861837553536592394208098527260113184862355183883020744905207194881184016569625183115911405304779606595941067441019320810096049220600726505008143024606575246059817052056193665309314341409470595850947656880221108399265005980621741837031431718736039443256391007488090531141851801944990219360008889554323473000607970736480276184945290250208571657047315564249038264537543745414310160611892725211631165426628445851242070906345746589482924604846159901468435177219453264362853798683242626408012561608638548088399687751154192012247828119537894578734896172264306847382991318264126120803882368400234516812955115239640587673719035115076828045647036601588033289338240027670354224294928263738365253886365505664168976496024816655135284320669907585800372908318526603451556970961908196975370922497739322621587196615026726753741615689954841212685440531524194601437508599214201861760188641902952841464610320160639291422276313087076026804714239257842975864900468774597593377536528996297473983867686739367868803401817845487802720420088729536785410376445856658720985859174368588348223925500364552779629723091631248401006411940624994530679413647682435326581627098162403306481114864292002843561659272115127435895543502234804875061262716308693795323631118839082211994411414605554997220493794540038214447810051259139242044327546359895284342627577858627203878854446572273259288093615659357797339627425290651849579665115774871625972616863707963053601783524083240030109828548426627020138981775364165350573321310294207499388654341181173770085176336264802809516525381265437465434522526049505778025480700090717562665973451969135343518034032059055683989758151282128347537892569612975490063733598949432025740157117531070363668693830185007034912055884453901121762695193787096291258459597152611151907020651804007651909404159944330207654341088535084952994328083194439399383866114958268067165154818542604336491035309863411962720573485018750507862189416180663182762447141930061216924012548740151930583897314509316570173117548429691204512367855147574837744853511117449084545748880996700773947840377156844679095952413720438896436867070156360171844928506054300609438794926299464477376138533398311332350896749825953645931421456005356800580160759229817811864458343218676757459731047858131613019011651551088655187723830684993740999024518420635688620296476784077242265560363551250166738103583911865827238715385063958834979022677400089300584674146538426436174591756097739539518919863943665533940413025688485250977039210962593552661976140897259939343471278955513129601677101502567572581692752302700718209737246683638912834028209784264978286375088873205767432762939210702243041545474439695699733700719045062158349166152782483580908452898582601902575443504824448951364873031730240845652462407383328424670570533608807783320775905951453448868663207607090412184690550652155494460815957528495214963172282061396563665039784246965750456303918957812857897447455272119454220631138620420588721586658062499399132718580312766517961170029048306479571294376916484566583640449873371051330710430624612280019855585306469909571939920764392374270479728512228291640622570127383341051634133313467897427451851409587684370561568300372315891410873109012652039710864991359619153547270545305254475242027153585507340229795331450448491925338306136867044620878937836856399662167034677756173104922916387826231740653149467823129503979372464302219467371390750452359235555429983314991811137556807838274343608177320164111883974556139427796182978488120270927495388906596007283283263361935302446379063644818255755057571890095285442746418113058431587740384673906294893686658974202427748389653676586496587083043270974676711179276318548645692814041334889765223426684820312767143868303112843503816845709310399309761361034288232228284261962715154583696006154116353488490413522695732047393292030047340335367765377477336671113737843554749771781283670642596480122052445627971617791496281427104220552738364736249470591155415385482149119193938178388856193131394402685406044463769255670927002276886608947847261904206158007942545549473814281456567553982248640225774503550021769164286625886167813846649734367386003739129788901003111061006117912896457885059184938196959156781778822446197638343549782285852124231307893092336272327986588915894580186516429545229259659725484953744156180536374468663933330522417498322645783126195881476902849051357207874314095820207164488890235694327025972585387337162283838048116658130226988497984584705137039934713334338740653048590073347014854967477635850868677178740469128524920453984602335859108196557954553719277219333478561928949001888619747348714456866251904639742455784068933289171511470864164358945552149237772773615672909313510851867829786448077997597239791996284798703522247112147234050452257639244073076399568650937777531162174411577188340811661470835445809562191901738379058519650772953189056226267909282368372834825394637666686165848520318240129878145747407867903086079133600273200212789957615832688767536745734184037939176791368472136265747436181764150433321747607638639017477983563677545042230264304506018331454990243918080883462370807858670300068699189277606972355244650780741790020370232390733853800624074775594644747436328974912683180784106743649245405757765154362739874131146952194778345998538532032923914888398149891348620718058493190064901244269507015241892799637635821573952768345008555643515316101734211363003517450407104572542373160338046698820991910459062220106890811380592306060449745723083427587818885481064187622662329303732923183652170514834022150678526355949150884309430945909079908570429906929896072340465492068479362960213722124188743203979377880986392986309541250967470258477773869219123307382249530497601287710195045736913711538892365519260935668780052430511468424183738056616720527162690067524910050562933922123312531130162608851937920412564634453627103917410044841078315102525205315203678182666825917702395073248543574443013406271368965104043503128634959363718380017545175714528481371856146330377134067095547050070476372656235233269863139781614308042806979832142518027050794364087096102063676486663182873368687786711402195987285353317543642477775822556826652437581364109841694176364085863360736208874104080783052340049933923565080029908532212900925104070236698428066836481129409284137458703669269948977780610112274683470718141257639996933542168758628135887830029999085846661610073989574031449816094723366479820307038481209744377594617215943233789986173215415189975459862562202848309538117769482168800525037979171355048584377362576355610064797869707808006574494253018506417221032189182807268656911661525524748129877678559536147552855122247725895836981809066333726529821765083515462773518268933346416500553282916767005108228694014978293563889141645932269409722965536235749981399029671847797337517063950322596561782033923391819342348073932254288478407522742841078752756619575488559977266561659387290261129983559539522168840786597929229822853423719477953711359241759980814378948710376710128153670324680125941645741364097472935644800775079388022134442762501487571894847253597771905447406846424193973417332977483084668450064295524809350041392408277408516977549791366531965871382608897705177978594614893146635916860554450367166184861805551034983726381236509198985680662636678498421904158494941551729311352805544884835550318368773549181616252958891154036118389973211965415603970744128324220297019100877854577282405444960083666944694397357647940645035688274948975036098912424326689159426994271681986940917636938185589723802031181611283067472913807957458203412410416440607042787171443326932462313088931340914269284147861426629754375631175538440074528930910747842589328695360775639805538308505843176072411533923321446595598129272705754498124212232599831115645136715939926800767867479127798080774211470308242769179389627796996034238560748645101196796510360958804864848006417863054600864361389858130256793107067880454920579225224799793975638051166353858005926498752550598406076450147817525284862902243915388595234319705088138104653102948120767346506499710885697677221843772176797537409041666005355191282404929608064316854954303687816975126033944105367829754599855572564122374872829905588814586827097717651980674733755854359864289350233893280406149534798173174472603681674183594729906160276855534516976672615742362080940282476361985410723368802286430619017264041813158984699001991698350602315198840190737539327387254629926937966126377982291258222210329690045186711193429794873085876496274314875136426579826595114770343345547348078767140860997508894076116943175244406376448088946824372482462037597412476857382066229906400776068345742171450855462260395464351431424366659090341592129803276320425176983063892613829469069786776951847757480523471498279131731468890430696777992065224843138151620372109935495309962939578813710819760704246317686047296562367129583994120782682896673164740611419383003940327579571769301181557656791283869594030786522935149231836201544550989445281747095424928060699844628418103863404756099846557202399522973649631475182142501306820646859911510142188836393725040740790344533232982045037483584757383613820268832647297546394206879187901339764829765294626562551026127526470838344052341709268391231225211004129726194041669603581395962858180074842550162495842791054119436889367815042696909876680188856906028823784662396349261211171872442824564245953274574704457680441944780324227241553639934470726126337509665034166395017294851878988595695976395006282443064022155119252113959034787947300781885875637113166896339455165164921330662570237355292545649839150386423713233759371678981181794304185975311936037120261918553748468452336331518507958482033282247773449133587044190517496590769553663321873245659912504718330310054564800731737325231499385820238748836070615375572080649502836080204435856619342568288814228277527935500911228636173174400562581411207074617491090393063801789081929951815071285687083437118257760240301646631038657097991285372474330396136055970064648046522420301598551347230088051877487184867068187295123466550425370561699303449441974048492647489253843682032632400940569511535409423067389251717711728704504595852032691101814775960164915893604058825580425778739574690232472789726843141452289899159225851923288975747212959311172009553067851847606592529175041220394306340104069565378367659406613284936237335086795491031648184609229233847956817462232799048251952687997426068215904695732956504042304554770007121221524269008067248504270655187195808646196410046373130833204698922151809448660685879277182876610275750370639619535716979058628809941958088108628093768805288341727066759432264861022639254466951857797529411604948302701772450250066483896893541323755505886636659126470607921082205458150576150177489232668564478409876030125723579137221541596479395457777660212534077955338759784718064843448208528996706549775148725692819651162373052270865611656911439177830417717817370039807812346136092817863519633965073281992560044226703025798102740100310572920108502182089926881273861959547064733748363023914014280347333116858283550305996722931337265623947991117496610944272117536359001764463640179683166427342588721691888677875714019285072024197680434050966326568233543281112151904438025264137438707386226126050353912782477286319633227784312831827030468682950927159793128446686444749929749108973922027542061964309344816209763545375168974989862552928720862909356549579352975735322598057328695223732142209802588361494524329084366888968044350773777255981370762911130397459998333364613483257880947930453087707878283913825752175448105872956397838120905923520055793812316713452188737074356447585768910040519518392178958886918424779017317244330927454825653174338179862817136069928763246879623428369919478385550271783991166191674690369823375571972291488666904890694686082956789256714659258736486223320460174698695101553021413413415318489551912319340565700848929581648190095191072454219027124900680972572032932848469707028744062159459674976145365298608266734307410912088318753701290569553242008136692195633338786943190249177473467564827857836031849371167947633951062005089945776459651781557435367396390209211908495088381184251992504636486274446423552552489321009314697376539284309807843879196257920381601891292195923408241558456395094518310824009983756719264262822522220524752869465927577564302662996620574448367802752981438868707936916066428149969267181724840339813479291150130360373541837711743698192450180581300938207119919676758103299762721170133073682319002646396086032472950908879107885028820191579420542834019473635677372544676361118267505214496594197947326556273611026139456877900002288968121219972658939966440717156739347074107424540039405109367406612704739974847155745244420886495274067516673631824925761735974533460441456579328043918886278949778847470556228826148249057291307898014807519023126892756003741536249203605923626818840926995152290091982368794551513058018813630601464993806745133177852280760603003259254179939685053422095818301119451198347069511873985674204824299764010290952131664754720359717318272765105505033520806444800195010079315217966487420152924619002827652390519137827788454219993987484627583647747511899454609399387473673129863793097216018572260493155906266642290336816900219719341698688810332182749620544321605933296436700340911299649974574558041435043631869134549164475293214408489748141666542308977083965112339427596727903850891586717768359113615511148057921686618187617060088980826606524789609337167153604553857023699403638645672526729645429242885833512795747994795741009813667733445903359589901455271870739761124828484074133973862360397556358555593435731935177853144482656233658346544053180536528230852536084554090409734878539645366346041693597695658199775704330308902263135052724859741175480229152272997009034646296081713225827677977890366704530334352621052548208945020710736348150548078032478136641192754062089075084939539545397400189346576991473315246017298651718443542332099478821717950007017340452635852589742072815350470099128887652701136371894340020257494094586243535818383202833980641984697284949079640321537149260719665203817853395654670033339355612867893180461203028309980140090443773702104512572383674799155457006846084601280762780238224073596837546744528911114347122318580811054495809382539991269780539937074644057146267637380376112636083806828874115239909685726458124533874378568247178821402903453063457754094929795137216011784776371416880399595470518887526231666557252885856825166986719425744156935699277011841299351024544098454581387010132712141384008093438983026735607648826861917610212339678944812139783107728125103472821811325419148461428545386518762740582244669402605209821297803825065231402087999110460168890227021223462759745413834402064159537692347693902124706931431292154254266978396543553354750564462885401999312348888497784254895856554075684463590553138952255131287464637503880459460628903224667864261733557186047335048024149022536008875563687676069289106756335363055258193867619259543648452735954044330529487353662098587851981170989642651867441678918941294358187147573443048089261097050098639956977314206171105787628903266462788109697831958609191227060292582767596904481856799268121509093029841391865778127851640933996161915252904343076787105803517379868291957261082851249771169106221196650607152084317437038967807222735970368424257675855690978954397873940515012237401871477376213102148271658626527853753674737066317188088311407419307751827927721169778376034876053387866596889030790378970758682110379439697539276484712994658914840154609181495749031086386367988451543832510513055084339295538949606135455383832954660307308558000081235759051843867817711172395022380102457592695052070106399458758476127241026090575154721501447401539765828503355400309077361588249129003832765386237839383001084748591794366885573773000858517090898264245291416404900943747507228476388361017035744443913331916390952422450993661301387715151438383235617715477939687558481630161866331083450509223380218863639297422794995525870954358634870625284470675374516550593563756551748147312113434002270414999967277650994601984299249240532654617589555419574150106856401265316106092481129251332582815133101444219321071614302322519305398671056368385708715561251523570528427723779789895527303214935600458629885176419544904781825018810291657215517458305686712492817822275261444237088042454887733422767513822419695905836749074164191242590450969968993272995792173735587912634246017127231428012516032520609822067807911715059933347386243664942758014325868421403104604464979849507093118729522427599506785230747131656135861141183593031218278238410483767206257739610277346290104467597241061202663242010712105136194326548250226925612025599146365827885542627135550444989177632312745124591307292046529713993297840470055214475932467451899955096174755176573267295170658715436972702099556250563425807642271798718170884823757882345878693812704929095505240069170336132180368161420593791970284181561647865130064443907637359653839590550703383673165694955794894439950289594725961182202203646836830619722325215251686867763480631259420952269332961173907714250399455136414836316096182591427787538893844542056162455001435313893660635597620662874853920993696029017816167878554652171757239499512557375493567064422947061926828920098590312968674996439167748460475985177124056418790287880201639175538416778993675414990423838052096447926738587504411968024016474153768529116980803645239564383949518605598348595397550299604189331022532354064904618124164785208782403958120133816336123279485903524526159836071602524014483618037543867570582691356165609180751497325750703490143419376975008136928558623171410290820123999798858647249390958749235025985989056830056490224741059034370489941273226511304916320900129076151370933320273684111309986604420038988065597927394544912825921047544587363200828179247720479032213696800637996940356723965119780161964723457673544518376948057072488320712094218876850372289708293794694917822819321052006016147914861792077154100419189823191328066852563215686008310844263622708527682845310174316734803136562492824423880407777521346784336298664045550410385298667466948947843097481233082839555970120800878609216081842794744098199392502059324124214445016677880290767955605521304827390396007581245796935475956970470767844525540809892407808137892918091695634209143036286147609955939027390330768405810385400823939294949163705016622081631102000211792528743457015051844587243019665635283391548916204256210957147427835545148943050035064687327026736068479919651266224679448523811914736679318822416193636119374435037312970021577584488503248321410417151814457825157674044919522444950206043100381492205283403654865359905553328034519161181682703348938420739532505689149867263899071866123996206492881968820543956595830970212548150427795178905091752838018984298515717905569871008061689851896809924102145927652869626890255300910138607068256891226782208288000519903078955017845496620376117991826178723719216114854652998374930519073654509425056493633153529059906799177775283480265948860410693607547286932444373351976476251867326921158404235466028129199890807014179865141304625305092367817679171888212596341403820467189532590549110216967135263027875554653230131691526848485561542392047040829514222139477673906402178275492899317526844534891991735791504447461393381558051360970289765833597271396289913005428862414412222747675284175966341946158111618041205696926928384486263831882577766713151490628861830739312713909023674292051287741235284693129338841770697205110154003816850068352306700259829937408161863297007877301620685589529500871565419327104923253357544426572546474391017350194570403356759156073054886889174876542721532361346894416240268094648646664337157140037266106375942270104298894016064099984928768087504036289255829804461898731574539584351973815236595395100793737430439013199142893028763847713966604422001918237636736305890197820099197000166367116443705472139944926560217798926366560220052829125980349418196670748536044732736362879741918939049676775925198588228165601634666737658843182118302275506141721085572279749208083082143531844594240611397650657865181263238824930323900246284276056824175949127940142121512227858497533083607284888244337539908968076876242186189588803976774038720338640242060045688496880014179642455362491018359020590003676462096106287111475621122320825729829074433372397644633650514535093928894209918498882075743039896337573670988049413646526588313533066670190960257217398071723940577996215647066128310723247485280847880368829279548412447753104763066032519028256298282403326052717735463586029411018846284508534184879922768225665163220192233668757317479155327690492241671318753982041724087414955162404199124889310226780378063671250822668036561614483347594896251772371916539457601225038599511555816840783392912953992623119293940825314039231783648694855489722725563883885575352156643114613459551400972115214644733450322009879596193747666493029717828738289881483547726299201965576832479388120910172239121465755519617981722203643534195654324776060631318848096577418188085643650158970754218873404315197672835196912729622040298855819166363238320036209592598814629372926145677714386757498557520139335920578470473380915899685368323703593465904990064966558691933302559638251105298235430434557657155416049024525122271423385773368670127919152226012862013418076281787999142000034840606294808159920676655519969300193355830350206017830014708955871571805175052899413355223012630629783509191076203569154256718471459576379128781211357252220952343896972893225803226004888850045140875134118185150049360530321308212147090372797858252935631777147735802553954018991107823889264821552898446764289630614035887872360432207861563706511701452185923521532899343271339202062875939832184664234682583556122061598046581623185221734048495505545508383129920682267302677733529642826084925742936007328576992604256987313598777194547662837333366468373551459831812559748697258814341243590496774332466325087565137207668863389393966768886148572711070354511355702168639299188623255585075634329300347852554144574399641658077538550874634436243274662010463254258621996514831243563011055142431467571544905074181177347731051137920930347630084881959817190556570330680941038667418289393995829200516131279480203822628223388346580202994043310693452012750853012313127819943432825275185297677078141275281626557174237396215322655032469624025937618209925537291010946688987231908890203863197309448324325580318754044290747137192557365927956490671675312493183309578714908723915432038843054138610744296782615195314276945319910208622254698106572436395895609140308397981604541783999188002546822164663323927547084915367986235866522341264462775889659950029185118296444516290334892139515357877507449317127188646470262272702016663671124787849046992962832837416383586295493010488181464055095111730271093371829319150410145898799258099782628790617738995224860586233303355547610941667927996743701124585632195394282373469624662517902327842818377797903876264665031425978615468533912771418381747107972609423765967036375146831424671017748297352492591117792777756515745359494679426783228245785614843290919768849616408785309988843494296350051829061438509508509398591002960439473646246727014643194576554956708676407660493972154173821690634201562850892888563342099748731390136709792805553435256404904226294162065985900292981845010636295085054626629597341045063260932474707027398094721598684606728701830211251680365044854626044657730033840344486796388415375925546159218031738777698737556779310266227186883426971364795929140759131670560081529912039996725803948034966355057821344519026666725542231302283910054220592131554809335455151336866780641109231681403278888794717269033560023873533351941483141210942778587076808243149481493163820357856199859215226282512767000223302240642974316965872314149637407490083152452533166261828344763164701666203451690929685878081971578693926055711049971463932985946026357385019239448111637828778595889463815869097129335049141545813106555598656621984680037402332267673697567369760582270909547623779231946347301919748926331077655918732093163771275779875927650902606038508996414236939681973828631915418719315287334071782581739289287085161591810771249678468647034402634719810341441337446019145234067986126774724208059043299102092481884895906238646751535775926279249882487835971555159501544432618281521079302752976872061398847363715820973981815247766191783375653768848935424718110315511987993256543615770384475308047075493120347098343102528849885888826351722239499672308438683054516991326491090938304587073335876112090529813603850002884330964329271695713143709984073745788266813107122404879306686430133931457566159431247700491535438307538431215513446925749442214391077700369583629902203841897799454553025620222372060899987183406101599170027295971846440626689025662634404572162031410829786597159658039205288317197394364915891107391778755043332502304622193863338559244491985694538004954291457271790726893835599784337615470271716167924879244145761903269350802816373838751504793574376792540046888692674926039268357042548485062363047217875833479007843862173520036244301594576258029488565209624100545039258155776909117775973358074293145988881347725688588118004180275348985888739553287388732314872960439453099745568240960067774185232841577069446230398898769248010954604860826001312142560331132424865531593487096863611895212254924020549612564536765958247336911484591290079261995417379693748317742117611749786712926140535165749268064687472159114516520406126463509315123483397197589648258163435588636829964957911929716494098219058071534509081835969761424091895905459101756526586329558470116492666790909041480825075208748717980513947246958918259030746824410770336779183246297732856138498625000700877385837175030961727069762689745697929913180376291938584577273015594445357196834655254017825645385799103230623019894305284314489691785290900006586804364039573100886723994642992727041264623997172735501400400631905057718262848713350594077113462187698786144651011966144220147505293907103241566333052083430976532628062731714170142030762211714207653909479293551293275668291337132536034278711128103246303272873365337176995427794874448721569269454907807890378081342339093715694707860056598224764140143122541309714042150466707644677524716046003397731013183195343133542061084796428459332432543351374554950227350771137318013944559961272498158054209313555416932718175245334364713549943625066004565873543826723726749853267383893554685995060853274479422458589326683017976925062698775964079235080053262319942136326081944703820768214841227069448645854501677490204757807853321034391763731442918758480244507108538805307970198104399369960292381553825098611137478835726359220538221984556251352415991609821285240661340469400364138087444250722241274615488393328154509467381762952106046523002805180494093895462044617355568256304715858331230285010042851763925832583632706104038880320266524307293893148644592457935704087033710164504582390481159668572723980117862375871971104707900455925001597223119138437246970861160351600710256478370703573120533071755545321727812746378811417324673657720121938989977930860514974687443944092527907227794410302413690874789119813320199203207373291566881088024818964222024806257837592452919843498001286532170282810194625035213596919881134534293061873580406327264094027041706166559400586044971359600389536702204498132494167552665387865475245458099358171318820527637186097837486463198229281914585646482481225445542948110692523466708894336818762750370071283260639898348315765342408677496801481697832905030055247257382000640529403817798749363477627969022626476760506415445875978635906115938687307569343472785757370241749278166542082626932439696344460812659044967849963141824334476989626635180701303058965227952933735485256270090397082810256113035078059516881893739840355287568471062950101212228164003550651756799268502121171391269999218486583890336395922572148793705795087787234372534618465484856311861137154270357412333685997212025208589625536383668207489669894522479130583315889607663132648136895389913306390951155080191375535194108812352362446036948505385906277896128504052033651877202004490564396932101429786047831664433609034311516158444063630367926071819609006691596284111910889923329403423451419406090373226941831071527501248290749118138964775418144059431028894251704050068993810695737421350870508869277787537677813224581503950933948900661172102456946626817163393836356797869182708419761150790250587171506186558846677350595743961157383746539673017946449037931221324139901029740082682898345672834477233024997133716860359323439359776197392161718312394284809812116777728259246177452109325927580044946967878681201709249892141994365640626049633254941439473710728215473559095570491010966267412280311919187327161316591227232720481440053290717573344448823428398472725409488708711430747521541969067063122009500784994601920363263962175898212128169070228522892629189757039559588266263952058312244105137570001801689734299116038277469905862274861489272917268208637564524576206974483276410821243190616189839564185577642045524162031392728423837274121034426716065707460407599430432968724754197500833796723978068755122305421128634238050067617842380223483985004335030415312838352102282687208678593339592357789109877961773105536729397582033555469454071864416700400546437346381353552201073253938758237970379136777364839447964147227345971100284952821358609891583750431367487829383201648632620377182835255800200879755662801312361012318116990000194554649419380691603320347372305874983322378230133103264002929301451986793406440689075547748108087795717265833212041054271878136647473328857820072019590597553639123349179925194299550068113004983378701747539473046227064556016631622026024118142903028371300761661745954822277824324244432604938586652794814952752787855173540445059496419945736210362838485024271913652010595318769681065010821498764598492933106455464884195686212527062079439267923570590698985075225549618152124023594042146728438664837320579319225557065686962501098605768129383641517802786904170614950821109189060432478310849605140949109841407116279507392976551210854350980376459301425162196206953714745453406180095953865828096120855319021115546440197859254216120641161867475891938275574019702390708941853781258167064518702995541378379005834161131525149024994860860607786691153167931180934972863881484427375368985917485894498825847472570577290250592117681826084883155332326249879267570590922306624953418813841010578374890887380170976812112425386528467192287382667191449685566966127905485999839470306889673447788302838148625928787321578501122169127727517084652405765066479283486198491908402970534219727681530639900201731170146115325737549121155188071745917846020633313865460827390995111995774244605950469472696512500306208831458476101886176028750536282962741413129959693169025147816858104055195607073671272174440543631159147495434761766232108528864480247324580007144323360266985111356193740294540820988113975135876653905542580329148600821299406255881044892802623231102285646306509865561737276415145672475588482280955779487049720542467050396364129591366964973825469656658329343335794946980471998918666791140897962493804765470691980341759948320724408047884463449225093761332966436074000490576011427506324437278476216593032425098253446124373269717963916457182487284087205762208612060676631293271068429337424586056620714701539099480679503421982166256200733425119159028115788792492511187682570239572588913700590120110635500575264485430095199965367037960854919381410802518742107405676093795426083922515146907089015683508449472205728397570001399978503371054332646778028682424593511696993489938781196562045343338200903615645125912822911058357921296315925606014412290108175048378365357976660717264438782996793787691509822341258572056721242350094949059684491718926987317583577781530019561092542494546982132542480559387862621289977716191742158013289402840749767988131947561180061266346895395743056389718147552117885169551974041587113123401613566975959854367790785008129817478152840985695588851584989095130626125373208980247773309022195305878294424657493613521803750302399674394041574400203682160076520068692872456290668895413252954762777306368657648561967261454379567739768623350449339103401616555636507572633151890654722801627343655380041906353743582866769841749882542702473071037345228462185570271907234684190901081188492750581338908805418391194551905610699517056116442017656713912237311386993867417670407848864170447060991105162454915011368044455370324635875430388247863484384201619230287255846319053582531619260628684900192443103302414794532689961463823711667140467895568197015469404178716989494996694927160936193328302615543108358153873913182422980382826880688026479110027991027141770936133570750126286382786101311322741722093555453487346193394597304081738706477981696319608568613658571739198612771972173085432270581153118621672839722672497470745071622926479444325165856919802449957414170732846270369465890882208147476224461427644469233928693753677617421193865880623141635217394088604853966775681349814431555058490234871724550127954241857944769790956233493212758995405639762831264117400169433018640695226346229213149793316649194581722162506769650410642990725648432534375950575674104666252631520939097958478199100167244128358344630561137064417992423106035615133727036228220649492824211658903893383214500742013202170029288407571057478510138181452813748299084863451238835583709973847184739179245895147968067426424515474434840023488819366098191481441987202179954556641629631352878000495039063500321888935194120545800605516877879048824836952515058533147278294398830627732492248970063248869807765007105391808549862484754539403393624300202054248052454601911481870450589684915339580459346932020566583163730163690554899715661059641680261476809739515385543354490382201747382368842915648347282041853465445048526701475401629347359138529702472232617250152255016093138557379802943592806151629704792993680566086532139834548653503283307029234158223375404038114764930279049605723332711675699381230212387188408056769668140924102324775081418109012226986651105936665053065698603967288765050972371756413969826172740263235887985603545452082879530424669626736255305620517513679902185752504926302266726570362366168797361217323934255977703374764076451650393685719192545990899439102621942562043277000672682433459637816487721914768570600117016807115700248886533353124904604276105705555003330417029072934087673977691979672561447935262699697380125812592059735589990944716939076814280534160686705986340617256051268440246053920929437525495426001881955692746548655463813751762549563084247731256395079615941840820697034067927015481688981749028724442430312491973871771545420321407098886971397441448589819268480996855526606870424442677656224513109871629691498156795943252554453580063413525013594314128241506115854538657522044243646163964959167819050549993581248428950760208929532351987565162956768781498120017292022433862248702131465843174494159251360143520417031524550352085106800126448956251868764100270893067045626249778015160508493581705750459489592788610285504840190347229161938879946952106519519976437767143539908102032804346291301953198289735609072668207746326470474700410594742832024126827240774267275412621685202859378187381767441781253921711090091157517157022110694795338637199549777032253630596749788638004300550574123472307177001227212855374604621014099917178021551271962613180046791538994539785143391625759381426830350228097001902656117312806303027656010596145113248333101537033675944953936859759702016041060959823533881096785531947443621647879847046355357991197488978901081887470170755424606871503419769816280573727690318064643418649042782423144236875673988265293078548381129318724707109432128917620083390638644465092694136577387231520895556593159688352373143591679609328524057734551654343064965046263475738610662954614117735126075843145220224181644531868668818879008973554718855740226827546916867489615593040463337910338229664409116278596955868924038543158870244574550505682723751361484537276082068961041802786228384899282609219720867534885853927146029338044285543107575968259697202858685394004575387463400828893229694489136173004085141626066699903780483787514047675203599736388748076951586357563827072896902891021403192640876494332193702343177445395251279752580850536968057808221016059279602227318840434887375933302421966765087990732386109479479528423097186987378484950885948038326703922915662963928801676592081801022397969232029129617843258983440755331028065912124975551083288304200154802325736433150201776829429406618062089492830950478955065038381012463143015466325703002961434075150029176131955257951294682051471356080280740275536780766106118356947906189769259736137928588519662273087142608723172116992721660067117420801782331256486572874623723327489825762318620712582349049152214741531720749567970935979034700639332157105904514648712804076645736291345290996616552438342484793210036095023773765397691131164364422987982183274020516629378806298343520786586418759689290925170976487969088552618640857058433081046431351692099859676049828193990431564600610863010082837263218715817887044788822801461528965451031355415085663369650062622674976710405217748766389973588628343859466949293145147532423450212190769777577524581666126591359103919236678176940019429418996613440208460447002738058017726184840780239240658485725782796926843928124525135131208011976766050478925131364682155320469794948059558826565815945657675520128706333356480600948210041347997720682701042836095501001249190032704777447056753055255472200581781988105110868456071829041917515631545490758447149109031121422110600637580023636138744679553620187956392789148433223735212614068400781456189274005724426754483701868420850303322593282445011509791331530728829743102634225697832846012638235902020781519728016840835079879362529492461084049876626163415013005377958199674256413527306367229686814740612107369664576772626143651207033263643226442561704016344433582439446038862349698990115553477639652752473673702865377158262154351943227837423158768156788492041942253199599075128212064168407470103623024256404372146957107981805927329167647930034859106878844073230028947456389952522049679382695842749655559743170426098714383288626204830409710485733243266657130399886551140181232223577756456952898127006571994109621384934132264968160083520920855977710067441344658787329092339425699424573465503039724392796051384216985118989076009724034323827899170051571525966327512975243333137716713957351907376718615804321573870511581559763402340939296384558321176405583747546183410913727970254513107794271165118836608480933489014035770227187723937977147589105922437154766363495081237602693077019101151046540668367063425948388404756261723825238250723791798872784112888772565991809101936194548976732619769656625125757074930605981490868646727974021205495916633357757919805831525444098957867596851153860723441831818409655603574690797195060612560060277362748682789409498653953681201217884081187885079172664233464453395255052470485791571194331731897101436864627759766009860005496697215369084728500543501425773184907142619308359966056760018596419551689974234694841376600291270701287667501575387126368151161502722413141157038870229912464763253833740148001593698412232876978863445446188829548962898902718935694785176574033156129596422642023094866572237077376298966348989742041138185251848338435895378601328511869367381724407296386026817080612298323640521699471425319638159296386193140021617523016457995542170399108282688954608663139062003973611902755514697807412727211423111906564756301932078618606657304469917385087338280311943763823276684917595609346257229315743385637432383703899344692897225471550968251998707541224446212513549783490536377530377660004069673303964746658409346582403743454530839978530736219433918505038800745000000762254813466833706355008771675409038033321468169330630913414944171257305669877632488928148681244336771112929727132375403153186893102180789552665057440270611452318743329219141292548916754504050396397246710224918521650067436221115005052741540510943228545268985394283469299576427264604272736125863663180758460412051386067537707005789146403999467356367671185226138643948087212406143834472342927822686192893606480474634994746459032497229865195109208841137349396788626726749121385726728055275485422672562688924763466545531166791760931684093403315603526345318886817461101593342728809016799743169635314116479706889413655291534818289766142460953903467305300068838932227799246129608611282534972967573141877637819947634501937222168052873066016047525088384883806808761369273865146333441140620338627614198951313822866931859787490586548556641127884454138992666813111869913061820904869064465497939933365959046230582367307009966627302506361872040751848008008132082076221408448656498620043478715380701826603913877745428726155384304761723851220720862579005426409990799287522473808377118471359673973484842911118305213758088172351930209187676757584275287728118562378822228886564305363840422187987010257771334657130480720458471173821663251879986866422913499990894468891919766379279210885772403584741391374082716867358271479204928538279536119161819251325349245479040881598960151284031906330514874263888252340844750030488113015473253794500754688922602960260751364051759933783362694226654421538334003460929724936376641116046201490932243717089121043575852760702080317964963667616273888011654897984361214801023445195393417522375289777452822065816214227255303032243482167010461233514907161479536563136564213094840168461959503342429107447889869367059113884198216988896195605708477700188113283954401342956985363399318869004096209192504603099822555726785078349935064919101211080734071812697859135181244641068355463968878800288839024132541831081971769783268675579964544909850289582447366026747648879331340429078131740349087259584774202874280475958167296662228870455668318549382783816754831466661462961803223261314828243573560771019886745690354765038276785306663689484213574289506624500897192571836631120482867051738599827893575356712210974684483506458677382927594430557252810817488113742535612833836499819318544007751536646700424812604691755985011429195547521571132662017507312255382087681174535349240490873487260943407342208362748987242633181681112316000364361001638171062949525170345772422163389962312031740327198102176431146237808984454647859168582305635935894511210728538119344823175274330947533765706580224927931372951209678193662324535112627384709438590634417777691109680192991000722014000533273937096040687515683818716198964083257509703695804031993832222106544151757679728629061182176922724077951082260587625570631360021784367777601417257097322958533493484289413815933781732990233551254245017975979511921419211344541327142138068796225042951372162518038398679833302185452095434710602844101500944623223604307801251845073906720814985178690181052670874556922855522327508834017971259593449340246126264888527534359354708271276529001049270622218095725652747449355481974095529385925645370202818896889488385374491640800694710198967679047373814824408302377155973717674777533156670813120234003781205398299870296029021700848895227463346297391825146745098258405956817529879752201337696701964786810269924197246044581326480083402501830150188557407147047385895615355513008972935713333507652592536077433490207688992746237867418944430303722891946056523955689664809303656218014030732660673910562055643844444999076744568833093133513553719696282253842423253510749575350389853951248704695541171327234446223486713115885133037655576132180179962722728435294585344458921842180976660043443825939596284898200605992323233273592770184879114269065921791949732174993960288348807252674489635180561110760953360035449595773669226243399121442000858094001495725843776895865614153914135436947471719248570798621592569144170960457242935539951625977714585050727741392923378999303320427767510094222414441404208739963284936334825159836364680218899214005315249392552705359581762225583939012431626543229072200677358726130836434374574903962309615862438258326312847414280048215168143376754221006045799363821699729134750636910419282785024635871848802352407822557969255945954597220572121471941097668816083825701046697746205398408875294902646534755775651402596680725060675610274369159586119509577695435735423271111857128851119842639477640772245448453999598530309259360324046259607482765720050653559246257013550962850919525425153751980164871362155122358368472673695468216193920125609731700505416913598994409363170669771231271619634230456853825185863714946785039370559715594784463102837571759439558669713210308644371348885094879078140464374790681399613151384667997221918858008535713225183369543563381537100002547817255086095806157709831421936687166212607151277666739633894050220725695113891362817051032242140024324861368572356470045989664096867451432099041950905203273466575658087972790145411977745346810502988127680710802836614248152972686193398029240259711862232081287734905872161051924347520687188223046895256794438690909910424453894344947281473870462879708735901121852594249687399288780533615238784693341640221367257614686662111664639865315638233138279224552128773440925759752213536506712754086246795141457904104870217531885181195032460082541823427144421347179479240409073654997980857002426287650341606470846077546135175081496399499191041097173615515506582355158615178137692751491184906949077921929895616270754105722182714379367347341548670041775734715958366230994199583460650984210829833612601966875401722263288292952466577237674094607806948518746889447966002223849122975624316551229713257066689820626108695707446265223381144809726628478035993458323807699699969535636544508038601484359080969848170474268936457018654743862066970708305910239171301366224317495543014234139999295837077593131678966247009466248035385499995643234814656797073865010748762522677117824040038335994776584444058019082750171728921019217737385612920543514213731307141286302391017240162724619415078348702169444764795761793649036577324163438450803260433018968076259792676984062076302619178458402143011607202815756572770623245996192558500201295098098552056815887053388382867037694447008036764414619579121343487664333496388742249021661268594498575761777894653116363422927996650030089343906774930509514756811973269278975391586605188315018119860895402253614862335993990406658450610761307823514178504775054903807477824808209848235809998266010213398036876307890170604297866727680526321143950842755543836232967536800528456713384638050948294038669866547700327797445929981371210867816504701319411743834646862365899237009890707220230735329216521298234456101229515316714794993765048094746580706505088837207116580006344999141428203984918076585424966869212584032482480483467498005799891989633894561484182531453209481917044215594248041864799714694917924496433821440976141365039292267854506664747503631204391813998068472329978836415153181348803333564765456183293200000647870722690132554972904731113556071131642142321813875080645548783855277745992652301519459812719178312906103702783909962000823427444165975797588747075819636053689582279373694261973315625934980567520136160107955089822721242825838417011886397633302225975831506380307394485224809176691050794704094593116731438420556363210738487184903670138936550459337797355870944523643852479241956212472743982574685901081095617328371714480512699886452590158608950985178411740205912466504610486193619264446565924506924047224970973791554705442658250774526134941519328420389332617050716661822313593716580833272660240387531649966300608128990196828049007199984021233085593299464065467120909537530613684864610995478386563812010886971842577686034541330215401967807436397800390368933494750027168371741115644950091483017064736755511076740673664926151248340657280948434511544770112008359297451054671920035590684745190965269211315664009044021633676432957533885496942920152002494769723166305777721967484977472205566290261129546811811744081743227842547166595078661052729659868052479532151773645221212257665918070137492463397339805738952122602068509240482149509297996892128001865239261786256307962568897578679628232306958306262035976440205967632159142595992751058324741522666822798741946488239123622090182658258974371722813272453677978999148364202000234526993567043919374757894207745058030036693428781828862371714007808108712115315378531013345770012797898056990225178128657241304269762213928644528669537810542677590086029430174335609767594978935676052212072070431232055584939868815378393352836966650036009358008250229291462943295563000289457131165161746929945981301156111279365490643015097361396737994482801887637794653973277583688186775054412381104076612474687266566298314605427131350486662926250534610775063205601130643120040780822332946625759146999274233410042245223526480424845480457677595092405213260782771322379169063427467504074469230644769917216726479036724130872675727979164825501172539110463702831604002463181511869142414697279576557358590520237660189043113060514809682185988235384552612433526431439542155630718832818976842195106567691512057122040916981913553423680632250021833726110869121542289571575181377994465781667666744802501627991586464235238223467864773538466910076371350032781630153204772621312258557576342461560487412519254239806641801795043047364891253501413821269842903064588554714766750340006990457275320430291584294618769800248843494641376238243242787159546049159334982634383016372545983179759130232536561274100164743501497516983958025953031885470805597233926610883838906543042672239572773717109903908255961816765921195617394393153426631821888275421985473950181308011974936564217076517210247576324070998146532049696320534920749612459016385893665975688767335957166626157000134409334097349640287531925008847586822151134072625480833069151594266583611103330389638858964203523752321626316586466609707268542483840171879277672695908919714553761416606091817899655790142244564272290728803654696513322016158439989838016194202445573552147873780413224607525226275311583386634772515916280548457568492481725888488399227757465121819742844080989472202850534521434485252250471559338422850202796104275001878843183253021474998699136271572360711383004350511867014357519524227459365148009958825608909291923652923816029481165102356715943783668919325406739323066748516363123438002578721228782422646455610348434626837817692050106255144696763540672200783081450144211733049674088691052068581459666834293691871039064234064171682669935850074151724637752852682132214618477916485098354883495161272108276121378056300379622783589825416947490443653801176415868783426283874466053230848346185585471972309017436476606455667033903162957657476668623805444972094842708895241405632015619775046495508041594940433458494807138575640104280558970672208086966174460021185239584894778549260960012917578113060357063209539450215227256537602701047046161518653424389252888859875537489608445787883037578691145937431900758177197040355903449132875675293181010000416046502696924780792735226566842524841251214424270843822229063192258526014244293181086436580899558277339377098428963907723530569789879336751486253091011830107969741622983732631331001158578256872997292224008247849783652479712186053400885476189169726398831565724280281996907595173434377295309842526427946168114660207343256736453617495241266228406981267313532000524428574912776650755720881029383807769595149699336007222204643718665907157957286021284828773912617200073583973653289010755170894122082721319223723801890312501303592264302761765059305343507015158832132646542543525407406150465769540493068287573389481972566172937012960472449770529479570215709815477706384296077026613453619426924305084752835914727480375268464434238989210550470231855778193226203024317202177136536961705295320838115833957573098314774093218221379480549258133489331915288135347289332752127051120042649778921328527996221231565399147472338714257637991481232018352497215665083903205406293346669501450802065078008241722512912603026421577749028890410664019351818144715890037134740068586918404530907712648439532781023154166987827515722204761725923147170631563986379824551112612479276563477317613910239310807116992449786652902393758061558146341523378702145998571501275808959805566851766692073508907795204419081874063607088836299336047287169037536776148916846504863989514333077254579439236996235330934815757934918814682194552377728490628421626272903385954080174505410727586484518326579145707981852409406113944914596610965405578768237832074587447312549405978665172383927061419204076640472460857038137571965212074416561487528022499621155028016396950523552609809738321874364499421504072165895223284963757726278607471451343622591849119841077670389236908451616739808600091726229076358726395611051896035142102887293640284812756522564696669239972400608870593021631939951506613447515157561083161108770485021008273899191711031597471445879203840771539033666519617448251712194086634761256169634167089373779142876190340144626362056066710212358344974821695336057122571070041070521402422872169732170162579352106270621920516420370540699470199436445030927244960073759599867597082032554857370753342286677542424088814308646920462217388256037553430971897276249128974003216869839156559776115251530130221293926944260740420355077086903763034903315027567563597286715651203363047879332459333250404285472048718132844760273631052620841091338144012581353678777115755522126906239061149899734856142163818134754910708614439150732341147503287614675255392908738697318365856122085132661910836095584556667102663735643842807263313641388181775755312319531940638721105077933325615575539309730227849857952066152452712977437858502126448899338743005771309758186991544177785359545722610272286589657754010483300354975364807167446146686431205310722308435966236223610799212950988993803980947824782701414836132581951325479845258959260664343218928404833027096429245640791845331821035072042356699389746581381032145141446764347564112721077875466582681876953044163048161187948460423109938684917639165425118685803434688339755864411250822084138654622012745031533289980597611485755530072743328776969466283592712119805529643899002529278048016685821833396772915250042400662387566596547841938137126282894082440027661219770184048905827875101531199523777882530864349047088505291782680225800157519434672444571019124358339764232219117096185484387557902041366047760011896979258325163792685420561068393188784741767682632838071631376547031965272225972528539919931840747282882230374991434751172250930516636958902331030523631091651867987945676996666729594660205710089151430237170360439165810790373389916125498747028554549672970356134207003520484414929540625551134466451596512121601663112579733294885107984976202657764584359642087127444864116339740139181751333580377026142207196665473689102106217066935547163238933911649286089162461890940388645489927331199753379845708482615356168036673899365247282804706553823700194396669593705257175587706573777408428096152522283801524650305722944863521119520277418772506970658373118186592368543508586549571487853765073428758213316539901808988173894098576793201632576048644110551842502593566349701391801592082519688919438942163987367550748981471570130628287561869144130399530228755593313625984536041270818988543178232521818353837488229871238269919900547781554043167406892103319497943594398008886105545144596994945984123440823516096015016238348909157240612182352606907720270150269671169045495386600479634449423486496289638255009859730979410250878470610806264981746341406133481920703328627506446110383027204141916755650134234233021189222312924933703930348185057756903714215318387749068356792401469546128714602482178609613591831701416049104450500740880905589572338819535087195879917928077862846088118314353029042917342341881328137736858674521977587282424370685098394014368422109315322199748424960419932169321593714104544029747652392441414939549965724683728797099999021148772540746234864427068714178465421636325843360364172183391234656251725909557899344461459418123734286429041128543154047585759435852268272358773847593340632445240355088440723855313807330132795996469326854704837930646545128027329052519533201286612055726363815789640739801906921765335905130178017085797205330824544685573476478865977244764413422407714689151049661337437151360705888705167820356809178709300273893841049076659379800482245074689361732516695060814914510746219804374113718600580812739205305797991099505099875819710674273899070861879582825636569239402260206620651688094877509759700209139729298069455957033405378335513944075073191835893669860354177345327634706526711460941386165893708563127397985375994881174861695048792248044841625569405613622041517135472418225229835817303717820476920135717115177666827331241573784174407494647041671105237034262507384438071724141068032150120544206150639811383890425766006118895260151731738953392013091841703947071573913462039519785335263072628999161876551195978234570892304183434743742369787895918912406058126060554826632304679001845778021829706895041635668752429629614477894374441837308203648167375752365822163331976371619809568591608489121349878061187950199474512490099994887333384330609316558670473078798990725330229402767911509829783710088618294693087297528563694350474376559333589259602719459197781426235855689048289285477745096005404712811338315431160628376960294761353883182746559278956139090822048361199353947854044944815861238029169681284795654190196436858314533708793064579033378300577116589687144633759865270059084260152779859683501853500614934649785881546087630914768109770613936124565508697261560191217621386556539831661638555813800442000282637524190374395210838668590947850243071353073666034503828072080805862786789912948577535709465807791548826802937921880386262733256509868748121114910269981983889345648723739117626896724373228766429659439084346835492579139691754638960226742119178241707852523575115618411904258129156800456469256076688218842649431683153965049271119671037148991709129887419246979034238086642373402203129638052898262812214442046641061584749747714193616771702891076241342406543358486097998691301894757438510125408823560570574142462463038287529480330526041835025403771984158396100369931238474940392370652399363949753138404950187137744720417772010870667307450133076285044377187691365825156631146758216229578779501834509398872312319125388761749820435175215680704904394904991868017986315303147363312908532199337585916462089118632527673202359166696917097764664811659399759498417077766861272456716867048886562342104544558704860142200136398099991931418739013477848124593108469986067486406240814398808374912396276646290310492515164832140333783908045210984529321547615810444668892372611442799207169701782137241358998377035547467443925270367491507482174864124247768869151530484211435267707043375700081326917354733992135283383296503723055216855951851944737922613551408060157298274949873121329268095177052935036865951664132441690518435334786052125458911841175047169047968600735786003435043368694492748541748450456120199535858430661148013722799149829410535560968422749254246890002567745072162869021225363626215614077196047633346208164592246928909763630637942494607353377711863896878846859003902705058421422143459943640331875195569511844587271027946017579188181076759845997105617952667061168824162287008429891058624635608101400026178050860048035794686029672938364828200353517528055017061207223632701200584031292899284369828136396343986135838404304158994358448272618765273022638633178244123663931894440729583149495561538268485276984557640138333705768731390305659302482371817189584790918088006250263330967556333921072947804458641196594437595636432518104121322700520279020377887948290109620051892375974104122249576064258654121171564824270323084508359031574366109931291180720356805687560365666961374410643760422455283774455646724578704163726611524139206113384940068718916777085978303118279776649553593381479014478146875225730156906677949138640326083504608701000871365842976871227113640856349836762842879645756481152608817228205006016961866624285983423393751181964051081283836714720632678960139107506993329288343286354502880700289473815459544998190516555642578499580172175722014912509317779316892488096006407047336597561922443618142282660115751905212428751606320528971246189015746290850983978138794075269281342556715244872197886731563504468311452128281832778214447895665445252389664211403947138220855146070136323659281516837046614061523214005908657507701736499406798535038116586768951316629510302956389333507427398097608929892339047632837898506858067989098664746084246854854075061151278769546472031457818029434799834875769835134554971781965065923848448031159388682897169429714739618059834075857418745345132603576957563655023006679369124954216610676354591545524536016956194412199546770480835330305458254022790589282328944069565259824411846161385481194322728989058852000420704739782708551509370933610124546130264897520726515735984139392171413468874188390026276441052908726384767667757117976727605731311347732532735186312376542180847222199375435904736582647358542334466529223996485761648396577774441940513639262548317555821696568622217240447089766501646152376052577107978448521825897433213580051575041050553446138725759091728504591113937096511487971175636129660491067327692416793865321405195852525633999390369952306388461501258443262857849948619780152410271389326094969516906805247281881242037278655967546420086106884994564776091065944910607118723363375936296190059099399905930010366791621050562761640616739386591961161165099096381604211014812937834205250314190923744907060393869401224798619893721559873648799922737840217097597581673988477054541319317943016980222178912852368914024744026619257812953419312520573895390370971431039972915729152645740419597425039484123226375946836105155600756621963346037845705061918306138782546216275546560467708795568223013477099455551940796702796324169736681146937775595747661332665933501307954035374420309789327343466522764849437556012878722878145193342548871804087178329098504864141377411258193921109980671006089684000926826145832305051461318704759473772281945025032070934864234626745069667300068969337585628302589667082196421152036755400026753411724943582077252394728415254889705512263974029241205583097060964887962002105373990861964802203093911429931179386817679237092626066143318197994598489035694072699071042691755237700202805650473386391722096852645203610435592605582208856938088432301697267945872285662898240431374981351962284960404072560327416816399278237282756656236750076888579629083066398046506049247260204940734214824102426645561877474144766901746798183990840258981383422892560578224649532098661108658096691178171887590005196499299076444064974739115682052331908725991151939031905480848536659582486450206707887548462407424643117648161078036252444202606547246061243108630134387432200644589455256453125897727945850908639748038387505226681489595049605423665439223262926558940176315792454815200690903679543238305626950279291665561107534839902903718533611847587795116639298488498329009769862647464604771530540598341548230266375104466290681418308580243184616167985909420286682188004868647371600481001658885461458998324627605328417693065046776437436447157484874825615263506553750296614596980225076823724529047220910399407492743974513817643393214431264748296265074459843216870298183394042182911919551934681359078279683230459913879698804070512293549298644747055536954208272564359165593091104410803688497907164244621239288081967053723589149586280020689868217752731630306577550425588051938765622135931127252366356721539622047326500507825145283845604671243293095908198227962272203829468670863538794345673765702946673334195034193103747452286903706370688007036636474742189279011868674387362989625540356157301336143923036747297574956761471180214904356625173836539437324101315228271135164198657510233504728353436999828685055191820348245021471197990801037929137708829523869207857302466663964287361605686322803911308156526347932366390691473538623156767445008464557284455288933947955131817537419249345533822857918304235932984883257034628541640357800151124388668822976449200895711727892572801023183110380187401703230127908430831995424669176434312609598730343389576683784891246726924167345876038021810982130729806147989157415825405822686970337305781715931061673344738071786725270764966100832838105488270202684734795155895416247101886457288751981845555550311977032317252835665755224393439431017590984475685278850352876652666438978861688425758201071726583236161938870458660676812026495489240436250545091646854190539113813319936935437021361632854072622814797235901138110379827096957969660171326658953116197533405589476729347756968379607540410474936420755502878230907726773268560450747457224202733583237628453778801650271177731652287188698782133411409085973379556562368421243671178125253209163824741685849867126547011143269684379615558078759178357742100232514077798529417252179352822254707259955636196289081444992681582755645002690708445772314786544104428288170152633427690297083925995034913808739973508700093688207323105575480361786753613053999512632118062671261696172501876304580595033685131947601667509561015712092452999269005648423298397352765655490954695056622901296582639285452811612588556442586618687099787268101854526800418558967319255271655246363857774656977996366910920097479463226383619424543543200146175952501877662450624592517120057596940942764978425550026875428634212874740567920175164024393954205708020184106807573089522676148369231089769968940463951529630086275564444929074780816303924121092507876507308335105604714282759355700995418395980282236235546375020036207794968408357196374950175644890667611104960017901455281668859316303169556992617997725644900280109320528365690795149887638087002843016761058364061120597254779011026318456235986055344634585790793278698045724422738811830547854095715480803189716347605500119038210097785668223839212413548081593754982953811065010344138929068737124346600406324565773103988808915803071884822582032728716161560438385965521518014534544616165465622836722416513495378803330250598945642668190090502064923784964091554986286442426314643418398475647965413376174838471018970675991571383207934637124680362261838970694184905745984440616005708105198553408245248848251507480206397725031254282605647374657862174436096481125660776014988448054303082549693510895451611920285913021019227431681053445278080175924936637168116879115604569680988494092584973910720977436612427187603454328664467992722699773946456157804266435941561246284137253731730857174419116047291691988467112479686882116837542208650850192118656425178753362946906304861907593380418096311014611162053565579024938164859933464295238411106691985949906000109467118922104203658723078640897953445053317539414938873501192384904572989234316460501803637912012307453541225207950759133866553616891644335289561219338775245172056736773616950205572796876156388197454404114639580746764807837941420467919165153192053667727425919966924266319586027437750122894878889497477999555225252187347719504059234457156575906529014929364113796982605837958442433454173640408100922494705462362689816141697171699136644199069511476754664352650730178912021665754082309753655334240213177361727516305153572120362304809725662485950817488345483029131623672336469786435320346153170839800382772914118302517009224738330515285515114239921070081267344129560644449977132112912667782090415516418630496990633876107141977505555557715502176230795164056299233900003991820904466168270424896601559018019858828902369400155199012179580457045189014005348422382452881692251425317228081383115990636813213601129365905235078070614950194455576790171587635191550610718358619974577613078562435516916488117827976942935915434305167064234410794145315962783598586212240723648504114369143998498349756171372237828534761702603454227347467336789069666089295339521977050225344323365333515255156346916194459150264752732570635317314346883364283398573146317326723785948527597480077592547358203315676460387360502704282803285800757872004899784912802163038298008736163609245262258809330932649425650735126227794580014790384293553949632491682124475569891366020173667281861109465655798066436256239746597331172835887063232202971676067323739588103186704448575093975281205279561052290473869012582406614429415731611436201116682369503751548355928402968117426992529190266422016745978624367585316046156815104738466108396099991974868953215431146627131526873628317648203840405281385453968791511722325558246103387210142324378195893752737569964609355297890665377959487646829159517097859244327878376837487151414838427149845904821712330373876851856676664561292840787444589141299629934108570082228093598736803347654601991661614104286216246119624912918500005042130339091245326328383758607796058627999811937188779828083745139573764062517756355864635381961342213897765223838001332027138428301223146885178075529903497052710892259542501808524133743111231954902809171700713009605780297173333269134157115339937855978651362822928180213279556530737422164308612932307475623529547196915591500779813191041263243364361476554545763386312776203632478618215321263791809763873435670379986602839281551277078628096014967451798087140591516105528091491184240808577154919669769332743753362911203479410313799283707168587193970409225285567593499463876121952499032946478111607991817651364179021201147680430402554847942329126380185764359991351079693742771928815425511636864748069094546038366729147019800337198437409301574795741885315719858901763842900984155116215155346287132934144144474354116405249291262893162859971911781873636441489672496682235560530295804090653251498286219030673865673357562189757513126669151334193236603338549430933158636855708331755173950201847498894034360913241502159805572399808814025640496340372472178279718520685218108462955146492186202624897255300278405046234835611328248960498786265515810830747129609415823221743540606084541072371629295134704903969786336020280561485111559419928070751574667237125707402147463187959994016672657029551238260910265685556754450486101726512307682578909671550877792829660803504361741777652165948319662475874056564409775330586878955641174594059287743129440538080625805914377395861544709439615983604442679541074353709123065760253846795360337764510161741262932122570950175062895849995235821959105068034211228619133282678903287409795714237423191088311426372932916406724753823269364698519018517528086357502982434008059262605282188563105067745060575352796232163007809163342817011479421399631800992135191922206869340757420567000997827978775396618277606966218225337938604793768374795555755258883039141297814889561039327683544604105715737285254386590364387838331348068135416929883381146584388039983932728061292472806926240343580415365483414075503904427660284096769268683643393129494668860991652116916537755276539024652527276845385117297575513833835999825606883269169706235639745715956494542531481697121321361727943390556723993242013182710086431650462107923396536621005790032202888236859861765713130115657780801207965120885279480411141823343685720216673565877529605147001987148523774543154152337337876129335474566710561665344743454696618076170924202569693840674392997537287958992853236621908095533144553624727249537013354080270752897585197056656500375670684402141341571130574543714885473307926364988514188500236640728741971546822007856233553770530071149316386067153090045884025329519585630763507052100661056140394887846715859984401315850943819698066976985107425063588340480341069806175347211801117418973594865667842496311837129775229376971401305185870374029142216000818432839731799653801893146655374489111740039262777529772292084206089772672468086017455413825667469656711661975878917009942801221308562463052820833363614514387979383860878114872834704278268440498736524238367462787276018341804644287682737430549967195510711656485649480483478132206888493863819977938428864352739645313817612714920370293542594980184730802533176324954068131963493003644789652593559731380647018046203944009009002253169403630541097390274255560216472948870312219931014518518882480689880153349985349906238206515363711667216975039568558047282996406578711709743663156743423733074831403977768835945880410233065414923615843894822474921129285680500485530953718189021546159676843743174748929421731631297433853544154327368032805664916616955469973094540696082556347551033018430013796532542702928604529174910685172722099438079407263707631832819863980414135708374088326230548138587381175957311097113263220735646888043342135433756178623516788948973880740664477373617649770002442760613154791629427904954606209300742528723325689045918783325132320372167966799139471179766692339671984592304107468953660855926317902944941311533453954611231337447696429084311372009393423888280818271041277589943738327406468137035416072690617313694006453646564893559910174725800675858099229371051191040213630531767892776552386668694927738897425826275225024942744266405587042383703202658342387369840853468022345705158544097940469562587327351122377617507130968052366080471061075946890246273064168446543431907327038192984630166108224774399115688829903146367751511739035868307405690554270360118284608914825437878239060563978349828264007691904840762726493026543233930054492409812679500787304876580545588673186991767662317959925731277258158649305451425595521830996702237987873832848488518704870686476041706227769151166289321101214020316030007574762381575127235207300962649443636369080125327243527224176169580562935286618323966395022755562402966801139752843122826963303241825597860211756138707288850469330549037551888384422523324565112108118752019427614588788830158709729566512183344938996527268172635920202465204345606882257189394958306798358885915937355241779639224522989631700104017576651423488853234768475737908689881027762902264341356752383641589777378241188988731533466013900793574098203639012117578780194024606648290578355318556427390109915836404331437808196930885171887332856071160857261889407806324925204799973423277069331158215236697387702119063664155695621022374898679070573490979266578563946855901575352276947844157101991050301581550126012440616364310707214647210582449957702426385546398960518491630470076529654889995687458208823947941378650039901881132958141822172128254050563836331831567727284498591156030403933924303111873887848647143966206152552234379908446411191246471511844224137902580326590026640702205426990695280041583947454356654692275984051215983014190709652316789622681348573282527239176707653931424164513849288119899101646006106897457364943553322978206944981730165338136587861787751741884982654000281717754700383733917960023146714423262899482116748510669523888499364841501798887396464703859614728846566186371083836117603964711750663974874349165117567403656664890723931325981599393428473078499947681843847926440403528574463848010842338707938782682176502486536683738652808620738766160011200264935208195505517457268066595111634844721820707481212712774490415561470415817132336515169145337841716500009298111945974363003548294898412562509734425731200237376970578302427410889692715771619913095524332980729757505882256365430454787550545729534982334344369516869093366998794028347197092581389952357938376086607193934439950041850556466965584696569360314401358124829473175552002952647139243538191335781040959674960259847747438438240256051158724639319440298384711255066585890273340665484779265493666907817178981617483196976404940576373434652451493374172875415956001015616508052723538691356504119355205052414652759238550720692851389934992918394871371013845013675727184626751336254742830702233006383502128886576324883370054973003539428426494677118261107202726939611389148467476334806942864832558334666073609212082482675288242869904247349715423481679085093798842703275845715268553555676415373939416042599822508637915646458686095864686638560646940825575349487622909805178439695848350129023981256694312263224632832885054099542366189613150528523733230656625864689919872072577692521304450381253935600633400063241556791278053392923513750753397788434166075107777895900231408270187218507115597149493245028922821240539773438726545913158967201185422041431025581595748906468801725931800138579155611169439908906779773460094849993796615552023489902625750035608264039441811009458947616432354723963353552341232526294815148947345007485457082486629401138047245740584698488104255213328864608437976820400947829183263408469365430815476393869487302462879366793973199961019054264915017098981557986905319502037808951304004418087202611563127410517972993802981726432631101720900682821182615554964005296956476938376421587932271179577420238233584490634558373932820204665528227642042246932425070771115411533979777925985416057270712785022987029934764003887469256432743791627901560394537084395146178230359227725264471799212242054141001401583317928146685916184063041984039795296773508172580304094760893117252018291436308914492310880527610777075642240381220308408585356776837685246212084156935380834731883955546877665529464237309793196722109546899408370494520406697216032795196044909635028331315241439448258758669170200125225014727826039277237470579151672297941501293572079427012447146566306877818085548167358376203228328738513020451778259586971132307768741760225753891503461364798444325842670120366119202081298141189408920559464403873997545300764185081838487773838484450715089141574319089251190557509127518069158717458751863063991399302996118134384031703115631322255463921025873553481981031402725514433750603707176059406620318769915989099435078324697708978412418592933931113594847225031109198613875715247899596118846158640749208378747313493153098250584171757210527856724129066451208765422579999158358542034239115633389717740268365315932075510344649897465304276067608317401186135002227891370939783767375936695706381917468659174730854435224186323563988261420725172764100403966511961649483731937126646138531357146501577126897579615053771767659364221037935661665125664178756820298023580706913115446679997660899863156965478853667515816624894988433638007508945522020928462421595980542461880921970721517041722623956291413279393183735268592597530352188476756121392340696515675755030699114099238821484037741736371233056839434950310207875206898149492688825074971355546258407968774100678203875508032056960223236100994881171862885882041268068626375733374300640682665658568583584688470250680800066438119354469122718419853344382861354863549524843448226676235851463424932617705106577277452704146915202917210453153630503910102818577222843428235680628330606043584237426321305052878651391129298182226875697778020217498993452839673435856408601862578486263234955935742188282260164604079052931150154782840241875954418954769815150972466088801730858050442625003731850622114142595253268101191049786762023803336569514458435998131959811049639377613503206039517668591165673073926216462361288501146225939746629824717630253054907280380389224205371718039832855472321317531683666388909748820024068978785336951365732579755437644539186615137576553567533394942346567866176401796479482940129861821372080471137520617751657938895922373658873416851423557197507933518210457486552394765551358094141216276384043361242164471119819462833674326905811769794694940608335695636805682708504352463036898491492468332676393855816457084209988752146683887802615009443021297514121835843966393446890958325015266690479363361170085311163684969724778538166567614293594447295572418595909185053327106618425815386105564300932495256107850891072401730261762542134572476662461952414578519251624210497569500110244856488347988180900358941165263026485263930580227385167169231756068473780250315173215479311788286989020931369896553018560577524381753652395953971006407459857789410586982579842113789031946632712307559169301515392974213855006490566349335713481586696626810083111246230999187657870940833803227693358471006931934509956826192063254151192046219737706040625335693034985611895727299740200914800730510338020320040138567325895447420791564513538676377691820850813177140024243218469434365183008395526256703281249281933336557295626070806970888171099879477216280761358823921123881337456440072314913873964489842445563188379317531144945002282556808719745079643246302809125841539420274912466485326411405497031177795302885561708399196074155705445047515876715008090607204616943782337421192506740478315613987973551350453932278105647015535383902895842456472806363050892053717508949603750519539603640170571283728786364355424092167931713842591003984974543219088323547454581268399530206110145396006192448046761538929804860469132787676487792309929432933127514525706625714499383510178694459323545587364047717487875665252927381349763237599734870876329130567023759381718721278750125962230421630482206189198706789600564199710142263438977723357391137746312270436876850111263476411017296897573527970512623745645338590680482966520171424618350382351994351924981644534106798601407738674856669157501215943728607652621804151596217775694998506363321610498237104134749794949724836638226890616545603974370980939855295958903275554355820046285842451598034299410907652578717642046019894213530004311840708538438131996384073285508086989738562724432831222692331957818054283363621133681892636193779629164315697695096833705039848873739617753682639642675298391821166485812906093689769517026802370739030502804979343826398636710963707156910597270129973576868353775171728924937797466389815054204814965777005895110145918074721298195600376991524010904797202867156068944640313287994135075958191926376316261146436031540153238500647000210457429427177118033566773053581541133923112954845623872745137697621844050220276226182356250640946694675835632684171674121532493585109488947675296213228449408806503394694263461857373103804094619627434277288556691838932107696785323373459712149074862880793558082443394646952619670453706496160776213048569637018165883778448763433415692563168924021871516912749778773649709469666158456150151392037792422175235413078984561169078924034327609242954910094787448320351689242252631315513395664759582744924313900789994495027882154010956873102836428579880421757789993598847641064388646346839622809843321413445834533509749610375965019696511751837241281614508638065712931571315388715274331800395883189080899131207862633055424488820477779832453809004910535366129801249530647299520283831090542076121069231635937126744671296888689268771702319841112683515907690571715163747042662898460779368543624047704109836611899654338958095880048762239649558734807075501288873661884320071400475356434209425379916614936051145024880646723066747517744895025718823272665932938749153196344830492985251569210938435678930887173171152608244140232241223669333753263600814571501945118980231883664468961770546622054612098961106088543594650653494887063248950086137253762062928342993830487149146638983437104688096983019223874011455366822013107734645639247463094861197157195411953834550438119138480087017877010147322232144250660466754323101772415748272681354451539372994698704468989989549782710423098690222422430268587704649081159380005642402767409687443098175774807288126412868821045444882481887985857175076271447237310535062247365157975455514675771850174163592922276307108652322633355260710385054897525783584742308553709686573410447294636788654918769638336019696927897865380342128761207622857018650820722241932039276614873337419745956229396423309823894472707084324421463102394259011547085460892866217837902930325514757955049120801657469341940696817707509196110480519094825950515812609013355252314422557902290428242228843920024988757395871833950280551377361841350220288337097371964132389984802421368532699719760828959268997860606753208640223270212115273455448369641208239669846549605485740213306340385246953220216222817557842912060483007168742626653888489886228342796901379549139080632027925494391410302716254411608790347151655656375289902021454362408232321662339820258308851913589275664151799845911763725385243214219742234068809554735261904180366980105483384295778653193513754326270016966351201285610188288203573540353855375921120663751137592180735151180320159083104014560652203306612858665967810927701131211632127426570322518348955508663660741042207710250016860470172432683476457799705790225725374830429876189643064261422208485548042307690605815770348983568989630540476405605554334931409406016343954023336128203609058318194601424723454101849598129238049350543509844402789432098747470180866005023808831261570584220276555596776685592857786694609123353970213628892940855475791870087858477569138527667343911426474495112788522002424765878469587485900050406343212112002237823533235700130872007781453233999147708082444659316327515674038437593661689401832993224951725130785779287850452647443815799592911933913825339303899542560154558162165208722821538117752465071327968229543597697807873368335027802366333660580909708644979778845260962516852158486483575253366893616782217582992817462141190656303087981048764413506422734248214884811685941399630152157708296545071726337474170098146403921662091101982321601592490605110622989451371871126083364300704408469027861895112773359602142055318704632144797866338861019514542126505248679893902229645500368485521846141903517611262389473638755086013028270906662067707537066883196576766044066161855821854662035269538528840597632861961090938446378244018106600492928978958004299832372307482543984864563699603776895406748336416700343305132744316064239721139173633311212030133647687720806244480987305607408679887874948223790862227399733202670872173497050646754448112918234414097271103833283130663235211133070400560488189068290865793537074008158543344115382101687591873355943316543318681728071541438777731634798847740482293935110420955743969381866541121795569883942013081460538530066457052199352325040809292348261877960294420448876361302429861164564395629993424534216188021993772199281809228585457521283739988011939184353747673782621452809435942517203603643191949303882918689485888080848500218076773198758378609985163135538247742763051888662955217216787508889117181576449829373465001888444421540090125835853031191864234210000253028515871837399191522298772438102968624803278509521893694237461922075457915862965511710537054230574807049748551237930469537796359481280853030205300040607520665609826600427823253690711880016580415598987514554205435603985293401517049204372528844622594719433966377176350763335706589163187883584373894455064259760186252426600492139684541273873604510256479751206357532674040616275207454094663068628900143478847511761398762348179850198069242574522848389130770906305690687737920575967948991687314337331283470710321324195416771922611626033127367883415512774954131191109424095725830399768521052228754766536460116563832763921904798002835697648240359406728813845556982761281825857787098107340614482527587910203649627263829594822995179622040845429798020578047610199189335034174016018463097936732603653534256090492349053697943475957326039278423730581172521019875351598338606791964822062774094147560891671983857898943621979130853430634262745218301956368061662873286362193556225331564935523949400639017869302909604829720293679167557245219484028164623963802303601116970630436724699046776744090875254919485823658124267826347755831677815628590080527656817267176598497442863104743509467922605234705170651611178815941486570590738185186648134550823291287901409073992987810408178304283773752734007550497573793142165404755213453022210281837550462090574051918231674646543721511537219399301405651912377358174518726711722757707586253395820237581907677132918427190331446790165864659893446426323554143228877264739460877460849111829610618751589691813259373168677134217921799829917644326282911189465158492184698899463614539226070542181083301513371031715132869551699117354322073109751982789842554096200279408265983829243626921251570921739421763821173581209477177710655005046831677496422698342715310142238990001692176841454182207645102613542158626629513783339076174737708717317889037061904990840079789346880513683548807031528719861245894069941094000833915346592838820043392005737058277714076459155188612515911839646037752462825632050448130605655477714203473039593261093440126718617294111361409689762456183117497281752970060632214338769849222174072734510713184029259641128209952072395234563861418326554920722749701383731004030229693642083814192099662745457559364459825284522991797064369161392693774108734070477716465795862862762575238402055557733523643799744206879950283769637951035476526655313635849643205530307665308853629548985581450260150427173293477986077174458692212284196420325338346335160021476963784925019553572043476354470191791768188689247655146299963106556511847515653526782795257530494891272983404021557958262450901161207684241796056953567700014382018282961603982072125329465025848415560916530965094926269864246340620679660195361676582686234155265106753779729078353237304562673145337918221015160978403996651423365396896241409576164263647100525597005427333507164071297586748525568703609463934720341005836002758828761079827285477418485967382100753688561832859397126808710472087104922611126260704847831404775445822342915366880944847781390749688512412510999621769005722235705503318487802670644729557027430934971044165363694281160033755011386482873869130863996473309234065895710998973557744917382675775965968564958756499677047193474908769624877389145029205971452038654467303598219865428661345739154328692799232697114474770545923901364221531775666324322285239099306558621576186645359753138834891134262018015027167176138031648401650619028227503647949423070089831717747088982982441277971910430990730920329192383995378548396662291044113295627399443946612274105474481353117639204439977405439577637284384326234199858348843404705769909296116928864599036991543648145802222345245751825343692030913712192800338764454533191046078538648641850629772431313501509817913534777634468147844503118674382709108892651626422037616957607127451219766168237676499531819745579305907650945818031447707601097299320860733644232408872747349086279164976213522512634440358817107558304502526021988944462133680566028826055234064589210008151914621316275995645616788426992780923133780624066219486568637810457897329569205902450412727062479007861139663942705103027666404888311474174943389840047895718128502532611124261019208646757378806766938764812270721854235062629539695645346823264743660171817386133541475990857279868603979514293516068776031121498540862926115525529095894818551989150758270906820328324420836588853943192717041368184428349548217882326320332697894854725985353978357257579763274862421848042417528174701532203987464930693065815321189606422698098906382662393922486600316994808296109076471531366596835812846981325915889686835433669987377498021269222512125295982950016824722916388222441083349627623394659829161652132866615260479551306768553090587086457209564322194681136103671386323871149382876516098240379037688127295673837186396443680152905630495695185114141874070800826142229276542834577373432510737765889396378533477299803274120754614460536191222841691780931604910002492216888444310838293137722017240163840840994310988058500818428330880718692942342906632754073416583893993792610669778218479490150922777892411439352316346205640310358823413902073072330610633015431152170829520780517229617944115078645315217094269452137067372871387840764144085874853347626014646881097125194042992672547021348150019078324041610169537755800999258970428444043316430251409891618944850201420463535350403687918046512415407507345915243000306298216418395527472662132488057796749185649231939489333497907616291681948014603857003037088405966519134653691588886339632467627461140557747529753913396140759486782037957750400271968673274177859071099623617912205422254629987895116874444245556127232463815574881653944054168455843249501197766273503761823861950866793958466859735708542691589058991412046549511523141582769939051403866374856472157111282134798143625821064699609769994985328592120780998085567446716373303737456235733697668370735239290285628564667541745385353647700438371718078698690364552887070250818928869042760015134656735167666751663902988802347957325896852286808052526723944152648622722908136965616362759786140650380753883107877464996348938728426735082506915954887658407818325116514420140149258585384301819799638440281171187591175142573644490190128949968429324494222636510926986708615318963266883128244836087050100303404877373831298400499920690520561426589051741866616277678871857686954162430746836669300616408671668736047771178567804267947955858011116980748069351618641256176431350895951012481560739587601801645859901006447268058312712006794933896201980864308831333851662355452515734035116140612194677976196043942551050427903399215483945423173460609939202811509342966276756034141434772365752005016974818245315219209620040716818023257446167843217706344504950903524218687479183755636682520272992646873874503345855344919723314250714463951686383454943313172374233454229751591214293985909722803169901734014393751985212676820502729784618340596315150872621090637990152094865358572174752046311476956080331885831647185223853126117539883775175859784166803659289625872737183077619008381364508579507839404120641806644031723670045473539882280156225957754771023840147963895238265088052881094740020331478953855117345510127308336692015662179997083854315365385262203108163843682296034338220412633137349702991898628228519265060782652374332581167144100491443178869537432396009378756316643417151395205459795833639685678953903787780368455503099535201237085453005783367172547488288059850215428388530772732815529814681389702291759467311364256130445275088333548914961356437709446949610870198122069189938894399798201832332394475572505737865820385440811932522598980959125649445668364940977243856645937392796492090521729495808695517418761178124884156012906393946515594332275008179893930498980035771734947591036747059999017023345669408153957264452857956267100100827405611116625031526421337258984120520084393623811448075111777250820480811919948003643788957591884300689699760146816109275090908706281076482841047422833666440144156970286565235979940228908202648048905082264296924679055414805212557252000725787894330389485659681226672376625522079815587652281996772818910070372499117952850646639624166882074100841357449262112800424299990581346284257091348478076175166160174507738397003281197973376046131639788550878388833048977373434795305645701753066450251589928346004185300574793746422562169505348678987979085279814405400738239355846564406160978323383806091933636148723723516006828483873796617473793122890660259115951816833691427579473364407312419451597666372193953180811418803397352675452940910331581272115906614666651197394838980161545128843467203070434615986574302335983411153094981931455384681303675820360416130739070014203801650376789293812286743114407774828939059937735273698864298262989917075843980828669676387225702114152185646331871000042506131806098113328382969532977964146427879741511799514148118764547360049921979839263619405794932856749817488148551101765688334000773668930905906972875467602276296482519424306913971893498377957641059644016580547583502474851171406731648455236566081745300372226618259573206376258535367669843545120416984599018590883661912045802921938284634266558672814834172326016174000328763006436063464437972602741505662020545770332013678090704054248617698871994726319734378098143142739199176265538382807028718357847008380474652024247346057515715918791892751511799808457464797787699030997979196378395151555275637892955578659334938985029872818251807120116093859678085881786447141960100797098210297835749234890144434392501155582615401319921028749607710366846114305846587697458308413806210994372919485485888878961602694425340423715113461147123003385934343073646733252461367270233705046227940933511767588929410394153599274623969270410528765206347472887734280204029405561910145835163736287234622442653454498131811126474371298563205886480633249880880361367545778672538809787802638855379369021275833240644072591704965498739564989268994373896370780753351601097656625513012302139952917927995071699560531774469976304264409361211233704695927953330532780373578722090907101009441393878123410631705417251863394489912062246188070435617399333743084633268510546348417526719589338744856822165235853487720851629385882605757134761126885832385295562099273432622886441798103599855872257924121453682909846807947806716652111850182549035079020147383909828204038901980418058552896424843969203217638109194490751154164773218671124020526641315773650293019246386992032051195716662300647107831892716939805921492208217198953624562185659424123641896080684136428330890889880991263766153079180294631363038900966969306179398298179587329624308870334192568860169392558214827300616820557106125186335897955850302912400501163956582256476069209771265327289204063432170807308861638541420489337715778688172529561747607796851597609801449882926285815010229512173481560253916873643236866599747195979713020611853963664071210323757757963438968292846777871246109813710599045357679651244490410435889095281842612093056519178867441165264351933274491442831272971328723546796537283412698922015513298957204665975448903230347425225598810117025126477623248729941975417815720070636675433410500523675413481255968769282957280008347500027604140068365424574968936024627269528575529574885845010184675039335420611723170490925649404654369261777362973196651644007243292046147891967978412682906500747534148942450319827109060308046201813836163621575765428001748524535610257424262443401223272458148702092380687882851876137613311747197675348466100310664535512212690049778009011435834758321671600001244774361655792352934535145342481060292123441410665762447270791594560795133974288829054577017775858804247144950118370400661302369909813599466860103785609071864882035760937777452958916249659246422249935189865003668428116665463599263328210452748214022734324655073302272805239519681068596634094784731112948680183811233482132674859605975995624748714410205743984242957683469314510190670550269088338914397473414014195832360745300918813493728747554540038880652539724695554872899718653027517329711807535005292355289804062983120740837298288386474362712644583828086421177425098860220221298261153169240652714141170720628631519277499451811701719808435227363414574197725448943655325693036030853040515916654917580983255394713868792227795565565087369057270671466389309863848348953820417058994325232997702445516562971080040903201254538470553294865713300021586493000047214899982113301397687268016153388353935131145376907593348450157318789296907129228312595514201983407232482398748713092589633800808345666745802767468087702809033843368733349172975928747037559761566252535274736551812415096411337274861989661423660157759254513998651616310823124287288927134779686137293469104875480334445890680245357605502270895136707616255281415541874977657410518410786789390302398084616972013284459347647502588160831735584155905298876563404121105934036791053517553274214259742484684086675040557945829011232108544658735938795271146573576400552475134930932237838264304244174867040983389507083864377510506584308986974470320884293067095262195372221996148981143933148475914822398930634282785630478896346417336504218813899226708389192887213859584900144878524970719850983354506234672076708218855776171601033905946239696651721632589558151738743035476727756081792506531469096182351985877369687251344553047092705642384712498169416691855294257386039366115415342826826630307321384063640722781906787353684436137422632858616732314770549257391346782167656832002672034680889619854435620283291972616952300484527159893582856503355677777538694156255588995637413409348479584183147322735658123891115914897472011814715611785684866077127276235622586563426647905489351298172414485303895371186390090621688705854400411659696103566896634190647483272085663561856365318523295752757531198700973848875066798846631290938872116186577875500556339403231971216199175087070888874924423672759195582010603659332167916016661818098154540439093672240011876195495332351698979250709151813102598453040348526746908475124580637615265384767465483556989255760328049475645973675330404791996148292931737328938177821213558736600510184160609541714207253568844066566707260450712883296000055024805490361443899974191520836917632503650847111149382156479173870357020407196978922973373491716717562543371794474640424654127973212436207788564490744570101702705200876953703152950870654874232172586929645933360495677346142524587439936505221319389959879703157742748339496117272423124547832636907790931302030306341123887541280330532588830809644726083165425587854379459777185788188159587733139725145175561487285829346701312533796980723714101885109102722585956470878108698027737665379471070251108750053946859195774276660669136317437489848462691450371652295815969847797118813923302515848564987846779464815730593380120488865022494354496841126974427879908863648390486820336099950064477638438918315441580720580292945331422533615137194622136304685038929494346274565875531261974844824529842490288714396790014809583199137243726625278315478644239078686619554434312341895392402531120453088104373454084732877147655355477178236682382700268176671679501314283433414635621222937078756363925455232270818746433675061574624980166820561673708139628959459960915966127699597292155502016138075446239796059837298644287715532145121564191249463530219360945449029218388477506035895433908935047723031396500358665021538516112069171974679071237347727759473237163773530943367785435510315366472671012840079620059212882233551370298471069188319796770397014530332205721704315393258723738364199694383711323279966513554124333831216488076196298934640952813411626418106941133762737221585948767731654056087160304725710293618443432982640283635730108854923956350235995459457355579017961729438305458790283700667907539848278492495837597616866688094443748014005154856350598861293533719458986193578263453244224775752694540330259114523637843622617934883886365637834991544860863602407868586121013961431310089099652502397520323714399881085243568470370487943978414527052380747030676601951422516238419657180947895568280672530179930665910118586998540563906855086505219113917273440040256591918179944456340319594454491879415668444450648161314077506237958095427534799709283377433618543669372230340406601348991753661143298883061492566934495256559763822358322079480975717653034124840221667449259247733256163930307775284032016323395583770340093616634653661889539839260460891151268444226961954663313741692183639996083769953745117046345160842913153981138534680331489756728646608915331090096841341761523828679950929111467480911715298187292687215795008609887926668112905958653102264330803943474858443109330225049187607740049712126927113419087718289000389787842417011657897860357494615694595296905501844644217355851120119095336248417767535293293554316813866655226262215686847065406938300024297651412075106499795145854552405433198020997480447231428289754329549494407559328309354669233476382272880222849305264606211488957587948716659834709613663312475695487944535573787523116494165194393694329572663845229359994680484392513428148093763620381465703952785187127430671080244362008551520841600804415386661661290809413959611896898531416649767016174535297377625175604549032297452005697782412411264351513138478900226561622665199079417908224056750985665171846160922284780512471368040605042947522370432423683610163647775354913209146399792824535757612693668373484774111004067091158017667771644489230845490021883241236560930146243080733338595037140841647800776116095529012998352113772399873892557862724992425840926067827891423842983499361661568166386014748131731245841670654015261379376000633104405193498989021166626092718501166292763494273830067422094003281298485231792672156170468642699841637646652870900311667056266830414792290189487836225802264502065490112878714700560930374877357724520492810563855905531684311034766918830291799102041376100278708379563216557186510105800201920539908098654812677997785662861975859311525550844801900418832330274446425165290760016734514225629360490307802425873717784108357416428047620245158717383922453090873507591579294632022228914079126517040764143861229492823401647620465540624994903052609334431958104936785993997934272513195816968738426225774451389771186387063637750326968996368905125299131212061174694078443243268278432184440329285547539004305586743908111120588922675476430203511055224245724968921596039538146489985210427979652488144945283324751117985564508821588960255922238095415830084539615415033868719680861472536845492290053975489395672556236618299490524251579164128536583818103092325793339850260481629312827252894730190981051703050663030234764771805773045892143802525419672938112845875458279251744898650070123124122094303174418816870842869457284703097260067399776629669396771343566735345012474554263223716490204758102297030108871820044896159428468548206030762718839131876311919990528263237658040424948351809058380238496187845825773786647104982519395319827598521023779426123107988887025679616113218038510492028795580543837504400323257729914311909480416531824337608181945563288541042581758920536432139754514166007685974880121319482363162075051118607175773601221277699306090195585623450121789571376085246297351926958554576883718924778605540532055857320693800791817597150458285329652520633271138439101932144185669078588997627213841426838885725359023907286911204812765305091931028780667530255620784452275430940343169397309672177109929662646678921180235873552834508648185292447550182277061447773668030436784400674086633647003326195781872164054769199787741115689714645900460046487705408286123067704891094487289394845378002746898899981952214547184194368612330649675305279491704344375726773346325486777331059387822322577488770736418235034347847432762428028625926528813690933120126711861020047293485413786691148476476220996603220468188132327284529157287870593542323580453950724644194021932204780398828365799756111494069631087662892887963074830057280622354778519037740911974731573120883712968872524778194770287931404069831256262548813045208179259182676985129079690625339525084583367239960712972164227248852148413677837866010768010425768152484507301100375318375924450989056579663642637422433395102466546006454404208384272547403238329306925454134781773679444045630799744518202106382269464310894087286406402451662775111586053575421369064539424933763966778750445332102177543145765738065863689561539483018660986689463213803886276781855012347072013882869678893823622835177819915301084692406062860923336410238966150332178285371706726910225376463979979882586201433803402879754683374392304053826406351938014838543350049002306699226160928943819526222466339617686464995246365396775223755457292692649226990837971098179041192691382665821434652743750999204071251593459990170774434095966533068642147566886007829887605143999253296929906461601571723298581862779630076288062936410227187483371327202143273350387058727707233196833964425575991136979824746874531224266096127274367048528279786627918930698529945515782315996393153412119579374393231423247824729632167665479165937139066190722207565506798431565518482187486541100998529290427887539693400025279262048250213867766224500730545207937979296688014489805215374539347867327255482363174355671318768284488004559022706056132646047168990120516082773727852528992345313919382056837579345381342286136716657059849670745979324874565910830520884084675125480005747564154667166807530631212914924795209463227365767757722288171491430590122213653033178166301000386074092019739008129185364739306873654405949160405587124235014616888675022190346248540319765272592046398752491614147714795192343960636859319879007210686177984464924899607559672366137836970087520234562191263021448818882946573718927310446979705956116256611502119451749899222724617569588728963713554781433629142120940034217524019399038649932806087112295442536756089961606782651361686790839304586292122296926988986012026197509774116812996410995479427550529110464367469786785355673440399211218259212494287605046054683406104399217712727878381518050907725665348594805354996384140131930725946852181741697581384486077628975985193764865130172764120500449833487116189264056004755983897306335721967921598532724836044882007810296392167152478293621460553168600691766469233166900813274653966602081298712850774117580250380977689588119481470098609590838813730664164288568616139100691091936863449460885015198796169326826618425004644554703494791185911321812704137087183127766743028089874471244547823106214761956732211233774615035283916234735605807727391552438756312292871533412456012411129530549154667165390617125663824777296898812915601411049454011005970843426466517674656415262214303602673411571980556299411124500741356447345226627780927482272169288100072239554097699835420770046100317372172389388563968740348227389648896581234915725058120684785047510060772290264760745013999080090312392836788299292359795902374450618331397914395981640654506777551563744659489095315069548324944018048490516511482692770070596770292404809537222275092728729733542547644508921938862999032113027596770220420160431966958486540073592081557733086886297542849336462602661432053866847364371170436625946605223757448055823815999102055649872705801062171732360774712158218010802278613410514804848919116201450303769164435281223411889288497950887582388241536582145460451320377128759850891978361780809915100106994611312769540629324371164520548930235030788678334898731601843226379793678593704513062947405391475319185314181556587935897599601494420481519144872881479941511696506702487550958701474879171489405118514542494685819108301908972626045900702636832616745344396490079529311122589613452791475825587931231203132455361003565601957484998703374796037206965663989294481390249896022160001375048070085984439344281768457347671615217992948789810560850391348345255356511983653700983883123546355208017677014783904758694809519806206822163596933708675186513806200078756180618913677218059796988800699361791956248226528816883055423828747127162030282559119121561861044905087433616613162864965570984565750118871078954353970061677720340352571922097830247707738603527887791077068265277361617287930819212720370465555748067122558402211242585551144108181085428643218433829369800579845958869050610905190570186960650451091948052450205187983558468841757840040089522525175881028447210231041129179016029913525877936568918019896660461744688786386938195156499027055071614104610097368077480721484400512920040450274456722112784427819726700130126863080409956583823093818393176457554969284847413949262334475872724462623723234799366555126694234024373820339189046384355433861175072459619134034287514004607379992272643280647091170849744908502830118971847615653585736332565781014724679990546441593557293353061686465188306734927273886726338907518666240011846543304639115250061267800702773013695805049351911704241972464967100373947533588164862650869118423560454581258753199012323101656661784240556433125314057811010683562445586987292036795002123783735563233117708007073437003516221255549550844459332339007347967390782935036935290392030524663018886595221920033274756565677215153035170453573884642394518122734287826807247107885028841095819479603766768402491145923766500426161908496668182797479449693138712779111376814843672269299821797469604633892225152522057636390724510808168318631067888124815571710400713329456952389229704215523944298407474117193281638704832912162944345873657384899755504633174563381790956161171946598239405845576986012700237279225774561688509173140356316797615626091980208320137899300976977608451707233728173580169658762342121754612100181662227914501169936895994077594613329360648874205146836696955098876371119565946738518821892866030957148879815081803382449972629272225301061560348622766955463961124433827107706543133172659031297104129046573982314697695864668731161071207280608746642938075506954642833135205069867371617311866819141367462277448214680339144774604866773040666863353409440887132935190134452708993006955919934515148323746260895306155375750162265836265708252991162844513995107510909149989709868897045597728759955642002328899702050225492364605543699447045800656961206706024808096029242315559005726101308898060837133825795793875454768607374732285791906906495454277193561825181009529404212023302747648275283161159258845434880329607919843602205856979569256754197151049232234210138795985635522012291893906749069417434696933024001080489050714893948530692982909000491395738353463054731112422528421490268553189052408876119996972152701718854631525229358926631332508661254522648121181566257900950089894481970817034788497127325449373376070927842487173324983212393690377383214216485224588107185581383990707217826025667537471725505420388530028256887182829849963299871638543230448706484915126476275927251406733126276310160498999704593792154142800942855578192296020338734079393566218046233588396297600241996405709296367585295375411172882515383726578900841124198814346782299672077422774360116706508027881519766528254328718966010389568944211260465942450396587957814126864628492977507996254747115534354997918746820127385512710362416964058158740975118945692815555806485957253472830555948428929129114523641982171646942365108931450999601697626760236646237350862051585067703970309944811571878767993749071704805570601707141576393910241004788640204755187417184139896381889946274294767219747686812131628712256184197979757639509759045039311161576519100402158678396883690873630175470107465575859690484292392915093321112682004319793072087150330844961945229185712959392518110487785822243214301149018851550751672281581154724754305377085128580155051858404072429307514346400924537504061042007571908614214745416351537868783416392534545714807399240569609437662874591214925027897836076009968291239220106802034365320997566736774104078588316268823383678908572502068325487392494377178506772394455156910301739711875163146551957487259095486118522227451670287078519031069983281597890948926329991637921565534418399784011775986176279094104950695480027403173354473050203528356764806972584933788939053051138005238138403882450686132443512540197597893716005988856907999247195389080032946267840107671352080877234327687771505763722874300702472517459592273696830470241766895680326368362936590516431619100374521142120520964464884863478989882191322172668150589236505560147549223180818518988351973527755334960670973551043410924509743197762857497275207768943984512507072617516634638479659397804392943231219367465687836192177890280602757115410843922142055822240394081200093682775776258754373484016049651412243335591010965190016923761588512130421463006850814223684875412401769153555228328026143296953674126396029019127638689377322987991054029680973037039690702396012599090135104547414296248173627061508815817015813234680076423392879767819751695167925035938595604275847700693328432391774726665263798203109470814893690036427847773726717240546063868271545870071994899204058421813614472691091136749879786657419304080767345132713054993784431859938809785064191299889866994683115246111142370066125431329403164838220494560664788355972634185865824154942631837712393392286138729088584301547449176331528626842985815080953432641420873141361704301024264480404610772878026175844162215092888065852059200766264105772980501354627394059520920944707886677180923430826233678790140839679064352473598653679323386842761767900277907406038156352350014752157324520394358442437536232744520859328977391561149964747389469767965722284368786042692349029921272847267003087791545695439202703164779921666482751673951030796673656661640918837665619376068500494895017357357460302452045450301481831576123682250764286978653519844081738326454448581078754064774027626916688669436947303178804841283480707850637503820941921835656817202300670720803595396237257383081601387998687842854020218490591830033296814121557809069475614809547484106081972770001429062921324261529267048829485969940625623659575686073851998715427138608657040212745856901629696840592132964901249187852794130529632531294540629271335397573715681023866992984741243950648591408264296577868686666129800438610839134732710455292891746096486064689282479265711674575277674771418506156937323435535518439857644303668198902786529441000883706797655313486207970384380031938612914471254846381765112266236186279027351702008091520127720488460384905184140645159715977570348770797494463134157850052447176854811922012302262279465825969993075187325471185542126708992251068779833742882503067194089720741318696654479543485345930077269858821856221882806609352197088348444082837215825934709988653870034069116600613856948131018819129941542877681751267603703981908479857942472103203238338549010069551761089944268483734104358058699012734030298137973732389273370675113354823841681752047841253896853997270197050780864120253106060708872566289140463092793984300791739937800664827720537040799778111785636981378019866049432458885276023201588245411444546960775203325664740459208667980314890263490861756277552189252486061362204729378835241768020255014687702467397258804533238073146833325721064093494571397972397820728849798331329716664914124248685500142600204402094746845679159638924688994553332195205977056009283282407848284209648196626959459671641452314451611375452094066689512144939497949065872011619891663389858083852954632654642780308584108561368893774898191340163162572710648875316108232347437556904218378963676871523129330977063670397540649102898671418855874546808275986446143126218677671916462007900839523349190090949442211109332033510047372749557390236870795864644235849608012812090986503216023654794286568746332913862489121804597054187415712961420028507428067934796317114432635246099019352684731701067512544228254857726829013496963186100861928548903589061430420562148901127219339902675413281613181486598734656243588733202016112727636019321680476596159460885003549864546263746474140693821330474881379098557702116587458904309992648195312970527592738609052927539182370603927935652030048541906804764009653115851504222545300179403966892610353051136487482980185545401736512291024131418701415725454504578258489005963069310000265562408943581058590657596521207168096189651452364996748045078453166297533324622565055272527880979051149910370405668136723280907707346626550688785255330794516254847863445421050958765781075263228222651719239127740664743605148069190455934590336092724611404066378609122655608628441280956482144843432608621577303832360218661803919867002567367101546726365868216974603441361801860368875893704239312812192102964831097772504070229984564214829666829057846277424969705218873656392821293697974862351994474391872107492972522292672317315822046817465791284778029511373405731682940669497505378734625915183937692254300135790585806271725875702252761271251865783695732743351117876084633455967430100538212423990359414892298813530725358967817929548180887005093059407224245722060515542040910802417852655656938127988361173042691518972630346624500605807308977245506931836100877793321696574128367860185525887336686736376854814627391121897839213327082133333863275334308891196356221435488009576011366425040748277655229646111188180339124980325608519069714418995195292529333528975996192997765249924934185497060963293840808152583714431592531056176967606204929049764650535517599762193041076839439060987051134481839937860405456262285062433500918805977823270501685824820201599448213937164494892218549955422289051705501039926509245332375840121342644289745885759142066720812737771763660791080602625582008097463502388021240331100256176073553282616108317414947608798263385735883625728163751855276429550967080111977996666236038377428606214939697398515627256658528973326277666627713497647502249697438615438567241485126079528749643493050072754175763664093740454216675582396408412400318227785281531435654236853055205379944262081028040323578081385931001913478196643346531260396252598286486757178486974621356171174713804826354215196163348820054383600662910432881748166133672955151890020244538141570324733608991485124177473044471707487578615116514512170810020418103673356046851433533111728668678669525559084501303555178449477457471816705231397956482284692577396501694555814168979611431291039101035650239022351562200811423690535987444050199730975988934523494036343419842034769537866236674989463120672768829902811479921032748286077237542190722696165406512105398537436949109349736642222673057795827923440922896349716511893239772695747737740165027146281254629938978297240937949008487162119146575659147423353455653396748783578122232424042224441793336468422811515713467679951623585678573260658526249716032924107738494516392568371582464301638833380381974101938065919811878920762070502752807444619053812617348913843322987791899199581280775787633256927390316406601586398107063658991441346142878435497303961692036916034443324675294353135285176098648934442960874603333182126815808991492729117126923407490651925345109051995995776106029470831596043596748986129815570249824763323590041424007216547947241561601008773538373417231051335195365933210404717000384661043793803092851617664181012817230480877080210288690192756223553639419156085187955982955122102065419286006479247169494236756800228573004884999912054766791549038901204740292822095189906091930074772975990528423883773964788745404846226655835794268423310905126575877954299572770689761041203385740394681348492702291841689587395983147653734533360705554514651596239231289870264214249072009136445438196079298610353532861379987041647938755247975905659913939456666165864168578710886702640803924398863428779478991180536840915514079696820606381612523877258151486387165627074234858745324193109429253657848368676373918102273741132432977955156333065431971875061967213257897053304943460435554053176943096555374281881910588160153540307217594302040204959349439405957897158045606033786738151787565626381483325452059132328297808419794620672882207772317192087207770017912974032117272572131430044741971207381666623000604805810430184964048827964021102242827838021435146056785783541251285697313437705480712237468344559295912470868728681370073386035108779070187986316711923238660964761252504436793359826209392356809876206650073424301822262647930843553980273621437365004231049291541128263664488130690573518816518190420312281344412805950755743802080291616973442063156980817022446407745969230070560597913412318249789316795174411010006364559629106246109492178526860771691421564940162303674191008206040548642613776530105740777913913221245207973021777319124658617113532010549579833371751846693166428449207054427814502995515270352956123072667523584445986175967734352968450900167850838833148697002608666661688413305911588055678876710413700769588519830885801306000942618228611578528406043066149859366151634069286275100053417598203496032368608256258495270256152466879497487529333306894023449702394683666245300553139955360925426175707698957312457030346661872833494386372615772141958795033971794159051594690904852270304466637847447099293561220224767758530899631761801015641649282149282547906984479078356176151942268403578441528681194072018947319381300017800774606290653592528631160646660584307140197108726597258374832163567002366570973633515294244336183338456642691669432243421899049441882294083035190250114669995788361870166965331701721015640246321458913863115649559434994057511503060470126172542856225672033066728725059346157858303766317325913516083029900691840373744013200082086582943301187313436136358832547042126464567527170391754121471855386248175228403001312284837321658210027358657159792488577103569301386531248419132623029691253787091006871591038482512239290311617837393506139082286387777113965556457803750820443041824422169882312088095085635704360065553345414478934267240754387233033129747232563271595769205793407208329820826188726757313871888814843910724003154606828046321697605251645277021497251895505390990683891348898307056998367343531155350764423597594185254246004341773026567488540427351518257707508483194443694837569420389706449151161044779668123095482515670400423571461530709306605594415067386005372344567377185820063652133435420938769106972720024529502455941583647961842067183699024258720488605266669656981525582100196615085821246748292453031551446155884408118781376217331066436343577063296320886052756049896046657057332355271559125621035165462702571346372989669791742625438964634448446718729212528903600873559508914842044715627633162440001628091800874936220240267652100791701990644691683763711244379860822751359875115576946195166264314593740628816370497995328712212201800018810925409511751765130285412902691924628056445634120198487408059602811931082008847087469908370916256628452526403905450666081403127715341051328599185942732692627584231507767611504723324436721037416604863815621975010533058825362196314242290204077468177027337176149600615491285549037148550781431765220977740193947744908999373413095653588770978920485669800344272772931527380084604874786331946221317148110702109536482816823060122859693642500899810857859708101552626547677087766707520380599504478076470051914841445419735005794161010513772442304363044654507022478579412024832419435509094700319281789425972669580838045490923474199767911351226552963484042280735180337925404260153886115366293778667331587813075796528458445919008596630514810044932096225108047139053295040212032759593028801756612481256281985543473862998614678524910227149263286708056332550770969165589151104729956820739283797454584411194856208131664900825978824840039948377018229427175405630409725344247611015218382284935942056814207302899091193349302723074073749362902259910612198509822675593321215194010088603143492182674299497138386489492094700484797464460506142109233587516191082877310098140653444330945032607578305757499163645408230903964986791829999034496916140950602771572267241499361139682240911788108263983658810186390866623512076217290569221486580146689649079747995016074284933482247716784564793061320779902645498019600094384366622486227627705519606818577607839120712966977157639034874641993216770092622600534784621017339627329007219782091395685788448936950657783694316781880430124947756347267603156053998056393911150106384955227544196670697315203613763323767139277867732863228231203835517275082301693624898317435911192575103563637607181090944834243179338595351258572070869981177005312904613262499263488272503764715153859384833816340062362078168863695722026156086648937740930232233998760661758387575940417024229001029870866802932864650997901010914049892279924624308413653790438168778438228164232946944100458183660715101280547781561991118203191339810899400719316131671781289416997965811580785636326766777400217396988820436684999953923401898147235405470058940777875071770871466002372313935160787910255069078904587307349338203828210473633328603281551707169315514807898285056221724746035585712243068649003480554278233516220764231116124403896727614507457629355711216297551528906660004885705815475343261168611600240710934832509472721326371633692585956114101357895755767283816416482434919198211563461346046793984203107368148200724587727343116162020808999529874564212943795588860249103569497931222707882764081664167136028584453553995076097912348760167881291191327193699976470410043213989686698482080550532142199583273543694045096555130673305748096797763959575185160715514435715788526354731270419629406304548374906936196105680124538366916193990683073255044165247786401991176753582404067128936908903828074085392766149113647510358459602159585949541259853258965745206382646215278129499871733649198526212864978525082739625363372549630096838464991020849231366588612740434471550686528267446601408370415094763523684796140256343218502919674050233571044537664184619184754264910617906696119178415792897424609440041094399154100149575691800962118405674886546185137562800818983832599458113706429611275390912563676756140683357126704450492923091046044477953834996187022244484970682232434021695019160525805560712760933019042784923626792514846491591840702752421328002899745477466119261793754805487865256221392696630759506554149624042275331884644531616345860928208722016859932263181296561397831273833909039972712276635670250374582769422661482707965509764079473904719626820198056139132258321279353681598012551095104395701653538530386610288860040584113198592877501074983859466330619394944539015734390747651540317264339671523175042355574520067804266398623499180794575771963308839830029616354015121216897989530066260244395824084996239146780125403765641414498472341031851089486770914289761236433991453336762528831288789603535083065596032700521047699050019760880328055034337085062006728099017858100056862353604399415530393093691026817839846875220259099528899282818690790290035498253452999641399169913780960230453287379019489664742696724127405046590304810313691561088470498239158136185333176870096394071354790844139526032905572478559309355697600613548558150968840634139914376016847857402731989452173719725353410163294846794973412572922988374371347534035185596506392446444512055632817930687865878676226475049104243985751051232075400620668883648930387913355968891119212904469657146061934407141432338549532091619219596681995705604895262904943732268296892065369653620449693899526285836602108788098800380419402809887365856342385236495906915314352317305495654553342335603882302039230447076351996868041203228631313599478012998880124354953371937169793873816641299355579619867303797249880737188084892539077345322972562050178297289971819898836198968040625244929854140669802918858070085369014250272956020854033974011767295332251332229104417370644218410766331796156527839318042358292886062406890014216297433410412017071201641320667626830605903017262786790213661479315469910428080279663929235312920140268568502332782841394729393828330038844267514691863019717025775707220132076418320194209226649952713228541591056406936661978846960976817131197432192878770662150978569277132401085057506095893723797924179300137627547540254026192047825435868248135525401612171089345202324024994208736457845773623309752431617027008990908540592947014844783672355727252897620695647629750268826826863197486464444638186193389821064902049294556794727359142973085601145518622075741242200398185031083805882680939322423087698264531158588309440714932957326347121004714392177702274971562112529659936427914196111670724562716100880898049330004000730587310972742392190837200930253485970816935921951729621930537681617278949110835775102154698471736672290708468799850232275094904035130196919855309104013084459465557237252135158721004259827822703745108017968634806420973955027103625038463864767150002044571315363901351904608923217813690312061502099384230175986514944126167034304508674376308458914059293911123156065677070305521145566466201351162088606112266712219725026340960670894780129193438292611403913972672349788438225621078281804125978882378463983917998237043452554099341200016961748532434551628200196485069120870741850195653209333901264789273240392105702256993364761201844149525951995924407801259885038177959265472272354950648229478796056430263926844106094326402279674735469726013808752909335331616429401279676143572467978295712649558249608172347022703276779116968424300678267935215835820882874490677060696740594496123283223548161754810808960928241786146432119400815285498983390492627436832573769835631822248066252006687738922956160903814298385776118453520322743465458371930587410268693048854458308011209598998987638762962004601433970238306429629953458740097850629705113381808619778663567934262779321539698788923187141624443522574350875068866986162692564955640373683976563920605702313823189303502577888110365471861778981666208778495982181053511819037726114007011906511203023714747083017081132882786311191972107170120160945729213430789853853234775749326448248988916941140616107089264571430169598215234509797557564251852638907365920311800504801826401451822943578209590012645660899950854406706258067032596039129168819975209522887932227458716363097818283001061738473936383716596043911445681661766604110015080395697111086834108944427036721718394869392159583392147173248625596627143844778400789395566609128321233334497849679438538985966055099472397105970472037458201839659783585699930568978427864813678231001247662453398863994399337699517660794256457826402679838339452575171060489015345826515201319486008315097589443064235206352637031010160595177218444501336088820736073385305391145943285845980945631442970968275720474523785803175335661399134470166100558909213898490679011079347677501607467147074078594136030740850723102688543746918618480016969485010701623577737183365850443505153479994883876411349350606933529471036605481925242252284146169784326063558848813497567645494042916840104406495497657853901486106606241852373322331363007590054623633635628975209210012545734854286087508207339707954158549974742357521808856146945196241218855959085383880646488508769157160581228218734694646470697843291815689516206424242950457731425008103249861505976050946258230184445082526974173987241231783882766980739017744001071471954726136254276579587842612335071157483145548583705597842444493349748680326977844957926961153585916799815577686642148939006670837789663704673409702717491310265354732261609512494468346050685809775307115728063531617821669377949986351133819678831083655947660183843493068236185286734137906711895316847713728598299410691521220573272512347829629727112507258574949506298133164279157472174243195502362359633576103027724917735473846944731979148692959949245777373938627902975259041423472819590836536368191350839496160650361625902943194979074615393335426238938463284816907743552068152263923772986581960587613219300211873767029673702482500333836131628748070237135816237756001489527140899994984591232942007436781068003746374729663706655382002757295336357420676826961838833553580948353573211721382290948927012468863237939666236285841732568131227859087165132999245731441228510614901469808205097377545953792517848568523032441821378091377392040848027864061459319544905097981739642496973646390037811191084813302161968741926749600194131844334295001098386664732100528332841232981342804977040077861946677885689813824058866424114722686133970028941332074425234223045645385733480887739504170831914505346448587619942416599405712154329330294022354120765130382141998705394360313762264528689610231533222185916136754675906886746716482048932639621762837306006361992265985023793222468254481771778903649767355806865582725889469374853608926330050198661171269574630167210323205382776917674844812628520344522058847269066226029796727121819756979618462492580480328802687631703967906417566167724457102515174658180167609873718526271459330385488875179418259413417701871963593026739443872741012490126035139280791689057636506372202601676005730484118629936120381284055876447151308862729079743403406784676192549533487318797286910882491676772545261932963219178711790112020274242621537965691928786203170161080524710635436202505290934260491897845499244489896907904332112588049045529337242943418626485589685711322066001375466895934654539941882984003165701279141141570663953630617572808526325774310861243075126418817543524992960937555609790708116372625232916250214687011433113951554538102647542830886594947371884816884598753481827799693229525087654660372495314310968456036377955457788329965735316885931768584283210897449511831564411210122448375169862506693100241694711929974891596179567197079361869532112510072165314428981323206829618134641956112929317239110459546824258283161569036969570613123967880194838934068001397111816090532797262850125696781413114201682018143151802899198408563407428735786933019454830456045542630848799001666058987690486166519094995941564836855616854158730671165016736473712344856279315413996953638865376669265863051496191660873548517805640286103099334220937523709382823921937926566329790645877717056218662850583687572657126966972658091539837111419760164479752902335368236021496437574179150388385330139996013793675921847648218358987965601627028370950993940613161423775503035001241613259743898655707751251610574346310321506948821932684031441433712737558148778155735550034853881589471313814805843308180408096816267454013887600841589298673011167045268389347800748354775317857620617918327683756043844769841218868393364046980033859166941063552643301279015785700244259490649356256142671081225072677988038474562530981918256072105680880494442199460850810644770082727542081729842477364212914918585600785860974945864877991548769327309755269535294916507779831273086607215132370258262457918605492795820650072730039944747649717990606001903576099397837018538308039605239662965640762393289956704171683120303894776652816248179862390494134704220179288460183031248973701045642775762793063094380786067578757722342951546069108717842410242573883366086681885088330305688518436964047185024544000945581609060809449662589980125497662202339505982127429502696573912874199081101964533529279202356304708311791755086321839180533934653710528853914779130400024739709672785743416582181119583647477185862422319836514928719026199194319703898206522296366500696407759742527030488254943668249928538870131674907641487198947369919999651443625233347400062184916310388382858301480823367423771204767649635579233276730096575153201676222873229734429849588344197072015924583428380325682325378999553741018293864849679367009442957981092175514424641243940119413827413384466285079211297329634905589349175013871451858126405753553936696772495847057597096160375842496972514271306627876093049861453977482946593622143791541940632429141259252540046782186460200978669645742277727557587719832889996916520274608974179682725892217124092418621219293094302664549858452392157911564456384185193027107106663386124608209934556811100908727940642740396332267162090957651236435668379932938338920073307607285342741472231545930312504180292852268469202458343666637971947838701277378148481262804510076434023133443124071075509528896436026484063380314091256707253157449877943489632892742271946758080407828591640014474064923007530370196156525974087881279841693827330499701243317321585987336067415751941858194686909968532219590158232210530647302708241520952796777803817014806151323252436242820795061321340560410899204561386460705852608293401365993350578114355169136526669781517168449542131074705363990088112385592158293195460990280269547782681626237664552835482802149468753714447319087315706902549140481251198432223098851655984570084131875289054398306490583569675042231707383161931490832371652251125822897822659117531305625903857891523080550395925402317240932896228462076961517114656633611147578438578071715701441832847374095308997466530323909357818150739001457961948759561311619359641756368983624458825374639099553100296472286254323927089936058918727688454059517116459847411881274562891945041480304385276192874709488053916993156177723649161346872482659769329643529875451813764606942776583255390352155147004830943864671955573461865401191583055973826646762020874768802931762755073247339402971615469391687693058200912808803183158479358460190284655944595436667016845472263142258855637840204089116219313823716553799083510059446516747472590463009690326083495345862097488864998594231702740606332746436623462311286096161006369258917675674029635343763056487956632423275526558501149170874079722299855041828134746403508492501297956344074667695410352001621140428140106538128469656554934870460082105475436557992353081004903968933587953980184025372233881236058754408322749110851824886296796780623298190295570282763715494690162042249954383145502701941054647733179765060978714339626640700609925160979345386770654573088446627391784695635988542538101494877173955423236708014024310728955493440529561008333689577265336622179743721721216760632940214611950263410474763574830857242273729671606466343658856988883681491856075449608066473967950353500651425009304207747319762513310234388957109625344338468706606031778905401599125215075519908872719055280249969040791751294148788316898133662751904229925566615807151976887783975394025328015148254817370109460073172766733560967188560080576866790850727887918603662093920798466786979694464005722014968834574762114720855596904198214828548151780307574907779435116755455384652127716017478099479464925499833891785185369797698879707353204355683342048039641673871902662564499355839565521783583215496602540515667273509292606423372946020322443595738519455066275461884630719375182824458004282635040569824557009183571376110173190878707685641029869193335062116945759478497975446287883138249896590429920204422274751155152289963694050225871265433992148816241712547290108330577999764707407885663845764660966263539672707679929634998988521678438073424790415441282827776006371173180603715858010180567537213702280871599032978483676791950922337219682008668847031700760491406735481026506855698447192078500360703387864088174693835503545066687738219459046335297501040492147182084207345954260045460944059336989724974094792091081326765052544695517177491525353393754802828221083315186710904854285983573350997520834545590354229447101206985816722678766645088759703444574962632425975309868024987731484819057604587436483797347822058262155034363812161206324753434615156188859762435560903711767651146172630409192783322702859703958606702032442182383255735511438422227906503360644559860349208928540793271294405779271518632853909365590200552052786593978425939463138608415717643844378599809690877681092479417325746148219848323342036646847379423394004068270777874107056222699791367636663482106789515051161834127918937722959303778302830175425066357683024051673900919740268865020928197492137772019281515993266455579858787829908499457888109935291814255056053161535403199063587095005629431350996206726569317127676728624735783494205509400499290209640331630020188818507255591186855559955859520757518710095484779314974198110498902546225082558279807663701297655820041362795651720347222576275038935824120084792567321200934245244608156402082931904556909026475947749312184645236717800979575462395439017431742461603325246783746282327050753207981997901025086172249270943606028418160298196566384027056337344009620370645415500940856211235543441099574252061177676383288966066789112699444253233535237859123214056849138448988325274954204016128034310054693407918986623019668966623595026145371865720295189767137207751513229455467994108897943186401561185867779830247709640046757739813065355830598970279588811232089523493776754061832957737584808361790481786842788238405623557106486890597238416815463129846496697203579761584298389672007892766975148880982311969533369100014272923058189704390073131397008358849974037047643809404454587952785031370066795379704184363097020547768193279013561270889080334621909502124451224791814365764825884984016164775914379952855808840829055894098966979250656365490670714468622385640622395883166711519613099993966688961610682742728678048384451947270166744854248040260618476546051121785688769544289206402129637445831563796314557016397015146109061471721619327064648348803910199140364907710824211448709141340369241168352877169748692783574058889050946089411072818578061937158618414812913698611545729575597762989350639518426431094869918309449442566497717079821996597120641393670592684193125145308841801886362728589612249379857108939086578057477108632965743204565717550038755378072389910551543226938819224511286476697451986833768797657240110269199276868284658451812428913395324879540750655151774355556778271270373758210664398554833540771764649768672802965334521037647835336054758767390938525028531643913532839428884000768246253631672302520206100260074219611780310967467097794051614104723103390813075783750955735772680607784006654158082167429570852422871294220387206620645259959523707319401241767535999603697781537419594158476985012299413256829806991589702612465980382087987647270729400798707294512562791363348483669189884907289896500709579676496437552102013026117088978758738433933731160501449765486358470867647395403524747389717101163837583638309986344781118350413141122134980647127842277698123270268075847189941444838315154240235104327495887402794067448432153371893569460968358868676543445800762751534350836144136440783913122303407483339252379544239109958859335081345758396707809093139888537773087120502835790212154481720984523488021167278428141993836217774548443368865521023849508800744615434060115861497766988097953311482863908239877427968911181159330730482102771584400712052144831714344297071091199498681534091079346519197250960028551169550193284221457096653583995415176616493460785862370022980672183575988761296428327260536658746668409244203126617544354878302922469863729877877624691472840501845766972966009841975742893958406376647771649577412725658588007442885830867580844489607410980390908873299447223198591234168617938951160079748870637501714597041473705142059922642627384131014949690139010882650438048514227283996866887985736015358002072276732577320069833067163411420119485017084187149986103878606538903746659552654838228220762008168811560627935827242677818447605971188287568556570981288893577335006304997114163056507920758630163418841174092051791095433901960565879249837985394108719523127728385734495421199565124549054182722298608824120555894744127824839626255755181744296019264618868698812995907724213114715592496782062906569889100292723578120641016468015037458562327667973795892901174696944894695847626491663178623026938303164519454900108764990168850567914937818347420898519501730095363912660151164240788438200282527791270683278770591120808747173921977913095999965420702859537790215739380823086429161202018124433653437024450972054739191571842504521369730930276038248555570359532601538906972431741814714587121196244258725024145987412277453309865819364161787133607911914840693564031858667811188092414398057363692810815852312639094021558146300408223611071021328958359494282481711730392996007828961741287139470449241715110662128573511655869456659049487442308893589807635306646426036837848608794276286825753537897391038124228363446564257826521452110486112986115586184529985918531708308514052365686350956241502595836959780108424804993342380988217536294602818290157187082861489434435654292930906026244925463905198017598163549985779954505910688195661931775529509908522744003314675726969805536444239615217234193759365458585585940409767532327994333821823332425421629060130282869363745131409359647352620452446177385521237688695468412576267829031766156213022728196711312710434447394751193455413059435417228892009915516043825599191258591381295808328755232939199582189849829383889806126025676829074955063884618035037576366565430605093598617100599829520950429505748115147222929669435638054067287366750266029965170839322581844861788746820959080833960066393772101918038272396707586179374424985087500664995610551792880969914152352811294064553019682524365249027873941440764855274350720025607083234748059472970404185096375157030697204476373783688171917942869207435490089245203423623734918042912273999978972842963135826895083551368835518298645272134505789601865461541209890476546918939434670196591369357431185731878971790695195106053870351248586433185892912651548989588882891570377691892494722219790680905378822508521777561646688423446445675098625608015682198979246004454208866577111925311169080050366598089783958867251816571528641252928070966203485599865775650768719185737827915618874433768319349090929587144120554950079876985513235684743178713012561131338413009533795872426098718794066033354328952016620997272669798245768556524868072124977987678742181579733470877101616257567939414338138328915403251281522232008930573798311826013782391607669190526723342363119952869117944658839825269584485906679811323532851367583537190147174344817096342542437260303373671442822746525644407450085551301238739837111952280062375871670815104196250272999216698478448274216470324194983769557522693889277432982711272044821011722817464465802614055446610943192879477259261517086436745628507693829622774756295343320374275319438592245029980068637668828482687262935751830145194999299488460236185866421705174575555925461779421734549829098525790771624973705333684547878387623429588107413360649782360259358146822904635627271958728065403438650829221424598555564599826305247423003242364250197905053639882109708314135646294557304178679201587123281041798398579060706060838865241567382990170487008033491365589706083052317887352676044062347128513687053604006629212985884819935443379127707081094719156516245689658545489242964328791264705920334251250804302077097037952107577839090734427473128329831331283472239613069151747576315724008606950750195400435079929323096414105070002817397508348734123481394003311327086005547530421855239320094703909417886200137116939208308934768357045779882158454352935670323922591055309930846818133860080351272721247145035968404648884648876709669718074966218203187972557455254360611978215972082113558420812516204054262720419270881665492081308300478761052220059397912418353851302136268895368641885597664862158600051768755334355650637294736732431613067087148052880098065149824875528922302957976176611066810918098856666504416788408166138193658407020626787089166035364592141467035891807952912707210167193908786885983633001328119594099597834478314402535262172923524237762690093118146912481318965734444801626090249689810691096398874860408726230993726994704226836993154967088225186646191182589533600832550180846675282117269118447021662660813950874549259749113924382948075464889904109962290648106291606137697565795593614890666466220023981572763028351449685143651832161801024321538374317932222148043975731816419486149545226984476299122407363028039656295205225243988031371053094521452197021237110548101580069630269708268017169235854522935713657679209977181723595427410979229997344256201985084591334091775147145332218606782623256571396278201023957674464436456169318240166703346640875340085803811601325840707561982740417676904684881317635895315300813162274719543414794180773538265303965090452556930157626760958072444230935018460475034611947423616030588194956610668368586179235020435751470719193315416200033363421366537995725222994807689212302430710819211956937316151420444819598872803220949717613551531314906069955933345457029739040261742947234391491418808148068959084811572898845823609532701615282370472515799696516432679947796217086901470674165235959318198749350675520483853316595550299584015224374572181850637612886032487389156678736302113791129130798154083765118760764507359670319593832751119461809156960690413710335992709734563994191390329286270105281136995377288267833529910377198317646535776637844163364349196708941357326427985697380811614139353698544090656449457303355930082062404400970239686265696204393799270572066132222216495984224521046504872320040430852793726905253800345764719985741266813185461797713395530934607515909549814373659660205272425214738922525944087699861658719297140415234312755424537551789346711917719098189462362739639385048419848768728301454215946100344358087966122905070647032281393867628098448249428186779815931257255414741777880518517300596596831844869193937971007702044069224657980002490072641585267415119970823115331271488771485158317031536089818593165108191080085114772928062120484102482200369293483990911335590999874973397997726797863198094034261742369958975644273763212208046251061792916489140767547882188335241200545780531185245842295263923868984096314776553755027547336819231610900512164155169173065428243877010656188662976140703499751528844618860366941398039558518958403814949746469433854153576276371163382595559289621937450526647537924152774968216948663743804389450675770214113204238010481642647785314954611468088995302654637637985559933546473947421027109541574050056387396212914485495477281746796779179881901295718168530471302447331992758318840099136561324080261905710234641262233063597898033234604397939416210046801821129874212044999734057145024990898222071816819623498711542152582879173469500098020009061748241047987823009259501848805806328211680150410510412066514946489815059737407440728048715412568304854062515173791754900507334282445840592840168594621209093681589341426229449060486717543028013205293383394009245612291642886467144485079846735276502113021956460884717669216045298106001577473935243220774325344434584736357789146514995829407844337279229343909888631579210720567246648974748669701573174637701352060323301613348901012834198185938546128414108862219102501696442379652259044418649856411612847051829922786916784099477374257015593136216409798401810081084203428642027356649268072663711564413881326970347527432456191497724570946325269755755318779249427121948035675727826766091680821028691990303886439921608894488563568487256657963348282500003031410011276701103411277421284907464645967886430493055515989986979723870244852291739413996606528902989083461640879011294930066965416472533423599703252535451957785690720163149208916305528153497088817995588046470353358803485098054049043586424505222664823329368798828267968741716144262756245031990316046546301084746005281693863426553944720571109381480797574497005993948176670437220617593630586842895852442960126218404897404953257379754775647286267493023898227962579617879249116558335339392497823610199862676819910136895106629936121246324357046928781227185220946933919563679956521866954983389240625381535090632121569702835954183089680646562850742198429759057625676377885986692669810839641942211815478636020701410643628613649209544689923781165398864146967025504613750826653273544863446092669285347529339801119404986637248783345315918246741432726225340025983367117444334955297627228752823058765461754792235300783171065933552818940590296667229375866719812215057232493766839669231625934487897841121780727055401596158332571408609506484431967911052543596790240187154285477237656498127341141205526954061789537119410032917071224840997827154809563676575946848429369645079663994142121961457126477766714799328314219801014445289059810215287033288053997093129684743496066693820189857676836078021500929357142212961914602322664532306428013430897071762898993308952037485910801019407664367476857196010138732465132612012055159404144657398120871178785601760383300307262117763827287681858538158044228557742415705875878465054663499444226214625586426195989022361876017050617535714142517088557203333165801234561294587381237641261067214357570984731564566737349527666767298273570745175752065685314011335796580814890771530535357206470289949033506239205388105158158503479250759694108445291171074584818588747154739286386827988224327460330598819919258675071266449248523764223908698152788308739197982956637170521444007078910785509760489991628531834775086556382110521135781878165549962985532810572285564106724555428291362284454612359849621621601218561666933981140670134391392158569875477955212902857996551100239192601059696416783420252223443889134082392227957377679575943012074391263484132506142972332839354805979885892768871585289481838051795369184943337967020548292427998589539269093153572775429283319673023446801950601255939573978839831764180847821048197752247130513567761334755496702326761872922596349657689907674175366102632841982134956798326115222753706049815684510661412304112440334595975503042131870278440331717185892571192568844121106578517645058977338930777019314054913568724737784663140749539900089172025325249329113806141942460383171758297502844542514672008602675852523459258019231802208438786050462049455006063656204458610217805066247712085733979089893815892141419512614790030867200647286153626797313592060257932548928281472619927259861808425181732060175373645760741249836657569702713940793628944565932157516594401959094692337085233342812258046321440138502995046267551841749154629008478091022077953219221700885216131862791280805344023397682880530752604935799976280040178260601550457591335106578259749321689268603892665794025745870290638853001801540795089603132836940581369826145623341665740355286919399792374338938884266852638404576417389356968891898080237618988637253066368524218740565352667930340570433532414675537153746184789766376953355732204191060374036916111149902137184431167782363624117237334804190627680155228691354614324199234858711053927556111574771811031545775033688241264152100429742995424342048919008108972978454593732165761012835851081356134650219878578053362815382684614803560582110760520023312143459200176144148389167040266081831502252714421974953009739082287291632986314480496418475477440646210531025995453083639484988114972493686364606867596646200108021581284896697649030546366472680719867669839255605966431688554317028305548449919950180329733819017800702321691434132432613102729010628871988673027455612722407952676837098391543977162218166592437305661826629790699448071521140105099442081840785470251379659818748949309066705920962335214799873570267417884790705339495183844799462282571369691929575063040544960657795264586584366054679292900028178433996328389777104631739931093982616906949853342815342281279413057832097159547641700022453667972814160179096229314775469244171922364356001572165736859574996630086434873902208118949341361268190786383884911743121546172396193282604234725530065865068836706163019430154114485743793642987470600453444600985872474384037809412299153915690622360779345789326379412555984321388856046633482951476607719800442699388299359275758233094265602081624505381033007327183720053991173133386073528425727578023010323066748006205269599400019820068492723762818808066423942532682777836750101476983875483353661682489594008858069799485291313419646116106680652029388094511533899898036961211891480754700386858627122328205601416326960047400655610602959069778316956736054346491829736225985075141491378282048944722364599405008242723943963620079918349040060752713378146431779688193063650927337966676531233652976243275270481700373198260833493771705823365455631641581734454771461112656236605297432802400693717810879785486817202218410918356524463282391938321820912880113984012705163978069753104782839448521418772282231861436493219734224431895748979323752485217899833070582646260138689339328621267645198929166767844764087581374203752878739427779177556819709997726355821263356257712042800133717563492503700547193969916076143801977822546769984975664331198456500564441562340936479863095701735271728874361820140753303129557678820040878309234716873104074006868616869657895773066007110107398916948086809502209501589916169159911801786216358189662636668557022585772388056001970019054107546576008289260913086855233383516034319456343420434986914114050256899599188542713269952438592150123860845629978790122075210872567195605408643224027224981242412014289965048547230107614530706871917188137886490772909053799409514881895189976158552796860709065959686206883671978624898218319004169923114534009802290841794407070932310960568429983861743073303382557009149534353579357901452955042865636197170136686637817233587437455164993058485472922418970110847411848023166804302903598610939981922376888018272851597253075862989797120741944466915661473494711016422754595963599741351852928130713460799510798601816867339791279921088476840024689321459126805365932711521931846183177993461563400569274307609742645449478861744221629309003504263572034053250513874185678968166522261176473186460739740969922893674694869357283659707099464921636598986080232708734454301965512843348069021032961821608624703509483820149150728453410221758073442879717393496935716752010723591847891710860228338236410735379856967987749537011623964327401352082408273205365410590923031676442214166124967017863532361409933881136442404210675352140157708105772313956318218850106333107747876521582726069717972685142253863245468843443670865263023560221804137675250013037226622343581810377897704690336419688642070634946584438363494138334503321015712655244067663134278407819364385655102266440920778367638047433603211897954022057954117691080872651595006792470541440541877918192409132444545147333406083907305065738609698039608337992331162462848753688978845088455700031399183291665362576366590869855465255038081322316457619971789586306701401096871960945968872321206835530364744889002703801681755157798698914716822540704387967813114000011642092685983585405784060363770692235972967488093025573273366944465109939513427430732613305835440219205534050829753350639324733083649160716843415523878756824874207112156088477998630315710335436790750563576349497954632065615513124107156646276733133786429312491265613848981207080319527723950732543778039507694197673897656751514597549732832467960938095581146240496337911150353048258859929341087911575545561297017078444469470817216027816347035177178028852748405999399377769650518207339675225368536370210627041956743074546818752043025977790906054452182230964133685177516627484621746245273427568318987960715163815186005077275886368913285025140137809735386492904522877725631482127304004827248450673889166127328426852817598046781093265760617463864640684310196903259225118693518886688548360852804926294525714480695493088514070329048925178061400156993600193445980594790601031017135736925756022257790097429891749493472416714237204177265334272418683123512112908365851857106466012382086352914678226304285710068141872619479609459483629149949356619052065392147170807044531594960728907529843132923784228196186235621287678510679651960136893429378194574817695947497921247989590630526648713998600881021347244138353848316542096844356830320341571330676559341822117511647665930432297374143487891209696081922862333060431235893996975679314226906685529004860186111913546670980933156893524706398646033353240262698583408638345930695777355295836659890078350350942283245691577835531856481948015481014552991391057934279308245990718576402796651224137191605101794894737225187515789770366135083583881844022597209397191753514441913678809229523397454009482380491119501280446451411618107896489363431550777914766940775712409932484640150015974013414161606346221086045971230667507434636975216845888633470872482914307469807747763521100777058323644998055846653537838044106917846349135991292397115415979957904439340972332112272606502437931892051004272394374487328368908305545830846948620310726329332032799790692905004874656671465708644728886745434819271999940503446120874674059638022695123483362395106664368990734718539289547096193264112292083301290548763032137567945877170804118885616634180245472813089769880067012569960571562663751906076896352467045203103460877316042210296774785990818110289498845249794057598910280734754663694399614299581202151104934242666058641534684027923305103171415068700294913765406204473667695981334044242481869670220630203353404806458811337640687284800599465176795794455394293905082367754198772623084437893139302228421460617685774215529362362617760113540372560429181957310369216443040166175859534109376367908979893865233637238475136983769917571947488797369446990000935423359129842701687427043102500089294623901127114272480854754693577029485942724001911882242664210936024020731922710012832404439733036425993245632017002105315095311997855156892690868902096397272464089202744664462684515960944548778650971544481586292056522451255678364772871139467636496363923558767899295463087029341828305896278149504751551593799263825099626034366874678716938180637736593110549298783374123510921167515637037266778272276717786928043688307660869041596521640312810265341203764561642702949184323446677437060262573028929925820982399841046654454240914687074529903489772723204242559849284609783654015111596583286040663277395850133870540062175153736159682261118252909715642379626268904570939556439556849890802055636941655777544080610205017305184924572177069222095565704910913163847797651836771501942975786453504290638441871577076542899459813556086479959278415565970462000025607449527954799770953867786681744630853923067731480481236286553194924424436016489014617799243763834473638965836072456079257562856581580070125165343330857382556728090478479677525872132075572889705818921431619956282686857010825020110000438743054203796823827378255676921676744350784178567150025597008802182516181868167073948018605020797954612403204004167263962801620190052096275312832244294713940595019849846267102688918682254226225474649557909399680908226759969613066057032985298408651577918137400756445292559521115380870571268824175188434549692466197839223693910669699266937925574162885508231867586854296642693167320314516161743586505185889569835110759980835256282972790028846881477252206278382516840515340167817625070070178629170489657638715045281203590155494916913555629842744370703567841860922905008830588020364811964459843017684550022917449393332249507903150503795839327246410263489050755029843135689979597635127070576428628423795879131835143927179150220954597196077683978585372731322277392964341072984576899229152036675219721587672002652524604571698540838615987097685384301499102027643137191663898447856904169223480920840761010675306902337833672023351995780451151874308721187095586907673064348563573111222823152071857977171957204965532337022102213599469440437858561153892174851752648881475099006594970432425665026159648021816433684414690241922119228249924470638563853212439896508195057929305482562811948644781078546677010653063301442809750413764556960561119867442728176447808208538746897576828864106841325110603733687040751760765390410393059811610285433418286580686233698454525684670939105237760245728697032100940359871420892923350797805427808807420022687054122588183230939419507470196015146895986487233399136708872150119029128621733800524169721699197496484919065616320198626544574713005524477975892974196489637131794932626783203335283562047930117742649380258392503198842719148485195114289905398659177465603637273423680605725288775594952305916137893251301596144714142317828127172439171538090424754013506238046711779918792963902708384394476558078421967170872275508835110316249534044274502382175558320840184428827522651491233189720511617619635611583332741814281210709773866415834642513164055139263384058244657115386607363581413431560381716691349085081009718124292476198423206675409369836708685031533403462757704702622823731068589089117301722964039879599692589763093671503741614263863948854944472375352189688512429995409221078251966882180637493100261847263537100014779171685390245954950968284396473661872278128325885627698766442504595911479764112067199446770210730855844955416182635700698695929003525783845314298606923765858023033313332409898491512959594262414428844551040674073986698445334836712152102330934375384069118934926758367166855977446675932425629441933339990537362016375887600474788293513756826107476071140273705053969645504820966839119081157559667776816850129960458149248114022703638244405312412342056640692607006879121683194720191887442863549846737652745425914667526220338941519719187341705345647476180179289010641141780206149014616073223889257869567752098805583146083060683912402783851575205385274225634185230734265739226924892128955907910536373227218053943620452216601627922376825417451188857872835831442377546924941633498752900353160963960297261931435670577366760502830078625962990412530032788695475566228848109309347446863508210517340558058414254301335873269265790980278453500887524441986863909102200228394386018715967348638505352775567500442628428349112247330523086333677974038303239461004363224263812140267127720246393142873791539275265086478507961338136862752606914457159013573980555904366889210853140240021125900178210596991425852386967280345464881137599601455913513850574755871484751996864985760045651989743864951134630434819684372059084612243121724814302729592190702321975367774661598348971851405482978467752727598769498947262025026675218067929809691188033142927375971091008181632893163936062395957101651066689941565717958119339706120489249325091130903454845186843850343741177089150229241890245570869994214265547377205843031164986484202933416337180672196817588501173749007580317646847182332800454322010640364502378120489292962321299802081466790764010748635471180012376262470213308574085457897706643587915363361545945300575259048260360021685071630218150701293680950063625377841811276081147239590468718353450127689659140663139775261312756455626893380637711085905925152565539200930918074094136669366144119036414336845203459636032454205541174675752471172507609120916378900864541433690281257155996320353521892625987566713454887607330848390496393242171703200494821616474893590831258003400716012383956114547138627996051500915801380349445851765217242541234091188301621077852314614951235329724162825111025236096825706283571362309175875820369680036573456817577895578018499021062253323993802755746705160074528064329766463199035965641268150077270480618708332581041063113495381495360230379606966250450970230284107137346677894303987918543482651359148004137948671531535068307205649622877387992988268841320191126819721205224917738220941878404536636143161196268747872844727929723606779558722814384735714019301637843941217035805406528385443494054700618177690833760486380864601583597788863475076540839169606594915056606913455910425272635705566338119932601194813144766209578362518689313274533679763583618178191133075985014185601570344327972420348999460260453277803365669598631509883872048865654494237083859975619828641916003280566152878936744085787349549598528508589915899018872893287730203118498881055112083920633615324133228664608039869757907435894410414230161083680210080686485528197196929715498321595792530960064714467265973553360520378424246050669821538626333658248679087538384374531943677127251872495300294531385357727035217534081718355317914250799237264292934126860792248662112943462155253992723043544701502499474136906037491983508602838504797373253708418660076548477168067015842185896109402991430799816104200316732801563304837056433599530952387627662330958836748439233112618431703852080174578111501206749221669598411319352948367892848179171275642009247209857416883016812991730255731590108793108643544431112240525947340421723796759122926224266844339564860760746236165613142170467429391741522441956062194092314282140618233006064884238847927681389219918127988785032890799733733578699386849503773017487218318856501924933338142492753658748557519256990199858224367530816129577858109277949503371594930232266388819084719660625176728605003596651358037036366624213483090126175595536336140740711477868690248151150389053953486217899155549282215659589364512429551295521218070401189648286368242666141817868773747357087539038386256148263048401452431021217214238416366725380373994417425621861052822162205303741574706791157227904390460679037334261573432828691598867456346422898636914436209073365001593643375946356954792898594142537402419396870365903639489783052214831584096043870616069018847099575450724821895117580128594007754440938041525421902035215167732689333111593535896005463483213606044074039920962882481753713410766101609475541448160719930564122263134836616214333956410131343054567854879085683549859394561581088622517264100947921328994427271076424549369866203481766573125025906717309477005405409055172783823205800708184009285134704249826487291568680339581835463924980627578370588865945071721215921877173799328183569500407533573447581497771787303714853621748692824366110583047490509026346472766263238019493860540996670541870869729298212430936133588660067531477871802831077902214599422457821855720254008162259066090118754526670523839391959160445685653530271150301665291165297340320321199512626324247411759250993976173595780808416047486737576367293073259428462818476640802562249119597283593921143044734139051943372210538006944503083621597684328114607381919442118758346817167966083766294886507535929668087592462053686326381048268507838580266333323448705009416646029470141012203816025870350296731128135205205364147422168235753635733476828050382546215968947788029532416048251881792130043030182460938212150143813743660660780065384163536574177190447758415283196786945137313537776108931034895045225092855589745043988122615017127147789763181579872046703978984319445688192967036952317462130542867240932666319112082219787939830202131783008717891546599640826043293565251252836768141073273672627366247873145617535109982191056492208614271060498025869382972168905720991788817380836401664732576824539477779721298892530570870440931489039573782626205729803601126472343683835722857033675491599952401948949100608314600268330813609993031364385471795699333280004881935061501518388504921926915230117214179299447209771724825036515046884437918965724278193316350008840440843054246059425433847111693234200839901025333883790812775233215558095714203004479378183069830045568799459279357313490182565062962841330459825380086454682828536403601058301378634556016706792296552199412089647269285385441365649000387924274862069990735408876475003917657447674972259190662279700423335315972796118348477856628849742532192419636351044915666815554056777548610979295915111470878655979270377922562407849146160115612278333556775150385266620072515549271475278252822553588313250270458937255712969942803499620602554376395602657674543199562970169907499467969011888119702448665941345631300184528211268009238590429215316242023739480924115703577951847578143847896703808435560725177715431524494275993580857553024386954889971875342555789867376356030533312592280989884026895409000537863493434545981719055191451058718739983489957969011780665442753520660546109348374017777063606980378218928219713429046857864713014189943173572147838101042763718217560325300987741687902870684917378614901967641983922919365772206162379789544039922559981685285881751563025026616359871501695855337233923909612073715145781114848305376663212457305519173918370687332304197008474331514344509394302586265457598849197755183452003003101531928690247822958741610412503973812515676767719880933912431547491815301115831174116488721181660699560946094217011304180121361029568379576482952193302367177184653223253933118828356751092450183303969651540927497519971232377670081810464377878164814071662961835869358380799792062609315829929251364281724556607893322783253466684958795955345415519995421855988237493368905902426942460391519422649115661550263863356966813109712581351947350855107962460560560038348250744688243681384571376524904286360949216961391788551999094316102429752296804674480415740462686447183110076226138708802900121971252498303486681467363318544579742814700447530137722674791789026085704577662719256302182122719651256278260525646979474195267364809968148004509089797206486563974018206805775055740962586658404433471918463008242218062595979928885439361219109422144742289426980828060024208450743378128305547197023026877287630315807888826825461545381634302629232199363410510685644410928345631400266290956878439624416707802133521557025947818106576357593610280794876044080410869268656720315808423103893702050204670042874009140178686711283666720004634502570498225552964724961788441178113585739701324811813075048099179170619039508038426717518343364949175511080316611293859148081483375863804303233229042928025012809382036095817339908687112425446284229801725996862743019493274322760417070559614302186748224715633649388795178209302512300166766166477660974276725674847317972286645671569245219576523223792599105287170221594945723054336536284557128554991172801629046615965174667005364721991562043343825094563301029728278716889380109100628561192556628934666906761152566311469635477363424048715371522227887339023071730049312701581960677262857699341611009933256189221651147175119440808653071445347371857146400048716857978644705124479765530352137415568598290423115327878587131059349349838875018847833718664905519918281263207465430528866004462358062185378780721127366150920785945836657631122130648109895474187537114029024608523097152240154688037749197952109637896409207391108343575971614409058181046466335108686762470611064194223805561813192100143313640098732675705919569191524747964514177726093187054324214810530832794160885454968747742481576531593702716669972260697452308059471015860538565950453456732085910039064506763425164421504744159930487473015068938376593024557797052341126353414246573268068425034075516459089432037334111209110865084523982630870070275465301275625660663459814201035831115910480923289840419896001579897118348172196391052017988940330227559464321433671586649696645200205792740021196565723194614365633044323015397129908803832224277782498952209276085923784667273015278184769283386889082361424292534561905613417748518180938338327787140311597162020773162418564051709278435704258179120606696667130201594063515479610219743144360337714977071717610993490114762487959766715490114561092565999896774229301540183312814108160436716693996698928444980918969102732116436294406521962844257622910341512628802474988073178395600308451311570616831969954288946193982581360038175064391545739397104212091026915638141640660357831904859224083078747583044382398755183539755007682727747389972476267196788762060040242827108446158906227610304333290472749611679423261791415114809777648373509693186799163009688810792027317928925074212678692077557352886314792921539351436685857089403673361002305392048473298711670048706624359427065597339158155557752870299810703991906008914247540137753899437910422281779131194658268484923257577900436158829034046662867399306979941045312607498912788272168553838611586767484789185144450455689743801747690575277016346707591608103896690328943975632342954567833749292201225363977140457562563377860541728281438475715449621504283659199963444357593865381592123944185986776830818936721907260901582048084980523724449018197774769746984474940047415022551422839276474003030446367961199702659348976347360148418963405726682485628720373497948994706412118853226226590952749985823630263708302800427681883773515800771323945606661969828305349510805036266312283737199439133487627801228487831759726971431261624260010528062140554084796085367155831155802376330939271722102180858246239018455296621485001281698048241056646053520437812802484516950269032937959360788081345011632720305242755817813713744482426607097625738423976731093005274764406642052874517074556023821496211348408898895906499004589153365277165245085207969113151986463023908041699751514093627686857154786600628317305692360484737444422888543589967581635924740070116482950415220185496089979127344641851839540375652020599422630712329995799125067607843283515774145192528642812500931108042128122818568623057313955938064833276567846681042129815454722755820967462485469026449656455550374737644001782083941138173900750354152451916850236929165840211201131586034649322400171447845972322611250992834892350139897298816583476532848518792407476614135267622997724333448772060697237530571944358085904810944036851912027931066572019587391754146732136633174431919136973279359744629051885035203636822909301273531569403352318071493170529377054902718088495400428412632551337796654593597185279509202539140285298732413492106893246829138060680764061939116937715592900925625332874467014341200519398854025678778357623736751893855741297915080863510498927451923542094898585624595093717586774059668426296120226625422027274282669421192554921871394569228297218383201544978606527848785320191617213100025577226170646231882662107395531911883017436997793440209243076176029059665431101715453328982084589562424887125563486914011746994138587524626499670011711840059984371770478625937876021350882211032771239648438903578459839184946546303923689087547606899646419641093414723287484073485883997505058194255244583834776416521039947610279177369090232540266921492081219814982491278844663173329087780529430346945011215854172680107158336368035641790149045847415080644354540745754882464103836059653654898162654104955723009394076971589536837416155678088836127921119239937436946314721698087080815403646616958753653045982542883325196336280786465076915464693145071657174544052511490380389151064936754716024573076515850053083278585711616552832211457876229434748602802572412175545728267669558513130523140270824718684720108129138462262054622314712916784045783907541817693976964136946924947791468778813557396061498489121312348131038561848428860199824985515869434606916045107349084360734241624195860785315426733059562795672702630068143523012154352045534469970428636628516302296860796713563474224898113760746674334849065171052242293946041721843294992128589615118441911256834810314787052656913726487895322242810184177836714430522420051340091222355305219229906067567907625648382516731059322320700738083640540697467787099356046125754656795816852378285654742385537224993401686111652866230211045354847645597452335040412819565751258239378513889694407137459145537516705817401007054187431610945675236998370516950721282465932911650539414079839528877684042988509352269302275983895205343447645982071170349275005727633433328795284622899941376441338961378018331485220009653378934118631537434837452437928915034701558072716044951532734726427343146469976451907110179492600380441189300211453011674819209624612903518390060851518372634542837209412442849109638813597072540387179022052379887770737091918923853501429252591130728917765386725905003758492098488269330157755012889012744319903832461534957168026895349193951944283202031022109077023624808074206636347388691693996652454295502319959758246328079142180617819135260789715354167737317535918797986849702972094162729746798814722080566353844826069798683908472565873593024809909475392146741705064102671010481022390079967645584473564914613616136242574464857091287744579811241193567000308134864868566873592113690365432422985515859973682856197497177842724777008227108804470008766239817837193827082640015875641324195256114096339112453248642239583070325501848736305619240224919045074888374045095959630736933911213800830982784308321511925103411093058639986594298589305545348882297858613582607734661178301738536853620540094146812532338387576304176964863165224257401665757758465294496506118650313107276520812233790976275862207407571546238326323250036777562978408796541148486629601138555720742870251263536018407791590066886882080074581186729439542799526971603794163124934315117365036319544220254125840309713037006317561194076614209092327331019896290121534746721439491268186314877306278608480373581922627550348910607687945236953012506518030844101904634985211692192548331129069280993464757593062136579694155829664095493360535254103673824551374241384660121957201260210846407984927122663851265992105470546674555138024186486946242195308973870142653481393406997886937820582364926829480550442013064978777589581906206216402370866076326236848483095221062559462332839568382746701429593229180558520314263854900109111706156022028228308240209399856561101476122144851734789022768065562963304541965443079009852087846805301554118636223666626345826916943329271169553192314170214998837151342013695132019561322827005997098829587184486685849583954196136251549379011411055477174576075901816415125241199999053041709138452480989219017631707437878436031296006592092617493885324545689330338899340385432712177006626045515193843620837730439742579528652184163685800352967883007085178754756231806007947798810174786905311836760967159042151916725852498276846308000856857701938343880111319421676565556702819405300809200276546213599953488620857196319092270073166890876897423693917091578484973101786869567088984942919653553853579477241648418877137282366977541509245347491179421314547467923914439240686616959264163257050343300134165777573549834624379427248258268858623915944524087874898434897659052395760843362158264984859491185300909586595240778978643280888224099816101008362287245642412081840344222817709184366728533525851252026177675516951085592676561461735459241401826140142392767430704088210500428597470408988554784664560747271040235686173615394550413231193222833921189957101751274596932715165064298629153771938224101026555030399275311344329158979930869155121027272293730698622320887560665593395520880180143792477195143602162305065827647351043490859003226590842465157026510676839035492287102024880108167890579311321421798944741285983023790000899066397001706190777805283921782084409017940236100711031847517600301352328394237773922995291704028119918406674603428427580843766175129493759514585533412872563205022080446035650207877207909973009154171434105575448334470736797526371143931362506680903874082804205341179694165126820973792822130833742077968928130585700570753003580572129887459858491813552912639240157467528125401073519319343027439070713694532659348193701246535124935734219716758522205905247683260978875780044650589990228349539570083110433722035395962955392406572842893962789718608298626353980923545679740888654609469858953642523146540804156835510627069745466465679877746607509127265252195262934277981425484723490311595327234257198922850041078981909099616032621680122573253220824358210027335352608533314679136197542777324296335724892593171236894961902843824940879489093126558509098920600144010864028080613917344235867530905860022728624539093951512053592454624374219757812550127230558898518560884260897522601099172855760682530428806763056314669978224042954694450909714341765931614043155187262532325213712564887047301530768707965892130734352712698185610104755701799249713775965395658285969491731701670359025639349477237332340538258122237394413624674603270390074348321272468685773478109644867595172450550838974264976450442809050762462554381319873779976354389017902449243015500029367792327288125346118635616784738464005364943512430155562138028312066358558586103314791965823528289964702098276384574939730622291115202104034204172745302910025732089199574775805619439061132557137713683230761817759629978078738723607426589039095411415757045008068888800309289232614115440672621129734520344397113258707761373885842390400492196273167120070768155339555471582198825825395297012958923531341064145918064976086513922655719047292877944064848527956775033234123757156882897814700524464738514370054290948845610120233480206241164313279029422563869228467939256363621034819469782076862688822219743546306721979808157770052262533729139855572690756383211557081492093013812850986686009841017483112521996846984348971915064066556632968119458765334592715408119579657151249727804039557613759515187089630419308581266571931407621196101487925937222835525728335678073815602951876516987390663948379672834596731795339595640826870293214796771568641645208611401222310135480786955883642957284175889689064240679235610085597506389767507973862442558996293046638053352534240249506499030899671823881378809771366403967513941582655545409694272423191842192770249813892991591113792599476383493934207653149713244355431397112073778751205954627660545843818309265850027741449797036745605756456432467259148616089969713700199261527183224350751546619454230864702093920490779440964155079122346406880780785346211073677943182184329665186452693168315299016683582255146583783356441423568473657202380428285857315432052068144953206971283783961799885936249619970587432265493579795985031287180809101142713585344233277236375858245010700568251980941477155176436964685016911484409386463117605324763759320963663964826614692041448468236634335428273962694330209566145698351007865938293405955693016346120688140221902083397826351598563965374787824976519869395845748278177833230546115212434791624677358253619435006218141223012275402604356983595822540359196165787307064612353371364379764339683967631760582700545841855511142010878364603128530818931674120477453034023629756224132853126973384744182646520622084530193879875829763812754635557488594291558826023316451786939674682982383660959524402822812824165772246620975547588621462957129397830914780691487519423795109763853597213119435739436461600992624451841613279576101887735972174340221347749616078443246655418915716391823498843257609983221712455682241247963840500877360291813478233595661206445641460452836966445521752506084404749672597130945797665533576332510211229728689146539502213613930633482782142702354766936358343627489202613217754502480396701887932220641121443327315817569709319825442368714036658503188642702868654408905545176856712134141004713299395649527125082423601996308042644796455689257117814641244800077384908583082947176941721350686013751561498614589550486701515093203858337847685115649841192408839006225326386193733635244423063302971082126499788830641867459106255065796254962991430016473134739840377458438570008068673022987472170300674620802417014236672534228470664777651540423293099738453094048397589017900459070660511311454966083699678884329234351081514480530621786962940234808666244084825026025407619032350867904533509186812805930731299265134891929083138840378917342985752501519897721649173787328981696252905885887505496651646302429811157358201815229770005565632549763575054834260083011356147952522516099530383352095646627980221928939333753877502243652409076648686592870197318049477225631485384812358311324702297652480042487345781642304592440216977604876803674008863548391971967194958129647567517347124744290878303247974760705409279967460666082356557834012602475267206596117530967370646883991389729205842553384812040199888596777062001607132599062786822769140074737437521126065563031340799613105043405127753635385184268379308276474857131680787031146616374178831801661049410402165126377518105214553181926891669709596840439701711653888955174965917471073166555202067739451100861937472950296130206360541107416095276776136813645580008889648317783088792743540326669836133841443966555836464970543136270164994710729762074584836958617247053558738156654869392702099039026444323959433459731513018343435575481282012193763648633089233870335944390260453238136596917698919943026746938249667388690980735040202454658394596505755662013693044995031999635317286594115244367883780291533289563152258355058226332849304329081690299017520956825158700002576354744349358876271516017119852149020336903759912859807921609557214980866652597638256770146411653027062735019513984891552092708614738090057317573736427958125551579864900533608550547964460106628280044920372976194663874598949229288322907153657879844159680108152479142972612261571299029659467142837680515552117567563736294969368562336947688292183267956783683427276570938875330179000813453619076121972908132493707325323595623750339727847463859434376773809067805295177126418846577295797722340895368459257552062140012619631029899462828474578293339145322038307978099281565856723938171716414936943040585081462377348768097787448544916249992419208077249684400656408553173786656193979968561751750586906008698595287330323299256021152826482643924012813527115630793647968089670044414450314966335050185545545418720973477006036028715098561897581924823828819069135784337094811845077234234298754473851934849992550618358271122632371872539782758442246398442273587911174776445709821338822656452725890923220774831694481112430796013853340701059746116870182993870472140942656544742177299723842272896508124155331679855233524201159747913202451943962700026394902067942254577160560987491771001512654871316990236592271794146688679905116174817222060631396967521092407186101268616562058035717542548406052197131557742563087507310188063709746917640570860833905117515873808631516528411809980615260475554551927264565329673585889352371932626646971159642689916143580015765446588234639812803927309529964790722712916264599072127925795490056241854263867206580635207797039131173829186358543588962568436393095014981446804298788601923364976895003416247561483373009989528680135955990730387822579424987110124037424603901379979361681450635896916686621809078677367045416026921101436421756980141120295629976323915436978356921153344436455404821058482683120064285669025285610833997087612167751367144786795755087546286542117957121857740278742118070396368548567797422386144310278712727892403475267136006407314415779906905774919789695802396798408940810706313904717551956383744441674491394016463533089278847265346663132631674785209643983504008865075520088013094748533369654820032754311606603797484282296378462222220561689739491924510266650867283367377153562362060041424173935482244453066470082579116555975319970859545711607304298627785083250076869317334383682579546453911181166256387307711020743754737626610301913561301001725663407839604643146490794593962080835881261884331273004718465447366303961690902861664076780264118004976378812216475184252588349494395134597201181466765902340163414521611247864207086524684944012887562773451213679747317959457668564658656570948185088490434238707544911416340131031752521501536846685697959206712537083583470130060407139463821800338265462571483000181133861463485586888050249631612085135387585217299594443236035615768741076294507820467712707913713927827401724652062958707596670580496475930641528433282751428240374710779271339222522965308563832860178747040038496191189219145811369294580857793020119635366386081081211387081248892015375125956669117374431779297149115301536514097512800477799850528339504084831026941361887226847340187907684747667937467304867341548843234635934379135707515942394678998782180405661892996848757392626144694214579600000970280954062311423462079180724479777496384989850697491884227155606617281680214451685135215970382565740373961815248638122484429659491365083211150130526383076351515838521807827521058346974819767946495872410344112528698120165798182871042523402229317389075830384908784056599131850883247944462499059239907387875940550000496400217687101801650616428692690096085492445559934118378869146848519033755808020306734564461122221575948246638988821839231922279212859057628765617336558201609924282728930105037821827198964365720713824262125795448039716659103823690653759200789643313083368145051172358752865965362110543865051755951742145160036646402058221330314744894635975034972040505577128477396442048223255647045144933688859570274809495470581232427661204356433115233308744031434117989559260557546640537056298077969517069795899637737756915422628905695909959616829582106366998007051306575210272748473255950197525122240055819671003710363350653739546369963945404437578123316904117171378940049951808457728767575890821717616854916964041615646576750890622609836286944472611729502521585929189536984310446926231110573145672075211805941439491979605270758126391692824039437150973784935238334931985904879272153238377804484660152419901371156923593620752618796399779582490889000971592721382769444402658615848203336423287571258038719466446860559681360075435145012437742749268421287433545320345408095361147651154823385585616557030572309563520393271600021750885159315070016427741219327440035420234471725548232865098966984774664035398418435643167949220700626152287600434808424160316240132438435308526278342736758641727979319551715659364873413055658436449798482071043896461124126864383177019722940200654729007818617479270491450360577855183311915483766558833330221333216432710196016576274071831944997007890416109895844390919925241051877910492418234580430804087832484889252419987237864632206790484179759912346094165976364805779086649386510267929204803793491941212098327500769989011216011517176373515253235562123774368950121753487639551865302879065929340402414153132762512439729028635518005241708944962891284650252669194307927469712490936616110017676392692167800278698575027583209349744144010937718443534270111780079228759092584204679803266090058155288991694430266017889790658608593201656927066744550998522932865873634126251311267239385050590423395776148781484703685599804526073584901087402679800411739036726142973170867634298929402840614525873713866687736197296330331230593934211022507859451263810193117756614757298496641456865819482556902020705825673584886965737150229829867267994444877198654881303141882062102419564499189395710074871948850581957381429570893360704315543278610299896267965338780170987642634299673840082581971849171917561567014440639240433182228384232198775454664033504851111244843347456907483800072446674943629049909418607080936042129169747527709644633523057386688620973632997708993271072836010104476168716239863014929811776109630572223871985770005491530035036655685004182014881325295579355244896302555989758550302050112352708263965283299981752217988502918416004303830256655649354401564645203933848813928261714059206621879883387794328889228750452139465958786256426123108022002564927602867502182240432808891444331613213435153999985575621107457359397389362307203974135979707077804943653679595105017669679351239536979789412541630326668787276604583346876773204881885888689355699587818904192892662360499749122031019121183889280386722009501898201137533274502076586918587958518265171737500439522325614249113203348941686753848693788187826351327494629964974692622658232061740242669421515924023182314986658391787846040476152004451993081006353531034119543281276290577677259941688461786282783078765064749557742355749530151945963020579798533421261716220230836993106932521204026333395356880066940464488849233885228172502933636523279676564149195103439750815309179494477007098462180695922088193304810578010939797403692889795625364901856384149096465177936096175079183653147746778026781227887444854798268288068349418960759345020767465388301106542994937047474946717557586383167267321528143948667297481143059150640286492181117563950245586452862915517650354458801297262055301341929962129760700486406970113699091450472252500705688935896602263611690866654900691566537125892422422163030279144257896754753790788656762469779100723490348655268682608701775872100802851552849538291974815849167635607693044625923391672649961350792940764855606002235823708744624081458392102764704030820752566797986951079521344861643542492996436443349464719085480198112962843035369439533862058034659233253386867002658114683116929151837816526526276684506565631520309518710060014427353184110943086460573247584999016433174272234034365170293461230480549644002626644875082382114435490704085087213483696006434624744622966976242857733827730502033681822576815164469015729622191450483935269688734781986801820406621321542935724128353945385699095892777089862837510585506137526070459399066486062735894177046215580398345634834049831513050437485415644024855069864211791771437800734586218659022457917747782248152709673692473652736518959796032857743392856154938664236801558521837265948774416514672779218085361213583072691162341166209486531280641865235703040412871402470901616946119390983560878893055513507948586973829858356981563715174691068997715078748782437883557061778933610031678970454946102398192617240006766753731031614458002828807391489192502858660321757664471977563444797221445179604414883489124403330103735929068880383060260608738469069722641047652054518515445294485510943115354088358294301731836375070608997859728507434506567622945522234313231370095574050582839775591875134838794061059460820097257437176123949387131723632783806001266314446423200627427462473217982468775172583651628383761945385405981530948980938631619823159147360394182872205975722140652867789746098185615950122835253565657914362746120805557727851468559631629608813936096751366970035261838257628250515108226004507671723335553909281931030658947927264286617783375459184716023582904061295414805637169247638522213307832346979275651887956198712923492316706160889817987566248091703376556502968641036820016149012671422516075483026671852119464988281531993009643217369016391906238866253012190041864441379110752804067622314332594540572571536249309206067113438885724085747216433630399353254021561644923837336139139878820158041568702500342777380994713093078017805124915468083764523875094545808286011518559260139888589972581185185319774268146622560742788602555084549684835445660758986866219756659865379809421538997718850124914030061491494728732032095148843173408681154250091682690157621141254308372138708797084829805787303170232376407072832513068695775068748761320796062959086972984032282239491604219988689212715271337944734740473321772012048500075823170832130893169033349574125539708057841815535357195517523626361471440596077263156785210691281812323092427633539750395010489573031777301712580306595681771967297559789143649999194335672654103229343697446462213285235671928015202284793299258814560654592914800241372633189394352029760538464657036618099612165130998524068987111126606868585653967523352062906248065640174338933253164945772271662240697138146171714376439909023313164028500749708651702817694075111306670487112932112284412689484584307603535481764264076327332682981892070690668506146934429743522454691213453169446164128391890976129121802682739353189298119476444524171628407808472158792396128898861224971718725917502224577229254476638950867168314536735171928059121476441493316656318338488437272311083560985571451111214986454240417958438094820968792959207470575044935818636323081839221121608583184998297412444026102860480471866546339020883432269746293665117478887005059912332116462083275947116767250586632293128154987091326835981284204943877742720707387433120050682298511431263126996070665505096033668808737274505809916493875549169718422639061436735653683172781519947087612316665340427256634069669961366078535964454688966731387191738366031613089673011087034917236690330699233675557315184976239629698710625353609856503632989251478761932115744285829853295253144972674589489350063639479099889703330768040888873397666080952996814476495191537708824808581015323498916399120929581659968743355595085031793071956306161076834773973156988514668315024275799156930737119010676605242121276543444374357132529410012892104243725107526961264302839425766191186416108748895376991969627151113678690783797329079248238467105364093586686197885847204775208131717695168758047327297063157635634480342624747716954561895998266740979281383769977743676915455676309086607178596747921285796922244644608325887704450148065652437377745682550525810815234206440101476729803552820552506685191449503855779470797565538313000348680924801543845092965406333203786767650887257442753894775274220791809035806185604378452747359207978033020200079906357313485737020150149739003469137090736715126771918970703421086367539959901482833715422060661687431492171785175941322671319758554119004035199974678211528764341580010964392575430519809125295412833869084979104765094485628332640573114361833699997024933898343864631967879056815694595733775535308934172898964779890185001923980309253395712766669426826995615942398716074913300497460428350005752807118527893666700393036700605129719288938268330242284087334984269917241854634598584046806272386992709153464497797176609447157481044167614485970808877870591263443218287187315203982555694413970062680566720444543425505171592196942772579348476044019518067298000419216547241382368574700658970507737553938491856398472242303176850232178075822518435724288922175644976710159035762542795995211273643936804511453254656712489920793654402363978921916940283475666647593009200918458360438847253657108366593110643689474002696085394649690117548601076706680994205372555853071405262633275747815383565366845682616925937297208148626983314694370353426930919447884301119915993981405873344614483018066795933397635314964147202822781393310269770196815534597259541353885504940315415366056799729643450468170242804897456431374693715047337546960495222514257381973702055821381600153307082321722171637450259391961212223293079724754332585756553917901874461692798163733978189025834521785075588832081693562945273688605145071753522411004142077110713536250003241862117195100687389530588398267599665300988286496906922849253266797425669993815076798713389154921233156885898747537792021366280157628732615413744583896742051179722140176764526743613800828449565707332087171702811909403123946327386843080325417848478392977850049375783834605796590634143122166988631693575425827779817528212503244483120903444081831643832652351964271326944472102603761554522481958414588081963696647198114626699892343281801387340853691312683068839442598774344233951882189029737976657262464605434691815852691834505148621680918469699256292573995737349690997796307485958066372087426067681284122063310212870756044523130884639614192581909109232003569395389316851553136857835193277638577289630328833852589277201199665552748007402466756797565037708887296896164754182677107862599580943820498380068366876425278292290678082924831716254736861409152519213990204601408482858100829619582380429702791133976669952973028263525296171879319850392969378730354329549185723279546898925323357309165175283684648512623824009078294654541803466123723927766786159325062378490384432496186843258569262352200291975438174676869557240704138635141022852675664456899566437692550145586457118232196155549017905975374707795692532399915232693864031223333115377457709072845678025651384235586468361263203663007578886507050806626341434080605230307549695523063030038913947745212807725538572206981797839321325996579226755904976881745862580817587123901845658004661596488022418602426872932545456708315087233190784110320332523029386839835344131979946285513314083941679774208234281254588887416152022450800228387241638942820780353803537857640560831615334335418429074427385373085193780819846672099774336796910250895282653877299969594928766770632897563069847079355977838280328003837381112614170497484804063634638940646165104130837300306174340900304723255429454279817987123384840947026707417390870429843999119009548092555236357756326863398895779068252849735920127787401596099854548482296343305077760396108104673031498661432503293724701055482773473897862905746083837275662053393692977540390184065996015453740975105093619074635154728924034997196331264985026273150187628757677119877341744600608795508918029484714109114169553650751900655877596661328294029528970429459930993540761653615518247828634705568056559550199349248300827332151506161522586412269414959916217362953038829309447447720965490771705560644327239984711323162679136750787927702186114236189194867507462632709965973562172274683922852029585994325496490704960972926349208093597875894479411656809147691056697676159893457951939335336213770668099794029162799210269857771661470138619219542666082397103193509145328618312487038344699665771392891765390435555879900266588807308709386430178834844394217594160549473947555211896304276936334995852917752138069001936192402164758254893059633647885754991277919965233140635246582246576325860149879563398066325656247565380770747455524873270321175730256798682478053415363066461296240653624147563328167377010001904189683525211154323684304360463355640304573268350968137733088207101650074840755260988375582607501456657231153511057001651444514864928458921264075845787379997695311789354138704787803534108122160469214322829885314739331399725698280430807847932622829133399876682407885618807840040305954156096761854073045786548674194321708000202127929743437870489822771715948110107836993250096715147131549488008851253788978418205979194468101667545275520198232225051930992535774372823713317571920757767823998424433691908911505187478621197792177722958194898890997682741170843986594065837143728094222909550242504180038384542825224957362215386357311769246177607606780849689588647556444271652056091782070497059150562736756492759619672522001266235938260953989804925153336398048628094606402272580267930246270522968200940877661819812912213454863248522906540638007020875930102728775402214535124842769150297220742429584011452386401029331512394540987716198833018551258592096449023075301442298631143717375130290274238795965083050668865080138546445312147027063517622320059310034846766712792152638198672094201049107056268700145868785868583814010316733534438373128149300337118560617600105724467041667844975375519877050622975454662593765545079085289766153938138115255890202138427634258397448733514535355160627000112070841514457060795535926408977572207776427947897267752090154123201314318678651669197347422479513164586337309647496602968722259293890589810184231085501136214910427811115259699465467831411712289680907077678278571152616212694276780120874743049166283669624191087548208938580761196061172515549236862701529670434789360019304694618428499204162937341402880612249144463080008539154196354721726778378361584527041258410758289853185364468793915864962475903265392475787291602023612976309233895759985823892682834611058290571440803676266378246477970739471148679907225065827091682642721513323816796618611480166278341935771359765199670724699112686885574876163028568476894074787002661697571080342102179395252654825710546885101261914129802313006825628341989537582641961920802746879483090833174444508724336647869438755169236971602533463912111622300883673523963085794014847795779312624871780088386414645658840696508692166796167261322980548084591343362101399995166071632601649644512361087241496924372976247200859226682007473116547761985893669410656537515525691330970483415024610937445661839975353301392834017367362054117557747400018617831066162056347285457074407705609809031386992921362962458156887296482873446958012438608228817026627022263448077508466126420133472386439669411919438741994979293500854865872679799590728144461301519935287177941755653491611740638368766427684117834231063950530534527471229822747758620371683655644490118733860879142693156076850459769203858030136961363010900124022646076188322753415883829666629467689084022499146350290111247152130450526413654087196721004269392274414370833880534513545041964042080020224361527912919947955064232107673008727856352285250907981187278805474220804275728888742195735839376715392342649580252125629339823412623932427970070124305418511907430757306907466958697648904467476339617646218217257438182191354340543016546596761119459221686748378729709562225550297449486008982754971959512285059210635814686257654130729410621466661035840211602492193193135406817626674779710667499970094122064758584012404302590739339677596972214537519725813476753554854605326366287041079822563100826315201164354355189780201849516275008185655141416486588584834717835188240763859875889105576962715311988569636178162822632294208139804723415242722832042569714912594772998357728803141993509311378988096117646693243238434194195114024120670745603849741377973820392258293216597230372730213120419032274937162481534562478730736299284168884203425658309104789841651839436260963673121348305116223610847403157734866063372968408089487267024149471417798038560874865873082404253969883038321590142726357760943148745497335876590311471583549062098769443857309547897215371306472227278867644215219331443107278209179994607381684285957700220506678482997790550751493996055072939735228252514414614472298273818887259463739925314033625888808255194194215726557906433565757082876226533192217247675124205015919491531051954259907202536294930591721365491508469957343647625966348913801502548389692291252058228411760964368240944810943721196237719910471418527299725903245829344869292791929372058400427768390225030986982495375405236237622401477041798513246152027575282258608646603584912961667218481321697164289870763176356437855019950242769218666127178555398765776614707574933624783979119067994338580958925775112493328727435823398423084832529631727732664789133824676869442502906443681266066475366821909407003817597563071426906255355009684715685456860147058123197265179717194276751396620300005606270442700556265405481940984402914490813154501141502529054426618853790965947530724495943087753114423318189985281717615896515430688913718976400651280083316573107524442075341603275130641103894208640448029715192405716622021409600826962241274098559548113004383275680950039653283008145187532569472596515541476102786494290027707466859058727809160206551244552400056027261185653473539673075387509294599967675665195700380843877454904476415952823709278863698395294535699389467842701018738479422845310331749152635090275188470507324290644427315996479088759598594521122199361535946147763547495807955926126880323058681388063774590590754594134153535255424039046379690614285226324423175005880966863928661430436755534925590477626432721019024056725807088076487039696971759502053955085289637435123516941621032029938180638485826275901185858614592889111236875325025890510040768292411055304428557278700634547894805283690314503097148857193902956618624677553163773085969624548177450554507799356171395257503550206520585794438487265420246198216668831029298403794871597102065744934068507718435060525516180156532112681192285179227760028587269189553321239152366928731166558867770463871561609984356139984745769583742341935084743562905196717138381701218652778812767095678718019383809722131823816458949892004873957184752905048695188150717930441668286456502793188191632926798613097150785958728954081215236084048205169605048595222313536318934959976010836470886065250365720068531420451946131585640401213471335745100248099326000532322732537756049738738741000775833826038752465897904015574462843515978967705839550547446538421583454989246139833788103244766089210645991403848046002937603056368605970766290390949634780334623063313089949446409339407243933028783919420023609170733796240175392155466064590498845068825275664636391610891763400717256292868795687675200309799830066521037970873109920103279574954091640896050466188712374218838250024560702475909108420418214855144258719242798079486771115506805493012211162281264927756212660990662042312974350403643790581889543585000016524759500716417118315857443608680261077030801233910254653312106942640228504976920739550349558422643395207103562068353869966429660594377054898670171060015365232772442894615965440331399734946387075386882182302341001509824723586528666038806770407106772435452277336029005888467266227231516750792339510458837164130959651950951289385914851486413338167019697331216075974504762101842158309487935161016535938892328826263309489637751927647707879770988083705597085651907168187102451232782337007971005244931009429652720533180006958255437590128512811953765122696972302197388948827231339132136686040239441309513904714239099084199405904940603454592441858352309616688282932700931857387328068964355767880639008531643598433535865429664049323251144765319088368969939725976636382674330249686777968265315468065544258824896042742713013780814572685686712300753755940020939293568586750360990851100343068387974651432005425201714848073889660556015447260792311378577910149113840868910216036145338941257755258604323443260454503086819100623859178163517967671523044389783898100266180479138578877004961525805060907748838449540322587872700914348159571938659060749459076191103460269308305329019303761668051385129032220657261439321935470716213111809211089686281839534247125173216795136925033170212548613554231837942949992801617838532194361240108512200759747931925700663414721946008453568179151491312165767282615351295149310175506226522667788640132650081937457691667336321735571104953037116571462302845225417700808997039232142088616296542597901937518655723273447007963912161959217966446772269237361528688966822676027890771071078695017733245295960342597052158087678230420382542250975223895206018513431284357276640442158565670802866756517323044729266235598478383236769054600069095821413912871194076906582987509681174879013173106772801414287013159911775729951568480075334395281932292108213909728472013807498522305909361250063477195522181320974164957098149625445340695133743931286740778466200315038963033316618633090344359901292778126123830843248397675766353580891271613775860182022827825322288421208806811536585088807502703190397850830012870922142336659241793921771794381114842981310395297177299895992683274835918346546756817906217758654681190946862798956162241016478208964580873441709618534797390345245139675840153892201397584806050201460741428065987999245941257171891891606436499300247815727865334381926530810322112752752837441002323974216546461523310214600856075102437646777605217196858377318173954046708037798505775486808842879314780842550716793414967341708117581748665541622565227139132554625638053328294850378181146853230948918926607447912233920866490754003046489430769133007551200535471097107941836581521768860139399556309464716753619410086845980266764160518021688439647164869995625137812767542882989943490438354900154819998145259722475285878207820798780546167049348033036198169245824020629633590751783698583566172408269603880534545189723468917685708661542932375169714135804168226307043189231996656790783773986343910032564066339916902753344250706226594972265059114460236845722093354409392694020620483740671015968414060305923253828881162413228278136537085035213649576364559118983298560993651952990231435068561819331823440646995594555627147406790738473548868845711294840415265746045025055856055106516748396023795222029798820302072586270384392709803567880912274582396842098942486510966001656853377398292247038764446876118130444609468602912032178043932968953084409813793220449908686075663832882079872111590266256758676192966436056684823020487626456814936674800889559284895340207113534579441183247467281303330751480034719336988954335662124747521204948859030819904338489612018730834413110651444937082748219579640335801663089084242870963895521547428900646529725389592677434375560252808986208511420498961373102486671337345918361757739787424601299932564602468013062487600750621348191386595001596433287886905758970373435855075258584756578265093422312751333344438580475877082842573526951950793380837588318226158059368143528494976528311248939352966181934247659080686188649844136774926230752606567876686985753078258314304998797132847120983162573202563118664946841239102740810063978054051484245018765287146859228598696023654056839711048883746787324832127569074630183307900133576045533971685579300703562015348903734696688728388407310853740795974744845246310733040426349528409390451115562671675533094203262649081376564010981412782124085644463107613171031681667500864388640897311466872037033322414755834642455948147362510224021940755893948893502462249046057260871727273616478990877125850723121659002965939635440714025918932570363836969318180440720801903697748044832671697322989506097482773197821452783423158386158977375477319976798989245364795492455932709780299424037052594652954809887557346961323090055009454289853173211931522298004677694167932958180212257050682316383050419828081646672285230238377539759994899123634212167939813786261772601854163813329044354087211860772818001223626697166925279419321569793921926405761408483320519608254885084362161216570965440295519866987842843862943150044476969767230823849961828827794144254500677522443931053707632395163345041944674591732753018205075901407382296204129736335972520212165778935342981224723341600365387553732128223988139301552307208869733655826644786419493365349805707572300416239956393441120679564660173976243877446824614479477354168398722295139689623327470353367636438300361778865626261687607309133070889178826949567309082500372452054853525440634850100414194282731519588834005898903774823449143454741081605318076755329026483506870186680621191591203125322297630482633125356643034386998971944099668832623739909599469818464021450564546344319727520344389594751699963312273271511523624442966962733658408630522659221092574808786362868704939449024671157864703206784667546523824901269730598736464472131416978959428301129060185046205992924888702667741209947168335674453220091763173805994922197058664546490891908095455098640364373883847119727922025272725464022590705661538881927228887336150946157460973459587347912394840865567725399633423504975685697526747077355553017976397580570149401303203433330093364682764322671675720395404059686517340364444694936622735275031298437220510961242450552755302679447604251978017729722305900635222008497678558939279373974512543687655802207659747264711253590082812061866482750753406801205274750142191027831333975661057331579715574762380245270171322854174973379241084279477021146109851838157975206673114850002014946335441616819296593278447459437451371052058538384987443858641372285369212001585165712265618244741387234878950121387419372761731953498351964983913654760189005077325412306891840054317297220875028217205364141707320448710748831865642360997498220836989379391372473750309830849632463992841698576661026972293625724079628568700432110144743530793699791589438942842081362131147187000641851990206808793131207360786425339534002406524079025659535463860160166451355049605539073137631442140848621926983338008628403929233358989283055676658075009470598446606502430705132734780161665112018425082548818531860248483668836011067979045121190148353884579110856449624146014343208003098214522454871630207830847427443668983781825998346577529110147297128492344486565848340459158723876384131336271918647673338529168197555593418419896035213992988547168630932577980960594646800106958543538461555361926029610104964574060080016603514151286194021921781156528017453702731657745931667085609853814656133867136582656339416004933647712555945754548425422942099374924506491526120640852831098784014290429511848203226926638776781442990902965090689381946683115265184211070326519869947094313381912010563148331960497051974443083087939690367242009387030002216668717453382753115294418483851837982683693151653036069390781399652212092442421391472361231646099359209027627810947528044136961649493330281162109475890992060085294529906215893967749160566426451756488161371431050523205639049829184558768152579362467788739126951541471414508673506630042582124654120128909835337879322117446634686139591663419818975687246054215233657479446346658695561697819749462858400343628961027924021478117792838558947460706658340821917765698827744631766343531427594666460436542406578884401002364408622234204458029898203332855435507957147705937967303634398389870176283602251437180505961313062877394818201389504890462224320021190891112199303014439962031546266632649014299248057264658724940137167979496847312049270740963802734767161128267374824431428144787783424540212789087089193508578459149727174448128034664675815926206517784589482466969560664586563502196668999584860162429462377974472388507119146185468267092158666500259580156678624496429792306026256355818532562326532472040519450759547212611882689744684724951655627916986424100240343499547127762952272161354119256478650528076766092707639622211769358735749678072987439717972416358396651860000952478714304500303177412579024911598603113940970699306134737875224675381041838745329707894300424735988035613942928522497593729153711748861243217545357578947387653817834939343089266865816145751341414412817063987744426526564907430425307467682023390208918607126678933097669185072733935434188511836108216564816709656403232127750040848848092945553541562376379944437169988249739412010319548711844876853539755539843755706918109256339540629700629081336231753793716870499635858280205058046243823504352148996768863031301905938944777388587423882447278441496059480739699271492079965266585680146977153759798580823277369577992874714259439194762374733970774940951089358559224437277165763847721756337315364948130398879568083254388607020263691199288009157165899420766682042715962821703977104573137718113088311080449280384752781077345226110133787783641416585209724329099647422090276920744099269652865441607851018675853753278088233408233755048888950540355976134280938341026240049455856736000191367063554347141253360606996146371556261434238323384682760343548574239354441699769639207203330387266821713528795195261738945038896665431427238254870931342382564815565911172455509313007030652498255570481229581507247401574272628304068484632548181605694826040946725018196694486587049947526098947031497406558787589386052422158343457418935689817427220653311009395712850220975494962102174402840635553974648896288617217871542862931814230698440134245114976024588137273181669302056955851306255851999439029920662891605240870208445999331341375350206884816815623302506120482603135386424011114005629446011350126393074888580922959426111027071021989454466761112643224847707586403323384030375508171759874467777198663143274356782542833362565281803531339349787889080412181757562791081501976183318017990624602459936847443857050545648484100162199815057234027546919236624065221169322899337824823344719236691357271029223992974814236375408766391265863138315277060643703620972771052126032752903230990964781583404419795500911915942196602354005751896340722330499439812225999818963537346106863589727304522180268078592944482648661282693960255651160379839758114270515256869991931894509559386635311033632532509424966761435834555116311660014318398657303449179414169094735098898689564305431043921138429365467918251599169159620097326093875389119311887055653741218601654912418593532246191869305050487359832753531451431549235837650647025955962634908329771901325931687856394289464537690099180273545878607422522419816500882590175040094880451352480359562389567177195761320050424541598085705839854206293965314857268656532484601652424556156446549510804341642595680303183513013351070825847283658860148400110775921146042549356047867754841031453650705143746701639429838095999890336902122284854204516770719524221444753095699971556270274391838350845232875264998879735139297257232603050160427182886100296681152213444969058226670723975641892278687395130847206357770228263130021090472663627015120203914326868078620577253649200498724099678779352476319096075932747736400697998479115278809263406125267384925006202502389958737401795538451649554620884132846366362124550742744280341053540225317865744831053486798787315300708881959357630178151613541160398631522391147462433668103762912093565254615275430720095781562680634211902264652347014469720941874223922013123952939331118535328285636534802172487024133893943953010470253690499931831145750486080052748947160302097208573627820720389179247228164099471634535498046513400011277773862769896182858191749507474775747680840096283541985011729105521622732494912223152050176966440882438228686913525241227055224731736937589601834111396126654810852199289361283079142559469481072232984914908414898112460983098393464688608241498707479447733751859051149814541520581219294238490007130985200760321860188217190382165102033686928074060527482525704182903645887023754964281187866348709597306894595814366677645726233171311414449443514022718847161528526403497121886287936392670282960959053883783024994527830431975357170957988550042365667234947549611292820709722438666658637506995699959838195130204100665498841220815823520351388649806679241188671277990001206451818066614973958134287897754422797691557094080306411198863244031086132029995666284343454228399142147560827798255741818588476346535876766034011504522544597142897168189191789238916049960605849160432222800288166799771635803039128491050010254543433004711213938948620558763309363197800027863359944052051410914388312237958612024026546409451809602309006875496304478843596497837929378525450418975484955063356843773738748447080500990604134468123073155240462714838969666732213919586185138384050256272382758153579577075269585699152960901535232525700494226913693267205288646127268518593859828962091554182531071492222260911477767832171027374682978931979527749619341183250422521112738761910903402618306655081673226964695401468079961578406817050013896863605876095401125438642062901392526227313050045301723356526247250892695989049491835317114502747186954121143740397698547661809942201465570024666173037263518223221911976258867107568911335290723849812082296414058128067036663433167359752526110356531027740183626870569443136354100417652470645722939977338252944848259219181028530524240063758136102873681632409620044294674201781551179044847749765297129282739219827356775886301869118074844555004337608889584438762672232384561426249553960261481384210657677775152411071413842305050746266756851060019227349869842972619629082945108394194599749989474634171584236094453425407624161150923185510603511973173416524366211231805702213564062342901959369790938060934222165382857580022260950863858763037392811262855986505640669287080279745984349125999537387400798168381701353644130649631388687978353059388537037530803685660306669979646790764979217462507554367915682098577701639942507587767487856890649486554364044783017030347435255256757750972977642163411357830502261637467575217729981264735535842897979256099051490841674288582603097871124266266958293234852936584644548382382575162026069455942810216179440250865771987044169034482364653627682616250647049114572037123403707522008902104811595925273068695734040608338862383065140465968740788048799290643232656034413995141042933269252707667961339364857899468354909136109558544440735657328831824463986415911483155718193389148878366173402264964960354851377168393122572641248331793984137014075363435835492948850308771981067662619159649928366265047531721925941030342742883814721581447302426451215535923565848253886155556082271579030671499967848025136839483726046185578981608739191698815210790382574929133840252691035615836881209854236334108585871059452265935657327680120183654933003811313812628933527229607391412936696280225508981349716220883180243921833005242889763813171105034688724846342364074252168290514880092215184210772167747689658625398046501771782292810721598223247407197112981085136988760735666360948221581860006883665751869116429181149205613146704515858208367613038831548789115354458282425833914485592693451979516130865828003808809184235652191483616214175526094649556170530786749170218726196300499159530651392997518009260181013893243869346194190840258167480153410027591347896593800544374878781913670798731814182695529957984504355750229362211509610804689940605089944185076684716836811121550977895914367397550715193062397970558745124400286888956107374601948935183590959218756699503961484132454476306349182162347454366765698024793019045014461035322533481155562071105903246570327001127642817978459096759249942880784845119440354797822737834665970561318468218107198758347287355383963201460308562415673395232242762414459909052611022659906176458748991920390262673945008704246153368622651708140371256324425283990634970278078043466111260413644976957579971275104646182072957942959838826570393391227048912636215299552253453943676131906155046847953886425244191470609956215376127603890022467434904458112393761661521343531008143744323788588959963247678320509411792157967232572541901716100133383398429031332391626036191657311805430876892120098853543725469538387141962238442632843927485257833736792755791071518477548551143095345401540196937381764974934833026241181438700324644242835733843841242673966202972293944091599297906509222041186504558629027059532999887951939763454687248541175068589687866555667901208379130644406595912764364474032558543015673604532692505365890904160389846146097174622349269520233019431495858882069904988019158305256273249792054340549682857916879041065905009901891956111990038997542089868576926227104568304813325053104811832274997064960244861949299671512661013119280902489461115629521451767391095640058617066370771577300766974906240272931100247550939744741668528194602567915547729605685080211383389228562439419988551836810919739367591427466957872554289242069240344797643239899510562365383270311875573746856487151805647249250060628951093629741070063682940311542246497094602411483944174106012566044458776518243508271937076265196382323067425632997581856330598010117095636819436189989454365264241196167420089968092031613247141991991800622122176522552695860148482293017248468211482587605869327509943912718800622698585591238055594846726653635242637221396800502118223424059075226538425871314485380358271469963232532331123621492944628530124623651850612855962254105454151137261351499380876437166527836845218764778656162007832547345762788981648112706022212446811051829028442023257572788643168959471548682793040318221739081705569817937280487854257227466614157929629625665455528134327484367128733865598112982885683971831911004513067627256740665517014932439962034908076558624227661846356954748385874857314689444234993739364652957291264851450302182835948843354639921512803654297132543139395435700994879611790609821285818410514706496880558627883649339271660015459896047665687149623450274898897457516498140929516236398365413678902785239038928124568710909694599372787878712507279015874191370928486122281267541760999992484877043745291504903934514728558506964267752036992246420006780342267439896986432284449289528410736892463438238991163481575681879243671400775122278051502211923065079118798861309445157064820494322954843549476838265250859825788004614899532883097045630024410112210695728607522351795967417654602623524641996070815922596872450614982935658992111043413370873971149617521834351854190609237899599044584486909317178768564124919989477660971839776499562997090490532670904114980298876102035938145376624486412328917070430751133872880007447966741278471683088339196486362543660546765506420870371517905606711766174449806387418814034787695346192427672747326803455542907474788073232601241284002039166036906706150039250389795719832668404486842467706411616304512177281800308286999298706540443533231288034063914148066527405442839251232675429608829893126747833332110897225639752906986654677857990047504074222655597025955852189003123989651748002409895785795406136868811870082119266654939427667559405117643148076574351934813116874093545356055747582647247676189314921857075972308482997884028266120790059611612435429380679835680486618887199651965036743065802187729372083303319758872470245224860965236472050519043529210930547344171566915229739317966448469481593196639071218081115584976933424646528721477384893592783711921764604563423581925711914849844952803375299445908281910562382379022204576503753496188727901469025207256124461034882717383073104956498717630255975369102552893635372436508964879161447913615505845409451225477691580992401739468654123487128813747007230566970133874667994318290688047003184998300871018150157506651845242456026481859755994468429421291869530958891301699778240381679985508398590572767946075266205785245986974770742642903107511276451828559295189793689197654106378378876924004239979878493302222576098358134141600743820783458226448362277067450868815796338082523915613897564175326686848622266928299740753421881871677002760211525202663438473081860534558959746743969148072954670952630827393519424820387539058180346695431318506609919146436369861038978616481621172634134802141612309303358058698998560104128600941582941621086512304763379542069824062844530337326449340670302180307320739596507435776512249357145962055865068264565477622111650179792039441524350751377162834419366235580305080039244646387320280367063920141014020470644343191810406127066314255056633778078866635748236823362746411722289632998369547996382272244659844625613320279658189533151649999827761986082232263601762696171782698608376194165601032036340356463439220547993033260718052584854909191661035566920130564073580299702624530163652713458868070405219694012233877633381693703383764300209159114650349506772703894713971240673395031174212221082131321667964360919103292969106713441580651211165050705292877381342869702694617892842675056410714768273030077359159883793201453064614714016277670656362330227900646299671313882554022029274098442496091060617056219558749413887711679744325691294484696924723185221776480581027091461971252628984736222116481599474859495800020970327285207383764868443317413428299936342438775421770937381998004758066835925011265740699755423102110654173240168131269096912901109704772624647806319176465454419120365234645245272155009414158637625125029138873800706559971558066792953731909401617650351556553010444588934808226995421208603953133406883847185870674578003483962935504093068016548356678314447083441568670498250284175615847380899643148910372191566367080177985577771241681047230351165967396324864129221749168171820682310197497231579204032630743446660049191337404602477043196348976885102899022726501328847196940308996195446647067007424535718563513714445941218351986704268638436395500662442139803416425990210896008238092817738024775794123279433311846214692383538772559448081919684562311636501789194653774211345887100653843209724183625555381917460538944679398890886826034419430158915559823689830840481175972893855731648312333541607327164897740420607012893611266046464151374931006047274518143376259050278362288708810137284951334631163566681701735415351541981524094989647102671694727836043166738855586080622553198389498335520443569647207762919238686766302725139444623354638415521296209827412794632766264634120607224474229842220829674702230211285577416592619800104757678257896816354728611717486727887072200855565246460927472648074081175324125253087516778147410279078111469858643096713073640208990630207660794635080518563666723219098334270541191647852104936924149907930977515748849747126495618918158207175298980501542321373061136033692059228986499826706886092984544792039634470842407439996821408585818268365990963074544785214111380898665101309035065993276792540920400658392235674010482956499518114888082380696053236856978987925388994035826070325986497234910698608874247817403106658823821577198095855278764906564845682188342150139243420978584547678769348894604313932661613098499132203212307948263161415771790192892013307670791573067514196438014289816101342802364627249173658039594669874958895307208594951185898888936440698960578731878936529073115811164890409691538046488558885109460055555983827142323755461927070263032321096707845569173615044731057749329986607568083410721490209316645799650823743140221692141947311165680768111820265292463156523215185976216184191157714066650412483984059699551524302073908976986577104094973147685743548961239796749788862937494311501404420266644635704857075553172483978433431495535917470213862102521116853967193330965414229827250232028663304228375854763129054380037070733347916671079983790754456484356889632554055032461638491613057227461712271752133387852931750396728274594843844314059351467380473258543013367924269576114992799133628224119687057861030044927532654219984576115716947114493966962977097839795284221991277085443703657327066619345431499953280393897352658563274687273129601553900511758054866720974759526603442726776594495918688792365750488861077050850413146989460946489018087460257001323754276844618388542081200301713489476115127855556334323129192181821778306062351728378680257841086063848508857274378552392431432509556077570729190776800573241847768499102299939711837214279021281504044482147038583598584141539234780725793173218671333135128953829662579633647875848308437016973652356714231988283698891146009301300426810920098056703123834805604107284552543005456251040620168011760063887806350253811236853412820388887317955811096294951755261432909117268589153952006998500937295673716358263671368951873367174706924670974244002524571331168478145271917520477004756372291863459246260466866957384208745724790250528290936769028360710910785165096928189358439795711462089126406120138554687255858536471631822056033877748240955362033308948344329647776864554034432733652847544602289493998376650485412995448657692662572865021311028936377100030348839319539843430785565105943017190041878337373596793842973317661732303799423858207119827395044129326427042998810324854978786958594603636794086175495289028501776581748718252361848762147308352037543032839205730730291878496269289560409095879582721611398870253496548446672417459819487199742154112811135630566848580541281809850049123875560941014049472206869416008332282232072770146592836148799208859580061064661944187919686530056879575692343136194138975651116450520772106423319338713949560115352647030158999382311491479380672016858376847483506559707799433088444001574515735225008608763417804251335144901657143552016900263721810293177698765481484479451819546062713682747569592088950847208508582954634861704166322164693318554762270519726297822329439392940779267574953263317228251971753965339451070278199505905126625142709520696219756973825327848511026393649903113688446843034903888736681703340301375935348526345979244059084843416624345266422227835920697012208122967142171788922326208283541957437167895128731912791938836069328482198736460054813492497241656151294058608765599853802349181634216924296285302316522944262406063349137738888693406452893409540395769083264355463341384159236040546565284428242886203431151541413260793319061675608139685723576865028947848174264012106292312599311896318563789614875070006523053475577711246102972617746579564701192420654914213554991144883658255125219350507059245250433226840893620212756418762820121059074935052901586049199553518950164325973044855516747667434795700451821306365241680589646825149713966981503174365736502518943501282471482900290333730908140928849818229123852328830771003965765466235305844085354410828231136452843465064346139809093706983223369986741882700073925327277025362513389590656488214259424756627012291418809727145276406465138977822992986527991712084414239491165966727453685409440275120387795798378484370127781067114455186207818438647747267303491281444387366511817523016180238140094867728527547100274619349123946481953969131618180298222307428075466441857357034260004102001911106780630877954063373861597360807702874398623469488061045546436624372587199684903009357283091050971832457611998486778958155111116084180960635799336964260972055828079063174019832324395329675043602874154556842438565981523068842258035320383493706103654368909256854073733563565635369185475199805896555974654457588946872356027436754295902413313156769654181877678034283783980738698594575539598050768378321530815347514870540092441889268382903917628560612184712456999615330842629108188610745774381346161230438610463557350752010523347955598535377391749907447627476899689234935501631826996495519736513502915168299730045866455970221719798379846520612650021193040818514304108221728031740379618357182804034114083867069662909816862885651467581873224873671913337504618608089203753888762661638184936982982984139303397925526356560030398322882517310933929391664267237426587963931254318516406486603786005785585581622077070457535061446136254239825580458632667679205755562815167038135337472655701534318438939496760151450867523020097792143232904594505939364815673334141492353545039911506406627552024027767211050971829026134311510831782493305133402440672960913200704579258474186734356221275067960683633841790023054342197537494967231441121939628095246033965605672433172674520250127954562735555858228324555137453353314813847941274008207730495900858574692216852382840914826294616411637964395264282706516831920654058815977312569057038878202720315527832930401221700941595386295561213255310270757111868846418651998028013115965231935594348978299239586415299872210014862644003044999161267244409468983373611920134169979886392619368965693060470224486533993307365988754718725718677492642148661640243986565937465204453297326355823609569845527564675937001552168636041090053016779206142029683391714992897397052059394146295341681517062783109316120223698432866805587662689409039941111925445661615382189613806801346451916779391084552386191355880027480729562022797263208032667458582547545917866501510849994266789445014927997528899378871590680240741517292258610614195885955817520458837221648667696097872122509867095030473881387479629673262630292506225764690136734097470483067665114012757260760369162704110293719589384253942005099005065658569839212321517112363643067271087748828041293855416014401055023739527711778042675513516882218324122466156826815146208800885777726168625926481619198977715430723156922836582503682214402325415072132733194098562995066606846860552615433503273339518836972383348432661846736754382550164434899315682436036297363705960474285031291982616475791460404805416235870277063869609118178059221949920871271775581121965306916304981478286458010758340992267138479922334854523325331130043233021159779893387617102723500715444092147233407370889033281274178088053925670830594474805515900466106902984233125909458051113893411390008066429077628168077970518395256657826766360156908504995400230527312591906276054636102931238826009866947206788390204359365973779637322267195143499260429947270487079009248669796051104658833460460661616974350142403214782188682789180276911997156148488911679888463018450184739074817905047722361358692427891990882280572516598602541931556235612434328269616086017250274129611480952080244836869797077397283498606499394221408961566488047563783012043991540176323375358004860942140811542355839891950754329411342490111030936328007865214278791396438194244067254286808965635167527506068181286309014458952022661554220637116748908191119940486671767833666386762026305346512188168980066735688255243708531239370040906904172120447339640383371486566371251292350301433226177683003520234553203322696355605092718225837132176168773363436102408502223212660808060754581019740938096912640935163025133036543628763522980143526575990545712953470559805789606185730465130480737050040716625772165879738330371156836599081129250290610193843293229412866432820600734929229099802386455150201494400315498519565863653986553245958892124063718507008163471285364031701905801098716590517822562852890960398609682646625170883614627587929590618832167744022629584874022984274464305242421731816129183396099682406507270999934460100173612443886314141498383854919597681142986626220638585097109234617086611469948305103911119829583992946483518112404650516122192534019078154692588753477859816816137531665027273341011828896996073185214048963915498608332243556471698930292734733975711522361875923887680546781275061344736772413483038715875680371755124314254245620122836637377599600086662653800733724554571983297939222652829332714278351604831536968865227463457006130529053876285549534055531051684131808445493610729139236776979635833443942860806985966853971678391787127490908964543331958718399134347018161232925811379260845930229352054728079607061390563860117870148375140759480019175476996983163467740045323563419641929354918449250344862173801479020727005776564012130990827867704810758728158535637482728129891982474640573474892444394705302330603138689619961818893416135414182914167135031731082604762064510878782188763370200372474485776989713905746422465753551465138523679989943896990627926715931758073145343800996608794408851487901373678827321672702524392538683790286251830763405560754804555383769301190587658046974201297443985887602438621422555220001318301339204131495944787261328269930763717130736844844875064678571307800319935984571299956515082057567690288492841698775736886302245307373958950201340880132030880286637031557062111033598422793217678662189116904405526606424522528508631922850112469486227041608863108157278340640505690181884923474130712807761096236680600815441514303198015861211917245321667523373157107583369068391561022291915255162972769720378842811640959898118026999215015886469814614292628382978767433931080658358505510967178557536213559929876404453433587660892778729291865972559286164135014827740216690044778482945718522616068741249875512955959672126481671175844675424457977840745754065193640780559543676758087615441354265897234299821610585697516666935829792911729434286504102611821336146753642599753030140620938692769575160139049322552503294532200491429158938219050872922544279167834300170681159827098816235329241151327195143572602660560299764682355590104884480128408955134801174652205187576687678811744690058620865645104043846105690976925664389513097472212211237747152299637521560659026194452981664968325365661261622718384707646246718356388755139501155637503252577832649886366626003181541072139784040183647600270052088323458970933094168096874236117060690813363344591150535407189137273811011907014173471874976834571785522120809363096869738480999742369366540834393549969234649624768023029083580930997387328624244697997688496852951136622401158297161911683522636028098578716547054386569161388610860598516002387501978185459891627944462463299234842423127483850709990433800806535543732795460796168869068979034411728937873774650743193738519209053280004984906069831396157655460894268916180777244565417955681171100439079844947586423180034723555695973218082108071029528647844588721182985683225455410245802265974484211413399470878816821173429615443326905298324538980268462668193936284386429098179249737662414228315557437685053919283910258108529532798791187543102154217040902796218120430780889837869969898043161248381197749190388487994456227535838101785597258214902134877500522960290393922796205593432216691233896092392785437199816550522062265214009788739485220824440974942123497157641510903071704186356577822936187590018685899388914675731905986531786867960653182138246556585789603999576433967944542265117090468685564037967541011902430855143017152631712996605119750097463111463987792893607628283923883513580716085790872255304741153426421571304179059261004292167114299995567552518876189694990148866762762393444125437454417663082057196823331346544911293495141998227638615750017537692498540682735678250930098684366252225190080952296272758296033163084918961027423145638420652549004052934459515406165510824690380397889512041494713402867327518137019201408963221088031791634112190577968723482031371443426561767501240665382154715778145605444876011038299327386680268275294229775824584219927567666100550948210832586080844654064276898577146005368844070042489816364926175328622187343514090332893880042400592043881035569433174985087812211377742082554828653526378285725275528943384514299903628221077657437412537485089757772294708369866849913122884404927267855130537177263084708730026030081459798740682245691038603294135440442719986080120064296462513466043392731147546644209073089442254808524220168715741850217019167115441969087589542623265676024993793580848715091222492876933653452702689845554127703299981794572820716344101127984852049120229665560911598615349719390186417330141027633453900033891290401671069912149850059967591581103054878194559579596726123296770840636689384263149291132686450573794978555530731483128203372634782875994052982112872957442510946639403688621540819349061350911621861990961275621634797815661603731244521269785057611618491914176743437209456531906333062930122099252626128425103954208752499573156285953293427324137718069728662183841885110215858617603850974329430489436754812613843740519583463826108191112798232901969946990870495971382527753631049891494801184488335521281955375739594122650661551776477025342924658248431736815799250197413013376018150078944738160379994269972630559141147790513890475726437349499270866313793680990648003747431766382707441589491004042527340563788347620537906454329390201033287254286858036429021711050310797857607624945204469581090481064082308906254765945237353162393658867349594258054337000973371125340946488536454793694486984305465687553317424777297045866283990474238897792816426826362215973115140939724674953434035877392348064398941194108182967882500139112019459811733301632430457822230307969475700769741374390285383947979273889736944309270724919937110705641986807461205750535330576453654753464191846746067718908753308614180116132565428183004690324441956572819685025879423195943532076693643921711626409585151518485199958369175168321345161957777655365397381706600217524132418918614147155420273110411790509717827632143072127688652629165469607836768183849328974872492214520070400208023811418125041401302661951172602832416819140539247299532473968030793906812032046571304969836433306403568741012106462002226197732846513540731066557809831344524153691857846033038780617185183929836801897486815528087987444373545961923470095889299172099929213208865201054954338208014258082638073525448504390859612335518320508895188007128922836908012168402361656385148009572339354193057655603148138640845767962833429600111418535919710535435079443485653724564381430646843928975514803234503662888449096534254957066567907470678205891029333970360539532499811857422168183106894195660925032894059161656695407396054679607730208346818316076724818941381299393537537617763428043393118118512978420601458336194363844892922308480590265589252521674699794074802811408870993161457826104827610638589311885764040651869251072221112542407974663169415047578058387308371414923864566080919244136563347798665929026694104624672238036968218235348960430234173182364148608466047104501458788985074056625657635597907454747281540631786515877478065450454797145730763605676906490190933330202811292716921630309394490033992105358951531742710500357245713080944217935803092731184009245861846951921735086652702762941741651715330108243196705989445118458506817720509487258432866720422341294427864477585219266408926279903763450995253152473527582456523114821990773132973306885009851450957298498343624292020824914241801682866936875619983405445507420562132657272033238566898177466410123440644688775923464249721167326388547844060127313816562983483096359247776660281984041914727785327356760005998134799144280662218526660053335184023699514945783024813684779401310297205244194938290922650000137577928508476367688210880725069967615666367352810764582864736221788771921370098664645844289055392393441421156899507525578081141725489658405265718224617305918056867192403448874022730985188370303578639732381802858319099255503889552656108376884905486797833312332237955677144209600354483228374362424694869322531905027757487386484108309210350336217895906916249832926561298016976753504049973936877477163957081274337489298963032278554012447584253080374159565533805464691262061811251196195356068741335643853876680020396863317728083676961998314000414131665884894921841781989987371085772367001021174384332370328514311861039214531037748334574947015069697275533784866018313168377356784525399139386388322229163430752081198538466641255935890645386211118398998657909202791284763852026938955100595921047487055762749211609635819671643523960535849323406866152813019309792798496617476687366905074083559090760515170039279874338798337444000884681494170473400336407609697204203999849055304702648363499738632409554651064996475966110043657065527845132743971739421984647345207868335535472069766169412200418254353996616822248412088486534635000225273820143759901271103451235558342146758241570709456327051436542979852168707450188520412274087933393857165977007333105133028406467856324705825798421441843223744919990332508650411015650562931782181189022281847084517910265661380021247259666978991224114764891232441260784042784180687526696231206337270725694238809185216571585341666412181326517813336850556822370173556294424199807884555961675246606002833798156563291585351188610869538154767455620327625074133743182178069814266517900496639989426450675227182410018982980842693311365935452564109384109114450218074077371332999854778547403906278174316388514623002931942038221176764372154177496640905101009055384322726641646830989233183190595738425789477600674433547388747715109437992580940917067509945541582737841875129287797885102326596604239854116208342972525717830015049125004421732211737600247448349600961483682568449188465560329353203217876404356023756599743908449870223659907350667736460345224898374443406598471963892090769146635331380282853123451927402692043900136311782186451982430853710235909833324133008371881495638188855174176181561221921833722486761766860192491068695120964469510951088736065135111123985985492032052824985235967472935039283423286026907840292386056441954350301995948425648426154480290109763461189452981766723785860277220535905487551926283897953673959792211928075880925057242394936438479455365023273152221999853909709919398906251846823775496871033978560983555710051272926972572834805556883000046390848265517603908798041236622302545734354744301368390685329397006539870804315403878639684608949775611215871898692132257289799566396904338204867416572282332287010116895854887450237630836515057998840888667029867807172445553246136542715374064380764879075625429118248380402819043480865958007749423111029597366279963460602655969909742665031952041152243166215866155282356919222131430522724319123135334482196877975019561888565407696177012119049927421605646190342560154774156580852735648257328897245332994856329442699890807262903204679958565860734385714866057040782828517582117380314297965972536981305361647200341251678954244205134083039288611457806266144602850220503659890608993542312248807626800470068148492901537013096036357528222267274920341281038164947309717848215207150527361059502106181169788261331971318215720035809726806665208587332083662908125085847423688912508126344946780549356474943225540564796544958141682316023030017555057494678200578896228201450829792972068400845542214292975362092118877341118675195701104041109061419406259963180341561820314220441110200684856285298248205152299121909304799806474236894435410204465417683556647341328663523624693925686679326714675317874051544809023586301864213842578949467479772651617564238959318084048940407990379620055877909532897591523692064292564025482217053128216711401718394416480803855247966666674245570970971536195890878879003875911032870846626855953021991284213215314690791717458670192497091229539396658825025792467250651925504680370298961930749219238869519182922343488479847968868259227917668910385591930304890646139985767514638815939184585253331865745779930875104812753938685119884706466829207930736106579429839661485585879853276758362039261757914395126727402774950783724028427239765662151647886006263789365572855681131534309034576925376631524468810367915125936341036469541720176423245933199798683758455378627882311233226333094768435416526492809295201702344135871958724882206384943332100578774320764434081158840820148861035197056334456046367202837553841296860114874952046744926099837884533955391849205706021442622994358740340656408185821595442048309395429434492469962006944172506037486821840006516970507023154077600321612183942421733677067719778385560227529376939655059130479090363850408953483278998501876271303144140541042698744874199737303745587235046081970063264232545326899846860639643448946585358983739760456639813060224182363548937738482225038624318614926508687567318673617175666760369143233159354115167621870334739334417743970606731874459184760230769078831517755697762798961943116476640334235066729978505294521721869186116599026494704907025789827560815958353852681031683340966464123284624177250721523967589850745437964736005993460878441979255637127460987473776630508679830543388865759911940065621151067823143339906061418347903409915773100200112608464142454661254040516481793878099581332322359514042146921171668776592587790801599659705157057915382406097184941891043684414809376042380778139790320113058810419410008575070857770667977858244333180499294703605281915114571526774441221109039267848814671050380137606556671204165207424867769036356817760575969935163762799577260374188167692244401930801168612540603736234107339047379051410581969115244650091377989473140936571223804533331334937441691988303134236635919762937578591425142873410367174524327399635591392656987046842548088839527214487100917804223690263032397328598140325980050632688976550620050422086198893708149435285414562406999082001584560080687244363239806055449754285000211340509296736119908886660322287676385177636091587805656984067764863879060446665670419089854637689101618033185735206026439373192453279433180825692495821471413810515064964607867436781668064949297789465265907146518340851423057689145901054162392547815330109661094952201597199762514605599649143314501243537467472848478491718872392099435926819383746999862547924025628865310415116316574743230802945188552114811199858508178141427880094828075537325275663005901691946389944082805277101392949848366256805959090275128703163328792163054676957277752603321916045322757714494033859281179625922062590409380911646662672462876364724985006596541277585892016881286378080607406719425301494183052341899584293442298316676992417463588922388190299957978815229060042758569015350714424463630902628228569341566141766427186896027781418219529199549631104657749781823840459641103706944327918025575720399648613065910227397970972088240888107858030327602254495313312502631782419231512932421046946649284230956446718131278437030379008770746312616467516851394081904014656541978998446842948678427230283658735275916940194347266916739097580235254026343039605089723172786209785783430709907947242387988379680164505615077119821363786935780215903497776498310725675167980738651556992343803543048217180073042262251318565577341834999826879383833491391654677415629184076523460694174747906066112709874296181562340181154099644209348083307117594179218765224555544673934712986785358395369784825603738069409596221873997145482945451710077478437667259300599630890166925066947688425093687105385685933527131919036023948955361755373904465320715823796681489247761942115767406669290259549819200606513876809632648214585077560156753247319478523621305785833356838671612183724160675313679854852750327183548223402461640332024612087895981893413517056455294174358686875686991889564230694546533020815907700447968837907194990792772798183490636215777792494648535344760188041493700683790417066594903457384606403497126096941080518458076194920403352923030395328328435898848118451441181788589170275543180240615527698636013341046837464910543627664758146742160009826892713713743089072579775580844156017968574921643304957901731695753607084164940433062024473664687219550374622288278228965306132136231625018024923515166769465517996025432611628336361005650371989773217838893435664122363940011097611630017607247287002144924284757279660692250631779679507730424658305585320179352224643344735325205282667617472274615735170338401807746639927150625006475021407884687397188870613370298124569762597123592236816408269044859124610028901775424838049221528915109618642993584342015354030898646312867058071492130359891075404144412371940298190365109460179292652690030821708880741778888998731556772384685579376666233207456338725162664642872580560992929526134444881012716418566822488889203146254249952468041258084122239281357221185254382010664368340337843368669167881660474558873062660787164303942260025212071969270097349889524545202534622817768960793670943404899122722950995070819148915097050280801588599369964693241229616143254172556051112704617268887198641930643856671774583662899180867108608368851525553571638581301805822737298195033970718042325397679409943074676651742686909731014660190291074573602523453876271629924286820162778640883139376393181854919195046462355408196848099399530799801988635952828430369802916181603171222804781596594386030709425870296688228316213489830365178631739541866795146316614805262871266245681261013498789491553685305886002091527494727221315072257716926570094459306174876806743136098905482395655573510029589340815208655006792089546617234112851913423283374202849380981350435011510349865284735133717718274549863250789863592703189131288416348065530402485688629472693242928593389077532550989426765115300030176908074198565591331173735235968175537781578373006267760051135169896048817405008824810641162804655936648915923171857079145425510576209936519724072618582962640724788768624529872752662282237907547967429733533888075429420244875427489296864616146764392108466037311619887680757065386104606902511087362833883591803953274221139948478525192104271882110225759111302486556634205382123502979863695282263808795960624624883525162140407881395711224584207380262997079756901467586817220166898897264215421675307018314133231742988746676142754410522983498280130265296294918498329805105482492101233758519771602976744989164935766184072535032117670173109398616700908823906413338434562036620079814090995005959557962051455865287839754964173008966485873105679451993210165565037839333253339800884029444856576684375801760524167975541588694104985002699788978105463324345135186391671311699850861609304584505400260584480911201756477473705444013295807269166996016554311858994234548674781538580504924157589652576528857952009754919458678321025456371454297930662235279200007963018610615080981945736207999258620563410827655514810206739524486466576836190197131295760357532509183618165410012758475533392530532736335481331522602942003002829057938543735703000087264389065808614677044883962042910146832092690427106866764826598698032917481638455570599826015712581266465801924546739591354021789339392859063166265538338999299700297431014826810755451933020589941451349773433463850071016419987707015030662006226052855765302015547322921716568538457201933273271444805003413947107946216932654442308461438588009075134555231556259204878533629280412365559513354802488700549120218934035249591469367052799959430805027836713811706116690685458408035225354215182595283549577506786211096964936292292017923582240052737511310873811275307189785756954051219573874333743610691033938294878067509857868894084064379611765615691938571370740847450563857721532054511272446071533539857539324541370031749221522985016224672674081484270089126170897096658214956594353908048301642177604291276747364116339600304023766169710389197160637731112034928276800164441338411881086582152252425694484151208788767897528505549770354465959335392580150351586646233832551753697092569014746447114595522609207095372416476645364798816174003424558069055471297677639212550685174654379663754314831405176162993651415310619702392633176941687026492297791511893395422831692415629052183909813882292392281748384240267762029964411500504700288358881750483245404857036517172819694487210959538777274145815835951969240678095821003834106799460542834472087291916110670626639335869122919657483387593851051054664871845894612982225931128815492857290184134599481206679325998331014570584384524247671501549414868449626781256106032836892877770917198514341180960069239401589879204173516498282083338680846462666709698983949919062107539466832816961554059323252824888847541884196356568362283817125951931333087161599069313174685158249756895193366401394232359435459080246390055772447434256097129831856139121733223498823615937467079268818299363354650688360041183438079712442939629360424547954658289654727347868503474239559251434711227540075721701603532254393312523456293275963438495388149893366446699916209687455067067576652555739925974717947715929945048066539498956986429970538940666752619421242741107104116624667797958457799211957691554623661540456654222404373017821595679517944894617277184433560074294575296110210486692880032368595578817871606198027457511555934066237229734139115749779444252445937746507880985092147335744573704272667032634299996589391424201929228512297203081700035250039733365647739622613759483294213127569721505999482878831299575496268219913155509022066829289216454533579754868605620777917638045343642610473373968729336777811866182949659823442358045061120073797602515670832160493264702283574852964633022042876108624167788669669537992558414098251935565929612307268042279365477963379526436807166896684228230984513188258775938789544923866080330672907602233723455252776737450391200583297737299257206812189295417063983841982213135227471927642910002078843982810995826739332558527801911199918537069413292829660217958564008252533874909653460192745084456141932819773722832717435742289036197324024216066715202409378119583059970526526388341384572796596431878442842045221291441593091441816000566188625862154013589304095773443944777839521049997711784707665453546128732846512750506202517816973546068806019301768326172776079716247631519685486241524530766052125899800627181624636712638171774009915948356659510248166892459686662319015519824199194870582143597065052744167606216604738264034063305926494671540392078018105402547633850301394063456780648761622413308935740714798186559744349250052599900942473444278813011218555327798752995224399927186634911646290512047804989955581322114209519552571013037671149103678276524610959855198700790804061973738849891601894169814133988193477493114824558146389212501044750864856312177625070807193627757760477804039333382200007092202083009771633285474284132780651711012888346583949069421329517880156525388725540933372022535300286876749808301058245268496949387331355313951797894835077786827259794707485706795755812622478672646802219832470146662990069912674589112611124286497406527509840397970665916150314936975151359911521776277541295217748904540797954505299256170806632529454605113722894556693175128133859888551550924161399162542611298478753891117422408546714498266905140411466851384440293586197191422448442789474136572897658219616572631190005990483914729380046526839464070275849338015202028442412818542501189002133900676349326172645198452925692520633692973128725035067427764881124934495853338042263217197341958218946766064992262754078485665370664527049666053002102941520705729464569249386087074314531933824289981949678389464865847258373561986070975432024010235452442182140147612895208268937396896978118608136565719301757220436431201380244320841966482956977250703372649607801518173957615508117278498987613833881945197887266844330395283442952173787314011403497810691014136960222957189572025007848083216275474490579539887752971379921914591071280237150355058623945102019590791905275139736325561088031360597454492056082164429498344879685907477984457551889957049579386725512577487077915828161159031557397849752808585517843977713814183848093601662509287938661176077524876257899011717366323569991778501362720062211311653527235325808307419013095924616765259302144946197477973028556739123120548000073706237678434811691311705310218162169557532339593811762541900139032140620014510536730042542003259860578196670424857243580515078020203617901768333842076028408044048875810660060421751373457037616043965765266341928182829656022303549197028521004700508267185552688122558453235120199480457511661305456902069410211825367765800562464592719777485153482550224050339241044520575555561730829957665979017588972099484947095191176563822833804203190708379140987919470112653322322659817303458059073864829208537339509360488298614200002450542528244155530032632494025330950969227521643067542823798227716339098129429382670059326356452803334355550000869394968758157320772823816886368513941744880305960673454628016121356413694374690217376248467305174700259889205855921329303596663181664861259572113123343614318142576638132464149440812797493715035242276083361165777573087061998859762496497788382811391880857841343223674728766068465910494981355568363382433333096903760295798479471494389181190525714285262005769781949094650663652091894463987226324311817120102834456118543649403634533868327676077564673114880314989254928897110621246663530555352900378370012046145920376239134391457475421158168295682648501065618293527620706052358965188919738496920057736534969852777082473459593698331649970565855275138343730053368632487170699393674488294280401991266865685670132719583337319285835418612356498775990271504814247691181110515668732783693427306208019544794644263336174657958084912828060940856485306800026747820410675548781505671628673540680961500452669416550506306668606066635092944808510834206364533463440071536197395312418644346388858943533596577559606538646131932148044885911226257214058393357262907042140042397264764097301648087586107425704879001808970492615300399333358430842357007256161503180558596363574700293491606952817241929125672573943746591632261768082179253292769279390611454270389571057861465644187535148801427727734593361936588014361896014662348023556548591354618694522091108417216984132867689506249025957085061406273707390745363360305501806890884567995455074399693910997513510145420411980964261629865942314679090322178666468987281581050771309567393113458436123845616038516507237670588132293775283838713481609900913174873934879464681828171911057074961044606785382249283593965815137845510494310423455340739069036215185865502678519766435371579183788118926345253708294061644568571439650144647398037582419655673999083863977961207326625121373891174523046828464293581333241018414735936397935367360922682640669198380079567790587371892020483697401882777091774709451816392026259485398211049452960670992162588451021480387487556647936209238443867038711381305720218616130783773013221028683902964751209735814442200308798094429109328826404966932329226460953597246959072338101114505916885697118611987543836572458884250828839802156054098640418307901325510608373887662968140626373875459437679636634847998144208776565633612180467948032183956909003737156514761372721228441063475744349037313080369086730373206330480161063342104291299591920981143066996983493754847382629275620247649648369720975181250018421465081038053251931420810212827549197465990192522412804298607335829423343975797093178588613807984631637511974422438497786566114985865800729267733368566341431809411768469333860532076532214651506000955486782662120428780396525921572441538960409971297137115526387666757805543236029265772771302762128825601936174225084958865107822272507249838034953058625812100992060345436878605837350473747158089282364115998619388330681585063378813641721920305606591625033905030431297446320774470857007630057220578686445303921219675054982158688405739873141138694336689134814164527009431141673252126264933356639806516275438894392081677067003956282898732971875422070732685533813188038729492692419103447861850994607185236537509117735444884394321380101234792630597274835824150972395275064470211152892989791478118173739242448403455211391114082720182870775168647967609269643830996962793842055619846361930989279540488007387793701668786362037667207324931043105878934266546818109966075366836259239785542699490010082011822236691686158284460503595705179034265940405278134792076828639826853752340681525162751505791190957154525295557394262392724743654075566634457020297733218369832430587282739611089821676641899313671948621700528048185459461789949401795777703632042005421904159983603442073619324104363758310426735324020577381103773362934106795946856964546172367031275408714892830347117231394406121537438634094448395804562099503959926353277996379748891133582581980487130795415225755121490597882566532184955504424267370680659467200450211702783325317623219112667797544889415320448942892536086216394298398344362257783467385528951914058666711533128487007971473716615091569270789212244326497231994091299581857424630710557703080141833807217255341354057518322799023700671640869098227056760761093348085762767058209588054139568402585947018604750655364181141943928303937651456349550359821569468889824875351008589767895498066088926622493831137861658215566551882146588217271120557958656165635577755876843403495254211847591584058432259002842966811255973961818074212648962356530445926897929157298821526010668630332627047844973362853402962485528839033347043764436696400014021507941946944387847584038460175223889531060600116904955548485164519099829409015471967534822550693820720880179163222342753349868042796607066119246632312132771543672011847819187397827495400500673644406909822199227079363187659020432887256703050012978149228211718844546683397405541007595580243514716508767738445633349738942377375126682199162962228654906395059601920304816226776947083681957477541499749174820142058222337955643494944384909558285727999030743146778166062655541634848613158290873013258288470472849897765914425213370665086753419156941966427096988840315518188513658907479697593773819754195934924545770940186048289580533465885806383449091471411321766358914260575548654979119054564426183359214114532466763417336611184559093223859786550296650244156784008545126736872018008822550590248469779810107543975897859896124214509873577443698096161274979168618201180837646954145495198036272577240811173926252331944039499430318615400767880753390435670701201975532505226616757184137142771394274908694967929719242056175332127570596866416107259116506150577393587891933376693465911379997253952491061819243372761216160185105978219623242710955539857397283158335011866728362966416637146685405029772733118131822952269280914068295882605347961197214625347766789844890905194792804866076556721594687962880803515696944283341593806333373372650618609402400526158748945597264520039429180327179373530934303697311705172523021607348801062690801091478822326079255156080000804576539279918971646775096160910119419263358863804099812975777577567717589523372692043105789510664485001867538510414504414741743591383457972557163763807524511170729131924958723352259800406774377567641316234573343316224212058905475645091036120733507672516593206492694859493900511231045548047609599916081668539994624387822589538682278787664970134421452013159718051699724423438021905919867594461741231531081319056042929182142686496443329987313376579478475833031847988781956621029178581517404226941525237382055886728682803788418686134323102171419143417949373182753296944169363225076749340759958141467964399751955440286141232295382707578913932737643611713307644998565254268994452909859096081198948779432653502034095133634947047490251873336368530264009461577260350839556429321263184720131270128269169710647590688187237320178573516430592626869694270594734430253614600799224875121805265128920148730535293416921383416684680412503536052786672337828664271613269401035018185455542633360271293830510913457246702646149906042701510867487274095861485844434713776882656639368634736552437897216259775625693318842919524353365507034363209972336482863458011889344016988306078195967435400793909049834607728942783747873368668795958644339717659502976504117751855180044981272108596661960464588973421037963768045528629821757766476861074269834708146775686754089637731576888563091390087484500370088625263714442831092239857450048200076740737221649252359701499931057741429704646114581138076419914793025879476346872279747414953000848796029519366389497223106786436912712898073189057328846526459006718377050148136697783001215026218315171186090818838506921462907922381771618190780757131730163838228749108302690709021946655079390976820641374842055459697687189903101026652404964400608961583705127769088786121339517190248591167157411645842436425880906037426551605486523303491783882241244313472424567395608318900526430014587626042898057825011606721441518712639599262832415584149726707681975602748376356039672398268773429977416053077822696390139040715605200335811667598925311162111783233928720612065390468831113854221283798514332303167108674630902408919003937737551012707110657720918537161591199998866390644013898235517169923156277149545257815646126621781220193792462153153871595011093071143393010935550660348059867314381891874608618013595888088188068307281478734771130837209506111887466082596098911312047178886164054816869619781272836783320611909715980050687365708411708664006546024797710203173241691607308671463631641345627788424723753540003994899831025981533414448688942229514350832519582827058725679747437468284454249658841532817617814701844525968467390332462430331137445421596262713241781497636179647755925171727522260256872676350135744970011737117771872176409680725169536179568109566339022541663569238602035917560379534519285813235627617459398109058217356091778334989284784503647194011989275903491615615937199285466674174620345983888333707036808287113112584363314785759425441447483144731119298527702312341135724148215797875883787997138982551049726247013669642836007074547562316470930207594767139277730404171451987357682969743382973904085652247847787161813625448522376478426571788702977199816625133199191412669519548735144804010709952662187546903062519993221396000034101906936561076057843246340626697037446244205554992956641829610077497165929704788600812600609449021564084366045289001199405073342664209510260685939587504035555090748163375327004981885492929164306765450908104785845851853407819000306271767284736809756954415571116872603715112829521626301027516170148630397436724604681666326398666723481926085525672875132397629981074602348171729625158524906428169649657577189168980677041802331904301141437294414787427572738314941809230794626685633524907418065415700731322176999995959046714785783347083926172370538338947417543951863963520829746101946288234261384744735480276098493364956472119727193447930960922672409382734447285894682452389224261788836931779636684097065392492717355754179289714464359505819545452713686685421626685976866244931898206173307859466246693655045976419353504278049361824038294968695348121229272294652154050961050795249133328638912576917998958899177399594491161033834168343872558403614081165827289840995761891114130277354722493404949933116498659829898620114629270010307693634312470890087807898840283463228269639636533539587457858324275572725291988506646938051462275852323833308614723370066368929310204233589831513568848416127573176952812178030738161665170804769403140458013165637757139234502682086692554070350287886855311850933507337134122358348547097497459902457740024212593861735412938662897596174141693816712622369193896957946279218758529938223588944645782520691636581251500165978195697790651527063313610522624038375688057559482813722521247192665516561152070666141618446745804250434716662103790666548193315644430085128289986138841330899502334185704746728281187237798613750854937650455727395412446496171784992720897117388721237236418632655089694982602999704207080275803924688558669199743945435198862622850986235132627935746736761462462394735634068635509910155621514639361680983620760405991761060847398262531536530476914283087470647145900750174140198995445138379172214308631867629602751086224465357055359405594285292716066736332283233759788923728445290353376647329701647071310764548469531222088055616378168508402199846679327529028690548672221306271465400725872054625555838913248556510398556243164164757904136498273961300932795612527873589822089392176886586973535114244135801988916047311917603463985033118635210786178341015963189319737527694425622813888302207356867323187056286814835041568107758680131976350701098631488424607882631312025903486642169650323531973858600336532287594803571789984565487881653547506639309097345163594134621493094958904108278787116407156069893624962080132782185797128219941316211985168269874396734323125350278050385053821064452820057459497867757393581089509067605958514988609365496139804747407588877090343511328422969301693171445929953350906274186252384601522806128340438976920866833153508029985082463351732810824121219942320675664662042903281402154419581885543526132712821315378095096194371424672147728371772599430945492927528654505672855801142090351058135187051929325969340448325361908491539859062185324622218059492436056920115507711183532283010509424443664425921719915895660831519267817200535826035896481201249123625431980059313335941284748572095336909788587699304897544622096823503281948111199265507198457356133937991877750036479625636605924901180412853828869685826657968069280860974595944155045410327616169528680966716932750249168568600076398599274566572853636100963138237517996908234427599778467876828914452610466786376803595966015043536126734118307776229766630306826300537315279931077173125425792631345461384974339408279587552009698383089937039957267978298344694648930717305255525777486766064310644368127562237253874485057529618031720263052785482613084862553146579036844692407772861643824511108812299625497772936937966745648963307009256424053305152800202654210336580830323583814044057292154391146365703410498860676096424167801968962828128199416490945108970776889969532658124763436494108832506252396381207151383416447569147382501601661915587269550071657353051556485496888150282065125820041053958908781574197134704977247884147257418539525233855557965823379412781778040543002981828507484888927448677607737484915737402989588093757713277120647630892878779535601896690993064997534671495569288219793876589208505605293307967851414663939643206654791670612010190151683289546532050576645557754207420568131524710315893121844952962007898174041522079851881372219750598675993495451648252376649905243066818128302059101744412218870704824213437723863840758436551976844213335816313224233905670461853781068679423799721972019433231198937382597073897927425135132919797182664562648984237740768987483003756543615889313889969751876538060681176125969342464854052452284175632335911330793862181279272461637845810245410525211411283113231663293637232141199691960329339320895157622628318495860176881885720089865104822790566484378391716848307424638012561253108687001096100005326505433706227696758574194614328057573499355524786269163571374936715447293676533285422640730200296147142103602824970717535525033474946382361599101959286088864985080538227791722929335631202057412401913429072699194816578126346013432924426052683903186177111414767342322977887415561281901921871778060935492242728438641885599636441339252697039714100196744846631533476495804305813391571832679823982684421868691724732470048181406912443048833389483830385113281806242832486651508285309430543140418628046467127690837292240384989941420461803144056381378803840057088478133252873789943555302003803505929847835894436779185525387084909889318967877167207305493803849747685100979443628697782663544116729366301215574308523780502035382691700676921157475420237870814171590420992082949617550903201788315367817003192995366167569708478821187022786334259534155409169660241652089801946458512959018091578862428950763777716910777272907228360220473871877247597294868508228856397483027320969464967252152706925506383116348884650634646864213933785397188141005235554049053621530917197643237985649410877997485613675988153791546675516467335844874604055724719829143543066328890767424101278103620080359002533359101816436681210639064155871664624389381548631012191852562343498922866023881265242188980178143423428039794832840224634806642739057508717949827582311274826970896606510155849864807767464505118592807770149552544253265419989298553456112003913418492499924172775222416420440899246375497160418777909989714014396162561688785888221132320261947534202870634772529774508563957801328644147103972726298659956491945822681721863286190405763571262129219275016804885174069403763504902225823635817384816235178123113269854565101941859924949289735562546312007448198326842779915422412982994163692275167195651261398414416911813856581236128315671536112400291206741848564149756299084821198371610336810705377011497077710747765649425267496712080701271337281378173902199231141353118330309961108954448209872835785395275593416607914525853459566937549433010906391784030904306598761235155955314478906868952559200235119567924832718555892161725002957432961159987142367425098668578668601422663297330564183281913793835403157129092737375901048263235027229228763625100081673747908279066874718546922625350590077817485299553821889899324621141637561631339209185510425621485929187817821240935871590767737879973500850215220277814578701025838544175504781276228751534229611139281203113973192103758364847865773345624266174749352343173784946083757921064494205969383026505237714019780380378025233040413884052865150265992111377218200123908155534721219904024420066153743832787264653938575702390328175341240332708240402221889349872668441770858048973328268641045817000977478331822485078641781466785093725730938558938513837215116847380468877982900186465443076151011490877855519819023462116331562704775200481837573838781244863208337752339198861069571435578185625597802433360338566065679468506078257771554236046939865924618937566361935109233166525402736738511380904496840479058655304378135557756820374322955877005511117149931844041848657397845383540144943274594171539030612191545162097721296702569200470051250858629001354595771760542533021096970442156665875935292506010906611455774287179135854228520246755278166348276593616816741888840197069812520955891037534243002756892940236864430945240082182610578389439637171555492833442724840693474946693787769562143958471418843583944017809751856347498251851620994870103197912966826350361018156150446631864982068985015980384797328526683125150744542081438311889496634742686839100316799270820697016551923740971138644294296228747848003749475375867281565982736206491399630525362262483226805537092470135944684402417895882565056898780100491338870095935165881036128389176465029896160072356707544181808933708269411133500632361583748253829652349130826298956876073494312835697320534609083439026434030391025383909626755226313758442268751026977811614758271206805132759848829777079403632170969849403444832091325834578776085173654505656874207650948350469607018877654267970124622779947908815414480954234166794361642700423519514406502259666404855377905634421300747180272151238433662273417857111522089249667324469313546211447359906764485802410709563201893357595645383259555502537343038190001121085730840415105394050909273147444916636874905540085412143435539556822276275945756956196034278331009177469511996320103023071707270099499613713122233456622315269900384110744911407684184071003176481542364342802679370487966141226571730881600318404810032062636465244171275163256650833853113597197903118193989731471222174086170057551709997335925864126142266775142390523202540887450343605737025013256679553652251871652437429473839295453783099629306141071635981846823492820699223922418329225344732437222222270934985918788109741546316192686929031091107243635440750281559593964313799424825230603553170267512993294287499048223415159390870122484455194510679495664315844216545300519668641142307354828851131796651066456695779718294708342858439620188832452030245755755435341525485982111966922932426073442610563747993471949046217150677331411708061908937843158438313440647584768228318786065146247708220968517494819739377654583882095781867614173454060196295597841448385750117159859080136904404570715943705044534841213263890608823860007963475033765570205828017049338186228646633796366536427058946467484354891859808075950403867771842951679836021017452793951339335164030683952725020829956960588265561827101463802692218728280514566674855729857290697076669726261401162338479047313027609287454987431544470621441022806214281427717040037677398582487848525938789684477566739450190077405129773238256477372717762726503012780737753177265523522247483522946905023684791992590489057933973798149911482951012568201087731783315426094378342325858176441492992909944756794704908958482244628025443893747667718511218502668800420263260000458513343504608850126427031960351208244014186608541425495014269426036610285105973798499077283865965600909643375172303914927372146368821120479366237757604801530288582129570475231397396077067978524073168805705507076787640512012046834696089323896283360991407760182559253841985394341414806138367619127387447418393615445757850550767405015046636546236784368725474385411995438120457913280957957440713646651165968384932976159275519708302441843559916228415532290418626466145084274005492564194333421637608407693021083574328556552728668880999259584534037213136076338899145132304129649813892820515171653914802435691391192220603507107059062481696870063455300937441811293772945642836236700401057565539401774477132018194519436934460343213053099757936855442727841516853174983220929219634681437794470344146695562490191093171253742317625431835339056886865496392827063454773667127721998700890735557175504959900748909300657283281789370428652161649817049817092045877739498293726931373381756980145099375484166521441526904271047945606641411371572189635020874514920896809959272557370748589230360146908325920146728384919597333514447572980465065636742311562716225586176531121214859056431807904224170179344250872864595626343504346229962204411398795656457830683465997607903920539250803959279941292672847714878469490675195086216331027905249333194890721522932348687372277740736687873553176696975359429721847045171958213695463270406569601820870132649820511180652301041597872930916041689892021410521096880371844033550962276295182695445320889096731753216320748816327153819637223040085070560897704187301428358421970686411641277010450566816019971323872262889420198066638274949093018361238356385636242782823421337502718620586808804819417802910148541568654790987850771761241053564614865422757343264933462467485494595563635686695367559815889713966053513636230647976293560051749548558940761080265336118714147912532100514504971356952447278697420183316453099254931260138100487597601468095186309044349548201527045536107495205258698587612731866623681950326659279257203782963208092380648053268692254299928759493750017412202352473036796008195362104986222697377040713507006205065603118699729889565228677843181582110945689405734667195697717172485119685873550390531642423851104562820506540811100220315411374537095809362916130367192599239446368887454187418642842750480987660499840250669762306259193343480997023769512402854178786077717096900251864639714330072444368984165129921322405663778896915033111113862596365811413304924031286331596080956188308331120944638137452441295276097664364370561825365413695330694087382803212670675943759777811109588587549351906376796159150123526099254923915841922313921847920701852486157192584396056066203565042126771804410513759286878214926636123762475634063887628805294292063194232934207632792464978157210106486493681929561380106726562409281462310567070590239477843917561267153341382613749126511318079916598556788305505231066627669398705847476637971041208645372075516416315664796061331250916421801968977511952417105683031578346542367561024875479246900106753157201788316652163634451721112749897459560838319004173747245732151432481016288175435559081814721453623525365905674126041363703383892389426024108978492202875636719045326146383380112894798285752953594950618491246657196621269204261134610493041028084932443685050442907741848673985257874221726470803582145736084974005625195522004400367068904754270757340495331317267777879170944759055001265274956627400422235282319975910679450374806544949766749807361871781820245756641305644593905352698093810470668458269957349194253601579840510103463360347823054569105643464108092091289189039887317192740372641870918836667097525223192443628776739552253929269632461555118025083695374543411570672309344355671942873562597535570364953404742939801422015836164631913737963262867531333057354347444470954333585906218411220488635709780392372628240732661276783375063197407762114697777758657752102993805730234862672116126240533006128162610090608764590467512635081537737786101701356453045373843860612910018867569442894618988915920639686219608955832750408564598199210380939709019403007956132316269083769996425365808375595019610409694195138112766484397748384691464134974931159447095670222860103032897459724518548251468738127212209385126643058380172815284909707041725328034950192994542633368722598095453881996126419228164382354638946876522821495840174621321978517572625320602848059380795714524879173914377126715717269792385889239883272346358632847351994349885402182707991717234220334443881877439432838170313711665125952385994172474037558444994506840588469103535920302996034663987246399122548432979312844748673611788999951999384394558594790416722273333194452751574760519315833772785259862297618651040901929545371107447969044981288018520335125047461407625964229979721652827305736641875475502296975240427014731596339048860828146496523734223533132656904827318505159207370194417772601136460856846526750227810405345175941556624430068573242437079822089976721083248869325251007902003136012087017369502243976110025260596333510907610749006933602880207171113464287375959097897430357709262370761806778818398590201494934207198644807422602022033822340938471832799649308605974304672659396432847185701497532338362146757856069828476688937552601705631333746208099959166239578634957370968130571281238343058146030707354007470388847297753529391667240453440671029008082014578675369755614110444013978834395178451339063874660365871934556080765364861123366034525487172836829815055022584942639807542466550298460541334508783405614957263482533227908916637771267224983278210172513540650620593876680284996620929492841811638096349563636919436259740161406156323028535077532800924361010330894011961889114558694691074183500313706410493549516702693722355972620178185759845378260977703095800810146742766197200330545268284513391329261616457099583904282174172081524150335505376243086083781817094793072625590751964854588947746879278626155515477373404597592064987608339834315210516404763356423580062659427502857543838773511238670883561216866843337831244603361182493910282273232617089995551191549228701881382234869140256727948202363329028729441309992898659883957559060942251193540715851440404791620927465127740989279293703365979019795135000472239994339374372406058686081039412688935945451461652524117638838611652007711774421791748118780671343985828601952674482670037045640014777148076446421482594865820099415203683025702779835150771943491050985458589211863701919123604870740747910152678228859143468330296255575896536767818266107795589115908513954253993194845903265956655733957343023105662053914122914696298711918381532141533272216704012956514532088988979022211860436523960571766828137654042307152871076128578290340077482263544956970995007407659285555619585947932702363040096372014287801902479890376745475248162014086132789347324166475858274813537900095718760951263954243062015857967836898501965885549333776663416999604338962882129252543737920621509319587308096543280692078796308986753204098403578276734561572750703908160165652044940070767507269367304808708619398779704132162452128389480782178816713012380804150502258474743993595800063284544007162826055987255745932731985438295741255201029061955296392958987683100150109617824812730925309215429467087751116263399296374727083126079392036746185712880077775737087566901968110155219788289300750207173307923014009822787014162769750260980664983265523673626309288655330143042835160900479990481686657773568536555755244145712753495834377293647289098414444769522457758102615181062145020392375936033183019693673453142473042594904280378421184355827223645738381276422341057142148601620508034948759692993219395619824517864503677156997494323032435395479656841933013074026057141413009627241537467712167722454814965269259222210672121221898608520617449227495047656292082385516250477141096731518895484154642607269295216562498290025851909347361301462135675693295817019462614027239337646894991255441979505675769214908027989207276537107581585446352889110046410159704284617028560408484675906448852568387192428574931088956716583727478270664828574542984339573943188739285426690565134890089204802856293698701730787091105292853253811161014326558170647494478759854455437727003048184729357093421273189943003517801188822007184506003060813652549802948327257733941022103866631641488415114892186119587682789273945456453735533737008738166000641550189485438722013552440939547349157460596828147711372471334586182795060772796829153544682208681754471493416320716147760323951434612212339016884665670600295303477408176597831258823257801106710437305626437239563830422864474138734158430790254806124572955225537181180196211072758499378345630704222762220117712346737133380003900381938207764320955831215519313646897573928520250715355888311214039596927500345332769018607491080885938763343371061845718185359521716295137703542491647416763613358478232129174855878092788712546592692623823906554618194745576315156593252398541897116201335332419747811147163366548299616186451850320717494634365239682285005504776512396563590192815525466375900457197444256927885154414677654031559060467489725911289324904308686694592774558378071042723523569262129542945716491827987479548299464931021050534023563698157325786627424518285497055882326323972260083688252298498382810312073470703698370475837332433381861984974594344509605037323725366606275121612916124226178867625255292747835177196924816969688708736246600637978614158293119750614392040050366017806320635421118439295399122290823893458505070406174610462330833086673673382992245522857266405551635265189696218252003230176991422114674445899895987563713291298322434181303711521472798336953343133019942480009356992534692956159809554815487855052296440462773220105222837099944853675451896543108347243871671146084063886473179069328258689501343848793115536353170071650245422989286401554036532299147214099635300861408512225619363041329730818602439510236054558843383547285640042846003321631608809613965769533452506014315851687602466144836198547971399531250182645140067760306304224964098642558438218019228619245515458771259242565055167901105716802994451997382505454224005226410949432639896665431614547862203781525648298501081431995160032762408300360401534852775749039313630606452667597416129627010150433176063972921010912591448151764592229431754979588992243338016593404533277455650995825724544109978189271134869485566128471112737526391589026916321989815027948609938131724402369731763640398300759716814064228358138543142705113197242449250137815845885000502079680079353487286208503826905726919410834532561643181341285531448165791916940592621825527234851877707209261111627020157093416013290954157531967137111421418750261021455137490058959757104625280367663623268259784058732136133590068661731106010239284468054369338173524661503741223916299629904932695088094296990891993119683682102786153249587186324330664922221679509904837060451882498048811506901350897544047856929529854184613754833418229291315966692499458321517008286236659495442803296232218477471869621451396311067929600298666519272891999700694204569526918028979071553309956707466855452871734588827143944144606618423244579071926818549256546502694813727894541483974696244982603272424695650280965759511284278103500245188741138729785847279149197639997824224735251797673629762626341857196418870019691694282201891534899156947962376291612705290084094738400645141899550126042619632330556221325357469072947519607444605993017123417675162163503922000109236403758180147949306590483300785072457243818828972843117008713064229128258620766377131052158101852139571155529004525326938970658188039374163185900616026605550726976265081157654223370980186558444907494643821528233866394244946711170840621203023293411181590566478723919345163086665597555303763789975136498721087331298936453862123420037489953764151866234028324810640301361810111716172008615540958391033507010253978057223330742109628050235811679228363896214043829912109734623644046667549357434316462542071205302309887245044530707844049180917610917801971382791974188957039061908037071470272851099519951095592693035808932226988142371097809073385459538858275581762741435210458338556716044872790934763202183836635537610044201775127633640825280918677736552046443070401357584425087197935481988478677742861761033160047328884505501125456735902796682217618143129078287299558894506351183100554314172421405450674095987178843079391892035728607207380755073367502559029432067788137691623392386670965532892036615353952386968818385266006654900002136980758375856711571663835140077545435177002874708655841519901556886980033699246635084557981116043854610709088920772321468272198831856376478342250973651322970654904128983360515319787906997194584513635765842480659063429348794698626145870605211470870217180588713125376072891933251764503349515211305670631077759900563905840946720146833742898918557918955956415865928250424489201088321581325398052780938630088025227497078899051796494587785126027876796440022118095740785629104741205683713311552250934385439114366752158500818332522757143018087762586788225825821175249927469317619349852493787849095222571110804820759666053834309159952931146309702774622117371315486147802268653231760944773411575179438259582050022029558336287329671169860778762571510644622404173955026229950477312213052502985506146298216693798748033763958439156184386818515953108794591471178450489317618099802804200800350120685807873935724342532003656322545831337500198145004114993835480121375689347829141471761821931819651635226531848205351275691136820380389226556376299936112285056449445432301486431715982052386165261414690513779084368585070269512230929019267793109645954610139894513939695753894402248551402535539000226443104955963557207202779126470574184518195979901191311192881893580070064329177121336202624791069827940906580553796378917411903315496271253304394481046203417393487475938650534522340315491351146602834868388857300418265509412192191427475290423839584819778826943684832076509737941404491483758001930782111589320104043770460289028905160687883278223972249587976346732814028546477144971045532570587812667776079595606128319436145947957573764605290808032326705497342423822229194420676540879440792532916174944102318175256216775998844817362293128694493794601522225293326166279337570773479576396396368770764460844499909498832701907099080501941145496794085891845731657750468796186392120765278686374551209253571884789191387793813364178553145543260030344061056518900237127332580189046430345237249773831949544928649832041432960944642760562214154398341758336215047764930665861308454445769928758533101988164716068997778416535773847501541057768960841777708098656978303464694543978775023620588259175917495177213131733893828810980992051085390680814852608660511797342849992192984407798025689834625076203674141699251360478916524678461708913211708889319329170973230058856898241496743131077950297745622013357032688649652382449320326031974226351670263801113874048227018616002180111448364163178236902321049957219838120154026745758524799083213006418733313031149578132046205594353000348368631325586707005986714139047704445269417331679716140452562540693823222306634784629360085477531320461818838032802111139800987643742572654112463822757876700839464479755474506417519427493724409182349741930611810274062033710904211339472751733690582567208148965667345516826877970722307699225181924747559369030463111682262302710940964352340431022105269866514202187058078121259018258582032909429160438903982342460002809863599185038579052029951071320717856293684841094129211466297948786131332201493687112902026785694497024877230351802306303902642328058180828625958543011221545280078031507349781470033447948508422394620026229482290569819136178023810480268025969879083456801810576378435498891671796450708534820688018614645772074988833771534764904587880452978061705773566269284648323940565916396150470425341292076727279771824216991621624454928577658620287854517586057053195384964206152496831134831022402627743968782920560337393442207445913751649838321313865728373711422878319214869172144411189489887437082639008194839618682512539575433955353829891612940395479057551110983791855872117950386949755072952993367017682646662906408112692620985855375850953601878383567333979562109531259767211169528363567992130626032443932139166838132440320160869633854640266441036972959111632178212600627046085168111781032029786209978422366497477829292680939323096057290655394707938228981956071299771385201693647667429099362571193363821043391153280372344804261985258667516987047020516190242307947560704422088608217520469689926832437911424390739564501631376266584251705621524504698775697694776800828515714271002667154919393555320332972244358509170977247926073154369312537972542711085124524148283455201185793033189848302944854091029991642768863892089147780147577641057140029641889242264671551689165101220937650325284637366341098701561132124219929183007677267206925915956092438455571411912600281102335454873108834517768887542968746448785569582790337020947198801417230106535954497746514171274818338460108636056188658631492261974722374404158323834607711531226320703634166264553518657151129098054534685266431130357563391831027374676631705393193697364510305743502176797333700325344404092756972276495707194704611606845928641803607612081137748842458757926510778398837580651378049354715221934676948604708312802221706128752578789525450339116710637691945622977031370980448187746277916567693509671630679539850515724027342112104302549356661977415662924492077811680786454272159833003296514934476196846365543817527715040947580811370113982000782671125169314012609710021680135013297269648702890088183032051265583307152081097262105155073073048620182162136770598604961648491148441959943262638178629212676928228483398003550727839448495711592062175820748965219143240635642153843580261091352335700388316825000295459839792874673984684075223092093442701064405770271276581399355016830954595622542446830354292800498629366359755350142547368699781204120648144565124038930824356701179698325359583169084695190691850627741250284227477869352939035052065740523711181312102682393064434239566439564703219968470477112398709677978568971514941719597581971390249246739014019212506855185531231206620098886724347464225393181496547173480557944494876859652427183537107471848883748746480034543105637676503243946047993014635285750334763793550311637495007415269205040538575927648871165070648930241372258394817075003517594545417191690743978054492254822484939555152073900866833067114308493036756885988924716190823851844272231530896195529659191516537326221468440088935086487409086966193590937102290528628642765589608171129551176114090075119744392837558251980677504117861084167799040913447742232991354175301204366200372418834977859723603853525516149103174611713955780811778294666391507049592169395306672543922405298976721068895686199803823080688064096338626202018384022286835748961015592614093847361836651013363753857895466818175032463726635568894562513505697614319426127722451707857236572752170041139552664373924814876755097730103297213536977860848850668371531370905589790796918577321182057576378208108486189862226064756079101734229160618125955741066042623055154029027904424144558849006972403340356468493828181690925570317023674126404990313059449937813300339858068688099614539695145200555439188474349779297978162906769637728744355110463746238962164223081440834666528200162428739837218125195623549861388105887881395677240501118354890850670695684876245641961698437073563700556585855982809113103961138283569929284046700669498743730073188908258532155362739577301748612192629845221503435464614978037140500199063486571068638788432261091833045201100849131899838544144012827174138155433528573180222661995266170827051580856060864000722991842725789770459475767676693913604246142010127832506079957144618144869511997991150726619057511686854025122077233076595845168726911960688344853898371917122864534552423028539498654291961829404103286166452146932184556477314986912977987232353296400354296683510702085839514680424471259939179573861490097256602403617964058324182705467331250000042632737360655255786434690984546880740517013318259269288471413434740262106751659677880228103483089456733202467185925654414814483512623891726367158575524297588274202568241259110771880265049859844621158740712961581198205602357737066034309437184801324537700304721616284828895600583834512344559332644350130819459518064842764139083619353204010079867229358341453305340720550901371215711704003934661874723509657183299708511470038634944824967984389542220406935219609900915462795435206948897154915986953268253598919508930005038926621629910219574013362313312493613760236843177942674770610269308167274927669020382348142377348186607303842498317303959988222555660224939649319276086637309157908480624158028702808627108211616477510364062360085689566244195269814386971306343749977381897557281486607604136948036942069168262287871117280908835015700493700710778023267686121821682164641748290977897239562589180595529724837503301326599032149292310354852854217720426228239268933312900436642349939077907233651133823618301441883959267828144682970163449747752720231078773368640902648138415769146695429134468373563161333275768458790895610822525754032097719123240053094200311235136521922683032703768708305609284467231082263055441998399780776860368606525586280547514167708907777762343960776294502738034479339788670467156643202012808567118645174805754360741042549978024136640525095493639976850315554112046261594262903107681205365911310057610066449051581424993992705663868557992387731117872553186192178336238689564606012077200599888502081786265500830734426653698191788906490206836069350646756463265679620453866583939850364699154184863931988155945935221387338667605971035313935691563394280262740567246965052514528382620258494226237643375722815709263599598231347098230210067169017969588532643088458669603813971054301009445405064984755195710535752110629797660729949747770488655175890455160815079310956473836554621108779720407737482797031575866596307344156246876003315596241092198807880131107745022426947190747880682205011145071278637777485625126272965261849155561002370437898156803839894296321888375839371788039711125317026720913892051637434301192480940610084297084418567862601705105802025528829293601640590689142383540633775358133326427434154703032823061699650829513432664825423532552003740396341825428461815244099589236527169479508621858532712829355422954254746147293701613604315409120447871323880197583016200221886050159821288510829004148432846319319922709038445283289136022959006942423561272702087277308363822285313370685510485083761732626423607805808400938052239799346638289502186005160347886159310108476605680259239742266475018233681620907545211297602140395773349992102441891384525837094135766232546430951519578047977988578256503482845238827184136832195019368038777772367240268393405906512555016943456758994907564548138890018355318176531238860064469360570073319698847682299899211916001510489424296172421624277427698929959597285555696271133155646571959170983525368104000099029545125391182554418743576832563949335078646755018326325891919175010174908920628979578684284262913909962246741670298327284434721283565988233683560324059068110399827667119228016893099317788788911286262502457250317830110270981651222379827042403549666327640598336407042024074335006829036275721812207972791656276438013042365175808053855620850298519953144200624646502137967561909884236517363436713883261884753393301192248559286098402307072944148278097666783113931490349542275156216211798314338135862742031728371074766025769161151318388785359597193669753558425180007303760804941054676111411698928902967026515997559178346077158589611469755007098057573574509502363796832484259166791154500431285368003583469630693857555406468501040230067718119609405186634137733724294539986619677495095863578420782879698774087551551121550808317597402585928851198963156521232874604221438364127349147915080424562267014599586644244805913972392487108783347507232504039509942936327238279111104694102954757866066868517445579982143652645155138746631495340931221774376602231483143940388957725837955331054274934066771970007518143995899481973180110621189327754134367316928767212324247491104562054366567065123278243208173621793114279144542701257213090429943301114143236208301802206862926083672084326494158397831465593674039275627257793884700004016287979603734491751034911914912075445460285716244909982831458429478046787904703707985677180788165596898078221262784030799531210970459839002067737118058690534233033350976018753889570477520012421118293822522857122225215048539106017017556945451080320596748598637782903067978440484509286138588133058606340470957607680759854945156692503307304992202190277452410850016812798367277416772098829185293444306373823553371135805383454293817936113991325126630247639439761875575372893797603055368420381478991856989580537456932471892560720212975354337282593536645194191286492826655458402361525401298935200384969345425193123716676494257353206119151888297223626404705719802903111859838104944439356413553867178859151049475414513579529196092740181199669450524138879416886546622845497971530575019250929155911554196643214725091575846162367590181625594507146714982787883515165026454734108904664951629326641605080461741558288368278567462972933147793018950901034119310474452396544635601387723211799446981166251012970974733456791611151804888385919310202608812985909767754126068949646278187978807200377939867284643597541493998107701052564425992024889937902896914164971063613677819234011445352539917640771802392879107607726447020694020227213149365528017603271612663114192308445657660666118988748451838477691571954234349438315470149516082520772172748774238419379743947178175529694226742842931116950786129107956965310963658740379787877567707284416132809391468774086561168776522342504054179665867140666536671362447454765450170895447292351798268137174431497102839775809268359396013591674546760288492157097524791208780945043966413534921124837740284528893119473170917259710367624544649619049057215351066790248597249398800665200718812166263538787111002949855480786769042620892857784881597616893006446454785160329005611231002903841814403168781154826479920508514170580262574131194041367509189015224545164880730906447465677068738515717812237447504107671579313750252062601430641849983505119299199718043140565196262947662103453869628171165308913998462018346961351433755828484988013599977811870197417022009251403717793831357107761825668251072792100104230177817033426420708376962293293418688996236472930390692303421958406214000099165487303587280887040162639393651672416107028878158622477919436448812831220684652676472026097385985680206222768073564237337284686703507375694753180550390275476113346601721728906034840320712653240148154357971621387613887593055559220535930690626897270908096567809375467483348119765657562880974458580305245988602004200373655406135789357718175107829139489449343524936997949336681596678961153094155516369545575327471156380109998849796934157573496347659036049569424065040785733633971938051099975077655648629670585797570289144231500116970121301181105548137487417946910110242275522825429988152778245849096631518303146106631005743413752701403597308106789559047103888061123051630084127764708338471376206874166943025131613087136025393470920026624662117828409126873167218041735383636060115270197776802817228016646199760257828608980936574746429273943967933755663803986927777959568488298323286566633411355477016485096536992315725968849734865690371548941410443030189803129539055373094714444723130186592361684812972681247890399803412843299041961772104409019394912065971720696790216571313900837945671309246834453084083309648448577108430820928762633027247416394720460743788238727479481004104875960687257040983548299453896242726741604081372825813474555947245518304240748606390891667218967526469184289175334435424361504648984816893612485880929999973251168761177942106722289125754688583370168397051381841832259073608556111503848710606588866808430738697930583958326558359039505461468458961974583626948593613941205486615884647031103135693797728370788078678994089802601500678988056259210678022648640638063808690418727305296874953932971792596957701518209391639953906809752464648945946153772535239363150770059920665552532359151912384247309593641319799527001667713563715883987038327146427305856792423959863544365087224922758755878614627300581405845829070820856754047096430138029294732514624830866461224105197487318169119273684899998671650197072754468250068756178681723531387207965718564827166883467850226430055610475860867613364169006154008828655506129917001948886080824914327873963489927970377017568927509986089015741678740055014264415302620168040148043413664924946269751106144041079553346784927888276422091626616851735986547252510808738402253462435206485403320471087714647006405399250620723846876672504730431147447963598111159028128206283336077546248003493691659301125527574849105837529076012820534130432583614538946575487735741027961535980725740847088822835599199380900787283040831954996101091786063921489625186020380852234354282538232372877792779032772567701569769319448705606636754571458403314714835438625134208815421291375273728570578392430440268727085604791348876276868990854262510803394199413031938365759140304726658129299796715326337794141113170242119479128575803016378283373883547251375916634742968533646809383140897698512195449845604976242958253016258088678241991771144539849824604860564048078450255804103008696823606148451182472370693846227918542875843474558416146253400734575512007459652404245300186134439886442738216761179968809101258596028465371416433817146544318174085766608630293064384112049475928120108721063393216111534001690282687002121277456020108303625705928020125478363369279212286680402459238310521658276391755542000736016460430501591509085699862514212741037124753320074451073428322509903865177502826459313532132451440129712672131708708751934117206044153664091583784048809852822755720317799032189797380866462379445628421804426928009998771155295201883731902746536277663065271717922109705713828073030787490221721004543814387432756124320564847618331623028538815193051243676679058412064930834040582615039747034231952700851033684394746453332708185042551678109863181906557365207252227584280696694103129514023160385866940346625056782759536937955829361177632396675714867484303617116531805764174031402805843787487065643472370623875333993829517713455474701855361227558641118415693938165210864771249373035833594049580879802655457318448870766741769057317173399661796907012180610359380371876126693048499367506429554995909272687849937583528596675610563713590567582942305736138683532582679252402282740165497355398717397978908927825550520192258826557970147873500181516859144573015974017665272106046748633509158363751348929327800205900286654247452064066377602132869239788256338765969265971923834190455246836545428110566168477586758296051115495271977231919010164324893779212048498605901515578629463683040343594176398388075131559469303038661430990495648753034988363657637789611930363101761243112702521517878425514377886553446896227569555357031692535554468902916232784431576792277800155223487007148961129537901259516650312048339267091169055361742545189390749540530271504585136407440664306705816373330195804385246761146685091724464099745893177363982495996833614463974735268887943561638532993800986485661026168984465229717198705797056529196019857434404782438230570991669945711319752520064689950669600717053274367310283514579607071352971793024755098447042808704951296767526201190320031412880834483794529981345668446229539021530369969695644474107785842445602970215223888134556515840259102194167922410461902825302340820834528776457201344038669477384399357091313600102503769102595144005429552610129815813683096184298907207969782747245846223762597688766647198135440085963899727176077162487894390633215705162575266062291040101351988473046274127791465447797959717735066322800971573494494989993281314831239408586814713210038951686326650494041409655033056300954965162588607888440630175731743032866761343202202897185523013826742560287683896947101449755967909837547532167424589069278600556191738535411171763784488193659755768136500020332509815173384615161964791458940426397898657034526448718927754147161828805117951939996808079370432394948815302436041110748849653484503954940821420412219903436235830127929191825009496768439330749863780775033599677593868114808313176041051946939722401586348611438004264979191509095701223437350545138794596277204868695154134224145937120568551582147326746943079545382288006103299404446855697101623921445416510539649687559207857290188405506226563100182241264342073691391817711565772360537468034837211628212757209285046571761913082480962136685550120742428403952368127484181023085311446232850664343894919447080955261282620090009135638201300856924130167095038910102320406333714217408013046869204066671076966279051495131029985679275934553277157586636962315224883405405454471604722822382949884765522561687930652845341706537907799446322297767676348823988593062087842722081168998803116009589963733480366766835009397737130425211777337263737752774394788397732726260026881064415467223800321663205166997673337863830424559343677141791882981272668890000856244477601275678260590316357769859254538983667306678727308620753547465177539168965731177871286604611457979726679187022779753561147689560222276280858950317158148733481742013351162561764333098014155005728832179524025663720184187281165030094203487761796944430119401387805428384527240781978554419518446256497199117002658233051549244065983906874296076120229456936185310323246243513659411734341306636238741647795128532257437418189625718310889440823259339792547460140815750591216074261725104970387271146601980693343132749317394517018840985385939364250208536933450701862352951346929885930347719611891408854875888982839125126369822226629436525077900972717087097477233815549439942285650872174281193442923315069284171701829355150687225001431948767871862319339205179513271950559133756742268685039543835015587234795825943869402288373092379903807132127129094284721909291692083779450505484013530989420901579823137437700524056343530888634150834644386677011550032470320005313859808939079622055872831456848759768909147003460751455820957790362382947326084669911500263439946879690596478285262895845780146309917770682989379288703670686516594046494164506930863307653555443808563330427588027567478647255853935912870303256128149382792726336686374840864595008235050087761164505202878273712062996402279341580449070261623331917131147749834017112314048201186206312369654214310317766157272498635496941791722187994478526578762810616579272445444316885796946855964135549709886705795866579890464101432895513444815223893937491362996187142199290897486255813100915154110849597466838150373247203445942162611198057151767682065176582366286960327818546056741326583850459621021921703615255034908822064006814354003465750500630702533411110845037102127174209874212334160810980018770967282742525797662399738125463840623577682240539053574120387239009559959639214348986291894573002317637842920325725559292979457523430459537712302322383054140420511042774162388425287506868409907921794656027619556294202175962293885202974987590771471852959331259851376076196498536499793667766377365851679902235474408748448940019696725261921202941809769623485211263804136912573526204371308236483204533094625134592409824331117242349439067890728548410426951984672429537645920553846933532417417401021427591412606818359461681978976856444643212904855603835624481104214307177707008861195704459708290119109298345525429353485443642381907640712179878104545306174424544772492398426724438600296773344182915153389978338069424892044909381654184263738195258528413751510232852112362739898198523836596478073994253556526981440733030617837701252356076490682651802420312407196492887858866855537137577768922672239108338512035233323098079990290241164616611685732388354316426837898788648361746062859941608876795971035320787072575193904117167844317030056016732309229898833822671109524368415314600652088366469883953670940588402892414623798100873664284317736573703527886807687592562434447244435278236548862889471697623191295632601062120118452213588426495962200757027373098928273468848258444721288909275838017960022972826049518197081135483682905178586331624424135898845041231464695497460032100798716438305228519093147847654045067411780355994117309124521532641630113301543637283901042222681837734406135207920695454834202627719446402386874274265651960100487690621422421036459038948158223149880367451192824990070284109449562259057192031674245689361181495577486612128197876637879446404401326398440465732189918673265083671276335750245111580562438327187245003598563240058782714274435847855004483013589699845125709468621740249369955190329837331952427493774721542686533998204378446168486431613066211084727565709772959187970673601818905153462017643720297422901423066799204552044172407499265237873008893308347272508847256226677519236585297264948834645023770440161822831781629364294631057188497393825794303301123998549393288155708917232704041097657517590812411092289990844369878783365172297790367639816463189018431888362834738222615990926559015571141900005313736052840473935990589610890535510257014811432191143064847200752518006247897205885387796709331834158148113468628938601607911771448154006463626917636374998656470235410430264648299517471000889750478701695045460672561735604034204502149697493369190593284504278535267800213956210540260488515578703543698830277954381133934433408171896592596658583580181482433586816872079479935158802004289172619111672736576972806589154341405743843443143462795304982684001334655099116130530114304381451521777794809821120726765836855440194389189293959680208839712420716950079517500120784238480941102482450348926520355291128639833123499100004021159396571829242522823171483338840081585539880200661937829894293896133626491752478575182988634474774967291930859233648028004712277634317486871941885154139347968945756834518153283867566158279248635398544027085485204423626509741122682584655557882976224798038122641313233648260987027920788751988261793353896240400251205869249425037921470806443953572258427074389227311961740873663721339231332881781004473579955439336949759382410206128462300001328527187944878384475981159190162833349109783431989455302103030596001125563951407273741143976191354338480684981032324994668773349588432022808204039603282072358623572365854259535947980725981832892296763066807290972798163362971507778138523353920182343336956545699532934846946486203717501060210599305899598487474233390050060828591057749241088320839500537029578939971878075296512729001791036267168257323436816527032878539192060919531916242028021557827651628027054926570329704669140127202789098507735520248227113590752221958474306351891327372025282656146745522095028035814317656831343713115557548080933813951868771886874367482818213698257618236759383254828491352550056257475372247791109513031259180764009842544765782951473056832426461698933126768951986421568779120850794592172773193694389533708111554664328763497005076813608944215675817035216917547761639370093480211756251666593543274725995086034991396648117930678104223156646798770504127900042475571100735620011222654637192110782578939449504559488832176938300388372016232214572367595959904498065708189655566392843089037714149031209443541626030589742097903353811110327063491410945386487241293881762375395223573520289093596479943378185385367234629289849388714942902292569679651809353870610377957572083853272860433383853941376217214630722376751038831099855224072788596949491345073449314920365452674740695291215853308970036616827553085162111712272675463082420408276035133688944817580736044287906164866432792346609414111535063795990176613402599962143731638990727732728761426819184322532341623628145370758317413633633455737175966549539185530758583280341429842469960991475963648543805542199176488856640455806370759299064131634226019211705650791014786336925581885999093185206907666391974245459431943753761558995153554110132647800249351326279166566371072698251070619668508989410675743265436778993373694813042967563291023667424363614806513732802391454994311156262607934897438998964753553565312240368871775698397936847183176169094600904304571057352917655588804480859542725364123394379562565155350384432292895998511333596585151085775824324394128504457072423539033443476198013686797667611628533833061943971118948826386699175957637380756768829793700246832099884011417808164091807585305920525840521357172612960339922316249832350883515520556809160529899924588690170986912489350448870974993755054288119248106170252998413690265522404877223398959923585132723216498368498168836360701717108889902786179137773455974682488544109197917016319419098434752038872068315578052548907090315876044405653286308033075134278201201582665310389603149432626222014512655898166732600706696297623001425792985825057244171910352903456557270557859932990865806992320654695374939288367484150548718633001428998007180768552697702312873817900101016403904527120633621665599325793679836048765561406102377618537670857571956312155635009693730475906692360043996312645491247806099070940361665366156525106688078181137188042401852891084572041927114284464716522030820295898661563400638427860648134313358133801510387633193546230208184269761145960538716774028397823599640126905076288959343044184261575181038278385073802015754623109809530976711336036810836036859192100561028168351883092007435267821903674612805647603074030755325023449908312371995180419981491028104044803376159763689812597669614277128757446556115730660497788375958968774996698620638959266398955423981222231687671044493882023614193007076012412486114613647666155046810670903451633896237898025402997428369641693620257277641246083741650871256305832049643682056337504262283550234730867138888556509189215201564079849199389487611807097061133352231073483564772985369620130575386291795494530039918473518473043366370287473890914339600890751088085739683844692101269377282056349375549606523280390545069522884165188662512691232655973268785432013725799051479170087176978594151222907035716564848717607231232121781834694500593241506852217093444352751489644967409674296352240053375613567262132805878535063324506954692235984299708941630336447300017995296541574602362393858397495579418876201336713691736830184777464550802697649111674629014680683913987079249805386627942118508820925182301672259051166372507888518326949404720414742706811105007815499182572152609764039321836794765916974135584012925415838957463103592685188079587582068405119104645852678846964895783884447183055759412269284442454095893520721703235152466345657751468497769317324001042820553488293947095130103786503617382627077282450006797201877509247462406769102984275090120985249850951007134846398115164620642682103259830184655184949247248638092363345273215427438748762536963621038100154256208939136736370917547655952127671255336037466826692062445794239645770238040628948222812699678687222713856453106190444914866708519769042832201784977503529870102688775161177846237665943751817667246038299679671227872245348939442478795393359567568132742415103339851049762508293214006513207280214130368051432150217553794516571975142391164753332489632935525322164765644150402912636234993671220942193584024902881483075483979648822592326890554431225992973103213047169760691471892950563434278474357568838559562561398337084982530562592139658297784118632506125200392921517658285413361866153872393095992048364034834492887274750965565557161893474599627086824364987088239233679990488380214354465969308413492021645046681957098411204134836893549185875776545027032443271488282812693389240114641261903805240440296336223113943353458046414472992134892197148789886396459061683708234300337733514523549616983093963932687123885064957212246210346714084836644201924088036819323163908022653153411892589948762106711840928782391135295147796854613877495419758345479754765524033871859649302307200189739493589757072277159953337506693547778403265577740118182850896353613357423248213550489182870264660659024583420417802909822024397660073860670522224475087636269522894195478942554039846784108639142832731211925376742947026837002012824231281112542236653030040971434496432162960651500351243498602843760257218812654116209411635937307085712243752340384613223857662965903527285384396391266330385957685154335599344194335348538079118310262763549390410578712119366052305645461198931534677842797230760317998863256721426375255449104752153462399372318641675444390941539791858131048230397276376330240620083722045714503659535925206024673153294969197893941807239387682889908148948747002932480780060731280078515077094837625524199725383262148084880500634473438985378977532984621601650701499162583691520976969646208577900929814641145942175914550864155107941176451852260747000789153669017211506524431305888302961102475422103997227442526828499484526294948535075977694581399107268071452772725331849284360801849814184426006631698532569350427716091139382032250855095236426125014204880843894638218878245489273796480460526309901084117745008666347325849056276508710709659266124501163301631489696263330967208693914218064273999256900757892373947830111634557932820833205722434304550340262335450482888627461016037475287301590866945661159410550851620487154320849778534135339632348701260295183854508913769542126579813288956560527059956361882750078845887797080251282918741388570364397166275797023139665672284225920158402989811685621885605961020882365398773862198576013600716572161202784633183145338067823336870176266612830783020094992402008338127476242669576075379054067826705736630623883827214915417231661364554319147666171535546517989325518887918089980663626147114334440335705892386118039037909346198764480704384016732833563533275107130780545046332047933714065575280950712678028236726191668549457788731411794899886936672541520677122457500246586452500775251217020419653296218679514655237202998102330677243736671505867841906030967210509130280372702657353921738720601677008520260618637456752311612466917656487191367504982287113826545859352361936948835936592104414253829009097035371632580831512822001821275479025032212507854297172248746611941351618209789357709998211166066887279465431554580043139797522433134969519502914537045968983496258727364848160284131025448538087556613056221378766476950395036211094328287864201858028861185627811556381360561456246226364905707087875604015279108230216218040257414043703025836511565801640468204702009818658652920944844217080151223170207390633392364014553988969628028006741851421113315352223905658084843928461848834429286418628025095575590586864924614006310961047352902829202866734243867685687649493445667032250311168397324054813252065121434453818440993483480194290211418999114086208625386567653555253634654787266843717022669139889976488192806402537167301215618334897951345051187924607868963819615090203289344962801948647207623043949354255551759162750630106036820266191289700033475486143300953278551088901641858917784647678427153531366906434513153905824246768114505819354669664392668142791136859003592893783515222813470902495467130252601490589585846093649701968325184143247360395095511539296327068269909516335482254040827334946798947834850476354691297243115623497427296135027930613829961431980511095371727295955296650392835956805425639132483443616307345665895354680180984106812627377056652178015119380607001166124903011376130289699912527850044669671233571672948665350927572580917273176123485719194655645635951057149577340126058849316903682828302862158489168740315785250584221210920385878680206444413900171320715292070233775197905860909021592242177778818905428184799302202815176666852718616061171188203939264201116465643564631912633511400178313430230410605251470441213796219983014393338723920012074383961653596542621396372805479887622977349143248531442945704302068561775652572688767757900857992778051452768294545975109047409319685092842380765650777551893671611475756914295206406404010343936864121882881644569155453791220637293110586386298433320527218544431202033658482216379529829203594908584886287295605878163450130141344930951637236374960218604179542853559115769652729193927229079870055766211146350356840303203119508721123646284887473834654805758127993838151443348165929754417044652636872627699149891753127463498260424854650890378865631912653161004219963670853548678669487205829759765378526794811951443218198442068353684860660934866216769710610849381707255456898342766174398804901300300487060644221584024331134694230726656243230900353714987032659209031066812968932230351438931032085563224495309151242506576486506502262868779236175078163936146420221120727160269068520464455345015804784311888773626755794952304962132607914963769403966483688164759642320999423079539619313451516213821136779529957251136512807723296592033057789703416366706571937461444270617420759998719807505883874917757373550711744945944421366060445698046796560378569007655935304542724723133078315644977324259571089360477532972842363153561346836469531000311495937930302522005673129383518832830289263968952218119792602242921495060081923798208814358372347231192240769813866085891735667249317166694955761286284610262819699280626133224329217822490846519522011863579550761618268023774982458763566109571993753848245940712536668914080526881378274347860280612117531515994492267557820485960428922990380838722407284641413456886021348302672511007331248506297587886156543922855665699878296214453407224150741249021466694281958999473999908870547336033475093063243147721489565889492266812987276061895361245998987618967685905978992700902317902510347518200444916770629864872094773332480936476691119419195138193456272741461224342600734434391875921843743381830332158767097733529245528779905387356209514517683511081649946178822383576717378391440203532821919151338808963362558971238274344070044418851779958630931571524946026680057539207363692604530724618768489318268834244302441834913180630100456088819000031181102240052562594055486692564380593743191463176678017986833107666783023483182424808473895859746788710897100917906751601182691280985197022755271016234334960004304225874739057483914218175491272004946940274803903431986501489743484669381290284912715041652493981442729397847660787553643708399009494680479178343853088362930351104864401000844188885320017967180272249018739605068418576026540604152132930311368679269085463123546353899329226859045628703694694608183749725663042034936515745847854311548838258514529561753380681709613544814297625362533039234124321660234568342074719433130521849126469248463219640433335628050656892185118560640159711636560917681559155010262197855556297605252593032256594494938966685651645018456432177765685378452410179738936160530036021630073547857794505648182776603566127573617441814868922316178667063417269375878294139479271155628105001810892325194024767079850016494377062042917050460919340610635611343348925014384047173263326686351533139596079008755204440710390213240427157980758123785022241852348680350149784403688473918741626395167010624067169009277451793477655882138848541801135523023224760769253109282398186110191914587692953043285093395412320865992144975327876237565338599453361998011797072913541708152280139905303728837206548709375387791570697081185831951322715479969867754394917127757406837716891914673176745632497277087768040863438184514727159630609000615511818166212177335382490143338908858218919246012211927323924914942294407325226383938618695193786751854432085128201853394697603148792663328780650094790031970869548452331178498939182366169832489023605550227938920513867750884846254971512745843532104555946211134108286549499112611483243107853510294193509673464825833743221425559908713859841791528739831449533448907799385205255958829975063549081995885068770414043977004846091590029089481796277221643511833010908867870834724896273339503107582637287476580128060775290978575351179304452793898941131694912238595913198286832295350582685453434441506152528448920763264494330711786234807091669783194646366356989966445498097911946104147188085033333187934834544034559129651282347577937139724238267567352946270174633042090235337391576408369736658686735162615584554262345004540701060856360295868907003056554154239315921868537846190740586569337216627006166849916968976495874773985314681998637290182723871274008792863464469847260195238628912670298954042704536377012556976520670474936103305062413114007540986906637784608639327804049874771201726249089936986396301525448296329306788140138757780665986707931143259149439266511609220268648872449771747831396424230551027301473453435495571981851489884418553286136761801902913961006717404698881370545615310184466503087436598214396501107899883288430154708552478342910465001867972199625546134668777766265132778184727041318703333536776420930345515760441928455999532507397836924317161718739700065651050443057257213419238897272918726381755687057654958233526072722080110372428253547492126731589347987555914425907492811701404353817372498463865361040747721952294642397348974648381693649087209483014980025961479124712657690395771175918166078949421383161466329335842573694020713027436395173862592205504092132393595769353718488536022135661871225123771052352569599846803169200941596430368509917160570194467619703031956444484646214533079200998056702579332886963122739267304750282980637313760995571944464935156139947074045746310056580960850721379339692538053818776899857109415469225975195252830362803695759659698278294370898248064312776953062476220204512239003410355976785610574952203456102116639624984813467433126046931385496681847765963803845206077937643749132553922589676178343552096816313080693240672466331106922253540922493561243994430111353346935552225045232191859629254473118897656480940855402213439399279778227296460480836344385889670973885037545771118728777819718259412672599759151983062948919442053201144823071726016905977658478535535501883958441941531745646755036223367093877783977432495945006342576390328700166821021470976742425273611521486033048813718926646482105791343810903742894561228171677823057509646370193895208108920464414472477257241389502480458114859169186122362893879142035674608698744728960213195051335760957169422550957416648974023224285185301449845156330410757579848710653610825389221909569081092422335899967488298932736718948711170513156067606708366473693516463449151249284617609865573334573797046818983640943153075733518806501199740695113982386051916775376733394186497403617436671665937487107875207534355910526739863892386861904258302900491319974946039187040893709550656463608685078985052861272731249155545382368942789784386284061221833673003360855980469699459150849050540477577571082020105962469852919287256377904674718918718045869746586761742508479987488508571844229852468027408957988317016142389490499147117291296100846629265397823704203177676124165452502658812571881340761676971234612220988643147002182761746835829961148027744624615806002833105608900482923489929585338826855356679498437405777664805414104934862908825964725963445838626301041010982330560338765011642925206303677494147442263892178442459653004244773836032623619921198023316386999169059768927163580642295777947042224547466194084292361780894050489746384927455239338529282281695915427627808516993435426555831883373105583052117570312579278321440366526823122642286359166895715563472597095529078118918081626061520870138344506540916744584669737050758406817981749963760000902501062929494502455433630639446506188052306903172013015294968512226559825434363783183979440908906232341382491964768357495609064375450542399563007883123374237839074561894290717692045351130692163324328623409671067060565783630049777308081225860403613695846875778692881216391506875015860201573453569553972927091093802005383528255689628423455241373076034568017910166684733530051881019907796696721738361743608617375695987397770304287694680462334655152950678924857641797227495336004801055049726619258901134121569548005147623487391049455805782656631475029465109208639142270119229219960581638649064712971789696338590662565327119332688069745007614387983128501125465777982599818806786657055245004501114743567053397106170836859770280061398761290344202023582599629420326092324174244197597773027874916655614207733808520376217870442816009717700020377565078834734690511416621285816504146275191092086197870544794327346694088898825462850435481998340211625261115155994333121825145516052030717023548981619392134781980068195005565123050532359672462523568406292084471732289823189158066607211486525852784225436394643101649983479337294942599807284966041121187141126460097584239363798191220942760612195423566513563048805447778797043020614216801277957864628631924362741457922807862179427102075479076173258607147145122785618064807422839077830613511740104417707059439923239733685770776021497863293987366366639694037981828371997814910026377915086334728084881861543643280786839410004407925613102363208931045908945496066387559272143562174613723316399360199055864160847037761692765364064910440980692853021490353926298429790189111115749089049398989126877704392265001419933977403243114396980110101535473653417351559387287037460627769811690356577891968292649163195863234781778725662787133544726464547071786100071213400719716067273996874405465193586106758211612427284274136523557576297227477275593505904013193327081907767808623558396270871669839788992928026678856480744689341892558998116039165265031848108632321516756861703253617961166382856898092253457664038036710197808119283010378719534296921554301620411353269746729189345519318418697301879465101169781913174636892004300408396262485969336858687578757808255341518808854240642569794063768462490648604632468898153911912017173386269140745638650739953547743434434254036163229294815603681087888358194041633561047453221533683597092821021660360532009720502277949977648030609148756529519638819743882179303201854202775321205764090231849479233278554355708864280589250454017311189369055909831386388873462057439520091713296152337075358845551921602138724064236631106043827063230786007243014952569671593920667727049895855194594547894072978044296828575313476109185257421189421874467555809380035911992389694114166250539099895665750931282311515778089906829002256701436515997987399104782114261600858324421032077337167388129685659992531643601917074347661737095230469018874262406613826306742244606644958429185030782557511073153324406582069433331659377076456340020105288379758407370801895161087479541143771672451622944471833249310809051729206530423399160518224346734487264956824721974738493022206451626100322243393887396343170836232839068330832220453048349789729260413325937473298949943854867170719952556683882691023797047279497542249185053066670220607342664917157918268033211792340388816908812074150228601820634119644661346412456186350024324701962515258074971882086751410853014400421120377388890101414145177596619028983339883663073144391487344691815510067237921257748775733851389652564765935798205351723644603949222495876994913417727228489284489682474568774968919687744418629232082924182242813309519310572554013550732117514820574049008671471220999414646108496107417176178102693417908342596344884859455424770716767990326015208392849394715692442572626693857129770823516441021668621364684971859091920848446066845414996605611491936846184013184578151078875623794971076456029157930988726442550323151055021214593679955312956893669639122556634433453452491774288119073827929266252087678081229699184765537005692763506536465569314191943614316981880703388093875841651347704621824362447904138395900816406890731965347188166711567805900002058518743224893725336003554781425318369332852434862392933936158461116217064054069544706751833584041482341585804340508013012808365850149804847763746836861697929383930883710092551408575742579229224629200151572313479346726148600871114833735338948869429827385150995507608713756765975787175923450854907584908629602367697653706587699323275914898593736845508648031759869752715404994672654598553678345944184285528404761389936170207773719010035542696173023902400426908281322356321149694986665733906704325077091149968713296543676319171888139796085036557216754191394119058980491688670373062978866925136060551837799721347804793771708167065844703361975570458616100451954751154280527855653253934533944997916783414103607929900839798068327687203902656859248689713902126327154966613863381676971248556507913693796945379802241452297871712212860597054016709285285667059389666928527425336803257754445622794093283343969783077734210046991220202054030792857933194776890066641466576005500994901957570104461045947450993009153729502128601049300142796955947550759415021145052054824268104152464059386007581427551273317146203652234615972742129956236340130381413502116021260466509778744347883033633164299940043467757610081843828486410392389549878446776504891581413675025480339978434716165263771848180094606162734291304276902891655848797837737799033623147741980087063473165602304122306657861500593688774158472186341982467542539800527425092714167803632555639323370873611397415521082922829211172325077434364909985601308501303662654263476654821990129449944458348682401589750927246093376374379198042167829857753035534306009842870161158862493771009566233262832290148012304097661729740883097303524391203613925363206147523969973310666076443283080501848598619533790971482724420187665713968227609408542592261652070312126771615551634962328324489203458626501394726296281663029984992429442707252300360572096599904850405494073880818432258085961431236752927504458726660804338078296542105116319719023746778632271043070642694683147732833038653190869085160191432471294381056923954371411085268163430837273736284410275506369115274981397145755147493140094591239855059920843499749730221735533177526271148827392374395332894150992660194246319815521958996070345902123564595706273691320505758731523157066251946904991952098193594228521502139494892235663169316131878221557859909879599389507055393941721614260052634337121771322372574469764770150003880813451361427813209979204411652178775773091029966853036250009789259272317784583141540719034207069255901946735973064621247343667289757201047081577417322239017853276428187736515440268692199473730801424248552617945533437796491202806410247088261329072327544067879805234460877576897487112953000450096640011330705757929450203500252282615073198254490417289138530646400769366171656751853232178318402338219746032772315496035426498749713215730900183838408085062196190576061595683574512351248513416955743784547394599575143838906012439977124262554098872847451905012958999039751388890863397805998412798073001783197644835405835257208991144995114828824671179993562178338043102935656842640504667962789534905931613588596755405331684061991500225069470713957036710800122381344392540221927530762463728929137696448883680115097647695089315835351875364326137110170190496881445927083085347793780652146983308428189451593737540329691565146772028508823597120991043951340583590320053656855429336997229620797142892448137681713598530219793917269068319444172721621609104763911318401893167160935265570823015890056687239854721955404645639862243954989236697988443650047248863749817319590088253822507691528676797303821764521599253221870595808239882938024303850866820359501228937458421524454332999541937144090912435468555330757228890737221084926946637139066994613131751201244203340698232578066081371658273240908813406594246631228047842527641438241082140651257030963484152391623095222979999335988345862833919330301103107490402294247178471349708459957807794162034750680713520184091116351018029374840892911093502948432931695192208099778966041520441990732095574051214088391497167208336814102658379097119936296165456763482088156346918096398653629796145548750040730254601050127168056754499367894875436486637417094076640467673048915659913863515470404650631094148474481608766610138713715485063604474714297355122289190603560768855806225827107146326508997930641556422447600018599968195395085621120447277090252089245535589895888774714462812920578316698459556676703717173183182400149704490739163295701673850204738268226820739196235753270832884550304754032490744550334503518342094298967780963244484079827878029435215264186828133632865186774664118512814755368409491524346703795919556749979652012612584821754645476539633031202513426464457195027582193722544615077912977165086758188219316976397486670052904111592102390660139191060816594328492714441038726005381587382580983993406519075526077031173426647361149947952368992570755442206798936814932970118652047125268744359532746808656360733311732841245347864677377350317978338368357332235116364976061899390413385666246791780473344624346351965591061470954174719440170601234819630055515000244481749697748420633104912883623484156239534136879457907547952373437197121589185516878497213979086396346882253771641046989892570392029421597128141251994135249665118844399002280195988462669238555975557309100686407659019207002572870572926706579101466503747691593758451489296863550197167612696318105235982904486777812047674979126461652210766055350286382630646316189099504179909180570638785339931040885416445148761327694245627257809524786132541583474482065003815196639274604980027723054528717369823586194679017681127319149859538164186340031269891369690341284805569317880214864154663363554920366439879309993803225936585487038820307476871754428288072179090381720254313899869706245547897875863691560608731996018163441188488514191163186527096832965533764733080505661926593662233916131714825211172300401952761541326083085079063116807887602873097393252895671858031635406765449046571192931349922350805372498592932031984537351521421639584993990622626951721980812688188875471605602636101962619966322666042035926620312981756137761524208637574491366067015103909157826411714539937702323381034414122030014188829638060644254713692135866826646733393641418856339051775762489017255529374787815219028657666460155011233484844652832286770854850970973232593663843255507258244543621342560428755122483325901235905672001852207687739182154747680272116042788949599598030230161309592057419567088732257432087668121574366853683660478101157413274568570518401341301810396321389698729918510513156690382915599153727874437139120024664708087273492710451361043846429314323622831975950000145150299311965536380504842686772214857297793868465565068540150044473516241795070958853434635400249211012713733318394256285880267042682094304460779856003225368852377442583095111574488370289889977831053085984738301054209688209847459053101057477886361012929211267144619499859711320726174859060642358650080465282609852616820873248306236691617458451387083572194096228567466649976283686896299259026256278962257063493614190188446743520855161550369684660110426642980328591638202761026088748778322591057908004873147506703917797855021882511413202652653545731113265898637305779385571139711853544465357049954321232024874855505234629674969230935825487527936427938056190483118690640998851101836666665909663035203951786016313377997750069878137467174009159200093797120964290473030544989449442619933060607250365696275065242056214142111899309442746679819777930559680306793458088872323437949666778179714809035186056438710103411211426400339612926038679326067433119866247107982139638567754777666386870493391990998042615329526621621429283036182813635499201381779876555830868082841343961010503802860921595258654020871643978813474773593846677242253907301450656738958479383715851792914491914652311218182903334486784695422696604791802559629734641598585859904769065240933448415149626075635914112284288033535562142780486108732297596828190693958015841682536716787318488665488497859108018076511790936340826060961031905454353515052726401363594905602202358029690960215299146722821943727481604120536847990798040049278054536070831121360163638059457790309331552220320691264832243620351965971618916395562295957954741338613397487155157458118656609748225598517254437543448276815894447633964473961428936097787998124663151345830714146783770299350027900159155548870794956302781004569542252190724689974360180834252968013655519153320475476202649710230676381358829990408767192331187562403987458247845077484138091143246479196965624822599000409217678928294684832326582012209116154617105723131783941612791542997730901585567178517267852060118124313606288329719363456567746316552234523997821176858895274158901578405358749941812882178860857208850204858013344696364761872563600305221081498810766085097874523467572758993306102168808519060431791032049665570549246486942178537557868399612439523092797811424366146047919808742407940226790534837609121865960674763307057220166818113503324610548579973768858705606968933182514259728302170434867211285434439976214982956691621986502459933029369886330084262080410410245388647365827358682937614354009952092793163075578909578436346930469481596792208528090016831400183445938770874852313400610626788387508759868409793290051238205857852696130970507641532932936551113907389739223355177573828669537442406747828319486446725377998712647489908883598389014340393532899460219476625782732207478535475509867552938642367849225057490768447001349415179971127490999752560263746239860048725283539338174148783057655149382167802374693809571676645572846475119399227540098570203163576933010552412364816364906950302503343286459044370563643817244913862512596898829989184571826531841261411166259941295958532180822116281819768540567811339222143511195297987558247271493089741426261558013475181421032394152670599687551763700055045547082883219192860922314406970569353662495164533799894152620448551485655871997713634958779092717195143334387861880767962577630786590903656525380694155125898485718366540760876675110584169505367201585957032895185825209967307606623166635035062170082181564893929748682063138184681726395673690616102392174130928475508233424442975209353423976307230542891923363460041457115474847309940086822360567186281441429361293373856107347515115457914280075051461715150272227141785530666656052016627391090337666716727066296913354393241290363484615712895410576090002994848827418080173857301052925312384441407039233748789219646719295065544679770883855989663573405044488133523497590999549579747137912986748609045823304202302649977861285291921852509593318054869545268392528708487997537592010667855775372549422243503268257430827286694542755094772021398152538964824213169684759452137743609443252273075402118086689170311981583258904875023982547410304622702865062156679006609593270327035832727358146706139123958952244006578920958501617827867781592665448598637342291199523213322750155466864613477728554251128386084664397020401328994171574569177557952889420025444943026464652261210213600437130389904826449239095875059688382266554485325516308674789981544109279609183728638934312332260991271008501501340208739467149621985383113673280382692359529955438293796931793778748799287121714944051897867880820349309201468699988390099917974707412488816748428710927637206666192612517716500596360902724171355277014921588646018458867915810586728072549397995590125806813884449770654249711123479197253170003405268083783042162093688560297712631174159880497168528745765211627021985164411557654428199830559590601917147698089690807430213060277356432409273625935328797513842216285081164579278556836902532576025708844073582745552705866996306097630747126798911297731000163674989221233989742430607781356743339347461146991035485447637178159199884005985853127706577316825112147424086311085280412787368977648201390747599372004939460947596795913635286926621365729300223305925748440633317596004303433599720665369956962379954679600489140309333071644441115703512591724726049679847084267106602972032299714473133462002781501980963332338723326700542764266234252505527744218805188992203651988563012819006682828663087129307137731600003419850387896697955753665032429114533126467217234784539860128178885803287901055479343786365861447861796069561786074474930820358240333867357570782516250948121726492347705109337013672969306638253819676987720693060916863911230126320361417559614572887251133507222568675405722802646091101503483504081037966599454129517365632882245808446543628567941639856493096936349147348588777101407748857308536338981003825305482757829890388576357964815500689653618927334521804291392667116294472275119970850084020354107273997194948556220911972166128360214328669874964178199728800844399542087623516820700013751138547316235583091231563388183601146316050161035537500358659784210846005868014549667568118333807384722593016396545112479090520216694330769323414500565638002492631354455982475001618648361963256776558662612626050042712784146009513602495947066146818697041910441335709612544165404369648042851791581643380501631517798950561265286926793384222111983606974138514361974332869303008805925813682319865096889065690425312611095629171475702398303375722383366632422511697783233766315275794120467046585892731427288139686354729262952595565664354158595272110781610313701205692130274249553125375431917472895397164392289979436267332759605354803474815389509757457932279979485868553437111342327960926082453581003207307685981384706957751584092007242100957254824157013658647354305535161149842217864788834186124087432320780321441258247210998935066706990722516969593625633006754021816871908638730322165307946355702925870468768265282203388070539594370694990839657393036549344592662698379998729371457986364144077197113160269709462414881121592259822508397976421902599421070166017672521372296088557272139233429855187701370539268737934161536798459683145464971365685368770320149732083516190189773977637464536598131825218337762179959549890189466163724354202238099438183392530975278175502768674808301452942653939302917675323608095424476914459224378409541159940634441340960482044449897866303774466358930610332789418674380969710352207356754567526977003451073831506495758007367657185736346549532840280168708032984936614755197082772000193456666896169290735931599041374117791539678290748027503977193189504617636538967774837789930563695012751408525318339130503081500659853670480984174569150744384528950857241149342252106566134558597045590336741872378160294268676423492091248199274630641782541774046855146780159069937982531895696471466620643000427775236888625198447270485902185374665054461961393823528451463646475401770020510915358633350564129536461761420439782231583427742618967573351358366673110873113546996952090324301961729643743413998664488730440217600800590841439795619167043669738774076025421250111799682029659686405755340280651523060611541226269776047108367334614263963293939786267266009267165414894300438330687559296809340795385723314048669455496553966051669518319883595128807982864296953744522439340682874406433231572617104382637417350996073548097420094196080685683953466518340139943684173072856509041260780704083804580009309621058644287689184835488866080288036619745514062403498358144466423019686065088794685028856835274636233187604879678816074428178070060256167624155344902512095055494311618412510622106993047612244362507464712088827777060529035545792607390411587741980062237505295946959896386173374274488311527416299663611653958950552655638320274634535565907816221921012940413449712218215926409279312473903069246314971562460669896138819791858586218113666382468160834404213222571367761835813564961571486215427136032876654116296251348935264121679601750629760282261561134572876218886085387190442085339162181549649221489882286921161648761385103445870060035013604885990636502209364626996983280274871070826963150289751399641936992575312367606219025575651006648661628165083561562642918944308485941478911909474492355422105417684771926603042968170939627167808368764852723062909779291747701972123640134045561466738587284186571887242233539251629543238139758294155492367467480535547433501819542683689109388582704040965919971466688997223294621067222371111161395363284860975832414562632071702468911777014657760675351940761800977977621305298202854895892866901262205853392930610536861304590509491068740043483879406201409885975354151430353669548803079971387266211286215577727099512740758776576033445156922856783988841628944155903930397646837034628176114851323047552653806245329050145793110294407861894443413509520184429276098480250956138492304505707723758805763251325880952412271212715521452887148849432198972291854528418957693064418517090805042081844129629769018710350306595787356841048243096791816173587559770366909632659700884460362921559388167688171234612992801913983263143487748519112619762697463468471599463162136764741525652526520871904035276352277796929509908125236647059598117774842534991551106706205920606548685607628762593168041333553335340869829254199968058759048967319208902658744927522935118559117516107664296799930647045029454857026288390736843041451785815632728907005929281365025219537922823343090816360872181808149791099876600182570832105520417665513701729823120494466624859742603625652857615303817797623830910036015792885608030931071107010498912800279946176679821057782637833312152798772413162348082685376118770839392713992031631128433384636788910916662860793865514704141745150228633588327357932445288970880947588723369866873869973552832716107596132055949336924843691703953427155304476251147263341541915668563800319515258083177108795783512829418110225942902812440693579303482970650048425595218522382686651790849783617002214057788659263331170422961137497843839587731862862306904581596621449752787758578270694928910517839824627572673243613980885179286428530989412736656565286209415055754661354799515135221433296136864434442851167974152286905601759157729510734186071297993325451390177904680288418637433246613286466844384113964205568966806432684287508860842656279427662018613809407264905288600011568332793630012272975597484834803246034253606757050854614245505425236568775189378029434406175305006427848791582774912504784241726359155287723785177214941697843363305913391755150990728542394819252343573783277052199333488560452257742111172392992791489080544867610397703500292674590630523489719301479874162645846214053323194842160564467241766156274436577825813911606117603369626222957582407179534186348148842321306415243385077593664797205389433241033576522805548552161611705025693448022890727700521156283584334890778654050971639845574186121639451997564582475624392721978578304842430011678305249588406636330943176645669961061791921710544317002274502392293055364577077562893862721764132610874033940504546264246770673209824075558605562657336389029694752739485499943859919066258415937438331402916277304993859046573611062088521369127158180512679188604520652244704415206606239337744890964971018879276263258356524583345007720365372047708339094413610258657395859411845818357842291112148419736103322745526957472754280395053372567247630376323497902110180127522051674539412593109318444833830939135679762983230453834009732486554150313277656170588547002875525588037472490212950573458242934001954052242324206979986218887255582117253719890754199846319016343732813326737445492038624348614062367759301570664068670292760657445033472405397954310315008879963199340428669188586705160520695055114385174421964221090993826846799518573113515030291190450903593620501609430348727602252065654773440629950308146944819108275840083881884027451418201961053735102177769235076242599371261303626457921947428046425909830619576054663384308144052828534025519716455535688361535199185150421772756203733982691991647241077062592650322448599775112879381940639278398975134797397258518093698315036262475877728306485781887011122282929104494352954536010119276267865067154713496572814628608459102186287550054058827728945904149415447759430297841912447408864098206048670891348873981924638747885463144678784023132913357674139421781865822356425324096709287500351227832326275266825857710606829498657692066641532735658289930514916071954871636186618459184477452039477614479877232238803180665043377155010748683881266028999175248458732747280397294131200975658513579688666637967606546532121463605336397340580630217588770724606417366011199298021453300736653240926926203171222467283122969622414338123784673717901653717175168098340715867966618254619321317849463478450528046615043622702779793333598920110806755946211174417621237159920227562264065760899466777199372854925184578355174080633920272470661101083792283009389851456831917770376290915136239481088405580392271470762239493480750330119785102855809467393854597555821270008042340953233038647066888118258675839691679672817558821949484676614585116184939875780432914074358592931383689409684839512857218040430277387463593442169464213786802242444989096694463527144999894587580377636925121461492469242173907528948263241891758129125984460837406279472289673712622435125392692856518927348545240931049041250940002391282645370105592336044211550369093665148162487248747413004092932018640586422697935419675422757642050117438557133907916884556897732779733269516126947399724554776636742670988740546891116218630820067979553620252664562246726416477779878055439100527581749084601736168388182202579737428753191780243578442102075026440020611336818382613627383513074733482686860031450908423969715567472942461719286766783949813042188523166784061284590316047377762269380638553853662458616456589418559411322596213120640078909584040942488581042130228990919056394629019864745296591576419282358020038575994689706625287348839098926546715267189049148546521376331869438885722756565643489643714526013898837809014223522216053290453205289323135901757713353102452698521354734204123084608148542238025877421960409414602544956526171249606172791330625763444589354508628794985266860198472069925829324999505608306234309788426436553879318456470018777879663508381663241099080200098823251023179847552014982247682689560957693292649556942266736550315834329563760139531584897640208028784577023267161790160497898951933517505608557222779487055113219597751103628298379260679939278415981327624292970942918207603606889565383568975855410779448242039558986718806467713644883193314670493232405523318978808353675999736942598525012659373178713514623943541068861759919735840935293119520442595028631823447045437745265891502740874375442843031007425458488329391395944565409290656143244064846564516311254239099777026727628927315934444654758061701952841714161497436468287922249498193696615166802018436915511258421741495989812243821381337412100182138395755001397174372595972061827837143904010132008882017434986349004151743568131379782752458421357361357076585899120118808809116555091190845311849853196639474148959294037802288313263897526430016870904245180970064622864950233096513870734415746745381665967600690189596793679669546005755643440999644971777026814945851784038372553721726026223459240605838128183998159467318837298840459459893065961063478946547229356039917198243282311937416406193174352546704058620404840534210046828583095843035087194226804647381260608366491004676098891147734354731312682141166383013631259750465752264493269750691275014407585208597067631358960590274294968699259906256635622791520356614541056859060363879437528761121253592405858482022071194157832739902670452691583745770800376530599800849099085396782474683580150491473715470435215221146931333346611733117972192203247720356383990215788627349063388527481141223135727980570537325745594343681435838412478208990054830742493001751849534799303557340243233857196601726912686752107682431654113961663571482969849829193067272446431187022552765068068827231544646949834335978559409254644737213115459389237071688749383254193545400763398970686766317408964402704481081447840861287294689317179436031639045981356670127533926243702764922198165738346747046337984014864722537927331752674738396252569228934240603350902665542648484688509311961286821122230104190197857005307794487800330523840230826758401880418620556006109297210712201935148794882910917454783938116645309936413843415518887882151665465567183044027353845997100002123665587866272435778752667301864156734290610173418772131245015469932282499194434670482272507043460202741304804155865372633979671737814752892004041821354325896009161600062393208234336088702839377014920581776354015352766364106093966802459482722064541568881337770945243515012491630366476811398324432653580269472137279774567836235291963366250956455788798432042199572781545708283859139304851251404491138691269077927539062704209237952314646523422598538781226834135551325145604935287108326261577042223937580412647345662789933518421607313113044611829418245209234024093502994660039700985796801663009122259497364811582842685934688480295500822128448910815163314801285056254138986991004628613094039004179240062816389300146622781195211450523269764377651132962813832075614791466132452781268608634742872657331650798795413918764411168340262924465527228580703863493379964378945727445632805341169870052578465459113761279092991704566325827701926455259685599664832358083297246150129118108144862185730762135424577622331377335555931858280410073367944104754043814898926822210682590800581901238578571389377406528034705854659063268081403551676283418416258320441210006776392168322452803507289379696208471562209334085691176846220430121746898042025338319065383265491261635892439137969576235489629912386233621416309680017957964606927208168108635309619605911311183901472895360794913972248921733952691690587078153041179315649537285606811707101996591064653102863900171233181935939222390692066872272579389072189545497043836753342825415421439599705498621647296552096304127521341666727832668503812859952615909212113851216954511336338508639142061311508988188833017711439583858666870707124327288014381266887693376216085923116298934281651552724305880200775290462236485484289727805599241777127639010676943081796788478200859452359979875571944690070425364184848048592342844360473099092756843513417812877562146097994776761490461900626700821964922545693036995767521420731972079918265204983416465174820249862490877435723562197295294280231854399714595669139565955346439911404360927304992131768235692370368924345052108044092532233027501620932013918044927834812505664078881607719985974568166337539600412009204946759510533205381382852027402869407766864529660724315184303552989360712514856892913919384060668124505952567122954734721335522546116100637742345676601481879716025553892221764301077614460495666750301894212651115196931399729901851511582329770627005901494888840710859057034983709665614703576179732377733487296734835613731864618506268124378267860009640495247964910719790577093596795259239200732479289565432982651982598843517757070380890403131295293091202677830221883715903502073686486229092652413387111778682393160345684655840774932336295412899283430264333659583319489554100454413855918577374487550187023924678882886523888451879400654903445348380988485076784444191538677790744215531986654412399015444447442152618573872233442350903342790502749602076319843175078061605240546980104406122527269563915701124833272811187989454218181159926647660159220119843758475123888123340868133789645887226122625050903887046801979069572449613245503637270597740017748840880563652173792581043507572685174555867324506829376735789918453941561520742063542305332193544681226446642892160879196280847338836933465614766053694095960242014435119622847158629205652642122189777313794399342262674993121926541444945986670487710769661979058309973775028093524926192836924496113806236787264467856390248208751558836696776290621014114108017906767908282616761754889156174696204886843161920112225452312438043884283814189063162004060300089067966434277196574063405487634427046696128899510510669788993493647511958702574802979394824774606849105093812814200391712660481528935217975526157852873379360992824479832961729470515018224876514355746414830149664456351878718605817933768133099950033646320116384974284277309808157455828139508488706909605132109765694365562879983318710916136399853430658453669874238994384245229916012640644883666388876760187898595950681912545449089998757485371560206947104683635519083741893774435618166799546956268081081862091669002137168792794531675995665157773355942186997283417143943992374798280843641808108573104091679468901553020163543044971115564910362607091127529349980242114619321816956035161944027962846564353455114617460522957331973113971476801596165613122238034138190227562372181615448926741758409575799870833015006641936949208256326136658503393979253224409839339638420442611068690141265037172384847991771177562598901754092657479818147361700660240500252052123906868762541543928833847088211579196721615756710267887163363259704954738493258047966724002021061481562570225592975161814452532991516093644083835968855341590026823566828370816992354152503266154540021269707856768475553587450862707544002387297333014164716736838612048794803981941581411483769167475900069272548141830064064766469899745135065004104814219546365823440754613387955943792141931853165087977825925852629847066306372288813459107200272836888054525693990813489406564890728377621549115250907327004849689372446962674210655638935486994904141887958746667532460559283359295498749538854016661604468752164582906102664378264028505328712045698100274975337248300940230976226527302691556506170047400580094574169129183904933316564258288209103746325858108916986948545516113236728647438617009465412612049640039963564732745639841420308327885948210944764343499449435128266778741999531613502127929066985287858648191898111040515646471985717940492751998237802494144182582136668437296811635557231799645173699290935940303996656161531941959827902477192154170473815962063673966189516323815063011721505182959879988198394689411756973978877210524946443148670420418698743074866064344116705529602879228368381667745014944309886561379538358293720145171157604019280858709335597038703670917762706299387065868770635204201591171153392444015337707554038223007956644540797303426479206020459437337400167992156503925357786993265536093775738735516726780716817746698046851667370160034001517773104651077052587648351357781584881998514672045224345000058949810200011383187550362607816909195889357919713499550331431231133769494169672538860860137630472119353821116402890608235324131984852736582251911695943642283781163871596486313075442462921893931731841726328024719121244804838595348516933906545747136211994381827228620043272514016259018506439191687481853372375271120976250456915289570037480701029774728872947032231068344876041199513038388618147261190236446145953872720906674824911363123801786216813884190427973000121486412113723579436281809449863250558993962410817072113927243709795505397247429180848195643096527067332075898840233325449889616310807129991169037901415665187982283045656154695829140568049019474392153229297857626868157645489346112317143809770270481801142660798584835297826903356355892349476802822112740223822999373207509734895224884807336659767590125515805089713083437646676854572026583388420068124514745361715444799142356576605467614069241200089268902471475408443371929035707678490942709863970567959399392761180952251781928886315490421185584868027050541973510031375163599075555815842736466375274871286616588921002241221006898510739007329957677912075418570680614564695022626820849510486120153263515805427423038335286341327459976036727428796785419430336948933063520788324413318232848739064691904237382704903742618317135974367928332617204331350008474465413850778044067460684038415784759459415128154684661024284235454243299501862454588289465338593915099973416517696769948398075601551679906590007433850810001416094345095504467153750372820776857817909812590855945864522034486885865893656766324686793268309800682639739179591209212702289895644442404047552429613966177624200307485589952283633579119109953388478904492781169460257116884321669703346990429402159842250863164259474201577258636189571175936604928330799772051991733355668650594661802173313501436126465814480742466067649856677211583675531471830134881050065756159330823073752323489562088674158870261312839936367753346879889534881718109813348529159005648184859725666443792017012284272754567472167615930717127802304153720690056688648160645299776575706468236877155392378961370164911194680215462515964018318937322643908413736064963003117409321331118547069015923332312187540445521401804209099425238572835339585411383763865753937948115390741077550374515654068715220176060638195047264620991369832977366499118671273260504249886542643166273674718862786393916802787702517646383992250753381926639904027803258739212046966063332014905128960865690768500711061487806602206747675635982712413198559255454351733245986243581003546421463487249549854908904366863782128052157445056756327504097612284697602802044194542166836268117959013484216480075042663896303720827661589528897353426823879736629935276319123892685416571298012288988521252380793040524545000707470181146820492473732172164697874463833119198431398148394796889624219265731973609235244936843781518126761035811829191335794941624949638990382888836421674508423314999395783040980692365023756828603765534457159194508884065944762236214672018247228620782379041638177220195869440910222457162803342780572453651979801934277482662826867670351045881395220716153133418090764497017671920232381154939256243256987706427675833987519094666412834543407517990295941013095220897888806343468518443355079525911583289649163027308302158746291638836749716253612892198893269243806472874660994428891869857679693921416038674382692779515481955583558994960881502792999994779179728026475074398065051807523681574495511597834156455250272597851980097967503501244397081394196075869928445457823089273068585029696222818155976618482837118798254758988742409506397682331725445235688525052038124586301930498588652390311609016499750802319199024069607335547412333929924875687664360203651864269666509688345302420635240611329485633190346551168007213125112198200664532858691484149854787743732586515347375464629110151434215436082450434858991610361632494916325493738079445300866605279163314676704102659373063840654894100752870890380890985380623862089283764689280263897917877132304787927122689234972931593123525410812478897641835074245949824628387539724026076291498827172899498473594210167016696730940312898676108278628320281117318315552147669532241208128153415727286025933554713500470979265602968963273485732537861715831820934134089956406140315043879437259718655454436026882318382000428148588986623053762834576866474281108099206059952061163306218440925080818347017582714966993565876581094045192643449222922340696216985073419891948657226096825512933905545935132991904723824440417362998544775066357550115304411313820431700887586162264768507135574844485548835741540539643067244431404767298274521359422010419904172090623868467882502634340350378272834626262780162852674863022223253478631662666509732435485024987195583431390059408926966326387439424855339200717835288988223966885129744427436338143391820804146968941199763336768041718561717003410371582139923376586632329487355523438206042271607461687664939881129469183174325947149916931653269119996372073491364791847195315968843288551571819051996548793890636876530405606348309437256302777126643982036388258102670618785911016130267178112605587811112064523111859301906664385799125107528226928447577212552055398165590519299765809819895926954506449166701689484261720280587244009185911156350378346707989706256847009367272784980978858626769578905638719657655994779534116572054581367608475961947614769696387123602803733350829192127906968514588061331072789402820617527333093878014731725202612420257661692420140258111366613524817526896648879722793353625769803028274845517377229509656636997307042164537209641683744464027437498412616984787169513322802060383669514575296001727806710028924600803351491866560672256125073037895953165496414633412108815553963217514237156285852067500732022905394708316068530616732668847755836472551772132507447174633493737802863809624842044097864714074858545837983531191524418358975051897541514071589033950756699350760064584378518986359211123685640371384807664591235072680281061869120976761204036052255340667435949769525625844843355077908433855023379517615737128232782346635105054465372413981225965106100576124819197247948178792407003002822535890434887427245295660500707880899714623631925470677077873266796658213907452434966261587311838367492617498221428066025934771078094145714654718948373932357990790709150225693782548546300244396619027616284798705275180030239640396498868485833523746239022126726566959181360303003965666135559407075571081484137097991426494725379365469029405040475752665939464813085964772990534655319930866108701187109196332883076356719668640391139568535982461390448009078140274977758102907246116090662473177881475522346243510384626044173244145258789797058026025453639437822999500372746801117489361778717508843191576317516654167757512952276401638940601605369250204513594654034798096872157620004646326131808740870455022682596520517920646116855428268484100038365862096043354801309426877224319365340433052486379856924719206155674357011639664234900423818321093533681424018372652734026160195094262623935773627922371468497902837760693819454789116574896905497899826078651521980026929105695515885322012475600449909878168539116277229535912986062771487541044211687760573647527235564056721028209208013747010171336479054666997806725416642584004191935644519278077992948618209682623453365739883968721413182202063877541282519566183181199699949803026101744568556501399602367166566227994838694527706035734334929439131188072399657609658130721275300819450319159296733302313594290758810145412547508051397455180570340037310607594988220903722756462416535552370061345754218098688429993207060186187087456547018388918383006820755736841586306089428199341622024371265115247229477327772992509760975430647595663578175912622783432494619904080176097645626831527877134290732053381038892276762429028992047022332005471270008715093177349397401035908076406386378634122302723564190139764813634804554184851635476534150990861461267856666555773919840133482048722372917953224924847794668095205923226496831255728558778195491469671996662881659025165359276034878456652541687392997780601739053494518422299073345643677051276740726215267485585022309859028343630259214792940912116535951944271617312075639430876061188038560852003988419432748172770901292095098000963123733276772246911322003117231175546355187982749502598294956048145199921712348526882805668515972071672447863683557644266223920327474219406906473074843974113436064241976453931111297487468536121342810396547049830118556996134315579220681887811748483559997765773242618763652283140058479719964765866928798877759526462245556492081970282564501847655314049652281394062491718896919391382090255762379680371652153484144572507520748908524533078863214242860967794259156731664435234283529004174938398419487024859488984081997816055550464836857512627745246675475819754743506167400667601721792136853974038788016395849024410518094246683689889734279590338983062366020899801183557696329287225636768580197750917897538093239900271229216536578378525967615839731560826175115151773323529746081092262630410972365204053345353163187841412942893037370854343137267050051696087437221184325749511118664593494322186559677574140212469328153872251419752161902537016215266853929465696682104000636156807116635848017285065868562793996220854290968121543037186995727171126023923935748217438469319991907358977134532645707136937410526217723320203062778466790620557879873519015831957880852840716637014006496342697921008704365266563389466988744617040679528710606223485805604041183750075455126292014585386745392226088570722199300340986977399398330690311905157259167420827647215923234872544681045098199449274454335937904147531526101372365018959843430205597010010909713244977114067863226315520619380174504523899460834334675298176805462417947122268404129801985949040728606216236481306643554864336873231115102767205537479289913320427930944770092143930352679458698832109085770801474526322747667908661947741418361365355534541684092462904692805486605334343929999039387862335538990305291770901934681750156570617563941962845718982070747182983058568393833101921462703056687371724403919663227743862033054973467863166571634181803150969174133750782848685587574375121314392242461691839021118411143761177170067494835768710483434709685756065903163934672462058357921744833301482359420652451407749040286531142193360945019112990127392338628436721232117566441965345317543972687274955479789159703604878830641329517711642344957886222658270379734401934074890537597206131621123609064525528173056234337623679210734965276682527925699637269008720023361421128131093873088982779050312215571204496460166938191192315541977106607697413759604678711257191141791555090738422441698515919350656117861321536552741788734128709562898404531058135669600072949078833525687293218557637901844553527409614946205438651045211409422038199588291668452882822763455782554164940858856693393768096417640439460105230701800385088885311547539589713695910824494196186116431902025348630359517669820253681724531545727302522696548532034277022967153883764538929141700819691547951340778037297164709235369314859937965898419325765915167545155318399046829488092657160905530266416899089054794710449436782844908836721537182242849215980959775843890778694719659229398690181209828860765216897018595764448940700919486268536057620662170314644374866988769047779547757697131953753412316413122979582416741808713004502219107178650474758965551096051777704775565870207123102961888299022897142225880096921160073577830490034662202931319769918442592605597931121346301786440960286984181278761092732212962380169230236539729343139490709462489432150866764184758370844636456064265687042648822832649432188569300562930540121325052318366399669949879730031263199133520403835787323082677690176291969599479497453210667804171203269029022289367166994849425601793146119804185994365460559738838923158643443350788113940603898583305658946110907650401858896292777121996753596501340434153321850424195771360306368385588137878244054688875034968483832573781632511928213263002228034639042092799246201965740026996616747340101033341080818304157553509983376630578365208599021219964848928148032416605461190681138643839868597366442202527845417241827178952747691824807612646835599039721362456290554178199098100633202638255707648820471980428880398142652634901358095874473023492058875529846878574173338218356742625862548897831674044130123863400645023822662852052681019719547402000257862639822921740703916476292783220991586934659721959172057438744201949934228831550850569770898991025150715720633864738409278073300259959840073580516637359108061633027744816093422554774113278262351299857931305782432498746131485995704960744671044533811771310683786115035707223851643910888707754443000106972058908417634809090420874459053451677216221792744482379818337104192803871817737551302477684915921987880687598846307050605751132272503085688189333043718635625273278417667486640053599928882475842635911633958875668272102825814628579483620721897056741315948086335682433579708371556511140487406078870142786433123457967899470456691068886590915204501915024043347171377968096810274940286685442124976323344320683511768162203322958637216524333033299532883921155123013487135563290372453899435898696235184558723038094104601399630712159568133953914220595548078989150032594214848068311013186994140093675447871063078478038528171358856116116213510835381368057497437556257271794583821793326263322441633076080594099676845093161511494981123709823192347184645593769112745450964768070479510320588970463222604112991799277584463262242207483909488617429579919918473479039071563356414303003880654504492537561741229417706048528658320636617954896971552225679053811760763885605935274889146038980809138977144191550276939024525232938602962371376702124137530114333345523299887660358088541069755159676897755438353817987620022819840670068744421688611380169051220582857291422386018930247331888752178566553146360101921720208948735684469689213308200688680186617184374755684927947915532640361682623983952611907688558716629888006037556805969144016163196534009958811740832717701977648256737154707206085268025161231456164971862988179693860774646318103490429154768505284902588918601379574733494662107253792244816744182240436360967281149840543920416447353752509336706852225917026325455858927129347189199559108316356462632549598967979665143496167031438014857519627916805158375096136183903601909616706381483032325165454254543569270874518383032807268640285886147156156463993119884570005521864431350519041639284829374166129756593174395528185939861786129217078446828903873850419291968601424550451156613896961692539675596802088641273969492994821471186692699360714206608629770687759638382533503434287910675780157124949920997046584533341700127081524740957683484928407595224716826763851610777657966984895272808491744509081623540531322225957478475305437098382800838257228760852592326725031712654986123212420645829201523678100624240995721177111976128529288342300436389534991895927377040574325405519542076788434634515047099964064648115967842484185582063258501912037670151289075301528793926335345259212833895920108428980099178074512269991883790869805583776089427413004855689404868726572096185029427090871789717271953791257978646457751631944971752166706262177244324509527474900953768702093804049711742070834101330518122631826980433065638381578979313630191565360151082762454231555673428589941325199889736656788759180849440337652144383936925256376831834234303182002831556059296025796702890235056416562568695426537168405908475154459016255576697177094302889934766514404703512987285792786547863513602316835110159182684641270375508306669303810773078165671591911167598469702928749564731428075042086969595439316990892808664016747769615309984067112381463468009107039323363541690219554262486554940565905718295612832611778593860664230358189377424893843229636959787492332498593121915558686888978824403283986315442917498377582540431071902653392756604651319691127438308806216305432786967090919817831783541803180122671340554986199257381575966867785485862815234029276549293694445646544428306814825458412217226059533872250532590387448033997575588551745900186787728329214895288754479132175019621586386961184516481898452314688541180067152752082868328335994920520987398341491136445221422174264876917963494907736846149026694127586722072083963995618559708211269091787071094680781275045056397683759043815390153046468401302080263009299852723202127653393477384270773812465242782893106319142881335175497669235059606149213815087955918941587344460528873107905820188204352476386245680092377125084705393787340756526104068860558770068144279474517476202436224783392909693731492619847165236715244069947045587332828312550722373594172170836090481980578166586260924951948824147184536044468372553352220387089697979268304297966965223434987540522961495172451953732921485111632499297605099226606361093467181148645101546797819576840188808706215324689680901634720765813481631077809133711126992887990585270979638947611563865900616052234943490048992657136142629027378403655681228404192742542183359486374901242341889741552628268465123695664042852563819633309603821961733724285381858155076316008584115806093497102898580748607142278812160764501538039976411026049881961917435115926745286387672010636650005712665897001455615890013559692763911395286831778622640177176609668308649708235286923861477182082242511682848584728733505224262627176186034778606314683837739793102348485325613433151250329066949453084851018260771772814648200112376209289101533408926310713278685147020415866489201825382711405675676678436157583417359025243378443074145867743425727450281304722723986618696478670952928051163381536699978287991454705698035057608885600757221502794034561276371390353361698820335106369047231932648786663367780523916568645406156276534844730201343345390691265225220028937077035930906050556635468787326323051713058427986773300920964661790421295326813940575376086750292866514151379978249630566852396279773422505422115168710379768728477944329356729054406479374090900393027938375197332650339928224362228329582175464334441956488923768475766602997056615114816482846841601818558866335959281974708265277897614660957745636555591087360447106178720147930967646509477410363947204588621168298801720514038120008431707490916332239073081192255002793672744493167039925755000372610120429963284256419283296552989514062270578753950880737584400436725347058627422424119027575192255078196103948414744306597977225735354989163032947749930063210277016127454829761258764063505751515092256183253979350355338486178844089191946206498920643127774819899371850222495338514909081294603360303435131574322503875066635919715449420036233055231124124401832879476461605366790813016865327023583563514184918507197101275900711429985695580497581184145122108516330730998610093484429288260785234171371812206870381049657243866209273941019517386069518587342618699178120412155932055624541511823124553357780891500436708658106616306559779381172303010311268214129759181834436890266414189782808797377040306396839427089000122935814796829693493720977388166406303761203234642925583891802117259462616381423686747908594618056179440790536675486666150146536740596755462996273417372537206664058609838924700464340587661292361362779453858599085250796390025698542207207758874781332359347721418938905569632540304048538775699293403245273613475957831117416586226678725919600463012031255959066830080955436537624552728820170953857639391596243270607687889267818396439145371352523442458868336278045937560893226849228047049264546408346581544448084236370773610550472229874787565406044733706870566656969669365170678080932040933551611518930189254835766462263374949219329631618412044075788813068008878347065215939479878584755599088626107954222334726887459976156970568444364508333864726659111821745055500035099697953787543730290031376390019282163818388973140827327438318790887272423992852956922324512164003087308731593291989968940161767273216244442038461870427758068936206425883567594513028634577608400292778281881136974942510640761241566476981373956536041850325294511058498514044942902055386116677909803985511959631925177562195646681057509169152342223205066648399959254671964146255520834181705108515163008630670905738319958425671789975685513494985902332121994257116895261900523239902100606153260066343436650901893268048289531215493797593936787649448684724454801365805646089981730083512227753825768166092762315528555561490616518638893253139192779156015736164926497952242837703227624151951211645400305921237575199444265090887795676541449909156779204347802794915821032710992371664109135368072904239586923990314865311320369378212713543363407875874369618757840913073076986373179344116550422778051501843118483468252290948798063747098770211200036558127436580696305200481207682349845161967507211853266816114109755569982723007013563621620893288400182182841053615195734137134767087903536713572898265838984349531439158708360628182007091009204346368010545869831574745281147705687032580410415710804211467716026063063283422679863086405410673013057453356665559216904107370450491978901246424862331813274072676287512072379697698263003654468158722088834123842408702827307623769726529060348553795424293269971771368476231075091736582877068045564128960569173132241626345347996275400322005376546848903712850491638583091171662314633292880527827833139605329701466999334299107763721305468293191961946293296844499941671432876233218103059651097629521591999224440607012123952012077278102806365624781039501243844446322199944028128581930935174969422494891451562174527894549705595322127323407991533682889283337405001000162059727689173005426073532514841776549228260533233215599021762408957220460955842618941329927116873019690902161108093073156617119061544879193350134840763138492199975749249071325009047661664916939185270533333020447882866784031969416900364959006949829149059948104604394319982552113568990110185196787490286301173689643956646975385282054366603197570354145638989851065890013754740839457156122244251772644871195904375043944204654990029214433803322056457789712494626996291516429528582196622329722368425429714412282268734574600167816258944918935238743654361254975075759001973582975151539577133446943581773678546792842008201260884013218319630654923640631387736181288752702516556645650452650411699338645390370897152257321018068784146159446210020823899272957207731835015646362471276711443070877792706685688755852655696919520152666187974660539481115210835750607153740793713481508384598504020922459464191007565045369405472130458175928562480661972882722905938399228389325484678526429937326995322871632961768896210728361017007914455238151393950291515005374689268246337807666838410713068211469492920420500175700570023454066885064327409002387766176117575689325493753796336256953545643207702879671253843568225365981014701187009014030360954356332780574170475020995193212554785078923067511094199597107235564774025989960764730611283743682643404429576597836007093905343585605758073288174602775300423732116169780328173691738109756568902670717633971329297806422148957977239634484255655363445354633979197986936236754910327720097861290273903294262321212577827525978019905069837873320463552586217589242046020858427480511071196676780378587910611222831662492881058275858732644364268400161050178100718201704622354756944857847615618176325485038523157861868309031857992471676371859548834281730287098844355853438388056533186054542998581794468889944332457063425614337282235171980782444907223001438000098628695905696023544349458183884590666677658711472171745737168203877114876317084826114559467441934708672343784404030053155503486378132374742673838796574125961144700451837643557131609423200167559688460068187364477944134339281904949859708635948023650726129173166514706019851514452833094114359340985433997625926234067042077255680557647438792145744182402120012904177068832398056448814423339274764444380545171631078909301335321564801399826992106911408207043229854138899949442970768595215341861056535757884999706207049502640115588260179746073935320485123797856784143643779998215259809347147699670382432325880544461526566912830010125087879835292204517132947834795630647822677344742748011655980710452275808972362764803404724103298273425480961998606932126455572863748588644634904651218849749887339699198744495208097531099087749274136696990050596529993127094879170118918495414244647768059858118645473890539039782162834738841613615980737151104926374826276351601293171061573450295844919917736192448309556724380649919649166046451377455750615578899001559797876172319010755816654085280195042260658034103337632732609396216664985993433217977312042051247568459987558773994967731017776978983760270768762686498003137566510226715220019577739882814594001259264254552783198443399210284437532784784945834626664389762010718507422782220859036534356556050185010754820439724102050894972528953139605466844729619007733039241577460348250721752119238503489469809953696796687607799876617746280979657750724608784748653981713871922299976264646724897316350564936505258414063777553458984615984108336503247893978006993396655995043427083510784311573792296916921516564990840898077309555071747146140299782452072620820128426897222168598413005894741460193544547613789393076950247384656898699339541760125971559584830812582277454281680063251435708802635198275734598164342418642589449455630823727731579979834072443999411772418990944096584035656812924147489619164728840421587047355728031051559697557862571632330838430697125488339210599426724169388655502142063353586493411911390168714081108683379284800629376581759907295039263531461367283571840277216425613772591337726384168116136149974224956796697265011827742104320441865600661512655668691214904972998465354447240226944805886668884154333822338233037166905633197134127007062378148511296757831463859684126191163725694615539913479113280082537839836092144169763775097014081639409939551144542931613478508919250724584339858807771684541478803192875511865660267309490439888421076116706192635698308901568934781603248559567774207077693603867557908277548273499744295075128381364782231704492038329067708474880855886726213610190154654804405452474638934300221097616347581813819131653555779392217898076990998828752816497898799223013519760153087849166647658567826754354340655593743576561100886631378443161165843259219801389574807492509817778315586107090219354996893018042501334501453002179807334105670517156248161053480276828353964312822775987191643180800925617218440978200809160317632453137524410924129545105319599322667354452580196458197508374208472091176672727392663404584076167262700901471181321196323768702958274190261051200698571397862494754062505799304158672381838791658281786691082806193871432481855723439758759267749221959979638200098158268812248782728735029960318550437633858939057512734799510145163316659573123165276512961493541151409339277106918819754126473135397907162722467011020222721702353064156136211873190456012015580197843335621340762926801965364717967651377327668745834506227761579467209231006491254247191751337759977186499492330216556290498253376904795141165814787295111114896303956737145306421147778353977632121955447457785653088481015822877482650474936552291689177897692499705751073588939865322306033139016027755481571086753961206416490047082778827802125846191011435954359091087684236432840484891657100403839307611487053149959137440037324660682172225701051112317156044105661642108892493270698620290717196814045662845968537735503361351312025904182633508409945040502946571861772574102249692496606150464206575308796654399945367968171064797790988001449761539556928804753811604047918511850618948168747195550128524771224844785546561212679728188499651865364650918212566334238028871456913367798999561489553439488366270981372535648872486740767249763330336734818805384867271708657375538122790917781468457709114206067393392239924170725269273770292437631847769390747400926982473791352401999318939055044597310897884294942238874821579554556681374867121367490267311439653130430192104152992407136591069866406544542112755857062989827452637647330348741780943268257643706222972982347413007464063016358730139031028390770699161563487824588618874964666337381247252720699810835836765073054910213311892542344896052909392545390113104628899849065526197572417554212545883925196500398347934659702109455042092004864574530749356965822082760607494668573577141910904613606374373842286532228067934280923116389593315582207243245544171577583200190990044875961391150960004346850039001723932216155394504781247577469450441547600954286959468768978356032192307428001285342853939499976087079445552941631207538046362465168270723278914118928822599372971858082550915920113183073357530162950602096020909400211561474272158713174582417688663453305038330925538160072959546295899784335919426779034729394862416511192006250659435059574375809150519453811476315624168015306776105427130925890228167773961092420677967160193615497459165254090694722468422938712865417385011928178768180543698261942306782139459128736523012588812954074948022752503999614812876982445053651126480851342520586833053050061995910743637074594923928500806719588652253141751481593714368657381139293153703833140039850287103991523550032380045413417342269162735635387846425941547590053050536421489842689006350218034514438096042688742428683460950542494765639176913564332341606842391771035187389528916692750293894811691963144919830261852920642175043474591684464836262399379869966541152933288472484787908498036654122232223754904837237744565183004071251210670675146952693738990041872214951607775219526584490962195990829509939150919635195336154993574462173652777776955795800282019115895596789877801582104011423631176601976781095536426540921526118030665346013764511070718050675646155139932446089495890485329539753077811106573219975140118872479754431613063588808633682782721612420535251761847366486070194190667366957132867440860685084316530896062836800898581633065875086685840853619516544454053848929552700000241711127277143756309566243592276352803044474826131973906225254136257205448676503452259052384501553901869435035050369284903136900505797543974340197448604058925140936639980525858349925374577364845935798530432717807189891548990112443814987598738190748313335320582165096674105210111018249191193442754070801282557331169112686134165436922124529487551502182797900032827583139273770231420845357386717984152902684441106315333037814365874213803991196658853870641011141388467584142369213225359513434936590021731386144719318822899398448830767129567530531412343392127382476728765795397556347040309305268115910257194920477906129193907207482876369173745154786099098239595426725318808675301967278806316008970598330094029407287900545228200332943504394780035924862902243078264444744897677019368872520158437907959316277275488323011773942158610344826652412748052889596673108355678614487009442432074775351913444467476857573948487845724905965398508333405342064743908895357987229757587072947877709701373861319779052697267196046815408354766562476976649973596713018841952660331094535353946142629346328777670406842510971600026301845764684620330840290913794918902574262408779738307153525516441499100495173593909580033519894215107899965120452417506187267510417539609623520551457667846082557051884619611520466311965651616682408466272635618833623288932540121197171846452320962819869102395877771271187770914294415459669931069721263660163713831879593566586075660716496277898643722296950559357363231890764153497272905478284587317644731537428644365074899732346159378642225755261797364114286186571571451282484782843839067933339397534072827829210976366888949359851875354480452694320230945163293753924125966776786219201983842532873474200972421955478931994042380548998830631123070223546208830420170607792111402788912917210242613500583530117388775850432622292439932715360214532816102089792572121432464826604591004847698395216504347541222056626407952425768246741345728283789677430001908822590873171572279303898613367571133294096295705669420348994195803119206389201487090375009400877373921537392807590096163434333112151255229979891713751385298571119791691524957281797328386040909282542441375248770902971668311000370359935824616807399220783878882396246192927429405012011621357592220946783110004245396684815470393530593846950742365434067609433315281522821535715054049413145588179843692660808092124030700257707289960322328567629324264127152921754850248219000603994680478618467508834507790096238219297700291349015258273819827977740812340168619248075517263048242419235381947489104543356157375062754224492170367288743514571147743689691237990257005120243688319067223747559779687192127117919812421819042297635675079757449095618641137521112974319296732619574381178911361534627325464644685775902158917822339728614442321058914431972420508478803033624694536862330606581738354142581626589058225193971205427483515906030592686283681171628781404043263507037880042493232700397564897460172942258237093413847195845288603598282018716053439902604341186748964419394904322888026393265972342034839135259023651198844308616093252052656256586002644066115158304203039201243415498940041329665585814451996239759418537496602322111618727916453358293725008710347405821308229685835355057680063272833450027725147645222198370463058204758458902847895914945293599374807519674215033413775464599201588932937086124559459863636429468634801363291779365842038999084761528653075147965333305341963104707278595806102106323737531458213455638135849941521485822126889962562690050029694578576606191274792523532979683537749300220191141283486015616191692557422850893491954320882466778513563549676351747923459893128823116384650582432175595925534946072312598846974290195786211783587446568362726203599465179889892184057331127921068025986175751298784313107866539750509040701667675124903175098653580698491487126269332543077184868647069355602540658324538143493155469941862484347375357193662143307110992970063273140573580358818727587788610774635634637915679825508530307215224503827572645402126963802756272801825062570196294878270298831954753042922724618102539609820791204249415863008565491762871261716010937056496015242475320293962910422737737702978670393456787234514738718007906205873368249184582321027386962073944189494179552736053624493272568222530481829969569604812080323377987012888550924806833695538416114588498369900784592056051807931686766581949693681507276686202782797549388443615509967709998925949401296714551266198622488381564866781771026233918502966570967065259032877027042974181748007455338417423439300181880702059978459944108312467697030546822820472423622632381976808671992751231793009454072006761636202776320571919486980607361940632870814899330388047944093678795041290732507540547303171548766522273529208947699557099688611667559195030567366055663944065468405911951280872270951181357305790054353291906224389835078592219898733669536027163393261814884878067900310511888734716921358925516649678689656511344933639251930643305795376952430730659283716228027886747258959400769214117417483840824112204701058132022032612401902540766003125142166525494431685534434071172531033403830093192782981652573579759524686767626035460820298539361129900301664416822824051882858145751045184592452816080061675745799459172270973751686589412649018832375852870060770357465615029752951719165408405505412704210590045244202803553966376825292114741709721099520637225584334179738802446690458195088625196850358053756328326302085880617998020241665833998967674850181422845192169923111501546540790755351509355543846794435530439017745346785554057642154035931016751901247948127345863407897801820329133691656956699023908318472908254230600342086484290686604090984927328261632199219345806011016341749634962899690589521098978080566789357846787054410778083891496355885880277219674037435918208618276770159274731133187849862999929141495132238749480603554721562183377388600304550286541527865041172836128531800757253659726052193423769826095725985541959295970857189263773803355761898186812259148337801998399987904941972405267386214813009788021511205847130846570969647476273382218428149186622907278834052464990498565891207488397095304905824686615238392318877267551061293617758346567233971197315633655399039806069179816350100361256649342173875977089678507036819101050950826314764796357440911913133080212459123227169673092405816031117601403521725642133153006789779056470553593436303947125980921974710761232969789886901972363488627995537896441137326963487236120914041291815816958586903145748666877838468933422526782116877854513308349826628734468460619772167360775994229972383628842749179427841627084503006544497338341498766365935915419667495397645293673902592840356298633781977787440534102560395207957389840955914000996916202135854439118189560754565948544850661433209815380671090874204619856177374900965677907878747339539428021784504380215902870565615624051776154336169333843488926101222600939367628006172614491364358114342147707217967772653300526151736309063226119251564253619163644328977428503998930568084091111399636972279909698835433892730845645808665639417592937979669627184310907074060087613492961841574546620826162738962679825422578914081716016005756804355503056094954238274754598211197637053547964121431973194159055193259896338103933941674040316084014622694755234632026784650918420788028430700842126045658886528961518219855337838970913700927840863722116041249685388355379465027601073029556949861033597573590563946089262506709520531277111488886741679200338931613162611202101992957180941808467703443670361183560413657428728547206205766059678511872399551904576167787015554077233710639405621607281082610974371013361068962625411659225641756383740752813367465927888153832317549811966839552406552297769683109903051253075200648486786270212034345032025008056984595351713913292692751184465101402476582481752967611724689258963126019152566295047566614367781556865797586880743028037876241889725649010144797606620178152818175826258066355368696165843352359181937931132698831768328192655202143647795308035657754008946034078348318925467933301322554366430124479051542905993934893819198144973289990289860869234756020148589188182464578483304355907644998907890451217800559091928029658898551716805469672199528787468454453139183775555525914347181668671005483933169301880049183108823321507032940761791177026194004290739319417399668966734222723333880004365065435105501701553816940447547146959283475568347832535800017298068451771115884406617618344713159582556703028413067536049431620480222660368766099590669810317431829522613957439651947959255513116952461171267817865800128278963434548030324040624725394863028418703882890560822482501198739231168481092474907706409483837498132717390933433832282271135808726550828351270356587859027188279261417994420057765203139254751992425697046403892658317259562924919708490587944596133614668447442079040861285285564723506418747089879212450691309735222711047906366916513754570118815381939824209462735009253767688425243366255622390166087640230815466866260621140922721661907478002502843062178226138553413433709887001907800969853547454130426345503604032769350808388487653778352880646511617245548368626140873490280211794874597594488584714507604365040814286249178063975324183816759532785584500790438293879324362502011931935140122949775545268437689846594800019912933671120852875748461549234208529160692096929529755148322257159915558215387325638534905116265766797761847970747782754245700713004236845727715198599800665854724425480483616326022896067472665968425416109516770720200949380880502507759215999244417298463212684687496167636821361947928114091969363346146795489416681439359146485014388576879341768055654691535784643172717880489008457987068954340315402531267587720948322984326598838020089952913013973442020271290978147586315617160987151023318696294185038259570298042195292423811340609441230871120577358211274491615131674627363540426933255298049386789069120578920620843690092861835098528466389384165843080450834277394549848993237119437384825943194648721794156139390312064054516581812698047435755807029235680297326237355191017525235836113103292019695053310137015531280665491476615902520714284697416776330159468438909850655922018955797508961728384962996121414389338604405486690309569441836061381356037024953242365262286494934416327859814016586134210857276896654302236389703230894292628901111917170977388172964711375282402522124692002318195386450988385568304147305627852076359674599907544242585813552342812163314469182680187688439016126530035053179681334703975620272863123326882910573678904387232950505868098386196892924753411080809507798822613590379165685818266967266124829143967532749316526181437703951302527352369323107091290471014139622658342137331647344283833230685352669894063831534472994306477607422640377460337723983866834912308939214997038722595849015689529169738860607801005583485817258252576815326759063094987470809134064084758203594671069558330679312434070133365944334689916893961709799312037344480696702654414452717599705098818999957879655617281820368818320843583391950843677311096354307414079650062159556847149254640788369305430270223526711486703570177914854817207152069345146816145911556350104941845680244963606752756412007920543350012617087340397665437458485333242062237018150113352173832550359757900409410820909654546150528913612020394230215975514457651073807812177315834379142156967739729923215252192517490356322978617199526113606019828299911976534448528900369190404749315683064214538494951554755166604037214038336878002652643195372838761212964611870742667419657889497608314090827381386948280185488425953540458981046704218541633268281868259828740438259871543851257079673218460206431713702937979535442359331066575184690333440815767878626373023553716099869629036837941243922599560691181432502908227044094502184528239517328266931592373679859683683687831791675497121994077201526384810621731616282078193987715641026486380496836475065176015235401816378065295559607695645977471767992620493625108441562774348782108905139196123101633906865842614743772984997954774135207283844486081395815121275652537884134593047068591945204802071488420003258820489260181257537486234768887225622712169889340683010101719498200648582580590095292363868332624411375805732807296069199218208284304940354081888130565887982572250173235289583633421124608122964278239936506438470060227426962301156962368645186303856928092620758804602414541891665810283691317833253981328500006933664847821556048951268143225363684700865073968892552087067536327774074287581544254430980901749128647130385609559065488787643428659609790464926340273118519184894495888564734709992326807183817270743142299948731871123394348071743534055663847176862866416019154394572294421353125874158301921330549333759828839175914817266935931702324019925551074821374025142612715793642920032727049211913686810719143329400933298556483196343066210779168758992498427461235453621574125365743251225692721859127129944625162517926941917339134431939273104422693972184561917580645191072248107350718226796221257905668272331341180314604718465314514112068333025033963821710009049750439475170832402531329763445270744375974431035180572343650235219369820352022214012037463788452235416492633407990352999758624377919322225103942714755220624092357320465642337403891363328693674831259309778421000720066248562045914814964600000529411763950105529452138278490397433846684813619581578387412365992673373397660579505221430592275432223945338959101730096455332599109027687624967845722608087665432063507263830310471100480392854517706832162923572094119393793490932604933119150905284300095465240623048193402773105020149669760005093174227651858149568237036644160787206255641324344410807623785169789797046622533773385719958009487690938455633867769246726344008046508881153549593740522993120989006854201633663273551822140314576845660449606550567467818613891356819008077073597677571157131600942794110098176274762544091023256319403328876668899403411226095899222091233224921312417761963509370631274145617058068366180787000264734987301930034987437852037295173545946240577667868845734254019706927901285809115458860211316578514420794636285408654482461130370241488152849777650818408062959280891572839477947783468463523202411009790457668434211995514776854644618183172283897726617328786588657659796678814589694013359424027276618597964044260686067506158575381228759619079252857153971771111973378085864735043035632726847876364803167256159707279264458840143870659712910716054711719656693917223579959224428128713773495978191904027744276998522405142375214555468256582243709558627346679326920610814207366238354566291681488352814544482983896291710336511807204312220968617413287691695211606373096111696749180531074024662826271023464485193011815797782060946748000146058983840253490192572970263271043262745162123637090123364790818861036965779692329777310812057294473166866487518359844484010368046040986029656393638132580569991446919538010864947323648009226210850928887183139088178406753534718796676397481558231324942989447958694306851658233112009231011848320005589745961330283138517851368824848364903582253909856440180310662923102336264938460102588407542141408888350910168679973562116489548905692801399285995567976737551843984676341551947794012447106180927160488303177088646138600392390113042642532943688595782288813305522847472402724327266192674763341844099516205543216557172538935810154757425135982210025838484497560244381177198879491604566103310910756158962339591770737094503797675282988735319791110811821790342878655691131893529759842044593211198910092254361384803508396941310512458844209409362921091092000918201832374846503629521285820548021588518623924964653707081753459366438026462472471927873832901230572688690762668705794030908835918781704471514012493977832668127656456752495159119727876642719201293158687184602686894704204859993277962060249153314692229189992948063332461488105907370802255915645466107078914849928224542717428187976011517868265108499955799388694861253263457199223329980289288399570927992641201536363017760731421677129478317905945163346391708353458602910861079028312584523058682266106953707508894110893340035586223636152779573909707145103165179797667127677992185290837919630317694763496554192835377948872553734578946704430637688734235514945077733385991914613430918477506865128104016874776601847504132106044979328980470129002739789620491564486866568293801015380593214081366610484530772326040748326712506622547545600254551034321504682697501665107393306715044952839917207300320706658484516214042118560400560283136365587177344864920911824252715831430295974305349780517646126758334372394370421947048915380227331426063212900830692295643274822259066860866432340435856715595567093089966800798841650436668352498299931836816409776239439819710640355453591344564694444062521561969210508943007112515737063653172112638143758737607854978600391495370152226400102457202557398930405139906390043375751840987275473490159442758830816329358182239953032935195554344481219724266424898015887942968194557587820631931651749639683511197481494869843276644148239600846953245302385258110087891209351251450690200322160792775787611640106839983041866144200484836326116598508592853273818007466620414529560252942417582492141380139609622756758874421591119973977012668690188236868370090941369955972472866114070757908977713765461410703455027515472291022832557496040444892348888960722691968303128107546580827481344316142945863154595159380380197942194970277805955652166646472700440592901676195275820196485679933103824086093707640700710119441455675400786988460336218310653654485378526273754139675459018028290954690438744417804026532454168059724828321516448840019395770044512490816421280721760001031553163522867123555127816931423829543218315861613565122540627272319686125727692058034535676182363152767920070097555828029642527876290108737703412679318887975440010210321950298173473786943087107386853032060280988766959412222006816183521295157550755226478787782673970917000094021301168412227916605263833155711901940565637243622696799707860513412749495069923454414330335403815321355147848527037921841297688134223842305262085815723181966286581807195387001851675948437383654711786440329319982663751905644666149034858505575856054636369051630863605017764317084869760676024777533140508209134338391350350225598981079372364122050281338489809885239986012018631423543484639763086062805479779492139499980135782704211846925631209055035325434294585175115980977890606103658517391655132880572751692130242469883253964279693867460836309709529277928583559478625386430569064706362861239518186155375427992608568743643309410784342618078216198359309149659261009577122430115214609439770586888723827656976382269032607783872034275195250735941732942370695049557935918939789732790567555241069923904427165250128618716743002381402627317451386394772189065001264617370739751026739766490790846720531351985607784980860108449241411280470674127884028654081065894312325582794186166375395146089596493461334664669735441704531747708855520301634887419053939281536427223863985537477681047723958436248236955510510635635218629552878472756828512126280505079732180942962595277922691759800267279248523296756213541516536361233116547905071551430607258035323274799364925301069914724837647742765246078504602955937482574856747582813935072896054296909524485632378988319332402348584701736142567812140405445741892115142874566804709573020434192850523261940273759875666365397466768830890974713972366387144455572414188814374479433247533645890251492210277283285601239873931740555516558723556694940417852849827389983806869662827650670676922560570190488086263028620045371722328623527962731272919320422552605070371740088232491844768106580335553664613727251765220800930205782518579035754584053692300603600472085458418489621552121569967764823278899660944154293168934981028059438524131907190688883960403091214985525172360379330923689835287554630330200085362844107791144768431211486158639533247949640357118502793270066124112057825331463232064305695818666404305486723602609668510672820408319754879237500201619374144095640747139522911879530311041086081911083821143064901121275159512764646666990888843958269627404333388373997878079493412078630927709971778537185661632006953304882790451491765914954382516092550918173660650392675078779709126397544352450325852691503455985836660569614766292858554263501385915590818508868327192161069091275737175934765676564727973880153514478869284280705637607651632265092309812666645012454962275755469873224244183160589621621118794305048826190918044833726877074460986184222454634677153085384229259117173701433369529016775863588803996198257839921144640787932215627145036109651892855783444814986176244581997871686749528127973380169406987785101200211596522874818758673405920014498501132445908637645907638564703095891349877081051212111607626038523820681841814463334527749143708755882658837831498361685738607781068904309248243635152703281591712269121296825481429520220423993206733696991124180534613214777797706630467905691469842931589431679176643614022014638652206928407236497397248578050647618763365093383512425694737359243977950811577432711196952964401113130706385905432508981815519612094169656872150570851116450024962802864640966502556829484869867347833583123361864170739831229414199909849271420891636001488039232141954010064688096187298794765291150501460160447269408343244730924145693259305950622545008771871371808957321875147913243182758073716009300365464685552503770793687411727455993485802299515163874021821540470747416228943286753283762544838626232886118359480096463628437707889598916825101441796366888253187867165635912917674551516596234159625839470989058581572735297954859699640845722620909411080375072116973619798969140624523231693135899961356068260176242146370701995254531324305831950987404924425719166056494232897073746810762835860517007663850695641368895823920806294217695807346127300830659759492675233276993654272629126643804504601871389263696494779781305553118168237940049058663306113280092166383826963124829424819025834509675839292311630213460007734879154559773264799841813019164932627438304531203190708679914847349315299213531777647239290181163017685683362922731112301727487818749746959102068344419045813864658443450140513248803678938388006793286945751357882248774032346989412574004105162941594399996617123467937105488098608013754025263068321934668963533830013094928655367451331861555828507335229904623059672426765129119551508038038818997922164340684976970698373444165007989116984387255593919174037382562639467994883183520353254635586909105499551164483802879151342813338441245059150314886995078567413493683363672792826362089833229733437818170651389678585904331863549761406059684501407828004301663215350086858055079925092613633097520428579206824834024426504740396470284651177307041254421352481424940402731952616967866458009802375077750647367916648563024812655685863462801441544364463183525679484134394710658696871574432760211231623765575275585549082203635620954593562929056754307207430935186053487510213038053236626138204388746857286735573531507793516664965414170712802681995604260930555029290801559749937853942344180475452570122720641130629918695664191890372935931620375534236828221820228311874887373808401916132511724766510098294800400675570517407307885287611969274250981300040802732588760912373754320172315217263117650840063722400961102171227795693111954849715801270206242784956902542189678243951379841803507471528936387050738574177760352435830219639506118058473727669873538830690219234289356387988837446832360477259887219759092246414857209213315291081354626250207919891459793222343897452662637596232834133684973994180656139425336616581822275759635957071668265206306439225491159332621443548592285024676728740388620088369436327512883949871013075192777869779662018678087496691801825397896188451373348035097581526287276861780301857052482435471428439049872319036812909605371315824783525861787019033472143111064000481162204518613136284461254814992149741666620535548954924926558927160768255281964659762451563288854472847574129274672240763749116050989741005007905507789035252769117822760289539864971083535219620791596685960234309609350645062470713057226169483286647822247848844966433258056367982228739096296754607433095497815202026760883514021614253958785065679213438136488616635297363060015649213182943760968059870092004980727892775456768032046422449228154438330902635714250884819609211204811308926873484007826399218774511490287133241984712619251562867158271097510033433002737590380727626310997537857872470303775012916461043719053553336885947153619750445800403263570519351719795966589175157143287731904286277250476115794940377151387645156847969504011569509359286080313542000851871494208888535651203347967870409542940768812535785872057719366621104398734660425853961404209009719382828766647162359645524999112198836263864578038938502120885349524962573872180303929679399975257366834523224124322966367333624104773753951370295547890240553007153915923679409184138251107682832414538752198225658814559390229851719838049358898898284174091507830500162111411972798765129384479453487635980762046002675120245492091820006610187399352629965644372465228084961431239239915385149296154541080709314027347779970763469972644607891958049104378542777821132634761036931656950431497131108440085139141278275811586702058349832774404976273957232611079512412885500869789280260218236239336181443235758087894646639819931299209691702180325909207146005157794564767385831290557001729809386360674313202312637688364412700390309083623089280631724512995976421566016066239115681657791299171018284322483539688914625223098685533075872268187274753446637700671843202607773546365101678406935321553249272624047933544202030876850282344756024325916707533636759229068769507679162090573825632570171919517561523790066949275684250470181636866247036014599625477650311568402946260436418719159164425506409768806351371682684321444671046994923874119955484011874355694805726732768830738222728721261485898862172492264123906319490679625331777539030726040120398470630347184608344389002470526360218655308888251024561659756026411751901134942328610119833539209854300159231621291653730954216338227901968569875104312662049215700962195153094509467935776415626283331587101947321902525800863691731832102215977349538262386279932216287598444838006706789452294736897072147941176259086971333976082676073306549957312280616893423189753780586772362389969753159488769645869733854974538124099019495935601768152520033201774876370842085562556788834021386847327875797971871454626708681633716906395855991845190780950946213008311025339021942068901459798024067953277786191446882475847710627725266795140951748323550962951058220444993093720470383748502208228442485832772376063097821710828940831584356754922451547524010996621555177533288510376503928166026120523414898073852641101188171216635416119071061507686672627091693623884703393365576835222425841703819742948444327659267957517434248769535177445281365163398309708730757757101662696970879491504300458341239381694934624778032814220882845277862383260925314235888131311852458481315800199642785426554461479432410392743938152037195911585572573028523646758571816798433799157672340529944207060222497132416424719665106457116598298725731925008248095979054123099506560779749026296470393978631999395510561978153782559357808655073846898824665944926317205468714542608978152603112254358918450790530308114326128130646363736459317531084121940322641528063785144918393227300667782282474216558218967929073127251684323448344571663946053578365816883598295577276295822280461452490964685499388813630012227118511525431043547830208015928292821224117635847152766979369667390130767417879736526272571977024030502530970435253121290174639704225235952073920008911289473968651032114822666347141983073085468663395371696494674874439115155667745821833450692185276537215183527236029892697847657807904696349077816339748664286182310414493798855394080099751584460012333466160155057373120922643667733909107674894049476433218695181219608322720289680208675901329339506860636051254288051298663864457637165928591814500242385963985495030838558314115952856156355001410837686534842543343793419979141560374342041734067195216411863561792653114229488751196446654634309403271881882405097267162493499992906953056721104150432472751869737796668078356468290880064622836443842986470888892734974329738931619339141588078537554058045691327168734874390314283985741703626023249213630352066536064427503855207876027439407797209705398561526671565336032060871635069255994950557443130084518932792751201276800118100776015197975584694579481173386488004784609292202885351421967936098385517640990665005578745603470744288289137280082517966928773214086767320554732805798782968562011313517578018016359267637489637451415727704297026954352917860324640221808381603553912726560103949166753275887734233985782121445099836283267560146111456805566071487707039108144540973282529014172183540065306697081016448035831434032201579009355094267886287627609180540666377299755623913522396741107822296476601123736146309213086257570024580541548009866812667239894153969241046630011332465561462766784921223859697689375582992159145613364162886024038969181385248916768730918115401947678354096001089489577551832772674181510523790264104459976511253345601696382519096774637078559908139878070949797127909206156180815597250613731257445377755067658942999921193678391230416071658417261538757591284636582772391967704327877510499858670073311974277739823752996273721459263088667140918352797241072123818365048867027673548878473093049174505384991184899617423307488213305899181760842934801163042416202453201449581452123226209116475596294071640649841364199112034915229218001131490542271932125357138976439752377311041325279307846605710815323188333931235050922692120349205184921173525823933489810624574905777545392286854620587579318492230251697179995634423446154076153551012058109710872442332239260097711369858363440635470840420437679783373958984310731801472819758081901408594406729626044494804213218421520172654761924208890880944498062996944970487733110837658569675164758830513656977274898718151763089747816964542005135448510335727415500257852660207528926853800630564772075467440557231296084377280035774027046091986149695823171619808679503754900035807692154200003313622476869656856004740706801379258015542094261820190000875289725311418996653377759520123870603109039987303926307174849308151335300421502540022649635194259223303617337277945692156490335218841272735194939627990362031624566204736607044009091091297129781939375901317611413778218765937024160066616429595190883315408498412617361889824311345177567565670734960219357634639799618360503394837508686025435351543197616578003268257200248065709001928245734993147980382008812115033075199997109500090938785836467837321939331960635180292399528472639428050906251424582535316255484611069375643034419100530201082420597120964458133454001067440468378491584631800256365589472434985138611015369627756077755762086073482780642166517902583216442260926337326267339339714353409738328809364298296140839943975462653701967999358416384550608203173520100648184941496666961345215891549868274601250133455630808480817609679620626228441703274972469194225941829002215977538022128472868041269516824563433611599568256493554073159087831608480936043951949232890131171597791224392184959592193690662241936457823172472186377019159558897299452291151088454015564071831653729695666678112511835476550737540424145538007797298893719189501145455753904713475114371359444713879753398959989926260414807238627507205850439201908400953925881869556743206026868636429653189584997039193959709503317952788274489204297387881382222126435563554050819459401058502976872454255383532040597689056295737740537039996117044043585748545882241734729423920333690398285473248759291805180227081469616116489986956308272126021179352598946857591269954232541732109663829753993146678369365761379254833707058808823224944764734823229741878008446688384137240469348037618085592712533511153184149581766314444818720827447866799403837325385609140948977739068993606585963653541246946905296627622859841583577700447821763312437691453782155006480434205908031132530207516556530307636042392987428614690738308449047876124446709091556809900732200111917154723828652062212571444452085267429307065547046756470827342586591819894955853534530324340720826480893638956340606353159825556251660122768358556278751020105532865330321096166114512648262954677210208829012734246387164698211884933941880096090518390996722628638878653417556604234136806844448978097273375920525025033699606494098127463951224397748374010067544630206196979932772086222901738229112575533903680689675193312114027432593105863717516640984341431133985590984910498333896045997419284051308976674380867865025501373465433884891267250799502866562413690470455785805514488798480608277667405987405845078129913472996890891706291622031071108569039737400361309867117552018602251945164263724234789801703241463756318674147215591361074902974517593746237717374341646315988705934012257943463306993807569888932626607575570297326645961197438686781148696924236864822292324301889087698909545931559349624023876190920330891019359674138706589764803217389921326803581438684215598299079579927357199068427639574466968050100039652027289064733031950075080138277003308533592858085612570172605823189828493690056505017071113471754146390430623679097899046870802151196448403758339519681805966126180342389787845743969583955245060051678398522455531648613122982806169684799401195223315515724696862865187973068722520327045847027115752263791153265220670933995252233649814299791246533953067808174342600959733447516449095328533766199721334917253999226102210154820065096823054035273175106374745084638750872806410447199276718166809099271306322696473284529453401418748537023375961858337759770098769946342023762720194058900986666774324596223181123945609997907626860939000273401672632864887306675344097164063775927948344180293098773134622006787837298114631150643159108793169794350468934095122870145090339028832440130583349864058743726067537538365875492204947226239053759747718620437007011914912363661051378459239754199229790405626666724029045802051698647066951029259174306563456934049943025611184772902655746191773615094555845084050070175549094665679707490879202818873178066429425316054961856250646719901793333693419016180468356240771675787201070571026844610977156962615737557801765086471403685149520868706143966597767290457523219940764694650340501989117993664718172399953768604412016669064655862163763274143339838389788270811776558136915813531065267358783492335275679410950094024939901299961778731929464339973806956048304484630078369443059035614335189869200281049358063989313945403831558156481954229619479044089428711020455978961779425477347140569503642828687333375328158099642125253132093483170732306744661160271211415935688409635533558147002224931198668351207847086466925926805483564884867926586294267654175184354062624379253638788999905828244980109693355635395383979856836392284331678121948718320252785392242846915622271796689214939715807860807198949861793604678646724049301185176277918015711804970257495758619379307410420843530291995542394762741067506460432853678385382868867660268588152846204871039472025266834374836580485761141686782129164677025819795473032151921698712750610100087003853622480238258047003749354235018878701214165738180789244079310770492545044089296354294337959083478724939530041112682255492230956122194841367923858987480424531606362992989384235011948347947656638780316539872601027651512260107328494316588248815335210831250993128863328491155120190163548993584691958327902477345314401302143866361856196420462472794361264030701237202953321977004135773181638350679545099840386382059371105519422698063011817088179130285694543438443356649948870145292629524217606735708909328710481515020720866448501685712101618449807242115763919653311763424670503014359267417000577483682456222113905807887376104473611218801181023932843590366354797557074217477677107588427886896128209691164364390116752291573978969295062862345250764584577610473900608896895279328694925719950652199320013675401909139852383569798616096357388306446160441370577406408717301509234532831906532266181781402689929112447595111653000744663389411207253614856931662611454871709637768074802736194379322517594339384850194763227995016689587238078379744661632525341149535333935647515181568646878661767470735075223313725792971930828194041539667985741107374800110188656964570823400881753340635202738288504291521820817344457252077352743745991686828226720995778413489897564012314887522519288453112898768308946178453517946143682321207459966101225400280321964419937966073050871621704791165651394965191674162647634883764869634165772428349184693631342257337587496036004312705713746416161588090518479738228478606302768606123191185591283245982766537297887807302969715396899178645678271524552637901198142483434398143391097523215118197369701628931616262651732425139764870691833799413910836597978104330497046302081234906453053843007812909951834992572326530656765064582849946796960732769218681512640157432270621610862945569229001998176790290242232994788288890194501073708732401562520730910771341676342630561672883211035864445833284477861800577668059183168515044146775972943483598338019129631052556941559363206882806993892508179826350066488054728165926533734356105070093709404459236642845700229137346415534921323044535735785528326646957083084464433626270857987616237558045141597345249433847877454398357957645637876021033593920547787167653587874555231955213788887648669364732689803212180178366933654701294100582254980191211244129901997180265231706272404317309819081749673742752560463479230406691144354345126203345032090416278688327214851589911799334084449448465032207250888533340671838550340835982252181864645279530998222472270927586053629381067360590622993554453948568812830389856104899749993099815268277948533682295078608369141845093865558533708211562056590665971074704445474480679147322149790855698022310453285684330170261141445797233330165566228733643185874666951321657883600620644065399763540573755715024196551847458365387458436375511089525658306670022133666136023031880753471983243195036578184217331190401261252876481122929067952501057438807509182170291211178328026999196692838785531921876304078389924707102192569171397269479810777075679437722344380175135834127805787177105877884538048291246494472825325938597805063951628276550458797376256718953797204018503604653098796909770406960703938396243350260251386926126879205152620397909860548424180847325486095006762401986682247097874491400578888252521631588513747741195427970544904409648606505715783474051663839247834591459053583843548127146566338459760369237532335589962233448974863759901594251575106271479647774173779441221972932275882638688775732294972464185932688354916999105227209185919109582537611360904807599203727599477921930942752472143335188843905416966467671682408899543355424237980857639124013807653904459298215969035995670253457871167819308432984162368176217861294289915840556830125907998820005280865136061758869686747008828605836291926158808527682901663273479379683675723079116483747873213512621025462957789209794955571434254988611184382007851884633628998597031579826736183396082027163582217132914398116417937440292385394202922678486259904022248551082131183915500775155922915373651502558018131910671565313636314721667958416626347965795467814193113983712642981524727672313592144641585593227794463240491400448477981622698325796863000171841550418064872151693848387057578217674205574308490400858432249249405044284087235062911803185252042770546314307453846458795416427908873636926431756227462985185198706253458286558429951634197127178878759032650265464140800772145955857843919536425064438201540207596910525402374098448845142184092231086769840845820789345298119887470080714975291467241755968472693497939288375180215158246869646333268866904016829596906690932678605647793564016421809344779430312645366835800380245533778182461288726610747376885904775896726425972389465231222373313831669811982583051022295977591954512116648035324483045083927808311302343021403797504897577923596331118759059043659502986093924183226031406548583890043718561416831755127154679208080591350050349140757459854573935993249571627795130521604211063777714838931797411197791668814297981375425545760436559436127652994222919183974975027212011820348923572123712246691830679843119036760648518296004411550294169267515946529709078431719236997308097172270873770785741717165809153556209812467050932568179297547280956570696558092382796662293930240968426949605748604082052997732678465393820660867955269250541149106949871738105776781241350254902035465849845914847432151001350856828743355723617457759962069795276834956776478564663494658103006829909730283384474668993463989501613360599185320435177561630686709906846641879493534113981745006727607697433994614511668603206842155682202280893792232565137337693232212783670770528418290168608171482670517448619545184105440738220242677463574213608444133151869990315638496048240464252206499060323381527372095787486312515259739240701965405183434955024195266657884183193660467889752045116551979577043360699276208049225577157897557548070168051565911517913916292278415530896754528645156260649080471160710570648862025317655498117614149920828701403600325978240529963750800298435113649984582166875536671166269316861910502523733861212662922736118006228663215786369038617224865650302589321482265528129758637758412935149343746069724994383609999958013408290009025210501208747126948674701343648122855366904273816766409078862195826619849355260770715691013015457932285180462926566479503033593190671542247260500438349090540342338605179568520494742008780191747119712637668673104202595297049338822238526012930747038086458479244688551961354578592004016787648300435957690494286586679413244113282338384114062363517115257849607715996645416702777592155353391009180467368072241981445229549523868777987850501291301487516158128580174701114690764023668047270320796541140693875666153657623814047998963302329827691421157276022843289930440869161601254515810590104612386580269511192783901499707833128463264505139611540170792724736193580655865277295469346595855952796966969484730935152294098047602789414721818486352616240011707914296349256620969223356451091660181761130010097097556503535266715561291932915392405908750673847087155382405106621424986708479655312341533150686187499382998960848632983581739976461291609800837802040300062212189750256991009871808292813067902960420048400988726587863293078037156209115635059089825806837151530860417245619414416951587944102644251757714941269879707747999780540320578683166331498995927062072429533046994188483384636619018016316699488810745504604304241654274227667396103369249818099047202985258758949529038727511297325448485042526147443429507712701385411797367857096917146668969755664901051322652567232472680317616305060904211638823635288411872677543415793697389247918420127423847858724599025159395836243198570496407136018956114297666042736791430829828446829671040066148229074614270683925611995340620875639066325175104317199342186920437974596802936703543295634665942867632124753088179203647361502540818641540175337394714210380747833842198320151851659749031486803743691142498966073169236000775530344979872485226133048339119913935200019370443314915542343208557364339475570328393002897261900662708846972080646540068938496480266099866526829544574020472959192889763911492307486051350418909350779199339169945124264040583950210846330080789237224493528203335528695958913090296384803949567858368224721597734384268981798567273793390502952538306915326341508580674297944655594763062873693141831181314812006158138844492003380979225019393260898772602424784056259237404705402818576093499648754065571507680321072856519853867855438222385004952123359115689410123663414538960544247784165424032207030499079402460677211336497281178384649205250535184716107773567745024946476006305169157808705486689210760365996720464416710440024130595425946820044833980384717074934572396575205540522241745991266516824075863146910917284003315977547566010112109481312972811228837742055806475275552255241706697764513966209980725903196742148440257560917754844122867947822887998488057046194476669081897590468163709976800572881828123219044816624852038078528771937757976657996849942806826670368208997563793951336069884329791341758075190336055638631380687762279339457075408552692071938700024796722666903287503253479926283473966005429846592289489471050498953010803953019216025668527678959494476079934969707912658760492674165127702030014287783139509132568405379050994326415977386639325656364712313793592760553869771758451830870675331883568160069866842418309400651801542315636933427242469626883178248456824500396107664013552937300037850749197057080308943211983921456704727625605092427908962278194099148432494116427604306486161651352594149567263137784663458949548022158656727660355632684036933373143816877183933091593427440169305396132801633950070649595550656256939600174943453888666272420559482111789092469166164978613479405859544986298089182265603977372484139031672302328349228786501742923852524065308013178600827405068431115742811335295293493694452372241549105209764444819158524880054621271632600486756398561887828283641954929668450912099518209299605438191788689099219934528986786981169936970211124527036754789390493738181367904488275799726408880616533579116567467716976569501559941232101181958375687031264487602280335411435596643710070174251554558738971286860136784034580907772935324875416827093682858901635048010327174739754236296364093321619338040050082404285768553970677521880886513212077703757326667640005432104897766483267294046310522787762346211107039542882758307931119059799392711705019837822941380485789179642495934356078326214106241642848087466833928137850922818735241606854302561483250441895950775729436302991582716260763070301701055179068485779676922540760526722007212264144349065513652750603307083842219190451803325005479089698660148739849244302771839966520898606362923972772942797343772107214187125393148651759694437683336777541477222434961769451434812597655962075878579417220012909423074796796517377207699404953272595629772808050884667895469937786491175389423836888103970176223591860520737677774825705603111767481425841778070693311507057568193927675165663829989821751858181010040152355870768215862400124757063775948843492315042053426122559536935751245507991412382663330452535786627306793004896049259933206029769082301911029153149367883866315819885025683719842310487837750343345493137341784546463474376614197589004493097032820354987583029925480079527070748777086155960522186893388383389291867678894228422183464991685120979694634836277403560241436081425202750448267387139418157524671678909543559084250666657103349440368008749730461420193871171216199555769102171022647719438416719351292808932182121522354628421919383488476121229953912268692441495308923523280049899484753399452559385809463213487150944593311173290363951702737168995724017896179225657371218021205331300445370139711879389501681352144042657094246364491417634243933866576438374703811771485621649308625233286108542721101336251215447165526774344373248611397127630899287557256675483038750759846273765844840087512917599974892073351545721195006847058199849278077412750144514590867748124002510681208113466488248826950663827769254002128382166039116795740885096125776173210647337192145598795099278460263154862550579191846495762559931280391554369644736054100577014708377806000701724099759469853767537466003690998930527695492832001195391688401489587988515938294934048837589149138967969686021907739474503280362439112343821337142352377757817212184468658541471566480846909132263076298117392933655518644677827885442611231661649381432208818433459823884998485971930014210298141075148735446740548613290655786655867684946795930253954548744586542171693371762053953480366505715347793856452480679077144444173323484248678723489011873267386972871555175443603512872402339986440327230353171633467687543056510288993897769719982157469390226560812507202944411848437333180130907674795823558103720565280237792977638055293235583571992573715599070693271633019809738425861573845782909101211403216534471902199925288942035093928075924725416026671113859809307863293406263522697130798813745298244474942075564860853146459474853172893588811970786129574533405098515295756511295909017240427383796091705127684343626903987824383388061435692536111467621584547637448015109679975503316611855600798732089902604228387142130650631495189508062637805931813831554652558653530025935560458819319303749424370747189216492026696926221942697812709353528106705469086513754343143164584474369658422410278678983126338888832635671748618803129832024159174573864795866930190820241656023432169628901772318186473357520687220293765601288632674589119192153592587290401725946217539627773341797388479407724373316399750107020984495674060149906294136939807520764108268066912916580509349653849903222487369445205932450807412566355905605292233680592073689596350849858665395748649827475974613758137553856909734347506498230864325850729594181596710208762695020818361942542867687176113655742135010551418577242859977614573907383207078321771957988212667579200508182574780193013489353608003083116182362583831322098567620786387399427457190822242895141937795615923956700694239911042508263456751677723601737845860619041289283482070102473524282696964586810241380048218931132860283382664673539538563448377930645953941145365486439465294480371846628444265772187457967077021751220182188152937193099060298485112218724002393727068711098426070387015043853094173825637966395115394332732189824884693039020516246269879727512249600059220181610933205568018033837065715396994102414059852191816993833725704535274613040610747692756680885790193367413946383096197724770202294592684040585320167766290013406439730998219905377462485664454056869444251377537225672318323235691175710993369134699651365507944545263184442460306452851928282916221288029116461545666574466021085296809008854588749080021317597306113307874219729350032948966173227723836985151465862916502058860019641843549504146789491752136828092960798716850885816798391561908855112049275880656871890789814723691021829966784413261660075509526125867960489285260670972272420795213985120040309968485465334099448219205809198213097691419901346108742375227443120364406821189454820679397747384485901869447461081063759288364745823182399364580690445195084949489253383441590134124094893197980891530351202574381938887821393997544321832810501916730692081529185684934477218840310125130246274819229398826552290508984018098769276295765838555455298963753174355731462511202578825137492797824821248930903260534995807236077296876044461803364731973586118351675839516653334885886640286609614794282252214120218524274163154326273448790812376361854997217799457437945924166965495552676137069218043124987365378934826980132750736756898749264791600053662040019780339167684308852539617055720895588652394939983151383655341741689096777603688624708562844705160532791057042265328902862151519851250081998816224044369080718785679490380891003723922579974362825575872611745678575747184433924711852833655602673015269200054286622050205810446081667599857138795617101748853003193423765490089457925080774070335472699837402696035147640828302402695132074315930065516628034627169744277305705184458399565501041214659044731489261511216199069814703517805372983137890266828691833036420909050815930207910844480729213489370243072856518742860927120320099953690181947601653648971013264224617997833937890720336697427305081997027918136087372643029425051895170441035830611550052367158651629137508355695019376808888922187936059537611640124843845154988454830666951122566241302853545695504691059264522022295880982556448381501264639811231516334816241384921571166001322893749691286212171664596819501359725441862144478349581556141998354840626180116554101021803839707860425281461989694380556771083567260418268409799657724730913723370256727795727728836553177102877912101166978387251676583658871123997501808714743967268319891219492938706941375540655819149943268750389801354384681888662586903557879645714697428497461629439687782305428286371491817897451137006108320314913228792527165632078525128925635298362687930216381421191804377244655038021201108832759735760405666382571152337336159655613076208946129419533802406271127135419402474516538890124030038824695032001104618709749889875354506220352390070621620080985560374908904032990741641230491483070081727044172153673622411557401982257015003798174067097032395882726974049171591958827494010000155391286510227883221473441882027632347695218347644827324216700046919001164761347762102241636276702090599103042034476515560233237136081170514890143124121306300614273094918772719827366152186309807446843493157160882803288584086104444333172375324648049525244665919992820295194252431083858238862986732199210728509119856241426541141985856688251848017124764996354478274894791424039877524714915759366466715138561299118382196526261089134106642002219301429677682875089587978160467126177520738638773438203904754006960097881446047328599010589678974990626679746446736922434778801825916065600842162760436240592501950477495761874143776126333139644320036801029998746808040712294864217522604053277031399653288339990359563702319021085077993130336497811289984096250605082173775457916531757833787482718159127878733728711648661151540440271712182293909220499555315642915014355467950805276300244631203480674052032300485365750806463156627366582634107466368098437886572681312542683021428750142419259157338563377860858571688258250965732431881125685105869458842937223889919187483897964352313709730223818826197135254604895098474583220089634965583351505306358177051028188711174381669161263508369907157056482815834893058900529561208430389332762454814931214580383989647231544808309828215276174612334779462252202962339102212425959053743565117562635517213827965802317071031843743363775757562903139709070100673699984237060721463750513859803948734021205785266800830423049984879851368355659843889895006696024737645861466609152274028878754274546931835803205397152031148663900750311156906316200502911231311889236563296905914530587990307765711786493127375243753123971730739846869774386238784240303381850368845844257534249094989789364852389828375031897352028539496571680506943329558553705957589915029841783541135184324997089437844394751925112338045799523592101023208132864905497608051695913222973211280037645145641203883650625468540374063971330067662754924832891038147971189496697679120158268376464946604890794358628361706622387127710930916135701927814320288123270973201095282997358633663631208731867067822977358167893800175473149602441167354710210510121625011806618289196271166261557327369468698534324583256818949134635414844397701440103505177451313493373457021420669026047714839685847627650868616645592651147450302062962634679258904542545328731683443454064287884613457011791548708462376802486177018148015862391547770252989885596022907936080901185471511389410539347548419077025449955692404858911454818094693606910716079277662927511449343351408066810100331820239771212897270391080783117028159255869541101973578493067554819704541912374030928327532878959491524232759942746195799325381815338555731673101182754561200137457295230554489610060549468575131966644881748629750677079230093215329512236225558944381306113225649560301040599800978280381469651824410183375170945969466578370102072709528716181638397590536495780491551642535374625883147404581466005272187611514182657200609015632734284595526946431430579819773732797500150212599802997209693785987582543527639008470587039629812200360374263956401741534154668436653228038221063828220112123240177724866012992725449153646369737023169219186423210388680810273885104971060525528589963586466161222291019230902404391681892931201877268965806082990384244168019011279617744810972322110239678420974972868914296204677438096474109001916115750459020909804741300432162762232863781619547018136852705151482552920803209681895591659283610481618028123104824195637689106529453649917456217087048814339120180844591452384869507504990799040444971213281980949475563462934577017674545201661962780137391127758519824741901799174368303509662828280685663965564131136715607991302368187576081230863707657941268852860473328737181155269813305958166009312470440753447582173022045693977468850878375689871000841682152761025345635730658616330939133593878048273348636757466009916188796555740468748640174375994046083283902207625099030680315780076675497246769841343721878804001820080021899783761738446598257621536735764362678012314916494517947287025556289951235701493432418084469659724031957382963992692050694700063732535052739795661344401552831468765084771157593835676017905584294284044541378724837951597052563944499430650800060526321249434716545157465601852709942302398859781704690763600933497421701603123375917460099183273580939647370357540241538312704925477138790803157735187666896852095139874300539428317730703706722744592148971265680317484736611792839407623113950502134092347825382528636329852916238659607830570476191906509505735779752270130965769280710580254724646553368336401171970329629285601336882936271932893464112139962220576837923131733209147606048922312533664015882578977718286824932854626381669011607117224102494551151306454100060239455177750752407739455306046033353227937294721697594148222998573150120112029886662653150299911448229739101423261955728276171271510586134681941678256104109169266199413935009500629322984973323691991865433155292330474875446191816155235281876799746862180438376814562483723691147251422722323320428054123122895306585966403102222777243129805787550738823715032243927450605723839702781792131464972451515194399753040708845309635375308175204037970993022269788289805676568121431636008460522895368332301449062776804849481227431136831116953531413460287032892147152886593993607530571814457386215838980642254854427017409694070619904311894296445477306595370498766739205416881009925304889395729582547414905720932486789237753720775940640262577675579609139361459269713771018752361742566867497674593346763493236041026893333363585052151040325681695379030960650676174874257251544093402718110922760924320946677536319156318981555873578851168207325010915417690454739308152756694650644540151366456097823266778697724172745095085960783629459994786698349048035431011347019260301393069205382933237017270643035534599516100145337450097337616091458142240604320613086137295411445106598620213484615358668217404564982538464681917813158716140336225969804894116780966758090449191378095588001497616755858938362834629163299018461173045746209974331736964099806132348188824277822909467845107716241588675465217857975804801632283490218401521179529255432748802468810117399138913725324221765745238653186900479620406015119381850434369912037672669390295677804102930049219572516443620558514561575465233386034621316674565517428433188564206599238859223519099791428524446711886698890915635010887270118610303156349537789982492333012317042877563634567510079909834385234896410761241080765993067317640347211546442239000394053053574638408409011068591000464123955213856744277478650958180561348103527811059602484003706830155435277373972289156234052394881997520975716135887383889549241718197476888411475364054956308061581420433325316357500934903189644891356330469081884270740780155543392159509895870914902531846657617745926632798533277214781992827954757123842721903635975200805167785480697080231590052907465272728058071361917350565041229023902778547735809933422125368736750297791524212704369353150576811620436552152008970477429891288730933658952103386354526725121571600073050278916494659563226303119074859855384596282392644339936717285655435533610915139434104431869242599629358075599481440465412812327175291066437655249233558654664278831885497340478601754418959633506441839565204262891800842738856112459750812447178437205586229714134498198134653009103190093008682462028604268489307978650709890974128056094080221717760359107514848031437224964715815850245086437842419811963620547073224684650225773556881438820258579208261482498892365511403352780960126334766596718893541325898406145721633700203158968695438396527376294848293233653521351663499743330395551702241365743481119329318095473299234205189698075146701677974574457566437527956540934402997350156105077806806068952429807036523961442781486453021640950071798813193136824660864442599807877779057130769856235445365803497288576660678114620384894352054035562165445222425887449873747937309087680122740822523266304892334873342062656699304714321822952922953128198261767131904716160604652791380994630976096235657851706064270357653768136773112299141710265903466992108447124181842034955552743326001223718239395651167749727204540776841132468952824790445836243429122249065672276004647408477882664379414241688445065433032714802781272052822243330968170752812055705047495355541055072510046864331208489304052564824963607683638008749187202640863268104921395926325242613649794797204144253330291463788627591100968394158707601770365035797889383382824814911853796435650369488015435273840537092389023432977173843386868601664315863947820058182155095952654919955402156181325165035633268087201481042820623935235881003790133965358046690941937024833854623683187524067484318143562610562731447440373762453254203127321313321632610735297084136025328275489766073383199582452096577753634395411408546860260448825496780836275281372286573692913191526780962247082573379618319964078120510777830055996408291727937429579875035380514624520067238910851878762086836115173705907222282060903419802742970855700355932458613803576301756053284017224035786916161516211117488924013355442873186463341907233497987454083636718856416425573368632643731621001626516777371382447596670540808670492456461389448205562234196239230632077174660759523287778853362895983962552843817110840839427764761775274092818775142000136182899008852347637346104381197398610892034295810913208437328380364342757556444761574784916269693714952072043219493040096786842790982377425742628299681382124551417570424211000742945816417885437088054386346474705863712398939008820776279260301368970272891195599095703540845032622895975792553178178832241364446707295009893330902315456954776966351471584339426550223246410696079011879624265140967586389499554731571908376486306827689229811785368429738865202559764233644131773096580110599736111720580499240289784777776249208771831682032801206710953920467515606970673527607976808186591249812608599811965743677905036985768051211520282989106736731382365354712223965398381760295599438265779471522005307793315325160569963887085691521677885865104125476881506787485640785592243804686217283340600995499140705600984044101525642540390534176843640020218748679950945838883527756986248916006711957633033162297598492342915202566002003728561370293731633565564237209861761305409396604298790457097104666071826288082447283375017746987994406899465280116257163018264467365299893970563219387200021461248356296345750289845253821871007233409446085930520064786342501209241131306913026830572070373641007633708283977334536553926487962903983127413172188847575975610087327287649137527542762435548340409067443873185106409571054171084331631637871982956827539839683093910433709244512430985657267189050278037570573486630732069986365314352272370924698300443712357233670942252372100398680711187965394578791708794186327108869743630793902372362441376660327528404097676215493222745063706657592718018253504630143899418197821589905039707342658479000512789632794134037270120215049245953214776127834450892004749062743284468149974155260603283058992764291998348836683109966651429319736855756195551282571506504980122106288345660322636507593672470888638528640394794197960222112741073632967172020650149809016810501285880829852445615449876987032382044539774749157405565093478630080389899710650663884469823405344049692044355568682131024244166198484591027308294845885870912643150533819370897006865528604969080099042505192679209781587276115738879477232390030890184161573216480026777969586518751060751161924637995841515882632244568988258220795570012940973543343487347459354351009427991931184276839055067989224463362285723668644851712580149252007184661430256167479355617639635972751775164496516195802744646336500376976404294975293754756687124133852606171694070332956467247237872081244501278890223060548818921563438555958120272347049098153388300281725646273405190442051743889438932032976225805584115966075646903817833719637780230042353976510246715503700162070511927820903738614516869531088220940972407032299461997665614174116472974257216550964928988000267528351862427671721237771708705228613173165785513585417184768972774395309368768476190200423384381633664256231521897046680173747455237034090677623064598787097372016704730570849967108039294993730716351894138175160948327051027886265054140335319460339288840000089137059710461539817856930634429057249936619597992027982376137406843558863923314436844363990754068333925161560335462789669228219035385974749737328532407690266253405400734870318924036718483915893395001073758176689454416867451102327911415936459356635777754318176150765146790208415540791235871272488469898439625565854246532824567538393119189795325650151106680936955719601839161911520446911561796338827526647191864330968662631621868360949331113439230920888421021174257400012117074936556036329219540355030917244894310246130414817946795320312955448250865257215440012329792210898926969869527938705439911101948100966941795865364204766277092045808551396709335027719931691433211099218594705543417490356996428537596844306781361485950106618645184692669228530338211912531695661650325291265626459824536223105732999912274495548796814134922662012578998377236812824173495929747702016006343749310260897734998944481652217614789992450799249085282217570548817425287034992204917490984236745435686916605492479583738117525520240011429586013029408836429046436807472853718707705920818335148351026897235743842961658814375258974852000130814024039609487471559530470357044384655339573403208316244505528346407431613587943275250945217303627502312497332365925273285640075557654006849894702727963686668683051985461649770502552926821237249123227049683578560344942619207191825036550730763416045988000208482021542285598514431823672694329413696309460294823117267001957170068710911608491151128927285458641957784534461538885607791604051779892147509742238076266767099304702301152175104646570003476887792918638301901400654534231452175950895501210108529889499159284648650204291879852925340800653683261612620843116179502991372387598610489816002444145282949467790185509397522688361756963989292360732822896427482950903841691983232588175619266947810694734453074614811321267705909048804088484392923929775184741229172404483855881088197503038419013224551069683544454334348903026832260641763038806516367846279831704887481660658015803217122627072063323135468345604684948055082507040899398108602228651832484943693960865204359205761570040899790989379637332920754232915344869638318145842910617977832821650834239797258684622816634551361232208865454766302075964507125614581374418125358831054777837357160343031369814621366146000278312615670982996583245724131603310356709196717236575924143013755409691011830943097207564800138704353024030755998015884011782308431047890664577530611644473285818875715865768910850707055915794104754132781349604527686127200566507623915613816020591969615723335226198165274740421908154067416551718624389666228173703473979978699855521405519359534009246283681442858671768622765937028858810922482156055502408848239154572729054851390973083046606407716241207445294666249664141583074130947212069684916855494806588319691680923549049780229897856385720912462876812063290652323352928163566147442805560400888433596669897675964427989617020648740140778669644315372207316581746111929678354049805759454727796135756469483650855359636426285737706709438063078210990282611174335983329079168538441072786153573255700019230406980301911068000933473156392922644112196499888934422072273631673393348658713755535791401542087326739111720640306512116743609693661786683678293436288996833339804935201893742291332192291222759009239919197808866536582657220580754595352991307043600667738301857423960736913420200676319947739179479038113626681953396125325107783152080487561099584937909993752908806188746168264923983009900738429812030003419535278716112760961686461178289823876101265713013422834792707992400109749018056345487846711316068814578696162427503715111738815352432670196044057259263268430204991662273409227403368151520455343404811683101126191873254983659805451583755825236703602539227684384068197669128030564075186221361657076628739208521120110135075701636630055324808794434820488928090740305683325188607153939615459344271104529816627794094385525136547428703694832315598467085819757399115906319456246827995165510164364763534833853655790759341411014110118758196188513966830924096785248774055219602453719461355417678402116598063713880164250764155255172831120394220898737491597197906630886750567619011921164141165713982191982259352490067745224792186238274162634660613809241306631616585368849147388795406128636229147078254642839464346205396044894114025539704081704586680810024947619567978662113985752128492931342480010252988621463441267981899301789638325861256024863489281233366589996084568027364359819538149354768735483346887060592423563487571155190099785689750012340579481506084501276822703167849753086273536463747615581095580470795832075281270088533893095963995885970946898484049612367230123641414607320618258679573043746083430364184119952529737323697704872333452192122832993365885616463714020016707490321690008163451068726961041056294106382630296972438783909446235991083335879372622050787833131519972153300743405240267823898742326342227688117961360021575552933047255744297734848314353469523005988685015060459211645253131240567183485025419534343851714863882063168452002035788998289081575886044329248309139864769440027510612153655314745184930583956757969167777467897461183557718494056888637420340701059961990962519136059962183570347544973845714516580600319710276493054928626810034050627263710402667973943821980131171662894521285255711025589718045085131764691921833250016324099392353501182111542020167724170500044876210874669224550990448913514390091994080333949746035134138275895297339546052248209471098761392993489422236630946970014274279447559417818451069400525239187453262541727509846333019234307450182343999079732055919025630695441237041364314498856594035306639736482477154060871652975879131879352278287087506400272289832749086582198131557177348460053962842037614292068184941641644351203018631978951786525905614463101907801777422101309881885203779219918820709050223673953594282287089988437444088667715921140934205952438201468869567209122331651991326161037902821575074100702765686825449199934454008897722498234102710721205301155387214816013179315176180880656994822957984136095538160394342400219542869556385282958170233719917622519736129790787646196782640416708912770830109306822839805661224226919825920743328465833176541596913572033096732865163609579601544795791556470947448733089551059944480843096449588589233344895078604411759952616808830533472020118178434931340734197682133207275224172725704105622462368515196150701997421100730330438414713534834735480872332337014023205070058301949268307186161011463142779784443424229422391066153447686948732605096746204088604381240754955928495208133006868414288993173465732209681777954088477840187694658023583936395346148953686914124352931131400102686181221136662991526058437809771146608564939453106208491597116113541105597738100467151289953405157996759173596977765027410035819735030521537554732546691350851733765731088276786794730219941379748606671478404977474436069689053930774325418793858043800888816257749695177076766750949959669223308950985587775746256163492762559190763915740034005552600712466319668887688816625101167227400067164099813695846402932454825271151422043620642314179647226157942386644562002932751414202160506959843340846965523253036843591069502382533686234890641622736935093314407747906169107468592522543421872271407970936028425857587022502870750883006685958539943071937307659363811372608121374050970234374567242169267776657352742078115975396384253345435631167833247885759204958682582594875594649383642894172783785739484375781360504444320980139166846661808331929736686128124398442447535189186754900933229714351000413835733512930901631626243599802281256439272391792378986464343721275491183768342415504746314378056274151194671947290347455517092007374924158643694228366421910279925469758794144277383251239811750800407187887088845407203481404136713596626191815058379448099364737910744201182693235635181001903821735377573004785116934369754522201205069935733050961448653790123917789075302556884857977444385594434705807340700138200618443838784153173357418945690979761289153969917308654019083777425297332731462828960195514596868290733738370765907112081418021106430650776457654543745809503154764767939085888295111818662707618379584654468076392515946392306587479045605623700213836546609754149721494821838290719563478268561010829325933975298675805746610007587908131319080829731822029568351479173680419779493280974225676419924569634928709166264100610937685424824119814172665482336841800377775606290490457503493691922436491492905025114601928475633039963564524730833616976985649196265247584982267975128797702675873279247145627184414862283975104255741361618286803815589733566749396826041072856750537737401848524642308864382890970512939477726738083486957571526281825313244409718147593409596361175190838530645559356396017885411727386321176529823676918905922816955015988680133804381716781304483436194623726676116454019566559986746715535922138144360321059644810433823645580422813957879438412803233989142989530800321970867446186930119148434639034627847781970425121542497813837027053770990867681931188112174343122162635295957636366568792637360536752386864428092709153647215276425922751763701235411913405542740621481032420372622945063264787178492576199717214588885405893715536106296739635963113006047032773998270099740564991875060367557071395770954003052080302952160155078768940588591372448413457427247722087511381822337290086692806370638092016380555594552468456887898274667517703024637875234306563615776806597011690731079186719348046573018038105966043467913997512834897679160006470580385551340813381990510665216987500312698020304849038383066293248047158456682497861229912892722062666695647716419599270915568761865365412775512677787587905028418681501716468321765008384256633605520787618314111808575831992369743567552257821963669395196528292117244185363623816144686070421283321563198605414170535242888077535917387033165842777249300977555029369757024646362185660607553121668572918461614823225287460668704750639945980602096813685578396691415247949547810288965480395970669125325575462798557468360692204145579408903230578235755239280557748823904366277503238995578357653853354657088849583693710851185317436882624043453216733565319583844812325678078942157734779966773293192557103451375407712782468148802087358659045449187770527623638558299285461901797595633702726024519590142763083241698200042928815064766724149178195667108094636177281744047328833664629307438413549500012215348806540174679690708943996097784861018577846236676347738606741299235402842896614327630943531831068173066865723045068009744982467749475401245405771736578470903613670624682387092082578385245883265789089419850431567451739833781729385345635927138886320649090109888078922665812007183205633269347764302173676924228053175498729375934863875154328481883665972709831255534810108847371403445622158537064442791843166807485285878796177992320624142261852966920097992590410043350027807272693716427550281928181592947816865227880983664570488094445460665736143835367943823823780773000196267493150651579626719410959066518669049885003988568688131332141017311579669818563574716904469794558902859275995772406898744958326090765866257093881527948431810395398860412732461041419984142707237576031438849541538057876735708131766894137953095695027983810755944255824771376471950937043469470434403212911757050276376509635784558718200031792235469397006392568933838146269868100802140559908240178339582418000131099966153307495132226972722134291889422427386746913186168096692458141353097883378997920590236127387890563306146053562165314810977490765744854682380568125596856987675216025818505191057724389583535504948495938035647674141479808538342644231219047813401901212261309901050679272411047229326570869072636570428079971541428999432928217771274491026428933575013850846554878515579100763896491645410463010936664876522405417653568382440567614636915632389942653007891115720363760447238060632270433888671395295994628342273847770394835323080540764376804515695573869956437800975318958558456799533979033366243335038342549814005953118102858459565741339695926715721457813058186704988556310395485981474914379380277935986711772991040171087554294771239338278303920001372089109318313784479357761777460868220194613647862656979755421992830736602336932802836448918289706771706014824611429986796311777109624873961069213235474417889511336436322078804027036484923012753301276022628182801040424139387072755832853204190790933223020228354090684476733028620666475663247562486693788864126397484895183205673302929936427715121830929304613192155793977821565486019208757618723512412338374103096346502822728761997384110430673804860415189386333680850600624669902956637745223159524937138432477933850236556899733312481912552738969819902609675491085862256975181400933315788400865442411870724178285254765446015659472135727122559915241777812445166720822278642698882811150283975243075145255599436664250018456991523569328963361158488674473851686289361508898444483977675980798184847834906628806044076101771324834396907265383255315056316085864399302491355339960047631871478094944994012399681105062245458640230468722450281030396282185922848391530432211766509195260777898940217757014181180873663111236422555565366414762362631038400552391275306029007762108507640666888606835595477230457024504174085106378644871872701547006176916101956347622174205650182384637045417842150284855439884366574694894025302795046333103610081051153301063897579901303568418147146228986790348920522450682868528333113965266890404148444308188814323082992112185497345422165256090467353202185364151909396407764272390762921051873830896152177490314904518641281681144307823018228596015962956063396874580356307147648769769392552194957369880842116539146276416423222231063392337078674563425809801866536551449587585068407043525254580044972579693535392246662054941602108061173204976486273430231255087376212993523240953760020926658895802227058610206298064971269348774914079099298765569970776360018596895011519378481759543957052110163041919990370578737695863473825182838782348285786591145531601668321935271777785512611594816448482350617228707842200646481523993135943721412956118313498474777493782718404682280633088417371859209058939581385686604534770793170734106366732672460796080888153015937869978350348347699737775828423891533939193259234998101616822404038580641546369640850614022199251258376027037816346429276882127007906853415973674276952937871931986898413249716358965460013395603658070924958169901186278427851305611311986039536736553991009040667271923498896323726203574694364330859022135806309398620620661895090940595327492058945159535245650182054986215287324029180777265968846449771165924136650554784455641695235678332536657792980368137264203926510280354558354421884949933423007937193966773016171588999437167773919895041791705191393584023988215657840506745955900656157311642465969942554671023062984709356219833927156874595194179885754334131550261182379582032234397194255236888005510911326001431151626372137164625537487451424630529465205431418790028940772200081149119020646786210857219842059136799099404187980778565517770647093560271959803141601188332737641463633387064661992830535311326366045327045141890513261710839979911657252495100536096642892017886539652614945082280993416331480784068936761198367666653848909587944302340896829285132122179811142660951282266676015468851636031880695816195818067333384163656578638686297403706906469094292211373138759615645895655309679261600197476180598544504480913064543762954218118523860796280337579508547387744024003462028273337632892035226452420204090202370627837284083031073774757419672138884677906718408816210066120702129828350387284452604002176310790509378526911478966027897836887919272368294020374771665888352410751841717868224416763482261484918606069804596932948819952132067683203558367999493810004904560577751197867090209156105264539188131553860986884011821553118024159495064379835431853875076522096290560071077504065633159357078374648986492653724453564268935616416960326705511738093368985307701867455711060044328168694073645835064403432260385448704627986587310487593568057067637328121849733734153160201877574156635379095404452939608510157914046675789173618039418465300489418615852902781746502230705062669350887775756454558634085742881274617333978868963110463249178978810031855939261095990335823249788783464158098718076013207731635214882211369884313729883959013408441748938505614944701572147627028981466182965531786687194595175827833033808464363436226856591786201327944889309493188170143221906588678268697277574042829195107262589141808392908943572151279815941704252883940259178887414119986839558468246491552570368549610777309130206952532356370291605868403442538407172382388072785105157743881251740019280348949408477246526458076256856026988253195373098524309283314901519712244806111177750801311106342817378046342690745142713705542182702280439295124983008591767899838273002192907551832972193321328573393749970732638904899485486617541274243695469905492621058342724908394147704795447109251723967661118925049792330082067507012079866319501401272791267145150612230416348933742868285549777491895232492213667157130537995309825385271443366980481620074264631308113337866821495316470330537853201847077280618428613667359546618374691847886122831791890044742820377774019094742781234076592395703879788099912207791447338217911319897763234410984086539085118163590922268962460986702105298461584465493727612837615665769551527709849820923795015738132025327694001616950059727414218309658890849538485828318941625721500107342751917340847720878735751277914198451560892346255361204181081443595111471508888900807403985408619513779723227828653734748906460197325812211163202593055592696228681073307407313535567995325905785540121025783063048949840524392192768705556244274675024187816215723919880077118964455881001739829452157325636934658974847000010087768057947384712910481924602176369946462937503403594646715408327711624287447923426937119142652667262234172705360968797612899637098131674420839770794212849037792700495934942360684635792735438514936571009213215713703524623555863686600127973019689042763195306306413690733778526128257239416815062876006882106182249503035288042542619837448584669720250320447453622419920028075969989144196855386813797151887355614254603776805166521137820482350537251170737402475117709877483095271424712652816333766302647913851203559206084064099936166708776675066667386142343394024130592072878862208815650570314336570643161995976782110253032683059065077300562802750367543959165192283040303089880097882985887345634317682434239573551064554524439291699606104902852844352778579874078347719336773578361785240545281622612817037287387046125816714545760867069734151271670865302023397243451336753658489817882271110847572561643518255280536574567124889525657928112588981132034216905196970680933870170920924643381874863879754707995473401235285077120819707817887930431424006418364229505387652617940681609648828158616828926154310505888244412963159190375658675704514094002198166764928112154834153168302892806710616518992532758925895642578873936069865455540825914538685805076538105637944377642266026477004815551260487465233793878257283550633543728045339055599085118350592245069999115039668751508620117534966166946278993298463633187224644636444517942438293820537083786074307829671322940651444864246053296810177473881768604119156579662974401952483319841449135920684057518070276614030863366977664931474960571114538512314954078190828588127134780909708803793945953497932559205514685352250486308132240925529075306504464996518284311717764970897803154988983861083053786141039623977912089413269642550572197477138819701618925441826842038621405873055820101251936594266667204326657067853618180164512871090543782484493679215038980640103035011217494738753623734068739029581454272649703466282289535252568093669581746396047038316873156476349828586133306156081360429380064323893757842962993593741060563523248995854279622906025636308957312502991951051270394418043286111288910519948351387557063199046333739814959864114152820704439693140675520168552828760754605837104303912618554557231906160574731522892448144496660967995201871451989580541706205327646475785579081958780008253277046154506876913170785887106833575171657202184914351687892952912911859348544407344093013487602226417413865316739727354462914319662230678990283389825678197724909451170825018663768823344787687072738060322727491933620017447751151796673836211315290228076347528598194803047732610636247637844247625043785042397098996687312142916724519165986982972626530695593949502911901737168293117127468425281814995595311132559996875925117605779485999504874822363421841780863229602092423538776513633942793246083436065895504277307197804669632302977052645724108786982182304727978424001612000520138048803751235337367918659615745842920387384566355419899598221987464327407688110102505870608108255899411886142657916862640939841628264724323248766405544551861142252187621373187233969397771814779326074991050079724389370732537441456636826734202545990226608886747400131272513067155356706406283412744856742546803345021791130049361630085166440334376923255279007375200707776274630675833830269017102249274033668687362723327864010417644292037475997709152696302251326765374327700295966216764112783496264461657635466422041294842653244744452928719344815774545774458467270690459134359440323079599004562717372423938086913737267090262617954502423135610277297353858076170802320371654370659103394207609323256295680125697330220130719251409180243588694521209571704448234049881257783568169933545158264899559640973401581912483286887347738749417342986540430506657067752101376384049760096585967690901377941175538156085589492020584657175716654003703726951983106970391702327290280485153280423352659429742251281038942359398574283990926366388022035559008599599452581568488097288621021163028856620383730620386241471088696911271720037508403387128179850972284444036128011167819308203216652568510169207082775355425687142861453489494891249794850640972950720241867202212117801418608258767734446384170354685935088792267726513611064068868134107658721365579902231742499095018544444533012084657201339620108279266543655071695502642877517929478273707333062629442943103370942814329370002326855330722641582342265870917142883918540684025718282567078346831717621428783872703637753474353325624319902742440554453194276288933909694525394188222357165809106214300070089183644021968856395982135747923775724754433931186703449576840098831835342221409478611757732090059965078490799954701440118300983948087660029624533220953338735869286472079040923007495993680580416020391454105311203938174818555152750196792479978966798989860775409034340475665464918246282844395182581212219367076644828094628167393777821707605956213358690213846647975141683409798192303909858905519314086262629475615445669218868615360395911967479238893093433683510428271752764691704485415832045837503596007635493954237146776426056424983943757958473928197650110335988089566732582607787626808013099245932572962286688378975444103175382085504097331027706811575241452016155792726768958823340486138845180988620254205701019988641006877851183391341652106488996916676568562266133358061861659078174439417802843268020747725018449375259581646972673983364259504788973434316619400776742505685487272947489336401024197391411296434725106648211975143957212465580879747154318244887264049300854037333333080130416223133108643223822954378871586298657636571486589759634126212280873811542154662259906939597769337717659241146257410723234496393909507876762311959314291599250259368386258895050773594993043191121632866605780085149901463733121252495957010297022075045142456072177425215869782281594749676840654606073237771992709188036226471127793106700396487100085561452045424130589239659117185188396771532192431655215512990039640810782113929577313748194254059021757296949570912037879309033343940456427479687834341623411199152073456705386433728396544139535476515234042522702424653721296618728485040760086460934204615511055864532375660394175549534115279686030283389842269070870393178868676387074282382075893397010277876392261690811770775314283148934780680430970801846277198166453565146139329165222099211225540878660060703252755714716993091661011420899894800395341257679158673857410483992753514723577236421941609749604040305596654200379262464205453774414582676090686770957618102258950260332456376714708371191764702200273405766116275179593506636709779467666687363183457891734750368139828775714979181533102844648855615580669480276563746904637591634865665729883626616437127346883716194895365295462424245503036494260404135592370119865510382971617436250568689698165086923540731646255510273529503563379932637183323193505569331171534497339826847330700246112306244133794274549314880055560098866353105792295877744707469955340425417536198553538775674712665033570458759161919550870973566966004783332036366138690155565644070959945426524589835878832722210594563662119833397668156531004264293776606465945551404588573647862442729920946032186513527720022782966474400366900147555001502483095836479866642716528369226569700602324089105554208360760989135559868824412064501417111759739763470028879860539860149812252020913317230513802745744304160941972128078392313854337165584772929837012537887191015565561715955482330444045588830646306335688343744290490962396035310740936265077538255554634690763597152076440488782011103221120366623256836059384248567293573219987584150471334249882426708069556118229739334390277769648469944343365108750710980445367251129290364372651837315409602904762061418068671520399670121682817871234151630118414446350579580262038153905813038495404887617869781809120909569637881745985683753114959377153512691096427771551973906749030643150608124662963086626723584962322515524894189257010319070300519129819826695918578161714171979473518471611185220349039137985804126570166199503523267578640511582821623078251361242814020613473053991490474246988078677215402303687961665357439884783053490232011553758646956789766525476276555971468729416535761810186209050841499836074782743298166691056984649909197085003421764396097797276084160410842728325788552582297608932767027206058148898177424313589827842060728793357682012025255070166629360213180604996208160059960180064947928005874606007632685647640136039817875996215216229129187568215286924255966656902508643415915057494419718791425532052654347164411392536792221211799849051944235305115392362055503051638502729880386979325509452492675868882457154247409922970676739817602512851122412560398711355788276812556976032292123058450403927386623129633807433205627221041355466258865866657312852917991419926384480087352117409259901769635440657649072957714944901101640972256236705898103936813772083154327333867620058938529529252685111257680573506823498100975023935590606928474114618583976011283882950952288727971815327340243997889397308963528595602253681172187154658352580899548283173185257038064633366215884849807813782271288624756835497304270887298717333541169088166609344025872115381655975427054097737442689236834004991200743912962962431390459993645898711080875041010984552358336203311541377320395360938626914971899717929292728580200829989667632645159803393699940454348615420753358392853416287458294982910293074626778110876286487423207263293772640890585800334661510855966822894739984065537684247238097347881734216791772105915151795144520795434523987586614567720186281454236532069707848134115843987814109333352681140106380244073093759228266719334646636477719293664970632538247912458735360615893991169681512406296767344841779748433994638208516559784219563113217707372663494605090357642710636470927933850750591278128191903716902517966632100629563022743171241346382418030462881004601868196688946674575382727082864542650571291137055766905938642943123769254358583637296817830463198101246329065551753857560027293601878979670711094957586665572127628366299024432672296331300330043772823755599614693725931338834904105665947942125346442530982009475628627358523892903995312519786604867501995985048786811278922529680394254213508719662779935767885019954074454078947252283361472782367505141290368476352493797671413461458519109203313787830434878659639938220513717999182219910540792995606322384226395258855529203675839433331231724894756018201963290526155669734066867271676262427341875152736272171978621872831652134162078392382255053292617962730776158313883264448219187138753161928508958629547497957442352153837364771873385079758417808005536955673574381525234269723255275305169949626482715048159179533792262270949507600605836605945478571396426816237269437983199262899126435320030977279169964262180828137037805594987777241150247536688503063358123217824917313696092773325894108088508173727908325391704142166891359640646519606809546607594277600776282538798150789836978276878925977968834302604674981005568071653226102419160503773795012553359090628714611508318273452756978620335949363310661847758363404274009597294223899670724093368133279136108293678051803401164025546338523187763883688909422483398673265298060460469523031247252444581831320403085774637388057866520007288740407158371150606585866547240677133518093964770931483053692015504085430128893340045406246222375694515971012541683658166801886970497377045181699144626443714311685885445044539529042406352560385805798887187894429610773034690781227582339262355198408719867965806857915527577782830826716389184647458467393045468442056418307149281217502130514661248899017694972971725106614189819421804790447820046641105567222327594965886841618884783372551349799337845271187182326044696672412803297408628276205492821013052429077951919032322954556668811749645482188172760014539381377166935235657833339835054529368229409105318133454869014360957524083631874641353553915185876057814608090100237418575517799195682701618183977781182835705923021889083517807131558650451708019401064207643783861171221176365227159669385484864068785021658788230980214296196486353467527896828264401559805593398729598312107827558373571648853164423116650153598847832883139591345124833137913175384579714233759373256029642202211142836232724606832397825438731999432211128168129160500942543727745358945293805367805125235655430915881058403424191084905157760476230594767627053305298138799798308571679662973220201219742196528829025339691788257077163178316641001217030630069317670153159887526232909194532446540446530318468926936848245283839765382512761576276872317115227921928948293632739743255414121554569164810233220843490096186956560634092654382720380175348096108717031550838525458322998764103824797438719751214873586007159991049136005600947617874800059091511252899443328493186473718814235232766560957073592049323054253054771791915283492176287581176799006908985200461394724830221642893066904828299846920151427713541082319818765062128571997814971274884395467334979027666022247425744607105024961209094190329777290208488600560736430596368636771132227748954944858592143486284180033284621754899650214010162283714542289783067463798072431937822750241347043912527846547794510035130628761785390160980424411059747008249594582764643186855628297048633050274449582560211767003393581175120477219569878590768617715090132959320981076572552638815530971226308604120378399332638051216521525065824472890439337448187958997935847626994489078784588643744084073416194174873428435391135739260845406433289982065316447849610397135169006350161854300060481644365307305719192859483061813697184305160125225585812086609506280264714222640680302733865639478102598812661256958687216253599625896608213564877169158927854870942628426797797034708437034662154282262348755068937598711842530048410701011149943555743853984034762800872087866580677117650216374720489045976310549503457577105009496162729731386582937648598209630441730320567886404441829549580026928970198458066001278865206203255550322079849735178431902192042546416341447327892884675148234433801464489549464860726026351187314600212059980668525645530750591652160650461777576326810520679710542996934618731269183799045750183635322424047316859021098595044613779495330862196232793995487571432634332579270959909940910748430123859667115293719919038854731057898142378032803132657457202867822846907372388991906308936501263211689061824961736097037383010158968144708319151016877119259321624031259650848734649902993314955848684142261711218198799738060489127401713550652328073695626218902000747978130958965539403848117137479823373598169840386669349121188738467522376508923607109833667773627256042088231378719403338182533248886494298127286693940608903496604469473281366295048647462257271127380424314791788436504487510052462437245255126057794913228443715601057746347867670718464960213288995512029976623524451579958142962329882569517288974056194502372577841824932338917867631388505052455823645469592171291418366916959371895124250760632689187750541931050348997145668649393700363675267840473703753666920476062443247644783837964487537005731904149452195435127377955390814772416691597723747739898308731978854970599011825650620053709698999101599355068861896981467948061187370929638576797433460477991585922611386612702611665088573961329020839408553464128194563245579865941998284567965515503797756022532660603386986421853096414619305825689717990060098562587781015822315054893907863373380532977539791152773013173967259377879018997115032820583050317012825359997013817608131419796825827570000307919993161060585932877536181778344607616819748197157652300955805190063843588436468962672125648952321542405097832836357491884454571895240527988665552101415635908146480530897367436093938529876562672096184523087384196824865730934041370304763926497487969976291962371934713002465557287635301770939929918319583413137010739790885934184326450506562417566784347810300450817942546579317913039376785899521668610525603489876064497177157054404660882834108800773675288132006076422116031821248727008449017282971493205962609182595872431244558776506564098860067730632728158195932669532282604542458014366364910901039542334850249848003053134676419465790295865024019440914429596808263995987203041035115733824399358564877613160828640948782879874836046186021580657882222587175356067203002368973370768010080156513492891386221882794719295694987563149153690950970062650615210026521658001454521748975602377930177832227396734277330169301090934935333625925712416075446090107907054824737221993893099937835106524958766621143373617159897123780829800749674162877902263226434223867127743247222931715853784658846025320834394088950993120549450108304057123271700129703654008805787087201267894774086362874260929673862263494122357762927640955834441306475061144372699784499405406644572552645606514662385198556527243005346075088264052051816800751458179152571221156655203952022725049203535260931975441204144206710587006784742535698788476719937295921227553853251717866009764513761058441466436294341306656238862958050283255064191937697087803127323273943558396432824939573632997176532998508143177903845108750219157553408694855608381651295533563697237797913639066721477693909839854885437340310978058992401931968701499847230345674196960946808194706743039306972982312480757752518465773454603965959169805944922570389156555148631213614377432143045598102521680480832713377936985110859145550376519370266105677201335174756708240985850492514129861292432701066470471497671672302284765024261160503338744744359061122293492024254562322128654099905780817312601439766283358621614735587766917884377643763919322567651204881825717116442606476280914228539441577419154809266965831953534295158116736794055826120537625950306902580714199517075538252357272787610281416265576319243592727886351163550617498413309777588378501522869923497072863533117347415082853054691513377939548225162730935475789567100976298268060265497461989051501650665093232230499491240879183873846252213394923466261209540492723179218509255154642469034776964082432086650382204861084197186177348310602654002729419326699566586920095620283969980160179011586117008516225969536309877957623844213051701839937163681906198359561534348210292439131336445537083535144288188638090923660855920372359650335641359303512392428441367814473783157629412392590641680947881408399942671611886658979951593429183323430167102134214974477053761870773391793463988118727557625166774978496462625237432573016977006883838820533448942277758341795968450452122004926437980885487556089745925058201961660503700973850843970861162129094731746090338228949813054560852286544028289637615581336163145011831560699079518135904660576764193507934174921326657674922710061216518656120497575194588247187653011466597806258400739497270918221004169461468864769547075950275558520646865432572926108127468522744332795703201893743209946191568496025515321185587801900060871110915604752860551918643946441629329558807887340067878425964223836396692122875096645729250032787050895089000749179250240658064484927927294851362331017053778121322862595169329130989678828755557891109313948750545043626294050636270072889671530679753193136964973408925840279270619416932134086156526862116039163327193642354139376748227798183291565208396208429609483275395871452287148262315444506955104277158877660904711653682326837063081611565479924021192756987614038903007061109654308981738234376836459446630923628470814138999862323335298996760528734085771469938028431119644936322978292857932977027003894404003695638908599375708351634180658355593680606191847152093517641166313438381211944530940430932358148660201209302188400755938747295353858357710772909592401505387454529845785046920652776149008958459625805015503307087556566108489300364717680498814138512903836392002205542682077156542932594334189442585273056925975117055677912759524155484419982570716231622922012878092632030573681557444428124214169712929015586554954297303509040580582585935738225339557626503628709618487344136523288528050729812555755826195115216823811936646219557296714758522143708347890721857777499093867213721843064146122146070269786143259516734784956804335956185346509951310088964615099275249763439151691339701447561320890450072930047008360829415608631798055964321598914914863736309912957074501139533792243109915032475537371596874225975175304566197137009573064663888882971583613081402515812165024280043610290012929507452926932085407665347837242817688273897933046520610327534886783262476568327260473516264140026409334779159709020293361990854578215478220712785815769437402630873570482583933035663059657109061620116583974246783563918267744752862895936129358698530240267730461004919020080377304076124183024806200164590647261937245000682719429889373897425254989716845204335347677710370857478968297895941595724041188283861869929901033473566226055056385145428735929860561001489110901190873414218318531501973172731781277538718396552147991738507889609710405034478166988186307243902202363737480025809590731211076770571981206368560365891385605259645379289151452586472189612628986112968153384737572812061913757659700122246298092006231780142324629746868528190783718452856622381811074294991961123001440365027736339253697333373816176647539647750904604492027118079512901667229529737826943042279297486173519038358409478632027965976032799619539017642697979974787367615415656631694472442341525323428567222906053633964671348297811586515654203467920775409710881829104429054892024019745332909280895276190818162098307829841660618690347738561496150179380138769070860377052221237911315805861823701088782604563914020823889343831582360917092483475959288803355713101332520187880672369500957611379875554617476035308732060523460138896097194109715170529460053354114239250291956851973015277574653335837492344626003453509356686624778912283867432410537041926027668311032134848114401707771445478997689600296686084215474764166429580099256631733609159742928307147832273519290684084956192229906035969652797670747806421512246652859463386521599153256415486555508902287787594046419021642934043093516791220040404386555639595821501671548897298280525115825620167133526551354565134186620269059094410560839363716322221077598240819820915880713397382044086866572523308929977300137830054355011595820293942450091009242068813581572163313991607785923437045233675604788763900732475991284186863959597531159056792849043711894225852409885454998447271736874680781321151382325967159382950506553875072943782474422745619847877975921913346970482073257149328614941902981763686063664775862110229270012630926389943037140565740696706350764114224594483057338348412314841445501574280491361578173064312964819479381898955097115833952886322200667314950593549962272126043646904584075983382641973439525876048527217380598864034517475954739373904442264426056355169677065763152925854361195002352935980428171504751655565901797736377861015592561678489476600302665580555812283623960269905657280599028512123738268066803387822842092497365434168467946642194775777401816249084378805701361882438510246711919891735941569577513381238104427432008650926886922477433094661461164039351504506794611534801387650343368039937586201114176635521119912536387483862402112215845856682329844471486867716698822743085687754004350307822137909532839467471222272194946381564482018574236314111431075987757252044406917281596182413991108717910961236560463628324108303337587634195003915439327364984862449530964414327869996070427659613730182468372274556616610615084028606558804041004137145660792260228123630907162806845625793090944792323001190966027886652330762741596812881650512013304055810620421985859704471012711301951838339277208506781385980943978555050477787403253235967639217328133224583723777675901298965821502845422035666256389336508006054407216621473434042121525092122288994085132011722268314429861672948554377667844236327213088081881535136625770710635923036533067869538366676205656084414511868184426895060308499272425021808076699255355215336414076746331341224901397291643710507232037408469370575550544649100460411157143130918100299572386095115608561411137390015531921257402720746667608720354415989415398818056110502302799768654645691590935041827216881120070313727697421152645607346872294845968967235957751437510579927533839853487879626465920152622242711180338694743861665100097473675694181130206289932923931332759155183264841878553389865880937192152028144861568728542941877919694550063455583124297551401517806586995901752356193133428456640551214940991470976903845759542289909601687950505767576351125486247522263687195697016748654218048018455863961006308895241122793287418093204844579806511454478047153288815138573085803350528994952137189894978309846914106445938215456564168779958144637462558944676691793570805538868217942435577571171862631914382216829418487921566508292447428185817378151381464791657311116265969107875310720708727724360878925594892455212078743351031141683209019332482201392346162393320261112313206734752552863736528322854667697858065480313210878617493811230148397660627828704869348878721887965658919904068281055598839876146148215183496039854876629767206027410547971441829685632027617562705646259146787867227723979323795318517638722044980267798984367758275243267965771505637428017126794469966405814273455756282515166673085041470948711590143657374613875953506300554003506401625938426281695248658208767666060209945667829844764526896033668187838234800696047264102459795084627884160312714814509472711720515784927650423381497726332396369270644217325201857405477550308089892789577365626320300112787374819272099322937101743120404304066917372503140851545654552641579725677939607496275871817395104134936504361177124467373849375337972691584991280681655574786384005948488822094433201614636359684477737886608918112235815233696027166479439613600683851566758367137262111437076768868566375698535990409662014954603364755181901482294038421258771421081973350045357737999277676600418822943397802043737191610364439184560863597416845359813143993039274342365905347359765010072263326017178898980191860278789144678446931679111847177428001276085897670662119185814656556509740833294310829672071451484890399963057970668700041813115682979509736552484575437542992400710029939702313988163011133644439168511740455708549604000265306999689808742969592840853235189371211205675923756853648899639463240761993280591171084342514135744733399650303227924934539671474276695937735477507111096255310176288489833419754560709240813121257442458029436273908902677524947524458092762912378387880182451511117843241473912935519409128400740391565838131390625663031486411783160846858680631809019359879429820512026241580119581062987317114206770422905707177458589537078792075541023424402567432603036179266684636751676083081223579310181288914567432512924462499863871227333973273739739725883152878048618993938791952712126633036493307391355962491021249720668969495905728044892986677213078082335860716485420363253331008064184553441724793101554484730914079856357407334081438668963699385345535979863797047947279472587529262946549639377058561660832423052827214676356722877536824129854571062669817320483350291927746800603818701930250300441734654943571070671339953380416635163135316372347508938767308227134029842780934057277323851401838347060136213956737688577568723480772587361730518729807117149489938946242909129710511857303979302614704989355879497847975054343464756379688985571755758640285983139667013861114894533266518159551551906707787005643578356509665288253270827886859435521487415910658652149704332431139556282162047020110502272850469283146895007671142338762445959789156375820437921311009204255821231637334455973046989911145710541583449121441505803994578713266430642372423024273837428842662072221071993955207082025315437539487284761032352685402185906248523356230225413379172933028630180749801711034128212968248197748772304861319957254567841875707021066284005725476748768641821559330957457270218306002358608031067311185316602565725738638831790599615384810977113909334026777605459453531445649448665964437918006517195853707374014449542638204488546314576394505672955365918748146856851637729864335363685311532724124629846241900136591447546493526203468829851098154513576937891218947097329244667265062111376033986586513433967531276872368163023196310478172362961707798648508192965627984933526861642942618060853094784817944239707886035113107717687032165932232797429424264955019576398348845624584374217489312509176377443700046922951421454751003823429426457899686072321619695547149324013422617485017872003529249327778901123050109235974465085442780601489018141981294524411113111872159000096033409454567173525110939633977273324238723011822009010154454550728781137945019489890132206814601105160201782611903301792190119007717343597309196903056826553434053028212132016521884531469952541608920635679146910160364250112098014360072563125848587924757724782760505586081796925947448383232390423893655485022348547644446779805095508807032458394591872294520627001451012405302614279956342415852562129264308800041022893578036266665988636659916223950568703030125308666718283927141780995620626076824215301986215521307475715461063412360187987247995818106293924891165225781845116395107544958096098370671985552996016693221656713187747525803987851461350775663837729738293965512162471760415379964598245172924818957145021327204565019162800333085878437498055773523017301969285102361178741832703297022272367112312625947721234114573382947055925145050607054073854538766473118803994942240822942036323105176042488953192864472119042885262012773339178462147351652503661810455697311692367730151365278473295780676375176131303874739478491214375355162700900464948907625972176945100747268617420306555106323382700128398681655407293673556702027401329633346801228392400212186994272013554113594850252241980447998818071773341377234931609755649823319514685922186082961521429075216364320091911775735202073149498816258835929811091245152926342338371178751927061357057689806268552091028185152986623882732807046310621128657981217024576998604297455152219101408582451369650709591815690066399597248140234102022386591017487416759721735682705719799841844289966722102815288168410813634697457991977646324162619480749538790758775061847041517788694655853980886873240650155543005029381651133198234938222223739584820401023948502276127378652763064102013683528538419398267269967213471225072559640680389300988408061400265877062604750214637867646410894749827805681949030588683961723885006909212211766560343839953797096302207892225470079808803401126117551280968249408117449501070986899601896378587071380418083330940546644158783463991577410051168139625697574673049709186847260794042614800227186648761798803525036895796728264079403485538518680853001932033610558460758452683820178103656701288203412235794990357454210938235102697878965903700837745746338607492413794090840168559519371403591705884922273275273298631282706369612078846820252935776148031982619403976640048489484436387290449140833018163735414678750046885952183550079655910670351727614191149434928445159637032253652344505463077969935812807815391466323218970353773020351409037269453653405541804861517468584867025900948567928416776893541922623704295415806751253240931036696249142969591232600061328452417830906431838915618657785407756408930923423907002651672610100471267995552312700702183619241098823561970598183977459273639975220002408134475349422317643423269348862482087984508199898356898577114271629190108494603812014299411956122998933157281893206055301840264143962841391883439368716478284446707416283731031854955981302434498956608918539134538275098106271573167150694027214485535714973507855048273416747233379816424515058036525804411038080327711119904677568400434763821710594443415398319834036254724087234611422847185384803959098178332118901833713523215344440608523728973631841379118706399212017822422895142686555119762335279327826646646582085049808926459047007548536675124689341800833390459428748839006450455014811359643632260443957698887887587658199077879855813561920696108596280660255785870181684724318195125840980986265273614401534239769726724981501716053050453145404534078065068072091902311681918903513227199475639856777006182881144955576561695505394895899852506647132262159003027275421229062058876944191837280578051667032733103940260519072547519375506244052947734235284448056638987002322995225747930813014344969219011546105315130194648350191486753506187241335284280307123292982212597346894468884235858782714555642065938047354566589792656250690872186588372692427221791892176270927646709401349970987722646639593207514085558371704730202611389396829223353423196462272936097883209800287000429282233193803156173934680502992407609547519556593088936316509211633201436443792956538501668521794883653497529352156969016399360284589005187452809239811064811601187365594641976113374355634389995369334694169279626836208363097564308286909440372295378525957655616379894276260848243888899047441955448674546523479929897056952564907303760156883856523769609724014216943081937994557872288984396583835296652480302756247461318634546395108442196877817235033479798708497396323383930423033246282885323530633250063814181494451801802013269190679052975303404448861011151664752816935867405660547675263584212443366713962158535655217563793806978281548528988251731393984619291560429916574424604343323152549661454659292188878355675154544232865381821111334200208344797532118190253479025491246022450028486853018255192985527379747248233202876507248912295434664906510751571786054062321695426013183025727932412926391035640925285472819116001074370126075139564913617752036113206230252506945911473000534281079706023560785643947059386186994185688309771461528201951015498048111418644349330459517325961656069761542542097761101591511067744803828173726736829013549075124325378121602555330037909139603520102443747123733787234657079046691820192891376864627496431140445879680550929574188777662470357959068629566333748292851938403734911921178815057672139428132097325307725758408458849015210137849744429179114540507035510224706759366607407976454312589812787359755640694383471004896554054078842126211649533727692390446684130603263667431003560319318806485936665285410674065553755007039514815901661525374886866591835185386293472855224046280044354000466285601137537880679151637136775017613332885901451629122716853214286583473240005106563480668431077079139560819651157555323418832981100615741014888251657237574141972588202625655165946003681097769966749073686528514151477570361487828457971289129477869737186013280045122493641488702067929475089962924460708404747391063582472368638669822292632602230037906982267054639099834824034549262611541723205315532919072091885237603022852833041852254805920480628972732121693692660861999507470440706429330970420241036188467528582185767021681482660084151791043389922306298111570756357761593099603811848135663428761779545895940803929236197804719925960988071619978363709446015825386664819857003795149699045308500222809266708576681444977092928714231976291604879602949644577634965651669088629255283470576755068038667550082581934275857064723438194582104070640173913890267271024938422175626579267660385458520494515612047980223959877541228624255425711561976672388650169805042752754886103390788550743558405041070084641744379251855665218965597161336770599514509621983362595812752360098728532376708442306658067994984454095177598835886218643662291068050297653932854068538643084217392762495234457239837848015366140868034451391435343549555640705789201373477602030518221870704702686961937944139364366722658637440386301598945723350744022079944579420834087319413883985224345506208476998536774307234533037760853185375518811213471100691826284918108411578472249287037318069070308110903114027532291724386550702079866969725550309715600005711992021212869963803923889967370607347373885638422897497978131726099434398930737140850985829177280744729689006780525831150352600639405213383744537544744621119343270185901053137046259756045297555142262830447852460202415752776861729652473908490407415761274268510457420185399007578848564135990388192732425207101046665163207932810367860131056292273601851179128161520784587760525198405065846427036216623904660156909131147903662599223953892781375777885582504065787960131974546180550438041004817155056951931870027677043019997308426890628401380701687969182067854795582676993593419780053384442296095551169704946992030134511164166866595807368923535248747621616111743676932153544150387956476675398503951347841530875918690724739060732713803578682550856656004528481784388007987842805461635967673894762181046792153913757834599091620761337014555629603847950336360329364573598508614086952757139407066189450584870889268523587604011489121256212387652104121754375897984374837855892878594058347579492757065272005824513049869433090114380997624555555106819058804168307494136560624881624596340017945026581281429580843933376229008295020702761729779129100019888811962969757394225569471877449470815924160657207933137286393063768863351130544372247982736476620293826589634876585935557919915264656676178961407360548063259318139115092482003322745457579964524495591313835787711713016392852178838725086502344958653934395901261882545873703368900517850678640981384401417423942285119638676533702066628081240062775893729255619684571518074922850062615671441655967305748131442025643526095939226675140814959697385527423562550107591503650841100214891272855715014185868641507663585292227345763425341059866373574677411853407778796665366608160988945717172181825126500135772632942598633263259659346020431075708034091819338475751330576348613176160444953551187330342485435859626540173801294730009128989503590367633531351814572029401857103830709821259741560922782066676671889388392062386465538767316165751583768563441314414609675922039355648643152991908961775699211645366457825020039899149882669140420101621801439038389952887734105799617898461600638049501965661317958743572091543619243196215320076906777539904225187828776485253053726886606130257857663775170676677514281123639292586872164858521169039382840920689502839681348456318580585272005266867616916260275048734219015960652550617718554923775727948741263910575965988879520767838693764920026014563329220429298491743428322804740279146756803108068320831629447407534622683193279953072056485241012420926670156158712706771465837837771792907130310839434082315429219411325607364589752540654290341061075126967546266362768033630940677706781139406628574363109915634834658730299510275256079970501249691303012966547609766337002886173113766150247963064235416791547469849447442016994851560276515088801022610940992441843231761621599775167486127440394664411532286681725012590967238634165475142166332411883658102532163527232331901781925054095512045042742101565414828876512877651546014200770184668059502275404249276851140266171519491274272861082877760278517176511111482841951100069349408623495929773237493697650673247389485081111476277845095826843842620950559495861245382301944986617999927747433880709506316999731785530965805637952741997281680431173147555299427566288612395888808525563081687566259084312765610498536408706270091010978840396183527881228262490996006651513541838812361107242558556555188038225819368711217932285384809754626723425578587800583072123823100133376376736502699084091083440078257227560856178496998682173011617247778157659852814892035894816099387029089295479190237160621929022744916606710028088554586698199369424567394998358038087974639217728772795050019960379157706448005687467563210162602318482093124135281161082096100459349243530601505011220788712663237312548807226588528010270420904970508957506792296912100471045701896539900387175997563558194590954084160595426940581167002292748666037849960907293469014743172341965855619816251039076691190723443985314846330290088804087807637620280477453371172730483654058622535001183935458241234887713783839439266052415744143676741674086777507061343179921880111221208903873645958702336286292771126438997145682632120761901602012703936667506104192838506836194532188903454517836313725796262322734034673600277919934342511663554425829976529499552511706662377853301220240933995496737790313916473246845217557841393775952704295469177474075154273642954641993970641934515573221368528874939797267396047223182701397721341067247559831408856498924499403104922847223382718798527728754736059083000514856548544484581543459683125470760105911356778253244031784887450776519081656764174565305660975920425057821356766045952362256657498678437612846489322574648089478801004705438091730759530098568917315790595873778060084500617467795055183402462146894731354382430287685180891872836702025872216830099290380507944212235326974555994319748829259181533112915074758578168563869897898782728234195730986474307713887701379602772291364473905819254096668536356796277096782331476483015630690386307567991437767468245676670100017537784928781078915204970622094598000622043620272457015524988258072149619452612603564046266970184253137725906809646874170286444668357875142612024158786354335176681173190484973775442610913690091670080426224337424905358205244368267297925082263838780635673975382784682520799826224872934884016658067772629482960944939583578663389742540634749645804936518879707307240035084298268586841632905543812470090951241544583841664684399875366630395674511213820468808302209543556204158713477322892109615166333229183265187162151377453476689984637655633978876432755202569439229781917011185783791561011564406051545262927732541515954678418572832345673232700987926403784151670794834602432194670941692758031272530271000705888731391832264092144225719099930917614534644272301150633700440865559900276215988000650760808264846098483035066907372853080412339834774957953976432839376233540489473629028046425426693256516822183049194973815814722953510236940140931860334201179476503344676045338935202221404463774141203239659099644208232564408062964460498349966252235481451265172776027978363435856855208016908968542352749338900109063981517905305909166004032378131890318793658411247579192924608137499049267649498550153626872638619636553638142903586820079715210283112068599870047231451014595356555569145230623843742269783240706422510204633921739688848251274793552769956564813143485426586623049559255674660249949082823641214588626476454469684401269660787065596200320921407461937254615039573696858767205143357810779125795290696973596916843979244825643501380692514722302597932223994016438264689745029761871536638659449943353710550021093312844567213112126383857664760240933910702241817767512979680868367353350602725237947619813033344563699500002718292296886392582248644686171583374094889959586449633348569583987252777746145682128952138265386399813899327431286182427084781635878056234205245628347913351625857212542648308385418894805285700285190611418995110008048229670676693686876247960287983586712148355305677338794643147069505151505836359583188267828488286917015964498678959885652183258637729284985486895413622697142008230590666347407653797370649961743124485377028074172786885400990766461976257030947454544235407435731493398512747192476842407508645131592523696122895679513575793944167292480389573590641696382486236717826043416033971753099228123893458001442052545230304634106659716022272849185700828502387844382813848530481130062104292244311227611503168929681792164469436465916970065106950453115865080189171266195301517407490891920735801681453068323356312276562325516963016291612346384627889487824756188146458648020316597040145927806659219360816707869306237028642573159368958618054101028483881825724015678322060881160681645827942866824811952524175721347199633577941281503056973995157897757885066412410836404534500874622665698735000428719758438324634900850960284355644424611296433301935193851203283306489161440539531593591859632444976877492766732515812799823166533478915880620064204148250168442698340627099102370694574435239130410821277349265081268374714499033653775312340307858677379583687354334349420622908897219955405142648361484328831256327813472526886680856476591027201645669231890352997012854541684743040072524510141364464633729571747091161095444712492825958115765776996268986944025026216158770106954881794292487472355464595978951489965336806671543432888468238992000471025359960403657637348212112306207954829256610849786193438281693224938265954993654209596264139718222666954240610756732197157388267323644315561699144771650911407425058255932728651695412189801166243735300451374585345501440531037160457608352456855664826379420021903221357142285163349249793813067244611433807524465765803258683809275645093590517447252647556003937588170368972510593473590448113573775047156649813872308204837899823221411312753893788250434668435001264425098288174902942189940289392203062794251147649097691613976655698299338539564001187136639788802916483744652541798981889841211417807865785993275172898211818230407314643546400047102798569147223252833422385074953232440475849010313423192249114480978712729247927568111483537318313235079807665070376248383813882246387248915716768346954559681853045117543507749951237388050147217704879012323440768671877247068586066745215608783760575429978815582327794536467609088478094287337810492983107837519445144731874584445879575816345258385935328993958882617547431510012243148639846570134626409333910586804082952502829075836167371363978444806326018854544731384402048016891444074608657400395793023209404703849834338413220299382865519527302126719320536112422802298607126500706593667497624648595193886284184898852966572248094289454472765820530668442905175691900743914753983820722280796370670288674597701254575174649737350909920159321164365497406837609860210089937249050168389676804535511378537616579027042946063008358221835855953689584655515070213638460768681041353970929225331678427133249442032559699915109722899280322749645754490257202710192603433024923318241779053536504612164041940788468813587747662272381361849330175088726248022718538901074734345740112755244544800921030221196948152156434418174882132075008115823307735184663115968370449005219684688199706150407388203964332351430544669929587308859088142915351964383389509195301772130777674344729621246631920030254931611909915552226317710017799914568691005222750569177877992276897010372111471153383111115582802760410528249956258568985251705078807037265508278757506601093131388934365197475227829157010858829841540844870002033890309109252908459857810405350300527408114261755565843816219457614142072519695556394689055845678054701398726746657763743233911931775745723620847873794338048276354966414999827813259511318955906990590046223215839689696225341502856694576809145515843297024435305229856487253069308572550166759049542439757380526219587757246772200127903082972434860671725282149239380487425591408720486516179729493721267701835906717662889114366665704223333096512453966376823871160302085000062295573261853059608197562686918771827995316748378467415907045185931294005361817677195550042381265893016791946396946799927304812551948867687795553653711704160327491169037018300972909325068884324365884322144383963075228510577934909189726325420060104917792112595377671020309220108578838593634991570605880171779046131031463323581707987879517904461038092134594385328197001574373921648268189564417226638543901942619628687050671712175203580857489871708124411903326790626084213055365160687244685467411152694808160492577413816750938191828126200838413048170875019447426514327839017189756332999300396034890954165988703578036394053197846178727325698071197185884294282479841268862674368034857547948121852428618038640783198523626703747308263166271769749850909788513009387890770982776866862526837337486441193183168413393154036211866314677294208096213258480392763843071689299273088757773459608398269916822382088269670948548334919703407877822040069006105793129190672506631191444870142810417595913010637279478519260544719890836178369787026473180174831087366742978281613238218005238298482033111631328937895218630282461051744963739982729660342861417727382823231481182195263829330350132396823684186764177608850455715676048482808864434694905616205358046952770475163190326969816344654208743118262561291307850468176876792875035874655842220782247677746515868655003472660162658111018678963539366834808757009293417157223876431997048298987952892663887071556221229114166422461244045275392004862046336593167182485602579315236948620180331726271297575994163818612865445271697991089184830160299350494359813843711841401413718050240756356861223292740411152117789883531898662788713802719572482717789106530584874819091520661706258383272955879742215427227282449145178718441184399569243519248722264598773034543278606018121004644889727533745819126264076439712482185287017989478050587882032635101223296693831052495038563799685203244752390147778452209666025999122353022451500587377699194728417967123802572802587368886886835160276569444699979842987568123415552070088791607215490390484550796477594246644435066331476154476371712848844364847983741114125318270152724465242977643089826152832156732682322374302075218747095267680137345983837390795365846286528979305462289301055091571243471332905598516948210055167932563339684159691261953781296024860501585466480996029154577447160424322251036084728143943009444753640920967291202372059567983039928036352454434408700222508445778100834577336988206820087914511621246850893484453868068144622653408720214477282292388656388255802957150401359588852573692600235318795875859640930164009577004819524366015747734550916807350194166602550389695970156877587163306944858299576026561802177538135209066064049352249739705109544611143425049867130298094718488895248013779302933407822879600598209732368970982558013508347998492390937714401074718316896707672424508294810993344393488443748594677035107950100136775952809028472407227964507139118109637528367632863763703548281450323519286380415718341411588871602228922280904841924794064358751881432812205654351390965600593683143190553515993396164550421818614681677317514641380071987815391475832628673233524595712737138690416623558462756996145593831680539859905602522947246721897943639304253599291703124286904957088984979940915774481150741285114387845739818367433763663888494738521139763585163569012167213182292453075218612399945792009581856130824187961543445573757678714360074728366442057659162064149581467055454364884777032943297088532694335423144884184467347963350202987717451371912625881805700192880376670084070500657214705578979840070361401863473604637237475091145144385318571824846720231437623434900406532725529017069159075747792168334361722970936435035306734739735327902742584333866816827066574133505496229469142060114394960225564961987439072089878991082699218142151460529652932325724492815106834809243006586339592149271263888852679843325624502255297525375041370571358224923376690667100742568591891657521801811359985206925730694812062050596500961361903670744122584782236792168408633493018868110799148437128726919646721024245314548167590805457433357490102284785660251951195051681468299084693338096917742329657476994394729665593984516518524678264228451821812015381338969905600029679815432088908616837980585991595207142546721344407622483417545879425754561408762385982851855641964792962581761219375188004461813848292869802396294527136472844711961578944353445512992364040214209597444748491989126187062663214453281785632795037751504805961509735473224417442446394308264053036351462403929796177276215962072773593480586358230239153562800437305414986286983963125813648868597502003095964430939172675441003188858507620896108797338069454526652744908396598654578111222992063727803617452492835177636276632546825668049650614758634858733447972493574405305250508214708195860690537425393199920483546397229979505651962290234218418133070200723615323142178640596890863678256735700539414279095353451754467549490876889701850295548148462124596263348533151924443954082214044933825266288130540609550315409338537185436955632644772001851123310962794066371093617880192014123313867052491965000728766480514736340774707956682281708499044009068562916445513374972129280424817141802335865919164352118441766147221703342092664300684959504570658963014950851958248146905739558963874880652264273488342548264543754348447497719130510077079563203501111615189997178603284520460308351856685327446854337926256621176889901280794965360878441397581956486519010473514419664782016775339131031874169903338619135954599612649587335747915304578921805781470531221114058588841354357705836777751553283444910013719635469997865751906760649246130861991359320442417416202881570499518277697879200034679913503213031407933264953242505273786158114912987684691028563595107429349544515617669323157765058118951031097649293374780065790028436793815537620306544896510969692216564577055200852406025202814473933400743881613827081525692569418228412506307990660498807200463830114841433886622614042916286288464096107556430873931414216930677670979983158893706945400597086123611748920780238356306912726856282634040183456581744669724930422215427816274879371004035100458454630251707766494665935212655717394807054626529196202452215191959381020849861305313654577077502235822838094018143478643055154133468894470120449064014986160464971011722571534902172191943910108600808312384181152887958534117560577738379340848094698398897168014150009011305935156873969373886305627195378076277026726272463696288623249237058518972494377615326128968110065597978523192749331270025229079638014529768823393023212361981360163455035424324836343183934798344321692148460891429290960550699781190153723232685004549504830888107286751480587997642820895022463773087644087874799869860847381075897579607197165680918321502540655730567866804172945163635080153984881365955346319755939050608404002656828856826872225831304638848729916566459132287954058935276355580154701792768540157351620702356363632730076514550143676123952842307942675120328220691219775703190804357688261622249643692796699390503377877753761895161959180592873071563295908596498695233648938968212225450622859879387638887560810783600605685323449243872945821690123037235458325803273660493637392717652729260046549731150118912867723714079118407456449801230378367008986208470812543610328858719288797113385603522802156198384780784666545688482468821994736765969796899862784775689876758673422711106073165203356844222240931937633291446539916177353093695203044894962416204405963519496048136814403458426555702010971460047583237767253020959938067668240118216715080460766699208622658809559090043920651779549227937062525647092869761829402146442096395673067514569346549567814826208845196502028521020434691610572022775228391116624107822853369892211755920337666393859357835630616696546221432713564286372834965722889433375256479118549287751304608581464289559816576553764179773246108960599161052369840710603742247540328312766158663440053163189983313742333652449710235647773989422454097135606240129457363678479281337672969934606505483681830941176169737747244519677323268679009538512382400738389501952374778784885695888000523423729974179561501479001375401293419307233782175291849174416823150761988143088665653403327738130595310200482502077596210362167432554882580574891659553670919291251566089430668220335739156574087471917201048468310596171911197318044767529404540750102043716259928328966702228727778064740023981848490176361022902068458992194369104212708561069104230238627857492757755264473898605230841812866995902814976225479333009595839912274287629033026743255167843129603068686364505183155990210626194125559924684114111561108164355285375331383226583020548603721597418060494802518983666476996503038245124952838759723010543508862466081225366413602130364392460791003507612183508964027727518129052154932183619233148919318098427646875483717680062402668697131557699080886181235903972052112328722773267257145836791781256494777267057246400922521084830827668846816019023169902963289913048658146914102134250727779795862516166681684084924315767695998118270291707233077591829182499158897625472205175245708766197213894762370117793609645089377115018111182702034270092522599243524531671910381339434583125834987926749371937059937087389022399839423520266660538540269776181847960724008478401818654449951208370771182229241685160946491751324819000721675801770217072912519742356346491614526520035462874675261541240665118776070878359868149380393826407268233796915315746006509138044441701947748188315434774579743447231978783354583110957510042660307958395633230969889791049673484993977785318381655455818062042633113201583913522227457135896616116858401181611731904799473875298525795939860176145977527845588672740386857296891799488365860650756576076872303730907922745145095894213050368524211064131439496495988414124333134404503791377182002794962735964584191649205438846521432188083698518805392597535512573359035868273534745973907530657775073973764896472133635923324886102566079252918376156628504191121059374592524188517231906333209683869501572188022477388414601156514879263431690871967459567259412831369399772145513297542284623309333133875528090690233165270764779829575595212497356649370633099564577422103861578187502125825088054416102161815001287266818324070253066712014780558192293125731087409909278018591887171812904875931301271295909363589456449246238370281705164232161615038109049035724499131956854870133024738404318154715264201131703126748915109797446760504579689270349704190454588942550760476386917198010341561502597687317437342550732858209395716414510924010308217826490504837137216542058235437583934775552869765060423845350543537368106731376569352091036341534785567156474552123652613614372102880958467100686734613220676331266482437573333517330195486485621427406230948508309529697149954695101561388153186038925345491198268415051131065744094179713040395603264187513107945888608150250019669006125020139728233129170238505026199961522477818788520606566796617019390840161623695523699099572990393907134179880744827690958850537496529982071870466768874862862873021153796934468077196018887571701580162067322051551833414945063960273963912106446567657632050490810758036759041020745583386183887077946225078276270090886338593496334947059636528950105131606757754474382481351801496814456722706374594014460431979710795045105347905199391859369078883139192176115717594304182900306502371039967506788955787606316360178257126105958392581138892850057845338172789927408809234365569914177505437592205278783898808182474490186542827187691467493813069261549081702717859435664123938247853277882214270465398137402378280637578477273733234797315970053305829423701876164425712521940631072419922187162452275493946667484307486579779299393114908099712120485173950556894407356683440402109880445291415773020913831683028230169959648300329244653230738134791352215416297759252432489929510165338307740701673590906693704427202457873086221265371488392163263934958883295468936391504310157401890184856057004802800266493620304685137425141480390657254113047072053983703415820724758407925560873624292012195750739661713570845496638172621865358052560999845636748230428627663653365110939249758815322806313159338109536578214773756165283843232213883850914196749431241806455073674605747672880825393758755926802203034727790584744812805279795491298277275664024400296367094537541381164657009705302310522998679384039094347124082021505797940440778678816601565690264979669888780307925286032120503505521409802959754366937057138197788981443490070916650495635954067476047142126695896622973749408970512879911396225383174893924107705397587948926099959875601361990561272102316416514150762510246342095592222958779407787255626276672067141645460677410602383978216664234569782366301510729881487119176893411688766146629354688564036371007819993728897994433283690485486186916884349460716045863911175517690126396013172006747114839619950673962888744182851516004614262476610161908153817462720659458139734443423350162087682165202320993704720689461669328681704800666118840484080549251106100491089236062044887140000827952019427814402029602124091075696637910065024982123403602028072949240606402724237410502216548144810118141839656566659725763779187469853623542383144193484667153695590557210053756823856770369965055699122161249416978489186987436322146156894317041289156956772128508811452077486526038828356609179137745597441429792975645276191013959224530034397800752953126968910763841403640482917591915549781557003765142998854337136100819360519563287627118271791530331435308482952913341078417507131750688847371788065720522164726868894234104463044668558098890038823607831835243452294259312168916738169429130290925897483969203875947325933459975887629076392506415004306933062578054735723647895063540227460917667384716918309690625622201391357646255220654226830706619933761726083106854433204766155604918953141076641635615687702475018679155889700754090431808716918047306691098922533578063670107431470176990017514008766353801865692626268175506221595399691755682089460182696365655245895163107876628225526870346693207233634575515586894269247625715083519403221719979973339281769388552347944539787821060483773261169021690345974287214361975741950689699861429022617878414111358583439558449859970252270733240566910082725778118000528923724364424842322726008033848307953662947668816262807577742774919423059164734322426936755134690379783951889544893180886891989811218885571773951163026904339191655619431402203323391843930759568638504107590988300447964990984510843797695438154582384705037764061657979582914969301511904495352395709356441763806487649788575507322615272023569115690404221474081656601864128596959118895857305650082950128518374991698433864175658266621518072666166167736989408081542244971926531067555148776090399194486543285750230088360721042610671377456951849230759594914467752319658734449475919512701242907293910791358877057237124501506334066045194073755438872537732429804835763889350689555300949111419929509298213440161325077226827177455718681585174064705396440666947846944169550041133957806281641398064084761703981464510586958483413544138910164078527019318655405816873757312175299088269217986781155085942307736100526620093571896023335884744458959997174654144693789425902557723513711622040709960104789596757591793120956937339848494249328305427681284103353321690246685271533639276657233428852585717452389247477608886546229741012750594639153681824650809868512849058778752601230854185563145311047467346531897115869111699072358969967913648663666193185509058475401202867806242712834175882800815029806610650887546002602862361948353959944975159418312435209183649138904195178769422348004909409109171300309456943565913283291006432749660578579072566304318178759122466716435991359551638359716371415559689480079037988492568869331180990786745527095619883460704960605119764503275036180741375987703710620186983762667722914026532586108289896988667072053422746858794301475053903570268027921218879211208574862666687326953808111621470836294402764436176887797646597097524128241187880177289077093389863337070526347756080896075929727070771971764157769434117504722972933600901331606277995412050000040704891406967893169786935868486078678106725071126747554858018931841860829164436335398622350336308311766271039747678158417776695227561976658079499183798268296116217471208415079400987827827499345988578258916431594122454794875237207181808285371716177678669608160573992514700756709483609599409258432228364732073091431426653872037086493228463208344268514905262599087637705885040027080253626496652034878709130385099634417013723026957193465830168226455238571786994079393032018489595379563301754523044104304124311290773078848386253378873365207996722058891779234213171453868979201446530926285213806500822118643044119262008949757631161344360384044509201042569205930254178282615835264046811260101915837122047185696820425128145823714757748115210617772063352655412032084688592499407660388845011307541011098804782600625424757279647579756105123871205358655487362262683687646332800156664002742019642484692991027181220958911395244014967493114068095366496822728328495760327485707987670090836709870276744941016878273094697325125801455608212374284704350257326414888849871620236922445252429211156298594834630455861147330312569699902197213393685855355939571386847999095880680756134393178761081232089735417451764492939448338629240840960257760362812527924333526866920950753891175890207171212836713022104813726864218054395348463528278325368674272452242855348985818789436637903042388938403395429781918096382459786969245085173055296634215894305517795271715640511709108717716800024243102217818318840309605643884126695711244912477231428256489237439562111464058840250046750117001561686433607750323335522492145756329496637947662912608280924451714289952725211721286219744522514120906962354161440495122901503462340520943825780756407485760975693565007375272545267770561704243871992006561330468644748909883173679533581370877701904732005425517857627498548480646618367084634946043839612855202305615556199107924016681925995247513008891068700393279323837128764559597732730289623795645842045126406592495838897705077261270924229533677232835128747146737388367767543247614497465987609370348448102498234324860810445067657784014313547524033388960066509074616651631065954292190164662759935219972664014544794865046990651776793208757711797294003492320628345273936284413054908696979734485911430778734728430134249579584659426073721735117863524209336105552703898308293743613990540636122500550510994536930620288605461657694470852056151842650188375061380277718774425613377241818068663780518030299217928391190082305843286932995133138727692856642900019340545321996804328081987804448672465019273901317427556525453980360783777811273483886505975622240350842499177991001149968377610628045641602496995863807772000978221494529817616164555033247173064569397787382105394468135264142805380700377164222085972380664815232233092358591278639299142212521408783475891803257650986213636625782978261964931996565460408787309659416750922618031377844951592846579874026090126340706625514331200563456427476447949191839108755171140185227308385850524681442845706400736982031544601164886743231598108969434277056552542647170919027226506601077829295258615287598413668888372529066931404101084866331201716691222059064570097376113270497530719850429769935241301631189491581756951181770756726533789580983484012554926144365941695824280700595158111110717404943682696079226961043395941033253556964504438529780197888486843758203319920560347229890613554421288208406428717730295398021109310217759667552452707796734399753536475462655915313856986019527146799900832868839349516302159045644648579529578461185247398763481673260489215634921493954969335426665775981601389992707574947813873088816680026431329497408180019066879042103303742509383691990192447788434969657535148274385575563276000871127059423876054988929215581738337396718071339603395759571555505344751863427557788433565578838728770819704936275642736747363397013661289966246204283902956451037548866160747213199491837186478051935456232326122826120010969644427671870624419289026761941999235386637909259826173217031760152524172800421234538625409425292312016010110597099561882786868802213048926048290495079367042976092408738042538905530077133912806193516649039431597145250785803689543161974322072035180594451668787517894101495496403291846187056306804725644662590053827403609617042970855117628809677050788834791173538370108875225051895679909247115287801118543539308056163949001150372062238510911663720652856589122470688281143640087752379552375133839264158703407879707099849613972315681548055095817902812029347781161417249679130906442624673230834108981173389714060926100394301511915306448832814319493076103115702848472913833143497477083590995350992323111210151714947163607855227507610526385900287467425107251752080186239870471865523348480380448409078230373023960294930135531521044985375238676346260050380073389841697539487300903664139310936500789893355685984376444680686048433314099144249004692370644592268282042165064922451883566177919174137891300271481107724326271850826177395678025705335874760044811749767473637603452747216178042612600298746305049502168531787449659618432322853566529876292268514881634105076486411883267977668078972853810167699469872827084899964244881562108070987347955714106642435258496094223810301837494626749853550889266047936728269720923432301158525073233280338585169584330226167046958906507985835212456417150091910498960982315319907010300871187249897386748321551072615810882633928244921032569957405981586485744879641999242627521875807958128220548497258728617038680378444335057298945984763993488971341685831998521183668424486371799581610801588544631783712830275558326669840391593376970179160485492435154440704929945442084256189729999778066745213294384812766849723698514790349691638379383666810100857668155045708064662506605899738805771838784901555789712132757389826182847162277223735323939117007864322215698572093328844360674133273626470296046766833760867297086882598669846936380591766006230057534394233612733690425955611323480266759671680058080867954216375124045108810134236835983271286377342669455703372277599058631709284740154696777542877385184167432008368446762863512395715257022377332310881161939442591515625976225298587724303087568561857153607490885963730841532585867316312086428085696867496887215426623133568315765367202229534616766218794932872190423751544236065156999698524648376580711373047669905100869847023204261186912062466317648029893909247143444413191529640300914085928487172338848393751856206095742740289506149838725858894079346828818006391390301256309101830629777307763587776670235938789772455606801458449070661218001470418602176775325188743805323856114843601762153594096904105407684598045813616518831202107716321503096021742297696779778917559518096417866536165159292971477657976666939709536524964928431107898167978296963607795235327299003931915701645495988525597128841189598005124880983295114996591526226880138976354024518803197262014163887307904160943982416479534136868833078453254908619709389436212246397718693909714365549948065361600962063224564411989387120625994407796281709564359123274773702684175455663557795455534110443800917087375642660085363620400528893071339802334788636160783633179123172405918779154991995986281222158068045908108142982258122856174481189683518278649888362662770732824457701829433760097679052404279528395335996772924060274772175123626312643548545690925913233930145121929466887957003688141704526404604312840128705503039027973887745740177214575350790062356697580831747827622093326511704246743900180559766869850939607678503881341352703155856572276157419003283353435052651552866302659897997532504285489953996892852618636428387885221116663888966789052200800109903355052416131013477946659412943785785061981065546063462860423784460871425960803615226180934845389442746712675381499977303044444098165950345822911447111708105990857329300316617171685392924637452612159424220637916070805685637310985294393057287887971146196142195504797113866769061897386850460117933670890470340994379029169357347269369706980384484937312648006831799603582432024936974845536913600894766638972136635299477629753657232717163522816708223149089679553037540132743125654753677685842637495817423859396294504798662137695185077597122146735103002448580793667475713304800092049350355642122437811050830276603317410885305806060509287628149672180582881799238529552569804151755579374722306914888284923388984937294329497204747835002328139572278965433688991866531011252208533007994207174431424295501472281636450535109779011800491244365339613381914754427439515397781480283200768535006064390347934720962391877059671311435701315751062358484838791333225100885943977367965666868826869334166818241132987369334112194612595282260730926864103315480423746136498483321223206146516429674999915337162241341486492855142965544844989889650110247622214824665573760262456914160875659927975774171784431924619445823436922841841580498739708145324273917048857911632989070767869769818367697150359588601922067131191432181621153021238111671282007175544877881546247928204430408294651363507599703583739541635512513390053803216890432423863789228123930903965090008291333672058666010879366157906836264818880434041037656835143913768919563436516529704255354107474619335897738714794262017264087588356840926978174299146908842436315753414161811934089550479824693891877626572830065011966637722174208456695220337201222834915972702529665735106097996269645707843874920548527345574981351333037817280879355041922703383699857620553260386384273624181095309262300783682001329627224742968772035522734626886595966696930239111328976638362649451046570475003363717571209032620363721067090124880841525811772866230653527909161190620928943220974076790844380255525433718293139393217218053470361892337790066783781520559448842823012388999420049741882520498649057925033124452219282755119459525929450028988419756710798935735825784958176016682559919715510042925977952313895419492049130268567702974800606437617355442975654462139026044164434752247723663278457793202814508960753547528876369799608947727209365227865849057798022595357242960660505993831796507868623983332478431150235818361863528290399130148211445746162281280022524768645025428811447393050275725230270251616100304064407220033727033056126301191098686599256106870199407462738612783592233816997417608918482337326058840535780189856891009334740241442842880400580942504380127845671962762316873529878584280912191624779739723848580185473653311912702363583972760320953284423447922526336321647546473902985305504654680688427233619035354014213069947624872476957730622781337336521337275064172622722646405776171301414067241229539495075881952820079883869821887621986067238299134632732086935413318931960085517428351018923180638183875260470209821288918984459939183031131558661373673334599203152347647174756070275824638796246596598752591124774386761040171634740974640126049810400946856350600400673422532862574210428750084136365166317410911812060268756423718844202868091560950445710039782702015108318452659178801273353597925657354445147420648149200086978927737067688898513883045197276282341616084842734549898619872180118696601729233230992345708505603719424977071718885595785190424339251623664218343281960509146858953992437708554557671193219296451030380906219313484854085099473404424116940423667031703598399985344315609336106405488873114172501745925677438656125460482197607465936266153978147280899320491551049620344092143452564554489413317367172999936105906503064263244883528196558447069688588339941226193175750115596417528601657376022618844483003779191708850337625293873172622303581875172989813360185191170620767514227635218291692829057985799168430145216735165183496931726133077213895789207982705885454198191602802862027165275028624126459582804435622599846961993336629396966014225451427150155523596912033686823092686032111920213469887271036295255659157830523503773739193643264342256436494104844085716165073393476735637753603613254072444908823442835869756525007434825707962529690142579646600915474055501476978281514178563227005866134995198169864712142046059420578180116112984191102740063131361488555736723771283289129608623390389020231019042982825668431590650999267428408631048084375715419679943375759451243463625998197930420098284468271560439515856703776597049343313503260553077599694536216635943118811474959064167842621903383921975649938657750925678912713025977004266137832992652053463127227438363500518825968152468146578021827816665188004390475861683666325295254201465848933731548141675820129861774943340141342986531713080161840370271316755353684713930363775923102541819303454945466017217745304153347245242064645644499741472325488567635477207517588339843400713435150227882804319972175667846577204006023421819775081984878822969284826692675578627056447112750103626346795811341012064398518658977033236517090671417491077955410499874684254598169769698597712474334553393382374015345548779514689735916490299232094040128755042154405454789434311921059082441190939437926195004042110451274792791871247454499074224930585921429550441759115423713014255764918091140776545170347120162227091004814423615508027524922920411767334788527187614140096203087699337466655303481041738593996454934262359151212619715506754465018429820048547202401864310079041276430389862457520504518624841118579901945709928280268431194226003444238826591854659934653745421696696978304584416298538706666118082341058967702505533614889672465983494610717472598705862049969583588656250514727564929390565356407191678173569000306826532147100359024151684103005669057337210563871599922370014388701210035132213790319550957738553767316125982456684742311149990235362395060348297144197991324457975131933153359823689245704726748564410248352337069195413788700843695885918385472409319317983560442280817687864316786237808051417623053360920028872806055726759162346542008049453183026811348573993740535004368056768400335072242151253314484832544803155119284027967305865402371732255739253739310503751014295674840259302474011951245321619132045975697223594073764535758664168232820964874851405572472826542719806352924080476233017339703497999094567853708675845210652937410375598069999290122785836990274001004887593835145796337432829305625061506448045732903364199571831859871034369689066959177586267125407431050915024213931375653782124790114026641709897221516356917113381980376538963566541609413089007192544037872159409504708648648701956682855082732936953189651063907409395300353814091330353228570576895300379040843760180450178274215872607428544984728805160339459806090814409615530276246719769667260072431116816129150093866129967520529356492837651992194511991430265524623281411813703914246707416675970245883373792038296268357031481461508636674350487888333017562128670594635239674265515829232941361869914202343935408452477008982947185354841909312274211347672108031315584410171785095397767745527663972649579222394803874614636078123469058446498523155797206025256985817654116595569290311518327512079772582927065639969939000804827807054471013336921677255399184330995770550016134832908458999288563015258463654366276051342222303796248852722654866638424143206396467912429768482358585179135111723914300870982244057067360247126690017191487354821308071596690021789584350125239875942400608277938748412287810415655443911122246197321924563982464335815129324100259043028642786300801393946735507314417610051527920303870707911272441027028128248548127401260676521339229518756935703217665189546027586737808104787445805966844838285773641601052265647176619286481083842835577964912559024831855323995254313715770063636619688009633172378924043691857566474135822081499356799845703833812046284850861094939109696608672638449150398496943878379089080580460037295933295149885745755297176639912810503782261812642301705273718579389025639496851504150802988976356756759853018697904974978063017902236988329780214074950467498097469884638389482719450917541814940581628854342945874468959600598540381143189662920869020451178879490043655947640277466003959208115799619787731928811223003356969803834204389433307133288951150110851693573015086098402229377294983197367663304387231758031400645614264477618625140848948494819753734953221133216943201040229043621892085187419444749104844564717843356902109034428245431021961763474160113077656751080577775479992281142448591270343897120684330297505138486355800674893667310317946677277432535007725982375046407007121886205572964148573429138042619877718838950070061564245468172288970594384452734414207766216798428979397867829242255356102746507293179800236797486377750466245075734558028199946104026925992194907401092990437408340802722577977310447484165925892278024073739695328939298725704612005983059554241232941112153818686491467598403961837405942586727875660700702886621618483416321943629030809413942925957373322134707522380624657286023499401328018918796376737702061234178525694733747373412448287739135931458058151770034318619422094538144288125164378908011758108095874851589790985318654709219873531912804840133186869608161801090658893696258851279214966007363672681102146997205446154128213930942992284995560583023163279148811442688500930713508425889901155484758343753283268414632979837895813363420725646555269636960230263366655789064033835441174621599391232943031446524731456855591087140733453925893017870004533528285981775396090875497519112717655205919212099039126315360555966485465189046652782520432439233655666671112035789675378654330154606697847890750521951059808758237876893682947853561823726753111258036282406442653477085824280978620150739344850424341693234956197105372158828811703899541463641070761688839228684815527373640460301470333988184897065105227006888148787722520220531691440380926943378787038459705977985778542690194744756992517523787717514372754898945782664091980057364471802923260580309917328113975059214076367327031289735196709728039408437948692278001034055430978275972183072821108592276086185473962669152485323328137135008922089908356039661744641787889887143877235212104657320429670524811249493575493269683420619286444746246509047997171515792880476459367428321199537094547961510261647127483166141722949614836947520515994841273886338624730814334816900759385273342387623961988622712278119032079971207929688470187404663363639180370681716083492102054508055975027587634292769638063154207743714235532557337478393663978393409583790570678948662650704029989233748929708593194112278839681165396442299758557861864587977546397088839009043279205993772700852838228496126809225199967117295650395644258421478515492384440700946606999348684261659576544048479597144553257859795439925084942193077671824325960582835994477616336503735258633439612100221052784313492131471458823098184092634161119708680374231352248379167913052629038652264827098498705643219905856727798606601181727760276290526938044578695719792058696813122371080800118192920643961073190792988546822456576271651859749800948995164645818676664657621574254620301682035934898398530239821408223125779091741501576068585066675111968495905871667542326132534436476573603907044678709108861220226612625192052092054399649760207773036169954480433411467972972146260052045550422001273485600621785038410354621333698387146603580592063979742374227448547296472142715822562040254892096717633430889048691902536353374956029486773319248242557359083675101374459573949916808231007088684999572086707380161309980923157047991202246477521187998732420335960978279917111193147462637094286027729706859429921183556437743771121185492508552354290420144947354875820901154335668240607004588890156153353026013681222170429044837396972748699546035682107830007360772219197943729825919225706961125283770635266244779253187404264505237190852893386343838111773050772060072127758408583526799412813424636330100675288419429274461806868681934496870479425490285924266020335532686463222188018647792793315463819059649010995072696570915939435803864096468393391252848938291499425453911142634575585136233746041419468679548275340691330982363222038500204206537903371730402817550275660622578888630443948751237275710004891699890638191937697284390328419538341669918187674244724255781668932611764660196636525554453602695747084396758326531819443473513009698254572583137539110422276079198535069673495296818572543822159841598110883957096679937352122407727567554443354923924654542906600506843341377291748766492133745013881444009067456608000418185950538141456825599014900507682493633477457595221294787948530750408921979677489986150331793340689720960688076813996921800219809117666704176406241081880898226022857226614566388963443021936675491748252247759785981152371080909733800541242886716844583870006506429829018930304136862007202550936850345557501758472087148350215531033118463174877910001022726195902494750700484360295197263495964972885816204481712943455353324837044399926241584948822305193486613341044539723884399700444039376773058470117176019669861933034329720824209917168668644447458169907348372030537770624512181810939042257019211902685847145790825544819399054333268504147666272553870723728831104590170676134383764058848172283256505586271560394992129618282254691726763548504472803936707812087129857524988183000800011824148707618557008883891364988505048024817713683450682490811520872565043922249911524327981351760738154134781577992461863177801801086729695610110545696843610838884054326697448356748343339381051468421832139139093933544062235369662025808783057309222579410789025370746136788450735525186875330049067565628164025264944195363056690222736783843051806439096498442253285790888569924116151128831054975710059701525024851607161579365173169640383318257342831355733324376541469606011169204414399685321612693957101703526508175284087473260258221874996664612370006502307283728130633714001244473912251286822572791709510646578452398055206008361410686524373123335496787493798898380525153592966093845360436010201761336111166129053528135219815252490741410270773833047972362571640112925367658005428848546034006243136949450273113998578928324533729233578480629045023658814819736436966853792845593102022887450526983212499358717850722186634242627543520714903089028998229004285468620924558937907133397714115269350608355558063262814187270325590904347249531840370824340220936468693625356839633016619828723887230121937970576540917884366482396889246552042875757848878665471014594992676242831604784531990491307215768530801848991695903894005971342150368226326340040025665017157006367730682644952927103829588955880939247519159793913882042151484207657092750453384381122641697960100910736488046830464763352456399929173278437795995387143904438551980183225250737591864098119708662762688382506957115305475115341662360572392835991229296112025751284950669959466352423864429229993596515962148136988985463060850731690698384979416554956504896399626603359781931239981113273983268752540361982701949653848287775787491301842694124113887389046720671924499997671391288886310509742952979061264787742788486428813170100723472407688969995631322590374576656833131111163212262563267539654038999716086966152340987073602772218069991313091433074779466177799879195223341489248517798259522393277820761355928265812870392708653041613050552738184785206056683505173554023359216912562811884644054871991688855615206147088176341879915282102880196298662232142863953019266321798528787248761050413100402873287825737453224585130230691064383928663562199534996909760846741685437234968177257269659370851791624728852416366375665976073807160502911418333465528993934911756425875510928555876847884177275132066817610246597435381764210506805253581368076376400052664978440030336305087752312665818481405192003727210995350124834173571244234743360217972989220839449328509791314954655783948591324210488119952871894065860206713116569766409593560247564330962848614616200717133805621945091819390001928935378932603129109731294628445869272977715198829576861884652478380291616536381890848758765879342774771010137653679566240327404040687617993762226866686382569146806887608983432210870274716037087051112572728634576923875832488091625261398076290194927376312802416566005084052996367125404068663368973021030092868704042993211278092789356981585373364215739180495714058862351162491120168072295505664060953390600332636012136048311663954181603910083097129597595130817129485987001043533384917757547186577525571193248008076545525327690693331791827753807002705263914789989011383855613464428050476111645801876337819404452279822913149290659907852925441394837783450271073933743062061543021979997385394747401367950402454328217916610184851293078321934101814936135540724142115834673886612401702623563980662606609209364040582141496432063700351009687470827795129509025472485427474092619660887477807209595519728760623243965169950918265202063120445725795608328149150049235295999935094409795633537407157695066633656849415116927939486097887059232621415836540462285526015746993490643994086728856670105255942159094217301122645229792680046876081426472922994453667252889459081827869200310819530174989857428055449280724810345630997520681625574220287523106837659445018111203610627465851086281507765561594092231176586751735703668171334135272272248456724820517721058109826722176986912424188792164047159047386424962775283702312522169206207290945103096736551753582639456910271861200302736241305124283610940493848729542888799523167324436904896115496035506681345868900186081656767516556444089868171774955555302621092222675951087689081309847521091824287284574684248366874488300562192526365965831853235698425071747367813173016714043354700914610863402707408911734771305617165866484428092161461963040992767803012663475602025138673022061960548817911023998442141881036358030591998000347699145608176754084438217257628890025752290649192411600121421936872495519010583261060318207978048336606699730433926048891080048953647261827481133835151916252773090130611883739755473164596942003166322265418500613602725152157061143507576347200053028375212561009399369350280991327369009125450408751925153278069523884221207094061282352864061445827726390308070537271843449365122271216557176953165660895528370947979807945714484917973832529799031187657492810550966938516244805263545662035917040888265463895206847498805020045118480313220068910006664159856440457147892357702385398560013856751753409578426260468782637820814294606571259542519534262532847137156380163633321576604977106002539207672051108998263676856746215409539917814873783802434088160532828960196070905102447206009365004814157859264086903352481605335946131183264199990124744972493407184657703214939528368212058846488706311641433557476519972479835526589688512687943864089456753777130115354995005432432765821543949442500890164798009635759866362589874902729505689052916617616335378031813261388965283911561074647796510919874248408101100714132200487071763433513655095131291501285191375128734892261761346173623308564727682637284525524404642262564237053661539678712124936792616044392112540052980633703876834972559812500189393729394911909467601476340798092584550587627104187430484506594347491069644684799121198092059462434034547472848441138362726879361443070199163627606716096030974344980136902460879946842523155175554560151143785910284293601351326883168279397616369412146999041507725326091012293715299384250969278008418437848996551885236142434253677443185971841789949023690465322391672358466484691167511422144077410693503087358166366182477844541638229766957970806981417740255950551543986795738505982516458791508329012011148505748202383782205157428431099007093602130459383921185575925877160644502346882664402444025824044630647075069490208786575573288463638088882164558845877142079778923976091947686542776260194738930970684363257222018060008159721799645849228661142467056158565701632237162903646678331362936430568539419151304809236507452634547240558966275386204045820457362856432885765432433005552296556262326488519974417471256783059751983053633127234688969951559338114124069568465204503241964799457860404462697789247310018034347068825338477397959570359733461050938212641967694190179288366973715040627656121236133125458686797325679727807302278782620984015586321428323483726154819523959788308552797500567484223219381327244970232539168910096701166201911815219429232245046897806307817511579473798118263742774042007311416645432430766647820703904891667867143951303894984343875167532354344443739847026944833031413630604242167396367623741026960327361326495449117645574182500206622420781918718520282133333602263865686081456110895678407879395360450916802999703439008182587554888403099851959070255120396852527745128963934317854347893526855472044001284642097599748221592959451294558209536651478564724926463267392766576572024176816651204100501150393429220013904205960002397626891787599924259781407082793054892638503483572803644830794371580594958246496535032263460772022020179260786800918924426857352941840223244154021653174406996171021038091108575769164271096162552982303274659040476910464909443140445737401835908966893112322483309413225798210331712019009420048087244484086983182881328614461951802776025220944103211436475331713084112548168794105883812440535904823423999670527768863442333885421613774852287077805040246953811120721497807315972354818060413552312871469103735844337106127312636899961457329345959759290667444494924525787943550423016334974647184743146737528074589948820275755825156555395308577948265621400680213199339897821516868428693403470275220517477511676344860790936971232666047095485170070990937106881609601998943882007510489442891542273495537722985706974778319247029099105727635363122420781550730768535024649785023457353473809833867813366972588593080984718837475655150527630332412338845777302349239604481306485569987607304714554235618639327200218562054707095264827810860678239198756478471673760123894951856799154874505883360976841205382628652783460151942331083947478745601079751444381453082769553200103890273397080520450744375773155004321667455814047056409724504185780572228710692174225413531690217698484791080347692309311878415033221084683391135763719057080978018493463529159456056571731074909029067668993773679797388553210102957348890031084609862831625461505333254919536726686380162221311993135193252266021150767088868659756216365792202828738373412525692999566501819387628468863811403461207593612637459415505639879862833683698795760616395433004257952174779059390070367648430205976062844953156071167166633052299654894377903186958715938957879790660029213883953240451246762534748755793449262141379840394480524563780522633172183185419752128720450265406576184956129879972068085321815638442964415154522541805752753708743869476634415639473778503226085522142989210068365143084136855342898648181410952892073279570866705527273496772855464457858629070580634526755218798481925590283410642896066900091910430771869529544563484058710858378156770049500075993548845975955013988268228468217246283828013594032434648644034340294245317720521376695727977343911874746551352237986740370896353178869305059498378045379167652074506255057642286841643233493675354053770702906602603410855073240544230279375847840768090711968202593341705180052654219961092387993440367402085689432441697040501860407189363523295094401905159511607943286400224620240040009570561490511470968411173595896549936393171178381836889690167585638403548799713367723816713914651242029484836269675915423390361273209270396359559262731728133605833374947906247909853412345516819424438609573597644237533930930093704008885322193128242839292871213284950556356775919256682870125416402015631662596630141733235111989671637844589801786217022483900655756941272107253615751052144938811765934461661261475760443704913182146918563233619031790851819336866030176642708416585863039241817458963997302132223730932379794120764232885471908589070517185093704182111951131465417523263067800701231617020225397602718956345644734256342532181427784364134847117151529254129353797634590539653596290595156206172344291870840142699250450402598293935791066719907315557481182469050624950238050417448375625758346816549532915684494427404339890505369185579392523959132653523188292495956021642270382552506389536777696780778748201152896339201499058353347631378511056488058691790978054021732430012783527545177266527638658830574284624134095009340105628131373036057925321419710880523877346798256873503142306893392161400184083013804113942259740852372128094518409355060767823175603161308924704922915955932203343402041081473604972187444197848678884196020046591757282060369053292744190072312258477435406767459853560745840417538727165794056936128034724770565149623451147816554045970989408396175308783071980347621666760749042901713389192373199600820794416319155871686167150978282065568060215758317792842022335847188013259047640632715488763431208270158305693369294672733625073822231752062321798567303003245629522114448482053596125837190915361420939063604854468980876503815383776339595373212647510244078850262166747006329422166220610522529896895548927776603590977057786210942534493468101669866296817435623806509176446255211789495336353343930475559019308946198910762076416703591992474462903663746899869922247420582105696003022554600113158280869097554363553151722402252263230528839151214347456962275830931572177245128227639939200136970358077613943423517197040344683636878305787702269761998168347832609378035891296180665244936380760024289535479077392643468468890072308184219520742884771864030579777739571073778102280651862088040048410485066064059784685162030212925821018404446040772335528721676202103657846318668452242226152688754918376007992064970026734411566601703140343656642905655949787643447332087256108519442973684619786166236259931132283546143154201963507491423221537128717411852753588238886927030073615747981941454411947381906144386313167730389429749380244156290952718388246472545726641819742965665733739077107346654010186832468723261614283574203170978766288932184832075082827562955781690933703367030513800058553277031172892232530986313387488925078589417916210282288634660645851896939891662059458379603887434478608675160772134950078270665151544095717354233305019357188248791948251578249798089357404138303469240429193886466143468674540348302894170054405131330058464399238697459371749283254818896795293728086732906074549392222041768509025208392738946290018487380985871402465219741007787527284943874942943727394064912089985962632629996709632680345617155822416695839291732571611346352576680359783856005724283813152882912771874045007490548633074235175649181300236323498457565485123852194634281938162861856336740115994737264253998407409742002000277337157621800460824685789568961125606665966005345306724098289995495069147646302376196039186281619767645018581014655855867424824759251123798217202585187275486445140107423078027472492291425779683192983885905989453460891689170964869564753525754363186943641374163075429921664243284491514392330857804546795758540789821709120496886979727315690965866328893650166659629566027522148576255269141688100153726568072351893024105147904270643456931069879619595025972227766875809010401078901908583219742431509780306375153700419852237231454391247323594754838930514601350488618155385228407021409729384837576873613890779696009267415119378920629867746321416859350098183241103072959438480532176260279057109162445310116879161888336195706599112528689271052454885228503847856889295807015909840036438079191547507496422648191535717260686990214334438718932078775071483752239563567086722544834745063496010411383724467609653506187225600009992506026706277740165864427136258719945616061059700553149478092791490049436483444631307870137112614971139377917811659976949452295874668965496189291375131223413820180252057283501366231878429540031542433661367074083025351752282093040595650303225034638544342011910666978393586817165015808765755800927426306292347782068473544147401831808244790993186916267570918589014874949612650500570771208523840873147827739953603384462811035090394250580604372034090665644082390951937459286661164899576568746137907840007061456015804305003540602052302724051732504117397313904314556132239434305079689670082815867111163648888964189867017735077263693870146970510722355276327562624032404706392807849597698027399473096347574794294812219463881049164170555719703790562929668879668295743277551712727335960406468028630296935129623330592593507566580897665490729607738902621796765936894742727030231564686911471066004992428729364054733858724755419666991028713483221311353277245871343610371248985487150471391083326337898333521414460278801631871620277650292414512841230262175776367859018666018470601897906580391434313611558375656846884979396423202313309653901233999044984563413305255393050222779912944332314440876556658253432700203389439998757752913130632264376661425481811799235211596381218453596680404959553298598485334538735622538824508014551462913274990099450412655570095408556492350558764460488762945141147916637922183173261758292381880213443582026659292277250091011857304696242872400694346416594451559087276285513052113463499884349875855142245288722519869765893139592374816486531446151365368031090201918558472178247264022693104432708178943070066201366727785733390573790282120985094652077957732065786231684565029073013221047962682840796102892637449954480485002192278921549486302112495923559107947211361448361457943728025114522118291527371471923448391513863349679914581577111743128984525003402125386333211714146655104186013581550728686767576055949963286402737600373402765896204195732027453129897414857129648528065846523085098783573134329371735864733321617119873443203803213323944325059780146113500133362574872741215693751586167699173880996299047096608527155093209510050956987664543257345160689529711320817242857283223997614874860780550087144661854032796204838827183710754802765950220559589606789852205745525689375132166286969020011895524844939323765734679975875755369639951398527340035123493661143882133455024317263497394531502492977504939159044630607079708326565466624208170561018164877664453230453314677700067819952336301366315092382001403398267581557636815459843746117966655580685685407461574703439269803878531502362618678357828545369596899431588733835843347839621393708046710630647447740105228791032813855549540088875827926002253194795549931801470234534269436519678259910404851002488564948597782403931355945707322092896053059378566927415154994113083410990420642130496826719276933066981645816287578351624965092587494020824286436309474192790667659729712247276700760742993116397346441887038035150035702740352471848392638726380908073244233871559078513287248378703566846786164629229466036987108653924164042687985017355614260428616658668368292719620929606516574101691264642223938120335266346741735328015098897479213439737786607460095772500236530805170179051629117954400865569556099955402808850537373450288291281607260336910978314684045989195381994063096432886240063209774045512019634818072997976316495141103718749909902117106544870941764850962286373851353791283113702596505779617838529742775759172972474209652664089234840640389992081024629493450404981065774226897834820768096279594694063125423415466068296799672476666550636555855467955142757708667803655142337065845586865329117816240850903705130707704363826432141992786878359718305163638013589738617837610740972272942383487988113500232623265445155144832466416202189878219419702941972141175598927537645203350808919217523840772173229000128784930046620396908902378222233664199721433309368461323105736628559041073514635377700649258920341933980181384018600598556113336454815647503987161869950410645963749457252474141662043527477769798937896658119581857043333937203391890402899747270943475210835521475292577000894552500534821155203359601506449737270860190021174269739564174363264313639173381367406434473102372614499583158679525762462711936946713497465015298034720109512037887013403910842168393207984376009465988672355433867338767022218337163881226827383753770738399851611483483914940253823401725149292183509945788809447523120315209321523700393816452567412804336105281799708061458048141123455539231999536847489313374470188513358417745291173219390486703843280721616719293889648784302094794931888002058150823955599155541952708061897923522969369405246661680744950705403781974153551774759883858689007199705134724942891889542044492390243459189705440821516074667949924447550369617713927623596443850466272870104930975098376782780682086417986137342656932397258644126027510551484447738065406647468998500730030577841761268843061248176294109843717657809716501076799554839675484994052987503455331165938538112493997434246261456692928915245117335798668181947351461077484866792242172070762951453787136614827998374901459047205306502580036975940048228458467249450823424320627595502693909752427990631797069297950757906504106930473590246242124550394138547991832538601172364738365333564965398124176012429535448471407883345432965483460222107933170759664026223896939458990840865342091327489077333206120244964317121653964060306390161709998019231512702700011301626397688814042310041671553640113064713392270800086358356666207352858871095918746988339348816601713637131638178436378447391079189681668567114662913163297815073300034146400269521881187243559163252865625488610785714473292804230958163266017727870793385901226115903748271949783587947417531265409887357825501777370088375369234364271151212001448515352742101373800060878204507905183997014080987329835809012041491541214029187944970223505520156437344563693185697170095309252409395208649614381172094821903612387390289424506525146917627755656709267159749164553882881282720726776540099883682208667486667332523505095048780160295943080414903721977095252372838902647488484529991293911543657396103036267075547513121191361862580678662426371362708836776825636314370707903822918446046523921694514555582653266906232141378839341057377253021220118523561410123889842572223598513412107865867614750305114886701775982113126785770911050319963622939798316419947929055488116505718646107154359390232882958429472565579996797221808757727567093477635288585348890010425040443632656527648535067271238199882057117334307073004884040867243157742438122239431138875004752093967759181506997893436694099669443791289901356805931312986677419968085408799290802582216587798713062672325796210171899236762155157069441431443967633473931241584926597004358397316621409614212696250799154944366069668684563145626075685944344456556050722479190100265302175654101145717472467439027099125682475708184967199494612913750019327762666474477923790191938643589454948068200510483219271027573316487422820099030989691621121618264660000500977984767258691836770650689168425667858168066174694719304880060815639660592811118093176308821201566364847841544872196660845335938551136830954209688052203464524584383038093067387857125868030628051648569733388619335518668101876084317168208619640835988245234235249725395097272381476556018717961957726312678805942704403194457301366604712387421755583793094422539170614367508426920338690641111331943453241986319971697663638019309682256112437214213895881161301105663309922182322766768736532649684771791731807051762426951751692450480888150354380921137414901872205252086012805364995916572756861774113944984847796311785211811750405125328946301728729776411079307330643443009180620491491443322648429824696492807298671623170600344926821488643383271277230207196248978224334864437492620344944652483187930722377244493948695869166379365633835066827538296311575510481588538872424106391922407860598721232671113230842989999940712604236458864080364421428143590191338675352292522791691234381571841551251479792007472077098994745226950138047119956301334873256899754952083877106921373361748897595502287529312642083605945122284061278213843520685595681522784251773773667909040006039671444716334146129639563227310055273006932964427645804556898460700383308871712538731974767362979697560293029410820716476287768660332625518499552188600718832828065366377001064296986054433570315256150775326670598697970925164089951113094261125394081996069635328625161384020990760794125568362618838229298203091181794180763127689257715719766533982328115322532507330613230777729439622323246375322306533497052782631376448294332531647581876523361280818261037142899562787481710298752006362490748137103341536894835810819588627099039761892241502426952146406503762318759136491672251453786558554265776022164174813116136506464313290060481223407950297359664301581960784515412378610523813050318591955263851685058113769495586212667067898291982263241413761410839460692679823710507948285165895196739195425962893170352814664033151386664420151105167684895746736048142245136835139870829943055840391322672232734736479920197571894987224803183740397650989816067181141170335731399618375341962813620438618794932599507304080044355561426637360766772081147994189142360895299140769479603661746154805657079316890712060107480219183546585032387960065096338325877668579002397092599346144237162513861188183582160697081955433122022087693499061851129606009780871821147916874179568180287528523512062728408945107884841826433219464056072531118207859511272146634552668033208870128155929716532411836666315808336589591087623896533937943585485318293025214064726121049460689936321328670744896392466710422135817796584464383764450042782370696000771197616538026271055801869897489794048708082978802002071161269981514993220703907424403436515023249292525110732560042815269666647805670922450934461798910656180582583105072035418729364751867053518446802460225444976636313048716718359276562319886109058790111950474589442772325632019755983260299544988826632734632883750022436559583886287386534424250341792961898105507669471302764918744888346384817988523036699646577940092737517772624981780602829265880068930960004561976777319764408983405952172126323556151379023889502737764379304755759136881525934315912182735720615603573662234662644916510045576083067055659194222554860360975305007261158710692821131695802714565298728537710825215459245459617205289200296612731048754066283663492487713331150893543090835382156313641306172635817580750194178522630089397123134956165904056338563114553532510989796592986576101604014198477418737196341072630032937479330999213929065251369969392817597305030907619248719851244067746174787165855816742462679577967505362754040254509810750880617776339034655304157824720692307910867385216172069646321315276527051726487997680094628004069231292366453721836574300050264266516353281257163107552144354284744545568114331344138678071366495714717247895498914521111412132859384324231853396930870188465508015374169711107520493224659305434032715260468038048167497802040577246558207273435914837288882922484622876083875691287469089744368761085985389054359142068735048764561012604442947584224211654104313816211927520976600037274655885304800992332616559348630211672771388419515789520331465579331657851110172108700572013516024612702850672523194916338678599518779890757546354294940218027691008441080920563224779683460006790422648442391240586943551392022097538054868775431917555579468276347047039682216764972004210144733750406114646208205847081192252578163601171498728391778614295813782224122207627759243309854090319411077559271786199309819688587325674994912667239012266898790472026658539874236381354814474207211809272774039278498290500985356698064121584963963865783363595859499090846446152951080764642570303599248567644131074417230551593615453718625316125507352654454011873302026621294721718667680983900793481597317349330838359813662657592969302069871131758574212082911085923476366082460364288675671377273782603260328296754256397465414544912520631307667132144290583486520089493145837669909754134702109733842689174193750791760364309338972634416259485196173336859541546380481276719972122328577026788822501041731252783601940178292830082989079010076547960410738066099008154103689129197491749865974261655589247898491045785686948704378234421311118362968683856946426246423812141297331056597885147770218737792458026781114434512899920387416229130259217282851952828733996842612116311572188212377122412946355756578610839663336564485774249484494241161394820265057586399492639155963695841225218172378763098481188028785422051235702763686522922215439871872598683380565560903241079137257739660635162293269684432645665270212737003332446130498087062836495098348720898608971160550720801939776970049542105080073340589597242784937490817305735433551910792325873831870621931845359476603986972747303684916813105853056952006478767613978998904872158590153637363398620770726079643152416534831074797078646440049943872655760066950180537245784200533434330526009350094693198655067975882302986569436355461605945064193518685269850745125741156664329360735521291827979183465728856854464618686501450829382919946295674688021113708963422147422249420743779215649109607779959468978723504596052953720497927571975075076882528488476204640780803269745593459529363196482890350532871315161242408401765983896499859528956757959758612259275223863452741660624181687522464052359038713149948587273817331694768350769202982161793438056370348042909751746275535945430908617773675354013541499280055961055220752658447463247297643064065152146086153669144443870804075255759312232896424884071360051518949437943832635834333683014040155275289713192998515962726435838799125280558081183104653107845115283666457043568730528436524329287646843746633884074865965406447357600097596644003733682622017361282180077800977842096723207748235772943789614258642129138892183389014244615979053527539115650077812027572852615309024594986441605858506242184033441997329511427039613249606174613353421657151846988742910341980896112976264575808433485000644395575933853091390991633487733986092800746964368515822145678379968751391249272500766906259318689691365600547962834529716446995339451536128736851013813943230601497945190481928188328053897034988740835448245979632697390010828207802201782561073581719155196184528547959736636272950735497797292813320272997357378924541796042532520800802204185025572819150731021969423520998003477474929242481334671373245079831445934301769598190042333283155291890032354318302318559646136255851936060812791181366092695549630421024296771616363310824608430482184180758854676804314594241237861901231683429121046550435230849923507576690843972711538150334444209855971071489498218564092282035484613573896279630425532957655314646448774466324151844027849733198061044132727565894952039026885384057124014157798965723827290256793646251377017874908676690746845233930807164416690169638319443214561212104955772824613836103567864936245303644765198312898376574506966893212561006768458810062976281070791329075519755049292057730596968530990426630808600488641485582717763305730965960462151796068373127833040563987111537731192695442364162971933866890955488879651381600681946153019609130747905321695152374210972716476940911591453871732736788239109256710861012760075682706767273247799524996250269901980389439327360980350166032904106060132840544870969754563374802471202191965679956845111878026752018260740251214466195755753914236986620860802633681770345254602197070552201600550759071407283805293031416800567666330538612605194612079665990889503934252114611653403953405862836438996905610172836319475642250690108400575907753104476925319332308357886636721087824847319804250550314021005259080368382203404517210384861890665491326145548698686314324414104076259668857448210567150267959024641395028584497388026917699978440412127202451049594963039978043333453440639806762884036204621430372150566854467993496057999756067472044891830416824663914146993435025113234284120844930323667203657142342718415690415262835996008481301689378478413332481493287808245600479830418515169321985355262399229101829832276143103805503003134038709619907434671375758130623918985210769755668799603160198092338790237427426369681999692682213857574649196440616149468652535460102454415958238217184426885176238730381347336740183827898934459955457408029720483116809854750821485304574117647383717639430352678282747055535590883949388774526470914542519660789976109258826409769027186927796852464246916096894420911175336560730921774488649066144824057496077671584618666441277989476965320426075651708195031500350507467687522350208116610184939803596581764159526864895683167478489788758729202306056462562645307163482511795279391832637283091627321338738321437336496724505301490725013911373715648582440004488537413317532691132400452343752225516992423697676433910532725912431126939893519319794322252876499804949850473627797467886779863608689359735505712717848307444142314564526941485257231738444572552570091910929955770152884784094017493402312035238408845945181435580156507006822620056024063319143892451534698023033847850978307663822154132992367171064593485989278589441420054660154887678240367727393511738443407719852411360787617143974483882891054183586416583471872789671490866026348234787794914634993771603430855944179090682549999512015103154191011491495050890224603434595743729576552282579359369500627771424480614754794361800298206780690791556788082963566606826898420464298757005281089828257129440195249034265411574834824079873411650297212196052855095345016050113941437277417068646623056232776375929580880470280588215334988640257607718098211744217306625929177490970183730848380577608129245295940546663548541257849933939289521502229785778500812205117319186882317613592211059742971265477389744544302455494312373603746338577514141119879314694790492491546349376261260368536200294693331108293728013297001176231588522034121096894772311634226432136943311751462889219251010355377102729257246527546289474760434435306284993693398902871079819430512252181529568649934047275418221744626548128456566542704439049402650994083365134604664909624542927688631708556949204272842215374609636299807407072942909654205058031381549687687766808159709166734101631300357234570329006516337501087313385025982369357560702324040992822738769118023363095373168990048148609664848921240959506534500682456127238867228864013842256937709481919705314195946676867836412733814120578529470975710235788148950566484827926856180508483489776663158924605726854561879254337160453282564921416242364433421607065580061157422993893946533952531204909386280852303708248260528538006727365888003897585274953483595161792330781625865782485424490010343311511099057183731113659584871910255281660272530631006495800646912980869416194424404078918821438444285587869031758429556588354256830912147121355616512031174669166634106703048863148223329654159811632997625827834730705291697958799279614308467050874156300275754096486807797548795563737242750519045315548606257262377072439559072331033724257730036711491213024255280999375882362758444669348562672158558873375306603658307457766169791084420012347515453755287172315969076002264956797908198613957802034278135261263296319436342394402277195359389311265753421437334994767058405784662136781090066883639288360122719073754705124260689576908404891972925288421359227030648679061164562715678493349272024597707817407555971283549063603406408389290451924843070866663957246319111434710621432481528791311622272877284228667468558247578116749991734920625141856210422281721315020958587207772273700871288721293110610655040086476839856162685623000493280723947181437786310402999521875919991633636495286603679127311932137638928787539051937916434661722318600691618498379827344188787072716701953399544473623731204805512940016348190174525323923284752366480075453233279672061265331247236923192960708698133919427463236443860273202382647566827269961307110674948189343848463039777752624879663439997015845186762390646274515812621842273657175941687487982189099608706713200413512489459886220799800274381356670326031600362296965209017069347491677815398561189573082918905840438293175328432683287519083401453348188740792514137221602545674979508112593244305957499296371563177141674365015202295929542125662306719916679922343968593713665115261965895113549369500735641742601090281049454869055876641537355628808563089568122303629129681272879566202245476119892710113273936568198258578361274160970247282764914368958959392458756581630080348878738759166563348080548563264394380580597464078335246358019326877373422497125064667404617586710586273408386966826047611150313959481296259078828009925554080655045815796946265557710650939781543760494685310181846067273982122520700458681715059386521652223878651421902576918501103471705679441578559280073486021222222313668685924527230762233209950532179425454139973009600922556346714969881768505376720432371823194408837035457406051394563180299444349898006144819981491165550790567976221906711805260372046498425487420860980953885563669211263387449428079370481245722043419597673045581090890357717985901001117525410594283928971467498030819852889178437331568145309423511539120499662749836403366494642658909933334054390039456812193892211945345019998834837633304850689837097399154986509612053036872380068767718125502811998748397767768779070324806176451693035981107674650955880210429889321645769270244360693027233189963505011273378077134071302571595037556329510738348480019884525499370043335497782171750678118093362903606076012565200641022438364857800485198983461554353373281711265131831919985750951096260858922677637859837434232650796625665243266713735717871631574262898441353306891906817615569365353515324054058668642272792975203178592541938513898441638312301586806549357982331247759343470756682855275626163086349672813899144237563138219417835600745764821910081544006267159263167821067347424717457771144535845960185978379040425880217602359042544470492481726943595468782382879394114173488445480876512956123059039413850173898372296410946421926940574466226574420061985444693127955395995527297453507039531217331535945918449705504732209100695539361395257383991681900910248140670583027101862071615039502766956143286668669600007643535492476508390839552128206812103889895935700049724914898024404102055481467602786710287599234938845174809590630833000290752346280498940402908689662516045027102911426170238158158216543899647274183358272960582278433183335288003782195704807760615804650451361464075650889171716255556484339059946630561457686993934816374279329600477241870452572051480955460857129566831484568159783647274405915865332195735652112083752764001477915548972644983399839660576217761227599454876709984353142962635005032777416401455357382393486738415479773641483234371208439025571723394677586299549782269256695639153116869814620326459073536377007025879247959856222270535276617485032188516320636804901603359353620084393153750649939897261325921355901347121746199301885530799520666627062778935687435885135129809880051315026599536978985025342214023083128641944712169479342325682223976195158646309784111208631396641674696000003142386670954938469395844437501817020095718970029677716387286261313759458813014886489715935898948599863917994947233249088948292989605137493888385911761607291676025253770298789568696487250288119060972396457014162009840369881434602825471978879831796068622360533834156541153445662291194582045081850870248601362435106746394897352581549867300172751720703275465929953249781544855405402499615429573626038528512944965579319523723228387031745864988101841338629309409160891446486678449963160106505052459593495096565934828410631163104692168175809247413951878672225984046007684941710368351046519195843332822969427526136882718544935874461378386246166210935173691314180528510405119229786427634081895601371113082556852171711063912328721744627565532070401891396629468256680032836648253347687587733082861981335672438987957592000257173831239933656086636559002868312332127442204690638084174610875061855456883556683696604050938858338427209790032803603708823218680515582348578871641620111237910814389228310654581701957893946212586457394016961994173836937920686565903239398978388282373897838167488536038091609992882036789854430860187173754888759238981976845537138563638391365848537114749373555681920726667285906285824431510507645370128370433432965716334811278433793069778718826966687557635603026377492187404151076975080572633898839449371659945098822812798550236444131004922866650651606754720206414790795092000690215618590655117156973990422672017898251548476502062615932931130803408314592345056653791471363257924920906248141519701281529218986571758295755488299728908637044913572943822314420550840155543870975214265394035334912533565901654505169376977082076180973123894387674994627576729172789521296790067989140074735964899244753359322556309472967226855376840078056337246197198001353907151573796067515681855407157456949939645973042742475575793721322123602121681466937309288183200135810365234807221096237034006991085433257075381848799296571593609621245097738827359630043029747092036375915299298115671080804571682716372285106522589188908464120002732474243788742955398505442002619234227589042790171129105600978827813948261787676475003781796684076567023903046292962009465147018103222642388834706016440059795107585177287246899461650974505275530157703080335239466631640533818538087023192038655327196922360997319085214644532211779385860512690686918702869050396767746688464474481337637501222184108392166656182469419855971336755109224812136222523799287779699692810743293727917781968448196637308705147167116361959636366320275861873005352600821810644866577762926758162877839036627131766801807579272850254224328784795396740429611364725165822425213547474093225575222608680830259363422213972061069436021888322613987353445303178996595089580543227960272016289688269400960160712905275701649847387987999270906384712700350598644193477848936113656111410475589752565424432843704917902990224401256645432129207438845300262771584954274013817986678616012625424083643223387369541724182998635812334157993815729470827423238362756135227419281354090956855405398525865137959832106378357223288752490042458160930035862245429147645716121366114457008690937470491569701611252069869972199734983012164326725883048518917091374012305188421329433905623497381633357595288959366985462474215187515749012623174448288238088444192849220203794628469410713471705771403443825445439745333387904836057455379431677295151009037232998991716055781867750362797931760601747727736603637967794945609553808395001940039002166489114207422110932899589901729531206910438140545120550803128351120463264114618160401910744550216542693260821150733346310450759010415262327777547845136287367395195890143027306812820134620829215681653695734997887876205041441846873436201964433931669965170701994303624313670543994564187455274330140168687540958146061165483451894314424218495113504013084252522505617493549581436472764463423298670803428035789243295240599517076190774197134367865658092799781992378195103346352870496527228717862710149726553783879927570874022660608358877535726277379154464811897105975265131269083227589356024670714428334564445988203988679125680109596745524802661804492841950340685242523677001664398763245152550230392063616882241206247281531922786251171430143028216745585340387024314865412117491128575613207784640058448725375183499871294749473862439293726653515568948457999108238962179265525167364299214446976915909279866944470302016735146241642115642260558076502380320875362358001664496220105602283488169903628458579026450303295386098062787771989273476278608255784413680336240891280812591330337084186936062190257026247586030912423033076433181761864306768427041632083306107743764947937214545859716466749884356201075307452293435266301694321820817626352721131239779447534645587735017691945061564293665624862015791315611992282520541468250484993863148748782157330636809009200548134817267917039458696082344416032703511534220373309389972090733918801647738723451149580405197005646592096329934715741407284075143885018297007465638367318743597308205743714913311339529454588200010046942562326467841621401694671722242642211471413272493917499888883579574998667889124010652966702171888518877370538655054536710112846436005536717583079174460654872463784246267504942834902121581565523772249419032037406092881910769912280050613973686915037184861718963137699652001370200391073067015316189418640051935129574840781082898252252611470318307281323753544207252652612816943531492893296722599009192795853909413245570722115117637505639036628091457873549399080858317054722546762188182018105527324280731215947072260291623154672031078010818342175684613454368332132359890409775101868072404966111006276231725456341671259224757017776233426621974826898958345226299013452185046886679438085890492877936261512031240765826342796102822974388626738691431924614287399987365516104267429093346838793468574538533334717897088973605247812833841992943392417863060251840570927965788631660661958318243111536275639322440868020823102157788606032587501596526556941538418058838821161142015104031403279895302026161799534327270226048077204276293657736102469031804746675685410139858786684075105081830561607134011864767149609880604651663022082859621393809412353217718284504557157236961379144801299761713179615790566651624706257894701943643803563753327263409952672501120400295832641543938208438214775044996802612203364978668649051216741371411366575313078451928363657598566657062007827811252385268275401615281417921238515735087592906996580222843141846918690393005611112455259911725348004159769464262968660580703132997155595344124551932606071760744526362989276491586166775534117286643600719828453502765285793163297520129558802258912693280830129718077580190699686347914298180201009351562006666646808120514093885169134791579362143321590333108489773818905525980364319511754970262576958029394958065248264945524236082191919430373291726351459234813492564810277607448300808580977982325117512963295370604103974734352439112277179262537714660133117983419085427154335443034652289780815194280401997703087314600184073031199451520941760984903622479950917336179202533921286914947145940608171499298333507893635877443924612059458794773945051910459045908641450973150401546203270689240591865067858993415461480881957266090730610565987387216073873207700041939449675246939000294710100228300732372850732835118784629019302558583829998056412616768012247224518431729555880500030052401901093320537836307065959918194552497599610902543145289454444841708440802383963523957755054009607156505079353941121747912958740752900143325043544345105091816907943057642133628069302453784449965293198644363811205958993641640316732373836945967742699195301025352622466233624437682578512026093665824573094109469872001267006134227548151406335916120292074693802912186524407765414360454067821073752834720222052270778673464468713465620492702921570924003766905227544217445876382433542745003081438675431003900693800445531508119892099318410555026774494992988166524882571635293458821083649366668594944479135084451162559319688255448179170742073503453290185236142783465098216290714423478916598022567727386550383870038360815669714716354745169812213491628432634132614570303573537189797782931322051954151445400127449878284674402512195781122889810064638077595515664034044252061347886787841023553812881448021349427765281870966106241036914052462600326935426324261796723082682863238150605062288079799462178871674078042853955830263237833044494089981570899855434816187874356008030373925492554957792915704619219854682089980951228062076806706777832687527537622910243462728153332181034872901359908340595178978140301118452163165018465616460495495741638731251302225448842828021807687659777349740244822548356419576946068126288825451024643462634472921499589895786646440440505912439020153018589927858717112554453892500267895955758025551741466691606967916080984929017193844064755031018444276603590485758707462119909779472895034908674905815065802645135973352315061838555483568213640958874641444947957754069572686013376735405467634394182468184480155417462817504248039013001820292314185161856012611808113559041243472048678051546846445397014822377371651229961595446872793369821212362857333411479018871979746109114896560771375871612598481622129482549023849142100825448673889586893061159917042877820901870028158226700313387537219716133938867269119991638280205452106618076822393898717571964257230535990545717898387570912450062292842000585092855195845141381973091373035157143029764541992337077753963992900265315682828460474218567249101290916918199097542255028771378556256460935776613761168065534254300234845286391285963038634156627718501369612088758788231336600014943322716765936325109973743808634566822420620804088987868907432304390701245828560604435606860622724984378029755678009814602585253222008389326458128611304832485244315350603362613184542608564863875084770346379249850487769829833050433098112526649923057717386401822225426198776686235845935249099195313499802606893023374259388910704917087833745103888277284738167156311672987657024667282274135028484322156942486270963591789074129746805395086405138331248142624719405388333638640928223389359534927015348364471344247121615072662390637505155977691637683368513081328088753163732573968104037243287579477962499998764457027433593443950979230632663775480450809685043910419667026778918885392982521252255939837771794998439725237278056354002647570889173058285269982215973028615793969575723923183619234699805389369101456234810867734094965165626481447341516644706626162266442522486927047283556235078705989618740567671152336519354922865276407903235556286154087295376559441671961427403131729504445890868284077905450374668274392800353517246320346135139687298921858935836247834793152273605997373929985184700178088279685806443659533639454572916531040561508435345315820007320978722441895767269467111671264230972957524318456677873710683243127282367620247401951631152913351695754553364909764657270698820471058752650417197205924129504964870733362353200961902945245367579329872511482239189213832446101432124939424029017392224769243473192593551801294201343678992849247721041858962581053612679033860844407076380360147146162906032436236509149041743546917780632376287154382061501263393025320379859588259556793143482379187757675570797894628617284779861823615260853799212516835149141652852339759608734695650474420470183060738200924096207959201124743326426046894682441912054784492960756379738684020148381167490401514880471783021543575734414064979472555567541487423697644017906130051039212735982532436970269092829120174697483452374071328153523701834916867199413678988094953738566972318147232810118685394002424987033617559725310001391613483806941478935582127579143965009851681554373278646687368776777410806494765314129886008312370454219808710580696324873931087323802224474324425544674504725726577745684585449472747192058264733777288872617857259305944070945014842143593774323412704934674286444297875501788698107260132231044609792303211671364629854798752959402459654197786237215685609587632108395711987217751001997223073270430903205303516239691117089487071669810726103212546584528030322150710227128862323061947211016906249468807123773662979348679473826085407450851602219573213354069179528702818710812171419458208341356616752066583808141698156004540759118098344480120768177353565089592250740828399739358516087067304635268706498730964012617376865637517165006789481398869766233114058704724863665289566799413029606401553967785395551967132664263929239741465209709922397959446480008056708477575741550027771463872889680111835655614729005652766478017962110344894228278038499525358074144888275132596590213105506987171487798916752123673890144472938625391735334390826860022648857889694975119953701389504887881332146285418636224659965948763184013910115374999034410195646607506886940836390960898195436723433451216785781938573370738553699649961866927254957326781912503241000775943878966706766042497065657913991532511984752863032766873384097172599331525958956034590465666833955605306197205277633843347275014962739557268035696540619251055111903303661222928565200120400370765319568054405405052673222560169625471882395113335761738535209153118021656084315361904074633141114244842823127669826684563800701832613247884962945381776627233959752665069464521771845701278908664643937592733664816229959551334055889993454698476981692297147604055646993463552401869779291566468741375199249050657138383076501296794408984400762680471173015598263982250080610985840014685203277146792789380164046652678960877915062585856185549796866686385465071173116352704697311050548083822607453990236728361984203289209316554570053758485680647966294156077444423542690378102899276781859164772765151133041187292544681732172963294100541388868589105284844801692394529813074934878737471953817452901342159395680682033884115684469709656667259175686384963386700111115320865516746295079424294664443470871070395505638622182131914966475790203613499642252406500852349026487889985988687447515183048663866482449705901363647465669929467557801353362226257444012430638092856709797341619080588473535320131545801389801597915323366340506871777627311629232788469092766689020971777848577253078367463171828583182180442520010696857161572334508856680284426027924004132592500919126476498506798538955998291851340701283837917010214941557025210762407029712874513002689067196090842149344302870026749464066283964250582843578815387088892441159105972508029900731918782271096696011915323634391255777960845785735426134961929689530375636170080463278564641875043365688233821484891076188169659731879431503086412467503758407695090493559289091335767125754094190701836506735298523544805893254759031623439360792841805089805263796109246778231003153245646105450944974625183429383287416646343694368090296989672263477099681007768755317423728499374704129897804796593945760859452803135858165813319710595543994633875942620469626320462620381872009827002427457228835548318624150129141686828791103760290817980529316688786260072100934024251844359947052727369428549549345865724649692955854098671197619177540886862002405618043690160476354519816957730535335006270098410558095968034552844146605210218931377804570872578232926848264888721876683832067828818257255697543669304978801459180519816378152876817377214811352800050207528642854665610204316389773138569771262365175633546802054638079687073197773282088792501190332674565011444299317377342725684366194404150552007718334544523372072152241571792437841437108361380212027346033687726785376850510896821320386871920199015520424850681677658307476994454473989368650840494130334149365309268404928383253405973202378513864217127997238433553991862798968356370983698955328784948287989957731816192698681850177958761717971982907006647491178892172280656129922665367419840526334431509858191007742052859251048967881713125272509475782744166158862370890620301463462705615255413067326192913246287879906946664385799201383758328402754021892946740359848597181365372216279588603511952095459968408759394887364347239594927491719527118843742966357888814888205746090981802270639410473151375916007014269261437263529487921745446500615328737808364128412294449664247262979199446550067603048479750724540327228719648420778149415592401632971465651370713649243231107378638994200869145749982704591727188860573990570451399294933319088931309434533871593357646530759097055395420354992398557152986197665706030602234424310388468806066263940997747802446181404995054780170355501869277948940887260139042476990712704389209708850792092338538202795907972855547772499624613595405523142844867140604764735337908640386485533618268145369796434122062268018391414468005098539928263712492888876822180196833136776721540553478231379623788037254630095145249354056429458649932116598268719803587730134312316617667991149315368185077235675528785641800394136281488436998222412947502147771623596285294845371403207394877822959740043783451259365678375404128324966171887095098704620821430595543327967153504949349758506697791887437263572675774598130202946907290299878765331032659834431507747513816183645378569952431612161532172614715177841417506823688234753770540694540185568958552139250742331594157717887963370961999903162642280483712301645050347201763829314646368627823765742662787956522718643046426025443612585741837715808665526496513257313745435078224197886587793921749153962267375158671374962863313791414732577308798460445807491313979137438015455529197930890635162345040356765832854477991634136292289802172230233388143288206627280311825475688608212109899572717788336097312760080330010374330934197678900866120694849719313624544057761597865923716915773975710808821012465728170759407868510763921703542680661988245733163396951049650271055858382727393683497673835365217987710321803515697021802063021657605376291281581771368907913987735123958752621115456022051346550962328568449777013906065504937796630652208025662313136113571402603714626867737219868009988886147779075105152715104027259272268621636052976019452267116207213802841210041830389757829155364942947370980139360765070383131169992341725909585944102077856690486241993891493483034712429088146981107275359354679702541531861651893530957601030224744988347881372265647893331533336997465450623940207831629043490632522946244991619492434167481413372617709782440635728617060792484905752874440729520941797089217930073591311236225243994134006687111330108981426709937713563747808339729666433599345504306335083328235173969124135543503079999513753262794338998690545557107026208492843939217338715098031916557850173196731167927119019578419643586313663636419745259825774209545899477194889690012233067140417940571325771802341984986393110934367472770249915526807160007231988464482770211171182119609213452830825226643301357274446328940105167614747965961149871586627582221750063009448727668702754592375671679528736821504878288673366678081773679534048441941657254457376278525675482911165933241253779752035726569917090736255379974640263313006846713992068159569420458000819043415204681918031428038220882549023740294173232975179922922666915544414312415523870871257095805843972905453854431179785683718465328718481563671864304017248688613226743328078598413464576636963192789752777706417204190396067969752916046967921465491348711678221747731733387778179405240718721524249418772694980220899008546856888170827976914975186907596058431270316140561227138019136220960708061984869369853586340085599752380918547011102185730548423282580759506603975513652585255158345293659950773922278209218224251101349906587770513572222841951641361298569561916316299413924719254352961163844430573748986876187687558512834816609579420574555674637402779321600961853351890146601637287227977786633002495115303184273627024117360034901578388388774925121274496958426431274340622678626162536618225405122462872740968197204921618776001385801370087541332728848163028847453443963778631592083658373117603047756111505568136909292092842921427738592863427469774540563050272858385570827794410303784767166489778346582523599413697311939854500343629757329294553258959031915295159889189556073323024439825020272950586194782867670468681211796077231216917476933127667808314035327773469387120067533021020472485769122122838531248925092286008150484865855710992008713465300355345900547926487248980862351766775646069254806387652354787412127213396322318711250865450627741334333207372839905254952857217963970157568684448432052898751957396421916817067620829315899975715134431675513499922145712748006020451938472081189861209709467218710861697576150137217021095975688903348213573914912228592445764329282109461352425563275527964399554557772986943027253931667789765264163732431608009556372377840950057036952563711844172809710345875535166707205526273500365553304754038228186117133694605983400425831175484186972956735918866478671218172574685583267837307984824092465249864528255958840698046337955107077737847720128304907432025232935099155464561935478861834184683640467125585731077751371014139170252289643139707409946970203962923094465029913274967466039221394438952359040301222199212697034353467949440047124881312512798318125701244459354387494370301994457340133516323730791692173991162704367295723953847502331497617319080193512929447285613924070836618414907154272779040453622721997383063953557428749549884946416352438427669767644907096861320468344617921105608348679991590872290371477787748677279392956102449405452348692996713574865216087631200047025294713455508768481587900454011702265803315123557610917968548670752314728152497234071914609093125985371882910390750911531144658724645909912257858181461071680537501629781285582351679942144143569509625553723865163070340883667134696221349546773265072947533222568387145026781997210317458917121203001007036422772862660136643731650826816647864471746815183425464922454206171828716346121119282458118255621096567476491440823900015588186202438213767648130458674598651427035554894601773879195897554710367314931750762329771017422825285837720499245117862085887784773278850187092565440816429634251666993633515473787963844991029541033787727216284636019497880707091963012394378887719476992694580443372482325883946624756557792229115795195727548618301212909798357651268241757995844470157426312493362610234009335281853233438317279857976521540966626753034884836423852589921875271600568365457438018525600679099816999022069512545388404970388173150047290988420033670159630790303098623415883324765532356199383098634183684205404572690772525081020611832637661759296384734530088659450585651484075060354534668728043347150770483144195541494189887445542060065752964654572819562703621181288255227194416020761800962485407588447834925108653506665019480357639869755157311360938615529345833732955751214178838703095781861846477025188308504210010404089320216532126683677096148137996305339150360969775886066080198875768420967790873159352488589521169951518314239479398299421042061461142884866967435512177732661161322043232945261865751312763495138690615599627574684918991239243882667798200566016336591463380245049091842428598693486133525596870109774783936744713239099752334557476647968213205883448471008684598459402538892814490826753609456121096252901494215155452111306618835923021287415814895221467663839293849273945785204447343320937720032282845080939902673495625933942579251041705539985812718538939725749292017663179719809006677268225023076566620463806592120543421759123660787293519266776942312882801866118144972196641404991931208142516455072038812596949634960649224628189429667697786843545266395298395856223477749974154809762390573990094332044494476945869136144071574322507225386459463181096226304349429721795335347716149577646935859845536136301704505025135435102544250353997860035303079020806802622152932136874740276463797755554151491980475010024285854818715667362052347751625770823155646884909829055270593362510136340100192211565829894851531622376877756619331617914712191812377292922242486605492716187800379465659720842235689198316131482996569876390901959792914256614738874954614000963581902717302232794202882025128790045053079564468044039318880017188668754722827069597402450368185213188675687234457759317166576568364145165924025644827264157846755955594876031262039665978793239522867905365821296876890796932887526410951378850567605713417100990258201441964295837031080322481665150674923604493804855495022726677206440838732119248599663458068096785199074569177603102116433601239359141985649340079153310645236198379580889956077515458683676415480559193456367764132639490832918775267054412170864976146482211057932975831469142166891081500685613598856903335016626837521528907359974460000646840111279456479476576191195948154106023978540752053739145449226527540445035653944806585557680317719262350912068889246233053502053641939074568820234330402203743152311160051920542705700712082726273098859085483507225073999679145832285277536713195816066139956539756359522098069343637275051542879230650417797221768347266384986326541751050991366526816559569445899241981218108862328877876587814438421136025146529266300286923465291815556616432662846429895562361186473967359375258192962871375014182904847018917587407057800023989213110026411576456821580235248958255425387319395154497821926060205980499192673718849218805892433218393335259797449877337259607956973002904120809971197310157151911833795348581645554882135370607636468703849551898177967388401859785901140817274532539248426574971183124702324027045615159199037296760185271872650909244835096620552028992656610366302785043056392116550432570068574488890207800147384096365946808343078989616638961989899027500355545086216440982545147452744000045583382952795956595598924283398137033438702740100608491528936010936753574629393631286237915769520955515018418041985489453104348659849465698642930587887043250728751554772159575877080359723136030972419685765012454207691684742142280692361203040506269355089089896493423287512697109347358184236669963919785123058255883653681966937232659555587161386613653698395400795740074764249387094048479035228515973197546648040697818921328288927700708652935599359329243079460031491061661442824397096928828890609515549657361270287767560977054974467128416052021983479820412891981603442085499468645525800147407131469497497187667805136157694171820913063222426511092871566736017541347370175693519088746250647076907393315050057007905319923579850662163148024890510928429327267449098379326866464828661613888321408209712947930358816493514576240955354352011849591469194870519338996018577645288194251954916125574269580207720678420633176944339219065210758876427575278490609006012040721197062446896336008785217637052700065860017142230283225547602943401597333789141753807884180768796409207819699407559492186100777455953738579606755530066173910042607677165385469466166461538738830225635664004731847186225933471043209660347710880245287442592957133811669714703109865312773714216265798669614675442475328629708993271207494243590657003214846046842685420112949376046955869206636091843657580602042441433832600114575332003300191914484808151654989467001479012917997547201298560318290048567400112364718269093946066229045645975452316436005448395132833594256973889926441751825904575059924350790902901329879404456860768507244647972478257290165348213719189404879999414389568193704322593550183221800673662514865339778029917052790181183947508673866439847621324949764356880214277670642339594524954094385337031808972552159589150249341691221937753037173972950875576794775658954631569743857647564651791049802720485887046646416770168019023180790710583038553650239363228118409738725159773388251488664656682308886030738524775416748562847456016069317645877547826728735087501070349235984653816982653430777233462050653536416278100921181064016148311057867205900098042674273511541679144213621250652639668399408273480982907964600448488204748846566823035489984150999012117620915356421676559614544773967392542351872108719965652880111545627446775426248237325608608443499464775468673871275491196069111040413750536569250360679456422858699069846544282732262774037170636149976017827356751445046521184878870859708386967922244591125153722612670644182179945614011298776489530990217657149134277863836176432973381446465434976561718989039637598046446372262960670067910210258019278488456264378625616460416827560459087717974584232673252185108943456356601951444748120596649666093391187872299747777598897532955840352538263791851948042054833235570544812437536988970574858287542551961728269297386853258683287416620144035175462369979861424037385685682144656299261555617378623539136361733559950238700334449372498981790552200274896110622942137461715988724828363908918439091300911256355977542131390783393866719401288370049755382376909743801777454030311671994924450366725030148386623500831065987940751995609982259306314116578077178341260075303394913763900937546220905963411527279877603664982790022933980604434854103650375254260276783503391053538207138469686613145474657708777904674335032719810261189794332753474191534044540380278893807216651393679897931513871537938621248681794947858994245188221536022796821645639820069467901841986039639088248884347822059422751883178246505801041670291916076791725534192976151203821199900879065414835889277496720206267613621736759385545757952883437171581465145143678257629761639423411869337561197188899624550397281453787024884114171857579357244726352622197536418113037301163557638635902163552363695237955567044735652806317302661182172953835092238449650859423369342257863658468435974039163292884645799785362304338079376025241541445257507619284830264000962643633516863905164795432684411718309382377049699036817451222740621700546599981909978613039936876847248855147040601186383473114623950861575055613484654480538984669538263170032900936451164087885641036249876952340194748670497139643353140098690318525698625609261246731531427361427678045452668409427592191696466633710993986820643187511301078730285951272983672090887006351233686286280931156520382699078172768276577536242343194655263401575180572109895970237414205200884852382351858255303579026050747248290946719538827633632494951791474159342250336021295679310242420001218210474560948368018655159987782454357121019955940771325952668406929765634074686460880674342945080413069522194992416537618814602469337116300148063439655225974954753159366876118393753933697149944081129352170447513681626481323181767992525396422496605874302083425363762069088182305008003700894709257295851412111499624586702596848439242909156991719265463096520886762384306032882070503558772126301787707791544283278300997837352774494436598951704684305327398695860372134110926296118367375548447099341882352265430981727179357279415974086001170407176263548687644395059342227800637180178390708393136297537967644467094776314526667203680377351420601271654416057322679182064406209952976751093199473889329581791772576390025613758849756912923116537978327990022744870827083274123236441626562341649633062360373036042606250042238102160140329577387714406084673379783281610175104469903603640062300880869438755951398599040724386489210919185697268236049687422786744383903359390268256408413333380141148003601712289793251529223956133827462541857871786664794646810367065474692419811465290407931589131711212542935617677091772602290261721649652726312935614335770665902951309136492229984230430829088499928727717097139852693877759893444063847426011859805745008563879955597663828122451731986271874751757027766643364438399564974809870512052426758670993464922650778748137585816345430949647211590129053690307927431154162550059337458703776215062466103532939050737691094078999125245389899347169776654999039959901543419165506529272091028803146158169906410630010010212806397727764036921685118699066157043329570858155300295519090314938941878637515887604791079766835844048783724646515989722044057469764499642681015507025081426398388856156666767200684995325223438800406860481225330922241976940680897408935018936141061346603667959267639686129948002583432634987769622623685500648374476278952050343850237173833088833355922003987166265476446157174508866030085104978646755637004548662951954985171640482284419734365699081380251469296634869272332763442794033307826788115973442200572700024217056856970215289818393508414551088792442867412913054009914391529675009072831388467960118802290204741488426897356839818930478715837107950913228779545523468802376439265230342757900129571980943109946099049070272015866656797813262521886499518576534847138742723452461666501007491876346943665667786356009710553143761507583338616710378495568124170064167237166048189292585921138461440642222277226655298822801468158126710206711468804766198204614291545916956759682948808109490622708281856615062811093261673379666418170101834059307718588233366440660734311395357449869861529888570449576485816359514266960796897591490045833219757550674372097680691022088039404441100496869707944451506284209222130577551798098860925803774200706883776846890088433448360114551664541523432914839850577741049173341450597795480187243575661902948803904568976138150709683877634113847477051793468869701329879141212675198224367603046631624452855800018849162990805800974829248491901254551739577018075377119319026347484137506989960873181266181422435627417144956705489398298480236425632444453853034349447825366136629123917437093116296625757392221315739719189178783642711919169216686431594481892858665285346292997421327224147367967096219018745565149579304071535630616557487555119948939400573026535016493777137676201125682173980353262158385644775564982585440051915781860150699645371298603078375139629061483189642609624341388835472038627388431119359440727259657680049230801201492462890811119049036953067455097062961884425916209800275339387447181597553047863542315394119182606559600383533329898127589195884883462604635822311717125418800081272906811176314021539961604725723747377475219699672911307084693067519535150482340440327611593370637844316489029523359722327619416172264029167877664395480470911080270372212864577223048222992664236841644916392245450894889525711620237395910223339979806936903594547202890864536309616233684970874202199608510569861868609158092843532967971678220505500018232546227775021297734673682726373857293237792412999946868280435135581746567552601637434030593410012635570488527135299798467236905913486858182988991109447915686369436787793432289955706221093156800264243022993400122375395048104512185883499011468533237263253051499078850169250503397974884564926720552588154295183185075585525228862444841622700511467136267331038768658957081380144188277955586094813382808984136925361822136140561375891292310688411340239584165272948999538813362875077446293350072742038320747699324090848988594634014606198845132227337603918215037795807348074087713534015318025614141180575431725534229676765627679634435653591100628539216595793346780968431262101994079932753021675220345623526767069313974887992739465131643441801369948119266626010727251553698849043991151518803198170478278340737476846053322998660031576754813541692706397607997513593981050735520199205974147252447284926117547354415635391558169354193054951128979166558702985932168503853346569605226812427145151340827167308822156063024284506368950333185216209482712382035749399458895039056164199630088254906321645554595614440952920844271303922209426412338184112885513017435907682068768271519418201842384322331678391821914967478506079292977190280949212817128798862912641229929508075658820825915054755375036935130068948025479102353796928455811414420903973682315688896945868098718423416245688664213102676354498675061302551597342832973390633251999001675542334379821313294516475190091149277532997643634890879474596208505571430322593844022576391367578956156439317091612106946626612075169991368831311608212021412985856324751864145046974123084315504956144272730082451483741897469658941987932757260958919869280865438890488829160660565520886778894890838870846448221025550041682752742646123849191048776619605983065765474640176355990942030345525499166625066391714332248066138765293006984693847324021426634509503236358954358591238919049457477164774771597358965636154713302091854149814545994746137244577155764806645005759009784157318194919949756145734553406450340409607194910671375823895276417982114228096669447259119969861844226034115651360793637211869627679339468070591865990900543964515970144104964664349992717804972230125440708353270550597557461480624681154114869703101259958950182803410962563150603564575025746247643975737542468300322253232215145682288516863541472477529228018322715709706607544119483069723551178168487564574000693057931318509668673526684155770359121437970231249338722046187086665871475195143720023397663492412473893465933022611051885702066471260281882172449890065122266794983852495233654583012124068081864934311046465808263295795377344392927379229229941210151415215938259543211184987199478320490996792464752505067980505487096178533973151590820229171008100560830980134545715187887686662311716369805369725728131857222214288315810203553642362058089703343788002670973921298954942785902965171647677757900199559609349077506632208316247461161345346057427499286401167980662324709481319631683975255770194121934438977444771171695577078443536267709875444507395985673127409244747316649447699488454205509474916881827482794125139469345139057343378163405991892637198311430727994952353745095032028932564460635671098199295063440303938949744050367904839295590913283006989543572936804022492673533514878485562154594930844017022033091576843774425069383240283397271379043728252392286942853060880594702226248375721061668084126863578411287050178362580173554031902999108630890852961577505961265321045469861212189635323391678302022719609061740551085754482151762004356382811122627178759101657326850930308712824902403016869271669740710332554108257769175212539123599250724083865124151740605248370276721731815215108073173603279796367973847892202091187579944270114199642374638927774001902841627215578617046565066717078657075690939412466575471857695565998300736835394991788678005427675898956584323909108853602404697037978160491727974484221359797323128787954295048113236731084174110821729312223642707784356241846835714276709985255602134014688546872145143477280665818683599693991888981904629048061116534616453468791286952090531278929573164619591092234113737806574684702218008197553855088568144223131209206824565238353929601208739595760662816317955519985234180670137993823415717792638782052005193443538421674202767143345868863476855293611645501464692196433413759620849829514582260051594665700834355535637149745777023230680481594284827797409158754757478171723618941938305588291324549364683185910431596068902608640240976520096656831735977722674748141975511463882272539879356253363125054806559966548733699302630388835331949259276510536030455131791231038207102640162489993475707212284752732978207784931034754067082139166587222878591830801842156990711891038432858814295601839058480965513617828051333150792968032418281370831691772666640806374364536479239349339850447753072505780879451155203824607062557992172181377284329367914272741079586305760492403595722037142460844602926912002637545180439375042652494667328953136511549136549501990977070014782411618712180166266870031267211962780128011230543195074663332594868439954751610487522852806520022127624474297705843806422523775494204268682650641046322914220402391793805313960039423233054603746271916593295406276340534550829665345559379803688972792265243389933781850791304657968976735199497254500502408601032521918712513593499352791489865850601292984742938854190634312679590341283813547226420834157685605012652229382977337249383923313040125701866430879481391732340164956065525288414647860604865337025351440310687687631678769488122711821549981476945595181779081685770042997582267957149051606797484395553607106835483766266464594335800644684272915032693740470148432735022267199524989265862795242989331621584896680060807898950089743831219009075311290809802926037050088671179927659768872043282162909014216554779567776614576684663490830659300850446343639388552142701626033038513791355961637319106644856493570608138682256378145810894919132797691077980277485725527927341391110061527213696570416622709736063366169205230322657125993411272387718689614538343797178843770360500837783318503849437415729416812372362669208214529709745743154508815642466623866512744675500418834984266675679957426533481032772925269382997654013416345667137203793482576776925275226161462854598716776302345501004245249466187314246437766863953387365467603247646160380254493639551457489751428759977929321057872192561811017522907722509179394223907300590781919097177535620655152479358410959173005341060579044928270526494207391086058046209328777364737974857329998859277897658045237262759783014714594176881793832031794450212932870488584465322685250821782664475987707373708619145006730170092052988312081664418564830933492452424813327791199784651339486284352959178810227811320455231189990334795097934661364582027883566260399074432727988645173151120124317636847000371991326174748045337507937377432751859271856844911149768480688591986104545994325426936527308242790078062759422890929976032130451605821473962534215820924749806172347647207702467232847594187933283716480167197376040238271586414948576817663048605494189394382153142013443698062532579011127509748872309446354227755268278109109618200990332569303359934489907824268233372809299647558236016609748234550431671445796582224063507826955598234979835009885345079429509895727930521571945018889475801663088676388179933277903286373005462060175498534191528468778628040959156885290248011723279251880094802791388356508553477618136670075819834086949621597197271750239036349942529625494939657574719799525301765444642376443887516478584791813603546421210974667338439927314730613587017441680385667547275922236196831341774102323261404472073095173907046039394771847541572555224889459750170764656241327073524523427962893405872996756066809086503081113803177827229247452257106023383055967010302730787030333494961607371030391522792198845162023551034921659225438124839689713825636390885714566983016162023219729669563015007984152292344367927546066159823168695350401305489298036503626068133126206702423298589489703783646040016122310390544259819378334260349560366751780472798790077817024573375629208064233283942945068962104205455755213212875454406444427808094048776423662647234482128392588866065717217390084542805127186560984002758352843526849312453691396388713916046928043618695036251459948546410252028722179992019161606974214848077334104378610202020122989762511295851307317482156923588804077052697547716390950175804883513901701073627843493578318265556637879209538824518862777284231233750952240409780097997328086351095551710304146057495277279165582799225195301555406178012116773243541783481581428964938786208465433312671581108544685023341221081842313573850428426478198270593934988959719523031172572466672846871608557318341779765047366838837166061161901266867686826980670234807773528895778298148659237820818839946455316219083259568812604247889545597820231480355910886555820122371740350340037252035357360984527347646867625634703202403282272063580626737407314405493356350093443522616567110120993691887861246125809014252634748535105688130824052688319526497752810595615420763451673333399471851771973054131661338084346179060777096954754695667927567113543077278979872776722628902533452206541891656610766888384708990325524643302899994784750609276027104734061225525523533131446234346874869266589193680294580090130780570213856468564251295016936902581122071489498594650498910941873607137690430295192054576950810525990587736845489004906491871422727611581873265323185973431228023313765611746084732828727179186557429894423643666197863171072032815513974838451891662858746118290401125477035187255080569728970327871044636231035731855871310967436518459725351955778353054181290217078412424982615492471397115201024291608300863531808707056385822211811014804066889032783885054416455433091018979618665465771497257663213527082775639740639023498927864493849384254398710995802267693797215020943898632513788795253664393066578449362325314055889183955863696513932477536839749918886320272970256392268004608673870481062233933419974186114568438640663693021111474855211860815341916515983127094554949655342712018421216865572603062184245599004171360140262987296996756013205138478360376003812632181914841881771414669774207607198822518176142192748320108543701103624324484750413568706009163387374294848923223001128630626149644667191585764907530305919558772286658794789920009320986866532587523418901892940145651279577935286687731108799144702519054391679229692792549283839895030511498580953052247981596638372712532988201957295159012930466797095308403700895439647109192864995324287100562827409458721047365384447875791026704036057397919913053506158794759669412866940897432641661703727231524000348610725601620712140022761694830870539296430049074606030235627814856073418746398059018976852982077218535726261169010243434400188414223969046810326053285400144849094163736103120284264229310743997737462494008599507090936716677834082158961862956032366865088267549649245731083047435976490114518767409771515233413996687230286570803693564528159127482093260637846065409067145486876877077201382302399112534681033760509003267315208307136834214389292066868973120477527501734924990898578571295706205736089748408484625836963799941942408764521823480845842078758055992473665704906632355945380679936965378038164629463650685512769159204728641791603670984636152172147521639250272097051531729078971188032275191143475247990027775937317426595882535548116376061517618339556802141090908979738166398674508989854438001078664529651286137471333267393441005020668755868008081411500946974839044155334787713981791643367202880637334632923775816987552227147955494613915046761526940757493188041041656125942565690750884959113425780145573767978091679076489708762006452910309156334474256579038480719827761459032760329356981367664832629291513090551302057853292649375836965418553493930730549217289153327533418598540315963098886046353150511413429090533784061279325308791607444687286521166678847821606279718313158186383152303737753740697253213896008753802869088056466039857099167866457316851569184906056628237292426178090769119012326373485618058595345654099057224116045994693666294068736232685936093520951539217069534358511054560933293042327519726714722959105405516355508182750945192764025147806595089422201421007897819294463782507454377305190224880270173733332609793760616307094222563095525198318820361732760988206576135845745039016185254601972013038933046606304582318310903450019068362080646227345226712051392387447410243108254655581810882814405527244890735533876523389649434893554733215372235820045827030724663304243540968556069776702463286761260016029916550415348618720049864926139494745729267502307975934585108073703510627373791818226363347818712650810379004905760819320662195962247343084831414061552639425442540191567217314131009351182173785644628255215184697792836557196386121513056382619735170599874727006662225528599383075115015540094933807153166951038564225441541961790883701714208298668305365581442092363541428385650116806966599415726185226985077989182711812296466170976215822092229499366515402327102548296935356632849212268983211093963818749286481890147435638552086488697175862562599377196158808460354355881856018698769165392663924772886505121462524580656566574236106787825969963854648493383723440330969409292188143178653053407922064547601093182208521863836366951230578937082119108421497043384956790230054128750226321478659024957849311129845844501562350639452040955150381274368142816508900594957983607820627112826148599549990629032708624114795351005276975739340311892724499757469676266669401150990342406069130918119602856808192327822560687009642852998414170273924055405348160883796053185142353176007837361281632670560141550396488079901059281770513722964697077484174226454906691457760945478442168292320399208784885127382385671647512583082299628243002294237831007627622233309536663618506466064954714564678134353631730680109055100918224127968658705223980510831415633120923264973558242573735116687291253469163232798264069016630949601608315665943594009733315846641730627135057124846685680933126398617094748618497656335787929921682766244251149560988800067897871273299967093006499195683363725675617327075974906796964272109991874077080116873867209164163940498200505116211134553850639281280560218222130250239603099299686433416992643262923499008681096962295800046292538988690474664869311406527917786997206950428103443188593376625971984626484619815597032533161328184839692617363949461230581387068198189789855888173417272103989718084383695134456782695401348992803447871736074801964064830790874858620671818461275424367040043428539876540155615888545233798077299637762065033059937915049477130925347885558728783787398669179890476965314711188384562494854236291301180005021469816576003387656757861415210961604213518582654451173171949835158534149022487853200342824012095524126879624655617640472557014954622825220628545339321459627502348690952220150056479989572339190937364659084200255859231529997163097172187902992312831729053816585587998524059228470081627951957908563842057408520280191753907437399723917672590570492576060295198038307227509515163709489583350989902952894865594825270757389969162926423457460413528188274652796637878139283528991444926237696171725586137735496169679637787627529275887584758427837691817394976907358116422593220583004510858041573392494765633412386374514292025679061490753804467066672459860809634316040523402420445779877475920267441922502019684347867607187582802624775453366961004621304608379263220676207368735529036806114492927040870634160881137784928595208515349641347506346376388378640112683361508566227569485337885162870019911555201432959450175219833293949386271483677166189079255803171736586846663019989414335179749797111164647797141474454130631149716570191125600964842250843865534000107689507042051587459821676954430891384100772122441629406658507730659466517640968017606570473293667420414002975432106362465502086794082710795909851179889665986654198099805883059913275986023632172754110902157080018654181036016156011044876083910258250408454119435261595986729273604293814511502025463157447541040282554096902603154411790986661940436991247058485330675921366608898644285926381864347599903748746063599456330144066262317972563909214521166716972105652181029218238300454063127940176551484955592236094502168931659560723295480646089280343037066329192175340815088062050863474575101206327269259485014717533916121620590026472918136066015775784746240013621106140601196817349955166828713086774605753815991086575146170279996481598106491238643385305782180208497303113870929434477243753885579772738773431613608050814496626252266016804262314152952115366057467901117214539576695829878098003108559710802566670361174262858060313063891399633055890062422894938472678565094088746983923578545893327795874723585006652464888844079127337079238882045588676662964428351729387627278793636589945751325346587206721065060838167709639056633761415220816337732460610802522054666849787901910601360760794188978557967273473979545399961532586039560344837642194196874461977897037839935074562114346041456310625430233320707378234699656162327843521581657443745691399017448398691100213804964406912986223803346977305338573920647650713861589127148067212835184694059471963014799706565589937645826002173447998237539806828195343760636015587037014270138446496712785380770164738237964368810426513567321382048373123884277953523511880741655430508762997995691408119797181742737641062570965050735587159169400700719581434300371461517067176245379094492731672086586023072883784839578578799129502042416769858463662520263115988828982987885168785601288529296487699421171220260865892881234349796805932345145800002800693040375251801930195004755020349908028766758317086798939088748423503195387337240463267516933796767822213878080758217804046480540164857253932646544356695029917578553775210762279376794994805461837613694306003536289183725122735899234218909916741527874208542854035866301632696553550139927835962468364701576592822548011468126356339094163526467491874970653567748992237513669754050645447959600138891510723599979983877701611635108338104484274250581801168160460597400303427900671656251114552818851144473832670330035728653984851308007279510438099104740279254803890915965858656176851780471468527711664683705036547988586700400901927598709949367320465792339838271799803947418929517942652870868250244598723582554766258443424208401718675725673027252070534970343774237621301565474611013912884929637699809167817298839130472237436350801907229010838453384983812175617488556142430494265907985883656032303964246417396187268139023829560453589413891592375542888600179229996447032720354312250566777023790717334370104146890790606816057211018354467326994737301425747629951340423707150753712669602015390012644865651429736511871539750858758304539771067610767834983788419608030698262281468654262655226198859141332787102387255297770499880634971375556022285152060675970850542949163803870052210360319330011450576991141376840259822124440682622637672108020387045933430640897210018908525951172689104446206797440752765252594536679235126309111452532236370719916401448928477523168611095532405411197151126648739124424728875007465599828758517285227908168606579579931540712270297512063507545884890699605712699957959910766607240822815172958799527693397480406708651300675076406732341326806294489850677525753900371653841493401852123756821530090615536682510520313722492132494447322062890176296875881113692081786114091677644927384991256834341810771974698204674447988822007561482331614837405495152332336022771857828995726390662669273724195818075635342389955725299015855934333252839756434754810017933181840709931568898960048463650617416332771869455849197063393829055952141279693528860177136807406883542535678022305738236525573480083551594709261440790700871849490867372762763922946430054421174229105902797062902209001172488327427927784842787175879173338957135819459355995052966606692635995483029502459057199987839977782861913701042305381348038436858565074142098488066620080739856604717885715233683478369458327121048689209255193790769848892213768183755230303933631852510977732919593556867881047084548942203419936660018621926278964739874411169605410200662332390659397529218758638603002373885354817221550702927696636006780870694993523277171766527343423040469278709276284627193445938307810703096987723484905452929332366990611473275932059909999411249422148750176573292654568246935224779221653846950861348884177057889864566176834201243330340738624639831882371762055898803995458454599490379022899889688663560543272298246764234051509969660911812009653136418661045240785067844272681954092326002387240018796786455805502076329349778894531101716840220611248384487337771652091442377541381494366927959427246746640834646618304277036353424243787573356125671066755254958064142542576867857678538183054844891707361002266382807293504700577101779784496530219023615281782816545326391329316592882785823371399733121836027199180457699902337567184435974783425907482778625334260157419104963084220344923552133555018367769803375407952258688511917398785009893524965434143613908109199398882690890429755802379523000838222406431069642832833401378748341950529178187902409947084537267343819439975703871640161933576953613726944444490892976434496485521161152516046072659884973736621515396284312622738917158064378248591444027729898001210060887206753287915098033463654424862977550074707404340163443633764571522017906254611258115273169893787136324385046953312889200530686610704795995562307873908809858828210163348927815604604732741072479850021880406493208733966196074872412243529212959188370389891134791062327893020095736609347627409881976962945707962273795720225736624573943696805121554450651968203074261718532051986663287701713161099970447200880426618228973933222540517151664966819396142662161386716898316906122997199550284319020041443307042000539339134734320314594099936707886002859018863767428566712121412731420357438952956801375190136236422492093093007692529232958294998108829169009305461562501670382062858090545071599812134230606230961663847570572616553780726236939374507268656769084553332295585105356424922245082055391305864201164266702123069466014826392952013412759005743482506088532320591763426976759891839694064550566244236046370388694316058481762319014087162800706543051596972018476704035829010719915293263332267969483851796745858552925293676611357549284358910697951251972037218682163706285742949837630685205526182212099545743721941025268754792829024840189596036318282765670552443141897092992478875218189611837112868037165574835294212423380904891933295516103275456355804064253188581013120905176682594411583672359709248770237737117867567703742559663876927332678422891174470784776084099883389749069278402299541850393116524569439371923325653121376969545430504901791353854720136743804468546955643504242622053154245271584872561542476926364876069025498152895799783100784262629936248325140826356666824799833967629528494987291809324337160509343396025248167837017407985105114960637709583881440686185036316165821510669504597977995680791354277943449440751893730998705777202554996009046572079765086960247113986390842973979800432369932596689605471501269968213514675485839881605438692469726119331187735304662039230572200717138284488329902395753589170753906488971072113765418999107482478836231277100724910524253570641583464529373884467312637316621740705802808406845618450385265389008550567000955346061729731838768906696525676410171152936517308904794506405553426197475870272837809617511301979959515907959141049908157556598187273160932244487884386257436123879899460251809804119078053443550670244072247024743586184736606248502996112802164603486687737255887463011442747281430171818949372851724961928223379680517414423161661953506236016979250046121498189239512807133769701791932206086330835242473344070553231283765066334077864450267218000997600925128740930396452846579717455663996272835605858256543631753359947296252532226138955758598587629770195469703259857438830224400960181400465836782865608126816336055499025662128436149753194549333856146703226553414851361764878199621563276456759510452823439089773198322948632677838727219815941761513861499100199582631755942307356063036092958481922007291941304206763118827037531922653729533678001084310640624166433521318233173617551154156908279871908575250774065911416408563750180443999435632925060060982938737240050404939751812236605699300820913585874149472577996055017906232756257286078247018975985481928446092609683780148511516623623597107440475345944818971455357395595193311128381079032549798588799492849419695629046148968283667384655744462910821032040985842584846798361859733567213673737511705893345843329108371162010439200057365949452124244740656370747656019186297422189571390458155060715585540259894833280928021545311143118224183992094926764910658427298875435732728854187818747112781128557720542944397401411116719759790557375170294493761351056422401099413891602325229105105061910441160896473436364341148010588363262711223999514735788957317128581492586738048272601728769547746016908639504410453838222707246154707356136375777318034653778116818901666196366128549003226542648258093350245095831576060962857195688033121294192716658866327360482392647257220592752825452977608425260236330627989705246296139521049878863347153156009497191545851375834422043120437261449143390091172897644146947711041456097269817151084299106110070632898472439180175481673871307363592967537687557639104264133706467519345247761722750687188521175408967684781485222464837723695964393816029918560469203819809262568214274758401783686964766438127975069087787650674198078563098702481966660052726250811042215225708449739044105942805217931122617799494932825898534632954621304072304107714366512161040338497591521330140754648151780012147567506711610867875763539440604741773805159286545809638454789312338227173455872307963788245322026069547684901383471108816585237178207795818324039102179496046957042350034114016332058464007091029565879422455674012938905132437617682448962321760494645806710425460773564105709226430602769816272921482982868206581800471028330251352221864356765777845224792771478623798261187751316118128009420762755238005875194349367758295508322759069866877160312531033639608930629404912853120216203378153167041939955683797517090193973166779872380667875507854931634544774702699431238445318341278011972833224501097882623101937421555660042317234266906126563458595939694701744441783323717585483337517991629941989055904381996991803813825700278753307190436454857493544684196314405236338881314699100484355707794209622349903320470145096063821707192401413874042744127513827465298016096999628484434201570760775196589934605785468130583081067467010177379177758780385265829990650114973842253676885408569436949411211753857146571961398752931052596078178524912731454736065922846537561438431079737080929153522538186544044699854752146269847678418405995488464499482565678131048309971871890979111962285141076797707766643151759168385511224514260074848205990669851684055337645055996863001384073161669500320396163604155730040567374250332539079367000802779763805540732030797917367941370029350516171194583606454192159923994059362261422995854744876713915441325082031314560122233662623819232967220690158320838438596014354444853015453346586886339628739835072729660654558764445236415912591164844767630098742092450009565496165722554516002027094043814638151003028868772363599267184220270407582600193633714100924497166224139577281881945517320011287362057987604778649832804476374439138247512774226795253346976658535980388524114276711296876237652993766008446366926082036620330562459989120070431014686452178838469005334261984829778994903063029961003310660818515654398121207401106097814063589078041589266030660344394949292595116576201065195971419174481426691008288751683119774355017192489507098249202061255708495739370853265571047171641633537381335135060710199129473232400068268724572639387206142505702000611230349943808701638795741313583714729472970646386586647711893301194687961543150432804497699617504042035209903644765515918583520758809203835470306296530581366672012930809731456819328675163625642278403481208103167409056389190005771956876069594519872719348630379770338546370682903273807093133996427229969991914641273091691618843009116841927587301550670520014905296255744104734571508176437956071922479205148156226730385737485769590027444081700614589114925946519935630861517727088272256264435346617803520142176626910273821717012397479225108839564735643171727028844892730328527665578831051448139113235603163746120493345293090230258773282182323645390719144691443363734774888896487569866659002346170137366834985366813655572222893597945292728087861979761398376084362540325446775027689320593085720122328770286276211655194290317427372627597367721601713895451689333738779957091835851072334719104486125655626375086432800911172534371012089015208018959013299817175328349033696962154736704321866577507444064196378750356993094120012805245162498024250346042020607987514185335432062517588056682211759711116277982868270248271186035850734218569187929387994675856737611752816027835466738067256864242229547281145119339706561051174696564277168424195011935464723809877366036051743774382933747657570588732707573685988782044887593810399078102038990033693390351367115941239328764418368187560506141165609717284136508023155932821729934678027959317073975001109056631098237817641996272536363961152737844910348642998472719488497120133151060291448886614658401343803999801644651266214834916635327239508200543108453617140188065943016922241666578786015016238523900715508667093229666742477444979153287966358404979456267133259579280015112013677935168839005289345523495113105538314745836449672707159435957612975647798497629686753647448757122618657124197943250152494395179445002398129125517296935217850391146883042940884912691199199844649488901937877677373129232307638252361424404346108980315804378641996051024071495790417112769389160078016276846581826563172249731678292418121702139643694385020525368874067594827157965763711460379918510261616341969724159833925294540185808640356228422466934454356182037312136119002959755778434273469595855934767041574456882580448208406015793575536640353380324690707169223604542507254694349737323601273407596364094159192388708165961509427054962603360435102797960118598238273243757075315428340394617148406989098397449983401447351428833866529510132502248310358479205055691088689205749409339180083472454828912321343875202498553476539209120603790596924490659243028399516723901878166126073851351733343979671058146736924163132601512501831972108187269275965918219487518937988218929211782649849129253535219366478632977118903865026439709655470494405093086561697289709649470169512512758899232524484438808141170432652313951613441946961029472416316907477623866770140223721195398112522923274281260136950632801868156626040669570546806123395279358109448366782326459914689208134432346097788227063327646513134767815024166909178305502063963837611901001327112032134727043249967078211767044848096453121673194814371070649768497840971455119660011428220496442762847389294045026027278039152661350625768051215320920062463945033751562922736657627505396122740658563035170751906595580951254654565205200403099213943980402910494753069048560588729592934934787785999819175277443187444316715460433295325084767434978452580128049406391907018340123833150592882610005241872769143972598087754483847538808575643044467574367911461821453553901252655381131862808061317540883654104179239274952741462417913631425097884227980043250470963289021255137954680602994391716407234328466625539567158051869353831385767692567078187754729017780041968397634317544506369257124890138062628654859438685419627864444083576109165050177965493359326149136842226065028552543224919741872015805136228285464266628846303625274283694929984246213295477805513112458373043295800517914830114460910640809705394556781049377126434751269758346194308793169616014432660385105965757816475190561428313501272886732017263264195129139982952176203533451831941341778605456756823510751215656576314935646133326662017690580311627444907822870957398897154658662838836069025620955162765878640729391072246172417447393690764891556598777701770635172686811381196577751632275702775233438859566340178604243064211734457172402738368298605665830554325730992525363861724381192248873692907340641425828869191121212812118292213258889430656951083545328315931439424865729712612771880082820895269120363636283957286932843626759276717977481085017261119847532705147168823045180307785292474269496993168615937011094417441009375339063868214177202827978580225519593762545983013568086490822021156302711377895017677167042238174042049927194965617306135848458380435436787694442492241961490033142675986463296003060502063014342657619918506653383984916785275122761437036005638619369832599986613824493642875983303495521427302353759820726231456942142943475780309740042830718560983522697167113388806784367804746536891140641362946957899161716003829748848773031489487959790709235774244104053983033353663463725762515270059080889518619708822500838388301418750991048502696707491006410840544216585463144896718775972499730816732101176947160879805068095722882324465216881017742628618811472721713333302228973342160085329509722250439382081164349429829829893379753571562344110534719453422600047867539852753540686093545882347082148846208490850106600835952073805887920950052230832272994956976468101151599663073082204944220164558100333773374159314424233572580278644849922571148332981480580641104276378304823190695845879403187454427084972043082854273368075697005037707814740518783194810680237076744614948665178464964637685285405473810957599086923766797049071827570047624493002982825873695232640715662067198588191266502943485820394750974508334175566847352906960240803060749872192984696511675667462226652025363614672338175468766547747389935606584291836779516493153187765715323872166995993724887147012658969249842480174225476207200719487107973069727176042980896759774203650522578540493162808437361681271536176022081959831751177500990933617796237581033287062949353060688345460481202183601164302375174483926762076726694389082760112750839592924810016752502900051584827869029563443155657791094020189690054825026461234947520337852824653233742159434230710849875454023108351058570821629439399271295608506852749634168705619945641719038244657760427530074400198531468435897209797316379070522542285373244567560962645454768822234314507855306500463443132944997519891416246952623093004795249047913373264899958942699488280497660806911731148895371536251028824714864802743815712083717285014926955080060189418295378428988768327693327959487814242404708315329154509491668400219291216891980613367160121752955637123003599990144074662019900871514249601129226670386190910927662131757896472860034385134786279412983875461593840272405056316959828630763519594851421173165610551514239005136723472404169044417262346315842530867310840638514403609272950112712099993359295381944843693785884445521145685138330006323949948100085699976772310671084369563921130134328284743768175288127332579904397855793310626781145485198722188479968856558018919988614821546030113071206127936975349977063672983793772768512654915923617767159152229131652893790626865995734250106459736740943829351401467847795087497040618144274148519301995400364505215887017832679093952772922337518393595228810010454231027185681286082323429836005430143110384597821218111522247226586272999020152422179001706562718939413062407934172774622493306572662917585894552597711612322400371294815369093205102678119895153771098841479985120118513979053874100863574749485720103806343471457077568818266831823904782670421313484404347647128688247615054582660657194572538986634696790680135526889413196786004469941275036970027779385456735702646478194635633604055186071269112714750099941546998424302490174061207905636365936977783158393165748575695843576528177552243690535540455295406480342748959638307921660022892476166381547510238288405807167537404928916647084986513945742047058860867579597174453962350646268166904058694123186269022301191029155728022067670858548475055676214506474930291090204430387921872105176721317849808814961754063326888204743701607555448415373982929121686010004211754486365782182723531325446210875386379413236130772535992907550140641936779737632343670277308062819962105616999171796805684690982408048034999287180762622036497365375644825368685344468072057701017123582507964964575639676447370380361471584076736277966685027790249819883764535467804624153172447774493986851822930799741645372960978468818913845322373993197716475803355101877271702554500502930188231426315164865796712435409375271799558369442592304739042935841976995220397958376362187303799485678948758857603682553881444098085350748545206965028114305842902804211555748489128169164517522306204402784449545694870497808943583037168238961571726126277182160740120607772866490345655641267562443027624831805189381845818916418581723933054273969734214372840722247212271953088488432332882669753607612791257785446788061708744088757664763412059372209285588359060097069221613150572289646224548021995924459754582898709732059007641158938273445449028060374035370688831423405057438032441173525184193633693954242655142206150168708706630911643979674262843037268613334737384346203395330654770363932983444449741588765419516988394637318908634679288164200351588508164877536264448380488598460522076943038106304543824180294057059714773863095928315252143722429028370472193470889927288125927051064302377304555168055779989067724551426840034484113256514970439674716132566917144480015432857921596203031536747312825862845990829338643097046764944350086508539172311776225580878660192201291270641853448078363862183625751203928459138689076589552173037946060849616373010153528826348153489207886082805532754499376576082990156950879324905559610369443669891282142096252429847315576015762740744399305153349671472854509027533320778030247322165679057136835409638550003585371733505349733002536716884201978208760854174413382631452060418526280578715492133885534411245891684998335288521051795629993836179059779891499853672672615751199406205541294735022541840719682059142462304381929265277060997385302737615033293032854026694973896089627476667183395091541046479760038527043546654371070568660321356360490793516380956642664898348976430228840005409545572872250512115483849578279040310241354115389526658704386110756788830881650903769200401183845444817858190079996098336365962954156158985961364406205389010833522928134010917888149951128749611510111818654842022836705423889415875708263082925921101494936476690520413363040629492007491034037200549459705632561320168553250069503688062192316033677689141554822943054960046176829860810236963207159261272514373408479749618531785420726557434879706358960715447022445958613079927167540609196817449314070001384097455524513439720834311492203685535792629370620174038202898219560884021192353158294406809475683515124873044094272452801917046595552832968834462497101728272318031110486544506981972428745133729971175762215035149078013334030848849062924632790299277750516235884585948996803837043930566056624341218147018523050877374053503024178759194668145707738491362722438950279955194889231900368556009143285358573103021393711570890402777369491994679822005129270012351678297182440504469227970022035952303137381429912845945095460811219585105787931887077804600045192053799549142669356720580155725937942765814951564724296815429809081828267293737733658391201877293480345583704512088855820946504904848012635203137466577067768210437882515431713639859960569903417296897262645821199565090308008813160048071338356784427505046376760964798042392082796539352796463966088155368869989244455939799285960349268976747387740681728914515291881630419203062559638350143391283396411879065559067602409368023335512553380142396104439287872130726511596121261601853396518515823582776578517249613480558651203919355886921913159043559098278657381111699135302344938281537167082183049862866701011983011301937388999125710914470773019513893486504024316614231782081546507824456733842079833571598159505540357391320700465604462879574209506467280994299465983066571818971920602792299235916704481660875986860121034661604613742116296985482422765458562446702897137586024596819515335404695674152605064100749848782316969602934672298994542206288492384688957598060919442058617360135432693115582640698089434502302303441632324864471543399443070391767597087649936249514428495584887533743002595864062043882810785062449683604903785081497956373140851207115044064128345174241313244004902394616944127621226353496554720894721993966663153224079637167812460062359430513237542913432757279332794039885251435203265205854658713252016767053893311129933170350762973131957264139212008938237489119929917490738987729583836646581139958129260839998947025946610754660815167530835620779286681133578906646568839775386310463067049977981191250251383321640006627852477794144866411297736325654118296083566465851451112281045048431732656523016734413017261916874390077967733040585506920240098178830454882707458836198297069763725080266790643197220139170611612578242776366624943942309608918960207565194002939752879510852274738060211009878186685010626164477900093015894845288354760006918235016561429283911231916962117654368181321478358546794684448068398092334980974956519764198694216378653613575516820507060950115236714428574349884841321216316169245528630494234556040691356207561189810184494406442369279877854039332519912535863958850464544916620982808415331414999373752454495241260860271116329762798829572164225586664307808782613575453956651791836486287940480143677172000614205695171341259104329811874534722248897329265928693404966080812455400741325944008910778013329214157751560614304760663179059722148882369940453314574467934313848183425308805695682089189344548594999819584873716684556766104953109919234491767056109481850580825430680461767575668217326453018523440845732366623382502833321083042520170172827962762104285584666630505211236576394386294019472111557287581723434145078409618639565523540531224077218752035637667380306788851413727851137722198712231881930409833755019690445449318322818664570038397944667004505784902653747597738385700590758890765007492790882879256494135916453148212273174140567510158794686600839390347681696005400623278618003789621222736128592608813689254738802945841066671663383993374446252396778102555579106933158627853627381928222189097288611541161921634180414997063967591301244015607875424321031097471813505675365284595818359227147315123756793669586514730426954802744829464047501087547736034255489521859493273564358192198488140103743093751055249793577895320104587402072763375157656741497085636626545055757206866372456825015213201557297676207437068507732036893223584729061849339827260664359498051654139625711852892974616183557631863103818872834538781717255286269822895960821140277921364639742190149698695854851816062715535444402834969343846734400545758109499768662312725267927402658585359907735511810839127226770749322615400957246585992193710356255549122379052660136720061730556929799099190718330436406789247138760458194751841280879077830241653452455612318571286672010551854394900985408029400536622461920801888369468669461508586140643573243919280086136516161413200431610857765652092149771997798431575013354644095930825538799745601456562510101445250958461179141233682273788944307690221710662562216369503844826738439951098047030378565505372154192058230686390720231755847807923717003534687146592741482279259412606633045849235465406195210312220679175113116408743406132231865417854119967629533092740420715176356407385457179046403265036073371150351974928009426268179826600848717978974543409629458175021590183728929270466321186324339938056101719078385657021209464992131195334455949996438516256235733679748334300246867104129293720266157317729084678035808799877647909405446032503176601650273310892973870745301037472668341719868513852269082523135371260893952118692223520758627020023911317954855778629184932115347231144165367895786456335667081483118004723334955345772009533882634442301569640143522458070041994558404841089890594650072137898029818632892606290110621755264767145730417741603425994092907986132925500645052332467957104676963585578184697118960524957654169374792772633485618377065941976430690773810498711984569466335342212121162423797350899556911175990115576174236302803218786867983982627714226369842034284463191660780872505573759571441173843384067286268049988785238960577285829761578852070292674683049662535180180426558023356096873394442445828995238040297321028170589269462020299496010490020558166048934375395172346528970397062997053014574717868689139691858733751851953855368440859260367625640529359304832461668593494183155734011222958692336827484291519184597420260613060373486274354257304534960523079603475913277296386766445588326321387073095712989413513422557524690220919084980159149455125818488171503646652259961358806494010403996394101708766959904046301837069393797740524693717242570638308685967717509950886433553826857196105771564991218064448706083850688437433754116261756394701193447442889019198945071429111069696952270280661545557460859994422589731684553997067923394131031520529727960469525132537923048040339418890413231250998473192323556338978553756350290973191846279339600237272318560317566100649089384574635981109760520209994490312769953016131328335209007699894852500005806994989597541092939941824986691510636459304223873251255243874398528057913180824901587292522622495745984246676843273005311262900237556190508024311327625058163387060040053037059074790477392546747244436130058041163005835630832543271220384772977218074854354201169140633778869242287295892111802248110832825412315903829655773105530720882081120173452899125170512277294659682063798146259157412342525588151665783823445479636729780287646822828905072151720246318244741692682615926507044195334294096869302869192671562258825276380086106724712345705637391482688732063958166938475498282195893703683486959892313851713231473789559006701401835173370408736753094228215891424849985086461501729967759106121637712131359018537929046150949997942626759256683364466859387489073720123922687018011905387828538261129450417114300423757252974111231911191639946494621175786321677026348633136407256985955651445043540138748315126443732624293457297499803348494805297382598949003155637378145845548784629787055763684276010674308753821171343606662985166670446900556825452908178720174483923840397899515182530203121503029766243789578701316248634580737857485158633996484181413631753828712162705049424041216905198998837572939568214635610589477093007456789085506111818258086378423399800875715860271262605009847364541465140950328368933761769321005529696851622343553465809198809618922669038310352735386775302918194139377761851820245834984520063570643198952143314151713032271172469933291101820168183299658414370207894748923688774852154237217482035659446512628200687887409108588862790930376026446877277748928292836447718488504576823293764255953433900904378912459548230138046639037448572593820009115448371728266695689305440055806653354218577780574052564877353567604354884353392786933394457765959658331313134974364928294860871731822063953481186082319151868469465112039303807426125221402498942162029618068378799594577430741856780066601865581195078242553814569863786292021685752527006648195998977443141548468260309386919439196110724916050170491483379130413922328656865232194614586095953250269370538273603883413274278505176537017520692783598429555172771288268961449944710958130268587366514341175087231367298294652492966561883097925880959137888804925278933518545820833198776356345086559365103998300744327980697582342219015021722129298408444007997946324776392869594128537763308137587255297036924660386669577916971089842771803873464208714572514947093694070477349075470671582048246778788142067555741101216009526395894874831678399018458931345122188920454398879671175752604995407533286865749322640345107885700362460704060448259751166575921280170203699737055653746523166298791894943457539146251585019457688461946106441951910629449404979343578076468019710864912779544164595587093373909114624616902898315264100653498719348101940736946131727562363890436381732724398550978105210823748486613427261637349208579831475108707022043415242653360122375185509697918026699776707155955382550713450363911270905437112145062877435375830982240487130492702919969022664038006604891555947423261646651834516211281216998203063529851476610932966075749890524001122967858995619010084417717967110001048381353499452140542800128754178877417254008511821970006556095408265906790450983879302580052486022372394013471854623993818066389502707571876084522572997970767549750276462909982824005650904742040936153125729874738076549267402864300375573126007905410635936711389056806669926395913310432212527198964758054233395953243947908893225187767585376854087776534290989861208106843844422586647059572769093672567103952725879304955679128503429585406958627810666703241217235911781048017426700351572696298617758124880035475359946342429551252299237040777361191932584198819695921712384531844105278621880457057977589958756617442410083217586556607694814861028552591499397368223742049568784387403785270791003429837075041860568904279363561871106984031728699989742860150163032563304229880744175620710133068042668159004459243683575311585242352293111692925870037792601092827687316926822636039775325648446001079038057119374373642060803401584015225097053712824465812179543433459579375341069764078010816518730402398370428993902749935944172970851275975868891472584875721127865764755332078247273430152315061016791557774474938947154705942593568746311699365833502518398655542957735796389726409557057327929335130450342594577640646432299061375918022580126618807913984988560350362179146260234600641977133624642509940739788917976713405703577571677303613431715522799319792685847536980067803784391354856362219377074673603452424203670352182726792932911788220182243221957578691611977217313859591210331923804732024951474983226839213093949367639071645884161768688498597157747432027874418695305750456157476010475325525374138165646033041657240259374311282251178146268783863342995613530335049088033865580829593505336326743571364479851055744659955503003763874608816111798376464468039644373778279730901351435835221201761514783214766626553841095327458896625632802609148755048278786658271548279228770596189400962372119883092883797840870765597761225645384458774113883341386783784355269582130412148546238977472514368212377050039738965422566716916705336416905644992806390029732537687545068619609817732055532971660638492306175922489782595144024139279602812975811480702592226474096202599619297499241703349069127655645921553244582909206160450714743192630870031559177120011756168776938068128992416922621940909616484959521033485891054739044700846400998931437727152651956856882156272134113409249670763278091212178355005138964769483872094131104369636721209898354763395022570729669076556931416283244048877048044270720854334608203053028568305153014764151300592835772044680238356914751075332594653087939405065506661166051410269435172401906088427440057468639294315856630278809933238589655733847370122159754814804377121827416179711964387764666593085577961868990267484241267340997521191524691772088865920616325320862807274353808875272259529636267850971165319277084661351180791213709852118525132519792289101799856138764938777979900668411662684149235104436257471776508382440479846914865282904609585911576561176343131686994284531125858470548724632299839303198094715376506355952786096549662957423790747046668076200119295876497466018851947638924632345172378848687706412323645639705584491411999278210258900229190770864814842729333677563738949661215764597094565059769158369842452292427889368219501801722424018006253385119515752118164387491184602063545037759415655186682977765643350278727739625682736477512662784341441709965530205948511054093045968551751610742599344722278989866327366216339630442477748305728933527936369794308998536037718694567003087539467242241090804229570544787162139993661968832816637689299550739748131649668101741407891726989315563094012922317008229677907109115841802452884076565425274715591705935146005777930771404502412260193434155492917860130009297503683764274418685633833121606362553177019157484303709136922466429616809194905093358733190302876595839316055491540578003859487132329437131232619594982593824453425580313206534758406676824994191797134867478071048947865365650355065369454211568032334585817573498136388723168161281810539928290841461915915297314814397137425987042496292040500109128762249097480314034979764538425453459381035883912203795093525108279672443272020455329913398622488034028361530026850061585874477949518122779277362640627132109525590769824066902457109466310483904571947142805980218490910365012056227151612521841589969383661824900689640150509471358197247831354140366590705701064691478549144249838181006033027821991117263842317266989185327181148052978931626482092201615869018126708098649592786694000527016912478572531998074999728609458756928690864736776779045249691676392618743702819477690222182608615253842678187022986306813006049187410213651854861136642704998510374312774398464138642833151994175474238242222271100344842350646069424290346502535410843767586970366170936167996676373286036377714191021350786651918218988790631775866050212820714529192517756287923026939963533555489481841541203389326216411876872483861515438423317815350235318890113764173267760185882727784327355633042885236867359399282601392112648119007983379251090638866000955030544383759723735997236002573622136611799073141151548399039378847905054050453543641937952332809497056080795412514505708693091102960895913410186732844317394822515768363551317559039510064519395695171748331797052593172552570349049497694395617741556946869703038164407199037413959867990633862324647743784537034377107830244938651612825291019649544429710869692600820154901279756781592381582245568888763490056599767379059268469960290558095925156200630317616237763317168077580020579288770833089359142272577093081116292926195425466818825248286373775002848030574335779242879170521077698216792340096336326636795625360277076040921586623915445444841918792825018241299571608543028897552567711179121951648926868799701850691092927563897107801792393568571490227461165880809114852343694978037502812460854380047070784676997830388738827657927349868038883748041512806122246066949567818198348117724369031516594450898772980502734636827303518164113775782305700175079425467395640016300098871794406107749851501241255993142976840880417209770944915324097903677264517955025030090931767974314246229588435984289278361741545393395559296987194610945470433849234279248069298252743648445162797498328762135344109934285119560288814436722717001155432349933700162414081192435059012884983360433612559294121781814991615944156506347102043626000170616689258136192528832333449637389049743748992365847619817918004463686116663643703808649960712401476564637727192651089071923829416387225223829738440406178966450733535799975661114913291332305043574116521282700933885145075467615753350962547052514554560714755144512960747916805311170355707454151936882014310013060301253074054509196884176889724462043565785389047642298868836839781743956419022430471750677143256156066245908727038918266919343305506664477760591700875935975924174042634845702507007272770761662103665638482391876477438516399131123138282171271877857431428960809613285702864417993313579534802979170764247257060668759495917593707910272826704506315746238543067250604737254289290233225972693576211255756778820299973504078711784556952534197280794210177483201117420050882193381097176767340893928150353340553644030220030702194491042168110189640227332291470118454774488963642067658229429571999697031395548116860579018153765328168032633781714797610549938875010309159742401178859542732471340919637094009362039574903135616519960768544860357826064078404302584278026952830921087124569229818780881642011326385925385650072064290864551382658234129132158290389669462733738971518631607180209693500738778488606251449644238503253733631256405192664723287203328453819038410053073422921531796303124988664558766328951327056643837282666447440592150555350837268487805234385066448718502782823360948384500054772299102954282502893419241352506248652543387303629028101657902076815261871518204427076498913350646649945529537828597219362098719984068786979202602274697751378957663448340262063816075021293962396893601775458339462880287736311428102907769370782012915419800122068828947937066051316794271591544506562283698791387164404825313545380729005335913244932242062875808007878908163531712431439611893150246207477564360707109813498421196093553077473860659996613182448454984380785697089383745892338217832655484258924247788529165566915148675596059277794520976953747020762351362882297318043104435635967307921276333809412724888393388750933854854757471176113748221653589879676339981671462852315222911930638984727306897780607070432799864411356385675265570320219003275787736364980013381372623858222546646591967355131087061680368936479914917166703597513813923531903701711467495963794631449067484011107660610326018117335196274802010250724476601808294634695506508603132274455691184971650433708898646186198390093165252300153414950806051972805453483725048142107532455939916664668677433071343002196965922882134893052436297697550339310531933797810717292233881501510411438747196419962138441486084724696138494730365566915955831936474488749404578332534326607106498680016105983861669571051778349730099728365784256652384341444854821236722502501885424833095294008568610893815328757098437829628140360938702164483939085641497300908289680631960631946262595138455987782129740750455133029524002649946987983490231706281017507301578360171163716477973490671873081396200719439547674687472474918920479838195988716072496235707570134196725218105406855676371644019690542433653118317904859045563018980816967126877017869001489503304842717702580272786704812243769537355049166812565269892449490941262899573197455604956202157157339493697506783920131519208128035150505528265046748073327455843713930156036348427452544829293367281207155909680180814446327029471777638249535712460612310040863221044952661770344288778636297515379572488350645080881098156292539137844105752834917091072089528606723287978737815990619514932925788372949732939947739706559195598481045755899087643468937183058684274116610967061442343188937304290885028738615627418390054343755117421303583449906884401831653041916711011721397139285120646738877910106915271174343357484627890289618678423030451681025631160519264851736456232524090457721398520651860432323881657162297351316148860060437585827483168755207412856091508394289460031166024742284185559583943714660940516089937273957262935660684836591062945717526756733392659983098517689120688270292061154909206776524902771987349046192149220859149016614547163491163286925667517902866947176161217524888512771258812172308026308104944739743206720307281821354461880521600457423003517111125943292499039821028544794017941416613511378772556929439050565444955963902098551973169955220367295515590521307248043125292373384483994622773766256955220637512902303577056266623655727468055079461049244259331361851155390799831401012986560625943128164089812930768331677954531448042827606505966068493775722865230130508239504333519955942818502083687098055909992947421478253109712491481976152266174600240609533562897141189850736512405143971331309842269350353925340288861284889641577355669315640428601326202406777012812938773493937849516080451606432118004712293249615253790220109143741285230505155236262283023118142999026165964938205654081656811072154699661850248152238479557651778806697273223799708649885039990001237114158202818956074353180743370142574383786296386791359219340856866775987598226792163783140339344439937632982053859256197809609795874194170349760121706646700392994770412104844432659009159130697809879464621112498521342552946849498195553291140662112696917923449297318419308419510921305395386701893533783796730984696260436489742071775481978001820134812786615431260729986106737611421183047823958363170006308213069841822164200226052654480862733817232476971755447288801097136280052305708869261885900170934018811853594401695683032171325107061341748844221517329476589495076051344537884772196247056648439178380887312592125285505304263226135476444377734219350089633962297770004526343285245816050997328757757955603815010489341351728738056228644422208913626514419580689044118801016753330365585156619883395740286903792405209970716694966592374521866963574850368554940271426557236283947250265874022892504355632438103940117021718394569292440229575164934560445388202845913424889985308090519699411643913377027340515943726670367959820888556506400485287423958980836434952543287012530474518917569806652236476888054988813204813321564039522860173665699872642817461646954809278205117307613632265810798138629521356459135951241744442397430600919247302459541254187084793083368197043504485958975181493512658802336036754979380031904719786906616802530405988184280452181087333549147266061166783833400356765751678136995363970994776696828035896611721234204536781304663193834027573884106380292751521612415180800678543562351037737340914576215037585141975326396558920283825265410003432444414447220180829001776529475980301463186860625533957749973056258735911259137181517451743375670064762330751972004859186135982128839639923825955705710636293458217769237553599016367107402071872145526007735357184321940757108414143575171730108564787259431291116545539244545048186441510576875782666356727423563916169784459801848404066539440972830065375427097379043865740184721260893517001041260666491438432370663892429558896454233733008290750070071099638501828917113147867072716520230294908739299323315267853766403877220912776282059722204313639448563508284226447140282219729348381662471130101202274042669151150579855797258614026968763873824058571551012232349334526559981918581276092120217981677563824554134629302669641967929315132021630181635696390480752971118126611844867822372372311453447363697870434951720126620951318496417397970162456263496047414869420250146735066431219972612216994053278926531538571227563814780760889546837815613533491242402746955398085744315996378938549216681359140179285863112556658253308611071670497008208333287324889362566476242157963141193847216251695202544561052803760756171819889861547599905429051373156627679688730666754675724184730609466631684549381283084392321522196689835699391101473513191388655491834706434113534918488127645838351010655807556109552826476821668811353122671363638658725689889933885639612158965680640757331297787820514251832041239861149798361193764815570412552091518336730562003328371384920736014343341604126276490270461903754853059521635878362490828461473416923323494007696862772290244272566906691827643297768145521959162654859658057777387304997594893617806734280272943987476342678679675487757565358413719467231164362350453724957835314579983937791403686835467689698226235023551435080897505631765442551751269955863755512767905235632000516439580053471321326565802158165282542025390872000554878912894300647715664462404606890563851791829139623042409262248838039027761916841456812485939522615747691753862387451040339489471978417858615332020796669348708420097895422975481229957633082482395198019099563345622505181642455734595726493296119199296090022090640670771273383764504454356276345368369811140474930005761408949328796708262311663993842213233929958791561263768464716608402689785017096672679070775943578929078621769113540186358680434436024976031198681952769052702496858105258429276739679723262844959738390752517686573315416693208944355665001447097600695166472588807239723221699761147973815624832118948156757276276137361498163465140839006035417921635500534097154919163221271053814089543724360982847049428672066635810113985273266257041388143149957919093540580316658227905951826241461829788242249297539489501515557646019015420638677345366357897949549112228224872655384110624961625731083566368944949832101692163413041095125343039364214193905666334745802255858756451128184456161107193802940923923762763582550388887862917577796015936561499734854776377500714256402095052435578300470020530816554882677710025475732989930588422395190153427126382704638862742976694266967713379499569368028995443513643748703400507411629790938639347959210604198027900865573563671816121973152707783113509939522840919151173936038135636795420976528579816959191420233407792610219614626548137125424542678362521719982382745332985724960755953221625281217797724713283985977485039204947017192549401071152879165992357972378300948143556447727274571720563559380549489514742301599571076405615858660994898430008075778807284416969580965985613018157394600910327554725527486957613027552951494492504714005545908619715324619156434705459778804621025821831518545099837989668221279534943725649840480936603913762352906322025030476178217620004384507506177911372049077732875767341308773053151164424730544653806151133996217863770680398354999630333485116456148498914818256945440880649086624237598102560205321514193545029441951097180611459052549995385021730556005155174126450036561901497644901999061407197547957789779781961763586457092141834261043013872657576861667885081662677508013138331742823613871262009467365238029220204168718841823881774324507353106610089269191389373822282131141267189112495181080454703402503132778720288605376302356669243012714226656890185697113965820074559223380097489800925135825913237450528369167900814679639087771092377505637607205542963693887440448655606100536008706825777263564056204302037443910539666397647338244682230978323540888715495112341433528067182936074679277213075375665742691789976753164093312725562801198107024344236691225811177311143757405081307667631210740554061427801430778678946733228224034985499659517841169610114255465283084310996275470899570832510393688379445198764419469006416035804553853613613641838652382393553450213048394537601861096764887799085311901573105706067467206267624899504248755998342893374384897930240572487887665751175341199179892058145236354064274811007733089830028368659206495818499557224557733984404287739564575930203849156446435865608825940979492005849740879049454427445117606596816317961617316871630313817329717336471330387623117271589965997619201356260880778218161895011340521900157178421179638792610231564482419643969329335177973358165062368619692561279855681251515962748934553715486590756568975779003168140755602653491044258271054773971990061457019152713169935522028765108276468461738502638103969202960340254719230759535727940610688964586549565443493622278893524747700554366538195068369212890860962864706491462993206939251160526701187735638005655026183439754982099220822711519783028665942676217316425285906759248304318991759933323015798315818676982764002709284930427299755076250255616544620482732859746742502504667906296592763339638561972012152116293130962180254425591883074642782519147117517708421954452399754738548055505799443579958325069345072613001192999596919514561163522157095958176967672056748709393816525148675552325069028822526371339226128475420707816486949759344802862473737411460262438136025195810299060099211048466419725342637244650803282077378722032490813620510559406840937155503864514172968477471336841208123665950813302053399764538275448387474559721440347348892425647763405580230104943211630431607025345638767746321800815013655920143297156053019306506310587639958012118063740137077712457255660834784130739639534943177285564535443624101745566028745248435480868055694931428670376030750942577737666604714425612405277198702310318429414770706235073122193895603933587696928807433296054694470903343779177723516590300208354225069247755661068816726972741878270303339326934857683456884545913363388975820543366780101879020874153854913805874712938097943564165139912681321435434484180415659346866486305572440125530075837534971371581089497755944803597370455733927909804696651325360997822628782482712798837862038071920092961932863839923820257610498362845588634351521560965759442737096833992172181439247097096568376267935928839655213664923793451074156844104282920897879526236859967599794558985066140916274922448810196891198157077452792728368001918384528157988111908687833627767602203172977339165593828581336693468617096191030493610450671159302013648425917177795178491590369462917414278866976525154807904193445010474644338863714660567256643262056988560351826717393701961788501220526589284431086107377454270276862767152827772367250872638428898776310317818767426838050315194545541629693678927882806094099888279313208602488354525058493775408566240263395879433011517965329303526302471686825251706042137462942241669115189740032383296888924362822506382211549939515197892771346781980113410209161411075664566881606789061582011866388850016268025686563471831632286431903493433670692752968699333883684480453301982780091244592081424362780415009758571823408779331795887408735719428027936894425403321300825768404728400650328153656031662452660094512415944559645969688219545483448405876373958647564184719113487500560311076210583492648185550760176037286651263124712159251170124971251900917072172762406461335811170772168272956545760452048867053921386578237347146155936838987922418497993155975803453172043553782852808585292525793777847292416931982067876184017607255993052054157513988807985353118457328089939134511148521836369710890664458654450076726297433413217584065557596974790115438572058890269297626123317827625809774365812794933355701534848058006777314423136881724479156493335061586796541299585992592621322210549709098901742520034267255214674872488356404571878446138730326427073154107761886801812357464986275160048847589449132819301822887565459369065325166578908995262108384127624890068717529017674667214903277295771708109868110453661246961841156523998165263920300796225877988561107725443973332872592492691867601869977665774950212645143969932102351691725285313989672187976351470985442773681120735065713538666961528162295394196788597793668596247519024572196352041116431067500023336568423668090762748778119776439728434589066419737959677285310338235528994868966827670070546742519516349388861840502849149473960909786411781352511872604123721604016963155671447412334349962302696656377057596146109802177432729734765548651310104941846132504492587048434909010546270026670648785304838547313430235691577625116278246572361359965476029007329642717922814027688903425561502214591666825867669566649793225356670149816635932601246171622346560094003063376721401023838816566065974925989950420881715558398214448945988336633822809191507176940833493347159597421441239112799541505481739971766387059772311370578814698358003438457068241091488620899915116405990526080904319524751835104819913388018838322264374706121934468973716258408650853659757698822091755413386046558613949816063132959240821968919106237811370202445321663928180975749737000982656391546842750877631282200523356929401827965685761810346456758135846818761759425520883406665531770946763818284867000631626275994678454074423847768345848955813106847533562652234496028308635423755684635212964252034723379193527408308171759070276689973027421944429658084168481785644988524743939574310015047344369595748849493325382012261726931018487810032121986343424696726689594754896261157943684402538743699616838288925824347454053896092428076741256967663011858044924656725782070475413521133340525923426877719156680930332767545323960648895418871711941276565886358623896890784911815362681414793523288895825587498055683197791470469164574990293654157488570596681245926287734671862494536494499078653733750185864348863766498087216936900426417308181624151458503889544382301090501825697134478728773268564000636199747995461496160868412121699376935342500352369613926974489275396332034243290672009917935635314343731536061826026726326510544210490816154461854611208088172443457300207064192854419330032590721191803892124517554790576374493400727572458978743312271934470572220640583057167675111363182900668025118533291270378221099347563796990390884669927372968513923819532468049758093159052838738443553207050761136076820679349245988472358189673029334178020667367978715722012252319359715588564813073926887452044685192991699259710552372672173332639095315968856028363007508004116315559646137904614036363994431748652638148798150565087346192515345168817514606576725636401634438796599800991687739487594683473529089407688710885790245196697842955150928144386533689363676922499893425365641684794554048901093395602143696544286446181470195713020185071407663011401011533238746643240239862182319747944875776725570635117537285187361597633520384417644889256327758248698998249025102843173367005224260714704558189615452013767237422715431630969867562456723610273752828808808359387857166590514550627918538529182961151794124185472260970443538074787612059379289435072374754898531693321927954791514719683081233927836631717302628110432035748021534398603814718815801044750735547828634257875094174065860795063675418335809032483547276700173076328525345986080582860034254874509333295171617703496426898836890246196714794355754257774932192953306851075148013488432617636373182731207133125680818060723465243236252224939127982665855815924030091201986592755717831629445135445979208168679951835270233092850517504804641528175214699836408874558296160019566468866617390853448607156293733360025609593017616587528067790238651233492085213022575355584015393539031656409893361596563966818146055974446985926296090347697051128010786681552908820956360194164623113840087753207285752924090847545353978576862729903453724643215649163520162589281887533011966724224042856745495227209675498578008025538679081813135775252098535700606332330156363632070588820773711751189187456937244918839342873291242124276125459952822947189069832275615975079621512241449588784017684802021006272455542583927972181083614473983536698373974771965352446313404764334198011366961321000208759844441685490815734852117335409827439237774558913627256741218186197182160478908319606981333119681192381007025211956130865532484148465900619710842787607292512525250818250367928671441673983394584930016247709612238694780360697763102647745689914070473175349217503548877338611796122149201862284560563748675684018961479665193027838734813045420386993251047885632618110546535375801634437847667498353278058189323412242088974148735456820617794001057552225552841313096682245271959756848260986028720932004836329261658227887876009161386741965552227746766893315576003801291187404851934568942586726074322239895937262886066576326692012409026196355081172385463562109943755709881296960001354545906295788951426196211559470946605848821728765448389306096857797633037611909408132887820813416947395279317607463839521720218454593397124109069454158090503855817564958813899297704330654714756933443261194678982857387239919061917628895474251831869992455469278837564698312638974124059183542563378494755548649232902064411590864061837048206179251546959054975570556905024110047285278611862225244166765369823981638093989628246415131497937610775805880826601981196046115314939908248762856563119432404429890301397159207586633221443799303313834902900579252719399697995337203592618837613496458044974902968690751607585817400612330440199774717131780459102799965510302650756725421425027735604665425192285076656392082570952940711328223265886903486798284726959391718757996351505631154068537721114474587060569500715299845405846419908415553379539394671698832041712691674204071976291966514765389631798679770725600937162676916465313870197669040752802841243312601734911522840056037017456677366273807938558386186745777730777838507292834479197077750215774456679601491483622413555365996982484890307916347021323096744726871103803023174589177405671928259243737247821925158948028803363556582082325060001334953704448025667722480103477535040295977359413684577753135146125703681522007872135773255486444426358388526516595242084536028935699684355803592356110256360485469863309282778700018018673224239406236296605158213461799130859892017331723541535213484950615920353867042380976963338199824218247988295354244559441562990886402781285304250623530761449841517972069438792769202861830632763612583573358416800801320519789572667648036219908665339774568706629937596748590481207481428114885280534663157909589245140048166944889125480219714422638980656842735828236183911950368310017454335752118917419549859834506658587754621034225867181482200615305744801489427373215724287453143065772711065291863069485847591627450863828655895624596708153067274159425902208714090854339522949614019861857573822309595631183532901930161347337670590595798431263627779870966362730444666624861149840991973816343258328608308512529474713273358112184065388328670453838316403413927809915148873176098316431816605383415904105699124382161799395580854099204265900339239206273237352807824593469226780141015882160126739841605841087942562682390845317480030986521969504095925432995036530903158908057683385184774678615551954364658188928726165508890972807544211775373919720451195532299230064457191300456412187674894000451313839675997952024074617216919438568311542548886443489020675639845327056068504827542396805244502668315068920568723106859954068436360326405943442464477883391387875384094803494620477680104663548863328120186475888824745951676018694390254719425693284718269062102783730188070389892189970613053713066131475965148076691039249887689240362176772565817947579284067242223980138210873529459868842792025275342150661369876690066153140422697507788066956437929319433870260373860776176202475014859104648186399027792791247154967514407345509624559395831430482174287206465350094115518829471341857660674481205272133744121165351452513922426844281899205862622049157189555702164814776150161407643211919218735145136508944137739336014333229722794308933772623678428926936582495707871164454027628822094720125027664362730501952354431669549423430861683821875051125373020505305421254943015740317015520087747580633476907005070555947364363833569588547311923683709841869152906705905844515786189985831865489831069858545348291721102569248423775709998441158727184779289943343107295258783095437889530603087553444061992687657779440342357570904165900675288300860176420149520361728267933150721254161679134290823443851863237089985482788646157496095235402641795646726576468617785627400831114522647128373704003634012248955968315616470412744027667216989329976592034916392203381350628116039751237852182302124030280744262055444924699692017588147076801598564504428813460794980999995570503781618187893813183030313768017404177907128081098937407861441471491246453132024144402232386382673396981000106448626043444258130205230859066651909178932477357775750757037228233208217622348379465302653880392821443081212921795472140203554539567342602619926353992728779340050212646604783639682381954570469318414261753714041736572088629147546001411305587213021101196858386612352593930839842203909976407894250300593774916194396089285601637751212886686522542259324741858920234074047603414984193075802344716340498658139372963448976479959227434796011759380846237561473160055735314314933784578142564809967918817265664065580695881481070580635319476975394578348002418373500406292372609418092314607710180400243845691700193937641886841151696301769739075453313215227302915212639198051386907429416161183131479195203052464848549383063256399182585077450058791444588336219415693123894577715660687691990604625658382473256847738568032587044675069025538896763346675543349188240121115547603473542955661493394766791665094138546562626117234290025477237058193485740310506456468989465181524309321990942283983330197190536816688417644723694886878269145745739793779396057324283927807468095686208865331840634763310001345856201592308219737731248127092316687668365796695251014709355530925594517894280678984146253529219974615185859862111924686024790691551295255563587932222912279335513825702600103137878404877679249231222469938566772584363358877819012198096681394458130133254636876200318336266132593675808604445788248650490211564605913620310450514023960831843222749189225516903742906202555747019887275427640053225612788335251188834660829155157651964195233587668667320679537032214882300528255375367015750284740960863247485647769924139602512456607244547762050092956827549238531647988151526477466707633863829039547047698863934505299673593048915526954985117021724430616451213909556866815948396252125060623520525539679946700108643343207675151643031040391019541387153480751717375393562133801264598051173921668720986240555079095466823194938165930869285716212745686250696151493568638165523867939357476222580194091010466098234725492738031947944455070891915282267668857897461252238178046698557873178026534911925232002036934831327419388636857332427620569760983920910696581670851587329513345876445924918711218286312057383659340505033107532840757763690250361647189282595905556614444038488893831050052737641272467743082833638374849983025768888492020403781061710773125961177484704724941842515994980745628555673967855880386192099527174751083918277182008929832496715696438893113940254896494744320737648506339989462909469877550553056976794112613632966362860409709512907130144434973112247646063095989819053124853174679679913509297371741294736553995193151861046720624605831534675966683684160346642666603244283864131776957878431701840669784257292444255195453705182284925076533133016821440347763908048386585477429623514959008219926519805630107723541523373321900016065576816721951214882554917049706176933738935777959147667511038531985340131936098517387568858549373094396139592723233829708058905386435372884541755173461658487934327785441851603717917803608997270999550014916807765029987253950937493160410883143207723763139606130019585643596846561816379235175187047890560109091023691284246301010127110014137129281026253434885400284172277504582888286052018675991828257576000544166733983811795411476279193611667392754205733903983543105584637290572614726221844969524322278111572679983346287647820902668337200818019375133827051969151142555063842224380710459594618561868792299458055499100762169848699372317671516455209371679384684716689492287997645007472238369376816863493225250197374623224740810755009245473637117701585419107416502497368996125537243955771007135223322872567269825822550569209062347384431787731509590399241805967030374478564932127317589872417941821332658853914655947230492017301359666909077897272697841976893324856119718678353751375445734019807404172555289960778613739285918481526508058400705721168733444991576887118859428552072956078543922806080853552489648829327532818754321286340523888608549142134529815575061745781156931831873526904651806708164664094221964075808745827737781843200449523354970919594461977037460286965832643806445211192148351305967221473975959079728202469002440073605734032542100838273858030332361831960294607125884880792126233558719867525205358487576601280557453628174134581883399692054369049567458834988218583619019637029760069845784871541306586348474910903384877679519586141723218974459615300720348528532292517968780926540464988667380144095367859406096518043886970723798340300832925180106135100414578543010760954496741494517388584573172309462396224674342364103783791305453833499683852986142362747200444512249486367099666638389598868193645417528420204888099692603246838786501599016460809971639520418891607387506359915080148286002853920162438337835574254971692545217847213222988041251721204761593297488350983640747937810552343926213919028708757163344626269944292596517073588505552514862297614870645849485167581757706333436496141127592995340427649864726110093062067458507234484674016872846910329281950162518825695349032563231583409473779577585938103011533653698096201840829339380487420164000398940350518539384457844523125244995996741067901993984724004496596497328702199121020698590283088570629453054686248459886821714532947562805963919672124837042255700895706875516919945062491065288466834208232606850373667115473849001783839617549630624393923956274113409275928134650773931592793269505363216691912595453893966694152556361940307460106977511636615392323415961188113947087561940835767165451417811210266231572638449078227941635259005451793907839387091485471860862384153550059541270711600146144593668069602774478045922794316408367065751953838313090942387684899734356975354755744007385415202784756423770363122684198799914326139145239622774779083598341296471357083493647718800042232081191058989581986536908484340823785599261066451099964264698340308329018747770749262579059833899776471301758107473377249174395193668958420594993423670960242404888694240693747503486000366231351215758807835546070229702085416061842820898222218924632828069778044873813627319900245954250785110575339174845225506390160963566548545496249251404814389449963416374704999492491387968387144337712130357781158171467553590038821070390158822743427559949600429872606200344321307490961170314007678669721780057080792083330068437569676846979365945044798292663943674140200828292610339108927334757589171334431733928605291804715085650715148985455777967826707310101683558863019790696510162079967381125033126094164520392489492718519173607323820891786052427929370173951746067986810374671005266799052109704723034679216306169752264289575358160665605315531071421505314819571037913443195631101460957254664535007705567003721329001813761351891667591474807736643392178262135428474669315088576355594606126479822928605768358445268747897239616693020480516798860499840124734596712056220268128216079289353571976519492013484144442009635981873845465149671880577924413797762919871501410244554219835282854819177009327279607841988814037363104113163324879262347380363650568964784516228599078530780965274183064724091372125857860358910224576039539637664765285978618573628336306441173618357927101430901091701751415481165487655855683295269740442777913528943837885838603315072476267346364659311888159412195200478472663311244632875393230860923533454073647528857407409155282897034834779056168916380920333243570932448704691407311340202157881178213099211503552740903387477519221950118333937089143401808834264798306375697903796386215670239753021196214234684975733991875650422557201751263758924242169067580874906810187588136913985213562964201296517453009134927601567361310950233204703390070170505849845128224250301214120572552614751171955635083934963873250566130531518988932406461846829307011358048987797273315116679535938088349720750180695741202461337846213399759455967867371336136323698544540841157303612017501291823107756592928193684105046329643939746793197384493141847098191121169627544626897888608276475966730321452429246301158513706545916074944428328120606025766545665084688312669074261434355408555380546210437217433807265693633077322402673277388971008676502059677340776854759912069682097160111005520850859559758646992764252237985155498041444200646497117571527199938507698793164538226805293009877211541769463718255315025757663624752579842847949134676720273744320450095188287112995063582775014968365886715660240031497984239062663606176109487228370284228028279399249416145155983813184147201445068799423447713735716952266445283597574851614774194898744518768057439150208275075033361636933910081784677761937971673560804393649040800551394528925671852000504067328470862743690079161296075686914629675222353038352456435475985858954739347493793867905551490537578512575419949641805481284807431215691850668009870949211765658336854883677597963594363800733240565261991342534414042932996798747463336044298816165133026174172362441148377216633463683178756183905140389884032726430295075314047100499823660562549377473963984898051780372287321768687435712044288029782275676494844733171658356669092217341604020564503601938346810775508708783609787022131823500259398938895168897036119055077175540892972601076860923969639646272601417085263214416452649557737444366207241007398971779850758205437169785932181903057513317256716168837256023293663688293693270973547102410144551495488726432741563206250086139966639789574615477663901675766661010405971530606528436586221306954231272417312443038865689284307351338941390183312084294418424475483462275615185237466940177333487935360335061744809412832563292092541020544076745369579051452206226625544456754242353724442751693380830202256037492216707638861529251505708375120588388050601748285414341766110937583748009816023187612486358372319380906869194753544307641682411245686624049529067009019943961563655253315193685597240382316228870826725670311919405767986913343031317561778691719057435505034832075729242265258526964409729748562262762477107780745778114453360243575991693178235052001096571627131236124590429258295424812127569655306971151157703860774096347989937974323593263277875978115599675751043845109506999069238512116807558352364485211196281569501505369767075182728619817805737744762622359070763879636260867779921696143884382800516860226640386033827512460153371042516813803785489317267374395180948088328097957700063723720234854925562528635446242223923384181596837736176210008792074468003226951859560416254565279795109835485556051017195816583788700114930691952009911918289442902200222304683882970830514038371929233392905312476052667034919962834644869356696271103369998506195297966441790368196242522940646290136363165964408886011159307260418996262192541890378791924374919623837935604609439202076463045186563653578301337853573713366959781721228185712182337606189124631923896701163202132118992651905786824101256817232729413412925382740686174412519944555735488707585200253684676963175900848215751176807301714585913496507637158450735890741884825292565013264531329766818277989425485165912314461748063214294316922624380113635404059587715809319251286676480607403237918163953663291496249892103032375811713429628047747525769888617291633767454207864049865299593545846173376393421774704886016038276463227778377912426636490376241942693567156643746461641935549105964374445749642343123263456491203196117433313809579293311692377235186621010097232655699794285815059870253847892383678834450040330983608659317623574684689249418196645902728597084177442345868691993413659597412669992562994843224376498066690248302341588455159251863321626046500476756605413988262048911763309055428597028221961980865708253163759659873627139410910555433204445896788338893861433916230337078637115796456832869025728049109985992461828602640104532692654853784234470241377111071119209550479508959923668289587232889724732468924030753438691135664531322519096626187438769057806823153714358406803904787855069600347006920903921612184420509660146736181609557695465131800895466285713329379990182914626891715681743740572986819127623134097490854732418207229899582937709861311078379867329254013431739488797586077446161357062292331484910092971529622058673091198823870227889911513783758440951099187422556540362780479461462027393547812353637983834660946850113809321258556460571950602749209260419692245135326151980733232486644096555716458249129453557343931049065610900343265166657422708622503639179351538562830123605004696959805468009849933725931549934503771701389284777782079094092580617559503625925112675071377913158340253243772299155745189225821934062302157314994081198550270431385134858843214314324216823927029455626847634387999114717516041384875085740822500499743842481502899258413628315549494754614652342062834889408580365514594821446020569632760592939685536525167721157179649296988094419844308989865247071188070167734073350842729623762773941889785535699565073847910860306490866294262305318238342524528428114237442711801243129317226239308456733227784459501354577553314019052463675466586781193465607110671796656306019407316581298350596314977233010307944727814137370897697562678417875405737399359891290656634134238326097657010701665305854310467939206411397689403469703212684342789458024323080247272945058247007124502842114940921924281581841255093202518262950108273439684113516206832512233426111807104430102879855430729774772472172505053622289471971334459328554312138491040970793853909782599048262951150205526775459348183016647681283349830638304926477844597871105205647009342279605344745137180645597637286488842291863643698054532299628470828533777393581699217380239004724158166764988909559418326624393507172217239501529480168230272567327448486032283563892629524115792424525614065546200243183839086820218270984039403423784321390848642111603800492067945861412588743613274621450576478905119734538037393319012444236777231412100648417417939890873719552404530013081679296613597765590213894943899990324161135591817990692799957448675661173695689497415031873860949551523485648052677196067721341981745089622320028612128684084527854301770829003733522118207644617508412440936622034075073775924825026574405094643667072479858809405933994141077235720534394830307705990905595125554646442106326628018753549822658562762399659034478657468011350174168310407807045321634159246310056377873020465491012263334120381303234995191226551697071670136865526665172393357211514180753433130941369477413209507409584731856472855224761537865466912106481132804939630839994697922696790378544310435296960603586079148113677612908287566422643137160881288792216557347710248347613293500559302613733211945489841541155738756855806932971554760751762820958092232182780332355909785182740666071128357548337213195419699436948961581684781488888226795810144732729169847870085504901316245035150169285699454983404110208511840019985954715690328572688778423559485701504963163768790142191740413635558253714455660685052604592296834586676060440108526006898389311737841497381680525925131227309292470812277015893789194285090269538179678790908048107001165652986765919795753679354064641431196589697447753311605974252271084221493783337748704623509972723194288553263951520751683663620480001293938024266034489556084664663644588810247985958928475180585864289207330117917533581824360756091305466405981570450980371734628272222739114576279122967531592884941127667282602689174006683146026618407531372390346205739232155849560433950994849745792589853796378533236642381104899639093138723632435870349170589944216253333335319242729335818155587454171874385669334469111451309787869828165207233448024377897520185719049787655900838270586297550307012174081755739369768983008146788633146692540337920079396915421474969221775962701618956979306022008081302751756005633983332338634486894063455985994918672050401602764884858857644796436226709455341837931982907748279350694397651274373311825064918096351131282670241742541087213406356991935604784181353370684347027734304390252308530571140279903867971237166144662393753374336910302445922581526050802433818527797478288781967254400150138149278953225931623592112047626580054319579129482649927200513239301709855745304648281319455957434831839256510325255647709428587230159048390429914733594599196446708274950575889070410663553182333375749099067250500874881835436039477726372880797383109303014975908700577931174620169884579177144553414465398972193333498045305249314729467919986593176251356041171634114071952261953133563668917051851031080813904786123511230799621106540290793229703823165243576972303667636225006470764179118729852864568729470951128778028499454235684514288869677373423906929558423418783053458586500665490573857451491585858645787937109210570610906618958162710671329367470879256689776768486833997070018802080111296145793235260425947275588457553851275571031414856175068843993620905151327113928239200010191320161915191179503112776050015193824690324044449132152427368578277452689562780117872400805087098337104992544873600084636344177164606125711610438434643918170414500858478653159468773263929880585074898079126818129458685105311724685413657664618987363372085820715731052738178375480949280954731928796604509073777564314832228619285863854651278070073380288120773198460020028547748751949385888496149069785593086134637478432357193790881543973841358211792343824460696519154425506252617206472902421213287698373936055226791214051582178888214714726638995161619424013113984705740166738603485584965662165039882232096813738230605506932830624580044900820864978153972563316879238667660624272082715652101173911692915983397969036389869581087295335782926802712218310924461318032460337643032065797275084730357339503761116108284379910786139837467341227270753240158103911763035408774586956658063555512136142867251777440163499913659002976228444735015845782811500884854149640372157770462902596805577473127164751251726899614805092451514905226506130337834125593729317231294279459335069738662684589079695918797184489727327240319513092547441362457527584013781938143726572616195046600498820997076135321123305599510951649794806296230400620191458884555319450011575886804226022730580356218676057900886598089439431968869276460328172525729211671588752858831014562914551743251417116230733829354044221736018185549350746600102027457215731081570199075294095361249943044418314239248658898778886922296773788447030446299793863110915811532864608467829252317958022237216858055456283406175205488065889891157693744630472021587272406443174339748752181229226208347279998826821040154237811455175199073036624983619430417202539051448235963873614020336698393217806777926026975497495646800810030105119645123028765104055924420255452120923644259701205543809203026575036574608878728002619678101473905920041210960184488610895333808856251050015665510756217690022579239553050554628449618017438627019949031968141226235244569687249509833072102950526504098102721669005101081791880175241303819322390073824393675262032764209062548955624326069718168463508883107855629011079386232337839809089997129087750623682377178742730369010709964451568938755590176492962038805679341488940560447108120926201206647870256340402171881317554028895219870584117573917899560868087496778391068849539597120194790679804306678512034119983136360039027725386887380510827817260392439266017796790165579626531788834569742959431236079516968078627156265697949861899537017357458352087257416915254918877514937562106239364597634410941573186106406501947792440433534466771499374161857447879424108531595651725050223827639473406355435007414792722528600069872393988674730566521216664426691096241281619069153373248535493912332571910577531727505238443714101011931233933510147338854399471584589269606967173238937566879536663500423353328690460636473389261448980555827583541809676469074968550671287248268406861664952778432416791926618734633348476788461295734657849387419327444489547943615089220441663599936190361466275400519899375227850940567479872557000876563037483197403036559313567407856772149870467139301380899717891816269482757474054003048370156038152496411480740913240378570585336346862528298726662730103029059939844235059203839425235141257937594356823466923350426629807404161493155614580278123836595089800685093234294180617645870228276243764660341467478179582349949277530220494976574359773364471079961182219996279858877556414406697466001324491967404252292836851887292222263864260054783582804447415350839300087252826540968954169031714521843157721563705459479307849455763500989862744891364849258735026447380776274777887245058140493279418875304534939277688727440236252827320920120031310590276615747177308248512125707884534868462096695354045970544497390163685057810002449800196299494097211103608175976821316123528346700714454599334952510923712818077561543173822723410433554972916745005248083569515105320446731962525870417125755196682229629006758276047693174383099865166971127828565289707824335815651577430739643913966434787897834682449751925920857899939424720847985429315850825235090562019069621306112904240957151102758397596382632004034765867431459222043040844079814109081837347229067239709911308470025465228763592443294476690274461545342708095233100059827154558282697963800252971339683025375622435106684997720067356615360000183497582881266875308824808732573887976976896852773277665139287772887577851686822723467224432154877893302918778029162540280308105239832887817615988782258783340019877214106978399779164842239617867321072598135643486276345303737611932232105139265252723976693178040144176971893256588709782309332170342700101058115556455291875979882344094068642694829291248087929261230433747005366038601838176673124454601661916126387161624259596378163507885473445340122857628993028291133527853333336121683454701768558433445918274753553245820304734602657713420026791362012105306126421263581464456511998323090293855613138037830066443615985488752639273617528627055033165322634445806150286841198716500886085663652219937606703233112129305485807671647981425807332255695349558196777542966988027773064109379169987246275197732328616123443947401553821918267953618295883940570153205674794822051759808424843856459561240244492146870634810887682861168741831766929077461775342708613313075872814618535961930801190535181043008635916680638440002654584984973516354778602161295828428312295472912141417636861194307682110214206951546066386447889814740584010504628868727258593924651622626081299810271858949142357055039409888700279414708049362575729099062272480861278897790142403706604617380829211231007782797684625436626806999963885839129911127196413757501159460003033051344419658644952262140155157584487790988107591219855330120142181034550149943795959398170923227916342845207449428927148767041491163003505720736484639987555752846993105636398914856114639891629912560429067489341056066765719585095856616619260667512523164713210241312547084742685508065619726370121984676168682934612386043238108311900707371175013135291107789134002454271733020074238511029197393965763827576418203591101607392639910134601795421865649821932085415138973974656049231421148189962920236080646757504314083891820651324404413899852285821165722861521503587299029505218934906701307438667885212632015448261280654044240946897755603699907664166668834350975102014618698192650012514880924519916212045204372940890743533510304362033102610815155144202017865551415682842737474775239261038386664012122035734905593160137064800031070896068033582398593289667299469354665817127695254686855904322165993349764858969011518078720363103337237924294366370709915383390344821389073507966734424690698397096705721798298267914701335489331726680807781916663328614983842297996503404481333802273464775960363833760130182459955647686837254618419705612563851297044326258271357528048855121943307408576820398466297961733071125739900273797925996802510089328955132124531461247017605856073886076013329723063774967708718168973239912861008435990985670330649247200632963305340209037207815618095532049388948105113457610481482055511466342690513578802734107128038116789731292661724636095460503037686620783158970933167435174856005015402287545041313905920132427736044796236547662393900071063350342162214134033226004160010564013118642419877640029554858312299783688321395184996589722614746212272638425833008734209343045983422434586816850573029005829244207972789898960086655560664201929808887037679848131539265293616784999783409150397275314321536075774567059168348783832615492078794885999704760515718811705920373952366900037479935260217917501730103480406352715136528749503992608826411291612566323742340867897072766023589984888467845267359809097516985949682853299858526820422204263329671027927090987497955330463231424368077361735842960611482723935411724911889087547779709238451162054449801318089620536150201093995475059132495363754607251870770652146719568345116025524601989141587930579760237315751971598725927576837029830065730999169685844565157341397984699605532919523178428675437452901546913549786358509612038123110053028780706364247530245632250507555750858845562763163426956608675645844911710551307854710534695362477991150281406120030997416896715189070408909732243311744036853511228218757218029900419208623292450540355242063296712604905130655178694589541143425443030298397199036890039291958158272439029483000816964796267727652352021036474707747182554794612109402977567333019793132122768888814848410556354666638611458142885206006983200786833592868759016912872199251148054667630314129061579086525080283407721152649097741487296319521001051526263041326438686703188848009259884581414259456916443606675044927083999379402613883153815740070484390564435279608903666944713667337777157676442481634356113577539191489986010883477736645001750707114250622117673669861467590433142098741447930215629027113617519126647855209297579097203685806806273807211596504572805523951088471948811849807075634455480169766087734060594884026818234947245583286684031795601121032814310136100706276185213677120776350761627449470902774684534060730764708845488040569278092865470574534017934716692266023094016859865339563369472438036097891503997653518608023230411906761839592874073016716241137254649058824461379764312980137710165033424689144646775437007600340559602573452561082709726830459104482747369450569411122841763366947320688182211651902630235359260919142781410199656211843833038627633352865969627812133526400147716791122974861915617280550762023155871486091836468532593679267152632014510822780150104336355873340992303727780304629386697168392803139974598948351750446533732512550996386262203930739734677661230903458919885167064158778459678435120718088068860515415640178884067897482771024565265742941299217257836006508467695842159066713662813192808185110276331679959552344644568875141627052900044514425944532396668690930228968557198773492705392573794664975474785875840936785417870608032737610385912915821183711897922939784348501819051026023792219434723227830648564498621158396790494304546790156035852804545983018269901853684011350609923658511407045490863402723433581250998418370157897627778578692313259351029473409507548047391459819744097267661887571464510612564261004520333043733673996406200126695996117324750020300973013510449361395274238943540958741940771840383622948157341633205643467900320038168812705027003286084212844611472225483628095051577826060723092074888771488375373770753357963490333994211620337202045863925097759067599705366333044118964112069587903043881293125623151869042275403114849390558382897956492717279099958415558863743718940285704337353945863603544419709023739970436170152593329054880908473694831238401257414158381502541950717730842817772297767314539862341095677096217639312664556056173014427410270904382886257117251050297975862492734652844080376974549074882604878815097081245363012411787281986094566260071571225957250621420835000741666241767311640334679327149962896683850207043520796966028893089236839518273944015967202237596998948368962237189521902390825149124013634467923098766143607661046816712894868976880304085215770626893973399632393954711236589510926209196209676522353745871253520621792924584174121466628281670847459112588563864039032008291115459469722077090682130424053685263858592325930422630297050675343252672010554533097097775626519235992413467872044901474178037902281341466077270742615586367343695948140980281230485405675757541231734823468162059133825737475387709287379273149837899765035533875080510832684250989131570700613607768480414862087886791068824201594392077400477380428320762457028688804224975623653688017612676899572836935183652127230263821446519983187859244813567693440614042647668505091406133392677780055922491713091055280327044052933488913092903941082092959988980163801149710507091811165426402860425829505431935391231518996778678604112730196595735362200038831498771173422534554425756412546486678218187844609869260232510597846583576114487364372416360428778807370707612864052261348493566070918659395254099121279057768337932481931453280142324941082216339921731805171902957754893731006541099388838449831954280541590352427205285147193633115130190443082799169126749320634410001196507523552351980674285779651282550997499397350992271131164205367900328291746217103873327830364802837895842475518626474717282906560588516081226085166438179182276604132303598684325040383583641445349962401029150044689361863512133111619659097809365743058839279464519232301384234946829649585545677586512806917170284717138562047037823497346790884626187060955005470051125882938677208310700151893663306099475493195029136249362741239897920147938276495043083566629438573932620256232956324632947075888637549964720339431253933842892630321201736574549944038327620356800006933576653841331768445187168601493631529861227665264940299244308903237108754391236020374637706098258075963660756419899726411738784462791510632949703387081330820728461028196332307825439898547628887213315945471367162707724807897287229401831463080586618647905876528495453541342324343867259010288724108182612492627282683900497728140810496404491246390265043337714517473690007903815642375604566902668910788179107019601043267451564025114064698289039507435984370200765626178128092048012465447773307289200699311419075756735337824924700037832602492494921447538478835417708478093223563307036291643027362108969575885069286033561502538451005432976064629859519737336482859882103378633649360627519056294833361686639407036748305052266158141401252143524788301635106332175165198383480296249463807167407255861793182771467190287408082140601708634459156153828049223257673932221324564905789449416934744096596324455019638973368812318743823863452983748346328501765205160533044999760142157612819186146837015220207156107801532895307067215949011363922597211250931298371060636551646324363090561473643222167917140236167932025274967063321532712913974101207308885901660302967880785935844366408026424217715234971347940827018493274586567527363450666100739945195996993909213518627029602100364321796876191105237922327820237162255575269255314004325714596040823672396486451346201771788506485451822128540874144694301608548913073403596721396851195379747790522171333036070054387563603475359055960827063121294072561395863500311802003403953581886962501398826464788152566313956268235859732331039703314372790668841077928996501568764820069232224312432622881009652142415538056758092343581811419388297048581686260262602159162475759413545096875819903877501860868107792621124946234150497976359933966147639347475130211217896932735237296840821310215575010528204014469316568310647297405674196842590301297616439703141673213137739330121578529575691778785764338897809685075315262818644062389446119748762998138604884737728865996561716666473888433364293482850339157466357429078893656755273507918040162895046451818473896073319719511416143915890346636270223417770778055912776798546987545490362796322664640329563795958009321117814640265291614590319696701656782983410305971840579518154290661749687244098248969760401312455505661542506192127878677531313514403036058939297848959922519630683499867183275355918346828504692812566382063530586045152558745578452677603449432259079723570536251199737205724503428270213384271871072615903256204331393600530043930607797165295280455308070016655389740496012639682387704042248577791160763529007129277256398587786434619428174020389686013054625604853863223424453245939617644749823540740677836951229134717884581460016271761524017382918113324202586310709533859233883725312788866015167073635607313857383646426720004568147007971403435731185489450200089881472283627195677131688111769298412336726736703767390743781350644851139981559872079963532520939802891646884916853543700387652326489965005616433755362306934659622861861474951748473093066928173494093399494191479203913673828819957881277676263822979436344467685702271432418394840678362293066622526074061510921631807144119143944216534322074903649504008789421712576407503969008797633644842265616420010694744997159518853644863686279116631824226140359752643109141914923045580045332408415922417085699137419973865591246005026084523960589843509816432305715722323614875977818305415220142553908451922378807496436323924579680191963511762368184005016599564070766390886775169881138662547128507186347832861361763918623712421519385517501573927282582468050144944621418834285336226739820006776044744957464874627481484691560831322216849504880277515250196130749285766327287933547711639196296930237895012225070714160926579051349054436942354253826744909771824256318328875367787075941508361030487352325133362811682198790363811288487368056895608602239786107725320208280014644801128472765560011596331021866601652687602839994669791216773858812604869577320149287914342197672129202279508514221283066801493945729419120595147416895596638135502744120346564275953292433257674762848381206735640956446729773118146232779284760082604536973293674850269405071126968526050710372308165667822113537498183387024924417264583170781643856445430334006454304229697043892663655865175579870585779719250313814528959239666620995152717901560695489907842568372946277708333078721721974992606383189664547701762047487099957093482113616283745002100881398919931715979284437696969119492661254016276238878416011063357082796300795980931431970950910012041350620730740253793742518921697596597583573973504128057457717346310123113899860288161311015590126179250475889586988074116538459661639142739548538666607077745390467498865431509503051007447545921885479045265194736283055873102786095494011438328847580194697297479429332993250741077335260352048885935143914711695977774954409247984310708414332976377815949024495674898765188381737023355135642814335791250833115158022047467046641736633884844823390682911363201197718087991626363375406706615456711801147404696218122527284850684163062296540102187105088562660582706126200521230642200172736873743290374888665974649664623969464854398868571490034007569490773270205174530961043811575458130222961888965816696571395724337426710265282183150370907939236156883331624368001551497246126138011050931763227478491688463010258797009044046938799199304576646661719935439248256072580721185067664521892829184787026798211001649768984282463597558321590725831017052230307624432406538587062088840743608408288840328646294772515447899544514254356065189461143549601627903074498031568566489745615448147653849744593396213160088726851495619544399283815873008917618182070797088645481609713155237411682741462975723591541815850415848292659612501209102625964069290952311483458860140848728846624291667531499066893573269008595886476894579161675137720151466553505160535230238126991611947375143757526751286998186113022252629213230895343195955761429141896203208888348110755122500599784037640468444555489129281668889895069792130031840968579731553567176858921961204935533818677937971610339691860677644877894933238116811385734205489327675435931442111809345451480124180017353293001693536718944441263281793907948748353575642486427059328792655373440155664412989127431128078496645829071844847727607988056067878587095810995506524989569200289976523013755699553536493697317814799298972877321763138111814857368705498452844803646443913578564517464394118956889732129270232584894991872784039795561948398103100905694603793410128669813273981736388892007620278145536030225934603819371731277814536866573302373199719430591495112296360033619890740376104644922433232575470224780018657317335308953893077059421729478981267796405224591284833429601114313964923604192473554476118075485591833819072830972723466725067205833781343399047368184764557205274849645052227964009912144243833452646408614528869257268527203535746661013065906174469786422027874864953589440626823110022886245882724383074794784905289433957657876089649278332143743287372282819971924826132732793931859844536445732380369301724470557855437148098017023973186755704155474565631007685435884171639956206021143842971321089968635199000016124598913404913507433394922351361041653679099918470565923144275865551805075347358890122403956329686043014312554332039863869644962504729642753801285485218855676263696459841374872623558215751894555840157260089433648257694151142761639617855563094486283254330806052496374912698018344363887818788075535831233952653792049062839558380563580021346107599009807642322096562146453948595508334516992833577156304423048836368446656117585324440653119824331254381123860660756621369069994987411384455789787308822202194856281944450055274246379656887167695750588399796018392268409320594345487792130930898469799401050835538334073020786813759660454064780258439023346766975325781748580081997460831226494440925928646500624988022558663792469427270493982462859564242548857336479058278611824875064410145062633644782984939736163354374311265086771317663449256670257325475750680135581165740898434907414411213570152931337414187332728018879392011011148463804612182487902097079254401988300751324840536132171840384802279318617306262916863389604564729769454547631270248003097712049411463119733729961256773059093258491497461229118323821057960818688313626491733417743277259614662011635852309755638645236662202301870119152314491455939759236307275936940724013418283793968749816246980218759756657094941754168535743027930380507000697841607183024350052668752234271920379564323767235760812228616317869260376991096193285496751929398540612506905803420925110723957918113611033254214791647655018986584790771902683835252232439586257157245304763953809999401749969243414210279470070397758307540848565364189386000220098078117924324601064892451630845375368700907498919770348912475750114422970210580974979388800525089365132839822758186779799710962907728183265232857677922170114489400151307876011460741477300881138321193022330417626320673943792137124013014244139889237541400875186386144928914888308767623613900844805383797681942570553135844992424697571596547792491207151629662448253149515317171970052723040764811974433792241058649851606344786565848992986296109460453323896952644471840770231266391427350046391641239311919140216369509350502054269696915144673492199418595025109801127929944104125750059282571011027931265164014875133268059344619858397998000880857447202888094271700648060063397508419077757956235031442982073331681060312686433192134105286159724478900246479306062190410508761604854259860584493561188752677618121699842113938340188190086632048469738749186481888434070613075753157866351152495307817777647482207287660984000290285115813428104058200832130904217660572300598919418238342321744020852310728024024191529678181480152899322490300093476653653427601721215019954131015756625424185454373636126999723459051341936789739416054701925704171269980579072239086544231378657724942644847872187586161150844398801090853718495590237522928999825231093793116645533963623876074051753955985477922407100839260278433311615594433028894152348076888091657931829466147268173990517231555882319636491996343738365271171362771139579031165931708747807587125047159120297078495313581717612409053045371018026437191289333219865129748695356627053595741707298302100882683059255794852751413216371159400156574978683823373735918053981049506268705280237302779995411203385748441192276093278446896464542343747396478589200075128359939229021907952185754897285585503784910615764059386117644928490855329235081309307784484424243545945114207823667683542977868393863646172244126165660029214943369510013322515354359739290535350245815296391714341104473206506443242236508678157981419450718721569991694131831279327862080269037340017211149361367686055875293935138573483882307037132298066257362785690930772157193634890396925882930727291966435820358199098366097660122431636407895076860632499729811805952392059314531202703704642175355854720770168347942541200412699407360832477839624871078393283031363026387490155358022217828875838067867828287395360387816383137105974386084226739359988101457033168313318789282842926444130158183196610407023406372919387264459951061088825941842100794647250235423064405030176498007503157216366422623776539145155038654474106120422276372137084736748083817066417511449221932805294476171176228132155052816770187978949318712999039870249742915762193675249400213167980187112802743751328391814893655708140973038486523512139171957638808415750653615139133673210556170460366827564564633964336825094492816121813489252112833895053365695901105328410531570476255854631625297983542957123783900654128212127765509931438962571497739319380517440567681702578762008159014636114136287733923793246947755897985853533741742548627589998319642061356766198439391985784411563872044007330959481920658010881906254988913270769444877957026510301206394785172003392586641436508946447595122257137517457839030927533762453779281856342727341267983532425794662925559809772784909939604579541229470214120202656036525943215139864414629644295599039026214015487344116626592948842678118620754752110045956951389405529582647012778714134588650481652715432726843013068390127542177285148401530958713802526799069479706496179424169910445367024332787664777653972143226104426335564114392722561662812071227048112758700043840939709433715102838639720431997555680672852687877940239803078658935669182215638694086237598601522505159002392087616808918407715530902106216861919159552654706485173115433250622706995230715980604954237928129861637858554367379324555447783031257725213661901392709500828243197229573054630427334966712783201571993571798758531040470016308189071625144423719565434178011761144339270319835019614495724649335613722429966038341880450955456931641475468826379841803304315792603740078520021109629412645519908310256928920513254599358644008226679046378696922089759231220509697849239428629067019854288256454555877013449921723967824508698183409006387322271143937750152789991888953269384225410167539535938784530581663258907715174399722065231272863254418756121874126302039065479480863451036849473658922485990911813396815128851576316559135272438795770163111772875381732339542385795973533270750103328032380522581587727964622188909876475171897633803801256965947206514162420747451688449538190526379870577218509113481986364566519312478640204716388680525002801904919651429373471677530254680748161152115953955741497744485392531038365396439637418318468866805443298998876028760663017405730658773158758573863384297254186056693210089553985462001183430782457708988651384309016891721878107407097071859817266453176033751846651688662792483710861619451318941377800994467822393206923810481945308359404080278189991484736886883356836143891244625319573191524107899378300204264895312749169230357166047978817772610761147928776514017271895787688572798709924125465535613417486776255245265084527233332626658980491198046856341385897223701415248795193522332414115387080604957228719376774516329158461641084880244713767432782301308436904284742696528334983297986809881923106559212363486593727145448997306132990832137930229335075863086364571303007108697426273811526082044194879417543084926054126332293054668174821503700595108099900073028077122993173414089497982997239708592043152456184064993760314913491958971751014265762959419857903002297953362007310735902132809063408949324003589542583864360002735956526801946857533138502289605206872609553677419510531779927102611883360134517508902698510283769462801377732289308199206987141111373542968583064832495329113633274763422391898875631174753202057589407789922784157078295208734463281519070393824762387955475437208467136124543732845413085205148861152276686465211810277935932783579083781050281392528919335671095059731468171268182476650455925481353149435624015542821870373747053240643014411228432183859694165182763151362049940363909639871431007996254971047289806517814241625977174732624286227743856936807312506796772656721762151933450183672269754223599072886129883717444616813871825935346529722154237642388158298956753209190089943616887386735080958300916847245380557803502618464225354056689849102763871388852917845285053027054772504968309744662056378541881880754959483916065564585444688897365824083786219521663794585253792118822922469418374669922057304708654410125174992134490129846370334900387303762399862155121938449848653032420827703516793735634772017449929637364142044819566349301858000747198933974471572295884086848593332893091704625999099019128723899236276873092104466636742625028935957439402915791786705150314041432448561402314831331973714066587066509500786746384348083053152866353484389427257900253601248768095103444191099341695056351666546294879691498315942340181908141637311172567351027511792237364054199145636932065615791727064150371837103116884220979073092250379064074777185966260836179079632606202282322147850058462749873657663389696015060647940338052695087604547726215708811364590527485260555230687501931223791215814503590658901484233449222964126866670142601405741217961349986711757326500141414708028744362658329222577926033643629555778200156288347890095072579549443553284005599504759110354726026667746336255018460791181865310769237552166080839260998580927907856934566491651053085193951888032916620248674571267725201549059016424834405616891903176096945236485916034135196703568616529345052639772536185254403435459561461355915617165460425584857333241020779598123665378091191245100710396480027515654690687722601485988375521369889022422788659578572534400451187447628255912461260287078070414935605536081923125733732504316316641472230121796647543874468457885022680005918287846080796918617468226349170212516489564964083816071548048872192513649029414757801681688350465300516488604820698193681810366249712590230774183916265471041153899573476341972515452951225762490373515324779870928315719831193901462212214266279358144776401103746652170051605765423235591523416212710379068160578873256611354155532073653860492931696124092886180157236430510017965677467961615323774079086129863732339829233374098137753445159698305746171018965994036907478060922111175297473585933460228975045256420770909590801532993491388191482944174845225825198882676188996998246080922919615513101148026112414205735759502597468548291542683075864795910212510947553546225729670310064646584653751824061124112268415275242656101731680992959467077729932390271172383429500594166719996787647051833346348848814928140494750843200684291697073380138043592907923479885077903644245579237290188603126439885005744995077065972199260186983994014303196943075457297881441447007094668915981014485346154089122000341446028523759593583165743839879685141715220285528604374223723956881795443845718705432278329118110812732590160356041060074690043463417698735245112505914701905251199528043224108901299483372961162599764334193512637053129232257321591299247491344955560840524061122697861982438824490978530369450263524883643550417897270888857882534802651302159462704406257476892473883955917814435813429612842505405716567314049861659796049451573695545097913104397287901381059914527339022683178816411196033416457244815936287508236270147659226148235779770168481633507723668919879443431770365825487794975228543336449299476644991113323805775351699864525915034103123060899022890796716277735126908453872254182776599556971046915205148334135628298070690590012436203617026757600333805152601931948255950647229383381512826800175908009607900984487517448212996662584285234416411382104430985318711284005096698522093497064783235527688678302057880989077969432640441008243885083844318921841771692322798941194507832749971482876198080041461683826197835371919879819741428704765702725667080941240291236453704131462761355511176053125487531072234508606913267270671617026054828550700259081891439891363742172235010694926439921693911581994603771278250985110013181791786410348206196167502644232957319803271544207551059737587742823477463640879903856308855387166163881905169130183704972914944385877432466119371947687486164186731009385881305672344613553434076558618340505869864555722998498662684513292240380944545169055049572758109700048710658460983615229018682554587455021643851041519525351203687727983738784567590972368913198348090419948872074987506544639839765093480293814161936161325505398558664213015969942112824021117709555508894263044348904611782068113626221916850572369419346573990556901263088819588362761982391027039512351885480632836085431863452691065363961427680258818496759318833379691565612135978953639013082816575756825091933295306246814136641474498378595069631728358900196081359210389510576385587858474421337702875905067502094557583820741887346117499936638856539893176983950643782010509386737190172784752129172622809631165563661002173793765357673053124592773969835764712836544665350656977363155891773792707938873933990762152431273178205330553029091284665024149701888084036997313522887451786285535417993375469134732447645469438412527616859940460235016299257877491616372521762749946690214545256490419631079281864889876414655807201193548014410605434120068034882624095827398673956366717766662774841837247878779159320280030198416802293384347771348950316131337327773437571807206397259081770762572516033079175542391864070569941955194664773893324112280144412375331119724306185060903912804873532286171976141562746451758157368507926267313460239862028875355357529943138205911947609161836288047822168556682957758069433323396006603792101783694466870015564936818466242979482252602977625256425792436903308163795306748711290300379051886119385156217149855369039892272949604640739926202366109530755746145527151092568712367312220451434216011662804347997595878253823951265834388816474213600443461750310568974322940715096529528500288871929142620478772416416335729316509633423618873337459114024585028872925048008376049504888799598292903105737681297155557184378816137976889945605261422421409066930079471492045813771901783624430139099695063149346797780922606835538316422839361024343303077953859657322592969128122654230955303111953484196672767221763643125721892730068954316496720595131263711881052386535451314387082852930950715737249115455880407898871074798109311444883652423756503904233156020283102965489728214779502348044343084940145900743364340550585864002045375505633294156702058568280257917638310293905557876229558632355336049965177806200904653098161446801986425646134406378002384307496203587426447196165309833314852337358187868999447060194122439591146218623144498319159486459052477373171449678687030510792943506704406369433062993744963059932936021640031119101507597759504096409442999999825283599792684018247672719960664425971876501392949711004921560585551498627335317739003944842019464069365385097406150003061316236298831345616655883595484605704995688589397409713495830921373175322041552526597068169622743794313822035827415379055166447727455229967369147612695410617946691669610452150280328930492372919592431163671512901575735997074082078349702647568905999695782802669938410047925477691325253541900061737538667134247547231189040057099547302557822091449582296428075151415109758608769499104017980173038437911782613197633347134551193333124618711515019355249490514524258816838976548062166045790448393937588036184005322065155690939921257125043398273046941225103512328391164751721552324735842780038817442720458423621462428795059278246499206588937413139175411878163344205066454487891246366880945135832802931799505252328922872007888501146774391553884587487676026315678706098892211670765035988811624940949529624189148909319777150961753572714504213491478943773177411754186284259593429453368071819128453279363099236683638625692179280673494347811838014081961036420611007233755369574531701240576093477589633243310556833959525142001609440796070219694581341617630482867552638118183248020287863049186787269263216046851578442793222483433245135400570717883388963515825715674707622740266422555269296035847748762090343879861220594391792819814407488376551740805977139167026263762984251991153517619040024128920281269853019393599659348320944722783250281249553976256411254177733363442173044976566548568365375535345777682406464556527903223878832784623270248176698511473465643432610825743365067105784620562897895291003895125953658027088535549288449453889720339327740721270432406210345287332576504577228462773192916197596927453048994172967056255424304750892758967786176284177630344512468493312158287384581762289716765945517248770686091106836274678667353296739875437903140058187451902035416461624358150065608498852557557813866078420774980802753749186007496119903787256536948810284620904299036002924205900605145912465640246793251791330966178016734568558407906151556204312292210896639936129469246234209009816647852748604249576001931002585527016418877406516739366466366183862734020079521579756618733499880024866215377117024304232756118423750332800606498657152629806328512545017853664887478191918190473690931114157503257783694681296281541833063698926193407546525214680860034472743828240440013679112864021614382466202428062868408747969995926409930677113082773684536038044088844340508982298785457999157311777466090617014037815515157578722787030219969506993906901204420578399262607052989481958705162560394674848039562560953274885527687060650781688365812792362732310358431452525199517328807440917604323422662405893917435224105024780477238495835943975843797101126609950735220821910989451742938999608790499364453892333732419151878623766364249478320611868135854169005746857248960735796414842418769098987340653489235932388065271235345423669469172785337762024336300736192611717456405256462243945967805807075174560267299854575959365063869134507411991727951010873808465338175338402739965656985498713219316925016931535187700933998647027405518788521751045254119564997372422878806639727013082516507542833008613416420166094491391357441625414718957052632088153853722041157797793385135974619464890940066527179555368844449357404206218584986777812711549206041385319740808917825719207269475974506141415972943829026907375566236625626090135358124843162399300273592890146217231672202715325016679528426336967903091162474917493404117735629709108821694023524450876381623374399206199304131254900550409321780762567722326446661898353191306210683730692982528613317282142789999742242743519856069027728001582793735969809500581916612555489238869462353032185512940204936013476568230994053590506176852417005513445636353554674615662141466122121012976391912934023275876025230872859725568339213580193287950616699323317881284145514914510432319832460135324264998775291885163690140295757681629564117220144998331459918942678837340253117489644648805335932677838987544216296362404398437238962516454689914494821038125656789090565490323705929813326838224740614873460578724941828217639795733996149186077824817240233875461273494502290182418337289768179451192746035809012438095248474321103103180811521668410999414794228985923733323955887268574977347838174895477799200861784044508884764194283851687192763805289836016187930491268027265493506611775156347403402079384785560930810613926298266863689596053926944272955068341431368690109224318984842064553098321091797835706846157768167470248659659113385095436732049939877077786011351244125961293696073525008407161977768515191697188146805165110477227246924792017335803710175058887007885484646192823769823931907903296797180559696384268642750364524963208195745177439003726325890057891695131837817753224755394049773067858931736438231971537899833147577447674201452714882702147670927607040236548152416840106755479273324957369712290683310034428573155353847796882237120930265554487236050213960435723943645628656316496833113304421864632767562176213756737993573070072780164125016019309426460345519124026201792076129548585816585098042906016584313044054679832879832454209285096306097952955102373186688050992755211320877634145445089936619726831557886209634461534568924480317461360383930911019672041177254248754876037599448402812704903233103626377162331399148692968544383532011585276302260616766075677678428321069940211960618416862472131114007858976842147341368301845306574370938302204705774917753129632479424283865604547781509619550823190013883327110882506313205956303778164234769637277068350421062756625557543452482899810849601549233212084561641826444764103848996821149596814338013974619860761553375069091528204678769390260108995034631194359183391443450182504541093125371520198911205912806120651053698903460773709116987813729562305116288352004745232744180096079597589950609872191979625912346883832106095165176764980671575232556430973720294831058732725575020580855613562603476893967545370646306843110805508994728793086100952682506217865559783658948083105176976501879939569819206602940671828121917860610099011626160748443363650479917174335297424872815750230467128241986650177897404076942090029436688775463715803160791702573350989628464877968400883217706988093602741572044101527785743688065561105230025877307895275582579039257129333989624014012979767671492424623329095622163919149352959650812801058691693837867325445275335240488025836839680863102834774857174307961827574329802242796175222739691970549618685483203374206016863620377679235277861667469481575766705054300347035894457766065796374099419951703270721801554910482073691937869776694190746859868564005944704788895633830477961759367021504448495282771047187385501913090974274770234908329335211681470303312651892266106519560056078239976598044592591688718795113255871369441090896307382631010828777198819417463524240365080614009626613709910810799642182103975878270830652938173030264911507003004036760633831464248394201514351489360194917650769756901133268500144423010732155873746044804846121604790652624650933268507929012109914027000680047870748629298211504034262864761852908576779424147648482023229507443264185376696269983329404695387352800587013093560144708997627674587095054098086562369150351125739738487276455945819465902794232452471550817775271345765379595434686740979599021672176474392618014051113701439601888118746788940656644468144511071355710339187750153412464136506263310157332317868598999868800517189392031450474064895556378434879786159350192914861814205964211535416207895137281633390083685283119284348961012748459329888983518579964014343001034720628831876019400977778226220357689208501392510112224937094789387334582421023679842014140342356906089548739707086237085710066319281775720216286447810487776859851432941910892120585563350188042098729440727233930525644256725234650309690477562987969014325991429225274014881340023801026231288246302327855200993832125531655787273631918915800024766354940637340476949133438462338990182476405378354890231896911587938255097927584594430716930153380524301073081085675480921982081220209598937704589453464178298609507077118490564680073316184821103787033983272592017790286680209709152512687645373393998315618017803629187018097972403595558216613344796077181985937389164833252048342866058319211056318653667856771598872748247273637746157917952033076651321211292820722931893519414212556350068015445495454609306922536636363293756025484500153284125119862491515660245489728176653166667687630236630273264055189959506265128718240215327030321853611061134264672747153911045835755471057474656576571468742060567180632181010640515253279066670606418785396730211404889826420197410068169783728883910166436235460628796183830801520055632164363338938446455409654607566942774119813404437755709302476631422954363445739979212073221332912188274995327947534948591130820816628034921334154187076494432118603234736879228809743259122085946054525921057781367503541339843376547342883985536433413671746330089209311325885400050797274735604340166320915548239120750450429671462971894110746512723317635277695718542458218277610414313578401575770446212750975906411717176042344017567207301443520369803749681929674899415228204132242039278407759044282806091484634292649091694899635703547873701543879668800627663418124529491752954631127799141795418364892236174915416266504575669735098077110513006273111305856925210667995806213527356664591131823455331613826150481106843860910658201379381644626117812466721497352313982666783083709662660106974828431915243107648364269034020288088888571152999630969125962970454820157409331237822022927343357907788646370197931261719970798909631728342804300753904794995900728992311834397448916193482704862557111206829344748892199905471778158513165571530012637205328306781439468220747018749045352033691003814363005290336157431659983985842603108205406895283208127923061931249054757276711303091479330629831956103881373576633162369004822280314213445951851416071357224545529383886160448872499549983945390953325050817901187098517918330268779290642734489524424434563706680567280163860385366684553296168751625996617561347247377462732580183410742387642624748165569813848860282971317408300997712882207048807340467354770756043414528352230575866565304508904818002171342251836012614915417518859273959452113206150517570286890459302258551765364447195992916551771512553293351539382916232892567744154860429365205144613630081391098429476472041010845722447482136984070200089626897395545498287389570055301908624585672883182094622777452137027980767324688793111819913176751771889236819255558032779449337018229485888925799497725403000382847612033320938223547904468152841668792324940101836903033974595827552188334262175752752677834993070582192871001810124429074555982225498149185489407039378841246133512581878777456798411094657944521068037608148520007366284956298289466441873988344536151939958994367331752117025188394537880026395450419705385024188336227186417836595179156325981094771858005275368066276489203641408494851593374156554963968231251032242147179195828916637248444735209306334647878807593710247337790256585102954286946503629800362978033097425691471710382934358063293001735094084797732924734397476529342830393149000015058080803913503221472542876056119120661074226181435768344447521772513049741126085145232555991700727852421482869759677962456416361490778746930073178076496770018778958849910334302774186020119410805812760669275218702633336004269766678980630170580208934193675962043224575997082105783531210431782721429841769443325545826163132271691968264045256178936906998309260600383820966642464357560101973123014660944664614515472073242217627681968715219589594236203483498947304592633404264588867592784731258757733874860657047251787328462681376270070118647258530724782758854871787637120742954955759842677782628373627399305658257244000625456821627112906003519862152837779025093490247906375608386485963842604147183044039753087338152148527268796168393869555296196030706844955467434050757570240072916030327420594501979721176086461300672484834230211869196682417032606761119497864915033194130520100114016576773105179387720320750990491727639993379819125874634412368916422925699776302691660376649521056435764016033922917481200159798190654041883239881982977596725673731647947417851037154148224150793815749020724765801335515966357680324996976091108197118329559916330636766074538149188481303374091337070244539728222210003992330458832984579426449208585772723318588052312679543137590120280106901338703529763667578395445584266626172515623512723880221757825960108244718428216879766469064871875962737798910177740959911312098648709231630060910393596147102059960185938718712358712915195372885046454514150232042064239336242939002848776190554227706038962066337580169278855945115370406367252768669572708964134641608377201624048482620129949432861839909416846117933164660058712118835817798999363256104404524606288066384926262346877718974031112859678255905079958389304153703412738222199623103656557698575767536694619524122603534434151937698415200995318211819695136474496952529076334914693408198631468865282598364114525627447241429445415939966535727593599169540492358809220282037882924467444310297906697724971262066712308166127857704094141281343717637876500631255132130414574409571694598907694729061921690399077551170236816380984307834892172739055975645720627492772518635606378909219862973249674470034390723412081036793577138829880678402685198184562801816582490813677013637682385189896772044183015089195413447865229557971350835880668351111472759427974439552356715821289489045208416229804137719567921699960508144495915315539578280736048063909837930960222585114708908869300890775162923281367682192562767592776784015528595354414914390934964884251822160664834363554779362466786158738933362797259779234594487519374278240456650486141922320148062197748126395150978044251649769750145809213825302087738985926426828554969400038395010047037917853422620703124729463257019905498894626543600869094834366138255678397128559739556119521187676604155708605385686739576134186119507193022987242814250167621533963103994037001481397281771607350558479272079861853759799886317989129709894951612434498217799881966312608010896521990730479990090261405116933564852933400752650572215985672154722261703024651056171053269398697488739048335490045580078616769416597373117241140672944270734906641000237485637277380132409160070836141197312481077461553970748196301629901169778181474673684342569939419850757761122086603905246803853101713471808974109736266596379119581315654553703837305354992624756839091177430744892521665534841923783124799642793254854984885353295022593299990370557774568455122757337054272312139950790954121528488690360138524291460857854984275293769309512692293301528847734215165332783392858124131230157396098692475432798082345416607731488002370672266747919108800182657729143829917448557336497126204869567399263513342952979726712255050615073861707782254432654629768418873610567585373268568159578765833424529607191904243564500522335243376554179811571887803396715392449498833750942503293034380211791480499929336592452239835846264646021588185535598024991348483329905467218603269255218635212479253940596801745761359471988403574059142742902212302206852562567498513919960812577243882239797403206476444599046218279587507851836172637597207762523222137734221771115108243057167433462724964207443354737914053206142044947829488465958850828760960239061223277157520304271088746830224777389932838397380543558488536375983670615922689944664281511689779727021901923139798936167894398586054210555814272228671565811192516677955139241861300049802395500234043975917207793693715322797700414917143900520940823511479752299365460167385442510371890729361806674743052231933343642790640258779042344092631720201215208357803380024629723823369534251570033401294704092371248617026083308533485730874093278759063630738655514544501047393747364793872488487084907843812391163485293823670225887155294388111703341366613476102596970247179758404305767625377089642447975918838752399120361069406953454070180559310158133934752844419091523482976431346698633151551598535384392582022501821056302572569064571117339805502179978660017291401320614088048482060154287135273491902024826416349675950588901132814841747887297746829255524343276821529739415675685428477955806814152256986662128190918337712723001725365385838616925879061494280845662709846544417260363475013510354415993670702478137555903192551796528125366044223676464099152122466776174346933226913908288487999568498288854395828057622556240988086056773716558985814375024837215111139366800285788571233986433857214404203041135005954426978250258425516478794215527287895111543245607505408423616690778235963330049164548685774033619081481201067525483416086855295788889016814610380857843010921465631323456590680365537954216654339319268542403974716039831288373213225146849680427903034112157794212726812944432631903757098268885395471339976176397889884166909543103510381733328826817609095032829362291716451942484012709564008925500257356113792649831793937389558256293133576869126545417929795026122492989322678501795281791623590835101429738572013251450317837283511642386822600555049503536795634204270915599990606538631350346818392012362477121034700511280648110627260894394417037665849452690404328242767913446743038548312528075577209805136182629710510998954635376548476996728282209095852277247469877737478221895446736912757882808603186707029270156457821346433185576296224547350936446089514812617686071944029151664361406794336549768368938329860033863991577709992542683210039979401857943896281105115301308851405672659437868947935455598489067723747612368045448401855623096154278507745240032472077542876384051503032132694352814144765254903091636413376139993119728429584776297407235017056619891440729925040253396517744700954008734669271824795686093789851016977703503139461313395701718706915037171870873417281174927105924017615395809304254441445223818624449147368993198378192040879270491908581064434009659291985696824065425996456791126206557903037750470378358451911953588576091675541533873843366512270391500874079014372989173946784115603521046812092948865704248113684297975680518376155442821769110592955757921105140882155783785352129608498609437570100394267517231061590368816246568976812624985889105127900370664272707958161031008500073604910021353816067874831393151360613502564532122085819624311463952334764844301246650569486323578772606298595910208920087280189341696747540577730720419274794273009366111375991369778383207641064178708104133216336873176407921516929352785728436101343920631145750131968311658841371519491833581177329124758706963022263920664072752621077581176400689110859079050199569161092735818272901916027717934557850804865094890977680437595963528390696241807485730485655174387886695826087248745267887140721675182669312147141875271448313544920871400022284629643751402459557643125902418105594016471266279172853942579883548334798711642414638588044821748453162202418945566254098260783072827196322151659741093574094543323560286318640361346528825402399811133821342150213540458563306858535496413359101260300934893484828363711777887910410718937071201388567681756443898509722781115256432129465218325363346821154637594848696457952945481051746080141248591743008269182224784580783455116276926030856094668693850984330103102825104372400705421225186177348660567373908978621104368735102525665739142250757636136690959682929641240068184820120188867959674271262102376714703562506887203908235615350017093698595157781346415649148522464478226722550558604697891349168983257212069825506980259016885687415768215177094508140543264432446740851725607652339045379254535506006259890698761332820155821127802687141642827679594628806744339326740944144440614741294802730410614219156513071085321195655487874908207767678308602951723466179230514566276730917515280955202705732535267142026970657274364767604756226278669031399153970630044097314297452408427941227795295540843467490907934172977841493614132191241652557776375135933618492585851735133645853697605120860563395428733787693610468209649208661086425065279711816160532550937860223364329786643418806500851333305844647309362523912075715176852948204719820528830223721941264965711782227487572859589589011065830016021230893327120528823218866818513631528674546199033209851826544051640337802180936772538647244494398882168882900884785262367441814008729130181126976009847481908836546339447534519741929756073218032115350615163051066254653913424411892573408516683432988722058742371218262073874486705533830205124636428934036941088280403695251268496352293281655018566876391538147157281000876659456103851915041092215452106312503611037561378647501547977042581951657087905346024996743274833637868911546245389475498249879439669712372586532200089550528280748670764791039210834969076626233055764796157567186199695922602614409806511990217695104230768290612618971662794608208525477973419497836853231309120452518522265962773833762259104351433218442407878353802631771904823558481737367110309932864485362074358658669817365226750192259794429842439748115890474907933224461803264676329871814861984951008828277648208133016686382758726650846119615814448277055508475806384233611098347476857202398558561686463560156400014411210111919226991162526013737420117728248586658979704828048483114993892958870336712262685727532812857536823184513705158487228005732719712768798065469009959677379704900187028974620488063983507352584709792037295071052939127924684726920209338954272980783703197132875129081121487970147302223224163475184368727848745261646954501393319408142685957820918515581237617924116023313620023404165878977009366158610557194186709512845452678697284156584166558518966159327012904865270456584805573604437849232244185702509770805860043218322429754671923385158684126719046609179190651818258038502102584609226835818808439220183250879884125487790800258429319559635459557404507600262441984439749293498171831669794010033254873132428261536348721415256554473520520644346476171506654472740027533838483744679745867075623981510739474762168981605039136158321418549233922993547899197369069566346411044816447393821419390118842998830055824783755458959452402479183758610985810154100084521075195131158382979780724791811275707130551877369119212851948005745856001089183441638845136557635505645688391924878383606051906586783476551692956027861282327692482604975338659858409071042981722787790938686996778596523334774126562244915477885248740424631599654561261452315913847600572540479350184472175566954960912684140280453842804202672366522082063952943548150745391838216281592475165089183223223682339206075373831830488008399376635421709783098104743063066954412832022660842827934033289507333971361823096918590858251947507618044209329335872136072343702425043337905856085851055789858631964635148051579241432137005423170726157158073747554810603361821591446330193443408378076655757951531405561957970131780300400375244342489952798354488719791165848061714016357920872225507453759849287786705397689997424270475073386166604601945364189339379841907627913790101958795316855864661179351550227179344827695409310752538329105361379519229756027403732832997852307090478788808610870634526200490846777510349908171667019114768796628302392162795236680705777404467198571239720659776372567546868977307242116417283106242952158960542285169577051083750455451773815065957019229615506379880158127966173513330799168105688583498561470381168979356588588987627404308405136899949152841581027028987862450858622613742387329746471756677574315584857707381741702759610403801118035392737948138645229084848470663065801794140333564878820846388735604425149723992448744389280713572623444603654668102494235081780107066377859075041171955794413437257999904938718567541512132197037823603405729367652809859081892700731388309882980637288133421365072518829999271361684665852484342420068960478704194396308051342388587052536114375433331969340803583092402156700777678866734501156018701391798761379041277535394284412913295818601680276305739371162076575818522409745360789256596850819728993706179968396135594633429158515128895730152632543375451383924768155191168968121501667556226440187218023568143335495784768353539071155566987181552716118596254926697094517390690498666669811703731308907793874010663061935378222825101316627939208807650240874220849051779809941821615582649958042952481572059766119284502544010404390201196273509236565100329050716374385982462050695208762102283450285644814845182836168898677894515516791834004063305477206364822427912908555184555950988858795488773048884433695114451215371970377148931845661712204739659663913820788746321280835024361936378048221201706933431596644411376861374556554697072662043736054913457251083036079550110125605752389996274195822581536211322019200046188617232112303189289705044809379483169494472734357343288923114776614327462372565734053014335373183766380388940167545372250737529433800876606120954647580636131098220404839156490602796079408826748129929057353894571769472125341538663222657854029757519768213586552897172398220782950451097806407119957130794789788417148551499436157176155881946297261870236027247275028865108202214662669588997196128614385619944542219474103466725232866639464268608558765232344815570928011694302719468118122773965365153473182582874628887292777341636078202567058902751855862571482884508526086487561756033885090488879879196561380110384917895331589256639994235629383769487437324079852883287472415327177077569886654707090191643109435323529001872451607566434128611103294954935066713860577961057650032195837620341924229376160460897260971933243582256540132726383403279814486761728866785929061076700944312780185853085033396130748502719078309112883427243461019162339708286122433025215681203879814398627577930579913248811199471070743364775904411385951061782809773343341775915838210881507386060518803191225230134659501682643891954341153277057416888244546949601827434540706837760075017034915706335170309371307469030333446341896076395911905004592279519469697455220229293818760096703299448700434062556255103656197085845731333712948632160941801312339916057295018125864930449241593930125216311018817502502828033014226533389927885182088862718390110831287993848794677169498216654029837653891489789644389951083640603281991835116922256134927744723675522465720377499466941796702243770378311517005904329889480770255621762564718363525296891856524714249309276171487466541011587896284061261726047700424350195217677191969376833679444074323075042354454682389205775701981862338224137167315219329294415978562268612467908439427400064532906128435658224820311517457687986354788618018683106998552440546087162229556570486743112335429931405618196914381871492313356355760944192079258653811143852509883862787087422392019043030556418223467884279257410118682527494777914536886372996583146961417253724097519663579575073402470025331685935031601030198961628026355125449551483545813914943763587727479379532630033846610526595413604971976733852376230103413731794712211582531569727710981657733804887308713122904359729914747070448692396763057561746214155456810999845190014238996345126025920703882367910446310025585856860898189305852463393195639957852734195622753517239067524017876667531784598124766265843130887211605308112346470874371786329526154731450179159713510441116402892909050870038344971847847264587923854154888249812027165047852087142189000420796400754215096462812348656922345180833937577923255047827049359047847975643316432105460764489917903958110450375154659973694893723217797457078645128724368840866897972463579730457340077299025705224004499670274385608924672808175506043065996007249226733505185318334690015074889323775154465273700023543105016962408826751242596075694301498602823955392475747949591756321894106745176221340992315606858244202556216515102622359244677590177459463682831072271525662704692223517780807839784014139577144582898815936762819893300911795744746086204655210448218733355890886297379099935201035256098300114300437460263247801552218955153342288954712789351720553817352118691707453824280825191184638537000643626389600812544844505068984965058510631352024458355850806104420125098885607466984154961687925315747809792163915093228421677411906782939617447876905777130326601361278770268362550172950767206419583364287281387857097592530462693143957050839332756623114078061565159946847108044639187510095027281745916638503779579961759960726101037227054655350550516614609595373797528177299588357761807258176857373337265562466772512814666042848415649313192388106594963716185999734733505634169277721997820600034644614565480435649160243459205431478052274531161578478061547550484902940908658236311396924007062591710612298535032310267350730577902077202034967828340801738011490909271115543468075782188036340831842932218998181349775490553160386849815980294430289786906639241772305425640641480482030131263486888079177993735966400966272107331620977849082042419979982546241485994868240877698113041065203236136104937425638853607051150924012974690776398631272851183914392345942632807964367851615357160314874083425535243476488201401295047165479499836446636282897068910803183818594019001434746353943019187594930846889117034212635943752980647737236318608212671033734937632406286977503025570336945675080366642490361919328596289989312816234568357065602088263623384290642358726374030752066899307329415750123985801234205017237903729237591324594790117414976004276064976587228672986345113071932198460073208424440423645443035357264090955905560487365770243686130858061705794703384327687615473471084824079811040586033198801155058841340780242939289397992062463019179367418479820927808381434803636477644506335158790373548482411407724206589463227509369377023733730573764009449886232222718047404661384461671990635786836753310679184994665421072424020931526398433395442390180736583624387994691152395578668095255342398285512835211640439429237285016284526555504503245189404280419080858913262589627070163267335166092582818208666108853553699917559578108370771134201000959469782932581086768722761037502778230011733068377078256415594722642080696753750925826028522159754589300690317611654933360050226937938079178800058031586223513735836914332155527632902590425901885769796457494944834663026674392311095435461051354657270881213377033067749397356918485833251873454763184259663301536408151799363997312239576559352369350203072945374298946829330153144471078391274409133070447824721092417539488529543309466777961002911745399816305613769350517407053932324892821065432550557803684794150341793527576383834523926037390712070763173496183934115448894551432851814074023081129326567546778729533090913021713765698596674000604699102792908431554357256425328826820630920883597655443395637888523218744695274661684724094453475776040056111167962996934110574723969260424521706434270407464975593750371478406670675908894001904065072545001650044183210935381037552491907628925913200411065685965032943750912366589773662244565244272109435154903410213771306318319643158991104310089698525094814361560683910274366021765149749854066574254923892520170645682802564495520005911544843915655906885925422104758090783083860531758040084127836564243752021287266315125429474615723299612200731106311530188681896575520793963056732835782435731340698381545956798862215214034404114553012387956674267601196142639742120871884687670392399316440792519445214580422872067911696573786724233701168572345592361887071289459607659291318954608425453146632065811542162066076259498181484003469495939298818652077925527475961391781975828990978490230747821237850609159607043033664783096367668441971049591736162561686767118992348152152736374185266280521797014318885912884844189799464910372988654339901578440620451315011773248341922880610499914583517329076646180393054538140404974161442265670705041582709794911220549927928869821608597023820291107730844022777834676388445077389209474349852932602692531748340404545844636941034044789347474435212443009029988181643848152782866068395427946075533848033302803674121466875397614715014486623098169815503060627993940011305935007895599844245376447881415240771997141221538742132926379012345593185357904634731608963917877169438565760177175097331744512701233358895885820290869035093043506998127861212157904199442427019222821296185296706926965108394732314524780067352450810641158695239160457637793637738009219189058182595063066449061297006398862767779053727179650408045659297964372766689043361476826509861443959016475950095752862344385738367656132239575595363805384700666558991811318242292142475648563092998410576519985621954023197687726597619155511976837506503666061034093342041269747155587125102729535582746559278473756277248189257651370111576345134858660394433342146618659495688260001427756539249161558241471230292626034198974647382831482391228479096140874482980377460585821770253739157203215847330474184949065457268716797487589978282344748025175558514415630342398419125139818475396712864145345144334022973903381995926082183306895809483047368076092082454682343386657316133087029804543369680433506863403140549131603785846312308317506244976311767979145561037903558226844385470742037819898560817745970248393345193351410592662949951716317574862695710808853281291605186791358252944865835939465264440922057272413365208659651805480035863265603334691258152681338021463021461635335580304809018935344561792321511690971264551328484755886022628268145579906876691056958057742739556608954707644206228061418942664254762114353011860623533475164807496852481112380061247640290631944665021668915780524876032899159212833424178606595102581599772018655009047835770680669581654358446605683071049389225275888861714146949363547107043333242494787947838417245478944330738499687311081739143988305978237223922924019322494363129576798913996492777812563183195141535786629482057650593441754631775016041383043747987000291762470872348903118794166980855986922053269760047133792152835660431727428006885472520251690286647614722710385833796727932051460623844652915665875306731574555734874783733093215930706086119206205701087530672303480812081487398975330646046335252618901583497803377284889928710044505852267549616572488139742456772718523903157609184818116363222398196132503345135424650660967204064928179612998870927969611665935141785950817297865545838347191620702679147997409900156520056185450050764731698281471530919495117709316462689895947566987923029176427227952592282513393589198216321821068252693452773297779494345429422415186581321902984355468937564199061054543594359117715230649810608699774980329168019409530126364304154709159496222594965189622811012852397803489272885328328481968358259033530787424024409989635623790897251685832628164769224225949324295524840915452054986789511710762993279042630901351239228146248598232880438641667196770936346592141187233094841593566219180636709448510056077655542247926483823669471628334579928217377842543829555739388145399706776404068686188747201079986834893085169615148055879287366937027240386577937518647130911073753575650312363019219059172254117993027526204767349290312646276625017139100021823863213127604152728225773402351178665263993745761104140597687753049268885993906311409826728790112140793926432461697098013100094574497979621700177196649470791783691642667326889219777104456919263997802878558522122117297700223717257099067104277735798042529818850104624182274891188091048279405061790973455167852631250822166047340014067974505019291147941004752922008898853959918580508875768098109820259657881044893148273988834285866620593014064678071075461372861519607262640132459549190461936847571003755504189390945918455762999124139627178227987183860050718577367297504530433443953829867422298984355962149953464015654423055439700597106631448172967245588978432814294628035122763237875019072698768062666939338572399083743590660947400223647576428567813435408263081620891377212275211062462173328304397108322815056505595823395721581600489464911203351307254421355470422407608096596563791011713895266844827842876850271450931911281268985887219502884766475478723210248978373710429507426677923107900908422781377935249340985902740716948709731470787549093578985287722154238336680746319885033092423101133024690507313225062944215346845721854812487728665395057445458332199566251320836785509036748001165141715285886313060394134975562626013484557024067879395474348446638176075482779068106172256874634501480749838108294218089681353855742315606482808635868825892769080124599976667772942799029294322307502467995191883031145303942722325769317305028563966404000750535284400278619154350824106931402379762475579409175918206750291760521971383594162346532816334073934225054443204879815347244375183792391131603583261623081352669382540023854546869323854353867998577970404464945558648804721333864535856440599229302972084278893377670875398006861041399379541945103437814480298604582723732089737262262079457718934859275776231810296760010951537357076479313173943840088121410330739460248666233079944398423614144645460687680441121197915958104915162059010800633021894947202708092369958679006191179917922743385672450573530071451588316586666053175484344429547055669558572937945932829008661521777987373881592040172917942165980325196912508907402158934880505201470320276595133643414945088961513043524205037673711096230882493417147975070752686552083104404644523340750109008006909129921854131385868073180429718702097958390030125369937889002464738813224016348625119659204028580531147083112060895497282659590065009947265224898080959754882518737481522183050129026114272658502399552570265307948024342764321442331489952089786193585280555878316764223570595175591057130710822507723616106701957535121555714191684295365891796998566877142990899600220892128649785378038441659089474825318120102798630505110472680157261539029378622582275299697749107155160618309776534536038555514252150600336098332957461835928872415424300370824073254495925105700246618792160630870626105193184084686978502866083376090960322465753818479381993387670716909208103319914496264423436283019161686707698134488472989484604378882322265586043425904980093918216601367847784792795457004451224010378684688980174894983606177063099417803345871961270454430981586672840763050835290802410332950721517452591743170645037948500588825340115857467803235604246913405541215930597850890577629063923028053924788560478833398134871355674782454415556895369471174982498768753722898993757786729087722947448107884863026623464998978042508540743870986153585600824876534850536679646637218294887287210451193164902349391655623430118961455165775355166626775621973456319111394513002101952340299946321435813239412208387228287544663774416861176424623206432876228455639147183421428790784292261981008852120901192723866526139557940256182112516597188517589274455459147568276748926674528110697605446681716449636824580825412620604798640220780336473698156076570949374275171547137910803459503757262370433187692167625349671211094199638965278070001454524262974443633251548468163826858530860477413445524939956561954719807153850656556570506107121496298028769410902889963212376005836411228031064899244969014450454648954556227496893010279360248592787839644908541984152996675086007305381935789657324246049117253542131539033952052833719622421378571815551596704636081412423160266257186141770573216975094768067854627134554971710977336511105503048858728818479357831597214674058505645236619540803125152834580529709516453931537542178021545420704515140562099103556209213671964340094065802030091151353110138337179871472393201548116415386584224144318861928370670768840207986010899211428688606858250485321162485099963404146549981927448128879646901887884591962554153676626056512191906870035794577878561658065182768729474317111867602791030716569986111086066150343771460397266824317157279833501235638254950403867875631100708737428647789050142666345951527059690450597938442417288895016995783567926919685994142105729938624986872861842561749857114125924627191797832093984296276800863618131942213533628666686569034836955663842765668886761764364752959564031679907515485262733781043935433721226857427487812513487166889822291356920319759656331150746039414751592474736300216747548186402036649049480830551275317616242716236046868340031868919277582528940174918755889962348637727952152916808444004484615266015379369910000638688645939973959880823739584254213204456463993729118482508245807603019533175775045696793915759467979883366603874252419026113175338730743721556639275424532434555914400948368732041404064453767289720464199608883581950735764959648170387834189785754298293175448413948628239968182860892640700595031684613853376316300537446895390763584873288397095204338662776587512262410576074445737273556447038110016350040043909588671247021634230263626296332326208683994116427044420442128432642759328258439645500194912815298547662930600548163343005915517136287631961888189444188820339006768878238433734646120972233646891352133115280119285870788989711130710559505677384654450645827509880406811764094183813142277850217576953154706236725533910912510881640323445607637872380175130585119660021170943005540709216628898207252249306593255812691075584154768734453893418144931997920079693847314017963552355093390632250045898913271394719133567424410193620674096669707975311563772901869539879672425621781198493838031632423880544622013722997335424768108513793886995505677569557162501689613664155631928283978933058875413526090756833387621354193755989093402315064508457541069903356996438042248753457452005735624649225230267573434247791627534683066364758759020821146956918738022450369459164785412222263061496396160138893088927601696884983368804773367572794762516989701001304331736439045074394900980438224687764873853604711180926043571352216700274327651104939283447811261944951229940385695834814217886308913778096511144814084746930679855266852474447495526372372557197745246292825479620321710482458294299608555865262548690446744381886401691023567193997420035223805927443927525791141850576269627680312771601379451894636977009118858331664625556263430539382145570294679936328949461551140491053893635546957584425047560543845451467820040477684613555349991853386453126296884614873244040041411208954555287207955187086471477484389335158203438664868648723123817074333963377879296360069621256239422742086691435440694275334329384547451481687556307002570291730473629894021242075602065674633049151247024527330404353419579119433400795338958395253597925027833899778314432010560080235151377940051983142252111065604873238553173509859234165146312363205980499817360714026952541867558982369985327128260283935712558528087391472758224356433778239714312674273633521133077839929571964963814951285219428406807455173909213797800794809277581699855716884687239017095964996556218036755693297787062729790186238942709254455356569429356437533767315414791855164668987044681824249447753191488943130153100127228442100195007443481970549543172871754141820929097116620285782508766830243465621436465003623969198172785461485793404599355426438563578842736451124469514993555450304639947206548927641771984991617024173285584845193448763531589327879659004931975749105667337038002063725859383032265006052497985051464243709924632708635419614464830636733454495096187165781782534302265640766877021119354383214931480610681462689632561884689970400400953616829619468200922724150897477941976442289238036499084237108911611305373534331274006526572907290882197050014226912632608076475256912734301154445320484309671959016073139229040048703944269038887558110054627240852689266862540052235606095964717132607845957673159318260673510955495405163670778894382235365574667916010783840679741608854441209054165759172616174156536852431520636275692516860948800046294971352333364366717482914219196125436206550203568797004500764355017396367782329245204663931761373103570976058565181368051986275758529944743265639950389136512854773329406418242649208449291852274928962552419919320738917159263153305652029477505736128212740135516928932567178363507413777063674712185951274857836719611494584786657600471248307922599111250673293834815048136494114108941123353768498031874322713375869057753416791703071375354604622559120724616248532558516461423929079908424683090566595418424180688217165204041471741985749248892721584228300793676497098906844026129508650680725432200496748009032940776877528247488713088294341213344224130948729963892707258924382260926729212559134766293006700936341151023753137707073652508642958594439303738475351436444962710298484441657407566323308951480348497142999232753511883903484016806159386500557898585869857355293811477209401201846856796906133767823777420817926754439386628880933725858812299720330568218447294830819586723450200227277967684969696646887437939454563791802415450196202469895692333943593523173091910187741287845942585625705115409428678851547533130527636336960825913917006995294000216082718411730525903750135693728740078284372759038423148522959649120110896662038986753801366651727918586385607698221572903126717799237369078711835019747748328925701833626214006396937445433965049673905207168660598937927550575899922685326086377298794092926472833247790044416211555527330955946149177722118025047991739620469625410554947488536211158728184089788261838778675967381049150880061161541613029713499534556105642997279224638608031908596302975146782824854183223396536471558904537558672032356767839988555403543125806759288739979044250914472840985650061627474639661731544044537277413643203808355433729418360353546912982461553767981006061966963486211247017437945080116123064422236078464964081795839071431407549674725560689377782864945313224817964747724038961973737864589190131262160020557269999818878547964993185538463173914521726685871581214548086294175788027665457726819565825615837518974544253311572859894611341377426784086410204352421051919097122253390229664708984731090914491020335799006976557004200039171153256118358987586589839183989275717108589679703294664953669254277047381675859723842439133402170201475507414914528562740660055040782407861136103754318122212937610827917344517891512061393749762057286667524775207672199278317657468448093885327122243827845320735767890155177125761557706797843722940564787967170124279851455307572170435705782234772465892551003513361817271155369728493153236160275418652792041996490997905767494012856951167248582951370167722449989656272978770769415645186481826015504281489804929359663032087083045638507763163110079393720213167135947294984469121612916539974679935229873110980069940977167478867082989486596252854451198822082397858281698269011851294431900216612578654153710514107470232094752023136692473679782643362059234926175596934939904513066303895195247820924550286072581035873799303691664386817329135022232008501023272826721577723135082814337715529118239302153132099584321661688604345112998178728901392686948157952845969098338130244713785243213443211762554193000442574409873660570495679648516967637512171560990841648269243737008785782508138413531741467060130542093993569178565308399587784360579599776959004820223052814405441825460413685942709871273955486777864227994336695362626030386134010459704842481316043131428943689440418613066938378486221235431243777313482757233904719233217461427307948908320574165306629478383539320605276393356251941935014732730541073872313802129473857507418392129821002748730360976734893577278756897664561928378503184516596075314700957321324148513592218270738741847816867377600949227335121156789141845119219901218582108278423687379723206074901288799636024056310070762339379743886474213133233014823347041167756914222912138545281846691793070202956862777596978316725476960257457108696914803598117940215454583422681513717082044369949125985888154649300124350577024165551213888744124239374983612012411746803133735139171581619759732792252198968602422585530198304115846366452603044567879595834256832256776467734323918716107466975172317742461743083060274733225641154318764738584830364332825924287296148287731936393085011959331950570571662825295827980103233390866991641177205056030245333180532657992102982098544688893892194403904241261452245817030191865355280858795979276938029372274607227381825882130420482358908401757394079720411010955163441369747090833323717540423353324584474005678090152231168210878106522884025224521258824159705284442141526403288770330046365364665067640274704957894419077126241517069730838603546562091556531051845090606122605396564603370916320235841618245493712033946581519015367311118952903778542872254381707723083371266423540774453436639970519123023689863183082157557498115534634669675509806827218995636659193210535427649091340014333148928222891928184153312217700664883323437184938520497338842829128392223306176112343446962439167904058987659328703887438030960885151515593364686066452443032633840997485039438435194295280168426518254165031282834809182409144341305278167083821929154928280739703574422156032263932824390569365415739339976958134967316829879803584534853158657126410230888044186228090911210363663518125366656732531625536773983330772747329271895934285742927594908857707526811464593405942357288524571765920911649495530901421568627675394722309281540576456612858297101436193533928368290669549389209665152776605110183587286528614901215157491904871125035828314678227997537588744289472626279384603990251502313297195370832012340754073694858898054611318455203464626305731325568502087418613836814999307700436225453130701557516694476027705483513326955271661735703628486728435988327280933054339121113888502964097497723004314779436629627890086625725817451611191925326360914729411988197013873390448642608694200397991495691846794667320093606978481477778268356989599558174009497475330526199083535787137519017367151243367334322322898820640682775580289090923726430697865159584757626692345340830549025078296209973984780424900474470059572196691029312200938058991619163276512674761248208027248860241905932430635705307834356795105197172504343630723187816184607803327559571098639976394930826130642103204188876202438742648246842000278067147469327138564049977033172298354352044474370336698944207984987665296646239684207926167727302259575488249465778694630877657304340631255333878624094023383987567025515944466976862904629864725746993227253677688163285342679123813420353001446340809239317755793516148083167907968072021079114605805812397512790189868422051257712258803146032029684896266791807743776977458740668555750480892883687703353079694416183498214675634649881302347076692940061750437257835505781948204412434900302252290471559496820390423624097615809203112115602640541338556659142576679182750918156471524394743578204332772288818176036815451763910620302623722459533367602563382740974055340259074154192518813593403423171197269744832302039041263083150963025337847522713063460768477660067443142020226136606723187687105061163804654369780162299461607906030349613635343127291461424453612591577055709253582052203559306718841410186839050089621605581054613847740843748923923537267415795603731440414894567394359695660108783280566575996810469262467972814451362665765609776893610797747542309549058732219565115739698478084382107632024966346163777650569765560963716635994727453813768906082985172738381513325102626414030497777776314566263572013920545377086550053325710289648124930998314601987395102078445159195266104508975081177213678980542093019314090467480002308412287393998951848813406501363804059504779123822225572945832037853930982904429969612897352326424263954417652985586735392239860571898205729707227909310448120910375743372028263184961664468494120496231271938554791327332976573178809478532163412955075747871865918013948857942208846538694059973559885126672541772612260964549633717210058333170938817761339723613325031733863026044604965168320471547175824008969469441172623596344510423579384145222206448163905436660838878013171912491600999458436135771318018556629983300588580731663212220836745927549701344849301630616567493678416443874259271445409110139352478485521058184778340177886851735987487233460022312459994994490233036369659641810545096716256333291686047597692065597445143991643620276680826274224119426655183357772698237864907855569840061700921550438729193211635983616563720062749107187278486963698163615934964044624200424147265387749018605352356667311517651009691133276108120720355130111374903102647539645027926019095053977805032894059304369395742096876718364966728563175090676585223637573080740515869526472037875509003672808751276034879451216957531314678514682952457321362550745815770024415149651190341951279889336888064976324192843628423073874897918630451467729108620955350931353702320313434406181554340411173409974353999983616467606364621362324499931561410288685313013452945387670414514356768807392456710391912423143264840314053999143946903023985482063858030824489540936430618110696822556941644711176545220262071738438063293853078505681027955298854159626589042460681622303250306306222214731535056760078552443065969065334740950261473527306390583012652889722884846962657115714730016227176571604338533020028344395814365031911408932351221732596070522223292339470427888114935761095880395547312980708644647598413525421503470729107109515102199792346747194550858548790450735489232539158043992418976873534921175127229198477616546230879644941793248806160384657258692463235075232989316300399904256681324299211777801841922200560327979414486072391970804059610067078755033743123185844563553313336099773792922090818768411952977763075115179074968530689517064046981782376880505198645465994342179520697464761187896922258881613028098674570561868839032726439336959665041405170627258505826493339618085767072853098570616341000401783780086223272047227908711304957787763987668230321403074301822912864234734443607306688715854584129863835524704779012486347278843763368396045812695726454780844610837137025601927108987496338989645008909310553954786385817129570822632964963978755685968259113551100035342355225483352415869554406855177826650849233639170921545908679623111829829161950421482725635165715318703046286889214528062862300552019394407740115640644907770017711908813651774911666993459609181627494256690846936392830660091791223951440205901992097843517062349032203157433339957759067223026768017967129895950458548642211755779392231684307978738352559705478112666064960878890216069138930686216154875016879293858891152542993376733052393701829447443344871735275949197300336218837395378487387624761957489786820925329719294837375479108464037627521588255876953979422886713363524301058053493347820559509553832062596410921819383075084057386857522232721659270746987274574575171059760391469075630375623255771527140773599526253400363249552507355348157996938086483828115129042098350147605811566383932095621263006631504010492761530334536222415275056343884007601089658949228800590832186595958653840191854271117064992320681440389724480107839889246863960665553113323477484284721535518957822360177313155674913603629394740457902191943885960892445155504935890722752274169357693843204479216580489136917665685334873981092702698093042400852057703858698173673942137862439119744171857971672545089639120897633940678460566463825406503804377723028566585991233333668265596879481931753817042029061535137667324269809574193582406689318480421042439011010393180984125940861256512818029503426886643050405297089518392910848748559483438597579215628454806677936782934219466647872544163382973923703702472867811483529336266191271921134628744891184650663279304848847825596603075163633546148417283418480016393526283295314782945115430355008012632527580318106618227547510430149304620352729986019328303465753639349750767311951456114620153851669113906617173362846462561654907775402940239091532101217680658820022317207496771138280002952505962257280264904836576859327822288978038010452326297192699423018356301856621865279388811439520624087794672944017339798321672676603825718376082115553825018940875453852745438604295444489759711707032083673005541443410367771740919381220912835378025106370728461194131468378329961964715072916924550635992776655522208219034435166584439755823854199723753511117770162616982011011377646487844955031675775198773103951085811251727228856663608623581269064626776788017665370815389160991140973535675926400812354774718884429643618601936246125932149062869541208519901377259367005603897468405304201636008709359053788120400455640216801485527953240183080362040293031323855600530309712949377131874640455460706052357783558822962262148735050712118990889820921825140485005093326493413712783491311189801888246075195681297244405009095095256255376259286840625713905106518234044621730643992920573153679476013546576692849811569643378699709255368568121642492074861127353912733448637872913945669578800359780597968698307763525328227462094683685285176164377046708155119093322331245756210036770995079308317457742717258667695366751733462170288936808433820892216951901661540545407015992711112241851652602587775256150726936849990478428902170871113748826489861850129287933365659358461735959858405949035242629615762927592749397768198747218868660762844072301224131537296420655855735830193920726837093744428306071928513580617089236791311226085842876935502994030999671724369007655581167991522680137532604947954513303585712320074338254799570528974653910192634965023672138146161895981045217788364346860436076585335814984329195470998701105467108993850165084787275619413647865716735568309780640378370876262348961961967898468841136491820277752947005760227919601287659590821748719738786893835500113571867877322906559793784009394771248861179370348365969891856132299250346203131604683391977279260856552495222429174427875382777573761292678122948907708266604834353635186382453438872316484458593867456535656514490209988219448444102331221491935252250415748991670723524389550183104499076186242759971836065804589754916773045217160965434383381907016129758618260926860854261538814216288027834994195266057581725735305369601524172655123488294420749700293920597443308030803068214830161947024338616541978982078315188217993278529023694100906411132534824944164430632631874717309793170912395121592709034331517779700312979520868910578785705956578091081829789221667205994201975433551342852363248112899399982476462994772860386636300656541537592291269167919923183709808745881808772180254329643543755304392328760941689717979439969185448580518330517869300157667711231273871064806641120648895077731831342064781020683317581327388669555182883605092898106835971683235346540210316285562356420568969615935625842210011783811397119426374182393460025505055662368371954969376263611064617194046326422445529205654265501143067009265222251460255516514532090740804166701544338254779662580550331911681222344271167988740649671593011395172407131228086678387163117241770266190819426091984977575994178317784682548365601684929215873506590039009585379217580574792561939627634352131404844680160638832890557256010562769949331042639852151949849512021427535794460952567435759879374744838527770978358089494652815522679360530295039972273128755348966281552042881933103237156617880126511633083524231453940934792056077069501378575489028557636816885627974539291955923362624166864294937404907328843985152970129126516282834066502291276933435144783667438317633469581961161851050675150640104799367000800148777853616757713254739372115455493349651461424737255545638720002524316770535781624988247896105356087947333623200778604585602083205301872219438138108599067302206795560902423967459803047344252400984871512365903254639698163245951352479725553642690529130347999896202454314583084190916301549608193668935475430232872292558792390496030226834514323833165626220044945218108008062308533322219319005006882792794207472244857248489157321387838236878851074207910746229291262461880708629882493698563402362069709782813410851177228746843933534210505108414156411217923598626074128189869773096080489612716375021624830817857634873716508435744741527341432529754747650323590119427577826429313143555771754556994414629786950639293871764368701546535749113348670014499040782896841036201693266131844479437257056336854000094022632259228745648394782504553439032723056395390521240672215104972926195658209711172563550490280073611101021510879699645781352643180964806128196186816814406300033757528036643358818619564382080118174162808648102575613887506100996425067733546074565946484882449666296505157560878360703580183882210049377489296353084179292229510243792327253994617297670382312270717872633879006219060108413496257190068850025237066977349773383009921295412358498007807679707867364919585847320101035228157190816709967430190045636489472231202593138028945061530565837390729880140269943656329151272951784811876520244413949154194330123911161318441201629745419105344668587382632983136426622580367856094318107744305616252808963013472434494208532906724297780491518623427179737833025248396895449373465910821221715438267867366191108251448386825988886486799543556904395298420523436752304345714292879315349504541104995086652648043617939164738875040369854233085326708338970035696730222834343820988752391064917255124655147250034390454129480740716925576410977249694556872110196602294790967357239532047610053859935535902729980303702229883610177029689315372549714737341410296874891887772203390049189820019409815327701959318030030028517909365677852141594943528025866204049677791164123167948081756058568310448495188901569030861086395713678251930395683083612914668844953041229902846690420725087337937660561653694356682225632083731537887283887933146356617645923333339640629717187737766934778758984383784910503079662761586474246518924243926629110640858407766808515030206548903631069294818169551325436615627946193718518025233665900949668545363603111840084468167524019918169830138571796760689614577552512500802480644161537777739523312084170813071343346339883113951873112444688209697104578451283361472066788879843349489302003544383327747245567384437799729186053083014151103412143296174464622172072333151971680619321300726163591043192687434379850061490425443395196933053607165887661617653069457473648522346861314235054848533025992098988488605456833156816955314442347460372339719676571394589933369886413214889334521948524499627814332391675629183164394783911653756036875932813418319236727847147474303379616400328967370576897452062595720561674120327172054795202473208642728139678228764180734329576017191786696291127065003290384175246176685805229020903460353516487762502423961031571432327659271312476585374993756558978445943764863024637093991237868766682213154321826544994445592474946697363637347193456655704897742164618730926730988119197378417151329729348783808421130007167224516779328190489963138461185133445058051694881927059030308440560650738698461360646987549352800041977065460577215433405409492750492735791139565738890990288649257734373937962784642420626069070870929736420256559371416935759501436932536327161495269764125308446933543207633916976951178558307715620846489476926822922389634301980744214754058141560360255198516132765507537072055285482765704319347867144411953736056798779243107438068419396488625320556860446915543194877958361460791492393762623305778685349009017821378034546547539724037519708027043757827689023640459232333484188603486344998501858389364298286696136171815886515036662426359294736178190698055498426535736390728569347232825833974870558741377258621266777289566328440304221406046620028698511727128663272736838970230354921278230731067434795800867658414137846628301866537275802944416698856353475871467384213587177679378492611339411222320801112608607281396903499167937871142809182647684851469456298801757794793102138561361287513613881870132422712427113875011302883322084868915544165176247931059682467943628477118636157724277817391502732679002321740806366390964451122617807678691884803516526022690304383015515238458711985764250248874267324917317359672432029755377784315958251596582708026028852866078517794148656779199080954294130013794942965748615218102146183440356120384507592031408715996718143928360479940402094427315975561558115203767773998030774892758207020547157785245249047898226665532802238463973406440483192172531222799892235437960546629844534497077623177781435981770017540417812623630584339334365050577197736547622952854101601790526605073225873190135225176135368585214570573854220528126932919583230095884558460471932534434691366520638346856150403964302780035960861014988058163284872241220443461838338399534610294710457742693601507400146569236588982950829848164038065544344392186681387820696950415070071657366743578661363970900343422542890668686945682963436332969362623559226503476411384483001498819902148097211222405045351371532769037057749536168708264758574408398716813752788707558439178925251976311638509370290172176589909760319910485813852442392096328032186764556067651572755398808464429431386688954969128554875716210656498276337494813090748044111110532185844545238135108421255743338713650640053058853759953753723657747303763599575167711428314027159505771367956604014392075671266705785449969198647575910086055834431274700791530145466856105368399800548331957729643852213238060761914384456197026988920293218317181679617861773235916862096502059992200553517816323983298400005609330872176651549556374952057451567491533251062785349503835760096582236376659852970394228319481406419036861016273985271004430535231435486601478106487643758927643528807335894344054807339640912015483095524048666586856418462008144848160863023218659219531832667383334408519194185524755728441092180913190943288411469491753678106715687032918077095373720740752108245383575208958202929605516757898534143155261097830686763893814513973601294687392450973965382983837522133832639036830818045043948365532940747796312444655993802774536645901165887585374073086835335901834652456849695740884236105414531608036057559978785037933878030099043384074554666544813809415886235946133692697924170266753025077450673230842789706112850837720730301276056809971112418370317914278761762224474907343343150326555754329311969534347661982656992957222160479670477855463254612357291953006865459926303862616277916133724288303387391152474606741561006981434891536011575324713436021059767355625591131589457884562052575667817855234397753955524014016541413636983343488629843874584374028566191454768000813145916420685131583292844507831988540087306495095490127030309114213142479953704762062355395458720974606863942208680358858031934141464787702948854483141973984011557608866694243195853836933493873505012166892533243529239770635997124113782883541750733629914409205556612333470730407253096089080980911779077822621637762187749326115174755758458699160184418436753808484952734118755359504361342156040172044589762669407870596258322231536889573493103702884035361171398514567589270300848705184534274035344946752023481211946212475175963612441404752985277604791046524118590894058476076883589992653508506150366895538693021240965774717827879412670915636940843625406217111251437159322987650447072455381506757742585876724504305437247454345456498030026248791343221832996307259759465537701670693844526390896338250036393317522207567825633622303812537722237226661080265885373140449799489111316857380778762107456125810494951015119734722183274233061897992315708214985293993670365671809932731069848988352021571422962647353235119609447099337036688897310048261469344990902295251538053069359452503549628979690794332122652376089512390318205632833153696924056431349585428517529742270499108660303105512888232792136467788867620208014642805033586385338608523316534321623499852677320699230608238863066644691370943570117131589308230715975690952482250584863670228119985084736566940339042037247376499606343657747374043608603884561737549237188558829485197497196594108255803773782754560422879351462790882549017241646948954711745096938042075991580166847345011994011485532716048777627201247596958044879765148218165866265088626823550832499109903757946041254381945699956310305821298694543384358653865951635140864343896238400044006926606630447998859914639977561293493269010477848474160818970637994737504272481242114876423614431941235907225071996394160363479839005465590556154175929763634987613534455918876165011195810757634619181550049828506698010974919969774216720739627213620692341181941221041469906612298690637367430768092790310872447612462681217005412859453751236973011209356606227788630309992122354326745680298620349864323083551745181744784534257021291561325570665508036519199598899481346809313512068433634787431226009609212190635369961591342517967524118370382511897426188876655044116285583295337421028764943134230097467970290422396960558049367597787887002463891332023513842687271122994717990636146254654765823805269959594824897787575684061231004321624514258026869358497329183381997769149663057322519182705848658295238391276967124997198120969116749812361966323403560283707470869619936774676506917797439721526038134755090604841945521368367970159689425596374840209923870860344035807240373358128810089314517394249276599269142657781761092286926813574559214807761853719161879959626578852481058670460325157233796547643907177396831086429332891264780929861060943155975724160375700666292386509445898986430654695609707477760408453224785911472449246438939751072873206970233972724717077023973376654933125253798254476636146141962955490734105119229754594718015668603957831465354987006610631893450836864385843115896299650836128006903395801578555838015104308535604970654233904992416614290351797779546497270696958354031448248603179371914831529914370681846034858951804378418252126382098894821662385435550612205533717732015118460992934278150679153093552971847508541838768980125949515881782111238525497986230121874229659706502683102088475314729978585017409357454289481128807484596407078509344962188896633437942272436815916089252505762078194222555264943274400713125383413636964798123633690281075318384126776501907680075870805995799886841676288839804278580371718020512674287183352454360262498263228013967998110446440137968482272915777113228169436458738657891167529883149329706462724075471234718178511419941632707405239067429532994977212835137115217484697201933158584443110553356157176657526441447627102187101690138640337441844030214683444242008192729899575039697558561935985427960838268358163564514611757896460490631089723809602024740807292935989312687560615646730081353860027117311369131907023296517975572943840074829171673014717015660489352001622239602178983810462175165840350554349192227552653183003065194625003117741247359808534136733464100714604618541428095188124806928424813217591528942828199743583123314516960526926223576325500835351512649057263640292571848484699175812583066466819777211567052082564269323847792556521778775406454981560607106453495759029866010035453075367158328645623541527153923240634592740599713621760060176405358179180569006265103230855521507668941053208065576049557270481450403933225224986013546729718164489126279878829473320480203308477149600204809789131860109862080825987308210251885180085147596200045473002713925207252256145456658805039749356463146741139443014665721057898530948632945398063192412451357504226900631642783363673878079535903932939449768015586680950379042511044325964360249844649873914917482416737928522862372312742691296994324600584544178466300444935078089095157827152822999678179025577199031922744855429133557547949251771855885018761342359862567763587493076470577544533377244892313085847706665677220332042140675861333192240312246457268315844264111769582131831921585546466783068462754364650992582185559794217197162229676530112118777928296123293160559432743409065776776218301658431480109857389783470041842164542820145271748541580861114071518315079990714472730463865656192335666844307476972644841612722350902454336887610982160618370477846003942902604172082412069010775481584043654894853932082540856527127245230016453501796461930446431303680036360363888491937231769619536060771554674957753632516902913611767396161818222120317646063870230310826735123574402971918292131758816427034823231816045325657854152760523665891547209834581719651046109392070505336228888420520657657472687850313274949829057692444185404600077093496670094482030400169466200154819673588046888462663631755352657297446094898982932064037344850357148944754503879216080738844017274458655879463601900855861885819375014714908372463455033683704552121121234009053883082465941201781344698783889729586753364602990094881505826588435356436469136588613179829310923132394316594797954473667474812982383431282372014523097994866277433547586046116021647684224198298115149160898544579293236356146942067982036762979524516376543617782250956693026272895183919115236752362698202895252785466726938580517963934865486234595711935009534121272579567215437100789275000937752738195717468365696366614614447818484751980936309330208451760627504547599067117058118209120654388529389302901054993673698748681004990808085431354851423216279191512475040724822538471338610945628868048268276514636813699110220518124632932161706858679928340523298391258031688581421856030842475749075453275908444593753642836412452774806552814449235835981427032434980093646318419511876419649573937978821936635679966044546879269742955883873047377212972020752205112102025257671328787222161570756870416949580347346703282777503832209631452333938474040864917601837614037804852535383048062472570262337707066009439538877411434665566073189815305555482182033877672779180455621718574965846207895527492077995289057465492194012952868729416408105678254641901426380859307951671039442802480537697315391094466407416944934665611972745029146333280956629165453481663474072931634646907727311911387590474446299938615616220036986192434032078117150721821658314576794968009192472352786848816376123648957858927371454506701500246273413211387803603942207001235307015878529532695276644245452180479584952610301539165344056622616619169188262858827088902815079407707920155595837743060507934506158868296563881186506960619644284434129242917132263292073336757765568036713353483900638039346518712938087937120159538995706934177756149447648929830115160492783573994636107656337406174783428674633640916853315870480967512175176651438972747213897501434655252946580692122484119031983832378622548534769935378192202227494001791155710726465518133758228571315928035416408551024102467840165427439645942582636621305216501494088666431591127931123352147490762873222058101950808741589646771818471713273807933991168773506243588738017631171661460635950971798400504156935346016640840757833630192537751671686557687987850827103977023584685975531286386632359139235287318488177147058946658207410192305663485178194115785535503202404626150880554284096086642486809695127727626055381785995760975749760766660800337573297528233056464725477094660832220091276649146412966995312535689464101277834193584621229582698536864843874989822896644054784604159794024934110804841553802479791629413473264298097331700047597144670880283136277328323061523332987270282225997849884666227833422468659566688417161479784115289019274026310356206889672020107344497503308789756068618315055710670023826298592590720993893195616546256822304808152464155710105120715716149970668016406673191871438864744470309474027304054644820831157727850008646972555165442226117348748938283040619470413326534232098095446059337058779389761499740824979522356570144194988054698985203627831834481636728362761292472159064784362359081165242710082769142397750813344441645277367893258347830643174409147817318474386816535366053982036576521310939892473777721065921593724048390112464645624282906683834412805258451044652575324790074065702266990446710954690581785433140063685146019995542482181142487447015849186938071567648413889720527739312078753778903622894727338926383821740500478777718520047648811265303677915908649271594431130321287586723274855990302935348606655471027400027517070234120329464648639303825613001598969982503247758022924831893221351477436930922860478055749571924130759439674232967280598851740909344421398267853826460527072053127892235661054662441313299968281055176214728298065843028578562588339571463349854410680941106021916891130157271523713350437174075886681824293181797283939323179422533953305467446756311357246444472423424928321229860830948378692630567764459033242036746156908909585457962492921252515206976444117532643230858199380036012642538591071633115631198779357763030428376673514558199634956145254107363049166405269688842368716350945865219508542497978669777407458941593652518004890808867212376191221773349360372268684585899646023430715889246388141368354925225707013671699970491200461422813893747616954921446536772454747468210180633915505747802968398131574298603169090680578619967478807954568100197751842629281401678183428523488561773415591902269010234219516694537347040817849790659950120692688670754915604826306350553646529793695267421111816703949327222006215820382974041503207020342387889300106461210185230308350473119998228808166041082846908872088761436538197245281630170594799272704169224924199763584037767698144326191402593138368879230212063138941179949917075803364597985360244403533838447474087898055766664354531129909861148060645869071510034122579640248640014021837453388780888813749507046993515416315924334517125280522176775202435553932976049432531864051040092225323090801660802945938768054856568623542441187714355855172502180283477064959307890159061825688655309571707510057194647943629087366982589145035746561633706774879470405686152561277342723547504995361766364550603165112574564968951920377503389464067615122601408738439273954212045381770146242228519694111190969594715092692383731139746734685601254850572173212245995508593976471543654776781253665078306580029501680606242799997553551376016021684810954036224288858680553183789986136473117131827623796812944765062604182406852131121795291836395141378404514311576214847856066902921382338117205972743939640938467176733743732918502005311522435709252623470595434578568207538556316645429249827768702829088991456068548898241489359624327199606349470055714713413919592144524089232112167962586501574113752045080945160153222904010965868031777996305690615478837400850672113786959957882587144523161791326843113041837236253688753272252749217119343286132533836852254100993007592391249060379133333708014429196778637341999878514264668326233516470785975459248644181817380531985415242255732397469044156889255161004452289108662817388202206405524521581289366744448044185153834443896343593990049385828956414586530647888021838142292044619137023502753751913993458664706131040411382052131900615338099189861170848240243228274410508321389730937515057746986007418082457052724053755468321430982728053370690508484713357642104032140072796284891502728662211933635692758447498298842199815287273981679334126047825292613953494929043308120275085467117850935123087894989793835835563621329282472530820581868372094679747368150855292703187452718005696912186441970763008277882925456551440840787448445984540704038921521784618822871019685558037430288592490730615306287866543585980015951051010911195287365152569676768656707029276007673141516346587008951719917762381712554958330845195661024323358415685781727815748210027580014300308288241475518544442847379960331235140011939074338063175853137558807678253281389841406067845083960649270897999030226918358742462844881173916195907901958175734431448934959021602805322264888288543702298599766183540312137005267355717041257319603579342107240841722100540216957832786672411844936849815226425480165414199240839959279320533429187199179805238850135107924815845872624888972631819510813049172823762506680333784880154816697262721544505816098138420565530515064870864483984529029598889545256447837328217789682565339925030500734099854947632632302977880146453323449610893098622084793370882588503878270297687833830706657182794720886179361675098736161154594281663809126138062128891284357376347199554740094518609501239076615209518989322488532724086157430195593825617210695328922314770100685255805546298379245769474082254411415090533697665470411205214860588985286306185985173873890070021809587022875533532778075878825085582860895275053286806875900519823998070188939922208838232573862948525539842394674347864456616337865577646627168796866287783750814178173359443169978385969087337222210887992196251963510212694176995082911363791752099176769728103068649490392675293108729960485081651526606140541340517340262176160579285009368637494146761703743757912805819213151559395971141979093870693516502904205464733294121768558041488575506892841997048397967063534735509549340697048619542443956130950339026097955397229561904102548920945761465250939676051007619002202392455648380176190229713098301969954437171410080065183929997913429279621092587415470645680754104134634356253995015749177672981387096801548834743119259341859868304817524121668178373212576421283882695356903700513479946824689251496694520612195565160817692956266283586470992054245996637394905700877149622573122014310522776798398225625636857474605135400408749905270228313335720623711265462040572780475434950488616027471367027352223284684648104615438495999340953008733238639833759360839523211003556066092086553019655414095919781736106538466106578040956325217136013315622804747435708476210625359349188581067907220103543679203293645754467910003812088406683094842141302973513759278091084631629573485442331015069646828961766174335914666972916445275497730722285013027720297928841250550154550482030033263285596871924540375494556881424344584006630115213990193260085153115212435931186758587648404720326590457521904726220047029197242252575672801722073516523347447149738149921307653464108092315043350905463455950336857000791716033599351931228722967002234799393183974081173004781372210098627340735775415847817776033241203127486566907291626622825270121894358790813663642007166154786428346323236036648163469739125555675267068224324719150427502356495323865389123006387450579032261818006156701476352549260910230070611978172277633356780435620781908362263523301365912791544469714963257252211871682376694523394805501764805728026852714698172850835471997696679449240919980845250884579131071479271948520283293546066096593481977879587816324053164559413205547755388236822866895595288488048770998545772704287498737236342113038758927141687170728140009548445487773880721950239362734074661162898544240088266869277441007003252410503608298308922797704876253801638722477820866024065861497465972731895004012704874482618455996612364291982331520417402523085637559063878269032532251640851144115628906152349094163536946868266928467340526706263548943964665616147983460270789833693820705650974291144556674068043266084557354905354754630796746026253342065554749518500721895767672163447473624173779770302712694029387989336974274118253116124129374136652841517292281745998997822308945091682844150350968116588109626556555786352444273556278038047213196047420446272536483540107085169550484384727652381272874035275754481192395118571725940647550326160736257574282074829542795401493310817619468957889949164355798338040667431606296053054701819510966016187822942957787475295371509100492338473717266269672327404997540352342602346456450811300291276919976160593911530158371401305667482473955880546713332984464492920083923895610855647318648325597193285447915074711950612597523649919840574629999612259360078814657721447736556469089576635060069387665524488386113635705452234623390089205034611572287879878992163197476270138292139246831960852884527773105037995679136994431243051500505606011857945855418746155427788143336300863088375676695592935508154982508203943626649242653875566068033847798094207501589136857994974918693392739274962256412634590133269314379223290908739514996907319988179965732658598931403033457201689158449249308678856785679827297168688811328832545413368288284138965104176090918391784080106633528025000009046938169779865422262291461595960087287464640133041931965250145753910680974883662992117538626220683998427004733692474388017099889045583672201711117047230152579579111844520781248256647500044843765293884251947836672842342770728693437160158957016804187002376895615867071458685806514453860467150196256682215968966926415437175213241005615337461908536847901494370715591402058303321794495851438732460954103033596420186635426233484182594151573173639731318420901321518733864861540335889846817452383536441836247660152003676680666744625409784924344041828677844452475364484163003712104516704952154411980881127005597887733541288070852238827734077021180412548954750930171876371806558692341561933497838967403268100683806478209474794457487700918138615890827213386322675984806599768474953884836543246481603796804760746152034204065031273911960024938715661360572351192750664087792843983283117552707572306486414219720295769900787852234960049607046136135304622477566170655970085769831721202412482344247953735139458998334288015689300715899520063667910139598247773755751748834729772647543606692229437505279795441083203101797854366256083603236197991168275404532940474184058314329702430487457048197749997065744741544758176908772772762036543035971413362974193697419039305474035834365468427496737015398688413926679663217166931821456859073270111054471768574351026331959671480408223373176860359695950313447345087997625548430826090222684110737103727227812427254073218357129743531305329234191094254206916764312656415298678656481494854426611402021838885293482151747690056847007306904336600671283416884666472782981735367319059461950383086995497209812397209413264010368841754336136623356194850326612611682519045728736603253025199723517172323171122302920636293313786980749562973146920500455658702187039749090920713909980749544426356872255698061902686297340857856908342320845953009438433384075229428082267556803452795998807175094415843973767124005786598849055906850754017633937004497850823955037721131341755301648257403350289541003593914544724108836339457058269269594905930892322107329783346778432306523827216078915761918669637312771058425159738456435806229664732859299285382090432750559377303370057511717603634519759614657816880731709759074984991396474577665141574646456866317724459362031239996319848702159886834155954141120501023471034428766915738788460454248039815492165951829862762398680926759368391806155801319659486831444818352854497126901705737721849493364886797272059894353697464652261088367587912834326405353266424120667229008789429694052141099724842674983274012088026846513290806474323426148546788820621706871595311813077165707035394823596976541039359590879765756782374605332155417872542545118382304709865650589327054275016049443139680132047197597727469193543192943241814158370410986262618389018143929565772177132970559542842868754415474577843815061811453956908282000633791397543155100323834644309478572086015447380982148509958516178920910079202398059575313483892609757278339697801760989198693605382381819028243384693235433684137213480596236464269630231402469025510997317288643974663589794660754132049933580786116909477548614958496429319015131247382828549998690204328828304514727380840703830356698441346490838755615158696610940612170787887351091651232726457175507607710588692721372172798396354058934209261810885324903901070150826282661424533215313600460017048116926164869806583621489498348300161844241478046590766007638061380304302398582060864929777161774189516147872672427058609827236584691425861566789100114535327232745886456065190236910315519827830339143326081236012980021674356748990622748542241557044085327068180939526659100131617541873686862767071331053306113738129000495643428309996672162033897557786726072242726243006220932562277512636320122807027970081244615453379330582748882222249181339510898834985602017028033674359847675184992308614479847634841549387457875327808998276551234746573051869829557678476695977222255780862093213525896022054163197380414909610128608917171428334287261407423055676208315229744834925682136070695198278184095111732559498601699817701931611110357239271456707574275532311303377614635722676970248594104802161522548434764470611588788408408763294724419432784418953285547329577193773343623383966306595688593319436600384980456849968144366046857088658861441523917472200993594068736241876909897916264927297969486432978588623197632071305045271034876847177028655313002721275448236738688101597450051428391903893332515562463489584721024610597566214887627874501974168631438866836837326162030551360284005900346202555704188892239025490532056918098380513637961693593293311541588930798243544826003477001460351284060792514439590031387467479179657280945365078785153663815193668680943004455683508339747472031669461017686120087976256362620556992516825412998443685209614858384645505612658955370229356412780226269839572810350942041473558627823833841255007787128177990053085933467286100283376584329032011909590142353993743402195327278141834747593426396855152480120398266149597896974860922087008582603067600532893703185022275147753447734885972038188547212258008406988331002098946711685101875674656930709211246412097501725341958681541342528579920310757271955102072147535253053641507543221752279986688676084043432805749561160124563996648978956485726269101874179219556866589265271473020370238507714349936638537062167472601867868167042085888858066505955790770046677052891852249655822018105107470952738858905699646570495511010518117670472375639650240752380460593897800126241529355177711710427331031007909570471496761191889009691770873635146129251637423642324668471494509752063269916661454618836756494083655573108087209521957002530802238843277374410699946848379578719106117545988865965595371706075479678095914695915616737163980921269172380286059385787961831797590494259055904810314425665950885541648468021893368340722290374348939255174940468257726284212730124061184869881331911893314986756753414672170678824353821063183122595493175161141125420078450749817764687814257974179653118802378676006503710283245800679594705703917286975820096719797168969539463245260622017714085599626954288543475683502474845206303633848583194944012675542822376358891905613894132946357755379280845700966761956907359734340331430751335758124765911222066742147385030714827778473747626654030271580022242421299110532137117421279419867795009080372464090119267474807008117061469496313841796011322466523867471029957361371478417449596580569385501683874859564971739045957002580796339831555446662747750090005797438523594486982906176304266511382421169074973188598148813389597131534855765619891700248627803096847390079651549684254786973107121263611417236352547897614724395379614634670335220540161885435300813976962138144153346220647005402683355814962840207275590436692559493490826463038039525013796554829614404927479716674073556641908968226725238703242426589374365798751688246840591657625380489266148775979694195007453636066866244977145258874239302914166086393148459855909098076156320038045449481985331459924254923678541528034095041881591317012354684804187464298291099235515516681502176306246154862283236180714697782781346488272740221624521765704935406811522384929907465475449643077003127765998563576446261753000230444001884903274902370771458520828941509508223190379928759115419127173010428201987947115018749410248859079313398972840752998197437048209244207601225119851829807493827804994077397805516310353358870729648335160452712183345785177115477646886590712527946687892645639048556501155167742575756989649786930119090014810816307079594378061333123749452012823894019250634991754412142477547995184675855304253283267575210977179129295108778188037033481414170263477553213119955654918499005079200917799285577484842220470587590600841502707220390077065084488716850329359786574979212231237244613426829064416547761562202855996476338220991336236070789045973621973105474631834106583068966426192309677247521845809812830796959992280721624276457192159993479017113910836039822552001505312728472714131638463392009560767906443577190141347242162944197769163298042120264759298391524529893550375151888875334773760561491475760301616501802608774933978931173697177252444333259829082207574462409772584169144809742988168233270114727309294081825046014307626398086426065547362194565382463247999875914689680244832598979392093367168537942848800528145853330542457916533762403278219854465655717041900181770432206789405292393070089155411968762605413526952131274677058731018897613094845701716944789505700233447433565449747125129790172929638394191228616477298093892369051232084122476211728176228690004754389358788295898195488241343019586517209672800134180737507252004906397778509958879429375307194417781931402681239990683429872597233928514239661428690460872471956942669497852346565785386786489091848929841947559197633722053854133041491464518900201596963083803380256771443892058354472504220362501349247893948575713956823420396367597547576924102449852768306335095911726803801063601533917619281721853170467114540891244452086464302894868226464073361966599796444839126645908056308084195689253743690511934290843172144464410383104504346011206033526683813860211825521492330789343271781524742091095966476955149973335404737962922728931819599960973486576768574109144991691187171143875565162776209722628948543401859818764014872133656651815468379352577594942567100940403759313270049650034054644276646600397935921736779271345582590682332601355482344622834227592806478348999139090745390710683614758420664159999046308164387140130817386498846628043867389262522904929520690965032381020740973380896910662694546050833137734520556779746513101285885473899968765383223538623838457634130822750554934967456148291012987405770419145915125181968296423831749866563940364476590504799820846530934787664851922066736573762823951681786246566242549161227440052095600730835046842093072351015114617136345726463966146967628967789744395490474236485006949840785442831043292142109183426600905971467385408623405808456106544474618997378012142889558395965919358283466661062445778900926242925001985293753108599497436602592695580185178318763125650405240251556080327314115949976500227081400001246183312083066435216090989716662258158846747910438721616463264428141916743380639221186756282308939277443013577361956819342971987037007991893651891127878167073706292567915352705435128156216059595449680644515378551767185426055091006028377652185288438556499746394301147783862017065116758973858801129296570655789058442591964871057482338445275705397199297139658133251424504986057846164360974385699037910995026472812600157466745133320663082297463937081887943770396832234551005212750712815253613977774121832470435231906730441083761234744400762777833511632218530901006465524293173205741126323266868932372612250474821979620646735877376752753555800021450936293527741341001009202516676362669421690016766575532544232666609601890923049106495949355445442812577627678261826922380053923927826077380813011595846020202148766067509976593996771798805230442154259684045465801545422888954892628602164944472450639464874460006132912510731711050875183914247956308615552115811805029243641571413995235633329860721166423714813265863725367776289987773291449804447625067864006238120229057955334072076496007094218843770078977665081863944224154282022005273559775737204507774153253910695424270613736421470236558193022017614625029863523274943050834796933133593891362191807339093304559399934733078231753142182384079802649153885023565735663405297589980545246234929953005771191957457153884453881635263974422656431445413370561470200477419914051337487027852562088847015954405562479802298435521293710062374530387265141878125081152926961355370027394234404907196899060405878118774284680826633583805621192923778812851882834879384220636738099138051954698541374014888331973871479952435946243931854873169387424308737785747336304178279451978269552328398812697104295492107920420114187412290238444652527678677827852464650506470401292381653133720054591204422059287795725031844181507613883154392973326753998122382281671817885876394778409117727204429279492196074789374886784687387490375798713527488373621802422531694791864660971024270053322327478756217215161972856927052999541042919071916803298743483590785120754679418441343320105595378050992730084340256247838071000363395343449791295951828080363382490630930839790928640616619329277157988386750429013397204768963397572471246581365088137040724177822357103636321338241495880315503594799021383025613674994016556585189971949399243482819332671510132344404397397138475455796127235872017150244949563108477853246938032065041962196585131935996137575779094312960662896891855531668973133854545360816474265830463086095536076948196058745214586687148429864005764826687727587615043642251771957645425346793770650818654493590839510825275351070354135242176001886911368884501206965696638732857938802107774269720915444753549365461874141965256045442701592075331015250821913094031472761074429512352632350504480027432031002442926751973293028004281015396958995256514936197036036163772965844168526626097799127316124708511249174103099225384260950137530827840554923848248659547948548712504069719608452778203139673055558534743165978278837172280841468266896986417729034782990014487648440221474747629373432999308927597721729245160530807540097160626605771024525810110864161650277619978555216140243411576652662409789589999548122635121940117351518947462478906668334053850825379430940378133731942766983683702464150687058791327770362322215721218850754181044976365868843077968082732856414477436476616682144281240402477280648066638716196726006131749995927431801533749597828390180395072979260853004178739800312673159677366984834396353483740801829044244751554672504195337065879450548100195723841034456841487179103016673898240153988072510372418667664628979831636927673863287321615483504558448589157348776875451953845523718662824424232071502815642861663095411627256855117751534810829167915846148832925170298003074359649135839949553992027802675290232793645216747146562919645372159499783141183294764198463377887705393560876979875213120906369697081561557874401168096211327597251971378475057652610729003645110588312582279579946953906263840481167952273609697845110245233048070961539397576475338492954360208772818056222074960437986626073300935780008778405458445369180460860962971668693391864798399361061541892616882297796851377706413770740993854155665308197664692568158754195186745206097570687598151545783262124250300705812910651155230409311302679391944763296653796064001135099161768143453609534922528563971643654559526276327692955589110072017108031982857154373333078044901105394587539460119222777076035411029517712565668311186873062858878063369073810098952603933928137939669973941912564541261566481215319237838333645024902005198530737061462293492872682897544200274179350906358024046044970722287865467217391860789387295368977808760474340186894192771474690943731747801120773159478686539408425280386446405648894490488459438265894981371809845033388626833562526644541134481318402843551564955759031096587098414436634321085359385642860707595416531312480970590954802542292193845088307597731200108538921265167581205925019231103750560254341181941997050140375784839293822232458060597554523424797757002293740424939856709636786614764074007217649781854815696632600009148557178029685323949711780700189990661676457972231269750586788473400330410237926683253859293938968385414288705765547144392338949346052555287769037614464977955666666855050100239355686848972783659750669949671083824900571731536710947506720938561473672785852694812274022485709529060342708973356303874149895505997995088794636181655731329322356323282285345300303021678528232913720315692500037708772033965440707303572541185507898518281362366040458479279355366396400378771932835102636211899245625627552592215089081205402330735801954927643000219642604025563998128836746325175164005870813799052378795005961439899388361012376735279217477462126763744669329590717351097827448814790911003452680538662105134914727385066160885274331991807727235934329945927603451256957569975152250721809575783880868784413991211277290611693355534851628615901579510045692620774003242299911387978805685002482543654416114032124950721286215144827220752756717223975720796680469271076959239754080077549975296443998368151531559961430965061549729764071951846937356115427963459720694463966673942578070920579565910015449316544719676992972598968592192904453414569208508094904275249264633476896228290723091290846584719984336887640034461136623065736173377110033234112138968197012583478407428718668005607280963159882594335909954648525186696378378753112501637786604095675877327783992289604777425258631031830676076425040405239447583658540415240500235642177435103805345847780653272594906840509949802273302719166333441722979007501451654217511166659975868987528428945242052269572568851550298313487399488568286280689247023938491444250538264951075172921838158018504861850090135159105174417770338942352240896479288595363377845560000228609431524408856021933695417688805909169537464952169761323560478115553908477106427594459739355754957475140412408573255643324174703565105039037775870573815256284488045945148133810512955131560018672448112333971270289577021472052567233618867643777548736147227939033980418234019056950337941578384587437429335641775537752491894378895045667640142193784698125120544629861939825480456938436623331650935856877837376070899776209663785956291950846573865636199721597863568937761636400560792882393148442291657060118491763506823212064868449037869424309411366659035915207360022010938693201124336238943121664421510455907029635558916930519228661479958114756352277962775526471024174043669033223390557872344628191770185947778820547066108805526621519630772665985176834327462354599969619941852322055780038964245993928148408939418256650418626089576150384242144094507538221332936061369137752006413325338649472812948676533400836331145187585105580497277668256364789368185705992408690361282378563898722280798784050890785166403923412375929810362344983139850925891382398043809358944884884246788152504063308707345708380379183530182564929193693586633783694706556689094966407956341641750725333462862139638986707086797242895478646369080891214613490202564457197395465436515530101016001911748766208240942951846953720964187374647503791485655570262317650143371597154583958659809159569232856184441312955272302877016295941090385433680057864127306709929340077603910931408073649538662767194354938233492752250896734511859435818430095289785808785615294952342657489368503257280138188238745704134408093792899504509476714559407698376355937622355688637702519923121011191549304995610667207145786468134507342689965732305581834597509523997934788988292495010156764107767377215524732528178259798952506552710328128317853732444198198490027715538401757237715007252916828756128429712332590569520932060410796244223511426883838624020980705347906673804158014385166920189165697027285353655123304675805143224022504279671505607652011772822912009895145821422358867350375206931264510457210930778999374860825318381864955130584415105337539605576782730140177590078760492105976447928070196723322726650687824632683746464899826844347586888073638882857815206505940635027983395580210525156699996415047855968496777171872201423160985631481169024955227220283352534433963435104859510735666815899335165956643499718369582658331845548106080197841373591424022564520562803149311845237372671115113154342723917048749724654889079212935414861919553506534737437574854476045685602109680600961468862678558787810109453027105294024232142073383795139536584095892407159345991332285345414272784019107664951891784139652423798260365749137256857160642223852196744907926929924666752741371423547321393022578092322820624713884386781065089596889382277539229020802680276587882715965756316907652660516284748712992015490230419416904362072507927702541049324882516061876178910815768224817224852113656314694155614658746911094061043917192837248432846607254755684600348607486744397078910313248022231494978362714633458340573723848261680766078873917160396157072449777361091517139817295448872683788322871021915981315326562087774532689864030845939947712099101342349373067314578636923023973725789877287851797148398871423958472936470218835692980025640197393403130277574928641269060390816883828317941471880219961131916291921753076309635668495711746109408100714975317488287789558422516527651414460904288411663901054363933600168435509075113157128769829345471817950596090832315135109307601159347692475116310198643452350276890399129141793167236741942601320799405318617834272376525687462604527085775619367258666321420942504678773425365089695186344146463722468752862525192241334275332628961859564566554842405915862308138352131711796851481573945724500298157993947244469413245982154779896514167505804637293912846757817178176685719390567633865063210597838155571704680637413864007007730156561557488994985396541049876972810351852071132247486410664754251896329078443613684377823159104707629906059496587569454264816645572678744787926783396322929825238225747458170381681687880824237773166176244560640109594634628593499281887851829765614733362468575666754358255275496297266709306013208671846810998089472768358692565783988074964043739113024671400408117800772242383024009209680736098441818585536163482501322280398924821235699662431096324882571797705147766474759456039857794243564407013926983902630753338048364843121537637110263804004286259661571099341980301704262319810845947399381570707961212104447458354533452303290129324789393731192770399889831029822438363418011382637476601783421731421545932135227674341473732078370406401831322613233561466025806723631793770709697511145557827341518079840119565085936005448826666870238060322361905372992050901840727158024827188427478240016708302410456865149395154123941054992958108596438797910054739395686946884122362681621159144982870520830870618478651581162251493883893527789016508912723759763192831519841822811984860460501446851472100563461089596878223085387990513084182268927057439006937952577193355126320029686150282001233023332374751030847087409328791981420275468168448729887655308331481952845129194578856644149274255751103660803716836280997753214953790457764726533346780697725644263173874041861890133970234815939209807377896071192347213180577735531808117155944748934725963040914666092557186943264107006848769519391742778745357816816457438213789047604551797131522631918888462559150157305607746603354412220130669262332608761933717986570354847174889985056377582560096735127115324993251268964488318638056208425583992634561282918144802660517476972510030313641198858817593286710789936278456397310144783696967883727421824261095981146425046728188481239288579349678617189518050896193271633187104480445349208610725269696707085690123030449328595764833320182463145843771450794688804913623135323986062835450085015508615931724197047178870329648921515739888646574841982288087503996643519015177236714397956000251505371329033879416288985507239736512755910130773071309952641316746142342958157239714590862840256320800760453802553576924026847038166725836599552723317318217677048368576555814260943706373055306602697046130490556188830032295479404941119172838867646567016171905937979692485866945789184071282374935248447931517570409735818147541735354555197510345387955325576906212773998551778720238484906448668924447895869239205299309304150772628346480229103902087690125203534720606147747582567131173131621762402145098295029811547444057870608632555853515482864478722305955900104237896101766420579716909050160166151539357147891490188443238338871807591771078920218928206339007785431819045656208218101476544100533877628663806413198946061302232374094686210371005520888964431545197015131113880606357121525090496260600221895325819693574881243803931624946643733655415964881924183210644932141851719703458842798416712133244597614937939320134460827928291274564978500035205329688118185991485412759294204813187743322713179546817183820851095031983770855336640844731362893952134246998558389240264245164116168505583229440176554300595509965927024622656898892715057957660762377890840722505541135173659372206455972182378315272346362503403457570974123112821035711827192039730199383945254478125613622870867852770676285972499557861777383933156228851434121021184340507354031327072253802096839128060833305950226477478384962273471721327240096803010162946270320060898464169341642489931209167579667492091304063729595503847676312059639521661534215912573396504834406429867716987588638743835571073357923382786257117293765905959765611849283513147886308930418455012811239525036003168827065239596240841455912359027748528062438137372517535870199539868243363531747020782063756151972537757462492551732453533917100082427253620272470693777890448523176540719153118004419541168784588028253814255603499591071110016554675981215123318799777236839424985628426107510650741457769681159621240182105656172283589841026735774757431435037308652688038411698719264723652363560798665685342208249279178397760184965947056102262623770927840324273448244488371532187949476250556350976743672784572937665741011625928280458578099543642846679097310574837651692402866400550113260837897051139943490826816865847438190882636860964302049664871118328001621324392577370117243486194900227183636795788547691762295832951038908237118598126690009633545367990024770799583553170488626694096906120653740576628001943584921959636082201971214730675594095622522477196911548147554773167327419849036732518974326896154661830483785702425940362003891692687740231617370962419027032821237711108769360734130823477066610609878276806912640271727057035047435076304393936474725008379969616615174306508647898552454263346179031064933742261851169459151333836557023294044795368874781678435982334830364386676826005086032531794999847602029366859277540749407687355555112103376398098656791890265116566627765136963631338601907476377192207550731773873163948349879820345179401431820892771948890701998876391689679839018234845657034095113283897157161233520590362681361155553589593082716879015861106298820157022143075001051444932536995005445388792960559656676929813982578751439809133237093008203855233279672507533459607624721417262560841878309937858763257994325956373050002870999206182636715976144032088790603181329602144748834094893956586209213706810510387067790696222330071051600280296266877572664321726486087816262196070137439412203492093748742523369198402023439829574960799395312208327598735405549830325535653128282694003678977854230478049760772725858293603399404883958274885257247906091921508794516418314458987376044781825171525902421623892033352836429859349259046991824522531038835131826665493703186409047659082387818423816600416502919794476183517101497313444787469819514783138373801808024332693519402659367539051468467681572609643319459248477230712589788676478091341623538165452382057270579410642553769912063990184858349493028060012450871150055966445383456246258341752867392651629128518816062802145738463251512300992089928773572096906293573059334477587194984260340701374862074982241439529444989634777167103203999215319254938183855719740763143592456145616058979280670422869042434331121536852030279751342524703078315970679595107964858903254189843633204092321906678562654016836459457362904849391203557237521208526120473871481852184895781952563312931182512675261443262041450574725700152750880448289631189148401157302444847400442409021402459274568551656197428077895893426455718966093240503500273450381824290844907022159771297038160413003360355347226483916301006014343769044523663752550720958188889827004208433875773816378239599739018359259080255527761747805932851403553352167613341210335746608360793977562405405115302200165818203072229560234692310826151202573777636053442255771299702395977104103203022103509039682688003756662728589234337850751412148317586915602210640934104745788028865156435728689100205148144051018539020027216104289828803389856905467601828688305216506048621036113226609126384467912995487709224342740921727598414374546426747094620463364177060530984255184506044636459414420190790070768844497592479856379589214478357027635617714444269524887994227179701074222349750748309260466158184103096314604444814530702704428978409801195612139760633646144482942914736460164426744037264995245451427394975988800750624589064301056133845282577067726488784134902481176782044688226387690231364839377016491878773553458546342616698413904545584039650721027578807768371708534879422122532976189735255127338015625996575645995640136950603360565662929270370544062935040493764338551349863742847028434544080229279828333381699795016486410788844574938530964441271557580826202818160696408722979218236869695057044540602654091960614108973133462077410761671543842785697702432760903800080703215344362090219554713757325866324868896474140958173160378199446994214005298359953736433905301831646040886734193706322571372217689807922356170318478829438039783196774495340002971966401263478792924876553130935279519634952138877796643535659189641933360410823585055873996214019567657817709516698596654369234419738006623286332742816786904474582876501147196465586040981427531463914555672426336434178632626746410342433919232163654654517853038123991610162787955031121793479586149542907614313900163060891387449817635460067038551414593368314066677831992778933287745381231996381014826510281831993941331805929839177287800863594306746934635669431451961350302124285959101464056022452082262241225147492121626821478670597088961685820136666036234661540716712041064448856994317816296992636834652675301792224097104677042193312800044209343569766948790181116569507532376538621011249685764237971134319312414310148339966303004456233782175307120146841902827778432605186631174467322830119376123936930465876203346579597536505237732776502776032245576322188101758780559396843525301379586861989277423975303477374229514326642537910401683311160921696990605967811877689541100212501770190328423874519471516146975803556888884014640693809332458085733636462536468197749889206702066022157304742946847934661205338958537170116514080933632562495793788128553273634736023995962154286321168545504461450310238839108305840654888101625262536283227010821562447826483105329782315665116288749502034713136226645160129548940564000181462239020693758390163824848606583778465187801172591465252573705758842956326972473065103060927328022529594523127515498002468074383417999510363210346902962053490906844933840149449814246665714826367879437671150943956898991774248135094993395614936108572527069303734947744502591853728741829475427905411126248489143023958153770220775020856614775505877512228855504419654673690409142970367718123067274982379785028415732288146353521418578463964451033999051874264224039073046567603700923907378523212157079852235435520312220642531459447896396622650102332661681959956003463701815120767008044802996348482919685783978724008270301790441602321729885798624537403454707232888183042370280883071724237502965147006395828259179897417685280295189300481312999473975638309768117617094105838555927171819586566619894877637681799996239087381043785530667509705555137545016352824767743907940032946241922297572700952995410371554296594599095817155415799700819804588284242581515759232389789035499354873612966788059755327115971566538755354070150251790880806815057654689480758935474194407605994569773544521864519213460038325468431138798661916615589250179377591607119627695578230102317303959169111900481998253557260207499555475394500891426593557071812356122662216004768426031496594385233017875695858445296519484361119556926426664154087261750220420332412908216727304408336253293097497958664240420777673158185482347918983601429059189881262902895560292843117936573078816819066870513507901898435318743841087811664356197198171845893032236920737689537437318176270720895933698753447320496089633041176509226943610785639364254337442718309167231054553078790783018316323610113988832407118124024913918890169657291421980303945205762685669359667155472606420455176560382082562555473503170171530832834535122065294640955797319837321902644832279175715172396437599635745831718080506373159917217745351686343067633368803415929998382952324417731606090117804999878383113832352070116955460298133266920458663846606059590772894062782214684232280453187893005052481925591950105788738184952834033958205919673682401431277732294225696571993777761540563101840078170812901282608117178479882705111436966172639183182413602098992734147352787809650328838565533485378861247695285549100962266936910259831354133199970883660032875250845339624677458028548403228362132680818711784008108171668568625367019888167285461457876757963289560758178339232034704498569458815102531072390592727219504257832702406504398715140805803957775607807109862703377279589991924330611236108637411426097647404923944196680049397201612169718081953525585950166677340873831083468441879595355866859827977517632958327964423130240190326064052708778386557352811844107836624439039164581230531970043505662292317900755804993039647848877536678951680980428055285155477389604158019357792636705782211116298145106419627199350836371353398793004926751025122644260453214558443617199268326572141148907053850471378425835044589581804237929894102786329120319047029085231382721195375214128822571783578142377838903485678498260905872171306205563758314166813024361467740524954167279542243662185244904614903390921746022136030382727820152523632844269516045740504954642431251197293010512021610800380475316762054169892773706207763376842212212071432739653564472179536604088136128961503412389368351301958925154842080159456862876990734487877412985738177273440923039867521001544577787603703846348963617567019747593705690082516920732147964128151097704591038728861159525372456012622785699689500748124108369473095632198872040614874500767768143010857367395005063502387681305305112078779204724672188964989859264852557149521927926335277221855460179898109172433070905576804939321620664593671041982368064332448650828538066348869727951832542128324136678057608048609747884955340979854664544127899873772571942958272543201830805491285621902102928169958996300302049522988157399436419457929096316932247512462753967097034466384105644873795719906299525048465384855225075353613294418002467482542085545623136283437623100039749844243046196930230919692868384454898672184080262853752012975525617724004673189951074726145590474856300501143214426455589716792639300618452263215202218288420294267016878816638482929552809956099203229764698747077335735451837968712023485777066956348248901886759446513991398698474896062865241395984460479229762339086343533592238798763054470347920438254418288402155444308033791392475934141527162043330380170714461750909364902579620037346332599829573867539627435395712780574237448279157794472801377503947885673124218483535938977447719316752780554194870980614585068102046602988973419904633523007451367253050575895766840118565713320785150981937022669682158652425904947127491057705931185018440898543719795256838178614411458936643823574807643205380581498930193406251780011200061726993055630647578670517621176024225980465628048922126544499298042985590183473765184328355690749429511346670044782504398330046627800490926584629697177300707275698866152616868134679695575022864447728806402971186601232375918501518496181440337676917225242885648996900575233305539773928572400601307791829397881175241179968008707353275752852474704209503208062111212777205763019626020609771406542572514819404964758221940639517727577505037607204697695511223890345220699952679106791624465366083333339906379033794782206097149168940097428693900338996317954871146293921814358776136230670171903640119112114093481622319398601873400279617690277792487653017801633747093177789212869323132347245048565698513258951369145401387767916480018161131410224385769454826491538449313198344949862007640685087549014983909809407153337600599753849843981031160270649585758912633634474804149591816072790270717477476416745214080893236219882421677453847923804237781725361906817788313977313561021507584362583193070182072875741871743150140807316230631001173343710933985598626211410770945614347921279514359679129852472703114767497392478896092410690897903237286343978912219110197247719100875217459132252152005735544285320700786739292237391431049456552005269982460355175846816275917224673592169648424446905066383782462840603380968952451499265787240810412452727132618166622030930639483832996433733800124284003558296869269842807397214371145325644791092581957704388387077533202943590843316124214166183913453098959620456866495080316817943564376089849406402709099227280136650562717245176635244505922515060663883800504772952096085828750851113546295392397723916968511833213094408365779828764219915097900629407551577951662146669803561134949850874845187738523660017966226331310547975658630860601074356408084454403933956969681195017927624929734701061295772802602714764066247798911204878581168319930998081062584648851842000314628811960962983051366655608110340280887976809808463807985821794481683505637287227464155260932164806604989485717657241991040898449699927703549000380657807065159355712782449512117078882710840748678629099155310266266305598799942428565410700576713574771111494168726752384574414386333153571916210236283929756629802095311406815497168945482674550278694404220659128066453347706957988775821728494501745051778017912716877740221053552541274225721317633315143820894993371374237260517920536057735175184724005453012594120867195562503356687022465816255933089013672182758426982425949087564886138819399731215988060920055165381138313428374956569381024317352039147593215689273018760023809561561293713556334797444709229203713646859151432732521437984939343422602818645600828191512490608406848942095046592301868636799646276121677573534541146699045384919695285871915338011327716154754858939129644936872162973127471951297645557333575452993849685043354694862652992050954910331871762013271135596354146200670204850761084406500462171643645879007545307873202283261734676172551070950453634046578728944138081302961273885736774861737950972605654528047609408645807603687558843585225316084324184802938208286581803238459963548012008932772193479916569643398861812055480897327564365755019822390651448283567056284889411634730966078321229083511224770174927308980954120202980067797670579189715795082289010924358486611311820975553904697922762557133228206537684023419958630043866083559223106002503310864652079488264174376684443773786100828711018897346566435174372247754668907277865179068375937717843912824569172922386513400702412917934398307570974208063261405769794215367891631822201896377890377821296666198275350372709102594100329848214756169205536841828802049549306348874774680181250185843980652652234319171441813193906978516645499901721366936458526672091370686573237332111881331425386905171261772174381028674152344867136920595281622278120308224803616671710331958288773271959352737720242169139344699733263762034279940974623957670267203834304751115314598564771065051331224118001240299140773321244232723770985347371000337643459974598554532041910352067786505350608422383386666233722821417666110260426982963499650289389060779546360354516549274804697966056161875862614046130382682584517816358439484877738086345981526138961879804999167308054143988021450318425751644522073946951966292556683783700418259201323358930094787529682743480935582381701331821360621374276070507669713181134118556618196548345203218474960116740019336639826247608095131958160936042920114517052000129379875512197811793029259509910006672423268650657617756309189195923660822263766033740294242653589019462298047598327017608402497850816021729107502828425991827942241496429321297920890860839652788711352621716126086523964179725301986749841808762278246770286783074364311180012623785224357160012642264234217357638558660083919909195589813450409916382638214628369309600507575853126808301415842480126630875309873781457391489642556308336650721730020935992910603281011971024453525339050078542628103378054047526655226200496228946573170458945111064553454275809095009374595881409808148638782693646273138685919999993740909537818562513043095513215878972314765601686911457660692652211354647932150525051937843359062750347628825664537594373675166109929788734237898352001820209023361969579293511548329080784305757834618305725985717999781900441245538934996912171104361425356876866387989120745653001131026988058189456238055279486392315260511908943479481736580414334483479476552049865262727745000232977610281765866784290409105359264538607508920006082410060369985851391175830932097154926584010639388786965443065293234803878815962991837887933363977110720017500191772610668179358861294270267179442368121605307390148264606595353594747459518315861535538317138625997077307636548946001255143204648727673403505409961565690243732610511028344950196267767875723998563908600333881222487506976525690565789275704818389198375186007225487438033693963329086721158238753725124261608352631081367427132952925139627905385613627523134097790112465723558605692693218346524383272875017069842843967088572458799396712735303866322414248287795064998777763965402421150285746325652937241898385841350352808402059753142424649592193428115991326483862290387295802210420536588379500208448057699222810105834876454901361845452384749787430562345267691958533904396081496090123910168490449945077672030906214174159012693763536167182408509350507757558295027247437627072647736041699735716117204432156899055551704177956004193514063060072766330589172399929783208024812726147366059770429649335411683366274670635368617225452715360666677697528715038844950585776514710455835953641876173634862575309748543944799156566590253951905238979208428529340947319251846697489746448686603995030033947022377181136657146728642821729761801091156214070893288951088861235235036155807430968005246040768657319006162476394353392653372837203465983164894363941979341713542958826439120496465619132460470538473621601142755025049897762933138880919050553250609989398335547124054336430178739818015952219249862394330554048600279452384839871386781172284852356588741041601575111226868759223154112348301114061317908579660108152952913088912131707743622675086001258906790121069355572735223535718783336600586185236661505311229230524811351842998154497897843121506823788930212962882304825685588232158846605138907682352483570632398732025826236072611643344045667497308002563829147216502112675991386257078978818637124121145363968254446663579967162308596687889642680515007179130495061837812839683961717675805125662873896796314273812094438421560311097311593672193496951665067927085294800841487883706413994983708399485809665690572400462041364084205506828158771049082142446982436053711435746025658041970201783741047462918333521781935234349919754367059141083245711554280424288250480520706409786044647894936870396314328025309774144396476363041802220409774584005886622909717260230645360735336128699960685761124940900134592867713511890904480524011846930644438332883952781287429720597001924107167395085503705566854494818900757259369525416100280642185014831477321190606558933015914794098509910552864530248949211427471219154362948094985926613644503669268584127893970059480579256143824778710455175020554694069248928281952258019583058774513722931919488793800795825406340742473984044268066907658668924638030165541858092813451467526103226379999024342526216253653752190783482131402151952331325576811528520676427709911478141511766375189065018896989329630557651422088080821885421427087466289845697931023082005854540745490610380495037700391007625385963504077532340672302567820395585972649251080826107169655625134431748796215065294906209340178642953144003923328555681641618027029048526853214020123116837926753856402123424813294372890060649300719875122057431280989008274859672851089158668403459201263301076352295208201003725230615945863278067423612635443320971348454690695657282870244580860005317420315240920796434468586752299526437516717640759295006089272240588532468552623330329202140178429304438209188224889169379755286659238689366182852360829718009090002040167891949241403910010782705752328851004483307458441921528009407239245440781925299750752458196629756158820231595062431660182201621499604110818978929762839641749206915490862240687383144024328282366426625244451060853813757441784694989271652799049576436242176096293706437662824725670319117506386625955540316061466298622108784851969177023815028788529165582574863615177671361665018903122078282114037888472796801165904106203167614434666175316367230737419146146154947319697607312784213599474142710695275022362822595353015713140759599337978074310907605099760124188286729875922135750620510541502668911078239388336813227598880814079410119422904231578426263374569212822671544169798575712586845542331235564338463188438042041740543910601416182796584566498230975489354103296263234043778059183906153975855121197494046481172295112699092622905851402639638100579359892476393451493962986240160854866160725141348558571245425514029207292832995964618058652567818224833256600326129381561474167103532834090605418874070104132170625678073243178829390532095622569777670286924413500375221245375651602242045428132127852713296017341806689321958382702285505099705230401565410286810144585545451218915190989432470981168385659996679962622297700844062832407249903623814865546001652319323712719582916098508735789783479841256146285077031825280961086782611914606163982214720407360452654897754077717564635072266703970771371989861213622938129038163145056125232161828832397805330869773092706906916985042317089132906067309721562428676300217343203775134918717736931314950232573493425559807865280598349473748681565777311447143282045057744416302098190604259852691171139409198288870924325433125305905692387545749945496914011609842893690589530523446874628366365752143395273890383044643521226610944107037641993179782479089919215621260213900843449243754045446099959822893848457385703332373933567801533706981805332563532820847690027601101238908641315175505391331535845380464308861242824427565582811290308526335463141367627564268850960926559776107054879402849094431608821244983055006110197664415602995016325844261870394188980528398511048681460165280846239836501758287163763391407600027217994714878082492321062108136383701455670692072736841261802477843828511496440754588583813533351281778924834686921912343259702052971163959499297202416727055595096333206095094028399004718573432149808064084479887853720083415846853825390470010305333018585112382414693110810018961255492985250257994416800324008921423277417624456419466002195314271108847348531002483113445563394450291608330145313626933210864438275841942702674120372567907851991181392538389792235818346841251675270017776759746116259700615799445364582644371298191947360991873798142767421921063467118807963779560766369086372767771355976674106091220327861212786446611848442196027093058992610102277994215954952480104925285542863300288172053907359925617722426042926486962872321931623359384938612163751611771968871805011213100493672760785287959762155583567278436591710138718539568098031986796241674021745682944811486830749959928517963795480728547534425974003939918578034746076841650898186017537976567446060366664724746121853703318785183740507413647635551581442492711935845180108799746191333506285186058255546696839600313111428170743915231538700979497927966886500674619776496689151320221966556491340114462723265897226377210295317183130590644251515037659900830320155122567357768837855509209718669864310865870402930341632986216180783050062449034578133112112308412878893875502411342517222452710708646630320932337182645021280728471757631709423544204779652541743273931770417335095225180621911680691382900226435162161624623294327388415471979527487163951177230056402060139372745822495713382814656396661426927278913766027798567558553271743628411398000804912043753874314614178749371850736853946230533561225890000410106584921115819611227000453763416170225120504907513340116315523512543287521859632717859298167262434387915151277424018170783865447078480214617194292603901280748744113028007840988403735386159442352816374711884922140422654632460218629421938233097785056342698284550036102321942627708235621712076109960338756064070020316937502623957002474787989565119646351478554297558545633317231343266679296810579693843274219364958046405380493275583213800551347663989661370259448445364765201981637982911076793063715686172988815764906767118172864852263306715585916186876377881495267322350001298784046927182917470501996150546843488138921423978596029949248914713917375808645556133057788172640364309758908668900074271153862715388836900477882260574026526775456458123793050847032607532898335973456329967833902014522052254365566987431099103553739706360823479886534046230135123278940013161116781177398619075580742306254326453162311865164974135701066066179197333957403491735332784636536795581116620210342940019938537139323276314565735720991938832635490250134511611762806684774119607724432277898597833246384372647364438916799283011042047246411742067561265417443290711590975673104275333341740494756896927905021256143252057228738411787527757609735426469637541054382850763115866113422580967441475253785930994762653650819445926228795675481143224755517403168484539056328964442538628852349459997783582628883269023504458681825923581811431742555587806215645062319118110592255228473921863111726011289150520183307198372187355065212536553584346509293856241481549732270257619283352007321499231034905835919163520425048288920780420460505817768429809948982612115412568135893990271713508769489436748059755529761633155097932096852249223940120537118225385605517148106497337337564799044119909463147996937788834092944015227775395794390304655599916357347500771281460008864822234463315212864720847557336075440079461266075708101451638911992298105139308148111794726184197431421273555408405575875963834881166102402900642908144420521431387960331127475942412424722930497142980017919524339426802753460262732665969652509861248180452319015080318276813138563177720320897587780234718444812382200111779236254922251347458823626024235640548627997876658906772756382774831164366999707549635786296276824418601688160768350617381466299003533338627160226619792025594873661653587844408918585419612772078238859074461728305234626579414441054326467806941207225856525103912310216049534019959997139720569579105055437182280389813020400876255176147727525221972753875083340959572714560474669768977462017278367164963897941493427583195991932626054669306096020129859648506386709354585523237986101385350795837952246627608317536859579080474698084532017232721687696270179387688513053493453191685999053819481637419446778690307967195441644619843751502753096639986048580834915275753878393469142146467702185323931635628929675502341873090696443635109169724148876930187653686708294213571646270013831988089931031085508040393615352895396717565298612796666129946812899649311461146290064126774599936106476741453134415246942186202636019213303383715451689878936963863686785782515547881895952361929348893913587690539597544016260719174292092831822372839451829735441500215477580514128945084634177968277945383909310356140941459072166534971716532459877598102821037008282935092481428687344071356757109381998970679329318851384637425720777202593615337526217030544460111636974815940503519865879192338343642054749570570605063007514407246443053620015036858564615688845560907128656003996141982040115369977549670236692886499895165605694750657583002978979133597213794424051691971480639995647508974492453662755696299087264613087094215588018475518942576303275720898830118685564048357649443835916559916861746872703873204406246795213337469549722035866994078799999627059330613229715340596036499965760497337072028207782817911329007359573367490031013735355636881833016163774072735859165062332015686956644577830155076428417373303303784361062226353359882401909560815908326507540705049022820629098672609107975653405230044706746338042278207103983524731335705184762119084038620593954459372558948335554568406426206091325375495996583191693450046908523118495843472478245038692137307659290110690065586170994932448546868802193904107235342039578468570171017126259937991995514300104328872689188115968218850279214455412617611459900880788997004930986300485921041734131697766018756789490184050495462083513009181487790739659230921067242933241617339543745388990828954450926609795425930225959420398147779961905713268481823880165876838625860013342155186645557586620103513929272561871558495675221548213841418258855379271893159360145010577961603403941937900675496745750409890893533561352906219187281715848917939793314258620929825638854561484147223711370634046167729263461184150894082961844887893399070247920418510981540807057658214733257708560176005877441920629937968327403022042200730878328075447064029197871110565660239686754508468413514508138279052574935260032075650829244779365701867201214307413907779900698028490272038981215896264744940271018036356042790275286077680498898211279984918280624657716589864196517810178324014720518691913331637154747198465488389303313384691578937882822111152309028343809317758114044197666954309388687740091544226542671640854896331335360171840119845075904492623174813212278694013356057992847083056553002428406308422842133099185299799693757113545382343169465234224078783616371824558807708343165750490070182178960923235306081348653489079552186083470907347838646548964195205863793364895086944097124218616241125835593861837376482398099891458275188867799022629630491910036472972742491453998553361283232274147845481413040442348003186664375366670801819552468949046141528634154187448408306319887204238599889006455647023840202353911505322545028424510346611364397927536774617116462035591903965545603495245432304158982247946901450047081287477061255778983945049712996076807163228629306249734339690819677949560849051424142427811299220810858290918050291450838705884478016217901691183094570553985535366685859360258432813474828835904375606409813428242072561705269100943150248655369946033305412833770014415280242295708221702399152918855491395952156095649515891439010085811859894431004437598238585054815753045198416478150477319745174077550100416690160097542120328072642714953530050147790234377994195992430900998250951024927242888718151863754335184352158925431743359159848646793577484243782181162861573696863884606720390847786797891098193120395649530920328367486334450018433677150054707649727963583171157771594459675639692083507456719068455465984416891233021445442665314620085684323643053327372721065974550061995013082617069930842418918775579417546013643376697367512610026923707611359434365191918161393281253118467276182677803209548289561224265324591937846324405526328530529923494775434026449827553736436066182734027750978434184149917333482475550874447160031009659014643396877979632046819578902981399859358559764082047696122469047776740728312264927902019750635517759866179283348095813488796186141946762639151343238468148972919257458754190762021984355875267060874113826596116400828650268574653282233948326092049619844447966430004338556648766133255343087635629158372301259152207473593996675480406431484476913276172348798937379211925889131074753947985180199624285578605841338709152373325214179775052689379841617699869023333304691872687080612561896290168810315781310383200618555924575004369313846806044472803613920437213202118311514081049690274353565458972574975577768425099488748697573275187841795984396433867284176905100259666130230512016498480279963461675031188039545237025736544072543810735788800045991737515952608657222095101764319678234888800725179714894592068366364277421964748229136568088682859510121805341480595581838224599420174831623002390650705897379036826175843609393100417008767214481932061092290941845081344299805506769312711285115225816420563416119076792335658287949046221058382274424235031262799159080151448413956371641493139014267135857274335547411451820095599397394057240303345405107334816565483181129161235367913248954579877489111193660132637024620599796497380167060754782042435302211153699131908365772323172857410084980109221335591127007986906810946181333667052409459201866908870512322841602545008668119454244289764246623220417889766057509169251840466024911337669094357572347595140145896624286410147463519545285151482494553070955480885794216120894242574009709045508873685786450966715141606497035324831979563049665922507465437262937761312817644709911123566608560710448426453630466878613030694013069223327768586062753642868205282576314359239186177930821156990775265375226362720425867183247251545565121589504018142445765195094603805240821765807065669276121680387754273005899512819635060514884670292992756562497245469617807562019674604448305535424138636818847090375988506189867537818835630191583318484517186564655506040022670834197885038415082119953725792914988723895713587352784606273641386350285306428226351737427133390720035046800721852205301180882065252184355387748917661724323441732705326550239243324374903958651985296110089809724220341856013683417599970642504349191239936030404642390267942083454590875333877713836214809054694334574993067263949368155642858781402321175711804387090598552646464063373613032081797538501141814571574377357927770457894797692316203463237127046186306775367030997901330092290757202375093097460431040314357919299497201314783559866163378694122747280386572820479255209258499108632699448646390546602107196229511416167846100171426863423226480741998931623484167162716721790546937486614353084663689869027366657368020094729680866908568492471957825878961793368171158536521402511851909565749469698160942495646128585179586055397385506383945970649274365170006566403055655430795315046584469751852421997058060903519936546474940857343694068042285081899498951609718618731005650941859248664929211643824083754640314003885816991856916253636286281141782666547230506964825300164272721071096423559135854651792994799517105524140290890466282957014392421195901540372886582976452187877104259978667278139056919974795941523790125532542669092596879078935883779427062585644430790747776218445516544481811593236331417805154050980531372883112515657897401133604753294744363531045508092149932284600414240761712680054089709494199567378483055486804958563801892407949212023918354283005005982179542341841061276858350939745101300716917580796227606534943317410270934376121483436121255943439311075083703231400021135055267772487879514090717666879263711412329695289031760614238388438278627477659166187062409614888401128136154050321658468459316182418659736538148682069374422344268567023009320378531313390183984348313977830788515064491847714395418518651633761923166655972527978344993500739411741967233947300265066193099227450063371357156735286417669606127388643300177882082063920220137102522101233023019775214679115846107474101556808398924571404334342837517659721927072667548296157020558694275849514799990490037848155781591680265212043140410299380263031125906091643465542981445604691673716221779298796350551303788223279889625716544084026068651288178954626467355536371601528773829165801891949681884371359876949845283040043683352973359060262763360995545861648275216474396179102736460318076759446954120681008681691428155262763803847733266374039294737629530484783301351766829576361759289908510288781390852919770697949846904554462701151283838077204270059257685891314215424393018283861080526454162987550773043282166033775291710968095971709330122704194803080777893811140334644787849616620339124632142317243138230682196588469837287537919762000415082564454515478091553229828798074915582551331095125839897103952643793069560928154989495515136726284677805227338167676048324999273725162217679584126908984665381577820498374193314604062449500699325244573678596303382014838892174425001390636640313230538511827767531756197122781234720812166072665160864441140213557543641820243352314373571469020544554087287129123751585494422278599726358701188785809172027407062440081633261414075835663890826221604900241653653769592927251461393511359620373895175803956784778334666832263075779779649959415458434472860849622611931424433825512737674951545284984433515815840885642521995095398611778936951232934989012553412635430510413936369370778117088871601843073368113473584781281144898024334777220044025838648107996283681709364186996237023985276758527985669593708765024681410903678295377664633435138859514484822329709880187461794966716313508112872889412357658338263769744968182094584822066887325639068072952394104102688556355543944980455819059077479286869442182867707472415929674356522933037900376138046839520019274913744919584440805090439932388960439125415641991905086383463627587094279270654163663044100504071469086515722581608892523746227024006241186188076457439963208130209369939319521939851638264128764841582351214457864220293570257072835033984181009678271795443669608155590673652392284951166894300706811501982628654981635821382749329449901521215477902528672181369716017368245250902639588257275210368963927309790671818618161283825006903783664235021111802383266974801023621395815096573208502621257760589064408063206081382834688935811763270347805614685564149838820563971121889818192661483607033159241723294893155964557114723840717057256529039030597950888044242328440524407257057475548723202287333020627972500503713131516157318065951695721577102726448572267128900195513498994212289621524579822925565565382051948386120519260586857231609834936716642026124968736031223999927671461500105340789886980912632932969047090717178204120103615401286968482653883017694992674770849167496760335510241319468706303797425131575646730494870024601509457194781139743833345879869333075070400723965424346839464494208650729726496090941722944444377502139221724609006304674095534464860474515591541078059738771138470080448933355466609491397344723206259217276711021021491637124945222460123597288972090600756942122949914844727824300615496049168037399207930549746886217657189034084975155386966999474773888447983741336156196992729614863752815218605072410220410469863041604522189862212897262564354585172687394814763633713581684071871036810980428587059140077281217989155491182267425496423257785576911690769004976038897536049253182614407790233417941084739758019479877887462321448619127018969168068127023213458111274161648310383487304191150416327761836930896939225809320989197751115138300479501616248892182653022652269620447338202918052302920167957699223260155439803517227955087975863108578398153228713088273895885886278661911779866426669851943782189721277218703992258197438219346010046882528524694913200806977916644994109423727364651008525555039903648733841486409824989771287356599827698688486657384674969448311069564541027047247022019246302131662425442168988688695706365343009520051866517820564662149528404316242315576525646237267732313479840978871909436686328402054947482994437980910529923377583029222181336156526624869698166824028661430325197832844095537818484274578049002717160738724896035503692828547173309121815413774554609590607152493421768814095210617953226982489506348142738801535939177621795716458494479657774424370768303824180742081560840154299518863387302428572339647091832988132668371943735233816993656227472907493910482112078894466296784679884746287644247143824240304995661885746284002352691267279552225618574869612310759227227333603756324907161963576074815280357126495941919332718311113247353068153769471824453593455371769645749547038058997269008954675608926457106145824146843097173010996680160279831974944954353022689468963320661596587133606256137416486602731226337456492314230025304617591219058720857771738430224573875548735434876310035402144299924477382540651074529819037593132247052003417154978683952306043318981381501468924985569358008452966923459250352298842054861096986347518425765765186647284194138507872211917243910295118543175372078739183835724419336674439630593853380869054992330285308275255463444654903387812291875553559031056646284534249901159840451867280855534114897220206658804961711984122748003853150446554278432041247620802729517262687999865923388023039412278636897781660425479795759928591760697670168948676020327643171903805222486104185680258868648989387236367963473023299801318600205416852149408906511474592838745509223694623558397891622279387139663279166623761191013988496188823861108628868369377312852230376996955009131155842126663280464490037322658347970346308676838142062399697819292415959772664531284062944019739285456259089169348373712717874420653026807430025877309024103432706228781847399986947007751923839449576165639117090791747101651073105495640948409182455583688894086457118721418771083079491387246433561734213976323955435113542097147642526408911855464029876722278025192299361833190199047892674354591839912727245818273278035834981811495329614058708609600316449362689901247028326804276185192343535773084361232275547331357166378553855626433763161479545023940857260011301086572271216408583368750830213559046648617050868416093135669350655856263274836377257812922919764752173301751152913021854531645163886874376242891018369510649578114646637682618872559379418248365428744114032587421675528275241256159396192352940275319847702304321172771393656542993902194027888542336469992297401883693527297976490999753025498398351327231713597470637739723145680421567252811500690234324690043561461710424886138639063506023110089990790393700469148482109533922749177940188942313453591835656399045291890041446788230892809802764445745093126171525460116158591621370423582040981087458579764755447821644363875812327020731791167089086437947239815416355114553599752503442943830173831115587369186428937928351466143165947859252862860924068588422075278624665984136460491162976764571026857381521406078366893559599059551557354129081259543626923788877170219017817189272938880932413273150555295271628384577931842236290939644911234919459073442583373221273740793571270171511706178916436038945445691802900534056506420049139074995058227122071411181581268116389948620236973121292887208304623501037273567009211951220361001829937704557176416246435351406241390465888516810563093763396376412752927728368390127605580346510295857891018951932951724684945212894224126855325752434193139677693795566713377738853394131208517852006003039929956155910782763260780634954912611549755534462480549343806418153062039349867453799872801894425975392132572376025697797601321537110414784466429794688315325091368306373327610375741157563507159727621503819618952874166732320014512006615872289637783292077277576213694610109679445899799494325494483775270682789627035834512084050430412343739655528549399866772638106264972120471311157701727163247600945951146717913318425024733081231906417289128918895396577430916156811279431200758185431903420673055882877327575715204726499108582536907814960032991612656968626137983393646148304005508627782183959190353529444729345876415570366655851768015949475649523273590548794124289016420030106026738407010643821346846659855034239702077570081412367847663536056197680092908534858204820326797090340772507669450915745288104898834609256176380533544012218006944701570222056650392929551637742432525591848208799100097527693754723119629010347679335134972318096075669278993965066422236997702721825566310328395926426697381010884318703980817226160517307756213205805530668795748889307961674944222295087987971832537061802921040411275288462813700875152874928961540324490757466553228324074651127754801883661725304834582169907092396593902394297360081991825165949375547797902509494548578214942058422781773816563934573930535046844482537807485275384593287958854812708143315052031189199850149029031783809935183607593414908416662146169231543231140157481076540065030804873050801461550402470242336995937231356027845061970480412597702139569247897908308153850237377603354521133978396391143595110596540464966969707223853303797837809579918605667489834056004661566398107590342039668082058031809242988435153977442022695755012585512307599785696911451582317286662124595317836459430119414632471570507914501251239818238151621887638367979424178809596411654469722126985409786026198256364178620050907554428450097009264379701910238935853092457464016749977898271215295794323142330003606558597512529867348921577082302571589247638680278251725076294573480963363122651746036060370280794443804257939375688701368584882165074718340574015818605143377212135009400083287648138624270148373709736085620982928891937425918516561883833202595168429442797683485086193510670814664724408834536715362459188927968612745282990442633841444157743295741888042759655413024666046188897226876365335689036632015351411451905604541165402975560822998839387159578194971907427783061076999087362363630012332345988822114590857624081669514131818805293566991324333416218745857161804073776536578589261143484812535988397745496091740206929267571298205863043979700893048530412613263922661004691358041548385967782496902222493055870964290228540641515242123661311908688026260904570618441742552514525116299533613318655596046300723148289680034217950952486261368359493742781858913029915758069043426014778131703687873667990644318764151490924178034489766485635785175157418759597659434805364383992648498463050111601121016418834123007717847855907566471958963772275855187793094483756791606636008812173440478842082466235255917131147800357045157677742674955584295994859855166261635349633857628614361483404623253307882114787945823004473670072478790660792222651747281897633294697121471019770777858486694717454668715880675168908584949250694205879773947134189209390555467105132151210721282140587542742270286166552115754191462669951452910927756291740948288316875885818466156725583159843045926640101551930251958273249738257261639516334866725845425036392919461984377503319155199800149237904042110455329252066749906182087354930327250136005093283944608630449161574933255144883985450915390232077415539559917701760570596812535411404052599426147989574695422448420079779092402805470491763269214965933981924329514765890925979414469985187851487414098999595168314856494678670120028205425251065381791585974851193213548567940827990399373546215657164180253633863347988431527420166702251988152464907088279339470482813227865158779454753271851275095915646666269740236815206113436800645199822949055014097608106892804611077389137616712843121500739378304110511539315289755733493404962947691164720796190263257258440688346633012300668529531053674747035767314086326985569098906327917708871172270716081657806848090158803712723980828288557058394523897058967042596872607994528291617231785501418880139432031328964971434163003396037483888124381706460018695382297809744192489797243977428815351028212874596785331659318041685402345166224879010328286449437906710306207226500652854485951458305788184911765124570458742859013479696713148784214483036609182027845134433318323529106480822508914202750204974369988209906173961547878235476732562650338533655357342315816094117182637288086472730640670363013462206557426092778643207740656826397549866686049629549629814645030773160891946647894091877195861572144948495388273222098956152771683246620394227695543011024807925842106430023240599223602838375326699673225812281952767218623181193670575853031771165584400500925149180866420146195923863981491607958163889190635624097796585837380097753396432093479196974043415734229870183832802209442089599272601335478153153736971884325381459607885939297549177835062029034181418275820085997751667337231150625269991607633137761615277990375694124981999654555778808082314865411919685259863452066374565650349703881801664684028415446172855901515588642473196789416860096704859035550885333223713555574916881986314474856044505491636692272208854584170781867602728480403254912799991326171357530911778382142275538095525312469509788207174512389862533512940984189432942857771142096611560998656585047057143977952864315447590159980021198131666012931888392242313994721378370661128872545880379639879446351557484211538621727270773849290902683343103903766546268922716752567450023823669845810958054237712941615879331109659766635080568909683996424053896551485103566218716701862666895539877612236478887315034774038906780331431918310460772583155502935100097017808690655568407817701560141475525206604211084389644162409656556628852240472741284772077879902516820007307014678663531163412582642465459502636812913342741035302678167055895713405078659047705487791354302082262334152091333471981199627829677000709193057964876149167114837649395742595959880285760468163682022768328773452159532996926861033811374482176027969415887742811462533709556171867307365744559151989766399277842305095575192115712180834487905744955835973150478915759571079685280889277156911647527265610638477744416287878774355158027379269573614770949040434260922423316759189940596822662357091694087451950434427515424951654420739018599710739388758317432596138411450258947469929292095924046790211677457762097329967786543448163236716173153893509797717092552005050378900137717961945301533422145841822387904514416863168841535225125523606069450967307047242991716755968159346632315202559397124926097468234561027158575074670705370799233962020015757384269807149923121482213807882631406348973458610617764361140296082238403041606680943139304495820560510521814556112300152322821485760855068418050463767628966796895688980748661804267709708242133540465015446020921186303732509184109946215232316955185853539000865750713362406210251991739848562268756568154292880067548488067819790306640225813612141937979939501387185041747458756801593476249152404048934812643085519360356875542742308124160602537146041817830031043367128450230908641611371098112272424781517838261554348189323625989542387058290312613593074097692211590160514015381808120309879465657888213886091885046380188894120976733788300133635607043740465725824033029060260090333261136861171819849180229111464178206742405271635257594515052798345510426903227417362552879675897210195064737480402716334457514918898276028011142448759132491273637419337569083965922231316029944551908694453613185011067655765454113032764024007815424086707507733970894147516463256387673815229361730394547777683675402128732346537296133102644068042647813510191105251216309419148042719694989773846112596677402534462995334333278057574867899747584798009254246592690357159885124341961863265655259675457654138528077360963163394373145637686692970096344870160473256517421899176966808762979411487205704376538112034933887979506486887643916486497822574613838019634409357846132600501282388753650703967420263439226650039162689061330085073137579442389670902474769900071339742757966023780482348249142651969057332049758782532936821080257604210054709805230418127281619192681786571117190389279918641060931861566702333557586694771364681942534671703816047865854312374775453786513160055498660782419998514718058838354128557746866501289069949078754083829550393559130468728011531824911838311433775355540564830981323764034135137293006855260402109826660914166515845432508756487965972936991016661888008279078777269775829645477381880223612472947494258519552981114432320165244956567768489971713112744818680125397756538301813808797256209893450054736887249749632396411759566759268382054288329313120977845407052462994900983620234846785182920495919013517911764506372346931707515553744726366083284881438559641329940546083580680604071672660465689846020318760168809735445373165637594676279366047687531612210878232023773767268931983159106672561943601435146941856842586178849276122595038170564242887840172178210876774822497079962315416838631009014142656521946528379325569732252803230998323212036062127275793522040722464025523316638418692247268471174080998101397788451623619552932904085203991478652636050241548153649763427329955695343364384592342309033969406901853838055583702621428668403923330066476544151685482432129334742094329446511886892290314727294950840140700525631365672621151883698235162896363193854470150160618729545852848083868291936023131426728985829172708949042865537908952508844007739202161666070693050264958909044254333317927632523698887595022572964562565166742858308853619553680710003245207965293804592297631108721057982344338187075489597618745009694521026017096373569919679877617009475417284638069708732890219587958085393594064416193068948437212006848732553485978280249755625806853042933177838796628479432355275829876006211795290067503170209278293916666256050600005108623046253966285484273178152066315433902246754512228081948880470623357950926922137513256378677932690820546829075082978337949261661966302593551168525085790101389502726385608302037483587670489394307764077354194287173499967439206311122350779783972525908582289600342990918603548903514461089087405910338523740047654565810512402808237825779498553537970994752213945069355546816552070095260243307650020517261907717600181770517893799273934327174140979469902412024085493920690417216351663219881695866820032086273134740204223233056895092820023990001654851806243873345518597078644413574234603864151544848681891057964689472486580716035109005792743450870607272030401366907400047725781111562170037328304461769496321437157785976058005270829716247465952454780952995311916228565130052945527460781897744952573193557121037128252820187141180556249922088529225269025604539144022573890468989351377675885618864458462619359447217596234200128803176586867791446904892867317927883304121139885548378806264243071161006039614369727101808407091007367646038559813692413342023324514343235317690761897768737915695397689768009466424208438310399066913813181202582288024723924665676595475605487594816498254755392503190446801465586962668717101060039374156579548057650530395751033132103353914877416218568106722965633533337755167586110491081591641838639905953722441095811520241402012757231122897053215454555281543145868328249228169262561192114317611090748421940214464765377552440715321764655307462140063676142657592733805616632722358904342209947901859922802183631007685744141213620952627866126931995822945300599027199581696216643994413136119628999159754555284921233898677520444758304444838569204899895931303527425626814125021904008171687582331936687690684766212552730964943914371453496837801555742191679079964207965260439780722924337104030356245608496149558765576159522561796256759083591686938995613909872320589549000660625170696877059930282757179703023406662175846443661234735594397985621657672002522626250914308898825838297772664947934519425801216570006162261183139074066421819658450305363394831673792463436204200358551820700959978687623333184396237816928352897175736074022407065823254220985569138726155105415860851572172048282142845123527681447723772532275964317617849550654057838464111594234872802509221952991186744423532353166950661074112167880215409149714373609420771074015267491111953065172147843416811138755242936776957743994726732504995234547486367983433966807686472278279917224733103932801834355626130975913532891477435113277810231229663763725069227979501897618150157042962757020063362374786481581198201709796614183944142262004037582758720970690046291308271613798842874190445863853983339717907769560414851238972462130722665039951174121270282321558254503502631559858428575002338594935272434119187984489849005412556521425062086996640136828963456457702406798994884079961621752315925408082280569231144388715904147930796616401342893660548222185839470359582292226918239191112251215056526020129162083489932214113784688981934366698931171609600251601486825610242546085743271262327115998054948281005913140484865523541088986220094543303690013813169255313671666020741238843640897597914890310789754192966396908183361937736987816386279438706297600610017405304262008734819582360661870809220415668604276184483334854188211955667919887709744857388557328978579754332656449528644621442507197219560640615429886391612766487679663740219495211252695301612282957178013957116892380576045760809663692094360594842795702883941759680727112372960351966023258484202695378755261745066675223115064268550799095005303420149101949469380025618645851148097338454406488771238276179131544387962960436863109310689325634130197576432016192037036796934999368246936541592522961870012725863558706633847282560428143969820784448320807522814051625203470894569104582959550636370319127709571816799798511425133152370268818740468683668257550724644042638034806768341935908240684103791471543024227000803892949122449744919756123954398404793224739160802815602432733365777582288695788891495491170086790818680567147887995015349596273666540873880214232464010900217494406389587803966297165182916829866075932650810828300768246774192441656095878987919926542173504289128655080066985136115513930913499943321633579644485720103553262220078362785093496910584829450270023902218591475954799189518904639912977626908407285380809704362528037412918934898627315176347489472299611036027660613373177848184923180322809463627782462485038737305825833823830323203543313374730904069956471181751556215009991274262447000201543738101734134699085971493383051739937705591654453854181599977462724845284428987767404102039820855189490095339361086235083906480896681639167033732816783738555684082708727765298621980448340428570167956366084961391761835225300282664447104386836041484549147780583482788122004101462213177319161129133072870524357086564742906432232922725751135835101492496702941021292026050435876110796367336748275241743857624206512509881163442448657287598562225908072358716853327125054232208221249999570075830738929065328136333418501537663778306625152236577262278893312750505528522828527315490104601003255683244379069593706394118102943852187473358073758653159898965293182701305035862291765056521929005477196405040149110165779685324631861068603975347447168614932234491210151801505249366698275365824569592125830528754055546743893103423691592275453789413219384633971770046726482926207822966168431977737379006386368738213508765797507942666177548233798292942787105648124542120655189937146948435556465576762094988359575220075525928996046891184658441239624172609870940654381796817130927629421919008143651801439656227821570531073968971959567597786107320092164433451158330135453272002921961118815457790137910133584504238167465362977063170269786564780282902019585268468096276672190789770878053229358345321081063148536770931256829949299058072827504963154360343683796666782621571419355007148280229033147121712896919610463420133979854735218651944598152841305103205532671771489253860093272318654469569894931620138746916257507810171982141386304078253396970685231918496631810037423823483415617109830668663240565687224991557960992968355013938811983180047488341865302600990138016376277533876629684161390825894926117083181768593364849209384211724910972629875643725064041460862181631316434580323168106672452763000669797621492206996223177672546087556692890325659577268714662937368360302752238281337438642781150005116726028480318868729770503340230747225319283263904215029144226060684325917581881426807874130664484549355800095403931559675970857831570017012982165973558373987075279058094102525331915530854128171011147338280425849157178946189757585340525435043277083604036010274237818802815539208685820538964810733093784099166792089863781222617233957888545220159221579843762333160402166985483719659109987005105866747860064624264404669479872675692799463534263015957149367037336786451373164994963824868399359160814162394730550410047917458795460660977512889425530098773239145331927999335450386572400572422854090418265763509708455323964247798826217826625997108932079367202926846903981065792711175484157420847740724001932999954595862976709448417338997036108972820222756763598012479984124765784451054214372747140226332809971085779873734072460666100141517566407035090331590810117476745786109306392279705561808381008566210364430211278678947339298934211715368478018383645920072419993663354264777103623419009451397208276832122247488834175104083448804712072180899542040496416876635068214875090722748423739135203900459845948425486270550658410170250099127033459366586932433367755961491207857227759613211109341200070525756263393296243213412218636585838241088264755172598784656250356190995063688437517937686181736486441339981693546266457320196475045092994115889395834949807356520071402023936351370511259775913897422293924572666724503375449408146601131434005761166983483027756606802914210566315626033253588741928676475794235877280567114978171953906415458066314405590054942282472932865876874703763086068859802558867559380002633590243757327004025557716315926308108636186437057537238311679227407427580836929291339873065814185553487128752325255488601062452924903471657811603483896422857558407642247868619066315326104502034318273235301351887444144415686982636081491597297544124642753801267753310796415375663826352884162278224471011629328693668191494478461567609355781157801727252545581339345967960454536039427095789576521816295482006126509620944134529667611474689784055461086590719302430567639907351009866965251756043305668477803081098121316616887787201124116909694937605944402392822794339760104533254013040134241637140040275155154717635997182058935301642445042089028584886625557874111338459496897665887550805579692113280197773615677647571914297142167033345684693461431319406137025360468831802998002508179130259108493647409985460800572799426258020333058889645383426236315677113297385262807114989548535309896105199915209350187590270660619479665632058819675072151067958128919626314767425408305155977492499462100759258958258029899637999224852196939347188393870278159587515911173016967682250441414278560163653890150529256778144564722315278427931114788694818456897629449202205656638574164218085415912712940632033356568230601520715845915990177647312585251670019857516618831085429097571523032908793583146078833228164369117298915843278381796712574222255526975557699385966280854972578653261792437408944279167265472542478816531441527831170391010963604867168269138996391481351122710317006608751425774629664686893515546275062843440606833530726788490543877516079447252366345965919409758250906671734592994839426066121791038127383570234582386505223315505806776195212886524547391192930023850549978147185028159177720399016058190570576967565756134215635343898093893350758724304328317979312292695481770949814305779805655180176475341740726519482574893528754503238859148348378878894513052829408648766120705521127490286206927071240379648626920896337858795975276813791595692161106577634106442723019021844788433338770239002155142061565175468527906764213120666899322395786659135881026518484423447339161012207806546602785702599897505770663474734406153022891541698724707250851279034671189754713754400676264798204291644401824550382320641733567857379710748704319475422929682120660610587125059187157737466581552004833554299860170353649665521668350383685418443069834511634911477537220549845619809365389838422511996222884617814860371846537561042868423046785421224089371869363347121509837447813920721210671731102431011221148551034743955737874840260769766461541552848663832470349631729757300570225944516560506522155691639834607911215858897028889147045502254977325640992746126995318817331237495901505606263195577357655034088610914385991206061230470439909931897165976682200782684145982192557519704179649720961771145728743100291148306956565964369222773910338925735082973607704471007192468355021815715927628568775180709275209435260996275839083896848233026012814180604359847691471083153320495351160694314369430647134030221130495452849917886173992593457577355698200828200669841550762287195767642238119814065462912508073175447566039861701121526520168529309807090520275866863312871996020928421385943085458216013023890307846681382759749864435393539499738848550961385190483725619095158292886246699810123763888955431389682175405163498116360305801792042609562945543561149787423521204728964556651927290111137273114956743086765886388287536459641250453901185223507386042873455595145718529499624058065508837375122509461070042621443126843709998887369176002634739436088322836985753787410020506407081579476569125476802730289659132819915448155483761354253463079496787059808857058571966553753958075029123776116629262795123673116469871146423084540741087234658775208158968486360092121754099676435795480595511756256711423469552613667668779894542862830749273132802024404247460920423220622834751614895700647361362597594144067795737243481618834990565462438399450204174846833876902400072520105173611488888314565095530094837675102117951300578074314178567235856038404634289110912395720404229697545924741412109591158035036917679206780919329091045133480053762081533329878819984000508171873713394960603588608793957229719796274896393472462741438438619109359317404469768071876100566316485646227502601768969284240488370859033245967522451413187628881520559256992255947574422772557346256543731204862587550662769301863772281095185929483563684498430196518821087526002267119040113148938718067978205311878796115228791451336284365882605118547995473325557479564598335611263397205260063533473822414168454942543658566781658124330379047646924730961307392434836172708402599706680799375118401351558668936347158266264180447892650447389248589182552512049070459326824652720819564206635359957114237283698280626549803445054701618369378385587780244164846965729195858410049760774992302314806362805534189117858949625441095189603010331019678732225588963189775960849531504781857476342434106406923626211298556113982258772275123695609869928250308174345509624709225645545754332654247320283034933843295511669327564400060591458590644276269890958854819726644568109290210175338105160167751858425892820118238814876742579719219149205598568697132303101837258322682981845938619413049247425976152614245875947390355789040989988677224606394569878334572237768706661866353806170725454787956130367442379588876605607225768040406685066888664394761359821155214745206091464449455230509948537095178996295908088035531388002758041728684011547071178591521578217653760988195784470104251253908491054516527056012849067522035393895253187602897679502314632247902996573446916033195780074927181363985418905066164515520943589593804970632449301039033843376776980487688192410966974656057711086827266770534986449144424871031478084443159393615944228154459376923204830863156523781677747778909829170906513826312848390744763324307181812115388937487891589313060810930480340217185959353490734773097530956155761231929407249770033910370461522793161146769196236680572322915988143635827374786665086275405034351199611992083692993817628945497948551988805096382537021264041791812189578205624373089072796775527828311941741069237219821987419895624543974099494320671668362341929785775082851593934039671775319386075884913018994081398481518996239221246639719524519285081774744811762238743232167318481410725773029092496213205363695776415458577890554269143790325985842773929078128703183660525993605246525879045338824969422635014736870386012633454597017495246043945877684962994112499474541247475991900217940799400017707925716374305265196457809785538535365720342497855665998700317722354835980817205627988346774422310418289691327002840703620104628096006992428448238621795697461678180832038095017798541150148925088817324091925095874057903797731825071248417115488806911460573466119964474849628686225359746378001683990399316985079071297632665845090283634648534250349344736773276628155150385687912110288084716843414635324820480553928283957826949650485609332326686459508369183990645239933093578541805752784696480338114502882586406763859053467293815507633868806939917677244199059283913914281982813836560433221848975541864676985565123077262845479475604271342284744865820889139452065271389290409475358781927659373538446906321502118956887046507551012280918602309271870760124180447304720172520256712754490272773318340541385540712754031985902136389505711046093373970918795852624049167041879144444029265766644900428209884241901652760962424221417934133684684470787375690937938960588889329494130753786600795146188589946971750125645019142785825555749581955140057094252557005899736672441592073556342385200665375733248484607716761822983483128667534535306292992883880503524917568719983926184389123126448724542298884796944925651981352893719678502308100268202992207551629544700190774751278601973448635194602149445813883876052523467025140295600089477109988185906914812895355929171877889243223924216644558156032140912106575587679793296710695639241506887468740569114629925222059165897211316894261182637437289551754377864217637745689028498010310187789432340592199370734462978982973000314949918922487295026329995098064855937596067167531448351191091006867259086831410304141083397686057162282496595859284901039239040617950365265420257748503640245959209937571453717564507114052490051776302527359225073598323527912097400884865966221043385964372153153437696558737568251898504266293129937567567394089437227498626907492274253976931080424783150139640065611222529111155985612905140330991979733997071656310366271610562311931877124885125921448040237955838407492336851640601410272348865932284800966490587334954688780325061838683988662362301323992162081311595801703384617213832149758318627252692413119273614638569683056636826191715263250043432644570019009590827947258621102494171496534833175089720759969527067187817857169844691709009304852656928865549677309485850964591036679494745654001231321890518471266395009754316469649727077438662778755005581462512449858986248728426679626393199276945063016092656110357154079001056808657170692144025049694270266590243489968119684323774851182836628364398533805955675627588730461311246273165715807096780900816573814343528009872583455031932588872438157469922009100445916395889472532387486654547696540966867627555787599459410205499885151177013165758946692576329595499214290790192154269938075730938643889927625474419838505921168143848612363372184100260279331455360704786349726978832926236318525067970978631863294210293388939223566158344888549176381400636775582787338015879419791862018832399364477243381163990418696083969462637787880389436153426604301801668108218719870949630819190822174898313176176921130123058543864754758903202488484000361030924001868635978163601951814070171863389491849869568687748122163342847665842467032088418057245161286235375128316613825922930846592237102430295116714085187631887258053515545591562432812116733199997505658235085895455780543567496828815249445940904581167468122908440758428489996294103732233778897049397722152300787614686808792221630717063143974211349727971681501175896742260085330195993953795515387287639625576366768050588654133902851199397634159500799168506610286620865598992637527554398734385750443640032000426076084338989178929232966400879980405029673473247785929124993228119381796929855662103137637948070792205473870398167960974507264155414983251398320912756669357973983054886236115405467424838309889446998434042356766724642081129104554147101151156785149623284469860812846962307271504614293309199815796145373108721850625764122243134382458473669757512722623429379762776703312618972622628895476672694510399900953443467926360798098739542764746281587736615547946733312965202178918134595937920729989872301412805394602946368364579400283188231585183104271981315148223373967336085977481451818387018673590453863943476563584395161808307085097263943076013715026879155505917982542035986541903757304083207542917079888877302959863780418570874492963297603771096458501716948332245364809555044740465969804892864844939380345225424607020843197958519469855198064860956232016039280423130793725749142317656510103964952218085613936957325929464864244109375353406376056875425619721625542859930372666083504324108683830100136779178033226206411516011178912010972755819498166742868149651593487312660065999589240830573616938970564393722337369197335376813148885205333060096507168292891983955051463219428674139932393693730985337506690807684901785646802621172430174726836873937066776120158324422252160928561402765926266380312825976270201303796614899137912393114392571942099680457223798001248611981813786420587434999469333230273089425821508909418982687917951115842272445932255934319299768304792245224701305486941286666506437764408911695170104255992323732529737822459098024572521080688765295531876477668785397382296298022857352977065761420525569399848502599577714925499805380314436853646831389903231074745363916330365518062497005922567752148857538860720284577282273068694980583316422725233368373440049752234172137644700274311284878098384338510037444170621806832765559662248548197655802602734882422138108645888177268583701964163688293124016859509173761073129867336896162438152242005248320625580603212584588826572079244705647803621506912734493096940992936217726515667861113787351550644006397194230528789511354085949880590702951835139387984870826628111487506108936473068801785473246244466512223115203203177441796986724432511279606386278737823085475486655684274116224171536717305043555367069439064747142117720852761283740255034828128062376654230630254793314209970972334255638616178362959974565892053149701334210656214720829567779625566102865647780311754246763623522020960905600495304365660210753526043264714472091600737779451486001698679110882229934384517594021559384371147512034138220148686727848136447832652944857020811638745868444189465452747317851955764239795170005012010093339476159749114806388397272491668181003084340352873470805419631836669054757666844046187822213290871713166925400501821099160340701056203202141411286095088681309239608250952917282289587567297299022985085122183565017790435086632131638770789040698297765747463033492323896010633071591352755435196266479014644429470196569663314095563684823078507931958807572315817586448501402543887219131114324540494034645925044042529262989463251081198045903325762930245543448764295760422656023804800058128010045167535728195702324742799930082839520166281985135597328727065855568129883550792233914797737636468175998173582316386866544286084930876258384293482287216688027623298247538667309946652102483679887735167531778974996248881101299310762096233463068868272157455275984765040871145754455014255633310507031667505797519971876408373958470310909510048103615739319351774245105426628007666131363510320366129909232707491447491398275739850236491498036874334546320266161137278369571860429200355596519439220996039322781056645574910705527171404413184101885118244936532252525358823688810190799606547550835882932214757558530611604177916735748330564975913887642175374830186647568338885119157957503881134749586040499273369735094342435230115566296315531236820708931201151722193136221272349592447078978686166427418760013921130208317497978544870948090611280810425860019674269661592597750760669879334729513153646509092378859114842698373009378484830565475803242108499356144192123616412812483863868232868895709416075627550529933771580885382342977309992008490530801049889685714164906102935514579946181729188696343016360036605244754317282423695964105225433588078559142628268722011730921859249904805122549048260586967917918464674527444112664774263838356530626710463087833963822789503286965517329828396417145859094777680420086577811354854518803405294118249131343789563427838979585858138440069054769132603212385647189761244874534531242117536924230042478601062858183858898667950617700575171811458592780067638997077922821363251862454433014810906318105952451941911312641954527668675488112485846616596672600621912678025172256533198236032794114953120907454126954191624258601342837130631933656719644697005616727935484505887014743733644876013984868860838923876782243020849035615203599288946075640835070385258676215880912899032376818659442011348059317318041101832307008795666163893295115015635306051212374879551948487361525867564108886826157621959206962644695703507037214873710165351958699763678374846208902270649553205228022200469033408313630567017352032408598503306169226193602558159536000947583647255478375227600762131943291729851836494823841370803120853937336569816485886168615978145317417473032165697667404609958401232775475753955719116863831404588049719586549793590371682389779832069126036643047052361525517318457504177947872094628799499487970293403789263931903951009914282309684411689219574578110827252406828987334464680515419879693918271756202434017484863358433707733717341738386150805773030371068934693599844917454493553898086667592818351579145588688789284633899815425012436199904855979835193243337352101650399681088789416732961310134994172867011814252652720420991592303689894532899282071434439858992553697958890315108336425569376250314871920776218802182067003652774678868460484716076704167541601052914739447674360460816766983140986543540083394114805488629857436585387634578841911295791173662331527951145184396874643132405918977752970274603277886648953616733612034733117536231279566596632710354139053112857130346207399680543496185266646622628929708317150039063205770455575895198940644348383328295268827934062208290154093207140659816588039524199384562440930167565845018855972049144305316657324077134208039670803171595020914590406485941757788475622310099650721988430352533565568611768387379596048248616139533100787619041323814152194394867284948753074289809829630113791734496446490979342573870994608680322763756324308646583551399845637704594505433887559641985470528153187126894422162841386067393500274251310820493696446738742096704809946635276089726482913190651043094493397419105125602613019547662428796560149974575445405389543145298857647501663544762858157331492848261707490498481678910844870073055543525876550797825892932170239186328458064342946639723871108451088188972637893774223716282723397189788769243436032433206724639982571960761859012339859784695343899238490506789247166377694371384999616499491666295629355695581388693481738236551898153299201435852227881415555070447049596381148020717502733960329489549690094535768249754620298532793113554352426990443470369060169796972914251674812212904839160273034493143787756054071214528954615375885602969894283294570597430966794179297997620082999446595207837132723505947359234299490540678784795338848820719021476213830216230341239880020757568946639741631417071163615097468912964955621833234513169880400401630122927639064897441641059506734452245389789115339800575766046562840252152363882631807706785758921861179613737301320103163482047814767363296591635049048968857790775688335605809071497021990602640122369780201389997784449871558249799335289153589942598172768139172382675296417099819993203999926871643843232601887316038999921363875027395927695042149653557548657101981677933107758934252138776566942513255051157728806758578331104779981701183214468605297503594369819078886247958351425997314809668628306348213848296905961572550679324454212026199365293604672595870619778552515632529274702978701191122908938445661428299254705102385353265121045738439658793885737751434087997264589679702609302425614810578711013806359179100598873546266646216854428153571718351089496521582315873612187213283722211872281124913283891163896869341574672550356218740317746557143796010270105757674081976235423121705765594565119456733042748716829180378620542595456575966854654672749364122504813945556809541751871211875273065235073922656479283195528514348462965809324434963279394494941109782361678847089767876150110398005596221625639319160839716630350289516113407333070126702483140530424285485496680930815442112140380038666253354186622890058150381615820549602371260163990102227334123973650174513323828689118804469844340369415711442701554452905472868139081138948175174004544281724119283139545080420270457085248508137515618056709497394016449841346663693278230643626120593239215422987079575827796953044434837356415934684527344797891210389740981607070847878731301276404041399159709111348628624906293052981228020937648893775007355725028925263198647671935282541049347032724845085260503682615755299865874477688253969557139335000281041491016233544734446270987413249135411755948329025942409688020297643927501358796728592735270305758050493123250046784887915604407869570705669148199479032023566558320049760790979046370722633592312713564504975971060314079992542228289837828415058273778591301204045416320023392627939161793643045034142940291747454784377936563837332667395253074667376175038704922166043902281464615141055164957055545092596351941687765718440643534247564249276558695758191694716069280841188552088262637724944856933562872272947115310755308665235008372560267597117605684614306437752662963085196953536547294209020391139696082619931234682813007639808579570461873928269012098026974158475751657907797961919854223441933230275060622564355172627031333758756343482958105002322915189760008466871981761950108578689890028242301897852024731054789211846993138897060088823067317014895752011079057400966902411400490755114192531983901134318317626800660246421427361904046271636892905786429244250959277479953585127309616620789813815347937266940371278028569731806015008709029517792506499049472878289217831562260288686737598697307854980569741071961323139844105131926843787218487900938477215793566516688254328234752691733547962296291344555994536701754049026561074007490243437098765791673088457920676223515994448392538362751372567715153025382994270732822841377524818431356296511227469166886308784586016098475986819091459410214296453709507757187806996627263508612482503082879321964133604552430666741661532820830520426642887503994010977350248645579718937843060607212648043832333891455507890721709539029871667371833854220495815725941400487218857217780681719135463143700524189461964364853831351133237232245771684628165368033102936394757645560389618164040731903284374371779318000937987158055188125612832951714176643638191998875822829912731636794300262537649369304761099650838009104712133782059853326000996417246036048256520789465868800693476250055918338991326661343688734509017823821596479356812790186968319169344983440880372914221058440749841794381145034840779565947619613037122079674953693362224397371621381555760138664221502352634213507849203665362793595244634589603772951232518831669711274315358007314234706399370062398734587937211009562257615437715007401477009648726222713685499559494413146680511812838827288114859906133809884889455884156578382538020124318873851782783669343885270078001098431541507696646839371974511545728918884658544547819324223381796439179396380959406710479494207710894683469652259629551376673797833874724009268089351093700345994402724359398727933801003090492935288263251761229052952829514142285321336590500908524981043912642009838233783266880085453084683338695447868063465296973944877419018668129867834983812446367883838898628034230993795619053499275039538838342843534290972786139007673639222349817925647166360294679444603045258430993275215265458114489006508341791142074234081405950086154098220684170822022963762945236617442745993152853509669259172053221827651712748978939306413925133653832112852241484700904567592912770658675950837105465157815602228614169814626423027800279491630298453684938048045385356111861243208933770099296492152377592689162129100807688960282181722284235663302133633711975932747217127011729212211719786745690991796580619289489724444632561991806845354793717661283616080914772502992681127500210311237477261074954671169219561913711471972605058296738628924578687386242669980670646280167527395208971547952541505359032841501873720002385046465972844489882808899480983530142667859924588695695493363986016426601777137615573616853987551807121062758843750828497477408906682533502233202305900377100180069884231799817089179534117205561017203763207470905221582766338099291484897635627422799237298961185140608699988948707629690993727698552392049582915910749951407532613085702871431732631291056370928123013196336268399934649686151567268381215521580683978030182950768684723831437278764378244961239410624280720986873338469171816359964392126350345865784127375642574670195706429177580836001182329031247179703175602371960911343161053686261602154765450079371114198537198876955276403608482470247766299000562629742165607681186184011925408606387212027650044266995488163556543049394552311305022833346350911439037884852840286422763847594560528070929912712761004025623870133492812168174508200400198479570025655564196958285491921567504921914140508593439972258671275592754658559838334117467356692896529491954214655853850234081163440699817134803033883480487436424857317888576915201906851848823750080978893560240360606813854792758332744833217342398993754734106894127454307041681157931574281192339186864274770971087048027821631782764412549219895218422817417897631415816604073316121663348463485478373427233947703867247264737252190186726561075908641040053338278786104404392605129695376844366780443306761911016300543395816327069717766670899887031245448761448952006943799172067523074200151825283402030540390615251651259156935559088769183943912800392127211981584962562258158363585993710952597363190099581831765536247403251479158223811735829428729393054739072649104712072502860973321127968782327240360946280869526553630149341447062169871309156937376200909590775007018393506622945014223283390545828980412280414269149782822129069534806531521164768124122523750332926320882933800986468634549003740380801773061269840983364184978687957227041904646229304605618594953915536773857283116705405392604532615509684911305963313171739298109436406864027710399626167799802218634304855345504838464402355840550584851918130365311516793508817658543793828807758827226898891361700420855705379655488931919584093277863142347165908597643348874866532872712678905406210829169264356020308169970611567816435350241190061303490800901076030270651242514743262398625673703724505814346738889749185923087612947113704584654354515097143817434732110074944102603511841195381752545690088461010904143228969205547617993365503824178875911802147499447121428244313559311393979520843978133458355631227115535402330329699168728959992223886152536693905703583975672424793111440937478409147059345429021688324506042280565868343245925395236703382103758775432682579208110354251259168604841011014735938014147557870864477244753466172987033870373179320349287362621035014283246413856793809686037038245250066826743965759220765215148659619957366142976633390315009291902706926778594886505161347651333736366456983709985670902753318113593374285105106810210345918187704164862239917670048387959640480439815452816762970617915296765257239932797361758955038741553474559265139764751489538743827082450968519364967926297061535669974596462915186912641716059436750227324327823877456988313847256824136444807297851436607117738482098246419745351513408710893859037316055393837747461164598201199281386010591217913323239499162525773769969730506227494322069956459418878457615781201926676189725584184873067334782386191311787697775398870893332628440458758273023184513936342968288811179161078591391376774864517461226931422975938701961968328540318324857397382637125329939428238596057029737725992513087109469320649211380930605754867128957090160295004114321119203779469912463851809184099611168082554089936905753884155796742410601369274793127922112908383111351424037507724685121955734384075674496309566598160797648949070978800120027416066209595207577191687758468372425696982217978063182651053131147252431550887130883163118345471678002420428983799139343264783906864912773384198408955200381736407739297026869548872772981442648165110818969613308435496882267874380000969689629919884462032352282379055687950486559437699301678038537812207977829155021286593436134790076447050840670363699542221163128728637418731321709158735440783136084685737352484837779478025316062741030725169807964517979394084487653195960292375079373619669541521816923366057153464893316278454607778109365533118866637677270728073524593878504895284423319195493000219413034870853925951597308851127184935883889390403652538399280901167090115607333900108108772362578960141228577380707726893190872435545862601695642184297934277038098324762622338518602144919446168378594498393540135804885464345397643332345274131663446231858221612088952865565497263402319906916871658379012940405434912173253378950624423449575513440936547554601705563817413231071081713382948204794192220184900748802859057844006025295508874438640708233025236774492572758310849856783882374146448307148102097716314678869918871531368266473606899382099685159620998549548215914203043823141943448111569480698178596071548886552925415571863122540124368602096702575784187592052992976739432391179098068128745091232912292424910019172089595208149123622741099551243557469879692242927327207563055426510783919825165856281643682548138500530442310067879140307359888438805295992112063481133992073303725424909929799233677576152846900490037196884779635490449574859293868241054297127419393584185512506462780848462235696941868626709506328481832593188077996065562428242161309463832583880712799484302601662370531165957839135816856244822421176174043685663321719128512874498140623714624194576078258277539915391784886906933803362079771830220562320837970714001024790092071799811310083095702809931842041718962937610894052741792518158304763123017501719757717742718307137919728934759468254650583598329249963831458431522615448597592735548226985402803797002634847256452573721450607544528635897316219962192102831060107727768300856998337009926786815457978862055455752899056633659126677602087044026073505597902050879508748106071683599232046731591409882865377441358585500851091661778444288204073487976026282466043869786154589104945181818250883705935794755298923064353165802565876768406461076154213911792210720491856476687887643092688179611986545414831570117966388484561152879027818672894090670633968768815700642562147809310872344090292125407534419461019522370028040039829044340733491616353843158359512388068202713150109097898142932669965614739994271556993549872779623877841102006195492107024282443407182701548124335345199953415250185463181758677869664505540076471520569697328102657513506300944924488957010790693850507283096795750548748510977063405484591238490465362036388361827398340761507157368915277759941611048637390769423519017642060820443115441771895975941562589914680277848047394152880884314691998745186111230336196186719075665843373156353582642916015628990328617967560367712060226532502862549711179565668966873369363573825784405486826559983725803172469678039099045418354527600020992068742595041045021613790406818922002670569870595230079010817921159181941611296926113394913031650087473549564486792457256835161718311328892584628712088540809536194583263119526593691663653342336289880987109334204544612481163330486402632174856445567207826682173083568841212137815249428886884858812726625364991720914815101775401300591347004704707741151916898235586238348996371249033399958355996175625493785901703358703100628781607329433744019388733096821491265909883328869297194300449172758058486282819209348973044913245771301193736920838401216772537966457108600613631052940934320845690768866860973276430147366876380339717026757621493056731770785610035141788801217703708077083561985203521212319318540181386430420545618965284147212184425866842242496060259765106781169731884959954949269215208270782661591335978739248905375414639351393301721524217645566907893995480280483246226627729259175469395870059602814824019916737872331676781715135550214771300893350328569342993265423661400668365260640462191379740013792630692375989806785994934980543685014456470339961701763831412795033255102263574312224781750273203117335438095920962863781330783756588318571133747104063628827402940736770379086455417022187155814016531662634236324077239979209417959777587927082441185857880991532543181816185086005111673656522610744122819255163902248870456399582977737246272819890007516719409603845829569104556474009465711446991441769909574004249499171961917923371376775100845396567947329776622008304765663487981677509895169858655231210091950625895483122981201042748993110193590580005436500662206251702696999464867931652465784512796169065346115193101330243748393857130963836596937809583309134345070310344645536072725649184808291071489015894968064338247279887371259606122817429659780653389347912816793094031064671876083204309734198232720876610541877137111301839515639488383998052550913099707761620976301114762615034533785106489549445037063369747932545781828126345967590758423259124213134722153848996638787774878612775140237671922848074291048234570397216977794024879458855345447772243934393630447957880632103030692918607522645417792188516139529070746022385727424409155654884584364921090202864053621347992308335021321916727567145610051068209936033019252348550452085225650969864463941796143728053993869958264766323645415086122714163351358245202735687744329512883408536305126098316527524930899965161424375002897169622013428462837191748431303364702935555582712992184669182472349302360449707527936250282732649800005775663965989078545687078440731444834499971135735132486643650738819048956069826140617593816370570718323572222146116752508703849388782307091465559162499390430669505314630183019186928967463128056411552802855402397659347468224490464139306568288870450191961502894646383541881813990925580199689930744449655619323288464851180767050046338831613993198670116546952412052033545407655973076379526708190877993332392110732684521106527860608965477997053848394957853551923823911137279522667105802931093764545460233174033421402461600965261235059190413182617898042909717249561809998125664544936108608273551053550521963274609438857408344807359156934309521274759080788123875867588098902795067468849672461493182284518713957711372858016094211287982242700850679842745338249047155487814354480042238684989194808591355026688734014657394615140625643780283796731095917169193607778316748133977434729088212173442803174774194920019417558998105338667954558419689051041517345408860003825576626516688147643794889582535976153283266549276089471970480048988515708682276794259531938999076107983732765911517804704706511260580811237221500878276911358924945879740288318984361085769016554684216000064530963768772203239220579833691885631217165221099525553780816941512030883728291724251276696192709798350802115851241773103215260365726804755546453609522234044202569071081578432252205106054564950655313774707194253605553505299522825266910405779384058481380088646682901977868475407983648581142862757149189219930905644824820134519525872710445929493363826628618569273716720760145125257198341614104616841701713360621480373123512888021662918247128760079387938877902250015992753829576906118541271339179939420793486195426598738834925319509523533578089712243830761660101920542898011455404099843361838542027351901022419684183731609365085986644780278661686430991354164699370106280115848265480021227618203768274338545112638705567174609987124686659701579904919584436957639580742637238635497120141231901212906344615613448730787709125806049722004040737267631464186003076502105515534571560580103554549926191846579402646425251020817364722451445700809392344451833588911540403814224455577052869254225275900778026341454033409381011310001075374484819938139449515644583118374549956743847471873652646841970466361054224484420780943650117280732591294021046095854259845076376245816712324185822747494373346523864962697820660084965340313617209239709361912002381584267525543985709007638240488709641936842030899415023179444267094437252852979064825476408765684818824907343256211946339294640261733031706582276557823114935159686868880695714839688287024572421859179030831419796216495992783482531720683234001132146608512032875334468083573675801383688260074272333616634665393457321795350854086152488447599160513883514882559686673108160167818693979138827009542187912916925644756657774530112734654486823191427987754214701932492985593212505670306468756795936054621254397307655410153262048205812670589082232270050454695895026863905720964387269460188240775261277112980456247091555816797626541528743305402461010491862940333822420073502733787944129600395888327020965385255582578591705005049710120034574132911914484527295900634233044304163904629832399569416908750194791925354966833585347905439308381417021209208494614226282561467056710032629174989882423684242892028379929717929099865119356570452597890095833268179351569682546990611121986746995227913751574332471166360821674362149762330466397051908563948114891207441567843883332132260318850157649736201276349025061548906451484298725878818584634344839380549748218238401752544968064697867600196551368593780992082113844776464013438039467589666630674130443088992732717685735242547943546902345669775187545342214465364383798743686508273912300598027475029782061875846013287910443912400366592440897047425100563385988106000197718539449934161155786542067145607725773469893769686000618188913460518793322341911076992120138138223536972041033776638523984024081396874152736696849849054775550725914628455067052041547885846662517516055301290034922079268511534609167028363397334597325989866549786859045627775365979285899873122504384027764091451191108031857591381691129918534450851112675415516687051285387651085971198605212182209280262772858768964128021208215208784029960081017548746966580090164054178046436928547581703066938670820234383386851546779078755706405350979895606707400489717250143958315425246238554461753297695463459204961297238787398175339895540497859558197437512049432217074265293680602552012788533444590258074021025591309492281942041103672141953393019908932402437533806314463017209409275823803198239266197225609436891623085039299442630773596337476453713968138999243457651290464303891429183616528743810155472798349032930177496502048968389104950734465339041501036717734762553387958140893365304084480620254960699640654144186076589637154242668715203500846822803958685715333788866755064637824654474475586906258738727224359568063401508865671054774006951594828984744033378717133371671214140076722354939089701938619079943095126621414887567022062744141236389114310627998001433568479237238870965798968797892746840000724884552721839213134558711047314659249394184530216589474661295001896055687997204748766329320512099317153982179138169940050502145506661321231136272264284018628932472219261249540922696252083194809646573455287884467170956610315758755015024366074925967606893649635528102750141453914518169473588469346674250844027094229575558881728836690513916136053927549694660836231013499146306142948742554439594528190832407868498917881535670865349785291417204906878441775180358856114722935087563814916537796514424337014445553845239206749735048359143889090858191073689506869687771709850117990103335620677419831470252042320947020149234281765429587584793734686960155930489525815017542642414809903919498087849194437599582122731929899674178829997969593537093169137476226203936970456002249833931005567911550754006612343636881666214074037942405367813834947137840031679247386066070355610880795805754316310397086788692519095090351322464430153519036132672192984132984611184358985355674274363227901310242215181686463376598363458885570164477155736927352306021933033220498233130122504176115933746278584727445404790904924386270317864713511487359908175881267315907021328471063792687732998920753197529121469557967145724975460344458649270492302358695761399332917856616634678476391982433248497929908175837612152725934515805329876784136401113643010297249656059136530261178406484035912083481400722008017348630002017773142013298551522959348389276057475108311287219303724030036730083163624779715026259876882321180115709212721300638265766031630054711573747282865363088242092009231353549647991565890266767433960607598456112673343777011852576588684991994193471189889195500101848633357805951366997642701004945013831880307504499090119623056820290646508527588825668467274946526929876009970177773455862455022458651275582466537985881936329540174993186303533915212383195271246172703454821006038449929198592859331965442642745550255325985700020964400912385059401675370457517210387228514915240645374263088140430400564450315817272161370894879231488306279384977744299434566412576062611855289407710797679710470359964368486575974190524508944040504250224141271140969240509255676011613052196467125621283227446331130996850636956338123996768530471873341055833309897385168303140666627982377553507570239499869396578431513737575207136000367122275511804163628702540760076115757972626042536008327648656301322937011011599773956995886185081443482367686210635977303464207087872403998188478772337783325650261108011689861318524189854168642003696878947100146108716824321325078759696476561310915009776238418121204884607063546853134063347562029690143576899111712888727936218290030115706409738474879089179134678271160242217986099986096844860023297587187361655128496114511917215120776086496500854798552490137697527456100369918446740451617942398089655626265473595165145807633152984288615284732632881563284333622796979630116892328874807812445033243606527692520580830771218010027893814956868790062545421348018323295170009323516580084748425634392917590124961991656626397234809842294698671406053933203447241998653919579053278306735835930375612241043511827062598911542551498939301923654765293826627509142836806680268596801537917463852750819706475310961935117255369849233581546083448350034707597112248848382075608595156496839797304483549696612176613541279900668573272791405894788732316776083465475565520413991317989930133065036986111485949863335314096929439423451856488318231712870484698972777320264325309909366306745122790934662016789627001802579663012233055337301027953553244555703244123569224527669583494705166937480647195081038019563852608530106966062732800025767155422767246762937833141564245559448500892338274672867086081281104124553987858838435893689297836058913680582718712844456284393507410175983202545926985752097734976935929377468944919813625884012580252764053565120778450764525205924727230843141674580443718118412546000631345600958166018615675366817477095603835413107020220696594145032668077944932609826789186470636227086022884458913488310381096446739045212825661375605422392781553241807101524283647739510819260859228666892037722028697291902441850557362587015330416551523804077301579802102436360555331529483734921390972843065927463301177151549098139234452051111295973558155830981817993489651526869059392797345629848284467682642722757024392370780873721540958157951781263025495414273468429078749004324999097370913858228193025601012935808819854165560800448625695106165921189121011702182931191154074479575312738885889493704687801958720975400399825066365170893502869970575211707935212024762643124163910779943609402073075131822998950379475344447225399600259572573339730791715139644094824710963038207106832651796970352809284887908019700176700961445326403835094199504681358110584858083807954272415899645678177785395942422181629272261497141970458972712961907610292326888901223779692497445872602716787681233010554185686252178106059686598958322172860278760289440030791978309638787955982528945525167744296111668258453678465534078068865178336254899120754074801230365947095562335584014359273017421395500639858817534757544614905998441495711494656995152648312147639059206205887972951352874838278443093840474257557823630605371581436348099030566845282336945238872681326723420544042295849398600714307860859224377853249813988046255660148667819904798532410464744633826410384712043753741040596076747560399557627838676648853820296749008820959113322271133564142497037986677146185505380052167919867817618640565370196276266447310953977082013937358603467526476545487680072915838120002597454470791371552003499824273171990207331715351573539315738973320874086459637732065964254171626737974564995505810448959668935003174338580057747671244273125472742013708449392820849312427637095525572216410881568687960607203062142367156817721054727392164655505626825662312716331538017884097565257326414132033124438113025774072499625039678544027755925557709882675937504163886546866614137516705747115088687681040259997484079896280571158678771797103143507702559235262453577389175600771045301451508820632163847636780154621437789620832403216127103991781437075809036034433398238838132762248424783232208146222849628889414072262607123865419501941092052983784462074069601193619190099077995238233287426581639657050568735167652379572000449635682019809565545165649503265829970911048261711786761167569679716947463050073401483031801825949433313697612379241400333076207316965069773534363931744101754847403031035639227684451232949220944474681859315503011468059812871068317511613604347431991965080569394654712562541496927490369515934263027564313550032235991592344024631750270185582200155983785763148760691407516358191374021006142105682743459678968111394911947541093269813236328401891688433249632238100845586667853397750001018427903802916884538844974807858364573559474788430384223181229722628694497803542523724682761302867025639515353352593822391367426096029347490661126850694280657283052203664372683532943226977596567452779841091316699424493925963095232841673634723915693510921670062950434281743516082208591296804446026956257747930940383910283946379621730511988933981352549459969672046256841785253100132708840717847789383768578694355342592544289979815165084970994087874868853309083019200949424864799460171546553550320561686384535989657138758356259462111010197942974313511807081934463307765854042078211822326732967510571848968225601455309563926506119551348267605406643372834324087112961263859416681403690222996807029286138568391667549835410937350483188120748771699648159258626694349621665368776234631596300111495637690356626641092837791835247339144851636789256781862610222269984379912617303255996185506918020107337616690271176087043883519364602815871074592889860804402003777518472905029242151787744550844684439170173065289536297607154844353225179380913417887804584446442324211449554504096406077086437965079803383001014452597200047726190642319577632194439508226648174563947737058159199768920771587485080630620294411199853830882551013357483523094243828196681975070420150168872246241184845070366475486519673693800263974698714888495852833219543328401340200326552852841865301940804268987588129913924477914377946940319247560882066069856480786312042211823134634729395807855230639166978329851554701091851147017577602451543844814760038410916585452432962872480918005919499461639335687046538215399419884963552129929086082235127481586221346290277893369065497410190261512130044788317128493238606237243899168621924717053865318446297892517054800459172933845993314577298557912165120524826246271348056674001453421733624014224823781906146057771534242564452944872864842748704102605599205114687663699044318612185322957649434616466828187699866834168978946644001580328887928760709872637956298811710755332861784348259407773526160770450028461705090088016303796701033499468509201170303441370133121127632281136611435564840870712510473128979735546498303003428683779709192069896848115623323418179097472579506463066089848409300993261345310260874332865941965467267167227097675260491721934444643901127376125619945714765919532813809475878086325119552326547028644199142898382960665678886124606331620379071952470646159647856391408012393544404648489888692681869398754829634744900449099547375488244574695664082459167808417367288785027444475844007243108309405844405430496368130425014747849096763699880300875930685052225038687658336124285962264378767369467702465260598015493562767534731691639227212259441567959402753270598373314165306050099337522257795532870004001782805992125396325172332671823865558733182945519585271146100612070339544160988283717117958363413565266374988007433669781384783599947150153158432646715434088328127615450673223645338659653093946824346571804355185042381159312730354346182899991926540749596958177763505864202101452834474900414108468867210317471274312186451539401962981606468624120081045513922156227339050314930926537700356166305159245762409791335637597721787458024591009780662475958499796581226111596970411075764502157216035259028999701505827499208206417599037713580438057586636031650288701257412902128615226349088101945675137823330962123129852450900035322670860464537772110987330438909257214070797883831121887823952600434265965026505515432605524370463407465681615209026911199922680952398810803943874021871594245558005602538854889766718693070356358771059049037449428504725139361120527539757189016314366067471466221054432790672597444637928748371618736464539284940846882166491881306464096484608332504707879280957471875123574050579108826107835724571466794640700492461884641473650941955428259209855535966029424056236636887994697357725166572808766057246862887912442779165810953243643885202583451449657268826982692450579913208437059090114720075529067680406023978884991568500301419964259532650214797504443434758470836275326884387402919747469661802384618765769851539988123509886958673173988505181503033191994936549675408817903220455743118631902359305253238260206546530240401517277989639251921738115681327250478065341607535768375995005336870032099963263963747978066248941149088554159989286305952372874843312515916426635267615433078906810533678085558383036007488313743444937495159889851289293454213377648744741008281351320790266782177484225200953551171852406678981479244077741147153013839551422446673885270061874227889206757338947205033994249341177246595313338018139297190262114617350076586380771821230067872693912064380399714085683521050787079169296504410718981731516283646814935271870457797535103943342833712952676238344570105184886920835332656200328185212224611762751408787586451912150949393734235077923519825572127816890494576090123083299582176525092439131882860763732027381913088319178699952562348402148188924531784989810053891620171820191516162822928260868650392548116793164879314089133818002325550815730253209949917058988625540016873862500697283464961345389730265778009241284304439761209895147441140654082720099737913232138703470558582325629086524564825644445255152308871160556316503649756931668458916424981168170653539776763864342747149656743270695983639578514327859173499022495992527678662625966481568197272008684404106529206727572840509263888677092073252136361725993150304927824671904186414093299441636590935184124985621395393962194085747224066635197994636660621011272586942869867205725735865233712594694779974233279128124638996490275258733975054655012976604213040176148329080876407487353863791694096041977322727697091171571047740115498072651574603950745809644783069175108846405481459500774806157753822108293996849776953595239320836339847528488528185632326285692458838687625149728272018596724151315208513276484053163886485938723049884390795990380489672900620011623147577537513864061096650695475382628748632350252640322977427580580553605660724937140470746069362666116760790416531875325018904432218572266561912652616080000685123856824552052343839067087810019949755683987213181025568642790299825533056732927591149176312359627541555765702090163921390623740091584516363253251873328786314209322304804914348003374681891497419440970599019699681544524619448116756890655797028680040204393143594513526147056945531976872296294846191657097990290442539146387307905621426921213783493940067755127186084751251331914858874795857709104359580523091058188498731498458707500550806379594295881921700100606863274789024581583489522430993897722886600597802753350867160067166126559032653616935551841608701156347914802437104344861122981606821860873289658939179733097813474092045583790220675178278367180483050591473682037672115213966140651280419954818599397151502136403221860274800997328740473027749716399315292314199317026115431553722438941937928599643219411068850471382979399160394270004722940053845467162096123016410279293468317984080297164885670271502109351853488162298882427945050230785695519951066948015600505049718511433122164343259750771264040569681097424718333504116817380692694611293792856339162341552129732866137516510164329765219505452448120499306501191445335257914630216738553593176061647775251732195280224125365721131433003696737784600368482310299476233447065722370412257431459933713343539529835288463529447537542366608475057256375505166244831704082481591990869355184871836574722524109727278994780418092735885082202775221274316684530165818437690663445197615936210519631008548434538286491786550413730707986987916458937693360544911393796299444968045722474088121466824025333165366052130486081697478411544713028766234884541809982333450412761546622757927441077321411073534422862938279116239017094725811588494811937793417556722722045057257738306607075392691702290740198839961637379698975223928912585432066213600914626576819001161666979957317109248489795443055973011809316376852016759187577874741178692914665221893212097377572064703159966340796074408894365268521371814378091533281827715610781339343186993790357944088193155912444026187471666743697566517415108488076251734517301907894779829336501514081005600128751669335772089523541614481029444478645839958216843131483119780632967239006719194806772956493068940889209196403703517530717928702772050511257957651695638113733901288136611169742090866199175197614028020913615095010661604357777735599596599077854437982001887634639947439512824272408234494264216448595560820703678058659261582041106667022657304830368774593982810814241451114389228652533786612602931195565820949722129017633756422300322499194877021676562229019126541015886592002459963991681334295935517728034681573864300011439978495534974614632577552512168471282952989680846951328207795356264443395905898736900744028464416619638725509455352253463086376663088277686295047542209505082336193205801246246495513142096686563728084529858595517578521735977937819621209459257166263215857066531854935392110259664927339327670351481639939790081450189554673734196386583000591034576515411583375236862864739392609781162887326061503014101840629758683208389127465777170475735216307849277294640683796289533704031625017876326050702275315471811193410191830616142656459242853068218777468841750154719762795993980074470582741171283968207432789874618819655728170372227633973080441323815720805660738801723977122345720248388567433240243330224666507163698096193647630324443815571703658724853685527569847052111892257835812461066912758736895571173370020155825920565818491338097530944773933775724727021423852896878823999295610856456463681105837484264474264053400704306584739548412709944292770727240339648850903772089110545938379173541047088489195891887511482436368270416564764542565205798633855200991828229503455828833015674818185074306493713742566700038747935825499121698270154412750462316712974931887152538499949484949130299089655899189912154120919006682610851058055541327935052420562762012544653727065131216133720709937937844134524648033359015188608080466856172379918225436707648289654108563837281784269140453875757086934338055794458007766870451835808352194979132802086788270659846844297378741551440844871267795886902334109474917752268307980017420461169108300980280346097371517273792564135513195916138413553421802018142230941141851563963984136351851583924064800768001696473101783258649632254104391907230609252606595094580414917575295487643996678509422688636390688902732471768563249459852260995504088971635321909380739056959422331309732724258445318791972120881884385304094122795593577605363640004968455694300814266373836424665156399776152848026329214478238705782368069558550115078107387606701082960740619314491080435159208895096278012199270607793782139856742009476478948339354681186131131779217867650411559359383844321341482960718162533102000111977940973592447228230126845619654681120830889712653307254157323591463465729611106545814309227953422128632932320749701566322913167505046644796553735127512763961586010433096903079286185675495524343603186929194268648387827143538865315467743216079318443787108108520053947374671007579033573025407684004817133588518186375522195751046279801929820519181886452747753926461281568400119911564243637182361064180762788903064758936941723455533418870400707756961200829274869364433907249792517414281092011019692770125508805039915597816500304942594302165519300954545199602669950048667407855584521039275282514853999537902362512475316638763397907635047034221264551538313370070906391442520460491900408245664450123419498583405130828900235232597941377425248281845987504336291447916766936368425324313844515787429464246432673956888529332871223345378634414274654902140503744417262853387692994383871914659100200311853385665951423201332063561674163624139960035533012601329692047397145022754316157742901748281897093055242078884455342038918259263262962017120136597301091440035585706091686909281549098706553129054327239109750512916570123024075083079270925617023481960064199557415663778334571677837052358258991396348286682392454080053331188009780780955465416263660052640882502075752235353817937498613806986069219895602753069279180452761544626590278748709415582198758656390512470716408639244133694816942532214814758081726475838683411710403248191188307115490120239593753199315881093007616036157095375548587406151598358940743250404759108256371956311798232046869550902573043621499336730737046444617270171279132161099689119561865871531861417489271293186887210273256752697570370284374642714036218736937314157007388503805579180359675611619508829062639255139778143026770587488688642505350095038618599005521988955485492323314856662859113791434755193123656722922506019179305495192315048613183798903802555849469681695133889148579259274855071835457766081760180168690536315912591329789605555196006420450435599113110719441213405613985053525617598499815353989798361510993983334970962114680405945190049649157164872447301934579556909690264958650341146734284921748634533323941136415724985077178858653167659220962679307738572342093084855369709348429316507860421927323837184684987404953485752856861786395351324067094782917177350169969754084046294751194252995162951045667586099266435411852306744008766530794595671905010673273731940056711424479141876993230546461473170765541376462875137437093239944667138871086487487725466025636482924832361834808269743805553028922550508462702201427590953005448311322893788001517317634772499878016607744495033740827880276782372022119191173476320066832386886169799687197442021987731869386435315291475421544105702848853074903368607846193660617351244751667835386928713762521427774846119904453679190653981408876790458753775515670908831465797406837722844218746203973743734456542270313535641163261931793237454871073120826752126898342539644551569773099066247156789907306756539009389874651353494216409085901671156593276492655238026008337603443668506279370447129804717582013005171098417421946469201833950842018725042410519013837349463280174917806456770362040670029455063592810219826276342629661324982564483884686517928044780384571333710380682993047699326992300517063150049986183964661815054094285671901649461062988535706028348098581500951510418202588403878624181048352078025898885299220536697379732803542473797949696372336078914243153595506217914957673780964550294568822890086286213596096977805405065610748775934983478811496843959699679398741936113234552291256841897136232791727766739712031851311480675677398837654301291151610068371580299521664864030776296717408002681457438709071246097735437681483674325842626003065444950426439188972419845384172160227340926294494678020967688381623469423469966473664641266578995076821674868705111592368002519700811430572164601775179201654090722309914661209824164199416022634137694187563617704190275648814443008294989674276848880739143242895863528372494657217366951584841934824863315533730638816424205895595123491701608236912944136097998046099382955831570711943101055583692806633654909299593139346830441657315029728052440375503848413157135849498934608629811112331434156942734179171622414443599967004725323457254764534321250298901677587164806638766773173739384558047387021077843494708564388911128589158529467292489389458047223430513662125096509269552893175745316226303990949625996591717678157127237749595212279017850199290899981264314793613633621613002627805448867188463461099041423024832434817655815313914324353397923724768825807784773832965553277060145032783831192947673620168024107797135991119008361324700390522901926553059692772034854153809947895208064394794239929212905234422332993947325297739878807680960885546470680744200865788295046565429457337547701487812842751717980302685678903285800222501473522604003811854894870227701558127782263726505682913889729041957659961436424358233626653672212907061448815510389203529920709954592117157367521413042685859255347222165721445389996953925761641435085732672478864078777793321988127508959661590724270612066963173951098399754766828912020058235323820281010360858094189815557462282842568228242217373520023004228153601606566763683217245679329094997983673565813231191901751777808540555933485393045785565888999109624273664411074371809790774542474102851956313566934072560620124497977350486537598677377651003747871870395249938135056800665419162999914804015833962687262915296012440039000121026141804355784421366510006961283994585290450133542755319225162497802086507895260102760840553187488646054480009148523230902626382408480950199369420514459405427056805663595671024129292544020591569943317921745512636350686241745196168442501479135723655973276819640246674080359719279075380449379615434517644363625323548138563234632038665854145819956317827471387665812796919546489241525821390860148951545285632318699193732977011473001866933520523954287431464014822276775304854032792927012144742941083667533302554141671397364776860195743310321697898567638501336108275862666343091992893344600243366116142037030317009578430294433466863735405686994402355457687688256150983463047175188841385523849819235778094114694541704896410913748510848052564995463048785295100177228102318749191566015086215043532934370231855818976264909838838417295819043586166059793650310385012114527684544728764496660539856656963943734289938916946415698620647960698420639042362912508184438144728859615879358869073368958749981719003868481851082446822508398601841646927380503713141126032493023023422733000624610124761792780716409431242510591019010836794086318529009280103116936461196152352936712416824811868652598711732151882917174285816536241657886153654316610295162832630948238543445803048058673277335633880587337679507085524649864598413459133749743570330330591713285516931879943034543633610118760730752493808917166260125010032282224409842744306231348938588465101967804644507646840498062145677486406919966963638399001909689959427775378588534343726258877792708063964755286135617430620069761044647561450183105561660469861404861971607698765496578930684464962392795778196967752709775030076997529703505871637979758658882931474597564140750677291734444071433406163593395537690508178690773110734769307388540549652754978662112409048152054681915346035937390504778370741023868997181064321941187715909719078265622074825083286892696027516150623407411672452121830005299830969960146045899253778593248469859063052129066601468523207012635666755889125120977926012387902232471725586326375042389528312227251037251669902955028929145749987268814273005813223049123960010575923021095041779917605582457996469938465098395297145102731192092403169572228704327281651199309710102014968378460458272524606981617365302171668367399089712257163361946889578998677060904186155257670059704064549689317995768671195228865042780249652856646105742381810857914801077740533900608241236857409199949592380347933206988716015242876601465932009400499049427860542909401839624483712665048223711426765595233981187676232167020511325479226879703837121672368891101147824555115150465775995309108135969383186445899226829341195581720028994735873696162225935157927032466447701685475316420183486599810114734047777550783401641453857744007475752490461701552682142767167146256610413864365846865923036100085135517399901589547557405627992996698644044609752312839595703299450887409279924943317062170182751089815913622586090821474695908905510142173432010476688541331624771289660021497011676051428170135878329913339116521122481143207381167721251782976228525955044499395442248206055612236356573234398247694960214064342655261093199549513228747921157787546842876542939469983495201364440608341432526696142849744536871490185502354809849533274224936254368882722319996422910706128953152968017558055381234575265692945187509879750774692538562975335738307095872709004202254064062916889659913931545356241287554420376553627999730265457338300720315118768387999371734299312087716348781884117034885771841796216564032168692221342844853948810486968594805879663324711640359752976380640298633600232637865684938059885604526174507025525141399257832768969104605064972405479848915651817589911840451543158841300201361326760483057678825026102610282062880477075116235153689095773552298320548859828326478037352074868548235161544169495777389075898849512808140084162414389797418159477108807652595362840904742748079286698558655601194068667925359995911462073213390572957924865216476579798723044456549899197904396327399706108793125263453662113537116503689765129329653221113633129674178729614631125238147928456746930708557189575506235637300961282518770179797503781380329159825084504311625489601410997301479934654456170314411231390733114037782466632942822401112220365711304388414680606685245432566090965575805128457121894489017567159202295703706852044698346443919440889312712041881886155472960420011452504225655074663565191235358561686687278104187102419881971730888404803741183244775611202155603465551427553026644559210522579672110720354014459836089627005982249002082184304560106632854093947727347948922357861513665697410083927352019778068648621697892019718839467474009167607749032763797516714206092032904668832875402399829460800405106720131698543860677635075640405778959516081433950599560009005639332738044398569022865112835017668504935949927723716188259971332140801443370770599124841291169166525849978010686675499308106324790072576811752892207360225717406416906114366568652880805973913499466171743134508070308146886431740686430830917974264849835557630660547351553672700671801957815711223970402265407903038118023081813992714694611349811297286583535455956430218364235951369984290812926452588858791393812665669784981426093649837069993911605680653423525302882887278830354579384887107512327793779411550700329911579547904686537672315717653592663549481833318352469122923940152834399134212916626344421627936399097993724266316244859034533005328167031045528602758432815848722843266390715529651705667022389127209096699464268006174798624826719905634979884264659728615616697000892918406932716200136890302397750720322415274448949414185367545461565160093095847308385139732952591225934026785116982373272886223196694750706854783549420106896035178341434654758980205757265188373391706723901092067791273816933688362984487023830211343830075811775184786574448235727213410621977440492897706499556362259457987876124456623025529042267375144677070370588255088698704726084101269465910355566501813988709675736476717312203997914316436420187086993107086194847375712345382660282033985807546444927448933234734351249955678493248453507592448165057747795653133922972296709589846749505875713036235110750683764719165941781605141185325946005976149367070519651790360384343569528949942896934070577494346616224311006630977665184749634936477714449185601752274943504875047650737327562014033586541333235617517944263527182150870755844152637921382777537433691126186472969866266701222453621329535634447517125498200872649175445340678180731610584843992437772735724475901260882490597024171422422102523972824553719192785982783323635144100767028388194776701465506472375967543486415629882027235723148732923215888640705755009365551425226265794533029686769601745902608403959605242967045415996279197126788868897272503409102411327351999930555230316319525491550395540363736791562069546377638501423298513719953524794004003527890817199952504631797103103285143665173222279040074275982444437938187796006682635586665799463059706807561012282018883754719110958525388303674955794149971084755500401058059385576238184676257126645932508454341471365381352255083702450455665186044756670989373216397649776596423685771127624469679346224440343779600738098892539129893104767689097591436719583464618380748249320707308920848407000194085207714798320765104765584289133076851724961676620897627567000765214431576858866609177072360637975223458351794029879391203534388875130466552753272379837331943874965193181715372129288722402030749555800889073454529812049319063081667369705143990331140524628896307165019970082406819745529910299206566389870450630117112786656040865979055056290799483326687280863725544897119031233242586759488187632912223319706653508979140864112506406062799464849823513362751281861826889621026531634150804147260787261347879217493571179513801617764864699386606944103812538443856273340573100887950712824653676645262530578016090954181828820782042012224562697465097137883374586410745611053559752452631157938446651388231653620946243243125229728429909352498173842477271470187444851260742037618729194475568008789447193451583861504632652322456111452232011695469836347254283265482281361810779451311061804593392291842964257038127512027546985202161735397991309697357683453051788839920862616123011965079075915601370290500132660988079577610446172761113286527428066058564518202246413433476197690314413674322733875425048677671349209649762089274430005213279146944191131229354380622109521851916138365194193939722101368050796478220188866414918980938151810533715323800192505101918958207160356121523781003217809069276909647324016509221700283959378638260484085287653858456301361188095169000310799903651927114142965676979677554126447895407003292108079753895533583967948791310669850918075234549282285778392245917913693738999653472540850068107020825046357273541807263447337048088523360511953868261756360783930736904992186976632530978300603305349133563434510467697511841025941552572504119845542064309925939709310598879155295165834237120268152029687373124922804233201012079577076316142894064815120662902053250432714726276918811724227212748357947430454269748140135279401498634740060326466895273543029547723212961759248818403132608560261144303297834979083986550170777362463150051118256214569116502995226581123212434367399005335929275899642851730994750544889365181649260697836276597028859559236637309661939010645753735854707721019095986990857780816319619085962152652135848378592659333103434981494946257743307702169715045879450763776464739819899881205602775479796674927286204740291461872337317019833259765273163929318166118351260355975678226450770810809410297935546017529989026873820484192548174663478102724080065221518169614603890008056450285358438372849917805826615685981148933394832410608545221868890027508076308545954036265168925342425055908186721859720219285388718027648318688864041036051090791294772608219347443442367279538130354389406292495768485310599145469465820799427902346056660995458722330714270614844277673758745501238639334889136638920510026686194745254659506426623634657615051109317491974283228151108673698590177096353630969566241615383911332876624955638657433591383423057570810337267072855970015066549936477242683346299557018225183272284174884518763470428686347405651565493311661486326793681853383154819782036379196656912500275711907322551697560748531225130965443204979537897267025290359280800426328536051946017404087839427478632407088274766982746031987656076629155942583100117867187022902220925623445254907611868884174217081041281173718246059993412558386883274322686987802106064973114016802474929079573717925019488513751212316011709906923570225400099998237160515531378192675339978728591331981578058816890765096307230740778995414737327367202629491455316515857305670215811348195495892329005536494247590281739257956901739217395547402542854848533589509122571376362177383402381542829822705779030296073355034679109251370473755158315075319192348352011480661991458013317891154594217800207499849893712688894065032181829076319789995894633976079433160011044399441124300286620316514758257784315269558573059406112337644951802533042442023435207342837955558194322841976765915634488125682288346398165902030356296535600955228062450395154455593240592636016395063702497936689294207343556270695203931679071773050582297180719156456884544857589902199047488970749517154769856847406897805458647579087815350839135915352572446062440575096574507141938489079523241429024812299345077366704809219853502660926710016165208493568020296828800658713232520341446172484325500369028845512102627358298250241232261986913474362362292924042507826952805230091438398960030736969850958075438979435818837063458986720976072423740728114381714056015352591340368428177120306610559801158186865763900268673514342090209734987343769789928401495870244274576971481115731194165557218118373163159823679812897037921014809126815094858822223685124535588019139131966251268745717691831354382420716037613009851184492601037244257392516060833656205775675780989253265693529286267659785056947399884440235765698359156301238704751458716431872070886994847410040444340518020641364353879937955547694192675016981553426553273104610072278667233925335042691210283451012072281296356041072942835142926933271203002904779614835367694835939027068892352819297384453530587075562970017739127712018077144478653325490668568321319151268475820971992926021354090885233772896374783329897649025596081623156656665001525920548269574379015985510055721906199737404771961586575210747164776180160866044967688894243076906297003695695352073701976708876569056983006651160057129072942477100603685485558915905015289905922197081627682877200901256665832918457863106999179971255314172086433936555083560233385016398034864294126631700823540642525992667677448393925132688087381182734610313340887949387215947955486471497348771462893330745452799510371617692563942266399512306116643472973452862760107897190259147187114769519780015178221744286622062522924366901245311967629712933161776623298051016893224414775267902621038552690899761491862178977487315691732026777832805139091141628683379541062123459955729331598991530686604021720893934094796364082710784649529060070831767514996863630551378580222796103545197038171524505633033798519724974633761234530108138136903048309075285808153688224576344450660362110767864559482779334705734668352736356909487089892545625241794072469223693855719500644330247352347665321072788392813359756971986095958748567876610555155727572152552297202843916851016322349179687387404295483720487338900997100453230220452765869527144099509226340322978029308000778151616778915351705448604794146423402229654037696651894844801448545470370027185160612245990364882793593199216697806534726057272943618731950415367863788948747626322424866800109668234518110997743496732190615215901866422869304770898887586816237633492343114273711009533194027165291229439359450973835895329651477337056465313997158091558185748723548311418435595675943543908287862992159902596167283398916192055850005136658435347812410207587019306450733357232398453747473986010741886565098615003082539608622849822022667008484182867764314125707299553669584729269737162302843413041031757236830508225450541264164740619478456273600855290878483233528037432719935126656633346661788808599630462016138860564304975021830610962604435192877211674691984628084352146075786909455136480107225798018594907238148672164819344951504167449435063770373939533543296888509422639655983993055764504302749511354671536094891291421764763801800574299071956135302970030587264265637773883486022146016881518044941333156710928225845470739306903117338642577533534181821087281346800321282599702880461713621767402926964255460668867093818073846799570663350727545292727448046767453491246222291087264987537292964621135325103990110361925396419950512177860838901051678176325159775617795386578796878523184004030378898341928870496540362396919539086584664831383613232419740159002865198305875086013058073303285980143934340024264531068376541187753051805729762351787864718728532954096758269229064207637408003844506546607647969378959177552585212823845381261867115652653399368543061902281006500624392163218464111162714055645551406705457953965749513555143499673306217264147628274734341404076870994075404651244502792644074552841315626991731751761862212554937508350729620765283278011030873859491451944436395901913001598478972031667822301468848559038808162592484692206883144250054728604222213990923439492808366901166596146309679042600402702288724151387843992399820851438386082720935217783740446012415225212408660713224114459969468166020953173679866819511468592439159979003681564229592183362047304256459785656293912952743752695449178364865379709245716633313397111634750190244335012199143370491563714588353628134172177588762025731921470506073006185561025080445214471207672210262882544085802011948961353356472786193340555305012444620886570494653728944410558132389404109913936733934863857247055041463858443217571196633689146860507574221998089125896159203959188374206671065186362836711895480728164624735321897171988413150670582084392421447671852243083996502470505902817818780636025307648887819212695731925030942396767592030792932357586659284203707691488403758899148460338490441148832799880216967769093246181198888083856740563828478561893040011742570860331379091693827118548814804445556164226429347977162391229571037751745349359685616576077478180547858860783123873698762486596733025880533478896354542854279906471770773750544985547114844836736604307524852472977799473437512573648187387899785559421102542495899898854890509781779888621523440985545418460780312932529684648111674392465825870248470636770726308964659049422057566710338552570309569729540651531420402619800276748213708376446751315024081812567384618427977300139877206363902789141611937150312567982907568094219431876194682602183540500509643244559774060907591391451783672365823142895135035302377872158950897768446948849471490663896066492788893857666049683798090285907223221733897103715387683696041179734725281028507359975720892143546515113120947214612102130214699749527200633023296400997767878609336173403135482912400507221564735580289391955223314115697943046594441530279985477994294167068689720154256686014889354565213778547847612102256031438427755706170509656497802399918012482650093575223216032107653985005511974983430589152074378661466613360292110887737015423509355814005289168067769006041639625626872196056628866703899623003838210421232318438568122507925239276106272043133749866598783451606408695714147503746717616213763254166122992987496786450968840962278942799912810117475117805833236638092302513574426292687955093351160334709005488569186584678196612215896428240562854143501125475817325166833255668354369335838359288036812108529329786120342490887281902637292814793134814394152226072088833116982938740281243008817337417788625579540121172381081177779311111037242943822514442744289861909063621172346465353328385767537585812880655194485665282729462785616477361488514609298304846827977246248607238711055779495647537123754035174306239361452152820654312422339143579924055323007621065500366140446757972233790044808898826426506560516803032014702909573072914154346625402742638798200037286565494688361112446381359057339188381858615804486909160444706070392370401200989018696716214914280693382837822177731019807745327966539923010391347076603966171839266090295717990784240630864569417826040519515886633058833511009286575966649520831164027213127830943021569085558243738153872000882529584722009583704074301573874971815864042266119660675008387820573816016799800547757977334895321671436090999770296616091328599651613524566399092051792621863829970045330314777618482742934587653412142417798535006057799456191601391674162638038451752970470753231407402190653416828491823012070461346087693650763811768090258814546752792249278091626806206651676093011803026205725970740279275016243780010231166528152524301559332722253097466219904630299840583070901104795861326794914373131377486415523129201536062538246877225774475628834438348667167777061400309730220589816611676693711261884606198813829133100776804168539760834457505305270700901163852737836597916229180546862141874920291678260343383696890580228376299493834519384849245628723574442959444052765044682559277926761350114071900331050937533234717836590274745158159621080847936232761710999732828963648296824167607486740877774620821249458934408376917801470375645798866898961900293990348213285170312503631156655184720618575642602120141902444729629806402765729121757572070245574798872596313027007650603364700000657434426112412091011415549382587515229578879092578062767339725318518085612268413062662087228394109665270343078309574243159431004409808093186398190653781288068331799186282318836341216974943380454304138345967398826208376357758203363333635564532706591391630811352911824501320972487876252684491530673897848901675503236240251487670117939613888180007073500423486179502650717843336081922756720765827036833335173858636417743300610888852153909002689956308163413352849783807746971881378441183796968256329429691791701814849388027483561308061520830830279986570935687615400267812173834069187746734402812170742774016112330202983114634535757719225715748268273011414428228175482911722552948733638014552742758234619700384769873247973134416373480907427408432499002816109165500985680035952529305294204993135144891789247158606867650018749280073636787590706649770811655616158138796201531418262131236388667659840644581953908598357914719009021864246969078697801643133782503241087285613394926001035782311081369371141465264351294554108855572431548267051658329720327657465628471530601573164491150974064469391621771697359075417964735716240520964544734166314162587509808020888709516071498327215487158156089472823742501763772482366450810664585081930952882567950203542264309762906814949273998044699828984511205063429420240837214540437155945050875331978636659045169618964726581316003554505503327965855473674893931750194702245087856397176269551539298204026267368663850264113124267939272048852442157443940607459511959094394721479060346322463844207058269404595555201525073654949248637523553751120604927857212547676639049244285276102199125441534413213508853598811262395067588288653557687552478147234445652466179189940804710902271180726336620696784439330813033116213500328940734169167470547116439458700878920550585690335128287225197318901760498238931943579762949212690010002376710687534300879223792763019880869018664215986556236487020137885656273557397980319845510448106538624809840292523168699287316969578716274722173678090422351881246277419464168734935988291672880367487556225595151254497960696647764128746716786081811575258032589960096250909177284052318467970013377219356235064835990581405265990691460933419869051719372526798680919588107241857876089617628171895373964832280838519573512917489724131029691715198587460172534962936289897958160698630644959797877250418209451939594673969870354923418207748946361571695383766284387427240753763956346236658739952524003831604118602380328534460042462557832403968599187401187246225119413034905577736326189100151324899367332782825590468683695707261476193862893113685166646495191427516600475992839982728901197279790803719858024468079743839707011183691384811930431024553797542537463351094276864737135182923193380119592691975066607148927655590855138727268401277289539049362760204942844247736028880324664043419399942256178753482888697795484855002484598734166880498606573648854401320855539456591602293305597055072605206673201766103441092107458639941842490447611736455262289176847665634979574226873002730771022271283202027601833991691604186344338251183140401718994768260325669070262439831113214149483689636104109777060795955565453394732147335141286026713298334301900532292347584233047441386990396425249395973065134080789875472754176674594106371861426009711045366778162424152408012927441737882196604537600384668525627318273037364623631486167154167002026575984020393891488515962312187294183252161412139775981216921641431737927125589096014501127548531447585400404185256418328363014736878300460582046674662197669584935669985292491381729597139108412386196348018434909522686109907674067263073141573696222613176563611375867453845723623248732217625053972163391267216051995993085285244024694504880306594593375958589180995513989957306364839755146475186268883023252151197055353610923547024434748824855421828147059275305945164860568972239120100348411926524375945014546805566124476347632743998564256814664291717517765022038198734086305439311657459886744702037933467732318815833822134011032129982561266438488630067778469298133360051850667109847048096727370130702538009244988995677403640601734052913101602542147668126157603821369493000047432172127896094247862465787374051295384753101746728989820771075739578207349615089191824357424143566989611700990888417978138083728189952777534629361195806209023114171027496199336603257787656365590797496227470905907130103724319439662309249220649907115857436204166876658012233461978418248725610905509161240711133988023796170308108951365472803181826955431546205691203869169135584125358515638488946718321848002609915258311700667776589031399654876069826224760975446934867855459653589537015239852550689357386434296820201174741064821548892859566339730447208584309709116992293641703795639120922285918405195643096914150961802022741508655158999926831620642407144586241862624117730078781015101599412053855708187407088692950354716974392067960225085825752725176546599284857654560138535195920072310703574724207301341417166481806822475912053798010774168598643939411313670921843339174284756919099484463072507601863763082461987302794182289903746469301172695033097684512736124596217041162014495422223839332276667029128145415970782538520067441116747364790469308972996173841149837137262013017467326438094258088737267541626972458539184907489557358936157411133497048447069904397017114896614246728471861353328103299457098762397841029328270703723705521698926724920841596092516210135120145041780212157775046487275415790882318528251588353182638454688457696669901358498186072354388992857035365509882731243507010051067822108058777991538545773959148326767461466851537671334502309279343522973820690493591460284164164517990444556909900274073565593396824266935095761500809569581290557758191150918031609248850743385003462541163559546287951582185277280238292671658808270480315952380710892902546370951186226954937290224329636012803630310645111743951784196982683643758107592243986964326938725697705281473202434517209539227396639942018655885509009866170026486535998229439597623322604637779803213141830751061829373944206712964512167048786052514730651006315452734395337709248374726130123956308409235964722060818380444314601177773968577779682516142538608451689080158734661466764465808200317489686124335011816383011197323284193547191001592192064347408441067792049612478496357612872623109787727528399089384732801976650318588001487058156105403375439354638401885090603031582904932247081146309506741361743514156211730553340539199866718000368651903849625811762660071486757005567950321385850297173200209456685213385198051170413092816940768306506056714735520150350042965954902546785275505392931406351794907280003381446482360305628138211327201874441732170403639235721388613045024158683471810064113246080435410401198057260849366330848458339573166240384787267976740391827315450518293234222256578746293044966978800905625213734530555096337656203242680488904645215909239498608745806876747315992098206616325477703678630500890700787065703611568029112294322538617938911822305181179474426592691107688733051681558082567265463938654152470019063823163594821476394530636431472393605468046971339075901405236954715914085508798365607964643652462348987603165990198949842715845105882776234490614683385266336766654450489831544705643166677425143997417282638731847037467075614522945935400092717468237587617103588869040921918360076846788134805132722610873889519646349450242624684047467768357036003372979570361834058549185394899968841261459414566550754548299646568026793717378863158001916714829053329785989115329585162633704437795743836980386670863466063904498239720807017884171256757486755637610297292752590345730906869941775030482742112442312559632896720888421270498086252917513242003127068594841064988855589187431551634153090780488118751064871162714658303528589165253192532353833699041871069299056936100737689504026764545864843394594452178975424947422751728602386771065801456272695060171976792256168447460040751597834308754629426146764183755618540097319244239916720832781755679839768366363440318646275298725302801596022051441860970870042681939229835957761411348139244808420775018319895956438406563030081774379491792903277723266286595998806774520413612172601217362301820248753243984860759525627500830692557715979065452819224224512134242964974695988033810829059680784957293060305549713823360593782082357448379015314568532619924335217211453598058827553561752547942048458645378239694079062194600060605608485120485268715260989333393191866935877173375178328471029935670043866033340696555456955075580009573621130230262727658997568954632639981270464629337649274512488223052597422117732419986457293774099329069054955510026315798863575377133412701013554564881799067740699431303440441616875941117415773173931325275744339435391161077664559705701068606109696494913659316853534673196590439903132759583367137836962587279917254403442450269516426070782786999068198362576836190242548479673745917847480698621082291623384229805196110436883536341955193738326555439176104374633938456911771338570104441443028137163107951483851674990925166226075509569250981651995818227267134616089154775113420602151411239913196047690647376970097581572463469017916622846627207374023053203136080570747159441185745705383412116499748866283370354345619873591067404404451664097374762051012712663177281617143124072539105355662814690610993726375192378456378881879921707770074384346726008056207480663283589855810827725132289486662664964454694943293702247644977682498618212221207061144696442564645062528692451154873076788232510615145304535702939597339931671739664495952503689243497659050255624040558150312438521763399746428251952522627109920213874824763016862376741432055252364154282292748696508378424412869547365682100525968624622206882591908029445852855561590677064082985329975903915458016796026874089476312717274515637246369035558165637282140120002253923384832778114765936621634263662760034258002789881339749617943081132475532495398328401310059067015067963904664746866212857484328782129994734631452431668543231719001242674474154342619291951218690445560551089670326524777989301273297102613115931809482774715328716752064307166509530576776988626063504404444704774392645384173732513733879889992560539619382794386896166143461218761475989437646763331079463709138328467947247765038717478687987687929437251591472295031911037059381893702864778513991512603151441556615998075047461740055377776571564752657215687366677230275208708815696336597677708707820642375542215282046515261601120788591707812265887817361567436506140372103509762981499117936624348232162035348220994809863394827500137933026198051313536031738613844086001248008023010799159695456951946370287348103334264487417491452281483263025114772585189827740598448578981496723897206981040393960546024600346507809513330751457344042864429449633876839025154792789207917209501878454044221178682446145305435315056565548498474989048820614310619603826021129543300983996881966292585870769434583027042980183262094063068013150947153155910868476083422650120857528421450129801221846713715706269964886014579788863622738768496800162255591829814057534544165275507774321783936589887155040118901893725079720039508028828746080412856073257818179684316551564035600120444402585480316298704458569892089409254226569644056227569067820034881343840516941521876331963983038124784908550448350691905565962691932420498939678999271336920646288868279920575048517118318625748354150660209810386596156495106951767004930386084759408497155397230252149322181459339662301753885978707477299607291556540835362602676928332869879346994312322075717465370193166835874410784994429257589991405650659176145556133600922138668805442135188438799159765240098847923051702908796051217852261131907982270183158184579875259751279118063263325259934320371218802166629957416481631115475436195846289426713760946879503228076838747777104796798261937847054547905664312199114287123680973532858124857817720110791463748845273356356180531478130265193169109268113984737062709294403590258219386491310541914153384989433184967845998002409930110123610355583116864465043236172851468985577071019275993701551286920457729111164266691843823744237243442495693893683459463175303410674758552542474803284807066700865349881750262331539036343492222875884153327480449789026123167729836258336605557186837896006476050292330402222059421956222376266863906297067207605579199556336515623771174175404877737317810888921914169669412579260206173132389921418872316875588137242148406986947268022447141695038850872542590409146709045538932920288592367825589058632404052304714593271110450861237815444644762177850509877669486448751717965962503577677225601159876897735890016254845556603892074018987014297873916943807229015409330401384429511752604337176061618690188489165669652829233521965638987198469574532321271591193207133567734097093869557570899665419005560488768153435855059657101726345719619578420732803007543750825957236095211333967576079573186886525285178188250371702449066198100273663576955465735508708339643418692996243619815751327029855543739361793422720615788650294492253099127689979235291024214112060912799226629772959356864068670630372018330928185079089253774456450080502659875163037783301997151170441322257947510630523686432356549251529731892755499855154440900870446007204808519595508481695874216927535829020843430095023525076851045410858410696650063301698367157890778351268896461107761437220394553227961782993959880277101151402943891387881000334249430499896937553848317344745678206387282127536870629173541874697530698560391271294275689531901157657643966926648762169615568013632399622369338111216140261921350988681666581073562007533431116177518768765147984852417695082168819437159285474584526661764498909379818835777148601529815876046459865246212234470267106230896191082012027151938514235883837839421331373147250456172085420901311684115378132396748660873919341036833627838658457375325734587805145531008562471205620732106401482586210415739114734470832914150012384428298005149144417738840249756513179768058340081786886648266376524866339232131065844226774865013676884582480294831259563219693346930062118601610172834470902542424234482913543578694348816114015371675568569128360671244613836820614092110990252539144282349208139586809755518775566548048199726825806733323341095680852597398171342461441836996238253119397262938515301131484564854356678809573884227328748340882150926428426071877137707136992277979518304982954327618159230626722312317190055760139037559715370100902328021752703181942459764990495648760121840944506245639606412803557957611924050216453742919100215424182273879204440699622115455894774449930434803511634912198841000429812947677651032603640875882567532476629426675006251218026496673930059379248324997158188170521697601492593133082457121856772572974555766818669307757499296321545549962073941595092737691151000509382628923261405042865193348203427383948026653874142791848741635640435944143158553314088924635188092231262325503020625335819902165194786235466286216848643626170554344640289357227350700699522176658224820380017331619073090042570846055055901204417811119501742242784236690042820753958964118301888256493569968405578467397607647907344251502387589058897601434115450871701502197210533717873445669818241691217643604209303401956535488724754370164206665333333218054746123085000366267809485351407922529912627145905634026519907804244854699272308727264341656048721829361912205644718286077635165622353209769837047945072431891350314631092259903634251174657532881832247655868553176847993835061442633347104439207240634784887406116976317088140348183625668530618105673692659878536595594893984854080869444988872953177256715918973759583608783372607339468023484601463303146639320981840883204171997090349420483842045255719878584028815423579950000965969466267269415911384606681847621168096871154056769403113667416185445402463068721185311244681086132162531823529521073001862468444405000348220087984439061400800823723451216733430227086920873671027571916354543496951344771236204473630673231571328186221741840314439975729555485343300226536569284801586901535114942081566361873904320335893633546052657689568719332708304243599650431134488201569549055891891762628685864203617405953870502170724468297430307490812252422767870123504364630633000221172289109272012867891169469660948424068746081621403246766938022614957818784712433777946453413102402209473495142868077791471455817193225373837406715537295685004157227203146047759822061033926142089789598407139887496282769571806112059231771751653912338899941021225344484005337281521344507689340249660354328221514915805459011622935044677547751162237171712980978026331150024760901745164883403523269702211042382338254011737568210634205698532585291811068216179406881655623695050309667993686286518286033019412226243274792688189396900821596849549022170191547091994059387504694257918659946671185834085167561481076229938320664349124836123939152731804433627030675094140857010916333837256444199249529303013196418563621388633865505471745640736062843648614068759232248701780522275456891540208146142566622585523903221458870477701325758614040792622218283452540238470576863091600633920531902053845045807702405917405695052237064558531405055929384607870128559874083334427960258297612706757359662823365921817092171924423470294756687831679087594882613464845383453480291226388730207525823941714754643704936526884241634413673700610642824919476267088825169824760049225374166456592706559437963788119473118465406364652178030669440987562240286524006283403761238054727486324607945140990539306660912510032809884998980260119394842309576212631203853548212115403667353583975550083324169145882621223915017857255245223665411396691231335066478816658528017993960760112471578745697944078515120826380168487172192749581687492134863144782749579848831865960733213038302665805330302546728130435836285464634644299951330272480976343839158975799525760351366419190997524157036675033994878585054167747309064250028364565499328653739727712164378910693552626457114329967668498120536101513072661646438351537070231098398045937234193838029438797554652354851077146576772699030288024361439160625728665076171481093665829038250194503099722016897708410652365166567108226403930321792278360768432362355088846148491896592934295365462290212669568430238290935485477644354072893464203358762127575055153279149737755124672709970709162319722940847568628847664009406153284173726699520954304655103248473207951944258758343711765340874723070891799780527595299784460351373898634513495404896646895277872666416304387321705018999952170055183810845840941072356093032502382439971077792204070870895281170727471822794728963562879054659300706395288250287982249226085892141781703717304223999770256296696399468950122750730176213469399810012516960405721602821385454252794006137995630536261491019729970129715093932338546895129234002758097526739873519437719482469536754155784364906054436213573578092189115866514305602897057728266803233862865367352175941089021438309409239990591019532380101029735687423802859913392816313315755112992990726654144968737556569626940450073398307953631664838522411092368524345905948985122147904859522104030095972403717044227015577453994157174577276617848866630842054998198695474454462693684862054200411517255050450395944074980133478105741084269271789843492408593453431235265437788075812298523706319228194721295707628893257014090355879394657404140050269539933403078785339701795210720892182376944166504816771142022862757084356853510656630375167609623499115965991017871599688693799834858394991739032756354291655019661100731207981557246115110317854680610558318755807770290587372312397857205893628944152446810700213553761740544967993930828141487983293070663389712300146814631204382877891769644858195239219906935165345594320159669721344589760244845982956873325230148544749693341590534835149791582562760145131190534245196085103182270381095990915166008542178738301514715015636466500270855502948883595208956104008659348595808020112593871878232071700520646186574752703832265988071466854625613553630685562992626054256149461457942029718882778270838747004887011536974816951379876419771974394585493005635349435036877582672967514130189266268280790887638916089690843630074755731429344016488364348507257037080456143251698503572474028228722767455654198009401801927240701205125120753383839160054428920935156434995333341945420952333771145813872163218442024814822813718604257981760479171781507608237444285637320860640232262947823711914846388502556605113482176579748642693355776909514578812467752916029481606541285787009081405468991528821269730875805692315464578105491651088886626004711169163740048130681688458996547494724382469504877042171036452028649010804119299567844130860394936979671817456533992082797366613364829142869719875915940990165640937018961794311987009285837238732015131601790376117995892891547042296043553842781688576874379264851630166800699768203659697052936742559419878241565143021065373999177771431357223353933160491275793206784936522523651337419213807289774640374712439441034854851115701542075785080908392557717780353400617323574907435550440476752601720596045827618624068418848713740696492021175656611795458870530130970164964704525586358485548784196761364103382776971357163286035961134971809519668360826509547967654049128916522947444169418586594120472438557014027664751967752086764447501559136228055955494541637121670914609104344525779171127194570920255292442802994979239990320527442753539217963184404272334251667882092682766029951033412178429479490178812248655109537232179639907382465919539188557112583311188262835938512310834717260154444158834743136546587988153455785222843354253936229261480982207076963777668256318608856311589993010883828087191219928855800355173706321372562792871846451330555121912977243769297564536946318786728405173956492875145933929955554348956584116033149421595540172925732520467587099852495272980326432845887340897854726039079110027118679836036422543739413566665908415971188039707133209473230474356739778698153104588571271780817499867254988571763901419147918806851130083433576028355048191044206233571931457501549642659160927903246743485787729986212330922317977629114242907462314986829372622069399556211397640398817638121126696867410221262824578094116698275372582708842050703271795662056509561275747651344725465349186607556233016742955397563245910387717524310430368570540623514054956237999014407479781921296358737360951727974800291257076108139905118170692270959453991266610560574076305548121082101289173932296483272900751567782167818499084043109204179295931834916395225129025657993829829398091480109550552681869796111054222063608957124483241159524542525843337809966134733722860488576908191795755323572815345133609057404172221342396468738959506899783380302219481803842056407370707600529639097406945075694624408109519432143279848415051094769140881920076464121198453713769212379734083452517614355451432016372837458140685464260276257850867300254495724138556677891061174040783003644672528674657544781463434131870043738720655797210311221142349991915076014174022886763554376617921723707134794722369870406959551103509425302273052355504707679541648080091959778526559862446536829840381742698530662914756383616886914627592504911356652896617052786921553144982262506788585156503108956516987787518879528640905945733015442819714840567563751404275179540685285714685448460855257469467581474358476539172571007732316053228513151928542147543500226231476868362652389703616071235717061699669180022592730814431941893967001690201799641219763572543075184912358818159411474567973846538557600352509997781655705837550097468621632461342604650902599247865898605518202338060393285278478119147990775273689507855345166573251911342959561475563328604110832613077023485064663215434263222542138730012673041646199862121450327464026648854132002857054192245703209612456432306595135615254705776462363217080620104492944142435602873336798496032514555090834851783450294558619028895974291300250469010403331943766071688760168957131767464115366856335512075305484361398464728215234254600177697367401388485626161621262477592040190904306912081665414063241136977895232777863656645322577311827739785634263354711980179134092825653577643412707832020201946116313093004869738949870384491931051406194158321407488333235722674202677889810745452776350012025199294340986288703431420976189354635925548024253534894670734609388960683953581958043713709047781005838689363880112167381233367597416533573966323974476414063249869509745324844932034517036928258632387729191512458649730778888166045821369896781098804617160196999145762319612458683018209096309320366098325334023302802955714837328285872018919348532448920078646015334753751261500025132962597798743211554391366286674194694175448810427757236762600251043780354608671103512386857906869581366988108434795497779573716339668456735109589288492468845800272467621739061604973934891641148907715971844990777915440928426217015925846010182293618825935009403930477929518329923603663701107644088893104869114747804975400350853691911910698441919219358352776557588805653725124133938555721232937369082662092781412735048140199679476343970487158124061995932679346826815429134863273715119154042004241653403286303627015695253622046410409765879219307086687941973250837222597519799464062005550643755952201090129840624335901565701567150299933930279356230557287515105346014397197696553549045278463439459093061732740970661199582556175327758961200359587548729489960689188871945974682276194025851019742518488142529159796133245905429062412765229185799814469093812069346066674500408967292745252683751447892983923497771600043744107726441405108083065855038811574675547177194269650821699707138115578745742252258106775359942142495832443892860640179853767776786652133123213295317461543036072864067276682501047900937201146280304121127449126778596047645625069101794296831987235843356878005873126158776072482002691406718651176304346222389676572803514891646739324464034905566097802947089415633807815909499728368250634779480120404956827773252725229264203752284442495158630555106702272122036436471256827856483090139256616491551666058448029340860388123142964799311827818798743745485598584822780173765054138587460245300039962446797060005778389810750432973425652813623636997937630399251402590999169342958267894856960546062808042707826439949212387682385884957013342876639205274311389393327205883798297198843904180820526916614215782772010279377665490692866758554163242710200944082218572250926875464649158731241636200380316961656880781647377112071773533304332546953346272572541355907933473659429440560641272592467995667130102521415692832706884749506206472305960333236494775570654264065748935269695613646104483748213115756362569310256062231001551045107505827857053172183977714142303639126797086836757831930338713938933439173402515708049270814440986669505702606245475894899087288560808566259353295840438616181255806477143725201682786489801226442762706249541595965840800001546135606119518096606091939432461992490886338472327314116720980069551393989100673619184689352914654356683979937646753640637112712079659220316493419190331239487932575938165165246131422595558163581208873917263384597631919602118110868800031964931685253517883684883355585797302378602180639543628428412563479945030782499441542826470290616469698607344736917378460879758988076100964574664991192000231530538273642711591469517016352616992925342876324900414833881348587939758346868004833986711220231911766801254800028024992817364998990024440497278930895016056643832203048589835237937610187031278278702680510395017859011810142740477521996426355354228255459866943628400351403503286111353787412039805299850940551703285990763812411795869178638098598009077299276557376324330393581960792298605278062850646688918329018965715801158714416139939612716651271759002795758640981130579309495325750463030309572962631663611539154311707947707224330002340123981626838914482941092600470920658000201327079460249255136084324440230952092481214825855026216429453709315639423763200196975145753842518688881417866882392891567325418247195871649984735242486254618934552779121991101509000872710823835901261564732931730717214122806679178988863044197978096479094511169243556523752656411699611214345728840161320781416229061526735097373404056967569836894265150780691686534150912508436743918999434193093192090661415558532850068350837355417621615752254213444662528971378772984908518912824781761647774431500529139133605315651295672253081554134306865141616889146347080660252031970297362784031689445061573738869704725388896699104170035180328465818550516893745715068948922094774808740868628854099798795808081582633017797072977422274455503584421996605289471488867450106654156363717178507113175291941417178755715209910546551376081056019082543324968762280576083600972707681677866756906785273455341499750159211055574483831904257092077940041676820101761013962530038203941087609376999813977252773608139292663342861348898287409333413934630651919339594148959950957922139095418907349599603099432898007152687964479837998730099703170459945722594426142033546390807577762715089212793101796140633493020958234661061575052608902157010064182076860254429323313391516683823124335833537447493810125430609925809259047595785581527395518337308417605630359667332954441224159313069616014447704225289381781660544413053940882008366213353173257235426862167700567484490065765610385922500230214590479404683299602080251764752999323418686737489153303713202286970770416245247077444367395217552432716360305511535813255772132474410160030081459805301976061803534141937942397742899654417136833120274068119065144416940111824252095062170357750443783456252152267775157512017307270929287379264246287049616062173034633312519836228753091194837065475379773032274691917789505936598000322419363597745506100022506160631099439413196392587476046948416344056162740098514150005817614122109258946358487422273757532478869247119972244391934511488924883062771977340850141238427884077108838248244773438199848189203182949731567342517130992974690473732504391688453468570847829137068066057586418223472879087786957652294221060692807374056640276484668947454815025745259015921281034804156197502255133409100520439461923760650054606452533283900005314048570966730261044718585791075027376134538914166490262947761233280043642476713267754024097516157319157813019964461987121669875063207741337211994231954843248373519671815683728015269073224600333284604021467617693960299663472495690733569406910969413469838187065614831481175829635643755243640421812523061400351849210770608901553313388381965770122924671010020984426288054294510979977167507834636974861013024489289763065153933858050823077425703496774068667967476575101770905324961129121281812915902451486529038193698120622794990110983269201596588549893456425932203781251681829885069637215100696742885987353626334606435464318142072412768312564817119326674296713015679899860579691654531660724626867965006383539281950717899697363551633173316525293428218967512619392731133497534615645569464201154293899004956432063495319483317004665174332034634448337580347899428666783901893308802119269739589002154085936401593800873470076396408553501032094538725956886656502935231051752988567204386346793076611412228776315003054511671254501449114733129191991130922384418597170746939625881182148748227462525239735825187420153813980169591515884905494255893556388339872719541179723578017882301774689056834957458297242379135174497835261780389659972327670147721560664083127229309852206956148012511040565031826087298248915897543457715100935199876765350809056840897519999656106385458761796491866215353004391346730249170477586062167740817966648244059824942918570257794324829743933023590219799252396758203173843890891092131109363061607173388543561367144920419644341916070941957488927554534257253496369838225830468437780965041870741716491516495480682860478955915492365279327766712465251163614521828381465304963368007557672807314630315959912640631728200404399810719686026719075936559813940285556716728162981321817914861905970300736978387972421727397974992010702453514544002521727811266592426379762005382499802725351430733152061631063294027530701208120885476373846056581813680916224416312310089611166116985050032457304247671551874619155593467283556072232439859729831341564394333926580916241864683304075280732737341908711446006712314993708122242883599519712004795842947955642802667225134903995124442600474944193029426663481302502556600364280617383072856446293229796252384112292816446096494402471224430174666241417078194295701783348675534634422385856960758764233828351465164779468008788175180941569607644110697325481219656415612674709837503268734487644425103559929571506435366635945809602930552496569905822607554487212280808517624707986322756843630073904849566275040586733053024316294322556342813686771557061586852242343839018733317083780497176171646464989254232946772663517952929075577419889188658035532213972479117166457706198625732012191959106931229560651474344515578899180160184633659490391958675364824705665482768462406240256249538282246628359826763399344725811577625893462026243255671919137068603905679619983559525955911315120678328871023260179202416875373658596893780740199849367125201565614410427952013429509521639933739654971244375520816670502501967480163644721674702474262185973730776264900899271078325862451029039105115495626287910909763039215968290074599588451562409002761379463719345765366116557519516036184513732503721047473539098245274602568993988647449729817713750455351808181729020189666963842611644981698977470843898361968904354283682418826940520147049320993191114123810648313590025407863160367389519637976020186065212017025501448146022745993175933442283497384918404189016480663381933234009553109600433872289356795231281540751051928876438385891380125637634354409922394067478282647763773627930860760323838292374540089178375765587429622665934295157147664912026222690106968535892495981563631177382416043412833478242173963620717739825575886692947151649272793281882244379624382650447941190539129799040931218636009785422691471372043044557984802773547423458002117238216559039411806516532344460390387078366764023571182377420440862806291933459335600201916402078702774238119060177696726186465330604115026159967932969821317644384040328107182487293004163840562784857533979537539017660436844980417962669037049629371158849132528520219966942862213895042439872564864992918211849915733816428984123362489458612257489554692246730178307421502571103300811053756704341011298222702528752574417859044139305637393869813948301261045877843822482494135934841734495937872186611442855390310196421986447732031560678227234194372292547079212753828269166766080832724839654576149203804935347294111330157455989802325250859555568956439494796658419660603792820500061850958279797135647865958312163803965051513988644774798097876082542962402009423093463207231157083801857510516732589837682409094016771132743136789363107612829195451485907760879980681772194035011635480842290262817722168699920360317699737239489996741383830561818293304434646522101351126027514865723300755546901526773415369614086979521946143978964221487575369108260271426551037584297928483805609515871644165702865992721077467637810888995422197920791089004922959606765347903183638217641032446032615875425304080316689293168203096052726503660602328166005606944822795886929395440549530992997010438344339658856332662695446895711254901336515716245280838354075524244080651173817586648419260955796094544766152369584030990104882232144284810662029447329655165354400120506276401940274172996106348583256858498792882603613986876085692862379432152284186664475740062818867539896488757725340901540275385118931074859627409205930175292037852418676693681860305430140609345478374426491148365422948364347531516731248204324487110345147347410930475867254685713579597669137496827138484803900014836731699946524257381437606735587927543180528598740917176949322542850920550996412139831644415026498707687856173697074624446420290725168715377667287966047607847099352369572055867551645554386649708029475915087483480991088181101259564033327099295711713464098317630123394259206153550723710276459095628625971883473679321167066204602608610817474917298188212976329082017882264715142717134476252440118521541997639597035210484129959043071722258053376918289027896467549907650228973134541782275934773928737222649282065205197659643212078862370586321191405153554296812911582888364560609851256379617089933824446465595048830702886353296123454181489817473070202997283282287073709057362308334893136010417716301926078957012516337586309376904027670819828457270118657592233116042334213770495442343209859222466173395810708140023542856464490987011359990981107249345389871928203854382763850873754247086183564968876587309111660930930926794357127944109542115763540508370278404869907850295554626411417604506309706925069220811816488027161841609993323692348263640947957067173137106454880427948763605047275322555450528084064370444287108597061953821743152087902234510101652925749384771173815827015506044067751456720508599694451421141175939876207376821918977849750702687915580807221634235188914339926911700446474158756084915377398084413821376074838443426619964519527156975388649802742794170891649103993144327563515011734930477686178593123402780811080718864448386732124832310547469811059277306019978072530694143548032690937907562185637460116264529620430626360462406756931073836225211130445378373736846045746240813242181486422966529410643092020808959828529649815803788214676886779028777347004905224692609573609661436392538777447413981369195738670740730234629613497018487642232372576915086731885064902992610308263325955528156422367713934821568612379828679236254366357944745905331528386939687415341411943484711858311058337130596938169241364697113099584317080729702334743807917936406847776342138501625539671364506989396228514890559771667227993849442451690621687786748401697552781009806493716263452292645528233747399357439540156870062413082099168237207712798818811279577709622123662225031047945069582825809216652586748625357260317079316387855718734150468263885269432180881028276103449441217483308550418175576297999594196404741705821886639688818734409740732285702541939627965781018349241675821895801232129696281764047213417823971307003297295928963358638607330496914157729715514756529400710204312314864800083370445967586836054074261267755177583985340082240873003675440295748828940847756338431400971274097293540232468616749871992285168138830671229367590384777760217585380916072174851562613374782681584664324551281955066206037208005158271934471249963718081413844609387391698442606423694199671580502133038685255931390429205645153170356179927627077484053815308542522756902209940954882029890558575783188230997612183499851090174549764965430716839893294354087805148310898725251721216810119089227436918999140400294484343554637784571006130062176873932006401920814810569221626249267233422241965958663217692034627377167019833811488884623322171815086722002640812908904100230548476831065504307137406849026479303650139942710190906116106227824726812128719091619342682148319410649519574559605362794402728653551237284174573249840984429211346862781741146191277990821601912950364134652916039225997317227596322021027671235950104536386770158450598236771117088679348188122976763384940881488167144134546019462605162938076380030015236739909823020182298812690010682448440051781257617944670041630179199427514565208677790706082657885713134178586974428488376135790802379742875774085193102103298928452128829269158157032771172643416838492690314509518324430789993893970826532548839055642935771550182735620793169014463033166137122590583071450179702890698307163907063678250188959038682168044471561653350172978193549267458403419953382784485416371425226731058272394531995133610678867573911869132348815465319208771930223930150256024995836319683226088429972740872207356589713683919895735100646480306574485600469600373321891770798483607597051656151423919841078704146890966132165883329742515295601643199031783776420216606221308955564160258923351495894511951289336798128882984372168185711961632381082917469708574101020390677274983083645139140321168973108793122986981742683409453787198602230380322604191907112718337114488562921473009481324726582621516941080764979828982106655130257602898497807152697942811214931054765948711782892745461376054355667362363460764052083991512538471488612958145922906135464515730551577848866820205256791467846230091655969460309653298905687547910616513061069123134636305895184696644181068904379193982336646252698909580089590373764493886525163706683328966277838512286055357226452438550406170714072783318427750479686894963959265696576282301179409999516381220012801640417271496617999426908937799605636558062770942052010878946686336036520131082635575713847277528542358255035396218534513514100484104075607351775281078260754849321927036684264744871064990303241222044970284264093893450278195137923393520821260537474422786557290250983204246372200384136328293673342405537599613755324148487835256293377189028726004060442312893155387540465704605883179613332764556714000842495229494830382277079442180063162077223664645509572095317589589527681434646446972927895398931293596827788854838425276538442056324476323801484386133954119995837945581698398457509957498170557318694442765743361544993031461090806903792812347589801173987250930691742917059311104219745509770186635233646404666376788425332791813546937164155027317167740761333192970945910006954197845766161117767118899357113898501908719671675901748663618517649216819914816197013322464281705411467645358536452902848273003306400405287917678870805107742746333750364865097179390148449358598628892338887914800530562676542807523352709716506211109375771743614760389362169857259539591149607623393600299899746473738351463700670761681760394514924248074356372195043807931621614404397881375940008057794386794614970981938705655471208501891703654635572639443000144828675763017467406453872455950489179554693920603464655813690162079486925138101137931376406037011120816084440931289017173009417552540486429956474626291109139184076053521080524035052486296802908462734889119017572755578677497182799903973662365713826828229215282706103357077764653919231164561255878619378452153195379378200890702067115030642052794213118447992613406121266336619599731123313399183202351460246181511455508141565694548646459231555284337291242469725408099722891109090221029805734396783649288404182178068172762942255546754041910468127738180421856312346923776539446021467824901295935285068807544630119183758844400649472715927168068284349790236495491863926642924421692350449009216352849635702619846311525803278862357305566189111907817356382161434754440524667445540301029835385900338150597001890444621228049089994842268471075408800750740196687912831156481501792139134494515856163805796713396686136006016689997367912539023143664986829297976339261261677870616955768332236376735087680780294999082736293814602579131700087465392674563160132620360242096840016476630415050048814591755997075988374254437956073664420102456745925639121786188821978996901640957930581136771585873713412427942815380672851848133764095092608701937762897083711761256862623803807606344718764172004328087152690555646199611615823892094548422654667559616524593724134928096977612537556218820852057418070765963978926845833536474800633891611275936939178487728785788355266128740161406483249578605733621714930170000805827295615795881612133876241089056322640535730116471762132112244024083238924832086238807089809706246082301135700046714367912529475281358181402441917270330007591858508588476380023333793382090123892375762410584055545165014247604606891872967215085964186046262067438254057170447380608123275060424080669572962013605911460668211374230859787807055195013275952179911014862616167443349705179395375059907951859872021672503332279695261346785986183366148763644759770659107199861538847299420056684750844975939771183873906638426988031852675613011707043988243382488233806223496417605610102307714322838476511306173210638958562821290976391051183621561166335295754733545415835041690698160352835160397215194817963548840945027617548246615823827843938968547944593416461566139433164249489824487250578364901159640985193464487699166219511850289724892834185573005793054653759798806466740268557304026590314309109678208416955026667008686692043915420964207638625794782987384075581546751474341802049607739736773331045605304326978160964789863498394923785703107526475514413204093406594930002084150192669604097842731224341276269546366837262136513782411993576972753525399225491174604290708708697621049468868137412532494713137943944936099822979690259753521583836686777655950801882631473023007418504813528771352571126054330788800738398394165613108336580335915398588955236351113074692062964308789281556205201664432775327870441745471634925317833047215560643069532029281150682514340050337175150698321864653829686219651067417526520842052523539024887385546434181401238427151117066294903081824973433923268544154342952210500729933526227262376382721071057210961229181196695232148952638385209132943215024192964995997922581869859225394168227157198872490194164482581753705958253415399291644653204672718494802149460723572279151431092099030553911116660620899402974156835959388434529353014085801957073480087826688850244034338363771256072991248530079240707652492007619914890444186108997480215550247413166799352730210705824900781041919459451394075077768785775611746404084700034962956289512122530105364723601485609697031902194421743328478672968107422981259747694429648070103354833903859211758304301840321140422006834429110597268754235868206694402570784040788104478425723721529487536415939099163975373380910180689720914563894984843880803203914903890702477146985734567752323878683146181298437481766772831423914332928218593950400680346915851020030108416207238733637074347370300535174825221620356732090527673752560097368594816895676348724783563465364244598280575994759257836620496183029651378955405529573546095803220208312061226285501396095633484067202087000072327259192123023366118270718464065621559630531782497142248462647524404399934018066565826377147752373500351851931975036582496250434424585254802015922942206698104943524688820719627297544931819213643971672545154543622801540904589227140618827527003784133207558289568561203436350235230998802138029564032878632802841079019794878598774278796980090993299391661716774426325512293638686039241999026841054565422742070556859237115724907927197242028064748689592736860530892347437026744006345503466043495581215343035208659992925815755741484286402538930969148918702374543011107569801309732846174856382656036654214492533962971574763601118729298612480563108868517437354066884693702289853235253334646149221421951251103042303217143675522091485562107829132000940909609091296580857550842191271964588588618578629070931947993635155463934394038006320714493923780742057524362662709817504381137900643408547303167566029899613332280833446374320079804074995063019856848193610887603287922426801191225775528103135557709834570805305838355082584351717817733747473850609640750667287668424905640845501711770549999065098134757433327066816286322510929970156250765189132494486021925880818168824667370452533490669382145506504090093144817457887448395514847012952816835161615627903805234432309747406428910966153066415616858022499698233537887765381871511941599602920984598371709468094381230968484106435685766090100997579101406362596601065864513551796744061809532405124654973945873434236397636834961355069796609191099455230600136783614788154630211887624817577914848013412847290300001009797998931856505096999420744329040613831534748222393014041167617108110173135119216539743128290448592477577866703144029766440470132549457656859632488287938785788588569177079324971675843926023611405708304716669204682408492841050511047741533817053954902139810736008086543168233315223696626663702008549120034555672889392288024699670141644849953385833393348617846793390543411345192987828841241908691315334092458090949405376752602966407837485841158609312784216639675798627317749444996761001299547352015905506634597879717774941048431380109105143880637277574104584787805914825836432382334669008081628235160260584428278197561713053157296398973737020082903069196691437004282307144351758118628317756612233557112553189674641442053429094646530951508373600270621185666524634890836204100189594238627953428283541893456135224400610414393146793608494066457641632125288963380640698662899891736506898377921955555677618491875730195133598134399123189261211234249576180932324832494576557685808192438338965210545829095910867248294724153071118487113766751583584860493101260171813897674719183638177529478853493585993425031419997449003192917382418516910847745769998859972075330015275855381914376116637262114755647460504374966472007368703238181691278209869756620551849504994423075724969632694786073130011634719283081593014071544206241625393490802358835670192570219037800293778000566831386765581590567740671539778667579854500687239296192454526592041112057543571547441950614197509015631249453499099338192922348606247850150480257219043524964821976383169480090942945614799317091010229807529890244806816549543764001317883880940791479507916221379630900398712429658590118148931546023267927574465218896179026803527176797161392588278648622867081205907312149656653966905935795125131407452574987390250000696484320860025222750041230181638813813836058701572681087796701157566004692993209491303152222028841277582470435678533862835813409005888785820794771111394254365480128567814030754365891451535946347478384094236084446463853573346656351496872499738587243937912307351756845815589462121154697100638609512994345763885533349738209632009525339510536698719823411762359191971195129111938934959968057747914731864487676587064133418143761908113248282205841328619754397725626693833746171300269703131908853298813737671851723455192322537176548998267090728846082167463100368132411137863141076614711150838769023161851875748926606187307106075604637770759409575666380177997226515564810922283885754789343232819599608420432966627826194855248554981630815177912346743293369356834529199939293819046392082532080560131099359866162836616726742151483857959913308449191763541613101492865026911557058232287275310079512452140770217444161216118909045238345714956033379188662769216324471706133180538010765280351566894215840780482959061323289378907618467568461675823151720468776940688072004987252439786560922722549200993906227015327959119168680871944608484246858131698876133138872819664675593576073820259567668648012098584158225512045376757372871264389494346543333506581827750046173802125292092066794358694960540284403935162891113348556410285810239898359712992924712423296095720125960558057170507172508900696023082144230583582586084392597475095682396638216580229560551016857444118554244814056782488132626973797215759962073255553323246331797910422792999733168024103367680157698765847829110687723538905136994541712486297811789042191057789431024372934245105317478144359003632602147758865896576275496213672634617444164326013188054927018090479476593550216610998369448548406013274230485661425604684996397816378344529319359341541223635032927596551029383976903312459266054443454443236254408933247224812292623796131152233228084743410677032000964013901173863857867218137182314378894343881733690444537790358306809766612868502947653417180811178231502924926052127951256301055225416610369268140303601130236644258973160047514652480375237860269371993641253525283789197794847697799279185997838655335211965406864955379320164080335104326157912894019364592046304691319197341497785075728464715838640697686368716298328632625159831911710779642929834632955966871510591047449130970338002255813055018284353651620858612821416271553577942244320724579136501976729992453540590489459214433849202722297698770473078630091488833312098321945941999402192560462119194225525137704929011286913532888722062586826239728963406695999767141049400453209188297156184436890454534439059909550347910497443301997031590436492398558291461930234368037778482417223923789181153337970334856935899112818992851648831030092317953169732469943612914912766410038394060960416910132268175992960692578205548704552256432124813691300722751708184398685960539914542326248626050807172867926462076530227539573663091463598079660674827613584629339189078024321393457480709553730898078438410128537656880425119670977967055012067527812975510433793626324436875083224750258467706241755850698450482311277191215311863494844872586686235048988844337844962406827914757918171224917697884924964415357589294987194075067820563858108509742143501627849285901694063326455777505044846257026078068029250545956399210890452646674147139066483833892358987135397546903508479177590726338151438939652076647306989849137100034964656898617992739769898364298949189035269077918202535409285589590767411478423419429479223027751344958015135266402534760490725363008231425229035115938546419294092038546196708181029336239107267743566378572556760768105881979045675903160467656114871147169657568886618465643831267185148664916372771322022208442558095812626777542098261430375150804313810078976721609364926649025773294416122779571630408706392445987526249160461338198223542893526915983744652425836840218553169866314564685467708821708047502978692272560233411091511589665541109924001594899452481028646525530329202787781455420355919093885310248800692808021066045222948064999382450864609113111315418454402914748374916786137949544013296906233035129531851355329285260240875771486982858263527637685303018382787441574668464585549362706919793713896641137408447866247898907062380320274775782531003441932962548397043294593239929457050100054445941175523589837922094241129476997860456880233251199357104722233148333964466824945354453710705637648748490194205473760355072955722080834170554140979450789827479741892559633405050798028809111657870689297380227812693077451914000209242732127925285995438179662006077373035987134374807132185463545471525417309029773459242593176821976891943399972981642383034040068251818865750764791550142272408743235027518148356509158617138379844716206671947205240531095428934855321507913557512581255886764061545940559981963704715975486617837478043474226355181388330962755453828134152815613711890043619720214469428731131073631738071232546062088411997390187840282193270978430533679568867053519872863666516761823726831222584123173872401101263476781844732113263266408126308909286798181219469216314680963308426381699770707009645483637775111106888152892217416695651837968405288030794790149444598693953922966104286380927594643878318178324101219122568726329315265032603504221630459015277349978023916008750914582344389963033559031595688629971631503941040499308278164809956137573818172660940207950505429750351721921092811012129721995535022536198215381908490283425892875820451923395228898842446273437470095546432686593814000287000326203408198615403054338442117828868468926443854542748809015041568700900903347251037534424395999186817500359881357392651110748301646782680120393250695785473770949291913747222262754852173369416573397053132379478879620415641407658515475430151978970254549391031164062742862124968015257568202646794554453330180931301673941405043724570103645703511155092156956050848199718982460065642036376851345000489573118390543001608694400841011919159924228247061463801832116310158231598683450766680966990071412081953486464316434501647273407340917804436591859353241056802056593115167871492076741922179988767088809670386407056632556093116626743194709201245388443688012992686102451707975561174993725639199603078228098796490804826339690795860992668593295937015259554046724745535956630483694393550797015317847441892965147045991998118127657926297668589498196158781048532327872438624246866989213322357179923098846058623635374312185614434863184355690828279399116989696276886009311057455951481031602090089449831621481002484361688148584140162319099943359447835890062532752635575665221848235029881182361009689654200353665984982285286423742123567514086395109329862052546140467903205760805117569471800649374900801187898493421714752180648559598121545927369605083115929099577597565682319466969096112574082983897298722178116402906012424915045814428913827816212727387925930039189289625218329489156416786287414953506166910817883290547904456349571269551720653585676044001055494871730054374812722880556693065989103215869244291902312081989933411539491633650364870852279728923839805465130691873319031685083938823113278243196568996569195883249986361260568027942650890529954038708890164450025862915990312423007211191286822494722114064145478239278933165566904943950172664211482194792034774919956010643188811563554996901224512732398026913742114943811939171409970727717282881037837856201701807439562573889560902104811787442121772698137303410703165654054011002687562564031744812913146222055213343366170737270420600876609439025364435498821935304725813981997215753713243932699989134737095554842128073860733516396050351074499979254029643781121340629201381858397541471261465225064819380921900456263091719728018193419628679470537442817586266532540516026868270099410115671119353052536593813053254305344396234322522426527901091439011043959867175340347104873172169263482657895361264876319473046652850877916001906028584012772947225237732468447247611714094268030771257022479619027322724221837376083342498468145971563305267478416067319405450822307949072959620228693771666403380325705631272980829656119261674895157134380160486445926022320362499280496273247400946001867289233753705014597073183548076001320702544193164240549902938735387253887638145763394326682881167109580537255873307465587803966873580694005382406647193942128569096733235608673925025686859437125495055734389862635231364594286020013374573954267634437129382795394401872869133845046828895036903618017896071908215936338251484371894719810533936794345697985104060450000108934028924435102537120802865518287755564932259498986934468631377649487407140861194618816664501137528479845577380850379831901246037814508868287436851602605795539848030848567843764521898325793045512803909416513427205831304544910524169110659776652760865956995938453715260329231268995660757251875884867649431575618520288772981905982606926943001300525509418481082959077026636352147489633131558802433398306507418512855803065346306520352026186646760913504803038460050457680554543737974909350474090426780239041678464684419370533739289913096711907497625325497593441525711721086154351805617003252566368509976861288964833296024087861817632887525109690530060370717535592082542468276514696484618417624676372219813222444036856891463358559092864329491470429931515166279418643855182174209588202491482911813184184507281302789090265528486958031452991357894879998172009614279485315845579362433101062910388544100832866066952404541191434865418471533496449580945789560691355634248596326996125881459918192085076383446730595198998520479428514912375713675656673916531544501554164151930482734113638144035860609832404868495923148023042581373838744728317199644427630745704212584862123667938883113937653735311700584115774565886522649107807721322640384716466203461371279651180223727045023712233129328281354898418935778592994025419731566776693069204268643361685037549010957985559380597509826245154063280172990104414222354117930937955720771475046589147461713495732598801471469218633135275829969671416489744971317137790206913618539966890838979090938300646181608086191176348444634440505851791728390757113695604830955957894583117568464783346029684273125576637321243881149298199409719551682763427800920007679653833788661274476851107432320245619605462149868923847981606195283151745274228513515909040132285796153158878060655881263295639663007983610056187729244714933852099760424292389864409043164077353674581929800280257816687622677219953010871138242060235586921970092733263786394374519648938954252175008048728760021373585540782278150315958482526007407817754222473471541748387684374157435278448154077510051582874304554131686419409023420814934029074891468002820554801466639688173824319226590540549297087005009270065847074667931403160261491719207878256748498810309682140366700605916030724054918038362049011010904330760706240525860338879982176850023445571616963570165405773818531778689921662226598908342694216293620431307122627008310366721222431888652495086990716027622409662058623254824534655298356798669187131465356430819283604920492128288047770887832835873316830522434446146908219999537966322775360713619683034394911417059260176869179367188414958425960622177598609908213774082877216547219188560186833030972957902731025951071117244904046443179447127976684135874664841118031172616992160583452945435494746387620113203608646683096570660834391387994555089397048876226784282239342086599777416794886912476437111700954529835756410779534646501246304626960921381718155950528133083416962144923200248109816539975213640078516634133279192894865706579147896819209716381934827981513619289143376344897880320948171466998877838175214196045738351620110744924932274512310006607250111676813996420429595207093196324567097105087152666642545798039136630157047585774904007864226371803606313309275177377805635542079656568196877831905490536876356192524773495411294795148535095786678965985714408693677524150469882138162775097032391596282242504461543061938198158244760353801737147261357993451808669338313939801200814086588258700799267307758267908434207042034920965166331574455389195955424551613377191228264115610116371607526643486291960831936224795402133708809282484263027115594401213597259370780875189166691065467782728247341615249552994849116597562393278823938354863488427232923027899175697514699555586984739356991428824903260163889124847969353130225281280715724142469703383754364556219396488838707612564982495103438836031410758125766684665870833981280696665886396267069287583147961281231720095670999571360072817778335000500864639992168375805268093042801561463778425052797446546087463840677614365887764938549654211727051964533616297211894708302362927044643153271651557474059066528504838286873947134080486602371684057420072754179306915945960809623669555946088811631917630554781802421240527728575685904728652021896378279796548517761421723483199602290583891052886869526346283818048582523549201145415786866035567716026522048102955283454721369516175661192295605348148386033050117939001382008153197249993935118492453893341281548859050933477124040336812706115776688235486374440164441353631065816753772533130135014395100516563404558345171791906938261278525029233302782497305426611290052722647623963924957365130693057555408002522286617049441631696546967455105180834876104330533948775148687774850157766359362828357884188997458635361528492182335651183565960968524970801102203677345881984134547865470715787397470780149124929373447882248170218529390291607664460155219735471886705419226060944463638602307200234947681731659626914334293026765311109271705410243816485443564328038245681299253938518212163263520360784465367119877026035562639078462173543608740587779095610573238564829875763180738385406958259716071881731619556295729157785023403677680106387856002202056785568365940963969942139387431406475050086815338111999475337277034154431029826200044991133108170378038843016152191848328509510540875961634012716182313213335196893145123439767537876799557171655801334223177861268869563290873183784898912027322150869947924851945343647539690752438261180895363792639107148652576370692235695965504464996181714792840499149100377071023722904584571305344678260686720695099757628344836823448551752006928773477086163799481521626197387724358568600767637273321684914258353176383344492413861965518898679677455528073331194973238072363603467296051033275548960752481105465708776233420093712319877121308694945167345957478513953589932462667490054412728429813525299056147906686736265948381524186799270696452394331759166383240357321942727143862960228404951096610091561859431673646692633533687864060487949255792102849633574461244001976755074285221357887361185964346549173499151148691468173495557787482295364443606503282657030399749817228972455532155755257274139769449723171725757625991574899715180966485880109383273334072077364285399291337186830698994391380962695626735871942891279772973558776911961110130569654978527591079974375542307313476308197626022417587070496946600330546136694111537119789671941467614720811170666186659440744863929601830610746994844809716905040831235894948558767310026939386985407339018426428380147553662478832479384945370928964170718420737443163073152317458357065279373081906414540261759397458950168255713233907088008958727949434305501440905696666789709767226381979289261699694429895164713392220116918397158372957111570877131292276425939675138534200495767540913825562836180610040747402825627312597377956506826163003742885708575035472955437574835784293190537642321234314690037268680153816126557353756215220953676060614008783102615084546717254485487538881967199987531073067331863380952364250233067166351745716944335548186164207449065244014421633798815999468171111479875798731883762656455014318626325285135496348753616290317160567409340709924463611512026318611366363484519124811563459416740257864211413415297425070902876414838001446584048254429182744972172197782262822224436743368429505813391694273659481720102145080748557603566272664609507210214647413692554650202246142131697893862074880867453837407504297592314334695178217613552533942643791730527257593647887057397520541721708594595008097891741223983546496108889964929352510146078291558361188156620629593254242804206334637960456190361170377883804945900047711122342393804132324598531204692726848122970417196060043812483676486787758321730512853146678644589131122232040639584872893502676045354618828867083150243081036105797859145224752592501001916478957406513144142765646932596122499761307374408122583108949764249527369033556822520434083634402808240944062764574898351286147544942540148397510500503521320800320104557796396854149013710249792345876497992561110046476923609367031137790673073574464260590150376828267376249470668575828187638461307865750794074971488854065426507667074845765854740760631407712645867031277397565461547916725349950598814791020722340278898969301217784165104965705993216313648254269917165819789967934375960866159426016522880881315389372604997621125881597948591387089915648289310658460636819814502840811614212145707963246661167791229729223868572317583188227680037989975341514715353571439102597763608891776511316091308500018587456566373031816646973750568801092033738080495798775103822445904790971323392626428464398672444506066731586065728616472023900954647021162761068028607690230258933141797977023619169925454233567521873918626209338365946915107716531358441592328328085324936612519880780226745670217828799121480904843919584789623466508707945318699746230650655380157656324517318173886419067330292837642443251750114713817803239686134998507091737625260144908098563241005059201635854887237370614924023136700576480144003798629965932580202561500645922679011558246159875012256439579385082944577861666262246025451501513874076356170308998963992951223795488016449472054179410514044535309744712515237961293111176544951738835132218600911281348549067142559528678574671535074353954076710485568804256119201646365762593754564029945576220656018099236436623972169152810737056185864635662418616582533293794190506932269077642156371004926587465088360604012295372713873319511481292622576576761993157677463000133563702923835212866521045094177590427400524252966209244962412391830080394786321855551345245896097401857869550430358324897922702289441056115341867577699862277179779373008098320857661144956884912246503611337476885051732483190840601599868662835209443603998786907402460722267974054387566059208061270233981857582032543422193893911320322145666044776152572235401106070994146998636369582733176919066953182705837368937920528140544366875564239100861927793710421653947965122328960539442937273581753421764907459582095693331801175173746024909458913887334651085219749166404693771816089927409848208105212595245297164569938664149384042879303881318734396309514289299385901781338566487474829253751085450815332710514510370728450096672763039281531653479756611936248127179437415213872176154101964476989354806439716841380218108051457718506308621690741747568371612324560516307834446611078759985781465228933823325408629548753517219494249750185182558342445666926264747288573494646649184081544395853505793958045306961320430662463764636141476783689207377966015887514906414779850246189514965488700610100851631765081419912581471693299702308896084983732713669203847735472752590666914180353413828276395613551184567707133526284312587421557078046000311318942118360711691973380872703064584350171452334629890764000363607191890923146278505027514887910640472041856245956643250591784952293129587676722621473830998013107089050977882382308927663270487885708119399145079527147476040633544548454744872348524946844570358801256536188095080700706595301887860015107013520234176706613977427564604349344659033320754733287372357095573701080714667678242077478935508251989920680793837489278153054773625673336901172285558697249836887562776833778010445762783977566245878061805044966123553404614442603651626136335638036297708239219619084117267553567417213717017206539270238483748829817942044319221101049233121813367222803864555504990379600240001242524266281133991932880914646742879012632134426618767411666054969158038111061889988300836097485693303741317102804929145664613030148557262165335789013936920887491329174863694776163566679739910510046055511673416127066776494703996515128147362854842035922253934554547895344483193559073279972103452340823010037414455635749429375074868935554168703457669053077168122413678845575314838699273289586756606249608807402068290001113334944811877404259084967341765631413364169078307859809641835314918572991543819272882948748336481835619717864646580638445179648745520649632113231648347509113442810520140740027595102762905300154152785583814218124978228762964499559650140614401585954422588403330248726784010128095518423373810305066305162103119430791081684657258390502581187125908440106333046848620740399253671080203860521419622937053107134914451719380694515538990896698824592355104789868002883550281653276358746039858435066953888482678126766302419574602010677193302694104317670250689673217063520307739553556429520389915302257736023596422561632914610022713419784277300632840377435738342174850187936968943254290238253136641334554041657949070060793444391968374784598478387353774520835455589959923149246026663414157904223543989237843540748620938478293144651560098434344453179928553040008098931212225854185854935638870218001040164300944209207259200470730266346847133282357145808740152987007788086989506700649530332154699296919488800172875084932596515426691857874758100098775560078261328490235214183331106281561854414773301974826923176922407196711826549907890498989828831762651198123241413604549394076292387388680833608504366563428293987477095343466663260883228697039038725901792313051863862301870564772772176159784476737944041392882074410220666489085003087075362457523431658505544873544073737373023446264842595997412015149104652072384018375439551231962562973608405840156553865778782183915314143640946806814741567327060277640807380627383860905951303434278667773939223420465835104587563187177347687002914784008566138492991793172866583143627149201434981962346119853654887713471913342037200763435951990413119721913969945006636983529031891629934526513891430115868512096728719417756506912042114076108549333934324794824462382276296555329021891395181606408926922658669588108166214825280781175847745226765457308201350751095493439980311140939355836253439521639625684224651572448312459408493728665949351502189549755957533229766324624715574662042217616019271678971267310987758972053334809015563840658697246301343912585675075041053426150631079715022928004106625074714896942986850703872757836266848063809031664415730612699414395920910315623150511262689209981202064239502065129666442339590713837541264663856674798302156085531374273674843318011233226661791943938625292582565223274521642906008266413371236310233445065012881243775278504773487520916305321060319146691058550357967725918681791204166430657032884215186888711025675639908669001470621944783783552087833132563971729315514367583116519572690140674239372430845429894899856822086762752669413580968212569212993258293176378996555194486595093589900779352461688040949549127576531011151395739401286500024107790194358774091680232763207565666779090117571542857953850236383160931385216385668973320283603716032026364887232119401067834068385387172453147216992953945336303362372791700682194232675044602389744042106667101526651633836367335051299232594387000466564089712656436775550597352678732775796110773316450670852040086910264179721595169638073880624089132514489280419787718742756609953952068208632842631593790041201033051932066557500581716477054036209043722283312402816553385027530843985198052260884530293784875548202379644591098388382363939373515173831543476674646366076603971833031008552152276829974752880694281152987834522385652938847716162207234803970163825218578119137157280748963562687698376059329715228782360752731867733522777103787321136241846404447747045819134490852882967132378430640646415270184593402538454449906951133459972014221761169198687524610592711958655115569899634290654209253768898538380065181518025794546769061399893085914410527772423691142910647751620530555595463177061649119346512295124153940319266797183625235257063309155284963152324900809037715581559271952654333827505659667680694174897098167520928717658066347963394937862590248745033347376241702692472275187649169370407287033055202782494388888655063903825806716219799367867528378617304900798837956193112546167858102156138203431886083694512281185451910699730463119953300340375638504729068028706984756454210475222101987104160144125271003571109200242546940264353739185976450445992824682677836882499191383598547694804592656881101037981044784774587440661302692706907312689640531441577117507546124643413221353408800256176452134880062781035083199298937765062372165465804291106069954480844238602985453014147194418699385068979849432597421445271436044177535435312026800461837627105256221621502031818377230399555225577265544593614275476781018927231316343696547179510619964561854816285099139861228347028601643650749957055880323546691319659843886595380556539347125651789066327555389287149158644633434534995187772655810381555249280959594062517537052298395124830750176906034785637830002407291084532352189262479499228716590875696805339358315407344333988179260244363218885138072177628852737980409772706505352144697928876261180829157660866517573422195519229104035302758685872868759304630987328918005894454304012968851454651758794158608235919709905306250202207409389144881432873819064080296278382581167823618029209542052524179786829936803920076335973665308392214201814861423052633518035951448239408385650722755876682246635064592564823505289106310425863311802412945542369792375672328176323855607847554322008236703371284339150733773297194390268976113600356469202732024965262343565579928159213237933651346305030605328724772338446881210346855190953604194608041804035203873474862214334164466767261819790367266859981507270792290922658380128132966410741194055987473095050258052902926762416244215617721104786581249586275446367299584786611843793177656286739567809966593773816315295993664243633842582281193764453297029193420801214164874326982501133946254760946340442808876312785468682186726751883320512527077200459846746722442210945993686657034856400482792709150268499905249508288530730440512068905084935407561420995668194242617251002703232573843789806699647226763774045881758736950094292132528267426341135775661150235328184203517862362646259078561624437557931619235708835087180393055589361684413615729869456370105329831749983556447029343267357725208229750349307506154113604003360673045360983452655749563837898295479245398911065530562832586069249107271805717420865307125084815346506853937173429134879629971279130533971444352371259901613127396857591068680649404075385064290460094891627063006871493114314037855947144544871821080682464764262550237388547631748075176574973113428451586586328554557730513126169654058615358309306676089687429753242954356754085442717753028946523292909217837021947226170372713308025266153388003710413977248743526546112913632167488878458963209601731188872440623576411249723201578342646403791318369717674794468241631497815941080364770347668188936927408285443555619310421372838006122636715233610118682542765321199759300114853913808041347320381229429660091663820525525312769491973264281021968387455367915163126311639879389854089026148742075961925602460397816754129299650066639877006978487310966957103524482848970567423071129272818510676416104652877224266340078468105629491645270063983500174480174491228782970871151917432636668301400804016262473577650375463794344129076321985173753692050877149256653030794369471072473206802650753703123368587242159916517374060036091575828050466030363004885149599800676109842637294051751548863771822575197693563000222745323041384983208406585503833567570782776579080899727537502903170823097286727545821432841325223075297379446899461143213414624998812397426123118288247533139977301228925311932861664778035393986095759520671759201579639446001497601303116954396892851032013881216565181969239546839071209551751230329017228065529712033001651856415169175713914291978531681857722335632351106379508078067881534180024368881172567252554855586643188725197545842987881874358236408594753163649740090435817413279990381496551426185356858784450909102083336844635613005111377536008653051068592598030993274383830220986466185091048577473533335377222674798356176751573139672472584410889001094711210264369390096238181690644513052980856701235318586655601161953775589157585595879515566139630203104074325816094015696852872305653392340274761995786986721138057687089423205155888087045892479119487209038412926298031637356399637962589843779335555174603893518825140970247481455942968111536272637948590027987557134906381335050571754128227125751012682015756756954527224700080699284630346571198138803370731755050418904560435735300212852296944293150093643394068984461363109414387639616520821293447153814223047744607436086846716279271087130805215206297410433739170020596478240160750077900293740174255442885511866917908293900954869221821044767125007247572942825255575945322414028645676243405516422828998325730039674536985099011495956099341862327250821598229113366083144703051898559567668887112420353541068116466727658045737612966927532954364881644350135840226951448939443735498591836149792448726656897685077388072798645738454618420619252912957301649576845851645026279897060447967416680524335100307939546007124770852507016425083246347586307756232182961260413690169768191249765993920622925520385981639421696268858107978717813782991055889403423955875328957695917720965805229531230910069582385641009338032706261802567389041624734149062160127239243359095991982329958723661134353524146251616233390151041047941398385081123131974972605047862844126461930380891362213087238903581872410530555763984127118826213211538194571042047549225896775967357547092212647292372026669503400506025032920391120413985923245738293630891524298894867398668887544544858525975058252517866462040781134811490427112502495012672584489315465312878227523629650849183340637501128615184450287512558063082018146569518584051407680498017383328115299707387005799789686086861756064684929035791641850603129926597667636478086662339575427797925988425324412028662991783772321003748183544584139486531852373390214272416166629460994688984848401036019143400035944520967582186680516463978627105325588961507224482037986020010969880593000240213029513858001158960223753228726582333353362067403062106636281699002115026132121056362108041348314335380885816699837180679037060161949042797028180114889957086619704428672614206868546476505602397152830150299493830345259352984452928368942276010429324279962004718387764877805470449171428015569501129244679845346770359062322765442601057957822640860398380935840708344353687049160418742122086965927477093813816068321652818396416792179413493388302442147750074435111180868875790747615641667972665130838789439860167754409868324877529841327644911002672514027517949404687101058252876115917886135145787617439600764852414159744699818272001724066043344745664179548476119147114597087651975056377912176042628732058868251719420407770951562125698029681623290457307199688130077784772238706814873808383899323575735352480234047117881421322959712566899945418428707921992819428384320831640627048827149172360075501270051579645159404814135636627370510546438667832631568294112691730350324808747872349846998700372944359416447001648264896811720897718606392541663962935783392386774047751390543615662476507119137431655367565825542845096350705586048008469723102954119980839520466224111345015027187286666282244865735410649691103163362871523922681847746171498362510500300793533046751145405637851936023559113723551065895201344244451555672146915102262409918438996914646147226702960477375490837343171173656785147325084075729553569485212209753197947877318049888855913693345087261816321649970383422051292612699861295764517266314650827244767461101460791618838108522665266033613482490292929820776184855448825238292107670073954416407825160180144364767606824202204669144864989090781209951812081330236543653833623814174542861212754102985835441837843555269518257914953524704949708747741779724653595059639641850823205720522820583318930047001178785169684441387822249598687359317692326285646959044966682426680527743985799772982585940520940023814533348517528199910690432876162280392757300785842483944566684326255623056288788616241626280440812122266457545514921729880081897895882639604364800716089792422796809214658687965177183082335897891893665316125818065595869247470328878786778725852174997292753583724631643349642990182975970973840975281443959976848490258850889650595573784251537187378993433273811728173046922887039459535886016706858972706384689623411237219096950319720485089946200587578240780971427601108525535425029525136340408894467842835628113443126194963416400112696923790378590582390847571327365315808417691304782451832244369269710321462086331831178675030434628417036239436652637874952867585913595953813470528155083062997812181774308038305733599610943742673068423241904714712069700849781421026964803699193654903089651573537942981051358124360644510941109860769790693883924482290302613129613872890327847397767860933019840495091051695062999937795616023005891157908421353912460338599565473707919904849760462256170997720064930150799271117828798567952331222068863762163258130562976396195774032923593733511288235430886830675852507050663353139874026494136624607426257965776138984241955314107226327253578115143280900349271612208755442315385235495575429465585284890929027754663853055889994660441827738638004510254740483587166028062466909221344426341055983223722364349123345442684030536360699385659457665507760240045228838803635627386063904369092552457742327403993220825664432273482641006633065520807963996229260276102278434669465083296345585943731145355936991660889139405439867141849083502572947733116585536801355937549603424645779088564911529416846111520642730772308593232464105703549599780266761441186032390645721015374097677947949714578707709635094992145804664975791684893179175183164721331339264252932679396499389504180401361735813735716683456590370454875733916248464337446275658267938198476329648775172882819592441313122726853869684639357564235821010410770127483083708444284259598290864950764480278011351154525451062358471060945398468970922322936981590159180593431722992984999363099820108894381744948090799414080802206449363618230242403284257616573173938442795896797337156858194741375353673387711145338894942119673538458032195805912329645440270245573284630066543378499225150954446458022432232460051937488919008769877048277091001013042334552407007691197892942034116840608937401116306520711576059919362016710370326437703120322083979350296861499126005931663878507618077990477739111640624510736259905311277631696594204805810352413088684400686233775766012711707467136689787947703672496180981632529180533107114364610531428988720801286584950150819417629898735791370760828638005901842539958722353272617734859963169202099562633155306981242131532396611302637483233365100358443380451634606942936230774007919858931777924667606704662141075782812988041555131844483385596345594657990660054355405125116965312829519562654405459639013483509497425006172639854275353188776427527267771647734678903592387656861372290025110628654077611412898285415263464559847186655964187851246186720736489281483908684824518141475839223749118780115560314718980606247882606143261167780976014389419662781573037435285054916749011286226543295917513552832999438786479981877361811418501299379018449168153017557382629103175818790101654093828261467810692022084469639771699294158111365542536675304768165508017513813959416274803701885030174225110131810370334110625065252809331211680388430006004243937490382019292573431292921367269929645614745914685398645222822868140373844295778340443649053061234222902317592190347339387421162656148709205295283813726549396261567858268104657739697029188790890310078859649549763311024335547413790376715140938789555359611368168383231880520532316915629022645531667187769606000697541905032248049691620311857831612043081003702923145765577097986127005728161911770502553349772481874425595915834731952333053908835243487109847213271109376547558441206150163728570343942172760763975650649310862916372101848498343207665682193391237647125884895224096299326293596721086107672303351729464923913353502646248843686600260241677403213605052330902209039580802170795969670439687154033232943559593631903921012337372748989689181131666458410903852085698213257702603998188285557003809670425506673976431057319341888234326507141182642693207697059281276524212718711700130328252653334797583526729659429524138527796823315439050941703788696325377177353295151546938552178334597260017530440758023982188581453732241440514441233311404629732574743186698665897205562530582117132245365731900133202328126627908467338932444298478546297754353611616822633613363735980345034080720734571757752266980650715746934382934214675873664925846887158074086404675284064614675960946150654629584394865307224694371400529739870891870141267043150086611955881164473076917901599815364631512168057550121395070173223290411638235888812465716939750362285076519071985024561853598273714836690116784815009181078570123013474645951064571595051764554412272894683801802351400486526643150003785469333014847997381367170725530736082969309977694528191523121988702287995574269488772980310798518501481030193140724388026979251392130418334865242484797223357341315848160504818853061428049584876278120314880459061025976991406772253787772129635477614656211013198631735655889833291118763358528950719821033197204018339473359363506686941602340047577720666103663495120792416774387221133749726935073784900932837808674872493513903840722650200973077486206510577773382739174947654081452173698479897754688445055568989464300086754243442807770230181653914075192069722955111624905365941827577598852649703754355537925861610251808160135747088627256757492402543240059133913472071588265961989016743648747228806535484765565190011456465851710093125253719065793516047784332291916775171741898637708099939179036413838423464773799931766788954003526933842751117501604357940743197096183930627365004751561915548333037598419133950653197985858050887776412597832055014244108337103048210545357627810967645571788709352495948359063813306751039185257044594082620773621264991387398689215629378425141115657824814103423374901539166632675852044705937040171359222833744249848821613725648385956309376698967305318638067991714050832491501514696941910633302800637535978328771681620760470275994479439847429043804311803304321130389939144499589721152279008663913840827695147102455108146320165968332774280034092279779816467717766389493223944097589333294301249332221817354642893325397339869221442598663066597314065470938253672566786848055168555545227765376841414679645929717661065671108882773339575433775435261303604848600423532172234350996747978891656565558691267867910496400834251938033128003897608528373952535164437706258738657996639755513445561280401873235840074625863899554320371763890276661288890508663549910107771827603217910523983078914667557888290688484517741145915432798866197436232201439244016893402899741219461986850659982585339807400950868733826818829411146246780626252590947544568161174848916718537458297178440860519357240866239091164188203965917884977923862553186125918600009049577326725772276911788562052162429167452378217817513154534089677356286288230432985073974867251848259872795829532745949519205920499437513168950804886209752230576474984566767667923729845587164388348910151614045019595146999928940386996565101306712210426426371989466899685904614576909177011582324958590259994177028938018716951873063672211985523027180869421066843315637039757267461381914256137605886510431458014978855904622029258155434173009279743934493838474867917575704263257472059162399756027470611534950013498623352056502374097333312299075942163067784054557208693582255566515350353370637496961757030944195165806385662046360529702116856585562668174194452680400423852883691443596035007555453777325825174521773855991551195414601544217255980685900950399090113482795010843267492231479837650291979252861290116919130573942435307378148838725542612456425964034863596095402842520509230676618973939665295939763745122305865261452208187923519075268089065481588801224611392195766313972179917826352546330709272843727555605646355870557727233655764611884801929070320311950614234743445632781444271073121117083348775676241327177535332466869446054471425145716362607165450972329672403969495645896570240988540120499302726692511731557331637176222513958766583789546398365363959688899675976868447331135722081042466720215377242738449767226938263334128079130154928244719350682602259486858351443602956964722872725668447419766288882495681891059255838413304140696519287407250726594884044556958931356210721043193125451362188969338503340525512726097112622975655193742133055984658564360746510001137108435456738949353639920447317632601830677291188267873241058740852897451608374464513913385247891590713387147733414524557083092522818697324425581821839828986011063340227966571575343433477711702527709006773507981903230249578548766026854255905333194713677288269038817294671089142768983246274737503884981102713331212286516025690549286307676631996090070667197047164634347039381962460895688952957460261861390855924602160573612097048061789818095920979395790798169317137303821167041544587896094636949559809627837725971762762246887377992033583186785134770133503996439322732100705036433746936785600681335916710319846445085141489800678993472566738261233396847955455792613077768936161712582651754941449158678153626860600550329822883512285469004474672845665432918855373323239689482681248170488901802944454513389158510694322893443424360861648545484915750559246101055714566252875359846084449751566936238504202635301806333360197540108117772164364119924816719107937004289719736830865059087999889486460276858688791587150075541820950368272430976991233757853612324092426665897071823481841106847383312349156717893452585683705557586371710639863345142851053517757696456860251716653779840424126761090443545108611424642030175085579956973107422833930402565740314829643376486808264551684030613776016399617990574353118641182651155815900089745473270386070005344536366433106358474068428255825468143534618908384602904252549529762361268805649889373199688360841623989643765885134624168325565076754260003824999242988432065454642896532175652124460936432404118015879742999089082983947957158755263751541859754916384197960626161179547497781153391532980279917393898716497625910499834131434286079320884502227124690140306509728356670817524597962439620058163777755938153287680550810772510177567790909878609078946448245857589917930871764690171151786140173209283584514187650525939837373538581548409830054270454720201834688479046670023111500975859719066688803705060799723401881988782131062702457227860423368721827930479742411019356065184493298497019878125530039401821486757612425764759588386315441723208009921854287907043912513019637083201119723049138938283157895511171308083929508279369177999150566330544871161898621018209191970588044707311198029323146632517490361756106522200200221295189614875467954090782655585277343823693883024380407781618594473895247112526746598760417551993236738600817653576662506486235998612448289824270284643457281256620625235254968264099390901951088499130909688534774622150104783982030062932901821743398206910662231032282074580451261308944352178984455164947367965963543313034848772316342065167709690974372703964014233847954745145031666909150292074037305351775910047460422306067449968936289470590082768090868689691307075850463800052297771648409277263670852823685523683288731199477109708702586808622743453439340958417099491134040933244070885730952414283399959323191937369377205120578601836093552950831273192969866716208530024719161588053603097543204879573785820148151502439136584043223663227697353979890208737959217509990772578466691853443385499765123546493658007138584020309672273952487734290510855552896837455568422490899833197089041168800888601640829743823812241713344322849735103372762449959828197789949500496834057394295991591267882642370645917386960945752437088361886220487371863272442930326247319106262796123857300897734290730529144792668577890144723094034077870421977237228503943157229461692200664810055428545878674606420369456850873342090417786643176587790172267461479042886240847041602617174969765147647841238078019692643220633966560422510108327261461335871439772289971328860187443052477332426043486987260746508619165876444833470018697429200519627138884080847141288858380558164752691544646020929125373833715208669857613407140659434042864241808286173449361374399513820080494410427941183218124925517824355047360536869642497564232352103843474158802446682623779867432778019817497670762637200527086580119795835138342914483397178345381454104047501739411317244112456270198136183695672517528712302754207602028010808669651117839960467972097892884605339356382809755393547205375535907550711220863914022777116936406855981566612629958039905966613411678396090474103437337554882491628754474933022855067658128090318036697338705172171529989644200962923092340281002781150438083665180520586504731945189011543880710760254346419933899337826054933303222081740256017034191711663559417432411790102227855263560183889090789219496634860313259877441280464287881526593203879691286084891106776716029335143980869546703902658501577858027447594396522997972501230885493496403353928377423390713434524490047481578255452484957726482219415427763029056154793130522491858719372013646007165473554715046847188267408015905122810453470275606365535402748350539874289796192951303025590501452307249882820549072953050081781089693083045949934961477402556181014374598673323557900810190375552745674650695260450197925301825975349012780751779783759618066650567229806545128259851627885031559051366816845598152884006140489408032876588685091784489950170652549710404920382012848831223967253381274402970745372559917565524590769242046647717837830413724835477257342140639750475127625594764449481864023311639928076775804248108658271738494923447735701301971484408223385111269962875578056877744929190879069006654534451978311328595985641695706443314673835656387251925174444307322722618952651976929167989883112017086057640348376068910568936481663291759700447976425877120782751549094054658029757582460677196497350002337042725849994489274864742796660583737694605953909154289671884471478869081119515384767865043037600151547096604568873356433070530498705619340272702258068263745522860979352153983421669159648689664543646469141433377620694097698089146118098250748087296869304615003277002233860336272443326169639410485128113233824252250626170557567972304876176878775628043831648252331037986431302945177844294625887230571637858540336338399602695080370709371411728326951765951078195491784745486168633018505395949050774043373638488173172364794489129844004250825338377077074715458796223131153282932623552810586690525196783971551475771241171591574486255904173118632630811502915396532244513506028379068898335703914431050945463026737369678004941492989572571600050805942153418875983985393555051788880331673797711113865450456879972214213036533966069234709160187287781501765506484952059999790910919314134456364681681583717396914149771437718419540469433662531686794749296116497386996538738254882712625703283599878933179444415190174889861039093592965340659806583657502212865856476035270485663830965322923780217663393061903791148011395046837962643666849718829139748244890467610136421467059767657194333087278782606521474982016663168140272521543280964491072207702396096913616478978584008963653353136722111137423439665901151083164106492507175413996841294147687439486923557254622936420958298130404634321517035842048110481671024201489416884064490354912537137279564509411560387987697823361443643568150747898508887464563005901951372175401794092567042958201794844045657049774270741176917953323823023832649671028154372495282775831977854480876459999899963385777740783305247194593956139485328242708811772654326663427253571110989458091310349474284452939009336074059967663017993455386830567016385061171365351128787300110872995871453333142817899282340902056153404821327177138034853398788604315756191410448742762748515862087483301446604978440331980579910867287600946357988353124304585658196957483041563349119257639060077496125106561485798760681752263937931595839399523336894723619851678520056166385062579925898422134591032062219422120659815686050623989192953657017071658746937169563131758940984029112684816773719487177264825082091177446610282859643774915030414835543067424577444393694895806206121154974200081643665979999754882674994128985443502593845399111500319895470262016617579700171750572015063634806454346682356888833893765234033191778509477994076317185078678300897888026566087269046264558148555536908158716249072717932738379047085346723772765406498754304403478324962165978068685940778282509493945467899144651425373988032507955862437486198581626900173160971717788761045610113652375627646176811472190023655303956240025049140146509109908604972766207747641423214618668433471734701104894518644904177565372784317180046808208481547492233508749519364049672805662811510401819485526175219804537241572044562345345836881329708479962367962941405961607735125156883152422352012915328734347351501468517236795372483099546414948514356540948490696655145572654303413412241993444169788081577396180284743967155781759841102696238414339465714881130448579767038548665196348240086481116214418126409651777311832794647810346809114464872057021774248264496804060268802244985464756111187265236450285919623270108815436847219534725315337865445893673780955661613391227835531118612280669134852252248706984304291724417477350205897939150287838280005976848258007266023164186163693682590921056750500372133012008888560894202173268915465515085355830824943173304317619501377244536883939397413878086711078736833741661703026779598754523356126130536272773029695860491558040554406724722301313777407369696311296873581643047621133139478549564343877333212164101779889422135886400271140302863079512915492268230690521765051624439124248102486018237354584049695789810307902132873599191650253308688667413513291317715584729454793089354941522807937027382643008737589114932632694048295809085693759580917666299807715727092933644390484341127664232391019161561937751968935278183852617357846239896986377943836388845535184086730755649561354426657888344363612241493101781547879930881510919180932806590254558075764228378863693299819412434540547109650867055401782152826387484394323601008215864065713254479016117736978177176780942774755521382032249573971675998566201993484801302318554777917345227396432412404820853257077919189037086001323832352306978279756639075861262637076250103854373984955509427314596343139640342488169154290074925549602423292099917442767835665869527164136884323037380264595354148520153601838413890354194012975983782338189383808993596987057014093009236749784335940389149012182353790968659133708965706113013946776881505643574097039696766913353831164195794187473660106602654581225406888391536737347222050520779730573742734067004060800471075003375750691668794555427265203896288720977888193924630664178954397774653652111499139946425716087064558841217455119884003303260887632933187843847598102555767303857177829057521552841616625453832270999538063267343728080416251892120718556774966242172179466905893303640319162059815669076292029013626753803977661409800035031881842076376557807522255981787476247173823054923650345743219560285659526981095377147241967727302076602574359059176926576065099410699610180209074141766693886100991588958940823965416858833175099650407707999331567853089973122667072866698942436722960562843583326302758630326580753926796734777045343576120507938375669994663593362520477678955605276524055755547974665403351124492632617658784719517513104569454517116296042043074055998154172241383525628015351301112447966563997603738539753821848626461824798794052969038415127343243909828265825076687370472927113139823151880938647862554656719634058739564241157575055923735673287399899709305363597152992347739017561660028552831586299444574130424235842813389410776049948459747001299380120245507177416005834931692474319625912950516286804432269873962150573112094863049234770658102298661878823776015143739104504430508828648834393812437517947768241568106626970182906584780395365364173059235509566929634988524497890371194737597986254750535172920323033765477906031044239822980944813499689628913412002529212186240524342165173943813981134084022173034085597306126683142078508178882572359069938844989564660053588575173998392873648179604255395090842217877084551750457808862304965371824963220829577999412375082971643160735259970103366955618394733499942532391748310270253747873378162129190139278475288740427778833274558941188283110544007643885389494177476015901337849834184817009085359758215842696723772787372534600834559631642603001928496108657184208902461067281008841300023464457616305831446820153304506989942247202596047279460872504747467392519639464298483161323849436436676752557958942571636064003303512574595146417653931868972954668936075390873845046662522570877444473674236559530047069316116672591618099694711555967764475344243643164237269792314639306945541243989667474242738881940265138807419019118376791026852518783666648718904617016703350355832463555459149396970624569009448434592238200362663864359114305434331445055016536166226202669675368857945584525677040229246197131825103545656354266291039312870742566640749560279651010664540625310186591161885462778485436483026607956056216074579295702012930577498008285686446619516067847354043328993857594040971601443459833877257775248314694102977513273321247127423459002656788995083702484340977350743514909267912685331293174176276260813562526079103323885821352915756124907073700190474238953212410207836690971368828266235487468152158582792865040648198474289044461201428353600733590693618730234686163211756573748446251116484705116697538372436251194668335896490115132957862791672568061745316666840547192007600076685942564506003373029586284071245874743226326493961878790021515788970238245223705221182541085630875603226151191983742537616109774700237444788491196379603235359828411964591844333162018148031521640449079306573461275835976005894145094591691613897173234148899975464656908254840828402579922295101373246393297124694831844825108169774605784398615785146299684925401009955424374121278712458776228373075345702799661043316062256485035196969400092222800423895585552899508749361201391723537881968594522815099411761966757069587442449880072914010225984147994218565626872390390371253693708224128904740357354702715397621143380731964022337194357938060799314356417807164036988097213431663059270442614657439212413763581579939504320906871839496236097347715711715528547867383734426836926002873052538497518113794828313741148862299002885294192564519269278643580275090594533598941325406590357086921747506184134326678498130372780358693032720143188579893602499860346570268953057003986822228521576067353399657157988582346274814137768358301727371437530836327462209146355750711902342892876104699437090446336734262694689205465961732375957164950420504126786618084468172149553592156463260664953676646155361651686009322559992596539829904082449698177421327399770596312991425159528826175125495387797477180557073507892378969122284336567338083712518260807719568606442053733143556571776947699238396028468027428392028622215382826694132689043032386873642896300450483829026191535593642800373424068999824859935121117915524983771122417195536788765711250811524421767631780870491904486051177769558909634085378901186113194712655493251209580630844662812971627329656550584676974198839035963263889568911537169876528930878995437376029739311324822835449899564860174206674769813300645999743643128229863121573178484187240764727007700963662879163602111189097062702552629083376823801427049006287024979904215854276846108625350559723002009739147049861205898980431429858363377694235797969756214643375243527994909990234368581042099975915100792028811374051296559635030616985039723488622160028035315092178645934849604801759628597591588797199154404613748632607620667002206114055557079352879709268346240226058349627665157123253471752557853198570358081684114300433291624713856899462772091987616766820380621388207665169237456764233006686383380259375071990881246146094811585290968164656968589355284829224536413883865572366409506992335968954507124996757272374518422061126479968863092354482868079476690107540505876926925701958506867271786540864202211345394080384793299369155780718113939375451918406710124051998070539269636346371088051554488905917706872529043682489612559938043767794891349818273924826741612290451481155286050695070114260320590519363572718784164780157667852219837840600829806925890144372446472293744608443057775201091936705755884050405925267402792953127149262138125685192543838364644608895660228747289263460054545224133971784529475112840026663958985393984253853996007938770526287225952555589874479016486501207688486645015273482785366491017259104472319535660636114177624549331981082674189894258405521608004879295221505086149988341241744078452999913444161166660694553433316968727081786975819146703146791328486667637033717742141503894115065202747709356556429009300783254119636943378795939084168286338719542014633807980369723923887418270699020427662529577961018525659968444757769919845775318860802607938273479290062871069311666426563252983953206101571553881162197782181164299376019361411824320071708553589198548589971046626744620702315781973614326544661320088144050735108984974087557621313502714928259110775470638278417770961683164099755452264929780664272068271074953920595915740946922889802454269191244697394390546221267335007657574511528311200992035385531711411804239890963312210619538241397149740877937807227779861524418792617043262354269894726403638002148898261652222020351186934829942167788203702089703922664595777503672885616446599694873897776610032120225279398693537516436078449216061698367135764713471124990182564453636229030743235357450278293262168521125221700083228973959789887151943245129250914731735019148374000803491322643447677348656928528583586503528163585710297441651529152455725549541654300391863819294440691714104516002111027808243594897431498293088294891661443397361316681904673972337326911573526553279677223873548019821678576426662271803217485160016688095954816181579861273715390588873759505791665868223173448929653597775197009297074972477542973293367112340603692127460395744396659479106650169390257472391183781890085171051363019903211305124378390533228709543697289898842385279753837585296626650291824213859690392511655951897551562979826622277504709077235719162826516526103360090072290210015016395111741246003834272900853598288911604798152906442336182284989204749190523985662109826001326817803078778824128829768649912385207241033902004995981316045765114452921736835635458692466672782558120284002976259339201798791829255568396568719359383919134763827695457306867013195296693106347554815583385492450147979143850238828774012892862492099576020007739008893755980727346425540398539301849143173276619377433979991609195027163603907610124161354543203701643721418697777528823262725270311815313085904855133986620064756020235308967267292275182668728695453883227114479758431093654544197924843395604427353236923614516420217564893569526488170557949465134641999424601770426643072564345436935248855369944797559549943344068243980381846260421059520778453412281979526283657076334308595130426561756130303899339223377431080116877213947686298651781563696964764763858343314809330972545892105813090444747022935196184908201106574875176568407117763279952963912976913666561855694648035502571953074183036765293665503632096181410065976871158660793310254307141793577492958806183265618181513355859623051183108503251459720017578714780756559229240892524185423601562447699298623621721991083452102916850161427295350677683261258237735714587435447183412741470047037278351328913471659524950048553692813629785099254724416635921963931256584206778997049040046568157046113850109422892614836682219283899951023803048857705759760144934160431520566124129469818747027930582813297616091756354033494609241681615100913196605356691842979946374165890220893535995949859344767490976210833804024201751220203600337401245741437168836270073062264019821464424878277934383728730998018689859916544451434198295868125303758601967869294948881078979752482095370046484940005075770669842909537224208195753452367603224968813580239314080049671791993209574581165436216988574178855357529261157692612463322235955809057338952237123244046671238099186745282566728093203427268182237742190716315263546023748297411575838011865049708694314213948294847430820250743829956722444718253950709665377897983192510498635365505790358857316312796978406831420699448596476110598885829291569970979348959855196019032734034224671061478639783291510927296292148047858179021398538396426029343663766198734549375735810507931570171734697568273151903750826714274526063712744726469235824218561026986027337031686572503761608986027105691518093896019603067518249394935318640791710781336515156407295310138290441302672905406400130118997374959409622352428620477989041277945310510441809616694525754765785672360787182558701654762496887982639271576941087180881490571717124570180433249053832537612351750507928157904675420881121059997869292494143630068199326733214659233144398273609158511131360933596924743784049762754306624744884257593021246324487829861387205236748258292154594567780464346535344190690731641383878208381351539611548719586208167511317730407086586450838602448516367130713861027603065641975643544835958719480715459397137669014269735672700472897105679003358819559259514150660549274093722195183351370536917489053509043250799870855103412562420956022160032968398037015281548823651739730167582251461237156751340637107402631677582221060548215124398262539867356543072583806181097637795248498074744863327180571175573130001297372824738449108530135403051405575282246988057779079547249515906071806006572421351686698736287586266418532883616363352073676011962129044258841910025366801385553276415443875935530335332498318664774455633476181894524139933447235567715148787282609499433300195526628276433628481753339670721516940752439025101216886039876381337225667749731280912864007110365964916768073848848116436952753123509048224985258045976794062787175285278253687705632181354105692126327982646824424534177230017957873288557840173036264219097654533374693272446962815849635130254601182291079276260043794934866867965080000038472141977092171408445213008423613247233949431472950004607558229969262149005248279549769646759708886379156034696180143213696417543553206204897091389743956908373866171550506149078981217672948762894857898975588758818202473995788369656992402530743646749105838322948372571301825652981160102187751293883468804842407885742795117646307258027130763467892577791586934212473754712834476949423483798434889401494044176610706343080545631302612370634749021913738013382514809728840349519574768500255825803421641302609652663098487384401224400653261368656380070141796943141519739051967386088520970428131255662534240044606918124991042082136435366195092716924577815212760417582814201478220359382086158759266077341566138118487768134801481204068122537999448392883534185511325179814362591238091863800663870475887323712667490890145622191704063934617884127585783027417601434923629224961118679424782428942646775900475343563433245646611046375213304113992147442734951491278144721028072176047611073322878969271337309288689141110493388136746096430224462577210377947015162432031347350069921070870724237974398218939919235811219157643051383999853214652663191523154022432446567678007109893143126009939875054240521932776960825701277365666928845721663843745649014182821289767755502429735351140054557328611206946762512992816110382570962883519959602561052326826651470872372922574196573601620957499880839936310494405633836117153544180512343625878836775950680670110907758090332090174730750082885260521768871564236227490656677085345574515307982248529427826009495500174360947518852661844133374923908251813855350357044569113268583511516990552821380936950255649148549019183246666451722290566317147760509467469662494967054843865930459424368522982912021576151902154097196119123037828646092179480349680464302096314295998402191304869220806634954116472462304674376334708527439365757644205163956033796921268865519516176505236028486324854991638875324569004324247664552321956322025907582968635220506667063270040508379853085706337337411413320650135828685223281132004498990679946441060575111272575217377222115139453704492935642080708817224914661959905487737642729133852603736967620235947363085934447748183272672289249090237159000628080179414764328517648880941326814546013393661863305876363910812568655735397048567594568343192940473671683554681214805551607458820799153430507340152627927885247814330683569306000668282807656640189103087630728131528702540539138146507021859446003532594381637634342942597466545075662363370791923498480674624563445725856777364153048982751964485396858470234914202994489544590620025782361870467134818144299460420335685648454222516078120726397567038709830190743119052635754706822314204880971548493415083533061827940160273932427479497316475570216518193044857144994722038104453298504745885509415948282096351250730843416017141578524551340405018696893352236304960880207968792725252831508945545206853281317650024907822784508207928677463409111784556278558358571675977729946911232034637294120249709586035426205141239445805499944587770229073150099265298490297917923307599331101141847900907398456836363222630510395847055971047613219172429383991532934305813143982408511560982525340378115235689373477379317370334551751338888896928984593817875143622485789336907159840265945251725921796810628833822372443205440422302324269356102377444762711550036237846918725188644476700768833636932151803934985168801987711844302390171956722774831080621583348665766686384545988121303521875177575848442562289024408150339457355764767486226663756692354409434878717943243126268200834195986367582275589434926376354157741976183091745644795212495291787154722677803432224065794147402287124013556302128708304282980205119617602284304911083671142966691718149849235084313880535960992841378624538229133812392987294257753700557978020006114877128882630590482160221637694807847974893489806246643499114138386084472895811981373547560203592547127274635797898451085836917582697862945694955728815995038107737150547016193901732500060069663070587403839837243291869723484990279146092273161616000176197632614105905050650989849140522734521213408251265672519652893515929483816425221114545238033857036153842646869271893675904444315829961156052925707958752128974385243690714986217034752086479021737830150753820641755416697112285407603552130302002495332847352026576933112507183270014776044709883450341904788951563313372643235709758866456288285128304664141683145248500797620086340177905298872743089230277056125007410242091614461298313548676979102589748882337181278482536285734594143625284862503718538148204993082706217282165243522037229080718466038540285350295103513084512642896201588325109989923656872040027531369827046769273586179247427256776298265839643674145423150008764311857081221375515028019818581095092360589267592308301180360476202357063558655887504801466431744082709909882248617777401141226372666054780554806891350716520524330120281175920784315601159740322949015911220515814162144180362239883376497418651799820759734867397278882721494879746760819643136173767029839335586384754701986637865322137877677775939396671542374681521206811566108820957302055803939798443521132137567915706194897999376179621902855285436282883979267902570595259218659163968001552974958089843193406397341866150331260185133021733528118597234320310983353800087808930642677139016375532609169238632282598815831001663110621304873697064209907061850166873547996386473144112598194104739115325159689540635399100720052078861822423672616464931646653280985293591276335418579309920793800422308795026769886390633210269746876704333226192949279329930416530297588259259543611879497102820580566886690064685666772133788886754807794158933756124948990444906184827274927365529048406824288771089785325722322330434666522329726925568859819052352111270755687259646966617413140896502881116046118285644583211384338187977946354702220756315262570155397392099237397242851748156518967679191989119913092069117679762335765573342767338638434058285925524893386548282580066462280079558597307360228846291254146098793702631778004137039527023464182102497330507567380357495575610566842433791090981086908663217688789533953704942978292612662365738079905029047374343059360130932598345241945130986792753420075288151000425811308184305497323018968764996776429313258581046068810102574495964645389805440581000866819841973893382353358576289694969958404187818283687039543219928183094676371266048217892381299199878757870194403116622475328864974656345619924869803514651452042355388642827199285206202042772076841954968297893567904763330750833973606616027552617563117753556721846913563177991794966688552589210871320666374023709287913015098414399029563480836255107808258923298621477004852516478805827005644742271632865470522136722220402224254894792572452608760335222847307453869315120125450774158582565013037630983420270482209468099855698798713530959228084674142305725789074075073375882904422937225619066905127478773210097850542354253057483556851468752728688225940686505702622255784234438699579747071275247194137003511962731826615770627995158489923673342829091515614430232524911132795125121714786321409296823685237930203325278941333282541501280077461174866720388667885065019392158312165926436695909958943529715817796043493164520459049414177083586917090486289500222948659012130943474321526450572738429115604984123614252012727881353351082622725453914127093814614099078525851147300315004157833448026356793857418027885566073899142377479556859252882260467610184783317277141500085709065459421188568769718227711183888874948969562687172344418848687404164533021761065278553232311901214188321865871020450950267435946995869334034741596321091079141820816651238320088243830081789908330454008753136067479100502215359558944713127771037542822611135761464095360802848493885064637271638866002788526576444595308939125123349201909686219873638345276865602178172545302245099904531832108422348507970202495431690598761528634619026438205513351547542295188275008799843017965026359838165192605127606680442129463668834131129681162694272556875236786528323818851038171422417348319867316325522993253108148283625580114757562144227847476894956070720058082176879183774362670301442871471457580650948854440539086799245980597131582781750273149367594669855054251996428794422568315036824042103495507277690711713662180861223168345451396992980589813789668998995756572675259674652607484664770786782512608923948868106608541616448148312465365131151181384549320390419695903815600804449468050325950129688200293606071426605879518521795809887880305492805850708756764248667707903251088999172038651272742786208849859903820437943264271859306116927295544062299261005510215738132008641058230301071733828294309729241885354169936184740378506751569840496846756524169218969851396402773407632091697658795176499782690653403449972248132612775487982216354698520069977641887235120720910552434652952502028719947050019795968441129917552622492938336425003690489857243507660167403150505004681013633062697413715549420285769337413335483501262011001395102971444363702193853567475718201206883500784950770059216988125450139272856151214504513352661688538984396042262032009806378787341089492543761677729499257946308473523414955277589823604627123079661771423411629734361993326518049681716635696798008975974499726407763572877647101009932730279158860318210712061968827556607163739089575757214629764900225548681679889377504505788853114216308046098603524834289133973670051042593639255414541173423365861610142816726267973310231720372239292573088635751013018531108106677013484797600666371650671026398504923376772598538208108776900379543938463693397313249449320499364254548804276722386736659755623476988082823182478076469409946728246190508815315496851988018605763171005865911290249846758434392495501525157083554784097515051100803109113398848368451869726627303374963596841694904253376471915187519700412739957178093770021040692622774168337340690621806292502393890812307774729041900898335279952290382252345543738088392656405865662114302843226073501155087362657544910249967298326678647565838472421357300326180919091313812251713459306198970740192560386649441303566551208361105488538725848868926442066127566908190496730907990275455784768257206342617382374826605653217317038896876417883603566487206285383147048840599107668240045411688933844873167608947019893490069764447511929754332529546788176074269409284041514312499117096278305533773172093881855567479828515963695089683719241250028688292137243903994863817501598448975939657264278202326127653110963450615944198351728633293641314042013263456172731879391964761301445041111889170272343831135666395189914432960994812509579419180037428536313154407924593571064183936766407247754724292443704860514218676206451112294212303604351881721170913382977358071694652939837219068843009997562309019006187677841728438846432863929861676856536838317907794977208584699578133058793453975219560546419137636322973134392460929254274900426016293079475393260725445680228750909435396844157399755293654729397129830153687655938985933675271237147193868952774688021852277041801618117890005480058547532772229942919407460827277229622577005971326959310604541620241484351556849567341212447030766914433242355564976938696262790801015992398146329217101140798980656556603463904758789733998930269397131904416262518038692576222619642078005242717017694629497900487687308638303329975720987207612085828410641183491279751639634478164257563307911413475240626898947254868462589946730928673955154770114454406197731378359307896737779982659618700667854901490449565066345224706300044802605379655785796757068102262342589482854820434277928415073913796527509314267181713698302458355159577680702202751126775117626085372968354981946681973400016735606331467039176396884820150772426115493590037096479036789405775949525492960458962355867533475880871660749013355183438376004384572791208312070871044404426532518610646137284780266023317068257876158210942904209362780258109756880417208177195946059384056753260542685687472980940306258370036395051337907585563775202616854210525392851882985622162284010120821977406280545771705568665972861715792781948577789654351954808044784725559453268143759839783509815469931500012151991615588461183158907232420974147293913136193001714277143377002777836803936418748200235478450011533984197047324236508479310060743652992039816775739456738136288172581197431626264712336330654585210197187577671988289510727741635031567438058060107016486262868678199015815321452687571060985452272595198105600716295458192207885089433890938932729385320416737690383055581680938484813872478726160183862457673849448171784849052127018190750379353213587868684385907037027011024704919434377021116105621938798226454774579288114902184654383468404589806209467160423513854026865983688713074185853116470446143929851919707648400983263970980081219542972605172005437794288455183715631782217263638451598380337983017970670429372018104686215587004386295782177310995861714503746041917938865049569954582321421847721585858114572361075585951249247368724273452817979508215137825310751679977003997613916310620621164245026329484158832217049781706313533574834535713345338924048339637492698759166156217385064394463428676968764260570920971436237832420706261614284091161817789244018021381058717068206109545590057898254471738816596241181485893389385617414928058000451398459662620146999843976194213015586985559640336310820413356794595860099094790536829238471020785188705067716997143154065163769475711426879921470296051048460050430558629375173311005801866913097211103210800603383713990192742539105657858307920550419348965079744537421959573844641664967303388491168072836855308983469134382903203404807244771856449360404987668423599081453554023092596449721629784728602389753724468128538496015101921397114704967499491875516078002003527378316651145835105923162303483661278779061164298991574174810133834831900906993954514348109321237602445856472557089823928593501971267741802499427417480653293126577329237264025137044875515192801761754061187433260832161256933736968041162009981492672408871724950117934866922035949961171851606405554941413697900470139137194679617852430101837372753659893857791054572123225828212643909983957216060576110202154535079972478486828708054763404753790470651584465991599063525317908741546952271250016656214498526531210915678181730170121277470488121835629987731969606060471228299005322629296967741277879859047386041997580710216957979666935131542827056695475131097606649285069912774632244161547134030739867537217540449431028161074722793667808008698737237354272494548571346846216100597891924672296937999452125240318231314143654664760001638704760786455644039059507812964017218893021546985466933770518017705977686563552110124811269140431134588232377517817755556409379008943792919672813929574446029885971779706849594747291089897254295065830827285564412842709504798902672800076688159071971479720751671615656609103502765539662653126417443243136780673164584675609291321792919257113885009617338276471846429984556276809735237882040207673198406492240123501003055017298929535607787505547983502196730062126344858082578477651019300329203044766407285833367493708769622582179037689753704183285377701539522243152733297025954224669352802584232047531871282227824627736733184884646993880905876042997880410848957685245119598348218712065125640748164395643161040622129028037759665934455667898651164493454080231583598388380612159897766400227617476348079829418910612070684258859690176654366181493616377235030895426475517967676349116187182421866345332774710637357961509417587542747236798679367193563509543802500810249733436069108529664546842581479757244984162455510728016370366114386227395098256077991724966407129615632693878004316824488314442364383574108334496502084297365838662464347320642047674001959530391687745695456466131473012120677406024570723901240575473272707724477111181746341522252363038039459339946887855183596146128217680295430931636061639986403187060167729803708668058758136048516822802552293801330223248766022335969596582655835429106281192268466294395001965764697462969460454378281783139001223355610016051626165215220267388400100226783479182585792704432850471321097540344408549132256975548213128860957137821886446835242787925263660179295015083526165781472318615848700912952811460792246881095336201540337351016574112728269501128081812524803543002188270559377622034134088551164103255881436286763954598317922797814636456219666067503902969765163611855721574600835514950015879010110559816260573623743540104982931256451314218120882949150052680998454870682246477729678487409001149113779749372033444115988247288258333325402350975589662110350891064417243181533406018668536937985870853457988128655092383082437121962421998349989538641618446830149148380342618490366148778518369881281449715139299858192035767656612906717519957619035781305389885685881910813116824602341818823187016892261366945237145031343546885233740015206068591902961400075141435749610855201382044479485029827834317341029529303117537062382287264306184330221688103362193387761750728497889676497055984439070325540152594785153822981256257301184770342953117058596415773610260143571287360242279130608887862282485430021801322591222200475779313586391152408397776995781913778628002743769040454066265520591494713014930730556393941913920214931276210845454685995262068983111988145055440183878873041254239533570521751772184736467253867454143269006520856173377291722950313755393410448979051005970354098308183461931746067494170577546037981632793565118501823873422401324709273538779026512985698950113282723762112103244186205747257101319840746607174204657938333077598925890105972536957021158046032906019677968373632663195079104720190399686160625397666225627373849129440161567755113357314442759470900950590827241579463456321775149510792660588397835440489945537231739418198233333390398263836722016716478467247924623896793869905750402594237523164357283464034597577053295406322612641942411202225420397843571520620245331181376179399923400663479503333272419809088306569827892681278864440585307764101399518369294232861817557123235152506773338173357529981404977723186569881088358788170590700407947449956180482486457962845128800240988233696188269398214714807779678258866157334361234412749201531772816348176122043159333226754537136387988939607857044969754792578943298183220051412487412701533452010575962070463932484995911423132871171022562206612041938517695734285778677807608475448607000866883809193406503985723715198163935023945896515710089956515075177991692123096878106370676457924587914812896460322473453310879007382518836062950054039531264800423713533526359796091139066537124881439691271736270188307642621956198377773064757179940186829969894303768754529104677533551423751953725196373724408639046740576584026471682822970437992131361425564011351142083362326927615357210809408637035242650465034828156654670325641463716244357004928359407207099325853542577788440129638471367729262570520253238352928096195119665346373866865956692760786080597632803440693880797040857492201505992003896793679422083507507268139258260259308965225499779389173929518486601905645353235949739162240287363028477368189195118851111484670859495190235720029338659017932515277641822531216123214583966202593164923825658581112136294744881363835801520762329909207857119898779512273821229332686758178064352039980942820115241516555176897554864938188709812687929634117371872577703122902804969990915582995933506423231475150396532068842716346971226704981803730190689987134188921207314454086019368499831677486637127440987296392105496950208065163574716130916968020607088856501554905600732512719589935569194845437592867128451825504152108517158757898946199057475449494220422563857951854843761589986496347115690433148342426865311847912783694245269513203474869525268947535770859114164450362761191065634592339058164664708494202690343071150133686991357192222911555979260859918793534131503758178820414578992193759510647033971400952638030142451719658169476320402893082829925416823790039965023670554779416374620395423147166385414091272528782551729160896191500386977064634283442715061678322015670520025214407793425986931315544532871730904394078174069288472823478252737514638655698332489202116536809222386790654499630094219469127904800471450952516249677015740659859855409990734862860603003161949700339707469710243794355375172482101356412927669237372268534311277426195529457433474584549922161629787506782542662632069750257043869250381399522378034354926892766912077908989536728387362271161559636636829354247848994807372537681480261690624461050046362822895130772707782695134459071644629428853819250267893756763753768532639371468378499858241600832071610064190519815386319631350533029105828267949509163982186326177150379633941085055151634315976388146657083541007561141012596445339559724978652550918450502696810556447845743065845824163060044962676632964253107300106795220675135451720533989548127075656932548271398419553046546748514934885470807550817762448600119142221017505574137260830013143099781404218448134275388170701783304430504139519734930086677722552112006250617780258437505366861855011496785119601542046361478719428812632620549819465278964758165699625608133785988669497944645396136060049370823674056372150337890513720457345079282681093930420060292131359089387556098658542812554913094732455933364478981784304878859337498290216857670415660242696569465084054232792805467834247988463140088898124180385613216167722432695999341222190799481349334265795329032580616957853005798158822507560120281835698355808053415917259468511718549086581829336891186204060795189029965402723592284905283957319261487755712611305934006503189786511013357209859370623531716653334580977966894942753084804075336674904310040462398465321885930036435827136295452883604988087420082028209371476016428470647072929913197977199522082461416119629620185775613919732351400032479109609143652671906060261657362148108544196201632815331829574389725567197333846302212920343519873143899666266043841013934749510996363835613730164362367353338397754462279460784217073274767889414986671061237233688351165502257946058208914351291954045439850383152286484215380310235909378866005053984971639201454124947214318082925191529686870065895687337280057806124679607719446935188027335391135102528694342082071063795107934624485897307095930756576844340761622253724827023887147756720244123977998947330632086040050382974623175841807330887052695840029890071384064654789158479034206970747068613443258367716383710330813672757926872363007118105040733685574046105576654380451138353987867227244257428146253951785453103956698688572701718651478573429796845072075234501993576036035089849201193552626188357871011800983001182749727914530450616326271161598951518650428885450436130589927952205833602406809470219757016916181383851319095503054057577398303249801278548050266292433290567854614053082713816492486802565711572524955114937438509576672684136185251158263253019053814864967565875320764994030910697167512640967915160274758252414093239597782135458792271686188746381871289542959734787332136408701911656333853520462844976079317140042551386846894412831714415125528304629889000086065643005448854983249348495373474591703215585777603432623733794495772319488765153636537550800487293832577674999475606690464979590094663164216577814251287193466716692686987362054968426595937760251203875689704145968787637964337582889687071904382273448535527028122684773864688680500414170638281889590675369418967431004755406454904162920974021901418322475042913728323256053266763102675844624366042894143658848572016493288889081861026225356587397148509542304260449434147488708808519599638398434924710566846140325070365933570253115197613581961766790056894742052917830702669210110764802907880553583244004303527071154860098958225424311960965938267806028543518813189532396843255065758874485702273356559355374325282884044943556116494205699802401990659489960143458170772559364293849157323125348428827716110487014559001517903614618511433751042037742365535109530266688879623657490895602680435697073621880158711695372618320215844587332670700598587997617924287224144309183238929586434251050934515841653046106808480072453503669285592747787409466032134509988842095871090527400851339963961961070272546611341712435429800897184856165037845442921902361297358631610557348769885873239297894591885152291759194235829850526977505852539119901735642730459350352535932772352077938691549592271443338660963003670692062753291803951309178900314667243942722778139540496565246526316316962271601069830611649743301081053995308732264985690141577225484148145723132501755660101636072862134945439773620620919052005839300599177308005022698048609707706696343182356376589655741394821047012616048290818187737894244685587282491954860039030635946725451480512407370601079825080986215485706827506074468064019482680754332543625097550457890504961535258232079930584758930522188041603594637288121438754735162575439613295643893500155566253453157495559806245226892217161714697697403784947641728785383448817717947213401756479852158973908594056693205909896338927095365912197285975558714280213785493698433800719363015062703958882064824978907936615700330042560914394346211094867264397081999591106549496968407574516396344344201637372727671546625006656169541762168722777814249621996569183719881132093629873288139829522536728910862279352697844952821075550198152548437665505160197097746516997304552508555498685698946553071015507014204974419787221825193550269334567740724153025817125762413987165857799146287184023366989677376940088795790661807890552351438681316538512534571020194848547471971946047742648888309033592598918060594120615048837100812787130096468820054509538975010592753850667143690907608664912261789872772348619168934217807977076719468327056431752383224294192560732728423744576738683374582389005216250501298420570184669799987194634293606991939424042487870490411259433905520799625678976218161355595855517246242213568880492827672380755379971783900088862651139808534123426837817805152125906693262565012204141093779114470829249323894618820085791986430647724303208279270198710750742936949399119121270843042995687604129693323929571912745181228666543083110173879435006720252794874925336733046335997020157736056718368465622662169683621489501484967787788533546585864787170170737101318021604332370283139516789365249891799749473336122095070328745594945235916576231666865853612816479282229327555384166287659936524091856457728975560459254212306482169494012873585332533760985931487770828327713117812087948579574283090909283970196612559879452000653208448870010613458787329760881055424885253299821290843264982016983290911308807961245410716842351800265852011103237168040596740373846372373641068991559244807902643758124183982979189912945125792105754462066403177503127306720236637677736545566129338968939979201811352096765204935312046429971237670455223894761934124283985457872317882929444097445754741580596971150292130322129727186176702101505958436490394528693773301172200892862526782096780884497967076042548158932773377343948702481638726713374003738195120177427386069340094364528264481231658549193206686752130347146942068081215073391588120440097557180597682482717638270258251736770847667189758271487475926321975656750606000087310971314290001074388352296346484713243076541802442610870418104756787328648094317995668562013664217398233172418845222749925534393067452954700166807210326689457554467951205912607705992504758401931358584247632502914726498104070963454729693841603624582251187572292449343779292596784946803357836335206208906257230903878662616311730469352004913961611536296576055038061372523131207179255654174912498412785250007092096066949663352301503821319013302327165680497475335857532426350772745127290607686757384068713247020678133918799247304175274308978206010293068721056533178657590475847467399025660246688150636746333778912472877067622071358256174550698145483907941867583661040870426996033413771347999695911523883344962967338436635094142525773830053699513845473064383949200742029757945638489754810716764764690298791651710939455913562050489059826151799355672593373793767368678911034048623464440070043166099646218246597743665118438987938828408465502270388898105906905176479465731858749509750886939749755003291250455103398236501918707879459570621875754403798017696005498246973312035920519727924845397334049321606300487222616190271302239621993324572489226552569900184839557546156446008317375551649655547596251407279626238892258519772368770840098335493790997204866210845520492624417598559545226745220532351489533786316406768091120334911039254797973448714188682971308436077078965142997791564967222269129407547840713690144214436018352771576676269015260897620864281919861189103129953791603319456893470830474906897330483237850390900868957276438772157105161182554464573281847743588421861137839058767701078248890933576498005459068112513526661936654182893542163199178910388389227135028026338993941256269367169857152720691922528373414709637281834298541228637835710632834205906609869656459924202081394338016801845304533458972619379105965117079483352017504485597885048003193682745153588628332280833276469216477996861686095604670925430990184058201106328670936896682582171451140985673080435927872065011104217069603676704965348828931825425244789976335246100688642712029690852829918371592091327941560209927411264085250341165527745739370851743817071081748387280756408973658521057039530865131859314335075375741428840224681330719443947431338088393333761194037744580248693792688690219225239862434250923667592266967400921260413244815217233302444894369961322940582848143757562662040475849521097950632572400701097394183616660499022479487989823583603919915527965188754674330185762371767677957853178884556976863641886687598489623950816934893594817811888724816260533463069924056906428746306733772026567964601268611898479098407834447166701462677803479119806962768796489785232435161103238138881302941476343678914228349924900506736727178825725468991619348552179565303379778376249075005445154914282287270186566976917964881914546267983411106458811711735567393835971104585635610731621830020445159623369663022050264814103064218038137851152991786044135059746425852514692286680157569846885815666660840020152243705836849608170260187338076428587257537839146400527623668640060599801451674041190811725658563111009189799639690183472322901955568604842895774240540248708293769794065121452281053454151909334190129503954475122519086416288433499553133807218797543394773702645515199250637611580703425199217634328480028398317046264946928679298437431139239167073414292100280927149287632913467578477564182052435640048500429728900631003769462651704751807794798844729812662376904419639018765010068429952833716594259071722696476605691864007749926758473725232615318364340550834295385884831909276078962685880624840263999425576041357041888582015449959048985377702920410574864557635299847243332098872118550983684297537587214360472934402966873101575319787012490568012860808562741884776633374141345275043803143201168295006073305037235003332195776321596628540679842753657242194691130837297758309720244933477656563141202422385158814677195111976089420925783332868412006171134705184814945487258981516308605984513917434377018646828586469784300772537384891329220403532749653752291772447811517758516699860290851030209690382010941809482307981403891259751855169045132591029638543815016862405316008376791990877307753808507499757481038652184859338015545101833518797006100163049847457555900208832469042122944367536903851756886514425656654361725720385497590296486512735798826040751670990885097118555583672927789988829812454908669044460789486883272958135448298216998067338676870944635535626132610054273330852525676136922047333846681667121163534731106961383530235355942242023279111330279059206590842943516366308869243385223106671148757795081499817251104615796507223891537519721801555224398511240240086144522750405252540972523953577400427190669374046942044122433963548773235223851444537387491349914864780459795892895533237411381036584924792917466194061936178394185822209440105285814300621329889026808223567960886959734258216020311281551490689209704165426038841870920761041330868568152232757929112126799794372437258244395197145409788024034921596107855313283784931418155604362463574044519270762130062193395289539605311915108617558733983801880750345229601203143016661340941857837170100815653345044832349660456149068334482031988255503462153669042120231337379698212368660593389442762531550916813015072641076481834378867304814884021957952626100900732747664875740859304360695198922840740592643238431975664552209568537851053965306292380629271799371827942067445014524050723127325115245373441678923467247646709348565190764944940166531431083739945512724549876962720926745326316167760221561699622326301643219199722624839834142134947557208355240747294969932050262902380909285200027846630625134070835652573946935222130826870908256619266775594774021960482753729618966977414236940104985476106169694021816095863596677172385333241302306006115249266727011870950266167305628430985826488776199326256807705363331925682383622782374462785204987831354347300779984601447624708600703090668638160658108846160327211541919239915744228965876217061455875141358737896967271327480927802331894540585963989725105803138634257551220539322270558907136232455022753356161642570877763666048800074758831135377909783587908477387100079503410583789815733634180282850899984363801726667804305297851153651204998717401188203100548976404130073797825782300431346020308272216500362575138529070839573374310472256487335695017270090614189673979881901869193280248478079685423011222354732198258847077090383453057476566594128473269600525265945572008530119931421640330768368776257826047020147241608931203513836737523060986648101023161533473427440420690180602214547498283246072135419874490186887291668798360515552101283663472411003129021052974444009480174498430105149004212368801937347511317320351500228018673925203569869194644555849627512577270358661144842308482917703451954955437713736675639521023669734641898885584759140056403029292381191211112524863931080021869585355818917167109878608326077857981129006105502000003885875611049120398945423993310473733173337354554355172313618855954391424643798176633225757826149040338676614681062832232897552234358257687086428162680893312002983700187626344122713602129553425092176677029416830066927944480499167747616355784532062312913303244056503065701710295324921517451032956123703769284038671289680737317958038969820179734708858767019499603000969019872778597571446050324265815883278105167560915412275288642674800980388399074038624523246513784226002935639446279541687041549241773018356661936679276360735928330871584378005648403532569375672925513079239017447599546377432747264530525611300796688027804643763610672949319612048460721447890503349169091661520778155602969817978059209234439096881948388885114787445118592341431957764052101551638299548766334008035653990300990046446619763479564644694211339503391076261834204644751411316902091941414764454019405841089680901417774333727427986930386913348074711928413204594877252917031314688391752633953494326878482253806156117940831073972941932793592414424105138381619594295378542821991293680549581732708078523449700209847705420655514061743403802803031622652639186043078724231148640683478188829110165375214871707808903522568147245816251999136025052459234793182212143996357694188806501999137939022228001065100975977138724802081473200827779345454300276017188757620011730126151939616311030225624918261427805494527507701905646789397143833492363418357289395576171206269140625759522419961981614934110801052517931303912392966592866898021425950105605755688282542167707331720634614529565364217854417228243096562680806308945688731025809578279262787090099812025970465884970915444297426928764968747999633499265533412625373600029657566593913753759553881549744418130662954422464795023684603464722002469921697691244618446363199157272847606440449239169766308138361176237262856959924357944175986098543319623992796503107106366504217689134104759945427642393722899486491941660863422333361146115257107407736293924837998071616280661737731760680282632918945494938075294936837684698823851693715139977337599829458488415466625587480164813212858505523015184107454322586044130319742936922128023413754924802771585935221755061024334007118395708371109143879986420500745337253333131698862656163138815552700002915261281247493981083345282225034283529633159749099454193502259977431024802548918978883332338424832500145840408258214085015042258829001785826145349935972745619620720261567189920527463864051350140571011277814864931685676865741436690748658698171893395780067003809967349200025138893426480111110617620674780452494436065506662651751160313456975846916403584087341418978074337053753636745103953944530033881619389300083002962358152512619637700284325800042962806971681000202452537489211743478179499522984448683497580032873749727833605305835349498152091773612423632296945862856916812486184614950018824784570390793716132515431909202672451257094996166931965660676983734191144968578082534633923699631998214806592538011085342861894186241175460618112998799095498817838415311744629773746325580592150785017255198805677445297451077298502163476401161329504258171818592871173599021543092519205925656655763181404931049900086081041663048738487625233421877200572082862937231365171010596778407878040588350093246229189150383089201204468722846736849081399439354773500350653097999656836126447889070199930829944772717823868293341288245640514170582413612650855317944571746629107777984861198180060574422967484093175387025850421311642715724540387747368078095593498882978301566140688454337647553108773678823194091900546578788544520887528070268210965656788926300502607998126075139983078141878208821364219789495895702215941158653940466976078353100628794723682396578961040351444111795516717945838130670349523633517159437866880349877996885100188679514128150296710021935111195552003216009203028860529648312614209981984480885687642656901195403209970216322973251819517223186917686195592603906896846874823626305774007990982540077893232776580374677177570404978274134169934665778613324107181399045105257789281699293691544881800649215096828886196845867866002461186493661764601750689654581821959733058403024724301640719299099742746376717545391476429950522675872924257909735783891763872691600061658314048027419664228733018887591250188463988275745863904569768887421992332209699762679959638201210570169525445965503851555379850157019694638572312470287629139756929428462255497240610742339411149867850203791441635874955247574097204307067010897389597069907392083538266330048803857726680116883655460459441352215187153721233803400131888557383861153022964966572787954385755611208784369616926036873082937998007531057020645718451040596109224312563321349268744152147243854788079329258904462522589622018003432989084229350928398407549393697894425855437336817732130720278842195398793004463707366640351778521129166605353842824375823043220959751539571065944452282769848006508107276880508289704466977772695571233782578971698846608730567905969971043243439942198292699080938245794156968513064672369211650603622599854487651496301285910758734487802308276872300741839768771999060009181219644425934152100579656594241723582650416493708613637257709278841124022988738616099820543086904947887399926869596059899516545854468460008433489839811117486807616893708751223219766621756908023174353781268385554029119805681674775450029701798824171234783758428592384920378795608048099761085305527566227894364787924815711315838384427289765515821588978411633345404465833977633579382004083831945788021694043537452265022307227935353847519287473017166684728839132263739103549968614523185270431309128527775598676369732053191290993859495102710970355267094902136206294094022229228114991777671478840303790140633803277315912584385431314211968943665519925998064552346604232875051426550046907169899027501038482057724994906235060467504779983820200493462802430418018656229413018893247176485557973199392921141725871463261862041575554997467206754994776242374512916147804205025587994863613154258137468780801198397781905751135295831568529371887379485180316631339699721667457263881919952028435025625680094917118971842623487472511384234617339455187446510581655347790213458786991669442411664485818797503699135998639481087978234846446696594833462391940357123254717745407156474171151058146804506047828753860215685697393396384169137289939203193929346458393229505384584535684262649339185998503906740332660057806429153059717577186739463834966430663389974535398567129532322694244540499074599082207845670527720073992270075872593416608084869703231714897056277927917392134090954071211477629408258395098022727474340739719468644704259551491729380836045324415276579941614634610801641447936017691444856212812572919490198872662874135866058853570543964502625951217739731446914642972486987799590900374138963067279087923458155439231123974467983361925756112836011273217729431391299275524379212402353923558079847550721933649800219503300312820888954763739454038032614469741602361590438309870131568213290487778169463754011889607442556136826014380483894002844008543291632364104815625513075001238829397132994649965391939968066369433243740464188729186622678562802724085319989933192781030799118712807684555285924202019888849157375468956751407350743667968475939522185291652503231061330536881672381436614935085379955934503666501294191218791276755314378278970817802346791873946233874923894638746005109385880903589369701654796502242178464609860758817763792210170680954323025879913985250845230838573012105231823691231647263058159844306624731163628769001999456687771726473682567209090156135301463917827199433066285764548446998864778463956041639215239783332604553226191391540393304778304078052242601562760978750604130642273825176296513542640200911286304551011596942575399945572418606636247785448125370199982599838635401320038929080295315862723922206611347148767647804530140252632126385795660333440882691653715388843160094041048905713029866920598450968927937693012323512236605623371231871421551512675946139633536330032045754313424197095648212785164835559535728302525631097656971282696424613705864419193213838895629678688301423399603932947224260392929082179392149172877912814736290865096436844789552200188026592942131626698178013882818717465410889241528788379002542780761279629129650445813132731307656491977360378179394897657851425529621256427241807010067586820946060956773604542398016693451168341354238791636138286763957487108642466818782881046732626517159132603214491144504877245655243619171983525182528149202942138378095848390661730339883031099572677672456465196705931992986070945546372686643153242817041416256137635749391723049414431433609184244482657664789556360161715146979065981249265451243437193386153323881344076114380035748148300718248026896775586703908904028911257027435043339474793846779032264979221246351732849024489357808160321100487395178111409186639262476789124713854042929472695501127322081021958555916371073033783112451274867596042548124259301198027564336554727925928168554356338500892919863095479412623248158198921174189011241257036346426707676766851657161229703851192365146818655861831696508967794271302528893633269461586667141727981171263833503668991241076763424323789252661640879089130324100952895045491126303582931225400695036374693212242656478966612507857908268339372324059091454644973626519422867261840857736565213529871498509460360491715181360207402294073233399741380434494222536445359951961351118463539114365828610653166348597604112389961368334514915192566870821853905289166681338125530734601369481408182855116294156069857792114863240221730303971829826693207819345624525362122892924188662303984150814024249799049361535349120405169698143438395470938776376440574393541040047394622696628347465271880573689052859306871737107577625822108622211403512552627329166371277180117552023664909959864751548759256663486989584288121956479713263135193421320657951805531383922193976133453768657041382929453494861588731704100696224065260865333896347075005110952789395447345293521366919986373159728565939372591820076793836385608673435635699112335442042331012995341462329529036244115235850049875692683771349620421180919274050731251970243742596449157574404742458174236884801611383084697918301780959022495663058978235042145344434485623472125323724468929108111986493210099090210499076713060011035695192791357968685840068678399384545609130906967171222744019092598970231610827646201615847497149758235733828895816406675229534145304304777404598365387914507208313703074730010285081774530948659618867688610790745966186338037228797914232538580861028852103453498859243832289333351532581646685547155524640974983283563817061054070067844738711137016302370675454279584673161948515862699290044483204004575853770594981432863119022694093274449661353251698182728076398998742878701028889008670384090901668641566646122739587566910778962131608780593766748318012665763715450543997800486669478594828912898326066032744928913260135032849462207896784725838354280249359834601168043659457455929846470965086767856285373347433580831877119406811638710681149620606346659753731713087706523241442329143257907666519088835398330297786934779504004085474971111516168670770907052015255704209216255781858618323495548155791670906559402599329917372533846830362156699105555805527229566316273074588248587735539558127691182506168336980106701560516651439012068746928968392405488766755070774215335140067801346719283837161130951334493601101506536703390201500288393090550953163390086028700655292595276438848651486409792399245309207654154209818453893846584955130621028022256284570308234478186444044568778066462134475200864588114190182118199682086926623034174992711977716832317990812034247211623680540246117920247614553586866477741650203872903154065645573124873506837961301661300948784115772021448299442774547559514250528147066596898425178821671363435452513011274926956545986935492984008882569146882242794740457904460233897352087362617989598619041294464333374773805536676897497630078992085824924295960999488084757330995806536414202953261965573133082394707655746164432687853274242574293880007087358820870535555173174608557173268378439361400056984218107453293980797631993738192367510444817694558224158070503735939286945765881127516716420251385547107414286651408880037109588655337818095165769442230255388990825239939299440103560562412312998793719331158888534225718082640480910698127328049495326388638013840177765092464911379660650714770094964457137586312414015729914326907404139339825672887793054474319739349156626113559807377639874294121173498794337698685279449347413553131700478640173588630532304517544732315257176403607424463205430038097910015475331157280812203624763855714373505239376550689493692749983522047785579394980136499903894145429176783077141804422628307686671074872508619291348807524504438593236780774847150288724700731069805438999976707356781115621745829211272368708903434371147121130617066839674699237386682999733205014713469120084737984714069142481962534992549879232528297356446632749980278712990759481859924454174491927291765046886564769461164724261036766824107507963067445976745005957431553394592273745147239432405502571081917454395646630973652795075249267007805470844370697454060282993785963689332269122131024204057383343148569790838419755766852487944209141141533814206723805082753209896671961743530887234981427242639458285992449515069759115170322937984041541748600497859643967145210401465152304960985188344822611918338050895209682845696036288623699985714377874798786212548286451717850342846103489823472226671607037796540542793902016844294607070742365119665726509510622932685951675303559811767918621956533924245784025672845319722024649288315825353831855817548915448737104630608372183311572339977029848392602730228177051911187638258179589520180842224479470059208111578527666697475311522390002767658117339884568618729293591009477688274946551173416999732031994357277878784950813841396874833935858288941977368361559864256823495348336095480520514405155037760728369400068424491795154447132611101422009497211184744652532745063271914798082342082270556176036898651116195398020009466064023257738119476042150273584049261026469363927292918219032213948877888074202257981904295839432364482433235088691528826722267868254343507871896328346479448133021573380988085239021383068181366791761595962829493665730916807559014596913235036944514468409885023318270784296899372669545060315391525872308317652668579635436161810214774703158842019889301293291457616029355207917791899434821014870461092967593584811851965718435775083008766632099270584289560683209789165994973443520491812661250216944289268620536413155423059746978298606329973456228443634992331659059384496563396169652321204022515579324973427823778826117664086562295078141121510876711221505304034719679900834780612598278991461675498693942371097725725412459752537505309437796958445390770207050612173874528029579010765032547617675636492101053098411568344583631673607035735096597283301315907229513559158395237969637572638753785079312099744122991658078893271027549797704209161617661344184622040317462122866446979376812206273333747970715285498906828737693103839930434684853494351001168511504393200758551584350016763700823355394306016453141274743309050720002046363566986589738104893749061440260343372358004141965793455947276422138563859482115609797827080215628794568584506159009344412015374327883257266102535782185730012731984580704952305681807613422764485026353675383471766511393013330660449693331384903671901205599735656319659061130631654524744744330754894878209532772176754200994017453794156465574210770135994937009055179625468361423232594724087213952844194127867823556583510075944709060090178839810023966522044565533057586309523973201790335256526402976175383048041000035219088503086620645648312558794463101057020546750668023234875129734553173545744828668599764096088934712751689770575475888101461336336568629867220699982003086647307246154667239758748286284460936654493414420429002441037845638653386241379276465636809408211284962243419907164895771672751613689272376448158169509877395151907500749533141333090292205132059845313423871059171501338289791784802603359588234316223624326541594934765207477012902616458799818837836022751856933690787767411189886427329401679177348501459175565523876587726335664458072901116012831238044944634928814169568415696652132081078749042169631437459099940944750503187268085135022428566210542670141036118833791021478383564314635070895393130915328523914885808062683605480891709744925846354998587659045477643749249288220027715936310157356773713178430570504073482628672325330681704786694048761343220484822001754476932124777300303853841427260831600630797352091047902313602124839613411631746689852613254957780452015488910651060524231401491665571097215819563229314143092072962309045138001436025894178838810089355212495630912403683976629281276994578735371296988740015295572877566335083743121895130973498848203542516591112082657440223481174541794712070210486319889294161313467647433224778675295447611317561694481200719738217116483312306659419667595004107035436507805498964162258503302678201035627500589434913923797376378147855539016602836357651662052409855558213683441563416071810919315028286904415655823442517242182903182606991521795340195423401693796502938102845625067481264199014713139579712781824293459643395912576228909945009619987476767590153286950793341775633411742716478125975168083324422105922338075648083017359240680305122630224694929116795990435093466265286580010537511106613268123684121659001071409216552725090045579922858280784549139077405647835146113374336773206891185358969238573914529925142208344090004637261129587198820734249813513086587650570944732961872688014676325863032962642983790737116432666726460907183189277433800539625430720643078691620524528510044161042037268801508072679637245807124682774356470934808382383778288963903656441713445231221946187647259204035622808872214974708774118637226087514191369195294196742931510729637427864765305275789773693638639523999362170765048725071173533605483083672684264048891974819363129105665042269410862059695115411448678594386847349515053024264043995291721691889670321899233211259229190967399375345669889897102337725431826517958584926971287054242349038368212003474380282126876185548434284244172084021231617113945371088077636837087445410659548557050208307053288609464844387487530348223811544174338121797188313454026084430039751942428337420544345374936495699396223723239662358812297443291196652895592935944695025276128759425346636741420382040307229592602265730277746542374277138057610331418151563226049342912273315545210545500982456266011343928724459090280944308137848641321764999496715224206647310330682267063532184190253622124163378412269429499774046227633340231874141611175643315851955002568794999308777507092653537092382426941642712454877970640726865863411814249415156196090761192278065016013115996674393816169524255687923097269646991743567807614034650383769892122692778648938903153799873242935987587858074282098512237595599628428263861458012605522979356580089177460618827469705875863679666973675566432838810098325832520944887551607277965703850118914764136736257035374408595334498768168514375713372815969533622638470936026164985001397731214498762943065645373741334741711214794690102737064380926282902885264859199127785996175804233110289839369540824541666934677796730770046875426551813930276754837682172668296465292668099672791211050462817251936020051187596811756752548942666082977231470469297084971519940736544697676560487944538841775558586319454095399663823047489891107248381160229183684495647194853990447439889099204873812574772258469758804730179229507718621799291153013735766348575908702968899761953339417704217335682704762257728676667818531475207521326515222469180372070430461194916371187137960336696191889532999142756854781434323822159514320369617074031891852938613267360223033135255256064539874073676289286137676402173277569672519359547204190412201418603960447963563995450448628140700345238807412782063820769231047193500808305441393455292904928139938103580197292023193539804107346316321164872683509807356009756596560052149385344386221633707917058023639725100509009482813169469540657952343308207521592346082356646821820545158812720718976720068339264493251669522553066695742420114027355929436559431876531541327021937455104685727109930307633897315876394807225753548392077647202859411363631372147226938048018119612070545406424736641947873649463540275728399336364019109379528444146117170575201205123670283003536165797106377779816312577320521055298286594817067527164884643006638093246986359992059399139808143596888148460976180137778914125589715978575320980827784248901537961226024657646181326041359230271394179798059784112218164936364186940274560571744040303648344278485723763719842248238820336908695822559091091859261101961210768002573468336179218117150421643703485270411507422693950190165224787398884698456311031378852865686319487249283714536477921041002669059152996011202147434315211915385089346486171637407833635714603801409187238823406316035832518833707107382672698980512939399030784097771376892836232805089878955343329861080529419348694350678986934896233336832269695970751563521025114714371319948094455690717258297390189569800564622455820554724985242072278403721847712658004195758511346166681754895585880406911294273735298469234367253541957444305441985070645979973227779238443619683110200313505803490879060670387358543030410028473103031099626086184645141336565773476834231353324240029698355778195251923328153655457148901840387859031105518328884016474845367203962160169054076352971776409456147730600630605385431697973867068604160731182008516406267743682135115032050817957916906986492980691892322165348794592132595432579934030948145209457927985078664996578421440236188595219330347976738219816490214859232196019064093730484641289947106491267706896979154770607211807151580656065089524499721473125758741638660340252383860861997318794009583168934885373288635431978492891345095590255019182184528208408642508423989960867532120084146010495146517603593601067482393909881936895542886984742856317905685831355966154952252811421218938578949590359611933057014384724583475659565386467316400640704846268061180703484171212289485089995539950450546077355753001477831506122805833441630356571374176285867876340908327699417391840528151703344948050025055577821929891054847201001962680443595531089000632531408543466528777635845550928688101444522767885602059085092408322093993143952382664688872673528552617286150738549198689036497686768950365526681517882159047922072655804198752871641221589737470332266422616288831456681776540840785522081645989313483207115718828728987411449672201600521699888143652912235631810237203190488331596228186953640794601548287040339389123153006098481841314738748892302725036741191393405959927797506183205368661840481219488400417789213076659715817030262960229895022541392563845511061421856261344621309775693814174759644179563497373140834801800889850218649948615018258239444550876077810747659931520859568982429774427533982264976210496043650828519642210883826324624989607806003300616720234709515652414337408375684005883636912288837421260988921468821261290956516222511945268043699507810899304758548038925301812302226515569503631976527348326942748324556317893508720013014884346701386986377550797605659559510879293349492040330021807181496351652700754686836343669112984879387622072903074368397350782507446454868035216458009359551288496321483718538102186588451770940918846169039014199508559226969457922228667275956615986910430578146181135034091292418021225573494500164718568189008831576591921361487273367654036476158686834266920513477029741735629506890698982243339930132625324604890325597509187897553449100631680832504963047737669729376990478345806476348289903519418637242302763493478421559704688085240478103194614071533048670991727476399511109009029233796683039926477546790212119506916532114865869683390939911671558353171076989232268409360023044499471961457091537503790548474489340552218649041349652746697150257186556119634691901133771203871216889323153648633977945048694615728612778477100630727328912374103397539969893069147996881086923186625798245369826083169850251194700105185094306661408704716384242969018889247389028185639527484576552102698031926545631465092128367844542225465236278457785653861169849001369020942121395199162151129209530748754504562125466779546764837196534670161486568664937209862121617551381117775696042236851966577786874979060519968744438350430429359418003514077986536966504737646950868402321844034655782137041140165997135123087141473839988198564914803971791279458630169716278490833586431274712692404296765139741486468766015098167676933158796191407126873484382889566939065853173014183141200352144643589167217165028387925850158874180186048395714174091142102500105123737456836659611514599432555029282593471295921881828133157411037612046889334990638633162067752870309543022560240511049352500111824106289850665616877388055329726178951742086604359058061983926003486837973057068578734079475283465466348306245909620346486812254271139910382013659759394935007881835919764712601003358145482403436094272538079288718969910073756871929697053683529148444915336931125246851958644172476069755560776209910746923748373947010583333355900248104526592603753815226172981661156760069695475523649309825751907685076264481637515919548209282532815306007057795530965365182331077076398101394649400174534428899893271435223614784159521953326838645099639682729556160836116309944258988089214738400330808549930405097953573482647900635636444338274547098191420399988550923165173021383155529556122337020787202957250807805962796770358754174575662064470461038280773366416012426803888210794122789740190920339880874197148199670488935149352436046439510156039899323072590425321383081249061900741772525759413879399735335398979537336672704231148233601366403910041540677783341388255246281579092775549940445522809255294657525350642109333867545615339681386756003174202428653737362756918995271707673167636322972071263297274866097010886943185782129160732959153580227908713484871267554620316052836069544290959404164199780284223589248144476970802005417514848224083796387396365977510745088229545456834386878284545189533720834226965208007103727147961478174173982531420094423506160888887633663005161719305268041535517538282193622544397380910481662234744412841336173117965153626445868305648431175911273333270974192563754738747593864272369100318687751695282823954493068108101807360388364085949201643900586865466403407967439643100333953697744296861874000961574155103541244669281228748443335383731455729032562227532650689958945639599022506201050923044970341678414696735721726039054811353856467902670743889570036561928015742474430026849116846252578868768891516784371976595259935952462028327266300451687821122298744441731274673241621239194151899271781252715735965840324974847391443495649840990833104785065496481719271853315294816725783979161506133547618138235808079412028993820044647231117447806642803647588238717500379803066395163537023290351237302294379298076004396333062081996810020780687229009406355316377840539580776578589382903706437168689905471554522571443621284925340084717272302367908421405552847319881726499858877785005475093611957190440800584107461121049243332757775780729323776472161631539248412170723228894211952724800583216749997084505490470380031402730414062164819158173906057361656416147579497158810215142920123536072465776736596927927946813337545605196800641528223777626619020669976088682545037743736652996291172374094146434265469204315922635946630972460484473160287354869336085383277298484707128734708599988480810934942661688439718302795884370018623918616566112505332448811886437766347092604407911667171532363218937068978020381404326900885595463846616082014156770348998039219087868311259149193933355380519657054301481916861727373679096943791879867672219338015582221529312667870396176724413018721910251664888655505849236325580058885257522814104604273520284203194263838989778058120027241468594247796739035880192721005568876148974786187205594189247067703275144206664542414922172507967149245354623665425801631527874920267388181200178145393389884646666591253145667745819119796595811647740804010737664886679634067253683047778514158916839343646389404215833202608523589300051440111103675150586777640462403665941964194779032639645184648144640020804869008495076083386112957192773136033166599151410166144034918772812947525272530562194866237848378353206948646324975668597478249836861621226170819310308037225763538341342320730713137503647354021108494803812307683577712631350307425765351220240169308231660607716658451024109965844759647370079403620638598878652737322408475970748141129380767727858022775692986954577607319955544582626332628259595623904477098602446115078583340811663318610515686177592978457676929920883156287090272381280105370370956804825293692903339920014113318371320175768549279045948194162269330472382503098681750240641275275220866708243344880745753373951868990151542413445379722291816772079296121609681100803443647875754961482895496473990818489709001113553457988611292478544970489818086284255789259308407048999166941256324313392169844649608859935641029416618371079648962601248598916665464308617929384695396264189765372974166763752985797129311338245745168663817602388997715582539711452020688949806855490563248378745939327467533240888638816624927706203021715682485721715877072041713827707859618564703588752454067471384488365369527878052925977973061749335617862998519919080692216074128674606977331398561130060776933604926262481369291101126612657917920739624904622559317893075285506309225746416342034935393213695885824327690710952798515703420400466412144281321804172648630184475593383835591458702274267056123626819119803067373141829064414368957543726011281093482291659065168825340121706414899923276619378774503082819488815879321681069077895786245710976501525565802748546726499052445095972273063434102446292942645873523561542222217905537449731250341855860004198804821028522585379593680270284945877102092556268080035376809386024619230237859684275943449797586307030732264723839002101380997720698999771490493229372918479990542605048470790393145995065452267621905180137641676550303004129884718906672658290553649883453729307095938232491893942791903846419621927007133690420583802008225947900676431842227131407068529863953490487498789807566311910184669940980090260309446656499668948799241822703862213732023547398799825027031073836142479392564175349530733734011366190997801283141841280917914663843786487840076289857578422583025725427021641032530943479562494897187694342003281368939142392602481632854565872083579232535700732735755716577813937344709429590384148807602946970755725554620404800714460807739669517789423679800405865898221863842158228951011175774511496931555865383379370346428721556116461708977961183170141957892252232178041160805234228359668416542957013827178029858275950036345063502851968132251316004154467823729678887106399766664908205453994393584963838765071330330769330290664575960038912202878610977326189499695322979722501434129604553423211007428269011388597672003072033516237294177966192702943278333602068292469690748233699106001738441091043928226835263075663969498210031034805373115023540683752344381734905085247565952956679523895395618917259045795408622256479615813810975658652451290976885298914270646129505412933201961179974460808752937462255168177056831367649984708773901511938824695675388437066496815923979863019047592551609015657621184972076525865493779407824739898485551067690130147139008210283952338143461088901654347962271984770216713352691770572275343494711801979632462014072003112822960771404476663103159358738074439016141375220906193118482144879162595693789299209338840538574019456709748616406386193551499328060346640748094283870202758544611276381205261273420635276699000068240538474565498674902713302480877023317541111355238060103421209195306808595561309098931208275931601572616743824973080621975354204808342702806611308386271661279644317934383787435807967616114825230719492437046911764536170235364385056385910669433164970063793074796542588744409321614716355093395363108674206476304012117629695101668845256119889577309934199152107104308655632278799312075047376619802770819751829139384741726476521712226491919631112847496691706229096938256442148884688207481599255458547035180237650175429183810221589497074509103082399068040806837173942477645979129297966665681918481307076851154326838754221106471870001550815809226115894950713787463996197253314781921365471441505145390604266194991323031507343394301451532516653084297280147345577652484485766516849726976895336269650940447681264608170388555888027156896251209384851854433203181529193181019184836644175101261443472762565505311823424173048008516574614905627922999777600270878467855447125420193606079359871481427780366333957365006328765741977386609713981163321634315309643058430866051716921599742268772040309458086114144321786518681689209583841023637657339101871444295616510283312893765216831346434632458910833656934088691591969433069535146125160356890768947204146424975320898011042927464941332031958096941411509946303594404897148734633990527451638802297096436499441615760326331816885047195057220876828159436615797143662540792282375544932720124039705482656906160451360700501847131627867175828917545052484911965873958695117702143403801134270628415009895671619849436038423257734354483959530973513167333399976009106430049499206812444815394850540538405981819688500050555616318662021586168890715613555217454285287093661243894836163627108584918048719007720079949530436085352051501860926434671892602936029008184388082534445057131001445214535972040906725755261593776696094487283811361274661994664561193045973764958797627171539589383625755701304146586964550960132638331260256685359391510984850977724203989844072713032171341409112477700964131894264432203875984996773036349189620342241841464510791345989598493573769490961601356491801627719667780366156362598702278568576454112786648228819832028264842760662614538859954619185718658755826824576461479215909142313800555968783765152722101921718595036990788374626174125024075082918389931650108685186527906241461075784605063297613670983024027037181335415216930878261217562593809591363627807605523509748202230460804128365490092532401577231295749464979927434956188793479733945012908694860986646844425551418549074218773835053840846596514357039700848313096798398017813988947886531016154716112860793676725784245071619170234668048719976828827005200159552501454021892978160963578107571884026782473803886462364979963722454009895003158114266839380091888251598957749403311968149790268629243594842598165757353463795485851698725492325758534001393355772694433397654777166391610213921336283990489749040720532641772372209872643480161947510962765502370091812003671662709410972763090442718076836548246971939122164497942170975590376112302763020085274260238401949010009945191847611772125093892657954748094225235357404403387791882509640527092110420062765731219635533922238059174618610303357723315245382307296137880794247691693379742833968539263042528076555074536208426041723143312381871428267293101341060670311927663161899418403430974631833812936539052457236831133434333900001392444564700506206699373555095040846470677618966575600716231341237013971466583546390443434174404539846786098819359238517589424457778477915502740748817026457631729533309847240043633404029431356622122727178013994902945351239990992461142609599068051119015266053927872374411530471362250802964740856305111733584271527981409154054552086756195355980496958846001634492755042328856716194075532701690541634027584629631398123621863341331854308410376711725450121788860226824353783102053806080086777436175234436444074369595042246445056606201298135647476073565531175825402955557913675044402481316727929659360650519668398722955606902810908070893512240298528790328713273615556435314191179520031801761201618034365448251582099448359715340901394312998905159127590174376791873088094325121294574383463869765939175395117331932992956562597143272198985379931830574253705940106874264729839127757386820868431985567898899734178134627459894626124116876905492698477543729383574413951045512313529531391444536592534887433048656858230758112445406773024777761518985806030619726269149250027138820017026105791070232139134403290707348539431985019162187556551438858681758498687278024277250568581942053501510104123539777137427923134363343512308481173759990371763927736147226707958440388108619485578182299018909977863212426879748757071216092423969356056383622302415462806101177861339569067059778671780552762458853663282854476823186954782457255845979398071755109580581622902748328119540525932740150285906817862495054564942274306172917681517780498436327839590019076662443231674183048855783611560052719817223232044000525867573509577472095408368584500112768022303335685851934470551362420246868099349234624307885476284557623798280010150799208614326518073748353608299586898453958545522862485227805792572744942647914779123333715251659020573257098103641022389485547884795639855934677063551887476837488577651493168593924812143563830862921119666355216249755028012292181870084387451983605754440279976693580425987833478771267277953181886513661788555219141511033694311057071739269441731093605607369968775264566737798676845785519183006789698815876532076610315440289141335941214912736935477283375388257761726343131078681218233464597960172846262008574562635817194905874435505521584128025786168623192920100935315072503996251256160612560735594216196742493290346492681118055030582371576985859691303313583973648567256998813435606227203047362222866618399300614812929973038063998300503763560510170436389069293181466379914068253419820931531804657995711555184609838232944950771471306305723438988079715959994512536831391124738046140771410237891038747584245501439037376503630455057621855105388647066537670265464119224586887078002185469569962104650002886299184733659838417144512458010002872445920198723525289578422470863977329883857682949173812987878081411241765919939617367157058769687717507236668322714141722357871484354415515759527962866504965134989987415720251199504315209410621885886722437094363786526593171542746280577117958154283040494260645104415876937672080147244447431947379736558021948855421732437002062853734295412559527347674710912927771482100682250090024981596036847804471354353158994411208147874153770801366531460564718302639068603260217366408886985634977696229964841004113778572906177225064555374423111077564575027913671031925058914862904481517376340494329777754175938794847823213159294862453509551403437186992061164999742480497274311692282238232015603686306844700971078036340686947422081560963653649380663269956323949415740359301002345441187625144098811837288976474466282253082838118884396206483352265023007564805133809876275998299516986923743180380855023462494393915843576671114754439258141708653096551182392946552071014826307500004183849554344936157457678072706333476826795948394282966754476766481005762126481930203156708352775959671461864891921255659637424169794511856042446346932278447459276635007170565597797137559585873278207747503207695585968833337819542079545193862919079767112199033430090952494952206532479010430463567583497975656086329096399765649149598575563310175181957216418297879362539451907164329353016769751105481597889811032325990035010045332300301815269373973679483456264434173812081685439103334425300499821571412991758682851120091512304850479605641931016402639981987678568689146795756242206149201812616898617177839126870378348406123139346600329979905035383980715356963974633727794997904052834686619674982047014990164009535813309036090733684327535832574330530471252908614214233050210461989676447664556283387334385957823603326493569361184858535947157487702910469146321033857599222958799222202623226634038354262073022932635096152947942731590829744419138236466275019921338554751523535929385421717085316564157627617713529181443296965997331843410885494222497708975186108462885451354109680217662094785740913466215359587054651679567991050028038993221868633219739680886987805608055057765332862062652569238374751186681462288714073543530184541850344215417518449873366239920100887710133341266651109851327695133855403278184065586567980340820822149202001576207872000458133396314263422416749278114604909687856327873029123743356700261804109688425980474423545562284717463979894187613198585117099450928275581951256970587706302218832932246208736033153720863313568587483535592400004262141182004028973147403098037639302833841071192850526170502501480536704589599314678430686703849214369285203083232028758209925850501422048071289096601578374241271648301507814593894693435095155610252834657350223802617843747273504702411431450081680530083181321842022151141111659465383864100172209938503678148037729076402105373938478448292203894023960142292008025628036149723468875950651661868941099506271522117364042431270373590463243592254544253854488606520187756711320860079183439765084806437959569495875019977199229916084557067201300863601955450286594896835238487912818655440873127204319688622251066527587442124027515971140887275778017676626439266296533705838925121870834879204307259109260291393841561099408005415060796484973840838802476641607100786362146917503073275715235467633033731442903590182451854294031361848661105350060333349359301926972800656169175814694906277746599518893617319641136885977012708775249642059751909204250679911737864218569939956873426249694086534640912319160287843349434412441095761484294289245912444641131244026735044492175965352065822003633025557801311038910850371457835654239020858311519810719465555179177661657976798038341189404943217236960881068397147438433921520144488880857850995003782210129738050592835809355424552810480102702273353577695799391411079505930706979650043287317486627538283385788440214228206311323184086099580699187571915796686571129026785521282564310054892403631087076724038504277452318278030310294785026061205846403224105772139978910495991607627432707582404329386826459008719291591588546469211054571365386302326418938369813111472122066963134010397376518566773153752779898354735828423301005856064215242501455453772736488127020025808787258018183014664154122355760435662473255496177218972968021787506461046529888801481466616693909047625154440456767039156820800274683048500927609891272062349665798722417558548538076903792434595837299413288171424630330532625777283236586933703243894631884119380999891148198761950648271677546632404906967594037734421631891218580097635122429339125113753698468114254300090745522542381319804136542670681994029165918832764631548600625687874348979651140403936424084678981090470562434539630786799452951044654197233642920874691135278981485551441640248190447645965153159044631441283389565809992391923730751084808006056037193214914250745334633191886669230820854876184001391249880059655814872721151437882912394673568937550954760664470600167657669549023012828179203758521132735869912329836272509150616388290620370512855427013301942377989213059039767424734686381212695372861082168786510619082114861431964422377530845145916446628228488750114712642188559065206350732786264978877140120994072056900087049787454810722954337701147720715796338069134346699182271895673258563825850904298741751044552084367662883969861126834292014691664341852026230473158616691386681407212044046830236496424687677475393259057674873308891971924012088630947058283486985631506161650954437009487936871929907935706216373729519254306199252816532071565796394566890037796988151738924999745559806146802073107316923601003112486813811587696503085597438447052958357791984636264008305395533238296076761067184782548822929838014070661177021252499864173833812170394540420324949822729077743841508331012702686358132306577051335275088432099647284538474559135242394425950495072950275317534267246998657007283944266679621977511102612361417395164707020454760231040053587787206806346908782531407696717554075990065704019224353709979389135793272685085926839658234412912710531986160959689427927531846236864011830357072305922923103406917046944502855107436109740664816204055640188500559384148392833605402268101962565835438006905448407202482999772318195323524517073570021163405339623476149480099609156378157095205180397827686602142399359986441258146981944923382565916904794115099787500975782701549141989856801213080376750441773183122128433983773979713359428331208717916850140345646524082050852910235139209380307804138375231882999482735672161250354690485770224902512277257411255063365061382870976228956196739138312271908315132420471824853575564850058608755639256290012538157422841176758769606104874100842500022364632573629064833635681251060329781156203236268857219883625133703880910835855707056168152502507121818375620857818231810805427459372435674480410720955240054031974872892612483221933133121620528120849170519974920203944635077648449000960772247429097933520400443939157932627540706707386897464762527996699786420995044607767121707415102700188508631995588920904529288864554128695353132696739898694090893655758407197438769320548411970433645428044676121962081998987738279304957029807974855090888631315426476267985836640834876366398927255659059872448790871738899485458841905761716267008628325564777197977490942959596802177299918116270952570034022019143570823422801736820162579302832584856161466399458330753750687751028355989087949778786951811686642098195239243094738044826691575518244397174752270481163587139497681680068142369250279571875234158014422321648111921369874229785000393389270041313015560334660422983682924985153433547554698783479056485894786195191237659903452551806961133378924822138702450781305845459648250387077141316310743087930042353607264862490221734098589136262733835305421990006715070046382346843065107616389111301097401504505884257829331835036330710917243901873063402946706266275302558459866764233291441614781665818516642219130249902709044899552357086255703490817401936518025104772367053943233871476609484704574779871436913162891198261046790140786280185566141888642049757091266248502983524072749408127714939793124254144260142947893889657736700045590543454841568331181530215586425152881755922254889710659824671815930845570705194474378283638604116679998467752194163427317242101185597080367032567898549708359376856442558704002021181936480153627167002490072940463392427741416838898299723346455845733815429732998692792672475422728086223736193679158980991480908208402200688445011270294063957491967230671432393595667794471717196117605495681801208249231165553307218502368919485223771625515531850090034839316560910484524668376457070512398632303902072898453920539768367643891233100048014059797096851662643530706889614938248999517335756220424406561037291776852401793496591910058933047697949030198663229207601974998361421884908582752811274871618170782631473287586896911458979333813364017634823356326536616194985006481401403676806394862788350213253250909347293063091303475237402539803530304778492292677018150659183813114812364389852223564731108839853431014945662736473501284859581565338050692913210438150555972128981943464497863815259418705438686275583519828555814170266441749194153129887000679821353342590750171440411845157557511444321381845916216498734388177377862908055694343551134546690141764510914864726029649402517955590357752505597828848283851398323305707752717221122767364558837584760411082741124681705192125751679592541143659814954155436064115688449189565360058990731240561872604143813983614550174851838210783117248790670031161625074079881500247571968054458277017522356541310868089727786880094314976134368066021952477633553279727690604578998584016964821241854235134184551637937545489705018597575984475448792517827852126373117512007004884824305186947535765195720942438432544237091172445454515595351429898486748900425434732386981591914547711369901272408864307349963764287029095380473774898264510519510477747213272037092915646328717752779719278273390706461988764095704008458129178393324872489663084474612613887646484207825149400209511264348734899011822302959928240386143387526508767856226464775141418398540199910033332905993227268211696522030851291175102015529791512112183181354034891571885690080921630611532447598937999935941906372598845778770165413649904616846071915224470859426719373063589402696761943635350973418290210008592633168266330457534774405643311357489469681141132320389529548136777763575809201259245269573647257701473520966906489323604103429500301523794446391673873216914227971290586617256899109164846464156901250877370673358669019931691623918041644790906811122272722799041264604901861009773444781234594774883577895431474334177173000404384715549260133946524258032404518906957454961116018315368532456471152168700378083599448174251308749630689206778832901147688450484450630426226675829135872782622712137323279167095852688868295664368430992879401204045336945532488444313891095460440515813487188916985027554940304083247868200942584318473312819950166014885945689549935204560138031848642171198857098182792194787540369076428503881619711914432767713897867565629644662318899058881820767165757738815591842804749276483885248492925785920069232865216809394760458742756657610222577907700334476891523584964846018175687573465608832756853933946121165911661506888834257192869404126115468878559668734931636174177873297050323359069438910580456146307577447741879623027188659073689259551876946474325571491742191355613178989318581268057605416775965144978750508518636406958820592791722614437769674861135440088537521506961580991878505160297112107571462040641888642718413687186037834282568794042016376458323557586626744479869571081709920506468722523773143263367879650466386167757038265698890988282809748176967744847619390823573035949300767394541527474292825116328282842517327519860379070964507250113708263244167410317308598644160978254136795931605231951707844826300131921144466156650238277964604722071400129989585757203100057676951494319085900926208828063790891699624471096271704435960887765547293891886404786068025655436535895260909149504898939704071785699105661501028851767781401627263198130484420439373909990632365336009757459797649820745158529057215513010597849871586918366264052416318244685045438606437909238752464282278332543505119028077385863078695523108460242694215617458182349057805175664426465039585499785879653952181523976427406552739033885965305106405395310778605952244562396508241820084558067305342640216490829601954201091019969891342295192037952043824927448200959820210393442210071417426170715329835092350404481096427176377839990876213333370890417358184023959698611361401901379005503345071335177780915679463053236157837327585916758160103413094167646429667449472976649866007837460379370137741373225907531499463043440746973088888587284020811399217799609631244825690869935049701139457598750971522088842484595137800219647035519367201010722936700535883983963027777694923612095499852473882783223501929427872827617163401343783852767651574844433197656654557496913789710535999881225197495111215499806958344112137123225365426351228927255512053973536099339669212909695459211661311353310609762045751116169050945639105917440806276731963808820641805157050332794293728039076963847715724708691940629984973391989011847563747721963896584280650478097964212925104735342451955294661761366423710341045326331322975159858348175475368481008051686843029585063805701776718764083658077894985468642223134001443890263501820864303249779751558999036614601033230376835934401959089121404568748320247769151954439207853772347199471298247542527851311699955680874455677422956224495595625239755522313979602762014121878481030098324268135372882533742201628938630725367490167832321593829269626023362274763306982388323837354494469672649729513990526423246219660958937200766751090548370681468954383851992843188415072529073186692018144145719228590322412793536665175639282270450802112715696228827607600505813994138782436558063441612968017040108984113575703451618365618855292538814263573221614859140324140092703999353185898802150154043917884200130313785635959463969309268963745811899614354435729030267678814873714004004997605819456368208651985232528744654892644861921562853526671679548000841847864231067537831267895242933043916823659573290850795531734228796288680612777684600257377494535031657082291313095051665957127728379842983360767707608170490025236789085658379098872966201145002441845410316141948657089304589721271601090938648476312538397816146396694265826694297280736480252267393734028781903174985593685497813512752524733505074573104882282844969679439312243318654858815816559334947745648637424994419544067288114158223500460030240235653982335095110003487178816357177716926730860247454188323085053222578002946562952031807084286646435923765101424553906807052732786307734835128326756257190160463302461179509435594230290691689519834292628217403307800634725569372567067772904470482453305074534122757993104347756290281704682286666665104137114379050669671166190979877898236872473266087697493457537610865303868690507259388562316437282124117514901167801121645042090564641493631331042503730543092998247741514527713180742187741335460768856355712638282045794774222924798858020688034914375987081336153100509122876622593885370830555174678418089035561042138207963972322718561656947829022283419145920065114115963165056016844771523676355874450138253121145228766772217069480077128112389876007776855891553019544587994932288428502442717114167596617645260014494277568814756608421359336612837414727350603121668555941323347765372710925365163186436709138378526874625799467337471466071830311029983558228381099971904133519260065244686539552865134808553411393742230474451721998591066794741139265785264799968676248694167701617454394975417668333071818425141062961099267078213051507551330518437239572107424878095012047322716714970011731688284485512572355632980588904844249817963550227613146469942421937130539700368343102158556072197308874459398826930767294837619020775319999182251262560293167206962225615232526587316378372836274127965596201438438874356656698567420821231400353560884724403015784111704328930049439280802879819736041738296643901478869805981558933060024701730769413834144971864521631316271363826449556406651787143256851468427287403848736008302214446276113430901757166822689453809591999183463468866087510913564910853374438245576406525616559981188539292161363055838693794118963688097493363049516831811991402199638883977734724734810703089977178211925061112932367473950592065845025453415313312204912821669793297584863470976839792307199575043880403395798998408539619029721737554437492900171281140365739056523023908510079228722095314842462699800737573982665763200642351365072905246733502427539550900101065345234619203759111860949256564966388901467828906758661616590236545782488234140257861638863126565289278834291769124100092100985402159921751496272165246437734125222402671929348173714827748282669517475969388638718242958755077165500628524853483498191316518979701906652572792203486951616355376313338935815816080277122311337279317964032800811299130428131734462321329905748867827658890107210899042264247733477317178429442731233022782601662506008449892989405756981125623474805342302445652000137666032301646767649440976065522920393990983614450609921077506832090653071894216456152420377130292394137887328525400676834619216139895110434487689047498839971756684240167772208424518459698738924413024183618613679932766653107800326554633131003366756610507407560567752499463721211353932043228004948692590328584420196020557166935540833123539718917262120599434184836587080265699532952956255859081938226699443557655864671443250247096077625371712948588786534158645044784671514476648688692267505187474165571003746845789125678890290145504397300603997380281362913590125939358397601613002123668243506583739694322136246013682359112695841385185974869450086648996932052245018585094211415265562294799738534610461412415873147316030542286960360143334163708106745160389997086693332435024962847120402797372341554614841641641009588578994438041093700109235110995647284648057950607320871280534123632106607436104533821653055205059557882586112718532674139959029611607759470507882348576438587704584923091791752385519488851446383491530005492718299568233086133038495686664479370107074489324596530004200276682436517277162422612944629588594080031966740585652725076055085642036396714125732967307102688308914803455305448580509731031324930311954428313219940420640022490113561516614797867915513930561740303517079966891634930832436776587453701456261462905716015806608175716633621159829312154566051655012571770340310298507414045050642371701130296777925653506354796667809357345033917071842335251846654536551682070245113727864665525337061626214211087270272129375608526001761830934706727550154416445123161802990811779670074429824199486100695589100967771500181622266634722568318733657863266860019012472669176184431168623113114166770160900397168425948121149741802129888501860066776563414282086841446028902939528371566873910219664647048674892881703071458314124940740805623069393460664182633116042764754662624837136234763154528253219452563211719607726076569119525862059069883999623409159153524005422989146094348783707665324474278250952244004178616682220016511084076889078109800037083441569385139406212347387071921023903163971496443619174296682033040093409630509996205790391014480758710904694246724881237369676936636133211251064299769889148867388837690174872835013779783606254985268655980848641838265542791937576929765366091163625883282729945952744929155106070730286550059711803046322238579220417552979955114024721082319564649903033718350794790565265281507778123814426654505500234658618072897245952011695444605147237647787731861996465325063646701017715329105833659947957705807169462600088373329622636372442021865811077233261083635787375767040291143231662123484843998172420766379683455457333097916566465579843522879509032751527389862567837849390088872361815299290259376051868601223576200738806403523382024550613056137122485180083690319787538878924174025221072790709703627505231832493568391071302917204094259502386162995036139392054809181893839800620163435432671665384276610852276536862759988408784692251030342831184410872566397792363341722448370710306250975714438771262609262190318690199665577194476444136890762474488030547133820846059073854234733512617298224774730734827267420201527711196439481302597753304151004700670783415495461160524405113739180540625398082172658642499275366655298227273444754923577675083413488878209461016220702390733194180487877845793922585874444115085812061820304946596710269013604285985636186764693817335579112412259628486773109541843690660435758447012285089692043598678371843325861665372108455980815034686279766243729753619832524541947476251553438607168666504710734483206225019573293815087540106170589026361078894981952992218481472906360422584039979988599642958690583695051434027384945853844545048542911612298102549070614027107684204212588835295068351881050813072713992225204477126297188446784863749642982508926431937349066833743172535582795785846927607585417489912471019237977862820905237941750944158946398454863898641516169122532887348009730475327944314481429257708176642010558048196931242569337682520461333946420900478676973537903354142409608393630532337355466056105627084674818411122759450858502268939711222740616429787012329536456400517129050158737039264947821302038189986799826911639732849923048343573190739361106004711600835507726064616034998748865910364000698466751116078508097608689968789077717313762553162724536430001610492641766532714886681601998109917344920431427696124994722486156319401192683251401885875677354997199997244902814629115213808761334777432517141859854059665874449409854509168750884184980462723922482717840299167574679609874209901950752229011665916637443691442511529791241591385992399046947623990068681863537465224282744014463215930252664342092023308747855716162500197561640498721722030637571974451238318439594976841893918573518939571742143574308140035416385335112740512602030353421696969190213688295753996893581136039434061414217671660667572104323992087313216712469248280354743003380796333662063203559537548611145557243342965657649360620225671153003485915289775439895766041388034703133849898791879605026241116105319253046637362795403707652676007893797413023621562128471160428604428419526493424578428466954426350592881295380910443144720417182090755180741270623316118297207550896767059578261374164889483996624699423588210460422679927081136898393520716699684819160738915705520578773165654739621067128233464549764509396797187579676562294440108229741078736493320545267153017223097481873352907309864963751460580512286440616003962077700711192806737491785260128484296369340481159140945848424532631190150409861909741286546691642105397266237429251678701335232020892624540058430619536967688220791245663553410946001761365805729328729223895816017445130159969557823304613412680676211299762780360708140316640481510482208967498172856223580849229509784304709322550335103677016566450945643724935264415425662205188567396440484678984856128868294677685554624820609228429033309642905104834216876294993446885461963113426277120514463155354978067054045776315755338891528400850099812966668198100126074599243800360849876087112318253251918318815696233842556699203903666975022861057348218938830280736116476532792312128012050935221358614514547194431043720719942903410580108157343887223467976767753473434757101205245480136110377458570477436936021045438570848533547210545754848905436800337484636980132909987746816012097273121078520076813109661148781028425015749126388448826955605878331640715696372691146636603909644973174741273735287109066636192586287297596511619037086319808905015371312095728335982759105385075822850076675968875802575065437286179864561847485411724048873961023355529764337781798309309770463704297968037232776373490484053489280055195920493970162955515632696991686600674434794802171953618455638509479561135277790478601285968656750436685086508400834125445824445982894386240383173460529198002095819453191751013018033624812485422716618325961811438575003380530328802419216722028339619215014410997501480061138037241159341569201669925566026567142953292835830217966819876040642106961725029224271740456095003549727523183053284684205212225461366764399793813255655771187401907926689972436204213824937065946591350864609508020071083413786183392304081301961107688985677038330553344849666245014210352340101328872016716086538398873706596009398980748932233369094394340318826073846656127828507458594042554219969661446396041005370995359448320661085272833142163253092907186569176908399637815078451620331387584926576533785521620275088315640861271942521138337961735353729417273155310565179992355382911185057751988571899331792185392559125997355133575549344719780633121650892632264978440136267980448640803177143100408197672368750205363923966923307209012732972854426749646042787579161932255907120306961559361054594909546307464863779505964012618554168839456112284186973620480465990099349255384202909997390814368257753684630448806830248335177819342778839505914477815610521865019473206917269452878747410423653822599640270281827142171708875899234308622177049547985817158474460207576698359769034186058243697237667815694640706876567036189764668251234427018907533350807560433989048886768747108606497063767647740773701516057661180634293499333008751690021495220592985173733348739466137864639464641788087372923717604805025952122615197936361626448231970039472249775050807019442717672479730880554443149974018626205620898137139611851030528495880379370619534145853626760780185356131442901896740910580738957097838939693071819324541277645280315173951350927962609685698026155621164455391443808918642830845119802981151611179555167338737575992457663775582070712013729974629921410609758074801232457999021202864161908277485152318499061518682133101266324997738817203149740738632968493306535082313688434687332356788111899802592490704835028692479271830286514286261068228606938213420047729782105896881865757885256320563083044607189635960121586535393878643545862228563961357440234734801550442005019341848462311095490462991695678709393881888176503134028690665068827539983619196289887996452908333818668796119160242768579282459411082581502177453578432648480579899756814727591489253791550883080241619719334825325656122126908850916115270433182466375286349793120484124123543591531084813044196952070741979973486174266690613907297239132056403176767766732743039552231314130104877751211629866754703044830465328756456355624865885958014386384912125900265862482774467699054717232689361324577067007146396817233446076991193332363490200256874587933639965491517857153931353299106682689236629457875830933837025968143936184989482135801212715801699988674838039940947381862519483019620436865112912363019828747369359262014529709627556189447046148574417318840633247392249093713513005058935385458417686155093674430152014384088071651625362049834141672872614461244667625025398762968798231238548313606323713948284950593111573560766849573627596930629628843649744032039104813489898783257458069718349043776152314150007677969867997166438785126391686903859119512947553289309621758978792038037684395873095636699250735785983619678994567907792809751500805789260757055623403771646704630470855537042229101365281554762716369297359256234722912737075370501053920530948579799231748861312685933312490271424879497542822873583075368635695331729027460343371433185983802713991371015785764607135325730509107206439950065757076790294274053850129245455938856757509178578440677883356982082049621651683190710640504596160854395704105494155771678397263993782645117279815349827649243376845567557844609783544381829492028669223252907024376441013918847324628464353251589918982299598519551318064512228614372078542324987684463362367627786414745393093664495095241266719620570418294388089572762050420409691202611527953762240608965921173970113472943675509438544805036479374872800756001779824509761799167478959345419994748218832327862155341881295291011263551996870749644176233109305344419832314698499076587368919999201668894998791600727877952002204774166890827165153992600502012190025657682773556070010259973705742114613011678620828442950839016215697360240041459649275880950192988566722838605994179720031661619376551504640000368899771801849918892665855017106336932751013499314804343962064441684956386622451350623786228557524436479261184556874724981344360604561418692807861577125900937416483251097232990144146924841306571618379879226103919413297049169871012766993463383386530729638596067246697802082642148484462012539217994686102991353169378370017801987810220972722190974790346046630901059578113928802086447047595355007503708157635953023718934657502029484669204406379571490122299217572335624207055497093495386363094011908262583164853746042165972026619849789844229884919251750216483274602274381584510295749643219914758948007949576036660499018533229528599424348029357715999638635023915698550781005011749110230600252182830697331859894139855398988121841430720254813634276069693878486936843395794141981549328451182902044135046048682506221747999112673534316371864663484910621557493543363611649224656861094796012447050823254739638052298048372918803881119249040488375933909043169756070351467069830396136918281485491453012579045186974615199064768536703993442151039602705351588895079735641868980097603217827383042799099777520873387176448288407343900306967182650866914911360672734813359409835586610800145522860791556406275808296690807019354627196942836644803532668058852518883032736586455386711733634009467883135329158446329072116415800437708693474735593003509526062662883089062389881923648853329617504235627316841624288600656027975583950740030691506044281186058258939415804398293176150137359326886424076929035953194716051784971101162228862669925489477062950543411616940016114116099884104119797191764679842050136058492187488710185014391002055796728235150651248180919755956051767244735210423840432956703556165209709312099756600027054254301696831878554228479818950581431115601655872409288059397035316502228638386712772430647478179275306162492175593844219702160271678614230559574820075879661466687682040271641446405976732106619161547510245197930909241967527557543555202977078040785354930589731449715453776764071515923474372509503862533163044661028067934252836731572522511438549702353709153730035197255402968692452229193770735559995032762736808110068484895882060840321269209783083777069172367092923676507023331283887812761622585478084150910799379582730303412907374065584942886541702377915130909683766465911885290457616513594333545627079410048902246092462772453439152412063848043948833235685500314074623703103049941781121354485927758909565440054489790257921655968665693907687381655406120431112826535225768854606375287558411294542285653023264885227546743129192978768642454052794391180801267925572512616799723301582124752024231516652597961619513206443006028658375847094686081833134898494838675838960735900580599334378459174448765383005497747384508533846878667473053870189514765070768874441107064042738751447200531451010230694672692738613603555720580578751761967722753967576208664669728078209175923153942593135682411859984347221638181466584015852498033111619006147283198167585433726588576201825627552186592264909887476357114991128634973239873848997006782907350598026977054861491642994801922388238730969540688846512181485518551011025340012909946362822528593026404600376010482236023766754066057978728598369040486305077525111129574928401711656649628431834011177203167990767164101661776760224417173851103545481340094152217438756718295446941635199308681466329242860008995588034507243925339563063284276678805876757468785064368071648792607353743472918055324030732145939561716944652635459782525460204228043526421035198560925343419066285212513561489571621980212325364814200600869938482668317219525643481374446221763826598938640728743490683845559646042353917766602916685291420127503774751571733588715372285037929737863787324472212150679895087251187177096356246575638945227763796261161000557501800408850630469105024056520750851194405101250558792534909094061205429151668164122778679507121649504261617987054964736314082583419352518502180377941916129449445892167581995495698016118211450414388371056117698218961581873901109887873875859373822055116429465323637439471208199493293624436096037423259761108561568983495092553852599081196926454498840483790926492664637567790848070702990530157748065661464099076105132088288927157756458633572617059195523929536961710525457789001995192592157503368509076780480163669895837447252090494582047855116662573566083322859236804931259367452024338262205286297363848903813430987696370254303346304862582079705552440417128945637281585792727414515789563604936994189606179383620377528087159056897292303690005627190788718129250721588602433257471385056936527546569108609414828463304621320223093784867162901190808344891158316995620735104642244470986838273466802275684956481746975110338117223757344901067828923593732733464896010142661608111961813768381948258381916918290045880713362311147538024066243284437476557890559408609316012655550389729721562143913187192586586934659555097126484150720068328167646497787786984958230388694683806531906438226716555856915414791892973142997376696359419142962219739302093777635521775387192799054063728570743587768560215659810787792418652675595026266928317303775544903830410315666705557451853023359983319983274508542740947416055170963232922458945622497262142622541251588695278399466440452627321762395050836429122300273154086848191256877279425114178378281566434279630857937278249261333811247207448238995573709729824350251508076662769841323453411522036092026986904958430475250554834629147204055697379283304301145159270199926763305987488920653617068537351164538161792013730507177610540244844271177084218743188184406689618935318959176485429655405059774748178559623015029708551570212679273390528074294456603728957081304079057803805174085129515634218822854094408497852486996644641921803089709811251669299380125515107619121052492961548148428377112408080484953205357367126559181419718469926242818874828190782165810144260967677108139074097727355708192767737499445683409550654878955163819835277818541368152476114052756544758466190379587607269031122362405896509876433179316633128469761694375567983977126790010928140690035372708849560577802849634956223176242019433497408126937739728473264190798850794483744788927366305177256607857435556135702732152389764540818517662473791997188577835423299058365118999490529460341318415907649257228261708804484289661511263454638140225020278010407570516928893182564471673069172106609055817100801003483400326584965376383776753176038287377874888807444098479924044080162053693597867692540248455900115396677422853509628946856034260610814706993386181110117867383054369462197671091365595071089064534046047956239046742116842015109196470519269145585342189131996634600875160026323993346463882867356659162321455632116859922260851081779211138874150958846695556950054874413285602979357844104974799763243046138206094244981205387321639830927935869214381722707624726403508320354982173328587464210120430474962995463073972022348601655620106595810396414752161672951630035053059698086667022599813118555461457172802157796322372426771583308840029368155313882241124974396368518150931643576128939452499121117834665602738361994795450678115749979372831472864545998016077655515758741933471857096438082493677077021416970751316801864503784106190446570067977574752768237774518000782108046334426541956693703434464685933590031311906570225507107868839082433586648200823439468640942348954141893507251405209484456201206629885898886737641283371297645030553482539614649300408150515378764831701489180652799697844761346216733948718081828433528708938085268610981348458059424257265162280345085938013999516397115692723028540145623962982554467278349872257099013627477604251356405575003146399516831733032233886548711003974026653224602592613114075984088453139622668769514125505178625122043089390901369480524756623897253139543609773509494565598561929688088053087870399034498278090074019365924890873563685417467191840623004861477694188847970910094309988231416555563790145594938374526764436751859262065401523492366850604680603364162532211705248987175492484125800339055515328340560550699513507540463787790177251207057539692968102205944124229884151105254473336430937473607859791532092717083975217789843023700482073068922025855223412396910188109451050418761513881061147467215770693648716038591314696866314758220325146018016545898292603405663279660477605703832746110885816999709273176850401309871024900683893036605261066870155978052387861706083585645964607473827506753247585616658344388739494487115090170590988849280401507096165504552366442336640744316579325107418181218998893727812795462283300470686439164093600753357202430331996386633492233586289369818217676349549332534266075938070988323683139725595656886900830195096954297853896888184052717688733303293071185381964020540941422369377633214388168072615594131383455341502844628527705347665453957522846295634836335946431660037041810886224725317252651069382937046389744979222407467804671315559583729152775087393314892494457794876211369709487896051102437231154007604924873400180372722412246043127623907439131530235157089052889232725619226641363804653717678739188889598606289478859866881073260619161643989146211223044191566363772194847320041874188552542726639509026095588970383562619433995903209430935876309550083681873608647561804357957614379278276212629380876658814899688194945068251003696326773118125166561281862189477951781494565300186420272277424868627091003909707687962848860337066797164864406781438035111007670490101734429965116785411130943235977442662015749895529832721050910293380926629944959597555946505276312691080402941113782856660229427231865895210894861799249088636356862838362610999168088099008970285652261601163885970463506732012881318297321669257182969027935357635301814174402619472996676762427140763504980423544302929809356029373871708999479851443406200151214341855166305890099751946476245054591011573503958312151521256224657576420552478709589869381582774365878144774921517018000987065516726356472562867034160573229759706735832003979168860182097026437810627752869212200442661197922778893597989127565596558740617913036534312807347695139812730397005199120984655247561500401069111865481169349221141805812058386708071348552039570269855758306999709598898370022582561525605148381050378415584231684797151210746309354008718840888748680144902079968685558334200016322865550528629239362425441160445466345997066624449250503703178094466400939858412894367783403735135745352010225112184736130758501415678050206768884341117371746238487761863682280370921885697102597967892015887413215758194874314293883891248056585732731584838177783085326303509376430681473706326720027192168325543990482704659674027173876078351540969920895845872223382666162071368022075611171563982400226513901502724078320476456246748012929932298595137461851936918127036224241730790203188250414835970851328131591798548287094893251699851101757799840370596204166228974351013068060161952766496247200254393927963418900996432537515300548804068145107175085250168236391279649815141435005229729737100880812557775298457288395149577620730371591471026077578444838100764899342215097222665188488698742256985921145593966355096433492253517733416346991781857795742402270097547755320816415487180140512012122507262969213214297628101255234414016804098292237369981209978254359002484134428739187840786947627975300227894191711673280136243426584845449966042588013148289075565696909781850820989689558193599546221271202338565640039126364526349995753650309324031954239907292664888242730919876246534311363332939110871726134156254699442125793943764329758434172034885071481369791839619809799935082813750893479887477102010117930807714964430747178695457264224833632639542974805314315195935852370215312399797582227180062621567885323464514394186479626036976898587419533537233451502637424512696945720430053261764699488189615500285204293405492664328487722668059048960345837824587950572855865852176963973851898895885278976797659447486222871535560749374904147831613223005547501214780938356189730181354095298958343732862261614339943760822383395200086762054360008703380892743612357757101454289740112594498339125620749121791766137590012756170824752718650078408473017812010824436823523770903973444528991246619862314455546415658944741512691696907613856465000924952298260042003424090765779038561349291234237719671322675425264155135949340816886896298890492178659790350277946845241810516404589290655319149913486949424907539115474453857902907604055096444853195098438914677419356360985776668923380358315046280832585835765008122621799992913086841780405842217722413489232604653675050066204506690299573923954346420618983026512841609863761794740829507316707045434719107238286685112843495775977881808390377274844136423590625708553419339241218145830929374995269805362310915644301748553768259264542034724395959806345073347313916062681229679994081243903063132896581854277752051567767115229883672792856673331971463536350151224304139887510671245198152515372588816940234446032109237382093043717997463854099406542087880168351136326624018814537822904634937814659716624740643619208623838905361420249544604579217938948349898608390131346026384652315693483062580806306150595654805960199078098493135098037808252451758310275417273838053845773084926409231010932406671383378250226310153905340784862033851377366330964304295917085759883313244065853439919464943588589341582237453955393167772106887119953385031367776546740126777107262319855231997971656381019449064057582674957520868916378378851249224131362328281768327256304199673924434023313884804228337736916524121349569727184781473885820880631229010668106589504691557714147043057079848665240098949614953599132602655961059336345290870965837382723766408651021394770996529683068381662647342243703740198121908976112617760006768951338893645877351196028965976517230547494875703773141893529764366138918023825183162081556832555273336357483696355337545767584464596968242515278893109956511635555962870600742274790062160431910686691385939285071452157115503074535855650350616860585866346467633254168953037254285534310651677689873957735856927554784389169203421950620545461505388175582225059661356471852344658648503949816593633846068060153532635402885844582299098307723511099090963971395961234156225509429366935872159654678202193793912754266239822764381012459283635306282020936257032399050297863729459541255564597517773552298826731469382199379017596581911535047300105468350999526121418465004132820949642228339371244488164540105872393375575405280496760134168862440643720789893232765070568924854161336992255138956289965787596002485467578816989038260934681387750555180385154065454176691060642882690495262433016672849975262164909449430568434900944362963862672216038139409713064250166842139820777719365169872708702360138991628301227131124486118522171009905975239862043447285596449510538422569186068815619431250117214598923038138458464307941381318189166053035868373783522211113494406644693797834544648920100822203305244693336226490533466114169884474669078487070778437853122816357150124293979225923717740623938458609237734045019989328344533732652594305112797715320375500511021661963555349236155318376100580479729573711956017070879193662457265702596498174855783296248089851512703944491166828341151141101850831468011035103840942958883127359812274347018109990616535558971432433483691601391692585468967131403437068950669092067778267959179284561696441814826724487303307630180906746451444603715035837206861922738266886256562487729895799814198301737727754965794412777464776193568097992300177193201867483414727768242483450815177149342729004206806273851865638645039921839488627537222034715813428246345661636405278485116189082824241978484564687788703681285350035600689805266752800673610980397420208565864409931641677460415762966651112194959424392951037080014878012072069731698052814702235102409475842265244406642737346187711513305811219386414700648165983584718611250032926465656535480896414465462247881896042700757123700800443355864664414026296991505275782409238429609681584001389374897129514237351408094208210881260040355753804594343941648374421563764616444308941354354285144472138142623993687544287528039678821819174550931057674789453864696276106156580712212727289973157200289702489818446013091599506169925362573369500308838439478915752062017584168085724729357816512009274770613763436064985204178223745351274543994798268235782909054666684612297050755911636317199770499547683500809347702211256607956952675814185312394164720746504960842629986614398394167689280041503280303007394712206921987336546369903391853079990654088692835357656399547249286556079075095387942979376861647798971263259431567927563776361132436870799763442372612792755164161650387012893849299220597742985228459382778037400837642069977775421164272713684384581733215727720773342403150135195654781135686225902152676000189988738074027161134048649699934179068024914425722063601862433358026724478848576168407203442539774220627745958403509990466473246170576088814613878501461347266436357490783297097945300483010763302910174039723572201084488940018930792225692359122154042215221465868323275278498908438208994013250228516367330978669023867906441840811071511502489052366696784835155083056673935884361841358292577831576953158464549099727444162626001157143847350810238962087029602155099905919960850761692606942574460116783543034925812164190819033304664358947553547414022401790662326948151030600910232804029304198939359908156316223891051586501335490420335876178262695607150100962699368730703862864093864962162490712947182950454838484405318893888396417919277133427610317417067893584028998834558010625414309804825516211759346237210730873149375524841529622683778162494707347335473830791347997611951094575507647035456171598608814238677525279498470155951658921947954579142869602150177175612100658816827131630012630752925096803260808972548639620120970717998361910681174631436233479929984274115715893740950186752103507307028763655094433788908722986359197193401667751578500173547455610008672056347716294708160862779462405384306775974546116426740076848351782623060355011078051876910530351185826030375442733506786224905843443301968854001575406100376008697811486172051440160841945390570507831880559293718605301696338297843336166615016577837361376508133268160662342690059232739733661754864109250862884494404144244494126752960357188384051126002444521689994549609502852501410580079810332376436586915044755660560904261478112215264645820393025871114554274440506797792723996849580792254285079499275703938831242076358159671793843279462922607528838934478962337101452830688568414998057375310664026386822121307879407335412892116853101113896218454541455909330467070059811740475946753580894831927867393583541717557305873197029778501166089715239020361004167349239729631180508752506732867926137620279938133898320638083126578852944026063407794048380315586495434807169598259277835629519082213613146959664728913289579638220671065238242011599251424081443902119948627042701537761016664199450344135801730565546195104688729419028069065470566577833160922367008608558594298537618611380442086755906093061434489235885416106501597916330557676997130564596366234104002240506247911311070498739892175677029186002006762091137414407220708945026106463873277187699387720945082846247594133964762456548506124786404012355045674145660050101206242515018219272328108036117752703794623891093760263869450545964067334111964975853849711364018542194397910757923306319105130076845507462898889585721845892897882337315638021576360176882434602652336348994371493506015011459600383020933557790647656540887715459138212884027565681933371900736836633525786512560029386425581437941506442083052637682927111471319363666164379758395486632671306298242604251108122921754897394617855544904421125265885470050503623977675401643801329896652794860478322167262001529401768570897931205819474994539810739379290534453883345815579482424187638213092174167775050885923776895703541595058762603101182329887417311468398423059546564709322164786438274879601059481682157915446050046895343541790076526050004194625615082097085091652572523461108575720412515226707760792203874639422843187975620438765478247766165990669320908723802677559786035414736586224814914442471600177815961064883069559174918675988339169406034688437289812013699421405276550131524347931151859100272821945147761041355112593308176092292762351018610718955421077613242638912639292592784637256938448327700051907197669531543041860306312513776364072220786753287986385226666435553199672688209777379680420909305990595170983421401098387373487491590835884218965983043305838097656249701493231698721655465023732767080927010234986200727805346932690614438359461901658061254313411964651395624846159734704157622077678659457059060536511890016593003180225170407259797436140039231032340893645207609526023991726457670359598430799033005586706410449170958042988707442778830726609771107144909875133514343739219881810612373654777658459070361772618442174648719454793979155464050789424259019783424629292088908891272176796599775307380811618847281128914415797453284681638764341653332513224762140053170711271293513089537175639432862264690334215687884656169638492174145319354013105177565567782304918524182920864115563990853324946939830562083556280347125046707497532646556723060226168845521035108943661441128313793464299778423021403495045898943892571012955923283174742060879671918047457890710315326668150409384271350543517861196176436302429880719563483708248063385202500037517623462199502673064897128319047609923927032938051946938175331806651011269669057828541692254283247101529190827511878271820895360844035311075015057275993850314002876832875296026310985964365633421505381447137890323628854353646353182546673421477968389588126548269862258587146001814640706179657715777140680680508213064415998650829946918572076399039309760806958621486656538596796654943581974649825244992725246072002014286590426208213594521284801611535443675390240183907752822112994219285365742636100622309998260944970066314964808244371673368136876904431709756534295770509518210146774130394442814465757832715528171050285841272038542624773607604386926593321436575242562159431147048864940395644863446524742937353363612628977964220169539914154919289365328479928760891617404148841627231234500435103253007635098625202615854898107497676826861410014475549456737605498673927239342607109147559484624913783433616680079689412066937034392757702157914305814237800873402971817326564028443627432794469928764691007410536004578837014309306871053600393946669791341067260562907284034506632856572892693205344804587978736240125983219018709365912652431006744706442191553308353658334907472155043307084692851434744453654158743817978835075209763797466389170937844685865485215597585499885923953956698716620837428113456222236170285147007576321248525046646682367740858267241424606806109416232136539118963913137099146594782578472042719595916146288533034923078924672493124634487568112598404722501066012173465552545519541293938102215990640895425805664277344049395245346840901383682701817154868919187726241050836315226962153864423949523191713820196744194863619444857089522061894634296820960238082679663934556271765697148241875255857754034830444897382093679989566666473994347068804476638755094909477071922915195359258734458864323715113458545237403618723989673771574345721224502862377016398743602478381018885283436274292804699250485444960113184000706351348238972808796643989843170867929947004557789517968012422899125823115901156969139816710284192772815071066098806492185966843125863634420712351341810272007211352485100133231101654821025322106988482173085103677195039200007394332423395078296156237279650182184505495242633314796472307066134200610625402710880086131562438930221171678732739672765763861829234522453017654431993465895987151246415837852319204840585569868731466569807095947479991503279709430392690362660413259681438496896379657028106701032116534538443582947239508807224330012868186223153816202597306784026442312623391808530738916187070222818574015248642987331947915297352982979433032705111060378348846044209511820599352200201307055386758716050329434862715123415501574877223141409696892151535568620225103210412602140402149221641831643619661705120444579248948512827217680428977571392135644160105061664236597554390134902361208318163382213499901854751444634310392121287793766494119980896203007211696814956925044693311063040117874055778100989108493379705719027635342406926063592732641444790092099760628222523356550262424764169442377499057889414496526546059209496776537512645391980021660875121619798364335756749547437390099853550871712172036524256038043220391561009897996276924090633754365780092897005567374025523086778725959496601282964259422157795082399561265545226149990414094567416725582916908147361374999750603377116534525885149949599224606999270163839534874474576909376933352613683966192028340081765818359016279435883114674788488672878494855264257190653816028628617317115404481436858939716266223438561236726068123761907432927259946639218872222338633763789871354442726866921110737660787388114028579287995652062086779910386315400292002320889067801044275624925970410060613699886698417069440296226641826524552747300164109407753101413632748081492102581513815941711589680230314638624838663562899828536490219354015688233016552668718994383578684109428016584916382070296858562351352110970593404395318712818673784142575844366467734264567019132404535809182302109756068479577196077763666452400157058847114650158845151412940972915331405804418925303711578188436207207267968505974094486690133040233191931763264740863443107510883895639565761355441055504982945155423545329853681263934669269830234173692934972220816912994360755414365415050148891293191578225070886139912463488065633693832819557645010986351325611786631232065398479372603579359601539515556128774755349758882861017405940395248983447454701189602516835241778679498497093049286743964218357453021523248291744448212309514428048145034863756001960354592755910180424141149799100521189692127731577002030423076318405923917885118120643684116903724123508338175065913961504861977580153641588014739056459615167975667260870421540257432630666569945090476077550195029738316265543591915051879344142433268215026524185031053961196220918044669362097658817078236004738370867834516983300482665042870928438897566461389767099141586430661048510054320439046689420171233717320217934545133611848749559216028980334257594412301264763179998817035922260393539635618369433616916359453767822330151626492032252697498003964646544287734714666442581687771849339177621579604956669130836185900463123509023302101762022969084588402438699762280166517584116839793252364371327178687894619937099532101799441852325026818742959743473646855707855113788633643964516468194453078907400765724243473031367730235709867683192535689126590484442829224748285559010497388166644829608668595417479946713474218708775746614884705268065266545445636718159242038613057243374026768298455579863559659305916861428482232086045049897073215971387008297023246982269080527396122448736312246181981813208565038952150424653068741422352450945967309972054797439991486041776300711176417319884500402764714608718432460091588660664397568214725172179931265414771475700726854211240477280273152228098655866401180395090629315000048426939064710949854590870453182728265080573691077638224294425104458168114717765397334964166300907028144872957369045223699713012571780927683842015831947794674011165789619697971608764474225798429117670726475214778677748458370034304426189031222936269682876982882472506655067687974529108095488375009745329133054076604660947704970025351399673982377034172613973482877778870308277024095738929011088489482166677020262564996448881801334067869774335731009710757174096982899876595346489457055394259227180630972254728805503160595333091220415833817164316933181512743133121436743022344549541330717744381034866657230682321800795295404319210410702611104883182670330751914512815569570761467969015560207906127278462058529657585550649395234178576404858441337409633018326476316708683524061803505929908325952659837725890420189891571560554480732345573151617937761260652850393274093696290792410944320054906291859655220308771348381564628832289579169161450089118779043897569245814620959595153762798383244316393770136976213001180638563471640693792042792157325616524178116568471419219513984587456312853640689774282361838777612255305898964643125073536645363350241078790704931855427509502334442384909716758694084289442103594059793935935056638588081996152852779584848551605908632245142672041152769085025392105438275370990376536138087911232852204665069037655860343676514042434398668521606645462434340188277629946134270622880175674421151412762593926698720455819618563138631499919800229544741592743159459866399134029398135678014008294965293938841660890046181227890025626679489354939096287838812899600512624669623274465037209198019157738819319817996210479954566802513970047509979809791586461538366949065352665769766160758464371897610082596299545320296076730282784101601706667868223419956675400687257644367476180746327479003026594595106753369139309862363157039694101878552535828445840367079987578930196023505826597728611086677314255269189629815930135099783264770830487914364256839345827039332871317744535024831683762745652326811903306507842757533652830525471797140488191665294531255299025732519966320106490064033227287422062284733880049610016951702329096820762666587214339709897455274801260458041103527750703751852010258502599778663586351447898100744419719612459403505065323063092985300558784152755547429952662067490480141566745084643467487808437974688012243393760822697417409171245294584976641239682971739648995125107425016332297527005277058952151805696401394008089844979340525171656511773405459514215600468514716167671621171509528544792065290779716227976218184843067649876945902394633904130421587322481014932297959769482025480402822662351967404787497131390111230259260500931806278336441094655373899294168906017616145376186920449748367149387562215365858083738375263081642091145034475119121425593726507821865567260220587194314038031089624845575650782034403023624372969781218725342758606104027668908215138499164337310951927397030913988185734008370028083499062087621033816195197564078354854166858373153385243956107035985842808377440316396097380056027948294899656410294525953346468092348936584288476337265651061430265907015997707252094871509471071797979863548474579476501771587204490587982099574180223960450196124267637073483751724487102542629769750201811161015413717364597408615892169126937636036155115115923270794684148826761560651085390452576213445616804553138949778438187215841791680186656404478655995073643977916067001668077346373439375277898232917635512929772597141065684309069244148846078987761536638427323742226093340504527256000990791238663801623784914337469241190266217206732001054995609081645924164969652427861226254113153275100665774804731865342872746186590224377101268676758638900689862571747749643885688681321538609981145725019390206614208806420647383957517728178843320591575888271108668883708931562463305313855313959662010157162210189529673235053364594498073738937994749894879410116659983278967399479029740943655143051183577103280000923999344053676502918386920924437401343687105139890671145639935735325047352224715067786044747582583143916119812089763504971577295536627003996185891893960196157646162773611531826598668118803424997722957301903458355145639292531593445641063436674204578578143957002540372341414384644530492027970465556326112151941722949028214700165751914185521522648412527967142047281703259901139165231185416363201949790809049345006613529670910257964300186348038332982690159802001556907865924745175575248123457656671540382890290953490012321679793385236754150777404825101043322399022307422433027058667179161911931493830115306994310602970793611707332177941053261070062523486666299467293767316868500739971893377955023671575133824604629901982805405258089284497115614235061345602637393424817488036026654303925696932709223006748376699730983777912392613208027361667937546116266033408146278325994804416103407382883825804502846302655611601457829759001749221097867142506633556475971777139910823543029943420694144704459733613852502427407156130857215824367685564743332237344578459413910547300684775310327517519411098306878086375792022243947693598693569721055662903401955156828988104973978700653022232048667534385247701643226102096232067312974997990821365504336040531155813570850487931587250544309891525717792727734751424349494984869312346152071549599250017370243131198514169285876854829160096700338515868040170226784198391815506383384169538084016255526115858042977223200124891428948286426629011427002015866787839841026090397101094051945764232903054131309968669968808949480666509426246589243909999974620254802699807181983115241000342225544790716445910292727190051319921283197179918893049062689821424434546360615526589218359939365668005807852212684814981811750348868900733827594539468246244975454336388277700479020624096453381234803589735590106495360534610788779186516080164388222962595513528869006501063208258273401316007578800326181801909904684396415061409629507406826301206825188684669977517377680361825595249875927913213982368004859563070178919556726168006688001807059195513039636808324697704431889484646062688564967729582879825055411086531430017233876771412281253460162117885089841857217586165464375342110453382826684898712707115813299669429336804460842336041842569200234641751103802682893712711299659873229488325827024667851155739881999871672778334635289493654718372626524123044122188945644734108339929268324580863962806149657485304613084242124660489301355200789480410617472537368920785705975110776091729966275083377202897218159513163270075130138892334882136498228705835756676649573120392701926700705211237426805476616638457909145290499312138367991465974164091489327277283494536536607901580285129815336270752753126437379723052210631354720509594498500473935397799757380236577193787726640137883185523226736920721196603097664112705578904761910365088122909157528833211581002204050947612132021160707967864200334784968848562044140167620770141142215210573943086505418511113528474992639197883222615508622933570940157878834560772693313462153939864712070715873074295412615520630439075190032169326201740416576552767710472177554861166716710184576545255455959725207199648595014075349516403845479820164010174944300837233278454158332350821410912546474828950799657777171879368056151791540349665518803113274025465218201869203327658709845472778598196681635643364029344494767672318848549035459941942515007109630241363228557857768459237425176091067919126551333755500813368132898219540801507457475309008964210988782037262844763677601001741545853515109535832123976975646164658801880777751765517753794063177157637171021111703411133965513413869817497806381039702110865109436449412855158672768106980377920231146503887900393290013508287881007386172769710002444057794082978512155122960549447387708803979741782243235164982091482269594177641398530567793555389760753407501714065229814415305787010375773032039288347379929471720537138962847880557944678585755861084623384908729713389265186480208003073203132002527151693392644887939518780174430008884128012893400309963170472061164427748008874643931280383174160019487178137948891680172435276242334449602274222127060600868704620868943690148599992203736254275646504930394117883487721093115702832611668236750439051746541616049456666522312616428509873100954209919615396143878411137374143189986632239045049921001890318148727226671841539322041209174443941238534450722351688760774676173902761886046248741925652341685066143823237164169955350899278994122597471967805279052509912935635691846792246242319846181163652687798669205447459785808801888552499643437407755055132363419998372747957720246169943922889739090945906790923429764927383469240668608452730035720142016001193105513917978532394368826125345506410268403598814704687860433210543391349049415270364673502495595043376810952094957014441205790776978979338527495652969772080594593989069134454722729812296312187999228293068256053411585263628690011624315504913746295995475946881319704164872820820057800481198149226859319572538588498525612881880685701725051596803808946889147728586022168734560447868535817093791126283277561185321378889947332283581377021412504687173697922713277761054458244218515661515623656234226221573290737613623836469735282513100291967493950092095941211984622607540648980427003085459961096573438073474553682570930856156622956339360633590567157393675080052043644177130453604935276339734823872849935039950881529772104884446457039118619480782887962429470288475029498491943728281194742760241172719098630751020056142075464824198799705478542781114698807852092373211781708943304891009238912932548106905506331919138788017422806074428934268721989968451120676115690002666874143597343771993576806736971946592573847732197534036761369778412953028830642690563076628793923850652980446774071522325797649358993356980040708764482968494621896461043785942352472917894313179686920325280334589922482783506432430268077271114535388995703398848555853440176637720518181549355543901143860775690797091711900595256859711874476139336474999961845346760610029306007600379063767117468656482146743561659437222544931681041050921180283192687828430525707018888765641650470922228920180453681802163042800583340079603583318070181736523915500774259612553119155640946209597980128105206066341847605341651949913017299997002176435949550490293813823943879110971973404148441057595199599704407422009449178375855474444274059314408612657142692615666700525021449092482679234247881997151615715668681289735201281738610332384433009599477015310764023737096257019982674864941734429067482054355135735757617453846489657062787915909998739375351700274024902649634923105949150826861293825344621207275405357154047542619206399760446981633053010731518038311200347996906679889053973434988921494366277872140451354972138780648968533674881880030275360027297210111956596816642934363262473018194616076725400462337753803772166896026953228666609329490014046731390344457025447015665121610560212574037671965718438410618426733300747295258527414863623969291795034883732707395075992079110667493896139183016550743958800241533925502558593966052101647115908329541830764994132783959438838005444570176642755578049945598972378176676943745156522799965295390039560086639660971573634860791267228602197029122025834394661857319650112611399697145253098257859588716507947756049172768966133093439586135775139687314165320627339684147649554307480019064236852924596338283419591378435893065531647865965950138782031188509559160411769135791681843383239057845707873996083619188089122991724839125201074814208409736172943647266293687718228814731477403058609038244411464134524801747829192728555612878696331326249821925380650479480085915363225267485544671199593668885358469981386963187662234647178711734018448816432109717008476630105443089305864603599829779396744199747333117717904592850927851180329392616503661256647647633056525830384015358216935320197398213378140553652201912199634744911841508092711621358562331652898138498186123685933336068971915060240100781464818812836527544857532828571945139554729774453695357509183208091594170623703183332680320038872852879017460986593648556607815022982866735084034334356530471689741583866039430400569418660138190605949889138938239521888254829828370452132578731903301080591782224432330041283627846695090120342010773984606522546795243377630273177395261098148919302672023039110706195051497421923898998416948001471152584837695372717472787348905955408967836895826489289765498842773021571287985454447738780950044872605579751262979498790420975143589753675294747030143941659862557909528584700941865198504524059083161720574194726850312445600196416072802568660734997665756613230052684514448018905881917897672368876050905254134111622205964327335863131613495482234681329879926317885013086047217342043069098093313139958058018106970232139935905114110725679670236372814456757199924302461572481203280738564572962211732699900409470510590386387041584634323969457318670951735467100741558207749972812469392511429403316774240269403596628187261287147011154883358923110682455938433316416558651629263646320975513853329050350356407677722753393335500332377829486964950653085814712066107495662273136020951168365317741075309007276480589625695644340173399784706259034897402293158755802962271251905926882852689418131220608812860246401053468491780174077326393009816818061193742699415458919058045911965008313833134561931767113294644485421100965038873982552935419404930674619934793460207860352936163702958073671234302138616585880396441898052729040448824958555665225682298071571140976449753980903265819448878091687909607856351176546015328578722448764863828213287101778612891562381768020876822824731736573143698596582666739261393155391025420291105063279044643722627720749914202070626786513439352835198986060483447132954504789146883910711549436209451842338346551379110396944255327300813498816738050763099992174825329816352258747411853588060760472932120801146828589240163118968706606825537240963811613109474125649891432967144298626581204680280129181229411436863508338163806065708283566376177183394438006000637399388188141753155240636795974604417147219843961052843084440505115024427558766748418929699574594016665371362412473364508022224658762135996650414610172020324622805434715066973045448903893055258672945335517386456154400514605672683708180712192791089635632367964469890734997621705167250657626917107567210704104915196559846335417586041670334238150693028513797888083392865711860151607831436890955865377626355356662462737595184518005555708993904667158465681686727551847550506896230596260445173722361727357193912234572599122474839982094871984783037237697878782115744685468957864885873190776090083951414180783504764674396331964444608797053766357525114665834942994393592368594634498309155600673688772606204681374433154786331844758053455834441961809827764537610738980349285866022424477393275939534812445133610311867534601048880003162062927849261449226482644058049130605009921008451281207007777622102175325235423199244236056701030910108424075002288627542618222569738229118440303680527590597238620609912566609878504268923685728078816050851714381358982317488745584067335328936312945583017094167805280477536581131137321940499644350135283106935104176549384969705981308060331749538437013591889972721977745182939102456839456512667505780212837697730194594010919856468884288659225604683464276250856521907127190402622125326490934398579209630178844725208513127897826220875386937491996839268492245233379161509213798531116039160749526884944277795661835547681657631811363252925145798878152838843088420703905037678181511420584362685137831465591074654615004783210923913563748581032958056464379057484576433634652929149824249343364286452521624444409078644847500639204458691645364199723654166825670171089495121570890207803428856490932242002944575850771690517448224152090660805037515266480121893861256825431677393106260573889243361752106804543927174248964023040942238321051228719682834826998323871796102713019233790612255135788860464986699389988171949062693145910376665126104317281822220751954359632235285547538199897399908392361480139706720222823399596336117771513181926017638529197656808795164692213568786305966779498576005237513104939620778741436032879746158147614212522574927317313748674274351973155987262085257373360629569583138818631566239229805531250886734158477878614288393793097169835192260866042833898856756081865400724193892043752897807651534721649611186641621693178772609310278986120664409393228381794505590658969050593025383067339937110903814654938704199158540745194474180616919863301334976477249958386086306581986072952086073077376675297823211815131305745095805769386817601093630321370889092228781641651519831454223281616952623996919840693737285793521318071837274074836560663299402775555324927956513278665576447028149254433594677665273922454895939846694408456891361157566870665901976277170958443609073788793351602987546190329957513291218703105544368221598403822584331746651159566342538595628746957284724259131520582439087381421956061503426190847645342207666075983184269368492344482531946986808899277652694403506376707849055702015014690087724967635745254836284356996200233312526481077259126925700258104860063732337231211848810340379237560178892069456172923749125479819174623486138261586307933137280341234573344253154661904024653292467085665973766507611942645957590135303797537895818438977109771346888836081713565550014117350820585130625306932049129143321282587030213807435647203262905753816287883357627223945720823033102535388665782184767102728809882721643583493748114140901383439308043618490284294169862696218935976707539935359712672976972456803817094787684465977828969886018677534078192292170799084138025139718920705143628600098042436838152536917160384953504056317768200443067740130645780581475504178745073099487953237490305622845132831240583298840535502645964139115275533653849105828761818300194679626198173615219552493606152492147368519626616035901183625108268449014210086193420771417919100646891505828320819003638931760670187206648239685675634057348207687176641838424224187430447526050895226292428394404136971687467754309150145470386278283446950893074349592751881251893848545786689294045439214707094236428172109254798423868074638123455637739702262946813416983273091751285824568169129216841117757779966178395901900876351510339015829896535590676425303956072860089912652513487089261225788205148463285477440978874164818004187228645994172148946662977288824531219336516678480394319819787001989020854482573899474596650022575203020210846278480012993761773979138435925422763973695168336914989315216160703158194647227702771683061693673331142204550483789207094650895670640241310727662543839136570653285514446373019307099596071865051085514270866267487837597037921864730528902319532044215341742759254051448307081524854545804603156762145516350013635957865216098981922473833461455420817356614791710025874287307727185552088242823743147674457940690590955166063315066917006847700020396540491773501641417039694526715912635851405795779001582473307256504182198637463245838748081746468077966384669732858317987860698976438875718909069543226686325971981032200917591515009691566614059425657148561196872666583442111023237853900455904721219746935730865657780660236782930360646881735544194137802262821580445859995761732486540501258184286370994215159713399962093145090201219921561318447539990904668641761484122329656666866511417306038546459527675725745495768180131871843524913565416196786579446439469175193245346944734389928451651710740075467141922422504120118529866304857399173900326461284439233067583786308589057073502715275465403763895146255560950910745762138067939262976952994384103046706784457577744364704155061439235529726981376960977155052409353035713841523573776566552902590048322817571355110518603337893726580608446984608659544262785560817910232509900496219812906438756172138985709083867679861768926290347830370771867104847030319199735412523764470777593999374411051951884829058695278358172615900232150654286149570300321468163992759287946276865025224269314193312034646796628326498110282824851570614415509935082208285625801302393245136766861551213219759207948661293691809686924432425318219904889571720268035946507882875247456590914087608868693490350856807811763217038982091826463302893061970551087892984799161492874533514307376438730733533365411761463370401637825998862590458156112110636755119470582752647401653236264490977129098849209215764489701917046310085336044144526464234286995834212037270957850026091205490285911777366642176681339220992398760985724858986707828725971436945234460592993857590839446326473399284597227723774349233042427816185475646818807754199399973203805580312847729012818054711041265633582258316902937546277500953270418212507505681376547221352061110304852681465586793287186784672193191111391409644019672461453226514264358422567620920520175248609574238364926895276072089508264735066130851685741092144204659815875440909331295519000594761516992830495913884641865868962720190079324532721831515648851265294191722407900694539571182489858368674196484771649108948941802958213874127378525972424291963282312399173725997154294196030838709189319007637885020609417167781088022738632219870022175779672731359530232999520997366367069216017006760800705062308528485546001137430160972499935513119762015433659643425465531177912218621329889202888326587193338347349794161653996631720526981930000238138905268538646726027330839370847682905442269717567211662215063484063593358985762044123907126005089263579945409710915257760244824015310836459830027399695548910003969403105414779418715213306690066192071498145138957689053154999924440373372135075276475421031543820024135570855455647460045698823303209110882320335444632988922435360555311818344420481481135690748544561922067146550940206171655451554115143232849538442852472433866133214768268990592854722567420175128465646714176635500793383999495191400538928098897488912092132629844858943044558377388992532332621312086786587324740632120199347814873805645592082341163946453812248958937937111476863219125065347684436470341284820050762678136980540776197695421761553356285934409519964974717150471918580692993905205541267057640744949043665109249222779629476756768440020484902654339754022181506469458233809072875613583515785163574616985053479463063219372305027533561383911332628317070964544990352811718853859462184465213529220636638375885779198566322564433846389924681056389234528578876595390736947184761187022320897942112720766545403278235259983380514184592219035739616584972995248908785660436514532283316461613127001730544001239494802710000456681527434621465264068337016716699885451266069429127916689012493403066700514034915684227059975357376556141978643305908518996216881245907845292131739133622533793938752589186262017675043736564884691929926185126124374951137469548410404992989797184534047858394994347466701931092333225510626336767954037821195548133602199236055813317860586015822285435971458233565225454639274527100120305986275178066865857170661318584843255134288154694400329133007261748212607226365785634071640200392540829653084974540522039350623352742319647672338128347073608123255868824518236033329811750154653470188253954521937148593024989191804563958433576184776576460139957483352148455857935214430571882507585780570550435537265145102555011227755935290469269201437343738864971519708397744622242002129695320928519439831579014127503714421952120187026364751197576680215699552418829382542569524347461760645767361353430914963262218468689406403461359828968843506331030089972616137286079398209954285720134164078606670417740305918768770949250034073867902615152594989323114088554863742784081547773202470150614822255208194974442320164108894879299959101324113585026770043176743723084328670076388593682621242983893196670523353814703846538824229535409112385883565675516467671489589701170225858196601542685504644496036006201360802407833988401762841559526315078603728273183873543050178961710886559975422258082106884411183231015053870171423258047466432927525933026547606478670389410709220018525466250568357214451466606825442562876901190218751519960248726009018692032296371228698141219245700070056255367616921504487378560051522362836545392483228044611733409255142478316146763539570460162927234915408683199925968280946615691712839395969169055404202904076412044262707993644254407476484571529937814330018674738202680804468911990516769273858622066647729755277046404772802626710049142380129917656163638836984667823940838656046082803013806025438660925921327731006961402599656285366811225039377469837846407197400158456821285153330934923007325571598308723254433655618063483423612178445187172007376649892285267819002112204638178124407587334639247334961031953695411524676799617691102813946724293422254199677343552165368582645006972698499688451456136937996412118371572803704595497530478185434744829774122636035909357907188047291334520322537181728742937431936754981514632909481819796974396589514554614639963561924696136648811832342848502096042681378208985265130357219366730475132914820341369965364196090020564505491709052076248629112287792091931618033412727931372314351451186085029151837897685093943395265084976310097061782899870161645235046693986240617194532370509546469640545998145050769216371682053159793443209635844813621731479981635357674938341939606079729474747283431753230309926060622840975862686537498270683943389378245201867510133707118264036443731973774570210651712392579156781887986291662598997654536673232513476725365117205846937883954839290099022639503790959108453472737423204847199325692598249815125642333631090472609441238388271098082069366216571685587860711815187260769018040576557941789447417567239225554358564717206811655662061401826392361544442426458107746291313544150630231668507984585735595712868197850117954556961937550930252966982993243081453663151542839149922137131724951753847075096152019940492533603972943134454473564962231013194949679813029852135684406496223674028528644971567710113961913178570785269811993191299563315481200590559167902226286323557577871969329471830018639537581860827373585734731930139979403861477583621483296799171538720656383771691607622461837075960230696997889626285597865525429151593785460482025616998055338701809884572115454091451319772301320598053525498627947195917656009323499666274568096218479469250851448492997080013876785487336294440690272873632400138045705731523199075526634253658706059068321183244935180082403473823289902726213391999610399216117311990364825360453799244457255849126536550919431706553763846349386095908923505911673160303146550975297409312704423575045909605101627309567209402444559809359002582602128399114325731255336713069260514452344337429566049603018563796141790693916468344964676395861282281046923379398980816196820088526706611720651113011297281584417789245177262187436746656498225045467030817000153011243230603944859637572963593505300554754230270158004850289627350173118364516772655869917992701426458233151915171206485276454009414760587911265982402015631431423689552747823763904828675681110254458897501826268512723537084243019847371668186407566324735867145678678806493464309999009277988482128208382274335830371812405022733086109337406809157923946785132080633062095200833437110443260703495425612113318134654483176765703107061256975656754970144322236184714507837384105124526735846829324678123839892937491045970234947032011244213422423504947789214201913121267859153863655154874290252751470700698803896531285885351485943536795197104241272620158732760680779683765499797365427262300053405323284167487537150784056345388206826615860515984649955682290691855969698669757631859445057026421106823482149909976181668862323845092726079815258294134080040084558110454110892694375510561923964228128787078901084525053843733411343225972817285543261422047491511505575656701222761418702423695448510162010081754357651954646177820096576347964489987704000470388779532160939562740294122435973799524619355182677898974652526548596632619480481732769757054417918547570519333697864768522933035527798619384845299669939237490265973903929018986420501488109187145670249957288321254565892832309570586371068086264884574063313463868136672856530520020768415725007132476329554678808333433701266967533937285342495956423268147292828472313777530035439699719277685558543103093069094565323948616493672276682862396709101746348493119472695812575990396201382382968870606566692173998346883003136819385273897969635138039400358417647645331706465141310887876777315512642475815231064925653439101079927233238089962720869839562789918588580885345689054661773786064188154928581921920094852063328346158027449429629188609228687168003078777193450504558863955304107785431030961651330769512103909758181819202583762880773559466926093346684021929402454534861565015049748786278727871019048349666722764684950769412210160400904251396481048784008049702594450711867383378065101311015607002860720732755007088205640008908340725766844742592168216590153417753285893780761641953304638441301604487311020174274284914591444998232615022504534015129301313763907805317581747119765384730849752569842947262139507780163556358754956446087430451069120172882040592144110931336542237284420778871013720320760568841028212314178101297735364514882986352189999551640770852696784989964588240139364840104905729897396944269932828328273631859270493211680879208836267681870521616103598257403738820596436328863471648287092622039051821291223789662000174790650126349369935249475488515598761210468596580412419543753667613867732504093568924326521113430897153801438246159320635206145456118270996907073024024953943125065208022148913916481066415385359438923927690802812926562913181977563726733052630628766116669945822396691947256272559279458578343404739370615101802898315875619944740428779205472492777946975209968184187651490187537590633083399282128914368902649755032929031175635726026149429776296619312664767284467495928734562582266418566902692498318682636286256640213781538904661129433403089515160415826740781615117034760563154479968180054956805936642562128710245595956802991423169753760520958736439622318774821289197073327219899732398405621770188412103737544828880685590701151049207102551003576560814996766802262582456959752449861378423834698785297514677280202787915905180292449779294316530161892078646547543443949236284022885518003605960613273955915312072951741157314330015206342133886401569972383659696364766672156321521917313794469396917823727823454085487064150676789504426482077964789193805283905592550479557142957446742674087115976860822728567997264715656474340139372769396267669180512669846346316885764401680541827937859581001313946671014602977472673220964159266184817339784112297761949761266545552177040478482491886951833082730487199713920003709417960404599653874235691963406284197868146053808967488698165167887626151030977325506837130605019075317628003128992484726883119778801465510772365147630016533744876338771645148934386109752488328003428500051257871750923963480172927716558145577068781274005822078563275052143502534897005605669197635413397239744539488904535162150291477342247445324920796592601030212736591225811909006401507258852860088304580499538635319326876870204937241540083211711077952977928977166141742955337714171456043185442962753046908097595841909185891492677331072094374850647181263829043944506748151573400925327412391276077863422212666902055336426511761517782807617816079876243468603156183928563345177584468121824344242240583860486971081067170989176631978429756189111390015774729999245577310859068946978785112949590047811025479508677114547495579554278862291942015045606055517921868350685746502946266257566890892635500354494316469595104300882715491770722807274070109582279605332648519068360310877128301273873953379430675489161031276834685873499286046283179079936046102089052322118430611731464784456782571506306943539453039122914762498396527364374757926429528138571258922744136630117923988209861449425115099320994768747045900837839056386465368361079764708264133211694663253108022868420347500299666117798329253719038501307327476449108019095298156713980143563296338149276787165772581296929815071773625279018766779110516196802910619940957398288685331044266433204160569900831717599897104713235697231980410250854462489153283237333727049707010971778527458878515026784967430831530564109645527451043681130108878891853873654816476983421092670617195514428456083395175808326024077420228943203400264781519401972576869021297247227966269311192566043282227728095812467155256107841206075700219263964239710430374008711938256119731605399350236125584426301587817475215203885045010534771403602352750396083839202686186760943999104069133417924678975279761093770579911845693874542489670149303649352632928030259246595246526727669030227961086008142467139536172465309076660982069381886831463144952212047939547167510751290935769122037065608942704540088783974510673099565229829693462056513923396466462356361997597419143676672636151794977314617091885385449885297921720021338493372905315217172366179681006700759975661731618240421808858772362526378946559966512287841130725008604925907370401230315259740322885644541529454288159888841553545787903164811278093790974920730156228269681319920735969793093296841294051412386923915400049821205798755780053574300605150144185647481201003224354153711535872246204805166614443682494219433172487654310225577960508212079519400855299130484926335337211803977270353773692699474061732097198015842480302485418796359292698972282940048770614112470919788301759471498546327036474614038248715123314702479526252134069421290473315479028025754335547204025893692958636201427755824742453104248595177054473643225038439898859878471866119645009271003639236508667400095928158191483602003548592408983879509894734384445241223548370246865387888566547299703015086738116031713890578533227730163180133073572600359814894258975071577112535560362157798330833582784726527754087633644336427937009544146238956337800940943795777960782897668236137143286388371480050628264541033228316995280232104809634445541665087420916023021686904570554341310063249834733599147354792831863844687487444463823700759142593152682734829773023707021406752653635178134433880154055870886513583143113620914428674650187298339449118485405331535418672391834406354814376372294061264410913727095593292449741391383680655022552581488303998309634769696039166350608842716612709376340417431591041127411433564396297945865861960359842021149975341904093959561209463001832259132434475851788353738970237438937180535994653256787318886984577432653361992192125452038957347138689450282528068226399349905030870467762957548790873185724222967525939147026267980421903944996856491592690986512344856696899935593544261841655504214030198856978499177234995499409165926099226128371447901711812071683707791906684091160212837147188042664720315615806622848903267718209587426285565253834375283097718453879660534237702600829534761468104584146309668328951031591732317681311425156502289542367076820137296300714147303072963098831297487411343333843710762695263785305380511870996081900598438873442862544581202161602207963230261325638125015165128324458855146097255225795155048341898849283277522581705351004545412860418308199341551118984507677913108400803693907418669208595356801442328606686160761958419631584465273337568612460554460518033940580311083359269059766784563518617415014488073867237077099035539487350976092749052103193665287116945804593052917569371155912364979943544725780824065614412070155375558168276812647824303415262487162816242079371624475586986618933851644548662198917485409519159117996639814889541005147866821680403276005329698298098915202520303461070662446994171451946043252093295220695388072348132424929485263029386153275750074633680588399563974159601868392381827617749537492371819578213759699192340895010697802833860960781551084063909010747291911650183153513553686764743004408152439878881193319543709959654239522465332744249125901597290165740617903006244481494435706550994026288940735860687563607578462940264964124723371065501549902324542566571514485232615353327048158224564455060762701531039029738387109016156976116152758441054840231660058468081818654443224717782090525922911381244822826121160506331035514454199873371536211334716517881140924301554538382231069300331142115550362992389535638057876150889837061527557914920811371967810427379455182057817483554146167103963987629507127328914210301905987021313842126214322606217756401558998900571965840006747749959508926083965831972713571792902589011940029140214617651026648864967396444089126660867687695287909856452346710536248415283182659633524135290509156907262043408061042662525454871066247709508612520584675458463173720190687938238540266954176322601648079382801077815986961071948609221787919738520656757358278362308533217797409250134398604686388631660035913871483032432927547608028589535830634302155150983148732488665607607417248746119653423826287058203932171742178151825865361898347781606875434716332809762216717426006364961464535619322077082864769800695364475038837739297134665319074872293000784486795666963355049197102139812820349736538577224023710372552801378646170773560696334240987901308801721936181664399651037154591434946355516436975447722704297107838193619883642317158507446409498797708577585484842574595743921162259007006297073523601086097035817761798478288413234847404287193105375535194761171868390595498458720396540247940534557994499785981768413884724548003766678272311909412130656205481811838116573542300005441809862375517743559314953452810491989476767832399804816665410456197393174834022032946491799709194440086276671977126860323839458710189285238349359958288799638792729997432581824391138424255536298251164266686469476129412297712547088875354586224994431854707720768010279303666442532306340166020756429305963682266095445739378363083070508436560535761836029681435962409919064000828355090287073696413356789712570442129595001220633991389421479245692279391381060436776409165668700870909215607975964619610600464064138329078735596356043128053032478939420935858795781823885986595977734262487620699304367161070318833003103439896594582417853427877348271220392678997657471097014948191538041856959202879405969681668067774050939068887780785921176665028643970950689094447113203040749161447446755060179256044446898818039854687661158996019900573413759841989140058013227123982549386451525121028682715158400255489276769952013479007058218286156514245788915027296495034383776588042005971792958460814108143727327568306481600351135806645224832080254065007335168900791338841062092521735951460039775280943979674099297209615951842333594778073375182974891516818091109059469885860378478215779725466980293998451888177341794207346495968301028945927434430560773998356106520064779950298356938876737092946889347308866349092501429084962364423222185648863702424685810320862269672931901790333508340996166243566737164191783758870699838462171944833303034271507014435812279659688747710272137158782313140731571763569956978561873756227794435136649150184469387506496270305514607669431212340560867632380181236472363201349772246195147728961030890070158539272353061361653949635510809492171252626779886440269167583246135575810093184467032881801304458676184040572984493580270277109541605168592129895997890585618618215170520356320626607791658642084955915683051820727315727437414876473137318493530063693821715452565402142728146959837095566278794369792941653258248844385266526093501772473764588790393146297476193228219565634138236136018276432972693045113226526888612397663759330134163664231179114723886498100169540167056336144263881563576593554310522487634218545996030282355598293993638339338663495565615761050493688970069623422126760609060554248556142190817658298787352160666311312873384065300375433589110802756512941588896852737123186699021280965303873137507657958875298740602450449289368284325720841106685884522273862185084624780385758500537430713226944123414118658090041747527284639511800324230317970164958161737410222026003439514557234922926413984440869703927591005260223259106438847977608592713238524509030514542769990371966854438652597797415513368754032326753156011039146727965646522834098126183803620164065088593773800079407233034504302274052072720670570163268965879268275690745805011739515185882511349844688821199658794050404296978000794340071777091570996531360703176673836881136686871910641190796046968542067978876139650931235212037224227382828450335987484395097015155327745147794849950447888282881110846063082652993505818427093151997927387812099893313443291385039212863924794799962033641860884062646585492600827763072819598425861664018390395234925100541293963400570294854351453151998020252335387184485199746362868166978760590819401515054497901481302443380558024302521441462247932666308834886961334313517480963860134888312810707714910091698321812069145514161056906271396756437404652241190760577415182135537074264859731754319777978999481040738875023452642416135412572225487295533724852170691627797367743858259926865836638902042353136641623551464869019487514780441877511967371993440877520655091641959346671682194133582724549438004391406369462782629224656512984839779898141064339456388443865722828206870918938508626801322773843019357562079868633619667759852554456343535714103541394444513280285196128807941885981361592359903878751714625809641877673961439771801896032178432110499659839821806821443852004739432444419088050566340552282879565233008057043068058666483253668390482891121995892636103218855059472468502407362273415961802917883577813353509553718821136235404281402123445721408766620599975309437698525036337135288525214805389333751722992057040784088502968520851065847138599829471567319085024630902181246475896769692394280829655256450309110207599596834256995948310138746909448148274367798034379171646844554273506641450043154376924948798695224919730297517201668569766803327580122669583442361743449604447205578724405316138864256820191362230893108623615431955945081149210501911120239092078377649397528933079577774464513169408632641034160665187972064244263702625161068184770609936150861689860718303031251662821209443624872940647577196207261967947870190851477850749205045242195112566265578572360961161840003676750197421300930607554475539299592238248237344476687236102665602080034334562063381471643287442845114101606034339492343140382400345603376302843800709359274678455222608970112566439227114438635386419555748151948714436978407767422200512908694038116453969550288279668347646074634360707913226381609033854219934464299787841706313398947034932245623224509808768356778833604103117968095781393137449344636407607374447498208691385397857712140063483005414894947265436707422587455233876407367008954098814548999340798801760974435944633311838322397785609809558939466191053992646555890129043605685755820152115913714565187383923300186708202050086923095238446637122749464905849232866083876054276476039410600457933776141399599644250105588376342141513516736240263520512591434880173619059516582704977399346776868725554421241504958671902420391370409936517416086648879540665922498775821351908307840539842886455837227510045088862226833631812717687595661677261127543592269716946940714225289008610945339656184616648771730152167835228607487236557671604410560758370747605674379462254830279554031600171507620672660086974099721893125406327932305038495560081587497465250242513446677005132404714628064227074162017411702801673161194821962178481727560778323352536579761820653298337183400246738426176449022654664729669092265442229538695329457364182644945049848625654175745127853534865759286626243161490551173497884088854449629576719104078832602496908569886234719621525745972337199987770614635963420275463116728088074065617933841286545444876465255598099828509629555397572005004913483366865667211187706021909066014560338565206153014411470492113064943764876610785711279318404623986892864333525873255796271802921730990495092629629622107069738639102416976302187170590811853434950446445753118316733506454162039435718803033519147204982618793676663294997791518166920133374956877810074777209826001886963051634001283853968715014106133172494767205796882451551162175900659862994379102459482091037447052995639709639240978225648686691144226337351216837243391484802532961396133094658140971445984894554100651646739077981290150230208400080166939605465776413966976166844747243941174942517198884913483764754435621528113175401985002083108385509998326106251079610041145247092400976211682496730408249887849597818830220005105159327609342313359915786210812428024964456552502087343907928709761938767988809245507079796008288986917957854435881552124105644427735833491713367368356045138610839025655555939646342005146617646210437217280204225379279634975307025008493984725879978332911412178946852481167175894583343059150806162993171778647941839709126377553285827696451058398791928268476874557602670711882309695947640930833301768135708662599600310198399924051713128184391246336139977414693070160250019804668912538770649364947629608562052067128844253244598275589852449228555406804391732140242499367715344252094967548705973450187731937306080320913764740904980745803965571782040028724951397387779427950970405353056731991373698491560398511632387361345453130700894683775382845842089022083241801885570477142620969400963025427564074413082650149672053046844214088818735572734618410170688407479170002721709407885019382510705717765355622148908412094789432335935841779830139195215515830770435024754164319328430791165782810078281766987644934570459243106358835851785298742566368596580451519755374403027131363485512141616087956534583362561226608342130882676385505798076306402150363248490351223262327019225934638427868663171939075641231666437827494789228574028259780084965851486719804035171032711606043874233784709742627683014212043155228400047842121112553456296986664450634901030552573997544611426946579740643700923530654244575016949275723421449701058308472359996346602400638396431481957130028711660811777460629111801416474688021317175119573602991958903048822001596835562933032745831676122470962036479614865381226711813554538404529375386202020830722225350213722629921013636179971416874332009163339402905862237346177238393162932407036385744143785092362353401523059334146052152255441818873960440313217406615977349997289062916252231498265573164366112960698741813462879511654349717018139570205846150732518297430262676487748448913520378971226168019124270344682051154128209111342078886030754329153414887083439333575058126415589358919304399670019557868745775982172308021270559727422063200158995836488859754796415475282967503737068254722893647487170514239190256169479356022107181165712698668514710690330612491512488712426508320327654084807808869986958263833566577031854420633105913714653050665633621549743515963158032761009677582969527881767951573072343118784225522418976944021461746394537543810295307164543812753314404134724085647481154765455010389101057612896367073260582456789637938995121075143287056205815475153729960193157324276746429945547713020004610642092060089693500280126916086860038614170991788471487141999345153759997532119949113204675335281211718215240840502336789740231916811324464759954071440353849199639784270014879208739724022078926368563890735308107289421268097311613551201075369847299822410284344809792883410162362017526351031865251243884613125756490103955196681988383625177074906538416157425250684950314489458196262169101498118201964820518420775347893856698457095351808989864057399028202435745255012414298062134912942356435095984758553055250005601652852819887993986207592258948469247954398337060400213140306753913449462207317646899445663944973787910789584192290742485153431565380350839055817993242570049199229733326213522146261183426772515946033937681418683165663467827216372357467612520063511908624583681085733643134954356182311448325801558871042384118681920463437570165210207032833286841344329823170230423469770044220658520584951367386840146587662426499636371764457823420210129451901112581875615315678188670633562176837422959866690757225186469448806388333719298163211464018207615302560409055330168048041281503961619877190960917309418548757369588767790076489394613682180300916471873553645040789134375103361254480740338401786246608944278597880957828785944612676047868496346582662928353178861212522670382882446926794242736300270325491276316452284764759832991073690607723305282054885274255761877482642412068061289367497935919108020230475283908902957388629760959587628654503113545304883767722967364513055334727400216215696258439243646167536638308480089969042457322105637833659417519237284979116627448626365880756395658294112498067261107354684623734243367592507011484462463740446137982732889200869609962977180213651917773881685111861133152051377759390989512074743308090801896006781984193493817069311176987558296928129365795502834708164699804333506599870466292958719181512214986585139629604673442299858996619268272902378216110470941403229045600314723599422480225926599025901175463251398464494255716196133093550581681205648785104087000327072665298285683565462301333457270509889042688590627103372912342776785220210762772296574682877778128412419317085190322746073186713023459756789450671341002793564117221280369731067045137710494349858770680945024689290355021524349769133301889335563769799515529760254650960707164391165329924354705567259452917562770574513703120379020467460540920434862307892761469677334923507430683149558811043172988423965811740124761161332015634518027814119610619951609780650497094742368092601049155240661917812556088711961224249712464355790354273730240171524958288822922584274227798558284489980583402706702493681422421818094599086645975250478445247116140901105460203918911345717765178648169741091599079459732679338009969937127546912851735602616848473687002048893796109056745669803857979761759261935081058157945255771113264505454666955583050515088251855577976449734791278431391145303424303315514651982623789080728896038056045124402173047571641502412641772304610300779802103439983740060354712753708395920655972329445745656960822459765544061128651336458723910149853694285675261688415558195979609898484727529175765588571514465130032419941767329083667355276675714970403660558735488474902067768201441531269176755295860173482171058130209392023974931845644422183920288247651984993453390118480549008049331008891204761631661205369319496724197825761634245232228528972773110039101704517518826489025474998142537221939938276207530039780727255614125333014516036254573019872966739823688974076463487289864740207035285601499694370621047856592442422369555056118536855381403986036660741665586281214541059792947852063767599244919519675078448326894623325969304720202549122240454005415382232650221202196576034867292176972454700781739055412992804928026765527447436830552021968296272845826590663686120525927149461887388516035590329456120501294109498855395491917394357169779608297908819222238143869217044289107271279267704780494943084565923119820636181664684355072660061212384640733629971730070317436447447349700745785037727043940129830283176429758948243281494653371603529437644705045726546485189238937379934909950440120147962740586540105296393495839087830640693006586421446669235563746893937716063497787231756213337044240108020635586149530878787953890132010948471546149159862466293330559484268743074472797983901395414515954742246402351517044446882094577326830546245765363216036551023321202458596780445047604906847107009518599231838649206617661542713327439172697447771820284933492890240547183376594444341327546844985129761562143015455964200791694621943088249884832924316590460536851681421262527482283993132622272255518951776067643027869201355877701600406600038948122618247121119811231489463755850262291592174583751729115106988212755553978614138878482618128619099628788605996712818800013287573321128761821455109256536013162452203679351087751900594023754906535143461783209903733629568118975091077792862357084082311148612015887109402652955063846344446813983293149570677562831164427360727570829066562894445497004280245934024320826761534788925481227214512451360062452257244918895417844067990903416981058678491429428535949765267939320178971252726613605979589899365994948964747472778752435606742715504874637261923151486173274371214213083586596363088265010720302667566100641819871448701182511474841770178677342434498896235247158862831232741710609910678626222757091737003244233149476569071021131870169134820376830635428922037475680793882374702628245255517827218132876153671373777441292629567591877971358278717893199479982075298698413235555176658531733498777924650433053124034818687699383908884162570136617251678325439851707316002805253996810554355392089547248696230430385343938202031816288957015293602329541374974978880992331082291548166667574252670758343852791832489642688782533539531567288749099973441458481137582190153222889425770804105636176117100052457416293917605403513367014510119620766713718936009948530887540420329290602781458234412385810997731454840762694899215364288063573875708725722129787148044749776730874690900100541902686474975704303305193673769992543035494203743205366872744853782199703815697644549534460773309550146236424857698091173919486327370352044618044056567907051792746980477078113803918000586522714279483059706297524249430856095709630575735895944791101809542276004957625498002866532402056947793772996294718006773285687415261428370161624090407561569573977858518964992700329392433166504096311667293095339167096779016164109350141016103094755585953362681675824823994152824687289841658462251772686963621873283160286471687865273289590878814238041295874714646057523897414508555833714048139644724432127617626001434442262373740186781733855010808730842119037247434669560031376895789798562898159765360110625596553530918424730738448238659572529235369353963574702255466604258311385790237760147575046943448353191564934595339386893189240880079888316098596392252654286248652920515942733872914903349422412870129142136235171563899307089764774023377537267247866367594294561319413235918166557135564306485610743304757064357184421707709800910965034300768489917404064705875661958299754709418866913713154700136938711554325793466358888499131388703454442029263497683215968046764604256067028488728375263836710055169323714371638002843005973399180662733389885492026380276190849134703125777220361316609150728586140818203793733446967593184265599551708687232105141366755729611105084030980619335431499276033026496566474511466922341320757273219497563559175492083079168612264465385032241117946515853000172234282246036562415378479103041508219290648373152926873056241999297290131205825424320278820440057693604010435661264184543064963163734752468652275110047742336442613106835056586213989238014011327593776622163063797419583107261083228040084355545551792874349745639337342254723836375064638358213848197121774835674159686545249511885410711226392649427850643219506963735067123018689470008979634194561755419323484316886655840644578298028597435954310750607562793500281712637475067505699194439339487480211532671108113424059087551216109980307645474600356364276784377804595409291432334046032268410726675737629194225166781785195969108469085739371205715965251418307602154742337427445514791176274385298385504829884540594752924410802190106325771794892132549234951136877263530247300743935487807726423743113066171788518509234347597051840004142490978436980969555012740397625103901756678726149117465455700261702192380693794335211989121501128202196407690988848860792402243371403344145066695585054191870916403010479097623859576325753242917621662457233678466059137314241543580069967619732297962607873480853746907455856202383646487771425359083188343659448081804423405951267531970107686783884694844490403577965020265286959366251494033715563168807313867724047913007639901093028054918148062316296371882198765500796175618911615588620874481743156267003856825955019294768325016124588482010563098806256679251412978925489115644135226785706196733178395395676214485984130167366330583245770411186444920212493276189937712525405994195535697358106849647088748828117587320032708604695861816084580718275517170985906567973023186972682068169610934618703304223478046696940573971842524513624145067741392608580855645740870132825891016636926027115759555808553237667499076820088345772790387290667170562344603539913397296296944247601530765587574475586865661799712950427525846330835168808954541431319568595522528528888903345270975402354051465453342021871778937024640075119682583298595722769021052436799886176726930230735063818634642649394816837236492196775341506535285486920400248023246372034003746033142239409176404604579634787697103468073194053932056998320326084638813270344068205335477271123458669105738761923639208835089365421093631730565573506252548310001256942255750145800708883141724508790785487357993564472006053193726731546791849375800575538737030591945396963317005628122452015053263143824663111391664399624804780865136852411857450094741105030562150049007627845920976596442212270123598125107288721546133983486837969959215140920282936350566020782309962524069197392142977654351759686179141895372794667362979087330399526341079994472591776801721705890432707581288098058687782889827017786279670756979627935822992601692247984513013090713069319583064965490683713087450223545161139893502649859189552522219160883461831144560619360639784546317232643029815457816559290997458758766981605473241027949239681904036818225134020363467686867993114177935954767939358201897213226523843770047914357853857986245869296819745349986596884009167369950321855328793664771521557661229194470445335686827387649551222151210312023127526031618887088879112092742797225777864803999516744398386616218551110454948840489672063875288359850797276510075322046286036477066224383358780099449072898981335338177014333098309766392567954610255600021061869633819748794640878217831842914528728558636053665920692980615522244043053719375337216949061316988424186313384254405781432735525601519844304269288933041145920262371939456873838005369618046945076062739392933465796915334135779008438790394971965397699692429524343233074098973609266473116152256185691100689680010764695822619726224112074779465653269181284579547523681839946617125103224540798193310675707458657299757434475747721707479257132162739370565479453612320751829904607565434439003473453424755651531698473912930709158871334835887417963751300558769827236242990319133970131972059905701896854897656125603941724205426763709284601458919060351021875457544816886959079443023521268663719724316531103637761595798508839523371714861358924513545828892722233375303838138872632837205219179192434436285937653263823889916653193801953522981707470211021820714475031717715743597713840209844416312541152197358546312876144343150788160092633594764441522763287949437918233541864241914922845310855836826418607836585814263841100998575625967662241105673639892569797153858812985009125361000301641984256550798922039366829197116581028401479323982898229835341423652443437991669686502153470319277926187145659468909047166907349127975589973087280495757238062395424681079443440626835861671335696700267821673671623750779679364786546301509802299501004401459514456672971406250622461605804476196141057551038160192802712714240604725696897591900786336483601206154008386571490967584970086411582767032316727363808188085486361158400643560818201187223482310003985149586410085878686700930713987835726069959741595921734141834376057794163402107079394112144508239934994834979813096944196512353377744157758739218844042499188813371584504321769081394508470380589005528747021472928149493072162070999042095113444212691066557048302730497775783784279284404597652167980608479294505200894538716458851899841541743922959279893681970014939153377225553392966297812577862585536038079365279295038504120322644408121711622824677476489997430718067199821327674331274152708043321643864766842463395939773695284474510340102106019568248719836350549746377953942205357740022957222589698238957448714989733762985439203668188095082937569870493372962571130069017184023388039409523743033570542001503400842901100150998841350306728133612196050902055001375065903411053762309632566980499832152514733604645689742058897821432102549937555949433075047369859927190803048794363436121357910959229288909771145466080010839370606856471624644858327764660217877312623182109080546886849884457564321337281152891315716758906421267457169478841132892815690551537032518446166852976488229414897094491869436075350161242603105578261526582974050434692793334334741075315143847221340161755422650031558340684934564656051256871984384629915383550101393764006108128114531733533622219392047575019840831314701595517195476584925171789459059602251465828372497693422836198494826018123588877942373849190906674577913540322007541365809733125250362267147916034005984337275879464918248896879289723006006629264510663391056642882888154701668820381341238458932964466463977245353960355555591126204987003439570106916876101452577068037525855669830613806498943774348247888717531990066465897452303025072513330494769853222690311080603071658567588967962584079560984632077502411245000783206320771422614231156466662269916045014947690119493160763999553448326309307801154087782818735032709491601088374154277121737472345663774950095018319627835717838985691775453650278732108223977608930729727741502615248780932404055276259453796576370159355075432208275578478610743064387695286587506323783326603193238189190173079430788329232005956176129546808762497254031896606258821250343961011318298834881090971159886877119548086587573215491355342293781548715988794756545635880031712663959111293609345783702790680990618898266056559078225919887031639814547430632518966955263433207799511645161551634145728754398865135168603894708866090691434126808438603572456589162993146384838686844819040811002050356990072948674409140853466415377451662024006721974996166356818648562792036414372960923852043396074102803549851406610826175194303080431202084393718005603634801097346234355132999531923308101523492627389015047433242286157244515115011443410790593349096308179820051893414359079739365027996063515651821904643230216469525106686843510333614352870054380278088735692294857414546839836634439980693340389391576244551837065815328001146957660376815216757793532005073226935292472274348570912144881486951825845145105206019838816188577531187008097781739078485943338019854346481041312617545612169319447602175140660553628179875422161277758567736281268479066374834780140780003092683681556833762526719914605813859728840450016782621440255052169728039932399802335153760988297269380384892441456103581053673575308162096287838548946613096265136126970019438405086469932424796198608198291314068655082395701686478524691008468917615749263243501851491476455072937064148786983080218794837386615245225071931816568903864875951630436429559738445358530861211652971861232599844244487806318528237459432192090651768687868682387216729915319789854937627465387475629452930970826799910571952464294751044881886083298238462646565260932706727220199704669078758564109355595948687333641420411610014257233020685090242643291619485486779389908110914476160968907406021945589458420373124132018571148626198269233055412116712004605416083932790618967986573988285342962468961482425946139300298748915183739203672583115207408280147379867668990189104808665266460853649800742494224430673558267607494385195296781003921366655627663008946734930067836258642255356981933805517250645156557192066053776441313628918595639524160574270666458753500223974553466396642746129478040598033150873358302356620269948127694447895466861994343029102477715534965293948648327450869937962069314326487030587730392304806712699959720061821805322654943611048324193415760640323069437113800350584172178241938065613900677103143921245816582008472294882658067172658004393345349935623446720013702714364855952635799021965705335576138048230497784882263460737623125821906650568161819024834816706621622979201507037532653437905615440241640115207475792529903167951185368781754332821287832144153460311978930632721004896808364078771383055846970994018905323797957545498847242031940240489052890530172544350170302622457171199710286446376860993375281927837885194665316713526588490411551805612256603202912658818988573232616828079701865298055338052620798504010419502332307976749803371155274347775141601232766262252208755508933409908422391284600079825203941705051250391727444412653564215588664418647035913274534946188458491472365703160067226353349652233221040973549692977155670739500752821974887799749665485471740761551837792303688848526062435136993482126039348522440553983071036420959382232294214014111597299644214864555501482131818112485886600428380341127265393086205450202045816267689495277941228507573980247983660126544486545518661613868422420571665621705242911897082632774799477790451123407948213911224786315149062702071297479655841943395890439716515226062362753209136522811113458214091599234300814086394463185804629897579060083730213691986138305796010911003278794636447925517437721580893771620702775972628105380630144368683968853177445664963126978234723236942915102564947348129151331425782905808397660188905626250862728710748768322915079803202764586512916071819448265594861361993410134509491443742127511511209817740897227430343200154676676810900814341099809138519364246709721408243265985836890211955760285823215674377044632915251564867293043243731059813646547623629981086672159608765700682460639946303831109296124349816801418517623070794294854495325258527053938548211352232566040345336155852336300498530794546496120939298781069968661714979349169450236512461743937131833140802057181107292710377667302321471651114588710256375602489335305819237870500748505058657055087123713730126324960789118128561770681826482270481502365870523626653119360193382392933164287261763225870456856099172753470649693270582435957422451477236296702606189325006904612299687669694047152283928336275887230344541770633172907356815577877835417490521967734971815939640734518839247916689718172638786490325191336145418893257603728754699042680114614774935094768353747610012829554344672086104864277705841176240734124028616316959326715236035509166383438907357508523138278327881046702078074549254491980428655135852619632679925132361677499253631760966316230646019524887284986563875145625123012915910919019690710317589608343344452726856437173390914909744504053192394679213583714009911267788030003566276251131187489045494277972807080152165996641785695275911218550029217718776767982556057191601608256495782023996362078257601878100338251408871306151750796656227163649518411481573732937505917086080107023496630157439323843738676599248135325926263922088984291650787953225760310361056299360200050419508238090858596739291869826797761143006652184496339446601887535701264804757339380849398704938043539739413814901655752002419910272706725249181997926741902383156164277773372843749998697662718603603163257079707021409220693031910947390787769684220915016108631019655597906738605772093158869370881253651476891493302130823713134646455582671827177149785089391446198826630089503105510909076793961247417505841874815711843926155645543316805821941004400552188042706798693288157358653713078955277054199375061178797295440912510327294357405736449668787916682980402910193593457734418379071779378116949384249865166587562148729479833231617574167866614826840786119765841977136091353242529970364477866017407049075835616809646778178003077714836256846685749674359405396694436313050260361405726057046828826030696844500950670394633172969240451626353716777903105816109742043795235316266662294834053879150628005352097842932576543871556079205834988920579339675066677587179676825314927730786146210907139950911816477322292309429419924443617817233593601205227577305561511046128946986598201137272479528926734793781411802222235470428767339222761869787495738249916370797349009232553600714843163898506786020846323992536986529394079289607496772219043385800681137561857474785343720157903209828561381596396698508329840220646342175227232150560934103885439053657630672978511528349928528313868929026116953852355903888795982871640552442408969054666779352647222756478366040289684488765823901790028015051710417441514842568926718283207789009311148850017016495477726749063829815972683026876942776848215519155837873176039015076542159728526006588917695024497908738028401403951948500494187332394419139078368534367081495070281159336075601254511942830225347634533796605886513153335141569251527098494404985424487507883571405961111543253489502764989432416651445897406234432002201742614875685603653869295382845785343559613582736521883436805849811966185037785567211096739412764728784367852808584233020109653705532724392926277474524370355550988891887186188088753552983700193022485240543900012962468763748462425305588047268350551194099199415994157867919882069619129992362731235419992334439761103761766911475705853199522321020336452288630248764524319836537103438844282401936596929394876458487260735878583668877830598288274571920823400764952861191838410712750517194427934072765438171139934820477810757235644717018351414990808359077505059108726778176323198478251502734423427444664573419485215480659138066326630139634249725737436560027984977129605264564933274003466523286232535799241980846150374534634577280141348328815896060172191288237256039865984406245489680284659957948972007456985344675625971375776046240338181008755495866958443578551891079880304529215550954486725418179730684081450608333483234552010839450831071500684399129454990799732678335658707726166641239548344438941275708413656985112179249105515330997611982286264356193239347470304530707048060683530146010504056857257624864194373135799528380299760382374532182864765523986339017952146783505218761944258672264065223019257967418185126093253857525338572546921321348260969392690607189425891968437788508656977172841335137043375683995657489988276183174255131383587741829544744422098155300972868207649780537868367277576012636617214123231964187057992636964732492279874557720808872700614617603103623351612841254184500634131757106713742660117988562395580822558886573854048231341697152375785856388935505451740533744166639770477533836885617278123806437736720151565705381042244297874253585899935512534957839450308856839756668188728299243530146113434190197200626961876253580445472855301561978424218506864330637608831757439861009961431363444484820241718569955558546845677056717264147113668776153315986831145152165346576498842383077718690071197683693944774118868323029065750380371316801955435109678683386086466619245379902185710174354483822371267218861002744345521416268372302041113541721778747106526935114404278926018067277173391713891577216338181885531671204513918304385032029470456590288951048860559362153988741384537244144363570742762784526452670956504909439397791762818713922012364020582637204138451977740273070539311884089560543026329911817791060345810441410362150057109298237518875909953754550297355597033863711228790284756884249581387453403735449246950365306372680100539275874189706421568732340270414239168138157337427678578153274292515432759111744003123514720048281605791119115559482157361501079474669752062993476115887866368127107070634563954454548081550485125944728746240206721583268906497687526840784700099520430388861118372832448581213153854250948816960055356436932260477636842043885696864044054341773498274316604332229346511876604088951508403640522905257131254070720700178631312679396885984983595011199650321515417962562939295397321646018776375894303347018858954081699765645819922054116146201705898278953896092092195231361615437842614856325283593526662177440246813188810833383882402262282461800263813400407305158585828347398342909417666096531761467642523566642074644161006229349920700674387897975788103932043427781304347603057885532926845881018757858401806925965983586495893818137949829740989024468914491638249220318610765764016556839208115647333439008386865664564391906785443408823198501540528136234865006403715904866955867222824893345735313495424828831350993100971781528510895026771077098144632355165794802020370606067344847248291022443614424241487897852641970971363394368063797102917527231948874035536401825376903972814850638977095071678985355907582017728595427190244296262871362659293487390619728709993674952250072878021216560040957098507905093916099797186450712261917044545110850723966035645083656372942620997955328457774781685614799963425022646888268055422867660767378079364617711206690180179393863462891189116894931502013423679937359017975409899583275161020564033113586396539344921768996087228724744361557421431520115544178347075111215482286779567759736393415353521461129145005195965327511684970628292436625358024084099493407223643413075662157151346698541572442402125533265542988452010253199987587640047522449339186021694499963259171162510473463852169999514312949354012152140377297011712640210528698375300217616683047528619485686552793249145195196436241686495296536529585653068149925103571122551520248795882909250969339316928295494661082922727780550696519866590538035331875001822197113104045187033236893227580090526223891905423210859368563030888383948817596743117506498423395174736862652138210648366417687223012270587572320772284214553208913168500277601368898374035785174009888264033444116504889754039423702627929376247897666537652858896982531209497695690887515162101764327880531870090158523157893061071623990516197138760435735930555118270950115381853839907311647568530420709779802988687275492153895738854419936687603659030552405200245188601217025978638595159874634943187413617935162790121278069625211957771974414186833056087669021341138763873453264442339673991152236965381204144315008030549954085982470399218654797321969823901911413425273557917935737441284071796329758605219612130486763265825848304701752871913772721813624889145417721218578150996964000245792845009864178976206648531328541603927230934819471531804465886258136128081098885082374622965462056439051204809892770244142315323304244661071852706997511706855865821381544376374874592885088204050914508365406511669138749565885884910754797901867594650322187463315104296714510981055830170506523511566046487114996152622069173767418496298253341932640089604720147435949612652475048474072690875873964710498911856229472036790294935811848228809679978749539590575770181924007341254575717895723099017627598916035902450348523435436368064893310197929515393959884387067837423346660669037219943568582197086220530557833696505609442375131127464784666004965587270096784290117798680820444285391970908227594982610375953311679233513282178296535339022290043394172385308559977610264856418479881369228262919283226797598234007674761874678410176143990166239308030326086934079064136264248105075613136590828126274230758216336149358418727837424167262196630343978851008277447251094707299750257058359035381287782526209491135555348452307880406279259104919761527956701097102341981618913952964748303541059370615681872851906381623108773177467834209859741060601865260210769721208654686690612303604260828261624762434725236299787198802016778753393706419795249059367685715875734774852725856623611737830710786743889583446829662091397753517035811268059345925068628686917289312388704501297846839407038507442862112856129046010136091058399092278247121786082865882562223882826485061387289338056463157547369118270085674039158289252908518433707109655606174482069614708348480463277074887341732250328903906261281039231049011249252446586730958072622935526184781426452016512627822834216815742999233086016165132231013911054601013800126440178527063984692739119923589332667716283041985536524890277790401388245625096236556110182012110781468752259109389042652350141986025269433102817471554550508682977344753857642448716357015012630626342505691924799499511791061500098948609555144091387579102214857203822905076027602030830435431052781708788873503743300424958040649621896517763016124162540935085280321887926319124165708689784556026813003687437817828980406609496240745996398867596533583131985832898578749858431730820809456263298639450823599698353171648971811209260198069713422830626210778659139789706453564197608617957772606405369579620327670794398951038452362164526373684265828362010081175200693539439509104791705297682070694151807526874197686555810297585097721016164633423699707798522130709157123261304628321886553636899281371904246622213822108662126318308257876750990542153135832098279095245951523335737952706646991516075495274733447872539992034577858636376245775870949478528604686547917424398711776086756933022285672694076667179446609802328324148767316983096564126831563389650726679434501085829574986794154634526180718787128722457554411697250361087662291710172685521613721869726844431493489592116175578537015214462255804322140063649320087434010820760186872611183755056784647887675457688857444835887453995236334948190603495327683861058291689320317651659388697870328565165703379814762367827545882853795235491485727362296304502015959512218383098168387212812987443283341691215763873527138695046636059120191903073293439910443120377243954295793578334697878570265079753032771415200240810232747121565017302842895998755220250533745189042559376486621293291145882421657400340056338220932105100616121899914274311251596599961548485384746497130647755784252509261235655898926938808494008324792315487141574639610382022060017645656665434663866192884790827082005888273864769931331728676306442754591684042537791616492590743707918933730255637844639696606015586046889099719396356822938648106223993536040308764516609746381838898535503829959590851014683963242616065416974800463405275725750908648597657616548805421942664416889118763198819300375786727174099302690630317026426451660585690898467395803772679836122929287525340682107940376702121157208065929137914928141759746191959841204090234717883452383806335632669054012011381862123319108002337399597613171028439774565128226962097421838395399078560592643659645253710445443459853176767169880359862254248937214906413421203354325272327568743116967075258403029793030500334906909068040474884352918407672855625114106468411558262996274498015050988652942412339452081826553372907266325881237753532010842036438602847531037303882800522021460976154882268476741966137172149464559790871659795814424152511708183372644177422060628214693945586245499947579950109773292553888649782934858009434466115600373863577890038082188141735662066144860197616916553919197322463570505681953459286345965366093135513001812328825166272529307025980852205205915148378196355506544643945054372150747205087668545924469666791280890523227182583212584414489199691954710842930288982358254539142298441002929505473651616261715586597391335397370560217850881656854736581161209772900062299160024735009179382685490489952202208927068295106482319553094881286376537568543443547251097742483911368987112782998822585722540720201465100300123273793902436036286591643250556330972945201788865769409018347271338587342392212652086717447597678192441052623694005567607908432403540904641293891909707357248502389972744191619888830856948872294960334916099642588973506582948256959935627269307399573396264938277974102936165204966399681050501987545854010898404227298735057296715527383106855083845705380864488184161875139320121737234600485775428825733339403982926999265557823329659584978403254338988958816776659586428464317468368118925715271250671061131802723371143729152538051378303270056143780884774578113443172481153021723848099519814724483574459284941831848073920225721624214747209223815609995374255873632293692863130055799775143441395695962852313219920070373720165441852271541932407354620699666981520701990829168501187711408301827751477762285074399403608033119931623608559412334734234700628625882431201069187044852442885087250293564200225763891443005189424528178992980128613068213050196077096267467749888943778372820049513870206449092514596773292590318746488784492972653394102814892706915567881571868910864879700941909921911578450717294031014528265347599446772086543762845473273691361839613615476199205612664910803755261749542879892130579781871819731746686486511054291995387567647971623067729377296574106747092909791795282594533538912136966286929575016678230484153692301176278326064163407083498088891807071466943947230657466609695461355447324882676662733560025290422026358976772114077976224929680153467939778100050346998067201631401364224988997246169315943898433223628555438477576458977559155751518933771154885925590489217264496073351104505638054146858210549426976981701737423101271364123548508058720262282578173000325891459910268592479355244146037551071142985586612098314598400626877543783375679317310470431704387046239703185286326568844039488126226808431278477308916906194429418175616730993514953766122628365034580772625922344991596108041188125460864865426116389849443151872104819890400649511835871522167946265072975863832808724471670212890404479732679795464897590289555914559625058241525789139313437533952562131758751220337994248661533603114560178128753102792135943163199354193000239632444893121044966144210511485502079005222096846560299836941997293206807507773308129982051694927123878807452855994447569187411738959502443595732225934874130846382820383977623676967292737357596363172841247505334817766215525275872874637806174270607734284474101661669376157757651226412276703744001570034486549026599540812375800790612707672507065695564426634829182123907531013423005176586575043136670155046749132471902149743290835497477063718065519596664133785996038788831611563182536408266977760961314166458179545349640455863800522685142857939115490088278824873288088698600389765509046016776993215313213292955967930051366825928567229223824049977263392131520442525810001026400241817841410969054331555808123000238587945804761486384572789735130612332741587398857700034877851782881899464395691688822965531706083107924883787458744954296183281229883109053460172740812857590256765826140387786838168777586569029235559041852515222089473041442196326718134640590081766699874682586728540267029292627511767575587484615929975072099987295113299818011082963373653417725334033620597724229730857233013749744730364179937414873605513369069222686989388269042375694453563462661437169454415620235039757021770410796394234964996832087924751166256719065714763524907001320713146749542440046403236002024178065357112407254822404234312274848350315717362793171530191781326964099022670316478752046341476204153068887412919183814429980101704535902828229244107763604061898198951963437771207231095214035021431792264967077642176191223963204671611097864693483572298976810527923909725644485564336914468663432142143133149245534410166486025455195654669974285334176927493587434789531318227004520340683079875727019345083578010307552861884348246584801660963655194503392519274756118979335958172835236470258338025734132586228990950364583899416863196437022436643009749574016734238142313856560815802846445097129039401896740321627776260345718009336361205069182080425162268103388755558656031870817691973763553959781014178946304193370461005755048618583399482841432852895991191932682748721038831814037872363165404274670849106494933609156885627630252777151190421032856318959629129761433439678913078566953394361390115064999468596429204701429608069324655693282918618387929843799272811075691800857507025963672157916143588926585002703757370388253533884582816409353465661427820416693030631207922154889182597927150210069121082227437247609107211201755503314167460045279161869258801904087571380943422411416774409782824487325311084453608448537880941569136016358155872530840646573801389161105203447266549900810376067781675690718063373568104973969645468035480626258905759895120606297425050525938759777093069862269217178076652926236862079675920337753658923716542401680410500685216904165270599581216538411666851825663929076805673216466553048998865100955542670547734194301679719705811480504514225703205821871983153043119833714835068343989074830126491884841745166171853721619858641701913476701024993832550426767653701169764582616920036340945135077211742033952655746719392430808428243290775867324704715712263045881420862419300679346756206804167533715262430997935633734402491321572571894519598279993579382545364765830808525534686124204125329369578448090397643690964771335054901609886729298071042435045281635975139253166473759763604665724990979100856293773527972454324548551890228222776546562007697056880109851900190142322007392954628978627907130228369582334234883968144295596482840308954819761999817496317316449502640255547611381160382504941772808835166523775997857130782725693482746710377454344029655345037747345800670805802225162714130656483162439518519267747122858337334006212233382649464308751025168836119990480948492725630011892219922901454711430686116476700510048106449527356816582016065431067871186353314847469384559382266658490489643489878407978556065762671185516950720905021603248779344307794144454050967519446909935683237992688210491626623560891020022276385742850057803561255107907818315795202189573747003170448793385346197381881040442815261242733437598766122596730243508070284471038554596598116440210685914916293656350558914903370838956199130983105313238729258936790723049789407937715016056453151603360575989172798941944950005614756155982030734462035786412387261290682446675523143362844278131163751221150959980050996706429858525738020505577428917982287108624171768059213269150224968604878246428495087970978344370586909824740575265849108344965767758044746425374982248875532449616774198298895893173214670803064474790789861086682029901659872200707899895315319536872622508425837235316583892942284533487135462081351460790419725516332890138542723647697807479867692649384531974597050782019982265595193062719681991912424069056309121868884099188634574604368231473213311916137737066217288419302083672909485369205609619881565760524189578880741881979606596002853753669046883398619992032467264664107513950630721752072042549593898334884129612190278640469764396901359477141665789602055903671509416672519799295331270033232315859189004825561509152548722723029258537606597236346345597198243394311653857962645515974471912787484131482246546628054079627929667773416418972974424144331811654340956768924862926749829975028959417723215222905862411065658603821427010988533052823467321945001090582506194533634995136248359393033176655743763861891400198174321629068274992745077280237661725400195789363740764973460238381701294298438289344349376823177065894960046735064023499321263169900796266157770660860746723596427119069115868498350441190141169251889662251769247938039845334408799804269756997491384237159815116766561209757109919885673121390869333075253865586565373806273977598263867319629028875669323465739835521304843895153522087993887057048379923916476414274059939599168202875308282767676325835015561840882360224312760257440383593190306193791499490321976073640559668074173858750381426994707042258921285665556869891058908378053486845497988364259518628068307986948430189827253755772988995359654017742352208409929395718353413718136013109800131070484611871666626511681409106248621491226357679233224384798974353190084881204300978696652995463024289088354017660054693127127812577252242851240079148331134649476855372772494089519331869482942554055567323479510782720073614191052741668288801939814640141805007285920479898999729334880652217433596244031395333464711675755628189213128334378879546403429887738424618809150476881764598723714543372818924887257563067850241811954897072003197009565299191814519300160310466794772000502810228341514533956613449132028842285391906792864702128314478158343406048118854584588201680689381721179510343720840390655352073794829199100464150906789526734090553612485004078837345416926692407045262525716604327073081971340709025838503569624687828093898883031032326683708056709368229151338565966252826848616473440979551477809034719517973406813636532473613862084730014188080643185522474205454858369682743478024415144110233719208496535977264111121424366344170206202316548767645091605130914463585320008044673281032903811995244507852227343273467156788422525000187501366384758436632217871378009215921087469098993049884513502199697708272560946330422098524309920033901182289564625967358267947312889720255964255221731617884929490761713285517156519511067958787808875359423346972476779084768088260674186932633377121453918548049939361883007300022451934610108818684682070772710405259583547919977692336647504163331528414057845985845307509747820065480143766462730629268422454642800126540373802869897029039701529047543658557329728360275008529845662221685468441068536910308458198830127279118219598327007211581899317949270938773218780718772156902153894717443933317106326531272031095506748227989323637578027092379996866831930550265957874784503420813033624174015642034231358164567142540055574246997702681267008729869643584536502656881743336632078206772086692597215009477407889763790712462258607358190359767528589076374412571391785466343659278875971034744393175921517073119735683266168270300429048398666547663428714311044299917676427088591977274753146325774205046347154403823021428458837999497177578328962709761362122471923502111669609117777528325959371855461568315478890344777458771417122800427772367592417993504358094821674775823624913539781017089657418553559333394326645371163638319825887219318944690713218027900044433873300936166339672840487059899015743826257250051667025669998163149151147323016599691668932372763222030670719474240865104227522835022809429550440153365222396395679708354725500822326048001523029543396331020907294831072380088162482077872791097281327821359834702461135173387826982774733354472652874783963523752886141912726904938733234554761286248787458471401212694578048969103857299433534230644538687847877012626562733214664154195860764258714427660839388082849916086857750075581067481938178216069684997263227873516752442229682350830610940798196259475274949762445635720239054118305700142375255904791792269420049547182213953364764206092777742728298650448915452731018826949414134127855510800980845283976035949736794200149501812262767315744661176053497227668358740184618730235045146332906807771776865038824134597859081280201958010715505256376541647692811371113438479638228183585189178587129403733496207972156914556522195359124332809305980290252658828408314657937778431301537971982698799972341382706224352646837510769673579237735828177382143283854498289400746198144352079135456908045188117161948124351070144998810506263120655357919359146203536182233147713273784228832821755860038092361479978612837515115917840054464525290640830328972653559808765344414656776343401317601598489253132232154427077732653487451142899048546351656693738146227380021760538938630127900093840481389909385419427868573722181587751738252126754476744950796344000792478861630147169887253037550785514873304657303187660013296174751194374634274870253322824424067265160611050440201068563162438041957825827319400136979121441633194560614001013883660276891763837943878325851375701048397156879669480605702789015712948569006834237210746508147918593588247277026063184378470808636554300345777401768355192659591113703962824516482852043923445827214542491988501076020299504243387528968523791382012094781200122675733532926059402827703097660814410159323219934463298551017773338921051138756031784091739459367210132432872399820380111109648394576478855776827227137168002695457222997934748747091608964876834984536050490567873884215005468539536094280722978598538767899060617832365310260787689979828895228191307683554079622987827040574686128893781804456400290086101989973447798546111874988115424125693975951097001090421621605580976673989750759080185418516211601008212113464005303784504957606107887034476237385631534802166280795108138958832135466107043155391993409589665230509199936215110506760831685439587947750322061156898970200152881301961054179912683524844018390364819693518697679361997323422870197388468950199711600701182331776339355076174740764386911474033595848444751520869572400006600819795019440122964389015297334660994321286012131434391272663348346372080148211447588976145104079469726109368316541554620167950089953721476437273395848403023495807093615220728060930678385268324722007435059624180640238203785491274724991002100883539992563241087068032511692308310630986723269211238834759897039425261946279573565905021436493897697322777741504473785844517095804011483268998754405545849831616152085171813140694773990776147409659002611917562390688445966757984116739071316200139469062437816596232917389078203275872754774934086161762386593234114419629189616202852138092847767035027630117885352112940944458015800016871767387781301213177207577425884758686457629252933576297882676627381349032384914507588747430770381791803093514208828210938518305966085132940983928162750290641294257759891257960623706966101412380859530214030430054492656494868220249687559626803709757572485586650258156898932365766231096448304115097427963722346347808337850732491256066383879153591025488041122630159948254092713925951506109823658702642555808102505097195063041823196428700149622992772460200486766381999171589662870734161161140441856441482237328101546923119229148939543781303207597906525673260465438881875599288841789720966400471591177202120160242583859600069522276626618859918132607227816306164254204547287860216555484172671322348260977422864896510111766787871473835574396856033872776864787790263186998545841381993617254301551410188923863203178608081144962283239871132391652062653328689111420455441400255626633481814017399145993265334935801762778183525226111212653591253233072930794609883437063791358320973861040496714173965611603615372658879582806315187473625220914966000670977860895406672274910499530665091015432461961563657684040469312204152358002183608295600856321769180553168592294372281014982355963439822479914885321070995893321322565173409678511862451899644948446998893931511252630123681986879621239431177486653552065599972390802413472151649943145818801385011409521515560535543276041595224523235582816905149664277019492513360549768246986187136186716561881152969170120016556900720858701070317333548545832478255750440078387737522804313025846690442274619024983658158471507249949826532501327308807858831368868859474037827785896425611686833297018207602286121342854701757576480475939154956451443178081507879039599417191931334023317629712448519753733509587880768956194087382059550940564298120868135646866449360256849813768076322407044549261887363974689746965398591116277776616433650267114840268927739754441244974912427748863098906857256003753158661961001541224972292275628986787028316926405734303546562107341915731826092835780439474097726641164814352805546173024072461000799164079008227384593278124780837519546194317360569901511745863718885616084425376529949998060667196182372399794360211829141184679992023631779066322146412068831261836878438399253695751957938626666959123254263684039501880014241878548605218003737983116868386659326525723870844276759176061795930704265406812963959232922916883491132178376687197067658843474422443543797884924237584797250472596113175849436725230457542410126335777121894683502766072312199549108681155854499062910799896587494580110690859660386076782355331480727718780649069409474026780507433041198110931120701705612123598640176435830557090110288426126544756134102862744189510898122023065169945490051539778627639841225396138515628692297117990023725656136320798503262719961175445416484229348986335601923301125547094427045684627373552422360139173814385290488398427925399078185340657634007610564021463175826327922728050522400665472635539519873840382558297992743750950767434586312485182746326742832636905288790511407458487309839939710065537820088870428054131108634015749976385704882911170395140003888725687100670148987760211542587324924305229416470722189397728829412033645735980350267451069176565617274728560227496012685234814866670705174463243718462479784448122059761638145085029558179172151201387502736317247474812066802222380185415789509931562374582543198073175737023821097353905714374895287337939353484702115598023344137339566105211175338008168374390517865283789472729916939121340219827050474214499727627763544478403389161442330304904877146232097682229108988795323032688287169915487955738078651850900213555844363073110792158811000833165439787783679875045104226347179798440033340335664531437362969714441777791389703988829989091295441564930860423246976817754829390911254982401087776224056894418948740158031395559074454544781126492678725533510744612567749154218568959090776360747665698187725064991042028965510304404967533456626132692671596340041841462645960699558735636151474045654567697439851789144045341341971151718167769706741262811544957657942127657364215059934578991547504668060600938568953853301612903864834936495048947967414381022815625002242436182398178043852306990819353870500111781244164064926245562487117059669007497366461737033818590914673403817394770683579996741654657667761077673562482556858742074497227065734802195270496511642595754632312719707763104085119397972614770938175376129371559771084765238243959550461992169961177169152395188843876245121320082318225353268767107972798373071378883661286272711801267117000913827946138185405766163052965855864358351432477256082082927097501881285829129912857480701768992901449060916078521242141902742488401964006937069732450910315415841683489970007264016246103480920300624215484499791703972848743812091254977481831543582208405661587628216505074549369567982513899569276565823243220127805744439401396298263817607384831675187819002893943463414849134802778961480144214634523944750246641344940788352940440209507964602019218448246861760840285660385942917248625270470531909668871577053438802091426050614912839854259544899842352765779354424065651239233141675877520605930167520873751775970406050855451538990860759950115314911850500314933663456786784014763890567403009670260365198504264630796254727240582152853106530691118428883319585239243032427967363485516593718874566849251944864803887394281511283049598644445097343425606523211863548393509374854206954724617298263497534645685652262226249994719427924617872328362157916504063797803329689276664299681027871933750101233951577210600127709488693718802040485300487313161984092814133153458105263953668158936989873034997641641147019646850974773488120515348305271576773885741507428177457388604960399492863519688968651221226543577118560874108976372638290257119363434093061155156118001145378477004181309723378520621458407398263771541921440363566961974903401252841303195107502635485338317382589143463070689629526633293155578298416619437887773496011118044023030228826023670524802001233506672232295092927100589696840974211807363575006367393738491586602257405284198882882110896411138470964253025869724897583223369466945739342374848624320895645692145847706867153411326997830326591511011727974114580638545475695003702615596345198051670258237671643529651417743199059158866570481773353126956449287997933038959949047847227014911282432840417764139702250375937120751430043723461080662046469295964846511642901271630284491434877041791922175598924142731129216523742087768036481308524280225420814411276643344553523229333969934613985433716282398491096854563674643897811322042622657504627431998669276907498430259705648230893820783527001789229674498044472106316288425277372395349015252202053793383882482104239970602843819570818010944694813842439093790762495118820949485727627326076271943207839542200835690163966289855899980967399958841021038414676651463630692075961567372279230109014161984721980837316650259766477978136853380971525366514906947008360394676224632177097247840647407968511233622898533601405284258400901786953089292481710706632259520549115173626998346597184020825435418005386590334641706956877840091765368276917599598073257992205000217170509149270712878579647275596963526702342252265129979440095158330198534915147250117011555170841680956963216030077883402122624161908025158566922248766957747450378909629563066565060686165311976938404845481200630905404343207583141188912257585525587186375459093890508347754490972310003698457409620816449738947624478421577823375720915493082228569658099247311745732566144448197405170666618680799868642713103267478472617003051702151109560669061916944622092309463107281491562712148253336295293721956338640811339471281767071909639731801411932027941103733816472198928111425001419445512713198698917453020052206275050329592940601961897395058107933920087530890590321822441251163620710287782400998774243203451592707526092061057412832556115293945635603095028658915935511539866288711433796607038817117237734185664224114270349317802753165022518016876647968922392096332199323175442488739137706254137895648841730297022334004764009535807072337810627263350953739789410591799440905909606089902884240575850667089862775099037825134338778008071353107015117428788962876944626142245666698891266098068342323813237617197005893658893531923652152770151021384283572206450582084583996440335116874366830530159197432559854774560813045015043048502909178038153114037033421841418492659661692610508297491679876410877165487936127246317385197175306573979700469686527270282970264179664467094984733094830514531224961370806657257354244883914324417538752097554472641813925105751423886952597116550295192521588092222556509008750215566699015190334354910638754422839279840003808589541940913188338817510240137902854587694813770082695574559272374948964017071409420637472527299819628026672004777665640987480171124661425375074978699350050557088699802076431043668608451159375616923381902618423925387315576599753957892506559769080376681099726071369786875468042841966702069197592965523018377300632881084992355997640270836658569730492004509103711734473510660715997428995090190411840247584624598848842970278710348589632606715682751162390694511164118894277930789571166553748952419026633273372274846749809602023477685738069457492921548579046982188968555867054827874819876518870592717209636383576238546192359208155647449849995016709161059298729757674823843260768221118588229717073058615380093787030169448956937393194857322550102807905826215526510884685118459259523136187497850934103710459372162378668395826499263505633436633486075187501518524389424342681157373309207531469740689107074475753305045361322268726001165143325208909176909225942807260311888888712643929446032313905456112227670244301977027017874222858631775651795244441625161368929193379198095014122622800083653688994145963443509322184650108186568328414100892041811818877955846072172823956494806335165422157989619202520832873336683930993580767572489646029613869039026433231366417063887113593596385071111991134990088792504709104892030687016859110631292760229489854446239563111563416573721620783689408175877823201889531127444691033575958238627540153306544737831245264420101822644562875713852476856389502161200903820143692373449568299168950580975629919689747196425114423818577642658219039356921499276771708477122625722218250474231673530902203286775896994351505639277185438008778175574971013244105606545180101395042354543203386264751726318457995448572928876462030967426643158358852480701379566240835507688388057611842801582659106475394014111149161710401110466929269398038855342279680297339067757627491183572307557212102642831291065289257237074805012460008697327297876835711401860416632718483493370731639503781388894364654432300052863964554864059436347690788421142857657782392964468239336500450176511049062458248346666171738494338565317052527114840963804061589734642218414404062242691402091405328235356955740451787709802783137724656763312373555431312736887851199571654119085722068103489522405422267517560828378976346073556014855197363482865486856089814529630243211067566920540336490783549472726052277299770687303797737662848220408964186572145138296435393179128769821392553415016358735756768241447542304048856427071969750687606325448718517308686562501054330098927600159433810709152687183464407409402956265322497654808231087938469537409083057267285924928746067174080146719729427282763579915711336605586997272811849023598126353342512595268496538293430247605772023388849555967548977581018078869238671380269887873707431917078974637690144762040237196411543409733838343191372155287765361500024781201312317347476423351691577524948352619352405366467855826600713496132613613423428430288411378991264185005631584975347862494125275261726133179566602861223757493184019768630066921151685005668009507584409309067997423880277340201524352291382229909024595590729136787011892121074376443438226389479947574865602991150615180201601803142471685097687836291716546410434668241143114981502505584676004116676672784301597144004608168323768521862735499319923623906970555267143020556504425345768029835462602964299647679615814149501035268438038103522480813881078705853297687242531337878241315314695365479819941838780547070036539536783616957918054700613281247254799156152999585480312273039007127618853042960754158012268599007177212413538076075849601827090233457291651965046132479110960594151536476470759985695777724032113553641309218310780301988377675512964626684325169008179567176804518376095018924920310797256093381773883490267328593324105567812686911396915734620651024862307387611712117356450447900726132843128814025467376089491035772487879279232551527482171595874067372387321407395512887176220266375447017292785493410758282313674771642439092386085898270261170153476135034901829673713752954831486911538578191804055003231008957506170772133293189958972157358084898173547494774109951706172991344912231287911859572934250533280778393860388830475439695341718532605669798434829471816322295482586617873088352994199131826436882770395992502820602193902782782803247682180823409131729249304111202819504554735011565698684633473761006623238633225345002207290577002393779186896166345957125747577545092642703050439309408780669399055220122877838077245486567774599456322195557978186233498311767389444912384523473171487486719562744964993013182294487878162085435997333099208148583332561714136421406310505711658410421277444402872856836786267986911361422100717352190143796375476205250105229200528438906865845276069070274651567753502345944917809465310440012541597844175385305590457193322277086821461441122243509486300082693324552729394085868595527636942359082210138633001905704113721646857288065408783395467188283573544491467831915254045351980504546821398088798318153171488290935207671611942136863293598192256274440111544163351155877448172087259755067769770161668735501630351671460683256111416145355729262863705490819720271556386049678326645779930869533829316319139252254944908108541828477706625412152611403050332486840203742546729744930520841234961293122798551499545788214023881008160372290841845736016698840227598297676489592483061733004144873677029253154121016838295753803284942901098464680641017421291501140004636150589691063630565734425151366817261786695695912123580979521201167738327801455200442205886153651319435490626295675825139670037583516336416310946258237902509275514134492458735168655428159968405519898851358640040982074541111485947823068011325358977028584853751177404976033879408139426244747485760758383581486526475999680250629057148856710557743858958244900392684621458818632722880237025884545539988152595061986065500643515526331336636843859071347864408165855224597267586796596165190953118960126885997328584354424238364567915362448368815052399119498056135053150747339623411499108971170946650244926076458405562804953392771915460105307497983418370746572630009252522571516665181399546617969401890979526563841235746131416571830717202350903119407621079351332865544902087268492773059713536276201707880148696741874145941456829339127818582919193122185273575227829213963178882367800449612319436112115861467469891594562567379397552960934513947308068821382720506648720474920736685233877015857598490790495906126219835052741463128341941884109440571169148728350524630815008519767551773249062363600666105576302164924365338585141532360359149104308315127894627333938094393805725674693975033426920869444428666376180860246677935751640687823018924049919612514682716540259380812376447790916571284798288343070093249600042017103966542223977271643286110060124255442178157654516068266444910955883209894529874464225513631591444116520796863604441056162340702031697694349364531244307131172956128831633676848293408709287807715599365000097398223150949802629181311289684714945606904441518101340869644328342998034294568119481983306610910771858144593375952412879600378721347420732394118361305035243865546369677565849685299386503363334266345689605088618437534245821901454014582588218876594927245434953529801339143228961101521986544107295430016399114479626376673147599187336971241221610912635906709814116099347212907948504818199870861410957524482449183645955086917089195811420955237319491645349189657917843901489008658729505504540323280028716601053285326250379563378202203739955386083100936472993267998293356264329903576755528011520539512578977452437259463923881155699380782233699895244715617994847735541050719948737450029773451670201460158968765806314773864553525344168082781911338951528238556518684572216190897291640514765997757370381748893522671073665277691814880890161997183384684800488166062057113659241057065930772471701217789714035761670448106314500202758765308175601915776973420598013640882354010348486119623005463427944808061588252510579267663883173324914497425004200448540490784096462703533058107525939483889169855038270026158020487738165967435799636589397647380976767082195631725314080987289952665190825635979106347017007911861805559582172492954866181880756986595193173534995200733871483260314257828084818332570486014583440924636472133850053457203670799112131474075689741359821616067053281544508357123851142284868136348513988109790300362225691752665503853153425925564101239302942201203040531184870798853651157762099183149560905996635008018938362745446634989617428866490972934260802004130895562088771535748425430948776847120940930110999302647508376142040987146712395326148098637203293756717793203338604935718226581404149028636617924030323870050122955307112383013241723236968499741740017574774956412401789245383265112505179452916533516079490109626672662205009663902586061974815930033849316477124058832071187592280159626769912721872987424091563810554251495768852454061971410511708992319530832372145659728022480729800436699249581007430456099573473910712329877818980877758562672730590261113335386372808707719766600953637137489691233567650364358409655699109756864203748753984385229719301495568700875381451813158616719596927004520343714696886331867631836324441527142279670954035725223482771939287453799421408720218794470603376984118370132990168738737493634612055096720596714355036053694018027945312391759960301508709910543434310191964658301110270644639506909873886774178789793208879576681895169805039064105120739753114353741991081745271027117163981326249345417749975417757018225396726318351844534644687059602460089923968209987318865732112200965522012112273984769399715344527426303543085921308757483227308768542348507546525086979240904939265759554897884403097763569500224705444788119461742274496505846611109507885431707967823403785066775887281302872296579712523051513391293251625520176815403340547438853290112657188269105693861911195494556351951861417558275819955127214220994930208873094019341807994661242728189101872299054585274054632140672963937219806594944561456843088324297813954496747566928375466263002994635067331809720269255206736710235562679606160176877736831734183584092849317521475527678280700361601573563686083593352494723102070728449003763344176950375268184516649982728525930969516807624675078096128959218124595777782281927274715256521238759157950446647262381689387370647500992903833147392136153959606814808552620607743722663403090458492957342324040127164599267710741509840014476202626138498808278536138371320697627081631835461921733956137407417127303810691926724330554217228487676140230173082622002696165809530818648539684776600919787399176596973402464071087097886162104787494537354680559072123364782156067992370007024721793004573836518058166078548659061826501635262795060841643922975230697579763236195572344050889288210365528805550775060893509857223358116325284143139588806643688006426693054666925669934566253308195998568785243814557924673008702553382330117818790282414798258808860365550078997147716386245515440861013958562320044225759738136187592158133564859892968681554854451952467052770354303656593628811376331075634923720587972289119167811581886402421441626838237993065464090535928280113092687490759029680205014620603564424337108620938645789897673075931814972259912854064355297102054187071053005923846137677349561155280423786075157944751952091892144863055040853640758952572987912870904186460078590234600292301358394035012784699880626756129092419679588780237460189232432179453397169698271752338456226101764074645432738850428907481625020972941294859838224609194170209623430588337541672288743600818996646390187979610255869712198451453044023481303309466706307301441751416723184034037899121319146315361305503977870809605549902333258829411066588718757848933583868603259148834376227524022169542053716809264902078996993970268896556096174440471936299209105316780039166816855267098310399269907818013645193941298110905576888241153981962257018722990500420775544529169427530403644196878510645465075212568101253270212855895452469827760002985793460699377864145258144438337028612751443527004377320490178660252984368626369985565878934405322496099485574346734575785831513533872060445847618016309861301886626172730158011067919933665034653759788977609145329618146452879224558240433356151885393281587157286506973290605072392217861638883063589119421160023134159957523856311939570087011209728440862141851925650165949401623009675438481301735421470040903552330535688798520779443504930929370467432851720920670361017469520811749030836782618451197555187584998581532979021757859633326151982283675832817192194636944095172376727513501190519004814356618366546388306536613925472765502759664620065117478259149834250424894520091648480879530914240371943779389198193022017145623465347867865668797099414330262487317100446067055733284272947528057720994955931836278499891850952712023240766075431668726450841860989925298990059934837393220358595584258974741283684424315736145587779366177958155272545831440979096911877219974444210473648042525688388241759531814848114731070649953354283902999291473786475435104878316098464995209523233414366151605513699968099718908103039577802860833183556051225615558326082628050436129946373476852544444645070660854392180293973897922225045821456694076734124730078800179473332295390678983906445856877106757789768704360294944463387321486628158692626538743726193609101843596762218556428503668353489994450139584110984422980896459870495415188861238670014735435313148775215015883945676903814552445288796765284908295689095753168262308759673336320569900718572889336237918374264937837511810147796140761634572055437703712802059324812868494483247789105235751531529871261084718990669185868198857659240699362309311016021179303533162393875973520211073279906867095356915168531771861759168529380632809446191894935471560679181455513377455480714449382447426209733986965177766224332777304337136938960493732397540120586239951679433545034838148484524640977933826118054713475817501452193457375687030713340145267142427543890862425155094713360796225874455042285306380158574293292409481736541951099394054924537103422449342263688748612600918046928539087829634882970211835134950846317264215000540186818058691245439978239608723889092659874979461485881971033733338311051365899974850471172950060576665153963571638028691289219990105777447790307030797685435941458880097657156914769751670920786392858246624058642892398243727905910976142159887830254276919268598345176487784121176502636447566109893605129106246381400689560147674740275664953318958646907986131211603785014905139673882288639355642677741681108550852655632348663729438649544904977621679194020582742732049744243754351425105013839866269510825631433878885882848680127356879815881937678854467836056847401237228765469267439170342553255386423112800650830144325852635533770950665807247682468950435059834980248692737989664184355244850253711856483616147489591166011938977427854237654069421436843851272502516673310555642175741969679866867963568254040841217732680052708801561127673659620754254576813608381234979887174403770633867956863166848751916799790031445039326447642882568185335724950632276440345004461194020431977253968674704513084011361458139230104996093286754489416292218132313658967324562204814273797971317920672499516087944921928312569941318404968603511561590951654758614326442851180650649593816833807943259841659542946686185369374127911658600129999078700531777180267498124209254920582284375294299922382192604775924622270071747072597496398027476912220618844234444663918388434540479613929770690520832589712064308393776073159995664089712731231854220648580393320461879755544120387560611761242718873705452649439424972280914216343739541341923333201805637738168439501123310936491784688522345402680038291863158601005991897408639205309135718187448115974393056118325448049534910530633388551100772995424805105338439646076996683342490432325508494279598601831864841683259342985018893072886238788731061748098090393792865616458016695507147443789915589331755110055952161635215891961575727502497482155639643898366495241382192672434723249044409102377270163955274136719914830753794550626243288033735129940464355909583967970175551929913311558943053269123621560373496716231841094614171064358068482120732257098919687232866065080837749453024142797559889309568630204527328167580539803918347938586297072227495663628423105520548021349009946349446526484814849755153982203020878573416818728989846975795507703043077331646304475735278297565056482208057330813199090450905678979847456519226185139521875774839320890168572786611031619665696396945418542027490402333350868503428788977518062283796534895111286392992540543900360288730645446270605966421464364720946761200434828833393762231176612451174450830504294451712647254999615370106049483110158513168311653670137082666258586496333745353940247620499255744908823014722712480492176153001705085846698313542683950210814414484891621303808352102711238788720726096160609414364624940393981915290259968019615329603566591817545008395920054209183265949004902842519431005615406392415790674742627955983459885166912736789423572515785438126296497200624661794792921512066184158199599455781769495055979363804907918850166225460577490165013345615662145030462037175719228856166476654523733759873268071607115740997564820385501568445420543347234323495570551207830650372119479652831862985021316054348454630615689378694405421798999121248135634732206254728462263005741513505113827189627246456779779633226789227451287213181504432203731178992064732407130558689865320847600417117319609355378279526484463504827227622813627162799809802599358303287084670695421073954118555335608846329911745334715446625235662852981521114119134074745089735761826820107615620773109249488183186532149620036254368720868349579684598885931393491281015058065271430587821638720369482517677838172827722393882171920565567962079939516729195897789202894131009033238611119747597143771805040005488420750490480992516287794717749595613028325404085755415164350849959108942142003674271977994760571589185653634139095629208747175021901180062710114155723887862569359525539448480423818459451594347474939873090811956438515230308483632389469217335708235921044568732311122956604489255570748117128650518093185401956566207983886559552018699411689119958936900174652194060101863011891176102682785698793655272222653330829250683497387404190636879709617092366130343811725320760840008717594878873089956122601771954064030777980195838881471801763384455827512814291004174086605830225079880419224018013943812000110855150379780074006124377240998419517358220565015326738596108893544075914670018126508945024086507116968133026429852978857978547049315075080998150860877411269385010839846371014305849392142802929705040784428725383246753865780877897472328787919725439633938366888906781393617315832585525558402772880870621742768293173469628434190133327722733442909635762493658219933120778970764619866307865491694047402313306508313048146685275549793881986224261815373273445278101155857383393681152197026389388719783911629826173771674942351018757980558322653480309121952903746307234817994724138818951472487280723842652155201684313870811524748276229953515382407126474099273537055337142377084182256298178769659458832390592782112662623844865175619898040236334048254765348355693601343892761299272826548508617974583506955599006319650081148016979615285449775269729722789232304435188858311135524569090486184422952267165792414279058835703692959113515035966886729773191022391607381773263210480880796608787929092521787437137493246706614752273291527151111883475972975835504611565865695945604275597969452502697221975930794367993337272319594544056458738894116485056145360975570584779962074171114041767952150895573023939765125911504281286060465574324014243679894864481964644134452275945321497395918677510141906974818267782691328696982065796544125494875790857293216271270168106870028805233937637548686245565774958255612203309175437054307991320376906693434080972029619464246868013008863803758606622686968830962877285918990553657661659141002297973223548944685502708456000886565182727723543667712010135028242685571067133075694788305719179271191721180185722738356149711523758089998631867564304525417432146178914728333266692871769688944549144997638411983121685820804117447657043124834344624695135195200960401069214865724786562263917197988272947695160249304123089802855197763271643234588021226755866319994735698784208756074674695904977783371815636494351162174226366785214981795013397400987181061897218026916439822847036204738198826981922843232556402174835963543667047927839353118383046944144510329689444591895470688823642757156858704522500385047539806143512984602600713559831433540955848006050780518423246497633076900989484167890618675117036598661360947601644196997494078796975867195708810921092316566938248349194211375677154555473372329191655982410147519771708183690220742714211938624526236570397054941595190535206704741529489235621823353198316077407355626788494915695170695296920831932542594872207575450547150363430547110257710643769156751112281976218463248662036993472862378937044703705672382961007706094161584023597770614284342200655781505335477744613035343423151760366697037305762982292607627749189552152275257165267145369885990422254003415171773596092862597790323182885169021881525113941685633222961893733912069260351826135902776981409524787210618397365444938611837528619522314774975338529668776347625950980785334423612192943334729707822953130063882660003376223668790412346671088403807442417055006421901204967400801258818486978848728473025318791444676020451224404318377735944065174609830602400703606163842066836382471738093960841422694564217955100823514942226803285998173102672645951816619267689452272345165754294290430870508469548201031118893021550964118685132956459026186452409297678327435792158081112794750704478846133406619197417710821961638189636673636381139995870009611251429356738257629186563145231216699017216141884699263813232247946316175362264942724240716960813258692306745030373820090943517317527138654082463045267205161753727911564211839068376790393289056654968567354062249680226592357288829945551296384439926155602855278997288132452078337853653534506668647485868409931006378347766056824552343374377825139405492902878319601534953710358242859980011098015200594871882641752540850535615231140249819893355458316908667394307429314776070675446147560353760732997806117554503740028616027043194815378644439937662082325172524476020535743948391520419137812949870280438442605763629308090067453886071111079170558072461689151335442650579200647893354794920288122949232698688794887146215916891873916230564456023026718932217884577165295005659602808416354601737717749419297618927160797049922054336493777456676754696683306413080525498299195822529042653964507896143238537409694994500184348011195195239756686195296224889018175173736893993410420983442298354504298228077218573806291650245035685133065586963012437674884443313074436104903056392144597387142802057112052457962264542620429185503485579580372497684447919488123342620842450882767488288720944349572813991949572967577919639777611720298060718505378195944417899015414896588797077126950789673825361212191528145045351555664579007085095681490613339722425666204518769908757804657547278540406708080501734401457043775486966837883574765336534788035817936919327450972734097647135849076533534134216748749078290599712952401066106803072062696012769691166665391002136346148449753216575080789866093616211393801753560490418268648795800506566998030641165583614917779706427580563412435854332073889471933787649155106044900972828201365605373559812626260878814869556480740061365874367315078572718346023974536550289786315847920109840215948436134793045416275397937230721020239974937951351015932312418532853546449647923079178817738027372452002129846683742242478855663652678174442449846331237434703001880967082560233922688023307878679930650774807320231036642173150626099060686452865433118098918197235092551639058172683125001706894985808559502607079194492718929206794797303571644980711076778509824791329511458231727418623310362823624676987692327318472965502369713909742078597669311791235701838652262890355881461053024608074599734678408783138476478508413005223205695032018047428091147444830249646239619899951860015208834907509529103576927986961754372822684614812387818139799622324007168402281123343358362661110845562859803908384875154739164142969392532098153925919396844707084630739531336584042176474286817852225971127769319430500452971145914883408341747339891735455580577052460595160825318338070113636119591858942269947599524536003125617655602257254887025235412388426225658898390976628518606518396255977358407061877557739467385094108177484168370650605343849190379538047820401485277567018819565275990543787289344563001975550398409855305517122528245650630120660963441304236969434857127321373288115935015810529627665711525077821717966296233117338273122378306428333104829469080820708009927680750330886406095823260896912118866581085373418733090080902068760341467608069012421560674351070066621531295182899952827213868215644015097453506656810840768383394583255980600964561764422226140957062345508089834004594423650663217968361821027911549565814834427568872105811709414493613283644935158971677929385600131823915651558021833587112819032938352332401502168533468782147619373945091844990737833430737801437274311362591860682274205764507295808654269874164828164056833517374594652298420329318610980374012819292528148149368719509937812853890686479567104681599717009312385072752036005972406531715592030018288904356541683362499029052871505142842401974281737892262340716305823075554564929817169980222165331117833790441869555800815699383545274201601407634156424558599452120351396811407256252058512041192992887930393644407236502059825577427848251649173874163852334398698728136196333107375962643318824525663321903466101818483661643160330107159984352516288111374957222711854026309541844212598839716179198064332300297157900562970438530763107000783454802649436345899576940363622379977600811062884419444228800625353620664307178586539227728710709001618879441881589211147734924660754098322730497163626545966641902936929056692409730734589350881027849454158065672314717469634967938487829964426789467734185358835098406987990576623579533384177910647653349889530070475980188324543590366601297364954574989929568101400579701980039013363309341150619133008599540656593589287971839080651867341325251005094346014098401458800634893236110443040421974177496606716639126569704027390652057276484811809521316577041822474067554854839526052626040362143636900621276528892658962460269951137388653019858016033096634201681881512367540966799961759887099782363591423918329692743254847435411800756911286963622944713342008378410936024715299884701032303484089360155520321107718552602123276817451932914215710533452465099434647708703755596440513918830027502995589330899894210500303073198167910998907927973514242476112985117194527541516700680725445704402647176389660460666575077104873268383298496518811237618051242184915697838681662797273702051575987909195769445595247356817213681536881198935567254764841443305973163921533860018710087252047970345413127291508822285249669098990651657289375343722022610360452051921228862893177589644917369492064033727916868926375703614527308550486673019694723249285215236010277383989719205260559987126339523974363202754249765634234553098956189221946251842727120646756476692348853796991518324459099822752968545815147874323110348432382119595683075592485926654629496749520018548813782324042092258532495672860168682556348187250518052006910929765300768963740633579792556918128304719527772301354881908969131932088176797943756300741011092925355952128438553483137053444676400448129404602763890175618660129342579147606446228419472006793650819844276520771693900566788016876773271443859526735706158234619498512698348533895590264682497079634172701175855809899649606498565779114382719291965468895022761093178228513166807192054072153056852350265208745392730350562925953143845011911459079029802093553282998430871815874540281599005215605265317602484554418492596183905038929251796234570732803857765337599046700670489446182558772889210794516682317875409634158391734408564198587404704227143937983906453607835034268083059429946315433503331041428435765633294239651065934112549922349310586805326708017002086906046024530062105480684396532644276816587235719856789227194621934331355326455251391330891767196473799801721879452470523970918404346291344806625282150599600212225509819651563996025419702003082709015762428104815689216247652258844328100086844157620312292496919088432346746078076091427212504754127095852838062977941829004924224645124253207436894450342380025158989063499001952742427169922087051403938767451383973114260814739843952549722672775662966143504329881809069794488196702039417094476691783238403792159143426113783035928854849194475550011834235531252490488415325131344755713724993731196410051100243949465657978336050351723765846116466377040289067800854322515899537924102090592091328980931728572038919248423009906798632121973603335762852209971222823528552791155923846617992943859552813004395117119934150814539223855542890477488484071039257687652937483897725459433977852737222608619090087532677817811232402224496422505461196228844480948240447577489235319970135442715381467747634695171295116890424203641817490452637789684706306983271174504691509816718631253759911928218446125745392809857479196056204627614616701842280225134851489961636692998975179252355738610542521403797288583557075076066284330030233236398908682327585161115821696779506578928421779009485066950431047648450082188258410094834525436126151466365095042200038889209124353414687505312567081616734225384602987155315512732760571753485694144390145596802921744272811867464958797325577266984145595822802700663687795551305242423934973506849695674033641827443267583992516511347580044392377861288495028591694196119401113371782670434611561508552061657339961101875593355672599128005962967828455668901206889178240231802695604633974920750397664001444232709511357902519535800492724854155536845375137979741541753891421610596547931176852320559475894842641212959004356795138153969756551856024267453423361288903123718052610030513272391926413216872779530043635769276797194203399619891932692050465857152377882360161682557421109648201583864613850207422518048613203292895334376676434071064442203391366845545870028290808624281914944090265915857767245829937720844323818414478619236150160573700910513961661722425845879021064272267180305882787171799625737363580836226562316114757904156462842996832240956251956742022071673744800645573045893344948797212779716910154582964692705655485457256651189077907485910853697686862079286282287673038251745800539458626327318256150524744827103566159572440987056476597331166243690806201916393967683101338444598605744788458453323045807755863793629694700638854027445646184050084402369463049134932716917827149201049780617214775540314695235387250530730975014584563101945571609002850735681713341550435849169930992713909594172403342318786273881546277078814044206783708788490159457868802965299367869385586569484038697341954072202251661954338437045376602811799406014325813877037689172892548088580212077305108036715438305298006748976921352946729238294767846277936690283235027876866662180546766112381145381443425501956254700532636059438431641065743854663247475646468256481939726103003869835952116801570289449924031475595873116062097794972697308346425457472630555345126701749682097941029764867521880836128353991910991238928857396308703410631658321024645051372687299650194275063854795232004204795221581132856664726997674897438816309482832922815809778442439542319565703403318432227947937836892672807329246401259134250075667416809945159961475191813879951921295252963783170519482803061276940676709370851482052771322459598151114836788171193592804398871817077980390525183970443213019275738434280861880520127711767213977137163362986081947769225541151801234177893753304372731044657746906259139512975985491052676725035839866823089708254649195995027730383628436413653571262710168633044306812099360592513027278611934850300896325742254160422137127240574595670761479154325066781140132836295091209354259933702737950973905174779675471946843007589838472960777237760149661272810097380776222902281185946428923800657125236288784284811092356035929690186528730757906848818676529740633142571245158915661881870878910481913914015267907710569800803211477881027200324545724106387433028326707278128338296951454818580016110177223392823236308385966802421055973732063591418344449041699050264715062649190422091067934503761139515205178862834953403585601946045966449952808933741311836441900503304180614821096932479169522729441774030825533765326411640707876922418636255599939013653912036990580101197725499302131620379567576505343977059203690679414635995569980517773694795670756354867944161707084274629469204341627362372928630914672089278193209976500640339540558760751067922364454326804429701066307390086499254370916154725990132647943257857323368799602060102891758642314207764393419098339290610113677971792667800772067762360942450228847773395006670772774611300747519026756638179285738366343478333565225033831953097855078007748376144763163196943096442150292990772929330041303260351529105578384138883087315226417058370136234321310698625815272560952779515075226947627894002843884110979274818988462049186216701844441138292027985277750502201682159220581651431425348035963165812293282158970092974271916171528133318344723932312703325737834680402177388882096989484047898282752030937075434428776830402343178101435400735509430577349398841956961145758849499996142531872659093410396285276805345964584810479219296606402374304932908151268013035660319124855255889211821506178612723830091359389479456121327816882644105402210589153140948192076940813363158046405501145684119667426715028542685300965460501490549898072122148801399244362306346507561180781630800230248632416865316966864238671032551520409605490857402343546886838900625082798224979219669271922588386414775624997574103166802191092472949984566608528840793263070344900444273084967182124754403205666293913893484351890459926307326471246170476990172582687069457415400006474625320665739816473378181777824048570372882781433449503817489387302653357771192599607847344814494508619339678024784777278631444690477436240168634601511496077433905840003823677826852557912643878837835540421977762193752455019899061369844991574825863978082038492477201370107682305832560452620651300476104213149510082117286464428794911164864727849506129686398585261506106981627048835661359499281830070247098812726750418072534122203218030451302174804971959120922555360500876060299033843046343806245178801124258682323706323712303164810883324088202463743596013980746848010560887125756534318198998509833395926413295120550740329607787085875482590656727404299577467611193694462173277388979369333701749034977460740711322720136918495195038276561961165748530686022563875520487769063122754209640389076483780919475009644128223452060536200533355677417291903876866198967781717169172055508289739390284480427849553958675205440381145942204331818113687232344860453890901146474974553855481420589415378080725190497307505929569083169350508281806221239971848585349533790149707007827421100811313726143742959421790891381736276878418113694943907113827907745127109079416873320477877273687472311557380846009156903575629224975318831484084337039069552275430252703720645356242442686647138076029429329963211929664546664627507206400952763967771329591384565176542332782418969666642355175347867889354086458717293580374940794783105625447583016117761073232015517655210673241501021613769427887685213019520565456885413627446626268448541596237025156827199481991595111131410388931127778893833867542353019009651365095631765180943062695551827022975810634854498892973646266289167930609267753111455337451021592143235694732023723224549618783948322946497918742853904180057681010155199300509303973782106645099386928528983424449350072638848079016675305413504748803170352551438362449010544218281054427486849936131573346606000213567454080048405399349171508178334330859379440687848673717016499340268857841998170487817024704000312498501369188688300313093583745225799095034417707487618849890061641083937366015345575383934953694791077719294772223101315979780841405797281192397583243652411592381776071577033846720326822408942154807267033246267311820538409073406770338827655624008559255172592900287670259335655174906856998795188315974757937065635501944423312967444563454192272348040566544862880824144255844662670152536191257584975133386825688728543925000757016619156308492443731157587437604244741905738041991186959840258035142238278511960871168312649571983973020470741320049533857364931284982792746055284018467354027726843626411860150534481153198098103432308045333498225640534411675849187289805745278614703148159614566459951553060181905034822360500570931433209613293537283863929744441128483499048341387469800805737929932535043682625373846240240303133756465198433112074749430228382841950467942596064710658788256122545081901926071724639451519020294244649422038614721518987805829339843842444336893431141688107292819230034689828519879916175210438178286363042112985693899830502785910937267949564859892731164686249495082244595664933351364617869745243604578843486249213452688864441850644876845643572947484366776931918533485825927080441120119177493532747573219771674480923913999954079439556806718777783993020631854179464209411046114385867955195037976673098339631329349950382327356788649943388563224536484866267168151106713930796121301944385617468992148756241947309675471591506620306310960934302537083265502079831998238994254024864461480003669697388812699045941916650743868973402490703669450333617554975122990122806911011514471125657705607407235913967313051297986044055255899743365387523738105923781588447229912702451852886496512014035424801399276937077315279792553143139628010143849353689420212971770424194708978064607392693614189415184215588535816200964414005870695200122807768182792628091394612947246753003918199979746002072263993490703199330282375431816536255161248694521414377753534442775402248916443724562757759072453324359918446009661235413843255066374945536239087568184619261538933827082588211710808746755370772992009028404531921095013384163606361169730095431937390618124801623573153058190317694229424877970688289425759949601318793014767285553208761545298617967709099799524411139240068476641263816575374377700657921337041909220007565636202858908104806512929596022579387197354218939158070688538885652648146186417393458583325380571562078850763317809947103003950549611239694019146562555534933526586782213511061940630668670839993186207164214700299766721053177557385160939943554512936283796571287834983505228741853283572183336169341467794661235708241321423533815340304802459172294547960206849987147687183728386114722035860900579156797941715591654062440671069701296576202987161785645440256038335195285232290738696679502490892671311749820165465020230896645654220628219652536996221023868673645432322128670094304617732917812036311946926976681087468148380395280053871710733732311502447700328409349540228509616346915500575566528638308447526466985017967749695453909964700339727956887383705658775531064246110091153537594819088822875878934520053233705147570347324909147426990111658751291415964732829967328706704075506580650557388714454813976991545161002705035496950347965491226672199996670512317827298208168337058216995672206446670851352472405165130089871839513493404686046536206898109436140322221385003976890182405703603733114313029398533093061126919510431816692762132554376189265426087106127157938456821709224931067219241029908174404879065896868144541861170718479670517746266313933224491422975939425188435473435929108949173097970352079302575825608515939369135043868743743315741484458236772589324404299462026771219329556800256157010662745046001276051754778158509403101851521657384965538089183363397519649389130012042403514004783964823623381795276654396167024824973056465072959444140256843963796711901620372212455720687819634886911205050102246851119520443090995669341466558042616654318348481852925098806658521992070960347891201365039523904857658100866503302439723938955916693302134986356822048399001428542972310342808663062408682497762788536449669045831653842689866187963366587434415275247264821566625917084400276449772074428862591119073229270324283174713106248170587754188942514949736099258785386188461629962214265208721577620219158303290616745520964413516233005073045039904525296739234085566999449837555685970934760211633007692417800030753214849942355302717311638118445174972120197168507869753950616072468496157908623919305014846490654132256424692690642340805224678095626294550658293230161425695368039647917345512827038849666090987308908697365639957189651641316257901102533920698866594893361428056299266563533052363286680959160397349649620901609869952382753917251705165757749214249946448113268833622754574390924151012387129704046680897882719962649371240594011589574690656641585592590858945206212158480859310772742320147447925179029133288436807276050546921214844753779212618333428351818394306235184194008001855167467969490499284529889211033690389292045544554770495111282674673486795842384697268671528452373368722396956788908631060214648001154432839320647478451888155463146215365271057782641049491200945254822407779349938825334441314338112565186293096540451586611823007929019635879427908123595890846533264969610556775052602462341614912738522604440571727833129378267276044812639537840222648381450048782723143249739028658219685965002646376847685214587868776067252340886749909195920380395667057955809407601706122203584290859515971341219072593789354947891407515506493616420236000704945152402429730561592752750833060482519214341084304943594386782542827637487427303543448997177535594943161582521299933873365008678519870815422352958367396152700928491024974928941172606038663604784806723336098320667375322029092069938312208457233284603086573858731813742452721972554101531575635975445627975969351191120833119582459666357705489506665367572422754010314288196059713358530458161451947724721026246987758309644389768667624699960602699984747653616151959765526738226164894859539109078223211662006201324427972537779232541756253226269859894230636210298823594209905292715489518683415489248378993681976935556089936364608257481311915240641410507811083225605864687174863166768291779117823688369323088279524751656857871549844084801857257348425439339331666437594495161879253195675357767359529073930207447321447597809643609738187473465050751929817621485466090412092685861898474545801764727632862132677705672762860486700534543463410640150697953998081521485674835098561110396773596840459946005009728252759496519430965397747278857098031468886025545507373778658297343181596291312750731698645124969977686618783273946075055655435729638880533365222838591736598028099380454451759879166861487462329312133447429359391288481281785157336448754497587650848525104409453999522697168527540550580545965545097832529357436797805849559597135568932598687931609408539536191884948993509859662211074644153448743226079622299525797553284893808100398188757832050385455582579667316300369005757495930358011831018118658169971530940219059676491005127132856325110518225735394320355380575137047940685690978606936681117567557147108548337979823719237247990493000609011016250280441962838540156910490799256943260841509828636438937413552626115321100728148895448597054823951785831357511560366272012317926426163423827671012007977690735260855700185441647363599033547253039352100781347756623820187775490046077501991906901324343997489326161340100533436691985169963656928961179172226697452523537088151301569867246641392361284287413147592966390274868047770771475689809449404944167024370452069317819323348607509058784548064233749920880172643133090793352811801300561524830208580074260798646638098697733205212420302217682342208091157231824991699977308781839768523651644093671179263766936788156357595283539469253340128098334450694038185989983676639396987323985181538857550958850061448840453780496576838556937255570487138127298122584851668225829739505695930050619873572167714981311145241274233583206700042393793907093531923322235366499383164387934146805381007927617883311678920546824724372631037810222219869939914564790590117222093448289879576419443176572247836316549964870463016656948515991115480187269811853438170721096058075175815219058381095160870270424000113485411161025680040595719285973303227701670757513033297753416423770314794439903297006712663927994600113503449082730017226933656071702545491959564915127208238036524500809648842376062057321881546879478385605553328065588774605924629820463319709517092780504088456200349027081327448778222074467202916144048924134681756557235071098918229328345878271724832634768090027063290465204411949021831201948791190880040689903757005610123982020699349806529887325957193307578437665726573691440595198335784713426677373309213056829908711529507913113759927173445105570329652268149992511371643858926344607432127906288893734109005304830624861907649497750017138120653552474693332586059185993090224289944009692895638062876313467959258843328507439984123894882066103507799619259096530454286377520878418015139534878439873232376951782107427745082737170428275002731892844751844589518952496478616106439632093716266233690292076087107904414728720636248878812673455273986570877391250607958812078396853910674448255463151581863168910016716392316031012573866072436350439437299733258254435868944092578976554005721393027761755843929398189641131930170538406519508090832426056026101189670255354782848380116732507774249823528990395213954544854642831986534852747820963272194340099075072387742747234601381608780530797764322903194662287727448746930908219241512184326946671643032920144392092022828491976599732121139437990942763754875128149777828658717581206855825464859831022790641356118272110635098174986913498613836550329584219240647466579996180286530438366666880143571801646401339231081387541376263694630987582113219566197164273729198225592267995901308453923641052011553393779017524771914563097836730789533642099260710579318533220448849320777566903173252259984326633332628514731887348267055699273986613285107739325418068536628426854532319061023706479877913622974571530187820876816427348095091095197595273953403215323483294428856605449404645347612178661321078310161040259650292872887561258665756136896411262043523272666693192406983113563662293904346320051134003481790028560728180692897991704375149536821406746326075166854889552624545180297369058409416452436389789096326614254025011875364921289211981853817701336015879625138747132192208523286308096940999239781627651275203627239328993714438214712422878187907410725992058589466507635577029904564683013042273381717402652632355213186130454842462069879503227471429404632436056201301430633660020529350770715931450268853098400352058298406591905100902053178140881266147586492649508780605194556740070772583735232432843919018399629620996661485507109188271003550233633274177349995730181579912993385011255054929358664404469230396093972782734431903521662235545712070178625223655991877331098768553686947329857602430006689716928378621105452411306797875398355994949206593224183699884473845030768850810762095733403783804721115601199765827637944809601522116434040975650680521611370894526925357135508943707061422708489981674640976890271073723637154573338661713325702746684112359550232194678890193361485791874515755779006520090234862035921428883297893454133737173665746472814983815577178113323128817789727299192565449172342232142884631676742198152081175634902988004786296750555810656713535597827150234766351742273089661102399116078758696280518703294563720969989776287828920321158950803136450744872770806113084572192553633971529318134467229393847544294286019279290618777809976576179798139906694849050822750982403450392856918121220683547825072467534580003464549872254985751989593595636803626518410783758483360274658814181431617338770841079284672791222384312511872991922500179043553981578976016343060105703556105531045410252178821455127230205496435462203623884066590944350907888652977861631206605598500063728881064380328703766583066175122289275373828032253467450071765078193798625683113451229756468473713524400251566666580668826348740587836878071959874862972748226104518963193003382948172202429817516341440897956886879200595830084473323884248833591992239360170060609373542191636590835469457963776109763326657208989089111228917606517952196282549803899798699797751150304210364812139368529789326229421903414429118233046976926305786464546597192411741680688493850762542295224886130801730233056251401388570570917987069692923630814554820591298070322547366869475695626657029703653737407652666535339904812739694142605293285766832491873970421432342047617678545285188854846060535525774548767395372023531234713945242253736813570975189148797141133656263495125136547031795991199767129220826869088627487418808005865272263056939064072395227043954183054814571796083137851942654173551984834692418488641913897719257213289241179162107121260603516040623803890545583192671004965400742165701233960455377276454522193717363710636689363149510725760686022983313345047984135732656111657026817740177046135993583758316672002072894992644994396903433569788741766507022594739510409071131979067049534459089686585187247443948026988287604407546799098151268073646462956881295449599425801770598637794450031275539512186974219315239057325783492634833298012989511864366873168447502143154007926464355279838005847558525936476316372710906103789083934489870612212658431631604911668627618700859876818726169191514975270698808371858842461913721848776159533502254322033320124796683193288989937055240446034222399427427999447487658541248890027146010252144819753476050289590610704147005898328625591024888138216975788165877863971469011554685476703827113674273638616432815574979756606396199505372148256116873103443571446495318920027539324590961676135336108889099029009298770640648894027523350193686813329960725789714125059606410018092136422232420754332746876068352892688253982871019523379301664427597952021048087925190374688625229073147200500744460682254234652491564771442348003577211977217188489839208112279854913032732375629297748380344137840666969570981854587038058180558454461335060875687605791258269573198403495625549109128856921090307164578751079814924853207720677733781280071653154811221177736622534085455292717343748866341226905661990741044730265264728203236887942765838610841377791290411245988620616584206877583111210795520468924767294002335955308301937751264774950930018907359058004315914290525821769152718420886298860255731505054143664745585019986217843977199513354964180199846964923631817034143268612564647510030331367257835473398204812772645216409398696365734739130363577744749802224589362092220419540314533353154701589395322000844440492957117954439679765284448654686579387237087265948591635473535627924789530832992596449814027146774514920410700562630959208673318457505738205483835518403256902490181942677290300703393907534248808067836240281436010257397786824696709677620266554618743637707052047927426695644067390142964422125669961900845419446745995461229969697622988539166290407778854016829129875418295757714989562122473966794405388102243268123308607976278340172578987421663464496990686610391266226712763433534086472824322817910510544981208880510267458164200093715201460298991870579815363511175621206152468486813238250285533002617856141418829970090851920217470311726315332849000034462233895214992782514455778717549838652801363539114361743394884657185321734606507609722625824807632678720768401334687354302089824967960815309555588216281163182703088138166119153405346588788371924767216550930411405710245186888645965240212777695253437438431771266387813471055642765851335537262958019963883569882730260290999338382589212342588597694174544829011275500213121646490545755403429674546425160302619774789031708864843007407086574019493689518295775271801938813402194981311908722127670416417665744495752293573756893988285339896464630151772430053802708158325331955531424497999110715683149979666447543904102423992044950964994923113024144891066636570529469925252552592384424356972775239399121439864715678411539627876206772712159312326176075703541304916234875670800211056352793694470802392331972702318229932463623274563893597686938878103973877048812356049248561401744120315891236158619076091307420804464100189326472727747824473886998242097162179547774071324455563421807332931978429398999311762871150808159440599295275318854964705686340872348563864591663597632508481859606652032322785093205435729548733589349191651263980308446653119630755257357173585877018078277407817108829417296797022151832197306164016841334025837445772889432057880608696714475556927849663466940369813066827185815874050053520414156303102793775012218615191862014754301058769565823673403508212771386521905393551439457660092520708042534994631935685219845610304406737106330488371985214761562792684088360088521787901341194523318784587338885676968800963951337337856386754262950808232934077167653645047037729403184658772677650309541278916220169994753451216441563318182567760897220203417116669455669320232265344400722490888258155926712046601888303023920042287897793290801154523687218695491115883427817051945557241073708335905908500549071591164704810115351338054015168850452171240572116322406182487870919336875965239651575316392705574865592173899428851622383281849719148494614597624958401060662937858594279092063029263949027613932756554823158801593015920993832486797149830109105306365057869432859816659404476207447374109916532161011309889181132130940141351998800833102393244644753759002098418257510555674907188961509430553559693329683971999977623112237612014637125708748725827952354787520083089638339831847495857958738494232976492420239583062005934602412936554224105201565958132515010594973812094327715368618006144273152113154944260164623027830827623199158645304734180088198983855330976300460655895649979722375760841128933694548666589535784554232789611952065871840271245994179760780294051188202424292952792055542665678800499486607834954107753172935105442407844169625806240971439025874065825549225079977013054879809484202664090546608549684669867020942020014349897702838511301694458105178360278396938558708451071120782478561122767989140811185663955991016373208069107342111736405412771005717433299235367058430306615041197854055305212763552504786715634718838078454171948244925695725900484393200195325393448622870283287477498895669165392839122494349451344018035771437218135475994545159377228915275203814630448775442120478547099836575729075996817438685171117533843726962555639541191576498394265130107368141380336164360748134985158708470871231735981491670645990892226832683364888133173666778199473221731171493940138055590445593529247456596344008486164026309205907135255090343950398457418931409929729767549406119834258024375732144715670892343513141618383067393676511722101344258179851699049274932047194064417222706695772917715295666761996230838262489483814752499866633610058574589951126427262868137460357889557134253825579731845087484829125794563903663520268273347855159558760451636208427671979628196923987413777637245346924254916037142716364496734929603983348145523196292025768246400511188872166767094407951745638183795238919257509949821558975227762107147904662666838165691957941018506342377200009849629301905916019675580529330260411583664416367823720509274516541779043688799688560462330737404809455495057363548550276648576320214998119616330843561239378717754515745356826470901369587566909028022340678024239139734263586155066856506183422175600688383881496311523730419708455762545166202115104128976901097376135444754827201559275147164837559834695294390526038331127973959218653501625276511782550472864941546384785335801287662910212957254705085742077034890891711258905349687858521270287943431835112758335631333593274907877460117729836446859547347797513310353058204873913094715984206056481133321929187433335593873121827277275771014968694687697168830605258822331011495797675079222636953517937519778593253216375251603551030817371464620728479258483467356307687032944779388583029945783672052436038826326301403076581961750078232137293436645214530668284899335864738824716091742777988093650128234985667953980161872891936472313036066390695526519294320347543368435615300767689134416887922214404800190596864145442063800516007875142609025400367210028203686771291220178804101286290226798163185380903043390973103676020278094055723881490281068007647846121952261261712301844223293096575094842500151527653190460017067785108681131131970221759636779810545090831277137517009091794726802214961809926489050920402745062898250177315334258400785719132175420308664050320554030098443036014101508897506516426837910898989760458100820084016670130211947006774798679610290316441437569274210244789356649733242755610642586486865555590921643393062356066931998559043898639855499072945307806321830725134480135278407988643715450945322097836415623219245502496273738645822052105791166632129782478032127021982190517141693745504618530729444403181003442237504540746238180032352117503679317050811075569801835523391981519584231379822596082005356696126138363298245246127891587662817861568430271457078303019239029053975371780434380567123146972705925701878593836397666247747161098693990593297140030079866884766402883225687741543992535817579992973903482146904349280510786963615854225806226656069620975813477006884820598517255967354105336190167200942633801295545491671602196995514241092865356546050911442339341430049664334338272425366920688321463045514425602161735587202561849538895014925644592499943167324203698258573525568090352378628420198098913933142337981617821476716764403904600038495831685077434654120408722345807931228612688474221793862045577459247069178499068542883095759345752577495455146357077107016780239538568276888795082123886660298187427375301509237927781241363378488941788659259454708418529792184703643263549985483582099909497086705538922205710830742019665106765029040496983217179928825505259170613859133323823359564261966861299725601321977424047558057518420887060181096492448549993395475470780300838355016586893339423412401119489236542635993454992191063622999700368871939382500595588444135606366378493166105078324381497218580591944751233121583536884411612293124320902680629560401259073475159467116679728326265075966761586398087796430391029668973134499416649037856123050758331690300190451266296489925936385335153778471029059802654291346122040863796368378821059090863052977601761181629866302943153478111577547764969210256124451704118757561729159774364099602317383491692601935266646851993279985359743445432487658449327954019615004911614199072296818959650342588009413759937764829570727006122073142426758168122197375941137532863042361785489959938878068333678924679284285506384983459757604695010671976074336258389767666315501160603333296852158417487778991394824440485873804414728709787038214855458952745884823720065841385970835507021527027766903547230319528066349232790398168688546707377735966108096902670877256039259785370898465485145441456361657480181289516954214184582389052853949278365619490228146722243829512051480040640861827463503109427757715989721565700461898165328224791444254388874262816795353347342680847667548527087042394711253753566683061115604245240069520173997814365580363283570341334379199894299275839130356497867007609359806578192073299107983698872024035658383970539989970805378439448540005142954032463761389770423814630917433651159800306650207027795865451955318753732309130586213761227310209815535490116415889019296373449918292195125079094539031924781761298052194903836137708951180625760049464530716108132681208594403668225832841939513215502590127529405403036907642186083635014124776893715386128212500996140395511015227342002158467347193972708660409994958127831995451839498769181576560618400699402033524902007620751407973094991038848810979389748579771533036685220149857960169251143011395446283119910697704906545321890335225073750821140802961062622805407178766045330967840100590017470427939220716408457232818895022918598030516291548943745584629032064064057515877610234235190625075351061441276080003592871065989251959415148062154939234378107863458745224954261262011841907367271889080754511270594991980072019126855476706782314083030216897769413209366739736038085902836003373778540793593136063046535800618392887521661886172591373981032769808185203816738918754350712154277013300239013238561645075327429368644300409075181436613635642800012595586638770140001096451816975689471624880943920361660900327731884280334642341118585960007867406178580844176103075767091334406673187940625958049977157373828156905829060439708522426201047061354084359880479081142686237871227755424063066227926866871661485553091492916408580034823413893052183740712895775244615264249468733996642145691499655998928130243327777290505044434961115975056550021107985260135566614787133534598303588428492687199254892742462735002274684993438506398372290833672160302457746957587675572743507600907224468139591661657584060634945170586918996898183568752383175827183691841037772177616599799385878773571657774627712867904716886231679683331752476409322793256589966934227828428956419182334276877212989680842683349378043655257502627843491053720711751797370458606282346385372158995688028663049333629041071126989250435459387516021170678012264019651600583061695916894921011118008807372641421982220979518009349335201527614630775852818824180827378813053334306979460812827058465636388997353734167856919059619457814155228934226470347815378237718841700262256563953687500564515102600762321749879674792512964462364943636512937687626230935693934475093170558145743405482102218411423413254068241470362489447511854375906476099300277707599611499993827360511846801463637237915340146231822232100294279612332127714814714471376991283544905320629231579282187473787555437987520225252105078996584939410013933155945961184189015412314261250708129860565742586758344052393900176316597381120068490354850026972607429287387950653407254527838666767755681332135371298117318697630259368550222476875607321184126626529878336040171119795246043461763421238933156092540486897062921966133679165638400895948558818825818381748266368658052433100806950441332030169655482531707344943518609288752137228204901469024768816281989989868327274846395960333908393036776298901839223465223770592460966588472878162243611920714503257072220635775474301439573532015353068937891411043050232725424459875555699921148441726487393206856107581516223124779951125232320567285261852863212422175609953400915066354066904132429007069432414522306741729935727464248422899754625478966391421865182740761439776166115308253827007668374166231633421398586834929406907623176328858330071103475969774815779211920374981365202278719108000024258518727958412787923747594781929511280798263183476655932930213201206735498132099880365641560825400420722866909057617721285110559588754181219689689212931238147701424047435667430598601256306159252087388431265152260203922348613739193765171761007652389081195967299747437488199875678001529455992367321023243132833699361818062740234038328509141427720574091364845095433206521922904151728047025764158970604824341726393522167828960729424086186472318395740138211549593450520361305858041430500797994339448437704476461242437013386891780197926647996655103079571562231846637114398620721332483143114939942980077894852475834443984453436602856860404985012740444697168787509028098850142398999024425522599015014339235318774553987087421974870878117529082464622748000295361175177699585677925834135080353811925063730344632166695398165180003235237304656096363120934883613640060058910428028206673051029294054801108204147370083656185977151978597826815503136016678937170712763741722421516447681291753370555958542941876463547253243576306664456929478937178400976845681826928801143109565453379342296519953754244382368778453160315577930738436198374141430202083624210133560192304425428981890467319065848942075261116195214767472498904803964667540763649264631365903118469652026772645815451127282356059548767838740444228469288706959686473077373593602666872561894253814036359221346082697027723436941693585704598812165924374621323192946400655730792956902073305710578531575492118205405321948188764777951651238529153150113274810003723430085635150909680663956002397094655038049493580063321582671038888955726022935863363455489028124945410642766520378068770386795189029404671694286305700515036778583393701187148569161814921021086483641044219426968898645423281427932588274144308479619677951999124949956152181738908830453615874934896218217392815230403174631965810874297356661351232100027830647539325279024968302850810134935573343991664661881128637059500363316828590640182197260463040479322817841815512343680098991590355284544186809112731273191380271796307366666714930544979144373947097956361362528974018025089952720290897911543830464085221503106060165323586587062523000410020341097727568908144754739653462798540403735919714638506416602792200847134568488020417268664862750785687193425082928695341303408229707798815338914144717103342559218974800238410296727640811882737723118989159153153404031971028664582663044510108868974109806822170235234646482976561083695118826892677822828467248418745587601087132832430614255540700580449938888748264015736286322690850635074939599578963610596921346414758639059471966384851098863138465540888749594581492646844232908923613439063355483907672763949038064911426762327367497686085759665324062142377705971217001679656210199420193612944585152937330763062230457371566983367298257419883259531292275225432712893042375937587862923797322246344117022389557582521612552078282725512401380901693973376201927411879996164720719878517961851584937620435488642451685695396847218430355279916365973876264065775655689791070451082270097244014398307469819325907747606444768388026471875496416138838392937010213276286756469740636905410905893278682655884131039633324537318330170243944880152211623284341934249892114025281439202939527488525470564160224186803903486304222829160441253983076079034145678731372686557379760715055044928072684704633324416604291291468793678655272203616413213253584579313329296118297724676969488362703973486738958055780847444559247880471570425800728157886536611343440677168202787201372012722342755085292101300456694992986836996254936256886865456998046355246765808305576065812093000558114298892204658929618180156633677192463222745395217654437225294200765035625981102677890725023325354374689552349721442473716668355718798957432825763568981368332898665979421384070403241421109414027876430956215988535129276637580863666195463225132182200723966331950305216140369379398571907891376764635747871616669895980748532386731907295834511551042015932992878191474456723883252635080404507311899091223557117841006454146040881891106422458830647020387908222055076946108824235978814816045665963967935818685226791379946358279970811815956428103297996533735042791480057452720509927956086159330990833893898806220258638538874021950207085261357996974657086430352572536747386342433622124752456597541042104968988624147265753262550683027879517568473627878110287805872042224346651454987833380237166095951117868269466690842871090345562205778980529266537295947984961049360824146181272979920175400580841396993265161988500245496002193664512322737659329792034052495351890098311532911998629748321731257269590194743383660057539590562863249110911483065774497312396457943603118067625010366523747242042163270112151149271804237619785240659819770808627754458683406866312180129553331676573315017792909227801170631026914845811322546504568941045733610795835324654900810615011942210756592212422839618378090420783703580545903126725109057321808242478144237486655685786534522924281530114841771018300758846827165873324667826836819022070347301931463082718998633443135447690151420295378317946223578959602711492129828918177978527139368249185379017411424252432580767836902658314261988667116067350669021801128955333160108146422177423657076514641457842794697857676474405344531583592073770379213263646641445170574117307698283454945443390126097995349497729225384919144541597713147884112870168445608239068081078526299620473128279306269018734225961024912350916328723381345801223917322098379402980776735183195150571918603298126023251029973102980144711795061047934606021510154458588237156299343884222316765780529319562088402734004286755192835593285638633989359336729633031242980294013364471838636830132554912021985866133596016420878264895354198273170197927983747848816910785642269389673110695400371201323452722001666837478943053977382811285416505161564977665870950202588395897191856903916663792828654506577454311569797611309896874566968851129476944651052763028521775826554224464553811748966973205011922439783841099174199271534237075523708406190957459701962115883105078217223470426752735878222323318623179819664317294307505963413588961661770647524183366424268529166162790616740633428892162456535210768089702108061685594052849884910623523760959047445170886650035883646825957084829511965792570378150109491454123006269364387267677654005732626107187814015447859415395326427406294916040305484727883789750040524708169794797492826298371088256322956293111848592467359338783269748103459498060830502534627759024508534936404781117008487927143793236790184425099845794983820716656089754075556051077442888757062113762134000897807830315734749843534153235723868322007364995918508174337383466920229233469113435933884805542997752359738129523699073167458055777539488426937047711150846774222286965583188853878058569587791255251253415185399215026601196976038505588175727476882073421584162712549041953040535109952582668719866984572030983310232669949084229262432652006791045778165733834117962669919950447103835939904871525700626085628642043022699889136757358970592914244764929921135908969811576762076603162284195177909191160813126208392673501038274642687704777691804599872523571594677546628131921980072739579909921471008892894437101489643445439946444345898813105492080155675450391845038477509252604253019970505122305607639998141492660706974604145060962884879885180499899241180453168474747011892498167145682959290436569579160225937031580226724938554001508051457134516871503807673024445060854874329046556495315712225493854462303853752979089625293589931536065173596310392198508439910532591554344718237820464108811474130577169897887331952052076558590443988744716426557450933755655287860318923431113376590174559737830879292117088683260787097281656956342687873629346120860882044473018468008226295387867757545323999799289231224150479088429413759926857356531550657342783762038302818538903710146686708726913692581367533271546659869427243573149869028266437640061814793965119517635470287379018951576230041121729232403683959526559042956211902610853182193220293804205104091622210644781037400730665641589240057932332281309316858086000086568967889387046755525743141086726294579044181671292805544168805004838182544568323449686468386337495575035461886257296287244353573861861030059952116420122201410301651440730942217183929613300333580340087802772674869982376832461506473141182261990133333374999710055818977818444719162598935575454433649803128168061445522304831271693470639123687019354485097446062220079194805789456282524074131197479122768471549973695275494467092422271797077074454164329127791962261737098692549472469691637296951522645310656156082007031801172330877994601283411425298903982103771047461100120407280994447965974490750398951900272700186083801346118460548212309878067235780280364644555560489326211090615185274023330594921420677301218221135210181773276381078017501475588670393045261456046596693842462321950741751036720774233675691883353256785114353799905278427054424141186180960863267663091403539723283926362662076406859202363546710642507795433464644819562604192449734818158882257926883738067377844035228890410649867026672579844692370457103913135729218866736946037987442517494847618452319179567749076261014751119007129061657762280795371407574305213602971630546632897956365970004902223572156958967202802379920457472932870473532643101313036375268029537215355219426818007505860664274678470001192905451974838700579797921462232506004329022482839813486722502997433775325301216606598898505810040637197402990247541807454085802953222720987114338118568760295235498027170542019341204111507240674482562283066556098085523084632612850775832701773938224947827590932673841782278134171474585511949560368701204426405825096126662221973561287129041425827415280136515227672460512245570356516253623170401485026956275233114626109357407050012567256934004684099992505257658193301497977552070046756227744008315527338058329767215274340895911879777905143307675809997193672748068368350977516805401841911926715362441013310448423975698430752005816402617493645251298432785520073941844688723594251762682416937554003352771196817929445752844027168617368498112111185122333383971557349144899064085637922449161566641270412762689764674936025970987159665155494912437990618113083617751279754922731010815093658363103891759082246286914069402876071658993119912156519315791316720796482205284328438982466266050852348448219507346657923675641417255099653758305042514134094839653061753434697192687669429491342582454169814363897495378693086861812373844762797355037739353270815033790578110711949219314426138306014302435380168323334745823529743604099337134321433005432864801903784304123731122119482085219672218373757556347249792856317102936304566003867049343160272182109852659096218607206890224506094631382905644136906921302377837760698445283364595855560760506297676113498106955779414205902418953094570472059845021497487031353575301992568899030167592930948250341103830116414562934551786634239431357474306964184886477565279766314868887606900788230516856713156895937699086264503095903527155314521493726558089242286446649861085262070995932166661201647837659733158467597276877235608319674276493557883496627676629758945802800828323214333575412755058057776782204770522099041078660305662680268417635426861549287144932841689307394249047365225193000583675685876877157316331270199689670823155773818461698489423002775683618346603270836798372155124773433586201833100000849198359304923549036771311470661400830657007067485167285723948431078571793749126755855407447953893004745550930780312375186227096741884270205964856152954498194667604717950446338455863949236615439762987538927573308247583387791951418593457862816937334903221745818506304793882624808425626482957483464507533300423594993395577993516574142617222220444678647078455077623398770759801528424401331085595839742641859168105376773384503652777724547418622207110395547018289811599567429402413359210355402513719159601584808925333854408926458301904141615920500157923661001542663771443593810241733895171453392412614581203078853219328657603884749137821443824486796536892651116215230552642191349100214849217477836611101768277171195761441910920671104941737142716684519384540455062036637007328358684958623320687564785166651627970205456923236421582854877260596579886086868387273719384074711892813022758052531948082222752601940746783060125621816778682929693970994888794350678160704411213428001681949694676330041629176636505595577693488480562145790650696288122932277865587840918723823557392222432108099024056185128106574216037748024687612862544467362107912784938573973728292057865225690148961296531762711864144137987590520607888835138409625960822661610533906967042696297557210714686402457949428996356198665875695790025368869155763002023342164787761125000699181888816449913415356183374400611826299036452740779162381458371285867025572212503742025138483641714753920701938006793449411177951730215354139382943300728656433705439419452589193661550976967352368794926860116760345355779069360247424640603028274528607480016074261571357172969006748567454079191995761573355985555053904429779610103069350204692325680444406839579725702861542624029596853978166372269222152905566020262513270147011844382821872832957659639583161550977406023783435156982220777470836325262878497474478951983393302473056811101462033164188862612323441593264303951607163058297337551310288254995518339873919756244194834696208012658975815085309616076280176583786254507950577849721830889434891685024561026346391182549979111464402141258219582671295516917868191522172405576034598727011106268711051431161130359480574450254541848701172117665916773973441894267794712715043022767880193187199414904928191144586797892461226519058293523478021285274280502298553976348799769464566934726567285224493317489931702176262282114392988734563193503227195863957892714038191293390471900644571494660753558021156191191551630448433266128465018932519833981892276314519357062775595130358185830140706236916443335346310400117832145578882157526725080031724297592799572302534153528543496148755763226215104141838066494756815191920627226809676257955290118995744042989320273666232260617977685254277200213757558566918172540458788096561764996819960173315121384837670041372626400940675232201265390577731567988859732132753748656776226768496070633656142013521780439804589743746194010472687492374805156828789793764687843607958948845805820064601186613047474574204729657039179787969678000012893236449800461629306013895625278068975379043814156467292690481035823112749090679343379120374961613302388740295788551879865467821574097478107392791547355801197854934676580293461415477600103718065955602796896892903892769550569084804455945175429896999548573794536587045608732899292196346075349715751228583277864349956547713655151527703614078526637012505339490546681856323306782081947021140646640410525434421670453879506510321170470689045346239350521791942756478729291256003435133667222895311932379382211180517797787490969231821491786421797008527405929104070134602325572853961112504786529360912195378350127629194504748600350205768650895619645597798702942307147366717554242542686913924345251347144266625558692917375492731669227578893935276518516821504440091652905210530972380614324985882909848586920524945346223293827504634425039926736636247137243550913282975496950984652243872560782936307656745476578789634379047745765369545121751913158071158795425097974275980670948858798476343004539422481890688377081597533415630917179692141663184743255844622412480310514321682299123937568902715891062286694050556055016634828180529221457403751549301488249810839656913364687723865248999248890676097980073695407178635851598981411394812614711692904582912724183290711529837493672446545509642129878721497188063310366454931615285120889786912346634913775391535061123933157514993186239712193231816837020618335771739139857251523807882393702546810768589801698062167433422302135539209028278095429412221064238932042649947637662593776573288957058159365550482528570589717331665092227664456997176808275496758938821099305224231213066061456077017183376905515950930285494900093177886314495379231542814082845443597573875464825405742494941031342017043732407358374159020619877625568982040305042680544686793292435674560820325154199356624061128993796608270670416491905727295413177482473609670751491197377405087343870797196270490752179128513837528522000893798154985395577825043018192930217074323419721706474493398820040859827674319432120503778757091838046557663399420629007803748584256088236640805844489996738572881829894615853539039845303079501381612647189705298256164294761018977421061729420101018495863010379306714153076014740461299897806400669444802381723632404895447922388401700240416767981562866239370400929912434555460276058064987428072576924152414360664098936586631652414419360307981910994595873779718611443798029540592352599335228416553665213346911994421716973500906051222846920583820933939390673657187378508043811928574998901471695459534402216617605122269451214474328654097838315318594376647772525941781085696486509469195296997380616781598713190254109057984845868018106641411085847516335896013189640709901196793289494186035847297573520889644582374815740899026712909004156625462330422859704650745672497329595437495324988543736676091546135586091699258008396361624506920471451197343166380581696965373509980204441770414647285738664555082182525017093072636570633141502608717462745847192053676409368486417338997162900928646951205882592217746847633152561321301526018476326326456098723355784794292520908994091167153900613361419790849068217537369979251013638927842943439562986919127125123443303091456068414803839831619971548378901536194365376604450924224966897601207345837806428117726075323868104395809850892631642429384865590750892583680485479444264900596068608607353104071134980893991192360701023979864282362949030536278428432553354581053920817778199814943352254620182595084982402549845355646153960534311352492297681955224288161308385062556367905725330185958869269531460391978849345244836928939967789074822177179906898192705171499572103928542081838207731456592721399917771903062120596236156166966431556358582285057081952651148922993308961624547069363298931909444546961160754402829362250082525282737880805765154560572668204158070015211372287478220664698774111633356000419279019663491599718668553404232975282719289905365159159789748446831463345936980222357938463656087425652628513372003727843746875084834127965977004511940367264292118748649591643024916196618668806815559989518022256426179979673374000540523336474532983320824414421842372676551756899729718753677978638285227040199310828280146895419708408022369992489104854173118251598966016490039353719306325567411667568728621497100382280960874238574715339741902273470565937002584837980357829483435697805830634964036514754746229780355482673549820532278232859800784021529997910437596723373255049403661901513234261875302102997175660701129901948365081424406758919641150467830133132878725379778653911587229028612918604364253621999917408446813285057097408971570515228079084899889580258859719354307907200996665639407304914282838325122898655119500610780775214104606067770836645681426405121349407394602024187810575947342334711158863109886121431982237185925981932801629005579861089613477514402480224180438599637030772609542250144839353016895435679083279955152138027413329244012789653459926773996063198621910470602024993893424990224238430079983749513461211431089519402928144566302652499282040602616777880549980799077490537810506453512218568823321568179077376479838361254740806375995071163984018636264539609623361076322293591972733015692094016387399733543282810456413888533335652278575114066112264167904034599437266700347495852784312269844189020629978748152109031888471060079023653991589665617918532688205312075328059731851968752753629964262052985124608821231744126091185859823447100249145383443318924926269191020521714912230064014911684671330384581155407670684025474626665318538124903911305610391693583603919319069330003201772280985883776612188738279223459593811714475702429137974252042400855010228125149689517735506043631083906567020568945793129192007890927725306492083433022871876856330389716936572340607758520740947200313525585207094427222231463634795363539724787944957588663812365874546705043549338744667415511126418311560041881135605895925503461995180886471146770202407886919280688352976150879307344514681822488693053031780737918708927776369598099854047489094396501635547344548097320670499330747748834980270129086085208474686258920973556679563327024823659256572627724708665938745268238424614150836617185281425692008003925782921735514791983767303126985469152832005632844853936277092552606863701344715403510329932701546152116774205274677275425596385027520874716152649114405908247014961087345555083963477166319160110265882205259937864696140022742065721736693778208406091355863769636228890259701420052442469002367684651097131907591813121606183034719931518497364996605170765469299220813352654482739451437568821111249482568960942000416556961128341240031063920790696309468375775964686816771010095911062621044934167382141301156711299392116539809343053849022924487232864983251663675275535770957056152461929355984024829472970067930216125963933407103868273463636895854795804304562098702347661267295797054247337878008814952353200753520907216228526650939350830928839660833298456720917318266469084887506910253105120320891403965254259488197808520850542379824062502782883085920119759028208624066928335164773105085833386151345897464117115599200165969213102264099477405030365884867963980813528620691271521497593783523738442288302004428895057358108286916471345982351745212431310843873912603370632760084434487841048451893022329960245062796200058245493097539963139219280069125762220133607288366345658473547533019706794514726752505114067167248817485018232016358840927024117199191535975502556587439959229396872190242686266009114076471208818137323331883044064414012133521459322215995071208902049623783474052591068356682964693905339735978910218223375988700323115294497371740770433726767759958450401868390598981666161560500661978572353711542839915372371929427098351520271650549669003445096687879474847905556405674651676724136010623968860904029587803624525191193612069144268923268710449769632588114876208894331987515121624783714085585109408685388076523016132962901683205572230391795930841477915395512751415552024701482367633663891767700945646586922077231430289481152054322128310738125357827903155180833180935300698027710763861824466131587624656849758661132482883544733052734698294305027885826139069780920930062771405150221438781686966318906675905410683248668986597225824786935689155404562072436611238557820891268057809369772287927112531593660018015678607724966445499304290397524938378683808931909335117310824568007971417834957975666222547466047259350303611540560587566426024526515039207141171255052092515749594857131045024344354292396486620979959568372853492923452244760817342389754156532330630564298981020783039055592831730898095287565576990633753403608241883036527444854610254323099538380365201797579124889596463334007311827661864822009985206796109021635259779538733579910958186285233760096503197509498536214870890113880456639060051374227822176639120061607623203312822292899233769277615752334340356997087505949793711878567977424802576244170889560374595005706709482100864292437624046026474404776078918488661067263845054978682776333172679256163629836632773134792293697207254947573364807037741824562596978457213872019853902018470636546449779690102095366734524711921309119246623738700750316344833656642537735885419499400214999807278810453829438648536744961829192193529825110109637603990108364901303532581941212884181176777943569392442864122627477067628059536126375223239534122075030151096830258191259629033896088215889135625010656051288523298562118898882726708095492563049286526317102475584059262525289790381093121288756142952184729183194009798247805700117644257343401619324507625175916348038179652833955906810296068049661237663193633881512431658129431070179228452128359070799282138843039909023366305688530892739541499762449689573953858427209366607946390568379350729370845321688789804335963398844675994613722535320948018892975493890851166848511658778578145640326902406508245361733854703779123617875977298740210310727983168359648571108993818893033468512665809689685690923911971054901935039147593188089150666405547037356202786149764055763115894675822388781191265710339531672498721793616967677192118557595955332291650621280092899836511391418026732874761215121403590910156018053358438701869066075336881177312127932552209941495938822622587399304124941730483160501944465502628270403374239168652639333876375091841588625969968744732511704843408817678021680117052674081853474438359453104412672928544017251066151029723645112114664007114147453074392168083494447049893016325449571220144738568939248177379822958618665592856817606873376360886570257030866677998534533906937398701231983916029422006088505957505621535282142254753834323283425926609306007666262681785130430976548952140711831781116342977785025846696139590979681160658340797037318328880743428591982706640915651257173411098028844508862135292962358982404490190286724155043079602553164060429031233467869757412791022911226336913573032467437919504924924107100292711772124486815824767861625875465381179889520641195607648188942749868550638166438567139112686604737397614734357717872083625037920770110782543747792144304208023292530171083773061782443441566100530328584743815340384531323558532890881927752731274892283648203781628582082722153114843784286400146275825429126123487437237258869373510913703484127926128930916394280021272427945726522886281556788521720126504524158999711340098460299049366398718663920677110448008724246370870347679639661735666752864216420072041951437644608349522913561078051106476663611802198501265957276994488190069299361679217630912627832386353735248870243245347350900419819048099512595845851340395054298352250877618404251794754455238348185280222599812450780964601136093221238594315566674191742000446333169728081496839778726688651407702047864703188454230241152013723347483771566205887206955244736416972321861253156581711086423314207883769651906744989380210862378151981578907540215252466670524882317744238521539566131243122543239908151243031921020474308477567906259842414831102361768891109002665641433052338784738089075347819879840324818248581068141818647911798245165870578172251228570407250507681336582988799262964454964585013782884680226353256871030341546369956724463459699806623831657476692361311594868201714452608236048595377653474517840400610840055037198862011235717385978359635942330839286198720125574328471821822650645440188166944176702979245808480342868088098866735746756911717073181598702753801782319712096358391183030826428063449813042539432200493544555036307194240946646036130163452801357363711939141281347226125117664664864074379425406860503666555911582015705380795011648006132581766272427394564511627239499159636762256192286831101141721973947489093435372174682989281112421625203580354489376366889564285273870280271119460588660738516129815197204650134191790848211053983624364040209397792863804440888582763352517399552859872248472406458082164077858380767358276062070683342321697753281604812375717669715225683918385835391951580492093265382642731018931528714193569415020540545760945437773109275548368170552838491825277486538709209803830431153953451947913166764371562888112177659802981073941382544037053938306818003908487095899853280788602737042400165445898139268598993344259779331543030303864154234345836964409728298459150161961999305286939487981952906721096066909057391492603425715079780334352622974107567268975331373797219169090675299343153233913974357345682688171035186742441488869818158243546743637392946718955696284353719928017146141834091621656655811462092596216052056270709232083666482401254831314239583474643888696479876930342644311806099199350590489593588591135684108642649381768217973606754376779771252123154464946275971131359328177118635146997671539240060687683448225243485768237039254685824163330746343097177891168351802297035762977681844860463206244350194528180176878815745538917770279264305072952434818610791718515690177082058274337670852066981519531911657037768508506015788165489397515418086457330793289063992846305247253229419255946940535085894457237822496061984297608322551480903270505224969830063289874071389952526816630740829438677469884090130837344297624253763319475941356808596186377555586750700607676102896798200895634730805078646598008002350611095408379940503095601087229637462322181967411767255863798724269033505575554960167914297634922514831083994163569339378618223557144023043492995889055267549796901944513744079262008157724968193233301309161388374327246918769122842833040468169657430170015647464599405781687032103516704600620137974259529107559094435761499514478439684142179197138356979049868924261348986740919738778399036867551047748168772516041354897910840991994725561990828993454224145537977971915718916847468961054731334410852146238997007646518403670363797793676183861363981026755005270671238037442390436683510626750548690654220443442056414061683771974762530194773514535633922936333293787587890818604060966853370237483328121539062207253656426691466418742597382882813290031882994603766468475970287575309751140376298571772373644126408544931277417728946441835779092397439558414852153065193673937956379826058564887336956450076794919625799434948642179334236849380449178134537451425036747807320335247918324136506285627392503815640992324061205075502706151104028377120681959091984898686648638964557506969950039249701329078959942324315041878857790651360678467661876325750360104114625066736044389015459554274949727467110060940560924957204502228228675588979034116901815755363098808990809921313630779545054664378386809845781415489465929626830978460976379350219280470770273927986618528941011174993227572263030937982652033400911988366534676576169399222202492673103931110137179790618340223045074015248719999015805856558314247001026523154589545914206855312379227640463713046580414483896525972594925041634091438303367517300631672465886506861796747879570321828870141876973396082406594813343396750196194122242621318089549892113379953583980423031025094060954347952304722707609945691643530547936025158519186803557866535672892897394874212729981348938665893099883118271516086076026746995773153683883980448644721109126210798397841080724198967133094511584930521863496731433570064675447119604520735473842746788118031255274653218322815550716225993860363470414941300757376142496489212226746761700202243677235019769079098513872915876665375125080305278734524882744246559531689500132743158749587147633810069359355035960110332448103616506621243330907156469090824099458802065355219797559026001454114774634611843516998904931170878676033306764122149353478685522981280461434775122842101502062469644151216400400937546343030882804734883181967477837458712292915191676392952578209134028633917813696447186271239981999654135105338187942818935699520945600980178047915027603068536373134342635498307461791770366914757105776874359067518781488548221732445402957579610395772743343052778126923814549581927166594684957987893258249281705713498945449381293581598361869181269956703537625149581374943350390082593584878809756508860364492963835853986707753000524464812791770179718105505818832040327693972716487367982125765138328027944546568755402416900316152477426192992525711921688100519512104237331128563375344676456547536092404764481953257005302381093257076205701366922145464101933126395821841709302033285899764399692577721604011376561617297848483934001822574987452854043753025005024605987737396329559643941352946727186744728038639601181892454036474001946499210293315208174631703987309619530485559703882971279332244096543134986178082996260880375990776255457615151368253012059398122711614903787572266437002754239276326428522702267468517970736774500506734521226989806223975256410479362298867040950164995861583852899208898724585619606651041775780891186327667405333292244171284190132678236541064967085356432586419455864670322116632801910976686169331373741331195823888412592611817746463811211769719967978293002916928128879024713140602212769935597603444511476035724646986888843235674941851089870778874016097518410718514767631940310077762972996954274519971705263663138574070984589209099044151045010405968116100160118003381254100973812812639557507966627281921620581818473557842499543066691966622895060704694761492799257205109048970160194630352331219719679802657477515854852716990432212418934869172483555735475274894706556047160051135735549896345718799778397833186404710095216257237275965260329690702017531765463426367075240736191219616297859357667858580769506027588778023142889204086172808092075425902975582566780886224592454807996965786985875656275542207731466517958631764231862469749025936892727849760725546670812630346437998881179523630763991867460720362298838116573463619008336373836670524639897710247902371950287674425670769052466737413677862431052176902427570223765711229870181518110703884337293600136873686724827587174561565640140182305876116860681608900429751860871972172803185028049302396535383370465256213422426412258948539789330345691372433365140474815799685345818644908159252738403351783735611746257475459408939593667435910520680621752139718659506862024180620544567951856991099986495962624615989634296768558033366555666767442176822707938131876915090454075213376886773098089012694741055349708499031021552096319112023332986537557630166926488006213269668510001387137326048553745902199261128418797602105469975395001850858801726291512126383715171783675282715209774992261828091077392142810406395143356552944904828446797017213983636324997442312633718959246543964076163169837596483230506086087045925921808277341608971523507430585916266188972308331050756637268201076236431270811042987779618460189548321888978726145328630137316287464637447687305501697388571017566927260916559810869572083533426479217288860228860837319664131855778344046643715603105347725521243072489740761062818461777340599462813352920261596953946412552015287687173688085012124138750103395813377163431262597798955538573817657764148069896816848590993548955051064053725429351069176756856562173983856241320782537382942924716709403923931468569831216212586538580550137985434547785014142167739533101364642385969388656974484898629166794573043637251629368693561295609068408383999377548863816730132645729178768439754222487182271122593306922486505851851485207395917526329470674021502900553988633774021816929047474739622890126900332748271287574512475218433223925628410530522610260178597864229060289626103800333188773048429738965099427926037998010299847401831146849887763906918947529631443694761765907143369358344938842511009113023316056648822294472968526468754148361841731824384506591380827609804061163631813393554108774889566475686523036850895920453524076263495464099115582972526439027418263588596554099806566565631576895476854023052542909821471526525981128195953593779983004567887706795714577983004028077087144643269183243797400219186024596767330128888324669392406871114096381344648374736637994257269389962770241009150202432611634534331795981188335195220467732991105650671945537956061569878563731388547088036812300588748258185086820168428562161699359421783612705634035730769256318427013970298524280638234831091961268447705329145265980923307793725531272207808283518812027786374793825632327280755342056634552253866011154893813724125975323233885343005729843611497593968244462390742108510327703569500719816832616334027075996809990951651219273083198608561621361032066096734405049972078475599811365693612025444305886035210666572509437885193037965677218222673700214071696050082968200463758412760855165366998230915703949497581322676787511675466619734974933416056820490618346257612019883389672029522497827751539117903203297461688353170924113508132862894674090847910075787658666772733245724244097502384669887744203454883958466264394034920038032794871412235119443874867126900202650092411466329374798693611196291852306409214399450439832294710937292507384669115212505670565095002575671848873841059770460422676820697694130322566359423956362204395818943656475511867657677137024869199391197587788258513816330371190089301715085824574561330613062583546007876739666406614788473428394695335128495391763682454374598765966833335511877248814785934519281254196043666300920054306425148333673321143958411162486571059666840292977474426051496931054334370511005899410514282672344564827807209294895923940771487298090211343952934678005276961765601061154076740588758854230060948008721737207894276395879037434642859215126003837786765901517910212578004131344495805374546178594329563536773163977226000438982233544594257211136223189541550512930774894117959516037964591028930113337753763830281560602380953821508612978457327970690842605158690007474885594379222418446481333550499297749756607418969238736986199118323841082507040034134766822506437200112584268252142679145999354950780449704491669904830000901244821489429404312833590670542704728533519022293025076678509493594516583880483524520809462848242514260274253693306161881049121878000014163796472851711723778235500704021361013102314485655189791981636982487697542544416840272813134098825665207890332090122671320973296579418125166894543862805742061389753604677658682217326357506276491177289480881559008455136713149465730296376982040257109549595963916710043833595101865690084365001270400726141031314430402309136923296845234520233851488291039739460733927134172659956306883418949308026842129921316255673073307999918165237103513886730673145021403401452335405986650089154074426847117397123800929194108778523246622088136195217039203173291609619606595095454391155024636047037538883736056026740866392216504519326017458221340389481346681127499866921414444868938838345223296531399963620246828942123151909006178921674520178660154919841464946709453904696619452996986882453976759237583187240681092575942013993396205023288835194195664286240559694406221723853570970299115131949790692239502506224952819535516913878194650280713695648714766070593091668813909136363284699295515570752628490451631250371180033311707399799030550486147739181433168108350697522606377530986979816963510955753846093809614258877054878874528497503498040296550188698649577609553991506877250878564277296393887457967036493966390328977121461498393420919003635723573554027992800038573925724978583170526368521581454459312753408532672379430581441581017175611921165614529662880497035474138524697875368352267571137686490923335179887113660156818435561940294150438321568856686299244694835449974225009338460108796558835675572736800632289451147773697343928672144691671018126879049107134847117906305441092309755917584034906417900276935230203813018336962809321816325899611156051461331706176245001277722679989338046806788663841288853126006229192117563031825564255346234700688740251502033590991824302529170663465168911696071181143587757016089983684847557237094988979252166848432634744350267965500478966484686638683154305022252884884771315146518683130913880750455388061578404615095937183002223908116942361413392903396087133168203743792680638157666112264454036661063876330209583028482230003452364319334208757397391288757838433129010772387940520442733813134341157929551231536629093498963161109907315895995252955755481067378186744494240821164938543243479589151652341716136439657027958956430168635155646154481612315568935208832127942283854049852735696028138029952398819605065143554677984071256889763331471303876725317408674101879390687539696799042848765238166505716004518115354520520984614954933016457173146851762556414766967230933714030422581575979989497282182446157063819199386701934028049397758309673927639516373933649262788087860964495716863574872942965771506734455584899641581769629335088059390655917935164656599281303626977100658542306617960760674385573404428240557301491203278169075988077412179683311983743317641235696127387681067870118433655378357342504906263210911482748085201973059151059643107029615046933147375405153761086178039006208159929985869744944679940025611390221814916545084261415162150853484987652203776966902899006934564392281282580869612370461245836245934217271417248559743425205394419812616881885965888688884704200895887624855210932678719547339123210940286895825603313719489051842877723137706417104451290224300179864696233512097329790859443912257074399285926351407079029277175325270689670780620756755678713679632465622480498987359980342036103627479706670227265074838990294754482495311494569713059830940811195354719339995970419816796776744451038899625670949277896960256476411926483919834618176390467980776240604087856443830371117394661064075338581838848411438991136443577593411946078834062873152992010806295017395143232064057671595245549753468895599296374206608239277191843696408638053126008026889533846550016316048978274111177340037403330449715836388819278874346505495493500686482003995707379455862910854438211592274050314396438539277857386115836780946600359034081372092531570526972117356484520506004256030846591063340025511676626500352795702203482610009742376426783186443582287453238316000978051916332223987171932264306303950724850555161438684020323424445045454188044690652524707186560967196274861086831225576503012261532491969574207632784584501857253361374971058150892837967466172256945103412470872675920576842755975394204052475903833333352041806193557610382919110143148049958223726797185865703396270114688563526150303634254324501784114527762067364339325886153286236408159684881665011362907905310334416100420362379044935285363594770380268131105430363637762758402139983115092925409870336534129718662067063355503594468026433801957718006858208672230631027776059558641680551146361202595481093728465842650524368449735610417666248585548317663232247225759383277687656363578062087678459684389118881236614561118141390766730867076208805144621779677015735440404049514792086089796987100465221103207010775465819622682084664849239288578469101145233780370069993782291849127490796419077246114459007084131703538081146871690479361161882455718002783823123928051178778686086000373674720188736031293743380057170116910588904327227120717501078758929318797038751925983790771930615239173379785627460913803216995846106943679688225223923770122186978475839714847208901684920145726038958143596318869651047227236573619864318073347282459929524766937425962769187195897347166816429062075136761728493383567212265686666858998634584468765773157375904995568777986216771009618591583578088690804492989316905968450387570321312357948537007723094580242072713716624561107033240724240459385431454074284741363554140928997972366114113691575063019210382753724411056489761912939324453054017732616513606143257774821019170790622766182930189849908546718045702805788178248594003761529213470395251825057301358048744418310041076481774429808400281597913610622853036899465914478897474598233197826742493723585041018618783319817807966588763257685119762066572656167279800329462119079455987045256560603636287284372136140685614682095929892018076812583425973344624484635333476663646484883442016189515013698701246410897170623207628763074111866946228133360426032864916750452633616715307681339761228676873479911097686512941239371925093842349373675045457525305727760689776257948121914903737148893540272856496188168078372251889726467961225588793621890211529848521998929496968243071133266363666246166596105056425715158426007733333839279053008727167031051375525594280154352220059192776470427843941767033185011771340706538453454489105715362596492921693204716278546795364791451211428081345721809812445433121558780305782947336572768821408327710976011356802646150166871712243419692618999669198019046645017113150447630000909531968196465648996239696752100515511508905505972393231462907516285816141253530725134873507491016323621374890625343484094717080830694009569608185195802948831407115336155454502579562808515116567664682760030212193322685300722110897784089718327576623735163903971603849968563201894994199557697678177773892960087208289829881910662765212181241971944169503580750812543308875298813003415245697272282814457688267292243607031254417323689089586298884058984399139625157966923717694234992249664626904445227725215514364037272348287588431066870687297333737007716171030278053287052905484931188940904652024925536053278566699202855620612710128873944967413851418136150323217505006580309204364913037399170124809288208601919139567248806544385670790331835637126881970971753121469515450212762190265499742337995340230252754993858867206360689552122479856737946160958534457382663279812824582455976760259735285879503111043546122132436074285926880998437760332901690181441317625968662034712401670992837297050828554341368763309965520343957624769598407936527370930405203158721061366894669146752505785105243248182807032748610557073536385049558820627597894961816166163984748265098512015575368046389774620677033218614677873046524441992872782468775366089224138117883593139826469571431743823022077284051876636387629034084457858076541630525074449022714972848880670931544146391736062088249804403758285403150246001745362308588089703039836307943839630591020727051253531672772592116740759832528213602256759003681306396449047532415988884970126562095776042755154553439884384682559063930938473504766209194735817683533130262986172663766713628055087381618007554513513106671700582875573125428767564096332359060964484611986273371065569974551836120158887919079218242276908505960386217045599820580016650007854750884310168038089936060533869259079082255775224114443144239886582754541140997033859602037165735751585511843616844151231828470233879964076989244013003720788303654823958165654085608286758010758997059529520664815122629167413977838727339335822176177228998389391755809853403516724571669350740772676877957974021830634383185567919811243606600665201549491698567600900671205467362935457016576014318812443438195411530168604057477174086459795465098667780308814079216486168001246258186846137896807926008736553422397025168869847579798797873929618727326998995784104527654357756738074845617520971158919472396159125484121677718290037073487690723589232914949753038764531245057909924416456487575466496683245441652468157373358319345720356753334099188267919092495274118075593426606642078428650959580354758059645069811499957918449421791253577783449142425290802651449482292781689757518240327474777357457830094682638694465766120649677601527677599535443739379386037476133991611354837827810369403070435704049732508280217285467118055659707445136820310344541299944489939383761992272798700774216445762416036912945873783356242798522159722715683571103815295150765417073588260152864165322711628697494713623810541645891786349581418645419301580042701761482845818160898253954862919672446435826737427156482249277798725476849151488806550109022936515556377506518500671855160413766822971004301983389774223872531268683144712284038953647130754084378467200150452737420368172812603875932080755184289324368611539741628318682574672384005993202809308297861337665936114887010758669274179066469355275587491135272395391865690569887691071107143236829884709864979772862878370544807906936332985274792857564724581249289923825309004684422042619649584143698706233142120112438799655533660109680576862633929385168344757646822966290175694929098054922125358542617983641953606649029526140505552677226401643911179639199821558863405544321563497641356629175212957243344873562088819908855897556504323791356787364616322981591087940445114881867680364317701895340574637478392211796387877949864346840710498896388884802067336608821074587319173104255482044849543931668426685084245891923077954015461100500191636799658371162772742984566495207445657129491929157006804066952804895130235507617517433551191027374019960986669027929530136965670450182379539539885618675368777522857170367223885597267937473940900090650812966588099254962160624918508351317505793947764794580084087373707222426353375918775934384007808025577503722784902278498969432569981374196302732047997947689094423594125903044587762114315183260649354942510919271965221579814633385715951154950584504661095553405187270073923803796621243145109632847112425469126470914155289386891973409494534485232493121655436026313765807432045902438140762551124089876293201827322657717484262360973987095455336028610221120308676109729136526524712306449610547049255900985859307579927623484094402424868694532228227391565593813807148923770703916309705375579247321328911186112083186122436395187693703483497225053573793653246520831468483700263146505718574489460454308812402388622310237011359969528529087687262697087238048404585173577134504318475608755055195026092647758358485049803176227752653120742933089291752952373801649810436908037875507076720030027705722271438901609500438864202003041742703353625588018098694213879004190910612611012902717516084251296784524535737545190307552042425107743091925733701501302649292291662085325459596433519754822122398714881761150187783955253768549607856279212018486087948679256409231742075950111421883433591472668138442082823544712432854033117146805632775568346981277015239196866169051309315031727455317198677742040737947211203265068389307772858127933322320660104685007194185084832658519145916207480205732809501039867358938000898903801765066609248731157181276104013296274669527907225520959336345876705368518121332559365246785668127459600190716194934097728758709240183592747512663079555044184703241138483822323350107641522139474343371576823559371163717839666602255682032678926238680274256312988772933342314246289393918061260535759683626200095705220844818507555412179534265878056849820120998824960247971225390568675883763216946269871580919657048655577418395640685594616324299519646252877667669565036568420904015089450088038710944186050850818094063597210627622847257737805388696534119023017115931999488048861564651436919890950694245486972946543849371757143175827560121997519231985202719110886497519594805737739175759946792705990149518471748188505267287452234965144272963152392258796034704018846827591880320510084957915055386215224613959522642890448586822325220696025057170386854027822936528138851279277523324317624986466711317189545633813364137474219153564674765504709761724014997468990507052519236081057980077413579831519333818271927575653580067297958900409203547475904019757004712811719634041707024518043031260004064165033634884026124435635705283270595761737420539720806494115535227120509965513753274968544532773142266387124253318378835253026668513394237068749324207058518743443074189969339026721661433188187599917933718665454088045158644220934400488544931910636627037651836199293561731403225963252884470608220194220541710272430824020170508413115918469696342076260785054132172462439235050944552011184463046678873648193800041636359483430747804445437614021983924497098287280589763139480081882687819714823200243181167912902046212783709658948386001383491634794654940855168106773569033433498952557912300335873313552808999801429218364934352069833567973969636999272870914061583375789707885678032900023318965047253498256950084353900430772833654688151354449630542499178085860707924829409952411386684621936076597633099472414313627935686580893887840715595082987273651935439283596305053607617861791229303796910463644015085718908423835777158337078340209101253008287143968703830398974161525788559647947954603331821208417506432595858518438837219335137790400728597508575819317758719397423189820818029140990199916523884163713342486690074689556768860687889146358252763210992360765814706941551712897025632147427344923748029348326057891103536665751265024859727104302754244090593427924787388652332364530596109659747800448086573544560501671329577633139209729575275640666947420254638698984444993551559319957506901519144722002287257147772733974834366439909553084902603215957711231320636955122292332631153380129431184905188419546225158670191017248313695990100942383789480042971074001056717306841299818888419565555997011207055557348706132531964916420883884969586518406645926198479259694871271443714800792158570087383204253951934474934908704587613219989755902363201997166658426749176740301160015311107365580408850001054995493612715023623546713076878272445595738074342530710533871293241946905825607042231079600904735305910670781026330725643043861807092668045649267699317343418009967140868311283367321634738939777854191117103522048299821990958167850388647972719547525529487838855887850041000246339565811572239721971432577361710963611076234445558424834394985434981035025583836698224419859606906275924289639824438936962544376032737648232220667039481250982283499829628740905644258934108336109603285156952283900467776154699162436943562981388658152677220914525698327452510709041473470766457326533941995651967643045936428234745973493410677223486047140793977288879978062751468199294360931628003402808450137728403242118205451557157915895140962092518897301816056760748399742122202519756723279883231720012957766053385207395967562171948866365402613182281090994386635345816582533709253032111757506204749296100891618047963125250715289960143704601067922736520793359381088688635159568675128781427932097711056678368208814999452670716518762553921817600986233734607776836005693914504380408317610119738169332043467023050097193992886844388865955094819471568174211539178543125884689779598304279780027295848561526883450929721381394237292610006184552366585637930996435382952572770255893504125292877593519991414822354443298196604110905399131447219575023530262442111368360078995060404084831529051722356305725054419962873360613707617245565739616874709767136914515490481642795534339319615851183460807544497770257221875273809861609664260648972611257241551496345941584204356746553147080543098043386127182894617116484031484701596230930627217999243466280978756786613240871071106666663710271385597008038445788234805077255533664833204321638371844005638280049259933707214943778500140974681009683382668196271207529721494432984073083006017536625503453405907800501615493136507757829565404129326970199740015784603228757826771580182201887545015257288380787435467900716564979479232220545240317616284726929263270519781313774466312928173316203764018807325664854728026989329105835155376206045039649257467943595834243415493761767930240042074122659621331888770554232542815187691098876160795654631193363791847538203281207886757085354029553079178502375058278192650248381442138439796469165675143123764463087164013583494380821604427635352463355430071471636724645806868878226816621629174303291433659291022445552717573704000631537260847530129243317296060536558286900988003842504559287569335928012012346375963698858147728381536308755402745169409822265290935884612370021718008245874042660140571150865253998022254189850421344028170457938771485374785895628170819466825526264867447003318079947246633552333159028067834179986453169852285318213735514780655900747225997547322102596414939206193029460724986035624395681845614334149294974774871935423743344779804417597167819188578207876709426446786289067325025652114766588768246997627918549558949141916434172449918212377994788710674989637871328818843621023408960376094102529206338477348199185060281806059717894024413867104709745529549582300454110253131931089063517871715403867373896471181706926959055658415560767525182923920304294435115252255808618989527462840863065574202474692240921642784281109604465505393468932928842076938588664654725720668376425744820801344984763304709370847600483671223653399845561408014935058278263225529516722360191344450789903278430517781711396409861499929538841756348370183691636949735343465855219633934577196817534122268062008140899863631943159573639136999857781713619244424195091224297286201238512256659986917846777505099460893352174017120675612719648428544379450537203261990574466461514142216664512385253575178029201370888077213764813974834729084205305762333595685885147063959989414623598224857017877972058178961240848505950005866019208633054720143351879214830771424846672426443272567864344067168410514223708478691066474566275041930221867127792585470268564236741318852976795735653515282892508157933517327235521260377971512246736974856936981011744914167291780771608075669236520368128643926647514126144952957700878497959162865550800848201964772375450690855427481408612138441302036500210863583459394118812467987166873119847924093364744477550801979033008619028863836801743971780502375739565765114962846867579942246994126815963057320687937340343751140264496964599798202353156366367110731660294844497532299767425272760962899881541746417846446103625581343103888839998136505663596466618435586363297790224659085297129879966118550682849359938218916972552658707046783614109463195751302209475249526109485767282810519459110196090645803227098585923068795801162589981654672690271346484373512359309346622218498248885506656421896429510887645264811424799273764523852798453456900380887955136529757923644893015414513101180758681065143450857572958489577149167116389164047402001352843478546654511648255833738110431284752113655117588918048350052074044212334572269531139174847437132240039729354919980320601175326494859554299720754370000522060907492510950588017918683180923358494578977267820432903271670093640000505971062190599589036514037285037406755239058814440229018969106560247773941928286429178077844973615727472280498997258263140429972446656335955246869134399912780263534806299922946089119040908608585660912470947642096151086443545614610908883679205155113119281851370485579302020833987976670131281227129995782780554412966517387662425189061369460420076980236394598911201004440143941543060997032917044390826383369652123690070085695398892110256216557423476896613740314742638370898507811292223811128393533866511804817384789900101618192278326975825728922859748894548695227650201339293706451248928554045447507184081501777429877269970536144078476955942070722123237722951367219866866666400632906930371959033926106460928461115276341611383703658796730426371574597677192033960819878750465591947351834350784541269330146013032460753755473603684790170293858210982204523136164719610413389081919811452970004234587126624904182580181533023983645489417756547552249822284251348274088983234711994039678116024825742046869521123260354131606938263342491000887079469595569943380702100087485260832905962667821014428612836464695739254470185159616247905614225264029358121055341282039561416713934382088359077945468592436165464718563853605585529252242405734661768464820635353888157653302756689483429338334795154396543151250436351752590117028357943920498142502754854480047080148694104616702082101947730188357362513869036355361937364534519004227621109781814667010059032335075020298886760786037551570513482730066730085691387311451141643651421135440006339589317026386502499203248782094282460085286001968814176845327972319573162358906846120528755643823989243942212132384133856329133944642706704907961197975853325541139413757172907326051708210638839460045559903500846363811921933038759588109901696129703126183692298690346952081528473253516226411666469660648430402135512902758632226369938655642028229828334161031040181310592826934541994022114039246788201674351319462956647902684428027775563204602726908763785688439796562202487061056721565713431500263381156453317700889272928951305107748719183726546596512502221519204438370675802206784834799233540908994180218150623724397641591680367951122956655950489801277234118566439787902114748374650901861807565516659148568887877380751934421441804064275890893949103774072739228261574820983609608987547564730271333184039789404690729892803072261976193878708954251674971547385187008581942779713899767720363570143293434005786930983682201304903586228010898989260537515821059881409737219586026867458961303073119891014918793383255475477593197686042480335932926501133931186445460342449511490071383871924291953027984631550970651127696634248408049890814895329703082700181383323567642970642397823391163954999651559594431685859891960667901191599213432985627867827520196827501268321929388866056824824217619319726425101673705590305644082112539930490271573852668587664351135838363368267408037180937621326498968810057899442795855219705328793479838357733437664827923014046584427715654246867966209573666182634612779287328551920203608540134967522199353869373703791036634926521601130940260273274542659559281916324979236919564852198199764234513788732950893794531255838672247011865755716539798069931505974377175533669960425161571502978154516479549869039051896277964533620446656718246355269519701009828326455857080456064844285969093141101497609564989195241389141676978642648841240439575770420559945454405312112881475536810673035094681896292912256758196897237962986117221885626008901414227328757817934895504536074054920752765741779330653371770656046204443537569311514774066981687196707550931337488695201868369902714359094392983331236359938685916441461412765762068921591201877563208073065099927221291358729423336128771365904268824138977944802343567184238135939835979457702418527840741305642827479635971996780930789377458715017844804684790423486230898628267807610644755546835220039200914835853083116181892695180909408383904592747327455634895492825113760550272954518252896261146897785565075304655475918964309352378165128396406403379338972956524278754938497807865937914209962226109000106260093501408200253563252803872160857060493787136937899912365059458920626950868574840695297230086339142338822423057135737101343916382248263877791997894077387387651259948612373972515043314071585889489742559874681253090390152393132533464842624992454477060968553906075442281021995918901801615102742436675617729097776418148719283276879105676275361521648717566884275270480833875384223486507015022930077178562093753166735856719971300909134199753121114126588947844549786298997540963221014692608494747910297284264003298855059000661463821413794334063505295605937631492015890878934603845382616898595555627076300440262736670151783295582875401208436166997674251576503746135617428190087277264371695588110808496080460738341062447397655703151146069872382105075409101521931657354658648629753489960203208169251574545158925800577672885422944092321927315090784053239037826985976888797261063078300245352944414886010963319258232410978218910298500018369630770695710291243436881133199773247734772410441679747541672169797854126137742849365033735512253932491138007381381891528521663847830974144307412269141356835225657242514973297902827216432160829864616790274034262178199654749502680489290249769524341598799677555779649643106445175506983441160923836715709281080567361095291508410419451439050282821528096288946222912766043695159531504221741341196510325984580340725944032068969423557886449313755504651171447375153201227649875496782696835453939658675518561501767761755898600654978372421598795486588510651562415379935143262350764811577015978387593494591972844341785255412453210004270626498071863435907343710231551608504300465012364404959840738295370560274686345619490116475580223963919488100941485187775567707687214451859768158435369840525941155292392446422797747044524911211703732766968104467571009633209227649678213423931810737993899981449521489553639349256026055096331549114776609412237165157358089698549561555942357629179714456164433705496809722723229438215999381339298141112859870935866570296589064235913035565762339423266838099789812361724858712394333224702342458873099761572171604193643735609164403466295947513556912251654141626177118881158062057737655377536801077586520352801578416076497118011630911403635870671524932463245836478534283609163933480115582797547827347892952469639131963010787395893715382948799884779347150305006569201309490701103881921380472669806262977977553892809691703031688435244633172233764538116131324275459217782657957537135122306494278475411300536006123280572895291176439020082337544932215054461361495153590980646517582894606803908640618288475532676039047387030969162770632251525321243145419660904955602039704159305408057639342804273809250337716319760799398557922666830395530748605464071171923897291331310199528795567842401773631187297804574152072770808320514887277940751835797097663050941186165430447541360362429253793936560569599059392451169537169903961641238446376592276631477693614410244494132095427789479904913889493344816725610767859121780504905105099148660855310234679406360889337676357042354208008244026700348119316908039965482059379612904413679272348435727911103939771310201534912097249317004034866162796816737446525743281550252405604337902447369914369830249544872915921581020260233344725096124218581000966803512950385550931156176100844252640485977265414217359703152474232804480763504663922949169092932025660661579900423036199682642724477837574083270094775742164329325450226419172565434042227773203627672663239367192194402709040549273371239510962960448698507135226252749718334685413305310918564373314942536039193842386735103837446674465977241041431260016040928255508799995931162818974092372202126581932375665911689451052376852003968372510772927393567505177125630395951768126941384082180190079881105488188143187241157498065153055308415862731627447454363086481192489259354933387609937499744140513526385855978623143721168158876968324708867808099775890904025739086899871305293863197921651466890240097175371180866620696799850944836599430016173336950441776333934234140297883555554601664121004078443509172268607230088306308801332096612067189947837095616604511189438187886473966615032728058433880616189139482300881953359145448959926180621465373947599391082345928427799193862334869032986117488000085336090240735520418391839511341393621148851883209236584714558055356467155815471348042234811865526099458199786401528620931893570809145534502630785756166867918675068473600622937187192837781884365510657746602863964517114673697205645365584041549969302984092319547581208756478630570096152060850339211120445076425638177793986373001737463332951419187196351398276579961455314496151252768473871526001838927526570500595085391984456910860689358353536838869634427263021083537254395614626398750944009287633562108497286946793073024357367968114199365084009416285016927715544431408379421785729475718198903307111038600511448499850656341225127750241580617487483061562631346928721976725407464391439090537789909907977495194222216046904835369524232494078955274411064262707491438378840027651829640165548714966665452535150891127516929483513114252085211897607087475183942475952176915642148689126067916139958950723058137476024996901005451609766820090296220380562885166449671203006773830110888377273904169541878384989615313546585958572014125346690760105014228822373525952225455125635357120148539542935370533057504763673266905335816744592025983658412352299533031445686150599228894230347986755960326586042419517272121644105546414910487832932690552661943453421015408401583481296316646318157283911778906117181790582714552019245715311900592734167221178599408617833900062872044445693282161789760650013907702002087218243405240543398963294909629107270661388654942652628358138868421686920167937167761396129376486190124479923301749573043759401463732538933745779911904149279727057483786753054984955146816061110984438304204666139980055488289633024063416153092357016688684415636832042099116132070605476918725186101864339527208904780641080661506138491158966360793600275308834219760162418692719314431324810976774248588460209605932779875638647760198346337503861575771646616870600649675070979113331537995489418342309210554729140057240876087026513807383485621002585095175873404761576479884614677400480525971495202856999420348853574482879713949545503048380914065991015657331488658644799442744580229038807548782826147872445585478415250904236595371920400519702772707230071251926007648331260573180571004195622428636230346647370174568806720924214349530845453949557733199026297342120415307284771201150575025392937955193596936271337541551224507370261371112624347436258593821490484546801512067765062166175007875956088975193640267559618569502599085708690746296052556067371961748370570677261982677578263693502227930541953566983582558359843662262928832161354785981088893634904464034234000462873678156245014461383074825810830362413464632861337278492371491464838364551037924717815292433351408777042747565900064427134404088832200119904049409984987330225973159126594696203053560002439487141714539759621411100345294720310392474092106636044000693923395941219003337931586805075651552412509801407314631954793233794977390570787678523231388231352442951290891087905276984085186978507064506273253075460764795683150587225481218202664510493679612376192834485517266722128750955509419447174653068691605010534274850434601974536488882212627513705378025523433151093959118407441456780575429859405860974371983593918486574121312475563126116165024443952089318491000596574824365817425947691212186794200745125360577973238217132625565605700521645439023385534026700135058451544019967808121542146849153104276211532584899984925069363990073590235733032949367961113280650584831268015239215494440156359240859478988843989509144394712506326255064879893727181407455645248197427939638415495025889592298787236702429764154758644732046093851868573098200780672899273985518727646232524299025611719442550370223979436278320774557233260990841947561367422863095284902363753578844057984493433675383529292105438124988071261242272496691830298257935254971609223208645192394141557921475677660861368523379145140035409916326048104856461417094273605516330500240288829271866438533443809339347977769179727263262636386109605902466212669747608530865781010196181724546877224814791715228471176663357670333574014355920572771004055855103089107867793338339824967568777594144690503885629533509157695780191946412587950283990742802343041438394303779509784539745065964324930221158427951567292031349354691545092149456289360954057587441352959581029005235585317628778499425311887448011380992845024409935503232480663670431137268977700871179567472957176824768384121873886285456934750095509547134577866255186625084556013068107064223975229689920501913991110312322716692582179532635228849230332236780548712453844849413689405930130131883903840947182863923859533430289591921173520542958631565712259345798246548605205705296369330621603521873832085642754654672746513614513601019505796803660574094863330138913928000878099538828463685624402006825104475498346629894749709111183196209599798244202642483439017650181025720407498533535365070492472283787719083791518735455412355693055434835289421506271880852695234092443813087831469909007967496772320804471480360165525985727633565514459517360978604814778234775921058875059997184519090937723690817538261752766022297190745806060424246992447982354589203456727795259969278139256729874846752772553515374983591144155931405632971608481665779657589414100203866587551206514875346990723181726675003927666783690251519985965153883192754335992149879468952964969883249300042900843860079201796784845033112713545324966778827251540801909857526667847855758441536233476740018047689144253112025928958412500948671985140283507363261393977191170714669770545677795669552074131074709738833994409249621919824145921928882773939378419077066756777386063237367051645356458589367689297369507032281042087891741968583099018129908716937145512210888716147488808789123144681996728436697346925789968609331963219161150589345245269520725772409201935346056412528283242037530096558058434737325494367828205195720425652845324371457234981938410377790631977989436221195932210782143534448603678968347788259685366706847349869152754745786828582250705020687952675815387508229009267506312503416308980151917848026240147033473099868866646268179941714815719940233852345399102468103114033461587430101355576636867288321765719073310791852941319432074420333787772922445159110265285484956983295663789769884902217898563171899274056409924542844876833444858771944708437912948979024302324711463407487626313894645425827975897375041497213317875241578160167773243819797299741011695279204336955334509966649603095910028469346287153717336494381236066270197082833273598073687598009092385485557079682581120901656001699106215604895339420120175784684010603053719512601199233126913422797321532283398537389729488710568682036281768130785578200188618738199934141724015464105769930420616160776825714211262680506748473253134102058339124554710772082031438523206734812001019745921472990982073809652005460169203784489274606321899018127884771734742685412394713849163245772389649264485476401455329314773031151632982716677517117503384364681982320845742069321666717045316569811715735880903064512401016082079995314307828359396360866035689976026935063624501830606461820957031914675706109287914790410696531203880146593517289414901732141455116667303978669503286494696845984782911303274248744001119915094023610269841458772627719591822069704358344476080053943304980705698985249166848421394349018562951093056783112591670541618298382169588736455451904799179257143074174434876129132027990654849846141988028171830007693812017158087933576282607061013927770264030319669328449594587921444763180730855595454524949670212167936946635585551272311070002123051798780017434425227583601736481411730102580544921194970661720221197717122581474970727824813686226733112253876145133277396199104238335902922448634794086005270133409243108214030557087650018003373386730506917720041916575649359771750482423673248999464255470946010131447285801374932967545025450741868965698426830056489098182696164441557818870389837287883292057415326642332780698841763035276886633313898972186308149669515553344867489367839145462541985666040270388390083491606346703432614529685236854870662622068585102885014747369476959451035049657570523928504345735446195442674953426987188557056288726959059667070735472567681906791172620607889124866829004230749127662163546418374685786134082150531089225745638690881052501803453063552831473210524307940827034031145469921242964264227090921801218468319251787234147252832028049595176233295653122737837156836768768445429010530498954962202923176014087830870382954529554627938837207736799711478057680904327341920460661534838828723013073385007788046121180886233100253796466166661195694026709823397854245030998244322318895003448856397487141563338148899414897650417187876779331127803297092530738758138655320019669913054234290537806830589958572400902188707250609306605838876703780567676450902340068228392140545100672947614526810112560828078392977380382587113928168787441385975919741123864427517800609602048171483272383582738072303273114479799862983842620883331931306453609097543456121837093265593196853626161574297100972060484793335817710378593623761652194522147686485285318030883128410528628057031686821815500433660022737647936140559303637835812793974856987701713207609369942011163372690620037183732478269494492472341198054800500783781388477391490029251648245946378464412977086654227820310697610869783914748938004211135270807581006755592998365158227459176494469361436247468671005093144904400541656791897904140269761150082363446155271184965907509205098619590748424520617536171903363381857949374340858512627126166890575409037734044089397810189124655505078042729257817137202007601794357142909071274997626650142675863004168318546480972472036748690964110805335781009404029576202372858313857913854873842726937176964759664175203867429220420221956287268771760785535144874446696544612920311003625156251463644208838111942083277442170682114164221360727380896373513097448744840707586403893764610236409183354832361122180159234081753077622225687531990505846717554281215977460329993366649548264148656878931602367057879161675360787478625791653185929641680270916484198875870939570205417998612336994831245385956049049055464145819701377680910195041767562785437061664356716318835579056014154100118974686946914769770013552908610488522483925552230991263114448049179634146817687755165481951897066267061530107699046028772011816168964136345328543481364060274876544350093388543701289404849095196992393043588805232172835370887750574056901855810927195173472209152636237843878341462056081561197806111743177586463174165881301604362938870948260244523176929876230521441048486103713819149590534327345466864321170405613023769171928919766665409851505159839026661190697617217194239696682454356739687759167552399633157864123601805821835514680438050433772372227923897660630786819486708205733042893698295642687818267695986129672947906527832405389103848167908612719791128671119525719507176546032141966636720669749427123775512789561566394270973367967308140645654892477902144441792168907423667110578924394958196920104005303592770213697955454448512796244747756472644748002591072295073997366766430509217104669812333964146493211190500610486672511868358716087641538719371352374769883572680916883433033308315773595031271531410948628716118851863081295196330074938409940058620714908902416006590541348735324953557210562878830912413518272602886259337459438447189577132669318036746398487154600325149619304999672617156155789463782334468663150969593273440831367168551940769366613763937476566659289076021966208676469865537598044290289162545878804679462049327319299798587567478461297747786117743475140125444055149156965925117885875956639925632080058304363853961235237111184468535424873276293985894009555092689922010545954988003866123244752771947399966718886924910613925438991594625659079104612672484058733128183917574176939859622088001946828135580740151807958878495163127469384503418298542671291342780895961411748325469612091847136625292947758718524228767135174200078650292505408472788084677375714836333488154613743400229747473190833965435473890822115228306686142876781090381534797753073731816040299992394101389223568207515672164778563957979973333290794257314490560049783479616689501274854177616938389586098862619274739320665211522877341324945534017311249013727102473796158536920018377580829357181094159433792164915757700425895924754712275257603283401238956252388104013316639400932707873853737422985102918045497906521847424556878401748517715065816664002755232415306337180717800744022110675818900730331824746761538205552757873692391609793012812213388133399082849365259404866526778149652331175251849875020975566574823012628436325347896127523793392115747725225644118876769449153570937885737992533791708137160349728198754890797235595065346875040214711747307501460978678891480353771901390389158017230338182427005778253268830114084054883857526499329400441451903335417964876045277927301771858579678217884182914706823554561527075089832969235059816499645803381909462980151558856859290133815156997800559022001944618356960715606286712783233116797400947347127124848525330188226828528542321345343268960422368494544189299996160307264431403658296865073732553430489568335200253737630537233048541502284017818430632884723666283611713401809090149054159196161717479990748590119481996489447498299229830014906965754445666981224596446616244338639917917853069258880501831538567269724772362211271514362427063856121086716026930706563078136223662792217775107947235471343243996852617654645880836991548016161865191768025944459777938114729495175035164421126781638397753022003822678145530997209402149099662885181239738812754604284910392927861646928279549941173099579276237692297471925529087056781280413474883788268246347888971967526838372301068747296982693966491268286540386291571747744044370738302193420296046200557128481844300271630994366765021505442167953137233230440561196201106208063673220656437400713667629023403329348890312752590042827027519556822388231971596678175176126099515399666432377935942619902851845599012599496988166775986556906393138672798646407323723885617608768864824669533264405331620619036625294343166387829934671836586375599960999547968971736085342410869125397919573441529520826271215069436151478853873451795150427316564564517196876096471748872340605076513261630761017548922323598461900711443161058317350434990018001231807011794712885563946991701762354943214741343842611915410706099780756361720794175425837919532432673301242522656759942128777297315950941687139084391801500398620397992503446406974776618987139793264147371122268436608701971770842062553691463884508110292571650036285200489140537766195006262446620381416039046352410335897012847016163170240112286877388166400669566186673273524953894039797144469089070017205051170226422257592927694442967989606635207354149262323949431324150140559621831536360369975069565227095346593090243351729106415596396373408047487459605777655266571272947609351193932191446652518065451659586001036997549865691291124989457856426059844022840306328393193729271230776490144365771759616060596599538113347098163860089071936253838213697866454847506775265774660409285592080261977874927050189586962469513370053393118506402713824871781437028673900290176321723077199160318613533481254373673753317328290435610710331747788107040474024485675983551389795420219214340863444065975332295360758981409760721615966777928131439090829369089796590796531567099639136003148535678570294260481490704397190453223082513379285895868724065365959447079863538870156254470720681890629950592499320612003699719792302811077623233239372637322116977064338389098462980604440061226500592115761457265032414230657218797813398208329682760449806236768509877543497282548519343850706445234090439095674956359115969782360033081618934540824749624756899523792421694441233716365602267813623961976552333321553719047350992179876731285272550743740387197704773335862975865966332708217008704467032800008646024978533490920240601186099472309087700592737336807078258998141624663333194156936149454095486538226513402266154096031545413922538330371071845913839406189789637834072411573620920190763293412356995769971763798049699957702954626899513951306407895478217885487851576786885912172690202778241713060060309728864416775109071814865059652749367691350228187320406726407382952811218814300839587670169614259690271070982642721840782934514206999886845141111946740461730180036405210308789104332413301016723858665148891449858661067165578520290074472983570112640466128711801194406330457855107099092919155444429039976780292354073049637664694825890767919509545380534369898206766059764799947765772635121880190404348132804325514889715498768930196256944642025352119156602466463238234145549558316487331589255750181862585257445068986054347400964128295268426909629101513044294689691246998900811246568101061862717570857246602705226475705972564786442457923090977010056357359991251631360716190575105729582978642982096698284905046847968820722571859887725602308118013535570034579395091333469191994426877448268921306086765979462323260735925613794818350250191225711041129559454549447589353771675956230503924847014269197597269958181769927522395634634341118361450801036218341535006161613121145978409019578925073244498883757439558402762108995074243036662335392371353569871483744099213671505160042461054678480813489240972216296705781702246880416687947351348524633347394612959705189909323525450589593854883591981225715339549319088890676366919509515545857050831570834735316473003581235661245560515791683291395291083886822405183791412321073456670302510044587228986121686806637876810713629303642770821193260019944661484692132791889216373805575287877563760976605413478670246960234650400362205688216772332549584621933765962342916226772986552958557048518230015361132149607319989120695908377542980420672904871049550133909011185209690449316063139821839229076485476949364398681365085607524629912432862000705104089561011494919928590833988591325038342854293892873599754306234877770356042676359694836543025455446755158653952890935731737347866974784898805800511677236025419216890802640516890958639757019254180281592943664700019987892697982649646405098784851935490638738755088216154448671788459430771146109122315769254632274167634031768353515365940071476371320040225304445612215949676605791879565765018008085165993612280550459738110515371607998199854608256751016954909068733304899218986903056251632092921573362746059429761997908026149823050258041517464175706725676479286490575924812981134391852295623444297237514516259973768448140103799955370378534420129190109093811067418916499395703672144564370946941273605277744146634056157605490136966724338261408058962252144187953834212374662492966750740031476535380615330185723661218907608162846747090492443020932110080395979419780034886222425933200620273527916907912367529140658001593256807581639987844045346257780133152484958384507426952330888657978486274733029715937377616593266527755431983811678806535941449534223997558174921701790659790742858595161382967183661394596169883553902019524601337202518295225057102231117571392813074414948628383516048247635713542299584292714956151265105862060161678691156148121023484722333222655956103330723599105914302551302524647346411247282785747457835559544353678383341147999327667390341313157854410239296474647391378737290776889374067588084665637678372223908890362931766900911978000393207845399790876106575513484356819137034938958094236273158514135502432280206475309340470103899141516090902420319081288959508749847463468703206323031865175349047859052076225566870181455132927475465229842321190780404381651702147358931837556423774835429436516460975713274758651526679524075868966431130840228021616742750048613504705540018033673353690065461689718213299052420538617418855930000537034021220050377012068848369525502093295136750109007000668553548864210569187096166943594675340674532577199129254541873761050156398070420017494750930971974793032852946512007315431777031948576185251411655324095832291219481920978748264719231194001574724756663125554780144781638109320466874162409487859742082432261227740537254045132237637842998341623620572790596941824255142351093198454692175663709436940095093314720007998856583069388378753407189062268169728719861609787908691590320148264055663963640391732303373828631922674417196606523066700614838337961088309733377687163122949259162922913912462529123189264268694749565632093895356062792866438737877680162875118568230390592433484770719447018064487137129570958467570387716570106073329231552474301864068956267039379457964599788845159753562974602371449026287322435666777452030649159375186242548800044229884732977578466128190442729692930206926509994756167606992772014906198177463204968541299826303935396518253484249351792815478323929171695926976674049503001111652943025797529040173428903609323882793409106565191062427818722016983501646221024387073094358449790196631796578252999744498898015896909471616885808901938829827318907993191457184634739788601166365264394574110198451665232445795871091507818519217557368404090029517476105551233567108596913039493133367337524751471442544708994905978661802776124435817270276596930699697811124372071373199114196120354980571261861147235677428217376883794378605784798035828383426691114989842974845757675808345539602688184061299632864418293745245839657175289516388557010351616379023457768608602251435527181855898647435216040067010051440205076669662262467253097697723831371134662826509749375020728627139009305053295308050282334643713231137556457059707629521970686585374917499392533364122846693771499492343114252519199912724615869765890267833312134000649722599598388205796938094226047878227478807420167633053352154230037043183128814833606229301674482950193848544649822482276509460291063441669779464132294816997250211109191638704149153815710474721316147780235805585675024493711582991703120640097070563338136371193482536769741969441495998702948503859380384789205995006003961782422784474569549474439453317985116764446769751143214268595752071863942376103082736735411036979137423680687591288548280135087327154528818835236957067963951196912347124373628785019376153260191018409829696766997330149859407896159972054645095296872818472597566265436605197525979982849684384751760119394689318902527641985014721205193128601431284722547772363027563605228161307231558478026528296725657412417750377060841519592626856818959705185084712298316297584105336526283446315736355910426499681519790680608531684895722487012470834022517736803029123314154754706860166155856411362882251987654032743601621837850529448801771451371594189959946442863264253651087512851263894373896922757246140704238169140660307462878700623337145196448008774127729484050373819428229115840392745967992666076075185595697618089630898156807473412284729489402323204482867281579732860957186439372331972653823006819283671476309465652279535762071756530415313291909993799718605531060550767692507342867539660574951924736391217228056200562387734064360493043857086771986288847989032059543829202563043955269320176880031905084130253755698521978886924120613506443712661147146727447587801427774806605549601645994478561870986639520522046459750402133975683930622353179062791157041836343995365122105411747302567592522634602359044315148499378958390518044092440523086745031077637546063380131660533412751070731826558138226956493722279588090899677188257690597114365408176021735551181614897554776415284918797114620716085047836833744313378899117910246291983548230626031892800544439988572770157717486063188248379703398075595082915272153766743838784918524451645570967224167206061449728893846704649870019944133429058673485905434129211388345859583270000437095892465428512136316563139274092933018477027695851027431426024150519802028972712845772334399451791579364845542280427933168267560741028279490588605503820836240278864351040415696332306346753461425333635703908285045979889298495385998281171368105969297069468867455665840853200873744573750265074353890079097552541700216614975883866841262558846711333771936904329615875189340204762484333719484711031092601661196514138166982972003281399874344525175243597667304861211160024435939454909872210153431095276132282099694197642350148385197501124816529356543772016239775560848733158461463726645504024221445646383614784153673698706985184234418457159218301190949716252087295425368051990602790875103673313737374796108944328514765970649180945031001786928284757942389248441740905516437810224502184605637223043416967413224678592777419655255055818006616901367330561801435722680639955795294342488259528280793748205106277557402356896086474046407891556344094135142542440324769183178626627255617108111304111252109302939814987070125837988108865797763311986058793785501269020959919502373185290236282463084695775137642105513792531526547290451494405787672516027274082739636602612395339756851813641452180696457282497270156108173369292655279506896353510474363195903439154839985544123832098210541195373251333396078488213561435415571421477325481787067387747183496135880348550603230266590403402102188258851751790468112188772160685746796675816705599555694038758012085116673618913325842188693898717029846884511510889617463235980727048248982879322910388879812158063235281788525951430201704595200586069008656660397042591723686089146718774511578655318744475387614752627073772790386575033961511984966826499464289107205563288942434115737539815394094892293699662170194879906697939515736563182683169804447886060439639837815687149492217490003407408589162961013897266888681467714027067705554716809446234787317177839233561043199574761602256802309770197273174037869263661564614866944075349671268071186267541141594948574581132149419350398023593998773081031052969987863893476266201470012612463166728711840014290184231717347782654096285049456111371909168766878644135765630512628029627013746474202264857582519901018910093123398363602596768018345940863226978209424704544900448048211782231802376131464078139513691272368335968259472193271946362153199969779716038474018518774832946713259061431218880361953324759927534472050847955635510201687963067973409942591572558934822182344965593547247726408552757758085759083698906964586835068006583456694300225111983173962514721378845620510298684244393955139044132475881506008763700460322918261921486543785860474516680006047018144778140097536610998687129988375458231799161193059997521701170844696693525576545094430056272736337969460168162219445556121027789725493990456049251862375490755536758110548980834613294282124327503494163852521492596160997447989088654593548488317460578076125035251794237911176589105930376192840407090701681284216160466963250446125004429830683761783097430784437725050619642144472776603671835555788067697409706967867536869271637927518372506356468377147019995730189753626109184203164490080105090342356280543054099806349438582354415279536764163786009368553993235517197917262185644356439885646149012940113567207049392608250887422460564705769857901312317092158737496915533833476362482035498769156973041357428077660645863915062986489125391811854410586995662760466444359376664769000431042886294678918235102617071271093778644829659367658723038810812219027112360788973937137804441019224694115965393402230496703846154622781670277645717966027969266413229296914974009107751735305662854460786231445581533790750491721335988230663535287235408438881774233946294476319607486205499882641949143143556152785392048451454466167587864648013253620594907765669960075972479035071857410518224906605470404692704521710467696329706598799451670833713340386692955371534124018089741349271077756183067283743309911619972823394539075645657613410542849089732099005061201687714485026905142494492848714470617161869162747669418309816922350140506768107976859807941190125122189835255733335592025550646696830524006276414207288294305946773138785802901796929835797013517613870412412323578750738532453714082961653946604638612248391694426771476365133642699944687886014329405616893222324294637250092117923810741383282314246200607717731187920948124748801199046058001240300799284635413539197901483559121142919191087914497085957069513576016505529473948308443259605097611639545918226547124670742029810121699452912221045123208187010975689718022810413706896743266210797976201634963608253021279606193890858717186522244630998843560425055998578110707146232398705872705115471099391087327805589033947733483932293135944660900777717766083834745450333753113369171300191898857037966923367504630938121561794724378450393789073907994702509697843936757627600341887565626495718330625531761219127608260446265787068835117857679638509041644860155487322829658568363685622927233484175204517185173937223368387154051725294563396193014053378653581411818329253824157566493180625696031824497108188421791672535444907501143774926855616705790345971884850195945370703003273190879850252427642100732654326130009914712821269432071070883246320114695986711328694245583225325211210044855543875221772732140666554924139144161759538147487200214946852480552444073441628687781883665281576856009743051488226926990526592898307991435038642377257019157984166275724635543421070149777057030783734473235102480924534307027457972273287900779351031007996880704025901104765365909628843340018708663677931154591521239470254444747685995684650011149030611710022791091742052425736342389123612789479397215497008764035178510748363456971564366324327884398698101658855361225628232774059379125867996706982091121128835547330741641094286700298414104453515811411632191187739901209044625759653029603819268316872799959048020117526323934639165614897019166079705349139185566795672361452621925516319782820904905914928379827396166704708500309361890871504241121458920409787771485523248070518804210789736258595560464856626838387130780015142414766220056603366622004170620759944074007727643720056178829114791491687071667878103141616183236283772586000948226742199176409700516388518545719784501464737799989107881067142500936995296447329657186761976323298007164962549490419193697082973072597177290845302516333851140482425983445935602338867033521858607992242649034727715785928627962244604788017842217073057514358102475411637105851542770095854315610259876693486349139544700827741901791185518263656130175397822812285440604423696163314884702369951838237518048935770790633866157287141316984810666849707354181804443143835898860123104905490882181465262381193813816563557320412733631777728314133328311506343687729229774162933061708684379679440634642045841430065306025345926332956272709444683554149918221798594782589985322206316262463313468242147494734183317533481256444898012367289288728787647953944333502087619818933783087015882328064012052629127422880131753983329185422633310291779504522831471973473639258526312888398346920503426440698288668261844480587231913502759341385797614889072363439914231941677067656365169323627829658570683837630015238395719047076443434636693067670376850131913343001878233207149596932307493567753846125691448878644942869941963788065848525623302943700254109536063004332885193238946023509878005943214757825788706446291139522895712998035895888803207770600400698955413887206465297413452688973234387078791486912709068194946692923955792125556539669980080172576115423549762485635597781802876284084990675173845374508671245801089939235956157560920399155903614274245610176473895074201669779079703606547564345800148250845437820647394573734419547744142559613160122228267477826278168615954278191113910519273667724047612846361187851739240650797228296813453566885591067566580874778993909567348174221292281275570163674622227187493811907918993141443935484475498758909700945225953242350888471775453156221553017604455492169102460003715087521282156383121557992621488720905995410424214426307385859371683437998368628406166503600197355611963843123206273959572747357555765485933114223365810441247516923492799750321311876318648651275889733899861695862404764969688284248955626895346301302980431493847985596687962967507586567813587070199970916530261375776551892963455733214798444732524333838965607775506622630014962917335990976757698753774922030121747486901246217848822472360739409784186079811788619406869575216853955605475637132079968549981697130787931801408084414432744767730955973524760851535331505693628628772790967902707728708649135999100517209830248409205524438704133663757584905467942243197313077477826905562585402305368098206037605798652288000648076851182032175501633464265082799881771399426104638427678033629970255840994814602003413781112740610593939917188635833526716339964989072013727194979555123920535872494352091559254060421390850968899947072289344024276261151623829715504678063949077322513290530999965946836525192507287971453496698598642725113981968682030648144756648889569527748570666141221053222920017918843841832326737736720757593077295808350704867848265802094017984360729863810516773808300606396221923241669812666694911565075538924670475061939192448813269861902927141349747333539497451622566192706585542578953784910040243676144657877434944278074477263051327517585172350201621090510405377903642209554787678548159700616862149689684680106050358779333749021945098773675183994047441483782079855210636124245192168258199860631397284707879774029600108886693779856703533526099482146709200766520977633398407675280256397068407337069946428307604123863699626916053793033237219579702833825769190714369025852348032660354310602568045943985330343577543112022946807181349774008092616539528849474945146412578984003394021612881008006490376839933124182150090008534276202476910000886743775576283700999687239942910426921275606642367905530582216119225907413822796285454355680827599175207323380322696769699827511724640158817385524079270625469048764572264345760223280829084807602486521950389485345002553614046432387683394154817518098025551645033985348048584077299204648697039789580908539074936032091431847948053971418873186953216714529358911309773569830024277277042306731399238560062238214048887799377874448032709978619519685916069915622967709847729270461631324673403029522926670337995642493787906522217255880852307984621914763945963931990178051993257598677365319135997172637651091258153019261594694113260989352149495041439195009237066487653751543787677357422562899285647986512135769391823454039633374324596598779592092324755529074436513888966749627316228452358273970573074040398859568699542493595315800960668070271737130167784741757706544362197342958075186826494432316104226388601537867324806321055922483448474443097117378312866569262163194832772646798397229705471110578453627236625310770964991226748845215441977779334050050846128784767350091206307009963621182765949051538993547627546443018039948999104171030820549195611008011559265681329612415844388383657269991002734163343887426058573059660799016460678292528621639487266955690701697618621483367992809651757837443410240305472947011660266815696469868988941468981964582067487219085663734122339738621156786975384881473359128494919024526097208940374314619651070502053320726935237514815071465794174066793788340171479359566879786617420992227116093919402674430656972055202207969262119883432987668873405948954580665977671795653181642442647842071029402273580039699311015915879877317193065364441905235735886452509832088899394867561710438649998080498586189592972964952327970927718459109548516550159220957419159096976051764500719058788730760864203070590713764709632754459628965388872019312121606369611198143533014760678224984776804095354361742572697582343884516251375244227153806865060309360193332667802846287154156205581441017525829059027179061205456604858419324458614866099069644029066367631320288053016432752212310328409158923610931367912694066584016694974021964728884161538799022835011031678253837734684832551520231458955021051673002477801144726213497236746332426792015043639871980177844064989874675533176489617853438069381334658435072745518322862202971216360547889861446605050453824672992963589448329660578175322618923940691989130972213933037104849389894504446004067217300531340922592499769079614399295996339888475446101471917801340781988951905349830790069381091409933482741177660234416869303815203157295625321971113558911442461263725738637713752763662490675714991623394272618796735838403579200918493762294352905227027865591658783199988301514224272651869919682601640913609223456151167056683729652347341420603606689661265603259175430378475262073740665141516131244192433587142282264089148686005971031873039181643009460504413385282616567986499141403934526795576168409797461564750550795220837429335063208848073037299034059038903973457390439960026925812995112226399580702036290490665252688391839359906074113777362582515887642631621724748975448144511001475674626635811547032782722657055198127641438015897453899066743727875175534619830336497740859422151768464835343236048177692539565628015198124221305669987139407738184737289447810143586843928712446142263649241994521531902038003220792777345233163652176651815050504752488275199333301233538805425068977261912045753789046262884955820554364095272873404136651624226002392549873350224079998211808650049153236668502825841107400003931875240719446119013767274754808752427497247576793097004270042558781824152389524069246844238906802500452841740369232542175583713807417653106784801765503263759524451296361544618304647614524261751685684044513806791534028040314106785642812094845527049528484902117549707334512411927714632385383806496137688646982622768063492143414723036839601744028286167027037506138821201143053311062181067634582306754746905385855989089902768982578973198348640155891058695663925368337477499595905916737727300608767774261037173181823341721525438524259343857618080576029112833422025840849136352106162343120967200756700469508467936235917504454447263832812812252511370992641560325011382276822447639027803086485787885282670391137073935176414647894108600028582597986104240750418358785986500298942601214546920426498039879130881067593887637005906710631704314520777290202173279861906634467140768899342595841871776446800270830225281399945783870689645192869253559232922921973014053234189223544463066582018881950096175988821987392466092984352751377686736957632582230419452425738184434488463345852726034016567514549089453966333148841181663903849549600947333703488291419050603907056819868893740718249274120115991375917631687579610273220455065326639646832951015894641208159117979056729755377371289152361407055710684344187913507178742398630388885727296946377945465432047915378411258446453606187595854981315379600461833127375907463310658817894018884410353210692332979917190046649733424217019740684049287537830567892094719180968949905424282252175116041775615585439272088800412945179245066759335416571513947198306638670310721375788515782803618480526758129783790760651744513614613624967021077823089990150524666777060381906973015296547226854753499434953544428316600325339634452877925467771416752096984336113120513663201566804702656884333339049711818672006808030098673151550456740906051349039542799831641978487252508948220878995184172356037212122713950151279296815870831201274497260208869017482426282707501979858804024944155041495203431349442135100723159398932099634232714402509044414249128363675387870793259348822510658506404390563667637814010672079514996921228729519726839696821218559972252774281502838534537491723681122499451082843622868662250655008559037677709466515063647894893555552367341022379767538263464068532939496241822198879044628191274776951500304283903633198090919543914117846700881996829309876053776194140552780824928193310690701888003331832350914125351490007690245511136425758985978686116236030604440941183196541077360292497456935209299946439101390533543085285424997569692776044099422538344614072224843996488446204964165688887113229683022487416021148554347161345384731809802980799522373284752018320071482189125075269461725841584119660373867928614292521850003742873828448048885936157526799375686310876965498797553890776727488771411546381981421073870917124197517151918160307869926560741899191907794525032212320857596659863621990538287010951221221254823471745284387913793409148128453497751832482138102481116787170026864900458612368292152929404675393139155483462294649207159150991453012242344256198898349246008444567175509289467123688365796662252153558551105023193220687403401632705227462773226417956551175722495259505441598555207076834007693571186404490976888299808982621413125580193384425252340746771811953342663250641792501290568865323914402511893965221603691808057694719641618284038637645189432500535861913089237399169181748278161501070667089663680753550798176897313097617861681341158698464851917578502440901181619444692521726447036751210382138295651599355892864665955607993130701929711898489075789997558673165868692373089357001793907048735508966385358846991549979132202562499040746378882704054664186806864435489966330727572713342311122372411411731062205620860567463964473937393494160457490511043951950133733606545257413031861398682956466611573466300248666767799248954325294775651039100461815829218017291098582035501248157447349665161089543518787218149374399397800948468857164585550000945989751337392940739777330752033186776481810760703308370158235639329889008097119953373262047641817775103960911001771390419656885793736985924012410343487014731804946959519035380053208151099865813528679290847300672799633685304273227438861244248045417690929112108494175454920186723161826153976590263328317160319931110645045358927179019576174567511071769456432876909962742102450449311664750745987426711068740215196189632282828603795582616558321762793016151522513177621362520963585686236312716586421810247094092255638779565474718704667846296379033852761185982971472902275385663746466426519187425856071741925221184066331781822831975866206489085338029916515669849181426466670584941174525852158374963963709945071637457463466273019823367380711859331737318559712364637844137732428488860613110870307948354690281106487760610194381154690072854593369247560601510125953572644010505616700290220840486771714286553900034376175088783725376724365194813664340719326744379093946364793218479575619472040167895830630145257882010421892965404185610170027616163440573087113852314419541162040072320135343292036622817930482130687540046237548993304303840096512548546814982162519175760961438305763103886650932076541559963670151645623736695483800888281603131629676260173078938117367517252813705754020131783541608904589237336277277423650192550627233301152631889252965791607615281914692226565779250178038431411129522382592290072764095914171429220454556896620404288360353773964319797931827046499170065167531156297287388552010821943156573426344255119580689842420759359057774489396110225315297998400024503701822701672058525845596450337673974286526649201246366856560472467957854808856472111396678297964867225188623178113315368995116039245981931715494955689115899539034569816136192384717569422186197446630671888883382082396404926459132180903014439621632758200551063202562317576838430836560522101422914673108087280013907994544196959585702836919634881051579151700870267838228349334211155090600925191785960854115251956148473280247664180441688145178003385476259717917782684478252818092113678138870084889077603902122436228710976957009536830621380362208717829821020352941202755628130399872652130340918509172365539904369452123037313022351062668608806607838668437678607447460915920833964713833644306749405266817187192216196134466556659583148271243996931079485094443848386189571756087253296056529792455279630015623448680275892345842723484600542584469490203994477904888751560847984756212302490846676116011716059275738391488095479571708434705112683522337167375699694527577062275204708645100317453085230410326522636082975308675479867904615397877275269306132768606231519692772504728709398065697985296768529387357908468163638821545781355723892877426872218335877560506160781288147306681049420246398068518565172413236248415667144084826963339381862017899173169673838788207364635173261807906871498102428777608868688877717191961842072146706887579313778574537182579855902064168656755955905929690341359422670474197196800290817654237796081033021374183065459110834323351169954592961964244888466643525385040036457366194092511258408723323361966848617957529832363460970420225460917978126672276075993588005887795393394295661321720796707116836851100980325133814993348469474510637640781083632557620690856550690363128834460677926007381665750076367748725520332499656530990513964269926361150653957560243121636385789563367616692286395185304308912952686437105388372471724955684857019174254309347046027707984016689872979025961260043243129458267803004467775666707261842599164753261343620841887970213901880725393321300691746827379832097901364603450333810926238056999753763252378368675531426660842953567951905995116523903134358394320927843799993151878925332836806883311488146735401207804989980077065905461777685577757128147119829621705891335883140825388940970587998764381087879556981773129787377571295734678177417888001417534199361724053454581055530708024126356456477206398317265427927781158241613693017716769370652416409500307423267295149668149706180277431028075948643056644319981391990920175773632539950345044753571914080509057996211312506773850450317126522901931002831355694516674619397455169675225083932613765236017501478786981213225087249292187926727224458167907321178863942625865271750441396013352065093346549186197879245876372765510013476007330312471121713086581128372682735452191991614167936573872023710479576550518134782478195176689210274114055106938816668011918866668371559414234808462297986759641709114884116011900937073664772211302318401323332552284924949723849671324270555033249894405424026690986178296249938630733135984683455743292084156937297787291917032975547940720676140279506110687970383804549626500841016652355199673271478564758183158993623894128106232375320603004984842910659644819255704796742444163283387303158975144365538621469023243501975335399698384972524562599186486441063099315018691081903093831232538149752892886587571062499523754999330269899714673826605694203359270650992722309655201606513237123898870830049140667498661084402056350453251062224029697641384059557694196313165100668056094402959104884125229446430707636861500014613372988222595800363313395840415450998393237584216534158513718404340970419265048728506838965258333962794615669476051358772047579790073326572407501553394219517973263180136506840435180879162359906048618887379221475142597754742051160032034382146870877361016615413495005134578157335329096663170984683704253925296273570061269438075595911087495135063893328293822737754574350280258321968746900314835974245543303561408072308515960403200579489167899524417655639168353774780902638798964383623778680282635608468451023857546661314473865517291388226452964779311381299227748462828744345765170068619938072719413010324941927165067695619465970227742956945368553868207896396673014796519779330643931823602185625841387864539285221996928681501153276064483540707883314400055264126978387029905981747677516222678822310438244591409695266974966882655317407750177778388023100361986884992712747603537632277143745890673636908851986164159460863304604021461397930424858159137793961604040906618763468887181070966727944168315125748877141637322803866529538257663026688114256806616210458250939767924200368006449782024304367317037550913484763182669314692575157599067918380017435642156551559768726995895232281934835812136424170864107330980727915716799153448451613723169952468117851653040960198427358226157269055065116155340713430720836482585091122707960747350673968156910582771372147832133506452717379455089205724081852353884262310045521360999018518740406426525431250533334732627729180350484631099050868059912525484227183433406275148260423418248362916379228882971445269760802903551993986047302406947505240848469584913867292365000083417127344708481039713205032757162708877871600977681185911341638888642202361986677598530748544935213120208432263556007455652083759406981364954892441057016569606211521332563289085455188975060698184671177744644823794696101204133791175780323054027720566668379564292770730685256811526493547210742854417800810206704136311923121853295767494151303028104659452579095362217883152704214589543600305200269661785146983205267796788178189108576410364545876011255812046235568473162071020847977226787633271927644145711904370365765056334730421075350113227758627365539535093463559628938073354866997572722537073356003144860784712073411793590407030979640557041913283186403863049918853295884266109335652583957244870092765496738348405324972394888806195314684991525969695314602025398427747735565997291005822687280492739606254002935383933300467970995398069946703851798023480020402116171138257903509772114184589018286932889594330439521568926371483308344324343955540458735436483745711850919931965476028773134504910894351847388641514299246517530944619032525638649823305688322908823246474876374636414827907780952113184273359201939203500139992989932513398483611782783148799014082082372027086254233565417481887735904279968267479131176294879622701119351728762772003120649706257067798189234693850430016661923037970873711810055737351417589601082249579390555633145107797352413793435008716763854583627124440075010702067060402653823801161552641397904230870830883182969141891749507974241046614023544694359321222531496173223206912357892265872896574534798202465680132681843374012970538967341470588035364660782859097303458148286092149990160122882204656289032349641593117819854523782219876182417602356994693694460191061719260774325998230563979657453697046090007734700169111928825074289014919252309350534704830900217970311677690099278967780830204008618092981332276916593453277969038764727233537921049967945349890029244833116475825101669625779961277267598234902406755971631550619186036639125214375385844024202804196045895356516403717973025731576464611741994180273720979797288356547055640110030121250428870298420150367529835777244630446456415170073668590927484704825052398110255918128179225071590370311144895971604628315162206235850983324405794456344400396358139726059309217083431751986585363400193363393456509869179511918695207667961829570906497789075186225985698897261563293761864257744863489544765554723079602975401681052580394796634467170036966714674305001817943595960531057280381018341266905671274657414312397699052354898498465717126709890782731978994351058938180061681055359390722371929735591983070134988738937458724982989122791845654380712120400569295985454870926035471520297505885916489317223433134859934657502972834359907905332550435151416191443437122404513350146704877443988652573527934707295173288188908928578216126959579449638474422392881662401242907400289995372056111311237767276045697782975522028035069683629051663423012811275909373670288729561345716024291420726973513709910228070395797887300382924852601425745630001117483528667297645451701669032542071695904834313268509753861943888974686428050646720386002385295824740602724601120310710080090613370115738147135636148296491060894742644278067976018816320204940579035360208242224608725116015553751190747769530080221693236045131691025964459952916081481051043758819520238018539963944635124293390190349872327219862028513153251670000806617637521626439154336684302828282595316334320207438873149268655509964629517469421686136170740006398537578153407383928864708893784927090702617027490554809136636836437106584843650566964826162499103568937499641205328629774780230165437028292705326387129071587431160462276784654760504546982397529310210804269594008893879426698605710010589555321216793039299764783172445540561165304731765512450174651065712741125951809301350944880657343418480009358940477467508779899444392578234552511183972494582219931788553557382831254386833744537741630177889479271118628893973822779359360246639874529401565494426386875463961067242941475247044940294852391541244138010581216775117614238292992028626604123150014288359019236184881202765101659255180408468112950624106568267034209236854377944191498814439593982741587275958102041013030631159832035564666070373962946755907894720227660249148271404025096642688692171381006201612481315243299253746299875762537118921677309683555930638552437638648028176365063959890077711986033746139847496128007365350012500766824614497648671521725841766202304072655078962538399258523476297278843776752339904697531892573718347128812357858618188184560959162899187528858666675267865512087258093598135988481230575440368585428620486120806419254682998398244958437832371395956437976313229435005086430113801437780526765855955832472628424705034413391063965822682847203573228194004437199282374611482534162166528425706552777115122143977597591577138298513878361361237594653139789596424609093985447689612557509480351580255707938847328239622294878693280934246295661947114957602423586146469048985090468291015100294932466194523595039058811952942568565269047049163576527674194293765722902257687823433275731001427963010748297492907514915206372945663475560887525708404688180961407184734035931997100096285770149214048049895728239540830571194889949929899889308182649593182939586871036671541903704280066300811545232165719430226435646022270610720218882205302824459596315505643361975276522037917734408906263978186922863779807639101928521524419968317749518446724652519460184374952251083695683276645918521495529059582509403310309402742076808944039426710570208682951843974388303944196048263710861760493174907929385457066106103392138138887797208157697089421707533595064770368120425020051467796763110228259538788756425784672675599706098445371470310381937244131603815881213146880192653325599431292039791888737607294073971176356535830134040889757267583046685943438368276842403047142052115628795937858841469627039663189645138573881014115292987054438021967020743227417076265713284249346727595321175328292646118282014965855823283866363143411701538007896307720727402602885429740144590778200932841686473601171111954828085593977388651810171671138258520328939055780595429140877408407258350253354455132026264894729532480063203669621594154168965344624688671996124599439659937189894567509253317392671685305874750849133214639968257486600826265717111146142904488315251955591997021312931861637303582770012111401184595228057299559927339723720188852051017140515965136801334207970775875403795644735852817257397306399748970406997214847373844263353777989095669798794056101802844157327757918761727818653414103821364246077204922524490090641710281721689321592411781384573999738124006004843526694284057783445781796196155800087838894707789363481804494675619708623140630412116404721195002930797379474066153734540775571499678267720945577517079684682149270311319521010116975521254060675721916507822190471190974285629945717426004105775368168830087648900259630858719125001037924961730109678265958341409305232181170085075276178257750242068473495585121484818838964343137391108460138180283296717186514530406946160537245446675681954255087448060475708962905507046609256078505658853893459284982718214542291624478326435911614023232842761598633729339675915266460398067774985378572344482689658415507103372404090381386615570457619221435366644646870334346831795471173616511944465933648602828084992155773374412171578430802499523152678533405946901317715532390082803030199437051009770625508936378854723564514364985068150911024622402303916209046155895495071357691737032059447964688193188190848066472615801014313420841421873190914778921770496027031527359168220027947967514738134572648572442119023784827020987816188784341283509338405008492490937793508328184014851721050030094974857505531992857584313464223322405921926689395103688652390234430528787745430400486885925554398866599938376021205767518077715178308279456660386285975171608682691709852845341747494069028047588790820928888107305688574892129177554249842062483125127823680718218255716702178174108085643430947953309329251385495475142959236098619219889409449697423603899513896749114815869125839743139341386334903287133335746904229710072745993466362361452652787630859834361428866260346765599059926800414381636891263654763215416399739859985168787798601112220139253526956995451024172587873205280321423852810668395653036202713742234774369983414267255975404485019176249979668622592737926710815851233136676768274132070728515396059901287530119207725969248035751183363679735553018436303048157030069517319944559293229703233561876344611205643828642226018724801944508544492514160650568616287752872436988960578802599743133401080112134940916499079618692110330957076006675057928096178758860760119070302813636411543740357873367026185444062173862288662914621353529239452535192238022314762324734061907454728252742199212507187448817590384906997408838512240591897085684447280246218738894988917861814927790457784994607500980062995055210112348518766568696386534476830732668698925780627813895668807875691852541289079696833749840389249532479994957030882922209154738999301557379551425869883977161622189558750712074898996220528535434223661887586365957272590210267763941380630511099786575755527113459469050750783482085064698464016848706397855496068267435186627545737289532307922489560967827168280290711280596424455205174139238007283921366316254468628161876971773227500063539247232777928087118502197119198353181768282570878797579116540282554855177700481199849944483139636356799816315523229941563247035457516405539025501260844045594798127266334191125684425893749861706786169616334401523043177359031770067377506984604627275944208500875028628245420389254725144175028110356271734407737499842404496274006809486611229054696132605608546804350589538678092286604424827339091584476695108476404109361519757393051920146671601106740375356902243859055531355931053990331059273197605356904535033128793475441678804433693299395375656859975465004976421958071108534101344538659958288373791404328778923180332093086129211432081537762572679477248865808930711657466317865262045936489930796223669247667273167813657444511329495139195982492455261353289861526127199525771145218469920060445375935322478219630690068493989703906512766638445914003974322216943124696274156961929943738489607493347637231839668933600956167987917148507648499107425596488119495367319787224149464561354676775331862788984728445169306178897023381719650340656323327671064001412037770678228798405460898862812523938114184034555311872218381835642773809839620459312331693076926197897247001102049830330347149017752906064044741989796657668480886140101584820161445019973188676840584461394351870808425979604316124237225275154387187696860656523736942949869414049170191563196269587903229215770418861245321661839101855457249767979201418727228593078858089431750830745962466207402303398316365961364092153488480216109133212745157320370753002664070475536856163905668113296612815269037408191777900410895222163097958976347996382761814840882815277188747960836852669231231096600733597209295611125695575610049810080352288119011238461849477855019487422185482601901586262319286547880139359934598011449689897174929274442323430658508066254710450332096872386051687028204598012401758541793634580095365002301427154682094959651326948292470777052734696544701308606571932639767502816580095871322685879041424226043662972525094126490705962827968949468409877318825214564753391245008205557690432211743525938454014589584486388643371506818845455205638081434692071942853432849077424452320548818887703532846567677962517613599880069531174207961524698722443350452541802685535335025585718207150604873081996395937467280515120993412840431649724486374322753746015750056092206451141856116720397771436144354529549472613633073737003116371636337786408704451469564065376756454290124365903916861578297017382793468476587310224121900311405787598677062902848543892391958721673607274542904347784950337458475285062432173654387982389360843893968525227168055001803546379262687164273731332647608098851714802344708039369014755070189987627281467692227374905315298990542953748890472793271908028064049386369806029760527472168700077699007776338971174700012865441901351793170220999307996026085081411020661365771660339283497600829831563662592373116700534925801095426705914388907222145657337095482849669032208216108735403755871045048225216022528227235517072345138574331501200062947072530413136126829365541225410404767964166357604748320574991721831451727638402065338600423853693216343544074414900896876088428363738125709259408792026545409314414516292232226698442664087558197004343285983804488263609784256003370725240206479770027178393945513477359191254193284366343460565082160137914793233772562964512231760037419778393784243482120936492347188142220392615702798376133152144679792242864085476452818639490225713164139473601347580178676251919877684928581059582572151443847991836870447983581884585808170040470946582782444304828418408593155076678048215427168751867939453388486692340558832642639732803731113277944997527637159787891184994167982151591237936688933625741524207287682416203921477003454508313860810213752885292871580507782560219023951219727928388279934076698337901133545274577128192110518977810860999995206516339679333084820680132621493206382664597274453687445087984134589214335420370452274423006854163796860172576845203809590479524176569912495503367398514114634236447938656539251223126810755352620023597939332098828561455240429216332034050380446543320461571161616924652831938817627697826241755222946826850138489955271990895669038187628380149554555285822597723773158842918565347638383699861920064999894417097165030149578986939286975783738751932495474676059763529706700065135167603680562558172790932960920945899523957184416681327320862298100983975714783210862317331403106638777606437111929001344914461073010790975301313517782408941996893204610146087926397014924984785806775347646420732054092577655324160447488078066806571080551280772956666413941366815909110593412364058823032533297172397845938875444648134833081731337802294001264681710411679189344015034138960121739549329568722933680404086292617031373234566120292842954809123947691713479532231930156027999736935811772645472871028207568594969167034439314407461120110456212536020202482369697170785023140522185561115650139570385210963302038114870302312831813026019167003904209413963848901215352290505045210592585306817421234456846710561597821561206857167657426393483371679069402709981180416952832548280086161361703198758287253891682370359456595421227587718640915288027502315180790275051465993452086056261483609534008598713716098900015324120330742310228361152332656682812226124026275915552277868413079511288524283193417023680530126642610257960554042259807436153413601858642852777568684488065601436753297665879840767994207019508832023418627383588424068475127552163646424863135838642930164336456384749862501344142751080860040278232681447404638806247391639314337776811380401174139165630143959369408409086636883365924115212693978093854405581556662268916474555816334933959395629795592804926233481556081129531525599355786953666855153496107305030909750548224364594128704854635591187567256916577134703407985209805055698814414130423834359672837185388290095259104009167843274844310243275998862014561827276430619366948099746010931325020953721256234995895361247034307516583345500681960504813016779888198324391511595265643923109063593375268713630389271806830104966126482861122812774154026956630345490341001223140548644563394363155430924772926898837884357804741050256183521318418816863495015044568414766945641985165778768590824450921859403002781214346314026801005484848545142202595649349300210825153395426647215696326852313936603799530913403167874171807571224203999845573578376385282649141543055564755064287706932933464757970263931461152861267687070829404027097075291227849972955198640231501977846002287804115647710364294155112954575921374346863259744452646587876341114833125379715259732192065896652989305333759435713741644632398422985632188044384403625402659694614460707016178772394742440519316856899478319583039584325205104095904698808649142656735966134136415269185327664844383360198465952008358639074625347424668847838904270880573519248194038362899425218098354464183937510126245594244044186670132087433009726776140330797411952225966237927514959442129050251181293504325708930407419487488375887716308903301883135883436607164413700487420367747489349750858658937306844697755864821368667305555008661869315614940206672314571043393909144685902530332516008443809607989750320373565800849828897894076011220985554292660538748035645793362225190547266617183752190473243017536539281349210203713567897533323826492942483762978719538999964600129702347555203385874138808649139273559536448933385872424983704492847303310127776204987812049224425267624685210552610712505060916257288924959519927610891672256313612963036925416314476433649954435566560448480883227893549166347901963833521452272954458457384734103686154531119717857708782868488543371926604092140020005815180084442373534609487363169033766184968264883526475133959929719926787971099082042790849024838297326412324869371135121522911827262068847813573213630821441634186745441460729786840525592745727923643709288990778339472559178811893519002782178560884057851644170375770245760079680380081984643991299983375390258053910095054798349609100911293274498636474953506616603431124535146568260609234739106477882224655312676546483167217525135333851201526886838096457277438453707576397489187170770458674514105404910352786715233069857960528325011965034153508561675211391248029249179037562979697760161961007809352590108704086065882104498037881188403711538008064366940402879052584711276889899065489967573741625467339177236421931218907444821746908414800897276212089650395558228499057030594214136809114478546935523592020263646557864833728021671822889601982424827299202992159272868006620657181198719402300759416382234021810745107806826008660893413633983305888612685339385665676115648486249062096640169990007116909245980667487338612435158475750574786564485497691639972389470719934544828600848126858914369735381553879862352507580449951255336805046575662701426754415621498488725322551988023042373132241268597519632773947656489858834444434109250901220963339312391505593189760311371267753412331493031782580819395644435921220949196035460373971651274071319325861845361575222610727969989056115063886769981405554694670120744254290615637811758293176035853702795913912717882770999437226029117855793064909138467277264133515853719234020163147537960480057429893878894957002958510421647624568565039341184100782826065289205680160474640936625262568359049291397471807076790602723518925203585190946864543451916848578743621739563547449959617431152414221104346777488494835971540937381334218623634186154626975937704435746960357955268987917798195402630220719156967210416708825351230731665559741783894936549211374540306395290593312598067446505175762871069732296678928408824616976165853576948806730106462602746704266049380136709615908576997446637949180930767823968381086815875647131941894139610152848686677327258023581696569417582134813646699296722880401226504346795656174089547237584655500907451348620917929923821932707952254344834121318543024070922463638060021119537735648205791342230068777895864909970485259886415388682727011678197680760504733168441320263816698001271977479347090581936022049857323958877196238068237233085259996509804856509089203215178730930841679260895772288068107206167900281577896611514569704461732229212709843026141458522357425243118836622480678679416317705226990471102873671421274415114545801589657540892172100543113874653953486251060829409746798020877600907512677343453206174767841239414769783962565454056368171421292686414000948023671418886635793628045741644459792274321288227970093887900601158984777019536133885467957238524164940736390120057178290604569475958895746452784612263302330729326141003356127803883607798036377137232086961203267625403865979192402503156458844640765735829899433634403701968375321832665744059791968756138545440972669451384843828103121774015497130253486760283722720615368181055999373753228184590870122690945622265236898134319456596862878386847841468869941206517035928968369785563451368151906896067862320722622587213832949426630474984250499305270282606976516634856722804163172891367169515082787085168274112986737790377891179923677946039603110476611123778788009082171839998932695641117146696057492244252124725000457428754042659021478349270783467468628223061523605273886159293760829933917219721667382248858384545440707347038249071484551607009083930231275532415743513630817088473070086704983832739944079657982566566069451872243399002813742832763478075669374546335192870029579026234590383752633271942093830118726920930367839805150120631529645686442231924217376148782021422602325926488670115557543955028678056658110350490567521860745464555264342285803350340544900769100379745525514376171885067812634104338847846650895127443236709115354553282261175558732530537038989845444139754714927133914538704975726863303625983336863201022782471206829841793700882735607939994663829196908708305867636914443860369352753515603919022486292695214636203116303522023168729198026754788080802079478714028553178112068849414706931379806824182029840320923965228677552707439807469585020157927501237785832000745694138888923763492807394196373023434860264633603037066861738553920689574956031620297687255600417035443347612397623098213132529360821677258198646798756848131387609894420045233445957124606867651387132914206818004353246279952147289256956504235150434227663656660265479764664300168162404775937921835115243491178214305600610193599035524352924397495690178752724264336928113616851251593392333316911205802037813100591159214685559634811437675089523821943737393812306730786005758846955932190730868500679361840012457245996763643674172860083670668631493037676998561347330769137517707194191939076958967505083339319040514468625315119870477140905183251965070842336484605119542065028140378827699639261153861724389604890453717881437364402875657271658682627850308052762960693170525854542543020716691988280252832987296262995258622269776053109889423526169142604550517642697134881354671239496196214231089762372389037697596670359007987953404104915604054900388929137460523787901465432435587876858067324003901291518007714299038566286824108614463476648612729716094702012747189780152078316314334450180358804094704653987341016687890126153084400608844750193218685310879183701791059772423148129812982918155565982998225786486626280774110051574120918869211872014559977142898223776111594182033571398485546489176227115452760139927986896321718445916302063586398953798425399848699204740484125437149425979269728224864983925881109578295742595158809284185450261580333227186696627663219786441976570660099262083753782014627044107686394687518480621509166434333544583302714351877333803553340503829415381823917489941908435523786938772409736582791332852140040842783558209208180522354037262844963888501754396009684675424005814195470309732472431418440972558493919197419857010517177985362291544339251131794026819964980457999372685266903303327057847965400676635024908972079870447623471545453097391420451251669049581721462328295664842124808950647737414855082486986441370091035651108362620461422506551233371064037192105327524912209477720874035324183738249474260407301535463346078968387200291878814233183857041126389721099879448374076236128836609002589032835225312989742149741980877675526853079798575798700067303398678099155074813986305640266610518940812077483764713026985121145209682136619058612125123643804813624372225088378709705737583846169363696914375593745979280765193727686440492354136329608952246856176983082301160178861283372147904162933822874026253908789525574511050234197677420024032545044047772189364126356799916439308468813938162917044536286169706064063882163010577802315149352639731154009946167895863106109126120930867479168430016620307885128117133325416395364313480667805024364746556668365150398552191957548631225223990964897858330249133940326260709217165743050186100113723712566737691516125912608273269446407539023249238034209798859803236307110993055049119006691562293635683241855048975712129454613250503122401471649753134114825831288339801696774861961990713021618198220428840106338077659464994040775157018279767162071223779677971814079702833686120122102382041562202048543871199191213110694779871560828369994270046536063405576927891465085107076329129573502091493952068918985290338575661863316703907149859461460000628972926301414188876132623025376457780735626047924300428220952545393619685704258892529039584933391745808458358489843658345616598037640449219715429400310523837379281747632867983156325185991491534331183041235447764835222978513343045061440034694539430465205310662062794836344070814700198490253207210402483683625305797642277518619625539537517465631913275882009367044945397848602467383897486775918274401086592332213205097865596024590609530994489505836275428284681084856569062482295971088097235368895292096332518851188270051954136407019529790974576866220778857395248723943763872141667224583414744520582024872186307272894385133890349095212495248242209052937117710289164630174641209959472762761715887384812065950986246574758754594185228336832261300129688235056190943819202858303419523557514338096731597155941491019200290312978962791665218826251135367363042841662699742079391131155764693216632594168145954411720742474445943174273041057684165573139547065077094719406128746299395734447095280588041213023823376390245329892191621471405857016745235957567909198909545927995909665704091999592855790691146974016531486790892639869213410772038109542814836622662354536079914624863565909388334139273794985531406215165955158726479438396233152149746372604796271728756120360544652924175960046614371746367510176895748810788748433846170298620268417300731467547236913792807895762690321876540014042204879360512958903772187163020702567112962595657133917641511472163223495302080882999532727331090627039137867589402628288137422485239152658220828726905083856203814141491887866512290719261957214137783889765077664223335002156253319819381953147463825494496972857731602135250817241001935566903838754294914829610495070076295720580813915172871018160852209284374542061881374067859030230744427491543670746987086531280615784392382639683793508927193160436203320872993780281106425397238697421079439909663683407229229745780604939498587219428744906677208521747727209080368690410047870256900606434628254418903002567568242955660884931408088370279185523218288970346728369308172914851644155453524753990954703578272929021420559672443068749406921467221240835925438818320758478439751544532075232791296622761348988948589918470409152540300136020669617717535427118115035850650606776776679301926364021805959047381989477256189171824466283802512627884754359368556202739214962397126463734088952478924135957039372540057117564718342079932499072108343520639708827630783784649798781886857549591022961159798134409219961019746310818606590960325573701231626906936942405879168961719318908423656517817869465290545750005812190742595083923818011356578849306600966127876357324684998389834850706349892679406427677786389443980751901232580232247016302196182888243327041828448217208940991781861081228855082179416867137310582023648436428486770361199713386463147722078055828945720628273031460537994485578343018499012150721195132202744219837335043401362853341962020248333070834468477217669433757863796267961521918658016694533490726523196998482837953101478738975477958222189061817448918591433925198059772895789719378731113197851415184997874297481963577421776889179767182716093127414052663416793258241452544470167810751318554950891587498600602711770048364408563627186233798504971436859027627156484650574019504881956588123782686271934284993068332678994279340466440204029531121185257906713425694029258402073638545669717832599971956618474040585247531315319258824542826861176723059313364112706565643094848134456799346936297770328870057262628508892883870089245593599259491933791715280182061036283555041401750561292857366863622566799493813949512357469997951708149921025681240190911815499431397158493504850499426927857358826930011906486379275529036986413327330146155629141436515984445037880236506004171745424113185468193100295032321866933669017396933388679935003985660445448235321023555570567598217535192543008867285674524944966627828577296462153433161318287052961575111150123950554110277249053320136491312790615315174801629549943560773684447997366981952989094249959118519186136922438390012643265315545249976996562081351305010205936938389604446408060954346571511796421869051101241725811092927945169958479588886420746249148857834676672166706364737888140160605188479789594801391004476764343549589532123726614367369953027742617861866442106292846578761811856862734732991394372123334327933050388808581360424038811589909966301669847127654177455890203186903650773846057917870902587385219700092876725168510548716736528605199214362013018118443145093198650506296557528041936102475857477353604880381184763993707103088438090153971438199138463739267247912057484424325206628730266535643781129623924801069129660813364538821287054723800323591988574379322909568141978951535278187555867148657953293652045443248651781458271107098670088688867423947169668869682172660708925554608956278976591938490593667134804020258257527788941128965880435674498798357736943880604440249375990237613443020019602598972756281492442079926983447893475791780932545178972292318948129702752657911420614439240023761632225468378128394991773184497565095106401533344190005703400106873891076359227328807654518082386765364186645165864274233696208452346528143641804547925684251083398778424804635771606700701790464783306620633479794321024875804915230830038394335205565112643142162039866319028696182973720166746516657303266139007548885130244696586471020623860354142990275160959515394093820389591819238934882572848570640852712007126164730081896260432193610940279178651159536957941659814884439828804761700237626640578347989330898893268916112531961960312101584791021154859345676158576090510433796223123598340906783419331731336797106406314846837126294766763885975127050681161568973844807251100268579754510926949102705542322544003192879997058063518975593453986920915248166820284157828565579014551504681263290971739745611697349004427059905537602750042750903663058331567998218753206270990762422753955540746942867004043547180508799595572468481369723579635463420017194231998840836257145165424498898653622942050363969421535008351873469291468103233948185805909557282724558713135539943147522581333907110896830150412764116701295443706220150522087923730098946806440962183058401088937475640379837070659033859954673541166211936225920833284378435651597701169546677986981521382246487253034070914261788563371987359195024184423930580547141707221712182671197775732807111647186852141643913966741858575073822012090560079629683705477777556888040199830625724760881470426276670712288842813125464559633529507037670886562595072918930227576077449252821630412519150365502146127936002932053165981349855613668327731925112447942820768128793630434891998497504006827656665980010253652907494621730691849194339115729920870392417757053173490691775236106750083903092628351509420363682047810025627860884932497548266031013320551531970408912293686567086684907391706663335258317015462435786455398985483623654261829350063034779183337451712983425930018683724600299864094270469449154196328851731819618732793439143898327862536552646557042116950148777032897479357363961898832578924235145403179392684450449335585655279633333909093008091065705731445940240620459775246902308949960654868723319843323449301708226639194380272491759848800543459041335648341437808667473616625137700621419711613069502217604727951057430126055148167203298728776590382984235506110113003191705884955594895189882531840479316276242773046388703147833240133154716117271184344854977949796749469243743947198476701124950796009402629148955785340055377973927875237915357146056159525457993384547217864175903118786858756051253592482757212984529458596185549533034246700542074439139965280939496007860055301143790467833120584643656863630294932743011566731913733305184777938544252217603362697634334465595813055433317717902539362856312601253837928893727315917467750976290338922351723798134320904849735528966404552389543287156994510446151915399526784280804695076889510559859152616636807620351004070512656250101276195671983419215363336465544209841297925292649150680396044898297689473958458906718192929786551509720205159541838096718409467547529671662018723743992232546613711033528003831142472211133403752337007610874137883187494314131387113028050102209491663231731433615407629610840600659015860839621023335584263086509743180239243951279699383540051662042750170858048992318125556475796986829980541041111069196231246291571522506107010720722023268605482939056399257436346817024512995273587467670720637603483491210892032357352633029751299070449024067899396681338360149478034697233287656165080358948586392597250076449034245542606015973911955476967847116572941702497494449824713682154480293511810000083411613888111093291993059723847370303703527061309360191857582966192310290247780809136046105977924328154834869113875787368089032370893834799312070711050764470160760473963598241375262077964486797372467530593626335261000556672265328550877132668058850662822311516242421309636334191653796530807235282991108730446581670501193511716539117011321412436151133252699784450876047628764245845680203483055741121742331777106410205194667076336938840906479403568406690654450007826550960031466644303106949893822662553203776949193895904404915966662433684335354489905008954549001481406484412954716105675990221679805768818933522078646394628112698761109818460077271771301512002292963692056406000608167296159062225576728634069689438345256388037687650087184919675040077770292496333164751597253515040222086892640619862027565141472334933575152215808745510892490207007077536374940123138090559727309704024169815680949313540634261682947788226934198513665209386305647987464366464239021781830042099584872336858439728913699246252345897426175978807173614745644249649559906671897113941819704893200387369486189877233859232321166893245883715462029666861816485970955836861537295956087791208057180212457086379789005637748408419641761788123967471191114701582759572913928340096546384818841418763578886810248303022936786623993025695525288277854479127790721164771824154843647998329004568451354226855423218195108079196269905709599669963847212730627382209914952913866874834413720492139869424751052011081450761477879152680787907248968170747551152613279148916045795973346218848578414665673834830422429893953372623238068969105191645057937884682687749875610019624851035023134394139711768294849934453967147318883994496222962347712378426879060009009012675185644340455669902195794488676157483327435157849299247235114263637738946261069155427221263873878056639602018090752137618148742088061737379448691865364173013471715935806939067557161219788945592977042905175557933241262894180366775104633528052036385597476932578103265526203935874976411583299236793952466991952131715011036051267915222470374748879691757564654418386284676959039220398594696735387567340960546027342226835002910625049073246325717258659248143038124909322966385200002621426669964752729583821355148115962937520117291495186426728568938737308891098126487329786808457522278028620756107120153344676924044440371839311315252029855516554378274494331342305948192041352296461731652285804083854398578856522959576407154299932633031221391684813739234997717248657501285729611768495440238597036747585945590958063051853218715869669569226666770681029591732744361508491785641693337313524450983050083697181491237562206683690691474867643500120291874099160541806251060636534693908297137690557969856253294145500161694565436064761445386708211945601711599102665968247852628089309124247638971249568100617168543891518172363393577247996467969258982718638320594258637987018730699916078232926134090154379963399940034706926072219080064426472223702397292216080867229644291023712627669574513519277113640998096454460425815056139921610982023516177664569412509140128855966947486075893756728091193621015395735391097470619434413934555754649605684995971203651416818798873810962504613875369628500064600984819259347606039120425618571165604241795111025438806266553228809842765372172074111135464612223635442933862133609791213831840198423788537481064508599211503479808530727666559047803149263794027856724613600483500988601918929582632331912993657266173101708712293672314850173727435001468744553714943087240847491649766124485272862378689774045320791815424729012584687455705586620518670061412040726375621330956189781909089661246977922549507452157727481585096356768725352874223525648543916342132611768100873162170561029818692736703864300684445469475739413094260603398368097184882367849430525842977028011090205633166098520390285597619001235648318087274852977037588729247055827174265717899955531334312072876637556938167148203406496782738744082319588134684274988746742828384534766223096915805108084439654765604151358207284047130562916672733316097873371586356749958582082196007270254326215364304684789776531035876468955732507298121676708027264915134713334235850077606383438115960306618193267099518939587456480648838940477800790300780589272063690369704300161780342187785838992556038690611387904160922590840315843354055808248680030114590822973912915999955075243023748749300028958695232193084103832165133124386761090145272217280982418906769476893616521125618084659700675600686813480798358266865055842936766957673614637343582276545269872072646035506376972028372400613893877003206081857563064427521815853044015182460041210201791584248468169008004878331099872268900914492467930933146524310125133867868235267792332705422219098211096290872218889508324343603080101961375294128721573215042456116152006670130517810584639365326834065665822014534398142540907053049431397403075972918143286078160630240414743398135958668327539889424261273404904008962756209055302590207244273348768272233823432912308265141048697266188950817847848428750118983283405769164588178306213476713889842561046058384680760646743122905505530213429786640081570173855391611673803766023998068592216294254952576475254554753243371970106905345929539971983202383389758691575054802913189331096011666974146561743198444549958367527381059360745682484554404050768887516830934307962582451923870153443183925190565607925684850150584218225867492201526344760905612172927122076172102257076751503757024816945519793200344756542128026747862409234540700367541439157051607561361460172108266377183229511595925525346880694345572777737565454152323880278537654635486256468280722541505730386215000957573984191901080911155284432278396993961479770458171347281684504617618415199940696083024681209061309571817552267629850852919391469560858808844023092631726737256830337687580671318847179826560996120316309525320651076153196810858702728934522111962719077496036312980811551643137697947009423941049711506531397152324318341483535577376762419644157318568066674883506501143422570021667085200367164589594426794552640712050367968080003535211786267280020827254823670247614125336757193103047464082592204437963034246494527060260258012408943226479390405068361533150068819339306882295058902827293565264223909685593074232383386870984350532284012216789931679551407699231525709346138374385683360317651309624641103812284148933719354574783398328824168908028974308208358078585626454831107620007861652869083601920986452381951821304228762252139316054163208839954009267687304667613645156035000896594770744333734546414344480556939004450462922215949311018662322479054625545303068697682791054427186727223726492343051005575603754699085152816488829569548447531395531152423953541231064707654078785605235042444319628972613852983559643048107672060635510755469422367634519586057396783137811260972699862101106280999167134230106457987377957392271929534623102846430815788729830570929930428178466209434112565770153030489935959561320698800661303346973763507480004526688355526696572763423268010042154139427048492682038729152507631833709092855603397373587945218482687609692518441739723467234275920233978511597193928245063697964503800105255868621091431804173060300751881522691968296788623213450097968736314887129518300745412411975894801292735552517020150823797257099241855600331005876632100152178520567362453714722673444693930285775637408661076920442096320865327747114133057373544906685098848232416992858653123008092392027769581846032718937876050831990104713228151049026615283555721993077119984196340010849477575908550839385403931285403165583388940887966735888242893075007467196625834004787614530599949309752977872040737052928133735407061709865260122662382565930594234798467371147929167713793569258415451580615449551157560733140235530947436440111072376036598527793163545037350893152505288961933799552217918842575547676075358781061348364195242200761281400986226148726653697607124084949026231994069012390207895056090010549377982238752022154106924220593233202077128216193618492914740677192224244236091345197728345021987412539574979797392710867986437143979535567290447747506794741892403236717642007220231988731210938118328618480717128543530824659832010905768456109618713378695783403188715929142184611752135207489625728306359791883646437382086280307073078095041419558388541456924851401406929583983279516928584422147964263677889367477218996701518208279064057101668416171371163786504377805613847580511124346979918857850300214971703347836590307866113942367384185095147178515601049214465309219871418777628144779318132458546947305037169809022875058154420405357980340092795999366653650188283174880521620855042464988526251824206604378496450604800585332027821559485008663195092787370188535232535216393017631226373630583108626034665882437946648620616175513945396411802259028528763881559215690414497500941596812572181843802681131867772160609987295847011738546604215870083612062522714607817076861940142306036077831064213805156355662373728941827287017362704628715749867543269478494043466967301222772124282205428430965771021817851485041004483748182994606585859012851729814074471839821117220396486084759242279599778988041083110599162356326475432617014440388429026363104401118501960133957768090936813113958537795814417430825975185109272721111728435262715761682565031358800671074360143467155430796828219493000063563763893316878300384812373593333402200396624809687437912401001442032192007720754695899815790167689288590976075414722911535755180639692737447059808844191612789506082795307168144050528745755046646833929171205537483447345440673011718266195748287117654737785290690807042098468805389764741146524837736682892041574123887241975386451878767502452816295063209447497720535561754818424873874940733673605388900818820055817439845675663102679520103147486798908886180897958331543256200651248068339517843790518023283993762617138344782847796634385185220594725373019872896412988496507522717176227728396457993480122416793997275324841141306775432678468523597728215697434553335885855099070000257743370978722781085665602796818433621158888076235834551551688686779951531827009173625551730868861148455972063437483641657983836988750095266734919175510144843285977301307011517149620152912614554613135561150357941893362393117954945259186932359259455498868734916982217260151983002623035339285402562774524320198395783025207182292774745670357519873307540268461123157989501088239763342016367524992858772797432835853542539632941726997926281039558493272812479015901966895862471252328340205760553919547765655102574486800253634945129453133176166556456548812343765591430669749227831653635635121478568649791576770741354508142607305807142482751562921861266376549946154963379589224722455442894589092620126155750697162737632130455389138835669251931560224203951923135807932227824885256961799447042411031463450240721673027922680005677096739784912778285422529479994251903268293706001200344784099088310090503542232379725731583097771790059655410709370423513066988397189193738608952227240093845338124610082708921603840332486789543453661977230395177685705179169569478403419072813642738689038598945338587530537273137933350047665060806897392406926428820317237094927872983934894208979906622814908530048431935218699036131327292173475040562833424598281536405758737420026749468191496728038022091813547098793581039057706503577348833202887615552013347576231188123884444941883923169170291589832034761618068267812925569536741154029705514632077269623797048252941896702725623807487991758163679853721582961076638345324620941917731665739329707760330181859261084392542923529365252665830433805328768590873709913038627648167176340021848994051345099120539766360693920384203909627857238263639313201173953483990575273463407539467954474635610203147222622198240252503758466289732759149060372705618802729611615479440558182279575651878938724021129794116534576122763704171571877902621760454528281322329935321994927890289085818499060260039089203429643422518007958103035951061970368394390521424441226436148603732189711708236103419034445130238264302761285865552243732794691686618844402002008686419256507722325450054669829136399057223674372255654120683919643273046015092945274104551646221486083407279809345683604390834801734948741772915576726514643690681815902031750928274523321016180376064686782347379483584700659083342145021615357368302980341582898993666708939367861974715930753933882286368887407246910083719825020237513804667440161950356507022311270893881616932020265086775253504410046638454602674270318027440539912487086892363022936813272286170337780674251371774228716719730628780273397253589804460062797158177157318408597172440476840730091470020690509114199087760973294978216941795961710899539832764962921860000137155011859765919041383534184209077624491115016669524395712453522805206012945210691045635012585110975045331671268424308927817075189121081564961235157531360080108462205623503398032625027227513944476453258884136038272548055921373867881596943383342312273632138469576833747758558345891845726488167070914248679733386163466398910186071761053126063290987059859485277893968475292408042641924025080399124157015839992129315258962248966325435240768134336766973918071940877115756265377671108789945444181169060114951652076748963547312075218384405726194561105555016841883228533217136190824544718153516646314259484217195937274568845478332480150407582366488855729770940896169440744849081209413375083389913502284563719694502992163753846928057530604306608529603648333260117324329100997869829187905195731212816447625681923005999044694207449418752788518580994426440808827099862093679551403117705391172563182761348552287393080626003502732995813878514622243777243814535632330488440401663283202918593428508852227036329766702765200913238999317029593039870784182379733267986171048242932914862788811539726299169632369052098318136830404345148385314805841116616256416024872622018190997876092911108378026234681027636323389976677791899796788263117937694979929348044409627305488988477046215878505932757802672036977651638143471845300678458996843645335820204268617590055358801874489376027244030214381549310412413973780648832762581199408421539136187050378724345072261004634105975726780095570346164645137873493276112907781055770947028431398527054239304451033791752344631620696135930580652660594080893671011721427244937069691365551871250002668881211196116185293271786018205433291911557694359701753015845752308440999116053552141168500039327688693921641747144652881091178740622838930799646332084175891968251489707930041315437492573787855473658040608614878743770888649890593499014574677235814087321103830955254607839198343775192263690563254458513568090444325392673049899988991518085346032294585838140165531543334889332014752438501124882606798006922231531231127895516613497968967047443703787598877766824760815599712569462220544696536111981302371204733539324917784398785990187660344506514749256511862672230757056203318783239794156907674775972149367789200062184680010609370362142501269413005600123584578042687064969071067190140843906081374142322085669006515103852902454090057477628743090635006093777003946335294939506646546512905821422527281469737296076395898595933177445845130131432911342577904193845219224842184611019042699332036918585796447756462338211704225313836272900990584953282173236412730731522126159399733928974089771828672259210324986422873757113878598305336985595185309163318857622961542612112887167424724919364109504949983185696625028842935205205096969402025861105690541807193662100897438474886015367019696013311731946362014356466369702778853288027657143227317174456112874329776315598847237293698797652265904265902502200008109338600324808857356686092249944883693343154826347138795492757825029849255000889757411530205894527110070026732033391892792538796207153241900757379487064056544794013665221262114591880920119553729680722159042171465792313655386582446312813430391092969580309425488882363505873623094200925627736152377766928726268815184431512707288804462895010817812572835782450924888684099363154188385968502255417831069505336717283022820556783048429894817654259012464145414276828597176930315030186127211022325532061913309733355710372341656665595427272671389111276488609234119852726849138906658465111557271326658386001488174367856815081553791539295715513898352422157584799839775867493434015630974049067070108584615143697158260734887300261328986469587793583944489163675367454286868668701879428017431760887426837396050066424656503455199530637297188650152017331886965895371856421767305400472793338963709841054873828682172135210276302484945587377897745492452495391025764342613198668179413003834456810195771859466060639523889852215481397263547430856421320542994413721629986466524776727046557666872783377011412474846046666829838896290854665976607660193744356197971165209069242470852657916446227713083190027706710846035317292803163233461995177227222600182098625791840406383441971496400188737347056046528521381686539672748875565449487799969738952517367498588832990442887310235523274023685412179506509533956341342500198399930833252307860378340403959027111942226319563544590508127223140444304766810413923554607111602387031102683750224120213054747489297450294954818882827240824821448081474286411694711242105836419646995245230307636312602778907638845530882998782008501049213849544762421231034477945821144411850397982229660115279365421313315305883169251517122822936426709777143475272693677592342860548406571110877525682379524948852145537021988051488053359269345187549480257419467754511183839148089193321373516098037905598734656522404159272608015522568219437618341582489744556469569315893475958461424922092605862039064906199911622404010718125318152478120677229194858591783530224804713151880552052820742855112552888913099571893367692856405950283765566870623676808657953556822314948334277844871316161502336575987121542573570835538377018643314843852518283020632844273302736432673911891224871970659745521165518686646886639449480210601736553973707424701559432226448075134538448943216501797541632890502294390585872991688390361939866047578015803741101599642466420883139894538373602112821708100114486887286068972079520544376138428260321648305885142400325193232703375107774136090315465318227176193338818466491355722095521188605698678128518061795561720319292565424186504894134221879645053800358762174297878934200928027102490751188733565371804134392412760181632252262789410228634222071855912810756115399558688258895298919080050085347561716398810523585847894392600889855252252829591308067464642170074075478660835475116424103761034464771468830738718539204930639036377487165209803470984309409385902863896637043460027517107942629801045208834657502479718069409881220717697596465490439537408756334419575961215429523113815674683580197130858590236934087013572229586431297495056004630346524020960276228602054235765504746520175348448943877641658220993583148086790922365269079574843918649177338768022707116160232038063053420434195657454185587664044255396585120861354398172678230293922198958685376947523948089639832921379379407674201332635832685699057727634955046912962273099039733386699636699394918438588665511389524802502313439899374100595313735051854885018690550692530556219293380038132792664930949382844776394258859298311820268132720274399762770731311069054128748519948568459280762797006606300172086921768109560726041546537191036845312381590430887147577159581305368248705751299157739863533582738045073563666380760737491232907425434104090599876392378381981313445709528557367172097980323060114282606652388559944806159601197954337408689447401285963718850386042735637796445748571341023038921761197709159790836796507078080666830623796294940354064723270575636489864119821398407442814622713488418077898614239535006022980171561405469359318883586714991138338698772699619151819212878491523401806745687671255357984518247766365818733288892214046715219091325612994858516906503282670161612612104651745072309972360808514412824046042946244375224302437627325012518077706757170486515916536183738763753313872556387167383275574990605603497544234028778228804712932550502972139197408962006585755071342686403418793240779199359999490627192227952050407551233334148761637553922517938961210232079581777863496708716380783112304375610036230607463864581896442035948052039794693921174819776923178389571495849007356517490530100582908765170527043515849105692886729025283343967644139323109873677757049576955791628091429355902015228862374656158158436805549046821355665778562117684505102730454224010257255121482657873894559662165837965347908165787848100674883577974529909313114906723500274829852718831187749683368064567917817430751218589980584331291638367948679500835697757890837572677232004405246975594629294415894020176630181488393497477122854384973182617330687113820212222346537940785206347443876050633269834292287876733596796921234520318790561385309166440485327555098538452377613249950833236933739504655558620491564597414720989891647591510056158867216343722387253933741689963327815229646979679805140380533785430528700747510560525071383475938483432401233239748650549867187155275598428457129879756003668493071540038154919023702893908219586212779848884722737238170444533697229966243072608436488254574230815661723430085284099048304658010343676602543588114607314227648656147337705013970535207096469728826938057773035778896420584097432438030066634171211401728454895559703250973257812416925832074027165925181228500766298620512568724443775252303645832206023780406758857173741568406080522113992292640435801238509389424043551814552150522257751481759577853242194210999685736026704262505837857784654135142833342033279788004444541228150332525870931945872654966484997267689437335348032922270828637631190789359709855787557496768928440985230609225249571041453610033453576041137874358225842770001294544689884787660508965000190737531888248388666488779282808306228750461849719262117395543303283712404792413746666454377335987120525475701383454240879485001158454044285816355993735915058485293531279216167122859270621887046713218625835990371984287376706493726706542140536008995341130757027532736426203857974679674646930115039260411223086649663599297744443619323232214578884034277590335705108986208538929464561842699074716577889644075625970668407543806513216014826142176007569253195145919892334251114906437947976904838332219413566316334630268461197761500921984580009254209427150788801316917227194500770726384098031613487146269983554031504717116529958916838149487445356698046233305154165186362152332530714167410688927289912649804632210022045992676285712803672760201835875753547087781255029516417671714367109407721073846245452809637323490662420344212715193163052428168999217663984342264412734269233547020210489206975408753087481629521696789755611292781648187256335134753680936374898917759156929006145269330360452459045996648476554073949043761269799351079383167036030364078355071191124600559084580777742585769865385755605808370948720535412149046466874006051437860522564711786255087358279522675524902979355798600420830564474081759664572163056526326923471823097145532253164247367910091996083213901574515273052661995116352379272009447032602929444337942606762688462123380484210730206103312644780260206102106857979498988975215506465152385597589587807716101544145933921944639961103202453328588100444999679064730207027694505280943617366524936340272662207070272659739876213192010034829150931089436204815160261002811789844866008437542454806287163314745328283175219164901635215003559417644072836496949436097153002160482152886922680409696772168460397430439012897316298986085151752762141148221075014577065382954098052539348093922750834397694446590678090667461762255030921013862683151588545231284373641521883018055521318321111059834767923196188891753682283648505493865796380341873067810592976872333365194421097631136040512880405230649347892881947780486851296110187371123062776176926947661111089033249712253398510338484753632764520739553747177095948641056318672439924664429698091338967659230833462234452837586426639048611021346906110621201876545113123803087496299145239453078843078971508708558389929409029248480685909623246107766002921977769037774365622593787540802184396519310836182747277063476976511639754405322422588847847656078235994145811274427680537598348651257971885179913793550759845712842226419977251767516815847945772148050565912784963917535572520027213216576079778973618519541371254150467288381316311075835300360326795818574695314061373595037879498124368950330803412647913385052440559812752232570126434415285560009594742023772003242972569708211680890425750123264695458541150132118055643896362160933520823883035834335792189331239889171870079518466163826620022233193184386219292934776079595548732417010337548464825735819853301491668834498466451945706023091361486595812960620108648720792848024344083224804272460511991985575107362283692392928144565137920725724300318534921375316707649549010313613579510541552838544759098538436078826032363946596707491313999883497941453903906858361326857950207827398065316046199415984139347770435964578091782258823094076708627921078775318269607468068390044750517111546276329264671616275195074878562475501019550917794986478885574507206743563468271392993130869120718058315224993801204347494758281009067211282115275381137366025061740276117217231958939987408952557206020413138968893429672371304205527783471499996093202869198024671363564495387787462025680234279106245915035381071857350753165368837682949473741405137932943901015199936243366067344526011948350653745564591616218007899358454880879616022621118141810954659591422382142856885792630966541842259076290047185903681043788265553835236472259887999536432873432654237005618987422525220278694517296907028237161646854603376090252080183046631417286259515346853087848659220191135549387458396173299446110940561184710859592686930516079275895232759343102878588778619652963289251061734679260015919639093442142315685956632251891607099231918679661764054034443969407818112481138137909578490672237023332144624967955083868693048964240990459581189375551917978442815693693592210234099187960233708378468305693268272819892995248362030532352266809210095082407483301958306385790106002686526047991532360549939739780658831835743977881866757070404614755174712118471989907418399310156065590556857373395918699131537362203117753936657038141720716306327841066193877919298964945395006462814615848668129760412111677444028417121431417627039336962112620963027149302475319758245001623923292830603301810628514685724084464169576517576309732080828202307537461557133880332668998149309924397594959047458216512016201045798298684229744541429773248039927567949378992550741998549082282263770012604152208669454518134682386670742886003587283383328193633716290041736909571319989706192052306935694515846397149126419989676116495781797241569646171478895419840009976822410994700882191588840896224857279735015179096661094038092216788152000816618250916132455534280758099425614284260142697516412639681338648633031995417783737809046486609935783673051826448364240883230909304400723389692569255585327025398380059003852500237809383912147935459442281426188266082989985224056629664091934190356223753358120557806796926857981367729431978844680471312445477330512925392502848196927416500166153476775296756204231370827772428750239813086815778025961299242466021421118261958319461223497843133935944089714379192088928226018763198842641225405306647242357443651567970328047491003220166800270325883464957078071252021386419357207365247256473501621637624144281746345905919783427843182005982289021765988416358235741070395791730412384209580342927849230608529393077883762554999106849212332076525511953433428974734982917645873106574670567570850991930142110245314778367777505296021680230867158575507032913533885950953092579817740101267965079416344352235585513432820580101339183586740914779503761022922248352903467559305261218293708777263310256338683020249639460828195111850765858364976075204185103329910926544051739362861500491456604183353492871579891311649400730943464528232991488402156468766738550471754229525662558353747356480764012758877978367411203844582790899647095166142563215271449919183740676572636844075378442205712340336106316152192827995049878925128754610521977611841615672195982719957160533535145217177340918743691900925628377937772821604839806411870450810090508770451438456771308981802400648691692198753925839677752755405445135134284764343809156650009458393007562513847611932876245377343754246002545911505067222517949497123134748366993273403681105816309182013303519159658584656761295590409302996227122327637690181634932385665484679895093683918875965413682877463255741374245429435591889470003771268811912106799576855295494980333328014302557369542483630438014001659367114883372851501709734532788190104434881277903708984476739223450733690024274177495558242311085985100637744584420856573401540959955298101727032647168461818048037423404414187474298494749499974390576821783530727513191314050000282007236167189128548780627348023664272469848517892975023192735654005698513955111580827534156035452536476107711523306245290772393095943637339370857973595164018209721812060498152435658016724680148879771213286820549502332177336768273460353691612528326908372836133125343869659591198334424692810947621464973931951824738158497665919681408744931403560628599267840939473903225057005235053402981899917733898894440033585350493089804860863502943196956926788840678343312898045611507019526960431488373839688444182628743119923271100796867721507800378732389397674591507010776576695609185139696880429199934262120235889649933961041216451530728628317810633424345281747964446811541448134608760635956550570300636082941003121596504190269842034506820317729045376480068127887492519737671638067088453600512663743696241911529579533791792749044013236720933936673998028518773725066339663415179602847792350564722694145685632068082057693760081394956107636611676159171674942590790119050381589234709719586441399028344354233867628314135656370662280827752179000107137399311905635410526280340901721038345894142819129242015726676344357962622696157103815539834977775598232311997151872218729821562016667807154896060369482098341475556349386098671063753098429309789713432509334467004614138032192663323019766312236804568675656950013640471942849801950602980833079030156072402631907757665411327526449521546129015328962722914102179914525451289734891478994431005615737975708262992939021527301193372942949053862729724200440379811093449906291101328393176020018129996828909258824411607230766962329278124677646060499389521262970809190437859729057473345008212737782080833854379433481733108822134587055587207026164578847339373250419162510790586304530439940769271643268691970305047619377799807143505496846388621294007103589407452019136083224457813004501155949643318807266898231529833507486506683765582691434878039970230510644817917561125814857437011138902869484867338810673633269407113666311195898571826103297427085801427622682849577884596777601591047814576069177227353269864266067786402923404706038077607979814216907612050614468494287089951421495587566284637859872881756063591330331202864837236639847564221767225442999489183541233903916070986117560220824628299678541097525247519067961726157284150210602327314228005908479173432930508509396297255780490474523608589572148072310579669687856654619153584936424862075796731173990731805555614492690236843076525443122116878976310798669613698786489226654579887430930663083538515972472040656503960272193576524423083924333515714669809607197812230097969227899464788471840180558401524905975276615209022391072043708138851141346274910443495059515645009207846713686055636454837008697650127911237333316885679796284758171510528948366417191301389630716766253759308165973107748018898443975641699754169743386246687851087894327682091104058451993107251502115881765383037552981831581804885818726782379511550206354473426120414580241333361308055296732050137814592707636015901566965579003446222252580564378994632124038066033455755206493461093025361957441245784056424345701110375804668782188210855100028269998138882774263677127041979627376076937246432630692961873677593410549564704852757678412278866589846258770506639755922861162401805881613250075091076708425723030517969532919713128376682746063117312542987568473759510993098149619807568881104484484688271068737502189082885815429563129146119004984490353233774133371395838945482251769433479416198180087097222369508747934412962974225563879551644289781748868124811317832736348140971679619720519127510762447413810461699492893603133836792949966984345003869892841699053164309902222813343775584982607262224598085109894808725966104685266615184853200224908326152329748170305639137910527279585330365855018350861092275481971117925787033739399217395215058379697673651272809440062790391258777590436606807870943724168741803696549761424554405324413809687579371112577266361534990628160456253866790251110080233590502642372875084790255479057212244083231578641416973893469044808904398574355556867464488291347326120621940016548068319598518474825371485287867249956530488937396804872207091966228594288927589827827514226882877574318920701057900863945753800274853213822715413933912180705886684845780076386453405649750710984474821129909303378361042606751733653241688658451386540415275101604048516756637507301375672558530070073305850108728732903406387248415653146842783294963585439706792730327160183375243542016408621448443351668620306548659198729581505637983873741280264941053401430395932851365233949882899658260953386575060333429037931603528134426714794196577143344695806561696579804213776636074070055367713197426673514070633490853451752746051747086004014942105150711911397833048396986100445635374584572197851187734807562968297217127423878176367124691845449875754029936504656162138479411639914818414285077717293057863689078213870452327182336864073031923876612448629189061976382212013530854729486934011635227224294331033937816412148252118125223469436662327803523656542591876873283391376274759844607140041251084266688888868151866189603057979618138860926013377539289897318224443104620293976053402827699184483818435191542408938304829963862854158067746705654815219123818889506607627905373111393734502758130447751980624243985036709557094223946149621712987226535827405347675833235831304989169510260543852887732165184985845577900646313709607061934740950250667631865393155551749610052499050959005781653503077078146383574828269591763545186428147417592371464464185879749603409841568921513987708071115877482516879566107451549048713595340806900310352359540821398346840010522924756331522523741104105362628132241788009282275677151594377932496977437885946006813444339827248273364186200565146018209730471716885153929722572673361022219262520486971875360488327422844068155607974001069758901513948786946382010959114007671851176104087654794132015756466582454495518351785726656072224237404654060916471013655467716900608848874453440310920411516890744956502399387171210629079746529226456803497123149405665583358238781608850033056254584665108913159795175331171423990464654838978227658642725552667893426363431859457479075879540101029835469830341092953372019989110560042619219079207679234239003610076202842126947988211371662971349057066241097567098200411252596772641416805448529074023340406356764423962382671922361884787988963388316705670876663596852941739257399424167965984341570151556082277438559093225465732127752002571378498805687378435639623631139644829807565849190843638855508023209226005196093972521259933765436299629403187922571224330959415472680710379277362886305094453790263588045577514696705576362955182051019932106402694398073572142842279630401509605307808670847557741765317781525431339776635443716701300722021888600433916591669677134600083227123277440152939205969580462461392104359699042652034429037979122842556174863274884164563221001238405762763066367016370742283289491969448007816328314409243906738520180181613127147292125018004221610785341085889851954852565482241047876703348241517042955663825697117260790006796821664342972540544095712879792664770628657310873802443669738690664306725791396190484326592492397805841395231643627025809143464659725019728407367173109786037831295443994050645409193268523905129655817958546625376267320369135036804869020356362674508387189820963501113490361963388798781332266918719398650694072958953973748736794628603645699078257654441389298701517394922088637889013183454749090930740325377084314032146967893433771192794927464111837976128887288376064456537947308934598230206718292778214528711916608233118551132892636317363219032091890507631167036491531275893163026557750911262839599911973265968475102940979187762675769027136517057834847847098461147175227203958456064674877001376329208865219431950285642123056535057883622678077714443465179037571127393015371923629696469501931360164411507629309520449342461535568929240929433333151074596895940162755461391929794346082095558013081654748436835364935506004679203206464651309814610240826826509256851921780410755359692823507963247860523830770355224901837454859114661841955650121143820521080885556586195109302379947670955008524880480762793250321349314304540695350499535857575764138042420511968422281920509387664848213673131542211896773013260565415575312521049018582454197258362640467728409436125287603426193776049879274404732595119669031342604995782469868652871169345088320589373259902992494064174920506089180215582643234696011282693149715390523403786090565688308817960071871241179657196072337637036062336418916806786211470708073993997676083553781950275192604266515158283807182149419667350466929413605685695351403538500641135917104581431550009167075132105562211742954999948110824001816744825034674149331816781845487891565864065086654456086686618896319430215277253412882278768961674378516396851759631734039624925074789663337386671390784557949288178893499198830651384209761488556954287734940456849246294152981511653855381061655566723465525709228013682105911588201617913520319345131954465109714215608976488409552753500062849669255907313671846395986103277272180161865093307919541933839502143990771518638553794259534995402927277079573357643738137514282723881282620924789230169035741924902012573664193018609543580487727037609901629744103372441435504967495582180775621809006648079664967015306360979986659240634593067448871152384903034479807740176981499456329413471247167494757540716176469264852910155398831256724142637343400432016820203525709554284113063861144190166323800503604464818512262227836260576395491508803605190875152471188941651606996561781781235611590947176565437957409964324961324806540054988801062806062598838106250290012743324792120398963808979267449539012000382718018713391164012081227782132263896361202584040773348094732007035554652522372312608257752133537350479977198315269494571843043910759895238050889077350035997410593097956483717456225256025243989650598989850652906221726738030133785728394227881249442235704894823162680317852163624660853062597849121569647849519198082848621866150419706084500383885440366253161905747141205304477637803857592542093529445257393664747095502332470071745866336233964472736155769311102001315681690615415311914711381641964634261647815226762960112682358422462052782805846797335794796028801996352044572907688923458502777081419113230181215495893007205243188389880779038833916129835781161483361593769356952922604933867466768618061254765330951715588724203186666574175701864384958779846610834256371433154814409996394649228130877797974790666880365637220010654443531679596529993571381051867122678017064739068941950153486410424650316939665379714492952214204476605971984714487469489636496270937811122059918683264207420100671151749081201760804445989485404105312214387768818283306826117283731178671577166438107983221431392827671141026836727337045782887706622504426569538490897881035743839201693226056249680281670293554555710311700984054795976973663229144134251577870305637061049857921037419358458745411168941473987742167658984811095190169890644940977818324357739490077733691959735506298370493522027961782021593499471371256442998044166908771641635520948050338932813424647402497209160825191773113507977094609941363037552558233097358025034332530129141859427955858449208818003492585956194484224556511411780097012648244895773735720017206927857962321938139924623448668992916230446381664411175809453806806906896374181512985981713320596754190815026376114086683588333891469496719750628485342000524212808129082849924405600623337404129702398916596741002457369950044219872371598898314535267147269271523343380045341882387666462358972229767498152805898505042043867604108822124550504464145644615512748019874407311172881883143550708177431530117597383397834862017662484998404910642184528034044175477184044241999635858785726777763304846946551932840888353072379084430860650335077036161330238921773031463458711989016743028586478352027166727576470474187002300819320401248809766146064380478463167621123903219756883118128778062552634564555860241947465609184810034111240343968400900408291782816227600657446497119744482952549926128777525307343553284728762362720171630520149441169979337049671309933701426449579952028039519728802567829368128068144755076702731338054156073618756429690292984673483597050247881278749078663908250270070351359761122372644753454405400668114632883465490887780270582789131312086126148564743759860430217219272294380536296014472541619627187420384441644552722989819548574569856290107993380971410857495158501600158011213339099604952561451865734344425510167433524809667663814562324407926289353766243421211170324403114707309915039874886909860998063995125396471130719955205853838141142116994106561284621495265985095214842833369691373801556589111926985027796973756158150903108625623046892458301755367227272146312378446446539518273406888718824317540289612062895485560280289016649475275015231862371059304060952421156679862366342070280941306364694914190287640914836794313348327055554235499559913362859936124616251939317879045615810762431420141454265844817202584879022485939110646586515675330681178546816927122720505621885998774887835578094998228613515406303418393829237536456359559296637507754048227840075761354528466153496634306362359325006396544616016628164366992804921262114362454385508280905581424613622999992740176525881579266457507901039495820173321505076449207345542368192665197877077932043866826888142251835066808904134125322426496536462691122136365917296624898955486046953109400537085930887614819514353350411055782478374586028961786242343491842536781684370026968271920071696684918527885342338837076022981944848108754201961930625645673605378268755631264928789653794569273043402980658994792581869698595923417610599338552251647847835401660421363035261937730976200506590835513774357458971861481712250768251882126034935832693717854716363182886092340049949125363579312986977991076793026610775959336836996999832066198811296901088610196351362991496250640873793593608515568286101519621141893923333050302053639454781691158417283147726924121143331000759634992285199766187815823528443141916518487040859001633184690654776343711803771072446235199383605210523390547713558546199036646553301001974025509653212978550175493629769080587365517310443427498075872514549593785164576788217559226394632637805083395334865052885546365978141632912882908754022416879954396608228515865049358693604061846605598714761286646853487748858771360873444824198454500658741347142974507184664992558073686934179668234788307522880676455343982467805425123497628167257329093587507769447592422818035498131249247589929060904479330122648547484095823249727123301214070600237420181890846907227864775433054212217385890719192550292891345320950670087225497629760806082946674860372592101235000196171131222972018265267307523253046788138713323953959043098103564094370573359683446073639027660706582620014178509744910180474961538505464256071840364142731028585735010517013146980023831184660431295278586942112741169061588787952665852824464882962930699518181526900534927882395594179557685209695782158934780151712866509925578634813683149076818420922774315445574691729225187228490906565139263794210496481252545964660240179793149653076745405330289611247104185014060298119285121130483921785473819763056739597532562077214073558617571543884843864201397395346749068319074579856251534100783391953888362153919570442620804498226040999827308245005004204159955226453575276478344157332174501120463448032516223539967422885405262451337909467380410966536350848794179869344511892157540368412435007661135762086901733262886078114070846477753916067336819236939763871008828384280343584868268921164757077627415051113968891470520049844085446476891618216849827781519562499153572939615847184263798322243975518325638487062568279027662740279089967044642235520984627649906716860094030236042683590258869249156167781076013046258358460042658058702291236945866471464905187535399127851510528635818814797344140639795279684122713815416123864218004528460319738731610771536147419728444601694840046484372199589413035315939692527787171593613138851231508938315757128771551275792833361659948354181430122065966565014134124114586260550848296539288444077605482798897998338902040574071086990285445786706101491468131561642035456216888716564552696875202898681121147298964207346045887201529456063767665111107557340416520152374932464513523068215357838182872169753101877057607113730637163159421772229620391528818528747207692323849407175745583571977342461082098897030191784733801931389601428702750751926484831730306318894753189235277047406580591901810053528402019661140497415480298152478712092300961754272519929022864413472814996873518640452192369613800381814149643473842182578112989375728349617010425355332782727929333358791950336149889378926729273539932777625705279268146560488235190310392215619598073251781940516806806889913603079683146091130271038006359013451846921836785164102861730792546968307123393137550742848945445634496277949024000835712156720672596555574197083397828664603542228030353678015174780937471862112556941030264186882152221990451205434848861557464141422926364477691182611047345364826262323208921259471336424896447906221967264627443114705046385934606314771333750616524184075874005953254800642987408876897693134727626325695060019684983064406189480305573821364771732079921817226265929707401913500152368447263113219324691268190504884699856822618941998942990367076227170345885515147542490147723301739545885537450138339736264522855337346827571572678844001234735302332325735583066963956975061048700767620401798868658831846069291007496799289113889627289471854546263553222413399620116457865552389627459824096115170969768641302982514464256035354077439692382610738800812018945700198682015954594085988007265570016930205649649026476487826880454600488328657535974741925847349578818412766583189328961157069522411620351521913042120573571803658866254585768894110635449409857408850389457371649735418180916436604586788246471258992810546079625554389017340461099390051940630444109661266299082633682537656753127717112574415757012658265643900761023315192816945246653083901340948348535334840033755837145215046277380829553389151900057395397431300312218377441462591289756154799504638370757864511165790829529940721214506063985432777961544788280759007362596358931265421028712126599299308499541034787636757509088969369697249830953090250746100458214384335377084952516885031211956365585921156856718351499319533468064016258109632932766359433894072046627650941133672730156869646799292923499881004426514278860077598556503646013488499032629671960295426633085712007350850829750677045832165322577528630907626545138874571702049875752387577624672478581247923689139818979722507452467638099801621790611431833591236696530256956845257468452006731508770687805460580565808039404829500202591019184824335162394768467896965025302063929100641233461620665466224841000451697181182462024918009123551295148274055448509716209603500577874754457612749186862890814536438683444604466037466284466761104407813249776244196482733500199629336243191809949910389269861614497875546822113232188372089682973146373988923987990845835893940460047425490557590665376244275447490946487058379072152523048934583624881410128982447846059602629734587214773520500979210783573139649122549525166612815749549725013954319689743781057356928995839403373007956016708260158170457063506609268854524597077374773392392456321318497924169066637861645147676612092595737135888758960303773207466472784889943610747794584455756002285857395991080625008811357600240535571787227160406141663984833144006644983044289234213990033554343913710512950147449020856051679075570559393382262115777553268413797529800702410630634036999318673694143189007941676238782400347314653701706440818371213233083872576731243030067536995603708158672371759395356665929101087610579112236593720615748608602280948760484802812613157931164629012584302114520916126623406087977000470433002065483202414338524049261650822699149463611858536187360052588817935884083535238025427417247280196241991769578092764326687565476360018795263103148537614589650082148694334265699212020218646804763017898713674577819313119177643480871452276128522245113381286067716934243158147462889013968632710713871215501962445112098309977491861693529325844003807207091752476366367468472431479215992254823749338708862272947994934405182037448828961587657726741642866049142863286069188576361113972556242653336669953584161632803574880142511286559262618260840078251945802653898779643418966127069425536713743357142311841973296500704144038354114265128095628825880044143415167493136247928257876742531093138978001739847598750932158467228064816890018702777239612033654692804361766495464596703549440621449241285105975287544432285037224786225621988574126026884843184887938828765651788852732335370728667641792186768512060933196907391512848416596257235990133903311959833018529282101211088148301452192242580347799023522090063528842059228312996574212824674684534220303761137713805217316522884704983773115703103008723466594128690361975340742489458226815163080993381344363137875430292105832865189742061585061435829335957795592851613681881849998932325557422669731586029362435610944636962815793508793521504984975115386218244759735256437513174072195336645836341294884772268552974868566382864573567277659239432989219550388025224744501762284370128259228002492046522779998750820762371340817264475999654313517647301870931649327551304295829382966715400486424391482684398063982140323973910003998179212140887369305487527501618443422361771750212523141082435467502242087823991189811306888571576736706784213105109110446970824822527191428832211753338829991074624888084706969980726334578949357464718088681363953312973542418048856909378747082339140252887101065932564184208615549185201311435111765111767668940573563914288885113156601788690305019992305933391718856515250907271410824787363583053568524070532286514212700801362061592530001272747562363200916443493315979938219648774698957969592123917045162887799378120750034544386855592819584202509309121990245942218082442975481058437505146708272695956420887496789780672428808714652930130226166157591379369368627016766017736452594345624967771099030261283247590098993090403617758161377198096260065514534820579427748247963457417745294429289120353385750965434313239514044828583490595218420343086897828163204778977570730309642132475374892934677996239304887295734499085348813834083203208239900609971706161776201784573304760027836501095282443026603532187792972206872031879635185800115866211298344644738865486074517502212041485778920989156688295955130844297279686015855376702387643347972404487741118885789286030727969470201641365819257101752430042615179465857173496799139637674644475841993815824934182174685550449542910075460256914686103271352903692110701088404982119896577048592221598979577698097582107864768831275934519135227190378619144721932651032923215329228706335852719189735085338111327916154783974901814463309541390568151639290199317584365930227433254492574260063757456381998266303554722408385438543140984034724444525086773738561763033020143699499387378526796775064049403195274846187599931501364868959821823845833601345570783640409575667457883167596599517748457091194829551790759611709075082544564808991907445589895868427674593416230333857693760911817299946615262423822165185523696354877821998319427685907827798293109511888742520579109848804366672502759893518440854744703914504527992160544471220826082453026309318091864945520711114624366433124339343795683036018183980324170918869411124800183642417074566882427711248622645020042673091617527822037911394506044795377004515511898994517975632524134248061268065060985732374866585691818165112721547547412799416218908550940740024337564826380802845911989888428501872129108830979227031703524800521014639123910984442963791026351109822632400923004928332322771666743840361832794228883044764986775339422322975132409007775419201103951118992389713074376853903330788837488554743862548567741000891765600875996739445319380584316932624448209010703078684165812402763463517938837431160291118663089385662344888870239660293077057632528751638695356712350603558011505284586100109036136122922785089921830659767070710783663121407364678077756373196071513587585093668410415840034945314141756843821258164836369743860988196924590654747513382186941224397200607003863951618819246232306748942432249424733542999083041644727687175974075755712424437989957569617477435809244032536684727403863260364431609134136367219535484845945648721111657793901120281934421839576051294253671766444576135891730067375542727685851420059950965517659300802750825739094397278938393739336979282454680098584588838847314393060706478561223555425792616599643910071921899356170100168078258152538682395142011972992584227876523912149348360652173907677572289187731198419517294354724494641845510740636088227558090758917845144120221305545384515081005783280721605010990289446675623400859327225651504269223495300135206438121247793040541913185299158048941797400324657376713751498241422575315968486549854693105525271137419987768043973434663669277196314844993294018621998644813433671026634049437845011643566889492075316276873714089539257740346960550668716866372979637402296716786499468554801854321965892143268164861908995631644190302403957942827767686134267184828359376324406913111733973887855863352087302978974148457554549919518768194169257318672098638608418180213064368812346771190850340854842572428518335050585081537095476730580310451786786182958637452647924542282485956128700530295021644795286036402803172066018956605188820647028193087113995008815310278055737792993330704346794226763796272094620476277994693256797688157122965191059884157285124105868340854805873465154927240859092862553215273724410538321117598156604705770515027308889749700829910799876162297362910799580925580528903386715804182990696509142859517641800171455377859154295236526755214513588307139119394295259203605685342387301115487565858666577892242833738015834619141907999124453986381869941560586636250630890772572223192132239949317767688035902688648264498786428521068372452876607770616419874315292036031409062346993806527868660096669555354303020989226594335372603229911219567728735864885827096512442790663292240449262137140846868946488191042407650052153317879424768655459164810092138425529877962101560118774410864998695991135633720498947079877486275412714035933351751464657801062772350515180671958812348061695355343042647238082704279409513911460686435735926965002343791512819834763473479803245480376462104633807294359606630203938554840619195526443896950935923283688659253766687444146633713763324380761936327793556950714194626932708722462034678009457147863961444087837822632177408283934362270728238965426834393540761285877690879020822372707259324312412148439715027522869870541874107004504545566904301145769964456160276952457549983254063486850219484765760548131810734072705094533719949689023498266301879089631769730123888450483370772145020285973018621586219345880819530410424233589625941610661238066945023469042315535900123378871947775117410673953909351375784553507798448423515644370604253787918717436205904120608317208589746207252111959404597705444428890802187609160139655428302541006068726346902217027363172601826962702134460047050780686735932363964736001840240286095374140188928997159569577057212766656894492850149718246537239065430119976991517412778587531011450125714786007271015184600741245448414811601670399249664716277744368168958885127953951107187917360520734147614492048608998357055365265271132144524149236587687609906122280572545472490571549067637589494729446163664503777943126113136985599579525641603432709363299503597198484849271448528536138269187585973545703909842695788996737574076849871701051752608277125877496291425780751003363047324095372310593685945008794668680238220828486356710070185606574363925161574682603190814065669323279315030263367243127397681620798222647269984493205630218071799812249011770741910126025624968474686919787739839189256579690697096539456079389521424843606410296337986805153643245003192914890553598989800523298816696068624958679598043172024502507459666082347797806615799857249822539001219849531424573418233050610494773260303371013854901470076501772709344477929167704694979180639659677765201983951372392831230842611528436751033787456009319864092507816572434454497792694755428624405103366651858328826649303869952270555380247706502523784404234577637250647618247117930496482257012549442227980475267602533097395454004652323933202915134565470237598871731163577843802118899066043973658344297144254376214572868042542210201806324896186815806871328693134207036299653403084081533632423158223093601813179774648721425489827177133563817594071391634292782069546255081887630274915857662756334665731466903978133900335332569054745618733414553514899567994001233291717081184792573492524122061985855781904589528555945719671371467486438594527152467287121350436118970826529377478570726255969971773912726881867736745119028526351156261210739772267700910534710489083222449256314645442227433639826990236725643259480100894992565873695421536868117954525524774836295013154335641251219994715665324823677507713251825036973789986076618909956939530163370493410146183431555124395501440009350483315805103134335543604615749936858422246418724313935442067166359021387830233763698421732011973079185812649445540156612235685821576236592884391699645341530290897729907109373000838417032645707165784284579868598792871924434290506714959008276635929896098184013302731635058009905166325561084951907896611444810232892486551525193624674842294188924758617380953861652327878208011985891993816848229790211996983813217181241707907056830622197570935393382326873938045038814019083246728464376957451304202689841269451731135257417720455885822067150081024833703685438066974866460361838702871395091113104434183751087628971191762259282661310692756638073511496203596781285487798072714922868615044519299069694067987515606081594774684834598765047315006448143531090633068443665423795628879912196477639846581906869552630201917939190077911187161251887461500031807849516242981525815283546035929011680624046240851293001553978801548561224292258267470364307411870450931768383984626323867145088059191378208876873823909259712047708185368382572317275925783591789376945929584418952892168735929930318529350205632165345554968075486089202055519429343388842001135379271529486487995830654628627453883843513432553032366667305406285244667340594862634976926174373481924467910822408948094341811196932559914315310366825031498197535729521800021315079200902292943095155163089104489516318696446087550134442232548606562217780642059014055989771265046978772648421665321568129905276807776999184406364037283073479517389922382774573661151310677555265495096692391872821575324861205203099456285360179089449972574400604206084005899867734324501706943668290061356435150716304438753786332473160148086218396022451272402251980747037044418582680889404571633829470319769548960630243463371436261192305057017942336417753656379754575948343609748000345843445274733587243885281243618126927612288282059367591961854293755627155290883251473557399951890422412552700481722987473031027056657766358637317134021257505286319777125740229855008199504181676130502176856853823967582474662027812052050174511372247186557412193332060737438742849278461665625102764560817128211546666271751080491232505517155030323913814057597481647466190565006902378572081717004426048774535680316516420947181327038526054241967244247223620128514578890135024897986832584882136051345335195698726398404010623620179657112095291137546382070760992319488863838606407824602172815771189528357953024036164716355838519937183995390800394015981212696981367520974168815095639027587648083994641538729473429723210985903428686302427959540082332584952696577480515636198667044869629762656500432923801259140251054407727859221798388921054568727104391934560854494862683008592272506760426466557876199148192990687016056611314866724973478382680995221968735478212028656045860453860278039753242944109880590726971254884091073857738397271327606655509101698525260905549964737374772192473960141647648779033219997993411554294688078807940150163530922323890719314091847607072299698164312574212672672498488511774856436691828204256080144916159902547285525937015392377380252562658482580683263265683176004385124829722383432142771300325610195881840633534341101328645744038114149825237367683613776224066769560228978703100820309012123672386835351515482767239808946730118774258011545848600583901694007294772010732416384207541673089790268629587198404593312934030831568600502752675004461532841917716368389442140807530270486213184697002017519447836269920673516884401577222966659142140328553557145627278671178480117793172725999351231969194878545114174102018089111645612811496913712132020721884909793451268175357908140749594094720729792552359853102474275999817776484480330748591059699114561658013542097413503614657162556994475131192035042456075067482529910468539825255727956249809280069621195531228695765498835310496003759266213472882362852047419371975895205046408430930014915483162734149230959787345349521657073029853793726562899453289519149401617460928158894887241488583019806637754546907511655154930346836596694381914568726910247439428469602555956353077009110466962420417643481752541038920707914159470120212319749469679567172031517057000086625259358843378779842524774363903303789687853199000922231158103954595744128066512558529279569339095397864726623701803021501175154669557431962335903152886400038581193650418951256045608998492959507405133327310617566184920654248112718725545707581456410710753556888799252698392991005575113204734040884557803657936368784560233985140068351178603688765020075007184956893622957524645439597258925983797934423965095803515757137946612530026558509815452591365665080688941870160479165776551360118190272643095321716389384699427439590488749423639638801029225301660465829912546945511252011566387655848863902711022945517207943576116869662986640838214901097113395431273380946617133438263937245035507180603537775962465124366936762046451011425758761379573689440837746192484389091837785646629515841778169781934260841951195795003772390189168069488776869064435990459926536780140700973956936586031258204844069033725290816974524110165498165025616839450934307386832549551773563411239327288087599565229429381819659874758183340635263916502202386352402347599338482421649988917093067289970843596894446432729862413453317178475572590009219187695556259157975418717405203220301349723555663981283613440500989126765427569252703976511969605427977532387740139015049101153482668887334942084277758582846733405919071600305047193444803369741543424992133424762972933249145226132482835578696646083207727808257115966840842413044493829630219384694551828645330427639028942929812739793377721418956950690339007171921531484676861341975170559695117872097722890577254337498403828448393718217297504446234880011484965383744180319052947552711315051909172902239299082284695033621638258622477294841197067771313743752633417585643374312329387211680454191497542901663336906057188584774960296934146723004100028870403576152271123453027314439010109341708375670072567311993858741142959539565506071531058490548848368347863495626964822737970451740509123988121417468059898042907815529115301161720959986315209240898003604837762883571695373050568749288478920988435605775186940755478534397710928074114283910850665731946642291522045700684443070072545081746911772755494119356209355512528887035623522771448419569367210685210122014124555599882497269191320521182010353994093306118043653385722842255734869141328364138400884336180788861943774773808493718317399826877147022317182371047162238407492444411136066637378242226014492975444518526790854366743990305138276475861649412217335115883497260390174910849333947211160897817143230305901533362551654845218445654467170971924244805715043361567705719806172996742898859467878865064650626041892717452693738790136450110799471372603998945831301493682415373755960876616404429931920777373355763962907379649144483687673873152723756134202759004581110396080928767229408148903237737827250095912058696023352656179229237456464953218480998750066466807325854398206747061110264915964423859488055444275488646425961094017986064390431096216643044267913264109635475377469951980702439069438670435477449335753755067413208926644999979199218620905518625066710765702248112420170645944940590405312973820859770386722466124903593775480245439894925270703458695952784464171796071257376435308738766038138037653724817763581877335646253073110201539134329807313094709321382069354608836665918510779091510515206473597071889291356925299763235862712157581921304981350570618014976099484473241357335584657906171874033959472227661462422430294447569252162803245299319224285418917199809109920515391456198828176823477575370587275899774915650065508764056215249875229058635864162743206318541200900520735859945137527423518986157851308153360903666302436029109398400688409070872308140145263546092545824176370216629420000606684966962210946805387235716480232297373849323159952776327864522816680972930570263654197011059459981230717859002969265181955617242921824064010558425296696470026732216593002204999534165187741575843986382025572450695951790765574458767849189487635073081562572531716106118678175576237570056754564372929379281525496092474052724959710371599092923138712233328738607952002861992705501030194188895579891545508649487283774836275579204902365751534991172121133914914927743536340010924819837278267425892740784857153791831366043147039283921726245583749442511864517627895863159735819172048850218910220131565294504794662423172285914120642579230779932972665776488780537948283748562333037719119844171013250225221304168373075854979865061990687331323036469612404513001292327679006397015641791444447963336640710738508006775071189451550170655536427014965620346269077302710091084481446205269556291419317823958256426670347555231023455728603759501805043132770251972179913622922820964653434881759139413699659186277322649857454284774438451014366348303201799274208571449112875251169550362553900190313135994682672175348555832687106580082612059862175742426533352141667045900701737777966425324417560530847174224222219970341907687187949144307016566531265228612063616373618876630574461041012020988216348227399403532669199237522111916802939361172364922186899072858047661272871483592053029228397762168071309283253021182601513099813865938453288629414213293420664954327058594181228214211091339705389280091504510408300960082585679591056615617200068878979817978551126729657756039911285394943813061958663732754700411691048812461364807446679023224847712394848572026852481424384873274699065464448415793643019482194525387244027364957449693432195074556934610024753131942092261508261373144700486025364299120095002387070985888441215363817546646544916965626824447132708905451563946723562673207556076016146222991336368471374436389392448678943282146496471570216111498121669921982221624273202247608276572185975967211148108080892712472560137515956372028508707109063877513977664718714384602607838012404031038883352152569474069740128271159358011324970763706068668102269525281338440126012295699730746858642511418813834053502419172301869543237972182890413154476502991134940869576383148424225324266367878439299441660278378898035006154561056729576423948558921160369778956503327393910771056761497085091687267082431865514729153042194326380610002759288810638019636259823212779650699658413195052888273851559199235577319013716146699222280776939729451422072696848189353492735521419609360810079662492439976380294653252738575237038690168688448362367505134870893327426288305512582409266518027654487879525051858287082753141541638269488503235714842123310617405126556532828150912758413950784413843447872799886890587910312387995557871512432544506803704441829048801657956838614857483569546305370525027882601688693868724572773647920045665494639855499379244693045058861675626970204596578255282908956355875685935319385384553190239496038773681431584163172392307971571096186077227225066385624936624926734880948840467165164316197240926253292658268153458293436783831383341105130990154169812657035626335654991815929049240470972284475647672236442684431330893710152360034353065733224456551580247062626474127733927439222545181507402104608369241450307084098776595620425481819247624770191433282267783197114153553342963674508780420968152729727665400119698563253976303161008601747640337096379897725671534429974270494757910701467986153815097882610371890721356533781177177739489071949517989999315200055845804583178423020557693832870799821044025031366111602504150150493799035448925698433529362546696943370353037871687291348738529978745297691759150842773352914706535309312616849227335009442418549088160127063657383741784950378217617436403639119899200931787275010176101283138414829835041203321571916908570682709743158111073010595607600458496695941794009306093776079478440581905222371337088157066315219256707445354371686464345269522240538052114487627681091486619088451294347360130792984438098606462611284042553180308130880309247913612404802681557173357250813754080382642819569016133975864602944839306587341296561295599140422471899094661622007914988612261234734533819267781445280036264937347635234595568261119357607164476507263940289125417263170345457316610121367742408294514986868832410661836133548056032700112495959079019102048516549516641958047457760421075080703282017361346312673207644964536413940601842374985736320911614592459999852882411339969181955448160318198636698698305646940330032310570828337141273938109910712680700846845649590107245780184044556865800103330065509121510027202800311518338107850581700654186912348420065800220939130386228845548618096760563974274587063143239866868136445342542093868795542785289122485299685857554926003025158228817388483666178774247899875621844390384359887441282294561625016123359935512308761259090253939191246916123544262961134975122268098787000362236852464077833282802527152591531454425238021417946179219079904746374514029150144717807206636926634267824763699283544170858153275894379478197288304562738344890043397612183292607044962712165577587499827769230230754624499393460478918431305415520273204359378180968858088045351115420137200008340476779288358078028786038730938458029559294351583232064830551136136943534945047812920292290546976299097925346248910343472929093794086621022542793725790005786880734727013825221877852511867903925255952359901543379358133774253101902288992580415142201310293323464660906240685723894721800696623248797007844403483991842444437898693243753314612643359963943345566244369260027515410679387210871235269193599861752684725793660871409177617676160753904283849413864595420478078089555565213949296518596065685036487345567644151781388934356430154971770694796091025646351151954352670221386350377744629796690704767935727123480653840422578450764641891281211704711058692872175173501412803148562881870507197317632039480693339957329485434034318069701861734469947971076039661753377242425716227148125660301209956191815167842178738589242115186429494727357674778609395903536366495831563732201258411879692247747003246075219710239767567782063553494898105137417902764054908452719958813087166075196469526691305092472214286199026579148227638539928956985240296556107615643902087958118905225337436015283507329556386188862016523125377520408175754793360199646198377318018190892211140664641825065380477414310412517721846561318830538827175828820203646226497184079258223081680854106237473642462483839374549243366002413569826495335862497311944255161732027561600880873409310200919226051159805664185533241914111813085859028056776193786811550742933965550117721341406461017770276694401832410851964342188711129395741567016427670462306821672406122832494594451015874876527413018023552912993999124505684924395289355361014788540807778439657534571316650818770385030106825387591637762064377887315484703396908098287217325680089447383988171263660169563465545663364129461775243437291814082366700569956550799984159500287211612970597218365090818660454665093506128354049704751372911807464410437014805330888656525972689006731374567302346057082645341897651677284198938325420457461094679127331583962601945105613103363797081375868538551098545718310514603169479804719278112666304109311923982004738126929131683743681595012408764839335751508378031397637320419100571462558925515207559303952078808730187963078965370775161554045365694400857288798119481754851245801497004351840578387344604385859022662194831055385718463545668679335183490787656908957050649739165537054263090074595114663522286652364844580633501509116468285642705273576705993831551341150750482653662615944952996172304399913521271288249629431891826235753589261074348179630847303707550013150753180168595252559476371355325953165812616542249266767823512147485226775901597225543017188182189734265380469364994209945629613416338622998892505900772955107438350566314422854785454405537087460110580191128136190029971196701935174618705917471144167274327937435863327434143512601225933525946989109987923809891579622343857450710319224542950418545071964189522585259311801016189918457391419477508799603646721336496550223912288650877581132515808393835877349166483402110240952149135450087085846333674536298158295052745966504650553901689121933205029541192420877343484873660122510110276242296757671007236028893637036994039115039475633883559223732260965611017993825637406423925741523422651677786298931869211433168543675839867436523564405293498279023769969777377312540580351421055822549012754706576889856757315324017035531679993210721192392785925055624689827562875496909131704046924001319805374565665675504609621888428263932673112680143383175385383851374360043143483816769703166168722856643366442003815716385897412638376922871726365825175464810940486690307037163883210570683405287465121468923953795949181197752427298221425049694671511369707060552216673197291723550663204370118694860993051894161611012447216220408478739601815404664441746652841145400707150769568984104090653806799400785509543664925656821124752733214493565370764509425885539541929432828604913686723522763605006798215484326160177970455772894349699005283288288263140425008973857589094151226413998728027902612899532422072621908925722364752024816341998147755559856023545860305743918053677438592676835291034819074359859667173074631518767129440670185931111016865868640962354027638956883057342023473164252099341435225369355186052514449390823915055176151160062121357297177150451782131422603687918087948533745266568537872935897771704163020343251758375599633394424493705799298022603435686150765065317885325037759085034056890258068410838176475612023642307681535836607086736154357383907159270386920630255185739521194716734345485289968771218452984386383064862012260070649710042056704312811885135655647887174608546015836726687964041514284121260433144528954804853966807163754823730006525270255397096663761458678218015083817037856340576152805475687702024177017652477843244199194495343663634465447197262419315783949588785466676668694195239910975247253624790457650753786673184124637010804290816649538911788521524215332890451541299352447858269869939908076223273277645468817435394303155696984093166306175732370482908964002915272539343366987820757196761242581136471868961900488304530740128063685063318793458104086094430869602053152527765321909946759621941713062889314201104080889396806101847167893050811611665079649919980215051927671213527809528468714149882398721781958382695740913376180975431025703169183265170738804369803458231934140917281669582633539464111684844744348441607394141627639257959031587893990420973180661113147448514907963060174507397089268120311256349052434709999122178123068761580136419952018786888384232494498717699877858943890871834709674809413952331508257633836806997144224271025147204281336203096880573892161951820383747317450823426406525292075892763613185447307344138674046133591675711384313659768706543977293998748247472673614166401983962619210997331478235199929914096263672093146930725055457947591466989948922625501758630136146067109924265268041563025026656656987046099955621802208711223294270976254095535953612672546642139303330489183650496432145725941697158943567583139309066006764719227118002080303667885416366585609502795917276946100520642632235549434382535137324551531368902812293027090847763388872085565076643133567398377094823708428413019762312103228642634211696547407155862495876590139717138396435926696422960626266145433573133068389482813651771994902910811716458434748309568894369338663265816179940187348462526476898191656170257937033878345648052792488081255112844479124283858824671546377690628917783142699138280176482182519760216374084984972799380138290999217586464674941272098273151132066099498872285985599047607283209169607023405345067501361164581127357294241734910159837452255834935713010035568893014069729809274182427301508027239291613392231695829270695638392741862741382205501041073397045821274240526991885104231112483574352464344814984624638045172120210497815044896467695908750925684012001012340377498010094854798870017295863505496328397685893102729918340107695336954388824935923924287113683038239515274886301963526530816155315587810458712723264162512143205522662212184481347210209020087296775080400802757440274002039838035153555553654027271639679523086121940639302121063316811557004847939709320171104395673927791206145609329271893462534970370604997535800979391298390580715817633886868805425876766234048579465814004876533335289334328271225322184603790496159965137236909369637386543024047843845189047298347476869203117190218894074197883127047339030532933714176458309811595044023681676386045801944180002346151606968017123999121696375072066547376341923027935243460214836961719610717372607316234389868213969015775454242412689872828594433794849707629867708434141470644745908269502460742210348774717121852169146714084476172106196015139733890304633754810758070501647778935416158453826643065023106982108323110509406340938367804931402309809430523319185522067792039396822611710727671738502706299160346492963098166932032111270988222593787766659705086765943509112108945992896996581770686747662899108528768567842006050640669872853791359241720491990536606559493429259341612278462682484150750438139712614825501874716808657971158181374339031691771240880029960800229310669526907577261195154893023468700961061031153152876256618836653324250880808178846351143181384678522278750461574087298961652103204230078917214227142417571281639654338992049272739789822717072278284246681470243585678500080763924552234298077100711216226180453846348148045422329523142394898517091121508674882324377146320384156176339906706489685482943759331082435298624570412004217372848902929714148278213978168328719453376538924793872714440679593367716865672117547678423796266945557519413257116626924599538391311724291585205223272382325407848573114459510641332158250207330818367446533845920789320068425100269849324962289065208676113546071706689759464617826695113734423094377700229240857575501204543969354157832178510382982039637531012727624469761731805136626761898012703197371018104421313029067430387037002581935884759803555939262605015152440054406820290038470410122127760080263239960446085511783805714052882619203565300968785200013772714522507565341271995299809319256823602250269111759046426714631877085447815170304977565941928897691876323619624096196613169249491394622908618875317050987356829892178346948194460721870732380071490682926805306145461212928127216098710837187331720899777272484658464612701217600952229299008956438977974975051052337021436555306027066453056070706382295489494330730474252178917953802198265599796805253899658236086760925615144634469219364743805362535003513216287456590421302774917708093819923252887035996972031275389003150790237343510022719967441595091204675824870130777624485349632668997528738919378229967205570928540199673943583509397975591225376338806982148866373049344254869530272402163509610766480470609947571708006230245307194503004469058949839673242653300174673917394422399829623196987549894033197621466285425597336380839806351636105228425554177687470416107552266075609292405240933357066005205798462154997512819535543927778490635123843565492157271004383670488036077120255422364909932007412163198552338178313575700901060879050045349134642276874428255242242468427825130304568982717039186992270291018042119931198945952351139205666851088879914061605594579382606318885726859966589581073810923843717874660557765556733159670166896352626782644182888269766986961855396186477782212372742887744916819138407897096740643990527715617227318107805354525024576124358505712782562050408927699131051495661840471929267717399675630609284548629833934529568975773420169921356648713182469208173569385107249153752624941111534654793343689463904696808923652165171991359063532912378820662293166076452559783641201631500053539913088872729272826220550400915624900573080784893035869743131523503335544464484471200819584103346347251653557280285343135326223936449347077335352801546775382725931190768037445865725810123344110107433031566702166370939652222240856269113585536258390292463449600102943646328552686416083809338624253552095598632883493230224507550455426067847669132279975914189151337766167794938443805850105917994428723353294818566507360920609404469703945109109632347708945351316000778455909374393325463100322922830537477944902513379502110087922124126234107981552647846253770032294332060108393284137300123015603848533290172635539695123688678417864933124348991617820940524181498340666476491477718970958396157779875124370983282872334381210789434729994387162645530459162713325951259594495088610693006343797845772156153452771586484683594540308534925916622934201138388258595381381248953348073643199996756099387995098619962518562649630494217083240843301107320939441634539087573886038576413349142142847362937674386461842295735060904142945620494534847305923187543133094277824636916303435254038537984774625063340195445799936246565362250338220487927718480978067059669829502644755398130263806873853024874796294327826583913415760981225049545215263092410354152977153260155271009652688854909961784324153582185765367746322275887839768591019587824724367552942699025298423944140321611925123944875485361079437392922725628108577811431898111844522825045991883413973594413439818050519410603931450262201235082281165587372712167061339188042546186504107465677317187443825010075054573662101911825268718447691743204530952227688790837280058923359567523810222091833469231694079107829794048394679471819655525487849561568980021680064754691859420822796813144898511539370707611914927959524701951072652738710540193078105721151997234166482565406464596372444489907173895191376560430452991636052355411684271517963578117307638625541119889939971901371936143875714269432261292856774588320740832443173914007310861661032028521617885050626030924896815564234674052721896814042333879652178616164709597073107818568841090732685141743205222948339711587854424592293481973767254431512004084103074584397846498174625992340751849404473564159192358011945959585984908186025839901570093437452862366430247720321441594319826541866097607638847591207079679532024298573551680415494632377522354211740925749387329359685651730831592590015218245312170315372726126156546264477119453234416140601389979945585822137053607093951648460175607894093997788897595382672209573710154091284265181190766589888600996552374780055333311880824381650056523867339506135186210622325506519999438857305622756992378013958144681085881617071021486404304915160556175978528834637790125697814471906215225360819891842683492578520256144358356642783837545959223599325502009259728323822695599880865853575576081999647529497767483526573302067473442754975060024185637183281771473994559124156287685760317898505791329783123081876688030809036385465431488003960993665047887776562909988381818137986948086234188169658897044536901320205211178937412867765513193472075547030018298723890478544690977618387486593945471574189138994082845879470977035818469453924224564788509810151418121234741332958103915691134935785315338338491620618860114441068299453617109601570339943344323878567211993153755495708160194557990294235338919066470468586086813347951147311433940066654536878045938607107556890959832943184824222246198143271139384839476124691308146536277800983391017849267406476764514350670663483897542653401742960413397131537262738138440608203216619348439295620718995912818863683151014617648743782701197082662117222358281461805954365586431995072013513453981666192329483276580122560843949842888249303307414849204197120486634747952665675981665943916305039766685298755185177438748416003468866765973800827904990211994826239651617074401529611170473725429009780148567044202201093057969368261736417075366072504710962674923995662256052809682533835200842029086756765673183680792681663615367103124973685848289138715320155705820850623535180069186563988452715483423168975466619175934353768045740905260352983135816447664850994176413696736385981388404540320746951394756029065917166467164504266402498270046173664600776769007445354803607068252564815973641361817104034929538756653544194581327925162333198368579654916008817462630154886001632010526590099370573636928084500614419964894599628140918994593641667928704388573333269855699176377910447329522052601836066423804458493154165236915694099387140636478247208414447201544717940814378440907068592112071302015796269253281914650920066238458471375656361375070181914707206298734698870468631998441849945478349523918891288251851152988641676942275021623353940187829503033344783866154457707805145166516887308554861444864136309756709931757269794981559017190360023657076932206053574530100313143067512309427727634658868630491885159157007853075406681403180777390413608285529486348448381597613636465412108963794864524378650283027867360980499586884942470554738405214408858312383258892136299507695648876491235073659135753131673785535358780779369990259651152029667628364696649207188455289575525539652179161869608918914604962347488059272084935820778309907394116181335747604223389404502301344378502435539832528879032315285596009761029313158929304841385275537476708145467293450130302184597536834687183151233399822340099719749274396452010293273547458831230941750703407307565930584631351788403812956935320921997740871479319381670147898978443855038120463114905604473673355066763100546217881141809745153094495703683445154289191930207115818890821213568561333943694179210941289950219285429443462211880613432939417887487458200684404974036397779783468065910269051692016176515391564257798134616757502578976390859669669173687679676245706571596895698276597476324925619139252591000335307379706296906464229375332159941079941444802166578040035297004352084744060262838643436711916348321586165879047043607533331534363573192095063275426401044252823310487412364980587082813710847512707567145566362634226787014780172899272788890988121388450926978017140167259412792793984352148968304117596619518325115122250658872604392339522976997316578632327018397620286321186809051003887141816246348719052458285713803176651746333567813207431338207248030671640645084293119295315198763784090257288415131987165063524815918539432732410448651520518301049798998208943627081499352022180213512892826730133103075328648198154156899555703736677389213270278642322762725038025686199878814156084780022486802073732598227698931597991689643330425523983095367035554638789105851764220864477217010235993630180256758058566015328842087129938464517044316110719732646596202915070822001399958651995434071923915046606822785857170460836615580104802581627803798506613805552596628911028269723589313787283056094920150655320099126958735710826453342919908945010007534660563031434899818101389005349024515459109560976616056014948871309106508077112435763004065779469902404459586362777655064346145079746818612380992508022543895304239954720426166123120285524824744451615660457306109598511844686104105363263001023704942183234827050077868646267030787310855657592266021063816782329603941488455951576990615592197863524313190730859869299103846927449345287665597019674679305462731027094867042235932278964224512566936493241160126988317301697039061694302296184791212398296868974803484509345376556094963183278964312248441832015612998373502877576075687507094613638210795168041342811210017672260148223053425562336153948112342699038358476936866083537843098500204282497714673169160997528775251761257603114241551012633880653923756462384030388254747010550591867061855111803479121805039299449447921840896464191866158087365612138568629870729360297955843974937535773534480968241310979042371041155234052708995067485780041946579273383648843359429102555689553621075168047116128048682515527672751429793563709512218043491028379796385395351599254645799220612756952467161606262175021542665499042500873948882484276652427495487919322897322521872602532223599054351502414726433715464045393610294802475141314273545638644462892752012672322252311331122718696455545390516989994250540096899120003080731826958039197261088556606939591647968777362075376827026657641862836886842946930867821866229670857271106904772039736801694953526706999716337249098124054301510725819838026956187238363788669129407234985304901360274840271636006225148764564985143956733996613406330936754602775164952269034516930104628952622299133812772888438279561957540142066260456243143496759103076454389538871149208620707636678956227777184693605929086769565680614514776209342080757848876964866630774271674441870561347178794055226210264864610921294564495748896170022061953380475318562249539213498078905495534986745466438485870828508028206120757257264707056378788055384851804147366727980780027905297771743359836387557013090571498733185079157928864570541185045295530253943273509124999174975913640848027408995627716922503483252763395100876040945078860635562763333438919016416201502574766942508503959774860147926198144504241146557172260661300666926371871535502100195439214704780694557235640051525875345206039329654136852955696831535234223186075072154556895868851153112349706287455394580387233748232551868925696376367405327498495764259422197273229479180956826770575371087334239810036204577367602739953183122726160809905457044265398114341299505870803205760819827280990842629030314267819590831874141548061007132778370988568524898850879477468877097147149044428490079838815789992003661872258876397148050044956737269405638672574280246038041028445285746173757560404934328253163895910015420969759824747166696550393825432766095144366465488645841217885887687165626599588024516442262911318598467666799936074232621133691850390485122760212841501072246277509789921358311539146092928548340615750087001485984421700528592650966534333365299920110895590193365135760047961479689049281771041384607592214110072047072256291098901276476285519396883119818148341890038642926346006873250290261454404322472260639737072412736072995555731153801127147212731629166553068176492423238275004929311560356671968843136324523852428397368016924339359594221026418535730745838590800310401341412662402351358939002353192120058592541167781032777172164381439494984878121706159481913816330891866772182396108269109652451617363400924644648139128754320490349520485401902168744907529118396797272324478057654352783998445165458327690306435917732782175415930749941642284497692374112077537279634184953562075848873541150373193060142283757960771927508416097989132909274459781176898477213418510108387684531020722713427149460446077309598724743120207129775368126343160513136608570740147549512125534985656574620755690958353915789785510048645191263539456891045930648436393659084283705436551439825462569768696908253969723906257243319604311813217036618598733405585411965549103340399538209031619586736650909789031486847753486645171799291647821136007598369278226355414051706740661050391097983080658121992449809612948226522325515993581566760111417576207525056284601169128463816201813176710097166060838817741183016227178475641185087122215895900598135516049491041890865159563003036428933805694274200346505369329774004412788041934503491476873530053189087629939494050213306723707236170203746290814387922772993753404762957254904417572595964323332381051564477810942743704332470770532600290410584427606370534441177450655833825596274390533542955005019473675635641304749351934801386461039063082926419103305005238037908994690928959829467398178907392364062093357608327940391603223617593692805464670337137299063775945981188382133423556024258704888395528878223236216030345282877258400672150464680363743008793631399683129175831136719769716541201696915081346473506409826001437140211638917678970626156519615250733927917370347801154669295783547943781875882561364815933583425685464818110929126453322211479508539834247241346923094130421943685903196312663076563691952064104877183232322608645646433628190526071293299344372798953688755426762890027393824178272862339303233933448850431841213517578994040921005687362637127597420044131020070063149946082080489950414141746350784375705918933877075229600759056289807695550865623918700580268700471155835578894012847316732885693652518163389902639292176186098603933793316815160235932640195726177831527486911792512495670186393587938092090137536883146514779748304519932265658636816968758165813495970652771842835848651962175221511659660189569059062463405857628550695411118613370067152311795146748412831230859067689057838456756832491369521380045136927850360135426170919956478651379161237904682989878060853025362878620840864364285434291031083865206115342726951945202187312870408791885735964801939006640176331766531943270465104275383669595646563029801410126557085924058735678791860954287010481028332386587352975522704162286485264362481882933325530180983450975010332068889487706958119262550098758581400513579529528250926934797824982157731554070257448236826893670939212019849912486213696650767533047925541993917298562995624363064320308080504710228539534744335818642918755526711028240442373028469487585501772129318198057776338937130744242165389517801957013452859593315779749998056606695044295652315485433371044802926449762242508852449146439972215711439017218056807919573800069986672426353670829479970572021408499040629011942116587839231072995821250755902963139514387974686196598456106041112616218733954377661130211085960015104444124140016557575664633936122165786358461445029892316736712251468004196003201307693707528248959630400572992913986880855498138812433994883896998937306487676776151223885985225858476578968416953805620914609968077218507364746134219429504377639873057366967607476144844361197104293266441478258797612031954972505932127106402918800797104526619804862133071105802107906706328210507107216336466771478021647868073700449435646581285281220286603525517635898648008219209849888447569393244131378875108032925866501670208223412331975300309657222347674958530692661163727148918812746384371758719821319753820353729123338229128441717649934464484171304973746794747240811456256225850368310155144804811440941484491776359063377862547235397590340891342476112160897558893800594096272229694169552181889588100617314610725255821507388578938630271135465220398316848982556691003665456871895023956973405746679087839211586023689758418876434985482893624053845161146422785022037129020330008747318306601718524747959047756626425034618006067840688576557659560165339987492535519833749069071834600044440101492995469689949180869412388792176025294658993426278441267012961213887591557803132557292660735686229525220970781590250781248292851733828143165395537687791082086943815111218150879825972390794442959144958393904494463662218758849380371763259089817795887026699781169524898668841199828242924635536039594049377549602011760271443481568121020253307438469913579154471783262639262723370617052343384623841226022364999137715805283584260425850542280374917403481291617590790448953046932440774352075430186827099590618181845896664535535224521808576502126399170834530679678176234438692302774204310580567883318478674333468993293419230375087588720022444346635324930831557341478054123078683316750792135083841335877732897713754221199288498763877908958671620615263075647613254348066241883959624589551728321290043815960738126017422859884871628319206539592875286363065338776132715950721581225846733752410014487751492660915817844890695990432614316760815870206588509204081971212359885116716420502518787830273608623890533282228578259178535766352564565315885963824785282751177928969446915833530321513110279959700760727838658627319575848239841229943342913635635468252384758801089950140458805256849966327621111546652293993728565603833686487598528302809213938917725744702033166964109715208846567401585681538678335128105220138704191397478814087221791595796261718839000567482593414811905049060357785581925868952339272966774804329460813617567217799813638121257761062239619521598145557977079793688086337903309565180123143289727948309650771015717399998637578632176358133204267197354342207323250798694794164355627472295731055526717860595869078292186283307783237742510841623871998099544148506794221387958573146490095407511921766351619826173708577718463911968973816091343747009940249681300488900525480603635878289197437084380388149651923009778436945669222749337204051899235504853962385417626542001161148823834966665696048542141453006800187920640894746158921873147646916032498001303885885920185692521207237474833173693410693923023252435473042503207446904484134866579642296481095946056798921169486167853389392744543477520490674189936773623938607038394236687553621498411997550411112573537520554047134351311279803857877724353843929771236268400493614332711479069571793104375763227668516428734501250853511315399489336611215558063886913342183281081874313121954582282895815072952216572519420338790715877735200619008127632079395790339743930246842949730030908977883361533163180948226386968984399530190628133550880927598451842676134308005889884968589992543437739762328283364658779860808923478492921495207331738858330693123375895461119208700656675633907960147593319278659835434781193587389079664228313941232856098400979209767434477746026177386139986587610770149870051124380665710145462821870722080035298414998162331613249066610211553622643880058081490310529767152163855016794197567004551071666661766847934703934598071382113598629424607230070681488575403932567063029098436552618785652500556573845280352548648054116543590622771262294222830258179652560736129235231573579391408414390322407747828243026656566732822397669067291552555684447129559398367544339060224415120038549536932621269100251269445902025493955603164956471841827249921428453018536787832954057114371750326959258721127839286181320214570653180807644296149019234340773943746337794519745173517641051920638539045849613383784479706632094127566043514348488045176036516545754361781354664507536625069053545348753461337810777112826217190579833971365142478010324454802151021236978579783152442957883901654960444997057134829670968518758966566362917362188992963504233461748963237644688154735775546110950493738764007180252741108587521267991854872162799361131283050434267371503940693420120236686129299717505485893177226444361763718607114477649257973941020701589645068040011438633524770800535907293122412407666144948984352604011255968870882848918928115221885755441073699865987663600906492859228979334070060725964375837745127567078227575322892061025962643742218448825576220096830300832138758684849106236515241464510477451796621509634659234837624631435950985192121671732056769611163899327858740305377908081640537333683471478470435109884564007146282430695451787686732149685885880594691679908011187786255424365935044713162270025700018219743218726441931218853020810419421671885874085919788940927492946563730391958428480362771127713153879892832044977498630877892750768100363527348787172569299096794394946503333398135908292874512274014079984028543462673846043407994815431575716490204047149353974613976476259335801292151001342852499860239083760065014635413311309643384268315173161762213250593355824054951795601290185858541921739045876670078390997794046253658794861516106915713746534116940046003720578962104672281082120376830395574896470963694455928791105149771251192980436236428710627578306952122026453235069468798208900639943048524564589701636093630742801669977594822905789694657350900588850814974342619422425910181460274799410043195818492005409361189054531240787947355560500066897990413115776201055242467735598469528222984275146882239882119043284804573121930069561065251884268273018388840506210962373851404048350958035257103768239268849045811660628476960901334925841108710369454329610463059844956085861285367683522036404533311621969397182265489216505988579366659970782260595209411707910353280492862251748498554599521589275998261721138217658505986735393123361584648265317234306425879911667614596234306824891484169047841641959747352080715551481165126751789321599009241984455663772372278510756961647670358285669547405007508347824326948584088902604253464158380987297970917478513180169145163935466959463505023474027251270596330724722682029429999353621901482086356955747624222941196963383017608230234305401055472047337218136418710679229328516845840156115821932974781717430070186749273939077565615761553302871047225853701004308581501623131167959119609374347146797640351249192019846976030117054387928823971134527195396180379441787144728884817996077158493586969853433997893208263300469850036308611290431291144830925807291255020728099863302702423024138425387187436462783526797803441473404225071901563039840460865237181310734230133869283052482147460071873370512064487789372822373273509919229165154983625410123736444551563690219374310989628176029750174030558527887605011073353237023464196255989132352692269279089123959477343711482868700461667947959250262151033829466863917320582868689487303935412254177799864989740450821154302996052901486959137603692911498459767205595338126322593902067735395759825939742782112742353052135878528973169615292987201746841296519911239249538425026190220992644813155853107372877614009497245102202426250491387043161057339119598139575171673777630860065798453789665991890852409070899486951373275417042446980073358332740874284809072735344659570788385293988057095517086447032602967009589386362043110401578420277730049257161073838580171713085054929016141587480644919138624893058385038844575464421012023640307642343044988006944816434090253698270873949435429503014262530702980848988276888068152180560560666679291338271306687391799025328470977512197669626661833429802867775105018262424489598163718685136283618257059483195711143870029335747598692574875715791133779732439449700162958903103783213206674708589332642785132452369114763657647918597139928273824062822349072325805957329310291749853022874133562422041003254075101678526038534882476862107918734178337894459845820533835093304793795604577489068978744401746311418300285705507178358051842602881967841598331842266835260932459425505825782789629233303945455035929868151419747448402957644932281220891318750389662926485978243126254724227929039776837570849265825814651013949677717461087158621815696188532624820399652651773143005837940233006380996612094889066470698880232304915314021831510899188212190308268571701495599403357584879226805334099232172130125996028185861362997538644307995863413140009949693727052819416453679826264882945754131825300721730033292900946412003159306906902065690004661448096293843069577971101979636427049607397012256338801576478391956664853670094997452615053196768417864617308048614120973862585018149907703923173065693700131930328735282484995782926224289037792696935321946067518955385893757201101437776058989953168999846538297637412602528140817870492718098811786502969794587500256441352351112243310189931007372444481393357594670440505075288285103363787191673259229904124057670236318203720235295110537551223339772355855369815288913176140110491408385182641626431881284767176030608607781415570008054312541635787078466503122163386538134081100376669075302603820586380320097604286265070480763629749945705156719063196785139990276374462741109940148912769521614182477631338640690100117207263919599974345976671558390716034462772158731896332577437036914897695317198000258908946248611752843667155136107835374918031068917091707663321526984751222898123403859127980401401204359947253653883163729899076097419807052740096087819211338175375872224126701857009209572812211622741664479542434991215335105660305586542251505285127820541625267397609528087463257354556143329982959874833805742609666666969794431172883126886187954355732003536648172454367190497648124854715361161009169314537963591569766040087530327409236115355272171156704710025271938873920303273062148047626558526493056870596390784066961344670760849364870767481756793487215499657131830518759285840201186119577483076654718071686678104542119141887199324348473588166635686040767706228494678301081891041704595544506292763425408964581783847703429275215233677071262116036743806326111350065939691655451594731833401817801334397519432258845333514491724320315593163932293013624961331300398805825231071968627340097077664817158765336924600314086178057679226289749685692776659603358452236972844151852737016469951124023747477349596383755581782309064040321796658467403500572763651701431937818127907503950513062725519200677174195552090200861350322199926829241988050754092931225228830740147907441710703518071234073418848182211631796986686879376726448606167381116860288901681211354024075433726728048886996574200861685108713935379946293203925840871624220542275253472165665918429945551337336468926212410278042293418051643581416933661831124722361651652174689115761692071724847969247293924666849647304962465275730742025243960922352957943482963621321969181803090867811616603942721876101976547491757193862315247838714458821190794226474686493780694119307401558703639099551226447901834687360804997409229024086449494054222133367996592702342959430818976915110067790924380782068778143752399198019623550563495186628328590346868587559234973142142097764477077870660584967179770933082724722597094888623879355532204186696765006578006851819473120335885266855010357490991728280396208349152994729943890802574794730345397116683430987511314322733564107337200989749577876463315723510645401856526242791981392400548413117602455567719215067144144888831556008391716369798506537837971210452457284132393085258200879598084332587166149112078452096833983345131683335696394863948562113071885027306299164701786485444912123947251401247579493971369034250796067986467037401572287195198876719349882210264170614411714182074284253263387057894956049285181054982607658730790843120640232125171502049566256273054482644058974935260608421460627827629298193496551200200855994334869605449795800128545896828986210920653170926791869701734886500977398855188807233306473279753142931677122088653673549649581767756129960287572911705477902016543028487033973588198516195896025762407831892404040336012510494814941351057436582191130889313826855600390355485345569015606301594352083684691141116839963584150443409317135865390352901461272834866229513465976310244389372967470267277549187970534678045262530053936481352195383287502045805301144107387389733262073710996969741620534611252349183605239999339158876405177401137297686860022809886735769833263123740729918683832480666009575089730049151461069672640240624543649927558134980686937987561140327580723139714873213616747451348059831190477104174299359116341479737947387644538830194380554027456704790588247821867588738363903417507594953053924491836374797594846398774121372642406461140095398700308029355066240359087554316936532010681527440064996021216205169054753454001147160954267374280692272793046529404357814053500370721461983302940073613201245842034589422909118815664769791886074374574241075560004799849154638163579690555727297033664278989146812783577781403881466792292482976564462714374599235278812076287666932623318775981844116001951558324403426840190538920064356734575903444030264882770307208747787803468877636356130971415684968616774442437294245342951843324033451777553170822846404135829353376982708220161363346261094682760034176986512668564370277930554760304843862396169521348724884501008884778486058965918317319205977970788919414712383971807974792378171796526363058737922321495030836143032897101403887604994458140576539287136517118653037307590326488389525967710952996730053716809588824440988196642369490940990218343532648201467632224506595559216073377077581690574157413575914439174836640041002814218390755151127340544903061997132570321453189996099736153864555178745692532737158765638002038582479253822674917675319832370307210011425092962650925397379189710762213709823178000879904768484858856473891580631733227350623457760059249971413196457244642206965578099824621248129114898855452109917777123512790990973926709354258785016619868655723240890978385245303591646032982642360611246590990804462097630419770635763579303795937422651608368461878055901335752132533156091409940569499294009646331623724439257434596354437258568750935290174543001134999151385392095813601748019653916496011366071930413595631210065990265464655578402654524813313639497998822484524783094434951455184517595475775581171687244474790593258810494426250350480070499054336048552393156264005231478864703684064039860618863395344672345822822315453322613686170151255207973382682850979659322069581383704912376243758156852152355301883035601981892073819156500804929353487441419728387331551489758319922093867051559978531383682767490600103485197189485158112315473561826160874376741337420683036549522018810851616305385463792173402632729434460632957246225963606476497507087987039405094606419377552193280649347707625874832362861311922645979694593182292521130429644885347940462980085235496037041183881825089268182245732231661858136223677430098248153900575251498982312690323237184552365169865806503658805721290274233022818305152741341662836592238622523185791563269435539728950949183078979891067057369144571543691143192168967587030328478755148139121859570802334121253554112019602938985844685288403491684187471444148549578409528361545237233761994258981754433529599628871773136253239549459059011444180421649767761449627770986056070694880893982551409282868408836385859156578964922275871203567081423128529237217886080379716635959286554306800902430282220952331992672576041088155076460884874134709826613771231656905395992037224597467867616600936453128505769715525072652408687687170820984477828179337986787823274748759467564297386253206770644409587860642828180823173239572974173146277939377497746896264548980574160227304167841602836360363178383357921994606747442448291594560960652458363134132140478737802508294747192825127985888598813350018011881071843155041241473057717103646268309294311732666414901637409777206250220966931520644449508605817923880140814748181483851935736190523237115948703106556075320645334944418881529267292466766261489617306297549745518464763825505752174847576881923146564113187420277407338084985642185176284395927625938421915924608442940200808395972025300185598172667999447828457494179632743958021488362928496535949765130676672212608986539906358929541443748335621226289367945391537412403099545257732866577004026335914703030604731967247654735080029890067908595107967743728741304986097152296602089115265243930357376685446800218695967994738714587949987062006519126338640239628818370583728324538922654638072527678651750735380653302997576869404785765729254782019240285330943010376100395529549440306470063769753062327709761449887372089588662901036122062090327562831710254338813037056792011536093049002029559914891996922673012330966841680086795583859265474841469750119382928574000241601653416026795972130239162076626420390654815175295994902645041865688409585709056262610575202509651522245255593795902843046461598161021156610829257672877526877901213117912283068966007704711227831677440127644222403518410933854256058943286360971579416468324000083846514631365218636407829633102184837425950127766634387893431720687159692528293439901515594915160372871179209053638267774507757464340918850591745037802429717401249860284622713227610438425967781076074727591939387857223893058681859683147289461704829335803689340021962934832514221725067106554711873394453049817860594937565947725946759264136772311702406666049108757933914500683498670694298158293743455408387270381244082680044641030533693069121470150121010922254743633279687201086361327203882086276529076910799069946765530833549023783962341683799956431725581990318819338647812563884527652541547002059836197888627045412566320907090486794061448401319535899327083486542639520455957608489077085373494394000250420596743035214514709737534048441825301009527846586970216205272194133558358630369533736539994779566969537246864307095811862388298788548866840541559873460277717527767724958755079351803428814751555000795868107392626274627805378078454016740852205107782857265486748524622834188804749467122214715446008067165156514540063059467478152632526360519421517285748908939064172589892406192359860391644131160568335874260089854013107075133012123313978957079318837930704228829006242476327124052814744058319451092530073073886221756042045231336941707202331535614697277830482984689116366325550381872655353412806084426572845363761794397060655533937142650433835637502330236331940177365666162848371655915743714016235170406463804806768888102714047804033496273544278927819001994915214549463409855377083889615179121499986366528459513513243399308107045215663960296533586490877177832307962681699040165577714867357609141570803102165275728112051530709351282294875967532357190353015812564592988734332165760594389811788162907783322188263178871264744467102612287495318644608781053861819212107906748454206438090836604365803097893588778782713766401446097305902694721188333613243245155937985170621731504438714375418381455180251993829978408547256011555795160460530367088206795253066689570079309285365433223728555362691878564007922101659448733876034652016925716660481780156406450344481449030336416314384050564740757653973881569494537659346369890199833989448049891514081412312430118207753897930840616891750489577972722692123573468113775257911807360434201453278695340197411182718814439258868618737839521936493812758653267955024947591465403025652430927369239408401245428635346246347890311102896524861877478711330549937894244796709913180292983040982820106669837483261167802576560774315991501500028746711240497404163839534023419065600711110810738292272574891579946027844041624969665188265630926363970149069844031074756553476502285381798631955241102402411195938098684556298895581301379255523277630503264507973559204338450527433108309028537268500273973447242517180676215674855909487852566212991791764552727746775588481344183218365194589600485687063561357458321163263715292843270805218645313887649969926514234415450460473026171692184164952712005992051653953896554806041821577312382661090602593303837879085713119315069450516246975121259574097486527641473414237086975422434656726049010569644806480930319264545431510897009123491322685432875654021014982259261195271843189540949641557197842582149411077635995602847682078191675235901357091593999202657498996286549521737761670594227285496565642637110191199817343961896271389220954266024198441196460992760276620238629497605735654877150276131861255582358560175988462179939278648919238384032090111849933010512627619239350742826897923665654342610364980031117110718853252950893608036901817388101914071459013829545583849212885509909193568240548153813966081150507318379282145346363237484385334692674407835457981121898138048404848815123663977523586943448683639101888900988705116104729281641484453865600845841379180369598866645990251700960628901541608192595836876362893157776685559884837128303917641132942728070740121277296358819128229174177012532528323128100404060785908151394162347246018047609641833252481113763949072040726451777193701766787867606360619555976907341591142867534658721654931742359672755200909669423494498062464082868243467574459308406831969608412880897549858558976791316778506625639115949752417690333343998619079039585045703091532997578888897996834534257605288737317285914898537512070891958520572762613636051296244944397351622371604535957106725153181010624482873539689350960908082259356298907801688734232503029288384607799327565348903065525336100489489169079417752325585854941921235670262892926305823265817243962252107532181591069339009237435549866651107688720941030271903951887502007253395513368931522350779179955400696516948924115513609418854899716321766565433449937058991035161230960265872894228272212990696995759753687198025672082228583170383973368966328486485580411223706536267692742481204092898774560810255210362673291485764952245639732423910660881524978612564364983864548254861758987134414396457613122219150723433100033171059384549326198949531807518979128570693603276108201834185287929926780158740415564806396649692267319920226231255668204209785249006237765646918801069437488787658770034368812579948422318994895931773148195879641363624185586640332896322502705550811623429895876783318015711511999030003141185031156527278025446985998762841642559885014051255693039529444591755308699269141566653629917948216413643121538076250151087360221002052611514547570354186591899457165877672787411272339454867571306710457790374181738534082289444952992153229282875843273407806541437108284524348246006972519290078355000700067558370647039606687456028058186342944536141170133722061692861138473831078488372465858064912417673564473638434519055927952321872837591573704649233140356096483746423188519328873123598188635179355502771006161594402138673479462601129180835300116289089132356315541507502834964069000080136395709850532545009507150603455940589755023555154108591276750277369373680861667076870897734341652447038930649994646205578480002986326324085509525274267293970812090066270333922628603955397979785878785227501906395710283444754766292469506124769677268670889824924502187942249312750462574088497380459246594021084436861156466124196521363541577220893050657330057546828122445746091043058715371428991795740746121064717646481868795240034186006841109546623274669156195908322659168520232597835997007611350827810829831283241234331073505096483106368688942353540203124489581566382209341763864015796486069118766839171503709350552217554735047095648177552164029358184407447322435659056510790536607268608613903569637912525042855538474805215257303186409297727641522111959707948428802890970787839402308070462406949538338089801444885229039492999602346421777111397941925733454186923487470559030634309351193061074334748307133153858096691675412872081060369211684483870954379717515447429670312206658699105627796053689402463723725992219027329409500339843874734335564347201879691795773182322989045010043442923892942916619983670451839938164276546508568288509966231010094867395851230646183989799848085817770123384183783472202709619152090447089078065426837527968120907392570357485040169249698385337827124438843061498523853485073266204510016614143636519796316265051275157574976630581928345165995155266568989602089846054065178631150551962755970197445300748130449600133900625958462784358779333823292527640290177002884967132125374684417812976365194116436390398415050977845530810403542221534786517063214313227659568670336695863572260460346040853974267190423881107203282794457999763721407447488349778716011331444236664912102964210933808755303854498173190996348361436502468313573401824992998587986449201210235698461490444089087211785384962056809281768801717215033041182233286668161927559163895596616698947185240009408383471338590039035889831732586191751493197515269061923808006158356054599984387330892201636768967062259493181402442427170283170562521377905150749531240881361308866669714631628370499257007649620596354423335139872366242454478745455046608914101670713771383807929207795712246512094474367858897666233906548261405743295704720446076388747537888975370556970271997256640166117731888269380075189341580116335244130043011427767356501476886761784906884199202937126956446574216967296507650477597500594711490752976457464947149670238159372458894394280076830612973939368369354680806582702153178051109433805529523383036318056469135347558251603360367776896709068106878063186619581014570534380702254071819876006898796009347083791218941939684527940068556581484927114433364575936405369315310516998412891771856393950767984095219551851644186920557975593768119158576721754583149528625988194296860167773707641489418687195474266047950556609896631035770828329332127940044436467067456836336078560883410913347569768708476320820589695488078032446666151640695149605024389485229313238615314825311274043859419130677876037528602162793894190861484720607397749569220104676971573618984510486585440867897080781203640419203885902185885390768449027129125773826220211864852354853515102748718475226196039753893459361786685999852856586654849769807883111285580787054615030087175127468834787578302543281345557911619064635794974822065537410390753848041516742322939435947977116105989519722947346087286675529063160366330085779171281675968795806035578005432467815031841183083924077369210698973860773050763307770893589929115692853062462176269594477285982535318827404194270666401841714126193034209718370485078001779029504862740126375345966695340053015885534402922748853828558734300443813374245673002359940463676601939761595207139170343455090473833260090456248161662719879340644541833274085161984492591222117126051722872181792240005476251593012788539425012741747660483443840527744741997520828797669445952989328040125146224678763994697433819309684839673007198283606554112357356766215553327798322523951059937511972078744848373357336922527158200782361567981132803113281297617241454593534762251082454498564485668568198358428962562782879858500529694053856437363089018657213822682313705532038649367450261167654938779961631352160753169218783267243083843096801541166618555230277976336820358985166441676889109767777753701088174162444863135652541096279879802805224580720553901366871301767208648625899121324594046876333820527139444143373807955156805618826698103696899204256032190687343188877472631363862856182334430578751291682493285166911065488455139294770613462222183232101382596742893535525144089085689320711288911446936712221907305271707672219750221856856500459631683323092533446669742285221424613207863436599321860421874474377629069527568046983409409119640553142592467641549294906214365598062502730421608273922314187908692338187233218850950779993470596259921331192555622378121313977512982561413278809901202238974709617132759544095131140760806145835465333305864068926945958650533529053681789851590892559167100459993144141806317237365078352291987521248984132293535411900671577398915890492179606237948033438747627999460854438707855649935194303249768283576526099625145679622352254209321981851040804266075446210644915471773437428699126386622168748346040246159389362315398126790128985093750128590270025025614342659779283234644691696021516242147817909297793012372511471979630316078787825285900719084671219325275195213722051000963480237148128550786842820289523235337494977448077223416177905915882264905004072992094843349484623621960276173592454421069181558038106616667310569892690849017187221857107695734106347748759557231207177165636630171547936387912851386757595244163326216042828883468235863541650775012410977768206676003757746943885028522057700238066088649531868025161553676045142740114400577071158380520736484618309877895076118779679505015674136874956922711589975213649781488689211424795868709886914695370641890826706514495146210944408633762721393866730938241741787647575563838353793765725476903371198046646202815328480587563310407314158352385987938699153870497923381082210959764564627971436625675773247408768321896254391431339238163842176723718386231580773169026401577221010877712211006394168181284833312387798691839575386979280446121966754565505057571083683866452124762315702638625880935112885146418309263142920980153589827146822229178761931304741816898471189068896460350665523148333640115666034151734026166288849228081571237393980181423073579754504073391625619855954745518985716092776697931687577870797477543708698263151372761006696365725114631099275623166068657086704049060462314807379127202444446184375152223807843700235551642313716573342901741465285860756373706352826649316070548700429596384991897038861181330386281785000817191346997462202936680585534780633832077991929076316165262091123868372201322274201528754503856514064294170693848214517111156662196594297728854400121234115166221627676072836783009414249349549541768234127448249154094466136598219918438962108684981843325905907904773471003796039466559313860537944968359679806545427111510574018391464076155207112925264518747277841260039505953444779058285840955176858038961233089403551122043647347274826079228835354977894374195700056206189110983299205508251857247037019559550252620882789120263476821188681740814696229804676922120909861325050066362329721071906532101985673393513623552205729841067374473803373157189180159456098990070447027491720542669500371059347763804538898711950870306201616811667735063011058146862525792719156177022564068349958869516423153155332465819842354146117552251068167040225375586979323191962457244433614518579616992057102000191482405125792648476915447835022855054641805874013565267006360917403891459458046350046337467432331046272493111129737346055348901950999925872328995538736730649815751731882133510119170955373703905367520670956557692873335427650138467302990119444467220184694395240999628108431460123798863240494466834731901045765053183928499104110824007226621045922060651571926930603234000364376170484496327032573618990346657692333009314542833157376811543090791850049110735274862687405477949932076123396135603811070547886730232317074049301068565672385610323714400787981968843979596255667176060533935606146412775895334618119157583823513089863960444692760029659372740462444697171290028771011267370616462900343941606305378758786022128750510417921577237725464805160260472807859695526514106733314777292116616368143692163058671302898158815137004608910038858868083228277557077585638751142097941283270401261452688330912110641570714154914233910146507461295639981185814493973874723729686978942295066826006299934181848591033058708798854376385889819879755718657322500288356231232468082535642387440787143346176102978535215129986703715656239960632490596431943190714113793989835687529329385184731791437768549939867802145428406936088598785164540701464650086821221856110968177185559231268628530641660105129148831270562846260851187609445100066813627423280719364499836826716750538481745088153694348847144448187772347751600709826654513067234417627458346017062327130049039299410723043333496188749452631379789416078674044185137411616292827820689019960772907154318775964148600590617023465581936549115457700424871633041770301719781602392322709461602452515961029613859656405187715787744235815414018443859819891456332813802177538793141426522280258982435787164947855476419793834659379551264666164863131984764453568780651391755071868224634983148664528439007644261115629664736800192251689551813969078969010637966916933909155790632829790171192289601703454883717124856661810942790191856113728102421242028883181626714588618028993577538641747028963916795396048152555415097675904952925355778044755361693009999901723130999741861254342047199415686769537905046774612445350556799789580256995338432747368039120135017581294585588448727044136702564412610903256349828172396916219626399000926067178771598068721520249812019185859740915177077589810970771233727378178281456207515627865335311911091190927346211866900075166699698101896620112802083824960960477727032483944711734392245648153938778593977014107749795849614710094985822268939690409365995051445101289643700923482827800762489097343888601728554610046375244082504035734193690894323608163670133761155371470310321070354334197622213431675657739750719925047625336923052516750869055240309701527963379644216449877845746165213128743948135600913548418250917860395689180348257274252299118425607997630387513602658654730615292200956535892224771527210557863033480063744070177647939542048766423675836890355548119941379261211728489322111583040319445349516079380255033715539398176858591587704098852958660450653686939179263311554356316842212054612183854425300896887990998746345736685938290203327725975377595516211289242814534567022067216632144368175812717936774511216300953148132308155598038595310876219172961559536209994759329856065376277993285279044339947740712660333565993666923867425458329902276063758515192891090005993062736465174333986339046976940644781261917475916259865478154632398891607798421766709285285208409267433579190384907857147401318817329179223651162790070057849173761824217561155250168271062666936293180730083569342789764489321764843478453944738671720249949391702956064662030767027445129688419202869840083391676725519150336310304403898553795383220045648255620191194272694838781519999299200438501662416054203937589804939767584504828981273971977192529793420840076898263955131535941658598595643541496077197232085416694526685440189646751688361113167257035411659927302810611472466048427717861705675620281525000943966308002550439669752548625402150712414096967012696070339772762250160780893573586644123591706178301189220279840626138838177714841680466749857480401173701117719205521993677427157302737136052375739341295945733181232844595804649981704212798631425981461743559326078741394657882995882401328500500598690520085165261984708421091482937253967950535810714996257410233069789081524912715003087453361864904218951302811115302276574313442657413819582323314930750105082437658084231262026556260029058728221941148276753524562365120875201483072721037918274477187811792267695381614080278709082089558269612285765572377264344430308602352216084367022383798431935076072420102941912316992464689515892826195456012009941100511075636895541291126611039090083839158952552275949677607784475801144617854538478639051807176211122112471008083758689793317412345255581223115048332238139925164660270767374195205289573116998889928811926961025730854229824846837437399605624268221986938809958401556182259612670929834138414216052522373203327795925684613329760053217753249703191394947437943192138221399509476488618913783093193569625046481994863091962466884758232268827778424316995661396041494530440278492749192670604247626501826162598997645469650211457381600567064173410488236172269214988864192207376491964350266558379328938212467973489994726114343628091227806576469629039239795568922127726065236462851824210509417916850907920415841549699409322810217871381313259803842362995440577312209213616618401007128840304249478114262445253746037018567975247659284863981076114160695679600266861207447845631901289940921666738748209710952053989288244991362452643070539103571543859970982723421932048524030490709799500253504816610117633158647087748211359850850691567032692849269342311674617706410468581187894983956919523752149953275785608121342650203118069317329542602069964045649210602719349337162075888696954956193761745223100575997313399425841450908074322298934061206870917510916007626026588107621782739340048916696787555144353121458221518686919060514061015461086983709238892621469503949585632271016863237077631529754069269682004290174875027119028481744733730902477262669680256218015808761176233230795696905850019266928337773606533522218182268434567766865460076357174044732661977972380925189811335533977148722324028136196481218315381887288229932967829832978426680767526559114693561406445348258021386245231590042292658849332021651113612106744984686897169675970336746718812441380914492481295710831753645621567988814849123404379922198735671881467281793174362058012336535627088591659904019964167935549090265513088785035973663930116762051838437650639018521741237996630159857156487011099516327813778142450659152886822600293811697176097998935429971457046480170120721773302830995775895290266228641518796678736596672999112799314691580798735726674147830129168620292909538437643728313051308885858968463405138568527883408193629806171157127982141304746786868698240032738417759777292479223173247665951901949175557025939594641687457584595803773628364881289824813105959101071272719582778781219747427259151852874107399253429081449428168233938093368159391012288196561107168197625721246286018188243128540585672618675066184763527874618315507568674861261885704068909317682757965800434353557776019898955629229423657960455659864678517723685521596301632343205649599622466428061277216156115132479545054233925634960771530128124827826571263096212218488422392210148367165623987481848850406454552180749276478313184084015036983536592174494670526101730189383818602567907215422767304426454568500531430268845028357813519394551961617351413388694003175882471839734244343072678678529711053918266911355397547800610697693567557645030437279601445789902898218115029242946480671324969624196733047187493183719199784221405386590777292943583365929414982838626947926084049075788369633170984859886899184633245526847102684168415739547785596400323725200021192238777224820367162698832162241472618131252417003537273132618622864688322241849820787935179203136912081176326901079867424269095051898977436002199500518405400392775275434260917740352941464104372521655282034356559838550231136642896357292353869760803571760023069192780526809765568123163774484690899552477849781569331983860953030803198867359051429424266235359991842028899518523916763411778935546404417543249091880546928051488928407412578536616022088000303593603949866597552369516586223300295057970384720058882498184499570830396136987168634619182555927541300817592295801302211580036328306495393156337582040956257277109425752489752578956523598404599111313888090479928261596297254898909054356246069284216851119386029517369047654023176906081303371031607732219686708505258128163853096434732090088220787234215293748002886457105365298408554938980858210332928522647162890465282057218471123962414807376649401352223407471699889700075233061358456785868303697848860007304897437045676366451311683062749538337007538763505465421420629073257676191154395127607008920746425425051568007407813630440234725892988780729810406597615245508087388166203308578297191930022678142871388517646007742832341259159207472163043194577987618895826731278817844719247329351681145837560333338889498076633902781526861035979040256858684258751334758550819997316168664723324377804496918828637991143632424583594701290220780372078671506386075066381237476100597966852428614251460251676950244181273200914980510202574891920188459871822736822861119447022941504868169212751853394998554359023523273438888051195265520876902432588633037903614837604762676994893853517061060301700977247769270072755258833317676618561892153332529820649415081779136106613034280612025756883232960881274288758490361663861554037171728394166684660645589019993389272105081016126580379377134647333197019771042367303193251128822735222320626557726260494572959262110748935119079378201973530978883816770928017138464363933620174834221268849297573060162407951443831588231783035807416949372981385076690011486391232832039291389043194067748768311859566524246389517293140912231389914317532407179837332742096155183027254513734646142308045347161690260826213628289900878060537705757651633577930829520686132612975905834580015339379332442834198126775842894122584321075106033741803813929688333029831482253403592456811554524762402537241409955286749259053803620325016516636121814347678709550019630536966123911992455679362015226997277720724734734700912180571650774056781627849733778558912532204409649124137130111022157942180150229963413549985360136902476544411548033517594040933778001960693410511278294579660719777828160896717508940225742548919564329788444860810709113207270936723426021839402963350102087347736667883519855055043981173573021670261838197040885329218969471788888106081769323059199343118897003822758228388002040312032970395772454082441947633007866262442967227591922519073245879870037592458922601158279763812006749277910329234256382823977428172496741916031579079660072399058660608147305924805112909462864307357904708610052922873786460114501573317929390931624088191924189480320243204906496353634746186693592191146146396386346046261786396572868771669617390679022291550669232634503855867834131462477225881306043102229391482958701912176701628380196821307793647336732083214589671274423897054262795681346665264054063816174509683450201609233255989548816349312070979679642214777641802022127073085697603598815195205330725854301747951976495491834532742624239372037810101613106201241410845048936530168661730940695093923587273103208727071769376699748684862093947828486399704210799696528704108882811668395250326575157618607870781709481912838079538429341185312663292387314581926139614255591980138431133177467428542452388609878045797522575948988549982707301605679507064189086320239352922683516117905980053576051641452015502892683491952051969733049957540558104976215055004880095978528764709192450265747216607823524361848576233995361168195719837579847900926304595862894940805627180055656139489092640163249776082579237478723580303955294624825754363271709282980591695696683245698264375029393179538016790833975918327372286230617052328113174377294504135991067913217062847274902949975434052336233703245327495180364956696999026515513171321528925945124995205271818895218654407722907498694759972928168600792168636272271865608417069020493849740101818351575990624085470162608618544733778723854794022008240883475511328930899375670016150701203799377830097188413245938218992183431652859253448931100478693581872457756962584770116732856723168987430529440599185358027263179638138674313884075690060132991218145147271676752280665975646739110237766984509930221733519756024806553894862859378306505015123471454908811444684060405129725178751849958014674941264301341426487350147642854916088350588867958621863275883275272260849957522889915130033706605724028600420028701568991624796984328259080363559438510396384632740351702108772009783388390147581968963828578174458570019631423338722215148448977736641934089512447844500910897846702036517624835024617306582143477980533544855911797832887935257043661567767028220536958942834572356210560618397364939422858530194322577009054283158543900941794247520637127875083748767040597085467555548096206719528725943695508643693103522020602895061475180396150995801239389108295675021678886020836250041955453246070132911455730754690212978736976983992208618067449134156964376063783582408064974939887374452227041807018800305164128348834361800832708617170599653901363026656559342374537659580060706402150787892287435838429724441281294500302413737452527538296755749563279714791871730919893726023600847394727501449098198311169644839960050141579812579042441139285480830171086918923051663570429060335346639825053386761100767143721887121794597173228406995631637928020001706400208220560272221367101813840136823599330568379587647266298064393619745645031546324723671199997442283823810568594098423874345210885403591947421681159365436759712635050442675167811686567746098201491400134550974007890132788160905844209125177383894315981476145909359775464716245090900001628925285461752011800463347551992663851868722412367267302369421264265858043782422895592186006181887119182369730452505495280760427247444140490645130797958770982099719627462030786336056711249751903187052855474995714864868265534671488753331206775660234719750324624009487736046088856473776798293767401381461554069931099976256373476935610763573965091123803254284974490706747744098399122001660200648684074747495664037417182267418571302478370920710357460090982119531275690549750071698793535735701852089262068477319814982375282321568099272229443376016558434350025836187967378628357280530046804745536605835613237903373369747555576326700202574314373669728216196744371948423037596852669958969428376513954574226980949874934414290272330246236651683135763645945161077633235521380726811136243684403367108805158771276833836850000227381005486936088217205159790649615579677774662580467785971056576812511264724816133789421668578475160913275266336159512200320909908520198013626949707206245877127548413920098561733200853691579828365319721676937942802371762862041226861106293930267802535532800005432764572629063205477293005443560966261533975417607876078934163532868326779728305504154336441391061602972578537725791466685449721773507902867138436532278047800235831569532974251109174904286454747122339271758787803721876679027639106012737863437141967037029597468908446419422310591601072854727950657883805919407972113004648697580443678890771892921211524569552508797789041290604007472010878500510141066345723786237480750622363785897377548002126658983121054519997657156046117106429367445330457539542237479623762382064167538133800242175188671449798926728685751707172992074027072296321022024501163646053836715306250447720221801262139102418142169182599391547547677682221815890754280133690026039680567929163913041510402810724077455636839325345383034404653813550704517752292155424990062249105439977320816332623236538903699860013560100685138724372608762190924286551156147122053967955216070544759060729398904435697305863168808513388229231254602287794337201597805456957952485428090221239850614585526770731664382655655812937097349279670477325023784479764684114890393250677775596923008610782101175078711808135761697635294827764550267314355475574279329789876131777756288126399946531100805477390063953798670253649962662934167236752974851839885744218503548287955576186535818582156465733340816029140727725814421692172651129355228728948355364731899289827457012352810291297861698421670214985982006353691182532514186505000166244220902951856457512748635003564850979834336042070674568592650186931097572291172596371213882147125782544145173425650452651310774351736514741875884815194016385946652203913151603678998750904973343682579453246225455810268113876720326446206183208276888088620983209534833936052615254535756585221513641763863373542493193693720964085682256925470045265224132506148944519073854721302686688047382870289630735798576746139890172202366709143764978947449179312338286830751799815410563963317416533700472679947665428491396962035449034068403017911443136429830628231951166520906224757249909822893755112179609351928796488515853080065566349886797012901615281330049331299190781678778055245212454797755606541386683661123848755839407810713489438364790355277718827632227568920763716226957699901526670749450981100542469299431951786707382123871999089221028869115805004503978883430279094569742217475382733878635311838435655167729333670927990391607184241796522980372500204736639631253777784404888130133227986371213470738938216605706203618504741789557294636076763918773900550662190601194331604092416086473234400646854693921225493091319438939737316075763519415352438198276757435028724193254112054103053269559402067100127486007468326138776389501816055873588196857714310955957357454630334990615284027564876090505432890925504275797001042196250795350496579752246221559311680151397998427248270783258707164880151236969839643882618730434143347968523065179098129268556968241714723538369753939765421122754793594051511128404851320593666285005743861677597181086330148071297277535524013338476497819103313065421311175331750289097442858845216271137561558368865543240665208772790842302807194453961016870449101703299711238595392722251432383051033041718735879089644370131281141092251606642045844411663123033750346065441889881883827387150135617910977712617423589595674682655327773241674908223161697250112127933659612037676365874522820964056783630474976921745920457933876000043837580311092061152406381874729288276720149927920566925664772284064444314540316637516900218319186342731407098363168679627783643915018258448070465047347211846447229094586459920150800397577266071854222763703755300777454610798850385958079531483474869124279059815612696793716969050119710430258193051455879402114228294119202609044058506184532101566352445702640481828344204248419016485695273148154117009477071858662127823244539979076531856177777097547350511090128382446212864902564461109603713463826966299119587746844984450364588238899443729347380194595559302401471556649957780907105623564701319577356030833118032775513454396085412661117485080561535627031477377016648670030466002383374017748528476769877989720538368377899682619875792171442512175368094332030753445226270223510660753965956188183670070353066636531004550261284919417560240563940105057954569255885730093713885667228914618018922449636224567722937646830562861680882865398301067315863702287354369033421049206797041160943984494295074782034388457585974341089191141938310577663229618691752707720162440592546198715123076171932025632228323127151701165233120604723317852345772696429738436026142730961508108876500471535293654932300201814875503518782085903209438966142062644528897185055891566553204423309872640344434233959673676211000885391092196336136637879762337563822688074292177675357788136694703045730100394548219683276573752795965046679982708161014054379875852926092635427709703455495619197347521412394983473682065376182700285065004348238516814957816995010826411354896123710629753053820374533880164108049737778362317005807024985861908047528113150329581400726755745464162824620201764814635762088848523784839370889358840767827931083745399683189140659411549735335222726318850438544111444060094111323499463820725593169271001667636741789257045497308346171970397714976109984642655970681884760939152495765394849269863992886280071035963550551683709269461051871337137373462679196684516286808966323068731837167106685360089354276302571679397506887003201971116365889705896691957933568938993673723551589547380952978214751992860635418492522331890080659653224344523220754286045752588795370400255702227959731195241578466675731093843877181615145642782539711975192003403183087186717279481587584917968858484343381455132615502017295176563607199236444094881994825856224783229614249314883916410561833848495183518482691693207779336567375735645645523469012682966447337867429978259033220962335966058173266683017225346834667242228732104319332877162679188675478234083948207227058433746414379335262663937375008755592082300431929995517160004505238318608742833189203406431312598223976521992796703126227785854749986173988342125894786169462741434726832098826159381401100622597890816834257015345791130076107916238466665025986127687026650099161280104595942671570624305670860837934988887290980974140925899677844652948243450765299787443959271000122840297611131275098562034090340792727368316875026261752830707229019245919594789829365126522017790296996109097272864323502776951160002441835568072743158538232232297312174807932744940610101298645376171832197135732723638179067597919404343911248865483604550248762431828073767814464317615749063071951773244185971516214878859410366510086349301005265126868115119107859062073571973537215566574781698451515620157310866762731485312173482229460928410759693995653120471728431309262367676652566341354814266777242752357424868904142132054756986655947678695168261907280076880522693016336066877547523381078581427293449404366702586331431434066120734402372484965269238948063039660871629664683460912283805539930095439169334197939912376824326581603136682532303710109300571261818843618243410718397338736870016309045280634597359654283629623554896533463858331836672245171418948065193988161463792334838046429311114864686519350562444231870544166934586507819984818830276467624302825833265743955960680034890116941641050181664252546512684613287501253081207750525774502683143033066781701398017546229245966656300030158721663315233915967532620417463182106236498615360273107533984678980575883827664948434650737046408233935142565510500791268439117836879289876456467475254809805028598910343418368526546643114080634298668604980802972152367380391566459647375050109519494765469572620669115533644551450711396967922819335506683702775557802712728532201632445501215012145392702546690518576292713531653380958213848504514259557039568484532967574342359831182519215980904437845079412649728414198916365201108391503875122498103179382485418751586435427323245353727144155720770049066115391310118047688130107598679916916101641857216666776539182675514842634943609070959598613797164758449657160630903594173664987669657545738430629609600684482900649518859887458453985390757196470941511224357005008294566463033576734779245012855862423264275261226467683727462652623494714715526109680961100310054982272651856818569720540711219632508804622665065974139189755673540828489793500539054251295775403199107739481427331112255233718469928725564169036805917047045076878335121001747532084499331242451870980080082002884815583478162089434959987017699647921626919911766319219286903592049022830284162793075725032570989653374491298400726040063870986204178151439182542504809502363545845858230750768509551697234327484469689708807273828252335644952507972160510812636130891994410875844451934277857284209043134123109122787711730433252645613217647577070627036313654449190577661908751976393164904116738571303306921657293501931892402766654029429014456403657147954481655030803255184548162101699218287508558638678945769866913913667624678136945087741677636894926274759051267044146154050206739242846315975242700742422749715822524298555482069728024832776558914346879212468063821450715387259017173480563940303870911505761570309410702952902349892693468641684382743380701217290974565768631023088221944359526962037769252494363056345853959957421810809916800657892235885555979085579853080570838054073610360387324545622521963187821033259349933459539541789050624072245984483250719853503969583057774418509707636645783112224479902565473584720759353685485214087194696579214245803315340080008567479867007242341083040021765564379478329428163405252825091716435732944762774441824979043415757659083918711099051919869024366887339359140840625560613406633530215814944960898115430081231443895712849215402121220210516302092421441722513299701718566246358387987883844129863186277876249456467608328663954564435237138633519088754839985866236352033421819550882119982188450272632250060926349706901442336289781372629097669087264207742535361084723879262534951226590636097991266621272482378151335216016986501666540894501718948201373389062218326287816913266597230507886930084535576227241393350031185770888426636045538067851810794210522165727031941390932580616724589751638124406805717079043430242658340964469253455662128866809633620584443582251896721534368869417683454559978809561389942297230892030950648918548731941364542614812377349842225852971981705909026102251275947871702785723411241602982504912098445462816325801779189808860851709826185475162729191050481494199638741289809300584559065670354401576426493698430351808227232653896826614859600263423430913802681097031776691653548738347946006078633544333912034810283738666903879016902177193204462700737785109677098522964715839258688861351951013011787850979215418344544838477764849336457734843057441620840245929918282051460899608494637173094520128490702689960464222975887317561820403666919786989315715367044917531398217158700459429454052433665968339194124892884342284635892558620511291574309249755921572413404023226812044637188299055097205988037033389299040515669103107748890312111571861168330518011538935544559918528505374022247993863596955494260429799240784996759329636627730651477875413924802896685106903724877828398015410858390926823860158872427594372614206604321749553952809978526695498495993761934344792664927007414825271067302162888154006066435399605214486891540482550419654206748876904646390172853728032186407770105485174023520397410433111143142282446188441331921046095164684509249268102011711797736213247555466835873924666893183632108229389543998274990507336873335732487493893039904305232000509625106005685957381547141463936097676409906452362225023889409899128786804690897665658459964710206508488091697263344084664014229628371976943924775269577967228321262601723464795808468857293216605436788998764080402149076120002360460399685524227059918694959343927176687019304684464677958502360476196606994602888994916701911426631105143168962716829230627424634865885131182978301743769469110574153218019603443790016295629127079132522799203203656609391119947976284871139069291220671305084193106623329891014482585418783400181350732786100427983751574770148098295530249196387534890292735680001492269791468489972252460952399024605754214948899982644299337153067358230926295743835845272689497728789587401214853683298144258409704838361400493847966585806989339543663406564922411052030372102317976648078640596286724268557671181845341375473222031468818755210139694172922443692492119923326307132551393802330847299159892867088303025668433360131109884056248574975615563163650332358289825885598759225901573852842016797299672221255129038558169479257260779738254604390940107327686336448100311632853919430982623996501947195580919162008050459540972610179997928976243709267246080201960606642262897279324112762318831606714781845862868015023598946145543098369686582949279712508028929413327602518886497605084839952251521397924627782508450592705810691896380638223213996503983721645370385538591407788032511060330061409761042223059822570528923211643786126246624973471051155025234842749362441167212170041169507872199349438926494411839878177014737992873071749566301748626935826909145096269853957627849737951195377564775801153011425569726892545718785615624129498630091752482702028509897650523373015154304645136757798783686488495789195387119350541558597398715807208652453681753043128452198036991710547112107977007991778746490047873121486734516268347747630250766329852030257281956736670521917650443354285781266991105029545446381386056021193671932199022781233036275335927951731334783058881872243197134037818062225287692311915221647260432677242811620884824745643356449293815188772451577428775768415669436069129760232630871490405503181416691491032938612718253205064695882228450367096017691368037887161269156894367993121770513359137195495350237837964231695507675709848650004294224372619290544603558681742591763444547996041709853736140971573868732649045381651982541920377992998803649127714546930679705530018461619936263573158865223679453144940169229099524742678979335785790953129463914755895612746624675480675507121069957608398615062412269327987663422267240958675592803536426839945924334310311653564835130921488202743519843859518881510648069095257421579240223460928034705516678104227017788663261644789835288692000779732252916020307161820524894568316423318225042088174770470990424665893635239339130678616857719700457970025554040447282499086327933806179698266965760682679807764206402956995617452962541067392420689265404178552969467932961552811544092599197570304316438351135008257445021480071139940186072398135772396857106539312100753173931114671788674631330523824126574518199924953984298657988317440022683673206465212021002185555399468101588441739421839963933480398602488867773650245443325073336422358102733784780148608635519407962774500855371475284300808633564653890716832016813602158163551055548659957991464378718641059233420031595026499826762650222759622850985616802728692700880508147694002398118337150323813744552342623915844696350569913645096777092372603730756145876032227118088282030830682780567647443265030718266707377265529918919352668852317026695620426350983299415210774537154083106983429097131902061405402238731510519275472960777476288338242232842975067260323417366591169109943883833025814510032749861813505090620975305055954309756388103919085928143442729077406381700179545519988620317746503195995981561102875191128613327539744962505315229446372814819094557665432419526841509495806732484309124675583505333366420474136452910411246978586510163083154656367935736960173720038589912662216332196820427338070778914041323584451128814105361892535111475548820784600215552991814452270207226109565708154985177995885107272824493563415756092077334881188581659142712040005759161538065368304592899779239379035697399442211081355457675150579828405498130998348859904126819755564989775476964230015872572179445875715070784969932760848255369181425838201859827475904002864024288052369320705825112203886435629839893454379586720036497643872383335276131370534778153293329829207068786488776975933575354331720483036088721954711090773307698277830484159489809607806510145507940415609697962902858818618900958024092659902613840679252986805630976369933128421904062804822357608772036622584993568340705474323082411387907614848250981709524457423308093423253020167273109425422260149171476930110844689674792796528388448337980949998519650938668079593681360403569942416107679017671472100213735956425700867391286661730382646014364286267546439403049409940536136214437229736308146557858627266793894477977119649887804974524315217459745419831164810248214353363023842266410214512657570152544889974702465476975124172293121511261479355154622102895622544039961554578033309561836820641850293884088518582330718943750677462121615312559636162512977769799385578865482418151528953356938407484201991813392854075264789665997802639528134543964347327180539505113938832567810095185634083329658355634004456428327976553676541317300815322147053391192739048790072674860894040557636555271170193459314583647817518747301085709558102551089542850889616288431830999075400212227909177553778308350236478772284230284343287668599535323288575844245031455264289360582587901984109796311623867631261275058019604953205287240811805912543441775002992209516788699224234406978060671434494469014801489266344075028721155448555510478255727416334411632704618396849426509970577998650556449876840658274646702975706779658460353387255602772884602221264740801231807166940694012443475816089104858075642439315434817218903096656407022943396196537445857915827487704255309829999157076438718881897288786209922959682938043604091437377291313923456944556197554605165271487564387777344364964337676433369560426390010513259419720374465278871213808870965698966471156495181878248244524959005992029654180879536792663175252713012537398515168989630521485782558255107052547886312718574286972844998305452267134816853017568816273948759922233908795797897220960022895695295451036249458879723620684606233105648808023202262026554875457745253098749488131536275579233955759628701885682593949389319272922210294499435823333712313549110012453050581434816291058902237117091148827254963777088845209600813023608979402239308400341066932222292503931149038154346659752915732860862875552778311374311211737418723659312886568831771602660979048243202966527123367683273744562867866684302101333527161329122414896960029444387409557016055493317865482555428415536480321867609338282333517090653772598548077757793140573560409098093580264383222248440220435383177984946578084572595654179478014114102196497174168928756879991276534144915930300933199267010356395564859828131990732168014998556468824108889031985447806718332723758098486846736069791837756893786685998164667952585579877183200845064220565532487274522568805712306763286684957637584118815786295745911922608767461769178543923176127596344457310069143589123617480842133147037006309463441804897154858440287648215510730937518243060597449676051545539688619710277819540195258888251298421509861775503450529373827999152795949422908704746720466267447528409003088197017946587808410718788895241452222603704505594199271462813179037049192503284182829879843388738044082006113987299972694326596804385175775927041079680622316032741147018230792366999619602557177709717242207666073447304767204621451870374874268566506095742379897857076748579444658739126840299575084065648748021150922078363459430618191119903178101526881910794356382152544584688195184661733574335852048453393272317027574251255637962368765862533932016845862461760963265246044086984191613014642740221847972368057657026204693993585079004123383325399738587081702697236471702616754009474418538418628285985086985599310633966301880885715025841879591461271464158525916706922252815065704696345333939880935840072077859568692147244612033795179437708891304817864346086660045126824433029093124796785324008054231254445509295399573953134313081888740102205172725620029119017810328943566854808562317110716208549693690994256790529588053889118279597257450977344758763017626264586716534789099051250530639817038279748494455423991023206377089510102098696134463684475507270116124987182738674603967801948021653111587823329393011437213490675505318631532282462038821848208657447635037345957897973434664036138581370875499654930367399520019503109942241289166452940966263547994138052183692211548743401756095198521096975301062298526582081673585536404673446079978813587826144993814853643723728237456841905949735293656208904954173419919314964307959425866104001200288480652606371172778973117726980314772740307072780454208582162218160336157892650626129250530992934782251883988267352290228868807255591946925415849565472971935665604868201282168905607697209536469404479819160152533372467835200937449893132881248153299342497155172575523187280753524801362060834374088015231957318740290765563624976390168506712234129924252319428139498962959127236552690227189443335285244888589323709172627498597330028742105687859867659737186392871916846659277843553379314536909874879113956929729050109149215906181073706692732858117565851277249599516386181494843085646170257766635794224274103164616357576227860735376882968213097025405884181398642657708878725832727185806802498321511885469489916039936984235461871065606761036491337723880629727138908717915243044017714352043476600263582703460561332362035792759651742856376041504341191747936534111582478405208281361258207787631195117773291024349024255498210776855909649151632515999484234297198274409526449296817049664001177149280973802663874381856722326386552285497703940904458759872566973009252308337898152097048612739878279762262183335309337537359164836251452933960486816028814512192887083703618327684877010695215779769797883108189088422985941907570284532005825844112807457004453937945306349115178466604051188897112433609659997165880798664861947351250791360005531054042153955299278810796307492934548012747936359852564964638793848486411431533824809377027615064476698859211008799124941149561828290101909371090963475080859306983876396434510495046194405771175408649165946265893683035726168122524641059770407712432998137366398592460946646984952283514960659232347007698461254418838324420976802778795431159373159685578577908382921182280646454097560092684729628714299451341221939430918093790431734201355438151089754905801724957362328919835362588092671650031452930519276417916317327013558550437512123013317517582695863995393413865971597771234211890063564121216991142745540117681751524590778286251685290993872628715582535158023312111983372432649372933988779439300396749894723291759444615143160685958276048795871163160751615332805684393985532261616344883011100260224190083866333139867062780457419753869989463848043694031520972752711262402081804976902442559277207469168948661283265403583814691186101417434041300884323086677632493245025372883203675225321510824794886269515133418867732952714147728873593250714139675943496560606739403251556027926049298031845847302388356461676158166480295415488442196246179272027626516276353463908627137157709158530810535358166286451859681223908295413981943476062399899090567965453096036757502719738428927977018320539777972710400704077743725611954195904517422325563517970458333580204183624137614510340433385928766313955579094498440005069773706855136329534743555378649017214433065732739955568453717068586112440658330836223640023309452847848410971144685345654476461049743280604242385288328045594063034532131345300980906074797145517928861526973586173927910668591707177462099990348396696844848715662422304377656863360856885289667707956354095123931668584042063537701831301273614579440130614496541829691441414800606888777318614480334638652531056407274423191193415580847824139016612702572796233687317170480959426561981447839723544444856195889990874610291706884848654521851005352636214368195290564976110583866573214896917962069017607468306039621137593988850398052378958517313842967084563550234202099254999853728051056160330816716021286346124460355439082542085191036341221598533170319018967479926633756718901053847235207959447700408060466164593456000694481728437085636870093322945901573240408252030026775115566936836377231672665567545842184330321663200616404242313985912387111922633101668159695718183060867784346365650512144465339897615678674753407645238000538454536294307456166802514110422165824904201779409189992965145323313986442951118344477144792078455510696632070847686112028811438710349999549052886899235802628748701373270230156773827808602303041618083711614991909114197452146726796426496156570192364987222338312043358966195743633384741039731698516623494426434326754158378035690830783899940870831399497036300415728297818979326556293192614071103259477204967299069050308071722829347117152210339528220449555770710565421835710637379886180094670514100303597805489134746243376978048896669479295509691789620748246829085002276396219835280121134282101490535937766769529871421554662339167323120063433739609015035669189448012074141456149717183456423859163581413186351313122339879151355396926155437861270330807613667502309802352232432348291343572581023079345215639456552719997569916857028927350653798918489070009933027945619702941582853022474884408870453743252609027152188705645759035279286115970822743462716588856783123785687202109983610802551224227655341745417025553056207201007702629946114996950211477121342127373120132709823456299584499496024370692445647879166106480544612073405510732791204134884543571186381866491211818586702015496773936831865357875236583063294960595218276998367729850296859072650937102641890381854536649455067258881522532542683524201381794499877078130188033650601842370678665970558096743408374448270871416837540524043286628118191657845939984418780637339359821597585640690680718071462178628014975235842972145726110738430842500075346353033602685892689284093732324577732529164390338667040527107847560355512251853168859197784976959893352566834566794585747995563604193248791742285520621292678899497816694763623053103250879176291692076445878994854038583061000958860784056137422269493186983565458439299740030019581628848532808290840046986580980520849432767116830032992259899570045677821722125054447770526185509259466577701493410053775008706725200063856665574956859852604068339008035619336620023083362805619646508763370047718920100055179280026647446950406014571643807033852032798811689087288492005901990504226366505305483114534612913995825864918066352704777782573015047621682130027864583413179395499625650625556462440547902030306369000106094038150687756141825431898452558944295567900036100828027243979535350915701790989615616278804372761580772374186414839005857652620137032550588936568529162950799136418662660502762198017537454995836141058536965493322040767764010002733128787011886930387671981884852021043049046285790192614302217246731684501197399894654798262046181211904116955032981002039822414892693741419137870037471972615570889826527330400430322224288012246475114018596374893582316028029065389913297813740173822569834558695685857437994017662411990280740127678359998138771132998952576953172242686007719173914060807378743331057584426357141255978997095382854738819438489036874237151013247853710560895409133424703437565838400919627879558950953913810550151812232266784668658600062334905020787751881161698090554362649840899905119155458391113919226334605227589757810600760726932101613254370704933412197393977565640548895930692162225929601344539500130138833101850651577434115467511259538390119048250311588647227725459540414028694449401238016806777726029889003776025254231472497124454967620498224067422019882513018072195844867629766009672233880294648634608626422328459864488070788494278091809815508317345940318460645956196251029088096061428590308273292438932856181725850369253064031078153367881255731945735890340085175875938739112011810839008901746222875912588672887913075487041150158826893350833140179463224061148042944402908456997877774206807637210221998960292559815546993064066596975850601240254678392032149518990717257724029977717340068463064454159060069198803529035316144722159917650518110011715407117189984388844779394800002834133392954495541565929751721922341327977037188463746490819690993030523414898350569936979886664344799654612966993771564766844773923504478011188525246467128092090188633118235381473654116014411274722620300582174998488580823567661908086662464558368808004443524990895389526690819414753231285701295108693806823795969854344336910023474205028305209995115036842910053148542434333077015309656635195147593869920545667653857291917168672251353304202519306504596811838550105559283512083821193360331362224652982901566888758657769516646849639666254843240084481963796368100939120789688393235242732095666482638139014803941626341418150656506175197932684688733832773732340690122291502951518431192924299312779364396227371690241883067163402370336334726287888936600620532447462011067797297738045361192805441715692770876207829265767967012411519119825769254936393671480498214286904831864221128381872645088375294410461816450762616789549201174117168677994275767950207729133072231188801093928602530116387714311887610070347289796192858069749207866927495935796479729383952278027629822193688272664994465052847942038108794356889106478538317623352900113450196166110825832642038216217543383231755712559928111100739826596122996553570688123409415847639734478291691523487875220799350731710389104512416271480426524865486152732517906165125346504389800953263967981556574701918019487024829019499103629704659384272118921769031864823210893385251038309002306831234487005385034561294896170644252717194758536169297474101395444456041521287830071480160358110067187802548576099186349764542357574627463196751095846981429956544983036084308511795214079936103826115573819981510793332980061310923481215451419806420723182053474802001312007728448165239970609660015832513335502966810458002177085822722732846536917299134810662047101710746692644967910413598447130984398277530774977269963993630850639344559682607307358884806110833365134457182546704248757419220287646581804209084494015370697436515904839932991639590594000470028787097675222857941051872585222695442293046290261182067528022075614604903184792767753633269460840040811116732021024410162557806638069781364048218039295066744963962222188248063937834446362947688148503141300678241023694179080895242933297702815358236555770824527837729045755740711098039439442669045287841072167261840582584059958280582776976171599420867629412352054615314337848834855889193114362966315745179141265599346493926514429546023082470819816808622671158832562039434924017693550143800626511735504106727639681730224270692205746204269801325573678426494781878206748434256945260275655946896806029755687558675837954485262099148769335980460986048335602691218028202623572394325901293104929196186189128086601203691485507074620775475398334190877228813409624265727904993172337359933873193085400843043868452167841540322581948652606370687134085797423770779789259461300188383155650961394895971371316868330884491437397056856756467886653269757913028923980408525079172647242347361469152862922943925614016802564138826354968179387463359425844424493689196532717985839242839395672495326337760561643177559388286233580560367797877743650421862591759468486657594720305142988280007374622397612227954886690697895134552852979722362338121353062899871033093141659368192948287424585609577895795622276844413745026098837837858051012927801887227319068026076137165762009748287282573980607021180890221622427621753045266378661605014280058526235694228105030939680762015874827937937343450946149589401247816636881673020036831652657415178657665412780674079920503467109530599375485861642989441368013396369145281263611846269050079885031775762934490217458005465992271742868584020040366443766231612110708063254059328598584596195390206974976825499406481073444777022102201359733088499360161153560042528619558015636861298857115376831183329234668449275944206908496362090055256842093185278275699846729238009394734826082037263451829046317201435755405761598670552694414123321818361510928838626137067915754679602307882856122891206445524897354098574934161127524219858648777295530512501991105683933205449784476714340795822537007227088894497247348936104195171731139417332466402351814942317020857100055464277324171986719938542913261684187320554464122793907114769554192039024813803476933249194445806793840521334273828949030447594668199891231063502492975822791199456419307119169534460195208202156239683754209226852505392543399392852520755667044373922568514381036590543993497728657049901518965930829454644121577137899719674102926281689303265060411174618706650399109582989067434521521729474742125075139147457038325395989963507239833704918624525548705759871370721488592681683285891412689740215437462000123449911811174600707957381567638490379449675335100019704823530583910033863712734012083399729420021999916467022374553292959801804597723270278812298522165960935863791299229096833745321625932401645350419917914121354865555740963606421932399502060010729199313637179729500772989553044823153281418074992529369560450113200929890377168887234949123863111495705861080605025249276206485516446830749075284937266995651330210994078946744550759973016009966833188161853762500744486647582693873995758464866165325149790592339464370302726635919114802478004199569011660328032250963517578649641639749169798997917566667011865132394088227925432971851371528067166777661892825495110079065196207413261986712727725300158150358439252915306915809849192218147525440691027773921141006479854058505281143684636562314790410948967370950530295738469016614070681572405003457912449010787358839430106776145792888540211066740224653206328207121621360179825528287323670347183835386917986597006330023476128963253668511723436276179335937439329183412752438169493120589730683221247553350776324414308472649011523215510974169881488151622374735671377772218287606217630922229016429075228204391905817691707632974165586805745832822075877410907848169070322666295715250447653161123635082061824041811704660294694780365193891610177317328741106515810747859555642032673270305241937048698219881716711248289681097485569841589070170104686259249921935845894855024297613558430336413140269818691403735531148289598693733930841552657677595854982980881526948020027689359627187333992965449720680639770222494592136898674999997552498238804821408067250981398149989618480050163401123475111057674166028411397510384198170793860628208751339433368490607036234510435254250902262648393962292200896288440156731866514842301104908837610120593067591931382812416891862185661753589458126167834530100887989679576919441046228576171848410768020902550354043095621551204098767215136542330017677218951294473110018249001751690480112355474154461096706957081374203088684375037694404891815130841318036989787595271519139411347491345722564771014520453742694718921444003102773901709352616324976649943144289510716482183201624483765104592273819309106440458770972859815747835191993136348206871319022678172293911918482501325833414533210756204604838416573925068631024827453725906548090118271816919382649929672747542319807019894029967447563004243744676353538715107427694283936965630884700221658417022344067304023917469724277706271215710328496334161431839603980881013618735670524799673679570085310681911832441643457235365806778259729537805237835334210796374607178940757152862487826256340325603596581150853837937924107160788224792062280903590776145849576484533336374293196755431294435959018688791186852207640743390119967785523538626791288450751877666903587854695976687550016649265870349840160914533481241585395876674454228253101366931260887257557570439198872677449526606197902557402824770398574591792592392180128384932354506060501528756255891880561216936017630953703064992540277799179517147695185894237439347636308873273709061646531588325455481528266217664836713772394284538890988271880140594859158942483259897947737069441852157494026295427354202494655615684464415086984357833653991137347442427142860572720419576676428681119727436288381386859090751863965119250716533719945769283455999928658257529701800255855531592701847721748381695422460046493783428685755321295589686113416133914153548124183278549535072537897077335929062791775407165430779801324473832498138143176897271440773950852592080455433288761098594981550738468210472348308427624715205594782985888452436453602690996276144353376067801009366843084646933066135413721223314017896129686518314988028112759353880967671690546871056017918176788989872418005342670630257550354393213588035891393593457583697095479686996294466634514913291742637566895873487570168572082815035204958546185203010690239780863935624997524393950884807624523967956555253149494570126904898679753947739228428547787891143911766728120576147905663043104081365965372516348274562413587825651801329275312865812048040993723944833553473890596601114248124009966548680555626453903143703709652459630538220319443722368733688487676577521492964828042085882591630464401061185874994403589120557815848390303021372794122290791355711066614650200476460830577963115360264981951075140029971730682772327249452875521695130550237623577308427137459020450714960486961955762725041722554641925364087381905852749632975866552069845785360355427686019114538873571231733287047551378196244877365479172146078200428346106903058023479216958720349142689140314360997201025051890514096452711738629655179819046864183655379134331902992775621982458389980980344195198464093072932320199257787090564455620292260646232923209597340953798829451408419703532166475264491011134079655441265084155623005228586758819700137978660738741491085655731353226752153592505355701234010270512004923326757764541851689230036436643819223674610785992689047553588573179476759985503065989174622399796742241303303796913467900516991795259200013806447460950962922390019980203712149169977457561595831368842254840401742780841953994165795089971199866195757417955542136748388294984965114405857905044405499383904889490349013099633439721192682572628380404772042341353855851446409121390739742300784964132085004155989046033478715991340377611611639577560580093673341746391657665060001830841536480925759270426833039137204343254587800793467139297545995884473074259263785064789067226374222664739623747878983852437662934532075393198586911917653792486978710684622119168667563260449872434199618416690428791511581141553067778560855048326185330778953280661444870285162555733174709839474080190889231514950081413576271981947405693215644449372618291283818405585929657661458903623165611603731838431138130412552914230724508909258432045889511517173684909760474609187534819202762023359101068629554476213284006214537204190738353992832091862308975546524687828591440537766661666405435346227411573484186969104679183683687452807692639341681388935026379256650503360600655956382172121270853450787202306301215102552103799467281581053278053174397399999858774072723041410739303619759491998038936409783073058378599471211070731479394831651939533883953152267133559251307780550735870063017362884389764179956971138654011828216022142490128086818268827775788841037007784246814323541762847870639883311604954542001772645781598243189368978249763294886383615117711019458704483456204928005339913518204319803150793010318043336366021519552377515141394220208982439716104982040018103166951837038813845811772882611548894214337344811659148913002881536845767753175648208896436338293715087880859255138697927419097574687566585299090458927610521032059557539996551575671167716544253197180176153747832608331277427304461460707296606956218265541816822406356167907985161669807375317691032340853797091577326083210888831197351741618029495111656228987653208538089530563258505838726001576854525521366534788487696307854627078098950035535089580469209754913474594245855592057359606745450500387316799567001046005352936979060905887452106958927533756645952770941518237851019942669724287176704911747003331380597229293362430736250732019315060490301712929689080419224260682452770617867133638190901602182950577159230819375732073520613193987997313836416276010979248130830237783466103542580862796110686931019387623427770138827924730067279823331831802854313063367362546084673381986075877329609586971411210151845526063748097741752854751736932682980877667722404226050681152349266302542992361127870484033359754655520767566259129658850865350082450638426996917586185841856973349089647024099957199541337255415292250507587779090891323348502267441968705850289352685749984368134889367182762467477281334030516738287817971287985506152541868425693390296529113807631775026286808593578885239521025177833780928487588309398682912432830137350369713761748454917783805302141822294320983209630803111180124131334134399053507197713311042734171704557813352920965005034350886234322657489731727425781134566279126733930527620255774725183975958619807453429301261236661521242768622793157248938759020977125938523783179588755973538893479431767020415329856867788751496102972915109060943935230651550237818936120754211484559440155141160061546975281384607782771184952818883608601591748375618613825468944824630792376427038224128494825163329449212353758686207773638801844709620963570333991279923688724418967258598477462323849624421418251628977109687748164982782179585417437783585259543297610614286533997344563031359714874653593634117137764585100760235606677586738090523936867534403540405450562209833730669585203170446187225664045413945755904993933299786271495548599822218294288496088588391203331435502993494487213269229820752219407839941689420597735836745099769530403445113379981334328512304250270390705540367300533144669275649535117996830555970357696287817956546234910733125526117233226237273905581444072258853857896744272613278823207586942803322927522746723524736031294126752404043264918773090887537753908156881154395667952811829088914753282030605338762609511963872908335438617352399373095987003427505867429406176677422154910844093052181678147332019579866054559120225248034306893165083861275587625461739496300418633214274275592984342725188625885365052779241854241744051425569671573704178660195353800115261218589141143125373093752210208615372727763121709843644753853169570991686056164252122508456239489696166146075191570301212399659196777672901455312395842048498507033278061293779800106111973729424074619153769545720954710806413621302065553693541320321739086807363572521208375121214571604768042489574031742749072243065083675439673361955742109736277069325961915392796610457291978797248210629926312472757994979596979747869695839716970051872967544565880763359948835420771238820819242917760119288600485350803514784871543746281321174468415528905430293424303007631705135874848415478734249011234586146317665661206274347520919931235367876899621120633612057369355154774152631291354628346536837975628655050918157820603772089480999869008837987582966858601403514764259819858990431858392727053185863750895458119440405129375759782757639183037203484995390885167796789187086820340201709197178936658713890905198990640454352311508315327186129980392806701938075194194371987587803030647914398365613444811594317753923895242413477041434220971406857707981912684481940221591802390135793404469326292363174446350729376862115715861532286298962386330110960174692049377451406525045217449117154371158434066586182592933069500404196267061494110662808658623045810165908212092862313374751782920589358390537948603900422056976869735122279867385063442416303148593852766470632589535219995399069826057370565556078932805142325242619979375202981303719537341418096873047836193913540746576321414625099131096885696002591096783723398288396268043219039171615954965830897976057431145782182955406978772539366352178294638424610083667170085009789319043869611293481230432893838168209436266866532015605933839602110448470865903405470538541624790773232413290075882049216035040826509826433901617232469291796750524261241323767089267455720950697399888902792219227014147714329216076837285662538469099078635550281215336606879626894855431078810158245491909075133254014460353285581767020271608570155499300561751389499186252360976348659118133111127682891538862078982479212829799818595970233875587067410879240621219987768197432902362037692621663366949596367897010991720569638760088599688578742613569831748369985258237676823181995568821971610876835526391348858737940542827142221940356462429082912378920599801996416245399070049228329690053373913628353405398216997234531321866552238509914704801423373644539614702723695555737494889153426242073330801202747737577284665511656774877151853751690131290562510874474561685431680616941188543519497400340057965040779698462265332451768865847202124199293932836056398444948599572853965465395530826884680636571925595220857727770209640797659545165055322028432631068522470442487429098169322077533047552636557249774989824186054705081302823451443754999138059858676245900658463844921953963402378404116304827970462820512846024137542152718897583491141971661556056739552989752851481123488533417525863163099905977726363517557213603135826154563167360451157167086283739577690672758476694646565698793279526725385635751007395966252975108040439715327352816409581295995087387646221136820029930701117899275478184730407997299048588873041562593712508117991656847948189964899728777071308486694623599607461580257525190900063252222266621750865788768942554420034505922975211742922119665290315782933843680385306485599223220846801497229801815594902631468030521778379465014549641286644819851059484702477326530380261559396188058171826726174818652168248570213120626340985138108288546387960602185071980633331838719019239698815651769416291475689991300949343646856521808603660595123720051382494901976430916831251712257511226280712768636261721043681770793287517287012253126421847765198135678038971821898573031345009429346861030416683725415169164060713556024210438818978622641562770950002617364482440344839303333866848067000879210879506472401660322015489992418295774634524174837076102788496658874232223838321618426381547519989155614270871091620777106595312498825963097252185750681005708187052337598728100298612826316026935371428102312417688511802222124014308559778958888731174628002961278660374378807313036248124827446537084787608986557412921606079645654251396374791807661391707724075427163140524664339376153947530141042941802975434169070484327478611037390557636827968434702749399661524586755635580673372569218513179928620206057261900011342260815759091081334105770142807867327019782418426796964531698681801582485804033787340751616543637424458138762365201714633200146619993133595303079198858905131753712563064470724602362508808533200799878897755884152989364406499948070657270655420736840745561237803468451597572484433998037003246264549235203183961001285103941188026730827027464417656744385947666074762553339567532249177282824320800017315422171671739645229383435627455083647301295915577215198847319464512346915461781695593030926660696090524668417091226655369101446659616777712253498543710502626006610152070338894551417145056945911477843892776355381738694519247714418003649794571836056038184328860302404383748301136021888552833598507544750545101198824122684917251700402525376550794595465738738725560745030657602015903746857619530544480793162607985760685501551571169198837888088190469952387128815861573310475322970729243867736682252250264707864770616635406007410981994941783188400963857325473377560555715657721093689248027844022388044825634612102376023414868631663777123297727484752800100287209521982695405851091415265042994027702314006788611933731755060634582738552135607231473665894674548481084125704282211399601349774156277837128310732611999864788626265961681733028095548911249596470017860132811913226962987952106884494509998795567654651417305399233763728167797004376522142095380019965148600970261539294234707162866277136456904103802094319108275476121836771819255790598052064943502882901840400789523477292807935746161121897790771166900586378959177766350842026730214764576363875201488866690018678332655680852904868020473475166485825501475080674109059443940789712862435939210322310755667597951620356821418752156630315358341441331598808489048710131697093468136845605440691225147052794419247812064493269278315177979943254080430095029753888590501710907418447967451797357687564172870603965930835156782360081895254654444927201463839877435568705933387844872410151577994006237182111820352446269604146538702960463639149561616567968938862928993807292123481525868818331179572432208408468366303645749297893083482505193595861819176209269621703127375055996538463490792250480387940502269347855010838567500701592647185666308382626366326840689817535907173664664934653594639777390870396633211061653889429330489818345961455057531892412908343741894640092965535181959949950793955692905820793700317949487133356895727262458301495586452560125327472747169383811907461516583604822645958383818151315578180571114979510646694332098499625043157703688328529169398588576729240643579105623299269854299449163681742728751016409343617492734021935716873372587018135202181107876444503076654864112015675769168721992210581332197263505110043742426066182122334261443224576256189255553968278256229813526183167930428312253183849350126662183854143895045999314109592500304626942722416704164062461198140691033142683188308232150865007040673483183287204822903109148000989669346982698822210037577691281083551702099641872232771208419994833866290020088192330410641560448687691111883302512314588539328384582112528078198806461420352076028323565689367583387979846397929299592747399588656334344938708526619146744376061886949200955265882219432862184725760704106444343763085716338882605211440003453920580795224845674147494021217773729831932883019933710947956843347877778431861449824889153452728828405245864732357114530545058679311062666793265858876063874058790937451666340679154129096589216201951198718466003097615893507632188495287970267538566902633707934765190511583616989596151726659622086037896371015161306925458158181965142376287386314496848952150662466705328152468250400644958703233198546945617209726437022618226083748465679318425405515305351663516864496091291459000260187877179509154587025140315177684930701947079459414350467314734934628508759137522765160943224046740679266181541269987266063299746090028756811169590619899996722878579128288620437365685861329804677484561724936579441779163757130707798391180086125808132465049338932253111029537640201300907924684730761919128427096636802630908553118328539868686580519924123686886649062576311018851403873511148164450896080085836392252881165107946604150468340773168831135806795359728865581178680626172016265319920638953714776185510937137245553714688047963783248116755393610785658119348424097881092424816109031372775941828736515619645751966892661753303810312063273298519801518210063421676188651510957545375409042260604140435456440644600288967281179761849233536014835372224929049298412118421241893711318157471885769190390809781667514943064934378484528382634496831351185045440400847520620447355450152964436716459710919586629527650014572222522619184488039558813726798328823191556161849762825831335525776268887298245146824977913382429611502522688616753269685983260433809253616172808870605269263982067378829265234538619416752439656522951940309772978556157891284393876577854965036272361673323419073434177932484577714800913387749635142689731621797586684443744887561884911862127201193902657025291811965820427208566318554548242089254090332335711462094829937664025813997820991852184632465666748909857171057017285052980461622646119310466221537355408325905581769542696477613202849128103590273981827088956338976549494794802122610365952579349719782231783214774847303153348267890218450518599282798214658137578806512443472601582301488484622474924730247528564448182220612908526261660804956334798935761851634532627531122714228173701098526491257207757110066420597400437613483602861387521843582156006477096943908830825473112643251770148144400582845231061272154762325700264983274836115842405687110838501133083091307192272853593353240033070156985743193665948068156583677213164792514506560432944348712067991240174441302118454753332406328915506201910352936170338064036927564734551686796728245328053785640257218320203449165902327698127123091800295949100141163803426631876418834780987326412829609021717440119831023036435160888884329837421241724172511920044230709738184102909576556566966486335880395288636343521605373982880045275585901234395484258683580013355677563647234087465777645871334269052646005190415333879855525380851584727863606984400781642555502066494935892744342065352360106400611706856658643659690298835704964761872654675033155548821793876490108299236508760540022474386731138112765366736526592382976662287850975366003621366573048915785044968781576721565143721335185016131523952564523470892922274008036075455595958160688831644992503093710423675618558061867218216942344907695184746120944696818616970025981612123990159459950165865943183373336775581420810945034922677114343836301723916687634451794986572376145612833085605051155999430913680141798729558614735345282481307101112925275365772725538417908556140988984822638881342394884861262432890919707537959489578417288503654705210467761404710719773258262302757346618715810531594134017298677028800712611251743318477300576110229287207513633226597214339645069226100178715923726575740780545886284703238107591560948842287052865195836686554897767894718450588013716428415946480259954723426370118229281173656190628745673117427058176013539797225923024246333811993292390236276621086888318015565310372662915252645685295801579637258215090461148009229588436560695828295674147408433718520161272849099283874853395162211801878287738473778802387639094876396084244426114904176802410915058248543372013621836687505286173687057640522271019242940803858633373880577377639029160120201342337014750684764700700194152974230152503971647797563725904940973613850002301375221666097131747121390763466992537750350685418996970885333464320004939243667675178493471226773735875135143976982462334007938630089974298150028868559150545118273073309837341160579156957384447799910577044501075411659824141783620149887514151475437630689265149871139874170654432836088000213407907595020747416016377393034764361028190284126183025882539032778479163745569267025541201486903862999312022868889877534116161298770868235616500037066360363005003850588258576195219870581067975455852239238497780016177539186131406499867517077270929783077308271953596985592132853937906542077218609307377253424805073873628371926621354314623018635946628387941758099192122317195254252327687735163288965690349025137957035993519911276133852736708741191339815743191956482864134825992487391050443183091429307506114961590423052995188476865716883424349606103581081699091353652748297725511506787044483856863018034681470741999255200232565071819848564910200783546340726196728513717491923973108328842443244041878223206467112192872083441286910801630494021174566035422657755976043284451961387652844521578192280028369790300509944027892755935065201728956693466263769015104826328127647869547932382952798428379618629444018488288749061085679032449396654066478378234552476657641376042059048316244587366799100560058657646207158450221208451720765233069636023328979273988816976826417125006743823611352376001481730890500903946787657131199389562369165385921033200617500047473089982998545809026524113923336925767974186481446969466223684325202255920186716657510449029136148668027148796259608916007357029028220965755246518967699591686804201829562990400062565495001493230588041808332068636409641486183042475958129801941558248499161882282531702668070320608586905391585807811531775034040272083734245564756553616348757976677817242331510267097619742593479023457551697867238888793597033959610792358292361660453679186671804810694684122554767185190672568831002377099813294557969052851192765537307648932486166049092952541369705974477863110455572525302051774199165874019975368301638795335042016385775990048529431915373120506140142943493352830261003836599015093417523004330212932461729838590567983198043194328894749244642469041106354286368284502511182469853939650425598582904844144634744036596571450256248806195247450496679343061120533175800868066260448695250541130683646952182843343183663295570726820570612422341207490184329751044983555222941002665381495546121081279496725623954813061390750435012951219135143634331076796725943220335583071727864338111987395391098154537628259469898824577858263169128911682086607558488530645976948144736494273837418661853615928508670371059831763525819450350387618109631091183989151126583120461253036907388165087674057428216949961747638677139204041765610703730355265384731750330954140347887351260500144140802093943408069595100622139861973183581918700754819351377504257459636570825737733004138726531458658749077663951010570898971739329066224845627738123053775603740526492471628828323692290936372766257472273247286066330493011860322265806169372182041143291185807007834386909289490155790190907792739646519349407986437999327160643280868167830772709973116528736866809383238598336483625556681574445822408221971025564533478337706352055930847219161146663982230875492440687075816865400739434565908704802138494947448316927363692070169867526678781612781257947835500084667929067181660395373924507878267313685059273301254520085186969787956225442291026663478719842484370509615265681617222418586576458239792483281538362212147141587719557169350109651451478786174428211321398565844131432658803054719024907155543677581388572888117673844272306019772558231717794957201097186681105270561670729278043253423596140003263394034511912589232116119981028649672351395038555136175703814508219134053568647566666507436237523268070159813192113815503323643957366253980441498086338718448389844136658087498707014412332292194063681748650748343266908161754165665440650313902358727609454959748697053481856220744238632211205519571286905241531291341725499921324263868237497307087179302294229957172311784470664615691976499581179937273798921135255826271699105636377678573776720356016400342251216776785772341377267154925839582521336702685869669742520394852377709521159410589115185519561107943803756869197221550056605969806674224862170736482309671159570919130182202881446416702310968502040811211716195505799073511137524108394280445636336595840481135776092916037821278845936934991964777231202416467243911757649117080562687667061300777977542907291046933131550814734500674715007818596577043905496394591557751007163766035181832304702056298049047060111556113049588950898368515835257235709567526205113404052967763570882434676016994096019470037904925389579644267374864661438271311570097399936678192576212721271356439235708253589530286960658212387281616907822799481069065021698027814425836489091103062366096087979710846754085777975065667926140398757375600508252207665846224385857482005260135328767243566889384354627297313165619382529846980789961326775881305572246780763912568833281118778326732050244220333245856095422267083475145925229537377790881120054146519780651584748087759434214361843979424091524879471689502787042898433977739580930191203152112493925674871360735949891241404167094670949033120397478959067501984323213851567025406377460086769675596282427959092487516658895504942024249030572334515641331194371706845231875645010687592172741496195218112749156587713156771517507290852162420181239334043129712974724335095643925349960227654040111245936369030926751987896658114229596082031956694992737419069567824186928338013543832995960444939624115099062269260763204464492466486694942246725956713249819976772667982019055726920266981968935886178743936679874066131412707089635168162529648500162975721189725429145354704642538737418349568087941403906177344786990094356079530112785800611818008996578580450105201985800208764827204712318395224103705917046587110183974343679866701920886780555895325306086353749442728025640703388892166392458283675812856668861183212954334225302380963693641850623296455279522576304743056354265353689244204987138196220350588370876918672256999169702714300576925334451160141977952133425194756985170957269041325319235219972092782141105033199889303148144012161836173358934680183652222514535555577596713998201226397005152308860443995939020332724506783620996231303069050163231312770383822758123840633838703669455481495642655437039723124843197373450417801686856872681091058893869887842978768272421524729899484117365065169736048913372650692223726587030315268025249557304111587603106198058335759975117425755936110647567904847371060926403306929520490207257580936020533555017365458403190324739112505802337923940871526101547824761598703015435399438388341395454504936243799035255631147499053910934339249276448400284715356161060705374610709372092059135489997252101033936471325744924881122072656883639897684146849236464125600058633184134066415697264224217346095193319088777656217294095308485257640469335522869792152873351092849883241868738075415548031783204830587549906514153899561682561066868656759458040563914291254685604291044891462785930090704196260942288191508846835833145207903211329709256980254835251131303303801418040901185903389822833008708406851691049080379697272502784571240170735010586516074953389453669160180215119004585738241266474971660122265864865849743449880247548562270785735783275433107428957441800400279837565744150618051427655474590231621242459844037193087693391690352397651461990312523490225877905356011047429406178190874961574830405517458263177900368044178606479711291412397517219279236612702385713940039266568402652876886929379684097388409683050553709140974745692752375272279655978869013797391336312679150004611872266510690816752096251649687576739684203895435636066209548190908187161244015903648299468205193077616910203577118955528096404478708415485150716795167638737592571523336821362954417814469127310002553887568423189476459610603600687938908792398330168026556210798159943490993504862758539764219981154612942961962659790386921370699247973562046485965852942319438420667985860796310351478385806409919187714629771429451939992083761718336269306034188709128672339878113767610608950177329289740284556514877869160213824643937982167872638929906184027225981567755411359437792781025056363627331619539095039706473339163998235894506979703789586725138610260659836561102797335320926459107709334403468000199744687878119055747943682436586235554886359091571188869509765257577125829172518471116879512455378510192080641834582385272521830772398446553210097496953545633788052953522896879729310401143759009922331388208480667199345545973074827981516211001676068164687816137041639489425909893704074944157000007037177103611715861329366165625446325552955033268887626062252338508420562093768486330364522041976129901705666983718054246775588974226038181346829140902463769292427646576729410046148053601656684233205376960065664960265387796434363420487714926083418125748961018017797992979942807389799545554404265182099896161947297785602007413810271376215701543524224774512456574252141510437372862165424905295657952718729339954148705307594768904756913763475316591963726581802140278750753013851434270816205196993017742206191613125390877419657608280920132489353617577182868799053835779809634153583230703072831991146262474417494023908196932890426663582530277605015806374133342599509955657263746895855250487262154768710360759251507042481194412563275607871572382779178079036486563972903684732782447580990355459875771906781608024757566138418148380498366207673210594031625441509022511704565449146991117314828533077731861567214967518444047901379505491759401360441628901261193377501824875894195993571073951904623645818439728884184988111131613866956502659619712521449075167336343012889235142084563570074592813334601174444596793635696726278022718156753820881421271054965828350181518968290426593088252994645330251366028527367212304246101561359854248967553131053692133419412193410075006381035356366595951010976188366958335057863702155638565568438338939225556727666677787031403543265826875144625741859577783479236717226498135877122259303746955574054301121151744013871937267282549223092023187696521271737774299178123113457741573598408967766768609287699761820072761522299466060063155536844149604802529780362422420051966273279053191916244512970328860195716388564530105140250576943826131165735005763102113562457791304417527983342572288832897313827560594027156326311342653775432601810803335513608227079775463588629931810239557794580469949270054802757411843245472050653764526355997936592110283409441387142958564774858585576499263348600395231805429584038030822228480421759642881416386643531833611754149859029672454085237925801502157497192415276834542579690112986199516627499687143623342800106757805909991115719317784519554052847499976518581460824551539553929382940705723746605908649896630024607414955439622455064722204113973941210744916972468499401186105654035205266285395904655256875054438697632952709587028399843113554275445474498095463832371122866189512801268590258947730560753277653844326361480412416856627940684290678331718540749039457282666065023050646730387990815981023020844216239353316401007547829216716982740855353317868905758971229867227520595424476552883981948432817319736695661708112357154260444673866048919931350829784776254098708768688384387760084439864677059963071426703400563201464842085637575598007841911842124849397290401778452851866497459818275055255903477054770497491761775858548997942076857150053957481029034942228307034887613938478497770291261438470055659408687272581194029087184538786912765626976712408902368312601022492245394898115330698853000069679375692784466908585604681985549484160353392323673993681766419235904524673417570165967776730897446896025503539226610475168942004166186700911691740830486978171182956853149986623082669833125230582620766546383084569865591017884053480370505214570501958919433728472050774996778523293796029221664788883571122867682718365316291550586856317731156391032818552377002363086273942369196598829178001485947122605020040835191759956905590020484048030732710183174319104908476825655835840525007272711037444069624258147429801809969087275201056232173184060057216426433340329234221896835254546745623697766109241684324436971256166033297117092218523170078257207850088806803384222697831953948283402957740712773495337253323468997079888054954903899148685856175501893460970336252531630340736803205505273362876440154018774315789730853002628939474947136138685048035638470009875992966896514489613610346202622395385536147571336965034480074619921081800045265045099207728949076779960930988723059983499526232900891642260595495648382971693270309220786503146285416394645110659599019808859223554869702274686373341791652953116333048573928782305315363862889523356285574231501669381536912942614074541466828614860111833316866702849903248499184253497362339444721017234893502659138279745294375309438287464811352449404088473818995659362606218577218676958418786612342216830720521196889544936404252045977622878352736567379240891460272769712263109698895582654445008196715122044922063637974157755925655302862453283928943021449202761719115057288455342687090709963166064121501186072461781075396378591436402746200023243030339774504141905599766455647980223732606617880293236577525818257055067211942813352166722011785447993477599238875904717093243859341123058552271641797290576773659490519673491630590967431819667591399607823323142941387634769006086383004498996894226978413474970901018176730914669087465766040042030218268296375832663510872620613452138334698955966726357738490895558860697108804049958459398209308338013217184066258731504044746359298219116583487927179982000028261124380575155254307705433405326423939380048311998272470933379747729734384719352622918424928673094940839657303567023051461853738551689640114955794017286071543145211469119082530670543727937670702919979257028478097106321435402778672209430459752789894030284199044644068566267376490683955482803381740668101738842577399654730893984260465241103182263344233926964110677523402611939132971804862901105517634642945398786011883866272415569375989087282340279799248398285866500388972013058445686305044756166130919521221571526772047750148798531031496917873240785634674070001232241860396229598766246437541704883812382639225537637083762284027053219124676757777150135827512089840731274174410066995229105503912096205767396773625719964856973078932745100944693310266177689645274648370466790035934037044190150767473224094315823660428057950889224588996727842326437483451356280369273607143154675254702394805131245154527174635739111385515616538999309135665198046755035677368825818562542770548941267813412471113887247422027302823222028730321212669200941705579684944488342391209640574574619155917839093370647831903083307449132464408676749383724151900413739755998198020507106245800757720632130915320750490640413878931088619176185372664191159307283270495030557319906025660689883614795330846898534684584445381424826499238973896539771881002688584194959077073135940947460443096317794893552871190621929849288088553352178060906868076046129306968299903803151294919112997793654225475192496447429874057047044859525589885739054057521952748175473387320087209881408832174621592604871545298200984229331656942392388026874524011378068501510698792867643502944291669888901024843416030221780039842797604231357597716298134688906157212606443855380377425738374418390671259118029329511842704695975044703598695534091277500304397361462124985682086326914187511204589652236006269341426406857642736407586480794656486066927964529496242514181666046331495852017116676609997991262834036466912879693612938366919577702122543801240878580650321935067107749809943487487088556112982785770770063854840182270711817757417653844568284778141191180958906767578063663390259504282703286050850291595841738660625303627561488041410137809289745573863324603436828389381184064740107382583642187369938345986921137033580450629578573096675941455405549458489861992041172550146341320743257211679305555593017836235557986093565812539446634347714716160247273882276499305965617715758538426949299453863983062469436593477550043702640906975584900759365440719723677714512418162343388091039100414090689489029573024570913930554145050750093256537112640700168356677447565955852142594907779626642214830351802316771549190894432276826160318615265728679750095648397910347410437834728139242581966168208393301875188422346380597530897875596340901748398479854456991307077420231715915607608873285736877549079284360910291407946552482798946331848564366433393546795850983142512973404384519440503595097734857889704877344855425594833444278302605152149254665353849335922613544946629510414854713619950076521736320909783802673367717345662412153330994198094180966286445169747625309150175617251768994488859503074367349220125265315896708103270114832531460729967563705853007205979676013960216059767339999669877193569060486360442730225724979062396938506650522268017373834773044657482094401286498028390756691728715765576779118095126348839925260629830074971465074247368943811849172929568944859025753224292522484083774529462302186043960252847885124054939158549141036149691731714653792457606261205849421399261161465611760169499732703930859263393763181487713161431687718291263175511278209943736902139123412790627579757373859882024499792456200258201199325120178575846285814916602746133149356548514048724149290730159263323786684713808069872395246201329318226376132362190216544182421916809803299469164832353964485893769762005889620459368776037495891701206879088431991353208273724530565684466412132718402416444642315910889863304510542200630218788094082647296093642157032138044135924359338023223566582234174319199027899270547852216438472452013477558348531187669980427522076057766689474038294641507740842557569657042426733825649975453275179414105273092579788234115331301341295568067810330479451260362978629866115543789616458985237964363256911768657981108978895426793290313172669805581993503005244114008823115579959119296728951112385679972564124680735698647709234341017566802536396980998651264602450764979196394376890046306882377704048657486500577570210886055065266904322688846807034609161644916411508279768357844243608422802407989613672083679372807507886116303013487794085060078241990443746249029762145111904607344393466950803695934662468708253210019058463583580796030507028547423820153001355828044320711562788574046663149356174936242051470314651765927303012246008693280343787618093142004125667925617560703406428036964627836075350357553311018982186140927980207438825422809500176477596381525060219165725596472913671314582890033770280441737969375717054790603031550991229009042199546117533747049096726012740229949734995241419578025775964908592217008187870033007591656263219593617599119236935952012609479016276075679625417870815247705444548846976445405733657977593869039840994155385599438166383487167603372891811398242119984275278494736895913992053884599286833598900612285930719371743751579856758020140245761279753259766711379510678546964207479238637769338204895929408874423508994455535616358859394755267630171455621117264371288754592338602566883619074371745300715366583424671029064189783441920640653159909118469474296166083690790538990274478313689315287512942513750245578331063985449247725019241981190122529411571723199688855345952026300934938543183178325094321102900702757345913989260992300388228760524680187476067979283600308751351670068308945756352239624231521493520106619442067499020652866897477468735850087501555418534339103692536649683194369640183905757510046460673883319046867442515044319526066569246995552604791564590067171098498717336811805473301620268632540140165764239171511050219315382210467662500423325871406720972934541716452339646954980098724114448603446282742448180917332773068290388633050188484378731550281173219363647707089325342846819428176573852473955882802674102615161560673992217894645148236719509920029749838370984366767178500497515338764129937646389810390891609215021335088587246956009403170751929305435657131758116664802490568011532050463912403751501909086745954039997493277894198142619900349565047737245997800390788952501839862944712695627466544422249863092070864775332455286368680035535898051792954312555249121243249643217617591755464281691306775336720379016650050443234157073630118230491850419205389090597323084327350798700697905618712652412678739960242732094202162173076045498185869946458206635715844437970450069446698832210750383945929757498382007776951007540554888649013733406783766905666124333496874423993387022039755933927119353237115067492074143553228833975205934762718304045755107183450313674209458299710195675296904359293056032941229618089980628350809540787234655413998894023179907275937447961371284721266382994643656283838254715509713258475958756394547075759986257459858119160564501222137858123599856652188349126645421841254641191439007052333278549455474903312722610089081483239273179209967706386364403128870894350755998471107512751000144457185575868696966047941143630662186204845366327760524635543230857933535781857690895963104317644831930767471954881326282917477644553974664439785597546416430832458155360416874240960653536442675857534276621344747459572515961932265051434759923628962656897965322513743471221537768843477241221320951093365754504739822562321771014421137825117676699904000375190319048632222149239558961945668189120199146815628587857835324300793706168831005279339799564342023859976073946115664681995731216389533447233633477922609428359935221562496363007560991931666099346572540841348394588667233395143365942988181448654095751003892666037571656352743261258745328577202694477371225590669000001666945613070576659169042116695401191966850768708689552065989993195439550210077037984386078879625450194707230085844964996362258759521441729747407287116712390125158945765388099615881904320166530034514742777019326321504853116940872598731496948210405306077232485228718040926760094895548260092386441209116742615176925781868095048425794149140647278007398932606301845518474804030043105074174828327460988372350629964714311793837797326907772897974817759493295381478234546151211208039224546166231851689589292751634270253600939271555122058138331849922124554771423242113398752348231469221004878784317155455818505786531139969368215889665031902386979680340443724382049375718217912943524790297807068797949439811584223467077574320956788821108083204089210094726100490628513876764149085469693258994077747228598501491987695255517051321837828327381007689700556169997827910792403485422637570626889073753015700143905380401963306564921361008006818117996450348058036662436584654787226131899508308213810410349135820735881840933444283541304271109753892794015873860768550717931853829498969255201704350838533477433940979573400993510533592606680657968472756798803204834511022920664340325558031728363502830393828629444478360827957513031247515479391459631835544097428872907004974544567031738038508715205266846024209692210289681414558384286176176378320357263890415651789008703301712357604915195656526308341133928008815408648459239016303316072523376422508559140725179591038699671640561368721133607711766542640809889804681970341600254341710502664906289166160036864976976768779328453588059043100009800370436492848715186483937541467764359176952211347846783043387289920956664611831965818772977956117442502369124554946796640479888280415996771048055218279981312408464682373686893155029265716229926204302025751835733271063753330195526528798988375771645337049384030136717132592243398437165671735543054558703705597398846281565012280745083497829156030665878310408968972381298597628866328430189999273703803152485983867755860392089591912179425880470111731996469377832130492361946990795663117013853034428486335231405554682603385973088988622818151873832266734628311856591191746612388062446398157973154856626178935306618292537940268448586166855317060742987932904747779245181322476178120666420397033590141717862717107849703061846280097908789371050424007595222264856926780980594448062276981099497540268350631074094771570368147792865498805948317470035117787793896328503214624628221029628901116374798884615121183024711579002963897311839609681165645928708953377363786587373545288988093013389962700009538443134496212883468332898369584032232672822453701161037979929434317618008700832812069914826932875426447140504275187204734690420254981259756335068348871058378544859006082528029167753189692703567763664811063614372598564876671591007090700297818543878373776051993171423670251920947080598719258663900368610708314517513819670487479708958380376522355423784024354527687445790922525312405738927045234576092056778749082433698875943836045742940612047351744640630297452637096467236122130639364229167036600267743721390971259272811315027853479563228094569659197609806769462961839404682708760847427961519486282797294129021193020434093455952428113680076184899041682940359113365152742148515252279912815283769289535992338219573852643865017200893666598038927667589616901525789605865955589665652210869044665349169173367479036410728863670469936076165564729854172655680994809042221561212681796807272592655926575891309947360177644288461508281669362614753583985554003082183024907972837243687232410984971238650048270362325672125823897082831866953399693831306452303877383032022382000170461079490013491999530030498003870302871239108907638188050437267304995597935095490730555986332243737050916267128476914111221032398343482805432622193701444502868605101976021270173653856225841334698314479673359969096720717691019837649779107202404448637413286123634564783042578736538345278652210476216391671775444205575351606592045572534018830018144548924567710714511346090903260054002780539550159040674922117469661045570588310502805199031437104284787649059892610612297621461793982459211330068198301156549733544803396817186176533266916826504879768205616228604017694881130488665667879894480153888507228175659151673359885270418613995782308226567316843659380287531325702476076691123480209878193158216453903159188886748680876590828017095659459478273471458726772114663788105122528152239811635521230745848546515333838518576035452445458117803720625348696098244440552512390485961502880228361592275530609160841507287498617252334814995998154364177346451075731292167895658824111222996013921490734793269266840284962810695085584978849471108015241161066053527249804416181472241894293083399103878150234468313170647604342506411424369428551311031585044827039728650371574200422925495366076785353892867789997076359565533821788350808780622686231780914899656947421687397517042679220339789454743954514804810509575214381605141413019550977548627971987307345060911495382715254268353450085924070380110179167014990279632926164230349403531077485017207900530132044891023135676010639594322266896297452040195864664386834425165125706854479815519877944889961026554716656401955895639523274202008286347015017142389583734033459906346642344549769774135735130539266652052802461229140220895025543534103503820992643531046272687442636612433221944474792352328356087131136354685905213648094640011398055222221089728706841358148210780081212316272811626547918446110012542083829820240198784632459188781220800869948175875553372019918667798661025404422799590819128304279403004840889818251409161685752226229410621156017904148529170397463810485774958202268743188946838360005932654536698199148000381917382427314832120332799683990681940834646517757330429285836766882186892963871332704024051462031031848921948034486402067252309183317435826644917060594736367038679664961445453968971457203878844469030825698351790781392951230939587025418400007237515053858942441863654408713628774511549801040083386055771981904312203481255165898163333461266307760843302263607202106179454969130478495957084111397121654399650868463414495756588826453549184391137950265303048952562985170226267251142947924848917346952927873674019158154410459159196163056719751112344319206044946428843569859815554083118062960686959812004633537869982483985078266811447490147075506540779270048757996698512485266011963106376573799087878241101226132112871936295730748399121422633422805473541554141109596029195665963313734570123973648781560960507046006546475506408234765470581087682291740829206213934567106418074031386027997021554290242535120972744234722258173627621712213936988277549136344880322787851870300215539819592755035572580602238149516892579006669186350867390406816386457833746976967334998853595473857079619651101911280339601950790518382269175185791709836389584884616156608677498046512160472691292987014835001637142835912011921311853473854034312896454009760210427081078395244820694879865372264923870018486584689027190654347919825593888857961558458192836740887469223910479063882963972485022555466787690766963573394812071213368451861053510971846417292625849556075942761268868837806846621650949071581596859383843853135205012457920517573488918172310078848670273191499685613834141551347191006682844841922243262047370190401284273671421414695376125725578630936313317670195963041008000429049454714265032501252747457828912940723820589941091781647019112463093669436227756529915538389985223575846173192994516137665821301509343469227959098764054608970129964166880481582502822918909292518447385786521187823783345148795383488161592218130586411522454165295064999777978222150672701548507006825311209345489577580599444115182422243512288681435020741913868073409194739443992555938754956132781078711882140993592780883780504245344285655743642790049474473258188451921033882491789642124905591725662207803940539512318237488342623343982188409749942759892134792120323159828314932087901702327296356865830264633187437436184555720987027925078385540702691207243305148961558645720334887777850882699452740752127798037406941165578732916722096919475209544479408088727100171273962018366333249898768509320608523539466993307218584023787828310643525109324260032427492396281813920633433498084521383269165990257934709483783966444904007424808181821014696759824028091360848836794515387509203266000178804920053052393773183543114963891213629373002343530546091639010050832347141421996434888212685946756085679270425683919938814763476148511191164803028569462727950093547521305600457668432449725736229944096717731196312049467318247663825997956306895258737989624089811486789023910196411228282180294899957082239794686613770655788578066968880873309309759061847765203631533648590961384768361680554077741489807778151361240293748327113063683189320342102769440087614367208627691769451735949745456412687947928363579813124506929243388824226459022694510039210464173592824799656883562478332656164557518161018478702768436332822803284256446956589037665527705002741799427476524733186463857228650923900455742304531349630083214364098119315605340506007183862598224549078337595287464758653247817847708335381883635153858831147359343732724256770533417326619983289180632162622912698855227491500240887077033901525957673370213722788723155495797404096298498387157123897119487752585840268458889214226607673421037830380632704861192487399738700109373013860979100169340996708398456768641803345516812029030628475600808544666887456705950211906385602365145735679314021201729984694695140166388161865702736371849182051876156019871801729920353748673633822879935232340896211431332806111675047981357417264729037932339667093163556965732472917079475709834205105348442041697936785253642190579980540374540375788433711035271568149641408804380938649029820763683920429155176533806848003399809763198128065317453668291331097075510572841973522636369012552792403377425786316118162854594905056296049611490122873331185000054776245455328528846053641805717638682225591338169429591340941689287917304044659824740479205942412684753869544060445040217995850464772977190084235337098737113317594078530313738016402277359803113876099987864774787087806739287989064670004793024154288825799254701490929451278842934678708957908516993577402669474035034800873734491831240589505505074698733147137144490311872284376244907356539817879655379993942889444862427576416665811061892902762309638619291661254669421970870645738802997182512902407613841438643229115108731197466108798947865485872274821751798308686171882799374330832017642106293540871586825385429751528909131290467985267383162387119719517133141757829190996080423517369887670505826230277588852904946536830483802587443671868759833644853422578488585757365460777413045363963215431493824963192529623525857618052686064422767498321971523862284307427808003556650316031348729322458957240646353725402634943805442986201045678792006881577872075003835924870884442237203798175777927226030464067739788998641201234847433269802925309457786553060682551004939946897026687486289469423032405596547111477399573491335442435640255008995715012511964156869239627418743260690378798982728573975075957723860305498334312991520521209606549640111260494557459381639145872497296747331082780181173611479340425640306176008779097479963074212131284587288840347958409134978141627098890044286596428550011463341797455952509859877296973361558659478723768223704695371165869659059267189274891643989379074753595939590030598590421472461761393645856028926493226259228159580872386152117091187624406103893771123357311417211023492686662542357320335533436338279991057168192368190065613417908788637341108645980897967057770834494770832997807408183883138904904001992465456391173872424272998522420541264649704330865671950522121246357484253162186795183300456410663895402655245937404669995093059343667735203718623661752181485015083025052048946689202427038634172806137355530034692478329701216157521175940212387074369380857976417083118922006503153875995776445710410794163826990315155127896377125260099787138147201477392162139996112216505125285212947017800095148926876033293863530598558254155584454638491626740051830353791534351359432948644866684837705872119964045289067198104431070553649569451069721954000990816616914387592961992256513090692231638304745136656808008204244685267332148812158788505437575790897595496256960860732385928762033317047904523137714729857528317673854167313383667678695811787024118813168670941110785548599835195419816550399912152462589229883807648376543683935738905534469664454642038836415710543695745856465623237884758874190216030875658223931531447926527846177134390415816319324971950024881266915986232693570371674498319384040859721331272661720391788725799274882723362928166021529804148898798528069208589628055923605040546775605672249920746996089995604523444576933896326232952420599390536527495159437876681975745207969467126558477572273061192462676490162265816509870777630607827737161184985279279435525497614174110528013479282650827573433069134020396142239778038807405346265478305646910229762498268333212611880935861074582608993597566535264595985460497533415859908620252688056849479474653890128575715552011578629785782004497179118059605186183698280503227455319227363774293273588053279699033090851041887230082288837417758211910887644539595366851155894032051185052444855326885402859852415841314153933243979119563032797146397606371106244787379041808995062493249952192909206261176897250613564179462681846304571142435960739694163559205064958589545745131935100893955699801915243377050159649534384500817900342127241528542239090554983851576143428566801675598348391854664777138231809252831832739401904657359006910263789069399098289244282368795240050383349363889543884386237888697764680006421772116266792191875666406951525025631591866917252119164556393231473325990377753177382085276882220764529900895497063140069273677607318093441147595088422510930269747173821320519460822929073617975812749538936747368702835006569044485009442042522456502793164993202757601625777753496724426065553542201315284388750881987143086521737368024527912156036992782727639788878196392970001694095834211001790119859366208243147718577962415384069811752598975772589765078416583280681097182114089945965126476146406722901809937886992502336985566701622633397935266837453208780453283367857482271043905149295787680807473592327478261497349889777795390769743659475704338293891035052879617291738635468483151862206151513065718253588413193616693858688923679056918487200616358037334457319886244009000254819352737265502231271194296336785071923923827316934377785888394704357637818377498672764927182974893036871099682416766370929815776859617143059334565380239844293677144640701114812091566246972518577063600106624770757740291383515112298559681636210826533681778983603003692338255122216912817394684443527518401587605268981776974435197491635206054995707218627760717967828399258483795623431469402551761491570774150799509640179191266397302272661134778418571230433067282059981013972888703033112116205748884065475958255676023517585331342690342149999284321835218765441375613957803155022657375149906523344387721552046284281242347022290894326938631741010489615853287968759424487397939337932796287010134536637013536709816869615447246709307356090607613207755963161308749922451354806509803574684413436612348332895331011352189128224575680192386599938896682959255804580645470494837230468646726874639192110505406413940997182133133218283001858658830872931596094140221767910081445544956071336592562164628732478524578640595873362709335849802839766176776141255481765517485364774000338837936802425083173169735636794473429197075937927923423998588927387050244958648343388765944175712179306449852167873520465727340973008340296547288938229473791006670459677746758373202184037469622806746748674230248199194236839105986364957595865984141068189935314634547127529040732587169904726480424313934965491105925280395345947453906000115441568841354194894123750020688954176497608473974145516801272489233075788312609259043670933985522874814506374485911799768645208826861241289421960514440231450105454555329144343720397733556449845189628588830060754310346826243194270802431548230397577363457539284996487937411208105113958433266191249677723762105574339676575948298831157348359605901934535722364934259027000543600101960988868333185893493426168283500804988952029993426983341910959197106078158111871487351524048629120944313143732822170978316301612190564820738411106780095469830164357513931612066618240757364872805150251718341768703311699849327351478480355735427472598039016533982099187726029817407629097485039533961765789979935308588651179854774269814136151634154081740966939002210413345430527450118474908980917643225484918342442843197529266283960599062523097516645201797102093017807096261468955273114540188167112278610756924021684436116952011951224128614350873132845827332708801702633762642038857105736193416265227516362228592931623221351356397746285851280975201073191495386146075117599938644690090516487998483542575640706822727463274011865366807953750593573092105636049059027440904373479839190401918219625851070324291113108237821769371694641340308184570503008379523608774946902346947105152817360412535690016112879357693192107934838664518030971507804167453875326213534524710495317901178805430768307874281710284561959495014246181088536803069428933753119410337089146694268313494556289466737878399540390668593932337085906226325172960125615723793832918108198225183252533957464790447731987772993592142766778129062112717818088238072540028951468634369642530430384079456776517622783297512436183569114527684131693475362672966977363021514479317771145682003337652627090712817230712757593366455679135967300693084370862266871087015098128952917168993402730605746581744668697097046459347350270535948907477923894861707307017137330007254157474809467966124359523881810942985894116295595101466959096895217156352495214864474729004439999273414597536886961034518099113150841124716493739331643288112352761859373209603494938422146105482347190622004365932569708951814173345490924042660357041671644982351092280239654007419504375805412716312160309190828806771403923456885862093403827280723177311132554157386319588600858964580152929211937276092833236317343354513279500209122716925347542926188664066530218583188718743260809309505943135554546276057261732713446359955186767718704094686103082184332973033587467800836270551715612957044914965151139385813227181885016158694375099143854756546490895231465829885780676852917547721176563524411677250765899747503277605967878944441878437726882499932176422295467591273716758717405579216267668955195296178864939647599599909313686547236600383892005547872323592604239257325577380805321743408559360170529687102576631458304957412585283263050838278916368179820912839191682552787430972508381459078324690965176387970266849545276470429269634373616519408010660559718672451504364686285758687394728470285480496969429903140221347886008865829023303311071412722551393755630789396609569007766440669384065192456451463094590884526692987518251682455418133248467090081769830951470388083103708891111898867640390820826377380868838969127217369490317621635465452648018349789741327828738204544852881034862895008324843536861766000879847546674630776126194075301826544372048560335167874102543126960912156790054919779202425582210389971088960886820262978810167308161605510715012461440840119031294088370236799229588098771269474104374057704413650549079361087172553280455844518485802457618425909130973835024238292436926567755733964367908310860077831816049339620560332855708067997904334319150651785372999434896152623924744553410491672728128865627490907865152590867219125114321808832801365415071748772607669994994867609095870795858588916934822224468288865446753925816739317863290281616122289385249039331780219888967579733041042730872688184417894081297823339365932327617026480467631153640427854756888742420810999717574197035731680592429271895652166074020215818453188450374717600017580397374511837807221762404266041048661902649752087759733311430624614950871003687617187137310729086438589463112242049779120483077862816286460235714239150406173019477380512931959464208008358877327938885563211592513389088812178742436957406420365370877371827348998099527158248135828114338439245716791118424655610036222039980795987904156264394503143224161686308545246534622912120652417479914691129013169076374395457161739332867749023706657395198453296587210706794582033565847851945306091174765435013466650602982818302062649604846282574489702394040750377544361490019661617306391506111074356025330932508288679959008585910529930382495931642803263947999391436834988197710694890836622652306001695082902580380749515306513345779192995050100478806442115236185468896512588913460965209273627856186386634038655731491243121542675252319157439314932312120022587751958480417121257005464747453717456811061645234796056025103343921621831240647600177507786286650534830070587378757221634721356732795455420555220339701979204712286280745842399219529941062924029816043889247169779068190185272040480170569704896096924186330356523994551916428788568403296567189083477576262685670360349549912100358243390865857557689311930172819253534419795333945053738344784300159192521129105668103369444844884199182744680550285308317504792114209719963841401716653089142064766585377548547189285141287051128978382468246022885053802591378716679117265467726416496499137062326252103602117119270859057105220954886522698322842811168463142858387363795000838940549841084924384270769034216559242531191436484021401145954155298065967611541525344648106969989833603847924464780904688965704174325926814342540867961278989583161364678922683841489347599595609292140346029329848407875408393192419228989921418446850887688069703303965849612539729372165812174973835714862422412281523088736076743940021051811701788114626500154952451038146527087179456291287554819860581177758114376338335335098163881216017152598943825412279012944568036421461965822827371275689518652325084176439694989372281072348695485978400287985492998836706440134797058211239066468586215223779283392253888111623740870498054126417722085826127424063166041533571701774462318166605051618948618633269138108182826286238294829248079012210970702648330815225150781570433131777747112728700297095717969039138252106063206701350021971443906650945037280378795033830500317139667444462265509408328986671211391114280354916560084933228672386718748480451207853305827036333232649613549587582814142725840912605518015615073133594213765999726975834569766869812586022026102119262882207999798974176755524687897692722053808990782526335296686733731386231933551846403741073334452672833937025757606501090250807870073756360238772006285805414791165754154886816045964992839703616471507299506938141753029706777590213529619653610472372279460924229369519008664546255268308802349902477114918615817796507158144046182093618770630560370974821703219953726272709933546650113291689253876935572732097494960641272729864443259228823640806126190377337959688367213462075483586222750017315032604984468900463563758751262508076604211727338716664430182440931394493288142778243209162400503635071485644434575783260028586165255164889255830237850306036200071485441374646424717484117562913313790102179921260703524045103321684635683455134605799375697416677268151048785754676770173694297318564784172545476945701934650462439242074296373602903293401086133304477956509164749090806836388052416795469177235085149438589635328651986685083856341321954511555828283084394868933116768834829275794595916208268382807188781380705503414237746385163600495943017731436868554160169657717662694057754792605573551187647702964417459742637897706066599344573914985312005319008596380117837183128576204071951322236558323938554165688150853916590858589154127312106296279522259773617201913450125226163104185841168118160192883092864347936057936960020619092957851753520576539380447869005167426559371259307302357220682520113465854249650820673245816221520473500421053820855703741817374440138588609020040648379474023168599740287693337172058760629106150149142815039547511024492689090440417168728191571362934421659619351068159398729004153614891562366803613224870309378033667859872174471341859333940827919767160817435997656382709465588726763568758701848709878468726809232595732552641151080368562272220331087706366957351761145616177355251346432373883674907036073658056530758765530991569103673532653583673882934020898426267743896603821929818848477965712630063815227741738214450072112948663323250372719281051277590602677644895666502299993090522118525097545069246484886188106268557174545765605636028437628273221281713750078557100311659606195611937724624203737844861527589462372058025909868498039099195965664176147498350459851242943785580343682825628102972025154439373052641702044264643197309552578272754110125269180118393137957501681641297813573645558827754704374232314025351826253795543799258170572884246758479197969714452657383628938279148890594246990352691876380517342786109402624482307162994525379125995220476047429283338856447522781411660911969580403905092368140215556797527566684815075023422623585728977952965495725892317457522003098074992326739628734232260924505310946513243754512191457290748432801743240166216178126044330428032236714598719042960494514033371964963973087772914829251926818908270857650456497509345469224104906597775217768660279727363510040027537887772573129192882992396011787557231815526698766314623892709145745603664088537916709956483647228188471062530884312646466904999584096108876463253266283220901027386260293047600742018957468259691866213887462928035546147985216460513934215644013831072895110939746921420658386993614537720578106827025955416974588743891908430617999646619947984199036580656666678717833593720955394687178537300918260289727371851258344180361760870927088043960270424317408565352013121627397076652582296890665171710282483459094582747133779852170163215558519954602802524199439144799792513075541462503024569273034888747601563212825460658348265429425408644814925074403475281790034765427193097251017618223381473719197794205357447219612496024737651855215222968857358061414911042679014813537831585794771625412445855608577397090989584015439312394890702905757302824326855129818987787381436423844082664300990223961497566030431007595752471777800904975210699658548467965334466827679007441279636113310823144037930273547582760125326287043761758989132251893618066287154512948305898352609649224235602167235975209514132465328470250447823829338962060698004536874675944129211864034204881032864117260067100355649234905076603995006617893877608357313162654490525128818317527936100090169672442745003992171516547795146281340437944662984742832816782132245897024003675134714757021844946445465301019966981139406521148904818694263726574273530421987321087279792419877455108426164799711863978346884779074706034806053816370262515506712338616339865251941755164734456452152104155008731597227824888965594366340274743083819204799377769484940813156448316435432986248776335726337705774946089476638138219190381442135183234396223238374646101417940356845992668687542287166321573833075639904976342012539859010007990707193005978105164487474073625867753584500787840413132862753079521405436239427733148628025436097017298595510267014428724367298254594138796651178862442124508296509709148449025716668013882204944552579919487856889631554532260914830993188115364131146768102897706367612919987927357100413301462998056400741339457550973533843414860020905205731740541985431738416822073959946447272058150540514539122575867584620558806885285119649594524766425707765694833154562182775519056053783995532778459983534990519281063221015031898547194581580005169454090707738006658894264351234038264589092671696901428355274399371849951905928278623742916434855105605685243588569531053729033210036445283899707660598187198528638751166830089585616258467116842086768913459588473635797162284068388587670975080318023665748040093089495340177715097315796682190268157198528957087554159036200050918761606730676072199199704555817801595162471011913126461916531472254853191544839774631191345913178291604464761783034320441752643175349234116186354040380874474316442125651612289462967502122831060913119263611943348704747284458582729606835088744185798641062259816645521071856834822773000068495358778233792835443860549589630298099770564924486179291066123045569001362416100137535873287491956328348995534646926420393856281373801572150523646190532207148471450995566923764474064943725897701292457856085365652824540612351613318773984841877565199886740510989058217469928005039562927270583749791703374674815873759824623493675299386966507456769991479016835216203252387122081714988944662933320290162748095827281739448444850499962069434928965273730016560804150298185421363735777453480383477062670722066602399340447849845607081706162447159074853322783582660289426494957829572228443999321097696932287885447371546045170767068037903091624521449848709762875319240975247515031533798302637918646146260067565220833324013322536272917069193225271791554459699782643304849885650793462917871398343468081029249177334018727647656362926445345646197085984560908780340661831302861681011503728325819548795778491385415008918077367271007290715629015921506060715123457214008154674600276885014439160243765460911976263535246649753622183303187185524735793077732348402916058058242902300435919108815577287224545934758084146655041140922923320887361913536346254600467964234914076289617075019441421594354550260346231075637490768405030509300048922133143146848752091903142190523099422302790214562153585358997868961922632722804121512804026019622052090144178451679625839326598282527625506704501877978353564935239695961930921826665381308728795697397473342679446969077085423966195690036917919789812903538538287268289371648188447897231813852655987682959839742667441193781545696027200334210693673266759909662642488826740209392496970009253864792001848364933945917293224379040251605987971244804696117279566116759218102863759247318828809673120862864388648315390383214246602158748848583586890754924605132079399278672839015037912469538502503160590636166167590262525890007334230498880790178240949398953619468291784660028812283505495058950745336306871923197306208054900114249718278156715978338816587516450345411310715978437254941681959412431581661178644457924135637856636198703888180525363846791930856277670774443276901419489896757869104226963939706623521193912710159021965350902532805816660377358107012180372297798343984792733226194603778266856177375437961615301208284340413152041637253107257547316900553531749814119051115895750531203351639693350488190613684688173410101444065723845641501681822017900996716445852658817553420407748784840085717926699959932605171616206210579865592607706625071414696837676939454211764397312287118824361947141970293733487812910390279055487020293403295584606609836393546804180069123547002524055721251617073071949473581283013326583841201432504311683103263261648045519784717759518469930143382179233636195886777514390579663645475123501592398234212405368328610223629898642287880076629788922410876342761954534460572642734411163807579234301545739320229847190547624319588720573087019809727162975034247355305430484369983887161759138975231482543861518367107844007539869165916557973485857655332742071986689583552440153048424569780180707382381610485696997984309739264535853960954528396200422738985771972591201089047112964588426159835815506625229246910933604426848701679800993140909636759278307465770636112329678729844808834919523535785833050010204842154100300763303737576973725318446157738846217172401588307396160281292697408449034030720208391573098235726698037830355659429005092400551749662816082885722681616588304650654333922924462020772475670886784274735527407701066160974752623775092389135454505092638455088919185569821287191805143919550412872182077477522825358034408146450783752676903259600479429798353206085679196756091625151398497399545978290703288650185196038821563433728775518833725662453055435260524278599967991377324179604827428504309664709927845623993102760176457446256665108760694582814417518269834638329248120968636854983134097372952387953042912874412358178507728624110803928403832758734624704636724409685523185010472326850576190991250833794923184713198767557219164245736823406163285105944494386622978966864490296964981879855860508344539387608521670427832868000606900702731017802342959652798480541956936592238295615707022170318598795639136623969602802463501627692770285113232016956545600828648093077270962327182935250873317354727731952123861037540033876157736500216769816115574208598067123508519253320068130698891463829485941800054424211184575110033873372886442106862937028610552366163985161351454507556218410478546788147850035852332486289478159135249754069197856411951403538179107236761953535902120532818470513315238268921013976038433481173529114760681850365887879584743447702723915477926175347640166009096360390419306435102054128815549550087792370274545240881316159046381393889243592351141005105239148839482214648325841889971280328349099499509123321234647920275452186031836747506774615018816800224270185762009603197696077401444426625944804691874789504598374789341734077543240242591147352564292422017175712061033544909771673308108860121321312870939308286646101860340626643889670177201444611608488679664857898982037542019953015073240169808817042818041215688508864873059059662782372442516886790367901542644201453837925289362626880533129726966226939055415902284363398106855710242724315200815330468218398664425342182211017439212952109467963133088681875162982519992963388795901366957127017548903643505132198719264997817069000149885757693179444093792533178448228470676078018415031448392410333020152929555983692743911276661642400623434889518275987509586072352132622822888278657625376040490435563880521695031264694365294850390541996147149078090131741061751714800396660546233939018962135707526686912655631037157769447141099412163156534953610388861011629327596201591763017014972559267913368794723942138930805726429703862985731904430507871554669869043236390651544966710379076553547593610489898780962412611024743458489971243400522783536432748177656551806305908134693780113912014961632522538972371267776679646254139377892615110434749879096258684194862683231672778077486470159269742033616489901027354227617435041055218570263738392087083466872075903429351677051021153159126227883135800838049075696351657083526683161176321852116842043686104426638515149534165981729652402155972589457869533538519331580113252490970452499102886063151515439969218799189237792898635950801114377691363911599485684645846477768284207211824555121807102369674609173567771519538308185077496390004967849591250892462503921763678198013201364152723169942578089664332730913217074368067091983867995239929419071252161046199945259407653266937599906498388769642952517003912969349521359406245727330268913060662205503665891458668917213852227402279756446373152116924195688770476462039094357112334054661808233177082464595981143318791939069882977797014353144334419571270246777167964964606083371714924289486173847374975541541125450549188805783535203312066377782476059220280276784603521422804326265126289256577454418599187315306666418698330478697392371934083552588093052070667393441325975523549763696927734610170451369542026728823573633068972943008414323770599080053087047158911888342152412848228361608189739387553438740510132845505784083558118131465342352186786840796366506898844943277523854581142496924418688981346854938808229328391187740805097669968710412601310699452127944858956831760387040226359165266508156156740282257681547764509853804218209570038620666101292735746020926931328523535642072040452966611572594069871941587075108331665123969907013885354672269878722469438984541276595721879108122111462563015909779374904810305556079721960126597694469113242587924103632709746589555880958060864400505483417558040449140281199931963664933672838582494609387163150039376451514748684890170291281093322293513607079825729508287082323111816170735150003916557224271011827428210666529845694963461965286266837310865211352880572937784368488206088722766663935656183375966723066650740322835721534698928970884832611204627868384785772476152988549010348152386522128750947441422915164800049829863197174294659568243304465555673552400770844955027952900702449380887299053254448409244652761466440284922269807726167630368590570734695763013427873407893351953865736652298442620207028229005687573558823232171983902659538648908888426700149659920294741577744910929728032993916836747684839568884396798468846205209741855560665718315467112682228690987876843010885590666694358814622373984051713138261013515635399558721651218140571706719290117371504365775322743507614709280275253039551678898191800502033677898964154977484070393598999192346874394285343093793985415989259413068644684916056243529665607766827276194984723990612835910221773868167062747139087181600168884047139108072256271795063928284647252564522929726275023431038028563296210645447739378435401211780899808810978983567287615925211720402340966623684208564641859132596442137318434082987629587472059694735363134954550641874184178622204753079749203073413061851679897230965889034837162384581811766005935709166962341874671999954616116456337280526963156560042628354350862541612154399330935657574179297731376978187644391028811699623057994060867003666240258205225784421485092327315082268676364487365224252816936822326407160180844983187899897028789793889892605455535881819268429651204097100426343574350543883212730905809625859435612038328520147875366625123662317533906001278261105432866421443219699964859030857893829011678948343367686233937569908853764079158472108851586043187593485833504385736048366382933775514857190912825340674956941292127631291653761970502379595096409943602550105731391798888147621882587644092737023388639949020143437004159463245781070738209341146862576978275013392502004954518514070555008967539987834310019997095400136042578665253656061140079811271188286607227898259662497625394086899542607477317740603317261395256368577864652734949599335422613807502695428165197394037366627532687002622705596468018548216151216951550447498518677747544229039276795732318456023399987224622406344140955414083544491243885720165711858228478902961257014140492036581294562965129088276821385025526915765069937663788210448123405161245033022307999152337771587438982029703970784922610761737969234226831620974466414671902560879508725127116817194409880426110128947671700385627891907112397947202702083780703855405606435340537611881163204435638514741675886995241035694019863113837438807479574967101683170851989523697688874416686230277941060398410180436915348740841546851975618471206591113268662390359262256991843438223883102111897128823159473978249465576479918792577901711048264901142380847109880615085086876636471223782892878036744388233874788229459113468811181623928415785191686606143105484219818625859815559373356701358070703869496865413940697069361534136321964594607226716228792457001731036626767053193347614360416673080411994992624472957393941296652929118924904732316385398190338032356058350944833641792527050421761301969672472124240495590704846235991109696928785153715535056497671592001844182072300062079201567084647070143775541824209673391121943384132455554709368531783623931418704828960895534618341483206349043602547666883417914458562568141193648592938935377140160728047065076258939937996913764275970717099866244914126285796761435558604110827989498978522546132096499337154102700693108104678910309442474049791690184195904737631216750809664411849315894336661500822788701757182040993634583607490804463874198616080270857934585687533441204878437961836885462205837219459299869361327509425526149218603617400153249822713250667627455090599495055858795217446626275100138970475333585400286728436745450390968946273281920621819018928802583687843665120701608885866675794787984677754111315451317144770414154740321598750366789491487305048739272907914611021527463684995997672211387217486115190148394644904386690896542677293567899236523878544228296804849397136488287824970209868759309844210907812382690277995432334231583092246927183053454420302251099991324955965032475725452697700212587339022696692245108422996614102720366401476331490930395809207951052805211936150447813493834497473174172390903492573358374993178905158410831752994642425530670179792493900415351110321175989435844696673910839542187158607946766221611453913022173205580830080739761262992688198683427440247893525323303786935288020088809845378981425359225751033474507275347394392329661788650997813130292138484055433518389541994627059397808631477025075226264871701063417338149143578132542924015272727515357608218675186763538415241770793778202621521219248837939751716230601651459400542053681180031871043839454716832266648373296414079908034495057185555861317900200536633684498664703683896657414277486158444324275671367143915535138129039125984947703741035667493269959195358066194667001670172960203217105220265584921968935967033589060545021192477006023977428794007664214373443100155368590972111229647373091734920586673040549147578959831584997125412886208623378372166595746161639414192819453299445467320592654232679055052176824053715632361247718883189838956247914283020018040073466945253911026491451077941971500540944588568435162330331286018727542176077092367561880764766153972239223068803776867394574873555782171890985678270010318961655632326505058138691800447707502289845365023222172152529774247417309024246871465970517737010354609631082103252969486841761209747512297315734863741832317140664762000977417726816176224810446964519549659065387784108649169946148764897120415890201170792123380632583523874223377169883924744858791233340650086380184044590685688034578730459381639675398775933633101762758259423942365423587817391072162524892812670909175872915781950655773296310178638232872822745815280886361908791610154052333892154800409372307788253449827210211088287963129616543011199796218019156028619935003083331722132950947506153425345184153745104249983812226524375981224946296390003524661109728087869327639681304391326451084089191156948861449985848821343185756682503623509913234684560938874837084326997918940652423990291362863318510763323253534471945697069892823340162256461790575900670608882489766989716905556468387069961607286038839735056778002127023225073707790004077068069137252832348486158884588339232071989927671396472960551955284315191914713221007611616908440938953402481243917432671595079896919907444883777322158154045732636159709669252628669081270465602720888319997100811354291775045951523417494950543409911413327824514603509980978155368917134460417366988993749456625988371496303926373724985531964204232596907405984024351033438881024645812576303316533165146316756649291383904155991190042782519152929675560128362834049829975037449950949201906952280398156871679243697580552221580160974401458286388320066669740179399154853201754514386111293001708606438829326945617243521029600874050679595296549604517675825054409863175570259207104393474929422573799098504646987965164081163967879048125248743437710405594139954293506550809204070835321855106773504158908531627508529191287457652417620212924410873106468039845246043343568335081486937861111262036244296157092446661029318656593841681743398298742863381170774232189967567355374357245504626849150504040092177177284419474627606633715037589738538428785491949531853559405791832470327761373220092142300053358829672320269005674763064278800167685406200356605952507019752484432512631831701194416553562873346987015991055797106389929197051752121174631270830378198516808884284996649957792251730840688836826759765609627516649453322702882132914677902242613445086700281967244338693446326923153720989683504581955728044541619229232159750340507548286034826295407730185408442683323646681968794807180448533713353075952612817042640037232972084851078071356158772652516290040176374056724399315340044310075546432298495291266699113874260590948726814778610035204747561244750877460886191250184696896500875557188465607872929121240506036263301462381910548473991773039773394724331821234665068709495195798192237416087404984234939261298955570026939517012055441840504075979100731668367783938848996220321331628780517907707306532810572702600414325413953714177917779748909228320518371879057180457703178172569250058339568912482209262786728475943749260531060926830361010005200914922521923149463602712701049290581971207685947840534853945746326654914338706489039841214572753020548335383029243405325869262674092500917048500337298773436361020893190264387925374979092428172755248264035026519430114729007238736162266538931514787724887862124502185802034541199727943821359349574565872759191182281133978068933145499073279541527087839108520168881309611866456334552396983497972129361073707674864391437534401583971461377451934797490676747160540602711933659324347464921440424965636359066816542461348258627525043849629553162213033409797393295174195581224868450930386730555018485500104796905145623793996192449327134401184217960244469709126672547675960253640723752679884685812068972693473646752289265975232295648269450455336880680091399727503006079167315616885986855988457836760729936721909949540546278492540396226760339947278402334424386132542424616842544708146600974856529248555251928314237152743454002446846477656080259028593589453052049573299866150353977607737953488610427268372121559791348423925147346831196452568364451734675816839228599002343950645696575612938926806740413279455869864074704674480460523505931003794018289210118456559702073480780453311382400899050579434036640558476821684821872640993235278570630324890663800501971008632088792536897597206691725701828084207215575656585059930349247735124692724123814631349991251142405109328048419274347019600440920142855491374963814678697144148710892124938564482686536154819806856928965618171254418239267357031478680694381786852124067278254106369849844359863029170054179475999411038261452139046703091454178048325165279589643421153176129462955475169402452531490815857259281663622288136180673801947703965627754009927008074055819753653286752561124216844061402233549063639628785393869448900990403366601939603164611953275944439963760831846570858998351658887011557488803994697213071046108338418390978097077575796073249414722623387734295917453092438229844704280127035252300258974781651824511007071881248530193024101809754710485435876847495920745844719637279546739879803088547597164189227171790761220430115735734863174109421582754195004718028888029475076796418238669269672206500347056890221185804752290606610725161858532026480501974346960635373591029471102406316400558878656907734410563059478270368772997950137611637139890006804270982337129939335339393468946856952340005242510800313658877249526994764425705634751663586882315690047517704792777322711555177082685114122731862022683740576451725811440419847522340895629562540441798015968133562244213951047723680417533357924995284835439772010789652588737732556070934356940387356389010198094704728679986569248352014371131445045023643804198463743156801861578884850832055195551702224910868733484894916681546033728324844536509035081218298961004742203227941184856427541156099172892806510686632900905466749769645371137539721317677098110935653101812006132986933589243330282211822684569557428721715851693348173106933751175182985500289514120276357476695223886037993325946554590979779961397739000725907652760489608752495404586044904608678403602732438847390528581208994813502325801114025081952745373934179402267801156425247772794741169730326605608212120749486166229303016382433153927048557437392124661299353505418324984017609542209856768785085510903643591418574696173244041133395813859723975449420797197510749674343175617429443302910439088343727109183568855846353103538214553154938524771655143044144097261109972946948101997632895108687258757609731340617410303590805029606790014513654884419917237075183408034246970098222199728982405665088368809499441489441261655951052939705613389767932214953581761085852061411578781317145160425806395625118315104594832805194084427105773711780459226119214302998798478895134224030640034195892559549670932698880708893540382327157427069426592013238995014035562997185622563244260399060325573947037755590195111501850763260856367697610217613094081923168487249933556357169257571425415517772789899816139622356576819842027318556758948902354544453581339961999399090542257876769413101194102716936996376671858780234275716108071580673990348119365029432076144683220095055783832199930557334453829804758676715030533130092951990681311017457143876370450276906862019527221119227489401372541782928073559593115989853363439844873567361254886898617866860982282303391555797688530410656042922432799162545020368694448895727842382842703348438054310172070719520882770271168464225200228120986662745587069129332863930716968160272340898564620382333603609798031108393119703689128189428840748949086066882544146636854207318513447387556612757193958848009885334349707815936302850358427873785369011711443097866396265482631975558049285965395996565096205300441127805786106074855012190142101101073415979188918622596158482718500271067284117584655393957845578019280612689877973637537991684656066616936998391504720369884716339447875403513619220207460990679123349409694631665019206256610389782351867091881886634983321834658844360302178908796696077936547713771367032845113775705915123240597429653656199352561686217650447586174268422900622730515374611052660069264085945284921092654106590944362861039414302226609080467368380248153366473181896028615231362855404306457745198746522046454099186669113882836363698620762276126795151433397365594731525127384549819184017926194141641750562198281187339521911055487352292165432829194156770013615444521175799191542356923381985520195003403490629193958406124505433265397149676801336032198705666035299346238398913933320619134377547318816313981223913740063827621327615077638767460557347760629197787079082095417037289066575086374455137662822885224035797930759041084331729144074197673354938742349110802792339083232827618787368482865592606499169681625608546951690008074690631444175922353837462739904892248783651425969756374924846915742402805161142489027327881155587677886569284565742840680115250581313069661109470789574766697988590137438839282867481990393452571057711523904113580992412991597781313461155624098392320104690092325056546951840122259537122365320931548724072837213904418632359910280125874020926079829466073665060984368916289408907917770766270922286519201153053844780623051659789167699970556257276859660874219355868476042363598749274451623048605733562165498188010164337042169737259032976016175609783933352831438970895799886919746505059031209315577938155885723680006963133143496498687048874584383259856400198065693236745686561190584863663103563442547588751286729410929119262111034502904187975138706389668707742729080200437289614551184972383861860884476518274486792836874803810209040080794822947830148020823153100803071002005057776570533497121375732902864715935093502416198300118011897311460213931271779859227897356517894333489886809510999102771939141603618865471543440965457535660222868438077039174528609416808626867841554990784837386814568288288822881326095693382338588374514249723035844398696948880284792268995430645649031338025001767380457281150763376244570113091160390561939238807224479175541228522986550744316368001665338114206095818141206498047378062506670815550795789080822552631565918375431376731407941070875076637800122482679242651883998882278315770566291754986171024183431752056223125176045192497598495435172113910731198150408593544938581656695948758428039158520016767113777905322392575437677537341522409392410192248574392784986609579353842317580961291240052679730325643598609567607021804437268096269458809948387550295711619028648767640336685449773743915767707515720308335023394337861260965838195865656900110581892901679015216045133668841377291452375737578334023674093222354116089508595886702989846547352217019634924550753153382208253404892574618670215208764189317576983914644999409554463449510086509206407418558409732001189989693224545883371861535686842488430950068203046805040535875065555794546145316610489517876304832851859262613109665476781018622315419950492177189602685213213555616551184884392942481128876137635291458628157773888743863092300270047383441912474803339263476750405381432296231768445976637478237580516996608228820172962492122184751158235263806108189541185006623514400042608222239056824461067160552600182226608341725825995783131953170704014299312828318634015450306806994690922337580056507453953735300562483302290108967310051675658515016213356036768824680909591583081259463268565909417576659490436155812959842851813139648789620051085069845655778782177843754133292892013102693402690403147145889639069231508203450738517908655210559030879281431528198860133868674175370141083299253741526374521797508759165412895826659813295595877096766882762191964718616815347595068268658031665523616033195022920622091442950352499152375735086078589192830826205523743751682672121610605275138182646587539785015547523512420527876751359887592644596592974115974713453817634073064331647934612946898284965994050456948557616747499087078195036395534986645285603062909267056280055162674807470914774156998939855824100643522558682651131900400265737739968489255965204930867099545755444185707103063620214953192313632903765168202779396363751301865063776755574852882478571206814949901200127504346083432930481833739026431594915205037559261418098029409436594076580801410665762826650166701141841131554937602168563131058442709937644224797749910128181872689063629787821823738316384476118565532502252048251927378791794653976558097638326965757305476719843881834212080118471534868988799346186298311494183450199792043292497575121937799179392361657248815904004586277860822952757975761757142749000817072052195304179480700689820385908653517865089112070479859611501485277146073901502663344571499633397480673589941554602669382643027533647991774238627848479204256650517234862652105963677707817364151344652315508319080090155970509139386605196769805676496460077063663839201964393972338327082637740488309592321015679548429728786087504704382113439673251779429409202997334877237565555246180216447391570058809756771290064998286030253134452857550099443604356376653835833580502193011620891385659831053265295512233774130791855716663947914215350545490000744909032115485923505913227424408212840575591084753830663749342747155027495363871094496869793101707280492995385265277523686691795339198668051943476838170735127397215464091783371656533944156244862784680940462261015796558210598731689522178134942228578313081339528155022539081618701951762787339296519323003692699827444769610334379576706106263881913975450464084078076872343953465795197664110451093328004633860328723524183329858194652835453664511248404867397879700421697217161173160312157862910808612541223676668205229104959482032286129753350338741330294380803467314135179788062914728796324514959320184534557840493564927485460208827247051435491056492581770487781843967402444493150891713554029894000786603999050216242906603654892796751538152080719807725016971007824362883394141650347702880397669338703678447352121737296570238485249639057893683098688847521732148984014440282366485483156579580939114612216015166889410368005790226523267693086842873377813136526402435171820321909151415244374384851307738485015992862611567851775115432606014766059703540502196762171391103832796751906911717989340980895604986773188144998340401815093194602929451381966702802594305877220432187078066327541682436629357676135490455922719212412839492566493802297814297755464548926308763207358701354047399508015713490197615192152684558875873313878149579632765568130398647152752133421609685514682944608186360319072813579541655490828357232552172039197642089287609130732178384725184736104885501113006254730181619335498323166528516841120724278161745776838617652168128568754174719666852976168148696672193691470726309614281460594088395331750293720181686812242118801031784304525175252656376583655544895975654766634423554216292315550665875352507158148180592130916831207739989003269851903206503587089780774863957225120341663260257756370307723794679365587547680432320116588717081728959865139056859852202459661363951126576021580450516807201671989582858091714270046488170300239191292711233501328114458865301428773910283047726981771204694681901777735335637453672821075276439912354306059402675392160354348880652401625052418808026339753164290187265425276048803647030687586934870658694335152293295779350516780334806167186510881282929371938596082639467245609071837422419569227792210023611303535780216399411373447231160214098527608682322674869870138235378464913181566801573234256677509463265303268367993940148418015480084352366475024519755644262580829564653316638918456848020365817864695506799845871062604516123711740192979186727479142336718628530815796438152438108372209841372245473202769691762135132607541928730837282339921858907278427071016182430109434732351822892977930443150232592428777354383044608005659749370825878100953259452961607083196293900961901677990366677217574121642791633141571090185560606948708738362608725183754315844512733085231815500250180160761092818108441297579468718634094982221641522628586114928049763047055573062733487477779645448112023289376312386543222273249780052203764768901246613417836487018354186936740691938377333407415269465349901023272036890290174327966995087820936289543725270566386525392502896076612135715740568450246668399624579300582644560040239819276305209995604621897503478943691922361424641951182932476889752284704714116450326240514608341336723797188333056230270533700367077864783104280884231512863381956943419250321718435756892506885993531949949971243231957938192508398117769990557627999934747854644484508326189155616783314304389442006397022572935843922382136360268661265027680802932575049777431709573495035234983209665298309557239962826205175131062304223428154868482917427023892520617075320250312609182328989720697647441701254458652641390649376754212592199119875394972221334808601189566300751007041309290320911750198719862130166242610084320326759268575298203187544269638042238399372528728817098775754290770187971365384299165185569405829925122058592954694229347228736250390700174738100092840508341325480751666990847553067921734052932615803906995080294827844152058922130341905379594613272994872761766536094779898719950063394224995353186097248334670927924540839172837382428293993365667832660397847368713118612957425412050351275251856687319653503263369278522035950296973670481597865983235489979588106602305107231075306236502365313557136106570700298153478447833293315090099257307243906285861809480954742151577173971636012800097493434393220180928851298440878030607184940805254449120053967350613137605940391485130885479308517711112300802089986351376432535531584663337117902185100860882140490062424058378601338231127012074572968544155231409736467632776386123563605484175964566995308370669963248433007079205036403023536706959739156386677308184048601785967081312239231991749984840405526678602076491248296217109209058983869925696567021604841523448399447323985661047182120277710355188581735825942411501667622701311432043572562629111250892486532070802893159190593288374916020645457727976007400839901560680128707239100556323516203542689202319857231745945959449913585841073194961309415668538108645113383834079483387443757235421048061916963576734232156456461948971143317344021693696448094643286726097434430948596660775927511440727888160458441350399535799104977048127905522320508264317238945259270891640556032107996021905366934709692026193914487739065290976239736700576277552093660126876271872904593752781183548646123275173234565650408595345658552398588851523900275962654267592512178518034090975061505212458972129128168017709732341366541431869570570960128415739020024331187194816185412368124199304866395202470455334634444397314763084400778306387519713126204951276305288771459043027699226447490810562831230803066090665395405271732856458284029839194088157519222406043292543294069326328185981876608747491407846982852162550102107315177047772725097755173823825080841988869752691740540541594262084272260518498669631402682527094416658127427630625631764191678007079574311465963733176007137907162150453388693722207948414172632256320040873226937484692852952993392071798176722038209283343781932731976247212886197609227396364401818598732109430443807833349070505222041981524511815456355769559290935926182666354281157995609116723386856914256667945489349233661066721642617793352952814738781320204022136153484840870806168928195251377289473423143108053917706541009361501646293402226747363373454297508102781502048547812108096833285944334126357456775496908508132015895688644186113967294548382613920996654590098324608603917798101388444006887293301004901787884202881484148443788119307610142651415983637138472755435468017388209936220849890481534018033070895501787176889810837073328738423300784261559496555000019466426357240454618516135429631749168061339610560928620813849126707019135276525310397654007639062281119648702072090701265034303556089577764312799266886079582746920411130862744304858793045873124761768132325388198933669175317184926882178069138946611719571382369731404302782989845811446883279601961936226722817731242594204281585582586303675852308314521221870935844502077009339525916240669121420723636167992776615597003200930690632087748907042805517484997606633206530483439602518114327193211569281228124855452934499063885141906516910674478985375565511018682625838717916297124052861903585624011875346292526275265976597036166391479779607548266105689035408126959165118231286961338971406106054483664974460490865973272807339361503533960159108726486770537796460438548633730672818378873857331097119036708258992945255272573456526244477115767363083496132062620564427235179997644881328401955551579735215628391775391510003947173917088903922683332500877712898375245191152383842146341275329356263104433098412357280110819940883378641050247242856644162279507008716134103796817986720363738027520739492201897919482188420410312477054693719137148479734835698171358267740437473480519204864312731119099372696508842477471761798105168244659157038567128989428433840482871461181909189053563712758471043435402117535782291409712275448679148359066929257313844664516613020602826295565942710377143728227198397440008095010643496114685094960362018011464918087967759898896035188655794167006906718971040850523710241704348749822965219717557213205516287877503649908412742852228097822795364250624842964101826686938650570385962335392431809218715206519854353476637735691295711848419862204149880258467015824960856285463381222569489966631068301907694703095713237340416284637233180089450126922441823351200392420055613639651119122331218229277571491152927130692873750309104993957885863791922342523492222205812530229626165038434602576936310555588950439205218788044986898409231724001356302133382494014708343966202674574619774976435577930293384050049016431395639210791406896038217391847708518202986580581511714387452327586643809423345477977810090215438256470845983751309546353631953543793832078733857613158082492522134687939456873747054220758582099690738409233156981027754807482005387909013536785265225596306856814007671384061145278202234030991270411063968972597754564341387532502704491397334149610855605132988169705588878660538387663283108826843124896247844739957717373976413367228501691370075285842630207295726479721133512736074568096266042435557455638482178746031162917295454744719503687092495709203854344070087651232195622600652585025662181253582991891698850854410818310589868835890859083318709446813167611815313172577135646451149374656972941016230800058667107805971745679828273840825723310225834458228253232919164870397322037664664883711716095377366075159401593681709258672731150661154129749858323042530705299027983882326359338812726865627490739003464042559214223320466614274525526337661294685557139027121272444580337467122660406668718931418990306982865735706761593028958752006346586792211084120901744392648554148264129102636486364623237120388879482578875926342710387551896644032496190007927319330941851342188043871038185077376985307466677344339536001123823748861028020978185111718109569401516300015229442242262483598817240562677801869831922942392415439356176534480170968574243125523059308895755700727434495200839711079500634978182513098492218878709736645877279285937958816502010947709367576102263100826738209641555035252981203570356977437758058273003554585707349372517143854320264409396002372267870522637352143425584087620054006348422225409381696941309330957262366479314057527439251745985837434906985886219642842042130255674022029618185952164180941092661381710628915567828444755013123182297951437013373855947566575782768219456034538075533490014788722314391395052659282286578875963503084530340481546032758089717795213875972104121914888457091110453870393104851142027833518878796344035748474728777233389705553369194070584435165449279490032276258101762640631612262903435456223631433962249443851266437874313724642525539803770273410597582587859119311243923544283087059684795592964454299165057390037367284813490309046916742965277542703386257222780799301537628434470656638451155756490959860933973242784899982197315533381514800263580608669038083747268436507607431087225557781104410196359164771420150981585517484103225001445023365537704915985279075362373832964414677802569901929490468671286463669316375689917522275062484966647193169121936407133211266686606145606256493326759580509146058102074235940312142225699888209894315418145189039207846803693556518095916745550699793923343484214191807239284706503692334472956999689329759595449197579781239940952136886876348488014059697733206618065725871438088644723530760415062546629961922061887529829338763604495496716388055645462025227570720461265655418214261605552799154395419411410777540696149808236707803589778125121694772983612815492439310110275023735180020904603783734832902751356146928857151647663407818620939594161705001281468277838568194725736025938601343852308916674036034746755285687783485055437132354329495924245658068294687553968238206050473367421689115817308344164645003201105712536240315218617258814841838481064848840321462603619493299097758314904795474431730204584102160664982454257288972704450892803864100194844048147059369143727341204597393079040541409210478011901576281364003078271511029658952941369805891149297845863071946294703080666861895862290719611891127616383019853039272711662333789593475828261485771016864940523991456141412510533049240043692029853907402929271984465126335688448540518807617391910362311555747560869431018967305534696548186203568548488668690201706356232637827093400915121104535214879908932247888943519636030383860890582736575058975687986006679514240065196261246287717091074344317229503721126905239229796843069232700747442549065602147111499882390837745258483479269999566094547038007131433171921895194297791077877677008152987001905962813839741078121289428678297828101634679527312368072654074999584190764180976087547284875328864800807519119358673913917644697852207741985599141224135127494499374272043080488688452166962277173302133511643534133648689361965093987245795038546875497472878663374185193774158772810189178241606167656120499658598255771180067327482994416633791692522059974059183416038523388793509145049006755886323831535021900922721791147895381948506408775880959800669841253362966678014382543657817622520293602432576660811016590926537658297743333231057451130788058326745838098981957430913364064462136933943632034894236483802982193632086893753730976712786614784248453296580045592124054598121004270105771968295649524771138743507484093610126278539320803364258419131875577515095247467466719304075316543936043632894489479077229226492896242854938504525915621761256553264067511106908195192070985446151998737620509655027634948141925942649306816225729920922522520674828703460477593105402803345022436698220317582143253797690496808013151682904868219947666963784872912166859782620294940803529706676566057148429642433828562218400565539420411722825709827403269126270405637786713574642888212415858246102922764124407637818405580560974238228048596430867857042501195596631245509533312089918309246703529639229560116417808674603397218371014491728390470604009726996122615952271382988779735270932761801615057149302899917932666107692540535348326989964761018260597671911019954178811518846888811873873596515583498077067251759849643149852361030702436378173720345162230394169800675147746452119204754392116972847488715491131409972211899052508964793629980513071749344803757416881257329106800359867154233705509388052924865312864987752260721497564984129623080842090594312686136177744645883218242851711886056385862044576865509257644197669976539283083939727342734728667960781504480485536752297334551097291767614955217094931113232426243517694844851094339693519631776221458158304566996484034567921054341537354173051274528952482142254259017228356026696498028312599347612575311056032917295058862485866062403881509023129715202047349283996814447279619218921237949497442267883314401227821513720577931886252882035679341892978596077568181481844285980355878364746440940509213917332427801580493309670692305180275626179350883820598311481346648145065676953664996640211789526365408210589574207521825141397157932979354121399007669851676561144965426139880930898298821810445643857065121759011896070707559814807862292613911197796323227559960252911282574602310439696742879149507071867075088198082304904475176666143951647700408976260189922194274208821546089565438919721777683982242436751731729159285358485355968735395897785020407150516317451078581857077106715565304984983311747863881147240939408861073894553210922740086385446142698965631415913641457522690768674267643098426699759927003732816174218679318470144837348155151078329952468705712922563266441742527560796712107605826185077779206596028818503402064832797382412604138548557611597913197890261781666680976878430046612854634655312286355683609904928400548880473408680470108998542064942224436372708744875650032575733447420083694853499741571546218297596616538369011378314584510952081225948806542700841191460017798958208941405182612089377838578817441291903565391042699331848912124462280042305297810859950705213969839060678909755358298425733650414062560881359878245940382696875497874696873867023142585533843225115565261497804656588427559317515245065016994689225224155006095956427631105243788886094302090381211191196994767212572673999348608395814666220004987262557273314156794440542402808100651848789075688375418906156006339831287891038536552563968864264579394137157656628728915950050208000296131278184294744323924457642185975675462156050416335335709754938598519279749510993928489180421761556603028253192844908050791604219662605000474839140163308013461096374551970542516880316371943108763137076164724219785915227960777547914217649460830961025056552423373195527332416176489140220363463128596417981374275511338162661580551979790828879562934442754200546681678366723204254901333614065293464515825546754619125541646804857176528743223141383583791161112693241700355905041614630156555525944346581306695465219891916948371871842274629448434615821293651896496644837426877422186698353708980656495878548508064795684489506830825235632131142657461195633018445558988580090449827958174734314827493510538209639178222429064482681221429521980100942843551852660905324036317667494120705808158507308680021210608800388695492581985717163766443196798145655519820808630981275506640203862238715915776574582397901607956481876873139022573019468696360975054302603127497585527058796543259779924164580425202169419189896654875961950579759924056840781832967240333444694392988449637304196131764112701104558660058511440511245494788953195963068431227195993903155453652425280412897625158998184462147066436205133594204849257590650655780760165771976748625796802542263354928275266832952102787655046361038531474747673681187900323077910130580574860536561080104317605453229573232499441404984931126688279082377215592634913460568264812142584055812292454229098816443626550078718589263186786183362979915349852890063890074717989087716235137227384648959731421258308997395938842699643395400367891162764913950712425743298009654442438695081781756285790631292925457602650717821122407489135238313526653376238299884199224587984833043826857402750813928683640270392113142474105510364601231998786334874788350043584798948573916537762482679212107271252734550711393179868969321205180724642239851945903780178387103668273235854330375649833551503484749627135046503725623926802798149906902193764917439374667241371748463098678693942521536987106739237088045318172317309427488696489989655202695535497969424889589910316300749858709751791722808935169817476773728585845519041310660908797652950482564167459880472768135586521564419057038925348984216368846746474678372603667188175333901082822800562511889491136824312221212488663310238233111936980742964186909569458208520445135122677028526563095326307376424335828529691418797238803199850238671547330547569516514681728090002642260995299661121327946196387761972165644151971936159356146856369099308103706047302300920284323949751883726941667188925308281293749780589852572388850543387070814228702071973663168278776686925571073688671220274049100567591744611688154237102995885001600768950604554411280145022488835249210452967706971856743722338417999952992251806250016520036294825736615989364124316151433822394835762551429053901198349805924530590207046758898078095487048805732891369840611745397844118739755291249564438678082177988194202163073059710754614858639726866111684972621087508659068581583049424080806499131583939287751374405280614029291573996126473613724279319001096414560556853869471298557379278420396318805799674796374109525263651431925338558478744490833821528758670895715484310246799158355830182925774474431924104296659943628153275219194156331711689899402410025644962774472694762184864652705390844425198516493978137223559215541435630244990862521008431794726982293860844059418549415223784292835895761041417756720988350123849774435568338629475694560525790665164913228571926399335865635412910753528144528929864099284733141061943583506471928945054899439891710428999315912324801801348872838529045948091375180978822549555714213064301039273742682302070388132042841652429464508415956660940190462057151850783497300478106892867863761526968089558791002521539119934849786909607114640092511990670769491473862213911899953272936197565602920263896570436817359736066687738975197001588214304866283421576678028985219607019150838918503349239685273571795628144785789680445906772689501807803664313652523794634874399100628741431098950909205586976115753035957061619718059624624782581866320627474530163329219548048350229703029330085066814507068302056814707946105389483160583566846714343159533267396640416637505546103013631244041663038847514829562487242006177418297515520281431572847231462375310913323516825775360799883604126444695343683968120924436658351892109566920908113342950587026676896915370708946844217808260278930374803247098732048476825445657434155536059247569120052552126325737533999490696991912863011687668584690620618723449531964123834767230947224347016541809811194818042465149019313794192048688529362782191815793455717070500057376782835106612786840932918156936672680146775238083613737933204151379370782689538638738875832646884728111125482584858953935171642500684360893087160501326775344561708129788112176297060941754273248237798762233565075148050181597589100816207824846162139137522582362695220064220594229152625112629583597701610412980287531303434845082326650196947084936802079441612433385601860561895292154806584047295087293724340676497684884129923191302888495397770825887385035467942142477049063670826661995682626695074877577295543034314295115472543197776022031058250326136029741384818426282518773256497712450257675988567060338009776341950061708794396756228631917887553560247109690771990753155064373885887842294924607192953948579850344906983709631214898121299501612189509529921863458204671807517369194769236277974047402359440242822380026025587980140447905738672395748754539809962447957194479314800294730507461881991942401914644007506060563645350628616935005553794001482119864713462215724123857985073863748162267334186694864825834649754787241614600331733575096857413865201929793031253003172014075723900929810644531884302736285563359175549227358160296920004814105891817739889342174921327527554286827502905711307265782672056637217326083381564310333481693378423749212152099049944210033726008400474809055402600640110378011174573812150203874031199009890442344702638720215326599117489709171193379627481134536286432083282430445974524947522511972689485434798642762392785131749288781324886380672267304090415894706563905004057339740950737311334518410998889399507912938526131423568641973186491332402919135766512947838023899604910152420922318379782296748035652733414975058906719593222010065568460335853763800543911840603334934215154654561530084006211645293020978850312373561141245317215758029535372835454083150484922025890310183049265182992314515770882973659162232763244851668131678030177672087334787156728950164621452513217847458373702954845381391299064313837023895752276060342086181083781237434313505513786544433392279381261484805003595204605739514729344406330108679317501294623183040562184425810354330298098398828106650860779420694513114634718120317249053452218738919283519405698866205732924011018524207885445383980719511523632059100721334507967712471391237246219516586471510037432404386660006885922878214615636834048320950407418543735749714306935663786905488010549460335478728919793730311963502658612815457983649835601178644784889766958749237057622688266420614210215421300110184118153630209691319746349620930528287789689797244869108632767188375559808111958641747991322532215485352330183809179069341436362265864405436141832854828494503400110086710069924543530372420737656731769642889063457864610418188454300834005505041427784560571802037502520406052422391418349006435874816811010140186579206684468710266334715412068463406747793811804897468046223647111591680539527434867704115336421274660957026462761597748173667866946101217204430191913825725901832938816664875082875199549637467401325240681800226767134103839409246260345946770962688752494592267245746355899827737496458774979332766173146139192341978724393005784468030403666234153017564261167746688241897150417017044036472068359197247940579112480087580823018659959182720679731164759315607538183809606656899711612872779943571445593738178806892430770747217876104749461917796401467762262131669897188454473434101022190202719988670915235578626267057143256680555167501444098038223820346648772158617075198447417682288629461970188835480298360738340928010068721051480805323391805568880353281387603831812596401405148327979945376391052303430358592430871530567721927865633159717339247432398813808805104010496639922089688062330721511708480964438474432137814479806311792562300499459714122509705453719320263391755771794178445902393476490371481614669645296678975098334951065859774882953650444899232761933568517599225752614488265528623199597894982839667055797611866430553876613098298934558341096958414535543573765155083345315557060955154801945075304713808826408924429637585355835927768840743027983074962616788122716163088220025337902884570465608412702782198527445360459935102566511532116359404316172908582972620686568602305738910149010205576692661051685851251434086272604392810327560068554134102532732642810712352622539073378798117382118082111759657523758418869601866398231130870388715076727538216597271125897486202395862540654981658838176094162355607112868474746048976278115512005052286867784867438671930846450753194846076173481719411504922702474048557881078921600509707093757072408423956529656953901598542648720777183492426887710727146832368876100942135965887619465507109248053721838821775018229795039833742295670358524833776214951603463196445735506123321182791384695909972589614016611367983182148233317513583072952169052497519114914281682890744676311611232449990385940291961710917909119431341209056605342371729580855811296281778373196846686124097877953573132229043119673624645496757036153417529632451099515624109071962301738713204417225602915512678981607381281448318093431852931139079100663195200080119416406458130672862162889300431514957172479562253600807350912006163277921999739976543144671949967034489965109804381086252846725656619125117199032137704070765302154044959648426140329696390040425788874463486419571730660681267362215064903812175947905487050269339824117613560453016042763615820839226080081045592606597485645312026094507784996489956386011538287368681937878277906888909143188519123278414111456717789613845195075949193420065170243615163297082128327875815646515358473183923578018383537501767154980469764387132357758898129006670694794919212311263003030789355047640496660530728703113723036304893208434487478831373347761598789855194703952278460591352276355669595450804705080364705989618970333519908369802911357337686361011639354730728351096458523179750551008245034507717679940728522861207564700061460084197432936848786636116500096061114220143670093515266269708702523826452707131157691267276123645271331744988168047775687290555663772669837257472950754904300051224296320345682426149233675706202912142166207171161788514093647113417728965431241133406736274634265919443333893240153745545709214482851578313940069290717387376243578303644513892410781797947900402183587073338816038604203917580531428036212128650494420416765349519356140293813330009191018861501079672736785612202915386650357779803506283957114425789813582842317617036965112194063526685965027987837200067461168703773725802955619014332718174680598712075097619645715733899270722822559702467978906853831054634170041258913309975416322616046843822807185346466245872407818346897457273220083093785811330740665255202673943624465145208502953029448736855815911445204701715523641876177749956723415337086244251296014581519220550797843904091670737462435326008345431874621260058313761838455815793734229255823747014777395903347932306775799619900556464911803264622874031092719037010025805751486189990929492103745215364337197382491129619541163885348964175653019746193884801107173998359606953945705504984818500768367099294520529446114339178081588236592703629868598127276847965386765128895128187785815179601195354377982205279368935647258272091175103679271541101903686816653923094748808889504162778410190360326651269542927011924287865152371367467670578719591732003613943717130840672847806203679127362340083817191612229685478580062796641559684896195182131442180340851265045541126397598041864396530448509729236889931558711103915448337409133599357351573742679068334643648199018011039048396429542525320859435633018301976348446138492489907579562988053200545377898122332108425685364406699546260792430838800089013646713234776208886389771949394282192487973858673685178610620032097037192416590219940651273989776540315676644114247985039699637482560408008142904329123692249782649622157092369467489488008604909663535372566803680733271220200397916792424571006825039426373065084949661407114617077041085413266306312173252097778900912394180763779197474588909676625249504852744292717460460593109798763003036523830674779099042656807427317471718235416196408411005442893115993030127377792119739370548254503754634427701382215248776883838579273893729453808255498084016335599047499962286879792481753001994590448752773325422808487791127438524264524032261831019129223866010434399082164255483522545598114195679858643660184549745042159614393721336447864363990212566669779313254787577364901507922427316647542704383942093909166278519462652811148166592740801638419501003181169620905584895591435225056507876920571777730891449230406138841387889066133037171917122404669109968635345118485025276183684684887461470387071768091656694526348140184516428235405846223371015755355496323271831675227797222391244278577258334264323402469209291775462340440406993658698389711753577294814331046363317985142605596301317895683265593347059187336961952538488994543094372429350687273694517439682116418485795593385298179774048770290869427813182080961752091244424194293087611223621279253380788912191563026518042117818123728649718908689090278101145757575038125453660321152918297341625403336103390401086090601609705488711156728091780478780143904764314667567206443507613849762992879500828641632912943903482971552611442311418528365481846235018546907816058643910034410382918730822949600211857003702895458018165926119116996228695481980880333752416338438442764012509975682730893896986317786773514660720428214489406209424758426876185674621669805361533897231960136098051536272128511116749353542818321440885301485563534160795038255091079285654117384235828064462063519541321168010421772418328607990290360366294205284267962628496839313911289326611884531983673330606626686828928552792944079135783369528828269868129043973781942946509648909311663317894030621905045315440688460715351359126027095327494467194679651592137008591968444050798184727222776730913018242617906400953838801263149121717458098959610122417727298049677104473020430280169776883491378733541773704428420770224705731986053380536253084653046904492743028683256026622597395216299614174369366877738411838257162750582443378496531312931127914654393290222481617324802014765952602869530679731891058446164666696944449532331760590990207135081248378363525074863100866375890242224212296590294225521699045333059980692858222490196144918514165119532408444103594451956433855477938096528526563537422003754429046418090470644274873570784265721916848952880029969449769174421156104722575703506547287246524129185426737597529708188756103219975338215350918083066143003779774224295294251011229857065301755222457842075378564023668045611648900253696749119804633272839821775233386117344030426940691210155797802820493418169978448263159259870107757710052692491165069999223529926183802593385259480730532744620989465381959057103821049152696338010427818274764476176355690687958435566185328739756803898209716613090479973293739648105539737396489442849128119486589369467047888554103628727720457337657143500054191824382795347138554162181848436987285396983957507685809318848251741064328529851118525134540051320258349726718644926273439299061600734121826357697717957144207047407055874158830765562918015015163063396778348449300335066699727836981938827975117439890386897344109168783397485771217343852361639891451451182247737960659209762001745696158823787516358713512170510350631970584079908761563522769657730269960752085469301245502484342963447420370212094466429224344442882107539120398831485282847250355123734439567365498316704843117078444418994502118704810004370610595434260690449017967593166824926214585344230092985677282234215709218591088751388299781548736811597287788483905647078213900885189476137071834346294579761901190126801591865573150057907769883371501758734759208986984960167093859725034592483410797040417852641385359905864551444925507246308235537599354167615091547483181874790909927261366021404871142506321806780560587728724415968100685961731680482701805925232917774520530651208095626342265629616359294745701762487908992174113381441367413468212815848829763518226011568560305719665451623779800818933229123428127440624566068379794610195100824312336027100773533387809264897494989271293689970980324679862837970611284434695357126356605445514516401948503233991057035752702545012995632320225435022136405623540092386340900223985553665118254180695024640484332531073086795394217704938837465959969464443970189991912953074379229916033266117142380116750901326490204612924040690843973343686101858117653537367033592499878946661919446782823047714264702660741754063762748821914206472456276199445177984200816480654593715526536912539736534113139630319874172466356228993783705395206155814468404125975803697528309694016775676962671454738164527155744276812361049534962115716170294974379825620494256182132603214138514732929103950300153751126833210226932811443875272106602202981531075846617510915756588081997557062909915808093800086871685129820741298554155664157790282462349606292426994223782292785538024617920638731837927125785269092571444692314260265360089765045960673571013054075857139044547686022451363821344738561589720984541965311179162825406066017024734852282197193822422218850048019978527010103181295285060754328055897164564692605656531204805220584248509094260072041237832246498746267763477481642304372637257589495142970895478172609493727043545170456851581450407509534595402727558166790480018508145751853246516565719728717602606109522897346803013071020947553297204175099830283982281811181548766467327471339283337263099408953183592239412742367280135895739213485917170161254821406924377029290425563130162725221060527006912385713858390282745781024100524324370198180883163749644771456813941207879287889312564428885256134856082105062736250020577469110529175093819846039568618963584354634525878515878947948015427554640545419204283221500695085996949708481133904058418720786856385393491316180815188221701851457162887195577729919954322028435102348498997528851719517793521959012260384139834816935235224677929108762091975145878767643882775241608070142443486841259730510318892878654572527805224194776510878456217262904195453021952473962067878645635536279254483524771671593145670625383751407350227359205325554241516251052777600053494769202779838290598690603534205343050335131491775047354800707674992066012506139825759806563063183948344347664758384777111208667652322639117558413738330541424091084424482320816592769075947603865644846367558726550535585382127677896469236135286324424577637770631544880577466241110648623553323155924747095893112380983987591229041171837026041623690773207458276237900365355131200561215638366790616874916850066785718622245657702132357034660868725725248852610881390494505925586572153527634580502704991715786591081199398178609590083714116737060594467938809282507450944048164907617011414030925162238933713181271254375873674897564968360441322251014218087043672052128945231526627879682908248880259970568704707910973471971655280951286434451725468018261441003722551188832063324857011950953902411529640979549715538834102430705208765264652874716025700863956505855825645223125564894978777089035194885213754770056661571719585490646423637441400419392906889262703838709411277728764747907000788708631166113193103314417869126655802414574106779050557005933618049433063424742448557503362523166751611171888820996486187496602907020894822468207170884070656699175382249529221220425549069370698455443027524605337535382265368720975758829111066989189262714531275258683715609897486170861730436778788004520979892048279416661850617768937777483881463459262723925666934052808509688973934623666034429475159718406252079050127862836794646419653521465804744282962300337975138848526485407573580653105428178501441266843312547735139463875843236868896187112796961257903299717993356594028178298673784386767417576096827914250880312265876606527724906625623537530915514254287570071656455319538653617840454311704072366278113889735753671380520178621655302178834855669847803185410013280888856135783314964700332682158529272613497134227858794662411108319754174150020345751004076641926294573182989540554652492467821114103411436886855163975796926866431904387629217998860150552837791878161970231783621197322722917445824152921808979841467789483321542880480286386648879346118959703175012221855714187487559919730277472037472345220405358825142886895656770312414584060453529533699848922381072557015220301870830015794694276684378638113242970258508656638704700140529527609844442061945837172155291325148592874171050263575005447326114133828350262929985921691282398063983054982154029422597472347445606314661876849201278463850346554776901857476720462791019745142998872178801064598282692542225584531408922393419434113098796687536639099531279722383438957038501938472028299795547656742596884582565914265700708188717160402708439093228589967751007410289440568505866486488462266467099977102500739624937714133030610711854846050583301346031111287496874749492274070952077496337369711485347685946837752797918688313484148440072015978897915556764326114233179883954939810331299269518812925964586680061340781387733125106928423098483369832583069762554447011801491277338320070655104607565187664640020890265859221558618680654290376236787829797622617302049675386351255164026810988272830528974185799811722066050383502197412285795020236208546726915408475164447131904761659069874606000730372368116946188828626149942549894377631484066670232718008609156843912556277185993873384246482441295078574331119471558294004208066595560867175989512284654008872055103547268048753057185009216098892129703314169860125224419297185419145346349099174826222788007985821826727829018847846538921393065466178684779261848703825558973326505732624010685520236753589214612741659786888685359871494819900485312680116706097607640702508488308737767827738873464111106184548319298073857871829000917256267266262703350627477908770695235832447316869981660751507022462296569456101391903405001783360609503505032372030516730397444713630674147856634817153912587446850579495049663012563079012403524496797547175050796818909488077626212001862660198615294003695179766201222244913715383731501463257794011192396325348149035432205527177017976296281581704096908698509505973243632456331818781837678285661790814956322343432105025469261027740772032740710272391388369257639396066962052277351468455279342341064093598989744282317915749059316728532554507695936442988665968051232885195992347706592754634461499604415245254375944817054570584089895480220684452467659326586680533535918180019835154001289054881607850738856689346258914271131548046168739188644763578291004617812329947341759480270532717983119058891773270900851776019143768393205186571642362741692763952236869087970665645766239095318157124589700371033495010104184558946719988815380286647568682859369724886617402074157361874808873262872873999552263895978774084588102393032399922539649154771438860521404694219525148928293676024494378366326601091915237610512197621047638635220667115201196549277103598266594930374139131426688147479453729483809418315505961345537497254301716402130894883620750048355545520270466374323988262880315797340013476034455394568737644994750752527431372150338378756079303305238941670848010193400829613165312685199112835130459910928360196093789123027311209643798419281372969945710987968263652349590161480356969941712685487880927622213357471877332166723049191713401921270116050685646516010011201106001738648819383333529138473276352130746451533785648278992763702740173407982100167697612766402683463875749420211358813177374602987201206887739517882883590758531972852727813488015939349660627794903413040494947431398228342107707109928222951593471858265883493416656712595788244841806598687676547874316930277414028812243673850945843915256340233475242590841752856943880057660504697390825972231412125209312765386888229639734908948865923913377028910053264988042979941756869060864691693751751001109166186710457023620920593690710700019000022910547807902821426682258172443257070734108475326556005800366036471782573767944551621323697655160017820842669367970986035546567544508009505977311785893096221457317400634898961138271213903215485324510644526173770735260426110200565188203475495770085518204081841589792029978756511237928608668942911717077478407023311962806326267761564153065051410309965011030125231520139620094116599324513574770609087417697341544175364021337805707601057674057482002554453487528352713087935300302963752094542523945299235893941323257587286872380111382646651337276771940284919190157777626396369978908136924129825451146925337320117100754822587976294199007262675157597919076377185083929761976781310840127048813665567049344902422027658623444142127471098534000961451173793140315175780078462418530371493403051233919861365142238217045445078345643716456895713851699377970651732725705561147139296731833829839313983348169940975659037701591922591526651236853782875913133802822492122031002765285943970850337592344326161061255013922515915673188510925531405475271703897685548425722628999547281539492959411415503282041189895282548222171572847969367714877003816957985596302370277862702624844926235332312337121833574664402662415080516294872736118268586215303149780347838897531884438339573288467784636270936349412786725411504292931960342292183362114575600260828151801561865715814638224813661900266377206132574907275258886175860330053268761115796826026444876601991845280128066745024906858589724124051073567274761782904250632007190742232380819870513883153160199754008716390954990956258404440380029959455808990360316353039304571464761094138133919992667252703880905384413676928475925043551811170429692976110229818272938686745105040243208650583813124701073087710311400626763599746159362375640144487054247749813463384713026707961994539784112464090127219837241939656518827979503666592625270056009434849507616073830761141466186805413430051109605760517976112543464136561880072936238354571898284974296211033333426311135566288467658920552175753477676483203862635660548364065472556274752111744309798874818403868228673135742358104363002983712388311732816912377542382635512481000483854418137143985956503061016151433013003623620145299514547966776856462861246631462862040696552913939067850792567929817525475123403655616414252207729414848976277032763586568209511884506876386593155039585123064037028324198192769793948012742709092158995164093722653578304702263956833495751518399470587875810818210988206475123819182178802035861217671426754528808559586220600888323597934993540714868162338892041475444025759668925493328469500074032082290943502296354852647732878342954453844556704182435656679975718374463541280067137522648760491190473516330883851438840918280169450190111009146026022705867865753526074953660169656983932868421636750657922333642359198492005446868895355001616224287479807707937866492830819165934975130856828394065004354289407625435134909070456469327590085852174329112389838929108699869520150530601608063656888552558026724742059201249663370423151722079456268843503800659610000295256133101541556183546385028156713636309957405132071482877032814906889958118604700593194973399732395170990475936095785632289352540998251141318179679503408124265346648272893207266438049508225885101717036818384350134436100293490985479529458324651503070849499028090689025889079586674698509129318910288166788598459167986162520250689467244600733562262720319356742676689240422356693284332126910230924717626210738560155040299386250195476450516479491815734659392964204208086624068226759418488314296993116587623022635294025797675749825361195369967359807105288977841623853548458228303597607697386996829203020838629629555412604052737452728287227608129903859294381977878807959832051074350028782105325200381708056812296264765803941493871718512948382016875604734286545595796377783907346276780011761339358357217285801921513121480997048079482179067633163524312490964773326059157221099647376207696859290338304449724398810537715978534652724164948074728739166396364451828079353394041146791372509315981682240711019245311003289100385940324935347517201106029361426442586272321346166475643474754940246830708170444572588321448485961634601470124803920347640445726173872258254233054689814687141048171921344342576081541602378757016980238570711512554877904407855205919687704241724342541159939957519828081241757504374410391431935058043407820728793823322176307585150984889691409424876460690217734833140170522141293285914234984337840522607217226276676222957490301478544301714847498564495218529679120002119547057073130655508334303858974044148113577651318527394127492384238696969301361459733682754113304670772437083605258894600531584800196697163905205337792136708536439997000178528665465692951975141533049845315121847297979135159637923435558497447703212933058423743252721523367560644393333132605232156041676279808132615087802393867497470516860202167738119775496389945663561612865568016784469289414916676219307183785443261323443366494583477666702127514564008257245818531137137406557440564698992963497030980282013581847825716060115162028574322256826164808239618084978306382093303818400430851911591977418347263947332422215149391055917487434581551638379042126627145776988628527131476321540540427142922307652425866336672179816142180250076098152680910766796753146343161088060267269799943361413211163352169742944363382727401122707375288863124364626747480634030716064484228368656011187976221986599629721433058501514794163770177920077727995801418616959021619153047191441504505548132233619680662228446738778100113234769219986981468360123829520425419629936733636292770946880354705856863627691476494508188405816638243878768207881176241486175390602815829232724268940432032082231827171423754801503321589297752568932495886490923708551244056971749194361444106928839255988200320114493805608040996699911894266564416864540102469912700038160993362589106242181510703039855422197664404578724458801514606378264992708620995340677824332738488774093389206992098883227543335522531953860461477703700924426552217708491671841143974136452010675933529002479685410136106116724885778187850465862421613567239108175048523077572538959503877139648883986738560273804275831141222076831126461170794673335168751995271094608018364378931710424815621095213489782236743431934519419319813017975372240538628247385926211417542158534435781571475287603793496665979820797482836074598359987416627140412813370379580212345385759152691376487018677766556680363956478576354891299592147720853955354421637100338113235621470592603107231278651328664258425833406281236452674068942857894941187599074553718881721411480996528788030184024977651319767941928583578722294803751667186471343270792412923718807862346045797988431097539704470591705775053480869295417970484636124313673387441190308413948192514539665121125472370884013819069425657423388990700702697750408118333935362348293319465526887948953025181489753140504001874066742473250651957913615965663593819768713352131660495281596028479246893286871153528796511970733777051750319264204196983124791515199695333227480538717624888372140299463232223198519278104408967064171099495057016784228120197304044379220923340675927073449632960187753289311161266581166499857682669010865984640603428064108039115371334151577464302789076476674433862499357563606350391140499040286483919356409104019810892536498797524164181744396203467252789275476253367042827912793779119863509907833462104789121573167335956461736304154059159710058530439216248925461388310293009199400199357242441089982013673458872670419225414977761638929137523707494501081216221875379629457664429421387449995872594285797904409255944202345924683963594991836121834442572090994081662824113082068075750976130331477094071429296744825917020459786443293288852628176672162145084469579695597774576144605091536983174968370820424875553290014090715557822366110469154743536439057041325340638003714600088864845914092905164001944087055238283448181065086242245481312859458901916456971901780300070316382694174572452343685785954594978394549629831715541201687426531238325405049057304219271839238187358816765374562908864172975238082793658483225304695283202105656762901251068903750205029606928519144460747633237467847025041184000316243897400830565331154621231495741560967740847429047043196842641185278977581336264310807731371921956037783268936440318510821726201134449792067123268011438824492027333774216953080014174143311175109804117531307126455997635405136771578019969778309194498800998227142819279540885397336278646883268874109749901681891241559370896718508989306586073000117635092797805105250112479527985648675512467015539137322415745520473146400735408595229891096481905753252141744973627708337364887688740896668814103861065769754911145804884094187903131206100572338698144793459415433410494964308055296978588422724537167285699386173575952242939514367574927093350258754998009679384901403667287355855455893642939421226434271288220631413598950417102267360537292741654817266425195277536160728261164968208844309574582628458305009598695389924611685827721160841467498744413655435512602428295938699752407699950430910668674797915266969553048079935503850115848914815057723787161416954842066669194012535151872125170433626239356483127221410459680619552275152093377958260125750922963247559105999859910850754084515319409882205520700408579111764605878647057792995744086996520651797269387817076400842104116517168512492786508930121584302351699611196138750967194150175019945068243789855106283574907667687229329386620316824189100284500098879311642169875603507284918592282172089489476857376172243110583087775851586160962717396237029277335356213914453079348523254174853329544998617860586526716996174267537427272911046696651046550029880983282126623813358482505004934481463376853145377834240064261138089551852737970275529619992120265355916071940958682653975720973368748040561001416901600443149031582372086455392366092138896224652489889941933121007431027524956614532271618699663400020100229731596994923256076185664489575687910231667796970640167708587025853530840257587020999039353201503228211424211036107441528258056952869043877666347892465616124778843255892461891697104604805779042484211016337197690953548773298997788451957686076371177498432212972810671525164019466491788579803486983666618132725926830015110292279607111209278473805068028125674272207204213726378310454663775157447141908156811678004570527024416982926138019320215389980366178070200084640130947848024724944681320641352834829420964759786609425604158573496452825908787028853231251633139087190137244728133600391988620195633240886681072294624414590061699117852283195175664039315117901264624947899881532966417598725327037213550549401479797267157117145246852648336296677987943156399357705886485511810447852902183637774471218875411442683716467412877537042718725489838184045120793503331204510419225335699802460559819289370481169974274732938497114866574979665687788851347746150277372423585815574606834518205138708645763116799326488439439177203825003918291935453511069131626191311892529726689663320161183213449827109399823977410769569003343483423027450782352786452564070153601056917894455301779482019554491793061299022095333856092718808773887605838595576653203161630581677870052830712217156025334344617488053368725118102787682645312215265150097337630018261421940096698080389466419790835686779146717417679987387874134677664796159447774588267958016160959746242582388402053662707736193503267223122498376213695510336956677596932072648577584343007235820826722872013755548942488431615070626342393233416654624511086730572890825257310222298787007798111390920813671845124076830587205427385613125447631259350794653452712257650640182189595726891514548376327665010259307179327596450536522929166816052661113882704364735219493062512197853119683534017220762889406724697357375810727731815817350831462192254860795992121538205095852713677286403994001778867610703207668778909148622964786507217898243208516501610820780018666385344186972227706248175986833248438624700979619316010458839504064932028407791780526705706455648251768821615811518262364179163581454846116253261195922758012198166244246883126511916711046591427722195586274473811037871785555165960431273171089600655460569608587215402792677728186862430356071977728235274621527474524163868621372625184960580562383718939502302450925640324563493235462886065709754172065318568947969231131890095960769714453669581655517466200919556165671320838744589547642879307880526004797794914394145364959190416849620177028001862212648848250386712299892961398618748220027901840311723071171025390594616242353878292004172941588226824765936416135807708919156645109300216383936486169102408046577201081582352410213452077423293049944015693437182225639780795436863915176825588914728723821710866083950689192389912900461639456662754740004077735285761698664958957094122182602268233142860999472770743193828052116344422443507907611840644942255693193187543042679695620924022529477048321185508070606591718191163021778967048226594058399769353108963119894928064530230199400626416645136421605145335992984574859561724595697640227879954314341787790880719041295694904098270223444172477059970819335428330409440318616249538266803562453811912967573926762222020701130553489208575533730178306692870296688098566738376008961975203486516767307490847908530633627695188370308943571054187572154201528013761080137692028908862139957889815247510471181045349197402145541162284256397947015004177509083974759373014894646304300322658795515134444155950795628506291104916224262370079637848044838951271196555172501777591459960959566645735014052904939985753198953402215583213558713262998566607452925604613443959412938094949505870258869876316201707473108319380924798310964003318314370631708134972145245250761557218853023846806581801541582943052354815526674855104118079626957679870207850808939907139574560082263684077115994960189860421166166101697807895648853335766372594175217003708416664534255433473096446386691298423922601484501920397342704505240581022077115100711210994898923195442855440469137055545756753515226024664323401324079510756838566783084898210208962414095919733231271486358740713012785015523654072980762040094222134951984815692703060717539151085738104236538694677169245584219965063828090764975916996555183394736135024971184181651353397750417484283583948476200117038786055261733992820009225280536204985282454780620079854456014047214970092763118258640161448791687376158836736591719159404737001241297332253357014927115265209364041724419288785754775770893665327237635274178264430923843197107687476855118536650505222768939197743812600088936527915372513025226979618207332347097383767765905779936732371039614978291803701928463948599242877297461749225399994005045067405064231312028447341537327751085166288224745888801868389352744042778900986595710312523384765144546185291936571739273879786158661777420277240612650315250612356121251541719059208618540071807818018341941120578529459255091844486477298490078987684899414752686739808979205027015665189269530826302814336527102928616902844991387888272121729414414858365028667862426557116339561121971402063237438881752950991095453648049749829970845755944459476037919841229717652274914314702118835947237592680767325820348945538750122923202917158179626378425436518683382421191490446305576086118519655504740180683940045041101590549557038177130761377223801163444856171008369057227959426526473010018106353592245356211466081702469765417245144172081986002563383101802854174722112067089717089086830183504542369968200871634933979364346301551145155796020261388754691655238405685478972895526377248261943885316631990571414789254812900133766100196151931507176905795792424225360654598902973177786037789746922076471688154497383828747996546444886673673411099541886132185316612335701121450613709605550192151669930113028130056957776127756078064772466376105208784439256112423574583561150783930106329068652650040807427479374473213453428526693761492479044985693053606706247149252013100614786951142908914380212885072683156005089476520353970523176704284440655017967241117652647686280617814628216946316188307852095357774252634861933507416530027901065016929864965665164745433818371969708159466257873450670821377418310868193311161182448124249367362259202406270838797965777686455397248614450021376355043953817074581098664984018460429861070219259976989082982878755068723075395319437596300984810582261185107573179196026001862146923394622268437394746099492474660829733227034052607863039899733993924131050730068154065167125747743292228721786520844066131589268762842149074895353779269031464299829501777909932448002010330215725870925016431671618839602470107940280400875623592272214428329198766777545681569448805754502712611534564385688900037734727450217130202139028880041585913256280542799976372146950568075369980732712116343133360076459760879249870828624540533845941103671205157383504939831376766941928580079994876675607188704414132395440102087832272991007996035157863735775166594180438512804461018737390199460332165561682531243627671184278859598540414417252973432055581189492659220660069326005308938666136488308141581654074105058628649398185707007661831793449894967038632436507171261018242990936660442547012239140129562615053311843906754573322198829162926515550789015048757182970793754315158169034519082141720360269804783472575838548000508751493150752028577657490558216861728777342129291395617605873313342314003638151767074055906955324369040233389012034305052395905489286395620832614194883261988811238881006068959036769564689165234270788343618431425420308803857115730176305072126145653128530867865738616108800914171059275554762480765803121562901165531700378611156714416159742883044825546503504965442463363410106690443338949222357899687876062204015312553955453583007882767246125532653980008925363847208892653456129469298846818744644340206878440905520936916256144722697690037226030319705863875398669403528296903037026266915209721660579684878545662668686862335898400334055635170543312556204072360169796803107661618933395228222118083118928675275725864639822014214255228130275436348105748768645805501113530651863480158483157477933724864491361522378779617635006418956708549920062740776707492656102971595144509382493588864321997292095653119469804842612461400835296348209487571489061513445900937126202452056039466498404477140546131894916225876872279914293607458869807142731168036089151365060804865547748668221074202195456363281721742478645094821488787388576823652115208864777730151204493332615878066013292957046785269102745659617940921899979280102591660151942149638830593928357660066927704812682025789550314260340499273886888770590635645358215527635573137670350855497559127697091964212172215107901298731701428922580775340773294789801552128926857001475010876289819873893587498753112020330862014964158031940626586749344691802547668637203128635638974663612143633554117199124108205852997520262264285166965516462171265469888256169757109487596065158160469558376771324907189653516411947319390554810692103410377657106606073162619617254431096523263508470664579152639447947016301916888949861099082046010393658830074264921439263268527814403946645719901867580328043014963705137048705168141091156865607440719817386785492737450957458958616236384188684931487037520950302404177715607256515569153007066229166433671337095832823262321490681772507047937884471751063523864702888643415870901903244351770473332719752109536933921442660712502458550786146904010865720584573491616768337451233817838247443355730782809751585600748107029733793567254701332885879186441259630057038639570196152191312131594976085337702801504773838387405553803287931951021643898394261373516163460341947937954273035604935018069574549098559225795075200365559639456379496574636297316888680812908179604456237988281487122684721457637012806894216356813463879695467951137134564229263309264502798488317874671442188721505775731981540163472102913023046481231164694347852562441259203962644217105005440801815595291187828802934026374750066615129230054629957187362048768444984798966523496252403210216532474410970006415727573586006880915663743590300393527139216129087146354653653030042719052093910919542020020212813974629445517686337551030218337825231730132271436707748413267671091666165744263301745989217527457904153196207512715060188407894896511370140169430445088606152549246161270729862327571835080251284977343451649458971981162495201415332807765449183816691642364701641723475072002897777550843060286042067707131691919234388693328165509598760721135220562696928327812328606120320930139335004364357373410076725519382937066969994464644579301298513002984272882750839693291847726462112423048588625966526422451374467321091888006852880299881070338924583057114789271816232946953916066283540123429876421947911927228223548997159449492395298781860480703005992044209838074100873258557911330920618301130203558734977256271408346684013669149475058968974453435037526509731903463123225901750253843420019924297928452793859812785409633051120790302753877694705447040539118384480866907857058868496209049248012849976697916497047222571000848645056707835521261685483842957385974991307764604109561125239002703386994844211787305069687358395654039534266656723231156258542055242724222411004087402872209908810707298808486085206053973381246406457291158355034199282975663435266877053976014504508667405797300040716777450415055488508191808389298912991740861621940154513379159347284450626595114513982578012603503858101410970043253096052426064280704246675846970762987686976739429399970312586389580766375718460376598855130237268799916993480899757667196883125108457810913194660041042592324014437096134484754805460191365552217007635186339135347723776333282123264428513006017369735878191079734714604550889756995832486887937531358639920422765101639012091069169428374083555362738763053487941339433507358361088580448225873825588851826061610513656606680959063653253863635273547514544773161889181490312900710249362649602952849333193109142328799130572878075418857370003678386660512250148617834195273171958538633251500224094810654865796425963340679921470020031156249205966005689350375765247077868357827054493204233513186672094755285767485810028230138785685575595026908310119710666229692445943527309914010414498048144268515413362374710587128362703426093306668964555814811494060836455707785588691065286074957353120162493073292506595341125354635394402363602550250200457831678948022731452932758443850377981727253633591147108000083520841564844069873461168626775330008375062838880633129965024722494018493586801947060746140609624470116122208361993323679034475410788584119672971770269417235951571257388169774514979458861286265410841473026374415376168970626692517635527579671286013721887304053337900441081932464161741322865683623618686267433357192734382361481820063334738810612482116533380334845025277752026939521751850248683458129825638433486858569197590518253456558008628244314201715439375149129241214395681308531176164803602811087252029374914422607924761968060565601031815610341749633883704582355720149710426436817582860402171009753828614737459351316930522489560799313077867542598801791433174449447632994947449381518936907555997807035544060090258566500053892466323772894806103049926904034539916374976955366374206258743665056853473411026582021258208682465745914338865177146044964517414706595230519788392689539630063044341981584928288299457805902936426996888737507835680267150706673962078106646430058029160123397516140723463190680678291919467712713005789116211094556122081115216821303127550622931809054759575304770494643069798317645259317224340241244064340518358721124164001436831489701372415865489925758725668667828453387554161108457178488584105873467133560196767400342702913507962616369860554567690845223223572246397327991060148800053264610596250125274952006294243645657450970967900789369725451392807263725987793358136782189277659560641267083980032909857650268757306331071911781852745637622423777020906286482670678732035007350403866758966015374801112973975235156210898602802815955796886615220307624098117708478308657748225333571518704769354289780196533920946015567905314821670127120671952500018530281113847521045639151620002276398202050656753922575195963767117571705717534853088480789397710426717184969894212195087414687255116027081554850116592862145713177478656764078578811309655121837498548833017860754675149661104502679038223679394760195259292784431079775091374043222917368871384828869053850924358938996520735829395994985023897471073861592331695291712927675152607448340680773751614698518996547812763517297683667199091794523395496465011886272117213873881025127951735436412906286698510947262054208710858414452216110187736107493838224388401612363926532359190250650765586187146072072949602290801263410944054059810514533219625602280701981540620471014744447019231127515624668023474152831597736006534125804266492202205027403733027663973712742082855377295854192649581216083427273205499841752695981645517588010582212235986334562666556725812352217427224192776522190058735338715720754040683065938835325470762304390691132830828354888133031139589274777164651437692357086038847903455672460085843183251257106902251229314183793948431237659153081299937073825585710157359439950235122462970835118106186064504162759372153277512495150473683140056691054071063329715148468273728533580752548543902112212475701491521196519994573105012301834816029897787361145373797070409412773402623928821994251727060168794304921479952191790542164101707917792094450821059703925479204331840007757977336655657377327211339407867520390461703836887724132093181344519977516889512271034436965009453521132951507377584840128535686755423141857002750027179808666385671905893854719240686479796273403224328492515920818065204485941749399757373978908870851153831225626481873916940615633560318134940079881577164408448203397082023185627539982145941815473117761404489602979448064954700999723506144752408581472666624803027084482303290847381562233676402350822595873962059866510557688531288066702214523803427854867357319854612942445175139074328199217106478159354598080942362599245951044534618020364382732513276701855391395284133397223062795132560749552762950681791343680939027492509028889806459575648350972968828955511634412733669077522159819951626976127607373216801626581942578809609291195401889919480056477806797149795405669055869536674554164882140903936085672400382225974997279083949452813905532890832492423413479352767649362968415862515712687546242924883585367400886321165471374187585502663879032049359550950897400308614159449166793219597620211118086742219791809643053781753690833696960724726216986803954912894689565511176682545996080942996164380762511049023510699182544939366572038984353741534795338080782223523431777595377178292736486580426306103259978511066585158980361535947910742402154175654031036976835711484347137579193724018874489659220811008957974403773422385071899129643261164334179402074099234131094991529431183566618931924385876640609464985519482305305975187474977340582164198661718506907682521246870179874748452773957032235088057190388276110383784216875978859088684448491399453116843580840149468202045602974190441067352316858674499107292978091332738416735756305100908257668327312296556799002153283775300972032146388211297417196754702196116429837172499880734114370229889147654110689887862564460110436670602559474678515043736779100573265872599538689299266745970153237095455482366957450113497327926507322466905466968448806170406374506667941113823451613533711653750601512906926847758810947144878306684163123596278361708850978464287272932239003996457629217889969684680601513308119840771781602610618847332013035409337533131437242143252240005119840401371913927083772235924622558307049422018996263494588998892337970797188978208921001892042916162084922122274924277623964356728977533878612412085978959912637917005317450569287463600247574723777958507006391670927407967988084487607741558962695912898191418029290295774810353635830216334976698501860698921554604452172317729473517415225635681507372363806917440326075884275667390705463059974365626748277734384143992571908932546338528633333943175224165979682755621291769355294635110292989551064351325345182097995939157388460859165534933163587176443277793609607940825492596421733889977142016379165150583526421053594744512970227308687809170970473538236134388480210687483230758031318755403333904974062616730092116805067919114538483985979059843354642948211453092994584068395287324409808432999509677667604623061450967568230142020480490641474693658766634074458812098666046375058184147549015924626244928131884190580709722673171136110709695222074282272574936697274879950634221110284655449594186344063437998261813576863564786637792167256298629944713425138364867411325480080325837228681177360375658146078013918593672119610781220146830616774536451733202871841255413996538575888331614140409960912074674734328036670561433572242667195859754745802269411682720471426199396777730262362485853936469063037735524620923623212537237730708524918155744862977787312509150576002034537957697022143792380858143948579680896852460116492449503629915844593109606121076782722261754970083750163241305297413790035065859264985757274670233299496219704121928337040138116837291751423456436382852310944291176609443908745153756522677454197207961824730176692160767480001973908623676893617714782812345280640000702799316084506733138318403273998300724026659521037895675718543833229792242665499872913611550211280711821014816052060803215933793510703045600606867038153030526306965766160831250800881429514277643426530378355379490050173850646035313839527372457938228224490250809066567652412422784003662785751126599676406360571073992138748535806205487136545083937097085701454244769704959962788208931894391526731684661030411815128356591424859950261383310078100466741862687320564045226765378201180370271374353905776136594117065235896020430569599551619500446707174838153343719375617242065137838375544461288594846998272648491388805938356587687161759046077878017518755282269016592640144290727005658366217065817786338297745049524684286919580650737704261616421989829432458020586987495466868888995307768974216611886308933081637544043880403064445245334262525281295120489010381468749526526285727703510142627764704266822277659381081973244041052727698279876314152806828893758006297745588226175382553245072093307644561430486306787654198130354869036411043398208751022099461639073662950078882436648035757905675324529570263176259985454982900883756549800031867302537235969814061630518911586307993904220380530364296250234087753531530719399855942506882562336284332908412965650658231880530742385535507035274711777274788063321686344848087703679651648449205441016588797372833614316738228999323497868554547123683728911285877295168516399311641454992741336992879144199483308318378261384229347247658858356714419317851546276560485047357420762028578577835208751911445133995492658398094162647975786270706371969452537186594777892862476868826650187556981235081042786679822752451770063812352182575241684295481158779863179999523403645089607449750615005548708771618977672180042511690433139118510397897112140304102560115795327858582650735731158350286801796493097739403055889532897526455109217657926855616263472733342489182600711418877896128885583696278490202374016204108464288863267907122585361190365878127087706948078036610682774218025308725796538510427159817844782748047994974665040355424319248328315065433626668177171530249970621955725677897537655590329206377710242348961629840873048543046133744439207578001196636304220168644130286780403240830962744631358417451550031653518146825073538010102679139499314150698433381063350787509131368843445266154783486989063335706785323985345474803764278179176721146804154422420274049868202868841590708402123869868981468554687729926934108818603585755325484859345502994866290917000035522718587196104768355711418731194961607528101523694947107761384221486299335286437324075365786932880857463199494580616502454156448017828964135478911039114387070135203624531346100671509272858831374917462534946523741474962227415900522321196477103818593585539508109943771471578570963897171436964097658501087140149916301849386941828858555639751151116182513514048540618220554692775574009986703371165919352879272219529255403295188149329302925037906881900627393743373346898489454751092211899519919405129524522844557380900646678793790864143434668005289305154388152432261503388536354519015295274392570744206551216301121268061207920466460676601525626307691290100462184183145876195294875837802897963393153558400935862081396059207510168858658138695761901761657055428188196418532351315601841754988020159568407221249047554372333985619518998706818977783018274943048621354262919724236349604709527952541152841106491746516361619440071309154666215486076287296893980081932581721346480681812215904916250217695943015838176002008727959969185084951361605418957323846896150814418002944471240920021273172655825436510964630492427516463051676043778274347399859189654567791774320848938803641229635207038164349812483743939820029444550120227277372882065213731532960340577830702076173257098317478182608909189808137939252353371991159933465319805471739595083878910973837313040314161106229914797532456031078257696209945695790271440342918356332455741545054678746142147407239812666348444378553923481720584778967098296603729832671483664324389866096903190642699607626107343954440547183882657681219641144916281921436378333074745270782163835882296830275010997970394236753258340145498565463105352507875502790329484843883834560543610845507738422628960910259988008238227857468892121241205012842623914728654405007543246550435499058568600015014057732481337229421584222732296825498328668691648595420824672959321381028970963925925732741332901472913068343073039224271496638153036835941820425922239349333630372894220643293893274915994499093453362791396925633084929213437651689600944221146664410336452533040228068471010979310238564308429980738509421435107818457102051645217404940100010142967399537615433789249731624628283259926858743728796621525537236682531710586709621018210816633783028248612579915673991024141884677553530102981115946170902364044371072900300491987910021941985915977282965621144594492506114077392035120369781255129011966631239763909161463253886572929806316388051744151024706578751413976101513152001684090172731648686819215241599924979047228001548643240277601624546454459270691553086915289167493566151036592664484509666675777276311890194025634171976066329361715927605368069427567117753522937480715626678835036855004000855573346043463205743210669290445553373950021578810706861924963679880243796053843761582396898333698130276051652088248203233843353258345319820552395246507099868854468241991820617439129519559394737922899931298277369551586759801186105349963537671783923316202111792337569463459473365863498304192723627471339256319491879671150120043637720214248084645303692149428072391035953597051857530854347243340939911921506372420031466491450110048417934446818065190794782036706900804830130319336889649569212977215716692341528339917061809875656928961955998493222007864497666118420172632704653310868299634668803557021796117842055266305725553785821877346132058616708109046591000085444058307527745629788979585476322232202847732155194594878558940322399675474219838761484022593847183658345412160084606885079566256655811372152603701979190255535129593296921107800001158871945523202648875748355659041814663731795223878617749408318043172543761884660701638446227567933718039298828720708678548447541600927335947535850880497951366681168572921105539715969220162346003390709980877617029467955312170691342661109246462106137867265291623469602582774312595946385638801617654183022578696480103119312112118562432962055688311680183971208697556050220107731488517013351012082555635926874512938978204192976706463662899012443915855534057351859310743949859902340334565360754305943317111601248705171125547902428786692552782511253434647969343473063694397886756225565951551615189133925041425653769931204845996783359734316897500240928036772105744042500676755453537068611381828692778237370275238453647009086526236065572594352624762187904039896017643443730396634889183771688135416662124410838344075708147546942576586510541077764245479864383728371964551738144796672768396347643102489848725829409295580759428738774937796756528767019986807943775270407050649280992790142373762351152730843463947324139208579506382962223428252958386598948367918069621526159223726074332897511206779901682182162151200231970943537528708013697705873508252434345878517243243684564105600914248116008790728603179398601488609526132642240017046925247583433249156088931123934799824670362794796288784161644423722902125291995733209826168783873806716859274468924943426307193588717094310537992925701157091547401693916906897163703461296309514729282184947677782598808803163231814892940834879097875100320955843409490239370152131303868627352801416373984130406752696815239267236434729568117012963987600937756227369928198995588328968152668313309330024477569343168346656824427374146523014227225400181143337911818568445236211273312308193352143842967329708151318303517324533489012408323737791108868920779976883174851365353855762780684610686702276021156530081865193067142816290540169153199680287886451246884071170192711749946768307633524238395604772946997406040998715889775159926011660036780985324297974304574015254314994219453539202216451753931590507791563361372247099955794561943730040481719374857097451904085993222764117782803792962521698162503334602849531239586114248844133497770245697387941872350283264284701054249632687425358046967073745867703391204482211496850619554325216903421512403308823320836604265175115390333324137811532368907663829484731025197411219735342636193373572986856909918071684928009070663047481661269419156250048764745713839437213701229226222048307492994582125534466673114000618730308908553274785456945503744588385782672143632065822479298039263561388400549347204542201512421680751341202955097546710889780392563433653027666087401433051137586435929108012673118396643005040339508945680202381133284387863195942835101536639208556540202635577616459049092242848726888983061617132258519435239847895603313456207365589523542661697437716265321298745958058250485462224407790432670012056560700707201440015272793912912137286919035097525461966787474514957980751722853516663994636054734529560379839018005919184705614253621704990267072355282320409649627132312053889092564284005116202826808772810169835436445396363498041536676945998575789933940281319790405717152490159356286704031904497011498097059787832601282696037079781841760467041805523829308471856434486353056476039205704025945937435250866235180906447883180041623423780951034324673865712259963176558569863063093636925222873260891379548176148879732877253756012586273000240756320839684852739008063902521960702700315305348615797465954272249857735812995253416495150380476125019718848791579017704292517648524189150147686889884061715405235711394537718578319294745033933962500453812274168347562021100803533346233373066316345568380236291254613951218077840871225777501699082001301866758432597088121089171176261574852711669473349007774717400036232175251309356588046006475412732832261075828295833078400983566198258164737258201320851463362541911684843364135571111913853199529043304691153672277510343340408671340049991623458223475260058279109902140211400084732110507117275707821755748934485315623899171407448306052697809030334165013089759661273095271250704536481101650476359415560637302934816959588233912932677319118573785594225764760968847671471278014769931576029216856357325603876763427942420858130249635656334929883079647995595783465355969723144967961431324290836248855969562830234890599947976755117466234788181763049310761373743348084485995450107570331245947372285422412071094433515460508378112512183601943401898639523512259975654984045490084151649251607830364668092220511983473934486803532555906555997350777502089933452744171575386286178511070809564658651353224679877308441112182750307928357282701143645142790081204213586916396111122339148351092102861701453934300718922271298411333340322816835434556484100070488616297427900049502220784820406621707316137633814805139130076153600597642685343391498687948129152417263448450805157472079226993264558691800452162669177941031545328887760812703779171254912547149080773321267087735655452084514858641341063206156643932890488237890870190217232791121990525402079535222674618209447647201426901488597937184686492949111474814408716002979246930448154147874433315887632066717217651692595923705966432837553788707845224076446639532041523685505004467363666078357240080586245866335713951379604205248193606725843024668354312908863550015911448702668679917853465551721382040466380671413122083544371373189167768240274976317845686728819478255189958785683030883266419054404688744786339061745256100290243963845458563557033164407906796826280844017211005655790258435464061432953374553519729011625955466355016208485643254207915107350376284571708180980345034882802972374037695283511371916362016663071647215007593675035849778775441681870212980935120698387375430887641053912013975345497843259636076002401861654814737963246303423717223823560386390180633613972454135819231153401174706181471219636220394656784639587497089903096292974468046992499168097663328639309679111753509053270379561915678961472987213235653370298689196414100726122623157145741058647886549559359053870491510891499803619194093550360299206302181343319989356495104255646728881192545067634246481438725457956450115946859203233135026697096737196742522095356862869058663853990176207622799426399169779683112487315146324581834976519356704122546831869777932593624931367048576474094085610242815157215431918898102156570165163964492889217771101730373708242890887970847506297394270533353555144808116249331611253443623008309387757628600799772297818666400229193446963716359080449884340651891560632731810521564646205713425617597399000827132745259172862972375238890651275384111525797329707559503184174389072899442744063733723708552781647895822020702814273145877112527619661286848787931740452701569406033960868008138245367327981137957796314506059696862709805278823354612201580092318427677823214553575920571348901522564216364143656902068931917516839053587196700334297999762098180427116589243309755555159185409002309654564593549903853113052844839821295183909730416083974979197144629648961813165466216280157473679962957674531956261358986161030017780017877960880158508344232710952845540340345261936247878403070180429830924745250671968357238775350086523885633321807412832659260543744261185394997774997931398202389816311806546793076829696972810356728520527598608916209292007260910028999670787374528395861797874034874343158818760863415867261315221621488143539846849635387985203820518657078420132119715231486142610550019499829932266537398188099062880558020261220267808893318432259046005418785651502387431970573404688746057083600644293480010591640558460819668010008219818831386271457507521261142781293680720129205798980876193256071897378516734767961219230541466205223115569835970116585392290546076353369059749801181110865676789896113314290878802209758244295592629267605319813521366729048619596961062169610798665186238318219806286080147566636303956902993571574119877468648382130133225154779193501970834272214424076556104288247394826941227795854955563027676714186069098547232377142415731888505875487322822370806512406270889188031624690971230067542681644790894742606111876640628070281742149006201243209711075967381708516018871971588523927313415732331573403926833502247585416436648652254523887173350800967166057202988501790134074190086946507669426434744130304020342519825352010014573837116471813750144739290006800418398259019933529064521959296096328216488513063956882633629174729666604774004497157164569897068919494984494026427072071280800238602419294792759320825965483465406182167752032912946418496482143772824846706716708296474198273429291129472109660881036496151061421997841050746938403927975461749428805106760144015074780850352852169551772900774283060520637950755129441977424683854448595539195753228225604252539409700799342454470840211963814732647444174604349372825954709407557747907702359008102040352213513525134469482789873154045061565632503510277219749072925818244347784087457763186256070283451733930974113205635644594421549955686285839409713105232231279652450175509966461897597734635491021294295180795290756178071041338883369700583844445480168369210792346745596791872226967189065036145938962527492112213058909495907101260225888543775290730158288268516072926248088465334692481023587328182663309819929735361991051063159663038917136592376179343446577142631520497786273990767675501002001097015071592767985024823747875240789623364145525855213621707849718499561022519642355986567347101125331925981468228554150757785057999481869876352763446964665238376289983322590192279008493677573253544120420458921951397416758323992692369849083808383587910383081342402133579113616658138831165227080165513341787904766333232272994449392634369147155781759898992269115317537770730724681677605409257143907900468925125154008411637186043606417588357988959815242960756243956554291970403974287811510718106468409071769111069782534038559754280500564898337386276452577281252159317535850217052298161968230878413045827635478132455964443272249824107030956720602659285055488375804785546741211813379668271132609695095503556954487773747359660488333704041451625693964373472542759191200862263011333575264980958842016489496825238173763238013726505399521999510889694167443359611657025808339289490567584418002499152501850603081391847108262581444176477725007924323810694042485824354668927991727287046455106751402539318512746753371077224408207608311861335471119340318982708002366368979818377191065446715941241528925991157925466373756706763558729802754776430413685483371877715220065777129130447896208534733929726883047429788802874313270479185187644391540530544541059874218030929242643310533519218065619515998976094347374240287329915870189998647674921770990938567600589127126586627907024611097045242351030367802413012436846486015499349669766701666904189392405206081707421251319182206552513609640534822900706017517887280424899007476062295628763309478449176349252133460573723757117418121708710503179582665829288118706601035648677274504922245716521561169920188260279548573741560084313104062649817741483881807713491446938333104881733676705461081822428705589282302700357140523654537152617709287176768470953471931297162577339900151693001854527099442041176784081831441593801297781790334926678683186199733392612754855034865915813416157865775326466477820964175197940144877150411902597210290016114012593530023367568141499846671808845788424934703634003345957855606264914401705545874154989178627084702109006385224722948970785036622494502754097812258100014654200044170487946827915296457157591248940240590537874909999178262260043994820047256709020039938031544855323296690133366083116666678706646662226081405742989720987572418204077080288703959502466942188893109852932456551494240701958394477681788628793715938870147461458943772033974857907534706667917298167677118483617864024678876430024321043908190778693894618939923432258700876581364298945046265443048979961387778290564744390042797194781141938558652145760247315806797546955331633480480884088170942589688399433334306076041206044459120906309036370904255341096604228980612615699319712567647694591871405711298979572494173801023118790164888565475861384491535076470314984840701436253530330266553401488459475064936315384952685112468159003728472146797615532501169589897176232193536879395127047056550453144157015465284460144430834688954051370755280484548459976114449165227542546067894083223737939314244512196481108799898219015024543783248858706253107173266999925435742353095664586628161233457186524203820764885728390912846197840305570376803133527541359029543229438004226252785907206184574268028472530109607600430030707103569533050329729312725017731562251523028561778252776946264485063553579230573264751814647032140908098672137007993098329038320196014277142438021155307676366670306958542568524992278223481910940707073858943806189997298713031036116136633835295807650278693275928616604565561720953346220625277445139629042586457395720772938819960764860842039270205101609181194334611793049971002088062938337591589214484106629224857714617813846320356960264529989940900675547395171698052704716990112917128930698920940494569409397711389459106219569145716859109140479964272484629488059865230236368204232198652705055514282038051191978332129555540265412443836366426609653996892233707656805882920109474914025372335684876675611344886585769167121251027797269220000999253587184729196882233401684677905540071719223476597325599931609906456901467478877143394969130785584415429756232658526582947335499730946113537259725218678686330806769516619511440542536676651470143859962958633864312312551471576772418650760999485907980171913661316202360209089687192254313843629220785422327033582245124245723429207530912328833225032321900328394797632903475610517329746876976282357311297053241230533942017023582245901033212822519786982518601458520586821330659539295202927233076529846629028429803716101884058134096826145716513558694196093025120161490026192199434091047987141300010355087356560179502063501045222239768013548350563768786144310831650735681717404782441904282827463399076653915559584333763833726519159651184901840751213272555745969575562266342991789875945829484682625852492151137066650303110277421004431197657141878770662320366858489493439681017770855804474272039793295872753786793923501210211959397378004401212196554811440788865156410639097821642778239453574006299697563944717467106679556423810527861728842835018056793228704546659633122464265576827758506514452790209126091452569648156747221863790562801484718244058047214920238169400958213124042841555926593339522863218255873360765380696096474857448871877636049463378012674675763132037128512940543776936827762001526990687110075270070895653449183504404524430946748118118340188073132657464631440080766853892877388894271924296050518192303441900166809700480429858691098932291562698151909470025964932273152266071160114109054684537725982524782754781481123910105936252804186007529215179346344021811470641264262602987172025174467102358378979840023558187391077590207880070323107369918110978522693565417617599869238799630761872524558855838957127663627016240762939813223155218580509075409469105631085118733256546541220647022680333821057192344421522923576042263134859807904639632104819315174156249876849169853329093297749108051640786082194231901351681633878696989223227767722175298328133018273397501377192398804475528310305639987906271248558670204045561891786969526732628078737462431986114678555472766388676139772734677732241056657188089525581540557990823603711456504310155138716622923888600124703971218161897501324708629050627598021679061328135082522835490883415064410708353005047623815674962375718778741133335488468799343597771983404256653029441028094473099965276166059484739529497949790456935727322864004219040775244224141515339356396855887993866701414405624557978965798886587743070199277055308840991792290693898540263308602329305446337824786431214819477316655095106724291554482552506846668119617584350734784477062913206868865323369949746078725070770859555998081517193716341442455832038445733052265172911135005979775069961212922701073240742384180376567070158479534949673925781273140628167537172375674478389786815347863598363320520022686996920705702294639684291381636924653733427851432570659874247683722505572015938351865571338375216592089495081669923500574079634549998435519774742462597484472072915115144884494705485328425119069316156788002464150283301327108148122129268111342613757817052345521174472058859501197198872249391471478698801413536602698140655547569805726626018052610890575185103436340615765502264147543578046406287438914836883006110711496084362819104382110792594010811095213528176009867224513449533100993929140528320313156703312751403743235118553043458925595313281841440195888590478406979411247195127613909757314879917187235221176106125172882132310782382140400619580766099499297681487808148670366970114847448731430097457370381059688726482562050221141162679566803613774409809123794596004940064965547247786199679993961654461515634149692393490451272677734035788732493412779465720534758191403924169688320557642416634001399862647698586985796719634966401171585136816836780592533755229023211598471838114946771924608029666539472517686714626351514662240313830288949226110040528523515063128147219733916290243741676738155962053375888333885774347151741751816737889983888376712082928226102245782017723957560089287894764667633718671278857037182483650079806669270418010402167172611801437199314333920489181865160631066337011021059112276383072783824093693544792067685835630848331129644304843537096234390940480203669429580999431056022702414460707375241138112086066146109322168873439753533859011244206209338185911234929327759817484873427866017824108723039755371438545185126283970656693605489403201232187096150922977877147914280608739994988944771746168922477001939043056917971949721678600450350707876117435308287274670004044594013984661332041960037189482071766073800689547190354224946186361508175292625073988729090283340373113755158818939207057882625465055850538657811247340071599533955927096615176096546748545810558937372040933797797784449495072308151996957585353023680600415940322486579096749477418949342048543533596529371184620033137103329209316832319754465534205071514458909696712297622651199904358090357500252662703397828072878793518509417043531329966630138863119171925483668292807119498016198544327841031691665023043311363053591264429506910996718199617813465234570240178204281962811248376226654824375366564361245659561708248249145336615591017079921490654965610171144641963826052428447884057988452175104911182289892298279435130387736080605927234627974221993285088810405260651712166703138425252037442852093045779201133591947474505803412425496810584553123755921436470674409863150154187212776272378677342944786846425336802088799639558167275893646244906573104547222403799588606814131294897573233946982155292930822761933961631834949427521721233286842110986691691225762799588126197661480650136050210962608762927747006786569794347348960983625329854465758543047448275688249133989309894299461075912698236432070116628054853326689421281712255006090201405271812735948257353747753490634197287444399876081393258982102399660710995180605137831603736427987108881492529387158637059838895921208224294931689636622120284620107562878180857787259197282991471838533177640087761933099825848228470702604192981296802061084059024485703442907236475673401133610609172412143871595748677461226931456995113331711028680990783608381819389444052346701717292315760605180412271685504185897152948994409899529991959261604412760908675466844375611435939222906571377956354220769172135464292091295464964600159866473489116099019404682333749263899121377259709923411326087034490424213187098631636789533344196940661323076268855724411651528035740510768633774787965045568263956900165959504400345908040092731127288755464085065065262088424832197204906960857575007320688091299508554782267525550974785387049531846101545574976133564346499094397517558878162269947367921018043393230671976416226895641173451526793478927673940552288281751869357381062309115772982579928580677416515658922108970179458581409922765290661983115689523323747063309721085772987144761566634243226280673789228407809169929975719784661868906770411357828035506151168815390647147443566528246126262827409618822545208504873539908174138692960842523385120146935584910591837573412641517804161985548690892540099555514642204921677846489718845359782477568580887345299292119691701967022799344810177447813100578331054252910142895782797135143546355390984366701078284415139026354442780376556961428336707206813811121181705247401578129813291911772528331797376407159421062323741249605435518965617929403141031865426775588290398216964515705598832758556677548493097471064633746197842540783590797962906453638179644574640248072401223313805409759335351280442511696709596109015053617813457758822112993676826857437767681720588634645242073096844730583935345413270761028980615276798422931758270656945410996311479493252074929869674017783843741731020160914533052001924861045133054696273899445317843650439652986183426788539630651456425116711849907243519271898238661632723957374409500649599288916267252343990538785854012540292461595659394600921698614177027934753252828184278996158556835399993554077729096394270447743201593778154664840424026089226485718979090767993895248929005999276792858595189442973982551259049245599764393509124082380382234908353047594660969473631767197179178927483776058805504605046912782988825741714923642331372505736101148314687146274471110964164900382972960499659727099591736797881701336685840580338392516030326180833514668180909300695259054397409950481272941319408413511822650832725791980922983482642053780689155220783184634894379588084535355186559945925818486237599261464267524368149383028377218248866755180261861479857458673109403322940528011319019153431144825552823982543652101708221464212656397382316477177283910352474130746813302863084469972733322902957807668213570801783987398146182288882009757354157848553588151628249664607764683403197921303252862581513904439641314895218566838108437868101544699858603507201299493093567337166457795757536640089384239351813921723718591357235077006411931966345162914576789828902569764259157334317689846056855508209763447610957178752128968106496821808562144309590899468371074763237333739802092760115219719004563663831534799564675551430594929503243196215298486229373565610101226103621138420638960389406460599935716546324532225071212714853106997098061944242922271811758877962159233544075472596682925518754209912761371421569869382637922004378585543264110966383637986008283994392719281968271755606524252093865023972348363837698529313842572288944409330450330154986226418583302201414385159407848332682837820748042143794639409074608986617363028522366020510252058904918427808070160202359255141254906468917964189671034758754544724043565365221232007982425716849676943637265712948406235615169302237844332093145763637563499061458356999627293388760128134571727056406048018001031557115868058254610580427724440615472651199844550985667749643386676451279039381852461143352363182665356031786606003357853456992082104765610166467991717923132136125744738867743505799936052656003980533103098033377259262204428778820607172573022199861342495964291627210712607053195322991818912320501338858831035602144525255115044715038311073412415311889333465564984947976098178755428304887228090492646169531882026358518917087997640289551558206116905559721956237124038783722907387792425073744636281538633203640258570223364513634153344958518547882587426930395706389866030554721975728360530849018065839324441731260838822027122103754050383429082070603095764057609655894923626794602646018589905832330621810046054950674802642222973623345856207827362777385613379711432192635640642279676860850320185049653040801371582435866172515181362051066753018355447957724731084869718039861736166927183751749443049262438854955450131959660624463722253646616153799765291439203005553523300634823986073041656250551380758209493075558071920677923658105275446021887373886037311738115836644125325952165594430187496265041639142538266168525725676183278020055127901651169938861603056474821228284182702543596010641448123116110129695378114140567157916923577312073179536706243737667071193095751515593332458232493149477268829181625416181933215559376578068308779040551903874442902015403985966555716925803274568837759937252697559465258778737990123193483956948004906369634133162674954902229153028423437238487653362453093539738085737736225070551024423246390849667444619927837696746390609913245031297126126470568547916089295991885357579042002628638697779723886751426140980282043863067348111605748612737031615252683125210903273728445399444632535590485286759624828193061698907969494895934655462256105786121632116957407227635394351302282467285696959973563367807438809249642934637409443157668161674163259150684492703869556673061557321883381559886288923026909164051316560586312167411230211431286282248006102045485511083275043381153704120464694355302979472376508607977387530552976254044989559952521545651120511024431269404182412826579051865497726364327809420717129641148552705886771240996989569208956164798885920601197695029620256503077782436956486252720434931976713057836949854742885670988110247166750739715427053483170759958578499987143931404602009953421835999720021226561109562132157060596831235211843794543850266178635732507358254769635679371442004553962277845546516471143732324999586033614660082318938363037566336342156100579289120166425508304489102762517651829683142521420543117126828295775747337181038697967806125046685906784297189965665255012069318304883830210246149366079201178067487293616014506944624409620984171241450332581725690954402567057597609568735280081280579472534171750152829779046607559968663289583871454473271686684555317936680460254634132667555021116441840425240902732528701379562264086193198461365150943820310297238666827784369394534657994799084942856335954752711421300335054983263068817396366600930458887197528357660880334683972925991430641977426200305017650094318929649849495009632568854737376658312898142259577640682219170281368629002779912862730336482192950544823885159790272228985969115152044752013564391324128116036886004586946128253461523364342001197740633845259901645576653460677762838983585405297315445448755788720567257560525372676654535024745366645454167733397582629936614369313635398834696503684367510478891634207809505271926959963110666093807311583924177474722745226239165634219666996241487108268878523445768478379577310878037661021802858951010943638484315406332368547473683376806025184558356665650721311938945586730135547118649559670563412102116723962974804837083170594787556832181901145677464454976674737127940447013361448033224599008453997662437835998848958092224403140793954583381187545164494193701823543330842546468604902292989749895675121661313621207076541498862201952326268761828847230034244415949304773211135015847499848004612292712821615715720454144385165468478108847372763190408729439573957920026614651177919176640755567268316026331287815062434522842794555614429726777366644023170723719050340679483560184883392582875642777171799120881266142140033346039700697472002328127162858546916755200862894373170119215647523113422032459897506164342296603958257639338963002768296837658815896262479052309531210536801129226265710444781832991300834493202845464797594321589387661519601466901128494155724642546875250393854338922120030860290282812664862485513893293639700044089738200365090408541196080356795401347471702479968473772796455730160879707134685633295085219714434141883844831663393873897995432444592029948472843429537235326996831897799724686316630381386897234590523512284471840717130154882699478447470241365345561037768287395899927123250833997491022344508094070298630466155306695060133406978696958918337261832757897857415886635673772124299503763779294971550126218450071754037259397867301804375856884613510194670717699513834639109126224115129885943480335739074580483529989005961036349749211945480630497189127094306532332882614630497499036882348289264485114911670798876595540285051365576904139615354831947059534358194339839746936788333710630102103624450878168316755946533882250827281189212831464202481745872306712410800949809017481994480506876664291683118790402024661925038246089216623922328510317949954423116098161173843206414965799872892236467733509122125310675075010273045199760668548237244938601379931379060110032626605218529474247272592668294510530342470020957591020215187916465921908926411611924288921630395860764741246179313747554441470471965396684884514737945964272888549683970471186666605785015222459617787183729868245313240618583936933991027877155540192058215704327693890505009439240879212151196263401438763786378005118040793559382563544315971401528333363836934804662707600790829842882998649152888063067150385282916476092257968714906669129634215636463389015201941461927604824008116233736315591766508255975922398458466643599916097016490417768832578254207633454873336134051528817736995869397585275086563372883683461443817188806933012897077207162113811046250488437223413875443963984812730208659919650417593732235029983592760897102966253587218760451556309371679150442303834095815021432173406870767921236160598113475569553125799984568281453549176907108782364092234207603588398275299446401783650416145859234409193261139384245017411403453088170157774450823740311142711318971431286565624916637688256824078321204990259085021246389121565163794970440546620919333261195441413439536161630867015376415430997022579485394128226078453261349850098395900745689400531778140027213024428417957666145883513710886692254344288440339358989758726621131585184618027097012328395712035557034735103922236385024486519442033833011086699003250776644263035589495621120191190546866693610062238533188820609998552756900741979969225685497338136557899338552883166353954732095061070734365913868546020043497349414915737029878509624281218861695720353649780526405751195078928144919062854379082505587578006005868068411441716367303432452473505658814191885901834458845083399142390527368967892660721841046632693823783747406012823435742178291428312705526544931712061807813219268094422989793224304532556161654780525033755572609150059160145855783606247423802484523094967390900498667182141216498376693190736843795095698710467351802943879191045054748454595522124741708284823634604400502017642203788351497884302293307566992970020808406842060064601631146199690159129712657846662572107149200067819070433787810443165905440753224866638868104274621583315616388433658328184134179768442208793694248190748002576358544869667347962234583105990011030217774871650797178076460588997562500215617689049522015682318268390258910695714437127853854843552794430935283957827643017432385062397873027087278960660972053587840394451441317476074982802063195525218391818468955683622889492209305362590634457157568615816081115451383161726888407385299081132412504747355625496450543237430868732895888822101020385799031457281630113578083621119134784149114383513735408628603590249173865186791256287140233881743019024937235594398238117603032939990604890052550614510426251648367779046300258581468831518319455559955103936464531810223908854197988114749073408196839400425252289033687607010004441223472193061518694096822352240219040568281590363874862935676683311728842505101715318510059653779383124051405589086129597167677805444064680602703644285763291750799936441538803401794099757947990144737028336455374091429217375936820192849485095567455073443574345259877056601313379120151128981399877747805187484762055976808109022771596648169481700490722173613354724740209234867809201279336049420011059245963136495876529890654283603594316559194727513136474611738104091397123160170378212370879412023574600111118254001868183980264716009747102192123554066240604899349246038951638460195192946246806148271629192563959648590507335547242615167339861555908824123840494065121268515955703391598596727681106571907639823474799030860230417461096862927988526276858386518153480614634034512440594166465389051443775984695492668516626374628432860233195504103164100114450507450699903919725720892908547918871200964579486230006937600697731597514348581192934227858843941901517594033496308723707987279588336395343518848330267301230473844916873730351594014023204716269441414381064137095450497680348625374434621108003275828132672390454246274564426752840374493549277232129323192480687955109416069520232453795516126832508313972322360535755126913717860068080396246405876530092092068842071787504150677146283152264581703274752760238891413319223745439911822008418739035665950086475818645449130391833715481868329226078157965754115583145082793155065124333710687734547039159721508865915695775791934074395486414385338767275839547665818895771397784238926207043612303732909387192506253779949784847099381053011731666864817685288052809272893376436615937531301046735512867407048458089382866722312751098729402685113757295550512127396292893224681059670237518337124588983566282078499942517913822368279488761202236663420965249672269506557632717974275157123947523139830267184446999611634250705660114596521055826637717521314315762978929812576614074946053727848609576695753627318055928576567929719448912378491601566681141799051675481448129602777347576918032579167929198987105960910245159450538459985123520363351233105558137242892537994065295125454688564496238489232044356491466111244727944874358179917361176303382881360201364537490827933817037654503028126586544529809222658835084218906856824840927211843704715459846030558848328156506389606291084757750900167249849643715487137208609144107830809358696133517426086370879516225833002475747813567640614382609023026557689437111452806098403676203362491644146822536803019346063321757109542857247509868836482709654317204552561993239637653286128152305656748942428136759749459913324885092403693203466239294973746048094062254163900932384536409849958755135005865745448687096325382086372949464846796910056394000828869278057421496764116338544149839315015891250647010955506168311596359444215992021086367370433636973123992573078632600825962772215405634170271062496961388012257580234693154991622279091508232783609594252340894598833961614979104143725013127667175335476165613547668823489729024158467936956730110953771793708603901286114854426698071291557784593448351585262344297662147675637605806070119546459504096479564460552746223156266093468315696947206263170736597984322912938582040562929493641152585706385861258805933998948074917978924633527369529395070896520431650130760327844298036740628199289357106991279829802269057665100201203453624012898814132285407262681656969295278805292921305278032519297007670615856798567782380460379573114665290665045443018256768825365050070484625654918683582545036737495931028041840907401812005915965717563435784256518386299769363806147984569358537997490930763070299460793414718055661727610246888716300994444917762253592367222051095889134100777453491409154258737966070262162923893920639333155580813977901860173422207714320561425351895636698093609757605695123739564398945961368760147497054733081311207255247375376779642038722035061640391791720192258667017131352620909246476523874811789960291246530422959718631237636989442140234545332247965580509379269243546240298681636572495527858012720121739463967542709405523201104538233980032298189786778399042738479430703213491689667296341233548241651889182963689852651477554345572139596280194608969772662084014859521838424296137087266866929042319691113838731651357021262029111771058802678837378897753381413382373047882555298375646725561636265335198437729208304885633352694377623523032219923177949037617821648271545140725226822176733297982035605399201617695680117606792213394303023342047948244018561853750929399913660734146357871989065101679672171811621879937407764347041041289961031202004974274770004204415788439372424187863243276620562857030429063414594238476115394856736594072096840306703443045020098420486353409199662592618583350218925455058973607131666207505491749886601794148954931188315207270049982644656920855685032441414747093781422492425140931454299473021596288890219877985947660030204380734437840756754944386812420345468529038601488956807967407638380776907192877444475137656522881424114932949275719549305884978312334242352849323556139025143477763357439308566899358901653361312450631279082785812420666518561384490121821484146639766313280485630190286597199803364066782078174184115982504364984307520385051044005987375114024083630841094121582058378974849480148402053669309734411323128768364605513286217383242794940645881474368559284787628012086163625971347562633772614318472184550612932045405943265740981610514842738635055631212566810388970789015921448286880380911068402589943189064469086975472474546586130872847506117782580718128009932299658606043440761085214636962149957894115819743998852349970439733995669963076702401766406171391157964134163891761260352429777842431180849992428908567786193505801408993617157764794886751160106119640146218887486710551776440084372654305418664979419195343182401076396210398036049390566019674939900336859290186742110419473499958005669477883571163101005975421103257762949934392302449843313477004229650065670567328034053368329835821651925586350146589475330199690041985915298002345262046574805355277090237377311983437054352192347012673070908812521132826604433473163767263741598092548786245328335122113735867183033470639919862648929301376059046218237697405287487453657775370211642215774111603186741855016108165924824247207734656471017594508106869697648139347236899467385667059849066127506980353733505025153408087950282390037398110411220044740809723419405612017020404876406423974023257194038812354818051839455134441831637056077435112052694824558325091419237050147963341588317373176307593535464385460752549447469835698770904305593262813349037257252150932575644496055877796105708739048877749597855641786312481936227921531086231995379411167126143505408254123155763413683213965485773971270868718857300413203903476989724110072820309641351256642837559493678004581829075988200062648368655074671955283578748336471704144851179436736801504243446798082590187213459613187833892216401859864593734430128183428007312175881671940464391380350994469054346499975038006584680058374134349340701841035203145810881065496773136288882717368073544982612781608744806084622704024568294884407701760308766912771500343315471706056734779300435285428010537757924866363947728475711606992214571978387178971125422839027312817601187139119485351516711331630082797478345123064128029596424781698556210958358035065966757004419108525611945952529153389445706108385339162127400258818855114386455815260318880135263760950487163642319354057265015167521073508845261541721417431174807257150294750074726741913862295213354424815100408511518687237721070980489129595354474619402575758193145607171510222640274131723062828168381435459435195552441897484807819121431915980661046908034912511231853758827785474188090569147351088367165934110505677905787038878682468659997322399060021965849271984396833993844279602213941534634227930241405804457989027886263631583848511456846930867027929867217561117323511274762623685516779251738869754547340630025750753934676607498217550228613096667620457997043446432327382575466191077038439968377283256204801292500134095653810081565852162007016978391933696258353332728694047694167181975735185116561709415519233216867761006446406749116023786610115127864113732230357597127443445780470510487767205030026502086458639446648387463532447295150369375652458334119469053776198449621604110351858043234077066264982301458989776578325646908553328036528529169829298466716450278249381759597254004023924147710941024743076561507812190850200689821874110734120719343833597873208184058061038559744353564844888817864027466208870660545480029078313410472090430578465761238354590262990706383939977634244165295765373576517284066645991649183534823231037882058990092357120818961167600916429523241226595427566751830432373542339902446954625787175573368446762393563941600275326424324898770109884732880522427401976718170376062901097749599814056424800658548294804460406774075777265785210503913654819552094699809947362831221714683619536211597135903154717895001951889577245138255069939899965512524229227046788572699785292590834568766889077008920012187287881142428050775120252771638476648232020938543701580756991078443291013653539172354027914335715495193068171737755018324472515209853631576607697906976482775849679587971651692939912049578207128174795599991728447265086500887151286181359530413366470733148361215365326014042893436275684767465714842511698245366192633258614505589778025406344148639632779246790455965875265327011179849459280057108958647444526100226664924043206073876019310348214755919830172119380747537291986942366459113419998727719902532268875432606782913908301027912665607778413672100940511240025719729141306615247392763172927595361243874640506440045806590307351969819464568673927737948727245108060320710289414135898064205330228810997269151260363411494634184117791343650820353097765795803386316962581760410717331159815231298287773721129121072016611962646379101619936446501369876242013420261069763050437978798401725654281606398456167117810968200759331367641920220112747069754932050089300663062315612029394944371800561487866603288347590238285785457170128367656015740342749686574793380195959521349172782264490137955255353490098662609909970201817298201660107382713156662205909781870110330910309153021996765219275224463910442840015285956226817027473342945322105200845642375275766072943660656095982890648574043091424203304912123298269168602637078187400831796795287947526237799850264492684591857072371163291302858283745583182586931773912465837037441896083554690759338559199962759888348080198451038993757044371581817831259334046726135338319212397913060673328961088433345307405668367981851725819515323964197297608902762034144159111131179396747569529592734245076983279117253116285685688917007942634171099814255756063209870164703308583068982058718019029325303898978867783142069632256915447129179722091022029988944482863964677756081205703132915126568841490992818339590225643137059280120222516448619635634942167914107910929498219725471718004906291201977830536011479346537084689023349942249552977234717335235621635338874095873725109298462038478387940964728528808887302956976494381324452803971012503490343523039286004138904569165260651844067475457779976957063621888953386890835971183864090369578808221715617822531254117988299085629628098214633860329197125338821980583548789316374030414766852273166922272728134230015559463872230965427313845751577167247641241150201509650845881018173942910231922723323810395048471395481146054386242699011990174523337626661774093228458209752549701738112412744706937587774459477647966930113154536256730605002866545477256626177364030065125870943129505513515945807105003806779244912938275062897489408479303255832376279027294064480300796100839078135244532344286804712454599815041400314674917949954567531683580220132546005119787721770069390357448790803277951666467938362641454785822790487048010382994381927927892339743822285816426243233423829013373897425742188714641719324872923206031437114339925580381071536745966604003567834095912253814521736674882151943336857733697701367180834958768173688076001732524516894042986068983015584784127619040389626857607713600223142796839149533415229139665636290633596610759531960968755115930294544692567992436227434781000389325837155902730709432512176386854294633244188923175227592678587360503001794707076698839497548248162407686333564332399912958340523537112720694695412704515532340364872316558579085652544195182431971893376022710691041329166406280765556470388041673732609967156619728811868152863210939109520614503952132288384646274065379659628073172954577252168366219652125981161955687755785315599064266063182718302005801843137442315325651326637667694677021604440756275550416078659123508216156330429869591869268898811678008463329613201528946188955555512530006117831333055883333774296107314992081486695092274875104576859552595549595129183228537889101321166294047793516297828622756866504335349396338868730309352230620775409082682438609728968359504358372756164088721992890656828699920236355957686910876236010121594935681432332440770248101013356278887894290637852808011239932672372397043555501369937917978536599677912533121932096999585671066787846848305030563429552518360177947406969274653073899974987911921587679214090057852988791826772761981268963028867959096208443750097738697179769702846414296470202103623920315762851969118304223363395636132806826555291998612517640028015701002127060466134196276414562824462533599409328253575494381533712413875598007784558157885654337552017729823714634802756114068951682360917948206975646581826422323468462708847158403997089692326063489989870256073774104251349199553286717411413197781948885894185866243978002468631134964631076360830240163247409924433314701495965229907170347407308653040629035832627453457341301556555788017547348908217096901543176956487057839843088361479213081748515080725027396074557045887980753080628043019570799382226369015323300899578555900855241120540413113537742912296476800608874216119402835467791482760585113272406750254869251992827524905956724768898016366266497052490354866927318693180300735244613931371725960314084035903835596774323429884557270915298194846870206220730683634683544559823092488637772218660209404507336192267027766948178645087179531620469411118872152684192236219925694777810138326447923514446905969078250747265321031926350095287573110683224248436339981939412433473508259686530594191979727847503063304201832713565429878120480378354394160831126485597829755476341078099672173736235480493745134964013743240172279976277395963644463482043455915406553351776250853350815963139769659874559239226662064649931945123862839436580369334271837114775771878840501862813071779357671482458546363560660631511383582333474706942828613406817840038284011807520739680664976561445489567237714883457526003137531793722442099661842829973976760158184521484177545448234966246727298025294231066701593761896647488973990601958847311449066469935485488014350587017088523384968382402506419385255870121911740608010208807256106336096103542638526902703275154674894008888833697982500798768334633356468600668454220139365401134115875222880540668159598730360257431015824495420050117983259006511312561014375713056290260756688191879045413331008191153829144737088962705370874136017784211681303378768152186207075366625041507613614239539325769537192716589435992712014455811607403026022817041322880801817246394752641052171839629349273153053470816090396492431311201396754139420615081181927179532532805180302689709949752888379611230947752128414807430755927708334334402559599536781813243287040262475779586039140597507397220875458792490370929327338507589992494064733855557873173519621281616698967946968550639424847730064263333397465783720697312205244779651068571691401699972483670876124611701224231514194881962973723808902993869259485397513755431656973423758152029925619840803854474578292250512955714564669341275638712089953655033444383722271309675929315193537461954993168881011992298200958551471387592875663390190069456555075308479488713762143736575386622000841677473819216251872126586854517030588615519197624768490683386889173523015104862567971063877211295805507313468106079465589185801753434269261990551124830174664510846755347847493439599586096326330930437843711399768609373749874194991558817209684779127627511843112450721939404725614328601536846745401943462726480855978966516047455505751137450738565562070056629564129679101497658952505612289309207301514071990110105255982030064905930467525467213745861960730673928950060144694801101278542449938817802674487303692206223450735182854533882718861789367954476474111189624262197374047128882119203890826622534402391782993558513141362288000688474133608268260881081943879696693294423016025861303432990245657318498097979960707921768691837431251129052959853983272542097477221171801524777834075977328403013363688583493867407504854909953412576363929202674727049267374313529364991184146132570586816591091724020771414144412858986783066427015567430996521137286272756439417449358058761985702566377183083091977639476786013013610034378423692679279364939857109562776161498737530834380222572557917599483346634357886181884233792788045827324928394408924428618028080865875155640903246793946194978019916728457552881134921143212991814521911262260115985175755559884927540976572313715061139467502988120764062235531701435549665038590562053615210769952650097616452819890584741513103705403939967182160434860087403037492140755352696508342550497112568193883866411509248125709509077256888550565981765544597201114640642360654342068539665971385240413718135221580139615888625118664402461560587362444038391959209825027936806388295907884269913268557720070627781444370210405282113119164042721432169234995984505028967564007166743778530820241975634958745204958349442433231388065233481274471094236079249102455312618140414754687396624004523876057947020605700979733417795688121942377644996384041320731245392753985345950527951987877264119154486121761100623125706537906276960345623536149185405331870989818865966691417415139383042028353332923697145097532179531687553224679192964251737003035958856800190567803566921149342846662368377814159243524744369167332237036485077052301719808160618250938231169775986478380884619591122371827079788300947568656624495704597785388011647471948482779925636779028244111387803650324301425609154023506967770931215785207022623460671945643865103819306644075253759877960478275034798781698155483412261109591864165065183548291860440841252753831205514005507140005544392484594349867195633746751304419274195416875176158252885504749805900809391188761472185488674363536083037308978822374778083947226006807786843982336904134465236829606411080779090828724743567912995688862263284463495071409708586972171935017002326923822833045417597051252490764686831018464720723546162656271275875603341600150429410542631255101432184397347768373580884635756274072453260298540794944303894795850492911527292705486754740548398907225508702811240042639616106970565337217244500352020283405184282120700570095116620990503582391609221871814300253987574645332689185697573781063058680769468480277700629371180798145776461424718359308940063932658319895523349112233138074415731592772674117327960994290848237961213829652550863842976795935989279662485112806670298806587173917872652602317980378527820338254149447520354762731542166242455921272340967165931847330159173645487256776227763396388810898818222030969452837836422745133615501361029748309136470655504279537221357239857500147080275177286882187787823586235055782140023116436705300194736940142744053918887843721135433993091543500900664602649227818463864026739510525045402269541173437502014334700393876743711396861706193707107750979701498103580093484297058627347713422456898125916731788500494960538683621049460988033825040883301248479342595864733417748431137742168961863031664010069683502405056148069443552842006617304962502693044423776644549923644348129701142524403347128793161147734263795511055597599078752738267964603317728937779703476271845101829035116471344635250576005411833708422157977632295453863157711427833764915447516015360429161052198506708877953541530915811579253997131595209560637518110837181918079060997390414336744870512078436632599129759533785920340098404818827470401288944995029998762032664601587751084088140537290699943108510941440636513341757000023279565975762350138820376253202601433819331008754319420329369872530897642709786979500909656993041799162673962914302212696618845046963748540924151979575486562319359819462175974446713317416538222445142956176464713872285851342230650666085148330872076753932594646421667490489056694800212888459704643501504956617396101972991746005540563330358111605111969714104397637722264822695385052312890391882655571828654569962956149724413575983945756363495641023566900776748940656617372718126975514203044378830831189477811434149375213583683415742583172240150857300050158285428420363520298066127908103433594497210957489902154237727165525648655798676456005991524483178585628827713942577984530050025051069496856773255366990346755040036344307694984029594013713864141558422882743559892545975744060639587988348926765556885596436075822250628502157636234473630796338229050309156279645103964458192802834477450071014872909373783134806172399455778876570335462854327592395495991296720456222893865857063521659411448650358510927388794932101901527066698440989520803520314340820689463026872238726657068965185067985562444809993727844800910426765661738716692169389564838270676292548361323071308392297303918261076368166229209520430138242300875371350395663117948696440808979075915088365025126581705466327183899134762896094273694807418451950488230810734342974357621779294518088571245989755343084336010017848039650632061753763949903888963107999903101336786101964489519126307961668249954457625884868375626209206149050546292165531889123420930547569258414649660738481369379370178572557650393458738930415008207882789509182611526543055680162600824702826124856898008624397567693173747724520151547794918085206381200006296979897689979709119515684936114104961667756584698229654358468635822327428330506078638787055499727716393925194344685635728438296959515894424365473491457851543665247715240999846638080582276031595461687820411204033302310338202779839051205923390949990357340234892995898140806591071491445889580016697244761871088090140868548604194196321704166157067127742169471723129809045734887228082777662986180534021714133394733131582569841630546939383506045821687338134524708446168598807897123459471957311549661937083619954566658624925654214481202767446804417674192067140611275087627380387991618511069867769054526475900402352534021937670679724172348816134917763636396871153198989508833671311894671470528499606445248654461375374216137068303799931030908089198247201240912661839387091048713305751062553927888897091385103021152875544334906001950647319237299563194238383574241316656813395447036122571985488415330356420193310324951409083276658572026906996271330847447376823932853997037292296242161591397336156182448337426733764766803503503303294518914941127195288174452986483629350224769173566000318586247228172458491875513086184922412958441921382747797478796460857237931818496300017145018425421892969602427039118400187542947921936156704596676379907901846380841090339146729076292348818819639812997140084654945586791025014555119681041896189028648586425976308492126152313472908988486727929398245492907167204037743280755415212237544180576454452229081909774630705467749182989832407568904874998188105145130590038669183026394241587604056253538210569019536176410102986371805415923634097094736831072807883071423323067938025252311571440993812301130159056222834536547761731735560589632592237499677243015294652446203913933317768986492352701370997764128003045051911700477617492054430062296093294819296212271594165790416542468309122162113808864221123630026269413320326806918958656097495394490211916037428039543587127185651562797238024430565592866222269001609792948782410814775741458442220898399024790375853550569869904931553612001546507074666315566990405808942834957675406098626983810516523462742173408207218874117690832860819084210177114728184113093694790214359940070047480802820773746692059210121037419369255668150758702912116296303141832119717208086223083763842950859875891571610042106138260741372410007229352676827030620318667313578504797775174697585502289162135312309117589720318312200349342923085643873340573011136379209951362826667005850254736480046107844420384459788964950646748382635470378339877903256359017031940001271353734335473794641699217358950588744464948548885266535929495918873362150345251149442739121098018474096826846462076972897162538610021737760470592960755568291980046664455880453857860082987954363736293211487981300130871416988025752574199946630572501382410726075193407058489552611306998808586144863178504404391430637630418604758870863174351651899706355591518074024918782177657311840315220179348427321933582846667675631987326641984874984775530029703325934422059954965057577087884456720311146222701741875483434007736003593612817402780466583629225245477140999560721597645087516561697405463983686587400836571209457126181129135943043502587330711222103403617020201039796806248174040821476845167572501841147768656016266725682924076361588414937270349839245182195805705012993419833869200723503526639939406869010365110146565788578753067533704084577676381354235335606597811105551479070793670020188649796676484300385465881399772947629728891147175838780819596922474370146650682643922353242197671222063522696663523243989686878144342857562900337081876617551404364274448450639447029804517290300845582117920588973268920314200602383841460565844300380993956423948312550828669331467502438756220109616073413880040987961010314749719714903709568670673366112509488298971797523231298720381343417267318637175125960499292647795099956958572962480078545586652647151058179902673480310084733973704862658411122830223588905003852812054901456038625552651993554370494242284418130623814456093947628483465412165159198197879817531076941783370390344602237523945095264868679960695207206488644989306533917536336689818501973674437490052933889874401324661677102251432885051804567345285537470245467696696172126266415943873174074831916830836536888778841945613303066584059141093610743618007088410366036294604082386713223497256218077810720840880451736135928406806123602106174032348757995121529654729845759203882530852945421044237711268430456357327240081055588259978034574449839455882376839912291968100367882466729193216893015130712054304198335511543253740949967090881362284546488483557818333913139114932336841240440350738103486835032776648374994885280653350018003168591498216592240008423497619180420327550092415433480214296983029024304723245773566427686058795280947292417838352869310974767094598214687456767161936004488667929257544548479497805221321918724130418038078178029988688345624756415742632491806988608994512245735703454849183368300730970796154198417972100674567737070804998161050583924282610577105540003542154450311328691452232443594467833582002838752636509355333860487301309432050796735157212688764752655639839252446018738854169565897990378997627086183631238481522891202516012800008566634100132725810504225596555399219135658983625511655647062370638905294430316679865073520870005951310806099783956030891550739143455351017684632580742707680777530223344051120251219276657820419742936997756379384035829913469659986672369785474407746748220106027602143371113133048015033240670232680865241506272947488925451596201916157074269792338724426620308796492881723982350885920751689073044646638693585494140129544660371850113344807848364118165533831760616374820756577774853969288491325425939815948832052530730799845381816403209393570333475121585496701296035585975829662562328246662665778380186913331484698190746611496249604079011033229894348891633397762125035304318807594309054123885865378834773235149284106400703484923184402032480854099412765725658204171311941090802276005916902065148583735543085284755997514584289254004881091916314425691377615502395604681996255193954226435919730961992541584982123445962425379157139653668181861505051976429070951028211086862219319546716697165989381122716211943400389139294621594036825128168013378470010228691784894050536974920906711329327132045254957605038537974232824222081896726355042252000750604588669539426171654067293241582703197785143098248164739713313404217239410959388991744203818712929050338503996986273804461640021472187590007016370472868919748479485382399042491794243946513861540597530451936395340751806309456399670244684862589815951834816086458633696417497516886226962921409835903960824577456142504939821202411963111273881580802098563714059062723073010351467673589302150927664769580481369209239694866271647687225731275543970432575419649019128297086144113015859705001866079741336316575076365365310384593112459661567665871869554132270673676497319954796379164464333154857304071752905418506443007305383325805518054250500051618151700777099172047725682080708367544324508279490898490417587477125892720182326926921549851797198745650331228653158943533719107555551331582356586665023893133943106879693145240666503135393428366511034744841575203698562424415923220689450683266785175683969934231989524868578075635498719066930317799700092053734058207334434000631450629450990977865293799813762298585197228236815752243056086830845863441500738783484900244445524966830927502303654163327197277807542830753186202163102460623636138758272482104423186014287899269292308680955241787680266590364059119304456840169886086431668426014835228046845390824175461950771563202405036936930695291560694246810061774095557830623285223660098192285758657516633733773706554344718460173056331348918669838374451266239554753916284718835356444583984201323585111543404755945113708764750770152608740908629462821925651074438796166097840567905666305687579497000051175501505218320863195819897605644849639858960621085540708152711841364430205833872685162818495232902110114260751535665161535644987125047301315203828288211316570233690536881109573222774655843867491904440520283955650824665127991486150958901581277581930333933509905620502823063204576350375140569558938104826088651758583802277536891994834459175748625804594452401215316562018878388602494451487423104699461060884852778921057769265809638024817340547287076211319776545282932070095845083327294893578697910864452766937384786057845724384294332873336160514993411226208722958777975748184472832984086668888588448078402287569868316354312241950444933578361631386017192820466768515587174169841612197897697712347870028706105901597646805988229060377623895422632043467498603380429463486394065850760452283253279503669530816336391953494806365001158366634117895717980334295175681714492655500391261822729836464696329040223534358903658133299698923135267783673243732480014452228582731211163585519697938708221445951795471336534027922838246838484776040685115112127676752547164667762938682728749438366155515442417538189595341424246028605561623311129733650457813878102150931821053409149524336011412775056151699949938455034854751643990649044822842254188277889464275985587451046864508209861794899246639852134312677150383447839673157783368832858722626315748917625864164025690446333536507997421621317386936032473668885600625827205857056532939683250876539790343609878190321861500010991076995973622401062629585268022885321311157045016377700845071980359985788794666677168522365683519131911346934047524437176185749619778339899669128422426813808359176620650124914233480231766453706617847369071086285369092119228535747408060215018265143330882575790852417360548178070859416196389051762077036443086532812160854752073350900818060666290305833569579159245032264566182163991430369739220689497379854762237662650471624169036354482037345532532329445475594153581366533264973521992275290326028221978871156156596149576783547231955421676872259940089013871042741941637992313954930744606286431050497297231280956546044503655664364189784213377612915291951446057832656611236052892412835262522320651908596981994517829892238772487422677484106255853370194432790132675526598211757188501696018287548675024488276345887103726552789899996417253199409174874924492812151333931503907251336244939650318464220827407658265991710394227322030286696093276310236910706589845739852848925112343521532169505162799108436163503380834331428515207832941646540482105948215551463456130412847051369156069827865948323073072940353513314553608287368441633302598032481368046211225417691734077070762071210903590866818897632449447678994786129567264162710646927014866465764355762760035311881372391865011729804656041839376925702476865742385952801806697114311999199688036000551883222014573335452293982492056987321937144927244127293402706063856844441196915140766387854399044011280581093684895398195462255082241623389130348443640166543657534762622296176131864944319773365362392385720974351630739680081564414615883656177652357730018501302122321839012108391724657523196169972948250366700004695681242937777143200245262910691246574343673738641136202671128514769083149809883684328075307782530469788583301221443245454315803165036017600801242993773006253834556485394168852083899312837740395607298475961018134909339231017091024388092273460443964546413207232819283776462547719008938350771215047653883561482962555761200395344062809166254546162783945559668479660465904182568006866672348723298272038239581022181781349414826516193481489663235129677068828165696911031029561294288934234658487429351157185954380616079668531724922563971453539541195882526625814525059807854557397423606493212052205905971210705655779087507821606850007182512395423305506023936061821690720010258231873824835581319372430010001513455741362512552804095574499915477310105464654119266347103842506920243991299446462293814337684004858541762157509615402866295151473649559930906177614021646956294374003865080103929825588236160656085296752869496987632862448127094332980642895063709460140256368535988701466501841980314036238547889923054379282323557950417778766253566966769216827598942077912732613035752515744792302525880805595827417938790117003552573078708669958380898169748848666318095761239525665018355926457402986175768705714791979973093686466324636299478149489938164824108202351216468424018605438360183765721631637104268626248855076644289350351720311063405921633723163202907982297716036316506509621282891247226812582399098970495185762703891571070533301321163058923115906491584877593528645251699903260664122863777487670894435240624752154042243809615898306668854776223370629147122360368293880943780788379436795918375970901769888171845800629692398911416420471105640983082805635136524019831068921861844417567820538090587052109353789707896122025877720297098500279890275104869855964973711345630637057531895657162409637625288720969207792013025148321173165295910688212672717033651650056113862068464638411709737346241662660084794182589779635897551620122698875291928533439089183896357817405370391189663789970323330750426264042625260882438564165523486245427740079176228230461605162717328193336298760341980479357016794338377780652055984379800691442073336251240760951422956322103634198522008210877106645864210367121053525339331731543999251056686059829581313086786573562632817000615520425112888450494106371867376907297942132574300038697254450552813155115391666979665042946658766532903165338999245412925851585103908534410805474263985920155015593155730798337843231199424533846576386735192573981469086058706065890134302210036439362021816524764595501093388285255927559214358464812640174675945456301836199454074805624038556749587256314528244727331991612234638414650071176436751106235863629853486286083698033451235455020877243518763417137106692708777786145254206687181045242296385565669487051869974519719227296713740438163389904148527713115379364317992805252541068672091397604507358780170198405610065680039544669695008796300764596056329024687543052767764470121870916670841910536734074992377187128830545779893145621985553798359566384599088084520986191127662588767600608564308858951287224826244565643110883012000353918402517821967429497454870180580347857863430729727540466640886609805259686259113849650025350187378133946940013052258537964737684863399288300990274152981937232044303330476567484571202733625355213928144110946193098242842075400466817441273438447418576745070089804114446329030135851735474819866731033136247517130679801621168157108034255390877730850766874992656762162973163205394728408865931721524656472659969710937396736513774848218883172675829332605511761674363582206077544348980800441875847170054484526183988439254292209922260529028184892893976385528441415217311262894166618816622923542025295309917828105092127380587181858978012014010072536616773399857968459181167514860435636839043684995930318336656143881927130082651596612022694794966401057519992671700175206767995174107081008484587023747831995419603197954255933471231085173528560364520167051487594055150371759367485692546176845606523705629757879570205771882037361693041172453451518060582580873747919637471041917540520849892329434994465109016975397380788422549397828770613763045232599423952800032001098191556566118897592203395324000922321608431776047617926848453578784106391533879588985355351966265196553797333027037204923458133191404208335630162284252947936264723275498959113255458026344181378559405292549652705696966479445442806796439809967598763670123370207669861433223399701917770342052689897322043972334794779538155482471544283447857072315554915051299145243743986225589768900604382104374261963228701787874609355796629889507560606198723904337505703384503635757408268678038557473013156583972094093158803496130296913515227012637937066424317504036052052247475451713776136089104570234472156754540190712000356386288713687627151495422205454753658805062466550678774824795164422450694597301820284207157853018629867471303705541395920706153933120980241952751126179319356065690627415401549433530241673104172129360013637831092562945302083364067969727746464579459259291822397163103531984454794473807588528741857195460396744590525606454591609068258287542013094885589595458411550256254323952528276994113599475117285937268304118334567753399072923801180761432134646008800234348112536199606579600981583832224212052313891764002358460107441964937763487257605217619668072272916699469924882169412433143165206659840290141706085398690772327196497617533429500604344774704529609680180002470707663540748160120249066442910934834617636928217257618602276994247654804449173075702430859631373734895356669929341802774824918172645599621555474930582082527053944739818680484211108640844119081135058787144028344430526474151518005082954710653848934018401128558538537145774583356888020372447741228920531404244702412216362881688379696820840396338384280054682924966270652681185672363807894802242499134170959381043358162024651703860867381529419614193172361234407871755828133257954288496293116056915423697399428351015711962920818004950300443357828011699665064227138023743681980839057892507921711033256208452532778225596969624766767153578064001038943287600120728356608196852579682678991039814574691994173159908892030569706165832087097558825375336912867261248234818517584541165198236017332104855845023481026292866755380906694177623008929087442989366775715330988232769193074005979816506399201060736760862583776079969439473392056099921632312029498899984346444382064616444605822873553092685017803706473099556775234937845442466628285846578478800059169110780791200638168983007649775531975610696724782684903816654944852708537241020506512106609581342835652358144908244424406574022669419309890010992009866292544531248894556627220939402890611872679975114596535955288347235373093690285039648682728828564974588161539914590067217237772739119380357249805709392189653916949971468310743504194823206371655045579314666704971039706271874868490051600625384599800519160819808885286471765604029443924737217340330933977537466317385678837211793202719049145112539836875334126676258149768580906017667149721872725996059495890322720502452471902450973950762756968818945741980571263783882864370545632725940169795994545645689044453127624507946394147473775043648777987422278997165864683944837689257956956341711615772780125420619961307739580824511435478307690086635225310087545919487484327119392506503889025000149632038454893248761021419875674340189119378512350281061720552880674256150225187000232799386069095926203053534493058212519346755449836040680043724177644771086715995045958095288892915750815041034452460803525912849724799864614172625774495871625577457078434851723283445932233997421782585884182290692846635425167187745441062350135766076738071325944147195204185283365758570615503058257427133785276422165007578844653954336815113949765291112516277076594067002201471146263742228549178718237787433932988947588003809593687445847490322798700630319542225534619714837616615636087692057783047192866964716626539558952057444704524631597612462382154398164378401570271600086861663354098088407792269583885593783804460406889470313816923291732121657508989301431041402333040151124628674680613823273362576005601281383292283646362826078055513163847808689177372998809931432404472350387692893793158272106228271103513362437795227345942268018158477465973380637297430657920418434019465385219003877909219325132741812500951820708662690012338320062036954716911857449351534627895196873448901864350990834508701645988426532791436121899887446759919106628254208491801561147437384086378868229727004550630412157377247200727328634378721428507161359901350177051615527511021444107090599118886154485524921361493232797050608478587520292182421550893300054758690570477963054928502970732337059853544365853821625069040154887770249390661875146574507204060704119098463116474181773957677702250645008840974579821271743008553978799008562347094965012189586438222318821219513034698279127685275208928917074065883004352981305364586771764471581372667111889749465171679186106685678692377975708146057306404106489136331707693640887087592454683352152742180968766793429375789649157149135725202960361750372795276427106899947004863213242632759835343861128091322928929783182765837703893240401110204051415146664250605128954298261105068358689071938016513417013397182864016054781053871827644419021059193089444797467963311448446166251840679645523959263663851890874509404345330445596643216411585691840185381200054946235262268137468643281581030177455320494393914428307876134659106333984277501514916199411051384604130057626501569833098030779849087932952942763568326326267541885862302797627236879105546234932482644884942519782147143022373362609598992263442636644061688194205872715492105800599621799037091883689673025225656409444396370715786971700131916114454078998690926215084272446262144979862493897719229551434950806318496633410276261235307754018604017628530836750869037066637112828645263821329994394455502673488128437744007075918247665995197068294571893961103360030255947981527331364395927135278194226865968019199364234779503279121698454499611339383577160931404190839150492128246252995245782248835185711016591157663627692961041646195224855086916540847172714299489104284158306940450308728456588558042717434873879251522184312319989122018902678115115498058637454341480694730551177411508439618486614462603465266288205421617052831404087378091738936812387354678589704436592027547817421878512061693775332424750977342933472298373311917470356082444788052906407960867802163468998283112095935996139350253216557968276520077304558340000834271674479989420423051836295347417324564797025245122541131180082408925507486811826125469365585439643361968778334803495963194798824892122551530132984790001327348100514807948051136504243550906023948822295147934942673099527297060506695367462546789126520863193960166423984580717569184063661321844766446776608274445997350595119609257755066707473921422662670755962898462706520447696135006587521574786694447658462061892379103500374081055067643017287425142863290825178223630957464731978621242636603193181570994350840926147355980767715117598130260374401658019572717383853183407948690103095700325878517508896155005203230451714548336289905861027736948434165721739447676582369032913993678437055956327825888980950194773860829470601794888478334558645411787594875002325073296412353817814028241553993033135908991180958604178021525054979916153951242084309501502544952610476615039838089132172499372111889803821678135655116550657354445774876673211468621517299211956918096516934466112123839339994001490123024152432655994088207219193951402205827127234236588101329764734684611575276824348801310042111909800349091965468396149689214899951771536924750663622756916600821046655596377171182884600507827555832060236728389475325439437933869462731508753115889643147152075343181921527900988468273321814947934806718973774614220678929215290572239096512044257531849653519308064754367129620010104223429957884949600175374110267689908271037210045474124029135507660464265919527486849941284274871918558983160943802641732866724835240698307112821477138392342257970366631506305136369263938154643733440924717490798740538064353554227860891484857536826788006566557305741214117813843158284301826488648649622025015127369460563874244197061043872263401945185473260294652703323427825663283631808753710327339182818678516924855754847929404555728317107845272305740751359401678501549010528753429842065785759499554387129191605550244177150030851709133550848478330446774588508558609387328254827010904856861933496348767739101389964536035365481227279535181624886669437656658897479762425747985065565082167515859672396186041614920776801882803944187103256004269691199300752805892706942695245398904906817797155160033567579140836117230066239136770723807018611870678439725440801413420647263857430388248414006242302042257310277084968421297746606485487483394170449961523674507425168450369538163096549888651650529269870534685584760553007436227265107966017152235386285956813222428833016581104471211233945431829493917677059677471772001725892846363831021874093535891937264370010486721818629150231112036168605062640022905313788375532414030286168579470811427718966019903229419323665506386886483149817390709496713446881941557715114319627369008800448498598748351559758174705588897806976989039113706810646135496561963298903900522588647855706955463010666398371216751693964855157576667710462798503466569762093184015800315598318905092668814284670750558617187811580165167742212760430922807548699801895981094902881131633532113777161431912120265263879957294952174098674780375201883443921086988224042760497470418529205823790853141904948065874497023888963437083633269827881385003270154956505928097657489683962201902806879938299899738194186537867151821039165651267647972625304026152806638013111227995061741235357910849617562771040542633893512781487054116852700274742213318937681576543023039188182800893327748532461893992356429547330007118260291127413742032838424363679765511699504355487314953569374163187775930409573384713693759285869949053003360555333164307353488672406337812974017090821370497924884234389278631068665479177336558924039099638379969214265600466559158228391519299568290460194907534024370136547590138932981210376674717289760620879122805836428640033296421064001647387772339460716576791603821674902254149525366311871019898504600500696236174700480915536810854023503353713075389149323747131080978570853757334061201229689876006936219791560894859450378047167973908311587699772790977725126323673040417749627871211557852930958073392797518093567942378021016326666567791124390453180018124442722482878991579417995100596754284865813596230298956559691851893920273110495201156520345627551378034803595964283843896310080408331286076026346943011670266036208476769728844809234737072378236279957838256489621657907822981412176219591600580537824847240742240436879614474030110818670043297827776457549692206308836446843109996179608327750147237453003903657542480047940619621537747911430680452987282527582199216881517508142433269535857870188922152168369521710216756653513174028766424159449462343298540267096908938577341676293935710732525387123136875705785782735422311743396102135800206767140741973281959915996026441964117944433358209013884344019942786284037836372097190562746241052529473356543679135989732374868839276616973884307086170332499503915069795753548519057979082044551218087204015444432201821881083330912410778140067010920244284059023102324111534634243187310737593983046944870828430585740597231696235256171478212792742798640416579596850170085343650848995727524349340377715862317007124150997917817407815340494355072996788356989687734772122633431322429684991115275624893930891806689754565693394171112201061195924078758128376808360847498422501616594971273629270834567817307210112070000686693406153410245336141071046140658175259886407400295050449733318083553885083156321128194283091927482056212824674910388861356808137775174947271294055323356728481775854223348360518312047246307907709768151328917332604395749149163207457468399366124620431592050551634307563657131557734518148732699822427718690110947140002127210269658541618428373187581925625741792697603179284106323800595216701453840381909399220782480896596605803924456080036200693432096801661884970073114305489478935282636873614902648454720169508146682604399210334134224156618298493939172475712208495953876435813113368765367051404691332266005036246579780292809292060310009759957669581905098728329350449550859038186934314475496894379518123373998388282191123673894861265810248690140422205253447352315922735532855813040409752214530330053450996958240306941414516966686891597585506132530456807193467288946127687263856297761570640892544283617654526446820544002262549697356940016345872171881619249689088154427224721771020624792104163161495271781578415329056233585886494275181523752908861842361636953565705907415750206849276200505473904929420461404707248001198836371868898102597829282767879693510151542834614190628534873133156383323704931652933048818166048765305530363817571099601738312902698149180352076382948736999318945969792732251416519946177697316100473062955860662726277908003692158756107941014056166076351837399352971271539911213863915612376504494198909632891852199440551216255179914789993927598561027596023053040901699808330862728637309258035190971758427868402790251921475700596463815304228653652840412985052867021605517566978770117740878020897846383087768353494069019118684292207908079513625346765667215465290960906229664394258140672784810868218055127494689126433130739980387503760194526391026652017254773616390754655925871938689198697501880525012424845999347276991569083099637041072690800846684770528001401389038677981928203997085845751610416196183781322581746986257593973577822042650888106446196234678989534035763222717588238634484416998393143347742394817645296457311510144155658035592893948218379709938653297401651104090659871334879670461728901881958223751971437635654944923593083863359018862757265219339265754110880596276684063565457880384150956001822041866599417859897258212328165568373897454854222236380437789835897344087297788067904958621894805001652771769851402402788974277963462100703918192494906142477392787841339013198022562895464724155581673762780089743621037502614719601319313686908782558073970600366076696256615282951250394013114148492666782056401188206761763804058649553206883525060101836704784006870475011179415695616721491964950530138211645861497614754405996248576309583330497959232443505476139131973994446278612396503480985947079989731410967306233611219925669478402469175950339976716002692139970640580590291689113122434368623416802590771201730526055474410224731047764253192968068251951353652146491504096093306254440283941420285941841774393890767079878370366473838391606462202306457277516691319837302092859666421285620720818736133652508572305167875842651241779595470352639470861838120018840028420107025669265292917245455344220661043137565153090909755540285375553827188833750189338155384679929907848384039353363910341661773753942717228897295561907536957357227195603240215208202978224195167540101741987656468645047748624949207902366627358206836345559848849962061402449983475860707941783654144043510172409148871546478854246138744242962914977420350804372332292112596636354464587510920937725043045913281926458646744751918908336747085159872765938063450860449013514884035607291750478209025468823598478274350671539624848129688268929021376285959331558851685655313304536664538479342038063983200878794626517791697168990646945456227952826103581400310572631997957535376872521604136459149220679972387009743487190768955841045263034793938962259818233304752960132711584410074027192025941005530755116231122696557893233952664406515871449395653015451146870083062658600267634839577636240179182186930629473470812324862785530482413978172423640256827065052235980007339996536648170455953862729951178713107836318713305828715558329956257113834778042395929186896524627093591003806987946621683993377463395651263611260983246080670554513394840672547720059771840025973854360049682333561856881791874154517389723336703800974152334149919447863454856687156440144256266548396327261148281599388155458235555010617601329009559618365316464851897679833398344688908046799715433227596656945693391960284335525792678370007654209303945252420281516748062360036381412924232712311845783858308592566162213901681043138742887380841358212719458715767843967096829808890464752389469031931056695930265408228110831888393462285575232013588573544381526912757331841270254667475972522290704183901669109331730040007259535338341894260418523503429651525909371950544770394412576148274488674698856295506928519816430374213670196248677910239372183277482090791849161392803924052004647025162374110660465416276238247037782761866826242194265222682286088828899183437005027999304738508023141307679882204944984299694361616786981659345119941329086011626016951150047897018453730644717578278700876861781734337411627661917550217294734143791174985954127973375319094957890945300573073212929859055229517993501192949440467194810822493198639929189159326206787342279019340404967378660099661179310211690634934118881008206813790182553145381263536714814507144811423668468270339938076652046109782892933500812231121331697002315078152827672136078473887112256782740528083064648524754882804423981051145557213318936888715427831754601121760977508959889572800530854259533450574859498007337589445654844301689100946664877951026147096214119980887090623274560127034392996220562558270392857238624980799062705801696711932140700024023215804473498562897938758579372497480821304325450127089233035432542049829565300427258581284760800400402067598223853424439850440296020736078283242640362146872691806991571884719883538011866004379678854845243476856227249617118861825307192088266530911957484109494373428556125385186163933425173925708217425410611860242031588808535361018204759895942088147243797985277138456519642668386604024368094622357164011776711173873043965988116901843274761219000830235646472313538913014308760866678587854227759008677671259574336034270559702676068471244850582452696151969802878928800883986110248702506328698896082632916483176698553310520368467692328201745228950081629960148496288123961553327227153781869659203768670275795840720412767059256892264003589842185259965990684946310697099985945019640852196016992379324353544554598943092349270299494910774121709619338545924972950327002148207555446671685913445132917151126366282618171218402254214208141122757755322109945378265744547888326469247896719028283318093955036654580987187550290393594669551381626948987038179107549677766369778411161672844683646616916712100791590298684300597814018786301377471603218731970140510078608454920137408754184685440358847925638723728586352605179712750678418162045670364593387498088463475014265433539632200999999460033037414745094323101521728352376851030353361538796513814197946200341772950686003009185094243866116532988805606512601413121152147278274873354095168810076920011238110221140978321436263657929204415076218361938986518056747474772813391049186301134408024960489080477336630563327768461411632443400065117809470691764047648593104194961531215433510718202423948265661790848909726812169640780659984830295919833586798233763392737256213669222781935685806006607779435790212129140139861242560209378077344429308583559936140135489570325830924733246523382280652046366320171550788190297834020700075885348063461676798252833954103562063632925417703453443786495547942679248634774369783053317875785612575303904396977440233962336991694341379735111081837577363321514579090641192837472674461443177896261457336765859668225745618121860508392601281279649423706196861497595165968495500306681524222274446053238679345535259383089403216860055218402687784292583173975816831723321293993650064030651615228198474315913286711699770134369472031187726630905784782028021978502406741994123967244454171659517723810476808123202828126145916958751231831601404457661763071710781940088537507271376696940289673296599931521998538715930619800460960450393430057533575743494950042754127882716994366438931590323715512754188337470184286332990690302975827900252849790955673398423860642148201342355032691454212349301771416031216874341293944715776831421143727962367519777306280493998440455136480431628094579700234896031730341732674460333062534097501995022478448025797036423277923463632231957641897785749275356582767484379442899756964701805184788126722545136018681800288222988589523242628598600932466824359537480519790266029214739553235227109141862226732469492718277876944582383135031024318575253544844622905138551342443639739347238306667802208345360192234476228709067910484698078099501363773802876822248487046845340570725353724194522806970963742647887280127957433350776168273166754646393846971595009407253284594580779261614852781260681641551209577740023325691750264013783555691214824089757951189606056900162574243302006280709173495729640101048921542070776237224151214942943267440209493143247859412029488424861660607278142832018207574221064192166269298350989314942870481338879608589728274757452218262422939997604497966567002423491050889278956742093366802477812316388097639216693827804119825749933992617478227185711955138051816706192616665100827159894522427223682426962790330029226397753015315614912224787049539140824491401333597162864857568303971732199848855773692082217644134380705720869570215881916660324903488282077623648593729746762968154324846633536879394520454997864296341659349373124324623429279264682915663132229982956391724605155471749181880054256141278132031753001647654612340113932532534650377554760830101411761035859199701150079370984226448950630483256655403619928386017896773123940679710819630956466480520109136819201399435888287925050047229037465533403086005734181685296638609540241147583395297565664118277967229558926890165841850489197650724755849847581496852887840502809456020115450547593434238328838337653350068784082127722272710745897396428063132719857559465399937346906247021749047718230161910960224340541324794617378198110712790579302939115310189302444645641819104901514707945492247631389302979018698036105192127278916774342994915945277690576771936998637544341798506565411827812770755950443405269871330183836995480066393562894610833129970073712545765574467450201006924841493995415666169360349628913410907078326856627612359395094905030910755173034914790044065542301488718139342112989121854624979299627234122835875873374256670004317799478450600448109382504450241651417234732601155452419238386803973483206937626493816821558469241457593905242825576669819826481364269535029406031253551896843874068029051564836279341950368674561562918029791506184779100113937569849368438046000249972858112453087558524866336250634851058877041741067373506862362446923677016248027916201824262946999731070399056393982468867267190131097383740028785994439541403445501352945463793741178679842065533204512847021954018859403023684127437913550663378036183676006145552622272552222809262337702568729086457044865004485326432954699586870381498136153512272147014348663379996433123963374426973805204819879470439896602651121508077844247315035880548254919247866686390340125834233523320645055939198082656591672865067414787859286860379917236350575747639739822492748243933982426824812735227091212908164657675478967717615913430616542850766043543658057214077526639418850260306913838255446822907236470965560756235468296758856933044489348410608383903062204918663251031488860371361933136642129163975261076003674840726362838847592382818661572139757326402486966888804889312035137490044830804630004809531476258429908616249580809945180354241474593028902287144950683679898955520063575700159491631622675938792577687025837945410725989797737442139575323658229059054044851306888189855211716645752108440287790115997630874109505582596536684434870928559886223924540966679213024344121280058220005520750964963488481338860284816820333074419409813419175798042175849947139680454709431912337387659222602847229298981462641752163128981719289132161366225397123227650011243958572134455026458376474317491759656746646699231281112123851216798100644213245465976410148579234560905572819122757578943586738332744858365782646932417784828690499781658750015170674384879670982580071723777232193781755068333749799143003758172824532133797569879663861849353519052394018756391193039918958394752347373928376771440966662877681196393191270471128256539726293286155490071473749813049254144945588113736756541329966142372322115324330809357792263033518320580451607281546020214597100404101524407718052542580380048770155094282371790723482790404023721705061116304316501625696641062097150384663038839001677875096863349775473153856655384826420678108352957103547946744504719135088025068257522565815302113922400365345563493475843676899721578628430142402983909944178638154393181258983256232802387057889331041218649467472601199432079946886811214001108161555305487206306729661788493344432857640732251163876383210503640429080536807052062139890718556929272411662630981146114099422307275736194110988024131209663384825596250228964767748364393673137462905006327271309314157338030499257723227326645172406838197317431182584864006078858002078189904348027928600086647791133030232096545261414591165855612531384217351732254503723605438899735042927116751124447210983491920428024888474454553675577965739653598629959561055672450108832026587150351557650957784847221058973092343780412485547454086170353020546614161957276543717271256261406617782372826185551739892443942215545145761112929832794968456881570366018727984897616515171905415717605989364087231675578139288772474281781748238660502883334215927739972359148199807652636111151722187832039629424143547928619524423692843961991265718471858007929366640149279311665995568246059602142098261792782998452378113728584554330205719284019211105991801025311539191384351428313254579810347580104540292065786764147311592827217591228780641188831836469950944412429029471416104491552421246373419349713450661224522914519924193941412021923433742765630915091299029819290866708949952197548814966479219890870443091603891687429311535388817212263323829501606167837489779137356820815362552885919900542089017717037281990822578344992889453717324146467205735743079551857566309354387685277179794262007627904592134483619193504550310116576600103600349681924450408433454007051334700088742505729235363776654694978597368755317843089961750137931979027268668819964959505048175729483946070557747930168646387226211135968518915665884159239899978045164455013663059316544353914683398269136985828911120624656899788225375251216888571711867100345609917584913096864195929760857225409568399240496705418792649662082141780038631119947433703473548157805028096676661225765539212324510796859731205349127347316419126033445508400506775499400353667565172288792766986086741305600592861016679419640589307133459440470779409064859966564132311839011897904048246545214290131249146305895829363041138976656159578791348132198476838615942720070039913945340079702108232899677716662733151924373970632276489020528208992505493388990176039723969615211915164814154883580160147401102332635797187344424579805766730851545279260855961697199773699938677169375239119052249088658655462943168582168368403294347140047772723552513059924853922311865262797942258664164224009234611846441255497474146081208257244979041032925468743832542320084336991031509188682003546992900881112236861800159491289731986157767924299698513089449117041592710767735227841583740587101512348317096018553721881101232350024433868384533143379862413368392963961859619875737014949308478562492366085931662233621398199287006123509882419640908098519768997410404996473569905702938598320893835543678337758792642061388257527854609055382188310847515158116704660392574435049723927967028302364620279779952540651928975852543017278426328736488433821022710416858910685937799091993665273578726538783118595462398393668884663902431927367120408271995632756230765485482602002448041847050958137424514666907597794390766297254445805246128416153059757813471993508230964437032030731104641702756485072398337447992669421971058960081854156290234740760878883478044128235107132995976566431681830680830119863648266334158838199786824774296811532714771339639328625781684399148238628931364570735145414111902034041477027468742446968612716980513755009759138399235176313849440443771956495913114180604860273460478128713362857183886270305606755806579863844198387364942913187489129145749603633037411841208651450100754474007703014035254408234403638526417043013683498379848915944144329679539419495242406294869428296361927660858289042630294775556769233305079243853617387158156326395139773498786909485146254242393920092297534009053946214998549399269738257026607957237518734151057172504003597089697186593688084070918358022192953698247725612222057345664416441000461271620343388313778826063126448601385331937195939041904994519220852955810020983621848465007582372259528634984994973939710693793170874329859039059347682420729906738628908730606376573764997469315859519339641563603591246894690347961939494390391488380677337413659773930567979389798378251958403991371953789122827836480263943899822756523252991360131240757323112919025384450277988676514657651671745510638561695277118625005938521538367273132305835058910686199971813393138525325955643092390856738676124255113877244092162939511639140729862992610089484516657941275131136440122556342493303316993068075327090300057216058463000071263981668479807497171062884586677917524617367916347709731293137366667158818636671246939162508004507211669492390747941302220885413118674444613052749205668833916468658782479739791392001796866235849185836948919962739723348696966335443748458300086887878803726452830313967800904294218709591194979335551909571480779095786601372210159630136236279651979626516697765367068617219356081465405819792983999989364960695043156360391435079357191115508989790219424426900076744729995268427258002822566843343872990213587675570051421647416103602282298315171868624082474482710524256400678756659910406469498013026903219359834929123800194681459432307758811552666220339761833693517127725625032146909181933589650546038162647619183434106983326536726172796504694403100974794410116190099734601421656586567744126965720695003081866128304133471521953850654299413004645960021793631144827392324958174907970464941174971633691016926912548948749418069569843700564891663415380698086015777307583058066809819243948379710041321957325019964739991764251972450906581137439024633763697983718504307211319252590078148401058970615279560676537054832602018375510079037829659201972616798659741778618904079974047187757292995452192404611768953821064464436650218889167576394057456363573832812270661696162842933296210715845901808469476605885622423063910801781770029993138915224235517386646118100427985278932478211165753888114202261764661633723050595892111324189753350246994901018977786125064153787569619893588244894383928300739120383273495192137306261606686704731089270911748835809137236061815512893214373887627702319593028716132923130157176168458385421748119465189982080032332687784697357006549424239921554543226374663079101799225019861807853231637516426252063964528894327835780123272850117867677383727940790549601630627604992338632337320620040294889449759210775215772380320545721860548850475991931202164690453558981906977562904902296811283849749797467442373206985312586758769770760264151447487088117241801215465702213581229567884904400535425012267497361022492916329630355056291009521210213326206005023031847120354472628866444732531902984609725559878518029661847206612583478579754047097628019873250048817951247087456028278421029623281808760621900489612801274902406594782556809786885957164749339163717089109160775770381145257308460978195084932560056410955154360902777029066066998670790315927134161338784254395864282624896987466434844039470987644107387679688924635105797479063618440289307807393096407878606034167278243073722290746863239702602841065378621832190539192797691312934661756097059323419329887449270159743949756873911339359026383192593867781003729857646231392674118729617752195791590420178311360132361196152581889674233483066057430235980684821995378258739640833234638429300491102147089654970758095378567720983333163510383175010956013003994670760801345606965873601846303910484660247799161321147982207373953570460025502229789961013108151552707210616529139775730578797706264650274373137846160470997324207347833586056726667733869682789394667680462932688839790278647225616412286606198188217480406067823721526667037544104704598936396981662066330844272180243466398414404005372583885417994935709612093333157882546700415998829178807678728467343514480326344177058176215037688310158443694380125728208785991053276012153117559733145374589070545671877146974459886867857778041174426341760761217048771410738343646913335340237259594688100312138261566181432859769388393379419875561330465045324591726286934853334928818456059720813957933914092992801369302143846825795250687271452579204226982259504456479442603995223737300116541741595405460868687367172171338746536443248663755285933425025223288238935183256333881537052382173875765931529528450419461976471984834641164555331011910012010117919545279989488561800757263605566596714756158776285063975948262773741064745606530029760275613621885701014353624040125852941528959422896297967603403411358909495220643226622199101640673444890697428410080035967523320304786259439291798248198328512299381971132491419978494520973136390516929031423706137840605562674115854412680086917811557287593512291448318679749023109287600582847808445532226086335128394117018934321486164426965072613351823314717724667512653179409518657431180938986103598620281621533028988883770278042082227740065430875288501373038214270442392235666170174881074982334060218873265098435189868347518191693621947654515949981506229969071010491156064222595583162911420793686665069316053395648497949864477490796169337958053166482441755760648044500269893460282996906721839294670385877229454732130547682277546935330859071199583423494280009823644976152510708597001086240961629050564467939238632305617259341159767243718880444411718044954191621647645744447571846567276690286616777343101451352820524727605741726124643658244652101734940925339645558724677612695268707094748846002182715632365162557457690610443578511946763584712643787987893670226614689498449039168310480309842733662824221284558838685274290568463932166984934760828486919806938715092777891440455821875577641264535333839133751037373663661224878519933337215877232763668775638402375459002591865509098981858354006023485497707933000922206871627071644635815864403578596431014860432196964975981071269640628237306696649905050294837156586254843616916065135621281727933629963596201963731570593091924475249194679163217560135638712240126875020612103293440284600830546812721849286374807611234018259018695752234943394184895052967668276686508710019963572685386788158583106749915299296156623471840176078975161216799894923944367723797648861299013511938666827613053961368602938032704985121314901286743557827039853856482624399935825180397317622121303354813380521161481415785149653957906772457498212429860847887397058276845269462181777798522920932649514405609288837238440724835350868004074551299906721783125835547752169240654222086312778048135010779143827170764735192554124022415342243760657607536226548814610034356413189071872205107699907108161560015781826957755267569707190534874820362135118101718804777750609047029656157525343268942961126425000230099989410929841127941996788797579584513901219132950166718297453558212882745309330530616230413663844050809040142012983394875421726683779700433810406338705799022070850497031461325322087819808234172514565536222939873570255898538057785852284579822927803915903484777037538231384300290348625084261341951971762390206044911258722635377703877710230236756485924439643145509262562687095064090519079830197424588340649211781688572152235833372287008731230581266367867826698537330325292639996869125383555730942811807580988862598345202135709675764710151041889664683246183372409485051229340932724363676138928073278620732868264873359649039964812735648256505756403400845516381770370887196471769606933954107175013227069053435419415723113660246368901606051584590014415885530326675182413301527334056678232577578377909183794955683784387064082084789610838453535323690500142894435747278922488956290932967838883796588233948289848818469457427474850991816564899284716334584391994652829864344801002274200352660576785553599331553328731162124555168885823130746551128887593980190414284010641944817379951215466886260339860137925976304231939957497729791876240410229392985230541521161673280108637137439704972232039947179945926777316433450189022912975840865921444068822054118147261783454484774798499225895316767927728143675769981755652771843242173934635658952746324656964592702168289450107742057940555896518425472797615732189222853274699863862443196234528328731935086652034943389270429453734386712621993111447448090144759632685868771221274803863451582299064871712526327205641062948379586775195343942018070328078408366353956879076432536834874791147355983568751328837919031578398664716753664315813471561264833592724204481903266136653474054181376210286461814827086279739262562237735997706706595391281581624098849146284760748297165461384949615013512499838001918107616525879152489616326924799142899792417741208003237715222064674047059188807439140967547031451955282932855278550244930246061107072978724195873328950601825724860217326351843949140452583998835736198922891783962901193630290810017323942898952724770593601065339315382856033538078782366944124364485563039038440485144405643359896987818793186303876588317545063713586722864950074073982343925051776574809079628070455033313323234386360511890276813708752279129098295887272897639026765464461122481134076667982161843564438338955317077686840338893166040757567360941880195340218075217118363466240040097707149044155017281300403946950455318072913405501477415999539447729387428272845509519385507505502506111970483393193961736979669803262435941255579594698961902677711123052556215275062742040674816340083820862742368872300739555320141869233873039158958181624367650244091541166177247381816681373538147394498745338125787921681828223827992250878373382687206444831831612879392841543939598880632902071874280376479069174580602753378698233178697193122954881567977646546765887826648357532248313742224669774377731825897422426217315299229269442742423498567937245959026881401003121372168116795908368109685773099277908157254837635174049785218619443125844832397578536183036549191533997298633122252507499477099625985470341701404452192449642084715536952358370047746839389511805444727280874716040540929625539047785839941499387943656621401626405459766572953189541199070496309011224921073636040754586498675465832654513474243122649051087834453103121138068754133641485350850210307328219013897763538153902006083858521795403280663052398454660472718263317986548963654012052059209542803615819818613616955089191315473049761893406612588829837702143128820198440045928843131455276519934315120773450611086973194294472295852997903268068704813076086110391400110713002505033971308735348447835908928005178681976449969995415877393557593619244837306679927804134293330530343651554635122960558090108874379610474847810244280792759989121106788793664752462090174000742869730647044792818894481961705804473753427875440690398335347331538205229361943538375318558865034722383036912636382456703399138510965611359049980838520940458019526059728805910932753038951463913205746000106918677942701755184794760981204842074005345277728055479224389572920260027753348157104129514322584823434234818696776216955521921184025771644781598158991494207529152619158480724561563827288512303824728922138855323026153687190903427155600186174711238871955834909178948458718200279176082324610711273118365513321242293692252383376607033311483768330589872694373926055899435939115212679454718542880693883897051461159373190826914483500608669047492499200339583521635191844242443220576568450083600792516550771369367546695825185704854042039944800688596346697625918425512214950036052925567775535913124132377222113134176543204179686647686658992603459772091437719641782600159468142534139364171534524808104518070054721438533665295703156687717829092551002821707349126734402805494542799834661757340711965592411360302969402443243221702044023008637607682670635376048741921949319077335434758914204718278223251115640248626963477614470078739007022953778434431183934100161511571423629018217193987211926514642622033575226829957313097935192336345957330133137552921769552300998714639755098280375283629180329825199978119549278954326920734763134364397505600906153463550683010806828193992405107754433339241869591333413018817422625377691490707650053887412623136480083387476720564363463735427073825698802369788634860414490581285247765504312032884872639583176230383737598738187863319179652959116098688111881133361913299957930982801201349529918519714847009198769149545730917182167285665987529697724235666217492621113423104708225939504993654804396582638146780080902179016124959486213612633222468211750368961282021834531740080141507585592410662449468032424919091185426816107577091552342577596612184104407270916518609482171546077141409823328722220154975470103934265423742558839736922486294656524512501057226892240715615888246673094835734256199481069001861128544519287761401855170040700663094819825673078650374431339398902140740630293112132729413683105896329429427488517155157072406073342329362227015359667988573104311465610250509483531329379383805092702087137547834181609550690359541138781653228585586123792733569578024305004081179645591002973140158837056917240120588785029958423170410392979576138884522334909633589892948602492390225314625031117746987795578216633716902234998202616047782853740857967675467531258393584668866280485555509473959687234881451151854835090309818891850204291082913496895146646954861165062695883143255263799675221565881236783997982309188096732999934407208039603061721664222415748095730971430656470745814604629269360764931969653170596040354662976045364896007388476333109713851587348818196210450533310338632078059744129291230585742533788567583349493436635781039869409814822883341344108439310080474367092385888274775661214187741430791392354575969063106375883079264027546977431161806959473560435989855905522178460404966187628234562954509425399679108710565201200952030540396087278940574100679297329828425210355810386510234133087657146496854198744154890018009699837787394891267071926217193456684706680651180481703402911625961169069453920369540258866347255364045483540565445952130863263735767790151309977658531476337158195796261713270273680569267336184315632507723214538189603725630877166319273177946190537488382861215665396262496390560818330795955413355934023839974930755648256985954961281678054114496217449555890821913372933071061519463699122812203698643284526627050612101102390934160119669274488957103208686788561623873665493013022247658941979548763881339256884185938241699178863632548262895816814488083644936172969377712909945559131916301876724493487292925711393650515824451242186025398784444730678302122307690679930925373570727397899788600859424987012599700220857481502707208040581643395555199684115268804800584475257945911816996117651877593737082566967785731476032936164336586330124764476518855717829176110555939423239617207018040397229034401654659140382588435099102871852802733722253890783069637957663824852704042663490365070492073338316223743692153120745036350615715790601135149572467856209498739776505203550940647230986606778501064994655076022722804516502567142136765950873891719954924749913481346633343419402561214266444499878552142476749100901352729104061618890719157716417417740099892666278089603223248546027052456678582143264232520263471888611027785032981190187856308754017047494718286341501639119089383813441081382762968328363403433407902358194657963623645426597788679226625713622527584751687867376260560049742089555766124146536891969453772990580145657488799418829811141761342367724489158856445919429189719606816946803435884943053868718309567616833593740689655115939879612891518623912254084476800096229899438359040184047539129625805271644761399305399896297205677901053653245456494785212959585370925087754117364711196267075235672543301799456264855680535531338004366375884052801192012420396978103977305373161218439215769838662197618493478561549687049818642464950557548453292668847903378482406132034472412030162194513021480504845912245747427565358608063344888526867601313931784394694602326298634034471609437564836967444751373430154086803893672516625835263022966423930880910144432127101131203095169429836558223585583160062351738800351733685242951473331428124262348042753998997411755711705813883033453608559872148470695136494348130922226952594270847448242233252966308300538924046966707734938103453296904699635659350362611065671793266944722945963113585854266365954266079927549931669371054141136033240400267158917179512807486011957743304058789262337720906297691873500005653571800900676142114591116021052012151894278421160979274613420484849812363344338034066667366148370257657327620868153841917335028491170986967814394894332199516775622238573886986909388371192608972719378687123809229931124708344966867541390558577669662787791807908049321554025092996320109650932527159875366024069495678326283094749293693994883635627195946115682664346859517591029173782626188722600290868424962128445561858352855277378253726670418954575436386588887474409109091153608756700060405436524095870476014988069605758364837487423657328069287039391001468204240643416357878861290560167688587971317917965135996535823845315022730585276866471678140784303296134855072841131794085195105746433320569850810850520594749952477968679541553556402153535431766767576266390038118762167936661193542468418746222306026570852876992461040371225674082137217873449550952528425971033765463597194813477434833266096005485007931111771070064702126871582567205722350555679356544747239413231996018676944434336787881873227770090510114368254191426150438456100983812384353238417446243707358347764084851089487799571956684827996535063531260309618427223160331496805308713931034178177721930484152634563352751176334253671184580736387778899356506195144801132822297469836183271910258804132832765592183227144615871292056192761050521585359356456969576043039199105702173129248866489044708837883259073517930438397696742557485047576668373042217180720921042619593687570423757740723976136706497940115320667716594164157319816259636255813756568746345282572544026624368553871480342649532657949980014748887662959066712038098030685705004996972102618659741427038947488809288767814465476092589702758748023945792515391263353085689109877864458678592625756683657716930333355873229395522405621854095976777274273859532154501772544008056135586659404127481710041568465570728846442722063888862578138156799923116202592593468897732115451084471914517124965172932644374672679064026942236402126269645635793956823727525717825053624747483942515733252303364053149778373307806141666062456155889826648506004825777545888525591595803625522629248681816348387959973277835794101905151640950648447857850601957954800987646947837822787382886056508114159861645729183901428800318710986971721276201788703994121344201528512985556206766623882173587788017617100731934485661626245945246017370441998076625601280592168662786179612701150413839650826504575057153206384305417823256382402077358533700042629557540521894585752698862981404971105719184242767762269433964986443775936895604259751062276466444770411733591348558882063204118086144986323149164843603694319310816261247662603587953436038772617995313395086106978938768822919651771144083563005024771293288007536515377366296993014650533268355154023797206723046089565559691285224542962465397228239243770772267042249384244259586595361742236918073527167597255138531175025874899813259859774869135067260022518735350673615078334333788811378462705442889723470558335323213359646581873659719924943024403633774746062624343709097970562912793994546640197903664890645231975797949531830975791101762441040181843319707809295135004681925906979545635694641600566621871581419378506618075340705413329736451541920120987362479885616678619252875528750731156763625040319703968091288891263689310853984572318565415267840440406863582386049012649344153948731060097193753799340864237876410323634212532116188607313534174673454175354169712706714817719562845715455818640758187143283928994877829854224091712230951383743207768670658003444577482728908048833874787570109347087166252126101349263185083316769562728448435346348523816205747215860203955823656273161292747995473672141404015382569318584080733261977975112786458260952763766048971384232880224554345180312745019691637049075083608790477057787572647963518334034955181853661418237876779560896046691344150778015350114757598206899960806641086727455399596073377568803314837675922736876097144757292178448616579338065828883824741384508813283666100434066543961119444725052761801426298672098943924997505463791926090029275685087758339159390080472989514840828599229683366367413438371677226125058440166600611291275456943387997688230910095914311271071914663901204265404362330879965990377848072445331302038723422864791977054370266080119317520177813651613892640763346372132054386950998892343529336269893111470280736723409896799749338409016050079047719495535211136374791949528109241923465909205715964238359025184772784019755948565448242898003449416415316980936317651022976324882934475542211117554698322981057995195482627007140645306921045107901807572997445046223557970337421001300687238942616397402332440411485838921820773716561087139437785722887219490926354609259556061738455816883086207593226887433960617970535093221053327176728731771508726267043118697368891582591565270049216051556388480187987582259394629021325745134565335298058552446038061019194324289331498944449819381007426699942616168455683939132303051551062053894090132205280540537441993367189411117812349870968677852100168812187372026550789124356055527547893960365577541129360841480914783084160643644500891642901556766960236057358098002628226438829066042915474907562861164671211044792527559769715060707309432033251879741056835153797782096305272159915560202950993211615715767522602405568688754015466736212539058802249605664171640229880435193008711657760974012518939763872204474130051872668950220067147398177163057427238549767323981293871201597906717230523140849092822636228282180355278407095371465412401626669371914027796767471920289843535617649035956942508698132988680758809395429889144574143781890135112358957243403617670390384521160144244821656022077665043780979092463217233409179337786063347553614573297360594846967444003306028378846290792113619290324624883228752569101228517538597825676875472376190371804338353530643179995194424888840546185941676799534656437481893309839459610296377165981187994898161912722078671469559726075940401305436871371785497973402946555558632260494499313065293845744532945870365960912034623606311681844874993404187818740265736770436050868278521690502095902684749047976592740427820754244984416531823353036223545377580273877706386568186872771448902576559740856127017195696671546394167947930030088797863790083571500740031292661363844965610529605309926114846778163817140085696572931019773943708586135712389547869889625257224526491253018884797503401689119324812346694509995578964069382283268062669620416956672314000724773200630877872062490072866064024056331734915904543493374643198022177710999562012286268819425865054540394466809185957869140779620053244512437288364822031606582706510638858251755098892207163599641221446452967857769353490875964073309440673817212326815939160529728787240584319257434559257168089361675778878779796520212821293359988868119950069754655675883952659050385747683689839107823692570339467332603690466486763741507185774300882805979105791038234260049275080604210216481096774529952674631606054554492273022315311416510853820068187172540123390913443914609307423105455645916313555997609264986909593709120299961340295446884306322567319144825823416484807904860681100112557734366069226738815712967819205505561322033336993327486237622022182301072692656950527685036724055489386104800394479334522198153322301191615010916543456001316684027581385885175019570267152939360559644443691188437779499977535456920984809408173210705578272795661858380867093185042512844839697744559087084062320632005560667882229004777997210364746540689619570382778575652068010707917801103759243368752059654229307234082491443531155308842335193948896870458300065407740092098221865506761658678051934728677999621805318272871415656268040188820722655967229194584825543976467275416471898643503564907146862864504132736693027586077970367385361985553130499036929292612880546764447328797488743528979260566243575074424922233635317427772647916588426178299309323967998969791848813491597889116776324884357105526677892833193021579385410731785976760507464408866706223085681050307254739394471146526178719568483786410921507541736642889858156319694069522538291081413362725090291713688817764165215086667613751970224990299160609196540692922008775685694176781194174680844953801127319957237370385120852532372000458689266290149383779549890713501487329057647970150471199614652065229145598450653074721205975344057435622836932037892924980926680234968215316917392549264750258836587327003187607131492431642637712232737964623432483340655293793142854771352666068628657234630763486256157868148243143994714294410741625495550805005563530316037708254235546870004305206934711441118541969831150629991188390834030343178367330730261619230145071076073592667764322811360328235017735512144176751102747902571071573606801686731990010717379968316454149329374939543547493102256182723175102210097647650882117572201134713239770700874561536680635172906525402956011742068264921771121860790638647690468139167136844217970018704636825718306359518586942360745196786666295359658183839519690814530182492185068049737050667782388663779854215620516909368948312586579999877730714569048850448499992635662943868399900671690038125541388991625401261809194925699434320623164252970146144702281557274263265443226527225726860999850308671841943457318256431052649646399578363332279561731949890651230497212414048060607158908244064862073071962444974642312772877097787394692016950789388112510189868182367673944772921808598446990794589667297640721517602215423514291959290695836739131816901093340022333558417050165914276909660539955099703455932680732857202461426760419826469488744831081044232878022416466140001100924831320341865291835478119687218348997082650963498392678336253801383945237315385934534070886431029719549381678469553600455020919870983348916534224569698400105404027269016781716444277526864600957996070575159148406466348814211230585455406560714425855305004257166396948157611309779396595869884214342938244122960523683404352187338263378057474014676362029864414727856306637944113630982705664050412293459463788995421478357605747722917390141264800574130901292899454472520252560216085657493335639320979789643496342617145305426963472734262909118767666734952289266102359322105495678780393899206253659703276555253132160090140940981068896433245777839978021230121418917733799843438008558088379726509140019208168528213469709494845629207257488778093162662597032448821462366230902064993229552459115421887282708473297932019597812861469043809617892246068094961590791657377168587543410009278570785392471003554600302742723229391926093617700845354993709187633723342728424443184570580960309537344257680845058660324023583543618090654617358184414253464829847971993935611148444886638075464098141776911687581682993572988695608667556456447260442085456532839442700900307514976814721243447861148285102989092764490280399857310876584842787992688408394814876978819324396257000393966699638860375041501452809646289663912858387691999850564572103794634845956045001551939715704869966429378456433686016962603769859716187226609145089802574139639673348490507016494709077790338288493357089066858355318191728877267149085671361054215591249330204509693825837374606834899393198310512719050790747243011721571607901084519083586280143285032728181553009068295196182231952190530367667186820417926607131473646135102088532339319636869811445394005897970071602788307413994887700603011919331563673316467726061718901019508542707629488134059465295650810945129896555692402486133799863045346360375486459397338887218289112878883202483836223245035210079149800707488103790911881692542693839160043683899061524964523452873144221762988048780562817102226516475861583456451993803879077727918399604418181437096521411842759105805704748097549235664245216697980176591935733832134983030193949338570396511222929425302474219279334449153125148473510406214461606679205896605511193659721276361098051866876159093142631740378475864294962710638920934674807373515077579494988316702981115674242964387396684661946330582679768295650722329194499234877002523353153726438621546205381844812965357915249001191914056148017166265591739232338546792432706257881609199843257231783959082955853992116875101858730158814899688190528480082792011155024901393078007469101708864955945170249572774440271639420731513981573596736750459991570954819403755413360139153185951854116355365903658899401207954613073399722677208110222467311467955224998960536452420741622864802164693776132279506688921070277791376380340301393655727757532622362383115683716061526038106369237865631593377179898206388818820517899118473966481795812030508358428851253886181935153131542647800578226654849095583620683792896143398748445157262861284395785456602564547220400087827433664601724388864467507796203659185244821569937197948695992602701297522008024170333666504305113923670229332373675149467584616632069121331707370563589521983246019409380292401653306243225143416189109828200035130217352006570040049931152837152363521724799748668047213467091808692087470529760393721581534320124618250021184406067933375951182296260618390167782018917033366309406303737854015260404827016162572610473137832013773752716069276357928624822133412931975856118574170351982817987414012893072476298554731194160200269991637340145251799964660637859035333875204028927807980395281728088883241564743134777555982149853364772245104972550112407418370233255154537573873237949692873542293712319315769169359255453172731677791848456119444344290832709852611983924201410248444533199489497868610852513849930139811662854909691510310451294333001376018435919005917766359250444256337879038161317590410054960517815947574952673276393809711418081751903068512747368768211081618307089165400220696707864654546116764771319035716928355469737490384008814469423748659428302672387415061684727814327597470297440758329736123721827988431707864645082710227622808254715771413639456253023653235568371773919972738268797736915474998088868800800538027505886540746300866831836353090895689017970226004235773959504897594855179829816566667814054807765579588090965660549580270222867424908780055536646621592145320397020123706297815632651000754875127082277244498973511584103964353560060347013650316164077888664197237121595237952071710550800121239289159942246051881009311299952212149159202658692723871067216842142411011303328398377769468061807725975791094579724807084681097822103767765108108250492014361440744971310687974319979064763058524732094387843554944537173910281497818517974290613690500946397494268393643138849903869078216629313598028074771196095639505879490474360282204865799061433477997900690337517185123224752160336223646569603705132580338086948214366164582592646004029528138738826367938643375850524071446829163828782973526435077299894675351192908512737886883295498574548896084441727526404306183019735064963552209365450399695238449302723262828404248064285632428948558716058540259082547661947253842342723208637304471339878908356757055216747737720488362539002316991305642001741838559531913267013496536330707064192723296985297000216204986153308885751624194079269162248514638847505098032262356428676712492980050315838770417454464339886164366768207081386336058602671542297309383745126784454263161863036630036228789254380737843630304378111225440921053362442114568515930817208081410409863723586099955750876427005226663588042676246368339321050906378146413498817036430047696359795427175398755897912681583245952934188300956787921711137132757596058311007930509353658581221221518365382194794633198450501073085472408777296297224615081956392393671766486712508392839870281086082828643876752267297710018228965220013390239530710711527673520417687588157482123449368515663736357781978000622076023509744441233461062369624860144747720776798883670720888478536783179101105310535757039401682993194116690603233793694478689235827423446347787278882656241685754410975551030933949345948758516133986187317949413900186202800800163183978566604640489158324750727194777005131010522565467250869715453024987224016487312295082310994247466314592187153843964072888564126629361140652012917546716975999035899247988809596466623532460591620900645497545909901715617685107592942242474305874174656387219418824684945570508362501688157002053313517410142025288210328297038126073097469530499888983985845981874331605178988308836509932493524005668008210910880320749815339322847083136004003995001866123837091618515643665299403513302552764701365310753862557313693818297470961007192087863511935238055175259988055783556087033259431530803180539230874493645419202523415432460461547434233758657306201539188950033548776947219896211417418699998555151101125493340915947955057908974325069273952881326534006360741467999826494933551653349029229336188870196439864547964262054228627851910263003365097798441767440121457501380566767073271031402268971040757208680417661654064817869782537323631275928844845809364878261909315633931112694347571595598926280130437151126641672596170935838856740104152366239199509266979147749546267608558361015807508790596125788065226600575659803490037426181715837763325310642574094041939297665953849517177312938121417457768480495479016418375889732214444445205034309110797333088820681407159608165558094222164845595365121978239851941401967460650300303715254278428028209809298851674988580772869355374636758703347314640924705354766494501718597121843237502947554071657158305184550782488848546310419464513337052777268068588058625176575742869464554234339400686940080297746405521922544757500150295958472007427340070360122984852133363953101569207724362537350123870480050137846535752850845221036172668081067824239189524789842797800124384653774899291598338403689230149592128135925303039697548582912457525432486083284605688370704295218960309355482337460009015761336548167358500858636796696399642699956845469137298261981623592709983820404160433383019300869196416402903267746206485901359326525672111939664495952793795678936259963094870743633099445555435895625782541951057888287607082929951017184214504218531907871283741935572145811812342404065248376626015917428745898814543824057631919036814188688574171834169566344256036734586901416186772882679850895255173873123134480162520230280364251267829771922067254643355946954472377992330996992735320426300162048349711503001429715190294979857558274763259809714233772159769724077641788041300579755571461582925175904900156722906895124660727821646223120323268122666323671807804233226419603879609098307091492902148457345238522455925388866058470396492824336295854262339838926179582697462832436758567831554540542470979633514579292523268741991925208797545511981710690368601191817582694465122925875852940082768053440599625465919217862747197969552746857883534195098552512013763179556010727368996620959205866954455872499636002480020525255361162500761268210139370697094149224968342732590065813759781626191427053906389590933180433988003959296879107990760455182333638691348184332632493649421084433729888192978233622809009897167911447376081769727136176108925469723126658890347951351102220179473880225536114173145649356307945319175285396669386343099224099545521012470677928976554680704055671151285411020461394869696833035112236624961497824577424310048531124392549823402148140746617716794575135954007882066346696377660100054307058491349616561818776677663453148163569248875244663813621522414947221996656064133951932007189512115055334693697345177663265545991361977011234508247435745410466668705531664844490319381723571508262233152280586279683996731702189743619337288774490663024724852339512307540675267732591133609429067222767969828855134388344531456017241097065945717186494873192332360384812397059029085574543456479788011310080893634695886539673306084451920039719623284676104414753406583451349282537851798639383652255251195962975392377596171466632140281941354044331020887836455698435070827116026713531912587538316872849941919468306978533084262534961306045156876999894955184852388150922884640004922603030649735812880241950699505188049141610571599202441648978140887105604827811769655025325451823180094125819930142695478003884301404207759494483154463303449825963055519445662398380825064212869809506460314452009563379868393522258049671640885310072051960011209785134579724697266434145313063848689931672056014589607433396795079896223734806734662306301953123958146907155877715220672833322487623631714756474903868139156582823372425828782171489964465395740255282971104421237002277467603232403373108883913877502883004173495778496918244439901697652608381012926798100567697467751356545666642221214015625054884100943706239185598015459035218118587986158138760366118806736498260096505965936455532283886259663181165937976951917586291130372534593461136869322099365820056454723044696549512977792662358708356398916702914242434467203841360951808705912622263938556950578241461246043278648669412244081930775553584569775875878262793440655158652501514822082772736679455540581234135792042271908998132529547349719740845841699944380406076206145639705979395212214793716779227854858091685402938188555833751171902491461989636520694567315847963840453057915666028781237584444434654495054696345614622438047595060002567241618919004377318629407789589496551700749057580336946673675514603999090203308360571888148883797731628152175375594885376045171648597357549260674509668099927848154258253943222315566787180192784161254017045339719780647258250067146504849722473109693021385855905643835316250730355464560902225894730491203613666311672831965384591275901476528347114736158099331930725215149026226770363339559219192608731392354498058559088291519107216668493684934849487894298816974562643910163427920118841888632888622886039236550623909537247706613663910433179698986971222017066257469673061195041309044523844291087047953301983483023293706155124635119051972730618555727859738928961751740782174697319339617596557670612245839580167564208530273809805916338437590405283650952038656390151374701583954624973656075381146907685560150235471166038562917053150904366179730791195191168371875326669287837188562979207846821951805932396266111455099406569325120335871114791337687780386789581925101451897416865614345171142044604811660735152325645553818453342013044112025500393199016056938703947326410540573977453167372598184237495184752615989362336091125112321350059944928191236362861846314908975869799764604253959101865050768442134581642032537106993238099551894101816072666195203400308984050785658870087217092132208283002133006092438327132284173573835618971729965552654480523425581006627878206951340784254053248001515571186823086661447026266695231079342981370407515715076001832666838429697273616137250368858217791618793198782710771462517851708076386261183380694478215012955408879525086065103219845919595283160645990836088384164705484200848085865374006450159604257193804422384221807984705314917868769631136644064926310194292377928396288673413162019225820085516918672049119954616652399648723787011324003601664415899071069493359622581960516482491801301028400744930540507281723016263945064941267200064133357226399405749984324351568438196900495532104236329983979388625299708295344967864886333114703739075330496452062233808329716812246115917398697357170796558892220368150467798899689510111109942254586048986047252103718764036349105816322295222448085701239853075804664588291663468485355721933614973123910706937654038223112438871672862114588615984593017618614238629932937328831272852858782991404725886366289278012279666891241877388474940095521308280130434437135001324290341453997354778139491014890592966693398086735405087205680122837368278352584175990380144394264633577654675008054757418362082689639345100586986268482422834065214248014794652510006679877566248394363130782217259134069331425263852613998893315494575552024821955346049419566305015313817670043357004398421214688104520506451091260048498852419989451106682209699020349354933771478873262982658360088299321213688159048021165701701900038123566437802552491936949862351726611142174382360124265888956374199765754455801255775812422657493106404979496839039758622355552987536897860234674563964898322346071852350431727568838260475595336820553286485032428302127956662238736767458907266584017936489818748185785639663426916743624630175157052995157844693423882509146413339270893664002318883767668695355077299892876660036325175949588569624245733474894833885126369607492656390136135586409542844053345846108243491424576782819989353696507227051713857770918539208722529575342356715811988900981439676210652182116911779937533398458771990930894195865215771348529103681994821715411295104560834553400158270693653401697682658095202000336908224503241023750007996576757924495656246336442015508788526004356297325095131982553885982041311886991804499623006047077332481006150686905581688375385110391036946529630147011432895353275388399019106179310001500355520536332631826555267056202095976276550089304035744553435858765484368338004191643025969620804564772164248001192233800097149490158937065770979463361559095276550335271487895168596315271655247777958090495924172645242597963024585634501941434809366260771440756626940994210702696275800067662736060151749568040660664138040034258604633024834651579531814836059374383987658372345293441691403090513172943624826465069595791218127424184619568934928491167616354674392902812751210625910968886211467196693662136887667681423746822803868659320967677552376945381016480257368370610463825213574354726521986356590137420423445518197207339370364434600979346428660206978926257302543806531582078108288509060063072650583416637314422592590456360805348253410595269099568369654520773164486653649583677544035927710586103382563351234671325431422589165325997087705363459028303691999542197188950513682661169672132629106401188428801462222990400052523288046022059638658289188028484568442928367394309380463657542231059858334403994239037155063189076439507091332618832251536598670903182008959690443955299005688997627743443981325704728894538292021931562226319073911898699367471930129880287296647361179684199548102573739611270337535019536948173383033786324448300422384947468721703493972948449690341464313710229205142705102881841693568670889462162036041223675415323589711778514069399246687868801762316650457930296532227168803013777402130188857197367886052664745960923128842693838852894054991212572773949192684319037686869238365985016070142813209922317437364220310147679667172580964884667848035704878752559080110607716580821962753455425107459194135863924490503236184750186769425825258484734899224826317185984408488841196741501228932664820198767004420356406979218904046498258439351922385327183370704740474654113655609743112030041342747211394248766442036750288251222393845842728237017346719546621831297213469407322054041492908344869449446964084431262516815043267203649572600001768532262703125656785975275845945462867181385837936094695235166598920942617111191328639678543358454078605151967029708141340428552578059371258746453284916438748989752120970291255831755469992063968349574897684712323795792271338338001238020791904922134922061306317234019486903660564459904801464121747737548001304722501462188361011695451512076146592271194713933014958655398296201746730203248788697001958239192309247988232140630833153252805296459433884393006874741331560293005450151450736490621362106525979265833557454659931355794957557197410928325086365841488636129274692660773216344057793968300922658113398049084757544781316636756636960667911679969927358159635140711141632580519723742848917357129871242976542838654170947497265968642559220028436776969204901260454930740154052976764529035777102415598033561322201858287833875577380195979053371667140783547605415103625684451060151126138494987137138316719206996660404444024554698375803274761122309634517703368299373772269828983873536308487498124158877955174035738128771412752529529492617184191359674323369938537811455592000951178794293094821293345654577428600206201872381859544115891106188619245308180855877438532892361343893728020462934750649967307714921119272010867630721783264984947604000926661092759384336283436907627039096288138169656751661303106416082170594170228417601876478269608855744200552407416644977943769996974148848077481281814855584761335307759249467987835105620018870139109674830596884680537512387062318669466864621812048146909460342880163382850389815020962119384500003420861855730108168819314771124921695076210873586804770758018747733111399203799774486416496966928390944395011799016670819858414938364724927250751328064472485993643796072553206974786919636944824942987999843647286265559218359797579260609954585924980110348653341431462500006450165702261556700503026776572192799956544951343943260154921879697535427076548882552829905972695360036767911893682646917988179734372443853319286706725635262827650533660213502528373877775966689792563623710082459976632321719039155440215166014747563735593754399805782141227707301689545358425780307228354112240500484740606549755232130187504027721797958790677658962222929862934097772923936316195986108807526023943203674701606125316280187263533551800146565435205485432659988017662629132933571316495237706835166703630027897559778414151340760450618305673416963691821811306996668818361129699145437478410744522674975760811792300056794319348006066350081329178797775305835698282872413182939190065555476000948913477751803798755011222922305475414119015134730627796491817776384670798820621618005076707824691941355892874459714483613665109653821712985983487545145696402150518312074539964458210077990513336791908371540992886872499765495926265161828596382002755071346139444684867280190688984529997915238431830216350625669264276199076751444931186202811982650902368261333182050748256647733861811595042860194453819036633365739720076297319863803761636706049772884043078058959205192823167222063005481989462333954614650644529133350056985104023717332047322183718427820126764502104540342469204538779990378945887997462859513794670271809636316771690540236544640000563657050335943352617566264290516522259167416874371733017320577383871858365069186048313353740290992722666009218103128185787593476409754603467741649589510669293255491770554589581318296807551968675465294213067058055482209270064226842629759450053077974049195444402934503218620127484040445025450013534063993831630380049704447181344133175678947769363223793468248217492010601249405515899452166644919017476239369365723451609448161776247685468143472159870864104073847399834838161460871836509613079974349896799698504449023912912250582632957557080651366978138664852449095815901978151653512929139856231691382198765020045511905026148975534567153235223341467720568976567409205265467064077170761875003165637799801090746301720007149972493825875982177800369715582021117741834268150630865892973876846478416076762393051546459678970726480156690651199053574264009066786950016548408807884710606490014790519671977938125311569840153555970687224429744219426198546135419020896443054715753961361388637356582386834395499017407868335235034935350118032595851697241887743183931947688016180367114864561448626695006451197544549903775387738783559963857189801823494040566722355366655759811975113298737876309980018933963135567899191076331580572737741052302456178188013356570179554158971506863973419817711061172855764403570449298146505492861656684588166520708451254188653882876552452087788001468232174399866016716105628384169115242423457651623693770033468910197835809719757152173186093452038437194589997148932029939132209028399855129042420068929129375643997203908736101427995362996733855244726866224734999696677708161473815718101334825005903049118674456853305545908025179356714220632119149729773346441627158921781842919822383986115030739960853581250456032817540064221112332970894713445832379585011046446908381183005611154045344716744872163472092940879830190693720154223520764444720783207370438033606860845428836148995987401785553031891388248589019689529097241047254007668286081137750912274253875721906310526579303916111178657533815261823818251005401611197939017468301769882803621132437975115306866253198555134510863813166536945335885700141209770870499193573111588451014424100698304166786873565871352175581338449394532707633202731026970599050891002400823454367983810132742271823769552030156320482749146182855995405680582388054038319587143012002947028894994767940100395823021637559857053133897304695578899406648671720156906703522924280347119811292662178215399074505836943899953235053759722666744379271336113227378059980217279930011202821271160575502419737803628611112123094189155171523933521133479226918901616961972348631230769885114052519142581510337163073485011682251983575019770323411765246587640865248419549073392719711670144115402346005205261481908670519384016561961270544898192227827951156031059302586068350013349537811999517529023783197566432389270410597464511879977142326324607774179935444518780136803530474138135822946387732925335214523148129630113691308804163422941465019740479719985536871869415659868698842751898315635052444391060286295791740760284627913059523407452330178756675396320212804996876574462700127879819745666713075866026938630709209245497125835640474667103515344337552151613020114434345688610215782383658326499420532175405101974516211494464570839443876398386815584784712899934745804845529341528268091532972230888089036511486889824133919249551327800732071807438664991963299122440316891568725755218171476856233848056809547453193128281843002575833734341587496784435426647135942321230778003795936653526724411746977029566723700142271546147414741065637141648587278694851035415668341532029594256985336738983764557994976053369269457563660840311492802077882292797676156199111197375585109577619265347877511202779526964285640895529686198077680019064044438528922791450649926174753020854135700095966310819969409683426736722215025183023369000789549293733662221200279870824820823081311141442893408605920255520524428082400632610308876688110775735212791391231062904088874785726608789943735735249379198796980149827247732573013715497817797758728986879487810735197074393881692440661121579918835418961644713072711777662366022127686194593465554654880371618773969609715417391482063341402955421096371713258998146977907901051849356685993718839843150024979870432626892441064412738232921426983397187517765393364307416667634540036737418235218641262528926611836197361906071225470063510209406897718074122453602526051105104103490727939248819527118469636164573181556040894828911541477827003847185980993939906648184371032850140459890708616635145920220702417098670085546675132658669832995452872982144841175226135222288369186422494173386962552042390208727843068785887310525988025361096764963005332545599618665703233841979264088134098510864307539387206911321804247079102294341616427755601449263041527451420668296813385559769223326460369454869024423673720674123925212253074951212608276391206933761065579224627457994157806319950864984709364962392470406332026356303288130287933486817588180188220333257453972973439289615132956545972933916227899971112158737789035292553593183507475423004055584290453033212466960477128379121068347937184461112864854954058738601120524528992114514433265999333142915078020393672074290733764349291037917477361549862557449756113038001123012188068319924419087891672963350179373872854575588432723896920675374606965672687301266852808155002148988363200669423896313874025033458105081265660644818538451071361233681560247795097605150364374785270754652594894571530748866734297514096068850630612227561644136435934949222186473456825280774871929503936133116736202750050643256433418576958527369322219253853318387373271661184015871655308787581371264540497998529401107490038677772590053304505283667332882040851130361603797424201662674971555964535862722311420082564580509720337817559667926907235180994695673754308567327957054022183275865119009526735342705528980687083820391285711991845343481054352171003786605157450416753166450969834156670516427565077386913478483935464482715479434534086330725784359057850100660341610290395399330042187621175473449316490472341051673331371880422122298869507506841822679557287057085960261076253207202339680164706905644002045247487992452143806974325906424991351283790537875447672634108081216030131093206372918421084184714511988024102563003867639602859608426832726557094831843677165861337667081476564480780510042860276262934088575721187876759477767668425491967769132024001376681405848195176657562606262872979518026744011631932762100224391443914541186241917084846293607102492675925453206303545273291642857031738299421889986484711274261480308048329886746386037168038412741759556041019306377975495462654154183283509625859274086838809277794416176657740732892860680790793908426322952838257688267066095045150721971859728588337924085545778095869453969063692152502430637703846588610568700495172304699850889892542476021058692009986103247032160689437134775543659644433130267452988885598246291837478116566478873819797759491697608886164713092791718082906106108924389935290459011066134938216384708929354714197594707373077132208928678843834332977898639765074419355549763822577056511028820887932592186614822822419312694313644876157042595909714041965367498392764309456271629727306179488369194128421147501241364488019869301139523172727043134123114469594226145782909767938320335598580112590819502123145508219840467558420996617161145128940504979825830931145018741774735434082813610148032988871717729593414849040270060677906549099285876901191273173357886830281243600637581871354841430262768032857527732525725071782178953555088170320818811002604564239392612993418149923688932958962320574173540237000271512492004994446326993760055499272719717079563022014825603439059887090200332219317768080826148915750503609575411644644343565168481624274241570035074766719154074334972120185449760930301777442457151353552069456990750153605288913431152155451183535267137597838128832705023527820962306757242521559167843789416525881274258269753616252588348188388776220652757002488847503902749719753361215169939376861084591773158107714818882423918094590784478282374985340907767218763548648566675739180573741132666607108142029147624160053942582959999972843990992978896734852568566804662469664972736808425829890499829831444653700329271590955080747542805181756101178123595272501877343967579616047611197429099076401383477009831228209491485160185115141841635363537045524799997076491376926054771368746419055704844315590374363570677142056888665015219155332383934392470925039447929070291031659159947115945371359096505856961597207673185776310171928561294427642823430488723252868958742494181530954466540375154470346924587421712248235573177337379046299204860436703144304347030358352944775337448520503533082403236547842574319512153279204006747193559222462590275745265457135727699170518254919911414814000674362303230410866576874429072039603248626782246218068633011350437485477195686503080681823266264879296638665978090902906082941746965601895485350474159935326400170552911527631880236502196049491495382961547786229062450276898955548273430754971349481337432802785726536888495134551919177069909486841447813934497413366430284405356792655523059268089894394275207595057979504478573367830680068898601744653611670968371608896557147024013511951629509060248138242905180024474951100720460019597401092969855000027942020130345987970039442952696268530533175855472574986451021229002452127195267024408703023315922716492163460305585904685976710620649262379125230557825497188402427151761389882596943896542203886043892499731739956983297473523778740808250622581770079715492016045843968625890386323556478151742480335297452882908716579711280496273656450442244831241474024619450364322146518358159097020718590343262211265380619864694326912993226849521135009342181285233637790566341891018243281571092888061000018027541492510029079305823259597277725155236268858857597414684721613376445739165572329528253304156205881288217083181367994075856135317032295902099838440962146281635237071714382300287692819338728365820483444894166790689875420481103230278541907956758126105646744688133412665319650443398677698801034420725875129923665937544626914308754563024991008523835069169354366333186010484697302866382835173445201510366379529152020453958864939416014114612994551726877204418813072198266946412649909083446869364900227612796334265869124773202100817828251819775810957738404268063555120427887140278990401673875584899734956467929573285432198661881445327239172059400813784293476974739734414031910170655559198993277879867431625550720632310235792959988617199481788938547682460924612369069791916469920760282507130916495730509791825420583822455482970496183814003248725862639461696254034742201735725035092187316351340758649245624441608778165671134535948257471523404217273648249266020956744547565745612584507446265270376879434850388436826023604927712843292069190464831256238451430179086713713595084051490557717976111578734344573295622291429033846700178892312127693921832693059902018074357912889307607423945838049392853679198716078106081157470557168439379130989976583386190277555493745709548642541637025490780919671288227600044343275277111202505849048151949397131873129986200166167748255536298933110057278501296119724127673935462217545130250449985514385573832824446501611120528564190168785037295670475352036928146610418967637414832627992977659441951374928979316265027681390492302871810882144221517881755149662591755919055688491682945633675961778510256438901956692322946952061238038110226828154870740187742663908291320943213542549865628676682660500379188230368632892957554367402880371136400120987357192678663696452960939656112959709119760053121359108702690572031861055918414762501887377284582707390312652865943161298438431150250102445124122621502181001152231982829133745006940505906927693149931915907011047751242864492324331117411051515675304804216357763652805282981963780423003555212292688856205107743681441696605959330664940260145901709668354835495931554902336550069024375820340413397206532948745207457367804039121276689930359186501294633934761171307703993049516376964300849984515017583366430700230503248069700390873302521992967797834975318701707911575103030047960167536593745469053609480817125049445630532572471308692617034264887188914947335646077670505859001162136605151297182898657693737464441951941373293019785980101902173812689931873723893404355523541276441465787862335386186542679256686890927508830164097317662692092208548893068587856812139965474274555734028807917406975958783190310876381119973940018933912766550110938362918415594299337921238248606965838308551640958915246344819556617659587579258225672157020806512646986387404723860723299870218274384194942529293360117095159903261559231865589421726430555963539251160723995474269858088094443971943387994140315064273457892688714440501534169663999256717939126704554804906797313860162939746403877638654677558728835997803425620025545672334822200746251597968113744586957440424261834709319706253081765337203017152721169245618945003014477596345009401982560548444636436576572583382685834229577012181325209233777698391017407587031295831117336852647003850572001413562166171397988579036443591513620186159484668835864556917341237091542905009572799397958725395524582661166830464846323767073974444883659420062187008179125009920219866430101257416107203003832281752754606179667900883525929587187102273988089167101819045893543907880525850823495429599133456855394166463822537898266685763142071715304931059970514108850285286268214214887264135880009215789433916721986289907403217265309181517620352075016493520586769738399036509526105832630223651764182161084968603383489617815355220161448893877570435756075159731465921193341027614833844088717574334214320957138721032951943383272165875406818585108135079243125442641273237469041299913881250825368135731212796663212781465134249013357546032895036653024868383964780821274139295205929922818303297548495931662283849892321068394178075301508972414759274623988192032605477869077127912019491163825503680366228459262247447028532413893864493242520164265865523744054726444633467056961514674989013579454813088262856665520247055858221873875449267857204286628532259751313448343970886641153170007957958961790779314920458855450329701996993762682281119577673078446340338806645794244286832700372883871586946128292589458125104870141405126158456181349725117388353193888474207519812339999766116429797598761038971116057484016366364572883674694060060664140611896582888538176687294695143263828938543488510047159830973341426119752184056933570774737364723483459122057239413798555260842066695753019000775165197718014960870553756076972619565755100984397594550772822731159373649035630053875987784744338293294879848288033265303170651329684031783586794890230995674866783637277341967769803635958496137141930742294242255982240521190657399573582892551846915029240513200383541732451814312656959989113026408460226825208692182975805994824006334723218897772275770481864934070413821628158285482659127994574706715577284839635265001866092735963318041315072313341656792133545479302713476087252519342593106295062196412413490389072148263531083383978003425458248942714468965774450111592778445469645931271773286377552299863086617898316342452461099306113960201242761355380241444454895821592173177428154996148091321625576398047768743769982857784382587078575895047020510831271665085601097240076592175526243190132271570704240555955223355655434837100585033088507589049819633642169699746657770051526799009679063533133120171969722139954258746111597886887806043568402182858961417601452829898652546203279315664301260211689415479302415217201907496324932009464844237279064440297779303009764625471963376846804604948378764530511572377572355953278218161733662310886631141730052513906733844282845171525156666893640967468463486065606862434045503533724723706558868674821028024463700505879230139813824035763361312797213749950766540615439287973582765576045423098928966331863886955748769432093374907045894297972490281747881623552005636786392529911018263459559690955515785918643263758222313257941562558934613871070604891226251640235916143910183848322892215111848452237863277856524093373953552813453935259742862814464311550657679250993237728261773170182219952292306950081855186667128197638504671866026425379800660623676203790928907652248195712539779369197859046832813145258071972854136008378763114717455207379010591023151304900473033838384200058844862606901616222600008251649016592776629693916647420864299858786093820288729542889438569936832330799375754780675927453604193732832343311306993872267780705133319305785294647905701739339076370090996893202082452175302873117043562017345931131074316865760664823238786201634133123758270571525890163121344093197901374169693731140383164361493651858654876896185623605353562320824223310296388651069018308880721951397285209967270601923482779459959944333153491161470557407386173989771581480751922996433563553326196387097683387401056766846380812397787658295992258359842981226029019796835104171004909096199787971876380426198637620823288085022853553860358637827120822033727798945409327589842109795908619023910479107891470427742337971738459166554118778508572356022726852081301671634724182380055294124929561287096066567681943184897718272150809043405043967634308951582521030257088670865815775754344279374746409832907495044746226644103801169108953209998888184029704181426914938208843512439992232756993183158551536195397924087648915776318403142633033546713506939187429805292692498090387000585291650369064112790608651813090328754620109291736489126948321522688196632363365888505099218444228373090595367528363593767850522104048172909775553516190111663593964911977970529879848668848899681347435148673192301408111096242039180723986238595366159708232341444539499942380864017079407339921626086784715902848296219261579406617008875873393443729860175669577977370736132403358253361093152817265173192662714489378716288658692868350925758345777321275844645485522127602551944894451007946387694296222412897388061652316553709712509456241673370960451032239943388417406917277521249303244432527087912914490933207414586801931006307333554618497907222074581811031355401722811901191351190861850090619693480988009699130249142324980607108700468501726295126360509315110013964860829637676042387695104907090461224259186086450515291964940516007106259774666838682982502302193321109974037959485961553938534649416587055807965390273629437157542032059419801676600332123935975252927547278808834660070229246282480415291624541586164448603715861817273063587241025334005166238021733060285411300282294343038989131432787201330630731662063254803145237070899160981150739005165266798600102751315044844059401229684945391398542936827996563798839068088117309601755049010814871590531150773827813044762234226960446376877118522023693917055593877423110679139309679555937081543914635548604868935409419334679367410609993969673226855897628303929663044352693046253106616615177944491395026679672060153221065693318597265572261667005030360312322906175201261407134878031160824665729648121858759135414645007134125803384858582908262887854598481502915291693334991804098665955774270574224830088285412585417664510648248466212163629249523237097339313600658931353289407392274162454262121863640186465587998944059494634586110885991426418895239324457345669503304143253743387602161015568250550396755675752372156049382607772264145425860041932153138936338187834266088994743573165441838042194847118101441128221110105783264746187050759262597600383901159203977355878903133731554978640202899153486148226654511057252633683242406894929936943521021350305626119628888577018133351904332896871234719376238929814928851435458885744318654056199849884425068379572314932821482065292092675240806570811719522253543873948953761920290462981859074231480985229625479392322358195767333334785096870176049284130033985782480631618213651753141099719133971152825391186774503753950583336000712148223107017392822536171249477514008404379345387802763973043171512888056238904280817782425517002436161071104141944816988959684605912836932394903566747711635621913172892725701299436969283285415310406597210567627425858550189959342525145986573357127980904025684531508383457491617690558302437966639095145224963939941052494064632729553978536262335196651240415376039872673189768540332778734165781777760704874904298836188442789846154867349498836030137684597318035172639812219157553106722291509071084468123868637191777512176647208821236670235385020307310673234616144101062698888347146486825058991099749985720118983965316985293694797020763819574847982138932280700257477175184931821742405641059421273605255313454906988425346453927092550045165802078632940922816516017528339514787251434105091483389205075601267646068608078225629941035534221069533660283077693975972945889386084049082925519213838011608798405394263970219797673805683460154013555506346181374944170857112719730968137395192676340718362490613384016959313996886705938297590657815241177149179601855922551553460080254233162164604766208176939797707792270246194623373588399167368069910751660652985719863360142671790491792496106502113585040614051546291537564935756381197980103476780106506181987114877073705416299029423826643235238508928400950311759815138668368333183745712205116021415410483953714202869802941375990668422363085141850286549793232497190063377177419863728727132311697258432921933580050772042926088135110367114150832709741041152162607378404126085657818517374993420498966709129104691257225061682467945492343817501746864575298504865790869546572655817140393616662086761381231150940509682100786780135131658382329124822620434201820485653214867428955705772535025825809123065123161944732607764472301360550631722140658101240765927097304542463905603316024231553030736141606454493468686321830959021844469936871803884244384838160528684269040009523297882245373771987402893368843057578455658278844055575994034172918994847921857175862731094466712188300680560674123804165732510433180326017277911968510854861472176086061629337139807668833104709695123490059044270337333495381576053327888213119388399117395319878470396078290846232972582954361422959420957911563325422003053302095878947494618513735547574549404932400225903805247794088434543365914475211977392486038841369780826921587934992624611713160302288709679493410782286507533831541411197752346436786838779439280781921987670866620095574805495756045577767439870293178750212775695225064544198264073198290261661106810054527405449247415872297980409067155544796916953977322703239919611304242281279935648164958769838237189505483677900861735964417953835827635509048335937838575559387021652329412695908747241636672123382486610735993827439664161216130834760040334212765756496243498048234752055166017192194283285742411677592175868766137441607295979673950814757112137822179720989736267917288817943172408356061251360111825859640264725448408251026741685870885667889101917321635529922649766175472895510359986590995322069112956597510966977650283803906257410649833031742955996719557941487730347037767764483001607691251850872701911366793928360577468977526400913987096797243031577620462529545940770534371828872198385566712583384421209358604602040047766239652289384755232557590925185856357878858362886526989688731592857155813224441798527177935276906604254249834794736139692745375454153319575179000097556508270727258223743225483232007976012062486258705775497631770152981253497699320725628377909571393002016249894818005245344794578014535237591839973234079441188947546406755084848310035023793563816111556428074522932434249458136909680572332835545888691001953115784577514775071021636271048838355819201470925292833525986340733749313950976260829607113732346418244144991879814601921088973425952516459493465772682861834573305238861114488753412729698943682349720227831727387975624807475828774920658306173672238435307809125662031386840668124735392734156669360353803540527851429277267837877041245755602675081532004961389807981558611420966953454338304758583880932033941679780325837125694928444670000242109885755279415996508339921083486417394461883354627294292007779374247586618292393778591857109549565487021981860501020083538910270553456571429902648936076213137828390634381533531283207993081814055393867919662395787924744211688127252529758763408167309014815813208595045850202519227546388486041407614357567845697306699252263493970697222926169092562555050115201177502282674291065842647646565334385689958607399250942527961896906356697272391913784795454637611180705056902916127038878581190363769543351872230848332332234086048884577467898947861093136829972455405069617166851595027352870330336026160858592932935317006829642463006073887673872140338937596949055583925678041646517819942592892772925380293500146816783393987108494336793215811600796977180481805872598554472624422173283374803876439903791957101888622019660229297128649348430435647795051352690946833810177592295518706320445064943432067435803499580860181013509764600341397883587274671042892354541199051064900647966859439607650972481550301926378858946006788954311429498295716932742763857125544326757128319578760040411311399122430730656115766374965041405841683900167739079577739144871306365424486043207850384132708417432167275637885749022041145711228720595332021845080154411226875069373237587522869489933274314015125062575688464466497452810730532030824621440966526750332680086660188772896820301406099715167548068432793838614409861158467185368558427348628978028104001466253890191022444733962095339986236769817039131221730237816372621218279436320574508755261528703588119062931502036139560474799400693046346522355739845952539884146730647276209617178363364932135417415954724948775183168599182379659134231918639326793077799721807518531187094586394465421439160495722095938679085615172511643616163833759692334748219604718893212520858181605971590715387860995828529196590747807240319247253080052727557314570229278242058832128642393741190216614822212838378970338026499420608139548088833334403592693031552873683858824406669338205786793492932549630278593326129296011091054373722998233233795967824105489173487369945332521497585133903206984381831515409342457101824628388896031704223840472327627306796201990211690125751648235027905347163916893535595293010570788822779420869321043951729413152641383245839527066692523351077360200393461447684181305161933459468428017272375441986882281183489204468098900535270745482929769221239692684692194219476563565716842435908741408437278961534134441959175934661800171004517060602763919038489834329278685105621995996102176386061889619655074970618710152449651129344962860223081804397071819915146133266629543025677248089587644434316109502558584516280354113650103418830521737114194916947579873337664379388571862832576720965099263360647838722450498547902551962960788340172697695431746511935391007502974226738195738833196821535419277835755146885284265406762076755504869293301119154487360685373213012314461232729911359497490153480330072118208829491803088878257901995786358222256859767427040638861937693087569117598008379968665422399928387907317926072698329344875677346751386917564289389729687859096664295222187536737717454373964975117319838770195887962434399078465662907268627803936380332764195739974830291995448624840811925248382574385952423703610707077141915659006130239220684595933328999651447218426882415083733874529778802758627466707236366991145843381785256575328542647562320398799797188512981801368180123003213506337611869874648353858854919260797910866473716010985759345393839520275354384474003019750311618037433293246364043815065399251452362996244574729196229590450270922421571296082705887917307325248149296316241449321788644837659406582368560069910068934894399549223187026942068203246578200719760131984237062649909030563169200019671001186655607551628495630333975912048538036559782209193143585159150171844135937364570353239656627223638166248414788998026595863324148642336231671918275082184340474241805462590944294812931907632294833785229340556400472010684063559967621023354815586113486537432025899098565461077338077230912558682074703932119550148809755948127714567470966293946028287435887437326638467835630381345117429741222875236722542611814639246499763698604120040306839731429136398255167766155172714598322450447080355265023905453339051477463021411906867375825565640659307577687287305416590457719351918884314718499582559630421962299918174354597571693124003279211582708339650900672411923124746230519098856877935331877602974928201428616736911851588370381219148470053310632778481393225201329998693739288349193190383681172655889902359478588389995571648660702651373294416064485203149720441323718873319609072271099416349756807146571129353829529404821377312724760839451120231997191368277782273555285504228313790576388615112548548219215379305091174108181764106625757019081767601865198709351468028130663908940539055590244096248913440057877460117964680543535307428717978451768645711515134818988591531618656086328429875925781885530754057191998931349148674241880674680191470300454963572907948941136247647370132186338304098404648247543093267398079542222965106780105258624077945423965975279568788830799718102696926627727996943010105571050257747649661580464483548569711307744060452093777300542540034979898403834444064331602429411163619726809973489351024604092202459364506724273824603946209203163883763485037856375986274373393553949030689316360925049421185655968355171711528439844130725956927972817374975944627316083233820295925413949159067721859689332044121100955755644975647315431398364875133580610386011538805727354532187310319059833014082647745730704289092520411164296576985255879472637252072464042940104766247160824684826668648055432932290688773243393903052193218058082775488864538108998866034985121770351340920453968824623159661911925653118837254752099064229394790819636159200428268240992298321607768180858883783643881520438282646469899283515221870917121153729588335796888392768245150798487801182595813844234303425048065616535903589386596971687212082676101753026561698840463435435064802856141396040597225422284992938208450783676473832842619882999708017343796343434807808158925215012261729414380633640795768186335770410327077928906722969412246128087882962921027165710565947761509504233875379544216760989516708651797433534267517369854296664685558774099822317572549809520989409495474437111204810935565470947216744948210946178773335861684458907291867629577907632009804990932893517694191650611421544864301014103379913833938153745571964463279735346440391367264954834823434395953594472413192310609713714470280525598894180726940573729506575713826369884958436565828524681103614741103317146842188770582330234484751203446836617153604298569076843767024965557130997504902746986817475191947156599257443539852388335888002050694694211751840642817690282524562455879769070501109005167862669023933236164504026668695839134358510597322134831837981842839129634139910748491416069880733160486437237678061589013514710839088160968096739854128902613886925379604673939299604616907441364459410664481064988267883041033002678772238570478288730693844153949704777218249543746442967658555425885114896903851569422086712326125060932707108621030814910041727426098637651356099971880642432701617077212750462360792114648461459471173515667357326703816437787992794214442759148305602324278107667801198718900688258298912241856444775127304924467956486143846790539551900561103389444511928497567649726181947075226764061030005698189834577045671200485099652400519690065664460105144930001931451968433651521882696327133275852558329395761192052457993014439459882127297892309055633531624031168166096157571097652090315125742374123969485186966584264860492388358523643386929771229217182385688466081446293214764620677761686161830059740020415771393942417973668336653768129544501327623123537756056450020856161025541697519091503696376826997631038501639923104558154714728801311862248561123152967416830339633899900814922417918317962084805717485202792071093835072416675711445116743644626118264339995247265553037226088981481234532435111474351908907126653230298360878421759835994072978954091892307212533898749533472582773109114072324050126263348996947966375320429196400380826746092145177795769353584380020108835590883688478865791228122342910464605445520097518939833721978013709213247919179959906526809766721464605479370368174647526834976670041947891807277021621903237836278262625465400302725086967937370652003864197507868850414826601977258415003521923081764251801924911313505970684011616912805285582515687321923058402863671620099605668984787004976594710547430803446529125328899179969075345675417519575312938236698308694379473963098668595319982120582566416869478484144110212097155065795781737202710401966885035846514697016395452629602245238956450663757885330332351503253809252321807832246928762480088569947569591147822466498870813657657028434796232935278139924482045964249285625947636402675894086159247388146355902929448931635757110443344210153837624741428712259632517874563084407522044563022356164540922108552784355533471973051911665821852596512039151643575641691550587890688615143781734299484291695644199327495594144099495523739402203609174586531382336904433977747989745734321411963513118408476519986289378709116369778393031352769283310206512142300290315140647557921700900379809382502323808656988000559158479744746918452944265466193457804572458111546147076786428624357334613771912272043072380533889591684397757890843507179943144104693124707801016648700642493270353377225071683967781231975874348059699331886395855199637482908236840333921025600840637198746815028548328757397156074682981045613514327018358257657881110223941039959580055963136934818740171455996555673545973295156101045876163513114782060385732672875198861010972547837793972648217131102003063949121549426583789005484765860832708175696741967918105414646141746556855692492803754027747970476466028210000657471388121437539737082610421274634093899851871118097431210686597331014187344400561669117451605513279006304797900921410555293034191758471345280030774318415647414012995706087098109942859961289176556602491500237698379606021519409745998464796059938702144746627836530469141419681169122257950083088321122969501883270466429518246741527167842032265381659283777905480530479339718839811231396838877721389439745957024949854961259164638119755173847955023004465668862159582807243919638073639352606344629273488511724452027706040299665879428843673779683241462106836688228327929393081172200022691173338141837775199940286509150501112154166844329346801949666866495663123017092768812111532541510094146613491301023914146980080867374393133248217999434242077420374421300856425220518781859510843357731883168181309180127459495744037686807269885756013810796497235403541224070330248563192644524344302033527932749171490268884549673196128554824197540101558021176282826438182510111999897906203959611074092124679980725088017410270432356771843017737488268628265797959237438187918813789082428270781721446207094356088215541230020721438213833865736647095483375967648143514291236866664422853538584553874793377871745341749471622310175917300873604347791080523533033241991002840158365670553395312157265335207229536440770554232931655722013106295999259325340004135420030586919299060537698336613950522875366663258539745141259454331389151112605706740789117419170389160047372211041752862800730116738246415149736533280642268827400287492814301142974327598367780129226543939992957562878854427381371717015833473207495815829767744601259657486900891751858078131953304429085884135394701088909825486923377673631574033315881814473174000279373106899011230408706073053199050255600736805774354206540068855639213703298328011174966052658315910954098388346973767785122718131660460168052173607924509379670145102269622970801106005601462135837819771672245028228318022537861757480932872761147961193184104822572749812961068468702717385168751222868311595360489118522158299071173465609263165373192985903160251512966497611609415159761658399001012910023906926151094840055869595468122941525272098983813755978312409615612031233784121736397202540327776076530760829185825031054750408381722502096907926997970188061501100986402758507630717725103356503426642664533693614899438070594532334911151578693334701809050842173488898441712344583548095656666323602864116504789563450984511979147340277170671921052275335745505936782008874933484050444719299313552663921561239673470919685524765798971748998881940515418823606896268184873190219721902627948530933305634594594731335374467707578676251294510105925062550323403448160903410876155363211820237914982317432063699801292204956694414310472267733632970909703467419918922027516625165398641582880741756702126333287386046241198698890841879431945023788919038522276025913069738371065296599477768885825626984024940540512934774350261592545688596016749441985828168029770448496046514392941978903299217000801463960215657707721149552516200960722842691113712858874758788979017471663651856567434724881586190817369873533603013813621475193621103609746796166045623624523581132805804080899873772424126565738846049984406568256461323964631699308173207552406945562702406311482586156046947554987443242410829183514376131823323651045462936627952880166161098808533924525669765731186146741877367454023099943808677285742712276935038642318928888014534048588687608463365743412338733954362036645637217108657508235934543354120444616737895298818080484276705751612467513592276444591790978290617808574777426061405286434604149467885604384062962227209875290748185356896142656241905707335844210949219947975467104596385641704222182341915281515476709775472639197239572353403074652818746850299562977774974310561132704146752792934331360153318065650497936767958528205231608475185122391374785401029152642317818565484726690337971489389433775751620347393355889176164134604206582196413268315429951157341436963676530829777927398518911368955013199461790820406472929484509501430804272186680420107128274169869741678170437986141039985410462214601089237408029009695986214063639889728992980480316491023910379489382021170609894951845071306946222287550158757089677498685752416719119125336005324146999314618371297555713321992213849237827367532265695645066316048595597138878328224857537063212494466431889681156498315781635275451290593641505459051511628135229110234516038273993491816392368243499978326597385036588617608421496583964965574065743524546376769748452874381228496052918378184261916342215970523390513157989254327910064830771868883351160728709276172632910229961976412313432325145226657344163325901587701026475167215392170201737737044307917734468834508562229000694719365252788540355554103953305301565546615054946247070692088534958557414226857109635105174895564948160233567958453531947271269368256833393496502448146955424013557784948136681782518247717426799023417178080820486326831547284841541670760723366894388103169643815097123620390801368861049182908417283347530717190743401531594623089233115734601857701829065500885518804306024491121051085128045925190280993062139072819617265758198777667286497758329936338097951499322769930538181261380352236387230251308986155039780102155307727159965752617493230097865505247025206530576497146862013750759522615532541981424566632945917386589505105496117766256638219236369047158339817030570010549712530764366360918922752810321742907936126303188049433939090671674993900064729937412184858258698315931727712836103624322051852073021694711266954907973320918692977467031967712018479719825400076427897150561494050494038230148860614865407186412166856651255490818512874050845197455306341635735366466972496116749174155625448967182834813663348274423522551461188047508994587028363033362451056068424935263514174911095981083032537682090754795321430851708600736839445217528773517916341502710480953604644143430229553441621555866212105527161132343631988503949458785208936753431679133796303462595945923483272315509659507503748585737173508983790464883235549594498690383064746900707039966696434878102200577360138629935154134488163002282801359214288253834422005272861306061703053608787504349911589398548114373901457312628184089865683773651754126871836146859339342075520005579024238893159289646998001216194123237077267836309404926159869727858090737427554099151492191042251396075783416812622257595308643921921887574126557144730966787252772453105055615505051522251751497341305694893631049332349351686427994271390145754567024614363998419062041262600128309944893240614010305790883091046734792303759965283831331448587547719314230825106546785546759576274359083000522305993262646296206902997083963781769404743789086485202209680228530724826880817546800510207853874568573175756358592829337044502746877067723253812614484961719091752816699623583823596593968479675110021215709950095178368311446036660000306132417117286525099854069149845582237672905018361295209459293931891778747702096954176847481427849161151301215407448048429649040007269351765136819839216571590609929915445408458481298184855482424631002390433666086076976007725560249169032236298293349242120525639419939130248364225524098954158148147232164965244569275338094154851080892640608266309805618718196538822051824567723196770553377643238540647446493281551205351377698790562140236537875554205338766170390511633807231789126409630369985518718672023609576355290398798747013182757282768068250168938054622112420131438294959917802807017460926595109067335223264677180800973901086493605014428880490669538473275077337961190379314095300581246555706081009105778015218760016624569645478049750860885287203655556686129744906406892060778912866722303609404729841408337418839828079274315285305930083387563877167288088728599350636535770491240240685062178666302493385815244339424805191446911020886589535372975886725142814437972309706372742628218482890657943863617038989058364466083143712921119183449602814890039975345855964676559668962096313183434013808337001564433877694862550133313676899619417957145250686957133457886770362753082568079338656524577611181210220378543047144904604359856562425111560574403690256158297013073365722549202419957470650388925486587637961389098573082061807985552804758695748306627307211347250246360225568052772071960376367522134034061943192223990524158344823970269669973728391691313678524971407311279858598598569339964054494983347815951596183883261535780197584559878516803189788593814932016842726578567179327502463874834932622552312447504084585279367890480191888712477070295811443354301855638943743744155984661333667485594160572791659035073377158825816896404495334636987137952541556354814474701020827529671006064290345209169178743588552921055026454551430565982374053839031118183111793882793780726564106900537114103120564614102376830364478053509257349010389494212998610898894480130621016073645436930875086185719100274785932435217597839745357529660440020312400067447365921653665405095960628972345997859175237106631408024775135074003253769879412775797540233442304595705114095484055651132184502123378922456441477784736148740516732355901663543854460282490730132636435249890389056130609019545244839252659687493901237396373622279375795155544820510826558468503672105020408938730508514798361233392918850011083384753770708853566726287092100176899823448929245487302881864225462229738859489775678182219244877448185594452723923459611604763496727045731194720701776937621546851505298955157402569154710915665056789705883330589687849084206582858384687076238230958345563340659596094054339575638505121351562002402476354546754109105802590258401071560854293144920983467529085851897258143281335275501422467948206758212859673103661233950851178281400937685923049953515283395135692619581332766511367853443627936270384488326162490232984802281552666997140802064844209071205938052252864702654276633991588616156286396931074817452968724179294466202881749304611947041695372805422390007870708678172132669335411739017828322291529534790343829229395522081991111965099505712893039735761374266065860691746981810755094434990767507691960079400773631736188407375025380420174924782124361321994588392642778937909209089317062203526387745950243858054851320178599227448533664534686388411057890769848822982680922155000637110634868829414885068326979553592976037262730579538844065114929602668010371128140524598741610807120273940471187561980342369838581095866233240794757850084413002853283883034847100482579215532281070351001185845869958661935515615062522783009720041993421015392760198620266716535277483289847572594788005724480343677729736009794060456556541405109475405559648356762652056608107464641452110683673688000079029975190998067554356281369140601425279255515753270915693638660228695696942858912055532290916946721403932141838737341141451833287007693600508303996805082476570984533660669004731199487380750787722298489141921473199951953265540089845665755939658323134601171805080609416065724728577664415984897922889399233172742021309903875087266061741266831593002553697942396963587355813871647748447106639756089316238827699237491022019871276155903203818386606968566559972921881635344260906057190448556408049401944828491631812638304651614364045067559361845765448182491746185290402347064152439037068262871934048972694182018362027939724208451203608385172207258719123297053396825422507794665045378989046295429040009042963838958488105912638961789960970438306668005073967792897946052270543237284996605713625910216763140014472948023334973383573004548786415434706895845604983587686407566810754558236186356691047328197886292284454334371857759628981374020230830447005002900108359258988083760267669016814556776505627014731027419197043116163620725157333085890813639384487331197099369229469696315713565266629417956397459629095906478786749751453905759646270350161679333771728746349757479103291598854330418303569678183774783536586792542137676378952192899693865774004773103140777193379974758234562332482355595461363887273246225822310838196676349693295197361396316177687979472225644970071238503468373427595555816404529776611026839188125327941487450661094878007913446650585780535756391365249858627236948500787131150052607998733813220993660945591561407846480976457278957161872223840624986824557414071795297588209011901327872612487816220135285892670568348742823642276929199476163630638505330802105872671871595041529958603157281898902200218699206240706233122393057766148879035402381068744479455154225909783830766825446331338158089969101387799273146220385464261010048863631547192830009727214634758326810464178733189095758685660302748316598766995578580426627264378242692680597512441625603698301686999151322059531081621067681221113926187411057148531749939785315225623959270995481963064063451265446742389413310913422364634951240781799018177054812761394296380708122625267884352111862262743272144087409484619480208622222002947143289566379761778446778926685615861618361405793194815682525182725344933721153028440303431827501131948318430443264443846345556722751275641915606854000023223791770953515936804769093674978362901120914256164312339556796376127430787859134107512684829294970207954638188757539854295223745456116828175564053478299841405099320676906844244592131078001087501991883126629405247146666328568137917705598463416098670688540552232301591704740803856274127187285933016248104215064266885747345022580253881620281754372519725487391651718480912553594136309567507234261476297438207849291937438116730917151315706259736477492466586383001944375852770122836350207799321609422796888216519137685208269572592462629961443487572655928151694491337419247245496209517773019765983087867654029063083682341980196836181773633101307605919311235985425419205394896682349256884322905309266909046084577135053840317092821409532815841438223312776431352558833585639730295712641820902763750744768199340865396816622787424707307884564613154036313198603804254982433721822272555721886559598314699917042988303551291624998663663284013578902117511621397804383965378316966431912201671522188946332894712941610972800706267088478099652693839064947819186524744270007468168657856532188364441718605115160482289144377675335963912400627993283839216902101459695931926260215909942173088926186436406201624929143896065591250267780303840640241273917198344219451475722841727215582384889675721036795678273431012944260452960103411952642891200598696025618914522802156810126979404570274455053935855519649896716948186972339850685047399574625898266768033917946565488396476496384147294248426858055310573533693581469158730849924888919572916501782231554633930981605820922826922622805143324453789652231606803450969680729932022972006780766860157180363162664094803484671843840834538120670852199748792824909105158373619064556174591244777038524502963852527080098118432090343838396480595999518632361663013698055406007320815386231150360750168188859514567671930426533410427451389719174820808673436323367606121605446543907229842279703545432028632693824468821722452862266104389850116575240172269858027452582370384469607472957300229481745500466103684335278431793653554625221783319807727450167923694021527466665008674704316841191564093288136506365275214664841034170131046945416835150690886705798749760027195946611213787689737689168855088778561208053795347906279860151793412331723152924205318562720244665044819754470301415547452470549922260411222528801514848951468900872935761966089191153544395552725654155830933136512219640851660051071379519052639508634866950652876398170392791959147785584515587326884480029490814688906130364619913670948587616866126487670350770986152728276788972182727087888877052447235502848109897760249454910427604576643959945652903792689229430456893863902540308000248236379055627506702869578007171197085355896705689008794414774621323560247893731420008503293621312438609028597963871654371156718137536380984735995001148115613480512718802165325133549624952215027616382483233010004885693090682455860999083155799405928173998960644260540131088625809812359569337477370784655326450539478289005835479824118103059697944030626483360346592904437446423100660521493955526465943700084643779545555132283254444059881748851593111728304672051803280473098446243429520752181811649813110911203145823176895699973984790740789320765521260231206854367388837262228533740753037838889345593623873769795724109733963536730821331383944605314923975128550046001657362381625709250117401029091767513519131294197824813334018728314799145064203782172837554034772719308776371799410394723417373334183134785430484534727754519921467329240642405964794411689453082267217425092957799515309555981523726983692204910835826536477703798298157793756377938428770505281558630669637377504056713860655799700109464591461028981237106491078113419941205677502801930061555341500025449933495361634886770881164138016663744917176571050525752017941678467255382722525764974764184092257199322551631951705689752835836234814570020856949554277626239322210836893505200402768908636582631163712534610552195114022386763885053156676322022817478463204653051107043646758277160852231101383336508288421061900948377126395730686275428515238460916963132982845934071968327960820188348437772459811772073469134054085417167329149787689042451335459036483631109484097665894711462264932742910580946614423745762540162527652668926844053214905860166401729348444309229268643945464228423549209080638662221846589212171872161057483783099195214340207916483890019666252968987780941551155753641681077866873723299567419984451276572603340094882797308750970602330414749669170528836133638121984392682264401045524532992615251658669722477809820711949163035539357479052068539864912782661512831183059074611311146171613865825844023421137904124155140521872906787844615676885275540693880576881795140030157458623787377528625419249578003535918756596879182352026365223013074006667490360927998675302509540162846944696098403947759729034436399549867096276831491937736215821798565480236668197316117981604571978441832041664752502912508376946142064218095734481629425757424575637731475719247824717344158523764744442370134783457092347259541758287157124061898605959018285638331677456744566720136929040072258933811944644343927054991391738046936735525325394058725173032998656730364490722797667104041151566089537042769289038669434754680150976044057408465914497802462052493954169668530860548662189461794100171102094907351773433589411030761139505060865315198932597781815656134179645861490957697493354823217524174665654308517968183206364649771911823988664526989070651730618874042562161221023315289349344987313237423767370365802234905780127511111499264674746940457319471664420032944841029972296681276156557062487235607130939623464278986734625883839237890984947797473170873090769643616535365912515030013240052058954722749854413272846039446929301571063538568489741253524260895347865295235842938831603087220369652329138317764840863854090218878135042115569207436763637257485004286562423940893250626391410319068884663530227599797891529409723285506654040790808555574312353168042363814719514398527094068462183449615559346189115385646052255113370473372346622965176805492304916062294034975100570169110504686165004551848049486711954927734567912067495239098469292871064864174124429678682382600317586148351091428629481204449729043209391135864995019820893203075113454052178176492414731624374596982292446263683447336301427031743366444968317624126109110458814171897471849204182826966455468232728434704668990832425606450571073936706381659009477793361225077430198262806955473987282682604138114872041415116608848120677607235101635601120489526487043811380369940642605059097635691189848855808142122967090033282275579597201926996523355012119674836589420083906162265007945422183396545653422682851092722100456053872434118010686352224735918152910524121676751695471310743960357881749509960234649119271097326747532377311500297203224125881488305890416281457375565889059347597269006424777691006341143633102801082857268427715031001991172221609691543098490028117597809493481634347454644592826642013789280257951115748877439475643750165989968976446183121834246579610663397060617281074503605016175558759020511222263771713409152837509861960724620790955861779084275913014730391550734126952377635504676493855625175406230908833363075882055070602731406930979123514964607126692671109475674975598283255247088179949096495300042620961105264613078946207753411329576658863587394889843147143762835340008921793681594713941841814877603917545922804769630038074231415027941529049073703601601026506072225575630481846417668978774233533852915705685537767361690290794307781798606323944158899221308450724115937282086916330022771995625123589731910447707862430168138917096061199057514404132108611904077696670510643784658500451805501646094663617475214098455325602525976896013925708802483187444677135062290962584371751114320963272886359648067043804259192237960313122267134140419192975121528751435838554169215996155061486714302508400887835086475163899614679444316361752467348609019426602650641810475193648085330424210619514672443596971629419049009347363054317511399658187119803909405837891965960151280784250074221437493367899582585825605698998822656689305136867832012620019956819775292062493862999738199185554601817650914335492126224350721794203251762022316989998636043876618564056103449966826367459533006659601761572952021861701600162924549109756170447095145159861889474279725913967053720811158219744383311456656612971437720442301680959435226476298326303958704437731260213710827371230187700156079099936748447396231986609593373312597017454678525980550454822996860621244092232744202749754743275460731534895253478572774193837099588376174189689894186247430755825222787183021786317634100399962414239775343923662293686260639931715006517058733510384427000333327425467381369013563397015314102164334596953697835893563033366864217770520244739278985294606755141240357604074120617240388101873487805495242675132282889068179016078667269983273389410695984177959935872298522718800927691478378139968578089269061008474259320548329788106486028188892337271364962241692298595969370269569433934527956465432156445918931387495788530239782530610898399200994679670115049387725677347885530338716504814166136876745736508809065413957492957918881812171658752185546928583362327138804625553804388712848151971092329888305186663979974674413837138305150929840525309321774920516561850055662380735950379590442240443795578593348988693206096808351206930280996881588996617638461190124618839200618267127312838338866004169325567071119297132306322008101716865660413510226862085372356792565043130764982649181097363155748021425191035588649766039619008894576467749859112787588453329306525681397846911523623684352779111291415106306524195745751193497364393785845685156126452046755467648906992060756504114774496370089497017588922847588591568078539802912823221504012904708072960474425769960233752954349889481276071280897633342474263575850739513693553963336300645252174102557093609343538311135162615065172793530984805404989759254516955642378085788069692755418253087940764332116783293330313312276149817168197312296886446147440876638055436438505206426517105894096497152628842549533179282417273713701963803001148468261107236163772103186028328469478029084697955071606788129835911352191731078681359746943960602717020190389213951116281450453910913803587858045170342890241931660697928611907127220490534144526102457847005499152007654680570777689707247205052598503214317974936855706350175601371055778016735911752114831764612660523482364950047381886768476723772356374430993244505038027713875493108356242773433289571571064989016246289652552408687061707606583905853542486721353509335840456612350058209597481463204413092056009150805924206760024268953485913610973700342670212077719005640426030638548214681294504755457600498276240096045544422039697207752872286117948370691618581675652375884800763960825368871251323132852715291299444125183422094449032842653502242674890137354774234029007551102941770317027407423410081441592646901808667425321909887016958288232296814689225514035295161191625947906530965377801365067978421822190424533655976895502817455764769392986695174213824689314140147795997278119069197822837362898346450728793463120720829717967312537490552995955218714433718284206048441212233568779478034247027139873508981076052654379902435213758836490162299096966370664400095566072166607851001210219873539021109053469194420239947130084212066476226037635669594468825944651954677800039684621988532415761353085331816029386087089890411861852132351495539994882337531946446940686889527473558188235593086739490926562480865274662363905299668257341771735357124782272005077303633360250726683957995857460434613446774480441450342386622655956558224132226606437510809973767262480302601646866548845352531999957005581633406383871950494646703935277743442811620182365249246683873912251041645932370806692548465050097992310602008857120477944439646303038116937992508351028016152311431198426112914166245699568708516181508483511428343069607103771808114215551816466840244014645924809112904630870692244995262286965449607001306671690661724024050250567031671586804016840306930330865242251814110642324637625720828176242238190465918150612774691369168412977874022337598416740840629897088506896099919352741692283398049518460373194177756253906784602600819111653988010099827001333314656321229638131173993509244961945318178354481647239308325255476116855870897798680187446899506847981733154655579134809580681295363581876852696551100240201000432981750920158316079909751612316599059291697944902892495841533069843861943956780810186677182111378606511927160451630016351687848079821228421032813882743748606621949555485446643287096128045689194909511392973085483469616449105937352233350470931247110836762861147515619903058657830693249470785455558544050893762674895203390077001945971166739325622510429948272596786989155755621115598105717148329381826847768088320976617070799889827809277749481886578340563677340836461288590529426981330491752181274470803144182123540773591855183859060104091109854592575539043451048777618891619799580471888016959774236659276437585315417652486313161932244660640609430094791971998809172878541250714528129197019614621070938549680421925568029980533715380176627813830790381976082613551306696382703647680691599688932520767778937845064412185366084748846647565278502244150293493090706189207735335563128765035029083847734765402187715210310165866023451539237348814365213695590668727048226969136224815456264462375885361678632616081269538333186525488032646285346615207281679775499558068172013099223701729049651593738670609157702885820776115982076019628831130331082832872990111520010332789829016240846155229425835334776585146853779567642421585445880922630121602187334318032766809335308022390988575670555446044653102055196463159695896576411534019867937531886303036415417422110995812315023802889529033828647418995060303607073710017426751770473516888575724931004588792595423325697536601333349612444357565576523571729652760719371932917992006351059879209836699363482124623896911797047668007547770540761612699801040601934949795342929792040314535270558917021291409878826883670338228122396717189522762045397669460510999278150274943632697915335706175137758338493161271848196541019199536291046657623051044106952132595389592393485800090942539090335309546531129768806850360426668158299850705883766955454804190416494270075089780356541455691516186639363173254898174702147820660646963399390657648126083624477389848428645870642806998235726181740932736262772024907905313484874232643660067442415830975584681510791508618782697601883145228309140369195355967291629860381371071689646194623394729798031499600565916644659950651201898564264176989847813101544706106325719193545955306731325048704070826582590290774073970051731006827906756861979048941965578556018199059057146777479565507603777211304443067516854990655677082194825305152021059878971231601626011309066483840374396173036220838679641978490430921559994303753066627775439860519435942732051002419363106923294782090774706714855825504489822400319110107621256926573127923014698860053775598872773625353012941067046903956720302258699741435589619327057000376454194635863207733494856637090295485421883763629000215514318826970050638338544913736736503798395458410959155750850568349956466430807503205982163272111455847848051734577450495405236254055815415466264346844647134727460287460658552075352622578357608761954698865495639106126403877551010038854549647661842935562506111333003888936093321115253383313528548030217359587185182333529540332639423522925551748892574156420590214232639273344007563510544854102310382287814479919254864285302143739033510883465759718494565127487593705340242313551386534299262917064970131394030744385575218973629530608565075654440158604961684867690233546531235785368636543438633132027133561582350610144708500558150918156500534058338402100252588619503531346535691346146205364205749695121422835886372995417096074296345683863218473248149370727441317536079944348573952478237440629440377283289256672894648609225067012533765579957708353324840959808001243006404937046291106970335939918714687160199767140324022649986142479667118505479969548362188022412386249467117311910338141454439124272666090667563639412354164611068950734297910797179607791026513303025446042643229173820055982316241540640167527101325833896234257473400237862202748153757240609270819936055999203664505462328934071756448263835117555132876741471683214771171073782166918186570904371839858397920663890135865664799236695422028207420395703575764262548627832972529042730943517523253509445963345550747039417342738650999692535614687329348053567974499173911887478043516509009536396790878151889910635597900133240887452692277954201305862573951192641870791586348124271758150262660545882025867272688755383207456861340239509858411220955374277541882214868818835892906774037664727864443827035723972766220528914086239973201412049861393651862782398962139963062147174225412315249885580293303880245005545771843206657950347729704309225567866449905244237904552928605153914069540329981090612358427930215672903404644223801700849714733286627650721138462392541893339538226852216649699381978092744259596359650723380073214117873811344410269668551856348011574347801832398883882713240526812130643771487647907966577511947634631042539947764229559579148202564602511398275253548780421278600261422742042103333221332122286767055504648779384442917321003309466212758430703656599091095908439702786770433587431348262505408824511627020131409511696860740658892077629232927442235002211860283396975139631387256843322958370820854177339329017026732620846838574404120757633349795570337086046003163729736520185847606747437652267118575364907348782664467809550918877726156539460370481670210323960591867993445795588645298154310515343322610465367853710311348988318903813001775921374020447039381352913932587479305684704945813942179622355412998188108555318980345220415740352196945329893983626831741761377955619341592840357021169251181128890347125872910569474211461295994603971813632975149032087046533704276429923394288970315540666150163477287046303973886349560005987499099292611623015732284390804001374651105011645611625208804327337803487247874524817041379865577370781798956129919292745151152816615644793967108804529985968352410177147838123435439719012202268752747035473765978972559539873876686662060373755172863124027807479328608439140455824342897236849763796486659129743442179519643308029115581189649678997556247347297984569088170694046929438678093147861527133650944859636338534283675650988720226253294719210790593185183003984822455526900181888599089595250894631784965060459463160781171734501990339308963633095949140923524267886406451579537211654540286733250022279056430108249087673032243206395931629527091490606505674061166244326264736913599861359716388913767318213766446311239163399229124008600995208981875506935347638420224630289331761193461896148284177152309056292211165053658940796976309750849425472344438826052734386909937229301247363536570419696305107468797304898211743834745477685663775212562707163068358547249582477284658400336852956105412325599833262305081010998792959113070710043912142268447772951962039133023978573061398922886743579035728393235985321528133147500120079136378980165588006469652761891676580765869649469680664160961306403558844221274361776449428959716822808123954678127855956663800304238781930835680845516420964495908093241064666748265496828963709620216869149069396039174602758096059981806592801319570287299075675919922566374962863222799460077936329561408263132529691827115315302866524987064343206195469878042599734948091196398841292155849988934387592717148728175565616718368517925396121647052208818476261249543672180966357267209285956371419942806683835350420159966067857590915860133520691370717387527998907648657409348309548655453808316141254354916557585717376257997787127455054228948549649000087088554921951284335093137367493713501239081385567315357408250701176674981684752211293826327855093368659809745212445908489192096244584327614026343687671005686478745449916426277323868030280081209556691094136045435823524621543537205402023811958858338222567646375837472540623396443841788914331459560843030994088391935659081502006678080252716375813010718976575447714151415320429090165327847224756010237257329773543070402872022787000525148534577211302002451959541711034882899412378313922580359806421274639458986255634562422339876419304439611756674470397458568619865974477787248734605800557937683594962093284492014307404597494598374374364530445274198282198277335396474665939886568286287799056262938083080787087807830802334548075517570618671659777068968164329880033284135737797605685583212853181210562498657557873510816184386387997232829322741426310053565211951582647561214019663895381455904269007036947638757911052861174682798609447404289660611318624309084522395769357919624647272339500995969353985637632820857021495051850542649455221976553116984825932950037426777840980574749478215395407165326690359107028038598157758500882770511170678306474484866569594928492479180406676798329911067358343394029425374060392321235291424517609384184464374284660819043709775411896668783850646370216231883728782530069779764492927221716692909189473443948555758172425738689137426749425590375113673530842231038472159424123330631557743616995801231258669552533181652408169194005085580053324711617862047378121242859970850511588512948235787006472094618707578932400268228377752907265239233926816550477960597761563043213453981941842430406330144499902155585316805233371139774411237978684971403595123871388554847497437324134638754635323625546999127864344237034406776183196136070359658948123389867323771228834952610661157152038114620834250578106783002422675423631531212877696555688963889300518051713226938609546177691206263895426602140987917714342913690620041986608078406015420456887210456114426036995171920286544251125883670001555046691199220024346207264531074285839183115052234901635987516533193749530580411805270026602670755747846585778278440857793772950466243451909317429506614554771446779793670480687813905832805546467731117898725331739555815243870268109648661722455325225140657266622871180479359166186057879427863259572334108146450476548660557441047387469030057228396496169980444670119246666276615545745575970447266539726005843947119162623746332542459555682677161464660669630182138388017911342051890079232774895313553847067734307561795504895651603228126690816674690433259642921048113312097247469770557359392336853164135883947239688779435413319234498224350813447832083109185609213834005957735193638866740984277490276573316563012211957275867608993016591497381381094501798906814154635891473577077206509633542458211223810711776136894435337310943027878469382574315255313783804348093976475308370000791668566355627619750971006857316449512975257800240353124147403873027807433173721859753881457701432964124824335476515454052854860451936991648849713838116994276424817240050107841433812613717324839169493271929129936811124126325032676821430019143141608532016001431084311151224889735080679158433154962461557980833560592877054270013850810630075543826753684670771345726756006455899706417308399983212907891248258413854197135737477611798672447855201707959887766481426020646735326802266969086037222543385438908483925956707174849741884227416521603340358251807973011650580146011561926353757148187232898414391663753379129207882195976093726410430732284071326384929969189487263683473808242472995875054780438622507851282921116077996615746144358802690137793279409779114118946756972437831133985212136594934343643065885535517503012347765909994610105007165886444105786088334707917418992682915089002379216119923770576407643302422173119898582228029230772651045382184025668519117892738098870503750308432306890988914749455065814879966894081342660518602239615875908643723383267514942720821123000111394045739648488260643288837830205427820168671147853891156692072657050821015215654889429524363742146336833758179179981246898421927095599850549954526231438503724337020965264122663139090711852328193943251153595468603506471315540112254520238138900101817597725689738521197621565647008650231136097689359786324957638196784423668780321457434549734756961026386920142339084899892737870264078115535567122601614947518921504892806355909695506794738742317587489315139551704521943478911380940080229215335030011548383119965257744075934197705998155481034935190074745621892768575804903367799342194757364463141698820936976069706020927924070648005544414173239747595218463341108492199835004207943990924487768872911727202124769311759436107675802386847534289401805009840864297728023261919649996715175055856967549779010266534192155193789441344834196021395052529872500375025689911547095600894928284209754088099599429152996186267382991041186439145073356118314519105573220741557953158876960539075851507551170201844103743293964178772829432315135398788914956676704160659334952102090979325207128315893552944870528401539989705021964154136216385228193201593323669810312715363103687369207998652185696740219736701486406539599154860421055279047896378515450846194439438940508045477316237094704023764279943329568791067872666629685426343681297489589410769920267018369934757603917445934720128816719533981471005692952648242794736816460371152977972352051315928860005806213523777130083794623846921447538955407787128612048078786024283266849648514076046803009573476646358498284642507626007637652378024847818737866149593475211916930128335709527757108191752322457476074645708750742655979503388859530319427954010941887126880875793513800080293375249874299337404844013018922382273908949076094425463566381802375490040303221867074182816805213614685166667432593139920084932372234977357884477932180820142750138945811928495949072443265401352156060876056220270918733545204394572640724526604407481357881894306258112500204521103877113783085825730647097620830710675025996560058695677865827074287751089643938901954715364070018654401987311132245024499798942672302425778673694253780196569743427905479228583015981998836725888808050485718672073614524128324029381845599806773092007058069630404602721887198205256339114121891937707004636808497469745644610997432453389585107362747417076766724449961370695724424033687881577138143706790504806245685268327750432965106343846074235937301990571922726560642711292975721142221316923543874532801882347748389213809235573158097199706386516316166251967592041116964868230804111497354379891965259215240362447050314573908437208535605586217912340520730097027700831184696756429380627035581803199527039902607760239676945786814561987425948071885348029594334556303933801339493987606825801508123618873776630091577145810282161279102492830155236159698986647726494259959642782022678988529395888608372679289443223448118963510340799387288766094868627039024861664705152145787982510448681268240478439101168362658326322683114781767322455054411774528759586778883479220928304066128216182401481850575829021664121932417282283609235319018130069101643758554763461882086655415295786064557043842380272433596618565380171375908325652525395141121743355500238263898020032107737935402459049586389566529385949104347346844712115154850811556319978296091816585400270840077389024657176876653186138153828826844660115057216031845923558441374490517658067212074849725669972885200801749969681049617515059497592610030621677070780083046501590354870382072392575572129888010505729986513615836249278752772765276740643799768659696703065211010326764469588527152539757060156471265168313158356149554185893486832808166238718318980134119062045752767340507146145028635264398295623251448395558553120433526279514535387947627846379109059789372228029495394098326690637621900663539024581360458209040521237426734344199116071851620300243545538154273376576983373624790118046166025092340211714508819096924647157422038563724139081011131482126164857490578278889341941631672244379420351261930230405005782123985723173172406172456239184721771870374352020550116263743863600526365982101097254919906608442616881998921008159511019809937872982422398701739139573125778600866463909332572859704890996451841263059880620261016805979930552207859886589235186428589955600911150245208121567001136919856353912891859254452603102505210949889176705365951985260289764577535952994015567459236564622997307118891834066005010112612833295733356577120767527146371580037866226784644229206482080505430675155878134839903700044992364229180349434523741465785946707507584548359585573008380244396685963209042838324620371047234659712143943624604815006539670087398265835859460811704020864725376627900543442493839036440863603221853522693529859997960203447890981477991502892273854195055269150029608306653704435154549014154895575002335247221250688322142665845161979543437571263700455631599118983096615984986491162962015772929580901689396000636082845631298478658236765419465572926860558045598316597061555489458005804302314997890347224736785172818664961568515148811041814147477592966934288160340917651447057484649880326578002545176797773444553328489802502611397987137017396053100094722568606195940515967153982378525684698209521579893006586242389320642507537717064288261187979677392489174102317729607871322739671146643028043578218544888493942979950393704067468004097565898088747787736781264795328431683484120809462955613013441615266281263038785040883778789324057858610342810220274007702067753325736242143527442273361879170630161663222040385658339684376538727597876415447864831727845976767699704095657277133423726480993452253328994514522567316359030310883599345266347819154433625587898908664571932451097492103775663718998155871081003568728544441579930314617123522721901269281002671448941085472065725009899434979204134136800809276433346688947056287893131631196325020069474524636784719304031209980080275355002217720998712443085286409002144700694868603187838483486737033819048511411830318686661510884579093370488572313891364643046755956813746873289510681709413448026061283800160085800345110376603726980248847799381417991239640830168009324496580243044884845394126233723985597924844073477606017078092418052595496817593555669437001660637176455065822643719295348970618098381593902805630529134116025014799793897740577913702902168418140775039509829479571314416299945092536551793518844194363021807800016213482414317471792065652706433543128659086078366389444134829923925846143731318395616552595354398497502249147473042301828556416350896284099028578846851201598408141909023871425663172692073284729803048899603076373829875318067501507362436352993219893729188361434707510908022750737866690650342160212510579111330013044541148485808817045467756388274890392838037965507013389642349480797513666799035110544084675619313883873667926316361298741876851948103637276213812063162930240417244666948819584136713685996104408187886080618577771316669804160459906255387329385360896637198070771437958529712967842638053645574752916460739548616106444246921367856238966565534206108057525518464116874838442072085916849926594786827801860879175267856074084150766672884966363988375389296812540850923446781593702401449506506500516927320071424489689282080587975304016813590103101847960407608271108976998001132045491362965519252454185070724791722913352606748350701887802468633399443762387749714444177943510723747437032901201610353251144181102407093795536221514746993237589690581379848239146652734021972390332211447532983661155346999780002401034553202396756495868475917707750104448823716422585700546909940761040303764295152258653153267447314188208863302591774037096865621033999829946798401777094757467229522176279120275195319623407594935841556532336700717956072904342990446156327850566342604327500989466364299438290891079435946472737308973164052613447994275732646776445965554392897170454033625689489831893295732676642627861315147180225247407157712248709099561400402931125711974751587305290000731874509116505212928935743073078012360018884308009982710337034941427389671443252593363733546937775925009226829838096039922647608463003584089355297387659351144424700900442771606086495945240595413633522669449104051912463990958273174660452401375630579732863857665107063844385879995239390906828193310894092783189382582924588536389333306772781172096744776885633493778507242413594286400512437689147055510211241477271935888753346215010912557405537357303963423341113297113964200403123137344541804606487246436967144211741555704762680212499189291443107549859472134721131438447369265524942428425690193352735933151893504236522846864795393861671020892868589723176806679543137985386233778520719310212767206480237522093921393038756317885257446683254860297203941729162299044605521632727936495371778050801138869643331568509042267681402665747336338551772514078881150582900085478669187509014550526011006744276649650902106694140209789724421861144819361921950848043141517185666471519825876174982005534896093623216301295997137924594935602686700381367469628358016455018793677361512256380486064539723062918944626266694158441625304472208830129430384342787377261768254060707791114484804170145957597968034126329548824873314388938416616860953450653025416167145949828514599888157104615951006629651489862764049207710812350440018347179668993751105772952472240385377122287531986962368566973760722121212181436089731396235996574936837931021631202337360701510193292976240221783412722914209704876767905517165551683581607133651996591418545973491641071495267074254443052157758853331732914968172339839692994932826380164165300789663039666844420733045781649404852138223463825279131530107848657979980615837183212690616486148625570243574380479502223510287702085592970178412920434752043635850264901120595624233312265694865617635886034515560168864049180857396600945834235147212316669571995413029328489196409194705494351372352055026781424300355743745114527177640180269893167955586089968552828943583074229516524627766746136617782703385875106136011727572633898435037350056395957060016389188704775136642281420315750401766799907957919856024547876851944321076035472278952760185493726143718995275668550604151583393305679435886015663904871316703429779245061611037026260288558983472343621688945544817378930959254774115284004342577495008207358719881500514304737580094285468997612945179868213301644219753035613953903692712458707955230554620032002072584455834941122711114838463404831649853901305328560520417076002841089047854904998246918100079562923280608134507227075874725502004312458283591257309438732336023529082312218240701886465536639845921640233227356496072429880780980973593602082136637586227524997403739262001025670495321396628548080970517939933285180657478857826850051881312854505051575591556672932064669883680290680593255760218839383070417869535381413597790253221697473127544810801210971071244043727273567561919156027909573196699383738158000922474620894908584368971636684050002496673842961778293518433271964223928556214257816540353125927195031858501593405633363257087808752647580635706099938346197496376817700358997200796429120547429419332969205424550011380691862076083811457909152213996572658264186417752955255663649735294202707830164718644435770295153493906731968345543739302280531674669578906461384922073447067125930643191431887184571017343596715107319414214035994728509635462184049020161297240330300747064975140288647099449953829200567788792696629185332071902932380259178823331551357137510693063789511549549402307540921811919486033502378992923719638934328897371332029796257871388754370269148095420423259545498674412534882130527480006782273596478168918216921217640159856583528284488347601407831093135661710214687149572554567432445836201956650065175302192162676524785418578051774824555171243597244484258806302774962518851837127881079890058156728108426606584747279035586076413562690851243566772900061061798669006279084780762302602367582871820691473670475175352244535916108890996030693659549297361430353463827146772951127566685077024819224890747042339293980734820973778868598088552828097623500720678304983652526516611108228544410648458789248517388559673917657780054987672039574337239662027450316735411988736063293895722843857001221903454479423070281403300150333222788346558293512188982286127747278866964799900697127051219437068312276221860674484926453570250779546187786219458538943505361646505517319235235252088330061227402176192948023627348324931698415783578047422456594449080914802677789374463306260700031511401357487096067721234995470189256763922045428240832680685344272356149637994833356995859228546505463668347186451064998459590038933120716877223820591462658696232324939336153168655904300596844037314411459006272249354821405645839459809321158175889462348108497776723449495545574096301202155220544803980851270866730692635460860455626445249057895500373596190352009127152524620935897048951064637584151607002865291433769553159709334926469736184093147841413783045363206560622620705351256709826743412507058766293226927966349944196976851744643882212891455809670621347185219754711524243879741015321576977327210062347033477261633511517034726705933049352114164819468518018930120221203679299061169275283020596371393873191968152309204642541712444267164244482834292389540296307503654037153584837039522883835187798415353310694800816686368047053218728114954148918714855255854713756017632354317795618348747901815185712263245941663205596461227147150571776863986121925888391551144616073384401198328556008312317218937402146330182376195333285231567595175786502217438999953158244399676112422222927117564738425264589717674884421848052418498989312841493404185139300905428443436333933769638411989029229001401197225338667703707248048558251196247422495599572444640905524052468134504840378495955181246885449617349889612465081922456801858417487578889498209146263122736443404710629788367966919395680377565099694568845692342041307159916702264084980247668891721786999003047395557563478036316752944369024858294806439256102384961096391757072397365016542253865930455567042130218188425166158423012250395691661257800454821491309222887741203630043171394801581200285746971540642143124731324196916310182759411952939063633389932969974326527098242014112418572908232893188868884137535590298033395312465232115429903560991346224278065640379456131206140013538644283071892974890212930933410071288851406649022384842875646409598983780071665756476971321212901335881508362043224305909141978352846100934349089292946096042216909882456053370362225781356900984155600819330880948893791507133258213745264523412413942288569854832370135281030247690358250670575157233300292131644592606859516562645718838392104751290451871484850988994885384038988686254058450716748922807607352283252356589878594123971874260980923963921147326131839020614538000117833801654426643915928002771949742349482403600377832431352152837641655044489440160222107216492441069792799135820332174831538820912600589689881359424034504291401979437580922397184883269742531546577758552164171959232224627631701951990788015641653842393357412684162814245576838223843776733908490223814796689246300699652937016152186091918098431098655437292306400210453166125327492304411134733262522312046581123948113185223692174617164764375054720933890099526178428386758364035189101697442036110012632940328789162750125018133074863203796077635384245312755764292747684224236527943946832726521096617185113723293456059115031218194881745668554758689347028094657451334654749033660386186997322717413642294619190261082087412252851063018632922176351964772262581800160322032570573933326875835451437728733792245602002370994970019652512713571588136925482447285714067045311077123023076154548020103409811735595199362165665303905055863326930875651024387474223145241310782666697284724480656172381716118259331665126199366141117649572774157562045116642927738903167686319461936536012786910673346736639408492357434020475711609352971562442498097652589890139218689205435604283162984240304368488338035973264231970896550484848344130974401522033207432107143290600233958253346053280902992195652450670562827972832823813131856297176477286484658273490676712313322310193421773698498880334502895241173165463996982325251882397913705192609377561256723729048099427475663080538765263878406898062173640895534516115993923214762848475739088026224850528940517253320094173489357124770798282241779755136015856261004281769203921340587019028168526250385183340894103895852575147031480208186581254428177641361220427618740918914533005568022488201147055018139243502569342272696230851141612259998587661058985739872490605778947730970452363586594780400791375592893167633554273158728334522402820030155488373243784821075119794912620819134760993888923706951515019589400215802111703429323198080057382830327986870799795667939298713367426521874731290251298419509057150196853660196953795202394966640029004061696327905116751213698886179353594306292887674772327033024606627332313146387466004194585323888233419032957890315379177065648887274801054399690634855473426472744418792290320944032491751868541193902707864876028212855094491311085989447509721452249792883163131959351347731273507925724363800838316137843783403551158768024017386833902086930770316695203679166987377821700567554868489737702186257130512579159371182235711921048761505990362142074812479318276425951631138478489689543224011171510267509408057600561746959193788987562693886205362931868934484427457618770677093131946917312855371990604873062412333420021124671701606084394605013741079510380315891895076684271399400975799724901346778322349124391893098386756396843090694110494772419009551877541794362653421626786318894121679007749664559826662690192548470157642015022780203505042093959053745272027480731743752326888837677758856430328707392802038782974464519892178145657131314504546616700333448125425753172781234843002651707923911811996198562369163180886395812463915100051036090781667810777600824359322071382741194978234584507186607187188884934041906191339924729508228214066904409189701248846230221104125749186564585832555318187840300426771223198204788629821563325926112196365713143672226467308048299384254572647434136796545994548329423557249901616736940286137151706843997453901731743684756575253320870470964547598457507019305161841279691028084008346259310545882484083430362479835185525953233140320559123960320177319538037940473180685755517798170539418051873543273416196356868124987675811112268713796741747025562262384898554260493936254033348986015536737974293516003170979182970755522920006262061849261680399484291630138487043427082422817149453055148315954413561451416071425101343528087584093932420817925481776985243620747208616255060831907087911865294361641311930294193820878481295446831755755192582996424006436460778107474182179439489186973786674637696651439735186830374701220576237948077473061394086575577098962978095151657907859710549235337021774234733245284062109138878493327433665196802306886166736346304387699637897427971301218439332348158083494497788245437885115643360410688987213310740083689047218163238806534352273597920404523543713827185670699969640784518428259011625327053536348336462252590558986468986124217175278124364012765432604569895415671396332396949876751275257846376476119222908426022273911125202653031720207537965530058033543430423647966372147214215062854260893688942549011417851381139250222297383617807436874069459282584066309209575432638084850225115902745343265716004630418895496282637981946950489868925637166220335595499342202986149504780564592706146685423165779357902476753434874255954324100322951400402954019834312110300628869997078326230699162026269414449439024451640283525530365089475250325853947567564378334170521612628389985246041971611311973107117370591750140948637181495065225655715133189100980975144937177793241946115241481204140138203872026334769012966424042598950663573322181320460426003300007822154845587204152210415533024906873638733878800075372248521266259538453917187091681720599442975171910934898603113992505994629158976268765624007136193092559557237617142955990711899548035412340550522400974623656165910013971104253478119426475388783479015734139878130566135809442472560703798944965000900147493668299076818122132795237765797961284135609788462436487773924337776765040123310853971695044328594034119476236089190833304213421049383260061798749199584148027559279432624611635674465777173472598372714473603035562104313174106958090647129084050547998720258589466706543030871309054078352700730327041898880686521759149136499941366231655302193008058083348594306701959903387074920099993616737827033335037495486555287433458527641067518012606774093214702193275876291193797942943184401897355996044750596632602039060360453114898921553513667278464538993899643424541721638293970006483615767651084420358611840430032590804207786871144391220889789165088147601711422788932257265448495007295685081310149904240588443492748084995544604775748246546385406626076493736160378530256999836051228285593760426526761539566101731361705408518876087661144450405179715641291003196712873374989237117795509472707439066008330739190393662074182206958501203079537261100263119293591703257289729383407446658023017341086233933699202669284045678060600053470699937224546309159999897006491775297118868109127988285019870600657880276205383558527612195191108164884680569138933237431206132463539138797252490056520228926572257198782305585726253558280767907229733013006085213730830175488391006289162748496141054212945245670572134391784328386748757231142024314820342494465428708815641224500837042749120407348031260197387321678610491274515265458026301559452213757893049936431609481613441386539083637531372216236751932463483489773698751809508877965814254533133101106203929318210359955524095532618601137609491345815146121873604735815901011851459092197133041086763680495362433990755439738642706763806908687974080235570652533818078976646697025010548857052250145025953579579526477210780014277296908390934535273074739615211641853350584187973281891583457108759788975220777096298221911759329505334860501990603426643138503402159939151091596444673862938106326159665703969229527507286512495728623604908323905156185014926339536442853467681767366594724351578192668018039738427346938959436434727289843151205512023123773750617711841843007727834256889278479731991928481593003581882090136100030138754388095947800954908296687114310847699759561547449699344184753839378571478255698034975760510662016122576452287457145007037220032144181593532912722386060926546283895755748573344341834934595004433277197786339170181959496255346841211737781070853126455539043441725071866388634652633254695362103178399121718191903592578787333101463055390483785015125994452871505234455600666787566805355237000368677781343073176753347622851714420976797643477583329618611754245362068600057158836755723428901946477776221048465547308807826850672340678028493425891680622382181453497901284411548182477628581257409975582710455295344235666537088644903628108570149319817020530183809028747169942981397131620278948884938514003408338870015967011529926149465008754739379889017838915854712789479178915877372119831587493729992935338722689296348331749119950401011786039023266249417360267388365372692700767984334095500003479669898051674679154067041461688088175242732262810404079104891558226397814596646519243645287072012113604592743272190058512610195223681301989147279515869222469918232475482828247820043466959602353888783657239081839223949342454851899444624322436761288751447392149972634115483786888368130468912585131384181418826219183733979153207571347126700010037463473730059044824757061927338858772832593563291797419704953076653238611413407149271780315049848068413194350721507640170556162645979345723609026697940577279220324677159518566591868021860892426583206050537331216329724672165066382351683113083975910623477864986793912779113580727988591521870537502824885901507748870963185340305929892446566158763119810818980255579464692534725602755843257612722601999937618229701446555063308950671711246096051257738863364921934688233401052854174934572808647328830894687408216308414239075581489482570120790315745686668979969143292606003668440839582261633373084155067997280889678744741647955613163680144203998065663096816292718088430010378386013013166695250958179586678335975061772306633721368153840102148694695970607450400857378560941295405509277972871542735716877233088372119567298350566636127510684374891094211085070681191356307857175311044535983934986485505554891820628836784379102919830926564571152417880301570147341133473063466268409552145682956951906585094008887284321485368473062605308085902485030193800837141386242806634134104083061256562069508448103437960761364732501200497659193750208385639944681706423885936860982920353856099836173764698960592018903840337498283253119149839237669468799220254404429260188056789653416439384239486339942005904904731665283964906361351733233906506999122093962007965124301948886589193962761285414396070146763394072625088673676062001687819514897058025269193606496686534456794648890024097706745276737838281895406481604232705677175368981133929027534659784881054722650186445993270152202452407198846966247273040419747889669800151344994775235129893341945347475585621205661836725039363083742872944937697620344303530329632781984026867166779669789301452626785241555114731579674284750242117530592367043848684003883881429390777385006920652239688140605473261201855620682200258150227528087049549489865200423602023024632092907207208036894842349898207683818802358433322117350803274248965759482238955537141153757566063533941184278803594454291313313976615713603932465363245315444946575263736864440718928599462566749901687748766661707599845813214758093625000793413710299709832564255220662102725083571000309053637365082973445988683884929181406878257130609167597828308691569754166934232991092004054494430541094148992568265702541212632722041737471749176077502683029655307436810952892205026306818987508510822344793078817406631230346992876390084436478618029029065110875025002642789200851210343360611952890930824923532032768506707739265766568754896345925684235632288625142774501401952586224085029694991089699542592365007512737298980158949013278240790952186022544175939434883571836750092088799070275484787127504564273325227091291627667489825808164207168562768893922347835471200788387625919539477843029895068979498532352468968652499408219586064551241479402525942424324619068458807611587319623047177763980826812418066748305728383957542420905824874579896251492564682123311203639823253190900917816083870825734313048687077415867812463543403218536342241759739748023979708061308463497953827689769324010006515324172748168313817709537236790660641424072608529263090907526860409952875340051427932486494204584622140215672933308977384007541389394124274291484139226513351816192467158026866310645862231891148988330406795474254071817743948011290607058509999743457069325292200248684949935950543280326210069712580118585141587512219278976078226165834471966793041902700412934568028090259295998898875969520396703410650756414724724903398548192616529329906098055397380950631259000802837303535135536585326049108057814415063010366933484837545696757999733518567903100353812688346209052239256494348352338522118603393753549857225570141936401526476508493955823048880845881772456891752439694281648019416069336230953719949665701993221415539889455585046187313869236459174830734506536029084270451944785504312142481226789866490562230961544125245464051118639108025109274752280730922114052184122181847315489982364160947672341073608742745986465343478861805156004420138326127804893620028997404586976762200717734438087345608903340368277645357433016010466783608706393700181905762329291104812730983091936566152976405343241579743478192627949470011071027625127144244727727826378681824973165315291678040102010230336267575655147055821698047342823684125846632933731657655871258802596630024860086765196439464861665084667067755756899802603951846347487621176897740496662882138062126553187405089450345869303626584753671293798869652872798344981014686533422327208793398610257801835795180993327453953544816710993371422143571345491688630140179932767101105569475484800668702811000118219740658359406508644241481254520833056787869722295344329977547551131610249232012961291603046872335887969330003536403693700971953649182916324463830975091604235789753307401304911585685395834477007636942193577220767249735846457769053010175680519389528593354321648879479856102795794733080304987450340693502742139878950392848010937484261577462824410366919480867818380842689507791582199210896897178721615555761371445930951098299054114298966713530187180651081581548020799996562187824809101676748764583994902491347469246506971794456138980203559565030956042094200901653975345964035800245883315166561351197176572437040220217813395755316226644784672452326618020422289725559050698003600515999761331328172169496360082447674756780816125324763786900048662505018417283445276443704260146550755927464725573468176886553741299073497910150486335786885455752549365424199144268716546835990190762707002727964682837947906175518242128419283331141491195435620612569451929696547295186967540399954657221779493592310235890028113202608529659723401117318036873627942388400466499354448574208410397876348640571011217858053367466478787699146162275530466812014619549367604845483114627671583657424057116847273220494315922362803862377879903458588976366165641208904708260400463067101912236377316667660863404355427026106237055402530937456931052445886937294518886865792495915343157326253021953794756636734087793621062552941442991804163643935258957891883506373990716326798698871487289764181034636362973286533268093553213237150723233228854632671150899921519726253485580783861788906236315098646635787497904532818662883146227212509350011009304832919524399653122592681694911317742551116601796700020087828637737586173481316844877848143260307385242303456879853655871062162757715454022844615516287010099498696370507404803469721475827457125655946556984496327845368059305584172889222865863245411284089643192086332551485284286143221644264391529328058885473795459435221933989233919187138243157683557434666592399465169909063171491860754251639372990811339031865607194485256526741180662142364715800778071001285206871463702755728733074041824417067998078606362375167256389631633035556576606744693223379717254003691268755074791254921035295858628137056806267821581706121975676123262295200007402360604195856526885283321418696555859860046197672894734593703658186721738514703422801187573307262304886279440015823296969816613795715569858618049329485284278463758324882999852462398252178503233003049389862890905751504490220463467840947709297093686948281235600228570630468539131470968397328789350821176374445049627827839964246822256144548902014357547670755271848648821167036129100285739016813885247322589346895412385112538926531964357988238477494408947332482193768659794319018852154946126031935082679353338683479556885330110526168400600316516579639408175310249145331353035914105009020422336619291796600155769841462260990370187127800219193402784254966761638446439582493202116622266198931326368387796900199391719737262978251249438312177757283506442353304447048754438781120015846821182067076260677976140286058753732277080592346766221844334728035955524501022647062316206727852485098021101275563915415702867064673520134984500864030353875976822718676734167473828378626822530301110216607773064249188541389245622037814834477680726325464268895605633865685105818029719615157798738444928126750263378974046503956479809084131118133108664512437260945175578316818911790714282617280363702324240544268800875098970430046947455683646538476473576322518978533688106213435027636772757022371251901329252473660462382847928439341304817828449698252281291878671500813719658830311859465306719679311798263707852211306002537502460641054530557234383964518283663219565525861098598405013242318985161499684007997429675493844717489271120796469217620059259021304369646086737412332171405280405946226414114537515226217977021622364393204918002313201030158590870779486629197351211598951937113991457263802923651290798579213966204207163311686576281332421209549843768335990651167854532203018273634159855684821061461157671854839564802651794108867149049860791784636818618389689502354889228859638893666617899355739816101044303520912388491264140098738591636448667515892402221213835509086313023724725407188315085688136935437108270933421072178773884195345781385259024079571511061072757143535479227916686895446551000161531707784449590326490005593165181299597814460531645624691772595805183981052557113484549730544992394862170187315638382549844613946654495101399593820791757188996880736686646041546528307959229589598378029507854777802280413467417582364706965635290865339481222788903573547866329938448596699054257491894247083834986112815989975179474347800294481067767307851269794085861711201208005459212359645656877218483593603409163356687924093296826666646770052576972545098935271954256558083750304627499387924541763570995945397141016799446889445983294559023507307652544438545084424232565118588743705119772321460155906793522433098674723742709901265751701955141226153994297999980927909929321168080782683455392684188073383713341766963126278240188324128570865316080681426144867099994132842215328874536998868845860265156459059349622419628409137444681992540396771668115056927594335106783773651674147422553563733023392566174099854986192772854704899369163542413548477206675002521123464056079987446589367557658025294677552019881558614794705353749401731494555491992527380954209652534767398599907834864723450637026598399317100553513791939645698459951312814783098482992884112943775329234694560399542076700804664851125887513453695325590825584994281044580000692425756878958979437777693804694681864031626171545617080573419116316411515253527040451273183152278335100889502902519895563869954274272102538183703758951302433642492551589866245844285223477659907583099341465199529835250337764266813701742008924503451810387679895273459255350051987983283804443017074008476932594170942703386962026472848130347007092193987679300360874289467383490183140924172638417392851350912183795038688854737860690612805725113959060572715809471983505841663803120091342049795679869311875056896598985840721727329063695960319249046489284037906496995162817948120148559315287022315721164729967118728087271566814508932356621766589375103712890284887940339603059026613845310698447181781023812541450198478198116207449470415350458369470046832559489398448986587398171691366937202007365415331458211566325284452690175428252244325267425329775328108650590933631131333681413964827294601398764409671867794693951655431163486708288835558822592707253168237780842932803009014956198591346028263823108710799019139655529872733903315003680573605113871945268274065560575827703577801407228487799670775163589236361940597842871373530669392192324979763513071807513063031007209513168371285244417467253693463553242976531169131093860925733898270384559396626187806175896143439101626480085911312748087747185746874967255659182620068563035104506027240640507018526649923944264475302629246510609495086825886990028715907219450829876715644703556401968905773354964194158451872923109132775161528631161637818758723963402659299865787326356964471182768002877656079091684041435213867349500511108837179854307131007400635210349092442185121204686398646067204464577811386310508283199701637092051244874238222828998291160498464974720219566566936420749352798470189880584725565237126455226355049242357091436610285589310801244285772741582693841264497492814975679143264110814302565226616851738433113850742824536089728033024179520725478892542925734583238828949201283523232272700019379108474676836049923113383799127164532650369311811369300299110141318502999018193100045029208072384926823298267000335230521926712239725466108379377234155039983713881643274348271311551925446119953028917253494716480812785722674438473127465783999253377032880925176755637709499010146360354091531921856348076557518585906067870419636226443605673685379828446900067221858185013590841863394390716116359666722239619190302671030729162487389130277373592022201167434853448908521490329926880040518318333226031521115129697473836453496906752847004585404276041630389526119865388251399524251831297597028790112573929500346894902915460276887853897571573287063539281757064881671389045030986886241244670249964676838837208437140106443053307694165324289906001158498455955084404058094812275775118478149435003675118909280971899148038607107015914591652587287124304851981043165450171861606756073105382600373853157628607815680534478296104965574794251819864309185223861464685101708008516170395594928474378384605530180405018604583757786136223740648210644045711978466824957070746533930358172921819883253400557893824893194758678483872593681999299747643727010873820102747709804142550973376040883053525470644643480689256749840821478380295946026842045468314804776358070720612767821572519150304356409918617344740063360474066875068104525704802953998015326647123532744329124604441296183879062159362809490900389842318151607118482906186882266016727672185543900160431116235141794324463342612010474686462486203717367209510791814364712694839854265578918371131756113396366292994442909913404286157909309398712728368608457060161386926209882607870802848080756392238749915620029217403908330366279170294951212521304624855423517056737476450282834081606356182632759498788556138835977786023670889688144706411407664418214812730769913380472898535777200048374558308274518577882649172446174289795773675795574425308889479274463754810846798594864362085925858905034092258937811509742529115581641621243375470924877836267509413989884431952956649018091954377093336114368647096511099481924339233819056847329565358273569558779716520846307897734094567181136849035222892522567366985196350689090537089528582341820520121225617213381539382268043466828507504456667776154370518034340642749831692292093115843953000321961498242177991096650455391534679206006630245295141491197183384087434819578587839316660077700288930295672340129117722439952666996306147241555457869672572544827072131923559435494279854951116958133300606080694903276609363217943075139722671468373461852048030174166899481354746744535572259476542688862308884399958061651940692606566125972687761670591494743664918721150264324158825346705202503023774476943424651482401270332736354090791098349070377933382338662407248998954808736587542214373143961972962742811754464408057794536518379282891011457484346552491500931756846742045408679735596701687223950421331279412814465828950694046611296091412532254644634116330063594412221251334148177350494987945705103018682002146097746613868341256626225774419395340362585724298404193566948687833703509273072090938222049119572296536192350734065682648248894902965116136482658547040827178246791736775554416958280614794971464430691545635518563304210721159829234392918431681470584692137169700883245640627726948193162411669720503262636526143235770006881541393527475458691695827117366198092214133264365947306414376754496639076993237069892005863506513834537989511830552122781507564642389262044573432906350785041759056319459955800901867761400766375666244784636917095305959898380850886113355633383662630574439291400745491259861567413139973607492084175500653697621091352509113875662505152377462411127409426021442621039773366354980802064313978908788717086579017962220482909414537005268936713858073796812128370590946772109024396807014804396677855093847128924333748850524465027189671065472359569893314637765176447816843073002058451872780601522112371124493768521255895455087025210324690258977965627396006534313907955662928097474698242887991726843565894668647794708123344341848796142541680288081158726705351738140969660364823386506934354287726374453258998011898674349474899694311995496802834044616420374639387524456812115498166384482743663371997293961256056937294797014342915863816575135882485853777570816777199526273114727627755644545496252877440381959664790253821523980592443668931606409851755833312939711694645993651036795035634763201944469331669312186331469083568466444296307022962100582833416842815093376538287338746559998975043173439046816292168533060938737767298359057567256272718045282221490186366915549791046110270186596303059172052748974033179048510922731022145778809465775901019155727583376247746167654312597978862074202315423977658728841468820467117723027167507403495931543237367394282126169169571427308435231233909477925480203257925188392005048746258128360261473863278065332392131598859925261993468156980225843985969899627602129624737955371510746414437801258558927997615986685528513055298938285696001196681958919482715111315103248500400147453036622154432753545964839294088931404221854704201036478788317092166890127293681471304101798115194186367273470936630791402651911106663430395874205178806252259028832411409261496363437851554757299701749385237422802810945404268122043692295530947060547304916453255848355668351517761229643491439536571341571178637283830678701017069084897895876460565236027182638961435472119361617736336029790353037960728767658793996521740886108298163015344617839063036854508848547240580557644913420618541056113218855069584710202489082796917176082434974056801233459268848840143536207952105520713804090738946813918979209284672047951390092440053079507927350064264245369045826220456221164661935651783370298091674870197388362640947723558716935553887300925298696667197060429685472777458697624375878968487316822018989232364081281211542644301386678127577906605441212956590178235087164407033660217917251488277030025522239024258874699036611277105244210359423180362718157466163102808062176991680337819417942734083332299073326509627608426262401268529059972865109125930918274326255334654040828766966564834080991522113684340618181344463689600958593553925456876959563887259764898855218001195108042507781648942142846223404500480246205522803978248196359751511120031428374087991326459782364359983581315666803592480396074410238061127098305010220732356416539320738704465732986550424101158339918662403046868720108251118862435783848325220117710209914252565779122542933053752186432837594662887720601901680103924966025281177828887855480143946438940226443225887478392546102849535585348788110123267586595823281729247596688603981305129920210399530982487673066081619439439076425356455649967783241806531764573075080212012807302088229135853797409885737576391133135206282713955295560342518654939336480136766053042365219480865490589694040430979996301076792677835993981444595577049637440456417742876350614825948660241197266989721277074627987933910539709730623804636690612669285955703198985908605881330004621706722036347259546857373134130178374259455902283688433606609457349319276848540769990717969679195848785035489831961343363472775723496274049907354340931646820327524193142797083130469732580787362691711643157898510584633177190532846066973672416608497206778577195591404425547367007995793294562492369226197493713079158220132901449137109898467261485797135170011857879001335057836315905572630009149627718563068404557682804414357539137389907803739734708887878299150662369640227534118186133398331101336129528389597750482111303862057647661281715665654067815564146100253652814502679028699189343132307188500833706529941040722558044950590407262455291429880275060629912414610974171756637725165860495663535102072601277232571766141754886337034311237498081085487638397368685761904831503736580365154105155340615293169762453306449025122628609788627306383023871771734854830756696425240831142191407829093769653096662622685887760628456373868020871281652023963558428323605718512983660189430992955405043219720140906152961919174580130956171765686638464571995531094414224408893431771093867670132693544661314587698657371210318539126702003769330102549053934319170602944257009885221693809995565960714488375186158090633541267808417229720891755325284471025789310937289179975147108082748559218738461075588430275146035959899081244437539696035569116780972944655002890687203303459809394791808728499470801515019582239851267335590495767708646240853701394426428627417380961951776919669803421530398883394556164376461007366086914070003060128822858974470401364702595837111295805585173235485327231726558852060738809114150439525227268936127242319580651445092217133086661078180509270021867797066810918470099535306665813723161760176621394026975142145742428338625009077526470989683322353655168221109108300267944734238916683647584003075662562622858867959795734499786989882398254899234400845252162989744857926109092419739726819159148638066636229185863818480773737824023295877503671914272955761778642990876901678683890793245421688197682334501028601476673264715129608870768511662094776455286784392278912588937404036616539887843316747699936881182246635886120363379348152766015455368561361909498510897169880194618370901571493319795081892103640544855068824157983383434457942473055511715345054832557973407625554944556138311774156508094349639510818955590666179532533178086679681465941494337808275963889168020445363370440754136557136852436191581216607152044203295413563932587366610357001102190206229444072965924755190028111345497813342233036554858726678303456778838179704864623832283805539800324593278683554570450194292104231249296793409491866415129566601842805243113057463878454549674990616049114128336316746514903712007199297640286109450579354602840081804732393830402228105790426136966326170905837605436186097298296632375954508733586418319678720466786948835931494620372057797815069848689194379040793369402642889489702026093354813356801867970036051816845264293894563133707611523675343440919716658069580597723127950680321863441329356080979959501921507426458474047350614386232731108870390785643727835412507723733623910996874659365626147997925844986868009816328545568691836922659141130613400398253721778655646009722053642113763966338310164428122661569149142993159725386318745112624872317103788362306621351073582046840647864380048316775085584084048680638007895247669918879788660132879666671625476106017222804526401669953302470875523588018092547330425409448078788975919711119052746738138095022467495925377081685894998768632053789225741239154985146083072566816978756199158768633163623363896723452665994680544174378763543532425247536531912642585892835968870686093921341636089707463043986278094680925814930513235200166794610059571549816973996711355905070268494183923785728833264033222090846983775219873352978458333701683154258845716218515608959512184255147297611712156627086804753717715545313413835719281939673633916175927487775477442963654800171228645324382866681739705956542842724777300888696741969827466640438860793796155877008191322225657624714850999329412889120446999054455471336285536259893909671795300807915578484104455313623439289299698957540450530693887693072198298951436734039745535907063493169183229353838709774896563159537438465205461457324515109055154293746870621077063926909927814806219787010743045595601951540379653853508239859422170246221172992761323629087352261788125111992000861963028232530782712173982141537871799137997838787377784262677370272839492558585744692201909846666523726073308984438800143596412559084349100034291585354494030187601093147613364869733747583522689078264607830281612134950546841130173336593669936689863286894095823212338555362967994227908439082312080456964028999592734099337398701787694104587746026116188343954482539560036170568074659274443887135598908215494460054310239204745967224423030453898895321744332063689964158933797979148480106899905066682123970478241891284459222444285931375386844287680340072835503508481269717831178327548322892247838849590986108468029877160326017025936401057915533134667230463813259187030267804127131921367033359391110589403867347210995777133690950619022178991127225020486360221234396152419077072567894452229835847645154925268874976570791623680168898124659889408892174004890948229074117017779631223084335338820719377538797993074054100027320454768636715220378470476995531551202271494027359595235738752141637776731854337093304590147712514859661173132147791195250730007370358675072166738085242434452212928576801499994558955176964021359665025823604574838042998877934235990702409971750377638121749913092427890651946853406461165125950901129952205693100349193919618390223848841638456326643689840100367395024226339632721682391791068369247836167437058167308322440205216981692779024343577062921117978053315672623181105596019914066261499135875006130487979066279538620366868686948423228878827447540198343476193033442436792385337364640848901466850175256036260999877581180964016715351675982402727745788987037786561051008827403001184466035330255029599324592499333032509768775964667206656143028292808223074467765275837355583383656337051738937047760572253880383213948040939129616914349962226119219061233709535417281869674284939792750131301950001719120158929133098027432834270112128055952938477627588881759526213000986661198518060766296506562898050863213143842336520035114026971962471293511446982503113328137995471331385366395908557941950708903843423869510154871916271090596237344714149726684214477865672456999052015957049521398341501856284087241527993647790180517095803371119659593807212839521242816699249721785460555579222102772047290892175607444140542064436772719903454474326725345346920447852237088843968766670956710089667896809104270729947036076897329580846550431110887078613172352593687281893976023195257495182731352766433207704963877457292123810728753562924230112073999128010436737096392032697625569240620228407308320476482952938579315175100689734959315729161920321681980017135360473539179733815903312305781256406351996731627897373930754911930576915760575476128958225408151693143103038332072125142482193361426337097368576428130459528348602119823172689077185151670992577409872898399732911667885680399516321940738480522499783118459401619909602757969870660532567509947516885818988283488103415381621039347355412265280939387236521256356364955524379490225891209248258727720800488010663097866044884032274751701093058740329295412107155631808915501394091864733790116412704087430938788578908195357100186839821912421784107508596494012249358810285130235918518132078570702918170244434139559182604435105583842964651679707912665232412402915907428241694865502074358999433817378018792150725613614608833530192120789351042939228831434260772690529265448570021250309241594812345311303116962577828505500218694420150400736182975920936879783281239891526749174488777604340788550288338785351294537204382350484231962137071353196037994454337546297953003109459088591885878655251907362365465575095651312067150302251151346173860669831640009104760799672668896550283748886028724375240535780927665212677861899468000607107406158683745174564709772810454838241216755663821866089397957266594469686298164558782351857413058647653927503893433591624248927124152534402744017670541267745228143181329792979546882270183994436278004224037638303205343608113401553087209884151816649158176312095166223857688164141602762194031779536838892569589476963295731726715866679643419634593986286078556147897414481495246134696869949864212300269266377279627323896576552373093648085478760727430336379029668882268633045799447807070977102526704037018832678299897496608609290287342177075910547263694642643532171413345399185812071612640030000780759627086433361607759357322551243298048244454823513020682495039343661970764051745617871042232960553048053698865890710215119483044400621072653861910591904127686374485442696819357546252189134442667152982432401554490727906999736562882278998662996772570031814637819538785926153428245994609697203093556525078827839900706050804793385964991956000672665066271535961227127667725234014072899733463155216876482056011245146367178016604808241040167342356648847067790448110892093314962330374592587781782134255798772984884634231211319392656696037013466114692000103539726677994096197891734001088916619671088833784763749764140051163379032475311790973757276848776586416145817928063180242392031780708573961769128343245473070004451686860967756590502236517497536655177394271439680394112689358235006904388818293074209852422699444369231475726576127055594507357457007529165827116582690794270071813561586522843206597368834388832931999517597741136597655346391426951628037692214909744926140579555062670641254529681363219716048748945449058568568812238733817731387317005003881354535369616056762977890369534279588088001050019530936795968830666345483456897836164129757000601982327351564961811910302110111444037249821015215342033525587274336402716996384968465447518536370203586411572438158865996160434518005704876734263013736819614682347433203783950948267665731462430962974650304949953460850678097685173685547471529040191247113373348744212628590976360692304473885141408512880717075913277351398494143154688135697837934044313768537556825690631504493713427294336688375567838999249921203107483785556507793823653130175987100386230945019334186816529237594197776879977136364564583617011095062023846417163642163974398097192023501989617713832723750719825968509216318919781133018345030046122159984378533978481745230063988790634487173980991193528147292512941969120089180019073850892732173500552484126938042656103735108265054528229727357966094401174952525066652559551823728623378145323146589048905640248749769472518624159119128747926627115657687938423922184963328975459084558402528878687157014598460893474483324381324908513422970981998059115562037469369464784856395065174457559037152460412842712105946070448700954712652204651996111280541022814975886179233551890980079604672724784133688084624454256424233497359527445302274912926722499584616373484268438205924491908708270901445631078412012883721325846244336846905624800566918680208378173054039561314207577871244750684606230478317803528291927171013309307799708818751263347386047445453233574435497455717399326387686213956435619905942000593799300271562100381860019573622315012159899536954014908281082977129396573820196797879406219212412537936585295853711853767744615642095909801305035202357483780891808836954689541692648061268301506113859978115445347000056106291449820670523927186353430062550055115431216104588654665935876635394694938299576528289237155758975188383957311237754630384805937185138007177301327881125789420703742186967409755539105526258013008820734074961293754032528594999082914347585004944425781704077360146427044397804555784408396865137008120243318124186316253294533632099673095627610482386907810444492164507053279221188419261162534377778204468142802292678886445335878580034394399474634462962784849998271098383133944972623863095041174549904693574585576305924064596413284764622103298998779872682948577789482151001139167773844563652447279160406868248861421739762225131534135915799894572843689141725454888209728013910848742321960623062335150011511298607342158573638928892567233651618920334714063651945780167164136617606102662527236503225962582221674286432935153211310004985357782592183329766109929160335215536497036888995731877280658503883420000623651510971913001236489379570333049121689855266497413320444660192326174974340735757175441631646812127536037126214810859159568506170353586069738721329111951554313014710252076281482118637565629541532172276314112939856721359272727484842110893205477030207641884637793495739592614309375752320010284265013239351877798448685413371007992203299745213826428690768837821972637837523849035282913370192243644930052019848577233714217887706305108207376052173909109306951314995150432209667169827545884279426641409560236768394237257178539935290033754870540329817529978970680620201842375238265354724323505281798436127341159183270181818153411921290307492286391044565527455636753166505327220592618874452000553943740082918195035239008117798599915306201677227308724300591729295548287880259507834106767375510006527368228716671279697087074017286798564320405050205979893683500200920692352157085228769906235631170599297074271415436064468608995247831047330988138965576143139352392987947517241743442860883694044522858941655736319830886962282428678955105643417997254639424014082874452302234155769761988899930841591050682540035607661594403479622784219786463614581191771061278321863876353534887351745629959085269404184801950536648518194594158525582105957051789267644479037310758505253527355391459306406426527329673074600199558344610630753916651468513882366231024577213155969232127334806389837548355758354659245894587271127348338602732618649555146471528261812889149220188475945935754324524745417857122995348494941754743888250614467664052771236645261121629987522232537558047292946479567457862986801229908217575878898324115770021042151036020909872316475293283313494959537504859072179296218744372813199285544183564640455740267719640600619962854786469503164676358745549992319821513070567279541449710126612679538814201207801253835245807272823051804648713692150229256156865640453172787897207371429815943835531729563506246719124737420383334074621317863824891511209639030650109564414158615040729824636878463681261811113567535976736411599325714156270827689376577448111330506673324144008798075584004654699194838138821357096521821975642407653182841195606656628364385494725296774623171368744767969338586152760844838676219386140796563437301600428699998516980441676158772700021341290034516346627149462870981517322921616530104167158078145438288428370995985545243786599125016133439931058828719698790648117881413643977525182901938877994840973556076980673480230105107612912865761784611228773216543981853037254898122410865394879620722462310794554657682967460536834046345464395227194856796610570916474039737003167206462171323347035999809274295812583195212866679273560218829815785886048103442849256353208125422855213072151633249441321025808136758300509626398237786867111511802964734689267418708567089460691046272387583943497550420694791562728099828232670982830474837914884999605151868471812948089717740469525555679010920688549511674322492260869169944947006969821794127980330627891590065518861446914472579605041582642171993478177670356375539566975809911190999150921925304028148408022505128592918890628697260096212577971070077193512347936906169560448705281294254556621505411659412243890452016839220314905082707975323328032336004676012770298138574161146111062975458358357557254850367539249069749215870939519077429983126599357161492761603981399244205705034605575938460189126340136613339669931689162836461083077908848361199083888236576115573157581807419277334371750177225420459035501621377577644534165077792049917473843200144002279909090355066940064481112877048406524821019145215331897444479055273313601070937098278749502379526898872621233837876317364098381080023003122348183631447580784773966051911429338843024417786467287418946809753615882224701670810959935516178427196763727091022706770565893752446641626035238447302027872475266634071129445504299088716857118364599114641853520569335528907965510809295036687936115166169329465153785091516151343238884781108548757801861756767311119600681626299804878389821444874765139500036138360615897252574610474674289273014464450192756860040561500811128757841130307600154734844972555473082778793215424384573314689753896941801483122148264756913393039312520154961772664693252144403681965630797378900678488965946078575212185363822852584684720411752740285165774415212237805726142008040496119308739506094464565324077018579992339866003468149750308126922682065767609103288580267929609168712378917896452684419898065527566919323171319868033996653356367369922639938718250199047912858132735294844992987294119733542376944154976449389472095386782347974020065470055750762859490041491240605537158847568097780924227246959606237232218423052043911493101787665972468134505861171448654545729363197267647496050918819212051044652135621521271066221806506694251744369930171205813810296533804963980316368107828617924317583866710827408619156784202410035265006126804667196534622405390241218497198303768059483404949370840086904908522085442726784826175584497129354945099154908434713842982863398736307958267405439292369099150473594021606297531937734511133474977951499985704913819360209025821388633588960762673651995358235981713557671166520581065702085430708519365477255637128064513915701930266219767123078271114633242730607511676983819492361922805146849013969039576702124830528640838456780514154576870808943210370376391905661196693449128974382609636401295189774382690476398822973242970116003857037330607111322469030621832528889529436435249717008918935726260376194411399174310329988182584075386372665331787665030869165919582067577084447381842338565274405655946198311131718435892748665858371957284279931320824358462170326018670742411962621948139493498148926195429635949688588668301772938867664476296180343484619720138243352002569381958390308493225954624986634340278686467869876293861695067303443401029565330133284835135252346585118626303848699854722847346857661316619808181399131085285239624952377628813303888804772575305705734993913224453784827687973096766700169130502189407871925599488468816331335844260856797102797163023593445471465670769619846731041301075725316522651367433772555302068965360487322907960637541343466912768203639146632937107232881199075220092949705378236822612875470331484683242831298773956156858993224912604739056805087272168529533099330070878326630268353486082038866422149416685292591927041463107435402172238718848711656139025001485553802356451431573629725611842905333996878959927662821122392977642097366741975365587640463404510164554743632649704006808242999311467263896514623302533814783372681935890089896487425410693629085879035148759746400352962073876904048546495517483975997846505947930065400992903249845997518062400267838974633814429951911243084205479325367996589131400795045049646739271641749248529567037800444739488417539679650584074283855317157553210085608864608232252711145812668891961236890365525601267494388904528763578583891195313779146379083855291594328343445908948186488368377746813213169996175583221373343348317133103660206312231707530394134395896828956756886077931375106787190403390476177738136732903218672073318337043679400148739104842203497343432386324092502284080106692290877654604046272734830091310790229042364967667574865932435477355665110261991532614704709739754199055584445497299311419154061544318127886899003867627450809217613657952706467173016119546489073191786106942727125921929599293983984160067910527468825576561537463659140749366076364412578629761799356061968562095043969241082778800477638927145648536596008450787496968993403875492581627801558563635949332771513868982739399490691610085057579770838027429765682405859157858476830604025378343519954200653744105534187797894841277219816919507222803366198157720198701181983572705695481426897675030865151361439417410809174483447757763756926236116698479229923064735140984621115996621509552882903748630820721256902963117702119867386284347505363069909002124042321866018778159910723779178583075550797361020814808039149700952090199331629212490400928688948672860184984832467251550588002784612853734914177735358388948721610224837333812586986994674926271884384260603799530134075495678876476533168199152509653520004158566633215209317206444669322688449120705330050053487546060591720296568666571006890866181114206998520385404486253906786822415974949124952987652099333964017249627214053892918208105392755125182657798945113272729308476764899878778628061245304821652558188897046614793810711250646571063767973289823158967182904559404507491172937878092785009979628971455868015298185619312636592000201457982095754330092228776533145195797943913965180824453631411090907463945322579101396147476819449860468424746196969072604881967836128949678753130491631305192320149302019069810572455209961059023739438322153591709308268389948065585346859221421917244147741680448548934007162916273924592262544416038831734339315566391781919009991439750847086802877403243768054327570119670792128719792788376181568689950573474968827475052342961376167421403876621328050246622776502469645749098881933718709903496209590301218763931262773209131270244132897525402803159399307591629984487590972643747934376863005148004685565940865559031343959119291924972215708135079020863172562076222462551474203210824983622169292898084242321447603748699909464906393128239456814140515969370006457252644289672567713277524548363557575882916277954126699570829011756472250383949067670230518439409353578395594853850479595944448222848660640013966524861799535317871652796813016205405385458377139772049022371558262015605878819632382140335178809817552174409434669279174487755242926469635034268394776262790366249843927360592363744637423107919293902176827883147300662351799806487159901279528953062651513492214918644963617304729380283139883722323237405074530819229246159030554379207129223656346656063583171709435212729778473165376610513350453474474127499420732185998817198707068469426380641114493463820351823034154181950045161317329336052076742032506953149768901333711296692054346211200306877672751907462455920663323828227894693472280117894809504604774384293839600524339261124753095698937607654352746758249069640654984494391348347598246869204184175006615046614854499367194191084625838425992424771179019240154970482698856637377096110548509840410005261246096058585291727140029006624340772907459523982632116308861361042999583827696223901092750270057068636267780119591628067054209417638404710671430410439193330529734551051054764859159732305760929963157233691552637096712805759056722443262662643420110544934374655669935928926811596676408320420282403543745762460733314625442352795209827028605582539255497817902652546512980321411447712043833225847984845090629064037142946480497315503659298009399736031101974749930000115721495345647984111860434993243102107476940003052922325618799131006436420686103409821275678904427653437829087177716944973118995723539812919450275448808380800967400642059825126524740858898303157689152051281813092782275136827734848246378850384631977084212745417902460896145277113816037164433319639819633402213361035269494923011283196704862551600438017392898765383767756830822208855619226439308784747976385399548627129398875453138389961144350649937736541043229896818028283929125510889234931004528628253935696616376982474597421632113223929716973042569401095491500009093431118776062942038756127778438281999174702132538154121708570423142517832653315254226186958792404794275078371033493618580425480880553657239044194281546889072143148634493185037008499168594965700270361252809674307001089445605501244939542622122155440777285556086141893041512636998354237700235585600943091103354944640202466246171074583659306946969805932627203941733825779132160844546513999413847450081411234925808210615857541485915483548109495503594595024131266432291700650941437145804002173827196436163008334153323195107538746544777505767465772425178414702933068053261329341206235405223889183359241197769781812191624655906790481846167090338799959832573802944457981561346501480095625858068584529080056510795708467239247807409188965316786126962540179655351713615659993406011725386262543544426842743273982137548110101474055748127882808347106140896291900173310813303982672804805650261712481367228219779569235602514241708783661433452187995695031011728907057068940832747870726752275137425509024863688831703813824374673832004502604085805944601074358612252648891813286458144373887057752335959751822599749591538930413259792261251473169729435478615599746409262650953173291473448752458233390737965215454374555160964448253234331207815708087802949978146174531752977018867551960660620419156524879095678414582665697832953401838000772111184882020309155817915358962574373174137654624104216281696645815057134048383714000937760234896445504625213935245749429902014768069351242817870974240233705723304426605380258277812605705179999381101512955493622939693266222191283402548288050628162963763994292440402964703015599602603338335263787532043038770546230064267569532881372516368784439656316811296511650633608839777635266624030774696852183545469171537386031031429637198911613950392142965431705569697914524987865813549279111231543725539301582933368883885342936283752598702918784186347398791996711463920864642152538567757673477987877055676223655604183345499659188131850744590733671035388409175476824442530051797673267922951756523684042445960356055562434811628323257877623592667287742826572621493542533339854508942799171619545045358245018162197785200720798756307268318229073842452304712176518658492246745590909945442555916967582332064018481612846456440779754269352446808321845454705136359182583968980675558688200165922114781267054032590840781522277973381871655777049648601712657783156394717359444918725645084530441654424843460006623772927594739169715080412355647526963757235853666553538006838169950799860282076379394998065937638367388294031918675517993416916539377314907235552698135228825598032966085805568862184806363613730753737821170742813649796057811229012311416505902184672759353727803697118949082425227860144922299092623798555863723544704019887893005878987425305948529095769468911048379494943690490140550481372599205791723509515853876499750202492722249586085736799344410716857316963449208914737065930267052390798081776399315549168145315407317342696318933634637058236088939246278100133565947844548334232575651547580216358638585246514664756569028616545580608659173881634875881288705183352685941160469075551410081242834044899122346441928031726646849222257267511287049718445654994232792811856141999510985650050472677485438863415958127555336712149688652925706127663529115230275312821279868908223080228518369361036900142780049562996765522678073459093950054646170223526888147787752575444358067647547264204659056582172901967643023990884054148606477183144237228268690977570101416190308941968261709032562856504194109868481610807339414754351193117564694124973273111157198959008133333954487460515319484648225425511826450211136409581557164318021707764041306627227144464210310283812291190665062903673531508912897354588280839752001435460422634800494353611984900962673268772673151836980249127520256389251525785649945611501374478582463325624947619390410421479029559887932065446547850575603465460651481064424134668138176156365892224622838998161467310806959954994495861382351367769225718163561456101198472798779416159893376140279292126940790221679847339016605693170605542999318959093854535337848746594776747128571057194639984026958777460832946112951231410344728814367020168898818186150063317175242758381887045008015726911920330507736599759017766319346935604312422155125105638569328834232398708249239224877561974881695873227703026633283685859095022812115261424778100216893964190550260293377025077908876151735511778161136669269831807792821399305637468904843916347466758471808645472168774648623072158051026305444423297058893631457959563601932868697978204713180034634959469651864475509950464639149273840161835264445382255104258378086089076158746211263395162479171293274828873365089261047047652044430644159933438345066507918243202673640458561319011865145275428970005095448823374221203285878893170138634290120371491101823233260335678428019939186653629879396690615303681054031872610665871238109750661238406165752752829772865335998195089420449597508026183539990121301870382449051924774479205193214441170767086284359821902090216564560960949507488318886357407963790034757039409170516516585583534575499184916848770201539161466666734179164976554445229981806964582043793564149683158850061234139458772003794277940172348275689020581189952722233964935865697105161223898255863763020785030941734282817773837398211661943013493650571561606153566874224025147024028407063511053682953423835545689998243097251531967611269275054405527284129336895274353986434703306100439101624410251538077972441353534540122750982928386468191805791505465468557313731816794856554372336326808054588131309216765310417464000148928598939193827352068573050479291972777886800905706173987357874786816307461573157133378218051595850087521239230303543074577436343804957126528090777499424654123746059553912662543712598690294901993408427004832846002417977259384596401637709631048803365597113777646164961978608602772191028551123533005434483440781217027726873267844329616456087670746085283608406302447632499729536610342123112121266326399363285045078875804346362445656321955569384701267838724791899766075937593543985506489754603284687643222066110589622391959296025111318759915683447001654899942472585140118453891134162862110991635324371220386989522232668492469299367050307127125111632734882734766236156616276799185225777066478131056968640378126366883599292476386540054653469286287352072355511780809579712898453203000807205308131067621526217691869819405672158287112873549657529235902712537262677715910607225469093064595615452945429568931348905635366030029311691452518925383554153330870347262886417201625720787949215283450579017323600847484644344676021023079386027526669203028701820261162278562652369870748645183808013491604758910878829240635671288491666299984875706739407181384001027075167650336548199376863356135579359663650439794891694019663266320088970077158844426348895315564354217151923684040757216346465618094297686387630691444723706739826795873411985428323646267412002393377500910985557583152783794946366512048085999084247084194086033358607302304750896109124935407294441624390887821753695643189103702633487605676604806682327654365839377436013367948505597288732860283763552945554763705714028870359913161730399195321687876215833400342469818452494620688963361764761236767641142692060936344206806950435037185277120264851701089266529429227327460456354529282777149389725926441084864571675083790276015940968951268490135208048859438075678101118097527817124337836207210288516204661524566474432628805780539998856762788171675178755294268093799575665546387893709847677854942494290193612902903642788851343819199633333903305779255693444839594509540432799911497229730957775533115253581623961386402818683818162164286850677960836563984556365550714258145378042635632436737160733104220884515540749855688024371509486219549522245960333955457592503828539489915417872660211735700099908323093705349285780381003694321470937519237265503943045476422837424620599786077125546330332465171100549639557707128704883906110869734027160526556187533633620579952848293475138273383174925312217331585500797486640886181721490474314987565458074632696449927608863056290000980079410454917424952957193978837808958330129218697603645512085277980391782594861163272411933624797516301620362035826353103186187971745616982948202666395041127535502941271037864515622368641795635691308936252800315227833040067012598807028139914419898654358973499531667868430368086609153601141159672685259899018706719951125979060661552721136324211752190732461749409027780503060221416191642885151975487065232614825533957438308651417080354532734530689439148155073615789597388981909945326038810195552580041088786718928897384247252206350381812981285141120250581623648463029807853208928670349859415685996315766037225727570947819883973541761656680138786673801821989578022219931461085284305848009499767487018374670383106283906052353154681982718634957731365397297494536216453973672832792395586420565190140060338509736549137988520401285518215677773640470579312831438262982712688952009417322667917515707174034989843598301622240912920273747075857949179150995933928974260643756541722647426124926913273770031359845255953208280676186672202161162487255258881590229476158703974755107896582526022872730907448786231205958775248675728556910104359089848814745225147344637775281382237303697584838385394938054981608853281406692360435425263991197644779046792699685775240840834669627688808961475518368470483172323113698716125269343830211146541345236944053491624020793888006449617570569201901027969636757800152677586914668081053401558039453036244906016488583840531694675560093225802215480060903051581861987799920427302399079325678980874254601093221506634970453270508024380941364285857944852253393271968964578148951895456633297278465270340184172326165694728681856332139858525647862613596891727169859798502772912204970623337566925393380261288904873824295078914508102674144072588600110499711107722631985061980324367567734195145213856488869219497445237466798206289172387481946416518600397724237091147983104106163117004225824474074416181187186950369431632676223384764661091817504978392928897135688726702312020960881468104963623859074560505457631742251866029406902837238861322057436471027200125119857524904089716050729959726657967915671199127913744441136249331962012541339197434709340211948304500883918588849710522995494573137572383197489265210550955418345125494983934056135347617610546621641850473334017179310983367243296574771039335131968137958217608674706259147525513593517902309042222804058965300373564418045752144677364880494904231123733941494092570870581174228973993907275096015672172630022029159231288388471886890634185628998036638537129770934669988200285661847816621391883426545077120482814562890381102830637128889090788022444824290808974212980305965012363811122367894497913151439454490668238293846914170042994677285514811232089155193880405390248019945121149556715106892578689720142399031692029697221633321070225386720230805591412047559127304130899577468140589244049550569753472806054333572070983855096162972207867699752313581715795766344533269156494215942135385833561382504656229764462944810452228835856854256605262521589288352072175917611977022934686901797911935809595923324530429329745945845207204903024408040193464146141568918965276199817391207505646635212642077287086136302480439251502279485970632222032642319173431877499802369487504111234294571532617014368204457275552282620315121312488267192357226435546650906373373031617842175712694708792447732480682195392288007284149758883870739460898209641474555882456080949794765406076451816996551225340681110124102379221810691828191194959396509221142282475402910251811535990819162373539935283289549675223901191510116461966350628531761873322164971024062752540027711172140068539155762704045026180824498004362001898817354907254984938843672589315925137559936815729915986053156980311626522467276420843561384760514923167830497760613354194957823537811406024074035465758605347787082178291578936307084438996674802537583346838664740950713864364745208223814828770822058584010415490973173047003147225102530232064146857277888729317192876808010262321617865667383337637430091517626576932894286247836752628718349349036857301760486690431043974293252670794524290984472771891300539190003911703703401705948572137161764309544662726191906054102749236838601495817330366121338895880359741048102919822129531770141044270398215865257509311886194883385662319818878889665194895425487125182295024857399047215316931713616257451043178425204118330994160148297740397206381339547504149300850403665961145200324738878293020661209401819111255697766463195387493645469414774988251540743273621486413050125394717709169986402763070205473212862505538981482336264842419050415632728967782722444290109468254839557149413947044851970146158677881069567267243016540527395333224539967084934975428982894265701349869953072041621785039534412624230318397843975731707946815027931941907853877083767345836894776846222447477417903417744061783196989312138688354559030881197184052803159508192965904911084599629885702073639511172860160943266375633903744252975230244143603347366260669661982685188018314714487551945555073248241024716155350738543462345590261380212069273119274481587573300987348507591280041983914837210164370596504241778693244516226181432973964422529632248928462929407343409452187655113716189441838044255834958537946002129694716005452324066472713711799271364283101902514106128463868676798768222346533894648182322073166758836847551379690833644300965288407005949664883034933621973425973324699011712844638325536694354715628961990494427926671767537129070312869852779439459185562431566773082340446173114954983908191056921210556524510706335436640040550451101822240357198305576349220731963311423366950767193671725833247989219209921321061609726136419724365213358479202542300487035797507524252928805489834690444698452139263515571577207878535826770073351776447070520724863531153448540165365279315368543830712711585399933798809240268086410805812458041290369313129251810039676971261382184699238091907654987499816530488606029607792936824110181081984034024948562311426138038514252132095090736411207003620008452068821224323466791508145121728665946739559786743337315581965917668794790170482431804754328161318782616765902507114681227439719554009442314930784396498310693994990226484593061339354235785297973398093632098711163349829160424712090288834703083918352530994072061042396972367066171330335808952965879317481168519806088218063899321627925128441836334031671774342955884169702584161745902097321255441976924702372030823557840445606926364804169457575838484433920791460934119092805372212407745183234115598401638480678874730402871238209243727282066851714009544246373451809420773221819763261723546888081140551099312663502947822988875074826920499655829154318036073682706152458545916751961904850277000911818802217078994932766764050630145216605137543792199271315244297142435080693335923883220059584224016207250973298686839316784049434684735262239392717348611519636620354791989547990447177663687278534020143860360566898061467525628812672400555440502712658513552362643562094305762753991754072298700602413165563623232938705934174017056963685247203615778625819775374632324743953709546021619910391119635137228603718493368171359367051969781634206686060387755431488919988529089530208034436139037229981368172356417485239914930223089635522300853190699083881070489156244996921604555836499786395598398259170235576231081008773259470224328774685938029279362717440019210647446272030515030931275706325950159132788669828161954341693722249886292184315517705384630420358919273069726897827072249710722422001499603174937162505327465003600277310478850314448118311769968533983043525712677953780166100339034701468673408840408934835181224821278069664742137849795052866552849735094375312904719743796171254796263156213394060220892237781559790975416897486259424031036252710126263598698000062413639575033153895069066985744457987666891152934171589938197743545466839492349234561764725728867768229490098507988722451110290905477434345085779715273668014536972596302633014474076212615036060086865958551678514823059952327198113727168380484727314852183931786099732741318655796816833889779249669627329495545759058599476950728885050948667616519811546054820672005797881514361912278075725436183485999004105623967808228035820887225449018988292519443787308220472212202590838001926631146053229680118756789033049857474774614403965943781014971059374348412235475835473186366589039555834434973852316460973106371069337289613743350176198105854409554044031388317131550795947295942704156345489523145212859658489478339590704369345830903209617110137854341961575548632697247601798096832055077069798570523414376560675887479082637020325591043575332075913439160498833873765819925449621805719597999332141681198833432338277027531476460082759569288033374262285389907178938174680534793670938400396783273622800977370819137194398830449970392237595781701928060250439284094323293216443854685923249123754162452302824405320151289625729209346205059291546758830906255930151683669530299512494502874114177872622855083798107005464188812953291336663356070234322080535940423147683865906670700557643793985811721850333538328630634223813884016450111248352939683679810528084381655453431236865784383271058290795287387106202362549753834328105496269112014956787613356490315980197477506530234707354140169897751482340646579463413805096388370855352565800254097407068201710830006607222078719188759431088905115865689279215999618541686960004776081775500841026834828801292370313645932526371363890730232893688805921135200121732498857105366824541682797083269672760397838785417320450030845253828317804075853861634243303735020871893210404351072532938450652260709914768268447108378571674081290105232359202814653808387743013592178625377028790792535527086056529543812068972484414848131925911664683536274133551615255960884795260103273034753439182650315304204115321517932188008712276386527045741569007668948611071758862689774828181090404357432526945423711543966476327669989913683017819577834912101155834462164530945502565731020352471385983009276070191160592926866690300781437871080362275597943543318064597089426165252804553105651122447830192915739303698639863971087909663204087450201486510951954796301656555369938974954357656245271442351885101965676923064908633323822723796911700038146126326495923827110609436234924253578583870119628579729863837290858598935232975586570285310386826589249822285178265775634875912557275548889034135672739885866466655585047473553280400385280665177218460772330642711728092497665226664439263938209548870600357431467557359038615988848201867037682213818578531560270918817081713171222477676738710588552925483912046701058588892963788665281467587976259994223763969347743391544508936677576111689072504763095341421122900154517632882153820707093234036294188263289021631142100648262281106861844567204937388099724106837267092023400855094064434945919433722302972172298059546663798801056780352704217502034506323359413800760121620302695019916324576853049133236087691444821207337168338223669174290222792029963445112767487846072655079713050251008166385297179523449283615766365098444329797942687122831801452065424540048527061064382645341708671687369138843577216580372953368124335395655638835922445719397506980377143524418332034349404558461597003628310309851648826107024298582780833966709390494050336369841197570076255906498249505793159254231046003792498425523169558444248846960196299894241386644408118993376082774980014217809919313776168368470847138403084761844033212821759022932916897187317585647126707817064017069851282711045840899770585154412175654755802904624747271866459483915097311535112737906694437293526343293368134487747996428381318050570338793538580619605378994551343857801716507265146839473890420671238617875213166417868155174646661804189381720955359440410212342997805645347692726603879978985319947383722699113609609672715506765314707614793574594131393981763157077344990434509660946302230573207471287014135174684223221873952328450522587547430681983081310705037547868147402258074320008455632232474592397450185594116362371799743171932273978320630281687392869154733919326864958805729413513236042955247632089705067873359922387041585062494180563663634559666061420171706627710715050860055910644059611128898957935557227139499240668809734111559050726094913120245573130304261496248169151207494353801028220392763651982477918555248897690492831441265855575685595169439904909514009413063839174067440643166230717670897046092558688647080288336351086865431899339336991551655881720806468842399775406852832492707929378086154009479914618508168729197315514978712147844117815557446016267554701452866310213037544873069985028453584221269986978444493300880137991915726685711364540061894615556734095778112300517009523209170473820492649872664719653131480194064751030310166731733437751439758931842534648709394261230684014605410958684257096017052917773154062390286355641836244200168919812607839152372327700579834808978052852202439258427129393774253432740473892739957613546693878789072948933368177406763891421476244444202916255655668842669608693701221794653825890279746236592399086135060511245143581898540327693507334689832979086993903904811177750080344505561739691675038520847402507471155036236576458983256405518754562094878980470508876502271836409430380701697196967498587381608526234416810459665469081512099384445678060362835299977483664898026429503639307472682556769055160418379565866569071537575624020712770546920868908075900421513562196378731628394526645804888134383527698052050731925535054160689934730653897498104507738870164334479200599772512110951562540621926147982882255546400168626598197075355792174327132598786876361902572133311407066533489964544533850852697418414137609823478848063352389485028460046822751648984354259632517484314684999550474053260039293934922904636613986281654173562486766587040247171934821660284602735222172445401315446538458510776051613566614622935962750815811109215204717140047315441634954954003224331461849708512741114872325986401091400954141812921997342099409130957290403138623475743938294620975570730267635357336403054015314300695441389516035589585976909726353677660414143883653515579749832508226306266071142109759357144744560938644361036916467692868838350438057445377368620444787472050141215573932382291833227655350308504439854245517790330380699699935883759202399072504474548987595511324051333910369856112009378517303457548826825871186123359297959673822629673565432754145135106536564301387159035092554146257085254443233789428532966946515681033127619680385763196292167999790837983507873413961879917809501759123948768397565834905682230538556702005521562932804491158224954572380039323063176622414160539931591035423106462543324163007600628532046041637670506818781827429226775518971939080108039509589212051791813243043024466056052826815169969212760043619805174771508766238401097918919387916168129996323321397409450281193286986298798711046385206367937504039298355817325465614721002524680347043795717825573366125641925143339820465795805536125438536103654329785962412910948518344822470606223822027559508269144243936708503308453498804856470153588560580819385807570081337005174346699639407506260692840255294692676875379112852419129609531457469944619597502845512291521244355101029264919645848693960336788631575279971427889351212575374110125874576657809475113618598729799915605647637713883775586976765747129439925795934538386679747128694651343082650234187759098455448353065090550597647600407690189941269021046443475424431392442079740636674656460743382751893609174222860432762568127290247806078307449561542438221069781689021482893571099752218654073653212105242791986264812555988816936776575783736086262021932013944139395742987827593563461996910532706606023216268378522261362236801934377896353486092901974111247782688288229205553294091800728811270662530030997869048865716277497416895354934858091962804355738673209849694941669410897283724982731604667159442200740472874127548261833913110439049582391916035289290062695079069464834072982335731506410603548973735507508180462220360666177952336426452806535581337433995271534252940762955837699519332064359519026859055205778545257257723916870390677222393361273629401415152709980196537139348021708243306157052916616484944623444348075324349319182766004886303439975741514842332499101179755378652238928362299654980912565431177201228269027682985518589351103808254760395658849003380044250789353856772896394880552580086904690094933867497673867208697624852704979542009161983497878771398411475424810271199245202621858143131547521374621346417096664443565405374062847152600144779997760024394319205068408499888410211867979017455305092522005035518894347480801888102092196465518544817755932195807323778362875215928929644071487626185098285462771074667601430617007320865547825240386601772579677609019404985149852397260168433267065817531198430922221619409740271424197238884694050226044855454776006272710430515955598899454844259643413235701977115335780936877473619009647334618650484057439757949491346444515166722064297121078091848176886107279883009280867341318108929676058189445823972516390207820548498956813895152632476684299895670351407471113840345766026111393040224144948018877274401634557841125895856542503904015076868600765064435276618975213120416587448224889418159312175975000743958871580846049579145526917417948675351870762508877397619228970866664861630584285624199734253322744447507288806839235757535937000778688263985522222571160408542569205722814332111222445714945735988350657945248976096769661044535738215373988849957353076234008466951965452957504669446616314779713204388333015169139158420060627753423129964430077510841892833039905527327218349859904379415758614652695089652505049639690375622131179242680894153210527228171026029181353218935410730420481380530939344434371884115979096558688074723796138155631337434928965764781288450222688369759647399795245238259615548371411224343155550221386243950523540069478080997507925323888419692214370384779966637199651038161031597630389734169158444548119620359122922439707453805912580005404138978338554945781131666367956225929983870669988161563676431751910637661343358439493836425581926898948931557405752601328953944377297671921851664313833164982494099338467958062197128096803042245361982435770791376802274622322286620657015205570194500054111383462856623204512279697551765314477462900017677909065581735050564825752998248850095493425383030236453656989356876359503324980750787382133175130502121957013569915794544693687616336269533703960788120039609030266475394083756294290010145916289969461726952127823378326190603560696827592946079820983721043181591572171155174331489884544139547877054583366871837487000235625392084134278398340697767268136073177791666008440327475610787108877446855098067987722544873161976470877258946392157445798476212921202939156574666290484318359390833581698477421140579733008691679045350798333615531905567695801294290756822716331053276208626975669715587036673680419636354368278706028204973575553279093314301915014112202452252274681728001446280883211049377476706012676607541334577328977844632001827346867461550075609294373127535560938968749190800375697163259812667118813912320352678035786186826821078209743572237777347863669431999761884909600867258762422403881948643301926541714061670074181105468203614845837876297155000883127634906789166780869795053956704658813757970727751143716395559009174265329042094933500571917370154708079257009122742088884812740267659921030563623002795380176792329106768371852908722848043685480955168288739648498415710749149290710319955715375022644210565853169702538850348957073646035525218158846732511642944644285542553442643728377574357718367209851772522137811626083924854519224226603506228939470779751701626986701249024989225404530572351909211725717400617936520219449274935261886038054639466030873226637618003272615550006739342399282513345029488856940862424251816515487274997764304386212763020525061738351340065614986408477714314890358481155668879503222086549517347515787451487922948609159715044924101298084522321648790341241108828818490420891460423595558213995269066510332802962363637371924658416619837037803875145766153391278913363637023176022237167770654527438115001343716701880643479379812084070441371332030157998565825688226932728974188583075161202921443884606811541440274334633495416939268273293045300450556306937121047646170809461282965024720382560395665018294128350042634761806216826888293985030838488165597274575905724174737817521047871008811034562104566412030198442998478931533529313867604622984451345474331166442104701671954676228485532147803127125775780956349232456020170964512069734251140859291700031438125192970248230196893831350700808865572701288551087414749602051725276265290168272474025656172458184895209810805473314243731891919982022426137729670033237461973169422705021502178107185715713308585450667573225159183249344348147515692869154681477441828415880871717779800995188391771511255396780663942128706701895185446678665153266816023776666444085482831291902992832007045375951728844001742138276788323247916696489668991031374659008607341661504869734737811756238446220165210626217244922875738900409477492158188785911714399581585756986594289979260612192434338315445835568362647003256695195409447014126076504885766762062591217998530028098599305394084331890387762405227044929653910007724571315522419826002987909293881143394785301642422997830460181517677805613057235245559240839898543718809257851814248035424020375999631805204052423708817204099651116573368384725693438692304997632739193599761406219658905784378683479634915145478174099089684644709659794798912134203572347204840700865938095287745172336655320856089174047574765268821066516851457564050892054121524010063402744500919058122210228865924170428455994860853366412611172265831630916585702647440225240164997452236722511501536324379762354479844560601721617753222257397625466730429030439360893875379089120942431561548310350940359538520026932291200358697305702066796425738422340342345508320245673199497391876217498361345709287717977689195850491411188538184594661111105866350689051562415119205388084587445088771155822204735220585657330833720808065196349683527139203804043886470739578456099790608045926324759697879811883444722743552764928078291909814280914134210572262799303681387439258870130117882883815261646224622885652910301007516588204599650269482871514485954799963502445403804634421119697230699667273706323974520408613080970706720535887333439390620944436833960824145305516272522338996976294121996608512995830784350846653403258918361640734080015494795566080235958661222548849523286528355954803967263541744874881227669487036549805478748046513155983346560049863961785079394718993210151301702760488688885402944502311619744846862036933218045388423767701606637742073028468141479313849615421116745410836745187104185929342359793669283606451275085959386125734845768624602531386967405576475416998682797153183108241052356716994504425291218694112892944854042178763779865946032094408799346731800028956612633971304395555859263445041073069521529811023115923236000960403908102037067918388431903475748775270020347240776357320057005780691287265168811997173391346877359734058152584156883830199744431115549064193272975787693607501809206180316192614814374574449759574880934055512058897124736782162136728542870235503494517563331672626813927840589363878788374746362182122915230121213121423602105643561877049089644914160863888494036663959420009582542507866162361135880328421871877934937163547869261608925355598400047339275422595010937564157645808304083809774694644219859620043633467565382336999968590490604680761200072533737774491157629741974788539031256388285631747411271784756528213883158809128649420014367196382859288058086110196317176957585733625226467797375710421870659022087780435851042869406195926061265831024923042837956039530556393336200350973748256462306668204897618741984907894546980693991127591066903785509730081499302607384094240593724535814314019949513820605498348475442842287671893011406429774810693193682525488199641600711245018919672546198823545742869321700667456890650941828596999865582338815648160855284715799191862265555921469344666163101668504531310243834832777545793166042473224905273814759677093349686271560772219590040368102571245476088904574320337664214542191599703895199413113651829881081838001181188204438479836575744493168232098056895561517869596226815735644487371924873407444820200232161313051276053156910319329350614287848451304103189270476103148587108576992963543204162465141769463691874416127166973172408226480657173030278434654511068105785164815204721307619556803718376735343663419680895037220728238563472965421706210745027157878763223160409276288455274179137575713563527143238592106381759781985773410286598240865285053293530144905724373265919829851784506805887071927781418266423843377612841887307327754031866188726247930646087398311183747074548376942089330734506498265659638465388895417427441196293773159363124822822232286343447168184832372348610097561040259248515007476597470836722036042518255070707954558367950493152689312887483683821067288389916882081437073040325860934814713383893087634721686362250846000994352976254780757556496320265479273342062813351564442535965094379506204135737014810764520320893146149661733999814826023693818571437049846874614429129869397340327028924989246056053559538703323285654971843501783528302205054972582185156129069506113136688979277788466766152014886010858563626649278637249379930636764532606390759072034657083910551720983718515763225685690135718996759575250824925922732138534375504401872855455572314513386924932807276514824111450564015494395707285454967911862902335255023733991393551667427348370861848381931543539756349930972187290466605860172686225938720142783898940087887913557548074624876680465422613764119079919016158194917389053038360886715445227693089473676804152908888594124049951718492141111545884300971807993561753353669430548155975795075480305435368604485612462447756169887993191269737209009910545628647176075794522604276474022442101828357101397865802917565509544319455401321600803387575743345101121817662825306737342917553819486618600010935990977886985809240252912948183540324230655902327821686167224913226009745825172534606734724976182283273073098655386023162647596587934599539160991623480152046343906503960041187518524945339997881477661437228957097027546860905178703326039538829608577653466710684607768569651730036452591246825036837694985988724201419296936628837646467063663846186517998484916484424913157285042542998744199081722172693558837370584784631876908572768841884383708844912172470800270405689952816003414147391816279258190887771991363891305355433571298713279274795424911782450410748480103394496363638784449193087602964713457851362297135647338913249266199746805288717395360696678378779348090863463764818890981847198878220133084119179534818587730099328843238239326775451343369851846240070974046572562867904761627741256349506869885723466034393980191339127402835765181049755098453048101536793177735826256245231575602732307470958648984423707291969280731708309426931500234404505312351984660241229350173087427288856909528166708255425017897336051778145905789767199538317489788049121062829917710867171708435694291765874728049127520935861075549093108433750785046400497157387695336700590881365134152874461167280271084063817325672387347349232664963511507998635986787840890341157547086119848682863154824076308702193748377293603754433840312447175406251988446301849085869671287033198655832274271724120549878152117264525717929179240339707418362265735366978498681625732598003370824859455933009445933731118654465383306326873157109706218519649934584142169536709888777161705012248072490193919483099929978477851551277241016483701292599645684646118105197857665686823003367043751669512497935061048451907305657449684990335589916263470112455059046388345444160323443400595264941939051064580918706310636943094795246515079327540507283552983725303939407824202826413008481770825341481308463323543681801079578600763067368127601217196495761289429180677784535398197641472915288358079869789189089879947529608097426403565304933639925696673595081212842251521298005464766527633208663654127738943286746416396960107648118998560709912907092077631270001883261524323888621223480402755017303430829270786126251792145484529222719280271535827383723673544919241961559193671508694993143099627414429578730360974975304588880399042141449382681913703920879635672078130686958564630424587835923869972321812586775794985759698353638780498783891872928534382813985231406646292673058442659193891051541851349105053627649652784767409495747405063358131453689237534830260981340290334566013286910166084730182490195796256665669873490207763890601492626010876208271718671990123338247277493787193865151645510580405637228993152153927129109902105596722296600735331154821593863781521303809027947311157553782503881244633781428380858221838211890008455206077117408692528569546204411208785797457084738243472013451415961988319864535901737924348192521844892859665300006767061484082928216632256639658055585832690620134895191505440379996640366229126015249385249304948450272132013587324116220223942023889440263231583467647688459868661990359495018834081067397779522798249857673465281924245879758759279327105304647797323300356828350179166907445274555202062705353066543411092714399211876148278098854680611111398755458557711794502455994297579581109929679832982542274347198757264694766625988828015154635835987404349196226888583354946402406049647589726676588803673172688607331386657239336848405679994250925310743747563205636672648024479092327023012345182736852061875170881900738072695090624531367478362791530957622033345616936008850052480147317733104716147074330212574043776415667164286878841944573332660517889141466107436911635444185242826066072350256189859421423688180639276319409327186760290857443517227177173507607516802192209956821395033419156218498672176276203665273673195809089798038552194105477922961654327122982204015048579113863933154831095141669489069976002385532762856312315506243680932462151189907231449843927099646927106605336124195529005501146140606876602243766163119467130553700820113330219819360117659109135572983854521918087739354659794764556638161599259841872890777397620231649950170858449062158535995004912679924540345967627174974078010700962513993413598144300778517310963365835298833184976385485173552773605977273463866893583843375046336439437814413305416877489164025735295325469649062948036668977230442604143912392079567476631513481240770633500769346514371394338041271983899076554857543232161140107432865956721802936469645665396579808548105888139667367723504945746155977252747512187810550490553859574464703691304051931329161402684083739386124440357206442032194085419159155343670360700666386695783396588413480172223138764310976631015637170411877959031274556389595451378393137040053549155299808417932875133781563665339994528297719384746159121344297099925089549554060144063513037991325568047102139367009276536803420212968534482048112328065618330693231660719266322140341095990943088687788755303691253540517212868215206132428837315275735329512499570215796736882751360685397802966131961659562068048389529635652731879507401590289020463099614120848192355523642643185110762099725757983652537947277701817704027037833758374809687177021802882494505416169983544165417017155960886656137724104481451794001387368642197136332843072597135999059640783236138931423124035723040420422933645276166681164326003456513745883939159484338839013713315583618663163747053381491482611648358332257660202016904731145519367222274236662503199675506643375865642137953822499190549693955180778005186688480334010045151047890245903724052959668994813007184738816325693113749461905997745626060199803115502713413949858131299035496673764029340208483826093633213667392361481564708169022846906871379985441303181801054279214769016024291715586036300522718122304059311046326134643731465784580157560788117163761737382323279336044139625073697995558601109016200358884462307637956613149331899286036539198973780923044465738655392475940830164437416152878412162402267523976412747079557598450365663981253895365485124361902724211062754686913186420624459381907973919433343289232888506937883567897316348059401548797378470497799214641121942787082724873179995679532042101368899515835217912900263353139227819691012010556405369498245444557222581809953036569433971193274468069513115594534527811044161314041781535199117266638311201466708687430005119986580223569759867146499210124825685755379583057708413042741954267004813902783953422245962561869571375263963275891072291508621372431726786958687772575391914345740245186509424511038718578565724919962604217511246034819911362231598508595960681958847539060232460620339480475081893522378348136083218214121888076914070150898137866460116616812651202443304632491852338628808235077491401181126822418443259728673392006454030607025723354968749130776105999964768374582241341907295909244372406223851674001314017776466331888064418964291638294846945136209045740306179350996764290026286144215839575205144343529982503407392508522283289711891142269247599656584858400817554202761257346161999903082990699277857718404719069447073732248923819775232107153027545757468423411320179586078817288209660072696053567740869064290420961535040960525190551584353695424269781107701781887749003367765430865208491943822501933873958886719852321515172071607910619739417443527747395286123998874591057867884191273911979232564527632778743838644720724396763580063874784319888531966479131462959363843046484481174608602770436052040826303776135578303632745562194322269863180979222055509422658937593819794471882825547337297467350014373381444469855669262100050054377365791691987336763191915571143430256648442126304853725734978463319754447229373875273233138945203619791825592707574105229820443273618059406387766859590332598824714785558658437545581434304984912248755805019878581365745613351871990145114026084148561003241214226054560067336886255861906933306719228870577166221826888299288983359806738170765563107561621916636596600848489914393415997897574432150346543501597264807797265847343718482168403529260633502893327129152100233377875822561774878583117097940159368524465104779837965930536768434611656582553378023217003281769520011202433881058750076641063458674229007372032955776430909365218604498060957336031753383878467744933991727714684590777947457524752726310640397927409691316563654620540093011441974208258967520011937104094648546223775657849450184359417066139215867176261172044320020578697784567710681997078792378683625680591444600362841284566062319438527579423478687273809307617412397993758670290436514050042370354721884695701712266020950769605813884835427274519135008514187281863864916691172250126979429310662152774226740629205589403958960416465621248810678628170929690699438407079109928727508290231466570670242268874146535183785071472655400011419636797295626016007011859309413651430564163430257118913910019055271785041620152683269875822761471907343691859338572452732713189722031259357823240618152373042154054890913479038621627205409951583313371326294405632452352511067478383591019218638758800303472040233803963151984193736261208723178207164709578069210819519289739319883113519623703589965417008946993664140891000301952136124338424936072842788174711384934666532034048012994322034548385138432673238898943419772095525166879725510538489358942275356379610398377857329883467837025480867913908105947394671789986366528048841364979401411118475285256984700931552806012726468214404146556299737294462342002717121596410636385275997519982525392948841953381455073564952229872407815821207281737008401451986697972961137667517711341613298245789685914745970915275400074961436714075787530001800474539135005539252125844902685710684247626436350707789620792721935526453673123415848992704994840852847490282207960416115873559475515373404480342085314779470088033549605640923155429753349315681684368844384678389445255621281177429301793837561680436491419783855281380464069130101451041318695049417758645538816102485119354956988338093229259834887274898760081291905360840521060706762135561050192143390903328052845803084500032603418975513820690689930143599074416148282064495416881132289422801134547815939643132179837948352704619733190448699274325614844067917057067218570127049977306620663496505786847948476180433744937507997354723871136579935635968254698854944968465814730158040749176325207538719110800653958720670913049077513830528271166781565282641867155393611285251817993093077956187737146577136649297519834171091311502085862121510308267310393393094256295433534553214333488452026177444286510309447558343471288477941282406510482786660405148128432828812768806332316799697762254903537993929746030582769201496916184613468252791773887700570529920505496848872969483549501685978187091633399094775784701854510880933975568667421272268831564543994541521635085538544604984892747311747791597888369144712782181011690818979658426927863022214226519293449457286653805594514203400522551428103683734347759024211759788472399298175163043363702596031756531108430017750928873505929216436987135933623497777709563209224138830804769524155518527978924923917726581051950675569097139279302580053239861832076465142425389041101383720522083050142797449422908467071786373209933461360352173534256325718103743409352190026666802666137207105756764964803127500348409267054215964021571585963932577244798822071742926942143357942575643480946699323740402608521906170323150470669832688818765769223180475926792692453124327322199343114179762184021192892817812611765581021980125422728761289008768219593693441469059284815389251534125539993883522081285978121070956587896732480197681503317954059902690039135134035672599455607839838911131772319075706410410349625902291392981119019206350126236280228315977615676975894541420922807413260478240354339315878155565619110982133315122948287292661623959747426966550892107439420094655397292800521586726009419416741987375943780303279788873437602707139605078623033355124053213583673146700575489846045211481488221698895926643208812892107636573764988665425764698067199276275067557715526973863744172229550918874789754731389455895578859949423547435999911867127287519403236779067692639571374467887723212373421363513842431976795092853083747088339749309735010331253534207004102371001493647906318414162197998740276060565404783904527601278246672966702767861515643962795166481284303373230223517018693695033096686831966527980815607954326308626894869089359429876138794638420921438400299459013550994729611500332282934170539626236052741239723867745871701344670056531882528317805292448180814421461285359507540114191657396692342444705983885412776693107619229094413951737984735594115666538189352115841299794645974490240754144047214357615139808844991766700421183897564811414953623626887531597038828082838488429970255840448808225576282702291866634339232417322400484367924929720727420858095153604367573345397246496398951808003518444988791592163199050814656647520323974228263674001740073909926752065324478799374638434177510787177927162482203428073411726994265226181457343147502660719635528307234181776138891240766533275841794305718872413718558681468531904056851338800286991970327440248977230189096885543806347651732444742247836822306042847940912236033586562539841833958731360068281071698224239620298761918236366208980903076709688291122313082689439640917377048125324870974375401761789978925614993496135451270403677689034276783311192858600995809562935963089538892861688073247764132590700426595638356596993402275432485608068098819548170446523440215282231766833639865789586301379971062943625027192188970515835096659894182652629983550223868974007493772410636179543600727308801289998191484195972971154881653405425131683220539212247215202775158364699341533918646792086809400401034205150398515072453367246828360446606893988996257698050746170014424523045584997265267050086733261409124352159576419669156380141524205039360306192097173802809722731258663646671448871251843374731882764377543206345061889132913564914951414409171760984134405460277222465676795967315301024832416023996171150927793553092455429620411947322210578826999280418273922964269178140802016094981805540163622018242353152917380315840888049999769613843644576810865020190696803130818192694126224992927420712044711071811812092010756590321607985483410908196502228482037349621734394413776214969863653801364455726361032496734845702838302034806973034873172867505979154227796974447289123149967759717783785426368652278056103600780727947315424924669611135180851631424431335085835199399740944344051504580643813148870391557008150615623866432184350264350919828355234474403678919240182020266964255887966326289749019608711637247838323748487195331625948877969806380659982505360986334245650885198039559988761953561934839519918211633115197999397302228535393647507264215999573045148154362164746623412106314153320572857247191403467314198629213348588051202017298200128361664407565396641302124688126391374561979746276748884341920271766329704303515582806320926363644002993413923511848816601818353831676531392614058519365099339567307475229346881890371643031415606061871911886539867523894771735717587983357354522541854360227695239473945426053318346170008662712892144602757757362253786655129941284472621291893410325283922176811605305489144829792286009444224456834000544356311965318963809338867982405069650615162094448443963054491053260408097046105802874827491963082219420933647237769263098822045631753934575605937272778502611704362089605383306507470439290863611840279597651550309810542088076704046149448781092470958675048349297547206815308473498550875976227925434118530492569261271257847439398110928143175144405995741560345736852725716478930063481890971016603496850934120867212679757042012350756711024906861987439429838383349923440454032835471705704019867886543116729764829110992766941869655660321054784914366693317232954302432550830989527393077655686986326088317201303762841911761717629868834040476174636447475515751598348036509734415257204245313496131554246348620578755722628330796274996331897677954556719792595227573920671672452055482885885153121935398538383337939180505482599728219540165799307563245864832116513181163491397718288125257839865161020079111146263557298250268865244248952260753531878689631616289672249704218211172893625097403821201042460826647193944194305546431470910592278143475628473968074681003653278023589287376502547116759810131524419534686256511898341067482593461007155952797829791091666158451500975955454486286960285618664068713890329010170142620653569815280060773092030568463634627625633822848392312073623171111086149542360290508255947214017949931483630564574730888877280659761320206947956269845707898274385950215011983248014308711056251116541714629768818303114880493104007951663794200948483035704260775161558297886489059546776233372240621605500449167976707030938799060210230632222852532147877247161953253876211402953441831302662221298389275243422310946774681990051916782945981902113260103060334680633238151035626882583297589981243854963069516813805494495266111331704716399134657596682112077490638218527728785336099811163835862911375888427527701528751417832351552629698579718435629164154473375752580414562312845974909289262464369672593925381901508176827112040030887533556103390449097983983098957546368900786313833465621366476925254507903843063674803307657906913719419366530052052158220335946347037521344227236237980598420094882948568420016785724085066528747227473815241933926993824402910360625448185735973086336944558834988047374938464152514646957729419728395847179878990716523463802842582645786588031394458161398783398164647015166689911179882923535393165535768386839205976069633266579301749395259604469265633436753215756084673677992372886965549988190291352748201173420425994973156628082910136348364070551934174056097122034771732408549247816980041355623893418180943812273212631442485071957074563862634720432024262696325765949223612523521357420226512155146005770826131642210319027162909709560344956497696349295947422509551279633441623882559111765442268856480495429327580155681198989545817324937331624756751843431597563937901507148925305666412193157280804057067736867681436451511610948156157403819663420682497223961617978809996416535621683955190698732589429565863211099412719830994373753680188888516725034285410329228823469106314446286417889477761225167449672183185043153475598530678884323594412109847920958695908447664081436992607042247120270068367935752847391732804578210079465159126529335669133097913968461023968395961487467641979755704208748003312609903012559538120465208404738197925169230202832120730180972289694119674308530707048443361144510569427634378090207623808253633523740541360381945495101300013716535733274481620664903902530453659237637526230479511503844343453618804090846250336012086790790096273555069831730202607186116101541543932021663483868329529109264882264413771217226851516662050232778457078572530297904572481611001649096854510656145019423300747833122257451009334748702543491189414107980071705929308030451139794893564221087070678987378391668573998831062851264734658351893219287409607718072657555051212399283480896411237055582027671078584805916373746334966329142408601084143315675655307146241062698082617848270772537963170121096866758507519528152569658861224450201583551355231055174074234350607290361631158165073920450335821797473472228753231705610432223766216068146440519769819553264996588135662285508572843211827054253495308751590081081323479948663027546638410402657079417759996364308097940531493010816590102487875618790785853637181201598260293219606884365361210136083043282580918574058226101635128692926501300889818174572016085473901782785038255333517820108709949649898600313290565987170491783781280770763123111000050960104929604205332149373740875527657905427428756555910958514089436501494806359678850519960181983507307271938353515543476205200316935295800332521522653480533149446682214774034054477819236956019777425812102301049627814931870141360109780224506741941675398745130632974776173571086982789679993505755511348341680507114815671869043592150434656367133430544930470924065511171438354568528525006825671777591181358145245790316475220068430620177054125408061389347176389818368465090741279622387254072107372238484991793200375334041339093990442269920774761331349802566753417043694600284741531764939237671160882094689941156501916510687977676060581846644706179311872630450092970249362335458680220702034272114747337056401058547755055112693424040961765375641648608923188007582892304352722696084130588133732682918523630865293714625348832694058718851668036500594386297415115824191292011155537975550517114652860951156771122335867373773373023027247300760616328117183408928193478832403536358868852250968549511349039215154849260847027525640684619246672063548888062812652748643412030707197359369538600367068578874917209473523455825816603003499771338336081041393569354266731120358080351740652762185736137315852248515046865602341358361421384295515267199183452572030598909176749688234811344252624120244645728695515551409552591282485005338314546433624572024653402840104619410150146832813738593937591724106129391023870950023980068269182045968357826641269697990066644704812760053446301252469049906695652629300726605401490195395706263181722926059486264342863753148612434483112818433719637053050023993040120977903706848108368957097688369326541654383704360614962862647734677753069771564038252311009171628172756727341809711776657742786968259367869583741407649369424158695842261058514296486302730776265047829099872601365333058939271889450975645628507648122341789358396597206466597501047253199480266849104114647109114576898186437733108607552332576022380248081540016215269157846225940280903879076893171838785715972709991331810939648863250892690407933562487260994813971135010488032764971721555273001825415522231792693148920595927509316035718838430846373060009400415788343508474892213318226109968541010594453166226230453948753208563711938293082749567484206233162294113260658476940082314894665740577129970897595966867711696939171055138606023903150752924639166545542247275588116722347017636905754113859768667044913054483803326787023871995542183023811131309682334216257650684667726267285368191924842076149302883630750968162035183684774550257752945567103176217653844364758779920702936181844856788754878035748858422458739624419940650321672782763762842169709173073824537455351915622925526311207383411209074753686419073278412655319825952667714150482375084167500222134949859385185790099033690763832983614583146695430873190780352608565102279145744352315220633627104778638757010933766004075857539948378511707380973475838068849399528966819452950090680832927566571125546375798331433830165532897199827462754527338806178306317068615422801702905043931499678492813081299784332511748795459930437163476163703016774881784638714946270612135236205770338837514481881720705021384715860958080998083064360256298777405977787397242701658632833779530412346613467830690575499257301001272642268785872602473158953557235672229765406708792495039918417910283799435355696713146537846941878238228156456066388873370825582533334085493343560933497456528280157347677788449277466465849083997288486267183696517908867791850621714098928563117947540088854273347312157234845656049788563533624519542295214756712066356536832020344026695438380456726132432478626097258672142852582645893884801039759548203087446630792645366829022588050186347769530487017742889455674986068091551988351996103381056024997818212451919170326559793723855806846060761770602993054797675305858262153266537651514725657315574776707352568000850933997731166859478726228836427809939995152896682793937649431443948047299958134190062350740044295136460764939150091216977689319752359992256252470863551256417608659058149668304479013833409908713249322872676132081356594824695168333256963539085772021634861364808879875154316743281016315043301347924376533938333377781461731104530686859543200509823453579314462031326029865895327461089762403501115095673836881204386339727043521066631634730440213222781482245207500210194519544153763164766031542976576387442522485186388480338992818493648146892300598558087520803892040121190049887207499594830138151762267198862760937540225497902632612635311314531367750993474744205464097329998834187609682373529745571604315641475044290483355250543490801527102651449716607867969012325506755100213595300008059437677377645235999968968291324233772867864434648850848734905557896744194054437691053074178183644292902001538662585270417878460066320518043379530279736921742212397632725226474799128312313247642468017990875448623320563001047932718188635217553236451595988919644463345113595135502051929118383598432087039667721102881973832784582845619507907289568496905916149813181970105965148263758544537634894874068982299243175902626769488816144614265577494828113537092510935691234981719062820468933125271683168690172100697597052973605733650188153071763815414745080088518948251143386341945542878771202870832249164626282810359682698314604734671075917997129635138214958976450075870209817927412774885273012895668745121909851439105898822305208249350769115381621632554423387527334995783410199913836656583105554291301656127416365154847767154440014184561273739568973060282272570290931258635442658931818469197139767706187006116561659869229751447893155728660242086825317596638468305466278453488371797869344892864660915388999573820695919512929067513190403458484722136258349251742133740873552272286461557994272471379062621658743557968864541994459460384000169970430703515572691931251003723516646525167459830283487820353404043933524367426977147813996998157872073751667532902043836237752739735192905274536590537102569662977237293092790380488063648176415518655799713828649449745728712594160190465725141582222631693798162246672032502794681174043449035534494148088511197339746359882078160611019084471472502794449496522115730593426163279679300998660963383445300074832230805124902475986652424006772339700785332940415582710055329349012923687724892839804072374079341344123696041269891339491296411256309372315671435139560893059674287721335478830209563903161375930505430603235853391381689608156452641619147352391975842790795488124694536172130191502829124430379909851456299978937521106983959498793233650145309371454434393985447734858218357955983199548798714424949145657614081282466111960173484809850233093003088949879657729539056372870112034070841528263310478216773445762348054166140646879789874269288585212558456216811745292692968888321833341411714055621817045318026291557481237259649206819329368231666253361440954928856548159926203919905251029556273508011328392206697727978900176185300080108423101085900919248034462682316922416852019848761090293283574761485034406769085400855433998316571576320523311549106764818177457486478159883722396324416794752275201192513199437065377978856514073438429341239475560010030667638655517420979648766044818565221067132638759466510015191297338583683221570045877876996537773486461381241417266623863346848694894804667234705834372033024170877970689008271845220078419640513040560720241970863983174904675036662029779825901491592676922254834315094637397493365178344390680240596525796178817514019052793136815154360595700040430870103064142106864380105870882973134994408990943049161079042229160790285022999544877003745638051275707320231569344834585264719917781035867266952653837594259169803504999397105595536497122599545081844315371653846428300875700291586710672469314106129752140048580193392247240817237294482038996053046396103981695619119133003888141046052562796298929674610717335871107006908297388088301979924862000664297828960856948897678868275318203415275056594989448799144133531877948617404598227324337608496198803919876148607819520347392413466058649098440691761503908749684655820212725904163263789089715240912380890900679173025110959020790145814998488502484800705474810744692137275252732323947466429065641458458351104221966852578085930345512504721883326510670057746105461774270483422209408930691421895848824275690263290919913339982582618356542067954030514771562380011619949901510840131818040117993749806416455202175599073457930133148664125429360243807159159303559152291334574822830459164868781562309190716290309004956476197781888877747945737164049172068764152499823468646661411825142618772660171209721693694899931794243196587583665371434661020053517477106140612147067218260922159239644259191355043310070113180995090522958297368669681294488560211429994798754293918073928328034957278777100612448753790265039205823271222935846541382861014551188622388776561163569341162961302786558921254231526705071158033174283338171326790334298409775581197710707279044254156461707961410971605054115834353097020209798282731605792853792229930446682693990763311168837063323928050149863901574433146070010620370659351069289183785911026084594069067442631310162854162555610009881834432449343640138854249613940734905019963960320891952284153550727520450908866236402634317390025340637127095487327062614937388628223420017315738317721146337209289685451369240958658033268443841679820023614063701201854984402411142187100864472746612278287181337894949990060922378018271448471186091365439264177059715267736293670031597189448547694116703557084414946920098088552148537062602223995660583836083613565171668191854281763633141372605765468723541144423137105413894247929247781966804612568084548175396101816915237715874872696243844169615838085386436750479527941852689248486967601876034049301269643314813412142935028068260196028418687961831971586858940973603942931621158727144089298425488291164002710985983547686352343373897219920548078954828227595948760194606272609107137395935668660866054509164770382048678599796983705127093115083383483629770648111347491096240217867668590878790937409731990245634694272638353985797799186628239740438587139604543502996460889815508335199797330743085927847456784728340054014313097212068139887374764585150303037743231307353016329442339002334117698728624688661094929261584941307395775987605078738797055003578872450275362623265126055614773936419621722716739802261307390797542907870115350877194354116787499142864994723802877742422818004661726234599785459828951669255547505779330248074977418189746356430819115139115227461268945726223083241191976586232049085411300566928140911260381669442093754228852162006927614725365133422914861077319908501469707611022609773739050477058562615267067723115236542269436229041185634584058873395062456809004262984521589765438777806175412030752089683017087353600051516455970331122108835202333356403422148743311616877686387985251604908062975836159256265021885078490894365432889511172754012540383557692560607719477415201338984890122955488860595846518649670199752314124523779669664809936338476323759645450563989390150651698041060839861965654171056375334125937932542784867622583268050725529791109852323099680512208944940310114257108944339367046281693553873034953478590146661481014110482725426931035953395241634646516301113637227126579148626618538985980312840954236283420814551169881096381018544964899882565508666217427047810704198487229250630469152673405061418703680374336726830060211226960523705398078002516954881723205340716895808376818868074632817273237029293737105809615922702395102381350264193761807575943430742151528325121351249636871533957846638157813092315312868984232121597625794332865947428369012806218807614716601310088883171343699580187009679544665291294771661125527078070107875215445797154216682908773711285873844819430095450731827309312697671599724009399772330683579917939756977472913771958656033758069680128717877429329527091254209761555647200660112940697766326661822616182401635719536592399249390398861944945537184160640767126327899109247224820623847830744166439897304487384769963445993343254409201386144748787780731453171032993149970666134961508748093924013319768711585772495761369244309020973283083870651874606709508705447768621232771872670395214234355386767015054353420636791441697521437599012395225586487741860581870459028477084167237353351336114937773060569727542853631213270291479183825900161877360383657869995776062065603037989381527952561032015588380186611806820023531352083714050126943192304733983709302131128322327624771656937711039520346206885418152227467951309323225801503695711379071191781221571076008353584310043632297476211299934106307304258937807162018539137167112929956657986850685183611822985995935679180378689357631297253743169585978788993027899284444820008567826782254596907927477092830242661782497184294713972406666279009295404349739327194160377129688526110685378388414652584358760369113514821504711852706625153337084116073826648047126424448693390049370343464640679634049584085359457486188911758866426241643507629195010993366979482462410259380453679475025005350411589691773714921395726711902998839230470648222118883488966575617348274632151547603646530368138118718615505525345558853912359739597249105929188939097697439579173883367393505595149766666329080321059505544951677672633517200370530466936566111212744558804079195096713889362207010641284411854270985564335031474766879511750386507237664727277410664533536261774723846252142161437407864983661376987593265928783306072086826856142000750882393461416966903284340662769693727213279249291040013546362295511169300280276714262678835900751712890964168678207120741809950782848231116594732749168716546244193798103138695943625192692572849531701398969817969361615756560474765757160368035459212401710212354659298879371018121670505677847351720878669532397123644532806378387705432180203520314133887313042861466151953354742525478496487775025535621278695494071986494653200099548353436135611638006642404627918467448048841830597657586658163427407319632454138907165660649689576820700463944319157048956599523523076335608885077967471863938921244824715930295563013108572117553451328795195507749667852738935410288988086079725404855541360538449934143942780961296848207127731939398210486683177154975465530637094296002324852151589594853826448194428868832515489484206689017180572726657522188207656708633486785963327332303442593579587197829002617988846462156480196477283487800489839158286359028834642847384959741565048016726695429525029066813366660891836628643015010470720897997827055742097986954328456636714421899909096961533210497123030929940009817286858454042551074994543289225708226966019030365596719290733700541050150602854205284869426078186449575571857893882641344987901533627308854285347707719257477737211963375023608576830728726735318038229901870331069765162988369176632425739326655895312587214985595260526810209895729906835011369860639935926333275780849969070782533812559054275702395328722928448580703732521628298892446844757844496331295102664471736069211045388398264413352280750869840621514950917773857267971032692635218982166355663720723630896619425254897448602367531887809987152911589494494656908032079281098137415806023470783751137653496723281350775420447353032512278079714653037269065293412172905416405234196983771821852063228177886806822997694723638117899527791131163392060092513368471443888657983746991141485706378268156568009901712349744663478966414187650253782291767661153657388353245862190291192512118576771967176455262858763437936188695947372632280726441988258457875397732629232194274681749162952832755087585923337283884807206922760971101898825961444786713514091047323946089763804304624274680081227475592724404882617475083408876211659479255837679369448200929193674971503947600139786800329277294814060723161760113590562758858909034888993287177364692240482200453341270439257389909994315653145708437585803956103177652440986891909079735312092576252697355493256568609981187783163212250602026696530249995108397309607752095174805954036167101277478002597117030464378842525129063123561395144526817047074283864078002481370842790233389288955354955354077627827627705538796442146968445670893055427262685626978711701093520004654296893246759943590311096613289127720886556294877284196342988947110471554155085004312388554642980102521053996771862970680166621485672486923350938195224117402803127249718680061482788428793542990666586702860140944717721358126236195741554201955312686368269950158330061926035029737493813066913375522099572854165329133922320220596266878889939435263979207387107893609042465362102191395003599016967621944799223639289399820764947330942771279690085836844482756181015995939839554554356594108147830058760689398410144634677940285831178278525241093686832336078471730248770770731568116479045106760264409082960633706962153774572135446022345668879618062200948720066589403876128056736145721270657237480140409171292180654224582733165999743561917877956723901511614646159352968347496338590528768117930547871268979378965199696856366880854623447056131063463655060864071386461370514644617052225756811899490285758153248816830799652416063805774784562086927907999946759756738151685530205130490874045882506689004702322849876670628368207837712977149697552455589674679587064494071131644406769736903658574416842593033366696972371728037623880450399726792051471390575778749057712562359234133784827100342071683729339555357369568846140197295453241564344815400330135739716449313814687283418567412025784867271069532999524369681370828990027275686119110208368962218700040232484433496764408749538858202783007349855027129256281879772664234480617575702274797938266054443331523488136707603634463293583148276199269668047334913634009532285653325540626581925454244285267076216978849957374264838827360922163764903545160627192040043319368482718939613197260510885021996086703768910681166975761363052604568619976566668488731820130370378836313495646592873724902857692939997083789236391870018293472539633785864362052274849091829262774329155238877970360881493224925907816514815925713316848467531796036173541570697752105759802620906324675077443607001582500265982552272295485802020459850304104231908806700883420518558838235707464340789029864138623791448128841337910762597510820297384754607698345833208701469996261168603408466350502879365540680899269913184101443694211304651112425438422086200114577807692437525655302317275818915703369351146778065039157111210482652399073369762670275229146013478412354141298842326616873334152110074645501352861029227223948247383209937962051628754957912625441146272476478690867774432651886044550908640829576560723103757274406756482373625219710291437618680364933263584767370152751216570411776531251763975902053558783103230268109805305126303862766422185204603692820509900487237884347112923474951625199409060438562186212848613726790566415416896227559491364146075342304697209947727487757628496021720886745722909031270374827232984142574451683622960596259457269935512246244368412004895574617773819950326204281850258219666187810313416120278498711572088089329693080698159941587986282985545746662572336688915414864664723814680708880218796434980214891799014824721728580426836550679146401797466606847842143147092022293780978523575823669847016671976395840317971487360113418382536380518454099052379170042543947816246595681814350070801742597358242127422603908062842758119006815274935284190893568616099453353103095723540385305795686875885476745160159148327265814748790137817088240445033954255557227260771031197782325813778513213551785433393932021097802072818913209582548093404010468779928438307162595949196122162011411285186698282958389309854551350175064161057987518236161082118943567300746876409193757341399829746260027164636441811656270759801356217479356390335212001664649165686618387880478451331261826694624883954631746810065344296866778083063086696640904960533893915564646642898609121313246302246103269757478377184338858454652496723530485704161037804864954226858308600903546185797393747836783800231103809631663023905340666006163076775143131714420672722843532189956677935127525058342452400267411199830370357647348189628378869039466519512345363006847676615398097255032643072910907470905421270842849685444809881966146590293347860434909324574452212695036316953545699504863075209806736528238096946202889613881809146439679888363298086025436292859295430465246859322111400516998461593012810471661090098325002235364745306132272761477735531359237501297080173387421907491996172535827344881696868139233765808679735600824904895397309550145037032427973931419896887915953549130140617342988951302367801848013077689273648120441409172824540566495813587050895538541057901570271745276396525883703412855089702800348147884156660208819314608477476976240046716991198413458570745526195247608113142048437021516275923867095767234488976382917283349962482287013939657716902112234616681906746995714353665080486408879626827275747327344337336274440746618461870242561542553868783885778513355295674989624929385899432990254817229817712861366126265505835497699219940088945360413098587794791675994972399323908497086299203624593024282560289319682715593119454806061054440878809673028592472028558659694738893652882575707479256827765073391736150272439133542282280976719888925528276255313207893006898768451505595377248229759017839584331892483618920213423710884427600094331224527666220739633564043057677675528947058092739074387765498207319935758799509545218062775713347083572458269040911400753679594189471507219771363083844435941048997359212317385340261743706437169397506086516675132775503023771438802056916378269966450193251804923615413241165433979424458969232985529173524262200513383297258277780090022398472964746112833509241816952712392731487228727101898023796947441773552925981559906444695960888920540298323999371989715898502484678488467460176979870834559281850254065257384318635808999630761866717561276390406658852750774914107950742294147456668423757993731629413757256150760154301095051120817025602595615932776671560118658418365085650848066701991171296030844506411874607116248197983793576786115153868210261329951032512508463156921604213493229766135172226145395753334603840778427739517091309942946300778315281020890031315478757099453758785675942677254120593010410625509048325517684931179878148706509840580319791644645083857213954573644991238303249797988063413388058151492537094655506073528561591365075529480020785783995821248070239910384109812711379742929635238027828880026101584470909646614640178331891997099720531270042118994849195119675401095324335056035520417553621821100795439131749206029734294786249709194992750973913287981723683790157056451355504298075295854214205721444963835875929411419300288971692582122578374266243529505025081956858989219163256479444585659741206814571010271025942152305513730851500643219780279144675192651320754714896031987192809900031576706950026044778750165354011107900388802346806340520039249313114564003682536674485694412010770587215907177054633472777360857945646768651142197019609319728527505908883911401757769048745389914388938952429494821460851802244413310776901971083967593573222870826718941094643658604594106637478342835896829531634198265349586381634677198184070001155774303768145544231733647972432691406581354065017396865615681375183162595772012969700353471533236003844323842437267234467563050321946544622327815297541214653772900040316578701515236971652127661711993868383047045425133905222040398985158594093057732250369375594400697356126376577542713771742097526867747766180722052274659029395427696278991803295563694059661186842803651888812289233648633389900501509713934963518565903415770565024778438731102916794200759911219593233073368927474320252673450180651101017220188988630205330622528419243093171078728266470827461865275676884919471963320619959528731462300675491444432533444379579833520544170940466755200282636338396049686349470206837351277081180977055718736240170766645762006193177375897122503547699969303700071488404592886855359507439152352894834675397559425623945406016747275772990681445082747795238063195940298154597326104569789806348695633617556453167981723044842981396698557588678149184653176249767278719625552312502448773714078121004888535504712322548879366086334827754945366026936840536180700282758015442657957655477215658178664339433316064318570409926013048570013165108419973072336906453503472807787623841396120559159687687409465731755054743930997211058141154521333581277175559053100605439779921918989794470017189532586489171201447099492921295425477108455928181529155450207505942984725347366052006788330310583055235087460441459072022130805022111381898470895497500517757468167147987686820654912554921273134187647092143850759995077182619840052932849714245243735591988653231194322132446315652543176595547619649579267857746062100706523638005347243916540649139871955353746515148136297682474879096231072207266749843425886772241520919502531389734436672472566869080134527958229202780604669723660275063579330851787510016953787587965813311325467956977501531081354505783777039407991521484842478485942040513938336611783860916674441231806762587548727578072025449676612912207267174876098752353707960661461031812502035962214759188098428316572352058683826543274560584082104888720649833867752202768887718275880072114204821306318115012541019126423619681439796451819999951056847762640590162662377042286306639634742662933887482897053582287237941592241596278789117406300346672733514360493192768978713155738360707286167456429534638335956964575237030639700131859413914150346877939181435751520968810439770840046772261237245242820869890144191512253495747591293929654485552982323855617468085267579634458201589182082946245745179306065562775762378786088245133053395635850116876387013450636830843547736503742464374093681490777756443740004209091477577258478579046810978073619292278574135057130769053697144570091560250293821928822895900319027475887800700407421164271549162893013504993824738943659244278000057132984156887657599938517744361798426817101813095831602806149663721801777772012256935383235068644493354855872490705701828328758902138526486765287462274955816099552885776951019923199054328376263258940580144270557186232928706323344978946590229184435056263804153954560577438519239556660237333894540026418523625427705987863214963604884452080818812968051854362331740727371322208677414658084608866926944883264918263501344286154514639165084135004323304803819485161264220054500702163016388956778758232140071547110085086644029983707256322258220171458177680504660597062491610179622352500231102801029326491324423327544363142512418857798676228768847468329990788370368430954935092906493945462098170712617325360179998138446636111313992013782753370881350055320172362724341232788132137787491308697813945083742760609825726395967231994683482264326776750431635345931671969232133198962406675264138179529969818163374413839069887201377770167460215233934848496861963908716125407703366237893386789149151344615422859286853209935226645317492449351738736449146758300703554621828282483923309932943960983580442980233891417483202895041895981165367080869945277050064328118152510093213537944181479165680616471417166032076527391486304165775967970966615522123258384587397543197464535417383289805925636430647558199676601202888165002192833379543784111798519116262430904610283517967974291360361489904113099547249920771817225972517476494914277552306303669618797806977233531147525082981626844487947461072523645129871625342861367419590670033541843986901658877426537304741949623259563229728004833755211170183843800076642080826785437056245302945100788900329293936357672322595293787520965926206568104105299661936309502719431854255983177698768200250600397445524854297643080249278447248279425693679379054530692930374780853706586827748415126371658901960163707783223940438172819503189341699569245755087584713326345256666541447410055578416687826036242853724499343733367897935858995544650952022132561117940876392420130972894699429559875838788402305490448093227486101284062419973214890432769193413822247785524333077539186128521410601793781763866748360792078930130696016681919142834129588065110492567822288927003823653885558867204305342814929195017415852097341148419176677601611928141310426025712680844120814166762005874732706577309827175338210487564534536288315379771161025404830809035090003203575501172474842532759394583443380211962614803702600407501849108036027965351432859758002652348618907158838162519102919003195864730498923452338350199932742742271356616661075320486125201186944846380011480400698453578685248439928028979238197498403695281219290007334220943486564460682097554051580228516933718920345775804890185597843481258470053461351762996189441240011260897271601409567735083360049018400948588287129364218659110908622605213342804371944078886059394747678796786880958130814044709367472603855032540208270441568655537794133379769623853606679646049535930917226566495330298094802629944001228068773306858094244218124867578353088865280085538831195630372570106542569449152085594155643467301511153912792489085964924836028711766981959119785030992909446621038998822520926664235561948803832339131600218897729649764641663471116363482099335256962900883703186173333860672365291977882305035557481617453254218934369516795562825536147306086625101363686758051283922569983073140721882257897559365743356231866051197677486694205617090032881299919135341235337584708359734937227166050200148511847800620459183642786364100339167189153623470822472477070851215555069300276724583173261992045431996483312569015446143131847618665894357443465472438385016387053196633463052604498584956311912646341034053963748958156051712276322745708419837596449135779963742459010117359993125484108343675506694265669710302435631622852501522341348729906920873611930695485898385053110609745398396806271513462300551434290203958149593183770064991946246782098989395030722287091975681596081881896901144976004090461735684399771690965489154023426139378267254285975712524903289055952207805818109632028277783547860598886294071503327044614040903278884029876081773500502831081463826427690212009706754098282069331101651138748707851149884645324255030858574060247377966364825232548501663711290816827278990372008605517782390629172004549270109975891063159043448803576694419047735123244764862115768233455874400878062405951777376575486172681666708603167623182820439102973270579993029287931464532791449139588371128619976365097670483932816350777543838955634231580979515163888881679639070202794267418252368908966870231345215555769748689574180610514843186298079693527969609776588479136645220547688334640301921086097751879231035501127403751138104843712187657522615190244566102958991636766984303500090971204329905338250591720948824088143955831602450811951796197335032237140782126373714259323275728442060613207754997884978847208330552057815600673632672047158857813916094121886131633841457412040730177724190913116784523378074078768298211619891475423858740472160237453587727736052260577276853984995097677848813972654307670481340789671387169851534922832582395366133691483442609515162511958746698238519829341821036725325556901034370618854372370433147682277757470134440587728238212171444360260911569934185557375175194145823859113850177341223200364655885906632986768684864076414034232927473087408771212092867295212588260948933442624557147169679189365110994062820111299669301558905794137828983128687039066096781698773398415787086228954804023489415033775848791887139196472903256552857277127633024198768289856059742117066531288938528059582587707495133813357644985150297197566904581666908185235551365976430833416813661517387696562932036537628440306758030606838795446495538608233089731656449264279728751609114618013775734520231468749439632241362162517863751540421769601260581935883170636155491721195597302790672178885768557968473202419330531499382891900390370326304227680130007058726544101896401188137778068756409042151223341740878470938477019331908636661824103409590061451317361843090182825308157225449266289530613118429234428305830162753889384304233595900874481033555332313478618397763288616371273978138691774141049719255661197140133931934773059123811376256779549398643459310107415666385675369565808765434864509680636480815964994082321227088429428377213697138199417361597776318180281942266536118076784264323773845321413371206304826351107688948696189370645457934947367893649441734153065281357439841989627981094309842873921136103578534140635308773418744451025732657136875872499900304992375355626149157735678904342718514896244869071906948429394396711724579894484295582275171523481405838957439108065165600245540636032500931314809469024730530703856611170902676063320162437817049238304079579845863878148526970544241759442388692059752845148719028925186968943398270348245748160203573287751928911581009572246431351820185467444120442810254990747998071960117700803824798930429941295036807974664323476738849057301647137873705944941027778523698095064793919526739036533388933058354348526617098178980897129136806281187555206312239111778988117563472757590789764188867437337643073878464224891408023815316237716199408744017303129671655794295322205783988231882011850897831910609932971439063391098950981982820498137284285347640931353218364922256271659860120623460717005363308357895934963770956860769086980399550533684347147256789327401155037900536410768542942665212995287712650071725107716892766076393670473671077109146237335387460749013481067240953419752511424930054575379073039818825413594424113882553218425950500886633299857494611020069477255008463160739163837483356670198118172381445725778636768454062171627450479561781578699723859017002079570275676991955167112076410103539107912534193588968677854911236129494334170589460619885767233870722468548721327055330085035623906194079749212560360655607581580826276147998015977945941715701079748104618136927242461196756331610313934012268047588626883450028937448343491577983785677198497755120685543396812590600063850432518514054217105597420693962303708660196854053099318362469439664965226928740363724690513473621367515742282007241836661371685540223984415401703980355442165833539926363987180262890538493360907688406677105113605355853700581238539527135166295506249513130592757899410480604059916227416702852396240148954862803524206388390582952918097981691767219580837850855245230376066776098950004529293089561676130960803207037969747498462165806454269136378499010020532328779925904492173346551387770121475409984860139975442948053170872710072354432164265819994508855641791099184635172327796398870356653066829883568236924802000403831641950115764098503372490938148983284597094350307090355518364304787035052039787060910436649165851358236488382511541922832609791567506831309942025791690603863250857989660944241972988544772953244089075520581403505579291302109240842313403837457388872942295687642634894112129311389055663774759268013468424489688066396984988303036016160128681007948375737909331114321268811632878281885465384793122144853558448873218308826506473884013452213991221246143160348545743393768431315702564838032792258825695558935557001508583296216458507535003824053935590050918507771533246801838422843810245933512907719836997958180348384417483276033820211003871155567416262415619350778419373503637001133487007669395593581705514688905702998278067190369227120526377741417647047949096108141253489035657317748345748251778867659667464604875813847767623776336287262798519943743803457479624577941087425728519472176520590712503570401982832914690304533513589496336956329970214421520455188247166729972765620898852865702862068031541617600317748054958484408699563484565080940902963644486927718185772360256490106744970504509142904018992904076189553015084284536634568630689421740579421977937843410004777508967138397979889409624368495898267521626826073646769526896728887768462225604678786724256512722773053769136666766775039623318883377548408722862206093049702783318164609114406208597042373646166561060622712874195839368868990445808779671868016002430267784574753073906730428676277338394547612249701560727100095235368834983556426423567433572702368927927984115270609019818789617796629283905296280605849972973091197077435714486909732240393710530210381589907743216643825485633688156862822909288303370952880395884713130702315632375898985734835152982727471222557180068602224994538334389204298834489926367950669961813899839155543198621458661941172276865219926318428772194490274305401232846450868360032528716570186690073279386779183837198149874435655367965899507283447620516729102323343186505958154413654118246031681898914150753388087970974086603842059282507916116871173144526559546694883197873459413822073860259434431302569876052405333793282386895156538431669120146157925028579001212043251930777254248741979340458322896270767982207913831636400163648490568032315505512175614270958188217011847397789068596388268354323390883926020021141184934985742917647709376861672513374611439641686699306398900252377232057251178838396378064888950219854445971333115008009181376409440428795764119476912132028347759251256131680789506230757973921174482582196664735480824764607967445989072477009251133649428016827905352492345919393702076830618077811132762792974507675723516435288412829754967522758609809138188314264828395871988064583300734079231601771551408785723884494952539842083581928094340803191836723404512486836217296423717294326493339770716540161077432915589921170128166726684118834738826704083978366729432266576600076889045622865287211467017628451632172776802903446372691686134390235561357351584754213508201301805435690463910141150860995958717073912789839512027450276826795515159821259465113036785685485470260846887286139921415914517308501292810502658863650388416086285356602116035143442913894744989380667478043911098646452761580633804872380174658157977936888747120295610210984044450615267404216651979487951005233886409331489092914886944517214568922446552512534470696035654791746363833356232873288499091849889936186501211498757473790961668359721951544599201548205164216441432424385540696422823472864452277862217438638018174560397352725361966711641878747846462532954580006028845498142086721194998828890299944016867112202544409095535593106048562466124897886243608124067359741945872834437615530063447882586923432748915451111591383596102584840298220194139161137672658814743271388606204544214841054774768495533313918839589565393732555242896289473732449420405703453930507375474479397115512146736166846155810496344312459846083842397690934743028915966844523537836790282732036690579742254184743990036265882697047909672981359922481463129851909739871753364591671441992159485401701965779871075645441451151346611747382956551011953058956968065248800098576530455990322163795493034755670779619666194068161689930042171358535444850677099514307641330198591262177984200323316984711402691401954574866175323534484835406528076804637911182687504719281992136941541258554411968424621706380959011187049359984559255500874317074513082376737504470115776306811477702133620939616425436758507342831808029743411196801971677815774035687463578721345553070715742207701983572779614956300581557414442373719611317349889791381677022946229639712596450871943549852412960234580264632387491156343630065321546595158418733274780590600240538873577979750660647374317324842903324273148098466197285358196245176444393246491604754604059873173745009369936021693813428390317406701223967475193901470526043069349183838369476012132009976877990462718381147261626210986944656460609396012902636775813757778637756643501620158728903279600317982285557574983858241754086369180512045565102197356346138431640315348454516838460062682127038410906983160711258316623708517136780383552470601770803167171181889371992977648229989255847838116679793514166411036766498368441788039273748402706482465860308783601056390062010699375770767645703415707692595536100190813229506297564069299858239709345914917867045125917961881415905155118095064986011358136613663891443598446700511905245388607815462657035716326773738241611365207717905542990025778718644015140865446056632517942344927856646886628294682795923408157165814029547953471646503506671833311380454787264331671284709295013600681614589003386597061927149791201136060466989163975643562505759524104483179371585739561670663473605752809168063308170605242770465958144004611170041978350110568996863496574778939281725449971029719623723012420061181181560560416297248847625714527805307539318070104552092876644344301740677147670661809806357838998944485153470048858601235078529520445986989191096885640489928442779313125992054994032563679645699803707553672105849338702990477091456141736230902372517241920467137022395790792324789282566665996034180238478857642257858767478672220540437119131973021433268004119871737066866677117090834883244136734289545294460133497106036955837413027018665154781975020317364260297241539420500892114168141442398136269377341801028771137420798960980760072393530094228463179796991367008219231101049574507035044051070802917493531051964238305832049798467814900858803121897756189105725972140324637849461615827491510165535056431530746841196414088133541448578226384089073853762889895864757065219638953702487439583548265649731804111803582078686760882095463995895471441660768583480977894769362602482385359043022315012263513053853882726618280430638015434987960585524421951778652367579552390524434867891523756896745045440987660845169558151193897600481910342826316108186038579512001573445717888447363146343211427159613761779519768261151353057645879132311837411122004753704701554776501241823977109116143760935735578072483931980278626461983116442844488289270980913234843899614438328178651398354076279583072832717318050304082479137506375183245488431604187080801768941727150056058851804864176255541554410072878648965334631387925103890299884085350251831074960812587392974104829077228057166670150871783738033482520526030542816664494558576568635587433461067601868202503272733423627652854925096285521141284566511104273290952817591988803991659375175592255253452756483582995343560917104581117886377866042908827824244969234413849376266143426149134933130239353843624074116531430361173376228161897542047886397378436945470429590224612820502523514241346995733317348153666778643013778455220637413211690778299640952745160191660520776137395579759240436920583443121322231242068595332662981927675638491496476399070333899956937476858571506964988105700522565950902053335456172286039060049178543687382426025133250596452555855308139464082649622268286574694556604956145903673344226956575458912810859016919588122665655276719752931582664507729748578259899585870700072614718050487236162190425314327998871668593078258706511806968713389940320807198585537893131576871072960026909422908644028463742311263961463118050825147569678943070656385126500611772641018134428548048287712837453652977605400461206524667047337489458984830959680681397782553790723717493538080527841782410478954263483793763314111428335525841596487199401597315578071366040208056894122492742819004274838489798484999046103164872009958995191795314531548278290061641639391099199758046242426004507844469814527649338936700567388785785688506491422080190537342833990880922056406471212921459546945608043479116050625900471521012222102262109232368283474459391097957299773386051330401973158569052052366910937975730824537963350895530218621674160846450426410293601338371252495352347363820999188582812619505223059002660395171496130994962504205099988557614816870364497892331932576669570640885124363775507755264831559574160420165940413563984161966299757848734667153525337911811323037113953475857060343864030986115905896860184347524628220726952838889990898796659663341238738932695295587309030976874149328315860127518151233191208786421901565458554667082859117835894911710244904916924320526849341858749155837103633515701132604480376117325838296227135185507889583215002773448048980855277461757283862503982135270011673392396221595957306956336031849273708049555278311421910899083451835153188425913723804448537611352755921289588477102316680386785869238926253217473774999038869603098361118949515798565072212012481802004057048872424181179570412683389818857282747516923373798022071651099631608524091764143387600601222534147882777975847299952459215919284168136360201052844935609494731265242358965181365451253476249194514507475627119801007827957101249533108835853166861057577606032267888220237732232860594679082488213468632100074460120743440925842016090483164642203601817675124597365550643147444075664264558194224711183612232238060981456167752988876957637850453348532901693629874667083398622476892135235399367441644736496286202934871722154754558957697006010354862372011396453121071630227358748646505551232494924068069507662087519599446511760392557627974108538783633931454511810636622284230567495473383610318711485378961002242177819151575124456942769561896366824927506539032328658975725361171928408163397452727686227441259476681679342144876042412545897987243571728636363537858502377610314040273657188363182676998841163753639339409015880958754481624878119445337713230440076363906885439615160129271740068422659325814157360593257293930301723221383597607506188646495377667588973711918144251456882604458648836906618775163096094820262956445245491283501285599244029064581912369673098591267714678508812233604406107373124388877152612612510208414088836102132162868240322155264309409390537314860204186998162191642547457279171256686138957759982857887382189438553987447494394483976363465799198008311527136517211324184025076238821750746613976268855193264086265603399350058130522521410679245942631290158555157989717120399379174341588815954892005853959744067519731888813169134504143408564521380685688654047140119229703158898904370742497605183943157919299944853569091675822917204622382048439680741901075565020995507242901939560097430313759258255450899818983783375564110006572943691635544633452677445407045609001634363912589747087590121838550372195488503646430243851107150008020009447697106801580059350380753768768009341923989840401050570758496761229398380063138946407203362521324962720605916335157529604123703386861562783127466361404774325260680693266360618082583421705639323609020395283791955702365623163307536853284859374849802318889193060482916165474114254316591030433015604685740529396767071951410925663487850933980814935160941366492836889911651218569167143773643191963603549542930292440059101300651249898880050670904266082079661093077453377000812686086897433787284254407554704260116979672606528161530996026650900593866292302635970881210195181815044243903260144543509379405319939756195613600426382221411086550430764770948398064956440648889646833015618170534535997315506468432169865446625085966621234986659444843724061290676589006294613121593343290919109026760642234469585034513532056181689780097760764430099314441763059177450921384176677835180990795372780958483686037532167513190665784017719775203726156520488734259647111612586214809987297331165976905677236811937864181837893831362802318911093128113983817188465372147741194659874746230784234845037818121672402699552398252695712726197560912845403539701581166645734143450874627144181556997376892290755253006496431563473865927908564456997574611056164453466614564405999583864508047288544902608078435311651334639581835520345965339239799331817258363147685584714786890942673670918908513162389983195644047255795796844372657902151680122637130510984234770021348074988849065613228853818004436939948370413709694086456149391766663251161403214665780410343991420356852041332087744065312628367379372828658280574418132959007559615576462274101866601013190024709146478306069079023124010646247619548023664200407842763634056772803826575700435340742851536763558314145905834073690728287483915254577685513718797927622224956520932079848017416590896882996413132619968598604511341752023880890853690956603619793347782975616555263635021553012354990236429134186241093406450946451010382159932060296145003776304417950657054708225856001946150250869531701726440280121239806444516046078089874738527723277527432284091589011302706610469390733458173398256421139028767042204394434172505696604652506873422038663291728950542938697853241020603294491148394327278222966146921423763531451560022408459778912691867623753622410335834061203670451932241246230031658639198914177670983133525657566120951832376615051676998312976180712921158537505123185405037752720277671474176043914067614680783619700501393299713179933344112868755019188621901628447016247212168265073136124038775530776981280337315710303436447915048003066481742667912661631983727664014307638765042035242461064379038003131245372952415820788517882565476538856081402676837624403428420933287365540901814765248121999390376085748730324853664178364792180393410314254285781313951360077286444630481691850878370586371913766338541334180544039509212577653978439025245324546795057515089830686995677728655149792414319955515040199812650802744062171848949197176122255940940921391122874201581484690567394166527462184799656332880545542645697017798317990417042849265223766991085572549226348110441428784495249265091979352753149955468998552788898575236366343556228068694719538934833169699330397097697104992297356861965907237070091243999815211296735309362533655606272509048035016019562861693350500721133741268800011565853606031816364479529483693799772924641146647917364252857524140267454772570521758015552936866522369678837161331075995931823829561038304618375851170626082992901682947040652235114076447653823795647082356243098392384089485049825857589173522729012021602726641971984311939645615811498709492502917499666866442203542616737579952060235580229681383284946514518783563701997827472554855348141443326568567681625289265399253850078296783500162430719938142123608800149365762951008878186941413521964080765693791119457584242192881458642004378248579568882694871254717977247746266445648526867049799278967061211189518230660533618798790644311300465054351824025184352423856264048104563578004063957524118844164409898255278401607690020151750692094385780830863696114741305219417037086611976366050001271804455495472089449752498383281456857118648036874969310986194120472900129644242913617186204681234404239521291584219741433019173056895073181580846028186091228646903601875653628724982800521191413974938659824982233901884232996159847884240544390233252316675648105870801334507227024427280568475943946205542964247793951382500195575559461773491311837516865391901935036845626585402470930572734453610335918593971658382964153776703251839280937378179478686608086928476038949337081446566548379837934454904852591539468469788019188003711518513707106526606968347137045227122007649917272081146596864363168074993636133453513434017954488285710484920644102781730284140032865595582522348811888226606659360495052196649272082742349163586442628023924519579748286436663726560797764412720115146653745532510053207694675176322653196187233628268810593015877037379817769713149431223463133633937979019689474174933883938014439901137370562452319887799175040320594130573641689136789220372579340752103473968185409285090555412287469069210405245819089318104351850043475163448279934429250016593310225263211856668916524969287814108632717047249117760313177726418981398358005527193641630294695116373664850240601729391923635582222213372764498388097837265498525491367470022454273400238952826727785346338400425566065973192167690230517754693712099821900001356131818540978766011548046149019664073718448855262960908873144446059699385818184844031025984045425785488363829690360499577342663912081678608411118059447712007211802276170985698797129740175273430687008860343599981648873127103600267795593797730939465472134689010970013987843095510432982789123314643601751701815552074613305727532580316219022557240214724912981443905302594733374425177809468286009014351028075706552777874390406158512422363595439620862438820000905692464915284210529184553167738403172694811805188813008573863460517340506518250983876919425490847632212813434230196003886049543991530838218241452699891461323932848554987968503273869702951088615438264252397638889843983336168994510244965853262886257910693965136658798528274422204090441773911210242118150573930474928234218832472194468824449771844798419222084545083962857601829589284339923678761338508983648128373864135931175260725154385468726618396571854702795191671141091112620551994524008416917331502110714886403855199036115937718652962783192569913387038108042161942961061702177332365307325962323454079095778135179891301523871049533443169371621417906406947527081256527292994812335602818812244319515281249817757445963607486367455769780261112273149577776673785678473856529883780658933898481628212606981638521052346942405628212528118287362701303369836560224244013979050210014744957967489859008062637985418183347513598513751579616105208260718640669476887283356601303158351165307837826384072063491388254229842826205872308090962382567867006789891723842551906075774618999650874801240803992166860141503195174702652856595085330412150580160893998221552822804463724362275637601967771838241343466146602536086644714872563075117246428489160136386229202415174447874299891212476726741114614872510249255366293577001567943067520724511756556272464758448174154973165793022833783266586856216867387397973603470940931180861564780219354555126806336941519386797052280511728662871816812244088838713341382467817070857186572107069302810652408974953372192057507649663275742610351356843320533246256631000601298815440753561690980464985681560455830918319216625321348692590994845894504236216219887619982233590718169032219800280697591832743634994347549957456787701143551054507879298640637035660651352653478972355562408067440856393229572108920530767402873165645964140696775574516027679746687393410421393181105358371856170277825285388809786948063270506681135635921473129323182727002333200469157883241261529047834931187723948972061871588924390961116397159085701851541464283117947369081050883720470425136329405644675729401603760955249728519487128972079790074330151281859668913390741887784981874088471030863732066406307499303872071880079375032936176588816211710498390853751074567053794127642424609895341420550459966834008373307198436138217186232196234802009045557441725645086077707974720467529002605993231257016630636109755205783118264063323608253776039044968909909493934134134621483566372856001721354772832286123161282032423676594310737019441380446731085501250977845061594824202595209639279815128400861755678963160066800891056251918404775746082735799020217817734284154910324042836497025184725348942268912074269576986883128345793092890674768713407166949503094063517138694225329575346560973809669579192305809831836862518812839852205528567473169784986774157466243799948645945011214175014703554769216431189569666740238205863202818099810801365836432221915033607489225268342210934720378944037718335665037530369952536273376896824885946930288664053078396965212328121288232602249601539896081431512736425706155599421698215424775328632827503317574080855505051936639977065977596449755483665694388779084579626116404222780958056052554822022714087123860271077278843219963261639405435401724574962613449088032418748974074275420622693439665728482725754620203646871059826736257383134359603415592556837421656247962320931004716668248276491658544804777508383478253975321410062596447726203129050008106675968621735133873093470211782610095268572856831255091277584774854319330987429315416114358511810088598694129473238478590988439143208263861815489449804824635562769416251548223375009546046601792632231041389204470608607495499154038979640016224377913970130793341490699506289518382433566852339186121654836517198145569929063582436910050640313594587673949410731023198315385313797591895854813565522481465610728132638797336775489538538526531725069628575251269730986849537453668403733955696195911789843342429698669964919813523214847377184894056776559477067318197493587841396836175135139425386080797800615585538974185735266743136568914589539767509141194441549046654787057410257045285792068611732859494253544551915400635159964327375623898941595358000580707551775622205421336190258506037665655867853881944240036799302631609619339228892653076339556965599364912028916777047357697295220500874499593047589054938759524328070381665308980826974495280191481848501895661728130617183493222995075087498003098867578941508808780605012848283445503857367811960552650112972143451800894256205179182809734199416848488992171967372893427427154865811535145793047728507483874573916495942272537018886164955767044854457249292963555956440465685978430449547338324534713032913920528003478595755254225962107353578349795167153972281020247406064932328249313056966685331512742325512302826282399158984670566762979552655430370267496180875271629345840092223098348354821146209066566976298124338441951600558440973744242861672043141663482587185415239398759882848109267362861406136852795752441840354336296562019826883159630803351322040826365474654834484279471885384271069685949302394777545882688160244690553797556242306110232587750064584273268915384309017353000041381923415954316849378508777754701549844282564071064638617596122387174784890612125521882795407145901943032606586795921786087337441000188435001073928135141646564898029820379570554314830028993459534565377578365856634114520141700961410685282162760673132849836451887750158685367242444692039040631243099051913600694997863158855674787899299852450101253401027128951434928994705655255248737503713917719649146130097594027225522793049267498813921827124898397537390759730989029875753217415023318969771079765337999049958208507699701536248837909555086711251283866332811766910240047541949908936971957324398466672881375690506018218714114936842379565432094214027580684134662095245437746746100477325880456711887315560219770958752988488069159920638152331285326299833917170055455138557958989277930989135591035014653296991142990177622249619419092280838267569350393077621247171386749474801002404140633277714417661459593270205284096283010733615367513257701993201755622412553562150533482973237944775188084699991640637376798334206808614386715013242770045435126500370417748066511259372137209203174809822143402422758619819280137349046847445262203725133504837423017796909881250632128058075599421812051218680149410733153739534405590653204255264662442483554620212895525260638933609188270719229750493010198733763321221770459264576489576411388028776595541159067974656958953374301653421761628546676108688185050130112123653103540407930848475021319045817125283372350069331697646554713659413172395082388102251413800873750662023376242351658306469423056836883697225004869619737769989365422444158033897671531027258817843433502654808435384649136537181346167447298611750881247548821801680807241440596225430129854307530202468056929234382630517957260348978100376292508936206010066208157440182177244307667911511741178631396222340689253256152865316189042269903610730680530508386179977801522245018713470190676087511620909786944718469038389052986906078910822278753360078612880926163174073870473724509562609656377717821464662957412153277117152301511974627494376233598581897354509877167317572891649184624775923837215276885524095971317053159829761955077196473105942610751839517146223646606742519657097950405344019455001181535355761300374511611797522861810518818309646359480469451626801769666581772359118098904379736676819464181600574037866146675983526182676571703527688389170640433441804661854179791459020772518060725156504820187923035113337159229073335638687290383208674899061511755751906944803752896774645555943909728654754883872772484470060342847672926684525164103610928986737995901438147794434111393559028013346335083980587625838664136413189394384989551210557338835046135374147004172083764919808059178359458348171151075047810930238557073037544102126706719177354298741721618183640953602218105915039280883963797442132090819940958452102782378219345102240570076484599143862894535746786976253842818054206452419569103395599822835128118796294332132893536686815089332156929320556152346907364810364147479687557434573499165661422010433073186827614848008022831303771539622661685808530745523164202485672047991111594763666707717921830150365674973991801062234692682964404950146462549385429166130220011298518026560048219806156194610876740212628510942075591400768300085003550952551348004139298089190729281086901027533740432694981872901150040337301261060881731666930438951004072255868966309292154214186524201926645123625418470798512054020801497458719922835390284230699527250976050617783746848972030932380718743111312047102506408567607841290656158190008000713494524078202097274483047756525807705694505500242567473582293667847901927698237675044686892280157861668782880983078988660632469254504782197194558077119368373267054925544627143263193474040587592399322365174991623235843950672031078525985289296615876808840040169134925609861476420135539819178476934602235620094159867444939548849190943799619090656422309995352259271483594101317772456127710308189714084517813945243414051941508917696578528250037534108354163316706514936460910491040354988658692708693261165737688739004394901297791026783258061520707476410279313287104873248473373672517815121562293456259396905230223008292735936836892597302127766547194148354084889094904697628829768472252896109377299404051860492827194671361902347189893265525083725357161143759780669272201327599996910158893397617757938031881129617753887959048837284805340565362369098704643551069592523214806684408965752042845961974611187237938697279723392667473835472104124456409232083782437555140768996647414093680628773668927432287188919901335893516372546952768996099556616435118976115979594783140721924950360970305974613856703328447670904413757175662231090848966219862736759734675216533167819613650143839692197148822494161621443101502461565658935071972813454584449121539049952487322234172768887757868481412199180998563289833537900751149886883274555488898658396344771447305274288344337837613293862034466402695546553289785619232446823046940326174104015907801747600809641584735039708774936808424103832353958817003122338364366145217504440017819317812579515686071220344616697123090976872742551662948407089995827840474284656141443733614535691679145064221603413563993816370279098715037129018047310939922045559554403206935518909134957214236341362191780927061389356643632289014399379828423742749198742674774727758973757053525100150572827458358143312458430841460253369931329194873962819520204491080137895139596818015628000618223019924679524606245083420303899122081344280632575303245195188548706076424417841952498459347665832675471229267896359573758398351898967173319334821422874531862539934301241569891758644145645691870301639825980756427070704663703410082753783031880989684898549309631069890827317548992660402828932170830647370306342380600675335897357974347965812294205154786272078170669666371791673473191602284343934837747477757686065989376812102462844452952558938618534513238180147025779090260095252015688295796651805430391294879386193615642015175245833732006801440359614033844126265081560975191882332889238886554897750159315536997691483010091996647811925260614658368043005900916170472669718380853999224172943226333324727192853954473080222048183675346256416202290369978697446294452163880929236386740961663354713915051424334350548342923593486395470198967658273145889818329739271179541657946356077529777188055934332716748805575269704463474368733195470910646461892549426436959212755755377158188303229987668172752759258931727970265391050124294106614901597646743583147792001274184683271568623074764789964150006865210121410375649154992255651789564433908083582074817667746814652541940591114437501692215874069872901635395900786289475941467807805551595183839262105645717320478041498971018798863723034372270930981639051039386647946940176038661061624935423943982936978421500935191163529605812957250983281124538303428036724662044937365767571960307260612317688302100557997493017371135844034095919293810359894221309919091111802974102294450236292762878448531494358359686790803838245095096876210680781191072568252121562019294377873947634321959717521979344764277201498267602635100890874586194797479264877762143517930855236944043549006285684368389785684387465145262603927722600960794225244983744192157790761608350231585724699203118522520659045080699359512825943465037157517468379547737891026800072301194349095374558393020554553049309314251175266171616655852258157423897933877620714682414019990056624679012337898644092186836544049513343437722679314588951121614770370937365893019008069157637854656915172953531364858748582924970555847875088935330620524302754350999074752513985498282498566100692240855166449967688107478421180620500936820529318994047782185606874374888396547210948187778132358758589781977833346721414080664627050457304506914112153653251564292123071617957591740131946279442546330508893636436541539003547419370095159446307525195558224770993514246842384055266641321481183188894075422409722106281986917274590790098163423844508855210895929007411264584630338476461304245439818817851018556985642647924791582900607886240738773185027461000498525903201476785521707031407512813694105489517766276227913428616541022733018337350709068677819719014710552014032285649488905430898162820666442584904308411046279830474739676279374159452127266705826490664875242391070085078693710073073533376657209922965777776831493263346237752301004610864089440914942551320985400187527243577300104760309213269031168654390345482111988933374576160886273276110484938848095274489508084180830841028906954738894419423673366620423561313271452937805897376142494770204320170854497966028939647247482595263474959442810911195155979422142440067855389909828622072306770154172919771883414383810454685059280946260229041021790703237151868395445654379078436658526912393352846031548843620645612306356971106490348610418195436268555913435832047693326466752544487003997026483785732892087029397401525283446294827082774245056311088801944444877937559708946020539308656513730307694549240140870643374302268134056730482499225482241096712243314139615350623930103992166985659781507116061796425839275592932042568122379821393846335617508848123922108961123019763759054676629705346645274954353646209652001417384736374144568743209370619294106407719851020421396340879561634527816847034924042144785695419684122740802195278428219590261684162685251827025990534707714103772972970194788436925600609589933214571198333388391313306903300425107280508621683428274596946701923150806653241832434984127859516287685758725039094939777008502176422115660510438796845606624015946968583644165487100199587710385052653258869256316191873525852021406721801468447494380747561303020070777504247586743674570239161893765206068481946584783301994897043789437833280105772706248164539566217081435716758136560012231620878993025923914311432538163351094078680708970883879072338621878284874137766645504563298265994693065364316371184030939530945571106712421607928374236273007845332957161661813304259143058347014494900502612751511333496981526076260043252928140364046946064041517755162927758731632613028808819674014880325205940517537670472571563880406486484684238354147193003848826805097331363702544885265717764380239557259590793139676928988346128470031602471480938606968583759206944842836915518200782057020785560528338029793494456361758698032527680780870038359501513081225035261350711665161470476069329301193576112159495409857054050088542738964188059587730905445827480123743621242707838882102523378899271320756384473148473499182208908802393102053912764910325264726202762415660312195529063938646962019091922458310491827582832338679018178665066662274965938156902987854002662278883570087588602743367712333712698812523866270951734193425643394941129751646822213867266375644742318729959838429323419572045976281739864634056765126324547880791844172533334525060622365366014092460205015483029728073295563363158842454731150845967180788104178142741398224367059352726304337385321447283672240305328209408437034966690416655596155358435359531730230666681562011726352022230492013944776151247269830871110612498318802255322234103831867228974141139201879408567531483883350492936523393025596639529999105527164957730528910848783429779907956670591444673350501642145682120098561306282647734142483023280373856527883008727928297680234146020672184229787424091204493892320609390576088997429860910286596866274676050666842257323919342832946440547408064754213979185082802745327837214110824225617168198218796162626443341522463361849439382678446837449913297613530211519462793894847633634811381362400994098766706215956045982593627084677782240081417986551942024760355554567910204945043478649866493026825570879666019002958522079909642684559575318360602820124940453694760042031782338825268520356882374539755227935341794241559463376116042736174127198077407707470900415351243477373169864382390557595130236193355315107208627278168386197066497918717071227881000963404778166456729873112210013392404661742852506830940453758841734148130431954735103700513546246100862045722861536379026168380763807669168645226215750013425803163702717779861695326124036249680451285930713067104426681965946733952943598529559791975114413096244194526692560700131458882417685267689258699053549399640407452363591614709971133774951874625323312959071898063347020383448256715481288634723007247299031435551434046168650270263451738015338977472852853719698958750593862658152160336434260863706061507095889078425820561213840612449400307153794186254206806446121671894666304580464442904074479494882252234199789921193265405362527618765774855880942160736744491177522114191011198227057242728375900783141914163522901459000149550138538592624065243796759161149483524560191068446850588990324883545968439902341631047767977405749124122451176282808178000647269069993191468703792434909748946921638769335594019821312281108176288781913545722918868775953846345573889211459983095801684213004416547530301543921134733566313074210263393618874131893370193118443139269177793767724445886650250477198625936297956705073876858958569894403503039648412598968919313119603807359300391890350511019365542619519544573952638681558738983902492317756264724323035987252771736967090517455958347241423709363343275947249282254172210899473489158937549344034813473735627704316062791928713541366184560872503380319348427370335603871514907851385987333674730417330876144420723360917581023164051567508390311432270741254687107840904678660234465167805109837905110665737593911121958769350248504401875169019149397628166432942282976499699842869774843056104800055226526154955025258095982820705161725148016697703723204772489953604261156065911255444223763215174454747744461320753241722519791672199632365624410822903358794600873225836565385944909033086144453434370931471476994099481594919024155181646441511306220720121962800486229698212426285911694475569217203126756648509138403292338341534133349930203571338735407012445973715618582862363152275032639276634234382424722828611608045881840288588074380252562300950120125877063519095507530919354719639955107096715441051693593697637386136216866160092399758069175509838923254785792607508542641949012743748903852197487219309951176401323994824774723220996469792044202575343394605255740761187297083805765038199205428515425465418890446012094562259420384946863895330434375412138759376685121016083214594361204076233358834151403303826029772745220658750778836643261700367564493174372886269667804407444680809990865767312958921108167184232705103063725096154789846999736973298932405704084582971940923704109616976835719375123210974604578177565880880629773022418852859103941951143238915766789041534371079729388520032453315995186200015199040943692781070971789958925297741145384108044995930279238645435014313423613895081686424749908667145566203915496596915684954940698901170267328435570235942421334373532797503477921913997515779858382695261704817466879668472897828953486474602886393639654461447037330432443580720709495748665194269084839067598480082244679519697714665623088238449194225907358878663001746775629661432411355398909128060216174518159973961323015765959170408793940274214918588725949721594752823524520181825848724405050562778151496577854627440989271357467382912877917502138913396310766342025682465972124136156730656514808170031115549324378939110912440466735445621863624220564135107837169409084567888189418598538752583700408807680226477936987657317410222179549280046991949568952171867079332135568065589466851976737003903668346921073178411334135107667351343318566745585609269703335966793099023518817377000832714992227876892153783633062169771536874146751627616165364395255832794257147679077144323529972852215763382114874818373839304276481108640522495502566817759159083300163838129623789948179629614361396675897021349823082187750032182208936005204767175324313719181177985272435858436970222044715047555269229268709581562589700050055836840387681316462198428545305161258015286878115274449356138171304313798359914766468446565310002652755024305535974267194955680057086244947314346758809594078342960102377068213796255605987082976393861291068465506816463280787270036962866553925666490225846220581340673673138099274074170133614053178396997702093924993385888419977642038894354349866078097316118283923374885707730519542759878134946268965012790629681496716354068803742644489278811362057141629818012594155687290765451723776240436241202450810522587521992894023013542701840540475964209447515902534472597102224689920517906774689262318083650698924812000363283302114438997277198665526867175513096616487593920653419415605337824241875272873193408850942155352062736891790896536631528567316395673613403528715360977611637154735415784769770433824647208065191563423853971006701945722532677080649340735567486294219997071608923441926683135605320315110049763708951070016067001277438495375838276862609541849737945772487733778167808213549754622892430294997038264501505960959234584153305075593391414541867851308724931403871870802023165698484760795497244672357891090104182062279077634292818347926524182033689312008761865636342714451322510175701414920901230964586200033343642937596326013056798673623863638306572523495006252959428423743467779799806421941799564196349759721909104594438901632072936348724904617251522380201012871116804428612785040210038026879793103222975737715340412579536579133067478411468049048155481352446253903330350582860890156749097312144902677096322324647044756518002739102090040716402879934845238209952501102363582719011224938720937986554870938196764743814225656365328756008734143305695218546230019526301170622668131800392807289428990852804667523086338100823585768475887854429426329943267999137802195069142586945428200058363148306504247807974012511348799079770493921401578763067148719848724859207583290155780709112178014998007148620901654100716013927799668990793783659443722618000342906185842669137775113869759171750294430248243988274942570997592583879577231532312186192587144593466102540893076200921205503166635262307357404993258658058939568628365211859248840137184558547805117346748826651739419187388511530114570571341541317129252312835132871161817831713657059168884598629452599584930951014398972838233134353905429825292564666932679313018831549492239245725163327044873915227706431053330458260308554002891687619538822915765818257319937093585187372003555915923637710049885794129210536554824370597351943856443817496905679062667862877235951425754415003383568321421048182835164521380400090526648582238061092256681934413378329079738466981625513915015208154088654663905797598833777243224124594424930951196618817924623751178322914888811422596691687241991598814539963877989542849646355991673611803533711760908886949652215536843627779619067104026771569522396750215481424073559445813654331777476844671616992715972320638638959519470459169103499988609896530512735004216385158172842612269313052463664484219521128383443857399850556449249508262579457851480330219411231450573884311645927810628078731161313889627985046327341901224057190641580391413036396011098967395550370263262173983595279384400887889054652883681809106399404736131639814746438394436060182198961329527171684967424863616354537233928922419674965848786407651348896171601962132546665576419174784361152297604679885556202013364161881604563138450307902040332123918256282914615206563653381845000604238208426382220308343646183618463608086863945770162740359597927306549063306670626477842307450143335656558664526819044169438541286550957305809935195393957196253831349314938621904068731026795553927125065486987647079754744636300969612653186464850535812520996388474749881586604010181066501324456636791264384936784639464806484081978837135102204503656085813928892643547338468279883361095642289347359072636893426403608610275185680017924523792785311667653527942718719324077250627717271520824996518132013894165789303729561184323692189038242120319125377358711409317678315838901232752604011457849060077222718383116551338864390248951986475833456564485244392977423143636520242583253782513666869796364745159469058395563795053538166297604529590438627883552007327802443640712825596336407256726382007015647843911416263063163826501227010189258185296447733854826463174958053231337777698965557267966690569651512485731249960393795471038781430779788266190152696649870847678065270483763578620408582892133672071863230966239112113700012081216792403441191855951351771080108670612006774031876286678649688362280262907357169198706057693607681271068865864598211641528609344793976342009783333449873460778291453318941505968256795929161378535972101163675219963204103919169802898747396410834332511671947677181113056108964978148824781996748689866472377797547668580562564214950825701143166201789924597854960043125113252427913605512168699863034845428920492230522585451252577143720766890970093024364230917455396973812044692370820749250401314253083146779877492550553533973992205352682387563627046324519681786047901573168353228104022969858907090271241742156294581980765509590579148518533076584139244911227729377323703532901245040196104099371420036099097968274073207439846441422178003218088145100036887624616451411208869001718518301978560138664163588510659719494492315826275296771064298243676477803536479592785816347721528034899433399307735762299251741561694527146187209414218607399889359269467792037990944548705983680889377345916974981535140281531576821903672161364885404167682240236241627051950078937850576485890870625720835770478410520727758347423826644894468677338537447970537213789724205563634402094128676804521540155481494067426205065962503073140698418701257030063770471745761014160706787590405562734066159170718150472438333734016416176937205913783048534622134486800859997070635458381934170082668601472979701258610157062221277553984484946359078201163298788754160227461664206261368745721375659308915581726597983849016193286840850659426136039595629182276582334114488418746737091969227692592471788157665580134717517505943779991526995688107082458351132390649524649966147457059845525190269274473589139415759373597709065970338714392235474471319158222512581613618062505337783156251576797185225061622720862408135259322858911953220789765085192250713163007900793868549052734455558437736686916005541803183634724215151749268316734627066336836528975113384512841159534407011250823279861003774237517488406443218097498466069335912192933476594488411679559291045249645946924048335805600500440811883375973938765444655429735112484142078699265202619532491626831725632490735133061868031912929450888008910835510393440270426601541399670730889709473920025358527674787217858268152444463318173746391314520181547906866968884849647474401515860844839823601400694500021625390441874335920211347320082138903094259128036671437581961092613974878297993541233329657894774977573192355570700560950111261746414343665177203434003725136022247384234664647055956741230406793292366708958721436524116655267435718225646184689662212598085224118276115151544477599621281786142095400036159534503327300690926223611182601167468636552467412148925981638500220561423456929363381532854023491545983649535775180799674855439576516527364342697929169018194122820793749641700119297069351064922832449086248728368805819094485957095137897469413674751612037608708426051954734611211816635536205915061780780524402163585855698868833815094434295819128431479009162172835932532100781911096082586382843078186580738576044192686262184706553422000063042720016162842191956572035904799460118097188084371364036967152452769138013495585037437179965726227714714629169747279149058758276898361916906410563731440374388374900509693508309355461878825369136723900722728982827036040542881310645169580941470838507244844630703316334039554041511246183446328312408948995164666665567791652487174337117587536477515138580594255198306676486143543348198323901081305970605539199990294558818021705186807896493072557435233642057136897361206223628294284151988886662924742331199556829474474853832476772291615857207285271020094411465619806307074555798211310026578530436780923641811098308380129640079960673010912275806106756950173867106528042831196857971947701908078168352615999977199023533152814984360187423806137007880197618319087517707823311917712763560119755598971176854875888678490856025966359395909025306094419458501233077465312063240747356801662987813355826329528608206627570155616061563114550110440020798543406093115522392123988458059620293986670594604848100951700104202955028760655164380297276420262125231673688175375723419063481021680883036856306701619926897804136762683029985760314996043094478217916827158939703749779512095897437255895770629885439509835648119588231007099254247530985470213624380503561853581405075662405534594382673315075319169977653725458381825948995052059835989816764996718115843958275888300285355906083129633228561890414454956782599061140486023888080750421810594751960812575738132392563359684744624375364224343347707128280640607364045556637325692931791490844826378529460951833756051746545449405424768895268385705728218706791060480254723874394731486757978978306436597040570688356280661858738657014537816785733696714541496025022714258544935675035107659793000421417165676358165101621355430011331404936650000192584067593849404837172117334051560589986422410240575726253261470119214278387877390854075745920724305369523292664398003722181556268682304669155709863353769598100807804803717786244085516328246446366687314077422425858215078057677913523259330431754975118284701355335651391182458749237740328366916583590052291591945483865472680078850039091399445140094499421293605553800184796972381296169505498749345720556758882050961153131889245333356364669239168482256719026014300533252185170692750971268025684425356272931228307245370334699654694246557325158913631776879960371647375592625445325715603817472900179327987956762870724258450628219518832361185876971264977341785307684789103056548791494869023959178246911767949240679932817206570173150197705999355770170022928073160174345375778666446590242413396600689130172245718773849016188843403372696111981024994910747535069572617608327242021834678585346142152212057438939955854075634416730753322174179168817859602617939675515487136937519707986162925186921786197092876305623984334336099965729164968712729252565362383318791050153835571014601213114048130381816668550978906150772266859263138004149786288722299459128862925712957547267490517419280861387545451972100283809251359454230005735853499433222968893954965264285985077440835536160156978176923887473586209171329533119161562756903140618782077834246610722132892764853852915093090142825079296342094384983537363127141405122260222259686858895398654247806883993323117952081441150138861762961448999570830188060186108778963476287148342959561276307926008742235247885008866780360169071672668419520248182397921946214337571443009194960249734125892726965587379601190101300902945287226910091999281780611744862722930803706627313371346462353674162806842445283091515441222053389846123308672064766536972489995171347814809868753609972635457698279407845756474217423544214386769460072189847771073560234886745905402216713242705358812249638700904595595720708490653029220185765232725912876386660592253401270229421584954401182964485867921263313506032096870173723105297372526444829384249241960557711748462912463223421665019973802766913921545429497981002769416574381217983694842784883364267742502308312914413047912760936959439014617500181773824072874836210289625289421593529356224430235752121877940060307983493074670357576836168292352562137184103173674050073372388733025173215201807403043660249678929470261347409122757888811523481823452176482255906321581345236725398661504443017169674347404725972915892718925747041652060408479731659049506287570273891153626089525214682228076683896850266999214177418299403350327346499493853554739700494895955038201345514956697747242333282731332225154419330481731801622735096961106252244610473406206466217196702951592808799432290627291285995599582649730977140112453415358369417440769629745597144576940073322289208461882296036503339204887163248077052548585814561441240113084590872492936520623796244949437121859994683343639051485256408707478024893025547401132207720780253872772835682262610005785688683396365037153708373961531760591752210008457836345486946968440602565566567628792541730747387856799386589076467842646243986001663228123894666942865206120195515507232410351656328203685757274400482138089258893381170006338223033827770795193950992159090498373485211685863612627252532249638921581116085123695624757022171654452960819491985888157107088847839646514853875080990082391533085243112435570499867682043197850403227164573125034876571819965128682889602643274265581616311796781387586011466491619093211497581692049145879056259495670248979310283009251930562792177912191830332291196921798172415033836023889711852754097668783549956224523078448298271569250980042000825777120489614674271545042766264862989572196788550287902189042676691129076976548531432750459118701695949479021178209798533934636622947151104584168701772615512459124386751947520828127523863780530710438663792611119182244572567380623604056648109528321651015123161683840138930656755932901298397011321760114389102307619956276610550835424900123870483290942586292263071197786908541557763763161644352342654574134087682869119652564184712005982571484031092797336426383310108554515010131119580334838792882228809795167537266253650157787004516089108554912286679255387668751949774674978285400037112377063894224779300603409019307681151591713880575973037593732048125938956561544625311232579605326502994002361642732883450726719897294539655655856923214617184628438699722440122872160961484570479671385420776433288418789215619087153706136173486431395346309085445188944435009907046316365970845219871033043189216561432201879053821822848738581574734005819879413921413331669191231298129809149609527559304617939350765335516706230809314498157576330977158352404146289898299556300817852238820610682871835052023807714232877175925667545720051248139922388636570467517871279615142030117527497223572068933221471613909540758123068639105712762091765870350106603147422320704931870093638908227560639775400777290188472910982867578247158146274076088235120000213424506756696374196291991249343019716323788443009631606502164901251815085315783034057762281444517920117443521112443168111417949959554146062248905190803597166861576103550044058106625675728052721107892417398063434289716574819341386135790205075455994507040455352162116527520854356977110787538642111447766500425124113727878883787823512373616430474517745759153547549259577040543535468664224790317688648487900849767383448369992338879234827715157559519387360756317865093194905443914900537214375129653442731449653986341982226144982695823975374776849682755652787169721620758467787042163085311978928874633385672045712128125150252801149884458516276818961953728704164681137570460071551126617958087468456437066000011424012937297670664078506869552120478176840401435146544271458271910479275387826825851545136346814466022444888061719632326554709802427621142380392117454773881337177324578528488624407088696507958718932584642081431640463979712824832643325543452862642267885104884391772792289013686241064896297679156326445567453068982289457277001855297344441474873531684555611198744572847006070534877451597684636639776064472112212120383436288624092396538447565541786584436789088864580684119871384805279752245250059376091759414208154004042405245401876320357564367740984237187651737151603217917511040637634398788527070171914561747467810009782844589131584881807430226372045575341724589772717575286097434013557565737426142392551881728225764732011465054114505864380872384123536634435971882321864335253658231369822208179101401661350360946976119159116778999639378819909731522155485557303967925332367798015597421804137071643287011603970970754010065918213371574795578479466474022737304086713724043556896761140378034697677778484945623683863748242742504300132267481696166102295813129329821799468719972284404334300262115578209458566997814582314354735812259454621295982497093377386561688223817698495856551404399688459891786226650900908790842449367922184472331911149551269693498114428866324430616420535977778861918727868329212945828779819355639837514308151999865727578370321274537420536385888047842795710582327677806381587403306113001222586227365046654165348400366488939379472040419203632896978297183212399955837876521690400691339281574036494962200014990774702007097054693537448786796653569023463467616444336348883132755377477036874638116554411388804556071807124251479205675231622224722702983005187952874988220191732697022634724166949650333119283472323653880427744963593934614300696120132748065273843988570449384668673150141521002018444920580210757379308593059791703742753780817548319970784739147637745161832539650526311258786772275840571478684466871799366078896688459097175914873681609465585175961096344738768106782440447930166869468192388672814303809927545878380028571581188521839957898173993479288250533039434661818833642416966100139039267012296050672754860290859802449165806608907681877951630688605361225022359036826379096424028537579133088246875952795955455312031508896469638153481535989353522489660325554048638110618378983592890720894246682705335638249928735931252993628230637795525619898573751912103386630617628710026731166833623964739627786862068464272323589732214614247088014944383271280837681054575238464647639525767056492430309292489384590624948868845646572744568889688776490110844913320263412726646486829336771103117605988938569486365510750361895313364663756392372589282820299109171385636627281680976824882259343201322946827375683692814136978705940494549221411910139030698296501780069863370847932030182184850893895387111525722129433803967387336650902352388846135937308582226078541656758887955885541688252804249681268382686886916324749762378765682370452169812516681373179759271545817543868676282465090309516710226781400166010198895609492440622692736989596465586447279318852739944793987827278040034569609872640745806491082919336498258668048982493665871329233815879966313760631410268180319424720333730118995595336377235145252590592714074758914600604975257290650839305801456699087725595235389730126239407170980796390392342933795836909969832468916708641190490268883954090652556532899719172323080877945086539479180883667789945557398276484727997742554376957769499255758265626427823868137470052003909190919319194456407173046565463144804143512889322380448795192399886246491276102242606053962783494119004540653708088627046478554422580309336252393077089875835666502615100340634239083947870181015193066597923817536421408323731417418410624764808778546764179974196997984610354745272954864543095383961217337821106391767737353731354589014256649250694413974646029280651468551058390171297094105412594579811602245215183167316681282170248339198985106873857864069384230098748673396841228269887096651742765113321274820755422147684030668631951886374750403326156126959864733938034743092448281896474156983576229523529022238564977758996484437912303135785402053416400996095637879918477296604153426219257648616998403739763881029342743986196726282416637669235190002991897680944723220604631816403930669392860713091422003387610365457266481766473418002484779865301135774748384897858831333922352194776076321096905038020357001856899974042663138037086558584570128005997507563460820040096140610245609579577507710599806652245541533405927575070604950240299533828967772609792292389880189639783574214145009326101860074502552303346478171654811458885192106269754179848766110373918349007537288493397183641857163789168036519418637609212135011670018630465618904246284161169887998945290224141871934855237427336608403948461646939870048814359160589026963202172360405946615744342823596613560443279730068548995112652854863783481479713459418261946421281055210928819568921749614876069398157612814163571175549591805760481650898000633661857831112758780940214659290654093399039380248912013636239271651022464629947293900864806274944564340884776942569927645062101793189602786906606143098625855118599429839565715126823536202216094638620655056754103203902346408724978355402602853639584864280124508312264187609227983155550033674052910819050649674097530779741862838240592036121074158767702310463445529791206610350365809986097522324403380067142875008327079373061460960127204381150506559708202542901988502109438724381222691300522181885277443802941652196646996934290269762812585223057655791050824091421553673113622792684244196358909230052809146846157543099973707881666522305863493487910066127612351364643196075512845003444748018778518448060833089795518585134328178388241707098136880044743479992484761811644080333247905668804099750617556717520212610059399044244056399969145104903244321559645473083350742157921591422742783856898129244475355799933315952732449292233277077066456738909257219638133352226606066325864532673975890765467287533280099905481139267848288992556174816472509478019673378558674834136273284009927666161501956597049403432639060424868575651931772725083235891586139067018682865363189940976667869336384914488115377517652716178314638632036442781340358537647248493601573519473754485412365459742084108268514366785225332287469942019991835604882257444053639388458624723566789567385646550700607322807804303290026696526192901467793370976493363091829254090349368665394846464465279996213935175862129463688449695625364816375892452626578786849871052320865775165614354255898015651022640099850372280038135643490335026831243702977153722550949878750314616982422479022032978131629955671961853925968701349053649248078257207549576642658571476439283996897263832232439866942540007874059689454791765911859760012293205564974045953497744866052062024262330066152860923535968532982261867290966585944212364941485555369639673384945404357876910268721864357202497748926947504852278753999227862719007229223099248666738364336925699703313987411458767383949439625496733206886412547610964645317166966025794081279139490702463485468664313293100636629964469690084440121975264488268916234185636066483354049669767094732132202996569250272995480862000950784350022994093638442195434594938339576427059377285481929042887693838399797260300849415684835589563890351831933895161203171679819941882495907572710770927109799413251739783736756193975585783879851237173420285757890092899905850049824206109851073771282767989943693878303838942225862902842715920461019727717774435947744728657977489961706589549202708430486512671531631125971855913255732406439917788177464971892173322940119363789036268367981681503610931245854845645217075713142467523489422115074538823053545396776684442854779534555941691446810406625361727532321470178703361170467304705564391827927422787373068479545214815799792345649524528863825438530547125634782069077275995827847029742645881631232200023665041073357322753101557527201705948289811119396015042773820850225214647970845296951932855826116577024168430023698537682158007683263959245926947227840862257155647731510456442778151660145833173898057766520453394205450999308879530856225775405849014495960431480151264092759788813164990916428404802693875000766742246286588297175113141213965144517377002975267764133856473795573940077814599061526294369050088771053395060881525525179618122560852155681746222341570197451144344268318767295971126337220690836776297059752669023499853505558589542273468580392651576644183802433374771114144865311623786867270647376571496423798757705140149187549504065422329449853191460448996763621487531740372847661318938102781693351893533162179456337081618281020836437078650060352442245878464789074990895082263346618276229141313517299568211505867989161103868272988699941542172808671355868682297908938938960361142407659837390247074636416271034181847023586512404910934828463091475692001575172887363782151544762514270487518263282362067491233709564707723871940383777716132802563473478874260532972318315454496054821067198895032582091327222670940032095143764880726451810174995373540251967397935045273841457938757391337877972706109362817505755729661051396438008809026847598885286174057616185540371538914138980426499691884093993759050701736932853625245702785545169920515789086810439602592420079901907440288791358668374472039283610896781394481558615548984862685779776193502229160770475886837203606164877306453215873573076038003244869743358936492986302191553698315739930425161591809558097543445227950181577213440121013081703839453309444883822594031168357314590124069914610710922786088633867493429960136503207165434127816515208974921711204044583485367075505781167955788112468469558886781851062559671041758032945176705688489593906644724200263385337312539819497147756610701957376697586906708221766443908407758725725017176394454730225259826103979396436767174470329368225576696178314939500089369382599357787801567439505388300791035972356073291434229600314062882631320711424590526626123219461145836499984094108532492208575840937838250649643789916784988389634359984726918882525496892285578915549266667361961036591959355962761680983716763878386675591705127437766601161128471978834540245942064884319287696939760823147656109205987188011378937746354012149091263155566218346954155389803672003795837490451719556084308523521737946211065519731036414240876895750788253535035631805971007501048154235172469367451837541956498589105151349652979496463435291776983408120528277476811930586746951130926636610180553077572621038685367689408832954421441876146639524878003543301296113651808672086352715981852256373715101318011035810854377966912117645505908281870348502440427559867421664899560660594407913067443600191633686324192589639593137916380940080345798349427081007996963091972200332206277304400988908021726831889778538620879074301866978655815411271288157190659819841338117315083163729001032880160463422967943661277494866019959421283535019422732364077121544661178928230436014334008477831686693624644039944963962801436564389782687086706487078093396878979343925864188168106255175302260327902417365155089499124499361224463179769733528938282929198054551203325835418915839084052373191280668257388325225597854355631100138282280530076574492541221807129794990470011934567883302469840257147363250289071005394800195745248467478574382507298818639106990486762633495527198105786945181837089328578671084895110417889471157898237613028821492996940522210437339419349486072400704829910797052491019525533912515068388295742817893458105000520496572669555104792036976272411546191403929532815251821339257608194803469590821972600209823038473953421814925895837377626223150617105906276591346761229736941693853708474784176001985687248403926654093477834080003117340261712157780964236107742272603199150143458901967271848167408182419757582712518577249579872834657726907700736534014648504003561856009941132770574139680370994392111386815084641255876646888476274298005882494580936484565497017751927092027945585592233729649561663027090904670301864149200111670342773043905602230436692558740399718926843345972517229266166227655104622791827276709055255065271705507917426870835177235030418031390826765851998835948153697984022679695024734453229873081098268463472120890078217458088357223308903243343428591893495626526944848484739273652726645504567863136567161213684514226431161851588513601093344393279847181675021046220166685698713138810373907166317940427287789755381691705110702212195291249879597739879186582822634103393869653580859382676788886327727058302910267229243579641814497233381171997556166410150338874462462922157833945837643896296991018353976818807024793638349433899984161549572147738244506678417623329923578396671513100652662487181229825834217002139116161056191366712440158712116805468972394193469839247054217950740722252168116917699173801487835360620569468683491810603685385262621560365255981409143978524702554417134894185304986112683646725149430658482521351770563988932501635416121624796615135495638160903152376041859633517035040076657462369156055427313395663427357576042403618489919955098657727504636422303973953545091884001386830032345393149970474305784062378001024893728307174162616089177799156110473383619465827053788580430654345516668386956371070889687772846111790457042091608871496248362689058530961223966510056278408581255603968377997672247049495429172105249951687429584874398694988196327521778308467432350497591446582119574272012003491936058381462771658761091564308796812559208293260320645166607216090322158661586782141619715489668932163793792316161096106871179999230512054674385557511342791563030280182552056088926775151141444636808492942099538233107539081308494394577591447495491508361013956929944608091856368386078099580087265759722243343997560650851043037447853106230255304974732513654502873196025482437401983579151409486200115812087204389384099509150330851654502805136043655938964600612574587331585798438026316068689593444586705910175154768525019751530841959621846333187795739068183997015707075910660717158173244345439131835446439669546449692933949278623347451917055690911338692114164253137605370593188225780195251391008176943678533065842597025130420249419892609990890816407903026710462829565484651387910796354483382259578632081489891977690933223739572042771925342309924741623425374688165051903781437507067847768344676236476569766290533922087582660446469427678905402593027155203986816414065820556613818429699419166073452275123790336404232992292394985671071749864162071004554645296621692155758186214229586084430618462639073761770617498182310623861182660266493135313162929714244454749080181539352866118009480866736934753273318774371139460064246408240650186635727654617329718541085818333667188268098625058329875652097798522725162608392375893714658017225514014987167477278148179058567626608472974253940810282090872923408239242775194589739933461508551033614324172496316891554419724426519377311408482399268127443274453089379883680852485379622892053602845704083456492721445352673876281054398122204604854081244732257701353149773395925944670795925299996894240881798348896607471375563191729703990455695180922355580329462147184369839382780192215035048915812932205162698303394237600009737252257745758716809431419827424681979943971445613464071801539384232043837084031553428143140550564275935960924827525754165626195312783280655714464165705854715906960098312416011721376272839118940817210311673660883567906557020433197078958321106075263373302282839211422946150356426436998389035576524392173384037165598947036976015483822795890426813312032160770080778788693021350242622980639514688240131013099966953837602921040500426004086682503340743450833992001486372229967864437137427902357573080274837210809567046605017462474124449616602783411349792985961488933252559972681390329710337938593782953915362270492028037575705803235532889211526127822272950113748726754068274459457087386648450024416688290690612627919689273680423642393029387976079482575120724965947402464152421996725556291670818641378934283968415120826556351852633133593893821042236653914358561895234340294326561779717939045184230583680078051599059943360968055143563593021214596458718482092927260386619488222294794668568224469379150041533602215619680338239958337721386801564605524631813798468316853952977167541897320920774923882910943388735323817838538664481129152191078311715868096737037712320933667495633644442359624106867112129133990671173958317643384019515391066275575313235533882867776460827571092143417412161038956335134911175296537315867896236553120587593201526078229331166071447611928996523297732489887803704376581336746385532346754919947508329155232050975638485436781488914854540314264820434838593232509798774251109245276529958785850563327411977715827381316584365387045313385404788123768884624818055948489657676652832364072765179468133318806400437201158128836101616857903850011592187731278945898534694686442097603330014779224482006628889527475414574603705171617555483616985782834715932181618824099112179833968464823529213124137879413823699495552792650863428527246397760233981420004358134950407273477851874253262431845158934152253288558109397689146128980179116749550507342666546802018062571403667333633868585926540774917076225556766457461440631417045427767046936930888443373632983211437267587167679263858520262869795178162166692568907246192621353440472162725928625456973129799740879526215904558870577674612165976625179084596034592421679690157571738379036655436224442479603454872935637518300676050326335073764624003599098312237751589589822457859591610141974683041714232447416969802811877648842838759530817130741498346829940658598252512063594235401856923585783947173413002300333038075576626545404611440040454540062795617421524332063773444947710184733755938899975424537787481170858215256212254733433430636900411643641701572980991689766481924642536581062021307155428359984304018400413116560484616168365149411498963141027370875429302247119818581232997021336036313987125608503127546903627801747784639292808818699528072588353131744258343743230200618712411360020624959351491567704637068287337268886476551221928303811951635170311331154818127253250416616140195931723836929407518646977585855667061995835148761785500407681146559506156933153933261722311013895375729205752657673396805250298731264169032466973369406839934713227729944734977058306687813032518489984702689444290572974462988908387490280875346416042387604997612558011984240935469883529880226252032800636047327268790892788975727690139447525226584328771896196707462389757591823533517879192771342565621326934558302415813095121923611523482709207884109047239675706555370215523206860853440690353733418419052737666466891424483395800757166989139725372979769068825544955471090250723508222532181026553897044192092114754146269913190659156018152617085070119665492456490480220046060144853933704259407413482802706168507697067270447212922414340352386880402413505223902352776226188457867856709490385903515767709313961676382480834689852982155825955706171529939595191537191910337504353734993331048787538489750991207472098786174968890751844519285273586627885778859400567738406574826731793370133192835672967057026198038804093550721943531032370865119097521098283108263756169113656201574912906543767758636330133827058873885751587332991809513423512769123387373764543328138818195035453649060473598510421482307882314535644775995492366163042949872608824896555660377158895922825682999645788876129624301340682893409951814701798180600226667478958891122621121595951483944944336568871414566176907859752405821173368953367102295367882063852931153693223607380693766650479275099346748708235012492654808551175139151126332955413954731005277300186026932098958490096333342344575444248007873940090121456753570005963928521777240878631153192210142244223439731985831841827335484983251113143816960503562739926811059457425127615820936256990172406525449138426286408604897469379524756459611548251344532001071361609292806445439443551875973587107591880887596551476259429065345096186335646019003505236254000099589421620796906709813353245961382047922081422828624851183086992553924195328935622007409168442032338210870164744893118926408329427735906322397425839918637052406593279231547357437892962071686744893201124835201046003662686129335453062721322614808800570976723342978613120078337088815557707407661483583928077766639416618936191926813957483892774593437988321187844997302321789636532761799053800331341995851818097556909039395730416435816635806565553000396165458864610311637669983713790294612456326273772062667601812280361029468102780081741862884846714487638476120213066775555405368073942913401522870930315259013705877631475253581577566018498168205241375852604124469243283696462866284218894164296959775066320312964084163544652281692876313571062548846270165292381733243699114450456669062224883253284199327597936327343032133846571493911744253359591601929307686202551196803205438809942344700349003612966877360531085109734721692737672105889552965150371056603671253991745142294134415572270815661665228864171625547323476351115616534219651916660848343870571226145684096315029012591546504681177238491450052713424525975938258509600696860974916864905351921042107504034201856606125440741170522993632973342626890156528029516362817843554038748905032689411543504273128855976722238272472076946746465046619702601980549283922582024959185662966182613356148771134569320466298104438303331663500607045547018143148396069431544798063980452680372527347584568312219226620928799600947569874084934366014480833475033180559320840851083335208337560081758560815150198392589567219145125152917561083873043500428986927801409768378921082686365838082287159169254712189177765991633740417756102157323804069915461684144298130692940994179415156011415070661432815039891328345095823386988727832869645705016034474432083272344359030004565692991844114681560307338069801412510336508356475398268281512937279306216850730087280011815201290837600056171426882216328157461988839936330780748825909944360530996906087887842588126478513157267475112345798902660591139205078616616862452960644892920537229660537339246990388967733310298374274997454909701336896487044036841308528017695004803238380273066367282804357227876917001561889235975886312755019872584472563678314312221756147437092887087327741075268245930387610953732563256893431407028715919785495150273351729737693409103894039689125392742838216997006158306400497243357898176119663749986134760601050221491983691851689253947053559196453882412747673222282461513241426585303436997353539463397031152593855365033374018548990261072559561091004605491820986687130156945335874535866440397688082226363782441835184216542025295070815599151398208994701052268294823393124536494310022381667832363192362534715278788965724863709998750870400642309866649733528710874876025973039112067360736104583642119353640814643725857834150368403947665546289572636642218130633950772564165617301591988907050400094843111932375799091028302305636125740893753908753524977248974210581961692614774886140704201587036132338093531040972410302344166703536261181725422293024744006961036514206437493892693545613580342461397706047177810436780743985630269234444991149635132740529459281618942502610148380666064406187129052483284195290732954848809168739954904541137844952021740602133318925121659274938980219506427196601126957834902467838854524682139222926183378762464268932109279819283348692839688337022844494879564905434752850017277022386366303491164626174677033755816411548935683036300177016779268257944108044136785981702145605765926674730818433966041197098023603439524792427824021883005759185832388959990685659200826080871029681001442980961745060577874929327537268812017819700719937857554311932821292904287896221213388436420208912541649786321677193526564054895305038098066226819088707981739151731333520899671506943490437439267123285795671812385821667771630626183617479767932320063318711607157484041397671404915125320429102897061280984778417857424004249985975296355185933512533605399531067999124454114107147627082863339537100667430664023702401396683673087888592135473485190708569089789188052850783378667682821634757801294386562885787518404683899474078697303781950553691261228382539242436199480576380224949772351952916976931794559339719752549830944383731576010932159506813866668611301654547613997311643581837109286276486242804435173402031721801496393877627405342611841874103934575422166643096904685541270779284079796396779218518502585715964373878477165559717400409386062063383874579787406249662695133127152305336289371276848896840815295301849579995767104082882160420974481183309617469251996254717214186670139675208780867745804333866232987446903243622807377011520437318632918045339559468027481855337649986357766982813966966205681401505898068920541926746491961444123858137947641965799489325697853603976314903969497836652268850542502534997934101391963350771828166233981899671029596172276890908157800785205504918383253050503223967860663274995794349938938976084452233873744294473594477298274407362527318998326938743667828319049274652238513325188213562766666821502634894376527492209048777534673940359072206686919011506911312995497379325361559603636452485198487705458929328457274203853724801984212103202005413820241276493972849661009089384792832676442291536247839363917509056675867906541322267263491101423985838231921706915917002373388717344533516092722322908287872134332460140955562269725007560643052691363698483861866605110650375991630221315067322072445271168119659775072050188254425203335220864430060652083358692404399499732508165546298689324914568753713184656540063840310351915239316192300369986407868232863623390219801135073738634390834107177156753347710774441018361941061335005532221606886779363621675395341795986445200029673785347790943638477235584078872366667682457494529307975551242820291320580238451714583167458722860276632688082925207188914992511345057230835754178921381663632311303350174719338483901205011461688117616417567008419257946743978597803843741257494022724193905335964391134053933932824730091613736602163941804482769579488523907444954899064419529841100388222561461610424414539272448221906537454485564348338924319290191315150169003582927691021249645795864880943867061067012852571131820796573996696253063258858860803251179012842651609204333327222689334490735482291148020014348357511021061673868692450568817520114406758633185590789706446962143392707922320163177959639205142366137474243117093617943845642491141978189177783151515308413766248998541474378260506647037527624484333988729717542087552851459883068083874471599369888367602827565526569462347497385863500346343586842797412763319774588338167143168484869231990085856020314796711147853413025240592642229496021245875365347047977278977680249488050488443495195398125091323269884567048295179233028999849178597877243586115619882106915950067069374354797975795120909326939631435141073443206094379038116224093998726128950613721836438458766523760225730607385653825728434073335828916067055257181018906957834057796378255465374749901674925578142217575694330790605886842238048956140262907890780412874582899256494008439580645299593606645560416018504440718874889040857314798962878860979265406546830679965503264532732496101223004615035011965480671480392581872090841750660208465156900155604061546775964601535801386166504812275275786503135462629788674404105044599774897490228323553387467986863671867515463588158367083556067819377030388709145610909015947620548741097046828438969844554410201017826967367088336700674276885661100393649618739353717690819178307398073698736868677188799050413338246153738339591096100015167574690841130364283845448747270685463590776434198473951156409431021957370637330264552063220629263191064757676763207656842001306085919195989025090723542598849734228400276000418088537590703957492823421723581753651239886990112382273045049939657741314056954629043093188219208316196556606701429281905546711380325781338769518385627199405098307157685774593795774567172908663792717475002594530234576685886189128982212919957775760871241248713410621255880590599378275009092707008181181749416290822116445858781580374404054194871890147528028750906836968753658311917839846021187273738446484111659344339564552191934855890677713173199700901256312903847090659345150005011016699017195111785897559976783694950395481856595535696322457697466338530024917439153869090234819347736854185308148106061730653133112434813604672080554304590939007656549766727436333548073996425876410373884280940029258724734452340240988085882496769409275587402572197369856581696521853915085961478096213026394708071199748562596390827196458126462572240206818029726569522219878853018772841951163211783945485424473755168823214501863936469054444469665148747041909608144320372575313005431794813789243985398559663499867136351664212549379571922729915871769016166984317463136828068371751544586377292338292988468781113237635644752682458210104955853279752462621800340449405997887345702988123864939229052399384674335803112293630302896288996600146515078155799053094764277115027051726727756140805794620817655114698148726479930647019299764265410844757558768976189616632094276213407795003826254043842913744635549055721309303071152638783502535411611083926279304505098947655704925295689708585212020572350062504404274206848943949065240963090985912377480464644873016353908486781301489002365560926241521056289216849525353293109174861555716314250177127948088643822539256240524038698654854601949333665939227685250166992322046021831899257268808134017766074479391689994451006878013370303052471581970656106888085136657893922992720463138260475074554126178552323271075821982321114405669887590714643700792812906065456320703242426554951243548489804448586079205811509947387638323429560571056840373953735945801456024670711369678121793415210799804548056467859043912927978338952623224012826901359175621799934364664245256665598572269034484978806304203468721135328430147882649845413121362743754694626794099457873312417518687368319675552199893204906726613437988521909053136960984850376885585253570921918365349236683683758047324483720924788533902259535031559342741061553938429519195347967397222085868271059503649113254703305220402793239549256621796247738584840252608059785599127046147409484638789978806142754024846303245123722841914594267681006918500107575532219586143496288850838216377413717936613716779453439114684952857207221622229954462860260566901869052059267175896966702599674376485548139983089770271749270852741232903415976587241580470012290750595885928189758200189299424697358999574448283261346070233822693575035719516699727523808677089504868214137127838417667447446680879920840668558295140822647341124130372764840402339515958688343373484955576534309763574718927383805158980064423530129716967403047310312079940747098292066730955748452246628961294429636808249864038852747820412102721678106966331708350708165887078954716152357887940888125129747893737975657679859953800932028810050914772014768330090665503958864038789326793695190619751003206299269614232175067643717790716763515175044317651328899667989128316959164901922566764739787910299080128371520547600622963499321442658060504726935626226346509458325703453102738982295772951599870566789699824073014597181377579279495076108641093405639634863967465512378397290403719932439609461338524191333625009240058903190204773932707627064978385196175396242615303783752518420666098987784386407536206727461982113041436557649868417270587225367460780243113256690901895738717775264031586801869530460584381531008687076910206324932310463741196275151452593850930142405314041241408847251434432752591065601962961447870801471018280663465824265925140266401325760748655239306195377101448811912705371277097918226111851389143551360797571883298779817668721541288360889311423976366530708688206132466653611738511886829851081990853430300615035134490652443232470026207947404662893261799378007629576641976934268486602241120933873429695330839275689016241352982251625455746618288689490271845672504622196389222458325097692260754000078036344253418458476366717170092400763309390208082417640907526961994535676875544832414012999532868741766626834861932539495149197686951977663449755486603039822424479821984240956547725174456314521445434339037545204844442009259520986360450399322718753772324588002638815788631479360117727175093533384089477086370999854780064381730491357267934999756376798241556476255752271656583640185705196719930077267416307650739536003372739040541035971071720970790555618378129747932766198053809886824447086153299099583853065648124335174588781583817952749754902747464716261909255117091944268444537526200611039882738698691255711243290454780983902286337864537261341683826570467072165121416092249001984057079038735942762430140512266449073859904260734911053511240753721714442297666539679915360771057898579012912874539862862961397165785365088104857928925879468537461821010476593509875446084808668365406801122230388108180071764579422967985975527189596597086250447923876995881321618802185387449094526149945764780657730806694085714576340832734789233031910776568950223150622014687723968789462483218387446610356374298927455694683440611370262722418740443225610786330041318274149243602131119428045676120579265444408359359494050545022554337258803789537724013957653693203017233517368842253220298954275148547599820463925816788254491018193283933489503855491360763328598095544802036815795041089644279580369393775870362701280627911460138270729371093429468532035350531140610498152324773824655049518550077854372008743265418346983546439502984683590470404875546637904981143247045418131552177637301448444885761157777416049340547536957677875610082240006465251068238383120424806234224329433600668223097599810718759148693212059721711308983850564942269407324009604687037380839649446663462189590817988394954675546678234985056832886822983184692826017563325417442461370742079560164577267154825676508844520334143086681382660049768060036210321415919441331719906641022613414590446262635420564273243274694211607205623103880731290644705367100988705969420000707654447135436099985660906811962483174665466761628813936516146753969686078668180213485690600092150907617732027660005254018094456976880837941428034833012075975866471554649565319550902261446216400573597842160725495227233226428244643675332866198599367682895914781039162665919832101975479923611264775285022438169968303315233194522978036102768429389463608733193320986740919361872455207924398325204229529921105753719800982727719483845525112303473778910012146038352977311165317812099763314014125695943240977582980502217249134859587004620109951006952487473671189577812851328697871378769467666083574485476790452041147974481626104368572830249628910607685099727841642155960332744813867549651039513439123691305386061035820331688582920934577597559337088783174123316033264733091300181285433325504831568107598347505616464591570320782498190613083770444239912557710164829797722960062478879400022320939934240681665282360204495882517024402064217148979532067068654284016602977231684687929626407769157092380728938125041638246167849739582792985019073698235319494071147645140748747481089921111725519152580512191838081124151718035585646180543429024642398619434650080113405025730704957165368947188746507989088273524295825162854560195327560766927855238762663280547801772620568456264398310623194039190116631724797511811847959367802330132266886155863079698992717864713090153804593937565029501679420221062687384113650024261707224553149212433971202048119875479548578644817370193145026391936594273200327649635331070883727484109161073755956973696962240118333041672521034410151383979335340077476754558260301603648705238678815020444304218613220015124528306692118431151575358528064136863693717521975400608329383329215016355051657133181914756177655220281930813969199701379210308241049932555210972124685281044621223228083074584333838794707387121847129032831104594577423212109095545378055956955414905814678373446973832156664814398908803637337837606578201789443456162789394185806878753301811782033003848879784073612206724812345872079153673476409276706506461490287286800832834049161250917316983231708734775855105612835179701878686503681775325071491332245085264329422095412619118544497335319021215141093786462196624128254990404665237050298418555717900926370904207344916772615861867553047977372937183689506125665419984225762406903443204469057925761376729921437481513580511336901391552965175390074650492938172543442462293636668212037546711137036915252365637370771174583153839029650157051922835848659674981922101610962926715095635900105903915076182373717902355376950759845607966409659728136059563808456260439626155923599295657769713189468106017816117396096550760803396838564229931588137060136878908823949632528673098776271983401530542522518800053332259888845027539732946504787999220804273078364130631919130026697992398494903056039551296604780213856519727924001898621355793171652597625393339047403774513654217144736810487674679498357584761836094353624167134446070650021735953935617885898346426587354458576897331401129924095857538057833624021716998170279145452255813528838773410110770037509569960233560535643487533011849597677740867218080170407551575481798087586111355738256255898617389981918731702032159432299853167281056003418805557068144738186927204421463641115922524024220825638006424766576406956785955593514129614037931952323553140768880096840746470888617696863473817226871474177893742904069554628471796321261419592552170304582561419910083065562011500426187921978988589449838062352639175131857570556016427247510811233577967901522482220638200718030828330659059450918351514291558447816962372938519683810978083801011585025876315401321945654848302621970341235000294017716105112323143643470265546236535614164188070578155932578911152663237094459506684647696412562924376296149314781751424826407118676752279098822333830866379955464685728500350262373591330130373827440635705155812387518319416051319086059209049998065634107741258122873059642510476112154530827306278998057485389689378042124856883208163615904423637071939289652388768951523851525163371888214127987142648009014530566109284314571698658965376515496150676396506023701644069191501765419354663594023028158590238113060520918292230222287359199209468168185345387862872043339418503284559636087819569041837436201029832078173530396519406023276593583017861483386875073947317557692015035304944251835195932503084648991349834823136636699110085563410113959554431123076504917104396555206187099459202327224186926511609568429101296392737931215529285504412092292515026029183615747684805768519350801560420592115950404019710881354916849413486322948798947145163627313388160832837276883883403529854489744846966242008858852998715425741173423641084469411142218381004310764603368096692210749124938333385852565106298307177822019469976418648450978360378795987856873689537616311818113646158171329121837400057596731652751633129176741318061425047390384391693509345419143796416946977627793617840628851879670427693262851250729791442157918244704673940243849087965782078651900233735538230119535689838214473447914381322955936296188915806247751539223678072363529702042916214184205685204446491297718910999775711546777537893152087702568417954432832682233113800792935268185303228667639848456165940202797926958200991234173499933131672149967855138749057076717097994929626219524325287630767077310333369241422665074046223244332603592855386604759228197698411319801590762688569810939128458546555252185142196986205278554016439176310803350678756787019667924317484210533265890955384024571834974815910539333667655133388583224081160609157112738873602631608664638665974039262477095728715589681718756713601613680317242599703060441880242788893165578075561771897891170917842357128328701526504547560555990810495343442780244135841785307691481098854675160206306073260530431016338144188520144276972535056757610694479834315310359173919091406289131842840424050632243571094978723351820188515755871619355823896842198881101761338471365591630133317502182588634372658120914639145952605630832224377046890881746225148070102518096559006481504265649683712228124638486308237815361955968752178341416583010261163796480881235922909891125272326969442782189609318009493794984185348975675724719737863105877298254651025054635131737149483403491737671603417379404222703185464893198510139566868318072728951340787626692610218766327365987980694907494101724887457293094027392094808636929944578640053403871256153226102842860130453949799669712915839128782433310165366663073021343287256705921055190574706458467702162233207864455884668271932757679752691528917512999326804789595295659481872038995388285069780986819040549627370095701530777280104030550851355931930689275192713619531099014450807712834718234033584649570119140767071857498343914356211755618245386834448281440064359181047324939917964301791496391955984272326638055619600465102702225663848801538934266376251846239567345583209682592648631344011571988039570750183669169411841361729284683736728711947019145059653969590141684270434788695434330990777156644474590348804973871706001201040898742096070553104650119810333454101624199283443311576493704710420319448608800334758989442955601032277508656326197819258461655162728081983544602633615291313527033296569075440408780909381131911040816661323191300353655842636045515599196017970212984768780579498963185500701407924728809210939491692042618952094684231351283768702871428494993233179007808063023547900904595144747497077879392072282161943288234806590765288027791984786667303752263433707570518366800202272980541279502776303289275750990368773004715131031767173999940937877868352989632479970463997600551077838261448287849552827864038987475991236151896471693561148501798252888477154163463082465887016579010961719493335059486400044072880295203715558359625943391619927880806168230074745190957554606273323193742890301146535370743494092171048141355062758600259231823892466618284627565559026311491504912876938556271219272523827637151226129140493203187898411735526085100961466282828362467498392434124662633242004675088028547279284491692156934001210631021586892163407239912633734320559008309861826201128192673233732817024209059845447834874958944906776941680826633477608688649469754999375968607754111151002593633288767129427845143677140860287349494761241167183068194472817224189421622891771960251314012136431707199362491482690276350571976357224023874100809829717056076344703574472981299875124831064978157052412057905975062553164206366041875046437354146559588497473306527895495178782465176963557397954902522248670026093168835371096840448690674870458429324239435733929742527045383426354388619415184433913206427709585405075642905623699237425856699434972022455533733918109303478097224561345323334903704563133496536441750771220071747049509756069522291061759533691278365301371065791915533985175689311964178528210281846788726888451981778327182590669501944569351749819850918462404757082932087948205217435607256849872226602295357729024838243128686381473816100374873338441773059184418841399132585131203454946666392590931906884908905919629704275626527408414314861874989056051599029786431217129862989912741323428040283338097815305472113636303201652556492610431867686103670205137824451246328378676559006414773575348063120137901514430934867186981674901036801512635547830281540120426350938546884804870345171433976556685253344328921278560826826010841169377612769343258049180517706078073316929078302475142498538336518464498507334633914624804635890067694843873564666224322463226113026290770273624686499886700638630854640102881207071772057009247812481716433577795050199758993092802120981502403327133817822426323417555813390170914452028602588191628536332805452553100233232738108067453849123298966012626827856215351946618404696738548801309272974149514368276901059137511206860982053487996647296560829104273592273378339820478227878318473027568831482236835602164546446063787692084507566851256498006030848411952818018491089236724929780531473696583343978548462314000279272739146951410317791815116519929674666827040914244086638766016492601557004639371483945702448177828506893126107212478381463426907321961919509909643668982454119895602762712075650542807213539077476717581354267669978481630721080679002570779871449480176143313785973584294978407611766535166592072596227916152131313669645654775779582798607527913477527800751531489156553310459968223475063428576869750476739579638744186373877700892873443374875916703293672428761470781611518532354918221815604042650524448871395150769908126091141627694692020045568520412649188229570685150627727382694393328212287284804121225104303608612408830365457522457126751288579602479881740939648913681485492124224230289513895486867675389114176365523692811550735517645425798040152517774594378519258893081628123374278421846270827604839285366592596530556187151394467942504179385351897094688249753142842141137840616217836933203308814000827238743366305460928696574774173782264147690318576901264189356851858588154663826728427745723087605418709233921656499829554113131426105047822377999174024168598479251692152243625170077493014747882009621845039294841971611595173090191040304556373452843070399624852816658982725030036310817383684623730035724129797677378902768655418000949348936795407444270833514511217149169087974715841967215804738927363830130420483795898059183949366749091819830191769393716196299368006798082542922532569607885262393669367918896296381675847359647351627257758731836457134838243521103238740500142268059818417594274105993782591002984306935764364563023615685514638247721495660332389951454166393267033084850033053785412547345130434496985947609374717581366784047148117383840555078301182519752429035549305836854323408796850630151006652485763802568606700606095099999173870034691734312601476347340582106056267686900898834875182718516917925303391731086323870849034475045326483753103902072356350599789555492643747147877860955742930226418773789346565256963855556054071265531209097888014023233955950718996835757580161854635218432316184926012284268781150430282548706923627246392094531676888557965419079038346081052426381349211232607049894025847787758268993433347661525630181956121725183683366215935945648168968963067813587056055451906866718508212465228415288260406993867951120010982106983587174969980888337671351491241332560119866800895372854737933420738693761653345484483858284525032077033116863837897696801872195848339926755239786723020762292214995697129753521617917356746144823879676739983844293179529575150732759047398844033169080422073855518159678857088162640722985829950144464165173311184450100280575598061054586721865489584258981084632896899186109972536376030405576282235711939214997477177278021672006432555121222821564725896335536268763972655418650913911520685976178364985018990685966931001991401492908690632325353191504523691427012982740729493443118667661563136177288065542579745015042358529701004719435649742012201576495497339117371012475556988383472367466779522340706649457259626966543481046138818449177632252033140580779532068575791524684731142271441564002810734513343661879766854668059567742420302558817019151159087789157162871122607149899544293022473871973325595817356115090363339089424547928682726030574015703907648569464972407662291382424289125262384919386299260472411566307992995088415596739531149031731236139631930798047107165867077044414818823300509175292639583192752691114947064272573264583327680830845415232029727217442163766522808653692563131878818219271203108238418714177187865155434522554545307706936859095051086046272182703176313603782708822309215821357879958019520499962406416501037075960266314412283659458072952199714931605624559595164243418089136637021726004005079849142522442134663619300718593337788013286226002603274986482281291864162148375038737508014944832218256964070255179227891434607997405015374300062321892738505935994116633922910519876018635792068352313602112563442082012275359391450284116421951063291517248166308902429646434187269266296285801703817972642685197369735102731140580455915622094181640527064610957135087004070415387650091662345759994750385301461861521622672214350685435023920996769137831964487272226370149103085960313381033639653734620257335382545772790617851260302073774092092549124304103166206372711652361334925158180022879892626774050286147512718969610701832981398145809808598039315578506753403297911167786566675399737820280074952564138997784728733319379026525218394126180127712050771547589554582250886814223675941287832745670592833048049453963079415806060725382368777764654991149268318934417853844446019537165101975275308731506874270087615344823182576412293629913651249604659429125885697104774811196812210983453818295817193968283564566997466826454161722876165026967852705294769542076297711145834959539808041683066188216789496970938607533104151835664091717709770187698707364996571935214995302930519993457718574397990392010214738934178128209126059453565272049264145301732911383490721168132772215302288113294334438408985917230056715627076239451505781475605401664253713430706508055451427768593594173790162313510183977726521577948689995644478929289178760766619862545732279333598997444621228726562054526559384195306993610865898328362792984328940308767983416111402584605216129234949384673559075680309633708600200089285262839908318516172262950503842713053226010110841030162673940625595105483722235068298468626415435907711509110829038727206769472604402550588329891213820120120626219841180727260652978046390264948954154450832392291478753281082132247121134555160286343274035706823510675972816820596324669283136003901621586319108149082248439062438427261755613870752332792334466581848462382755848619397095240891291775455990069818952428176100792299889462985582526262721184736374069158163342413026918230383288819191559702256365108332582656481000323562585744200943048490303212870609380139539025328890687990246708449212105632168017804309390616281958299404901302445851345399782322616278340321938498895132489709201755214009330686953788330352816488121533826887906685720898307794071075969110208463379488766551267890805112207981346945705864395794054117166588611000349507032538279455812315197433501719272164466994464746822583107953751492789084684490930828412352430006880543541927603182963105040707230864753808304691369893762310891257721560250674885312088989991967843881266011718606943076948952143849180112334006349416244563292465409049752366319459053154579908410057527153936792825462837884218767785403977749995191586256424284561454582858799906008919121483102335757304430031219694560825986851588218237455562664888080386921946309579407109159368407387059855433503730551125830512889486498629681675510972995645356200057998138203713057184370976429257084540372556155428373628270475263160895964447375665780062874816949260933663543659013318968976769979077194167446059374746950385125893545537140077741901040561622997446355674019722033034375718244752088976792499370950968924441378613270287132910762447453107516125011837255815088270419162596096562325573894468929223859781410952962123258553288777279051475894303604308629838110266462571074447657516190948106887662084267168372748097000077956082311925723303152584228219237479948279656930674249345506409381892431895629508659902223783163656379337221725485675851317557987776630782142147569423672331013625016109970098062211831584109928041317022687272343127272033034032720607132310115769711093159853493079451151433347467085227412505280271239711630955048489351972679466826896534627663401066375061465476760822413235030116723898304064913149675172955429273706122272214841107967214163628723208594315531207222626156313757792446132659224321909409785322806683879666442408828136149954416619255915681383447739573158056410635123824044484734520566655819593752410176844380337532931950472690865469785997645528667658575098505934740872351784136576786931251628357017562940612566124392176194832151235442523502284340527913719060536810910938556208793069052469440137439662380293311293335189762620834736080174982042701750522211759077453758072218648021266733361179950982551788529133638748805347744993031530916213480950635934512260628609067825989595364998878471214558697111005235633116113200348905667579911088184087507293299011532817072491632741115295180941226537371215863337036266986807997985021636052935966640180885527689983612907248244571649432939213598888740894719217870017743970574058241383088173409768966379735661032960803081522066521747075911328265417438166509779020995714614270364883317738995901287332896614488749118837333412377997963593717937597328062458261099604256473421986227307551231802473715404133424418960996455090192860351606280026670699143696489759964195931043898051737460334733253241863233532792069147884057717650707555194897845844405612438205907808837754425244862831414016466194025003231574274219958773757485032664944367483331212579375164574916599674834060154997375789738155161840324200298318470531868988647966059573142514000001461568057773500284784745880557851815420220021269390613891200693050897609111466166809056515717037658057081102148770981664438003146657625851270881450933767267586784968542468924189214376396722603926092025729388683977583658879187368938584956439523454077889639504376645935983587707639612229039049117252070785108635962945701580791899600909166437934309941337332609325334958289039472629019323114225843326109550760801971834922214524849139381580076339626307875924210008887302844303960042717068543602706275480778210052908665262258838495248909675672340057711975217217057610611290748170840351512550708109025077204902398744681391840883887645871799850445994869140334001869146988441308870786236117779755547497738655368177558259005367773912005642091010199088045035158940863217311846992759042933905871098585805084371234783947850704325944566333015189003404614550240107310457097750306604262039543176853167031940126860995573627190679544785292069396756999927048777707909170895689338474445473206775889693787041141248954927118440738126365156321573102845820469494970485388774067237924422146021047241706846677929607771847549468029553596963824242563313596441162095757818430452608387715588796759494920243027255403546804555976430660546957784496831421763198261710985365360278824450277051895903491492826622262640692862172601143798698036847280571042746032528577301982216449179633209484304814735378514278533321679731532971962021161124575374127205165587607376867885376089396987234513350166162265935440009334998430383588781617141202343706867806989619085037234499768854485796430820462334627949362793289294026084217829112546609778186209055546717856406975280615100357091987201308992414192200554747509593928897369982862704279343878339585722731557564500261384313885436466633709547161942917350121342272386534639136933280541536486872914648414201895613871255905690721697569390180033197905206077891777142136359079927423128780563165780571730816573356617696247074909671721588656940636335922838330228626711500897512895508996292692610383236331643854624999130441965387255993087990745825915398976135441822972694730153529223507223484296868456019640859210403410705411329499021691697948019396314541605025582584546607397280186589552234647540404095961731213104365666425532051955952053970410889316392573739158980157458690301168374283376668014242247210184735092389005043325481273462928077887894295620525541354332998519827311911639424119735066247533462513353494259688816480574578811433112329963208249469829656931030090712145111592305167041572861022540808329426440543056624121187559574058129798859555258574588861912760411851212367028958577875571150098319456910845278173743863589282242404357229536144154211419254528130405697467838702098409367904563756777582138186057479573499925604905801937264112842796987663949295100979165219458210938018761089936339618933027444068587776752267428326299259284130998474240984341677866688801598380705851317915621771531077215827540369280986040736947589289992908997310607731943297510868216439099876285177223432051511410375490361084762002833990944543787254459630043265941904984589133586631557379030286456104384991338304571887802465800311491540383168536926796952512701864948550592884085573496379130334446154371416483056004085839592242916241113988498781705033184669604959564473013085289355365204012616223179931008785972341913188467850578486179155189078341657859814026921227017854518748404149547761103535734743814427800865869643103026061407699624237148402904221182421153163312643445233714943569047747572008300908404266772919550686886960955430917264610569716578490527406302521143596425065205336422881861476052949659518665037192544669850088921949383213437593820961664814042478293354330694546133027139263305121875078038191112149287968143214510660007218441435605393695886269416094678053336507954410595696109501879619320072294482894437142184708693307791782231218085198698156712962928509787820933549025399886967434549612172549866670130573191033312650298927360472225959842972012939268795888525396203752071200281885760579674161790012875738805651035898648097610568047630371108552696443162149437982482493171105840207869483657812574217104791666077468890181788415763132073527669181609840311187324048923269355533038472053134225556463483714430780035257486315638864337207866867806100988491161828704613760969625469289469121065049302150672965506619581553967541643223920199008912992106508380894577247324067489923377877493181491201239295135233344441778819575505223005999677128208030900805568387465727482488905845619998685120591708893806863306228071127731634379088261356402004860136914744823072828540660982319519381922987712330134434312259763940830383108686051614742842467010800882014021818878155237190330717569156403714002472564526968355067817862654297447424985849568758401117395523766596764442106467540098613873058101919977085188993441829945905467851200035821770681048715310998492760181142361438909954202742582989655870487462726949392461452662119431653619004925195923853159995934457985941626698086703985349660996457368544388843418665708018839497740792097255713571540329521268027684208104735659992854765707618028500743754490984333433001249952973212397592333137742847558761759985140756426732126939517536995038352874429580460043679433269761591466990987451187669622614607854691709747887118119648851689727460612831770103420563701542527701487538793821487683539015603049057160965371523700897046337454831432625790244521170516630575497440776295000732647108230778908108406194942191126307668930942267155951116496219510782844246098572775873578250382041266421416145436434477430651887549269160881557730871202793234823140557097277500669257939012822115734626127108445394719838790393174950865879049028350902631236315494181192396008548722236827939719027974350458226320392412711181367179594381419760795914370869332729478174225992316507755894579402695118570865911616494396267081294856601650190890030540534099145454277350527074517755271174037757313627660231127510219759197001302401374913066630696408814749195642022774889559584918897083886476064659131857490391112106424920758096780687330953671405119932741971573324794391512738924742548814963099631299804291856036570128816061848908876245030068623826388291963562682741674714852953194481918447521943297377060996113222359394666155230322501772086591255596517370886162322219539207645439054629271963681923779952534304039839716980141390658236936174927261972553783580127660376595603870982001276167158530531751168914174699270549943363531020065329974674430509416923072461439336660848557369048330993052654774707277164374587272158862747617062344989012669444522606310335613330655511697128744268214743182801179069905384558685514823846924002799973862376838448381542342471090854642677762166700169802275337490089018004630380374371710515932291995755434298480603527179340788705398701542256573500616279429246782939953204696173230889031551067872285899209604663127859860157653590728970922018434640934416098755076370939742747298539439948022006783810609743840735980419097965034971562403188613279302241487604673229037684407275479142984611379295846218976513445144644901619537790647674874417950683186267971092684206791840419072946343876447851186674991134682271233017423571112132696346256402745172818171473523240479916845386563206551735686247086642829431326094979126487720744154963416739572678166163328749502814954697246185173933928027012264027115962641204260171132913379777018994278544184680425369941841683458182212989017671297094803932858379593959638061666962852963194768380782675399868001949245713975080027436571513221715331566175478428484776527045923110606464005238852329561605958381230447168193197154523451875830163124908421998438557266430987339507029279099046559300446937724365366275160931302679344786455954675785150387733607612627389653764333928695807349255169786930410654522157300345068521439142188296790036587186315600261052086675880882772085952824054638000625123193276344879322121964971713132468959393168875697806253566121248667757492068030437649364242114316842322514532372433217014012302803071261680903386036486329909403772288699518709972833094170436767343920908949396143694745142092690521507993924114895532137637752516284712982012381376754818474555009234971156935601216966337073706931559229411776867634855003409428655935416205240293514511794689134159279757158878641168791558894448518018744436459291932819930331198963671590145670696365340876056609387651774561834803598804721402005880987258444758212230393203792032017896523143348310164943836690531802277511989315639287330281270672500081787861620554556923015188724662318144021227233782439955821325361927639068332182172418507988415421848631924229030717630718425313723560598283645438387408144662946113030864108599308539441467399973021663342298304478265506415956577143321537226808323554906706037087679630240087829923024727189004907973679720819741188943839083247898015790565079151302825894089153395842506929589031236427961659502321715319905943970984146776636817541622719894781310052899133159224215698296664277850716596804626034025436046861145839931044375594014147309570165500310870900849981000017778459301117433241117789855614036248259429681107566722832273336426079405054644371415330941467767290621955721994379793962996980119143520216549284423076717324117696082486869177329822994213959393896703953644503098142377336362579226973606307865962940674557736429199665791552827853952491409527400617555591642859272340569042252350798038878456998147858560330758298492861508446379544560686565004425740808345878687029694736513328451243637580920545066223408564887331857426666878765548499621008785134780596198688722527412959648930690184537417917107090702829364541346446762550591116836073499164843290664135973937172275562298814179064886218575704204769759811355904757537014189053095214868388715022018085175040802346605260754570762462163931400457511540794349240878048804529632826050694443546466363711774967122173297558746450318589861561592420299790157674983000345867892493371981964069106247717283713670470203817265246383525888662913530932955466843730241848313500991622435061347664915943634431552607923532955817186365017610078305911963560167980484394498325707104324582730658862654804521232811291533326419065685652771730051181045678219751047503524428565960097791775938079687799949453520048078757484954309149024283875083963688904714782238676929191616924740246181874716157054180705240180800370827320568682778737911767893722346958226557984651689400320315045337408841707182320934809109438604800941573458102644833498192894359336730415153283087228851332286314535128558020523038645598624950374823156653822307279046197586542705198416761900338524436934015605615747866652254993345237052112552619312821330051505568928695197228191510088853269187122890618309910679197391788323371983637677278248400768322947626831639171700954082357522758804256743364741499341791690921778098695089720691252019304854032068636359984683616202623908555308248004639331495470671210096256699932092446047289725415952877263979316610165183284849515780372249386845283079786504174867552682346021337823842324693456247393889262528940158728541402922296834476009225909901755548591632544161424589178748720872106311504420445871824254080448774791052344328124130596468037073355605099621542918893699193149936393014356419892482420806715008445112743051670964997187238426936874060571418980067875223174167401154466967114235329028925661157282862382589597057461388707740016622735168798470639301108943945869174024196873097320223440613514533896649161645199460554067134879745704977277429645907442280822624805123817378514795890445558736197072191568262923348283647706953858440892379538382048027457098868249146162734840306601847636896636488540052174613399869360523359701098785896986768283862403164431039568574968586961255944843321695310451704560593455240530985552537990273758976487703095481825749532095860998787798157634869537154802077219631370462760361891425798273714964650319205365930437563242280979917194440200511474185918870922732782432477674474573907131228246002241475333588703364236644099731451888792636824699222720870171424369199924099867799475634947873855557777815528339288742509027478730363560255212429328804079750369887351550195468717466481895054606490090276945033056541833330003971597293683879712188868685068608542612897720893537846137175823191326650643138274215920907813076305487182976077586066907679900907742443497052298420234895692906149329309308380335200806465929760385908795871844443030695176888882881114203988795509587194623507983243877938601732045842188905633170641448849633195990725340323701733526899537258777590988117648981256360497168664252112587066820097916924369576590581972618543658919849804383949399223691868968510808458763043548828213400780859282170357199755920135748512556044856322622303079984119243269615217564832755437391392517090118058571652737420220791322174580112982931812534555149883609892295280638152926068012547306021489425750143649570149049068421700754207029870581476561469320368984728280784158278558091495700202010895405751452618417461825126937959927724309976647352725188027155860116593485940966700149761216216470347659341783491800825142223966142859222200721382243352212847627437386645773747670550236875805555738762452033189850637096406699578523541789986696291676602987141757095646900342052864532908185000615270732801814067666597438134650694240808850449768064038633888744758653138800799732281603521121376223585973029797430882704597767742268935340894650559514394911566012828856451559764665122374840826887014174372521702263705333995797310167838608972545437597364447041412697069478932151022943057837364755540365556565484709943102635731880181384962427426984841324948394696229954338028126154482430593256105519429150068886162686580027706367546837762804053061060657604508309639415094808929338445067192351027779228350261468632297582400345556888562834114181206430860071401465466054454740306920442027091099830755796256281362262445854737363161580206012160966250540877058809061561839907143082032137421048073243147691077543147115878157066468156084543652957643127169361678073214126750199170928642558468250494260547019406849821895790171609031001960182075792659631794114605780438106055660656243221840013479883698996538937353817712527224830216941595362064645404884555645033131931435462682316210039939350436476354045396076914169720722722883486571784952523200410383905262187803621004689087703484475699925041283802231853484925154311202781499922731682328495478836739167388939123942113910436985469343914120306707692417873782801550742977914268842312296953719224349254066840915910207270578656182734678716729636751972234083511229414361961818436593940629050732790693785012330293775836884956391229491402707675666790321571989469195660784223451786773840774419719880851658508474185877162985811057767752513842585621398995462759986554904292002926834658449388355958565687011563327136316778001903878398200311716864851971800633162256116427743063306032166717386023147522586277318228155568104163283508008200537735794939611834015047065473088777337355867565186653164273322444265350083933080339940117890811559400065997017980851613064049785045632310187996164816312415286562945472422516396002525420192831803732864972309970360412484571434418111053761921661662189168478041368980711375962777408927130292123207009072745670381231000861645104748593961484438733688059537596082287035798143358477579261426989989813964107978259451897043501515850704837194267902846456111590630232559030722348319553001767937821112593913100619383035508732054423749511527717276083644844929888361098458962578021917900504869780547591569218623602400668049389659085248898187898940898235066453329466273903967417863436599212678257752224675246691754289282781622181980923927408627997278774344996353548512817865810490485902934624637304934212867557096496712773808428979026887312010171606895788363487432419139131067631493212714635591911887482449186212156326888914016094518411357129047063926118384192634738878433817359238367553798772014269681551638256461024532112848363991813067588836094843829287913047035968181788421178048336956022452223767174808180368605507783866123493988259840118129176205494985696288568730211937073800473232412189480577319873636516792760084793406630714435627647594743228843248575017825162740030621211012496902262722904565506298961303625382981355041613771828648857462943353549626992010834871864939589291870401726386266082585985341724754628926013947296147975832187829807560991669259660852019257177228153653624131079375250187603145506859453097602289939273337161546289647733639671147877726656547028282320207698413688229325032121004306565633153287406545035215622425447088842803457097680676004886045293397392200030339855854643953765866635275634017683233103954172773640873479420201976714117892379737766414748106708911798580822958024798572769851840413084400509325481940465805467326405994707420903706620607084210518363061972987371619498340971032293951994722307700748914581637113311916086647865806646307286582964272695945505473438665061615215126346826026605492698788646226238948206926470108171948470085714632452621820001087371228853925225951016605667201985423717265128505535821149514032004769608651695567934774406912958932865686460433053320200927294810571155454912941012695969137019537694360043868023577279791755335242549030321153771739794865131416542761946231027769327993456485668121417224484932584298234870855919984832563225048412983881732140426332579320476308151793197846107862189414842720351112730838082247236107611102380654979446417700757037886339757185192213873732278593196505678493883465692215434971792360713847081587914150431707678559278088368448193214699219894991229929344581169983424765696942391706522829715577656624395611201709645174588922106255656104613345496192179455148979509526396485509597701340182459488493486180913912972778816857283231253198092628654926257477987300051038910316437225066674870230289895327249210370720288125715314534384936996687316452082422668769218450136879964067538681638437128166325325573366841195977442209397371202359843050616337817314567927776541893404796631925151376331531226191932892457573064009795702541061666150960264003525929923891745616408687098791823563949212964457713544384421630455793372545417015343831082232089541701321071650980310025043331616355854711358889326689775352659376209135086307300330896607409293716844477868269445580690913391807278903606521099721003556952693553609354151586638302843118013286430568444445225424798390657929197118899959670640859465756690320727388398988844917680919509676142808300287619081459567862777224848410163698507941494895444383975313238205757234319816190102654342128692870769758478188946681756313610770186855167612530708310615608358870903933754552733874242911013856652370146302594301610241814339402982717787306462982124470856663469170554312063948278929297405442811102032372916130686117632379342528458162270113822965953585053008453913241160100617036242012286943416701324215410239309141472191168989010720785757954779456636268107237048736558208779117033262789453328397494585617678699299926826517893480901038478167981911897956007742341953823087538201359099884461701372671176425826348433355949740341548703961549181765118472876506760670715311267131183621107900694261285695425961826371412348430077416131823433479048992081589681765651161703795107123484374861795075219898228365108156003373527578654276992723936255648936464506460520443632026075897197148072290245974159884089291073758987367893229747427263284286951672805585326447615379791180567818623585361882099595589418753873878696119979611007157420787973973544922368932967721532821274416974545871635034237887803563497301527400935323750836755279832156906707635066605591571430203203854131578437490305239947845037790144623388556853050949684270146520105741312828813168700688955768579034952537498882810406673623166744538337090954389328172453752715496681188334526190223455272519446485709478704509920612997081866258479809017761247666376605329252602563295911252714182703764328589427869612498447457830988778826894821358842299890151953927050868050760655098683853584115034955298460391668195301708632833299258610345851079933751894965772139081327941051661756268579202106556991091529930487578579833296147803719429572299171530887153180189885124712924324351888111746672561723315330213896137199243962327262082186243629087032529395908951296047820983620177368386897852048292878026645473161443824174810207607248189420722559170462246731586987944946700082705415543372947208103151608876542153923448467431293267732344560315889077555351906181240547907680393549427492045830643784888676943088967298268501123992393533369447385044534251774399692590828182172962536072881093645647438798692614338590825796544941046833399821761854408169994569175625730305760331408018729167777958400082266917665626751810069121914368087232234209584343116424419228701677542143162015574556790472323165066474778449498019077489464525255464168004265130663504666756180987571018811443699251059279461827712105714018888372230712068817305498146716115869910720922616193862256566936247524237808426059004210473254008090921889699776717040516755634803076056412985941764538878889862584648505739718509789740544657882491971488777755286532867070791330037792730092954088993972423079723134776324428202776281185145870251591625327835597604778972815986425566278303901836693484830583480851823593108508289571346107902863670784729299147751556463215522655571985598212117064207142938757685808480581978031187102177316710706862197658120657090650500233793730368506263874710018978635994681112688408991145653149855394139417885746943141318417221737664290929903500930259932485694213354694793871015467841732682013379044642928091726850213589676684844776024805931058196875290106204504877357838655007342224736411988287730074686996176400859042933499055201946496671037227648790994467499228909747423387233674367061894565086549041866967307281871525666384116185624445541482262795443418474805169889622178252281996003470434101802157276927396961368760450938918097630211362587093684229981970991943368840992779786732603733318310902419948484089673521719967607834559478583552232193121230101984176905001677403577914993403844658508598456570940784754926132526666599704344382077789283291036982562083294582012840523675905649352090562383096294938190837005838338545743983608607237204637023052020671594311357767197169185921292581701685288540256121810414936882346544555078286955947745267805228132253474045754322430680036232863322284899622346267324077629944329365180993856293765704812447311554716409188267667879758985843976668807163701143111370328256267269272649920271979802890857016321323966605692008207521311042288427550734736423011209195345944120559282995411159664480163981634744064657949204362151536073420373630885124681846684431507978029518677499771945197350635924164954611727322938987821138011681337356900035337390970366170187810107741562466296397810516395911414248956907763410695834631831020623306365356149755666557167470614524421012596635754115405707650732088434437645499313934514022581558351065697473283138044399439038244388644875169074635096085411432507521720491883261929152017324494320647023981694072770847695913764278422437241204338723172164503030937371011802055030460780037210139975452301916530609981229033600612253048757090433813546584368476997268618799943925599916797801825861149472658454641335343668535809581971392759257264344667693464329597112066383927116749749348484354444310150897815607327207029414936308146492477554662119392862645391270785344495163100443112019683101848153560126915763750974252737379583893139209535924306340291817380129432574838043447029440691981095078744117462379808700084724235061519846573264546244258627532578505225483921943201009872400067703408613098576307051892172500345412048309780714434840576589604060945363638789426766419089707157111193202134786326440841131925951518530540138780984645026280291281576775756603540645002408316050722149699880037625694514389432509389361201027699709508715102428113390063933231952180780394762299786705487552032539288047573972817079214650655620023470284661693944214591928195445781331734950937819242522877920093922191703258220306192353462578133797974076175289163992660606124986371913817955083781585985865484971803018920425352740148602759499429929696705223842959637286469013212772503196429920281789465616567663993424143630723045665488249751903099675930871915991312102772805889775142645479131542862055415082831402339558026727180655170259841363845920724803600488460840898325624495302215438294645069129457890719832008946765287325351460243035969149933264776223145719661242585308141921042660462955090868918167323034062912942797579899486180497207426911579711777333017244797824854302559746146299322663135837996249385536255708099710510647779744244181984485222861835552886735359385735091369093346216921127627775454257059850907832427906857773257739675803200350976980377907841782970528944078791538502486227177396749516286832904676891877066696402025237864231164817497389755271891873769853852498081330368475465884152792229686268889592031041847025726563711341130889696431494343045171366321199380649337535429392385376750287115636310792704231062714795844764696527830626470905399637333048713371525949340369557412296115396453326123757180087940929447170311690028665710809528105421969174116632095311712446876411359644294585432314631764659875746268743126791764006995208239607294639161933671508154710351068085506680900008840427212343028251070594986746918669901583487225585285055101210677196674933107567420682841049540672477759486787850031879234570728179690466584499826145121465827446370530258819699912503339396642942160277042296950919422253704013860087508082002601592983185868891157647121393609934925783814046496293000010326638982040111593664197860571930682650822712243901888008453353154520836570058433588235337806168249541833813091070773263189909410654424722853346102293236167414205897482882745347917957957947174890195505398922975336479776551664214407799065044895667212005757144604113748868554059462674739695077605624865899412179528435811712867636629129081952726486048481404268832080764464278150564295333151210255863214591441574747307321762723719299572458899524508156820984335867582521927786268614417148302263919901828630524161765152880117903584480594174106345435724738948594963097432596859193907029394707746233478475109124462501988589746087988985189485989777922654352146843165714123840671081571802039965858414243286067868672826966736802018305802545001957090374729659291386947202939529512896000779092623061874760879215967707006521855760727181491319553436732775330969929222132875960677844870919533723460111552624234142603242202104403479938771546680241301616627261546844442639274899429541387889352121672973319155684842648564735749386027808974637522053860484132154158094354752375591629500018236773221567713331225975039915596777971516507304178717366698564947289082482016950992264861469110935945560248183845508595798816698965506477675909312811960115891215892540387292171920925282533392324084455986975621419570039746834286669500675731459413590089566354176785024533922122128646223244702440641095111947695856522791302838532057460950936897800545929027702511056832037314584519046893565655183006079610088150687027234510041128860972502216588683353817711786677978444291646223200225347427309081889762011685953426116136888541562032849782754315805673195437902246787472479047922964235535026354633230096349508274038027676395780929159625580771833965333071491239773487850832818697655710285465748066809032485959607715240700571884115448333295531851455587720849643401110135954423130566520545201593377161960554970616216919576588928706195872395008360117712802754587735498163749137268935746718312937752190025117811100647922287821891087250200524926769151266162443157038206896792336741145473330548618999853748227769459474838997211638885394740313683555634120098359223685603127076227202251256321776517600867392088979255017951905584947304703948985411390472322661253007342944376768354228669871765725074500993239067282371461277207281118721715758866422060795048011178331776586669858222221451867641506068836859940151295213959030405209135612573167468471938294646911455981342265884518913670784333898877186518973147680484670107417752231075640989607582994150966269862168184319440062131383075859389628589356609179340969125726951257203493009672268910232310560678228106869894740208744236833626590538105104197502540087184708495907868576933755707486192488449835595553191930751952372467814288245095723724058430544088255466689365241821992952904594820137286572672559911731660836519722704215304361149934196115384866146844243557519861095935905966655260619379586436028503908094043993850490039433813978279836098444868414284898559800810877222544319287242386965581131956779309826560805856714586103782051619569270567672844135320059969679387429240788244599228436767254959324651184511929377603994216043893471546418389250395272106544760824425306571251127120550594865624226972800634230746092800469313450325174789048860771561287121498242693091655502280790825877800436135025448877335200734569417051483739971066817251626804146346867989737368812656872936446330390967227544976177699768558308579724629107291888191940909812723792535390604664197659803158212023304109748219159494953419206380876097877634133587523708455817401138605838737777810163466171816328446183852168591325502924345098070096542083958787164697364904652571436914114227591893093493505626959369435104350153722585113030145476507276824078985251106099816772812243960477187263161819503080007133351499463419034047484277976516018899967415359277653879529528140275011681047474460821252570512160445097104848979646283470592251690424745608203874717278750879711389543118939497050691835324467976916863590960676154341194924069232308754889063208183136070119839717935649244509057090369197844730458452224133539071412953235840501457805759468582475270824514403441284853884810295117697716554236498078661795871760677474135108838664157037945287282854410085869592895315233617799906162065685527616161108902945157750232467677858212156742416427895863064683885395831317244039990298955849839485278810923045584467623921671680215055697293974789480578609734488393880044834174714625919102737257102092303730219784473352773802128253337805037787428705405289951954630648819287039898023402288076161206654929226133617192526628482052646293823481333678620561494121847778021915204080127273768809920833815977229285156397267610633551169540659545828966313382693353176090915789591268575925311307985075899665398914482709362107656103362463689472039833559100029853547557482417438731309987576569431000765204979768691240085997405206941384093444900198629088700996043959578607737346672351202246046190156593073707429080266803840916449624946914832621270903958185287843652061483139411841086915070224887341060687768708170115128106119590356744168478047016432113794840044807977880320862031531786648837519794568716392149236052050906071298070140932290751024976702162665861624617551682222672894652571454908258806798177987715585502779048566260948463187910895721405809213328596278776131797814365412649002566375582313475657365683185996165097284664442496114655943041573976512748188022738219120497867919365134224828543477146012276999346710067812500356548772354959269638126589081691122556127735129129095547730304518429887825954071634994710763172023128946450955953949398205557293302969172598338029268567342068324482770057450210154853900945363402762928061759716695178657611288503288320121130899151472346159090665088028267787510911079666335060595770578194458570931392924194474804880465825131806664355370554208334041216766742516261789329078812050618878482177522768695926019248730788573863146691664013430106844433844447822184032539213880411611057710154861309500342071599871956675430832779352221835924564618717279899760380588263605567846762491876354974053243171079608227077229520430536264685569847087600725696358413363201000353612679802179961844344161759977414771438491240558432812172857263574920791536143810906970258096467099152749037968384183801299065459797783748105829554685245408389381924306176245722462077523267413246845113861432357839543090087112495776535156820392803973398921385399343820266286110857629314765433495410566975034762740028978774807133223879861952655220651648602251735718362573328293866660238158590928983375875854115732528375541705675870113477333754818790923396939336080585314156945172920784896267057830078090884614076368752448339631284961781748564928063980954082314097743857220078700235511149339118295373142875497781090918486449043189561122847059074323127583906586060363885410634698576346611898378359638539403388024969202157886566755741297505946859759222788532470921835282821525288001324299013525350679021009073594833187239023863008679284468954375006014042796873350678360665097519484836759776788624503100711711537960460261643974953018301614206888361410127610592483955373067112806073346050043297155396810962579145418582253618581684943153448573038098451002891459132944369426458807809825768442659720530298373572796552759165299904112309251603377499248908328101561792064838986121668453357666242996577939537987086390016016290563362331683682405471087996295120025093527820091368596543213053111695246836051740089118592773312331892333108575204068904923311327058534691790204294177682295906938641298706901937327249262667447296397156832118525204615329777757878051481834317177914224202235104564880489637273394048102366918332667602222076897518947974446968183834627451697099963280324299167748389707376789767229784738199072990218845900640415779659830499635306532295599999139410715223464804553002750044418529234757847278973350230616935083807685732280311739339673732362947348467015810975549197279136228173983995257567989418016632789224993030502222714919319408711809883028504583120774133094909010682021893493227472016347517065504792320111409810563178150628041493609551809086827592465029536280830800643396548875170691681768589044844244826622166093181958140675891299201772874683044288515720525752130832632589970478523063993957722024002851720176261095929380709116519907558994680972260668594912063175471914768165489231865098138009503381216317544866393103177476368726388726408133918218967396330187379017364157657480522089577276557695476509609037987943642984817348845525364014863022889694999500498283071926607088713985863018020999436846822365893382331483819932598758258959548757377882326250303674342577463207688351720912566473397239587781245736021761382026814863060371458118073047298293923557957589442659090453531743641238110088686269428700826979758176360306891155687672604556939903782364299288329442867719295318785897031654528304428737693886835665002446974993216870777007565843393162862847630253345037825743944243161293739127358501153182484247394411658271939233790798280454243018599766879759386375661237200658335520143108454964336254553433443801841191573228867962415117400024574511466131251251919765033776144131913110222919915164301853944903299038168923188259885681952646044952827360791276276855961117703412240365027122244325051798579762796602133128107590490396306818672346592191808193267724355863625879883615845534609816373113232786041130498707257498822077992795876039243786456684076316487377392235900789301120213708379528737398869757601757989548300504393087703925758643565701699476351787943300155468959788425700958536502340794863407258113882548034207651915810406237529819023051247771665517598006889003491697956872156280682142359657492846496071692905454040237232650729235078332163341350245073137101605901282993187538300594743238117825348356180703446088446077662999849533288059943162770570301456550760736758018923959309672492886104399390285216834676914145944775601583287805792097257568338748952362875104089567933435437721971712551101282365835773844107890404282813222054906908284729384141334708283609315512937161228254623027988377233888234654581941836408300634147315925674928618089036623346383538414485335048765021559866892202064973021072429392714131151186318491967357196618527670783526473663727179318955591380197369356334752970788184968813314585779761871262151703748155558832946088564922746000549877693848024000046150855859775660294784943965933030638986670431720432948929867202300125701924385745696395014422475239600217862557468426081194973046372797624678689411648095054861210338696775501431840624168137095761306781013519671655030097015524641534312276313931768933935379630559763141778014126970509915057367754162232794916048276848153807438757390622076449459487614227740550910229985305826994380397335967088767761268026388458081135175738442717503389479611226199166113544588651051641703556600107426572754486672127170719934234247277918186544410639539185597356926950172591338322108171667641804554646912306526701934162746746553610920813994152352379193204393216963852609661094937263640679450778738488932340824015467890303989487737701885687999588568497294504249439444283077855141256579070982077605623789444145118967604363125125779174557534637178562692478025404452499884900876966042502801579694053691524857195265324569835347530977832245190600524288323818640251944813455755359792956172928934207355483472386905683206705669323583697631134762775019272271757644681282322007912091102997218144541215487705267436153829384492983576620198697008559192748283391896824373620810821284025700013977765017628741810608556315454310516976539162350188481501733481665318552938477327484321341473541789776527316265228339494837633091549022708068718488695819846951937226101314900850700872523227000941784391423680627852283130295201315266233453235343641103709922828935953604317570950608756998449909648323106891202074160056384246577754217712728976852017544616859901593938951327584346807115503300282920650465663832352347456478690888283554232660179422394496790591667207194932398357863905152751264201243344126565506211790822413097359240219319901155621724550934846254450022639711709562015463823796260219732538093686240034673426885045745082414782031914075622184486170666836790653631110018303166674888915787908744700131560227486054492393812293841721329041980353370572570827169143084692103409381836686040624340654377606233934494263875747473985149369966948756815808896915586188949368818340499257754457659941289509919137747828467805491549932394757769886559030494287058988437874838955327426360479509297420911631584368250426646871980693270002044726414596738181477153718056546330218524646325082466672680171810459966052073876318721080272196093715941051494115955270571577546721332520465725247242915279207915176265734989544675930137794553337530493162656461196039096006045814232056321379607571254075271210916667531793922085337876471462454334213887030871875496703422853917477085863373023233178803621155585329173647664214071619388380204824499660411082642124215922628448486667409227419307502616777236888619887332295266035670698246885516510672054716593685921068187730919144629344306401524066798737596232562604764275161078928079020733892355334585780376739751326522756929860728844027394273390780062159807504311400680370779669067227113129259178389868522296137717518672956324172784514648449006647247125940622620714161646544837229044371505897522485046597118371175684277208499078350275907409270080045923751463633635687933666768820779405311425191947171486965251455259395794662495293908199713265869958334190055858455134076795408021121747184399907796994206728086170397847068793524345031699860584217977662488091755325375682019264216611195157468480231763157555323834055159465945932619875166021128059528434348332207263915326182989421385548908936823165474220857786405471565187485853641798403272167347443004207534448331932441064173423920658627083415561160002244544757514900891161691328683150280285791920861455078545315142153780744044408160076037004409312844549934081614021801767162205548120957366956572475331428259170263544110915992052880848076575252634207919359497380841626038803908968831881753679102839605570147563079299717343104845234831426795851398381329418206328354839489487005019014189143686335551048481656163710596142430661855020711595650315358688315957400789033406152934072685992020824296632908835070050346688815605892032544052839139617942128067870401546935348320026725331020671299362743488187527107930189134475763818671769728561442383290811340869971194968364606820821743602295718270462726961093727796147068196964885992519700631555806643349291109795308745070653970967328313859474968831919265123525496443942203065244001911657733911400673382026462213836378570276775501555297567580303810584004801353904841983072104732229742987144470048873207487179957557927436261575536082230829444977475496312128697512634217391942649512480826787046449061230149212214535326690011915486755036608730174965996543575559896946447285597460611123683809701294250756203975366678154821623728684526786108693716120337838755834901232625871333662806071056369748952711624902392599534994135300223048845067773887326491767008227558878298515924503891080642239096733800360447690983419496214955325548917917397168468624246706344282726949828555569977294300546286951538678405264860793616796023202921277050732564650807720852281033751188098368621910989781540596680652917268277995072333849226921298606280809409802288950526369031330405216451251910099062097708486797375563693735609572854692731767652722787729782365338372865518551151381102123526713678753165078845697985607734265211786707527731681840864810166174030213997701683297342858692802136486646991562926075100500268813031472480782328392171467710692632470256084699191494761572454452334866375972971292017284404063786907828469864386796709087618720251102839933654117042652649128492860142593483076279783889279895562361143121604172221939679799476895206455532347565349307185798256811934808016633159620986655883613085827022700109574079367089647288712670534566580058930178091055988460062309609759439876220204534035696650112977191837406968941644082827879842097976700481099486693377858683224024428830030116997371472048248832362373003768186421262781520428083822353959191433323833931914878798456588009121665631704041963557995325951334573922951902676507774082782310613641349267553263898251902374227794059123789766071461095397458484502811981368868569145656073547788238645951892950662542033194017801405816403374758461075936526386681365497618738601361585470332058353784227652748369099763261652678978362286688361652152392003148653698687958193211952106316545454081822498616265386220639536562327747783233845175165227935020433193140784898879987807369231441253776707317495956428400523207393996982500781335345571293572467883783514304690748466196850478205195468612336047722240112766094286798301969599873583406409280854373421394961369571323664248130896945978006309229650618371964637737855898488750628045437053441679858664323734865192440103256032485172861036036372530730634139280019321716324584945132802305499559889858672349362921079880436833165122189282632156054352882013767144508672946378748057590942814717714092879364832917586400567822154855568459766603172770699303593261043481782438673020702151009144574968770806204880180277899788140940172986230783031209827504712645491579926927101907435224158968225162361642862937673351613722441008032406338490099418194031171113743320728956268971604174655321357839511030387793057407096039583227268188225728961888482548144075479728697728817017647471974460232111895563597294049911634573374883318605345199540327117429348864613809717234372629991155710479576162853599344751816998871863004315295337754617641419227145481560738468865841849734089938700246916371523564837174719161973839295198104763635951774399457432407194879038440094042045068077807066032246613295078260710592604936677990759667338141233301429671137698284857490790103830645632643038791644883941886521723739366651693147064215616924781049991479718700966511691698276195531416673277090750487905980186569921153258942041292781904663016177521416241861510794543240598059265948728765401733522366712822366271501328496285676145586367320921261624453065896594142435258069891686872867320306858586029269514561455379842202813256147167636409484732762043485934782370982352343220101170310230905961480273295653219509200481563938226737641675102634712081420579953332468910860209434079625129537735477177622948730325187697235659178901309545567144821042964068298877096551182804876833606609566348419237002999885089119165046726009037485928411899141175203626518445841887237317549525231387599639573488255073140758529547402346566282417664147344596800515676062910029818362006438355163544936020039383825032632771788571182165565014596299919284195911235382277638415629332028915402585235225259287139930287910998700659974992747157995789420075476936078333132836063723313428762499448192405695461498859789442325646205492901013265005245741139710469403024429367631583424622810599071545328627073567108068066287168601832074059477317179932861007879982328861621591617017043387629667537794126596520230991745880764819861673783580299912264845181972571598207797313656535602973288839218243969020974272409233048232146095564854680800446729425641262996265538488104192067767409625964125148981545612047929740225223569636805391945873813009029108852336731039938983463768106228092418334283756620475201664701830248589413929078041921129463552479212785089403892976800900287370543920072894877918950737839903770970411357052277072414230586129424957624078449698365979869764105087949977894400508917221030311679441434291928228368723184550448465476962224568638015587002159864954803941796466530863928641050415727327212594515911256547568494338633339878405049997376011330756705633480841250427794764641772539555259201845517343455020470302712012414665407951028143265714873440155492336602678965510048498135945027261954835196067036427617458645454874033796975829833903542168735254875416934022327185572795365692749458205220736794232165332410877342000205509854497689354258970874255457912675537033712260583091376903045131510226169988383216173417274506941048238294296367008375649788881469069796548447387767365608975863381422925976706865592595376045632403432161155577008539454896975816982111634854502952135640810984993484823322361726133177966262917705954281416511368109915315006586538047198837918709266687683148553577207544157760109503874165994729927847663499858917281565895167329087446390798623619328272369454734374972571236763582756402530348466302504767700914640769498730417460145134766543976466137395870075681916033415532622499412847066248395465311419921725762412648920974767507009461735396127121809973585877890817353233888978962793328398236086446726995906698284070128066610451741507025837618004866218155662719016191260547513049841456231061899073997169369255703239203415541303697403835113058009426748353933096573173517853600523410164567663481602365811643404926235581972490460198331057523289774331026436461863510315211042116010739679109682971300434371284404615913173110346558588732831851060408089341816101820699236367230895814230631230624356276726100820568430741350398703025169489115622626838052601277592940540728387112759110181525832073619343079671711505578549319748789543137984883211485626777354897349256669071634189581374547874810003917330541160577353169868989364274909397097544206496310035770712355532426885471458520928304742201740416806275174915572445799178856009959639842729963902391782649512601928995653117499228296905668985195838041080943911389160328302699233289182647707970379293864216759441348804257519732615588992152040283475598267620864903020638804079860424231674575957223468756134558009055965426741574881444406180014617294567937343506948498049093455084959049012730530497309403061063737643428251848378558580678227362809631857461475993752469842291606791848732645445453547940714761329040753201307441754956385802589334154478880051752816030298172927590093014665105787718902396743711730368685317919812458729391263308383568698063813679664872444181891787135033008112319437756540515475642336564896095549867869359464899530270233827495019857145510218237651547918570290929416935389724235629112257375522359908262681182353632015229902573085973089511430763872000105299230026284586002984598814220370257433773367892380268987528106781578219951830660085009504212045077494983046974036732298301672116390021218436804445087658302573824990967852550918172171368446811383229174236092211216889027583233264828121641672355725177291126934432917551141499289390872027980196961773977589861838116375656062725056403540113421531715229065741638538624918284887797865060082526228355915398605547125746321774396608386948456749918190202078112090493527996891489587362191908051640113070782724621086668805279069815469315281499845944495545144044808030982120145446412997693007250759924043886634655774919929678663353885354690542725613491086037952616945240614056844478883300678868799703423984125354742745749283538975350895412105319597265231812454423928463314191726789441117172435882322295353407475489491322543107850993844442623980605522173813522053498929753562649209152078143012281001426670690132078536631637493238201533876229359259711687223628454851515233819881008149258788906777890515580197996986827755371726891935790878862026554438981110409590482933958372763878267453130235367834526990297060705680223810616971881220991409076631126430017321478621827955096946653195312092038974175452118512380242230783994081237488910969281862709022175288386803753867716947597269460487351402592988531419620601503221490053728231379080414719530544281312969944549198185080654103007079464173873947175507682410675866461635628657446054945070896108586807586121666029638840432798346632921575503159491282931055516279080567505799591498930068732292766203253558741051042569696006640043029165869556880014637536837195039688295188967235181991809322944553990755441239503146192915880980237572780755339472663496685713369923420416873910317844289285188812242776785835867676368225036959358809764553852179233305809261844218109877596691606877906997854313078419085530921982298877062692448286222061927053094758416005711018789902818683911989691576557078574700821519141626831543853995237120921806196857318598565730113178209190689152597035591295658716921044244548903662639636994576722673513365869485321198172807554996836243838619949289121388125605113082100731778909059053452691850715474975136277121060947903599962617770917648445888920147089997382541560397691314683881403388977486475451601931400261655810967363069235661903267115327684151091358352658730018851376949746758732004502046756551542936710964900623552773163920925563754359190100541942450981121672422418986563331108025396622081322676370339189876261996137522493354812135729390270978473177800209363252911494310542659426949176619269272744984430228354369539224150268822662764260967503128809952914604126543593939760127835358989111257998467824415953466571815943475733270048375588531440886070148555747639075137690953431150161802311633504068472974085505725222132820541922669772991413254862972498627317535665545282837547912315979520915797691640458206133690950704417662186030265913324771147544354373223538705660245273499936476012626785622936527572026228019719677791561198999825041899164894062143908191077194239532070695631797472911986995254017287009267974378770198715990174502516272279421580956444198049821567372903035867350078322048672703456630854712490180545927419758668957488418326362569583912281928746505671057264535075730525765312532353151725492716075699406991326562880877909630430564591897705996116368754379430117677514260610441545553423732907598103949515032166310540809236357906013177767807826836825977411672796415480073873357603082021637443277361823953709934207926793135586365341435890910037334328327285158704445893828351768605081462493545420221234240990961655468169926691312197911679692237188208401224559241454921039426049004274223987697888836093399038857370511774947725696972390906866804389348396188812787416143305988379606927491466502829223705557937546087811771367348041880170230724112403748555032016194635244777812647259502441925801572726093232396139183853527597678210080248172497029006595263485396658818666410803467925105582489397599417574151882852647097975152879012377587576881951213271752632380115167446396046783657459373627884329323300074542320926228327564871641552514182209913022117046388539723616037002378509374428550327776259439717140032432525393443139041750574391470362920114657608914313323094310577561914965598697326927110067075077883446491382769058367044419672671233819823769134778310314521659609623339830491262150207101376980025178427123512894275150155991355935832234003501722430457262099143175934697759826635510030113830867786260889437992872728848559128553742969511123236022542385768316489982115047528596008258010777625629324550638831133836074110126798400176196399491477756465294199384985324338401886567910116432215790304375006285344585961743871441492769145190038833000436103917087839889447307195529925758382476366016047616209237199673177562213070657562930559770857718895732055859749349982816740045477084362366484195081218945396008059348125344850773664868931346203561262179987628640354089808501762277474659881730490211624098302902040962072914465181611622252570258003171938484381757813604062083071620348478277112739034418279587229951159264163794131159060910480828809099083428052753850403328754170876507965466035797962138047648689356523349641294080473099270395807716205302505585627703110696320004441008108395301878312377431392581376639093243351945654210031698408421256352774417309231748365893390834943446785171352804824393743179282941019306347581506467970074021885185443980109460203670027936331444410394067445731018899677636725656074905950075693231115175989299864025801031406177014594458370658622630039226154622347713946187130652532341750846527451165621389730122266948666343022537008693339386926825414932067211587820023512843756695475113356778476017161444584704120365193837737261930453513643953499899401379390046428055249681219747786264505503915896343556978922120930599546920067159338981451813769392147012087355668330414935247281560888055802594006202261348463361508060223927891177708648084445638244932689224520809748507667024045401479022960743225991502187109200983659163937696815160904725726824373798065621682051981787337694033544533176875950455421760465908045794945480358121898193237000586439493908376404864368208961534187430009611478978148333525916978445790403410763394351352707506157890872810961839190567517783953370120846887035946191151808530090509165829776219369662026076439552479349396997668306878687911586264328330034261434899803327936013824444880949252572664846061380175829830963544106775004971456908239624008380803124276424875675296984914603555313564716042505171984177269550460601946596038998567328439125833461005942429680527609641483233625317163528540885691707063019175691366567092307999211938462169558452210498447881293780941346678583313109881205812232802227164727643459844446049751251733854705850377898124668553714259401116586774566491735390878450865132075520467388006387282060166182764971171270393601644005097529678307993162615567930760391772917619660139975191349735405976636997000335019358125808849337896400678453266689494592431013391199910594192653087166760069489321061016525671696182034305231316607261521646902212582904358304651928162628757793022783268274168242462158641138803353178001142753584384770238696481705584682310030586270700475359131086768247965306519929343075851185854262594601921257872346241180654669728774194102153189532372058880420738419449578576283516862293273319542822399211411046303619599378112536357777387558907002519201369035085568017619528972245061339826835184674088201697406874349511539856276895953978511477342184937197122077232044827222503522650799011207300686327302366446298597115821822647831665740716947761258238701320455107873312182515671735524188380870125148930095146540405221480303913090389622990419181926570370513074118245617042611278123001763794120260298795538691485083353952283794678700317279305214515292024618626282250102733905481416777163495465524738254969009553602638274567989281497996738057558344648157508565399535702849244404805840058459394407103671029257839770319270703287400563393071202828828935666770223080277365918803795080984511312240095614858037469034450398122389957414412911068528446263883110423376692373993241096277284932601551847286735836072064810019252259957184232771911413203149955995459225355234042377424969819114743261679115843973093454889616182903227305848957429728720679814825929471875911265725422229728985825744066613885722322828149543221665133189511863792824503630822596453658370665130835488582957536689547385554047596376066719315602264754677407401491056885785710774423060763245987460717217717958017127686119992581634420095340249491890706713184789373816459396387792023384221560344748340057355754789544853229997737366354141092282957504873819384056221507391569451694373574085791342641096258673790204286877377373164079044224992637716956086008400523504045634787954727438096707319640199200069003057047837090760879070833299663371257468898744484599975636564625122480452918934481168516604339738924330079068527099368688349829802591367023332439510728460440201201799537434132254515435683895613167245093987669248424357993794806143248870950867978904363617892402037279532660607720437091633405817205104448658932398785664228010402902219634398795800652187720392569494911183880928986226897819270666440072038642988313789485170399656690154789642878084704766185526637363233081655967813607245520612075446293154321800040042284339005287712361835577113663931788111597080344519101035961147792938107349893597311718509882219070214975553943178126572959391773168616462412215047277432647274627974708712162058581548130490805080691412566075580379026019057191483844624071471612048822219432437301919855438599635790575918312149804371073603304001437693785022111349321210571907945852540044820842059789176430922527172743716628590633314984097482009250005311718631386476659628120443568486476526970187467163928374148583340372512281636221777577976617503181044171139036335075305289940536749395868337222844095014153898396827630605586341898905951512415868583345186779289331685067336788552425734407906909251465244419840405256157590022651336621518307887760937149951291182511515802587094470325823300460219437884296138409845651726437272642203479546869557428057073380972732732111609403497196309782342858402915130486399762591241032922624640071541036519824004627326751080867678873456624787852497412719658842065979196157279839390986498698423183820208486788272932625025885009609942486052866934584152007013224012580155429084647388258269412058226958300117916237616887071928231215698938529567329416492250708296770407217689723712877112792718735745528321774635484298163715543905241132738941290732696507697422933873087042320468565644766940428928469453669926457693109200085383338562978454755901554912235445871803369797162941009932577972073722443122048610024708840616470624484328821735774090289918878743112338588622365049368535670408870199780326452560556948629494021770189123891573386511598134686062181792985049308844349079680506548071255397488563582851777858977580179614223185201983606659227245580509469626387758155610919371389151925082845132687789770999565938910165678374771583586809215311048405712567000199986171084872765695387663412441689295868355427793804802196960746377758540184721243218334359731667378727452680480271607602684153168887102642444111607046424292032546047282369365913262997087997258559592941534337649749039100618040455264196893515410080892821271753292546016270545971747346262651104309512162322041387119472027989541663698760029248911688695881743290802409311963750734834958515257686264559214314709585520112296067296211486044974936342737802228936115620077447776556173469463232686144836131294882082650338640431910545424824797660081110564539541069904960772026905879260667822518403404747013846851175538813070664294197424882016634489528437069008869708884634495822538227541063654054143430342780239978857779562571577392860496798584538046998786550717223466369344294036672386919188879315859367484029519574102031735102207919421442915338800714493780947762337647013222877126508181195938166029061210601652235648106764119060792164642757482452385523554242180688844269497597371258262808087482348540933410562735540009789136398013955137883241217878042030955182471701804282095515654560850820200641830903941453716794676519539695800201560828235510894468746092307204692360903844420591519696420751464832185871395597918456955083208269734891095377378200464734782003448629456412163846251572542795535005413680126795347964290696007901192758333796515379217102014833652163043090631987828698792457308677661670254079524348444976470731757117556626726140954174710873089019150497690692128120860449011492307714803100702930215852820854627148422578842883511897889335162802913528831651844036974572054658836867370570741410273535206660306338486792616057461809606992725026100583736173420583844897759382664905581374813394666043841742736383995179089617673049030552209895711143834680901929418761166361956832706175622753960754432282419879914305258059288661281942731377626641453970418731142828837699192236684523648835750816554055714288215349698164750843750326070418030898425964344643054833874562022411976318142837674239668223912766947492240399966071353243819859543693465783150149531848447570802129781263947993520754187261146048020478711944643845562411276859532159274814459101975092613832367195538151915864394866804714499050994465907303240501853090752810279644732068824199231779309163260221790975612086815573798980147458150760534826082354028086497291360857197143000775487037624484734301648499994155529514763657568796020599724743849676696616499754482356553834237190952816700227536505731382719554029332671565783977133502740722733033411994702866921475094300115423897078504299696308033311972148981630423219074457909302904373338142021775281944227765103183444553976227568597195166959623297506716390044698630030874848185885930964760250831207740709649366324048402106857623395538145807752831564070529869293909706606520611602297614218170856510471082333900631557435420720466144532559437727680467162467150925575649062726425750836332297738022188811429927460480865679246580982549877991418630401229483840215012666621393963488014973068226231550640891675648975944893141529338190753058797690424949750742447734222106271410847246828952619946339664319702328193798776391012648679496451805598587995472976895970683426712320986991906163584974098033433607754048757419504684134208294793168989007883083413889585776948861196068046877129982202468132084004645685944648978872309298487005931735737886636202792960681386629832674900341668405107546472062189387709888772056026045457122015658003389074708983972747140031292865641572121458097806353753463486085654806090975491270215829193790706628961272597311884631768387652561258372128661619029444545426180953634278161247727672127027223447940825931505737885150674893723235697137645368650021169692602087189934461349806515125749669401489645147492261972961527388579433922740719989557953939344715961543770670343666922440186758209176631703652130694913057761704291632840098191608526393161267159209503118244785385345615577639804358540621738125438115019088053495684408120249745252924040779952310411175811781649868081356358182506166290201620730542113760272359395271751768972165291230640951819305029377558162587667551994193102450661373852404711928599729180272065193811764372759782528382430702039931091393408301583650244083880990818650498512172539604538133064485468277475379418267046331644542367431031897025134146637766774670430131242233591394418115811485903732973696099965796125289903101998317028461011865013167960462101537175880185875974595839288447466016681646123563117522188580821875059763093318331796021265501078695329171173862403974483466040354768973436172631133372067660286930611071454425270688184223231729950784949872549115645884903950277690372126300140277551147510950094110381770970478762357039222252781600042205959344861056579772170906898224638310637856819625801587461846420344698640678397713569161380002724746577936136260575973344411651565291856361946520055443884795213422975549694761441779738630113145210508387343565785235270161303814903165555869251818427827014161630562381174897213872329079606281973469142735902330221622189018556145654339612763138998493543130082568393306473751718568289043388332083736913918422604049143244690542969634710328991663673394076182663163552854335275657758968705789685282114847018032154454957110309088550165064027689466131252985632933576196049128595256122209722801160482555541210309561924655331129103345083658523005243600485022765717544625838606793188132047608374833237241317582500413809861284938386548974501262112577116154391201756165948935292250976379907030046785758543088520296760873007338858855553392515494896820973810162349355893758756199258228167478414846359166924755616278428877064663195156286008845475495875003647726176657400045970417070177631669307740868704392777945406313654698967534778840896576657448428269563636806523349528593876250710531842570940049339661925245596539220286285868932917756454757077923772758363426418895050987422249116861797501803821783910327286841928284284190673285326850890194580613553480324826807189699709230827209598824442547104981898453565950534430158988977311287264157742882380918417221916947450468862176178393457493300375857895214522614483191157399248677222651618978882307980970018706549276515160241545607064439798955639777225511658448432665526077219532592634446857373363531931770658500784250010012158499478099605544957363969548641186771671259320430502325054035307023161559233487561237754612025839046037942633744935773820138957617855751669618007355133451551772080799818289121316831313122780344716253573892684497892030264507663492491206356958650991756612798468672984732676999998949022866714534338051657006456269057354748908563462297319315737225678941980763152288096636120526089969299673083999568339955145632343429361800553183906802669043748599224234708341921402475121067541890039122160470185095422421151369828380646807818316156118998616169323453573434530714012961875744265611263184793692245138134506779967617515600923796992390938632494485195778456986357459103778423487115245235411617041738647858029206889241721543980356516449483645906241510574739219137022060172115653515956897895459628663162175632506121061856928889430124917578859481921258714382817077345606399756867572390841289702154963182131129683605396730599145152901058565105872657326604221591031408721546315963733979869707851473932515933727240581981264278155866183481867889315155738222835872130062144964378594499103285645616434005227311278842817971264438330517987865343691442081868631447835976814326054265452756668236455709175975832174773384284694527198837740444595049835451356152770599345515654326044294629645037067760485357362624662980644778492109497446424353925841229020649776339929304224328642061634695440724454665314901308499837844911273031544245763619361046280453885432376579004845839572048313016617520307990947754134258928946202307729051136445109595863251072354471104105722405398433740818388202021379735041414762508248549027674589538546973190352549201570598451049886116225199463140633155241224229888561064968145965657760270829161850968053860683280086049935146851574626717103386826735500374296054746193779058919583931193033067410718191795062096457821211335990025080454015944397522988652064503522415351299825898743975921333612313179977365740502145820853665553737594338132902930924563800047930509529873671661237058723048816235804380656696016560546377648971374632898838309377702670728972928322955685532595032579349182614200113836625369503209348339401338085047866087230609038475061843141497020070066682670263066146780475412055200281392053381820121941133433410904183446644979732739198750058730747872827098194868380424041801320771762569175300392741665340357525038357458664053569800286377817399760716088202980169324144446831585144853238847761131017386355518167129860963933117375467598166706975290174031165587606219687687580419820982465343893688782951079281957255574049169476495753503902134764678625313532263593743890235479513256085728423471137455421079891226166451819789914758301775471327003611269959951042855993328254528459294341011867986848719987788592320349567240209876606013560445239165119865584669822342471282417562977720227575044480901620359359661401108179937719444765974041532012027962882589098416045186696297835253352064754944022731133173690609689151456312296780498779355239895545248866667172120916972026509415838278069362661889250163220807945349051138168972850072804967496248116982989794578895453707385763297656028327969565235982582002233081322483456430866728597383853877025325189709479199514962201678019304685447498884137207876272450075381520316397745637058821665119413281435301996217120269695157510777546517378904389967696563857001471824433245347992209405311690149278275776481824161568495345261583391742785955810691301723207622176067290566566705834433052113388660831864735472934210753466485484980480032778926445141534895655831346845664161086125559779480492203527145347970059910895188265268712353401706503268250029339176897617006770050327902749097006092150843680802473745655869894556250140096996562460007034819212008983742706364193145901110946750283053983147159964741784773940290855831135827630357446032390644625641183767251435607703913537702307154220425634969470795689520807454095678008788614175365377654197529639717841977540750640220779285482777047281941680325186198171883779457183010424406762214510188574009146247583149806739946935085556823018618498442397358856194403317492793501675477947908669761053275982548376154876361934184155704558633233960418855512341341100183686578547472130831979987671102202035329042096620152696824118745017338898246286199534652514754090687603892944201642459887919811615443784835671954824180721710247911586486491358193787941447642726046776625000646911533039637032505597736335354979260401063807814570331046707086763932085801352748210032892304844473367417286235067670085762262296577183616344065020438333945852577566719275777702082075788701381979754988242481048656044178518104943428058954014684244632574637787713536990675147255493475105614457165275602764747718067990810448729449676945026366606782592729766801756135754646739856613199971034819142671735265272624224231329630974267018200732497968622626108538376163565872198520653847787269006737175548982560069525208526479041030154913456413759528697749449801309029834375982111809555364254856915097241726739044241787323356773268293793284100830636578319571025835890649100212591016145574330378294021869710626506149578814639435763624276220322426032147040784702168445810316532536202062169313931332620449639364516314757499833856126062548775282351412483217208225872385797290598295796201219468854594168354591717502850938481931174562416414665697624989512636401165044964308529149960762820065531004238805843412500005370599366274559631162839747455983637207284132303241863384181972506695078492550523973732424086482479735137767749112579943346998144146178765103694641728835312916466845415251030894484533318458506213064752061371301215916784517740886881024770173894986862354649488058894335529857416413230316684271831143420723451413080774027413508383196843134417787235662030307513112728609307435777329567697429251758751954477518410294893723638273035775985779192149943179209466013194178610794239042380731356461059261767277674129850438752560411783535979312871606749283766790521711068579210656962736172892333920606177742170130902703279156997534163280097755281914944675626507996838859773698567469740154779155976833162037482192620626414458338642918931134560606508667124260085969754609676753344116040830704071535586666246636984551359206047737641823722743022591276240376932043799134140811598359504705525605062825049362528520090589599941924736879168492322370834284107561791507242864440884565284887875434229792887521197752502721775195619187976331889266210587861452664508542809525981915092040197658537542143652171500591884975313844995286062776904216520111742197122717146606319826589826743478163231918395594790868394376410964592000192870758651170009425091635755243089094094569501999591123559790386727327530289762340513750413468740455312977065129412917633480881597875332244818415572711618751205613484742539451620257132197591922089195650782095140048116418236459066247746882660884258852540032776067193196014302513079575308554238609910602109378764883225640758813888551275062468139615826235082267032154017498014604896800417470972854937244731370043180225590267449609663217376666504186847447861016145908969643148437689730573907452778174858664827354638587937015526685706679678607939409954088991438360901678840270954399084150917760981663813047855951754598840098725504301882193541644422657715733205617185829740470108529448956323108470280876030395800555417034835014006889524067527555008715958416691202601034945233843067433635627825372695888612950678033259447056027116058596586609368402566185498386305826107486281931129354871668487472650071579847555190455130767175693284693172960493801349780793091438971108102068221728113792421587906731499748545819823078338223679943424451176430546740902085160629255915570131626008379494949169913429985354262118682216952837705348341093383401523617348396725991927033688848642000199005311621424156612312794039530641427411430574348660973627630325169738590690498974514354522199983683439280637863585671157889676534550559196356891347815736148905036695455659659903955917708515661503497831549530780036419969896157918559019733334729049843776968164309868681314024192195054179719160673913920434687939152407445720488558889970616228335045933633557512783351580181624278327791488564098854412152122364836977168596303189911421479349200994997408273293265366219702737009817084097535062136233441685514044807093348285078815884830628031237718424519601129681863126413662517075355653230363122388229658448456859665253398864644909582893075618106989410811282261320402044544399672674374768031188823500863673959358609007050964540593483203991822877280403361851503447792014936745400899680197899641776869047764840672536503722386836504335537377864323400271816417237986048709832834006688716133734262705319191073443998412822951211562638787488757245667033568488257919806649092076125089482736773373382440777802334441989949988423264296557717158104889471368220202371990806756820624430524730144320799409853586458419052494877714387830476200570474509910930118829787838659910868533476728408135446580863117268020602261096092631380335467847194835576488633011046837803696619241727276382982696314271967754540135665126491578051032157737286136741936405912261324540627840496119607797316109853428558965546923300907329523489765732707526194999796487057004923956485984207702133781284559315518720856352744123404330312549016219731254729922744685067346754151915710813814221088150475868583007192465338204723974695835918285714805022512203547448335701983038340477633175008781148551477430435965992350394783216823165608321226735016964848042506145205058710665582174661794278222670151014991015105527724562747460840389245888403973013798949079145986610536883252883453917724938934061940652777419164222671136754693922567610026448420574032554196250941060728818028867014346337671987201129875767403742319097928114643709427090799766564667324161057774274056504386763029700586420277178617241375984489851587254341891853202282175441611413008544126174513666306435696399973225185091261462876203757131167195896504973203981781286015621466484149090887909255544200759363115575348347219357431085696599146272908865539611304140931822770103355909708333383673543463043878737205666149792287827786928869673153217142195500016018790503847745334121339777609777912865429606640368805899241067179963519527058156374968103354089404774232371767227021991563096924710695884093978743852200586059472244848117252657681204428862590374482228328924996321074007606804609704856748416700895339802230325813148695796293087944778724322482154046759150875150966461174225418267873962773355850250686365670492222611545958450185705248318327364006086512690062813757975712742690223564432344549805662460160561807992984656221833936041223540647362343341929798877791492169617056491409624605170366517645693478699885038197384968840964456571909282374072235732516506517803778301442722063078237732357808920559963072118510589806804878479463334339661548683247479767053721137344943650600787041832833664252430910892185428299192002987285605964972803086216448935504590552901224867313156384330688635418364830714205139450728311985255114006451038558237326823291856461901128473688856583640700218847336749154168013856552835349796849913817786900739974153133957611557980253385691246753954236852926526460641929286644789614246009676127238956487340376425153855425765696823502198027559920231752105920029546642064212280571099403324233309628563519497994049959997900609669007406317601059004467702195951110230287634943568861441428965378762536272249126480109136295542450781035493992961289368032425774199118466623788063287114961079185906900840133546891938623099632704914529594597062987277460334029856158834620872446430470969817937087303396666066688938498257102616575941196461038438828822477259479523227145275816181438622092494150370065246872036069525510837594434041781655404759951540810576374416456743402318095357468390299178297531931223665722804913169058676033989162855750611204563516502905810837678934097872032167683923970167899068474906680485481689928834326178988716717381155558071825482328295540398798841194018278275109300425396731696722338415840509915253129721239244072911621263461744889066902608603548873017998786573157547744966175594348964676522796595921346354930640837733228946703440495724397589449241125715543792113763144159128827946630988277969558266297269585446915293997116305650007922626155015213876525574941188157883924208535087084069842088935727509208127296761382261535886744881916399540598630464718543313847143629860454636494594371097258847759961908146903356387852745731404110731390469050683979125227563632681719633840954033784640296757308606179224910955122424678250364826412953110726303403384415637682628516521129019733001178123985477771333277050814962887958015509505194605116616804464490057816069159677238702692890295941768386980459643969266755399504273484844021025561695954592297570853219374072400815341648907066073317535768326736107996032025502047110037381197392396384483024573167053450517087459929574532060542471304361030889445556042060376317336537367973893479047124231939158215681784556304057729729758735783912992510662079767976844950971859008565105439753316010885586103607622387579494093124063147851153003500601087723759046836267877738047936718050146267211378931063999744338617762374756832101118579566981992564088894729960857629877006989768623021493218061999170511197148543460844480393081594455720290342859814770375246819691967820928142101912241203092884392253119515986758003901488671126271314026662229920189209991430771843376277597781019508605837833753223566972801265869522519484579124138376496909322952747634129120825312521508079674790257931749227090109159708850841478806424274914439617694649752636337865807960130068509127537507494076657147175962630534649066050096652820680770913210293875109470205100175766821613079424369605451339121817822446889057625700141310641484042862107844006606775981825653829887861695672042454841201296549332702614478117884786182533703650810949280929445534329192401043650649473136873373205886812322956431464625428370185894234180754385748771169789074183247837906400981702709584457466057873221289320294148295242507945344371607815494074137081436083692089659509851522568349755650097507987657041436763930617258851532139433048272820769230286788164348284646269775964023305387484548122395186611928619558396429279088594690089611618992231614334528127501682966488010701118025298011493437428348655728240007808560755220910964600520097879906063667215384235349087153849073772636414283683364755212889992009577792719852672630996252600928288234687364921685646346448263694314661606980490636294933403413535442167129910893438134734447483433562779407146123447781964433593327680756601765631794471222294658228138141807631591319830141988366805484587566490585758249430025498399658160011152061431134735954188085762417537138003971845243108543026717118528539458260471828862696821035427852471552933030742026237148377183091827453311465800215866841819351458200822776731900371725201234749226079778131002206786309121905744245181282062129275115467497120718882189460109412690677321062238633818850468912642890641564085548079277531614083197998838653082775799134559650487133175211741764689721042246318112204741667593417941309848989060686590630293979889812787947121531306355799016508280082092495336039681132076409562907605025180935588061679949479286540468031075839942563781181068870067641960927979037641074960106142748123591083047704436337182204977355695895608257592976142511547562977972492607648246226909910844081166450821388796514586123963013055703964336617151509206846054616154786315354705141616530633287384083896100688297200012703101928535602116791911672808561783243039934092551472116987038665480577703008543017105066356549231032605095180023119366334454054894335273564734164914605980862172487820030781190662621909498265878860132350338974468781631544973160071749501479990689444202413562447931313788074572915388992526810095497516755389091252983749563401487499511097405568000334392635023469860595455918814401534475876025565678744964238757694235689613787728207955068620409813954018401290229524739342266929441137939712223983272451806399911626207202121347276530689112523628450964470083609315679737305432080989119417490364384832447477924587269841770544524593873323553851393838724581726646261394569674077210620236468040660982052173536247061916461615671674086118949827655941160230374646000173385563997953887981099483497119192919177900951811464967717389674093226124286519674256393547903326690948276344618035417954340658578064817200336540535188660776369029308857391249740346919267279513797885462885447244172427166479723222428553391933473214673621777951179201312860603190856045869636824710243838819732441251783253045530837693935336971239695716878143806947249174489812621538802980621888775040270051298156415838785069058013498765722877653324421342787375246297169957353506027401569640219281638878300387558863111426564524697303980208950327988483431139742447572899378594846873423885675869419278667322741028417550422178669769283137155741596723171164029810020075548359377826472432697735683787430327957197522132490623273770285432904076875509123656802520504712624461860583136905142516209989695860677732901980891820840593281177724741670833674557502684565493616312818245457230936348958760995174269841545987513246803026302628506370919574436224399167408045790696973644078151100901789849001708625982620436508960072028665146152424889749716760668441518711495355269477756711494625827497757012940155521499301061410365244885401101612854020702961326043059007224421458773440106991266284796569411679922890736617361853832227164749075834093389587680958897208242371447468363988177366598612105263331187972517703298600699378867712183087506438811279561036724882574211245950587962762414652172027320758447922421917492755925079597976283609272800114930043006510797425130986170304959314658673111958747411430273252688657790058021967983517396789697674157347175252176161769565202396154878860821404018018501348796261633668102781988324370229922417194775610106597523211323877984338487609672243123078374800211930221025783158244110884579793836176262238458846346692364588437515451569562620394713609394931822738143950390791229376120748266930084754092930181075433789442272051125113831035049647680731226081816059173133360146789509976686984659940163929329201234063488329122976958428651346601371149563388374413165641187354809138422086494728785873906102285585468082649574267205767688712996593216142958746565011309625112496014109224582789982920490186360073633733798433551873044018387447136636916330774231904901563951001588453308579333153049874158208059910705927054721292638642184331230460331255530362913296519815794366306758378590610694740363785592330000141851013063871365642715899745428864812407746656172221629203110433392718016246637022187899040288059868245012685549393158701829220026948807817939907019071083103802946506175255703616756052634446975795236306858471236370411666748475756574206718437733503809439119354008690592709099923823413697597348838540055584680968339833612744206863049128149351873480538216867545354093433125037942440261601821735164590487552523325067088686127285989334482197961104756236947984617108881089560365520755708844395399255605129610067235247782767303467579873117461851201940644989200104732991155823983640005689335399522395213079298995967919300507495371683564224792498899248479197359053738134400784163520667863802617988654763231465860459341094311143008755027056325679300133116875781194393145191099440694927348552319120686047788528337153712638588466856860087027382984794211660420789482462026303596753299178607158735244427426963100355514914966377213308965546167689531097797480441155236000213278704324646897772821969317227555327164531133499651075487723243460745920828782639894974803195175899362969125698524666412406708669871149147469571490852341196860567003873703556624566081549078606824284403500824349628576148164011900347113554000408109615127924102546780297706891490521878401882059997300902331472580625660863450076592372749000379358159706774577116382210675563433291116433047445100981834509668493882772337249058732458681211100737308695298020951313497231385735290343332123637581926497134337993985765017245759773090033201527056145167482327482311201051433386096260614408348460869018949082768035589316238862577239779066152751170243903097533889883436828729325344074545430029311521540729075292751409849388347321778412443445481060139329223192533973342241096160389032862591468644349000522373191387101797949962972190127989096977008394052340420243871907584432399469264049283858109606151875620925429473014989492088853928442624311526258657683774352103748646260620066396150191642470120756944981617714302106576142624110074267664507646482883941238917061365285990162057213881897034741858550306654565811040007894219094222625153474075638234413975187585395302629058678818499527163140897246671367471348542128216411857845502295487437101402047416413012213934180293556652569411303217415742374044571737245438515738988530517110331997177985527332744041858291787509103490928461761821389687110738341520552994458328860131525417151673627507299764730184466558325013525170431848137909336766473993259051076822788465088441346121011119009656442128917708325886451603872364540180702048409396698463374466685064522992583743348527228445691278024681839103779306583743548341693850411266378067613277409553092948658192517274637938341721529596701664946427892697966500803250660336112832662050203186402267240534635226913935787591289451803598723600134951653999140056708250275949827336858708092477893102554957046951945517064951143789194830619431723622164622655139937467639845357784082411993766634743670941691682261804775159577506347043271759870412398121436588703852162629751479710774332182626593113552841277485208341968217459941714739299874183328358106587156907849121382115373078808749151051112455542107691116126517264955607782553073454298157073062045010985273808032297812168149318590828892178500354615582416720580849194672955608441598158707181622486384092518807245869404152476389929622262396711882328665403787810843005453880908265577363405830369997848278974357381070392826734949634870683571753907194426139444963803855613556374947430933785234453041687848900078006339485218322906463744564720373383357439600593120674488866936776805127308584724765739168864161632688991080051044129514430465286978566954593456385844997027088914144427947009692917861115473316244980402657554817547604357988161876797436173354659777759797702428111508688518688073862150088115186714102267108992697478750507300290803975880252534152313447305201903236091209979626251919885462910182595474270259730457467856139979822852178170041434387109026425019745138482733108087727706681131224037905361227222699120912652349250085013656424865961398533557311920182573462904174337114130185803942141472902891073391020674553446787560148595538105467300268279187828442105513880611043966745152063475847704449567093115052898022268865783167033562774351181105101411880752164722186580542597706964413806515032111920888782920183774894229684964745400422980721104674115636564816191319444352819350402167961723532326238280344023897830454228888794242515922516612689205006352729693521264194127476817569175986422276056096640076688638725498742215039544536257362335941105153009256831666336479476773877520259987368520986971807903581617818833444666867620240789088832952064842494246542287619685068885972656977860972242017765074819868185822166535662682666256020340273298074335597925318730245053184502473506108185187994150032266224095683348305432376539368198403605319416177344797741040551438770809254499906694917683719667688099735484749543504900547672140933634521604248760195443013525711219886143982128341189755502501426763738869620228268941325780192047698277507534550019502223904514249393027531681987725858629446153371460081426640170254111449158903541075544649252930084286253876279543590670148145713154780003233808120767375127832750818130517214875680594999362858422782735838164536382274117168758184602215372709744679508847896921091743792187123339948366941312648832305707690889745434536228818138835120949449182200061427785767726802739127839946283157869768244353184285660966012920539546166435911324162020366026650490444477720570192479367024180022762881802133566844404891575857233533821138904069737202125242782814906821498311476683529224293681688353479767685274284213500605281162120868916268879553258593649373149652971822166340613873341309282610841601939743528098602837810652310622025163575493323696660412709025126513005234504333565297258991656335335520142190412197607093026699620925001990619326740177155506235961412035965980884828753716217394693702521011758447459895822744499393710817333182461891943253746550688879839784472185357960904190744303463421263660874437400930241193475427433154563747829445096341182113030993283718137886879784717388677648079275697127954169775657575002380037578831975875869849619510226467812675715793455981359043024693107204460649071125982949111707737120616010998162793379109983004452457331671520846216482081189239615989551881458276913907401929315428906806290670519924589048346552404657175766242374145541179909502082243094285924096295456540629243340671285958146434288241923382204284724887819212721991316689630347052922790733924376505996455093620775806902116490121946552402914290321827740091421823279994838024178914430604317790577395682399340460412309370678863614310633104413192403259157744232987678129433733616741675831591230069455829317069816716195180176977867005268950588329963626272125049446620552433530418220778108523598335750904146370592215805542308403564482056328102270435314349748922527293458656367133124934278327323774686989503919343983708168577221822398881234839406263125319983923327581486507161707301558041401205666196068328710444245659927411609277364840248861092040636521487538676388438366440817745423599635873597091351896185764021238955623716181980752101658480238000555921813411487914694993529731719749948242615235013425005092895398498823665206787107184235157898154355711417258877741923507911429306613393905604348013716400621660967211205994732014991496010224447238233561583775353493074737474018636575058327749175114413994701890499288348554151581856084630378082870725197542111940527935478430770477951240313314623324355307443249044678013704985017777666783011478561283116537066598082938531150585819047731492880983544662931540609132962414151627477737226198499337479589140753428195628213354451104308248190699818891354713679393281391331154488815039897977952981861558790064923090334083744596920415474891084732955806429788600328933109292174584098197277090175287408957063692899172640347475027939651684831111322749040203540989935202601598954026375544456156286931738557217721091505849718023739299929578179398453817587675536022171066141497901958568271987739084074179776180436746199217802492611458578444808681038547812790612266548823998356668532852392536193773338625190883469440181014775004824679519147845128658328847508536054187708433631001646051111058386035813178219874276733111537811271576490063029601123502483703158194753300553018813852915910471071198592540872037595753618063279263935434713735989496881717865640156751211733257411630825049088429822489857763975139641578910247500540314053861684757074787191900582710343618272622741171461845690768971690482212550215380882445541324016445490141728322537348048401004422570195000318031742966088336931732797295001236341748116828144399531185878583577670973110220868860089742467045280533804532091661244733815867231073169165834001927012610886246977186830699532384643363190228078237651819139914365546073629927037040354447467693379317221742845520315393975478448202653265534988768178866117083989086368677643901330461238547190908359139104431436793248208776736657569460037648044082986576701253367413225664457647911809865157700729268978403208189654317522616090968825487694900344163385168669708389646052900532581087629076888944391258471307808105819338253513249530414993837371053593596567452442052280565307821159739323280056214442472886843205150082313472919969550156011904418855884262521076169985408046836806597187119970375873170312706727723740218920410558592032059891249374329143103802874058961834553145461476782356151929544766243871756079322887859874511632879565597818630940786192181600430705066628353699729965060787263975451821115235739941447052471853783629849040891849798719132103854228721551441301791730311601166448419348971939211820991227601029762707062265164538201568912654865607041686620012435756344357673104102400745206667068892325180179745492713886775819481298548137209361161289501903387723396783137822533423992806277405246539088504071017480867089954173243148106306304843910480092308705399844640489827947659810050725783800154755343388219862754441801318337935047234195687080885262976108336044212156245689336739676647762899688858825521321309334315499415835363677945285244425105791785142654728965542366825528291957021796685678427139154058541981713664420827889584919583722930421564976831747752507659361089483992232343211843010400540444315386287825300179028897123111789676911547983404591595390884216046556480104522170098031905484308766574979614098115274936436531781247058342752801468120011346519474971334461343220154638811744644109573817310128216753515136463036014767797208490612551828925473585498883780782554205031925791777438232831437195727495614773892675161937441695184206286106104755708733437952275154115425912323906565906204636009401269129703188837563797220974781031934266943025909595269753396037092911167148312092220340083695089844923912653780483663946510703910220430488399999167686184971426412881009909058401707558561585188276115813565997418379453679710867061747974493907834064225989177133104013645870502851484662610990346407703623688173127900732168749327184626473524599483739768717398472954922824312518604719212888481528529026446878752865422087113079280752270392052606402470391045178354196325308289667548704008156368943981466831666703557542444849056648823011100397682741675121500675397862825462094654950201748787190207696698476342405041145596718942583776884027019313959986914960224587325408218762969823326811838820411847332516309979470837454803878635851242938293986108520674800886915330647369801715552598767147445890680950923687632626108066686385456933314609039027640494279802667315116657912194554821574124772272164043193557636888502243549955742766033262077141383686021200058743147389166390575972345245095718686358445581538923426965704835325560697498866557209583458583461261078181203648155750961342563245621354940936185781884711829534727962078180343191773251119730498135469635011688452148157992401265611357031332944946865120363826340751567775905894771232875373689475355640655222848640040848364726742950784448429858226016947168552407641842141376265403699947878036482382948120269389176458136493933956766051163881513736983717227873837967219230951911510879731701927456173982041229703019506920147868105464508222800211825193145115472189554638740679330918820785660824120051283810965712115891184605076021387258027354682236507835579459342160698840507721560764978840915038748203427103969566532724544743029090120483849126464700099478114892737788383040689105884056444414025411329484011021283119531330460054991880481926453318510056812127575084535119835127819712777530815271272043441696897329761760993170467134996034074770209535998827068507254385839699399094751485977048780378593825410845137030702983949717767753391019978899095347388152282905515800991556616878081909512171565581058815310822579708958940777418331330458547505819604594075708653153414789332617471308383520487122746013266551002611585892153723522282538569292976695226435840398139346194125385417120480183857199725701195812231550868651240595796797259163711220441919730055786482008876472152613833515734116487863693452499579686947866485704645874510960232196316629013358939440859524475965786253447096149816899224175706351329240639894974350902003655055825954072584865755475802198919480523630721960656109927538253732874216553381914347416794665883856136538311693380276752465144069077815063579615334389263396941616857744010581566952296686099600180338546494901818195599338947315371667824898523944970121613684552322369656413911599866511506035562949873075864269548522108929255837935098740766298646430925900504649882950464309670110017927584383865483325718665397067774957017230257451095579941335641925700424530020861105228936340450105155720494051603795980962381005234675685157660914289830984563219895272184877091045650029072949178123477410012121557354355316069270363135512509614834720803285061896145876230666619953978575640765832639486755538255236867122626407135495050485199890942047597102961043465189211606094228067194266460735527714718380398265620110514957752501565783778447620445517036041252766018433580276399597677697929918943552319437020096084389690882608152715314805050347709226145460050286266935755091448902537986865533329865898454693128637188658833439222259152718929437721815564768684357996040875733043383143576084558094507412741180327415073972124819726293406933708137236003837605876527738175980108653098029795748011757154932403143259675182444872876847230809002730522818493502068331577529759088592258094156116596505691749631041141839516001372034076687697360419601198764344656196775181516424378770645572285456766026212049344231802950564038652871048865617644438246583602816183010469658223785083772451616720863441695671387976162993617378163054833000548543639964946334704181051709671055254720844232701735428886736543520763456304815908881579345570793239957052772955598661602989895748553942869115663165226964583855358795620455834876729075594017708391733973861033733553471440215895595595967807699475434044915357495911129226093186205219459887084110642829250845583741808594144035303429487175281083621879013008625911626253713596868247023553192208776502985485751020116903892501656096506763637204206730257547544721263486679747044616464062118727050816533809021218073001927421397018893482221222839546794021784092001849284907915238145950994366172464119076800234957162795773215969904601180635621414827329110284291407773453953571074356796521186297424499471703303475006460051881468649070761265157732483341914309465646537368964992149841939094202733421484804622251734149110041931011801966718205899385475038009734648466323334540738825086442988339950802115281864112560176574854205630338763681343716483982045256055197914756546788635756335663599386551195744549489773255616855063737682607666171326363420635505453952665930366505204638051270310727484769967575064598518380775724995202208305878541810569032482043229376255275476250794814638100887200332799884244858906517077057255529671482843781400999873324404756444336886482928883704320930677379078648671027085952976568159411929965837246049748388417924841015381795627324406656774371857438892406232676111020318419149875212288575032527850150541755539832285694882328274034886994540230852936083000555881609691116715257470432245316154310924900641969025417779231906310682370777127091027495854924885456812818713170346968176349281384029274586330070080176274530661697617451237607692206238610241863724947324600200174702910252334191301187992945867298699704824968585508346150793889429634818032982275014587777063594669175494688741524233254478360026555533406799402952785566054669108190137498745557386595380561548388878973463856234709282706766219895342905370817988760345213863415272121099661202834897425785526985721359133373420026055386628728536401683596366000204471624934008824431427970533536938612481031978309709881666801276279565963361340740264282707306307168185593388451339659908830453011817220956329881322746387137753872506440966448989608849550780078877947066162417753502752498253774988854760732243510142599662270738684454771491828028864825637016984750049555575928930319317483769783510887795537932818069182231903875951243997098779753262079900224739294280076346722482960573462088213499435077689756082903503551160410649410450190727718396709083153176942106684614598366937913158982287380209883733296019333449607566584860345189268527969016652923529459560134696165433027718575504516507498849882864206937573637102349943174974268768558864223423789822647518908593896791989088864068794300683881280299460368166282603034755014199987606636630862125414910836462425377083275499846568434385533655054065069686170389738884393588400395345970549519013520342088249561571277895245038563906352513357192224401273851360434426697629645848820192559515403440252561390198006814648071585843778769899483649099581836483414964116198743079623702779105742993915417327082420149518708478632410705661783734466677527281401668723700568192206640575671747036985169852441316954876631307926554150938403392560129871793904692050755151936732578414410195923771455044619317672296286684490723164011636447775854375032613551509887724527453291729688092175907087121998198002920011646436270246427905487916053292933473652267175850029331315231229327699346136608274138544310225900925847532048470835640246670410006152359920543078906350978019369578727542467355242903544501821421653629028808659598316443915251143899710101098997478637621686604739119613621231265225682017824535376983382721520233226775023530667947809072855759519565260964591494401300589500862155308218702738589818682129198284771085807234325221028904793515314385581642935675217573497994421522327093799905426771733419626780938988567812276457268219984882817915672142072646871936006885919879451909793488759766935368557330649459669288655045010661791183471355471253539094415964270913672072474586978115233916584531895379696978590945596344539857690828142305965818729548347942104532432494388833598300607973098513530944271673885832910629477784598758943538986449507582988360599416616210240915056161502913917598813684685715822528653485765664676423248850191793941693802592088156248484157609848137379759417297209362331146895212299856633742145295396675289218180984734701206603413797655960388984303571744332026764235389975712004906032591439244524829888832370291691606573140175170386921605123702639419144298064117777330580566696048817909099774115712372435959596525463022316551855794425614993701769544519981878244353441636616189428873855854516463630795634295279634666921860212545074014386452510511595115892642468851917494943556832121505900033647675158000694894541023119628886869203200690371401389889384472092442697895081452409249611863482319335442857452234623182425241377729709238120848337327271961432337900648184252517920084928979628899543980055539698806126972161290636444092805178442876362171109519276115403083556123414804593758197784627407627609844811761388783167973487630960927475648110784138818081710303397542189875234228565314327349838471205159903884660488160336496312604296895002485750835879535661877501796162414615282311918264734094802519623543736335821947408471958797941666909459334827287140885060015016014309588678388027028077507377000103808717267273636781023350168834713551124446828670650800874022238164401284417060692475326022835315322507209776797524842621661129218392923152452271222085601117408017806835274347249262040089640463043363400918537361261518421173326009861162299636385964290086476032834491426087581703479092366595681882002171049931571435592816950835698225744924777718135313637072657428925138453472660314962061278830207131808696078067553373052720005101164140257814318723738757416281016792232525000517165311263948839461154094844514876291859750284543239448201873847155884481963896513277265918226099303777745657747098999412554168731466113109931110290883832874396487702972905741355584133978810542680597394664672717856720736370154761912910644876812038138217578686984359534778187913156644363071029493000918184120219604466513110412377451642391129683605108996750510468288199556542847685482531233161470187170680747878651015183769104012145657867786560037021485860418077742416069802274725597361822862951542319829230255589415670447419394670031472993416908798723068218796202689586889735481117660356165808806257727885213577730158594434328236190602124865904749753894908163094850596454560672956795984503772709306685216767482229720198845387117597929999716379146456295805545219026709284321938659878002741615020370766010013203431146593818008756886710078250726206338049283378154323647485766221640540297183697072024673715025620236422253136978833754855495801139500191713000792698639323437464665544787062409437444492838806527081281962382455703091733724294311208805469921524531662484641976742368534816642998145392832019380770424392421285116155254117705433386540858825249360294272497607863355660457127755735354460127149261000113552123020472832685910426327491348135552721816742906970169810688611562636186727846647205312896071176213982352624225266095986529760624216338212410274016073010017833368429976637431646069037642898131686438697837146379636976372325116317606663020176080681752631224098334906728210995262545291849648389013187349625352800306083291881384098607002125759951770539555245594647852422403015650802522269378329288811316022769815698521396263853573116453581440637790769338897804412790853167480032904188766958033814865757459285650817528252950346051411613155547032671208437749717291363425964034585016734839747694021001683974203636186960551271044134153922908040606186557120075230252702938263724606376555544618895846330740335843202320019277405799398751178478322518076671794897306106227489214683522524152547679197683972141937638970153332881322223902429296041893474582018417363600886248872748641140232598855538623008342577211301320699772128171556409090672358606943876307675141133166897060929247523795188944828542550369017559937070740400240850178038778357340001093464681902436821810855700173731736939921261319593823954029007434719809293388117710033610319570487114318130111884139324769231992698110607561111589217284682177335068229589478450589040716111928572755156926194699997763056692370972645113271786381814979436742494054905952630511073523771882868833785032258233673671578052635722200464328261597655789576509189777710676891702571553674962861225898694152293408325691490261140779158138152664293894528314273778383800601308532836699158003009852427311947026894542801745790655479829047175111598349898366408516965644410420328245882279434603194590702647989066622288995718619828237820347259820121521786149871903983594439391563068064599425343095743984126941101414394911578216059643703363504532498084623061092705672602996778399864722702671011150013610560676503721930100701210073989291020792915506829637152387379503495445580759912589276332141405265556661907726659178773712110055959300639144685006369219871769289974615328216086288594142635695856330107297349179756101262508634705466772001424066833521069198374276144005058643110661848469617698732070846818161388015731187434562129157070529367351421950771548851504362642368587178657530015995989285407176556692606205408797723050385583841524763389890937010041211679721849111573810987319694169612621377634117784029413574567461181744920129650338587652993192416670080960897699154893787074860315148937885228281316798410143901116366737913967238244443197082390237986416531308078592880828594137888748873804146670322363350534725395219873936633275349992275740892725011093468767979871247248544517191782432617710180624874628799016025033762501074750238902127803319897896863306179858020006776014807118380219997626221661523104819938201680396317000996879132189175449592173274763822606757673889993296895005245387036438392789994283373499409938235483978851376753558814456877931385062106160940266686706843678606194160581467179100905181984442084768998400981288789472118840520365426671851148054843088304029483264844791981397743260589759334500134611519374941666465469699947979416321850352389917760578424141911512690510019244173371551681481886743542760874112132866089959207948499178686406970080830850929538722768662778765374253009226666443353254544490796308582673285747884036841987324894703568768601325785936920690100762118078069182406951329675596697168178694922276317911494584999420513833100693600537243677424533204878974935069349297266013932495936604732338278630253954416390063506863877639659987744167957214087875995480368790112439416501872514621768925003242324255598298410767673667776937122588892996260026200081179072072745774428286948246406329895901504777552013654519077373366511608909472112391651673501872665713003050826437568413795551458651547825158307197828128679410429818484116411325502997088273984098495433655213681455687325978277797445306285795569898811533038313445368228010507076689927591616859337270716815079978053023311664023263263373494204302487464378115879553765998715314356097760308298112121838400634361956930843871501959117747821420363530859884907539475355449534550830930080320355951709624712410080545274485377492262500583224968431205430236631078422765830448654276633053342430248990892463459343678840798528377193610900851694297352289864810508918889329543888609511546089602881072339537275198051341591284531388784348490510235937467501115733096789456283134815591811104871817665683522720432673432415320875744990119116012272662722979274949882035768826324984671924711474996270988946755053377254200032010715932895767560830914660982541666053366470477840866254469525327282581216220410076189789310399947211346473177286252190538883300420195940833502032371946527343670556837759889735736474537200995081087402760585929565682473874298092565160193230573800268930784970903487900543186887670232617919623419154893654257668858626711944669982542535773635729119124224589229452949723770690299107336407082703307429079767603974462569108707098303178120215430891206186478148897984276332803864282873763379190752496946081948912818465044941636523981902510039050631985832021992013927600730609748663756570131104656198824775893545962379656742078082809616644910380554287791604582632681411728533076519466217289976673695788584606634020325502098785521434149141311671117994055505473279961169308309267677055564481140894758547367673540492999619119643048819830653160064765134515552459963978840076506466205025387699922649767534023066356421715436687931673095722084026233115780208643921749159410468411941728126632749046483785372932148815080600019314371629657447219075029371018796887726108261976373785815363220284992691587314324718329493271888771969673074021237856722496712102180260525219403364252418480512392935205150618074715396783199604709438702002894418728114509624949084268826321411912142147472185729279014569526575116469483068583867368592879561427620572647799686019036630090017712953044158278149383613156938018353201222183100269454438080186625114546324755243091656603421954948195806588894164485083299874826650408633817219115013232638744337336294281547027423324605010614103382735682220092957830543414453682210708604637477078550354835965566783396962231348345113129184765015000424129211485458429539302614126291976569418131598022982595799154585183570928309631114161731742366146817043703740285543818627830364921444890560603735757734173520727161430866959271966664151103256224377276086449020202929357972122291200367698859146792231949475467385303190454522989159877382391147646999793094681979382532618794217566639612981614027628144731441336604713634571296481311020809575572325367828173513315389562841848423743099551411838851462520830332369450669087927273391034315317332665827848147268864412743695718218728451661480568216367233069896021580032810041010862605305738707412445992071231279654391957054855038003625447854918904781435493685566688038788890143996214531509736168751795939711497018398829522409835415851792024935666249099125600614755306740301053341105964654343680287730279828684671026123768072983462927193447837379384091320152263086668809072295936702946627286003567392132091715657296823028456190596724914807135875614997402397835908429670160961099549804861939011212219676779692643720413523807310699866762957629241385549129521564796834786590565202453887240187059807880625400621416026858408117802668560460257816067502737164854616817541286897914408918943987112280507880733369601122411721103627307228545513789051584852519874973537508571567578765999659048357563319177880978565866840884478719595786841874249705448023020536684565512559096242113898625404002649254540561976307043708781917704345935650562347286829549052113619630179207626599521283851506571653871306814356975299597248487476164735565548250419837136181644315539014868435298015734513467477948422932412762005513526337825030027817846282345146272086140449911938732651475890295487276045499638037231392784146742334794016127605489764195964625119130471194208680997924455133732240038814502859985979634893956402134608522224351823058734601561692727897635768239987265303832069001919312471539620806989394164768838968893677487032644964902135538593844499251672696229261917140894352059216027671826423368280871957885184452441470882984136770074931204549106953185047246960003629428899787635020168024783335344343283210182452394052537341151890176586243553584741651437198039777038374041265729638037165682260988130431184470394381363946328446243800371726990961436796165651143489932255453168377446174676284089932940425662715755695205783853292678181230926819883713944563379641212627615379080428161476914368287674894670642827043816915239331458240699227326172986906464042950496893236487516851974729979692200988756818529455858526581015008167351951815778155075290171782680526991525687784270919034782204350270777444453460869205750149686052117360692179970989223720367302501517596231037259858195157717205518216378092160577338952153594437642311712503078533021143767757624164083830858333714348842453576504862073765490471653739425150742957501002986026832876100637031675298300623989368433805673767661252980911786344587376074880479154246160092539116403262426122821954095083477928798255573079523456476511923176252809323690855373872897344524594487391852471716776583747092788193106369254919362162421532357921075266075159534359784178369376480657192169151177028470745729473447503215039531283400818987972513251857256875886696205369912394532235892052001440068279158885650853921360797878551223641702571430688499590370178235611833119163770971165357912068244068524810945762290874245330428614519737478171281064789559914802758833446121583480049101649766724798010412511963956194012112977165017199788905958365631190029692487182042003698317153510356126061149288996536323726878311689851112657718098875606067197066765567180790393410197840836128594954079648875040893174452905340998776592657661127084648201823419831152707930869286599484931653116521628533141197540494720665700426782591782046670937419245530261448614701397203510420567369215059770961003555407080605598452048299821629368517665978822728531069837920811574359809749167559549518291603592645876902400150569438648003871604086779647833367827662175004428662720736793238792054272741538189942427181558029844393246278577779058580074636386256849754851929139060800908564396011449984672809383291669134905413119084385069812663774677980044801392318991957900751612631983665696299883574584436682005630303975483236672908596855596110802587466826727273859855461996650211758857078341894135175044039273133757440895524601606777097291785762754075256050164467918711365232016126893122759454645724060858018966727901754109470650462794865911150564885355498985564886917469588608480476148763847521231955383810811751972824209890526318245362179523031060216231223886410021321108548455027875248615224559372932106019730622195387116803067112944758943406155885289305910517588366040266561306024296018981027238568994040444906690475888181755042560733724198522192783377431649168791270425779504017082185412454644209263945663341998130335704914613664848783036812917213876257645598869349681271282330153750279413524838226190212153981498937938231616794022852118074570152235667969092644647097352428038020645896935941201135879985926657573640278870404367768216682550362189249049523702952692925236570182271267903342573753367335901699351765763032284112933353311249003953616909564968349962368476509966216672962381718830316504504068343860280664378670280525063707543205732145175244124290614898128789817403953789486057586365190318708776709666447896615681316575968635141521602380420182665741501028491049721540424682416818092957763228616716014864356149767665235422172224773007981862283954994560767178357751332844949187793039322265275446474542787680279493343006050854674583278510729577220299440272266904136683143958676801967680638137757684208125420483402864131253357924164494461473929955765671034110111886503279999877696984607887430032589079627054066348697264079562268245261368185368140267100818073784438904326130184595228352967341973775146841053996351322308956309089766673224702054462494264581182177662963962945000010800193409137837486360075979622142197076205076952762591664842509820358042613419995882154204702040968872231392404658262576322677003587940585288213377969214262622936972197862552761190713609476786785887623588131022346917997257578890047582916347244529410487698625395488352584918346070898130867957168475256848424753964252676964827068827320723953022007492931078955046624282120310694817949093156129747854369585955816223495462771614260923539809070679889541361021520415713412284821733423199340600284078347505618777857462961691795717439887738028055173885596339454592539943217522911412690568962709309987942031558798239541344313698605904089613243296326051666268642568668164592265232549220333335790720583144831320419047572042045468462568442455112151357987434231557673373325839777323974927072841449320265326642622852247395899053523482880970286151431486792180118910615402571831972293255386007716061230122320891623893937102549664002817832492499022911529042649478511481148644077273727995025415208241184567819211814455615989918242329304618422963032574820081867065402491417836295431985189867933101061285855319309546685695736277178295698253356834958744229631717858450517809926072709552213220920309683246144993230001369963251178709891954119026734926436760769408359385912924460827648060532927854227996057071235971769521887917303046637511499524179310318522493862225567111104398051571756014164744427773661055877519293022382403498383241757295083505330338497462158947007328690089006647197198681201977691366489225921028936301330612777427455333425112842973621474450389453749564279621877748720532999779332971553558131936956039780878572315506734687927959102506962728089950964916667375607512989580865803834521377333617582115922088619281838086048460548040112176745205771753849259926960389700839928083645517044567069542948363602903927727713812797528353361530507237864810007451695258529879830534944804739867126369628889313289445879520990689211880340937273083243078584979512583793249792061393748639994872222311252969372546597380716058046769759070821196696995930092098310411046375435344114046737558314401231468933851349575606909891570099072963840639729240658101399683968699621047149883665380747628218500476256612239435935449635437851469627480209086754510116583423369025177886647579488391639644089417129347884065493863403873826104541888154643249577373526721873450370279326148471537928360381994159572607889459924310323152406394921159509967165642416421237492471131409805900334440112090860322339659729346824831633811067423535020782468066999139016354806470898810289804421084643571750097466528951143127782249940485488757124004882535731666943628231477385027945984976844526923650832106660334581088989634209331329326814948704810750677316236301499701646814431550934403234756600284422865254812647740869920049776598518926848125363031444083504791697256522630472535530729514792902926350601612960168854270013214766587764246014646887847900231303305226807870178360813382689357455028385287088708026473763787609131160350737036175373291882535849316220749013411733544431587363258241138962603273164534649558756123426541346545686465622124910497372158332156214231450072055840799852337548852345240398543182509703211346921969637516398830767423747325272627049691814302932435981414869558593164121660498267067334354057899410758396405121658956801927842436048764607524654158859789278393581079056260713477865998161194713222498220177958881079275008223599995974106586438648293367930604404973137763182728944035853496329330194397208510179483283727299319288685031241186803140892172881910162220242869574003053009721948227855122115721818204382265713916823095337835704886914137083000932487841676241293380403080063324282193525529596705542677111735177367856629060234446606556108342914752405269821008506957080607389941681662360283878711951748318776123254617361699009387954331645187010994385452901567531715624641414685499361531455020612918344082391536041277992535225849702339015592238978520695029925079499470853252717906735875903302875836860913468170309639975116110764218328899414080980341171453184552947244761306321075958727514648594456313329060834849220328376748109217361609694683321739341029063381108801961804950771081755545510310662797701985665203324473157087580225890454238741756336872381177030274184904672015355882040888851344445274858213049059312872275324040144396571880615938781506425982338171147654748146050103248288079434853362911359290478424162460860274857307385582551687774092303469931406528815691658874275416723768787521421093346439477383903877456352074195639671033048792642898982918621502259675102253209887494851840410674102786910932343121894035916617218635896664376517880148929838674118933425334768912160760121999009440263047539470144738857119051579445154294919012847995803745471683714810065269564630859626130604186613566529712815210999816998905942879736096152183706238594972665095701583239031481821922730690457038002715941552335383174768674427593250608573986547591176249104263621373371505683584767846910829934811744411881805475851810304376737715105827265547138128356970529109002144442692066925146928504897749145138997094559318745178392205793926891479868142225753790795312301343526446116281119263393313730959864963874555030360486064492423088161489221413770982345069132143943799664551117458155474924667409722781676846752064133604595052950042385308693700458000155999599472173495972756020671268557276905015090734598253046230607115008855087768444358747893793743656088585492362945181606563535853414640679215465600574972435622418747549821743914153535912686861735807089873192177165308006475516217740877373116519377745882254596002640906993345625451251449928214159981307499291269321949069696572265258930925286674862575951554688027621079429274611912885039015129075320898313345020036932878318764418810888089712491233415674511850484747097021142636443660739790695834024513729592477191375308885596853382549172945142493755240042794734559188442485925361178173597806107647274329080854929833378126625319856877416369758473100040543397933350473565338917321466168211929246682751956920502967315431780665575742334546627158930590798955330153642119792227802817820478660732201327841016023310512706627911762141195835778911262663658223194028599424334737690956275576570901269585126662087659175130639121818047242313129766231285913100668359464613534107839073504011509694933342266801225985490663335103751518604044843604232526605682333423417818883047224673487966267430195189366019425954432327904610870971529139175986590615868284083973141130011692270466921864672034208198706640127608572968217191826949296136429829079213678814305904476156649689438761926005251799043834294229453153343079850975343313215001363773909548562419519820102110903001489990334807765164897219213850222719356113824873100386260978955647356110478378867411486036829831665812502930747076738464795731109831754161863161906001547375527611712048128021968565728471623435422504423165781669764128434857617633278091068460003648930759610430587771863338032741611152948708227395305865515495052455289587002719332314375519372428001003501280134247723425647856486569073830254026306622351205806305664477505462406849277781335887994921706233774635356599108424113043118987999431020268561127252290158943855841382157050428986675378926535565703264565351922073876998926268948523188564320414643207281589097989250935304363490465643491478681184267926473374225691348725087273070793589524523459251547294153865980314478256229851057133927998528712135197899020645672617891195216276948054918548099972314556787489168109069616375894790650569132918622257756934348820550010525934797636955166809052666557062907795091036013142588601938422751000302270734402609941571999894113659667448399776558285906499621801878390543670185183363205585679465489973316515080950460988160591450169257755713667667887151678273645879101988719043442106193376513960796190009430398945737919548380780156814033083818764275519667051430418043437546483060566663056958073143528912543379375007886929054308635897965302181238143914540451508246183424281027435496992845582504426140358149895931051429017058562709912971068007274850437261856331600460733604994340918780457802527208373581159191493063865629628178520229864313291526254241012200163265515544835358869220704189921163121881452716453675769120628043427852795615620700035927185538058244953087797685370289935820792899568205567319910921105792573269457277567335892614150074741000098136401081512122515892208040798205465439968657223220508306214997183606880872849358034439029650571235292337473990428783383927549379932232630833761683738114018514469078771330863812367756516071085831511698966688187154041177543348267718891960090977634273256848027413927733924195145195646220702030813702438614271603764266781593456430541084288162856316858396702116576792572033364962852581156496498464233718917314496332935416609488190249490646272029828862174984515480400154781499683241327454134971511259042095441344478597392191428499199327340077905871377170178369075895975871622548171515799674008377029558478482940951191469289236725320632485838770885005969936254145664449050387898627042170118217212547402723469251038552241019047554097566406457247542656116494527466114592446713294510649924396576950372658411494088096084718147414827481955758143120553170282086797027983645602639380730861236654385479773027334205203393245461799423024331408997783233109734897141367699901302191175558332011256418791412810768872542851618156292670818527517078338568130687463234463044727020431039234055018568181483536744357122719532955316779343558817338628075522599166923727618608392920365704778345270386829600691197360499901219435890989307495252660117684718474612113343319956375465287841598083132776827910702714450923999411229968534179987875926651600808514800340627861294349480716239448736611524562494278457647318580802265472210450828131577505543047591007750351741133215223765743134863728844453324416057914611328801267319218385614170037419741006236680848069276339772903047914718956091190515055050973069601463693479850241251843716404901162875120092679384180021841750880968077526284045441984619958148028036114490390018212275741476618656242164536604080618842453241801793439934068611644531513645010680137501284027953881371302569384606657834683613885372988226403556503536179744702254243037488288405057022542067514604020048989619168082973489308066574813464703405111748078716588230386986102058068728756463871283805213825760050354034791869331809111819809930005514669184646375402926964096282253422333927039596039344520147354866582215106219463797634042195667799879858820002931756128061971624774821506390614333228557136094524524069076715383640151624616010100660682623023529828187504196901138291138139512115421000074671883453509279918123555346379047037981842179888054921932708597040152726552898833943792371557489814814480231310219344754498875224999865067487753641545122157589915098077849982348209724291114855923879001060931833319771973821206366112479351638613289407458499862866713074770371849888148840882026653220850207418823174649445013766506963651553271381039821532701876175775041941169314115102991682798388669819736229307176624960916275130529248125661830710507572567771544662860982799744529418223317203956727266721223598731355821653921834819085016819531280497851536352107879161673715253482637243747647045962006663339005981763656697739899619636444197906465794520306990597721093371506625307232794270082291432835520151670791750545011236828949061711068852077423698021294390526795423648388738346257116229385079396023149628063715777924615833248058902573185959822843705274182138094196579314196767905388274129520019499000544373967266878136271349098310133638967760983890030074527877704193038332073906423535044451369576296178716535707565969981367547912520316957086896716927306537837992925373575660021278261123374597591679799347101841739271431837010220371447835568463418834764747534460682973919095808604204652384792562491172052390937317115354371143109921723438618676846855226172450244799603365442641770228088604490598318424569821423192831748318192386011756442898942062131660898245245972190022991965224446055529636607099628910111036511272579082679763507696138400089841793696368375110821103917317919797433921646216477667890872392437194289720857559825194688778200683403309746512152950680842496623244704748229835351504092763941155188060848272690525002065585113418360819333648712153372102789126209436361968905227062124193749885031566826509349408058510400061051554701304548230171904535399769720962550282309974427569392208563680777361903046549528645938095039331649435196737099814538810074383189228458312775018827235222948160230171255988131188439608509396737868452941378346861745241938079693704222516889451320089373420124603797525265706672726086542073008572775521819610249612266602467327851482251283598554494676580396543496219577530232604471327463347918441294889913484800470214785464071647762662168979660201706635288102651298843880924430680288970490565933295425758228892265781182968417598860223383725674478945213526606555402853450202719241163063773739473621761036295203586069245442244126583819406616303991484964113603772781574002378163643278317157538858357180022463194108854173751386185340700845816858152968455517262061260690307952230841203136501620906313143919369602564932855748809851171820871120968980462727064951403585799269801195148040636446437538984670483040585948551446229474808578973120680604856377036731784127048810177172846139593777641684517534888436534695319090276308759695508967174055537078732784667420854120076027835200840079919547558169365025050725411033848194060516970512963906313892876656600840800748858673194990285092002797520780965093297890976827238877993338129979940650975647992351097253184651570728641094047951690716825794016316843780739524163088206743022630819135191805527250790516682989400334552521685117858430236821342124363218130837219295164176311806908468606515652269573090530171026627106601386119300111255578732632607073317666126348080970141929605412503461527094772439328980695724634118929470415151835906625224686384020925213826186837530061217388220023554323118675540882416661098671783169591809549066384234310155127532320412902587905631160353084802626277523606743004015745352226160914541660786641222172758368573231981477236629048783244330710223674896104238512524441071794400984713644568107837862265622282642693477795205626229683555062600487905246774385413934286222509520691210746945004080045070581701049402974545346889879240682229545449734827553326575620260266905110243803576572321571959437762772365363420867694972502275244669398914680234466504896261127288255459038016843869466366479332936976315530267881398805803466267870497175443479323844095418644936638400134557117745847847966254491796249344995940500810668577790699812569833055216858815040289566769341149598370238366214099624343104652769447477031907519506767944538632322576939709456023888835110078798995485849945138158460412145144039552821407654831175236371286051512838292475527852989872293053929988012635544990884972917565026540995259980949632147027006596108079292175796562296650358448078934797240505883598894043274019855348381707694336998765130376895712912023680629092025848162760457849092256134938248593214260931595050918991233094899493504677785728280880213783118084757494367753950455204238432704289629184689501328900022338317355357904133615648574703045379626192578291391585201698779561649418344499782571389370433238909736224564457587106644542148829178518274200850058809775460069862991963027243993629483792262679182288946932909348604258482291561970317924404707505574742666176782669938753004353121716059763011383507949830250303658554448965844323072334665383104198149844168162742673687355492547387876434436912579768106404202718782954075088791142193072635555642032065338314859437785361112481730620634464424279303333668178304120505203218781955496088515271945297699796679983478680637453995565457601196720184766620382133021870409668652216618237240107351090813128656037257806347020033240281410322467745281620568597652954403469024052698788685160644621964000214475352822465038573147760848758925496588168984694795900964765399965397264358505429164069118701736235631079162937818092043428403039514256709045754371010140916729008410162063692116756573617277124590861995758024759850795225972183235481413684404070307367755271537992831595317214294881660590636480408554055002833811865308582982941440709130953999626715170042877668000690720795798556700571455312122602853741526947353654633080218614073869154035493662073167944490018012145603622769991474013732499709941094634460422552359716049208121617901552017633059988589001690730410235849870475547191559658315466629494228856889687086367391774478573694215851944641693769392979901402558550447488556657215188585112519522411221891392919672512229576070228620644233562019905612288806231503528207096634279604978262921494825899982166244472444737137968233719632234989424907142621884271428160860396484658774347290516308036201327231884089759957592416472763827690080751255430832294435620928087848563815425950848083094307404644364412372108228607622580130523058385201554936427461185209470468131735613333227522265109522427773516845038981853040140320656308199987170646051116850322860826753747209233156925641221976504873650392290673609121015542065204610586451599169909425147828330587396576135307569576486097705843360500313632052899872328610600057889961764557441036840985933575137962261634788165954001661142951960658168516444926300639931688468645063021597411655569857519548809771443073077254663608777050828488209739830029186891471027294257023924511362883210231845540596598815998897733942124157967461069303445535819001195255418117001761754315305296367192787736366438040455208279979623172370987197706407248908240912040122803430079181474635876122298140145969245489290572769430201647490973713867079075438504824114629092237190328367650249307506737512129537897328405267892335401250424875482143303910006990820334929825053747016542253572940516869204762762494440594009414736587375590998413441273967108254910926262535521797407971259457421243438570394286704033298398949682766262617556095554896376356442580262966879792889584548320286219384471809075901963613935723836160854216658665396294497250166566725129963648708401869290468203302645383211942348960998282732737318695952443053761609673574674401222434063834272635191688575028346569154319044186235111306009519214995940150667822970267989368424413531301192664669635643877624183250075063656306628993328572392223941420896271313790332771220859492758682331804276201875427636971172300772590065109543738091135223939153560304322648650098774021373257282149260088105672279248866391928637304433642965898851248898408118162650800683552368926757652129214040761944682188623157468003096276479866651587400592762511292405773020341442246382322221295341093071720577413615642557788459530972723467737178794114775321357841690189648322196670355334590616139861339563068668856561968580100036316533230870334936226880032205726195409487557125099857000406705207654106152794660207006730524856142919359314233976065051333022670603565691572609530122841929289892597136381660077400749003919328328782822733881443771757980882849631943478852201260101683423779224907597278191915496939094358946001506995498315130879598890537284134117955929900018291559910108232136274036073542202246568141602398129328534142252307395068816858654331116214821233989122287423359110323344219535945270059121228395736432968594402401625670122137878142245989134238834156683976478823951797786180638472888250354008574708866632197928620262977573048831314290349654743739306690244225932006636180658229951602717100510014933353394781219468518017428427831670990768770232430025263709352847611437501597458677261642889084563973626990717694650438756686164738163348994315684244182850714866084586812489241133184921372639534351903827785719485911466674698317085566870295816239674316702166817267751825582802733732922423697044598095335771674845102304948275297245745981172424367478347980334834782499146632390882677599888184055297882518181125445884733786723888910235134920622420738065346053949308649522768526060482386975912673532106696084940220162883994506405712961389101679238929616776420915288274142602349005369413960206485784667087694617240880602117198460093681053442716230438486057963352040003100476382222316327123985786044820528798615085064400372260989815794063749639747134839814226428079984939733608983689537306480129869607499823638707984403053310849083712948781681622987501702033088350864555691453111643002710972734642788521300888155394439994936285957248331580825507803694775856700284057826122507905177725962414968961590032405200323996356771348202928565113182206469522743015157752375158516049402746693409733704384640462975993582011683922629506543006955358427299967494817633687442520675005154900352829779855715992357733534742253555281850483289111948657204066674652438884767027088928217365404398144072820838563986771588412843171300850177975227354736998491905364208600593443959079915910338497869326558380237279305925374007580033363204624086286379823930673759032486397919198212015195039015628840222418952280351167295966357644267075454197585853605677392734998060514073296112233372292464933827282691286084017545131798760377960757644430157963981300461710271768554648284329260389011285676937714872607583719736808454922198829038255155971499978652423398245129544744466878046896292244692866826559244633289490500693351545173621808526097018637812077814901798984859762253807218488808166045516584160132037857190650788181435214763517753369642134302303422019086016304446280141910323448358862136518938667661294027010189518064025950284160915610678194849674288208032387929434017191139843668365019330511173741330713493074345609442800415122677381352646844215255760192235759148741819282854996548227775254148667745384840963218476614362684168993796093752689041361623170503350620397821076838835514325960505224231611145067549375821678986936115029616068703582222943044903794299461462411601325072025162168840161223985396220530557975516716795561423831280043282057950868005966275954696253080297201213707250245951810857423337127206948038151838033606867109691016745621181861646116650660433324607778651033403876949290582706687927402336030662657132937872832405689589883909476873705705382967645211306395998057031907909912557291006256333549175213185225089435053950478561992580465285189752376604597924949460275824480571332086550985971146867325250945931929355243898103552893581550468967225690489128326113045370133556690593817367331853402341353184531926503527607559563298397360088577094753028556965928707242775723499516922118278777432649262922368439655271826715589104302024562118370922996236947086713465511830286288380057025765947298855918017793427924183661356682412453691611496930107282645776126221269002075922018323841580381157647994053329979345507191212449916937792136339219100497627423855567489841763893742733099956005287307297829087809890386784614563562135666313114713457132646391193445747711212346899280290949061817282588242270477907207401536640834030434543215735434068974590600794472746394228888157247378697311415323467286882217114158149825116841424378246556801091020674440194011220007573548808066326276505051249620034610955353486082294948958041409627830520764227187737051157507268448265240041951696462536911385842221164651275720868416428885556020150408522735358228688338526235902181224398231400352504231041690537489441067633153168812662096161148970844992032369543030884094089496044138532082618456887208157894028817979073565002622111518929129017439105304331143872647833961553629757357948608259992102998374957855714653320662850849311352944644154951261479286504130934147647852449520842171069583034582787685056678662957064466864141732494018061764744871666792166453056450869143867945960677518845285480311856375982882329025478778644398825855517136875150544795989530039084816584061904291700845811614488656105623137981455215376835763586863948943551485769501107696160690675051078962477651812779947216516512679598889166093419245229883970654700725931835960504279306206658680279000949611994069651589650205652681576527144233926517332114291313072669026399655678465688189433520504294826266066260001696787764404329317705270357960186586684618043007177714082366398162546383574038656971911904094991828317295499046412548660921993710284490435519955331975482032393668650210165438859902397445393710922672642108602864622703645805263340279511693632955533060587624487738428149070708348461449655737397781786771736219103727439626009337193732020707202733033741205953131070002159066176575207818476909103498070588835389701528274323856869131790585085259084638076460806300820430676807264120459293754974983267816316889935638787670803149329292736563199353303543299115222590122269322850168681466905679586403869519938210506968689870112660276324604841636708873290399496835787942046657818835840089181040998058761809509020550124586817915931707756511124075713425326631440025406923714148411077952763121018412413216221355926561286530651488394887866159286463012814315472677402605979881642018418625824155472731843863267914100119688068392999408825910382019746695957312807900712073129935312236491012175128524803045280819441393223425182963124315468827344201238957018517920712252860132889569415811925451297244943082068146387176949042728754341152213620524167800728404530598224878559335436665764878104350612288538476030162556879303160098716702670831419293452506332473996678144516455760603381547030573923421845882172567182585079828154495183039064983194008258396190224854026879433504527244763200619436377075195409947225884363925462221900313251985442575000543125883581802016637891389110042650234672212630824474813915420761594109411619775454132912390662597506646816126933852289221712651917059668810218090914371843514782252675549237958184918476383156535276187994854350685253357702303354869325081657935223690704165899433185567487569396167387880060307822416479241900175359462788645983478032470751564613495782087303508945559971266320408204914706266644792098906424962464904454337143305486246619519252084524673817777202952295988026616837778283516825009438965654975524230600668503674628355680280478241198653587672840595092129173067513569360908911375422877157713862048456642053439151721242822098306136387639705309181257215661527763476299015374698710866142228995797445938542165596212480106108066986781862375560331199179090383328549637627069591369976593931227662285391587332901348404392694394226868956981443404284659181946620120318797103278070390642907488485083212466729565782149676070927097245008841306881623978556096725745043191255274159082436317362393689385131019838354393903007272977477242022984686326889108222987082414594633569034064801763208523751758599136908294084935880659977500100246677949714753970285602279134447823885371880249997570535684392725402759723718640639026930048456184046939945666085349127872455829362256769446871460758640316262923013625098147187854185198312412569109891581817443172823002632683075880021444421088157994877819140398765228347653180293415838291250032048193311687153874126088431179759852863137346796659676705286592464675876228883523174509525292345716159913495093444751012349280510593046955867191879930432725776160380019262183650221728007815522744442816946463728240740975806279701894087473968539612636045390010114979071926172334503015715920490456564398839044591653843957653152603820119434368710185394385654605043786215476387198076065465754200164479322919590663476752415176580196304162909535323771040708228516259947402923846571385225989386462672953232314310654692028135878405430892298688435280964926824300727573982256529031637921457917130528350371962582559794355186362756425494550433949119688588896644840754125585524076629427429249569802674634674269077397599128550229078861294861324773476860089490114848581792804981783353400916479490113192512492636478599146422370843880542772199285513935824203793533349044482384932130415489756125021616062009211068471998325094325431420918668110458555334663849750013537935727829912306285192269629834503610190317646112349768583335859502611619901608013630916842973252977419890830332526341909895273205091370631287095149674157773863283191807207458576762455130292533224391705368430942090535119844899008517092664587698178697620958111196323798381192649998983480678747090384154029069135883120315142934749963188635227256491063631321887158876428430589285479733786494046241148260553914309988444394085047029986517265535635947651042192618931077218283752086106898848079193688759055103515604675438147569490348310966006128440924376285267635054796448680366746817461845239747290707099144431048673272685594708338925508586990325968973444773543021748052523690391189048480697176510574932468759100970253356786045794426441447495296944761435003767378662841922870357494886532280461278038634660360351494968518581147657511466775941496930473377543777328707116020455829762214521142176932076535661107130692122246110511078229263116598668477646697623450465359254002512046226880884376368784459087075351751763165129821622867209764745104457168573215625260933680507895483942961267567808357500819352347738807362439360393870881511244379662448910214312526305916085107948327164996936265345403760109256164915273459259973998777222016596289406616485273277996481441741300602979791218446825785739674833555264559301523191084744839200676306878984840444158424935038524349749173448854224925222777862839531199011870586904474240467806516610230566513849842947962052730600375197840881881027917456001911903781838728892097681940146287193401884714479303118459762263199004855658234312483577660037760914533380914556122999255358584129604997766328401534304441288440952894665275136055193951757358151842130915327681208499157810995761255370352665477067709856901819895507644721300580415141083069909391850595391559501021867074620566956351966338968361161376069867877171684931673292154533348067978558211856220457704810466581400031585363581178102183100905278201879507649936915358933003440801294102844862848193136097685475455022680116223823681873128231095984071395543679318857983927367191307515393796123707138910770112158129048816729762556525863927898809658052591260042274194466021639475829518140601340434463660921293853728291528149007797908254451772828851826157669318989741638780568490679096465371619909095602024154675710550120749548530366637863285410351590797575472731739664249905560074590829697676267930240063579796373751068745864758028870348488089229116051991468036549510089112049374811885187690978626480485773763820426976812213398294772218024055798233629177079724183995447866693005487457873013477541940416511198804339440795580334955132653700027000401772926428348994391780409887768883072978064773812362405723389978131496660870854031831172311049516049929909877695699491176504882876110912403843112879022700698082561638236876581361429672745438214624700009223595937406372890351735221416910171026782895348350678305269945874945274999472940050707395203628217212881146303649243322885495019872503460965621521084290149146196330254619745281900862136353152505946139070081389710468311487829974691745901152854762025447658716088614349795904329483331978660541414557761399548836967870365382437456732679189694904210653973945456433513832446054142806564857852375569069836536827776929539218753835618998097179711963661656257842695316118467592310670363824704932822202705905627646522404380140078342502744544112750243721885419409750738655336802614185183150361780529610695752410549683141019956788746314896100272342491811949250792997336482355055093006756983356725273260512658750924054058854883910244966513615753606925804406923921855312016580636325469204333194967447604306688836298371379528983787536146140518445534315947607958268063231767496148782152907598235798704346102989842744566617412603468614466073203573957998087834455820412706782922661845780596078051951584614595420088045182633423633033448058037033878174219935530450835853438621842609640001723537358954296747423479628534534918641132142747199311553812078510215392079539208823325072520994423056037274798646249317332867350962116683805091081749483319429480982853963244114632849738984521798915488331833013547422697084689916250221138905975316374026593568163872115398110628015152953290556468760382219416597501341559468722423798293530724227632789455436701653347005256427926699116334708056855655269878351700837594453323762091865187975197954683272891795473000621224623627778791265659260401765267575850798486642326521355322372108268331420983040662586944339096804801992698546254577918184633764967582911061429354136630192197087055482435592123327414720877189765705186079432562023135497217747439119245775165258769627676993887630163595383107943598613590325269728626216568394188406110233080818529991812341704411944917062714800267964634566015829907395673777447328350641198399112824646321260129335282206850034913528836991886373340500970218938837630636776048316195396492598891282850958974203391595951974622550315485075047546507066296222437392915508886016167180657684987387698815555541308843254311524572743018037584539383465115833950986035722821600202541598317432929276919045408608144124741333573916748242458126553772564983685085771029431456543703973124029341840232914834538408322493737618076704771676041414476495695713647562483107979117501677617639008502614637047173428033181726554950830590896710462591202196152060824329905183301808332076485289439765587272121051148588588911206503538595496679228228341549037666220500997405591031169025109948118649994941643964680153464364601924113185925516818587769603761749656058378588756987507743346575741908155223430790429297325720469389615147583869531870293148224501218347623365198760557765552865391067561790128490444213916788420384621757225946487774486811100239164777880894451915172473326935036166467848382758508302352309486325142980112935985484013418543573094855890994685083030594959235232698426987442929135030436356745156304083418456105290290839421362100642265429342318069193851185639016762652858725818423083120588991395700440067575768610618764362647572862491908918157048430980407437371339221616410946168022611298814014857515371172081080663143304328926384140504678404621923257568475461847194162895249761309574506880607872326709463189694603356614675437914682805724382096201174763037427714540782557520258427262640679763406272095302584732966000006174276201362516885510548927754409242051608240434034780966958442356639519088284331370097490868542538263371268530497816422066612496040884413343488823250573827865475399201214290584053460606800343373298103758117742936220970810387665196358544151190411973929446540566961702431815564073480701914296325777241868795911776547738840274971567656550244841116914277487175929013963015806879982329037090474704753999499331635958333817095842255888008514558886018636937338537476338011083261606950988707063829047620393144205190908039682361757365035628939739063373142523035607661643611576431494009983908894894420625960207570254096335973436024934321865374919586781736108196821956403319064237012327036152001123875952451533470297149230733874334079508695732470819934112155111799714023014666524214508294776456174414496905797980334360008691911256832750698268411378703343701891783237617939133804271163217173782872107826279203974195132300835887640429655809706690520097399662622147533789884277091979150450033476464320609299987464343626841801939503051149981934263036946629716193629774594796013517352387990713085723815669258757927939843970246641123282207353300091797850432393254049416525193362040643446586119352339099286882996346910990349788875705934649634203864357482110894316602215213924698089080294132523124341526660543753968758533198460364120614198308748019647307491567102909935757193228859694219464101333630418771540738929033424032375729487922712272492946911559077195968346636260821595323311328510172017514358320807004356369780101152804745871739762800005385839348826936873666916284469863428393008336436762562057872104414966298918497732337744835576775428718535520609453404517522087552041294505368025223258237886478248388665257727067349029895329469616965763050365291961892272269517336733185836582479999555217894115284325038326721010030527805502291988583177550761663949420713484864092756983809121980904847978706978117794138428334623762736345971698011645846989976233819349153141643168353034648714127860231082008004414981782541331693508324549252765678780150840334935815079206544955893734897914394921158662128425007992328268577409075273589120345071819083719179781539912581262057205342679114905375714530349706662311307555307473696206657845829528870550241301798393375166381782053063557253779972916351863200218682861233383530625877462181339025119465602465294824406617657020498220256583804486846879704642139781384489066491248951148159029983579544099035235259334129417102298684610024685917006111758661509689717271802230976605459039439004918983290620119052030608848586896401530832255014562937719633961458952791029102100939302399503656991311664723067113276147302583126436159126250840432593024709209479769474086949942555794387961058388494596844462505250355769258357699241409126142299948192124052322583215864496082651757038187154276338604036053197162694558013346277831297784196668622800151595572485896403210393811298180152412454287795878446357585875167461135343179711340547007507476193528488290727863023204572192172995916516941896087448884046801270964245910128711403668178910065024348295142596953216154207083126184677014277416487587247558615203679643086224542158605498960366645305695985851628983437180278915434473045139424145735071211671787169910455797956919190754323398249586251086854121183724431880289826620542835254891528124596239783795858751264454949432440373996747285302222123480491877131432368444148736668795803869107030993187449651530646685684048876181935728727019136048704781230795558925696467938145276601624779007879165445717937263991560074825318934717663038693389996864081396075263663879949022761716412891404444560977419815478877319623706473737305641379691176700977093457047366049312084066403819112058129802028330432893030068752419177751495562318181872059998127008124455713290715501106023354248210836173110218692258696040934621932421666152266148669841247215894586461186662003461662811934631923680712984342225475755724817650478208719142837829598255017419928014589968248988331591081892059674763868618300516656104928777684690016295071133205845435153775171357949244673757832544834613572068541176959257439536557744953107238664923253858781620759443696048670281064340735359738514797100560807954910737607530614544415328736075709159750744280726939444499199884257574357595557515788846157687582187555024774208753377671998501892053912304635653489873446160001866087015332269737759667925370373282490652023459903732091352948600612733083812576644709720998926461614576266936391279821022951506667839302530873701644333951555213650896106857605594457440699245103047302600104513719772017709447805985457902904245218358091957365051970318955312306992677906577288870164130612839908767961157974744449678527733825719092991288877030618764614120356287759551620062982730213154320545567796618919463164899708156730816355963104176543096937836843643313301135152074700831842040814204197218382771100063350499475978285790076498044943471194637326411295767942738867475727322783477246611266718078993078527311029686888531313920036933005031903670986458859620548289835223514225524828204198327263982683013350538878848348179029880763561310667584037084830069473386898900390704801554553917524587151876421611459615858164856152866236960904422135983140769961184855504888151946505714569548183756709479849104105196574417251197673213093280530279625403415389806242090946937648033281053160809494070584106035250139990892068332102370885305576241566799078450633609176290946984870084023818928204958977586992842093367725940497068199244491658420705354905799731050115072848685803528434106595267010659625279203664595078873711219138824817851437948073140797942859789419285221523604611306139194773799490723110265677077169784352997872857024668628650757313285746143309691835631763839764006837358865635104897601822868571563494026440506366244597522703002268638444901461703727156470327779131330423665008651135301422453179097823845386478336969355906676007377020933996242641579950123991993014452268758252278430096822576037320955108832758395751760600053397060070041442859575015135994716853818574610740141248338427764252833550084857587418227972223459388151163000595674251155990453238166736411716347194920081784814579985954177447087372728027063439350010807290221125153544193813950611861501969513191561523638151561685521383009155138937055558439778327908067367430362628554061979161686473272364150907832233594184611608186511924416819959449572147529298400012532861090688111810112117270165887922916851694562578492811837857352422141709448066530684391476887545256833160874309425892225992289044956440413524540307042504912721574390425711178353929509201583689290515028821514871991361280504855875032545845692886379876982610830429012233715859781601399470075274321875992000187508477323941934784534410754676975441403121594025132363663770037224696474260862313323850846896181300988258148439698255545855520066663710164185594610543307000128294626243101394597657883657747672884432186402530826936709899368702917538259380957702318258262069537121711599534607230000059583219866509841267071618020682477949905502954801944090290872924688765714939260524992147458401330862115365849334952962708674428917852237795518824760528254031747895315391963562082014327551239304249257354030437841755876556867032283499826458672452606398302783180077134687617624471443792451894403556013813018465533158871534187485848899523385960062579720436671514006079684840043712669564209181307284208282910993161582397178295186060184970742678622444365643490096493536427909667691465044708163844855730264071246414789240063259490281587226655537474378012821944204905322153208482670044629250570384019738400388044449100382799525775468270110867596299882300494126733647207528112852278733518060362747092081363521885400364386040430271436843350176266912114064501929193718912204880733535319983084520086977774904638597799422864676282833609613509759150135359846211062207321433479066676284621994104034576575048088013424737356406284242327664982176230847943038068244535697365145601986152270758934093567088816073094542750502472954878549575050822344502295525783728942748609278896689508200898179846782870869636199965525593323279203897647680039286612131806745279413522133367692214132394608606032632512666825291119449910371710141641743992529523903199044438293440744613627875536881969102099401889480612036521099993511264926846336328095623321792039413281401108828918785531062690093360954576563318970888773817442099800200240382289850337093737566733866412100326980875819868090242799216963288277734160052476614260295943546401271242265971106023154122535379086871110802551074375336047001048144141582227513997782898311977069919890958601578529879810540633605627397911450137295633077306165996737662918730805637643167786734642114648568671931575737058389119893710510578208571136017904005132032093595792869301305915411487814846041597567514656465626269520632269917065976339516405494852109361685463020286044457791871682309238257101155745810546939813925941142685154987489843397766324483125629183556375988558505938184242830696412834564710951386235852801996582883391377966007494784394420333892036843990789249921151749250131342603494694265048491012516367847383325754409825957213753890810560293769153494825646869916540545963049724063321529272870155227510088481082196863648840729851437196793835913572230512605240972883862206231052204277263215911357483221960493773346086489514353533571567773206274559908687585386685835516254277785334765720865929680290473523207425545658766297886069558981376319064888184478583966732407686902347414427486386703892754774620765799295653050984751311199584743901890541199787133888220253149483033230993497068409634307342066727268851397720974956606118615954698756902998364484097682410971362694313967935372777885203113838863900522894353611076650810835900902250807830680530931719641349362510984315375844475825211605678136504734571168957958281484373029868622597901316025980710372179940811673264746038421538893665361651652409187460746341696412353073612959619891482175654720872482447252971603109083051987017748171549282723373729091073568631035879853345911925267886786377224539353591523857631007629491853304068395708073146302950091090433371175548433706876831986983443533403242554062832170692530415790763104392392875235530945712791842692709213260647279968005004448903771825330958309653722214985648067013625281974376478059805015483954760474306677011268500252752602867929413975125980812358698706053103173525388332512661066066750931885099393938278713509633316012092617189733965201806614215636546597037085927049538775467825952560277455307088648474543707690218813435237021791614920505242473374856688406002127869364639180489424737229719298296376774952754500126406275723358830731344875276427748958476641602797928600124749425057944491969805415252995379665289752386848734572787312334408157361879783324695892716490979661647298535891246533136976368640447278267048115864691916762573847439141718920304913597280979934237501568659208681819753876206651573178358096594109095433543734086755121506955917157525832266839626642467567596254811474122513936354618094446243901848981657288582585716799008976887045500967151577220148148401401561457244259355895672884966600559666614816475427692144109426408421888083494159920074619846995317806301033658604087235825738016393213749980737150877696966112268619128015393420520359650162850525166229721699794585396925672676259737793927652649066742898891273023723942211512971851962961624215850880241607393954016519739830603613834159775914331838894170968300515146627425528782546283639202190300268142234493335234835508677670007366387394596502959242123481612537210551866854479102017406752965459856430977890965314055548600731468176885236588148199800107513899677008060169658914820053862001517864853738098848291034419905077970427600884537664590347130035931945500502509722042153562198991740628211290994398970675256062402530575047577934723816030218041170145597570166783888859330277718063513970986869562067286771176698441811403455847661872996004195173850004715229934271076156941337827067963568775153477079412017347315264715336669134434109662073243810914549183240456312087073393953174750834870352768989679109782817395492391572707785392467720561667368711858322448103719293871104975519876603675398397289272903395726702013513354352467074517863978210024475492502610576770134810778282959313585584193425796891703874032687897669109490518816958835051708478701322071230556994754950870233471661424680226333334798694815411454511936070143657759179724705277580002337582580820522544786742832780586098241499258513448564025683636561451635059004624452221888493969776856972776304700697003059022452139312487128898834845505803724202260891903642866206026833073353147673489155043271098059224092324743473645049076824110865263410581023860341274360500156197045524085918355155860325094760916901351401291560379552206760132802195173065086429377132710735519506706026667910624509352159744808614278225490151923989550994552257352900121069249881258131681286790131739474314439864581812372013971249699745415847852813885078722004742478807302818116619254540007195246347292980473242109752322671460501518567044291829166143707087192469640014101158837087442018058241518741439132498707743896061491063890850329470371176514383424360063574578335750011990803875821372285013125060399601465115811667836178150474728462726544298574644920816885270216175073444161951565556182130556369445337004338442834897176371564882149451359132832986119669624686926333436796000927255266520484471271442580339680241984921147386043369142754555800001175678726616000168582468499914414149161518110315835158182827214122785632072115518570981397953425928343726571632545739144467092016175578260843935326156889900730776070624912923724825393428712538150015252902969683929239050546410978737078669902884379757869897617634438960553422394345796258148827230170260650333229071605927039412829076821653022472684972083870259701540534433917307191229007677897658270554885124515379530505091462342483720736206444207171730868864165029654631075296702019989741177625359919211417278121942573555595195348508633054901529390624352520986729884432139569747112168261985430448657564102327515156909553349159603381246509220299856070814223394562159124101671290744595035379163663050998556298427570762653724614865073391882445524943197100508690295554290109468808041459070640472831538345749587829635020592969241683741466273647817061362038955402837467286366773895793849006936648938992134694444834672981128495393475131232570063923862190486007168465349331485848493299210881921364884689701946039631088056049739314829703634777804111735980252090471541225468528017601165177284728293286579239720780688878185175482627778214585358333532898302678261245350779820743852145793301073338056855502642652948210022758765720518109418075159506478513253421015373839025338833458354390336460328129568645879354077637965698368651022621103292799970538679658801146093305886277974372899625724869166036351658718553266734269756491377867177899429782495075285862985142144592690815569946151047662154607666049201411566711698156794508701293603098622362352843138958631609639528592381799195022118045245359914138357509983919555929138608713216266017840610415393805121708411603015010151097965702074470033182685516595566864984800973741590524328315506744272036633275538276478559810234407690624537913644900365979840943334108969600749447009710998972234485424447887059174771480575611279144433313935212301504075003168115391080799728652428479222070934704035845386291611153058597799762611307101115708170110980830830436201687210168842276096736164493932834297153693078326400780474505369041892129670832118807264970717867869434767372634659485697198742707284938776715149383754509089558757563621244600246318440345777756349369181357324518317358041436646154722294923214750277551042851655222218651809422855493393471470140814573209688847298391465253868373389197868711534068711609064413757327518337774782349638490654574465941920251876838293622388168237130585507954338931423613715450263346138216228466677427921037901659287218406349262374807746729236466493941146704742952301297884689536199913771645546533398374176318239307132271102989032639253996932268836226631670435911548377916138203771180111355057301247232756287739540154417945062464070188792388096842358441808489813621782523575508650878707728351009682311151165380270898067776560549200101137615193634851291949411044074252676250096129644412657708605283891139407070895277259891683826950579040534310782751922273887618707420282082160273912461009017389831853320374966901509924861076161509439599294497794620984921717553636638746768061127604810861769982087621406060736556663248736400075857891460418016870978958180983619499681357204593126584316732216796505309610047759324762574245434400041140268937167332382784612451814191663151690080248246664307721986575873372478211330325105529211233674100072997249109288412494590331226757896563704054657643284332589919183933772445814909486698363348391295104556942363663331331184055785370981837701218887241758642270881313944306066960715844712986221653564522944262590287901679101520379272748870979559878640545762043282096285657339012624553780462491293259636840958933644298219062834251119276879436298062465632313458964587060801460799379782671816140407574836026431263112760149221890939643813183212027220873102044082868037883507284485530672991693674341117654773040792679687291342100667457776375404975558089165906565566826804905851630155339953488997698936437419901301531354865308456840458864158079101418692829867903759007030756888688952615912465354657787088158430421066708351720650453098217437538384164241057146818361771546929416940598241284671451376582715293117907905428863515027711523386816094248870361803278349860824358713296043206954357710354490834276947928726757580328054109326764717457251208495473801692690687396335479571624626532000927810214174489799737567577695796152453814415312106573767240299199512078778544691336615720035102199724716158088998902485620293799511020357643563088787663560581666098695847018971163549867557595541185584984592947819602089452500886067569985564607728720217997326901060705708912218250739082552126637611053724432523406607620709257739145538024937723024751201696886049405094565318147923089020071941966371642704554991642242137311350657498512206459179320880373140957306289606083221221830147502337820462265222858245324405037109297078915874530760280498398359028008372455374317669649779604611737926796473179760076947908271450307392982425527070608963205782397176931370197630520601102860183297192669775650451072303004651846007661282760089886932881232220103945703143312688685671217186549343224593571072961924320860908965317280567764816735889123757780598254912305633791245629421230513902527191520563976236531182002854982771266531602260458340458022441025308918773152740939662155698958182345760194803949470148905646649036208200163756689843853161211714495559320934333110407801947186231794537879051113110598242604607852426796096215791620088505241765014121204079004141604819188444132637166319324190407700124353519820367260310521575914112874940050942981639361377216138054984310716978153825745775860064614763542085071030951509689594868696867043810063771307031050777470756157767019076004183794716676512248123900126903129509551327962824144139823069894312558036424748845514381771354758176958796276956542724553738864797707796959140227322836943108713697681513803219157350730784612083652844942915278061935150507486510754639361789138790641646721985542622119316179423106827459048244037385404541280956449562768262228331828844222085473001099756808638355143014939813019964705504825253009534409621587628126441518188043952089613338392796745198384799867598996694080402742749464966696977424442786387890913177290307494199106231922428304118083051678315324213964753592056268366884450533039477255990724752864413908862004632494957679963086289268309765072445039837266984803914685856308266156512158612723641813072863905703445634632950783903298968804779808274638995511304077907697466777489717584563556658869728168744359827569758192006865186284203083364285336419533676005856176986219158028523123989610367448823488502190922032858940038091073747977887666964942559710788372663054733121550352028137360662436998167999967302127244700189871610490765268686953084243731702224471143649613549328253512368476202392014022119138572785187465724961185165389297243488674342366470404097356716397254935458219366297515590578975949096457589014662328973661427875972490187824237426829967610754108849769161028170155946922642998988847762945570062926445604335563585763779998783027378577609583170152745637642293405654449510878955997569588970858216902451243487092658391647302377096528065151186855141570287205629397231363135762925818127717452513369260709036448903876961044991542152157946600094633217354210904437025897118255824844087802305121552767494064760555947059154995626643019840923794007857333486770185367771240982873084523723304241385520842495798694648395477070723534947120032300583652670344218637366764198320665932923799069208894288846271078006577681754569170602498614560129114644677717517855871761848881148173209075226364757946823042487643054554471827169478105210768462993526566784212514642402092429606483612498028860942985065108066243303106309281714511196817018654286661969219569730424894482843285433508752438007110083720747698272142614990741504432287785480313902346522741442029969885692311437825734440326612551771724470796793537938047211065661382164150666491606010177837455455935225479985242457796151602464397944412734598508233440517741965365954768389324745072873064042910825079936308831377952659890576013727150932009018887852262685618130643779771893877179106246937979606025886381173190822983726152720749346101800306635783088114472228342620376811371822845920911194233311357293285819305972887564283244340545651031226359969327756228667016245554087716048732091342710761511455365229807192068852761707695019622597179817166635085386730696077527139947636961260930293526515463827040987265103969020135827555460072780590951216654253242423502405344764943394278415982096020436404152995490763765029952011272086193313536084931903863991320325554911022411369898894506109133469816778723974152822063414616271516035079005957399857862209556903913578997095758964413102640793390948682717461511794521094049934098121755412115212329534720779198836299440395879185840760315928066146794835522493377630418230902638617119243090622525049964649282600890251291695397430787992468221619094652659789781834877504891769246927584611366905331796802531591698815678571801095508637543992259986694031282810256882842965795696487458697847937630466144279349575057053792222718614440674436836858202274284848698630664639855334376498668648819771980765351820568357731799156873636794640503434278122294357651920504018441872704956016368454765246440236498475427928114115257765942524639684192805145074058725981367755532186758261215556325894508387626212828087010994134177475380342993337121619522901286063354362098129916385010960962234002992723507744528797318969486188708294712915635483332289976619350583893497546515893348838274805825569210020226323826993728027395527718463093927652138282456447224379047149637775652688436896088159745066223917763891811922401022214622510761169846870094480458024640988181597856743793950469910467191918254962262903003447998520541530663713433648880195103506594231775683246479221626058842099957131064878714751216780252519202976787941810863819546886239827604895171000772647023611993383016226920908720378492270037541635824611221773340268212430577304365054666608496510257159496110134508104799264609982994418343736240729932062686976738681382704503844386279285722972034299105416680831011015256833833470812384345967822535137385428126332676910376609821109822698893293581328293660009789871116627378335300131054291669595018308299314709241737847864777387255745765891653681993319962582691500166061700873957026740237826678597547967158048875044303089753790968363319150462797882750145894399106078864866021924535018867563361942744951534933184919567352341047605744773355673457215951093906806626189242362950824707883316849083021617352476656594294395564661910878096327547674037506920668817708841709998473742294838295929396812481720741114258565114547655015873017724487542991777108047777692537400768518393974602308334018563429770689098432933101858030517671317032393628338196041100208458803858782224601490291004686690618104717918010624059272136816704423920925335239850564477556777761659051006660709023085911238936236587568195097366452221137140343327571779373212632451420658111961933973292995471497520310812093054060707101161272483764080428555469623581447359089753499951116114989873641429511361170173715981551081828140426714662768001436854511668528936917581405974050747669158253429280390535429190922045018688159339302707239112820765306600421930619084449614905745812027771181061185924743149187713525742703767378879526319273410751249624051667085901889982908109465323511521480751641442256886907726256745569997319393443222996463780840875570082402952971408188920831750069421628975941415607171118248194609706566246497318705513758908406670198204552630644816228492060021976738352131604536186156927621488401087197246259539588117962366672327923132507224669842698375225207366231188746873303544501308785401931203697432687573840860097027299444025071919404351221451343872579043251914676047370053892093854009588334444417960141939611597832356952856545706873642998352801959082418664405293729457475487303973429374007636579062414639913249003700673146327473834791292796576366829513019705438643013776588755935426956024695647804221432779636499066264045867711324823273507271685299549681966664797772582568977825230543486620701084870793527367702605526576749948174811717420803548553758514921914400214073397276446854854964062398449402780788441455277612132122115195629969044610324120527904065677184631909611235536141178447390816272159544557689365096183749346047687823575128261444601351228366257629689844718200818677910580770295141740516822903109862739818531178433545428203016790570790193503857526696143656802755512660015533648908814883462334982065259596632776532486867031718302114771106918845074901361671734832288946309180934278361789340915990210615447591939439398592871089597446158145051314383370339954787082533492090058564069588700518587491221599364450237712762655773089953900415998086779303919158194521005866403914789097308790679752372072834559618936799340446485741827776365986640003350796557127270940740554770246028067917681970180155256616266731545111060473485663645942132693915712742458826702377327542436112336708945591029218572317089822540790229090543633483510896791269929640730712414664520508273830569365338495856075578258435503792401000617993262491756454554837090864695132795012193695983067778452935830279438392332640627110745221640157456027708215608215299262400203647130483445015020472343709464878343058213235847906293591282574489473615708855324338833175592342658433034321065972072049798402461008245273636594717134197758452664728498559757618295464135664678722619323258094110220869900572222704193404150190574225189658088421530606240385243340806365624628228402921357877988035773371886622426195282874126915376691243964368001078747043644126648811722452650332980420756077333978296410480365052720111505182433808508631488480570924487964240341527162480609048392989591719345784420897867625010049889992844004081321724234402292908885636174285641025059388649964908962115795930157219644419415020414050833164292855054169949979517430098696327526640168220380598634119641822289704611901211114527269571886456296476150045772146488746890161238379067929953554852869655603297904091386877864346817182821785687946693427119633641306170712972241827848748999992606536763315821256062565131263900234538441125699489798525387765726114318679605398698950476874113244722975701001660781763103536357420036902094952432331727815543577885973525883451886392190410039771265834611718453196451417653757573018071372632009869575560784287329235422258776485949241534084081811465933884242348341595647438501975292272319815659183614532355250012574147308034678892714453410750727590202090651124152942195864042820773169956813808007414047859240642030156117322758345871076266023699758168731799367717035641725855419194124266638071167590313312467497454345874790737821033267022355461613431191035598609226640972353773920041234261325285757021176147857344296357644875019620713991790469503505680019431771479129018352399205818135742375025958567826904562225368913180173752398417508203700861715347972009820401310897876893842926345384508026571788875685662955448892812921730488075135051691862858019440337750935558325288767711517970957839016309583103872135355751277291450064470295044610086408775602308649711574094381628874140244896906967908385391773686187142233849094638673402821931769271006393777109001045021515238399761199588940195773991787103138856326890573142990851007629643894311174702131948822279456545440873456344899769523743852243595593905047731664736219915191740000815505044327386686285534113074595221723423269478357780294821082473394621045289187526481810637730125863229398558794866988689088599484094110903258668781852672357239823909043727566409688594246609065757788749012116915586321955429928610633579043346264383114703863247263618868100634472479801022025153257096733288632734647483173262195645603857767013100294025704587363945847242411937240536999263209032077720475961802529115427922511713881654057375541247089686332572836866729795859628583486797417816986929913941174167606827731913300181073246858015536610675070737200531441805401476294823095843632508649101608017229270230146204580391900240795736276974287061301341409621302803009973094305018407508245955532173192004392578611067160778484887754782043392916761531387345743859947668722566988216977600125016815292711004657257981302701083433111015166600776847124440578512289599048295221950577704853407209439499099912743698067662444311542716997018770203418215056927636308509957468769096227690740268283234826322983934429593510258911851229651984520277908666954184348135626583944638761744429863524029618828723870443461304522149952595927694534169516407152069223738371168349057554197210978423980740587951228000169115595702557283175215612108784735319170329818493800706066376033774540288036153390606307153351835294659774856559540990078936470604513264136714836959734158742840119288824669727318765567531903527222300921847847167066644705960546776040776451304512885605059607312611582671804185762696226643251661817906512889028012650698955463976073754095867198888675079386705174547554968356451726505041767832420711160978575564098037826368247436548194945190376100734335299075384389363780475008270471062962267030408920477270188371527711219876293219423327451528796167790984781200533229865493146286419548751510486214101107769719072113623717387138443610363191335695702823652836530360693436415756446802234476884707309440592235733223702978050759380815430792158742879907288001161720934207119617768298116616438949827910944129939568496086587964874548875884188411008616653310910499496363828990503710389089753000502138650209801933590835626656528174456814726520016001889951678403526108920145969560802861669675167700117264021630325585749987258355326772889888144374000481196278078493210874179816663290168540540583097298683168013799034953157740765620601184226121102253443402541192035168557983865483590031765422470105685599004705412921680161600251322551223585934544018984516859826850578753034842276417471599619131590407688062115053877864586510100644333977120459198381184185262713562176023600417900978357000988387307983497646602588140832734517113995933239392858551703246942989176551952128423490995985591597140988757415032258653078734994844451501865062325272982479639797140715785015090387637718236939249206766203548834868486010239335354605090609263586725811771447134813936832872348748182082080190336901795973236481818495641318999894775929166854881238074038615821473608740691779240688238980732244734147306526509663233145241155360951026283251834724285890423820138676727844028952076898514928662570968872201123596698877185430587292874812854153193025333147533585016867561845240160366951257184294267176061405244121645260028220685091412089523967379633679962504527412626286771177324523309162886545091930098055972654808810367830528020282198854238343267199932507228742496091988244907771553686549979772226817504060885534107710433363022918525193058625599344808171557336292949365357528547465452383501066653772407618449969934591682643422902734197248612008687810890929849666257282823195612206495512587144802898969675945027134556983592339567627843217190396683692162563616696300477661277259050189633436438625405744962093668671332766838493921642883893135982451828021742739283602481213050875280238766587838800192200911823597492482514022219532931301753937542486243335406621748770754708656406572772120522589352850535542590299878717238945348618530116518428278474703419980277426652761303906819707144540683884436729368291429870806817144087919595070839135499214024913438696547808045018286939528089965104342447883735375797465104155046834135199182585988482762814687146315539801684304685876070464098093311231128501220977291108701093861737973208012522132443078535851061506685093054183443162385135821919081512825246630137357581720293273185039244229279802587406919771752728820034925404858889072183474122688480481713147423522496728015767518245833088182865799138157458310046572753422379315695391857710866813576497301580931113769438895815304276219647890772684476160464964715276743814431477030827643117153913076760511131696503665336707016162030602317702629153269382251876311305719804475549092041962360768059467238309472248887230064590758448673318636920154034482310369039476294439522943340440864103416088165433601889330184879517396977727537039947982806696659793833659893444219638435859858252384428014926158352526174164580905115241323593352599721321579605570298178510863806683518940565074215502013508760179548054797856747671410146760534285792844810241136610240371770320192377039448027732282101180745705195853624659660720474144788060357807457900669714632411372004724634360755850100942399251326154674530937066788349652325442163533666398555868985904274860609586058452396771460967212081863772309105794256366464971183186051914211943796388182683460590778392368593573901648712289590074149995679534075871688240125101056009399542789382676133603275368080921649620985061220477317967276420689664952368430092331787887649173033417220560259970054347950023237772638071138637341797660942885484230442485954014293886499050370436394692232493988670805230945634010627322541410955199750344440245850051565375950893811355048210337253978488742713020564592559742256171008829696866690271561769889554730373370192816550553276764060960220397305155821171426600283669434510470368737876117714834536866484209502300073351660600809845437757107584900481455873771719271176662597150325269550629256577134494281993389807809771843805277233739291119930642599900481691698310148672322419139322123352353563347491840437957735864233333819104152036660564847837776822920026006889115562677893372151376476013085175356283754297111922868449181630799868540807622469757303612259666160602777899016084989392680454742984240032367907671322343032925479050368318454344625301496430679270644989549246961369771872457438820529638137638341054210853603900062956928976461619454306632502667989060163411700585312046860518019568553085847915137052927641763149778378925668399575479864526059270788648181317399113647967649152043767701572751990577084113888644247666826354370690947524078393482281900932051295443620186940403351040870607883092197696896519944617119514883964481014181650509894009606912147372321985935805751310608054866857957530012908920435414848012219969046744246276841526024784948319557307262032818659601463728029736445540029639574189094381124490949250567447437179310812679611744758730211916778521420122918164276906746080402755653410699412576325456446079578107478810971429344167185512548731552030444206336929600709163248562718491615879401531891874222756370370700848224094430763197240154008941183991571117597616404698930421734883647606899052244555539719249765429248549219181614171839662862121213389710938562933803380832186047866624373654227868246436756821462351538437151732843350357010856617708097671254217342503592322846964606070088715397410625157673298859099537650665782108390804701603021916128746616889042138296739669226841661176315966900825703998107311219285202047026302372660032477045202840757268843342795584393929690680245378605891772721234326254821503825635153974201657584829350424075059702225494923865376742755952231512747350724762395903135293813007566188610808213979841981340268886133059545825540438796530521127008346298969864300972349181135833627268353300115857066453530046117076653085719520140153808059526950991739508168740092994247387859404154777823111323295052042808223734757697263116661530709889799107522904493398431859704152471527277144400614628864450314032970225345370440977792763758195574506163907974244304592102218217027079091746046275944170079708726274129823832119725068679352560125269962151120440266970987046434881103174185328462644900028660086429401190755676077272450187879257762410121660645928530449274528209596326830332181090484651886186129147637294324729015542435554881681000519414731718136263678965917329196839138576975788970998587643779010619854039371261985879353365282466571391490910169037405862220583116416709884561070128342669027793901765884251277829190307862134154283341782503817730513077379259534608748208208170687859921854295911394272243568180526921749456830289149676124427554942636961727367002615270470317016670225096406325845493908437245012951543898546635125380296547904227048202044172917515977131899701749203388300667256619728478220855950834343558484973889356233758750409576330153057498876622635094669393254351259830886401852397191321418285975428488137757319848887475437964928247077373100774015339385470650756326812883046855060739767061052638363012488932435541883172058504802633315512403058518383059480901366777450930087402693581902140682780378069055590609618847065113971258168209024678927724567204277784469528460987097989975437747326759335133747546614560706883758928005361248485684531586259847768120135584546925292808590345525249558163901308877525738610838286069578748191254887597707585446616365597153604527469215095704965171796890998610154173720295851534593041166310806267231767612913637866902303717032550653556264306779329326689661580251349733281851390839558832742167706968096362597181276888844969062210865874732947728975645794531542301400355419920660806248913501834804719279421413077373096416479253719809816152656899026165959214747433897438149520297733641157660979672979795743060038440732719292014906641969478779105708704355277971801838998524624903610563718948206073812587313760530085338796759211452967956213837411713464383378222112108611874966639172178987740983811710732266363844731901836140107125080267531161300163314082848067545773749259439770417509959697585256414525836670131348038282357046258736373167331241442326431239294031813197850387038554267614517565292606731203825611262523637204447664446814701020628373681729325618762211980718783887203400736115108079466401777889132649235751489212670095642803265161247739966869938439353495918087302180482952373837999997055004301926495936752247918664531764889445960887102392453520355302921585656144752201508482447953353476871977255303010785042834501956088135682482389997942684745432660608247820829476520810498099669959438923965537005792461828830038844594719886896664664672762002342942136496707846978414778879165614347898717184359625704324493399554483446246069794185435406886454539510879980883134084440729221959783254656530308877855636530902046943289032158668450082215065703151537847969724347124385160321384135550133821083760120818098588887667515829423779789325989171509579923567419485724962633998810413097105141267574286146035520525208487259574554955739034776901090514563559451488857434094137377230459760302723576239354096064672709511819837241876031258585537102578085932087855025123367053247739763800030330684045090639958838921500699081492535639337015102529247720187700302364862072030433086033497368831164286677844668634266077007091793397961425357268476718049194487911196183313304115705138356811529059720995124850755379255641412789964300894820017246763489332321112927601752845081190022500304892216482246133994141241260535355398517061538224200982489498504186269868096677938207664275867707152982495700288767582475807252981418120342477718069648454528391907686501324783471342517775201213774872120533630376258418714670393051896390681241014800225293816182743214093985846229442360301807980473327080791041900970708432976651491948224206277132217828401944505219930148965501379714967349388038225356353596528185784506830872301337506631849051017552320076400178449519755775346867026240221101042684096663227226788257978585355232517012222362015266770226144837659191700270084296694648730892132001899114991879204506994768933047806461942197720718934348653445505842638194291941338748909111547933597847030244255224869333520431750254816810353136138973226252956197862060631883771758613833470965793567402474741572984184747024466877831698727152974095289721867316999506515965877510047736883033077978582619050696399334396239634702621185153257597131281794960661151031479953393533471309923257772338786204920257362307534241726304284877743604867005639338190109594554347060176473704364252459467608025723307244800279083083461208848803348674474156862214192890698268688235109279553413033915013168726912282377080590896147962172853479079672939461334625268439164816832360216579261765811163901154878206159095266246253919996278236084455151109483662725502712964625290395750566117901046046249669402534590832004034340180108311076664408605680238104014577744069091610798529609031832592456243642893865027073724421441280538003487750731248300017478132484070122032506290881129247395292795469253908838811127208396704794700026465817237085381971730251785066271825822327519960221120051617197123284281712661540667865387275636999313248935802633018526154997361578007278641388117224740049843984850322726229901956711995188601921627777808234253721249672832603617299291217373471881780541852638674067348266858862251709548638407812058919736064512897474918039939490098267691728975039591893187036173268116190675468204062866042159682330326304139346893642411066352075810735174709103857455610260673310309489766728238502860721482348006211007442400012208492275753286495505854548356151968836335288952609734072417007781801125595871082922284700618589440846680144545702139235502800730777406919078938251272089103848522834573237235706293659421872518447154406899547295643859545876171540158717112943077475443220675843079507499509866042964497823229423658688249144968433815107250320655569832278672967540453754905483263603778084987003506442073205629535007657390590922465266630049804529925293457557575907962855135330348764109740917216486193309179069460286816602322599326146359220643696714667014935893304601904107610570256760624756443482586102387047513189131833461251411981263047648720433574559783494210101448582751966193169444234075535343220515809248132644710270092839770096240241668902394975469501809483236169883907787939187981209394938843213310460584966157131765022178176373035234054636908807981999717496132400951471278325613126830579854172816649446322895569439336273192576641536838122095025876689283893345066933667569309041241868800620868893058807995341244407933893782791848955710182071779002127131207799199544943692701145944285972438737123906571610920831640810919546082860370935483853934523713031332648052419336144518861519457948911904113094730943854190956320134988093131467521664501204525230152254849560091441356157053131297934864106493017503547923818423898992043537761019801527256475143168629482348637509874693900766285203329201081517694249093769239761383194137165868724645242650791082564637748589784121177714209295858456944386826551798368359235957582533355758206903951484154939794180493923156280440860157368096716494521955348401597570561206563161118631186253509354413601891188355453879141450854813459015242027208683679743712533233984459352962864281230438008568239364782558762441053748740665632638550474082272974323705163636169812833267467454216344089264574240398059403363322193613472094805486425242928973131397702711595679961407805890276164979551334535100023813414395374130569097680717851896884878798694005438494120979278159667686800272842176210271864034964090516275223412180550986812892438114579743339978263101012547684494548169370899381379109580386937632095489939792035529211806293021585942075796050281397476961336943179594520357783207666310767390569940245339468069364373561718913009222419290259345210114464817954029290357712466428216334017844273831686245254168053628130594324069081870406787751593351258117752721798311600776894042441909831058285043735225158421627456264197534270263660172146101611096455020533471864405667993452922754085393666723500878666946180715364070029793920862500213072826306942373617105503162509586643439505737325789301058083255713940063194740613826564050564549064003881730573554971193384852642217518978580874418619474108125824491349977288285137966210441820612895153610876420646349608092435603630518382784364065332333818429533054687119792041809697722388143120843123972429561867660317506854740363144280400736845359461791787418130697605924559223320495897961115448473969690276900467192674649158115863308756430374665674576636429170238148885615532790422907633751720432361671811290304553774294072017545843027128667303703174212395114927735497270691312658045975081669559384282854917104454786271906371571592119531539545706066084917075817577237995998572609507483404387549195193663447766150343991313642319073328202299679252078914358208561401266469774039634214133882049701250676532978347216186857348753766916541565505476267219072642740715306483334425792431277557021464249400001012886666087309643116784272346572039777714492181389410140501549460648911607525712922785989636237354657349749911687401642894041127855214198276396054715218596928001466817451269522789549246919169245086102942845468840386230834528582234443483354739187525956841500855352446900535979019316018657144875268324494102277271070058924383071704253429069704114177022598489240409435069611672483814588946612204331148302082201662093841983561393158729032537326702045151780462791704998253632878310401843244363080060047180615845214131672676417419290781805005547305427425187606721795006954472943901555693538032628557882676585631993846647317617743053642003660553297455981401098842266936009287108586187086614388645483377133486725982746658801601639731137305513508911399043806389533266071467451008325859683521709095907695148110287024051969283494261743941844389532297210849477200601984808382014171982459978256429362711267333617909953238826666983333495575105245207576624362428935846827842436079220736742135502284475895730648829775168152689857372800011555215866323196028673100386140833369175161461352993124625796467342428424392963316091412749840611911229934477308338205695002789861474029604729452022605323941110236721032477064278750292368245051429746315422743132304727610902830743294822556317841810091577871219660653186844907957442535424008017858351961015612766416861500918577119026783576714249134340241375888147768389871896042305003375728992234058462224844623219667674033225010353084207172106032194069603794197502043272070255276224916679371517329235372273692269514522488978415429443850035767693209025515159728990933824272128415049321270830219716816857833050492644521587459839432258399193284379548261476738283954472178878955958622194794819225474613840878213805160437163690405753588195390007771347980737266901556552595915329613951882023622782951925378134762342734787100463011244895708990039206826842577352055758041508784209260125259445770390769707864775387481572985610658815756061753818545023917115948971260067610731732257914527756403210045548901983025148536223225350634809206110187993310055232440228925216786628846178482829097553489621573328365331508310193299951902914558264655205076186050888814174917713299506714827556927925657660383411557381190286471713329052918089991563269398158378071317487275719362789075249602284920674789155613011059582877229286392543704245802623900384508183857013264025706365176220150326961148494174493261875702464553513776081753246605816127776433898529036240021828628356348884429560495226846472179138798331401392839837489969240873189009495531410064059537176509197629257792359409560940983294804332347307479238295782464868047607096036510448899013121865803045410222155659995278770210593654306401556552135701124793154092995900926322326686206651421898612253361778289144703697518514465582710398831066754587434541242469629395887244202126905910739842520320892406829939932349285437160467569123302158240270433019905732851706699405486120414758018939051452705492361071360042082997068481789627144637814416556466121351907051823750764734240156589287722458097527104673589245822184043278967537324280831882071013349792797362999113946991017027649225574316249424641315413429862253942348679227850688901781217381408602160601829339773992840657975084367198080028581716992122319619740135630602063175988052055835574770742315823176068808144205072356182366656119736591060923198978007303629985923589187685291639759733214140639885447659740838976721443796741675788797948992708798278064642751131537736702978870743228229338719553566085690194391129239512785606643896927711513974731767102377530244464570994347842126282539824104221342750896559721667791650630884855715875704745094283912677284513177554671569695559319800711985521810543981433095532305283192213163534331910278456836789857022508204291814269508157205389255734628812079193241539789959618122660102735697000834339486056135190821796140308825802294969969468543858456158622353659252944459526661849255297861508792655999897786387291343235377955650151462608409106217333621703417729847598400433542981970377590193883557295992021059108571171560302310354556662513639944365050709816784559012021378477686995962359453747092255558225395697126517555919822835841447035290411292930753483092838523092075765518759892535433048273567056053892894196573866491992366253095500708608643802369980151723203002487915294747699677178049278130941626963844938049658997386867205301201461889688048636883749057009756475816289622519448796863375073644027103043793625439332827415434636352623905142804117573836970141705650589795877234879515243531590525141387356418321429199804061644009842505729020156220366124378610677529234284858373859150776351862983531163883475982303799897829333590970011617577656715619253037853731306582903410901321445880010690077260089842625999528957580656915553672498788277512690591219390424890904664949236173424406007013120443999799262776892652812101926099168622130311112404949706263802594025392377090865426082866612775302202735931434841259627401985906702105868204115687911296909630026160011369499155264329136180579701577934444779052994005607601349071131494087524256242654395231455783082744563226195705374108351130483744444193913874771638979349977222788389578580250585697662425216450871236765841692888367293604957536077704649013098782992610890389850770994390026849465049811506802957052142720455174517135862252661650009943911353675795318056728824801783431735370144047544207103640906820507621725354053757939887544565170786235969494109326277443491026520937377737055662736562320855062662826082470166997094875183249896163652243305630033861435836294033780123736039535726194142533692977168917664087692861329495228881393070982715655608294123853725499796894034387624999160808875536918653459879843911940123380665899332948909114495856174944679334229366101956882198138367382039229487753647601558476127417137229423858673383971216518897985992725874027886172863511374666963408189116068678826599692540880913838030336975984546808749771875870725440900291373398440655524727408599648232670933691703530428702580666038014440211015513770091277798904926495672267618782734988958418342998448107213038618016720128438171177094056848624625057698166961750586121887770909927796602408794734267877977368043092670887003426855369395384818121469134656850626638215839496726581416754967406383558732640673511887596182381703929352725456834330567950374931304344307954888974892734140099555642205647541617169269210394929460303014673739107148337165995594907134630737171956729645135587601223949679064435103157531482868234266926934493090889575538597179640893887259700540532190339312468185432637977524583391693709899386773580449257862116051123703908394852390501985643958630815256093150236500165123268307331088371767208468377689795544792794185407755002510251459669274938191987832781951461953209081159037954121883393637695180513795596337140972030412259836104729168393617309946807462720976222029489802982138472742865299732200841813463939654568140139619076582590903852505600040894238127273985288768863212043243534807840822010246833460381903530745377060145909568860158087055354632464558334692643353059039569522299274228930791930333736562245906201729308952510677868600522116385222239877407049139418381113367443833328122251681588731746215311830088964873246988343274951901750169685026060917606308933819425354621672251500639426504203284856349735255646228063601894559638645938862010815802379159210105366593943664292867074714996625768642858943702710547810221362483938193600540759389363575546360984989888554452622063163158295878521942278206944745039539240391285657313578925577526930170855515377253312142417648459783391791710492242866411219679433293248225070301464114525323913642272799945415973872171273431155384383243448175675135556090985137867400058043687062340559244872293825136967469539862773234248775251419144971455413952986698966624275303138431749627714014666336290698946837835526996181540444829007472978365726210235392867597706980576442920854676528010448934590599751177683564807285382042681541175659756096058439626165992824938697744715009387119024582219828569662042411865408782764362207724664531787355297887608271415811695070472739149650389925074643915706819306511148659032715480663709371017910155207935935835067472965534681530959499686040475301039716441402186929785793405729059279745028915284789967782319108276087458222257329786900327411118887526777348802880871691800762709756965826156392366981835197737151136414431631976247614491528240634176982431428188021217642149989410241834052325172875426106412404732315724799114866323990043432887183302030310171371445523162130693450088704031876811812009012576506931085026520293964431630749659342858134155890693748330726349674004208499482154757282313137950985174384375496460095932393199758278220066924442721959161466973048024812159931016550564697587119638894863182638651478416970358058539072497968516132773453742954404175910094056137651122452908220287441757776752196022109999860717188424397490804952787540926899559013890737952314661595530916908182521280584232771789121762288621959197835931959610483657740857004029795668484868371534298186930113536391086778277690617104486781053249050147256841597688848235795551650845003252650334942943595997733074182389008158967502680406772317474062647754615534112280979151192624690315319795843451154925465245655315109886273169265385867489880811116614150105304167167221912623770943231805896828233467923748304681158452744774735152734631101294642445953158126766270746254068162941658388354530131337282729226318771887112187317302890026926817622171149055502065338125222149297013970603176194146817302730234812596596779974038647996645806177353627651658350155541157340337566082458210934313007846961466138033620870194810769685378466525443428529029767342920933678117149674213109671231612005675343700863877395132547439465438789221801875809705728930752223333016336168622737264311334834175895991287779244958930257000301905806895130855184834751158843923945027178621468985009590667846978362473003479935308909320169497756818248214597499377994744432412393060213682453263938843829803847091619982643929892552623900896311358022150409641277225429667548312858771186796851158843949698053071425924907408762725323460277427957636263785236852238231860567264281998186942868809221940995195771158653287838615974139285497517079050127185593873928125420334228683410788952678692121356627590058940189561548783092818840258077958283031263316355290494916431258555476752121307079941236530960346093530875260956192710324561353314115532699074170831188689874444132749058522489158370042325706644967317107404805931884230631529843322177854290315028920215764940563732682308862473769676485220071372664620025968649652619409107379234923641828838150371493502984957639839390895387955503022363793130896235970624029921619231866060219797198480890862017509691369655463189314837628188582138037140084722278604929918475929553471563796052696438835353152029554269166387140213618298974200970255610755473761297941565622680352276216220363591901604500586368559738649547717884064013548959041647776431049751142869024894061626129022967326106581228896871363326488692835730932358879633744164760071804127668112225372597465965047967919391754823874289532968239076824953627337168295900739547155838300265436631732857000795391213650977763282470669684400886226382618292761819814127129562265541711306879544803459912271722271780718852293792775580041819032290667793376304481938744579471233651368233480246941487680451045335752512644892590368983934219235586656983060860310499991792828953296624665833141255846395421340280966557154179392737138938590246161650294509381251254584172059066607146382637283562021289359570591962687044853777612557601976790763082062579813196974387989142310280573190268509664451014248141428665456118670987478818837418501064892964567970797410162557811848596718912476318055352548424565750676150023775530997886568234448077286438925408951598745563481782454014888137847535675686584835481994857059785104311821700351806818804715660883347379858004001602792216790202106703776598743223712690891301841685168908519320094797792564020592833364188142815263960256170986095599543530916151941936138052455144496216351704272440979567267855294038602144447518941012201049558320568850977025337145593158290169061055953431377738396942424593700561583243683892596359309372029054620762565834114046171384721805173015560845013884830128366630585251905730837795176201681695487015296152185042491593035715598357064242960857556712365868093144119860694644929634498345961256036145901741416075951850500637223976090332417488294378170964217852576920449457477406220789457513904469274091448197101428745866207556097656835568306574041432300175377545662534285136266531482601055445029363571543516471575892705916163199755544200109453408647732088851360754271593735584108896478567600462367641717223757351284285536567005729799053786675593535325671638858385696495555851238241313657404510022166003380506902951436339784483424547072916991606515833655074088397536550764906925854026715972982766408672748829840116496840071339961779471529676317868828117670335278130918601104430341536817671937899297417026848126186686025674046683669211830903073842494781680237873689448163349905288496750507589665061386664610689205273119300530290451191256504890343229378005234967015683610970227421002306297195870173025722729742218087705166157923938324897189043728422425795636477493729374958901227397786050098692071536368274280870500944467232465338045538137115178087199430880688779570196172368821929105645033794984531132205134480476176939577667988909537623688818969193651327211073690222517157691251525267024196907432956268285135250002846786509771717285454253127682432216949416047967896941966225329467864124894676556759685609844439667175421961668481103737219641736116231326936209775480800378279936350821119964563566621902525221139215161477769258456624975508291342638696851713319278539217651368875459065292657372185532307143741968179758918087120228193027487875837988569739584192798598489254882227758586296176687114269844895308656241571559856862650269866374429496963208964942723646576011418895189422532386509736486868393692817477194894634211105132008552142831534773359199092181768298657665982363735787702681980489144342748546808779255177825396205918726827249819406648842022805751474437846905252694148055731664338973058977930651981946686505528905729160731577296640751391503282877506129403906144206584592261693117633963773541208671365334843019060261091262633686933539249054394320603992082719929279702318001535944737540199806531464894029452230263128636337231275985272369336749016915838450434904758001797938335087356353339916388756644415941800605409370959725953542484172259733571015907959394617092781884768535301322484212457388490993165350838294686868008232134780952328152258039343256628369619865794496947750648584131208214694008111612846995417526002842504905704006066319676109227776089643575535973965956268392679914164569499733925344654550989119630086616406956778514254144011221661824980734106090808072799990239539987451967419515383317145545819748474759482915090880848094515881919761162330199920797231810145673800359448511632342032043198258048874175702725223994663454326307684315451334656280153843186644948468482834449439161765714108746235544567572067986331467788611511637236571706815059052092241084736815988250644078493274980280020492007898546465504921014162049033666017988410097809540175781845476654170610030415422611171814276111172755275452848402382027685498120858409923175346300546259465181117251632434822296209054985953583510075032476970525646619301642730657661787735088375698871876589288165473103374962720862387054278537259582823729423620599045340025220349765421151949763639007698841579128480155475146171430181234772758850056788458115832155714938674296375836338750506570504847361104726308213721981264462112919019143024763715352160796817330532093732600520558930311331495646451843340619177363689464599537846419157079342519429045444821791027789256329072552485746486869870086347764169266446440835787952126118373031116881453275523956135060290037198918852276550730057602866494148093929206840106976590259078376431082938147240510719238530182650989708783930097711067105174805239693870631032473580618703455924056828913186437686054157149047725193456470147530854174510552867240712624290122228015580194170958777367112026581772556358376052381557357809740119032609072133375156607369838615668969335890080655311735802347834515609981258115890127744478872207090290237672234945637952570707810758432791442928198542607047640020566080762362518709602362940987748901117204166742911372253004881139168489217903030016274546680992289072846025283904037265809427833126388521370703260611309735422344351213748921955148912023211233816665787610731920194139687713537507815758483285691857072233878254924182100859895342732339246769643097105375588060175336401174190121924581887940015193304511815958146989698618618040437210295789709913849696857800286176970461177267335361902941617946940945251133798591130542149170848048589389718843368964698044988975796168428086097172133734693486041603709854827820746182749464143316168117545098652530651212959566745271967345216986977278771495556725617546000857616586086798812952644275194982850851124446870736756439021339365299002890394386594397300044165637836735085396202243179064641777049567050200769425892165993698701997644767996871978869732703861538323630247317678384196804739196204063032785264637306128306179954087323464902559509073794195515659729629754813558437094857562448393249802635447693368478463854083388800534025512429691595956740615154398439913022194789916088829897202080480098198684597692781876027959412591036543572503238886759571347615226280790075124046045116153411294461858695946379061593643437609341027234779561696309322845573326490258383539895353889633392059390471857985491267881595692858680147886987076116771335122933121533012366674145983471865772513154380384224711726116929665925859210715951683652887066359559393519962102111728101003808680556468714536851850651861677336740911426764587879866749291168568027211194959902886551347032451358831253905755957162699048963547453529667312360336262073516940258989545837246581140936878815067532464784651943150153591795298915647599594130166539690926628860558990730327437827269494413791240005357257041146500466601638488321392572032354245227812421307617492166095003700611171178651668144159661642342751778634740912461415050475832210392350502074037943779146240712684711719379700089182332723164355451650060929024770394552469127649945662121770106376579759103951277984357759941151277279755493202968307640408491538231010327751572922587895769243281779966104006834935659907508442724569596557495311718416783937838160461719942083266157933455938751554653965924730384775131913489099520174967588287638573814416847631119707063751570796238263385735130437361960186814739493936485840981155634549410667491636841076283233442840580950784847517596614622322113644434019704373566094799787993229823408470647809863051917266898907579474962556088521621652586209440134658189550466075836783763448689347182209345169218409199383695711452665172661217171789947281467937902200726717166729256529446832041927131026363522471980917363615769623678210941224720071799298435405186816570038589879402793681287127215521157870696236862575754511149404866188818184741877312280712945274328885964750351905982530607117187398006169667961004010997902323447746115466681411625759878386987022142274201274525062045787968809709511361173635930564171570732995141670692784414244136774221628119838364097260154836825768437986931978240361760810714436350796217089861804145045262908409710940490806960452025480094141282111976740615619721582870608094185879496879641250173539177468700566584403838189819074938575875637134524384938752654601408873984191593644280544383505381507821718667226806084039466280196775390730453589419849205890781432146836761557200308439646948342931995540680945375613723603880778155257717793657323295624100781124379726867124249123317549167397577629612842099604333574037058814870451844983777034795803679364363278183051538622988954007975301228527473353330938363113222523598129061989989583531605122097209409683457294893721824206093480295362978328877281952959118090750230750853134833527434086884286475842113686902690554859554180601471993210754924257252380077309195392517482607532039251650214169536658765517418878425424418943175866822892320617248864624989617937361079508123484227293340065326448613710899706276983371368195451260664972387713987796568276981863418539931632994068075692561982621766065092879892956122656044320670667542776684467018947901638177762167281368157022625781709147851117437213288724408674458730694737150262993454238603391714508930824717289539809262896664770380486963472327006002570068099569553407684797634645007518838651747037250082525866180916336914331130132980301372699046772991940714663399222931978441190607896688906864030518584200234866641330177668251362981353783672145809963684750067983186374981545940159687200876841694292796617445176810751837920341123086459481399851778872742879039786508975634040369093626177975862886036732685449800453987479708514417731893079563138847334504742192191371311698977873617245964095831145849400087013647947733918364119012132553184737414048774663720775854236908999665099957075428619248965976579245848476176263463780030619160828310924922406032168995178017742871120611284504491650812268630729612664581313179972294402685910774652749238982124226845091713501891459054330925952213887808627235450518117399381867648020697117184361457078652304174564265406116631023061383252025187603750659452678561838203809312930329960913634246939020334601743348467943139934821238735252908844866221873992045660945207112034699604974421755955078490204741602477033385169168941701645716986918065233010691661759076711846126030475150326318731379135991000474772777494518993025840260670073366604023228244214512675214932821856150705904806057474142950984807479854320533351774832997337082142230379637122326949508016280749117558534711533218815676425601357173665435381976546646587777319337735628263523447452959531033540404974968986619489957594874747423970134424622952928066777639404343646583646093525280214157673278555997520497155013546212552153196963019515826138935362609701065763466036747010261808558739704726182696507455518765292855755902338474980770630871375146465423217736148350550411817496350069548305276942009129613886608994301465247312198678907252294928388823298835543358707367281291418266193776747224101767614124811473675165582842143465250666348936978617872007782266785767478366861206811123080600998767215588016344533514839785652752813231557647242319124764433607563886081811442504330841828076685478797905948959622099021606454819414783769487602468164289684409812743428612841353677204141506757334791550191158748081263807541846813891640295538602254845254881360438222678439259474448981513123047425916063597335542440773270944945152467835664741614116675186273598039979774184480009817809100378915139181926666194288210240798567357674719192704856851883272806923175220394335869435076467696995253424549998903036959591480226779319884713417884421099089257239936780709233355516928607481830388608714841832379854703009080022063062045797581365202311132378966755717873638051038295369396437596791888769688729674371613815245242433905280586972228895744224116457084447327210255169657011268558013711797808411272015556629347256744644880071061286126568794384400625995299549047482840066945585372531012449716436477798036680785705129599746889016068279321193533344642248813649712233790438597593834172555425570293721279102734700141791489383636009742909873780890006694402580214205262134459665931326345596959539584323381348846815184903003823488503975633564862303625982302912332706291744147297123709370854659862311600563556253296417666424114246802273869806144003635967629596872190550597303261417148621923771356050491833155431879100896330596140709199019188842289977659644765367793467360774048509519577206746362144518577420470751205949339424305771029656227598324946066635001051216137612619368173806891454237282940526324317994751272014387048909693161068634418897492999410620806611093711752492069638684658252660344625139284441582315009410893111213805828648232291455555657782891027930960045649183367374619670988512494054541124681510444211199934062417444849333095961644135757079433160831527978657664398798938626957428222962231260023110088678033796305511044050719496692727905358399950886636390024246979742762952715799984063263200861898328042701054327559185607894784385948540067650611781713063100327045813196261928834767987907699693708368089977710647478921528473947532936775665607254347992271868985570511512457198375428173836777790479915505853376985820464801008531704614937508474300691305601693141169482404402138388167301170380486655514219234577359510160844536652146187082468427692255700974322548496283122301609658379493312182087851184113704959770907721301190455019165072103436933140829272899055782603771469348296587166679480958522900900585765118764331561597484670289003138991938376649756846020886525546940596529025380830876277291068562530842785201288471728506119502374947510743448832924539771131885497113542697592904482341933898821224122083778150035482787633311368458548032486966720670030834816755511096089811583470139400351125915856094148745029844400384785250043155578653268924753718766248039374229115084851610926018805529105437982086260231539551550880309076565863970127354292848119708023106249125739053096979097164354708646692234222516847373630995887012722040907729212804881672976267860648415173711649846283822714694206074952071162243308521645987175946822046978692198324965024868210031716102861448338369057317880060636419939974266516057899854769627672990513567709270276580577155757683761561337864129340989497481274692373179374916601417573773158781903737441096878201500959693326745253888210313977927926973541449126278585271179601653628320345742760607876471937179126978156834728062775051710056077735218251211098814353392208975256368403100231729811669113800411080388863662325413626036903962683497418963356614639265754321584699251387184225793692858543492598051884013460936256496054663376690791383647365903624356730896646515229832714152088591900824599519364809332748622079653073832649307295073167952262944787964019858221213349096870839737842857162154401578401111237024790719421427466952878149260074028337081806746258512527585264516485238835728709343359382400276401626775167472695756883907695472936256759235299554867935531564061806028701169471706407341950679891822714162278255835777375563970325787481223117173085250449094477436696240787801175992684305858475826825704796192558194874182353352099319658187785217868010269182217834370921353230725270355851485713867050359026144806825491211208675061734240004199295856318307466025523997410771401881719483855129045538769843393556310089251003518419848191838408340195320922202339543451958315847567491249769339303118470038974149692665001655006001206772031585289547287684999678826798461651377539348479039147725442967144171391226279353380235297410517175783035545607949110524201004830907561018033025573336541682402221304204231415073361896446378262007659950026619690815777874359892880033927879841527920745175096605155478702496876147942855392048757063974496066676262707683146836613659799773852943966150063337056452079978733522956021056558392572279179488930146300864725640307939861094404532049302318943518519378595719751459826044747873068929129805518960171269437292208564076905749167411959846515468733590028366743161482945963073061242203398409599093142423678454467834932014038069776052818740542427118416635818857289518430748274817920382032405751323451570814800001381422454046100824423737969278341989458061354130640855552150598399215855505591158688169726771669094503065461129433148204953485302809810289231523827773600382614057790544197713973381368190249151002232392955602474965020759062720399347715345085872385859996550811631374643894123216327279559140561306888143051076804430316754054972939171763269409318291952309402421556319000835910823718666773492954976150610182231642240327697441634234649685154295273906481698218365523715846028819612456979159545065366109439377356866438474637229457167746533487687168972498072994218949459481369930519228149990815728849608002864287868344940731025794902888125041355434362097209633654978165828150219947478104810960658463627045527006756311507386660152375877837623496284708137283464069815158406237066512699257191824256717494061085192112919434858575916796709351564876250344728040060954006501113749018496441208720864980417932176887441768710707080215275321579395886486359789066063081390289590526387372426446441767227637962014730741083498328614925267388791433226120316483258784966869497773388271422485045386521545401658580347513417867504788019591516782139356435011822349676350796809688454929886391846146019449566141334741597959500337465840652482157808078238009744906816493445732473115104545585778463178966068109648537294306441929039511548596424761031439358731634606112782905322661668606088985250172210682842566669718530062859652524175446487739807209971524690780738757432826570427052112963842321349987440639717339207521025140932623737986704854522297662034382016672183541406748655954469314784035239678666787658300931745469049288121538056373294192454093907569351203738870050798288938453213172187358986945761897231068023774420609419314362670225872974502550996016239888422932376551780660573462242451985101688952855219753051105931488264370593327671686588706554139417244894493120716775292027376371089084307928054124486488074458109561206547693964004332947716617244103355228171695103742176635097198271337660251279921150358158152003648588583739206467744005431749178388714225915092072644485320735206408627014364585829197254218777015021117746704501610758096580249238045951251309051248212179220370175237483433288541234429030923842384233309733802080242434296527326596007492767228995673285103680199692745528533892706201533813343066919936009928519429885266470514466200222913942605767511380237023129901663512264331941130507145017039886768735519540529655189549782500961151799416788394136546662704925979180120295486463013207797035088702474850548556197931696872969625973880252118861726113502830459372191846517302781154882671549450309158168571233081007267229321654024671667914280617737691643627833844027833339972555901442187940859680142595882372806153752844338708849717137005600818344460008545024701566349937465739636900068878980164194035388334946914581539727421771405661565347033437015315951082630610644843524514947942663071720841729624103463236875076016945496121561183316514083167906437389117435656072491756806241858537387225166180439601221992863155927317357752246378496401221908084776096840124127094765335272309853291552295777927312334134722278639149753993999601819713725599354368329325944661063587179658015078874657823991681515650277942032239283145838139508148107963936558149088102587542599805335518717618661807542958461639238518291949175752759491182592499860047993305293852764471682415925436980754097778738499274688574436764077290363537034133238365823955662815474138605434960791680960489661626186480433783947268285244750154234680931367721405001041413313510101698020619001636418757750125976177194690454018144770612213001591681085472944632739475273986423044457733862335744946015217569343894863529437372212075633472422149087476845650206784426691246072140176737055822907458720073339267790613913007961969821040352349963993846652510505253997591952652448745926520482092032739397185620615819746967921289652124615227840724785397987542338840108339737875229789928893019435945970065136562976788998203435080104631245950185775595282739672602339806547360780552790168285213680826578204950527128846111118621065376995078149974524300601899854903178547773714215279405236755800174637930479535212995549336588602115644999802136014994943384378018830370827167390150234052636210438691274275586536341109672070777964758514904235889493196135017503592680254835396243401747020825132887720267239196097404704906464845391933111390042946177660426217873785180732838631921834116363958333351610278845993611971208127838526509872154096508747228333624460538373525468010292528602472843103152865543085696776217546334547672462230826777525601863637232498866809817250489559776297165387887293577542490026237925931060770538394493415322253210182663102590685508806995646565843853247797899837126475762627084303611964215720865006678304402560685408399803373407719230459435361646312618687401023082041814156092645076492053945887840660782034316805316595976070033678386136036380744932480051206740350820290207377984536792995611731004746985723299700227240397273054712276817860062521523647128297634659151175437445387429940074821555286437572338881784529524280952175566337521901195316780300947299155871495652500928773278148596870632396892002409347277690047473458061304082957902125756488554663948672146243947600565004047160539085494552060505477968262761952311776839286401880453471347223416206042290043285370032989044316241640340284367520866728229364586746294133452199213299631202717012909080400423401759871709871717203447223860092818733806509757433553561303945137723059596418157915740391398221775406990411056148968730564134098074128166523564261716733804592816088675357598015367455829652624511831767752666087769158638559106307500630923896828293435857465783841048891392480022583478463879032849221011178123227791783805740627427178763163101491054497801763378693373993892417254746961592707726045385762040062255786180450905824662455906375517468480104002003718471463531992424773888535843871658500875144567206084487266720817901414688405670682141934213394854931846091090832923058373573376659954035659176643614077928329145754436485922099483027654967705253193922649265138191111890901317105135941513527194750207610623826818588172719923398670020327859674169127921507021185558795435538073444561753705907911216858918792249864689996245794976814352055671458050802676685969117091648005308704323086627133461057006742487712646306066848756574737123250284802810193499523073295384580826942820563358432227787138426807198984196255534025746095757434888719771895764920157937303306469517632106981309840415423424674480894441029058184742734013002203629119272800405892368798284671896090766254647415182802675804207383941344829009472743269202158434632488831299037447636343910165639723790032541597535122966406535658332448478343072601296716585026680308717897284812655013632152844304838454672633219738464643702235598142476992084385519005190822225668204003512928097887923695382246530671011800565449678175970662318474362824980242520465657709502135687416075368758270599337200154199541753052201802704454077339898762220414609719380885692461467909341413178628411697912817433706965324717891313085895598592507009578970417046657737756717721597584961274625278704277587667691064821488971828576759697393303561838822129855393873048104323954572494809776351354282435161954588112299656734698640192384156347285584260534599914748550186665529263261818707016712474064137071382406917894739224560274887814201572796707740970748536962549510194981033491534778213876837124963923111061078608919202950732301594130493758168235697677086567315274266802164082274203736360510731684417950865824836496791120470040203020717035166262165967728864908260639755479212834893957058268139591726563211472822062178446286396627121968375341223068638446243592305742943984202677076973071466095773391389993821593338991127030367274362452757511384089655593337508457358786601980787158826381989401021656814364629127296676098856155728276353725497279792347154418516501437522960323428895074181760933767470355035262380926378455609290462631325771615443189487552367678782999956511746111670634437072038350106262076061655197063997041455159392722225168037052721748832226845739658048268124249908464612660085928535444997635014006621693803111575049758153884721873622850904972280422180223844635478971411985834512353477080181539810787077576919750011197992194204449529930719046052125549253703329820342750663814173834475582995973870838094691604954586466563800984699148028340840643160150301551807154476137071889752012608416273156727305547942269415087131395834491002789228849512651078924033231317867122572539200921583640535366257010824601723585116997335804106392448391510263220774889243717908357666844347422204815144758192112517616083088471702948357539162100629252427057908465185836697444301793866191584801264566171885574201791943964986110176557517977295828477720020617492008868206141927731880733773328523425943750512871942541792485634859182850167915998686183005958059081872511629999205238737851063892080118795741614244711329902160784032641757213918871395803882803399329995154558544973351819087138751608731613324132281441083652336798915323463554417607107844245363687991120178863561301800162493540971691844558069569563375883806595186506407012769497066048699681742211503254254475649138301965297119253291434182724671450636141992312284281794015436548872838112078712923693418559411397921217994113874371617396128489583977074674364737601481903784177608628169415823004141344575465690603940461004069075359298429486547602443141891215804282968785984563402172613692955736068096802641000781092739031801896080411364024708262437353985600846042673011305161749374901744322733026736020034138936867592433067141587608767274085347459991998041183225258676759794774146322146789597066497472638141920880174700331866238428292458887954501645533147310928384126355717705872546928285904509997054758770514926146324027612426900357205806020884825904861226067875063883673384784499848469244900492979690723038019570197127475353690180593552752469526327863999530099230301868639387118819157764577664517776922883281455914417914684051267654423668523778828439554396245187054930563322487713741280614063029671870008129333779743660518569279031031413169465133965729722154823873868132998949370103749068928539495125003564226324819275400695848673786537559206840680258162582522158741346134354200069543486066584661764540246955664709180854838023066208701942423997578916678900046521785861338665769859544213368505053891935573926767328711545875500059048457113613618270145985793234759847225475868308559054643742241071369448957346588143164975860806367697817252469100609993224025041458520010406670593313011726297920092740475009389302466075035385926675182608767046132729610486596536156329129610648917478018773327835119577729634131492502406964847272522826614811324176418003358880657275371471447196085656108725319547896124486506098342604373969153139181663954660584780371736757289817252201880997081774591434320044412531482487836011806974727956935761439627397737896519579811210684825260967183055987796038574187172230193291507597741637389779310395538621228894427555059155860518172944494734236811265141421566513728933221206440823784769873978875145891470149403966260435941967929816102628735029641480601676330170606964124729481036856838276019268508215411452698082957386608551882975011683741114661872851669851270566136752959460378760944083585086579289278757932697707705908946379159650248932067180133738770441374168046243914154282522388244052098806046617298303027897472726676389558063227245679175285201275741802801260065347049414265169909370377331457183283253963622176155959910972166928975438166404204875296419712401289167061678356005944510295743946868194423152524347275294352951680562712314832524788254493020796221509395805200895370168525654631891620478070440718406597108398425596013785859844252215140177001774179782046491249090353191382115776325354217363131702741573875901174406120000500972359479436477579684766562852857495286604925062070374909245312270962653595480826184663702227189426772706949447716444821311598166561178673925030905092061837809976290404553219539989686294023635741144350174710985666965365586603591505212568188264442526137054882635227939130495081507631791470105963046281801883918149102169065377548895608200487937152542364096751164432283721656561451127300167751374128305780821030233520562201163778946603669185796715823686823302868647242141843218428011767927799714082706574399103853390309645390802029908271424147779883788208048918157688857923146546848577770295015441243355832121092807174485514337569334323263145924403977926595790799155452069027053246275567237922571090893321125978943500852492045010632214146991849284079503175184235840395372234586035405183492825933271265034245119582932958825565253711052660941610852229735899024278247731516022121975911241175756308501856022377074587422174132342871990409260933706209990173829941129012241906726079056622920846982751352419707432653766240608707911452501600333068467653275605671547292834604213498682774767713798311712099871714271287317046729089178242275636470683177236136329734277025094761456327725366332191331853591500264486405549964216975747109250185119614963696199223903213211553322590662543025307882380534406751575034429167132127594752710715003009288311301999807965772101302176620726493360047860374283085070305951538736655094128600950607962446167296894727391766443177154950047361217575142248971335203515341584407073073874542729541557965326238296163628987154354038183303315030343520578751686445227250600830744018823804294568904805895660402577070131305459596454991381656370754164119078159160688091152189961241091378081628510918301073484923989129120710107647471131854274839551016354862116551339140093531766544598646615005251835227293052123083689268290791842047163025873841066917062611113046713987874226427904002619951170072942884600128847860704490049585270839096919640763237772038562379378047157118041446402565836747099702509663080695957724294307627851608644336627132771532137285709046140696634616414185845282761662491116208314731128956816747069374890217691084174866202483939076465188759295743700715275351948326155366273028914010699982157716263932112865644277059765076266444179793415701021544864256845721566145457163778071932503763648946462511130404592863958670399656562168954134140924497416467926950177910800479784263243615425513929690867949120253066801551747038714357598552456710426850121890022405335364448978762243691323351291359400147757808023276201758927794388262731678283408382452650359856320365411816588312527079467900525236438220297195762027693591705094284476617984477864276308011258483501073153362653155798345053971058880446777490419914261909646678729740982258847056174974554862348034695596112425105015770184094390685912440273147708627069688894641600480109921761263906724364463791611523189732973039774449472632646162362923472084203235697563904714756521361196690105273448661647179905212314898919322151098870215562854572186526366479608377652916283809331206485372830427074882506610727280604268064055089090057044937271588360968036656311879329287567581613724978766545773004029399065075846365564815326141382280772455077840170917688713505045043328026921543746164565637045478334386659980672237532624478333161770770733361129288721815425354898381461855922173821346570902218814181112600906390975797716068632463217589790325639461704349498182334868454875714607079382423869924057294809004767486600864410015424700802202770397359940268046304699768395787943067878354601471552213369386553619184331014190176322432705022891059468613822081951610811260907565126070862330456966774670941809858874935255953392804738147198172099407709228738135379100349231541922392616218007153999608492628717580806603782824456249060707458458595750785130796326350938037444274795082759591778959959914595414981752468564731071821438809446019985458405211600668272753588122872730608163425500111804461855790127465310600230822595589226475803947763306683202234386107906065418466781942039904741431120311697543789428689070816848767804790500622567134386159844798120911175707754598314392186843469783527885979781891885515388747821155695715961344461557672179831210619001878293649628645232568059159032339140914612269989883099536882514661533496874890815466905572462910082670389550879696739152195705759465007240023377323895440690221700524324188731094469875820080504438948878873044374889300829467802419190934524103578343404630038710751832148611257454321465421948938687874332120029378345678826114648322813796182508062066539007214002197995696629726407260566230978105306194143692799798775045176825061404248196874894805303559536506413315575931424850059512640948752724523824753510779944008229696921899602859470481594073404681896698415450075033375666290493959760952841691432597490173912402567977823325088028662806719698453842008458278947859117461765970659924020301568556774920875256648464342759217087320779835552853742637677352824684385796908914013137216256624519146724637580728292423020764245057371786374350052773859958189691421612071779380805409476268059533698923792162330453934773445974620232031772090960374720935502496880039584120644492562831448365483672699538101051722640138313017902591610552727484679693645506454184575087316409818976134147437832860380746726820597655513148253907490960976985365513210368771865187156827630599017934378438511080482278566867727131103723284251697703251351357970280840771521698465943644288992936308259595272374339658720208800577370930145856627266915976269212529506177945514277240233235694415605553824710995865862870181690153649863713496401119907858872236500551213825642604131310242928488515675404604551603793020092137696866507759698121618857699009876527730120898679882714877747907308477080913564064731780040703996823573249526846277017114888119257833237526472550673511480625578658839472228482613765851171219462402194050850926684459135795449176238668332087806455608932080391781734022062730669689879320168900769008213113612890269518837410375944428223054938730384254110964077859084856444013713317115399346201135659496870605905778005095618936898551413951500872964688230475882702971894282786166421412714520474428085289620386445281302622013424341383545283743208175935029247759582142204056433830044236350816644517497330688533216533683583057119719527044670407216052620761385928252933134403547022280080081495596893830231486142073860060946953713042071177498487716810643272290460709639533426002377290471882275802403496458698591399921023711056958801288845297473462128961340708206066537726011506194623523415098058333594545842594672760034362326167107296208197702274247235746779846665016585515650098266156638319076829169273546780118290815363611182985544010414307961082110803603686204242806199421749984228636307634280261619644561752709423154639509840960852244828897976380777459260792636279725877073393966748928433107492400735014971804254012878366882510840794867601114273775391684141357340230069680985511104091365108858245527177231067063743872235260071948611604457821859566039888080704806777538388344197654535926501047469174801483673786095069839093458693333588866465781498186087859417102359968186468036036959442019112895468844953314574486202826277681206414381280323220571556725462497785591251412804489064226127787163941493029813947154479070679106415728771927051812797975605835940309578031015787882065071943573400417571815303787035719923704245035890220906904229445456604249610485871160687713364893261229179542325116597472176834062218003791225796815451220273569368106746771985887732007525675382713391850717799719146565541358753316602973608849574244284413795123657738302898287499002205106457326275911334017386425352361641669957414449635104783734219715831932803599281557722573670902379636110267631485318210180088087878521076058241194476633062490637980293410351196658757237574315046104124191758277955585655398450920218488299877251082633816066193536724335434305954930918210977973290860684374826946554178998069512124883335610362967567188798619386032514023929212659860634511980179127121157280095174981629335357502015415069362112120251110773402640631693536230172539037124830691103680867406562806015375117158810130725121626995002328443097623027433397507768073349444264781676149391652079532708863142630704003494598947710354496209676442293364540532792601994162469174985647651317721867526874394768195018634164713730831004290167543158704394992404926805227496990488229567469841677323802991434966508862153372845927622098102116494710683716105733451458826404171830007867917763045528687396948453021002667854882824534123082106368071840682246734426761996626184478070889638816988423024687827495426416866549224873354290167219966159326635070168623342456260162508762124730978960500010221775951286408467550986813815137613408477172819345307264121324220761315790640235669872524085390348214140623220883204878413829698894120517680514029229267678464974250695179946916785589800632967684572230620776466780497001295458812577842150144771745516761870004514593744358297352156048125303027018830940704884818516098189082721694779473588440328917320192472712527185825700186584598188682650928165197811871535743485397214806354943054313127094517009061046658102088674766842499391143841186926165841674388842112925561882518729261286961426053394364448294176268774281732563053880926595620676998209271356647486777399563323586267455386639702940737753340593430805927055121758094054072712214472196790192095072182778599446990704638595042644815660424963285441093487006935166072591350617277434607987776031907961900822337950157880525769806052512731404499972195229827316377505302685379256768378914807346264490787800834552804021250707915564321462505236130828776756100907197838165996361689067662594288489474912361435543334606025037576098519520616387279165996806530222891470136635669028757974362366082151572662558053674280642603896696071903527179855083817097928786343748867048023021896321781083175326540014841875745385891494774723563936226211309475773770295834973536826318495286098900987425434503707331508760263063156584446002470918216357646008126737825098916946365851273944788610526515671756178706004795729206854889402426771922638018262051715801156646208865755747027352301027934734366161721676475905809357605433026455350112084806746082854454416595457792980159529157605456560785898744397357923884122291868141632008330878338085339101415932916034867845549413094717601784639649075916359772288115539415764939802249924947288472350839749189354676993800662287079877193850067613650809662376195803096471053501779661599635369659868717892882626276268648533601314719590481622342802576486391261394317904020534360900803428398683883558041565066370778357069866273625740574593496991250970605833007232960025505040837625222061455776904661692412475108303293899380714473012783687384493282444715528290918531713224886992542820311804867221126545127862277138607245463972130272384089151583041452567358578784089478384617649435017484604545276565502635538646021947899153992394007707146080410871340792604236322172095212682912686766745618465620580806756027320323007538377506167934775582884707389597822641794715387433227038051961881321822009026097536056290928583724569025699415494028426120150080986395888579188924182528796016558802495921236720906741443725715007828458273136046529938452639012523313730179191330515458739173157665942497223624001741508088793269834643803756444592975916467098580054528427101090510321337610144448855167080199781816951061828193271059683323727260224543980573067252558710796039206922646671663240472623745678081924771901471944665847006432032040557969678366585832052926116582140749081033454995375565560961517394722734428472235457944036859033939528088619036592600738821505527006326814561746059643059468406288073032702972927453429849713567368196772986441814177527040193847411847396809549799520324694206764699928050146071881588617873062072200221240779262310978703664094697222194734185608726171262137810691233509249913477319926316270164263251268705777110608244027952171130673784703738381583437337969890326975492457678985183932020418894649839891769362027857550337395007683827287968769579392138501261660657645180235882451591871600145345900452119905687563763442549510446356413925699299898971492743405411796948644089456445873293817857369358436032329397840355690419230681067272862441988613695342803047348297366656970479517705064846308408706686217947862486116924164459547850696454692674693378744595629327437175666214498615053449718170845574180576275452133684649892039086641270178711345114552013513058581493603897631978162003076121222443990160352397293728701089346826971770327981254366043943167961830945042092793899590806176895022149562083535671310385197704466215527167251426061057401317148563048842964657685236441938690187290173159267215383557598966805107140355596845656023696394112306026119734771386508536631840061278022620510770828139525095417207352313355303072924644140665426304859465697294813729261984089643562373744760072563629932884890525240024589581145642889063289057728379082566490156095443381193071262871765955661445273204519484535506926596758443024941214818557340672991308609616457543038473665801433346968305264645650137833145342031484604540842977143298006681852021799712876880182691290421574695123739439190583907945843647800006485861833359719308085039506832132806251890979960066729965342128460834462649394057691810490943603260094397080060877619434175396852847567689425443120806051182524509668850819120778787668046325529812605538099635568865885752780469314755318044093077573072950371513057096965030121102886132045244734307592797274336172546545413695042866786077808963456339652553093052122623455561237657753330024056742257573474013551348921806017703107085248549687441807624474718265365004763150800695532540594005384252380025129353630186085240393836072466773037276498423589315954072070412853193437586352426710137172550741134736212099132706181645017252721712711270917033746558506159389430388435419776661434030625562360655209744455165449800287168216019044224876678124569711976450321672849613846895398603922733900501587344205403668592428079544233836792774978208016067885495445867325525453726818965375160143200019112121005069147150481358506752299756330230626176104870603942818556376706091508298835122375143726907688485814158542029116482818993411921575893751334974210402628687497742022483458884240995137367332537106380179386367176400266978896858363002288143239369466983402359846548199444045766221338434314698357319795490855335825884512583149834225137607045735018183565362639539903536980371890254908318873424303234413735342919972404160399096644831843478714780261022996841624082576676090838635917946011087249437620653573850443641813644416208933176250830920794797269175226692046020889207540037338370307816026440520877503191301196344660928877045625180205961575037389250104334038713338515913785209923731739278387733967634379662712514455005342583615104218557984595267323980181582958938127224631388089207893338886269622637387127648405458688354043218735324571185012707593887932081669965392497490072022528003329948047164053844673127898634088956523617245677550831163573502892513474598365577732314682259894485978813181664138209859327965794590247033061038107434177454832389824604083593750769754788889641949842947827614418471009276237582956886983095628487079241327104788414129780100683092019750191986823175215126016522991744846666880355882182473409255619625057541892634820216007669495870287675613865364110800300898199613635980746913937457031821506143318359401060376804691600980790885637671114264407068674145238062101429803086654426949663307137562664499822166166178643957179053494103994285835662244826102114697403257725089277297272077816834434478830129761535688292180201311959297719999665021572396267856512815308130923238801502189332803643387253277618224351079692532428277931687637108644517461438791953732391818722265892505026634381013189629548598667260881733460914061398562125528591491130895055865827314687230847444551945587690256716986705776627023065999969540441407020554954229217976709551554217756613309131219730863789748735433489604887010820814065002281379734639467156882958837271719636798181252676905903132020796423734716834008460247365189625650181846072523336209940180847651636385375915691945236935074256613299132845893853720205180313727609737945947170118888715325106810626950906870097288395385856404674843226771473479395590683583585335858569259231078922003310050446530271568641587553835951030990011020688620918188129607280071695827356871289729637166861396009486496598269125273742398532905662203052490439175677107048252376382590864396758155379851885043736549889989660817256019882994077800111288963072005437309220381903669266123359847855429827817468081130931292969020084257582464465746273039495219915758986568002016695265973421390866478998677565752784402535307889098165772713202270587678261491764657523663397334378882101667985686427343355069404544464224182684967148472900862024191379655569063943356334756413568837478983429167422995864695284225577389785546770550035509807851772329159146840266625657392310290145284904547115266977975481055314312052502119054876511161173454775744906447989283065467796846627131855450977648634461214109919153003143647527589890776989159911651387547019598936953330354893860613241774623025235082267321141220469847737825745225422933243145571474182424820287301593677177659269260965152256764734391690219924647915129441766446732827978199679304717248853191501058855217326686759763780642108781131975970505399174537777057500478580166522685011281756956172183270636156075697376559301028012780412454779393020266717664173681160976241706053116466238337525788614103773442699851136077285412495233389625769025377394252819779938800917227770617861757069309186598119255701956995095163766173688155327717890619917519596865576583225240145635189526173929217187610547858962211597331778734576655938513536123732202034160240115727586427295678623938917036495945183785322340599715778291667692262995040769870983933835609993250722163228668215871630911061377213321982677187357250464286136865628499640508512613209143466318959781424122482084500927245733585006712075218919958805909463376303658931831155681946092850638987329489051445190691824550233540246603740924547167776207338131113222695789371118531490712781711024960807613265497786629433461129580850864401013612838082019629755471949087333163789416695231831640975542671076620984105964221089900247862065463709506184450478680483650087350029068064455191961418624819183238943225154752452673283637578355881590514232684191724771141318838284155385229998786435204257752438924304539466401097866715885318928937624438068423779375002454359301419199041772110623625782672255245895139107151527139196369575031142764499122066330386827642648841576941661878065051946789259525525925064937453060856088340412609825560974753725756327361345487136826068699133690037030277012904093309553648584852369757900514434692767379173550818550200169475738953421732913768194564627808458224149760044996382205808553837658752456550436031219372503387245299036613378338872262039492707630228037620576775303635977896453402841539172212332533475227599124934305417403559653806435434545265660020420593994921343010357814566355103915347583847651235004545016834444665675411424159984706769354394016955646402451664670779243067884195439536625239412521509002676003104078375627186404679239229238795016668936873260881656842352667346496675436849162706296592142453819883600901205620490378622431046991931471634846549754706515193861326713354644711303548133532634234652327200453610931264968345253583696222953915733045550579292711114361413064257350191579266850295748772904549056472227906728363524907968078470271919798134369952143988836312662270039748366835231454178993094644187851949847553261764513723157749141501210928367834789253828770761088943612941913064842785464747455836474936000579304961527428875335101034616224163396254431797039168146290115544091118342874920065157022151867553954165885491740474046604641616630329962420111393858140892784427919266384116763405587453713488488799335664922355044790324511692988150948749705633302815695041710083644466627893320489581552192339737693803331339455268873626928519876632173658873598012243156218871653406729275903602575771435962708596517251701375004495261827844850390014704384874226891873527907103622431244404048199693237892563011618043944536793585018491206852249884678107874099117621481473535949500692232435824214402472107412808528900781411250295060078105372939176787070866028421787776708372777265933793658000898813619663171973757270581120403198333696431944678788746284491814741676360515694850837804050485847717222732368640266424603222933214608577260406994000950198096730671820120449518958411748570445807619971914739341301650678245477715731803396375725100719092469190107247977153625188998532252381829891099805637833364235389719010951990546074080746995082290225691411074500923814752706078945729409177600975250534086684117490802511956072176954390311647081949853383485205796191454449467997370826845597149729986427342991204872194715545974354183462111415340538353577179314958167928205104765246103472045461381156667758522634854111485947755182326155917156139796970323077461908397518511593160835549150934956041966150798705342432709923222825433090829826580002613932708191527054893003148999895388306883189842626963737242750574101577294981897689107595888866086865545678253044541045465415130608965220016094349875896433833968521825898381953413882719559304480901764079297654678469997777010138581702740537827843280951154170822491114563701424354803017574710630323588886069212294811711943903584034957074834758813802506005005925139610804747780552028603089628174991183130490050670629648144623006244324290744881601633403584728611669656044442998196925619007096021127058734634440271766486956702248180890501922592823886185893445867387554586515423806147984858062540699596566802742876389630529038930125146163212340706451435887893007018320309030834914748814068901058251277718338183578647345748277800852992871342023663392441177132373731524431601796179542564995745085514653977735858919359951584308794826551679672177315847706526195035434904460258165420476807053274203306026316537076954955441933319187390544794320571992780183294030841442544697332103973725973013280895174833197058645136444593104992038598637128151456615688244433867528408155330195126535119729708622756609790919605459352618194352705581602111929332793843655555995287852443039224958489804974453978096773871926387225287613120693337423012239854023804964755311197550540536801427583590204753665807433915573179460146700023027028053271689880637144914156233694097420706970141660999610615861401409269143058256940492964002009063533449799336839078802226956495242079923238402964066695309102869690003591399163937313434152153108540488379424577979875983679537779514681142018992374464446105748804037767268491237022674925918516705382538714945181833640742331408479518223015591932537168193127079209324483374169538918679276811347351993612462071573085362200882130185405944247041398459549607072242168275028334476295493270740406635380114119949787325202427141739788128596294072202634599253584413067189889839420590228322657199832040468373035108218445692676197064566951645024673445323846646122760038172570869995939710101347107298259400558709300430176370891772163887081614876344395993986968383565767267368735935068230561754049303654406553598916836821053150830527016524194929016261987946044658962596390973696705480227278219812721456234800417588940766469272060999353255394403563325891517633992466354408951307891101873537523960999671790927731175436456732933935204145889979723398103136610789402344776628850738237719943275984217501884551969840405627145885047032502995981162493544256714857151513348907156093721873444568942065566188169594014401419824067722064238712675543469589613751286641408665321748670805900718378620402811087070321447767946097710038485511662710589830771853929644409882261174731213836016293993806978844914950592299942036956208659562200232344105764139730047631386327763800142817487686202637316222465772046675698720701647309345151365588751754884068594561686401213633007729134799983911891168239605319933867162108882801973892834781197030383363775906099475935947309014283718509881189208612280108891796015009345934104809845510096671977363207966147994675762861403895776271237063240043179699750286086513050512133647032351355787295570992109285788010771751579264871832083830054003263316696291218279472389205925903039342483758286284001614968596391132060283056684662362566019450954939789721831148859110246767756835715020210276370699976398525134567491267031437850634860974341748860816185319197174983020927158826262634036672838375353938363229801342269481906496109633177160410007515923329090537107348191630569371383747321682585287340030098235470953879441865103186247189169987048282305453214699510947470907452417884660838651434094389324546555983892471104404766912875791851219376018281877778029119329062902689034742479515481302300178081075530890789161333927213904896443386862946847328381163296471347328025515164432566592551054686323273104787337363960466978492274011322123102234018154222219094259301776245008885733940853669165148601767254982711619829144231234396457293450504368910724163309478128353442136979340948756747200294423193380826616040290625503809729276239578599747843555173112569526673557967177698521081056720269525189433588107877270173058587374676551497515669923496445498520043910618021400655470850671510686534077880785235998363778243375008511854278074453702978525668683123962922177015777201978628535990387890917103035679775323656012483566864690195116427712711535697182324418674746723943225677040060971781867732854719586202015632091613777797986011931379102508970765169262622614328839426092740814526122364047853595197979582292954357635451378115782569154599295285803333338383955640559970875084915368284447015192355194010807566475567366557830777127649110055180120565009492090342678528899803437539231013585080003614089297113226992626590667138052214223392010038973074589938932751834208420865075250650608908726984546628751165016909999366892538534468473382549020477274794191808382811022914659533283217744081505796321107157569368079558441939389504942735325174801197236550411450079000320674002623302826694099034036276079955028813756713489848040876195681124320606795943745914451519234821284222447774974983435699811453881223554215592889722408098695237389605871379867482926433114539550664414493443922609515718600506380513243396792952606797040706902342726479030865014996034560003320220100571170759095065868610417966856559783471054858848017662434503867963183265150353703998481415758029272545698514919415056430910694754674166702184325240339426727935602988417286036201007771192289573906901582424989054311774919298107214956047716742445535583002600052063507395191699655519731738541567400891995053270309488596022457793018971084030848361039683393742035087919434474335012367561668569036933074544641021857641740150139910199422786863582716003796403985889288871968779070952237028797675337051212744958122332073899392408828002673164955607346403102903596754683206537953271420461484014061482304051295430437318458343115355551084497078678481798437131053348228892923447506889319147750579873433625158963075358814248502640845502926541749082544375445358266439650463271784807305566638402672480632725998064487215338166218841619663724198338016854481745851562281998174327420541877836506747091894016326649326474639185266873782069163437753848823749927738695596082343103087857018634408403091841674895895259924223874080686456358622224240753471065000097703998230780337198787358725863252511674088237390682677672781878119418912047172516406243078532018804745440679713791818977202573602002841210294437628388489904304420508069426947905709971988713852408751619420807163338310307731669372161280648654545092311780648882230158286435941275437969632897740673102066134204265411096145624192390892929916213349497904202627414383042704753079572873059684939785680918873820127432355350846469179132103153760270870360274932821607824224967537998951761172181148650086864617346724259750510446415152792087670579255138820161667898853899948747947977243684088429079823283657307698458223842821342921808081874555160568690486537159232214522559448402316777892032012195238272496829832808939603022909425175905290162912809814636143898033646069403373960195468985251154162426121610597359001062230288342232208732020460119872138238962217995589457537395017979100626643744740189381261073664213802173203216430066254112475959042626880251064696732509679518638381892224049816289321604770160379281582471085633318697801060611273124371341375161754054241307047551315272179927378257286553665809574328239076193226286881102194306044228007076472632861326579104355144190784669603657193305571705793395924375467559298976197046174865398490246140315357154535252453815997872123078166476510911735239043180087819878705950923586263652581787385250130185510168789714378587308347148635017115095732250351387977743790368219784880651789368820540840911601024604156583349232220909910200159566450986698633862237434984394858939783516289393691815620355637401129455044002237360015923592129429190383283458644083808986528298805537302456913986253554595621821662950456871588809440286119473185817626130134375289649286896422565734284203668858027702014151269964491605922611165395824026386790111794571230538791941369397027556418450785351362236228876087981844255152400331996272894486655781897342892923941541118242240368762301576818743576455962425511579172932576661508120163929424000201127046087713721047077087300691050312127304910455506642042188734928259409622323719075472174154756559778245998107734131365940364917567720472754331474619098070516866376420057692104353962758232801687328870210216297456274837679929257098293506245266506028484882721464411984855693801088325170118218246196020343638850302298004628663899615543813629059162016736278065278155100761862574542348153486768515374242193128708227181797240606175320274348322799168193696656038923909796728661672373291193689460222767621435164794050542369720239839161741664180749432219658869343547486738716599200358626122474032821887859117642841253704580329795925210149413729670792448918896548098061824510802890710527165632125205371096739011899295913097550125081920623921238325892948964029892378105297439022858605198675841253882195191533040836357431020524846487566224947291239255952574877464289490405254826431742144536070994940313023634919738971426194075281358692770570339220249623909364377413194498808600680475814430932603250067688776132495059505136427082892757846811232173836215992829973949323128545876075378624680189876713405669730551915608145199154078789149934188277645562505660083986994302141808403523696282211406825315625505380194664610460190940858199933387485871925811941020923704568217062806771042561186847405081710397398779568344574963245460627829176197506846709245281472164634040200241985259657968267054603461952761864255118126141239281825690498473273287465066171091897171151335298646669481785738801269096479377315019286804771933682494416518932783251756176336771166707794468933877110089762171661756814619716639422462314420510855623738825381908111174651129224603516047653999733535413030294283254327988702335101562960335247996148365196770053052425517987107588856408109476887091107999229722048038888176675668147396045932773115450959898332732357410090832328521241299782635368492976362897021516533656402717957370742289965471508696484557924825269551337937201858577233182272108902056293677365450100518086239600373404567583706058645059201891493121937551593942578430094078290462766940218926882759115528309053805447606202679363469970881428057459290906670085233423704960735201627904034970614776745695298453295312938312709261761070375989966029014257957320820543734183019614363820086163250616098633811810997903514468666998077885566736329497704699284849515725714809311348340189543835605916806857278581832679050249981456901294027444709358865867941712094858864869355853552862338435247829486368465870892016146168820309798304682795108951911564296972619367123404134511910302950671296717233066567277069107295983693707329205878302340452397481242516000615862265951147818505680328135709074415559838251859529276228402123540462032336144140175982522556296089271044158111320408619754543397825781484971147773860971102948539936760867526741181282272095947069325949949357814437724022143222654921602809752735299550300355324139352296056252755747198661396439668955664516944636627792724735916970085418550403482170328165685577699420028638826356468852589287661234980126993923405293506062907875192685490152486687623901542021852645215035017047372523127422654766370730206775756951635189098572271120483233393431716069659100054838062107499416441143596039104274812784952822224338640567575175617638495931613473264744427201981489768779752571117347549163245854404756893904635934737758884599070067762431701967223146253618046846933501355323066687492299773307449465100518398647646324573117219861208072682550529913727223700130077426058494547829835236668803659735500860511659237270115463800652013967655859035256211261207658570777708662620217272501782831355505606316421301650724190597158682423002473674514865957860505602383160519630759882903815836565044582795975496481462024133376560514967107236513587921334786524167151766047778567941219810597188565046054741243372164100150893152881846601606327199387768264547702264285477699639508739617007959284028877147319018416407136270559052049288945874019508428983518152384146698666663687087771333885130808897134615122752525362582248174182056610673566213827724742628864430703346313924752439469478668432061918714625717962632560337626422735391524098936838009621325222817466168920961309018635845040139963067969364788630167638380563095199040948895775537689079520388017503139062344754058159665487599729522789807072051882700275488499646670498076399446737733741362840576280230387803144853239464664545217995928560783059925629805893639475665598230507737175496739314968582727284765200744836650007695326058997901898094574104760925328530405480973893488777070782496600563413592566737239448002655109415716888030209314977206788096487690811351774082235216435274683514060775341994635058516587348223053170866941360346028675819291081529554261860809983260145476405082518992997872979547423843137271218890588311875775390916046957682078522034076126169043922040701970581784492950032107348668501178100596894321740743333931482213021851235569444252511091356361914822098178534192548071674896465365973116265048780961067256628354893500900282205293390757343210614556239308838129924121966672064828837886193390239964411161154695791317842260373829884654966282211826168412934415589244197549432763700109588107304837016666762468830462625425649290973214311592374033471871393394873744419905877159383085239666075121754503940214644956031810907486137032188120131854705758436812624589497106096416919182390941104741457471722596421166235134292155164257699147312396041574198679129985935198782910834025040948632530428987649563573200668406397021985407980054160860233216665525671932157174230923696145736758502353308922118049845252167337014203653947657113697596381273572697054154255435275626895144206869365474105626624446660208434742006301735874568901376115617775455945577883907571415786963268287362133795522380865762161774362687069186943670548686319383453776027248777912982590994387736452093689767623693137882311459441572449515007516361459242264932895694223649342611495309060031856021896134612734059211661501872810324340972992377529390399425746144040756030767805782261309659393383244733379252849898400547520142105269431994415896010280234743502627766655498263871919795291416671405024522887183448445153904643267591626733902994043197316499445376204136785254913394880838342173668792410570510401984849008598866746769977151284620869464139784628234564762582001528237337501243787388259244248818214253082035361792853939462665073398411710702977096264605795673015195395543202762131033734038859058708457560019742562615756156669812967901939005027720816943638005760024322743443666899493021243612868238908896894636689696310693603920044959286254405083355579355971376478753733200412656324712381212398081992240962686085031817918643585938423217570276657674685226557385945936146351142397430559024914885792636690945778550653577087505230930078512386916118081791723209416211779693463637319102209652677913937252601451499816483703390833088864633128793254048596248239265821414573716093229093119305310639032435205917177825950586374489007066058098266991429001399053000750485273677376167136160793975606012964800713979023547655192041759788762808589469719705411819852174147756467588048666509101853995394879035529440673999108122525440373086211968030096911335177418710593505226960705094268201737275447988700929351461387851778817160750533093688564529736455539299005514031025897654622762195766371303831326385859730708429413881230062987909942663364884988217647135603389508473019101367656617369823201192429402265525568508183602193659692919084147450418310182014856007038719635710657008744161609831285836864656751694138947886279079137143046824689035569243265068197626065233746950359428435538527662037708745232606980823113656138409774622468428925669768108869118559872723573065568716123385357938874760561943167861623918391069634731668187925529427056937374903451879028425358840004322632373393467450462036890992785846586495118577673115862917301874679820248031709083220718342227835423134023202719291545446746228730454868773437615234237179633208957420773380689876442039817397816535698107374792094307937577907656813317295012622118341869259178351232174143988850491670485173240648699321143260788857524817312457829866427317821306880356101840996722690940207933433677455240521269991652074331230972191690841930544129852834205186440710155856328310052085441016639062428321468027901448787982968613930657213431053884057253550796625825568929955914091346660790369811709344126314603434932149368302380612288753143578811500114779754586949684977517275896997392447496245651107019555822054265116401215770403263442443433976288981601955260520300576425959689306061415290661938164297540517246031315606061750379992404211154795009860762898557932501023751996572939532945653120134526274911707784993965571128735987568274470943015726313243559522837078511881928905996810211713127917586584909668749588515503586948218266885578203363899189894384772365632203231126312230922686227459101303175380878975923460669994209135235502516450737916338904298198375006088052630788762977868140953001267938917487456383345226995769340463996700774980680184200776407205825561764521794175541959651538500565959001858244877071629964218247050275106670195969248901973609566547678630217965468157668178904688548311883112463484932410551365831780404827013001326945851901092184326698700572226686803923699115477675269659678219788060399451983643341672954220749422405432325538536340754977950281902884912333406894084588479268663727581878382014839489365082497104119582776188316872777976558520347162571688471525910210238191211799643690344547549201092702201508180429501940179213163861378693039980271566703075722042294946090329782470907518043233853915538897918496511546184049964826649158559893569223057766049327672159284272607890890014002678438248489153073591518682225832755703512444706987170487960140697979738731213795796087832390443695866254049599154675083726724712323583879919402306217424282593065873443598579122718717815178515791894407038792178556028695069446628421426234360323287239611030599362232847770352740323052581813732266188412781946149238658241781235985830739942100822189623795880870120354037090605920651326211217050124590251484171469045805872629192148706253049468008011513135898249110147933300986853076106588306300137693782968137561254028806437623083457674054556801994356709684911988028397931282244622244506532291939100046625443528593109068799648605156192054394884042997047416399605850025855205384062509605737113029863446070800014778643395131924588155184551649033834786077418268030813669132571219637652813939860845300343217821054095500193423271236825440537576495605898514109933169072710079363228627310430053787769844570935363648639034425985854055200286435669124252388246794497438519117400377364794669745706083926666107603427985441698254286089392697760252692276209463105084736973655334706367623816026343782177538346377143194909463571692889330348072773232384194000304862551436095161263719554436621798832828565387751345937371254123701074421839888652802719480074539022938478355226582529842591899178923701383082133868940917659940635733709937558774489280167706278635477023700787556929723833691619013568212370465262134521164291149721518827227266902235334573644664297847124733951082586667549139058501962290236301711974876842673061483870373027988652732923183016453913654959261017242929802429260112103462471549951861976501695498377196068272472334905362875768928970628952948636742587063808661073634456319800250438100691559291125615866755748306996483334362811599469218072771481826548913838105114017673400295392542292641559431657642501999408719105728144455084856059890022598361321169101709829277300801464396098464626725871565343860726916116359346304491085790937870374394630050214314338046454617411395975392394066854418097145097994247620361557945658657474284646178130759378128404484923712855690371379302011161376855902579927543163918742436709111262447845045782476825692796553316920618519586451560589186452581926639290983111739416350553597816672785714849415046096848876891059870604771831218387799243252380442848042722453266096593416805035380300992367260232569979707202305370010898480575818411524597097454481060227260453147207948327949902224938581879195465987871712705311938403998365278769829356168998551064623649510850041210432759061645065756135554552680503823119814528709112328593632626767315413212124333627599534574789298253295074127612697289238222533271833412305543877882562754953918898425204755871291236290398042408970622222315409649574168723562447276067770880908285943646791954911065983941338559832181678556445360210367337230322534308510798683216902936102491650517200379037994450731780366891386983718797815920488925406130471121977553245761504870440397390699880901945235944839205415873273647489356159421173632068563762273822579024697393225760854898297133144771815689950764811849148531134630811224791974219245859017166497976944833032591275620155545437878924309677338396477345565081480800477345248830130842619220643454644205198482556521072536228844576378555963423590032419398318451116750040752367196674994716698173366174129915038505173176837793689642438775152796092107044577880548133278324909741428576720274602036485468324690497917664384207941803865596234115279411746789637014824732009801738206249679248175501045125759716170416871799243863029238035309239104402971728685819714522037826071798670277003439099430620783800249676404712475099057819996135867876981793302355263554151056961913141161831299574308206451564544726950167785433598431499749238243286616258478390627720869448893092900358770580575507949672358204906968356975755793772377662369345982235911291705196896584668213500697965183560262498855649356031799962570356312306293431742757120675796059928861308482335128396652714499479117772015707881654581001503751947522726716692205760223157081044755577453736031223956160606066014430652453589213940835538298252316912339264613750970500081234460211066662960313139358470190071563264414762224995154302746775163412138619732769823590210470321177764240230799887621658528484887445301486255460088992184517478428878874616149725422846905956973509247295190106408561934892476653318894199876036123414218755465186924550357495559768148019764214461037475952052810955561451024743331899165950270752347060660759180872690636873044216032473250758169493745786714154442376098940931016625276394591467796416739578741724371155769990250295559449719969981511025506402350143882567490570230912517720829899541681902591655471659629390037888171010495638400782436660089618758348620580491747455003832617585832998959783056442752605119105396173171713483281317090056257440792901279220124879391686309906463393153573224840445199036934215408620102561386622015316166060515704279985242959412035119264880975087236410874078162034369497727652998291024923679704950874794733457461316083705977629114770765073064501522038549712706754782615041960798362732081763402700995618387633838637699450286647047180894166422731448218408962737130035232865925466717807615119040269688759023217323655086266308056639507456166920567672851413569056205848439247893431481841451339605888162318573236794780484691298624555463722377450388325429787517238273273553605365854858929900002583279097554804433040027498674160795527539424985337103523576817938503594401562343972582552762625161175303734664583784449876729037577630839580067260077140574961802007670679375081290494464181535663154231165612368029634921803313600248766322981132554387354264661744767313110179996062944704572570861557202757635319463833359384484023195882301398158227265989855200873793300873120957799454465078489059544208049018814754124311744457937318819229045792784661822601591187300408928737057585048065735321956036771484895992058718129188984044296330771117741208267689876569898705080156022473390446935400915058760641880103349066235396336848902115772703734054902538848395419485542583592029335949225543621602752769917466946353752565002879072045524469462868658758997847543209732456749695789415470573796750108766754446055837046610048214326471290311117131019640465962637568842908788454847410032363578034208189960361422792819216918361268519728264283840023252045839370486149191818512309257232435173185282675302898792582405820052089971645495683461262699286299737477630143279931483482888184637755353937839766961359411608910920824871264534889252975199592976136951553486532282230532403969788103963788497732940296489352119283213973596905666305714378060782577725004809907167462249001003337519137248616645951048654246798551552108578608571773105143530697345150937285802864338379836138337135647533031728446689443936976311645421170684376027753647809058346682629789017101907503365161911048525258840519290852446903817851457781298474590809869740462313634191411698012958802419473101008234573795093414618298364680382534065274386508033594993207288180959614091687863145794734496765380839548849877193828521076698074047860008508023147590884284269040431342265163126669740989321422197116344999548326986206281764864608426633669489247740169832935102710209867961374699165720257525463942725041229426352313599591629577280563189526001269520376144355487048187906395102398163863213231507934765865230989797539052655580876381293439805375193031047249818480514697892921141443691354593885655946850436013169855724574737386369022622856892015980933715504466116490562480167282266667630532707822436267849374888975284516735854432737231392037797646932540155398672944090574650906306539172435714487696904510441481936522520838595254641133837146514454322125391222306460890900711486596654952280938165125204415699495348827355178541548961308490222901255599639693161818695081285429826723337366406114509709947550258113005946239368323675253047371672196777123619691895125445835100819916923312034245144392491703249178631644477124062170618301476793800577323327913320729214315792503740059783148107473566207297578549744538259957634918917802511214666216645494677527371405796251234759089389671110542809167156446951329916073088710500078458048387730145780474060945261175437306140463407006402428923095340936329699450976748546740498672903188486033890764175954023282260166660900156488144692258770015745773896516979913652086972872364648944279441103963798808715861317814046832426755747333206836474081001637541226052419101558109212345816524418650634325780152831798126947688330511087371604180535327151100056691479901574580653592877320448932170391627407224113651542422845709892177937996706549461804936275474936074116095098615289720305390935200957955381263763220325756780870263488835003945895541516446698800862129884005513324731939854519236479081160806566794277118371896907544559738895525720025953030117051303334542163189571463470602415110775770633431511992614418428044067109821522885543223553060427610695384291668618770154306653466704455122998609354311094493514576963236063528441329198103111723153537834059745897234890584537759483343825310472537784042683655590385866632143731681000030185406269414727484585144311047809887804343276628771486195508774212681459694029722818037021164082227564712336248937492346861097614732086810912988055305144030425337116878965181506257707846831676889740466913106903884552378490566338206362152695502930377221524335622221763445464272599801000500529974776921427752475734050351385980631872141847704593857671948774124666952486931038376217265497222060489493817413550336059800606933748679497959596370876620603800954934045031148401463229964833840244888508597439901215512639814578539427915825005208746398192619739034959212643162160095888052927409703751994961073457317364446860697550797170870267175291422066056798678121489967161687496777807232037488876102963413017343810827117582697376927462425501457287997750305522869610122750562939398790921292042004792777655288961030752028352266730523020829117100138277673240410190780893680834762966057198972767455763652225906846969271747915435435196991620359559106355204968966010145394722098425482108133291309241465606644051747791751324087115416827507585166608319836492980491769678255323514335007479767480409637533500594882195673951902950741373847481791196693843917127462227613515902567880760843983863375336337420613449182440905684278948400031017401885486900585583308471885452167690045001210927587435890955245246214852784154545272322205735887780666080689632118788727406528857604126867870280837223813714076762449897586048044829271713382135711272601227990991819572872268274986678059684471070971036086684310349046839455389673261903664640103400008444425586038392190007709630734564017550106554604147008442240338195160451341345379147659103923857116375281417542678453515918165744548507747536379890264902425348066612632194785571405528003418672791391622429567298931210316041488623007094666038342511555880974670600130826011769015951913651413561519925610934534538021238488798391181981506886076497414222037674565750978651067937971256325634297256460313442676200040321749456397818798926930524124951728748520506237894690086230312714528512484912105108326607002585442910950302148213201583383061624773058192007052717905250826830848109525161305046023421276411883046575626688047206924960033924590128999589505107549784352880273006517912743967148879583108206669141974357113846049072575200962732381205741469434004621685181349150135060098937735020010462337848622853660802065965678710738743794104372786344238876522982218934192227420886825399988639973984662657993887141056722093790216428389315087819006558510076448258084367788140012552963070494101914975691020068662731636642320029153051400385621893858223777831784685657376408854649007919165967791444882013942235222970100635930331771478476003040213543109701644409244283019807866765499490986103973414218879860132308368599626629535664949308441208717722009548507042788106922237145893353961624761130282229982457987968719437671247655363313539220244774129874054545948626428758283699315181694137654982386795038216809465101622462959729768563886944771230113469799977504131579595553410834455624598049874062510728244775925468514383996748143754529879635714646575584175367338344147245156356832589376680183308869314431060625655123768367434060512182513549363489420230750983205018552921183511120150423849793886345900603684875682044212929203004552615468275422574241600197865134397759258792028023584965607912520646833031063905691265292949666909049945716508972157015437164017094108719174569900416229185628602937896838522076051313648787050402464734947751099986147160462603481642630003624984832627363703859472815362660551733015153215933922109011965250849084260241953227411470837807318935520567531116276747244957135619709721177154312002354358379868071942662412779584817345265350181509171115701490691824435255598907622956258797637375826479787929726720473525198296643310545161604087257067363106389324408640220248823432166751043042610170556405828639544480495936693786550450136270441418380597825913587153016168851677618192498699445327657736728193173851574653489774438432065410106158474785321397696404459885289272965780087262353918716144945148604485084790073917299400223636903794940884184557228020992334260432235325166488113663463208415767304572261454433246105816047371316158046496646674312103844113616245973248907857394639834927650702607744260648726152713480784398328375985804682802057699271763494643585806173920549084854442701749749067023447183456934384240573898513195726052163053396396866036332217894657266413503122457713254091086999732446801146700306559003607434530567987507307394914851561472920690471232842873268240715935809835191773476894510031576368227536309896664017417320437517244699875197962828389884307186044959921505170981908423079391619849759691144104798026980382590592276329464125914297864331713028103064787612563920138168561724052136801599963507898406912654614075577147765676321137322173456015338066013230658156285547178498402598113242895531659927364588000108240184304375138048509342664819211181437971748351670481609434037762228672533333159206421077847623401722912858103617604617757682062233739799589617777183513441035537349960128242854418739731845696352107345902086669314117417945849322349112638648230647577575800976356900703999093691802263471837249504080938999082754093901422885293272099250094964583989221871558388413606303271433016943803291265654796685124907991634986319887071644825175913982632389552019261953194606466359274688289784394629572399294934000156133779373215822848702084550240817313500874066983049612539403469447763319177534274711451413109514367837040890428051215296705174814470438333684720450554121886854002478410667747760994819365714398083979464123384535002645234744340053333402420485801718590223630345960294611053216024895495697638479399207625420402853081557089198073648326015815405629465080280877478427189439458780014903125568822217800593408296822786786536028037418216300469498165307325746100513494513911465445135572100572629228712052858284998957688089434715187383478957767746527841766255367313951945978455063398168051490379997991535072338408898834106054239523687200169848381734748520810680058453701690100066593885974965654188206876324820775466174703127136643063712351499285885846036264555665650109290626978124926803307780377405589565999481571610613622792380763039252297736832048084151340862167787979310856849504026460290416774829842078117775304980958284655098886256169728655480009219040495701353292600002865987798416334455091306444167124222293851263793618506396279970674363999639637726584576620917521886271925516766238576286539079938109193577425108186650557934645137229268911830627381311218301683116521649063281430135315185903008163426184602181853219241150479238038583208520320344332289184702365394489971869823988058992791056415560510446102367038242891133589717623274585451852869683279617247412750405202990497696083634293020355686459046427655090133275455935727481049697686194817179722685431275655543057751775443175654345107651489036887762963130533015380996664203460295021700187105627436099748594430534820911926692190097355319690924882180701452651697446537057773921250911493823531037518435700869599447975874635010772204225136122536272913384702359050005149501619434708112797584929682222421817521799043907772218396306450930020724135470173758684409562942620107122880903870305148810350899716010576783365667942559724144857281487397809877109053687275471641676010675207378976045544648385896936033911084086905059757066533276787367521685575677967504069923533065406804074904916950266376601952725187222086390958286670298462171485789275722766292454931080310190700024547025516969418475771926553994125663945396526419203175447123690754664700873082730813456179263461324469647818640869478581605340411142394257963129954507787823284512499262569340026220941571545744983390823814253584418202973621606552916443683489411862791247793760057271315467464810857225480017847180207773610116481612266902074642364264684291200141185402829879492623257897144635899941019104396202700224791183490930687334495803507880230109003638225077639827028680576117648819854753815023747175435003655296912668931184774760084215273360747170964297700228261677464053176331335744811095159118583994337330371204580348004752155913078218033170115543379300391693824845132775558049448972869503996633401646832349150768678731990155852724951241484227202275706838409283261779060076371519070780702983917726974232232234280931044099466897446531983030086032624396924908901295567603796364516484735195108390237568949273333308345159271135986131501474427413207905021630492518743312642281621633747984238195679968604909365535612829789107183258546446134324575443972100952023481861144055442050386862709912818105656696602472786916579551680143124408188148675700882677954565455084376806598411258052428268477119828606012856611344569112308505158874123992579410441491926178911746712543007361301916266268071185473940996366449908712358840131264751216562325905933896829756501888284828384860486134415991852221802446623152854369827798136911083351133595779652503542322418010248824382350056400991051666644355344662960979465420749282465725646300995250528735306290597935062859309278176960511427888498892010572997363033359390015384743030959903700629483348673080331848560827162443099732516356801736942784458483876223570469878348783074554025637222141708766989928793818387336877039330317320129201589973121579296430024627405553209842034224678428084007647738115273784387662684013642977591231735990954500902493620560262008662603830178810701902157986280128878456511019329256926699568541009950133741257161257134107621623622623559782391686575121051513488878011230466012137145235228755835528629384287513639282905018978114302170409740837973957660062112024399023035228236627221332957412883320423342515689931412471119103291913179717728600114968859653273353609597566842014303209719311720687569647532064186597705424242435693067312383438999429571299366669184739378052288475364746148778671548546940646659599696425009547375423392901071292012808349360669011168569920190730538728256987511064420728492056794990813822348666698564583058674174950532474351481331772462727227036868287037117589407313682718646838299489879907066631722832300586373964446792340603148298026912736752161223596664119062053835538917687525476084407853349723765467150087563931940108061194769318278075131092915419386529722960902408417474816016059034626095051860367259061578669138831380836687618863841555850802419983457809124177380527014266004726812799219201074093987886365692451088228102345688008493445732355407647393277434410538121336796597988176520422899556422567981438050958460831079207605971731494104260483524478809631476072107405856207704907119202797832896177504015491849621962848639443376511325495279605919134687298693576482386994327432593061854667810671848561725122395256105425746054398007950684888750468035931657114692235824870381676676984794474120892124553371488539447188903957059211339753392573019455266270400688484488749402182550412861976564562752992838744030411331493680688984279842861076766048779923050497419969091352668622930390198940634398770590865650298501769551659568840962991815733848530107444794507793190989142601965826572800616073105779492516874340240620142464007887653833234748704204177240087096293224874119060057669375669064074178185950211431917000563467422478632465954655126340722715216940829330800371937586073721289890826325407235172765417365643726554034522841082236975139892010816013638923232252532765666755202627043753002702136891462352292783173035510979239711211982288585752569169361075734654413904129988355863103522466596412750704105729204171859146503793779354339578593557694899431803955409796162964969080869079288729335177593592613463547192132797983792722736515421789468014031179928013799603471797593429789152967344191709787554178625386993159856637301766441356416597447331860505588290859590685308040369222898528081625026033294121698005780368160013714521076144751467650954013831508436563411664311265746226902726597204439614619724221119344546088360824779147513187736408814433992565113358161973011339990911930125067224123124606223481974231080890565929107651860788399260452014779294121441301655989975071693015236403705426843754856622189615883761187076857902190674297860599356067198254350774080313134201582561443895366865046874425652896951102501184558886183353787899700640592811136730578408630982835200217757392340679462250355098656844532526602869791054176484416298936201260411072609872295735075320216981500413226768584126252016852451147762644498233863828276777184562046988238139673499726191232399600352894903383281979828933724090177584635176756942646005167165986706744243637227177938066648728292923684469481806968995692525639320819976645461433046957983850781575626317412949866248240400885301419228045911514841485817235644683735300838354013323241353719008704980742602786288052595472332423921875805757019699753364124483150991556688145464495085995130693637366251096515213239768357255501346998829667151186026253657930833187590527379669683902830358916824441294203763822975468861120166904545077398559946137335260409357183665509554202699443898405044616475077360481502367649403141773220262119320710135592230576636456214082519653424432023562432314843234958201016293946082982509937665865086770439437300952858718977538053949633087621996374188718965304947277331642088226103790872449120704598349920577946566411316750127557427571147288467774531772974666148927020815074023986959780482127523967693516550315413638455296697891018759638912225846701204309417898980953923886943427239287633013669411997716443083363848054248753681582718719523657879062547868351094425558427017188755769989941022319785675422315580680527773929617666892582334084461201938825061538467628347290638644010512874977492797372463897993236225665835016968181621627875508001221814167145995363864887333776924876513939564392392395478657039684746434614859644482514603949801165878682932122704315379808174509950467893332188216722382402561552537402495136571752749602827661291585395738844779353779201998199533574327229864210394117952856250932692026105341313166676901028251137923466980706611422506772944882950431905721027196578636086468504996683577837616629888490775651589996446171394276279201367896472063733844294744230503127690115404613916659065926492466554416611488738540565867243684053437796203046060970322488741602724447026731451057179935814386190822806018396433109890136580606372389352402093318235639299434420976267163993378050866458671750947235379182293964398336470493914583337008929466763217914948517477970170402824918903241938881348187839226598944139422365155853149206302810088386260571336915488849508175217964729845378308937242394285516836072871795814098044271049415269005323995749903695730580420941390919773924015811205264617344817944622410193713533795380079950011759941915443789029909947227278090656274146801628146676135615589393893136931167261402173763016915891468155492245236743322016591289951537219858347947625370937556258649382013182867449835718034914099828337523851684879074852366328278677190439754382128368969321325528793556751277100091852366968978959960199176508336754502037637739905227756989203819960338836189763642490908077940934817587267897159728223794868946865295134045918560143642516944828035825005866006842519514052288250936524452691946281907403770653560559715460673069930437296753407243879953265570353023245957173032810554441316442921901695913151948990144559571532511599951686572726798392074456687841587450394310946363438625390996359709654802196128924759064871906522816439030814842602942133928008503579462118638899999228628213585650313960065026561038833178828060829834810554702000903114478355665765611633015730265006354109952760691178781838515366187422922138883915901877330918651696433311816337778043311476595366613700824002888749385114057281307087406987469051013488437783719466794808637260709220416806524950054208223705165430757144569528100135013836270166703283706287532391643833433345238790472743756135429831044953968065555226093054256743597281665902844699006270282655459618578292147257124044825137481687032653097675637416023993769367781997543718947104857951374244046373470113546895060804530935709771834035426449975455674564706630399279764299699720497136687200450215430045781465042905367267539264198135832361591128425424150896101601821098692092373473324549681821551207706737191110339986244297426391728477425210615546424354030578078794173909061338127367967231593098323141181902361915475382731435358179072470301424616508327985303632602819673694412720295726720871879423465703061603031626402649983801483666089633311036851780267947900642088261942619579654488717522016560439349601183769938316985241308126327283278052704274254353577005813139228480416583281819147725756591705111450981234165977605554411927510209495996293291295819345182363400403020724388724258782427024057285317780307428903099582020716238096596789348159288064506904494740809375585103847160722719518251378497676957635665293818432552661615459903338875117451137237682610183105004896539273553745689433630991080200361045835657110683929271817533154929356289946446766931550281329043770238915320677835673729977085964988022073176411786398431359634256560386109588513507639489325080425313301838718050316842089160475171259349342991572291068921577257965314286924335837926329866195727575702290235164525200009916005464202416412964660280520176849255912442806740533857002621709835066315540414599179642781236730826976833423536200677808237326359418915044632970345677633019964832289059317645108500823355336226447177233220753573633627121737002074166096517452231562782901775517587010327251920075416890176493668052113014764330111655473383897336665172470304513584228299010118908461292260732054381639666184103060265812288609498805625034630787215683563474384142034413050446788891888159870440519500971273282269112587799108688907705493379468117397347489680316393869516876363693024785707386143027627737298111125366548892472662825724677750680807757441455028623024360425003551664163588731009177857710681750714688728344508415283304366899437550248587492022278917624085598038345016625687776388528159526575571988364483061257309810868527269210117544723462841954223252648106262904211530643878541146579424696432034053452541844461752281815823854555504303207036649848218450783089579471364445413919936732893603381487811310910342147727565184555053993803527548775024234525446560192097395967168792531735322779362221780173690272235422787319997246011947241501541383121942728758186073372284074677691559113218403068826828692753750193037543032574698648886994003291834029904195660681437812340781891535439664420326451017740198036816800758440587696391658070162397312001196966476548448170829757892982112976695336423485928628274101658039992486026373927473948105858435042767495759997824248863327480640624363740909139658396691738397984632938005431113869894956989478984366267208084482530449829608635788036350976229230003619920633851522483541227859766967739452932436288550750045965214322418203951569450251227454645923964688250856705042096371070115128317160351112338990545954396700737296821450431281575299003303489069156536030674033921294502915290826484804459129732783756246471160606994008103035327070244962794857568347827016426800734823253243297533186367884769483646489288663631658150392358601348024433949470345235038852184702211167249285303216673435342709090615171797102489730221286390707762562889847714978925030096015740535263040906505797113726970039209658020500384204044543633580203968891144261768974712241072368178930850999969621656475367158856844978709052021682464440582390593752192782563111174471446372667148115005328561348202012272982121302805841554590053628796181263668641266978737053688094173465759097063844414051338949951488488881429201579068441985593501830804267182075733110711801085877962736489654218976620813141548090272917628139234375646740244158738519640835889935050708330237610999020701774028820733855613449253156559033542595479589431932110952927613891118175694668252378622122383621884196676325395271814034845779761740679783163309129094887686505778644539553842337653816731793867058137612196510573346393386688146991074595417368874729630919534802559904916483868087731355670260697453589496680516922504033842138437518291820340860379924749447409423393765157985223475960415858942540034177110646468988594983005037465703190213078346365049773532597258815499806027697876530108542697193262556961850384896933572105272809253931546679226478704450245393617298722618524480539167974013047541103032878227504034214087609762961380290531831184483282344691900734442105419033666221318515388829136933196334166215595378411305287322199124958204587117974460310024185609039406137065679873193421564477056480968330997554399147192497485044503089539780540080783364322926465653825783893173813351903746343827684766520159068400598399836056455670886183253737747881513376408247112015531781377135853603834876141279732785438295758382640546596754204676508050022173345038620676397829241579001717623312594937448007318912871936252147096903530943897808274201842026876089072974011158660098146627221930886515979981104562048783178485271880027028501616231492610982807892475984011730582738740498259044887390101680822256105946142189790399137873256794909997793389622614197049938916793074659519747316115819065538656268149323128965814382597086008805934733341221855499177508887244381645247206242089915591695179292999117033713993102861613628828026313291973026573800384645553431965982289085494233338688183308159837886873833283123218142814516344901586970560372598040201928932619926661259319592048211984644521224302145967740730886594829664402835781225284726150000437255489739911198852756735907580562593668900227919046398328619881478703502742272014136390077642821573098366094014316554531659298742752848821102544284350589051202593145521276016891730748233445613375870553871170574977033832041494321156450745543006745499021258369342818277062971934374165829716320979180142176583983327565070794187803860395554817645500118120378646012688442300545653772611255615975484090861994841396699246701961866390405140159535683884348848086329495842349251721316897283258922451920687631913133349649858120965190581162850051708072887194260522775008061592722374529934185956797852109432777083936171760050486068566040289156507858418218959377558459731024225675803743219530499741356996199423824006943516959396249278232945134462209404518118715658443608932187206840483594840840686297524251272910854177414927143550167648810627257505794128257205529570897082163694556632499659460409892035670471349660655255215236233521835458761098911018169727022552141741504012796849908399535871267731504672239468877884366243772535239210111218637880867396154175217585953232554116437151291293681640111427825059400236326751849987290353951327128619084686529160931529961839959962414071514132624009604482142445822098911468272144522924796449241618118535101589421170725334722772576395627158049783647312303282124382004915348860829593367067950064695601822438055312281842857372302265620340207962659149298620638584388616225526056430914882205351074770383810155815246786088725655320963682145429077484090569706329406503983502963501643761455160429257019691387018240903454937855980182478836878885705908144978727983199138179362768276314226259552224365272177333352293773556689222092215607728107923704796382466494508609835345495858510927508450073327351667302451672341119393679068775395950224878160994936612337626926312592833726751146381459278020937019818059942802253728505511811883694129568894398036710672592843361414143211971835438709708458044316868316305859154000851755701221628789276496382812992468398459353637550685871050556470784662182386651310072608379458247168091463426150449096370439588284541769427045247907804932788998631079574616198736640136561379972902594588244539989686852420433666752833376217544431707849288345355191501528370670028793457677390173996059063492867954550403141492771429458156397913518172112098409920398709113797792636304795953334679483295792571044807551354123160972115154861135042534188558839248336347003973225776746955395307324215028853455157052912881672030914579684275500050778259099090414212685691647444601923578407064832007619975646591032112771525984696211957371742482017229943391475013405687426226265932448588574615409755659715634212634785132922112547067057742299713828976340368983172337918900758911906470413324641846477316889753804686003419775250727846782893954429882930060791493462771248692532246104680742973024523071408170738856291163625677810762095994239059560691509141523885976965728568437779274640230485711122455229647176027397428629976510503703487193202476603712820488413336283897589920626853279460073958003271697417297607590651984918868657795922944351992812672884534349923929061840337333591949150950960105071178958221843687113205976128696767140388466965478196815696617459044269685829082995959953452887096364828033545518847427386304791937258521156724466953522758466921523683927042435307149034488870275768316789754794585228949702375798691453716223975926352727714377620868576310753900532024506338363231464578401250776430391482016785901890555246184559838510163579848789759788271160629725147515521981598037113310531489473256246589683454987955963423585953334869318846114489009532068329803302299053721125305501832422253047739018724470435780221915728321292321029357946495808014059344895697826057019751252603395908513050161934373374065784731392445629686373606543662972782095004505441150523664919969182505270005379579134874864933479878910792133271970068987871644326538861363670624335258490522172733585392817855014952462431997726408205966917551749204458790111827165203700654651156431593265476901567256639558148534642317440153859175541035565226604760890925709018602831302118010522438996835224368687543577288393445773277429017483564670273167928164393487434494363358730058524332198080723342945451781249944774574280768581939212358443299768171976260842443427325288609132979329420952194084082601158855824188479886418115137780106791044603907959609659391490572549099915579847455181423996034097453204715542260567700131757336655402856073230410697050745652884546304473459439545466034823708366131848664779024500840100635436835862035109347676840387422827730093064440136045966987141630127856472323834798306402756246685452332797771392232998855482360265925775688849463741068037255378063108621283991558647778431162976266859105809480775159905059656552169946477327662665935359686253443844190462360231867171762729365123723922894101226775825921071378183139621509640364655722162813229784008498277817114471274288113316437998084508568102714226043301333743716708512639480969902358624993381534483099909345156787787380510381540119301115483261294958781692373980516125117392091820371430782299447721411549456549608712463843330651509290480695955059687304623487347570783461539656899484892455110055994081776160120555563813649576122894773988455734391278419926759396516369210505214709146787353002223059763999813352140882160508805624162523956467108382278405332548051906274880769212290569308496736450396713344413176357232917277463906246582912529611485311397896613006811203980175039027353386234847403510422380185323119030351954479684061704982329898344307484149421173529884452903663374941138377410023531670495617253410039909234251378971077798833217710319503748878329637563342610146278651272298098197734454019584274825932461005613342777447634469100035998019330950101481808251271581994833837385259060429864512156237447520651259504702588838504253550810496298566162570437646803593645743249745791005280709276290875613665299638655852907817090513939918766788338944682223956263110924498737528124943264787963744365099314907442336055390103589505636794801096662714898372907651065961321065953134689806029579602940660781893874019464623839434899837047085787490851748432688010573830510209079918064922584022800246224816468974362872036115160088097855074740877598694264823748834119811903452601933040892739981534368704110468165935200460952490339157519973436334950294761621465561852329520030512236282089822091755792481909573533478107229723297532612849146924958055129522179437470087480891221884447059240825549741553195353080904978379100925726453030012336153781853861979672074529292736060552062527159016605056337515524807008721043807052855056516104164171803020310922529546881976051502280527995347774109258809346521455353923945012253854667405480728572630248543442501392942191131306613155891804700005227382444141558359507433876039986912870547010218699048315041318036705088014322997491301948737886623985306699699691539149304365148455111022811572785692315043797514966710074840452371957248105876034891550490284660920401320184291011587151348703148240423443547761485015001576023131771486520320412631916015835989441469672121007188976495411182277129575287820872491647665554542681893511809924325508085490081505752907091406555281725937764490609425212262677617357704627924582286235428417293129927884144826576143918314911306924917730291424862970049193680831299349786509369517243296352801083063186214486992861164496593506350584150053710568766208511402058975401744100615982753167456077734399450029117654935344409042799817236349519565530867121108053563127766719470935924210455212384590964309308313057983804283123796451607601691068517330974239862021686001628556976530374452727156705886947682240561184878151578926823559018866509227938136723836319452670434668440326665343447439499332787170793321159923930944390231753742475036267283929850924933594307333684286554898767608112405149163685145415927089261496283772567297750314522863777456237771257509991824428447200584681751222919521904624459499709895058320838625061340811862925614149404661277297816297864912755135434985911011669698264914569183466881986054067217672528231560356598831519213075504335299189566881661438994613138235479674124238780008751554469905722814853189164868630697325527474898596615305151192653907995174766908494206945980124329675554313664259979970758494224233054108486513318509074735392113546450580898874088522443165908146859330759896876072867645319412517846595315541742697974703487933332828300027807911572635088287695112782739444974991685633171152754374366457195105077085436100701550641390245569454345391291693411702562142146834700995881832716614453567884031814502320386312266569804448468410624987708442537547288452576397144528268655100471178824180498847937171886431569089924063798798535009377080002337289111609722944995280245511164281970864635127777670475672095298764752833362307014980764713407945455668788980210020460891779582208604402152556441457775687318119311315158079648672170021425202480398468749189339240001439968358064884759942990614988768522009173939017776285018018270158326153770089848313912371660873005325534984211812748739278743339936189258878551131950300136559619074919605489882640856043010116304072432998977990293214234240735658975775281883628115537615481558473938272859046470329760736152225058826510465176049366281983699330720008001631954275096935938638395002593637313123842999192092749111266175933364762343392680226356524826701131304654926828301575517989304385253166879005485787578458498177232016626771227495046848006479474848817941991679168102688261217315249648911021670600176149904843715962550924417682004684376925588173539241546055827788896920114819026161493160864633623040924635651377876874282117732295138356903721905983816275230221239984287809863867800667124703495709025041019247359540553765981586534026822038832992437358385761749924100805296937928983451541115589782189210105463275275472129816294005331968984419358361383536274044004959973255772614948527431183303386685368664257496889760296641691486641521621826425941893755639224028675454607091775564376214694153816000462016358666128678777030362117893606258903288326961293915407311931889430772863024439161968419558402644614759110067634994418850178138773660580560810635071847349971751515728938652894566081848661483871045558516793987900015955676151863336738457824071038291203866018829625670566747958584374438844671243282139933969589461860835178108426051053517160572145622920445104760623965720526466919711146274877291079129340047957925621281721632565833523684181019489833258957746133872733592293664676599580783871481497480960297505068340702391292865723411939353556406352016163603197995726528562597098184712305987073786737396501780144616316747539181549913570249654082182574145690659883825709940655968303350503654892492700858765451118511669251637699747588538242502079679653502223119314531763828886842597399315811142992724293833392001332918482385380721153442608244760111768603023730716070788705106806611093554279369404774212511575133231397528706902733425808266155541292741006832777494302808694116865412182191237338648057037395813569689908405943630396265068837329194668962519526119073875718291956870943139621734392405919855748708737762539661909730827398099896760349696429375112489685489249690249364163667912768182220725725745188065209654113746602836251983132407875867056494537766882208254746752760737939079519564580531543861585588063425751602073635492424463949542295086749538798007584779162457982429206388248827386049119513050949434120063125339102730952972868860901812916004021167884533994284497651206980188358094700888638012856826019605007308057038193403534745881350805665057366624371298172857225126010722795979884100291782215019195682090808878595062969134944646588072661201810903587005801385251921635075225382830188022930544417131076414071758774675421334038069747840071835663109956636025301440867067648788900724385259210469237796261736416808615685380857368419366930817450837322673228627685776214542766373666367575021346079796249982672063591700421433623288536498780914015053031910735979393338630376347109604760992966835721766074021306167510274411872998595696655553697092086061003950501483690264311969366508198147916728173586239128121644483601128755564381720349124314740236395445750009725127496453990306756689296023418772574366404411786103843717462145733013420436480990480716598310695590369559331137134356130981181572075270215645084746663930882368505473960657562213088433471997362916573139414925186259541247903921015539062837448548869854736767021181439622598531678780416164679830073088216041827524911837796047838898205018834157866804347583362374722076009465460145626301599514478909463776745392171281969520429605067268126021251877458665016943930073376572618665824153844171314984530159795115843693122261910235475886263915446981533453394358548936492618544926165201879257593435221454875799475261818777426325139917564134224401360736537321152939978188242202862296324750143117909822021611195668461627741337484415782960959997296825247545415418842554559941088797809032617420955641517030538317290270453340509901363535640688079210552315311127725035358638365487738453118573632249732455984577317199990497151345442887649201883066533990220996731211984257889212140840281823350034265937578715496267424133905757356078648725913927439341061316508343103163773798147456820977694274819628072641233276308741317287812242804797322241762279795665885380804241632522250663440370236217988156987352420329042134239105621596430515675047395057193875690813396532863971901548592410145838277584040679905220721130319995627335236844282286758456440579070752533915509816757275247866078564843107406751660734605840391452300847063522789850587478348555132501050809205896369648818057304830118625303166890196827305224098651129610065597104975739178054583277621162360996468584218512824266768414485783649137351501950978019309071884592001490890699906608636995706706060873378924803249926109506923863088353453938132895653714669559436126870034813956240946958083283365612910981761366803649328774138975855808681196985599702755339982672410154942987854834598666221560224813699477430259115684269011231576812497436454247077869910426279880245397983755624135443317566986427307410314486055527204804287260164974135299626531014681462351933779662153055797486010477296745569982956327376625312169267430676199469306133626843762662273751921266495248303878651029638624982765509637605971620098116539869889603270445628311020126459426775092057599601302846307807330278185725175580316786241906676716033278480347598256819675979132055188633137988111433492647538549545912311260966424556453943715773913971080307078743056207300378694928302066254240198387238403588779731736213124287196118902515880475929440219743527683847278734380122499058153739124512816953148979958415066653361211939408905275639736717437332468402071679936637756499220731583857556973879458367309808931679349351868985303700152474250118105630969925249643418270145895926409409594390273092969756451454329841240711071516799699248271215787826931236643960218104917791217343574150850320446650407615198461458195910518249443061785117713402437358927269964168567740031715442607407304109749095436126962649065708534847794946006414255795547252431054348856695632899711970874805898585445069407013264586598720344202935332930663107995787982706692946165081172584713455921338556633471907262046797327601980200692938163303444289616929834038350668899854359731255072485847271818316047679242746760848076692861423403976590117192769008335994886700319709931440684722353749072187000731349097838865887671274878751812886488584451507138224414561776655997245759685196908810210011631897329381868403198617717613725887621483840574885334063539438967514854348097064607434016773560283873368166044221817536718078200617585455715305992490389022480214225844242003630286006018365654479692345275622478635783240312516591451746337256900608731300896076148318264994594307662599939461591195601792123786995453396928662453986686219243308182047873550861165756643577923843038566176407031737063180924120420855599674029459849375674340035157776279421246575889699481104327165552176085586943942567738528710643219414906650655325643099014034933627531589553632059219954611653945174600491789654099059603090451766032135378426956861803754626885201268014612674002716929312187664946106826958600289215440100934684710375853281807930862747204971530435051102573804345206298689944661215503904173103229334738794529000516774827333156360943356686137179056421289051294082436559923602380088487765224583180699333585201841375214683007293269036478736794578915068129770065962484134615727803989713815368544438651972074673997640016167402129422946715366248668533364341164864165236212636677974185961276619053383473843169145870587515548520861787751593292300193434888005855034714262133615474156520085451128703394631337171909677049722183897360931257552234042355933167180015198796570025842897358211226054445408106842119739829975223724853153107839088301930598879366042095183664193633196560415017962855911055236833617966162656893127874761545682206905968105263659123554485789328893930530382692400552192670208490975101820291733665277606780556847277083579214758584287516496598800530526954103458897667606524774882489335066388222879013727153044268910056148295784668241009740619820252229929767283576398184261141938591642645048806512733731307659285170312322255833120349560659456079592443243502840046094519749052587577305791733028182875671734742931672677122579443040586792029903765057745366378088913750128731984414850611514244924341060589208861408060039917743563343938987614401558446382435790197145044582983963534737020276398090154447660875441013953321587419655678836832827088734979144398553488160725018507177873915051867091519496754784882633699008922267881741185020332639060334581054684649869025260029191774063581317804466135801591863360771586524183000272184525650839389682505151490403734558727455565139621238114723396618304685508593721914522329413101163564618494153944738130227220683209712585533301475323898033564366848441940344603596920733783541794291579922126080992040866092484227847073583103929807438960975194426455101759198631428304395412890577258190145908739405103929167032758357342300202905466037344328954166107771830644044832603209614598008182684167432307350758973011532134299433662355701256540595914420434143828887456208336126811520937250920315109866707552872534759250120758512787311745150717410237818139131768879858243733900049129842930225479396942590847453311680967547545278141037615382035248555015775186638842322507969143092490715222574948226133732547667082699730459906815084171191589577170868042734097592196481136898037136652984273677100690316678244226942799116100572393538499528955188096152772016623751056161432280011459220649074844012979922177102798272194082021528392390583766073962845573123373739893794737079405482549910591597509956733901865124841914706603964928048883755804335844332074506016888511454816337457801387520226281125116697901359442346957529753982683093837800132391024081242246423706516887307751825353654807318072935953995072431278706960546524788900707964791126539597887537555478959241998302807762325476491081661104786982054415611293969022750393155102568771084410847131776817453011914878566953584252916699257670626822447558616151795823563665596338390717558643701809049995293147005498514225973068119671472948944038224577071502220724468763244202550230365916485940295147226685882726580274860252213277632712275015020406807560016228898666499397499210181287789090841672773530274719599002457019841550358855722499079847905839776297420028345890503487375290377637063598906331193625432621475660183336323203361690672458547306131515734396424777247801871264329320042308353504426189936039182327184219075470035439615695403255586426301667646906266672037548497496936602838154080634145696681661533881793335557035472641343914321280351963697235096234535659821368676984608085490281249407149272156216411794162796874617673496688841957040305045049552089530724356182702613519244509481071225586638564827090347509372581650343941749637976663853151164840749945208002117367149144874865800956347542936761413489752143094117380374192220522958542974807283024313989299363826424858826672533325586822352830920108565635882987094953838793392849821073693763605771204779921368590965857262215032696468665682680825151626236417485254721400970571963770359971291964436748848414522038192355972301796780566750036018316246898960610015641959442107180771886892962230217612211625346219092171711493026668469595713620882167795940707065413256073772205445937505649354777687601871859654578825890958598269667715978454449582342968859803660614218655452168722963961148819104854834938759220209974066455740748093845010090785146611498913197687716878336101491528796411521573264731077922581901602332400732711154007074459416734753006361395931327704782769666704754711010689309250849873066628965546428783463490021524417986196348978536128725842949620838679567647581767998505564185071162733185402785990048999585501269181451595435511428808780932132858303902165629496712901749393508418434495561116335620634499477966664945134302150669833304196654712173256944259313970965742060724105828924075717796043038933106760389772136432367537394048108700717489308861186386952247757155137654097836191039678069037182006095762221252154864694664084065675187057324342463116868012847692442595631961983317054263849992697395492562237759911638814610983899549025286553852805418051117993733454890420309789212735523927949441233491386514984885044124157571452055844573477648507182927431275275101038388948305554549643089447633611080032050272476437660516041092437734820375863702041476362767695097939727728680873810799249623739501807551286921995953196407288032656143753949117785711451840199461286900930853384777862484619826310624389477156745698173132361220513034650274316741921809086594526753977871405877094974190482761570131592113330340537264237480535998314163306890845610857934086554441854329169435083937021215822596239802578584626112697707911190570373741138388557634542944493185856369045468424278402349671539485778176195302838212169834486307346929279610122057590285853198061232645202996248382184533606921709268480429920151587187921115463642199018029842321041165536096815843224522254680249619046836238779658073607415200462071353510370642009458232721762778975971947333941341823416605890655729009116883348142118754779465178339721420111685220672777562982063095499622895509397767519511305512549361292738601181775884474681237106795252290448380621677515560243724179028101316808624656630699530407285409542886101652775968942575573516954132054175373544801273552119033861897116026010374986196151129504533752950597846964072638039738653288077060649319002209896462180528072606964385862355114055891882294879170972006992902719067114825913397914058316631125105448276194275505352351994394667985670132047698152315721354436696202350491734392817298078270025042721178951492287458700462193583251829721602214351750026149165605141397259893832880883411366472296841881588957717174573864615730596417980207493871767687804013915156996889510603512440137557307901903375564864109183631155939221328852685396228111228249136125459616475333986179373283520067129852623238652597133691472538771694451624923618585913395186014826665826528062575944865147311281471463023692442519133390116947602559880815820236601210970097647687586704648285057096534480254791015988745253446095188952517805475278081299078090127957652531172600457244358497335931856103351593862856869548374110082078669393181393035523161143263321740318898986884734630248929467360979200702211860933170318828257213120984581173041788678276177503431032634661391849884679373767322309352632086511233770795730552136295596563884257174202127073396967700137816495274532415091680148978711593260415998380720705599644788553389683770771662176238343616731795503625344512001538238089610098184445845088222051679775532332892497723407779150450093920970547173425915330340566822995664842237865800346904572761589670689159504602113382850751276555734063318584048299822634253572114273904739002109867020893268177511911168167131447494111279579697331125262088727604664976795212363706719624157068813724814522156559641686716241902582024786892884866648663408811833962446018948148443400750495104492013174373767996381018002042926386858591389972169044289762929849163652158315350037842699816899669894912428990692055731779021253933674240840753147111901476575798131922214933601033548170521791159414275067575380562637690011378533899273696033848009493840642015371164351978754271553775285548019596768434006135392860643726988439680617955536321263277724245289230087439388958489816365038335065857539751470272330559866577852035313848855319175440026059743184494633093869346134402483462148981538054753876019370582884280468082305910201110984751826763601581013948927469619146023727965312624226593106894109206787374471827413437619019441948498567986657703601522305918364299207095907640128985335981868850617265542092720020632575257785504663331147552147513513212833713401377508164501992305001116396431344204423860688124320741601217315667460187737967110292180937769545506635457908923237577520584157157622016170256695880771830441569570002892258892897330013510569996053328745819904110602200464994511717458218462553535421231406084744738449633646140576650358386201309901795321151922962856233953996559789581005893838160720137846707898323330533250245240662030978749013962450278478270046957335296209888460381532163117505961855696614163279237320578075781984061959231461128064752288142535923707151698204640195287868507031809936329072675543221009926867456411982052589477275765342969702689271234391042426070155788382426080013904830357159452838680161281543189401853348262390374011984966088603611876019607600611503950021011319554447498309122440537267495877201870356774463042026923562170891711481099270692070601912865756273754283539688905220170482763189330154379844794448964595281038094226719309694345728194718546198813492014347123366898091402696651856068376322411755403129718019154839914990464902431330547539580138683357234956642302295374732277192677091836449344490423787580868620146479623262088243691693784142251578839737548623143608326879435721548072457342001434327763207051474434035986816096193706251722018739805059287416856566943243133092479588876931496931344311480858624431782923890262820377695635990912383202831195020702801959316814633031591806375909144734558940579677899296287176731349137741225351844468273804687592639818917014667939809391628601851721894937703791649978563135210814483532737615020334616728661057051534081202624736865997025284147596853662100775121738688953841157504136307967701687231086998701529758310211047098215150340543090107568054640498816938413665227712727605082327566765813996317114733999942198776830459770588155299779798726176073076453260620451357380868859397519191140306215702566887284792413887684876835926125929475604796204157404004346016789534207473663191529357716283052815513928792396780863714471669519130861984704337478402028441711757054973487223773080975420828386590607007985126749099645718239504894168856198125956086562088070953255031827013363243567316179115599923870490109694314060205499018389984296870203112194331971912792606628772856738528918380053672442557763783428166142148904444842055764825857063908624061781810515755302075653358050442311297697938232195651555714230568451471278309812981447447886943602294047363050788533344556699092801234089666951458998029889471159924962213514341319842174220733205671447804829879085329012406198838493540246257424095624918600313641307019888007706311333109581123552765036617008599176331718803861833458278147942568318012432567403343083878160123532459524923160459714535852411525232306325705420799993820584723418750007227546573212446793141011492521982378423736174901354603556446276146000328414193629031358171050376799204327775897623749915285600844628148942304720607800115232179856490206104484588812949417903943852644357496483505250478762185727316068244840736437565561385785897529782401057597386736054331938619646131224669707336216510669308910399184682813707943727356386935338981176682511516448475060389819779003702930936027199763184383704731174838750586890958873804043180124803239089063501334782235074052843366460961572008414220286596901507187851808517103502229620556065904531693965115158232977320204779037350401739124534835998238766993033482113052695281802446657979279942107343564771130192044763574983693699210867745693528745449095150995725437641107902940029078750843524804340879640101292364006475767441428323861622491338427346419691128460616248358614550163835606931521710486369313461846624207488592601384909550115666823632079312112216666601107113030707282818157586213015653774028670805388340589565885056974473161606404142902590280831706996846201268759770422649732469039135613907563977423868656783490396665988640447229975800844912027661358787408939520790651435067859485104619207771736725137588809205105679449552031546644703131285325919459611243006300142081362888324057926527638854902512563013656738905203151981290181005338082384591295005559515883232083906097281755275049656134718387415576708527238731125819110453952054677528292232015229199821568225730980300862887129856450366757898255614857840755689742122644995273851855764169109730145254747002139453547386726199336452737528876493941749796311183827528666299871565014270701603519827990303352528150175663090735509435264440081337636321170759502242273854354018762873073530561304774131347189417166274743221738540489860407687147530504778026144122987075714316466590747168276207996927703624656803226361045210715383681850237853369289331333221758522164567198846220396585454309730125699176033283246209255713136784334094116267961238937807626079169538328294484157695015990496861174233518719784594707573842110997184866221178063623554665529206112225124583496062727257273254570736757723070784830454661291071022061959413968154263047270730843349723411565220693769716845778775858330004120178247619024916390213865302909301571028445381391136889214603851395793689447116349039178862242876601639831871900000943861435855088696323685660720169794718895764071431324030121419866038031312974967117481260325738115180353358115811823523629592175666516987886197270283363741755038978742848049127357842910903067274802262578637630965808641372414257313738226334697921918359009417549666553329058557514424329276824682357866434299083836957517117000661414056448739281612882191886334872819508302186525496607246685278629067763370062421873310788368255679188322955537715690037406353248769030451936892614337196646771333027236685684496709000390127200464410894527480823035920491980487455851672333973641584866127959602274450487501397342991160441074941792594185114463469135433922608407959167287363504232795379759121557568651902722076198587114811778067725332248268417875692418522157982202366568063910562677783928208719750919901828089281430938221821247143318665367176739357252915453561806792287442285848923830482732290155692783411817423615334842780624554697689924442248064651605589022587660329027629003530738915593316071346774754725601204319710668219581418001056523482747428681412489432597458535199610293936661010602062137468491897588623900341155778646965815739496769597597669466427078162910288972032789402492267527398022939576157591520486673541822811892324718600240887906396072700752455262236660669044460050163425589823438206475043082003828112598448566289744592299395377427095276357785157291162298028115690072841938256888022261316103426142709923977742012862885326464756974965392470433302783107189918289229641492254227046149432283597423245812304115760923756206758060441073826032419803262652184893519068523684378058560747760269480822101518955528073342604158271657955226829800478344990287033299353303090332894371338940666180068374713960344729070179669008296195715501882551614266177788978683795401256424470500910354126787094762648207905333715079627625292150635858529958758413231353227735816511205242479006858572743822994313700141955020127259851818024558765375715227877533672595986628928826443786850055087664068588759438428749952928196048291352752424829770301127788552494207051646879189873586668434959645041030486697782502382099603267281036180955534512066384730748353804260150860362750892991797689912857256306561635018516786502002713634336961888336411584742720744193635088986268975721067341801222769683605379108792872043732452077893615724514093545379017914572087232150385000986191721188072407208701731705700893833356297928416752826963488489341553640420766867185958925259338938081714821077204511342600369928246250396600771701625581137725813251153924392215058768880172280806761316201095046454194959199665992883291289436906400001575166961937156482094872075116633284808416527883045668908637554480213928946931496071822946531095312673017319643387096317257659004122047501669338062551143688200171485479168948506492156612897834726977605012669004017986323154163713320606953377127404643710303461078680121647152708738397842228578013258588646237740745691739813495048192728144253318976122685233245544770870599825676985293940368149608333950940637799657542083500507000142761308576125137048163341098463303221050441172143677436941278945326651249633761830123825243966238277275269335825175760777681025067356858986161172390153663411246284224958393667574210477459228471899784621355734374953105406402455916259056402178756152344669116823676910522484589635426430092848930435838352400682374658271396123977567407701081799351404682338876078857979589818390103907489874346582685844691857894994747641113489495297205733635615272086200407771371434994445734874668204862966019732249021183301088204174642012910210702647244410610566135784884528342704422047291299090229361776989988494207818663589580788858380148781360916091161040557081696022698300480195667875444615793151052295095129918322208887699055995137464082044474830281165859522636435716993002225794333654085857673756333619218494271388542982726479135598318827670672110402183728484013602973639827332404544860087735592191763195075786411313036793625798407669643420137325584810022688697363355662722023517586897845816841458503780630511097177600671844398275472287184076947982037788585680498763538485562957661811287504154422391128897035230390883093160351980001973615813001465585858545646252013977073229168310109871844659948993271687799934764696927198980513006453794011665562678213700209687823481689697897749906337953147635499792296178875748005668899492137583886928573144176973407755623781360507131401733137827156744453613732733794862294062509011063696431502872879925773670625144365741310665393226154231796125703166350657898247984561322501483373551603757306407780751808146805745061707314612813860234213761974355250380641581570933391067697424332426187846286723327122706397124914839957578433763750907465279181947961149477261720561124987120389857965230000108683075492399844662604484507267457844728763074958280238281099627034877044603355491401366964472263678996157411518676139398024941558507516144132691298032241347185504558217486673771322266885022212392671828998256101424845251655177740778051002117869285247721565510503871454956957391895700111079774948107133006619189068450818022090111786238394710607627226863140566927479067077475039144991694815677883612999510626708883002447905950189146753321372572161839630538959116574799593430882691369060698077745719002065986358464702831718172895748970623365496511342598025686035709072559074456477887611211686543526677570807990173021117264812125041013236089232609995858101361510887298009464291093048639102122709845537713911204228863984294421013683804404111834012643298073097435774084965963364294206267092251812694761772522675620133953771174423331376364314058974252123081337475358713340217572517881474583019250941346209200388346295888313750295220078618014873934389234823431568713183827347081109071586690701386300134266688238583098815176071095020795698819674162048856651419509337162944196748444244586140129987780173502615453892682418894343805815021260058376197444116674649648063345153435920293839112647877337350270519321141315015135520922231621798771780982261019600783016415834814358634525410401865918645659076224295080237723623153192769797487222140379524621111300417160319673815138712297743740044597037558602948744491382105336341117192645084164119596400342851991403301615407395407654575001082711748909113784584137725936189663131153675689262985690641357294289774577360146400846409535701809179729322632392597094498465080485654614268605773801302113505425754566135878425806348395211854839914418224505931736180915341552097168888085336096355619137121995502905032569721059431625171352794413275579432334472384753529729854408480506469869090591050319770050198810443788045038840240062394692378877105794299844200322904573478655268678256557310931356697507341247183544210628915778241488071728070501695112114467660338583575215152886810912528785845500144034926222111196190680660660375697056057168271963982520543493764482040085729103521767019749139429837019184855231231177014573172782908116439812435339160553749753650651680798783800576801232475270487066053811327822522594934181372479652114206664369740938042215558290467754601137331994844757808879285445575491331051811793937952085262716284893526592500855492824251876700353152252880160237257984957938572912941128624499712423841856812025570014411430422028826167048600774443501597793953124285904313299544878849532638862650643898982118592272952728137784869202605772223728765147182236887455583113234904602856630085925771770229224046024840399547788033783972649175925621592188193849249631712940309607849657622342628616601760279001023531193311032389273252835948068147706092080242851723842644691597264394826736531834610354332582172830237125625514424050384921151197485840818656965047081168725993479375695012455821803163056277348236536879460090890891710375527876089318901752515083189563802731651069223683724992404790514560490435451773222653414496765949191525906722003015347039754613388112336923529473320732152299964020265245988449806851382028864732119828654581976645958761774781348938786800679643622692305499285222951961831660440598294966118347581211446354086889235028716914239488574871180342588025113023249610735102515163616449737381971244077680704407529215531178885544446045430498864455967347826199160935532498117951774612915782550586048483993071850007427667318616825314067049797149396059347808998195306885790661194024249268988986937458103580480555296612896957971224154632363274238602870972738602359380976870554688526067700279709774704682038496399140265449977356345590946442221943122883468114477936878752137606905913880536266188574391082533257168976606213246909810684076538201371469786012897227913252928849130946238843434073332122898794239140752529523510783528186720287520123705490829846044247930806924782575987123022804501088550506943815834331437809029307503982957097350360437002098936532909210596879872693539450673844143422874665132511846821034495135242646740502338635299695185646102125736335921471057858056919266905596913289542370895874137902279236777915399030111203202464993292264550690394852343955014164098075012972632303689541398637084006739343450339298022087415296800114759710554525199014317545189664735161196551402821379129534190859758520300473112742374118332309810359138867088134076158602957185385244367104259786249331107429941067371250852673532129857530135863633425470772378702248948905671837491426827143203266939732637693709646773957957777409819495307833206983637261057080534517945384435574585551952105886859897895229540278885307609301936831267020362784111117786417492917020199056750930220131762750852013834505489570425177920797880213418498819197439625097444839083586883856975215020024198598066801900923221914457583230272687953589856265934466220348589180895941881405257484190039618616414507645948239810097544937481466119015290225371346259140625228854991223901375842224844597794698740269067078259164143711126190743155021308788896128166293825081820885035267458635541630287224452793992525023501443604652174569885524922322281680002530066773222211952026191342240287985223805339925905895059163742858159482474222037582930634103730137001369095016648383233866859018829146357207457538222979877515855236345700135676092806097012873073549713582361443169750089667466504269596775242364054867512397639999989119911142841967616663705491942853702705961787716980476329509478684047618485333777337051704430080444806817982709457994427750481238624447187517083598395542248923821934386890665885946171485264766751600961646438552387283534078118988808929530909553982070082221546629580120330427360448976156216149281599437658580736343366444929553975447030221018751716325069194131398053426275470104996250091113039179992389123743981797100061108612144138441730656295503172345278976709001364203093691842092801755014360992690907647264093746150673606572316059882491485630080629460711089861401275263007545613405866602080746786086675064328006011223426148265804382243172528126453349461249863573469389838064526159615300630483876013214908624068138879805065221048213006557416887935826884357757209176531931390458825223583423001301936497041664847701084044881682817762849803543544399179952960820956936258508874236397367871290200238446476598511322762072245221535824105166684661313639955679110997028623275321925239195735086882974657043016019309437947408975888716160010755882045847138147325698356099993386868691415050475338060005761899788151740433039222093446574948080443624027891607066468009511602647934936393634494313608034604431201974474828978997608624556176602119034842195859878397786620731817416604469565322811570194910046788426001968408960302878880780315824383723224907207406091861351522733714040161698813963153033915967853973105973918748006309166908993624052125307404083489553347533778487163157637482731038220041504785687286921387881435264060844182752034000055276105399340034039899677938980492538015745306084689917515043895855121596580697430212862566566720705185505671288321997062974345104301909657281734065097336360034732754677150379462164480465599376875064027697923737436144139080106454062291376165196686119328166839936735383768036917616806332429156972817640148037115193515920248797962700617252797267496841364038576213221720184493881696312725483350436154281806799687971523925433870780107318911058593681894192136187441092327485423255147038200712488026329146224733700301288887817007049365358504349027110191285981265625395680839109432402740620390858927685851135563050730990816702344834372462524058865645677587998294073433366890800945085924674828480502711582922874956583946524739221026422197966922203879123437836666033778168308504012793812015938907374678557469031111605237351126063282237183281999120977807133499269482368448348861314774427889732004936246620557959330115610718095254599225641947892315505883323696575793917831819819577854513431429000724750256756766814768770971750735086460702806294466564953432802654931729513288501461626041377667524474266856719837915645216112400176923324595219291150194246607894732897584615502148142776872189987649846485145140563630766041217917033924002106705803702455136363376445735879644378294118420521637944408831403980542218030575183815897603534498448110548259050274640656006689565439937665908156454256241879459022539615860339136578583014219972484608725976046341577651523295742425518792044400650070899913045480904348843623629154387201183449648661414880040357529102445902318369300466509389777949752804232806087401964698407728641823960673100626132512018800283416233453184720079718095071510349676998766900160730744295483889041334530570132757169396998146069236645082677001475561097423122400656809532496965896341209859336389565105570328463936896383657707173704429168618901633101530067553506193095187750249862645523051539906675982698467847005814824503882624727043569937083475721889742579693476363288104935588261281375407461171978071205538443841053840191443061249672752078180566468857798785666606124344606379742041371778855747084621760092055449713046735506170633672486949298703394576267275202583963002763206245769088497250793677756857052209276467001165759814870278952930093057871177500592907157005271963832938618289123861622115858788076854370459534942340632123254930107456058928784681247039229715925207507609706166047515945769357462634277758900398461787341091527327966889057467972808701366729510187880728532380641641777327138055858783583979207403581100824649061249573730258848040541900090618800258714645140129644374554124695293728069195201985723916251646039185782691505413208251642723726311042374882440660041525673120190327737937623032195864359152688849676487924449590076824660283337230711769188220982769552673941336309700785599701137143094022790113458210466861951523803145138869351830843539552478903321175161040109458973060709030304252481868842501935223854497657720656262325704543224223342970743202007030581452535251147514659655567908989149916035295640487712922621703186702292461629554361397709338073253847268905959853554313634324733899580366825043382955832414416443816159561424517936161426222298100933345539467037251390184209218610657775438155750021807604883771180147212969883706439706138523239738873743249639587215203005302776297212774202875505087722122347790668774910596666126731848397450051435082539190725153172491362904797852863902928485856314415120353623707695919085539347278367463926467054465935566213222275809420448029500287506574230703066802987567291771344371756845144400789796802189605588587028474825481678541276777151649975301693023251203395126404977758739217166803640337955203078350533134577101268631080337433488224830874650379637708062350175175779867205677205012481238716573690786242418246403242211002089769690867389535256219188077728277873090375838883268447496868791069477635581024107392291381279804037980166409947974161089115785858375705275950314835757751986386648091051332865319840745209071749710491727843057285268251104152216711424409188503920589404622831755181204829802914673147902090158179331311545175624141575988891495127015579463908856453703295044897677719536227483740830843126376424026052906469785307413554734127087914147341929964913092105533595360910809587211128842476972309479332313199271875377347088807812124665905258336627720101739791784702930470393975778660158466274853875525290696754062736232099903637288204869993574318504324854642741176769864320781628527943078619059607569855601523229919106917553619117508142100319221240339308694371485611740226940213953140087352198582152672149564617626372268038961098024685376099794824909903015324073219188142191815205037297509281077060083877701250593513016578551398920093651686417629124442952842022264718223132449534718983595323534059984371390121052221134532247868623330288415008115879372748293810785961833896844155484268795707021372305821840377215411290911890973047755752531000295553559119073718073350707486637925561590273075965765068694946031523008771313179503106203206314411533060734656892276020740029837891117909622817338774227634905608820941345430375832826816134746714356611764632001801508023369651986489252364197147823685614081851894974480916291609881624819941551973805979420454304122056448540255622107789539081097668008304415322724551923280065256456716247710138221788198242697588398260909474219568059715285987161773199760605789213103030157431859188241727259248428126445675422216913026750239855069787067019457369203419514273159593065354471793408045669135438555369672402497055844898047101359470841368521198631288344469276632911245944180338218199561302856703068334958717086640177141356206290547057702583513355225926811731832492895028423694980583483646334611001583334700565771198612155329857568982712731767681308178867684639389045800711316908671841958443875551811159274564314131512263945293942496519810542964592786458963540239283421687912368530693359607569235573537965487920458275678389507708478682457585549774471971339446808438948360621575810843678872111507297895156053903728360543263856730557347705769261110516019530240194713184488512208797625482836249964631797532135495391697144123700802818330075239661752410726618894894473702430940569037191381996436686457549338082679164663680210340147812892899687484096309132426013573584343809338282901829928538473933044542381797832908103171372374387983277445702304465447651237707552342224678008122325769056301706935477540658511452452480961874250421971353812079936314173756664784279465719158591976959905196035085297997619247882897723004149486789276402121886925798360978958088392878141365582808439350009434146501897195273101683213046086597550236408242471841207338699494446267590200590332825890098569184976029453960264332498578040628023838526175988637100543594774609977118901255012329405279962130205007752477890948737980611230837069266948565036312990234153853583324112766719977757357693460961892243770244972771059507537300049479120449719709574513518392232396165438129689144759825913548789219215107941464511152608357894723719322531393930066900952353388145008767555856570407301589194426864963743703362878876220319189285092713295534166868502525546969122402781507404354177701340033688922421134244260388851846996856143904871751019749118838612958584175789234267071122377100404890290344057738122223149680563866132840938244698451683896649412305427226675782493754228670547188387043631243738771172964089543323951836293531185807993813006639387927841758988997926790413579769150457250846382759347791715262106255725388793289460196166988885116151004610139978680718199573319757946002618791491940411713476995629002618403756495932832829807192734179891063198752184172766096007845296301136083366286064363653869878312565227548393351191271802573459047063289999502132021181692957161068534796224416814481989486873072096439406999455629127112319532702266853069080004655270704987373596674013197080293687832605242518995202935641594184587601891937488620694991987259501544918316877010872647872945263592360060205177649610457115248074663608056359022093874072092738653549971852471561870434317312223000915227329195327306437318049475885199281434451362689313652774516145250082807290280907334947886876765983858491950210116189079147257302575436592746136217281911100469979570181259769541365455625469890371372855955908833453691917861726554346807424932758032502699392267357588956292630016313627682220330311020940914712729046705982816034828907452959234272188153550911529675624995390971111777778961113022349103553214766292247766964975274090128547945026881644532472603686514309786269774848149172256242456833964913575722178297397550106682736525674931537841344458190520948940065295542730039123667571486593646191777138566082750940023839663745306273691839323632303827142715858570795290823812579796025614275069274256591978484266974310744879860610272666010128558543134428631079120269265465041305881057691825763837903183300063584160035410076908998812446426587387177969741432180350108498349177735253015521984060482904853192760067485472782255154548300675428069471195013531405007244587806914612500824451249533390565261400228486856716948208958193626407776602903538119076878366948502917268829015763787684155115457144064666976056561605801327721576266302029887922627717632053290500046158379142039065787005280303233634921314915483890021877170226632217772065639581339312634675146968226466742099510117449750724216037800061783752054593781611679136553764427047229215290814825874601863936444434235603885599067360753978138810277403528263865413862107582257284326521029885259241137341540127249883084055488106441027904331258635797252080115994184192002086101520192847881994271975251107623622656068235699175725434840030851211392445253382925558199015717292346192448910489043925041539114401496526124826401317395811677540346524425399910306772532699050924159895017700885946394384355667099583145373608812709829770525640881730765446825067734421562353778546973815956866628034410874015645476010996841787196695721072970482967370999247639606819058165442996762770091150964870421256579395535715513705725401850355239315874044073067626419731067778614766671392070837504096316237698103374686099265426365038371782457583671007027531715350626441236901664327133299643088591552843920867347341380950299526093482596174751598309300955525734494386416074358148918973702852981151222181951066014590326677612847164464524836396438861428768607129835656688424988415380272759493298954828946503571106725242964224204079541810033764996078370463739798971630437868452142395882005276321380637160217706832314830060226736652608202434297738026455779965890559295782367568402650894422915474192279497252788122829792119391777935859259518302024238523421232645469049164164277252052817786356084746140760636094084982966067620888925772307545878457996180986048561919853822543082889750056589220112604861176704131151818748096535569056091651199706136064035543380891410449251700786903335458142086195124946080340305389471446910878993064180161793203255255646677387451015845627457577965474250625763605710572983650135758720196360300500473402308396878511340280669412320500193328390880170571055492651361148302100121868467939455115954258975374635812439499865840922349280725886358115795546975412451963806551243993449646785993108897255335565044617914088269373157084889249597260910263308952980665059057017543702712786372397406114485598818261608098974509317741598858346854242593051021999093434901621906450997558752776498412937570416555908956490539555204694459110165526647834143979283809163092478142846714550410030931650068065025036691720200114359647475115427656019332836070315343907019823695619403625471751064670749784402017823202990485487786897872330778002518265530741425700249915704142869316245550998042385912953101879409330724453840281930783739916913339012375276695008695200611190911316867456428777454151124289193335232371353350461561837191218127264970245255877071692442062514622799473483791477968652862123639663932181349783739274967197818599406986490608426897293762008724480062649818136337080241235471596307117185549995499743597015188975291541071697215916162663442677095032868456632988419164095148131120839299714697759080449503246928220964348393869327594101404662104174866251918106060291036417051466924733308537233073612172065103423383134983313799688770486280152368797376257060454028300419064367815248585630252869249912541046394854689688796231879913828939762267636871940549293977335483690276406943073474711591826878933404128958627024188560485812107925739483148137694595311226180328270335134558288023497538046351331152120300075392314676925268520864570919364317678178518880099618838832571739201098231713847613137439065212615878385981380397139916207939929436575771404329430058960894493421398918961501204376489604646082117367977069235781270703816970759058036172401927217373835083413295195407862343813234344719979746213083473594563870661062663531661175247536526140203403663855163004849798116627083273684434061116387954121611001774087131834359478426457946013154598009985891816602739756199698470066779163971985670409346414842008303330886055850221265560394194539000285720010990387339503985721335892020563448511081342436890171114722227646766087674248517686900749996061855638378763229706189253257108095592365526141731393436013604763023663727393322678643733157438030484398679311075910335639287916806943858795629456201041137054673134078305477599775809547231971584408412230153701335050957171534800396635902089494186636748878097539315711961039378878506642604618072743580915886348910596663637768262157878060761322680560882247083051690738093755112324276152267129947129321989640887078272455211958003792734113921791376512743825242040168133622855658390195071486212214819508441057880984869167219723127533314963284336863824742607384281606726849200497346626457062134511023702815553264071124191445433447946301850889648444228903602727179735803633634331509914284691489454361855260032576438823342315723821499135570989604542592084219288990715049392898086223371050715178229842341500707464110204909945205886103177621483015047243478994262661816962436128686567220291840873147174279407653059324407887869643659331758788847529587816924370057843080230948339173222873291921874080431030298882900210975742106019968812846830296659256035052193828911547109940963412529161548640981760265760672806445858381089054613505180754182963320783255623406340470326206041935500796696104583222226010121503787511092313861751694397176985601535606701608886545399197884820521363910823833411847106455690554354814006928608981941625927879080183346735418681694352017602563220446057501795972298463759443188996958078637826491232001085417727219130138399873953662695791955658994264854692467321265068247917691608034356116887196226747352220650035577138429164016540266092776851660212035019972326106663841167089100406703636800819432982392761039726313460084684966615702720347054723507254843976065628556756686679952347523849914611426850474132476738435522766996007581806554139561266964294594586335451002646636462512449930854550219929487293957967027651448218780986025133001551251989043426958599870140032689043381352868580823868457439964283603056483264002241801325853665289268006525334261273207439324549055808713960237428843371502615870165540351722085279134642453271392040741476413427643854095160935910719290911442825074980999912298167716145565066932789574279840009898100135928508964626674597997882485760459286654407331527292719653437224596501641451457484336538605515042498499614787587174545576632241148001192319685192693813929215487010510788660079101536214676914251721777983808559667569089533341945595940527453652375389031282704191513327497244896553932967175551117467829553726111215348147717408349942673027634448783110728554144460651068527361061673675447884434267319017042501214861219367088297259793098207601111733155051656332136538705131932788352528085155010167439952736386249735101618020164292295840870847975559230100392464022692907851568098314081198212320788376923677435367359576941984448296639669592645596856580775471366438338690724197320222970558703104573668113256664406220172084507328055796235022063246395125960501602717858289474974383538005424680595512746688224057849499108599747343118469671527730976984787886514701043072962342064764083170217281182794372903686933735059605952583308442900238414320840307592358586001323863049497175847309651345095402395324679174757175476898449601581154018669503441438726820828357563426205384268129377854325987896590390951407693292032805719144612086896070858510354432821567016725387076936411802963019628257256963990934094115124176112811033643739164072591456617722817440883041986153583840508311763773888060850620987655830417113332728375359170837184748320137907446375439462911746027782999625685822480938205195208497760417998195534755173608447322781505020843024657822331566940642974951752034738716086027969602177045097831932198851279503616464584749244068589781054522106741083196268115291259013053154095488074749126739285312773982629263254490796333473262991749692089304123916466159809196585481460767350631285616506268925457678874065984371253602732115458948469272209862878838337679992115178944725843417779304701005094537271175657630271823924788732641678557380681599534924767864958876375506265319366329394771655181167099782880674703498764694984840420786368757834357455627245325599994212155818150196128282994340403853797088934350077514867628348206215378339868329470334824975844463247954148255869927581554475476401126418626960433692228947519984720555577369261453858333468357305498153281635380709616258799687854013789918163554300390846667353481242735548203427216912187132348937142533362169719896091181877926485285937381306831689908751934876892357217496279444717880349871143514211483570063103153757867535248751797496262685169294993100628924261595881191505904106574576163194760525626513306302104474542743021833295651953039329904303864333455421945754610684361325324498335255889060010032704456672185533692097561788763950881253673541574934935560195846031632303365132341289391644721952499186615331473331699400545892488678370149018064564113681012699448920238574751969939485090210965889445828891067069601924462971389111598270004186036171390131027596972641874894627085376608278147278502208273924524363042612875610235172219579524618853665121268646279859765302366412235374772315938000774257106210948223269268944493157406516783587370887866708299720590014290262983170936432536014056907942893589904874198918819127958634749141504053070734792060608310700058892339245397340635946269159295363144347217055467508632393465757160352830176595468306909983894977321553853182031031681855376318383587668684063333736942014031347805753855739643515709608755884594715577613880403814907656767695933870039519861800841892135960959827408919200777194550642322352460176830712411506662684368540677282421994670178489719676339569823846366313927781901425224465414586504924195147382420064803132247118649039495269775453877346989782402243591804622137134779139069944176179417367511195221098386148378506336606447591973767355776166701401743406179140195994340169222870187665406563221044657679575413594537989093132645597477784670592390291881320286537498808578313378419216547397854915172757573684867826666421199268388017260672381881268812148980504788962109495198997882603414490249017337353621535864199046176419138065224122917180240785386985807983577549824732882986986292002559892406524049184215543429498618673839434036484179594861598385530131038214124447268556021597195196991099387746529609129014719671848639876073835496379445868966387063299932144299149227176653407154007661407052225067779273659906504599511955059452394140707642496989680178432314830409669898788340006899191559472169546220561813368602460616119615669125177655777530303039089898478062774210867663195651294010884598621632152161237660223074320033688525056281836521672666112470773268736386663834485899743034977646411821070173116049230261787542375288615597552291659521759705593912349510093603511386200843981922808666348958688722741967220717320025093717491320220416613140782522911971584472954100002921418987094214548950565165216915443230360220726451493695625944924098728169233961117793091015516067141360798108905682801802256715127729808496801655053999517254265755282651676001755586294364327407648731975412326435354232181154663329689407625862987247057340152239687630598523649433307642688198937965208972452500547287057455193533477451884860559293433505552408014963936361148124690846252080195884617142662131764944392366006571941077274228745498477581899980699221015683463457203867111918468157871971175628191482633408522247769677368134391524094216925016909556377233112316530915908022821302888338810661904807415895476627885442365138229940178793516940305274621794404723174316169407881670759946151135782610566072077401510022629868650857169061022451634469582971135044314675809524697786227509965816416822228402779019309279747400276177392246894732497134620770582163972439986818893555861546690431192540216678812002671170583199248887293482234581110301253862627505076249585924048127381126752149540297964729299563197739354127102963671223652697505724555021490430130729330158357662146078980208046273922276580588643549620550620160361700032170172348960805947989818300521526728557021243985170535644296310373524140685705586081940828748202181924169281320176205594580894835544581455904690348595357280979446727057722324471122334551575432008969586386079660882934061630449916322233824933478631398167691449529765079110613966868546190517024547906792659725426945844690729986692671044956192554158533990388879281545630965132490477204470199785891000624295987593194637947220652978372197914619467775072248749508279333231844006879141716122826324061353375697429893169771686409297324167143942836469536065056826087948515844593394869819238551770721552906103366340959246959460030558606818182986706778290602342350016595665768706649116927023429634808699004559930296585295479508970006406741689299110962519950124274404352322211080989201971814118590191261738095208446659819519663738931868193251312706524349410935103649588923733065940111757318774418753373366299755306837398406051219543606337101160570572684725286021258721650359906060027144165377279408057901752205234655572946732166635616430901390135518591381840688015046890155949084431874682230250881526244618952994004943295637840276148144923725538671972036708259915438806815232453464260701851240112944394311780921585272977187247150050853040091708506099389568638632273173920378650288206442350485890918223389654021223293001664652578930726724284953535937887032563986988661182510510766247998723345335348264334574070949434839923840286102255169008826857121686663719828109853111935555120763305295429754438804096517415525630682589268927024131856542532715682710027351813361841501781218712658108410245145645836483824259014648610092993907161363842758581154457469936208499909976818939711539338589660551544592007833209904598733974256292927831096534347825149032550661744846940504251099360765447565534068094635796023841178560904580633932521336202804424277845160542484143746931539201023981157837539959626711347286097025303918099659599974672329542274766144032345834898949855664044719452186778202575976937093876457639954677960212337947104276379170528857389373236230066846467718660052147718644434061370169562165455184931257240268552297640500582038887617719499802405964421367590984797824304505447064301811870170791975928636030457140538929040010985010369385538924123087517673368280531103414456710162759263148828205970121512315542018803335832467341401141635220955759949370346844257805656902615378063743825475247202274966736217022244146492907972619747545952894443285337757853609876861462379248095882858866319134230604637047840965461921114940465664721630033413052362115458140280544522623902867300494291848850494891317736088575955657309982203711049584942200565846206539463441617970559241855384703916358195946030061586776404915979728034307937924141485248132107480600521423559279320275741180448426212644022669402658487625328735814824018135843457572955200896534858511925926100082770978920592042781186441334995131319286714522254131858268638515840346652758354656152565270517436393990888330305418646864185582828710204778144776472346451317508718083549830803825189194238876025360740347843858522374117264304225036455169688641718659881512658338928077321008297547797481675973332674172033225449304474340201395256625312910626127807533179181936925515688659448383831991739059917201961965083827217690536995660545850902653521529230879624318409476242859697741061630949092150320046150219673815267575420036155278271239407028138734539893222072582483394770839584698843593528561538782922005247900914493663419935763160007102868244335837281637460389848716414101117461563594771770993683872335036871349848597631280042461388613412828695157069334954978275807516351366166915848104357271939341157756636334356032442277609357559319624938434700407532031961380553585175892563229314569395935943863539139242678719556442139653886766907791362362553618360823801824740677464544199180440621993740797647143789536561383019361722129881505148537149319453954932431687230921030620383538167117034086671159241743117338755165101532772760243235172061515242775945444022837739467965609612493909487446676090350517123453596349676604648916655075997789854088318919881232128286971429410196901663683978447130455136893950908669594423301283194548230680483392543201700360454556780080475012946867204973519856632344228354066528103777884538120760867252511162862443629656378847828129640955815631797357482548362000701174043932081223925268716863983057902697243376150656627916912466012781425695274921149210901129453088352348755282783216531925718853911420163095553041043694081407615080212504527156908361061863548399318331588088904752875184919784389783314592677731557814277355316139721326323707678302666500768543490016470413678245608044932595481884567651278517738798242034818807494547551892306723928894250682597018775019827619476451320388510979014466990880140408597819195338219536708684825999617623164064521833682115086042486284562256212348173155900337996748942481241512039115033137154135108880502669587541242066137268108552282840250401262118189772097254905463149550868151659302098260005789006601370824352180086322724184161202863873982044688824751288971446722591285287292537677209124147101810062704753033645789058321205748169361386983191078332268975575334128398911249468293340235242535815026787204653827842642743383616900514843601662676811973268389905156378415978177396279471195706734615169045539063950698531766374012634376817196459013311507323502091998862484944114586766214897287469892612275277712312927227001989906429150945401430979276300389804718453475951702583872827633548311617433976600273860030831967042624380725120553644178957718226813408817164111392150164268556959549807205031740319384412243004247560585465152263628613769527489253043752674052408780835592805089690907229526073853959410559620971662377365308299739854184829989116208157411612498163394860297239862789472642796249970781214478510951920409885613549222493189221648301423463359016929571906497176674602690354113893281851763449425686333617304540655892535278907754017203303221234862667390515890601171014416087261026363190891155524992249802890463405906197926103735183374314899259978857037721528255688939791428697167413122913460833421997011524689256534174059510416905124169679733542443126055791701226712734664661479863527710549572939702610690448904503486268527262994656373245855381909252734641519271042796443852596805613427907278564844361681212776324033874086451933966883242867210417330120866535393983618550663283892619336368794908137154729005937664585448149345587555099487271825561940712922563418079002105995002605731080544923683330021072952971947507618818473858583201558855340151659123384644147373582258369434418381003652576304778925033252085351269556706330655465720707876510904058359814630804710994042323547010668104985378593117375352807350881665875265729503021603317109671291161759159698344062664511317517218797875674996895968172764373358664454224408084924235575957146587180733484808308179076662705976451478579886903622479425720939997369037382482692279926002622709214760405930419002492221271597426477157964821289198355940757048011245013207285216243536265564715951404801930722015833437227941403186973156329075399272409161889623851707768889812782830001070307180552135057627046446433520041965994841673895545209336289786893358185645095071122606814418170121677735322543766287966026391287850334492525133539636383761158649344035282190315101435652395414060853913486493700883089295014003669981476405720187097825370576370644259826068711261269673033360445735842495677590593921819829283095528019838934092506153916093185995456122443707654646775927790333510857146406379535667224104722899777538939089972768489281244454849395530402913907727545343097648937210730984999143559999793189094173341996165120112108756249258803738047149701418199266040892515296463679113745243114685913488735462616965895630860680700406406147416242787099616686095446151656233583923935386847543377096080868288057027055986218752024484358847994151258494695954612742331993262473303507630985989423208251644138800077762794460547409897630228864107245423046608087690049562414017567994910504020486516425225847839311208232613816386107251744967952081977367689987108056886160268000747531586703022908950761631512860228480534292302076602111928835612779045293801536775561640624835264957155929116118309557320467850190387328929054133802509741521337717374368543305873826836247641764426993911342288147401961297938001104442720484531823079276992943149855626541351428941434577039389475799327450866631694999292292717552285262223660672053390114838095611560920302525109155644956885860369668691554845364550034454076563792514278050227212181675770439451480331670100421408149845725283931086057735534084955405760371312427908201930175434984754934464064718929788893666676108288877221222468497072806572892914384556499302842351668167026398725341626546632416600281241637261483793708229615031847887604340661686031281298785377525365777109892557642471848514702229610286621976764771494700155951455589187460413816755752510031622025424246865605668423052679491906939730664916378788684907451929244423610183207684543024222649040067749790156915029544367778500268634081894776594665748291033898768422683493482435065403212101780170969980159488985893252799721271184433416530761980407124329015797282670700829943549878281297813372483830985616751276154402853940981059272458454995482673691235757855552732959982022010714709107445961009206441726347380147952117694046201265245498869936598144089453205074692053520339906531847125581413333214333379051924816189088228415979445330177874175174110756420062700126687692522692397780083275282512785964604787179691601147866097531917179689626577616862626708035607199383049058686962884032494101547458973135093665935251217769096210962632215511888882636629865904311945362745253004784298897641577261385368666707881448447814373459241062075211979726169339209099202903609469003303050898600539504499335475394346733519916172387622718650355116119569394297160062444899993136325383449208700370525633463394182829081660795689705748300453075218832490877569927735765202211487237762812419883981650738916396518298896062370824692035150281551472649990626833268791615452425547810595000049921165503273301155261802653347810640653161551193307215832013740094881441840091958438731837884207330065589310954012877015229955480244850535866838123360172236396020412734263658586457370885367448991620324396267255292024690215037924406546395809908201484816419089628557079480694750521657726249958423229428601300406443821961376620392161324809712570958180787369935929791808829750090395146844535152839135271280489731589312666416223683795265708668991329824321322909365818547791252745804998736740095637050519259781108520577782224308819647467626783881025272748325730447854421095153792828799032622431428910562941042489421151065136176360738942793630432619018281891157115637177159743954359863084449879096491561562732038937477608383182477518820662252428848345876646381781518490034705435679465674576431138716468165118131409529065551218500905050857419482147736135274906705918871984205482251354265889564900338620205787431746583345301487345175715036584969248852830734743366699115340086560382063346485266072960039763397687097009268180440297184884037721371567157504759964674488646755755042330923756690310948400003992166514629620352299022629561159605431000677182718321912932155228385482951317873038024907836447606217361713995035941598687126663359512341849206070590717183677964711549878322792670885798351741743544941225609796493985730547259737186642734031677902131742494339012788568706503185060494648670479441217566116500372362410603635730796236243117005401280284145531964317115275415121666352471882302003446876988394357353848518894825822396570053964855724356488802183463257696980235294526386265316114890524073818307664474322292117681364742600412389893162255772763898242170526160272769682755620687065647891791866878563945437720208257291528840393219048271175647085899013759483412007198234254722546013942716218034175228279258238659654502294025127219350042389011156808369171989392317465273196152806261648864323037960074955120464743814196497310398526336789394654419956145770892819136780763206596697167668711302685899720390174620402705195971317070333939551154425666083920656364876931820106293009400433444238526894768430378672025943515161502037875942975644728943973958463353410136496345913551517023391222894090470887212098678504174629201856548010843842472201164593753699540994293259583180115368181949718679917491208322037973464990758631873212435737187305762812235887191273572338995060661489222105218243912240079004933001801180825303520265772589377351334331520820153339726206063151317376020304147459592934791209965205788571146878095818908431395935290341130234610472504901231509230407461413249122820567600405424350919348095563566778122529276166821130278822419525466131293632891709755689626579190822493752100745541489544734231104978672569857107027399027335313325465553501405171877941947842856743947030021356181660518785507443315031392376609817441159294128444188249917327878500348959404614281304393915560278026518892716824305748937154094207176619454020730444907114023930139314718616678611140991730533429783851382890681590559799335201528311584229446492116015109724580493328291031781763482022765883280051645985224155450681305997090694305515735230623147674418746105993941023574953017350974674298384892880518934851691599387033067487694728244449516640642455769416038160845930012426496090907900430212538616189961276077088810255212019309227410724853256796088190386213470511490390397526092015912825787819710852414590550593243447537949719203668770619272158725123994310274450501378770054883684395203868512969469757930345766708358007456486300823888822868785055917919508708784466106098140570636956701270574953705102795622039874806674551832819225376951223813354130905438592948537734027720859259065326243177728197517511141402444987436365474929800621111277275544337771815131746412869600148401407731566243846383831851495767453663146914402010278521605702747238233319809441059429546360101019355216666445175121079971450261107568977911689455883202719327815645893953494336887452446654632919600013624996300811004543822652720831594090907590567549530749889579811989174985144152202371442961673273803308272208408134507536022905483573175973846343838396918400064192828549911347035633040591510409177345971144014230193792459654177722324982535662132615511861873504682345372921202721652011932704863791161636691750885515306725445353036296748131375210796354609619485652341323521861823422761157257642279403522869198589901116298698122384939669222576838253380975765188682823703341289972164549948912109816261320837490702639815522781743318291478285754959993116197501090960878590769736661279192763208905243025084342579057596644573711967525424904598149169954307480726342774188567213114042786197646188321872684666985711278166426939054768639904593242683860360565341746315918237434308478652336939799832102002823261003525632118647883238934682499150271636338776633773933248038105421810786331254195728512091292029971361874740068929267015627576583372947851888786913694438016795269534607797968372436654187208904559607712006997302227298329276238950692832642545461781009794337054884608694641038699177690742169677661069413564451662648508077318741572408227142695530168084416030011939123585141694904116534994677319655580971696613879587985474440338456038558477040122461648268310100811791682567242794122723787891483814978498738172596409694106885261237625251096340134736610888477537962905519021106650078917592271889966064432502120501562425038944295726483099007831105357859815336734172712477227341526418059374388123982389224389248814275262874791432636333804450539499137782269174917593967711838462934844853073843559073457728479331888959963550437284280136393074466316590450502905413183179813629143902721775131923718708159648351539560285158344962809137559679535114489259002955188301806301489499972784081882710260853793320423041904742872264199452059203708535188018626901019126411651754960596946141486714399789456209426570745687275964931641702314671002492150096502818691545076047837271995452470135491882193497430570012308376588353004858310839420647710992814838657256523460942718993474505348893136133472671067978632980561495996928642256202664690276317969994973736954453405887128078855885620853190198231206734925161900370141243894936702100655001847324170797594914644104976564790451096109503949675475951447223658920414444575848671594445851235076820198518352096952657822117490340273417954207030844239759613848324385460702156380325091408361091693690636861434418300641451707953274253951948009461695571143180974136344658683654098463247800482030409570594843003511022306214951091667822214480130020230647362216016315962205243551776289899174775811580385555389421663480389578501903668721482591472205631325974435246212198124261216092895946890423402007556738349736250956277365324429985111316536176785312493100318540493803601605893140687355769468650090437553977861883132157074896074602375338534509900929947079996301429068167004032573032654593094664146474922289494491181184590876450476250168410227800322325173090579322968299583824175412071085936075853255433040817006005925409852362683217869334152808166473812028028367088221325539782532114030349885081317107009747304142929197088558170316326018475629866889182855045521154959228451286899571228017179856763021778116089456988699848206550217942728021190348800724018939236198480725760780206322663543053084166454124069876422084266589382799525854168202582285095074715404829806939926854286748540631420361643627236821756412846505761442632670298337088851682257942314679728440173727685147924302081008046209556629009487185979251753153073342208425608623457515734013131160861718337967530776049348171491316457894708489786221310681887275752898867033226493808223723088739433535479134313237215165227535661337160299872807592907134802849859454412140589866229890867759485259797208600171412470107049831356338338098136189727834056755615003985544254084715638620084927933129265626544751458375128492530659679243074949592233311862490594170947446425997323941601172074677249338395176335056650818208548475258784822016789378396641034776805467180960909539818777940939402289907740496164786909120237272467342138982920130136002480278974531566697138564650887132572328262907735337874313994526830643499210515116627219184504419609041965217390743654163400630768625681676828049441682885673500543698281670674230102013935302490877862723006506416350846848161474056326324241988204311784611711531932922672982387919055763740598749049297467403920447026767699502426026393692849586234549209878648216793060019298067813086129627370075190751858754282695353597592599934693256420217551856280905730708427229321594976427877480362858673561217910273079331918936670128052010306506097251340692035909889359151461165037664173678988188854943719720599952112495216572499398682331915434202254040765390964919512543502747747142131246179008180266483883793353165255237861935236028276233084699007949052097374924512744977957542983294568314768801663767066463117391408062557296447770209805319514312205770986792854055322464753255228469754805668301701328405304577390117364883431636759929669366013440304670198777595346010083101943619310012150334910183497273827598640323228168110480289499059487567001923451246476457018962284733628539975628860230377269042649969094763579739367423512665648405715416930171922098996927504093025632976934510249523450123666130576129510045341668178393208834241951262858119106189164604342730575782913922294472206678612871339292231891520439547854480256028983919627693512462632995671537000108764378374210823791451722125090087949827103079821072343377716436867739282340246912682492915046390924454217023485034524429131127559632694297449379965003778878630432079721354804518038378013759814763023468868088577247251290768970225907249205676184825310633115763520032285344714556870487038561172996706819576986628674108952293812399799449537748271442298329212560485601543412709531469718142975420257910078506979265820797018220098294176410312737614927369927186504010322726145731090028632382287238269333621248926077929003258147577526843344680770114603555118299246234249116650258502857411089167327880523286579469723579109979135165570853765214321599814699294201098032627282081552338711977169477245768674889546028119415329385506778115655928238733236350151849912296039864509325507191080729047556872754258730444804801630818774222974970808685954193789016271434318494504724140472873682899121204700100560925697808758225891488618364495654189823044471773431436960526837132683066453363409765001541842910741410438742819287301878934585656033038033746196005686486315207100831974069881344763834612881214898596548557926059736825297635899710693366219118171186339613770756652885192242058791447512354544406023101738466123841587237107060686365107244310588932409574128413866711247133183304554750803083996625719163138932665655308608447636715854761489565958964473800697050109350056781575861579428074892534886049249109168538229845886950355571791125214196024146808033980032644105759246109816411988471570089166416698227664960223098756588881286973089073665317802940740256807115046128727681128445756470170753773082041629942805936479628111660832313237019613063474963333781406317713253198312794689941027986492121007510175565911374664097419144039303905688564076100922714048691952353967196394453757883038305611031212151028017827995837991040531705364768374925330667667240395472757356597807719009623482104930861167952670502109247207423976289100749507172841290466334120823767282783333859857354955834175387528450027725096333761784767682857436094844303475466871566369347413864740203609141373102481150782129508507951797670746919893180015064240763467988271613071596603355632974888593100779920077164960397472122776513596269890054913418339273700126670862244825047475941255517039925471354836533438349992639801639466333174645568311214611511274965846197851466723661242364283390974236843065819939164181407534294377598202675856286241622090411077431088716636044282534309305093646027880383323603685109948138562071699846307736167148256988025218092833034004749781862880992845394709926931670769307694690901362843514501748161407158454355126870497178799174704682879058082733369752323633261964384780113514650986517377508552496639081865292535264485994535730565186618612957172476027249588845827868521646473226796938314391146777674018614803567956332644190164033365504894965762770364699059769353348368808903776943081837830320319483225002334137338333912544298326539516378593332006109145940596190084141064566510264580940515303983002075732277953668324197450609301811184271480229601420623284813304060858756349507982283238471675240208129199583723962311969692658345449641512366151745428123777325548398505862217533245945683655740199964684086736748912565231954974594280060923685061754880647380742764992488997479287937891447261779846593840024132659904004345360700792398324169278756135017178316305418393962460264521736352141832479987223086776961760641092318296849221461536241272115698216100976759998522747018437148428754862859103472757506959532358440904277182373105502106430502401021494927699558360951596519246977993019824422427052979095517774631887674393624084943411465103454534318781201521572083751306084120821339628694990467475210100809733309644286505411287819985326166704148448589247289496090254752070676127054235654365273046955177794166028532833201980823897404117112571168742904860431371348320019006656341602673107858216133734330377099984156191765456188228480947031890901020711982101804489683668066208626374760343137098160126883381197873173544726515877147262008960233786521545055402070083715282886738942347423710025249855040602703361255795025847567344476297515958904776376961284202049660926344570045456563531049931232701370914009189267117924123294376411624267346541174062269291189259163218562401825204412655689075549451632716429552492720124889897889210461325788291584922977896804025371766678420324752578705617720918024740906972984476380876281175194126483716653790293497412351231462516222971143321117742196120070210476764928079918950144580316528350990523965753558930129000152063810639566342479271573714815831855688010098114258737348313078081046864414927905838678077085545856174413642046255717334774812255204284188701490991065269391266822501078053127532061308058786482141949242470753587037225088214014735863644978633168811972194397113060426972994183930984823527978202942848794672730994961043121765847980002909008079404260829362265683371787892615912903970480717347935131182175106444645053365731287454597940067885966958646416851128933080260983267893892329046230433302721190466891353559393290271789206578524223209346947387088140951837781368500453134589477508269561728205648420631946486860449346389527966203962558107357726761233002388469598228115154696795338759903963860044691685798464055546088910336746280905744541701047527640362164431281372914209277894919274253597910302099348063437214784268444276374728941632177797202797440132337843080620060760763224570354166839846993901545044511236716279838670804263834269756288480777255001039439200227761950227555024062741415668037229945832822758521588470599633116451967244762609077207553053527488148950391447655594284704488688059874396435015462753858164529421968866951058399498119822643678823132968376980962582971520025914072591388945546941102831713740512003372188821915582252137949506707821332180767358755146091995266138003632031611316784003485331047417673974421450172542119089829968082742970622971553645731423975674902293669258985670024002306141983496744956575927187037111954724191618394958620816847767134916717473776504459482094065532838158908032414070447101109089001230981865541294180706087161625245824124748264572198483224355961823354661327100182849309128897711345016815039933465843831543887535591366849683145628810454317723957373886560042923991880477965600046318268901951582941534288026678295839363464849949009768819775243729665610909395564173257080593182665497407861697483794026250567790524086886473091972512169721262553932281201486899167452488840549864841852069478471655085458945309484031927395631090309802399175805661185042095873209883041831018038150901862196847689253040245503635928865639672273703086608418267028639139447690108765606037739653864236168671512914502151432495972302839637087644668487759891779048718875245899353902807898612158069142905919277267621969088164730427564878342708043021854079389220488369340057037744964712123512345478570151230726982007688916512689346774373447463032668173469046071660255134489259994692982824963899287025082808656880527759167607444742348600182722192867675133695345513927834745467765433429180715914591810188182951098989534393641855671361780319466487744317777647930987639107311065254834175135345728022177510470536053835968843470615687570451225373473552121015694071273938171568062668117254946402230542496732400128231585615538207456293582190719514730137525769272553581174943273634018077046971155017699857337964814927879921632094368022676114124129477653902342234275341497267927645921523432507846950986973758401757826170417281201692930828646824400253241630273290726678859757699828766066380602961250712207524237808264538918989087231696409133717430987306313445031813645230596711858784265768252220447617632784281883327786467832977720616054324959855130793743544823029867579274565082484297163297797199712627894604884870117177058108515378509389690024113464359563898740058668202574022460025661327847446280704397928915260206463169618987979717494490564361733876536949638127341450898815710621710270568865180215739342554531070964583102377028820322249644878299229568334243846582610786975955821199978437657851979185287592975116369895086402355334094970906267210152033280211593123899832688876945629353821669576393901489376004813710914622574896716206585087286667063111055807785825778713769596482942473130283621953854887020085180745036189414747583777694222490033628813743277937168699638687109668637559642896881929688655723964410309535763819283690311827351793677496877179754152459991881755585976699269732693834447738248056418608856318326062508504824898593139456646321050918237859631978680266512356511811446891950882982858081950760366885537010247814744267784646190058693430059906764047172221286565514180467600745103176605107440896142139952166657399092853300538670123915319260983554775372359581479426881102107479410629156166391623633452152911139831994449197038689244646850967277780333261783209326243293820321394200158561128752637587100009379449793503682206926536403252989451463764137157710832227989569500138814933776126730168060697418000542626752154316850621562211756421003576451458576048501736812540110961141866229518095161681745375472331559823111856278616335421132284161325317070280567696830895435713289496922355166460797482632153574180447601303721969248180852714768132778288355721577022881309187762295560056480866420737285508201997302657672736703118043278646970322556721485142720830523571142703345535719410814530309176330762225213656494712477460386652264451239775490543814025438369118235468885602571926835213166638775588397227889820343271568116038088048492300116821133296540102896422496366411066984659793807771799270489929211575230604014987120754841593753842913915824076907600837437846651248920519794586994136758310800932953191117912551352126187406782689091798292285222582242436962768326912485119816246472173091094095308088566998843253101972677282046620973111379026838343070318323209967520868087488421160076095850114151066182863513737692090084428829318827142357206957138913728872823432798765065875440464056316254635884549050145441168727780116303897810820940760026003197927896029532383051394296477984705792024316285708866559560970232794668991826664539933121494743465661578092954745158578449582221703949058138074038792609022378615283306307730959641447159186036408570068544268436405528853086128440019245961157617339288147853538299800139038343823207404022539324410412092526082970939489806458490056688884759947677826137428649862782172471156497046993301838525150851046971725237872967794791666362819461478576629595025620533175313613985890591089012794507358010529155060424991646303254868041769800917308789273679699806153274212747150115336467353758969108680930674413051512524294277200957473032046779884046375687199216508053319504840481835671179522649430688556348311766757671322573126179314355743139159789707064788808794288511202448523516596337756302753673158266908153489376923928520008617119322076736493072759465807552309311369896470030270374751094466478776290204743462142872009818736091480254423258084795623556989513446842785553846363379064379923009157736146593541233595174741011876711314131912985934342641370996606843744533053146092194806041183641619025207730105717691418840047015242006100047981061281623937642403882934306942757906297375796576034225705781968532065810115379051755251596572821073418307962733257923558538917799720490220312477834066537585752803788983376673427990947188529529249361760412420237404104774279587051801698500466086093758057740294414676074006341706027596704893973893202992498207797984403527139714946915878429133997933052914355008537574630101771611460573940142873122313566396863463029065629345965170397883984090031257509561831659770859660074082317318212434093227138363800423520191925275891963619785223048572538162224247128148435150435934667809856547885746318919031174464985689443768560018856581460311555142907112508769261288049096309378526629086566052084985116378856870204427590616816133420819876941999361113317209773558255125748305270188673538740655701021826826120654215204103462062454685216120297823504761761458782175563132428544326090214169547207137497688308673740569822136509707965380932561623552248271040612136163239633921950259455707612224258612676001140955288022774364231317411430949901981790719949011033556189196583100048512823027192621673713597550922597700043233534932614536347957823807174241830255020887667701551457350310928036283856198902312132595292724947193992874795717408993824473842984385978784894996390610727186907564715753401185510615791932189986872615300342135978659637538883468466886903479567359668902871829446342331718657516465477617146658038348030680855114988309559728590170733857345628696605459665794020543273199819865105693753598389046385120302918666818309026793451080035163117300556126668002661123454416514914963401538990289470300890325858183639338919223018109976623037733695271945695745353537468449800039796280555245328066240031991003466400313579406393447858060582043302599032012670627709929015230911008820067297010572944939721283727069148325985276583642938106022519902264751101201575288876842875170616115075096077676913174219195858903518597363212113041506693792862477021872980130208603868583089339954122571025693494079387948805761875473882689070932220052189201923826998082191071061364666880794168737123639051700626087023004113864859567164815737633472370738686477291977695422172838211267719608314693542332659244573933992901148460242556207589423216086029645582172112340383914082547523446319682767743677191664097257556800329761176477760199958543961216940077084052221935675045750829932537208577282512566290293938832959378076484976813257676827142405725533453386297176404351548836683475928085453973205018546103895042818964337862617626505160251617732540496966787394626608595544546449725417900096656911019100409270226162068861168802461182635241011699886354698204582352717626869404581765577839654213523190818131263208092490958620146052623164591108213082087663232709031323210905153399876412409210799435695173858864982191395241441964376256063801372940200847385829436766714771985412541562591409412703431609365321398445918692060891946175822241849054859906768662824104376669173024701862706446245721129146909223514897381959956636286111614505359113923797609641247944950660526183410574983760802123248005139331191651176029211179381255769093111070305155578780269086278521959056429838290414541094910242620124641093723279290531623342367999590948530537592039587121168814028107685019153748260041010962015229390339160897295075699529076884918534146057915519048528986995254461146526808681178755331352397938600911554269252226916243070174964171278677955204247210335786971778345810406365517635809529753979727182906672302902461994230940152003698921821612009003019265426061030790503405369909400908129205291574032255833919321195914618073798569323905826369540660502847688173424964185817579079553237755452867398578391832323401228448517182688532381923249373591828868982697615388482173120481904928991088621719390717145874614232416470003161458068812268144847878567366244617343438662579232470624946737264190684316821532055895329740324199600607765934040749187606460169496701160080336618481663870854316421814834116246030934681312675895321541067566684983632980169111229625226266102160610612379429690463572191749099993522218492447602220925860389606446126790110720581281602738443522248769027986505212026096039153710572759515508318971690478448304913712125399262192132383312184255851158135825027111347112395077766816137765431373974118608945728343336417810574039848100964551287809484889332646149177101956482990956624160012845262375628014627860677134523290382125478210728637470500159695024961641489861039691631636621212038577625136211226526119491493046105334648434367496598689174236637891543134089084603077140658363661119001546918756707430885199324988415465731913131383781116385378837286445401024381534173010635847034355828735604536804405295899169425546605276734422730071937695487443182515302986381478040558457686998816859554521963429910957214462329682887128704445341750379645236050735511506668921378446500028970112530954122331612512775515538490908254062790388004672643272970260080204801301176321608357151950407609623395346366012737300765667324119789217397906677124322896208043597140584925676604930855013683651439725932360767462648148124900584565966396206016159507670396134001206493833334208247520388998056172337750380796273677936781221479830442653085789205582403034955125180836574453116462508947656570426565963431753805963496021126461330281736267997112063225438170233681209943445797123581240145220141456800194644168115626037116234900798407297604059471162689758943660300174782809086447119509440825961637557767651344178354426895090349041636367333380119744157078434088464247643702996135318369578119989562323175550501401778254700119371326817833828554052755609276552736465940535638108439581066123493612624297930468605549895189868495399520424660145720278067435936827665603671141054275647989281541457774788981504064251298843316309797283631810041655131419889158205178096217269292532007809548930273907304809072380021699267561802358114902753853876693442425524621728877497723955735400457915920574815328162786974276825694050981602874183419193789066249632065176813544797095138879275063377279695080150127850275847521092856099283907204494243314609808619843373064021102118168619400164804429530196460128923135156809026382186987321537330018692285315304940625881843357504170381555199380389205898264463755309068061058847682444788424134790322302832159489110519576783333648864738282181126355869718565044811362910008865260907042776132853926420371925053614773085635917100205115551664735640508478678280155027961674789238167025610164078953029379356273484917182182260371022195514140286287929971650990841165418326546866746416495574998577989228310726484878634925448516729827204678963545600265408497950705555959418902350382944376242124020840767838468028179620443313235973465841408228642772282529937111417947859607521954013859713936122015755063799140920272399294141936811484929249885198115736253137939843986348813240083668111828685305391799251435386732209385031302335855669138730567954784502305866367435690795810706390066543908623128816011250905585459673318155933844296493655730761157735638792857782949200972609091932874352713309473911935521923828960358471647147529382181553768432685862961777812079300435982944442016427444385314443580149462235337632381523099534055242254755779059331125001007095052520915504943133112124597930620566085789053457771546555961737693864389726963762670836923157981799707434036172942525403496945181392905987607468380400899458472374552137625992329481806551852047463805166557308778640152070690424506383635224272662841453144842914357324430891261503372294335598654393561138602003519944114466967396664469587417906742866197254240968063066910531289667253215652159776786658437627298305519473616769633132965564258120618289552446933749715206876287039828312703235721932633866455169833658215674818387115416556704424154147242651672640052858553679273323773349105103425423037692234037102831570991834114931729258648599534251663418800097684623068462712988304068191325773227460645095733393132279523026791707437998996937415945149063629265646248726964515533666676564743726636445969487990573369833678107625751701836064079477268458741099118694537838057172786989296317191918048881626623152234351964828457778033914553104724667470390215268515582217205168449030871147942928905635159532405466603356327257794719928813984339582231368200120333706118716830324415832922938184755359128373758153352509579673846018076428432747593321033454422102260384267771141051860338365539849670202026558952351104793293019026576198001501897775507754743027643033740361940155303290167643053622510724706245148289816823808661703945234577271774743463662976341504106452112169671414341027965045937015921249658266420822040429115692751133543854451128518257779628010821291725298673225518273313560468025420106817999707134942375629225276683446219490164978913131524323329470427350295153148011903146841575691664080567377189051666760763920942809301374670842160646020226297721567386757394531504907514160855412527287595188445864815824759008737157508829688790471964572694424744846974201598599568057202388918150017494565824493835731183309942857973077328997537184783120750485702735588244906453142609160599331825544081577905504590166203766095262002884343463098468900491878970907123147924996544119661438796479985640915340511065435993329932594850177375432034010373794272244869610800128623110260638042832891791052744932214076483964146837954810427133360363257685529338695696242154576635112297948414855479560777943915174159588637055226985912107377246668805520983561059485574314147310382962118607501799343459819327046690913011400438766903076080493934348712036088737402349858123361431104979119135718234084738658501086166019568401827890782015827930785506695451238068532095991180534705730392404712406482350024870519562246921516729644907296362539150596977304189569229349970665086600306858116146401831745665933464381346504038686237714258543546727655728290216623814798506544558365544483656255311056958562729162570283019354756670209627781647083381747309193830880426912844019844965954245816368194756983466851516555824738902832955553858580698106856888992816601151888021569684582109339588076353131508427972916329524250259164815409411001448116761691922137154946576270384618895978512910877969150992681464257124927755415687152386084000806021781165208113233393609908518864733320898906237258932586520089464384379026009357149540656728866624798805755134759089001685776030616800220843075523247363951430689133596803304603307174975095312872148907008905563242909594596279605777393743528819148429783730910626917382818923121782942792094331912839295442226395994697519576254220631813689840837841318761954912990260606432914184042688708700703243886100542887214606210521696102511613815823296456205547177380444012810493793795516093054810327194516091768910014780750316273454185126789519195438588852692680016139875261013002908947459196493842363817595858795366624543615021531333498332215714309909699446798989925912251763189920078041302030562916610864889434879302860325161253466338591848428049574318833036289787606813446959713629183600297514514957088711305596939602865592375643055599448623970553450751922832219243273144930529793282790565286049310174380751182631611519798032159364000492008162048580299378733582469446672456775277366394140513515894345984347431422779069061135332336318036494243077604553508186494963612594341482495603914020349812366977084816482670948839354363296301475375574267200158387289312494829726406193960038196065803749640465877192058900971882352934560495625098416004099698178711834884395596406483161304052490696840009846079227361832196185609184932482862691049040141350307839324671559377185217655529624510349065445672978590046314348445048876490381456939246167895881894856419539717619138712989262057586877095668696493839712764314698869349061623547444652708369198242705743977188002674407912268275630507413065712935223805444846720207272234579821404551031624148591581810597803161504531521637019875017902755394984681517092539965775005665420872833237456233586359417119017093625336616490471375902269897032680563269102148004783342120310788143697963869091440255282060979187654917598181977095477856837062993226977767996620431330473415456371706556933190330530546413456131465906344825034079697838382995456937537307832385945552567899820584226083014850208985527426053784694310308886938104610546733896131353600368697192986649572019067580377672374306851301302320640536575941804030099132480569984734170514437705923253140966555869980882822138217420573172715389063502879827363444521908881511425503273790805318767616364465904858012361106117530819761533230888146615508382093845738165576620554166945080477944564089856792529425749440068562572823926703182062523795325221929405779221748877609448523314434779733854229099961455525975178052325692636021628515593672219805837167437029759110016160868235630127037883558196180846855114516120134717215905125541861438957434906028898343565239814438599501998625065066270046769130950682911795185681459093747679262118684201271596611817832194077029138161857105985715436804547854462638176601139967687091281327340415989784692430502086271205212825174467850059231446259589053728821408432922134294833244074813847630601604157715683028513433582483994125027160843784379980625749682885777503469814017696978329525035990952448950171967337557591647930854399732415133804895628662346702650191703597459785167887242196676068872486042637751686068723191564158216069925801478349419441607841919673312985913467700108649734522043465178491011404167232106110499636786572822703596495385065872031089205299789279391794436239121855174377482689066648034156284305868472069480111446439614201943410390756625263839961606368411329196141674283989343466219145085253041752551435412630916911911443138702681398705851905635680996785356071689020248770183849265588441055959314140410482193468812370255033414780631797312260582915256164693056623890830204176716253800462999073732830262268259012590790336733396986220162412544462212126143222563967348960904416311077821181645382977600680418103212141219287701718093038267472015640874169082337427524437746391323855140614639926465284082773299957981834914599445973740873203716806816843512185429909259356224380324881073347246547201213063834876607029647799402978745821601913908503420433368521278574967512204408039812244978387444795562977613465674907718752119591905840998280829477654455600276593161383919005099706461594105955972535725979131779754758744136303229042454562108398458792118989700200591897352828948578571592624376092609351668857745407607559961621679145294498652783726582892485090473712030112234045875080352401034029064678098597267408309105800166011180119328877243330720716461216931053620569917661078225558472405271642811836445956459200380604360327109843561637985899900530632240239919283002070139855892327094313474721882625284675204032581529220749889427582312225375987819475157688000162389143785363743415673756179961952198733239542672087409619330751840137388437509028910293120399677847110991966112641286372213979922368965017936730360488101025128264295615242596830515146192168131623775062162318146490931826408306279744760423398468901326702074853653082942409159595728495522882509053854783757655868469936664504857989271327369317304855748655662886644246145020593228879234983337634802560846417760575140815450701850343294089289227717204389572021296792396893796751632619590399295301685230717968474173422174195473643878708814260431127499944404217245956220633647447348703344897648432589202497570381436589292699700554635068089491386795592225865157463096425204588712684442363298595396540391423558783348149110452384287968517486378573989663457614075866681487123628485825207844994106565278463705628015145999016879170756890040809734987176057829170765260639094333972193800970908747901367957213877825775144874333663299071963152107159753172881917391317291390429930222923363489663456044189958641073420027538093822892055201308740797733095361357642669911969061616182759150222249886956056658887993273526057871045213075352100128620298306039075312741719418143321974232299544114660784477779124405288315034902477861216956307692965467242917804888119676175546491570644070182934008405212807851619646668688676053738602983652465608490500132897809035996471931973802392794348335065521346848904197474305483499723950748010341193923432851339373253625337735133960486689000621017792262089958935641166180013839583752190042662197223364271490983061805473018310132479936479776050027998412776365771222558384820548740926523819240909952685651315735295074563576763691656386622111836511372635001757378695761705156453889666176324639323332508916678413879121068541111321906379333590579922688483622214961400805767659518249981447395012950028917630333909653348173442349956895593174540619336062895581946216813763766917771231129705414248574584295346305974043470036069203859112041195831091594050956357704903898526311901619535603901041009646342323060401197098857781385814148286338522780925747829735013564046032668544094676314056114217788868484136577912414336226681250719713828040092175957944205789347135847996828521837692580823316905296889713311579086042251043012241583104505996752006784369827514622774006326726829654824434422054069491228264795649046450172939851277671354836013385271952494435538643930646555828881970883542175156355666593408538275903121127884296676924242785980918803738527476295588805526572085034423638419703913043694438850962683864599208680892246243116222326497100426615622655922828153114454950686483608225564795293620793758339466806424036851430934963105899225878431288555732105820670595449613714353444747634318089822491935971172990791018455375819668150009356421873222748999350168465424991922691373959994081619712127124541624637480997336190638100120386893890231588952545890073662608895946665350720799647957950234033798320001173904659030899950725915853072242441131109567714489226836168666703206926137992761316810352952249793320583855208081851321349462070841998810476385933187986527670111376164872533488136963313809246714025437416334951097165390264612450277819296222169101874109424204841247833678097882323545160934833047269268256701896487547897391784365143933870671445507378499203056446822778801424551945671063581604477563348635629088069627571626540126906291732801568910731734427970393871247615687068771369039919498603841863234555362051826344271861184434258683793980564609533992720125225534776376248147155030211832500152285472204842578160856536520120158509809650567065332989737944344833653946692198941188561007490851083106230379197172347708417019862980364280007193574034109544762899779943045586099720137898830442825760676060686622596856515046578168977246632631545355316974257019697731585124725123448330102419346105624716852786108850125061986484558814104538256631320156799127628902105869589640982013755877309247670193310434067540941531014367714633637487418501867846155950961550598515727538996062124020241688090556661002733088843399151242636913345340261386442749561271510596313585402342996882230556585972672546129458650652815799209193295871625153531552307466300016024042097798344594006232898895397505625340180892526422615591866731838494364388626246679987522265464750262731426690625022887743788086600681960711820032080982593207059310428738516643889990155859280268618574138769375537740132981000653895042568852573774818522147364315598367459837810082702933009553243313833020585662929982486355855818720550301505352256116085928271194066701829789208387028544999440242029034316757370506897176575311237483392555028244537304835964501610998322647460645165982620687859704685587210262816362997918263831972278934048155248230167903205840156501405930275445321487905326093040006518136504047733270919972118796084725202038416671984830845624516564661710222290834191951873030781108258239170340312638641699716248389545197473709484508865600678451635849970855304857222969536879511925384196207888212479170697530801652056238796061436356821551126255811166075287067874365267971394355256079668752193167461849107404500516288606300187248408818218134750180324890898810918924999825471278946425668818526823839112617848065445194823481095464368220208931845995007300428455752546757802677486270340335625873343112239052442646645553919844220065012251744065036258404918549429405385556457099509347132631142691805669782953372405929882566988728445890983004191630121439671579413026433885315105383776843158319861912528633775780803200442371777471383864623755362713746341113719256053526160874060869901263601805707548594190234226048579587550072188879987251060072077176414456818443408493843093823862647439819222860042194325836674194074305267247205910495916752517580621496588317038525157309611678768198185885174810756139976393536169206418043243362352628445399848268965295238260894351616230638165505964057665353671999703098735285123142161070450998736239698677449312075246549580998514508186335254878766277479819393641170746640223088969708955811077483619933584947715203456524366631793208361427430804487149143103706575743257489998272137537657635968844812377346425672394116761964501169992854463578058085652479101675711795403278604961718908383721498712760397650125443823218744921144034769106487408923843787602537795900438347556590153929587142363057271800330863522637880537975948947328788148031589546257236357190186107055250301270045029334390015183097627168741159119541773735020767552361740880311284073673204633401124551344646263447819346282760409543121706334162696849389110384264604606673178760946597016797342121195046746925503361601616617090102972527573950060500280062840386099531254766671892804937027511824835791393756978503443855083929951701974399599633125816584267817580754842688252923436972734848518332823597688704936871083605028816075077933186172524863737281401841350105897090945605713136417331510182695950197283574435438785111512561782598721053102606401175080810125479728113212130246965063452080361172937333928062554709153205044045981309497635694863888224030051069362298871728585560891986857346549392610551967078736810001999422633746553023633859527016474491893603522895596971688922699303346270894900507296423780251922213936168371875654751244223812669064824671988429382376311864588031194468541220460924400737726247169660494504477207420835873344438507979972217570090571066117974546989529715529778825289547977019209353459585380951380958816697499567748763101008071307353734808060431407633395298495851122900772751397874562766791713493545810915962847298958856141599925103688137917120318203082407070831971082141892956814590119780077835727033806626785373076094736236907112149185399447588041966704901328675338784161166584960826952922447380714167768170850968293778825253444304896103886803529395373536571064407437410724989961715333568192589891745188795383398575847885117283428853160372754392302964058980569483238288831519269695636308606786901493186311684937994412761619932378796878903185844422162175719747416045052920100304103947017414593994202471317056999193477281232534431807112848179782642530757945008120615556906168163417323481315044719156912159425972674530459217750359904156608727505655337092701313248434911803207121036831605200150392998735172867281451064037087579189958655738260246367075449501320773391528296605666806998941065165816297138582235546794989766390530592100361783278917479394534304834297244094275361677517744432711545993175827701365634202491875087031399845011281976716999546534869028626048535435687683686877509877060624687925093994000480776303707140162950760367428724076509206786725903480311196416199671903309528082798843636703155843407963291423966474899926673128949088930116133976771445768200977396283226718849350557971348490458557979363495681880152449696514863966642519558862701577180283260065522349139268711338374628198944695274279313039146225271602094816080357775736475643597575833492737011642215701107767498949736327465039267033363606864915118313101514445841559312543888480517462925055783893689576872904413590765518126037780790353823904904736888255817031721174911541353565746664034967496817600561888806463186577341795781704700140669922095294552609412313181008080049428941422426727456715885567925503372112997167240470955374166014850474909789471998646855404340790280301587359609313177893930120772837869541470067801376558607141159874556834502086157696431985253639677087799975704817369756093030693669899675253937898101999605088970497439976022500411276772791835286924985621964052217352581136474950511503155487297387282547544785189822738722340377999056272486761238153071470353852224689935020321170126924671385819486467911603490520722311365155859681814882137017684849455428436608916698045008235345113778752938539308955105948569906840715423698512660372641227890618752265343573512645871765640947514597512842394246452541892462705987801672016810845376451689162147194655797430477084983105647993827073085158857800155512067401831017949853585340943756838472662374214586267772410026710018348676404325831703990763533044336368682108790314337399709304569084100755271640723044331098875567659865882219148145416366232715141467909440982867702510350449756862555006003108373105946963819332800289136154765910936612712650503863814396876590189148296345020796616504550161932998630569181425748276380711218079220860466282745942648856218024761883753962601242689947236470311704541199482973399274445470025404369789037056732506643894846812380701696954288803274852655067776540870165632281754466487044624859636684699290114687003587597791433276459984662016257219329794040149658554095035349106531942151003728247256131842504341119586706845744531381936813421275306680061385694018516905981898411316812517424254542360109133024618963051547357242165349815889781575198043914892088882002740013451355141212859017776757087123673556425058766326477743851141953737242246737231321380338691124500468195856367616481901116215438155127590701563305393708073906295361027209717440299597757794008709756792546055320942557266880699234156686651197596273342103888718135339982904285407783107693350610757445470676651735307628008151154072368179757714866384902949454763872917109144221410747853820435181456461522765437081113659363034879791908184504747563390375072239799106373999977983815529539065273682631538260446723961681121482072538214127597138614113770589622939163047873074950292950421988039894374693424331218153112561570811556454588210459681226857399018455671626323573085572419410499540223726546072609239317475384451464229373790983262500114512344708016089221249436481712658898750295625249833148431074097949514615934258048278545477087156428204845530939209307466866472259645152533682514181708337762164707644145469742737352344609341457762998629623490095583246654997051106519592689864327714032877222402552113208458766110475960938535911526322326948541226276357941121055540562385748551587617141025111438293631364427384700193392746649304173698379787373058442722501828579967989558482682174717529762901532251319491755418358473482100289851386754095643965789098561994796644623658443814325643570432419210905202005838324305224859895730857583606373929750953461145955043087323025485582856910379446333837532363216391374288573398524965793631240155044952236088881439774401139902593134985127011761068380730810735504662514814281901622910388723175428629600861790061803811587902298635559068262594482713177319308690124455776107734191984515655408811884225991590250920320881195470766368300728004120707856585193447889707526790244969513613546124825120178898807074710440523943274305115310884007420743338613465776366638745154930594214586300739526557135691500040231510308118109330145393793023371949152410140840809407442509625069994006801182401816419538250411712685893400650743108777769256789385070632796078918423684746741549419246622204419350216250342545439075919457279517919118785467134054521116482821471944660113667385476709310523289577164971642776288773036199404920263450554603171506784977046271797657227277504771185133096855947807127862099540669294896275207013253268259294095046299342979869088030649765632050325692952616920325627361164842109528248164375110136396873156368627950113906183858228793353658678482505629030673534692924786549130732608221164492473888868355956469313135759408512998031458337896671679737142543220092397509539289276995808066801191738738861491920078591618813159820581183849043829363342779515743457588923105324004649952178483736000163475437844923160808387040130566077173455400331905362162519964350195579020925049921113949451655546521239490179912017044763135267213541554178348421357692102487725548837135384145189357561298088940782651894342234094469231754150698811868018232574231757014797551622035450997003546252693193987739425355300850589332766014651531322900612769764217489833420403518159572395083566393670469838062044961623474617332088728914191188158001358248120163006291226585559173918816248422672556018255779518863227260647339577159032481783184338645391318182289390384721869571363974867847516993587507113599786165172346121467673290074397465774371066295731429625547303886876650882687662701007607428051510264181600713905887129524026763966870826323078168121766050435926393200028505004337790181861789428476285132247112108883872110488385882723692913227565947334206831452072574461351574582261132746790103551161644909025429126201238668288587199410177519867777716303444528261627259859096293684729702240444097676386906000451250196993286781431971133457323127516897619390526860309129733494781045995672952104485799946215266262408004609904165430538353750124331305614017655918254065869734190153752064760932891772180035254801419324734146330475083099333855919070297177588629586995008045567833939467304564766257129995430657156090674767501117366436073402626870325730688890719930824928475015248290173098262817430983732392464970526580277027430508776773214744803927906926036565795959245445602279012918779540006691719687683557378138963696502587344186590269120889237712556887685960220621606287726925203591112728484727254938995532621574032633615109844175901724762745689401189483648603704944656056871676464824192426473484878121861067449357056889122138293499998699449856701894084160653610468991289960979564100257305305734450927471800256442349562322679101934083947809800684693478601266373644518346978838055011783329796457689834947827705456917124897929658141998082027434326840082366519780269395383309950025270990380684919922908488103945882840700715774789445544577331113691567705091718953460528808179977550388965806135424264243714291998705250732664078500031461380698215240974081968624790162824564253531949978582943506195545736932536011950339486776750415069398105870915569357810740169938010535477095481492264556790961520763651710701609588052242128335660978579318323135490858754870875425407811243890377291434433372813540381053420950569545298035089057438113697278222084169480971881887011549985440177597359162127296825923361858011255305464202254916383901898206743222390100738858784025925450888876660705376468932117639128821135989735919050338754637367709223655950604828052143378277921707150209440922860483431967531576871317235397873545952667692709996304150118614534616945238553406635073037543862930416479111973047519409905937048016284791740175919564207506241513560515150819798138735780204711003529662773315245692700323419356250298854657061373773266166127123454490033401383276772530409634586800451037722557209253069782022825013638210559035336068657192010009316036262390053411381441048130740985191620663964035161237240047669055659282197978209735871461087456313553593878042040393340526009423725768096956205257596966316449499858152569742442100568783232741819900823425376978582777295693755240031221413812901647372470624333506149445153460868726548923461023093544298621664419535101642281065659592456826045051463674931505403380967776573915062028284729443285753547384818642043721827656362364564595087630591710963818225870529448124228681888682549913444862825267835279325273997808023637847866259717418542240116506183266256702038474679383945888972701877509798752251902938599597470816927756060489393618301407946007924763641167847029687934094644008837871712425220270841552020245795101393667927372851131669587933852827001893872262569107889106188566117101063651478835061305078726531859688508996226644648953712582669378166639092892171735011528904698447111103616375213861798900406884605025432125260877616283640958870248288362231457724163256327665942509578013089276819939964166998702046996481968297596930423861383722809272930271975780067665824200656223676049139454649836121551596608778046664879858552279915611314817416962790800986953803455401414983761789777966819581487123007413463137476335700618866251248895817395552177022903004858183701523144596638267517050283259277365355594540454038957703988838606421438816482309407348724994608679999042694943822560451032111438231031195484665402724508568173851012167615281799280832381617427835103162856949708657821961892505375137688945878371190573589359455051209923681934835109201387704285709143690695065834938895899206221242809990958947867000949988260817888615897151295763187434724402070375933637098276128012885883114549069695730961292672426714025070072401730086113631317519055540008679110278302639696288611884251320356444057626301324297680078286072778753259789254318202441585419645609474766079434819831605742619642220214099216741741217154394245375926366597813867108627672666961936453035016334950301784351835340800165614961690043078692504060093045736921203190803498051753049704402156068385702772708165579118947838333607090603824807716113785412592235502409780149416531436023086136436342602408214928598130193032284020726695311290877192391400052181179366560730502233541082389648579884170778585587002249311775318885298887920052178206630479167267797655436172298896008776769972543184383350657137236595560454163909114249965281533225091498519843463061649032432923080258012767486312773780382429125944171045163318968502996931948091505645175131068165953985207103411639492192624567770395152298774529837122366154957750664367424219170825016870414941283018673785473310288151872209445394948972096248902791883467230748731716101193728542748064642333249143649009575099523659664236781358190394217209179774378472593847225646875698471581104310758891198129859768678701200068293479274562443723772041469572127709680587552307875605673299090130407542689275430298815964286809335476821698530098578999337224946894638571960844533665202996934529263526499567869676844647128716595748223364479240745781410841152617775393377173306255928293166396345058654368163700107801769483989958737015581172625606773460068095008559845661120326652018387756357428072258118225952006082915806702972005189568918481270958024649754825059591932506689521036692242348000724649692905311577760862106594413269371622803958325628950704897101247922291575408704550285574897055316249144112249782943897221107503259116623108363146081917535297442573933222609663945633553578253646870114390692278973538032610742358686963705548605693946465539366823636379354214570770481424998399331303007077734619283063008002026142749029673791941085439269576958559679342283797083601561091515311003648910037432839238661598112665201367203797246548513772191586857713878273542671363511518597665322594789667191129852076849365425165379869546893181101874700375922651704002448960860267109090552242772522315612541345309452447552054390857525778007533041296952242843420999096656117954273450963864750475062680380086297905202210016385065124812507227701172233989855570204168830169128831262441575357516727619416871638536992043133312287544360490676913956581534038329335973689488632173609727208380564118956219799405490537348997104507796308476765375710418794561303991582125191983934013500363122190115606554103811553660800821468436137753510681748253155311187440854489463559757425662309315150829695886432130899087745760605556910142263279090190971725113592380423572605324554573165126970818143011291514624274227449435823601646664032336075441841389553629383420987980740223369467583137467468015314467625566499588924429800097088088072278511124630600756946354043890701382637672632553872784362529899445059461834069916932794043398456828304188687556516432297502567958509899380617261327281332150845169034638621321304867969706231351455131880334042138739901379353435842009882285195295858826205929435167475078599841372253566696433312226345193910028405604110093414316632573521485422598962251680548034628053214104660524994147536910290056449339554407460861382547698917929784409020782317732307581722621784725609387321725750819386334568141859834542382427037491387967171237097754056762601249551391064988934321748992230658835203331039851755662890896559513528061993979182812415326424757965452952120924006183155073695674662621214676938504647987720910587383384166364379236296655390107989051605995671397764432818644633962901560123802230964455076487405396136251437780184678518627728077471250120490820178228258754911991230509201249634972729458802768261680840498638665795406454390456311826584250928890643575023925239108493787256587503879958757075389940603735536156857250850048558000761918445347027043370565806176160705960530160074107403020442133473583789040218952479585309792200523176432161706304806324925008162590382300789776075745464197818983336346890769151954439972521001248296210501550630889792003832094140649168939403306383250194770756108470386047420740296778457068563307096777113728749717123568861335362733114539173731658956668371495223654270651095669768724031176637859848354076687538694895695702767948386509861419226444993515608771304027856107609874441702578201382064465250551907517161558368404519713557595617296418247926641302405874731554945803658475245012593938112976735857058630396523204548755277410239391849062649559912054575361690839327017433681169109436778183322513320369657446014023089837040189223645630929398424458949539936736657280010355235727527661937220287579540332122846082862516995502021168304186632943037317806903606989015018619270296369148176672614087759697193649591733102907698711558036298196834355049061977785063470970798995636425461347139558951298111619951149828887787318600507131352440036386699673627825783655526519967974495168194582136210981283032758329045369242837886258339629365169661488767919662544998736926600126587192381791048028227194772986128886467273947004382224216307685236109986124664167644758691500255045402522735502142577157724385228998009354258555889464483832998629797757688278931053067030683669632357066699830451351365650720841257988313963104257526499159752276745975735313210231147802473985549048622715668594074319682809718383381670022932298006746332296456007464578267094879219855622705193918826203025129548614784107197482203666683984734930321630861749749034169142337191701949191467587599399325202276458336332425406874258448954946592970795866501900293363257146392310628407977534448784369800318893065284720379065100202032547502411727184178123433725621650571235187463765046524467229035379604824885084020163843504829898014933747959795907759090592044239526514934503515458896834055906730460246800857976869874456629582814009627525016373777363859903383402813530281014841348695320539571690872819932792175124186016819170304831728219735638335190037882807981275793306261878889916711039138650276602920964557378237127264824610188949029472876571542851007522618469482879147472100695174472159610170058668174160019299318695684091584176607484299807981660974332086240107089553880636852514466807749699444747830948492444485773832717921735190737110280311058302941994610873500541976537901339144414012075226136019270239564399161651363397588145459100371822915650859793530279564003127481221647108841504977211734323034504777162062448595137265999922861347575810613422075733313938536407327685394475521082083821444873952984667360268835486689433807069024999296367930863623076228158391985872596083648421690134477777334183839191167992379808791491538800627895121917964656359714792251591085456305637341419922836396889901515776098008376905583555786589316919908976871602510485504273517235014334415349136021021300165333759826204694535697934317961512660935792851539198976672289465059843325115243194361133570952111760810312198665437438917671009375617077257774630815702339727884512362161818725147515968337451173046821231253295984031689290466460967257626544510933274544220027064310643096922418199121811518694218375749405390807986198731168340212713379925007907880015675330043971982843330306868804565955940334965477164313795758570220281840013002211832369859473977673438405080973168352136599291818644839889699411177280235892480511446477262898570049322505182850280113454144737556491700934268070859723856644197238636962009735871359694590667204997936121784147624749141386584302123441817516039933460432394126300844722589030390327679608051581451374188274591001239882660110281697148262274469265258174610108713683674369617447424732878279548969128184412238051242770712519731080624724173598890212918188914612384557495491986951286015128354383923858584034838132582660649286467415708709219720799840806270625516263933300253406967419808319102822278892600698048764351193282754717219024012126701636025981864647258768554296814531476254003803878082774753115510393930773961847065314024041738603712424061359958495794536603815086477750884255429557228039776535697727965661686030683161130499826481245359928627774967279787136510310260817292148256632297433563428512505643063782321771495496216850449429449378503726567428445910537340649892428375441934498473622884936923526579245057902268503622430926192938999038668221888485772169247861572664238073698629496187641274882601319159251741691233310360100267001796238790595280392425077521089438197344726200592075823712533915559832286777655569217520178546074273767274484812631664989072189233995034433044599346549906940057317892280968743462566883006604308612412389559237949533661110720824304908286136014636815694394833391184979446833927804858553160776944438115739274924257618304996176333031831931532870679610106966335816434418531999445969407309723728147247452342168840500595156687697711867588557761423610479240857640011067843744988022742372080046248047736948900108350916752659091644208270804998778179370386011177364789435337637507608845275549082757741923147312693905152422122523621381350811930625625264856759085191545860245032750767799740496855118347878087156605591817585567218291404245117282300832760844324430006792471058607011774737452345056162171806933761876374000491078301232331930848397810392761605007319073402672969965263158543667710084243576380887605331842903949143929804666589450676439187759568120144746113068531420065237599159882302261314379853839622971956760807249172225508130065080460397961068827287647178685424548613919535909881848740053112553283994548648622269819217142324317898726627240005416355659724167170615336756719819498796513259918707084904785944125979693046262922651052648216584779248127859618145326560833369429912485341942222242618980319138748034976871650774556619145654439005981114903144481723532089295256729063200191368738282132886558605262685119909162721337882090684038862499228660132152983949632348948400687939729183114278313095207943718466390983338139695041479362536676968125797714231348836885605466339645581239451336667778742167190187849215365285257302837836872569342142758560651724950755550569542736133985447761943375015148476487696282635177121178086193327825816605100138418905317251122095338678462451124707944042547845430205767441970712388608578163525796754101447733819194371149627546382272791655446010128333869059848853061079164703207511360221561294066438239604217586698336701342018311721090308921089394985743760055020222266942745270441314640200813607404402794435541774043278288874623974689708589637216574968624306720070932429204926163366133336293034077164117921977396885604853660169676366158199004080563316715953976193717104706261640741627709839709501000024104599433272907247873844139372088900113421266584882720207931932673341775136094962447241261795795512061799916109318442179415004755565853152546778644405397189303557671175849054289453839097432611720848784075742884357420086439788964726886354712017673866278503764516132747768541741931920472994825170500095242326773583229907760300499086314389355194669616071985229854249354590708398265735149072330661990513634472532710476613861898813339860773668671628753850560516465900140710647899943371763604499577796004227537484620402909277628956082882644843455792079533787332621089374088793983128164120927421760351913632364901750474088138765799157376522898373600213485821239953193826003822148277492982474741255863039404140671227375661918139032704150437038162457091175754099728064988985418703776074475138949039754446480671021428050866255671002062177851836692337825872350213929255796745211910245969704695771366422348738594040921836180856982913091902617327222453136589208548723011750726953151403321745409923003455375103872765587953714049618105574171721661030668308189740852898564970642973908901186530715591927967096086095546949083417346917585690758576776975177354142132162969239713693047541362225436245898023685334772052596496373648274500332201753164468058246203286291043124889176195648278553538002511376768456528710910390534207383424539794248245851974742677845406674799509913706123929328508544862558091435534658403944343784593205235822332754744025390694170827050557360724041758961454553930900442908668451785243766382165868843111984161972162777186968392388264085616851928412168241881339424198356327983027229514516106602171902477426546218294256389158764218608679482316386706031301739867313053427550435101691860331132553859437145203820410036331903711068573340139370451433740843517411359241048500662236134782552296579209457941282111318993610960142233557352623127213931687088873032758209812523978581637042878862441665453395158016182234456543965014490764122483969849565357785855490033503382316812418693766089973139097713009654790691180893944284215301966584345748077837432562280147665831846164263169675131112594875873179273576934315832771357910701717792108101892239776110013508755153767043528698985717298972134745619691469428200958531417625745997468007427913073258817014318732963118495126039176220411293745540541158945384834937405563097089785094469977918796477336822293029453090273103211623053614420616301239380816879589699237934424777182784073841429138291188821287972464922177411900752088836301081458850559699010575150606653700139847681063486435561637623929963562932343275981119207803672526866361417521500982871041850102525948029361792617411181559767717897727394699610858641220582366067342813873487447733294468139512323718831948838722110210639531412471442519238151104683758880309174608569948912617256534998513419468883235214999295260053995189019051686566342279363985974833641242869164119521771398244313720247842639310488927065569198517116481699621211654595064224065934784918076245834051594252112290039590712729264180653700829703244173766627581480920024498131853811770478773276580522964781300663495900830282017604601237160243572879748624865086531983731595176502464249048164699522924933586662072860997544904532313044116819572179425614885664508636690864202501943709951408639661435340142927281970698593652633215750856070115139415969676261724748747982707255527934096223445452548155813029414965419245740432340620654208933651655051867564323461712475558488284290461888799942273559106840223170118769148931973251402714363441479149711971217297490738419224326580534764350357404866393630306815439704325901143331896199479243267615095787440617628197258195020521629675819951813964155314334273698775162478928341060700576142170287657462081265700285854521132853819247213924050003632923755869937012238445748245298082803041996399252914642706488523132501346904448729453527696426649902704870900051082678156331362243937149682206813040942218309004986175866798302064721762243574297879492452215868484380222389370975646100205703179246018494466696139688808089638992549452888204576216168814916041048018042596030071981454991633471304807455805382600923514575428293459417414516240666144414530146350556641456906590553724471919431550176092694313763695265344493905234074225117847483677382066735903379872534465539178782448914671825549654099920989810705056645564518076157556064810401680951343316982516841525029673864571928625441993030643692901718368735705429075812243191593528542725986176256950551032982683751183779129898134418425097493610464729461270365042237442317273162617632799419764587707763354590345729897924479491967907140902519052700965432698044616597063472313399390947718327620048416856787192851388273967546802469934236588771986204045213768293769729406695906504267201546399168789170073311936389855537784579379634524433465885022309733855631823468991987195705914982194778436017069418914567751864622420340997536741924828161093057133867402124395067917312914012037295470969139709781848841643409582788378496315206775971663861540492954235721467341171679941589061420075976718761430319422938343909203264138969426806657256119114198564318121386738347477629529593843124745866806043660214099263279272128078017702857003351831596840741133283827420490156540799657768227932248870413436530582804758794547259352479314231563829692486673686191701606470596623259035491872158296237502370554793647682388602210928679287836541806995714923175666813495886249278685441963119451118145823753828491655700615003426056178292320780271971507386432141188855501963908064622217702788878855570254171835760011516898063689540000342098224564075217730805050862836951775882797049713537194515900928355112361844857733865869754371737945501089320545732673017423551209904782311945678058812162135041186665342175391362127165716333070493567843445783384652661159766416245968558892911997909737083275538303888876515578850306273208485645667396657908168805458515001775860740362649086171293986776124695905510128501783948802828190358763211955413068688013379684565816680860455866839936561177936883999346330674955918861160742225939469294919705010420461189609266531613614209497762821141026412741404942242997888541633683948654092991552248233476460128557230316810940869487364215893872326576621975114814072848055362802816726024108267135808186924919754967584197284262211888039847010981008561881481812634973606683497811415534832798353725807370428141184056822886145734956178589301266924540746046877157731550399884281990766651620980019705656237575254870584748211268772118415606693688205789583629205418006318629683050086894481727321493033863717918359857072738345181054094522170085599681209397044940894088147312019516970854611832951820974410612168268524044180643255587494701000363690342678371545028661271026702552147755816193930986592421263181620476153710567508225175454435195491851520236314854561101862546876761281127652248982796604315558679009106806884990924944153552905614235744069008572931532724238525040340979547723586948356419589071706737474608930213147303500310840486846285074827003151739381198040495117699443485377106873675400588117490996669808392833192574780379716886682237531708523741757699092010865681356176954556994147288230156725010629314601562456224886999171695218421790109567823896368622488346171792972317525681575372162002613279731540652140006744474821985052510862894073606834229740915652656685408226840496513105626559539718137288898649561447602055459641021964962022784344759378336601189699362884814259985552275183679822760994112227008265149213386426256764453793588213752848712916081711282418097316583020398496059661731771644357126182073764805045335356551690966255203301819312154147078492000557416566860831898926822886533552314059091629775789202170599172260761175917326135057551943724305504889408735493268389574432540123740316403283129410445657973351114737976813889245703512195799437090507273102326063594999827162446278332736765100960701111189226882649460636003691166111662792320139471196580570920673444175649134935003370416407232555867678248092497221296172253402417083962351347993073879877928638237064385614012495557920316378981466601692020110055515042437216995225876946339071621783800750559646027228001232517125632637433373547718564785160600185066620237340892313531488910977309192209171478185550900106956118605852534094257674236760357170376767477070727832010255019624930437128674628918189947199640051330539806087270742571326046523565273530217333445725035804197384532100001350771573060708982886820888773620939458750877314409099495133661375352799523272097197157479681957549399755343785703476583741256723623162017878155415777338703613367649617824565045406043791629590115405412473735688884361926451911037598732888635920798295649881918407816982811413953572178986051717281079664336622732974296131907949609462892277656940416499013285201551221407428209325713766206516331989656696113495038852276485260607496957476008801874641238828890925020337284595192623109092444788300586510810435526967373788239515548329026906242230577776460020219045760673051708215582862005138632844906738717767081491371112186756790147551024620328380426558391744511246779464649648298280406733765625617986214576754496821351245518742049764942613992659462307928503833314808004657449125952007951996457054001412120065641255415092371823482558331307449748779627319419893904042380141394289468711545311624613577406770609826758834373971252393342885531379033943196466624451789271566730760582072380867732817900594132747595885865287975316894588435211847786646334206600456213216932429331497151001750872011457678037779585597108557346106767467112459800193347003918097509173372939647236971731272604510875930576001735834902725796263296153549727620392505791422772596089035185722223882102259630460703504777747588194408143626011523183950350030714997241158459008272534618074245362709743636578168430881002599815034564560247668936628247348475119252864994128874200763085827975819571306721470410988733389306843111490910189025257385331962786474016694575222575244528737769423172183942520984455470657856687841345936459218875940318341335659950197067402045555973005093748049742996280930348462811699938482040530067149689329440674297700069566074917021513040039022593613815951901888941579069826489500214668343803320209741357891545341797042569291866006193799843451425419017036326271599218936879516747527609756730288101073988910661225852321835922628616959969339714073144717724152254028224219490786549779229335531801187243747181967798210315529101805535774831370224099935162622698123701957745965480254546820506287496921492739522953740504834367116669528442850674993407850728529432535394574009103612355991789256636047050139376433107788286601861329885176088954856478025333605028335516682577898892309763799253413929751488912254416673195970134078743164139647658990988365806964467323903645098865267074252685495115384563053772316821284220722603743942395039549186309147725505493255090865379598863481590219299543837677163870288915160850101143283805005029432782157136404845725985790672612416331070570158622703716605285731909622937873531986879616241941730003448859835618260449119774532715298683148903414796851499485317694833308600380468713122052781467541405034381939045573769758204045108775547317459376593037645263369936305966683928717985463221686007643209261811200083627656149273282848707122889301674767545646983409206630675791360193489258439797804385611621061260066826318103591565778699929494154826188888482621087826778204514835642610469253920399790916780886014133815141094910225879302072222209912993159146544140031320700197690000222594143041664621734725375235931625102509923310098084850623674775567852737311074205287061032378998461081434883712012678209271306561427030085863117493872577935026767601143859243400225807544532506501395457763360546369873529105162840402783760460711203058615349327800894672714086873940023087857735922366007241163955419350840614000286764929836158694098553623458100395126451795315227032689667830808096994708009349915618564542033183689428930450983441439385169995211797794805060244522129104602031232798650348198255017127219695674793101880515947756562987637788467170444859091406068291937873814203160125549378347558426542959718262798158125889864999518024287876044302872461371827325062906632901331571710383649368728294564338259959857900152793527723773319724343197382206014203471130016839183323147059995625782353344691521551062969553555729730826520514883049832679759723405608732518961364590456486629412501978099417857306168982016806653891770921158260520591831590137295374328827290622723877980047987369969314166140075215395667332960361214092876652876106414865926647458256984930739583181225897892468815408695635233163079335906169585292020115368345868876908453539446149644730007651410442680180597807626679221061692925112733499338102930597554190521799145524234332341676743166537303285579443251015433336940421162078726667038154828849138203813189373822796738824031217733304346817325728836857796805881227789996507092516455502967206152980920875488792818909164465071348280681944113750365611389134020849029592553423546679930693166482493840333557137082708809077888079224980466046100728625217465902829911592424707336218032556457407377987603936364042502561030202755659299734860008500034746580886837780796094623205360501902484433312802551403302753651938043724277005469424748402032572076441245252090647440678184084234515435950720373826568993838495340723094701916426471237571970592149542223320285165677733962633432930153179262890576720717118559659331340972032308577073942152124138650093347693729245343834570203039011948457311367475085130889053275321509845072180446057063355206958527693187785470048158176973967414110052198463187339462625003737672453510455246960554181757438402472074889276524574101710329704543203571575833304278595310809526621238332697843177442204642757178422164145841641930267079457375309473475438430916056111027795313024338915675547487448871931373774188387487046978608466333431274553493152109514995430022229012573644014892021679102845102396852999789916232716416140792799989541090282964177574854693933254603601170361236842586312855670199795242413116610733023732217839484849015582729427743306686239403678156922379405456564563338162752806081303197318745486770612275232350873251623329871616432966995594370748967173818499128613129956883767239311222536278441715699710706727210291496824842489070320584683256288062692750755867373295748704064633633432282071988693899805511351832880092964629356585507717885994158337430163969148659437829018629425574143485904451403375214174042058465416964817958112067626333299305954481723501213774718136043081901974063983196686299290657266223517613602679700855237728166599027047629662980359334679153644011930740867551583332585208599494352314046919893356940580567539495715347572312690659219038981345009869428204341635418590806571507481712913194496808239268541410020765441643325503240156765992573493127103351247751512065330942893191518419000826913198261385633272345425571945349149888163683718255565567352957377470614255495810129113162211509593589715159704040131874066917653506739961438433700178793923154216218149385579717981981785819275428490642228648613172938772820593110976255283565609852042746989221648042065390696003217698150153190406467055318843663266757619741434429984353343500734363484879181808789002877629350091122232224364203533967966254390813842296150262140654092222999166502039647771436378857862122981683213867763977361573476454222246194182794132166115010900800633292085413521596988439770912914872276822446617056067759458686905511989381772761315830013568956987309728781264102461507300182201470582593447940291490837427004991506805596801316278319449265882380517068247219746050566619396345749893274011404862811688833554522840584432462105160717304366842027525798573900281109572720333080259915807074595786587912735784995297262180896094802739689638894757444203889800210114175457646389869468963060436857628097101321720232639630621912578949973266900315989468509842649219297773567140566968888143008188943398363742687942764119748175648148042035333332300877213884046195498484872913806729789815566867284821181246079127501573010497015188775197088308224281662788656434580163608215947432016173951522062625624678295428172773664100977361221817828356054472015431581570462196460234054949767447516014874307634784920322375775828653840961263559894437397126357803119874925033613412352749656062889548166011427716440817371244466235679414598175184660115472035967161121546785948615589899455935503323566932757278238060202186648096758384577704534413485008360766110302190145687008457342242820230477528449731651496100025762243158835881188623652703345102575302326339332697887932676810309855185754489222571861782885614761241630981269337555527910558006438202342925675421591531843610259410695736223780259570915869234050446424987902069155449890008619810415007533064108695323681832734251074858455917472981788162663916146576343772883172414775062726355675252372266882786178695303531797219562006319966276992796384763036312249123500394848696818146248546798269544338365227873353281900963846875484032732272961294721256818850683829308979570181470660224664328611535789598238498905830063626140442539707375285004704623730774879821552364560053082679112563862165880675321406176854232921145456608980968749049469114972682572147889329709588146922522184820575040642172939119134896249138009276283829091711761038185774267804655024940519583284331579300422459486520670214118387221426120997564627379345160210912590505532856849386734431692168412505427611232611537231546418777991457543669547627677057775994094885305584522509681979928959639621673237205042124196758514315541171445463428322987723125381698975466996437704689239095324194469452093310497245760887397657987520926104589186750598664109473864890495166024370249428327788677908517812004432208954877873069803446920821791201673505429330570705286618719556760417375109720042758482196142132721268802480189750266773856225347766587071144870137615519663833131218108687374193286753835105773484810191998678495932759107179443621688455690084786464725102367822019820875099303063141280915426998796395655262958984054796821483086889253391922965285412804384795858680917442461645585982684866846947718021954931442471125307097165859298502298776450218802219569772135458464736328737262246236175840765738416257556234027453998651483404685017477673747247691611573377006003232014284151823120135616071329554442150769948535650529475554735421781409829783391627673686550106021392820324673711482974519397514764404880333360437894222683251982098034487631785429536576518765431852623134129765361697136484011154217468510731568218460400388374789318911360448615984507408968988632140790778743986161654678387369205731283058036186575097208175466832589616235323837613652446412891573357590672463754657620254985652354407477498540128882248931059741800119314593108946464636836284351092840517563220571003992235889021591422937520882249996280527834413182020436646549729298727846494203953597989430497965461839184640173706369272337127523318045820965942363125983943976506163569022703632427337352541734052875846795796172300563673656439111541024702780831049793215635126029837894651204181893936249584827981594565157669604500498522267010195584086901927616275472806251824816675221235487543979998238781660500569171634543580532652698506665692285355809888233102354112710802123913280373260822463304350878798058174086329812462206548591994366564763119839646127114867371956550439197805615675651453863894582566801408873623275263197129907830801484342142678323551845184753501295032850402269311677304107640682122984336893604362716342882308789455384493042384494195319501779192238651815883529739324191170581552980636141868451666089357758980473734226300445273412489743191823597301294498058938248360551411442444759263271041324914267811203862253277771261691954672526282114350347213169748999422858500754927141379514291589172994091585389149859373906735949367483232324688785122184516744180337179859053658465369119792210621563383082942096412495960014153483625374016213240018669651160293088890493117817960896094163388922479624219596397248398127995773473946508149062614338235031557342011861091862769829018763229563432178656725412429271163498979592170761508737801938881322331224196209625237524454553083913905637431142184627483426388455227620041296916126473441065063982901760455244370827416026648057841175488745240303024914832397848513552722974754950989726102759541799766886749814761423906932396871887730088782991553461505612038230893544514746979569806360488498988642720329414135319118396560086403332502002117598549489493650886624741983072154915395268728483189986671397936561688548402925680814498800667013545478049895191062638393696920853687561187409754557175837949293721606128722937243190236257866906525703376249803967727895645236427661578089774320948311432497471316626179413318527151061775812389211815090173559401373217320141507879487266294218780380100108735424456751920525454938317728638646054433427787798707089631259433119244984536573969618544931373627175240775947668119167557885709711321692704116502073260585478616576541463549935536950264075618018187903873850045548686646001084169560458103609812506034611972993268687337574208115323589981308277032594207573255329182878871417020629920136732831739756667906448063426648941123488527914134873038642439102424756894735233217221001795275381777003423058946646102556663564580940639673905758581207174523338216141384042442609048737406686321131964148268566812636554295951124609819165404080081797713572175443750681912228767692459917162643619184142830281001807109521174338422099763213496120976894007028747376523727713356388207655807996369800081184535112973982407305221742589985353887753653327295918383757618664494815128419093704650356496551584413059684330111642794259852339455520128147059347032077547182586545512408281140968896336695057985844864237715982396186773624053284315120113661639558427310979681556048548393894051846141488817016000335025168547171456136633460461109618145556291826642444364403186818455144788532058461127482105918623723328665838049711775296369843826492708087523946394359866174483450505418059535275565132172715727421075876187958239211604199934887345363459885577160086492035693863751579191165499055919830407696934358472172547551357282856512046009154213548608492999333788751442517606697241400288003233205838256125177141173978511309337724878489398205541789305696489641891159457542174628185002474059976691068517466245345589394368986309982709738257559238278247941617159261679496955439113969579844138373728778411463550613764527171462822055318040781225176799115410868015140130188229516610537570613784206428944680587598581074171701151150196946428176908102639972952129874262409309245122864604202408179419971760028045741955213909971763845035944086926054375271957637756739009657939132790404535469858284254511425926127527908725076842922886922490064297546654394482488576935533788542004719516719704695932455572050106364862696385610874150471305662573072528683273337830194508087517067416046735636921882370467707963854915802674511608986861039336659996462779880057492753824653397479416934181688682392062487083438211776242864592516763544311633700894448297145930005129785916318632599942820761689049033802537185119313916851318563238967040634718136842698327483273415051650178559203608366389034115070330003468188717453711119730423397087358917375296163984201033770924503312307177258877252710372306461649085062292748230947098557540944324865462217203590382031952041842789735983214142987798967089593959838122112748406165218159173328523087831544959519686925252647322415021559706524638614012606315239946636732075455932061003688600097025133478084687517891170958699486842218558934044231250068553467441017455948300929937440925956773983637712764498498526731692576266561252479384901590885327673115761629573820110067132888124331748555112078386503962324462545703686193626760421412839383848585833511555135707417024037480757581178115170897882946966378943962117356438712671707794847041523728817696389650344155911581351957889174164185869494565353175689971746058864549020005835186392631284227205530798034896808787889551243489483511633564303130558767971023089053088273748598523126674624686562192225458567292940267380747124185243875864990699472818535597189924477767227305312495510498988395585203095613487458094169977622640254595763397452241433287401727571303162952489874838567470610327349409644458604016358393057646711593432089121557076468873272270444934200766939815120085205864034702167115881246659821840796096343280106897028268118299938800046994032548845905342676545328903171349279701684359883945487143218026936314631411057178440737324906410304732067445859563944380043736658648037632577751385214997675183790912893359931466777961855118552610649605210615930546304778228333498698970081972019399766341045909627370364526350565101670287288846665719442763951711093777929976235206078131281909541951136146645193816257591191289192950828094086594349548700662849322058003213712181049646274467200264264729061968418037724011999806330985501961632038573557898207872002064094452870827711334894797581988774075953205408025663322763705448285733306696811769103366124056319643180127662906689582709058256506977571825539780827056532366273913740036669936340199404790283536653144223765607603376517637186219807475663540026875913645704799297618475516767828440615657708925142085744165392815858522712965690926050515352153069279353615530869144264916154832626246407978007738819978130340507885446610315632103025397318385104282908112296548784606964706863503807133254824519827281121888128194075487091001668622627006257535254334547040178872961460235267426994134136462910536723218158921032400985832402939610848682444080495317955770640256046592019939113834063797594357123205779115996835678336610030541348887355312336579795063343813722653033584900852386526124033748598831611933444026899741309284141819293830750210037885869899108664213140122505067100026940264713644426318896118069407166998315053168830514383294871546062072274323927155900997602887474217927947580879731687585666476344863893536020742086690211471561514298265413825715146342564448339403505219379534890335558791247723996279263762684902692541038644193596449646639654155523093285185895230809615739674808877001142415027957631882666111543598266727720062866926578855340320764653927524731796921518809280418628391720595488261402180489567501922350083354602840727823282134662626623849472324002159396012708412938299722924060329601264722469099440553996714094163932984539599938585932241889408630412690635071899296264992178561693953363904397449300714678439995375489178222993789944514416170081497658789503694907330918372087913065429508922234659342439478825841287834735670414279321740717205788473853046434788373724667923318202302925270608530202472974215120816066592792563181332622586062479594798033225054565016215076467878228637507279124713015494652644889212915576809978753287018883047227982072553233041646590677570888834246262480355975477869063530008886462029989962120385703462707229976085915976321786921241726121469511313827766663602984918424273025175012145134734767674971994639644512073745955306688652077872203023507579213334696372944334349720213135976847464514334168760823276807270159566148305265230392608752787454395562113483379084492867962043837139461045679455185111844304654638422749994206853816570944350049183312793485711608844170524628736484141105882534479745568324601052784881381801108211375176016198135485111843689635979206528157209001834522616519048032060074805173121167039589693738021609867382978950874864137076662832675829937319470258536936848111066926194550090600923941585667903316129792805979117212827281914193136904523901525550392566708711086679059172891282883894454312124932701132017341383986176435241793386928167883047856456596496338216011724278259314551359374963807918416048604932651546428461448609144773654379564695908053109960691633285596892554321900926003614408946344892855695467157626855448132825182979987968399474593794217276272950493565817086139561782752615384345924107466144435880346926530244638793221805192591961864634442101352498960131544811437616882756550984210550166165762572149514530191774357201068739910511589178609792654877950569874422533339277094178897359418976181659947732832584073853707591022810618579118717439403746985663967685568564921288750921720195501192340690601652767306362279826213468462023303921034278124001574237658989077249126481105690895930197141239539212925506221814095965804280682116875380350615942232637307308262887652111097078429334021448124843417571219387488373529428864548210921226930336968760918626498802611446414777813206872165553759824798933425019600237883950180307914267820014722632634064821300955422744152887092748284043879021763695725433757068370376599741028081501211846476121085248837524709533609208576893128424090864126982163915344458164694905353568899610020765259836617992772935049575303102274342581085354652900604528673329652773647879365852487826351615719668350899080684466523510362382883498695672306825992866458830051853812185311377432983771973760900425540214652048452312180857623447759815617559408571076290083710327486099898906246999976906695996745258781344709959366830015989725033821322579230197857606737135059362602459418169982522239286531961929506024798529142206452793306726461195493676821655583701523695789517486264068802817759790578673119084430687823285021770588727343443970461109908943241701498895529126977223845137500597003142682074415695299637242410405210288903912403621873613059297941825130975892947082292460757866634388115751585458448683560723036241032534577066551560696879624737557603832406846909579712318612317684935235224500648654077500212072979237636959317744506735742018347658736574717019872219624613820407319528155167145783698093296542258346971191869238864213032678413552301126474394039838299322728979459117306650558725756886918465398000917999099957501872734862549623119871625901245050570012408113164002544159246622215513289547056763303912628058748182847079237933872816813527678361257953273142764521098325456667803356055372517200774677885255202298602117316509271958025275221298971673685597064632874690707742747762989863205451830748745207192970296648087962238893653814715441041037275241705766098941282970454904925769025028358193592161167010641178354497268090314260967030938849701953106599408927923128343033525986556721720428627138436109158111766939957212738629536265491392485028253957336660870748309927948651506017754329600751729959730832229173154237682606172438577405754093199443730563043329903670453034983523072427119621610388875676163823172278708053470510111161754381488850010791771804103031236406361579570487958759262586171340906768228706616473446684347095022842496179830183705720310066804764673707905489347162258842682951019565958189756583055711661092907461024160819591773814695235642188267696929689590986880830697210601279685527348388688589198504702209069470391217348143075501102627574085883174580533038350611746873896363461175297642614705058979440010621682988659640081016434531821423920461939444490080178208344556452159899699796457894361017453021743087809609341664206220365124693967016253608515950521889677983482232538632660665127237821205216118153680332274565944705172972861401072766556523178028675145261277282330067529384543918305858236383362714741091330776191031977716419696950815453860408953381486966052360269805078720593703364429237182639571919885622588188796086133799416573751298563715294919147306936331810844656148037516520214694006839848729235404302614480587490019331567850421583558122855732916496217993981391807248932193748750619824046740216211388601524907777550918124165271018459025513196961938243724494147696499879813910989655211877482581842961617151019134595919713815848984513053807404893927169827888563531543028460868544711667741514858726853742253577990595617252925154560364080851683811922532959757822841609969932873388725215347539051026608910824017113461188101756657405248417486074837247094193802358925042127482089965745102809536116683927611607501920286314841778647415713462853236291432943856356476040239591394614260120838980768090333379895127548592961905964315330095320158576638875418083678872358710123200128027561328651759783135723474769280391783912054093757033264692935063894503973870305180091858745800182350059383065367992165994110676682303193639932731587335688199748308666662793727737653695153510111756942183834112949941797915649027097826010176013676599494550691443472310112058298341667153951489183581300925652369702218509649560012520860070088875130541745847677530303434442924121073558207281133545249857283394187368368132843251481682808293102922395981070617590133562011047584049651174436189877551470110300589810601001936251817177912586492506267137982558546835302725858462879572497950391657680332678628589744314388144785709619239050577908386307794657961285318232710224659607774619338521905469002904243646488805632411798316809515670122057396933753524583808447133920484587167022283470736853262399777253661267446978253014954748525929199742423473218534500233450336523503188488119357925542016434805231163369115974871236290126839951129899825332994612544914265375635709125079578512217200794653460162938689542317337734522456208823292664338649376040275792920166062874661506696747433301934634549360785089358903325034730243817383292723942630714025577227127322788847943678302604620744039648045182006013070236693128987456371987894541833060301462825538703689759415489421829385869271156849987741204319560636666916500946315290135318848846127961356025069785523337413732455870185316249009897910138704960672283471861821699231363915222473155008546347250002610090630371825756336019927717024029505595464225727423326065252572156231639726773172346143804944070669745962329906610478718205039825316563052035539249208764568153217943517550696143035361387987159989289206866016622885689061078138328639148085612815927091049851719594221150396994363926642977003030193908944760239385789698410904344568252118933976110259550819757648952436903938079691494030570603297824199497729332542149126402330390244720228220984408499707288676416237024767059009539118979526044269197162834156395004550926427603724631208948808407144386206226741443624631580309496190635579722970336145910193511850538623780793725715630798254461924339447651599815667633565981775758617734328027838683146730924198920803007517961410355576852734750557329072447381498221900633346280659938047126840547115883132231222811927634976347641222572507671000194915720286365534089489558210706990394242581645865014953632766431685643208067320066594285700463314481291993210566121094153286567369692785590840850113774297469513788949326138063056548381898097037556947145944419918993847311612602883745262192320090319226374578049330041845656966030324141846395849411894338328857298628339637141960733404327867175098204852274237135094276170241031368589310977566591074167818683163780113882137752838682879004134593538935161075317687665552672400476443168278695659792858888237686655113339517445349755529011400294479334871600193778141252780259145324870081645607260723232405443422878336574312985753613697152118258526289406976221813655463201887023579638931456667236629161522340883801447734232121817944287619354364381621289194759042563732010504055349229203036442543511115291145534303273507432928188302298459915201125501133605684328456807888495375576027778125002342506512037695533008652406044840859004492742636088486211994275795452431782813543125004336340239200553670889864253947894797092253827428713371368974024248755824776319597896122610419686481448393635556006617651960091333287445461566530476224219462963347391329147900930631677481367366766281510232197350340631538799483703526924118340281105397372504145346389908460665172778529982047397903174891169078508947095132638473244249483074332143511485968546440198882846332722771451442461433538504440884594171618151990050453071289805728848169698155891465410585633141098627464445327452039727145335389423952404750347324883308338210274941166252814331374339250285034210360914810275650895715399186567735725513485329213129336136713808103378149110328146716002372962401607916148425218190956337075077682038223182121249770081482401431532302870786589462719263158480173299117507292365443663407239874869485968202104640187078746460872051707695313906759580599814884283901737445192479216820861375922870147072683673356745744757969178100713471998466770638682281404954251861599904722262178596896144657037410107844203701572545042951269011682341412250902474310906807696125693588326156587384407511640393137497757157202947847822043068251663506184918515382955258707740277325517492747016346401629993915089139764039329278907508884144003209392895474512635082012172492698924850166731021200656532739275348386652332381598290428330424387262021994184586394504762034960365397556666882393451105701387624585159354654865537338338129053456933928094400380628655292411183760222261497948573601198966434689087278983164911031853527930004300604262833585773767773088330761202443862760837104468153204026540721932050144169197508252823201661911256107272241859163808891565368381870981938759325901323825539159194910116129307725447460723223020825056077501692331086783088409531157071534446052118675122952248127065069815715292400101353122887676407575578127756361349242789474946691794246952979978070359491318961164039365758475405306795459943315556236776556877632096124129996354912614473988895333422284048073068065312660002705423163454638758695728826060271020183603412501426653044728144117465519588219093291662486770332707563071327519313250754465915816509188352971855901364292727330288942656221574325777942490062936354361361440586671538193371971029958617793574422647694271546494255513216169833958453819439158143029044835987199963691719593525242813743209534385421525955748403556805333864200932397344526583485814206203035938610084544151902030088372403265360173762202178136391255552745271747918633191362436899711744247050334313771533614751136025496591612084381878518163431033548991716312612012580980541934702676411306620704920552389138581653767599561556730785712715174583112063302583591102391149429536020838258128128263471731596289142673054964033697459648519062249576008368758957755708235019998830000350264563134777617691403299695477949468766455965091755017994003408348620801158337616676700440489484254060805432365878127224928307877592068540862724446663372245514607631284695280213654144566128868490158321960560045771690398711923878914058869897108829396373867170998462459364416778657053564618920190810414512274988882663693157746226717822971856957843255035821414064853866204703268927613497181584788921896822502817485444412762739385069955068372210998404069435266964448703007848743325494463886853300054130029912100059053458297633252738566347004439977154572478374524586107506840099247987206162267413082560204103761385426821067019113801813144039964591204527204318199856185670439432684555795105832667105352021887468957342200669499023560293495176881313016562132812636750669993236129549739461239223136499898150749576368026219013016078578322780757733720352902543133262381260454807622610967795861171247774944763152332304002670005267610532377311440848493189682508209527469604026018980124243408298541111710231167907635241638481764195622710016701400936613640538344044044004209854608223224120524717331722662134291234119109825191176232711594088850703293736942020831434044279172148459445760272604912967037459593116431549798816110945924940125234429370481097606133930677590524671346460125989543086527737268268004176374244578726364714874637443007589558316157028236344073718018753964744060729307952753956217372085962599649143835387517772584388655353596668290697740848857764420303788355911123365337821912850371744666844213380070332512228385247779023307724751685498817233919535732642135810991952641839481228109963067921543644814739900772475733476760400173955738233018972045528029872180153530412307585779185555928026020622427196071065223222008628960338037902113340125893350625893248962418533130969069316154154156941911255842931571856891791328895322370608417839734569319806242239600984959532700846563638230936146275284791353270973192909107564030432454059629604296564734865595878379444649806981128666405191193005777872494775752021453339684938352767122431205073217174475652282325906310103197843000815087084788084219425439596042532300937715997315232959143494389685923070425193703995459933155677518132395030268280114415834278370539702070236985832169669981418911773434206797706239494435382615784839063973669072125192735358591871283975509158971165284607386420160121827692443629754825965245752908313888099959653362138675905203665212710924040894863729552660940778511546587911414012687707811544569627567052255400407051169344517106896794697728835701909520880702501520870854666104569572204262050647515028700026443978631155621583178481984449077039669564819476476875135762477800932090594125091559978951393848031670030454272792208064552734769764152040668335517367166478923213454744328695937117170408517104972186428746942850940322261851258234648144303878396717621026374581786731616087162106499988226757406563668027628804342902947444823518336426349825388826760697296261472249868856839237942556718573668905177533903573435738914221286268833125985607545772946709898792532233096616805538314386169429930595902165714627381462134641964123444464371097499573660865894498719881330980714095722907285622834869009087157310106457472910396446644162703119457968437977000865161005021848751851889034770704679447463577107244793610605777394367348886969285603986200140082279980098013221178042343684964943347336361088297029668798354679101461304608134771181720668625102691796808709148405609992986612261821573586308681682683694296870937650501250476516171870924701676127970731891176113757359173031771345112927884292055953937779398581203858758014128806968215418280197876976996785259994340570579497513118530785139540221117002967927151537659104912386520990430675852763361973846070717914997149378448442313606125594357756521078249369215278607450888059943512303756783875551337566006123920849940814934335566908133297531144917771803526204179441495913010063439140636780103122254532174114095881596753766547447486140738205882859160600122119909108654596170494684539362173272681401122599117438623968916960502669879023619711867753869478167054051068912294459769399808136220527083320174735958739495496139117856326599332946981576191036029939178655343407556333934361667237222765207958712249027567554345975668140527756988156356550466589341877106340689402846515600046778563224876254861799965270723187160931388799685274556827585889825665476527217875214256871807038405359458141247464542824393943431771190829991002758749717015864698578191260139421707289105360705263659090098540479503562621540345247584352066029089471542377083584553291454090604975366608639374800367860314741684028738355603003079064018964594736587181832317980759511714550347933928210352394659998290464901572124122074704819218041906098036817843449933223451726440560119576796875682967044586829854176531328573237177657292206348684963775451863965197749818256612195148194777076152671966662762463217498576791878586742632212929815133100785978634773316505062170198352345988547884226187209658228520981986664853823829001540075490358002476589392699958925432479129093626492711701753099236858293779001764857297713639385424700220724381859725272818945307291291181899530849850524668151074441059710422199325027510721339945895530537673827942086739139518287504962658086578846869242791465126076148774565955277246580180176649231848261791972672110649860498046797833187575948628088596822420604071168820123481915828581564829883954241458912701584632617984191136112395925136829836201719545412349924242155213313078045280816796210451663003851616405090212063550354070594696275877620730974904713524342548799519967407544445457692123672604692155905760808823022814195223676783728472824521192741729745050561621604002882343120087619429433632429667219545500190639920162528638186073227501398477062996352568629047614579889084159767042363919567205185887867788232218723076284884535826561447348616128266161987421008212367004523510034684721363710493589584862563502304671562668250748660765189376533914785485962340865800122046838640784401916823444040669122972308019316634823825289615278775527410569073048889436501504887189563828014349196992014553234309225802917314720335518267590358019617684618018691878188240634929268124680991528205287269136912469562816095632616139392614814132588250615286574744992624642902278905557939839942477437781138786863320660084723801973675300818544266096763475002630442341463143525141058711901281708311530203699987663116665714522033990728369990862821469122189411999601794185585473280548842258780119053273843635701756778860954894991680064441543102619098687827469605441195668511523851818740039537969629177361313426891357650685660507717474723115975064329394566329990294567720653417792158329300926539638865122417577316189784994776239496397601249407315803117276327740803913090817090553523106405351882793131212162289054049481685762253881415288952036005723507163349367897119677083787828060828225096679421942723242792619494702485633893272608137192465259823383610399057701717302089005165269158247945343057881290341394878377649819097190486579905062775726353530601215628403857149514136284434461407100842571783381198352431225619428608223252420630407761190322770082287280421857647822295009401844317767681579547422220438611471077089026015920166934317399251887407064076338612887801481767402714218628765922046124803971114297753784792194438329042477335945739650184812278255699263921900500895477014308340613120005497341153221845972476146152519192486527791755883056333396095145504046677757286800257203593370653501069840618645271465117295447855063916700080498968484807829841506834389854510942905658353554901704066089581960463645373103754109747287553082206428111990959896879680737960497158480924128424823857153893642283068983941955642716683538787112901627424552096956478454280687928212386688136812435455900729791907707257075773471394323337078541912988542371479332185355929815461129422491034083790390601132149611721286688434777074066374870732344895017029744570640311358262549391937794502189359609536651453469899816631168190273775099483973650632666849292228133005082239235716609182055974899608697959595864385008777890184931650666453730170395353489807673010915186091064882230368918975451335560647953342701621877448189433970238756412966054134049468683701167217763581149701864722389708212558752661250754594636864610259050691026335949348790869987664462661953980560267689201915894245407292704929043853087228456901656828768670682432618583166463637199993726755450887298489569227357204501551825418371099977337829721713567596689013732368663192832502234026281264920216188757014383165951784633489442147486220908955451238805584606311745238724123435478371847329562273397558441250910832409981154920772926147055632265309435321673892078575201504733887882743131730468003392770525686426164441961495068779236615070498751807284552929860131419934751349224586655611502672644969755082918229710538320224588958410737979759772681400406669066566856446706246104907086187462575752261463535404472440946423012188128445242761723891603699409949914196689222584781501381264499472100082238686743208941906531148205616350838165651827932864282499409500096410126143715341714168841349286281293426416734080495820726196620770721750110691467640906934933281473065067291285095337922792517319242064415432117729036740407846288680032604474808631408697295180192836753544011870282780714262993770132526527237351612569924690680445657492207443688368071153220660170808004827409620818299785797416772643988227653674060289026269587024686068469570707074196056535447904417275128098638871235533722648622001939140474435937072452115792266463451275771210639357762504463228931400851293427032417507268838167087246350594369279238914975563967991406232268748869667887930875465573462684109106529795573215250688380825824712508224759657610937780085588665871720506052468253552933198891348804895453613810958013283058390940160922832802636498558106242162888348064242458550921188331472756513531341573228037306103801949105175081835043896890208959962070966497686832088733440764319183077972520026676281435211844441482871689445930749272690665083293944095875290023611161038875826050225353138621251130762755316598243470614390863539167712850260856072249832013650529306499608200961026876651754035224043452470079094929364497025546966337651855606087533198309848726810960604459853447661727286469535909881867481080775269392743378570575077014618642015462181739545464880738724673405063794649584681451338714115421310388390147557895570338245107836463144222171091181666079287553119979514061783830624867743039684181730140592113191506712581104234235720931019334648858408904873266460926229007582369150752039812765872751603678662041181774383903609531271430451756355350578148612515903908267966164601602067039496823391281988272964462409594609381828935838376415146995649831519928333798447912298113533866565628051496465719790380748337928467279917689520621540105453685012976456043834065064068106307885757264271615641566179981383365100633772130267573114241332130829978912586267121055702984825002262022616921759960638077672367368034970607243862190482527952608469257398282330742780308514999119214444140440552360455433858473767630581386593053906437173180042629775649964682808836492664014578146183680907642371930810782314552968891261030901117176960690241191284059859433705746157491029574310523398811570745226021170169495969792200238271884787980363878885279395058017118435262141057784345674624186448673531877160519871892056905413064196139771106187570741188408365233237481928220736568676647069314593128799176789971801478357798816962850813162876539715656564623255768595263259290033840706394570640642985312177754636152296049951743451782003548467508137022851016126314944172245802433376306025139994167159684298298522263400357672810378876902265815394923669985492622672486708930115049397111229394705386262308974551274014861755941469313261426663319553249477711748385907077049068278698529175713212858829806448332319104619725190252922782092701107256413200838111559695176050087303530023039727540536275596587704142869273687429877252022707757412277411681500330312727707102186059491171693619843074495891461166546969508708979138739206052459553982438902483566197388752195400594633146789805052546444741270943660796191185512811820502313670705619948703436405633207170693564398902561268939871735963130023933853823811314472802459899922574313199764286298109276929001153490485777340258371678013924542010083165967016858907100679330228582704586111883439946088139614662878431473489464847547301144785328262522573018327748597312681002796430573089554496543973142077669253402757200774242036408567018925531287388444410132743848738211814828387602023243837133322378030000452352114809778363764208081529416449545927393525189401526885349942507744967540914485775069001747226105357518763587481464551904158472198990965623311957725469119789543505687383923780083376666003537092922934905708935278019994094597129722204404793674934608970407563949464769886089908158701713430835454915013495809829257262351109885254579533011391272528729094632738769895407363874318915400932041567967699749403375354824551010168872284500179789800251038935658522233649974009742396890226374949780223000580850720448113163686963606960610705085469284774459242738764979897558505720813478749587492247719019972288174005613112396014397492072330562044004979219945044599003247726430924203430007810217245532024641192741979975272820050232181831566637214966073572738283705373328316502901991126181330524261532046366781192017813129847325822479801376149845941007914120483697722228582717934206538439106066543876309877544561942417117962640069802001266309048105713636651054151152161534365422316402420021931536645403577214366450197345120501005229456704981131694353877283989563155485484756242866111456037097009295430705796428320841862102257549840544904447891610393795803890280291658556130885416333902831796578067687741839818795154840857080488610225631380082830518024100187697073988741709857692331403120790946836913533069104798403560343131973827969630301346450253090668044262129637060885751223235162543065624717477840996399494850462405047475910363138329331620542927853915985649527570272660745387916710062503206429073942529313968454765212330926387808187677406395701207150091012251475844376514607527051988892385096975259947888538234093276702124353183907041854786367996417855578895390315460736447750340206633485011585797309872071720604789324126647798907378319482741652024938260078968287609137134183232593005647401186706684333309271748362738337011738735869039071842397770110168520977900778236084971108042668515842489677796449752474617849148293292245317649143944214279525774645772618922352709091551453675088557018383828031627355861191150045033069175435682742658997168452101955565837957064773073105146374736164135329050490620917065996834986490565969473610334247468153317396003559888357235650526565367616164482200231936478186237557791775356117512055350504757704816368884076469927236108221316199043295760218973846349626529647528516319261745676052293959593993196261463292728792497190734650704218548231703695880598260580365154872321693157899580448960223409014603575068709967422068226855595884831419832981410217381673310669986992317946653127457847115703771946928700078342160949670924711917887749952190885341952221067304724731780329665307909969509230582978686821551360418767263614586714750296052355671159281748083774554044853646867846815441239672140083054700363922368657520701959872717553534618857497658809000794082184921558567568082981055712365559958658105523907194781775817690645393157887216278906014613675881148410408918722176318505404743452466405942273085972325174070278255375170431170781613038264530808634119503742513585851259615703269465671876887372303812902303246182719861120323016814924350561581842516079548859732357917271120401524833466569224798554738968785862845713170618590692580318572362094850194095320952641698983772744997302662831307444789713091385163715007809361138208333503899192303447625296821988652919395194179694367949589950718416959848107931781516763408485288696073131909852024788550390552552121871845415094707983579952475402947687924303981024739512545060762848580537051356087780657131669467529244478364529602287071839090869989504791438075071953741466178029844027703367321855628158201875711419784101241751427104891044126905698638127290022429416043452334471313162152930019567367027886937402036367340694499716933348308373048278888651663912227258620929706709639972509325832145682940047725947833070698835703227446975841516533668765456966431268287082245635078448696951335603263648110318204207980307280311568322059664710351404051815408926790554424324832708380993119593183956075341123010299972715109235637715058438296325187840089484752138866590823940210371731053584436208503540954635070721234272172210704007139061926574201636241339076758364347685027592593150900986324712929763486736514754732660431853153794054612507719255581590627795314241115806466045509452257700823755952384937735090587029249815034518033269678970226165402887632570303014506021874346831828635733598539683838239647296222995266238484801754357260327987429026387007962863163717899524175771078593724071499716607536149020269911975152449929872872022509243413505714253587655202058522366236729166709827278596923019542521360212982334022620642401284492714462138905502966630645520624722509532490002409864153947838718986794464299957611309159092923620491341539285168256798763394455627806864204549317316945684470255459993807791605438075349606488203215796967896142701414978528339896032327683698958290318668499909458214551109679535942403394475157740431155463903252681861543915003861726826406802173854338310774214814964867372026174986825419583771970734172455261849902243111925882710948876312238556490094502543597195523045589181226837406690169422998088044959192617461437604127747585679197744989338271635925709471285375019010139639443205689626405384964434298048953555603265136003548867721235282670965447073887442981018930220867727752325518226721018610657736047702111284076726760856980127811364440216971985398420475738302146069667007466866428214315988091480092404754964299094683315205392124062019065471094786150550248908259645194106681037450900013955759042926094556762209563656024883216724497814033241624953294679669888511047212359678978699290861496481186024821711796207881037984065440880422427425289521651919245123573037909282858792359898882987677518339846808937015473771949197965728055163728496756387158813135167447154945296404398990720353053959838768402051008240296376243696781787171156669981156384149007879534555119129888114240425954372382135484815380524040689503099079096509611974540873607878703384069370337425756337033154249364663367497129458911985232621786661495925054526926284602407517673249197012939241381031255041819067806397131190398483737758202111814763992227602092668727177023050638030513974459378050349705417507704051862933270960513852742712549338131974430280928727557824032768752545989407551119081282895621774874192496235256901966264222739273655380462368427794352109463005406141367023435690154497000310303404554684218274595196418621431863904646946260809537610473662763976063867971626405318892092465993913785086428011803758751947965721107874775474514696316778174616364471342692485147018129145132692448968576239104384469809771992939712988807408834688809108909728436427727174490172351667050284840475151679240467861172433223100867562912596110966114524946020171543384570911265433777879066719698705524465336639593846373913705168707229062052519301452088329376859299628560200425020344930246745746927768185118122375120216987233902025144852628136864258953366632988144598020499994618385258050131642695005540489994554836804331957548343912820468864720322502897722727821360585699865780908349400071282583198569637355744044326931152622586677227214616391694764266914359093858807747091566840733009491375326904714499903863164733278076635610904686504781126877512072516505573052429413400031336165077341486769650281141008227523944827268397641210381568902490999403826108951753323927821897853407749329680179868832296625670633050348358635867042482198854122444260695089763362606023682685896613631405866213563097678222638339011357991721272176820183833696082597538775709170925232235789036677265076190495012682218662994000299292230810959219797854946604437153351258175419729542464311721096202837540915618755069311162960626939634757819743895794183193986301783842271289459011021147181681452644152199346441016207932784165464717686074303643142237080947004238146311634082417412000448561569790803709413764724212332245431538081011760926154908394838158847536239414892123179079860242548131558263132891830488229335707229518357699709158409552152948814059887946752383035116893809035364727358405490553682644514441963261654794833299105973016241232750134971722213431792818569847080102773559348262571788733765762564646917375692720711634467853531292472296975315194259020004816100710912458346355679932467207052214679207372329641383187755500984412057825558248881323251675834826348929872003424264677787079622470215435108733626289157847385359066358499314452993749183189538643499094472736284916845624787468030905700951904161413699624069857172709115177904170579698622093131710892966137751724332688447352551795427264342774666808843592533712088971743717239821213278447808133407358977700097180414859909453847889177542390770869339863121930570578732998603367851102289013955294179116226056294337203998220403629836222568297700829947951772473371278073434913517274966988661481611305556573467481126718324604551936673644667479221094124135557990820856066851191308128889891652344208755525846715675492283601744065509656652395335937021268028528581646833773103554224356066231472222469808952437669072421649084824104358786853427025571709705913318498400130187008096992893717773875198353626133802869412109807713428764370915642381081549739633082323122913851442864233772864840795214982009324100163905624128452260966256303896286818452037407193502358089539920850050611824571651505160256066138714107575334064466170005337533313564456801286839073341404820806988842291868756203663742364773954703538773327013144314247174891787387512491714356681423026211292018657412028770462810384315774095860615825224097634547585596436513031608591011688489808511921202798267031488327884883619923391886308826616524726544670794030771378597704138149251716824276411579190801867133462265085013264445810755390415171362514778487219674246448760461273163127422615506746834150101365361917233014140893554560988610770992321615008820122291738313708805067488644218766273338029375236985840762898869414518923450437704388989064770137580558611944662963185557445228370658558717197952921389921398253206140401185512498963793680676237860579434519533956855232156201267902669432228494916272117655990253839593395281238251371116847615068002965480440143158661148936948271845395953538720118028963911570845390646697171408739257916388206917700520204922927012199950029169988937265900452118891308857436299957055813052673104647247519484756934856939686797084710578580730699585305006771497923780776654493251644867505026489008955933155416741903493518880045441088883484835007397555890670080557700156949435773841387401863502302969044802014229708533730863292910500573956272807241516182027601268309276914985904806572690298246025993613154872995101329606894450605359411299662865516417206808491064448444177497208102029591156047547727745833788122505326860698890736611265596268207585319868502207265430556443038968062004434417659596006799518430593758010611093023952956551114080390207978610077910257274251197014340101165436933553527082707193733396621414825726494552808383368074789877533965373984608275854687632835132173391361637836524608378605154063862653486581849371257923418782089307198036710568102768000627761125273140164776668238807951938826158713458888663946114392158044564892710463786571879837160734813905595224432121360650720648401697273060062358117676273063891363002233803527234388886875198356630987704872407093238024305415692374806805744885482338476374285514832017360789130893820219292430233936732790690556633484971153421824888605627467887407872436991146652465595199651222922021510693633501486801037862544366173247422153038783199369899770096518965934266543954534209658690969830730941501019400728664071867137048407055377102160667536348577137051056262717555838708113741443065181478808649158332442238417841344971395094355114289273848566436985033458615051272572761370849188114384550997967614691707024818728721584413124817555562048675003872591162987771848454419204519057659183101958896797373157284087273254319981231767946700393588675825284613946408196344541022354121489572197168640278141264078790909116899599064716879519828467331857619018687252718355194387575827868228422297949708483547232674272994293521793348715816067564706629558384446720710432167938574171363907722883507074240126943157619606833195706469384769759217618893322115104672070888256404269875826048487180488970026782746799488348120226059380874887879644507178146015779094129950680242414821619078833866533049057042872890926538324956794582992243108389295200291755046861386981744320140568379607337469435260577894394564044595420270429015121594072630140418150652774741543654986659865001518339058213203119294412843039868748391973944826022621801372729460836205787902160084641648719937993891402270993665413645286661879959802436481830589078685171235214965815049764304315015369932137178749455292632380365422860624594350576421631385901917554286151565006617528274419221461896887730261541774387660098326067497727048903848824263888937131784494891842137593995284926750696057621656499447566340246224720205810917265251173039021854026609805830317648535859742803337866883627843593324639517188300124816957649790415577400735236371736967100259579801486544335374156439398721644311785555573644041548211644342579692571310560696267386663084574753075100469611723795499064952259140201108038098849659299504000287376210923409620077993007013884151939197602416511558273310380884220624641615613811024916873083214411344652833887406527983334328440236218366160685883663749726925444306533988767189489347453474590923541725779365945764208502734874148088576300093740330312332127225921600130324710281989450834220296972801265314255180884443988515415114321103305048532395051620714181040003427516584181814723648017952602737383088484033971841519179984060543870483612985979125239387734262305670573724941357275435324009571539077879461471881220724786088055326422886046416398180355040042202981194306300677363113599572941855226297073674713184538975516088488594611113489937502765057463171202880519395493715668910986698345332628121496868019872117208014054606002152602371900899753283341624573122794895276863329683851971790159493736514266711609690897834774634355035161535933515583831420557428313661931645147459436261270922695947052405675545574908157849611307836245232020992248887610612701331674724462687599006082752385064688273301821173328762637651404409331376821440850494895149719178042924927696948974422374061224146002653182584475233370311563872215244326240911073138830719353058811701421685044331281110211479609584286815228156754223925604236323461489574689394026138097000801675364380622236058535720417014717702314110338474224766061094911520605438371959471585146577726921535931869556798070299779633493411552331137474811068932143037239427344584557435475629509329221707547349753878454978311239237152387245463275139545396752197731254314101294180844766269653166105739929470784653815496171528877818243591840193679151543223816815464519502244077226833071451296840344135589070260011652303064640211033825997618728332856354218712015233161577380690919125146009061338813084398536902395795429061632968889953209065940975006694146279137580983567460690769803735468119407528713595112438604839062036945350581870065330340040275885654433925861741467336442194453164366996498931394427456500898684993588525882232858601557702593060958798668383687045476849754202127396193321488636938449560554203405320246025270153815019271638634681176747491713434543870284994158696438970109446332079676705793016921275248375065854875178525399777405029204588519502242074945411757299457687229672742587603814835193818139580521642598804111583003511360497159404500309330342300067699425302818364584020073897023760469227309029612632141201228227472552989393340287990948506602760227427731802129401528814070928702265706736151508928676529236740523974648162291421243473723694019361445861447301483147554041057138003318603121833408965397611779580289208955957333658394601316765795743105753129032723618172020603466107981288580236086760191573897193379150392942334417809402252049149834030349869839030515713940130792654810721434808470742298219528087530973074557171489769092957305218659629650556495931494039917726098848087684191767173069305954260356132931905730035481952135461129200584597082287018398974205084679545756629150914184677412986533133505579823387151523529019449544028913616285344589542003514124885578483246895954906592211164653766226133316775479076523882957755765519668498151227995999454853378406836064083491898873204646556325977658061819898539754747748655416852344899252683059092380695665775472747986750572893585412907997318650221357589091202109843523930970707169043187313433393190087702997728106324456423150013922505242299368591569193227444364301397438847949373734417196122257387455468165465800928752014375005580017688207988679232239384438801221756561339932104961568666427904376853547690182283799717094712049212931380256892881603460027220931896624380658117114054474126069025523125188740022315548489593517031746182075975663451476523638264554148520361386462610400101966917366510589654609105235811089010024942210789829380304887494823705452371783831662344679455687260393356141849445835446574924577126082350602911954843982261253320381292715957287180440218301814099049669705488888069210456252189462520720186587997926427883473370366651438538288492032147737874357629459498462504149984908722538603600750454428937900550113955858132700840787824345149649675943540720280108035207281987731392525288258965404715270488666591915864190521544836105806156212464277047318027262366735125916888830172436701879233166157205546683215102751463835318737052861038044458017004936682474935695824821609703226873096968677626378914455141705328768753217308341550031910110095516684853222659830970023067586232152903557530904936731811196291984926670086035485577249761380619054276119178687850638812847156441824005410595550972378077814766827775795848213524087205901449822379553008256379339416894145079917185503895647304840442189519608824538723521342349232149790735106697440533451884439083030223105231018533221787328098314918804079240566623203526060697146269137013281565128872709697986142319237294662721017429487106019604505586942262689941198306373124184163412154940955919464468046189116525048513693806730227798757464658339641007216489260726743113034563198615775695429606820197271781507707917249499891516161715374487421417145366172096799153119712592760327421354250249889197266436277495678617729012657021760826204390090902368668352496915019090911271945433694949273383881557532634331022745129019138122096641806072707577162773538344298517945933337965179081401445631108486094383019483401640892238621449682378873750689713020771637603207355647972449784949251407210109329707541156966053847370932999684137764480847044909650986490158259926220798891149974227157125608355923042686784522782410935845289890994776434258923592804481419106091411037327800303812029894935405847097453913083380624528918572550711365581967075743255469287458667528132891398687540301132672908977178506737594583652082669793440743370721643587372896317018250512958879950419219817284893797403848718755126137859609673086328366597296935811763422783987168087577532366647639900682406717725075086998368209023354888244362427691789739568225315116443163797739148249780969172385549432730555381067406004014157949658964804525460785655965265539896485692622111648998676366217447084371236536507082931636571748159312488252419433372679562948201325486977837272228278987218173922992029993354426957537078463388542218080377063173916523697644868948153512694460776800951747720078410709922246191917501756628399589916298381594118690046481866570967664225222404615302599996754118430059222297848035465164169557096700106874531887650722352462636964396654377238018562969676279521448493198133018286531732685777425418952368678780531542960990733901340438129669662179588609995243847337785924984272890581405459992897944071481934559686821713686301368431147159666543622667661392895078655957316110011345813244108107593271504726071168567461499596010157207697553732535007750395353546730871462996053979453210972216998401616511766484105694043121899128140691384622051383914669116857867517714802080367002818996096219893883752687824035669744157615866510832990974592878382744738875311401885492732510493756940857468523861987755285517463615480377289850325116836685569947674315504813517383391736478011345709687224899330156367795121142936841962574053529825583188371575690512783247421742501451981799173614406384506907957484857536522922162345158445084802702337920987626162983951128234821695965747790024434550748462267029867615332138667142950067055095394098980099511255792599926138632249906694835287865771168493093211350314904750308810248181585177506367180821438493998870762893290613248589090803426606223494829058822202317269951262242403943275372144843135005012441762743606212857847083289257385640922660025522795762452102833869667294711707206708150946815743730031975880966974717190759005362652500353691995996074215293597373460824295026809861276696250961883796309503531876131145379630827926083164013625030108596364680680304566256429476356853400292186697269361408886508553145565549924537752043184255292629385266906385779205139723149595935863924377840643020244359775845073989767815991788340515778039044264952938232192459306968558529558958391951220980844919837373001215276440574106925356810779014960166392621324839273965581246857163335952262864743228420423487785898091505441894280129177474185313939751075148213698999848080742386756614203926283517280791648876564460805261502171404281919604946268890825669682215866444928550482042052951410197700274936663472274199550350972115314289226964203313007453792679286759762755509798265187151092758682027566689126468022713747126766495470661252600921164676492460814674661487603191917641092726584017093621298713093224748734503673439886436059802542587465911171298503189753319223193870908152079162532270710992864037340408411034049611598974985863300486561732912309710959710699030324043213126248586142021645479484146557031209457110527332317083356351509872817576883951562191224823711910563787101148288536173307328151319126815157031144654625569228277110544584980462444909468689505649493529734882148383548756669069515710689483587225620497574677540150697211676875024590315043561524709450327786205570395536757482063812270575478029125833207034636929807697026095963017553973975166940175569545412800643945861245723635032702366468080451049048985754362872421917784010411359801399971877820770731814786407898588312422004628422633093983885485009705502935566824649833048050869684372496875344478401549275820092739268057527901684575416019480438956703753235528649317704318177706198634351270788445303873341668244406985162607384395584870732649289472183582985729945652385065395904106828352160314106059740153014219602222302111837934223604322786706153610898112606998687996392090186972600611641594133388086665864852801168836155961268221002998844695873511925158718576545370653713713106976937790880085704400560385681725701174768342070358795838061068397796021828563689698670640517275478193235493976443762526686490510821322769440671775819038781605473036359789815961842481048161109593005920717621906137694619755144534339725594230651337644326011846667432913383003945060733491877250952779522300896293159438002592056960867922443807914441639876183841865877841480933311479589064803757541750024534425211950068480968044735449572003896226990464094579949121947617774087775398041499152833522445763643763436214849644302609701345041361333033738387440611680202117056263903504345567947281097283248627929005856519660019602923468649165522281589781466712933960526553629424564519912409358417277769881842371975169797336438628550167013501846800072677630015138341199994481144811152043992359441471706101381003724407334553653630583275808371195907957860396586671066224337276144320544655525074832212578877907091670187587214950905464905755217670336606882569643501994861355507609966674739556851023339178015296504849292915640580357449048020321600977042594971577366234718155372649191373673661858936053393235410714570408710037070367952772946204160979216825764381254417784730241908881369257076175395489028245178984880803490119835607245118388130405724788725415150054258761964234054215691302268902750258622144399557155187838910759747086380756289379930269166249241623543393715629081174963532300035365167342304257756700181189969412639479011054495998688025295972475843578758340586788707640620188357104395587612014104902651174923410493036980558856315250963877074166029607383027973441203645047276494021403267356951777892477486473550568823964427947242137761678311247136871726639917599017976147517239009396915711512223260471170168331309991935273630457763920936374698711033166974834475649715280838152024200201016359069546352206701582890504332569253315107303427808481950440134686884971089528495627387304871685685304444231744900413222337570739485322323938981890917823839228664302727028334172489516266784863274488300910863062141539143738539294459625738595901147887994071697815579773486730747003417677452562382967912848495646997870829112183940615625643528497320375555599054011422523978364879515085360941750476718793449850521093560706002133790929415123045867279627699895670048433857476498770325380041447939932574867038167182384831359258148074313719457307779572088232784880965968461495573339325140840278349855471698398297749108869972929287547809592371581632901338629569122067713475888166528851407405638832813436947949937525006830537821512112640507725557960524156989348574525026970238480438871253558683626110393855938606945022081758878369274844097682610941762235107657654016187143619032526989519089900398278464049475676035847751027991480042520609193052646210212933082076150795372695056494637961778959814084059790283040955816277722854812535449102572973524141962271909529846588276442363343347360184001652563936264286897521183637994735740641331948504370674227711989155783370705169322749437650575266494579811453938806471642328631933856683365386275455747769153968523497515721654956460866584312326905547227138313312194565877949952842884023880640412607979768969195557921417781874337528880197104043375691665803394952502623122219788010326494950952385960679045936126113053770209366189462559168903120842836984621838461405759353325377084327759902972685724690682253767666133143995048308077057187895368965583553537946377160844583403617861173418302517073357300211884197034193427782362965975077261167988381131439341314623011889574586292252423920144292110417031822504741686293840559225921137764900668748471393978537391745904420316828657912531243284053955645202627593899866039733253543216091738348406218687755244716009973672484972026025206618852107802857805566846451353676039818970763205826770619590748440692340061729952932310402741866523464850488664747668512390347953708273303281405003363365261194593527543458663130685508382650754782182366392638153683635930519416322168003527301957476942553326827402671005449509804177591508156628033151218430354639766457167220281685510816800193824777913550999996213344527142802031072830802558271288055719074220336900899842059689381650160618400967815842496454453386841474296604610554815173039206150193785704443486467217048922322049475048219645553999446006386204276003075417209535371816771633096661029635411735284386511965633311423902192269818773110690779028399431882283391905543030147230573195980745032378438514437826897825216634285323678285824146392481682534444922585854194123985113312221408575277528531602962014470476859555723928462515558718770573250091652980027998844205580513188823088606465271097432213975093911981801326754743423147075567027392714153647826862281556672721998632633192482679451634839887075680815073473427275761605643749912279734102228906470162528070210651105870137596372197663329648475268860921359615671971651959692775782811533752102158647514391182988116688472579499932756325886876032473534150510695517887959717195743310504177242006276112457253768621638984069378665129005467386644627658591760710752434815898693762061676295332806293808454393857912533426742550624380789763372894921758325559406726950930261780423770872947969158703189091591024479861173783277578109531771004195990355303933248238207320057277568094835602142838595816589100870878799970889393901653980282524804553586855945887915816887205256110332206528580581334994210393180548540364764177055714197195754615945017684477752014365295695295555243276220023940068541680195189362021723341984666420847150019653880162931649847777365849401231500898726707449406432158119022947809621888777157425108364988896545443392253433008759376346641719325564624862721568722121287761591691067669972563252162581964791414821937029921880628481608167640681311488391213733573344571162186758529937268614811102351520436458232606273052669311400971047298088090906834600727780009968621625748450204465041502143711734942519960982586807629746711573858278018239753882990744877261076864555655903484005116742432963253417537546849858491021263772217882698006196469356262396205142368102866710150642142094073746692838693830365724147528633990901794602514186498497427346495203928744255109533245186635869555784897020492272244751527356214720965744386852303008466012713929448901887946049210457685030238631946162846092961899004524076790565289965114941690258843394203582491420282290932239798802573334481298954727792685521870366596229933933103296077502490212108859089124581307979634842971952383623142156547158226282457546918272705532598868127796173495885084163433857204787534355473627602179552634878291264842658023774920378135535886454066309787665321643467597506013194593930246623584844763466142842523775787742093696776352162379675652481771037985330699496606015533355931345635519073550623242878935570041700286706909746571554457076043256114899922920967010763589220032958308863652372085521601951628648615665298234890444057886697706219705938524567448455514308971334110047515585302472998058423962469478483143854233698160660993198461859288668339694900254413776887797248582955603331869896324323150101905973720854627797528780335427164696335277396707860388120154438119512349795849192434278209346145505768311333449620159356089100035583997530174906354516214485580217323820343431601009431288992511924009672878142015897150797223712811976390994951353350528677722895223956210404826119642013381362235809835478055255886580668668041448113036011850815919578199460706578388818664495094167847582858663752670473953054950208123441129912540837156608245320466587853530341060502448004146750573779608556114253277146125889387870945684943903732947521458274785848912643764638030610600599734594478060848579956783728754912640455757842625918401880440790004889719455028517472925001514819842907879517150879114034658491877489879453968674628320672100132726268052820883927262258918533576093080842600357556889084691774215715312287409540136294362792777795969565783502489141811238288354204296678906648319485248755402212779268172448109094677540117355218227536089955239924873450011576937710345688738483243501080567602864372893182544778899548473089941618466142406729323803128721811321367939767991746257770788148437364002744641520681921790820773937554990656195818057051087422878336734133992491813833619663296578745931230250190060967995470237198417935518132128698125841258934266030359694160009039768856646033884385549912860365189500784012056636756458902269175839610086788875536407876416631124200897448404913281150123496971078360178640350282499672413177589758208322703706659250707890455907873296538167438142159225471423820055234539793176211465025984381908351115614584162806727803556404208036222202483055158423536271320413217215108733816743537868508241457885337159446752523431328676105502817642351569050877213598082168855316440176372869809282190542332086234895686363625581223791856010034544612931601050594020627838541920671919612321475814631638125664618164350701117984314439234646094036455742373559869849530721018482358507053837904014023763795092065493509936579419069287082408743276217404910342421471144803761834560299234473255857191668419927251575873062167049965200597206664891459474342121168908134570303314681703935017139947976050186982364139585787840871714344582336566732016429198803193655469905846530244574608399100430755162449704863484958358230031641908837205071962492573504531405271537366862631738820615250280067758591778173823057516199440743197153713444134240754645519966540817377746405556354783785301680185697185832076642914133875782344568466888310479421612401319567854268026694587436393794727982426731102773894122431543221830695470766877379377884468789347333876020097946225287131031947494930274588185042706527926786054333258845274897387092899608198545036191511530395955184457073696227087822886071279281111890910938986582923681868934932394755418097740161593195511004311853529526319770514798041253707126127848756380072631536809490089038521837371794592919709619698447757732856723502660392573650617880286022019467456064237267368377454054465664525486958235313827083562599763761179676425375652142825121125655865377464741683709306012507168042771384355830311561460198149115110665180972104790636636011982442845794633177439695726056643513346473649158569241722007031341140735243114456358796785094370398704986891230484507714817595806540395592407926059019189791334177788416964740947564473958617137870090151382783659407565374576696183152861256549956307582084212554013196112494296665404125025177980757768779704915809957401660785795659557277140515174809424323919549019661483151294546518284703106900273614110825270091258847554713796827060750338603717713932561078224194823937995396348302509294837567883251071929721154144930907814946502507687629243005063859313268305588138826909612666531092509248936142165107357800167086429362802236485212987127677791417770809918100990421325796770742640235133755177595141349812714746779969708415563982568660369728579376482157354753205143073061676459683530115532810028305968978071281843307734496963766543463697017938799733077339929775844696059002195696756779980326951981886429976442171019618228999199984260332248297842742829897285774589999308042947899096122070899980514714715893365124922631116223369906007491959446630659718093431176950786032216013032957612800647794800605414330383489103035005162412746313378857562313987651707160723377958367290738857037622944930306290246417022372898530336809447470461637265077489548272841989310682365316356666034392543006833695230587975827190293346951049102056651666221663375406995087821126980347719171152658294904468038491898330941537519041791469776332757761792659006651704019270952571740650237774353014652226539718171481178207689971290719722861760764363680239657093658364401570152889017588181784708538402227935524004189259031695602785036964807621051124713882342862487706491464356484159594405137966368472192002887114440373474104300650599579226393938172465076572626987133386480399338688571746821218528611131920754643770352017695905498529427303447196701901916791844330190583269891211709479691158181667548819909316491538949741799111039967346818528070116115207851048978556350534198386162748255506001683069716807724902296645025530692180469292002585882056420720544647983821186424029005245634661917262349486701027796633632034738272319566546474637761348907051749381321697107848496210787572464379479289630729780205440672405247941777569734263844999473620353013544672291223597682246752990391521502763164215050486255697576207860371474433445986816912872578523965016168194119327767904490018184307300912401619046241479905573275346084021900863695565579975628902659586791593760249994105574786988829681708970535672452478736562212522871211711740553444948540762452669756090393315029746169623712372463042845851518351400237789401035918330005644606842229523785436252840114192721017623169747762156897016794030425872555465583683456068739348920592922038250966853981472308739739797251872060051085039686681446968223525461380807403508302411155829153601182198704264681865291458718528821138725145923010075968995302586347314320525719259601710172517756207000114114616598168571698719247991732618887557403380850453812464840289924573874164468069578583540898590361439034396549545510780014975009734130072160283368075759306542269306655808538041814505933708314551959279910286492508084170410717226812642697898635009522705983227997210560402808296717394284221915888589800509971651269987694909144578555877077905845722491214823678381792471447071937414837712617600555544692497902191858692513978534474687370837352971173121164141041117466453452513641880981610536658983900993057730792531089997321620055598790786897152748369022135615115357365076599695275307326069137310535032760448198759639522263789798012415826946306404002711048158529451083562556086147249036779387576717598875488816812541151845415816908092206438000108423243371553167316237904366648163795061251731583967738163231673874150626485076264272735179916889973595503312247852399799450203433869136141460037051546921538170639795842455164755845302346579703658490821578131047935725877769256300063355467268680162875626131569015404418005899760395158926843552621678491479452057030414336510864193461527088092071381878653843457568893941612640505470921518901601760731687662996604362355701935613287760775905009065038037716045185298139414826450845556311266965895483718433223798535210225323973114598123693285288202855395334201198243634983414332904372888368044576445971250734188402356165540580493602991452704952899972170005958779915518061286223099321559880653425051566197431217592817095830035138770156991811257581525119837166259197610240183087840363786132597799387149535031329372221001528759822552922113766373828419860887825129513221377350725121092351646695442295999596252641813466399200821719358308510807631565147428942529261544403996175893379511509094032404895486745917771866908937863682105433038869478703162006257291027141482991710438681823788591707429934922230209180162032498254816868455085215394038571926346776401583224967718607521266543534028298160726866385698452535634362170686496100868165590949800259643203205502043960063932863575736335427622444290190264555196801758969405555317296372476420645234323266153063089240371313721446558328005807298888378427005486092117352639198375152602448468636862893188451274360956144246490990375898341764345162037361014808547417310318472952234691558100508779741940046876606864328943222740375631923285746121065192808382785071503022678475009521185554811716464160365919256080312909733763432695542736164327613291430521791763462837250480705580014269334610122329548838694524540904482702456710743884412217094604795595330599942753932269149912118433206099473405575634210025512124488037038942979011884474080203577284831692783936782039130993924092983566855543236194130537891293460301492235556172357925222329914449000020873226083770952163703577638848939198600122230053793438927356107963592010099910496215954967251890383973779300644593856565811308901443909019822867339229669663314444251262830330461361541297428061507390217828196251605826666030910475608872601241700905293263137604824094384614202647663479369919681702794955440509566390874357160029377536893289599136284789026771240527308999255970214349361235738027707545915132859740980849259750629275939191593506235544703834180921130474306109047572706843157086667046249824123841659456126772098029063587115110835766469567681226694527799138039557959492422093208257493169325641618820195209370681011106072982269012888161085033260429240048229214122672833405446819865622216812773614056227842078500807564267404723001073551401258632598824709306819083479206746592879138723942466170679441713279432411187506807913162622859034678203491931578323536750876221993574476631835343688308399640612889673747085883260173895950906367664858176620277150676331032018745308732867889829527209625377553208559141176711304337684283401363828606219917880463843744093491593506794719401683352995770119666241504060248127119586500151048276528792660218508838965154623544499441116927032953238173424168217329433949576089525107832643004400039765605904778564942269448677700722591983187896246139717914071651986075123672982180765046012411669895724846773321773926132133273396233439171427835002340277528283451530692705196428594507640250295606229137696296924730603947172357746916958526300720506183892098817425875827600719544243290114311065795579609007986173060339537520660658999188193276714883683717069334787804851837886591889696216240318329721440196761386222673887221403496930610321802384279521635065867402362326701005520143546668446245422893842436380428384299708873976743921714751893363062955669601145919870252996456459164596726005744476019892917939050046566806326093356719722398978709732514977599192311323873696694918615963657904729775111221304760931016057816335392554784661702658792804564781454425742180555674459862754916758107358612223515077830803275376199054706531602358372567945134632974606089484234697098735755343588021959010583682151297996093012584775079424865292454656065656048175499406681932463577248232096083565592533205170778692779187842756320953560759721790667398839331747495758778529967389312598940579780809451147443432826497823605468208561007059482426860054168513267494962877850086887686494246983705214398504656542150058823363609938017711046906058491480853497238880984215417623394810834214962865875300212326970307271237730081733890927901109918020920973052852895351122360883204111699116073218013429658795829228373687147310929122670398239363235504799669140971439073407199252690067291608723903756719034855535521750514468096245981546415409244530751045183997884504190196341759776578958136111118553200773614843565437936791234296604009408337187247518897004438790846297476555107016016787757607346176237497939207650184979652262860161430405897650494310276943160370278293010371989008597365281478992169000056354488605888908057427485314350766484443686195927447210880004049021106640599110753829758248935473639669051179508023580168927860718173684072822650840367449462356106956668268294369458965569934295209811040085099949597354836152995935010551677999170161682448522535810852157696820834081985532700159131655456350216232425659954940736944732438505201726909071143722531627968230308768530684868037662720448957969570313447377319766986060982720538347437925392352703474962398968324623229364388180208179502021833576463292913979337193212821882537770580652740715536560931042425350129433670914698463089227701234572235617071489352033965538426804529376202254825728025305739022659567063036148914243814714774236083931829799919431692581127755477138137922056049647218590018151485063905634446025672248266078102361707135299735448804273185760760642540928405576232088468967487829598158713581348010546026428313608735661570543394901007939108213231888627138086083797047888346494887043371070618033522908105313070204714288585650863366633420588674881740386766052558821533351658139782873309047748860546710436130661415571410121041876914502563701128445616688297202555323049181323848791897025390991922335621879457821847736391558269200948460928747299406517091895188857929390860242265250496494857850767844678353274726099799290640206008767554632897696608385198647600606678426391552048453505602672232458830116591629180561550069965661807782566068225224612018498293879991195314486012746362919285488905481284387711490366667826688111025204097391179129527734586778950657841684671141838062609146224330702355490550982581423424712858272599054762380985239081949121242466934066111931086208073940056579125948249073930197580951834423858872996667236421301595015004415761850370119800822684555128747447029821979019657060662554556413635788706604252303099597019890119661550701393083102678878549925529540212171502929256910054994003827675644233817522159562200289888848740844020357437736360994159221376782497676624131052321706452945052142743558652735134599199357227443476471963077191491405431356558443503354726588864277147691792786477371577985161170191746367225865079840981299737497081617663430578550204372588727997130189117856257324154113317882760048443037007752599823731110513344572526415118225231061201611015675617205688611107894697716379112072707715357331512621907772525135466898417594092453634225682712066885784885341599983817061774875683681003245429666789079565533849092997312683685023431252607707606796951507309455418767180101575520589761956180411198898369818053330942530970577234372748284075494161769426591599252463443879612940537556903000682421627397560956533392745698499695159316215025532934313199017131212435388659215824356369459386154636857370574285029478570094198297365107215758637912439547640095620616796051582670832660219189318144001982797663882666189333681880843772953015530844312392261329662385651854924880628974086032593074305035727857249940437212084388835096759663135830351489026042639890199917387627004741575230529482145291966358087981184736539288720106353557267963793004107187425213917253930881256437008108740062402664881736465591520904897351617426360065556798608321409349626821663892554439803804041688649855445291268897654430446253126976204128853348885337072011737150214226865102325054076772200843419097954544068074744627257040877565504737371697233401847227995723178749169084783335131901140249007084570507508381813444664735383346389513096857249948449453493322472201751704249546222271120580580787804465759422578767398495215746223164442720494064744205417702960811592700012713163428894399412039071111679153339964198320766678374867210194190908190090158864047341382447137332342897105392133199666958991580372086549008798143083857799328221256561883699544399076182156125370754421600966919775702051152500128592992437184188942079970090730714359559821840591068699933271525597013318180227247087215126336112429800966379600095499020311509486431124615524060131880854200371014896618414024773062125585177491172636726801543083859874197183785539024147185712379238040970748019204373420164175462477505717037239575374291036245230265705798901371098238140397490891994661829942293095913339978259356883735469915323469791685474381285991509419582513129943788538659759132350876301543035546661737775074236567001992710367705276130428087993112875903590182300567796854544381325029449708108426153894104682811006046655501474332123835925205566927309006113454194769282551371373114512555317307124031124555537155189599915530475661200475459071086881369435596019272621314912895976981375179039689625534101923700707685050265863878229641107729125069949636462757557563268907415549552042388537938156205310491486333930022413068805104792517954125643166565410590737958825661074004428348058255967991148509584422623323179767528310235345219823928367109428409360893785439990721808969817167899322199690312436091890905527953213957160073969376240754405256359066114174229615023740974867242518657268144168107702946299106735841853547291185408110301642063440434904491673529561779431269508496746407028355078626976113744862979227125780517242803814204725256483519682141419257364836352323384257873389931598896825091646239378696777233155924056975703643691179863672184802419065029555337450858312098013001403478037663703002677482706874677827896968518855545546168986815164539955469442407417229767381976291888936177371469841350386952953511862103076766234911511969399609296235563847780524499765074138187637082497128039846557103613676001248244872930415399782094215825079955181595479540182098736567446788946325096743559515954873962293976539322257786282844388650165593254927867531205697488442022786229669480092492995629130330607847399116475970413788765545706246195503000186742665481818531712348814152042428264608907274733455277212037711825923523235707730193554106862244021290449251802460107987008852671818118585522451662044627660546488301488638653387572780071602073239669588703908274319008110454891308742328297846502580409734676732987761228625568635263180201382241322027406847801099755185419728903857999431360284036955739484043322417958068844568827729716262803990010263106772425925575902519296058347777150130943494613368359076083704303841312123763425633140381592197248918015548810403074734842695863706263243930780472333025354947334920175922119696438780203605391410681048191568422780072918286576523880841922604929039268345636360830710965731690379730597982009539366235137907735746433535851312120077306834250711599285113221669293069820131980409412677247049271864924820676671391744122698456134658506093285237137125803973963876013261265104351037143973396380095490133482877513757994595787870711674368484716874129986683628514194953585497431513263240355691275957874466427948826444055331676538961526417870715192273574510565398927809386500549570801947783847113493720917149831700413382444485471909015384562534320035232158603160652270716511613710942374212268155421463075422471392978231651360899805646259785871153754196314631788082996780618730014964496235210105569429731232375802240356276330753864096306233238892595512230206343038656275059712263792682239970216028189159548039837389057349761268074148591850328561770183917602118102137955522407612833811034175216425276740201902355917561311125362111314001210199595818465544638559814295155378549814574938244087776823080068454762771055857600660122934318248701630403628289120520631336694926093001447137803465779810303193568065930432668116987707356044576649686536292672178227765884741361030896435294416833748515443827427834998852575494754946850089676610038956362204600643523366237682024323462319566817086710870048291370988853385333798443124514317633656049847150036650087282526659400650605230464261772549655277039170070857351588410137406741477227371014227584087096371693331882817654556818387140009507331354174017369385957963937475712401283312217491555563193236286292742243775268939490163786409556519153307782451635893475128088956695695598387024976734418338074801261377039384420479346944253670967334844753837666289584622196976740355073969116992532103468482464039495396444004561353981146617970063410123660850542612800946312535015367871427521160254025751380280266894865679555419171272138336436633364849569231675668259692617395541609473447769191888341495944094287622950935506137559546996094033656660958351565223516197049806696836330197891806890957142933445654113331687470802118133814232493047305139974496807834660606768469863745458618751041873170741332019855648994463534886359042463095077196435470549058101346010150223319651873560685101932083666334410528629455008429103535893024093461518184575261086435362731084180997615968071753423307512919061110804483425506606573809826509958475118607500460848235020917943626864474632933882325998599430406597247979757708455121185564137142129701804959638346404581682246699008549702250308475389852031421227701365444912884975314192077557700014870603770962112213410981440837313368282203852530005949168929579846535502877792764544783083379337801842377635793067722912069666476184561787281918268792665753363202987858397147110058733576859782272048808178013416545025353827517993417087574674024938994129681782337490526825085144576738703061302544568136496407056446737885077143426307126551996728049746614873831974869234517455636553478817616931287305746920003586231668851449435841499179987563786077535368725830052844140994705966399174205935132649958404058019733743431665811258358796853223688066343861402229543773793172149726022361914742498232096411223772269643141720209782630014763388329963597522158736094440313609608602402962096569032879423353800800556731195334433097421104120300310986188251635041109291625692106900393048222109660095588538536643926183617237442421126404842033409908663302474636995102232575336085633986773312285374056153432096899909862493086752544369330944419617083544657721076269537944371339423631212661033590804926725788592417254205639338966617261020105216328140077200988327464567803221583232500863462271850676891936848254655516104472676765265241677573654927335161517231741241484194239952920908080091177743053594836160345460221240765244856515116602263375668005738316920691583748977863811678002465993411677638292483543980560088829417844298826312739997254982003900723217934118527901568868499611335400395251097964306190813109782476774815304604047356183053721713554347738886789264142184621421157293711192800059176492241018690898533989309419273168547650077036050879176932672979216499026011511809146323800831795552654891764435581930894028422468748298488752045262281629802854600315146173812381489537354972615780515358735727986545747787166128254444124137938212320179292736288948347404600445118186892173139913211074983174357172112171054081965111150931327926616677972416159398234580856504629964063679734088829902683992006637334181510893620522742640652287375048360769092439047518943053502897747596753730120572185109920231720642433407484364610606005767195425733161804984060600811592022608968297815602863281080255171054056804712018561622366281373558815440953704859068379118180098696943392048085860940836737104042397481082194164159874323622770423139295465406551021754404471378359468717803378616106490915881642130059770381245946867325108656984567252482318791544161587467905219980423015421329420327677445675197830331914525439647973838292613658448114489749582434211604476705949311406107601480192460914295472416014274344306708556953317402128301077280043638104620630085296736367666128422937075229653272672593632465999531228393789758847350689851952281833982757067671697030546290454351848898167352679152081416335183348548218962558571460531109085169841029060981834960291541140307330918786797381573796563364146229873912145459437818083783599316207023035883212284218703803256150253314586918450659008028530431947147264985841223776481911643357487165335787464355872424113514896288862191847231052768058942034967816406834228188993954334616353205638908011449326659872839463546799590153404734707243623824670726947610966880956176767834851658314787656888710881153116392042493501088718005205792713933779602631494984293377004693532367303593815847918064825171700766597888811759099358984824569415621932369751953207407799637031188490057850830147525342298941978340025507716151887820239669500308792398774554897203438284868391052333292711271353779245461129864052242759245766021525086117444780608132504658334717276484706750403125953283852675547563823522791156094721799523787420034239878272822920409828067555509170425783152010698325295481906175324370454743595616960219474171985682202476681955210964283336351864933025322711850124065370181366374848875128542732433913759643827094488410852668015311600710244906472143779535375975276115241230678615643327429857964399286613128112435992000264719008824186117044758368468634267053957307907857753248339394441264188910326877034594266557351237242826243983067391337365335599639931470406453033505663223394997957554313303650727454575239475299952365043747145760457713916345176445056384429071411691398161071046832172574332233604997997489601032389397693933374982008182015164210931872804771442899121195113034414498294778731574596528520209809437084673075826209588962090293159059533104871031789197639322536013388983672874994247447260948519306539015118149234566913921896681060648486649654942806256373254238362116100145570105335064358730723249477085848949527725313281243475446769609859994234843207586111636426014474730553911120866982230253808954557032353852972129511678942382508090957673159617317760194291952456454309451505860104333627645419953110800187795460714626626572637755195501951712844086557472593561849619280481992653816818552336309046330406312211932717966747612671727776400047010910223921233545734652911873409878541742810318856688151703585082920412927880178896238614831691826095579234760069756127677729622249868113695287575310949671690322166182722280765605993776282197178198727074983535891990866205362820006965241410453821210596353207168153188629660156074981961143155561018762409686731925868439216894290775804180505518102179451127021745893556454202869831199633181226906333144693663400553877911951475496145764452280777212787543243071847244866137204330722737231357183802276692296960376477394648357280505662434437783386424213600596210795749664603016795114396787021578215366112915735590411245042265311639722403868791273138414168293824177801292781110034505664437147080270403398087603434260930180739893878396520055582582098409089793138706458226038662652676161759898185102106023499039606922568804129699684195201714641919827121858895666221880128879816376331521491140834836846980393884426150844709622293366656816139459472842692585657968819058082238492313554441157579603118704839601447346190271737622303369605514625151183521547566300324164271388304987871928308163591010708954651160304314082731480658529965999879105170704753737035559660572214284981287757626207837126373962339156772074845774269858481929305994462271827739929765409531866036255835872112889282816086567081979924550075264000929943802815070636183913311110136557406810356887025837541811592543592243575319440340069042362851775544869357911129998047399501909175323029357930137415834734060073668296409277620276501401930681908864406297440299808980399174607151710255345281436787674660230551825737890448171495668852994662689751577048456015363605030637884781895510510341866381919401145156244624850397752330543676414172895007922442444120605252537688588104269647622910292811914567701281694997560390175560962243979575251657618748810345733118302018865642544722537357974408477584714344353166772066073354140233171179942268622814696615673618656567641326861650499495181020476972002029001611408619323425988518480486349232268473017490665909725411360644802958871301399717118602470133958294473935437050007045033145032568196944393818903243782488613828706270737686837113740415044097021944661212530718120794913805984838504728029189026262406841453097152014726265935258013973562463668761052364937595150884350819672844021663106116006475418790335349129585109083973099037620831821588646533848941788224213047552034487172608825975993723745142143923164868991600408828493551457515296573384282132782984202791899429922859136514481226037546658383918527629118018228262755454648460340286952743719266081293736613059124064652288027144845473770892800773185014243772025448400964794038916857087555630146106231856046579004515037555526496478240656442127172813267696637060278062450671366245286065149403424540583681872069328759562802037239342741832250494747428188656528593930202211447891293043951871740528548189777208890716341726748492194248225295951092743637636531138504237749472301090112163193802383940433028193760111323301440852529106485180904411366490498779790209655475449725296470825293909334909191499146647085580429255087108403197360990478600328924793300604260083769221645880436872790835601785347105661816273940469697616737196126682425788648333858195499316506579680184302224652322627269324713259959182106818381461176912513990655305509940875117548001409251441437976202247168151063706684030240395842839270366571728773557049873288574359420924756661178204232985566250937179024604483833301915871499843413883940526419174522994840387185543458551181404577738523777763592437210024533527755259271434460904242621030849915250706530386880100604208065572018435195594494754698142982679890278549108184196801692783274768776400667915245719577214945724297094344458923684395643924455096688679450889444331731108082928228758610633110832360848548080047334269617672329066206550346045038670242951601164371527443505474424309805214362316680135828508680187029584040870618893460781704127685846130524595788852418474925958200999187254409545722431578907287670904940775912349135856108722374874346953145123758496787086452258755202547107690258581237107334883039006427922029277204695699907342321061264587048645810518002495000053699328915036819174866988615960664237966564125443498282354388002911233639750022897605888638412888071470690212246889974855623763712741916515771824192164562511668337168993530183168086685582522016091928591249181651435527317320205991209883161417670523253289174967043040734043940777341341619973375134494480522402588008159478003152773854820806515406258086981750132134624439320296692583346081483498840730345799685433457961449170301449663686238069704610973454055791843319265276880725912635296289269814128357511001135393105487279228939685888817603737527210072659214080314619862259891573271129662505081053711408862238250377554179562665459145411356000689146040742603297386764290929025468194279761040496688218953466440925335453830250574819197992958894559933432547492007733484805662453827693526260555906749580887311108886275408208708802629748073464399440238510692834621307214284086209879556115832656065536109254248438764835187022192782036656929372607184597378914043492572202817894009677036875165582843341391909101850727566106820882437909357724353657126267191871327210356717558715515991573261064815456309472851560267133316803222153064960163284280243259527844244184718141499639191999838355058846842988598339598452573814478325253129539386333549612665468420211101017661339078692462981401195579124263777031904911374071578590684579878733835240338080669439265884770812029251311285771406336751679694176185780900598666984252191352230356931804981207497899428793726441611539172482808533188915842997416739883785414295902249420844983985239357567291373085348195491611998312626045327824325861808347165896947351387181688762788817218562932211846546918966159399575466359918672126797719477324950412826463548317840449238251007331472503696428017178417252716297062647002355481632368258010498724819257495285467372455911072482166333604211269943279773467107446723063407228470072403956487810379423640222092648338209130833249872025112251054840949743358694625113372530240278725151837732526880154630793432382815252221247523951529796339879221683714690661076312021428365157721318756850680660955901892653927515223585211520468928567552468627817610995013852907890398861918227784182640462016110639245238589239632021042017593603529537760672503003114070602695171435835844863311855262165891660669617898982248048058670245065965194022956517468930243172388931072001247290481716561809666634319525423884488364148852896175476503876703842664162560318263535897578482987895684283268650057195499359032151847570556890436358051065011925703620816803290009318195668693136571061899272503267173912925785275822072620795947517888083616595723369465179663733331815954661525886085335746917227113701141104366632490393284335136738640296164227966430817259099234087667545976311746498136300849741635124727120105897983087726940979656341494377978277903958237248692274418375379749496903220232263936798027081958799187806288376878941215472279798025930465156806101793817189281263661604192202496756085733872813759587189607305394726604776451644155314383549441393730879023956567187967121957039948676187381349450814193707012132509247464264119692305671054146859657654360780305582348414271847163819240519774016377210964693378655229624579887089416161179395580650896570334091184092822857808867445730747948380235228393928675824867985888216560067151719235827973626464703744382827687829354666584398810500290721155613218636803528951591348446590555224091028513279367532573288433824999111016793851820253900978186899646609528672194259772645161091875079584074863681027374194944420649783530977393909197456038840462853721221270149589157858065326129688639298174397488858982201595122583932404343979160759823102379430086886507114564492827794882653525887242098173849646083306162259264117233338898362227796680269057463897077811099792184293854684193775612970426792887785278219456010058875288082723097802747766462389712560954639821821117493204057466176520420951345058320728443602642538645820619703200110851224149453788051668362327659986323198578444031129206738591118830090993723743011034378840538604751025960523874195154452747547061988093080428646425989406905380602907412062362007872769343973618024168084728439401350386337261971901105949800800411812988175553661247650291056825475712331833192225859220543477855624494293417341835246626545863582510940699724454314886668830532488736931583523481026943147087203484525668643059612690923726369613004581780039897330714700251279883067121892268123079506954305713001793625059755067536382916855536682757344746324616517859253188506193393444723577603038618435603785045658709696476205338887353038704424259362645365699405894820715374563391916828023445461803768499348958841649185487701173492719439206896379165625950836199044061379872067295607933693263677055489175525462906283695953142273090370835374210355684944805370446630490081266209127847564397170766540521433835797078828919661125718453383288754268909107706305241675615647852085358526820959576421240783049253566030074239933683985047145689160592123927437054052977962929535531071881195244897740454548451696024087939440680275853865129665459883363184896741421407364220643453717064798000220682897281117289218691768513845763576798323563881397949685338014612036595936839790516762905542751777431697729483975897194307693529797633419505453494097951007215169064281311255578277343358512947033945061038012353287929922138980557760974060603576366197142846710704359761035929170266957311290778636600490181144302947654322951411821917377347971855855766179622316883241663186762163597814867092844403503808662004359010900590893753336495916395000671295194270997801392545576277302336771902102959362073734299979003616723094347422689702947266822016853155917894029415290782644121921605521922685056433523661837901297575471713348201405642814087378077737418705069191620855726294284811385670332543781569692006972291069705508802331192586099006053487244912579736218679078303178292325328694238642185000301098607523388436864168752956003767458682448190489534289414912514748295527144858974289613553665871144215464670183901549474178127298487331260234985275883787104754654347838016887485841188261681594839484207548024864871106570607791859397293915369850389458393403565201966611941869052095963237742963778164892465275606033297532271338432526070730044751736436176025180807523931566160229222168450208702513381144767036419113996917879121843870224938697307007027366405777826964415219130091748631928262232929921362442149471910358888960196000821400498399449023312667293682388967392571336752642117408756418526317420317264162884591002325671500361267596543778661052379813111273523221594726403492382291982724562995916316141210848029573319227307912686429094297242913494258375960646616438379314579817130358745558463716524931543770963075229601623487602126030696335436339081527646201954201126837096210912102765746250682171976611182428101219540649001410064948856730986745526843611614890004605151439108302867123798382291235569499738481389500966639847892608970437542365882510529396207755649804710972805768302854082100865478890660320246327700555519933936933592258065863653157640451703872128214632463740441431471508104391102646153601301002730304435013572874816907675607016346002188577095778379758505642836405364858417893720143372444975663847213894367256145184389503262321143045257831036019967812585914795468822947502165518845002876962721219321509939755471765153147493705427934917756287692067656802830279788545688640657375610626428064897455459212936964666320054001492178817046225788304816761269801051244927323350568455863262139859238218654238004778622407344976784537948319574191525453290282352662905312476212054656008977335214491030500427814751913789918156216311212449979377927909749099570743297598499515278929172274494856372084132742756033735398746181745484697131918442984059532917870470287309852693118286993856514212606051864249729634867833229950530344842874832604446882872222733667005551094134618435068505982685909969400300297359247276105663114316313808323998329898961027046933630001092286268907465954448047574319653939197309969019713021671303110865774994524170959942806100091201129918256415390530965313635246945644134357016425038813022758064789533182523249968742498823126088561766042722112914397543691702732467696900481839635580115015582370614576548068246411389853115290451779187479893976115508359031511119467755056696612154128402105423448024914785017744846611253735215476185780655273664886093145439110320626251403636436977702001135512051569268508980402951357499996590293468320874917792965060414562446925562665630289024196290481076645960434917409963657042347284019424533521305931422318627525731382530123310503764810899701125706735503112731166144402714311815778307310046146621250199002253664571199138990898766567638434218246950931015148336107564708647043522793945820686006048927308856772145218583908236098919480736666990696829987807877812080793935346222771497713366411731196353999629086357927212015401206255975290719066440263619662727898148445391099943011045425182122070274720804176565659209943032009559973419287408882812584957624972625345580373009346877711425699059508023594270993753095292667322744290640362452308317326860379100658779554943590278833659789227952964484090241596738665208045278823745184819815748262550607430519885516765424669859369534445672066569328581967580205737882893682961114104069600789770104001904525901687945128433765426941214835103929273001219413297122786422773917298574718517660853120657108852905759935905552113857230023573971308092886817793986027475020920200627203550311744134096619548663159571224170595641752870906787538015696708942867012423581929430902467828773153306851626470678569327877695190189895985463974480386289537480968789272396675111282786061060367451324048262627682445291260231034230303862226857751251185120827029686967707410387993092344516297328492158249454256934512743682216331822569882933517568812580712120341914101202997974945568305189583269540679828860599635933409898833511025152930225063176569971776012447995342564821211318657682378349376172092391445794245943757455012841295451769820409979584576747153208260143047558819068232080105056839957666674346890403015758327630986581435693745509135860535071524143200005338757495548093153920025150815455470722939769651591157914732886192205593749923178111538692721355427781433152708124614682564685789563982520262432900741199544692634538218571232688915869865864814023965329064778559708915594715527386641148663757832329284757734411167544060492757107845082330621619313514990392852101434985172004193062781485577812404110360431650884178456959908183463804920011925488370201168084035136294197804552039770067172612201324498987335074425541893832663024376052433292887505144828164353052439277618427090407131169354409810449547843684630801909706544044043649793815588119942617813328090627050702051108636860898625810172313555424049323118884879447508943464005117263452426799979713619223058643022739729552875943676597080657566973535643774531858568491276359024683305283580884071068090655142331622874346117301265114390166115471970287712870369664474587944621990395494578226660574895045834629328662347051753332945184986688394859298645416872556434239664016294940832845883254763914536326943325549148391697920514762762800697158986977057209397459268343292825346233588493994261645866466071108152897989138458697597160424896649970449913074733112365666907823990683409895237675025636375643047029396369031093083813944615640034010652572320709473799814121620683381393805034522132760543238899272078717782866813915811392917295282142159912183568071769606277192961640647050896366728102123610848334958673415597061815482776775390693505354700136018157966871573542793551985322520781436581719267713654185524436315086180621265274645432496727205134345734703044663138723844682493634046136562665096562435063429419838019196479105076239925712394664626503308672478893216294778914429122952915038096372212392644091050937376287248879656252683548711010952614702497946008626032804686635617760233121451349256454543082934067735282466737944100909948510076032974576831969045174014162453731543616208403057676908871322191054493847142057639592102987020132099731703903531282437118899135994339393999979765723410570263103175790866467685626479585622701282440790775559009447479330852047307773422899374756147159704181899913281969504072107240225367619272234598485837670631038300210642796759207702213643274391803121979827887274715605155557782442026090143305056751952127626657475440135005066717204950034562288282490439963963693779162072073631533236427872246991023338605574247333832695939516506427033043568879487107114214235876720118256521783359325072565631969308596578193828172608154324401735340964406974638946411836055138558733421550224341087700627058642160358686077693613093865602945261542796163666599422814468980000697008336818802714008045202629447939509546886630621763814969362613061990540502335012724235864234734059366051610690405283173965045563745819349789851018380116906513163528336829202146588009100335134159150907684267908031120705294509819705400223312739919869013100889742682051706656134635572585482835410531039328410009108931158431535403858323042919241038556232320094700560071491746196915135672901971409122106188624095312617767479349060073588403092909886464709724849018799773398532102581936527571080584309131220441229914624525655561162776834646242028043901963994718032414173079030398199822986457824732853099323579892277822688476626413027254653159104759739058935010021174686684965739445220763108502825453789468920473018968915021254878219899644798911770383535295693641729416054603554471949139887988243920038596030785736777298880228870327272086097245743657757761793076406404921587955810760617950160174480484650287084055877761928511437963702640141324764314731795343966352395978875334680630134476716568514736617024292875184324432504970322004909861373770791760819479087444806804581946128498262523268094288507857128916471830544615194872886836526873705101488518326900852307105094641464067622846042212974711768004870177567935990298164292577861924463589737418386320811345278086193514219810685256804509898683293092587127544606755245101480929930646927615316629782256859463229528623643563498543687653969180127069101731215878765030797259901115058618795149267484625087889577715073384964997312012339810904636345219044260088352739717749287577595892075132879244893189261027728476622623180137010025460205481063357844115687370601778322483840865227536986941398601877251346560811947016186892623179390010794370870386678342528406829455904141434749480629530854311207337691935448924320839094662799521657545130460171174313579952713285316550631512718400291042427831997524275649605459303080682732474022756739048248462507812217341887358582699227169756596821593425567401075790186777879778406400125726797225785235586478890642593517370784318280787034698180078786356203441751151789206267439301971824501834938836903744836633629578134111092244935657548464383309185683989526407719299893255594085433812579507621283939632419637467506827444703870839820917296061236825074519851374225144395970122713034710402259533883986721663312877915964887852521415027830733111114204752745799694377748433188004728725755283924880262903852647762382197956811700037314053646740407119642742707625032090049973262738006417676833326385194925866086002864457783174677734378688928533318342183528615936053816526935623371955288771366239610043070106288905648168793040447424625992294271248171914232227092612132707558164084732350949670586638544841358433846383846139732850364142052066194173446925469367328074080086399576238837049523833375021963062869747967557905232172100538415604459540140051750028466875845238446651732939925545938445685772938165283892513496172338728950773454776069333116514966060491973594312059987822414737362407627235275793031249208927542451803292983577946315317696001830221181707784459996123994435078241924276557375494967292971750903202754982471261995019196760111953031561518642627918326520682695852097043447093346189434143071612730571601075106751609610402113950452765426176541280695674816782172652001455113410582121190879298512888339232642870650377715702351436395360694791326238255520944370931593291397322676489227757755748660399427380712029203709685656065126246095972991451177308246583432507444933478812071374386652870037280534359718963610172594743322173015914621088474010226675350133890605324781692309674249473816748810562790789301986931825804948681880915882399776967339096869955314351939536425635077940270063247235076919542227909329893551664592356941925789202414660372587607244873346744892898466469632854372406117586111090617685876846147888369001672866581843011241484176480893204175333633401835094606057120586176163085979397458646633219671024624628117645273681056150354663765399959727500631868348517200691643559055910276470213083494412053792732170108062218041519568789469833044554052934837105388057361977331639800385893605593772791464972701604348112288135405343971591797253446320071985255205818428426744077314858906057748836326907641999116780808173543955282468906463743411563057805323908070571365943758320490543208092240356585788115839359499146881144566426355150799611318204415407064078406987166194729072296114542835293065784959424980334592636016189044019189767286000545525942532004930774626093047522066799643072340010974256990753566784545355567776735696518556544771075001540565164521188752957877241325326626447365835740245677445721263612960716354762856069368880190528265158017078571415228453485748542070432429005597217090601673070372059590941003137939893271820795762675552470626037849356669066895352634477018024816516614746242362280845752742905276370059244918398163039433248149569125586953923162233748440514188345156699757747432833619917700598238371942005306671412128060279284573619211915709750778227563905651906901562816476131457121204256240588031889523984563314639265754248491789574820383613618932258990781697358501028923776213288881818935279988379612474288472528822563819570856526596481057788838738722216207804979252401114673047437178367806207259918986421476988801553833275412057681728609370399344612884298677548436787261157185193769611180140769932221460486971421591420976295913412769206920468839864014029464644828960164266088384206457684521214382613232600112658205016584713340852331459918220485140104380377303587762433059925324278328844993324473306438584446729235569758827288604058449168903378281606203797335837745120536628470846961851758656435056017728408765268979029382461178103438603930925543738939306620116175219459981727060228911889467383322847077807812062619665280895349912910304185843206031466210017076672481393088135885294753834008188307868876319169958771264278903547262589429242892352326878380328307373382059784619024860076486635179702878787553226185803662150250841742434404385712631364731774108038350492347858193746969701482747548194281124890479025337246289391620535882120311866122942120711021997075400074360608039927409953201153686091288537093270490398818708633535733780917726475603852030061423865848300557242939022425550343017778606486019781607386808070614570599894440940553361707257408128587797219909085750543423254688129601991933545953960581617304889854429731202969171108777498104801885610648066624683666824182816863375853671079469184195942855990010407297076301963024295359096239479074232817604353040162209557687606557610513247146760971108314290060626338546592314613401287996869265538975272325988251845591071169296820757570707362864073535342612740755776358713673464804162133691901491304026830095260101702828216785252773964578827067346080578614261262681069336531789785550046121440080244585092172897210676176262964169009095986880945822212702273331861908223908927427509885749045200198540388255622600879899970499201050538082405361562602386963105602378396197119186156220852774534731680651145799659614001588851736726542365719930721766260913089839637781692935926347269607479394294222157295846958594779511134125246050166470807189325169129822128163499313183666104567462709302373281196918545768613892505261106512136452451189381130291572607650750652953903094230008217202071391170137497284077580893642423976981560424273625875541757744520803216914742871430121636576757257201840044929674571555395646353810606214984453665317993767171293311958801764462514324202380423110556128621137544908825369080738499447998748476951490847325916906178006183889876805305429701663310850234690882011938183218324107780119040970923157119464905275957534300786655840632056767378468281305594284730024115019540946176849488051268730095039476697557286434795591409265140003021775304639530254675610476978907666932609115568646780977252021338790606546899839869912750714191685050687055207515194193767401699731351472405059574099221119684774471659626438865102000651300155497902371210029592133572334727272018279158252689360577156581867310888899562311817606146863701642686684623413683257182911400044306667983837361944919062085176626574794053228959012323673218280445822096749237958504151802729068213812678499322976304605611037827648922503844473085904520574752973650803230537086831751900890564992426127849257526370251352487329058658154768038448902168646899871071208397608667777823305376646030874448696355701843931211845522191870839871465514184926619662345077394027121668302067438744769785017334019778537535497216260195015603890987307297662739841994477151065739546282551312503567172021972423513377245043032982312629446981078204778318541668234589873165371952549006484312307143496192096568032557096481660207231612577231296482095811108469117552233320861607415820134602647432493842436146026126107212568579762249599661622729916036418149142126069264668357237866730246069388682411358717811489599045688153075391018853532663139576811229957792798014579233539205117475981614721789014759383256020302668841322931996775154639941691775496572902625486926836195019633478326881878239444961032017804591678103172548157494448332981007142564504700846311931712268232446846421400744653938061283771299653906024517471578679812035615763368549123906274883414644286488714179671149941573712405126343010775537258813597193244748627960988810313699272886542377155409621434505215058979360253918952019095343216435772181805630119743238865295247415985357468570981034731013621376443804643683144383933625619429990829161950213413329567972267188301393426401423066441314731095092942006872727791056320815572122399387254812627571794547449085380578659950175073388259125372261752577583770209034123638020559721129919932876932048680762145386141916055676102602931718218631742679153947580944153493674232081093036266198503208665901482520284297297451873962992650839247239948638807151070421328271151633285513061719571115130572342727753963983878921644877138735037845583506633364186484808666068498940974717727163354942739326227382190607161321932736763526009708853255132159064759642364504044540744820925882619355820565371094010575837182670150445160192568717372696315187368107822323806647547405017239360473996862773311984087438773809651761996626344301040402225626955073452813687993530276004750953317335731456985518749231693129931044456615520573018721705733845678897918232114157993929546509617543659628244739400170994477532562155222904359617801792399535603951093104267490721923444287068805359435934395330843282258999915772406476037901664318870981814564898758076396227177349260336703511073470428023374161052948274292174886486625298370040186687611771479120079741494874154510913688695505862066662461009230343291279746433899583684158498686865103817980726195542041881668569240869633548998105585517157261273032391697228018628236107484868970621937525621264027701397662879487512890606870921340137622151584549220637189912913429698139455005263338383654245534403103016849638608300146986400889771000043196946922142894761887320319265510240159110210346510209378680804043228804556152910283031658167855283130955001434526354715612869253469483186345840643875915886659354956464252311326927261378922283773088877095930425330743299709574901217168200357999527042399886083721502329334582783684981923508634284862798997902136767875202598701644614939792709504473437780289710800319447501263702779312479452169856751163122770181506124054266503803072328854424825404167582770266114295338627579066019798392160894402856959585880312345960654883090812785933872385244960340817114120026429856173597240506222364962432102829937836251691880644741518439149578174321547494516701246728844445037771207537742453342407099336991081664081843027830613487496189977009607788689455660906935264398044793850054837478202474966843095318242316946007509279341639266642123267551516215505448227588553233857383652110361062397861656231021071617716020577191521687590840253441236399765677985964029030724477247042520519533771696509715917341188343363485693649115712576369695091390777472393109432670629537947021237194862689725784771310687276183518122402090185430180448965059858626677694135983077466745055126742588231128910728807942943400464400993277811156212180620573291402335296344714558300984951370172467912206542653143946605404769108931448450754079055201018247550397636664310951207855905447143920127412294696455887780751707003981713986222238150786620940204206239921774305594958735526744494712121121335335673267858783365877654489686359636906430140171710809329594116543506401360079805843063453896893791406267448374643697717877397979523539592625227269193133324145092192223066535841051533370168249595545459305537228247841700457879175792097005511960758314223930211571308369489387884627765982121538114384839554914598585898197619213780357898457875576492789819723756814171404666461292292146514101568734479581789911510859367808079432739168857844132942900545771101714252008317314318705325847902204411424796365248168138952241564472668143445555780020546751825688630160266601232301792743512943425494913335480140686246659171166985828899772738348881319247499173627035972545980418314878568039290374074497586088290046096526542828113851059163643002703489814918585554301602513745958654361557571599432534830223345332129740819051697317329237766713098532924488681205561038385380652323760770332557989855486514505764786800184646631472026057777030470289629409163104850789529671882893765100994952663075302753951543389621082915670583247401248194847922073990248578262370336458630162705147107125132782338461016225336929351378570750864330920397097303939588541165732824497632412920618613462165162362060664616310119373539079143418323790094303532956005792161143807078615967123217491066491665215989076672200918990347752339882157821373724746606248116503127582158711429415382247841737990961138003287950422699708494708954771220565294976916338797242137816943038083207031634548633210848480767072064510677625085846953074259697492567426833462930303135324351075092073530890418009444192663912924490178474496354994825695721878086956972057122606635869586467102548955758868847266653882034875826336777037710289229429521363644115236054031901047146214622716959133144247510120485986783340328568210326474181317511978499100411427512365354502234942579281968782132081968686361903289539353329310054025656565689066793212064096425208740916806203786772251558036543261574082378919647748090851559109157147721668869110594292627094906329006060572258335770217600263167909887481843600173206653374667156381852743233183093451454771059007566969364868039705329058974672295288841390812976795844400656255164876299889378318386906006750484631384978667198374945949833191992317225139542778611014028959113426430951946596523865295266775414036750466046118881712984859084171999069615760748757652306536299538804964163032606161588775608543678585248194094960959873649833516742753516547849727813745066500901098412706377645940599719306528921209174910773234097577543192114891367790828063301525327872478276809807378538818377106219762870787941663101300882745549457732063764391960067392091542809268949032356755173960946907501573351372046388519162271213499202978952748593201907592433724186208647326696568355244254199645418941249426675476980439510282547014564384078716981469326559330979594057214327317586150644618754106135159087826144232875657204278815641708827272645201288750348243904507427518685186931386461259228387387252337889679829192435995424827424205553807869483293746279710770512823230341574230081577299544469660809257858393508355299191004765531213182560845527431755418997392824433225551525407655798810702010630646476293175722639864998115780105542714053730632142052397025468161454053283430264024490295481615559032600525003001764080174513377530542891681894026724313514055743713294394132654365015329730431139776531761855978081773701053010408969427694999588276427662996765569738619526086964451701347607697157956672683736685125626366123121564968031688891892120225705667054131082285991003023724384949948917876928735160428240593361733288009474516951055245829002941637911906015674314014869436945090703948753977863969242111906517901500292861039125529946667045126350757903427330843158391739152318195043441402464596451560415595179883639179726544341781067297887874019986109620108891643525620391600838067758691585743267860016047050633779018865880816898217947807416423007807059009349045781095885765921586229064155223037417668869247911823913521121523749813752943416382466489773085723076391662316564812959733433829362846976643087989322174123958983328584137805485622230436756454303485469593120291408813545392216872129688488218159732137470203844445068795134696020075007765286376836574259115378316810097569515298892578195898458695084382849683659992601964190931933057761350845946537805170934271542905185686037986244136095696581721386880326296778412944817691680000677960854077717191131229534930719402332317851460607084763503474254957828110091638037423302659925343486100684188266093083128910036619867364747925950724028360086653814942569111790426218538356868313923586144659421115005711233396690405692610178952756176431388313862119082757217678007694217024899379106264553576766735827462984080981017616161699274876685525860109126305992118208363333785953303629785799424987122567577904190111311468798709836034883373799115418581418072935976974156273493069349559195383549186989773627439972239601169331592546043836379080549266553570608871823556389669698154029956825302404324132483427140093103401191126521375594174431356871038554403042623060774878681409243531122773233354958763476316351860077220266289492985161113005922378029810767870941010629880709521896612791617812528930796106488036716432013492752615445709598024742613891277424928593950833620440892291849101286525864079941738540130314032551465101065203267114593631848288840504529158782558573499299402769981487662887679824404620048941019892181171423059854812613248540190401295864268318859283368563851943394326263782939389405363921567366459866042054823148068090544501538327313255318265529193549669281659858917699867858267274634551305305018274992387587180716210219974774962775013161147969978403421200142581346784893760947448898331706732977859452492048793558209987759292360978865975625266162192132959503225920102459238482882988803982942193831516120469476756396635728944475550541558270108105136272861492540452013047771793955683054788031459263295877418915224924290165323405071197048702023864556283346147405977679509755133260777698392975528923251155316481797867135426685135697096073631156597406179196134198251714988169001322646907014086568202265800260975313568658879772875961656044737544909300904309236009741774731988793112797069861489021472440088352818773453372040703704354527437992719794242947908032935930242556157773148795386770270046518603141668582023796638578688561590709906804551820691418045303049641700672174093213466638729490384198420458654006703612873007366054652528629509316402803594717054957632603058777693923109859795637743609621137072823075388034933688748495146561703647670170348435455857801434110447651590530602002698707232266652582794835538945163523829370890756864647098488989354596296589324377126808226186825001071108865548202302950995469953450257930181846087074910157450301737007113030661500333456061232401807450380274703987731376042758572400253004321513468120184231968385484156343304998799816317045789262564534295092670181766789551372559459291546436683559000468293337626474809109448493674075208444458783137049365392098294914994414332256268452995724068778531106810260374373342433826557064696959284561196089366439529967441063650796376775480981070980788770225885752938780195443377091661063147021244418692406902802823671615734948823982485407675487594399771158152818535244517976579149630267992197042237843089877750783865423832441274778600408773314310315502767169489570330002574931483872866129894542235428509424241647162495998887160902127369938995885020170478613785499325758422157031237985340365141384655112331269259567911057744445140639511192102388261390743092920525464249338966495658774178635322494312248426531148027540872813738899374861425185782166771587873755920871572980685041177846374305036430223186917253505985504743855931661313170809427188705146105668391381863599794987718758016559906978470233359449907943999201463883312871814974757897053173844101055065647677470112774577976234562885972049246938480773428392542550039526103858203339012657442889474824323565760172564303569117146432362179424119296857463184994004387945394248641393406086022855061449679856139368702546971821475739832065370294098497832823856521885790570276400392128280267893900340705570749079184446850352841831522013736085561856497835733825709025650313530872874560918376046835339094343918059655696881750546821976411348702042729221976029268595249755572971779261177628443034822505863906041517145915459540494925154486783335386948391629118910310533776687790539613121135780188827351021827367713215318588835172794021270164958142718176789879645139250032327476374804279661509939263888011468542027808312708648603956636377586692123796658013775424757225913725262513862788679969902539249534754867281570142084640794225150313450453436518313078053415193854739694715441843681920311272123082335053798987986918514222249459875397390378135661522669674984472132160690261563077330195835418300669378612463158779450927799266465933352138565002516101043104015252526200008207574536457827733058457034913965687756946573487695115535484312731932741305885628284326416543805840410974764055496528239109123471724115012768103083697095075854439283839961213593786788850313803874777844430869069293189433994654310472113750022876977990272510053645418996854149438154235498964216201306797090602188063094085996831071345394111808388432147693998724208135828555614558893123709125749506072025861129422084457594286023644997066122317530038558576267054420945482873952446777489768088761265587446307996670640640330985363097152731056062400476068880648714281498852229339643335217821473030191776813354832528434458983672579263800199062231262724707558574266133671661357284197584517988191003457157008651073583187033408654446154775964148838017901740971854391982833057004885586998482855611238295082338304117874167777366323223040366112955524479583648486399124288910844529889747358749288155644505996540337817969040664925821613191708665046441668986364547836844247593111118075526397430199613664059714136247714784654379208233373897318201890437049334450087375879858734079401872842020546181589456586300310324845387264253484712052263701739303560876115060617120184583303974614481045432352594929656656120591345105516988420853178991560550252939417169319064814357529538604267993449569942867425529599661101633942413589838109312698742244556250006403081876881336970670470081148869426851773781588170375250985599202767882117198803835527374856097946814520176852467374077698509342698041386495406498946959514465321461826302548515914869913387767807740967105419730892315761029313040001237094676889075757069765992157921855366578518827971924836647605115865934669282461737033232716265779259938980127597855325075710485297378571317827961452420737959121860625591158345449511506142179232740509265487850819252275004407059631224730822397346761384805422826596090844788792505830051172013979068296907539468741340488570644251354409972394861352819974254126496088013650425134475232098968406321257980339112919819739296921964961287730345339508964054425639170336358914319338160182760693754061459752756485551395701792534360223664276337939456795758018561246852322682598181460533469285204474363205227392036118195285201897086679022058862650555820331566479801488208094389893813121402043770631535363729586561486524671079206028706729400599323026714479561084524736255630122748905885650422208049873936146419248853457104637134794441894838468750153063462568746835896970501075931810843582409585504696423430070227205870117921044291760244641527937224930233172689160931517086327921469225601409647377433118659056657729078779660942462091702770022409781074287321786329229473600038551712959714425315934247941659179694596089035280399414581052537502776330622580644769394755426487062938730708662903742158575694762015625407420732523779492357093479627509002766931562178630415859275178569224857337864161173893657162730176463747889007928787520391881041373725771211137538335212107626092206147930265395843676323341469591589600392395829459501949182752885037878595413874167095647882609598512529075723571266040415524751587147829263296095308047035766671606490162487200423993407895330978218595946605021942383450200128579822991011934305669242444689111665232641610034939885626598175160647378678156887980396787243843752126941034294943718905187505034883454302535150536268787111201084252623250883955829658932867555850586648777861832965438588944874903373309894749486447293654372515810684011005736236403596364654585775566169276587876009762803228483421730304279509820127195652551602532087721551161357361087493132593071584374213098323968881428408338774508712806462510700260292372613371247756125008068962440084181278959369498678472282236076230931507477013447956405942934200332686152695325007652971081762239110117215170386695410897816836363279901720876563714555384526790314664541500421562943627584749084383657615624548870929064808393819822034943675946084460613017659831837403314031865599698927842269812547320136105238630689970037663074886210292886516283774578154466954723450749783884101389865662566962265348088127324133391022042580677581521133710830500775016412646916173944536311471636288564858691599860219300167591294126260261448048253895852510226748601739466683475029855190609409609021951961914668239732942958652756259948460714958106587121682207626395774488578943667430277580117822192589348205161577413981425770803039371476067904978956256230076516603575023965081824688752674802581879276186240078811852782216004161214876850757686085080042277990878228310184034437510472783331389764948042288152026916827857320387227346495163933915611429847790151011925232395274439367095970854728646252075344506225345814913398401617703205743494872142782190574271827135182202366883058509004417946986366649133384170818936422318538931189339085437103500736926977429995028046600138270108371342322403889517582804078806988135056668146643294522266364098035221333733159455881300273345643693133105797708024165077681395080071239361864710594467587170465189495006357520144505019081479850788261346369986732157048500568005174421218273545114452287353167217549483373707132505317780031308766186582780997445918337957845438026401442169940354997720954575814171900695516757489480620121808007547780142789085765627372849049680423961131906144843383454576128229956670467105300034158572698126705886226826101391886673781451355474233623934218537000693814668390066753702868600116760584336332309794677311518583282809266967404322910777956633490876192915581894885830258831917061624442695343959388287563404141372636111182986261565682538217438372625662580161467901004719558917502219566889776747801841770575483667471811203738226168159217880005386663092598247355715177206909233231305274728421179628507709331213357030949711164573036177803322228066913955942881813103933088814271060840813690046618782862626499688388835650637261935994897672369425979500827506991844847409994042794811745685362740130344678552190307147413680151748664461208042436154990247780686152048941270315735759467866442170233312234696205125670385728912766736116709237296449884691423702966714804840913579415227875611739010837995820042674286185554707997104593012340973105072572938031146209404471536410392255988579664819376217834741696956903578650245011733928070779179136984021684340839540207766193316254241004745457044486989657505007023303952094394891206582198116890665556092282535039919280989322035283735930641288706445177901110629101836183911861449460670960999287970488148083329595151275674560576176622239119186785094344941191439800420292469878356068834195298458979226203723315548611428178897442191101506777348539445892808052195457357441679806433607605696098948073306442410761444943683737761343631258337806531855982144473238107517827198847627944966481639704669961549166830360380812936286188962911825439888239302931004046102052691411295380377242379980102151234014837411995547738575387042883460107945568226950922183604092865698458877092751219461507218470304420371048560427565225506260609149825147570645016605669935654108451088306703487234348349210038349578190948563145944236541958972294247078098471478815616131283343613096537835890018949578840054866885503941854214117195840049271592554463843239581677587589060676801595845273501727380868360518664415499747706229391531085689061890383596813240337487653671554429981704716535582937757696151759205297122250766266997454669939954637213401602128766150611789869992306038576846174897712060611013565645014087467355155088698259489424554197621746900644547108273443933712330922916119868356888658088140157347197044270008809089868369097113226371386335962884929926584769960421937409650259622347914234816249570480225588637640513192633472653641446361638540811749184257506705070032629769618450648489645801544056266965256265095889969701003804846849881879161119422662789663451641024719178627212614497376761936481760736504361840571552658090266606233657668252174283159082689342276272947047173369402563624146737824178475784753210354773301234242197656291819398417152427218668550997823544495627146825254379813373486724288675488779338589716087658861165869318204889595647078476330743155653834877290995999521073828546306344133728678645865819246431488025359545208921149586471159719016235694577297670456116317186060309670911975060271995508204399309354654602160102285664814075850544425514447512983445349039914628797730311050877433314468906769658302906309467231083832446869649714137836240379997503796522073213866325951809455396593505326894720036526741021813050010489473632527964969484682914769664480003698909880591717838532119059587614961826770135570161953297598282968508759957816533694753517621727673957127830481143698141621187018575766251912483151858176853192572703323284866864814702494293458872219894583677849645262247209405363436958469018258929831568969384713821012791462204092112398202424518724153529272858205714869491771843289713686813566014387582360802881160997602567244244388336155142377117967507912825216706202163677505692977688712115894762382867580022141164169806853170293103544418195084097171525803504499088514161387401659314460738253716177810225380182690552870117263748147116880762478196317519092940895614846392143144092747496139772285441600407550625431760499357164272423832136674437445915189255281916479903615679498760737433557537852126422364832438944376527569712814093590428616611752058309391964486164459523009805393934741214715489656208662344607486195004726085780629133820701829398388852372726852428778621833871096797812863589875797474108945824794257069540292267454351531997024930051752962978717677949411809576871714100800528973518619523777513893576580835071475386383832670106532834512816908052030838518781538335598772623538291200201690006639563220343329358202186753015778852387768788082257673639385952839336601578045624059721161764337563808045624623654940070098923557602823925972898365307225441761790619686546510032962406799435794899976018746313662166441245337350974087670355614739899110088958888701552459662588718905819844674394934423980477979647562062301419567472295229700369289754995743117440982390400246104586089733462557298480796518899816501262565750218983646422614583365113688103414351916575924401160683300134977183442867992407054589684546565860863016358562615220415244197494645919930017532373799632057971023246748094141076817239411405887899997147789431934621412877914443984239707439931915128435119675956525742723501060665244864202601409617418648461278745010588566834019712696302856551027541595534945832357631586024583445603344909586932186685798477104598788481449290985022175906686388702218665477819893248900667739349681529277550351980218634260972302422253306292924252798194233190799164479832976256848921017692820857575439872986527502562971531765969447725928267746155152431731719181837806736755469834485758926962889517538081104820431721671923658608308621257867892807807619263799067362819997712498423726689228978874537801557445510815451638153184326866390569657478843896138211857563518085168274457692176983217607179440929113846596365197308562116371297929261766933441142768803948029929658840724038958699191680594751850272321590377675656937931332040661574431977157970374352963351251060529804839454363430971132255647569425558741654309755141440247797145035604782140174213855436344594126115197457465854065609232947745698202500517139240567651665578440129351374223672542752599168289086230616648747357796070327643101888711966634130080902863666989284727531246204228808189382571682633722245858764340829958206313277784697647750069399336932681974609037547606529626041532385843218549400026802977512734019243963654458863385025971272194277217073440029993835232296701516941445331703823138913606711522273181366287838454254613809989196404248583944071457263658937343723149290782580704761729291763344993028204385227086360810836351665917998976057527112845869883759577927239132518013121707450574906398355574856521154276682690314536387007610229968953775958488766318389621191086512069402851212581186697709652324840958066273649746254776025911852763149693670011933269903268446195664128214131819732686668690676590228629621842399026076707240806491390304258230886663722645897406413226093042058322964852862137821086096738793019025593522405691699637055738109262231140344986628819139217550702470060832151878203169349723307614388110096159719175092743304549336521574849288644356134126495107143258781512961549041061179507778095504119888586665731412591642491360138580137558227472036352608365506392626608409177529425602632561191938014687228925884244313911983666849396076753482351385885505720965835014036755264755208201291329863544002219117100889080424616018899925901462421578075084795271931184565004695220264696183161873471885654743870274511871780948015365997247553587484387016867069516503131629819109664121333956421423703336012977880079542173039623145276031788992226547349314962629257413668188743336790657999666206819557647678491686179446855975603480689011752446753868779936525394350959336903325804196999691828096681581833617170120398267714610320799549055381363313889566689312601738133879092183611786622971284361183361980429377337150395837378755007877313199032047867985383811718018247155462694341004480074848103232088981583122211199125569400491037251622579798197868493209160126161793574962154991638470676228737303948738788040530690520803662256480525920733209763898896189975144174891334997198009143044135621139585498940480655663814861987364094521937228808715896880865034016958527203826714663117280219535452608917909659199577383405137524176379016171022235804543052390507696496339339543559661946189448745705053482621777756062576853795038538914136007731938823572616250398144053705035959832353668686016892050573627328729199571217468487334815835109302578904159267336687337033225251772062550484144708857000716638974054227659623063624301739097177504764938116096537208434981232965496197732158868278647092752799310621666099091912355489972835016922750661918588492926054803603324184682477381814833735766380470791402122988232946714451386893541504991890784975436726561041666923544116702577398155459339836045362135218161666598173064310524420947830322687879178513958245400276143546101496747078371776832208133811798728883275882032238397930087991533097053534391812550715012828994039722393765785727051638270823773597474818289634522893806670935920092406255812792220174899522351016017073072628574336895263654614614336804646733391958962929185151346434849472798111325177862858527965217932343360629754837059919584184171061220418037836181915369093711354437937125397205427049007130364620747862502694649939649823111398629929898269619871499349891808899497759261071169506102820182442169358732814373215468763869520274765122838270147177643846227518290442068528239392565779206538619117522009707744105749025456610228085545617862076284448444115946546846899247909579074409302518800214406475480157056240628687852765250303365219739489581315594407130763117392219850243401906883331383743604936372993246528163593795959723487310636681998704161604715180911841447832512766851478051281049842800888983284674374857580591395301847463698586629619520942637869873449395801663823509949283540292891402236272671350472095235866673551362857517347400195822414290119365889403265823251788414933698107871717521590498677172821256908117833736693628948483126046752522291726456355024133946027319792351323481329280462402078232901365454442102148460421850840818541806615349280088038551540490758754518469960659633019676234975502007833486155275663579067176507413600390624480141450987972147971029803263146120608603683020373054533762465979754163834661224161010315995276395018323568278625553956744575755490144098097032712645624099126484620808188411698851370969025664564023906693711692171763247965746884689507841317147612711587531274810698383250089353939352897898496982479048598572870840520179649124348781466322910400825825979842683940805355402762999903315164896926234698262410532243959352029261207010291162701758275402579571865354031831220615437491241820932800250514210563507263879629808460789599336839732178258687438547160083799238267430728881004705442757920177223270117213861361921720969657002894927387721592534746436655290368840464793858177363185650260422774868781147010771157736536151361336535769117757523272595381550386348230458383935889587821092122669471667103290499110801776417479422808941772336019478927983324333967455595134231239352042898572952670887998265501512137132506128555402915781805333084250774013404456557991731652486268536821990539127175110905302777908413345577045384495699400393271978294876608012817286567535169376083442083676262284587929421276312702568552126687578035558625968870077617762737692923292063423899497467302293688027777007961607259919575066811722743786399168432154990732805176291513320599682005576768338362852959293226735743393964840190122382169112369711027776479265768893635905294803784784007971194512421681997779648287642555827118158971614012585736254259210041518724609720396069138643898671655509374411689136208843520401142803454676293230481087214327022899419835232744382239362290686430235454908967113062441338833791288991901961979363751327801454365889881655527200426298908744311109738520179255394778122456469595167174228171197956646301298252540817885135216087430634166424577052705681745158966027355627387725788762242156212658406473332719472498686694044976520983757049695341091811569121059299694384216853191865608815582968186087926293373350987525816842006881375310256330167111688663372194773632286926676145937521108648183723206636349237568309144711192088081883173185096826155264100429973487439628324858862885827363489482655676261782518296667906804231841198952007792567163988561312600369298779561485000888023644381811699634608037432465218795742954684447271131430748871205389899338577054608583127515296833772806808466029929491160198817525653462479183551001783314259589868760635193970786904172365546916138405853851600032323997622771650069371089863345870694831634790126773424127162957718161350397356754774837151200620410427736933928269026613537625147823831780251350830306673536513969229050439047500155764094109832451052994044236037593725502787785237861129744697771771380477659430426342946113353769532322394525480160173268212917551708667271173972402048498370547360001712755987297960125421817505499911881294210688312745313759980017459770989686320373730149732107130937234890881107262405332091028619844314701717125942705914011657475190058507157792035379191995727513324633591656101563289828041190393295968154538418076387494934749949965025997804719309481697968346270111119874274127150815230298039584457099296660903657646554054451642334691204423886009552408284514840878499819683091770064760033714890910258044584808031334913889582522520133882446180398740970631895461737059933150501125166132898857188015305402431970416195477083928118497062543783303562518892857279346170716426875849916275930908179017586579251993916112101868458845820177833458628540347758239230543809835516534679826921522280512328580749274131315216376994345291869033153451076317082038211001741860857052204113472681203044451869427968273085454020468331918166198013977119850207429957504559631464095767438418332525628204706502485662792592014969685481955834130239764891003891142961293951464336844713416288551875273599087322577551192825760603027432848484253142143854258214188282708951920580095544211124756073086876246996983686694351611694494771211439474305388800006670453133846539251080785344201305292890813831674925361197261567313572124983981065257253101948390119398265478974117261046824492410761103695129318018915648718379514445663529725316498141937752385124728203932728396283609606181601361531483240008361892657800447534927750912926701265644337942706154909283099510866744101181044976376249937799246086368673013706951487375499759445141124295542520294769896319418325462726062388854115868435320277979340212436854531124103017832651298978250269353212072142236444764838478469780458164448824577990213623378721040852278575975898852032642816865251431549104906811683658907357653363783958448770075380927810891601736495460381121930671197311297365252325315209148056583762203930173457563530177997328306531392038387610831399501786135348371401327734156982418527219582192150604254100684837291538437555579406584820141443845079159094401405147961658921834113416636561478217070527124917586468657182183525571008810608119278973720829437529077134595335739774543478760733408528877464179670374632041281038723422139368695111215350712312378526802114179867132932430502912249629899625401913579360396536902253045743137613040014066472513527685909696494665018161017839998960336620113111970276550080449504739885801619905178454715806904393543587261077328765875541822178692913879894120805391661770907114350196089001574737527319504470817893331393274888163457311805632384496055215282078426676559028654392464520976239509941854812244323193945860447753498368459913132612271922180950215682720069944288214280209246924915473935020393660565608354488180953742807117976648423682289860410672984045544512182535895131772264109440849911868259367389295443772804149824820976420669088333981997866109341933574046706404844136904232121619613109644525172722672006703071890515068739449699863983821500162558194631412111230554862048834305301791773042557617999282611993869423075755532956840267755838659115387966289298525041362204142211286719847762280874955722019342859249459296597476973500740092904258569026448375960871396419689027204109285963004355741471559235686024373709282161335738266279980444588284048748482917823949454902283086664470122279214220704150204787767774163891421945296277304995126163820943729575599764841959441569292395934003746679207890923410607702908588177756964446192114636669058664306255374489779227730034628840846440670499949047825238668329509794965143646179457881088273891409159677872805710660312054696913380219473169834784966454472053881697914746568909654369756663484447892092095678805500274460654629498307603086946301900256269924384239865135104088772324013497161547164721540463709200661346666972460203774080901666817225049805976434121449514611641895009536263695123677768875394713353629917027154566854776981051152571082134747844210257237832820516128743161488328444826386368020793628791552950296016369251574268292565313343791217060786528868250587478743567820006005508531957563130051234953152589370210740945011083799469405845896778938966813181912002025702671703037784193519771985008513544811916848268468364807107452419679707702398560606935020949689678025248562955299080451522693770105037133446252736394902158172553114928297416560900137644263695524771380562882238283894417039056836285455957766227907982568014917703421813045570983129970840649724042147579028691083085263431109459064616212316840595892807479078339049050916799235967873147804513527206815196300665546332026086077106424278977858452435330312470748853363320219069640724776180758048434804295486372967709636416038983906681451903612269967266180751816294823944852963770796596023783731095465510794183363526375142039318753621221404908446319753284360169259168747067317883705232030799976888522000310199372402919042044973377275877541500766109771351487512768222465269509232003763757026536680447320069629949873284913460568148016689255155280583875126800957543171015296524036674729152167897276647626379351547193125061731336204668588035842178388760281133302875920640985089325660795488744336709306634970057054424488776862629158238274476233594100198597346516407035318048891874410322376124496387913012635432357397297455068799978672074894675947246035888289091768558420272206162677231469567516101691182938740519796172106666815921606104214296391796180177101388636120494203943761479425548402960919489107426943966130704833084089933878641169353690081700400514773813356734457617615401484392188183445675008396485192476266124123034144325926772208999060427622204675652668912538824356626490286952097620353331849295438435299277501844136918211134803730863507702302920768231733062802447559715642364730494972211472821477074545769104922759590926863225359940389994966790993431345129620601501239230174154111548457213578204356933973204769961425756236997850230304590074168000042102435284162477888990819104277755618130220492036685338863333465445641093222335955258817976395658349938129095266766050595560696059691293530551233985369414199107229842790958227801906758661141579343178411122533352478554291627955520077742214743985582697987802983767021631195696783109754556691305027020032779274957505728538934189253028128655552848486717714681902340127814443888017212291225995091675177239234232414061060567876805499389538821132158816305325300750263174927049652471710273554016187842394075679881569251820045508298996167469603135988641660786864988012980151013382821796166419735945854677519080862558056621125786922553801488897313253514627506867641307495771207246052426908622459040318637443652866432334882165946812351784458915000373909976335530734542488971405035176716808661888381411341961254872184123570346281796561725157225265742152449502437657841851748009352377305414560054937451882068994544190357682410511172993626724312591266915294527763654316305800847761911822924498659267473804733397208977471098737249820089634976101123584720966815363239964498389844516776416298891608334030521608612610743153543475322982150460343465303404537270097044280415933645237278404523985260170269206294460557460330885478165717835892348430620408667776932910085906222741025665746646865493357971582337130341998289193473527689279693229691616362781063748360660150526900798841718103044083037632644561285777069740757882819361197031053356765576217299392772605270346619913814069689513226601191417621397036478726555536681862294170394846768834547248513192498729606652464587317565340854277712590205572480001628537284682705956392395193260971527601114507902049065322987830003542757805531796062221220310771400501392127360261005412201508283880352673130273534770488461021622703054779343477227124022435601169441813453711212543595133199791008968725768903561195712971785216067678935915337736797505085638466126302639921257352421316631159211536370504262745768125258843399023327511992305490089255903422309133925507906935409959530903360006960067137686785010164696649853402441812680001946512004731098515705737436474511575799421299817155330916375091682157315074456955262323101207222300328820182033871013773811840398983454384473144354777022543570460466664790474650400111587203573110758815790928475183289030191089803286708500779894598411729569183726730099737127772803090851686567140944959951314455317478222370807977728105838012917199953255334658054638438639519724421381122271550082525034651209108480964231721474864623744017807294835637289095712052679768109950802617192409558295254289691127229800385589204812749748753581489734302030645962434210386096515699632406302879145203830450712341895161744965373601273022599227148097804635657705337841955619910011105323958239028350890218914890301418580609000064045893120534184287615388916408359547375274404440414056734325320299423469608423927838806571887765451067932758722422493902880890812881460560155078607568121869807889736647071047623865532537322321026928310791913744097789311183025278404383403574643528177080551827847969353142830608308450884187721239541882900718780937231741623844693070154712332506502905231984575958427247056331501577216588105431543700706990631220614620929246657735860834747221417664076606392579636881395169505273003168694418602555320689656677032618185758308715165438040262476176187699907459988007643843418490296675308415478614059231776606807431715159117885487508772528853327775974947975676341932244484931962724071703985451210385086075899484481486038730849170428068942476883406417905737547602041229273693840980439564006897389131090872317349831931732748174095077909161631784711713175494344424829768493150769903962790771031077351432266065585421488453509070726168496460902971000147402290406118239877152267113653759641274136666598872356758884093953639534047707375659601334033493964044544292931771398732222629384562068040692638279042257297274671077423841159487362078386765220666999737998889139093178330599119973724657677685955759120626124118288170700824172496611182766382721605159017143912316385003063719047828525344507856317032746081660227336891656447771674497020244702999953668224449632840998951526068547987524830769668459546961365914486168690915031329305970205845445636216812313874065604675136977183488739803703507210269319509451953924191614192976594000097754741905212257585568016386227593375097956619989476646233440300543360870994987549610037572882034873573975891139700483770013049434408069921292734068613018689782265683513641459543165349158243193976034011642237959771735966034495215499989989721511502858638506690852571610827406351392188623570583073896103562139842259409225705463702120776145644494981500879873848413388865317885651353849488768463009001607420841525514566269842986185400648710995732749213260241213563931951042731054954483060793129801537497680947022583373672997054743505563445173174285931076439590359462399504577219385201816816218581453296546654132324473355462619953734630031608169891202009471986324641759515841732489459953127356637309426396171913917623637145465886226815109625514641732175444440240459772313743523061089192234189630435336113161053966129373777550465759751696365803072170584795003608978096255249547155081290485957382871468589618386701531562055475340451512183604057783661936557342483819481146514810065797444048398988093019026640442323320348131294161523537555274600940312516263433782653050595102669099272855697942416288481495888358634153570748960526467875526539764101593412504345493129605387936993238737006447285756860434456062622873924736180284960741267200938819493181627465374204779062115372021823512369146336518675741614179703612166198926581791307278621276170605684810276668387447253969052787808731183292972513468005650570233060517489327210368017210502610713121032389360665700351232134545973479293356574980440885521947766697663239548634825952450566387061281660537852663243119738419187014979630135712886661364909926417554493316688644459556458999915737749336235447469828712008128599847572815913801028791348987887569224103232215642730686194258260264316146972920778243917807760472062455475989483421157890137852415703316346813232867044602570222568946739328336031807007917955480882474811686654433662598740575310126784753936181188496786211218324676224271384492072452817710457146000567303189044034433042864471988765436908761881859763349215461878442201319708121948896866996244174322742203755313835503865171235846172959385262461158434980746551483347804745253224438432467117685947720980517515858378202503648679361136934906952136901401270173262866775763247350477504403684347841182349846179946732424057987149608588309037904951235254890681086856469317218111028755978536866718819037371336148914373315876784351244884368916007025123077081043422486625528588865465321711628122494232726772196326428086135156914793692482308823706835724876988791795107085741951334806172361916632005105861612700685377651203805419711247334000078316121013114986699955521742990587217580882548518030953379663699281295927809595527061316741965987724678695295005654597342749660770254267214954089817941236897941035829608813138173890763317085276281227569352663752018015487474076939105163871900623251034521283056194143898131860267010565994669641224407563962685415535919845791939188130986946507016277857489756547327689783930728611323632865802754081786453111341049158324383896076781667014840507753734989503763393138351940583918802987130565378355283093531572921363833477460957925759914325752974114315500729966332511289878691398599955247219565645520527670669147594922133674949276064835555704046819111349957244710534111497897618123979675222717905907980555328662754958942869010220058204148726184373699679151576102440811539084093931716333637802174462200188984315088623829583283169002990462647988484219904393585056637739275650482913063498313287919259027860162541425751137832711505373705862175731645018296866988988063916845648465778803389914645213902739494385064954846674371776490672900163053177856864921158499028007240204851997412606655286199558770270014342339309857873346418686193473099723078742473013024997235485675415528344071275883035381769725497323772528574757610962290138750329806000575176394973228356157055017863389397819463115480052350179535112442104016730787985991107177547644461899792432682838339829544459547707981807487528483537426940176593700696004917299446643705160194939481582266299018402457034423970285167649938578093634439272066423778488546142423476401381705114335125632746340749001865937164474320781907333823569092357236434031246241558948396420662523390363718452731501047069870837091218417206810054912687714888634409250625086202377568924897885705374593995597222762191766203897441281078392262125346862958641339362984141121220470915616738515068840407200861879958699980022426784806866742974519372472438387149028113163030244689370073713363166263807125809588927437692416816763415072423135798466703254339739234259112264232880130420381158901625352978518825933214210875617781087681139818141059358793891203506370521822747130329171068850402557024963017422182947055712592505993631782987862079369591998553784062039775596690988681641961197216363979911023258513112612031805934064375175821293518012750818388661440783903966687782213987348440813868123772783126564986820425306047162104653846502836596592511901917787708159875247647983210876172955249683454138910348250172290021652904375114852748202064623705888814363763662275832262326500845897145546248246250190603551148531422997868199369556834100051935267451219087423304309464480173185647022609456636741198086429452038118134141495022846971416051119026160809718430593666370320843578726717030314662528362324846046837441253053878997975822701525669976573027375536335308565123590316261353508956942802640301781762857220922694719212790908612971363411011968637282177904618528429471977487325090471326638564409820534768749561886668083563554371452350914475115566823025035267775159693160122464667327560956249658117294964820418144939528811311915814811338353288862020644598154417034894767981783025059537610189265000026225416874798452785931663126825765230643317583960059042224880350218008823977490198114817270776383216232996320272695249088535831425127636560510035022291409147059700096351430803437664797741126098614879546229448316997766983323768318389934853993772737033447989896918207524148934046426370466831049446481961917045100887856393398503660053398310012704439761273027451986924144460315577660547164376746612989801371643793603019362967423574639646363571830711247320866045785750433739381175527126560365650823806232787515089227000471433272178946838562564676250700124125952967995837467298510856249334857040592811991868034025123920430298265811573188363533516138472471109438526467432973670487145716372497106193871345129527800603032043397879521128762237911078020240853114993962120560866648962947519373648129316618800140216228382231124450106027941187686854660940189585771713754365960327261021540762812278875702686050982163444887614637095343373441769678574859642542658299486571493708349711213569487603779613180982048986011749778581910674628902772259657689896010807602670909464631487548383023910118305445279331961679721712104659954074840201943039367812586029996436283526775300646047799363236389079627377414681615237378782167391439599279442264621729057585521500285439895433064774500756476080261131755824537122269590814414370268553419237176795697529185811974574955324918814336572941158331645023400386357402343949944072719921238346862904656099225196077124911587552616081838218472403696590992685887607152416323507248761847172854986227169306701035229480086455283931503556535242418974060345684766186186840542711993715633682469675622131483597719767282702602259235303783167467282251055777409759540119222896964498656884499285684568805926216247174687059385462662121125775579747351520031019182232971314494261552046533902711867953078848636602269786320530259718255908703889787942897689069910231653342404533294870744824120681467363927041007957408164086115704906447565181010994420488930445781733771978961121109086224232921762014857977908840886839361648471983997179197231101203008914672891323887053877309134354824521950932397018604298904136017486901207577538093820328365939207188018544331842814075088457919446772803346055365457901631433046812908669429336341389140181686588537922585934617209859202495828462748361312537695200717146071592690635308761565552724727868094165156869410848404107856634046437472383149424056224914001629730036146113172387102646277377059428215935089200739515392913946267672811788095165883686027355231617921109401139203056093558735804717687559067967800085479024983406835838495989113453763150187228392007286149257465834305631217299477439778306184360125091044987527582338653956604252323491649821714949637939903420464531590586086686391400922313091514158712882366037712350513884728029955303262181061453233733011260789485205483983083314399012347050784484358833955871366037984723978554023610555650472874091481314449269534025840067617289030174057854582903894065605347459374799814928194334985784508117777418657333157957022889391754609341340916879675284833564837454846496047296203195081099313129470499823744836426549402639310751555341553237672266124118778534933751263686524523225898124564381705970413058691416426416615669341729037400280941131821027655516213305902564723190205534594732815812582456037861406421484059693708912700395232934630209465846024858876770949499002207955221347438997220540226073835978240364787609545512229977368271348154752441378477042355795197347279026231505896229002918378859741216896959578956409600387721125231279320072682907384720345533988088274058733975011220640452877592431875156970364495851024206252778606288537329663150536276419078042846824105918585858924755749092393208143068879330593038823151354047649717202033999292909978443983108248212893525113426822535774228082191201590229384388604916027084419614965368453984259166053833905033768481107372038399975861439424637169803747988068140826853794690914314600013737207930083283137947062271007134492683514311258951038305898056633163558430008556960870280322429208178441481048843944829748593668819334968427414760600577189129440517456642918705331590985435419868498610136625448629240577244808025183433069382675658723111788165655363307083162721239891870293106824191383766012480314015665844300877600790747700405353646128622684568415076973072016624657275738415705964637708795516339413813638047829946267742202102032982739005371494844640210958838534534602124865583058034460932948219280090885123696605895287462828401951357165295814717762753191797728737715174875596677726285242394144518110639407798967108536055481556920806184102186363560990238583933517492489769290052106352206448503598876128538149733879730513959652321694053565597252412815966218005946668865510464731200847303166128500285136773935973179047141342135945264914502358798051381653568703117081098617963537360702561395064455970802772566233310594811133164566746337200629860457385900387226769047032624565695576655184264334835827146957914326488419500847889463707348164633147121589775793631459050727449819523325240030102414645439631013435790213016987881909202690065210976173031562708841651474634927006680116341118205456607847974257592049029555178313364799650297377064073915480060489147013388640277077966648781993490195202128989573357567434832587008997386530503043005255037424114633862304454308095999626623026896311438735158967834012042125916598089944688806527291644794674743987247694024966795198406003578693049847784151488050345997691346461045077759070176357647691031141402057311411601052266358848901094312481403613445169047310947631821139789832960507236122507894675182141626483522498907684380369906927804881677271826234035357313851540700011531752897339958643317972391292420887530202686063167763258268492926591000410249304347493877715107362464037104564524836957826857454441459685444100957174930746542542929298933577179588245549620985724333713401335453463405208096279492162981229486587195396805595583919343349584526317102597175622875820487414756206206934493384167975887576433446974312792941789155768084665971058034208764163288545378908174227445226041549990240834730749825331312478176491011885686332600873790249900731442891677242979611349216882685908506138202131419822203243261816471979571166462736479803266612547718251612679721813766363457604562635512295156409348651672186915456107151555249302517493229141263455691731407411177694704246653508031509902694638248028798236980263802953334127783417471440666225974263238521378047533167621614518274491905197900391238930714330195224307849822592979576841877025092867703516781296131980039725073630213653103280707170159517768565224821273917781936858972388429983779582618716342772608225961521069903539411474735036060997264690201929918886492087376414457948205642567469673274618083761516994085420985324177478294809097865450279903902222801896165150722789921861730627268834312523992506749531751914679387404221003053419603230967003956663446506088030706736319018397410399347349107365781740439628782984922082701183332991844200507267304715412777777894424402913992065678869807348941578488638483343514253341412379634674015051487733190870337651564946880449303000383244923175057849111271270458188833789517726995827619649763452650739145918030125494045982360287535525552959829219306147867648584660386015764725520045824278704234607305650838198478224064550041344871133498947976196623639042183058177781569267693631725687624962644984610620798612719580541130223477224449690937534698695259107206732230261246753600737025388924390993241913086918216945969791645569563307323008788873595930773696751512749827317831087158575812702877377579558202381229742696349694913487351186748292996683921546046712108403159260286118802795243085389766580642851065294082300691360861732686838516285695417272573073401426902528454398909811950159191777508245363415305174955085292371465425519363819298448054659417225535951934481189234185958790763577204520528070274812652130375915977624358127927060599581410320468592223332755022740740760329974585048134000155760263841584632318039762572723102691844843265550374007129307627367480620664201030021536660056477677523237962446998265910183012122471734991960764002018482277604869190355511347689643241294780723240425812102052890518648533631136313492245199331043389637439397667318057800825426935010938596817231153979869031536097224502647216546708655585521204006018812547087960006391520519034627630789208453943385541730048616696224445293191788830868656417397217054685530954512871280686641223582507993069228465054419350488798884266513911461610564079560437485393029257555847610183274842232989397508562874249219448335119220893246423976451682683105635455725791978252027648608058726586388193512380684230666047196453966937398096014142440790241723123222308418566014300799279296326702710322622404698060056654744970969710632658622712934799833788986046751338726213695559566285740210140236151686717258443174887434922759659006883106985874203940121301161797086821251958592123339033992919760615068995358576922742927132424917430828001926931861299764575869460445004277275127346307939222064101413101404479736133959632372636806956485177573825161413823759553806657593753513675625931670797865569082009952665532548875116425671722270574573845555118892617900148172766531713485440395299900720292278743403455394684993666401908810779121372382579282787370676459527483869027362655374888250074559639500403101741292939643986193894701004442951823036548489804099540258143662927128229985604890154345870597456361592484016615466641432698544394846846732421411925137994991340816989897365557454813839847885554680588770527154325366981371261349305262808204900117939908202934339668614290107958369962070463438051972831041348118399877159826759499243351324480524877958672262507428304526931005410015562578645634818106084201054324104903051057992095063611678024571479113476908929241639195211297658036734246236116423756705494189538531844816899799549889206720612905981755823530883978760018661044049900057076396698177827577084616304306454311794692835999809007845962478983597841947483714376974876535393506949216385671826316510700970840510735674769407666705983255823603087275898944265562083177472199235990466209056493445205961804913373419702588394205154130533638473406379375348420085215231151225102381781786124691005456580378801797112076427113315788464831929106071671582581323846414661826375143122053817251381651437823129785896809448164390699071048361541643234582428627282004127515926524934237931270340584344405435068395638275677448492156757941148110855708292721708660169044874177238017554452921184001531421161957840638209897733856537189678562287371874619201966882174656489720837555512142136468452420389577472738942967095129417257180930317221814925337849568250097966564783014749893960177854951637260065329421191563108046214660159638921067536105360250802217293714932321090495320004610896700859365898148695185327437581221566367145344549834167933081278197189156508967710815985482090730093971739536849323142095735256638381543444656055410090799419882230095756823657174613666523447855450546016968634420268994506058366415095827523769965726137669370432476485559782046007138591324521495020284312264350179050622909071803480352094165335133290693789332071381356616529993650099670483843574974127841647400773267158273178989344342608444548649359272662704944076895345415190655230784455191360796744379791426798483527559974722637668140429243227218768279117828576336310974148335617844455557665462023907896295198068538049211874153375698805477531681431592541808149466496397937623656123904585268361087002536521693972183551309212698728877742484236357853241708916068268331713424316577894906045751691985154670681460325001346121121726546132575231988122015404852587788488454476835385427857349765432216415539608991603941022997303379530561447060847610414797969428283064772887032263312824886795853319666243499736901870272394862034951217169617669764559226726404997743498003408815673359207300053771648656730989571168261776365410609113150219220573924856551287056110217893383915162293051345761797212408683898354981447801780006738642857845618102834233176289011517867693928433407431114618683701231877343604493711553400147100498807113565537094343215898436335139854651489152576829679649728293847684227011218576945229074875627704202855518374701534293106449570092324803678033401001692907949315711390272125643016111284779381318953701980027105467629827069194499295134785716394385832059699733484115110103841679584970772229860771861824416022014985305678749866780053614505351242047584609090926744273094700535782727275636150717125200834441912166488722335029154924175811120588324541904231038858495460790203442958935212229877620593897132446588241171149977479678108578205973411202296923336918050476894531272675378676560259207815112255313909853123777532861069310735798620994757969091571396305162679510764158434914793471307728980337195916174853849187239333388193392640648318938146937689789564750682382578951942155456257572390144516773737247103064349883030326100686916835776106101259592255716574066836832471761960503960910240728757552107467932992747347446120403070670479523529549457527744251687241665076730183535194835220680043299211365548354461713790625207565556976240310507371702840719479082652550048937511971827423876066366534969053947582980464492498216242462959821785169744434527832937807918932781563953102195883783467715081832582258139952207501993775379938859238307765207093609454785730967289916649594082768424285209781543122162722423066031847902580782052248765096130014993518505260540415613370651646793748185598995727153393574266905734384693755183592767946960939979772558054976462822565063072807344710154647385912797203657429892271268349736009591511233031406747458225752530499767368439512406513787186825034607809723174194496130284864789644937111465006635303417086864017110261632001497384038662398863106177875871794682302676018940720233357550073075516861404324873362728493528301918559832953116393388054795648768001033325542109135835729847099695077584322335622277870093409119077643394275549479158053325439397318531233282177698054220177375656814841742347956853387898222523965630952066088186136663349969293601014712103096949224654081474171761090104023558528517988012983275254745754368255878672981776088764847767557107556772112160359697968671527066971784668226938947466532350440403112672532483535677103257096304952917528960463191329974606866299089024630641243778177914131289229600902162245370033253700434509559491397400189070367875322045034466193647946963624763112404827425431913550558729483124738398518085042801935572338730337187384342023615708617339712759909736664620772438382493571437677351668229908473941050306919120502039973364164179879230077779739335303680618149395730367541040873461849779564386543015117419555604465967235167328403340175153630908357701492060760465526492628519439433886001366925873519331524720568459058155427502050489998573747928880047536098295566024936320177118061998025161766153751693705213459946688412194445822267420005073282118015503915381442429497162609623465563428533267488145001233338665586792920950903758492161410883586949431768912763597929528063553433697068993249688409245628016364947811788100744896943991352910886054403527463362304406213236339612222129772024964077966199825620086649668393006668068787500738832363589129428022938804103195192843981394983539537110729193530624137204378070021386979721358590710916245122484232815279541222590370890909047785766888093895180444315579357075488045201527390207783246733584358771880931737240687958681805787513129968837283770387189113608258042128693266566417882611813223776697936340946676470775432056997782819942102095533669963750800154861479407609808753611349626145392273886683106866043430192333021264446352831221865530349659946546496765521869932844205498322210409974458496659907442795266878799005183964954033273338244783280597437026779445431499063375957376240952977951299440972633909067074429069525537921904139292446083317826054168237783189724906639145127226811866566234434188231225995516567065667865820958846307317762439488490933583613582723598608331766863685891813515923729379737817381015528162440196732789280648683698506790210368404143972053900100010590255782376487243867652487581196947016915283871932420871842534761584162624234280711702579973498846454681062124847223419491778883412817570107012496721449500709839587800561990307471554187632339282641882412179998996216563518635889424965609941167856156482351966480797862287978455804144437536348975804411208082952302655180868737069022542005685910373754970814998875392989495961641836591704454340172434133759577931741937724181553947846201551359001766062574254762591034366482794640610253348609436724648388616069724054481725825111067578171465816289956593060797726227633133975418134967948879585200974697878545563678189687605917664381605524945034227038870158795760912627699759153327097011355615804321596012135642663811796142989549548033560566896645893157515870885516353509317610252489573923813860357026702103605512365457649903318495091692912432864363280332451095376309955741130779881756725259747833642856341832254221136055736639977752779483572423746295832883488235760018272755341800488458431905361169036159032871104015047248376426218985706665523848790004990172941116812763532236836772991346820713850878233828105722334773695251507604259218998886700319273431819649481507182307861748675999883651555530535357928480570409029643613856138982563100815669120729003700448613237647358162313331452472689201240205158857878117589197882931559524935560915132841641217440493391094806198035920593639347817195900201540289539964021254676587396161450969703039252416892551573147948857127511995634770969878761976251082708991545271900664733909749072793045797983261966233516174598934210051856018168764519307773995363686561093703811340683862177219313159813506517365028295962820463945918142045511656747546761662110361107487195989744537264462447142074008532031893767129233083554272998879946171476039989698151738028130947757300530863025222519321884290885123961689529927650355905549198166939791882825583742017358793619275075255293484159698568549364417041261763003938719734723920352626708055181551825783035177823148055599012803617438649627771095170098934717275987182456743855784279010687508821075764033874388059172473285778508978719432197860290475954093287349403900461672729789780105542684582120687435032044533883608180552767464628911813083282726572791220561877376985774832843924328869136638503811342149639090385172275190985697494793770697733990390701304827548966989011633170661231870400602540124381824175768414761326086280812846893914230177433043434996863242420228342304745353394321113007506920942018667815283622733725835337742753566133835033027266574231333198057480709620696363831995121586771671737960362161621748645145669031105992435492156713437770768691704379366302944265653614668085729105676760877364717878610849396648152628375384749697012581495979385819604632359617739029995490912909223691855235331795939783556008205226681457119286589543481489713741748811864495706535016249922495489151949852815486847149809958823541224603350672923732120123212956475854739081062392612945547983088257655768831294645031524973257647188294781293664923831792581986705124899346537032847060000333240571258678907750623809273117610319169938441078807204032915958927045934184360847673205545058531224816049651878074161477277144973051337913057267436046510144381382493365767834057735444476119561939799334363135617790102671356089537105603487312435550001322407923893058693656881423189850247105179129729218622120009157145107637974570723555625329628794895978267004985901024980164070334451089802249109628927404263501691457051106246957602005233256134840837865308315361782562900571191476844124785981591458073534594632095476981682828749936082299672033106803448397434470113280739560632136644404869801150318864662301676787956857812707436030487348960189802174264213912815909430886009717562285979811747091909186527787398098421166255393932744777716351322503081446964566626741853032665965682750342693214284319285739696584959965103625047889664997189523473376492137758518118922871603855619754404817978022290215016047175031962808483750560796275568288376899493152389210043103192380232191227687288501643593892830181467107624980207436502581113214236157689838170850663075296121846661525994087922020994601750521548773890790404523110914409890834113896218136284371352870537088200503823924597330593828634733708785123877354681048709102865715027683724653470421895666639797677882562529196394108765512922883517803834791986571014116719417274063678967283062905173121215007816118678678287162297805718544797560902656345844304072630730216768874903431352237598394959245755837866159632292975442684232131735314292872856688678489249715397998533313304694818874195949754291387321637333858938337849660937974814445005520055920030728034006638388421716873121056211424755655069411582282408424546388428670051990006983677529354909865780084453732010287263836351636666084275083703453919676279975930746623638153615329930126793568191497305683759697112130140914078547424328441950543054459490926709274868491416155144591701651936011116556581019848450404986493745936755875636747400649536931769956813384649646810634294490595054497620012285414941829902350402413433435239680048337022624913396494310416186738562302878876707667675926072812646816446363016863327768117380639964738833962505467554667463533103127333158188203873890672514395937463365510945757301119819769661751542589242763966271631406856422130542114435443385601753951752357931571268216613017733516307174871243287339963679277084552987261946546458580116085217139204491848945523559685242110261340121215960386305174790118875228794635521634671975997279263445308877835647675912660895642219374294260208092227458187718702089144787616202334822522448288072422348325051961909134558391307309467623767301662650622086121837921928218724071661841832427540849114464737462027711164946764478076104426976667552951709452264986470496323858964646879588803227135595707457518457432350152399920812556086273158786089748498173186615921866775183039396804822891495789802136684604405687121015081352387558978525102051832293163292483301267911605285317380592487755331902783717517977304840965954522381165845340007374183981479029206482410364181523348126262297840044874459844220049149974812186209395359962276753096330776358068828493411925402189951020471898200379392574155633885449613839929328883489664082445447707899533302313612339861136587270742821277928930938821958964820099199789472141704161690391429957240234161156164711993079423596010009229806320550926896427735401963534520509933290374444329525690157320170210352236679301951758212054661656912908109814090561344184918313544051013322931680823924526088415399368126164594782381427085645300228873329769426888309602938728146300706481355406533537688731198734217675851448268889681673733160164926000447738380412054260708176815889413457316587462435207612432945391997645822303215331553179914993082202001061947793875982691360850392102801169793269389634504321553442222040759386528768898587572548507958420699247441591513712211597545889814324324245627344144570010860524471641245036096412048396950324122476411361385181191039091798325984274593628473112003810278203092719116130387704614695495822314786699597996049385996295174392116212677903150638212153756131487976632448885495529588572922275251008478898224301831641302474781115763882082119486555888273132847771192460492083474626045418141947214709269663447843842445879437128197190209022242334995318137784123336306622693239791584143279236676816051245121417280154071737547642266358248757750823687095642002553427191049587638667396382273565664771139322206265570937115042496284960277361321032782335092735220205858817023745262093836986742227394375663612934402726738503356303498243611248629053392820668573479058441411524101643286734272204087506009425766838895100196881636080576385284870091103273791858336655741613647851968751393804036885207913597433312742799150603837809434360074518916128490373493471792564726045878421665793530939485951540997154322426837505247007748932667816831386936365283040620451539780828467406806669215032883246751028027244441094320792816764886590159567511140581321415278575195496046620208243604905262021135946152625958793558109991966473913534061994640350210801577001841329290177442685091563410795765708636106061360516316042654383301233168469422611960445172185583091012662742858711517374903867088183153368668718997503710090539958772922230589961216777644816736492291313106161813623608090060214106332481703106068038954687516039549638004241511443235284452744782423844081497462372583786878566866250516765668047429872862693085350009046167352227946328532448281385482525687444796406541002263176306096506349952231347791599788296187399142112400524622841578775609848302726202559069240011293804224575409831387482834398021500796441443421361305213406733215443702366459802689868335456803057974090325450966507420297029437390101778782153990725296760110647651086452042805844016835273325197608398938343119650781551523928788208089797828678803067376965750395608985783914091169269978478219340586011110899601355755350018593548367486576555972634538952077901649689085866704902983308054562254615594988077417174447383129070972500879975539549039278601173000373857096350067655832026823396797730321990032455449317044626295737870244647594827737502740951769160686917290244623872122512442748440837666045774963865234395179751370672572084242383150413933026664653290527855765512332751199309213493061636400706814879566201509691120978272152141027877018772647262412552355108288672485388649435604379625904472544764532178926846814438672264744762893726544611551836771097557800480850391260187449425692892742518144624847925977111951788750371361224709687573054174666889056546854011931524539922149453672370024214240160177045537743883831518568004692031969195209154205814378822585971152944695787543040871912025867303028091789689546025674063933967263733551008931390659232566225815751152763274683664475980268839100981322456219581204853971298837431480648502593749204244512143433267998295528040473976410989549948504049530620038983261111484263692790721840465710106305119442923253291567739226038132612249981965706078201507343778664653855667026084523545630705924126200998092102757546934739386377472181877944423516519390746943592753086583286301979468716690719740280307725291612724446508269790450577579700937212391898998300149996559493746312045205770338368695854318504067806465216922499817505091920048613187436055895218722749302220962709024597634071779548183353712145718219506589670881341626669421729620650541588093259541227034614683036329012730040107201679432162388190423485861667361379532177118638064537466418620442361215394470777213576696924164662055892441642133774231727931823034862746813098670512294919793724174724559977313387749842359068277680660730221111213313310902975677874921119426582460527973440471450415439127720758002776822986578552135274814501676680018420863271330845024584055058177920591632161491809685071212501220901133393851384380765137048572021297413485598829658979097652104824890049140880233080559875183769145181617847665917596467440258830341878804934033550966584044269512579568265086345233449660587639529447720081766270676673819934827388605159552434150099333731057222135034517436588052435166834356558179940482974040465388757866416240709844049470236907291987786471488535826727980344494874380824845583296282878394052765703567967699044387726679388780420622529387154590854116130361339571855277310543550929973439070843683830561702507767286035780909697830820494405400523813711989904660292893978959377233283963649078759168085654858482002609664157186592325289104235889916440978916614490820288509675298148874772668344311551330387291844473594355570447071885916914718552325507095967133849054783931693353541165489209048281145722167180427013621556602214870228286211183544968973846098697093993030009336578918697023492043900662407664168824999235818529387872372843205989154407875764469867474991352418563564771567221721552660085609155499661651624385704717967669687475560650017934879408347846865743352844660136931851687405698138989930826116319363578042806648099658700852258886570977675241181575161224359921329174012985661120731453668508570878507329778459118378677520428667013443179593083695009719719753775712672437105109131887545603637447783423593358408588283813745527847554323807510688197862419539719135082248542911615856091559235078821351167512603180690323771315440447457225448208467938967770370535353851048595871058107910219492242255038741994709877597943490409596236222414721547247024978189964251278595610836689877439996954355997271559201535428393809221927538444050055797555839766434937274787680740494420131696416660701500338373510169040860274837226563975285040616095137599478892895995260767760788901909840277747483980805062147155443097004742060235962100152099746447751040211232773639590399588757609170585428017648669244227385250467350414519948254225632290283433087136881269778049554442191780441423397382286803099892894418424244693551304905736267740923828380134701454014677517410496927597287920648167942324531736818818077675696041720123248103927300657300439612677760157139565809394345277308016507196227847646699216884881175835430057693951039908655677866006823128403804560866771504048865464957494804877106457818439119640939736464266565920426229603299432806664818176227511958334992921066561652649942593463037924207526314626639251601339600909124483561151999680153943562338040479591540713825782858558475586817388908481560800725027523119740109568032676897496678554352602691628014248807999240952321727559835014506261677048985881092593645754022082179713220636249512456428056057924597439506010349097742584426591932385612662714278041090359045796974102815362218780690391708809324225629339139280584777670304935720782195853510141054033603321105460234349282123244011691407559369843983026535189321184402789670028654185826455829276105163410016350957266967371494711797641433250846350563218619236859436242576464111253272993965988257684450343048293292770588351472116690145708686045150659359374669420701937411245438513378176285394973692015350181809596135728096506774650828649183596796238790669968314431337330557707423673417201163300914989783319915771668184528261698033270669683908577869075946960176472686900986921647853608736434607875287292535065003552928956508581207142672078678411879444685438980064337017789288980318166679359712984705937972405041187886428043725941023115877073864553529544268710107611719972558687015906352548716867869565415532667123239341974204973208579469598532252675092808757816864492771324455716509749741107605172614568712837403881785410564175434658149624867553156880971108826577519639479104543483646749708390139486013539473043524077558669022949001176443339464140438635617614057640491772228652373221307160568719311062511416091304566100289937373221607270747673059797717316538368180929370572755417668187208672625203504045496607605697329532399986830904467617512957621868212992054334102211195764035464862139286274791144605954637734496869097321492560008539565078698982244923419208651321523060480759186980372197970158586117239420084615593358895825490086250662342896458651816492152419319829786490445987964560537301446274673490050361144177822524005058326344407386499648198254331361560584303161669115546446932117511041269670052683081111660459921174048701237108493057012693790162069043959647595200423758833611411885247363508603867689431402131019533741003467563495966045788765855997330175598313364392984511556675671218001923389598391091673501676348470596898937923880308059654316868773964515242418088087597373217127110526840758005088797151837736129083742390230558109122342786440865447727028482581930356899577374662291726951574665446545093475521595160777838866816938035679622571151871434619408375539900477825156148127845371815876433253361416730110981567317146383108285355555197812034692199284314734263406765117194932192198375892286954270601654576505744623876551937636904847374159107560458981984000063592232793906354345084297710392569609905671906002519951846828681700054090887416998009789774927243586459591149202924985079118410967024329398353352593689975075175305119871160528719924268280611441829755741671846714849722295884654383498074905001982575144640096611379098113699995232075464180191246942199342313110868690302977204732185634249759447644323702460086515647842921363937441553095433168951262916187031361878801195802490684044175349925106579620606213587931067255990586344222853414673716583328023889765375169528240619631645729742510147725969621003370391789604311829738456216477377144188667935567005837739866169870989958623103858031638844637695842322874546166089453868564680439039713369190850095937203796519366763267256356761942677006970835724302829471165540716773793659276915901460118346794344161699696980352430148064284296095368394592010111353292969968329492382235989130107756909857419850185233322008625512207806725394514101565098061170352149505752025570838946051173712182527670142517730963091204416806364125970776119939203913459494606395417406036058040850606888210393970482106143751033882585971138186492304508218770002317816520138896431552836083116379618036186136689671530575782129877773435447129078743359160809073157146990783545243008672391523820765922953792190287428589783572615278161826337338076932026029222613690882078386945933343297370101129794853717660438784825901558633213102522879697185813196990761317386372567525843667041650353908533034219569778238738206514677711862417904367612316755150384164603019896238985056527080805970192434772432891721316721503373036244796619536235235930818676101971162837219279961593161600658009601134832841987129299942332217775713257533849174528544998980484763254682918920913679938137745074375721172953753092994624173002679988863753475112833417887824764110083445802931227233275131983825457174901245354926149140436364385903622761879868098092699379438728262284994378860971967129138558934497510969508226670428419465902926084613494518885932263943742739151858582048673866292887417004574713048083474990441802576831327270063345807139289593032488073381849915620139688927295896863435139603088271401382154954264164548110338889286268061336475405749585314077560902974856062300145188481756094019668323578214839753138994035392316062640005383081617864137186609804157769840155233226690436391237970648975230702698066713324660458575565978962521019750749651088153569297692442070866925230361142042605973709000756520132312504554433624267970176447458771110079376464333380902007152340577976200248082929765080127195793680659705127966084743281746533684494830318685777412905003854759220627673724765271171543178933096229040336244026796534888946123192205833842725344292814508933408417339311404807032272707693924310344658446444978781678982143903717135684161726317578044389744305202472436126183120749984139004612872823191145413248297034309726250092782206667839608102746404440332067119162315339624862180112815208362464163740259520981612173125878902455051110955046467899085605566120442811722741530021502140414030063899079472301045730064479868507870832754521050899920634448151671892848002635464075343157361295177650243648085977402551523048332131077613376634180857383200593961045168703694745685296199056429319783028143429634019212121418440494551038579352650862451246226518119968286293044249163347052223412693749139003786975022983638896288980787332103489927062737095096120959157713721262221180526634005259019077922970628842342481071693264147981179365908108882851068867340661246452463270263886395518676605312782761744316557768027463304605643082938801292693126039086608948544087607039571382554992119063164464674133429779029990922190768376096876332126389752971033965214087818674339838767441711243093945570330199925444259975822670069615418162744462940218389802806664420904292442309200179175653051297127585989129281118806016667545058726452818438483070869699864332131882799477269273107857093021346469781199662927164539266713916147170849974835491153274361333485218530986600035137806658281915028699844301888309217547608288021784236683909982749909352366192086988296999937773555546838380422797120481852604946049258252040182346502568090194027621050926336510882816436680575663616627974058467488492045999872435297365882860730830132827978495358150012732188435662951249059696700071988705589275176843968458212420650160991328890965329956516354639039202343579280276387593954202378680721835579129750326090346440089308638126225159500988348160881168599576733795661443535632123695659831616161759091287746542499276420135236847986675703152504917454673003960073227491380627504918781038352978373783930040470448279252579492622218807747308845612826834889339138132298513616649032494707017542095941480415644027615692687894588096630665248646865991016813455163881564041789486145184212182403783062494655242037900119228416332596610639939879010949619776310163937180393131780879083964147384347694795001449662031769096550611339473217630253315694784422984028049934688802944799774375723641902762771550564336252479717181609047368801681331972508970820366874173965497728239428315235852541993354194726079915620770678546129757005662935988666429879883973537903772399715560231869567189684129802649782062129648531640634393276269042905161685369833733099355088148496366382770334894779589719993770441888502414601897613586532292455224561776818059528875207321001248023352516867726016997949294936696351485009549184867994467992268777865793017131005091926172781729090119644430714226408291735981005554076620839491208087148216780159486283118418981269668356928473790384263679810409408737339801165467034948396566581583468813261667928797930135807563941183975277025205276305515327496121949804189629069661982825224042600432220710429678303378596067459778976545786059534273476075506170626857005801071653199600813933174552068212873493681483613696418821618591955855392090791960777287157773870501928331245758377287771287057241842527608998822377997427561536353013302867911606776095257709236515279584826896616957133784136539522139804283491352428075109789927026923077068273828389346066496800668328391399510752402787251831780409838154977777209425790093809228502881028024712142357750537898717065632378598861488713197589935973645438361345400102315076303282920993894065316335420256104073746573515183438665924028263384352695437224441202103626918176638733451621313439766670561686658792428726737146548779951349415461563002136058378476292770201508895081181356746536726712016504207560776822893854817773738062587168560080337844474940391274877623543610684184425814239169397795476383494860668874604534518787051983352482208163343392825969111199555020936653068933382783568866664323213846434357729653603564068667199622968042436773066246772640474636695133758312976873732743757587100274959972352444840449594449275090133840424907378442305923428371915387800196589877011535426175937267530751272301831401098513298632529701357050788734963630813612455841328960651777317505142179044287721218121567841366382971870803318714003245730100249085413754261619055799179398083278550863879639372319307837753892929974935216841180651044037916195706436109760733856182975144097868668816473681115209761284048819646057786365815753804233078222489417531352374484676228171557698319507533261904798611451797066845825467087690991317689014430493710457344302479488297488762851086246883268403270596159985630343856535569009962390737875112252315989110995351765897096571105982530665229691886860501233773175605705851947052754289848306047373931267106715738761939718322041959454519858217150232980271827089333853467352168380861246673674652301816414644269552664177632352020412155646275292491562773648502111656053516556140044803493719793440285571503034423769474890976840307749303741265241340651905181378216228163536850069053563966695530416799348279243215609458626735457829487671694251318697179859875672545340330048971418864746038185822413873316462029551475729583189505800897232731288099252263211119856352447290050257243652354707471892062113925883396489634840534429022839520737754953813022050386647383468735898664223090968476758901954517698392360173439868864404090107875083963546683202811951726794643935054215069555705039467245963453532750605306354845270846015806385563287900676086120773714147947677297611599829314332022202484579247319261593583540306952647854882208862772060846184409708737828181912795019265598620113246572020421266788507754963412856242880064514307428128185386503516062828820518977603632015534300055754696752723250190264735950238734977409755390615269833714943299963895988273811782902641259163078759047846021808793848593510717882121234072538391536657836945571443032029244406677730138095104911042853909834306387896022941170882930097803435223348803285752902320691588926052245055463211517795643942207444099686930101401011538759527617330981164276277129520018743084866359952925807231504648042899641412982132208701951814239142047209414943789937520595550957297172202168632163491520196820457953537476792795330778349168079661888203644984784033117184523720167335567687807209643490231153992871842380500530734827397043983969349789606138407985484685752321983696835426909873921857064776458555148835890670609910825572566680304140703640356935641748204661688148754407756353391824160415496189429567304786341610828026123969713049488031028341095246456153209401595950573049976614248844196967948885525826235900698294647783569453061930676715168382496627679091620848503294436250950269109039041237296896006241642516919414092397436922599376330002403867658371729783994336756526590616544301534399542126727222216501722105053598563258240266075299646189317362029135777613302298225111753532424657470068711927423450000623948009323684337419302618809326611719714165166659985997973649607727877767112553694038053249932076335616007471634511598114974775762008777781290726278381667379000295886645982743737216627815974430734070029151354909198113472808434807859064417065926065180755365127194152732932373602259442670229234209964014906988383281559717431448269831303918295985669944866626251907433837461036172563038585077661440077943524226017643325774355740384394022777477828711107618681753634361029958364306574952908611177958612744733701840101600557258918778208063268935518023821519901741456422792160741877319740637304767298804579201707695411856311999824522573033515651231891619458799129087286519333583078322197165613793385456073832145957680371516218127211489766553946475971064022704025422899141172961016410567745736827667382950674019946784332061035213301409988270471557015491323402328099474282214552011841314047719163115794804697881596169958100997642181609847078658244053099035174196748415158436441555187718229503864020182329848873844390183300507466957722648184590307426951529945367992766639597743332444929855789502676825594941268975202811157412382229967052190088858529562570122863603048623957661880889220694090560133098871766013600251057295082081983357692991284943868044507388614038109065910464541490282226735859253216001455768642021187712786214462932977055332866599862424187594881012346374840521837150841216837068074275690284032360481409102832828357411010020400096524834146287304638367706881268383573029571046527375358585183811702167726521581745687521129226164742724942646951082701542614183304128046707603105671867368271101665324943890903138956808495704178306694135830782664188329566073270996504393095935732633456119561046278229122745087711218033322758502145930931320749071474406922650840643987539036126085720444569669967438767087743074173637165320715025381771406283792977026433192708009176314174429635560384710145049397444053914043262391460664181168085161107245153501885807780773522138164941999165896709035867192647818716721134747541459930529414491878248168752962873882155147824927019822334336844953680795678598696295919156326921468959291054327880135392719564881502316168060078287872150393644864937903989942830907821582935711622285541522903035191758385594892469709335278506186359436933787047466869815430231893273512360251946975228052302793516832034370884608240306576289839618825020350877290054179311333685907646328755533884133119917086641005007813340146267541349383018306596739578382622508779672027205089493923658078950844632141988501920817287365902891943253955900311927288478451699772893434870422088544128946512442831715978695813431629069476574670860337987902626163964399996130808008609045994165702902099366964198402836893043513128181441014521565767595847004439303451414309729905944761377346584782739850135282919579183308490844804141980048614939600940349128664501467428891657025261724213758838977645172928229312962236878539319304572393341760926388604789919906772404836969578601602359375520793252149856645902243508397625576451316449710804101154649921867538886965274820348315763737866845669846369488707950993074784631634639077879090698034331502285705410334312684850667910540383243312598757262678106840270628533687247806957004756797172486479712162440260616314737100921987375085013103985467708940601082613272497770372731404746616592370048481256793927158503793508995125883737556295998845283699302857980314942582473018398229724176305002517480044870594251710638004277981068870267764331209599388838194743676033973745801359455753775458274441031746351363134532029122114573001196351256440754562280983795220091739738704854296209430379594678725425819239324482969891417378991583776872989487305527316035686221953473426568579592250346610271686171010068851607093725571470740454623419119747416467850020947000490739211746431021085683567764175145995449104103926117141084378716240837189591661180958078203034431119929015995049696388653364297087284080489134701908361848796969890037662604524249295612985354953995741304950283795074076778979592341489647691951030454688054973701413398369828125468112499882326824923430235703372724153692154475055508298791923969344161165207417027509512379486038792010310500949366349375029483937839072434160007902271916829795347142797373574610071364184130350320883433022605515221151820503857979226090764839494675185982629596585803101829443086194308796742314511426655332617089560162165802298803921352030573477957083283983926955323822000551000168483382068388571353457718295052938243600030410969478618101434021414412239105317615555889615855064538081874256097642740166772866013227756252952245112852793029690591883807433158596698913375338754369697095768556791509000271949222757229474278969566428074193852934527654214645284307907364182948469418195148654813460184177710427192078090609394624038276443660676752620160881801188610231872832988924670797118844165503979767696760819698771148758781842347925252877693370049887470857741669598809522629185052203437665390259059642216932299749294110697694929418913761489364410442059453680551660693971910825210527705148212007628013183148022121466723268010009097409371070631391991772250272471050157140246243314053428529030184946041515257794500116104520311944418580487180331797136832862784951031406894618074816145540629613536942432359419145399677699573854791395373396866335035809747832709427490551976494965029114501690132137702290666197665437639692647338237374079736745520733678357541029504308016251300715584325003356909517013463450134273082355309505820743460717908754265172509489420177514225117046586607689976789926258621153634934874821832947043235258073652937728585916309215124593493854972670598594918466578436527782590449728656662904667512270984524412080504436241528081451663493202822104554270115155759455325723930041555390347697756570088308787533332658463457318518253695328530238426366104208399872430411629263009011895204494306421981812995815600735271359532485871769697538724389064885924622115455421913222855972255940095523357655306362019871582301801902818049891762901447098990856411260387883080399325640323727423864553102244142330916663750910645254703844154042784781870254072795320270510222837407500502939981932880688612262053349514480713513040049123678897491476876953804006497503275708576368732331998520704064168937503970267153052983419331447762631042752956641967202165211813592166009224605582242459018062373614824319676059080858962708528049858950856955197362051585570336855854076573063802295403465144791924218414865018795798513225356042754475316461515112218630291458191770907783419393452916063372671940160100956726152380087217200149890597687833292131311967349112438106292866968487133675934580068600862282518059487932221781014304515855298071433091705919804074401115505931187931767953077850795226913318506042233805041699914450499416449907575226315381677295172444839636014921562398904687588014492323872798671798684327514392299556008116113272174955697739863847026123779430138569568488091368793042689241496964122505723000065212340350135612433242272528047450965502710964112416779445094117975298687928420584897464077420310871146222003430464734223099283863602717473897890308804793767687382813617314328478458179051660179317359474712781435337619066772696477245667000744154481381611810906242820502276436471163221137805780826552810918044970764027727559134251242953114289863631511392640920080954113556133158795672196541544733207627954510406097333688669058162452271997553062444271986436017218050264667745126334235090279280997405311417428583435708943020998636137029953202719123675816185198580591350820870084066981569680915281305239577756547421963849952054613534575155877871034224027409317730388244800505186867025051128434761685804669640631831738223020339076903436244946877374270388666850108852820397067560459943391695158375822638203556952338490696746210702835632870922274489176258653559547763186161246998562788795425468227707272849745332583473424959267591854057908417048728736051497529927742233415936042326429710920547502672357707486469442905333706436593482305945387222747039406274104323370326863085977614981060406015727135021220612821586571784838803114931311033440828067722724235495136009618309281215703405945771217767935839825026526088003146419303423897624903513360440363789309029772887261448880788243871879812558509859038097840252352173503968524788785576049345337824864706280879885389989236662283128395145643853409554306722541335755329961691743298182958240161085754179391147538675750361675844966497957742364387579127538121185946636232084957693626990415370982033424907077188125520241082503325935272028925999927901019165317009475460196882881698979448945301343645634371380762014916781906375884891398021473596950413759695198453356453103918085239397060968909319978189802683075187875984564983041132618582552057337139802632375473384480010004864045054100542507651452725080281820355458327018183866398433951484406754448514887183321929806640866916244592319548622553991254811482329727849076219622473632753411467066899173751683276073062404233935335035140653356664098745829089884081957956923963864067658410675062887896897245200148196739775221802721774741199230430857461737603494394746768069033263366061894517776128539356595420802122167578277552621322835896574261991486102507590936955091237636254695823752472028381414432598475212052742097749857315903941284462204583085187692761504914610909520370305784475480597832390851931309151076931949812218475672810206800260352286164714732862131551777118464981345311018365141802798674738006274339798530676788279077706590686468442389984556514989409216323340364146974618553548308359469238553825977536538475474266677012255232260436373824620637208855261677447833337245406473331355948725106701433310781447013686673221652708595428688587970307045459624693875820465863412015977156506304462637384083950770341385699397787745955867266400897064957818127807852163387246084383986127058205344301817490921766832550560510260388208644149221036472699733700729893536492154828491108943737800862476700507092132221345963582851792158508119298427966695810783249045309157476736609816097352415041621637915828602400316802079657790441294776235150928056105356804035847711534361886335210094727139629415107941653782553479788608830834931996156845191597731989562928218162425274242424634538445489298887959382437200331023106467129495026789584683401270462167275284215469302829861791502884362588184922531650028290536531533207992019808080733547322733881498570014741530416294075814412216063094835308921893705235828422992782951552593334345701780677355347995465822444149572457876273830331128441281367608077297617465291876397857067350189068570783041980071849807441901074729130520463915956239295901021406290961163703545246094761823003821319343809895137467555591696754779448735252880536536205464535276456573691864452114627078885045388635622976587406703383692258268383534104790985655055054954314945099226961604898458485493741901809402408274071438847921141310129743850235615102760050744814033687329546351107314295072501318519130920505288911201221045290468065222840270582310411318267638912547285164261879324392883403771120158841159381230061942400963732966965993707887762261998528323790480305538460024314885532393346793412800369950182499889009382480962472039263911086554558285541910421923757372341637980174261814957912354217361046231005279028307437748463779856785109919477821343240194020621417408988889157696960315696719846256578000467389217397226336769728579837841463838302126193108298098780130495064784078169095302898444873807891084600355749665237489465905467989240944040878388819222036211750624956024765427918797370449395904713267519938657295462583483657260576052862034334431433225061218374891248358823085518680219834230604160680722206100385002146307226103795049994621875152319261224746688534017633012369544287639081840421157455162386937204524668816309198229223404186486824769618507547833354691885648736771283598887331959619596720792885807713751807517512342303236642790401455099072120923301637760039414558442670535095370382139230692820267739058075000137573150457801767578919689378608712463277199827117194695427696965487973661331093746956287961653247152206349723284948492134996719432353109788011571703220556804529703945468272461235446760575033039031377242821266682372324897072590835223714996452444097956687026052490946174216486115537278334045247828910685480213402915677789916748910006622140447162343397021652166819435128650470804865014174432509200574708482491554432587357938990845534220490048906294083530694085105896577609808718009397537208197130153037000890266710698197405259450567861885977473884098978065055771421353481692013503679780761972646514463425585963382481067690406923183901333932077335087375912522059261863983996782537764023693120812947822585048717748471809879543104351382666537201242643615799437988466028567614151136017641614693909363638985175160183054077943125575125531538711551483576899421533856692055669935867283150491794969326078854440602436618712011763821422104873782445849972803467563672786678353903199395872182782367530529296963099536944493295000133162427037423372596378300035782263144778071971121464486198440253301505625807023931396979622081645802121334453189544800871946582705568416347360565552251201177696729895393019810506366162476299266626504491503016143903737771944662854236638336558341259229971311099355201516831539607450789287004677571747299810626491826088271762656524346356212915659123162464293004603990452935930781473445185186390336123392889289968595710218329851635758817618997213178750344294592973906868911715826640892851132920178618756775746357255299603025037402514087883292105439671519517315391536372924434196448600490231374584873594498832872185122218365323678123710679564847194544890607471465047246656174778681642400510111624575959597471460531463442849397153941581362141853449957924774344136665562061513103316707761636997721570709627588678302696619975358490228788207264083010575631768803237439823593164875497520087657840397884311755530659857997669430631428221265238035758105572757875403624548862498440084186716294593831737935266841474246448214563264749660188129508399419665340330357482857881551346788807404629566352309173663141572712249116969460787193133850650428669744766445586063617911834750629238978694003454835624568078705447867361274431402430145981238021363095718581096112773286720792927729905620241375151221861529155624237115944705524549429855347224140209672423488988927824289017050267489178051724895408419851615808201141731133635769265804384715954408596032235684502292088657047081289106653511849720297143820488176103897771103015300082876380654339194439209285316167412317192834046854412956422775131365168495409906269158989496384370864503097251188673937811767390172610697995907158222553124462815288340402543374058644309779414823629467242719057062012530160913873374157322175072862561123873894595698484034787094307536994693820362572568289173383236312581333495930284583582107820292490362872137625760877370788229907747540122153946334110312286103645537092540453412525600547123340095290261650185065311236772025738895417879459620335772870376715965497284849654899266799084214878773925782438083245814515001803512444210785682668662190957467796914410806123324941471595322516365345071322041385626882281613234495041087940868543180031855959889590797577732213119666837959790624727896861226394124444910557825079751546927749773924820837175150778503055448938465469180298085578398808581513876814748195610638305690457495692568758157592218712297983844518446149937985199159692400625795244574648738814939656620125089980700904084329120598873667758521432911881344186186251747274103095488445285653264702473742992462298275333227220843691377559386407197477158993946659109769933047550057056041944147694162149434400797884404950174407286306280599532530581265306635103129612845840077691549535875282964574698325835790186788557106251450129660735060431615904735885715636372509051353418765492047170918491099868097566016728746906981188452803447115157589487183550024981092057035533004476624022819596084893325529652672882119023381158436278938638371146801799276025884463607478995666223000713110572873842866916149373913052449664778297818912260627234910070006734886750020621745575524879315093790583250836296189780838897831976277016956689953959095421261859114167255102402939044082820173030184286921764756907643781431687723609859302843859243019335739672518827368571350511576607023461626035777280109803247631257032605007595334528452943382542753302789056977407757703299750980053105227440073471583843787778708864726962084053834707469801625176141529571770330160242787498570627636789163133097530377848626271431485774483059993675198422873201767996079716108901818067752004190963759554401159745387804671562392202030892221437478222265642599605302683374029160958233075077665491816226002009135306903394493210731437653237650478390820122537741014395044341042294864937403915734530651493932058195156965906562626653658838685878083762549533347009235974888841690624672354357660959020092560348258589074941972547042740124551928287676819953849038454096770954128837571493386228790850704389842332621803509272485150322035366314119255241631938892466660881364287335120079853031977421708070387079028354595701488942828721594406445528453353944275876649337924236038793282970346408262444738937509959287418026415517452088035651695373775312921520460867793619500475261035433494727709673230289565048801917062841891249887117692964271844873837748831293442437291405793924496448868111775089808310247046162314356719158995659776274325241316675262399428597598967114282953703904600849612111422689182379431692183274489488070762911608510399321044601526412939406318882432940134309819049982766212629382006474117972967017237978959787791217566038157880957097855179461852605147665249065777428619571879442092014450488226432990179653308808249891911674442548724490652615406769949264371718755993994304562222951026026295928503919717021387716592737677000448060907046070726123910094426930816686893347870535511649151769611788673298635356449909405796127027102192585975586423602072201221110901040951266914597003383037829430812379572467959003342988853499471865577903487407195479283848690961843427230020549526780172633888290470163345328574117926687439261809551424605073141119957079001391145775701644161024285358319734657952912674605352761774382236264064889523350011465588833610041392560800935605245969330971109877191243761738254922459127722335683875703452114088962738015667885015770622998706632585185762114889259795743376667386857130202261006633235862448767733339933307963555743559664436976981223249146453427831605433105546705986738146712986374535416205541026792040908496061841773967956028249234289158803239561912134439232924249621450615722810494189048173785896101660249257245913284954389960868782287834265836585545240251250127252037274321321950417250147951207952157811392922154695939469089835241460081148297721946055015981762839370369426540664529981296125507957521781078902303058729066067521569314928406675871856888407741919270080210942580392946498553750703440190421757319800954260201206754726053890335861842787260093053991881213748607412124770275806962841700058630418888632956290064918694614289814740849566041577657049677116377460803326942472675217663719406125896690143776288362052094393905413596507950216069799351481735203897922656938952089428942727572924006078458279347102492829080319537920506022909943168027454458486217547627646620528181114178039937739361783818953173305397575274657952195908027765662625068185860765982256587665685197825463519502052356575498687857217521859696159400685900509665923694247481561487584704384191492272153619075214214796128125967047422312421712582469880065631511996235926305561300635793620459090633197082984438961322939413373620091414203323240554666792481266374790092731787921824117079023399378236055548213135113131371755421085699520339125280432477222418750669988704052926812086972598865423285741822051441233443345154692424057385149484782245357457943023796242571653768747784301969211066749441447494107773201477913042829551048479091237065397633253829141694460726200485142674513233914132298638876864084029063632656077366527945744045842478689191388380925049614279467258836698613219379454704391142335899414467527512918495116338230812105249966526586213647175124577767223544302498393457002367040240228701627221285185045409605230373402080766872463723228527777130382448892728842016456337135317993585879677424839452918800015236160658031956644420259634052167321017319600135733197692280195916936675821426748506596679504873468726400636969871435871969058554480208436159759256184850856040381055926040481331483782729643913551951246261410792829664338771918037017921290052414793667338945462834263836930957558706801186528931930097211702375042425619370748064963563278166065561611292625057405233287043563352637204669714237796576298848318108225329913894638123994010228630650957044149803980349036669198337049279887522174566425155660879481740921468793895604237136831430096647409546324808086918667839470593190325243297095071462930373239461372619500992154348524681687232637575416609985872880487528189941857031964116720575517004661861577554028686063012495634865730413999459181383291699174251921462614718981286271098176214422685811144730269653692792811299606463660011064450303204703948835563846022034994106432681036693560692146843825875552861034676518086453477308305740957120130559185144800212443502437953165709718928463525395247571792938542078655751488991082046120723389982420984724703240525363234145317081679281879983822463296707697488577251543076493233041980252871610317297924870068175237217569111101385836839475388716461906604388898914666865851610856816967399078173026081870351094123980792477606243791706861726615279092692395899653552797884460260944535748653748426679891989692131963222911054083230158991020361774645920663052827577432001806480169900709715687043089409586838024098062837011496270659456159622732438017966655506880812291999521324062128757374580340035667063118858914131509873804818426868476885760998664070430772724433431698354162082823361643723448834348637715588699485792679182346730366360119775040864023477346801933625055622464540174616554459613327751522841628021685645463706523097556140907741750011991629002933305002913463640964344718385908849337457491504248543072863342491820159122451934178384683091656022869108062273309932474454124335827118981285796961328960651741739030432841057269813064982673758108670715200074809300334789535769819702367638450522747481111133935945946377585567306497701637882006752647638196990122406283744749463657180180585238981286723897799440751309129875362957182569443545050513268253531977291255528879361493934334728371890811111154812107817031811229782479359192619549626051830620567048833521074882983215849346663307213145315145463372902502063926749689967447942679486940141228533835614663590021037937828336604511287587330466639947289064746942009008002570387802504582128566013032678504320025548108496253947145278732692576244274093085012622337131153226114905435827787768339626962020696471252872455514376514288020937149583155758890993516687090116254005163101367106153843703110669363071098228204647612951571434564925901636999869810906527081996294740730020009158429494501433463603851317228070724186961886153382706396811602608241202140942743877135356375379919402780608471354274058419425378556781523416804899609119191947070734256952003745105975734037674798206906955421832841450587530067714531864008806661576384268176376267129539118947225225950979493851848176526356639842939390558560132677046390370098158093134577146788699660375647301788431691198919347027981810426785278072883088135062865591927557277756625570752375238836328675145014465076514157319849372228831749961685170040921293389742955943411979151019568875090017725870414532380279720412098048222993034210861634826328335741097739669467149606449363785579823876177464194660042395164316283459874594264122676894890009823567403239629627841948647111930923712631717363092141423277003394462168986255521857080171559150333488496557572067135113580687601556613823556496073277678250483457546002601297874710920331851810380054731503263323459931486748021448707388920571822181235886601333985982340697366661885671817718718616832880853443252243026884853237185000563275203754571487311069394768195002209502459694022180140214102917208908800597250390303320508549832411583012607983587561157859429321628890103122284900217371050012446394179063349744224940130397336373863035099683557578622616018875383400454248146777462399987988166583871728849166665512119585507573621800123019121212096119422663834056760616946074172318267809966123867455813219446185090754790444949959141126507679385503041837913260415262697698942063062520035304598037907657631145370965045679092642921743600545837044313263274010374611918182722535837659752340890131774166604446925420630364247739126126669259111035161336507510258357505700018708711622414797453186345367181367995829753110184298783748615080387200834207293545507505181004402578610778821101484608963864775628219896149361634191829778216427768382052287058532146124738416445284132271237719376755561080115251858573856151957342165612371082376763626110707293374974907870396090286319410356853986585905141080272536959220137568383189930925711021771768012896746557851030560927124637030908581011931443116609780268087245890542839188676253872808044091794953965250205286293077322916213882314476902520039077573345813776456935139133551713601472153575538867896088813294439694405341146290895947382316084544415957421900728139877409911195674423456840907983251908173671171823689641206683221294604443184396546928235450231758117109886399680235056823900942300135665013023348359163317893296113179039277002354397152054086742544805641310360194353852961611070395247703202683519791609485634157663794737491749813195547309695048244652921230735516846252997911716939254259803427669934787895156226018163239935706733548689316067684997227559856339243194093183147574248379391418623943987087144084824361944256127583527344602770117164076980023503140218964045332912106950407254404819735685331250339575949082467472171438719483525321325917057098184634964302066029934696639473717415320096117199926742043031560594955354243337441571324404656841075899908721891708380003190062316011791203051362686113790876134404530141258530828637388690401124296446188071449027027557882151604575733703291200324351276527402300856571883498368839135893679653596020114444085935216118051767887306749316545627197152981751243976320072376482921978374694654322485435876681892198395398532540701785852392890626084493300539617321479925035983862513059718137897226829558134785734680936657920622894809714927877522674613809311212762509388378982895627852179101464337709817531569425056307111904220447454009476344929260196131604867921576087226349505949778721039184883774851151848622719274916932650137868918989639391724736483468193337321650698849083457430583325088610902330977732256057817300765440774066817647335695406095653698641860172586549964313509946722474133882555870897284276034725892058789318866028842126715379136511476089228594368774509017222427374715945485878084073915747127015400897366305904624528244113195177912009238187330127543476568279354075158706697424375140720107243584552518896489251612475494677347423015598188514581310425547857829900954371549782268266701662040063862935932185145444999740802409820835028412779315706763272392529611717447196986030809817880983867146921200740536129008074159522471226906682675624921473252063371072281240751705736059960986543516855875422602136867176171407088081166789705415563727001169858721560313279690669424047355507527808680078845818200568593626407270418765293851475484216611835719739138522187970891599911616066074474900321159355271733545021828502608226723672023834604544252005144278894632548299604943814126425381205645027090765333192225993473614078453348185874403417356943284422835472351820264672645914186659164396715669223286261276326944610882218560250739926192964952264313720132447631155759157289893833673000755400177442862045638057318669164404147061162129333937583963144757416040026283298861323054151851007938084353885325773609131768192683014982813331505953747261763598688719295507022499469857362415781183486693517988334913834942102186301711874455456332264673080687519350155226908191577019502462061769425075042710260993318408725559948106500044117189218887723121489944526384257001629048889536503998610456425054218609349425477023868199036172787639149377811476591394782093547785141284293435609810403257598021907754439406815433989611498947945561659434602245981713297378849582010829902728088098420065184009570123574622658036462698865207307588219978367663957680651128879322648591698519316596699453146438901137584462813001666519294998025547206730876437345846795505841998198152303320738030623345655580487697681426051571597389664844868198253424138874908051202236701956799699049301521722859804932777037856635174248577006888767719371037477912825629398184873463382470025890018094500401426787291487514773325552870123370370037603979075279399339707815945810980575053271524340656099098085339252111213008174873033139061052391394552160591137488863908962914715233301845050296696599151564191498088066718774567437411330535105271308319966981354828530348137567097386702753058151883970889022163749971590371198662656220078578448745038672221571123210183611001726291322642863529422068412048947510017195230868588276045043022628607567554576992359525173081893485205604927394920622517528496257454913396478942784702062764388817996092670077668831289371608322718610400667292098408531228453941465648847011085378103337063228449754446697052805168140024493101732696529486597055111168014479667289506814987217200594147414462834526637505767655126012438762282330261787053309402903339145373571011170450011920476932559110858125047423471671969099089735969192467683930846565520068278397033657931657383591137556601653197809009678296314834610372838644361331227581658985641190424171292688408213303907000717846131730541935927296883280532207619380708471554914519726225120109687019912079141040287946553807435916573098917034197319492156443427327504266791106811102483372028468747944789715510291994208249530373020392181007760188915851129776123736288162076798400536947164442607419671391530040664788239262404886998539181568345485868308613720901038759815977278350359172793573695325692524907071444296700614529828471979808925635989577140790754157559459783141307343479450532248916405284562326599711201216444257340553896763855064041248601983740987327846681483720773221532578765835974124873661535340313704363177253960775034223517456081304709864887735599047052600700713438347424221732849427243830150281313114359750872216807328597098280273194549479011886954088349645455580435693096240488581976777757216584267222524897274268190483500852641780816693535341383169360592384949991265278397607656673364903526654600807570671323140717736629385774211677025628443676869614475280233885927764197020188556213166178768507267661474265052182397773217682840556723527229115397427166904238414192881173100505316794153650405970314129747508614619285000537307028560053129550334883247606630247555542964641055473804047327425426152256254301804549329145380063292249945775752724885076010149565345013352423758501424769368700537319661646104570616262171288089559898241762746455610483496648294731115689839257259986648867500084274494715133413008813913768952553482143028887466409098225219972104425476821728749126525719913483848735363698994130642101094334018237629091247492072590004052202601082328218393947421995641924913160986376446997621189744040726590301532825505598195135045140173097902925041165881032143311323615359246826472722184002184284131504272064291983886279400973433408700740652631908676525758355887629827227622800227943449131182881726477149057067871910100558857331720328770615291402608720634170873104151316937409699837898142470446251811115584472201673047915779734594061487539936783045517171822490969540017373318932335513167954121003500415182358995052965383388908219138817605268688169128581086838173580905566210896230770818198064470981745083849768489255421151656882311076937468904214604512109900049642554827386683360532056026922965279077733671117975674483157902580549134802480473068280060699502336182689383427075293230482210506064815279998000121119234850072693336888578135529490841117837243346247271854841364299420060406221114575051144433386631414855623910298168996637465237853487025120384800656432986517413251666991591390240515534022661924009685190846017078558806658972333209764096852521936803257334800831812626928304081054508716893685799947929293502863771869575575391225183838690084334374795873801765726675721921444011261501313385563928663445798415756454014466481809397911110699480816038756280687688176842672228378000343785066570024735750828098407861664130896189066171268204949827586471601191611584384802417240618391830371431956461128873517520203689804678090642427376681250076495353557729205994947776611454098966389081738728530441762151769089335798013325419798560901970076912670135674856699247213496512540708010258687587696285404363018967693402198776830815207012276588568873762028428606920098015158503778948483808613939432884414144919431894969599123963180521545555411578074645437613625488382873304968897332873309137438405521611989789435490975103296006827193403913289563407522277901393828699896243722162122044320247395166278234705936595433169400592970939343779639068522005067490215465959651189543120676560659335584052018506509835395961037746559359470849520878976967401430151073992796526828167441291476980489202454875295361825869520482519774877678518026139348095325295156345117243774832515449672390828382302948455595308421147754605164827481373878074534213536611990512063608703471562807945034581061520136367510268566518222789470341119410756308115992855773079268615269765442507929670442923731690541984730502916383158270554988502164698804108863781185173133189296392052010193732668312329694234538514944997762517298470143344481768800251679675855106221032628439900130911297102646230544768892369460773657393988419557370923290326886781165219974716834943419496999106120780760002721371187199702862448193152094609517690140732445973507897804287520802521062634603321997321307630347586661501761847292104806598979399857650419017512155618312776011022581688038541281513064628172975391930585714213361442314351378572920744560114993158763564597853311368751927006647488807493832885286252001934558706303905548802430374178730441945231364943693470273800407007873467622302364562656257151308221167436605114394152663620877488976693766637457577111139707509520197744055835822185374316961369455363260776122516756798905943251950434548518522948781450975293292851460344083504084926131551675875491027005682930365130754394116907166311515957559334502268170728486887026866484574699469750052450194707395342050163780896025479861841188695079047354840886478729659693293515947931957173062485355205498273956463250552833356029866022663508242526276200309645284210904864908521292616686096720526494346888530748422593212912712981214474056213417827934690323527580762547175905450860027640805357724518530350098779036662286029928232593813038063978035705060755085498513980695686778805201139345332817234697269215365662408862457779032542425241342681308262496141323063312535657747242705501672542250277288134960626997735214490538729406479283577325239399162253027049372541205329854759142087163560304572273769681711981872775469475331770626335974406986817463276569705549462516941317898856942131939158358691987258365956912185232046788425814685262217488208349153668572947848390099597060024350380613149621279680347663434674979571837450158899205913738351012569165548194396907793694247480099965954812098864902910997248369946432616879620624091674144349434568154856541552131870860005432913382809904042530559452601194799946919569030343658192679482246021726283555038315079548981688937484128593891280413125738119704058241819716182958256851718978598521836970218391429513309803479678296408865209441010036977014520463177019164667232314408125704111528810286084120921208939856686656615447397018983978645671647728651189197079481658664951202524283089575363334788007982010969756501158474803998532835090321918623836841902764221010291039472239434197415761335011107955283506320335602896709375737806908461160591335918501901563771234029616947788502631082242096034694923316880645283047893766614504344438124892312996765426726914851573361289438171444821093685993781686970044548788933031210207663364813484909982910343097929836228620909242044232438199728049138848228678306803113108040602009146561400795807869117926906936333598066966541779087032849126234873304456484753138373692362506639975894030374855990693966245488896446846737803082696041230179531124521366773629136338515917821852098550227536646586727373951390861330584223989614642989298178186759992075862199059649575125984559062326462281401998365205446683952708102282969749617169016484097149360631986450826869888161158131979452206609020941414490726643717275624952943432988836014771177054580711639311012244479298791740350677613529610086981764344970512245722038613584805218899313692924213067851435582799074901920121226351237314959643159074701951362457309856686316282447082490543291999532090414961050463097282045956746770664236900930308817898145560861190035337983873309756178217466143067824844196410821638146971281712163734667394496551878667657038547065382752530263122935741029694176887753328561443007096089944647224553640565757641718873529844557220150653972903803819461713896004692748534873865576319133552095619502329990275760958830765000351449755248600229625249356502119628490004301108906905522166233347643291602360812769314924908872253101386135130509521774439005716107719013808550560797754839178637105140460776228477811184446504200957640970561659241404434708604675307922650697078141036101679915823344071921917037296868312170344289271893791969540926936214995528870573263611094343389491506999618989384568382168706413751077443662460388775582496682912809522904834678580870305699679281468576680227867364700050421475522413847642670497777485264888177551147406213151883470745535124508641389989254486524589899848315996333289532497623380234093731303773398152710636606050206697242254890677072359185048991561398006142831606919994185964999716456488504056513056475192377102274214676255914210729466461557256195594576540194417977980959522007396558775297137404999332762995151899623871557316118827380551243123637869047859956172505391534484429382188153724321494146255985325394568233140251494366817235612128143642994341976586527240879445555441651271750578107099072246705563968775135238820066174521823824311705668445118101667409470165471876026334541213143050430930789526715877714208838783451065469867128013944820645787791933979198166477675366605400042779462716347759864643792709083449223322206168229593200714034034972766700842911553289831818237144724047335883133076686569978268740329428065013593996534346680527173770382823617586860339049756901218810631169177808584921951567856597307600487963348232236597310648736202385057185725851787690780591037693979733008232474718182921456701873338954544557564677276359569887717693884692304777493713356561374490989398129530625476685394807138240029876529737239383177853406565462578346888529005217714202551377389448312311802973013234715088227147888200049354749609640494468527599515863739525936344722768071162866683183912180079468516174256549137316152113647581062372897955195933772138803093289455563815207855578888434959063630213585609096362106965427658290065562891945799274947205272175015049013936038408797870376961415557930230097966073939015934885646673895671718346898621426287751562711150442837908759379352838963629030524298507934246956522258340453581657648986861135974695620009990885228380519520184770299789205257687734733394911529922740722117106896619062939439344081256254094650076345546515083432809082197719637116618963698105443390066280471995940906236894745907834407353998363107418153309359646841149494576340635295170866547642098658705243437530913093356288678433129515052920762652359378987754943590510650111699691529262963473193776859408178234835269387661552418793318892673803397149189571367535677763459071993981024130092852983818597960158309692279910731710362356638488525023301644679910504577083112119963731109528149089042581591009181396356834237660630051564945306224319449262117664122074363506595677137734189764001935236298651333461640801090886762848052688491909242045869758957469313304756294107706998133376535298708151736243537121015934391643325458646360844754422675250679710019097622848954581163124214889013011040731918251087462542229057225551792324417596445585919580010372639808451652669181293965302287195175110080585316263954469308505880425401778500983388348603862106186976857845256946569287784184329245754212477869210405461466690755322931741909875776406915111839301634543026514511559102972139104540177877998129594848281226236486772952667726075185313745503567490845218037805248605938317303035719192754678562564539063450347394115189947480889203205885467375674902951904420623039971985772710705215980916382388120557156387986370667555126357842245017152721499870996193360132348838966787012993181205276363348525840058393082755629713316866621645813296931838908138445714261193634243629660325813543563206711001199018856129638719904739118128941122102233327370770769552261852615768485879293269597758355796203224056660363168144791513680476196082774140139720805652460526121394776602242417718297644191736068493062148720321930607632866199126377266857465895767955579017372643713268598110787596992798777404599618049934068380185425868795764926004904453490523652376691742613391985795722552154256831265404484041597252293353796881030885881789371667125629220281000901886460249457828331579863498073189403383018408105266158149891667114666006605176703851913551129145575039385280245030261182818293196122664970722916547856620187328592012618063460976805152486306366961106012422429487448732958337652743726428117493477032778381190749127094459630180023104828306941109556980005015109939248689396185728192356584556653580698913590876434490254869436542914506880465928474279215578681815900398690185418010661088014267283083116443789555597038203309835634632500550976019793904292192940159125375162852334271389512970715557569060115636910606170558322828783286321846829815077360234127086966662668145633749898436551652552137308436353006465280407168809115250898194687933274149735069639309270581042997937862039465265082212929725811521708122095742305462910562527212953371398960661017410921822692180809792562854250048868270188945127311944293578918776302529041289857018843876098175917289046758932943372914178176177284787505155114904715625435677839413595745168392630383750931571096359791351267900469558355109454192580117211511000433327023724404136542672304364508859351005797492787892541762898289340176471385878875136839647317096583661131650842449604015070184808237766061659077442475772599158010575208770186570266638318712485398745195489631483505726553833541933088859056187934358810514847465757575949076085884398746441700845470951094574836162199052535031980403736298335778119121082188321200060940563975396822762868907916959313362744234873170087124781922517683254871483510684340909704490766902402322972460581433203492324667348284909056760193983410189055092077559993398622701737294710626515170081238855079682539470877138991317823888104245032565302230041586674159959719801596899026489698088606160957715841236543429189215012313163563754527561728554268321936671394626354814123894867677274928211351443140240770714034027250912335710624400894202272008250835193144903631627086775641970340155758596265502515870999053407439974419115986899637034239635732776549811786003501679307839354821438259891146312470462893370048751654801210096482897647753110532669034277932218268970068604144068909524342946406884453471597579641936916069490738548147493913315663986443244003760184070808432458883922038150031604242154476511002495816958899918603342981203757850392669292282734874823453806474812572971713099499199841805756727546896909444493803784452089936820916036143743281357924545369627112568371750855716862996171025724937772770024001123645870259821449892420209023763629778569112333071946708878263833117691205120010392034771794732591517527850374491823929209157566571295141909163642800015327743492534834930874954515796800905777586603756954358316663822885729376186148280423197182159088881398181049187030917683511099058115353056050977935032143831015410654478332944228835848238743564960137726854904052012010670307108139487701195822227082681467928392185723585336608051535018509817840688764104666749042567501741803604265988053081358766249103590759423247842540154561154857295206725197072164615885597035545904616989938964218699091970310186651411992633766373300457971051775808527424291413334095315318190415038896053735980960248965575146427524544060512611188419750190924120531080475757172035574187021149104913212938214807317720385062566014161483624721680521933446033492233198053191495825786151474995736790595684123793051263586506204476468801457879272975775120892832941724202187349668343329678215423750230713798346087458222652255122660979476383569744137895250950304763869478735391747316153180761828522278949106725836361528876973892838577197238939416405419439883321965411817930285232500147196644107609836521190280868411629719253199844848984005151591876059139617197905120736006016060800708656484951539024157251802391952970998464707459823806750066589262279896013256359186731276840440086073738295909321480305417619405236997587271788327554134246355426656810993263361459950799371312675582289527296633346157299229252826919291857510342050145029080097322277657409791800616676248323450016050461176816313588856950261824343392341410219973042552495146442964023962631960750239038252379217854258831299747299835872905808090504822446093964400353616254850120413117801500920429160208750820872402123990132973412504707347421539145220641958261387828807292360117689361622733902909555625149745869148202147853955927472958568006969229195147339508391780471205319626274167907457598798088304857748999563590106089449252138460793225456241543628561431166295415466579984365754595681521612965010611210301958032901409986155915422198204101258770793213278366316586330758381514732715544515868094626811399606729930167190019389004623471126118901827891840637770686360862007388123395034899900871114974040975057167767429864069582485924900533275040892867046024526917422393211944227284319113260951881588741019346001803624837301964571887517695827497719033713393388284485046859663940888856934111317767116839906108448713799146818252337997847756253173245312117963110940577459796400966284094935858622009798412134729364030868655970910343084874013077990745289237812393823869529362381642251417129068670037036833078442980233394360507121608976935263160300048456925506514420663126333233608955163248381665980738622313760434198681533026551479646449200694522228952898357683775579112530879581901801064036676495477586143624495499647867409786597749608894111126935529550859482290685453803719180472446193251859330652551612796639303386575668767128083133319794856496281983792693002068024662943840629601480133701425133138719744695600903297903993193911554825835492950904696797123593509514281660481877746266648411629105170649278907894926450716134778592958361169353040862169763333510444449898650145088914348342060509818817615080892425531115540576232308094818155106343516863670019825100858550267468141744647027488492236947567571922909021363042888955912554337243249371709245773486181463828564309695127654107813307725105036500943308266865338549724521606652642964046467398353490200827500270825335181675001985202613363565343397157244892789135343445462271878073337422122207731924667045861398546315263828022052918313806015380126570436098104551158975768502746562313501160424908526815699250786373697907106989235111443834203589463504779122646880479111767197546199865884793249700658907501542900371086374955693538046977253645649747190586339304302934133956952191035751260806010497265652617650236549909774089846230978352798596279641942427589028010406724975727605470903523354677895477389214970078325758287571200049259549151979591560463965290613764261347597158148192684801803925163194022843656224707521734202560283094040197517839994390105398565234160400896985331200526296630885293880999152917379510039278963092721343165684135930029870168147025448251051331343942700971192034917117718138351605269025362567158998877084379646164716542422410066821063486332665773488587470347799723747574853298886675845125221640251590246587470941918008748814202680744459318862505043820795236370072798570139548737981268202363031338573753749730923721944607226331471579366414191673325293851491090050479027072577790427900527904344177196826171045272934722645741999946292962731258420392521901512005430497562313899959942680465275893094948476346315893414480241138217476629297890219010570263980674820255577267395854905991076018558457033308505555465500443969698449348228366391723977330945539559023096659515873478884442380839186743231293726256252304570799252150483203344557007889652264457874360910628334032385546390437197282173425925242416917521108662717732057476711920399128423761193961295104371710251811301469022414182297647096620026318155859513387714259636810720175808903773513780251153187778655701069798781235890933455809360909781595828734612382953173725407983850310458791696112643210654801365622735648111445940640200486443827029970145619168108263306019139987494135636631529933648837443450785421575827011528337385802757467590363701938810156573548304341047041354936974640164917354142293752435890068778211565422421414234265787911141329993367584252824633754655149151702180752787054191614933123493516086472503036990958665445179045000052961547892970002877653598086376373313939102938883862075933766620635707969298030262791674170309629587135159791895108321587894898190030669236404606803618960637230932649230224775282908325331496561072870842882089921931968059002505257222560248777526554211304086542885336638665588083631939687380282289219384432045980166022069784244660197105852987933647638455775534320656342704239751647687489535536533875822203204320246551183410315254649725820727487226949142762681970691263415314427326049710697828845357100743287694720623815965700272657100501032308609940448711873415995839527545371062006473047649452997896557773165115110771755652621648062961317648316062917291603142980508379689861613161920725742440929254810532494669853590129781800483026207329538112242982908633805806769834175336133462788290739290171190679389849928172308136468779378287335172187435693346632850683900100753834660012833281296521628056563445720051124237743554436223501925610110594497854680574962758452019844244566477860025369162866973540308321123930135540699015537771315612909855466806722172860192374649033572874255748579873673784828427296537907190392327114115596970251046167877923336827946258414582621604264984102359102229937059506370708921735025935664544464636440822633172599587179187317273186265669872993368089408175729254121280642521740769299838133195088095525988273991954460563809421862979742083277781401799920711429137929508526951393109343611673960264944272771895115532185987210135503511593128770766817003982075453704000344561083516511332099901833609409614881518392673157824258977141517243840750519656538771114073776091777969331951081019131612361139088798446097482771233128708811670473385881194166307484498439140626009469523298571175630277499914066265132170335396025508118609687486098975886380012233778378477214276827288803732896824330381671925375970453204638186908526654694162158091611323059012619225752070816796502870414348562813377885153520631841323283322421431534648710570570968656768479398494526706549241667408177409139188665187702315220786225684266735207814064024160485663678299563528951238653317037012647346467835722937175757604811615149244516004983189284824616363788720280427234751673384127033493876688979546543355898228737672733778189992316095139883045727911406357654551957029090177611210149747259503408427947839956363259827506280380613735661901727878623457727859771651422426841316908476043522930744844261448112522351821932922471339918578548879538499979535795713776271645279702199916727415210949298285701493984889971154707418392938969869987829520762361354651236963579150173133135067786787616249786072000494671946063366257515153608631092569973837437198020727066015582273870132879542551331053077788852103265280707621508310433372257087673723099038886265071266859784594019181057207809974624390086043405418023850881179412048216298615445498757909022241421006559741560711216217241465488424918692719452479216064148970796472591114434163110666682283945160796901867945108374554375575950704587279468763534999680815245605786672191600692719957906544627298840118897956202056986676380909971045389323980853902143838308396433466055042178693208534218283980826036776197462859966525846849044320454131827915256421004120164449315857891437916658594835848582321899778307645117091536440201399162419110016185567833512284301219278260478865996029441950148033744448289139297589450675219242296392877923377055946576041104512895411408588269755251828076444259112265825868434151794266411353414116050521569908634921710597714490797161439094529347584297979967220815095837880139895424891030852982416436842428638379577253331037673622157014953835565194602891250803187461535002284660403905473132612911981778612410047326773139286327007548891970072753829652287901988533180277333002949237039178480118316854033514114842669560016506183165061235729086173208466931415069390579573598469678080452851491179793787375810550495324706357247328791326882176993307073106575137916485179674934140372602284424381966578111200847396484818048293713168098076577798838685241233714124210854178416124537053157359909262910646009836303262606975603678899610928588897081587195404581331876446619213573009983071893964429483231843114371068960484639078600522257280717331014528931106315210490581613700120934971459582514995087273546551083884621109241343394748582165416729568016465914752446468410556762165014430711540504287081672950206417609935463713204827298116733442867636149136029776308947235409144716004664239907444227347531449776053267711792453275579033108668745799399596707406660977557063628399977500503572572817921609147158437485040963625912453259712882377893462038984243028003379764523722841617040125241978856321392326684870757145493474664254471132656826268723313833591571716033467984556272139494390003516842303590657668341212871314282806210015148910540583830457195591969793571787383091787452039322984531273720763933915567086917046351433527853161540092644642427402038337880068470078392687521212205341136305996866170592270748502206862535067442725557910465039178889176847858876436846611802154357515725256218574148434344566068358144737933679651069753319460175547886289409925895461712199843366204726955255886859024687224227209046434420709431766379466871365569673957115111657405105620080196278113393166840872202873355730948310056122260892139289636109808876432991125412365516846896387298760162659593850032706228391014812848684539531529472853843224047276403016038583178857255030231793636685216950670941592417282556222250559501065332930706220262674163115823283378230506458937563071748058683741197409684903955556760366130016540798879927388443005993482970141062557939510044099732454279124152937580141462003361244851740196782939976848706836539429500123371856580633879286353754977475787283491568548291434924074527040174491604174637005611266012248723878784792301486498310005108206493162013848788114748503138582407893412187909696350343234316435735074033599915213911377398584052472362661688452189823999417900639117526095817657162339436481098101885030682702022199209825425588654056538661757878378899907622867686027668780477743277333217523088639540988084622298172895178252948643967865959121085794987784779623499651189034718922640973630265930329664281957720764898983626730318301752868894495885200455464471903700685009356713597136961488668835243459671511693948240206144239724692461650763422804091025717373453932266443217856595359769947033372875563745013345677903899116754004736696884048240946553921598526346546779381087330425715410015329713064119873180939534586797850603431134515793851833575846941883975174168977521987746655180451693147916711769014953841348076619443406991848074104169340035347086824612535678531582441455392024884531898137392153300805435323891001194280649901574724138477530178453000676858955449947987721007108872872548597748545138105647962846622194471138183461818344822469755562480691228749710356778948797384059301882738221351561183421773808804867614918608267341126838966926941682939559040668179187931174728519879434241608582517678754269845322873863654010772172536686021538508187436111508295641705927667440773071928151762970039223064836430213623493052253316776308879188735195574392988419602526218366954010075241231958954543606217735809933381431094352652154958688681596151766967614180617580476807877498148878710773893693053640656301077701904806995534320266589507052976636675819104054471725447294715238738738829056167360671545083521045188033554637332856793025323773476303007355685989478260122495588417158429979471130805379247510504848905258177904272583994398110937887413749490853914930944925449675744939898342958322572557814240453804923032558600485636761775520482448407559447621094598245153431465064044815835763449024220860002747129656906557127299144695130049867922082914106349621368573597889311904413514555704423702796198166942158867936902204095577516931536501620448050009346853696123279333573326266331196167241997080221172816785304641458613143966981393843186951562864801494723535495138297440455943924311668173013342406009174449003293692053416629195664261973817306773315383382346629303165689084655098189441577262073112189936763190892202277804898645123387926643748161893127669843476717018587307662290128465802424629046277783519568234918951640153400455228319759298449678857666749286070037617586482981272967679411793756764776382613703242515585867614592165895600004468994938044570118885644786658444869146708077951098123343181770879818610741940617091250975068617985588909394032312243480294772160998666127343564905737093945865369004873923380607174574063121204306145984317493466389790585943140389880454658262034136514887720220684753899130573853669622834026414602450803260418485339962034948556807482272931418747926156524258251990666357316277929083796038838012102158096603653447125114085114732068886857729351169062218302026396249489997383997308448406877388688263680555635366911771877522117955793190314567593299226787543603849312151707192086160231305418270188762617849528057825997899326985842334760508883622578122051820495925588306390485982647949045673747522229701001048586580856423823280905668674831157007479318782666372241914186395177987137291821387465009614867092046330676855805726895805284358969157700856501994254397553937545634224384372914004117742762171783045813359526540978460430197166129458709369426086948819915561047029248276792053711907280136510279363796740072636431005709050352254311906905706845736054691220844242762316171078907113661675073726022596111789017897995867097838468727949979669061467722621446450749845709757095218170146286345374345388305075944593145166966522834706424676676769870132154673838457747675206669191302929726461592364052078680683012389291800181875551024980224449805863167590305089096367248304895588697019810546462373479104007704229894971283209367386615874294939165757847274160285045481621510622536473765493029155398734553634114481211447238796955535306773001567214405294786226122902328653206239606492551739741177334198724616557073870836375773344623001871509035921195546169472354940772227066056628988167377935409742900209169564616968285535646404390611815261135631224097599521947695770734360726711069136138638111746234466530505665471213403226678193449926516464848452545241426359790493306370537270080494586662247757716315585765446079763088949199847770489852528577661626364473564844303362911822572453597276690782860575826852542659178032310887514752117303584105911245913213181725030782578029683423547855825076754059918506420527032666854782824282829760519995015835153597014275427148595579058765896215458267480610858908729457769096900990391980115510801233135978660383644356421394426586107663897297025832191258978959086131725795615382144940496180910110476835467892905582370827614401938794688321757611794498741987116635917006624582951427368529892688554145200634912717073863526420627184831798584976414950278703190596185993328458479884747813320158444496331050079945463390854445863562883341463293897971899954586853099330631275261356928903377645573504249473549072799495942510675079672047821665582243169796103891429681002204015930370828120012893066188367368055173164704102111306714239353319648993585782773056859447396777798128324670895484567520244777220912343925240015236387885007575840375949105738660523458869181469307373648809673593886219587566571910412016601268648091700254705087402935453033915020977920414847041541748855272520675014190221667211732145404388494183529066916788159651133579903605116815027848016799702710193188220947159335088820758534479724894331771562317046691418169946511423811379774424575419332261571493668872282885031372216934192573533548357204199658563845895952049592814145676528789839253112819779760322729972023964665297879088502002275280149589600282037662271220875976595703044624823091405212744625751883265224238379519704370398995958726191622705394426987416119222927300994835652451286245262710861181075143217880066393965530180562218070644795606739897177379761512316140976734290159426733003416935250270513030661783783503357338504987769481923784150639631667798403954245109593618367589380453093488042387596518386234464165359060042906434010816705308647718208522656725002127259746814828136458754584721521487917999303240565327466024097302751142334682261370481220098336547365288577678004361156312943685390410982737915111311296750612375940511322233713729376429453516967848652513488759552628359236270267895516388211761845338239118991324209293469740853723085583560379737330817160224901599765430489503338334815419451924935651344179211966286959027256901756981422905452171037621728467966762052717468705084280841628472603072933557620829313176369939469094313322057171826529849703265212134087610124564052558124879383257245639935356328455895455618766823146398996748795096925991576073942710005710441859782479189167317505827464155756906599235796471485440623127073248586487477418209046394443303097924072023055614839939551521824456489402504599545845075426060697262689366578279176267252230480645144082762603603953622143859593569103221912297704466991627937673809403340693929728181987067192734520179047945987061183175956799826964511137028068856929385720881932754178607878580542850048749245103827339091257274005488827133962436254510184253647612451666680458357890780412218094490786975247405491393087116046320462428755418077098943034278836110321376751240580118737217188704586429769019817380104956897190503914415982466366878647907257985213930464455852587210210227892902434837429130965324008854549490162754437339877169549555758821476873541525782840452425309864026531661666899022298331263833692177428991326636136661253051738996614215008078435594228633561542511819883568130115729825619291733707132737098699355828622577625062844027318005747949992815131691670363942550479967400278407815029638615688418947916157934280314938547735426561556026745780504495730962308344893138594574090683305815945460111759544530618899372645371365106627496957437142535479933996614438113556478756835659104862577060745186941148965963646087559991773981001071936967396761194784018675836735183471687969116972694812118784750057465154157827194825970706140219971948198218286967596681950592549700279834447250612078815753335499424909798529193311720484092464254235141967281591169706865952820441721288683213008427869739456958992556052607495537392693231756120092713773566966953093774719053455482332768870576792199472043653635994125726802546952269050468515211133512601234361914235507708162989652630988395669769606128443010674640120266032521142425249766010566762119582778302246135229841201326101218924196472921882279096505508448672490350215306837775857942689846316499769348567323332103185589630357399633351481467653229503260412182277234259053281458209424267085214972069627196154845532740030311075968740111909022412902315824446818971650729576828764106661831765973911447993202470575294885839243883681101328885376564568825926647093290063336246202423053115831503007042534834523901733773433835888916536458225558126168674857005173180438946689009863938230765375806837594166874458857869099637914995025031023254248124483709277817887444587618375889887484341527100403313584154612713589101494212787810481428844682012979576260352744698542151334421141043416623795256656295816039508055493986108394099981504778973121506346402460506113092873805265154310373526334235599965123017581465259784227586598546689270101248016973933906611565231542808893327923141294041349206138942920400379677132178495896985976856526021584327745941387885089735077335586301156180565534131510524483652366329181854063905625221314981553229032408912408865562023256567533317557511583764254653597786760725538237693062095463681117363086592751120579276640619673147655918332808401055702104358798591142651481010724196426865179952685726009956826624166881797702266331167008965597278463395180382836983589169036309698901322330812259778721331420875422743102076111036155190174776871525030911647323156741617125603483875870524380097341329761314435185469184488077841239786549695524401621342202707811074982362601968892605935559480768556129210227466832519355057868399790131075569851915622809491724548712937690046710383601370668145429579179681612409978926706153650784298363188420421529527071706612780867104772391493184832170201937836074298180445888150888830369764320031075249464817439483433478289776123021775557092270467667611405554269585899147469822714628372380324926353891460007947205555729704259750013643992364874963873484164911236393668749059830520864183627120362709854056018534790396963515182367257193573210134591254909618622150552653005277959716459399653731993260558801810001230422540638970666809478897739372990277347691801504175301239875931814827304892298529144606716341316566986193704772786465652333257047829093851808151820681767912535101125257445824023370398551747707606907459886778033827104869845415530971564609827699906908460627579380240698627960352105449383946935840452816817111965743829467531687784708316698193714771035438347585806456215647511293950390981769458242492469765870301030412448314827856607971366113607225187338690532064397774645262534199055837676475659143536461713514902229489149097101277002453945219905506976074697968115613156010170267430247185579999319754714947740152113720096232291320963815222957492184326747836866866165213440056453353151188984111520886642580839626685173084631678274111625072564285012061784588161557059103602731504694974545314309638615806798671401091464811457949090286607243255413754914637281189286981549591536011484751614618547328662811154564721318610338908464831868874039533031596757635132517737045653314961657873757886937622901465378136589016488316081618730251489429704058572623549823320527510950318039776536808376260576171369403374871762560711733632276920083335104368183494585479267718575401416437466313560256896078071994598969246040895940361337973253006612244451511568674742544471401214117684533278645085658577156591837817701928179563121865116757768615747344135129724679237714325346506322518339463269197371977462304642527967143585232096372117082977207062508971658424837974239837156937724797022521966535368111646193782360707441446947125463481439606800948583450334603401524131824836428489419694307395036097578548202455019621788310934945082554596600718268372738865933568913923031527054168076071116309187167054293119795423318195758117895115472436008986833546361205236624984579171677965388135867104018434979478263572776202542694513544793330956699877423003454577870070938659646521886699300083756240460970443110188709065110209973746200542078965745120943571864297707563283240896998392668287346972779224100977809440343620303421892599735694091129244484086676767481958744844207440223382396024143205710204519723540799719296492658121167109645096611491148366731536443497821093296324782074642994023265527806087521397188245296497916514364901447393936982894639628173706667993952200916930224097821663713755637467553214823766278608800635825712744899430249751188392667453602830011521895847789312505503788025398673305637492418842133899138371820435325020805733655599488822193421096892109769132517347013891427799498460840850816236036547578732965469810767043429010805795797048670001722198809298219477979667440453124025877939973635159328309193078217033042394603515857901520525345226254501973822264853481550426953277864854884349890128380659653923630890608182823727437658114299470574775665464353523918331455091488527790207993346600137447018289200169748672940946152121065099429080468730240408226359859448405635166557874638577878920119557249315623245764683060064934078453738120393287771690986221016298339370323480710892338083011548475559094180838800798570068480765014945959438844123798821685902939025515987550837868095182952172043092533115657020076031550677892137143886930761646100497489321693561341529713210780759696591952141637684757133067923357817095821849024875070676200672560491457561497446467711822968458969236745214197458649586662197569855726687689682491911672370954719534000031208167195943073884556591420987669331756594857639866139116333293081479631336535748038006658840066208795782321242249900280102794654219972149957583194635970439093542450147521265714768612382387705231520106659621198091920515799607347760760793284132248210304375220872200779859416219127593566434566028695250455455812057070448603585279117326755332892545967859402723164682276266802843789795067713035827287014510240805469200279091975487587883169898130803677381301078387057016782620047606680667532921975494699373100576216453469687473647369919130973811225930470072529697741099227585622524220426566747594898440161843378984792178312333940581849508232495799906450189627254293211612973956403343846675923683566287674882596100937789046011563592102652926767674713530897794414100298214264162652724386538536278064121170225371203864548078984099812617552261370012792984145126328917709984544674195663129388854296559475743873993586457448553551157401864317843769250605957857224081756700721964531955278359577202965711096000394215297857850918991168389974266941964056465752701036018376053885916580468962990025883742494320197635520486094133787739506977110889831493136128521862635553580856233051546575669650967261749242554125108900149380851036988044625845053118550214496107820559859632734939870234252489061423904155496595914780880356361619919527382655187397869734204562825075009983549236751044483722818109529614737733172382172980787182404393471380671770753913659879257985407158734233828926724681468232972302644740690574652098644094958237018501205495791698743141331201827444699978924938708361206583911529789624221104871538567620187926088309486434858291179237839501520112928718290524891703601703144692914872063956897368695334960220830861215563895554338777226739906922873219204929875971733919696352962409363596395667924702692061449551946525866962703299308808957712898478535391625223884050128275136434285603340955299271977737462632551173730510330981243648179284191131149492652821551142821995444003275922078375889931810860820542897282739920886656002182636666103551930124872213052278526079334148786830599645779860036616123932865440669848557198045219373004314220223728627162071392273945218948091867041046981022842623358279056997430804480330146943202414750799345125256194090575626323700870105743644754288707853352329775367753109797920233903088721554127721874316896765132812259282292738104648457585151259561333976235170551306616833731770788201356396821193501937554275699623010382544231836567393500771398774493323458188700062623257437011665987006648828402959109235635013650420819240976524334818407989811046070406662681059726692644233792540582256041963474943433800934414753808428789285189005355731438768374418009833560364860033073939218214525236724064712234884307834052278796794278498630635734492707869585105649418514473868498021086773295078735251312463577151733457649296326840528162275745761583787431010623983762609958514383888963693604141288682172093776557627547414053514666615040796797485484429680364420287031615655720235637977009450574318660967017243352271496901749058465604722624716699617959942583223228140441968372561166607696752191664315225589699909703267441596025690745040486398064646265129883729036660163219217950104510442794161773420317751589063386476443726898681576271875763140806700299692553429085078037296915051965427904577365748423405560729688066885543888705254792223184528451496976055149498399719381647224978585620095471688128468901324887295614555687488275758628699641715017528033750813340505469788404040613090879369573143688508867696983336358559060897208179858987755566895842362188991283521384743590187584956068695661904019401127987111609257774420148152729381249812095000516502291133471540275881712845925752661468609740785798224804528063928646053368330271502614212913253396263706809721919553373226243441217104926588233068286520471459307805835439206399554565292298120609125265094829046982699367038231381720573717318743076002534667655364174856352685297808097043583895240111923791454315252727093571067060628221948788018102734148494274372449191329731248575246171430807448286903622650070496162757633116189676566632487577948364589496311894297688121976601735391587648868710236125026604596957013220170504060392882059520712529556420114527500103989603611905599588438655014337187587706396182945637862701067452568053545168747457682401378669368415525064371747702386132398890583862877068392980698886265769939844701653173124776031673776679679584991668110172610225547436083514215489801445214253151570125311426970568166354885644923366501317273014541679446575274557656434835100742327636996486545267851034599020262456517596982869665373118965714587063334905876418697736994596519946180969266710933843356522703316629592754691413969652759085917294100247854982292281269663104684626896296383261620357608691818035518142156752011291610335210475189856159762408341254012584696204487171198969174504559289929810743507838157074472807995709607118287675847271486736872126378942245539223596687245380616856003246214187427817189004886958785584438107726103911454735581893045461021507466290136470983156834595098096804260370790328854875484136392281013403172018636207721430425649771107638115955646663788765904325243543806800161134044067970304288372264424490430131234441715415359324830083100120584768359854580793121780113912755933338857843411609818795426298578496109239093544556031691512117118216330420134533538129490526119633076831581763353888139489831413238079715792640453660270492068590763834811322089107092272832373303833860074802362790590478856275157623560739139267585542025386508161882038379463364440111159505835576123032994215415963656463047603706148945477292314651254989854103363824332599111161676459332736027205858266737217916780130938068334996004742530498949324313506042756829331662582202271454378670329543272255131302966410229534567731042753025744417560752158123528470282132926973971554352734265168297562091379138975720027431765824712915724760318789530442273678278886457592793360506685614934173953029094223451410310495899453251716521671226986493757234761408563383592166535155942454072291659159441627191399646337280777519278315046988743220164575498995133441418606696207582570184512748519037049356234620430635402349186942489870510192055980082331868933938592297936679986492798806432524091559760932030654812704055387243680712198478503827884675084187663837999487701628304402141127195065754966104346456887747487045758026725920987336514917570448868552804000199801147170858345341796912143569317874562880770824653474281120087819843170051652415539702747187350478892965327258917708622677925283354242896889976335140088947498852189190119442549127719139862458737518816366250485940919333898708999659862673623639828257966518361321723560024434037402235403070170914559561197864285414313986107406462968483930624503123151268373089963559797984472757983605533300847804682859041962884531159731494203194948146628378457171624521493921853317516679502960427559499343249901970375301198737503186247670970609845169932977377641096716621925153572109098275255941349085542662209212056357795616596105703694287935595330791908119470058988847630656452886812706783382987595417933147883884707624906426131227038079275937612889897188224998889759682650863465564783853766538871003676420433054707184274225692068057102461712791500281688530639815556201708704299033625033399766791986803475592829105326936723420476355623161547541923452420441654719350032342388059078760458190534254295155105738779167729669174774995551222277961380570951758315986355460489176538188841168405885184814992816893812776717932128765573317903768300043752148114648028053413868339768245978203065558573849802841119049905755324051298564274446717705295187406865810689842683297306463654828137390175386443117527373830066020606737678072338412555159349209624680309497250489308771300424795291460900091730444884718729162529156719561922348381916383421886357663215569542219200125731093353038620226866490600166392215780035651960996376314772042304654359160086290121506153106430169115353243836922916207602544705301865425747753964799819835688281934836996824624363537107228765206129154424663117368085944141683837422105697852779273160239783142230138309136856403563555709193804027299710441866649220818457966582368743739974081447676163315945875269600541576177749841554433312077712343544687079149555760837998174834477805887219345726885828279315071786270720931493292389853687011400889287019286041655187707868385908179923599825145684590190815245812405871244650428051690329776574850300314266922588322615200090664081012196500391669147338030042143938100604098447840924744587400055763252344596206969729494621139193966900793905445523492221876706827068140054591067297959269419651943951737196600079013144293979110251175076270070288640624953205520394809127767093242340941725387137633853121672941028717381740280704319636309362038306728233246469241446280185249154163407152806870983816939217850514301631535749684247192312934785755931344733445351416916442582815961911271952004761020151376679208214567189350598265411140409687531975700325507780342653808731349061293062246317295697117526570794955152795958009630471274003418196582616239109805325165405452911320052658074621175619687281657527379679726142815991421140768501313830622780629398387272614861928652343753564743845770398854248709554794756930443019695650931195294893898114244382399255098984554179494352646620232088613539237618952070411774171195496543694921783756637966753578759706042052704409902419188014749132372542691068390125238172639779154347169735249233938322328992595280232703181065402870532634301497128810891266869523227648776036675710562138549634053215860907793930564263323190241140945885994518099185108284920877657272798354863307467716727855319644157111626718214161833519263637243950781479449708639607535424649625072006306360573339532238973926600614098657056398574848153011550249412468595614352707346578217186829829081521103003472608446782641875056415980296357078720191299864211745873215533206643443630674745121228328647321280461961429802486351101885998976733650647388396568384545988902015134589112399476308278373770854866996268923142770060450233961435726154804739356097477347688811643848085896349418833785641769662519428760377186596402789504794831289424730837732573125148213942958479064658269549193158944442071421777839661743447919377486162877616596836309994222747752987428762630817935901065273341512252510089494573114908891873776543856986192711502855541445223249300561594966815717752463150641759944914245836172199436055043697280236717325984212135838678044216478777384779172071167656204977992557105097422973395949309539707091249936109018635280099880322343958007117729550311252825747172503559996689957021408056424948679663584504488411772117137335246168637368108308185876042705319812244764388177339752263566747297717829877114643108513725558499490823264761347473958114234286830189519647821962254930960965066007528258174489789246230017539271798537725470027221965820429257191823351163204971714367947294779160610051842412629887205337868048072048212485821445262279837185720048918346801285108604736473520480255220282390053252837482980458790504042906945963615466049780813161407842466680771104676119184801691468490425836807949485993872203996687993922341138209557841271080669829225223318808947335010886232490904809412780075111514119097112891281504893589654283978090947099658027787289347895347352413631393547649957453459648264283608775883036442106321559283189060720190264288601649910766140008053783169542463605635633881973908678537589881121091563749715396287474393785785371868249459343951912518541966377519663277834260878030121701500370895868899188722860964061707399335305871855460270025450582063639105757196217297896816466981208969454111042737556394499781136348071212527562928771062001798977039441224603687166416344691834160565962159241256744595687202442510084796573155231441001256487123170312130434919535405793820692300245008148481150059066154549289560262766358923416224971682397318818032351004854689300272271901660607882799897455673988714117331161786965043619586582159537684716909853771544451333968986373461086731851941593716513596043352188710847905788885288070379422600447188828916418316585012841372390083294731624988275035999833378494952846744164347030304889350445583657297441267211900368047916823716086825757324773421399477372640851432253265957004594954578377140250818191045524238350621098707543645935328972158071552364214915869202961996106337538532825637998531247174992109258584089152674474454051308992906927557292306799773720383321576911818340759321203868002728546394611446628917854011085518576247398218278005617588410991962304111666171474954878508656067340556006723610558707575709121843772836775667029208694661901974333443899017163287428944866762785060397970343097943965004222017924075513809534321654052066468215235921220809507173613785293729035612747209722330311803042845914718520604337415566094690674058429850326897102350439025158754618511047879796168462716813096753925028030804722279673001750353966741550730833403788339748374925045787523137303812504841912223774661413056313194611660662380337882940813174524333822946229269829553956095128967241007069707290831153919746503141259383406459780677557373076383520697097295878531959073476146701558643478043569055150784978673370654639254521268343608339688432438127305337123944329007602978102547994205862942814300559473879348975606694724833932344569390695069520085308276172992982062950984931257889522406470676791802012404440899069466336946561680668470757163161717672303280480070745805794412452825876392063510480915217675875905777471966227547162697001483097279872896763589325105891236389726045266118912985409494525240560136010538481335394857150230655910987589795908726502503091325951228931921003663518699887325768288216729381833861829395221802713116038677288614748779262496355665499666439169740347480261786820705515788637494674141556824261986811695001016972471267781944558285276094326689073568092547644402311251929378579835743333514243029358141748669416023770714627139611173843318732328894342551062677578690549498245524498854013387997860077768472191115254746958232115706956965677176067927989916128310580663081911820147667124366260946982353501403558332377585962061874795280879515332540225336182396486801487529544700121130769210566791709657177241323055812181271076926859262529555950118303076184351545514855818098887281261424800198994949081297446357420519084052473280177757955457752791604660691787241951320831478552682117886286954745907394859951263674484188966850099477805568846989116829462397315883876999364029882074550136081988551698695748829558534103690199346741961288221822171072797425876712822082998713320608456953456312443611868846455748754994054769240344200130225105101480123434551092064951892557977974683443014391766406143739410929608005197155591294688907532224361228429207014856053599739402318368147459902053242461857913186265046690606880498455623156176253650215591708067086219588375562305289501473995289649900153701251455536153203809833476977219653762673391966348032081901936868899707935239341840138467134387042433113324432787059318645841042972075426083119499546405590177410405852563839578861852166434290122798225719961487727477836466793715230267927825502965969971434178740018866488948928615313821235665928400667409713249404256061192294838928591007743059364635197801206102243904510174497877276804361347676497767818251846634614418364246914917399520013515352635312031678615794015036946712129344076044984511638183760388631993645948861277466303002464704370876761170442707560768197577084034070848934586603028681693437742064178473611427867966441110710973814871494286385550791100886987439359935310254664536635004002395196397887647419900445119812246511407157482676856511268349954819537792803085881078831943822193791104854013488818450469942365721937263998276137872026048366893317455270996896835209335023652556481138187261363663368955880478122004594071857223044198528256017715641049104497974287799543406204162531823200896755503475125260079084588505762019935746589480769547703766901061099712894644024237689706811899257780912238119144204234546716909097220198534879409084274594114779805499709242555379614557227888096052880113273019970381127300842983341096645014782885119033472709431061471631260273612088711821367261119720179968401891094957023762355691255936306125497668764980756794697379224348735254846951541717380813522078379709352881812556247760540776301836129910919962068283970997833375410261087929985783542297884459230414339748296358049532843987647384844673859439075611466397031723349534195717953440456380550053771141505554238785586550923489289557831723284786121236155238376603500228372859504560915129109928149950662994413433825372400963041875993509041685273287115961523782414905396883181255514313421326858284501361959361126069822506581882937810834112134030621191104680389713493633807278275998394578291218793662648460720762326218624801673128509250470698571538679112722853427205165722468044899790779149725026223665538005999698108109730273909937497754093151641538299684806733419027836335304284499646564684128684659407976219113352467756897894728396779852349523171626464623029973669870868606563956364705519172565090387987228608450377280419705618619018668722902362003392733663014600586037469840559057794232250676340440649371685320190779973606098705183010948116518226863658783554253352350855886370892777197209338823105147139464008967707521075148446205345949672053476122967857759348601763649991738047092402753698631552837729382173665631136765021244794188241605934556503554038611156645883031830094922145372702767605888882135772943111104366990463447937898566890546938746398358341789048938948086015326624887010325170671540855785936712948763240828172790965247979305883698525214468741775831553352130498540683768871714849419175784446736181374978608079890252502338937143180727794178874897794835023785590360230375355214380055584421582681624969949799579665943612205551785511287453233822868140762987828820470749442003877092266645281593230741226955751577851345217455668137888415481191330170186710186842595752799283685686686844423686922424401371653791418550016303419846036022151532643381350682586775977177394861550878308589320486517100059492496602658129521190719724569647663782414932570162215748532023193074934538210998021235753335169441822901237661434620126933640986938148129155124584483502489462198341372058627313297049959214180563910362526421644631064460584651835911979229435359320225145083844805432416558269161496753950752776957256877515875617152814071250469184861239439629192682476427853418993921266024602657469721743975494362162488505202660349625719836842939124015049499075282239405315051269527900858780703478771272067166446178574220916144892788130428016598237908365006709371075486321175580999898071193042846956895136051044104660096572728237719111774304192512989820970712586784774751387482905020180487934580676498920770308672980435532970384995627354196384445759372145047603609549866903446172788463543995585407899497309545715885812043432385538725868920259103695505164524184763606469995085627159596208689406482935698362683572842430090789781772515459335025090291801302173480297015632259750206818855511003741022280969336045383557585968343268396536301895531387766726036334396520648537460945027475011160129509170449500348086539486792165329755931248320528360949564556232331313484461960820333064648023123757184639552819871433256783582254420912632587693550025145652423216545267040519206620334617821003121453539472254807740222239768615506063876928582475004146857598286827272083474621678187358680410661001846286679191157159141199325865818601299110121670698839717755926788522565893361673361922476714546177566285581231831496380708935381101790514592617648306540309917587502197477297421127192613783966054687613523600251640675329502039569499697224520544127160371919874544969841743926600199480146762573835013885597602661255438433601194819863178037977118824464480231488074652677639940888097023611464899980488103290655482260455481798220480469095130659340152658610461239008358590020159016242999770645757780253212716644023211069133169214859960234482361922959217229373305278842757650298502761915663814756100746278648528716203493512807402981560807068982871557119248610143291175276688875148964576924404139159681013351584593710225658662743440369389119201616451437439658339465022948023319384648702648634931397823987132085818614783227457877185221527176165152290049506083632975273651971826019866390657091732904994011622834325543698604125547245163435179005304124167992368676377807342158876700189011002227106739070539314828031250938068933478281948366451931801891990678589161232839079703445321304086274847703645564614015533898795715138557322775824494651730875221892515713062475012416166920017056917250141276471735500210531653226355192214229515663078998912482169983335682047862016060592975603533312146971592860939709495655328080542769524417870681718764238988468880449567958212056524780118903955285703670904998177514972483366307137108257307111408664265501709913803757369150856049761727283375103895427096786140585232818991209039028062233475479312498305812809934016121404959361335499353346161259626456143114218565627042441543627164743526691890900065251449496827506405729265446232423510211749907165661829820982878755124899905263908351381871227480432648629003905519708901051824267379747925215133328016414908686371448980691626904283879424192427484278250886414893242416852155761102037963476148914747195569836009455511827174156885657831237504268660004126299371486479802616417868660200837593395207442482926220193387883842358305713749040270683225957305257925310900009868945478146608834447289902489484926678694937299100881041621584692184404294865160180699354004270054089325850532571074723077493762183541349885862778022828000083487340800758709100131840065461694532843071745921434343443216912419447525712806025257056756068968633173817876737255068795922813617440413968204199905148533879964832646535365946009884656865555385710657008302303437526072510372863202133821995223980094544262392000652519385983687628699288074685486237506532216793162432836097579520707624238477846754848750742940138047882802583557288102140086645213820985731260821744633580932864940682203481498954839131750970787795082534629615522802081323845198117918804270962179950612572044478407434561729005334773970015521796193054926146525867829541281666863484382327167269390516332702689796452676261863835748351861830811720360001280692709332402283931180560707055527787362071474579215492837745368274391227259861980849977315381014500755842052418852221291494797792247357389422057237562893042296871331583018483917183471401383697884641352498507256658888560595645636178951674425315013519267097048134277778899948754789388927106588114683886164561245089146594227981713396271234397726588206734712836375219114010894260453262085861567957790575074242815925187741549996755946215420235421079522454524799712407837500922971435506607879068337722036374873112499751738385982403209186434582763046372577150654146322287530446364704291769659415491743369773392558241795975366973081325795818518635085259921308544614917315935883777860392032744476937513908955251968286870198952002403165641308262008262469161969119316207876481734142238355453897517732889114041889445398283213740821011107053239596351297022942300909785057562988230004925583994323972660334884295121584026657066741485344665827589895274491123931547411893865500371452984363632517420182904040553305324504329132877548416627575934686247899839888134800855010712500660174367914992336732767476811439510085398469216382023404919859983465827728356271087707606016498172721698983515013867008545350226460171339022336760062387166526523852188136083146424441836856219565989246867945497811090699479235647505777695949482219855014268849974421787673368379506766241346875490810701471977209691003036144677531251517078362616238632334840348307675988063512328942983889988924293063121009465825804350409511589404479802437444068343842021325912751938888621839859099614214093523794136024213664926487025762710532708404368811070822713229675122817450406345693236344113384285554646773177568184562402988974649609488480102727307687422089199468555666565229317856999878324617931972616550942201670902821089503348701900513397806463262704928738531542474931783378624829489951679002696285714560618421732317206782548552575059597521385231234958728207136722741175956293952474341795109076433870895167265258405994323337427950554852655523481969056712594321216721001299845640666634352389333113511508390236988116700578636006664317432370944379618526257435265337125230524201240044791150026373691454076033798460450417360157519208289979796248903904721741253481152727084917655441289587364802301260648060398852657048343770673543938851160311108264421570163062058322489800267478477590748428750768298165336782683430849031340905569035585308772687212118208284037831249314187388888715786528324496794706187933802517530622021952363710319502185328944471870687857388060617302288676654554457955296892193021146794880422478405860113436284217962406759490700091532770627399243694241487019207435962944833477352367718340557447977593684044744085104840942461766561219656846915228046836602379521804637160121226952938293803331133610685761277243156054893602185766952837688971875533056278326958802717292780517527194178316404620614450214524572074070161092381725051828063585877789673511901450102872852985598731444214258298826531007489398308479707750998007221739237055269774820427370163263454952351352080514693889711402990371251967761714563162447749093978190197234777538662720403483066904514555082403509382256321066940969236941902601608352371181519127196366480645274150802524671993199529582557262704451336706232709857210624669852064474796253560020319353464896453563167104898479097149381987808311907871898502126324714545739635282169442594255226233884248097311748617851539171855942951545943396432200310105218130457049826282232025965470498568358645767883572478542552066798758733088411260494622620632607667094347439587700845909167888486370635823245093601482522697812437361442192548656987876636282029877896711072495533397395212504565552844998635571321338521387764599798813217835723157429082292535477415203553541034951097654201835868984378439364833362580769586842821884516129538936260827558012107072932640763957672773834022505016612113005104485895896097036164608001528755095452014997171125891588488945092687016486542069219339597527887715479468367215419722086190644613603382945470373081895518883781877890065641698923941105611895980426982548319677410297237749050042732724835329291157174294468598148889911229023666706340768156962976040802061861566161887384945650082377844732674465337110959194709582244675082510053273413943694120094303103604896849114801154362753744639128118163007598207701287637030255496725731499296527886603549169326219719577728789477883630877148832331724554447815938885862234337439845320690156621235103340436250275970580231722825343575042486473248482535732304176132367653969159076658763481479583781403783178383373566853405782528417101399791100081155575680336600291225357622222677699065730695061699784946065787682924132286561224887320139531657111136104377443733557034377957740122421953237861791983317890807348010235737585515066425209252335955211291657784715818688065023063056364905674058735437266378212586065152801017517991862010020555901594757187492330727980623670994148876346845958181161842334683415213019162033169500829730156698079308079621756397794021022060152373503673052510043817958588014228259114200486644967088593979890159554692400188216923407021790739808510969079063418335775179811391857061915235966719302358957682461325927329133068640479678465308364402398931685899169221535998749336750370374678298921966445633566382560772540935350394127038994949754568579874264099578117599067721470723626574845384216512287819110059275518591775464770789173471330896921677940040651422521363661888910232958627125884075599221512257857481634976606248032648104841852868074509840973108985145154804928835840648831407699562889822161061541562351753139096824405893539097847915918883786719670930541372663551995774498498716738371956009282699672598199205363383619423590509893883361546743645252212082313073763292160614377149866680786776155427211319671358300243928085506051227181121877540246356371736957193945541439760917007928080084407195347768328458510352878031148605840168469541481651484353199538311198200906666063238451431703191403570094495947881409626111840458694458697109919073746548912605697302603171968519504114386071882319982069370278747365507331082837598820861224202397351156991966205877486863633656853654039228216206925157746116112140287151882763204862446785157852009258718575081148174548507817663137231517145249190614094706616279998613092873238943028042690386588438711912538691515083508074879583942212302933584873408816832141312423395824929583935063788026575682259304370661248825742508122976375678719256400053005858837826744548736531927300457442874704430897007664440559443610219003809885000746378913315769088457496972031107737008926310206841023354408029276866459919997671292857947478258792027089301447449728426989824573861383103882000757935442776112665989500145942070993129552396110003380347058182698762910970965741266361542737928777151704402090713596683086039855095381478959011335185440194384554811982440226934310903180364543144957183435340050014082452298818163977069986741338003805601843754378176547295923343154533526479411072121977380168658315800524682662469106196658620340016701507333632100269592238220818767478018455915842180222026019419732190510460449845220149917578239801339222293642077839554428333794372871102690020631298112911755847753199311111801837687168131484240033288635592581393734511627672923481688045477567717776313154979359340635146592383910969846395398563974776723337782602131454258086328456725407431112526091142260302648064729327192557102495337179498450099410893897780840396973022749459612770643711217142628421749370907203191046289716503009012497663901104534084486381220299768240114803228421705370037992841686857215516150273318693226071450568151133733982475847789404949812022340317237795666545141141373872579216238760510364390447225181890863993332034246931276723178235695906204363675498825712839060820220109690737348784992843732266216723566930210215592953950246350276001897351040514770483474019844210137625411589377456693667304959189905293163469435337842790800717695282083158607915227088759961390560876557124569167603615748489730335472116019066708402196018101331994800989506568396870475895222970007905876423110038669141022016542806872404548034380467318454339267943056778390674760548482252816425965609734983364637838060349337425543706209565871453955723324766138475777015526015476324462703344738796294153671845920417243663769875021799152766910138873752420926972434776661100813427064490047201772025187290636591130447154002366968496958717798516554691997059029954620499080663869962515105457452636886871774995715930075924279313891739125731544782132799333359178805868382999175644662555153576360686643993421828465157058827750723650028418236381836551713525717834482709693664594509083898104069581687491148588261703871822220935003851437798678307784125372578954357768648001553072138881974467609550826575775310449018787006992673407044935796933639116976571755906621052299881672248713781981144215877846454077649655460670153638575615695573787466747696066557377466320243371959572665644253295664478138968264567285648665129204746590252607739262534262931877155211431189378284871821605486558984107044796624762514833534914676480138313843562488130517477135416945239016121210298095575547419967454153032804882247963063100109219047943426824698463225324618051477265340898909230615880347387763065120619459700770083813287087130815497595643066773917427076167700877809344061190930884718599159794303587171040949269422190601890511696663107517210168195687856571978571092102951506797831407615165337589769909015013494308926099871661196474703765075006367647347242037140633435751944669930278597312811838429539812841228082165128634297799315857690000635622011391117285953045500807598630890137129800058356921444913858353000357233575885870216625326226728424240074614870240850391355905383033314465505265125975734276587080507010064968474755088770507690524588461552107664707062280766337974579501573331877135646360464978165984830996934660501998505685626231497280007976268070101134528997264112543388871481310772894062128225690501852545195867965188635747461972867518125593147900617305888936692693185352654891298137968316889456621268643339218001656791717684078273258545650160788940869218539329632113021387015239891162580710206107824639357583316532950432530356234743628982396596377685873955711945640799441522090198361924838362228621776100145344965270439179741857943235032965085377535828871824204013620979376777765515730873008554068405623436119987617717815847876585338273219364712000572913377031510749614126230760632148088166400911647184725655660064342545940117994759165686718134751364583393630085587454371921604787848140142861548584691059834993591879567029227372873409404313422918079158710201815094787660152837142708379126126840058179537336985315659440826272038112956453181062522054175908496741847554196128898340374194164974480644860727533545217314192848177651531655481035921491027278436439381547250655165845016281765633581096621086738918143602172991863218898719554243668226682955096111177033419879317957661610480082448713901956695391060192291683113336263243018873217056376662889425252228463710317281671325659204619979330013953974120919024494458511615911932238534810025140427480504166662969476969971826987093081181919259934630907765517428767681448213121592105732392704492114184138566908445284532839120105820468770716584851560716564990013711492495923010179749337905917587131706602682516868614869810798411998614087091906227334093557053152341025360494734306266505937759234987887588429159749471060306020251077650745638434262855715786564808228118662093646883429301478728021276351829153962012560915120637394986571281337899913956086939679222838994088755772682300614816325741417100117092558713477851117001923762448473074627276968233463056182904968447548803042651499769903711060478810329384938365906003736844466529950878723180664111419985493530501115435895786133317505223441459009659853768967184519597068621507207158444492935674622385494846704531649168228532441917061852459297426984004868924870871685083677989250574916335024376629310869701352453267344990108906415145452733786746016313467810214150522628866172410874900561362311611054676809899605719563441671982354133706034238216734981522501611032222700701597695222279447063891205568795818188452219792019146296193733164936347657075669525556231206991008663822430310960615645615898813843540099299069920941873505623364825228418806227142081373808058000136497229924027288904913618182184083051614670816906019515385614380765709407605301529512141219219060795960818719305755470046186276949266004647595803442247476357746480137871330013244852159553074378012774488950720904162469493753346787583131499166613853066319295179781169942045640443019502249755712930843897466250845118170153764562189221605015438108009940169006092309181246101395232460582561264046072551654035086745382009311713425927035610321623181122048043287986352255928532376058781254015830766863705630520557626563797266129265176261083944968587973986597015402776755672267529229159403100242207746509064705353601942461337974890692677762308543091737568044713423174935051536420652234065837903314299806210929434962676731681316570954559119398884121494192352302105415511110316618716511688396352245051190308758890727510494491700305127516207358330065514070488094668689487181862865412278791023477704589574234475426467299303959765678225404927287773052815744073490865392825202453408952674111867701245520134686417299737616804905384821117052061918824985516527426351946851109135286564497439915488619280065624924602947087050989518663457853121267667366406060841335991954248862789026749275879269963119234727553828012998820200127837704425296917314510820934367974927399259462333968442440124675424294249345717102718544613083525106584205472703471409659320070881378236290086149149339010887658691725274912876335272449211269653663639867102855853252874227516652110341191221277754791427597057138397086090177329011660508557506701274352110105987159873367427687731590004574132136194103617301624040236701756287517989835284210894121515844677694889209307578729605650598922529256780780703786853726865620939297013587698571820003141121714532478255593411954330245315195151719329386960521692484806720603575514119210626769668375356504494964468982519424569967375639464782961761130482696928543495034037813668430345404658565993088202367413952251679884917287470809864914845374571281076450467955225452262880164176401446385301141744263576125245688464508168036407629222371789710244821965869896826423393215828182760747396728975508435004849664268447882272064453576848757791527921250013142230891160857525817500869473281695604132954170873880545132344820343694508546578375319790822268440921265010918263170036795863411589626983379236809858069143990613857245133245530381859122771964558265090996246361973108713691230620022922637402737014013575851564280280779465840587557500208982990135837083972450693731507735545363005971105716784233403981690668271784943740847787390681893097853878207580386614530627258283291363244005027092970724108440018677093002671571611686284302405690593905509720352249911860788691458354624889315664584731490968432066758912259849050756615697541896703940513642671102571938602268482062537242856932585734214897898251287290938548832626359202416525501898894595639426049622647801318878771282548511313921205964145109782933237739897232897312058727558377536400777333263658368698308221813306186602741662983548366798052484995871130967047820320559062427268009436350672278075712741053063513407251824143864995546592959399170890152964491005114727081449298027369407766978925473150517556946121857321975234384136038758143529181620496451508566803538635781988092212220953455973917101527053216660732153918296248432068884280066615106632457423973919915835838797484940480292540321616922061578152414439505202934460389346951483569222793239949990609805767005221835861339167158394626585700715750364450934672798520808243893309718168325673201159339160816491091071520546939024491520428314100623347464417712884416592741352732878409565910235011790387872598048499109864133893098675547133448866286795595117398120409545285674242336726611994470865439273443390776976995643772402065748519746673954508977899799480381143635783459417589221936460723966941861194838406452169696016735369119430417709609870263818382528717160134345234994356411283934958552809536554127120609247430514465255513712351427629937910816973573536687193604359856584931316542781968792613227678830313789773516153281300231342662516778026118613454688551975527697199257438012560166856254929651042071972620534779840772290366885938377826344876270277403299940586396991788868620020892225944384337859071769491707317687021061334505071251048880706457538557397156719630096262032653798408584889743750151121036375742364571930304585053074969078793668809422505859918809643670926448778011318874466397616693324809414461495761822070510151331960620625057878781235799637422866221008400603206056460010853216466309465582880142126293756196668594211371256518856568495016465577365039477605979715246994374623790630901367921534932710971769333076163400399978540557551543490713970186679144848935933139911190330669249124616373428135954496667604091557924042114882146626394317804639922080866463869354553095647510749155088303265431248670955237769082821681444623285803789092114126961036305524073504527458744954339776982302343867905636727321870227195796485654962083484883676402910371130238488189050887005639433476428618758699859881618619499977589615399307579770766356923065664421226457556540481283631134830788777047690195145893140624782296532475623841462775206636999099879631131541115413432244108777422127189085465833200521072736418293133748544950060241271268741512014964639428858880238472595367377232438285742078039800278250286075705075332484036823648696941838647374812590807862947716674824622868735453596123036473077959297970105531032341032845310920082915249585711614849294164373972771752842187671908173231463103598357489804277880944350357668506368271409852475754889708125298184349940088817639357595637878718850070229141406951766718303824816314240406363919387610251439055570246172765277850928906083826191012525896598327352311947612745710716237924714952267117940481678314825851821337440769899109589645947987727285650843605256255195665879415421651507337690044783955339746430101731995336668894544838574376555318560585481182698444340162002850388382311281921495090873073801177571574619901357337962541933208187342193282823669858511550812868704057462690960127456594448933882359693084970900987330891344649458769920131660554286840815961900218360372612176460025454186109935838422988068171946964366630007531607816635634631417305471912017668663731093243239842736069823077143862311578260806088676507037620209573034413022921828717173194892820984997971142712547383736041080488316574799938324625146286906801919181784654538105487742736931951791542324623651287669830649450632191326775591151961669777594902439906047541455427504058759886525275868687931963688805335062009284856641048293263830011389860605027785499895746408438890185335356328091473716905787861257207172018356664072934215195303249255552375162069720522996054637476039696087335812716622214977805278009194330283453222141850349582576078298270588565653098127888256197610806706548185881481173179030020273810357074922323582001093633042896395121457162523149654239294818625175545746962279566621362412947417141818036757230772043292179932643862001941607944199060446523900329503307288850580203024453942905698091739255039667913430004866528634130851273810822300290281656937479102928527438246744675079621879043958968226126447132347042021495982053248849144443490996041261144520800045391293555483806270451660110922136334819335795839813936940198884304756860233449674943037448011489282773194926119699696490415379664912860734376534774091180344414231358277087464820518913286261298874204420208899546862934458267805452148357203346196063917743432318537398576165168529716993214049279322950441015396874437597508816985335238347483513806550149718116474724249641125022040412769819333119012176725312858018376270707538303057939632108770224349960272018638740607024856217753492814900705784370619525241453160987353766695197761724249151669243909485922147791518011429308633777306065203945516113845913786117603077584528641436903940871178970979626695133013817686531873110327520956503782538941308722353730448896970734729303301509230925454950126182749951057305661243962639978145546968746995466727739774232286773398213575357585007982431519534534079125118122338906985652682511025531196790778374051068339257347053834515180820981761883335684348604473840529677407696604911466303507706464506470838561800389731568207013864380328090628197733084629125083483373755704131103313348613839286650401343630648787745370502740851476434384144243706637499975315317036016203663756992999822001354417945391892007323563693418929638936367401830386247645189937105846550723410097288117328725802544934133517571224208985589974738992920804651379232636933296663209657399141760716480231432202446982615693802280303120361693282982205209109676399087673077179666293969059884545460053822227744488591083315387007471319468900575057383089603976594263703443695657542837966527173004223623997300816110829508318604523629856732830279593603577780468142797059949945599127729541713791307002110215908548345958670226410351649168970953715102704671874894492285404044807371900429520712848693554332272925940407302000746528805852105583690031737012325774105287228784130786524486123477142515165864083209967343694331812164653163946370394285785149766963125290379441177606583715634481410787409210433362426570028681910493544759675386509544145329191541838596550364436799982844837017444028754812572572752253595697390130082801762444213789082919083608043896867171592092552166067659420435185604175753007336631794741943916040097435802500316824274644422559471638809025966447213336024032647841123637396975742359621849055883385719887782259293917026679696903445826280349701709074814385435512307977742930677817378740063861319582850602417581821772589908034785943655540277781250501394221557895897146954863779419989503455102291003163818337498432734051781430276594839088372679192495516892841746711643639685370738362175427253309356035957144431813766501087896871106583725086034211880827600351920774676170474688643969668016204886518894792130812765800132804713676170568447023229275041510565175762435927585717770637643296799595135120227861401920788045151531873179189837349519502358572838794974434254625728338274661878662035757299082249802903313298832382725187070454230103181228038347577215725994841041674989685626170541325249004917816570421994899949779701349157619890945535818209417765788390012393957309860271067590695526034402814420644035971734363538740258999656824874322592655033577259228910012634519378074897663585137157170500994458553065407358390970358000563615814235188847854652353134844740179930350775746288022685045799704497527727397385906031564996742236234146929733984793647670319004511247156047300618133687751639357761372680723315590599142780645783734389453627241067726801005048976430946003595410905532739062231438342854913187724619714288733009665188278526630544543663216010961601767093818424664788314771689413709842002632318199285029513029462458936107082633859191246090452721604255631265632383943635202580762957688317567622983256232223870842858972751778074766068671161025973188417987877832302388652372807869701398060287640660981312667302224960050287590712960283964318298688957375781389126190752070163667480503316832062994543725335331456897090340835455455694413566978780715202664144072197188346309660056738799543446740426233231815647124541428268203021595509038332701376867649074647682046429747096831286600932578723703170838500259415964437192777214794004346505365643664146538008952136826486906154436899662901013401564946818810216283967751792850272208465776066270463065046984917930758853585718321261090999980893868363291784397132985257987720919067044391027376075436695189111483293414854142272956554324829144439658735895835965566834188737729379555551116035439339218569670840663150339766428665987796721053817652840723322488105605990835044917337563085589382644645677849937434114259779818673867669731492766780820075172932788230324452195341878084486946995163006651496882257950393642081254893684356552206609303081159355017494135755102712408467219578305267389855650748455204471602360646708960439080520886237495505244573870954228793464446339790119932924076639868331841617129933162777724542021746239198491131989605121873045471054836556467275185541286589783788706214098279972848102399205115488662103879172934599724811825054887571870950044792529859056658337984067523076627633285077831431916133178410474513719376672597913818433599598064788569585063428638605579033619538910660067429058646899478934098689772408099442573217798390812631696027740997209876427348932460966601076360047786389278137474326115250834683604669558942090660820475078967442513239718744350821147334987801788406060170412039453757071534943037328771124469971803608312312774773781556255944053833126491890639253398963143305595452200378942461612988448838979500331770577760971102887420500735479412700538139725250097638122749289392573401167606320997610399722555720558098254461565109171344156978290890942413594491379426239456063644216474807533781590087797040064970695836031731904474792508277597912684428743254892737535571034310933769375018306142259859206426158422015951929561145977439638786585808730510231950138751249738080128271219001852561138071783156751656551460571692596368217946666672225775969572938180258665849152317605152950226752164002339146842198106391741563138392525899658697333036178327554228813657169555623202236466677627313919541997485855099221755242024157758838510379531849416225505948378501189417534328211786969369101773847653924805398206296202822875926505310481666804837816080080779750693579922674732245604029943471197266924516827658837660150466535232402275582151673192076489290974283977538893381956622143168703381490333701372412222490459888455970731438983359753733535501605070703010007726697572550509740487315874758099499485085327180043121879666306943284553266683888552479356544287059593573393364223770839260106004113365754667855653707314923014240428511409970450595114632307470293974529124496359253712759500298296223655986596154582367155738876355868178507091023571974358035115941593215560511706361885880326915790876027104661755702527411028849306939390168782852050856651705385177973503674302010412346443136138918832091689340655638060916773901536420681253324238335182534457782252878065639679584849690886353150313158420863603084983207289233275139232619840408933422385942299963459155346460676989540965743519914148326819630131025328654179519332456268761746178546714735427471899649330230391234430374052923099396850285937222310826649613280568333420723141349140683451747362196345969449066637449664398355242786342537966943937716789397711477262096542323058913861946482022236781289763495147020494413411487394763645130107627784518844795184710979897670431190754861856147893884551055225842428035642540178669879549366561894586989161303676656307846016258890900219909227000950523435907883245429121850284269440215742518732139598771802340499228669297616477103588984041456241538380806344425143719672447900988792943069852974548873123229785021841339118238945089944060110086008323135467421754827715863333771899643517048450506168071242610467152561170175596946929731313134249160581982769294959385690957607437414433324652397969462273078546153745149495639682973413537568168883444429565344268454393260111435535241829291531702035899874523445995198814375902037690260274488636159011475464939318531974711617328703152100534289939378617153162343467059267912579207148070457960439594163256173178803566113596720415473023273804397470092179521032537068749836597322908773603860515667298312659305030183984889525328727812504378524770707128845688715897441405768850245796422116603764380224093366461528827803867202606706794662889768921918864396911896113460673914858334501849518912047153425554199025503073339768695431716702290081243171711702321176573522575867943300482110979554478957938385713294827701963085543956974529188560737578819244108872884699547367272280682621745722956151664889724862596988159075637647510242201171046170450123555089401409151467695104160382318751313827619028741335225047882421151837475939206561976334399382874005445690557992118774999944271698244683462816664251810355049976159348221300470905799413533563788791320381469100456522505528728755966939095053520518703677072387132508649175038191511768899354279599348093086291649870253827254015525253762726366234916299792157539065887480464615192444632389532207218486506744218001675242894564444153569631463189690121610907858911200439328237450347414981375613461028995763045169718656891378500422273185746722595788531562622173268986183167539840049101499284255555973569632044181277916477508535319017003702539113407602369854877542058790353892641939252481718836435271857971635418070264730420589292886292370908587127556091644618438844077199428136258980538454553335114600161083216365331740718859744837264616801532281575939981345396397553954095412583424361412178723080919957413443969630696930974378563525233198598417798970709335376963915016042951478659958014004930978081563867207871845190578531651645294657559095125293579538697484151232146820327243702358459117260283963173803821403404422460924982531333035917311532564240246294139037984195523855928444735150536915306792307553957129108065286854817596583446772054339272767062163499041071894552996576931650768530106866846226093770346884015116926189026895658814036639269381017524902473215980016000096187580442721934210079360395411931974146307479217417679105754738918587694694636033862125185487637943270128248474310311304326824056862033669407396907832552471818514822278747722109345229212452413194297123599503048638937091846898443257860552528979473239413986463454058323982412114013205112725495541631894272486830782520859541089061816403635466301059414771973223040558338168234384612615701674938178085379112439047882319828540143269299268848591276041523288901089389893662490394994984813324435307569590968703866403571900950441566159676084442580216434919492007204469373083762007799438317906407541304005588975874790780049211700391777682045343204640856746282963942041798148502450729018912530768508080872461473962143200450490046886361648326791017234256507737255895904937296674362753618836026652673714647889355428890143783237200064325188521482746628504520181053691351817721064019142094716245275573458748473808095594614875468593580369322129239140285323730065563503112146452355600731767655767647410757291942669172201327875533836450479340319854574900979095272859285153604634538855394590321954210903500790463511119464242103337632959128802083347193553064369944512357871415197906788098303134047761922882935311449452896180789623872050096818710380033813743836580331451993393990512347920192989632474568148586045386119673675356880038307948749815506201026101339737705220395182751194214197546711614573477866233677586455736067419387371558890449235366702959076216770049794960365258072084785093913627981466930590681616115424595023043273874802774296843190164332352648019119536945712722527914974615455989259464937036323455954126846645739864118404825467030226392083418350119614198831761408295691811238918837972521374323596048757597680889009715758704831583024331190146888815198977415424062225243797701745233169118739862136873229758344641469105713242197525418518221372886400681153957463047716400137352644352760425717616177358670843346691536403662523938154199606454695113245330008600041347090744224668556159770952441234621931722722951973665565031425003686220605921508488156299670056980138127624741926533993441394823233686021758243831517678220932438398029250844975650141981605646940234547321901721668086078032120105507480578539132237935397190122497296347646675987664890660305514279020459475401182483366447539211964881414181365833881509303392661656329872308601744440195806640274220097249222501644637238581642839151087746507619461271890734585565827362630263870134991922091027882335067921970183470592783764253893613765673847949713234914711570644610621564855489261640847636394384759265594405040967520397310590966502693373539812839523243907352510523261648359154639090061222389733899634430231518942202797733706764373484019579938987927937538542282803207610570777048130652028207700823159076392893067826731488015051903436746260255048624188571324426256417465906416688404884075688308980653929449309422646362189039536594513758309105989126294012470171597745936145519764469929625444213885441191523001932067894985702103630911615355906767120501553732089306082318596717871863825755639633558202002935545405263243420126956073764475013675052191449546387998441209294443264217367976565436680909358164572503578266652681926988762814575920928864065793170534051456498325150199221915205097913341613595300068270163183849706784508249723038183056182595989350741409151073840716879871972650523849658508321016034208030913636003900164392631750092950096919757364571471252813253409549700591965372533296508447508175841354975184994745497893308801840301239450367673469980080659957504573364737229413531332535149647733880857773426616697025226196121724557200160132213297341100856840283044294353052856496271292303346883747656907662978404963594864030996523150099516468378575607852704001567072716378033589554682420542859624685704190879485619486602747283837988449608111748184354402603840002515152847703426704989104710320462895633271359256783540164233805525561016244855064287157305523046282740422998461813627478753589545278456542971562506663800219934686319983652452170984699033827751987810487069605888188172948922491463072159830007808058337210888403660284999536483812914834601077076364634639838921218799555649434454241386157377369399613197866902160602704820661105944779823999750166606385083253098782764760549931159862377250698920897437806841589507745469973038098588202587315022807357125860405225156008468317910713165315385288659049051426823676768658261983205704962625077620302502692187614759921775751586582180501233000199579111213634741360097159611992317531069800753827969321998667312778697570874390381355749620408141266276690250858668143006808373377725094683361180125405998638186591839765092916646529371754831450439933281883422627681493808426312992514602848116065507556958452237113985900001338420538264434215563346592426300235632042559916039760601584212454470998820343083828072095246480863195190629917485186541604132836515971236014779003255506549920886816580684853708613810711106858610914615205117813796254454313538520571473794900211363865246496495956739408816961468298728493211289051272138492171169307454176796519177600275031387152362121520559059215903168521201042603409785573000438744536875241281817617630575684838911502872725476264558171516961381134585490605703068876441664226185066170185797823183491247898970665781364688181990102412959276225434413189320656508359582702406668704788632367428314862801318795186599743868652690476848528239773206445508784782343353887399510839332491665734137128865062713559742286085605669308534065329813742267443688033824822230364310143593650910414356140791673044294778943646033909001792912659445717602029300196050833718250779262828337300205910280862228742383302078905631393936351897376461792306394998044070821106580940283903013467597608046570886368551000863066542876939567419835324180721695144822397444096919110853021017371795004873742014680597018650581716775032913661005234414034309863393139325255003957724483330488551692234403533566180990186810123354165506799071835786099121202216800319980477885966627697955250104456151632839915548703280856984238549817746054780072903526507099617891502288318326161046569379148713155788737680693037164291874823765647194817846372308875699031580611183148455041596394430444555709667561958388145807504950854446576845680746321391197408109196331898941006522495277664194111220067200649854072943544590035790345531247487436157201562509146704686937793529724382815652535853193707796150410406236033471557217532337332046865333400510796997884249706579879773040582199566115128823525671855080300735652439965105957441709237671755390396185434150323356665042797839148536738266734591759547442272006211844307608864391670490198949619136193150697180400286660364506901011718015766885493717333798245212647591554717413249471063549272509308851915276833488602328752933886614976273421877207178833305666311711657110491222456748712395815248019454611733106558851686584171277461444972106644172187600202602589740587818560033268919091585686923854383992023479187970290171397855913743216245306983451345095252254253485414818891627646424298289126966463204859220755233286193877963189490957400729911276368900136384232811145132831745632949485517028081112773893555258154135913785774580013912402757450789883352158073552958383805486764001562043060336230575575295800414295730760807533040798179477285991022166505754018430822898309389397890735910559996245467846633598434851448250456387306075211047540401872675302313510059933789701365330191807803324495455979056125551816722612053931968601269258419545812061543058094268161944132541897433742170456987721683240529864205794533604547333977871197161827508777452006729917472258487953248544312049675182238019902535569298302177258175428550967370148847957239177075230232913581322073979804020841103420884001404329323712415523373714910299871633253826564165028175542089372626493152939045293654357228175893527885497142879410975777007239914428916662607711998388386517177149699331433709034862040724472967790442587422203038794390939357247069997368388875502516534763171528716456412753592446663242662936529469445653194811382124573803191397114093052548438288543309331191258161747965563264713021301163317859981621643861378326036838372552138100830223801170024977426960801367470198012503540715679008078038342354612084566365015388137917171428519360145863270322737908587844386591815233926772502150214735124846335387738017746208165706480512922233451988293117719132431713532254975467655050608883487401924878194538360534907520179241188843456427049585318558289974844986346050541534492767953078521211548054305571703778262213588876914901639759191078997472249522922453856528982142052342341080085025891474357198395152980887539160770000904521481853779359696328033866619663310327247389209949058948128483210471022769358949852843329100366997493290234679969864011454265137182576447107470850257797086548635669905216158887588677855815360788499503980592549306270779387346749103719935999343713216031464395334635477007176995145666778805903212069586847524016437118462385160951167043736813763088148190021934932037292936644020109277192208408989346575244568889312443433422207454944793322010977580340234032635999042845501979349942305778119729610552685536674790693177704150421442143471809244099156069108842892613626904052813329537629971488317721684646862480128378686261620539876071155934606124246143183707411712745480192025697796094253163866124497166502879675540811652606125479140977375880990479993432347727765634400218696773205306353260957285680345025876030508893381874408816385883714600179383500324692984536265836814678451582126975202137892865979111704825668609268928133124649076210997351787743668628838815071088832831669548026513005139503283144796984560851355210407080923184729901840050415915064473651958406700937921987033800547069120029077738282003351029501451147754513700462958455936991931471830879504115104571751628747162468123972231134235228594520005828668142450533105186903683342953460138119887735633176951104888238089541593784776714746796795571014613411842672317566835705580880423632041096761274823872130461487811851112722834494323768741425728978496018588023899336955942286465540380140892940845580677278660700746614296459303116145971591154140787510565141053733471900040870747053797500115873408605890462481406854043044315751820129332584664702120903701215981118733044217382142440512939729498133501470983971303576404492467958090033052019689561949574019917017080623444656588359062568825650953334054483840780150777348371403092280575528894009650604650737724652581339290484679011530517078943738952270650063512162230195912162847642155412981709559006862195684218460199265666740135335562518905282908609674746710255488929735333804023316479804313928766532896030483736874846980813431953758301277601678368012227103215894646311293842213264368744691267904418979366993430022988997599319890366980263863551190241307214512780349154261723692903837013776331874994077685870795163484623101066982262883801805848606445368468895884266127596117015360532378599835753039147005008335488805768291545741162268742108885125993891844326897821257189232622964496975589070131779311410012958479519307415484701539979510560491588392300414691592131581977419941218287098584756333181046528037923158210910162787912431354605413918719435657557149463800335376708604978118173344639099888879487611695014055805794307880755230216010927053972196144378075409685083210310366451855619771313580756854634256696267162631802301949949765716760488359409193161555421735451091411956987905990344699602957547282137216334391832819856750818322329975381948385637560510481373523608598802729979597512791961648766435031924770566797367085033230925990407162577940969895502994561404761023231399067056349702572763485485766027837151205889910815750693086986323402708817482051333527686467670650874606942422489905680062579139310563936287425481822047232125534390490528790487338801409926026607271805156736674995146964964237486659216033350462094619109208890535249484270497569257185232650591183824069607212518607865232386742292405768944161603882150567807438443879055551008181463820632551578387134013344137319675282911544729633774796436301001469924492087892204065238443262463762802052452948668311156307850110753893020223970369332506840990545437877464917724946456530598854362842035882884476515832665128149636574097668590718872435455122517519319440222391165022661531522274009503585699350251320428295307004089005200263676788544977248338519347262230028037050044896141981103910835887533339693866152628961543889268200086238575421218100898433990107883860048242405097308606870379658157776599893070287730635997405577847749147745554652089569970197881737703296398245791568176754334219839084073517369456049166970346218332817434571728587323169985465104239121091657206552094364259549595719572099428181039990080863307829940608110073710921430158233515016769893141871578595255808356278265492470251451864341345305076747604375004224508943522282751679098989089859057847769039575442644398171403305205766679060797758355856299433818774920562007312505744735564118287138839533383843062327341181810166496823620222883973032757391098729803124826707537949030357376974056439955283617167483100997466748922727882142970947354006579563208008688410728057270574825367991605542155472386091135740709717433296335474887443209339615637229206935026712608197222633956745797837169301585625738092324165563126331855083966853832603341823382367380241359323396955449697542239089935022417901945743787098716639909683468975778311393928655944317666687265358807267229021503444269750395247471183089114705859183082398521604271101712179087224265625752140131329795049324492279796342316357277042268698607618730573776045138494159516878152317581679336501756170221599008097574616221205061613248385013302709078681898918704103317691185037371659847884763020155753722199547096444507056061664008157987944166288876668604745560948265145885102129823763050295361944246651117753412959712633602542172119741109940376929925448684591941888832737763167112196715850150229955995103638057042154176855259400396772794751174662297689720509262423991145818559779436461724788448669859304173697403199739272000511393605764373073340415330610115674468061056604076500418524641895585491331114119046870768183785589964788698942250087994465663515222053793755379452612374345462668934260347537568685442766281797601519561775038859680548471355974357394835795464911745540501503165206966322486557675994681084100604985866617606562607170853875879683654871111264740859837831478897488607270749663997077389709836928375412766196874689715922167614264377071457633832597848953032185898378148424193691843833989241069215657326632014846322953626488862384456748995547997105578086310019808672550527989239730985210462489686324177597694540741816151341343715222969560828959474512211879085601045946745988772116614812755170755039937535691273857985908106726611709713103549783203400880669120238423008874789498170122038677978754497005841838017304346648818269837875445483067077943772333705119301420534682214057338487643361179578765819611508063157998426002443954292323897775924235937718935048552361221776424722184062325652462927915458882697360800059716498428213149477827118649007868248790637942478169092306138706513067626474564436378443632034559276405568135162612121993162096599985351002335884284799746522313126223343156868371014976759079085022011986926216368194361941306079308975652112516225330162576910162272134795156702586253215525304963874611629153409852898158929751532335289624963820828435139833097489382814850965998577922188580886688931258276924871440203065479118594791625448127043361458240538309036294660278495853903588978673049586133914295515035844903511308256641459575051731316555690942434840952914701635715441257122583711765590830883071560629651141072372174441118091960809575312679748490780212706959643197180745033406246748527412131888387896608008411848779324416158828420185951213953590837417400221804600397260158315499230482398674931566704074222718677295377868402286489026046559160472096087406760218362068207388111644393174946344101035183920067021446502819672655592291351386569073712226178245599443877812364413873272604825722310913311223697299837191105516119677199198809364600307496192291154763099049772370486236122566180846046815355996308023622890710679352950245234564163678519830287231276402128089067450112179255614025746705061500992604212287535381214389248952787759483695555840487838187471134749329052543199609162212429159625727340543985754653581625659699957533490476288546291291961951617216290748962718240595387519954468806032266057459887555196321959461996655906692030589181732351053248007971798371957906596994015229806774674062049699343509131075181503808037679124563089920213374518252707637264275285031073943570102476737353839189404036741833724315556519527491169599774482869151773549175134767909032250096002275316839870002250358501106303053225819017507530493409352137778707661615989325542089662292709526311905419539990860996493745319429341431119509357207144814366132739702180005582111408526630090889905081523948690415950271627524870304866848579673516803784250450848792539321868056669223369140500422086391738528365547040967756681334361524740524187224005497964361839452722795283257014165424711343575475720539437695636057544147000711792747308867687916050010234818579576245730428265426772406289305253324136535039995729181645745709975349977155543563478772913047163494945928975763743069085565492271187946046632083716896222307668204312915179618798843123136308599769353059466620322255268552345515649635602901077851543737660043447137532127154004466314459580805570345114646474647497955565345726396361628440467905060025666819512016450160564336113660214122257113635219434470263643788798299630933777806022043673315397887729071512492027688981659906572860024463157219936988323258557593410476313075612770823125873137396908571648467885220102391759818766306953631639579302700400030399156027163216679352448978238296976155888146083538783603511347620310917356141709506257187062770111538492385497166093832842873769411716767461364157173885051671045412048756592673407752596744045199977350155166032379498865464382318154826675256746809535645234411650945545076124741336993312324168790394838698322818194141982369430561977638679530403976782208581065643169642879292840610741985582316475637650811843181625579403766265153745695181654035869330026315117630162290579097243307239921053141820443547280460288473002991039546036559386083726775175709511972688182624659285673399750300343399627174001804698319066533800999319880883569520251528702503851237307100663927206615095869603647015337384373843440221596618810293832342596526800971513841712090535192657789037251805282337500181704679804575872699460406486701096515320066681815265223438245751885524200506078704022445445050643648782903974448196776355593086288207954116735956169150174255048812198465673569084940775156147508501982201745471332960886878302438487920918048633724488875302860421458309256144744938419118850439306627362948332303371651902739296893766392811146606018126519170209511081763105156241658211594553051739454197579437965042450675029217936801763683930848222026870441913847127388990353048930951501740106967847290949939438332435383994682325002240456344231268228011908965511537632931276653113714098892880861157957346050375440046708447145985994359090936475555374917838813687691545182571037522437794008859739646472462356115271405192613076170388930450631607065855712758189817504396827386192312234609624748129738944203764180552634164434815087894045832252327967964792180564186894162824676044354578371327136256778832627627229270400231878334657259371818663354444816566650160773141335594906437126832948580444336995409984405838072559249923056748766826221974414068605306101675326886360418916530900209925086151474508299259431496376275158905742106133603409324858515202303142358554748778005809831274160374602378284965643046567645118508314297411531296564679060691400411046326993775618847260011121141682230275785304895136962643837168292776107386900715342347174962754551096436790572009031110478366778420812260828984801845745354265794952553312050405852622888083957319333090888962833666914658891694148198445927550697478520239416361386582914830342839649468731783978948189815334129468212270597890928980985669894088923279507109945724198792923304579537602774735467434052423619006123381650133391283688743276029997642703554260728113633611192404580577313654182089539094594195950715850844679953994888414881972409544916926477271428836298833581432985618511646542789411142857887682165447534583554103792361684599417373376168379423149825177637164527468989627337169531733537269282182757992212321524150862839293077844183059853572098399506653212926784079966602651911847569836445312062542401841708438964161230805517507084357364221099127338027084521084118814672093686777712896916531617724134311910253029098474574109280730742254774449911745229162915979727925282677180212213292050879283679041684367475039680720186732474165519982619146467381013345707493673907073704180934796912406877328361985349025566466095974122303305305121969901292559108819589066879126781368736135895857802101979713589569917397127811074252719304143474380361437448248107060415120195203840247700475855327324896614528031602707947660475067198438773463304626319010143914612957364314284733205283686667103903530735945025203778904606418514310147136262013774032145787817482482350817590957496574076711825828623654661980652845957599126633792699119443612622069943606501007404976012001224195158892410663410433404774584505758836243687129760212494031920355412434997661643434657240402005225896249050651636620658006593857957480954187977856765917941196504980039996084156735248097991657823632532977282466917357767986995977964904570764959552765454589007670045302332738143132992182384279415566349819368695026124460698163005876880881935150432370880255014796178461481602786304374826745776699793840548729094309832162083513463632730215861557996868879547496234100749712457603271465181691319132426931564685099780716512527029200128933863335983352310086308769992948053298652578380295139863392915010905276826900451734999583937009734429030082487816979217381575531238631751264043791094599062618279397948692770684143195089199340112278290797107266190770610273675662782941026815773168168960695060434536398747805123062135235855569364019201568178544692579954776053308994493417711576318371332926351236924174530521215802510039794115749703974581299232869420264260247885382651431996773848947526690220611042925418674232057712169998920181887207601330698702665187744884667028133113490624999968228105092893178736226813566691216920742029074831151966009853088656952297132110787865915687386566443640865155046098618202907174772487272977899341655958176897707802356134903457894809845507926896486603743172639063685007644946886273529824535351165985616104887865066641808071517467017058499996820792740776092826035326929385553374705264461270200861761239594163926749546206537800801257530833037519882535162292125496880602025596389454758241045160205096213123158626520123079503198419273456521192706618512986548766471189996395250400646498192407711173479668024080151234678700072011966841775951267200884525040271781545123014430541336558172774767986845136327789455372987181527084641194622564815185921258557187546071747903266894041438700620445844726997353317318012664801869839837249556325391536836801457150084557780781621610980303917659901973156072821281878601776872620395648409489534612836064486397544237163729762211475375176623043538788391933124411837602401512010906312760512851732964124436282169373379777915553006640723230987298502536938125549623358706491621665630166221146183716662115106626676804988157810559564054211280238218966814596036674770435268363196872547622379036202026392139346036613983539400280924084297172020163563577351809823027625157015525670259264338896979047615778564196419215493964747839527116205523721692140662747871767624860229556284881354447456305407547505091438429198398638154464418440599853546524071293783944900455791507468337299367680792918944350802594167039697590778918181806654274969153846765551404733848670712931245986826275270095137176732401453139253963467991479409136576631577215490411431437665346564691081657373728384524527725164125680209522301505762876859031994896431516044989863659020872996066106350124433980949114789736483214967633033237978421442421279550156733602221685537004694687130600620624017587284421659944239666160098375290028948656041538560209279786559260062789758682142387328560873712801170034723473669076972022239336644177426209983035500761837927332934700613128584525111284053843367561095648829910907481297440354340382260814646419613193075674898269669792527548985534335598223133543932716752509568125758480249932270814854144446895008661330491596833687440247570890136365720227290846200443130330510279067897039197402045048581437126298530282725510580859682367691519024705018277844404921914128012168276137386792269003585353430280750157338303278101252484611221484981248333264077691650353567772370455024447407596785512118191261936489396893216910088986528096308709488696040401121589792215399509909494389706774200860341554373402796198970463654739566168865262351958309832354918190442943980883082142444693828842960025113492864484602915423560159737619279057946889213065595948167353227722082929626250518836832698172414609652882483635278983571228378207888427120626728114813358445569889719862598466685349674215769468121507160880184724353062769420748558244104531451192766853591230061796998692358312088553324025227800600034780784351885332324660925918452121817451700595807587433134413138364704470292721481498271659165479882083520149693168153611139461147160250091435664878161334421139120975254905642803575632401158090233221218183213924439495756562127419181651714751795666790280156664235957361562174840278433128012321408695314023038281612863412226200355480820255848229889487741401958502435428128255494421742547492384869845426102302825005378895535661132965193021617263354853615285325700002228360385203343777567008769063511614040964414117557701239645759003926516125194140957247604714985500340398183234927443923408643331395444269139931267532241672214643762049093275903349229758782808300337664395536476972700640034643210126739235970355261063420392181315384453024117927284073280773751001346613826810125341681487512651194886194034782414169760091315071054238400775202430923391009068754799673899912966676510806073479182610169016924497863205876911443922910728135071357221628380165573318565807645861959623497659851270864985721083436067063383381957185427061438304986008292011034896120969502763797685112850928107090632388925854536029379022389621344330160265053166385052753351553910996149311111126952883732036957374637858189777872886038770338960160597612175847142489694778021204911641405027879690901799053880401765709365493422019981230497129059094042103499097944183515091140255354050976417805850105749642830817819334664217221602198094127433192512966292576896802567821160111733366948823033538165054904263765138713122289373242039911415495118020602905385576434899960792176722355634939920124531433411522375321183769983655886426682871396566004493592347404183582836773552897611546550217463317811319120149052805101216072578901503464677293522089004319951042424247697781552267198288763856288133941204833806643328409531695072309947955054673241336750935800100665778187266678702141559537074775117457063969516469986562316566658532870744131918584779405931996187501609154139062591536395530135733209628753877494101990173579861902494242526608609762312315530022461087911933374689076684164363265767178772511892141474627619991631447277497026449518303637860843712697609476148213346157969874124627826390893481846987647425382498031634275613714064741329497144115483079628965277525597612485480626898903886960936398817460290654818003139373791997718069559419413183896359306895544412101053926227366532882962495473389136711773476954885177706718056133608705072338178728418111018816015591258214213201084385693705521688360879315833917607761679754781146209603396305975997812970124973941772764424171073364737128504042178047478533317930936935908495800387696593828442505924890644494123782687958389770487569921887138901034905961383174869101108263480461973463602259464129007927990670340603141039103925155428130922422529390683669073139563756039481536395683281390198774030141323121559767635654527567938667154831692976672792977535678009380405337889090367532192601478969087100514980149728600090503707315737072595333423584634686428550270855468738502293440228503736897190818960720258295358242546619745201627767391679318975876530249764204951871650338994353900416905623335681806445544630305512138966994022897243612286343147839258936234639019350981681346031165308191310648595422587166048326508381388382887628632047373101636726714990256025896442938155458294059491631054402957936863302577997449870944216717907398680851686166002809031318154695794637372304215534734889750772533787220454608691880410034482565394116498231399951746107640598827355144682451575731459049431942097401258734712853337515669846818525927066454672682148195732380849122580299097355732654478420538306461669007204199272544629924109946232217122806551599485158670556841831503358559842024943106093209704401742033327082070851990525259738166167481145764496256027992456274424884477715765197971823821507954503104576364777754310416947065143079672074558667106882600004782107831933510242241188985188970107357737774057049632640062650764005838808535450637606590266206266890453914584659756089399489022699271074442104682251782784258377798100162708252839648941686520723733977837182408829619368667802306117260116371717568933710036653085715574509889890368016526051692551270889042791798938828011885060489272181867005596752264025138693926169201505059748366015351727014530279061876784052235713581929644557133991242795999113784301029828817145636708967218863694626116180507539524739956097257889779781306779991507823820883059570651770263142818343277010484108267784174054121441435660133635018333704036239878911990803392168292914035411966520397238807264287783847132606318266887215174119003191425831468529523872212003291168784836553562571083347797238648623836630020367466628577599273252981810332678959821555203220245360968076309825680780833031464844283364711354032079317567533781981305835746160600786699370272643776213706371392320132185744138737396847644671689614692891449255667149798266384654132972393215632055348861863688088120282699401262363607713880828253328836467069840050766707150105136425609994688433860408705989232740354140341104159955537565201563595310350831852034595930233039265321274634025270629694952582797291415841665553763065359054046855428020795178314309030587949282576431623414696867555728528307374367053539136431738603760932363115296548642786059970215921317472896410459373976292353658490370868399730001634916447864720718425176949172265613266973264342692569974214976095331734955899357168588093623836851230484641495460411574557818003238497975651644673387659042346610286580071813933469475036549565153046868870580939052227799279226425573691375433423665076325011870025459921756158966997680739282811066233793122777865328341401807585685304057587259177298366991817586694870711150147495195878319123529848648837105365082645888730309812219574260220668939670679477057732161610433167051430265396916539622726950347028071430662054683688950360714006909428219260023205324040590711969145491047909702377353829146788831150190158610280281763135238471048341500347763636196137630810739687232570699708220408917881605114982283929291344403348322586485917318147560638175366842419911192807282855087453288001968357305046762427420971922914109120057811193851642076474180128668253421778196605538467796467599173220790764617272771974841205659216124631242660883066057848664381300464427890532656161607673193902747483516811293926430714517460175222441612007389486383315433337916043028422150289838094012944610604195521376214617028061589335225740280965941272127831783701399327241239988265875300311570029860411014179525001525962712550697621747040309811600135148539519560141382256934402039381703026946418237410431310186573626167174874914867443701168652180344783783368804003253807265670056893742966114144935821238565539785547350730719449416836133895121602011492017410631365761832858813687383503786217443615287959461399300030010812974580925843075487730358359785010010267486721179543325762081044655405116813600325155940118557491016198959475238847607461471104396838136430195458529701762156929577677816480797622466087741509036095315506419059788932951861121464460948333431153935065190472376093394694946919558069284627560840286044544888060522563628451132186112410255678877824149884068170415616994475140392306678100456432924456090597332952129636411908570501978927766370732515719665008070208064587415973269531209822795156285765317280487074195038268683568331769844583487446721484081089678601466943681760350044332717723105445289254274452051989105605205527115277867585899827851553608189958485443726019540887752856556981015845209823809788058259200964334939643444947590657117102613533975550665129616608687491510965497262307741642196222843744033328178465279413762725266858005386839723923777379819300061842936476429274901420955051480622657194658027448073952551989493941701223197875773166693013587759466388119874666151848329390897937103991626232682929076255837609161261190908172035764764306549531382023035988625562030158002987840707231531530580576901071332207141253337695832197150429630755063929941635710664881606010910896870544196956767700534279780701689169302526119885647182720825538909091430220771617711070138104255449792097225893625626864156561336127751501068978393963850962241604992103462270514287830135538867461391426707243749817657677076916052259446972875973685924281722116912000068670572485297858099038822933807264233501916964795816171575938324384284877236853338813057412963628660237761431697502493059439536820925828138024565838743639201737358797995252101866608323494708536980133463913774293214928339443071532669659507416075951459824417651827782893555242630443152795487609821316236378162797665892655273241859752579289938962905578010685942539268876615328132942521519255422074198065023790052240977473105933114544680090670259220570922334751294917199617363290240433304922403285694078286858990859707276987405278875438899933406344471689803686508965061659181838746300790193310347029010988299136492343346445121754747176517976371991851918424651177403295293737150071135518804701778495342025004207565462469288217371704769146274678081783991848611764741201620858528215256726520686515519462363235849844136846812398680547136792175051441601724231678990452505999219588189313975076920526411940353217937274955423180461216136480268556389740342671001894088128822444159728786486304636724952437555256943484243024938165125368643626254140997929422308862336463753201183871178044570551568834995469705321622269349613531756428995172255707216644820394310438276102375778121040263047237048717261337509408987871729194982313403340379859124347713533191757137652784568940509072842129189080057349628849033889480821094059228536766154375177018452056616892801939476439163242462486850321462084127591148577916147380158050146533995331485239091140446723854133812212332733802587764108656410302991090389458105680944018111955255032811077955112675304888237422499167517842873496227858312903929552263410618241525671142275165770950888919980781369501933734976520530401015695488012722590488726419228844735328327638852575793939470449184090527457272656768068322092031033341166118098690628475472874851990740665990988104624428701565240221091251311965667168551161620494785382262726012212227130394561768212162753544807013939064663516712684882198278346001606251789295052593035735360172057721962365665337315534962737370150115772444827963848515140011340654839781048050578545709669803964359696874507029617339821522792463390449171147331377415949076682449845927616798320738278598883576556170517282191580889327608154875609400293094573780522583389682351107816606032911953927681792371088231420213443968336751805155827566408556177885170933798390834802759653735480479191159043031819560223579500597191441279689341577242141111371651726315344774796998928863900303919854765955494220255608962961120757178326431077039856582727801284793959908437609673105490522238225195107546953095730200607773439905066905095106544882475726077542679988627806332315483265187204756221471262640780841155139084259584542515578105419829132421821269967997691643184115509051212804594111113042489495698941939414374636517071288822957985968279805261012283450896874655282122637073349765340632719816963164794785565190917209207419805444043818468181017696841970182499275024685090568031942040797104247983470597244098541249965043776708857458466686449807266596677124520343470906808508581920537934662641656878290897582839410009328725923705048013639026164769184552325151321195003962354695261380944717905738017676276276230339959379049091486237176953404622204937279394634130427626382373260627102139968583658649827453588121079610686140671148928188158579404840893350566381641893841674598857857090629034178844884902325741516389897681386593875766298837603505780737437474528267226555162100815841402575116826736811401509746389919132004078302878017258347180894239310790677174280318270106499823657406910512394595333246817580041765607019332727710176972199291240196229795967577609116641805157283956943339290657451461795252402988496840305313938821903016630455471645676988090764186532829648928535507085220894876043934242176708471350611003001073328332865765911552153094610431098921365567844253169125222334110214148898552420655019333685913159727874659442574206633966199797005425104855142223254585765244736795025392094133201991057732082206543447528542699949455391616960632160513046122082831236509646126282195833414547730137852494793179730083781923986797742612840187612241084607868122838572626916241229764879298823122269910149756067112345391096039215376279101186823895175290665455984880804207956769986904674593789232657220037011013279677861121612121031484386465855282589264900364775976995226099386343685602552667019825880283278444278689208720852290938371549004470411498383149313227574312892888278607976025627025828738552530682190010957196535848688349563180315575801154273530797734186392385021768591390680667806341156197509271267765414081977306507915405588866231352198858460934077110675062451849489085506578342298279915383465053240192744460364123819660813705360105175770111766910876445399747925678509203531432027125197924615621314182477495221909464022423079365458671001490177076173761439199728863587263275769931321644950243478675336814278454108508793396676221438549726939089678751650691768911157284304466215614095279801507015023712970317318857236741745674631842401156686682877643683303815284356195305314177364526194718408386313298669309972305523049615719907065616227454035122849095181907197638869672744942759467544256907056782531842961386039604753891321925663737014147012683051595106222824825731179570808254622493486847937915045488399943357547992999669795043426347835187540563211711228153649006476514882548885545605614404760335355232172872007135127112093369860310936042523871876784613845163923137517388810467012599690058691133358383957581664618207942046375782759705225129943406298813453654755961174859831606896450017880243831425285870283165674305355370302921657757981670036459192539750440712749823220481888103426413012316311341446314213508468177723487874353940847244808883797310984757967343505417558728642079668635468107366528555150280539864098179895205780089327860735198313179196349223186406997786391002560307099878443398828969862967237732678791745737481639801039119185660373370572068001972142586893359893575041761106635187269298244616791613581292918856106937094636825995418169383573019323848221306687524845475380634759077144135478427365507490485191041417296503474937989675466442667112668389737394221491465707419280634992354329327279459293681573030831090078186904518573112011677163443484893905935077641710507219600229649275190791673385843133462836842849658222764561524115753555266692715183374361520761785510239574858552627344080918622811027999812116729581006827954321623707465720447059345574859810029467216232087340268222970639085284753556148834499120503663141589741202083733362132179279688451609885297889620029044322876412945803214834335525316106195646994385642120766351465390717810496850578004607302405345388792812357426175835020684925533925939792765880905622091972827219217199390008066665802407105148011825716634809584126508113472700800180341339755863922297973078820992184146906216929915681851113301407466667713583627474998403940396054428001913520154423589360732960725564846864851999303959745854745182903469609472905018248058094326291769917713837676513153920683307669796724524021521238028605354597957065005586783436294334417956608152561209061142664727187236005746651200730132831762652381795765723348612522736140836664663613999833976521879132839936200654865517365497467502402326385228811450787997620953069797975275432223596545767341323708787236148703532954934132974541413945425612681022177158147292816991462318738913270552229787173285073753959405943033147848602792939364914673377061521883426644631308460782250069279459515991124331522800927549322052545881661480586944149741072920081331230562569292921082654134652609866733486394017538126591367276239735251366827303101597984548334919741586988239551617802519202622597623741367409119519861628767152917014934408788197710355991818456980094153144776420096874824930357933940593381619792090824938872895322521966076903744717896467105766676600370336102760959564574178949990297991133085951881704594463493146990247567101427216754973663968121516112076701956277159828792108757776392427153175969155699180249863143504037353136157636146283249410030135189486953993245193197205541734850724911380274608721231340636464721332533406668328220660389754534894839179096842663161078689292526365732464885495787687759881007170095708790080811488520040995792950776566989186459943576662156771139605062180562903044653354237159238821455049683841958530289034342055543361703658071838680439951401446060621679545730977384158202740580146216175270267005686226253141537394048818914573046285924362491767401006412693117213397668017258661412859775031009211094354926872766371749379683515732128468253813619037264062147731898461230489637290169975309087428830948090490832196798984856503477668946882059783442338029966313679048598646955563908270505647918536065851122325374376514092471295697395428403568705689092636347819421792814012362133775170582922648536373610284625772817999292826516615111615533536627934069479968160836962204038570163227580449802855430393777283308447523890002034305573473668388250832665390756465463041375268448769761856988727164012710506380229026766783719157867305924501536749597205767198979627772408854956637416042321367554736364400067250126631534224060329066340514436267539665460591482062372785539425700672768747573314487715933085197412417069351940853642637135407518841281501789995191722976644754094277547660117492553448437132440459297753292093777912121902846559607600421618437594850148900717228350503553608624986587219186577405240237066880354151727022193742900221854255010732662287477032509655363972639268180360094732935880295861524203290583769012081060531839337574575574039808629976457475422342816380196263141842595639199078960591611775155148073465269779267724118630581896661431466417378038719249395233666609618721771197807103612710776986599772144573703441334087153142045795870363732514593828858793392968514795366938864461586601499357393434945977117773397794499931385563693731507692291747362968168024327534899803693734567150704972446495387547144376252943608229486155145556132545827988278092110874673900002131699772958037952288643832160610814479945846912357069317665087295283337553917026056561490022113229306972173397968112215422837392952929953087481110036266448893197255033439239143128619590209120342757596408073137653922338453137725930412188667578700413641472535691118128813302592036694955218122021435199144442594482753876885315602861191712994793819974943275148770005319970172543642049473808200194193566925380573503780798123320313262430826739744630857798907963449013514269436200763284855704821397310856340665142701510846492929190334475312479939499866595363396629238358533782700926933389576667261867273437692266282004641524623956741771028724062113631822350767112757656729668786813157981503418210635562860368984741476238558203264136376705819600513795642443261460148855999435483189583720858968648380596387432362404792656242531307996132940421973853189695861492900459096787758185047099404854908279519751925611994348309036321276688703986654141221455552097253899916405715930308398395076609327192761163977324357440179687927638918893566717827481906518368096921538888717400187164752088864479221956292101552685038080219940578979805129781593260658627849142704272120542419677354580734094500909735184149195694288687971081955972658326211981723494015020230584395722617015732350829762713630195740901174127424641866358940112485528263370256217424197231504489959369656000475335054575681790943096471773585407884255800539091380109442709599104839147342157867557362830119043730056601666991741258659393752701156421036592176136037450938910930983640797884096869383755805693583108686655976771081032757441559455970045821169541020218124146725263286011178135486423366324881614061259722861212201703699712630527391360630073891690752903392960919940603631058284162662567235995127355153167008159335342107493890522834585894219892872544887466488671329854304966925300424885609478173210316409515772281642047741297166232024479298052900806409878582714596156786240112069658889282013607215909768617811954387350856390686239429407248551484314829904146689034431298946605505975819028838864235991158036284124992281450487192744339601009140968374053098689767941237965553743778882654119904745321376020303864110523859870197950799432938995037496960831876350276458903198539250904064434234128664772516191898907407105488618175466210747407773227209980456787716598356998181526087946907430715352472652448159431092780773768083584056500615066682558449000795959215917775641284414643910062293153410108050268944617180909430829296364791558254978373185150587246938751798568145244303639651362348974364636260143033175584244242979181334087962847784835554310252561669158491533089591603520544369496693510416078638860356250283758132931522065834722230702271524919302687837920205844812056482765528599887526022544487948365745177124834915360371450460394215514642748603218061806727587163693009588924760582685548250796673965358136026509074926273086949317412650478081335343885471531510519345891585182556762755740414879623769870065376667658103609542547769997259280038501835782633339853823828291564162780488794360904132840933259956963141877023148763755373718278032081791716560182022973735808220101422608499779719573847333989871536133476364064490356493522470272689426885045786231887065271545403299141870268951321109581755179370836975424386795148504673199688445178281116024555049354146315763012968252079900216006104099046562629816249869809486070260867987698318107561716793291147321226531082131952318475153105375109214341135360736199301978667565130651140389921594773930023579525893470910632326401143628092812215825214120556125520119841923787699263017087708325658752453790165447167405022477529072125218996669622290216454021873124604797356293197751823670314009409581227081234421015808922623196417038494826944336730893217439798126609218213696332853544544365833028402355977495704698617907759697332772752569915315357969862584851945608046027395139957247935123849857062672903601172832381197345953104195772079324546882898046399151981336911956984705585171530250249686579948631893212154786548165543164351344313847920425413123443455356188427160351342544027768011339621452100191646470169302755884555624400840056462611505712463935561484454298785971464118237962523725459833170152838894426578918240011784793268601895049539786261446725822926026599183634114830835595832905959724499461821011739592332146560365184152660338793066100214754802104042896962397234515783921535441518214078476596755478218303078265362964006596502103511656333972765477253505011672552268503733114744899659012651662076732594991351098999401558414025680838252601013507497589564301097867286721803473887095459165946837584474359576977728014851595004723679143966632322605334079522139290471029339010885180215126233871432249773229512893625115507553918872116796532952026700948734267861794108694561780751163642625697556281166933557200479577921954273472326654638188870663821687178044468216292767332787206288623111280525212751473955437220805164863548739512009776801338881038574433920976601791568024797333433236685294109819892402692284543404821494771990831820800652577793660638664960966931909359761191754465791215219793392007666597283635912733935408389506465412983796222779673197224598660160815277181957699143395303414972819718545963818448344449809591711050559568132594031316600315921765983769250788309803431744000751701697163961264570591356266682526855926115477787965248429404975555315108204690039605649205985735816734595960504722964025382564700587402223072698815174537680419512425406359777721664390651422877133221774375669810337258105613255662891244030534305022981970359630137667159135975452596412594893712450809593020798602457175309299553008743355882356714410887533430737199859692568015523860947063317079787653451276508755203115299860219665802356218564805926033502944513031059061583889364039005270749383258320863708888175772397681354927720336167059723891172309161529245444053221808884291973230979043752842963577985421480596517029596644736393629091845188915311434726629905045974253160128251731726628701585546539397186897928872593514704484845872892725299844551434715148651859359200793152548141463196138843335794787720292510123216766527890461006834380671829344494636620610576220851574642423985954235221065795874537849341785773697764098979644482870999970577406324763909867412217962437985908498878153866887795801039173853159346222343420902037216460309887635789575853805029687051228656992514725356593573643327179857743328712272725922201921827135040232458077263816342326351989007313903475257213189736659716589979317734907141932446858829595901422810304746588073346663265748166098103300789689112312053701676910060939770097462072754441789264119897823092679622586115125301014746976119076640964701499811969880190026599739380988130682070600910946314872180576602739735263525678586563697586578335106454185855984721216920706483808151250788832456143066414831728295748610935007452401463125724400242909874296474935129631488591191556254870751414726889903891314075217028121783470979611824332956381823144926651057969040292971961042515256184877944630997259767381864478530198049918366414699021059212760833893544936220957106813032290234041528461726048880444719999093765075718790606321752219280703202352581313955453365685458295105856708574551163273310458769949765014170202305622331508027477550706396587211377477031810378153857023584968929832096459439685023263974485437553200856275577581216283410094085986520929640873839162961627834660700499052854337401620492929541937581959959398547564157103551014847260961706267658851882534552135487625984532408981733653140241737716049403907908791421427778945255041684843797078460821409651638281815567123539696332479172894349455713295403499344855289260164329964212162765308440560465182612097582439798470245883875337940925732537899096433219725021254494572982596110544814556616164415854390920801483475772348000048055856313296799745485631432766179678634762274760955391078037748322772962979373924065829500776590561654718510786482786409294174941982053273612574154460407231665658298625986651024214821407776633097806048064713922620149084114729853815151763898274757524493853917064246624917279233207582674535434633161585425094016372506385053853064154582732212153458215380526566258928312649195557377446212407414323306976791553778528849525002972515886625596476345023998449591098064501827100873914110874435132717473957145178286183167858913866429228214693445207600218849652051050513567752629706105042323971453195466928077297962860761364895086345189927289123385053823808486163570357543629956068792896714050520127582557811311538568948634388760418878748438458551253981946685440867665304304431716576917653362677224355008125407776656074639951656663534086531855525269536943093698890157924493226697483183672450330820139301324113553670597228011965180922030215561437432450874877953177000448246306005083168796984313355604353917599063681033053176532699400270056700744929606749588638814592048633476865102578942122187388501056488152389142508040744867143091995025269613272633974789598850049925701594942011840913341256499233760332112537175662171153245472469348661169784687913944371944162011220184752271104050830364150792664732041454649708931089956337018701296873223951074873218771095754654100674688826683449560834616109952195440640222639811198201671787208072544254925087843784892339550346822980465265531223881851470748973337814256535821074272334645206662155817537413720129698386454050432876695490099441772719233781601270555389570293626218367677204823358310274346647647277851344000812265265334681020071131341465582065905520131595408195688243336845923637403089325060846966721461598759551007288008669951453742408397324760437671981072988401385162715940851517595704768106121215866924783357420190986554423787063277446979484129339309035822760803145566598139298069827336240881520237820216277491331497085635825752879402670823115074095891023108360136734832764912697389392022167836064004473496396508322117044129149331059705139312144830704090276153210884595556287336247449564817696735754046718173449168832930682878209767073991077228321164040314496380061480131901603977434798121557414967190134100353809225107803548440617320865892861195908402247636594008938532121588804711751559931603114031933232197234208761073160122294157571355743830138377806210589605020530401438349171576130121239507532959923772263464900240551443521725137354211173337289408540624612435343184157339856364912958522259880649616186376581535786311470902962432295519483098671694155976838953544252425422016208732085548109795065434812333465677743569419125833291793857974511503120103908691649156118192010850699179533781245657116304524756397826529921151729650258479229376280238835703588997623965855534319110813584717418038564669865297843953058471635810086960115054979301430590310036367244439760314866502147297014206950208008904266737298773392473713800334289216904492476793934292920996025080631593998370812379708169689784377177850005735554854543408502645134514686520736128322896752695471970283893723260002522268668651639090532139326896656314081843049970943994145320871288906884915019782839009406636850358247366165805694180809736670028308171852275033023050892902517250061405825751967945355816491247891937751080950067062423133030630649584508879774463902477748114514017190270977146971619227995794613421945444313005504370037644266838951663847028259017599805024028236054056801637133966594159647185280224473996081482051144195691751692430006229163112630813323543321199911160849733021979537638326428192393616512406693186599589779632114267098222060190809279645826390712957460053233770637575504757527435871819526066516796504253246596188779083481232453020782564572779053099211455600527446759489742041913469411811312269679746614347908008517938376321636515873928714857266862233132369024666086711815840030161354987535131935896874481657071552602662233476355621514817428039837044986252356631554612571129984882596822199604261242982286407208281296064931590026624040146132431783735850187383741243207579481337384863733942806784739333612722352483140226488673462619957143893135993995992743098045192925997168092348695274468003830948096110743513640441561270104214529617910397805888125210768499433454818902971219646229797714872058042794844085006815204762803182863341198338593701677125018120251664619522325958133653066599598825257385355036994728484150632840852889637578990235100626504817164401448173480930978594034188105873855953305352937485337330713840362782051624323050472934788876333846882364969128032274999252613141894789378113968120340988889246956223521314856690913967171509644146608135607189933335501518216813708733142929224819603075039883579521840874591279248399498946494931809854873327357372067659850873254067994548740798532773402117370996419504522559227552085106802839096022739951970963337680982934834658239048551474643953178665865663752035026252293659793596005259462782133243393113354365979252363671895860489775785927532588414687750230394550653832912943929863779517722118916780743258593634369257659383396785564810861899788073940717927000648785446530491965920625504525661920789174571606257330319912989814315292823882788738675319336583466009889791377093917919629523435916607903517572703703652945554233297574967144008549440189456875970366768016914030010962020965044843771915462496194833673726844602474905396724199729153127206391692205526302616384581783112358363481348480207672029653072458674596285719729472592730235272686969346438043684830427170666739782239820894589347892250879701441098226904464737126605482444691962410895297704632122297451999201702267694503381755754983670741989220763461434086358449948123533735452723639528139550809928749377082700288942078446786268298258543372481254291089159082619026310687866194746761898390580188531231741160137200870530535744865671607065141091311429667408477174048656268285608479347070078205187273029618394349472127255019070581041935790144073167849429260411190580653012925122875431001159662274863857698664550292488719030837591488475118686205440479791053482291526575249189319117332033332609898250709799778608067936998401912317568413735294227852553482081049300118390834468634191166011167787079101492719229343393355852907180561263201981055007292273204008918085907800566981472091058252448272935887617562632668209883747081497275902304061862703828143015627983804464931465293597300138272200669595242729212095736351271379943332117973949327114284694442861548783943531929065150304826449612988602558077291036740391603650487098925903710447821598658509275007643355136391614689806456365778997783372939343947082190344579945688018753773289363274043735886403665981308480047691221746328822675064759305428093572409611116809455936264801922113074659974657680995509136261244431014599867798680142316645909435786117207503218554675712127531820732284470022532966303090260215255054586921300837687658005618289139927103995165295873201855758543698264595218377808543949464640257358415045480634517480925566250841722135492614502194223677906940937563220957223739110978876132051134433869305001623258682977931846080257726641581158215190814534038678971768845719495307139025227990162343199668955533654535468281066320663998303752102082470978004758366586193971762132256748708674651510132724464833468870024413281987301377214520349478994941525709453575617190106427192266822051343093007624877236802848214857474648171560524379571545996881828121480222116577939417686243701668074108783042399377029423161906549834460391521639607691007488516766078601559719514039265627490008897336739936811378388090799086320474428934659145880666887535345535136404180433237730559756076998342327848653117881278647747346179747598482777100148194643876900406585985371696323510295515671783012902063724962742199432142490623705960802411908774116333602482118789721793174052911335799415838847954035532330707170388125673251441162436882842110115878635939969455820052622057945409938711872952990351808939512424197897650855549847830764291196754069171122795471908812323894662535207245516449558833932321374393416833351963338119023016391796386676536292027783245087305632255904338668598939428400111135955492281130160847571880483653580716116992347188086720789400090547225314737280863569030653976269876226409461073343946738531634520476019745060254890952535095235667045620933680363099038222226666712459465654084937367962683857477228740952449002846706488615288669425584012317783998911425860876871608962353548947329257178543195429964046123918514578997563393595226850553636069297902883531696662818663826158165745814299865090327166966049928247460073257773222879938759339330948473722947855329280713927428586616887609952547262134938672000967921939259132107932587488569779567477838486032662777234461555436895580277961962634244181210774957310446853970820551615077881645664498350104428555524192498341397220021320075126153960933630798783335942665712823322440111212491768012284123654909750265683155503600363480711991287876922621361403598374081714706640695679169981748054957706567048731416188895762031860325117251819451944545693930946196633452918080806017602370186226107256463942652029147211681265884055019797669178627511022946015797325604210956199632389048437366244880084977232835563272008754407120689307469330321767178535938680453693439549461380906182552398966340970209722780515155730069644934077041796098751362863020991461012613821541131684613479297974483985792545967906245170198260954153615853038253532266310265276499985453921105427126758379324064909662197180473453936793836071590081134811685716472053111002547133645901058759066474965375373814612330361081633025879023119410599520050930740178402798252928051850149263015587563345226262030637254894347898302945043268555504602290242706812922644579659641540381654705683531315307451188543902886166353750329969749699516716733591259599123557482994089157251363399396956018897911255029222593640252280003727289507201309455507590355816300222717949505109223667677889515747739486745841214047849978828037382198194978299965265667793689141589502754392112509939647941446274121931574152094470949881069194277177088522601628442969222370769746794865361963042497338333769856037499302372555642517784445380722627819634687342268792693857476356196329039560486725153764284514729039589294622104917274577851651802812317725725367287053025391116389644673911019999961453476235165253283718208756680600265287631660220010088143916211260995350049060981929139100541892071979751283317681923100758027323601911214466618924320778716387884969497529570875067955087257507346543184310817571141243718396847528728518398004790186118558130821603294965647767508190982293103474978932022106144868395049601015155018246512624410499234902156532247306770210664679694295999363086488286216651063764398014932565835219008636373094382676110847599134458189139311305767525955061378067850499875775796139893030506748926618109612379248460607261558920104539739745077388525247649080464473962702064650403391223534173828420894142433539635801638125119305075848006177629923379514298516941377127316517647270188538791838977656623167458324264937018809523446381835840864164165426658592008844641704917535286966390602456420432509980714251532090712613084428918087855132614863288641899757623416351910844569560676585174747592737458447624618740601874842683901244747406510573239578674104654204508517331020504169431361609135198213296912272263789954303578837115313321917443466357949834691669323363053571508990002163870536102387254349271658519849782274448785213052648925926161136288982830905098797319990447575198023173680134794946126627093048007850807686093176277255202105948105442810289933211856017503217740428540512118569944210066962069984523578725140593115986238599884104617573347943044384261718453531611473148431082477628886631355640744897734007339729646281765744644537865181960849318338103984974244192342293957663081586260978872518037060098229547741488427043254002376098501329926111595718114728776691121587167500251255577328961293274504850143806522310135025947813208150609601783712074018583433518168754215598127173808622767461850224649408213373331558540645838824541465038763699033741605291332556949697943654722480845097409913894367127486301159322792520105340270746847918424274960187192322532015750019423045673954138253019303489355793546062296815496087213057989912483938178922140268029113116749300943218960573876647208141357848404248271219015786918797048106178579423902191615765663243073213620385539857601143225024788375506222245044368287746098729672637764884390475928664714169206619110126521980515939944070529241702579634484881820924040613614744004472909859639489918590852906047474202089098111026556722758170902346719157328727440574301525042022582339729352308358132835161331027200233386365002979147499418716217934792209534359748234016698832161576554370555766673184694179498324978793351695356194854320624315213448259039721341911686668047154450739618586032123174917397998715977959379310368996466108483310470729268292813487859651520323144404033045565379796406119684065545835495391742469562899939791990633094317584572046480817748671338379779551579938570593213809058769613296475487419479077203133576710533782606516917377389627615990687541708458724364339325860055926492099706944660814673196473143186068120417569439201791810731423879974844338643240090814956815227400756409306594456463259406063475574336078473573653072796190271051981609603492197276276680991382265940591482246833897800120696520710200118360016186992185297048910694684419596697893666353880537772526826943974686923442758221533506758433756469242708982220004981383131585979867001607613688952655730082420941461144399883182244183694287802638248055761361333521717536686171462602053306106206231616829226209656997482307563072372675251886113391202840073137544766099698622053819897541448826576169523724340661631671086401853947380948226178997556647858475309534302977029798698061210051804028937839164181373540765253021255384028584905122588542747464826514833738485529042418105460807742298037133553561577233199515831119849562901782247074773704959906906765388449438723361326100778694687803657483847731996620222571074880365151801949914986151975064133948012180992090701335649356753304417102810464321821475615629476059207088490531688642175697803353410064414801157029669812048001118274038255841576817704261577911156856058224443676555981679780013285936409785493032536416813959195897521503021839632291704879765554245292941021735498051059097932627752601959509503165908630226633033283727375627408900944036469892919805885673159941177822897698881944494524577457627279190749445228423950171411476731701890058005212376183825076797331362430241728403115141525415537509994623187060927888437756381698235888101111615760563923604724912262558477468619693726543334366058365162312799492201407708468952884887393113382189699348415564666187115180708195284475410887357398472647965473548992748216030985957369272004269245530387117888519065129037930842710920618735773501535295945347272494030347905831945846301544370027028858142806953730230966768642942714199990234256041109800830462810783332477341645337503406816095288975431569857055642742770524168320272736932275136023527229408998979993057174199255349179443536869137953594933421020583715474276905447712205575003699018498916542446170722223296390165339652564150399465305762936669679098624907729914536148160193421825538167944766510208080769199392670220317045630908844882947032658098539423445671785860523445618627803148069903719133018263281268173187644263607245597350170864234512680196982959602155717283367974232654459244164868752563598696531914898899514751209736542560703904691233970890587773897241963553873329066713755380897362678312905275164853372997386162206362900880481605034093051625398266872427133463385169535825919252856703738989145718127168207544368788724777323215866716010633893634424015346763081153739924047025043351977579337947168899456576810771649497196886949870315407003324370935180772578914233255121385566812402462656363794528122727313794297361204599349452431228319443919467569831460285169188057885881478856868591042525408570232829775895143639380211471246917671629135783282983260859681175004786985958927894677040245509735668528093219502378722857590143354013561809002544852131309342948893777301626999795836513503310497354627189672935463812382229998574797034968189765164033036525035617215510797403360643400853566849668455401466661393830260155709264976984178658420135272070790729335235741384307423391782667457617445125945208313116870221589532746107552552374501280015054888667599964120827995043918921880306100765043236518964349165785339407893215407937031690765846131409236812361494025097493882393734315166876491569169218852712067123043765183966823605340831794090276865099429471390490414550439243373448094008457196780306715821941519954490380859754627110097242117385383716712474595230852651109695542869615321113054497524586917578788773580230155819020135193875628186980485048939143232711043275078570335495237075132222189505214833467811692263122886572614775604765869758837691492314161492634445604731692504124712501604274852174635273278713150357754424217531281775574219797338417951921146727018652340462770381424052821509592954616370981756124618692711178180870446842447407276556015696013383301485273940331305730572850918879451389297495148063256267697176063124270459681640841036393976058002854738587910893830319428248473652442119500583036346307599544553550826232883164090660692524239778199986867044129855298575384510623503324890133303078010937138342495295910835452728748814364263543200981306241128215034557799500852795811169968369351045245770855467924044001485621237629375332373442913147784649913829700009820571853545636546442485326073632038894675932699921917375765145717393075676929289893045996998751142614231650857340868431198053747193523620089849570751571235122890782459423733653454428908257662892986679717499892481907130509337785710202737804701355056109750543167508028356511969804609620087616355868942594241471939117585192956922997607085102423849388080348218398525103275539760573882547404621159016065796978224286866909611683518917605385605858327219928216433035458568043127042099878525061129616342309555417908892546426456500948650809921943679859523039067345004698614359610392656279586969743169753377485733468956548004687860884065126777359081148709285489501242267477353311343756524886648973330781838908786862855051823845455117546214944997778758940279417229014000108176079699099234784149599672442339405324801843737359640437903499122488870529675730884753283329864791261052950478679842061261911994665015807385580497846267906147460788990167077233075519797586185488151702093433277602494160338019301056848352278487872689350051800164933660755314287642480521254157570732292428109697526885502649364028548357578388762036199811183019551452050390619146268107252656094074084519079976155332254095134127497277161490907286199664848327661825669914512871387226401325654454268018924640954859299887299261803415758465825049583853215230619672983520726215458519810048658050766710359435001762467531601720185107038864099051117403132439883257830050144879666673106508510259953241801597621950692981210367990585471241069396810001126046996770755074187740582225012967294252170377139671837883714515414189750564206619458970115743833585812738035650782824853437482899219705636341531386636940588560516404324701261030870906764694368277526155052159833899840132186274555268595971799259328988184312922792482708254833395674817016871109386906630764061782358794747300856266107059414889426097304311809700839347386777243266043319123548226872797967163264434906638396363477871196882838874557023579518242332974599005780833753643204722040836510744314529579860224177523448945476893793842040142524336169171779854338885550417310098820620560410887915044825357092787543714610517489820127126403782818576466257345679181018155395568523235706924271355480403283878415504670786540686160832281338525450518225164763367072953673495511651494134146246355389646250937869709177790379345153865661056945038111793593149695295388421872066903876468857287488073769429320040520846926467698723225442853086736310788449885015858537795330347688777045843803448889099114020744464832739041851029323234645295909454354431365437006577599766740198253667773814689100261943088698242404395593359298682542629264071135721774392984929654123426907242128639823552403979726854307688954543232237268955265344900198606104433204810632090357937572554564856243255785561017388310006294942977606284318311600560156045137121544831831208940399706260238020911657765752319640784235185119986417570351848345562251750303463522435362097741794428025751736128586318145201230320017264924421913821438784170946337655264678278726569625428787512153899189711765350206822462198266390088196471462487665792505279734224851011489383628960486289088508080899328235623544845211324371548077333849306079229036685921289782843868570301854358424871271449010476312350701117076682890743111820438797026173556238914647678787033733934586520938622286847144024838067185445335262914694240533359027942806046918260048587163402180451278814342703552709348338428304665389811905488894467086992136943925428931505427298162212621874361846386806982562228106362136418299014908725952953501613148564818544275230219727796142710120532274056262554944321151876884258990136868232671922565774381538694405240451088597170853264400206353687929277714047487642297404930295735214352893498886177718979235995378606812092590297694823464268611562378676981706063673349388870285096073269868933181963677166664253453999384853783625513180131654910710679943274725390744462479761652539105377902220805907418467115689173441672942816057442001933431819170586787989546455726323052995097118910000062368208878988827025885738484136242285012071494661522756832405650316165105472354684903175335335656098382714326592948555785171405116814267698366675185665103068244685993988151107305285553845668490725591574529568647748852357124910432007270779027214209516089617830775536463628212562894033615566848508248050874543089076993098630720070737467069698131562608812536387269200459956520773879161492571277703492445278236629604592785886285871433823382823348356378846382460492832392501060467850079747140176251253679253741649567814524527797446682696459914385629906824377255858065963134712854604834168656211375231594379633542676691176841215637269951296816614207307746410628091741638613396072943351659213355164285666112707922451714254885955477213620620630811790736238954141629189677128455356686492177236356190832383561590011370084852239692887934420530276530385818568418558378578040704696624753804948522413738779047184285861938961812850465551242225560136080115426809982561667673593693264977895478352786626631541815822727715912794922712217581659242575090128648120362103547655305480303766478822031805262771817791151483158123063028279848201914213291845906345041037314943287157296155294676162154339937848365903093885970365781795013212834989799527343776493761467439083885026002359979656716377559176622559862876107231597032291081330770366062301069702639887400060055051671212314106955885285561658844221930549048144951644744327609130559356445833525753079004059093621811356248481429978276744480984060267957116590255681987736640758464784903802413651775906920723255051933206448031546315694131332213479699520742440558222605608795467929879052037943573100344214814870425817491862189508135562595741436987298447765379323244962275947046627271602352445857623595812678573767645672385250272216438794043676935504558252083464348893724511771649781626838485658306700775246025115853832858145396967662348670949127901043274038739299585539049028195773798510041129021902013861990602798434919566178147540754878651966374159237203433968571528341547517094785689215704187109452259032262297154758620968285006764104367486888210926390230139806832559249947950058513195408872211234561378267165490840256144319939562430379361725697058490297100913303308981929238471048706607340126346678812891295970219364412938202542657195087694212002306455040241941227103770039683627234292272331613194259357342382359634012118649917212963305069409771294509558406142213426783418537599401044155877538079216310998339752275053114115803460534351906804686003697113492510027738764606712915674501565267196412366298928082406601251871613532158863342659882950275324018621272962558084666102914548679912590399230870034013473772455344951109439521825569817465816312190293517507094467506926214823415668870694397111742777281716524795167389375917603280672015480664605643452870972823674566908740059907918496792205626101166442552833815148938250580663860061341238376190520229572116981537529184098188936337614771212690365566797033663026332022682786594532829269630219753427682682568682415933648359558554757914959630369189854875911181233096286567989283558701390037095071166658460062584193174244925121036333374249277224008058825399627612561719064661729612462611002763829822669891318764636884502261989340486541682436658173266786609103809661727572530195755425257144753517893041865088641578701276549226213285859571573769386477719717377667037102647437171136663842444596338375184522569693782216030172977906427500988856611656468353794861209903404188810316247186600726808316858671279065642368337793345086129981695313218490386376914800543252557681809138812930910976498964881125495326023645683916454293044423770794774813038521790193709520645784734553794870092262913804395223025785655625545224868101061636706540160803827448233563226392143718063302381081837261030294220514883064323303700501065758125224798499057468042958990775577868246551021167051571237058127450467875780205946610119298883014570325783226275918588484163307861231731595218010125823864177387125995440742350569444635498322365374077155542527244244585738629810538942805078539148205161963926892431500501440682252736621386747212021873062695480740041126530682129392271311717944415480015109486732393050037313896466076570651082027354784179745831177480932018405232967369582231987009334987962386417678403683256007787839112581540204235277859031764810189762121250619341908062580968544129801912504177582660752228446155178845368683861352213975765507364837389225156569136251557698401901243991816239768110739393926822634204751563316909552769738340453088096551304998126361904768182222958763316882705795157289136545449527744329137480627096351916747178350408476556039868582128721475694610343111647420265716671018703262124238553122177967249712784163845745290488961639157478564015885965206423023463930076193871435306217132608647847928127962956851384355818827361519559959697944332530087865824633163764535099371007540973818423938137650837519949747011202995779628202002896100482644946686326114627019983775873767970198187398649017412143675887010805485986923640453166747433214022077161044373013631776066673187411904518075633293886690865618061641620460724285767077464458642404038441947222205162895486633593008344705952357583725033766786654187827401539407912779051843761012160210828462543738067638627337936565582788548152069557191547362093514084806566653685443514368450380641849852121642605220493115771825299260330231926439892616133432703137541852986862832158194527160858206432729158649882201384343619147903451248879339601383569974227727610166124276146567583666798739032211501345968492508219517742527230128710362248727245754387838422248591132751251379069849163823095381531065882766939610587946303016022777105097005630651401808831007654647472820867287237394476817728834673124171855448746067234705337752030061363836630204259197028165913533774031546330747935232227557971646063545075006052445043210323575133766817646183640883250617724675189964072327995627170689998493638574563187767205858163439314559051554801110991822192878088897942000550798324488813507793032056409132775030885858121082687817072538615130498103829632982000813080506706861561606354350702211437475801707439891220082756569254832397290144136496665685450620952429756674311746371831496871296925923769713158840738383764441968280734334294863572909639384918269286553514371270597668772953905149365850796650515992242618966376860205588228980642361160135607829781337750297981666669225724937624322139131418603115756824962565931242914951771537170036617720366025775991019189866299232408529209065356725852386089206771742226848781981638602601008425853538647609766124792702063425117301596227740966861184850931146460896635393782478688755025845272928667010167057006080344888522521996379704182271082388907027916605891326989347966092828800732265394776762752746090425964106030412494357127539356245258396315946653058885057003153881280193576452805478771565848899702180128764266140745772861661169575743889796552669097482273700627767703905904621279685494172563618230801111851079938879762907455317729996844378665566511358103271363313282978587723613363744617855196692594189109457554485000741673931690131411582097012808491081350571278456761880147767214229672573758319619516190675444582996598435448041254841639703880162588354998258702593695783678113400772306576390860740058932081866987843733808765824051785984378617126724246192053878756528783856921716824498556907924614507828176607332855395785995974106403061991407160839757715540589478135764359403081595550928478735617887594131833712665072308981676476427722335383478733421296853044874169145549243051211566237732378976320444417142461702294687384421298162244533772461660701794005337086730263426983937735525972373060172991558359728756908917136040400857958328318155601845392882394892342742131301854890466294376003478693580341386454006161659807136773438829598154883123394322835688150380401447882499021341248010448947835017731547226314169710615294883577433026329558764845274153346772795782818011476443362734574137418943057954270094266264587425218768773167373496492206378637832920367979269820376968410285261080334451221470408511513634127168842325659947555130355839408839627634752832833615102129450738637803496720748707080519419880106135906711748014766584937893634052062706014507226129148231651044075824551649070234984600987613318649503068828542161581515983110209104512983335529308457715124314940037412884955413776542221482560194428479726750991496959532000829839508904189586619549984757313010089912936254288794868299202268965220794026891379139626458767435092593966269734583354286611617691803508457620009853765456915738337785752651571972240594644883981939442995149020271490259753762708586268305655476234999996827577918500331919058323131169133855745852058561200816262405261895143039303294688171809073584781479221236986624562666799014765390282770723054130281487736747531231955287926938447638096058639273270691719987070537132394826725121161067740720167894599897104207564737875551975328131894579161138314907424721619991859232702754213151607241621540158335230584527795310298376619496206680406639120343902228347784308187810639870292541892283779082959923842288653596988623219816994560101510505089444499653771111592979436482544402247027685598121301640667779673338835764948006055384475538639160632388616602502898041468378082898608715138853181483437937090407519118862794519523469709959682768757950494306893314170703861894957627419728609538796834756116922157734995978030242560567168202600563832163616915183773716965563191776823903018499768621964387067984978915950198962675194570560641353814917501247546815119664011086696498477126765668872023205381792236170643626232652243700164288192887131923296563775160639774411941452966662918629115616370937587462795488433330252014072194593560602299227693169762462139381968457201178278052306176396457338416051247810762187369735817133431669497961966207739976801051092238390303121623031935623020525320434004563137837296651705247150195533082141739091317535734707376206663823548739914036644240624707148552101464883474533028195166011513671424161753648938845779245703267022092419370403728945961756660372639418110008957165876886192104993219569405577163161051220115615664787436995152356772597664086344937136525390152009305813245561608627007127616361174643930684299419478029127002519342551765328448595651408347288810524824872787601116681539604997789130296023483648606989966038890121806707118179052191083504817239948825927092685566548829313617134794516693181001178433675940970732738085814332825095555113852383921421683841732848074669690531493320805507767421194011986233299289508364284928470706795208957102520764312222857015273044074160645484996156955513476872014924633204529661604162875365929395761918244678600027468515681957021878320021609904141248326837932891064226217094790110538736494176960227051126361464136811404876098484890141990148095933560856218495950302522589180554227972906761161082183557194846409699916138204544587461290654889502942664760163079796675653843948266470890240303719360901816871337345321205243326139813687568281906261178276389106044885279188924442937173756459596621045349114343104951887426517166546685402470759712307547633038271476752797853891150811655612114343985443607939832729455238212917362946999178878152089204035180086219270675847438377841186533284727562728675795755898564245452212047918928070380024029929035988046037718767392565301703700331714090613572229739528197112408746024659988238028637598854772029510080419028784280385184102377366025071303113911732145074535747163333010156981835104350343344549595616318796710381862202139999069690447322023747348759036470546297119945575834088146684148153164901305352368016845486398686844434113672210329639471060565081418670072471235941642039274038036466445876783990203860163343679808407460655222152774183016954464705347476603224812582666700707573047355483415544753439297797840840949117027682137375954401118826266012664627932228951024899394393005620226226007526370940508873958335464915989098184869646746887260670057234506813450963405299617541367251416390910220730622126597740993453517947710317564781655273891611366322143141188839673418250679470222442048369374431135013816515722650956102245238972094770479130266161413467479594265298418043411931466131964568343453265982230715752598500283118683258195763615002645932718938799989677926568205445612673474197102006643803174023395731061220245553535539023686393452989271214036600272929350503313824429481668219348779736714339577242870543203853158260952495926190070990877546432117953652182815384794698783722506103115741244019450407287761954340598582718148738189804672544813531080848274306120115915603395040686922126982822619913823872287601627766582819478307143491501688232232373542467223284526035408701312918129792447813478445566178704587513220762157665161359102100286452510424438114889526682605761791101221424248069523472520806365027514870677103638892238621425189213767560138582260938736989388744707324245480805373145036047147738741349178938915466887569922307532895076951562005487220371296442072927393934163084019672801654871539250120451921701997516432688346053938490403733441934678827595529889517387277124028491976228226347854208480266861704213876007398850174606966329200533502902242408619746776351682540834818253081439268138629758362377663280265602451208857559097064534704419519838012124673319399978216436230848352863124882706815885893593735333367005329738247818495257300743632028588854067874383235605176431844140304715964838953212384804978991515301734967354959109472448946352611018384687864619978833066323690106662828719788405588578045071439253749889062098055075818401796014822464285225322213565399983789695463210848622231613662225749393697210868026005914232736079627509145221080542900044790239003001870775819908390320496752975258367342589503092614278002740906584564658865246936351037936535577112814670608265198307207717488331195738017345180804256567139915546021997539331985454333380625898300007789819763663165466839483636263309989596232760277004024062604085247105905820249781258177290552626242467710012090442070263991700405432997701453959453857028315250132400731170201212459746910188457120144168895847744859524641230201477132268990823993861741511011616906347350106860574568670191363403925602536378571612101967634535492649865036535063999675425699003626533005634729450503211735487309883772808770480352437367616905826790450757172857431716972360182490154314928353492497118471906828166353824041569041982468297295439545479713771328298000781173977290704919273139534502675482354971253250457725753199197357784069207211339197502446664206923748955620276267619718961579255817867961913632626894503240797028178748914323750068790248013783338141179417984052750969228659474986015935787778510801782674506528238845721978904940175319550664671488929807568965541478074764036907496387786012246685247960625050766006187826007337489091012362310669076013457735722208591856943931217706756310850228066064629491243372671003223603109842821792230967831471744757038307512517705373199512490784070427152465288148014876844185363145710605459237640530182408823477834380299440622861844660996856095098224487718440483869694333225647857214884791563197374587136639553028397761746415199393199326883964869073903018381009378910736684477597989593871002922926346294243737906097298192618270807990678103014634593753293938152006905419906177749172955014962350829011276940725577501832076512855328854486122712322120137723364210094990188898244976525287456320283552329471517103628365033782462087229570184619222148332521728599411110157740225949056395383107832069918074277692396488735647832725668555122968563377195947800729501980733779882626144440510251554829019873948858470430407849638411705987536233074668131220472075842750456170520950134861438391751156210181163095406097069645386725822900947456951114576729582829151248596489558932220717605846045609059147575145469506283020072731368065545136027130725029650096693654156157629401618387567867625664196755699835894610879872732771527208536586401475555100537566904081924607209451431039871186296695497126818457013388665652915726885442538509715335299997763877631002551386629931042777704250294081652449671861299606217117679920276863786533837015948641198646853006775143283469979508274885054582443809490842025992796435736450586582596497642272914275938736361208892069999467242269423647551168195268627456457702876032459149684781165155262128197928857882799503574027992882633200954879357477905649424812096271159538056743757813325249781721969578822054163821092895292948595491421607123419694503210286178881079072615951806776431830761910831323166244655371377030469622969747611278658472236190677567203993455736537236404877405900112454450718328551170905835251973539033922461350859940818674365440995295235909711901588078361450908024597556110583619911420907982285227182154473748053227993552659025995193715770572988886369668005236682704761198275550289395387990167056225480157379484219922206594638325773450982660201843930099029065604171905112276677155380574265676883311038128117600659502563314353115636892262511498770003624171924414875162327174305731870663383349069074606478503526389213364365452084003289694579533773432372506048732370709286416122229283458357916121302674140060279645427329524887286798896577595343268494514278157181876867539758588833094475017195090612365963728631326924274976575469033915273443433819094579410303369014130597007802602135449187906941414375903381506490877940581237509067084409301925787035262391363773864610503014197485031696351993298662473444326571635657915828488118963041019067615195086840889516331154667955207229661100220020647813077265442754255289909634563659563829391720332823378523367099478043718486434276707929588399462358392312212408537140451404676284441656179602638367286566639952523268619387853394833632381773716711858828145605464280527699801286832661540752162146843328900031191043385008518720106881972732107155794853391377801686150247330185348580624503750567586587297369485597949440572100885781658642914391478023127867399568196496215754362772126587491154042565789867862944308157058383255430798226617616862170761444859607210462842192056668232576273752776300909172092601638577792775649102990157417302308325297357550303676590047751716422854386942755559310362866261183769208246966139762160153461841157337059778012799732787731803738231064599260794660602448056458262315955393581172184897898952039521009685714613870233111737956896353805658168505765738393962841993291655010929500308137060783708557609988191760148636089435457110194943500921566893564791582204184766713743583437647810035981520722385288182114770978014204669411821691951525472479207671559239769394002714971554420404330277754004581328250275729538741333149693264300957622675253599963369729281374445333061393395693641822132842326672980612675136778773367241131269481426685459002145041098581008711840166940673870358349754728720327186624221152287671572313226894246865158077729780541182703011176496719206333730181130001596533130384941179077786169777516914883427136121065496702195652428879779182324317301946076988658002632769456998120039327929231475594286651537962684565067949000733302657532443822578891713699620955105614486169628930180868161171575082356258304612352935862292708970070531701286724419752005149370547872532919223264720294864836580167341250930703830390885026480386960205701598683326205586423525314693152682380614925270476248029807269619008530874066854335975469655426928507687569781528344715756807901004825565760303183350366849088226229126284088840584173272043618082275713862727904930258320077611308160926140667481014846168340571973786725183695376125408537065454889447024515966862320480170456852734817930831341956179731156770861090682500753803140720960912816974519281040168312288721226132426643939483559302331283756454788831981216885228754562143199929551728219354908158240486915755312909209904691570677245903705305396772051749539784629306706809204518932501549346672843203951772410786075217053896624165007094260174156813109940879039404193533422242768229665028003898510997361184723083135539719218589077324148142124171683494921425687737151223423554109424703739123640605478925977440384987126188191962520818734476252598177205884024261054593032465254617767520242149115056081757703492050323472558649550654166298905464688923595067747493123910093973223443769065162455564870173178105124100987251684383811657083959429196654647703559792462272803594345833873630828098259037356569669441165817627755664947576761354659945323818527741860120336847269236597061100752296740305419607962631210752779106612550108455272745357988907084459608698249924186090819310325061967283290730382750351418431501002846815718119419048546996492776181896643067770959679581488867514146432789068976632652415689163492897432220428280837853624939325036783780430864365098831021357144933088601885609305431600235719606777600701808693525363427979486868698537737078891782867700590274913313870734250472768832667853586746783468974074927236078173698611723946596201016320842057178782920311416405046555070148863881673673635137074816115077157535428424750981717025445431533986845258882519991010938935074468476235716858787498049064792098830751814737360863315847420252418364900863690067039100485732977101506864650657235457726389847533419131937833335249219129217229385612926631497293373123160371486435563995766632670296863139831536403037960939752963797371165885025223036234593352759103319102137371186632762262729223373074286316901049606082207317079278048623284740592305471343353719482047142078545198226689272291441705879900985537716545464779849220407368394140819700330616225364709514031977492970930439402464294509526921124115330321283553789962004543175102815267377002755433237702552015627007853123906143020680637346627335738942078800087059126401489381752153034071563610274178599998471745411681018192337094250812956967275292669744972484199546468509991069074528464741840621488023564903433582575610283520286949414725433791516023542061273956555873658456245871924440530550265345688499328889738350703141801264606031948032240945232625091757481445145161394986988362310788284511005177903548510665021049995862184712396165042283608429132037376858649098231315533999505756802133435975114357778978905185751384851514195851028198104782397543808918023905258912511025841884649715791903318685410487271212841396464077807795170186966288434991684953494659576053649412149854955589846965726937224391517654036800417689346125238410234368329359208312825742101618568544175204021873686359352109124200659065792979741407112726554056673475918987805944859359963659618204451146268006535105581342902872510126749000296444046640352705839876842276505630624583772224308000635501780523496235914804220406933294868579837268444686015276525386294999453434547218031007401790289851455016590293684379716112018419464426316522422695225851903877811334679574029316362769563681966687001738787351291421118808080423172595386057067268467550078148972521542910464966701667669909564846606646176694454139025424911346245752961977490863927460828825873106273084774376215211440640766831370034241336785457216318545705572032756945372329919795033674450763275356389859936036103749648593613330026830014092649143257613346090216127331662402928201148802910048941395756420445732243984061915778487926719759579092365951174805555648908939197865508753014361176148258363842887611540997393284024687293820451052379924850803424120276858936930222293622466612604451742580209375462225346962021626227132604735118479385237530208238820734043802859161407528564553703462513447881709318650696150493507873215950224499614093189969076124731186480698868001750000484513039422731746826969051570335919027732365356895182389007273721803164147762091694864174279960393810362363084982775593833277509115894597084997422669479028202061678157306509029923305059136432017603574770332521789679538203414256944527101169102280671808789640586820514953723790596464944410520294724885353590856412732111621394024761306091209670266956704492329510800199046997966367073265066223910738759555357093432715739686272518492175928921588301721655557141325118259285152700932234161202023752563558080380609586147290605560432304596093375197947179768163559097967788067071710862680819435131028251598945077989023625669069438631869188774433931407041587345972540676502264565676999490392444239423880456502664525960297546377654873554742169685635507591305838602016781387407680038668153043331237784123195140366790622789799120239747397396887867014863177586861624697323284887965648206549182517887128015934324652846926732895966213667636605842045481133655983317181742084632913729188727921333473271006807967571667636033767333551004897354414535151189435492172800636456898488438659203441040815290714158403999973246991753872989774462514983581543776327161896109855956240020648291103325814550947918574045376154903451624256815683728684262203500777978653571031617481698680761971442815787952716886836789697606263505750982251196545960340909875075191466305644010654264861019562961021616765866531228849682567187691835387070399540589430564892405463667377691068245418174735257755477320815954149628894237953900580500497552960808521674646165099817249182480274216916020776742172273521563174715414033585467064055988211474794107888001565565647928711466540265122182918642573184821077853302548818466690528145166427166383296709588214843964550503290805266757424241626566518061048974678154026536031395320155374189615929604900037228552449187387417541661983276638756230749814175972626684820038640583930059264693297295665591650444449071609480271368439436024100300439158143572879540420644542058501310963638716125416118860202081040929632755399719781794768485273409542757491465838090190480540105760199750678557281861260621368179503188489601283640394624539050797493213410650943446612593402396296069598136662212642077079986873026302686109627676636138326676381896550455633518283384780755895525790668995863131446014808467166540217923251147080420457688874312493603882507925156764038748974413331968503728530520179414601388460621148196039173156533345916223596129004988684375627102277717010719175509465695760673514794870000082499877120068201927047664235059628920823539846388580400833697823205939218423936786441692728699153029149933285130802652470187319655489338255669295921977046226350394901999988880937338137071151792584718807418442334008489071326012137844151561504336838601803977447955327438152506118397915953420077549410705220685049861980510552343071711999248619012424672027903949127555938400129377731396453902525728687119047762523915116856117398852709928790090428670948357050860079017473963262530088223900445410345610295213857398753830968781068523000018423444792366454103846175449850517263645957714453111091369733822421131154209339759875374204229601006148191687230809273047801343016440428097965193273403477718167259506309592439906107089530560158681861858712247356440467282821497977860184954911446678372907095759734264856053153456637793592163037562996448803341558513615545860797168880309844712525539312223454611219812830077736794325652783252091503947825591845600001503695836314088872834663782449283252725819233056346563327541914092417134329329274449383033419628653674135574264508811265793895638261469082638325580696569884352347949090642564914777910320384275516946518034806793015007175256273640336752161992298987620735952384438100719685245341214975317399366697932152350437724927778198700612975427083938567737737451532571616939208739987950518410768247252434437789445453643147114505991074376531643938024887350919159080020338502649258624739690529819297364430250052475694072544043888724712062440173823581491708024241258414803272564951348213721253644025953650331212471151993273533297252114544403142278812809746635811885624026071528894749379320019795467717080992944036941287336371365003228018050842580771214641428936793196290306619580843767861363793213857934185113395991165881782014132079513526834368003710894547510027741140577888390390005963089744669852584235465865331482454734160422595642451840614509961532183024145181299704814420338844473228300347466347159603153227429394010595354669992513722178098672656375152552812359536294445749931048352327849630418128896381805555496060877482521179741513953098127638155056544905116835460814213403334406015539580261051761873848321418972649575238502637339332193203748182602930097399103518408127114701211531854645228401949190106303120535357051403024066496575410163895085580476525010041725242560542745083863649987171010490314006984782620091133170035810251674812165728050006418200325674452304498499544830183641495040046137111130243676421433436075053411765662012859860269015015940419779127150828661050881293866092139152489076663071244808161506009984589885305230616469234063629036968426281083902393450572693419857915138073283429457589802009719127737439280706500273848252703499990975488422370972025214683886077004374123676795357545286524286611015586763095757636182542923404772897686601674415712504773982771755068499555280732722207961190691500349688102845448630992489805306594851204940882014184066922267930710516907105162775182346800054785635497881713970006768736253686006575070440843197404259682889928580654048819795626611942137118066048824580220706015463163604600967137840078650279955812960081503813424699450723462630544653920420763658251345992315049926523411059131271099053999259202450552143513685604164770601235758172233625670253775468116148612605848342798731291394395119599219522609553216169360341523360334309192070259842002943586732724976769185629980707164052735702563478989717442434296720990265168339190333783734414612659379941833498705490836047522895367887834128245213374066084600009616904597503140238844138272192851507967284706064473098439488899181933591206532471034818509427259221424260412695985195718942536016744258176859783536626891658771004924917851180720822522599974818816843331616332492114733638435790893058324201269398245585658188185673234406845521315593215335708393761429784128395076022901632511472202555698752034236233301878193611930814314104773846551183098194860469541465728075492808619520513836048206098300068890527407674213459894589374113091132498201265129234932744582920740828249389828350652161397955056912398197372411981586027867640993029504092894163640168021885820781496067768483817731755275581276168437804869845454799722756796946440292848636403886725368052699758975520258199789937359991995481401756922190436709833578296982095340684318556648804122296916825023005881839728308256125514222458317560407959289401283120222353217146739160388860078661551533983755315907604916695579727257560321689957337217351986288146409942333984627011391882713396143630142708265688844049080669439695297697465589418175340375540492300089190428531684485124878469112568212764005287036377964379795112370758904595622801603384616157126271449060443999600232890763702916099302823370848215725401066801563400304147886246885231797232159138198568432711144675964462241306469683621037193564284139032172072814217493649006604841762416077684029203819353630377268276950264272943703412272589256698571959366736481481994279324877404212915522589020193106511574729911056846883721864647104175987365712628897097669651607994306858262490377719073610049768171682282382805881679760198168054577616221474813204852309306247154456182827499524140583900384312834186330675565523274891028579570846714944128686436257630020138699747011090622838216444836010133579760639430715110053625576088066920862410757671502771076291278365035158019033740135611714776607954487963525058534368661470383021452546080690130177194555940655658971393378370713388165315805335547105906023648796502015292652402486524698376651375325518174486418092585997961344395759614306564870530302165259311074902076350721425093752983478075902554968940096036757749297718172862607223280548652877789965965824296752087212552784527036065424014876849324948844948046363305119490505372447550466418211733447858351161118278498904417897184168469250103171667423435302594372986623707737017957408357991009166286481596912045657474826839863584428158241805819983665771647130726086420249666891342671964166900155865288554958138079999442811121838327228570695271845614778759111952383483848358535310333859939526770713925737282815138971191117151192202187908848353349280559952063403951130593543928207382543676318546853126450558003163738924595695196446685108984699859404126627549308373837457150563175115236804116007950967797782476708422365726565937597330253226966403002448940323919571717277021877904162542899532008845383709463871125929491242978188162821141375230309598416188646872493892809058101192407690281867552648894700536111142085772821019529535169208427503334259751954318335268398025299735437771050136316386009550782977944989256871453924082749047161657694483408790859982828460908943242690402678599225288358159928973063299131429594173401758832647536880916971712511664755881954795029833446761234867684792869023418306567412894192652161547130465221746789542342054065197126016624355596911233214852038446788380100461219497572870450974089629879970068546735009320179085661494227786817039026049300932202423049264443171039527808991480283559928991239494045579962769162719816653423923051673678687679423715811149827975270797785000276665863661855914098167148106921376243489581392560131298162751882945569477925618467442208093697537523643538636484148544081347813552160640100985590874264472577698143168316088242675673374164916466284256716074635172311773480842487042050364555269834336896300500011871401593800199815720469637412611374939865309198936489937556772715895333277773439087455359874621180010103563701413863818999727195700382602263387266751824400689802337875846394356134928576097438110995558279968379431813316604659064716737125894026102129293841097970031056477534028991036009135684219745592468075590877489305756336801405669846137958579641917517235365710374542241988663719192884822434119391489230652146200250332731809145507751615036787522099751317766417941765784176993207603143399451240045662155220426789604122826792624660862238758676439706486204797775016513291835251298144015717152995437303047484673455176345220478547897095161418484523169639042647112757017634953834758161431901427447529265178671785976863975149944335451905964312991081386567733829136370476535987117509568862667627919249569199016444014468856952196071215273161530330651702145309037387087007356415738406671002722357513777792713640013402193470776845688807269940451727668700865840375152943253815014137737045624660932747196319047345200833759319507814332242038528190770833371054825852833074330721313306481458003705228512782590872143374667151760078914428367915494644122559950863632113806839157236966787539131782225221771560695369935417119068697881983671647837483383646193479230309178389513129254923373109447843157168052297380938788109482468688420858621731697812580210876971361013633437395753780166249425289545918329129898208068863959321883830204802584956869354223415940835960946373827395920385034943849890972703218319594376712205757972331287302661516881518838810618488554962678249009426114922834336301226716244757792717244890905302385239741641886301396974913612286164037277511746338741891792915759311778427065917440038448205421986964293606070806323596407969848621274039862136456759326567237268365394646464337953777373090096888076043369036123746120402655533574521719405156037920175213984663186699855193100734036854252754861029444550155222112744986038121439343650030304264941464032067915568388265814290670910403512679444463612196319981485688507352915543460931237427922258785622015018658524866153339222722060180931881191935976560081794642573155617353352519983082071040634082070891636527410361431894240339669500100302224090499510124661739069475859154502245536543846831353776383574634230894895254060581613322843083108535799004241926728573730749750046183079106638253925538860208372197410146419497886556061729717937410080936764252520723531716546335175423032853253965113546028059307526527511231527564986896863030179189393143177879016834001176600474055686558720227112477530447222884404706131503256141026871803642190236109794874621396893398362781125206909598463092211401711016387654404050632193450633991416735602830236224767928186121157713161992955653504019724424067955598528915155100687646309603344650829338223716111672064702379128522246665195649499413234846626274096687679221131435698295365503489554726234529279827137878018943520894281376311678446701969676960995711964885727614595915706958067677991457306316743941520802725530375931042639272849771519859939071170071635530591722829770460637882726509955917380637353645517847043072974914084349705099802972079689518580694054531946763563263180747473345076950035861914964594783008269663965450496842958400526210014037428119880021285442820897888280460658891552844311662818887903403202278273535881099658347195055467899070817769687167375601191383865532228451270259382597118683396909462161146820857411931896598137382686007169021459789700981429173948915179095177114002400489900177904515667639253277911294177199652169032167716208414079842987505245536965415665608289893272304668948453296735681261094437249313346863112370872529420078531777778158642899024469948562784185546316689757785361872574469200043528284550571342139820029606834219295352622025333058802892777159666807412015937931949560582262897675553484858055186176649241713353685279184373655866871077885017584762713900264307576500498817676480027758301630553291386453465886653185018253587762164902080441471137320104023339748228599296025533801145131417243392616737287201593380048924615611729999679989194141864353288099911824811013903802062489000922199853681758712859258947881495901886305858670681026978481765394236583917536514501813850368903543977206975397139447376608005509797089014082206048904392813041870499213162202899615609339419585151296260430193222835727095708697088629700276534015753392782030857653481268004054077934777616930566841268673170945341769729704242197473528020511947084243210681259092896876248100493161708945136012635640846685779887270162966921228603032792364309090158097066481821169003410631712561374269907776274573955341147931177006898934066510223545348480182342493873456630911358114011733915112502885858714452738112312885681899376885959915742546520603191205311968165231749797486401956767718449976670540283630667428055297455028410540734451264357396294758686466754010979330687199636241908159222885011594021942439074574361401580005983197901920488773401677433504188726267271627870852430090648577591030031011798034647776932570208155895350895012340619564962925459243539116183794726064416151629121994557293664147876760911799348198325449280830957962442524036063466186047127416717820115308868081298692335818052318130162359493803249000069170325937072017053550894535774854042139965501266041777628241955987955313199865956980420309099294305208270813056479646703510844091830942149017568747723345202709164364554994427299588961301055094923167607367064331630161910861162167340076669423329672018504335638797304475005250495915922178224612872539164071678912341243292838037655954969790410489687520109994189875143933540012193622160887338149624788286390716414308558967347524478698252645840200920310117679284475657406530001635065721018996430005147725564386495941309994729503618550448352582788004440419119008336677376238044274809999216269264145584253541692911444563202532628313223358040512649896553961095297496571301580887134629703376710165116368311563977472908154449532849101227868303425461437203940285384516902947053226597966670033824560761850687896237700991195831359787007629387922346590031133772309609777896941915758089449722374148786812774634512431851493493557904777132392342207679340312699745277311781988871644831681667285186327092729537371308506256099957999574487893110262150028690040740598431307570868910824862453809000063894716494295541005019747670930027599080843962341356356713877212365191535030361303485656684486286786699700880764550717256626034691480506278991135152427756318534848364293730969763755509883929355117761006023123026573362389344243742646537274445325544156545559024302753784989781009283882953903530298334047316017342928542937325179994473677568497709202226862589435689144918139989208452097927889101397863071784360529418920272597194167406954611785231153404882153281368979877074932929625170305040084622312429032411299828817604643444600099588742584807933239505101757595991655822929863486414868050477606516684315008010839881050248269115099444618037659962017967765595668136448293903392584476605641200358569125885601815053275580977012633401619742322504000118778227116487442081557366025382592458711043454523677458721613500257324383829359270871177361729366862175661088233644003401994240159575457471215797034002640635987047863612091812185402342664877002364215684791701342742355316328913107061498083323199535499672471430784744430200568347486889946446737111353909779367808117718858048064184665472988809465917440948065381912679416198856261007045786801301276914211470093898625347069048588080713575821489931433555187997334428261857028081959436277169603927453428924977512609377866418965006817964092996105705907397671421485342771050691564354567865818735081693576210387227779333694975977371139496962358815588353378111225999047101001657182809063203081691631991918645261570908044666227384547069029014593074913597113818856956243662400758278317902080682167551988082223806034497375930579770216170941259951842679161748498364270174476985091751739906588676029437452022216830804952622447001871361695339806571957779529199037549565576157324696348589730654290335570788881611611954923333846862632739476793617566156035435461203583816547712133022658794397984473815244577946458111163638449934149588216249663879115699348358067396460270832112840860020415646879563779247931168890343006531493046992362862775953151033366836382124566145859711266595972012946893536189690162484930895542464991120289067293893671884473250820740870483064650044500879382344567755615595234933177847181972917134024308719537401025512225549123557099322801648407691093890411154135771303544485050360468522499436258623075389086668164477663436008287609899556415457390327488070998647417279934914471413795743806191411207893593282020144326409955285845274586217414893129484507110804657272414713108367769686800779955341358934162319682198470211320068509191009427320346253381225017364710090297020806124609100539752698675591861539443262166680167288018333684282996555909269453505373879438755489079401252998419416506237075385589937296691230772114315381680979080787256037141880916378137131416562982938432816838358004541721454088242897299343305656940959255958594998417702231759512941502798193040037098359259679537072943388964953559887100748970625201367551235489989823299995474788451728370342447888977763331562092937233099077454709678746146012133425718812205727062916438392010348420504506646938782379238178385946252560860025190145559048374283497054002093542236173874029630414440049432009911606008598303897679116190718304451954765742002378437525295206144859751324907419328966762665707974744740302004608395717908466399187073657311528659300159860088606383846941714175353534922115447592037586065723260053144797731819564296392468795059450656399927642657781580590253202854274129537870735346235919248660017285991036518909213614064796786455952360214712428200240118234780603788625864003326749224863523776093220203329493485336605943393271758949180673844947797596510063778536787983311949271207236610650643200151221734865064541086010104461591417860859345470536684069748486678240232039764562917869007010570993130648186679666126790307230979651863361760835002116138543378783555461750257325457308179931722672025937392612229043570823011762381833427234129950210550881678591765586582069646203919968983489343121848809006861732057381205691762768378501346209819947013795623633969615501105885142942637197964757554977920584446084879555962831295764252181618729356430199009758889022299832443986509395683079158253395354661057089068035903300685534974347557169456031978492746780037850333858066761318351354344683573103370016148394149919219323426128019081788207174318862779066984197554827716458355848528375353413392488386575447730694348084350117243178145210173224523100960931166623645457489298387118174211949056247215440405566790756067550916456860575360493641699647824568689061434425111145815875555490594186661276042194582767835903197489453820999348945705309253998101054165473836138737898231775957989052107252359163346897450154157789858496131893844348886450973783178355798817900344709113144894567596332160858217704536838829391657722322919444042385578326416110444750402952564269375186939655202787772698058493861133927553720484432460748170369960195648562652516880657729053808478191951572860046124816251309025225124468037160625163871522213917141526043704667163507726501379783858214047791533441419059145757475784367517823140892994741632578618012542591947539619609544654389602394415113936110351614320546438814667896442513497398713553658701536088014613980108887189095270342135217866062267354444250927246190239044535691913058450765874910078974206007325835979744312620064257822289696930264158792403302863981748315127592632889663603037991664810051684107911564672926148718255776927004655749892062023971250319081143610790286992338931940056841404128111923368179831064369917638962674713779077682435391539706536732359537959731303935566783125946147697700067846169927154720282448123679014602195379189831173327053747202969702625976880484694918204340876255233437924627746080261239267704744702196121542477837754097830866946176335193721147823469776520850093310159930139355421407484566795234951737428687431998174520829992237994208639783066075676013853796523999242465392899275583554843775284850482571565268584282466909314908139215582845273294376929176804504018115763632981533178965744062909420459209812223247504953062187643446569664006556383853712613874642418915367580223048116383285266998198197381067875287470218295709341039040835561128967417641922217606810063791687053822779925719940426624493975701553234871585861212803302152565954691720447245139265168468967030823067887579735716540674156437554482522620817567581230019398490420100525492918003868777456498529022111881170608028703704562772295179495920771816651772790527385351629181825057299624522182969298910204642841921945932604690683973570029147625603085009881296831258771616513735872537450134901643593312892420122991124750693031472387809309585695846138445520216005316038965057926004004521659210685941066907919066996933351433325835706254844290882434453415365531431280912901479397084734365806908758610732068069090099426437027995951985425893633190318869405924161932075286681621314170079717245368173398445083072603240493487778101106223474844131166351370216668361024306634978712143090995482703114301756026301641822497395461665715785155066143595219396336785974770941892936682725258076544238009460966261714278233382524245074738627296849815155179839078022934614116491362662924895462660327870718866002036400183820777759177619552721948109503434609095614140388954020197956245696720305877205637696589257393797405639067925091850440236612527007581563553683301382398316674103598311947849009913723459731606744152130039923407641198768891787991378612258381259746825150321413678639655929761340289430450396867326747819560301066931372545893726461090347964759807416269487468120071140412087223928629453546916532935787517418329842365225401011907021247224177393641878422175134085563628500324694154851644760342298181126568368721860963601730494022445692134063981544522261049622760812259526116440914218125774828595549394541463941047629144699883197057431882787136823619787351345381221737873098680470795349814461226102606612041982699854141912446348518374746029994625253655539433840309880619850185758669240357171537720347017315912986223884154435878535118676262032551338126396120100508853688699662377008763885720218297018193085422169594207587461486420954037036995948177380425107267150080578997338394099864956371729166843292509047994816586371135312838718229460119205630325877859842267902360167352245539164748454977681909362976956341921879416625069553342082334225819618950585862274322867078853846221948931861501735604678553605643434633042943937670543100972137255953123716391155161246046755776952575709711169671568006087272075762047425529636639217499093635564343637435153355366166609806187515914255322633104982744137982606550117276982146803140342200236019447016365929864103462529169678367347410215851951397301195104943579576962237504943233519389214275949311979244507204403014397220841776469373522609476805238305871041034839499604814574037386946253533642266055507624856596357546768262178647794787713959878720318514338123214395890243181388263834348185446071830965605115003498188591565582888064186394885456013204144932696695795666906176127620097936387961380655803879032906737406812750012779210305625946859282121518565439323617105796787942427512522471743902467479467381283182778207509304271992810468519523681438196787145025592342387400146099062003295145216464715555783648428555401475889993352545490137968053217984014071891517508625483135764588128272207015777976094327471354575908337454603658795673302000940415641054381565627171763218945696260124822481697496792970556735315026464994714293091143025283357146606710376741127120160746285079166550373698904599353849307011569255374928482652311655354808907856696894181363422564223111524251655557712839622939638382754860407475622079662343895920704337680917912009648964047554974651789911214187937980713474565620423162418238971854307233531209446902273268963138834119349227328120369527175499343799028651030956696701724456148704644339125586141412329795829454933087823390612294581984652742143584290422829060530136670949864639042438765148524557232233917458565409202612903593653615291646906218066527566318471099883680662372900399713663075857825165362634763154556010191366706205148867048558924730927118006253576682394393565705922307861392284313038535966768902353956196792525427308051297372364434395085073168573867881746971620747867067469739287584609746877315778200382170231064133250804088311318447247905246861587819488023766949826870518292998805113398212654848600200231839902625122348476421702728197290374366144878588339920398329515523046264636258475053496613977717087214908700216276551841115388309459084769859341425194165463090444577852505517159760592029096639103863535899413819925444648982704664730041781685638059991647907256026055491254264117310146807199280547367682391548630215529292418282353173489739823775211811136848662221264607001583319671461246879335301789163099454133210673474748690906072314742648412922905664334651980254265289789922569634521026629559552269980212137432173847894392811493502150437989243887584259291395090157956410018842340293704366216159593360950158871796407470946656749376827629959524623884346165191562371757582809066228599909995744009638193377428266824164337835456759194820601869388240916646761405966026980558723620511162321081408091859170040558256872341800665541629868967434949013469020052213131601004402966418435759441843937463200573397974364996983506200482813367185435629216835039085470117859238069573636753074809168238054742065967168065931661717963349440993466493141226525880442777720028501399468985035551156651106748394447667235079362428846809261936485833742398289567436717791579463046918142739415355878574229547331934140382639126176963747648225182095383187037484109145350199266346611889937604250448867258813554311798098304820169970383393954606312512327121480317900921213169270513498870268315320736460068318121231352991199417933971884485260805016597817791925890531492619669618935572236371089551252824541963226539284522095779707207928163052890774707345832214796578267460275983833225934003286282621480869529566868747972893532826772026489522902536741166892263626876056721696738941922863535366446697357262645265926137403797932378582599995834565024742842318353695347852134931141926856276267327433941420331238684774274463664833624608157152373442863878706676231891018198446790825920596474507250786449783218896934249457365456229207574383816947127556655505479992108803937748026482282005428135053984430763251829868306657288070943506145103907971286870441504737704352599756725514693381834731458540230700627539952143060473148713605222884007328215397625886851612747318839505230522860712204837805805159252873886073304956157276343054328776273272835503836378079239177103712654349602612235424190207582763216438180395553501515726304189976274894956217952772021939888037321514910664983087704621048029338111919201800840984066743202683594341534957190501312004261605980523168138631027352362653372032106410842607007546232588867762417542337015148089256889147804306103833877937471309038955266396412366146948816621391566928265068979793610638251758577276317269466988744254252507400736099338138423776178518528448998043699749805241296795271636975577666330450108599399726841766337947012000476150438566655395289531637276635638980399345910983350455532979440706670925078534908012110906934173794406287860126522322420478774248819452239808829105940458923246583879020232783144064941899064476142854946942842889661139082305200339866258636289635609212826507954679554778616081845394845597459191171080884184931029208630424736393456851650266265092068318302603311471477661068758585979075104419179022231084103408253872562334630699768240578033533238441710035301464455843890792506834290987861674054172789371294284591263421529608579967682086571147509998867790094027027110497707019822171422684446605622587833120455875406020771926773974791564581964594793260108820071504850825804759331251951474170217296619667366125224268598982486970930135970099809501010010486007274570138496513043886067681664990941778746648283862189393643574254421623418966578296826669327100120774846317473670118103969579235971661746059772931126012112075682182439117699378318402594114097734677567551153834134496826116794311743273233485752842236085899104758886961347152419149539399607646904144524303939369486202071784847840327082996952140111115047360775957937577800698783678251733030290502145349510849630796396507844860289228474921034322193429602567631105867427420481601659958030917565840205314069078870045502818152847479261442254063924262812385845738775758027374833418408851311671183174377656306189913874491679632948217954044755441466684985623423381249574075986588117850205757331123208673928454077807090437928094160372581577068254607539402920760288277212538722596137417478409982864041573299854423741297872334763429689957554674283875266907935757767182651169318456636657438598654970932674926665487669711940669473408032445540940598828501121663099531190818191178845820987429344118583028539541461006689354309578896746440886412498120276014041839353055791238625151444659749319773673469431816376459069885566532039445197531884998657034271023171419381405856680514186350068926980859720282695641631079778939864876640024976263441194695112797191883992368818640185415699804474732877103731086236708626558684462106056066896699910218928427507803821557248106172175981015775441764415148673012738929761858065037902612001817590873315804713476218793402134992105061766720088991927027424786596064075450809038804905627202439662419540560837488922590079248061026834405735766556797041725418319194537040118940403962612257707905518354318215832498456491965559659585619874617406517639822899152785853340505220395461484011274842782911359211332978493798865670466720726636533960625772591557530066769878905705779126948455881284028169255885474107574537040997089802526801717087041437732644524963128707150266976991761210928072854255427606163121365649416490978127405214915904132104502995193474024100782207094024226256422762763254579524006528544894867876919882122829616485582398454717313823192169747206237258098192633767160179785506221042040839217031767012697054682777751583639343964641650806245171331646409756838900268237176561526139414025924120051489423932097446156775623257562024221374554687062158376710439125147184962137811076517936827696928337291785147890953454017530936466786542618254171543675817456324121720400190637599289074368445564084468614061405686547789975418031728974717144075211472959782885650859241795462659480422222024525970209380264970164518768071992022487214828949427813826983602815030928688237774899740132286992284621806836904662122601211153855941506651358994109160745581769868186325795653251763633836639245191474352961981779073787653128025001814571776567150635978087196383002013834136045716671199358167235005362796799144141660070346954344069109845741261797624120157814985853466469056488453463598546806622696411929965573584397259939044329744397546445858392091948882858447351804785648169466622172660691516453970041632119659975661496991720653732055559288762272570663880181177567692809255818102364857476706414629751965927201740020246938630553179889729036931553669031327226785479337783885000913842998914306722636643213352131251693607735092504919704038487942029363931556454548753759142377960009160339518098634017870940424739471781216419331109880697579278819170803740411774804554335929906454920666551465544596460221564924556778990014360973775812801773359647791361224896066615136301315587196455630624715524483737161133525361340132179711935849092535364465585305999159478790132581158844831422728084639282496599570332106958440792994705962315688563896703348404504130594685597413686464322266401316033306600328866889898211748025661376915601573008318405044018829573323220549311959938698002723075246435985242757422586482652752082650384757967818935559261463343678744321871207375804094201422044935378381960528381170732894617376647154323407926503333441950276120658268518298153578889496985815541817969616228288698347830505121921328837471595614528210457189214929400571676366835334168827533161572382087230234556130948426642780057002384664004722472198308029407495155590590624724890934540496617608748895413942459763350546814714018045854803416763910120914077203053801223012841666269395336445192603223151736703465622112321348583888224629638984186143401938588364433446803391159900830348348482178959785026862169162197070952212571894802643871887303777095785148112471181904621585065540314373047218302454386432832315996917005964782083450571643727384157512267849322544595670701988783005090481456551752677580145374666406166076343426295903443787308006312190032252303024700268548097802978805697236215617594017382430156246726652113635347020049376175185511430707052266136518667710699180278115618779567908430371611044969666780394160603235574146528701164365634891611397469363657147306425900452010896791585479526213240232916095536175954306475861190958946283289322391503070956519394556567951330167231442308990105537328107226818461964335737134873015436121932276628073427122022281539069259090143104080395934706333053062190326074609149596689177997372463398133156480481481350096630359677562082209015740963157946776286490938971896770291422278983388434973981097220394491445972459964562131507450543348435742479331041559814393444558346399911023282575468103803231166333370114024723070528776781293356043581867345589510000316253274169486407393596060599360561467344926376035715490864086598199884915379021520845894983712499370738835802505841340354751021309617531520983904191938513908690166929910564636983829554403033776436763740560447519914572463482622958439834920167999396336257129984744389517533453789437574236028523190179086656318627138011531289680148524911546527069099770356268763000100637050440514828889398435281852690684731994743855473314835732427351796724519353810492436303900301215665176506117151940197231754755339346470599366566593144118246465775780967366105475434219856212123646037977553848458755001550792514636485805382431796982735845786257871514232315989678054638649313959175153370776270506157996731193329202448222445577001771241595904132379011328550986154510471616341743567586936401345249471132569624675417284788060180708871967890563227842916713178921602072542014382182532005548346343247077158263129747245892979571471350205562956037000838661040953830704442264914723826625321531635050331262238352625362521139052608144485883977821799398460444998374983969637374068233513059720665811503407925392771813045421560544023963200267046880471969236407649331542708064670339056986511902577338923065207927410286285374533932794225260241411266771194534583730725418005959755718029179277771957531190071802288497095379251935970117384677850115626327737555639468877067427757631006779871349205973042004913656224688609247313266950362283763685039536278696383485561204406451136769515200531286955021380151621521694064301579882194728454326740667294619560754031852148109398790850524384554623960904268550118330265395137187391269225886489351882970614566632927563947951206426139578203051501059071406798092208042052278816973054504911792587746054802325189469344588298274169273813954737958230445174563939435956617075798222581996453813481320626295969076449836710766630881508641175477538888500979712845495234475525367365943147999167783887049202492169770137840275136693983653899758059118874543215938657352091510006970576785915504073851771900680482829742106094259305172087126850282544734362105978823430825906801087606225537212626955034253122169045668483071682205458197858621043595534157000093649821456807511964021445520680613359530373631271440901987328461221297035601009305248209612073060665464365048182622310774373480635062416829521999104196319476578663457350189641947482239105050202637546220522258469889605210561966807038086261944081267244839063341070230808109307077952408399872459168424010528525500169342543854255923290168798441677592139346330759082209785737666127132614891936044048200120016942112684153388074073037229210135416548849198595258201776767546694008884089936474690666224694579226692432398917743710814255288775103921955397424898199415230245354767219495039522190196397511795441362119645394222126963066294075427620538577237701645461627831075297900874355035458530666012052133113283492496812454854277257198230710421749234018110839000080538154063650429326599998000841868585537846938456350826809933305321994736174814565983930683472678862224496254547280172399878784578113209214425015669775787867568088617135041839423343273764373839651587060647216374578507849423509893997830354884115380087531206332104632341371105357168064044173590852285927852570760722113233944503178383140565246200718000462714193337679489089799379064748535650322364472116636652675273921402158341242488094916421569665693185062069140711439195385348390709851157240169326396055041997839748793909775594091943587426673259394498162406513265985128627876099528548902376675267474496357273273110857829050671729909420031160402658729407878931354161400093306754285233288760999213549849993959136060806707506343293227734938447338195458064910306594985585438723429469875099075059886174265942422984303201220032345331241263785795740943915227317164779022214365669760801035836910916059167341660212108276914306188695560439442915356026600830398561705750016316396578712599540531401094783776649077205709437171868333491227380389633750849692026252149504819741566716834432508059336557676180715511414508510429773411336928770467364752586819933480697227911749047118863249159098094599997280382729043683265109086751215594830177842159752600959833293451619487418521703766205836157028919086375824448130351037549120355534324221629746805735413671701187359721618875980533543006175888132669022716663951759053895615598595027009598433669452292024674632410699990388198291057706487628982946565343742336285403928906765811463369708265508207912690614802060510287242962461503348797600020861971214649913969081041358186465687899910572252893274840150796599215398189131988609658594975040834404274772103495999330948701054497124097296387106903592354681477121682281925872778395502386966405579833398284412005315714927046673373138296953942405355005604463433265945786217247735088368792202020435613041140150680645796912155396575363931347404989029087908283879784216341314486752536036007724794607159821381377699668117993384583580548438580117764297574888529330734420510068888324001782664877177729542041459583958149566534049257540491730534824419046664895051020956157320446374967635801049880484049006321028198842575303294446777876749573641427042356510149104960315348678571473889595835101951365541931737884738197285012495543242564168007287946705781121442056326830226914890307872936942452847184540801018461711048620980407658862873189590560023553182071394776866513787687850369135122253086568225805636339538631618332488020552649545440173815328203139458917903451152671376836265504482367001044763718416941469267250233324949105200463839423539305803702330682273528448200153154264927705617998077586725419087118613884141495490877493506617819710924015469192852302159821932218475622020848147309807736542836039593668224396321562306299651706014345858438124631405871123137266135451223935633976274748612257627865314000612123589676610271186227639014107058213839880867652608139374840802845853863903785339073211374883395355825847528562845827239146200753422909195879062722257332925291425210488752104899410025318433531379520769261550369681892372029607963397510286504368514932560921231869371214472442073784498097089935652382574528939618165072820722255868718176902910284600644826216673880417664528670131959746303858921335209116747476520494629197448767106518481561934342170884333314717386935010755258991254372084974588441031071471308730222034996253916025273339293407569684631893517169711983801603975018122910423868422164535186598835489290439249909050315058366497670735898589983240844390790357361239314881126700450111087776112525731169836556740212611921936345209722684460872337311845920202647911257728116881422196513197984196056325735847349427756674773667447177937910143745472770573558913650335960703348895313654292641001100942599843448943863003489506217971189837183147137335354449857874730578690511082953002079130728950472897608944697165939505959661164082134090517104934034754444798307873990162017917209636119069064997847260196885480754011215489644345391180565208240883562592602706515176066376632869270157543676967689364717029271810854115727768874281298907579465638342954968536571434818066413074648134597580066451980963527641176288664378871265367238271114000762620244292739816564627324678281733288068651956494319457005798824934951801640606093372619182153948773925748402373258227040209601334811263238572551230236692520887946754843643033241386202281603958559488509140197368967745486064183808781250255874672417790980560831410513837004077459098295785390122416513184993288231235023573380928037706606587637569030069191612199595977583056118207094125619668650779994131613304958860151979592782833087704623828908341017133858588678113278093267886737891002915924391625700178906881634597630683776409703624697818255270768573732007140851301687395829637604430375961715219426350735279801664254239631736788697768524630594599530644203413939301110816528086376226642268673626201528157009982899809278010717293960099020181961076205072371206349870457711589533377004536488261688948841490633254511160047587116597197131121760038544457645110377497052846762960126711137013142782833923508852676367986105751456596957897600911722369743166014435541888448258489326286120708743070910230649908145781867558437660919873838129938061534371904103751929803269580862149434167376428604368536471796885444141443778236427086730781706742924091148829086209048077413404506399094025242800457260617726693884459760726894251170208996822104300711002223682196111116957102954380061889974980783053338697488324466763753351244712820035951915428242265509422800776183868102994778080988922102788760860745315345464511760564575132721415281297123210143962216227127062200205459340253335168967338810848502888720626257844904907899449635246374253790221329009883833020753151669869112614821261424989452209340428933536531507522102212118566264135133660684942774821284341394654842640436682881607674947333996607905469292064937469454262319244696253788884201406256697598012007424629597237621460363241482294589207990702618182428677435309015443643118237259052013558622405828551508864936105633595835547939354277495349416859627376264522257665908163635123301418588887801170833881513776470669202418771957202198852225527879431711044860509352108109119884941956730718648501384900598942317540773124606000627779104891162446844024393585740674096440068589297520589457366189280639737380403030718675483069803470713786459085679063522291727586045370054219430173387986903779506945665734407291012330584010835373245050362080269421131848497034796731282971196599263726501303700553026147731935562318700464839617198985628693807120043760720636862229167160178209681203894653063500693843071651296159877400369863049450170329496916205318594487493219221189085788948891816806512231206527863729294471722396831306067238113698096414522526508013433219544451206138088633188683197359744034934838403137588091435813959959725084901478760506275608668383830470647939618209479324318826273465333522264700111426690635752393714260651523228925580395164176991992579283201008257270004135700214632610698053191584501779055178664232070054965554172872551967151109005785322929706685636599084381503961629532478208465836625816724873859736320870604889770420243502041379664421793894680613806175849002487343743970888968410282903144379087718448347929932482216460785850472417706145537320458284824009550973493654897159826582052657424449652748227116330349492667628937188546878447485670828817876430185476431637833277780080409732851640542969840101423874698891680196755778940595495763846291007733968396105622130250615919363155207330277179548214393495401379577805135321923757940115831115701489367989628702106824399216295805519197256913671245851969593355313925965235269112023699595464620935084807991107534092982394223627269011467615509463787537343927332887407364694183077615240244007666203685323484513200086443243075496242030604371402103273039511893297190188490345211812280277546022777093195996747490126607823901392645234920727950125750501903158213837151942080503928633895587885335566075564583752579827174217054095410443407612704449451522490509223993784854481344258716258526101492726236878608772418282331048907982844401588003472792940418277094485998956247560663596011442926580447187984924056138934593786888269385714389830062214532063980926291627170593544700149130935106644742119551939830659355050790741482096562214370691155712576463714673019220932497866764015838799085618454990130194383632966187138499345505753172495511389168935403846381009901347706025734384651751914728551262984155922908563038444765956457342962858933971650735946432919936425372443348345532709612320858660767883712164671166412890260585737026982077375924816045290120033000490620913664134541148827660290348872559874158964142657508351451998125662684086443757740091640912650424596199853296502136042676619652466496693630428516590076352295653832080882806139356354373639044561501675094987793750282591959417746589819647782157169382417758692827904992538629650436043827924947401482956055516116698453432900094472824699036225801072928225852898636967165989800525036173108175372995281004048095252161740938296227415550378133332460741251220363465643043711249347653226628342654045444056097570479741163763137837315604223492055639578673397551465148174126091903502212167058241213689356831098843980611958786687344993547609006919641114104501391930335340343904546883207927872719685002485307719590337891509879415244501264580976579633212387699904221291766284107521193879187789697917175756773341600124389913905583644965190290232893830691292124889060379632370819950450782160441641710219202918467694937659988113097671404093360373595511604680654108632312614220423126337362632886858954375642513353305926178730705398386312894460542971071014147535490608658650313082728227800792655015920587656837384360049624104171528338508863526969220678162443781624608536761680878689058904638390036945224461721014763529734242550794720280306594866109211367337297613126089182807696317466030063881207465229038038706372058344832582936210459336770572628706158492342205490944266995761564037892930928645759092506442482529182613708941755700746698054516169178782722582060955235809406072665888661715230452627171010843396989713878542044871295986372114540884407902316957790562449980158304900012835859171553473012769323832981971576072452343114400094944215507707072821382317441218352134234217790478710073486435662698993121714303182404746781973204694405793059832240632968997111189442537217049657666078090057824415676983753372688165581474554265303987705253713670685161188893394733364434106796078894053527756893030300122589700114922115715841414661990463604854474533763328557735858611240236563440095068308358746925397444427901090507979580067755417739167797324220799525200581481866079860075500616408300062165868739144420273974098504650441731215636826419367648290717584953669242665522355591549738806060803870821038627882082139693838705738532249776260090126325791980855269091108177465979622172010335625537362911956422763747285741435991796360348443889407929556312749622613925235652609311593848040624771377840330839168597643088554773187988541878225483889566931491385550288025087263314537906521708975709008764084730167404132594895496078667899559474077580886273064007782312421663942571065577197090202295468577656903611303141126094590741045078394474771631745695401175711328431125985254432230182326399350018417237596243474410003558279551104351494637501354054393576841322801682491514324746835664498658491927693619891930111961130990206390036963230774872784775098766018821496602621567476518654973608774211973001591487181401058606200552219845416970303934714117002024683402225252592765025258740000260615917493313444775407761581282140284344422105732379874093848130484584210665612001088704487600390460917567357096137061233043566731381876220350586910832936326121710445641044361191248811352394556503183043405492244704167324787778655492778304835483058239120227266393189299995485934507161689572828753349252431304698134925233401994763950986869084627000824821176214813278778634170435610954479958739990688348808468224503747144862326535837677413966284130075530909295741559026426274941402201117999338694212414823293461343930344024720705188535814620682878691296515859543727635836851630732735887432141203480655757408887173355594765402068982874167757282222524684588372102691680779812069342991825882195599751129821245218946878396880045419928738869846754793752490402227880687102583959269783129054049256158340612023702177791054630770730347288103465272754961310646930787437818248510169042482721747978996123806097196273592976029959879702759051983204069718443112499554865739948004532150956061187129999276631940902739410561181064203247508292992120640257053835688641921610976124305563501507636832143223263949151403508611528656270848442784552245190634312922025563571442908587858607695641190405327141001414447273237876154957463930573641829867226656163768714708355353020505711880352436111494618907951885311032830322324683445914495665970780745182898352539701472999041617538104438503606939089452033983096817498670353610963893355427297698720285462604777190773414481571222781221447351274367519982782548150532960541539049096339164077275218613570477202573521270719835732527426132044791803259717594661266826491295793438304212605767904693288052520842507000537460201444890070037818662750185793576448730080404004360710637181890688798544098932442064675872192987176786760019073828586158736111314698762247229993493334377264509694964736814747051325021958305925957825835846670323665555837644551682585088797555124422944401885486449171395864923839978549935589861573562651717970291697003696923249167234419774508081140727896858948260555163799988032450786658482866200272935899005185762128905225046711206193576083657982207858592153549295706373868821276176793334867632851300026549060096892731040642625313194935623137693550930161623317733097819656017135841216662181303205552709509401248782238104436784919316148371885155948558426509225422554598589496629108911175767308868905317041385055898612603786065929426004242312204609149649670654654958128548262088493681998151653943270055565046309681520155010418051863567863329537453341470478716150257808879792212303997459843077521434710834276944119199872893314143342403884776583449884170249411567150932359246142143754479334213241098828839317452642442192462680836382447675288403026146934195120887912792310321949134911528058563993556002456634688431077586378089804814128947948269998582037108489984564723556016703002924410436536337571178393787054117791832238316351760175228705020161790805295733021009202099816780355348816391019733803392089865223445554458927446233967624360264204055956220680035160491894063979804913184890932013730140310289771250252627247110588790380130998227120972333511127408368289286823031391545849735631402172710186587169727277731598042370499290900272331786443147963538116253207367131862904212677710479059031621382005065176600957230715921964956435519850963273869063809212157259018706234810873247102958169719931331465743867145295857692667433127778976531103899093373444629753845889664265122793165392812961103286175605984951324509842306259354366542760030234989359101920946374488196556792493478676269805626621747985766052997291086735529478152743967329349458881051870044712443245850924300888710158257531158633625001102146203448062336442160653628184618289496358862108831452188638163713860650006910056658150635803505739220085373617710383712151654800414965636999671099859692683831123342086981845658211759101867630992417252618707326222756192121166944143628310547260213294513013774548663254059902421959901697833310080174026237092781644362410643019714807974643520756956131324158637877672036136775241488842177059796974682410333717445699223928289866366300729071697576518131861620236033238352504422430703823239008932339515313083426741984639233714429326267595243042562559775622299121387665487777812711089394975569680278175594826617939747476241567879102535029583556390173888929572375007378181883242539470523330952280825656279707450064539943860856809363659079149591691802052292798542218615295173057469266986850299161332633322743212450372050998657207212395804766846542934478650598221448855522251790897618869882132690966619704755855318564768389212351707258641757116442509166074296236823954670625084079304453954658477525750394320331763335817852154132227343725832664685784781490307342496910154308535339886767346172672204924136024590109746251233572359775219925071553599482958188420515956293783906626535020576340278488376949008346116448956707322331400187438864293045242274328412823798614752602719245835572126245998601671611963472363741945144591235646118120893213403065530148410759843617729581039712311172461218358544523536675673051007974285700235530193924106984072015337119059231017330569533288115642419250750032561272291996749040306587679000176303363319978150821582366315724138199256086887564312416542648709506212964531684753194981455432055775832879345796118325600399290304379502864571240722287170267825079257217980340391356256549621915186424266621657355451456599030723111764118039313650243694399437903237035635777243665023146977646500309752876315558557593761583503872624575090430915162401172288619674409111498721412659156748164646430199244288606720511576866136593143629693173316860525679265314867769241661354330540395369104497116423751288490769067083275352979395478962898473660042675263993263850501545586647006957412735098971620164695910120002396028521511826789629070917925372583284281772597806647029986467280140047156496216052317736825877468373980358147807758342280233091374312682093924776196083646358077589879937339209534915653710930553976509009488461323654789195602942520493017291825236809443771366823890036457368422102085931027530745260885792793588012196682335957109734253071975076291551050791585332471946206854788418498657633080305831985662098892002257013495085493023747946523013514840594535013704007444650214452757272746805594137273380962619222140399163457140771624789765807355532242743116265580413172341571021197579681077518000150024380454225381401749882645628878383185903589456707609556098864011493561832302129418665738722427535780515647977444153956851537892703428637144421524798770586343777039350354761752315540846295554813808786920186455915569684878129605689899887631369767068708494483537066347151265682759006646011077737784249872454807407442403709938813752202411100486746725620949293754613613391688921793106008886467548473957677478506820498121404566766619670160426810607980651972576860129084642515073861440792583953693161018355943084565600673528997422781961618374577822055343015118637463261924614402060729050761956538798603270503446142698297037927627265842240997851729782173120361986583812887484459098375047573526869650767888598559881986219106411450824198296368678012036211909914630083083253569401004048975470217428180665425173957096171555936976630272155663360182562709919836306387932242895738695124542393351403705179921925333215449755921842801903955668104895585510160448278056523105082975296830541303692361519890426107799009943970878546412723454900634991614673946687930007514577480840863241830692145863378194465545802261495690530262966889758119343784689508266932402380228822157951215499747636274945442764827040986695908516812735171869155548586730232708564649662079284726211161090514188616525674027114053902690087210639432413045254775943112891314280569437065858457000418677020971598764700969373435640433326033208188971260218155303195207021002683062971726629194692152702859436198244414590939969598391148504239056899253088229355132798259488516847902154680643837248915879095625278697815729017088389989207247782773130181951080666767717540502667850270369301579054063656792265118550936488063510900534148284374940674662336225883152885777392751323140269443532069748040668387209001193891214515390721198534896128264700229427074635949051090398833881850531238529184978802888798008524026082685721006852550796317187624999737489096967128197028083470789538836061691489616836526233337073965061719801814857137989101798022723759860157858061366163444323708048888289378852171530233446784512765050898638158497503959097847259164457113221550414085707108314141228194811844244026260879841044779418797103492680327741925785336979937124200375410719460517559021129552638780835684448330461790001876166127251471373981419306621625208417275530838461124953444218453019791996182906235928674718467713131007065247565754630926805630858382582274854997415522470124112144294870594144775777813584436795513898327074258329403227643783638224779101934000302304855937613235763065751486636608621098536138471551264664768179683364530771884392131275093695956459460099665522355393532549493354537013276969148143513019120583546301360566332611713224948294687585792401421184851582898186978072359441995170519733003721271000852694358296725843688375657714784833596479772131749459967367448236515518778307744562928078572811864155668813690304498560242391046543585488783742431136953366002665884914705982984156318273283357928473834889301438256921137515252481649559000143004872502506495357498752469728878141737225320818848349275632223188351016120967508566490388300528090199079976843018946396264213261283994791894645889119330623949511159156300065709193098112823303425645862172582296735123677018243080685092516202197390061503849837082383990361021597529426244049577692972137161413135100664809034483024655351989055801325095071356867003190580670675166002148835331549109491440869539258076580726626187829738666880996611862301117209436089589007417197945265368420358887488306582172006323918258982782988474238900526222903694568025183061500355001593713701978791919330824298236384980481361594309736929205008825128141540944604080920159969789613682259221668557549407493619538421001696524936372603149134442606694342428769002939414893329312099466759738903830977031287285408705123718085096052978714728475868037988675382475401357839195456253920843075737352372748318515716240864583995545692700534825791316133927992389665598077983210148859849277137877277706096235660169445491469682911206689686201526802853920340636316079144771721026028175193664902107099235899897868726083090491692384382972520908052911890082139302941159362264371769142272068029834986422374109568784802028542702053223804931610750047288454467431076031397062670050730224052991959703407208271665118697460142941212716356651840375403062728312509115801944608797871392892366330858527297398350893781377624097244462610564110586919657301461630065672565658342179080814471223493433972808179601928512948667197005697557193291763451309678772570623763130346927017363978438927976169436546439467167101746220940964121627135249252484586628590311557338035817464320729362216319987209035227643730522166942562574021045763821238490482753027972260025161878338484075265393347668464433387651221623503129001475259092980286317095128485499415393626363296019961366904106378546997030676585743637410820696140746897491227236857944137452098838948205339834677998372950746001136828812040190820709755408416491093304436681695540797543907640409179376073373379236388714064892953860757584935194010432090884680245132051539173392755146805901301864465468823648868931591505254256270472885220103380511794699524865542098282293061438865559150613552424539003096499614235868115357644433874813202238724232737848397057648863657195457847515880517589985438043371831052800105212595105754812624339105391918910519555814165418398107412986217325300587412605294021422374379138409493102300285052093709065144454614052085274909129364960251577281965318069273216548365351202793532111680589757769820760080922380452731330753283389225595591761506681331761603590273933835746121717381458118977482630328716052926269374553300078049593129798921525412960735574129824760015679590971878844300656751834537057540252800806671521941823408837230560261795142382705893970903775654088017351123300777941472721601588545170402465367114675568312511756371705380328425976158905260291800214400153872673869194695568273511778923375642950842647555822599714458387249289183935105662408764056969144818646894840401046290748721507888427323504174122459169835451811415666139617686532902584465483764405652476681012805845111176924278022786131533641138191551248181979937856136542689066086320916223654559142762163683294256096967395468329334714910140065825778691915528396045237943775174804181352522444145456300346121285945203221414533918792978964563288218584564397945942239913861596465942545435274126283239291717759911945035830710544004123551558801042103343665941641392896179303108227793951098057622526049606375353795443773649197341141140728400341809629927257004607051354853323911329071675215882542620254720643416896484744569044972360676252494341160765487698329936091924241504753475051050245271420572445395001976099907674158127708929039506530527194404735915255357046937459163038755093801150986609322663233561800104539438467086727321593603020596239799541879731633016388410332230785653180452957697473886767177429941779394114349520083645814872783586845647747037595691832412832192827334831597020269935063908697143610506544407107564022500324546247921348763686007879858833099625803988091431642530140192626413495299420608205655479327468480883071585967126998316720814208411174777367656494406928965433472382982800863734407233869346530738352933641462058943534625957329972918359707084836345866870076724810220133806608391374989540365343817014542666434676187091746381222765214982786472699351568606876573594081330954029020884011969371548544895769836688202626217919185639787137826062087651029998950061151784842922411516016818681245332682252512354713251383963999699015788458843651409573643533138631480058525589298439925486375430389272483974297339308601810987076772791626130474372293664572175820496321490116975042954647770908514154881368751332127433056120191689971199726596496729291981988164957578696375510098278333437589748088101499501563215544037405742291541388963565553420493149054282757994251402969887099280767639453151011853255496401098267758432105396192120770639654344462599607215024579941125225879183981468579620603243255731543841477411943064298877478391691736393070821746567118084870848964126989385630895720362144254685972681488795793027435459522879649157815679501691684916757361755867983726276704268957103447658705830407906233534940692208821142538276096257736120633110391681436074425406244980854831124257705458201890331646365905689013411963229290028627255159611539237093022708033990309800786100527611044201357144887937161130131941788753972140445998765657136106450808174006681082943961011256076537321520731744080036156459495647037935086663573155579986087313915819763591231697408487066845136106641953933518014789834014069936461505960273038040923961053203053944078608384077242884033228646066484519076803180606127873407644847580023705834926803303759712639354013835714728864529025166699985578225650552604241983976314022388566312336404895551255901893461577527092177397539182747123680755618012523630182961890610778313706773769555667372482859721587715284018444258158922460767271128085945963507315112472102398263530979278946734004388285343903925887765524139993244462462970055452814190359517880971764033333224398876834267983920537799344669499238296129602217208161653483087876855125964819002545443121597016276985921490161139771663645527428488678203987763381621553113049533310054569977582875857541760727190225886249055445009989455397311562979911668628471198427499934035882006415104691234379713431594987677300955819110076648934841398182942847042277337980157016452407518688882267158027934537660358826123154232003782537700207286479658877899056102777457098555853061381923960533974886599923655139542659064290020966888382277839775950085061235413645023995127567244103816671024904658575256943159837616012365916576740382937714332663399052695546082582463391434482963685181355340001718203570735303684844106265207739322286352729624912911537072226094480170854955951609558513885659124713544715845915406632835603425526719319066218429082566094332501646977467194889411314266967799164701076419676585397071798382242034160197804241384968552092870211870647368719634732992705735522309957981529484358450890918385180188469884878400253592949524278339214599254138391923721632770911101789311886874303603736609202301964870334291250999580160412470156642989993075131238265160463227299996619516048443187407045975659753380988342059653701479961876195366543640943234427255140722731526044902592411448864961355372136194837687556350959936994145066607091359331289098812546557329321849997079216100148460176083733610395967792946291626657433141432492839544177801477429653632154938138537017719448180916744020454625867582588838407989718688903564993694413771111372516655371544952343872588741217962606929163985508274888551993746110085723724152065275317364773000386142619666209017585109677676594883167487730318193280340878669553276243136032089136516508691285000927299700184451022926936850229380284335759730262038305195910103722552851821506869927838806994927357880604036505869453187802708549844804888460967574280467326163503529811926999007616359184926986235359453011341316423444635886619630590595104494481572024015667849413495586435957966901770602811627647072791134176720719377625988095072399431886371977519552257556648559114010549651668925329131029189094356771621561009641582679514732722749501996019022486303294168726546814173166171949404444686010437985347060427823447022996196837094378357313357920061079464039829286156494414847578587201448840495127254815737491847083852624401179925395079889913753856312824025335090924914517985443339432727722467498604025848294041465207484298636657487540912688472096018241695574585410791195686261254014329477432074370450645904333520803672508114669877030165867929893574185318626199882563126531728244351907959044244634845153310420378342311624834210242517093458893015670437307920899052548818585523141618461072458647423834183716734284332830805528306950777322137550827372168325847280414154260798040448645700056762452371680075124939399936925947589350590077338316442690600500333924127281504364283873514804866523752739126637912625194816817795474938439517081601384160025345224026907576485949896258397585696801221858715906404788405715037148881469090797442210751367605386981891687946006737502382427218957550114749461356586847880219579751750439510506154386418765774196020565428682052230172700411228840601051271043171403960360055069244822749443690693868055675467759872324252411784489647332907046043693558988822742116138597934090424737113567244106251234512752148274885309358578867845098247390024691882259427930150873233622968416241492105657678693379625806635407539580406237567245648386234372141627966304104461392224753577114087854465172993158370930709365239805078673255486444925166321120950510858382367989245646075737463743270927716320487651847622991346459450466295750205872695801138978310774781534147538203332176172278081712849021641510544590160643865037559718345764492562796818681563125808860170461715623976204419640683140717321980017042231028907896769840333858151741393887223548191374511054018522851803675496259028882295637053948401997853475476521365990320670449916384128452280617567996834146939280732192410777609122999601561950646618316243421085599098908754205189139782172306405832654298317276269767939209350126337358647192425318132724749702347987533746262317377609541915923725186125924534819883834906117441561509246860957582967880283498765930927797774042729106382954915318421584789334540278276551496514771137624601091225887163653886693258875960761730294508869541558227452534010144345800865936691844160110130829859597289633721504020644508286861148229498598165604201885742482007171479404123162554456839493716781362959722721351535906022355418854060177395649609489958293052957009414081636504651565781055930593601179762372824932159031152837466699233961330890851685402838967681250767118639655838576639619588780040308387514539085728498222469048045193974212955573236247264005889094139815048953398599497053245955317877253692761372258511489334646181048627753554205460265864288561767683401065917109793778408487825248918959436732487686085483863671775996104376084665934949472269511819044880225428638813425749756216372472440525947731173036796029952648791326246362055782912909152222182996943568543641010518793511132874585000521212439270962082958985494938246650933161182101881549952563510035083789394434869633438267559767602685418110945140622464849417097063462378004012518363073918379030432254002003042198453953035699469436063526691401617331024087896655786344315734841202954440352584915120811453048728801401050327318249898139162250223953847189540994712915645819504851805993485589509966662751755895217018609935316467288220851615584318457595734463876737305540405970647906747310432440893729854984834410761294582348121520922962350672327822063489215840666351922992438314083975557605534072435672671775145969096082160291603479271212886911248798869880044751646478205566963487346654680811355593346995943760247802519553576534362436488656115195136307364476345170596546591275677076456887700409875683363991809536863880889624414753240308897741027654208357372841500668169895041705727239958021602664742264196603081786591964223441750990804781001959915309725084959082340319549521123448723606503719068550996320504094293416619342032750139279280946220772295483817890910588160908609583596656464619692098151715171153147554329271740932309165153237058885770706833940530757673102021727811459555364628414117917777237298875924808699890361145258317916975981413270782636688687208219388878021636731334409832451358215981792259471649598833904393949124233626917191931914169825032343665570604181987268959489374995781876975392091111911017439702571604723257157423735721645059341156978181636672134538454280282924889554802197347724519197356240754553918258354125243650975339829015938954963045855998174315365505334714883411320558460278940763444614831246938848295472862675256963600575842310256984047832316766350442170584567385401866382975073411478505674094026886469465767118302343346926929885970281396533692454217377579121894282085120066148858993655705946753397476731582050413210346600820841401986568658860766339026664386671352747695566270862283410585294715967180240722112014192911383987234628714286092003937285243038651124262373055270944621696559874618800807671646350074208256636312845069791475661658361960651571068015624051320170464883318779684815475123220405477544909295974595593736072866270765112369449428965382094587847119995100665818557802786965258511891162112541758129447102714677990493071852232931093037595004708131904050543891230934043145402564217307019547921912416375994120833640685878085953575089339837955836100332510955737507170118307507030779886746538557988315403467250236240504025173282015699187242371746066370803503686871903953017967104409793136897723168463281694594918205483078351802927386838915933979731838348692586797718873370223997286026864120504332163753514764878578256823903206593884540950736092637196178884492494999892402302721590928268821436522114267643571191747440973530830073607609409237470964127089803044260054276871036754132282565066301190380617497977451762600247503171919212094573116491004249289435925015580760044092624128704187567169925561165774914335067981341175303544413864428065711740234681912382813198574151755030281669165347248536513160575949664374992891543750899798659548037011846204054767848561552012077471039389862402264846029711553399580127932621178023089593738536487748534622241343145977058704440218219400749562240881359739014353249083390583132876237295744247576146939240447463013124640269473528810355697746573383577431018803606678207052953943683228011169821596527675283971090617211769891690298866560715531122288634247435793131944876943590263024753174230629792403985032453263671616552445938752380434763780416718377094391389397051139995721308358554307090480314669913319251970377058605852025660863777181854193180802129062853628832710568264632752053725876035948046426890168168800371571177076511110204956552470569805919752970271632615277255960591920181625933383478939402281058561009270868082792928623826349672155356667761576501421751285530505946687548787815506773210670973398938585565317087257355017466816132321556061425023782418598259470871332705411230198755056587591027222630454428886224148616256839340018171330508235813999635829801979523148592641402151201654703059723902480430481639909080970093072123826813068413286828032975552397058148328371072928939635940878743088237600255943460228987715634527925643895997944116793027770581287218396841661028455402193140227329833209967474308382780903355677749158516268327923851469803632234933092081392424625172885332418417814740674553086136704935094887029821222253793061681162879897781792252142979077915926145333255672530307220003808378632589426476918164111389240212673421985199488725293208255844256690252788482477433034500362019471815194958111344947007586622707975958798489346712859750403196709554574800892060201612225837385786141848896790923029647189920065573074389176063077824132243156381667834065815223157732121689128648087550166218191838965341654736978042478001799422332672739153539452316902748992745686550661643145962155008683236506128168204833351328279780435121764170046658884997068730928269887606457243715849584071421352966640458372967091145757923411668491962852036627183275558171848361653980819141315080712562391425979235324159976865999570182531354339215904985448655454274023538848402638966386824728242038553641126856721673675707152404074254763987761077243655690709971791377618584737607608856212040308020409205524688909877673758552955594612087162478111536893983018782928565282249213408032043373840149035744390026402556508607818666340327782371640382013599072332162852442127776668335312897531579469189354328074661812640381532403687177215782205471948511113234377649670840318983457909930193444794064913506414946072955510113270526468595367912042541344113190717534641452876712820879341564078858409530605451693800173501309724662123732694157749612317237813130781262217205382251618755129191877567104634853111638209628304472300662273021627961145256715217689977585783568352565373262039302179852503477593884346502527796923731779372468814535462440913368941458067808898007082091337963590333633137852935750493254508428341495769105312443207907962864374345025836057281289771536851458266153537712945824839942943071530281298672213708168339988530528086088660842037476476016138471644945933664801902528429580216242861929635231944061802013137426722340412245701930187192251788073917079410700483737005674824684404485589197963043511234386111608149784413457809744366328298256443538866316078466506005327527118643022798082059941833257260207590677738840994748588625635690811853537041978008153327330998865092121433870574597499461139918575592734085523142408644934784986091444979056602585138739520951512463974599482177721479172896027904768476290921340819291152847896611024549465437775095968197192079129764523190075417281530128826378542754235311214288100016125002743724909316362222408492598725654134170190105073356526308296840556392608009370604321095605694109501147123738432907490340529695762837021292940510204540301529240338476376667038833316454802107778475634569087978562531407469102998555096838328188326208500350843023504759532214752216476558969380876872187952834148875521037348543286134727509109541583903575243223794531215610076625176031002021349960719638103441835286585188797577644341850763423562855992018282275666974435644278571475313393260321541282988093009738835787371635340176127499142072096194885823475962712634797501070301305149651115156714286859917689916759244349869801420570053776765190973264767646928790502392729427987543719533097446595456584320980255085225582661540958589763247395988087300601686697860082160362660915959623407058075912205950242897446829610671430823411459048933550263771253509832942338214351158725369278860620244629632164452589770718473749314575519371724395661281540257442792543851877074595014162747073369373939815071360688462709912365250772968572953410156703709200919203258429264143479805848550612267304542270036195197043076726262391846437429396884802643131401925378849813575659827773170790741197698591119158071628615530625047099973539434308805044946970520392122385349136667970137097693260208031577930359581598777505642975745351104272528297161998191786840015921225937947090640073320423297252660815884238104657242747218683189443909612515234366808012442275563259724524235468429672738382702437625938317712686287741261362005684348682920989991644775326020224135069026152146761724369053338895919451444024161455919810228691283961863143275279085949293979779659311716238545641098286510181073231691102010565048899269858093910241344037505139912169348587805917676920871151223040553623807589672995380153864659389246476368462436315105072661809766723608154620347092615511756137863976104771036414027673650864165132646413524681367995997968016550857567830756725513404836784285947623761689647981543982928249771890068602868326703315518165877238562280353993526515853221468148204868801241667020896190289568973466132979089616257233350791160519495541465736194644807883495985701342212331400827986595032399201821937388578648763896653549190202776383082251132297720660384680646103185755356177826786392287336957308563172292523112218522780616236101164872083829002660974530908544783082480037401185295716929933466614924521735554200385531701086983687271926832209949823884778571361392709550365514162726443767480583912453052482639726468705513152207500439295350323940464418210963093381533179815078301487299724601860617637532738426057185337536242352901154606300984969316887325287433249240773965268751613659603946534417279319545262329275302213930776076069572236473579095268562852789913185633697564957232071505256574555186548373005378017559247031291625950373927502238264256631716992912653877078406577958692228240498459400570292099201625565855854816733507998435075134233558670725228910686811803784593399361365088230138348889263190993210060232882466423821072486237196995941156854795661559278950616973407063867180884157025622281814373279134916499663584121485204391794093365436937672564214646108971747015542179438270777704249343671318851072463449119655515293907499253234807460935598949664066974646795930425751007356435156454197008720535991227921474318168887121333277132454417257180380306708403169965082007454436315149383495112359176816652972117656438339056341108232621868204794923024465816445598414484973501153775058715814097048255708120321480091244860726368571252480691931474710069587668495277133017402883938537677046190345996909516712652349996671773221018307490328593854453815666737761727074614447531933770622076341801003995422607829126524036573156019065226114015014961682055009840976617669816402777362281485906997794141759795135488632623659566430287216669116099555111483209349823963133978866333755826924133531118247539080112731854105985549928540255830435649865646903943637673218249010112877936479906884346096495259253777345013792057536433638736950174929521131172298669416382047576275604200564785476112538796123401597494454803221245299313116261176185891407509156100636650064806378682198492050733831753068552056141677969755601463323660836302925960922823244277147498279994075679489439840823011437997479156842126318034309073818087993627607883107170533423401826949115467524427216132665949951812901818624363672208854828217983799152981573560147814234687641303477171523377037606631288365149203236904462297716682164750885238989077584210540277886887023890560096427315900485201253736191593752604576553914927960141598250451141540137796175470076127412010617571110891287615145307279840703737758070790059134494771123814033931710991025363454729654338314970925735205033804674754369933637406778636938131227463793782743760854835339337317141920412798740711432860790079444164928226023031811196626196221367273665091755647142678168143206692485907201731823464552532122763595735270608428118581267814912660969572632504210227984683192313693359585435695617855265668961178822047044113395353114461888513445584756923497287162975852205851549327219633656304793351402041674741604403992845925267565423806402437820864534096671351011023873252356229911968386000119794734559114423209320846928039847226348093652352404344736450978633791847434093729462890259250027430938610177145410199254667849311837525332648744650104398788871238100500128126539379483728092370435406303204234975405016820187750416413982841301533658951394463169788355274663527724623952415229102546503027413033076887930894044467828375458242699044511333514180627057521435701725069598061384101884885843616800605238304305516049906179457053154370711744406713784486029686036125757626875868478241392943413297429999765894817497008981255979391808989249415791309214614901482968347641882232627290421296023287946965696816636174798106661240411495664558969494803741601393453503055121688054573183269803530330712515887190373616655147269612946215189037106551662902414641497562605783804955647548614815910137596199686644243468084685375991935978238579096712787750395054910380809628934096064955730186729664655166101287868162181410738200715848323723299687049076345521323849704766739962440670435051123317152596892254458951060836473755615112590499652368994887381591001938983642292497327240231670103773565067211300160653837494597354303323455156678190272896771218089839329808101644935325129549678135261401913826969039788999057819551466662022989608990491417036033509820771792755613437784489386293828399634220723735497235778610182330073083232245060763111635572401644390137943714765913594235201148996232321197252720423232541680008607784960470344947549660360078404947455557449323924016247941100765440894303178806769989985917125616711972433678455502517290952645468297848890139512283337488945090132707864519308335726513682468184203739414892829779584887265173015904618213881221934657799017195338437053498104070779858882760755164645453318851201696340819473509310933090954969693488798304776564314571035463441682821367662045190161910217601234147861877427516126715299836286378080623798530756923173246764805429278362965975416134645451714081209926188835257823407683328005341360527592057857874032972194269625583890166937356622233712266114970957155968460926957517393379258435325674072407499131041683998536205991524116533545151688336351007330701256086969299277721185729201548204636177923799346501347247518611768376362074452254001278112089970537674612889206713077461132752206848137659692391750597245808243302359256966641428013351325706502474300914266934930805256652009239357144665236667425082965950374624475548951178760173777383553277514842444562806971117420314969590003058718255508426627357437250362516310964325580334055061100974413037723844553370911474365835808430055321823311318803985100458438856536127511104509354337164787388533589622383632144924911172682757156115762486340907015016140973707461223380039865767115641471640018114689698233820431511474483792743941311349080934179936450860539157786506301777184301736142120492893778108931706991902940435857253499755025978323801123100363741870526270621015372444193962093834373558312198196661959594261784657958808165916327284754195140490210015557005190179729789861899789171340409860813523989308540892373386513372461055661720882867452832042837507462877644029291474130200069367862437720575018699937672168785224971639539867536374824394010057071675172933364818666325617967144972543417896632173608638252909585817213105030762029937592332531276158870778376125091701481076372047217429398421469780036249810113820206295500785169518056757343436881996279518122707687487916413703501247866913288975672925399285141375125761703880610216175307142822280104939334710944617024119647257232128485856657564653017183278324011338162461068980839356548754652625462366762428945347332794005357789112249186149505667828624013812905888483791667478325577441058440621845524265971667792680135362756919968206575865268984354589160130382076102714369506107232559951600384783713409779733507678811279317429268181189847260188753784056474880724503242983477114726974836018916212298757344822509759698757929407168156117693813970277417827330505783288117593251946907285091836630279837991078370416257839371975476297230355673169165025660550901633845048883036583711259690670492808244726445515203486129456205798579122005634555825264155771572541857191935878386302197387344686080684281818781400287419606602803558932464214779350537284763406962691532233639713120656771447810953243396486792432112044381332867216676992555690959027540896692975152508736531881188925919322809482435403169235297321886781314690278978444272571719662938147750567907854445274671827497569442621456813660232594759144841029408678717749644436921063592063207716298190627788741543078849522088538696916387769112982752008001158034432850244052419678492257671223799300854391726216094071321934365174257629969237153366335374191703509889297400725021592913481578368005440713911847644752942935579921288535482153108146407249095812089605773720231653820775208943378137982700744149281557327534984453925913469988228359363499503089969314959336091461319185228295775431875416735800299419264304543910465188868253577514455835993625517047870771304024744953336320373177322788972631966966773324641590385289362204876786243332211987121464465515692902583406161821379075175196464903447872956783222843707075005113578638340403532531108313365594541523475740170252136851777637635829303936144154099215408449510425509951630061037040484958716834752859991313388979620512360920281406216295501457282300240652611235744756846366295798253273323682872819650088570340585422373039889987680453572846085514089986280524630731971457392849769031761819911159555523058594910727814865663678757436024582818570255270473842088093014745137533777739347636916697310818240871122756353203747465307854565535353203161749657216714218559965458585622036071511908759528881719830208541481423532428044767849200515723350444870564410057675682117678142280577231309565988336895719756791388125956809550330373146547690174258681246555537195873482147426071228004752199569350967518391218527418529285758211107537524238883538428604962787289671772265061203323846741499000180348415663729354319304895253948999997807001138624342938881630409583379639094494150858107387097187619933325126736684797208112936353166263046484919240935727678733977108500019928361181484578112879867968945670204677465148221466883142730520491799967540600833352431693596365242248697223962156682874612936430928984011840046464749690663025635253796302043683406811311767520387073619903578918142490964263835974258863599632699152932835747179274556002769229816492677425013379383054519384164036272929833639668133733635556768396222675405300856986574182569207488736994757399184196744773649413960327826550719624482350584386478460835003317974342340297141601382643748191920336458655906875206905859738237798014335790817597631545414886934092056757575435683105547519662310266233703536426496208354232168508769558484692158884491955257462470118527710938384521987177414201609881785602470304164367297550483105816224564085157184885773135685330664655206937117544298961996224841393223079382883460807243130025314296899717131798529413898273615687176040651768021010824203446477479885489253106636270362908198398779899986181508937927307111550397481394689567756475509201072908549329900531219749458619096212743000770691572727967067793992598271811770732914640611987475525788460853344409805303962409496680941337167149965012522319215188877687682125477230434362534657057563270589722673631776004099689423397451650886982141079658175494165294963142808647015037823520169095507645405516696790357318061066432656807986265889220423340959441751744135911594968113021866039982223231300564270172871795218744896964592118989059268416787788864156781903913282977441462787350231751211328443944109737443695170181249176364192084779924267717762083078128986344227926808540296793045408024278319261400773040129947664158255211251838574196719349520674322435941402835978010923933395963137592567130052872152587218812476599474983391496264664555074132130714308758843065041761130661915815784255921717262373726103169985180252066729761158360674977430856740182505543081169852389452095947389170980093654171640133891195971389524030138047025858663279013828629281790115646024118214480109826945406803517452116975678634148883629751826684144552542342507970133738800201564755112889164233277134629266799505131524592627372175473352401444021362510676786504951738811147608225582257147995264588504701080027459434577160348129692689701872569473396509541440654932330566136021510678625443223938009526547210269196249825633495935074229821451324836308309021286800690539007227181444657652689264567902141011940804599356168730424078804937433074062405130499734614582767723096476513080970626939181309135385760054722342114858908739160238032967966437128956256893733675146412291217751039290937839226318569919699424892147250808122577174888593893847290340004541891127238627273032108225449661896723121811370197024407287114698234377778582527177221140594460002870781177105016366602802720718501753742031206586217410886656880420269392263973271129674786626156576314850451265636507325970786332115069836576504493999068702561857160078756274908864747326511006714929875135275635224132517976520315219666904922955830663878174636777836586866861848397043652705530344699178074618041852780369474547516443088631379908225000634831105123208905881427821780770260513566105591528965132132492666726861763844522377212522239410312836367009798685087464675592878246411187106504671440822754009353018083167667254434443239292971043476842274736166081306410253131194606206335680524300409549550745117648813033591161988578608727006620095423644320166713175656091597275863093817119392611560677695567638414451747097860593221492440160025268753384723546155674844995824752418412937889335548117556531760300756228924968425549937894212910153783568339869727155525678387411743824844069752884018783158873182312168545332637119916539855876505344355624543707361214323612923467969036241773887515841895444743504807094751309870552496485980434253493085991932679414939897178116057483387090923980380317247789330172464124218500196813777234650696018777359129765964453456838117108405785586183084149781486617083383438581598123195339453940674693387756848784337620064971271376273346724479504986528203370637511105006496641942914387429993770546648249262058951822149426828873204175923451641468249860956304377159515184611965559341298811381731445185728287105817279987361881590653314687548082555530872533925809279813281306012665083381595738973732278018198410092338672853853763651865294617599383272024049129662404264473250661371748456784194816314478015470236914582395213897207924311500833942259544131454126626148345330256735618484324648408520086833929698587081360496531515054478430623867082873732433656818555193677707240268905757496216100154760222180750735529140242723260100876018866374852920845029405337659502403822826690581064983658706176785534892010908692040316502931896311796668067227223984241064312295605743557313690948107176208935658705943809108056405277592550011219154236706540566870919879276099402594932423591149214328901945423852990593379874514093457296101477757390546855761396984343736570598894701705837831816552336220366033824300975251562580455367757084300246520977902426587808798213196120895856885139420529555995518081864649655408792428378237674403701787635109577105871258297429191167821483676313110002955996836067643434271757441167921379014884814635514546487503415539869005635130629278866558067479493188630467689483054951180672529426576618339791922303477679217357290761727097286915461815494464529493099598817185304996944413568338021112384170402161478189590820932784979058690597990268684727342973868337332173362675380524123818677448834203268554901083730265276031734448334022108243950073200003255977439458112901673683107190815174966800175024660647233420224511896842198261271780403266634124287862937809145476543749866322359735032760361924481166629031120450157355862796713945481114892926774036679466958565657404491268671507658671841957749450404487159245506708592599931576820082482010403520286398532501026719413525978685662867472202312280590840883304085635170809852561866957392715544158115068465978891066157626212138784111615633101931162422581661889655936298027720016209177435778467203924132757350827373774602786325774941293984045109518934337312105560338777773865394150239592146514133874080736131748714607705328411674085125121096077522828362732415707125150623760538331627704191474608034019793158413271217675513335152185243935047691846323956775134935280843073289954493659883437441289978534336419984674718526986536918228331796564915217406108198631696551081023856770617090721044479491381438099941068463343998919838606175990208810097549168422293375367877330562500665939099251892678896707519854330684517343761105914031632738519683155422780222892753947627724669223487421752622412312361918687012186906276580452679583736485476114742838045818116029182007948673608532419079841020051506275301532007538292116275276941549217000827033982403081816638714600167934163308341570324866037165358924111838593607603399779737777994907516644523115654781721449255682891726730512574871863823913020011177008093109573353457710459028334541511326705733981459659053057101751617089119061525478317714989448010277649037055587703720159142550714995358842816409388575399000662550057280864839871872784576909289493061496729876994593876561113423996872250928951872119365338269615118108084242831785467755823570392081694372562320693285884069268019751742424843433189651314497613099218974846331734252971717649308686300145567611735384115984929750309842035810892999707783931139705829842240037563290426331385358346328279640848416437914477156817755952873989838179748855875532363158108200407841161368760280190541152453039504726473917502474136160525846475402360895965221078564290709037041840323044360681911264395323408010469284767430560099073018837139463037527378015421957792857835578024910595343725095612798744831946512787611533505675529489421634669889092147816882600526244926970113238652145813285472453057181653978809648051636424841926270715919646519032290297538786373270058644924184155286644518404541240508511269368202650395842197488430180108568082411836716581925726661313260733942025656075716669912365883579831423656830030362043235331549151037525259025429486220439412528283843530797154727768665669688252798544120201374727026568098187379534209206352779628379525768345562082602193325673687484148130547821466512884247836308494479646215045788262962818398868245644725881810081096578820162674795884203395560928424464421591195814112300184308823439874522217311870925876865593084834214128253187120731571925249846071125991770220299422830364428293286692027172995715145754708300952625184581064041448395757743776474521138378384042123682160926220515746065336307827089174856122702202333590902351265675903130717543766934278936570198246913080497772942790663126117505838151172042908184917963778469529688946695727535782271469679211634923295825315319043938406821213829486364678138951228178542256263773983086408018781684104404825696667673487409159689673984552359627177181064897997250086164856020850012324207923709682611267727875449897724724258828372221761170470193076823124773060413875978274505411479969695060353536425573613924191065693473153393332904304059490959539180139999409159111665977803930049885606626741519750096405611367933280264088238858282831611580304224967079318302777658266932328019045948581753465536206426602904181566567122855253682597446328859639430144967440529142125204983463900771907721627249229629062569596885743598678603381338461586736685058619694449503579518533481541726615824110811812601639326433045537436873653465651041751627733248173617435623258257567381527295456660881847860810972077628530361262759942059587822979619664910917972379212430726794646104200766551635074402422827646254263631364465414805485708652924812898161443773209309196255135540274018941259281552207509979599757403384366457331709079152243308145186915006506941415942511967571630931879670226615349152356268522116371863175370680511150217981561804204008897574633791759913303349121641218121143943827722152025102320537313068052160662571637383186568217045151768317466064417187272076654136639228193063934680434264182125388989294700444083870734903035376908906581938456516629584006558185879042674262485452207803294902875034702181564314992243356895918363897221711491011105031372918079516661311761405517595824904714177077791117474243551469346510569383641006162699660636178718212493783724887926889836906966608714984980243158481339258948429212620596135703056547190583261995481772899130231928037493205851060935985891457029257585967489946681899940563599893591661837140445738177691961976854520371722901800509240922182877944325886120988917542800037309960525901058958174859129774788173786105211738676544785386741665774423318477080050276985220081923898880034445532146014571225972883977952803505083911146420670905926761676532966927434679948314655929274499350360662401561226411556727946495408244564576042482433595603965503699394860272176686310536133678906002925238877322425518009720433812040111593768808990793111661124451955250728085359464178758369381672462260052362217212999855331172435554775451326240647966099435577798374613712011099800791733577436261571498930047795388929978222687853017979342983044065068695477541884752703863879377253327033708989110477424543805948164407632592216930252293908247881036216597381155576867507493801526890983866585934655842559303612949362396212680814057873842785427668563314376971291642500433163379325759530602200919281543017821085916377611142655179506434252237530737764528181487579852787631849836363304254142494924460938471102724528587657785874695749901423943222336581857158387808329995576652744800976497755380587026386289187077803267029183691885944719008207556647909402260097542068843389646295029281747401177571562741316600005389531748099490682264135971412504224389144618868468704358858388832094749425074780380411882265476412077694869777256437464233230530987313667381476587212849188306713054162246505975148982330815735705311878257512681852411910783611595073343032485421130761073002126873899548000238940858704082527820257611517191047189069691791291728673211306123478991099757645411731574520541102828136713004346222915159601463722958089877030230760339853170479726616661191242633301948170043902025696845699723739560779220368619780073423353374350249066887506773337413866764485379360239086766866324549870109979227816738628103272559439955346743338123648684516951322689906016394446108759733155213900643080363233401968978875867658884250047579651641083596464009112862453498524671978134002519220954890023352186125435005189310737816560853510440604068150352220048751711393692951647860502813136839439727773899274045433596050080891838056952656182664181135971279566559618051556292327251517573027480004916769242532951773552059367633227233678027669940429527673568299591452163913460543367894913325200762212364664684457815089232275656879546813937211125990197154671584191824233340558018516411624129795189035942568186360206701229605709862935810624806166821369777385790131710996517287821106136256262300927995497338546222543307207901387080526395032758920174723421531082880458017501795775264810351774179711410650393427495855172550198350484453020437822611032307508827471846106478495111441847253872841512343894307339467874767421437373697174893973162473152456858029839500701782688228540506770958109734666875656117003994002146557284726177276844829684886436895125607359158191471301569654373488657644924735898561852021880946100080539669599053233971823694282155974174453091866552399677598875018598208047425738510019213667500972627356736654535507190643525469015146508798663976330860028804145930612226019132437070622219910634628189487718553973844197649690384997282007280623267282003475716240422673227116744745641028439294936430618430067313470425947070661199578268448662666219024977770800715949903037875064862712395917032874596185055130175496231713464577332133413181680729352278620565657072459265323814840089934702784120750144826770219808102584528918007197423176432349623822016747765840442788343033032290823526734069400476363768570809429672880625462916940100106619035561503281691778051401439358536178607493586380589860868798674100941116116798151721504602380784935286974027825037902944635199953356765335324135804882313602704667362724215640245165905383809196029010754306805439469306975359394885859057397805573924840887606070492095712690122039043036998104195796199957370360865153260359534579012972738687597243612041908844225821742425673708815686191626326329153654469749964216399468609023569719820459078092174042195331314190219209940795957102375903794121432270971954981123083643449512809241540958809355328615192201023695669674016164390706685051352601504967760048300222570335850421286605722021014280718981864083685297100931212821672074402348441917851378865468314756643472457379360384276886013638299352798398601737518337948645892061408928299885364500305372246105792508530234277867111871419566132127767423043665956263953896845188153450835295603877298015672097707016046875005872260602979749086114422888395609884296020446422532321265982788459351660788923606060459439962694472346363954484636694538415578609265352720436252696082218749532741950268907755835199048045048374867141508062579312009645975082728936521124038591163116192620154561432401274759906704453921516522332710080366778388679151141242060977511594679394722403665250289473399869337988270846151700309787361040928177075710047764026811087908960528332187345075822740336875092061668464376208366183421891124546316463649471335290379593164434998047474943514155361659472328668230932622591045658609250704478721114496346765716603888020255390102795533240955914279302986531551433246283729251822444157461850009735395276075979149062274232395388231373017186580156270589404476501945731428056453211756709493511852483531539031821239859174307659416511184794767101097369733531469957151996158242203895663507568006497454646103246110651464609408121266217195980193393256752304541983405989478017450377740241920318830488733599514546191714517448387733053253614469265334247875623583686523987361835172925190560732341493255319499727857227702372692856873636853635012378065910178335576680674570597216950625642413019230490416608969325282366201968541057135319410059744161580990858846551668496056277536500961725913659674236377251448677380994867475706426551402608579607261483841096967283549904442775745703007562957482724824214617730976393187713651591408554463189786597141303227146371985476511717338643696387240642355860255916931242993273816073461558883136025333664238304149356269108164156700726477227051962951604387933873671272624483389327509898061746084005717182844493505079915704835163142066124489738338870762995898478805615538991677670320815938367758340039474853718605884081580213475563312552272105345065129303215441195357125196613383554274218356408952798019001618579488353453294815633111981512486888111271000758826342591356120880176163705572655382020518455782717498658008085122887223064433142100652941289970738052011858553711967847608887226308692606927323524846982885726168622782797121046844343345449495530497054663589311171770785705028350379237451303113546683814390572453584957858597848895011134227677858840266467117503237931574379989037313221709217868229887132608415367294416328201972405677286946864462029472213304355610390909527802219509136565214844841190030164567400579128367274374859632301968625597375410215578181515311251683307529091619064195080528491279622239005290822249080735377237997194634853916529126125588314286409396282941261861488032682749047563857921376772287817542831787834161868852103400003620805434316336905856441549058316662533126574655149370574995919879107179150926049648384631402023421412105041666774699960730106874228510094065809628258843111671832134090895894601670910403673696308485831995998899051231942316540508244559283632202635068597454076914506052602967372337749514739777438964597977420875395353204032351780754723230514394276833678314586083851712110607384590287277770760242259094842775562888241189773829605398125825834751696457167019482115351379004139988793579495766731897982334021943289101613206434527122662038066559497723370757738956217380876160576437158837971594887224074178241531959708770047311238677160895009767627748272378462287973947462105426473914326035238157382131591480224339458934668034117095608815577806604675724014953610501388843774575208911690452800812403874808086196709049030999164061425916146916105232638430253420209039020495741127265628825254547302635694176413257052901952141009081443065114565365548791049239397709941621367387567054611532470137270960775661808551875179380450702797792543746904265908696514883111550790706149656118770952686964005676879037151358866996402238983907231798360276356241178556776486307904231968262224230676431014013885924288310654208581537793052391774039336860529853766038061237481028241884592763046617830778415388442531665854986066888612060098112684517612227699791158906690029756183038182277280565781819054909384693028322152048087767032925370130175183249245236814662392754016628824518269906499650162033433065865881172022648796938387715304222343268578123401073300126136399156198772646424738476804510742614965939774681604854796608080785740383899406931123557935097576074826379559780755646306414242286838556340190127822018857711591252675753218724787203424164680452776938508974667751820317728628660681766188747151734354566953456387556671313047162704920084892296214630444839326329386188414869107653326768956366512370768764883509560969101604248410875512572389537075162842299456948475214070922394467430405778719935538168028634808557211423000287982223943693003014599648048589050915265212249605765639669506937277630560319170365162634313859073420838198072648321579941710889989483483262679445051513276180284894419389873311842735052158494362891555175552627735486915652756990557611395844495347509211179960649558543775286783850647484942496951979656701649110001418230122710351212303519915431073280290089801019546126104425143354365221251129559696808638903106010095319932263210201453244028760153490848274342184194099333538313474406940848270348618979362887591074224084841573703711108080005969561957733312969119220591868120889982727218349557980936410517371919699155201692397300157933161014243243678293969107857340017263687516177978431041882996929710160197876028306461307505263479739781140842955592496818872970045938345815389006489986724883221361130365816334799219193698565376350280702996307720682245531514983536814367605722137649441311664020646405663011946927601293263191871450878976575196262617989539493263007033127610771448791123495725390925684525011771308662381813271922986821433100600170330397752957480003339371024117540296783802677428812461603702699398755240464852887849437745416792542071408223366798710267646795416896838534714559011685935956134405234179555088707904137130483977839619559482692646628715595260891361662408372547677895551252327633997634722470070342310552266676477563546304779449237750401174990332235065397180748772077551655451830294300199086039923904760626519951006493597821656199368566611591123574388600901387892347118587339413677872327094115861121483173879268626944140104685381799038096742369553207060123278644588696551912204847220165478950046202837062544558760031250438780549245651934532537076698875056298163199106708458807905684324083669743281822471072386429748788824283919028141895922610863629342143420400424559080840640366318869802990787718061170853019065998260636342431789578322617722328999612796320941441599379674765794108857830189793601308064170072528084669133484166295107039249689044923724634412931698796513431798828870601447985476518947535209512157026522375039262115003441563428052134023453164031746343332015351946179771031596196409215936242343572227603630123831558878377476766290916934075660854341557854437354727209023828013926181850700628329084727762972669510609266769588907169327421405016971011488520069990160800103408061980212267522170446498642480861965894562280987146059807251427501183237312839733076854772506617563834455306858035516375242548817675710142254143533043301391585305671424283505083548349169188164721726903121026642306124379713465044076520105572164561591770709712122310624224837546162515755887097533497375247058828115206572906588914644587533048988367836450276912342352966411789408823320873992918734958095789261088347167825718387546425108184399699183872881757857082521975997838367457380465064248589888465326490537934406614670137285631554563927386762402491583080590155324469665792765069909530527988786226954277402137704858523894362903699588041490730280644938312492601081010926009514423396634218975387091540010590087077090512807889258240196913980195318029134930791928967768724909239929681748041200226555772931782935873132078441822105149324703796040290262485807252212440170090230428289408902564176267161785070463355227809690607082020612055882722853838995477687780655267470692076779460076082293952002921648970924132075247915169575277528278968906612392451301588142546829023144314117401080766196254588268819072273177209873284416344990485355120561934238092351190345353606726279034595433019236526146427630258031168308924169880917074608908921474528640693665806851921550129585585292532198438798195758886018126055251077145576404857649919104081999331277980610411562790445482224622771679915846224490991677169111277474374161159860774773538393933553912713099738810769803530052593123242510175176165728942455570307779901487742009870511856536723661585618916092260978508031216304127754880962398600494297618923185251224881122247178903082694926417882206800058464185639974350650265036310110348000309981871166017896177326941744666619501189458743234186251205547209231956908928169590599994545062902514707918208180464256824049543908477252355776249303940617280347128422886864017613202045890120814253484971544745734544838792178337318225286428359455064577900670455902802736482746752818130047316518101490751287256352878320144812790457235042517577123874470008558044403261213139707145759960432470295524807575578788051380152458503407807246710165125851703358523922794394589310845064141449636460734552034700843005587221565413408586913292313440911030941406905692773689354294916119277792086735146588875760024220146248754480751096120668063819657645398079601949276769647437836425727272657377133606484259858163559386332692853416762622657813049808309038461579125867453066063634147975829617767181991437721379150683211938744518479514235421838451433719138256611143042474492056907829265912974494133699406829993960284900175973345938720903480842074358724883521080659888865051562010023150057691931517770287477238547914019274294343203148281993502225566616823610423139444099358729695282589715033298900827199658947490815024845556851398475387491227698557274991019518964979701428887423822951081417834242432591896618568423371246266020474240930715620473106162779696406773596645336257988702157377905797667879673180605469394905268242552297559983332964533646414426010363945271514575004952855323207598542416395719533988108301491942980287936583509151825847695208235005887502080690899633729697160247756763611228825656556629947997249723739512847508584957374179914527403313922910840158320951574245000580654152932242375831261833905463207430296878679263558565963403823682708634368439578621433503339354388666506308518059211392748241936143442884588407864807428736597945578350000546790540530631028973871735881530677134252529251028067857509505542318718352650935421910870897892201401955110823599266620816550615998059714469978591918384110848376472369813018705017255176012974517046731789107620765383972421847900809522651959054928879102173991164190529782056658529967141815861585464292036967090235009444103974905861594046641074287288808345699470656676707255876374736618818648945375308389140918155155345019802361857022695842959376277080220944918434137925839474420215370588232300727433013347054012083130515154625632668040171844338799670859198637851909260812966578183723668699807184954013682014222800252615511518518371629960585177148429624661104768857517658962296380736690360953244238845742920736785974215501972882940562789607028750167008427139338181663796928996621391612455371631356891630925428165216944830930873207595999768966985484871933572231861177125959598096065405299523702415309152330326838233804579185909445013822163456707121421495646830896682988647725741676483936665617636935905603725403734648641258497279264380518498131342598023357008668309936839827710948620534320815861350672965032660894403722143653615561659944049444189231018687704003305296581280513388376729411679695868156126174834736366099602141783677745392643686708913099128628020370879585649665535409199466048971955355911796819122481715146295711660579314927783541168403792795292766526451190944290623288191572506654689088893983726104514394359477856143563032225226013495371136485711480473779499914780140922168086749523716953536136907715873036936052663203617973954144410091646964262692690654110497939708856121155590447754975039589803918630217856165332585112656564714220616160095292065404956222384577036855480728870253032307596281804829795007515734630801081689843189249184385370572140879539048820509221180722749711758512270397198516609325072452625123793585651427067974338258692774982807613002675632960815465742004959562638370196469273743625469976122554258917307335214932945476878047617877633938282943991265455831161050249864987844364264646342022405002692887894347576286403144061339928041004370389650098914374847570319033367031451919477145119944994629660884568963288484937844955621413091470363470144630913257453060001286967485138192234368195551934241650185168023351531583159410256314443926885720249636571778224791261830772436013744745415657300184241182582295556927741349539669050633002336603001569507708255151294910304004272213511915900210810415458411736367460409978940319378808401862080392105031182506192869080075639004701596395020678949364973247575025501248814698764637161960261514343663305924393598073487888198165700627465417874178617032743950159802694682962640232075580384110180164861328737209837724553816649583091340539828605425103387155668250287411842044997433866425176875958569012993016475267990978456970192111819469154597394211516661229352685248961115709954889865391776927816930673662210090472482319173345385531962550861072347383349595526926370803294033855528845665745293627178522787677971077325525948923909589942468239309813516525338178889704700349490304709726824678501094362570241110211826148372806428237950965818124923084340730461027396289747119975457540985059398304722607976608910789673670131974583840574595795028719210509902828444051330115428106968977766611067915878225398575882599401788352669400092353811071286529808642515305688110807109043678451351791948281328153186358588016607773859780811843198993230383158480491026119002743119042793502079304375201772322083705392917982276330425286731528370695449215013104302197747081613856879516363911571053201255645656333109157629510022456538985982548747598686570517739702136451568934470854819175622178381178801743453747406340809468203361423324934123002728634211277451157162194268340736173679701875720019443107655157306539665819144019125309127752047015516030194792990461975186291477949523819659517155051931728959641973881571670026386823941693931193070080517275073912914400495039084335240267465478410521867818250005694467808691103666541762796455950151569663435190346039422917017901179522347758590774802942210481195247779439962716188687717312514825473361815974883148920011150840573614628066134634143347793208040636955222832974028309439863849400234454088843588302750174063489160996185716170999508540677541303407266814682958251932419498913147873974253215114803577354674000819401565201848170500304841993890774015629032716456244494765168972940902685535978428763549951783187076619538050548556382658961371402545174667686669983804609996352473825088969631774816426776375781959692786105900983071049149620705516582623773434628558297853962872510142261760776483522743716671575083385969737908453717598267886104255691472177824498181069018124211024978350022059354346871255364039582142379923911033832291947559686801288062687250365414291732020901410644104314755435249811942749242729931684220011705846534552062026455426526599634305293789246770248375439136992199807356480967753115468050224674739185551821310272690884691240959201198164339850576483263725475345796323445961991710597012618271199050649004885702593042086959897599338499145885927003599136384137798825497763428962602750910121105614681735355742621731194867772117077354849777759756141977634568348303816473772571955828082259707810091028378512456224942468308277257780573204440151761247644954455789146686750733894070345668800402626203137036862603821958704579874400444720338666356859931778243440285705380338522529106955490165165833944345519832516403706733660994919079721258650452022304025119296698603091939601209685943300041993944955032110099291959009169645679173118350461722623137941456521848320274432803071336487876436072980500930400652541062564147195725076041285603459587777171695557900428884207456719343922144517996020013059926021534264979032608957909344881994251062217526021409125400441234943768149125805459010687356546032037543701966397710477449207484467855525327302689457280423692670147025090488342917699453536791649149980751211990237041261571795341791687132908877547122706449285467584646494673150400088765588622664162983675797802896477665132494816735917733224022959939630755448598159042445300796040841058270500001468763390175190095541644689512156640172549573996540851029904473635640710052770101041228225398059130444604125689039543236018008649216062173704818531204584438518147150643382197466662742563121595999862791138192216899154786089575602428249798098887992798333962862208358070804774414493555567591902718307664400833204787438447249362971663204928146550779720089553268037426641086772275094944101104800502150470079720346450671442846796868476751237683263375166725371472999180966751468699761258162086110422505634782131525161339820882317940353866188503656468890049920250809955348345380437036694982908032042444654362953422233678459238147158601351483203863737213252552086291527517826930347398479094537397022523417421959338883538620653209605713231444901027987274054028236606021377895858522133549614041315742625381441922752932572363946610603648813169845038318331196748867366208658514268388115156925773344749757845880482761795035734610700804747520352613260082097205618066317160311027817316117551319080841374733882360014567567423974187069081643386313160367670345975960145509614159469114508872469397465711789315921374455117621329172488685932764120834900808276752934530614319503240423537551835913138549353680274694185779279008219472369202581809176052369001931816783971122401024346619985681338155149040292380054870273493535287878016854767021813702604301039846309224720531183171543946128077320139151701609115139879518987479848846234561311988229207470707777988698713664145451518589808096786328318780614460405200890302575547810094111506803838669995436923839176880900503529180402870253299426676055453528470931491545991649812167800098212234943367146530225549145698233201970320752080388217162044769494327589286477726814577045503316837079127956129790035070849700487072172214046671327982495425152902396554040189546534980915996655182761366595829678799076122201232129733233751129388268069665410751702556563066502798941928234185741953781294688702459561435819383039602458727516804331023589738734710541342071000125319566251769023791371481216447016584252679467275903797716639089250847742169937772322997804537345393832101835789509283716420924919221049006388000713405681049361464261875809087515082217479368675285271476897150643454144094970423915784278194014554807632051420762553733620089347522438533113575952866826087254660553832492051393354429275783930200516883761097692093732067165161854822659440713515977636430022986497211795007903478953117696547235828979924386196519186551909374880889179252355731243342442289726088295968058153630870131589278999809880243726017279238131085478217610493829086306497334409767457914990317338795990461318696015234847256842583296587612176462399010262571140653976903729874458169923329452051116173864026546973775331926568007135352582735499428368447973795179133207527190405149228552283855561495574116895347341142790643718977973338984026380599504534205194869710976088495369899484105807283527287374148713262588161743295137136034375720421893219935108223937734282366134665766546361644308803772355075184222014205719888225420386106673318142466557450708931153551522768083225190540452269602595853335289634446196574099567014001622557049935936425273418072868546800546765596300442113787221841693095368567943972789164710795670311119508280137691624447221355644524949513442263239924314528117100899777319631893166179436089851148407392240946794823244253842768810964852188458869897653359761512296596936620325662637022652235769439570129798095828532792152038876259105843730640943259451375081905957019773009747202159048401239900444032246970901513400965423063293338716064854018273561977509650530169307939924811070206037320992988087866303104229232060766824964131136197208530155177525503903631854283759641248203565798119715355481163567561848692460122916508899388704360358876618731769529939478386142505523217030699676335566004991297157238906430352453883327267937265985896135011350943785542622584619458780823326722402143913647604754387146108188678937921147212034920766238281581007659554819943714473346311586120110097729461753714623073871748372796046859528509178092539015640707405602071916305494877661774164403289149028041237419700792970950847112491198765705840880985075518991686437864089160399209453002754728839229662285396920084531939802525918485012643647319541015452718646013583299791084875170847662997946292389506494075371322511038085267562834061682213113766913304165800965829692880637779203562696110450869412992401913967050494100575371580793278156352971707899767570324813202846558499659389723227979793745083618266749417337796749519912143708654927592035695180726806865498752575125197550409133248238146199119643569886846566548637975679961045618287237385316395622877327565242137947040033097525825185905794181905164928348419366781280125280061780049994172315028925833733704532944510547326470540649407936264111452566482664947125211170940598209389705727596859763088667489839497912244657351125522625770189099470869020075113660935904600566168757260877739247153992373504515687419668391416807787611613401618608149251432862368045261293187168072666065447577570732157568077987571912356807034814470640962289283295806244321035014162245619457704454332393226553581755130057844302112041599338745095857607271950926310499191603296789211627664656630314231005581346905406720429956012616614512484684056204743110248536580476081937521420299836783282548909544597727714654192160327211023756025607690040180475947306315035608387822196003467294028721775252887968037733469872134285817993876430263717765387733092413813595665727772883167722321350558315615291784578463394772429429885874310130786983130594299376221747473969498904745654764620151149061231170891307372706601406461346388028230412672405628051238649119814889070706932098601693972324007023345619032989199916063229024099927122670257321170933046097630766487320492726120655429164714892446754560898873375017221990673855851583721437101267770920887628995807268420576464189395613256550823654375771370290793657664721249334504938679252626892656240673801618971990708277292558979134276238833451716218663276009259564405216742801423892035614979944106198317826280051886970601308020942200498228677845199321422198728814755503073748637241268686977335008492241079242122623107943876546586731364911935058188277481777099956165885941364776057604276167755052083847527367229833226942690359404811111162099850726631852527547651536056178439635751665931952494891142635652442033979074319534383220233400112918459327526430993524181967829651679845539723201035170561504865643973367919941375383550318458659901113374197870730138784193490518473176173454005125467903832361280055300613336630893618026118866710649673855725020494271357285671718242709394934660543777107172667855817573763557239694836664746496985850651726255649885409753348047979093551756683592991343447071825304128433936467128535946404936222989737597927835878087268743017567931364372362805037209693270552061810585542537121901452320484751081061901470366042541902098187599945317541840886583585272320613132991309178820185486465361724224669402265466742503407865515421742535127581775422290211317566687353490596364869551308058614971765257640067874925771879076607233400664712466178896860592373034733930385143647716451665848422178742367341835964704547993562588449955828620995481073387487088715241658186622425102915857658455446612627366701357508533985536084552619963270347884888543143533627241871422516317280946239701447352570396451375612839668817270143431533821274228416456675026106358847613290785196970285623237474475381807152807168211506933673032781100996815828736886055470259791775277791913043686097622129426025996794834206232167532390673087366733354230169431566061891614004310296456242117281986386704877969668731932283833633359815875266305668899741900247885071241141792631072166993992579012511827390470822083295591531654075675344579059143008405213026202058177620413004533746958697717923338514523288351152278653513595767301385742317077629456868618873447124706142124368115150630634198065025730553218788721283674408113002475982582491288692155235974930371366029586689391193888900917332802283814444408250807412292790096397527710485188382394336486450496735594467553276506669027976821791990557987598316835308221982232619085760216052642474568223056022268990174587214327219366205304201721784721840853746450091728937376803988987131368583440401331644805191128977758181079325503767585096273344202370270548858104628129673982099030112729120406934469129393587021708686241048497945915897094098668604202838648301703344041438098782008338579749249049688783659469321786243574340402103649119270460716544817810451261325600671169700680427658946925434780971554267730351711511428102078771409004915602738060049692089776830162280736727262405981745235345699000088225843173020999100496399476255514536795984154208687803874642223834181563785014232025962646041110702494647168585506178808187479172529474713583809485456270196732979334624264642209861546418213163265596848690708331009968062313059341736469981976113565663701218330689091127658752131606623892646750493682631711907752591734848119646388660368508387327635582913470669434083384621942603114069184957005578311076185718256434803185567241250300081740113548989890423629400370773970812947595689358181523697101589848234303428702373072307256912067429239618347218124348363356571658690318148746985147209738755243350450924994393574353524660684710133679904097736251796649427267109566173321878496933559252656174087022869903939126164240488011689309180053880860132568111414248399978583112073559311458297993619170097229440256984649546753184261983999115049999687894579529434111864445731141283029702069236280547883773793377464585325307219395331950099050826599655014165833348775379312343314597118457624218005001943449518619530742394243802898469912010717095923441456969445402193692873647263008961000073707384456924563162626469678209291296369946786934903436794155410815368041022780425418559196397787677613085451740241568935757916686995207778938047431586051025616219220196709745577366718966964612016544532091138112250843141094278064300527948723989781202666311080201987045838671713007580951753679277749602197586210324933485439248900072167755300106116676327383546115926011592715330986270167860017754149621330725878596194891367069747779425721938787481842616817810891349052371374571064062449841410027818564683474785661768036669394477456575650159605208862141200809512907183550489501406359279817170676688407834845108142151849630864382131106243339715706861534497807917296439477451821260118250842163972151758481963732315593793249598268657780960271802593971195800678365003514130107798769118840988794098034048530744615517380363197982571805225397815631230143790920351197454241377282558910820342814553131592302114841930563474421596822747425918584101950239122116519441428886874940730157853280435498864613043081099044121533226052908089127276479693171793592520793701814909750149225191957153957040709662305554773594840311395666981241430327889457640848006478321946628666179141766744333254163444665597397711056973084793784863858380038467290920000569628686418882730732584042166300704391131462748109859316085188321311033287571109215189254172069499077965167063849563205980733474734311588791450146429170558789254649539608716509042688700348493352337610198038413871038748165721415590975826890057863454541752186415141174847901428452941541101421767891261188887950508551677981628191438288743296644458041125965572764891898005699087809359840545804543725674661878080600352994268375306759078673720702528367886087643532912799094602930054794793341394013873096884360229780952169909571854129310254198090391824113045174496076053438541307860219595750554919450410873892373566717397969303964752117904623767117970977586003183571310004415120521459026797168281069576336963346819291757131369973521443313138638115484231612718740266377060679125548692168649295540250547757626839050411201721982728792012959650503303233590179939986729795368161792353464303268720348057280160492561626241704278500533774673912708814977030839169378074390988393841659144542991365845724620880989197826870850423881453929162798280009795348288854936351082742422441832828494055092055672430436772590901006592282224534479258317171737914933390974233529893859391291831870596344389096591389163120216525184006396321212915228415257149270416159920731775135093394875117267521699934024179237355267809247785400455582961679431449569354208514746363443292735389559907384740623676567042995849359680346255005874431369347396606088953418067916417405278502536486566173171467569028974561874775458131248717041879163802995116466742581823467865703718878461821875852685188671808404348202484047231452175920951614332295507606711836175105700226031105747041502902373130993088011753773127886170504879982760972534651640049695777504255103902973355159518755142440320808136794840565664874119890758686183833514677451440725030440171074796307473648277174108962849586977096546439771679231911155647476882675895040487898343301843469129346150946289635532414447013167558304640223496439490148716937933424732535335304981859815178287121614772757052793410859500348779399842824011995786357897925972830610019483991771091716524634573800964312169121789103514960425250228995029307489979011969717238219278720387360376904573620067397742031807071633661903313278623752856464162023697844635719016835785319314828404661196923305535841998079151336779302199995711560709500709322857330205439125571647937191595032043542230656442551694814616913289330330580733060818823471435254005353525827883552039022070554692711857901835263529348273304918393918309574297834987845482170216938143061631537323596984133772357448778448175390146645201794666331421021066273106854519047012605989778671361323823084695698056662111423352232138731484074227972886128019662739882919815460106847951455073773199954154514936355148954678425410041563642600384676098349184797105325522963352084791807572697859957027596846115650193977834402791845707682184890424102354397950767006037264442524919705222386280116143553840129309146600987278657705324455423670419333578260594986945756719456839538303894182565038220648168467595929935703853191623236438358919694592457577364177158118750684695145892961344508972404769593970074212672344724737975287606767111360066926524882065286643828132302730564732616464553526630158264960730523835106020073626132936653474276066303819449588885440659589399220874862487418101479819117253426699538563902052397018322891144021935377415102213782853466556882206139886993711484207456751244006866257399210251863782446046591311292449414998825272810725571571424327296012639213425309235191800500135430966001377836311412715473585175804370144951831607033794529270910415915900336098218049247950868089676959489646068988045616178262364351746132607573914311057948570908982197796356879137856943427030398268140982057874070933406318273302786664244363128283469806241197990412526779122187592779421991804093985799317591755783130953591658124331257098708345114252409697621599880169963825450710633485757536192837651011211540001775665903442772732527389803050423927794850276758757216407548578418753626585586483585998613737351276021154012491572487509524079916370294272314588119861535377798102309863439794976049200949848554205658928282988314357322306363686149620047532837476428247165720475759677186066052278102972860305988009981405592690415900990590190560191563258749915130851318903656798471534161982474988556506147353099236193861190027395145770789061722190263806302866946681556292992372585604432861313508872549093520107825401471516907957580024054909141953669871723661359693384608296835905353784736257489866618897890752099474253043348033353970166615214462189149329892961353164896934610457718805407676203315922137602388695725488545241515683159317577806811704940576023990695051441856379714064655094794269046300004942940811148631079002231848260637566433411677899825400148737395102729642500637935334633493999978722542566214966021087460381313551345140639561828313044273305204757531149731994191804068742060803603292367951073977971270431366055510168590329873004210021019298741729851783135591899669150452426215601670280120318266802516566912852857001532876874523675057501022731288018948148978732026042683516942196849147900739075504114076008156296494018688694144329948031665700655557515229419901825161071416503192098826950582962194584223214793224774727968015210096552524947880232591367077129114776122250194546856799371482356905778087962779061279942545496518105366961140277389435545504053851166673903268360921442942168536945554734417683600968051876542164164134631030645362266137246294928100331893594679652934046090412765415094008163122628200150169073275566846299633930404215379115825857145617720627550401412693902773261078157082604381104145598536121464408646921279208477105213145402182615488332807512119703967017543172891986638270007497162335107285984112567358818147271853521072230629084446287989058253719301755849798667875191319683433609235446387158182704273518752985819525627941946184689406044674685076257200028190020357455687756185556721682493259738642831001379595633999678536955848835529883642184463481933810572154601811930136814549623933582401952237100688133831576841233283143551829603709940265951948926008700596498181401869676754560990673884717242125721598115317851178108635887710013863393397574276263393849094903915124073281028237597097178057433277134933382908959146685518025306785710206394611788238033543603736267550810748868042682759033086772511215820159282986405688229267707738525361168825884201182672835820459988993212155048679256736025589061315618765322859328776531673915370786420714810358797775004903894824316770221239976347404305383029889509713051964970966229151951789957819080657285054314751072074840997207400179805835511440379845052943294624861886234043597506524600007373776249455612944686304936825884798917800216291137191435167130415230262044059472962132757899657063296640528551276101687937080259192835826706020936592623893769526201070501423242745745531827423972890036585808347238230883680817815145076339952854392182693460509212469569790271384645368839132541112713559027602976593156925030960692899020913551055009293248034124227242865709834239332152064559417705266680165342911395054008492526102625704472190605269130462428214782288761443061418258400987635209679287688940991201005230082866964620221629349367541008939153824482101363091708263710820352133938773913228173163829412923519224836484606789206361414453757873493459290280155634881574704409745221994275525159958448368972590037066153802976274361461781683879372410211036809021260906320700757097314408006021072691963210019000690898013224539102712114515443572281484683174128133445782621967433715798729027278558166459344309255551055368895945415834821007288533507088225994078856102398706472018409352701997956591020910307099274527529587978040340051637500996326307931951930671271740080989874257273648664525875098447629636861854700020121264180038963542740686742422246332165704849053920816912271195394143704537074293942862482467052184487196093557641030099892413366735494858554032145551874883927701542337339426215445025598988137696117654468720659896273007639774726238455971708936513930520140789757140591708017740136725112442530809477837240774098313957000179086191763681281018381703402368863947028518638842046302201676578773429448274906826182525074432492115472887375511720922148690232694674686854487619907584940928946378968765014142023687843142242630395146825947942210874050529906806064750459412593179101155125056762226511040339817338657870641787577246353407938468797943183601015776112877874395994627056327525406298014405720459055536049574210803861086627050236606638617021910869003388677357661949354208966064270842613608584072107008649602089452154825864734789143962730486666931708013013856062971380417857397535747378198037032868503472444481652568336768069161604049073914221644940399916156927650835219884479506598516421659035622076219830013912043542205776116966105722695753608952266058457363776326741333487426594153239807249445576668156337428977613860713076145672725894752848310584495084186686713495657539169681258156893380569117115861084207335670894570988126005147596998247077729477237351669592423084111180970463495271252304081292716604972650818710323241571607880707602850631895346927852888845260166353210768698379067292934802065512220713383649076071882955991346849109589579491202892909281062632275686571207176365696837376570434711621254916811920553384283185139723736134167233475407617908579604282287985424561872647426823991225446189303280475127605140556794690085350065948658563328802875427688970804329305544726263405837898113566892123746326298795534760255278996811181191072111179724345105135962611817363688077583696965133200732902840872390901559530196924757474911680644557727896725082617965102765092269642242319096071749475225200175216176687029759149015643642749173441959063385701707852324298676780510709547432177145117065471633276850434421819318259846197043266474760890068962855340373164931286466216545954172312930962826307716672871371348784291889563456763239164359634995146934761091222577736323173588861779521994647067362535881672220935693762997229068977277638628627253680789030076038396347651672827905027416119294478673581420664746452097241181720153688547450227279613631091036306652379501640941502617216030900319045376225789878370865495232529809615291235203045298465890868231735387022618155337397811841535596723983033667613895019216713339632419886021813497748110072427239275620844482428185097902020318850899955412320536333053981364251168281048487670136677917686586609535682576720800897953913657201404688632602977491531825226214993222843852659351371531910212419789644766968867555334302605468657118394686036901147494599933663382820341918211569204313529233910986493381571855296143055840874305861627553829453290048508077398648664433001699639718739315853454045222254305971185568083635802923359670217868240857720066031776644670343409175326395281671132764754018650466014303975264376585215223944965912959245808207497874250697429282795348113826073691129479606116875822096637375834208714257849668872261243162895598467010103494054258518666636340248723972735019986569667594834403389809427624051868157442884348942521750957708664586046691486141926744983482361225579569881892178587870693446661453963167315427181665182310595689722451042825066563372746885784548276651681262395391040419689919874556537106874974578806641400100042173113034170525212237287237918762834913746109834109235123550994106848143955611246350961986137575568744390862266350795879347719072446896085656163130298432491312884663682963806936575736256794540432243996603159403935092036189203197136713667722531582802630645534697696859337172251317055373908153824213662153391365252984978324788825895839269814704711691019684407768871157922218701545122860802473844093750777473805696755190800825891820893726743222528023498552031227703568815971103249963078682550829333408666799593909468112302439487868233112535861011500543578300114150836695532960942735270902972448961489415372855959820445146533907285511164786134364970617586565488374754573339640728200556074328860068706977942241365693676620803120578703545158228708129700642261693382653201757168622911170005137326476890466931514756281941933715300644064095689337306983909233720570509851905296174907986355223499025757069744784282619598230869985506182513511048956735312999367178241074866949557109248644732674356472959304120811714315262521391630728034168112290721796366170330302730479585528698048465815735185793602045680908334984762569234436282556422867929025379417449270581405055382995246283420703842916496828580902084962437541423071743596307922587772340110039997564515414088936138289914330733067282320281646798368596876912397425250791595330009279206891749950959834700743878104129626229676405170989716412126176003471748491868708270000231060832712878237574727202775036216717834734457822834175697611951394692182452769015817671958637174032936831981700179319458024315550958198838040652837850153195518874539635481102977562187044944592447454532999952318666225982600894374897900113687542165966832743387008791105542601040722364339949421268030074484793480063396433751984338307129832544791732345550646126296667098208518680996027164627326777070629084485958850981029323146619769980823972255411873300517920192373960493442793271109656511026374587123546682529239208222799374897958490015055791286939006266618206403920239395717835117182911226983370275007069387799236265446568656796917981584652326616814006598297505845278141176104216841087003163724395014613900770251300617957201601180293573532909813430464925095344080547708865787627891075802684351278343004202906201699399097225088530112155047051680976243371548667070381044851599999321657683586697386447975413155519493129764266359815379870569269538392152960783156079359472531141453988476926397934288714864013054830249155768819946771498817522952128696707690802116336281272080629619765963962934407251901084451540951645455842801133223456968826531205878738411436716477637857901358242420207487559022628951711661159429003631802621087176450782880339214959560979461317248934582960653399822628086768679769805960500507845586658995036785401357845970259540590753727927808827584324134901762173334514069834917739912850762486835799957580562997550030050466643254342827908657743309129933606534782743143288013341911124329410840763448235399996108748883997547183573257676160939440887293630060462499221685481528117403349158910811320021808688169220830627122676168998680604969208775548991412631707921981691016060062209541467997268080220420621403349380927372297561137115102822050671899704288786788434395248050885361309804863594702024051080879805523235153884460064681089607214595517736150643513788647176332641753097473301194569168447660796875234345896627086907083142265010304334696285539769282656065382922497253686320959800473873761494424237913860424146593802028240544157815786965050303556879428978983654997754149348354022507835260979948497442850660770076708085577905438270038852031208993337174566497903588605624567392565695717382056810202461196710177408978296654985029575497854467625483004067163946047066463704078292303351032782499222091084027020495500957699067161242094896002014678682727022670854483483471687351118884126743760951857932411755268275004893410510020157517517792965966652629561496905278341134479709288278669197242674728750927467099437731877911778466318564702044250928132354255488842105754708341299361813620522395733021894278710548716001910179974275224867921949815094585471860165936881404849352856962853179857619774131446497896067177052882286026966670787076370972339852611583214426006014834158569259354476464193220611831029285854944044135084765251589987471637241341183361909462670705756270069259712297202119456361954559228442488159030322150063620898892275358738739239484829634516469746293086814995166779165842786992290179572683056215052344736206068518470837545423915243428388462217923932519112748631474921063469889520824878183369825794301452049926942997022102200544864343081299956589415041914079571168553916491853235105657270891850162329793836262509882350131228063273125366647166377274733296214738756071757696385210398357125029437833593430729373577542320380255745150688003477218773871529532376821601623241410423349126096951144493583440957883592279761237622924603335323806052214103948978961522592020170725990056304285492422522168217293806256594768181568709254649055796026362306799448316416889430733383601954269593366501052241966340321499120207903173015630622758057315654740321051203385904599194457684507676051772083308172595929903270582813314087280631098205141081437734412763888490685402699978789481671281660715595830189273604864915102381560646994922692850647756256688409831227701547701196439524343187815762917836982053709158941708890772400452952894105756728916799677896528690446465445940775086693664447467119828370284336588513600505937578910556676367590570387563598834297788400873455969938163113535423835657367899444418547576622665918120532213924939204904788601861276168177382025178129088846172675232060086161155006482971120855539396339044243605241400330518395083912150774623695409703925746242488172095578481677690936266523404871506612358893349441978067416588872651210801425795232323553528319507596025929524396111791724924035898743072623382351971962374882751297025228556359845504876803512546740177117403732624412169113646694206458393141559173315895707606631761718298336316966653007424372429633223780861453309906855786412008142432873657656884672473208574238571934491496366306753666279425693701665991637502028334381716983115714009782288796161831885936704951486460017287009388063928811106309636071890894878277266032865402415609625476232812566599017339956677093529755993794635328558955769720162587285020767338487285239773556286142057444080138463264569212404100319012325114865093710614523363438842452797551427587623568091493598456515431787317692128559868559551007227126218847368146625682928554911623181482608024617495584543062344653798322819875950220404379913190800436708167288745682404647228549402031860996112563179613857308390555342866259680281701947986478958955111567382232342895359226271399376940282640173041193500734067068014602103117888151462627901394282780416805383707885258121655969001213119419199902201509720836177857473770412200466736601177580885917481907915227364222796531486923594725202347046713999149080141378278833569609234622503226913588778304669372196898816843490688948186575136795422374305530020988263839958659972673647170464565283246074154684452339714333566964610159381693248155556636876423931854406060570433991855551714848471163054300019187094392487996125176959309708739081270424343913037366696408362763089904643319987260410286440391253776836288150039748279575170872877409502881720962996070317099795187283148429446499868646801815098241035585269278727104819978319365841139350908133105291564404009642942008941632386309519165040160383115937824555209870928745146315306057991684925180038767551367371519517371808770114923039924379728855706299131699439804368422651235899150076004201073227417758483971847146458024836987428225939911267989005565634178054455562966827999737641487662666030148847069897323206384534301749001195460079485764554460885852136955051573931146402741870240213407386698036487070731419808289078943779570642163860888883508180065385611433296809316605993012267022114368039397275647360961460208088491087423747946606360203647611981372219017131142569848338094794946962282453408021575229994929690567134334493714705955477414309154780034167909096253189606543727873721287378578661542796484571076247821915512970958612530336783750714688992449022509186830672685714523088978248775796593357169299780594280385481242767646915981993305368513592116275350820043076540120046804929625511627703936447403668332197881032102332801293295950105530192641893112580172780754858705618175476956020943289132352379451995156316547804661911320863264545289259025180253370960549611049735385702270144821147636147792659476819261846555704928461993099834316045610060893372268347972161493537533666169281479980924084760500649548584689874604330628975707758558356900061825228693733811304862186838509212114366538666028920615680498912520803248068580412607044706018285252555317877930413971598482270008201606933149505913761265768982241895079565703624640416127281320320565910951018109997389085807433432643247811870620867185612224221950890405795794315590548778263017007797871116083910473754770701278197694842483998153263083173809445820850001518402917061477377065620148274191770501829064540012094171612079026139713297771936973699459580093887762573190057580795071386718356969864241241787718904000117209918028339149584000885675640947091157681949699546757556412171100485400017823596512459151209674661774009163363625376910973725213384494589610164217074236908185571372353470947057435216434220879579551888763794524151951862810779140172715698889736959804193793242259101817340163240688994506351702904667913930384665138174235527856889523458552964538099548695993797349544759161125640000726059602057199081685411113666583309111647856528373120774296700284769507981439681539088815238248904884922193563030490543596182636426567510761877948700424328267954686293397198075950471178726176860753428104672241790293408509874085950957382326152540148543272113749176917642290169937723971079896313885153104623235156333545052357859547551568647488200316083490201244097916386545113525796811980592270856554539981491918145869855831721366080745851907838501105352144196133105688290612929322319504409594610104845533377164296419184410531485986436424975817562275648545595038200024453122359887948100682445909671160096110254954579937701802151386419622042677674956127077158627319153305635977000864478924623168063002775895388137050908276185763401847176510698649456432322902563509408287546008233712355502204651091333812818409967778248190093719991017577721697407394691062300278794727903103919323943811073319014405176209333748124245838357690012075827075330938525745799853458606160762891268194370615182929657759057134391574217621025855483173349303818790227935596915222075501133177470538462171961633672446324748400347863216726815193061594636988133812820118749328077929829993005495603508092010225353443043430821129107568661898860667798473431114615571487877255603124963762882904267415323071910715187865163330018157263981569947083631290962899505042571303834455887036257718743177251406081165990505530406322163568639953613116793291680247114827842404482140151738981920387394056978103298909236165075839999282318663526799679601424250238965702512658132929383317954809136647022501499743121780510997886583088024141083796073239680725911176465274485897073709461011118033697374236289509408970214590587878732036805668038601817121859870641357836571479816535271962185800420080972748657139537482896979516532210731308675939896697304047493901492657248676372824861699280327379675333739245024804579171313820913938132233052651170495067583388206616275990515807959846313403395219018684872704355122501252102536903913092801790359599563132684108921009957693823395910222627183509921487845421264532674592472169874597959331009801030830338278982027689054208115448208503507152431280264197588506961117612602074856997056149609344849889992948158891266232769663621149985357239362961944424127815442202509704894763028454145730100109523399187881982673776143213605951625639954144085463399941301550543698195953934421417945803750575172054361171576393016412966463622381459885127924630782273234551217672405639815450879627121110933402867257401691257163610063384407794678999480875457412408216604714797711645548136190188132946458352286278686878024431572115427073327444019122162505914723136613118337340889899017568099826346734456713945405476045357327247666011636456563826015609748647670600998040369793856773860098912253209187142388008107387443432868724752435348206706614639990241339995511880725304377217657839671682447898208971107059864991058864251169258330008108714330251147382291890592206441442408086501942755413358690412649982937747273299944403099206479128569911125605869930218058481463606816405802248817988328728429764367035843533805383243573955484122143814070014950470772376940506062022201423251675126748486992416750998568800114166653899827217389083576526751572119152850762058468958553468656905350162610196893425710773495200658173972248439679820081686888945926034807192535617581949306023001097841208377933448941219001243393449738768628292293678762652983798013572570925409805217745034650644305472986493574252304537154277306608586860952099452205889189836099748355924098698009170213250634986003086615407141312539068326203556606379324248728024742801673138006384731877127133255835950876721476371621916091833738559541248730055974040953818542123555283791570193056387383268330790764697829054999360977292052617339859938425766160172172472358774508291897293086308585695818226917816660658068666947105123297869411717981861042435900874349061858056299646485740652134399649046018589625887781550818629009849971477947248910656912149695112456848403310112597385023994282837120915916755402030743563562184472429683638361434736083000316613826591508978348053543197883755647851757683789470264738236118693243673275178920134989141146115079140494995769302110839609590004703808344813002873637534162194006019901892035378591432355041554513148779750233162177019262782884967039230868909570272689687271931649336990371631317497922460839805921002758451184696616184652286071832664707512701246594315584429997752803448921332601712212100046082914094352633301483459662932454642890006648388858494710252235543042235074482554455227559622924731762369174547186002881675260954963922529663426705809321561960339505092671870360883707454318157923553788511686202668693270614622667828944409912781642975992113475613233550560722881420548172957012420094277872671774999214623173435940306597020361278198392729706286096322396955179381876098766750624234452208620213592722822255842221884180930846258403215958959592331204557757045789941863042610437350731286635715176260465227327427650361615475076841706908032582415479449970445843553755585433508779076121117907703756090580154346201297170061037429635496059726803699512187200873921990349415751715020523897219024903516991554815197128821887554510658974106629557232561850260985955148352767363718562509832089780371455791841873906375610563939556267336578963173036810587702169230263619114963893919029835591058770831459994699022861845986011599119182808088761444846944740487709959975025413189992942694647550414547819037071633011898885757419635041156862381796885899799925561117559592097227224526305754524029583342596321052922050939925023081428404563560890963346542756252275216528778353034819068511866264615160715763311601527527899112802266337237267090924754187547599242411556946018242147617596945607379888692452243772734308116683805813243244182478165448776227341297166179663708075396033039634530949647868223812778776212253234533856201259983447277793963261679674863145074757351603361648628275213061463938289424413369003425803207663994272745781246618567032802884930760023661290931241384368694605973005318177954739426104029910952124265554038984176068500232062561037562635026520334554090522442843974099120166594530679764852272101318569036326644290213409395942868307360597585211142927608098340650765156831541630964650104441524374677337361139444143326580827628034018601152893125048995879999088882426213551848582154063617716850907333377960357493384403200982337327557647922680642168229974094738854752153236624688821240340873859901300756636157050046426528885337993158485321977308667799108486785933155553379801034711123136520158289318805044230795398579562557254286080969313899600182152234059992963668604829989661323696804569381582711357111444110933113901066289696586049817703357534180341237026245999764351292157685076837800344388103786574795381362488493745030345503810428586700700464336139723311403267600550890706225427090446080136577433223096391687845593105404636120351385787306820944752310460640695953132034042572898743628438472520209243032672459650061672422975261958390927828222320687920295165925604681349568396914800822738230370342853562547720408248785921798433239291691411561794487507918081615734195580962105015001695160865468366556752261724944974366790364906058207236713055544314127350428014498332186886907723285634695125922952435684852161278457933184370286138730950162226578958108586815805274788526498021721025840137586233491034523935250934902717903618693710068872435422580407441864162785315008812394790003080211217090111414342610083402425319420401676457483181886462913621360294240196924724462499706859182471814097015604663702122355261448488709153987821111020847028720046974452762830987989262246743625137633079045148993310764024051207796533834699873142543790448168266391876615529579769613146372561555522911325606317002884265049242387020180518862648370904448456348897615522858752532651855637866564515843553490353168825890856859425210159970921712537499973161581757527618415314083071812837861951926761347001760104656866462038590141117332368108849248467140354287653257030899635313225961945179385479662252485286709100666026655843358315913409597738308981995928275829893391241340678289094775765482707471794335094439584167151839107665370963460362105675942147129353230939990294476210415638940469006103250994721075219178265317008695479337706321288935914638898517442294522952221208407423616893066864283515881086347845329593721070489846246557520473222058369585345304824969036023859183232556479536241363506006739649182916536182733502096061824365150234168954516679285204324562138225120545608501998721631467413327039910454586150487646744669035495742685221049855918798091194986992956200431464009139441954394734945243871751208159797609272724553589908991276644414021000580884074494065388478927840594066581498741781089404995058377569910524455200512909318921557246841686542201376307798442444508849470132847884702811943725409901161522336288771086895401172690288946376133093044512541260825806921482313747556454929791600103867102843331581143298682355821522449960327168773351921747691769461923042181869426707056181979403943463298274049355806878578893880363731268199166837225340060741262132676133286515466590811528041193770930556531460307176331340411676745286702084782024612990322671802449619518780125389099503815297580245668918529655121573798867768476411055917236656886602180134071166633051214398631754796646910894433940588373795427742960390347522431079958359882233563636439328367830602540421063170865180427727481924993482045967787422330065537187637248475988042029347703890813764894359490110179796863503128774562808557404413870408176778029610331816391128749123776235659978523414623751344851444841675487869543946162226298566764995849785408524239593967412876094043464554899723005930060975806646126125317816551023278357222559906585684460632987438812151145825720947416062880606027482750872275377535266397629962028243452867937957523386057939740813357339748515681730079430126257512148069294878158959140533967789390682400306995538723138295103249950440422948215971330357817200452341832065070914319069244984976547816407708618406233223498550313357387472242237564362266262173698556002575522642085778469810703196052764387230133179069100761088955439671254400156656168339663193734156346838918658397911616831223517347297794854271312643105807783796285742878743759829556950135129424547902573840371760829729586462883461739640845370597832324467771090506671282348614888476959791657737365195627251323011866334379938547566835550914187891155718550561454094903492022136903422707524209433628999448208182620187943888067225371041039331730959486658841704166581685686560827413909743176678043465400397587726001369871473310105958914838904427146204827892728438740796876270425037723223658887032648019066257473016317784083246791042216204692545730729907024014828290960482682483964702052640247294433293722690140835726840531163215943834692687406643126392544990558072550753385869757646521890438553474072935033252953108239256978768315841305157434015732436668875023871774029513708048908341017593804144090720773875992777818460660344972521472754586638101274820172795819171415264479829117335098655856536071367427846007605780709602518100393986813391449698285426704836132429782053891507804662292730894800743191326025032094205433375600752233248529610010801736404202824204993314036045660334748856620656535987397031753041431198677091897882493564455137131322413818406706459899959756357567858157994105797749646685289463085658326981646667005370667403660456998948581667118074917106481463951700725672417801700185026970188347722757968878993489767136006730115063161261371382450195591336170879274670080626698575138215681893129893592981414736810384590822295592766130236086410229334560988148026721298066034453367344372639988927412028855564358908295192134443683670874684071631382446069954054876202544578466083933554876536157469226047665165305223015457367879124873843447945743129178221767262446864898067951249934944430761157371162622742736501754118534867531827868234322967193285689140943514668901998309983888720921141673585682699004712876526672309295395572150769049121928164791124591956634808973320995612934010334941944102128376823897517619901912310403258932184155026754947052164097643983511655779409678250153820331197853250571522553604647430518593099457559503064966830811731952237330456819958093190159854263988489392120154619418210291793324816666915936908038122759514173855555724301661032124872917674677297702622329052915229851516052247950855460635395793315592920792336408435439890582879184515758142179344422286796771234710740731255634895479485076595280648418996649958671611458409174789665405569272510950118863348782177717341744477936248510958872903085974989464434355215821826081560953378626834896701857466739694841882561791343194471822538089606504014791832738523068814074568668608077986127095661601386075152590906507686632917339952190774574857691997903927336536857776498766002245259116983705663796533318690714919255374587569153246640808714146516647159726841682814987190155110954902689395895761880614779978205947581804243530962289170371369298328564782851665352288416100122358504388031900931342630718466607531839955198603251500758105181007523140114506895762701677226184716765087520132106570598535190591283445356603792002514900238647495760803819413061654365165714749787331986413456035090229564942359970033054261154752162191831555116710638953924773563048934466854485968969831454472427816567272889183679125896771410510085370465447100300282792072546563043302281722155116743909083654640590233710037413769263570801427515364163766938026638990850173488594861451211147816519652571567713390082246091460083693942764207247946353764978035987325963954861861113688798431311104607823687639069934135562761564463535471949198616623283140947309006768547552664796074921693254287005584871664852396774338726481601448797377895523576396350526853527827763691055479875528188020622505899978128591264264922451502718149211672163052245483807770368021390756854556691876080569957290118940575678711364315132296319269608603382080243826326869107537924412263412187447181320655046887798646221103398511120250760258811587929844633097840762690264043889419234748100487907957493064845035901713543477112695888665587023653632510084028290637011732356102797847639616040728737768360394328573173973576508402326786471390770374134702595433814137874881804714887361322043728843070319143517796719473111114443615729290514126858577201039823265448960123616327722174242149464489855702210299315806379326399823794025866112064115666451765172174800986098932628296075283095929067957909092041434226694831877077010448356986306722546779832926762576429200740164554691292906372952802531886607614973690918736921813451903668452106322672744503636763097650487665186149180491615580964033699061628737714031032127410536541968758532576556290618359520382141099590353941350054136659306416031934556060790213481735127684162456323225822409191618908092639733521467052990660816372432460774769271668063082371835761013261906408387328453322131216904112586581637044087733196519380743654701961205661151181435763967095503595584246120512708697203042351725828301614075731703849259681549319355868665856185012658397124185496413243900935844866742805467903976034302261016199597609217706220146225101080603000554061261358340816047736709571179465283595743517271017637552782787634496243400740784488748779731967813731414217779906574144546047896259126688036735389568517275145712902284585904959311097478176439129379760661380922123466730376202905855010363404719648462142521713007621386884403511581697806326798195920369738884341992815683503718093579783955863064208619409951034879578312789815087050028187391193230323498445435968501141433751509355024951136440170672109551677610112018849098259883177604408787831466699159348913071344478506113218062316707819949278852430039641374323564606956641278318397739541994124233709283151332795115812189874644609202371175916211156666336854794556454700616423711292013818984235809316354431742205166884995943740740394838187622842813906208782992685062359859900986672364382129384117261161101731107390794010099361447589348100929924725715289598572637137235534795992945966282089004855251115684088653297637078689461598930515636588554549735088104137829209658421639626545114159689171350775724872110490314672039414143219664660756819533988061426854266715107429042590819201109012151569257133470619073163788919729968582594755376960535116305868033909126127724727683960226548030730883757024081491208969405620121039106437947818230256286525833787643927739959072916286534010127684698012445422795539544476713362371741430358979320365579712764249020971254173811958959586247555601994768003658042421268664960793461715291689238378914671309620782063146219091648641526378076400937693106331715811910379007454238628882558098179493579008653557259381412398960076091741444341042907047965273826319712027842986424226921402036036603925819250442638444771499248813257337689028739975224899566869412966776540803239450988361645976515264981952254842723669305550447498816990800443018770288357858732248300192104063394232760488266498222527389257645433649216469699234439373542414011530436825095550113893323188809597186758236874906164701418903963275464943280635082423615503145224066916455343633341562262995287097288866168387187952308182965652910075363654674400658637033650789524314333602652674806466502130359964553328061352394155398046795179462888749378503278889776668824951556699371947211343069107996297235864545505861742173759327144815244661386379505302375940086227588546607673796350597899259740856083570047274724439456759800852490320935214872607665928843335240095017495988583768925748300765384229400640333556998936778892695606323537811580580301923923244317096768309862154767524936770520015675583710344551820067042859541221849968875363056506404863270361491934940019074721325144842398253390754345157020194844281515316943651847934913847141743237945310246082079693508816451942328434665166357363902073698682815110552803788428968272039928592452609664193461467378425954246647350522763460070674109651909141542745388502620824343046500135577684224485296496781825822942802175896785934400790172117166095728750041267198265644621573224560544934237029662915572861410867962901976793065012704348626849445684910380537989186478190065228015006039190630293313978195623106588160064762315548127832583307492667521660279171272819825653453272876775122921730541986532338584385286649516593152858290983572080925877374200737342999687803802051850328842667526452103840999182713437445953567121549808234775612632287125001958209170562122363906309662352762480429112456935163852136692990859240457323388789260928595402732881282362201751032699644547608816694845319699406773870615688004469320752976294076473661412290380223630925693654093036519518761841437684207242113580624799894021435912944803188286791973721718482728781283772572976040839289679334122572673366261625971225665793942476899513315236175683981667656057587396147375495355238171763852506488350346636218731713578893988022107026703342932619454303749205585701772540504110978042188307714448339564522548533628729929575822661789130228383027364887053210385932177520024230382561559580703433845210160649310733038088490566561919032079439074507186898128375666111099931379956454026758747077607415037205259632837764424374140351293965673185798614151806237029639982919114557660969204399755004692796937639940921485696043438014520148292388579576360766755628543718703521761735708810366953238191663513556542591669833964338725944874259761228758968446868102803719987971252855761910610167522425483849324879409837520174626949350142937963550389205934587503758994074962070565286312239704097520115998776590934460351154509859478585381457195628412533116493816316132132203975712190634115148687834633161067363813009698614180562701155736568070467843075011548488355528725633696613842389063056958378652571576238945897747043604963289703538903106040352964359655846804875695326094308250077701221014164239042445936326701306798889499025659666511615605316800282552583080532641125060018690356710620796144877954309971855691874189758667029229647476011901395746932489443851079912245267051126275735525043937771168983993251255406119733223945158423289097579566571672145315079263414754170454754830213607216721791186847521587037905683242199311700002011334159185758566490718428296047067215992848450537957113813001156408884047274097946579072296413185286930926239030259738604045704739945605892173847544615811660425076033829516651618908117124986455333549231036635663865727102415551290125902365305537731321009497617404930357239224608022822914913484650275032244273562872863745028163175544456240888328689788638636217147251735311815108669368951186538681845466262658823345650055977181002806187562637704004979448041081247310464137745854627374652339456491912393911297173820191345616057224340670306741395782153430177103093621497951976346074642710784925852254021677958105978263131598585902424775415831722661255872870949951213429275249816762160829144587764568318560131547585460209139176467447555427218544135838924092670422675937313960031963411384969734749230596568147160835656982034140837579814457083558652978392173326279730379142824544432804319846148595318300406204174547253329429903987457394080911715281959549759836155589531898393469976257847799175955528772534412169058542230713125704862899695724279153040346778680767936716673191201401081286386777684637307904547021460150648474150393849295770743279387479559960090793654518223760019513268382835499594487297614650588457090719756401693319794689351129382737843861470016515339280824325286882120966900481757998867261919605688957421620065783200043984130121851267946799465048200753041474865905110517590566684468379214954983803401222622361185770726465237196089027289101022453387142032097050318215848493628599178359101301273022259618078014698894694351212583455921460350682872147341974427382675760650608006368815296184485971711030781788453085100153523492546867247830997053566903159146934344913412930865988396610933681719815675113643586290102539676581959138691453982643170695686530187574801999561419999966059539352887318808468324016946954853431654397016812669420557016637204072282595269490882654086634161634248609885133958296670130301229577493951987804372479146073010752598939740495644163603130335174930897731816185430572651834263587644295755413100496230678666139065328018747568859889843881580116126528904443959264010580968750151244104989196430781029291564283486259284961346882866189895021702726412474628610365075733631569825428241768870267448417037528329354036663447277623696903847691071997066490432675106803862010913010338301193016782926132843548353577211563030315336885606196446416378932514914340712586524289262854640695453610699248211727190475217088508826549415011746698122163192172440745145056969095220667240960753077145489632053824450627413858114228539340808177567526548796745318286948093290947012865475335150522790712461091420010478182162368101555692812839592945502293787133979284808699253497883380684833714679295258131894502351345171953053655792404918242774452077545810169554998176795295432943197219466689653119764229084818986301445086193572064581861946320667881762201658845006405599100528082764050288581544498694834605459064700418505605033163372867793708782984984106471808928650799841614782143886000521236722390663323072328462715015732566796491829920106331752492338793246696283415032408276648565443794913588275836917850344228179627032670707874251438958186548746869278914302568399340817140077378986612030468984103541874398583085779466852431365880438909033342410616084921929953786879995166861900842531360461334012558704836082103205187346870572788519550532071682185609484968849678895487232312370972908018094713813893858721812471770826873038875687302977871944040727421338307277202773994848496852752729811868015564972309523409369004376729161623821278705402733582196686930198531354378102621122271479901500432566745212101167069952578006910614605299921508816577273585946634551237241436929509067260063218622814879407812964860495572933208382588618145257109677560413961306745433048335611773603803265001434852262225327345152948135060019694513073157616670576574116231210656098961404394153001740298762072569197364687172547503635925717101254707731899787625850561989397632874269909184437433532692117042916062726615499412477999859264731806906772820325221362337599008995359647356694120009122921483414705914804737447291578465444846938777051471212075089069299870626456145133202163341816016526082717535341691632304238865076701734879504411146247974864881711665609304523252054295999279471880019686444890825725313158253696325010161398483498067511313184573571991470129515625511879155421892710781368074805140964394799852665614935784835222684250161641796262508757107426746919013732576992151378389675386635038693700434687425299955553497163614880007926844256392570532676446557755955412681669858052159881887448233466154815555884593585667263213066659384708575526387599603954731422793852851950261603804282662527061360604602719470699422019757436614448272613644144055940258402044162371211866640784201556446535833029706025464489684866776337811756575825718752705671968841852031769031218533977902414942116378340951642903727931046843581306080098261122930179277022204554306173979139141334505119308147810953992844684612140363449511975013902431766144501996688458640074804503285752352203997439800313349598865392247585125306980437416571247253010979745234596645959840280515992572007812140242479225344279178197987196006576679119446797497541404127118607207469977626041206293995284080882142427494576512527890625885917210731749525791776979013028848886861924316559268671694894406822914481608684731474682858703142194620890342929743344231031151908779040713048184342349964397261039330299373166100731274816342699500654831058342464180661355413576983461702456856554023768421597345508157602879631286270201675644445872135377694618565943828436257241997567364289776709287733001688201950583479195726034207324732495463204504021253136160392842035408211351077536603551207391272404889164174762900440732771287546122186511379758109112722488703367593427310792964181339992957573446930292557010748266126471271113798734935229896536509491402302901529386107486264671313898995225381532837652409825201120859510794615794392374152344808899376562963139362541981096474367042073275920132344044569865800117642908203271863051258367833088974996340202064317156083790255002943572347238487025208077245663598108947444852359838058912452418092408018816412033185038973827250373799413195290905875922531872121679202659424247920794519194050340009154470940848765178825877075626452187010564226709171854487485306671048117292753457230275473289972785487898024684142762724493670075409510163232689795607196401604886782589927656187069655831028503970416933419768251686882232856943070558354796460909615798711664365588029487884797120950096017024221708008538250400720335996382987615086216934406641943074396817206129323134135349737393936838303051003763460260499301823617526202397806977808113042987359327078413414756854138722483970011216604752899557729122647422424917744494791168625575810556828905861305700749999573701081708670617624767931464981425354071915584947354530011722070628960963496063658530544437259810643293751755709586935239491204428578768849596550942060021028235333295061466532858476387221190952464654341438158938019679160686082622993385541513837727014666736714817267477135662808552418298245184211978657472406243835514651415309604227277673851358614468135875807722545163251408770199778287432430923073132995227052423766951414655993082147563890924994263418043009961800925118251760138044744043409788348732914305261408098475549980729968555507839833659388175064427143552190777172054684774262189867562682128611254620015428451915038370109561038204965480523122142311216007548360659944404627111782199853188764555811922284421818780957711724216543930754649512564225039147626239248041951844962205095232733057025717940266113841422188788176014470421253104776892162431194320673724447710492319993079274373288742014679461694917487386319568250099241436936320555549892868029243085781157125417177603220370489725803866630959612395191449766297175782027137969352470379605518111255241513286567579697412130742109091866377539496047371817900570823065104661494324381030617923209769498031659704252253073231027063962990699751290495018681475966923921067717150796444871908127839291805240381509464748364525062635005871243688510278061797789040928928510236323144504041654771370667894242854564597963936813575535806886183281294906742321868333955029082850454115414240346414858272263017416418052718265040767324849714350226078001019345066359710943124082274330808583363261193413618963682573869586663173267272538561830061873098185960018647673641873895249427564911178707375065866964372514361625768016797225704210578702093054911285025978869850638521753756024404599172539544773367477707399521533097508922373288077736944029328537069774528897496526447361232185600972564191066771218935830417977195971674806970132359974015293271644528026508669135272023155333489303301407961026000365104600462933485965841926925432634967951675067488709351355144193096415098677728154351991162016572041790585251334453232552504699960507307935424872118225945245296493417628398914712589812491225032149957820869608621059138904490015153602532764932797920544884324385030922557629931301883218127262421895484206951596352544239174008133655498852800885394355775260011353942459225300332773623185858776878605058764333113577813678041524624541650296301456523733346997903109506056183123707556399014910842487817393769884767940721329734095426991807200122293949486688523626253451126641636395042451276618104095671066312494457060094918149130885099919349544052662518722672597243818610338359593424685732754635715318933380045851851016697181523471492242293429600040007519895530224367589429227756598625819844877192816148007840343829525380383457024497792697675935719195843003498902411453411770088697407330224544895214003373779809699041203918512672977840410626650600519860584707238882101786301736162170554298602493432353124300760949423265686483613294271271925437436916718075335770211164424158353323656542645239130946076306229232297308293124716111836098215548013179289852236524299932775025719191960164190195432384658618313521329848931128445089672754193557287939405862457207787305784966559927224058716267187796379662107017742060503167657108321438249831464374499728358214583332468374049814637499069181421990431578474195263893467263769226486596992931080982509654559534938473848664157105912141433689138587863059453992212960332456602304463343659380312640308065671305317460134640638924111146528192725093879047746825973500755054009189323390745865727931548681862165194761319120823109420039308490405956726625342655181324108569461241200832034997594497167228469898060780412307341678412243631208420144397999881214796723117122810480537401839162402023737581907485210431676261338979525802725663130785832389389312601567311617456051671359096213548227105149262411368725628585673126569754856296342741893929958853255689285854075577662418253000473315812489359942379340710453830139269716977024768719739624509723544406663330495023928006421194242703401533118525704368263902260201426063430560837351354089657640938406374783144636842078025624494947798753927154581782183603188711953371360614443710531913756089072562277633421536639567722875408042483992043439685987137999163869784807766837419105663978816099394730941226932629907859441518451426063885120677384046232970771778598172075646313824772668452136947530630366632987290070309917128090694690550333616521916830112408665421910861713579231481743208449952553876218497506951820875932239421602165471462031169563572212345290994923844174310390633019872189571903401760095181832212185577348470169694554125911174730378100263271953973904217065220108538698927974405714760299241681408608477692814552265820178683671008687320587548645426822883679628730586853123496678592762549880050408257943906213482214818701076070777982488870261464905735826154906532833004659855110751140752559555673208494450725746130202091545969252445804532764650347837346367470595925494087603787530666658819754012868530564023599847806377556330497769096085706445557651731678911582390338923343269406354757444436076868603532500958245018806724656998068119340009598296030964553790343519692885884373984761838879756706577278933509288459460809983668937157776169243366831531832283395542822516361157939437102341262537243850805933637929716700816645554752360773992549361322148581978288770649379574270677261296820699952468972870001210925882406831127426825674342343103675577207501382809322314099676824811936037196531266252976741483548055617826533827898494341812082801836605198165939110642476749252684290989133714541553587903641865473608327417526798368978539061335962752003742202577051135668471038918086426948902034640592582327898969404215720515841463556410401869462377629299633871395538085242438816313033605567458579864224609930412492289061500246801231276303315784294113242248660820233729180085835890234011719474156453564627218569637616927417997625589777806072423948168047263861087908684436413483870535303986318570148299199454414870638344031551510351301818318512118959479741012496163821472150758376051878578708212313929845755230799773747858961272053724821322169687868568539251715881638662592219838204797164887154747364997324536482689310789958319438497157142841249543562643878371971091394572104613595311063349033209906444798706067794847969875921002282052779784189293518822995441260245650799027417133125446494117423242647016978995401779333585164433882404029406411778639678380124661386533658311507288770773031689077473231009917086327364058684603674281962069368220355631954637988591034481637102588341225173237813764071441077612072524161317018362080459311195734355974468465319516511553801174073077065005591893377281161812159288409871675273059395730481865518904271449835803458657716770383724697311152404021959347440949158934732491930924667101793490689493326625983725359351179082744358728825082825117848458515569626009680382781218097366534985048349773275633036913401988533226770699166202554277887691649812210641666015351233981913250501103914183329470127989690242107194732197606328651862595530070616309750022743985908387575983812390181144255520372420732509593954206047699827464052477943701672332083710075180519855293752649049944765593344415045837288447442569868953235846337898751809992048774365848889224950205193894691382838784587237780932414056252805634468339842334822563437095278444246421974918166435222127397139307945218839741820105789694593095287255762097207953994018501225208813086406926298348261617022383221342321476994216760120854669674102586656313478880695743093665930705514179582716205382207404820290788074299693676654521995696841440473197143141279814291430348688444137115325812099883886372608745765215403204225465829293214467934957427333169132906669929965030604942973973934200931676977342732925168707946780786661580382217834209690556596337357109932727890948988662749297574568155740522699599252254167069775332170802327855979593070065362364509420943219402278286454437659522437675412147260974889011467812300536032248832971392723709624168503647380903915769692109567387925778181563604154343659677654740811419746073042235443083439293374194809255953565527633274589756624633648211475816826697094518858707511236831354205669334966607092068223524887344678420976300664043973812674901219659817502443312891679389500510538530657845879002108012976436650976021864001837700334327975105557350261797318048886920019169246462768745738418877921279120631834659743881682397780219177966832657099658472285053777685668411240975480479292623531553588940452218467539318026244644579242096627652139273179547250377736227959303887653284570780917836637978979367156039247200988712617784249549083729680361561049697020324713666634506942394911410009583907641421282342124646056343046437396741469974320048823611170681510488361690939481269566684935363198444887353736377389100462129134968965529470318621688737512119503062134650253125272222119134872430886883137587238053068915959644666743505381005183747856427949255001737402555983403586684068044467915506492035404238156659702091092296068945395590153590182690305390481612453233534831503198996840103990967279753628918831149349154671489506549090765319784821675667441364331131050174317086437134302035118868807564731844922020939838703870139236380903731337656373250699019013901303939064572759879494694166247839956282978208754602776545851698779671294022572216757758742189819543276708580999692200506630665360845643289235762152752670846345241614972044893154918498041099204433828315033458155849283678766900481536942180519531596054958154556777121343340266025359268390502209688601177981875936127156985910300659176773246273581910814417948474835963480904636584011824773003387234294554458478579632326445334309137144449830582551217445841171537475716423373624576951373205063368862554985038570581889250313949097008118727785286716105540071202320205495824811629147517026678392073987062996315269709912728956825454298546419162658425902550173224796134254941202629169481511601056163918795984650253626954933855538315389162822360292781008013339233708963975839629365058901000931788655981703504336545110681270728070153996459488910221724106725667795541586355314884415000828578272012374221694433392259691653828570030732708794954877132342068091352842323550962285326966447139581199321811725288992856150122392593680621181249962412342219887056728131793617723354275710923379711085242933659821438303194120859969485460221572245158913760702079073881071390258078291392857908885703041967486880948393864827440076139563271788777129935783234215156655035491400400284334501261453552039529257681923371548163682326365705996334494924712253240626482478724019701566392763821339430878480401541498801979844931840906189012534190112541250458512532058720953385890514919083005856419796061023554605867596524646520909053313463287292841706214882715113794042357835321794120412750488587524203494029700967804229420946136930748249254838889264767305684915313164306283841101196721058118555634978885377380187958846956367694111359719002316036259256521243608298200268414527349776467136900110533233822122161386969559114392241264333168541090262261036635049777604012528786555311395670143006273066338120248708977554271657567457848325905892469604910124845407290037476631546602218930487832783247063884811943975793211369594277647175180634084062209057746186050184194651393093373596744996423686615448307708855812516791574019423904610415607267673206201970656072501262136544902393381717829585816499581479201357365671342936902432667704028952296315624792041440940932444314923165842571204708150800997347056724291763624856532176997878019471432091332324962433840745053715871046535170530018938638884684084771896569038857747846537097957316034754732294986637226536951307161900100157425750103419059171356376152009511725010368504063393130719933584017600077202679401718055920789632109594409884442174057340480106841936381442760958203649718107954808195857619856181716295135975198853381125576283347045945970175510428863448977703134464171249765652322131787203650234230475176337653815097716164463959694852628528010392450707215426256475085711741259260060481321902420134811031636000671634813856855007185580285617723311971954237703243876087262571084270884024628684290912942203403338955552360158459924398941742752061528260954623323727138011713890812395508190777859078681346175314654292797150247047292576069862632506077706362534456927709371357033363152917118374860673543630819161261491939492760919232019119924172318042355364084241898587246149124370485144501748401043946409924200945401640457696514453916365732637950865982102208101536981970342930996394315841384354545564111415408029867642158390706107756660149213197669629743189332307104679860990053657676328072984351313322822809436515606094768701519271949121073770662772105528310822128253559012977497540564568793194721562299530452881822945793458773092063743096361486018316705669282016928510718389010923600739584933355691716006891780184618357326635884674652087341788730897932417742827350356826938500342234954003160840377585853479720598444650410581783376103843182033740796646257834763541462794918632878197368386798344520757941198003351360649066113432434632672963483063648369053437095106658881160150467597023503978565573616987323207435018933772579736463028994898549964998427625857724429180974512663101646951444194008396644164866504087747965853283428562697163891669265076922423919534751868182748712734910333675488596957405273094233613475786211638831945546587097463879086340727388241590426511959521714518251346743163332360008474858864167639797998416878652774218011253020828840283013590509728851319074363649108624449390082971397297329428348228587857481036598911319581018752468712271529940984991321451634309440696233185201610877280139434628768490535908405562783228818993867991361544258910168207998760609539354856108767060795706586323136586462256691906853952983438562330614559953384027140785151660690489411404489481280524698898665589769948204183558252775633847350787245044267964805270839802496185968581403291297331305328827842399253570949809343258174687418858971848250796503298863518957224890660870538592375845212170678083409968818846910866082955191027047775451983304217224077578435713017499414378846932748760221174761215600574168713509911735057427608240401773262286677018201309523532515330788884635912805784896608142224239336702127621975548236748675943434446679033077438698413858112239591450463836690321662387115838287230136082554266939012636762207929234586318658432871349129516139974536437496355509629025403642340821534564000771276888804541468820856863436766551453707107783724031946178496123362609422650840338392512590273511029211627113294319491222365259126163212975237364281659117163143079153812178842776450417846108577727084231074209035856351472032854414869440883353761439045697804714038761197997581899757824786868421873108664520381468171933723150389726939779686935294650342180125753339577171202160311444059914089597867480567391613957719169840988170430645578112681427562243492940997411617265875269296170870940876862381837198956699549065675594863172846213268949123788694349619408329605463190485542134544773544320060157475397420850846971551217778776759316396301206978425478707846436905202304133308015296146028270690459780977904706431390503169639076692880289025954583944169936885939617500398874874764909021765574678017243011670215331490589179514422644582551127459284172761291272037854323407785634057447598904848674648682955539027716875329503664768047943127307788799797104731815564602850288263618209412306611813645888691131587593494838131074150731934651477592759803729975377524963030487459472559239977794431687145282778150494805482850188061364808261290645698812491336023226126784462795895600184541603881913367088967738684278246163207613718041086957608974132499324056964330936757669027711753160940577056385589062246362887986058493207634397379568472504911605129733732788813228733107761592947150993769450980027798734445070234726009046052171585635029338046186254556857088498938790393450665779802807471791162268597530594457095149631578417724976800555595340778408782190535998753965705448510482866401055342260360322988174504164514142797155538249598046996097248632333917001193880426141186135926003926658150474708549232381993606044207598845222334368715645848226696867577855731195020933330353169242688752669404187869560203058952362866536541537301623089728445425184356270395589757222262785426858825090363846362273377763482886831354659688857943706973361586513223179583823896815076110538766958890850999131295400183653849267356566899674543481828613740141220255017217324897322218211513120747138537673337428835074589741085425458764829323547034344170304377874291898799823970855887167086322665320878493714630485672046256658046127850330258197112726827877445262627595464291749772489453046140227735139141209517106806464008423118284295535789539761579797520827949751434321465646554760244964708334613343251279587751974458562398508005716850030982319447570500825465964441921255609926148496122665016443934087897152710425973643708926470508254913188056443896191096503019374563460982169674181626255778433850682262506771177900316525570667183655792106924901815962621780191087979502018671657466572903336166237988387042592433655149562359806187156995970384504606665871085192704211761138041660507371341980252698202375465880712029996295633282784521996666426901902021240090070513595721985725982334574869571437144270608004170043915494679731136223389882256252228955095670979245102774133326399779942409421429164489842228719604041475761118053960064193886165476954108108409007491571558594825255395576236256964040725730228945534761342137470825039230455671842038141171802521090280654058274756673941555232143605892694108748300242411578754773161471201102855712863855545102480731004010426745239537505987244998680350174698970659408465217176523343540954265774805632243377867009863078697493262673751591664638045813356202739434090855443937031813455353656894338271920797325032746760449870634475119940557364866405449468258152330433299610892290338146592444939169362370198105063221948492687835266010652730838760436097006516081454864645176392018967529994950850262862980850279879307663802198615888768619217167198755742009766804637675014284508521716372886631617502832859679164167503164533265915197097235993467910318877032656708314584214069984305652493002830058520349536330185351599257003451171241589475551413123584805197929581604023889320990722760494357339998570548720230317040731273869418178535651662950842542382008005990139690707451178823919852994977260145726252255521902955599122853029978629355546761410114167728106411293946548011334446866750370616632925332044828278633234428046678329031595385055492966622171627957527611996022231987877300461587375863085779526248285980980520274483089653926414775250118144260304266400478260682386081335316311911867320762755589093931988853586938962826021661933420053266409575950335983490054770160853025853933478359687591569238214876283539424840233180916457519824428978635235266870883761592980008435210726655076458836764871157955809229265540281799514889005134549074390983927171568590549682042943904788856450452157832649429438510289148775241514640005242990355621993278289711987784210436052742463488342010920912206881251453088975330816846705111953767900628736432854322799367920924625300893152557741207382815902035958515859221124988405054917621512981126277546102890100906760450058527441050440739445419741138007726078235599865055665478021143736697843391175170019204999382701738190785185254280301783573673785006167489600475382113212977850634692737804053680598338682482831071227662960912570263280661466588358729722637763666347719265512824300918392476125859601266876842113081728780778291045517824651928650836818037639183594641473486114832932146119834086237462185878352986165697273559631742529390606001260707229368084611451429252337074550303039929154610555886610901458211794581767941903313524752226150863206461120601185533679044960285143469093124652327719624281073314436851477929623225736272921206259162074340484683246668208067018382902858462446991416038767388768025641037133817106578788435974049013195318735674280140380849881582808674021806229348319089478415189014697110076128135826176410290935853546488582579756115411517957404747188668154470527782924512672658787434959166597435276058225736438868593993791109306051995095226910324141393001784901209453011223172835093089262775444629239064437016761429656989119979690801833889957570949485956673799449286538043918899713493511189772562424507019775791740861435551858862017249356936787578139651509627674950248525341097033747795387625135501445525399639163818872621674161657409015906495511633952452388335197098060496373623961337947193444507439203910339645077287396196633729892907432568202047479969619785281301830776158904528205618688305036920415588142293742319913297030768048538804460267092202823961623743987621042906918979148798455436481035118542305515376747739631724228713371243515831888545361410875093188783918591380940686699643166957711592311023385614507534696162673521145193465258363671062018195927650524059384945216085293130118469670898538674478823092977905210117444730025964688395303448306487375884776471941011316507407997709082698678311807854940609962210878120799260869268799986516558734134344553053568500147496707873592337339755925689622948495396911692404673811832161946704571859788576260300078454018862788388163797964386357202509392619181522379093534583165912585472922354797090395080898999663678795364389164527103721973766433448796714937914027560392670868426186550965887594799557054623266386527914142173514943482298303990387212705682529521406707180355691923688373917560233429237337334982310594943479233353535855708985627224560140562574788493521227979449954594155265142257808726010667369485208134303305826090980113077305889850332674456985316466046615353539272556191693491614093408641706470173520050344733836400471241589699136330819254034557461172067217607934795654479423794126614118125762483494825760788500224565952459657599415907039971020298225809779802722805890291440715446758888830802466419745122278754971132190297677654711823845862086315570825832374993603914709939784195063944471594612397263550866682229846364383059696986617282090592265927640449723842658085579741313666208096405906778760565915582843817016081851078087301991272907287836733862756615537924077570868445242018408612260719466288525293783875367581753557747535331369796252284081796855937242500162390470779397428998513711093844233684793964941914396464602831904987507922038059455482917760704481749115686267745830036831303840102262764727854335068860644294917502697182584259819239045654282355801444258906717864067400158617689428739967438223802798760956865498911781073609553515801224454163633354415417234844027881578462753895822870177883610984828841716651517189799325978648357796013918585738011113910457769085544086549199688286303395668874881077512010844679623826350342701517733384687527311754961449969769263337995873370080459373565708449901407520104233276255664725667313901023023202274154514674493444097063191108173306240841965817625717508712665998453130789068429898530418198525351618597724843435041063491846590436967256185353387248586241092738597269052812095149881517387821325668632135580421548628577130392507934133624080647143403054526787242856352826009820605383352834863337749343842996562438054803951539231301733816527397843805970449876798515825930013195690359764083589851962143727660296724879260408032558768943231392037796850793332134591757287232850718759196238155726553419827103887815597760050428184358859447169011579720584973386251334285974838856320516785641184102930637204626818855685764592250256167547477402770640781396607091879791358270407054153846985296899996229853425000675508381638260660587747863773125519784179156110617644224528234879476610926619088489637929263010653798504453732899575112723334053674585905440417020396383180940636541685249803614773087075577134615089041466392087757014973298175059553958735656369643898655689789437654667570412484738743746696063773804556783945469611025573785051279430073326127936646964553018092380942102122989914810534215581235082990576792101522323847548142378580318497682489801065941257530346187634573240199343601680192372687091005263053004305402848344129101845213457501934901055182648167889297920917075781490397890573179026526124635452812520248031703123842418579568827313116505824451816080452981522210322368641906747520095954436881824388784323571929829771367603474422136806357842015208362270449588333940889671585927830966677245492935169333940379982330313557568046265943421496302687187227072819992777743020596214335000243874204156097703199298784067596972941603339998989247957207749874743156204330374358732016616006297888458503175755908597898274901039522106718280893939433508079046972895934349798784021541217375762306648054119187142127254577124128571853537145362916107384750461978683652880705478289217309089075469505634409948848934100114477261728628127268329975621375707725098220118506958719735510433695252465494011804686482096574811349089618413130932972047628891588496930060228092464444675099859609766645327301425919309540869920130397332803948507176494339545089706993691762769958014914103119254638691682907062434973055384478165893598581747299773651896009477316686997009825154145090926066243878221729258872999549979125957249455609309412548374844592619925434395144537628073242825227495914364014786617660561800413719594193735983739383744599808947058055009781305817825139846031845705776513701655431288912654278540175813742759104904353180256094500877263999958045248367228924663982508209438362190003888512006095440065150581653087553829895064337798232373431850398925843353230559279005193137876673113814449634574145723622771751308377567435907924793132019301819646152268757759929650595391371163838289141237047203372940816249388880643153854623594310634881746700906885388648849875258692224510457183005999287890700539226545096797066589788047182787639425843338291643970652558892722676731564570968455883856117331962913853895603154493295435870926787998363785066103788160174774592587930237772030335597468056590244360148043001962819811699601530212642160886711718801299486969287788214514653845911108815078138738196736778190140964033214463152560150325727408170649886911085579584521754948227469861850450137354555865969387873886775853975501717073469570952122752214880844685183854882178128569465831216443999004883430400981531651954479144274785767461912618375252832956582030430238002135731340903583688825972346151891776121920086923815545815677889220495142540329463612731861488105184847741386938753383577157976225407585343488343228363384042076353234470233554811739843366500625394119975122476770068689617574431858019374086086340319423632920684245237812157595725775140212881895568253745367017030055334787597432190719819005571666731379243432398037304126822492551253538353849917105043517126601398089052669166042269879114203472273922553023776113605745412252416821111920305243660207605337354074192847689592056682963119035302420412626988894142074347034812869202636672037918524847081235763896088204688201015435833661058415445845769838787052708925378085151195331101250537893903637463171695037954443856005411773632226157367991495240210407336686638424564136393244518048645405863011058820278176233335928488545811843210932973905507413712897869810010436824968874361191649520972814516205946351595323639686256583869185950925361028816118237832356520656196427909510751822383052675330089793786799433634243795970352631098653380971955961093120098364376345368862740080709293127939902216230308374596405472757338474614488495965834154534791024573851101845337605845098187927677574252473011574730117923498445474692890911997841861561925505634801968858254420547750036855144535366235609527438009070238053084258358847546415112369745434230553438273175913496354344978096058891367571886849554297677674023291862397198814861185661893527701559313352191727050542945208847908550604551083127625320081248277954578852642305245977236191206695274688192688767165949645378814471871686183607155853359954500607950410952681406441556451714080424543850293272722378731486382051432415312423405648402556945296743158775955371401160653840670946201028725846386601289488129144950372615445017939536556278187962202119994210155678356723016463076916590739173144052204794907153030605373726874944063137897091650665495121842601029108391845591050209621421101744780855987370035924872584559826611714113634518173524930383187844872568209525675114440256294336904355219723038476691152005739682955919616932489647466817671496716345882119173551135598068668492375793565264875411323605329000529465279867154985564870498788302787124415443952583320972074476338686345367362816596467118598371151194731652486330230392048070487335397559217610989955997765044675302666735570895950692925091433743071486652487731805008297714669768001951236704562069846083269064379402471270925181110864965043568278159683629421536611277104877206776951834462113554638797620897957812521312388528643057706921399175636962780442313248720140618198166519380335664625680647325915794775082165547817980722378077685508856767075400289223887998558330823368440530878150964137565270645627768700334077210782788963169316942907043493957884836658769231753124365598182518121014187060611811633530601226022919117817690696569653982320718522703390084507969344995419463311635595662559999348702523639546208277053321887513890327135601233311825529438859014499325477037381556283960677933964732798258499017770841939000489704646743876101262888004557441240741295633045805671503932306002182658114527791757029096471458962993225268420175103843423739832601811890434358471413396855583768864037561671988118448595893606777426352409267066018297720562289421392982136108825628048626283524605501137469320134282115238248142802993354892087095865578760766778582744504539337343154575032294313899957108378385642344905379907468534794083373176916966693175161858090695584573107600300579681536327202234514494201881782901277792477256723614683333301849764802202292052872993445087315771816077304188804494239694695378561431596084484155301645623240041729649579674468203952739624509819576488238996986448688072060035744365171851571144433583120789117429690423169804136238003751068442052378848442742670885705703508134578114667349463832399824300278745940873693721206040268601854142423412897667967792939578313424239162023727536111606570177996758100388466329363627201567274898329501545712221788970825737619598065446025876731055594469888843509364349827747067395892055732708668700783619626878775889444837539597685271023803584239286001498749897331865524874174123827429219924673463830999886971338662757586218304752695427173444715641935122646440149047641484818477406437556764068348019325569650496669518371295755739364637099297982505474017810096492328123863826151071269094945927799142610262821690204629817139407341807144557647791755259873844686633325601383040278187898869097696815584656501221599814510305969539490920687221296131536328226744848848567805369902103059977956659582031438142638372800230504251289503191210432853032159996453401771733597992916869786870171046552315969065949140847937924284444283439527903523508290002716183788121702881447795726410734099532439780961269510560149037693260852427928393312607881810626854440565238121853137090584138708804557298155357658615143522492667277773777227140060019184185297640162970893950019568023028111945755345181853473270945253945694422488714550312140562553591659532096770794264888851400563802562400891557801697643733708379854838348178052815779720982033183636155908996352659235733685030106373300717955626985974366071978323381054731690972775238868310628879793951607560396286450004751627565943396267977214380448490651280207214970782477863093243969448585506244168700535535354458534432124110119111417160825846350444579651393071885093058504694031967523730292755963452198532314988049114806723142416747694766434997626540326804694030656286215976097719395992913798405031950007729374711853176028668243919154760365724689136507869120295935522844492923380803502382458364981138110097097858973022212995880769946200048682325282452322272490192229959409917802470503241790072155287178233701709344622131327083652132902312947838086129949928890774687846410320910560385047494370242326252351310802995902854665999119829727771464628226060188573996540284965352795748501968641897569743838308799177335165204909815539211105638746341781183963264755141714611745336838939768080089604371658758103205922464460726467086872498059806301039803850976206038616884613191295376041671979174007381380401063175657541799107273387923489879800040384889239780764154900115040006137261378147064841250875325456212740620411956725115030556152004909509904104235117427771910900713578511318256617099522621255290339685480239270447118452432146737299730670766350978598378782708105715168552043029245089975692768822380711197008783618624654372054610517958583603768505299831888790341047562335696769654679891410898566493654389366374274709080313618073556575382942487787758023579096693497841584290956879893394033613241262538915407827103384550570401912143711499202582456817922237745840056710773323943290908032190902280623743810099756458428446027633383510431992141130937984296557318709313538326945258322517233599580769812339654004297581398227247171839089614505225897090928466994196437208083934333001682678536282086911592854286014906229296533657509461275412481896201887347126504235354521533940725102273628331475146186964285521583069968782225495349967093201390106286771132645362464411354358690850116592886055823823238449536991468273114851397566577968977422602209655319281952037909019618005890536834281499829374404958436032670081632903715213410886132382354226468219509364549001590802676176419112081410623577857674932987703806911534108876123392535435183138803625550872620141641102815585676184160677112716753823561443784572749884121801754329318077468049769464925062158763759104855778255800069803221029685585096584191719885401807336203188342612135740931699305872506110105097205037451350852687695014693988786836586882835725115595063944572040835291107286616332809934363152303626416011340678890717042051145335538434284325551925680875698566925445445640217625674900615290859472216850607064685318026351790845581842331144833519312532439525646629882967476237881172863579290456736709258872367095861726366120425554044223966915414810796613570507187780980436076660453955543989933745047642731706571951776135173002909218359052229952128290926667321051848967153820751190899285593262695210283684433371515887864504942133834515430373093160113523502239288312304140384109524414134848638986158334128965832111922205950478972837614180595312439286407857218422813097903562478727679405689349970627814260588177371797526333398397465876296398947491549124066484414636813619277653298004893152413010312741562620568706704611550397105718778762813220629619564452856085684911730165595846676869511806316826541562454164941847216290820840593327076707336008816888519850597179308889594398994101480181414003277658664904651052711428252968800413562005529584175633478618123075670081849816846105637406503907204767730597358761910161757916989569944855616813694994712010523034445257170103066723551468162075161055165523827309355847981756391134225946621502639962632558913577650628743342902697641666503370110986010594654953289535558528537054909562346135586699618238829724598669804947809625109720761409546707243237462033599375727673878916008396028992355017316669884026156982282185474698506019509583574574616294834289760261778759931564881177009991430100931143119275342034162087772047422203187231402337828651982215588335312711456286716471187048423092077138934528861567471744565886802733660739502359792081512529372945466955292604340874507473180655008271469726947821504009266384428288876591062028210875425645826331640776030281596290126763108069549204944113546653842281956518611772472202907560901316033851241587219084839001941853624024604612845957226244331296794817586289204540201639395708581958639964657098652741983758581870354455509524285032154685260209665171996018312302493438639662286071049003964362185189096431212162448802099275350047088188269138096685436626789032118183097250579287950341967072691354649430516523474981715976186366845533447033149715364492593970952495032453532831702120006993270649253434787112129551940252644522514151392764324554478614404089683199191908403227931909407274844456414012110446787334278113810167989105861423436009354583391337298480639555403902318714581177640094206300974719689120493887497566029526307871190148895706044005877697931558473073829942136100543127738118247187973233367179488797803418833002482912000514516780093373462560104628611435368171606136120728954542515989775120202257838691045359841002983319828398960015820874610839506274339429831475078268426793215492327192709589550614702811699512966949516368260399214388159862203833628549675887392511480652242610024734479719013903715022922069937044005160161125564596960642108146521683948030189614000875948949093437050845115228310425070661756898765127019569767662506789510217177077531495627408914248277117730722850010816006673074167325742257460956630068093898479103663807460467435946623711139454762772810110672299598932219709145844389135121151202095575001415234985428354083772773262507965186933419738220709879296132151632504700904576805244245171168917572649197471348672979316614168425334356794325914090461345759538206760993759550663397105438689899227497535814643516969665049715702374331484811811945501358056121671386813557901677871505722181239299669631056150310407271530561871699159087620380608781037772970193391208560137979944322288894182663685168317765935792665466332300387018959113987025951903415576919868897489835036469397894446405652273785529483071462574084693927650853277853715776784933753241803864960164098136124033047072874199443618130301017577960307996392463904295895093417675964894076556351009338762373253788385161187367591324008507008035375014856539535034303263375158479147632319966041875755267533361667130273023685701034201254910121447041932642755310381311293004322827716684956863098623176232071093351247290960061113148379298272714355022378119148518224678692066048744502735132592023509701081539919894321143494232954797172463747682817595569431121048054183103192876513009357202747256587662959378388931610035786635664206407721357487427025195768004941236845448136567384837402199999251266437004219134426196327529621233137226594301551124815809020590343410803353471553565372599550866094499889078575398530362562046536899036371114228148648179255886019870063084230480919409518451023367402616647551231628968822080345513198897137592534355905407674785921497141337049004625123419747569115588538743614950318593425283829836655190283010769934788609651754777423805822482927841698313136209790433689616571347086002673519251849586830805272939869964726522805971377818902076779199501337163712722494999131201395924372203042233054415584052488929570461464568839541574351589895262482221117314507089463007172039966765080954403490631670015331072147046132628631303496511381524541450786313733370331755791964342559869317502828107483725298235012388098800589286427429619371374714113075675222208305193563039869778599979898117471302675164128320592059988132869391620324522836991811665969469208862541453005024104262775996473497799851400318089753560192493618837584940668416842987429351895346746270861699851978623223754763530420187732871093669975549570739358602309085809061154505026403610356859501717018755284989811081419778787778792430470731780946974632098553684220776353893915544058501348412020810533211562640578068163590948936064038442911184676791774941830924566386494249736573308689535627958763201269260640981208705355822550071874947457175694910240773890561252873861186589314862267186677682398801013281311157840185362317349641739042131511292298937592962736238588107823260235289055389219662947372168980325953039622028961774025252997514191439616495539678621146457885643190664388139611337678987458389226302434585368450264021697294483191044992842667786521012246854041748558907264734039028883242363038946921604274557044033824854394428072352596426074598705516124974687181338956057320546005763848870943896207605112826360837310163050339879213274923924654255656906761246863274916863187489903891624334924796817119882829993855820928472483612045083803523891058657245536882453746292924111462808244413695003623393596166532856281794504780245936198193820518091947872757260342501531815452395524105988188567420535200524078514756575389214422295837632792952658206317092678018673453953041319146567083219947836428253910829129009556547301494796854028845232949762872235415346790887734972830588920196786344955750166647523702019427949624656937396441250609590303936544735887896131369748853383634650561999361137563931250522188723341352371506845117873870703418390800697941719112378194738185964971560131659116914048574422344008397402598922535068639928546123951637117603236081490749354683487710941300905217005853050517602082567476997475816749583047794027713480399137538280549496275496906218750807331741537472355984073371424187616789959741260706935320466744015854440690901869509841940359259884485870323402880278892916054979143520062083477385606419976234954433441640871235791152285914920103508049717252964250137647591498648498796581066152456198906110707312075651701875169702788942468070115329232153005257008239626616016638370311595340961210762058774399225870163445153790599853040617953397674359617719612352891699776919039452916109251651318745218139895746297993420426985369136194253209825538130578971005651104493819409402066525381346803442647427703393753402435014138365752719564426796666795554668296971690084310031000316767842808435116244652780215120833039336623122704515198199108509765422468070225660018450805887151108920037291349185913173181502933936643398468184001336454350467421841756531153421287102292000302080001542278008042425598411915357132507556850940321494745709950580422150540379228176789626677349475332509519439531877243095673218536505191835860795644080170839703814834466730300763444909982791159451787518104797250519877422155390108684258055885111561401334257183280807257451842823727628709813201214156601222985935044324109563604881954927403256579222980223528947443004818615707566490828779552885533348578559346780630752408706324689477768508105181218791953566437277465418459770815252564400057940169588813926586805765512111854269716451538247967392774265893339517030215485877117388404239651717915566638471908020042835397676100867538915538673323323478678764427229394979095187835549896369774512747086529140369902303274401621416403057171428525894136764477943546093667400907782616611810431074659194452653758578525956493736964241054235533867722440814506485719036298985584926479487680297064757776348846105110788884304205361681195809861082190114585707830559876560031604034857807332300935353940308695521555740456369458790538729084448898688476418367757021439512535594868007652958859978914697292889517130089002120041436595034751131813540662786382648335192768430317446315352169103037744846389607034901947484941662853754635924516879221078537590396969008153683929537546323017789487191283514467898965772021204170217298427272983363142711484444546995337030380453616846743653595330582904595955824321860889780975530662091317485906796336680588734281048419058150620135708317826983225320739599449741068379279597094304474904956128523394578237371970675559642782637549174674802548337375286692995378099231023486798582022632719169972383231919289891433113592636090341626252532970098227116512761053918422852294565912480691966624590704652788623313466719562514478665752458064682195072252757731517383306206396544976446916373580014778363157128726437596602495474492514977926454080694373836901408936119528623002129116029333975445497059142675922819179197526776381645123128505806289004730495396923222739007649553228923944702866668562923416128769704010266745612367458959247476523280770836040406491815717247443768869404151122399665726228600567750316531672136142106910010478335113797094151144337552455373201086703904692836373883509932295026821575489801395104904489085070527193752693633101596744404103972447686791575949163781430492148424503831456963670955676545266119763332126109762907345163003663412281033883751000112556258173721374077727957865846165287873490606059191275799645504526865801840000520270564090039180922043022938038182547539945085666953518760244344332766398768466048289081009770229177140370848104766001058285214396969577185981860061950260435611954544239104522005527159479355950282597495867738636801360424744000076577009591503059620429147317488924121248372126541439014460044120840551118216881498315556201950265593046485568011087906268895778512423098499824736422722706255869961865530389801089974609121131169744485130482643638779527831629137781183026140412993271816201577816382351941469524004125628211205475772745661214515969976206218138126087860926813046987891759580736248099754887377627099380827282349984983341691523036940423393900018020185812185512172589295629623512190100581561882519597509845608080124446593468240154775094379104170256548837165355839486652317331324662135568287875880430624902687123669076173330487358147272232316518768752993226812470112644827948539477007044536402752509994920989332863419489739142585570219243118976150016336799449425314353204366419264847953793257405891643694802824753927645929264373098694447382393049947470536078788126862602027628149311446615368929878974991641525031196430008570880469742017409483931328006544407535522581833067636960071802390046225051451832540181850255504458490768576941006785702153091620232506166866655315953704240724977700758534322707228134092129947295189083574986125041590776164882845914932533858567175137716493169263893873836228083071246712811642558747439370529757450094095663678485466234466009100937494816919931294052596696373299404058028282296755426579839084279007615878960463316184212174708069493737569644927942021988651991378622804379898504804953005604409890047357615384728711901728266598389855968809081658410271761242719835246769354754365873949157080823692366575265720073791504558303270156313595892872684102426085831342868623848586193666836104930325787874071567996387010093190985219069527380270427646508930478296630857134605178437863633318900016418816675745564104567153878665468599769139484411515202873657657656584577810000950402814613968845758666017320032854370129163032141158797054468954660859265123299312931964236443668610889875405391042891921883954397512924985878678628053725334049855941777046260343039442279636873170942430821843098250259473661211213350117968384580920199737215427801578127367417681073345451805086794091434300533177855143671557256309065486547836975626051252605432769052048613230118069051939139367751590403216345897897808779800252318634877773541277408140569502174586845757874237186239426451918724072700857203474457178071230420503461512495092543803310832620754639994134394600455984342976622855814069522008243362029730271285121848310190732013512552293333125786542075065169180572166653266332715411664480500607768478961705233705287313241657148234668342564804931767228459619420418734314301790803794353084962323173960652477353180368049886406551994202314078387131984818389831466295761505656306851633870614519042504748951070772148552162835164103184756603055469619230754384340731436463622991281702946569725085006588706312165399056040900638282924342687011628745236751500171626056640193814967627578039913696811658387747765397499868411247755708435694091236604979209184870021230105425899307592734168926999108791226248237021425341568202891273121713637614726738178440412170019053280800441309210737489863371631894942436216363441817637730723038670459188401865103418098550554921683048538185301843862289626420254206429651388027928958906421787974311770571874410149567288684832243585573186575647475803195728169242752350165940595353607102783054831547252428023492482642106590771904369839626598271256406581665323032197298306678472019433372517337346202333680262471281202057464761464725422415218812984543460791336123700945971882140127419209103154203922480419909856133346005337300380013045227641796796941306390095351367505235286527009009215392865127688535503197605659585106384587301656212091248892424245008725390332473091255863055111148448253433594473220390738030791124640250576681247465386299224737968384271490956373723507336169620704063730712438191684365508098280329357757743636393012919602901648840638112038440516951781351863405339197078781085679526837622821964595241550949599226036815782903225986281810757622199445347917508109411495159863793970188206707316298358565364323491600328050022309689978492513886242786358820266518053571013531701380900831360410164433124630230142127584951628946339978174079303426186507238818578808647439798964802148112504504369717720438573952528950398049037581813795431644192574187032197724912521126149607159831600050202182579651473976490613856700761875819003015583067581415229438056432179000212285908605392291997885478490060134078720528376290968478490250892523577323754958684391343209759683697123581558602667708116788386668792977940810643985523149604927962195686954624319507613197972899970075287462075386085167513791748558613710943939105963542162578943261161664269902355120764231257161628512726994685954298582882139816889955935695292237527081488782111270041612207558589651054390372908152670091632993646128075842078320119654840789969035834796982310626527373783672776458964578576892333655851332673285033832485042135884974737332193190279834875351078899000724867625523812904733166083432749220556515075238998258322439514604846882171531527410085441080057418490857576561638698306515002545111762547139678969250582573731681305098103917123386924730803389754090525908144644195619504162280325441694735494868277219674142441729428825233044580857685798823298377298748973477978324745951320147747674078777056083414095427505842998663773518358059916993095557594558758663526148185574185948126739848964923169107121689320382622600371218067970329404523348403450304013423427320968360166010216314832068809393939347982585873519512160020042468797768398810186414829784212505146263158238685172922205752005165682035993584468330222949341406137841013222228868418336891772489961500430738425793136001075106913141494470707648935179109916618519228918897976332537245983339913703401235280703986220948007069363586481731112027318380203359318537758151983895811106448953907358763680775133946827878060287985659883160207797967144371069467327178518588694135112592548924692963488323394744972593299503526024184975042027340227603503876916785578135105797283433387420680282422606319270067649395621507391795719376495643665714539265249966426045647859460029604896931816029177814847183761878428596477263344117567925331160816996487975268617060350664760361220512423947803192057065736379566642614198911955984002337889166947137210057136246842075250366634898444314640002904282916512308943255710002613726973049421265654808507237441196669319918365834392205710871232436110149481897878483407193868541963041638215798367635984210143014008595586321367096545825704718323983547665813939564479441027087138890226019211826480551950247905338073423563968879590583442448616692653146559985529425862066124042475525448626378567552717086777451716701873060354377891403255181744286906824427049213246698613521577838134567121682683344658468738952990648954994253276864973013107978942825862324958470323560169544315592967707458789640604247970448279168129884523633743310002928574362202941497591644644594308935633096094409141280815936267176416485331487483031889248469383492265591293844848032138641248418807383047090311794516210079123230879248405084335604955899209492809940961987983053331450250325812106770275158273844233160421083263392744044048248925339866874353362700276538976748845995209263984373516036909125131874135178192296323165583985872731786261767660356330418338783264684228413692384731788149395029277825360605783034033753919184096604198520341221330131476315411734123838524523623147684561957403236432284884282819080596045053268243045846138003525022295708634873734626685258514671498753667046893136498632607927377163624420364781065980974851934052125237342938309504816001934664769453557242534843242042923722263595881671861309553857909882149265275771152149158473335510933668879931498686421545933970868911409892537992043089904775439513327559595182820923132698908094084432572883272727770852458612938131186230360454953213376051266308714300632772813029690408735705933289534175180211750024365768666683859339158365790543112692851635960873716955495955651301093138974913323013129318468315815356646064137529917283999569637341315255379873569640770978223514675666172609114637922519695547690850535011219685322436395356816882854945548083625563077288620269809568230444650692475060470658398330320180302167819556362342631584273862683207493306271539464850004545482909166110898556164681994772849285772391094408866998080372773780490533374906960576323665125366652647616756518388665259195749681956944879544164419591636775991869707026271037933263837776196322289067277805104618327216165159080018911428653627507830723673468364917728067905138387998898184228359224683601295824239163058662433020272867619578591434313945489179098724341213617145816546631704660505072679013938453298819094149327951927010545594473768032241826230399632058182161932420946841170053056134861940590045638006433306324403713142992580425094441888369249728033992187265307964220963635961223862231778296261104998628927330716135254235408894114699933685321540675291811495709804532051355694882055477656056180957975005302203643924089726201440940382199269422706270680690268461843682830527380495923161776757921620459740695634311561547551138036894087432518646237047489808209340165205445370326623034020470160750483395834679752287576653212440915388081765542835050727417905377404342936421508777460647607458625707077125624116778002819436136497811917633606388542627702267821754920483959616051493755443107089992686295182877931099718997211266528611526367552465213467727744265997312690195491780398287310944595754482184526943822184589220498656185862513493974161935994345684109236346449247034205492127704459610954824763100200336940930609099592351395305929848904566100051328283343972397011994017243858900250030875131028606947083087535471493495282325145986601820089896657595493555661374446766596878224708124766883703028273536203748600100751814460171432829035154686029049770146273784220316357140500497579984507018580092196963814650890973741883619400284461709975701053353903906292529997233967396643262713396104205175453656718029908163744762639604096609483014021633314879574285637739242576053848749250414845926293524213149707362567863969411115789701396059840637212878948834048216243211534173082168731922842376359547857075749218172299627931281829257660273290765987552972719794680295529143431192918042941384937312990126992692707050536614074200932253224030330495979516587478276386715757811180036258129439493300444745506802939788884047996482970176777360277699401548075829683157216562338121544828427979975367359080013199511796412883648356626419057915353383850675366247977810806078258938858585003855822137161792822981740333291602608359507192381134792845843055413045933963337336430242591221410629815598654202116626558633153680570350529479774835756500654644767185369381253361076749444495818652687937348807991659174201629257347705439039450613087485483646344656276999512691597993510158189044746812987020756876667836206662236857387212019057358037026841298015664147849406402682937387651321795052591713813472873615660015077039953941788697114083169975138069376885162946458871818748261185846019076059455059080300590993003521553843383117837922878495783639878735289262603283322666904779043485867366398547155192016926061605761206741717380116583919904576419048445775707767933174023544623438844805414553754360827983697885443359656191134535186008076844605439788994674787430348361177421672860111390772144070272439182915171166216429712323258724063872144603736593503602682113804910390226607128588861185559155689158005467546513291857425392077652000807818258040649377157254493318515404110411212117063547632838341453623681497659482274998593848226010116448073692853803582199480672336858082868677388259095946424012715407185186693351642083723015269194247559616317019606438245699984660355477346246144176694118706331392129097611521406047335596437806201793840780954430422361020749754900212509947132093072155015188278726974946998384994076895708807369338029283994819164207533069381896746312008625203158996751624825790027319894308741901494638919184842724210004673503082219782902731309751281482122895017874657491063192908922274027586142444233234962441606547808338169205887022602254400817730152839198138836404666073855962356538018914163717217660599352369195012370770466590514362768363658138526625103926455745046382198406882824545397080117811118939127520835847459121491418302625989486019290273502248297858512440572161672983374858174664663563212207545437580886457658518673314874351881702456561944908130913273251595105081454363412954784454646362380998074688109475231719572114616472515694501555520810474179688716312548888801638885750224829781673758297445153855472688718389648463664892609178970878754194880043800861308480365323846476589121124075600858314121255601710442645324313295276171009950164100363887119497173256369325510481760662056272510225777793013136361871693470049687660755983177889189191614107714275409601520202918334307681036702202712576430360128803836433782943052498121996058520798903461210670790670446073624195603184912185558883165079836807843032095538648496718982772945394341271097531324226118337979454504067136237719696616200081482093816733941247300342453452734259373589063395006692776170106605542278495728537197945429179674413543304106204327028843241430855913974467504424592793581841995590496113109712021630112788310360252682537342256382839247703787088603273629977364077399444758704373070208418638340402784105344666766973987820995112367945666876701861815924534459625946702667882353110796069106571606651100468459864508231880628751240991800230852605496644944232826716664129799285217862187387087340600326005529594588976324573148018222316312414513494391997689819954154381026984632723054367906882170898316899340121454344054206805949417463298456363482582750245178561836842588765829495101033512322783171816385322470758692801362054490862115480161071301221922598224917975514100902470500672643825225782765714797248843319510733469223859914927342197938183316606033530491809171448940138807606143844136938434126592658679028280940150541926506337142914472190083879654447616250818778703502565510439644473100852626158621348614475255064712724828747500145940382910764166607604850673464497560317173749029969516261240520713515419565273774248932565449324053845070343169904447389710623495225538988963582156358653364428321627134572956187575766849700472489645431903708357302105774604913100841858449105136031016427986026825061200261422105254283749060434308144971456448696456606180201891610879607164413785475110163255051966767822872629141323125413077725013900403734266973035977776706912377058097886508710493220993166621749661869536737220803465990442682733500533022461097471241385191997587152552162395836430277976228618339498497635376006721721045516491687153230471970383263698656344217681960292277991069831363318204621434081899584409050315562374919623011143557517939907941445025939676635991494028492247927801822449543634282671436177490993333746556659862699325031761350235456227407096923490205594922139939390399905316362730901864503272678583241002289823821292241797298703200449897776872859584353807894156178826014404524256477716163847546831363264265034270900645281630581304867394622078101171012266089069397747191696013045619121058918926480136470153737225131754414838393681450239050210802491183485313192551335426345580722907543014896874081556265068251738775995957750796016282729589969998543123029847083897555802312638868765575968346437023270655851570363303349363234628642547858380594934546440050661062946935742952050638629322044644736575476378821986358524910402001751236474098672522546050122189074800776138516346464469884401356585751008296467273276103461525805942234234477490590459799464432556129448120526798117836389266099488558594561716695950062537014063721819557914864093221303651165597292832643181783573009219496344349427608095451475413113854971966772475346344135374736748614763714802146109055144701674634072169011429479259833534089933761485858580914255172745422914108980574531379209933502590851077577947995484815889776073880096495164532394386827922633674330785523608424181156210151156260969497768905844605007999556579835947946531988988789597331636652864111414674487973526735061250285455970000771382322115506834404049071536021016759575455147929732013873396122686866209877883313085995761439072152727952382964449089030174700726608443487390788828214404290244366483095286383319768240072848542892462392050202658546690949367009717971780797808368461771421141819343635630957491060039677358259984247954785635519564654262177398522307980341725654875812087078122094665078800296697840858871955088584285986384689230995389635671139484900544467655291766139426937208063992439851072261822093198563051233899163611903725162356258388197274240600165136249842418333604619200719382769938827325352495716181790451063981080481241100719162743042936254473236482328356214127541353755891828227916983574934538742376747251021583966517643489058491010743619307785892848481397232066192724914131419829171465845522311337118794173040702462352190742413255927962081088795348508310396113786122760269461450709020563194630926678764916560913973850459929668832832310253111333054114477518703356175635374369595190486827207313193848773322145084043386962464529474345321149139528192353079645183997967404667604713338485062076379311997534465913095804856035384530683505205673283877144937347859838682398870313106728425805307896155852363799715900798360978442765206455074453401585629154411044573914601948405419554310025036185118002680424800459677842157456834848343481666999346560696277390960580377034740383024692795155716851054859474727578625073522741172594377685401764844843332768774387157679147826846416878996851337483244227858501512730015690499679874808136878377036369458915319887870010566605992448468716693221728170098534509681192941806237812749108312509372229085891586243312149058325939140648128078937662985332155538291901428762675241492112683943071343969742561723515301324926522147812392734442393072733208414736145308501981570064408476368966101864882504116748293527550787454218354982700056687881553313378826131793337526756695767630806521492181897170823627676177280990473677605858169462592621140568014146417119798505494124799088939879058568043099104587374083024991345309724474911552411328761251981398708849580088459149621020519577798810636563545468045432768369757958499182009155794894163387887441251192668032520116186990374066587418765960741244571255958912141449563706138065705519899216735736721296390492831130917709283666142055966369583860148450244549394605571645972471463600849294741208331697357292513037684292193699751982080862429137961483977523066251283847357379678549283090302741395015171563084681425278896223488370180195530590837712549107032425765198403524784143887628948992709600923008674238729678231851792915212937478604531665755520011434826825536006881952439565286253167699272253049877827437728550065530442296786630227736136357932141120666129649291378834947093085517159936947289951716317139558442131471907046733340781833200870959833136596169372829309133381691698924470060757735755310479615158330701538444921784219305610233323372479096986551712363609786022568966537341826701910122979639821360274531214178243996979796981441386482241866000171575133261527953477395732749706003448526019054708434206840290422142955759346662674886386205079136141447956666213560942604588372059961417903381652561091610212816252983238240963101880747991935012219063165629859031125614384044391157780433740188260418676445749412822406332899620133681030242600076362026840023431114439673465023124274294632621373107027770602348021477984504233521084108592851497881539581244754053357055002096958688846962696817367487111736847468826847948483018969667815170432867371435369968530944931253786854968165675384036746958987779286255291122345920182252843018644094894212520132161362014201685688066187310653414815864148889906745408932340491681746032140107155208065647584425143661013466087449936904132672125492283519318434398482937451702443054803139595718702963754035700064975750560014522087011480804406730868657678995842107017691608620801552066342324042772354592285305260597120705733031613605353786812636886585476760040695932204149393030412107284031088009130555285005714008607038832383698613577068263726474226413369758505315176042888766879612201792593362952518437658507999934261831013648764966852325160009671443046810442245848396787872152715683025331891222143318039488690650627184640375062734743339486434241055569142411765062230280413737300142185971054177552349499252008800717353362882702396827047443141022628672799304889004488805920196521774635976997698626839984440162528078607867100937194519479058224966826206550669243845132019357038966769201840414346002801971936177793748199118922414302657786253587894791074411541063396658146160220276016375656851851256590698697860770367802109833170976170027951325970381725549645769768483192339481627641005338290283516466339918287967059261388213437935988570160586629672853408302193739704592642017569614754954745903458234104979790770450852515917747080260067945620644691887678594506682933453880339083947604143643504875218608342150793600538240828502166490502656696472248210472949134710397783390705751532598966865955459925980581125903706359596715584239897365755508130166890415239879866805361838650383322444379868652149952694468079204033120895210843088620484054134181929655136763717976198326750471134951662622775897855390521529611344095094606330765814807218456454079921775025242272596279749421389307802089045313178333502080071920695596007323165931204534597325672034966939731358857679832220774817033602996426534411648382752556649755734820125694774258231808606075867044074966762095290796075072754347242708731206381101946462291722772836769042556567620906144500185347491587534696703126166341867858764487000367768268444209915520226812706330591741529777016334881065323154674197456948519476789521280928323541984503045431075809766610385468743117765602719955326884640720632564429634445269263718011831546970808724976472725573544720895904545119130773639197738816321227348653507485689308640682628583531439593280596514468567252994197297556422264522408729945867690739895837291784419558351349971011122351310331424577729779526319749931315400528705573476259618521441725762977933074204263918394591957761688010266194364884220234083705318604309930281284471600958452974872312080946461348906989832891124520186866099990673926194809662501944567421195364552649615390309555550288455358742105678779484503583206281637548771718573388629068713974152039873047134954244514770810970471970115976425855456534586878182471216523072959728265199288775422134661540874102313329960652892076668703134384435262061711008433096999338188960210564796167931406032177165489313757423942363948724466158665129718800371310366438869062221406911461976574325583640466049882149611175784100272982854892033708534166177432812526221894588556528813778999105189469115927607318527707617979658284967007236046044338611521565501513213383784009140340419175904815681245749809210670461356599394163120777703673197331681311231652978293526049030554528185679406714331177479424276820063351644618248589467487336450530532630801108699604022556616223998725245310119593415013451866985109382726381032808068010466911828706828044399889016607896744065920715844674613645616947035741784538066628821417897636028609528374408004910594489935451099259485745112923337075852440300553624729870542675199915275606206764875929748073547994529362540907315986202916224170430714539711115143017196461053698412440726696835512838387900574851895778968762811251566109168788304370395423041237829856001469023451446177914223555402659039228661414166067083040770740996173047198778352365309746950530955631741355377921745382084281657774655423379826821448393944188113821797043943241277089257689718588867139898059313931252068831210927195871061023841550303173234694943981351531283059774396671691815303651782227817718467014171154519116847050987034968862751067576591449614091882447853148419693970883996593348802496671111047082237139614027004910403413800319602544793241904771326142141726653185693801057241828043726919750472597883614968011330863926280258837842460573156058215890404773736743963584927665735770801848146296860287338326569456096374088413190232563426159171582371045198590363201325937007920951660307576459185725685555632324314133784453687353217307852329980901721962650435421748366168272018096952880807473122900226487480707345461538382750565253783997581155454937321268183345738377926502886393596709104231334974857562736329814924801970453638397677726470127759813895710199533785434694722917231280535325393100024898084822548374638391522714892336966942884890494333127428607034215337548887860400721114540123409292177087344498534109955531006515185017187054006534338918522799620362481295150451820483996742632389346489774863380650415833726267635612533649271024528192816717885456083679792894728635535098994733256045282921272125608298735959042911478730182799202611109299058897112797006537020911377314939621961535474249499507515545597904258113709142490202689905376906861515642249110239467021182296559051985009856014432067396847599157065449233453644867085803855889521637246305880580298163658396957478642919650514287469767192699241093086470688246107448687421353434295950442675246834243678005391497877441728239153157239129891677689199905629231638181064291749308104384854169246942910839913362385887379442326002450227883958914807297816565100340062718720041751673776365401309537150727499907037068746388323523813716610874696872002874333660415982028296715777224433225587586492707525322180716509718743243821479181273776261775244264206920719266323918300589103705488320633706774606771489011322622882142626608218712085638038962022813239134057733012556762179332995797828185099382743701686918520119576409901348510470475415567763650867199085868226961207429807040323892854077316876019764058202349177909785498389490540912789739766207520550763069761476173906633690287954484705412231635844181216105962004004764431438908281709413599522081912808634344116997562752818874307501541515769550675693080662070742425809494651570551700804312907815398740104047003240018477054989290166635037172067412855835155449737552542771937582008863080608365264216857582603871421865163988607455057199441955887756769054708567239721495860548773648707416511471111777623255169567347139354957374514270214602061738310512487034579573805364866326516899954056987778469641521106983255336537047898067560987341785769914071302064683759159205148018817206582593343201622861656665968373375495800713862759192381273461280312475032892576319815516358389585948686990176883126436353870334520358308067589167339394252980506703845811435617037820684264888638673883147070390213321634028594769640245715770574842167809828599173725272891973621390523474117919485534276915531611430654998715856168008013339538470174145837038482658468722643745590185126897014769465350017582617695671757704155034106416825347302040561376037208841586552057873732122347076305233235231052953295878900529027584047203784655156977799524353326416458168513329276308334495975340172427353971530403533548941716894585991133235492665048101300426543130413915092644001314906825645436312181923984417377858067626792008485092973865762473941558434061806574700383901894607840763856016345775982100001475870123988869726058746262075298997538707706645749119501534920901912533403473792188587426152273636625433171713429517239023331790647581316456185315526856519238672962038024881564469984477022801272754759828418838365644636219074958324933320828403422654205003130113853317389740697685020148657183137494470277736479069174951342944715534345174268146805819171757401714249682333307206130697092216447093845307017860216874962811873680361797590249475289415873396622945901268496686543017611195912366386294443306086924663142201023576939533171866579750691305418934546278508938118979573553392551421591206280765082763755343181520181779285781268753386715986270450855529511363239967796295556973965291777910850890162397354087339997907238954068922324863533243542891484729416896907264969940514755209566772316705742190667096289669235134867863097374729585652997161622354928885995294504221962420504315439696358234046859953663825969931073943116273979503854768833747399193189392587741619072757829640087583170777600469976982704755457120533758904762291287211904976393686493741635015244416634628944940779850889135227592056707250527414361378849245626109255882722672422704101481609114940385647236168173812188103099149710820522613306292656928221843635384383985418565836919018456094112321656703915850286510709718638392249397606326200263642024744466873882997549137286645773187476186585300676722752217724903592270905929556904216678832145569926136816119473126531409826601817848206155335993251456189681879443861514965230089367012238107036724223289703575106806967244111529489716163206137501274443702302683669744839669286135238409509037673188656700365097981477335060672185892623248437490479309138094560822406453834202697073361031177769114219902937636110455478713264703658911408403438601693710981917881482389366033995911903346434405680473816471870774585703383207214015231047915366046387102647771650745212812257396184046583030624971049130790176070247372738875126863445814813347845867635280218401968227358989942903558657271539012501131639213809344011954437119295747864418585015936934608593273481673066003254653146825147536602687391520799706984599947052152786256050489957803614201055139612895226927050938108905771076672824939692272047780858110816891542077786637320934386790159687848991794253434867077844640671073886439160986708151239491410423422193486048112384570964936141699800746754257363665325460147675016892408368604090389898131199806152038781886663885948988004043514186464089191056752364950468884562396635563111414946282598955099417615520747129449934409149662939168067966416522776976600718874005309534271884577406870715994204374875426763325608612004987886184927247380954942822250117641045891795464772764204786002419269094787898732914525508327066371447545583437872481275915988173432537014784820626144685917156295789172263646994826017481277133008192923438317317650480661404015530166567472495764286054635468693493708560670294282553638696281641981746605768497115533245018056597951151091622540322619715681668031620486206530820045352661149331093768567215491371402738785361429831457053292046853423453611838845395493922124061345826873190217365000250758628563968494335513362673382852066575648594595834270964636740226112709519769833046131690892909660656316559219935456243154851836017534824088934641131463280764071632549628328909141021130410186878171173160120334841537023444085375818813668640004803804700115789209324592082597894866930929030233630737660072333773630920060795738195971876608465642333967130391190173847298974002842548451340639873754848840108924483558007065355086689942588895513356028137236884544881531244692450782616996035319109687409096013032994789633866562490772893295095504493591522253091679334028315684912828577911468318657110300221297858510144238609468377612177741304827876693442777737523057359419175394695247757426313178870897005499893243480611380706578629491291969854782270326267380168436310727918945116385744528570536572191545165607294526559066520381490758557667578174447612198848165579105903284909287481718005251263882464703602569560442355215337401321041379518049998215272814658526131798633926553857297513764426017705979554373654002611663008174803160847381836846818135152852213702417135523416163086172966179832595020581160152357214061000877992694677246812632851127529012383634977527737800727925213511468485401079025482624065323258003016302634921751275706727930749063109261991733276609040231402120648580235395441727273748074122311435645241832184929407795220689142145560157914241335526027486155382536091895604252866874575056692718273062088129172080235781348619091296884991664511304202695741221614828763281832258700438431725371899736834919757901289212744503972085913719208706342074816654183828814677665847236562346647102777777678210479129321616880791526121686553370458427218703479904116538239836104036655794522375274531968228984865858319996225048992052352538991509799777225947935216380296956434708412967805675467105104609769859158742185352056915332210692460042207542023325159296632833365297344566584207859090803580839052995098697684756154381381507977169963968135513890414639556333728735101764616083804707313279747897936617297472540569131594863415155706151553588316188391326560699819161167121302916268509134617097932328490815787274752058075637042475053946487412428189167082134839154773500202060729553133267686620677724617197750277241811628541968983820261260728405386723399843003259103614737539230372758008834089986711259810786304716200647656501328021121611657390756852129192012852082697693771212961507125465191835536819491420010056146124828511943290581881959657991078790743328058699067977852199385585560151163782776519858096184020142895868059500160901328373220256958909399439668127331433729276508093104769826879449042461357293537920566946970770444916889739465127614219831481989236878060661893773843694468081283930201143704979494304405490441727980254606676635873746742162502489286985667380686104719488896266318363393878571208341998735965677482285980751844494238592431586586592118793097188766660272316074084387950312276296747046403472410109001949254618065188404129963271810761875838739273488578404354648861605465280280768858658492910255219718777209081363918366765595309374148879888906533650381023563874556155044569637903491612138760152647319566218693970113106901616106192099404222010181545228888275262840615763795036002010467665232180045793331513791750619572620630855922155025815025345753414232388047418552337016109848734678899543056965296824897926720905089348681501755570804693575578873287244863159645675839077642571055505464456884853453388807949934574617064075366103442936979590642464730291717391372586330736274116574685608317653013963813193831535970505982093296139353787456891741257957312255014876382351521607358291889047826558860582918654046720049541241709576771127934231108650647885434968931839521063851404243126135865022443667346782461994135456430147565672129245579268148868619432409796258673934042310032487422192090750702188712995949933308447058528429795310849478861420639165055206491575807597968472836807865380375188607719771693876004547928213434521963353671464567710700765733583621721576651679783073248649482856447780004200232433008513265808854030061411431587318589706260459474297342834198553229857870288609411850376735788994409391203728576848341826412518968614837071526154545003299690016751746087315801277763612797045441069535152139126478067191647602856976441381318941640467856858298999703624862649466519085750081684285269770573808035805547541973365701338419440428445222169991228166055465883797767627428092475328083844707273274413741679813365056550357138173759379850052603320187759785877608399537972543788189818088916375907297580749366918957376037383648514994503866010363012346515170596371980514173537507973952469545263163114640095487862908079955924817147318556781410097989744681253446337664653352248085597555515104653613614499679950877146098853075424443164417776331699172554949252253881664363165702768638115065579718604665946312034036777511353752500085425650791947227031151755453664688481708509804346927257754087196735891621308850751975106563820570836498527867209307201413985690104222677061978999085253697581089616709205970668508085091806145142653637956493321012740466798202805877124343885508492955536303255138276326815824663609364522501005007053696368268386065323529501160133782239592645784627334141837728307997224579388626032247187216491467062973731827591395120307664126316694490146076668862475175205661192030865966160031572541703979706275904694363740697971263136378530916803648993004981263508494086593323204897502784721221639897549136695087294070606677470662151155727956811750496006449512862656278568681111639222252965620255919328741103715263782204740845658304416367449628021227236828446190843862964822631557383941242349243701662058979154359327806519383283429738449533440214773349834110778962600409581651702692406232592751121056499418564081449949898179287488564995701877783566516219240493334326224305260521890792348546462982429437451832944578573031484482622378300776249081079347827706907471511586918724678165342657492937909910849312103416925566128243667314387270488447621603442760906265858670846504036173778105582368926179501452875811085774170100768655181358016992196085507892105780565757563637643075096804619848935811269040198221576544209436843358668444600028695607895340378161195901247324148537534651133325781189266586303662607402440569312319281524835404351435065674752051618736390347484337606191819352418042628663097101997699351426686248423915754447849192382922355684359244615971849526164050931462714571110824962098289027540104770307391785969255238688011555814426328712320176605051510282889404160285445687989504757860639060754844134244599185903051926833901178480489462997977290009027050812924007723116309742526295068059106730052713963836247297118897954103952746368130361491035560367243062048126484151981567810165419318600293384906719674890449406404283248887477061698696105910182830473988973581343771336326272805185314995448569447912970763421366974338161345178873853770913475291209383803290462817925752315568426574641375957577421648623376167339478862760341532969273619611924603810875077373261430081516996747882635819809654580997661836304143536934413381805736952353878449164003258491785959134244168556714876798199008746544665199491118894715652960116078229120658085604266435160827844411287363382258528619673256975811135366767680784698279658002197555331574653467811491569006999564932969997958265079142187025989468613537226824994954354765563999064585651706011378919177832130015612765986363477616009404310453421606750107271761252752297289154979838907673094094876734381590319782028244545332253203638470902100830521126838470152342505427773054436348841655078639163279812248243790539208961425834066814299776211815071517895075948507514521033428099810466385188452341095212066316676624669924564959089094886767659599396456943302064416083984646736746737328498402066599938874811764267768550775182835286654538125622123150982254513076951549931389222023437688071147890991324647078745257875290731916176680366912110778690535960575599856659679796946616835742781657071868432949961813852018561241837213201677561351592347689614531568502352859222692442777319942649021174513967802412377188902149313807031735420223463140541567563021787549053312565551246843798958367121009500637384526943284601407456971724344661913878508785122703635148382515800249319821663515523886810083310744696096653052130565054745520615670408535462568872476975976133228066909400501874831966182903640813635327021299261591546280322760359830181343159527227209078594020806806436965249123460275100627334556934248240802106920293502167720394440221223240683181845003880068545993176887133099582787504419741127948224635017755061599910414224572083410998781644292772718826637751965919625099338335514097124073232152937671885810126973794439533797375967808839447719617694538643697719955082297057386970333832424772519422300737800049716618769997214929038131133967221610074272173205344875663912934168754137345314272045740289770032571681975811276990132426414236229766072865340129863579586516377704088396669698843009835696070194519460891325715656598798511484707703790495811934430385579690110789633145416553404137155763545296743170789131212747528169008940887704816723090254228039510173498522410987488599041262617536025757308632987719033652343541628889321998450309516810235448451139906419875396236836262943320810141283117053387279383843582868123685580798108716508532300800137040927978189398873232694110855686134509214654463290334958121683969943529138435578236335920466314796762580111844951462059900895749435497555048147758635754864571343938238182827386985750515517573471320643400763096331377038189445766016375708806273087578983004845242956866299612150982836136470100638952543935543924127500541211026384401082648692577108471222036712575119004301051674321681811991332917788506083185974820216249420149116592165502872681541191469102332761209268393111530918766822317343103737408246134616608899871122083883503490679734896391115467500225412065442385432390530646864941199413986058312078026507002702025262172859941541141851251792038098948011607788333405599779148910093228876824631133705407528854267896782714394982223640146366796776667029743658550277312682529200327990530883268696566057183546270332957550653259531096702510834921706104359643605660696024374262999876835860626959714984955777870705279068156585195661744416037056631556063116778236066912976354584901681975454292306033432082651650862993205721678400775799963325778329265881612207365820230885230918472333535915772207593109480826642362941325609261149669995501623412931986710880254626068377650123598576644190898124805094029147318100085172684605341192203255479445848693878151877415100281720370732898075461521800910257470320517949090858772280785719946945653585592341784019120295482604545907212503527082058282917103613583780086661195401481060880765812529569095387983268944631157665878560524255329312355684067634772533356596261695040947419454722911926964550624463905675836016852490129672067503533092973404821324183301863628860653046700351305051844829721336256288128918433214289678738803343248693234914966541099642121025298142938657404718024079623424506555940765943216885996524222067331645671943097348276614524445590401281328520975305595139012017483509884541751916723076269502853978163799100032676238605844381984114813050276208476323967778513699470572668169685132634825983369891089774808278459592921802564137358219696387102649963465240000263662195108074899243990592106650409128735346117948897483361866726793226429147251420683228355687912636239719870898775762661610939401555895589632978346184478319318175768550653067142181678353265518157961271218547594676607141810365005348207725183827364386386178969504954578366845231046513335370051600371082675541615214789261050424557227205310695244001434077309743401716835991350619028352581283026579288937018422872578345349942473157378318583850780509471068854209131916875779033264222639841692977248820751563104744440253063593457673801736339880596927715502565273299481905116393415695288949094102603463445479260623999856062674115458858073454814419701242034939992400972389140583797417917947328883272590545438011247702965870264978578245852215302063330427671208475169801269928807330386843803381174930647563155148459986345078825443730159283161114748289360828223456089548369182695916519733936642591660082474058602881055918229834578504921149442648098743018611283254398728767648618638829040648646175722955219654306143007349787179657726046141117911333719212933565641030353117118084044034858440293782834031920571257885905813490236451694153072195503032963054677949431224335790088903710558199115662850308806543612023468387279579277451913233127244192703195330428944411491228111655746192390952692226418769811432104009975481132521070861143499787104469552396748293634156099633405219353960439083345738705005267144671091750251863468545457064938365485496508656715238371106376785575114218653795793868201493798205458100578307393621332869083294275513492302816912274970722477128462046692187003439108750221684856738335374750575322753678431069206892708108667283257802935310333203284747657235324069780972213759271208342012278708457424794443406603565085370534215115382603556071464371759650929142451514895720031408934409878984671146564456525149677811687767645725050868799221409600240565253191877389410425218130833404328715787472606474034396984686008628031435553232806933496078138467570053442949753731337939919718113081611950483276241999329275351940106914132456846099202027302619168347200945058553136722764671371084052068718337213830373531683114637228135886519661019267448298933961462709458595419330518178688218272791768202693073132490752784546734757739111441740238873328674398187950744030003624895272025141526364919116944756624065397873500767733703727108083379295219667746629520668592238947409174146009140085377384305743673237781935602392427429106940846887746799309519254619942635392655298199720690644416019712537634860018547937276022880260872405060746964150132793000931357219485284653725138336264410479603785006583662096724760818056337981409389361112820573361135647026116452624914204865130159714760283552594991245224579579947473600023519671991254734599870498285295714919175304595668343694643244322146958887823529378684557408834593293320703060814313776057237442681159610224368768853125438332411993671009391911837382299249749344872118056146386988799002422206593798396687144259703145601681565877748641301142893073761145130383061948121994912830185693749946865064309420287315267180257120405242732521052830647232413865317884929803826075301887526314579461449361716646363609639561095161002604669351230566990717875527480941690172906422069909801301115743159036942667849935537183916431352540856162906833355777228982679063582908781227784942266958535307870304282985160387139410974161426274334435520762981258614708458692688724859741646594898141221965593696890297319758704657225603992869362911055075577268556310347875375733538129540484573265213795854670272243112309471172990848630272977028811550179670256405339323730713699127109324802483887091481870792735399144359916321233549921992339885497478703549381463072371312823036000872149698585177107715563320405904025917027307029917305246273449539076409016895996473835455866442091701545008569297984243535190097884145331636233225579448116662217509095453383156934170938414685013541704846615896497415247578152260265385818936315670405650652437986395082502078306372185253807774280952252171113182482561330173312071358273825203416252476276708096701135222145060646751211026361627927061529966569702605483241616338011762943755518391229194798497225322822498973453087583809618828727796881311145632388921456170715950786603110712653052384302171696487501256091602896642330928302082275741637803762124869855568986301404157123573113279014627152592746641150169919474259305784382039522192113055990105402524602289452072402065192137586765661768478500167893345486433813441840988917553919665203101603419938583121075260875760745646688278887425517490708260138393817791368918827268418446810085684565492793269177583427973624046734841937697507544823927099655364975043735118740153259449945824465279189829605840787189406708553146793905446502904665434937364801295432766309688721699574864504690866773784921952577416140526906880745223428478184017328677094675178782033166387486713616237131897101374051252193867396481295738644705019307817592274190947033269638980930979341163991085352932484965182709841697861991658162494618180074145561898116615064214703947541021821109740612523369556801206174669354774562001945467240379251477929464648176121384994571993822977472984962845321260166891215087993417202339264200070949454813516282341282067727876516370002848438015438532178848148000901934930691114610302588152725972895927564056445324350583236284426645733702798442088693149643821492829118217562658637428318832718980550910248908231871158978259571518645231659356653636534456692356788990039272454073047815936979603330118066840611054376696131432579725145549836626919658550535456124303248954327536089520141482639199029826031047365958023597170543801288543769314830126356808396607436882866642515622857034372020156859495769988181987014452677629598375107664308708287478825614654886548482515238152467825851282241091628720176335538031198496738940420896343005627146319755384119753895193700238719115864023055272117048156426917294400302114692467671362184554425726614074105028634186490267443828894325248632120623956572843664271337611396679255056420619054852499967442342595039458581829139565159202341657833361441385206807559424623264892858364565924457773850308696560137974459377424065156841881671042647498225867951086886252941738750925661295806981976227207618740482879056862494229846952623499516133299233183277025834880254731467337871408269252281342294573006701877957544034678597507075519322893427623760090338136621956824981201292560312096239952435069448417460960484074829965746271999641242561685009180787653801247474663120305759759885297279738499287160001520029902738030292439259564332360597823318712553690870517281882817270106189034790457117873067827435838936988930561412488368311215673271368743209236320922748941488480144881625400381360373742826650496651867381723039864721383624787565296516327653240967680416567863767303615731986421510674437300441500060810270733653921620379433779653945500153721616947562257398611727390514180819363821672793582456303781522519018537360137904591194606326548078394121254368081290489246427191057713708699123218203179529213211253050336711920017572426448208631221327304220745089751824641996412498518821396828034741822677703421360507537776111227250050190235853104099935144688977883539701651926772785515907415368848651930514309354826165205111247406628937078482877005466138860496509977769751623105702369557059624938627972973117193562477183829491987970510354689306448906032757677126470012352268837736809516397572398845720162022182473093042920679158836108749181515566201521516003279702049380891231780187728315163620652885660804768965612469271415502176704535785847281287581913610196887966395851518106954778059988366546489158764176891184464867514522033318843796935194939013625301802070142230850271316963769805436603121292872737011371803023098716327612684571214898259634340925386128978820373713433619514473704219973896384208208662975889258877410289734933982475383380157967124453667245770650188293434633338802839473704175556570272171642497274388058070076206417723823567951081022807039439652573151483582131146617403714270418187664633532035973947687981453730967016389828793332787730380382976137692539899613528374471917074929180235766133338816525540576488722453084614609227705908604516318177438181159359485937012672166627424390199180911473020592387922621062519494570019413322026004863669119234362906897715385675555886055202029038094240560374817630938256581855770825884310554402208237453618387224550339785152761160222149903345607023420306388168610785592879031991686887460243907906732786590586355705352875438883732520815105245592059301712085982975417097534318905366249661401584850513915093873132874832479144336132416725648076799545919889416369782150647115726430584490160467944703919150431801132462893560121930396281464246868688258331081640222714511730865088175966977147335837535111536872002567664539927083241859924442545812119137972559864909436961008560194744313639295873264266169026552447871466383205612366924447740919229422954406140429581270494709374302767301376896076057345925358422608540753528854626964725814705599922126055356825066074085861062629511925018850944451900522542090660159204941768007872970657453324722543435010057628125863184303473791039581115484648351698777732917878391597351170418177921255074046888919473817637553326614755402091733601237910927287085038141360624180855295694532545973428727760691002449522329725637869718047029595163388088942466487790555360317893350909273901788861182723893476080726583042794646676768230567140936006003344045636999865312953753522761977791817179048915418721439896875907269967174892649734576498471621057498443751771107602543627732003191013897799553418729611355223535925017338610173273955409108505306144067775854343119887104447238544797280541735845759502509442659136162284648478053464458338220631184519249582131449120862568962098915874017261876963513837482663081703015511611499728723120597843652255256330527336023366346465005931283619753458802153444740854808701872258507344616584859516754061620243025629665249326774745406407873901564305483063213791475487238639851169137242428622888942076878107952535066294888016382115962449179346114637859920847237905956722256956208232657288873681505268747991284959938175554363972825380310103539116059316795168661834494427554823596687455952561572615901953194414255878737750613131354984484704092879444161310357610623105733708226392666192181466679309321324215607031292034353064562716389553732148586683241615896991295079723906671543798815084725901937701631943194949282861542797992679087638674670499246304621885150692150522489030234269875770435720068597495391784653099892830032294359568588180412763980893917010823988633764755258159457509455375420031820879843646191191984677771702983522941483153710361399116372519418989554655521003881181488528582808811014209053014475061042229948357546760617197006400835216835591540677319638607130660465460095666313115983605854376331083368007009919965477046881929987308795627245242022679586695049450847894983117833768934693579568993358623518996719212539991091741996110917902518366231382059664490562458778170782309509338353590961302302931976246500894885935901053487697560870699532557297356633788292101075946332619300998868284646446456904705584511441486704705826559574608352737922514042162126422919439936135858879415361495454077355247173357036200811291415975315388932269880929659132160318351108589422669841539716812050130434415281644036097272151420755852916777216874578738288543647403713898442562982589996845787142765285775422169435797145654321647852787141105771613848155408341526741040654462952907574097746266837246088701293689816854729699449200171099697472351840618019318493255254491060176976344222271842782808709110607877443998686271936649261500141383886001868383516875870981146995147216226341819030055562820683245445213183379466934045559638573938499567070819602161097857991592738053990584323921824462209764910909733279071849940034230889810573072668673438187792907024696234715461701717726039435254815371818013058251990574359773766034252726037137610568536739398699784515575565974231415893412203376843455526083306880162057313610869059795738372134386993041859282364260058706665862853623219155027415364380066790819953139933714411821715447036783596036019088006115257458031461312801045046916462430263628753776857137311814546171104436573773739682994941248010373008222665474691682269827679492032347241993977431984937990605666443287592217533868088049940328925036840149329363871240824063000415793473671934914732718991644009756076146097365869064200376758369283998839848031808437215131676710216142530170871200572046589637731697972198112919509935761636851429317668340830319319593878913545000471032664199188711583913094600675872374120639296104898410686464991892570416011308458236288730984081832159204206331200111311895535664156879075864301685560897417889145884670962279686540827863100226017842404750888316095240747274109419364640880609230418149622003644794190519263015667143960092232258159776261528859608562915767811290726340420414752203240012206762852156973275167163562060224442974650073663540813596911215611233123925366127337143335385338444144021697738444141701757903778317409843489949917475481807495611177864766296257962476139047380912079614113506937934637507726790122434932050455909332639375718483618707685322463051672863630318924419407242876560760693937796015664524817955813848505014701062213477536415774239678797791559839088189341302450667171697685918595514054873181757340978225299528075892279814078548220206707304089855865446531976855637979730577734171854059627711092592838308814297716603675709433414953864222531824962978723424589795823159376231049228720362051830242378557685303121283536436470628029207076244850730044036750832673253964209070531226242550973895865223699940085685345471439604616107789988910903181074988430564658878630791313316357526672357478917941102422130433657077220545982459140115480885993155676452158577344802626601306968866608287468453364174155588084334002286515708806364592588845205733982147812399683904331382731516260203743036105330829390814325951465889066110462570805573112069407979626927845710918093645831025716008277592995236826748223675390730080491230556146271394346880896276413561164502236028762701899066756653135671320339161170404252114736760251046783512284740530875613808150429275322114027241260796644244058682806359559005782398354678066197165347939762110663664797909715634786924108649459457232567113072136188127814825796606160389143820985661889860102551308881661550882585858094527644200160631439860174266394554127756360431756262859062610510853617175741540509999492185834354432753865243545248525794244371240873597478931495291769985968598455969586916486072384087966560801729449672696496862166185850289938598422195985566824252263344312913740411631277374466652153458807698342431619172166924480428022654424598118417072869611521621288262198194368347632442835466491989143374954389752983556567158308721928040312686062989917345254296220599262643525290241412095697207335902819198373810484495280185352229847584346524678924877747663386835344232150220745030053139211810799168906423194319901308521197136772816695571472214127836821965773550156774493411931215583471513754001416625737794807499818417325472234058336452706011364501568344995134744813446006725727971884191606119255708363424716648823655271506138289332095478703686659677178123163364906133504553279051467517820636372014097346886449701124888146004790086128439000690253300469399223557511197153737197731131606741113479449026238921356055987990836707511949717669251393848594011293577595469068051708771615009062321001661867653630829853282543497853634753734419548596284765053871424837190399812384159826669864189321967046131174215991068717156294516659726120790271075589274590378945089304561268532720588201684650626284648522780769203374187348324354289278944047918491541691316345506455057134027596112631782753704344443806628895079808300740189277455016377034164045934044443989574319093638563203467898865268758701524647620787551040553993291649734449408069885208231922153206274836469588200902314838028946212022700053429466625251307785681697480798714491514877406036778286482731411404520762329184285686396128112969010246093482379789096752521357769710872619325565242338879387612009875060407314161501344442946502341394677639815144530917724289130015831397258710089845573210884178187394140073845247381788626275405168679666569058864917127814809398178206616297666056408772237712158108330622926392113768183097019517177002975032266387578901876709109271782404613754203792572002474142013163785266829007357138095228914976097130100787840038582655085999127910524622553163590764579293483772276842945224701394313089645518244839227060760552782199000296060482297942212517415250325794262476724518357716727396302301044903951830569660078677700959118256284372675621845981051188597551033795637707562391292818086366108978520719720318235829268240817171554546703207520709611467713129214146595984571895647855931781784406402948636584113871501403717209091041277015789271990767429405528854127991100007398621670093508987663583956448757873246889549455613094604314604142110870399433102149434093349855279798048547738329460719516769501687428575535688949904077169133695431686258508359806196677841895800872795348814822812906650833227266425889838810259729173724706846992098324536021883437971417468492709346560540597134678613894315143029617553235332718014390774774743805015641352796252905407321126691012464751383694516003560218050466597636533378704605417237350581002255096035307057642671271081758129217328450661637831575865596365906060517138891411946165398169719311178660415457719577580693931686112083525002335205058687349020201282072770378390721350746832468924126564836396533325300807212725185919259302366044343624041616150817295679650120630542172961665607314736376040307906924816019119956334237325241755430808681256759537903174874382619176318674038862125511336938462037085144460991190193771866819911235708393666290096290062144346575543977924906508232469525707479660385677185930217257223278381206002016670164648451627292890189812338223818331806470370001207312374102410736577364442456022577206237673493845784444918678917580299696601311439574592208846737555592844408160880452283496958156559733458421423606025587717676035177045195643175512492343045002147263738889163955264418845065348478350121309533445020696953711393799511387085382895953615444293428933000359444748851639913952823471897489707227693252354277038832001543739816220487759471916411450319478662745323665016557554831318968752519659542949687922697600872150311976733482883279234110876956706245920697160083027259779210456888470387494683345129701593552002548515974882414642776401877092590852909101820953433342278948624033027502261630089782079564857638429221789842495433777339315898990187880372041818972577028892443330771346435074604963490241071054329339378829585955876245885468238250375466016659634488311840907185215252378481436431566409049399379638771584368833093225935005495912545429570198242338266285179273941423010216179203469575921155255287059210044381431909065260769210624731978884298233059233175015315279777499668713218451965228381345990756173193736709268064885680976592899032977148654706858048719135155673021683018365574432209857520387151402614721769832804013321996527054831963653181123880083075970333425953562144325630374347606015098579948706648970700032110574027314097309143077345263498990359392069896439970678997840664692595078823090095421122960407727613515370887771671477628176320476438778776386999243847812302979132963684041690345379128912804988235479707657798820505842372661608280732282105692837425040574829185944527334048253423493284387345563390326471433753101889059375377912370386429554935001083173688284009711376542474944786411569203484044211454764793625487838121434600209267021898890820455010597202519102990037911568650686799585861441451773876827382339779955132811537831061592930633316608817052518043377480558028624274600143669350477644147519496878226335479532033825759132874771031584597834162177150711511833904069810590728135820849023868430465275734101817528927118262513311081660877668200649267460211155571033636169255258341226550660977364107411346445053205775106844501122542756353860355254077752143932082484678117095079261683193249752616053714754701950182196635369333523177068664140763201467533156206159026668881234691064376833710698697487229937128915107946964630279155417167803216912033274956518932611794116659572443228903968465881966649514575744789848162172764985065396436795054222811031003816919364998318321413490436298006660078925293619003158087178312224814168842757379236540459546836518180922770699558674689207816744930000680158377557810645008876198403820558606758261984006907786489191525556722989316928788051489214473797780036930671400759869976280443206933527417819901607027585269399034760195153611890345315446092296972510103782327357674166085397909752282841969589993466496750872676414224884534618303390710821304765582468478419605122071351577067824615611069491808794000240677650010877618970825009466015489201745464753455199357036216839070469582291349972982583534938301593676961437430446827192051032737440594291463626514172850762064019538540426404529564984228201865855944965873754621813994825939291834967598697285662185253132267277929933723792142046965872585084473035556960499240541153525128656148059434305615416671234197150300099440819989403384688585482573338471942114012430684013447276857723135177376255438241568637125481275354050095416971690012132711869959396959714776960448444903587748712658491017019564759307845322658035271252691820245937953117319637002877312359506965462190877770387309222267552498154118873367593021026282297877415214334982484063176480365693802355957039283182814997353212666731812656112962575166435926646261114881658545030566123487664146299768482589723560773102765506800478073696466077788998576392780504580158863953369826702751275085342115586021843473041808966046512673132720284456555553235325230885267914113725122033665153419994859385092923405909610817756382164673401988541418484211378603832671297970863159169538003288354088800455252615298839282087559955050885330352008123144678351951315645485138078623171900417322438391696609147057346259967107960939520383633131311198592479651435034779451846129422519172114831283289338545062133412111478867220158280708031602843580608086754986958340890986776478521904142063315684196653541525774936338718155514356602005085169911130646885710806295179563616886998514592193129490859182867852993988627015109927929985993574670794093659091271857721914528194331783536530441368168857181072131863713173961743369388857059568263582345800867350791975193076631282684875419004159399206586331809682425199706119354916940471643057923106589091399183645807265724016808156462806833995841333174131790412056704562981062332756990804352648298973851809477324120524519360055078811822183334174251660145278928055354066928723880284396236029173563451225461853665562806641540857440133464704540088670456311703086298030634285779926622840438404509812820374480776299336435578428325514393079120575056957268730112042459513325985325011511307984283226421640604061928100174348745402005717648466339447619147859478058245095955514923152960630721693874494160212934658759322078228539362159959428568939003945438734519504318604320109288128294260803058982421644699875357535940248988836084251029048971236542889261796354630867198508372750813547343664933081471818987729794258583455041783682274616325931288071027521335280937533484626926972675623254888296058828516920153080473617542334537008994311095336820145818901404984104897758156135056616746499534986182346946670125517309274953421942789869726781975733765234024203654194922872898190128083864478540156823427877689866902384728094395277027922658141100402527339961354234814004693512555297924693300060234468637209850885878259657417573461282563161294650291569467552208668710586912665291455467220841514571533536576740619672598006281895089782796216829396839860214670135293425490611486878440554848572796857816471175053930374056866936286320711929403150858830348922946765963953038991242244723379094581921813106573474362779433375707164429213510105178120655918695178724224869182263850687548206223906650695036141935635185153599211698291502839115656713084676763534414043971850056901678782299692465059301172938285050275684286261376672443256438785803507234098825013509386807963166910688065247195436314341836258135560731944662383964852352278199433271983784882822404954459317102975460798439472391076615217194504541891293545107993908101062297902299860019272055098379130731038606031968653204430260613499189227426469931308709349144093766342942393936996929380981981465617103506277292128846327009441123443607036894995949499244621419279521078253807654761459295699050304086742303490506743520141703774784469823674703385728642166382329793775976274336234218964295887355679108836400433617390916211554575014802535939311208278622883913774107876828355073724842598774239576969406891453221900154800200468689350463370064512429619198833601204180985300800275556104788608915912111266236593492021591699648346925457200948164843117643914061926640891335089579456309442436722842602808851696740935007945925490833350162210779224884714090077617722752089242459768538564832847057840454038878531316935262583748557502356343797283409567957554796039186658554886986444000210747094530621750672573895781506174664091036832044756093319545634994862685072254156563776190349139415451514698376621205657065800552440709715454412980674281235159992409476499297204516801010768209801315435830634436308149569932863631874649612973120646369071204597371397946586739470602704647020922664343483409426504125599650107148268325760221651166953288427592426016178329665476479444171375962144035874845736840288854714434781232606753526612019386754441626471695477449886356225215021494711749238614740596675247910300932106271727356814900071881128339746714189572403243768983532476779965862047633164958424669311050384246573616734983650966697037718843818602823234310757583166121018985265234323350362164862681291593176253231604308479865489582912856266784084679075736380114418679346779890368831846159469580483940699270583033459431517960891089765545482645232410989324960483475258450809522623818074270430559304507971998210339781201619060694379171757165592401008449753300243167818681367653861544548339899253851796014498889175942362611561041791050932555016031537062937507697486420526448459843361362157296806209764107437865503080547630818142378047983220007433093760330449988424620635745999037575308973062292678708713359603405102575455460707141535573700960687049800763817393289512564957076444665131327846956966985133114804076287716101365841772800814239861649648694631282351684413142453768879495424470982788844631389301081477559746722155953436393525051384254126829569635194045804729783741660715584777357776127035094503232147402467982814810109864615794236508054766396414044648784897080282976516576171855003413568121135451170156296606967609613070866764859504827164256295187515178681941486852620025241956253592495448201216480241794527834871971021927114938508679831421549782245037900221688253496881074121400333613402381050501167304178140898188068199852380016916956259901724801341754941517368797710445589133634755034118397659321142852245138278388516179180293317299476160674907501022603726610486694435135614225943372114552107254273873691305564410784195285968338703817404456707902486496440595408788953140962345664012668224575278995825493358133249596550739608211364805154712152181458519512702715933578934632691721387984938439973116481394706451839068923659978514290149745355650052740357696569226605547301460475387178563307962118197495187263536007155730581615836060392827405573415421511966040100595384744977741176819107060749198039128547060487406831017686794684543992945372313055104846516848464706655821448143193176134868283888891596639136721539403008213718940250615666151004665438058328482706733706552675782779046387788642291481203959252248094978623032555310647261154006527847452455348286596901003040499229669435005763185614919459709880389282035348438653169336617503084905674609148630520484594454462976774006317376151273555785485685489770042595906956741921271680795495414185191802624885810532112231453802286587246313865485630842134255543164887392465762601397148716689242477441020675654646578948029275399812662881604639240874037326266831104675397458176548472502580524984046885371165890902724226962273854954598284436585595489783732314250204966754253932846603332050834715715936609377710778539635547414870593831971138298593077396543625558663986130479652278232893711131330927694874068937736739287850558613798943253358563068026317710055811326413651554779736379957103985174931553358748997169520238189953397076591730816418241916139117605614341447322676514198657105921423642044448513461737683129936166287865661851048931439179153571128505551318774244279465466742527690520049912842499973279520260859458874623154478969996833644900746020913660239038914184845890313122262841806581676046562838210666101769962735093918191911967472960791281815701592124460285721450842913521479874529833784572103000242129595407400199553783431312597291448102107665851593686999047359001678132519474748263774128953145072587956455913279505562552032175432441606086402620450271323289185958646891761472254023772142485419565344894466212451128558089209887495675734125851854654244716011307839278440575112852101670410865514270482011938727231092560486031152429423063311737649816870579119233773337709317969184928474203797340187173228790420890001645621023699547706213549508559011715359105062938099270215929943704618552736382085771438957658893544335377169924509546120041674095388099378635730008253521966112506810500289386775779117920871038892683690542716393376155994606145945806681350455587401873341461272265135807288443822867365435023114812723863436000919398332971253322788848471071870675178520280223114641937169010228273905293603684499114140185035165109874896854897256409865786978062995043348401452926347142833074662639685445317717540696680704951919191984806877312403345145738729696483219307778531687369886217752968026999091018261296806765287866322325469269606175145690100267193398941099579536247715514179620775317775341118358770280354378622405456018045429633694429798414063356348444167062130563582038474579689174934205884045579047994611836801144588218533474609396784315407681900882039502147642354577925281392743145999209405223459207946067572677484692417890166186441292578007856748120416433135615332434013140770966571461626392697772437043871313437446352385487346483372404705724161789837641392709559692146978682680483531197236332345930582665716101844929238110489456312689366463767701023927052746002388020863749599504813204220941424356256743621282386194728352194249004029017720488520548089709538603014489909259396947710850124925059503272571592136673750934693083117781979143407850431709848995591975109051500208159623817112956113266634338395629421249478709488045786820611608732647157520625756067949849828210478608192450691953993884357464435177125893562753499350131565929797594785091638637831126095514010370728039294526025398897588607105949505355580372116296445398663964358722489247600539981066355088389111239746563324949195041695136675043443726920057313757559180167329313791378310975019675397432993742218786849714945227136338715744581121609720811157296169179260585029777568086534715145689002309829516783175376639186858230818518830497498415410176406989360637334031328067721484854803773821729907714518571342158299171650232552963806064527742650948512008327473813416037161622540355351469453018085338309682148346980071810517774395245805344340071704451322140085599737247473050059779175062442793483103152809246518148532356905426206363120121812728524803418625760295874248544261551721349016672882090697123909539669465925689346659226246724729788532731732232949981019551520102793974631727665414310464401139386311205671610766402692428871065943608543317451743900068290346140459955507908481966586044314058293041828698671871373650578825919917138562551507697089413396512284797240754654481267321576438651701281590851100461158604002287878576589323530575443923490629243880790291568217184962264948295055816871308830247855513959599222986506035337959966026430695113085328871827636551239441129710227028113365560760974414833200040534202327430927495144506024760533435575651745050276667124341327792641156970170221581198029418246982052103226143550282396747342519431287820565459645450038342573331557924154754290173240831263442167237155843837351772590169226073409731500504500045196199964883931235897284750319357473520192848813173166562291262533171578011508447703927347494287349025044725572060664885534648123857293283072921776367058778306404260377284777932360803296257751564017323431326407278634360887541580762767476253550113057958986254111127287800602736137566178847567813994412274033560305183085031335772608163022154013479441678047324836214621348527459772264692542729670376338215176432829143810405374135641812170211126982430988042492693374634334875841341379110912365052592916350197188087491650928194531648845726061313995006992499586857100624840471907423446449606065428427341734888929344771118878180440774554203052581612326049108848137568351405057747610818964738429161012499920964625054305246189715884261779462031329572394597948059638659132187428983469685041610452940617712558873173487488982541020189257594674242434736142835575268572673566075179383931276724830576811468927637699721936473220036195885259912677842922543053857547462627493913346813821390058172210315061747597072665891374465178143836769206236337503502075798603504620950501797600723279756324794772900552886764125109657524827495197133224812573668164305857321453157971723321424191050573291760614379607070431459125106180777320735316275639456530547502973555996451224819168446051189948991885968590750467996961908788316919193425107317354731296237829254261971211032705088958339044518007609138200943484719224254619041041013631735183192509385223854131372168137900139555436036983262727965204368468820900643528007900530543498618832184587753034485043378469466315110221655107456884657957185227549211800110830072844946351044081897173754197486946016770933216435579198559913469438333082534528408564787225786831537546692780073372362002161917994946948263284082911784986823644931528304862476225646047288605018396746184886482659086654358970214349666351277494486335626552991265017671851314178928142939732428251104912185105766402761058510192047500019975669561932161355769169323376993134617245102292173786547545149307896939162868249051347682990007998436352521850496844307583611062508251241718136493625515004117135857790393249678666312195099256461138443517869603154062596341256799708936916354682339497176461765151684049456186287853477266120464529389070105959393662902374999744424103265702900092766199812176010652626448096621447403613935041961938246759388937186739899898702157882551171449148416337562304453397696733420950400075395081000029334441510873122860939905365986560624382545018005702794296122948171284232332552926886302365523415924146991167625976671351384212611124853707396580766970144125058559433661627172497922489952402278129306798769855681661805372125604867161357534924429226038615551634343847997634316203815389331202078781979958093862415821946883995274090889118047989142115455352956281096558254079030724132153685458148049721215894469292463426359339271602974744773032850865398216253095119871747170258069041916586106771820099373000685486331962709154544992726900921704503928488866886935263734492686473389277492931135376341720738175898726483076136844730682597466153037303363223624826702450217831995998588711905916707881206465595771331672628455637495376450563577395447767113044784575702068440568098154078607580702704476093630133735268438328518048378384916883892763374219919536760753534979278011624601595203195388270533249176743163939869977105255144722803389157409976685609996387963759947630784038076837736393135876801391835661115695803992861269929272614506371914591616541220851341552152765227613652735572146866296084990655854148947057310816195218849128168940855903049729343345386308563090728138116587281855820144747987725695100352859854390936621247387373994195606319137801774176082699102419150212034591179844181847252190947863529620303613978236518029660344958584100742571493736609283336306236414896713919555713589754925713458177396836466386240084983693696967711623908623331553357897103366099591837389213396687035945439405257649060844279778352468275016484842417190823610685190609065263640343626672242014380094170127856931190460568413756966347861312995842743616283038043913321680176004817042374941272409125142823081479763421314192801563072330449388243005034845370722443397067985539634093458613292811664560833935853780684178909915216635554284688530459533842051290267431043414042449295852469915275573185080037213356033129645377138168195019870676228546494191275364120307283600206739445827393811921025220598997843508416965541707142896136567398512948305971808705537257764924665805534614121308481870589806462977309238567453469775045779742754814130269544837352625690464250467427307439368663994632709952175967116009444417785089005080292597006320489906168257182391694980859581624984135331212348080175010312775873732072289521384277207403444267521664875535276082999423435594784449270799970750407215007814995556413723516418567650933580585801557506038742287794261098973396563380169489614061868815320911443493236300391906602557871154875344268461106650327326945086179681939059359554677106548664014858208718903666216654424437841732991185226084260789772193040283059951776008321698068795299605007885354347057083927436647298647334063023198498929662455442940821605315544768929446358600631847217170441068064956829978903734014156532791514598568901849810905643012640080656363145832062036920501202735059695220170090433782796227392508661655755802320003103595106597413868008610209066875248854270903054142353573024756583564352389976806013766533375628288663805237885747678622053339292407516979416050644320388509571936596020029222955638124713731631752861263973138286733114803905562246823004264079434331829264401380414379209566562340830507559680402650998382312030434975296790961063044988602317389232468256813116083473343024232140266485959612161563995849504734929518673319563721273433694759368540626709468526056657797696413552947131083188784134051728050085010053315427312495616012740369273738110083350726397263602021150679594197126765127836359397027757622145293450544262238295621560418934788612083249171982851247675794107924557519630367834947015438144083859939543379715170299589365736648516119745954337234049315870635339813419316586255840468652369469408411015650123130548528328047187803792446077957507142456841528395689831562985887240032811778666818180379991685474230959502239519444281768684857822664154370508906114773143600629865597415982184366873983568335689176429610503316609957385141683579823454870366332490927165413086373790235840658393309174756127984984092146403662851668613462189256327688392407339601647292425099947177467620179483187576286753425104841578471265327553444790333629518088890418802137589771516315734976944505599366237295580160578791816070436552200404201640046807465515890162181274053269191329057052478218414091342810043269144427280711364079113325168404252546687556554240933868661963311209976326694212177072615945613473488789061172780141046050238357610958755014623435010962782278310212592387073755663099003933984576746076277669790205922821060618454424095863158092485900804448615906543130947568253945171247536548417852207408289258787590520924506331332684324103317911604299614134143381844698753694305762188086917284973760107955430456336817989449207464727374127565530899982387007382824060352067037072035657118426005458750746894070330975966068921047033223380796542759384649169119060786035600475927880531195844056994532899884592273680875897087864658007974084684867601899329409549280379075435046130753234495425006490175417189238775324207662691238339810165051335770928966613914566907599846862615100631975189803138762603132238686619927030425751434615008004053784835157502115288714313411238333434829606306758665973377807400839505745062640294333149465686088884565946911634970910966184837005407510388840779407124399374476751919801955276888403077651626007042102538614269849381104762410038786434493971839906342544984638166635278691100455350362188333970501204263695128594927740522870100231609221773288135955197072204988294949940668784069647267912533056832240584152423941847718318105826611464157122256546116343883177627823847664777373720452785424570495039408495618945872808729854156863908710726964455604592438329686066522859063450051176188747619523458875428093263928930761367609616338893726924089709747488351862792007845843777727698041461557147996786454221326897467003698959183062575370942750014750248222587433442772196436230484382246101884047761179494738107732104180732462870145645787285563797241295817129201047516039992671456865438653772764735418921044231625581972358607677000139058434485690304425796703254534578646739264971049452340375001345630867343522894056006172278169230859923334738087936666309960932801764862704788390560730628191029329796573589203008108291316169293298412942487393511744281805529745934836212368142366620008566223632486223903803462281193538279194411205549410348070165271290693268113063039937796810076746459232085595148729781592741090381285140481290215820284400383646927562777689999117806036258376681605664094177088748551116431776313334252382301768916684396133566833521541619370205789148252644687365462014270572928818102852118021298903974126413928411525057308166392034749103582516499478749970302379544002177253975143941461660311711218452820544160802117209579810186098042118099542009791926364338790588614750399833835220962868534220370480328873892392236861886737221373428319872902432004681433811700030542928820367128989675682680112575785078762548890912894020022183974537079207050809016817504049060580880541005761746760203742038361925122130368457115913365880726206837768254782754285043351155186557772294321452257262248912621526600866132567437893148878709885078432999871488714589513736287160230513415852717129827535421877375166345320284772339149204821222737426339854843777478476821423924591926747115780034457692877122284360733200647205568149946813273294646928005873830375866854013117047026890425285063232249709319049809049378005091723270597382346302240869821953033224481987328476725735457031072311825178474575658309569054980560448487126577894242772366968129752997035664193712713097650783663376831085110637189827862373309987167642911658341570430266188358155828548775730943274523097611937052942212530078501523944697857803516483469053304060439073362420381501528284695986885253614011527257243472382839281753553052601201744995151818880927864705238943303828549372513232284260696201055767592070533608815129930261237908701376465890002734482854185240053551104225158491083902485706574100810082793159270221964836646160332133956646775356562633450195394929594297174410590936672672071597713902575906957570751629003318165963069144322997357132965712839337092837505668968301228874836964040813599173887879964690232497983680426363966717175940426367061580200856800839506655631395164897049823200566404544932785572905208545118783752812662197245072530174432667662291747107066354014572567730256702113486610361977063327133406058567855235881883002308573413973601802082389159580987152839101807204732659691619471985309062005909390273954872318085589299571839406925772407468513248344724822420844130450952382385343945358865441712220958599067543797153691826032067494997022904014884674761275457635296715162280670199040744898313944156178123681868492814098884314076550380171755147801093179427937614457897214966132233267574723272170279890558950952511673642509468251744133744472584396421217844309523043258889503042351369730841485025286106479117674676594894268053232944505915498478548694379067467750526572136605400201610427835236289123496013658403273454879455406237516617369550152809994019207612869382342276244923448379650668657898516778175694609259810684856640324149573680862428326256979599219982657868957171926022534531775515621701014875418696139078756577711970645917584359921958517876857452412126835719621251776573086123988640480461092465887297405637248726020134062673774673251832824206009363274268471224766614215205891265774246799194736518626796565089187350227605571080322302716553753563656067798971385496988533430855341813189082039878061014603902496436711155835023960822905339876544318690172276786844105579765622155662909683542082706034707541995537679005098123178776093097342208084435673911408003940594628783454925762930801168742760328025685388692639316032342620618062629583882182193228053537350098395055097825667271528749158512350014275614918455304590318295875355130677123636602976631565790049168046714747768583228165833699547604622299918501874648550339985425207112031357081282225093206411244700619097154847307358733377582893534789901096918428416711511884595648324849074814297494961530818811629425653093373453093370774307920244091107750710758295378408782984863881706080061290197929233445821304145217459407773317904175697815511979289526528674482944714251793975265104530616938156110485339926705696612085481067890233457395640280304699857087117764622669170107511013733359548551598820802161221541941972584719307250030620361183649481889246426793194001964424106364382222506519991284489735814581257827264015263542678793220286116240981163665460843856906477661407836928568411688314117930079707378858587037677430578348920666689816946224540184325537618386689502957691872336585385550432423993269636076666061560961180547259639677463772430639579717117617056851507111313855549199621703845124832502927684602975564100684753913659200916170729194357351931306500152723479909769877471293575327391182343664194452011323045651893641564628878088599883518022492068492050947632236218622624916798613217837343778252067546435497072819287889677653726062647627879214843143784372093054834464627085041938591246786838684482406062182843413370177034410989794533148932614105064847843710298910199345243831458316970199617764475337721511907553601294235402800774084346601348582029546554239248845906047101491452097718015095064127367737662221977256124452362828247472384129256702940453792255874381635924971430466093145574174078972131372531233601925539790971484573277356569050244892031245278972881111237479040228210285449099068594291601856285163452647681347565563146872328427094318573927268925595793003229721293446043893116827691580605369332361434225862021611720863641834679930430213729500563696990440143614787727206779859338338324890023245212760808699583551539570259260323663681158567737992392345796884656709297210209976829191959921151521216810515929121842257438374109797092866913025138097577387063218026613048407524397817439382268665204226811509220719368264742588862581468739351965677692818881568430018835175779637875798551467499729033736339997876609439377530837579668043444217335214047805819166800480071433555384715527459898955246376696828624085667221834771746563201295512617069367008500861302104645803097398992425242721163806345290395839981043902951403689277078256126540176171287986447493827751668069820460384056868279868895785079382158712893702548452186409604538479857888007920963317532657278253191168502877665969132087781548240053364020464009167543218220194755446716023601402731922511023791173310339347163227685722086655211118450102551140705223484793497289823816801955963434238662556359444155935913284680594544973366366205129232693615919853317455069756025808946575822284360958164564396877029852926968596487761532312530641411898283291279159290886352119538779819388778352443980608563052452162571307771592731429202850493288990574759331281963582416299825353033793145852605194898029746111331181703965333205830657870431841843755945546700503445864656354899633256094781327214007867542748700790408298840497424247782015516030698381015694995914195467640541021571733890435217656093803557718583439490583517301416100197691831536446053967762077542212809983408518122948408193688980716235503338875914840552763563558249434001602094613843612500015360077052127460962697906406284472491643961297062229976404068106176937378764868325942677646103160633334771962832884871567082430660308347948058947358570544667563098450892073787786913387535346926514271112013493705486047510484410254850767083245962777714696507665155130825820943492838163247435437510810500029226281923225000574504990318763089594098311881091690024960236496083218155028388460544633736560239979082133717961088278086031654165386956767195928073860567063289015842731437467509135289563704988656878739887860984267973906040427653671236016275511976480152978678331363985045151420918934607995810889607295879570144216504354718067634854649194372872134365665894561122595843341706051662864701050748767775934436068137744165851358580497455966216200817575102779449693148748076748226465764267861326230607909569260817136428970140852003317059141101471727413249327324527289748348290041645478574393970055904779882894103617924125281136309002912638656389658528985357656236475344768159347069178990208393930270141212134913606861612311510103000867065965881102565071169963221529628123974013951460370095131966297713812310553526016944755449052171109869363269268153151399321183096186046019257413295615817538871798942596519621956696207928378231910303765570166040905932127875763227489784997922036723031413900845545345084390422708683858915723311396929115234370758182699228131226188702012344084135464051321569495936872641774105515026991949481090252758520600750520284494086788121141446194229278911644033805530837750425716497595243320824997211383016060277226411165585868359890159844759318773630898139369859871264225495553208261466942464342388499193716629424168642111374787856830901017873295978483314718472144542512852572118219995271796178260127888433011913523871147473069514273503995646050913629095588101699432914678018159844240133444290700522497877089142507590539809677425384455054241052731958047919728490554845189618566561533833117377372468801548572282581631766926918509596409472124445397715282728981472414770593570480378511372937436384789090226920822292423519166659218385640030416401313961187490853100410541528880795850158595922136464652542169924804507436281962697127213725231857211956276211083753172020703766924535911183244351294608005034183555556847297943885309065077222652172349492982741937654384730881421112821428187862443167249594654266906951311172135901296134375290044501546358131024913674596465369435929078465192889456219672496367767522305662353639276304170861517425799605147101221432814086593040247482966381814071511986411362779983894583749779617583201492159528808276961515746159497481282252547128881685500514534942028835625087641398434295958684780812501781596229484812178638651530943222887454909805895973968514908554366652432428696830186994731458492984600097306245959092336265365965047756378938586274784448198768176076981227811814319750174228420055983233949401588845265401980928570137739663925394095743861865251732195118725863783647142345655761522364929051792484951213320961630227406018381539869253580061457552586384887662798130695219796168637961889313953111622121241786741716752724116365954273466884065294658264454142531004392997070799520466739912160552295164479428594944673093053598649506683553667304948807496404538952896285026369010806822749205294362727939712918156258483450031428439252466276060263366970409584558838308854320643194976444068681846718995405121607557571173052934291528890710724517929557520241967526302445377707677731505418663151363064085732775496073346669714012141017506610670987451908804359135750421873344754712799086195504296310413121675595220306801031571825522259986292991339392702521990078967708067843556122380010023477999333616633691196332642887777177776506751676309857189769457901190291436879671877116970633065261099899943346558316777402354656797327625622419787013162189195481627100337467491778719973576421074736960500028212286779223294056251804357837591474216479974009034629448116525692386515452945227674901346635387729239277181023900649189316869544949118559346799878993143884162534550271320367955603669334998908669482425655039015490065316759455475545220308521108236371810979972214627658123955611250701347622861528096461702969621139263010672235200822881887624005133049428758640097558098719052807850944434414134090222367877590386867443997048829158602856035389884049490700501942243191113015922064912070579951879670574299146773782477777084563441547221284362918807239267743328310723049949389039152439766668245901723184748635743927521413091318130297365412334315638303510968190219876460680116115479912502546492813249797383851115398357642836407064418103077491115127457599903797500025251577913332896196266543082778712109767916688640659399625362697873680305426492985201837381395465812043053805926749456285419777967627819174232524582640980753677835060587977687854197755748312143080242031371927921668977404529340547120221296153589270979600419747012468597521131768606702830128471838202416883187541298691817952208176733111267529771067173324459820451208750963259989761448439318276771769867013477253681526272885715552089032100654448652277027862135146471112432029823655904855381173134945449792560616185348570791715682269254175086299406553695876334033305215098705338549502172577028846143342807013720051659446881951413006244308403684659050263177598147246021941679681283702787420181530505072421556315876116429366591495920975890496977712936857237994937463647633438433044592326363330146955192040621564401089823718299918598012424801005391111116499342659277462912030547351540915303600474425759676939502064233037874541064104549317777765440213870874352309765460793399848514450918844494506394592931341620393651889942361617002354352900541169657892177484054657417398701866490661025609854880626688509143082310350959933252068703395021398724396827544841854847966889296095364890383489704891231970859673306860121468432380029856471029941067877395483486926549799899754694199789727499797321534972770098852000615734789164856815312629558139590142043474764464668712100548389724668829098774654643828275920848730268276831499216937361574514503314831359892133055525224905300473385731216727533307056750023861085535053628793859657155658867188283659450386656735979401037957702478378315986177437424376406609276541381300235354342423905743707122025391565898871284994884469113094074480340776971417366986404423360016526560962479962826247154065362529204537036080439842589262208189119488175725020335108993604812904050210832460305468876926721523496101510613852954655555689767325409146690959785615813050210101163164462049714286373383328706771263393934039664708567560271756806039694217461769141518227310225526269989536299465292910927444429576261799790726822342126535163228990470879314607214489363199343228456263440943917688126957793833637366985318564452037763011856202149066302489153735747639245243472117599463054537012196979499778954047912712168066526719693789913262634887826886979344026175106916497078570225722524974840773079468874846461419098189884025411851185008631355701012014005739172397197997511379671937999101866269800713744435773591703758822307343791384618071719052975313387175779826828813909148665378427756201029918974132544661770432928951879022108588228507934205820038133636603421777509111334361045636560664375244967841570823327160065397166359860714062210021955340163250555407674762146662419771087387903236259588547826606335514416221369835750451631623612640005849904520761405895188163889946208835142300892718890305850988211162081417924470240107705584777679971232268945569687494278550494032895945970858381110223266126374444886693297846406452853262658778509010704237154216249575576410536693010193794423720887647709873891691075809330055968602326631409665079780116520820574136578203441782997911216863536235470456848138925316992515948048306436411172566923351149230104526477492092283324677403117018158447737385454842963041289998190255810264262037236060792797889684611780982615969702072813863987075133939960856228496401706091850980012595007280939154018883192421815385555051247724908862325321284921800953214503975452368398348329427332250770017310439493449642579704053720865226224133949317373719159058480100634492321616238678069302822686337670761437162366912384296693136280134062691653552204238647759265469531845819616217868257871252554596224112930724771752811744279267779436681201430431949628980739912078346534631013218815238270209515836984439110580882666698364910059278398163161497250988703735100996876558182228492919193549225565648611832907188154659919174544137680299583616590842328548083733927816317790628814854591011371907469787429830435343490570303950510504005278850682664145603972957385895757190941030609715311024304166300392643045638193336145921870843052456246878255499166434348192354221921772964331759284650489145736554427240537487587358638090288737997785535771946817688127359239976711707113570861259414182429711193085161718973582368387464965512747502774597207649472848254643087126510130614056256278759505614363812281912610880730571739920911472144820433136562796052505367626193599697501663830136352921826419833379346781685929770685217960520066677977485566682557028135126776858795017925446964965421150039967418967867795136869612091270856918745605771950077640150527058680529069941803243609956249681777638335309168673096914809347079390501750256693241700371586156612199236995042323207767102237242002140720732643638631153530006595517041842576378929959836554217479250544983987194244500177426086177902388922335058390369796306187440596053518966585256300055174397408040377436763341166426836373682514888170047937020667612359997369379345263005839429601514981993950773957526439179470134944216108979432854170951829308818393293257946815885642551911685801443981783467855570089216252436064091750093306065528556403992379658487307805313860995316030429564363613462948775838668329057639759209818446586082485999105987016258838612017234858167243948863848400376880381423836280335479033508171335903124533663353433266091787808726338370239050549972338485799286176604802056308766392905348377672511491016955465918076537866163835393936671392492314856933321048887125312677432923087677871314520325427411251154033853970402620815564647172946048538936572636756120685507351456820320435371673430964076014008414018805322729171531399998647299725928626812749646006467701386885318416114835402726416586992647054959585392618592492974549243173022753487485897600361330417547090411023737548385675700805563509626331649056353421810123083555245012959070799017409393517768311306947367291323081145631558141773255991661675948382604192193267019475354466436669267427598028832475682459615572430179560847520481366633163818062236178108127441391504271587931384213423357747211446838001992677816275369412418191535427808139290911520041488858867055769946272308984320800229946248907108787488424533268394187760572616412124842471223113717978775080629708935656937035277570399895421342362721591267272342533030467889488117470645598218532102178334932437878308574366369545849533446815024277328555694529286100291711079901315215527251011928886818800516842070446613850849936513623064196799656779493346869512634131901473487071991109767777214529392514154354222674463323426818195584930939006714649754096511504690846937087263205700120791468253761168588992307996750183575132369033780713600114931589846053814043435389020235018317996794746538113313104978613350375106159632242232172960585459285932965911393527400851938183724057040979514303851254527831164676740330969713323087678954326116106719452427970693181443435486434122248010991949537043543627649025615340499317488339530681643015742158275024465032213620243184090932116237663549419522376312279773927190379472171959013371284484039361861581927683447174015195114136162297852855059583272519653863252540300751828517081110250536726675292123022078310652330063065222153644354118053258132456252838146149543459617424907624627187843237440013788081713614984329208732712893011164187265054520113355324820880594377916929608705746713640903636255396646876038322518745109055081262971858318029409273598253104365124149015696551906377894629495118927725456016722047482071235689394674666974834995829491933934403469871184050979884321131813662652761062832188156348507865363807149072112641464944089134346091353726917135552473926499246793515929707115910345756704148707278202242848892756090250683378045384748836752347779658781099976076172915890012031561217869774376000442967667664487307519553255572259058878678449762218905549166053450602684288620577954429668387211192053766737498515905581948116522923994786588146879449143231958635119853371061351492443914579154011239913120046287296677656351329725124560705508469655016317631946764914579782540536043524182103767378860341074978950369023404574490019600395539227745601721057222841180794088546602760916466196328800186212456412655816086319659582654627088033785717696574547930036082464299286223257133269443581389722192084482514257915549081129073078872857508041446146143398753217291826200304558905937491714432321318436928592832897874459924280225055469906049847647628623786630210399259476701241082634458308282237195846080070315081792731158665317960428053112093034343924351510544022814784519008806204992154574089161003892314498839205884611195921084721596757538273933041211446716276681839728221251427888825559033978777036878440762123313114320670514102538796514235189776709077409538132090563581285271382378241104691865340226591260598244036944487556835446066396509927720278538933710458967029981161284848878393870237396043572582989045295394656871404575361588456420174790738643456014073595929100915884890627429641116589130521346262926039244401432074078935004051838992487870539725917886528463871125126865676308808029272300822875767328603130206350522234231138939686409054542526398434321165895310874689760877657741816211575456725053147600141157282370784341900122146574430902756883668855430121542160771193456436756367462565849733827766589790833889442727940907870306921601859228491675318687031766432640619404568237173260040096503301934873835612878123608353907917016873703725179093263751210004546658108632083821753069207823844793586949585252577262845372093539183550236817649867300542480177263047848115037574982720660501421431835008923599916773750039770674731948133894490750840163917889264611776374857907892133511982758317370064603606120832896403881407364491825936361268725358342696152511049151734185422622679420282983173196904658743002928203525808813751366215653209451358152316484010451263252906417415200438602824636447198569812525432045610428108229556279864529567199681831665866852149374092972570600579512543426367655095926777066827154127149864950002706759759746188065769404179319447863493348212188827444827773836531682271371809866018054499272408483107215829690562912251341607921722400320229406700765395819561703382994179589708416246788951864799760240021556810868978097702631964097054796660424637474354377496273854933304224213548776947231228962356311761425905812373148950971117980902068355940868962858477980918781548102748311794226947388199722010539620088095382205485658026308391049471837884956906247505107522583330369306269419403787094139365406406088247370532544541068059579284953793421849517931277047205808154053719862517363665431706613350677387372640395492598414878053908529619317063955873211752046985924385732792539400320406462102615696871470267440200451160319406875380367978170423014509911699789669080390661355740409532212096167339717171988263624766483354313017761012254388914865283297909250809109405160421672248352902201724115799745788718631393811239105669743267158813407735734981496491131330751862728176655182933603208513032092552214397725562527566317521415091697544303036158040734433084849471934722966865356147108389718625319252152365162865111444764811833002453552581037627445327124899575850874901797263398747549717449753729316051860782222209122082853643504722738372232833410686698219967893610804941639826306041392301437912988144972938837596222179090323982467112941260314038333520685537769030384474017687221713032511649595519856803512640367148792631622352287206829972112973066786975158300292396191553327491548481955656910104552435019817964750690284580652757321164835098648074434345430575650002764047728421967774884884964345190313576245682716061561069661340685236666394972144851771171058255833216123177597290093800396902155000439862640485816268157527370488966881745500918000877035283076743151817732126846615658980809436233142678596248772086503709173926949955513422328653846214132028292464523639309874120310133490266190070655333761294518851443496449499825584111045451549834890038159464681287839681549169418552016122849106694506015365551070086638786855561535459986255046006629805328868730457905665988337168806130382412568313410788187504864311784062395674473556837466778553217680504587538169554055237515231375700797169759767641548905400204122336123502116847501339114011278380566488705337850972209884685181033932239732732107704030814457921716081787368568804244914297749260944994721388851092179198480439558919417954611802026572232895166271612595988590678597023725968650379390366806071178308846947331944494566896010775097345136437276509357085010399692979887620854910208550821994049744879716036848222034618875990923619244671889843030174279094836423840451381973069788253227264702700229204248649788495886332799242189001947830802255613755382442123381547683156025551759541700423002405925743102531235490531019202421900612780689505031767584539733253669319404792683020947241521938452451622770313220019510624458288904249726744517251969021520914745548202576499189273524111175958301822434480639226480789349153267096027807055375312319789715940552798672306116773596207957760490946772315402254570373967520531074988354355931263265165407877732752962825289154831796121711294841055708055463882337860640380559411510389869733025712280163378121071141980585869054356402638730514871144340790462851575277817436782688796877263672922579668281195089941770161144273617589084132504236989426122282383448217361199229886264481413915019688503590241314420418433060318222278231909497195336130810546989221633337681696479499051544333758213888169531911781219091179141680695863524242140009859584349492155159502949827707872891298720363755551362587113414357545505574076573669768736817756227238946664685386553064346317050832342983289834873128498071944098649397176891415303075995964998194102780538537725941766940055750138772647722583244768926646345987079496042968086494474026294704512395791381979982652978789791407796301227487238473760577221099164921311299982475375278376219975254508035994510892337337682081462289478283789489202761061036531161163146967349555572420188200942073272121367619857164050979423642642006414804865961861310807626504722572976495263352565576562260725834087542554027105065886926563946885815003930408784602642216172844233377993178501130758266580640672492013874860496961186753297528803869440219651233391206761347308271087023203831478313567056367253729548749107053010832155929755260041263505373570701688415997917488188218146811162731527671995741584691718339187100927678765981822460308594436023154443450444750489882138782987781896551753024553282511195132833773176313341587116320891862926307502539200782333362643205990420702064156756602650708296647092559369144116802912004091302704818845634358079166570102591590937893270819269664079024722892795754401624288969210971949927783928043653759227428815113829909744297421119614573330187478048909033616735491829636751356007628223127042974318922953890935212018818180158270059702258055131735071844526345942219424612913393389221656122152368749698137360936451216290329819347353226092902804860081760500355624734188964690923796194728715447713236523880137573614947899819927222762118162756011886460536756790778964797580105643651438809799235583126406121538796542592624345918012441021692779078284172795594571199579559891392639436221000141501211454379637436544156135612397804414528296109851040173563231815298432173206954354184242591145925549369548354897831036079538236003218558821555536494786796038000383368984628496081889987683991118974549479678025376775836251683172158390313014597451474952330108257599951195858166140452981648182711459835611465024133658066790991044615566066213891694124692424076821822309822069182678407548845388372944084494353401265885616040450675338177085996951084876833088568000959591806971912095371109061869054743356512082442127569478852007643149064396776881528574636552081744827964657503951078466946289093097743416017939553663861216955435201671016798951477466747626247753311692924499575184452547811906692408986322068253256564791634434938151503952134752342627784485246512608046887797007199059693778472374976820997448099825854092746434634732093970429157555999304193455660853520920468065394806134370145969623357990562359871748910557618985488552509353639088905438675685518476010637858045137649087429950679063101985239056948768156387776366083848749419176417576048816075929260398938480310511236959511157821830330286772748025527408195750841756867838233918530284491843082330669172010527028518668810076075667498973232558254824887158453322250272387148454016208766898070157053133150936298494170871598906158552806207836988552468240239856593740349296883108588964856567264884809897915545523455140732593362982664116376203638833535190690866847654786395109118239772558674517182563360432489278579968472892889115662728422418975148298964233602280349729248259545507796948979655014787344386660898772917529169714688967198921347498719987259082531400376595252689846351870721548583489587190442719497427393077781937553644712779732051937227459772012168554236695424766445472088862856301918894658097256448566646967052422596434511583840481954827560709054095304607879056393376475400050775179984106808549512165398579285998220642002747683651626345881577290610525559598543079651323301617905321918372206573241515306746483840818084203296904605984029075298138003649142424305370882424789352648273013643530767824313096058623302533710817963987054277650485969051929169110011547083612886558054010786755353967141563917278162559870493674651491843844724725135095423362348421079463175078684886493142790542393621523142171577543685041595173224314151338623653376981989934438698593202019405889933265280379790542436669230021363571238577912197007615742587892605524839832326560955373694743848831300227241074894745200598965391174198697445606609337127857161911043641672648957322901633234670917475966576184854071756995284156550335205767893333399207735126878174834253224329366130910308726903713720518892118520949280007141862994329117628156267514151493217335241641876748837712750246316248767074510285889112392918047824953639424961908912778438852582026377222368983361327870267682046080569394518881643392460687598906070354344650818984708940606475817580967733298448284804410560719689875243814792639767803496724962709776525707811610274940472688116839453409575226992219571415906960729282658757745665770973814767002332363717583364556901863369226678410448472683537562156602138334966747311154994446744214137291528938470175342989708320358679134138857300798259029873878589824373733005982898297017212556434517941856563473781397020892408629910023773141580843467489465162874670286279464256935353594740061178455925943696857032487692258289593154181308004259699857971440883898160817924611974958444929996337827068960955300096052204242200726456488457093671590243423637208198217090508761977000032787874543279050720282831706857701154619446118494025888593885874487199388167474525708203552805518129840803607337860651214487355195355754712581109980656570077166245122918753609969979832366679990821922595625436803356993720002624322861844641299837598805546815867583783413514078601645893031574212912894104509418309832056407523047941505355761866268022642321583434877845802146020666531902485040621081967881558008638123424818433131629014753471605666260186083732857796095981067237794101286430733379273240131778850319282956465549652578570998895169721992839862041403440678038787811091321951964538299669055260255847778406018282434917190007547946950644306420326845273332114934598073558679848527650856751589609517791757240983960258648295689503786372202145333810001115102507951433798724072867575670597117678973149836464751333376553852630798575357068073784047679730630080828732913518283729910356743170200603461501242833761625653402438212813643765956050465150145086205081378092579848241115928424749994697559491189811035653208585879300562791270167461049946275825589543329247865727701885015038419148800630116568621452824241119738269259902938540472133550247277818737783001685818593323051343714771445099168436639197824820408156057121983439887436410413186491983334741086030178419994510606895786844756042806473792366857733318838107575139326108538364159958025930161212442339975249497678462873353401306324165280997532396874643924700136881651858509875421933953039700859668027475874913507515368561711386220948094624222366689872403389284234063486592320129780268666541625469814089294747268162663472011448207537897444207953134503404729247043435314117236876059345411681746373791102064578092062582311691713831212639775741338154510166713574501127379618595549448368812091750608603043568781709514676843864202736465712790488561891248922870147221708368498405129288973000839559050462365621578105685640000369526596716784239182592329019873394956583025549490133340919390860185894590694969385586072426138487446730852919185996791990166664852379200210596670999255232610917233253067603818285907897981256167035122297984510390562126616545078093630898395984339476403155722994999442722785742656653153630001993677321729898590169629609098242650745907474579566867644311367123940387413265861809478175560423481178507113620598123527479137514145154542938536403484893202677229942652754885066930113563834642316976448765660435264556976622873104017824372963575093662786611740784591527601514737899730447553943701884709164540852001728912413566231748690959136708050211273719549953470187043807507946873615572487275447323690622609748923623885982889642144905507693282064365580280397665749601722894912840451332214139638571086610462439886057782201242977793720681074897959376413827344774838952349610344216718747591027095673285861536663620484960512616140658996651915507738857380946556678810794417935484931094630793155441870248765112323259760699409697875533890485576297958490169465887318195767617082861694460828064519390802981163543440336229103235278119778068050160722952011386092939372664674001344842732808449313051578173993417302083561535806751456974627318183944976695781124476264297125220505881068667308146285020046650686888598166312137801490971678569561095371790586005362369393046685641992782907703720042939438149438774754161708530930576135260979757753563674459489499145450349286987234745561309076158137717040645699141384782574911239039638460549251823169196520923604302591646605006143337460160622089226365499925825066932106468991378201589475878552020188486311449969907958176931837012831168859267749612362236887314916356911200101279149879124794427387692933757562156170711970652968400024262048333333335633666502861052687999178765665676961655445442411918548777383767396247557547682577912005068101681774088432290757343823770311878229649115926006235182732491973309607044371548611293108435369293468326297129780740628542382042157807036299463226951330026344507202386086855569623858024260075660170294217008139070377144098109480875787157452671976377287021817402231086688591228224661902531830208353729339948508072853241961368011731863815210738110083278629751966679317406693906951858984056343221710234339880439250717127755781250730970087446168754516956098963749381446833250096817678912166594321624147211549770928447678975951471800651531673146421427194784665089182543420878087046276054647712078005803986299317555715780102080367746708140085953767673472895059724602845534469558747216743431718646020228874386625481561049241010083279011599133931174632458916262234246253762800550179689681361996025570347592454855817673467168480910985965678660143339529471833801085567737177253587783938714053167255144479506877079702788803550251078948359097241379110655670526637498768187828786295852407611696733003148619733847057317434832572435388738268063020284866006320320161457820602494633988916256489354646426511495463899486741211413681272187884483186988272879386072340254234964781545725008735291169377652905307857201572912009607065621071873181490451353460194405578824466259889864508936654914524429869720440599317265984736862891633883972044686364480955018984572419390053051348249495248133459292343511031340086454007801097700552132598726290555586612770354460646254882973001716585119286947899157483364358158579648250594779689547559339634985838656380916165258372265371319862671948557817767794683127475968572201574759919692896272706242828593064810754955468161311817501372206503536184490568537994735508381523968076957019881608160815973736887398740436691373323443272825267698944328815716591156813799691634094115791584002188399650372514044562238637706967833671995923691875335244585000256649500935429877981638548761444866641017887136632655847661247313054428560742908080757397931411427323261913313346091362540552284531121436329905195198046118098373086310687262939078989629093848741805542730043141280092096840440102751717159525070439923198218410899217708464528988537244017289240533124959328196478538237176327542028985716483992869599668136910993677847076198801721785545901400100255902146107003739784914590994875519120061370763801261090900061526337962175753053137054697825010150951201277072381291363492022990931799506247404484507186638130403923775687857224334139257575238905898729177646098074445480412672434379290019347307306121699879251393007506228101109461835917807366331847666671949779148999199534724760300904618880992464994405980730896041102407805548468332948729654617625201119848268812989668932125109874986755399539463664416221900460145081274938763318125444360732359708754987408221503464637478678091354699556492260149629798244072732850883751461680110195923608293396828925124815336445308617727459918931217562718619706133786865579804472824210074379002180682128862980976193265941410694870415271036516051862923586867186488700370003036607589286316715430233614318961969811426209608113515999761580530359581389925553690219915754622229588533205188359634286124037792598341856739440397352456178021391275355015547340022144451427836445661385184363855244125307130654509847815894263479836043856122635449620294502590512557291729008679912500341787707098852173524788098921264336403199536703024786695376621280923274877391500196123451035210224218525656532596853055768676978697597037701563848708839728955493079185678085581616970742424865289181264584177997770427830168638716940672675360670430604549642183428542931314408805464194860761122061998604265570648246706082580096694094904033608000653260324885456957883780841732546954848372215508043666452690569445620091291301831689356833605625628735436277013409172224281601557419256972680123928761026046062979955869901198359850652050079236296924419044219624077670334907003350917931622064675645357153626894610721237667774756675542497267127620710762785529402107390857548655765461237692240068267586756293604143932475257293387185337892951681921205605173295161276888675789232558540943555553960077072505378934335696810258285492981058186188642747738061057688673753427698892615152614258628684080822849336535959014859143988564861878429403071675498099345064309819231045245997287352593341668248154628577034639111333263398509761947693063224532215366174957576987905643691927598028860715058647341687763372872054305447619473476682083992865284437313659329504343728128224848179291225816025738717297135767151556027453906996289617844991333398188585085360660246437540143470496035399209486462390962496974407453027382506996599430297469337940517533138363196239957063113281810989348213044270934225121000163940363176230862481611538997736808158862423851348198225669546292735274614235478163364075905523611495893581223490027853447828220662777401842897795927840934943204731976177164826127647988926502962611836233535381861870728738171590028071011246092205695839530825262218604718176142074355084740999867668403868093425211193045236876217688108408373345150020622455130500437299331037816731351774452510833958140470654329240412320669420269366642118317440325201909835020593611431476940191834813352722269056112960860689324410188993472323153231964043077855134104413814288588053487885580877563899857055687381662700262276709270238393128291890538463358452433576988897791286076706235498264515788908670346192222463825583061585653036144815315292563406869160058736840694120787198853096865687263255122253691796965127936585706438487540494126902988754331929369867869780011945858626541968644546122721721816292995913345795454532774148740373105540735772047184809025049266260016963197206741478266844061381864370147332005180957402536843010632361154146858047280850483990692279511878388617287508580407051923591821296595285109553732582703570716404357797918982061959359694004544395376373033567340148534404913772033894436233054231190436246555918056427238856059680059289351570023704872908654225074366396298328439581063317091554847954222514299011585452432352809798250050300332284336607002202762209465401870845083361548366928940911323923404906002003442561256617293983323329973600187811497502549974055346553446400516075475474963623401955887904187411640343249037168903621532850394408622115143933430382340711584148031723115218389086658105056952350265711619820817962743704410781414716605032487824223048124674859557094569785767015089844259776638972461886085740972718284040430440378252370650299624225198028039300014718610274026052936788128594595815539433713696232497172401279117433538788571881644297195878087238566438481491411697096516118658575346389510071857667186144911124279724151383826154024788296038066794213421454418695359589869255310399523468555788578952393978029462705761591613771120870847191623711891223598240777146812583527418888311341246814226899864956453970539128502240093605847405169880617819136650238774299971131999864499539182961734916271484154030766332364981051279204610310893446482490691889952432936910776138755210609252444649232902798771321853779482703755302788566394819537090102103621970716447358337974860082517096896824329048659564535863970661625135635706606888616956872882777221632610799817449397048014217963939026937868902858710448246267578165217626992790843895794240975073149826199688234175033386617455122042808992905642783684497303031103534391302005631381005615388877742924636275663270367514803460049474357886923409773345164011405287341839293796042604418159236478115149260086644795117646109659963977209109707863221892828391202513392776994641519541722723466928625771898425813773752365363821428229581005484479877823553826278350586426891154289127475569494737876111337517232158958271298696193435065125988619861930044507403462493825247862076433024977521001831960840820999836416560818465761735817737965879073103967721510332755151224762965816573102799348346375334953940101703856937140911006145663915232564650271817137694732465459188104272638827380004176988562435511182569710520739734645865353401790230127949369950021212342201789175547903435227640482582648512363140092103298818916059543220713566181333166694194262679087047489656594204531758148097782557262536798196885440638139218126672626815539705596378590871043295544983260398562419544394848212495144610638747203154642353842465217188891106649491611027557963820230355722465397617912518875963579636622348120264666937181394801487359894465713936698329525839083612092335451967476166570980912027923632954817101156373790433791501925275553642914374263490796628099447065133485633966074417153946767831567372477229557636869025578548958724848043982468723049534584424377512211339991004639033875032461419105776928824009778167553292349673180425113384139524594843423630798055255934815964003537936956344239727912992772796273909457537154872104264080687402408047853453736393803919561667076583520389158279339945045164761913035251081861156132000816860642871213818577277781659843202702537099530902951193904676065648215899522965992203399441357467275347449547939044328435415253413485302508365273286414711143054513146286073897030916506523230625528674363399721856737290395934269110955410022064579708805286895933275311541059971144144449226076437959663796064647340669315317756100982972362277526296110121164209092065458805110892644045522686104577818268375626487605813691010037492785222999478550975569878670065859830358077953161840460586225853861411249523324063279583187997259055707894160898951026449962133855225738286297305707216735268138271529701104884534984598778613393399716746307160435775269360545105326140226733197080225020443197852932401720334975038674248620764772286414648443862874243082048210305485551373464976674961970072980557504829713143788530010732851364547028180949233145616454780517759360596956235901043842959475528824421069132724695568144595272831605728147060840362533403762449395155448470993525505015592064012137362748161089790068201872496610176983712695143829080383412857252875801950878775979816785403167410918411068064465917617290771307199698988796377644504301389005577177539358965093814681761726108499434053628872235647833429592584549112383265420218669951843929145783361126840421524721450484001936552452910566885640268929073650649963839992854517272782459887468192538128393693609670653475457165244518589956215102702380183902072828418918911456078452096005244891988041899202109072319208727045718292950978990381596065508422905008029977498805406000382093234511810453127115551754809938910072731667726189630164046124914187194467371209094638573912647873559609079825370642757756080521401924719412762031978496456957881551494604475028916150492066215699648795555394900307551126907640990070425011160869804773651851369753382398818964079610140702394468141818232131694652370802136043783848548519086051614869450923460882890796914814304446916473515240341649281070381949613890248477889620861525590196889912238558270402239387050754889033334356202275906339248201242626280606239921657687751378812551935893840705955327271431634795387517296727529418955245668956091578583021951754012594860053631308974749328836186480186870546305949848889564147568131886079953882815868733100922081295609030161508195261747599149370489587607209967405974239310912075775256369662827239610336704175535749751448781662310002277922623252576907571264087925434064006515476519053295845460862282631382032155225499411456333278095897703731132639138470859437167997276251701317397102888631195122142682481725740260452170942218331947101049383182321962113912700942093260541569737060872233489473436783231682001579437669536494539484230180278324481228739751825686349179386440812460423638898230219622527923222279218961852094537882650108289303938217463167871436513548502465960595816684712373382664497445541031352438111184098759055705639345725542658427341416056314587200195608299442649900303049201481789563307319709024596170151682901133018554925934359415126647598097597353427761856274355207453331365113458060793484007968302412623619335136318557580007015740050291801039985295545017817778655301941295195519451006846834512789185639681923590816499289682972694545925285995858258657443352569222113629357044088066565360899110685312121877369062064026616711808551720945426015021063423492521762481316565876201371281217529883271906543309681332375530362520818069483942272523846909073458025806912802269669823122337093854015446389626775946678599215596773704898844277780968887179941116035018161017592601897314705955974865339432835647735687446264816778069420416867438238553845010299061020714722424019161893450655940586652222829767623897873925088929481988392810327315657825080310690904549323493444802442992684865390721820503031739891950623752769492733317780603180752951332641268640986254367703121555641677166472459442506177405991641223571341974896855578292049990776259493504058010865723316815652515228602597874504686301077773590172424012915403985612610048083442427573736993824591879366571332773413817496230586751748331330740498309490082300373427325647346388935756466222581272531624496509735431471205307889022996900231242919774404974467961968126659379862378035428199277440999406299181225138146981549012028714067662516517546525939518995862520364797012162867549801974334011651347464640459820714867519600941862198995363248637852347021162369660331980933779608671950593962497778761934115185997227002382844816957200350628859398952028194963222368989233194027719756323298289949241427143011921803985827742808281076673439051349366487847246882160464013714473547141996655704089760583617889677497995669184144688773916258008731706895656250606137750178632127126566076758035799956582112617735684630738299597729734049445293829684702442747292385892425181454333705673959585761246152358665332917390403415558179243287430480944556212256710228365540314924521921138960655416816788487484257571856654040056531635674059929634955397079094412161191173454180821654447525476693550781885726855766715982657166535870319106909323670273605095442504367067529346161854208859519786386004485483311136056243906504764258173722596753040155255350653452393750665652470133313688564381880231220304495933180523409571734508557676850074792962144891060425867588223327988434466050869756332515034118576241576037399018091104633310698538737343655450587632332920730756443137188117200454518190942149028511150266760733949477535274723896844388269760678426466521115067486505419154697316755929551883665144227153848702738446599692284950174052630328807657035250530199881493746530787233166026114375312643068579241610625441710251695942891862911760876489584907127719237575300516371534935604491294595489745771516036127487604360963522354821625413534928971122562127712705681740305809379281037821339122038541289958085599399786032565200543626029106434344233215914817268823361267005238295491175513713807825802805763418113235011734171463988342436491041412432377064855010366118093173638671758829773811031319065037032071578169776951701043915568991527204357434782162839265665502786244437864492379116349909742872969260051356392254767911347298170685418991216134458526493347451129709533881787147320791226450441127114812090270744336245342759258869214039126167569527699944102745951766735179012833802668979878850960517842151165450406064404336472713849482651740117073329951036402746595262194150899642030680682038653840915386824833353191382768867827359911516008754015610498116895141135126916586812553658812722154631932329918549666628303675486753349052495587071917218783827793853930252702954550988689037038883354679656415879365902031778349284985996902223988700585754406010667662881256667694530311772583704227759904281561612810759698141619495983385160428622084258345446728980782046268433486035243329141036322823586025025554255445878327332408909163673949901915153172465641212490932547210621420047708925462261459502411070280578373930518736495704867802234873433816132269379281210509353025701452465521387571808169396343138941242450598934256192682315216427248264927222445752632834990708222504078494774082651012624104169036961213374372270523242265434974173929123203799971814227515097124412116206326585777624070118314921073271635000748218124258480087964325812224376788360256672972735494613521269519094507987146801226501901567653609797679787379376299454477229191785673326071995481195639166485278814897447207507381206731011580721859598891158320393491640450622257432995096585938567275745914286138549753786010561255046828862753209098222809970763399773322307384912543977460532841274124148955226295364912383858380968206512891504559550087307020161789851176540781495611707199912517876412301377882836541142290970621996153112777945944296535343928496616426159135871884306130340928356658586366498909790380609220014030225217897035764172620454672124111331775398716978182804044054387431542075429799414710856834840866098367066844065653378594416747499346102753817177728115347395830512708389751214346022034320017608946643903948701505477600094002722912072261616039464861830884152322344937629627524708982816900920606873197792314465243366447728044430661919428302767701046434928402876284438733191404236988815741040456617195809588937719431738668237273080358604392278307405592700668226400764705700055517409476435752785802621154228755766508322059234664681284267916103873170085675296040956886538794859547394901823422483685213781190199977240031682806786945356179592676267233185174039047493371228118606276122030799246668501793887873874551248559042630911623619568613299360654406868771556323923861405920730369044626497145854983880581197756710148368070315075292670241530676958864625802957144916480736072812396584359469387721060800400182371269148555618504409429485811454967116603829012277874112323632041880721328312084905866162204671364135757057570514681813156623187274887849663464483668617870613774178191821790896341910609216369526072477730110716713692365776503179403125763456768248403432489507585630759517344701636250195563143465672647511959279911311523948717847448990736527969616178911386616612371144279001863516050253458224562493832081258812555422676972354579312751391705177353256412686047930747106715303316738642866848676857623467143019399377580094180076037758483442986658983876548348007516482038420617470703030642717315873929181919515624992759113891255239200907628265236744001276397965478439605280235226682076072559383198750353158442537924310514699556603854988580689987134132591148125276014144982545240525385265697337324552387421929185091024861881460833607221415780540062208391471909611244602664407183286404887401791415463377644183540481974111933468302027417960467009758642493240340017130670638002256675864715603948382579195854025732719368373603885021762926701160888799622948835947784097857971873604272428647390081852884510836543227820541415500594735315905507821984084459840548312772031706210479349671840381764466726124213001807334705811961214443303368469568184245600777051355471694169665045799068471715867601105435352975164106146777194350785088049318135429776677875057842416838548023632802894706897602007697677956448172852934463311864429644268607762265006519705429742701519404960788318701423338740633247429942196557093986234429819357743494825688713547535124268860863152788760049292706406716704612077278934491761456493755739020532480859015442993647028286471785958842397248072059034045326723324404352358615430702761405413148219260343883143406370161115845545212417976712399053710208019401985855746032123480859558129947376309108204124281423040938640380276555494108641810580922025969213460894015103922774551727936834991389289587759585213879408874851662670200550729074257584487817412640520377774877867387156804427728182262226807458319831108300297819235327762674511639647694454657216929689353888838729503540977636074158997534329505771385227607191848056388365997715098838613532743513879612187492551703601180191539121726802605630589813849739376490515866673736166108733213234059962364814149028721278093343342337354338548986930173468257825732665133347223476323716535377039843266367223075860790932814969122014302741393542246223497006355494904559803867985109193411909628715637211274030489802295826861613113478642243722985143737037154374611084273182931147531331866452194093573682805203890313678120950790655023938597036050035429685362972253741218242872405550788717765888208820640667591993801919514171432361526367801491192952549615010056345407765199308047893069591060466756032766741176540223170065016523914304845206239473995618071060207058094514216815886400128951173037726504686925634224386722379477790081977185257325458745642793554343517059815040411027578587987754021472213122804981842848572117340354799451982964601907888932575974522679857748085268066413036628813629309322541068277107478227385152470762728895555082722059599939822210972102370508647246445922690967610431763167384627967844476122992540953983199611259966694367253960583097301633487670285398983859891215326474855296213044404064860188841269753600412366567042297029427501216107539199687165353821772711941353120246468964495658424469416888512284968669555862845498925443883340902846635598055375653969689466636086006767168937319680350604003710348434526648902463673805062777098788540050965664212513861635759143152651693966220416353833589696001830035643174354497993057071033399396399226950673674566268143609809092002322951530724661943559606320181822173680895502334080130786281308488999905339118429632115469609302402577957266689902739150722412418988893173223290265638928568532379477981378124216681058672851233356425572969580330328864338821161351538621267977291019048165047171751018502676722270998260277234585069547656059312691366090259343225435520445341001441039091418591109461095992569093352466152991598401114747035815156707658988556341735063795985397037731481510362188452839976767172505836266507859004075759883164373367002738558197995544732493501786611965023817725848750259000409066241432027746198666341288735009114734117798256579192368795769290756373782576482147961376326564180775270728470019860161227837224503319380197171465169840197294307071829590896082972263941487076981403410606060997105030112219164759238411021841227883602811577345523990111445757425554541472227656725249067465788182355697794031945617343880474804418186042784572440276311505514838518876970781622024144313984800865881386338805641227906405299673760385964311525637027357000645496770863878254849164322933427303839504996433721818105390846287856098276771424548484047665453027541181154491010304353092331675241088788102250281251478168305716094336065308992782813752065674370122307550672373801669918235240580144452757352575308315468997334867970902833753048192422688598293565815905861863437059200201493768292145954468641993317791303852942461733437172247152310763731536996950478350765708581795837681795999611033216086559039155883115607860493095582145776175159257793540246548816508653561907205561038710088554806150261099310574410375460684917153983192072954506881371685270623867657000298680384070459084646621025028972148007958777505582443561241227458151847653005171086810886016740052646892260702606632450638212780419781202669636327912179745578492780258057125031811271011641575151836541270223422607781440424877761303229634287868567097905679447820459025049564170228315117485303075753814405813115264275192883499552770304817131427399264030155996219845318309843971557153447312266100404987516957252362908153539480145333971686722531058307540124260671022033510138625747471657522367086896848377399251162649090340742411591456704991438638373013927774649428152219380972498007989072282681840064861193968632215259974761559925609939538820313676642367552977326608339445056264643428234398421747735604793516791994926799403164975177558303751162897116816478129075442273438525343922730848379525956490925816054609376636502493109710430386219941177113719430556732629033658479312200800277434012017601351772515084111109878984904469835943025464924558340016404890107454235733851082740427775654540266242523300243685717431618649160503981662055685952395351324280851434506107950192455807455094232432581299471307765386927551555044395334582055144876149299329336818887250533185307073591343817947686956158177566039358022343971535008867803498671081207585358341179671815394892460594441169150855624856143642221695645932643388473524704131007445200459956125019910857611097319148008254811798745232745105643354657076256222198571047881374189083429575369134322385332858247886075190337656033985325918277181413895965967797348114717434261811276794595688970592525793034185009432817942435577762401153811785181641414917858827523960383833067804867821383648885962234035846495353249363944035312001822950529098306144419687811365835040070933215880171758243782239877683936443251341638833697573826398951093073031956152941968223804027661872363087666819400055052670748409745759724721209859095308421791230755904333893461286780902446916682249547899486835227615924622727917513180745268888532657763020550788771530099830750030449089200583151370637449490723389934997878351122400528515115210851138934565411238905859725354756326487533593085097665152365329013596177362060296846365864587647046773673279982396656501030895279658125253065625144785064624156473421152516248311711021979766147521088118573357988176980501361706498905108322590462291517127033779739541274036757448626755170830286778172321177807648687782452727588464189566323456817947335822031716301914402617606481047159681053894675688152263713958772885842466598789461575994011439980867166135496555972241870225178167598651001574667709286458217830074365440351996753971890694462839742798241569364539450550911156173213894118053805159033535927012796815725850004562539137646550417452375059231649139663988571617584074109695800527876328457545012353352560327588074855054180177550456740502236631437342557301063914717539156754224643479402478351959476228612938375415425331952744425796087597932624299985256772972037903723292336696316865849391656831021012526175497875873355714541791794271653054608516193583104280986069425861076275929832171879811539153911861707318073380935748259906224244192085977028905708511894394635404617403774902683420519215268654116473120710155978720938323350817498719917771735107831792145829315203881078783033214034165519424215496757436700404212732724159101542902135950452455350316059760495026162894444319662764261801336225489007781833164287883815204302885704686291065412115352582831538266291644015334665626885556110067308534389990819484072464512783828469554382787002790631050393826999183369249580077880206574533389442621218859370767690648303998842486187777551586602235687861404893944309187611240496006004554975716363971739120382866606345407554783526059312940585401265692386507211171401786789461377232709491277733289552607599444841102945023781866172896458373507935819397981126288221090666005468206357057653626577836960384682085724861046620426902619581429303358835106161811340015318427963535177677937221578274770817741831080820293268134094627548874225488535175527111474868981174341290029671308959062127589779755411578578091494777533946675230099649097993899719816993301689337072132948553378907562741233912449547600962660643860950571664741340647583752863956570847078723851137413605982262216401008952074452811384725134018911685586708561429257667867432348541283456685188157140170214705867088001156761920717424820608868991197609456668557841338386287853646792664694939971812380203564761670799729525483403120889344371973501099966167477100872458032348598033117876957212169783393179437633292915982927550964017531376344828929409365509923578781483587492206840109201938573169503837908796469928048060250563318519628474265183099700129473566677601180179328316951653000344184224410616032295148673224217075976956343771597724983656743179418573028332897244512246545913732239629287388923345028956782920394919552288233724764270704163145239862497525618890992398006067339446450270666814760906389690649987616505920847834809925218133371980708768191432674571353197722952949847896803129133932469506211911472435893385784742333463319798888644194503138290555435933982153048228540036017078117808125491443221340148950835430174928237776704464770308216781232537526737606121125539193302149467790528451205450139655584184662463149289713716535187629417047334146824944781802417189023669834486681754414857269050301006130351001908110232153754316817628418425344133767081511644162449972805052576236577550086699307338137847937403211352134123404070892136110759150858009443369511340356050634573858713170364074365702275734943931026426264144476010810948438770862253694611749823654782838665040065036166973863138591403573147046642963224449291552516902500165892732749222898694208870587551618197568456153274768818043690114787599581844482915555163048574878020423643779319717582829359836475338845171331457251604452221174351060189619337528485381615453733765456197519383182161666555583021416381635313196589796176850994297527989801980308672520923596851045442353990833870060937712003527207585838767506683675625867529584980316339217878873721701537563733006602050710562582550733714563023683425149804223788325798758695613819741352538000103746034063519333702519562305505389733208045487683752545491268842542829811458772144567504291075619199366739378727959201010483658354893115475496440828403981139215585030169388306718141481898476575387119940241442890508562105088631325930319517088078921595151505866945559231233503696375353310951685712161695696305743559763311718677018833057506424563501579297320701131513403914891551112346825564681650758441505298494385450265978932907466693874656944763671285739430259053746902212612294332452207811031742191738746362216414402231963072064148974781569009041549478599574152005372006395823455609620557595934311346850770687144248568208737931820298288424469454062241356710806703360636353461226286954090659090166570297336839593856606162148557071902893429478980027859987396429825776829105863831237352528877181178012283049528482727384566599668392393427523054545869779990991151342909495238073849392426584952998798243758892537993719560969053032616864621309497730060527473613755047076084751357814109650649023132724554046009884679319622446710344513059928443801711508921745157053704045745033650389190803363776123944756627687694883050819818083133138205927844865598307633413897692170373299067489714621894429179367783159407295078133365792304482114996850627866132219951429119717546649925522085162021744188370212177125886472329761841758033000448423557735370485992413810754716082147044511458468946694461338209950685810699660407669584654369709770818942839871598152157837555512041281132521127450391472912737630107841229791859640170177824184475824796613558216972008274156151618189410250871092842131755342961780279075227378438812215573144041573935437989212770298218084055452902036621620324008762113014529797695765933028128599971570359361862514261338395620722582530510636385754202842636685881945931182337587422129203219602886786723562516123583473064069976137459588978479080764638373619452819680532646210787734391127666648969269767500712171644810681830768004265867837681569597338214935043346079406795335478876249394129181528350717944533528178138332375244318739335576661076979578698137381463649247487953029011462678071906699031590709020267412243809728705661795587151068072546958068139092718244427295041301894166134850576938966264632559118862795823544911435800398897600821868876818742902737026815533854970370179456729681844102184626057024326436286525629593186025657843306318257649323181705593988169913226348965121457754900274287761956695470823763781929774225350428412860376190253895145810440247864881089440246656729168475857573839199946660600295172032187111840168506919939059429914605414109379344614345034160342720678507012493900275537092928653517601310658911482876515652181910261379306002772901791430465969638939431313152269334861063397950090481124449793125597743698276121121164422411905977509678234518133382951144768199827201376830206030346556398628897394536523372471774299871444193205210302082384171357611363322331614688925697678399922089000135723108336254457439653414619211866876711046008984105293915408570117510090052403253476529430507171597245363744191739580737419702179893865041993077850282837810116044895761275325917053486900263919505029054718575475415166060939071306082679883127305178237709391685692294866469327417992871683646314142504349848293020033403367035431260257892819955842348934009397678732779811430533996060193699989112692446967638872416551759330498349469087702458823105506589706520870274816647071862368140097168526870700861386103372614424689626107555526917927052856173716379437909855535907002230337306088003497507934057063806937459464312668784102177668466402375652076067676188102286915337984724314214576040236668736791893184140084619550569601319600144376005065551580226939777932352027053094741730653962269371633178010889661107306469163173331815110848807238094818478356808801506554387865299880020380575293081453289610200835754280257387015914478029196378890669213816640456583179668902978311094846642554401508907860543002699947065042967272590829542245908786201689019370078613562340647938567738780295842270886027913328705725846961166229520110596546697422743803103143959125893370548900590116896160027957871012383216647275022110921408947889292266406368406546102166597842962789972408203929171760771941891578912654624237041366009742488388837966294517205723887704100304046861432320920583496937867535011248804391298547083353848589025860464105644218819044992419711913051008503817121600735692499882277887502175765856268458498022294193504749146404632757640716791898148298377357431989136910617688529219342560570719992233613770529108172684056086424447728655838911675941980909313962422412494905819511051948029156044430768055363459956762673241846552924909281614680985973788482995879823584546636836201430036051737310818366196034093654673956115904118902224324588944695129092966482360594572879522710586412290431525514837653136342095829205097579872215549744714012890156816246795400259446639696125419292152586533976486681182937319721140315196996368820162701062176043010345654612519632446220332421454903771225502857052993526772167507615449844846520499594337421801166852950487388960583472626515065770668300532853997520468273175563703255824781775573819404389226474426440854812718747870490511786774445715072714237359411073541146923681111677752908194966735357359004393906548936594526825597324618101239778453710070643317914787191476538878664287248690783211029418055972675955220402725124165332247194903538151123697322889720891823683925369029552476315181281983993492158818444185859404485372270470473578202506696846478488764428611802816792051778900952801454340106429438492421116463758591051461079142934653780852850762591735345558876927554714503836685057608452765011889385773258942240765773269842306638034288488427213077122202738215134661985438296663272548008361705912975555735120732561398665848056870841363191337142418712476986884614194426984938616951557167759173365089040251200487982917824410944213544268596678696878564480603351930064110393248296662437234442437310357196189351840166963964336237824184772518812368583031093196983157631276683365571594633233615359589940408778986043418672465376116198472223371818054576945162407801691372213417028921757508411056639360419275198972131698466853813759382888515292816873927552133782476734626372478951326497802274313621161371377315076415917259777526790593254669696789916558148522389634345250270450997924295935512839820358984916623413208952690650200568500943827707500180124833420107078204058796411509787932418219040648297826454923043960251873569221392839418609812179951075368831638503894775840288131654508795144340880758719902109954549859419845872443027383500812708143912874192324473255128224674130137440374199472362445145374489708967309570645074504877274208883588841198270475709523541961571486604473957271591696969957050670600124852713640495715852655575179400920028744910328712242477377133285726185427519775218147665480860246501937596449368741757349846024448912912492030481928481360064689760276317387863130440482660801012267390280183153239725599632545384486416446495233094128457439683934171370836104533120533945629124979552021686253298329877557842273545617818847517159740056874825058014957246333908679465526278328539101549564045327989427271676962180268173991460394616744849694111620642883652918434408534155549661346950018216167806238864287097130704510236743154857425818879548777305206470102090846381402782278468037648586895689573128786297735479409088959026384584616479188900348500046910539999907766345413427483786566394898856115514648782901396333251661756900795547369102359151871284251501944162661599332243312579051918194301802170891238812957108311085368865310099814903044964569528904362067398657629003507574661026030398933341239216665591747108907100325939393475777423813700152161051928934654546388268981108397779001648024636891636475398788031424272528142108879361990181971734832459444834774346952618239838533178195739767945958635787640053996807982220329916321152750328700701606392980821973765211743186529291640493506125916607052534894626538620787807456207762991700703955428545479133278491347272963981450365796331667718468502546508009752197189993450900110218602048672966203700202005410078555115146095100520076977370858977666604469420195323261146001344516356014908426835041746124294270233924807681946328057172058290640891610596147462645177155440863015323620477063264015259197784661839439589071891755558485154708699034615613027302572799385243231931979861987747612096867050900695986615479445372851575801221955469368343769383319434761811033702846003361545637474573188453056321758901836473408106938574573563038058974916363806767449478455343224402266006467129882909762331714763244122005020232358798068541806672655072330758282327256915785735426445398343628147157424980477897234894427789943388827602014719009345245102459792975147984830684190826369167395634462392753094973195675478020394922553027866868511459438025668751120483001870656450681444450865378358795760506655979062580306342573720269031288137343265664856160216129892302699359986992027809544412506702166055485543458783851775042253860809384137467787085037911257464897002934752661283318423632086323897469634036176964327633473421404765780090218938584090225553257533407786638682507237434293817196267079082998133054982280468458225096601477711525113566129743609101095598580787184336156302185324316662878522826192687828745594196085297349777784855806051254006629457246472273483456868837278994353324404617071347234647687099217121453333848054588631225837030476364510001001189305447180838422861017225676754916929003901440082668020127057567552467335665718196733817338928443584619052702099900298365148352531101971184704696755064701615539590715247460229465842642362432263234281321935777595756115108145023462665392688265660721350835512349506121874096594581312203831367343438020557423867898043458507704889855433558001881740172752590882417410105536821171114763366884953659233365819512903863418112346714586262398664698006524735044506532305882155206264253167295126471304406107274656303965227433778744853874387692177142687254257420986506429866406945489205345778372316726013649866345483036210006831064646123591707813695321285492163580783406108263511140678658180677834797287663764712435699978767649139733427468376980272573870081293282611003490051345481983653102919314799908473648574614274727791880041987879933936313903822158466280543917236305509641190824504230340202954787333931435816323074541204244374227478166159833605424676390427599677232500385872514744248892315710331002474924534505306316176483251875331543270360301849778095551640900475172246604812925190728577764506401332625030084668624288697824104296956292188871763247072679675173861941654047650158921641276975260195719141740408609182120904356376334733418536093666451859446427992144734618666299409074902194357154939271482404367918669687328697458941215457107497787152340549977133132479318111420699850629311147197888275905894811305251201452800282628499268024609106172257103627908975014703488846114043494595286726555237100301104031169948089316874407947244237601755712460107807094966692849732196659779730050323195805731844223525911223982475496943804860778121383852925091145974507943287319980911891748543477868759154424982241037993111154678462234696623906511745436359109798611312749445139486154018175307555154051700974560945663004520272963068168933807541256745788116353355624907657809648981941277214368090908803320602441372615635191641471637013489106903970672448331492939185477871088225620433636722338010059536494636107403753070690817110352066951249624681913793016080458869512129601784964762606365827835287516365465857934925718262614405614934622060190234502076910917559558313011552914864952731802032986313866193581206772951675128066256159692242811327534582877949354530303962518816103647419257847229804351558809434819712631982629447600841647563343240104267673339142928002451830432904189809644299683626195321032167604048513880769772434911580425109789827334264732314255055771471714485886031693291498576341191004537983899325635747531202786131208308253486509420381093467863818182933045052215999377616096649943053369099663408137500864051056172495646207046036716643044208226737530376750325715174787166932089236789493678840451704731961806492234561804984817347080204505538696760138046835512862739284752403227588994747320970920419967965893380477447049334140832241464698253557778246236491959306853575260902711240697253855798804827755060437084956858945161878685974653525494491226897322652124970407611043227210158949057293264156349280781596127479736562480296150603245995774838723911719542895149190330782498191615871950268296319788916157410589496033695832771517424047395542290238017395112091647970322601763220516222449316634073843167938655394127559277920055055505622280155564906728309503704412410091839189926345800675697950590450587771389206261134400823111796506333242984182398209940254498865779924081021309170693582458790778684214732959480760636002814684111735834616430234760774758392398265931740729900971549188236484869988093160424520635919126837644225599046214200698831385944954045631338192585716584926880754555641595106922245409955179588662534403651280899330109795540864981394515032143327152137205500927879139476151480757721085229334080164995809280684134978864757556843358166718936571706161624749893063931094605737310551348869227695889246026627229494829687973080285139388642752959588580072668720772580741217876326829640288566791456590774775690551740461607123447375289066501622458039459644976099066968196728661363869798782489971969467642401500868849764938047748052349917680433411134014534748951148484416557156367661948675322147183110451157925707841825368805048038747707667783122934408719896196641965601092113021950457780522012017672098705750484697129147243926525963809880910988167429191797685931366710531059858767400974476391716758751734826343733601287625968622606438446247959316204081616037698142938379144043152547572605360891098329864903303370306702753256742489079633586359929257822366483849029116305080021929631865845129036366679573348945369601822593325045227931024451372944912717627924334604424305111077542214372034723685997738874787746851495337612745140654571821900066404557626330494183626872216612881605288195517786237335019983730657739490918716772545491216255749198676458654800956761444089526563591807053053271602704717309256274841854754637822374429456977602650851834050748786564044001359969115159269459988043807044886142793329308255878604941732511506812106882121808482232470791650054181837197399390855725134075757930804785443928767108006064663796583453411725461490009363113331126939895427088659106166868068049871419197577570819445225479458650109874651286196400100648137826946696439278868367832647801416161305407003176080525770122061417198136678910622689662128294075725871378831759084830650645346126522235282928798390652089056344688423935953731126085648058777907666416160902731888339935606981156779493480773015396484006413457092174427495245002100700039104857294872825484409880291815077548365312804447731316201558458900826536113976265969624918163585281593699016559744900448837446602710469983359733612773862581508965366997163771436167477617886754770191567377285714759557016348544668816442669010240298467209410110599849963263471822915780390982016026994131280100450308197561525237243440951961133408108172251189647083977067241252031936672972395839278944674729329548582090385052404321421939963391585617315947104910605391276086837741218282118725228561484129285972294578054429154685587439279648617188380284270180273026335534059685530992667716767835182326005955151550932346672637167315287483702071231403158606507334165873433627255442632592371075927763488160545676939019667736276183306761758335807198903644592231828044921856414153820807567667992731546424468663356179364527888095008762271195129055988293529543749379911977143983334598477545082252514474040788600708752924367374847240331719414187695857757312337250248369828847370584002654199025140026955246866628487540682998837936026392722989416418562913207423956588951611189237888713257296601194599767779277327453348927367326686710764160754078936958756677894027109930003741497353332794839506892934744885652277729253716223586371277058816610027013210181618719473293654475418727921921923994449758530573620390900563660667508179770586516499193816582407328034407072113970392054949276145006723631367135537727026669255462130991881104611262143701942917257840948183449419623624421739862280818592845020556157749190231212608483757159016470804262483155007481128043761595961686543610648163971398469478053612542770901776615727368604178823125073034473258638187342163947127889509326114390424647760914372478034110399297201683242632859188498357639993882789815910949271942870768126823091328396966814903054792839340172480728745466955344947690219002811596995850019908809253849979637755122716487548087742325448121152925973084410237593147273872351191495050369172447463890696970708291866843548404215857326013173766324982922042456872933351094253836757582175946449756363441462459822704626404322735516853031595886549598586025167139291586215280207010072089626201057807937736921210394678479443504198102530759871987666116214276943217983750830470849676809460399089487786208480994016922251084569482164817232460472387934550704019619994567069400868621350636852611544795490188406827882728473474292038920321984636043570578879733185940956028038889804756159031356300295458209086844144306637357518117734795626145240058419270562360807683575527159375079089613418475982648263469538423238189072283814326618767892536108787648429223619466352879271085168542461477222280124680536875730317251793318538015228226504353135358956352486939406452817557549919164879124352983364687841457479576243085547219827600231926255547460427066835187845303397875654587038386023263098248194678272169237815078542671934770341400089514272565960241496407003310746658067772502886442491951325452293926350416868816033017867689476230357327800013713575670246277714648672899110712404772758880057270000559411972658133961667846368170734700423835498975151987919275706563246411976641349469695400271358777114927527351781942044395224355150131595472382868002400563734823626897251064423799199031409666858441210431184497674707180350313518916104672004368162038440696136817240463533104436144975189650255552435720084061954009350116146600327437870548331945441438758818403157078677056135064782182646903711641241984697046499884602146051134767370424120280290888262358871682738799114409925631895427378766826047695052159951950664306101699563985149399121163613445178902743249709172923141010796032863429604240279998144502054113575793780848987277548499296675485586834335639163231834089500864984508589850413585173009943853869596784107016420578409954478118616296887157203631172507838868303255327449524480697398611748084220313301028170273674519045146167974255877269530748594688898294665956245470211757194848042453094469658256304466721883794605041460984344839100693366322504007815793534386979933157970297543019136886396697744842095224981317966649839250070613082404881585648005954673824851148591555711939175697981252399691925238125277108259357300033128186308021778352660372872423252983900407946450155734908437759580546823653383762229574929503920583603352134534171094651041096413153620116828990987366400960701674346034278074929752748128253775954500516477840594471892846214819519746814688309104691347231930364667525122370827126627476664177831846506098904961900302970306958080223954531995495048090354225354602256205652431415990267870498540706782413249988066128557636815697035037292353122550873767055089277137295249374663889212069425618599644963205798688910182523232632312854283744468848361397579054630026854102063867182345737009394841224674766525039824127775223863988868876181445874177927792903227555795500965323381739193726222437840923267822382325078698714951694418538785530466993786285372417674446484414467704823135962696055383144246815651323202318171270118961819485313157228779821743883769166364444930731586637941328664519236643146863260558812289532829251523775631822067516438397296848003074763150177775388213984510302741473013607996611291754392883917793211305134604836239781904427427883934381196859366830151545237962159018036599059828900069023779539966534475780177593767012240751776347540538380049022075873014406165474634686486304275353979266661117305812326764697360998250776077359893023336527467083258709971451569556051854134490409988005265889758219331632082903565572386799680845855471666580080707577358576815917879770628446854522831009941058568570815585414772840091439888695864921896895226324678620329141498978467960732382338069314782027777955998523726122334718008862758727875209119359121223331507683414839936653992443013484996906489384742539383631196302235194651820215922645354176054057675800646000816322120570487289326161399568113377666888906005466118771082834789712150675402241242339720547997924435146732036918353682569100180780898630491821413640580775327927613631993226803339024196978186726865027683411756761866115548068365391226365694656629690118713096096557093442056654605394040187445136359754758490784878274913599775753510663726805449096552116485566885913056598200101432040919851429502222802660920820807281239019976207073773303944440836858285323849396991751899671365065492950328010995283311255903306746188552342178236696394513012489260245929668845072890043200830071495355345714934100617665989442051073418191521377389759684683959639355996026993453341104543904951506888987755603815278216448808010832939812692294544218699950886260802362594398924120212134059915352797694626655698787814069284207321141316956401015500703247681007878182834312818063988167643033348608158668854975827551000536975349103951618491644364866732941919683048789261690830111095323936067992279752151686129896325049774901108857876551723778570012288120588029069248822529689539955709067644683802379212132055297721458914990081109063425612521582162690402678441841536845390727392352339219269615734659073674393952270060456527479447217681624379966917899787312059821159635442050970977551275936609263209460866717726269430954723167827565058924861042309818945721151797623986598669866423599106606093006327320384130033865494624662432249076420753320548266117973527967314666785483745882094977313011564036860935566126068920238559219598974293154439285027579546540305801123223099460441551783340726719858668565658840248258800156988200967415566771931774648878504368249328683303920284052849469110646899208910632249779865091907300609557526485427804295167144679976596850085993634697884640168827374561319098516555709511527700553011629453099918950723263957327113542593793188326443134175651734760237088795055391324711343489542028470903859880358982309427155940534894026119298903872873644460901178122677788805858888630484531192173120471417085703094615680637333124458208660663469184940512481238876372243325371873951271227580498227548240042323103021265044524611898339138415433111277004911514121522198388091503286030101155949323719410741007462345722750017693261151667627700083226611342729087778704395867410772957153314169501199237580813114508377639352371997333926127874839169946854250431929531642189847977092383471569419967927409362314547933590252035030588462395021468694079140005737184319904686512656572996224602229025545499767641405852104463703953991394560980145769418714942638443692138798457266732857979355803599808282389570394370831751840885103558824242772115473142842021096934134638648711141531063579610271459753202998304244177971129864127248068859294054803060311640052829288187040529108423628013041781670153803991299730732680485338616348963484863820369887296456149763129004325782531743413398568258384905741204951954732061847587049999831569803385004862184126552894258613542005182375746546655333848573570609117966614661279483037215249139647588741478079856280024566349494998091508032947565469903223359573120210188365865571642359396155232014526263261293068910882686233958659792341422187612708849628228531688875493532775592485419149226398618014450622371164348714803369150700203631260527624239732139667535356887571432834077725610640149786217573916292663890594301303766279272716448381091472709127012680353660693760087968787692950639371736928535181591561441453618528285663631234664364186455418754036168145035479101684892187508807315434251307867659490290296291661014259606223577043394488190561734873149699611134532200949044398909144802935892500967201748702188274259660405606912843993223065846599296123258043250297202659655817867445191722019264671480299107662619256202747954101112562188955123889328918684069682645257508905155587240598843498274985145619801956134575997791968083501695976963454717088357278563060498736346154158604391378588378392769081095947212218048838884360558034121965247879864803310573694129542013074959662476644637041160211238795108894547542177890904081776812330826286674356500395994592449594414731182311750804800795097754088601552279238408006109269277129173008367033244250350672626580114132390755737475618699884465818249982394360773801166606842875024977120215571726977486705593492099370299380570651878545584432249598383247376493860007588856775616165648784366232050808177033277435381106187884602767436733106710590806840775741647824506239181121317142151585863237113817303444116064368940360621187098740425233560435534438838710682539023408468979239022718975036762225630024995281252966544036294964747950855551339668384178450323877316968640411094427889536101052754662721704975856204232640582180629707144424000160535280952054717509585682396365181556885934698815538603937017200900080777058466694460044358232328626588031512812233119152403104788798888842409401279679564691909127198883949704393703813627092152793535085956736661563010224333072080946391969528631825914451599538859069603033677949933312347996362439298858032735803697700911628461740098671837093135788631251635043241305259107496575092703982232654190765527278231860981073095959496776329988554477212192419156457389391605715200896164521937174830155417554333967761496058971801071372753797354753606681220684986319737769765015263685173538276883010779793280997680510628512527435886216982629396030555516508446227637913672557963876051752112503195981102323213426004153223847087954138195588644057357890234066191565720977633172057838945545185747086247632309318129981105243316059331883500853940004012804389737742778182941301608926838468228884726626591630826273100065484776114831749752017148176758564097523009929328060268222048724782480990660051314893731039571093579706563390476744084217676733771809324587815231831612357507956099969927926946693893568816910363698620173400213909134046076659244561589039451593950263658962390949276690626146080637429025037243491801584653490910884251655885823818876594823785608031097404050725554851028048711180110317899911078516982849084399828481551766452978301020805009898259191970330262588654889518867231274012229246762236356243629096620243984071122922680798677001069317023294707889020953854651300441422693489818315008040838334894565323779373711357942136737239504043421196418178320256333646655262122965062537694797918970136044554246802950733811836363786989327159900353236347461210532306839410596752613590889991340299855639664242088400335654712297307926567645031521112315100743408308464042645377523642152249909431891987460863399688402592689734181640738227794334211407785436342030479904096478836816078865306313515476686977003799437995773530302389367589803813487612890353334286174791929378359056312805469222928573886753414847298523697683064335381052729109985607721218749684843871566777603731387195980258224417980370887874618669055649318003723773401214157593708375090505676743470755251026655847037910313039486482437051337293982342226549974115241210068088954332352756226722232400890207865271371181609814610751052526810775474516807408684232037667951096101945649468152839030793907525994890560205883309307880562362902839518262909449778214884932720098413732928055622240423699335045840042347291034187973676690601338351403118707623807454822167742493168933615313115612431800030149945096188922475621778419857236103081260222433730756090376506713845265160080889696409605033547810814936815901721117838620434436945719146926173244045613446038831276994720875732450266794963896870223726822670370125012174213132124691624429084181175185956402912800665434461839682602533785044047951013887583272556222043206052409820687240487713797623015458777556614065886893993610106620466599368222005636582409877982792914739143471105745380745187213107448440508221918163221155579114415370140990081404694677211849030273918684274233722394279372495290384809612638840575911240307086621067988083441532289086636131081001178475178001521009121105157756446183612059385105547853592953537187112410768761602613022679031452089370677826823840973962261768063512944334999850069508702006832934580398305230293122173944342501175335990782099531763331899169438470930093401972279506454587847032097813979256281049637168869194285934972682151311613670935552199722150703256167832613780913940866574278182565676014994572000163321421392214918205225079978687382402785667703029911438508468161789166096255010664594470638247350235849733479595465079225230980708897907223199309996134488502701137562931890177277619250068047536579857099400458709675535368342207279997892634289510349016489747124446656291774628523159204449502707390313500416249003439160398953708274648617048376880011233851411809576678309223403289568924658261723194333916106084158555235712416906423896293640671694350567108399687699713281870075678422883526062641602519601014902692139038542444582108704579443352279137749869848989817701592459323706417253159679684608626125516054483509093072917203984947083359634364836966758289403703655046935327113282396724295493327559380865235710220571185162040732762667168669671964260834027046079090207211336533372560976807495561904926983981595384551756555428908782203877166104071732146617343022946090508706502978844618806817095181688930792884979309686622610671406352738710726220070850087310455112574866540882216710408548987132054849756083201731494834277432872253580908683676864641021043415305784399509003306228683115203379547645903311073204849498732493690401577070755828711027208192558799007341117150471075221858044332065101297838687761969443505867735841800692282735259935768903060373610079181738173470497668950473499858997626242597146919038894102230443053739986703468207792552438402816383035655723798178035352811191299418053976638248857062292860845364586847977060735734438204535402082276395761735657755675912020296106300764520614605435388194366839161047261268402627416822969880797178753883467482961757073992223873610732871911606302687750835869126369426964100729175257940723868999597915633192564151456477370776665868278637712130773114097022412188175279907265632514996509808167943312464639937164155706141675205044673152507452233003298501492170097469490955466064111690163615346470367569290891525113571093610711747198643091681786337509875205572817573618196086170798950388417987335436663602331730682589403954137296484313261068617606479518486592644214808207249928649096008267542071482202204897460563621312349782323456230735661280912697855684289121393197191450201599310506581739618402683512365856131981389069931464593674897063843068742231021030874811102449232399658868180296527460870758933973767262840370900567455312071081775298119578774267868860194891261203572281666793128401197968881793593187684083432839004094093842669298466574436462111019502443944605933158430357043382531256091523228783210735280316982480909878349563664312047304212658284712777389169364411848424743970729481876992129736318257079610305586777969705692459856290257616700839120427339068910782486736534521712281420775617674632701351676916050207569589738501390352233621462011940660611340826897595183334018137897525648595722859393924953086282905887902610493743616755586228894484377770284736031142665585279676935402131243079593062130959333030650020527529178999008891299393819652238749680310522477506529637330061568009087201471671388178444018177843683426866782174732962868309662111661578373990955496590586962275690552455614170748548660814394839771650966903881663788157967337220516553883694318119490902482461415134966237416219590890105175130986391968836990148569682645463466398593470888261682860329008409972554334007137323441883043107323474160796890162540890455649020205879650769252173175857953237825346575647057459520385486488041870473009084484017518160688077562560865721144896270260937276908731230745973362371474737863207247252757037473129764707458499005679961143853033484669211472558309554629856443161638263646540371523015922756369363255697409842900332961438775689943581258028508568255862647965441904269557100171764317903912454505041432177348614340795048815824141167545178754723394602043961777097925401373138037017286564344340198748291845353043507653594871715181318165858706442569552065431016432169103147964707803201138124418862969362741995229231094385690459023176927268620814498656715805033176166451797580671571992536235713848945479982974841132422929454069206938071570849325405125251485724492221284534204593704879016204723151541837131567544485392394417655125648750877606680687128333845495935819406428528402303939124724628206520701891077301687444740952278946674797954982559816525797597434153827676403938365987034516398972869596269061134112039447086074082106481106251744255012653879227660020324552061573216220775519581798404545240513301600792655619062757745003363893854226359458035702053288797974353494568320161979297971237116454486530641861188733606331731926692111061205724420807346113134779685576054852243362876732647105383564330014395243556095737493807146457064634031285432452779768932728499704918431411074203711949427737548614108563976315291028021001501294696530894357560150424921774544985550159914093702016330119726451813496026147360672778281099272832746865829794900238018514497521825949967876043548503693231822344490564045758796403228435472676561495724180021847757297588112624849542011057229172725017334632502647603119951593795022717511619906179487543431023184190902737702447370723478427403089870453303522126458324853158789921886558392618284166649902333199189777726711714490729519946583038935891106464686117871678826530193883992551688484351573381548408090002007724706453407982037131841533935882240305543710843997559339415642767208856758630603238896785842346260269001463802269986887802718000422756308669064345263332906200222688840106940626349254057613225122478400621799971750629419022528994959491563981372240915161460659685161609734834819532677580716187551238608743285035022026811762848051939618770726383228566504860778937312127268287549382192084890376134589337294461532956316874052979664146859405820402378489676321330065851676907945633539445337340598306770411027779994291272498111122340290943698107995116208037878035431980925333306520551972642958704827842965857644926438152011688713965562514796416059014749690424104846762473015452816651052861078266390939430142608614185453946511823405186682851416462448162409195975791592018448812143856460360870021927880438369673919472150179523087289744891683498008549929747935894735732110404036533910941607414194455595174916335642623497602133793059922940523001971987933054929997862046535669077044077998094277702634118226572706194329546222012137208253108425784457072637043155390887996735553158628464113381134251556496135370825242610759787457654718579487052906421348850120269448853927810867291948911015543462135460061965110183066488690520460210133350788514656548572572862271212783879080847385062998142459865983292638241620356474070746115318415404397139575176681851013717714680314125288893687468012915948259438922645356784967534061367027571564967902770682962640552382603165016579616265061452467697649155990906253799149632170228505419499399503964749310367346124493836468740554515250409824522983533538058093313859941879663781875592985174483771287152069699351686885273600147525901676232403007667357093914747068321623241230611916980039736456070237375072637082889939373537732988494066100279112665230884555881653825619411092664650097839496734387237612695390651961125180774726888275526631068043773051040181280214038420823876516453604520588421603671220176768608692742875542764976532174787326942612547966485119277335747276076488344283016947440914497848585467381648893852700604235887315515660418650605859918914962417337451815566935090328961924308311013354165662951690164613941357773151268783461024347201537136862115572865707878073946620699509641694709579458312501215765687923851570481337649543314973929567804421871312227628419615617612160908714072319508335037993342071590353143719770463366267074053337713376373442000777640609120358970149232250432591050354281776907873732714075024281550876856052749969252490795093429494371129008834394427934256173080904614059712185863424020731274627889668901128580587366367609158355260520359944038195814247667830576931599719278812530089670585344988928254312173481511061134950764213427547702005213201095577383714205208636699997053544036417427012824029096879460715308090157162919180021381029950000069697038205757674895337678137899307855874679504718741543307652925527502528057433471110769227052928200934116021108964618224080509497340961209334420637067672534748069068792140349147087981735173707435645278785915339971147027975171767899141700875438573190435710469217658887997270490831799106272184319037010562654846177933835452147969215413311552185563348938176123548467469912097418400357095555019379153249123446553786798943863531021979431232999790783593021085965557890197985943141100711520334768602292320568463247391072971631775957494337072042324403445092913446261064733112983982611751581260583652388508898496392043320433808228953987600117968344709557700574612906503960613761735266733739143584939074925504049594281980572648313958387841346297896869733427085165457439356493604120031322458430585085496469060685028339114233451436086864269418884393464264037661561165671222812336646691544864288559608748341989208072764424305966734378097771215763837588113792080934715792892111613379415394983053282416402193728110019661612826630244697658777571707600590331022049120676317128546121758850151280588595838630158506067422814888325993110006877053691046474541723636857431838135511573983254404891207959644710048096598878133535285424945002358314773423744807995200437411638159159777786222726180808035477301925589892702634442983623847822852295301030495497513259333620453743253054372924327465841974269588556742436199955082954529706149763509512342886189261204771451956265582525730491002670868515260763998911031504488283551546407160758427815610877976847598919750584831508731758964359939354406296443457347322897569708452263014643364284817992784835337174388587843380582895096377036978989011550619004139410769850637893822357710142011807205307829381048312386537802119697649078249553271319411910279716204283389759632554053689749140428683149111711291599045914759686335641830172714173563529843236124898107054148996151561662517699369808299029529063772431869969629792045531702165493647012709507221803121606084049965064630943598982480467829596149619429138816402731217970545505838634612856932021805207265581413669963602515471926370474248586888259806255601036475132177432047491279314954398466314757538376794150520806385874411426642099426104945310244088005329430010438295264867144073057403633620889847704802997519689499490274769698577969245684366576954412260536479258520435809219162419230822958164958337163802220285305744405963213540816123564694137582399666072131390480839962125058270814654839846406823514397654868843673052635530866703981313758029464901458726063002224586493330330618668374384922836548569683219736882419466160550037420501592643580811722756679803684496841991719029506270627799592302775220666231616395198581276402436747522814895929937124256974692173496589787505883172307031069306867638340740675468752932454978613853867728522738617145115842059896391332267644682929143358791238921638236226099829718876043995939740018166571866076104491870481006287378079197667273822369270651957993721111073763316745533334178234635893027468403764691542602273249404956207261333081266870630177407653822866770117410493626921013393295752083552819491838839075496903666511000379799476729387604699179751805069998471781705334753031787642967666662444821165947897021806939062060028067734089082477901697955477409981906733129300479243951592577915773361237666585872985154442200501013395257925050050140605168745474340143913352770220758815695232033311040819378957361547966001762271738090438341869874963178731331182448053375582949319760960807830200181597956084119278606230010185221029307768289658050411223186100657573268640465671751631443908342625986256854767206713576853097978263824641673280439510603881450774481542849299321885240744553562134231554979697338447928196377707658536097069432417248189973912944819595719565280542094471281551755404568240420874778912465320024457340999251252289431342661022306510952934253027113726622062694526154918104635974440076418654519775961434791478955216967097552270492451759940615099074008031521052519540135431209986959036206252984525828322814866360122496740161076456819270564651302220879388715570774116868433817914669067944895907149335305556438203288492585251437604760278673010095496431507804583964032125277945513206211203509980124674898001601229197550661854496328644720632809481614613614405115317708664307876147429089486201134514486674398992786516588555525138907648679151741679229712956422395501310035206348504136081559194414916472728183048610183255594718020604701826086062689302638559424824275614141235632735720806037069243365645315173520440120388926674433439048357026173028962401098453000612155727591430218275974772202692445339933266432285217767659093126445091848064476823237604643217252267502127973499269270311537268091023389459984668004869361424793759313918275067988419742719093457959009959833036663052439661653681590872292066878326413958628405578380585490503896632121631130028602468502725674781982508991924912942591013228853274095890354731574597733650701347529533484255887956760308344295322808240414567060814771751328658005814142138453532007844935288661216653448980455162628944445238581922809637160992961869249063009586415740126200627569740896677640317693974051652663686427349525729672704801280371243184696652446953092010727637983505525167596988975141819639996849361989792620994558331107392590938504792714139536449736567376956223984980217643029451969906158665672953058792943809991033140422567358823911405318117313654759901658949132328151995547160864913230720439982803914484400170731618951440838054482635741179375114374603303269990486126491518031621341611626847419245069948607635706926871882508394757871992257011001226631618148000342688229491216572779118595926627786614130130801935981401453517482635852208816610580725235527919182962194486659814413527121408035833814893535311347181580478647058478700787494770219599711256536901678723064945006075571966130256397073166861021280644905810907816104774188777605397978694117876541715955159345345368044750257140417908750821068956431072844420454720047035712194216219595539017458463929340474903334435812437926629824302240137805736649658571071615905708832719672264578596135583958301266282373632122340177260094700333661801112956359585159977850581252050583988698460946221726549585048246578302915439397365885814716955164206239479926354730898018770468533080473316674567700442485663565918392264365620749361824537138797615422556474749136936897239377316857015420450744560606335303013652336689847731695389324162524661781485293900101595790350540036707383614041219397981267020638173181409744739417844993816449233398463208174538742650442650615466135102028742357328626875101274243714626151392078178563225810065927670804368666352171518090574879610437175464982189234426725532413494430784813756152665577781409961836307346869365191631593038266653150799372051133991959613418834491589613852419299850768077173738949634086829971441474558298962827072149742746980981900309332010633005582331489195194964191745538899482848664248701511361281506569907351088860683333166997738928845352470168939636929855800316162872486061797833377827385614093987756801222914079438267746214579438552529546993966591673750651449445837648514139811749510166327740280491394596578705033452473564162203341208079355087398865535814524872045721247120819242073377996176867862782423496582638107078586407267308342251410588006868304553182747179033492938955696782073477794070906284913814705180869997735682081693126139832120488954671897026571198748524911381496373343994732564616337793068534548599408068315574421692034486855227548756900478626330205985186783016520102467794044277561112269213687041358226014948515959181356337397266026648944011355510905837908326461915732486586052531822590428691846024810987607991901624488982807658726088224215813700595730145698896518392836211079241740897014464865768429732762525819565028864029489911845143062336435143303953608896537196826590728043625412718413882007245305596696339387638958228390937517408274735763488692740225049704573022955651406110444121259760876823835892882545318799484493459869076147029593482843937689846830370187956246472913131836669519764412417523076224630939655838670920945296088935676466296146717632194357588805188639340019923321788435493701763348019813521778786773864174450322780981318209827280675776307236007115912298664207166112023072675399759822284172359518627394221555228441725529588170069062761142396530987106083112398761204538936004925724033216111900272366672565535596398979099200117589278208685452141615986762817692674322725825761022723383833805726140402032465894444622682312944943477744981803660162974802976986598849962558775076042581759768374381645322002545552539705186598674771557561508017776056717351823750553825879188373938997653031973945319508102230858258879648028866306264308983541243575094208247576768803770922275404519549500624202392266669618384794767474287358831061208074939884930784063291078668834142620054000639103569732182951559113413511859960390800944852741809019766710440350154585815529075261911234636017456254936030535177305662223972293062284594671963592473587100548587354002548385247711135558119203871207024055309221853669637815017348948043986727091027093944063062744614618231544915499225212532806285355151953209153051562536530665989262440883878252677324005987345752359662325925854727786074468455873365421306952526868209463302084147633452760822035043520984311843808656646543901620768885486503160868487028824967046291715926892492605384243837218753892415622200735711954467589884216037007834052520562549183421040508444337545388735929563028413250745302547890485079350251462165818682728048360160844002524433756984185568481928035405591210341187584661275124168197125609772974118585159017715421748083957516557342949381782318803257466679552069394050330639581439216368001083819289759895011879556780420430255155851347312194653430907424053773438927259257839484364446170743444971001019006021543326717077014640530934002936843503916355404792788155070603310384054169400994355098124868404843567868849434584348429465293713916514654525990877158116275070613316691020082347481325936030925404133359003462557738291333285431616962292954048632304473699548271322772153933936760578599358036090487803645607961716801795481800716301890502174149368919676485251806182162967619678985961505279720904364961511107410269728284541140643749776938642636088034134773542378218343771621654066545120435775889953118984981191251191087718429713184400377043451553372925790123729952665279590768780404097686614950388479767386640491231764815821045018760688186124742811759637954544574639943670825208093536282147858587004968306318766367717637141486521075563937323889194834705329339365355585040270957890530706017801920724617640388577827548228020326318559598192926027293664825701738398667789007907575324450428158941303904923626571355195098630045821857320517347760167434487935468537964752247342051673898659682715846023396084684292647810543795363822880522110597697992614773027410573541293744033219927068341919724777353971933804338659856299072563740866270962234990749839303644823833953429244087317631461573482640790480388877982260473044377504118318470224092908260100807420310718291579739098056304423901993655733367688038126617815590420504898946851436719631881076359888037615926859497555884012803501158256511046992523502543233750756050699089569846196568596748318487426072603525245622373312861633983383640338710485673417930500578015054581131180410337948552439488350310257872918714956153474835208503182478658971626739457082082346868345370844959788801190149142074638905558242933487742364204019346307512064371960328994685532410536817345029325551672134724213633463442564429457364039023851109412338532690729044858097764875528189925622336538474080557105927129854161379752704841860367150669747540181168911293593712173902414630926968396558386686676008215925763842663283090469653940177329671754353300853528301764582877215078251193854729749393081555809876146319343570980353555360161911179720856619296751636847357560446686042218016307525898514641923337646743586089464760069029672082788415368669516671823434117495801151171907452568282805679828314187841547770243695731508530336584525463669823408274932349567760199874443571956273752298220703291109763816032398085581071157233242267962223286485167329290279427357324784804331452888591614947402737048760783845756613871833209893810955238152761643489457917562562113145765343080365927271186286508303696862103938082111947359856454908382956376505846127979796033897792405204360144233828435360495019991110328389782612485908122335277837858947306042218943138484695678678796998167178497091731602507484932445668785778905831110355500149622782177395978860341508743120915246801343902255526160328951161611823474191976372945769097625816580231379636074311250570294172249481309321955518543473328848477689129090965836206271014039628703197302569333773125079884297460513722149162063936840147112252719047045767730447495746855557724855551693564427741143478064492046521347968922424873381855676547427925992563622563275207905350288333931146859297080732901448081876398657290526890458253350896799097167590644994589702006789205994159438332131927775440962903247369345712386403321587993370892443829186496699758347230051299180081823395921095326826892649038917738770289363974276486281146371206532248684802327762720883389452972811349445874567706873243530371347006232834178047287917567267673185082807808853372562379986423541618730426681320707499523484820899703687542166316855877351194006149610535025678130615055059824412014739750042932881736256474428881145001888737390773685009224186403086361767679317459984960830053180000443083554459529077150389007485577416553132643887222258020631469505917475533223132190161162046777016378961013550485516962199822455336128559936572296235042401001197169426021790157908876452259051081958381233061596966552442728877693116515454418393101332425687469929260658879307297162226410417168199976864708000226544468570299433538401917873000109388144920942174984748838622425003202835763739454661082808130911006345650111997171483290492632843432462021181749341327732917524995041957886553886255754915720220580885510790533179480436613194187862745545366546140457980778784153434969107663291082962866069756614653292512609156074511145717529173246206881857269757940665236879400307461941864699037939277982672327939711377402636925487909074164694312237537120738497194424791404089557329177849194633211837742825280855812249580000348874683353479851653966216676245454225069298484231469039296835357604679271887815306747463780149881708581299606386277229688839030435820715659324786981683714292237196257079999350226403880172629376469196299316226283206827821646841701807365726734199753977564613536908900931988714384131577946577780715748277031801369865328527163569418670183331637708524756682407384752390950739868696758228079261053579658018032908289023838235492556681998575769420446265237905591417588404223538608872032749434581868429365126150420312990130235478040979059304167584937169456273213008354878652406431589914085093490897258358089215840639053733647573557356314775938723267985504199648672013604149306665424073610650845195176553346434037120336276386822002089351676414389371998331770530242304115725030146893624371108988891556504354257431995662573601830336680862177528598182996361290176660869181875183187700870268047986335416284635967219647505152794067570653382382056116081448523888477998261603202950407631244055831001903377865555389889992529145015144216077341468516242928426114164931461675430084612122360881929864531298770470823015374780179418620015717402025079495621451232266185548186528870779028184481797388072754513561160145258888787122061609833826365192315186204654820316912030588823504925756622435410150384002476736155184851980693792431578160550568260034569707495401921291895861231625320020045666227260102128791902651626484284936146883207601952519171538317309818961661189532750265125066562865211976416656229340345392718274840023209731449605069347560361379157116381591481371014523989899611783460615177676355757706166094153873615504116050340925752076131264809591162192539832056508956032383751694488802932378219899427715731311535003092075338095366521013844852803177359169352230657579640208570870230970689348264468002591951112421266879106457691628670484970327879634553120084582624889644982134109926617418636376620961540685980751716247258058947620091552684876582003649379783500414341552707491128410923974885486039671780119793179729858896397547574531552279188185812642707547919941055108613332389241442167032768755522999152958108801175035871850689377430085602933533859562850152642508089676710008543466100478758369317629427155581860976761901870568183361785190524024029272775438431076086101976141135908952609976899823632529823491266530579272420340747604138241891008590702020618200803400318261386209654946136475095284336344874203128988123619775398330809775932892377999014299633027823163359432881422056816827489100112858144666976118232259818024144475993238974075446210114108411433436867374902818638581805503491476689421688814102047712438002942756759862870899563551716340944927160186430231223708634880662761946729437199686207977142782745854867909282706160430209923707284990196312467157825109669879600806067234280355448678944392325168960394154557750353622847961311755092428910186071649170533912865217353878191025300795609074005554943574667383966105590080854138170889499782486517746891994017716659252189839838673381614774467533199011424027954483846715343253344787000231987168939371177119005082013493584935173094498316559833939418855168524544335251410891407980176909259023290964062646624008783783570121153186847414995544359424549071692374657562038677052383905052107407252549598727485955550840497711096702723726547222579463675757085112740031978603725425149114929087534391838105207140884908140335541208107309378368417618390380880335226158719274553355835819585314609459535825484868117429468897284130677550854183392954479298448391558263077447233186072626149013366463212440333774032318111621179286928799951593324768839824301851372434868914938645323589892939887180743682963795106102528615633987438291984724505040846748176151087197827390081272155803776821674743290748045970398890153884733869326908817900301152657904200696723536268113310974220712501998492757190783175856722695954014472002887499712572885577068996587712629671475607335212303067734513142797604632485454808827061186777737246735397305358376516150974657569854616026371870623760372507238457764173071540756527269130510958842709780578068144336095243614016090818357465952585844158581564663285503489533915148442204636914120250396626487999634593965695404245978817564075679199269368111176325037859875219106827646940068251861283290287451591695218299395975319666852700048725967156645759081445576483977101700621902339760830571076251217542946973482685605798954220905877670508279287793813189801642507648826655245461083633335334403191426092943093646296768833344815078042384423428795000466662047610580095701882245037713210472445745446688547634051600259813989617264794870571390469652376874153940973184407347090140829582583166428092818987694051527199634127019198612560597919735341389339620393940287559975664767078990525237374516383249970304180694427432045199008805230589378140904647183368941542297096495263296452082566768274951632241876605067272143743946468765472052653064365883069611899695017276949702385186040415224363513913987233143423309109459449780010668618837101563613714540770421674233127016466251264696952492901124920201654260194949597355344473571473411353320063179977720934259478562125423337375815990885488813673175756435590930539240134079384304586056260489293924458919058526245058742441419764129124850584578518541417460536068624749461975985458598723387796375725790549934566431603115807391947161059607874488208933045839200765641451304332902737209599005719675715911530898694030075466646028394564454670327777895073766567880784419923416827937575609272044116899319204542380202981354746182973752145059210749366525259074279250202861754011376069521249998692896788985125920795467346683914692550756859528254195073978633777832839743875778159396917789392542371638384356248798078461761687623912745195360617786914566558119423822589780219951164617698477550638447610495153239674945563879317634827321030975953431395350908718010305603607256514146762928812593256663515243861328140918559099713818751746509740882527643517063460956792940172177441071238981363563664603258084631624003799260568491510572743538724791898694690104589911807502946295529058909523344813147243009811727354047407233879934217309963142362127253011986361393500374824631956327967800071417581178310975142735652799182784969128840501695308718795411188914302401587445500987393344965701409221909388969231833302197861838960176836017718371744064832159797134744861909537554544602786378809490390030741070395713066641293641048914691892382239354630348386335698475732931892232521084850471910574071337844829769515910552983433015269272348072441324880518657109882460734898766915410595818258482313688297423556031051616607442083114315068779711131708759519676415922986779163917660343081343485530607363902858125353765782365985426531310274540212251912132959721846934249016346211610348848745896789711743071365165976835850778675500911147045083222803068621110387729896863944778789275695144031678213535228208014677366176325822955333990840542494086125981541662427679135676708493271639311078294094383915130474935211611507795934599964996420950330284766807909350704807681699423445818770343094042047490152129215186129169274467278386315838647993268213307264284084599571456785306069307711561310591573480612407603663473808530504103377459301502687333749375510053065592625693584357693633470908419226602898826897882715271324149013571255529750111190125736883172968870517375214537816128848310802262590805020066971843902399119979902891214618182126132808290860952122606113979075971685374152674142860495572685230583566648753339319410047764923897445542291500347030038173596252405987407585784362956049620732846837217438757142848237438279937544674431244364153269710138815646636983359250413193240726558612499274056875894616696530398679425850095562408801494094593061116781422260623342780783528408908295320009004812108893018538385007866460642159432620352492308354483522084998220864442559862586731341281651398577378742247978681980360168273815292737619110354661062690439885539275171625092577132835480641390881724972009783695060519505111295438224270953107338131705037434270888451700211084739816595513189413713911907266926196551920711912672520922051382603292736847334600595655388567359838976635966859408495782272124412777368251963957670047615685734290489519337972258703779178823828586242212064632302846119069478425635067770557301258647370059119834948594892054727283391392950325574293848300418871277857645565038730349220156742801279316499019932370870085863194684477708258954562902196858398209181592055698211766200001749444854999719663860737507455779976863090387138329651201602533113250626880316164250863130691990173424201956122522866262281633431394122374713303257740658788517050905267453156918240521073120278820931740348175103404867683839149212093028381580311473544348325490239622501164254377670578789046772523926694334007334624906876199905519338879753337823662380134450681932181849323473547173481501905877135360437148718820285201199201478776457977056808364076258217375344520819815457528722793862667599922698106617993486328076866285606007217061597414036676092604263959656617640824290236977396937748587104262911179239985081645113560938549043012753875952999571580857841214200100234328572799711465856618228940524076456512285426321578066622292408099789606966990551620073198402514694556282408459305144367333851183154524215849998708815394724399476644767583189615104447235600991939307996036574897859158401565897080497351700168628643017601474019369468497566772223569626854706763348403590058005691796406968447639432216528794516511088986765105206252263827121675916740252904729088224056794493917318016889041299529515719158853694476983233686272361573347596263557128114860246057185503748412029964078037047649525970886506580477120801011810385045270589273319464005571910604888342395182096794673207653229761441225188343022350387218550254630059554393134495689923961837014255176939540712808764793999321137935480175199538412851945474193342864665804933286210177289303897640226690642388515109548636853057148911022191476301709868331846656763477842350670561821916103151758929508050274511645808483874573816307020253731787760524716823550560162401733785366767111823775906460427682271991234892824166490461650960718613794058727177899847602290098757819610585591877000163764242252954401106479315469443882830015264633965497174751174742473954502574339631680103134175089653636710160544139984657692870051571710670681200679673934014830553527170985596165379118444322842688477889651807909821485183828200666449614134647091805774478232405893361898018371292839740630329785293125332552023938409469825854515457280518594077087318509864265162196481675305026957180474779092696380461050375555113649416518106313031043028111677687073475344190966390666465244393905191135205088615671437695081003551307826696777395678521088982805487063017641733255994862193861186448563815422635547142240840419800705763556844306811504962970852076393320896860060610151431129714369962969043375373763720274134860961781991231484995468848216073899280392251410987264384684529547697426363118051532774668681384618508362193319899965939452537346382427675174759724025087673128575459379558866169038797470962742551931979425876727645666118023040569545897476128166916194318967983115599511567296794828980227871637842470607376716959468047656588770286532981111875396346842619669792399371967411629412897158948195880814817947782364068633786566980197497110644764783481290170751873371446589576880727088476779605408818637945248277273242673711784862373811345216219917811880042841082390738213318747823849321767522254364734799338541723716575425697899684579600734135207081068918133435420220877223100308002826023794842601279118493349713621353913602532962028314338982195001316666162242158338644689853786077895654833315546499671809192194205055065960746255652976779975776627396464421353004285316587374710673581713102970073618283282755454111237346713914607964790014089580203501449233405860089415940362606564040498360825611461682058953105216768908665762370771825492943297011574872370630813573183482456148533933267723524496785212895370607185965796348502809472245964956366098612328899160291482026078327950958731800203072054862484547689204274568729175915207066526318220907053262058373761863817232570559796472494985438274434152955700320840558987431270001933999833726171165037752320221292618786748441164504982099893496289015267058856702897973618825396979676855830190377014144719651467128172907221898234031239105411422394115084365905056672116181981646705631650964553862414946284058042061877764199095461017205468342378561689575440329988355185247690596633689888068288157213871264894455156824069064473714901157857900135158197602378112135446274643525440648120154856796419289613966124510320494202380260266709630546680716967234806076967063701457082867980285142020732497556065335743806267616968691019468918612382017655797980949034089615163220838130775487761384710667283736703990328940485383931477334788220678131375870961790285834888982109100931221181940241931101444307484418727578401328810591776054304032900685579854040135940973138337839644279833905471615938467831555849632834400158256357127123615654908379417461546465004171760543498692167060422244894783284529855740106229380477393187151848266947962332910559015659136156538806420743067775894845814326814314281100474885342847636595822358033461493369078014236684770091579665023165968200665312647494329004858325647617294918065158454481897708797473285993224812032914568405266281442261671667067898570215013173909568609002123610914791838723126429680308874051796402396116244046161415970341667835327075006256122200997628663267446767947586825391829524311755250485548646535056668445446837491821685896651046362442113698236052099989078464158564591430561832832297867057730887145741425526222132056378562906709624500523198706150555594120418050846020085567233558311650418136869668053321140610393196225771090700809660193466420214476202377199948381613748339563113776035461886463241845943516993735872724140010904584627767239686436727750600570186961591875221935704115294555159221153304968221300398846303086434410744888624267493350351833961233105436522217290602312008330758098993242227390401377880906204793000383215337454540188228145557418042945144768117618395016680941435265088745776583166007340820654652183578634596629612067400004002977714194118288488425563657859787134969682661347937002293746115552482726612220355593900098314148755461532507506258866587480429070802768639864333320623504273545480644826681957382444939817259740969855385309594752044707838335417832669311990713477108418498378945988687093094742425469911010090988015223353798701814521263711417143112932874188028651985329382360473160862984285489036379855585135463998435629175140358203850937551522480359100767956508296173203569108369593024849394382253673704248539598377916956058397443445547244433942894974174716181539410647639629435202428860358207054470973655961036997867762967514187277411271002713635642047468037016629044214713932091412288051883649840851920215547248978308558622743597364836986678932052522267483061057288510786277062045237785163984859520486884097967656099183509269083177296768326227551132647287227225702246605901923944983280855704670014191520124733064658245551543852806586221583767121064448447155327678964449163791400017626537201615089704223940497841740104695361856121569705962604669825070637101892748906309779098461084864363414718974963117067509255599521744695146652826542509859408595689763315802532912543345704211468341055216877631023192114173798286241919429955479800494777365349054276805363824131199188870114882035652353289228617495356847799047253903624699668479743273709520345170471951098711681266468169455643446188698602562879171786502671700479943429828955625385805534594730572837685747412976309667951547427543019048632090364268495497170491575649677127683030131251054214696167385677307865406667745710670742870486673155878335328898344832862955193152045046526374412606954914939106145064323388417612471479779550801655741442139589922112240632788370397836399348266946350809088055970866617837815219570497694445561970907993603868034923045140942659375337739763702738033555259554037380558466100026686424090622311274615431182637275340504353454583439991029117183688278093019198718153935524290118879731830022208468548305945730274520430469409336925167740005404259844967010041228939839214106667070453327185903817776909374945216560333912007133578192975734286584379689093563586174478061153853904173046468849377957336655095739510375375642336093482531375506269226917685537449489428665808700995251977458784115673784414259589482400475755971143300035074945381814354528623914823567043227557413014065563496208559036976880731654113016819871336832533170987139278130245439080565938330971297933769432992063595333256844436396947742745547808757686202316782363194924114110043617274282132466058800702398277337962058519703160190934586541979980228158821318630250146160930217555887395594817852008709658038660785032795981608567494576034351903187477626511435522018946438646418075858017664209153057491865597022239601156278854067079728697235469334680830945606126185182915115713053651707494963173780640237722147937679978200536606784410429931296015322886085338351819316614738919233702427880254268641950762845133054162861901982385761954089279521818495390070316037934044704744227698220299124449255676182962708735368054684958845212520756992271239489300359495181588383799484010633319857599676720956932937779440656104274976194604183609414973944095349347929372146768056250647359334541649616155420771248753678136862473776667518632667310428306969458054283309438983788898072180680852927843909569557819059307277203210325884105889295752202283613706532235158585187539582732644476093349093329727763870473592197879564199768999033908399034727073486672334252439526235285478489147123470454601960649474211358771915404696390308507782063285436273342553487655378425155424171861163782505090692119066488507609202921541687084354564837898566600863166440029472543703190937215338002132290688894147499350380730554618003503471756393662850605733474302279030338137174941638670325209633124910808547539182460622406207860562022088640951583933081831176153919079743818648011358816329366215423993297311546218579763041722041036558731441510116976957966747796924105391881636187451470814463153445572169588856569047100531420164119702460008641002338327423317644763342050069583457188862965369347046952510243668835716089819412095721488051512150491447848021438224108396532395798889415853833917234799569518912817861014175612095031863197028398232536119175291613661432521154776242664674834225184872038098250653627683427997400089533600162675297435511132033212857169684193396136575320133100564743500107786246577984423657544156276987358234119229348656371805790109787864151331659172123220141574983584970756294524985665743453986113977790484647819997049474007363755666568776890943929822043913515061868249648028464821606932792096177530170087642909340950215000891103815954531551562093284746080438961023750068258897263690468559010422531009284395779011132724805906298816906689928281776380184724760548175960771960030344366079808933184946476778497212336562852452542606005093975040239894171926252190992285855288356593264548547645802825708950158393165813017933898733578966569649549872011957206181597716716612338060113480996628583531125184874922811951499274805508321645403932263602266581278417865849385371882789689271724660349297374613343330745823430408855562460646911848476923309172507600860106108449607843431622323523816632516974134715311708377413900298049966432431984679327865218293479156457656397476176752653365918268662335867334025527737506595654867813246073918044459134118102022267315975160683984376308728910553432829993144693822903412930038365367626379163918117785273698627728013294738663595434382452765714986824074236839983777449711810333312720019469841730091640653148031326172249645688677817281788761295351405085747082954598556220673076501637245779921214576010800119018735339863406133161998735545203082264023832991786556501803731856385519683934023423224991971790510969695912889918735657967198553252541751549672556925444649847403939435443476276854873626897401461653548665478329182547175688531020161991720797978310818380556250191142014975451953843830183531760005071656612099338064071298277813524312068412635708314827586207983777304464282997808219465720795601672598388808104364610417053370770176661752202238373878457698997015908348407526920289733744685090350603741711769049701696362855664667764017276171623954880434359049831428741801711571991460809021919760585460040949411101117592342024180673101309322319854139994677304553478009381502873441463497591556385995465536041648313622083188929475300601167392593602385701344648187359935004218828313118102442940005042582426042174144287896985845714131858847989386064009274901774579996470023150463005061634949135747008295475781487580364012475506485264632166527423745466023158178446615008502186267572626369106711274424157634709589380938119990977138742682067871164807445588540426609725804125775633541110921545405430767627282368841000372692970576603039892709349076008806109616160995952799361748973901881246913761588914705797445158687157735536424863284956889193993495287007154898819778055282065585834191409290301439405559248235938857035213279550852712812710810399851912284660801131583863340511230996861611744205854199180092207296231990149931544768051346026349015208450184005105197324594904205916802371397071884872478947310442853341371230954019793351792278468665209961731564397893282677053157282975007853194255926455464138550945413744737524072398628414786133245104006524037610948517068950710525363678477501456774111181336964693736919614772645077306216579041411982450594883795776500019444227332529715127924750603414626893663735808975091068741335020515901949233538673426906214409525213382604758439018065459801898761479841733360245981714050107972628903227039667127152610549138103598333021528598030860360450389025735982680863505683175314953447071569935007052724751087624038583580452752041575837623346567390462405997179651115830660671536929877349087522326590661062146110010623750216796855335284575369359097861181030014653382582335798192249494441949509562642742387793429786543635879163790355556129041512466133694793374057213210112285057326589077473359923898376972743147500723317806744342115919261432436814499369782965175693135289479488611872731196719044639520828029484758526167131190049866214475544281889048453197391714509965664062944949666306427251245740374743954954008111220561383332450295745529867478738751840148747515302726082261817297402032028245074730083632956538713435736511678938167070704012818743089877894810107219594856375209435348101342115989776130484576352395336257611881484774748499087929179999202594125179108948991380200896840927626064099469789826414491154458274568325564864232950374472848411932044132005955981763486087901944216330947279484027323909733231995966726580173501673413028610081689821956676883755176041372101717337972727441401047374222904244031985981631667316765244870744999018352961019794367117605371775125623675530996065264032127395242242269042542367178674200440581462173156015847412665101568109614453338073671242323060325566335710672634865144988487303483034783334398064878558533138971711418819309175226772478969805967363223352150615061284887719935463876134732843040871606556849386456939762496597413239101246345348476579169044525843798800577304234928807014926131847887203690958598622440263254392317096723988901483769672104121664014186242278310137227053882929595094193058128356681868183857258201378765688246200098248612382106133628766461212997795896584005916098244430365761173243163162697328588630039484263098917716912083842585928057716786147910508913656626333069070284690107155193444245391587747022249639865718914617027996746713598260428265095079453633615377095024424452680951699198605309246580259096594405978026426843755642208590504582281894848566778592669648963133896280366240286580347375863008002594056487328398116014307106434306719799629380530036530938841072183791184386599712968326471957081818421716809926447574859618331651303117223620246987211869405924639456415190504596222288233394770022820857698186268008018374656493925772033503616520647377926613399199268347259954511915681703836998398464523455004149482155149894297618332247043461700558366948128030786109813277291552039436486032987606529616640902758835679401754122329657914665994188166929684332756967793192227103362026619568729393099466937598741079108163089681186122805298141364977833319882713857856083883097886382983611534045013015502145938224031613023585237852254500216819916855975418329782252324046470953378469778968185915433398603396767135172246556736907376047603834666359456589745931897482142087493752939724967203061987400717437134194322391663203557037821876275648578549229254104839015326784662289119019147637568896562597629927932690629147230633474163277895748251332763798304148097818290026371946463353426908315519846385773426206262132824326024452043820749816773384391984568527620985588213514497450927101548420864958234907767363127792875803870648280773580322973686725768053108903187120659879031540133589917715597491475029449461390189713346077240115019656243206535842861021548107572926364311404435797244859851851651775229544998232347588144793377150904945693709869895228274548358380556162019025992949070552645357484245642700817794258926718249100222921184672770382035762293519417744914086530287755297548987031924072670785846950635110519540771934301644977445574317726632256226121011211280400208579679519117345598252125479624115151940671394000281152369434878686063609885984168369522299780651312102655637060683761846784733561243531769263598688352921834805106096036603345373179051748438899917424865874897486607644935300425847802683076953855066198025576968307476910587191472878699599114097602619035232752362500970461503241128901535042547721860073866794197598827620481090050887020852909057276536258000442982558098651262631612053228686135983976645694653038156453478930747407946502798851011343093988765856427412386199281762745953418928606163472842042879538572084604605775496498061914380865254478008288291318019419181587257975655068388391812101706258309578839236616103171747496217711782000453253524585854848971014622636447901257930025317708334101294688779405147722892924756904001934888356687850443463540658433041865223879611633198939248025984757606316293755035875462822410553887382590682092284551483398075912859172446731759041382885691216783155759219841953650103167918705441750567805907163237399809993142753079860816583901052394372504845393245035709998673660290732607810820602164123821481703145545688982590080055010294092708744529667981901024330961018047727897203050539916676071783578601533869997769455219528428721272649245634261867800466757187718373456815536547650328388514107213477646975855426681551490484018852831450211388961491156780000445993403987879312128931507737367481082662809423838707252636090640908555582089007772240516093215640175815401033743964954291406492400420531401631421655677438743782672312235624413951799814955512461320537201039057536129933887406911516113152277539814759651735738297192856110120786582027992431179326468174384367953585633269278692942879674947226380096531771260559265857651125001536124275310248080362037895933546646541700682922913793833338236483367719662879775187418484877446779111755546400996011547535073434331252298447086692242477898826049641462988878944224874872203354192857409527431706881972168007297022254089260414433550767607882796139849814223629609325841286253358323921579521960909315358996965879245473539013726225872885054161518780233477461969502119032099831053618142380675545545312437888127042057977009641953201601933165518289649420565284228735253048850856797989864310177509367982554109536180236916061143009642696360632694392133483690802581228753203967131292112634078581638671647230254159101667369527066532696001389075077474595750703578186711277322798484732117466494068979393883974199414269172490600717487195351604637557182508054022125741555979151019105390715832401953358022310686043207177932759994408791156394044382756482822997458096744076936048038321407456100915047753267498606840353405299832852385975483756619205732124782822424343727164752403902527279144305911719947820646000701578615713391068979648404357790666801596973654904408437333285911290882012748598362217926950099241378644992484457534955482997515807571032896734079231034915824104146184614373172791413302070939606757917631676689654272314506913744888043943494499897360102751907134902076013833301178684837891777209812482063950021967082002002242519017941717497526687879015904239201974369941669699783083998656273994985057640859347710378784053465578085446348675478837001147976353296020396038980249792065410497613430610425321240375519108427848564052338820377621517971645460618944909227072664437191304467478929497205003127276657397322915390880723901860548114156521069828796672972691885858309227060700387279306138361093768113419069907647775938802721867927658234330343622758401534901242223062946994957610542045149538461032700711284201257141821097346848348441382459137156608972064516164213540006845003843045201776348840190630597560521928558309874182461703289315000919090756144931429078803400582037442730562452340611330562063995260385994746742374191326220631805983385892637433530445631144280937326558661060456977946014627421530669266962678248322385483552364651191510780927351893065696526103859523466034634655893392203087030019100067022090900761450816193825634411593881265357437250813116020395858763032483225131857233921627327385310571076443090662361387318853932722277707345294976886042455298774928497221348216569470863872568641205758484796413571353171190817258065379327112005006219201592419531713133334712712300110968033577961763970651222753687462571160378718858698641364477961609383066921260031171624571049938426214523555155933563532312825308399693957754896203761142846309864718736029171903276401282062682647358009702607548253100058670561786013679211248258605569726077834584798977224170862668782753793668772918892589101951340431243779869768341650857490312178663219808213451124806987809229128516511828827033692848546834070636012043128874292373635067050468151322407094872928692781372659646292091212856715099425696159978791411642808965870325784054448516647669900424383671762061522541872734489713482494387520972162002984213489009258220498652895661810555706413852264182576517139753813943290170713967669036955090375002860890768698375350117798836252660106869593789970087669264082088465038124027293278706835560738815356643829573858218405493340255955880712014490053935616494961827019095535696000075198313755965073924227069914795010965058992765683257747814352551684106191522485054734913954098802033631759404529459042800718639477059673211565591008004600484396456199720657874794798125645694951233973001298832599462757767115349379754236588746547024633629144648267383295615640857275222157614526943380099656541308499105370432172206079714405839824236741825941819310414752607442512914160342713643448634421353527850478518871689069150285917084408062567413931517457433968884470513788520780733152686558057214639373361238069616622064841769810720325219132890650598171632745076255259420722387700705258538864422463547630197583591455149346826863457638284074333192178972432380819534019561839126038962035928362235476648045338390029499833180678766825538418217422532648693820867897393924615022755080949220019240529762404443674282382373876840096537114286404281445563243570689065525483341633859487401105914779270483557853735116722496452931194386548685079310454870300489447874371164100439495946640952461893535316819431685894823609596989371415300665187709680556511411306498394083421321052345023135146422479848134027430105316726973137857421839402438866086786131257462721622591414475874608415332327900705136767835953949190138398088512457494450145051585724763561212577751358041941660674509568621052616578241705570095464785334086507278647828143860501833109330478086899630695871635386247582807557713537604559345966877795507050813196284827334241124147690587670321313950665139452689625281148247493065198264020847487001436461467209764611577892547118974855730426204289375292182460482531058676186752146674231989544565980362983964595268644147740847314246410524728034085602868442745314250087420651143705565039400631085502889551810539626384440390248406192495996948303800965977208477739706526440778669058708975492091480753711370804941043046453913072977577183036598151467004097717125364325802854615320644504768288260347094872253419471927872302650419573685410347229094445014080715071939839853679399295102529612102879298984680783037788861014824461727276382310786398791551829470389464151431300993832094376284807920399742984777932347891852078354975615793544961702659339761725999244230197769561613528757050215156407390121420204174509995434984441652802179873952590879067439452657554718703615684258260279162529696838471654291981031416428593536516401172003629581746852839992454804104729283229011056024374295233286821492573672225076734553539240747199705479799308227910712898288616556955126538749604693609239648626292445320924812799919412091166912188226085575649276344340242144171493339145934373824253103989475075315171704685782922334302309617724538976403851136669271683271080246112418929105024721290869168159265700782848351507598192308293404009269804881537820146478110337176506150700214030768094367533113932876527941257889326303643609109875589094155630789163232452962911882471749260388219542469371548766849442684090418662596063305876727208346406419161536322583372468943432460176627133454167135526923479321903392235857025102774254166609176520904988953520078583510397250922661532804304351374177306414336158212674952702444499212980303229490032099167842060034149504422565440626012843205082271573308680318362399199097121720925893643611676952314198236076357298340227672113316739101803754170120652978804224572085425697953638104142549693907046921630292258579425019404580321762832200295774601502986724514794803364160372212822420044821062136090017637856766868714081840628945306371761701447987477669734873669870451129207971832863348446616298140193815397052055462298158632052071302565092400398406187966431849760735704035770781565832413584370911700319114165942504611215987118886631755064645263867054528778493173360707100937412253641234156749867428793997713169777599190880341247842532448886393573222362447411175253218650145100176335063621659104708604349807733662948665273575458060256905700488274699385331506337445449191731066462646756761452970127848459220690384456646182743411944845005855701829193854145003542177350898613894088276685776330307001618277859062622401268214618868719082138845152694935505536951945874608440367304291812930633631771751847506864866695320908575896802691135895473607839773619087555825914487783614894690403966994726647522735970329800918864381316835882059565032435593129514511131072598607397553907267418322825473859419562889638597372872436506904679292590996149755581556031407463716174045571087634650241360546884685925163020339896220907036209504295354742677199712708057365815785350030396636369836494607824250550098042814691783822918389018015589208341227231626195757365369354474641802521550560016347246486955862028375958598553879422384996518434902509505994298731357213617123874577316602158431166248686134167270626858514024076526801239451763507230950019395479513271297887549337299154155846189349004594884678151010682780703641465722240944858283239850306848368109590475513509023234274448072329655581872361933967628486908038418314860278311890168089149303504635480823366235659795572429519254578632744736182034215643257505892620292012505413452907814740667925520018942105751687563577765631758661437656614095513371913404621572990378317145078849208393585510551727267175973465988778196337468853977564973215568080143296624547806228502809172431925632274692622500113589620232777928338373809593662566534277219822861525878320694981806937636838004277823753270492520885052912737727698434505974950787933210619356251712092874926799965233521608976656206743144170587062812816556169696143267939633062740885284844746594200027107217864668360241436794016166230984650112035309475315991169604006931360548147633148995639540971605266139614320569245479698724371992543143571073632215769257659837841938286203599434531967809160448341346183970529253699950560922781653285143074001918230293485365054129693253189701727333479326237875205467312332175880002785538290811918457681794707534901282991473353111044701757012570500108108804066157707395216425180499042568612198292799148847173322797986881394203501655834819954285420339951486228217820825080619024159901621850352012551810948821609810005220813401013320534785921530471544898406596322956564632081241991839603551311537913702177347032134890267674895191036265780589659160865365268682105400695891777459332838559702448530884611924715724001676408411613464480815250546929821923795358391278879200445053842821676192179724988900102807130631784981213787840862178307498803005891337011166915606788183132242635870356073742149278260609885637394234547332254743161069456929615940724690485696508349074812548771067040779875019851104248107979700557723956506447624562715795163535560990984299926156131976680128474850753614119473729230085259530962041683688963485043933559111146514065400691035504106076315061115271901839152831273909303544990026389720961602742057417861021224364862671945508717547515677248137346220281270846623589568213626924724784625765109818316391512809259931127833953090247597197798840692142733371455700147115188994334533571095582272567626984708234507685183774079799147314053561465290988874287820805075268154090099294560976000568111655387975581276582337868385483542398579543930341631630045632512485649211823129515087468173557807263879857863939519451668933190734537672079301438713765569044095593238223482139794308351794229982316040404023125090666601937839071865827506316934521552409026293041268421934461865566541279154210282578756081227070015783642603969042207002726274217074392836428878797516055643780501947869238385247042056201947517987089145897138638966582653707375891823894965901062124417256382912170646460951433202631068562802246483381429282307453499884780216072679431851714735313564277724244289412638084279311481973068498045506663595412660473285387626327290469724707853169021090278093275174571355737589981019112754699005228589229187946199279788954752726850329183274111787001489620220276148754195373027837152819077809883375130482183451384488893590861004608971188377095665150029558536949579037321668306929971631863143535360964718071170084740835248997522493521499824236130950047994914015152066206089277062307694298178332230539635375816028420395770610665623725082421355600400813729257385402929108699105746139101165255486867373905524100038665165712648545340369958006979463014148397967222511539461346791114488554085494629139991264624180620399366410106562918186667398960705205943961858475238408201253724501818010893680500385429591882953831204180439850321124640455021819324575170956786688060991693802871797313557453514883439949726258414902334357610919527934198169948344088440410766918141939065843523835755712656620460194471947139841225513232648150379128852031474797073318385325799410818626532242180250204265445828713691195293633279974518417858121344600186143537614127928381146316795602937099014581077660293046257095603048880324343812962818793243809133967859742637556157980874051078981499163486659826787131423287665548444612877083454127841800334335893673651674928624833160112270416715622145743009759601244391652454891659155801855616916440737464166260129293670305036167201589422723101597720662416699334883344431879805108087947169236149836721207766576733957864951728702460914928306485604766832713633341609486681137352441230603733010354059765370868276770771033695472731206225865052295892506422904389816392036841273768428384973436382767941942381017261341492449345689854439695495755925938808145378703041585108974958836313750045339620974071578643545050622789698144135766710991164108015585073649551528742443692460251017666357798819883178191322256562790217768855287548106061016526322277636932669959069191458805710396161203395426551154721139724140683107222292115396019430837055504572211342849953408003721419849468697164327382731940104910640466521238905801664261403582085069359485499029372076150332907168885986959652886014902881909893524043590959451905072761216433232077559074175426627199920429649986449292275664985701107337291865313301196253624602703063717932060626828515851647716511570571111130742824735729573542612209187908302942122365910876285754528784144541058506458441602828202807219144797161202843362927252052121535212524006361119979504335622333771243237693605395885679680772455575212172776239176888683879912344735295402855661130605095003338090006202335429770054969924921606819156075532329821054735655743761284709671351948655022993056616152949512682154577505468870015192598578898244808341580059541815683141279307289887848250679362961858032127617534403032354423548168417727206798822281175402427916467367881532079242700338406336611754103349413423228719002359179674619767905110324747524291399370146399912294581394524602399032284775039048372271608035770549388484231694434677321548332321007576534980485330783016531617900219977814481793159865784960033508824435970649448946088582094096980678080606687923759129122419205448339325421906437484490717047790474141011055411009658953770171870351199973082514872857764792100461824577364549909106502210330069209802728268293090727590938985603302269925019286481116218362843702642285879478345494819525827026675332813537718548419826908456316708174337889486482573983107405776343170624166687153149327933624639688899848242127121004606721136320650057576219270873341643126782756433414678678536610221040278001041354338911578008933971467990408377721490721140698432058861797308508753913939985398411675463707969873252582513370622276521149700780052698113161778347010343279535037131257019384617536017462858600024908007471012520404156197681258461204796194334388009594014753325493038045766397415678486940231112017806481987119836356741201289081557105271521069319816791407049664159430172075666454640025275112072430356184664392885769599130388575686074955203335802066639582010873941414951471826199393924195039937313745128923016216317384388753665872115237835763183936687654121296341251249206825599237524043877145255286938654132423864391085431451209255715282615690687447881260535037869113725455265785715479250253862627039275916218459520929268863194470242312945630653733880661105269329584208569627454927377105782730270111391946707556629243800013078319495018498345379432956359235594974064575855852659372126131701257774611317418967427824754343768306259599693114986306098603351228790951711939060465586157358449719623426616732412173540383692606806656008485726802000485170906389693423057434301820831443038448206491501031315142175108703503355349091866108345405421340658457089243250125305846565626543316701504639366876621598494124441047210068495960939235897031961468982091872812718761100511817019831488648364249728145327918140571541173508311946463172385856911312078467439263579677882540246235960868990839703346152350894558766429595890515073725378321236226291121603719646506227512842018705454474883627486508203856336159947092866423629864896670530265509437391518413295413316478227834433656191265635600975804148695987200009536026251982393243566144565932409470225830757488425180127514614879420389752114030297857605438210515846133671978502507854823866313267243036119882816391553762897922605407626025305558928813076337008790106238575090028297279035411317038880396820742876460710999304886186366604742608871880457428213074294489488850043802801978322232628566869626344512401574749756506791579015028655445634401808375031472719478206390648724182428863639862828749097155911363315900747575815170302018051111854277951859764423716677420477315004900781389756382127123973976951892448136330889719825176366310828340521025606179639691086260003078082841501807838022103722369347886098344421673449768164592982111113965529674718773320049026632096310044317142321965099716618228167132659331672402556105201232393633429613125714344646480900596380538846284701323252572946723341910706598852426858318448703132405008930407214374356594593388107557996696214768425905339803266433799050509708513599790939168964797270460274007973153258312709310882799466331236517743372068097414138566992146761692964902337858622734735853597410280117474195536395175795921176528998243301993853579811683139386859472979650897442722165063018764275197251163299578695248950423005716679077125726849979290447427499258304244797797639307283562171485919653728912555727069772640675116414745892671597661678721566358712071702254980669118966147052572049980227596134771012171659831860785333971941217140871270953025553244440914450830829200116965550421351098069112298880112774099372638590460572562280088329006023584157566027966260493308167464892941937713819801449058481209019368302164927553796696939391729325856285405833756058152365514446409173465559383137088302109490747135969575697604515595711462547782560918519183863975900019095037664426916452227215140562104939216384599030548573722504608416371278390946298142610878525837738951482955191755815102971433500022639576310671889506493147432083440296183765929532771874607354854431208704196339655132488678919502429966344674307898159261620530220584435350349662209223416654357248743625292029208912627014090838222960554179494630083992712072119745496655753468671529154979951864753900941049167596421061981982501496314982276529925618608885631111463080773921913638395101740227339281553830381555670086776569025636283974855661248599933999722573223049377311126153574731135310552091468513470363432673495858600431680524931915866553231273856788754770411150847191426132458947551462291007877526062039017017132752107491864054469594855133832978944640808061232534091540240886153158911727684559878888969105853044931089543198488296866978662785952376642577920659532707470035779849470847488536587725407144826785654086704680342377790624384724055594128129837752540169348566814380791953816093033010406001948394952151135011626029297655326549420818139448194272871445635625383541315924980253706782970730536118036862815414651836398711511527971807674494295784519758993012863557007689778164970699948523425781065061208900833224933522753292732252552768162885341462034396536511336895730266750626580866943948568934979264549990681188872774955942186294306590517559303317428864074314295935309907634057299668467883892597571433626018811954179634619150002353525276416246757476757986828020845136516006570557744993389613905377431731901297147642393872275126157182200606177403585045758723956405045321705764989450327792934180089920570948663633451079005138693452318606556811320715678321749426643811400048375762772607321501997950231064815723741456068015515013743802308592761932268298120880622426640964520090157177507280652886442733442970045937403873435918497855154977440237224875501686689796041208096757146978210005818774217835377901720646140995568189483175526560795598233561467033273366736897076516120905502217889947465619058635209826858782941715908919218796160639401693824534113982800363785421097147702274404614347294479797035165832287315809432651729577853975979296601065050091114023411361528552227486466614767048445749757311390275478587242548274244188620406896769250746209593021106411807421251911965778506690205734825323627673280721871601206195230522672077909769829426127071554462327201457895243338307209007956755803716358695169002824056281705912887901536143208098657793242201643740699458590095394340102902795412329567420085329868868534800244827088700791035815468608033233080807959996516814639302190750487518485864257254867164225362475357661911113258957258651973770023742418756373049989927347906960656200331548097258882975123937016631731643038886429438493121802413061374547981135525694545440396347909668285665211551831171335117555681382960677581845365938019520725458854963082454155382241587760561156271229057171487626467369797326255055381192225847969587882101320003419829596818211259475017920870026560915390832266765667074045494468038187918589576683243394453102398904049280337098864948506877613653711170445430880806165584649350540002688018470253039104057852706891830301603778850814650565842300478272451718613306829095379956909575046351833331972883379297879482007555228069428969358064574470135417349707798466204880665705235765840281747665122269814467579355371561382982325667223558950310506447760571152771598657459246301948302515372374349004058808991815017980297409836230005708105657470288710259402723595449466101529515413627775035117993402367758692807368315995751894089359047515421331358284193226275839515190918442843593527246472262303509427862987120095703387300612996254065571562897098683849623467265727166391872478284712133684883446613151185086802591245048375506588977116014624113352999598961408100769074079848730092312237164131049671151707898232660384844262376200321659011260332732236029528839920639963283125980062391987558697249474571387922542559247184283474555038399968000165477230814786468544099360726177913440901371281403627757745411163369224000500807105320142977896014364681094666410026999988813894662577624426980783484978476595008473453904169776033168191597281323545722775299302403447080978494966597115586110894958982350134700044898825255225494544763004019936024992740318428576312112399155882648171789804262945610296704979197886612218200668975921439542754533190622617003178764132964612072590562963511654919365586406387004634752743112530719387642251990590250864914913007705100663398753064913313392754675319037326237251041410493709959385240406298813027381148469662888281515412887494430995623130398650953912116809994856958136074557164559705192970380264779134767860608119020952721054969566180934473655166021198276423859252138866089757761936091433152419266476837499190221204345511761156908363071262209026144746398581366779196597814258102659111684464105792158430728985263603627685982460732684201944785314280072752085868334263278887024715486943507717619676492384727519253077722235208979100602655431282668776828414724062411891942445350928214297218015064603072492209660267714802327707909280943362080155451584629418779205396844061014669482774034691841573632347396740447507009308029208379929139103810524888404849160430259759607742695647873785300217190829861448400468751390585631702002376860798091326938625863832905400612721073635207795531375771266112614909128654147313483166700567365716124033620393480663979033670682685769029691935066784408115538818995434688622492574080267599143264756958791372137359481502120202513269245308124013172895602158218519228880387203998905107650933476979355353092647996905532919804677317677453062446682623452040124359566667926906918868627619748187920037513388140453935571524147269713917984923307262043445638655547490310539492764408123822523278285549006647583382396875917346508803419686892951568590336681135098756596538689565210887138736348920429892838525196400130322190287427395731325549795316514814741061736249672366158130943587913141578158688913228940774145898425026834494277722838263884849438661802839367144816704264328499869206988920816267388692817049388976584807720159194984308236742600795280147056657530077501926733333444787468291197408690232855632874457034824237887075608897417506019040124060362095790113743649840783260267417072183925453203575654610899282591177037569849643490403419106006672026718282748658385652495360367683002396706107919799426389608869633347810017771444221069884118076083582716281530378516371408407156894178071558502765685557272360912878115473440301496594078249095787305146469200913999379609842229226850100909309514250217764289476227303567634563341625429476393948383824566019089136200491391478795475481321577022075682404994065523346097677811555997720912513496375086756134332375763406310360843637022218067952264781410999184616255420160973561063589413824080127011520514320554185396918095187184741044738852233817956260376981857688481327634619163277341440613090785399266434347152045018914943033649280479152397252546416736361234349307256138528671647716909871249919029441327276907784910026220438129867806626122305434397841753137497045178611659240647680261277139965386200444978580298184735346411387750057512078759267696092111758942205079683047017453464155338431313408443333883944249455258239215277014878954196405377338033455612021682164213017770627184360325799981856322996169064170861046027781404188210416404205090981841115500720509157417793386485078722003925000139553074176910639709567173086660854129357880179189296215330768225173844189437809261130744577241006676667198809837513254410710532240449054176439798295189495260685449077097690224304583616101415368087426779209102039431002639170696412527307997534721647942202326910441985337477387713353730583859837785078787810458594278209489317123585376299555610493783178725029382443852590127101578011184490565896528870424938555614748147790697615342059705942136672653377346618757565188272589749549477884731833635522921806517329683895529921694189994468087816822552167352161728885612414459955810307869074106312010580065234463976932369067367691053902638771104231745777194836149351639724966116023008776925038121107760983735441664592509397911759789984928078186827783681751319669265447078758781119818041501197460388592931965558123398133263916928800504190260732773778104759003427008167938053055728695945312529993954432827510298152574282380018329848463911527907251069168808970636626612999977816315555869650945712635431971630614229767803997045252229512225696450883848551021691249076001099873423225635418042944088661401677162840244979276485112608018639334274514529007427006570554881090416597453458187771550726376582829730193242133430603988466110747522426411124469520652759656118929792893588107787517424665666887931124249491284635818485555091989401317227657027908215828706933242165962694917206612330546249294129613442786737197467159431153386602193248831238425953037194071836653362354339671211228724839083117074497966825301457268256962296619608850068613025447924127580560923590660598069175652845266121683326270804061606498338160861623460064760675307217013346646009818152951056982553850011702598397837932870411493566290962026113939078893874973251007910949785813019665426347412498378619836242987842882075828383678237715331002094024708352272600583026415307263156376999279614813880907213583070495713074962057146065567040745088751934589417273656653319553187742022410868327466252261806839015205435247239252744143122283898668905351663401979213637621481880610440037905434409585397420638992445658368080590745935925630185700177389439995670979819474818988866927702578538686334048615253886771209394923212513194114339625393781308977092073571441211305238696555795372226378783808647033572597109908315350570637004012010123854315724232975898847048550693231336046179691100703528891923169381424987933506915073210476582572926383433112683119213074871748422428342514200520187410712161865372466274467509040932183853821867634962562661210157033251354529923187730516009526060653302718219918715123142612965696213454716318530119508289845421386909479139569078897837413244876387924700445448574388305142674867331051824220347155862502730555370837096496380419068215567421244640478903569664073015734169770327076204107219202566175630931503777867139579300983637516935663973994606254274278723941100387253757414537773320561520766954404889135290878063796153327556202814585775004468720757641716051460128437195090235233558611391903492807332105805961931931147308485025805104630443072344326587728525326786040386172696981937166444600694048985612966576879291073433665404922527536192541058667288416324723114130777835956126667913323444774897169358252347424897438276201505877644301916738247485434350811290654655474851061877352410394219766566905169084751586951699530199815277265081385762082305646199764844402219009520632166462581839533048579334207154770068370210398615527741435561234873783263797210653373453145674671598854973161888647443367333070102700379088277098724947233994554199523124773690680092133677353255908712722293807844791369878585916491209076620366365027362518708561492732031717719226150572539679470797541708763793721684546362072987418389592252256490698220304339861269217564517071822670455199079753750303063940195023385877422850675793136321562488813436855700564312033882688290628969636978378111498879215129858770983644464249390772761168510659064367897687568273013019126127701547330485537830960568662691810426533766474949307748803209295948179291632346615275193823660261167257625855144075373525878722555226893705692136164428908233319306616859763847896066235682384795180767229656715872239230556468351402072884752654659952485016966616257674393448708957939978267186862322124304426585795641428266026476195715140059581406483076420739906118592687580359918539648023695024704265842465019933641972889693511228455159231514744598424952822820096878387132211887121322347728696687752345924436765592447893272100277056578540062519192819649541709819132991413309336857552114313846590025285890100818778944236653142587888599640990206721434676947347073949023758477670826928936849602466254116355291526010962757064346695546557902150087924283468144143219514669279016051518880124428854479147021908064323995760818963673895819984321589118654558264026914505052896983598079664103546148971514708515195194252727565692699213615956980343672656754191577770093476315544341928369109144878710543152797619135346594917046469689957934633120176789878250850731458124963407972997032133789496513968109794254351427441165951373081956212929487609007572799962810859698442625033656535555697179625955850429397464634106127224699211520025020341780874028969716329021490426338607323443536530708830264767238829730563894877573219567236050281511739086273601535345821705216838892168019958657072279138538058595916675093195156011868832962788829935797919931092013324808634299513574437417968997500930164191871076004657730222890253875320442042648367424622777980450892810568613599635259591893923502452962710653141274395530921939328424827284998407057653016462008646417150307353409399746005984587174654171054263247542908770500728864123678424180763066214130012380832347877484312880012569002107143470061672339578674018471901912783376439310590071822021511337032978993647104144668654326930144488053371988909326443715197858275566676390172533171751702415953108509638735684308175209004538892686987220360589999447771634420273822868999619518205419734441017389145248325678082722872095791180110729000758533755704244467493819543610960729818833273739068909604637832330738371596046359060772710696166780204993899827697024514005558605772277243604729024645946284599523274410365986380172754690769679152999462631033482989309576303467885578294720739181683932657913990797113304032163299345541602311454306710632931393418481894787350623220106729845013113402532033673898867815640973999649667475548891833138099613923133034046389039503434887302410268744169220685299201755348962228211422264093284054053795555306544272967118876075814543599839161244953196604551840532107516534890942556219508969772772290078241972633574620366967671194367774150329132669655297752018616966507166690254966156388819909505996879795096020428192249928675058621383696039998843687328318070357673126865463708023519498002321174532335598794261738907551310829663628458389082093225395785983060113985115292645002538730947829243015297096382307020017592892257655922860623806599768785869353276322316691054431399890149858494712315789294092122702565926686775429554003415717194848927297582166739673401776799979433277246704354294280963735007757024376953821433258015575225510691779587286870625997168066216402813804152465313678658114958418714754538762430486664544529313787313037998667840615657597988210530000307306767786470497419717688320653010960010810624318683747218163514805177591017363104152944825424226269577919129315381460917532837371259131914812626118439356980270020056408271813587063812335532190609923655707947631307189044675126903818681676429371359546126324720247084020753972676905998793927659844508420034709455003282326093250072458225123476334895938681939569812979263266969230297665926247422845103600342567576643266485330087167480429041425712000424927160876908010329682297815589744752465726027589342468210672999048511945734677685297294826187728937407212128662810821433769637397742248614985050542414955054820184788582426705065054364104925864188118872938619086358713246893670106038448530161335247276600715201913957778029905758415353341769020434909637971247683768696201347078785122996758804045996728553434632810722913005516857669642201321259493913566536668369606218805162224753988115648924077769560954122760867037840912898878092594686003322449773688158335543375348704295592678565745629715021421046052124855476115992298812633137541471143676153594922414180309010994156685188244940650086380572829968233961562582531917222296466888134146412205281865936242951531767473152387408024563665988839580096699116294410214040173546133381300186491704235230674423118551727867620501528247936259984434098181749551309065317539509204506578984538829103478136429816540433980139273824449753325876464058325013149824481812748190886414073386534447075537630216535846251100154549717612981705779931046421007964753936345435366880453189339497553165079696062772057900630066172469458233900440355500435272384302563986867075268909217877158902752528499671919006674560718041808311904287356243742649084073936988485069720708152920223913910085094628116534157303242848288150103308909162828887109062210763056427613343635344440060129977267518817769317299054826476072871122090009643904541061293750257538356682245147999859027778198874523000264129652773884976277255978539781513176666605473541232311678652385922743932863542273593909874324971884931072136815539889499228940663298721420908360225398970866843845000727622369192190071548615520812902078414832577699051793183051668519847916005817737240667323286538503476601733064888423097047887004637222505568388939149332691552022338416636736835645080629669553587228307657364102608394256138282120607255434834856990854141097186163055831816281345167971297529602504208526893876568407575413526260513163377973511734920534699915251496619536483674896223390092742426968177877799099340586800958129310877488551634471382247173478620137406991162516311544858258891709881439223485449547576065697034404287589147631225551705524767795330933823134258301793551611993301600300417756360614178952455519986120685575480965576307911427911308817540072107272149411067644569088625366974056127200674998890423146195671035407188992599622060384334865061428380417541117632213668635941738532606017057043504095391423075516574653306642477007466828054684828494130124474085316536728862501876495809959342166891390294407959847842748276606258456580941990040693960069199023650925174376074892223316738822485936100586130250036991691935754758577751799357539149335562500047437811963901986713386982061047732504733571209447308800451268688759989878724342883653873216647931733252837456337857241450922265922118654154573526535697251123557197188760728068342959125219362181662752764662123408176595983087255482577046248848670842035155628484593683255265442672208166754388041338580111814095086986553010514943520575290901444551255115392229233528238553879428038141868284840923563215879593023108988930197726787640215152901397388686570339957791816450239862611903383582098593044843859650869547792869754466501600708311643124189668046232804313399664813243091140470049732798837895145437312290624373080439546770424658909110373824383101820790370995250418759149330963707577920584396948120165439789003050418033586213829723881122342151624626169373633359757320695799765230530340819391925499161836397656295922108883914797487907949371125442120736528509633379416461826843026964153665992774037332967062754147523677995765977411366821537446393465202938962208579710633988481048271331368158153348429939812150995105581085170753074443908947655357217554813981644834877029861578323151026268686111557882465852943543455325590390207495875485121554994875270982931864234955374970825107731859710706630743395554518883327784984131461403183918403404711099274017847190721020452846411512462573508434197070857973475689414686028007087596458548757425883991112632096905618120544941708162059737291717238890688191376603418661116341699710054485580176718666328611887201147071018100075722279118249977901378849393661898710098571973255449280182633455874711323035881818613132957380895217295972540776696612381775765533226903975106255686802020428452359962853800723755527495869635915682964360215407825000432517037984671578997901279141640357158996934476353809642512591603161989287489479673659274851695083564977378139421086296952695475651153139221655226686481615408798330337142932835823582557551257121099355596189629852212882944356330113605531973385211932960582702142784747988274369147287701590906536773782050252782750582777107780686046459371509071739682722098550392097235622725189105422427394132940568743108540344547685514359597364702697969132657514661858979163313090783679092482534039377453902940080218117685379357295933045721753278901238366298940629196561446200576077838223839190084894256228786499024739358810014351033234296824945185326142444917100804286115683878057576228276407070938271038360251768907432802015539131479807829750097995434786974037311052837457501390965918836802864271903092065433455126803113098634239702404169365410919394603898643900310346645522068682342117328018776287099991627910822893076221961480012692122645762569376281980983562031729071380331868317759209190412113782357738998399848029980609785241943786288590341011860632830073160869428640491561109996647357721342759190028472074227796158669526326132730250660105521943673547198271213740068578035521795265833169264221544385257089232423407007708643306713399845616858834827576214860150169967388651851992875598057611057543440758591989194300593543360804895115432865564508997360675837135070276102064344525488480876601465170999827512248933753171272377470421509279855125595849761097281563152328838229557326100178214940314221643366363186055034529986009058208265450996365403665245746643710708422210580771365097551318285899022773085482874951306780403719311430612597315356009516125406950292445075716956761085206637754671786061397128473624770202381909830755185305471461045902674932549250116125856741028819403852857964153633829381437532820700079254499024812457602517069681953977963864609127025141801690478327475213687978339507255296534492876751429618482466528926042186108862867157719894750173819927088345785215095907026753489645601355801211882783754079342971623871160615041438246118796246226768772709292485015844566168247365332293282117945983292996444218614115129979020733167540254873932730795514678580259143178653630483006934936154577659699554210961776253866932655771065512638148887947449511256101062513706525177154230048247936980395759409850036796826608809747207308749201587752649724648242280124290378544994942508995232197515408745233684930196221045264578214498201664162555111872183074852338599222258741480872943747761582530840783335440892021828677795781996844289328003193945187211657097940176957485217116037893078309633727592721186016940255035920478556197607066691425107660572765169531361348864038470828370512780808107203994448658466758906087836204395526865091445591121874709419829144932245971781668783138006327634493905497143849804413906238455733302942765286529406953322880125343646579951566527923163162808321690412770860650204909597856957741104699192202549550847412287054121433881475402431495801367852750994633525637057465981872858697116626918423258672065601701111618691326060964334663064945367932865657586502019835455178454718903649808891483605270000257084308344720534043397553184305808632397918453795714196584871726594649388463081302464993158680179246987619916591701720828860395729462134294494814161425160061313601323407365028568646925715310449404097334209437279451119458007418738359051472364144231392265862934623685860823236753054589376709893868257803347619038823416263201272575960762836323456241763272885015565135350992266479214139097605585035712068917465915535242427073003150145480807579584847160211350093455828838636466497896260074089203921425164946089495130559693182184973645784101695773459021518861945312269506822014716832469489981755040465752722101763199940740132944369136186140105692035297252379676322864897830767700697321730001300852890156509741095269145013077762352478387110722870132914080447649935533542332373292081357881869746747337609374303704699128411818706586051484017876619629655189511547294460170682262724546796402486740572393887425679156318956590275178406238519457150357134088765968616494159669926908419074188537949363161894587766981580891121531381959020813271805960593505280541917609979170926684910009337449885147979358228512250675545855928195372808734110192787531957003003905650049196931852583593757731072761905146198427653366636991428069646421074706456352570685178486734472712776098190280243748790224798718913418917605681294863960066422767636326049066837198026013577372761708634065369719971759658073495738068304874372907306710067967766486068973591441554949489377910018160700653306329902869283112280576115912090908271075727224079916631645909347505332326290769240240593498314434906806730525174680550610369271398517460393677159811244901416194316720283303010636725908199410590116684583676916578889421131129210320646855843498744514373734064390364037892784893303693544678104739957738519867241332759466992106645613736777186630811033363416006164772784544554941922739590935509875458004228292439418137999827251684542067254949880099202695707175876595776288144464903749962290658594988979711622932565784460564786615647272029413030081812368546170552549831718279626995996027628508189037688649502463462791255986385097696015701436201435097140912137345176966505880378122882177411658278058778629516750461146957264894126331573539614153167447561040662276264718198522824836722030729037396954968201688371058938491601285291560184524624753123079864435998213704783036128921012398411042689037125540558593169461668183249663873130029848707262373825816362278304850166249317155601344551173761489752279918817895606964814019677767326833087040896696367962136989160656611530716832321745220319121242049447498476828148110920044963469157532509057628584640592996990957960445244902112392563227181183588587270305162365219360059519242559851742106951842858067395740724796852826253694562101354428127466659079970415511896888627100580327540592839373127693597263489985825609029355368743330426066649420826115689428383360458153668172420450098248908700986269213472422168674130221864515594081916634742819007219844527102995301108063139503375448759564059076124620196364364947577667392587189657890371834215050054148888623426516328904024770619610245315201991449395886707368034060817456781869764556170004325825448364365891534592115518814576747527053871932301399952955532359574685841703320602150727981043435805972218788957951479077870658744381278593796184360841111833400499117321300421112868189264870392570661271159437553589779040723508440650645243083590500004265288831456446924986676311783559191240390787682475371818547595860321459378320860067353279363824737302104309731684686980834010281753771614597402319168130726316774981890975262361605611736070456431210371558872501390590519958880188711606853038686816956372610136395346299869804999372362344222594589054144202218067064054444371368270561291771716521782945623529652241888744469151063533309469917556109069958222779445595701088138310060168491296803685842251675502950907456128616552141201727571643856386553646836932609040559376460881938250172414655612221479510083963417505519278192236641402537549484924659576643672114871094892227413494107041413855817170478585791251332073213123477354831845325084015540344316346530483242386452558912897102663665629659077879889542084065062438716690006760032978456862375060174301992221779105578838553392046271348910820803114778450008261523918028298963297717403249962786909644847224583844592706949270738496640169303608363537201995397041619780299881983707544704427385348593222564119495471879673954213821669907856085115784798394038687151738412222073081633611873703157834761533108706330682653112644914472252004891810241607248942186423479657571172278954865295433796095295598029277302135690993867746273892448360987423499143213176809746559431038509734288447732856499049010167864792295767809558763045730328409997834630805638386159499356103636804589219767602638393395890835227035767195711609593762388366539975870613450944260808607533477534653794383673627508119937294471162208895898419973845429115526920132540850513954189201154258017279345440485769172063928475354465705766157847103039238049474031325605540810713935726932573377381011064295047119735592677364201427613166971252926758801536101845640050108553579100163194381680380409436451892031750776423922537121980837335226934795322856392681393323241164350731584285799791215793371012600283976007524461704546824063734710966396644772443751938314835078137426086809719939957053079040894712776729995927692285354295244162465167611919531271474689250267159849418723442719823152664468796729986189976235228869437750246223417229752500249019502234329167900383349297852843897085072993625458371165265654667531249849564442046718326003758945977386165516303723174767072694388274794871021956925400330581320311589915044846258564957870853723135468487184647334436456024459504931780044658262487693531218993099493389559520207973486190408638332718234661811310518599932294988871128695996036402113498858810055914617405702909310516213503879458058922532454170399629005418856815447421597516418076523488735837586616837589471148252989660492193598666627586465991219416018169248368392940677188225135095005922255995735171312838239887020648037947387813897499560450515014164431772835208997098575300514755341441517810844215073692892136268338571618824750192745746263894764601768585109489633924160238876206632027469757155109428449299632393707170607777021998631156627250742611772789357897210999062539126144838871240140659329187484233938302249374956044578997281378079098665968944670193846778510482715300186724394106097125135180689548017897753644429278924758258403282744220469394382192098954134596619766904936650871546411413009037323133270451183447307616509582916875810002244936187562726918736646740613747996108266836266628429563604675843126301299868831064798724669696789959436229466554254348663185434004412734022061643698734883519830710548692630814288642707996323486174978523773973614029006667551449448797131943724345418922294608284128689146121821753671900857593249540091840124739753018399538486062190250907855764533744605010106039247743435222353154065544122387244504862908731787455224289472825452323315458667014322599855687072356016075369502810940088871676581169852494824213385749242735390314432616219921343286815018904467557310016993805376838894138958453515852775017759376383128616226291924086632284741928089682837055079313863013339791069171621995400812694270696657178612708217114857233804762416415810038900282871132323528779221563780134881937663444460622362941804612406084536594314684485221966006251640796464338699791743621667366466664330274950892589696318280412110238960904787132260476177480354064998533776169747026952422276825560180255934435202445095466890932116095508089142243759212460120752550823904340412859687180460826039168080599112176272177743791117533074014944377488375027649064937551161606853786824875838461068971851252079344115091881453144667103185565379878993918557870217292428956942023645348420645064106972876726418732009836503144960102751527098477112567240853760959887605608023104803473764265412965592235714548440945443478287194303055555402752364120502120406313197990390783182729433370924097757601507183860014684403837738121677552158095865301033888040608280092777278273806046382436729615194670074525951664622853826235579491430910641647387115309381873203098574245707675025780267238527364441932159771312514628731054634610428580066840204710944270625713097707433082205567990285076951682937449902210779491019147183307409347235752892763107831525303237702380680627991983101186744454793747311217924095839183788364271424051226398568739287838793825772149413981021972943106960178541077801391788740219649464564336367470441938982095589806582616919547064575500724855013089661593842296602462068961030414341525452353151068864722225246973663693908029072204795038608464217422265781058833638626730332676474651952585779364088609532263832104956012891373212282703900411950570065955683128822451807653168161643571812161347013915790096148358594679111758956311255844746505105521051877832709325660699737833949892707715199803537598778366455937275316125498200960233567843037158982062820984741627537226411592771539942225742198210471284437815629926020676724837668914531318217949983930162381087247922119938943860820912325217568044155739715222262701274641832193042407221180671168546019633512157923627903828634142865875893899037229513990808842086951996413714722080016479268077734310278641792620272987156398484250377481172825381756134088126705667682924689223579565878115232894213742199455344735524530153179392041143701064563399486624347306452502857824760355843243036458403231686658029445512602818814544365839105497624476437539422917733056794168615204160569185510689719890684357425732787729384291210999821151300570139203119750368562470759535693663264880325089761662654282916565116237831798603640783325071712231927046456593206702710372769007770834377516312748088977066832464675188009797395448856919699163251425984157745154354170576852932502728679168303221367178903712167050470370083406568085296003501822912023389003682443450032093507203649546661513744726923262609328069661584459142576801679785528065426344240775072280679924136684423438955224803775422703679826393051626205806114261281270508287986573058975028820542527209329096631264741678304893712629429144764594547077477107375443405200506251288420933060632525980430534016546503236212945692760448573575900208733177332128414233721999753037344292528531657782384761535591701202359478422807607995689888308433379422062757559072251120546242990441152275724593812618986561784528898565162203890817408263713736639356562557495564935386506326670490043370807893420309812272956115475183524570467633982845494479490963627433113938879621844890664013249354042208950315354942560885107767325659394841932910697299969568703936721711257576117467029565932858215299637290539650797235658717819491637445476189178158459706991879959536664327027097810949311552024203064867277465563159681918205605452771834410721843331867344157917788875577961834269001665706958014087341210723843040974016670267396057217640938408755150123274172036306188941044801510255057445464591506077169762959355077708893224711369636658711579753411306935970911338281932384752015987697337322217087221030282997612479118077932835048042189593196453127693902143088592604598860136089131200955134954000512870981905648523943391388864228022245479609064179416821478050078534119379336030230074494827757624885085893489854734554979044835051597914448195536123502211159905672851025543781108108839836401828731940840485590581037033883152431372939117305734007261189887742661297946117889778340902162245410097285508608378912134488615180237625205495410391975536595211931873672274596501949671247126215584211010494360201844165499190759153310226541514196523439386595260290685146800456432273268692342057872512703802499234813932191693431179589512757205123460526424285101113454309740233775435115846421373538095095120326377575463246362072161384420042355860296158792948394097870752286171245269614640801016310775812758486846441018452178968173115050048810320242030207215789170393464556921600522479252480310481057828333410962311757103239354087094282867992592204527221897330759586081558852105746831642353059503881962539949721605471698537142450908455585576473490395175918027201230839216072398613301409900926935307824631865832072181081739822782111814498258420313260185544590408907979707630546139803801818892410998560675153501133641250894892531625500093234415797190670974147474643736720457224261158657542028689918576538692357192704406947397124033116387528514406054063963603304422261274604012998895263023558941505790861204863287327837946295824960950049972708353716282098389809183757541826887749097068712079300317939120400939541478268414465028287700147240557679116286701105615200667951138845816502248876391096049975382296027532469793672203932577166666011096965375570692998753358420333951721945326783098887478778285596902736676533937719847439169868424619780552053641939759636043437307283488682444963182500461749036872284586433065322267173962526440101883132380130951740629687443770441105355883122203529860177704831578411461211604831378196605960699229631594407766683910747904272736482546636550872795067585682978045080338457007442881832653445128784562640800330652980415368646184888547722534457444214091891989048494252416307901541533167815221580438153258148264748082879234798828106507042979361297671459381326294605188487538764979827213642313498986242308716470369387139373696433211099454065786825403803735305677195775762407459687083785581550550160314991313236698787775504457948421116682263707070106967650682634569143825497244054664594709003088149880519094422725777582738462519879378379270967718034685887650086395200822427435051739837021382992275890253100761567108677723400248546067931400172750325343241329611167367917408168824894755411770668685525448627359778952867013259402668184661283571760964089876625523639723279490187794501552790859148658390197445313230801427078903313895673417421909866017487491469435991983476077498622311806464592855595189785747595197565140132510603406960622615785874086887006397762785327152357310782418982065716074948699300824414595334978895941584532658145878518184325552002658013146361108126700087152544714633836750366579961014650715928237875436577502352263960778647259363167047531690025456911081400733454121876241186267801581928697309055339136114054353982581099399029124391041640513233593979646189642432875693409375018206966832537240762619669396154677545998557877292251427430055492085318419643306172484770471916872264486718225686100704033390468059508151509432811104752055480394184142092702129919961608545538076537540355468389287680963983561650477503933724970586485925960227037426501411753454027672211207197610396199117969692161376457493422241107463519094092451932472552635953257340351905279484774797580468988811131189293577527668096360022397904653542318139395479192792348964613437621248288213612728037742479663195440527238687011988856775627164026340477970325996980933398093225095847334970990251496964118097384768065931453384472327633367641170788267874078292134932051573504617207776794684888864980269648446336404269103269419845459564529187738730587945844538572824158011540523283705554687337845736854677490567364669211602497504219162332577153248941118072756903822357344774463487292339593273891499004655768108611496259364769180508699303389197900493641350153465161719055945453817888590668476045237708933755620486459319503825072716630566555442350403941262689910522441980649697880060768723293695719070804880645477472363992463758397247883121043664425340115750259375848325211493605373511619314396680268178385936546481542889994345383843920085537720902907735759647650183027010101947696411474872321701195937618403707389924382780327266044462899913857824361534396103254766325621730519353182316362890813051155983870904824635267558529700570184550932546807672293094828628717653916591542562487393825630808853139880453936982363866750165404090353425959498394667489793795275479996099551401882821607536740418975325152351943883751726897714679070328317340481891911119712371684210278855900361397806404972912861049040948255162626532618146530935350972158155795403204553794032601953882448740896296944516720099115841412299299089839120518116581863838922428645726542324234293735252099548983113764517812501002381722709570351263034100821702703025882075066129261089372609092843759589741860883662292966624823054210294251719943363707073319066200321306558097081786179435888071817485531796402058541652226044105043776897788330276988219696376131067883879687777652924341075887314067772101569967900206250902063173598996653078145988678441253623570938698422693944825880446818132237540936665956091960667746439589848421838403841228611565869047456944649761038147242877842534912714181646288311911491869823270936672342238218460251226292781826966624372383207180413282887155010300466610598909458029556767952040599774881622871385662216888863557403275053027034951076168487899587838436625070843977682381903497309652779521813263529407363484239308929907875654780144746311140618207568386605526141600959165140278122274920259802315209834584575699758101449304594452412243159145551666668212656445557268681173290088225405267093709116443390433291342765538501201419299634894908206168247781901807996491001063228127929562925898257119949545908361763079653087816986793717565766876319232003439545730952249573005040868693502952326100389186648596483559376739825538327096211289361409573067916565335715030030795240438275424447566689987507172279236454378386857765868602993346288038337184442492539565869161813987803448589539689847289358212714535149223535379278097018288767121978705881800930028218709903507784795172785496490085724760872220063211606925406499634710444132882724533822135652891862659586110434910996629686350274054034876655520415488748979484686381463653508362381337475602589562014421266971202563069537211394890794904182270042355123541280422508512782397516172107628949222353240976389938565757169431518720430939424319189748470712741497839723957009570066938737077533293446503770226959226940282948679184380236580529295486251207614060638771853109138180004607242958099618202645100829361216903151891207516514471585174313533617370642381555060612916053880932039070496948064486580708172845239409745990871791618266174832442748182925488228426232141619676567085391066350878330714558956305947175045479821923426245764262636179162879246514561145193900850417707044430474936302265719216129894014024367979040509485177188148849880992976040278167828654189444734316782614966615499935992903510319314901487661310608761677011295001397926994512572538716306763877379800967768919853897997167920617293019456865048459806070588846263301945332698077950495852225880830338464830630940446665054543164028792430265237839919662193556614644370153373438275225989417872462479449204279574779402257313412707093842899085827557379850570053727860604928469139772325713503162108189898921301330030835707856271834846814947866876211462920276869930947804960290753988347727352276272075784593606466879167722394448406230415520020582735357000894587666342248500179750200238173868595365874040700465472459916540115009899854147156942330438484088157119195193074735104194685293852032570545192636738779283241087155120599514866216751933424774349347869318955599612986082037188438770204457280470406802024621858661161150387083394758734408097754680190150546031358981768895045995305125436463392262597204342763096760328039226895994587529383867592143235672585236695995356524963872615681012454189869412599676042444309452481658832349005401694188377121133395401011118517655477988392503724787480315353785923129859941445443080575938656188290077932285671192048342094540103936138645697300825099878752333496572126548485674960846305312007398907549287961615129159794812850519060927013392288931475347925580627232384877908673764770662037349097219358458240095625962623440424657520209805807975627609363149758223177480465604205680121598194637190630106335025101259137778633235928535408541227394237015253569133760516853611752367984558981676164489647300877433614740388664602073551724048388455933137080806047471319902691350575115868351411430094701004474035335368606039882435510854327309225546598513013007471427971171030017229079593762926532095932560350499170332648618280260259724372225121664043278659140035774416854348288843368061281378729351528435066102995089765451552187778363555355685858543540576649949140487271954474758078730005892367492504327761466339072668057465528982040800079684072542870545311330254399101388727064808542409342203843717592133719204024705792806695258750369680155439642572674966351701012510466573048065246979651941601066390447431117551288572296440559937505403428043341574840390631698972100548064391256895780529409348792274409407597437752929997491288633342406959389876168510141419742687427236063458695460182487224038384124976846611439062354975288353624267836027165669308326620992699336359831087001305823190142783952855436740238805495717585664422897870466979665113060131622394966191972786182259471427528144438514098628895968780544864281372006753929591199953536088404688494269057197216343750042280275866422622929852158084420517996718482846707768784724298056037859283114970115900251377921015769272207959248597818089954174863889624373830783414082929020127377203357649928399493036042307863800084082005214624230301270453016000864985038257995822384468153988187247724328702897640365934798478813931974600633863846830307877347759620111632171073904954827494081249761054834203888858753370054904463519708314679245766859002926558842228886255305228386519448479668574452114751109163139115331966872398289883121062733317506438837128032062809732977122701402802789152219223045666801539254472720509852725889379842915165279052363453006156250229131939271981471292629117612408192775516448838022518431791573018005926177414868856827672012956164409517699534962242738623987044320627006137496693054770521730936653048032670722790634504501742447841343118832890877680930049854607997764834902710769539007059158951151845519529871298189590871130387776149284702337194226858067922458907109836744428732891188213869356910157764826713398586998437710180589580346781473674974165994507928311363483557262480053500279195794876117689719369512348788521862971766623483464631941494584019342818285774614413585574494045958450187936177758961607288459127622129542966785562847404875184653270041763003411306830156984108029924352343087713543939545094469211426290177089762400045427897246384872142717926736126726738959434611106819565304891570684284978215163742066457128334722466950378968678333573355644945850696657084522835509545987431886693525291613592597700707115894353330675698456838312959369423155287708028560544353588868289513412333451741961968855752438167799734097145631173597675126875711809885065925117669010359376557278130591311808066120274073080199022104533888128136610400202886925039222164580016010549419422727778593694940196549713899454393263873492925000473067853652762961110010997833622840278207292381020657532125097463154988576871136596871676386133096333054265563108378654396626856366458872498412070534592280374036314357380646398168012981972314055529841208357741344854277595498996481160897274776264527177102021519561977396098319125149270893267100848250853495583017809929749048744312704499690207095864725011947776366129526401024131380898914345799307378620091756456590990499117121780418499813477697231571534473850314301328845765427214185499010743966264916575573017928021990657662427314361175347477294448613289557216295005447350445061959137590626174599615224455654760106035073942820455746262123877016882551587927071033947378523203670729783293612660005438338860263229353491272418547393717452705152656454443389419379363318328665730793019988542794382673601567391762109065046230724841722913850480036102056067850871461167794083991324685476346881439653522060575575432640447390304983044355190645406334266111315479348652604210330371797585930904115644050987117672845555121035924503289866465679965409434340497340196614016945449670555934623505840927665868744272871632263366586401311375629030247473404317247714557203701984297716756380943335008588622480906004519986823489543341348629424381981589202328640692210292420343849051475820191078675723401914172483621015568455863621319703798364256446380550769885411822189683899471875542119131556930139959676315258469861462306827967308446230164083089969992699196333013052394849504696441774533981469160576370361365840289340125947346793430765138511290062651075299494371379071796536317481014397618066943673328506814140025931140137548213782875337503472999501310667614727322602642677122587481206419766632608067716607309597215796419921371069571102301714323925039586244693901192518202457678409771748181480845839422725427143751193648637918331358692960928662523865850308178429435442452829286655023884112087585541425585371708430841312172105047960320040235441638655442203257642260766481312071883449707751448527804687726092011956865506840430661580416732829045018414587017294079379613116722566383845949906032495523152251058052982198854918616957978722057677717868237770819358160629027247016130466751392135808281867094710787706105761305026770079371622520538273585813606146937212403947602132474194140344703133035978785706937183065585931442347174478753438883388178541309092536484759370329717728186410411967183430370008057405792091227698915388367843434114256293749246620936109317444815912728497494554219818310450987571423329967397109453405682718015777711925618469106182360444520627284387586599128772257298426480395733139070841101096274952426407490440412417246479837815948741745303406820739163401911829431020855879462985254884600745651564992773674892945929688895547150255744692081171153220991812222294280384546580462932157000538252986458030579712229112891952826018859345430463703847771425074008540695071189196431395911324113569373757765519446681173861608852709080436187274613479838061281014424290869146262223469896854272529153775178228842331004516831397935538728530817458256151567976745180278568350452077428863754934561886721754867362529082208024253141294796598901477283970061083250437472160464589358701768038212042599657800217972682719962745368072834768005744069938279107531059784614141472459738268143218287941511529590729934894309262124376875256776524840131460100391934848885920210930024944442507248673340991139991507467830825144746036170578129777668896881544781166948626897396986976886724453622937907838011180305957442344064028312877968247012682463072924026348307772102580538904051249089541734445079610143743135987252154902807765306130717022519550033920820148207241137178474150684448468576475985194818931990014457483946043623080138434091457176056023473348025651646805462706137319717763273481597482912758906349228226121526427066561614484172019856556451136508757117381503087637664889308509399263653795154460783160860821845120099437786247284904389699189056515557937339947535553332325630776306793638401468263007125112066841130909379729831029342548003829123368444364359457558630558024717169743678457025872465767858495034921864463672680087437061248676795503352504974392379238535885759086784215679988922207811551557307817067638927722772845001358853908120480913438328790007702247892542131110903433183946093809489697077506856418137599787799995286920005949941744807864331767508112069180967758443672328887076978838563218100789193963788152723599758822439448629719201585401334789797551057537266163377245720235384360696255043810751768357889743083433246869756410431636310139244448794001111190764628245248612858481921019897520030052371730704492002773573626049735668221079190343500739586747123734358695332390028452852955925805136979266299085928281221684161939201993988616383537013930410206343919425438972816794623771847134154928429672243304421619010833144926787698739659231640926463656763799105028826262637550351901955871070166656246422141397218516421091845918580360976529962921977768396830077544866570132032200366812346063477488007404121002180015486872997637837068478117114674643046615881786582017384664704166998065892684039966157592672022013800483672358668978270588257779386123297765865473325886851634005812591026320977724809289520238611133234578809082405014764393773432692568629773230568665918553563015312694161264740535517489838442571868694737207831253210736430732425782157148514804856383864141756361111102355235764762794123163451808566986397046206529113982650137076525516779046261513203475782761597322466439423251552591979044600880899254052906727024365372884391365465867412415119634067615860021258347029487493612626849318602459455804482434888320417302184042702158781109058073298309625765062442461324899271669031038985351632158145245617949000199542808581628310464758907751705101370043439350688991975360046482893729812726138458763281234900067782237899699365414639646989633298708032722578035177988346198422860979629609416295774517040296757221227690901375451081653965892416540698305968539882777406567192061821345208813033286504068691168976076556070976578809476405434448916726400209980230470899353486124823251122439629515976883720646695007600083774754582301157001231589925317576465662110666942305242740871140310039300147177517587599060502746999252733671321523632640895437410688836442371018616644481800833017843209280814831979678846704035349798646590207969288132451194137441736625039138147127498631029783909081956855989276930255258968177179571200905633771927471307204504589136850290542989933929932681294936935434334155819372181375900793702167766540441676957594250635013360562190578771637666359460187574993791869990005608964775704026289689750264056633576752271030519321264571284005543642981654586103778963662681230169493141783240695055411365246377879594891224574688746808367234177481894315897106730270471516301710988013294134129765752382957965087731544840556042283311146794454774558882834735318350405420397474511281907279536139128077752641521696003141950215126251776757058568701747157714976842737209492808598813356768384129690673735216102776374475430234963593458927776750568499635403435109416256762882573699976970311972066820698048483147271595709101308711900367587393397252912773109814406191449089003344611369241740033413017587124244119946028060123760222423360988040962170844615675396671777860705846030907981774620995785460484494597679390303067498075918429663693124084488430388328558345140704728169465602861012921673861432265834662454793176623610569694122057731269586175405254461844344449571551397033484590169703181143804021824150366026273278609581204300744131103855521956194240051946410316710818534206323258300119139049688473692392274138265167334441901508835507386551987286338075013233084916146598692409919501094390750363183213863890776917436641929130550162627484192353883029526074258365644110438785676589406725008537398775798867203005056661851282944954926806233225334015737354323631491860563753944315862704198988080776246479055168469837783493255436041377486743412191891425338640328205304386600285472220667300290730430306965172095442022070188829117639613193689566959334927232484206049984714278104507694768931485586638066724530656072606061155814350132779451280470863183444544314394901823194744280678396278031661952720491822655895033586885782140864464652776424709050902812665520856300658559185457789412624719149949736262751182730570223174770886214643018556895932993599100076878353477473676060028789763809982785263118454926405359578366841889134324345410404958203632088199713213349328143799072716171457882749840306471397634172258275077801737624406326720433296028084307763775963223031844618450632755978560733027064739262904742525650261359088631811603302425210505414365621160255372063887157948648006608741646735795398723553176007506729425004000263839364817061830770597943259027309157122171050864267329459174009045750406140474078342055604269279639537827149804282710212680287628144426827188863712185391705183983366704951412981019609572452600557837687037434873257453873783230593989252260934876296356738340290427865539307520769470575257505482063436697153374471579259992640519738963497304884209648301821824012754353221860950980447116950296575869702910381938163944611273902649008211090922523111652736022708541215402346000854129668578124962898912375630737339771391811993572226430126975062134553655988158135668225999405161836475736420803735068465034427363303255873560857678945580898302068392326272054646566943028230909655042832634928350659198149679789486420821446248164308884904250149870414609903705271758774489751282272520635799297438316780389686383296617919029034425833755928114330253215811908593386393988082079678485234574974336599531765629313828114579365721215929962946030099362372273421547285464424534742031198580203116882138475329846525753993664621495380812702759589084551740985299999335541519680424434226550706607903360021639089449719924896909296329811334708589797894773036764538327782197827433138649080135455114760997427571273800432017552921320075160907261664721740104349927436017812228139364907528771763394071483673996220330598597161344496096255495264162623315932681200294129290457923686400899544510773155384279191248677768132809694291180334560835006363148627168069474902072626163203174195217773271843541321334445630491704331068178358164802033945772300464281703670160257327967957677706269625852586212747822736032492053403147966625737928589635230642336692380349017812388575740903450233092497006932804731431464744248145499889350181970780815382888267678789337128685967313337378589219524255266865117918728384166990020622868050694552956442673612077359084344508039957909167271474223631715668982285739190970850410476185387341557393500743163320676122451724222022534904458236497575955181635799637294922819991626089800747941941323926842432545491993474177786576173195229354209745914267740848285454341385083358891364520120751356610374000595281118345244944423097982232337052476002711642841950023783090292636749345960476480535888796068110777148896085730280535450444379765189791754184508418264749164993756350105116625618158612091441410618317897193387899486838827819552921613170212111918194015458853782630605853842702373735933118711521461049469462367821340232126105002212322612401040498591785855282773654585945774332546154996401158969283681039524500413517489699882517571198790641675553846854314355501867529280393059558248925943792428832732293249489262159594133643051989034993436220647103902097210175340092366287344191643811775920571040027268357064559515580574349213853921859936229929807128212054656465126212657199076008457785522964301958489179258353918254540859386620819907616414434981366099275239329876076048065897606665460485736370501184001237486269934892762117066991770868465545188102948837710496341086175607988324702382865693919164648329845049845043660666881617629948340540022512980254450255625421683438156279290969751194943024911478473892809818777649670623283057687306468959293744946608600513896303353231541451845781152771440327490452662238528423722678014784824842661235204832936083521610801501813855017247432397863330351402505712952483708826391101686138982788529358463087409911558045869586919616583773108180129016244493218259908082923411453421190785284995888864370664206669417606502533542692863371082866398132612762020665242300557990777358376943553336621501548888820129935522300943094685398801891519376984941782945004429270537132778840133226162145771675635303401191316881552803601865390430337714400151533099480096608504107610124983336400116095871539270366815592966885405024097404039053300440251963413933061285791173947860052137909726956411287632772072395159633437560018252508776520178390287605667480392631617255636724805151472144830229748074577500949951605212007526349940461871621028476490255526288707487754752886668472622616922562975347502425165824019016874707800760504546567588552091809682433063116182046863568801564157858122308294653680365399704005664779841858679958056532732695792352337692752530647701151675644541607117095724812433348418708584671910795359222542205775850084975669581058541065549633343022817510623425711971723737500423138686668482583535339063363845366438628436299343765519003645532957083753950070552874333372227972911217664206030119407937851674771681890886402408550785655104799997184605135907487207860197558267501163314546290311922361377321186498800263717251619134711958209663210254911439588869005826265456543413744919219457927649761160595651253718205033567528849702878830571059782449373778866445749981273241767114259805028148362185183807890595986849110119035908999981970939693537959346250778734953704925212326668122160484918225235363605196901061940822570282476457106053719401587477320195888476834759310100558179929259808452207992400327413082454862109460568869493450663595762441384107475704587801307697688789676224072467914856940303531196159579162335267032001138542166977027597959603283088099132397645100839341447434688986574517595330113736364862556343664742483015728643461463096811643189773117352055704993752733897615207422147676203683980916755549055522560824303006626065029052460264257684229264299155845210008881874664219096274865663558330711183589329491477335354508479910455516482997243158201156228600143230599580538505261595704851708338065478783382337541093008016944530645424822418930556368048039673588397138163242276116964322801627117880556945921208591816434334519075120428862878539959636777466840425117600558971320046106332482169439654079456204453989619632153485712034801138905973873636770648139317106893148471657502749374947401539892477524831482157025580848146536162389329845895820523958623426770312516359703104294893966148956093400465289174847344683445797807035578985486925745314807558124315486896855991261095397904531796885809539752020754486340970284632693121730717049471116355800600189012263231046125164038690031763074767077592802248429425361374844498735155127821412463345755985440426842186014476479840787808274947535514995471656034883713939139514238062404632401089766049480784743664804178493231454855490611964650148678640825519686475647016048307712505649151481299878404976742489729618085633463441263710950888296614984048679752019512258863845273485444343616058777954017365098569756222961308315116029962471825963222279180642634923359279564075160499179642166147844942527001940786048822534770538493830878249598537391522705109964361003949234421694944992428410099552319890620094493815508579316833779851226710234936499137220314717122232528344330794543415492218395178945757795684938166609480247463667377272420486580383170889932718798799602005528265974722042080922340697055276341084617550164611711876255605283247737954325968209805930503516779199784091084349145940034235273372324605611170887482475351840193764810410323622389819747718821599709782277754765089501821263505942029236137118335923165886582737551249123731854351054866642210247778358049161405236951522524410480535729716581813003959936937130677676208725427897781863768273257747045203031178986151736640747001323846428349071823925359921514250585655100719486571201494477748061104470359646812351698733191000608652470680727842355981652321326870558581070303527023577170080817416784859958032851055131173238610177214223504090224374836336494634498507006201722037329711506696585703437353600256128119060248124300449920464703456098186412533815064886882815008369428411499283887376974438916135196374761517050308485437950099588408646169345293622426687749816200859458090067897417648823708772821642770905865681267093265173779290511213353684610913089223753056350630722552308433430000669891549688649934910826751287777733464770201385982724770736830007582492791457245718572763679572558398995897981868277966092526008335795189114789294582423113495511190960249398965642354331654259639629900643404140920337990373980793448243489819312094713485791700940519323360345486688255414760979397299584967854619343930389451103384387500190186921230363287222866102443730151878140821148115710301302762888597974300147002238080583805517681035420398596929362865661198006234774901782634364024876522431764012288595792772040989959556258394527498215225804574680097079190161907671579030457157976183530183785393057598356158644108698964972324055022519079868068927178616809893385529887140747697103818198878294169710542219638386008132085734517380829046416880604521448170803117770311256935863667675502952725924074099351583151005781567702129602238892999262335026111208974058955850113105873098099127279825445546212580626127990882596724176794127878883189761114686781137111335534844018598136354855151172483861688138438732597390812521311909494084379353948087164155565475869926498572567653970321619398935190091136711300720328892689729590703023734008942100289246230992350892716585496150620345416612070384492330265035696408718704632640180557413573486903449930117857828662613891846844852949002589276961049936684277443630191715185087769954755893041662173244522777771339017924667831291412113271540242508962775493884106512463887451378285044831105081364837474356559193251762480551069177872000955806938645225364407976631099449101130721351022547625144726463801237291890457514370959578875882882487542316503389625722054303620590508477044441636338912322172272138740130895664490621436412908579187034659291182189375397408510461954515100201358974196377083313878603739246980961555839634546914708946022337000036005492150949962985228117653605657436271603077548729411582247737104304660441102442340059669062319819189213789470811148269050968850814115165476595981520805730813747713102581977145677300158006152284723499194675007366884465123121880641494238143527214123751881415132947634442073941937290715370964395517546365135784687104431715694529878168546932538163542034214764835974925039275109892313859069318879023261803104520093565411199510185416551358560509234774775101518896632342017329667068412401199862209070231200176085618695209199798408834038175445411946552581171071490543715530054609792273605298761176086306792138076133663167997884860448115011750008491281756151037768732383247366214798882877471983641105146299801817476072639878565181391201920273215690004642628235060427065524954238354449952285563332622884007206378983900727085046560667228114408521022109306964021003688495478076704476317496901563850009832114500768636537281407834194697508434850974055757581887673893502555643427922450623804101317207617314845750848225737357615251616684343619857373740661590986892871008543731041134651314188432690467885799907427471835424457707107700547286212146844066931649860576687290449123770684655777241111146354017168609174654218256415462454907903500233840915042503585500443531024974156887322048963837772521172323904130938557237538561390737805611190107433012482751834545364715345533197911554305729579966373773195764261297012709648649917654949103938541771504596436883830239624932871355034427796334127162573618956891419899625276722100747048524677544219756835375748943851523912732900239862562157846823481151152631138250457636935930819041982828940460124761478207578014975835842379814716335707179875383222344835900774730514816060775852667812691745680054207814510720447588340221151828304615021108751306902459632460562473748023319864969198761493023413396321940167945298907582894173918107276738223076395980542815337088154951970860287211742195117029280228652281755793064728809290274699629889595552397010584356808244444880450649076012112095442903698622426074274875878385789226043250792147350480557497575513000671807306475183605051409844451274957623166974122810536793460359707308557983330139563044480820775053675742563213471200234346806614247145504093974016813267532873855976057582789629580265600048634555189097695345223227530335484379757694173818231686895715935826940997619710562465619685734090550964550096319346051969593466178340493950946340702185600505859554411304352682780745897274878292668906919801097107423180415288474802094738357350167878217802183507376808614365884439149675358112736757115486164137811811254263750843514745988604189063686330475844228280743184849476940530908659555057499822053917993990735441319309535306984500503127866541347896945257094319930751094530046341067694071648670950838643319592638228589149770567624632369007102716265454717141660146967110034121041873006218117966785102290399821206326803074442322544544034984774824541947556141400005331551480770628772646594589458988309414747925603782732286819016148143765206519787686707510149890065416387902383935432750699580156248410464229183127639479298354045546787128542449636429449549934425309430501704509631633310844733892624212777903245342512624144947451799742058437870118770946924270508090278578529951224421104922862615158210517293449285146275534079945357916511750880246781851872451991973078011001167922522597373731063426216027817018809130507568369605522336477951043455813080643063248359308129007294952792523034628184902540455232132727837564597529496849833981259018285837712108157256616650118723892773133824904134484622125595813674112757435627259514598276697093932705842062208351107914228455844582292956297647653228304444766952239611153237780207076899268697969872251013179845378977836080696390754468479884423538165523959459706170963551601521254165664273277202565265407348336657004451432415505190412300165355001786750651793619517611497642302344828659880590196105300053018581110166324579003119944291518165047955964762311880338011894795812301244557903937954538391375728285123465641999051524752047954221337477753642732499294632584351542581437489715916387176574254372763822457614739345439802048311071142493508869808622888716608141105839976070213060323769293186189135071705615280304135374972062381305680955349055746858885778192930886863555955121222418556247000216296851504447850891651963628545365105745921632409805157864614547541567373411902255063806639720115164351127708731493911456326677200526910428957586273396901116007164937654990486215490667529048094535711370739675396939647411335515740927352918484027806893127781066785180584285593058055566637448992861520634225230452082347581473172273505376394540478190683927164198643011477400612772287583426921981829118095838498972269222124853751310399158385430834284939397377514980361613918200660665500929844560616627816449633686847398267823931711791518775563345309182353183601001572180705430482733505700572847801077873764940290113787123091711306134599846006330747808008651474530252395237184789287770863419353313530129685267352187640385723662332645454830600481844087474137675102293655001423307737626954553450983765490654820488585613647589233897326661923106986444313678375308770535803132986027990504877464474790542558118645361178764573592612174490057305910471614695832735134276239077065140192834788651311722709039124710172447986125942690315310513687927324120525895587736854085674115101071557278258589049960359760806934914436299017399089386135161408259194309931051590674725841640286118645930377799282606829377157780499743068662958053483560430015273292061179611873735384306447244209437420034027596144787788175997335358184767380533235768589011544138047460343098995619332113297134166127111865550537935156574610330134232805158034794915284939161396841766151393719022637903798216388031766918235116248280961062963832031422439784699486807498231238944950405435294919580397264631057295615937528179873784471014213559800231354432887297894612735204011215952156073393061288518530583111743496223218539752967109446244053400152334524795244213384079125113444765139457115518084346939734743878446858603416974850354974687116125704281314774610516732257338836482374981538435568425585984116270626640960032210936594797444041333456796048738969988520639684353044333723782919232729397001643716611617229244717494148929562646860213242485135247749565166678675258407757977483183159852127422751075844217388394290906285017645179547422355240932594415424819715774447848971005336896476968050137292896401654654998148325302848881947306100252172647852659425967395283104345233874998527611415225737908302181793040973342599047647676132366362818615493698417871793750768130899550056857377467131736966517409801606268908969903884189780910020595710824219415573719213368380094715328132454065183898186906505160881650400474980334196945231929747007763398202490295049771249703718546616126436071285073770693459235058826501155964654875868488269416886475860110453891770314939525200748928568912510480164236733733146470056855808225301467073014628393491907159147990152872309278626071773220885025643906150617143753153211138661941798724145841973632887540875877024993382395249191211936282176214493219186784239674405985734873936455162906030743764970604850458775830764337217719856786129665744902409414221613327074628761499696813404080866094359854474926041596934001377224871413431259349943751705860325307032407608174155201113562957158040573164634871697573107780356890303699276874517886358706066486521255644142167265529100610052774409252017617596216485384319970413794987821710311339363564074334078587214111967004812187839515075777308693386443613219951753620910502148941098569698482619378740398904795836976110306474040072636812803000373455442755530379415668502460900369794783761783379140344495689339822085162475308388934848521569460968316183043990794194437378079816076136386703093848317879170903232684511128754550048622738897937297719434543322646352815506570941995986440983202440243246481636956354970450697491963312308980576813461137211595287041501091876740196323925023017464345409499436698762298953855154112653108007299154675610413806121189881634607392887134954025414412890453418118603547164727140968050155901445827009954210703068373020968412454520887898993866590193394339827998869620966776015028674426432390138602133138768968219045824957456349703081903812873077143792227900106738148942532545751039992706455919653740534062759053585394234326267947743802510967086068470785428487930832415544806255930607314017628053254159850148735055569078887598399825240221651583420202946639031169578715236515097251345385879058057717904845467610578645463540417566975437448365508795762993301763835536516438802723435048579575063149180131469841537531495912024330142522591941176176288503218805318999384310860298550109114205956315702192055638290909653254487447228713225950906888264303197662757189280847911270396822925349702907415505141124654361638000137846377291989657810140591147887786053534253361579171630922300968168830496195521681792332917828421874468549432045200663451858226926001813038244880846665721003927345697398333878000326629434077448901683193996160131467376303967770805596299254051787375387810630996564686368004930292248025212125921985903749181717912024752887515438472956262278589246279856852004274186252560827065328292928835279446946302499371790863050020034221820694426109246053836848346277112373648375404229739802734027069161171970844738632515032034123675582563872316702277829173695345972400642539312291129189220375031811663287287608399212879074764989853906920184192358402684625123078481030685749678656349071829180085797971237585685953055114477653348360434299009866055635077373125770548527384993927696672277984160699440278313615022158164995832726900385486945967595049230495649390965621166373559349482497783251439508105766087017070927353857876083050020581724747558899752772424492813321934388024699846557683581955335910202463932797595402978049799236245412957349864655437393763794430409951147621418856724905383387548938542407898487205304376144252172031401807673815373599304489872156295419334974859141143738281805141081773735266346882349230648142424926067788129815514950563881292886294130829545488280238423975900398261529760523152775042078651149580494111553387914938012868921658167160239880724607760424874254736332193094038539687992007051728860758236860946960875190404781715196543024906848161079535804738724251318143782346062277272495719218970607836886659346989215301685832745532450159797570943287059932572281584712291536693279180892588036398079082179643782196287693795855396878782876638028087269821899309003011792071598323087337860573769350851993377095273305803514201999479584208965350873192102653589891927296070965979975594213595038651716304875410898434842451622192230084603273188913670808119527221473209456981818130912449700097919779894214009316474227809416152105780455922784090278246104317342133936058036726868796631985704086722882387752768061256422784771991588050399162816405738389534383184833651191088107308056718824603797824556512685191647206161486747589324014329991885665565430242693426598455068639993462993890068467098536191875727417090338901381344417453296323890650069540078061855185818287213683694101257347358954528926736047118131878951390204982851297124951310653387543478439300482270391421677458878027509292152719697837711932751699930600891653820987481116770898118716973107600853651833552094778011584330803620086859091475556850649011064794832889619479677851381110263496615779343864950289149359810656107084290699411344518519296994404470732576777708152387707820361416246211817113313114387183630591577015167667898506235226723526529679762249906557685544753221762037142144704805709944732749932861027832497764219540921054871365273021668945111450637859253734970213539077348872123357157863503059099168346435934136527646020495693344988607639583279788411773745207778641206845750652269261201715329489098079237722481596002028899355467229892748415666487913304097327116708312789350957395174555373024791912769038704468547920656622415245813917233425882503481824081167049887606046864432796173850598120635253186466383348773998870762660890465007194935590243305592181698219806405498776994246802288961022979155361142532184978408163047644997349338914122689464640168863639023748615261018126774373332252696398269572638701420260192573121893851109268382584174184322700222242643527401568995799293083732875771530830231942584141585448204430844184052246748976551526067669440222786980875383851159261498021559815837070956732337458043736711131113947836603579535057504804265002273933169358016977790200408282023413754442805302657703992397924379137460972068323685442465010524854761500350507976489983425258028777192694767960718451319973442514954334255494099256654680372985206535686055120062240929149920406672634354955151938303709400044936317685862433518717656563574843640405956169241903389527333243674148394596655447127037825498605117300755769637725826731965538031431521601719178287330190631814559601103734544461273454927030569163643999797563744258353872784100887063808060660521476860384884176059741470145917216670088330997417886955972500615830439241527629353223466635981856588332025126618969527455507755372542651450419443336616894178602119184957894258782733991738256518610912831522002815497928235787298750546888397316224555770908932655360677506741902041254511065725252979366893601715318892094337967572380222158827472496460420953817755159116641512836231141661465838779698907118882572199107208101248013974763525010289702978594433224631247751527572951436146173125370099692332761596375052900289944039963662014665582741515714994460989940853344812060441605433975871590683951437622726719822459718459441129331372650026264888186242997471269469781399717702043197995269078616705809954610804081402681563252554968802375972886949515857735494994025204123916515047138237614094666110898589640712666815853508932121413623071734060172077864545021581918379541878301882744259803635241385346459191518745648522351557180840330641589918821688205993401940135497577745126689539081690043521400197579706613038245405777863165182128162846529572610907011699959910933274938395848451475552049970356102462325244824048173396821585369991063400977196127444913613335975684279900312554020079227716511727005663010554659583388497786599261607227420732363731146815023771811460831898182911069020249914140365619588126960019471484521300826651731448612610272438458541800013048474367886716027331393405887209849646620104517467508666900141318324276869941343343552269234036494042032534910696550301606182883506427122790739517339029229771970883709626345804507771806872169013960686117368712667145018903977379657059330830522008195786638597207574201188192277464239706132673358290098793468574975213347104234050999251843002111536862725380309603003313011758414444600658293877779645521616647237034962016074984042923028725436102916219692088913824868478963955902173225373176684639252287772502880759724683030226058754828323625426686773897466818473566238202957661719005767959301347308496356176775920037482203655623258771823310710010635298445621514352022528256112599936380989685562499274915392949270299604651907968672096727518231086669205617536729807436494237501210971398471915964141804899098115566395472469117661760269126986339176301696365713864243262183913114944942298312256646443904259361436089139873494272533140888987982529159045743400807764661244882856844711882577521793773837266060445083912816933101420234161253643460980477638407558841349698374130118960868621307569848474658480673403878904049453510530920542303624751829405480088257829226071652888362869539666306715330534222617844195693642662319525018443185194522922506455556149742334800843441974893337365098797320401313812618068659615158604159081483009070616467290874025114242610790210673297774909866331353312594966192934283866623273583261453076015185711473225448357778113389455445069459118724797258473127061866414242769702038452425403253000076686106889900465366402541992427090066969581450672542612156525191365431285043819921553098386276213637167817279728447182561034146477496089283755362129805830804336904096535990995733242193458862203861564495143607205135657603362576180237601409801400373911250398995652513530266418383007119816371951325056287877171782674211632228609454968448138161490010996819410288143076608476767325375211173767271365810282265564576461788202690670847824964559651272909302566577171824170687785656376710712124524368179316450532197712741390990157733112498964460203760513423312254967647117333390733534123950780636412740046216233265048857121370808277111934293425980498849506853311618546864585327989283602355917132630133731096379068110807921795616254559500848641588730026791296822240272153569350521049530418206919088314269261765914879787374118977476631593973129361439343374751501014465501499396933561204500648225533059792410028729314676599337339679623146475193555168832494038695317783861976303863914151756444505691274956137678034223064620807608533273161375304126994992498379899467426934001018263587811246546345350104091181984935061873943076825008658480612070801211957924505683888664371069511185963983240254642667427209683294980551894950005635980966338605696658242139926127270060437134081143391171598397471853918924189666840480639852754222145265521884288142256386384418641299152179549544191756296365568899805591140986091553485776823679937604505082813210231739681027200227786172037761711614570161301841450463747503535138235223590173364116910573962414386591192405022656842556826371436532501881740087477693497462217917193857530864541186261790439369234572531347969053923280291011391355267942010365411193583387966197089120765191473009869298788778476188797334909163265082701406918162483420042281111709622441117738429568076644412921459647945552764033790957848263240064180405836365714688953539456864023865127330412232837756904894759312278804700490095835825363109093896384613783108776869791761090373177762270002504860380102913045678968278150797169042082653130294049732432709302002235383800626701475535801948000246943506709979355348218103007895288544162230780322039672939554839234019870988023991110426505846508837459196600474698924852513632795290099266816269971426287672129954748109777523504093451107702847574523739139487702234747846868115490555584812429980898216424432879028504321413640841384956222608594866556114330609707015199090394616038669651770829991507581154186605782762687693898648848348960014067027197734946145432940270963357279621386347845501868160065982488705985651627654835813356166305990698599040439029808009373142287922978636909815801506938730227559720209771083342063453012708444404547203361038137350086505622197588208481143965895388717192818123577191356647921386284811465908492660011340854913991796158323699915898421630010442169966873813237683920639736144495089403402574874712558639171773492640878275200638820207763172026015306885590527624016128196906884768358901730793372951891352917919042162896579799774612559565955671891981900446097374497698488183760961958483530219503325757525992349870050330236943251596662650898992445288250916858578184912553315859878535138598274006286445111369193631780809357892073756188077689153576474922380560962596222474268192007840927196309504749024716232196157562072587403455081112384663241538613397969738737208814075000200385293590230085658440475239405943387574628313999844584662825687182920945471627579252946279257388022557533301905868610347399717227206717482491816549323394943419413524757456912367986307872826250020276763222933366788114022248427816164540326132843218252952731081348548653807549005280247087928335755361757432096404390405361751761654979837412404044634060020080740933930025240755596889362413717759220575425999194418694577990931242883530466839216820226773194704128556050887631102578922370550864719439743398964650417963659506715589662038620216974692500391478747921761649887237368049690947795488641530388961616096733576656821803699291945436785455307140104224529276399823453225255707220053779927295481842095964492824614377698390273021043728415789869714773726116210592993556155326313671131712868036203928297384437288916948882073255231227571193244910540490931984842696449441921996316667041625579088409021694287877933649224902744663359617196371192717041549336271258387555081022803756631185996876867950783092615062157089132565134127523851451018217390931188552226710268003578710970841918601635793792816316767525679323074696060940085912685462788932897715826267265573075401225919864253348316758066618593321060503667096404258292493412087159651089768831777891148170771454256876976237961556771868296030174929718272571693144404873883158596158869822166231941844632647002887480022966349468044161891202922012313548366926006387974003186421274672979992843443555704249572186522483966232650781888392120292771560569609317480769139944778897234282494860957988203467567125713668173518980428090184324670441491802445083102611709322649651721882704700350764998427183826541534170239878483227031452957167348548420588858105898515351458917960231145816247635405616268330302064957151439980134564837760070392306407882050394758398561758851380699098885092868737825544214192281958267410813100698850674646262059442669990910453672342364795148154428574931676258318722571103500394675487029317690560567321882361066528214885882171089988783343875779561538340896231668618478168552528200089793759102493848470962093859582807467521539691742591684775759178482617089798310911493806384989861161256047502989923890696491823767901262309438414463871602349646546558397458869292990244713418989848867098246916067094102074015186211164717888299353062688169294467313912134082378685596052755628879121212674641472875699471341450683200077954145796538185647798351988168687491574082246654734121461779268005760753071633402327294355994601289295390136517947627564753661403587585149702776395301911312109184853092646911313576213893892953096462981760766338844520383850486922345745624388963677362722698859269271376005182611654354182285531005975944216691884768255671994979925068093101011335335575903686332838983405368363373476636649498852677365062632599182835295589141830577893567112048010664313923135827982299639738082992693999101945811011256841538008988618112117626480570031337763164416871906585451730190154221935610513985139387791565473933313903396846278174355268206178737281091270142932028324852268596472204717006529662828107986275850608208971924474372971316132381423337066988438835335816025231108195677361845727648188321315253919843784994637257328668691528144280597013488869687128559370929977222150852099570898139487085086721942061507792438072788764268648036411621406910233908499515349439944572583000454135692714987991368839631057916711769155110263415615012924126844730956776197105881688124942203306934106856326772041632616494976888115433228677883559464057725905438443998377267110166351991413596542818576268769850096793614131270838996423507548841912534595139431943656485847492741040582284758634768770997145744508186047380619035967880732426523459238637808369860720418747519644946000045728389604134124804944568233748942289998556781066458942462571763277488737255968009659791384099298553800773716239068804426233853954667477128552501526979658047135212714416048563399723837408304378127656399282790963729951846515944547243097110634578606508299033162708108384367345794594156503485375694880046907538564245304715143223957921720003997452892684122573167950192385019339739560848678249131588360073690784490986790665245786441298876349421603439177197373407982298868015415254931396227923050508239344963807318893232877524639833196995990598228516133503549068410669730956944382282888746920135876747177946864384567033270523174197569544262181221291274734128665619503198566000430891396228502947554841300116575371079579154707922994123463452656129704259251501941938912634513877657902662392506191329444147308185837020554893760737707151943237771454178475502396187743639046297579337790096782599287539093093211135562349013624689957112302550200683855727559770505739614204253146444684422646653374332985326844807619326781996857643153148198571088980593428359353668203575899922394540425819981339684480789499783153527907199895447276574155464488823275229968744351865659866615080327806420509983695197195267465696898127814354494617640825233383752774055066292478110388166151506042209491806664238158155158496774255168213866427266237789326587081134895225887463974639803364198502173953137385043688319805243514954303341133538835400746217059436879768711755408611088540662426417470764071282440145897434172556360960973741815566490540887611967232316650837840559298198020393710586631180026665395052008730057461616377088603106802212851483941009209155513786236710862274959319677392199635751124808019271195363345718449135445419436552047487992428221191544756736667908720279396863458551436728377963887979213622606991266427967905567603543651380068649910512668731484862329805671427460012365567818291056741558155726525240259227112382398314538715628944511666342647657674508074524316612257160805393646411941976799825633843225843798821603615663075756764832834475995089182992632576921064205210182479754766937031481006851857546438684452859906099606240339618262722851652615377228684159090655755388089760868580916347751320991581830172070046116062997284529182851249105633256550616405799534184880357585791952262518871718773257463285439176911243377126692193888159115518246582380628462114346428921442196748459027241997310093099660494310974070893876096977190582377103692211691531956912502286132964554002640336813336478136231522352506354842526685849869702601269903698584930219079160046250187476820310039009873070396230405576055558772326848920278791289810278074206019134355329802627868645721110072220650074452140280009369655555487556454282589574842295815200653951420798244650447008950554379336200487177927822391024684006235120866464914961909661316357945405754011137552706987377290872939117892220935452505959602074232666274032820910550010715882239693483259213012075371998094456868225998889734923858200620444106931878718874209117362870623497374278977836904427701733218738381163395244438980695442228368915512795789501966817151444907033644591171816725761447074133974707911348536991709109818264016852468513278133717950663861639141270385894229034552157456720022925000239291269670639785743273632640176104012581943777530319463034839187355731691088587231432190073346713073006626207684850516877764408772405944770896299395458718109507283225706143589527735791568114850065984086978410866388489736078806049177927699555097659403655473125697414089889706642095447136089154525393619210326867042088302453551385909141102607665855798270249211476909285248793162934287046321149273543844510144244427450624315446614514103899067928708443595586211816503700027470318555733531734365480857368785326882829954426994251288772539029087313871495982868281382299606369472430396888388371612469994171236357591529158119855257294530190406691231841428431231816279223423206550512489552772615587975125800608035622159887952232603130321287907784189709836917103744635547052950915983491266487000540634632969293914610515679677151575946523346434475903240495818771322729762658843614067141302221087230049118035991371749344050269223468360136800903391541285381752071998819587493364842462520213219180827105119779250058244870420019797748744874151984354568394594626662193063937929938168960559885965963406773740231042071592452023277687139799640971354362417953903962021667980364297814620641595304686092390277606567679090644741533421986662649068550786657926874454992556338804397589837283187856811256401873572603681621026524996934525711090182174064832978275987753548678363681861033586046636873532065597586488181476419232057743983243989411841509126467285051504544786740307785236637869536438310960477921081829813608772990522669540205900433673606184047257953020750184252298419735651758181550517910737361237807033437297928923658188246683302858791535061796896142324161039979491606647318024448152972273434806399409656768091379823687567832622697426783692021968086532167727341802835836899756997812925733770882394035583893585950460667868439633578563198334897521582844584355916347135297636540755961364973085188652261484334947150764443932745054777675434084044144769646816059261579472994316082008509642239529751823208796518668495111984424623868267839654040823744050900599967432527030162732716448476156641448184199470357401767482287300321779405900982148007979239822564045962636430285921649609083028482428182765685590129664653685553235406088945850130150393864908150764630375465309172982326496540096441503849421542690722410808075137539980658858633233892856660702178221463838927240062385907868734567141710898575508883298336829638631370555179942141744386272583436907641686414200720844071155557578717992259213749778000992483823023009602304535571078731211297343114295982773206675336101752115104737867465928390232284778581763517181754898984279160827229794982773329147756249105735696660699765465461639097236622779212648322122316734499817734695304918878679420136542713746876398474108066688858972722467133990229538876053761998816641646636746026666986001222651178041364394493928402403490543359211263459080499678452871875732832532828821822790552740799730387063113507843756682404727464487775699293833346550189308298597913221896230512766655091928274783165077744207641483392094763470911841816754884495864766814881109371937348667216307296450900504885850157041808259697832103397202260250874154208197868759767792536336585642310517542845436413568135314000752552851115258249461526848695074616854885165262745333186714218283504033301494091403240554832525134412803743045704911678018612057644252579781773158818143709222305487414358838671194999509514136094799453350394117020782436180853178447796957305256446546823528571228126432872702547915325230215795979485081470060126929548460085084825811748456497930768847942674689996166047817107260383104991728825220346578215221664536954489691453897253053437019533486809143449617570776987581975628424601411085115241972990022932402899428838353837171710983074736471096406498945129829096257385345589923927174857381324249508504003162914602188548640541892165912649279739836001724701051437136565456019401434635915274351838756232415410775375241576731450550202647085523879088960982255663369899639958381587290142400282429215757333959186700765002632090626877740143832099788602600681224615494890839116692837058377712764756346678277839664715483316279084043281427473258058918548858916999039594380703592960008378549312086059617006687325131279200607903559262208838989314121291714826113859777166119388096225861774798591229195030976345678368301154987900077531159012075237249769795373628439084731153849018924723927835639415239627005183308214434998063241678173401472088085185684131887656478393001137513628779398449560182517192236224771136658870192572053364023415431799925172394986292976387260702824752544059932150654441876595118214887428789672736725856455248422876813879411018037949376375372089888519290398283720225755690575059059620045084670482139447425421278110383743393763727295486142694807587571360561982648666253144897434054210687511208201360760773207567575409622123162550841713609059647540232023762587370332654145417495125151954561418170226081665296918970168525713307971542944378611495141409647241749309122848127902782528047623723459725592914761876667347555731947224614887506255874157025420437973091584201795535260818961524823318299204586419613069853369657656864280488115152269614819303836134203265313875725991164438484124813141758596443168800197232487724273706653213840122500094588435620149587906710826260802899238870170989252920552781557671115667928109687227729342434992823838104884059127891603188850911813517402820993387210355923231551901129194890656893365033537706361819408814575158664395129341534817021111072366539427436109603261328374918387355227803167002045103795031902440824138101380630136564190265014327756815861088184770350707993207965739812261361979034202885258949328292426899415594654517874395074992118138496911570803624086384550541394221632419929772172132179131885776638867075493162451986790004122980406297194142321507929594871636408098972409916865451879443701904157965060450567171898130152682247799154625681717112622867513959668042632863424634750597732496936536372176475098904241747377514607482582180474142362255158802437033245545895237096977937721859082199232312947316969055944873442175396565529167382495116989306215832723729874648627875651061737352494572836278900643153128992377734310008415125721609695690725181561428400810392425285319066389771715802040764115384685173948300494656038781680266117059097230106162446264847664779233222509395809655309068691351969869784483915817888853726342139844017921948356186656377771238078119114749846277985614723346992906068478620270276259030425898297533126241275898105654657072866843402909265853399137425579064266498946693520028437740385153278231878527917204819274712592464635547130770540915828657440701862634266056661783685631592743162326666097650936676746987680182096784777713009419281116351243970669746964984214995804610445067260748933839707764919892307831728228678868966152442619393479154853431647463844330787252762188320152981147296465206672928027086040578818721318483649997089007849095257864130454965020725641817445897884270790020669484639356758666418733816680728915777921395232521409983028050932023787168541909575154647510110745484576703725271433556974868706644866087165562203820896025339678424392765164354923528389142285865409358315508667046798673894689362350805686722944533590464167314743559963534468487255794903950884215556546205665174628258147579871512673718769793756026234855277141098714936888046510057162412818604351682989432383953630785438327568774571430167202739420462432421358593056941154344251251908982318534997431988694722849771622419804879455394347932621750665911019128438037675840088318770979446243750377756485129179302689268071643106553922306711459184367653756536299356966915099426386503956032192670980234713816678380401468469888503859660818291553966713380044628636946698206381146893750219345328227553712671480644054007105529620998978895917221875773052842091085279501823096166489359650033997122105238345029959855732474211243922493032030492643686676578886057274741328287889790334525999854025382137707508975182235822207852752270885185321184542544253032909021880325758967452428657188754289680677147056213507103837438333406243173594974298883258428826124414588424139741250430235292403050396201744979320796456320755643873741224655900143303552491018485748157089831308067173029512554760128754244982587533296573415834839882790886777088836349609140953051413062482697101461673374447089784836711212013022396771617000033216338331735053516348710530561682245155021310439009654800568799012857614316537656571801127757457523818994976892303114225199197378754735895764364714279690447136037228751727074928972814217512316422969612201718543446015546238864241629855750316758086381235642650680352837999509229429748779081454483051612456760771193210518572067701618820048946930479419111983088523126144178724171479578723277618723428900726218594520358971953961696303391908165601002330211762151535989362189974885574612566390377981061936610219987201076189064383267479100279131770699547596384806366247798614608923593825471812470341179368287817865951585521341085520211042043622228447835619039917564602666161619511035264288920190029604323624880755374883796875057242611860840121192150030073404075264271705209566576060384497715028992043343986456580039504463546325724988994186933806925555638346824531677064694704490979236044728996127324629901215958156425046866812560061819264384065181985395848973545748478472743613532736381156442405388907167205644848182845072088810832067137982580017211962458896752420361246379100497768151020740340878203739910980795581247524323143217346494806802068720819758779670860827315389916008204088912473159820532955940943580055074666126781385095163831393518451079408041178521263486573552471898820071826207593608325255696700717959341035521186569703779593987183128034884821454847529219295577654907399714997290997696729029850931206684075929694477492991749881791867577646286618981423959408265992920707537756926816962873461149825302416128042202743373965509643044855311535275023265944186496393668955384632204781984137591203570811432523947757287052909202272728030078603106294774074487573033864903984681765156419381763640738754457116032912801295570627678419031500062503581515488017085364773576965473716761629848736224877663734535951241298140946532581777185599347033860871932508889966779023554130280753121129471932919585792383540207569536436571006388084941837698738557485633149824310401696712394209180910137725019087736699761882748994928623205211610444232039777305840016066677504597850080497271236507822815922478308190334267141750889964832724875008987620577829948213438126002385397853418566058330370336344123191155191542553241522159273835397469239310087660717067883368884990942414643244227774589135615063432217876891957207041005657917510734036360084022790826248910520630618772975099892537257575799470076171095186446592151674604345457707228706559801684518117508662741863732924467106142621541661184944207975303614663284856055683187679801471450576890849954640342058127188891604481852809083602533772228403147960376704697250469653150926694488602818659618680948452576568944506723110664301214913000143933099540092800302063512569297376887398074928587698531752569573776040857842653155423618515867999947078979087494844867565063296377466632794652266870123766151846540970648903823834075654120880983088720900735922635676711985559034880366322832830104916161358791292735990288091526122491971715344390867942064347252193148613458388549394152124208347954590154045883188459105262788817686752900498044330474249708516528749423180637037128186027733350727756155801213602590420490530164663516497279761460932280202770189924586980119630422676588824800985290620710478854228404251945635638281342807081249569395392032468612066589770363030690669539513936556127807915170818165720140232189923060673074358979751028552857898024638760705444350078948507061400113701242797302643715807718784302082836404635146078805036067059864432041588648417081989204062424804708629141657551134686236996752703681324896990749258936902443651768144051952077132481428141859140733987701930646161151292281992123408480818004120944707017989116641151287043073752350534378676300159880329707714411413645046651114957198752398677088393451110284694845055178363576678024246990898509309110157097801720920990218467505082793115540734260630081412526008686106142050318542274657971517342130829322275834763626084547744859038436677190877129228193715256671274008854773657027131897625745432479424797080080674150570345521171850598829456905543318574317932854551894894170780402727331653343216435920240327492176077041851242409877966908803194889004403793836725281649420841368996635789132256226266736926587750308020370898264523193952465852405127359605839872985096362949293485650728951180751496502864568076101968882285702583786350800191770932626985195671485404386426670744811256149563612021928961146701417832377362044128322468192703331393512472155417378139285907188795315292370468878749469828433599120205756879421402209207455307197437325661983838561240606517496822310278359971109991674334995455168192650291801865439443327721892920344082660738099196221687650526886273743210189510926003512126440028382690695885049307049282017871402002452068001746758526634159008346270265578358664706031905937460377907755696814693271912193413600730664326448433406297906803650969913481950473549682712868419515517192178207742967181796220820065763274530454625736256698144084387473061422304220839885589056184360924571289382247043220974949577017208388766977646597624372974417470248336942928492036371620299857307537148275280591278077774231495679266399115243144515680445838035228276333257022910540087444725544091416304828388565177340326515654809315508085517782068190063590581883359923929740337344106957880062214573659621799333532515859318569086366920287235999814635111348763523213267537124663630732614522646544120806053717799998854258240072177103036598225595552832541977256278303803593114598498833537588076691843081008566279784470481364321284099028719913675533159431061518511035869563981295083253035465595589942223954283155444068586774662123333945601856605240009524932082918354650788738859490184567786281360299013087020226882538597893883418046731838098750211356170868614716641768002392063203212550702690017191079250341419111584893660392991399389043083399215467201958280898165362427685838117629809184534104805241597120583554923728420128156977910309149135462908583060589839228195008477029104301121177349795644483704931614609751981943159765796523703289522170874546327528659172578683093392505286219038497177484381125293372760868826274315751211990852666385638828014779695386881818290820252591645659772632757119233811284555148390672893254523910345446003957540314095980838668565569650101486535614263192691287972499067243777673262823840646074119970172732913652065783999889365235519241352137822764807069566565479141202095662913328210931960399408069301456322867760994666024295443932977326600435827570557498644820983833578405820891334337111594042735123827076000388529224112948425741802985720857374688255959313309091126604041183200175548394869645569528629669617187204605003291944827080930676494733604712926165740931525328522970679399984338254807378322071641802475570446420115410518072383017793403681240452829620235331863792220018043258554880899594546876830498011790434775755444496226714360550104575203204645310173101335305946003581126097342861623272638527863930485604748951276944545803467274757177281526832934482806334626907919600506205092608102580801381017077140842671952904040458422479382569770927248758484513566995286985096253260662440492697787164045332233002453407164472823612571839501583353827715839397547439093446112700508234912738500243431651838156642894523171950713007717890296901086066765108578589592866650826985869392065276783819883335959031841802822966342557023820303142694533253423901882826222198717403552502240800745264735986246096757175049513430692876509294130066209433722508867268319338186444502937979322436336354289808665641434265303014071295583952091837929450554959971862895947180433213963535931770348429102440971421866216603916336676994190582402804632795196692321340284047447203913190109661178542303079315110185867136191140764360434145037849170661451307372451947674357422860238570293436634322423457470102598363348385489579765304563804703187025747987276570682917927669895221779107340873397791953124245864585124659952727878380728985702298419828672378257649849072374917385450727511194929304180647705414133426545343887747790479612017676891560102879054089641936567362850044231534812953481960998562523233872889248758381688650982051439699833921260597578976926760408616435029584017093671452395553441650008724757635566021814428284793311941836271869116484535583285586780001925600716689476476528654608815739349457524012044546219281128531574320670936682507710209900849939516121682079399870498529242966672234375481792705145245116569240479456162912054625063644037811005280847184448863281014352230380012149790536491516647649817054037987331441602186713256377743944470030424281453349390637132243415121897821448262529545831189127940069137242364762490522428733658029383246616031391314985167989963932287929044765537274582615138653662111828051806287590434547904630981688551772876436955329155436407375616421057804226549861083846171168063916155030776980132099541752776753660658683283306206034941679523622673051856276512158298995447310550484259814327811871170132064645562669083211890397741828280075952811316769220542557456958491867889910440938145856694766154897731419525919364643030961932706943816668014511347505098525898057885303627572250401958710445970594764714817005636291741497660674420729647581485979325148550713930040281845739339588752906675887602855408684155896493926838482447626953182531275785436482133297024993737649492579926529538641135421139940056719835029316888571979537209700678221765296839393425092573232441894369165970583720322594636078018882100115583073664220726849825924287948676882554358414129091592847411898544636936425485291189395920103842658933731607798596523242273591754611569007950714249569272327011167728083372375362761465782061024187417871828036270768584414411278001476295413271617602916581949290120139368393785049478046161988740887253121948894731254802629389782865106932105372691868080675859160081067506284582870272298382376111166907525240224799609686581333520586705036151135583651153134482325694121506579775672741685849988331788183979064206065340736203740278513211165463894010875921274591428878632164224616018816863491184162171440029604989958621590684633611169100712210888940152585189143164335710479124894685740264947957390779279870906559792897670145863654296893013140166639353342544998122244965006923910404064132958214600466923361850706158873654298666414673486188051336539366645490985746594333982152906466622859609127081288632678636578049603729076802252514680823896482919608593973768991019530294900835499712517547282515477853255214955959922171554923704957399556818510089040737720192252356649097285507638587817134078585093256762790981441069765586432184090153240532327014710088384578860114857506982451244832763834046448718918835258507713697118938475839147231084705155641280117318819652585346519933089266597901138586773730060518221487081515861737573291211422455602600760611687674393112191308256086464326755569999380431337695153198494192098398821111661428793741467698843558376840060087383586136017921379844954492005275688150168409533748434953538637595107676588426245052127304641572763422058079910060364409071854995265191678878827641892446550052720771063520044366850759811638204790390118105252156085777463592963720732125198837407005271352084910500248562105691978398467013046535526321790593261487313093035380845227739327445014223260478609956544480265140172148345815450658983616395159495184946410197045579785983411213964718292943825996115793430183639395981519193810231144404683024888942386260700257704764802451347778283451670328902794186880643101259467943233721083821678288631344052093129886109817401816953950651379480088615132117385029490308815787239563881544831106030426160241962803502772219358502928789045457618653346061459031853842112670518336675882791359884283975162070575039714966697879609524521345867026417224449501895661281648765371881833393719350621140126368074733307654704931310030852554483135514847814707673838622402073978278236392225617718404624344404290204742344790088990434746304783467649724688629836124734726354265038060246015426449073938910206453564292727653338080567474459172181217288815469549044735240181992726529161083767790426350242853506224020299409771005651779486101282791837258792349861423804402495687773653001768719899614940478261577596298635169320723129462610001448476698085201994341007545194837365763141041029655238250915145416435227837653573211170278408446694290134196407883034996829814849416039187795732147691102282278936535319012607306322208819184340984205036913811876535372775692346369211985973648276664451481157640152530641951715517424246424686860907209225447530125372025924437048126595085693793275620798125449991538983789226681206186610359488627989936758288539441156048331712745359773605870889898369407369279179563817361014980333721624041159925316716382243263395039056240213363851202756024414452581534391562267089638989445989851227909239180225760673345296072467064763564677283878652925282732747701544809994623079835442492017941906778124128872296709251375537338070554080570222223900648013055520857092207290780296077317890135958259832008918403526128831665468272466450559531073020757691797239336013755238689132147479184896640631967201037773085915466549027611700615160450029487213435411846663788998372616389206355739432575639543877282144367080588014605560456188075896314363178362504467950637682872601542655337917514512674547977553607522951288512904170865308971255815268031990272069680613272376546983158077658067749009238079805046597864701839985676113718724684424275093001895622177009903477388743748771224847873256442862184999733364908040642657767404423383283831649292924305585221006110996375970226733194436644442161034192346109200924796624633489360540847794160623077682162747384377213711483064247853118157035335772613968570566818169137795730136343783032949714215532392737793629289171096144602817476020028914654451028018250037726770845755702894649623240806100467928469114046269172932566287630515162772556465573427514242176048585011214172713926316778595884876376785303043817178559219778926168591975079254161308271129735197856137897892401999963592082624011063223313053087349277135354298749812975357019920362290782537223798338502642787242410353992097131256247143158684995224527317789331630248374303179437804733028195503995656804806607219845483237287566709996389926740444677625340564287260151066074807724653109184544946818538452400375167641660074251178171078159316745068180544794447811700499037718067215796698093019711041869388488389065945000591352443769075773869383056437486358407899601292284743804199678042545330017450591720910624044471965642219779714612733882185908018508218955207426585384413969343281837124504264040669046765585504340694146397762084264794063423293489141941097690314763497248184027227422774815740721928548772852853042355339810350613215870750620480916428857859794860944088424065933565505369308312945026389858313876326478760942523299593202504788127934308069439371141075282189226607186970174335503136141599740112971419988346478653684997620659818331125085840102405159266721429633067679004427649104978789815809864789676079374604491030353193293721693447342727100980807852797481672473070172450933851368548316452249198766967157497818306920364306726318166169311989390192806790356476353377475978224336970097767897896728192406874161550344543190235124188472034342338776764746257337713452980536894026529396677062574966187008385554226489335378246747402990950159721947358737074168775663112957277093734985803281512975992246762115581115355788342475123733270272942430983730391755881966597447972037646747796654196969825342736978904350719146106356370148725352732073861092074991834587188189168809419753166938641724615180932122530466056132050584361503313880698965546130887439632636740630080651216295442795557207299714078927369963416997476364773603809488128287001732617214275118130524240226257045297423706168432459114187172935830256756859624085997620446666656474987960570146079297405766383236162786856337654841852905417018977968571777807589469554584203619430195690894006819077040746164563498322094548934349146821808352218466160686336791619777259155692303634598046730815865335114604588214068799782560657168944184678976925229119209351000701648963065948826570898986713002840453402356850450704856522814101410466084223124703834445632062914331966533118802063277451253685692426031900467404341753718080365800349594072752406541320605022095980317252396221621086465177761078032121383533764258018638747487398658765889891395155749754912932223570271581721780779288436200455853852980449790157970959180794945721306496076881237086536888709598789843826951582629881061152999145250407826963503996291092565234150556799475478395430055747313264620050134328121551973168773019402018397945857826655722817099327162883332350767547642436879880215339152436233580662989797196138313057402976462114496732784653958528819520950633225752121399257992638978661995848935763350924444016463454823025660801598926412284257217002848676080989717473014730506868679052779812278617786871813643335080551723018447553420098271678630399913288809396464789516553156503143955091138826115198368352587319452022524653677481903123951710111141250914076712421797087562873841202923658581321080917901009300953581597037308700040440754983964797707912229128156044953605490538069275604565798896856399898756197573018654999117780833990022275455991473703125996062833986849116148720860621179776234334075442223770722075022355894552080151991103650957853714943431974134868836969161537897165388773267722789230187010427124556871190825969882636082117198827151019293186006395480989472527376367033690318845605393235681340712226345742877568687160636658854075852691503007278547898070457943709763996273542266331588395650688933593782918727407551046467801234613606369520452605942155615481825377270009407113351348927263931116918784641340925346775758153329999006529268779842141010862914785637367506912434800122330117543726587724213958556329180533548252179929556462502337254138512791597664691987576788411930221506984272994596914715711842339185442695170952892971507865584629035921077935522138111301070626093747380911741533248284455448689026577955405063572535769316900464937024089221163530310467727743125153381100316100034646059078185824986508446532757007284296900597167438754892387525675867857068312057672865025587733903619840668436521349853383067582789969964302396008006759973400166246132644483376189871535282292607516733342185904627097703461351927434162739756909595946192044094937684756529884052551328910036785539377393646536934581162775700219591301788397030600757202574562326866861760754953728654035259564067653820860519499314129164057974038073616247615890160060148798798097472153446224411016955117783362422382872725118651652384914134840212701910105135825836586552824926719832046761969055889392475543192747633142052988959063860411529960538365832006142675606648389342154136639328662013361225638854857813972504628824059868861694007923232510561949366980365946454748088381895138834917089642513395956631164214845973210093321402588754006617811985831584664797483517295967660075579714092519600493226010714316873244379001165895923479959224497271870317447535484225913671542718483307189824812476097756946439130503269286088636274131387327430936363676276991093856616525033616522198046451127132504456022597488280259136093550158642494120396647013308471461331803609752687843647957493883030340949040646569286837432487901115524234195444584724996011704437851615596787563101017854803173192781921166747795579893860639960640799726622643569081400467829554960064307055440961354258850596889944218858964873448850616608322271722099340144968965536946802561027845643212646885383089198798386446665803050993859377128423673545690593523579973040597372547789770213518930487173387574524759363745510769324870344053246751382284988355308809550299576280271704110973142136966326841089739149103397109460908267003677961393772328134203870255435651772374444818319811332849670441556860775912964244307324745375978367182603850265712218359098283021897353997421210731441230328235069150753749711452682505243850497303626019051738900722402750123276182132730085245139300166133495300649045178869908717879394480011143963025727845626692325803530727797824134407402251974694231866561868235443600477752353519660767369339331487073100835517315581723361959971541705087144085965439281118879309892467473077848174563802186253630695669147409231892611345799095976431794899329622208891238626995400374946886065973039447485669277543120763899778035832807004492074480069696281167973567403731135593616101840723394154254949549861872685629831587476842770856430512824647093365649361310403307124084750721951528030900563031809876490990177555243620420572286524475574404050269419469654391585568967317836585965866811505978031927564313891586987581289004056793325670899804127013924029473203169887091835721253065850196699313892371417073617268139808719105453438387365152741564515297768817573418152300720130231447491865566515209926854813046891039538249838291951204503297765124907402015142559277279381883793708057610131790360904644548244042933070823202705181998524284565904632171428587470204094281558993847481543813295373758825880738030287678590552598370568353592083615672705230958487284747455730479539858525155632954582146094198095409662332472624791140255486866772884229912758543641656161158616425906426151921671479304873101620976620787320382304099384179687249254593408113621787271846513502390222550591047531824323457480339253479900880512991322212022183464832962683728964939724890015346461823931143444245445480997968438620831587275630300013797677966249194762765249239820387395911359633636368162325959750412134868862645178549316540997422667467136484416649671433392574841772812420059290457393972242808493086009793068425581822694616450278132749591373676550672233330852898628810391943887162957741078423833316586053510373874355681170162709798284277869046307166747843914324044436321023750789130212324107139264934307343613357262700774738216288152308137806286276877448321716642148032475051065434951080867902075032460360144242933950466219056256589579065437114847977046770019321528689798489033205368358605117011607950553718864169639017352455970651203392505074394544751849706356768734698181064615459916885197929817595842324644763400693121064823324446037052151586256144660482290776296718858900368118407538607379776655491789110960280142194665024146726575723440646865685094693404399482129134549436958954195352254666248629595559395823498242902823450168689283719511242408524577536168192550803245116932358395104465484004903313814068433727326211436125078542694980138800791064972809141857864392777825899626454771077109076262216186762780192384515749265688290118523113097475346438980390116275635389387869663493023632618007188080528068867736376413728333505680072315808250165928707728333298960588044942365992477640832038303451637654225430111562594542485465436036259096804498453335931589025602773157801068500317000638067648129984316753590016774967976527445748079998579671112500821570566700041934755717714716542514973387004888281806308988316223986741682330438545110374603351380484352403163246477093352855329330364264256019224918992048338595718155722078496847889065149067311592982324879455407903714711969439797140996894831550123826897542440896393957642294132799557791928533096557426597710656762316521746239465639466878804900492482060950830769044683780078130335155346229639138296965138944666185062007107969881816845275706586075883999859283338025887218588975188203161734619002110465150472010099754863911910269146812320830012244281949239461658265815207854080407634780737468860876347273050742985611791774935331323642341181283922571879149309400522932744863298254035439762935048632392487000876654200659039597166311004685548108746634215581597421364759145962198725472106315632875549289807412606230749217003968465070703152022853723888774262969171341052823977743397435676998263215110384227309408719010057600269555231284918770839453873411735694945978061986460969683088958807824428901520634538204255175853870393341973962735751527359970194359472398791441225499672691540999500588977427196525691333497643815604615857028071839134222918021474880284410143438923758840931539479631493120577734789071046096309424031260020975989998688181816062111478701330961148046065611135868128473785066412265351774646302292567996806457209417212461834574807403898151883394792634316850580483958033759707234997609904945155573358247099722638830189041260700160853049750562848032353261493042988603791609530788055907850759788520728315150112817331154319425656335275857273037050530815566275051639127157427088069478177395888944776155170788427979575304575601303240374745617493385221754479675563348241012087188721713916573951652850150386056393619604883089294382744095191273325472482768926553905034598292627691449595396533966094718782756842959599703289553309604770698627028115885070201309340574464545067120404879538685652467324032684000692755967526426691357813499326758172417831557687974478234626325615240412765650679313513770778717362572386383105167604432637388520544500009049701798224867573862675372773194246267925127288833716267438959571160607912998474663220278837928714215938081408881777982808050244860614094541766213710107988994290256087118074369762278405339824898156446264493151670877252326010191191892466428673892934671181771610824093451981400723317103999877933645948039346567364836549504919054177145766563204718324472681174907797296105249016042442602146891561987190800091287056880850796565587492879120233149148851541190366360413985077717993779704523822751791727773145888484059945286308950786923986363627516670553355907912311620355128542835355615193963312558608180805736305519059222469911212663880754565629712322996093941355145213801418017669957739150875091268533991881827260478087927263252812252410047315034131989800838898177264264910846466273687907074742948382068149775323513765965063853938600920917152687906892815409181937660848189857458493144875377209760524395502941818248692908601111247188127566666526329969090276158798823381835414154069231305318814807497217997069670619907242032464382963116436925085403924707136735693018008811434666134496345089410800374958042610247270864834277076992658666247839315260089099097260865382932704811924276439823281298504421968582531131484982847751345574742098064703165475521837182930892095841516961464665003844808020222295453907398513355846209907901210056151997662054375697095799712990586443360171430152890005357504854194989262759393450526209988752911098289925571377274008827987271106958767868532510316855977138262261095692862729036540626277508874826750461786334198923248582638395132508984304382430173455233173599902690856994965812132481487788880828589203148295918490550089553244409131664401402185214539494365688342505089318472259702294720109777220312034292716195226883960305959058251400726944821664162155286468074063756996654748844049182249846651076199925009763705370931031392589625916524985694415610292423236777749738329519227559486027108418257498041691120603738911578522073260450071504027368101481578403134812258637647554097409985987291181333388454551090894402641275875280028108729978843112010163920336673912748725059428402627376278774651556633328193270560463006687139801630057515870389023196405700650911322534545499711904742840798167080737723466731012751671869534118339575570413888802586918794188981597050029347080512307398904174330514446396472542977790199024175581743595534238087822841237479746185724506873934915856033921831104587644826801272930190605707679894961163678222752076586767601730139500179635001908545179484231164317814910935205646432973628202095134712351135969309269543538167216820758457418616450439660623879202301446570628949689929879243289328232904166223034034178416620530573177038611987691092959896738507074088557231575163591379968443001612473212716646037290553167535640161245049798747642591319404904346400737837608749875006270183938314137384045304116197389353284696580335514873962156107559646011175124507971922408892328706377616050674780085829579190942058130604922381929987510035671009478953225781874613653932158953319913624109521701172047318238308438252195771425167609741910268441203110551811441714028532759778619999032522397846308008144255133884965117044366245351160294582677021602508000426261720432643074302991827931836267781984304694084779590714224764034059248037047816188776532296513495781299809610390131412398596700528189146652369920001146323506091855269637198945308265820866666754354634846138160983649799428422369493653695222606331277542398643786976326776303798760309451842651575711086577876880795582484443512642243097232025932272524865494601986033051619669144832496584344847638390326143432023410574724243416060961169726424038709708181938940367125943935677105454261456641525607452175539017913374876365301725576649444755327804865480698234953636310974932583799633510531463457852346449435496705348159251313668817990446913324435807046787382167456827437453155819379578763053204190548827492498161412433519005665004806445934469094558710634967258688864899212110900093550795522390890114723263315838802754352158307479421862570802266288504824887969655958960825429583395822424025495867778665245646888338976036701179717466025134888303899072763977883889083812060863823783085706267257287909495850943740047725725150229885446706606208868848222353832270287644407906765916474892164284210707262756771377349125090027089854417321124509985562045231363287680862581454021564459588322776646575370415933481711224387688844372679878516453243088014619459411583093949273435869356295707917810059014718616123062650523493476451013267870241872747022328973495540282373370126143401637686544224105150308013624371370767132440221734617769804174929630350098829953405252339944360209992281738869239289534986532477837291989119448799906765019938714125888985254570665432459149304245023487310842004255375592417047610247466891583179808996875786612825155637335728318341917298136389794528497489527034623477464582823360655831062429238161467276879474488730246160983943665367502919461323802914753386594847077507698349508169729616663778663794110412882430810513951961229185629751820751019106085356780299549566325420079177528081782583917687087079508160771311691618015637927589212513027828272136221456846323785810057358466307947705865731124549918322679174323619576144085620772243262024766895755361558287760441874638850395636034256126421441280639307529599963620251884867875523578523156066581374565503481252381709411145458121033159238208631039095139754757754616762737507205841957799826406139709310258200013887447640177891388291931359368760642852900887561580061605216472260553708329184202741473364864698975545545353141268314308037624620427506665581129785178613001743938413756978089731555425991203465258368237301929224674948368454575435914318236204289477812682162301732983180949637587803565633493760465134088940259992736613595406845189015983882842132221059463718292211663453508533542468688952827633951005020741501238422987963612758077347403249554126716892420702848212728786570638644747898440406564674729316595700950555865562647477230214356229029436260408868900860160819189949921844359168936762357011801370836022653529151340716071708510219951215260513828404504705148952347330458050507286076670978391225940154977504277682183901991588911419201041532435991179676662816390555776770722379248570447333550049410321155737379667168879633922070695609915390448371411380966890754417985832084900895604715777851570869537893322215509462257885144679116389839083491313835213389560976406183402617161929775298966236860817709528842273913953428520421948323416289880004380791464456746505318837930079312840259592646184072349257281816748939751781090291118708526107049388447540453169274268038076578086396863449370356330642211857000134337921809464739849098491357572738697311880984633062504213227691312756274206056933320745560147662506205282558678943418642262271021727070999373341829818603566782752030329953342854363521873310379430511838066550986890723449385003923254375914523998021850333541968561444719267089385444306227058105940605746291447377729371680281214845341747592101074444193574728115659240017193827125943059737561727705202708664967338717082329364051194866172605863767436581647522553609212882647563453211119066553084591875490752924744842544650287283729953049651391850784334666107435239160057357544514653417699786998397901819682535537501145875511302315219041594217426254501802271929423974995407298444269809823638577649272334009865901104824187320800743578369168803665253037126863452368351416387405247752541005574208263203675816023212412632045296633900900286540925484740944208086046051449460103530847153789766396903769925553074951444167224641309730611760588556529631651166126126413302001114749969706544738504742093418224176402540746664492085689495794662465251332382905141087546276022374504800558303308257111392870131014815238958808295954730195821297895549342852589591384369155888419764453466460520608396777480600119121957516953838568458223400504639161431034452019300433918723826954403779358134889829849631667083513446211979834548734371122831190828549047678749433772592457513918130728091231740659841420473116652261777023281785596301587203426721548761984550671275649762491584351143535314939633148962724706186472964748386092520916774937450886915259406159396388468638967047065992522212902377941781630959528900473229489855238220830581634614868459125146066280793817923802279566722012400910066460031328183959345070919384926304360707505564890086698768780089960773715102958631452242839892943024442943915315295207101445825950626330638158192908648033323947279377438497703545654731628336254118079238109049533663439852287391783362092007369489010519344724234099823919570392569602816509280576920897719029103468221145512180735874387706857493713604377250009855194186169577735553718308192629480517525927278396502822234132426465870039359792440010046085733821175532628236172322138714985136899270393847522102027245468908891083583802977296807037972971598226223980353226479827687821896408235184183630341402423057128118459051348504090897639958673429376513316329990528483519947062460891638275799126682683623963872403587156188151002382944339354450523839489022045220604477668166093542367881623703199752241000611714917219725048214562088221627196337811586834942698246077443736192684246072560223420582325048442472779801095758798711478572204654555252922339748553064306417406133686757701382818228809084038864765985521433072858789156096625282470954284249676191150224226845144346209646533940658911893672214797836858836285444753020841527430178799832960009472374120084915542862292211057438715608150736305695045896175837559740161947205247315657357687427761466931136416286405136479008748453260844184635438240808830586988055758664099983310420816376045653786267461731220804404575950119856301009762376581576385003074447084210866491258299244373204905960155292614741936542614940880946569961264535557319186175173012319531891468474795787165922227049494847659094539555084183078581387636715725816461157810779263579582470114942303810797407900921867100099977898929461512486681637643535554771506423264991289453437640270666579196186380885699189002660790192594614082746860592037739950587350112337592138920094261178851908058648697049707244149493013708908334343133968997965291927741609404280467707579202078432061554169685054562518143724935883102132471059641789753421480876614889015115900792290782860489228855305106006587306451050439068791306158204488342220509755770028131315694753524028560022858381157452277874227310674903296494304589371082898473918273181658475300732771773552652184171253214228738368407146738040822076495788601907303113444507728054751533692333821958380301327697549614776359911586020030709914755260605424952844656369946415346739250769517960155850639709989700665725554840905399217025564354792876294747798236868932421807841311373431555190499792911298996591492185644957873583708147293535592901831370411170957348387776523762563887815953433306456970442188380949385804740926343156663178627766661596812040618314093236420007102775162833527767428907779293079109354705325862005074621726941706492698013702880297022782730983223557328763848603498888947497751468111887776891500167504505934375185788136387194354044677387231912963288012528626321872958497438194839987648205906730927764202489982978163229179827919650580823046797565712440236355095880210992017692380976235712283621966997548041124635179139160665435008531331349494393153611826491363386908705497497450404039284825132197484147590803706185252590880815062588982361939222905721963202834183921091811127133209215947971433312262036526050984453678354220615253236144341586312800876453154107816934408303069036339137206418786318556975817258023348224638865045098755958369408535988427042268152255545128530638450816307302616787884586473755846496918587207130060907963626717600114619326434943345486649284142311707550488411894758975935194582397037754242729119565295645383926979610780063129538415966944435854781894811080759266107363522396604562818628468969798697894896249907278851588738978603139197860547866651686522629748980987188291252761138145629699300521882014817341637425328402154474788704102450928167060829150539665697529849982244347780204263190572527803101587919254798979283338839803378847834507400617833604299558860287135140981565354476035698042804919552702573196538856582202410536028890223790634725518435052457811512355290624740139123261657766394943550087634459667122938720698751474791248166842245951897655608506479404680806159132942333527134938571819852683053656211821201558501106307818755960803363718633709417437615787999541130039917419740975425166262861330313496874733699582876938637900806436976766766939796549737445116617482706073005675969790646193018293012065899769092003602689749381211792236020555314856582665474282025292729121649017631839364784887729258398888346745077907803402213247762585217543292161113225723153885133747999960131728290654860246292176528208512447135805963525299775977877305493609959323160254247700217678559936604188447976380498525880493374471587801145227022569037218466379002572356984403095638588355060139672409313254647183630567812116387449295743264519227294762014298871427392791871808287925990713080531377492174267553846036712428067477758183109916315515695364027223360592081718525922844748325211121392358800939167188700856664514110760397870003903560217681247288201214073805564287272254568772320345366074799668104849487282559264093589629765125895422661562883743677169661058542641588363617603115754054697208240708841707673123955339630050095706698066577324438696592180754001275060494834797841602726964787335402057769253907947827716362031058133125174603494418533204004260565102255484997993670275638859705761567076767553096903396613688039978086696916189245181018775180585705051363790883214475464517891908321149534229735162863260554745091353424564486787172247115723290415914597817887524372812310987667050781235809600435568802938901011488710577983264417236307625022776582293243994095016448639259029946376883853306894181301574615362621699011831159951363799898246675067135487438470581209786120694272866149378655425050959127118692662170252539157123893750993495651672341579648222901923815165190125336558478858472944011573840045633152398394602686047207507809650325993171439608358068015762837714332776158820159460622962487714126454677347692696338132761004888407759397480563882314744120021729780253629010486609669226391803556286944590614266286432201494429262872206298351881625693017358038511352819434991640011929604370321403906524630643401991397065916028900565647972865869513710342262533099172869192596697668803011622525576158377583341650447538702341003535908567817927689835761116046888093423538967708260050996401745255180805276490465685562459710669654349730190498273084188843761891870605277952541725280095094577491121942717742745683218040015621619416316827913907197542879570161586019996137974568218027395112144656850529021239971144930920943707628206237465597045097732586612392262791089204877878823125262308875960634599682647821229043169661226749094303575175658585481992343001192734332730407393744937141636907897820360267188109665622452100693829833889885091753295820392509446504431373873196687368678933349876568509083102208938329034469836016692482112968775531422559086181078289243567652383505989006332891901977945221662708115047474529532347257766926994746756110347550196945982162338412937884964570611134205359086616673742444230043635597611268938917194124810829409438210908296817753639615347440072545255262975927108541617205998726860779728171368446614648823218346001543567603651427688525487996482066335420890008695440171534960703509532140328907284788225339298077463505651186211811268598444099897027242532792409019902039210048916064916667792058506441156149626768991026149810029049196265105471676876947456382963436382471992046976098866477401571611491230301802223431476237125433061138489166249852221574588844388407585964631335388085485645927933189460503139035247788277853448707145449268420515206267167114201606235121684524632449633251811192991781485576955072789536738883978040495895607299848615904486618309141102239208325642071316773354677849625190357267452678460732393450141386994271248603815785559574469416830360204489539092044355926550226194762816653326252240032686443311605466026985354484582232043209281555699967195717442334740590412937724060789623400458150039482632013414868758843826202086364591846178258275871898791069241968778418465378159526364091611196941680990424446019233386984262220692124862596008916247486731963307917401055462525562662017856838529424168293323348641449569797652330686727570636125200801426775949379925724092417623414211810161351985466305716544710460897026895700520867098162906886953309293627467864877935057553954599661693823099029304750670961502057615900470176706484770334078094741880372311415071437144924099261115431304236581424770727658868710082511065505362531308696754848480558704875830248049942300172990438244385497068537771848009156550912280785282818061473465380585613613528225993635605426462254852051399132867329258876398490899078121954717005723926580139749127069422155477745392063335189277600842950549457313732155318779377497620591415836947994812286509076893004764576510349171077433389201780837758343153724766115847140594410070251819123894849363250332720320575391067094698431030634013978392378368317775901594828922520859402405579190855907778228557662496104418073440593063604031779238262498161071353546971946335341548564422370376868649838415017262624519087815008330899291687328496452225907097069682486192190258024539957153632141588696063460390602177876268435453485050191302508962145198752689962127050498610999021602279832470611657716182221564483295545368239876392821790456635072658779249590958863352521982238476076032678010173924987759664683108942140162697151611085763906017961425404783510052857186703070258894117316637933422378432600375729521515387774114584016312959346700127713693950548996086496605755478876057137495957631419612745445574813558452600320703616047066878190833575818837190556749909379472099082775700081204948776767463986293512733882228160501221700782966344455518565598793459309519434489534368199067185129654673066081182008030071669375217183091998647925769659704387985160152029419112629170392767260448568397905247464540292187511646949420463163379165590500331378269749959457486065259462563500050394371631522065783954101002988727519210246515806079669729476751042462731198982154008081957053854125443289824331196950780843853587065703269414484950393333498402674045024045162316679872906590230143118445246369243097902918427523774347709713853471074867934012603145349845752070648653092780417387087772621708993615162693310005892901355666930683208395896510998024271595123294059552008799467009815289931247449275288136746473910255800982866692671131045917882834259437930572579923995429827402598352138842081768110780361848541755463479448235637058313917472703590478410652391104300861580201827609221667884773683648057358393144602878573969561338140999270953540437618783208062824350886935160084328088485430334733969272311603848619016194015303470598307819776443994685883091865974463091666342816505611260457554350002795276223976442896678305132577256482536249793684939131879347668091163192571224138046822330018640555836829228384897491082589604289522772387910771296364915067021158895591753277365111271833484644672577172348609430846151718445002919626623667400412726130609130773898346667390615736731315544292993498984326099272369339028712403613895012944143560427451245943970952045457611776344655946330121382294347125071968674252042771428142267779915937486397219278776987084452688571149076723650070651629838710777839766463291017956761238682477230350517224769236172140162981746948222292683066747891986268148955657035770721643877645073270866698635620860764101404649468932872569824299935602550524103520057478674451367527036123650517101851220114066753546005308371197828685133689369493209657850836732313486465170294792950144508826722932118737388312302741058606856290370920939015258670766622597885517090468990383963011117215601761799782524581055644489982591490225468269473680252480545750347675583183765420642608630390576111209597501437532169736264597278208292316519207285282805035963906252070602898695125260311206970739260139705502151905846325885617127320156092886722501149885351976565208705014272288185319942142849438437207698469542583695104544122509010572569851238805829923890743925107156894452485529877292741313042015129089760728264854910115433034438736605238879540859253308834320599192634849556602461340333210425049074814535593053917660843262110294102400018754317717067948454346121738214529768293291389831443511904801758923285560473012563777311354237654732805581208268549553263703346100260557439517613831372445309229448242532151205025870679594786583232236593715775954395088365807292754806759135145764490758383653250751676656820014518395276330021164032528042332981244772207246978580967985347817738370119153178601645588766813317509376112604197253633658375659426117975293024824449252585566752924339546464964318278260810543464262170026747047414718755812049804014944299406617435954158025150885844226804732151228786938532969584533054479931118224184063734997463702624265382496984880435944069123920246826868445831614655592770855321660512436721792854140109798496522171637558969665586137964832447453909032150744606656119869565330774579708191957335483204869657065795975978240617978388387052087836759160635444606213103667940168635433393863454086121323007180254402696258545339877379029379230586846911131564090600198924160573316960523212942362193537906338725041676934285072853798788419789455066321204928125913047732767063047287774726747053714528881958764983825868177562531506254224224147500251620111288160620957565603656218743968052301838490699665126653718360998197556949871586909431587937044166772147058892023526921554289346475479368019255637634030800824746737064988467101991502870440171068020829173484080997364093964730556385610788421388782662733849118261710410940208243679384525167561419565653194311423566294695151565510504607242599779261449476578895705535248377460552797385894256116250454727196636293447930148433088795053729833661031346864626338649425944319454721480173035749421291912901039221380501992352824825359276437976484276643417244899052457357321867085976663860489499714867582889678424379950193064743793787345503952692111357897112582363649858583995735806391338955940095979752891732202219737317540285884407135860585033019162710799984681839105141907918404624624590609749673788210061767777009212769245621969845326932173105136295153444644299140389573459852886279802700168872803911960376746637432110028143090226864952382695941141756843975655064346481508102718793450565737165905507131142502611326048003526385546782986064687005942146677748492021960017564330046610512162416570322458548715833660145514415289883553679691886617771967756229078207039619474544865375160841301835309680087564782091727078087854139119314784387248939035222277328356332936675812285938718781071391902147081069663627372782703464940150702205438607023966450376158350774977489214747256788510992387223073242136356471952533040340331184770349632279682454051584398536474180263143279211252966337943959082876031625259835535914022029288538370641695460634212304115699936612075483000957573256751128688773465714576443540424896846300543627182229672797713354983108476111931836264168721349635834423426508167035899509118265670200817714545920493954706030502783174568378083752212845687057991542818757569317258201718424529812490897824980191776491773393772319241952253519267916123799992998718155341029724559354725099797454484498838052280302635911978603599115375466843361906882755018916231282605924348511976965666954524086666123178007535193958156735139946077883706476056760992183130896903612711746321786963551980386402556456082222187237868027553224067940019674618530660248084789155199481691294886296362675087177427833895851087874890807832731755147865554863552086300267911050919643647277732856703861914752522577768785972404238730635485550977042885122718915153514618550554344515957334427921499092253696252419850084949954991226015989549148650719591326088216494877331731669203584661759258333931306616849505758462349666562995493208896158117616660012332547611380102732796717508651974700801148290182919438109203909083343698565769668864443295902315848976249737859662364619885557869523101746334244313644783174165258599651414644810959816304627733021123374005780303722303296347006093962098349397341426298770470256367825429640429392250978484051891641940067879840835607191651324213071023700944327364278576105208816723779487815532000154709883754527381516416418494191286174360440455596370518310048796782460796212584647976535852918501736839504575485028002110657745651880269620807668878870797333802717519140070451143278837387274999330526466274872817707781796625431710640977991670893145917026435755690754362457100370797766711335306485089265670734536002290121669515391185920198707885182184171749441927736429226901297748077901746756471731493012429639635080620924052493183219232957383808178548057197431527707725680796792539257239390417366178832557879066106985766792223126697101278096381209744561360796863411408778265949467444256000020901760423755650217917198526116211501439608285776037202596534458996617058453615307920175421689512964032772104114966016943791024238102440857285528597847644640411009661636447766591107886218378302109033358885899278992652846712662635406461131923456008426532775904195634569744205465703625906053441078625380461512150398608775652576801950273235063555043249347907657027576493000897588774043041411786152447839821516755933539700937918018231652263114253283287302558885680402770486647591491687689451117522333764276053833824740585224895510302035655886366394875444812036498257775980624456052550261786223353850512013736337385883981692248518455327116486512963007689937313412770989124545107897938382352615771807765329602367349784657945744000548967474281674025274107000001152481301890208600731653142046261831401970133379874617652385451932254983121875688400364423836527376419052734182129548410376863498453649563230976133173713125834961178916869083303695614419483305646474443435566178626155733013360001160006862813560928983572650265665755699764595673246245189529161204483641244543089596997341228656339828014143259177151069359522170022881000108050258724219338330991774773000231826762659974056642006286531267757350572888335422159110788679663488877816985184439397092771657291833072555492395642785668434862137634564436210778792165554615230183508229286519145343364028327925541814334436826355724024936350636648646433402106393965895544561613195390978262592064344206691156775541522201337038928984565869131096218766244018926284603996930556066174270092023900216742090311247184001667407177094704918524925260418527466574365188358505501874087454219159204270917876377945138226674676328489136337473810929584145643451354628985497491147815295778284229493049460795802553563555111818304651502018953618972566372671599115930729163826632128144478324655782423453862471717158287991734527550235988995135329599697741420845228847652651734728794738648368052151805216864576386025971519827266228570937954631256483433095027246429787578315778705249070464924313168059528204966037410993597152207738903388268003974322286354289868946190444819563649333614289302060685353329698990991526925263623902622568734721612942378869894811992246820067380471625537444859375853103047298184510442415118110722119975443657614367416429597936108261746092449318907046214512877618364664135464048406955778193785988483468380318910125440768002495595686898012081131360714629194432469799629372118543918956499148990127480072386826606279155661488925645967042323102155187304554056930057555031936695452545262014416897777065240431170592984413135887433058107034120559971457172308650775549564573940524763487939467851140335227782501965893975120092598220418023134965228437664699787064093459122309625276513412029537707779816087776691213114710458365426076652671350143717369006004406242916697702974453314091673680517259518276820133476434785897161084155435692412807407641037324226342871614852409800964949719884024972681987810524461406765742553287466650441215092012730708156634238199354533209193866807500669048459893895382885396246689236498469638112720106703095168347577452306922944561133398269175924580421184260130817180481254195561454510361333096015824383800960102118480334698716650942381530674629258192626474551871831860777306760482459096727283707731540711236148532087288414959150499473210776784968761453196476515471488698250578829534149493906555883413567505155285634502914103830367317113244555899555406327880557491824638174407732933283788434884756071350556793781069732595039336449924023990706523640839858803020826964055289331231634599640865794573709396838743528389040163628445032622172853623660473735522245195902495336871609930308316910867385323407755699423327926911460888521807787203687874217054847937241160505837368393203137940293318837738676496947389301365481225588254761196840374474079701430380812622454877827577804239023835505883457161196953806919278706133906794738775118480544957863702724782768708950055821739763863224225349819891017884073489876755421880181063444289140600108187590840873923371359692068488962449413378581482117061105552717965670691271796140434971597334403994254122856793087361219606189072906466302592186161994266752022188262043301308424885491725008108867531549421936427982247166078746213955662520885929516611865382663206093671712042677036375451471021119920035218129384107001407831972541939210470939930353301649350786717495445988069343968190238991845824052319212258593144345114255034582142407951164750951487732677636194865011048127782418668865593310848342267697637747387901786398446483424023264820155456826115730531431005921568262707222737615934339436573375608072358628899949979174919519261958739250420690859182027697527161980676919315795518747386173581086724856917215344381712110916996737297601360675033758823709270248392877263907358655764462193280730192259817551028301425223208817805727125126361183617860606380785391916574748485074967354378086591068290215449441509226313811679627864329236543604631015941751851988386491972645228741499992032074117152047409274535023502497316701975268806627830657278798711507068991396580053958886905522201186115671437013821733555941702516195810872534162138664349339961548412560741637077993368367271277924670921082854005317631220744770902148197445349316642798701757039774745904654002291834828578713954591761688643713426297744593809969080391611181889081444675106857731258519558518601463995374288116804774709849552835002424992606249079681609795579760327210682468247862077425225784056725864992075147421720303625743220213513931462874819154877127588108308658595490932711783506481939243662015096460641219991807551591081732272512667449109930027997357741025631191882850794956780140784160227073654862172461911428429061709348072212963796499398365166766212460634363239161063248517139243924986644429583281164304741961845526922005005086338666193792988533623071441227985432111758190046659107636185350361886476451711269026650408367760455131694239764717158116945466506200267617385492822466636133449747855749962022685735228774097245762528836264284319726865137092607027490592775150269387461487393733633799756104648115644378195362140029785395814722112270819860756762366704099587366354851316528858930521856981486300708202567429859238948489463811101435939029084226765147544098989985679309553505709513297834265564448332741969680074203168925248662751154963848627549411376742249737134974529554128312367822465938994239234129934443146064872113337008907896539834807600139410322680949374019318471965004881966606369622382860521187139219141400352382660446729050226214060201468248716101531776060491605324213425151437399451132579601016356181665555185165329767403310987625862856697091050882997671710426140470212034043396358799931233036691146833183630843222918364188841894252387054611863337776086496230140006243842788968819280768522006991811832837463661940230064469729281746879271876086132078502690243950433621784721020481773815379560687171764786960015021218315109751993969812437573249510732784428242729047225801561552851128972229959642155589046034479713713112343284082275174255887674181420386452338647780449299423336298298250996289714210908748507465857591598119099254687187531382879401289893003330977570858859558565953468707400841453104676203626058710554773531748699656452890389314848990315721129423076088433331915702490098220589280609461008670786836459126464091052815108122105592815470764761845322702823953848526874955679439417734069929489812316384129725911764294876996502084082642344717916540152326375898480249917553229727372155519335113216971081747749820383729304582236287335281230919224302121097943338847565314889554251299606345061149720962641555762806161777686248855421317598407922998825681798819213237418559712513996044055161183834926653359382962511428352755589154038575359713625900555894911478611745485052466044201212189268416201822053401403100352223481837086003713015401495872205001974321494984962962323069871488444169943813962804396581088636670077697081127170128431991462193781877569724420852411865003263971860519189567705475811084499879542519827287688289143340474833764169075522820443950658918673724518839500330142187523659377782430227107135331966730070170214115267268131474003429813977380482645619083159270079120548604106986297270384716745831209237071107628259939617279217881456636817601466815837099200505671311253929396676677237178022936981905897909469114954505452320256685693084272475047617861622467193759834681912760016597275085367971981701647918272440553974403648861718300357004374400891448026870806707273286870307940852517112108077890088117130804866002751235673923273105687836281560234268401398777753713728262597296196083012450390444039802933909059229485363735285747461042549445361823942236328871179444085388054931917984492713605682574210636897078561054780274960047007782035906006557779029297476827746613155244009920690474979246536385492343940711178274675171317930132664831971565205409216373640323830762880680317000546384223280042877383389356093435753064773505716165983884958019400863489552809623608652406838737478674902560522007936919255974837370045212472576485863693700241231379582548931189508564684330619404662702944042212427876988527549675623622628200092733599353508327689874568169660708138598755789057085503918742082453134308288626328337741038758352568912054487864449017626558671302477911123381685439383752524776307869444402672324639214443956599192393439997180923730744681808744992822469214894975017088228369673790996028189570925115584654875792553173136806365156147996945281311114663011347543392327818599014466625517188750715774704049512848947324209984281147807495517831393615163434113172836543136850205206250609113946027351755775464075003405669550668862327819515061174629581122392832981404813172664304169546533370395581204065196618093019386606277167457117968315256335712399249872961522663191165000596219497019802232406752140835223038377755829177906591739317729612348489780559827240828203438861326404857415144583975394440344821775179748870716972923993477493446822153607166853415982740678100776100495010951693916696133751972828302902260477138966712426505521561759448976346876151998324326754169608852940488065585888056695259638464833424488718786708386384894430926543161387394419152199289734211089692597994272291411010593620107129712072330657238017751434255858607862539457339736455143623347053996125330471468797688776134555412222948039639232939672754006983734506240086309260528866710939348721095798400380996055369386258369280948431453173532482882164694396801280149964710156308528801211845654261493343032325164311544754786859409668156328508368068692224322637509979776944231618521464091200752948192797795686999513365781703442238242159907878866979341304487515489737229946418774356246533870693348427728912856758390856148584598085175888626968955772670751462627452977368453813212360211662215170520843325290861427807470916399762325634802214629863347502391497011899704660627205074300843150545497187827483937817901024420636898846640109435169626692424313335991782343071537576961098265646465713034182387879437329152555633490701445507338185290428790914519670000033539810800053134514644385116685527448120379352702828814886080712386514388831395525649472636721595672457181814499623662301072404698742010978965147943739571343329646477714090380225666889552481588949424251557583389401628224174061222674482039850820193911318150615268934360987826175234996666519579371174760890752626784642614600946919746354141567258205148942994288609122469999857849845346278235289238276877892993652032657246403416265676539945179899186015040554590413251947088471706981839746823025941237586463870385598938489695116750878785556305381291080947765369860834006831256350091735181954194313548704517751958706527953370636665144285155544756421058304810310416740711481394490426256073278783838685974297668714056837716248501879792543710057464689196577540637440330333110385870781250966653169815655530418766330383166307735465333245155785489603034240070746321079215009087456005280256578017932135872124581932461165822676006436145994313010887870576914876270076509906800298446353324656860223480133941075668588939579863100666235761628135418306726412425541484234270918990859374697088232018793974127777391550480247831870633003012199461811744410060288489444197924324937655884546880395928078001703228560036651887770570907349808485266406724543841530947279234392959914083720759774484037245056950278323376244413650230492722479939696514908447835280708802535731089229687693433959937930506408708200222326123933606364082590274313000889846078082007483072317019623451666082140868846265871206454553168927902225128704721267832040922522912984591896792283761444180280289206684845834677634922126264929632683613258330087898947773429367815619011348124634685264411178698211043316855616129560772643629708986322553254450177872955769811571596725964605700396750444884519987105707245486389444583096278092233756055324095570609326503420148878444200923716462758897400628888624723722354016980177746306782021265739762979714987226813266415889543744235673092159674297582311859408768804450868588867965256717312414026281606357190047351923241295519539145922943735622086993814614397009839305918701383621879318228432453233673518831827566053965308670821326954589179237490944082862557695681498130109031362854981112762403962367702255848502822988209107909931324904421851585182060877488663165741123200032191259711416459338669667926897822328614281605738396627777039526278888240526061161171997794271973955658766710183869423676031177590546713598136738088250273276156209859324845132851109027694655095254386461664386679198945527638856751152533821054985355142657507588912767721114215752001110023543318634645244136293775419383724383200491284484796555374109235109654833380076296734454768010305174660043803475844819957194081754972472434841051598322759980161347709016785686594151992457386002435807777482475719668810922761730522525565508033797103710710969468436141747536170548337560090052934708349012092315756584348751599232010764421927800230550788113391888971451113431288290872054803393851640384909876614676083974168037761705884575340649158805831437337252524989024604810748519988750216129586987024806078243164723612121108499502983797995195461867080482810119366651976494528644794858071044192033262470428256025613418777432361173462818833905758354680626810202508275615246272276713332194500479541760509635586546403892485056901681130268899009079454646255053811435559237704693964055088117611821731124411501182628107591104082667606156313407365053584728021389792923211978150479864269193147474078269242844440264595096285342189574111286673586919507410415214245619498818905398244821789528009611484285142542002571155638922301588987541495961265221039417000860468678965663555712248588757973200148344063064776335315769738249665906314332256594837567922269585485945424190762968771521007945438222232440337020386461112774923602349118513667430937292495715262371001221448870016489526645066617640009347011032231111875424062150047684831766448541369671058425102287151728953995000143336229704728947870287499455463626030045900417592437700981869863870902443654181747984372603363415712441338507386469359428547383033141476585677369577785315049962733112194380747033392049072703452601265956388801757847692870964581195587405079389533273605029874957117795384446695657979582650248797293895079185249372763716013323701042143936226243941880265426302475161986307144949221518698580142690229322218222324301274491960505971441878388767068443753322764588332063577203795480267729028265091636001891347368254737303972694883607390228382796385349689766328211305007559646365022007920882496613159103284867013344370574852807582734201099009061648642713080296731905783353880418360596359626748550290735604169202068900500878167672566890610222351068065263573045846667742784152203469026207555660861338921230007223088128358775971693418341839827133186387597713629501232588027125037302522789458634624768476700322644523461973355551815508247186375577309633888950286486824162607772115905985194142727696239908017374379602259575903747528011008147214033124179677024975403058794151943656017705387970896778871132186279951739602018930587500788366140812463269186363480535235202415229733402977508782668839630247066184716178031008169289784640888166449256682805535779872839371511246746670442518698647957996372323087637820639054541403790740121409686526783508310728638885041546746052087882309179204276661313187525077565845977792558360053166416690590916410132791324927088458281608764488952830216197801244593758149204003968217831307206214928729439173310874387113470010886823981159560245681653461177082135989704532552554663028772116433981110894268332422372511671727479565223581029827299298953433531068660039531503064510074059285487342042190883945683518882084452221781517325688833023529969950322519024804335333528688032555263238313569880937933424049179152350369208357020409184857730858300591066746748653424413982731773762576489433961860580817865944476359452350816002357466422716094196933226521844920424867943892111617739212655838971312720288736433154177407867413994791008826162436467095861313698808467089137073276110715841614786647453226958814582369217949085280957058353750980624697998620796002913959480667808333693265283158864150548277740294000810199345980386262267303687068597455656125899419349933277772025024178269287312987146120714127656371124311014651827412419795747112448061873768880590101454138351778989062235116666684023246608687503810297881427733856016142195791485204891245920900023069331900676296074024712361310951974607661157264425583352519064209112279334952794637374864862093887007255975042014513403254894784133911423495696655485376918687766349242579294948535686632917506064036654252365721997063683804818179546828978096825913122299884790281834868939564900448046729824088517561004434869960775045079642841228691601512187158692935813462502997329559581287029873995313001036876176336720026044237417267913997297811617968549192723842157252023436452325606670184655605371999610488036473210145380237074466157601191219268534062011366436282933215504936576693344310842775871244413483058398577113324785853778504995892699166711271680040546805773756485572219770697567137397688255191337750922439106098235129254079348206618024242249947196387820908107080691461695925306840839572453011914500104924680415910288532952668491021192443876828656584133166963189044286166418858833806204275819881832863924445212399500956704219916235703164526854561430192632480005100043701219945408381471616905912333478494201460510151107464817330666815635028684079391432416143627041914565133790765420349960509247299949760937711550042438264255624258244022849590096902261226814762459189178394037811429774611855870870920532200340527059005461804522836643854486609898356479425770499150009900480555591824669143717644433149055310539418791416951427439470141692291366220801235865888129815163836367099923405798492755563766205514578972653168582063325142319904445429447124887433276760412913462793126058264572594882919828395322741524405976065695997974972130189088018680315538231666951047240911620601569442621006156548839718019677199980235045661894248200546981283868614921099887421106593559903505658933082528883020524651593604470858658281811384025213037103892646318147159311571347108595536938754719861008114918665181004223248071457809167954025863227809863440521909480540837709743304962645939524607913337288132787074045780865219746299389067938106760651864370490518466653844028443547971219760393784152133694435867573929330667384040982788099032314895839701647626663471267362332002438660970909017430605395729092542798117667841233566793818576680885564436799781898859945368630466904159403188841123212043345154733992331987956822359015271737718159474069155434895867207546958229447966707080137161243413421510736396056939956565075633530192714046845010534322065804398903277196690534809624480835365026945868987978635571713659627541101405815955462316008492189163786172271243528869265546487017925899565342613060689431106074508396686235737521824065090402381767837711349064525809024988468367332464282081444528146869039534851645848703397566790963278297025758411133304992886881031780051386448996268554753742859784758076240399283983385605403097282843865411359691967952003449221165580869646191082406633487556332463663987101391875292874954933816635765794616689123576385040334053627430655433053228181341162869223603006443676995375051464292673275549485152741699948135673531024593687611693526908801043499381199870305441971511405665987685568821282603193630712129487145875682298861760418788801784192075908031046289821795586472900364179249242286046932559334409811428994132181090739604830538774361011299628647493501716242839744735429999156559616407565717790101865972564771891810270561651330757318118012339976784013637577469826464554694956254808674588449961088495499292151930480212289979388796399212645200397604226727338783255467305756001637184662774820177721360525908971460534747336986749769810472353030414200923098739290424230865929795407228797150821373775148861634865839205417836942231188498016437122771667267451625592112799253549882067025729216614723663569678742966823272324015991985304110365367615802402374316411140864833444480499625745683467144435897942185842553839218158748058332572820814231047598102964945460393708953119777112371875231629212867606781076656634492650393184104636078135431878684479459777374293837388880580529699138739085663438945273343939920198513427045921470135503596775266878408060491775373519562904746962585948957210716928524984359800307366806556787343679846815081242324634381432419684793013517421567274642952732223209954741311154512840743691878199005010712303251408270687146051891721754544069572021123642985428418364454378831128851597837859459480995410110815024254381430027601671866676271297512002621361464735313621308793901879092328154948527985498143370984163743245208773564936510133803800053050067739375702261198186553757365478998846648429487229192111625184451761520409647938637245395595416053096820727132411828022149929006600613453882488972115524102179984137661852724283451344469518738506538345566988945876665215133431548963793625381942101119677731553575142754275678333814845613194455854737844920018304966347403029234185261259108483060629904501978696046710889686424970094770181938380965120201094715679210864075096855140726936442965854890968699062599291851183768323175264226789474369955733674183921085200545894493240160782016848611114427928358591820417501717290402051107946505074533332950453768015978176917936324582635156081275052551223746068109380501194823133518413755514148989019791040459348170805169994663203661761918151654163591717841276323906945390002970524763624050854765872944465289844992932172071719436117534561552531553969683776556000158377254519171238861161855617756861903538876197695992811352474793655368518833262914276044435073740370815123931964385357083726677741321284166348733182198305342394711384384427931354379312396093029041204120140333304187570534495554454071533806807376974224333867502158474518150158927165988421208526190498275681959873745628503334740067960834224657836744134891398390789449740341961493711497524944774602232602704769102501064037084578475374063377700730740029718655141214644476348833368483970885193393145808685299483061843683087581519990259449510142889100603615590457673517040417992121489234500781038282638318007969216496852554295367914021450266134803308097449990691361239990575318791443487092352912066117204886777275760698457393130341228724510917608643673921734312752444152457798135610350598347200626708111585711182591399573359246872788901752227226301653175376934493281702850614770170572631397362733832463418859532594228470247411127615119974999406023278298622667715210593112327507391166513924277107014260854034939255035553645299273250711862452016675914004625798913713295957094234954022692465148770688675844128465232478057488250221506435645473810758750599451302941272563056991572756291077550726210708067158245322928514394241384543276183654511144380523225397690964380072723718341545205290527661786431595854640172760078078729303957133156641579270994054587757874467762015404534625769171849821176626949872329286195677620353171651699436027453888210817315524638820640371378109295772994795491235525490044078319894737441762261412511122271014141268487599670604036007390702511048707263436481458893596292699417106164145198581166019898257171577599916199569502296477475540101941615459453010981432485088999759154688676163774740571574463056751862777543748112577801511927509817840012855199355719243829693396636311861892194049577653098433108732571415907150685628160997243077548153291709087285952916099806956250392072949533670858794868360085780043371110032917100918831024726632812742519121709707009107114457431742177532764910376816740375516338787450354795265755076779257396613637615394944681968213176679910859270741947147080245699096899420168876870139322687254497456121426277191747190785942994766766985528207325094588696155481142731318959089956810841561351961011076220844526517675215697744628528884374482088745390642299705482490936002792597451130338744985379408731926558395541410621010818845470475123888606375723035633495868908340967327208890634282346066644733628361434424956071089598567976654230451973352273555880202454684642790830513549600714437548387638791190254869240661039568957657291671013409792982847429372935121966447233093062122650411504766246580615887564264243957791427545153413924855057759785806763637848514184366585974411489266396459785947235381543902211106735358571207374039438546375372407677540162620134590531665266660670764962256865833781582563866242482809966566520925924345045935534633686861166574290869969025532865998697609933700837905015732102505263467570745035985955286082685113954171729746092916976523785804091329837333839214280268217218883102257826390608194585664967203108088823952895916558672436428111461486631176702095547262459340329493943081568208155769746449382177834177866046356459281200407457860272270023156619950430155261649103801960638647899136261042957090141246247586552616731005650223565431436390676978120372797811161155276163818688098971418031557797135843262244511313419939737059522957662547269063361963443385188721931467879092494510140701610410390758501886973060441728000828079709336282464736055798163368088616913293855814391863414021981191324929397369068145354994480707411831065987906582781783595516005919317905353873469699188551053817001304382705286933354592058602070545770133072784167928774719655953468402867772752151492374903883094751972355334121841928168507407747917801737239300405888222299198383060778508680602406966869714267781637780355095643379598220363041015425406494116912359639847953233055764523122490210083520731161007828393236910521285379370600567500632732129480525988507782884480660876145964635026562540265196130324596062470654440137010716311752063940385772100795694574042612156495399890066664052064472601712123973406142055590317665511823725537915639516388328884844500372282028074921525702524050492848177697828389370523071813476411235755133048715338033097853226535143282799615836268553946121619174010652526429198869880816079290794143565540167625134300505474988698932148781446258028809990337602909222857000124361672158058890915422824844389022923620443225888985777527047633715984251107312310648263415209475337244343988178329668514268828841845739893058435264887945032315961977620885754729311899261146732409023164664230061008254069493706067114798818102268868581148864211494575934909311028196300328022243515926327042117720819793476537026437361243196476731922484620368271077032863163384012433713648236129702125809918761336211475182839096432999698546238834834451262275745977935315045403330249485269104627110254337350482711835755288439577024481468836857692936545895306606232965664242070140798672142406199948564751381655723048427398139111016899006338168689252493322977891467979383109626415947043860418764224116334919502457221753544141273507395697018251159383714495588409484305990714062287900553974234496822646506980978430259803614699233934784811854564998779034073542699550621018863402240565864321313735569767652066265060115494680018750697969148700888758745511826660743794870202551887382061337161673169901396914575440746131084062093126845649190017208914922058823395727216702032019661915386335615122926718599689340688490377513350512636994157881752701663417252311703861256718963894876007883848980981927150761222278265940878103458702271292871661785961643820216910840492825378839060347998598801909292142177325047342866699689714277490520096620696933976390202048485319712939190348968517410403232147051347068330142228314941134374062339946402213493563313674015242190466776515646479968061403538417475723805964388211052557805888573794376200979887037067924644028594142022555902192926675252158785278369454308465778166072472976386578721781875365632526422027451183144216915896016114970977205224401899751617193526068894903004689049422125204994814504918101665622753466958591036815530187186547712379169703495576901938074048166418554796602678564332112543544695860850555495761642497206023163429472570431593875060245625217004609880360249414686701679813007064372490239853117981403160059139027784702197073318850042977959862841556372012442070303135796503931770227612957289846433249794420911797812249402468323037396566832597496017733346339785731415372310523575469734543261119267008117852048764496822367241057295258941782154383002215129813011084408349290241776344235075890597134471347322673689679408541967274032091717700204314232567693296426487485402261509152578625573351977298143755650935321898562122469670922992639694493638689319062743234553571757653822702613615797511400235855280047015549420024736543410963861483059507850194564491479171695695201727466582408636815451114656914647938331308054601959301559101232410576736437656917054582980334048957519814026824813751167971396243561897496961504764514008976025144359854575236325139984278984170728839047526245635163040095133170653106993107996485813986423658757332228266768733913795756602138973510590453482123527039697986812111327164054240862946553110608844751917897929292144129661029055937743309232507741226716595912670618008147145241013139493983795340209779207975884277399313916237113467966285379113433974513605233415936156495215895212456057856628397125679950284970699339471394282636056673349524424613359639416869691470459222686794316916662703429458494857052905620484191568628598949237539101038439608756603909477478711257480425518461826054532569722186091463417304870598013953221892351270053941266091736222208843593331436354650837395726042136888334172842278531605184069904366456271045433012509508795721972959333952593340306771739333331552451586885257039070104737280294946126902113706180470192428662460513542002316069361582812101136306795492882319149947530941749669145476762677665640479844667972284002912709942418097880378055485161653657840157858752684112976090083761957904959174877068012487173399135249068135055866198835017202080020644334577582025957490489858771829977069550645237480878917112241344690620743601476969441782095577177332523644811105958838027756134672803372197981181144247680063826052415468975077323388316368804640440023877571956986778260134463047336500197432934697214644179065512576002215920369345912559955569509042865642342195522966044943909948675733212606898587578336009713883729714658670303383483146674925786496377819590277048016873521952654263916438826409285280404752186680280483874526786990289613160115011123583318500839156452367656111614421949311181230121291824734937285035622335232517783466798953098968433211964522658108473017306142711467645312252558428916885859040362949024767287920943892351436471460558729343136558683071437517979490389669179197876745467871475854644429359247338345935159257838879203256472627033369815917150518249668716247033637225423717062548248483899545178235943621709450347586156846325445614017341240942473906711833574930461846768624205017611036641078761433115341357037113222439213813351017447102555020145801103181344072044324020739996430790626085399804128091444592441357379546592587033591722952308497092248738686194276452289278595372301507827099180397005158421552837997070743791611266751398063722930957085926231137222876408222370288340626461200563945591763959557077291259471312905427320475820838264127021492579448560588702237166439324228352528356401589945642626783791736993292869645676385943054179905603603954830335618978833385266714967948181297731777256406486402597350077210737925419306116418171005735716457775102683999942331395001530656761932695444084040870077274333845896321512676755307389907961330000541270655441764094311841720659286969615112225962174106265052684204878461324310545608149704442286352736195467734699329900604958908806065115422433845006898080503170915077575039595188250549380779694309781047408931704966396807225662724324816011915352484948867299867693723283274599216097779579801627645902938566109120290109528459637295776591288072628824502723330181008896390710380493799078174111081689876545728205673655680371778812099696835777896394587940152042878022233596764595320496825108209678965941536044142020701020290938920269537032641803300138186280421172229139638896086847192794790232184294965662628010474113983557667384410348865287754463383320930344079196537984660502459167207647377944140647673764107820386772269528793872134892728913753164059186891339816709709876269150185310482229525039920024779986731226181680489634283689137716559442387209581877353275229188689203736268891284928313773651683318839572555844870746150342837078548781143581957834433630761900688407771846606194796621770881638651917636248474687600017908096845984204895033335587784208923508380270343742203521309707930931848869396606072435402134571423881750059100697218785644481435800745982667933279925855219435372213565172591668280386850958953983247185729504736215337247328828162493770745950160840224726424607784510313366151266523877075623778719758901819450253843813807770286375279586154915993344710423923447655056524981684212299348047779040763147807766424862033487542983902120081055286884279880787894164923818334680407804402342989516544888866592741728625551657190537373970153338496148778427834529341533665117263940050377196103306610877221296470356543784111620232867730840767090537527576677455184688700877755468302813270008293321830205130350534413578669415347483859484792419057848262299574653232174081096003489556168665135383513956993458423118169691661331766889288671043715826260127638056379610966899051934913863634501778092855718436780887942213066678400787337045879911983694327821813149274066101949718786853912660613050633025686159576687824836097838502504314204816181764513144076355672705569020844731865265194989306695891744543396531164233479224292171638560650374341305915301569814143703655752330734334030197568769342801164526785516469801346910750859472995291145308972452284924301059770863702622932609641773936463905127775361025686913860854029543961914174763442494003653410951811238217014310827292475118807435698602408270451604530633098989346419102783527418346362581689530171467484051053478466324466932825840208291559114763518273630079111718295409936311038142794449235232351556800849400611242886970517395744724406074496671690055597679824293731018729222240973877059326027718690254997912981287870949902908582845687705849584917386034370333145466698046811094411525102997213274230367611112583699729098591949276824801739173619033412051147938657821759375162414593576852978707012107665648609869364209988175831778221469629649102313654539540458841102786385732333228122869155333393854464128102631666681197832390931204850782949643377099785307718168468933555003499336515933540496343494684331100065458900082432117823206435803713428954851713903806849875547031451473245285315171837082116175914049417314985719372942928377118634344813046582514370976750877234679448511388319126148927845564142075810434855890639593658455218226528979748570462449932233387182434145072120331001778887357045125680377909824828342335491676312188261650694583246346618051014286916859314612745383246139080259647492052846228412942049326292454155947767647233483483085247387303782663986352312288607867640809307505427302477597410180189603310494762225087821470510634196708548501226937490798167917763589452047447510254662710458274869525139820700953597364830910964420758665231919176717963334020326570483130010709975985276920724334619173959145167879797085675857066680739399066859570808545567992272599116536349511934705387085671433388176691982977566748506985218626379742610954234845480848622920803503351287725247551638345556824688211944278925552938978584714152981058023908920623976630820407104450161662712631143220296910521799246225861299777374671361719581945977778689157214443517470959118929946728139952811310925829836237889163986207344191808573619584222650044148119140774375923846378318619333661236028156333458341839713236539839461832715660419918858088954518049056897430783710753005569756301022272663866573858185338233005198514839520553328167146679268416279385784769943496983088686371067761601699101451183622716908639665804764168076804309773438772869449857323385855595975670180857580778376024083093884273747697387799388067257763114812276382064996083104949586071368751448921677429547325842516905702546362370027253197187454727071356902419731907214540130786643378912827894119400455948855987495201868102618523016860915506289097167111058564551490327974238660661216206637661802003518696110951121588931594381758635197377735500070615665179902025668492273347281035265324733339705390642027817029860507463139282565773062135660509473117021974183702081253734914936348598329610202690759256500341200738139886540707653774108632230859182287480146965005348816621091064024077715559764141160541425653982764995741066740004087232379440130642861611426061488955581058460659612342940588032293250825161759843901339986335741988035879346823183792306587993724242726845992105360857560653240138840150774387154715155474784726807797712600877701226712547343042937389092253227461808773902347700430730575390825589454479407398794459805975777557440186234928453682716292169891144013496870734913474580767156500144358376378924060111344923044477750955994001510347735334335306416018234181584531694036220201124716484961457066391051688622152801264195643577396646702591594528466315013875145192442011915279608570299274102810508975981861790193662036997264666180324873788260983963613125715891513535373289559266815999546446913962037483569756736213853776217878431126291806954297392780966283671552106818988153408858529037755181321203712728832005894504006291774344918608826725285010325850248618620518890784956129093301912149044497998204094402256646776036393084690023321366907061849456731463583609234490438671547991937340552047612105790363679960839608175882099211193458039857894958232782321989153587664765655895506723350940716794536820955493222045527176181856850560803750772229846319289391589017846547267950495744279640233261910147135466024486095022332817423060590941506757879873082052906124684517001582590987690867672371814745009670099121238568813251452023597665418542609747146904586462103896176297177147937001735398885837588951865045629645841843696377895108454331641278394313423592685783215624069892650625704653283317118833030751312456236064242392159734296211656539156884737176149119378010884906649699504474558184713797387346749728445785569357132576512013798738986415181460378921615108389115279519812249622488669450718911857584263070497597558461789261664258986376190775183472029295285756917636864041740827417528694646563099317901214391966766054478267576564035195540629171573894415865471320947436824375786636622731576322321295145457249752925720019756126288099842051140194921909814068157371549115581266710875806721605849277362292131156360060230570284940387683455142162884747397465484389514117771744270672483091555353371299048574866088927341411449826872014012847023241152673306089192331295382548971492993176912940985925129086047090226959107969734150442791721475587310005968977522011377942415841998031317303425159618264831788797935122335236667682861195258117052329444448588155291994533165439191063289015319293580087155209769395546933280134231250735070804843691748278314593392336934255277196061313513602766172243207994683971072324315225000402216854924874502607454646452221411895098213210235586747104284609818077162310494877910638202015613909387095327453841812987658388463756985355447844636596571453620419369180498133398308909187389131326946710117811298981525754605439441068922667336664127754793874460118341792979417514605849355273630723441829506976080843749830604110387077214118898424206674090852887861012811843277483517195006372524777592813605460899631545216172425728742359254271227472543860152000725772733898636649258477770992162870480655120743479843376188917728566038634158594844602592107905160916834877278500617525453040201398959614818198332195318105947311136507309660769109015488766038250343354231501506567631336294746258936114983314959645505062849491892269147954868878574707227242106518368968703163905561713684202483910893627467100433430359993134993193647989394088547266399417220461207882110636561088304032582486033320277606321549817874837991728830400056200117533903614084416862718444710487950547740921342580588866917221510045614802602373365758808095672530258645305922549113879878096627355724479842860604349508470813411557647210759327363659126995569353865494289681066273254143623124321239108885662206678949976093234723697147713191586221185132503901850685998829183649264293774169579686316477547365940839356988466799041172156699091245787886994613151293603532467256607006821096016631420772030706357119654439417732853731005518934455193966444084400601890806024085952973820478457545161271767277841336972660870825858347963130620643250107159415275297167422011329448771526930808918174582088622468772280775593698756259972163043763717406701305381351068162629803082952700977535943702108981979162532094367045585051916276574678538779663419897166292979729572554682736640136079884755872885847445942120628420676419400061592907681065523686727698526624801185044074644637195285638437717655411808038881191843083957617018903583701419284650777240747895173721678710850214147111390194230498803949599056317644795612117414830663048693517941302666442758955354685574801730476991456224854226566300348674385554609890939593099340151441780749289744932839494647573855643408577190278294663423969690167830310216916082960123130604558384030120261741347688600544445027653782716434135229707294846518728431038274897186513712775956179363063380624314425188946204751407200599508791645027944915961667107189473490597694331327097113659555723709614437191091541939621066000873686795750857182864326380380165539460353050470736548572947445958803311287309336445222258977109296288765159587098711219265145128191462087666000242671807568104141167748160336873041675412156938772680964242925687151154958370442681406037304959003864494610919444676215644709281453043593992242642383865418620039079604856479838974154399127663741529377476233904926961589456015151557312068347346121292930965716218668985428795353206719945103216470339755903076644574285395711869010722915668407519388707345908264007234799054331333092210217845546447340996151822007432712158023941533856526830728266156637859911827344805210579321634149255014771088808777695441654363166140866615806882082177770505548474125285292284472745506202553103297359507220719153758191493003661339620669525488151117684670032118485987651731794112780597709389596823154454838033836457073741462362933468545316015487044196086268413284945271111182938734441620669119278444754523538953308472172674777702066197506542459227240856168778211181483520733834482238350769673291396007838941927271860110354717083643901299376475867692084228805321287959460404023721658914841577035415572222487678310317318581855935023165221611012494006546870867478833454437866599746426935423238871069747150882401075420657821678331482747198125216641234905854413499708408920810449569282421396369747470730866921925991370619408636829474063488866086418797248894976781447304150500825973266228571680156938939979680994244772689577811981806853386281946692485898030225809350359543549532427207782254971893364367643800197054008889518743740477209621904387755697875281941074420103410052262041076569115224852394631305940191220965455709975106702324752841832005466782586448357834696951436740012589806548057589126105390740646801362909978249455936590257845062683565510197359965080406209963362436186260033651206713952107072894665845705206479179251067670978917719221689427384088258354970468288617044782889412319539736289867509079062026591616756506334520718415393092970647752561827041045294373522741108726204750894838679801599746314534248547749049296679180392125993273593164230843668308575180898902125357340073692804597745514609855534812260588375216075579202676086513927442444891361093056307136154321156617717593132025869285389213631231697451840323040305674146184710674290042446575146712477728214143342408267787578174137920616567628755276710782371078148106717615249659737394841256788698604471079138732400308577194482723612791707840765050662476584824870956957378434483720048762133674896401412451358839814257582875764112076601818732039576514319127974530560135345247646597774378230472747060153931591568291889371845545712468750576237579086702212042165751654359102604178020437741055867662396687697619467741051344160956002939513308146989525593793488524614104237608784666318610632480197068656734729697959233664548269432133528181605309075992410071287161135743111604330501496857612923347795657556620339663279751861667143212798327513707511257276916651812811268358915120683794340109983894151094638779004736441408161351590103093728536463407729979729104173578901735202643300745266991034299809930327155583769832253385274375750532967821010349370575200650720684551395744881114165208794192216582918501461678188052880257609868789767463483394843281516260773499588257513294353723285846416797786206368572645245265362048693383263023686599317926918929558836662604056229052147276488123771755807235908481512409119732249942075236311887600108110928852393583007699793059444887079813693569218955246529720371894557937550434464364939817756838477312498356960430184238772386894221757167375785634323334703754133496915248474724747658963709259703441528009721450069565137120394676471346803526840714926879054226122758674318073510148009488956975715880931077551550811238077122862198751518923173113850358722206685262814446922119770349153332332001006892329314345841633224905111540350831730818265672226938779881712132036927751938365032541225853091767867093241857528882859414723906267180243688078492188408782779971726841804293464463805370996779048398505812566783554683390471168725754897650544220796489914389145539749739711379131081058563522815099655940129893053293790803166471729706133226365680335862645488907807688664340183430774888258155739214892805690902962180569122538818189192495014084913626140010273129340545032756023273965659528084563468594498995029960154648626601048374939568022363670100249778775825563562740660662118932595874683293678730410978183905742631340020631725807625428257989177170786414419476297507384428851650359587879551434223489419765823900759666917643008783982435199672896905225275705901481251051646842809693993803425834464709364020936994148859878080047126370751648443072896140742529661906030772475952231432766937106840259945138561248551821667649239950810532018063780192713538472571319517490392797625481610584304121667603078866015602111084712186930760856065626590249814180252898810310179163174077743206878196189795303715506666483327584751886447889940387697121067370419917201865495439751776991404950622715295865408454329406729064538291242184451282365025757295474176914193824681435452991467332364173612946915235157617886100205826032556705603816796882004456546637662262204428482940004236150173562968330588189624936260515747287585907693625375126368113308471578922397280303303500709917437763354275851516999705012837373242896972400354411022837137128355255864804067104036408270620910270513185059267956822637655268958353878550000489197325379259434029343907686161144164569578176135439666291464280444639030253518915787351378008677729324993104097481790450486532502550713732967270768818398683244782629034404872401854988087711072313289864427140716925486975630261999666392700608600479095801694513421989752823322994011752574298313208076535240948255731990936472552350548920267458302549024113918724738345409807465406420706878312121544242191116333464831203556938637624821317427718863777547791387757082048566644647274837665595893867036809357937115863754120177562681379607141665222872312142083804935212997924134199665332666121639011278162571378519184204179731422824187447888935974100806141710925726492071487529943945102009579913640147087346112642373973859147014049338434617011585342223314652747945296516081070199403012028235630494280068924673979734519818390252301879129038162703400052752559126242875551965422289633845226366858954159272475955610174096698710010675451452682932523985035479872601854203099975845156164983523229933105742601782314378528154129291423990970768504040209086109929946208168969568124628585349116415192382971751493489582023452869237084495179270015928757878911203034578285104025298107076339014726117396195259612351097659353976877500540301733489647908439785432342103676649604742645923083554871506776354243194472200565675649645658222868092153128166134583186753948758527873961190174786782712780117175540186273530660381632292409735673982497307974998500465121721948170803220753613874266414557684423229558430053874363662659000536939170996798167553941804445676189768618736311438408749709996925964604713872393094128803608616595795550662529179788710771690927662600230889716249243587848286930811734822855757541792774343663883533281081647062853753112655118307176821363444705941024959840106140729205531814961783734925610795759389169972749414680879543214830516740255955894354878066875999551033194126408208841613728639815119553460497310200186145151634378365438620797600124947223357724193539769959117931287839209368067316952980148586232274891673978969465514557957343740660375875900834580458624287078028916002533558833948254242824861411503204328745260370831670734314206053461723852136428506352079330397311463642811595306008746575705900129785085423437069855319380175152842076796769795423841551101997903699135625446989284583709215139585169627850829448102927655945156929589007105323044297609159192247274400739204286898018237142611187548688515651519076221056923256853823879412971766348675385074238371276037608550041378453386394478747981076663946787208469680106300924495097366953653054302156695565249084395885385156473902243459807717208493960755563646314084415405596458375828159076900764849105960971049297895774871787338297530014388745792127426252459321102647451398384685139264316197567813282237989118636609547970180082042854069939934563619893656621455971683983435655384593987753795256156024340087609458749252669273820108857955931767150626440933460071159195581003527137209566684973812096535481617249499377556968163052684886767228220852049075805995181128091281380730128290159350316852021959962783841655674028335918618522374236715435558986752774575433736181814168876713341429952056899388045998655557279877374267303855547444795446176613510752313808192515667322825376512176993154595318453113168435115221372208414637665341896571202974454604869614674677079345045679418006119821596191196143694770740445514280035426576391555382463266253626468934649047035414642356722829447587292997440473903855243653040261263011856314420488588492615506159284569703247450085094824916067323145212912232852075432504284155535305933457327822352490674386369818229379597233904112287369354558715737321658104616722988865202959904515248572068277674003716432515425170998743822251327298867218220970592242294639421674151661797392807639834692304012417987621567122583666229188914862928154569148617734661227055198478705164077293182400131497233071583001108302905124942385621378162480014268765819457591084757348942280591027530668267185326936477883490302766861080167717349448596079125989818463380904800170928087540439101315429505396173178251747531969250871902808171775564446386802120553184448881986873443146535624217623411565314137930069374206518699830821698058833461602051263119289240372782166232731598501695615792390269984328539208858485220370346377661304161757302825533445922430950543008741653228388576216737332009659128376623574612366863677691456910044774131933479206343644087319472752838369827106139305112258373955297679729768395961005652915658980460911715861570790863184880570121050550462860566719181655535987345169703753703179552179428055137744817637804157252136489118200941503797043819877419833572042060306928105686416346045952622640094618429201357056309209994758662858994586101937404391342151815371607266459702500201454013517665742543087447766140437591871520271817175214078067648734081017425571861416886843674396695819392404716029742636086808008705217816488817100688785161970644354212968839677628162917755011921604793633215781789984576309496955319227877434933776743531631851311298909992455837102708659780310398259254418799029887701806212302941824662643809803299265020226993308607149282402811107916248941249994001060556100831579848459113288375000534699744516067728323072701136669780225199237694621381791579628182957156521682545161998739899859945628167909624060004107151353674883241693074889690305562832261773464901471451833588097863133273833095644596694734636454731499896725299897374560040703054331939415178400662978577517719407237539738456171410521970620361703237381032255729252677993130983215641621556297112833019529207379374751754631381119988761899925210174077134343855946795120795805369410444403186556002858338006957374412793113700396064720245832752820377177732025604553912766684584774906496226553902419334396017230996135947412217295891163221723589548364497920777009894740779024474909332048702816532876890988388719639736772763996376698333006396990175260275249041147954895559516210835176063710409332208763356000788879647049735556582193751981336157186710989302194304227599655119970452574613970505198040359337103581581680454114394156163123118277302369436578900481578835375512649620976808529639545204313087767460160986050344818026216942595469918480933963885818521815105629002837368917924331617431768321916654339898064525455394014323496751784059251051209300591816757723710898118042435049414447891028003490783474456267523456405349510928012696732535364907174258067454203301867467723542768515593054139616943157896493062456443991268273452374388297009103578923853025321487316445641385574729640215150576201106524965861291877825640699687795664653291649335669864790489773637851207369446545759841645092112311858938725033645868068090171722441421727207906946505392967272826551368961824980454484571792561511178654137030177555408248989330645546761438433258762507326972647075634198104013486206341283719506316040318067816927712304940525448947036901381518517469157223613605062984833858443344161488971086626401478028695243361397223532075995240347060662623587951830913563823449722881140553536228306202376462013491032665051692321026840207107227456391396564954035434507705667698872641522530530987738947606802174617420837034264250216619150085305997735556420265660132795305648206703812736667064322121399021117610098684542021760360538039230334670641441465242538641257229814742373994276562707566888708641710296871907695771078744324762291715955621253696542774360486421476703400742082157808738810243471130724211686936573463594073124368734649393851496670337298645732361482282680812489170594731116554657122883588985657517682179310639967764870900608652997394791135963888086532747680833758295131341081565188386619062025420450818719094379094806838994233395442538532783440628811351194809127517997756400028046731227505469371422809301685043185751488084793996841571828872533851665695186213298875144254029737027520004910161850482104777424931209587166985610738653684697550060964358719335332655652517539138200035545952544867696426928022857522882806235428152297674711993763540344218816396221800880293387279079903056656405801217817315895551514221547366843450024747926940642612360055418569614955367943411814484701963080400290830551322338792718850000193529699165239331038542844547683586676137186286004089296714284141227066113975048319124329314784443807577180519285323474300746007818371354430893173360230671519726738033933760801997478306602543647012285747085763732990613589293343982558529991614646945832896366566322653143113640819576813376411211863300205808920775728342101584350395953453110271853197139237875230129454051233410499139292186759059240349955482368967634883194387687979849036880405748683385709352281590966467597314935631131295195854073968263341093331437449474309371571885429662210909421979740167269531446969448392414310353817481974581239420731872807845547423717504999003657422882958289954054835110215081607334892451784447030820755730019762967869602020329662203567577244448135974384630742439464889387733905920732676286939635928913272636182086412219301041119057334137213753276632533703222330751583380065040117316788740937206771977153411713624497803514883773266676758579480177230723731142764089019158690166599564381575607553347046251164755114858885695399524040620545357814016615509224268251171857503167532598169593780721460884449149146474671096539436545979761062425477095533801392423667810590618128047951532716594162537185044616956002346907928598642997637905464505342458789681943021518433465354933705464471459300823559541960254245131665025914020494986591131733210013379680190435051787057333717925103545427278898915624866047539185025000134682508503382155805262497789862994785226488470909041670689782884340209037718965202105127304021303947659225711604250216660812427436662285294965428427515219395567173362138386277201851467653055883331292677247871487965310043759157288326940254654319706799865667884473359966817093945647601069223496723060626923776744621507853171602346762036407009700242626099546207988023427541138609146781154110802590182973879912014862910311914644318719397482346132299880690506694955721165610406952722458749839069718651803906630548295005212981180941753864046922760731083526602836662033663387772385643947964936254666663474151195912664235209882582837623526378742004095026913625472518145918321326622641574421464245022345652099564041392117590961595327626497522035233895922304292260423700064391900771100651138747491758400263640243711264491638740393296739708902383720259508219247160912010057531452662897970131177669030085019771547060394247636107417958503266290857354075823437858732885815509836378976633935896317057793229126115093722886516975941436460069519062033823301651706239194213827400884843833913478452233400942486133874110872403158798641807456688798948248757787130278356489530089309942958241363613688227219400827874241882663471755313206866065420645301710183553517671520092140904790836509471073582858726170888733600727024330812267553164437693097178230196761774892069667533557355307977175080189249729074613346992447276924730825174061161436817701958114739803075424929182287948305132957303707667131832730888604994708142808436648746114776769484090382571918991972478062109687298957486007217687030475775542445721047609655065239710198333377521099320393071371076868162859970887936594548360411146429042471404532660998775045727250317212246435440148656814242913053499088830709695903400962075550464306969532829366543537444421107371477195263123774646113651012991121378951203866293900246193042753938525095210686641203814194009652341725270978901992876631349893767851735525584379321209752793265015045654223447445154725831751639288147007820737797037154852480881414294034195163374015181441554503561286926349235595006377819066165925197214870184545350332505964026575088133041839496465466038165763784957667757947567047338183766269725666051823960183371839786310665675388624073489763217149083006601131612056230847284384357560891664372625549182462732221452366828832410871397250827018559024190174810157482160512677876558209407199910877948338765209670430839168656273467848731255909179402286581461655712136511581959897522074752901728797665713318974419554271346482530444338040465571121829741268246542019010393631454283102310803033989407082892676035289746105798789052974021494975216587142727853278564482809314929059870932255959155673203784057313958890136437539244951404239580039184662132172970674020558703798788575797007834801692595214480600969270975218742621023670784825224509344181914688413504517437671841497451032667273757407276829187269890770237631583326790897676886791720825271839121977045675513554589750585074769944134537928936399018949225497612892039841191076569509649428854318701321570945770056345352591123608136519352745274380037132772979528731008404148850446599456586165407383341500669831028690584068305846269595505656207664850264270532172488520355875435972975455916575641598618541555166765432689318868491735359820011955715426808435157990189039042861309597372872352397700693035398468053238921829592572793890499335092363266153405978109428712130431009415569688393264983727518228493423196901619136330575005129140660881647298226365260570799249394599980141301406884278915129628545721191880116858513344968507445925233490064631626251433442195958571090943286378735972655463424807314598964114849457377418056841190291480708029342100956542468212515160523083627815528273551816815317408084900627134725760391872100730276716386163369881074152857905943700443312886353180135121643667604912467403118813271977659899749957001157472595079871829510655215428560518588951339527152150067887238634913811385331874549596433401285688134695296490783337257532042281804206209750178527635774054453906309625752060501781118555677050634700166243784681713620139457355850040325709100328062749841289390193962503986777744644807692398765339837164755978018999435050070947518830144165062432214713058096122872521994424507300224483828927749030454562434306031668402086957371107923031115537033519238237506323760478438330541624324830527280439872247627331561297933936858625719121402480940844619896361876338391155567146100677499198044298701277307837330838318029842389260646487681277637728574825537123355559487581117708989554786291050833322087120948724966020475214717194943148678926772612951974878581022830483324960719780920713033601028290606824936636296687297664702911982284397264777529800717543456609397485194933068169858438093464922545000579005171914617313236715282708697081403213579143774715599744841096086436701745914153597241006805426252615177974861655824079714098613478315427245791475199473474998615899535566533670561137937437657049804458204378663306943857279336418496084534295618527692811404420340259190785360718773052129206165601865655690860910848491928497137540879923501987418192683460178215989798552673340432747856420592744464922779078004883559041480751820888775521188741345119683643883408054473560021705758634674608806462509750030275192822968508191797699106634817036277541805459165997580912574136478140844302601469381457773780298486074216991439631963163146803882063134275431868683585144570767260819134435038541669956965702643315884470616776984371014728096959392745314566084000042534725645548542858873898158553751397247378059431613846278337427884082491334435740695411454737090542869509719330709785554579159498503667753584579912733553281846774380165841067030623669565356271394990160728704983103877026376676226469355538659956564613527353814174972909247004332516112639170928598865166594956074993858590645195968181361990850952494088963122507236823559806059566936257489263134794410952852010849776575199628997470624248793728450206322299110338935656778813180164892335402844227599502591017898235131553790608636037314064792532941705834214522013755834023178514412973159462175171406946906144844175683559324364993784591648684118601962926722211674254542125646928002062826657060303855456729188670053654121230912008022446948876522608719749753368804611513980895577048468881559503071119195245817306275842663645344236934825105758240132741767943260118573842808746113351853876055921597511504058495806938630261125803922966665784464971755144952782854136007031120757847058272821486948660470427601854357550709874919992979879530648480052595652469680370761649943833019397389825683815105599387051267983348864506732503023821494970289214172363150168452827231360259441990872238609373511690715428179842710291708038720095965031128415745664287312548779395300974657934884171881085151164740650016365270412324646076328136910970254072047773665744980005106738153672147041481613788667213384401003498234541300709850622046475854906089152463100183187820897247120762398643332027323534890240067611338611958041615592060281037787179303016656591763963702420546305133074203488781136185376848656129684177960584590750721562081650698997206664040311676943261618914953079466958274997266910947653901397730937489163334568399590274230806062298630860839873145131156239288212637515364066724641028895244770793013490022805033642932087081729504716379004595026652337133698770860024464339985820002028614975402692138084811755222175358019237107768882369934272726859076274080340629131889998242456186300538134750901622484446773444550556984315226327817206236795881255480393028565948624143799147533973839536402180705199205469271623652794149359505920870253423847960152331585320112695547236539956426352869029243319165867592583550011515611211879210864872965787632752100327754006215438224600922208538467299796818760331615937360130447612910246009668058452427348517079510918460787260172371777118598768865751864677684317430996429508207294334553118276912538484774652352403250662324885549772008624113620895903466824117651096370395415924190595462062314052846191959301579200331017514082329641081477797359643785877055900660126969445238228971862645211556651151913325015176942515446405830954402070412713495192869300823958935058797748647032528388672994351466153726473071362136493593658242483032589076997983436282991020826931850378825421776886336427516652180624732591174313100546966187096976886166745849195472233148583961359729939699475507801251076739587869704753646621257785674064667473181345764028473036263303439138160078534733069721265389611747539186275375421150398528341955578916362173714725129180101031106537651858614661766186307720391791056596949165806040628861012823685861338253168562506427483565137264586139157053808668574658466899268123839425492809232801920781826652911574837672804386533701674559799302487214228626580204186254766307293833475173632712690245497686821032223374716347763732115384064330836808720534840657947600581464306809981515759940869509405139607211122998333854182607406783686835646933683789660545504937518992041419109249165325872735029837697657347747362831459981180094558184524497698541880611075078417898086700071275717781570254716989550334812433689246823322407869059374214302099433173635019309366595297415404236460713341967294511667303667468258177215802924623569989258942371116000855131193297232231926071744535143536364540595129599228589150659871244586504386821618599562530362989729389491995682147990899470523126794395309470366531879157973724366951042609267877019148970882759045636873078980090396051014153756808160786968032245266926771157493593029892403078644618394960823348693199667808457730357322465753882533939111347576597914593192960420130026287207019869224880977053226656892274033956166880021682274985429079562474746287066158466585202732976190691591550889234834855089258711671094966954673727208056916283119301041472544192381565985506097596514402259641910445505453516465649250557597556338400822601028270635584886841518399988986363316789189460126580198732597436515009492832403776301188042919774848931731515900092993251555028616443237506757285636517103662253654647777210577511904028451682883294025747484888854208867259618312730474033629705053030308875048011355853265778867125540181702945380739288999415706638035467454996360470923221801420343394252266562677849847100149417835215205303233277928796432577841655648903589280197684637395981496827200012432348229232243817629256667145595323737671409458182946270177897767762555259613736332055392024936187081199254504620988714556984563201110979805678157337214702531160066748020131882259510541103850450806631965034850150374972329062227373354656641446783431921109731245399160207446589445763854444832423006400298647143664569831417901875618872376780608392434737694576358653874063971064451432721765837414302723004516625994640957775371074496028676793130204704109885915884856536134164110420666527089225068982653834817049573974934784014457839230510828084465145219280516184924803927725777414751706097327499675762534142770345022716865558912966356226234027077967099419151184281942853623657279656481307173073976018258097522393997738312807902937038050399325742758030259472264344113773106853102985587378945324743133745797228398008598018483294120440031263792057963499471165044060691993293163387068677496635207172289293979923543435035142508960789846015595472472727927960226081146251435175386329519125010489121025913975320817704966434699309931137036418168441743369103131506186972606674949806811147243818758861397688294986586633196942677466836835066544506356047865325317910181952388452890035192322423225741339568641483062067057411323340429767228507280003339619887219501900592757409862057774523780238892967421093222964633689086278415423117004328731347010166805332097824146121098854462577574108075974611939544549595722348637822455963073098815900275276314686323340352782127514586298948006217317030337491426041177441671637114288025360719845131879219733907989642865796238493062397565231667599869649250047804698456557287125596594611894845244105706770651138228894738552609589521793644874886804399059566091990536000919353552271922892366084585074525102292001116952992013086621509119656881316258626084847446815165443807780729023423185074837741994599152086480754986110873230880887388578574301687231031906595450375073328485576002795845553377504331508603596100385631222051167772430998329411440397654596805764928542023615535182716048462834070709671150737132536190933874298127074017764910472888401725198285853266731078945977119886492774930777234584343203997763602299216336723158713088165472241470713817294252465631297868100893789313356979852299783600374813817461106583613269256092346813476742547443468035802064995692985108252054935680795906079521227578349265371491469077179082902579491196329970436158798999407841630546932471178964901851349933277467518168106252726090257818997631188474379926555944120603944743795058005951360648948396259498732199864417642169057559088206797238766749100539826452701636764181291501915120248697504624778035341217180794630320445587569443966444062182958307411674476223479145098634291391954953101251671107598356072300743946112630060544504666607772944579138785577234903391186858975328876252947836844731006320426757480608283111748837884059289110964931355001245987493433810897892645977426687580193350537097988215684977178405903666356647554717445128612824456075089645888162562480676392155834122407134153119554393118470235775868785302189611594997776796875819241892111265143579325011672983527051897931050828724227111310532290739883582234973869151133747317501464074449062259010167412818332456459072464471798348245611001265851106834518055728776312872406047718399339169464556534336680404603862172858807221709901600011294672818027298561440987622579845966625695040076568351846591422135140843099489917932843524591512467726064834328770474355733842265269631232911025122394354016982940868760945019441442146671791508761904055202098103419727520675398155379754985299889877359796734960831112270456826125369496907932416611596769903156088729039488807553520367365759867447708180505790629210415976590904389259806017182318137120952592024686186707052842201354687657472354831542708661005910916826676560184386016839501094589961165842963352752744369046631099663122393437902137064799107921262409185892364300472084022921459828522905175965188515114567848117505235608817120317371285169450513102012134240455387420086947840246258372215045734456027484972591673027024160468647286395797747561995888971739809468606597601904309017940247718422933478547715763754959239143809614818900575224861408208559804793391398478218766973243120691176316818251668364621824792120473933135609252557259132221880846165471557525944177089603597221749586620089867133274947056747933158873630417332982478888954086555402962252001883627859624923582520591360223238826159993139206634913603711765891991935625022902179586814938179731348822026266300919571938306829695357954130548044336003483502765292267416099553331557635526346887724942569114715496599908243107192631700225005584746635084756457598290524842999824120057168875339758802503881362268627352491056923226510797354065049570754624497107128257079050418961176976850152513582500339056032463159998288487207311701555418312206862854092486013014767322598441740322234036247884877207940278894347039191668292886062278593879457528250354491817154076305342396105985069709285748724503637766927882252581218946395531311125982817465556946666858760200024566572086752614450813854726897485993958286862369887274808338038506995150873588900294835473012750761169777694719931475465320029313584623779077490764593814366936358952141727738403281937698743313152758011884195939911073493639282576407108442466519172733869133738248083043947992727957944004636969400493404323533232007313804869183538618867606335957125569596827159028235272015536242992431128533334286291345121384240603729509394318842268006437601510076433113973806016106160863558353713697278252561773277914394982529355869865570988690129938299265025304034998289162204090551037017797848061990112093000884834251569784332742036909080522274764334676831273173752965518970278063700288990425497242583316631874423461973353867040427990935625253921337921038019002755192172701808333105429911622230493883952498544365309407493708714744906302242500014543626041386893977728551466907255276514835814469862945183926643282482046968810475919548072924074956437961283864281203150419898254814070900371036650764546657452604610574212921225497573672985565970938978014714880100863953703679687611544956004111890663025880813375495531364059455789492344774391489452046692142044660595791500663803184059988571423699251980605252038344945319606820443820170269816635187379638938525166494043005329118025431364993088283332775190713344327371158216637117635270341038593000639135940818545579702987354873026345976614415695124553069451137072829957914246252697549763898477034737038447787210046684636266826234892594252770664463585880799021365088227221601820828316253504793855308671233671318881929623112003719688967003024616909143501381858723233508926565151357828840168603972223551834756569488190429271785336798566789054532781260963438272085092862539611410053803097794043843343876163375821433026099281257353206252568434425909685538752280521534192402539352411268789726488109091290547352983226976041335738965623649878551624369569093703781543959178916162970121327252799482987016401793292860231056010211757715945545168156885240005014773240515047894864911294454630962435528444311188055102776299346820787225959222938419000161778591877963846124669596100047822192187619803831251577948766226071624981441902682665723876430561903631597114314145318065972959391294110868410093938142182599683665436662848137571139319252570436015464708918147388979941908429145325040774687078267568051715584264283078546495064476990524369734810302875990900372891163519656488332362922288190568912377036192178156502180787967746435125501254283834451755732247480217481277900938110862960088330832706053047906061955407952139323418232525125227847757055297866267934789311575601261004013120155660468488643197448442698340949119077437466078832293255398643958310299052063464445723041764824302596694855065109560894606931412312921899498562569936615760559518750950399291956308565641004910014076962763147006899328209933932523325397887877046574073709872630979163667071645170765904895029270975401196292739260407049565777932126346081185473645427115294682124265459209900891548347707722616216767821004067757470571460717870736974138460922074070012849558385493475397422544509045192432333587065736227024604814034103172286950726119201321284931992516109681571974132194671390765548754534720493660684785063957767570925577294852530293763256379048180606483705374542470879984864362565401096835064889893625298796153628332661320742430691712258136579620406709798315554864192766560243749217784563952086908065004764737666303418743509483643003017350536053539697803532450263711862984145149663564171561570761419825732591488198631012130008766989602105124864405046022248030564262320203342297575837726174483970297739911376890467536279574501454117144847259530351948777135701837220092791228591556011569524326218319705043781443789292787804918470024223436059109965713109555207591725294400122522414459922451235395813632549211820368785293549389696993113181627079314881547367908556045476525584894318455197257247972461453407019556263349292564191513412351342667004194213090731272481211794514272448306170492967660511965037735775143039406421966159823269822831461870997061822769560025820301440569515796243098208139795471076378437034189158297019526238071879366549081074230274558508931375053132207411093963537940670001530205311043764042415199894351688154442929125684892491881672857882689217750880302099630226692221542799414081868830449871672331440878107631535298386863903677846118149830729516981076568033938339406077942548019819939875771800276528667333565094596167070616783015835259273316495782110615302617727167181111099927320641061650915450703682080999735475165816915941485154642006817877461997647241139310970205478696983543425632028730182836792069371810900857494356352605374842851903860653122632725398145952126029852607866136584474647827840809772271167482877156194251095415921883594217183626346917914894544995311565273454230631878122807368561008894198467602849784321131903610561307552206937488857656484609299304483692203926574292944706023286038435322912599806533647577334239864231765679155267335119766329774426354012124714578061836671929510817967590599440615334086005736525171387814395913791906390295200066869582382463750860435152878077792860686989805786474946703044888418192531326187491977893824569462357426115522585925259910437468678368725775629042056717027804495856592245834737287803961190113958772026623072829951375326352173386861239723238310579517938922751752313038290495933670082755106132456501127134597181050289227086820735840509864194082572787356476408081091451680616600896079987401585879685077056512879414649119866713750686838502421319773159617336761283535684615923430626762283212091498275556115521560446854116634628507694627542178019510917147735048334119058659762220947011274060375155480175145680556764897801474711427912277771297587070946308481131368303834828591279199347918793967301934341771752819697257681331015115585262686608794225782177267151772737869413184841740044483585259344652329176926303334041722858648388348422321375429994943581828058140640194160229199999881748776739423127622390245111395116876167095064186851278517926253434260514213323846867835917668042274828829273266972373688410144638353006081158579396803685978298807147091818710217136799954404653938453140007407945072550829285812327080429382449665683400680828035908503264437279340950453569202838793703415536109698672340885404561598322248668559444651018209112231282168304391009195117869947561323329313368153996870714890433321147527801660257392998420660455670688542774828150503089274920781564274528591108624099728884227562701921447589861814513949033912190151898603506957694099874380864800091099410420887505132363191890509027878217902235152280675358571928051284406726464870597085861131838752748631460465643475903641788727261464590237232558503637908858714694718291584456416556818640916927910610994199496474968703123270119216932429150192031535465064018730747348970216251447323695583877963155020704074291496630934481817479804408002051759622247547869141988806937668589936973505655729613174423782450746004177640863598363146004697009567008920870985905905205931812983294756485969091384183443659288891606617925581142128319176867807712570097694263712370979365199885658307805668212733561730100223602847202733589363812823163547695155778312331654450822091247294271331239581805101656054737181136663011323380377482301877126724542115408960634248675672410912349812731318024156132030584553036084197309614566970396606139679147538375655275636326888823319036695118226310130768469531633927967094821290473487965906801991692617038901542459788758181442348353128734817743717492771039641453780233711765235808442766093840313370893376867347655553071871340266768247666862695832484063223547606135073902879082186992792409180340683806854828320113369623289323107798495957684077515136493030748546054520338731484461978987411462038419323188710841992651939779947593302009087105617220799565265693418888766643336586201976174430791953527009812360744026491544497351824084447076079141083187481646101732307747863050754479878520987573008917614129852498580411988944471247408229305762857535212025928536426986814727020491127383719108985942974384198362181825141731262541827643437129306667827607209542509009413999156253014902729255297215306168394990114929351536728900123601531244452315039562140417246225907103540970674381267364684005329273688541829755641094218690371432547596762969118942989781529205800422436075466438856049792087265390096319626374696076789044323272916114067085964638880167619197466877991189209280607900060354861119839082569001914448552722954224747916961121300637798018739310188976707081386505231956073807918497069706912262492046044025297356672788338997944331118351700687077091773984778336731216564133393297900627183216369938498699528869035765053683621062585774382978358371181355629408078771799326014690495690154838365174041374607477659689013271677627341795560316561847126167712391591825707853567872383071145591946746827804310491266569498044966123137514336714530170747614788567159751950279399887963420437478499443140342053428647001513613569208018456034931692697809603618323224406065057262509772295423748495129485180495753437462631052368323967405688905922147580216905449076549423742478687769821908109826293646252018022338102529689256722506282124560322864912975540673299906678312745271076398919615224739576005898466451452968209095173422760510049467555747318325251631295262753007200731060213329688669162330487667545062286599936971990305627437060005013407975435790977013835087868152535783709286007843294601896205700068444300124046943018112671883445613864172743464017870885847053670441867015081829423460597610903268145057454048590154105440368825612968829559356613389812306691289134591247309302301357077640179136299766693868463621508704655485597767507543698641850830914945221831221564815399736713199890409157097142926483147949212452752243371822752064992815818560149585859541316333706572880823030399956642849978917733663066716080189485639371948547022589977464392405182402819933854109533616859418780012704880043913751651655149613848854259006813928285511396654561045358025896814097025184216567940710950966559182675677642033290988195168505874799325809326453214748508369586737767666465257339799773201729425410789669142054428103328225018755011585497592759886942265025370394683469407159194703659408569470143247033348698823431978495817735470762970090725556123690977881941244813002325696065147863672135521632673678773236301349272105894624331372899020244741778807293691455512229474619717033951664792749282834470503391363812161795821292405684923888461475127186749436334964484928808536622461326509656061161702087620135274897732520435705085811428182847985209407530926804145762498888868515297122954700794303603382821579571050854745958927478315055863609655341519503426468899560859535792583133653315060625646878095943192314978123488464244714005423676805173553855058119198269116016343473921573605583310432516157012337807798987545069515250266959417707966752777932589398096237655534834826819058582625589571706805175377592755436808383308008970817557855305645300163260067097366475454083862207899700203472768358104233142236419183155069334841349416997739618411082036299558900753314359853971336865025638851428039585742973386865561592495562323374619267309264808207903421514704153337653250546451479563707398371916715619663572072289355664106880378186105627993178854012010130190823916582566292402883238297990921902948036074271211403137555231009601536930977172381134731730672134385728404649905570298312443054098920085177099252660473902615644784027423577961606217562686643308249796854300969111446256792862001136735792504644441101700263177000145042901926587624468143084763935424844586096116204822231486060624055578466283360156016265242061574188893319650516341063324056338624246624804227619384663667804197202720876532098889182321359918951250477481772428687958169590057256426795269191100986670553721561253175312131953638970705766144685541043818918495178034697527801240168097196759011129237067522230185861935982214569590954910019120968579129841194558429454842317080137453966889784430155888221472594514944441049813130963710383626627990436951658313984486955188655415367850506029574661135945112727781628970119485387008878154847240948571508055973837152186336091701364134187559351074335344698652685151066086591434164707397917335940411717335632797945760400853879058005479553449031926780860959754146041974235410903393760617996255782744126447634567507198664825209813619563080931463704126123883722622754057020383735722350322118953065010332292430310837531697937101977754787661807387053591844800352009647299793023543898014991119751105911181534101921491635911910247044019638425157219798401453139826230003885238482867799181062783452933712824925429042431828375039800596376083243284743401985108449907804469742347677226881257287069332138614170759360146623690032021421173788144577140179338781010195106790368740890819994163447495955830589152655413522432932569672240908719938823133496982154603873233673738413791583310530393821674092711458366097144815556581639315195749489923586447104970512063095799018096724796652088630882214017779848999165055851567661893837445542942636126965553123296791616675622834941939586293685944116038591438765133506599784751208707595718408907222483559955720575250531598902669388606119801377469532640975402939740912758020844307782495327535389454491756791898375096880774175083526063898103357153621653459895638662358548956357865635848423524367338736277934546225795073887727912172236660914038855392455889952389596302996709581353544570572248606115330716053000645124695761091112850176784463797315854192993308184791135365917235289316490082470907169454958188226067232347528401264377217707270405203167522461958186567744197239095410035127674601647192033235159467817940306111247440618310211440651906536814857332377915093412974781552003140828854320660420960346255902792878625364723549171339119046756722161798737211286149369641047580035925028914557041642553105669048738573087547068026923225629486797395407001926844514586258276106958928904596271406288837469323266441217711432391017885207695109134494562043453448654446627610521897470122282355997386041140623160748132926339123408418681895306152199071974094996245525496833764782028428961130993835338060673020129359560613759132070703219642220616606203330744188019470666076693566122749691668025103971740805765025296305456797874231230695517408906256664874466813380045454883588589941048056407222308507572476670884055262262868699642121489732671368751859206640398521033893214904377502306172312731575957014484417635989796387926092336238245796140805499689751804991063400435780695417084338767016784500937310700204483863201033294522202872915857468506510659878483102268444961857707576433293998649233402653612112300821404830116989080552080087384488952531837465752308646865603391209135175515804081669812744312986743006523495052665381616960187403917263956839875743362676960061499988873460353421551035429392025272635538493038216012248696871306010615872835354786444216485208142316552823612559371870066897291615899345902663717425010189009428005168801245643186183426160858819026350014234165573302319713556225537953243866326627703166529498848012769844986070994853939818049797820194686895107711716856882534478023091389277411886385497246327637910439871740582413045165732606386141592321957997023207759792978011488553259065982353339273455057463118084979593434949699472892516205164704852458114758580333231827481023486845319420802552361932168949228303509109295048605343654107414709180565324714999071212127443809678898193573934922890542867551800378588234637123655296327505889455901102712987415471327753646841638305377479721873295989928781279479517421056726828701631577322725719283760841152055283775906860946569334362081452404898090862945959394214965722153128837744215966159311491036536403200562319327233812125269100495557636298400412986343582945590541727884652381208562697941297327704219698789774360802413412854334045426678572937048390862539874244600866507549534168827530158989178049633333647803073348654393036713799110189170179049172072316214265345238644968289266114946280095847743771067459428707688598904401575791161295770168765595671592797638695038770575781653029885192386014444202723665078564770721701035117396094099855857924395889220142169513595723722959980064598335728584719913168568200570840825284306987079091209461126222385789586568102710728391871679945139251880112410378942524213895581792101745437369793863287866635000250580007349143858748552466584342039549360949101339578378890574200767062562069939651154643509820397736704474821623121999917604910849212037183897848342042098192031893803080262307079814669513175503101517854792290611038266411101692234564258973815991924122792677684830785260378186907618716600816471740253398213030670980247642565743067339770454113464257555416332183638102336404583143590620626619262909222120523228282714822570414543722082469433349359663766831533222289241161572073097401319281400736820730887901354324508102894908640184822990234514829283082994688422120267660715538195389053807970826167140482368497635665258976885623824662267668399101055541593606555910493187459519458405746975733826113547126428243335617065964017642373308721438661296041520824256686502129665615589989103509011063575981370235815094337598248280352674832503579397247173393350532313062228441275149444730532695766045648705242221440026801707325494862036324031765584578706986447221438522585525341822929766221498582707765847862159772408154704688196258507372646481046496769253749063891463345822282635090402618088844140903341976241297729603651154532173011203585787655419008061552777362708712899159572737190457370428569858076953955994370390749409167330627280060462493633655048995029580277686588598510812734182155745056593041684087339825429487167844179499402784745766739949573379052961705885754483694936174285457174267268022196302217831276026292857864321530868034711823369582205344410419358340841772086943914997322768216428262817811958997931695773695410451763901017690276251233432277593312841676032431791009108523191627638232064772277957953788595209355033272890859269961368854111704241838306491698019501910268181368004378532053270446174149342237547482150233335834714861813614861717417791858799233216894177597460042713431751697597701159240811075975471854365178518253233807010706530306892130203559073639212363394857113654311145272414365224043409006585779201346761230618277127258473216125543256620920682314245676706612518854769247063147708764104739023965931556813693483365984510772190257548084821532921833276716779453063407800582154059484095082302919349006123677870736635648322311188392201892217722944606560159967715919369620070506965326206920503005470399799692034594281674413347622862025329802036487066679063862230490576053429864566450301073933971693751571750959425544552901988011831995980597188123713284496669564257509632346983394551482700534561407539847865679190331241066257440650116660967112936078031489842879764596864385955203682934532862786941615978298260018721424014887484544516408253834694339828359006878799211594064344818388695764917460289322807876413801706869398122970834018194390109001889593683356501838730932971244871062323635528487057109647571344283478401592583887260221236449221276471166676403281160103989432930192687760926711879668654676619105602045835568712969341687572307049381699239658618249692985648293335069691688076922734220660827947256522140298622669412709221453182348113894934351417599262964351277627011270420466966296552676824564744392205135382311662878377015395565521766960023481153602270292109852690416114868428267921290983094693820211411751070508243543473491680044955832166793637234210501421559109202672284332966778723873463164771934136076404193365812027729580703728578277353940742604244402219192638921457432870466384330375985175627725416112631792589535820393242343545810429427147602253808343565586395458782772535667745424066653959217374970868945692688523343046393469941567478284798477623085693449596546475954966326757307022033987021608657257270268142614286501258018113489992169261768976234662302396306715052560871543481791524026439132068905474280532646645460463348770873692930122134100208803164950496360964910834894093701566401658069348655672258208407242639982936181680190175394415778958329688820939593503589489856855782498859085430520556320578761109257998559279047461700849767476791192533397866653434450118146124301986379363809650846875104520246533084061590175556272381066741225730016920801485542136980659179899710562934160074043533366728338084261818486080935739245173979489200567884252834341863226817269337791481044359915031753669928102573586376005658107254999815846257153959749349005668679882993356091922516086703958546488436767842089689202580157945634400419039400668126202291602059984959855172796374763719841455332426396661063573980070444241478311418627991014372623969857041601375131765727200731258966305488144997519205481513714077019042716432567105637700764045388554935028100786503914242921054074050995762031721681447620744215622963255317237521300087730594203539297888590273135315016848174172212644345008307467124125078583347161247330393758846599836687931734852029545837231331589129349883706561359454547461706968165018095035884448573035789830204876125527489338954892014922651102283008863875077670927580067568351505602054468670875214051599369839379318285727805922366916464522288231118410403013466640125260140489003287886008795167685616604500390645061091564107171134891881500656342209537849586216056928371403210133372711597703698304930990153478405917306086744728449555428494195478741050497190123792940922072339693478862398558557305452230964386639514140086178193701225337738926484347912599541760962681524646347166396308598283299257464708347482545674121374210747244718361815457758261399655383350837592344972654693481625798730622859207743465499973524730656107894446035407732974810922948334785166974947804664965739967349130847364234590642984638756654869711821949317616869384733890959376514296163842425769019008578272942339743323512457844696091335968600956921088426268652976963067533596168371122354345537935806683378187074166585811252091570670208221783532562951817555493064482014778025488572613716544434826805647104108560070420954759911764362146572308809270600699804271161755240846969923212411126443236465689539927549124234299589876366940766810732201207044764280342024149936574607159620799707098747900875388899124609903479192827305123140722118284516850855579921249535938083601667070569867542287699425539740310907095379249772774217757044983526656888110223984215760511361378442235929485360320333050859835763209932320967769606342065926504431464630362782992563303740630981795560305622371684449741656841994641375438010917748596506185353957527479045932135701279599514110317863425765874521035482494815232264632911704160529879038282626779505450570969436887960524680118710561645581958920066607409385922522766339876655233297455438356429687309486983050287162285835654222214831707043454110107255331199769932757221734339038622858823883508169219811317544736289431410012244160584325449162719992392730292530904063232154142839822263868604689515397542924487379698311203726665805962032585672255423043306513097186654750326355454399092077724041296394899687012777077039581145332702738411180343014935760759520894677338350352524813865208033043017802871963776802801588736892624374586131476125691600391671337078145880021160396130054614672811254652172516126721705794565082933090092229604970353432494597400217461201226427539030906767137679507410718860125274497519609923174133308182249280271745314998903781311167443494746265830991163823391349549729417130507811761158828481968670006882003125212698980228743268449523705492051761139073909202721102092585185918055035476913222478996970620585016752793957676904912470603140512069536964977945249343659039598746334202991789320235653467548505349208249641175003307570827048497165635036851354615199748095180983320408768201182025979065526580152489047596212808001630259563256421822950026974053623065330033893162444138322013245909733692479837424456074207322125856463844355534292386552836655157624157844537347026372067319453493306801920629771557899735386800128109830229572920229735950948290912445656865280185514995083724501520855526677012564853950283820426997846290522952322838335232957021548658913731390967368722164762738080004776862264584759295111472445584226263605374878163304652606005467156860767818919201209237936883029329885788802362721998743952789139614941237344179157034795001945424620382056886669510611283832264183282458583436781050408207219947220236913857209903621984089657519380771328135277040382448845375110725231771230729716479558163744765583959596311155396774758528721674350288321015983648771626695796237324923284304172286217696149525185010849095553191043689628148545933601216956227731470399625025432532611839941014557262483807229710425390253095367281190055324558442881289563019597517290974748420348213815558453690523511073622123439127393828359165900013538005635201821254480107865544818449412417742806178283389414036634134545700208202617980490731753812031300835088119805803320823937818485992137066720443563696849104255979299573007769109426271454609447292853178592468642035015427045855451939880684775934174108545014875609789757949144383108221361630627501414077925780943689529222930221266394261970580618211277727684801658119237028852970096014447926637541594241230614292889186471321058930857858888070759295447690179813672468326468279929205761691931148686926795848646800991697560742010518179178170011661074395858520544797454570991170460118584346615939854326697928828479395542729564622122954573358872024514392047767044691570660806855247876106439013134469578796386959968841833408925657495149373446125049460974088401992652985026227467414873422910230823167821010634734610668984180247615076054797213344870758280729814504568697506033662155584741678757395075017775264737398206471311957453211393528255928431759062843164378741501196587432729731555281268357382146869420775897456390592504207364376462931968198138974241734539346957972499902178607781532327911135118661258799039373110354600878965589539134784875287084474097912426787791721451449069804676498778971695638022796156955971099856948281521184644396144003836212334323359792608271990777380179885872497271466197492319649458753592258527953784611888705215213731771724850479113178509511583507448900649031138207136842829813554652829479925512280860440027891614835638674746103941772394996083894847940411600204185014363896570227921307080911690490585610171328277105211850492148704607963392855700155037226270475716489262243660406269504938686880728727982561169926658497002760447862592983107340463070445695024071495850763762882383595232764061682917292516397772802209656026616524590493839761706154714820327282625933337163309260406100904005422640710273839196179311139797486000391052876137414167398806330757257164531181385222505438478063567844222005124277855755013056587298543967841081848831885742806945801331573970618815125447450078859780875472731147713828099661791325178325411718536579763459257559061070099448948874136771510795984761378809095272069236638541631692653181766370827346447650465565814811321535741354146653458639049029002668927547634064267609467545306558107177616566422199988892949648483908028652735482082544902801655157953323722985462441421607686374848531263291058404944920932481978112937850139045731068204667481746589885056413693959826514056252518981380892673570183091925541294749608492833916730091703683862311617084585201847651658859258588489344675740735526480503456637682261262161017726673919929141233591638691831313688200235148960549120321710693189346675616897914915555344981697321549376830253013324802468557410836378894876275942820872126195532279944636351614145923205421283709613618584435105944757421172950918033845428952583633197027483927070955774933115062218264163470938113371319250593690217077223364027082505018181632501872706218888469261289744974760558246478008635377330625814706207974971993397003567847144070147598640215958735951577707067521970954784634518098899176149520954755087046040422636324800684640647249624812730767109579474985976345388554028946671440872793714674014407524827017540100869861195886413951827095154056204968928056094090923609258892437041002734696245116030409697882543631018255701404241423701923441922833097021630404235250564963545569734923820056514308691843221812812645045664785057021217515988254224344843575885021943642855451867740858822683595530486392589822779705005323319639420959965056920906975416494118667640217224232578716304113424009282947608922483432582692389003075143032460452175394912830010774874767283304014078208100745708082383652158645102079647481834844939078007942242403982027469315951241840325892244993472302627501224300654312098992357581955369708264947802886848699823481360275042423906878265444900061686135875258515100724810325395299796821155885053697355183155839039195875010846192211783619873285058574712019237609568935655558923413440134252707376647274223361819752882596506299515945636180007535617027234403879029723113334615322123801043039172172042880401806629572643664293438606859415091114875947356545335072148332375190421440974746038606339245235842848965508970885196385908061511828431425142792053578282475583151169916371156222801608091474322449358690953220812127888767697821931294393726865967308159042694830720383762091815071812913349629114112112655908719456463711249150774060658102415661005676256347340555945807969859970587632075688568797597551720987830852629344147516160329474146152443728679928507763288052106442593834147096567468037005053829854456461775983702074824255778060528757792288751961312533453284661394151605245571240207066121564309704706240075373941158577241995415143880551188457355954715301119633109462381200828982280798273792835657650369174567796985311472259731479060193999450640365806811673645832550993845958861148870537255656930536458287434337557770199778501287889408226782058580675875902317364554185758428499915016020885912994632203465309271100485214691961888342598693364450964139741289267573112832300038770628398731701202573072464820841926721903043363216569930952282300779258027239352318231290329734445449921819804270674410685584984030634645156940729292500905052269650799360016934673032753887358308059970779617388392128413893553548380621037958563511004942529011106093185682661239479254645371261584552960318487685870247609236593527786845782325962908004442296820138020664362841894386730857700048897086133972040779539867633885550597958821168043145955107133298866633188734549947974680090369221671121833185950171096617036335326295640801022669823450158938984898871036151240114564814534045090682509569652014512114600199793084202544802517068536974501671018032303873584876672168890698890529539808184773476178175421611642943109369102822584835555495836138990970324461374557986794948610948962064162689985144479798858852828077486783327022358277131573523739808799884149845648754598924563053008761479313179155876248324014087604416000333634291518677152420741703631978824483902199358535073501098936963824235285510630465695263759331885894308133839117545816602402872188666059080605445537721614392237153671291411211833108729398044943259247883910878159364768095525736102384296141069217205717298993756808256381774552939065859991374051443004400836876270022497116225957956564398688583920627483777099523331979053567227496968828729587809796687462565673875037991746804684127977460527759062130187182226988063185349608776827609707951235738685312273568589336231683107342800160785003535761501957739412872963539582955438955253812980502470018123709722709808752598803041704887038689252966371441532569602600895613108960806435751943747175845291782227560603094072526546989939637389664572103522638906214871420565123946975170463497501844605293930743567456262841340230463330953179820886231062200719633901743753403870578548120985027692075894764564743532366276199520730071841988426643156268493601373004861824932094137251766076341628193216478099499246048224250502758918561501475132975660598251729459284549852947265665271600514075046254219780113057129300939873035251941227883609852111875910055954145804774558217525382326956162829688673582023371475509585339352179760906872582633636424385535064135070227040982206053334497618344582533029019725973101161414481009167080962744421262391779308925641845885159432239291329285442244418392839149262785632803766047699733404969188139613263171383361484165183354781730690221593533329292597013423376412442463467740072665739608034737085807915509031344150513316898363635097694367487286395823031288044920869060980964620458077189091916695653848480089308037467527458519740120465332541872539881153957171210741324910645101132959693608718136655239659330134937867854892171502115458744967380888909574285703704243010535901887796123137154929476113231606852534144146097653325609671453215464871150838419256201471892095080692080120982412178453440357596141898578443576615151391403652663819577246846268702656315022981967008886835004293923456773820253545894126903043531474032172173939602947677762669493490403883613028358228978414431054748464290002727259359733097761423557813317811872765130000424146488003195378326785699606335412762349144511003419243641067561538776546493612941823265513317866419879544368673671680118253716899329361856627053395632221396204129144871937375897531095536884848465606411331974839069585441794534138677262009589766147501647498682028345447133965366965900526770581875962872210833232975138109208585395126613587057703009984699043374040129598902625507419783082493834226163410200795324145845686586143142788239661452991607163052085214835349012630063019434955807725955076914884925778159684249286974360718814133277333174787432065541603317136257807099847809730481483619815153341991308540958324845794970656115967774981305267241258626463268137299219937432120059644310016266374353199917287665445445155118922748877408413191787481073414284617956957491281389500099684700418768101738423357037214022144092003421933557953783403208919592516411978499271106313072329706126729697098480708455620235390994800164889963888372463479701884180530753190275889717923251542682492336688393569702609538384537331927120340705090102704420870162371666560663487807616452641632758128519666022321464881525016330232574578528770976214189685938012927402502863755261377555554636290209210190197852631722174232681071967441231418315107717701070773218568298556509447930046061379949434053005112172956431896292036088150123040020207276255189055023483140566188496495972071238481958580314358428696839913693197838005852326341188135024430728587442074330462439584245030346455083497353045795766297660696132193073735515647015437486996045180355730834220108620933967012563742866928232811376298730343299931150171701422756245160059393075605760613123067531069230038473392068435239303674735916486024609081759864186713394260117417753485483505067824125308483109801215426534504891591915725800730970424255414371061785246162215144200007064838693708680421760520734546076971271408642548002685774413111822954216084113333773546442419731032136537718503825620904144433402981819153491645764556020980891362039641463780218178340491103455581439114684215997622675566622802978613981611055884290717838783503940008994711150974506835381698151664367456495101957373107852397220921189406178122054452203842307136554271470966129034544436797705990517658531267886063834944786054148400588229525896405789553398202692685046219597100198851070779256252239784957004576341264914837694482197432438282468617638732718297150172262150329121330984927607023229251517636693509986363761228969819503048556753115434420740977395523995798278007644908372720913229595308919960863223179530402968048560296312767291196604926589535259071081283014353115943981280471806299644741855880982045571639792047776044104303673368270190605109193510188459587465212271545092230887459313220443852419312466177253708602138709898034801179230163841434816577443141973487780545448917647544034552541545739027620035602089899096403582698811447265480315382797490137121625166508569052144769914550497201869128715180688822670718992799716047449943690604237475970523421237356900818424497511565981230117383546958163648105094762674150160371545517159618879895135475515034170232864255876736114978931917496217208130190868940897608970414734702501002143384217682468341960989047849153521247508067338321635470351569882022232322079585720306590611807696716780374835244682772137517453662994043179222489118317462635143105045824227050258519595625654423627622766087624747922535432012682259913207956335154421359731009950220687160346761515851979452771926999148158217289922205469138188231208566682017395264326950297576264018584132335659219942633753079445608018286469988220351920460876714454028283987969779202054074560938997540488629669121427887570716155000791528972433187825780125364495002706439874325670615396499595648048342288511014013543662276258039421533758126958139614620889047952321408475083779316915382595431373167645593957205618837213120622113460165625093326988250345298216341163140408457558011752777879867261114178011001258519472770715655636582881606836727017650685097325292423598055515419300354622154610147745664558684540159671554331738343707730685582450370177555929619472937465031991411649388614492404125504978925240274440310349964666568997731610430817471301451504715398176549062497633301656855004769548995001911589730347131372921065971583045381225461351932445792203858614496492956800255711114711852320075985297352420633339842777990236780852721630478754055296741839500936885221086940618247416916533769832141967696926114789852922317609823542640618347185494241643609499989496607811460726276658258755125782605047267994547020358848430059882105589165440486233620657588572719098951019714694852578633364968946207376375562610369434447040530766877594277807505145823094761491566476778014078317757977483172068217127780038114487505860998502502341138689532288505482532858528872399769268504097072655043339792704769880996702010250866291795168064982029595720957066457315088259988540336470677691124628603808881836671074350028457002650895851235592367568827336039315278785200123378875937540772031561886372943916250875031513063924151960571551442838265786501854075767708898589930009840568310231956172157642446426644546416959294489708397223136596029110575686627607122218156822911120215883996306075979624910493417505888022818002142017487971989258537919471673895360126727399395973017092582384574731169432074992071035295516243223820003042652000421293994364166110249951057301094558450116658995851102686670821682803819877617778332724326995734567622038841258000606340391804463530460820000871926384679699506471901564992092886191166232264123384710257495654871894221601929640265659736507645972531882830487018356441360678449323442052656498327268148113274422060054600578086519202461685307257656039635869787706393642781613306285488102264484755089289413830999697053633909546555439030818063007494444571616580199075091039819862035951329957205403698929853434322449846822834346806429589010578041041282043973993000656982011978413878487790863548919311658953709959533839119187223920230699694176247051866547129769670164527891835216134892761829706794336977810014675095709833002226651209778593912809201093881267932719885794391757390164420412584807004034687212026464538265754457801641168259828483268678140955399953279939563923795809091125018849847550456752467129087005250411725616542742187483816555345348917835507067212288723935319226823024287991221296085731375425705907909864475194535926042525929014599800976133451203889420732447000110497929549817028085202055529580591218925230976551051061429407472671018409940349387302952619609965469360632555228410307201011474035297325424854381012867254454653091340606052158844613681760197018875214123154875808184753724253263402633421510515058267990212794404261209507402733256896350982724830124723143651889795721055657921602881545250840534509042053284325773899929901261117585700585674250919479257651136262024003086529194343712461925362073524275254839705069595215285739698496297667408935647787919423297725502380396551452714751559681001806093171440209094841528127598303171879432221446249166045500197202068754696697912042463667241852096292086238821334136240428377743646712650019279311202919479823968387297351166831656771553551615407000737438014479680234140484885676540203889820416260880938275502115520888587464033891179958039462345666155698751416075656742181851423188069120111487029500793725827504702552010587661173905452785190262785371250185739012616730870236559276038761350546917566629290896829656022829148596258921492573191069602043315465949225215661432286195898640395208350489105977001735115935802931522733362266053819096256854561627692982078987663548143174734217269160078690069502932597663229317661844230050224387731972250119560194056420804919993823633059817276444845526813759491783405146253434668206800190693128054282197418438394261005381757210437048853591591661428084429915167831284923026077140717562764214147354490166271579485556643031390554014707977374063973108677876171137614312439920822028120158748301364619781583293731244113509231135227152607221610796922666482617312302528813672018602465965077673302977897360691711679877180891163389220423121628436319685789219862178106398886021550335091647408417530266136785222592932601442250836225653795348668785555745159405430483775265485052967273180341756359542297642854841205047966931648815597818678494099618565053146998525734170392121588869152223429404682080700362013865461901927803115457128836606303677094347389729992967725994601021898608397665230384238070958687191516196804626518233061327581976270696783336471983332993995579768383899879171937035836386978651814492947308708121274371303399515297092143632115745670507336923289563903717467151788203288260060080340216912462630297226839418044666564381391646163661993724929652649926566250086750787631478830511330439843204088489545874958266499722898753712128285870935463377909033256281509426125763912294803282380150875411724463316761173090894683143977330521635371058861127691398152110804626829987322652885639333257436741055270051422825497971969957042643709110091929421749665861681764780359470738775355040327490092379209138238349158828499792960837261045654312009432337778242073975481303060511342725579657301465489532831168352327253383584286937176882981001704480908575740913791308055740967913471628642102460737937332123192109697802868224722239659476462475887276651897589487974053034572874336106045809004043147296688810162280883301457140749829081481341572312539779692895213066926170458025643403680920081008502211408377391533444212893146412312042403970465499898728270581799392344645137497559134874919372605127506884050653515013041575361605844980583702907720032235565152522397942031925250303097467396528545765828527909505312940969286374710843937581173449432008621383820593539228607517136442633753413436674936681292359565614851588052260352383708286022611747234717649723641478856706997919214815382514277856257433060763158926182108161036094454087970823613544347112413393583757330825307810579254930442199780196676963558688628354412709553976173956404172076905266013826922524491136513353824968464537792692894482104197114558393065692906288323575267517007381541447951221992956175912192889898468149253584554888317683307495555310076423164627370372629891593426250063535435685925476841256099832044504579123587887439810292267956842349041361119501410280660678697550027670157283380940904621086011322228129512330135573515561562017242637293136776995321144341566408433265343909179879772017666686997330582355074626017125495074657855980375564396760680760375351059608884020334157357651681121000892864468429180474361076475133119185992768327630149846404047289300250094239498435525202663479539641324495506955951972910530744265258451726996881340962576914857466122622839783713280019442527367568499561739931046759176360239554482340761588560661148948065114146355437697439328033749284931209974113582084363443147320535647247359304757624469159348701066255061287465673291614211292959987055059835910464516531409297853708334089587908652712735173185055387787303675184692542725564737858569725241426120007885208932532646486311710577115453158985590172338123838227944263565602734382098433952404650724140591417101381048657535636427198920230624208839516927542230410444753953600263203907884079759824223943420721132324383055273357549517953768823225862897110890677193400725532538751864044592256959300049292991528363951683900781590113279044649214958234578167682342989120063099969725912780345539317613998776539581561755152512213697780268206254983976756404708688517716128625956621854438615579781601555783598363818765724645268508712037094080962135427140670314688233869007586851403115405113930104889315467870871627675101753726198132117822023766213819050174767381192782363464005314885603279450038521910382762603008395442648410143598180145662609493477230281653946340319412938318535881900587665528251756695704211294777713677223446495381841648346394893301512070287385929165228917393478632478145225321940797679434387823486802760214435068756980483781153466684712002992272309962707188186565199372684902580192223839013802091631421968373196964510194693824000289962601551005142558637079731968352615731672325400503577486342374537273459483339389162220848512202748428382947459332485249492154873759931298155364757709901954092003214563806252549297843203029017086884437806095531860491021148116108155937597178138412152815977129818247891762004778194389258969157854630393703443423128411237541430814789668537903134062378082423013930042276864592907272924089069222148583882256268319845535690450691425519201930694044026551812429825816836260800246905803499971229110534003393140055803595787305685534368565274051324406432518737592090360962108713343638190843337799316324203598523560285277874933482747929181457335231928854056047574223226955768458547051864710099195036742767672155386394178463012369976253870096546854726367539840203123126595663020124534005401276237608675062366819271819291926711517956220111344633786934314600001265365754046599310922120384959296999960504180576266031782360256120432175495795676902517284386961984529366444835760854252175946629585853565039915775070324488507498223478506284035231914609416841995638807708029817262557669554681503709721696366738111201804210764291620665026605149370828064377324118698944129490047713908930562334114587092894645193880483187358498298727790578453395698090603970702753667609546758578052185719105724592360419979941108577999111772781313920351601499784034577007360682925331704409551103697281650898597706536621708546003379842391276506913930446629076398086631364143715807877510416966685743686903137624803684182586073414502607397182882984536103545438846839840142833301285797104833999105815947899091732552516777654398955504815672630205678662796448282088665329686767317551025045063202183308682867413947320294915131287145258188820493460162713678082403229852437459952033259091496524252345193422390045403061082503210023168941285709730292024593394298904641114959434804015518309726836572128552131053297331651181024903306408977799775064475487358814744806590518955345987955751915755077431558643711614408642804275245655547112469509867516059787244585889455458882582755563932642027813069583936694335641094414794161401544546257162055929428384678300405608548491375789298357099936790119517120210526785148484385080828567158661560890202821614508421869361298247113912496001491327004267474170699775729741887996969841898004920889928181890844244951632919701436846929593522193685713361104090058114901392439755321898182938353668738373356439026949994316919908505813813178087205927959667457101860091899204889477125069736775411797507643385162736087952602576014296153073205641780849115497070667414090284480932064613136352188375938886235811799278806123348545405094725048633949483822883195559194564044503802298429532863089435458108597085408350463315637644268367567461203426384709364007512143845024561847696305466113336618071162452032814009369145528692442533147255100482870690072448405875025721692395599211453625209495300337713573480562650247958686957377893364505546086041713639841168220463089909038984549360231465347362972401008989134696245861646857509461176440583659859220482090416908140217293994551791181972626655546837584165268896454936378307114551124172427401101735388950972552582564631788090240585249326926961942571396939768454624793351284392230210895737177715817895790544279154934585660462856043479997698237733048031056605102786888339332771490827151377140203878888534838335910729392689130506218782181072967425636525062991810658860221757863696502298381635863701181734593848410396224323751026737280148554044894108428326427051562919758048627822362024549270993180936293226405037159122303721431890365541310845760696555152410887019965065623007100599653692893767837528855379775741747739786201806971775312795958178040419481103067624854966371515866410532415491188722030714653635292181882678317891068082250786169868147245807167579284776781769702653033588583568690788402820483413698811328799551083616630480928807185584313439138111043261475123554993765294709204717744211854258265055412653952849828246852818808564302908129745236566644797303107528771140952803025502516946864739339202147174842739204808524704993380756565848770813649545303116738677441230208486513360854552167472904125950177341815251643033702413067917261706640229764416539879729661899118722043422749180118300700154970461001003884731607697780264740030117832436274599682071565573898425061484643840747097752281051012514533953443334694555076290634572151356939434662310506989922553101007927534384293726978087989036710856682787618280051920774914186763881569070939100821781537990007227069948506011616330658799407567301415797448481557233661817241033155860069534438610156032219455702297387098980549224468687121068903116533492272656660454103342932017280067547757732273546524566330939000817618485156168221895436593716571004068178984861788029768963809272207561364772888871210965266899785582107840820054492533992915342148097959621860778460275910463641511843672613578508532673794584212728098234026464516874150888690008709850924914845055672337439249741293645230650643109554150265179607188311015128242035673719277619355405179203517344852637871202907650662009054326984013305468319072986206049258748574246653612848100168549889378295953174825511001182420269648666102502381918911805401805299074163852603593710409613065508805989593520945447832668919437982936440921958435045107032268092426976629076681794369939930135117548921914275992698503330207494379299440480318753621282475904291870299416015977431831019177696877823060889533251796306047813229692609473106879766586689148135121131688443988060410716247408451753946838036029154683490641148533361735554487697883901866411067209683097256729586845903220068997455634647781028348106793945929271931657133250003264742383681037078974599312596519100783403132217833530828083248248744177371175054104023148945253861512131976287256552155516247228515917684556108587953502525163167518936163772955093575426357943808506601572587052133107523483215850294292488821897848595180670674211154854286405140292726166994376675511772544767209948543087567005534187169225027243347953814207475318357142635993468813641720901496484486225738572131355558786507579535328725196292552353189065930791677458261483751143487183640871420637584265081007226491185647455768383403353494290874367765846517960903754135291670863312401901632207864700455230576281361389517882762535778414084836297501416342610738073675326198139416206081141640724823851085900583983240673844499694421452282718353402333887103221928459841153901696084620729350853044744661900193353384201446322915678022116543685169662440058337928648738392281245936621426767941744205751286357724204929820858044749176908546480947950901297597369945873458779417018278251116693899270413439252400848736540675371089481379777963069212815894944615192280450799319158396986890075944654751952064348665123672483654463026536125879147079823773988240458761924494228133615767756793843503567481384529096206720672508401322043562315704413465076018241954099126229476875303205679107321073333971174312233547551120998028232571724091343606091013855112378828483251495326078913986531360306278051944837115978878123436565109434271492940125046066949488600603585789940842632257704798146914494473429413725781528111661462046555850627704369021426866348808461736236681040147829100988353564438336828289312249085719552295670544967686417304916543351569773119769066713601176086398866988876883668842266897817681643713714811917800093656063547792402095309052144614650355904919299094834201919077069519241827141567211731266704632777648977781033469831143731817995953309394235012220312951224520850009941149633238022656745231266480218896988657643240275481720778638184050039777424264275937204547575583766031290870728070091382728541536619829154067749919797672693661530951151404108325862591963169109698755806202028645683092691919852598726735262750285327688918322746217076733283256216520000640623267572879228901484115741573687069398977919360667014394933796914146930575039515249831221993309344789879456229092453373916842197404675123330021964968465893994131422631696777178882326820836196607048125716746524772776291474112442292127157369946596279784991083238018367143291711473801466206402508886710952839811945314023724175120696601446808476152785788448090895175147203245816914615057157740272109014387992756450710802935129844409307510556379258252034308477291839213173336383692500510292218505992486660753986619329087140594997595589523927180509817155052798736703183694178852663784039437961313184612562641950597616872814754077779429698347454674517879191099128907700258946130492311504044693151549519056025415392119101100124566569935262735222925379361260007992857944411759805114798993838633537030232937687180864459318853960434653606016336007319482407331980380993961615960530675361697769537765216183238754531085752887048748136891810335133213658948520045564855707402734373607631297439133656377258092848167344784743042957160176313731887720950854885814218642416319377059743888560679026154563848844628587396118848878417373803922421703250582412961797778030144736664279283611129570664558506802921412341445659175683778498110304335414308477478060052070002695566769364509891995685670869906225856117738381350930491780627135529337618740933037853414644153723047337076697366962499443790268970839167542150147468476307351811016827736107483143565442267488715583513081823144528127589392834944482687304734603203723271840684129956101326683868061084911982189115853506219192402208105912917534196771130734442744486251284638737083172207867852466875199671084602723056694576670690510890639070365152647536970983224435214515244397787142003332160003892793896303016384686484071152694727676308699575066143351353970625171042356937439075940624567257526655013072172718054257118385482386280332585091693709639732522763258198461171489977975511418810162111027911627201398588040539422908473698992611861390996382975815058425707444076244238638775372405099401830813501090153185526915162764634022856834509168139550585556246411756500659992819525730043326765622890687533844933824113715699237418366211337442019661527371443602990752043631524484592033258757571785803057277393310063668089053579460058154564846489615619131787408379006647954235720986078043930596003384007460518210873762258622356212044132500068072397882980403026853878183892653862798491052618267977994467337108986036623931930363981912364447997841274521262966940141521711568123412679858161133659302634659726436255034476574310738231690083838385404774764340276415297255907749391707283621394187244047422623456095941689740575720318255727895636255674728108331680463880339409665241515384397914840345540003728606230938459543165515487831962531289334333877162573459015107422670538297985157398083716921026802705783595258841668036531351038403386519862988055740631150534332326593987708287737825119221003961653523586338760542268606058025116899640462144115006097357548350276829097090470726250224168077909917140942993514433789445096878527260039126126202314104601286076607079823201665612888816017863255273892709539801068996808146557126776622653010684665999420109906552898772103784149816305629985300781777886756338518163127349159305807409823118798837085315790798413469009089731279130761545219656921594579050614852759170220892111340751378038494113897807672052099779126754043805708364336034061290594786948958874640720025819219483552295088577328135264004598412779648481202405742496354361707660054347906557894245957898165500342483095625746686959912417243302099302715557705322133180798650971056476166895923767455225197269191707040809033348982649598578345463089888672855470137129771385543766979154327237721478122276676522171162001491305991979162693542172012412571927226753719257748534895939712895051686274924337299729294415872704257095277521533588237686783943783222773076220944005019362039001869771781037374082168337942032839468925737188562233011313889698709509695695190345381001204584267069357483491053196674186560150513263271754907156504260033571400886483323213505806562720553272233893879529267488357061005370127518707583818840557426111373673564495760488770228293315773943223807663233479533354273407888057511300660080349385612198382897988474400832478892784584711224756897195911888870005644901897424965353859335586835905776012443576503404290294893943526629798215548708387164678436169006454421463153212942735213666951295425088651890593015321334860979607100926744918754193699946916106911602961930277559167199757359819484466103174095209383223334388077569076610582816522328101067667757223014703780693392825739735825642372836761911670764828462533111453390400282244041568599282662986016194984991698841917493735134266285964388484786123036908008001636191288410726643622960627360841565174396790728710415525857528558678933768896921828113924370684412865089302461145661756849304272993198364115162361047369307225215761618825325807521165853235714038206135806732246819689438399976744278440691830599175467664696085838893287247598676882044671701724388139605091325836611896132449100051012879403955043453722990086988569984682958427516716600366872984670543918767781664271823460620563307550502669068663005860289578181724462779202547682390906759406286288572146681917317098854406774454415616784528993591033255961245858644494758661921868599130823228482717545168466032410683541461484008674751085151021596419649940293246124875734175081781257671477742370157119077570515335952784487344162071417091082269672661037861544769840848940109389891926735031563630452648086564730325895146746458089609124834341189977493110019251570067129998731887409072385374040402008479456987481062537847054424577168727711749808767283520575084667057553936889941480236754686344399160857535112390883408830372155189918387027993172566983435914658971321282166408169121287107532947244217828603839244563397940705147486428648608074975522246379378713696043326988056217800621957960258058320818952468839673772686450227978072467121761689588556312771614531230818413195033005247415063018252276950352648969328501374554888571976057159985124935833297556101657394712452069319550856591675559008515239520991482652401997069292399669471987479586836688705753973900814699924462462690119471451401676066896268990060262104792719357304499897362735787587857388416478800140572371461461608702134299602184765192334781319898919992708480371757596458793882245221300878965117017045267663737969762379448196616279826330570622289185162201376506453603506435950886672812888812662147166353164931785670476485223021770006832766929582744793363398436333026713370541877723790105241515818710649875019800406906695233273856847223876698886318863993475506879016684291178449144170501565209772059807700027047438166797752958521493857264764055921220944348525703877107066128133686016999101035369361506711698102941449908852815051534656666305699426039103898958296874266622901395301692885716657359291905090283340674812636331106912788286246101214518044089903954626833196145138610645791411084124837083538211106861900544455796303849109183426700307724317289544074520020014431836039831506572867295839837302329864944222288200543495988243372233423324852346463576462316269438923261091253272967987445948752722848433847114451712295994589605538476426424513407638907417991561917415811350247153352730482200590653916182027141519751980999558856315346818081283267518198668064155106227454067037082019675194866855381032252827501861818708431177949936791889967365617395886084851947926923871618538044014761720452304066272412966181208301180678293542599169121531515072545506436541211094398456846155254936297505650308187681966594597792572857981545439423596749864684690420641675614514502980681106306089068269712045902223662687016164160016499414393480962804803646505265445274627884097989887226227603135584827849939536221402577536330307409111630067187188004314197499481991127697245370024893510539453433824297547395304552211635842779088647848583820236469141875279316619009644459456022316685856928174640051602346798537723776025903153704841014396079975950864645958783515757095364910613992186296452502983205455780394555913942625143022444160039205064616235766966313278894994877218708100261912739437199141215805569504855074257626949849621825624588949387966800605517339356208484001538687034820734159469453193985198217570155510819882019615211295165785028344286708300690516374575736705060642807182969543550618452773522983198833490145635353464722597863674142180417487853698340552754691254867786093100416196800465410242227721260116131408770347663523954421875330484483682233692740590628038592657705787535557420645425792751140985143172488527500420601686028240970866520209122183608800271009934181791917621189279603553200978041066230971593870497814867672933406597113493374223927890872674994893616899112251443763793908843531820274675781126231367658664992352665862930364325072452140680968178824033427980553534810076358653864378712943981554767945183381487922512798185867559234801860483870334745579056691247975734286118647188493992232019817053099944955773286960394133359422994173215909678198645559184541300712128732778135433813072425669625652479668747347041140456796074172560757197878539150286563575999424158755949659948111539417829520547025508234271585226035249701617242170728290285477932824786899224313360679884954200698306708795927252547091256490002492206753294337230516720224160887477545735729908858551498804584527515240420968556993357316674833143543407419122076398700888209981406423803888254940440766307368735697348303057945150206523628411017155342123203739256616197931803929275962928718205101292474959441096630734359288339067315569582048108755067002603384912146260050590914322643740654126053539090535718086549075863050294589727772711198401820727954950048129547968196419362855777941724270577278295246649257377270028521477839240084450625042030641055004826001421311762022643460730985310487239593715133376784675358810981624505418999753332010194464600817130811335287273814259437405362713193144131002257673260341574310110607982617685807216867340900103264929674591170817829577633100450125323346585726621972588809130701365964237070839896045982777161938402150308417989775288808392512818603231239646899709614802081628569204739269250737016793777335217118910640045737688078270372651201830800499480181632007438652015915572399882025103199567477035154543701339000765423137178808050176105086113490678377056411339964165465510563690166165122185885158604494286751711934154764931283473986902973897134150573195616588864417864280874257826180212280776888477342224402917748336205151335455570780896033859764199473082576827729095174034737618632924015672866385804182162764733030151001346609712669553674312340621180987806938268133579520172669050018115096062383503959370824936398873664921973432621068657481075683670517986658867149910555649734121911692352993568350343889895212200894152082041107211117934922632404819080399297814633103110504543485573241396781209404225072360429112414941517135541256900163494108422835092618227848205866814436316870310398931712821964727365868196245143170985779538801892614005416543839089588183490091872817721221719808942353591087862438008603350832224227779634700712129021731262815889153319179859632475485972587798350945781170599627948693698210720215818905980207146230305680599706159891769062269775581128116785494095058351586969720885335015736340366297668276142555041677272063810531619671390675526851535976996355102368615864416254911224488472969868340162490353795204847823217255468182783728323364036751814135734714461924721914328959338376058159748021997432574463034294494354911406025329252963528520886567404583244641927627339480425292822796368127716615059371748459293939849467296603389640334830733382432822500942239088338577355848645153279173271943724405444536385143532311518225521266950219648315424811160599050743928692602591162831727269676208013045807142472243090391527234260849236041517850686402428509051435685527517706158310565207722898206874723553557204563429843005408355259492982190793439927591730528256428792917442932084875742605445718583639146371739080491390119806669876464631914870044903245154496366565622648370502753636251733977204828536366928863959255914358766407005796376886073721528102801218646879172704607199180000693955093241698876113805139946359590205806375734573331145876587315403435294213596768320131147881142961240613026230465905108266897965772576276690490724777886234390763132659590477795706446195516687649751616755332238547211419815783899951680416467521011311838317259374855698077392110107501836238822555992009983634770340310536387910107856659845545009833742990557877310538479312099726708684556576219900845542195259328113890456612711478709247231751977068037947066001355801540259423859890664274531752467583231644569830143826883495767637585107281210967139039593035885176099063587331736006037742960307889044541862018032538596758861147241254943819176007681262244688185922927099771204830999602753236811468069011666626214029636556758264704367796689022783552441072759501859468657035640817697720175829809649462775019110428121447864199960976003261689702002683963516442868796159144799825572214731594747237533303245042685263628351482795903667369032437499594710895310761081487144069512533920237572041486679400526079267993042644689730234055364911784098927410586193649559710280465811288384672646348489335452754489765074822436726445737197929170593857118806794981530554281336301699515922951275457495139519924238700766205135683219226013659512406920005482495874289449007279861244689994008666636848583544283861165507146029636613179368093899613925901687957117155716499351853657171826655282202191957288714134501158058405893885303445241761668072536306165577234255663919120795518045642108147251125415326785438761973057071699934599348117214619014891583912217548417899377041940671452141524657206199411821327015986275394952604931240773626791550851880308829189711528761751673562669529289399290888164993452370825670511254617423125239405433698257231648400683717117032239115332960018588331807932839915245966775151506351943167103597985197630629136768578695252329026106787077448248302324776168722838903338732445697460865366552156576762917762808023116464069696214166642300514349635491493542224101988016662845221375206834484159847887981284872687047509435056374273716031181279381528347488585428567374537574130570710191232849708489277221509438061854283363215813799408792734027565982157192940891618581111812385145291058287086635934303929312336782215881554091509894111631374612030128998309511698343949464442669492648608640147170765432761482371059525562496595649712441886509674762740413612557580384844454909077165646784804941254295610761315919364035764116452709705712714653065911850498862131897708194178544787594438240433202619271985793930410812978038011115962544304708098447641596342520971373761754145029969752672235136838757953559044485413867194981841385849213058200338475995591848971752725651471492022603632216366795902008481598291658946892241983383152309042479346208223830103069494637236429110850712911552603927479514766425121626469591208931017569267293752367678398714603368763262015832182385801779275872141425235367921261740341808451565271149139655425451578302197682687273035994260661333058475194343297257886613258310900409044381130261194385678399431090507732926230261240063459004122083327967286587688912910705943729028586795228966855050157275655191282605056822341137156564457452693423782147192116917060572621031098905815987204737364252293966336952425941464202289284767613469069892841074743646100902282293615331435895584743484774200797810539475936173630108287987277165657747581682539256255581703293487610266914297460074625803344495038277441320477167462223251285705358725496829891188086443216370002115195698445348762289986601286658178909330648526089419880057716276734077732506975093061646005178250761252350468217931747546768570898149511379622542313031196649881087792459052624254974173143648373660945755463980042208265138892884009075735834253562807685141786948976775347644425328809861837009100808894696256562034082213589940679286256595434624581727126640324617163056390461593351464683869725931553111867305531736520484948012785138219482875755140600069442363923696081029092589792766322760119836449653895260349769597754934305265514616413564434360576782620881975467616172895596615099213423733818846787417919864325719049246706180468215734109521541717775353986796453954905483427233190657864600240712085041906009463402802821020432983195252751026400534839565189740663105359310468762904979933877455952237755859976743656078909530433367058018924813208935582277880296525821668896209016180595764695091630044277735111960611924217807015197107009327727283352815898717634581725256563058804445422208047896726425480847855248504678302674964272385465494826572301270744754390591495965937357857675245811749353885339926060391455062436015719394079836187998855947977980543936079850107184301897279740305621543296917258986833300444115300142465355203713795694116051463888521941316501742445519743343096004507896403741079504680340836153993052145962216434777367911942526527898752719604301709604606148834090162137611341152661794039715784416146921820138825324324287138541489569009826655956235515805407488462296197950747611743568171726783377475992166306269717766414036031259033388378705106821367103279172088635947467308155828802001660715921844639371973983264580758733423892673701863497747443666676971933911974403019427893082088312052136774006938338390769229116590070608010140370898357083027463735299782958537980093262320927862666381582371891587473896953329557148370812125315932545999065897250281355801794800572273432101034651212375214157491730931467063652387573436279810976287366800670276159064621633822816423144651263391554099880192236836072587152268700484183192910378359091993758969251747921379324168482451901700163014815494858271297688736369621962263830059937955592326353372777800195062694787593083776522190571356642151276766223928364788693640948167181695008578730752876749226927363842577251519959837894072890791724775369968693593632524643339998416919724596333176832561231840606408746918613706276131445924825582235768391375483381722986926743523161136462901769975823935447052750214325596537572723761407451194774351290048657155223664872821263264318075044440876180059580416740696754829396828789006957706278862147728758832512242548205593760737950154836467400482803028272696804945916706955732282435279124158001908754142184528814422862018384680684809541885051673008668912440119682688505660110138019313816046765869080748001022064892905973934021247365681256274121477948225444033117736625912991912217483906620874636892473596180607738005197130869488286648936028575523557036530996074139654386302655639891380596537928933871925956424669728904047146880381446719013179851495886510131343916546741012272452721863531672903929317513489279787483516271322625709932046314793346813206948253342081869977138845395081246320269163093155460024900008709670982528909271605811967345191663433631992343403165078180393666733798193903454006982447077911170070326890274637649264515601704103748196279226579777088781581228577033541606325666125027182523140734604715980911234238607076128082886809616075371235873963583307988346616421049971292180989483478326785254453034249577889143486333541019265969104009314775440260719273239893587291267923011715490876360624516876657268854180893549665075572372614920108403746914519847245315632209499907317393050802689073782545591795204014947972027283554582118808965971457528254646948909973420431914949693080264524232756154766867178607832670790158429721117853005021528683068091360567159088264061518109389703805450657684196465209760068612943457349861393059375248421575447620019332578826460877333534880438859151152444493619356578656049929927637553851920575921672841361408639745526177216720176558071215483741627490632487167549685868591143887187990052519756355265549891778211382808232119849163268150872739348791701785237222239456834071626599591472710347099206220024541791548115309811034824251036823308855090900165642572605275667399166225378178684897280879002593055258812815104493380668464254343769178081628317211095664650720310856039166474013325264191985805019515574232537574374070950019591209429773185217833342615102630232029478653724493232851894822799679655485974464978317022001933468633907832103124700016217063076832034119367334218964779741043293794596881996565684008123230189733638907275663054040549386023969913242350316891863415434405963261542676576770081860877549905531952043465071319275079197751113802251147750680809282641680582015925888124614858451928228378658238772758879318672433704927781692862369779186702655242813506859332773634028829048243794184808125989104143624614627812378850284592601377328264177444429236013597620832757758967922107723681741219806207214603890060385494220204470608460130570639576654581926912174356150863413748020740496633965428682171838675231172319725151440401925339452951278517447222708160831509832512554380650603451035056415914551121474202988973085698816832100012529369784212110197353149059205004220100446435592543346717356606641153982510514705996761284503851449834971522797536459292854859106792432181757674818915544142504559392898477553842479312154212855366144265363098014450016134575066914313604861121150074964891576535736860666690819828857399619134745746670056155164965241703385347355063732624315111275704159499422010691994454692266231471938668255856483529540214495781698049290719934189313314982837745927984606390667233818864365058880646572300864598458826840005102160047085097874137913526662147476568654802414499930463388734795136062924444074574580627181575514958424532045692904653241396140561949184159408010319432275420300598809942353079305173986019547158304114928781816513932541872241716695379699831888344332409120993591086580327918310165877281882702654580887563093891966826177095521173085458782030185535275397492424509378537153416740730243835434591418791003991935750233458843511066021257436144912078086031540962112526098417474151718869185004648615393008912442346117979962225570249608571567873611606869513593223708989998104177016817058483872467807427261388395981805400854510935047002325819924874698287011673788687610824986500558924771627992332714448523826788160148941084683585292377158405511070182282774106194214964069307579669719905049893690269118125313765855201220703552802368174433681003631453595221748033981889550651934167875964559126395555405840625020704326421862389711360767551290759327398727229184306904367487215375670137602882380931534398598882049175674660603648699187132027219999360823000269942128275967784297643299036172806433986936067737992930234372597122117547727610135874463300669068171114024815175667189439468028826296596307949371983673916323114754702198154914714594157859292066050485330999872567837207137042277935926259414280185727536744333905611529875181583258339242668630157674743858852494037556328362713997091310806580936282271530623971406103315318206828366227755414300784773795308918089642123738914509563927106227506914607286778616670593259059271219111691516882423034676510657578712643200780173439603763363392604000220972597961707224855663798400794896623334770973412498343772960675032828662463386017749866640104121659195745840442026027936773762932609275093239960952030065376564506703741505427526186154095151526696284884571110844699351181627124240297079400799995782596181539062915689048188410073404865524428084284062103830470474547583707707682291257364753923298059500098766782680797264917632606348189133450139222815786706344663001134306804162516198379110815795760213033842112583979799577265392991774810754991263419153493890299353652986491278935173364504789427147093213078947037185227503471227879150254770680604473003870259253853400100962613055825248244426955228991859700169676796164450796589260708387411609467048506947003819997230355172631055964335687525402129017654039894168110109539648593902435150774305098681377018004886500343046913834169488490672155330595382089004362591695659948275544508740005671994506256770496228004009258233432570018622751548101454633441599835284243584782234897079212666432852495746214358119042971886087872292548781980618554527115206281339978218451191388376861522727394796816356046686381844163772378319208960957473312035929181611901726900969350755328256582176388137439092705922023381871485595021870216196291041738942254641320704682739368063259255208215281730953071480791298805664244715826701880730375572653588432344463895702418321269844823504686458846022840886720289128375290442491413690393901678620750481820255883458092185906418277311085401855856040257483419177706811244940082040332513767434145479181639140529318707523171317805889963491183619185654743591240039055703541882236675671817863707741255353389019539798513224596063533339097627628907458850209408532200099324812290905231363878706814645165445893840430334984387926513472420644326623856248442850767424780697921028036658085903024832874045322030462540370924923400086586779214217291980732719850042556479283272987593846594243679007612589476998971695841670527647583177669848641736413340914788668583140100454100525646337745502556302457717865851334847702496427554543313477535294334274548848588436662230458608157324347804148515796233070000739886174671630471891940036939990558578347121336481022341636126315818460618333440200814633795032311597828048599177414295196057455889090886738741278543136918105581624812589686125775974178889510232818800311270293901131821686181264515112482152839994872320108516869477927241349128362136615329598844761064165391705973681190516083921056881316471666468748403057541918013775704394469780988338571334769090616642275709319464165620590668745426082192985223324858233701105295376491952195362255018372552860288656673376845332868313426963686561482008680310309503024579112020799834654958591421042833604114794894376866185947981784977994922923303497106420610802541394144417172050664473551759562354442741391908156113929700804454691419663037551844433779844165785130310418954976560677120630034811905366603305965290813740453753059554303286512757106336329625626456146832335182630509806665921573002088378870596346373443348350059117340986776932321893937629576735085002383028753357694152922998729221531144642883265080449540854869382586234442598631041467791112575390080101965500123364808213772419240851152532609848500471956845714085115562591758696917804488881146813140378967429628774443691378604305495310485738710670563632428202246234460776074018678457889416916220884144148317699318223083415378809905573294947659958950791456034667795989427401978234870425416766804922618919508336126061022011957810538342309128667732366094057366851820190405809590864331087592912776933575439928129690340654094964883009708324241887224378550039301019117099305667773376019341613467395049766744413266930529632204333930564033129835480449968016604145597402924257525214364956964306982295758984434506682452018586422377684668777162470630464470514577750264665756879593664531667143164902717579457229188823485862799782136155102230734339766856997614833756529665071570902352609332393700510843927582474709105114455227384909246041714898487260413285074929399965521795595912860060435771958822110425695837484943572497148481804276243079193719402391176627275228795167368140257203768871237062946989247402728847348768235090397575144782383868987094781748835606599878704806433882740530515651117995003461970472276831014662302154388094397345653518515097521808613467337353733250066950890046199739161104408104421873603969605672785552829306963892036581276292437100228365218658159778303914949068055597036776094903151211295324815069196413216914382000142781981755779363450359474657377142025835437886557133220264678968669713832576964224260467443026116252539928097946618311194650094069606794023417131486159375044755945916308811107677319537935703196785053712877345912672960418170208263634610621674933999253446444591454748823992256132958143699249981270528471714015633859748453085494589369420899541877005598938565397366031771925520624806878734953108080842050863019164251918111076764776241601482324911971828347295327241662427722070602700650570602523446268675727720967219716756630429963850800546771081552587939786294396668268031884551365211666609885842664421947962108805652738294202819061033903545924037437580836020653699805781220772356745369370928614064811798991397486067746122126810386349318141875112442313643341942033033516944607582615938553918984859448984418640360632011554540379228973762203058306791879867350814910039874704124123757283046088041494174417926834977172227481097860252887080632884676593466603204382878759388090266202309912815742993692049824602812713930398551494207662818421735087871620694627728591724772792737678322060446223081732730287141375153693771932224258529581829854629108582524318066123288085077274138868858173490033845598842758276932763722890230473256097929292286166600108034680611376082793251092038019094453286047813913467886097276899036093856689643363592879502800694531333382955809523729607105516850830151959737588083347179110872931064288578833619782374544830522114181428396928095540365836368826924094257676231838473661906532170577475785211135396952746689028582569199853440428857070577671793578060057816419178984375623512396478481391749938888600142326068200585914465557675078062873259273943802600220272352073504508955136995120209568055201059972861081050805365664877755278621637037489514321848546687345628288110127244585550380840629376489946239908050971372514792962576280069895422884017358738773818985962514620301223460927079466617107834451826714506363038721678245179019363834462095726020467100509022188275634069458565853197392650209685240977768133866815413153652675415510874642228223421540228629797852400988584381769466191827994424244512485460385316131945924232870511752767984142105510098373991579107668991165969712639217692648189024633025561498820954997150605050503325191359794824736322200752216099292437912086594487881247841126634570003941466563636847603576298951053521118228289031486971453892608687714267255920921402122214595240073318255376860123907446537207479652405552920411772356815561499293534119432790873978015992615364272749903236582015212317232797795809786815016514789331877159404280410114867536974539466135867576057324957249762783285623563289770148680773532546885021021081733448952083972086893128590608166449364770313647080270162838395910344689712249285820971713518934116179670787343796925377472976316514411605882524685309908825777579080614146655223418489765223748664447233489158602541627364502374807692916934787294263387500599018824285587527928896313441366228124719441886514422725237024195215901440109117164641250457312587322863290962807017213226858087688454005326009838833389261968030083312949217896424726431651965141517350733640832810348220969798843032852297456020408711803688955040575868101886121277366957515004184071522370004933892628050990089107447666193999881625206281825382364643725277692827936929015678774795425540978188545289649728530604361126839821625572704641995930520528825646836216436717004083737353733675868279512775667394456938945773797173001302460018008790455692421141628541547649076103019841909306319096433295378517348573427069647462800752789681475718978820486969858360305972241138323474227732344839028191701905458695697622069452534355877476258638070954603130609734189333548560433654545055278190128147558521411824284852140904322722072886334409584177193750300159095487296138744265617426054326359445501955238173883198237257354269137858291821936768226131161350421881413439628597862765386495560730820838609365747003221995551566416687127931801162710655155990969989899959595561134295549607693122219367682187150778785594319031166585257447759163564695215841987254309472045677175481673772019488162980423245324213189807467233083412847096310685281723721198966645066155552615286101360964102644367444127486125007858505134294152441353536887068927744897449961090360098236569494718076477480073057752847452394828304019981680884161516794041494077481106746943803309438884380215701564362476236892604659536738739872352421978416945200879017157688679515520288678927912770054732405872018267465184555607492044072144256417706533853998917189113299677631534632585530328669587439981298243141618080068288621378505926352191994904488823500729934560476575535007314645892380828994294349614205072766156288843006815502123272548316314903954342788288026427955693109671261284205172695131408833268905994075976803371585842646209256824448585424390227082388724490661865570861385551103383518600696105408590534308790072460105055539432082332497305883012324689332038280865688158013830442041665876413334177599275363152139363613124448131738944133104100781994332695234131340280734000129531870085692968376098993127827554724838600986437371276048297353394152786979033891054293959041903302136823362079767092986869380657553403200616125023446983775287867238663990730449584904400624964346113650092076772962028919665161784602149409717701971427761349657934513160010374852870281687173773459119653578776070137039770977281279611672171473628262493520300476809304311146712249541313649171361807699598732310096508468292210125652440128713978190402539547157065855148458887675423945274329604872379464468981010058193924040708213818471504259881048017775809707998783844901948437498833322885802760112134558240642736317819929137764276698075776994208008780693826305654180986108896259816150730478322258499496824539177777360336984328204372985607187860178966743461952814828252691526079535993532677914911605728330005571877562550165327087425154174801519134080004865361420768945581359923848121086248926333492954871120176134908188680662111106529320166716024427722735090706838075675331755593540151944933223141129613425113666831745212300027959578386895887772080751840503213251093248404263096686082859126153660470264230071541885524916191273849986098578392711290909862523149366122154774652378195097693106290781365953325343708517622312372353065690382699859512825242079578697644279373893968329493330607706124000504967446550761113887558098316150138705166159212571569924456580532195553215750765176360144366144165072154341532812676132398762594437601482796587322903433871428359716610695470166830384880391684846509484861768830011385344521275754511278615547892040030547135083265276122573923009499296712235623176569916485075333862170383332378234412930703312315650682171756756130887637720606095728628470975162824811094802260367207649832234082360706817467876112655904279706613551904243094302396944525650142155355005700186740754302529112625330477607553635193869396974477919815114129676252709626753280087106742604658091800642880922707673879883772764238928004889899461663201377121256824544127478850624557965915576886190982680223004507012397439653572763293811284462666739393734716593946405393956988312793361703834103633872680418203170135016774167364616643901466088256918461492638514412981720806831480766888623887578366160077917404264287348561806377108334703720125022954479825502655636190285343887677925866296829561371801569243820664536033723472113655364855580750788090697002961028025229033323361676863116989880502037538712241795171236151732517273300955952935932211766389011565010873283167258185943005771540088788230613221605322785928082264017510500485349516690038007364617664046849794156809030285181474220255814415084390412379716524086210414060747562397726568593845404154536537672219141417809704804685060321812993175980832203541656356643235517509658314315026447127511715960427328159587348033275931840789202167244969907785333267697807706547774174560647532046337070840915587661489492323089147096920404869627370422912949950000681286232781457395381210747580572526918827987600036255076785043897155106869052086548110840671502093014866992605265307085513008817141760004981747234291381272786300345839666886460483004568532348114103312498559189228264792071723198603529190614420431777102711436754446882751525495871505897084721853186395021144006100810794867073644895614921247410869412695504678776668141289019321289312800827743601639437082593779662090025762008188585499343360080009990796388081146753366397336765872103588518242834324962525577476302898783980182276885013415212015056252922276737941474297445679111648953073467870414855311365990521956967398892496186911932693128132178860127744279496031809748866925452008418770999388906636980545026460345371082398177336543861111994200791016521783705501588725104914642833941451592239686095190394452517556997519075828890988158606155982129683746891185141907698745356008342728100742041880515849399656620681618306611479528347915482180711626696744164711912363820980734463726244375395341536734804010840270182123884433406726427379736111810217145890076293357685645711092644899303392102207841766838664321274972628505193581562758218316741793126071721782117757570178799697612064065758962214407501099293964761802381683112618507749476311149697429775373729581466823181687295327906728081305860405395982221323630861149876336128464047971586272078016283576315939498913671165045085061011513048987376317945861119635907052107181727110684062162815191038508809437010630872729837323792870175964024000598023844510711560080083911219659733830663900925446277600553436677292303457583269726779402532598213070025348856135992381721118367547957436104312061557099004239813872117827812252909982421367248905439462757778935375632540922078393355455326075337505276614142373363936700742163962553739469211089708079254384006184227060215242628496145644729677213452485933885697266743812584335888016396233487294792379830800487378594474726662960885636795020399155541592663441687186847409406191054343049069440850805652678780976784938821683102614124548541474403679166802134811755961204530114427987171788093856464008999825728083955552932181117067027312858389052981534020394792634894637076114363461597053317409835693569434932196480566218158229662456470729623839823098066161110037869330811966636028962975083541148478891372298144202478740600335992430657689802046049466718619718001456870761423556311179188870038542698287322521974354561778223296848728682585049511827120408528177419018449228631154508323335484885672056710644931619986961178291003692266599606679035059315879980109932864737444808278448231168314825314704629077201015026410845624597108851737455245161830311692038966636033341553501858752029786017045575051715857685903257509080849032967998975802863611296239858338298495935132764625657662126420738404706125421350555305808379026912899408374119711304829445342063965442244854597247537434509040121038433326323884042685436353978654890930350568739130678540988435821840782007139976014670765705318913814214861100214090995947518992883677593102918282594388553118220053929584962980198028535402363343813159698530251130839045048805453213338120632125783415441615592156833228329454378250447819117350238054756663219861240635800697889943860492583220063487148053216625358290910062308753241719202261699540436570066265016577157716373104226781721459582605951437471555896964469788860903091442260137775349692294463390479255489040407124297478170881427073452808122574628593989698815745962640108538721566751961630284142545746764417942902352998301146000924603940374653710704529047893145662896868237733743260539315201008888839690497048223853265949274655349498337622263985391570288397200299360203404878712814842047026615413345382705824924793146658763088094123862372115505705401906439133744060621324639952026009960750595027581865983990095856484335662315069692626960514522644487755867818613337767775157088371996151795045590110091573406249058839385803438794808297722425313031238948722867572666745075480925595504455987690458617384582653798936687634493522160257035413651149043734436865057508938126934221859364343547816089115479931504017185432538983418776760879862612340633040472645683526995456432167357309064986203095494749018584854928501269808378206916305982227465092432147153835313736385813881830956159141210959812024792979687739430317167107203102932955305053116253818481039776647263591452227007221119595328747416121059057199639939786684039108139625538188331541981228363283121712370661876380855798031331381811848610256544147575275009832542412208241542505503385500752055855215300092241828760604076461726955366771454442208650859268672529021318709297969590774017511161612987122538580188458905130192891883629160870988664216771584095476263535524062700838118499323889436823049170095542709501496708038733968382187121925344801718246280268989920415824651673005878273377541695517752885464778382163594372361936123648700875889793454223819193622510075509899003637544150477394649130611263729759910977755161216754375055417914841506061892057490961238725312715401932765354305153314758502326458536702323709793572804203022965004218309403924716917540852312585077095612174737478367930570572449274071727891854428856307047660382280057853447091851219252697996197165719488449627131684326630380606418103730409915433138288550096013455788950718805130091608159839397187520869728427438555104867746997144511600815319474044177326792433009306994731364924077627632178009127243388090263824009119474227257760499652640248552062989465171702312058950261893790580434840409601648750781754864980507196538615419155485393712759804073651948631226050845490944596626415224390673090985070795400637134441782120558642383951950691335173037598287387198866548173293351938643398275138964342969135520611810055381942591559305216817405750041526426440464398789209043000349437510835230642491680482661260423718529658426052840098088933086616683749671927455732293451018775770982756270502991215436613976165910188719109933848801007560090192720936488834740204936592727458965298042997866072054590564220269569288007777365816901858913733927377650522204082183908498162178620539497326732767622007051252729113921097766301764947633639449612185939136620559494721521349842278787043538746674302681778678288946104838935335291507885481589371283976862510061586621347024916185556921156358212326315442674518751292573449760570746730303865944888981639840987049065863219644307199643075460988246872130606845642473321763154163446132978241113984674351664956184215117843944081125478789013068506364149401665282375748880626375050328794115555558130832454243462023544196413412688058553869409095028155461520640150045242473381224688128989126509031531231618385651309173791797040780864595794460004436420905471536312902397698104955223306713273812171930121080444416091379258846742789389068948902302811063284666591641023016099546158575373652600201740595918187318539941929214763357688566173785646851586364413253044717084964292683621021150771712937362104622781244741320471732072316362414231363058175697241413852147064569244445311398041713156027046100327857401132215077099803954962157727605905146552719839113754205232383726206297560438744648862621491081645070129813219111892047771917652697454003455443419661940923890600685106572337654713401654884949293961808081715601814994200789891212782215223690934917167717265639933731334237023809157440895244797328734461095238194683471883226288991579016139528425500078436160536781400731596674984344729215014836249517529519329934261400201891526516461071899697802881659017972939071069283061569874095085579545519009143180112061454194147151634389272271042374527541098642493106025488295076543178811148610953790610061032708295375944535428596856053334303295816956734810862609975758447190682733537514018892503515037297778222176898063594304130425402451738150818888130959037125598567394868961880631288121753770102845949212292300104316516708355041913594350390293842521519267284151907434757235485312407943204031939867575731473444833054433524515561534979168228431020644539476094687309684599054686210904539511523832005276917291945254229695018837336438494329211648484389961552503256091303066089582674390306633596876881587802104456716693474132248094748741272416306303795298481085347010649572422521767294857997129170977682784086507595603410849405648335280163587368309353427846522329181516843387639533922809525867398246764480270511715028551515842621795883530220440903420133270044041193924908961277556960136146101650977275598167456191347512603930885106848147591023461096177245213240290341807064084711603643555668845025170947248838872554570027125257449231587251782048973868316326020421520939364587898137561498410273251049380518987912861038827289561121946133366065558743773113674627059129795895840655211154547000615268412545876519427327380785433811862006718953401453509173438622770522544221004662397996418390311942205743465416693978900832206029984906274256563743520452814881424364046871642443496220483900953035560148652169160067164198348225299157855453632622542564201544442643251291538040709166850320586083216248848308172334204875728313110693863595683082087092316635760467870406471292518949597087103424223680576122428570122619060747858475577418877126814285258028019805491555055620470175031158729450557380306011405248293206220083739643207384943896721260613328314544346195220029353954301962563210773549216184832289032835084381353501376202068866029983723961498469926326887696805791892537314734615446123544169400972952323953494937922233904711641513000466884914815930708384698411829241645495458637504235504348135905302151291835877281046434636912414080998807021538296695870788134311139922030547950193184002870410594025302666254996249434554445821535160477280974362080122617319102624975296092573254282859654171128076358690189058074285685912354756470443230038084520615968757598370598711702442313127163057231340453519783507808237029557011656645960222664341003778943426563052647289530807592120894488303126560064908154845875299885622323274943297320159211435101600435292036404180851925995811253357893923691501931064518480459009525753725024886233381599344323789103358907510733363198759799506811021871364229720057371888528204131134025281283415652610154405513125392189656808021673426224766742277107795667182157865993743066332048918607417009371293989077692476925005413242789451427768934165336573290765100800287393161333262517354007810630014447189123278232571970739750450311370527871966791607929706668037167960231114283324011386963104150858332228364728074156727784999633800738095063678740588212153418519839153049532261703425642420300985937282372335003335970030097571885295339486745329549931368050287616193632457359444944716616092655352061498192610758226181679725179128788582433119451008602428367876961929382707108343917369169943453607630888013394358508725698701593954293489499580534208972579776924288031984642011527283934214862664840583734025467575429490736054350639788716578650748380331572179048559492394615633595643277713914591822530587599809409863547383946393234977516258846334124096390949552367291591846288640281558954494810720245154995135433142680122896064404220096041050057947232386588690359203683337803373195640232713817676313354144681926782974449943086872169200524050006416579815881796768614273939324409869521008514036359384188017125300476060839087887050846273942737744572020658077640291343874841316330785314793225041944942706456837638774736774202913499110543449354291582666922370865626132501654362510609433154839386371751388077824384211599960966893845430086947031086837559655134556392151057391992300679376618604401593519381452870917040669593564941881270460555667227628497686827583734215172384464519840617273554879441484987688765643040410773876294064241832147062140142679724726182694789608816287322032587763948131275433976725782984307331387073619590117965830635411582926564694873667161032290291516284171758401706964150828851874301535996977199918122732455064103981492531215319613021823447953752094102813868545192461677584499647598965781507416944723623676752737958537408372625177978837347589790543958951964066564732522557393268259125025339676235600848485676746486472607874798279946421014460040584935685796062177770555193495106426966176540202437303193372803770840839784716820512538447317191374994988267608372480450819275639598788648158040358719825153231406972989156650263841486833491523353507294418875079047827635160707888445905342242596074803164601518078506601459831697771213544955123893862495059282609690834608230250443188345518677799622696909245656177790105124088934569953757250968233564708822362012156307835533166592921070677210953984272619807832188504310252544601404121833201846713821419949095970758980295887780064974082836869620185287335474749284067180315436638402301019802192567008955229575603557367358815829516331029024076962446609134631417682972140123376976491102639777033127283782725430977034108283977591790962577188850241854077894974118696197467350262702074620538479607656927093849674180529538517244391749914159978401311604973903899932034470143636403486332681118497010275779932518895520039713602468272416470306876303120144408386828970683309824157622475890167509635296484435459227140627671774402233934205465988532636550263694638061348203115597802228868124258368585766942318681592456517985871800708868487293937091814034759280736520370626377899093322175436659295170260519781237103859107736138148725378841728376354216016795577240313185316793429912217434094485590664171899807725228218461589958894733020224429103751544037740073802201097530855981410944054633405231073936145514762923002234491601178008234159915064208109792134428498665685447323306688883941483455222065714981974936548591479451610153930737304462449039946160234596324253820444221926110322369788742017639011927513965648190080112795946742229842501961169314830833370487848291660160697154260910187587301077466089973016062004762415829252716513137878496303983487730470632013727335566368906811149883292792597724982990653348980368561676677865629121371610687033968717148470814030061851228710279008497262085829274449131266838248980775414602652571295006843487259511167772774886768233555019779291130728278659258386000916856558013871312575432732583596378097836845916623293525349133763180880932276564669656750354100816008145806586621497981478162500738944081325731875760202870775590130945313394169325487520547290266435087682848914082276985863379711916863412125685124573663562268519227940162817666169219522345523069199199021328494650813239806099199361967751286297228162729840389294653067142586336581203405095609873933062455329613880569715069195183075247064041089018818639791503132305908276308294264740681319294407904387703877496033944161523298393414162117230851822049042562952015938669716672333648387920699377837243735995142629717984110372757673421981067590675003851374264606806777558359414286572218074580390000730688553636947280697253261748897845237837962778949636412693194011865107811959052673820281085890485213778604742420421608748474823698401536383440504786442133377240406831034639199569656556750866392441415129355681745281649815052918259546531732758986528549485430965288534906114337261365686572105995695335312880355608952813354120390088835955282465007615884507556238438792957996563336160166992805799924113245100414548432930455494746869502784882414038484869332436867964042956701920333032861599825012428720238624810022590676492964551725445995823690764799062672946351483192010524821853020942396477784688393481522148089920917218729765025040285909213008226263326122216385052866794174277913558363486854909797364681549194691426685675340498379839887242119248416899779895287194862772338843768340548808360325972747769260890853579175628998465926045633220938868750523420272024455472540842044914998868099409974028601305414574051562723131178593156639329949956765911935833900212097082276858506180442722231937948336899892895280245411824132595783559916587298995744340464392684688889648698099881325265986140644536353612497356663645554950134499474799904022569489655237882460312477023486850040137405739966540955964866392452403548840922002181356196981173441089131657426716165899904190334905944640446666436741586808131121652569790283896707528475330843333598026854335162899772156917621534886773943151925710744402591146228847518850758300239709145176947463921058116524661240340668309977070682124008491890742549103261782900511131629689605802839860625956619053181184287275219157835287833702400763001421244890496058018761599210209981212502479641695889353233219031570570403560109180992316849074285650646866866618262092668402606740312186474839439329133244866321192063974802529031898406687041831751746602550315147453427985021566187389925555311164107976787558188365483107146848356217271111160346480924855941765212868213734386236430778151127705247752297064236317083685366959197495100136084951700935885886629069909878169298547292850413351398336205262180700428131428889564487771202026569040021210158028539253324344743789320839118004223163319401547812780813387462769664165023532626661744266374382768460674427158054772433951016077530429576412878767220252363065638300312612330259751370765820351935736261899521346889538972727732746528472009967552087532629738486590841658568040669679596039199351351315903007796214344493216630220038400899398839986288466473390067254462789638091573407111804617302399400535816728812877190688170305179525124374351626411235829537235989584412348488724306710715109554573533938957361175795430023523539870143977287580356011063544639818438508231655016953093435178462898417574683942292302256607472030676680991918343482123484494498022164923423678530921218554188917512634799700977030520804467099316068431563665370204073695003561304131941860001918658965480079157912704640038035183639222336786207709327939699733877714657019556348660836895836516227958405912454632531314460919733824778029994513295554349613058769274965798651546168499659807814508706396745540381182645246670213430769555646905642355353402834506380985944914283831648087524138324702241582924379044504419106558852476403322577934376594590652119608363195790943748390494099382240105574582416223411278722808435589300432814794412273892547701038641978017298398210332085884659886716298219337678901596500056255666605539675449137334592449710750829996996883808717111717973501738193355424551379560985432406245351936784187121798532603011583815444925839652890546408762249248591301384838889714160822724119794259442640222434106039998568418480196383036807720589652943856859023587828565838467227423284793569425912730029106353645714387697280194538247118074145292539045285554006121800356683699164969693565665783278115142168709835151207809774502673625777630443995686608032918287722605625260405304913306390300114617489126409748704768538163562648132772964748056605315189615829856771372158585046659310132521686545534649530892411984540809057605116485700792613473155362818385577234177607941325344908274495304182482581893637589120759028931282610261849951811863238085322280612238731873844307837263697832894281322148772439135591947504362581984129263052282901162528538180811827966809701718509220175211434308084142099374041526727209315653704304996001754976132206665960654652226338555319370189585413393859204120204318141619588480983833296497147872648993319342610589739069793166257979967547048073849191801663047882387002405564126557196313092809084133641952465326910996745330914197891304713905950027433028013592661671525537233008908841617444731133021359310354804185273098884308758392637005139950601065023204585899501361147976419348548738677821421586871882108212899395398122586192247642222685374020240954386904453980458660386316259951008665455210435768546787406061265961750221546639484390640559785100779449611194841723808198984598249499129819810171424503764248271322182095275052537069165118128266745119604886329136893219253224896721623257237424101446029937493149574741397417504415516565501780452222906713362361946934891652027482380981594493291076794253090904385349426032524937570610863841905470590563709504093401402943085768419023137326543715696256736010900414344627214970247849824951520045927508144081571316576586593515225682116949149639661363348232603712768922074371455901540539655817818129591458685543854312129238122626158461058936524828182328372248862241976775363187410977945092946300093878576521747111064201289434279784356393939739936046341881226156025691787555239532905976739525331994683328423504878752609287576001164211743418787499980132654798492843746100190824329701884644014447429830141870932048715771426399707351815560664554323994883099040007157749352366085114539499318931346651154485392455580815965607954915193913022246903332738887927692080964808411821550334646223558137552220925619617645366055284814706268808779874927102040878316660637153643281444238498894016021342663515971314122390991738187835675473180456801078024739207344860874213462967800412284763229778355007766930113463546167295163155237277181391687638504263995181363807768943613434670225618906325849714414237130456217433445845055342493870290419729192809037843130432532359384485794464959383548532160828553964171795952976459406092853841782145158329919266412573432330682676733124940500459236229459282085878506647457341615963898925923921501057200998613255924836957422998387095535176050592451415301449914074052379464749101565406662874451630548127734493168922943477909562799195348718093028452446471159546963687794569777050378365319744516345534974339380171295993503797629209428796430503798531222525473977154020680519058743162388035677888606037889069002438936848581150951433856329145559635983864628409041658918006356811611701735856045745009461327076995677364365455006104886720269928222400962055171813310307087669067061267842599707575925347617073313205425496049322050769795885333517757954394975937523439357391491979711561857647009151129891287231755340200163065799477491061390290958433327571320037183711573150035290001455952225327562180727001100391846400248699477962272636765145855825064380225074650635599667808093728744043489452858895985904175680385536510825647346660291283204484980432942703554500024152244268260140341962760384630400477047030040022693920323333701109243332167014803656131185879029918310623363484854631343347622737166576947526629374431388326909589814269559713851848470969108861517269301508019509462897893784403531321919452001736419297648843928230945553388390056513969906564023549187178496399385598271584257666379178610917404371204705566044523635525866073598206111879295166739681875488484942757504656758542959694060490613424678619574536427106741165232575855129911907492639927707932239678927141447616679863656348315927082569963304012149088104565688351719837731498139715470865042422339520494521179756840539011817155324312844987829743577167573912600418069833214251550973101257263518691913583161811676195233309978861664152861871316625083652473217719350955585259420915058659484056843863531509989471750630823968847249409995886732527166003118367982456170648208845967637953707955434724958634354820113334217274750141314165481068197933420065278883590063084746608841255701277616330041394482233872790055244108577797636095731174746266208492687972100323829803749698986491304740196007927070512731841590511075231481010259539155306820915348168034518146617205764184539400279250049786865484039444396630469105282981538856749003045339239044015687692585256944704620401760857937329825134495900715539341272542806985206459842939662502707730250873570707098967112081262287296953325874845180411924859516167046984632187093864682476180777471190603823549098066883591609234928692340744430467899639069000848730180809911474024309426040113252879745348716886627391935332066226339211595039276112672694356312371322893948023848734138132175828953625681275374774546225984301512253755331957789243412289932955087784155244955926546280224596425862219500926387583361768828320828140534389929595436444474851452427965297705735449018658420069950815550547106855066092497992066483322695217664287807056685298467800171763019624058290947612037906517617235978681099239786728314471500659219221486166944980790982781380852532766997093430945550278013342866253820096065480675836916184577161293715231837057971499477047834388033341890875088716409616155828093253484933764804799919660120179385691471280983305567713286287173434406078568582580295727313785056392352786024207471572556232571078836846915225915082943072256595313217571090626548038844650292790358134157493618936657338650144808465809578574476149634963553768861359304734184625447568112471750558095004898890460891866847863589483025928304291403027874461828380511408797740161212203096993910635199917583165054672370095476760599273812656458615228080428841319982116432936917761682406742841233333820880543494120109212585343270863787953061961847903657210270830716138746979377185959363555021425470357954390188593889023829892850225741961585575966995239713359491892860833208310421895790427165561529368990436511266829107294252490012726383223466923996626533168261419242909048497588916753902621130510337466680936329760499448539415132665156668934349229938723839048319740095644084159723867996152884840196883237874697513622155687787058969008734294665391345758312625105474785747535691840506016731553022978794717647112614661358490253657899394549753565918408326834981017528410000989310258902397913865435207928219352932796733337429555901366735817824581398227276864644828132740873209617801763626162443512660408181927125491353837525049531300274488807705693712857132736941396559130462429862301965812247783781207199551954845620661939945785321141082008782651019130111184868560541893567350912431422628161753156433473739604896047557948991627802472657450117861787774855648655694947203986354878421790252864671129661150938296773005647377454468526900957840944281054086958638562609110783839928078358872038179909903105982321899316326162845467691139310745168672570565738912365542967156518345896230363698599414565347927994728037409557907037398543496463987670212407475059952644002305143167792731794261200397498482542246021220213802881463704144684179270110925554680605128123371632662383464153239746302040787263434189368075409948602800672822174616894975892810619023993525339083260934733231362699546218420240641465417684151555946578589928466561690719060782879661959202142233597669909123392654739567306679633083256083885588806602304327068819944720759580744916111527397248643971509576974484434041725733439105027727330124494543630394612636272864741128985785876241649295401276278914069183425582111015228275432735680173663627574935560532715865695819672926758578343490786305417435452231601316539630697049206799614073906693137116687840053151569286813573266067017792664504598614738308051810867394893750862526353215430302847335741723130682232712962800889001042402347342517363793128956250309273540951928041256917690342508739298020055170490515360029333039949433379075647043859899426629187091393371039589732824656652271091930892484708695375840386540898603124622673586131968792583486345214181464427617830820318017122176311460504273438552746508614586453526112668970784320209465858505058049145476638811772426809963707463702620256574156831045737082824620353742398335409388278259154148075291480519679517646897097257405988908742844373654745883481134405001653815858333765313146886533741321764561240389622833050696724450117267961280275581628074696533907675552786652145965911335276192845874432239418436020754507659509532333969909338479631110371716360974688286089354569939672304973549907430772922061713583209899287512734499905629020845774816500844848815014246880238218993740626841928718572956506001092074271539035532426444683839427864913016318142943407330868589072522593373489920798029623930360276596528124203474148795979465213670258698402028611821540868723865951770417237615219180258145659546344620487496709689614343053316488108281916679684215062087808158625366180883577570166074528020603204815098325350217275419759619270925937635163465340522804503093778832127609961357794447109781075360364854785817116957621916709554624924703158836617661641382878271355529750097062100772152144430527296874061096710445356894436750203055924705468430719575995621352592314320797125177688697954352198517236555082898245783994646667505751171093934527817045755575843796127897732993607960938817326565879803234890387732938119117517124463395152255058156664744265097470096896541770602183453722778740511836859269443376438314995871794872647844389500360073753012529785377858242255076312138098977872955481695517044618560627312364521289069505918260593143481021286337160831537379365118791759793343263287869307732733966938778795551245950967914918421464335221309809697684015097555474170713202073236184516436963317489462896030709169928310244441168066086811338114980167347908566723147484757214004575347595227094235601112252538612329314365352246720219561707944789644470894168365769252921303153207734028090882111778457245185986992517449643579269186387503182589954232099748966599621282886255286295255432576131372404700363995923277857117017429264576694407096076154438496283900280840856995872484803061256171556159452599650760566966755484881425490203319024653363028561395314247953533391470257490679736919750534647775585038165591201907901945073997058619869421689908258796678096783987328394071413855163201443958158026013579758345734759037222699416291597217003205035549177157893914478764469481491208638026696520505471662612625461978671658065700851294198969760068830451356364632080665474285067004888448875198211241697893359991726865966397980614883062030330787139047215584943679643484344254593955730739560457769683680253918620113399351076990535068524223676727690524661640471123460783274285025850392839778554479703329388355408210174370117391053623097547366455479018828173192989984965404073154174891429284820198172479978766871258775888491752303898851688971015215637815689374600602158102550260414013258135825070219906334430984375027204196540823167570380882213846165978877998357722541548652102252136588716897726080298379414760881061499242406817413600964831234542676053842795442351700785799045780490001451532879352102257248025537571370938011030616339962444660820243976936278362621192886026078613081864586304802438069640797450817397316394680817706532180798744777038242694072706847726074875272184528648251677723329932292811047837996829057944800014850510901359072431399095966402740109982200977786077722425993895496104779830504932841416308188057476119993684885519743673560618517705419674980614778004980321314715531230706129281258440938364963015162139522455129822539990907715472016066059556600998485207097422446592285055844591497322067361110882670248888840005205878066959307837805797260777617796478444483614148974125630404617322923473364762891601255942839820529113975675048121976811687874373368640563634252492297696588397845391454332273237794885336278787152481691391982425911234108554173791707459855942948090662008824197521057188635048704261304506746687285837062523405636931587235751544626229827312319242171952295015860712344042049420249298440219964232329939997333371009815862643396709295700275392677525733669088738184082064976741325504973380958488623901205719824801231816252132188186333660765278031818062809032385288136105412867929969017821576957392981655329182710168223568239811233177096347778372300425424343679542290290654312987124794659516659839444798335585420247397325608357126286872375660843506756214215949146623612999235980085728400472356376589084262313288156950362002960741262124972638167205878034075149281581323552381004437668280642966082262839846398877880842914287866982624961383535169810272625442594612708647067478265550575371938072003579042114188880760375061892625672117778763547601317156251282342860737485804952781055212804804869368956473411603521996758659842913270368457939904573835560538652228540101345598884946532410318142322809419278204024167768613245721192163413963510257082866898474661061567740325251927197074311145721199658513632612534344822004777192494216920530659846635677072629030817753912868337509264700785223190092082439453408201623856883144219643557634648732100483304703339975982191561676458271743836417971604830683607146915346154502282670166610370174193104209837842628619761168353725768473813905424594171020296397036570911765253581379958251963152675675662855922104372747533512385429074686289240174962876223996590592789527919244077457636756668114979213876876253968520063432466723414465084108913461763403092179482008160818709643440591792690616075376990012923887848998199073480372578546512920723959603746479735817709397749290492352753516242741411918112651529761457624701676123144462686962879971618839993343057815359851510998489589429478563153370708776815247998175076184327246769965799197495745186773312167193803215258513340961468769805425856042744342244293610241512214667539383760683982898159615046740063937902243328291345821352522665077311382786093954569398721348670931449660870322823549489372310290001754212171448756300545844480553276424173518242655639212367313021649374017813278434361206536631730858199502612528717411751366903076756609409986024620089120460647966536009610116740566707318370083233347681884124204520145069686248887934774734766289299581733516868740149924028701594818187648303695430923151251355147093848696941702566623688365700354620727195462195017979185240449130076402636896333050822759473957955715875853097204025913512268726229516897342471446393005468784289610264091463338167465296274756246168753781861580391883002389692742361434158947937499270915082730417673655958232946004042866543285238758345089532701458305443390856691930484633619846892452226559449254964316911467600187037376786182686793951690404069881448229762520096805794869877581220297970578415079272328669825172171562367296186679494057381925090373482900496224480540929728250018528449707906352449107368469384803545407261518750419236694583150423178939766066546728446302971752530113131115745430760033908341289171281536342876205969817052479720242136904057818221243301777910200851151869380388517542766464809328964893868055041978218870720768970660928604043403541351491108303859941596448230187653216777186243906327930790156088156549543984813870006410696076784136038574455853743256599640234021147949321472564479591561616997719958915755125976966961159033697495290186152635951865722676433733525675861341102230353849749228695154659899018120458930135205220581572947863970196480290063801516707497933427207427368550462662140292020560673174044065875026504794517601918002711141933638072644345868578444820520694400571033789830152839312226252613427760093581620081975171160392355728890685367898613223944912271318994955981567741358793604183028645941154341059629223759653688156868585943666699121811105081926193027742840924389756794338970890457730143428650799131738590569771196680263064040013453146470254266584982841522892911550923574981452092179819472195009748224711695130743030827520051337677480747341859447033927599579043186319254980659912331230292160778974627618515760168417574498547824772078154639805568144422719030341661783779481555571484444335439232028568720209010343707247841491939039004977357598939368330572614248688764401029187624984509438881902234474741458388298203284230170020025382548215569761415292906999942098757364281603026078181108736590167178196698346332662132583985053905716822635939711775916410979710812688347778039850278512455982857264339321876119598657262232310465064465464662700453970753911868932738296059068317561858615029633322723590619582996311654531949761458146036247383257186904008295347782514769895894103984108041294846191004656419706164317886333596647499357383968096799991685520690349774728642408929307166595366952280870022255914286040856170872057624861181660697942944170418511696986365571263749964554361013492692509055297666873474934572028844331477823514448992074886459855725804673439735888385530195097940898321455272206835532186624260864674345204986523029133346005086409552929125854722956340245882944274506217035925509065581380510441769754745525918653323104881593472569376765324620134668843014574526871793973663442216312037291020440737654212853966469416610773820689426267302686914128929342018059333905928229898872324007533967215864626231878827008251586414700941338153043868226966032113366864407376454077976219949789343518515451645434798416786496834252820457051513684852235368638824523518500632024799359565316515321199018496689212260391747247052237597120494788065929741380492704566334613794046314285168567282354808503365877472827577255383603663665035571640204001320355644110225220456113074757264855195173643090593645144457481954739711772366399704210755338638016083104574458855589749258786083065836189867485338224689254018537166328813696436760959692088951325528922365813210004248625615365222296763524522107282447118914196187692475765694735477387622434161507952929306480997597912855037820016366080832751628246673591311421518723516899664730678115369205237218727371581607373588112954344258599645010735489416945095766703627114609241402266457236566959767227542416305604162549687969955788168025230774261124795621953309009502926475345343953580266711051032270764987918873726293599988655060309031063888099372741820055628117854994927741838497062808294621690632922260651120163860620105931691665012064763030941500362186036138906071151483179648567030018837238326860117228918984668907726872949095102089204934047215332994122146565981012568030585755942787356864303028140012923526573717574018294069975866575763805691551209568348928855569177879154797006248728536524750489421144522817691868107328140672255963148525480388004103607817357528831122584783590028017936882243868670423299822666674282315533662610389540770090620599900767386236781666014958998152653158634611629301565267938293986647808200529605560106749480300966940666808840474864464281033353975689404433090692899568918454937892568570381951160204546513188984549569169696408280364964981908233881321063604169529264994238953833131651730612872728145718284422306885833111107647938682507217285106253977752810063429942175824473909463582616094183487217134259464799870223099913769714971928340816956647376968561206979724886607144982405148330138290414854368038045874335916700457734896472566109025069475258877765004553949180132375021457617911485775472174736577557376238678263797874837857215506239253951628573615405242970407187577163194271795102039049186613910007068832081902979723194016328556823605562834527029264345414948766873447995032527442319474628281567619337094426491374312107550358354108909879665858060276319134951896521331746914266339337277796880532286931126365605498763312012710352023261157118833233389204913336331671009063817671763629521281701931035500596497888531077894266051274085713582302689294163813399137593947870392121305413456089655805794624613934776266233353120156871712704806975487749490287477372354009076266670001288302366641151524387748180982650381503170872273428378015568013238091646349706763272429805116259152376474563112026578606443853170591609729248394844017519472061537718364998926149938126053831390115542656742142100285684975326569522834338855227435384840193432179467703086989950053765700414620369466082809641683194406023754344026058784683180312087842650895411076366607048149998190415413343932750586566841039162708602380432236732846211733415616766076169728066291841596311095450926867133108462093483122826072486223958661416247396751916621317848230893309226832113236528800952744697223794813508616527870981170582567574669996256952524822672475772783866595320318667550492970311840819948342225958775621374836909276400372927519565069412683424202269819233866239689802273814646536572483074971786769514543575922829754919958012967240775286048656633860817554466732156196158021210046937465924914033521787778048589784501483784615053742553222976296867940954893610398220691806487016197412988676680345574255115998284406123672570116202484845887537771251979258818740133138244072726944927001563879633039957486903325858853405451065921822687534326826858558155240030102659346522279745302798671693284945159621871869797788544791588439959553807186203624225188790346270464622618843551683411829669180258511775497798879857273525679303439867733198779536738714525542319096937837093675941511641716495172906003419280259676643260620618771000235541066403968225142213897258450713056517209931801911208702529546049474125917896004139820164274202285007422522365544460779920885901005358641132702300741848806586289004842594902811965797258026671288980296289515231856626320971763720717980327255666362565251910119372325193259138707217573925937459439840336644745558307440031036593635762512320850822162967947367457460039933544999986134724380979337383741036461737227395843681871545670194928209540833621108027312148693544660193266169695308823118714303823097802061197873861395725827374895682763466886980745147709148411149123887116412647806985961540346847295920706854887859340284624416739400046859798823348503172044795555358776948948718417774695460101603434086942156345851397977950783273107005982511651119498540759561254867180036188071738164947232194016581689945615919597480759203486956418632657928889962532104401614242164779740456402936089240391836420537986436309525790483736134401150170709550019822501086936158405062162914727762896392620146388215095438505721038076726885396940468051314262854122737340139233179674870161794552615170802188645468263149808635614585315558326981640192728210913855485277315518539665468577116678822340631035006186572915272332298757199636622849541286050419657043999706236512175366166752066111511479572543443608593970820289982046077352604446276427100378958114326709256764437127390037151208855791831883931034434964044264329106713787458435556150635493728186289937271642894176064366781663474100735236759735381275228074071944358468962835426754969802445631455673050089076536432144858769613799895131101143866665356055380725717543487353830163775534437795671517531148240846883732905143675911016711930281223762229985083408899112670388268861626706017217065624444807760274404786428659531165259462330057720331639115501219879387264698671935849195077366972719846100522927728809109721542748749479669416467750974074726544488225585426515339554845693385341751652790550508841008035575371793977644754804478654608098995912183746084952476480120032005348163912114895841513033690722394097929476408485991597382510249918992435427474748998291934449641005951566407837396057080890013700936240275042483142930480045921396346414967752061308580130069815247793613247310956178324796076973136994453077959715689458085088214863143051262889917171634537261651221775857556739181017130075822746376908011176953555812048548562435035619273545483270862600257955022880962680231425028279824980106349339930462196389272932409015413069445971293259748133725020184651666725169149730480172394009344238493897148530244790538341311587655577292610934925533169940601178846577399786515267448037670112558266056911188562607450487180117301864878194983223840581813268672886785936006398059649946563777147545056910118605447641232638777203884764164299010085093390540864200189326764975294182332066389420357576237257025771767183974226515703125531008094105980545954307301178593978574394430999331594239328606724998979237160234451339502808699531288825866765148651903800134879331714187124767462833498657837406311117877145366825786115323734520311836424950061839217758878861204951538334206602303386145076157324338565077140917020518420037119835550256087253540257138528854443784295514181525381071594526760390018107752439402662471076232173084885498618032081873717654289336543216034824133423905321943095456921253810624388265918028362318942648981904729001685891624194665010638676333006949302040284233635855412270794985419358615915099155752191344425600835211107412948009490598001095146561048906829561084916056915890162414659875075949429964090737062183522212691561386209800270720618426524633346851283490731709625505764846328151405543791448607054530703497780328347781546680606703414588179349209520113806825433732854729470303598035929398353409432384433152595751176307780022346124509672648805132407532651127281005394707609576942662614665154282117485529541466641683387895395517813889666088156183906411879942358487196398133367953438791446171623283209315541903206287354283672945037323437327752292424809394596299674834845710129707406785340189661440366547275108353185554194308303863208676967424332190179348145788435828211062508217505582081459208138518455152259125338850997858558779361269672631987702509403231996801795703021597462972939548226060419812112154272493410600697434395840226777447470987181612506043444377410563565898606555070426847027032734650040934700452148971781214541701712673057233497396207869075400815035223102803577626844323832468964872920097754434806126757415657804681897876998914225240511396308239472955501839468548317233636499317907626880637710503310038397542861819275546810168773601471473526841299860967200295221342305968136322926722512451154622415347906970784620505627163199972383586442094537656938020086286564410047143538379851406105755200527948534642432365100086830831666750040686318636222078396888079863994077822386909348947855177992576915487806988956321321573014739257463441078565915241518192026998946644302843711755324187517292532189897830384787989494635454166683055359521777073241455197170906601681530416549663838168036514845558304591996126933159133047151723159159719717894196977240016113677306703369300878116957583052465290433243166063893482337073031954736848370388945011880146078017729658964256185162140471017112974937138783558595248612370528448481448074909760152692775195120975264690572056329341338554357374259115370611928204868733818965318556343867439658576232035743014449091877166663218752865032240273859072315493050446694787442582495906746014168329190941135549881974133637281655025397780289820473353238512832332659244932895780876436254011413163387830388533245238357178656250239506578968665427676358606119260226953081364293078632659445684350573135416339033321382047533263122223923433632021337379948009297835671474568392337360686166982000784790570879092965669635033448711794180330546695614369890003017898485180234005349806030786977622905411740639107809390024727773097902141018052599792952505149274465446185811336119159708706818776936772724303916985047071758794227710733376799572687349761653417419418872415837867379727444844632127218678713559694066787585826776821969891867067643876244764193719753162543080964775665486701465630847048949241490515961604370612625908376830265001035007008843323381940115210500742281825665964007447497795960549234338292134769939975008182345304155830325723230839410866374712980719264621765035323341065411216634602327007706303033988372335619480816306590811461998816441325334107856443244771670709878914338575499129000446163034206944844118054851084094145563672785378067292779588483492644626532660963258094267490594199519685909701739020434816776125601339395495058551730144802548664463858774040638446762061234895888271436247099827567422440820761749971438212276830997922994735235702189153963307665337040296546890681506728651305166714857803677567255896570076920156440712729964347129069963407724254812400430619737267430828060077189607621195444415243997307281473734951008401881977623600300413608480207857335794650479793524979668617239556028001214264049659979456393788371229328725937823337344200076399230084803720005767795002235619934898424251481917574111066704232966528605527021174559944413990904177681533051129048717883714874956844413512252765932330993671128612786222584491043371372127204332554827207801583861175792434555644024428080437189010357132413466480706966570105041138995270169771705568849706111893344697653144644431359824219975749569098180779432630344589008155280194395797952241287684651480902087162974481197138573225348708879188424434468603428213028730472568435590428828329203855793605265662395122615373493130892895609210943987502261234940826683893929495051710298531377482386309079213191534420218011631129503971738702928804022721613574509121433790420087626026256141953180644757263676670317254443930903105356627900367874464635994646343903253098022616907877429910975975623631825519266060048205574463508675151472441942003733376871311943338642293036234493911612801050474576648930384128457967167145198989164900281871940513257421111119651270122935710066587283994446777814919196162039038698933582981682704382906415694238341899600699349726588871683176255508231208841215396698727352470846038003779249927187093686348006836414154261008048881509113422700990217183152848568905827589889989206921835562719946269877471327128443727384072623239881720839450428112320805741421391623825545897345331123630639393784080735313188177845104254889667675489889556832375457409528146165743189504303235587433691103300606630778325406194674673293436229484041601777912557035203842747083503218447865735159359293018344946696436113401680183589684980749304655042792513223806012787409580986540377365374668972115668652816047739095088272672790029124143569940427397961557033234191125572191562909391261125383215537178549127879494754835785083251997106659136831404079385113938310937816722582820984349193315938986723768001763824227761858564992287830587362569610835513035079738187869158132487175075480411335696697759080762878132309034159665643082144536226512980772531521223737230250357109085047262784380188391439828145481437871894444734653208531381478073531506385643494229245742519970841769615370963530513931809343363309335672436699360753446310317614980434006994702904669181165666419903933473705501578971456171876672660574952491218842543722714545884482401248290896378129060718766397157795538607226732542684863704371848924386020504194283426512764548140125527448796595721771135824690627664642401224261859157617862491412234415889354082414857994502524888148300009350884373072959032507157823737896657214913245747194084711269310127120109134619386539668134918723270267399679502546886585616847984744978166800173389849314791452729809208538451539314859892319768970287017013652030998483697917174104655365581661799311933579876347074840302016016233990913835083840664328114456100184284404663172465261019130152166480061929906245218347895398213223321879441959770650170908561533158366778597129050320616898736567079666382658512670225217986928626953199685848878465967225169328479923833837669805164491271298191039077382642730380170247349558975013996118820000013612916206828903674420757302414815766294554874296237151622707265151365181386540665647468806720115367376997670428852539144443757289682256958031193857074380069985123721817764730172863100831841122095236795869072069056809154804165314219302437283331902483304652543310065213260193655335521644786586507520694096729607934619167091442381858556244622113652075683025421151670444815941890520325127002047449904636746958253317173350580262083248245024668796816442750426638320620827264601256005399570649267319848670171929551313142980270620175704665138774419839801565639689928400700021561470705672346088340755850694924517194051603020929131686779738833816728720997772447807168496379059140942949334020185514523823690651155413232114452484113632902431515134263303210432097210522588716073204970198159448440884911103308997559906958223001079988862575128646724237111956419155323218791860963831025354911276054901351559509774276434608268052537931327751294634963955486795530002068234262917969612869123857382634446296927977978424989373728095931069011014966011756572978284609972763022416696362187511932416361478339939462439339081400067062598565590762420552615803047863056926254541851478076053696678512381883307598264550373012119307435442606603516813532726451296992207096633069082230354933758856520183394169787834825431609644773298654380453570800488419283876243693255109173549252727846579538176669989233797426016690506626865639927589116379950624213210329913467280224232551224909398357286627321050341157056950464752922147082255420578688642669955625269289892109862470268821124324622783188446416436653788749884195377284710003500931131656463406548321022397391620296265286652061801926190839037564796825232580264378019517386432729437302539185587065408877555052764518475028178952083022434964368099752133929894412100274170405572592510095826671988951219068270086665059541590904822704907926423559558038981571787668618223355466443748112520365824521989495862129507144206825485459930390492439424908582438848467251429299409101942135845945538395861208727186686024126883003837740922780487156617124867462835406952398898467166630168082418195922910457915857601490802317317351508480164419995709252106896926958879720455908223789648308956159884381485098144358240665672789937320372400195230800876700439206696830502471215117236386112000358720750707672067039547208864679291232359513954456303125925878265296503765370396599750388536477579042508192288533384797267735947818032120481829803008565111961946605237359339861888665480690999933042363311475780696650112570130447361261786107766675735795157925747947188006741729599797265467346726567638627346787403502770154863768121762607225620410348445955722804763260240054509880779109491637819359083468678259818612597550151749822867978959071976377600779817289588698798953198167375186019664858683698791942818053749729015368911878346055202749996309422413952979228190683923973249438486082433458753238704651528835232685122589023397320161371774959592468444409617177929884455564855829288710744847049188068215157684927304755005496553989071098316008776396712454629986494286552707807572999267977740098187170010765224032003154493076818238164143246988573092358607628259218050952696729260908444923063194939279380025876135987255673796804931221489747413572481525880883760877544418947060467206659151169498892821762222428864994395412447454810595529464727874743425879772037332104041026457534663227608187399672968279798767058320465906023566355470117299455217298819417550473519821800012746630292998778862146250883469134301028892205089898088985260104922888500938720821777138647427795262816274165288420625431595055143296974786954692182456316492414669782016332703280143762730441590121139089516338240615176128875458880188735431056971760440746735996740898741932722710301877844183877240389976193926329816377394952964449102401612283117566794302340803622126891252188283785855874308837622213965868555342735848748834857394794148408999319728695752578129548711538786842023967352822352325016402049755128392067307699385400375979874435779403482003630192980523260641864596040805951650424281687866822017256545453299865872825624751351678816413015937070259173006872591365796824877207188595365631135440642059335655065840565279627534601998393205720369570774005106471266313163395232898790211598455285955946816462807315234008808447290252503804936495948417796620292129831973470999800960556964171945229630430686169526612166649060921522462682611012168266444263357089414805314755852262666788531781505166650547400976064404193111470792779637112573353563354186325282480646957885504531415925893596247438849929015126665620825055844739847621654244359310725352523085572121863133756056674469013909374546590279229920552043804811104907981440658901090210005528184011673927847862079347989110547961801393651186127649386736460682440892959453429363316746067417821794559158618257946835258124636363127776339448647122027831680761876572460420382705812917099271375501986186514010558919450310421814064262732694225171156330154153396070881339985099968590038547754687149689688271377707253427555314979785659053343992477195459640952114126948276025029477788823923039562468346605238881536943982172384649037067968869600427767439067492730345977604487311915666770043670263572464070777981671336923356714180881497917635303572434618308469464455951181594365942971799855513491676146258933657740954883385162305066055316496494203127464457728802718709713368180447184068484914775917678581474084250479111023853210696962499571159119792840146300043026718336683300998004102517626168176575494365884015011830822411238565677631876349075176308115796371342428789168037024977230957123841464693657430006385402247050047459674962153215906147880054500492938389315054232632253188931958068332439827136033076617200068860120402906450800520327150087190780112131841784483739524453450210762604803026186016665868580229787189789850202459435812345835340595497905450089645772620143062502070340382960197737201972657824477124233015231204642626988045100530310215089681926950415774338435404847973282317853790417073791570802617058803560195185989699347315731057468558356255862259895508203661797474439867641252172911347959532392998623271666462859969387540555230707885961943537296349865745350789198599967869626777312266833582199769321217855417599193145254306877398446200252965632715198448769377826553073039313185093319953944254420860515117131306937379661415210035283175738124122154438108648466032940623682128378972470244366523585475572721104827335670363437918433165879467232948260039126879480018631360983546516293434017908358252756175975367050663226299357787662232846595952130787458255222212605863461447733412824975440501827649025333303775438550067644869861699653447176965482525811776307626451802566188763056813738955008785506704288018614114016291209562105529622611243352407560115801229035813571711117290780099423129860079600624640541527755798775505914078139567242670002702654084330797112357810322723986285809778855035869854594777825865645616401987501911638449106832869415578800674189476100577505271574417778455587096900066078463417664202518212722808630134294447155119916643020195387374724386102462441769716954747382216697778198557408771017022737502830821832902687849752196149494426718569267776500059006134207170250762200694052139563873299595457942530738591807060758087494833698071496279898879713141595351342013434888125253864332257049521176550921498716150146372683788535101629286859405822429343635458578920749689548225298429892722853962294954043787542393241614872111463889887300139873656236354463129139435118043674644574348966131284578667399934334679081771826295414146151649139553859719244343934666538832829649247054034507347439160563115614961263150238809508172985683705443941026798248401820195196797978295656124359242680317831127511198638771708971369455022726851578423618357714572234132978029144701421878291273527810479092942420423110793694469910314286651464603263380090740891443518567804539606506212531874732587912609743777784146434820595557190913419488624259195644543559233320211089968436429325633078730309276656993590142457598798053946983370908114164526335208204901301230619226905726741818383926873486507609217269757308329327905583226651678749366648981091387228826498537636646711025370139521620279075182614287442126572452440566722755531336256159753208208036075403021161580532545038832520125457604420441986439036196046645082833595194527326315163199287324348964280268306692793233021104516864228981437223983493685701551207486958971068277376012846304981393878415204175987324803480658817406668674070079875408276621761842965456868973260653298122542082811220228421844322621315205857757756663448202845001150157948619285608811459432012976988369671673051906759322009356449543781714103776805908567423312307815489001696109054642273131791997640518577799995105663787852044083314376831508144011289564893790256280598566115350215368732536861133771110894824172112265678060917774969227010049159858937502457958090083087850030926257821807417486739696415704492212447932619093235291334809764553096188691634763747760218833123416029190150897153820350260547870217937337217539329883918374152432758204879130175339055957215029189317784371771414385577934135717788257014777691247306677064187949248677421671233818556451036561237362980859065983516659501295128732641157945774931579495949806590761813676251233902687461989910905327814894917997718891173166675756694172942749809534500877115079747581295989353690384314897803761810532399999669474853895882992757909626979269048633635355115769859037450576332763377480054219199741614384945345835150095098327375431641259439299715990263012244569842053680794056044278102918386032263844214668647436539534242887497327117635152881117248523173661082112867995667088194549774839836802097427046209519876392361511388931643111713045983756527351103076494751422070264799564125850730924238374144120258279520915469599636228707421811656224294507961731650439639191234048237547157501058201994232648190793605231858486390733220226740729694944593072900690714600370824541969960379431320905558282916172094185823334534634948021370189350340181369714537463291860695140976324424757908721515168408693490203549463470580855888654950241321497151162847266032496473951510256634357147645168081091276166156352552630516649107908554746674076710451516811607413702630491553622126296817844634426477098344253916311474039570095081025579358478887292663959794488114538011666077506584752956029380940796163409210863756443995317523053567692364961770462056956519222747769285911002346860839451507270137366477845149910815335825647835113796640389614071279444090373858021580710365246360521172107684367869754750142782259437356768671670856903830174049455361687382362557492373328755950383895481456878713202749881277334637954832083242292489300336969378267837958439305620907345671210870331960043155192828851337285887663056018576444741036766670502753892337810036251207326449475721227822955280334557321652570955220979539423131342993019727478394768556177269358560469171840341427957465579461358144993350501707222099481253820612057180785213686439947341394590588701793545680973986370248568349152491842284756586612408476884082221698462258783125752174414964393001108896355169453019293307118117130869258313218039136102651446916023193108207106236200176527832032365814589780328399186785069845789538672271846995064397704287592226519987482366506892364277266798965443729837697821538895135243341935240970989077866389860508342071453795873694980122666042974422655789510214110989434044138778615991336681876199942261379626560553152725962341661167484871710948002800851642579109024936160975215320159801393345527579129758812110713959597239618672460417762606067804840346729695853978663938583086315158759499071228869575196990859969188959891371655703306730756157262735868590133789053588511290886839222640294265217078601867384001935253617719901764350698171507423402210746775404225010891236497719593155846408039087393318284051749326053286386198020809631860058069766829275316062740460613111286151770412178812074479245024839632811611013967484507773350336093626492162910167579366500375454500375260943527460406739286040937449187017849076684671580173740400101806727234746402080717134483423110516329054633488174707780883226478862648867518076665410826030022639403471037513367127203725488322828614768009116788458399492030167407782752486457451939375536808260313500370271540021073487282008815687887905783062926142689559277359632600461204703764417810473493735177079486165359170850017749220785617210459250946530545156425724561839188288163841382988245632879546797740597952719783493686859623688072093955830936243348298457261651786204532768527212762556890776530814032055692657194979661386738824211372163027387019827463832722019108279864419702929555576499024264554108648954608890509135790121749876942594472907415188610736140476097227388188213493894770795958846916505162407530512805492856595154456960766458426851677659496031940774508013754316272052326038606508213441237738678946413931997060569593829196013409046849975035291602352596541661317417451390673169651322548352516539106797784431340317386767979801283322605734784401042786573015390170732644190694232993649913767246953366404706744612403462868975620137258313939743254425162680611575085271634321395735372270286207335518315909929509544159342937508117977272187347268552204614145391601794221696397071702610240111094129334833829901267783365233605555588091435926824596548785945629372581895357424523633527205121722750552005573919750596000560378543112793551170092217039460109114419597342548024950380197343473080698376634787583599938150523492200704500031855168167688446739989123652114180869532724472248362805982124686758708025671653327606074323190151698642647311336985881556006729221632117415545254472439238508235899890410219809460079752844517203289716419888653304517327822953661350334573771249565449018487817739557695689566227798547324237917102172048655106866732301164177453778329114882629050240294026701694094466943980286001226261537901217946607119717967415164300213273730207791718160711810039957047564325679682053829960061340267594326454411885569383822991813642812008460753401972018870211417487271016654481024099355379039791530556094778021654758715008213365831399870210054055073048884810719153811463596014813269063517591521656016525350712197831638835673476919788870917078089364353293182919030204247756205279736058726991014799315057322457522357408718018911242112645381115241814242945081988307350059575134604834873616984242785811888971349391251768156607124753597322793504791763356319132954828834244967140633198523017850626635432411096678696024855156412222073512995317547727848899998990582815881286178148542778617875322586264149214686214476984513275905751488021294678116449418788461460649318370560086985396277460025794285171203154105293221275941424482109197991914421345302140945822910083004130414984279562059221416568334732198405752242000365073590090006669072106710306245156826854582277266577982490380678747463795594618915446741276354379385755746119253713544380773880276581034000360245288630470791034880475912986858960496840160352308756492607073859095745600992445985919847037940040373207090264552760145263683740291399549838811736336933835402950160794470070851589522440368295787351014158421926656398652554358168983864662828829264554378715255530755036838264718714835723020786117843195223675824779302929938595308576567989015244767932090273722505315902087849269435482230791199585886808368330279293934515982297388360818073352546440413884221156335479060336885076084635222112039832654933411971129463382150055624829723714260701416848730721956828543441699489989304005950909388942531822685901911629171881847932196364709193537718578212071164676408104231560735508772577376130255328250990195714005146052558923785733230720094687007338226141167769866654922111679631549867977536762311134417462429468923476074487628443796909791330703758501225586003143327599162695495504965020758453639046596957135884594461602812416387927961086897981094659303604093421291066430921485598805795008615702977900846164496210470058956882116854982059925003269956127010092730530037416272525049750404622164847138152104841743136046235397653752282303020694450586114048931672633443757027919912316939692016425138061060455160063791789791625662656001674901226883376383142328106027017863218139655468425711781064106651909321368666143381002350368616787908423284459985115995041551754534421260356881248075502748703300016637765174042444884161991878536081497943775405450602648621926799743868477761519871207908911473113192498869326061217188471614645343936001525047889402544114615721123531125897754189982655942306332232141368740754206792754434181847934120079377421923074787277394229464697952827749332929989984981147584950120019864272482450182840772717539656303580025329629010466401308993281025812553120314363099164878856966052321178838510481477939227046430035157839634157189098161350565826824716166331154026769200207446015033201632936536711276301165198957307776096228104438074313625135749634968240365102650761606039230660341739635160772661328316466472577442737090441486786384101803980168593160522759662100251837970345395312534094232394100710905808615674318831350729460449235903051177959882120215651240597569984041050188132122693435710786737444244694833103519102940350979392718280390905307452696752546213446281103653165738886668586581211603844298530878980288019572524649304278044588974974248588005839712064295990052579192374372079462290192166078106269286833278122975835821646238214647468376771191417281486798816928568545763014213621973776646747258769391798230837781727404412223244515951141004750793434370719929865330720534800398337440271810122941776000860456311194262442946380813662635005540297829656120624070096580191882804530630717513632649962761760223237752775235717736555267718026545943730983678475397223798710373261201406345122684261910417279995854681168201841328661066296057781154010551686692839032801141842347068766764398864263790497291147056642908913356831274914824914769476872614409308399930738158960129747750280932018946212299526886771780929891151917401783354354929313406929139632447446492503358078475331791414422424365871716236506586635277948406535179018953768804733797897276473071736622018921437942411732881648012361780912586958584312799611401604242091126193291437918957923086761055305409629962393394011669014435347468132924788960979179542009008214563628320415062735141070106115468976680587143951302364446923878589624627552148704182066847924164667736269309864393623019404142700980368809125695968405007602882951441883649381216311309917095365372540581423808238650611606628888855340836728793476834393859319092418497638374334537986878315334744255831110671556934196743960725180405936717625223859241125681651397748855440841974013131340898329973469355668753659997814667979224916568962430806628403883493866151752454036284492146013541144627773704592646773561483818781008185888714881434696083982423195176968577899937957039380462543430415231826319007570318719749626531754636300780765562693710602290592382981512128538831588692757437917193683377048499745627302345090653030784690553490228105975937623451971298647611395117948899785882147692494457234251805970273631996089816235246755413905961091837211057118430004471649104589498406307073328212687721741910108508685339032850949353737428646586752055467129835923782835527269699569784823653294041374279521664205348564168605184976034830244489847898963653627567683275918437341218478219468563499825333648264477698609763641463057965326709214509327985582780891927935119902653395217766927861771544840326207234860551320469782548818495298419291215886615396610048693965223377794890699072461541662629505729538928646211305993962169213628187980506502973094828832925570667030772257032833502623746717689925424122801300517307187993968412180294703410025438483090116013890505286204806059786376594140931475985245054580544344943684891482564005982910188978273687391326746774764866639331348994480378100509697043245358815681104988144829165770317675308705799194159020730890346132816311086636902639104089258401787401769181955181158959640950141501692348331308329599757743421620713817332702228439687142784325363170151223645533523560695438310798001927871001182175410268153427477609820988226953537380808101462439688471752001830533088152253563452994923401426785168884628218894435821158040389786939758525937135485704568248502163021162030176196765846327269981153828232076546117190162105096794649177017278267419897773430828805134140634193191070396537911819003935748666721732041483901168284831640283285350855955601264019422152167530413691007805310080542459902255455712568906973027868873280324513567043608084488455519462417368669014794514716675850283930994549991585271316674046052892109343165084251960773692226845861691070962099783765548631736713384341888640999758669093069072308777851637706867166002709065750580994809120958188546814951475764957258203574552379108575655889242668067119777980156279472039844161301365247326617516663790463854590425078314228555856513934538800123612080653101121298821570935452476066451372209859626177158724576938814765840773549573749549784824406056896015117359180274879269911065124803123577140059314422256171286440202715761273517059667777363145983985049363999579078522681017403540320644286274770174471478762832205489647532372711109833438918486467545175419672342892706024959050631580628268187472869813730505499881346742746511172775080726675329949221256029014713515995710174927162063522295671250619493091359892018597871927532601392663833943393180403402409603707067515212068666442126493846847498149146003967799426433266588901048687097846469871249628645241631482173315503108974428734187628935148583417355798557583557954938022088329180496800676803161107962283384522183365041474343304925663987446750053809544637656359280222529290873725987526813427076135431563131532201279805231521032342678109271073949304867042307704482850494776330428977968759982658675962343022835190552141565227130629932957398934947690497963738439643848436498674759117078666217977327677346333624728469362371924430411810687336114526458252573768640589914523381946644857763859777425792941273678723327523154685790947522763312435413308222316714217377350182949859039354571235607989755071374445599342054563737296371790571462518503666601391121919124870871142309252636586957270560846400454280443967889837917798793390825811340888459194506213609812172630322753248031643138579366834519528278858016944859253756831362896738804977767470454826262614034689343755047744042212773418568451672018437979410578417853627359520286958029439248320649160278034354523210168189270888618667215292850502518813503972858511180496946766782314756107968192076100038353853556757997634707986783972870439650641715685942594630449853731773848144563474117950018934348148051253367945509138415901175358266574740256199270371629779120164214174099174519088982310556324030089849326990784570769622386638614226496677629072826045285959373954587413597183200473708048398626492181145652176110637205288673505257468513028113626857484001908995329747485366431535515294870593308317328930776608946064560142681248764800349353353870422457487547224119271277996373201391871448769460367100281154628410609139423767802617821906569602529712046098081580041151011999753182182634543743428640819332213634229212536561445581376893723577686950482385542819530325650688623532106066524441853154692924723021898346386585572967293953189680408957204519714877451699741160310037028725713384308817938015634304618911316183161366265664294232348678101363275380920902246073663977465940331333465281241397585593333876360026068637822661390582594982633786895514115301731597573358031939739613089308637235845922082973714060893067986614718693276905230418171463800187653866915820354596882838660934515078248632581191754833114174473489095715608717522485789627698605863575773754324890043328636697772975157870171957315107336276989999144704498465444127766521993726171276048653636704400147968169820928776115165763597665037354523858927279759333703578854607378557043076136321822030810898774753400974889036649382803054894676436758305049436846599355014235881159111728072587328221626377305756496110660541155723636038255175579032065016355994442380280616437630652769660545920133664571105198245288091566688385867111727342328066949092107498424693333887306115773386157105881593141062948474650438132638982502554589810558293371749496673193873237227019080350412501166460881913697274383904857563175489535295383045572147577121185083769831206931617861659359889380470724328778240835060726866566070482107467284284167371416369926492603468893768707310839789235045880203059541119779635152175143791246367514845066841144399346889165260042912982050334725945794411702955544044570564162338265723921514383275744362100852622224987087500028636653371902527683668389773789255455566814274562176469302530343381676995124930271205882864895260477539908014807100004477262280791471788534611123465095806862236529447771723756189800449379544053770472195987475382122901064487584139535177939147620088769313433683257250882034910626756544422513308235112346202560784615356123219947223366006809278995093855330473670897264992387056358454407387756646938788107334996071667916281756594173752392621696459540159551584012957169771164020916678749398108657708504671410589444825453498592026308728527544178916569980044937040545173457498270503071418310267190407648962431033730681593591493209061992788310203665938242118662481231170395795990360885443668928078667479804420779452201301996776769043075481211297031722822877937385776806334449621463562359723205112889845915812604805825149185016899818448380850534855472799417482220145355025601321888684966581068031045962018602872754946896987900044065785921555448744633646250782103178322287693093922943281868674528266032015578324645582262428080004161767637382773451382665958246697058697289466430488674735499987960395030175936724405753729563343808412217946400504747466533316242297003399979222615010184182452599281189657333870112304028480746961493564600918518353639998316272671845094077661496871460297020037648710893759899849077018822799818964925752288914759188641042293807345296996862593290019218728568467954499816790534249755732791536415347701283343394175454552891943340923244976129005787945463548340979720647253570530910188052448408473226629672299952509108170398903591344383236526097218624059800693069299713298774324395593036418910064272287231201829543747081445997350754507453434087944082442901196425652819128611736981525325113178919444504606993343529057562747223396921383279930132664163897559233980705723453567607273698173263037531320445380728124106261240409255297239151590072413733384288255312325969801012427963314751768704732258287576946764875364496950565031841016742222659905869752043807993308357974101834355442267257421461127858348619139879789641025515658593980476298478298536495669516526013389822090110654178677198833520851208978147589456483789313411933014697711842698770109611419538016000302881674035606574788896789341768437090225795933694914341102694948470394197394570253518571766458472591753064501799638076904410739555755699013073782936050715577450571023128375295711545568023763617095360048003064731283159631432974015801458063986386594271832970689938171487202898073135004964412659777433017859765296833952157199234090690835857567650172720319686097248614604241698167872885383460889817533806687100410396810877978642149246353494152182055726590649520435698366748224884472373842204036816026173791124868458260068112518281026986539828275869042910361938255701625061898452107456478651349219490332765271156705699268344581401494915125468636040072098554761989537667030658438823395624312136750323565603871662874238448493892483030915056750651228029664206799005838371792813154113752882805506598617644800115156609058753212612545839806201464834771217344513044674841023064280864316443777410702821900675976710870714726796640315836028447731761951260127137741432464969059225306012514258704686026450009617798991372898687909094325273976882701400733753466032093906248746720528026713607236531031474962991221064358558723447003709270078629480299349862506383352750064011358001316379036600937942406124113105414611161745368969612170657345232363877162334060064700134341857627189554633063110537437630207614096485016290783310445988352691823280567234982892146544450950510092611677487731403926914942131859777687401909136735522776184662734191110569050736420328657188575636610933724443182641915635181912353980413615474486442462490512282173590719858922451266405731682520459696731288222542188894569989868001760093068964047511234848490794573255408796824813708017442200206799430841166936346014380714736799964860553344221562091544356731097468583537487622578457836317141229898422295407423135932684945290014717324951128835375686998331665796664441569150923543732011593961021333110875615917600517058344927957567167715901607637067079446334634210250630850369113432121677859917283091732862369093149932224839450845168797252575617011132226858052089313391769741577574438344678260090041197952782141401233252878578675269634830817759878373485002729193362893807245245288643313262553828684646782746583517982329662664736755572679584173998788045609475305834579141689362709168971429752743063876946558267121896417598553624384263355520593513061469252956830605348574457906061385973869390104214728278833200099041808941304057324544113065951854420127825738993198263261243509653676702504016943854426906491101199259409630394833761188605099219907193383192829628435446789695929781863881540645258955426407881531292893387330582056154965459526425239509645740794465931004356952143747399685481350436495220401245103110800557581758983911392697501450058470372766981991071016280064491396635156137472109146534194947178296878093563747054823051139366118505811686555043176594017187288062469653072142251735913342931095446625656641579362501988611504791607182795848480762511576034741488952415728175630784205386349063923252207979452744169270999655746571596882611681836351579886850251727557843383949486557682898614305913061343626461578921670986220694691534803587024525626252656948799075030638991571928287774540445885789870974878809405124370166925884177928286635898739423318223983155643937283743071261840156511001132829191443281817172712695188015236100864811701464416717097237483203727807356791065897641616344211919086467322772268011984633812028701856442048749139477040750856558723009203313986508540048545722704152101248950210206140863495207542250929581175743488098808031128018896688609508900002842500606543472945458749102080135046181831501866934474199723754972922207911589556739961737833892458417134825824645832024262449360063567164212715339516331416292651235952948009572671274901180204737885679013840300724704821734480147277566485530027694057707453364126242495412846419403042458703921758636682226987883130687312032220362260011483324672632129542455821055389366016285869745442865649213612800892016873622539163371825132293668024306471872695601873125121002645514792979589030277029859819882033305196956675819463422289426909453153102029733398046390001558180601635954189181279721132232190327087957671588175664242693961554858086450121745785228948340406526882010820729407918636150624321734325495185905780136428040564700759797812089522813661071102163075764235950212523061537149662357410531861542494760577416068238722233391156676918409068418699132545809381422809780210265719611698973817053362286764685072707330838770442528999885288797941279200412229645434815515921827340907195312309574402629782628035605015995428645988997964099345888254811968090206675666956761665248107930085544985154452759881690619495160025071215564799021500763586872183032707810137660689116718780327604055899367250397705295645512922962344060729154183823454545222865049305253767361471467679517101947863418256749676746687395321766037209817947696253999717858935847884979408175511234763328678881001785254291355551954493846089651469873368872061390686310936000127917867489797226010174425003270992189625582822307153391182895260933926205355828003239404285839904406003177121084659826370658855786896342622997827197019109126952399461437641456233584066511722364677124397752883179993276969517828541681738298929170660581932464474832160670237483181990352397150309452412901445659584726534971168861131979747112870192219598652586109972214173075223373269268174847566812631820171511150766555070584930295536502185372795489573756768719660325212522124703297466695017733472886956165899096071394871409431569443463477258615996220906398218224469544909890812343716669309241555532258507955125061995276171294647783307103619530822221161000067204235659292094280682311471865371788663225564228573149561752571842511992551691548001290589068269912721225844877440597885623813601406559461614328122380813580490550428492341092506140796906587506047772814046486731175297403303193756352099033745469064908076158509716735423600893750025138221559305195754719720803493177487806994984127608523428203605205045916333673197488900736300319740808250066535118742621794781460272247080877919594169626654094524749628241612193430899321755120058519435404656062787610264175635910441025773865457752829241794306038933434538519772278712746914964202876604220668599886479930051761900422597074311063832359018306512891991154926763470428920016520812874517817063415950152857509575568409802326418357523272947810144442798021586005736438068342248049011422850210284036512257243025466315063312421729703895113138086695534680012630750838974890502251902666641559310548608226159688088078826005434578468694787178780770050232748937198733165451374249377481406674254763781045049889558702489880846637366321334326178719136121840893174135458091131047771997900099227333612925606533776754982908802492355828190575288700301550965728779335860354129764872121678376235432909450906417463792746820272991868096413637648361081805557455193088193393667756925723091049518059361765253447678937896055701808930559681522791413616692994072364294137360093444166851365578099629435277195669365057461335904693991580344033401208656530264472555426846408418643913770069388944067155962129962851524215384574791491065856066566425535928884779435130682809804571372004962284563850168970958243444012858205072031296705465394952245443141915164486627629288816528419503145935912973333592027379374136835008543446777545863485757741151528274940662938808164194420018495735075509873551737414920876590723564955047343530679568499911878782410791126898263137192840524350354062898781540392109750431570202482936136272187248839386565887296279651563671941957616833897586037260875219055934105296378470745428904590130703690740598041636308061832502005974999885641607723731637804824840971517475533718303765195168001568690871791518197048664620673780450679928992490933914306869510364943729659414983142739054252063823819098124649831571201253138723770570108153435795211732037115931668150720355688572882663331607224318144099663569154300849835359016695779267380882656066827884603084089034281879671119267091955632552900876289488359553759896302346680890117249179615353929776942935384856086434196424234507035756251992290873488023377035574974155642987286625530170087532119504288220084352569297315293998856957206951383782001844119594124949787875592994129405035202521500062576078268433149563878210361176696209040639791875460558188285447756057309233331355835902637868804218193175448835855965557114475013769557053649583807728773021913210740913012681478347704183101408823440319790283439559716998632077061976483956825250624324042024521393774787523856140343672891091422693341013399587006251948611272627615573398686753387034269066462482921341409033809658324650129550209444697400223067321337710326724724920284523378683573399376486168099736910483501301475527373931532498977393114512074776854297406365251613579736426022021293059903069802847851186670854827835839735927480563972934438587316956266510035347512527127366500758524167378113623970722547779308126472024923066380722400007143987610639709594673442963344798795297861218006608606360635365105891508407312889280953459009327256315496793327418851804879050415481836549217390318932628683045997616675252684615590853323379896745056474592760139282186913643813793677375564785328565382291730006823605076994323060307945277310826570640350831378950737513356422127510346249223142728953190085491545675065781562909489309495772985145245472382813298181785232616846069899422541523589744436677828690425135062099845007667608202514530364564950223899971673710648419027179833670499891228528344310888030636231438889137054242800988175816825443520635712201684014445737443512261856164812818818226119354477464209867130826551428223495603148304284741805581411821474294043751823473532437166565633667309142725810745194684048429907882651697751553564955618669022752201665984853852339604347914677665171084730201633861375079684547719145069336765979826243551833504198784630490714298193012557832022832429928496851899271235581984733523469790498302287059161537448273248277746311953747370278706317032805089817626545027676748554514791716157749547565092872823414107271212562228281795298526599545710539756484536797541269701146087005390696806661301136159535098751631008508038514576821627366573069404522353171402268907372942686211503898323446752853666642246921894386723860849249641273418087809647963571763638614015969729384607756623153915175223591280626009336446896711803986999988233509145372475647737191703515050975298357784985283807806399123848811102096196569779804359845859844405460587723918708313332606277079746167604554055866234657485167544466183632423894253446912902904957933330422859065938169289299440515736562437251952590664334623117496580523018991457333525465407614360966471090121413797832755638284748015350348859288655525341864557837796755351538461157782955903763272399934452759670998311261639954563700813805500924119515374375893749632614671214678167863167457512889451194051447798080712050186943185364752137142941678447235466374840483620781852009480520692070255831737981212660385658409019949891337685024161471631408017835547731833533776528249552920193770584170929620982906420892919032956801923142106565986538471821352590246768538739779140863114606711688429464012150836825216753442308225874127069681795537388963805674289977419651236508255760167170960517606114051538742463389195349102175114144425502132928513797526889578691968628595188700035204622867741565097198303543258933357286382933029927320865263727133036004403975905609907801985966682497976434560327649566685161952031439655785807955956785690883369870059330086087703187581765566502261544364662981172782852514951673222629545945305147467196636427991262288809143206748054694217800032132305833878508732069060047869220867458840818320237202909611677325873695957744538727864361283583490555254693186096128026608843072757475430146990483550697295193196502830495904517850868967058913193059626635640719982912552175701139697978152341576269240554352903519745351899579336730497497435699408618592624224285271175955644310668171344143224897053135106093028941556958134897405447242841181801426348607796592838288701432051276507167970518457610573048672870407491805657864334233716311911898428608854327115376786540126099938837563767359480733350464968028047421354758202485055362652733256091115985520014506152429947707183685336983718799371302096290069409419432064057907634581817273624510569993966084152868167075276296769026618503998456274460415306715520646288772440107981629820143868986574924639012035758550384148574923279439355614691490918899380016710383969598275068579746535399339527026657647568998976134545432915265041407884875193609814638765213666858420775193436237839060827607475073477289667835456480728206133326146030789560232761292387628459985834063509111650094906375687526200925525760287313118408896270232932227085424826903755221141733225011202630347154014661303658727391140137646357510890463298554270851151453564373374155984736450942919921840692426289486747355087297412438029184920958109440717209180598721382916086743064688423708717528091552472512129291725337453421318180101098417712828713660641690433380299708539409915232932130056293770301167429455155240113007683174699386717451027661220613392160025419093524101378060615134057020879206931539989298620821079671978120404925149190633966296438673446829604889609721829829287413028072768792739701230741328842438502367947041307991919750382550371059385140417339628900208989230059358853293589526946767775169565797813892141735814680644962151770245314738248547620159907814342611118677701857086454265559129336293986824380339051428740734435947067405014817520005844450494957293841450027781051581365742638472362183340165809254018567198210129169455875452325820022429123835389054484207281978724164811441550902261708002450759931783241574969610346103845190566386809502738542033454616860036418060198495931287227502947287215140066900063083028118976751127818830773373792083082607679412856510381842619466165438771556523891993339792636574210930249824897667037221296075401061551932384685893967649086329588981591304054246110144797735696349207101148422461688790932214600105279566744680872895551679957201447683993997595296262763547020858800234554124818236910029253425919460990943137909055814247598225140318336854640173246533830450680594021763258172486758556365918554482287576897745139969865419322409044497176315263815986116477897692847089527119424787394912460947542137816478419519780547955287692112175407379586302109577666564152498000261162851170371993133075950850466447006539720095567242347007548271199722009457492413728967125611482184591883898316217432908747192992982803544151070958018855759961701111687724575600500176499585169552290232758288553535985281820543166284060845489485597605823398936746145526702464692440493745028476257995160645084721822055755874316513729461433504072715706612678239313755146407474113620695311124106981938110787830028291771062923379041549452627502736827307138306023573304246707314984786534208630796513418255336676868294846823808842787283846125319760094258020383253314676073019786356609776983512877245272234951107603637288266851391791511253097596590974397629484627531475667252208879757835813708946469393685550578053732566195159282925697621699943515702954787804812111231693583437774443760712773273420917686502060354101429346947027110854297118578359046984986709452107602318996523290107492105814672755293008171754956613218127699586374776822796730282822295053551787775436393606822283650537677892459901757629640327901131195453729131763307015169010178155838674169613613947186308630046948885104965544322635510323795775370654096269366570498058504785976963098915228786671639169036210967485401065067726059448459795490566721657949279946526414169672770815415590047256981969976482261520016447335457754564390515983606607573217400695026563552538203646812852965655700586250496372443697866956585401445903831023527988864765422710822365288660663505108430527680372210273824813398574282345669140630574227552723064075830306967571859057093212747498929053040657800724154898149892144646488212473903687468412074600302234750087768551665695384239768822841395652519210495491757402195413442145602328211487530335330551033466107541203303537444456465537075599581319250883134033581955705264186903998184380834715899569162251061937507075260918816216566550976014180668410963067486400623922585333075516472563996287062794107362827816114567164907314586661730280264028859194881767575420785460399961848611048918504899856566843902672034092707704260849170357511683490017298710581686929712421628390338317026029056860742125897210521909576861264458319250919419777526573365778947823972916871390421729027103499075154965824633811161403066532383791171163053421457619578292964563263533721538275672588814077447816197646007563164185589247505662812431573437973911366587341019011912413715361805141064678593745603609104494500021159576184443658419256277052187806657615452968694914807511798521464026806654938637506761272289135957799206322915421437797292400525452925574977681340818728014549498671641264140477059582535029459325469885062931273438276172760047245342905936640643990706425070033782602456062144462135821423332182430912449462073906650243382724410201263099973935029307470772471758864836940609842896265090624956217305927778139484355478756418738909094142947968234102097757772180032277181195719174474828952084935603508269186625930580636603724893175364082420595962562101506865111163169530404372311815239815115692096498602734352613463654701306753699524451367458723126069451028750583079784717185323885357759465836606820105664041392930509056891490846197145296535874996072857608154485723997572726906130271411097768199413724287722604324513227672539601633272855611659867806425732624275436878961613117869901627812568660108343543839941142636348219637644662617715798338302653710622726269116030756004704851808627419357208694485585291085214619010307009241965707016386384408715263615991422076464059590087412957315853305243505288464471338631731491065725317744332180710472982305584243288583976758439598971471474294669003587997243860816236389944524797755672854183233766730156574226942778024381084458251356420726606386861681451266732032323704037754341118565972024517867024830537865314752633378110802816617744953521101300831616451202017080852255110670928734452297133068735030639348215689475992625796661888276687667724412867775476642386308846153515183873881423266219534629920853347184743937157078305775636781717928520057551360193978672045596601805472504078271560988898734082522332078654966872906760825491285645297842011495335307987584020722747596371782321256838559396465012934599991549590585258321686188137828170079647479680492394513222353752069629866620295657136599066697127372753607699322826788852141902856440765980897374866471513587783252209426962370484019682926297940183664894488664902148258498288897461807138323129006187092019322663552449029242193166873058537848407480006417358910302669036860650949793378653941420461183434545312980144246156055881500783457667706556765057340682822420597073151227668387631134216617674953591881797976986301786172797620639058028984262275518156305056637777538482119260476581275237175341053316521393262493001261329307842751785566401660140915548054178787157224229362995561812881465346493753598336048848180042900963534880663088167536172672138286158710821301910950148761843597895927857516477076750353481042292709878332824628120885610643151688246184060909041064958078368431510447822570686683819878280819192172665095542214249363811547606891649828256049697793389121736355879001676798291225676647408894567830307820157998903883466906246669491177487791120786959412967068418664664064899091278114988558537529568719206371263277257295167176837671735172335310277806126791641358427193779131739596990160398029534594995277722114429400994002321328069321339236760642738329191227219017126004926138650329999751474138182763556455886244996733029340662991210174860821620484325175297293618937672690675970132128670689604020032378595788361646788522468752078879572395479162759970427809498021628071569873196047670314707172875690528272987861861045523612695847834841588811716240475323995816855830174362337046565403347468221692095984041459409767231373994562300096722700511264386730484419250884483805952795536269934109939970554844760390356485846489531193338257448147439971743629382846967798384231749853053991348803372836017352562768601907737733155813216416045233165875771410273468541566598803137257247843811740077790388698748265130401879029467879977103489853978026796553550268314514764911852779276098011767928953156614493780125040277445668454078103762763811221076920824780533217072474259684315220850360077672142123546933728507321917989194316883987442808665712472740006271199844083050415507855987185810169128081001157030731293699536304352565867175295390730309738949622678780573505690140372904093372494793305302849792679453733949428031145107486206109432210830393005656180364269136935316530652893625422050552402056058094896067202154138590972333362413569074657999340558989423382212249354357654914492030471852288626447387777028799453260371471674683700596476835129569390393379662451108625992025337567389233363529199792720120633670248231293053507379825039135016606224930677524880751906058634023284726873954450951333785778825168403988616881939921614473033813758456721213304921331598207857998106494644054781499163320523140064673396557453370531051339609898800838103781424658118574209127345944554185442643674166338926765184576871786656496405152544804266155782704887427362106030012465248693242646536604996654965624873170172612072668729668720365646190793521627242358780453644404869897918554859522777187179538515196708400686449412331189774207394210210974679454134421775815713883512636665818985703732254817533106508366049084829434280064897119122171556308764442093909143447857739644762569972657467125478987258571908351194554392295071868177167104886621053146036766132963847048870400780573985542754923380120459157459319814792642748871613415187279052161719147420294868001264185664226802376816221316076734744520625993930289580234913036920509184440230267754473528025328317518278970073061068405909329268824618541098700884045714202775747564238448540113439413896144281724246632741043179302250971137189387657343776452168800714399435384520581400478581900943695786963649259488817983657189434852122696419894293831955182367232043546035342856542900271688968930615470864640329166169450202981765325358133787455376225567748843067924791645797349515736497703782081619402672313156783482228459617272683766210620457121832398639896795824791213206334502128121760331430631723121049129492575222235710949401218013149361346159197403924422373344504896409527252168732814981783304071472335224076337739294949915643482261703111163450176522564421808748815479106184472638408785400663884038492046119902966105783829267884914085837138781061889962053565454482225380788822059510982019144832706798682780025660243166485953704083043230098452444648005552144871433784267746764220892471922332951083578183932918462250413264330177043069180946248806230795624479011642994095579064781120438536994150181465221832195581866648468670861816603543478672746207886509039252646804512150077312381950054942542469058256732906499433985614615841445546409184256732909059153177413682213378697906571531435216631508435433733623970375870040081362751376895377419339394311503279725453337575667091269950332096373931246554691866392349432594428231698480229075328082187882451390771407297897412564630909106641917300677177855273433967954760732922598844750610797433695807542103327279593212353549122235223053622230269743958411601748886568745629087905703967207889765434842636963426569549222045328969802807431707745452372918104298078520746397061765349101875039051938146023055412793961582560495510528197722607123365277726540470538847897076412789426883362366918030980307117069308810382205548878503582478096392224457381621626042725570550847377601992007292565064925675969170162467109731072850299177062077381716259681507176918360304120042754442191954660837226750839129959480261475183282517829957433825281383060643064649290821503440547575054622109763886090168759096635976845913026220050418555672369923373925829039762373650610449831965551446441030684077496391514968612244464446138759310232965040506782335420241560461056453809424273795131823531324446062466159817364333205287685451639505853139785340995088665308396438840683431078612098346757151831312853918224896941384081881319221741731030812113538475626775855743349416861603893015154485740366591679065028447510406490062757949166294754458951648756209688547709933979866945463893168885257521838416008920220547557297178245302976596410693404125237968940073276026189565611163384892528898171003163339299627822861921451334582129882389042656819837225352826958410506778905434732220437467159638035208341151632782060735864388533542578839500156798541208801943873543942546441583995754195233805151083538455455613491758782643117273202252610981136911682308905423304509719662991377977798643473918425502358155660705815717823678261766066616597463257496647578632780486873936453824841108069865405456445980618205336322139566296823753469892486827523293709501608599353450976183304440146378091862877502694746880267972993223658944665239445488080750083210064075646730994028751219380240548526328187100379071030624151589360716247135207995105092407830345864052262837924674837136363129423653732241524105274623830914922764610298530370540271861608443978417752048271258494659026903968311352637934187895036277218769621888320354269720503873609121115182199523779856292819443096099001030602662096990072792256557879353995122743554765110661121479819570371880238204722317004206885819445144031018687763415704658652619010675696948699687323296274529686481997706043303868165930464274151392640519031759750974774903292402446279193783803303136435484219116181444088848261834345630891779770103165525902744173238391769042589277281905480408120375728030039095353920867269017998306147451870940036260819382605213677558620235788093971554398302508074510748609149625747057700459304341979776711272395100722013238377756461207055859967743045197813128788810627908422097706228195133757869451126290138602773742921659683636137511288688585948367163594202101503021518401450079064322519685005916335491217326640960951471152847069251623054444336572395566774575463185936075568823951757876326610178811581342983875445090289067494913572928561639314756681498965487820324121860462426663272224775089202965877647376386368601025343530579011647100399116609209927962086859537194493723606149809726702416855835490401121830088050855951706993550614522437031540464805673888876787706392818984295092035580926809003947608786667336591226913995975997933346890235109957329116069465187184688674872635152070340497925781175248219849057959636591862826862541191139562944663782219723601331026162941693885213039173674997329722232063005091375371944259555077620508072708353472948708736371102251571805994863341013389835322359108765502689925600500014816580887426092696604371892265437013934317111408091534328187331535715670128379416107608626146891153168318494988581974380270738053912366816390534638985029190197349416650126155588672906810503476241934830535426270558381398403796670643381476745979054235844239041290288081359628851843657415192350988928264510443865663115684883568689684755574136578071792887728991253100661542407470701428306911839452329931458873121439330121015563712756965464031153420765182318218157877708384509295363540242009910225020193304629395632928991245082901885881464401710553811919909639617519404150849823783907170180322724127931544314507531728584058303004714308420487081803562494698608443818503311363211600709935830455456754925693533530313840057645016315638323672072067924319851936493298202368050142238800895501187566872368879269352931147576678406918834847796094388943425627509113351332892717965027431240077025378837529930547419585454456539292413254745554025438119214132009704966049192173024427764702184056703829033365872301763298510036849150981789488630362001795707041648554013932742832694779820612773413568829408182392025968614412861299823563426475981096450035445129826512948096469038099543487280661086718073405620271782027736835805762239076722156879207767997512884584232071516234280392353755617923666823612270962334623233052240482003136611906738241989052972613748936616766958830410674115184490732971544862163759813837353294927163863066633237925054178527525989700487739779255018630760448148168689243644859994924751130708112091146788578930974140837357810833137226735466066215323320374142215656642156641422930065057970165761537557553953707618287793030764351160834349690634705099875358640876641588318793709895739030922966016937034100927665447622709985838517197459228618521773448815393545656358144854972597747519686225057495744120117042937797016736355214822330267891097663723527971976791783561296404336019768498760374572964140712517144270307164331614002967106752763292120052662793957952009357490839370840440735498506707225533336763698209124808710604002641075107309209979504271180255446255589750193116405867823062814952090917158668760224300253081016375523399431686559583475097823994482107095640151986026363921522048332472248515257411423915395256501519407365996882110560594350187207614556703242366109941988685018986482840206637539305518495855564606907621731864012667323192816025855268536106047140273203635657616811338163358176075630074793141255492225020621477783597586318441673326701057589378231309017727609052348257847150003948978562102747666872850541784315065852878137246217310983563852636041157985334324677168000585086748065893627541062908934100810209629859516136417361300434352769849212450155876349777794289840849799961329868384628809895787184913029334998307850434725603420469128343497495750111866030996039408397792305311522654477332079331154731792338323824137450977785882941708290285549812468029884916177192891572351844858584551644502530100841407331471462542463340225042149813556883956803313020015563706483571850271521793229542795727503286772990667781876225424585149426587715397311196093308549400442106965599819110688287753128090405037676112657970288414661914613566426516290776557698713966169422091121651675998432983021308971817931369223391102993037555019085350066958943198908523726625927895458024453205833469640109802950190022966753881437387882030198565088845531662283465521754779864056911083222651199264606398284458048470454151852601512634431060726845360145626586360486922888704745146683513673324700512360781922560211379660577968337078481970669386822588921847191245505012698902621475494719725824476947400339173408957493809671740431042015621395640596100689886293438303441995191597586318552084295808456613461154891072396012092156951656700949251523877735921123926781900420903455044551065490955690361978862607152029452938157492596267940656102278546325674984227423774517284586247590437745677028166355461233058762568588786481688030302692999776041024006328123358466757308149523340330871679162989290671621211207233628896532263365321533439041109980700754659992279253813234790443383948651037255883080086585489984078630886911459570168469669995749933195010255529600814747071847194460177948837087517766505069721804683863618499867319190164311485201006069543356342367016597300883226974976557097374251233603195602552737473781409162424815967670569285647852369825162441781592036682283905242302862937769006320979651896779870171180117036816711915107163069754277691782898396170444403778616225981545531267677548526254147343034514974686259573913302885258423360238740243887241052784528081326546612356400301277462898504487114011240921402065294307975362202995010643617653972528664002178646399347648373141695590917698766076727959815396066635143677979309344856672371015765731835154083763557333065991676389256036040320612166423898769762989803352613854813128869285935909851373231527086192362946752408709308153610764327441073701238546742634098734427452682239860509313659867521644991938180885274367150052861529276897247749969509374823183433995952127330831218713733884042733864804885668291897203450490945250071957083194570878133312899930082518034620735136659523162306157851635894953936308650398936313564045280901904806372988319909846074754101231078134733390322019447371021234697197709776604750072477129700632817056817037275675135454497703445313943276284536569800275806171793117856269308636600119762191746454083696742217562043967689460084775406141255863949500896143036043738544006594728270867396167428843783309315288393902857448520326260673823930649132534148970742300297270378150668411662599304910188447746027860153102057850407036854197256678489222823562950836073754330746514814768733561962701070059061538845983037749384344991217329181152650040915343637221424128378397939811846350943735646991065941484764159876284683917949290281377714957814577348327920270533735233510177791316216371284335309212428453993862597810022979632597990589315570675315752523149204274948440461625079810451948748390629550844943442763963818566679297036173031568655310416876330819263505200850335556784431439871898997921538545702452588182890220205329196127741532462013129459742001800932465049347896268128245837107311160179863948959686963814538293462087923792616788163649600456654689451471710345445949418549722663971722156891444094471781943763987842429668190752560856921408741251968751280785405344260868212764624023990838043172478680241998801669939024498049459875665934055155139661406769200909073846999511989069735578892589687491316443726356759754424978415802832633009698341733887324686585302256797681926069983327677949478580195454063194995418474826245510142636193565099665074196093719690516670747675112354354937861028955177625126061595097571555415091546356229404169696120416181991938015491692130661241524403446276537022135327003111680322461130301008795134238111861751403033886174517290425121134584503454046122131290186001296306506922050126740070330057832267098497577365592095821459137654207752499816495697651228488953037922220097049744637922488626586762853584905028804444409802693117192129588205332299549095124220971896205691629241174186107745189413363893990718006268158329160732049619590955533244128387811535480344866542419493024908201301316960139461937621349474165635328096873800625860683218233452173869961760402356699309022346862533675343658314011909553554592145271750776368736606294768244948502959568049923489042999144802087911713234471963381260935188302732795558590969895407499480508777342778157413639808147582006749856482355934124832934585024566498273879126652840190707873477196864113638553188008742226216786186973512375677361636417379298775442203074051298600433414606664753841984225472521135249753234210257306866568382014742744957978808376209888416193570181080726789731428201171757019222644044320810041538318272718731429054639761694182991846270549350991479963392518900039664196218471199700980288744421456049072766348321520138480760493679850909866492568320509344358522929750016220628177931660164866311588135447188944690084046976594590161743900761145152260713034433353053751572900364620828510216424864757250173626210948390758833157567859648206143129761659450769905654630276273603945158543963542700184109280284672818615128711334798811135866287103962314046310426065203721774262614232452020590115127770470230672115789291964287832053474571548176435228352229393776748081520110796683366473984400356420106759913614693257918415247670516500364166412731730713512257770393539330455394734880414447455031525284974191406237118602782068334786365279582802092156334049525740891347217412512354984056849045687543595688680173985071458918747433697228944869919236934070295056971830739286489787530612328098517075521919710774684492634103569733049017498748174561943842993000384125302835528921046381499050890739378877228818602852610781872334685459475788821024922340732490102033429206740650823362746698273031571676077679924530733000635996853142980030150422764411776279793918874249892414964067502054124505925503665546698274651945779711117592927809110930209570769742523281058696114000343997828770235857939348203306145618675535815380191817801418555189020045260643374074740076496806223368543910704249081553210018134958918355751392583971673376376233105107227416190041121843553531176021218933102116876181586938964576422101932745756660396998713287355814167662284867109758333549688981014489996297090583989164994589461034674810760555588552393423124210017537628247626718262322807794751696799883325514689503904083450984198096644691199564729934245350343594717919593194079315376534179210677569535396511511984824284215931509570734840430883681615895586739626792767446873863564154566531357607091177853771739967745731058822565334038394230199246849283317544415810975106119155985195815980550355133374002833872101376213445989532753141277196373727021322627328185090681981660074326699126426617744216569146692672721664738068735407523760150016625110436459551018959774093953105935413410121347884819401967798948068854277434414178662074981158953156047616927579763050985593922567643634639713729670784170897571901599860322129379655120713156670795250920032087894921796511848194159009197865401070848995114937403419370185745277128022882913614139287239551701435461049045209163160473454338820766338395567643639694665310967620231651776976490062159153359469115715854542291181759652801165346618340586795141176813352135241923810914930171797240194490465065145395778653590889466519091260662300252775483187892839387743535049690456004695036189439751486973864165209662315713064034132298215807137899848262857201920089776297337408238041854020994968722729736902171099052592776511873818243296010521662592880062795522547541348503100433362589129981076347816117078271971689227335751215016751206572194774061671658589205303845637059059304968135198927796425608781978540201843388517644395862886368102252342443224642110381398138720064376971813412121028426206275076492277736408241497383759018611786116730192029472784110969911375679318897643355595945791519434125417959206617631850947054762089258584976605273678595335729324133343631029476385551322474427305131063978931726745348529045516789696482503874110954561252639302225998927850649086991971596535157350501414074761759163045798988723073246409999397501200545503605882130522819174405865896772464907044307479896026634678681178108584460687177756009857184539719961533946837167288345343474354481657162618420088401227592726514653025357984647060853340814037342682570163131969005782104084841404166625127882380191370538224623391819951235571181283664260193800721514941647999548384862569460606132312179851085670754192250394349595782443546466683100108682768077927301203319167131916160239939733171927116623423146536170308365201789829481733672730634151414383062632356715268609373699365739745351193250344249566519919341455064502754687451933744051641399794116933403371153074383153702025115330068904649886552364828338452650914828494396220942559350512504719294649586278073003027148287832316075864371381831924522090730368974016820480242999831441587832705950319178975952528685083076620525593527191702066169849819269305719109337975230840981577843270616141411892366831755174914290869219131749186665233376434567036061057810273199235719633751416377539648203340719859705399782532404267537648956395932338749314215176087372644748342705563145272415932579303630559208848531106993970307343868471407529776007787176534755029561913254707652159516727252406249480451960041574106889492689068509827330691357818491067290776106503590203314620435729017682283963364316057775163890569133757580245009718253106089078562502903685672733987260930191096637629066629087541759981719473469454911459977084938757202853106184281492078411632174465655735906350670627176587056136819556655203731329107556483221473480262609590826578410660411824887606824098220200186763646155204724932520426836730927320212379903715987351765586102214808205329028497570356709840587153507922728407947343347725309320791455214826928148953679029931372933441913891124663868068705841019347073689717738493572836899574899743060260723459437495043577206435831860493685460110772519980090852908237310789470852923476446701077033593094896324210837449975478526841917708168761950060125908847009625400801097973391686778619517857676934151852035964376327207863396575410190316097254324810670155289371100894092410179736123396259352655078724264469817083144214674282857169617828313723285209346419738238213515980991666092864848725773328907306527782077322703858588204005905037017783959823390270583405999318401315487330390463632761027568278853979075097399528410086950086643317386175821127131719958153861739304962778284035775149690494656177061064090427133658886695601672773569906647933508559503436180013954178048651431757228815823148179332792653310493717208658372869090644557606059328120634414745809847172028716687252045321465613839065395163641019674475706048464454640038439856941301589775439349855217073459625296526085748991958747662703591571750685644520667559516462844203369944087454081869862666066825502212081585973398300370486601524991248839042168081714963703139905636929150135068255685123110110060779797463202695223199837888839179802005421691821071520256444544765269966231603050852586443505248258181733735943292865837587938479650172772534866831352964875430598653336862636403256530695689416091095034223120988579435561986574856784660292331161908548642877450293663128953874654044997195815891992540546836028705738773091290350165614937525605269287744002875540990692646745246150136775360252895896164074027000976079353111169655956068201089736551985079853752499296340472816521535921925879813160223602709544035568815701270446740646161181177498510532407724982040269846313299089454793591300580887548396505745889165200596337255928719457369193891752379850068116469771632464441597434696598474751459577885594229483578637405764383787846360215150381261391132647245658389929665938381100440357573656003567638539500934706235876318896217430279471334596926302160684132671336537082078193874934338709561378808498906441891123298081581051472399481317466930710119963310252837529385952372093828055036295716006401788056128610893113726175968917541055113446323004821477563329545427945469330129509486222469311528743350685454529659159728353553778253067948201315718112931225409802092287841650531148048772545133173520036721965045986106865518681070165480606411243948028900630365504284947336765456424925085419913910405045094074238722592947086143473190810251824042831629447910492604551863777539903094213864808503020356537719509844844911149428438483249903831073218949908546743301514795980136628790424689125319248184641995942439061481310176279911656472988367248086996505839992959912671114450619232493487101647549161733050185042855922040166722090429583135770822951863984582564279255546217517208633127214268951209950926298468137500449988960212892309958467495261915925927394835653791561914238697388337590033106427384738087981279610027596064286284136972812101827301519511345406380419166861321415288269549411435228609714780244849698649644826240828670760752903366181587066487549336269607675342121540662055398536576778039713660312215859301516206066878646956789572021616259717762524765350940672429683288278708341277935194657686195917088431820976883582468039275137571744458626218780450742796051309682743585033201002530222560385621777295930447440953133486367999796151660377793006163820865723308154260183009382403773086188348948061694974847491289699612599057649514947668692853307611776232083123158406595006606080917006892036847608158970051888166188989468172835171703936858604827363816391256769071995647054288358009949162675769307279208093057499784467971683795786797520152464028612624703331664137448092129703836254543227558322541674651393794005924033500922079057987477296227423288282297454377739222576447247961385034469201331406749252461556982889466739606142388705439653223038605044297614927923200154412648761562307387718702745156003790615588661791595535255625320467215866435511428133470120045386065810154398329685992740738192833581026969791456767364228764948553718461578916271794055825368330248309513917187686001204715172570281203962835991478478384102191699604731084272443754173677757472248005127525079440873393091618630388566762352455840502708646083394839773865353181144943658324008241587873517334881299609387033580148171271570318695665070264140450710877602892363579329541437220312930408693407704356095073048408837487584799919327906704905462753051229394905845318529078592534673179256050302182541078300160872412742192751470416713043084505760359714817469960218292547553569242454600642292819520952472512643809894529331561927838821193259886737122799013490121019133777901116121496855291505544192004225367193526165714429292834599533687407708487130881247590668309976512134080140041613447755887998344254287679925458377296997969804322757540542412257321992843015805403637758197694563003244811214128098968325877830098485435104116854365464630315331229470588798062085434058384668171488454310856516720902796981614218258854988651231958539260716332968372136839464802922158185543866269134006542474087664340180547913221258563495862102244149085548156308101148543177619315416641225264027854361590885312838819858182346920178030728198311002053635480052466901014322359334598168483766795232667803951785056863829508705149915933596296582869520757948189607393155330609172271058771745264772743871286682732712740093918251322049968392292840259195378403857887604999885988561639743362982697538329108129459170369962724655345811071009366585934578535926546548169417799223370397531179715108641089271178791229743525709934249425234195757371968212913637032106581709405140470858673608680345906002439642718162462240644313351596920486061098899346830110545064703526242089234613420370522021158008433567750604959982255288483186687873442701473162412422002454177352752424256779244275031823418430385105396925737664899647548909179067663125741702245672852556986648808819205551220124639837108110924493308820907291220941065124647139881168442866563616651856031971604062223342382243828295803186535907556575462620605477734340018452394014653167623712537275045708231140664398274318835237342599581664139229854353292884540463083507188447445884694780118244472149033061754465641504726792180737421883218347481251661907841793657633819077487267706051602402157612351027280767129214329462010520952534906916705020701638488416558380266919739310663502407468550600406488218876023232041640082714393316682048829730667619465872849706493695364358369182408676505855470171173226798782235830521816180833315869951141541796656646029829003979036212528425454807606589163781195854869300373259804912773800557091591335755729908488682201456717937120171832993745654225731257391222014669573706587478182451020820592467449563495753314523756206238022675984900379060856193175326286940148847460732504550561168983183666243240320828543267732629915136288206411827649826386894029801168458422594551331170327309971965820465962907932879856415078540547316843822891110501684545299191176732543118318571720690826578464961659700349841100067059603741315637483297377860099140787409739191844687810214434145694665510519426239281525731137590854611091160796946576261917303964051759003635527671919528967756392489046684831217153153353427113682278031423166367371065582165934529964594154390279884999169949997532951687636970797179813933836074487383684683108352729850745859364434376077823817383751663766560698939456565205894383301600243267781870248978735809787156580076748481582841559165841284810975628756097476051577132172592066881777905173150358829954640560358967671784701412979670259598021806400235805463186649182706213065181940293398240424775922451270155163986168974199745920246602885127747476740449491247447780080786161471362136941889432841965084394307134502402401763413780797138272491077748917006241349761580858000972779557168958759687703251540962879949130861788732053310489513246554730690368044009352134583187980249740451086367280227727708194236854105385771670225598438988890918670593105407016528874005271444915045124443965348409341159055502810283672475477252176449986660392301937340494928559529624386843776655737739955752025955776978664995960437646733054525244404495968230600232353288023366505403673577091033963375299756638470856680906439782929973096081510943668237432941294136286898605320340333225901523602389606289037480457974221180707983904166669043943695282548426220280455628499976732927035050875291105323560901535609176629249724425048315753466604663373135483826486137298472509195169674515533741565580335197087879519820031888787289484381591868679121393171719489282575615825143465025578985625145982675537624402787358026363299556053913889072969578717790522570232212974065124802525591347677432990963286484512133210812951422142390218185691093783540087478338820241535125483445140848627141106371906452216768215382920959469817251493011159688942577802318403619484085325803650351831754060692167962885144336333286825163494215154609229833175797462365891395957670724942009346014344843437466205652060481861473628047201211707677829009768929801087147125365707233156181120177959429436392163654250186490850175710250747462417824665655147805050717967938379055094218480813786634042763055755343935008565644733383001343563961398397763346732220870446339438799057842681640315782530898653268317209837480341633203673511838460167825915843983032650902031938045602318909985449127426716333480874039209919079814542252507893465271244636222812712946987841201180898274021351479150808483531950002021758454196338239363861432513208506566540711139855611919705545320769927708430487290516696981424364925513645005852072866016555161507196591684303015059642562274683379968517020557121131747729044193050816683727924760242028437371079489511712217842661878418403643101526526651003429326056245954665300984837383451919692281783413989444693938504010307045494328968677627075485278760797626055202763450117577527351361736250825135797880785945141317683993869837264657265469643075140879529902431040070959979469645297387742581937404266765706133242486857067158824648390862774229107737011284406270416910620671500045324621857132107213837888179094614308899812232381855775207433135673490911203664524120069813017863826931814206621694868824838502440681571532972718453121044069011464932097567277378937828830848365446601321288529849853265057502945910642602768769839556986013849090653310469163947318159006929140280739325773130016547859614969964553429417799104841156898479340967918724166862936622381360068647125500417760976705008180578006055800430722679916207441857851868803106397462292390695220043823933462971435925581642179143292012530290308097379847368352863127372865698191061176319233907311561907782382951471189095508002405520006560652375694959133324969315870606121577568255693076347782106898152617367731855039398862219323571914073979234504404601625460169631392530956484852711437502901096522358490599497467518581557262349376269202924930753125616466204655368668139489425893047150977808868317616176546140920280799964481183546524840873647250431684033907585257808783714375170254027076719434504133012931035584113209910685582783977844067204527245315325480362298600954213366576513223272109791327754902065659332623591907125864761556093280792326533061499941410582221831591313287101592979085019528782005830865725369848320627803544823862396774991742206460569085902901392708735466825241362913036848731111560442210000642083292931261624032410495210873624432881996499833943424290279652719549842238978990347454219295475461580135452609526714502274868254181891362802310655896862947800895413401952513466634158902468812133097939021772237478805375181074207963732248287591174486199263074419805248701049553966150725150033880350949855813710464044139708178786011909295022736401523649824623111324414104453050528515760717012519657548963453143072003647225761735930472525712174339883764607391560166123901784384019474347669562792184751393812211650366055722133686016577936553788252084976337956103028928296735723828165815388466177295372682858683406451705787310144287904672826136917072509019021166785947013296600415376175698377808422300274514881690861822922820607801943933889207199433233317776707531815209861996294134380428807761743235286825755314113264820787827141478815250855503923744462450189307725212955718799392662406939869327087237534799379636320514425646092716637073245485224847286310693829761904769669343657952739543910676045552753390711112308190255573187607823813196739832114694089722548572795535057697043287964247376715204044467161872870485397550428816854903076813397486624931372191098505427874326900913741612996250346977570192767573582630881138382190612388217446414934742821682920764887418606754664442829168108235345105267696877794687930972734147682176964478156536917714583210983642892650547302116362921552170232370578404869892776543299943415904613847110344682130242823591644887219084432918980124799016712196036467662661043332941763112032647719057680600824757136099082903822938590175293434146799304866371984665376480257166324955699565730939415233638187345348094926104828157875223707581224251983960552004002830023641894268433137820109858067800074573033264689868242379767393891967207556720596199792767271817324885354566263402118189110171915116603532840125446831104641411967093432430579758852064872407356014667617241207191407797610936267486300292071281087127109090977368211576324153676654185889556953045471024578785194665948277327715259433364087675801224676732201906917268792684428765304864883352855049745619038010496030609120185585929403754263261316294564085775005570692308860953208862488373135008012117558629351120037412051316521403970384242831358382074615598535618208347739935440306591833810734419028810200778113523408766478185147170263507065711075992123186006640716462313871764740731896887830944412910687740744797821250210633940289071119532774694592675487770626103100918754442062727378431725386275330921735207467007743814534459723630301636238377079648608144012993598667857674038902215250925128104412801239935493268843962069608258003167996064022297446843631564319780091410449771465309490227205482165991416312514265149524253684085332399105525419492884093859859894750916073786759046791198659389980424106227656154845545265176632530774163653908761321578671943990148058792814327707158492239474628873254447048876346547398747876157667419141354528698171994206194415549293045481216221658779903563287190970498283289102659945340378191765071393901221314581884501035680143791651881046307808389861270258201150376014178616043691026264845605196388758789494389117216396643103299619361642606734412918166104219211710159945272715498669050088902820209949563039837010312118177235264874463018784474562537107475809538144264223792522472057593455152088466007409039770905879586250381644127729176481021832032365985523057907679385050760146812998364432922147320057411591702249775192454168439655320206844220711461848514122514572186876874464296266321092009915434312199291855236413012598157686587785570315898620152433967611251767409493920858754363453542306959517222625492998241188606419249153178396464950901368023927997081750020733757055323442319580627505251006359871402230197918503807760096140223316704149967150212638824915767455318668152886333726027534544476330525734599391469922800475174722618719683827945841531321786931097621733623171230316756741838176495181388291425025807642785731350999664740358545658752684115873392939453189299926730583942834860654190978144725902078755509367183492240961051973796999242139919504426475250652149814941548387991576653110719247437831496561197286091938499711953707579716940564852757542685810837246984992535439473091000478247454691090863982590005588888266148215548716764599237064820664326223540884248590152945632670840845668826896660366307905289229362236893305479309433423389729865476504183264141148615897940005305291071793121510511134038984888845953736617447645149644449804463421042882799868985239696564565071671063610181125930144701496674716072744473307168420689682235307566537986654225410951150458247338402824193589089312078143765607974193648577374431137689903118655699920222801671640136711696988988214448082259928511921511893620467757799742036664048639435001739247398382621651295138811582172596636720953611340479209837865588151581851369743338117281913891756056294162162090338141804988300607216791331747439643152535019948809156784733105613478799150045594279753685458981156862141525338329986974322700504988700901011318315016070358421788451950418220902771347701210286011857266189953137073821967727705258517358313736097136472656901884618480189424987754119633160382296736804612687515748375999141540470722526768011424216967957741527838359568615144639416542685095307847785237214399987931683530254060584507330623309972642006247944977098692885702135913154800381900609801502926951689454079993973673761253387923843344798838961903714126919143439446368007702513300817554498208909560258741718337359366662522712828320090035937689687871431072532235239833024659157588271538758860198441789977652196344061251735730216763917086989845459026963862296389507815991976031449434813185828237030098253727450876553770738300923275682426329685428824980359439516618915283775931812946959366566739490022441119116640672472626625276420999547106171582173183088695874468088400667716364186715458885579368757470560580419844698188639668517949494325273876894246860021804423211141623309786209156833073866284877282571509060958183511890448210281478135459503088782507562118619731587341586658637945940786462706463151752308615955991292855219552403865561342604096503704556549244952796424517915647207562782388538913449032198905829702199441338396963329272590089420362356109367264580059575997798772226983761642706682106415249687992873137882359091148880890561774593222188029296198136577790134296250863623327662306397859329604592539961628876563314569255553857703911425537150943594184382470152218143028901187874898256316211291834147011054550701964683264107978573900448364678561573160394856586448175738127743223479981351153997533637052216712076851475600173660238045144647454312865668335551139474373149505057700506176290022664508058367682795656888821233106108291918835348239153289292404776373261613703731004531247963606856392409372831553727675779010640865577783855918694558970263646136401819082720671614520447471648085492085039840806055917176598796559672967390131763251649749970045152023515251168807846837080506710645378776710068249007729685654791685257689576013025375781014756504983755421731354655714073508303165015761643052059181115781834051012829872370622542430396813151772593027486578314812953239608793066622746093089503873941646844223697464044410714220112895059933889512881888474160509609448322304705379185565177124936568421466236221906407920737165989152641532306787334698755374056759322285745016990013556926434910074294095396117690134751627093873476557877619244756415222950313332845365406679887043090304806021430698403341816864752425356179740963824812429765382424183893306945933374488954228188720455846947297239127362213038552164618494283369156365004831061365878213815542736697944310072046897554701387675227512711305947457552062352388289836012294955524014338560044123152548854341635020222337108847039883510821440928989822069345324901364770156157003916858030879267791228551241523247785497511526399179981948793870114253445861837628672810932633085397862685861126627332953813810766891664745518969856002775349457056815499747209078449415639212067312413298736228579636140896631250225482312859172357961975521033399295256150482306413798107581583396827199526234914425979954541595445346228343869441505122312089115684110762827461843798540032012727178438245169493170408032838778193226956558725874098387495357684837230339371751032534836808953882198648888572562189704825375779434869697063831347038020655300918548113199155188660128034982933501265085928374215128460681400201653337576765865748545666798409328966858250966263488022258456453509300848496269460588424583401232682671370052673883359414952450301787493847465597178887459104326280633927667409874649191662977308382601613591131818963536943618939351018556189064019126076402952983852533012038971944688459914621890486525400923801128162696314447212314821373708195129142581946605258324343818614440425043375026287152508107711121498027527082572746750938957925683126885576506983007530628097898815426356655988154274435109394016016108344329132353181948965715655962243895236411296387939779618788536634103540697817067000620689563324879486918612536329198107560639786340937881773238812915207708210271244980721912915203307910621300142065350224086735568293863673016888836680972855235741870627273049378707784114173169805266809258576007955799406025766144202681243382979072840832391926422454721288525511238886895603476810658953630193198709641901008967612497348227412406419249849818633368711607302883074312319512735720302506497420949535570030995582128191866711479058783993126398842242662065684802664258876668153905507730067262026298884899929438687291772410122949143831506321784393530611779007834547417344601177511838673034482680864895202595962732043199179388326286832478344546101912650920757615448619133093567806121769783680315806102758735379413350455660521611050884477579378012758922570441301925888884563671843082640637282062922662805353889973653267136129563996647360534421431845774623229686833979736117668517694087003387360521417601313060562470639375219304249404235327734748123167922700912722765406131193018347559284600627022888842988631429114356800706387006593467829312956357108423754637615938521667490217937202285933308898681708135176991191967703895197835498177899524356648971193435621639593830687363260304710112341491396404230777709428532910303777391568133507406379023015838483541562406328000227924054393603582588822697111530272447380480555527726019809227979995687990107844685264089547066419321976795670847534992741920240722629193432457891833114315858443888800421653448600266536211859537224716051232608316192706800106921438160566214208689426649601512446655917808691950277212977724659301342441919988604083573094685579013643407074505674749872467039226388844197578212338255979485836136272694998411185732952452502918871204486822437655273088796391627447115802424908228633683989372798164358556776094881525464583583833809956906982388580204362308647137972236311744004644518444067743094673046374872511108279786601677385108516346229470418427348669139617851412132906118479393981248841034692802094214033464697391051551110993514889082986030756405034609132904249290945416674323385134881520550980789451243983285141051199877064287106863486373221070635708150750684566415698965917454384376328684390909571549865332838215982463862115850052347066541782986708896378585147837900675359320885199732245332513151690265132251519706583307733200523291449299666706504358405142406563882940629364671062631552469402497062966806879905719005035529070060864201855934116603145943756656960840876974251826325056365409581195371535039929197468415610831471551531334091809599370238854793456672976976891004032317499301524098094552024922481707187319813403185010962861097661378308433940043613296909682394018578882143969105021963869234989163736122682863814599010538357459467766046017958655040455508033432923433117058632005142720148640889809659374473287251265342669552360625736749479249471782275145752190864767826558062877129875146069836397037464110333097567249118762081926274123615959897430555268056559330475973400674909399936183135245732172176572449956237474878124278373418435858936000810613699878380837822716985569927998861467899521602351418991306624350687712151939263783661857449891441698622420663575383456076006649134263418009910966858235570805342478019691595104186732635109714264366378018819037546422698324383076315204907050954290452298643269039586165272050018938739835808538370012208703526552483915160135055954680291832394369905936671342355736788671140760733096951863767695014934014068653440129422704023083746194221528132551429805384327014525021484826544636082694677526900790268778628379303671665003777935813642719381436021781883104494632350877658817951555635325880080167823040273312097907996770696495309797618399529522174722475302504272370094517583505415373848768180039086637687335633349616743198885315062779400521662994499858744412404722161890529090226654470348102025061249902179044292225669881154069759935662310399266615673205336994155326372642033414052615990332415017591773540522454028804533738734545516752504554163637479257945798766223997760326848566136144884832967369202500822523917694024264428637858540156553453266081727352125508186677551388021646177677891175318901178209460939683516414041168746619527689808213815858454928030032687860345488549758937603951611014546236920478690525782066334851782710514145993257988011278445213631164764740235789329611750291579649458295907653773335453465195616836145122157877130559232373228475519551030527938557746382793877127281138730343873734540811919405806560101104630989698081873318652026334568465350659134578095397462079624739982513250629936498972151001883290021921272784628297192860763517414050788453144515029625585916418567286433416597887923232370238799012859363543317829646653555899762314582314750721720946335906354816682640164262019989317759977543269828103562364401971737735518923183822371466351177683733082746602427308976256549579075142682427601004039494032908987562008794592894758259479242693490338215551604972370284497113260565479478485872253008022273286391737666595755623756239458287750366609704294380188744042066816487433568602213251930055031301642839869392636296211468336676306090575999953103453402757791176187867666774428867999695331378622048996262314784275404988490137517567255148929892055782920648240034452840760891354475426157717104840763948426909196478225499184378499756089950761823116809257159540103917531881236672360629856970697819543070198781073426158357651875288820794982516530412331090738549086077300910632482865407819200644944034974882813983533690413888209055191234839487185772266879194175910759495802686817960637602752070029234215096751954362321854741822539785856232032329284770592326498236444967074829648337548446739887465296591676753363910236525298173341600019325472867799307567320221443130880022080914423096772388454712105705129065189880437663902900136789456914776943647729342571131114341004675811260672074889872911543964260938069791114110727412179450947179610302731940782620634452316705711169343246806082305876577610187361630730561018487799965467601819422372816717689298734177465799435039376643361952650511263819205101427731579521511389628165653242645214593588169610489878472781757857853543819509831045522220281452781491274383300423314122061443584287614687482845400762041837753689191893894788883331969646491725182665130279219746799955620001224330989050157721699753124178458703824259054589054775083755583598156324261903622887823000353791172790904186669684302153316942907248350929448533613545548301970329859624656859889977366304857376197688725562576605734114734705020514952027081609020380893940595210831966981252351872488906565763384125503861942502938052570936304192663071459170778340085801840124112027101511923930530402175930084678306109607643231770369303717178988664057027767326287248060300072271493380108491275143814641724121089017719277601935304941726989757419262460588152154718481221871761472543580563167256386750349091460120407638915392138636645212362455533931634122138274794324954472713585807278521151808747034721985581297227816435167241975577731196632941777455218306382730335095890245706368899526752486302821902299828726582692450168770153306302229851527228179436679102103898179984202648938253468666259288290941545535893415042733108684150432454869802670210726571435529857320469819007929699560639334701642220446616626677937088181049523559133842500056137881432774146701172550564208400407669515913849153978743649509607136241284064582245229080197384028433085484456654643540780769916379245461889671201357906532037664106332236625640604782844298162222854868839767396708972039332238452400191332141805474085151474267911865621826543797264922142742090861311901961473749968507256093704616891070533334103609252190291909039912421642101189339474084436079750386518222190149217312824444069309183460151774861111628520988052148295936329000552602275045183598968769980639109206897221527397054880691871754165824076110210786725909067129281619900307787372177474870753248280635944536287156689200606064380091920264760355325485885587418377025703434386130883644016457796045896742809365994660412654262142823825803543935947593697582113859441935771702884621533751511220329335460666536876118101268218190549722355415800435036925891749338994496530521447279489967325781052513010425563213106816063846061073632483903587734113766572193296958877495827633617426970207388986752895653738198438421423959246543890103252551202992785189418902169459669788139192461573719062768968416055474120866902861731129054543819851949580939006792267121304145835177216528197268550582941345281059457470272910422131618485449502882675630409268390470369246777249849635011973533924178386425090635230150565792138329044091871096588884979547823477142603077274737227019532944453568779094425709570778471567157519877439721117926824018109921815927888518299403579458402392777764077015891862757944066058284668384660468669817908008838432723190079137460813654165704455273013586889562856238511642988862862521714610629635322035211212498476259539152020355423905250368963730625657574609722267658798207355363138415336442933182425634602272290108075262641145782831620429533617306022089087158649295310449034417993532374340244643047589116268489119971532106839867873129710458898903029708356620936091387478402957454387909474739128454058253226685833624557138177394255315650241476029765520970307161275502837021565842729922717257358592558045079150009105301608891253948955481206004493494146169042300969634813716830476525642992083310850720407365665732825945078093764149578267134317237639227807460238930549544877667359735905660755109083197726906496939769323210685200426388451728391783360143311217686675046855585964965576750651900751551637571455211527736445592371961594745713700069198166506786066413569787565127492262978404841453786680884479852850673439313553613082189537898794528334209675305462975800809060597959512611195384418455462329872737757042090626149813096419170310124487917230037632620122356040827543011939013888895269202013018560153715409802918553772549688729138692771213774821511147931406478212167231502586894621464178205745646273266116750124478914477853923731462946873706046973973465499191394404701965939612314562143050482736727436239491499582847928156243846974325697056858120535824461068746034656035812827661049499412812317592196217329400626429548023059122626664862470575277007738418596060124267079539193310265241295765175059814692750149249944753570751679359221735468424557903272297571812958817843977922131826659151657709050582960101913880729493499724276635722618206667867216913890773287445581553373078618034725311327130770906800956408447813032738001918963857726866825752854789077012540303175696153859528787973252012462853377650707889482401434481008825481083289093667046698849568888814992489231524005704672053669592265846449582406684783636267066233688258856715660980924579565891492091055963539412519741265746888834013757330742564819312598136406964331460864886925069338666237941472538990303327152991597088362865485638312650247902657593654129621130956361017099196432099357215218906704833060202907109197025683110875355077046319066783364343952813025491313126137539440321721721321469527724631272195866241756033960665151878468521632246210658548476324685910716634580141899575090319765371487964359345891391702999459747074088501865405821235924404402357469794314486233526729797781699736134379222385202461817875478100471938509494934628435322014473717429604689100788290890777860378379781635185977282696940652543136946143636519634951527207179492571157123730720738869473711036616358305737826763585382736377391828439571585836055523394652275512433423901057254157360294373876333598297583821792134746685678134678437452412366645905436815610909958542996949298259331899966052849605247403717829585362917825510406277196072576138172527901802490692412940799166603681487777125419683238824195705025428587888839750590330837374385243885946294468639110260828921971634076539846189104149135634318089185696977827925758422753589684696038051769229591179586897844795967432576351978525263506330268277513587654715277948975956254119399518248165834622079688871093800131078807873364311197905144528228567273157808884626443167189982203872660714893234521720982741230507087735349795555898869212783112156427949385773729737039787595520321230558673004101914035783811568943176290894211538057687613142577662596146420094651858843024070063011393434907483352198042821252631863104779744352177116449094382944903352985535910570119645460108416247243204808993460367507129711505401867078859849400635343400150944047917826099321477854878383983966883945062391214569252171612978601593194218935537452689211718010407422975087375653544153710753805888916323135814767592696479785468803445017603560830188605516653691536105511630409509636155307106804371903915847587126635562085931373087917459785329711633857408416412302076143773911366640265580104648243094876992336397762125744004701470949878656945018083937559388776890708314641801316325103132793416708677357141526422646171861763510914490725683065424322667467624995359477428807573480178698461065730891185554345981302910177527976843513592727306548206650180819463184618581838578410188540028387631763596052602961721161380817092907331313884377456495007519621629308552405470913647277789576941262634162228613429784635302978204451515870318062803314015802631512464995307952928169533266953805749224090838700492583170277073283622015817743126290908252905060603373847849055732766409342236603321777849840650769167217282054294900964930620488270128981508846307192314997882626528418579335393061641149551298468900334747086077985082422013952663256227056509423653665861589044282903661651892387739169133960433766163047237488307733319707556671169240098461595918080963191266055701632842576884647119714573467356510542737493296063982785735853536640533643455056181993065956099464934493124400948847364255461568964512076056658385918277972593278460327646219169059793130723965392834309730345896333385491865899271252938963994211181349430506231029785921431479322934066966491914843427915884482463742720345461377773150807966393811312541843755452648579577442004916258387458297112560642031257150132524258977171241856710723949099028532748929159497098544793032447532811051988392910605585236908792973490271506948103971073943864334747365967701289435862749375369009709401047044675688082702005661970028166764729325059694424203717001894997768296293310388794191650093220275573982873757465372600364581048403574895941486044323536649633701248226510735846961571684022076070913910894851624934465525035537177437400711180768970480752024731242970224159691648398051237083494675931239732362883525656557971299799376030652043769770697783732360216587615185708795725303736636142568792960023799197294130060129407373768584604813056443205197007769047249243890709600774311056693870226253356966419601277981012599269519393691033242424135103563512888739478189283138819353647016402697560409660719606086459997278292884126655901521468719946278573085633776037137047610975511355673888719809881088371695632182307369572527972218618844219400418285698014711352860546907079662393146619361616404130525180254681629996119088743062287393852384311395973298874542309047773765349222606290161132483372188840510656269024488395444506911321766739351850655476034859487129897549360353912077796293965528403650887223510691555233742727138732831294102365070948143560752470115019275565377226474169499448820520482322295938705060637756619939460827022543410889946266637047503602404236857244001555085782144253083136075822123244824931277022582892632171174091273476650037336582794374241776061078115643001099696263488157666717941847376570983528494741991548826907288810650138374422718407268204662780633540045603494477246473337409660085814566664154487625891644329174102891508987687789776216165225938095726752363349725194071371322111392575335364197852851453318862080246931612233187752223106444771089220249965275148629019142682269238598394118661845508121931080964334712063504243889398883426339723957052534085579034439042473155363487297055965907251555720275842363492899547165564205683432837280152490791373692620323981329998731587927930309112044019781505812141958291995908309102979688809031475390744877101216069753386813967463688561466259588222522600555530888952857179471341646107408996551896439580786974202521264331810941966652772729110363712454325852346955255299709985597721244671663223306262618310517963603542097992511249266117916072297599631495425318820993483164741709646842542935538943116452297141206142733760030085293708771085988622362556520263740032666508766073685753435279554588297388325774774514711099853076668549572755245859716977430611842611243434000235799427277697054668071851931222353036635868563151939724476134451538153996208389886938331469536988840028493603269904902379468568266865015166883340672246949232888011548154722005109311098235496574496979910982515548052510863113969039150097316982203240595371296702379778633948519384268890354615596056396992151816804803152324459311219336550162792329803044413994120536885837510307251550608069418763249677668988097753507448467596497825059742925405901182503268514040800371176133408226851990086682619960807543782804199462620784088003348961800788247410833735261359904516911790658178667271183131510674584398123476405740290169477125034879848365335116566667249979421325152262363113350834748811660189061023373987669976223725824712074180145921997947102245837584226909609460235887452224981653202105695296935598029720304868908236926766981745020047918379315423943897220983585121333811844780622337124845529613687288500555083607002598861336713852459574006248210135172502096362954039668967174340809142166048065378598241003406527454193434036700376651806055986267089827274258552988732433836379943615999601644727390686742625188863942017330685684436567777195271844534436089299628624449892602679388935382733730833022096250445830445709078199960686173209539360029563629301801902196748931823638394231987417559106545222500799058482318173115688966563611903853718805486530313324431176699078420716946038362362940464910579266401032114014427247188094911512003951821657463926742970973846251314356973532959101773490917893819867016140569931784405583324489894258123331004834333610803539219976844484261195686282687597138040968720261785217877965747812854886872586495191207255859696527260629876062129717528220874459857243022182212176813180186151568647292941366812283591655337770993939118183683086951559904268619461016686062113554219344688739617334892802864760703928352889383070106457321012255292745701646309436775006186957162181254925245304583451063717165507986081475504099338523851454041779904246978323947971914204654986413549994788478962748243188387637881513559818086316261232932989341811473833284497038773284038609648903004858664620376611313403774633818721656694653054066157928077563659658698696205061531418845198184383775009867423590262810072634856613818370598840474093579181079450691647743181637531419390917543503624929660087668441340454610586664173331158330149393931424183871877009019079513086303128638616778659125391773007902668244694495137217154246545703114717997756349558574216098778696579997612650215267787200941306099097500896393396788924990413494950480638015112241025610291512555329203885120079199341627088899993122694748987403694006946450987004176466347577636121544371277456867120627513451401623408414058829138221502646436325791765401556719332885310705373382326954958236234624820930513767285898236489728430172811181597973657761603684364252189967481694889723962741096363969919330611212728563513072930923815946837602945218224663237701609556445450647549206554323434274428282330116692419411130998486358541614417117830477640679033900668429377037340275773610155035644776879877753077386010873842006163333684555612084473434003982605107619456509480961048914381198634397008820092506131427170980462191976499942692126389260267351809122214521672700063915367942269834058794972506315138497692675011119800990974635231976771117683964647684774737320261914819567888334576437869908162777495670494507504837150404501026409851899649784527207418606952619928550427684846051193301223378475470499601035961667584411798066860881300057261813261529620196787221602340289235875335266319962091446526091591300389055498176043908936997982955919389874359349504358574811494269386155263573080442443958704637635768244340000840839880528619907457426446930373786957240349100456710500918090488958681822134518959486807362772196364107000989389715486884744127965267511220386295549916208847127906952184969190964501165404931524834646023995821125559888015254056361532516632579509189874531405923636150259284479002917687012947791711609445833877554143665652405765081156800901024821060397059272698741834698927839184883864900098031159126050381005612852264244357395712803427828183662765977133565403510519292915584400055498750798203702967930952049045164298425090920371294673247039887911796822484418939342266555706911419378249882142912867198594946183840992349958091982518401361196628773877242880303804001420012032905478403130499943428066817409042714446082275127039769198309037740877363202625418978873714125355959413156269623129538519536574714258786907510106919887558542600226621005301054770355376385296522597899116165893535783710003927523954169601599992510678706437021578323371190165841159749979883892671248458622057566966673750300933165243863155351412720807722111954020103698571328728662148642991780777985904768231126313808146183505593647708095267258821787284856648385041084642758048258234755751015443940142784783159434019273333905952775228907822394423106842049345321078270092297424726261507390721620028847447235046291580434098854457896433908879049827358768587990917269387858370441394188283512153689872068831425224988922089532150358970745265119105014826995571003042028904959980445203413210413290349053177064123254244165162257366474238324695994237766646700988411088175091216463229472138994950649237517530308942759619723045302106296731002235274075750955912987685158597719936322079986951092136241253315510603766017605747012487184896904888728363297183282783091195095503756760975170679838595353351145340013488618394837498875328870725851664664180161344153531863594571669297378858867350364197474382216948650939287956844973208729168980450307198022825719162410115780507027086137260338883023484107968450381066281000325227817381242922150428639855415013483149831820920832865685688971403617081094138609235737468163818669411862139211691433274908863576475025159113323481820757358586417662465278151819094033589793607315546984598537226824568167546404747497168016183674711204457609188421946955212101924109567442582126033743738661557211625174840778578136467738619923514454619525420863447536824758747708521324251200855617891029296771023309068434472607329631335866255201024693423687003701099243722609501078825950728496859506242293017887850954561670206596949519689359244807729959377620194918054711701000488338064155340150310723332385112269129228113617217748836584399598591716409263841600470385873485972860274592883884718579550798143677382343756027936922441100895931888876417609669783845182442644239945774993791274509126344943425257654463798519843870017590984347282932097577054312608266052109159908733792448436923210970464828746594752634353705398319612577268344816237121308916584288826172473085413096190427265983174589277160761417600844360505955971693035322700348046799430695339496155882328481344963391111728096871987738911131303330074265665302201993121423346169086312362447494809268791694756579673159766397262785192045946353573533008937833198125068344349559049406478296276835559982003082137219680168875520951207080203535828950034298557378098998912790457258030074318599913857385410926722859409698836839943436523722558463066373341331638251013917868409265474151013274199851313168388236127901813628201594852511096154196531013026250457008729413602415549960705644927912209641934316236860542474377671907985189282358660091771357000024882708096172604971947968636859266685803476188870305994264140226418190496704999225966561583641539636783401726651187375165062848201761131948980721609469239998658817428265005568909826945585714648669062783099915075509347083420016162546032563977851024098702719179089085697536802868380145977059790039675380723529413399763555174665812885392456059069079644704984672040113113778865370678064539160546308753094150351530965490021502935985705122897139249830738444492055579747584558236199942473446891221378055177449988928328751410667316890298423431075973704804899454464101747154362934641877803995507150173247921144190999871844382361435655750770646182508249696117341976287153407675639071812405872195343787402590175989030006773881137399555292069601626908856977320375208582093302988754640790715655056230761491619985936490954440855005738200871465100737156580443512228187483238825864348123979797621111290017391206318475044338354560889786163877232910218766560678330132669943469326114625852134142609085626702362261139594051162759832873728597439511332327963600622140899231111682387419816747431372965174143764071780940462913704132433117074900945054648137083027107989422258857976903235327816499124104833775766321812158610759183701106216417059329896225352162751175370800836643863263157460560771362880859078818962163461831932109188622396698777742167095178335141264498138588803463553462484421642549086664853732048572888875876986476738386945729747468735912543517348731290642798746329579463953424371114805131510305984443235015432808848421584701729969089299093382828043535754699681056714237620419564731662767314545511140121783442368696100871046413167750560282015402166450801992708071111253940874459226445592505586332241984054464292276905777492082014170698773327186041334455524584514830501831974773095710171199669220036529203589914525318503288448803346428118379446945895959854301217706029386511094374096310323068380972510815176490547441402181564179942870901694994590517812696147128598696868883479977778928598546635239455020817096680293141912710903699776758373660538727830011549042746163095363273379065366920542251234707281882644034752070273302497456012538056442340041458420350813839558863840793495518675684588242447178566456827650200356066393008440665091932134592927320057108565343515416201574438631273580885928804063795982808076847233300502047179566866103750204822057669923607424150558366003946455347950914007875978386551851143881197315229356800886050075894532155412514857888345330058879955696367919749549678303841122243401827962777989200241153066214123187480938315225225485012510072427097049791064838809000567664865884506883214549307669172775208791971006786348089571093107764693688750803378670532962134715257743590244621570678088987289736471605738455946572944198635308748335960615209019184994956528672328416655185351889916501296321141246189178707607044674970863001422015359426427400041128167116777331948601925885686968954384086106757635659381634352470125505075378986244353907452809222910826886668246918964700067980418661226484432687661164755087871484277447864364191833741418655520332060872991443555399738729251547284285516368247240909179386020808468794014540355691671134887456273730078687121835874838098707660926975103321170991842362177120716544823240974256141706925911147193532598988195399351169824023910004675991786821476990428102732934394522899998955232476123691775793314697053337666141451212750774129974269317871083706404023215972974223075348051437581891089958872201949128843818317488063499693058600998567817310347525308401163483532701214340889541314629944858122780974849911615114521488188040032215255979667186463947752484359797782628919761252895832304632358841337848383170402656285393369609147935710287251384483693074920211119311823067938859501961515614072087695507336211412840812148252447830160189158923335143765781597756402941529712520920181969184433785332121566666906941015377216975307231626625386266860251670956075430633746598250770116672731240129016035952402473050004878470567734309649466646621230813256966160016701087689388130080807769575272386229342340615885639941072241267864684812560992830507744666882707445097944232486784058950398287135499341259776704107523529881795251959358732731885326618121896991186660267244280156671271541849497404092510517567929155266854661286458305569291786843166368644542655276523207699821447267870012529232158432979159422678511947104207880805239140350877258964196502068972197104446124428105576107709113704930107088169477233882007726514618616602691143479872815948423779111252971230662372919171609214658470641793737148229562943962511958911284971803805985350053202422799431644834371963251551938412544998827006356256834072097897358655737730115869197467508620510821363505030191947167346107162017890169946867800063236661494685371686159625638327563721792610927119284468175404240144157554435130564138754024434006424718433969230678631407632447278345841238235482664032688132401350980581594251781630231633547146573952858839807273725420405610737976745128050215759337342700148637440422627106118875484576444129453796981484821946495891880263871889243999842602245373274305629178804721718845369006242816907596149594851587003471600185862203240493798343023465203529281898580404309771394454481926971922156088574560463352866116939341633351639724145404323922389737679119459787193185956719677369409765620777543702480277957581459138057313451115313214462303959105349859910416196507074085714630534285520449472531058052981580669255657323269051625900926466604008969363217617168137094331804023937591173752878681017504460076211600563227178152027946671968852006632487589570981449644539836199690924624476966995307069186700575763322162821385573756966079293036435517146154078762653483664696378017623193835906108647409523940645840168906015354019343987360699989240132440218203686998934324889613170127991984790273232025871349734984926233157685373894787121153091011066962769331698715254961019084932404890550836971792910547612565877446271228976172697781809677711658265931195774148361805797693417893030097565514129091993175424438162615137834275617112104043787266451419032591362320681366073978960231206033473124035581168107643981734504675267289552362013492654923527990133512782931010513578643684029187512355033507933581376984980145413326185271470095876090059088138790069564026910729617121712582017470906138813305009564705168937508308804259672262056703381549220701752723660594857045293551708784044997602532865591881348678021493232333867617098398967742124096725725597056586768653721806395210888506794544044107692600374981507840685275671748095438796794692523355560216029159047643693062321553283629896150450168296475215321351136226221086829597674600741132235167822079806796136852747250541844206245191059712499776393979624673737791423209062129765262835493047235512957061481137242645907379395467158343982691925485150446486323125220291564047606419888933160989880467143980966551378741349809470785854825176163801260574339330119821217705548428913453777193523033617861962361597545611772528407868205746496435240851610029263830396629538607142616612410268881962593512274116262774769522954393253197913690584593199835679825116679570607851834492252517185991880674275309273967186805559216209173529149753584780208249012812298113857755806197353607176814444421539615399318337871773026117585394307263310233661925607811926578502594929344820644606590255471155168705808543805041900604680427551342469827969761077221074761531490775846419396165856972690700361834331001205791806006125864533334359047045406095819862578796383948383137339570469702542832858223237659559551124314349531637119032586017989970821971380646403163424040440203051577110473362123843891356903490476396661390824634401701876206486308516907777154845152670394902306287775393183408863972061709368589405087053723225437686270673783243324424183673249192715826703746251861624862021918090357466527189313665634480636868868677360145768001993076725229139341735753235579188283042333041178392800139694709252271709877715257504994648763093103224670906448676430780316067200108640707396057707033889680928287196204636141976773852387497158714589984049436789818367717249427501368387846048379252148978480890702407589145934826602389447054660457725381525946393050321664255582325076293939285548173263473965352929980798830406375296167185611607548457540368606124091294783608919230985524475173115971986759147071690047382010250917112343517777736384295558107982640291478355960932531959291251475768026703390497664063193656509575034799382851511374473052792135549436335502486825685671785492655518516597074298773161049177576256875806811033807292749630174163573877215452153198423097578237123243128230830875990665363664147757653473683065277502266302024116498754917236548616251643431623725702471738212273583993440346366150742203826517322266092150260792888455845131799880935015746418144922772150125767989678611313414138538064298954756339895214598319140332080716862170528687715981891341327862553054905894659921108837193629248819469235449935915467064325320194888714538453568727979782361829486943769339457146227211612276835234703960380816213972422854465312971208331578944016105522010305607316607433243629457682188948196559882401058427308824050072643368504919816110049112448191760154957260782525063649191947841531628991059563542934304595569987583855950305420735100210614418869609556391648445150197812605139115037673442476526425139949802306922146655283639586414024949718453901886984983447023864923443043541466812715447904486718010561705864246138933129894036439352131974917497563804820666953355936065593198627338956105355934515375887589875206574993731016130894212084244530818522410503617208887489138132899471397711778955410065601034156008831455534955683837131672260269570003295165897342045007362129415505988447221046925634661735181615120179551056375789395804044635079038406442701581649201140257584880633177849644073651008729378754151515385376861866738338410322792447086214698161568973127550174369542539538099164573021231697165437271456748990705226135334896880626803834819134271596747732886194704107735255938452644319524397221410242787658174166982819433728651813464780338134715882107478770690462998180049425476131837035747977190332722922688741188129267897590492538773553382330369791789672739616562097381999904824169842900074366713555265306157063574297374967340324770411758872141186678627182947006458294313118418708531427240196062916946243873209995439246898764949437919866481026599374640925034776480291299514047261367143399890899207714672544547614845566670040797498218835035891442527582018633661260304128746129938618674115320060538269507050761410461847141453640379835593169231267496402850448659241994931822493251199646632771668015199381702777594242518790547807759811994155132461432492980587858468719311953496360750686630470763448899482480902282197019665218957421828906948339707638349123286880270900348662085295300401255129038735140111355471656643356751026888144487493721272520312287819523729152099828067636589598329677805976623610149851630732285073581673878678545164459704738687983774509416691636162723018112929605118856864747398329024631005240396996777701522218693120385763342760802419613619409338125417824189425348533252782413765692410993261116911674879556236669466585096354548787149646527861013376190899316839333219567288361023170677072272621389118400536525418081827491178488127811371568355433118740207393060359395682143364790622630940666940792646442551153926685335505295056980032329172009140525600612678263293749506561376484981395210141094139150441574669844514070829581227997499151921118436900018237945697185487730340961118072968079851628921286146264707410635284985160189441269348817517742143421607227550517366151573209854879161397228667699743184015360028749227032555908386158110297340410956660637337965463629794812330555224105780072592380280743595999275550394834215012745855005971143054893707239567750105663926086853756166773795463011129305180573225174931454522224275656802132375258728415525132238428905711714825164367475004441540040211459057913054154421565305003343430284009999882241143292795504377251594990072511365478193290516427942277964852882161530325235413784342275352711691641079629032089152874095870932226470639117789798384483452394008845369035533866060946769342205761433792455764334490840898387124493683990250052922308160895118331230904572038321336926270853920788370453407696274609649971189055537776624028847659459915994034953260490971412254326149189698224542540463670687323521233235041372754443748360650851969983951150854286336562931852056345007874111781815694010043768616911311092953604521945559353010248861157863122475841647268949712093251689397323133262321304937078449430981512769185206420504613881616759941287564962269007355096222440339608638686365909460117861027381020862608480751388223520577794593949863511119601487758365671168737494107244912274986691097749986625289922841505784587501822779395027464749314897795831764093070387634722139055772650734853485299974266362130069463756470290771419274957369203070330049997131785591355763865548432932199243065755856641146106156512413566741556678376626569425045231741975377081922911219407627914209303011483811691662941180388691632273453056861064837483912789983783496448187304702557212070501074146882056826650633618557644179694704141104111362183652186491483668170313392786361379027835723963217917895197226546168390172076992291593744871560284589527514797692446962724090963702321391509407864173740048875714181645589684414147119389603569526264813854213768406207613028099610462149498579762966745894575542749961828696774847805184018926671620598217237537290196012275703156225852228973829269927192608561884508723112249611718739760629661276287918910189804690102762217789677312969956087244335253136177885652679658211875686861326993179296162368015996016562505340641062627604184347366119698311563488848163176391426390850644369645556262781844705985870993938245737872041647573353425550831073086745601506568165090969586147512845731261013915217734971402255582374671948755164068693482614491576825402036065787952179605314147688667666893652502277818181309198509517681568838865872409141145274936345225862627737840016491134594947729101177375974845262763262295490785060293139348879617545387855992518314933450615817127329468194414447811055241451671458492956186236438961239038427305966717913047947039729973480312280903217529962222034374778933730567295975975477287262156235800153316391086277044326401811064942976142266061539956470693547163396170534930408151688713284512760379922239197401852612543246881291842388943455790667723575328070076595703369469791265117488887480761062555220120015019933618810541595449230186040295510469387523317760073287922319314746216716671918620845686102483957620497397768006387999229141447941994039956780318803699531321120736969991612352411735677888730366522445101032111449370328204480938581473411523680629860128331656581165715267646499199120471254539298580731027862486485046594191142190468962036886643389253760800356129918780181220875322661852000181321176636163596357090972355188342489375748161352849701367440929527493077835542345729385555148939648953606326397424703195338855952322226932985886560412781460294853842849558098897779250434733262652439013728297564638663278070107736684450653799045884110699610442885300620259185048757815402349842631686701546324014897488707847716502764871914476427566965015203548301269502865441835696143452703693791375314152512479440511190789090551425438465892812006777157676736507582523440331218302952058675332907010539184906374207593513817284470044583185548250746275985220138836130807451371348399899368622580806317032979303494008231638428555217715314087880291641743812757645787406601573173729138157616688551860395937200559441037540955286152171861011248490410345768249021640248880768293321082219334550284024157810464699730554970528714233898287390727618525011150604287429032225887052919338953186028970537211407805379614687234574890462144032898918816626722728517814737377549578334998575948071660011310625179007591650877577702337418738052958784249198567291310038642188463647600852431988935873489881967117252977137488423033500046402902813387908590445296939274166108827223122465559404989227629341508575863570831487339496383848779014367855549963758006274499259701488195726073225291598201408683464946707718084017646755830244169958778917841051169220294904521563050536409908781344701655671824506348681402122880161516606306414027034317615900599228972820932494629201273048277504790866117317365689288577006459522158710071823970763985671243552777275937443718801685207938871756764955935023588551569645565403058654407256860618640670657619193782054541988129805185558819290927410220519603676178358299342815482867799260153399251285318255204280279403971096549946585127128127141719443980792401406464245180658798535213731601292858155392333921647743757891860468434341193614995668203826757918003233405098995667062167251671196598596158225862749614262300135923078340843702018467412542732414372495661044778465481167315428069079688205617082856626992686894328226216615110641671559188160268084360397112937454996776047701406635130020938275003089498364238608651488066457337312301574581882332734499001610227995552837687314777893404253810405044752355307083637222229496402666291501131420530099660569750641616191659049304825005062371099093639355642269606832518427089579601015012327911845329941456446154890527616662537509386714901680702197066185125176152819862502587615755528916682501500383484994761420737904248895384607044498829074773640450494313015736632766401110183876854521073184704186593412091198588844544373968587785101199219567731220746073277017038858524694283961298384486702917930852670331371730552336775088189689329261805842318065695182961942969717752125056690443023726754625400595386563386051651796757860726354407559424707926669587655667933230293525240995101097261794049393416738281186928906476952531717811294419021065300056054108215592465331302597035050473577892614930341762360578486179467794682886528236206023604151236536950077724093804566129935356959188452190453038826850882638757505734384903162681992630505656768525435498507014117793850937026118943468738162290258810500010310815087054045309159000769487794318910697650247552777746735039220745088888746271894221572900004666092571561589841317205207856965095923309366274790110874700223719688087885976064106407345459698923505361877763262850574096090701380041438031892909890063930660786513296845899394787945804673159864687173145680604156699914027530162084559797758230364895003280913606494226479729903288553236401542602416962575241566202620119844837760178740234745917062607898999292321113482085931309410837614756293901803527349042990583140505793231809735080398514750268833838128378069344203004096354792928294696856049010322543044780656326656083769545746969540885953518323913959226023773790808304440275050302140340285173292398989583807681223531864297232078720245467083291774963761638695188887867869385096301657789508209845941007112993825086387965323952578510608125249058072111856434161581835529287987603155560965892053521885649852836425178058761090882039204609710229858140690427787542714346141136276137558070755409779367566509798833377983488233958118513439095224048697635320039998737926672168599557268032395018343739516444139327501361771881732887089248527334692906876814580520112692176922242429786338120215779938182620400937473789813134159660455257095379596738620232804982812264771269719267306685334575438773536963391115882692648790013100716411924623853658244272538529616303819980728854433682681609911592091510296769576986101569640240970591947358723806250597102830396655468718366359101274061876695636212411046924156427107103726116486623456582058740652646171757298022996674500133226606096295555008529239972374539157687397793791216328789529851711086291091911454947657887129488133111960540163125367956281228806300647497824555740146410392965344620073726450744072055522493450326043936310117385980436516231350282543810810573390367487147481382050000047635285233572173920587530331073274695681875171559498878498859520816929051348865295762016065531931389379664907402051228307893412592691848444235515270284646412617045250097546151944188100440724431333782351751601744421678636056222218079601754242425734976095410507321156388271992990317836534847235930577038311389344088728015009769662867978305859685847989018904223058831901050348082222230630937925508223207774160573427890160897825822504316850858020794486035451194308070009043261053836200784928200526255404903975493125123971457789146966965007489150332004591490365673070318310812469166076968360671385530435696233083967830826711329073424305385763517580660813507143406346327983916544011182217099900049707666276066260849854343660662937913736920656261384996214129242612371553436110417472074508791593181485632627326199088807678642422534508223039679201222034718437413585101472167780793801589960409389947795725849310947417909995182984605998190305242330850143496720108442945006888725473497444285567341152854987807413897876604869923714642139010738193568648036625907606046911636531869036137441702209514565221610354160197500721133457181068736513090778743713644511906878869180905124017308293960985687716444988624790266999323441636849369859515172982182408836830720720693698446581460491459829141822631175324184172844606243282024684924372564357100148764743196421331550993339659790051130635166914126297252297959032465482713122829755896080773398742627095764872739518337988964553842633406504201594670208638678610988651091212061139738423831317896164051810682343903973640734706103004306352362426635255849554574887845257345978067578233142128091779487887614842750213892277855006263891942749201672633419697679722433253796116928875872773832769762349666639365399004407420334207182481104311873367670905621740205534414798329181297918630048647984261768525503630317903231188959920034180286657628869306337174475729271289471644583175118215534158843304874224199619695418090144957663734299618551047863401547677476028349747028895490426873893734520722962353726403422835342026470613948208727510443455410282152806881708614165106878537421690993220814866448766112005688461981349145236834484252688909207777024757038167862577329118823989010908528923379447482855799624273286235884981170652842274474417318076005799774733980590886032472408904299837014939439768652276316090498454132674184025675289423237215186319413798077558860349129404903271428349219318513873823444327245171983655642195725837147270985954131404408495127437327865656686140336864695837106753949825222877156534821463115913848445265020343600406371750937144555752115111532055722491489070933069964868876514602443452131812599477158162952172978086428191758370000519087569591112400184249275273344699533735452508769782597560992359957689494048543939937655607878393835132083235967511081706085660624498620153558879220085588138880576129360674017712086578326086037460966312998907128500979503780426467379295336790821480510340336845767487503697388011964207437535872723425807980664465364874284820912718670722903887436793277574268999718764592845928446532981937732765747118804455079497852755630278389894454023779141910078838850819040860322518458458022653265586675896181085004078843994481311445664092414780575781699046939007265081926561873180609559555884796773960761901516441626044871168093330611021778049203009574509293411457196696702011985602885267659244007981136987594126320221133582579748241592488505633191499979214850964043191677387790308823566332323031769517176814455139309899578202523656001576818661612472958215352535312919084519211230442499587963517921873621712158458805556447982674448983816498311593788689741232932341990421344208541667686511261128942157378500571869015035727984997864489036913674543889109242395663326865222765381061911337476150429631415602585350211920055154806799676124237548768566275770655977969476606299490315712512020178810505603909039295593773748294361744449132131208573532368487568310609186360842461799626595668874088850598082405722886644639302038943483752707617855094129143869166473587849264120999122263118540894561436218368617922099705224025451774428855352983872389948748431795741221474167568801427580826388404095879115622915761016289522009045581951310679069528464863664379400952485482940862969098925429158395935241863819703262395179620870662360628621256701047479168484616669586132992871561900200557092733446804081654908851490148666844354112476515461806279954692722190340876613607672129957709836808048568318261246106871360046681108761148303969860267818199818610359008026253628564759531678387276955406917955070524831639227879753914389300738521926501999183927975325083963189604589298480737540982830630883050418578818227518843354890380057360198157121703631764541617671072342355740469485517852744818866195184099066243860580843441023410342126435790750203335779505902883761501427224422143735615005954069029799367339792159063003530860563840758115085978859539366994250076416554512880939139021885244250842295517141122073950132253843987840791623768109612239619548332205557896461179545647159735594711974293761370367709095982683023323094737424673394982857798691341622118952654628667005234541398471232327458493126476115678239621752335290052285073218277190981044642153992058124666570849857712996221899539887404609177199827771771164443226587135132258569387356511727789504775975522261722900953228238830599196465124922150272440080877624145375373770206148398740644740609468743264377518196264234886595933282031787680266414999536374739761543062924596875001608332554029796488012428227181490670707250667233984972693387016130911992942612817039746034947386647858372066890958893047227155992954095341339860693961392718735024982982275046308159222666491651875629091245100853509240169360316827142394234621845494801296145329547983491226483923557917990756322880925224619212282624832846901503761359168223434254086224368766427317579889970834813780853297009417492843738916896091757936026766332838544122475424556995445704068395810478592655706823644682316857636906363179435385321128524003442701225351360003109873404514943220489949987974477654391866325180357351600600613677143405007551403536755897499331525960791449073952691422477836686693332480346330646793434114673772004314842759375760100984361556349926766598391680613466798896584828231272394665758824545936656305998397154040599297338128123986554590791112931052523998964517557517417974686496556915194237152713720566492400703894710314909865489591471908866635964502066452481432872109004676667604628625897870698839931609412199661080096364207424872752066408264435092916571177436986935837744530196162865409467869957354523163302498657885880532557172512754646842103662354198946559913050971028256615406755518381483975568862841079438828904019386089892643879867920835117788333906711026807581984664025206715494240233813056791624438287712629272214539138256602134611805750352569913870397362104007171515834283856919596493699174797856236585843044459195054631200640671210871988505637465756698143716296677184359678345462222451056617511233868689274450946583327901162204042483717627014839097593549872675772653676725186486914551439492829921503152511642018540030883873662104717848300097816353411666811977544992381260017172451610358240782791742954163110055492418747880483583517684935844366449609360240048970447729616536544564523455028828659791010348469899832975994168882197361472460060181072692219430748555221134796317059180313990896604183440103375655991173414103850535816743218823643135912066461455409704719430237519548494242616280910059996314263476434654381625513371430151698818182078836243698672448095164908310852952816838735727602277658247402612662184570922809261918367998524460763749241186532815111801489507884683608767701347821773175218246580199790409587957567456322449176700471805249580764189652795966861282083668931580262927525903532060282267511788805943170558541950690155072403141156900905431554294743501158355504209901869129761051052528105185593413037574927145883667804901609787445026301202248057135794217712157456426035037364624107258144664544097408984778529183935119289934706062287335667366187693521387316424573123944048064719561747859959720342957110884475521810470861210561442333518792830135590613068917518007335892261329611274709635164983074713264389233860308343185361446725597219183880393897334599278291069224029941432109632293617231405822380907604781475690843744066000352987559464543775809567918362271293285928289052121371717169705853345684770622327420691607096072111375479201543549116140786751221227066839410683932068622486003666395573748538101856630392003540293407876907641150646087740751655444707865775236559907335807267821092808105231597058641614683581034239272817414402060262371381079525409689648477546536986096078608634540101440966846550668229430464887169076761523192809348668683697492655775440235584443213223727310054981142943215680745528612627223560767750758389242958967389374485214922223404003084978934811427857901807030933530298457977926112318344007707634462359381731618025497532022629051285542797424857859145678076600835545404357061182340109634325406822635092426718252994952161922713094121507659006911720388001519082651693395364926812376336781799036929896077349742444233115222006604357124285892632408786030267658483495006437484429697567615106519534604243582993755756801810072910266309227658481784258848340059076533079516758638650928970202307636732374231921078340213026590425698019365370448597147800863096330329261234792419435443928476529954974282909554132175238167719001546222027464339839731306242185799115644085310204590901400895562709620236567282290539536191177314576751036669253208778970812484253363849746612183965690975258605332940105271167177647736738097162543937419080335041775562994492168547101691932637826402789929736997091530361552189402307935426329319034773986805291369841100427226511154575801588068406454508139714569596575135452150906579181419522437433285193553777449357584278113235825613799352284885863435831192533005551262623699583997318433098556251329109998855897066261574442266236093455646298096710606875339176300617774201614413749391431142469589793032622643661386530640432897444565898261511300037067927050050407115370991149123901617971404120620502193842277808512055289163325069118050439843277993245086931649308679472546979470227050592954346417621772514852784963961448188911936037832143853233828407017206341445437358028067345823694737675833749127214688164071863787129323638122062556772284488696787506017823011629507886049570810935995764777223345517152352203751118488474945790219876785358956871588716196560192945367698422072094412441590480994665634976350967947257731954379828952885235884632782513063685300702020868184870090685956270818635681557337899754235262996649757198897862709171156087116669031672137345143536367039830418819271900253775353167822972528112463276174169294048405616712811673440594770124654264594283054676264030939563501387191816039446977665069450641362101689403028132709430462940652632771934718943775943897394187300027066308271536371896382536680283509641042742295000422674770176942862544420854046545789375775370983724469807091342715211623739785999281502401830054534676357402982129195258591264823591078832711668559807343394982224289932251979176687764088734017522483317657749902686880191118513655743423472139166245567580513218958029450856938966367240263564396521580097083852617966667936039016708339189093048851385316072460490481010052399453454277732595941962587917817484079336688425607813783651093356080185239682626049373601559218721161816470125642104887335913660555149071836567087721417730433166424031849413541086540982293664939376494239130034461169505042200809107856177743554797888697196534851067607583492630407730827861555233912086572515256180118280356957120780816086929579394417598051303076352448299195988154356528048168240165324601560587777742357192757204401688971103306136765137747966285982706331265067968546492232961186200532779409046884242114347659825986614454339738341785575848147250277781608456186713084978534018834699073136216291611252743202672380873448379965627490475148330895925299801857812524615201192855000355006815522458199954120215391014574381637068945503974195341636665938587776434134009828041910147022309187506890629194258487753918869067917885893837511907570821455247718192825350976176971465470820440488059613869814177161379544697425194872430619489865391802178275157173289920711240427970237089056893557801956917251880325327389827395473950854419130030112252411929025329427670444221082814619161698512941693086393243144575807298715511938016447740712564288080223669416942418068161018157755707141573798859673556467999406400469758733971440228293133305741694096080178876323941129174614736944667981792808705470241699774693489050281220741714619695341171970027917461678582754408666830759242048379278443800769654363816816452558439535095840740805479604057136073602039833339802568665310960913311802866934666620925947096633884118344527423668722919957334366073632582890118884484547738535157345622893816595518911809072326766643833116781801559498908068639142512273470175274615437652791820236869405644639047224930381901556476188141320594252516598741171222513052989258528504389839474918334642689971509412361940923293679265188395691608985452099778862936652035613797715828947274498269035620936342865612790493485995987425597454984732620020368996099180094922011398662691720353286309189079523617379672102684590595878261076186305890899416017799142930197391072543700556056461583515660337798738421347582260650973788791175957766486720301751092198158821909357578163308336108057038428554228472896978081709580185143007453665281705838690310814245219674543771496664956731664012687720181886331111675587995902816137618446999909176739853633342538582340733557840540438830834147334540976677888837656505612254603169163907416507230961164837194512647376438459324144470681610579825353656797885638816598646322902211116957034187894315635193600118660806935222621953211148917041315949028994606376471001738412102533244499194005604029054957359949153252503902717426617258138814918814126463288639663020319616043904881208742830810403417151247568335341240934940570501706889410605664085017390474164379830628977919361483518266616213542969744279004262046861855788045524790755217929943052961811715479812891353078408383635224401043604946443828041762199847125133850443056486768619165927527206395466859087570741759998970332460509155018674221158149545002529430257718223375874114389479993138160708475666893188147169014674553970281949373541651750875222672569159837451353323425086785395083261997934372355588106054065830347428756128629655086712905090749448197794015522476731996119080299270966767285919402669298906412810441469435520932729641115729798220838187064675906916024422528921710573509456867689920139988117103481055012732429933395059683061577280688084745106097325916710732179962351201628108734304382867264018590778510664224242287908738140531383587034458793922692375346934960323648077486479304373688234375910995708562578218348130454433798666349891660459847794139474031412559995171723063750619797890020148179322638763359143866502553291830610910482030289887962771288255654115314406524735242843105206502131427971382790483715277233508742517059093036008523592698547949934074282526779681225396519809238187708738410572950815641218004654643787181639962468461221203265187869341630574669009037074989412899460210176469494224051041449762801429162538968820256149691416694118256317900408728906021785156269587702768907334676951205680529708907065371303496760555927383239102221239661054720979238097974355090527312023788194414437801052650585478836188069674346678770066188018350625936537549748966554355183414381169025656085752787816702975939961690455445107173638504111040084081152434955186359154491305431600190849738709850508322305898436619784841844750101315885726188419053810259722857506852715323300475655241503230625215639801467011299931836381158741415989676903954682708981056782893458401298734645212889080044054284220658876296206992230868468384442071967088902626865912076561308192634388234506224215949295777611108858646103879865057246856770976507555859784029568948158231530639942285329622020854943787339506880140734548052418348197928565768364204278197965603708147067085700781512897475405443130273683356901556292161717713361155579299677954543752546931377375128533730739437389253967195371363194905496506297835778601120608106525252162361634516002321286843011066665380018481234579022026442390784363955132671089268311139494550693177277643623710264138841654338742705490895012634852101970478187053885223114089939811431387711105767620114656161077477996338093076499976106461989316090228598163264022194733579824823939206656338012200945621504904967474174282496040509584476524811679013371848600416437526761157677891116510612397606228432600213474557675675276753789666626684691137253717716304479938672799238585517760250585857094560513986180660315552504043428418689296245194141253384864262315591620197761559426902540682113804633001624313327648588064267426874459590506956702108516267877072432554357153812167340094516695136701192325771283342129608240334709329573014367829722805655267641674539890650777029901421019542552441639074943118921605193756077694870010582934843230896758289937922133712956158904215345117218233554443068092158130858471455933889589451953892937810901716263880248848231465305870665217988113637535483015832316596968569426226762077670892933092358265025423880278914635334779405110713657352031134889552030977415101593738503634407413481692414791148814152291381784585755439352075948857919563814457285892030933707036899500605305627745895107413644354461631329029285026373532533769703637741273538978314385207734269458565580844678449395064238830383081630872145915460468385166685741632766035948800733846045848287330000786571883855119279219596052155434929329093643071745595800518613622815633515787666341295222304715116662063400270185986118612377557397166299640159455157430605100809793785167067323026662492243245081462655071177822494471611102578746256936064076494565409218156242504405072654114323943419626077738430012425185387231674331876133870383173492690010961910079496209482889176229455475163013497633537616005941912723353384494192760041632402683436529822307174994725479748912021730320442940915323500774624935108472834719520025973353178024920638576124390952872219979449403149243449542288395561866338926258841631956181351587338779776264622895110347555278655907955027897479690482002892414834346142442568132520382785073920483284474834379521445063647945562249331034884003208294339052730670228986309695446202949587315205589499262002912197055361552054655548763067842819673033590247097760285990137903764651538200254244707856282246777431921654238967100275795169653731642921735481405777665081597844571665872675710041523654526807922749715812560724905222695267822149347988723770635547107726542474417909223664492160995915963310245835303233116399148106874480907869064901161829874169894230241863640387054904272747867793624576555951896101152554917903865173040928695878040411987976315478805604491990111435489646355064605087071304885735232746464267359120231680721681700232816299954171875609421742850107862707262246377641395818911470987368840686967656290867812518608791759326293789108491751359021957486096718821364203658265094306572220779852408640405312961878560131020391620783230286428832001734706888566748923870914253361007571138277258729905037552888280086644725822863031584398828282125494724082033160652523197115469506385484636863245481811138148779728496851742710992431942465014041609234268083784549298060818854089755070076567022046860043807363583630571194265674245279156410269122641655766256450316293933112380649138279830007166207357292167837605253111588661469730261490751405089691440034253135037600780429396024112143496080593557851668136529575151898324992683364243397409876247001999206010700745112475290649080928314660745695514863224340590840701444049423617466083059442001587342177330773901654763409973992195148383123497196198463736580140646985780146512684695691766157011799751191410391565156463452005509531865254483113034503272265543691822675123175736268803326133693947717439727340335556425400333031722312630719944935663146564874330131778503926003404144993757914347558539432795030521722705469198991182695191506122030279303223657876539592717475703135847754711319271140424357866230760021974626330965595581545384589209089251256075932133729222772206998497619498768688184559915635658595643321846414833036668524021628935549228011870533262041450758811179772840992483584460923392937334516548901297293782622916813931912697573503667343109249943749354455681216656745951779461421785652399913863324118302392060967822327492432256815291641416969601335593795034813735853168911523319057755298356829222424430091571703946273786614147378289531684618133023094770757147776858144948102274506540091617874917925016774491169542400415079348387477857523334409760957593099913989065418087218326614429478286618374533080208489835821804942171726080206577339644635222058675359374844972756902983592589394364216138009660879188587596647741489564695559815949306234541565250728578910765587974938939169378800014156013920887209669861465795504248376721817175616004242582810059295821675558870322463492761607141365573710301830914245765993533645569492691186458078695845594406901239936346699369955519949446789931931660517347747801501464556349301070581337836346022289307170066861298783468830285702839007382349673115049053772822029436348173062153084566462041744835516138541147604674639351074857458920756367267266333890663462238093035528025412753292532838307560083137885834382541678541200710548659710802708993139635257662640222594755163722306845039399376446186223073430446679630145907068853809402483823622367349043303499482936498769119517999760638241999172722938936782987157748424639033782690009774003345920212728857272167475026644684503219762795350601382294696331795014792591426152079397190876051870070710958552956789090458848031253878288822182111130957921673752325013480437691969796622236477653690228693124163797610017338255194490516092083969129267810689759274843147800523200539779329544508256956196802127971633562572099099559427542474926244390663471401554720764982418981419801472133731764336806695933889283404332627509205105139449894808445903392870301902596417239271440776410670257353072759996598972873836572865446673464450513938915671952836934097702095887046655591474168082548742679463335519945323440684507085278859900604169955856265351146737309164727640068100446593548309213773303793036471674800042204484225974408859733095396132967205094401888759589210919133781866600012894052507892964621058459996877280599255976004227952294722214544982256449162212542525963526064669807181579839853905450878727991042815496745797831026801864426651587738793144206606927339482325094943599642373381354967014901856226066601070677300204756068639722458692864840755677968494071809521000329290254278972677148649672133919025310282698239263445898810813092493795002527101034921854367447775873720816752495852490078454531960296354755417710375597204447507120317695730052916766896254485181539245989479817969235789570944334304526848112106947499996761721385587984269493187954989937803459160203733663872703595410628681904856889440259579845278749881773319062135070304081445629836404852661460900711106121029192747550875521788925496369018286924826127054263621789817555536180740366738011655740926708005653930779537794281914757901757259227943775666610511535505252907925692120065792477434030286673197176860758640815458353114598981688327971094433126890352715565155229723143129978114353643457663172233132941828135734603936746500072441487850286599161295265479095044238479709446446399894418271005273961012859645424275399309416741085939352929786990536360041125484553209441828741509695260449732234486183624538626693698878280578390084848176867455857127633137517975651451772841180558400489336733653362706717882339400274971586367544457855876902310027130868548428138277177968019223986988676439497055734552596257529033980708774415547181256506723276351161121727540534819172619740633797091301587276664554687967655005819011767935856727073421223015250955007664630698280688564280279795657717497590761891781027817603486456811692275220509157699118240598159824630903399090326194681030389583749523613978508194326029384365466492285857781142112203753771731216046836015244393413025873685061985252505797594001343082376436828816473364192839627196845547888279056246916859918452293638491738110457596638363167615580751996754992364000485812075372975692925993854976266567339121784750401093469211927593481649727714146873193245040400330255229813001788797021851181537520716989269918381405974493272212349878512706780526083618423260807540038790643971007365855296652885527805866329674685796097857705454170077217555265967521877789825398196828170189825222497450950510504971383041687826777581968404053369496669574533332094511660024535877018884339569865008696498622686846074362926144351808540165342238428630019406499629310964871248395594063764664685544434702936881362102034469130683660726692808513915459134673910235479441886750039032069249439668722884602711657758924622004266014037928142710878388641306669000486250882200729402587204304307400158632202706326209130112631836452328016488679047832680895904601270236612055048587660357733452279455031674056015711066127827810964875048961619503642285894159053348349530462897239617634217153927024855236603845923957709263597396906018040690355069320445550529015958251213180072575196407687339444802530262169999379451872160526928496155113185653607041372988626913490178008914666730350694858387917884726843978462002091632902851392474513785104029935178766070123579155066115834614608909093935073217789333286893173051708693816170319511730482367070793190900887155281190363618481511658009070303587718368937740068092320607828507258205432953743178604849229871137699283931626568907413035667096533435261516454877336225192518849210771685633725787289114442216495837878385907440470743350664681809407203174564095169923299026756158404920780419137209777098019186576524537585377219479013812537022393102781334321619898913695716561272735105998230750933548614763937487106302311931429016812837821689808191655890256915586368656630804517245567301393587915004682480782016461620832661635427711000474934871006201441222851527452301695896104068411760523381058465424635248675903459497960144825512675302208498451271655561102709979980305674116252737821988937634945968543666546594005226369781923338753234333341855289826230436853991987387772581576109864961268642500594290038588804947312609734939417262093723943671045450481731626732502333638040042692541168074317940807419891007669863933921895349316206369522409280018294626676909852614705466792093699032709811216986798117258440771931021006057403944234909097403385472692069149892224353128545246285713607994185422177267622962147202770862035548573844465171014249511858104548642697013929594799864079346683874776978863879521211699640258242468241133627677866392604951423662085472481261675933856706094150309619250144738671893261131035395204489467172861513341113425262969310925662456735389431583990177141561558245070165617545141488042722523501443451915307121561632759817289152251817984527333262830766844397707350711131311762120390944015364432931662985930839918082712874249971642300076214977851451040930658298506914244849930443595355189498499978236221922156893400330935020730459501981370102364307840940478139956055058035680871272017669555075773270661302483887559890283239468051899186370843799306078250495308210128580880773551895342626246641333901417789481747372229587942935063297680119625389271656474507320636637327440550744909484937562051120459088962980025957336087204929986388455262350877107687989314399072814182612494105087357554801970595809725503983160876041093462853134842472115089689729449252913519389983301831404965137771346860342314067794379543424148284741501092843532393438729255331442123805544371294521959695508381389132508890632970172076875622685815388195477393173754877304513515472279088074930118029574293273898503496219000664889114682163058298340848703270260245850100170820676300258203497925899664107057916062498424094712071006092620773535140759879135025911896727677471480919262116367371649935089600526967065122355956911619608959530716227863808156016667459904487855140133691100254699358492278291918400822724249364099171791693580201395914378181408079292623335049615168637757551536962018418442521830523536209595119223109403010111786203130308865303953145155512283418285926674033370459387333940730831943528227059477437001393871284749818232490489737482006161167486729149609966522727614044036335618313781590726131032801839385643672693046336072698619492103449172139546646909112532277279047864574031790864842507942458538386969071203350884662369062576884680206856778630255264430902471441495362968387654934525527033126579162542645023334490166527076379206592106737383047065940468869666013910628399842472384198346106285553651633013978713449340197021024672553767548302413529733367811147988166309310555251254189183223516600599005792229291154546942400063270158272768787431295058149711137275521688216830546881908284780563550558577474239246945919519183494737505825665522284875203701740739196951637164017437232329322477835634971338277496352545093777884183937592210753123721522734301360866168245500554440748884633140388612656565581509871641985046378370519408410521122683869814381497581638543968679324764523396066243392911085183921894148079682849566153324947569299417573434113501886251314382934818547247423843676712534515408589442336085835868620877695573256502351499140385627717760649258514321013993514546034306965478305833006488789914550628977586942168379676843454331029286850632681872029980090079576774226795060270771445217108453291362746288312649691586042655020529289703214382673561018314873094366575402801660994600761571139076120931756372990021653991182981428043374286104009360569539355786916601326433239638104431597594133033912371346212525685072941953134836665673534296559434833138271724382797591162871983733284430062306931155806742190750156312375831648366529531714963241329185882588268059221098671993401674918133543244903751989333952179768475783749407147413319191174068056695696123188396711029696540102381400035514812227608791024313338385268314096299510176292843255552226986406577675540892713549065187281957276661517209516562804959133296858383926434092146837166206157506857768418069866427367823611764938216550316328606167360408265133451170082234123404533879877937866757857412976497755796384895177505003960789777979222123816460510668865001191275244502373026305272043131290557444975086748631986418405050413792341583560978225757738413010717408165223861469068730058032014896792437539368020209248954361229511046831330750296192082736383243647913745523154240296708478237250984720027221550552638486223595169240419845938802751533808404122858940221672079603442427309395590042601520378238390026313198080110096828483472770291155866320098053674424194121486063658632689161061799268844600981376964108686329257696833897696439682798771277848726561143329808459350421336762383610242436245096540215631084073678049918303384007189228980103607919330314152353164822124398182253613978381300480314103994829748664406654381076633957077384064009828406002724879864976388802484714942768229328626323707025835478421327285268878127088160480039633629353107066481365780865378426331670052752159306574716803714610762679136254705351834053321473378747554421802155286554136964698792959192931465224021879481790364816765942262770961219970385474325805828712038728687718668455845019786369609505550466154614328698901278292463656741536886373700726059982085679454491340043700516846421460729818754775864507310732050566658317920722774767897561788284580557427087585334230823470353035257888872832187721502965240942039827637121959511041625861534165846167719582904364469176154098736906379564099826448548965259771802662289488306626197521007269365196683166116316502459684048461428866924426373562885718456204059108262576714672254318894469274902165230563662618566974410730049228578827879905498860965546424598844238708019479590011291925427097275120327370739753475683307872107720146150643697509199065411150808260578678867918744985311195849570201654733471648402832206170570021117942377178028672568481044294996656792928093541120800518590730255580672453085212033841776027421630572664809717223414602520983942529828868591298134948080702031235692549731137195776583104639545790685878604779081005867281457175360229970566853632907524198234225314474197430122078861772071763761710247658360811172251765425802769325585017656968833598995686766314184571414628180692946855868548292197631649480217361091777663492123581280281000298883170603488410405651176556532352211876091380504736572703220101229764192542550322419170134872578850728342737275593479570314438331815871933696566041481289293555517194909867075839309752156188524394520613493640493286697280928051115097702410237797030719460090090048281007994399026738995792066598039147923300766288739226159752555956698863746697282739437578451040286809767028677683618480521053757921076464484441874978983921310626666963059586270489993301584221666736397991398119641215829721627499938714165955180063534480514437538209184988744987980334016918650543202733752783235702295834413536610898556380329252677870873080077900422458663753752087185523512837154761396823954556022171106330843259249924202244830859351392365438321206628040521941944316935860252127225820163795998489679481451169630903478115712897052142296376884888774337046436619656644779836402937613512476657072699216842667415613200221025790582518089210813993583984282694149597204283840429088536697234260603619432407788288071279426182846753775629457030761321870012377069224417075579412969576423539849063358985842221273518516223102394346473392513547649980013624987907433682486878007144172925936156377355156919739990935747162092763247221173076153154205281675094706914407527107556163137236131822441832584662071925843724137792989690494819545359973377753907139900579525694350046433230697481290319364202076992306563358380729750260638024629877663932777708615055041908377064901497260405571414707991956105726003265898610987405926504073607849143650997115756648313196753721233175551355241566973126775742304070627420896475838329320766315444668997747924489877608060037801497633739757518617030777453018773909056888590256899547532264281491721015892289856317802705690541079769931669596450153198860896599814899147854288707025023860954873404794270394129076650866096047935099345669166919810772141785338204228832370954849349694757202975750994165187071701873796219330318299180538957566190198209320467084608720394258176388403866699887023317703436978920256484913166002542813724607266854148486340954166034784874850885954635544225900853217432048403431034274680794287050859625285687075052000065019377286211682604679661924021721563676974341958431500270447304034193035559148930770596066223337475540663730414154506801707201387976464146863000665702633883970150223023544876617061112111083506523367558599569717390899475208494445229254045206776463495651220767505891225264834707879062423706700152230577715823663059239568343144795733890099359804094741795209691198361011167750012128150528027139442876018084495970349808883282877362473894333848251245021387582192909623389833698942536419249459907221626860967616869674614819016420848291800660774568446001639767866347232345219136903534434009484436704132810338499343381920494424761177039808627472506944153491819463214914708770614739733200291654770692720023264987404714452933432461552431604462327441891243595541103742296988290983943617827566730683848667799241272293632242060993793842985625415393719454279956591016747485934345540890906579469170067082817233004226876783525253767408650299649668280639596594233191002491112939305484335879422896694368485811391049457152454162728522682213568966334624982910260041643028641290892878441939575208646111615796127233092604530441130402897503365531857090563607123033402163052433827496249321514131160262495061770731083189701800539058614436225642078656752559982258686101902738996430154558238262750153910737761810783466529597541698293847702813661849871792430497116235224495612540139746956154631805287751273573781784384158930857007744955485483451103702840984284102537022486883885195180138348128864599626569277672149706670556097826770937817969090581719752283030302892358135442260680038931223329924227196920500724416478150847825316043560128749467763653224825950674547117794350183713970408235306819183660538796274690708652871716664112559083937404799561615791978175497299456221560817525491687587399865686837972794676264212882237652992093933769922078833412008991812529522197039697094849780512474938558541942444374084434969864088866073265668048242851153189586872301183802548875803893161553019157709840261976528309100764885528640704940928655038758616327003782822602194857091973170883526540215948585128005856116518693208005196855250653421627744095238257385582771818746144328213513550738972824602408655976195793430554650830865416043246912336032676960382400023389247822502130156605726449322467455594832472980140268924500337634302612754206717496914979417660518001181931493339970642072135815166368906090291730636076893975846648560476861409358351202402354378251898236658199629472414231526713141609176528939670029139082095582598157620581202391364742547389467959682686013890613278472588508818837737111891398825347878944841999991735783645757551278504718279059313043856910752630659290262171078189185009145939814965642574307298807817716910438494443349780951703055003672248354438527772118440636383948493735787826651175590941343226809442687628934716009741548796727069033612215218998192903958237391683835250821386269593940081031219757397479444813407999170884031596868934053448552165171514649360536972601855779614891150244046251698193734713581414472329077807285978022101409344562762134601030239991072502155055848280781210391770301333726741798770120929108628315392879741313870356966550529026825816354208341623760641512058852978606318578018287156235374582591632391877115362370264810648703139704308685205104193703161224491197766294245328129977105821438562509155763438071230430894372147751556730411992865716746023450455541803833517675678457877350150158012091706917475080460554264151511341690026506371274578377132027201756178678377919915677691038923721323925765360161197622967543446001522920724971899651841435897249814402499724281239198267120633908589008670156162409302519428209606875467961716926489613647638644405333492677708272370207699848248075893275599249095278721809853398071521599382597709066057259779743655007972906950100935363957472643912296221836616935711843594340401421832531546227973711053647985313146058889922703274562038138601689756217952620026261744754081175788542706838979201139835791786461921770843544239103122275692596654255305732046802761433377286019996008035063531660629533564020838034131261915241749709227532668187721698310361731698488044524546213786314345829884473525300092765291222454497222036395465821933709419934983213685787078758336444168918798992835950496566487343918501977242948175304820320831735720137760361570101768258692744156098387550389866635321901719192427383655618094229321421172064747298153628281504777193266538822761829625983813523925768687524225531530217572698073703024098342942920302242903979881689007737880469793062891586263925350503187921503872790117686471414101638385919644630642390531906748074754927039139768055031606273379891314685356744629787664339784141914562467926489756929086960098456462360922094400666266200539039386010429968243903089171722209196065599981625617073097904441878485978585133929832344053927836823803106998405238918674311054055589529469586987995673474171214021770249090557256266962511783689953718141650706177432998873044817647496359092751446473720716916032025052691867746032324593841697091240729206254624423702674425977745814117595138861862174122048961792299705740020438813452193565249781499137964120772545235410609763270612655359194602758925796653176146011286516788446226428808223029983158315156491384154581091811206019722535479836711966232974421968419884469835572229118175058624247040599586681083629349823825202251068716010758463838087898827456438608133517253918304779186365961396933932210525298948630605384505677340200060746308034076230594283507469519882876859598833688987986009755601044063742887388126756638349839324931338998992909959787190923686844175201699832274193621120115051239334088994884626072152274874779263399099668921424717703171156593605629701486969174409553236723878487167344325084649907687708516025009206555138218018981827657436132670448532347646646429862087562455288854972609562233832270789391697764862782702389571844645197316289695505605719395815619147387227876376568894700138075115799900847182252649032288783938112326957880472523641966185305692471032743219135374287228802710765119830156155648464773104419833135895316681278769545800981064202971482870976452675491043016493054833292648928114541529913422562024301586900310269490080929968914261884689858743722911980776543532544290104092234051698371328276337088788771990681038019942068635339301410357458067493099173619291311559426617736079766411848243861986602670589795006769175233007853506947899973306088963371954312789555711629501819113838948874439052411341468104031466348872271384004843213347091602523215759344293655017766089586186599658508736080348866231657362941327871360545413592244887583251410212477876258645646203663768565351395841271163948337753087152528905664277216565845028743489051892768350238204983058470545808684053441888546962162190225611555831527452097791699478488199955250764275245753837034662394625426115340429180171469530510289102612077704638962580484867939003373799408132589725270899982844600847051323937432318937281087499317905776542836554345312756953576124623731633521829644202401306437484986494208077022666464312616218795828643600329552552591461925110831146424261430958594142083808123624408611324134119152875486494196706211288145899921296313120083741170151464619694305596903187018420350515743195776119775931400005976092558152936191074457009544100220036694655741998767809901715729073003413458123623607170795355535641162866475680427296987375001218587860356169086200022612565205050445723461572556156603680634270612573057847720734742842595102956956198047357210175679728532718413203927899843162944647749487785725614213686717448306340567819394575511701905400631290030050621664937997814180720792997459627201813432421002607423520446019390819105419944665978400870286670572935815762967254311034262422959460147439006387116719551994987291010363469786278457631463330785811788434924779655065492029990088707800137631970074036366372832829525471688093292988199062525462511423083694606974416150990296214100130515724913178008338911607335188839480098913027310012154917035454744426313501332618068577946985904058186366308195606592808936614825928679671592083794659697157612614639252539469790099147408725025951626024845179001301439105792177233380486930616343964092385246799792612994408471851447781247412114508489013079695254642386483275070104457617238030109507009500469518844344000348746542440000789398865570026125265223577496810325531733849891248161014611539287341090873436321348909560063468553487883673493215033862313201453617188709708250936301401661986819968203349639028873376985731801251181968995680487022609209217633123070111204948174267351430902564833185721628334518041123369181979589611496699731796385463700798190188778432882465486048868629451635145649247055217848767271479569357219185783084610744886993420320871405494549758653576726324587247227884620830126580735272126943590669189779082881045279381614209364436317600284252637812613727126001471104590587261927500998268644091962592046413768276635217766845429469684432822770919240775914683685707887450441918632181308108531399279773616561352366534434596616885378812886877916707376586278495917367276596851400046622786531816280455841292542202763386547763084433284115272633141604196480784722233963846276664353648393928294862934166976006736182364106515510670556342408502131246719701234160644696092795210272581105592770812230585605971449396513513847277550004390405162659014130024957807671313038593544991108904965114412928280833443675542220337292176297797856445099578445682450931665201306638945262847145091146071373634091684603203394778321213661985454665088929685676406643202261746562835741499813404631660061107698950904188749733078096193675669152981025135076146625043073795405330927212993523743060876522884731783635639151649604815144195304949897087096506905382229886058451791098545846018072310153973419329611964043321374814060260122668918032685861313410674593553933238316613876133174369109890428940585857335841154361949239032016754670453540471836629254085973519062700685305347728424126693499053845683311227707577829978938002670714077217635370017215215868916428250505317913375730030828722577793273365882343418914863532255418008784212996013984422159811635162042243995708491778906119275918619182075643658978735114421104332507246036875627254546668343971122592736190261423582075732292466014538033676817110618420304201191990895708661260526344686360210827105045721436056001859910614424430851674283702345150528903433854166031066595272113284573299207091978015073355158156075841536193176649521798867938000840538240186397275631321941868516137398361718932430864435409404001466380416998284225400914291624514929700136449854896056591112256683995999881084084199115407057185071879334633334203286311014846389768375660764632192518562034803327662786285041275376906903759385232005574492554050256771632034334969138412769733860883639661813930800799850094303622691580304325114135338988782840437639970860500639731776202658396561154334960827157507829028378319366059620458328112334469772712695768866587738379143298731491649350852653561255715472813216532378517838153396813314908392727984379259474262180629450561316727787591260953432239184119728766347857099798704587976553822179245632211978428061494865006350719252920297944172395631032295218868077581260438290784670023892445229819556678865766628964926344527744634735985486881146666449834138914689883298676020003427916483755414299463819726795754279112653013633873798674828211653175937647824164767925314135278177444684153813864302564617241250272523704512423883013691661511008068925539172261239804733260929248942071818066366611364400837634607227266997276403663480138856755679464015429870475096145647108718889296890814456529035916366829262440871401027934487981689875111993341485595720629467650199197508566208953119641831188377325668959799385444552311271446855577746763511964271679261571726854773083433670729511192855512159634479055352692772664157671156620645798329664926233118611736516771608547647854380573482235955083769130434587959352339546827689820359995204331884816615047652625181375269683880926274903649754048252597006718227362758424631932495958166694525389931158180562977051769222016495489130756527929502484935752424561432820198756267397557789199328288281580853884282033783628038814689179104722369493024231439132367782234225011652726835433314452651317472509753615207655911469486150985568330795608661299572941712337397097596980387573120088193775717840674625247515165592709705753007562651373964818974921852134487539727109381440989482644412249567082108395982134536293834715779566869289898404057180751098239689734933866134249533886024294324828576195510523277860165681534880491286680516321062552075996243757953193438866682261560783059613758277967542413183687015655407911333946720849740320728806133268712972934148675665863220690171780497276226632285917616999137527642375803413680187118392025528292856025280658747118093946427041146566114157346219813110151204071872690736191240139712828814831949772452004053642844761286297754359195091176976801336198819356317548542806629128431787272671796834460578587756266642093963196484126479605969378604520505263292006034128773895633344652499349145022614193265802462096535903505980335796418752247233987672181081349096050353784726124908774895039505925159758283796223056092435272344861762396483405621692914965766084423478689427873103227149527798260983179453434391200522183294103704687644527019871936376365489629265290241009320962835910378212418867897199302783780079597157050103446557784852424881354516837647552644599204427395554497520132675823546888891612283288143421604970223365244135910253084953407062293923303564729540881108262468218667354650401051805175372598463357112319717776688445286796949710963418938955939520492680479272276265331003886163263779642198627074402131381645643958671016870177274948190906645345988907330704408743501689133364323900055752288348073012720909459555123219811060320996358962353403120582720423225006053427651375554116098200830203353628405161987774644715648376784480786028429058399650792469514808856011356007777858588260411579908834749721167224555458638104174797458585429641334934607584309545024985213625136083665089387785607754995217744494773400211797854140843519077198214527654821754994607618180634953732234720732672193930756002531370932373552600101075667379298356838754705646930047090392006111117510266586211029185102237071299794716745832914686823571213560886100381972502768061988511527206995726791231609607985443547701157384241998731613837634566261956220198209929463026699631242990928478069955201594712519787685878568073517545858927534248549123457976401523015148519630866297129173262786084777099291373711660388011519250224830965710768304207372391100424956699026170504395793140441960972555815778575758811616675876502059829151030290424120330369613850064872240022462544874831764243880791203459138625234382226467812701394055523518294179665804582294102868061971065186129533750484646707816461624371875516325673492842357755003098779702476776581061668341077107998973205502798894063614143000997280554174978819356397732301318643896391025902293150306071138233775263004862394880176836234570305598822248413150915056772946536272972507021421977046781110513780568938867954903302658612246770563133084580509514560527519047549628827527839666440289651563997348443540764651897403583309440484686312799294324621240607482419222658858861699713003175208768694198577483968469166687626968395871938944580658412089472917678244464729927079014437399449863203419520725934296892219797219413660348658429451754606875381362044779257184292138156424163155639727751167646041384119271981425824969670068544202260148957871354680673673720821599283399064198877707956744449452669676727632880137998470553305056261866810446477191021776582365602995559741079819107084580338316602572850057388947447448896795821887021441732911355046320032727545889075059750612306444861237336192300725884660605504210428033862772885497942836737228029982330506895608520584988339326770914967649451005592312986351653219490816500772335660459137082783288760214001731634942000084853467978578294026073943898077751454597834997113960995129254937858648125213981495910935612851923565534188453646689452019515787417661442141519756353351282711086784833753479377710526019338661303385394801424070539001325402097281945750919660491420210570885356934248373797020031048221773301248503465714919313187950578105071314404734286678073764780670700242629737850616380579456555731888799513559053646506848246922212498164792213593569512249326917957303015947911685457484348006714716948795551853520272309266554840410350701902488654015541344599997381451237782462035731040259907435052957391847276522970701275418650104290589258196034028627831772468920772695770936375369947761555079412876440464996327304055325979240912631082172067040872838806970984866034844334214213672151346120556812284983034189029118178261519530788422420230992884480134537982285876628921877549534082885336582259491614839280956456001282085313730276067228444145661885045288841059556757266595168346152786926717452562562159451680364234957775172981602147717758474722861726158766484800511892087753508756202085086534127397537227446157558869366022334229606055788053327923557561664068596114785489077685316426457285609333643049471470863978554018706238009167957941798230609852761535927223603878943411373908511020155199801479748645732524888081416015308837275315374250475258562562763138648314914065506147982658112421383691988406409108095039176793157395031614746514869496128281925482091200315957009496745095487650036699920931460900177735327764790828254378938935911668382298801252106802517724807614141551014527255349760609118190152813356037212396766842384655177843191318882941053607999634631398913995409368509719976447509114458786324113702071075658870078311756536087867875024910462467854696940334209007881915229781664999900067146582577018908738564919661118748613192038423932521371782800687120219630274827973709606340776447848111207380767892373419028497785872691514360596644790053657777951795614910527270543514227142241863514039458048823595669806253805250812492060566207233025716155626615436579805197741073675732284036640915355273797679752964311125477664238054146250243225079146121293543159333446414609419848121391967057819428052544949566066511667346296780900460285656544539658302422432414750960876395822640474690910225918887185700778259438287278033788138731400978672247836974987325375298923952784188756165124605742194112540014973532997578515251408586560383292637280635258267020711019761554945317740011888639731414610108115814907773474631415204806055089645126950153746936123388098237118135830601045347806831536373872209618811305182185197004430598822172423193395284023200405978219842579979252409800789758509701731756260879132874981654427853878847676030014768315291839613900934740983676090747118007598955355596670401496458778882213880790018928228090913592913154609745103579848203869599768814685059378237240221682115007734829836581893265578421830417379826897043324158330958088163572551281637541812889009006572479983560982111452364784063283446228184395852515000819313434017858657322800141851308205187566053973489278943642418663796843641246377064862254101222434646658992871345015495640281339810472229593202281184381720142371722588195106211263591975610204811011032178921504452858270815277197112698971894231653332953777013948447254246862516547750967844685924859690422631190875819347329337769970265748672475331533714681928440279785577338310088833727258800741290537267588736804986802521663751388257870212114488325374205030936844852741270491478886073839213422419667220051835026032621260348507385689251689944273710584713460992515771847227192916446887773299749894295304491048660920458310772928724969861040592558608653227697592243087775731921324705941989471218341815363171902428829144011388903338377562827768720788192433705803222293304843863175309896452147544813616326943996692851877204579503974671986330282078890372891744858567084002043110529820670064293269343763846270439251784971859191011703638798147505350954018943484309734817438221537805309989646716332227776925082213556516370347360606820807304946820782935438522929358016466466432594458590974796865878885887640612283330777174676629036438446555322726492849670745636059774670458138584777421328435110026125874646012371216706709209549536721711988602265509560413007590481253285912398852810594735744285481323453963756936947578358064140166392419646426806039396678971407841623515876812942329422869418377641235290071082442784412882404794723806007828369120671416660302669641598796775987651021588147417942731217186702236504974413515723323728106184205268058859344405060806106203097952619629319745920951644831651018232054157627682177476386469994377820667819595709251640793938523887221612581134856467100902667513950355760591413911072237376118895120138975963762987079205458252134310962547338755741370654747250642717804426221188571665074939094967394785827927189459572988971106464557894188595079470359504786079933791735590468155952813015317293210165883510705026040619481321561881611670094465667386142363325464237693484978047738245439354642402622899505825596151775919998908806976751066437581210512965432616354530950774649465915408527006302972449678770738877595997706978009213212554089550175675786073726285958263418875325048523892556799498584691621845832849311958152756120595534389070675248822747876324506430756679392135657571027690991465584029043763362896947874324471342193249159318988412700417003837178175281279460012937765963114107531283150289043966622461916257110119880316469698749092487748246785587469135775620599033675888986424584107637002908986484930734637685724870712092404445517158157370514426258563424909090770850646455030180835372438505733380503884176127125015072503185353674081447929766755048154247555576706141012341814519754342684571709306141923953242974521923394762367624103108551200526846804328235028599695261877574700651685806763569512546235257763390163760541748112730415060234131126252496040892636651084877999875396584168465312036318148204914575097054107118549868204778073995315967599956379157048676006386307112424452607962272322137991068283938823913594023558249731745189475309300512620003543873854450159796065518105460717639710243138082255635886740210040330717797704434997424083886585917062577659932608647038218832904023671529967442273312765579524607397667022514397238650327638448410482804297891045554429425308244001894428685987697055603018850932195078016709723082235261928205791567062131351958505522579190247037108052596448216033977303052558949297919395457237700713965457815276534230183924134709111512806093838589195820204309709116910069527402399180673865977353754872797633375445742555625603134937945628268405579824334795147603026790976597041140897611255742085323536210115395349866941872665004292865135346738185302807835535955553859526274379667495264083920270009395989447604690555113913510462271914156386236546877069716820190458684856197817053234234006933345915143834762783501766064761079111118695327998460506676048929701973142917044626424180274637555128467855314098634496777525957033395598015244711101164352215650624475611335742544675067683751988324943607648770025337476100721102897227522358979059632227792718028106884277926170852065941436875003595698161804308127971789345950439837536244332455539385350714685761011432706638404118829478277560885115128189965756048627901757081823490144889804394500097575683800218995267696156324253150368568877321073221219059498276017328484062971039401237931309692521568727501411964701542518629010386054890302253332306892973140695813570044723458060786599225358457527173681452973983100368448885426951923829348609841065059638742802992489100334943479638678639665090137646974535370196985281399533086732945015166734655775063854720625000806102239025823341218111689157721488765349795393337071707544043081235397392898192510607939129030926187146494243664857498017234824790924728462527033378081612429493283802658740995502434788144493928042604461466570782830215701374356061773325846073820241300133040606421951768736380902087680557438880459867357990044459263604038442967458280197534697744600358376047046046799174075949417234676275558175134335697968778939000286328068596948360090745078296239037971866228021357600613695009794614124457702436805341027077817299368969643088097289727681522453167404857447854958453020544553049146119146610854628302029723175696978817488780636909226823512923396595545177844328415919117236816575498362629976022569632434679004957248584801917593384699749449663298784055059776435869622435342229422364443799733109453979828506918460008452508004042842470556404815279644459616115614513593403860969206853383493545826167361775748692276856296883661339289536593262510897669949409018344333776921246235102506662424250228141112841086610559034960373310150600849241301852625353141164550641705181775862118571213316749877064344305436563931687289764338345661975210572329111077262184515920487756098354958875368617629639024478031300142939028197098266118469663433986372692425725320633350667538806088608982417714970549713513157011252740221428659316200168834523310707591551553713579496535654601668361436543012459651574033374206633412193387839441715204823478733758827609400663846331919125283693067677646826756570206894439873133336912240679996452416982992003992892452848025338055498390309394924018359859942225406112666267707753696085024232284059366473321321388324013556129324491683434177584093737883653612745977626958843792153476815022447741084361841087663116112423677875174789090643596620740600901592252114704023597578035375519353532228582288133636022542870578894516620257014955035537715831767712131552218100887409446398400321828951678943367298979752184126243280725334764109147483072394004982001555032639997661544491212262985792917504475891151834650441301613848588715246977545468129619680248922833960806455114908251073196974708913399919351821713061924114747059392380964097072558134767622817737189305642916570987194509495499795596453342128260176342389256119758323420715532988213766889431456408497414202482467919232089568703280153565780428636498681947792903485372230863995430408465322720999568442176979613506175443505077190088886130693447740585853776376816628625361554450225026954462572663119490549594713343273845714453338592568821080265433559130561620323344204332704518181143229319203517837486983089346192528589952228970311887957444739773499601452520933773514145216819155766424806561255016540106413606518311525179079287047664761641285725628243254122050364039538413504701894375587162593674717144400993627966567305047888309066990975907772082901217907241707888259078653218750518232706786413671004949378419371486453329380464658391506678901003412495334880791145629190464310876321001175189577267044454384949745906314469307522967419389163736285930320793943878646906694367846649693810998701069071390504957357974061151247506438000236416910458308304931998966428692411385583073543182581789360294581139220785080827296010514920359200447581632584733666358804767747854591287584753347228750205699446051624323087683255918693918162463604489859621075597542930133728958348216575483710525419324302830610853373154615731104158991282389870919779091970111531391003865813384703615521000693950465213285114447046796483420712331054542079754487467211896697209990269457562428065338206694571403074532481858188246086233870898890490988276826632649529851550319753434994283465847072550820948895133284848509864051927878008010628849774871057455579083398060364003067541300927767612141096684490288260841092778887094593540837507899760426281173224675063283201422604880383765057441246464787397716289431538822536608672750538127132234487428986336767850427519976589025895676862652158148836712838253477768618539938005974014580575797752920779904566416070112421774793935604460041584000484747019691547981684980783187472276370979030577505760781764514111170646889720686557920368265671973768634430555744443421179916391638536946667120463149550959560927980530331517758833121474617386195691648534123321079426310501578863676013724920252448877781867560006597931080794534740264585609735647672084171807702367970096347278330746304432857241464441401888489638946234917585859103994821254893418069083721756377761607829736650896795810679225083742668002743962946733827014392402978591085997497394688849916004459538318601129188032601586312963291766585687649896269146707930889266203723444038526914687905043092171492824429421284924830217694416017495734481273244385478161064615569069167539112033708589523939149731869410818053564927486073187721474664857016264474401260884289186339005781994074340685658070481537117312411250787197499574736935401491349979206798894327215970725076786977007943429626532763929318436127523350101269448698603666191458036348447779373144596898887149383746150059383147057845108971460962746986404257991225954030784763646085627252619065512079773226725207621833624056607756126572645109944622567491798944330667864942768960701380639297939360671391361124858727703383587513773784147403818563900084371893730961020731057724460052116948417874570989569418174419311030523524848877711414189135016858617990322491444535518792158230384048466103164966349226473904431120001759832406916364194202764146016452598544451085316265973584703635006449314880793187825060638995677915300488349486973058701060764706199640186972537980277015794970065463968469472674251780104691949726483905565846850848524254430120848574366802141480803159921765344957903839373939307744509524427861249040202510061138120265904427447731127963609818063993477207424714160859792214090380258999316269959028898542732102574990700004825108699650766228088124571802349564434726650276835758328327285743871074266700307864602215489911477232189600565542390826368372565555175413642399924353196301160093341878059749656215872017068735474992741767220896009364782223511758481681678578900637864165894615652517927546823237166200394751234699369707307349158380630333639563440225149148209045175919447057749976316492978540844504795638820971937247934117095789912951771754088664919292602902749668012268062329698990047995999445069261879678917951845006497007483015950832665161413811869129730374667936946295516963613162227152510229673236893513043545059273411361692881854480563846661708364944354456948910059845946729683305788827878647417179263301914638266559678748267003820505710934733557904697068975373722551348034679247728691810459852906805895037607565438948270743414204957174143844147501457893618374054537243139739411154029774720394926145913031299432870341430067707765129161236631239648000479995829207262255396388427922558825936027624086106195617631804858379771381286741833042229565415546341738333820716276754404257765734651356731196091108272051714210062389864369662962374021927638089297244814602720943196590308699426244009124377693664283490247748650470720669458445930195292815962843603665017329734360800750259736609601396515231820955348395068783928531660579616071252964594694245932379280007847591171138730285910698778835778546962421249189805427527376680717317006609936967802746771546826436468852726310336336882192377965317885176937637879192065222801037819688660017179133997689371812991810046426429339903378867622440526172559048977369592417024384780969249565454063769272985156215164685257980454722544521758712050279100984035141051348780564291927425811873928260007441535185364941284575372520275091593365551850469838021714628215184857840756345071761287539381720596403771587079597904385010775991941551695375434845817703253614250963212515504383153877960553358479968019922596554984934198479536049249877310954914854857434158371474145824561388721537945181969297347623980613353729291693729978793853399733379402635258921065723163175947648176451431400182602106023235279339362196666637629471523048291086198155844427121382303983744615095714579703394621011591126550876960212431220806639602896138221001686525312197927060347299040552521313474860061145849697436862715169915475720390926066711444053011423510777350639656830666123408362823227091258875779634590841533764913478700371816679145776802992474203909169390679788610629160719199637525542008152892319889739287673252512103039106889468420253617893921826503998065148931160761215752470414126375105937287205055934310022827748768188953175381038871550423063290223381379379117594514854118565214340869121762734317396287966677974301608677455396252279578273331040711362472744699818452919043320089233116834883284868670258456107502175262022047235122882097940596903566972529529002514033430107463672995849770202139170629771039071938573029770422003174742067511819017728169949743196752250375840881448256732087163596448576242230407300783046641676966960791670566736639803328994677324855087065664994621012704804883774882217494091767847055258967457475685693805446951480584515244119146262283180589192979885366494783404805777477451313807996677808523959993693365582501374033458260116935234961956505431315059326226642995890029765804113898828144318505194531108064680959091138188203699078085295623658014858594683051603938808584139741080391157671738611707077677728501039238960598790969464604688069574604382779143487066200499354200280707397338562388431685050284775482721842007254073762566041057070930443682625878123149959956962825486462058826862700783784187308078453399109048984779193946741830231482825020399731500785567287103830664911101348356697697821193132809957380333271185029055928119638562897007196145370710557615680362317423542151077006809630902180218403530386542220425196620727365161915494192177489651385731882297831488636160559686580292286711720136832407381555707517605498347783917793553913066984154012255564277610206525190213955640562174654600778035221640325704541380552022467604740512936614150823883847021016648644318380264896085457336233742593079147294370736251398808816045171527729595145924683022681395473681289843067353480673112871416331532290040080102260250063667717870293730169465162776619511043138559518264097652797197644376969626171499697242230629972594820197760328403012246635460007881832473136517683875116168776742944562215370502601885453215164199124951141851896184331217395707567051265146967473525705891024950828947177483900042606490730713954554388395282368179877426106765250141837245360299629459144606137597738360351875553634863020287832083132343270419188515257380655438249502778571043465338417991637241549819862024928115561025482016965376912103691328740628337498224369918974280155306703053052716863055518966224348772611490779804461290484656329625594350511940571125656966024516493488378077131510085327001392495708807092493015820966209050980215270774551515868437201589172717108649919637322337020626913505324376925787773942724947419517096138993838872255721375490475678588081653404586846520154519268198559212620846284772071465767656194268528208617052360664928294092509087762956138805594673506008000294365968759578591490007811104587265191785464992997972445837187044186025571909716135096354048515554791535216020155074773781444822888503113018351458151098839187867760163943153668756134890913487143532470238796344864594670233228035388351308444990237143126783900655107643237408568403639758747111821860560745275177875802192351396555867255584617573308687168554904886244477112678498267100215943687113177909311158533504187208537493548907337373960475414578871803443299295809287411680507713807786443806183339857531655777171519165792424583418951527665912435760898897551008722325417627659342474431299834846594577745822277049240025553413928383476829943347512666439071893394402054864833477125256940208131712285601320672944046626638835911898025126493869083153666243525145733534984566494045247829155890562411517620364165512236251809314916849673803276357252583256557405599979937763501778882865612889532319770957612912876678136611722523640049989028899773701700565830394950217133993109719699542891892636577166574744064242696303295770898018455448340637201228399878965697224144978705814255116358898601981897495358285425345740255053100751092871967193327190392588853103048811643389958919611710526537491780741248027641137053793590329819384302446258586885870340211442013833355018258609556523249320964034819203521353649254171758668119378741547997844337873150477083867522177880769678885259856070536599543209788998270602679562909906091963944034580919807550029529121036274052800492342480973697071956988056171889569153539444233046007074296526371986537669044272994289029364298268980877570885566093262626767672558553176181785280497627161132948317596920823687665235340037364848319284014645268175058898479134455442787290302668235331383332629396821828381072383317521255331898484149943127874860093353504295180964543214142464318436454135626650864663642781293909152361099704179427612684543870005104241397083337707423941186080826807245927913820752475761397881493751773495912712131033352608961078508044624755728904568723265572211870093966645087609184934283484367779892402151903089901662920067096321152234215075961201574499669920645843933548992209098466240943328018967751473949172560509835623730462367613150567799830083603263614248751044470022888992628968482939254557141782501185236513399579355305474964463829826976987353610766312347865930092182560382057591607935097903658725248096789343095649844876891330735932070777403530145951552039563150531461890585344179032752307044462136006238095543409296891843366592334401903017010744250842367963908611789880169328469552777425732482878865719113697518863328252648867395445912505270231872986915859884471286873318946755896414074810771601853646058881206853629828384710525120420250567114328799371560341712557075346156743614430848725906962990048682068116053616232823050206687573226349874444505797539679165008813586845663058467088386977983808929655860797352643161477030886812984940584365833026548801611946149952700789470354322178175239860878908134629692521103067956322253155187195689405984632562352887400572841169887501926013871583127485302439915716432238577214323639348367322660979686240795154640251107746065069519156225269075611861201970628877801587767869081759023786405888085434962222037003386408289831227752002884290953987897032126097376455849853914160171799639231973468862419909157483961947190739502955342843807109477270359703951813513838541826197962126906876695515474322926297321810047975489610902394531373181038417165774293535891378748862298350958515724885832151119299607441353295919087331472333255637804792080572569594191311416675154115505026413289055696913445453496973274609527808870412401991750673930308894461186853203910294017419719505808685897761919882564143941554694339336516387994114040381159623519774393166722389659602519158071748400507785507050951858980225991005590975189460520994666066966775176159600644935809335366811947907786312985619440180623424836906702851015880409245143779142868407145920948613458680390579549303850592193231215991546694888152594049547599559021169620406017352603347433455917200947504391236293602097173415726668538038076871862756682847076726218612747406688061030059002420610800091657322557141896338459819746663288269491979466547515931481355212699334742565535936483993067503750009937275116248657953006856325337676459357179888722234601820585155448143419938677646221143955771762242485768819532292162221812313941385810991045585715311223077912342323480088622460868312798211482588151457029684798161338861773038479644154371749171997027726258177217667006819370070733979648106558553433124535554233222361603914011652420618779000391443046651358039917789709761632310921823610065774593753834690584033533031114164010266533068780628943642547898233164317319596653807644190800419813770469102523035868018287564643462270350131125553942737241635874838754548261735942767415935389016273049441718331351995735846380505537924090047564819430356480032237536310858275934732144697056589910246404800075969498265300280263664243166320049022701666474691490552369937904071685285558186854554286163399762795657215081462144129116474188588923534167970282360654865429345584698744756226184742998859559576015350159664978725766913613584279148870936156974801222862863094438191821848344023204118123875059371735674608763902252255102233950427349412190114264675577285584146735627871173616333747925295195170043804914402676806070325593666363797261180415042471290765173438313209749031196175603204868548922749049354383902500397493122535284944777422597628653497993344584527852741405009943644557229689026279742970103335524308840458732399024551536219896605968238118796270355569716674041957213464659822585015912347475200238595852377150321292098196410730216130572107682461910961155865468442546254547097942280570108330299850494397971621067832264142307600903657420897936770949653462046496528534579054582618382889457639685689996536772380680963722287487624465961885169506100839394364310049098238847907410483927245967353722622282697601995928077683697765743461886904146005728538962832478444826520539547949581732526910519301378138013382231486840529347524225729038803640837662601847235169826476292504450830022885049182642775427555076309846096851348244673871152144985782590794930358490439804157572157369913328203562429525860469151568878011565650442496612404887656270397977333197263990048059809020052763960853081879425679120707586771138098968776760188040984806269942383828297991671883480747882575046301133368522511193510265749065522444499043062890544406709701405394317823133113328665582372511815104421266423191234896614032462011400469476276991589245814063043441120287852800139021559677162549949740552498722284838234103055808721449305253146696428255548794872753685295635842383131101937863421428434910820237867220692995327152804139268146735630303663928812666443831955407981538120193107110438041990778878429718870299190771116943381462020274732689996195707371709200615055413476493038346233395846639287758369380577687066342819420827037618126468924869946883249072949111077869052507146074236159058570739010914648977110864347174672681762992177121274154108922217427026664807446246161825836286008540370789118888932665628124685089147575979768772184182752759599580236853790630879917861411848062649339913437391669196338299934434265533035709752289843969245940171163724070550384129745582091133080839031957086752371649159961028523357865465163771098312106866455264011220117619844509057681550002314733246759846061429176489276466482856757790302770741337605612583785799619509386086148200010711957922128469974820025108321690993880466234561365904386716500194417205741038046801848755391520422609797521327675086864207988441366932341537857027277721229733200640333820341851751861585273473856937052644658217650224926118911725639307875198087173687048980773475477095087360939982618757680144171442406944588563043762587221995897131402644494622473461813008992739509185622808570830157561125655368459446268564015770730913408447297924419740878182339972527842309889432622715737392139890850415014956457795397922828257625420695474502242096193634262204944525400436357639052997754885777799381605694857841618370001991185972423499540288356841096544832798115661838605645428909902107831553579237872700037646314904728106220347147194425790769348878174987130963850816997464169545846698593239698922747949749440078351111381252068948956495576294543612280780091089474904564251256418246059081500303178639620025033720798285911301168013429359634274814695088526826455829208922512608441951713145957970387094762131472552317217257438708030401771646351730398235048253367628189911808907030913349304762664538682638861780232527173861027089346450310723652030541392811099900135877393496672855168174053946609502437394548167054437612195034469404027894675905144434177708292121238839244383121938796764459568584847659752101047472638355598103151947367061260568533584105402935739875877197359971963340293524926785983994986629325222544660502568329401469206633817603254645769472445048346577344329638650647622511783088199813859445541710582987168746645945820493323176557311881153551442063094632870722441162474158479136731524576070108396181904477656099120184414994256621360992973309112566092375399600504302377755169380382170571186878156777602330921659946754915121876025456819682447672446057727267454791365400793101209389765280632918173297076553981272136309750537397949668745172207783340015720799221418721253537335219293533435916487649396539556484582927261358709324778056532888319878696262062870488813997829523378422638855580241707950317545226181698827182793012015450633754781814415973414668604342672883716985914868593474048007685565689763645329030728673290158658903673687959728305714150070945557925982367415842947532944442323827790034834315992999654001801648679009513176683706636705162069998278504058699894257755361865017583983222244422578921417167468112531604282329788258827675865520634144055274450007983058714215203460057591019299851285910046399244478218049711992163465976396492710658846336786112533081848457307699380621545065639485200338392735941951076864578582788080168730347959313087036880851756771361254475803078021751582887327696670170998571123843552904889051555921941491325108001538662344283227132229348678476168202490387491460327489855590551633673211139366660451103799723408103832339723570383295220744221148534147029626973339068275382829498229883928042953691242813770202345717806000719952580486102191387541081758500144007359801103924093054688195225802929402244639146462294338078050997444032584007574025438320153112124720050246584796636040264663052290957658516410724316261182511403770422101426006230284925998523037018412480169368514514309990623996437600842805255883719387410724712796999212838525326024308923484181414518938185282018228250353719937578340992058046524239189425191517880028815535715518890958030386588183098135059206393151304097475764288532759242594608240568000982392827933214732895390934009462764650602247734109074181281690834056675297630424736277093275512200814200175397580026808131627181203420002549882357507653436220470232026034906981474982898828913871818244441848473774177516704332713566251067526716669813540020825064560732146302966455291945318363175040126735436981262468293129296177803270716782580112772354871266948908424674433238505571960503096317496600064010870619100649678524763321060777557743183220802436524339982647092728306890867673021267948056372249986074749608782534959780027422491910089799132064145768029173212685725175500483162093463410967337043486446876833646937495006156066977646581035839635239877128859474164271598431822874113466661633210780350439626918637215130605093167630725462399579685968528550825847631059377121019923142432325700748266001171445194436396453084792407833215096991432770501092211562687289660557592376367419585290695572022759104867630205288932372610938797137140278797387265148373592703801798489622609239539319605838660940050593535463680128478192110992447928221141255299340842104847364258802057153534574088959780953443394623867611918086673056077294643008553715017771377586785294564586938020562878738158900091405024980631112166325821395842386852474665271347764274085627492264692617096932190306390628200548177693430351453930768635162973963621508564987713556772166042092966695467996998675337053710762395013962609221617864347865139251079682383165914221585430499501393906246971863367313531275530865023390972998637246191236506511797073914706813895551575426120272640828704843424797251954899042739159609032391739182008513988026943536126948863060286029679696345758095465617344635375341495162004552739937739986888887022207416260319237834932049597346916284301582987120008696094454622032663901753619314333034952027498606839958476943785584233010138659434937304254270379721250351552306199798731440566340313645460515226447727083457326207417847743470425028900224864657929864003760909459774099863220578045977344826729432761092822360372574659650361132367599736461999921766879298549696582739713602024329972785649228902168015008006536219642265764081286444585935011033161105084542711045660574344520298405151665601922088587338962693526519323609778129843477766690004850230372847271933742674908696621573104975486986604263244770765909926459386073840265565746325749436544990843050541601595108025857209976736043103086088231677553977271608560124645853878380497681104831181686384843884037085390773098518863343236169258807173863589296694203113359751460740639504669371207589175250984406410729300135185474787006096759703845871194667633911979202236798667395763831902219258691372560405357129498819639254722652746802355480766197059936675922129777158550577698722860809724060966500583243559749140432005627930718593169396102454527809791231422867104028576265926348590721064899886891791785720178556741439662861872383685506034736832705441795864620524970267899155799869909190091793802286425330153585667711511225147491246033808267458930812895859683275447518251446480371707144575580231882676283643151619454626523629933456021193238701561880519720638866769192612016554479857861846439460432813579160382279906710769424763214104301320251548936483813247885699272583346531950022903215750225684468677133907307598583446703830746507008417360803165747957526878787631976796810057070951071974399959603407972320706134091383793764562969773099298834876763907006638042162057761869323927199240287481501491005830578614469731296519446308339991790137359383097273872305878400860212310918162998521220817523308299616357789433499795976325211324924371828393918720830368309520979850925508354191336303924661322867850900587824897454070730045830728325927555141473617992416646880589957895400555884551312758241685118312012479943293474372880163306540945588191273021408209008815045123462671953352824741261155343915716352777974765215869374280923388928582927495439336524771392942599414976001485289109807160218341586754649470959168871001825080614246831460958194398448249649102702071023090815339124178388631970912605838978914369298042314649552460362776759145064126343294006739520383286963403460953409766568396109605373626378420684215586200721998361715344205879919171882991385794277692522753930396802836882735308361005166406677786653179947401114373086724585167235965218397418326836535315688723692714745542570057663596395140636443704400082678313724660033145458246638335638436271634848009347638657863774988536601396439623215822457941108442676544728754745874639253566723326810684683408577246291723327845527575517870749111369104005290894326456992869384278825694713272832339945552140842108329427466010594705473206785305565428883021067924736139965937196425289575178000750695682506821730484845619932223784597971644549019709867046937424019536115640833796428001501144607296034641056653236795083849615305403422944646045388162646233271697459012545739116622775497999592142280657982707779817066795920669890695209180878359320162393443010150934992112005191204711229424537401180226122220966078468669582827295944031654431880703928869320572140723757222056871508519421009955865098208219549601291880415671399922515116627681971897719516045217106653891584056109295650367141939542121800654988819350165667191314846362096939887732644253868064493864513210303223313757387742566371406806456044197684138761087419563765650097277447421958554008717542329116941382281384586399326912114232396715659653428290654105061650573260952258735986414001131543456494394865211387702766315999133391855115455252832736184416164960281599272307874503359772121832663162576532386336995816277838231484974788058998275978598321320943585974826664038109342794235112228202817939742865625120014186072812388946521641474353377657782550323164668980802304712565139218807905922683681231964847256352731122735094150038439599600725327247072369931613466945614894348993281776935499260392942610831313289109875264678885777211388426593717732777082117537136808176859221620554631905780641235443478531385190795655453287223222330441068235454001238522845462343392766852614768854479487725348165305843671941210810322804854573312216580056829209741709384368565666873547341609861084794189089177581145063828703205548549882835189376125699286690116206655758364922600769599800955085615588549041990233019704370450645140914322085218807451388614154390000336114164940672587731007750431679684522314569415612519546868535056831663731127777008642554677044753854911502304748116024615423345258724269099287523400781687125911558797604815993967722618478346411847611869706640651876243744907879572768104911663930389596266473276470417754948534672885664205693074741200871966829282959376056467416783765971976108309819656816373073434357681002213945624732022111094446930007178654967149004122408441950695201184939501369383930707255211322506406514175782259828622814486110419312466433210237207623960022585555362824901188895166843878003647376721624658662122879930518319773364898811293759070565745624961649581981672386394323292655152641569665141731056516854942905700379575099514580927746977047480482377977995133579183194079048968958302922190812706792092983039157222737020516188701982837083497603542276527343626278274151826026513372180962205997118497478603894853818786290946397971790873348934743590525032063271890627690552649847313346975597124747878122984078966882761892553036315256408727009239712195361173096574271655357144799610020007710069819032517943759687147819619133892266962547561866934387405678507654419849649051081690021296725052731856280002355101259443784691734574222867403497101011815801972431318236703885186949599796606457346699539631043885265290722467891317453484057185202946242797473552981367491750828703392223139763345480606301305707625125511733726445449423757824265717840154654593667986218049084102657710232530620346307431491308875757386922993096116412041656772519957336780645449278413087899195839166841689482980205395335585381690480948852670690877876570855772218450969011268808284031521477096444929972162252864434703242339581792876988797597880513418692283258122089835192735597070589534208153033237882175325482837026040272674419104207806990225726107574669800719876130274041128693642007196416137352415531556515356667401192964683865161586270234747379263294351568225298905778989463560138987250425838429687609684680191953611931121233648950371259995929845832629106162329168745904850048539515850074463012971110300455220011560636097417100334607380086788029918113060223473005364472190461262062030647633220167483813266083655050401044164083914363245128026087671699117048381941403061905371669399773445458474681971841482003731061385138135690436977616675933731818041043224318756631740987014637290675817240344030093908560976869862352368836576167610861991304718219217206429782253086797264981668953267796787604337098310347788465059641194562005315249731934498889907963274462728203532949430448285894802445585986366961017537508401129448248336464130377885598705906338402515796556706472723953719703018242334787131347866465279203886116300146730624789553364156969194989558020233730177536709512855656600893431535605974816516533502895204728191860245128123949812149551579353504318128115940570028997015206526784484661221295979472799734190911378327151390393533217984969907368652135894265925399464063069932045298176968475263939764901962247073923839070105601101909316085616031654673224931729742459658418602134839648969120993967206164022017966415694303851023198716783089551744324306089004653637320378044242122166773946576109229760211824762538489961164676798945550587998273577130669636779946128311610433695131144157321662988925018167943227515146338520578011400706630795108874221424433924474983467897391428479993252910646530941106853930283507373179963089274618074649777457617930339581103895600153151836303854815793014043046452202527963335724920714557994619691397789801088766931652174078226897776205908169319263617128849099530184938727128834627562238599705857796790314432708636277210696321966701188209592367547372154878152116782295238564748397142175299067557686335157511356622917786954354760709491769395954780371595066150755240727333705984192628382066298945553209066754613920349806857776733400475372279183517718618856612368987504433448311258491560066597702472658144603850195381866479647587844863328686060255030235567112677684063239329267851956683722497720129873994624555648230255338731260168587995975298935649950248070416053099686555846386527182778182742131841788792979384181688195788626562182499526358928850715961585634443681739945693106166788289469637597252098367414827832147830188536736965905945258706797226990413494973154768876557206570096251214608745818853435830090077872130815773058288211766941072050083046400540250782241202542629156931346831272417667045088690389675694255305456023293351849071229184625556603535690249722535513462879574139759620255626696082827341929295849066159532689994049814005261376032944662601776750290652454310171616385926417210136966278769998514223779099859718110250258029955530266278249806401546746581057761343029900809743649258445854972733204744192203262201958917574127036211813458317633116936736681652962087119298612149394804788131006143504415698669326689296325966838935238061487982487418997062459336688879231920729652361809154527391197569974296894336993361771753962931557950492516559148959959153328471672489048221589617575832982091480598982934625841196615285147818646437307008709169090693336144224103664911168503219807120188567871150099028452694555093712655658048688277582807086668357979681739782269404438714131272134676888474681189790915147429075791178800602554898360359781060561309559606055999682768359900234828186387755895260373854483467962600501813911261231275287945226945905149299450235741310967944376451341079189368560284861691397736538655102321790807521216366572818163294243409885005751712967494385259277805047783481639999864632313039929068283645950487254201232148324275158007681634866991917312470887636192620463850844867489407663800977309496207932343165855829014639963711997760441791873919240695820483575727914066655742063709035748267022527456760046801138573411564265922580488888407462436650667767576946480838785149995153189549582250029704299484212039193897777516140775079622257140103031432424986920267312575651349055439757952663631365938207323767735350663477369018699427133832068395715703237707688478042692418613128143382571705961324490354894674916251127383036278507711684719888085334479651570912456150822312131264514274710895029879356590200048503347570715457744966869846292755765720302440374680750453785157252461374284392399890062304486734636923882468902981615877457947360280634367822869856076810033536227248213100208688671099397984421519793511956500766296884347610804056399436453795959832767135306584576464985604895389246664074339106748590869777751224853330811616252079300638251501077360751611361409806559571261803324727251762815819559364567855805466630278754414827792488371923485693761729940654417403973479036895249786905007942569868814800837644808467369617003341483018848710274703097486865717145737121170561053611199520634299726533259041045939532567535894824715934911572374372333555037700595545768646157246343332774955931277380574216127186472589026405603754891427694072102827820277580996080795441336034337661376365098256694327180506289797625683246822313981687406207859933877987316556206490836833585997159141188159808554804356524795027825830313076694803330977795343495058446260531183687368926618715357077575750725993588866114748409295219430463887797835516190953744037875356123973644493595100821288113165004069494044530693934745222495327663501661011395586033825064487854977565294879083304468582171801058992248338886723510504702878683158128824398244845734769096660659652098235230283590244532393241326073030966839372937877354036633694275828558454290418750509289211931744990326951525544358904394159465648294890439659432057921510196404554456541475429537921819263201813547400547805124135678179566252097129296153433715903548164677758405513042308304112843175241675896706796984334627707961512320727906917671755590484204281175373907423795000607529629233938583938272921367779234614478189804097432890184082071974164481906864154208215477472719405619058451812543504552978250903668586545960051334736676609082100938390453383802040723763935548145521295060611579467022191086517388609773321113163411557806151477200521304576733997733803743537362074140054510060854684154019833454123938064674902688903822650063637586297579543897282954340064344575201265591310277180107951300260419160326816034769540460137559593204919883129379473400791658638195926832592645935251180141440704620831081138953276198511259660466173596683039691695764100871011421864448988173509782316677258536312392487080789520042554396805868720739708702221811868035449117333311613924668463724645923017199634454056882772140023349548114708742580360472139386102837326700633678531848206425716288279750309289729587715772875332259767828067320042343677157060936575490609413469752711946023447359534119480377138964901027039567799245542677518462241057288153411367186391456234531411925968336820702618054195337481341822600270233460587768669923456825952420957476915176470369738645006600478158185693056725151634418262449236847556490946703065092970484994854204989742127996063680644750257506611694681331798027521139688656015847676689721560057788955076518351983655414691948466911854640667725616732657795230402303684303177099407688262594067732847157042433937207969230629973084992321886701165177000558665117475921420828628627164050897804454996014343672366891928476414449323875114285693859089095910431967647452874326122360955145699586106881691250378915254516665003932936111621747389448171397172063957264303746417380041037285052753414104349003678260247583653961535571351532851481676384082136649158811529030466056530918207611916533468997882110277082479133103505300204658582757417251592922032619374950275927350149422754481066483521516609522535834154304086154515146868170792160261564852504535009558354251767760141307081014646758159934697768785290749875378860747470891893991424603521169877993697875637528963487158660680108122934685381305503330280964932762072356384409294711077696027060308892257345771906391173572866736167237146317893719193973987906103608218302679970028442572366855674316881907848972940849818817849443749467608026404042589333025762950414669927729661652929183377614287509780512738817857503690836869656583525107305353354701805138120468874197808763701380743280610230602186232287412329781286319709422231614207239535282112769375318362712427304183031924517784466689926793113461278569215080822602754500852408161569972249984458383610433098815870094110941853707154528052258082266128033650461975394186494092839927251873790530219915085453622999657513666344080548115755310652163311586484969370946550023476631534780589774106270860078702562294335605746085723861336119960316854888133305398379551929027488796860535297813637410560326984917517654567381555087440118918361218011976784491357191538756518234985049747173299228104174054048264010181461992994270050129664990470550639812277392137467955215381700899919360913399387920709984563649409848367526912716791654846099117396671352128686400494341493193714679928188762274118399586688127373690558180148048502361396830854247540870047686329043711451564893563686341578869962157717499061478713557176569921357782441122400459005443361870327959610817358856221704425805510453016215071874852401604163631208687481756648682429045569177037398123190628656012150347743728078793286408338768329506427554014649010724276681279308521191526233264352828685788637082552659515007175398895474474133167865322639382866537737472017783827983397197997775556119779701376798544529392790816203118171391918122801429959444396598947281548659706254840894919988354250380151834928690154637734823314435436155285393791418722643785706949084455139275867799804404912495924853573343588992478455725263949462229881515444794732803941832651332220144698420782325238232065647784314162789079755628562174866769817658920576779947333781591271779109735426085262036915765452159707576130320935097461797181331645932890027056574453817744318930594834100048884793119264801117048809165615988472390679993813861947180871506330749696375074391413720906922598503464819319961773974617761250929441791939216255788227622701615804038928291477612427242786969776689848666714523572346463569345068664086998329036470277341816911714968687396864833780953349484659927148165350167238167774601381989704566470523582542432193490546242804200554032665543413543765169013563754216318323796046390372881328576483784121402922156867211684396643195533983911289495931702924397224550615521101265635813620903357000458872597493559928076904168096292364685348615502808542496832915791424895022473902423378801056948683152262409132811099878671841921477774699955820935791483906989540237451447948139333362720241131674269790228643606661030130392395686494643037094373848097472979291532196206886132585585220378270740821900173658696648181205722303750296778081030117234720284656456365262931258011534416171327618677028525900926603407724762395978001650130424989736153648794771378985515184489636396929896343092597019048404793795396623399744740908807191420925291428241966609899132002697643196765795296534769035735994811325266147930165928448585610259823156318641955616922692074675898622836191067167439793548593476217197345563203186432405943973182262790187521050034541940660564295768924631577437283862744481225044345650342937584344326968887795658985854412623221278573882117380144866090227468332053280035128027555532373956459529552869270874888071924074199628127909121313002052857648056294194886146979402939766582497417246825362808902856018885370869838066688798277073919098064655574269161650700957124206742319996268391556541907031290095742661287025448111967095198356073094643438875626377970117421330277193832903370109039185575476999017321072294137965386444176022155412933988886711416143625993088859222193771759373772889968815782589814591235714741635367650161572799821300912321367975611038018850922920929910894053881394495586662393510933771905645771275440104532697479645043482002903958953257850991162943216269273763934750668170930151796317165315264433221349676304280373565694263038801308661820032685462703025694317981543343963047776969891671999348400251675080854376992566345174481387642410234435300073033378707806312054005078563639143272998608155110883591096106966800497354948210812053917823182932905274865831385407028797617728452809551446631186144083491085410813835244129534690903252815485886347636261445810254295761540872720776313216848051165607566634845737222574275560692133684257890184481157824463507583620551973796031951194133130261018384921681952669437570233227078668053499432990020133293514948849943355995303374740613570179260966136592251562757080557260741414767788824419157233617847992058172582434081850484135591365062775310505501332409154898834306590719124715546607429712048551765769936612275158900975123034429902426301370399326055825024808767894153969850268373354402920156567258338038488524513442168295599119831422495681458745104593769197779369050420480723989335579826859735207331886745313710666356866597304575549828823182800289025728902852512067468264766905508163772520461008991061868529516096942559255306801649973874159794529433876408597133611924410189173724296625409620791855981548053274254525721496150240632863319981280174284594215610932275660844718120339337049479967566462725304193672638940469425387998404810680568231435400245637660490352894328054434572365332910104023134574299609280239445967767787482387148581285061130394093645322397782258545156678916107545466748520373437726926324021958261502505594486979396956569224134042369072136394785463284609529340806462213641116462963675191815926513394390757022884956623713570050010707801044072194351601611339618617836148236505538497635971794463372446470700533159598634673009448648935816369537166199674960913235318520909970310309153405321119263277424502934258613327618380536344718683039170299890094636499290930696166417185896201273832922926833958230607012497978934319492426169504772349951180532935350765059081508878422291795361039190410616690938299551658414702625014527892657693002988804133063487268663681434376787504256178636640684791334763054299510126025159949116270334812083705436003148618578755982459753522755336148581433900051613486140091982164921012158109866845783849886869215371534901875450324790614151087133554458937938730594694529748669189049150938927660958067173144948894048090835568318776486581370540579254157459662943396332518903920912753299996513613451301154814908244284749155840729422006898425398118793855859880118617222002540047895874850658624467334144996384918596887543888351152759810703855772312678284452333074166508799797414184140005402052101595230772343692304535837858642106487833688310981759742715188156731519674915700089938413760890398161819750956057329762857934043129837200816208939218557989900426652682433738988862252360607736061101055012412098038325739182453219547690618523024502143877862305803116234994475886318165319679629637046536946828818562324369776057552225027845935082454679595331413658556523501260105057797617316832850770656916035806227717913972793397851512703608681666677640490267053898599698460626027288268744979604736514785983629966977401196495056861235881287389906771303065232539079980122666079900922205577917974438492785274528947080397104696145705278387470109275034937359854303821439710075675552732597246046359347218858402387354894362092769223471817269073200134879462622838361296472242373438791081533088402584060790314331059258730783801885300171499075925876744967133421297438951888524690381597555831359786525087952248634924830020141128957995969382663780094131400398089196218637920241147868399017507991052260555383836537821131710172043897053691945765508836136146917916032962458798907022217264803392195451233091623604170458646035313318087971221715926774680123991111984394917241385243175671407475890600973954515737279630009092061839214106634689912168679771666358356808382422289556389393038909223842186341353091400477000144546739039340867775383581740818276718453880129882451307252231046623317961323480838272140362967936107012583260999373335111861857991219511826495644007630328881424307497063608312686243440188391427249617584896507802640867759753292059944437671851065719716114859662145349412528619505316407598527806914083703515719595546810675097103211570985325685553177551873720889097913150737673998516933037815279941089902720915892740080986695828590904877468408315682513971621618961563499074270905407495810221118493896109281953996504002936820503453409227935577672489484256836762127866860374401300641478986518201574509039313492737850061653765809749032091161781870007883190349259985535764869245485297049184502647482575428500766432333453996431696550763917062076021331226480270635755949781945417367630736550419826486493201246699287398375565056048183656799650361030725013431896363123637751921845892000488696446081390840484542944404738835668869071381615631963723220914389336305068224497816978059592687578925869958697698396163429057359339531921107484947459685994824210720552948161190098350977551649859737616864678149760012541485383094279079767575363406539816487659325807350439861310086523447337527022125294332837019962490294146076333461157799604567606796291403295498396066463611596234425139189510549651859007762924769089758832918646592117368637328539393087443262892941441152653322012613935685063336026457307430574526806521947714914788709655893673932730881657258030950436405818315830718964702398183170440898569080305579900115714231664256211757697858728219409942695941471387365859247128066591052624418648460803665582928067827634803599654330429226090095555869326794732366422965454917478712139681067450099776554057343794440228148996289937285862056204732505914421262169527913822622503424327990109688943419394245243716020390303131312238944782418656707923072273278241291052704099170689756414977492735327071578046886841560670234182063428924325625560209751097158442944575067651542508859852353863489311127281500664632222099968958483490242415506002096683779993399855382196689435606260525315826135212969560840832340454111591017480068815440685546233658460034706763251505808394877744803792565325709661776942101704727702590607941145581903139062450065088338130582624279761330288555901899294546181267442645635609259787898948310104639461564236299284074427615353177677531426901146195695760304863021506990351217616423652306584451609941812295980737409889137895527898501017433777443032361439272470063618179646201699557402577376460375252415304975062049748488476082779285692186602910008936586206405140676819168512518920522527707809061945168363057851024336856294456266667783759379027181020151960507707924012557020157777104964279571311243546581899242149711780656980680582504055947363674526411856754829775016327395165237728039649847871884406524824952200016030231155889265317896511653370731530696653988270380028094795904007201683897253887912650058670124506083637585382673511645720379946990653582989729910710191332385546715875629209143001102116935013081150869138562624635488725285570451014365816789843808457271373882311179447642761315080746391974882173180570326627750051352766769567840356757166439529836008436552187147522483151364579982638183067792236261228012021209647729576590433767399188256886161636334203176439278955324984150375212115202976767317071732632828814962617405937720609296543342490349370019893376191113602557463474748283444548145898407098963644877144422877054614630353210743593237726375585854756378836599978770154755597920406957032934833156591163921078522448887855738047884214169205296913099067196018779241008491587023457089608935545526079884439946142088908156191368296145248088400253624341328484676258384066842121730080561342153222332855554575758505817711387972554271557040520275027476041726933925700264863005967278523472427163402144356233785228357852074546771679078725593614508809761393909504805923102873621528613330218809129114276871932941020759862153181254989745247201003537564216350600375849385208936837188623544700805458555097558297764273929757912457941880296139981526760030104167505285100224243043565994264784225217585573728612858817065515477863883615510256345719721125795967859240396299427209820834093771170813074807823673300194767626150329530884623970446418854027936177867557195148762754575883750858326238542743269816980868032375644414591694226221421455135227356540826233926902268206868977857206159171492560064607220388236169891596518423144065273622512507812078231465690466980801368437239457709210088049166737288298321665958459348607191418347312121796554908502064197425117592669239138642603552789049082560528459314577613251657769592404607097689574147690394843321613345119444478454543296783158829756013438323496996024843711069456653190683987689100017916325845453637301246873167858169627717887180875830374274243666643484859994401254359716541388524658211239554944047800605023506302330682432929994205825697271819265660332897315481362475164299648688349241985448754666883837322276138244566424586376726997014796263904272786151747332745265249572450200171575493745664042491054410283648167898079082763709965211380219039732697457989302186304097795593047685370034363002183978131351481429516958587271146788136223074453664725713014720048077243310699995835888743703897075492600923520177199080078902219297966984232749788370021893261984001458493013343529185780491104122941702518479071437226846618244107676616627264571062039284317249535131479970598503209601264992477062478525625216272227555443582649301172986993907553412240273425393448252531114580424162839570126300499992258802106998309360358802965547027295714612620043265872575412187477107011844091985057838179812457723210506435602673994735849680012199473777740877315115645836240771355076209730797961626539434363014737850694060082205033043373118328034031576384128926740258399523857385555968747836161785907383052773426964913937446673603171198707635191267530467003188695579072998269390974778686548755797237813419789726173453568321260260786275262187316220575492399867273812951122743480505383319932663540156095992400720702730273523101600220383674213568120187767547101109567012211291797399109459039961127696822370032830693123854323392664231885515937716625744903459958833116457152799790574598570156818561505119473756185372616778608766628549767475619821471793017288042866191241123605650599383201710881501855017433183390420754469433662756453589833393404837066719954568063292932572269194040395944700102182859955801639647669155286208179678572193890198873698237813675017922667809667421804696244777844266148642767538669902141745538504350040858632221288194506887650935762526879916371639214552940039823546721036768684702659946814100315863347721737257144939094546746311645197489814849031406813901834294471334003032272358493595069304693284359431900453349761299213435596064554141273777707546173113301028863064411006909402507555592734409759201143555508150935829756747404120043819292371524587147606090763109108487790024227008044778679949780372687877327999272912885013503371772081343090229693901792064816970436780699740868942256722988371120026980503715145946522229560408491894222784505609419241834372796900010490793921244347221904793265130043126056031811292168595305250262446922181890896101191912325421958617560025091010555646658851574527352413359286799572350086753019970270847068852535911880384256857181116129894542868493146168079026695468604111083221969463054185435443262833648803470019870655928993071406884288473929810847021144135971178650657569500103810593601795173032755541261797368985270434502908571921698888411478047616849448444650891997991555385264814894466615100646285994231015170441447095519691152569689283357971389243257758832764955042693387390606574690181700248179802361823901838128150495683674567531073627674452152347927709258124025795009230133461313277244724623846329085347931423702055209426026824090925424770332207762241079270812490581368091436908786396648639949658659480737464064713957419441757745954364605747770782630018796035199589182101210543352164601257305583516062421050804855350390818567596559427671815101313361190964656688959281108202702603625139194910319865804957680632422366109729033878226575965429926510394636322636307402179547457649355969987963463528949947255069457557917789329234311799333277051935107321657465113306641589606608237686397817186866937636915613898447776215751653718255052991570373517886632122522599720479961236798712005401000320243394130797036038427417808096501696667751124329875867783542679433636323336553627114709613309318086851597073116124752695015926585316770959112150730184482935055371154950130345482110054265625966050589071801020676982822597964980597337572789330133692564106165196688224699499746336394044956371354692687305301368865695655839193737600538930555383413927295207443108761860200181927086166200124595363838656504887854493061119571639880608816382459781534030111242429384652047804526808277266638877774852972200453936600999885774747724644699525066228636132239506232545239069091411822868505546261541722145184809179362705649806529029867903563579646868902177794702438200363189121079539388945399906973463935848468008064260620911697097470614733375812668807509530848031071054477940718035433451564318712940794584863558844823447617190462767763253480446501242122126365406158653320444338709564050114968791768189977721547186990483602145856478141379474399652099068495831345364958583609554579905812459541913892143779444794453691574476823525250406777769450299478472416404921688185073040839493574809893230902193538797023848765523758197383347282623834420566272002842961258618005084473324193977153957570862064294856652250491416286665305764415926768172269883476909781058130489594611173126942343529963615580958784193444017643418552641974371412771832486033205815081883941673897796681743351980292428953108455415628441235029741830611390871567780156703733279460720632548469528987902346142979911134423278649294384727396913165774273832317754050744838017822621012080937129230504198823436017566747988400465935740614416813107730875169045050781463489654439814783583837178221602582723870721224769324523496913915123320157615255740520417910604654460929274599838220181599407160878030668077421053838159116425652088451276576644469183022139980010760703414967716719302988176587499095469922647614875851681596982111356340830828745860672953972413996271958838457650207543792755241239096127764681062559726433658724186315673577251352999823161106136621977886890685445679531835511633214873841282435447175670797772397607422326592245400296066393082547142898101185385522229623267745037484840113159782504269836105478952456878303526791533017050918280910305588738379229318457018539608073963384524344539198956180774931502427680599314361839248074949039131322384529098692726476424721615671353378945348685634065755429313124776357867758746405743352826116432312953160515660978506817975584352406297113440864365015289698805334603222930799690813676837254778767343461060806479659972797590180464539343669838153825362417420968158916747755488862349194379501375816316594765060820464917580008186826750354285986437448954204299073576878578474622798025453770075150710545116645114502398233106307366804926149596658878022530701464121879701884107793261183783044007494532408339485221766227290615130980956348752200336848640899331731226390851693456684306289333598021496626394800408603675179365603075649536143027210533277841437516432674798662485598713871562334942602291414506657137213349763838281632199300032159461380963575325824397850724565892672070912426783001777557822701720282782551059829150617600633303711680518662989274053712195518694793586877829300866034464917391804077659453386426435791804247920163574840633716552669717160995604889348117443654451278798644604577196534950511872816165143604745945466408020546285211115700825979497158697452614762900718723524485582964033082576379978065535499798046898853716528455336210111127718677957904184373223660008516819875362505779338125930718547980075330248292033043587828317442514908273494891384896259568115892708938099373455584424579343217964515329566157411335276789155712323286934285156216457657848264078786684783765994890804040438000543028305001232659956427422395539355451034168292569707727813215802419876740551322645676264132882177982512816288818930130981808956152748938464269370917410077978872868942566438236219945983364513284501672291445489857659624765088409693370713759625015641141310718182415378970629249476240519584881540570695544907292116645877288518442280929549225195837042485708798875429031147257279630920376371335483547449792338174610462567683383082967893583444935152556132545714294008213741320461240006944317418718356862140826848670238364259721151366638631513310625527904348407079168063467860787589501763138050454263356166752493302252968659665661946702750428927666104651541075922290876040671321340545510008206610752873493603256780568651454678525567438273364708085817714087616149006006088769490079607065797193926342410334879062685867951508908433362844610058226186767638289556876794517293828470792327582354955241391206375571894035607147522597025295166446433067832482134230408334651851490499589480025285663325979651146111632254410020443993967697388284630992785437048264247739106523032888574089383245951864255417102919375786433173883801059456088904359073296624641778833330411525711833466172221599590389968674954145496607424433762928918371931762735204646715428021732925679151947434046997873247727682816212092639587742911376259027018424933360426838067085668621992850930955324461928049805101643275175351350739144359856379700385632776703412729409723409947255539202885363207176622546097229568246078201973220018939838126248169451651047576986944020920014783669816541437991164583932524082654787413669127650861990267870627947178931759707199860194529776796010602815878664380766511186296451832820882201946672562044096900470331289473564015735864492868620976228201097908851917961429225714300496182023012387181057723408902309876945570792544020636487517107339240467008631144469143215524455605043316400088898606119249907739508415554311430290720141869679607314185331811528567354264702872840459669820257696269739155039590086636394780381901703179929764349568145100417793844569719478718935994552873465364245875697929529751248703504778480211142419526584876283562535361666293717871475485968257912984652599332394616998073343568687960388189264960783445340189996206200703541579124886554320217160210664037148985219027210496670361710809786085492407269081031710644499451878590981122220188322556900421798862608705375264672797469014473690256611964725767730495717577520305112544522028331031975179772906080826333602388407578896832675896129416014630172908273028764998762350078675089501151839828199674795642386316405950438663881360874024892325681710012913372775676116038294576645960342317999834652237914978205385487345307111813680596501963777102022993949412092089057878983933202729893278573755010907703879925914285877530763297785793976592115493762760663222873880346405281113245956307628750947283577209733374006586186927115361297137352277926090416974818978101603723377687280560011726442308828970688879913406125915535596541095344210043099485415028252919481663792007344067880648485358851310635472955666731960193205535714336121887229262475813831858212187928779042984770110288727889138892927319629952356977882291854850380187996550188900253735531716402733368276677472423121255160040638956085605297510574071455879893034713535620630296321656691574182037717711296801195656068379864365873393450005796910411197101475316991384623838449988637145740662034060855001114283517020537437004725370690998385186283902270875227599224119100487767207789390751530487709004953382000265297268451263855488483605684240928563339990934503901156389046531144822540330997514168237119782897100705336209652732461740208704818069445806141087568362232395762528793634157286274706623688137773424408477150577445216977653212749576173960466802669732149466577895972392850645679475124823592110834555835473395489102910692627031361517234678869935926335414145676199013119182066623951067706033047043882156662284164319635310567913980927661069217147474044975432411790726957968815018770771071011409246454702816012910221534367087245797507518101123394913577341403256777867166782143799471498999553459634357242031508789923167729617113742417532590764871954000236943509095712037071036493823938040918858389490358164882418147899466079432584757189414079219435887226510814324093055183862263508475132098000461356237075880855636202901675707216013242910560522910980160093079343739246199415673325334071881806790632730222019361414462077277424716472207965247904418228124725737528196666924312100928675895710140507971584371600854311905108994941135853573260167018912428809608554496557646505352049337294956681571084989283002818624912477402962757499833503040679463296631389744657114590863633502102822651772139931738519368985327509255442398752176474145897773715184301726516428587329907075849139791429934531614621469957738742022115185028158245127304856542541079773380883167110121508978581682035854388670655097764902162707622705196628871823457629331313274127361240618682649413761062547849056805412063551437379032163507469891667894480894052412690016173834711033940947007065341879907444781114710483886117861129781451580703240167197526839914240763968956673527756071152340404047233856353404295780928862011837106768968876729320338386406831933106676802206845801624127593836040381989867138696118545638538926324921371080763971061124583284832973334273560754728083647872935332595237625817193969143629406432729286051373335304507338077673136908353971008529219496061084941545040524202219211345099720350194627625554228126131013402344315802365486669449443468576980474408698083904544309885035123974988180627281321900778393430797742550415943967480936321539413618766648632225459908166019259013912939881515313430390084568388465329429086685575168400495680822019890973413508577923565241944525091167176069504248073622508670864424942680767785319263794885390329557045270192348277294606080222162202350584081459282029859645459104232438760135998101039907022258286480969914081210661963918657425561411289683773423516357309414582784409996455928794819046376895186743368690322501618363178497773674511132223561357372043196514028257882223125234128393303938751958283533887417921688423836740406951526154387217497912855219916693443916631455246500644118951265157171759215506233623208010589313095163196779787476743225149151886899088983550600382124773956474523030385694735977083284954153350289277365036384823256787595832368571094544353294774168726765609364024985962241349321875864847359111081325982095471400057974536123952942320260497230487161467072879386441222337009252541181924499861080255401152198786956977603125026910976354079442961381417720871975998718064929357416827002130196795737186949165779792882378937845383525224349308142661674756898343346611682953208045920756061010281308956991877218166033730244453435251382989458332493740899874818912129141286969945268331822935965976647507821880058754904772877563405898196350902522330390559669723375735863137188070118767606054563228006710631989447317885031044150008346612676938869222009324488918117286911510914754884180620047867023675336665523875838095757096688679350573990676529174265624515885702958701860605932515315939838573992403363531841735735627150604965759832021642801214950773212445243990009205157143618838893682163289372828346059673172389853558692150456436187720521897962055579349289691753753793753233475668405492382304121888816819905551113784462027625872801133707291740402615921183035884403237551715844689888971964149185999779564877778617155523526786048546636684312863300839805253218979396373009363738166090630651853737624614293723384269622704905204527308064220574996145399886407604352319606860778984264120615145216148256135648543215056860628480087688845121984196490608511826974075704088821785383737595551260476695036642514840396276556726703358455582961068106552314546193827001258920109910657653910472994106974468522397571584875789906403492218358211896697987374898402454345770413768217518533692287982373539120596369069280909015506935354903883117268751631186012246927764494843710700288173935541721610211719355530174018792155390723373951466132692475425447652642216082379281290439565944584931861026071685713618035141139481159284810361648480012957346982434857208770973716045488234708786412347100359745974304176994866046769444867355878524200817573317935912125952216353310424134026576638821137667233868596387707672332970134056572209691304921176458950372426457452375655140501162838137321673975796012753724840423365430171408930218592624119806174855404665005389199612084859925422575722877218451427877948121926194140537595735175300468514879652989705933812997189572474343502116262256443041968128280408523828247943011212137110652650984672985289479261339991487883075139825076327253665624264275597397219006949457822094421202661779049301659035838514729991458398164971548875429317371531248897424560673200093967926059783576195975507047776630651729238430718915430975128817263340129817777180667472025687950754274915864979028836732704191423397988947061202279649907737533220765500730028781499195482412621240828139081480275780255300525841214422124483076630101273803100169588636208142567137327421159258314827539507942998475574582396359595151379318078255420779110189070222515316452934083745923508885944875113465059930745882376579418279444982203529310655766306972182777217011138229263020449952488101414925376087315603006823459667710845098882089168935822220848342929485764124849223579680786727972734621996737771788020059653564086147904306058274263592443511200832183644942292930817943085223692062229834498576273221574304999169596896170827432385412977880178275216690766356609602873132852722939141524966921737562991577239411167360870870621542040531456805816028519314090755688417032823770019073650018701313971435584090106271989382124545543587841784217160615210427221519068463371602685518228569385273543218829619319659468989679748325197361574573639078029728381071826724419198532518396485765733339107063067691653237591874812982341541775051145394718993266231782126470778027290299776582119927109804028264622840532741532343443566469009934518562123962105794408809536208497655098505413635178803744804488255480337826841257042711512939107974913007349428059266194140316148521933304498190081659838582166894856304272157770076286127277014968847722488366716004842566449462429533544304519936080374900363515773321636759192715789490044381676522970820055394978926089165552716137128315117029212395707168722908324309379673244928078973889407525542238322935552440540462078394070259354675034524511406226835512040209441308232363110800871637524361350508963198100438765030753010050336803954614360936429952363042763801622979420634610022349117310940110724923496543380857076532540521074290132064366043877394917252659643273067900363139334695138395040857036207757281881719996323452342506233011033810494415531488096639909383550951582902361206064138143476957687265589605507701209383116615047034590638007538874162812060203732063688498411747654988305263156880205060543408629971383454837178210323563392661987750154583293163614060004061691902849808156956454192983394518552968045347942707750142844911975178869901924004120311518875356511252502121722743947127555287739507236682501595742141436624953933050684211965895072547890561147099397567252178656290919496477379412990768590251866638943207415572518194624774328598973547800386178922313260285127941043662922865151600792446763569192202400268896643181721091165323495008847116555843095643118823175916094872132930200983020437517098931375157704441982681463248705075196881261342524550431146488164815666099609632582588792206120433174130385200926852185499025563904470421137525748572115544629962252877349982895716562420149179067107447328546332288946007634579655371475909043230431530771509832438576559860593424725460325736431266024454436515732908724890635724982635625570352362608799080370817163883456047828231802036633280891344038122692292931055469753894269313692287960281446852307123181407134734073152201028181228754418374421639808462459984262616430765673565744833737127639471101217627844773973186192979661637148451778006923169034708163778608682770282647767342378313096897963824083772700728471261197552617367075655535347314728596871141280080695435242427052846588101327313863659291279592362342069201391174623691707237358613436276468691788350454689751002862185238467957066104405076241727294389840454223200796523830799316107766031941993135532485705131742524449533669780211697450573100995031666789222166403484916405213108345720595504096389101904488555746197231317579560583916151815659060088269160532088974832283392448925329395228715431951451628582055179324392996981780324336595031864281372359734031950920158057114578977401476001543820964598080392119628797017249166259071768006108194117483541691769753107951867566763067802869350772779135265347019584417928695468039427256413387504028908397442149755711448226778097809824769109828616501078358488652992232242577514985364504881241087407292972230034907913233381943694471004900481302392344805971533206475682185017779311133233674672428825602983464046063412628756888688023845567626675968024095575519991636262413487589725262667264865878809810786166584369474266795741551517620038213087283061421217991964549243721312317413415264011311325094304832745841302881099630632408406252310761356153493251541064304795475375970590471982485942226220690464892174341196345471457620916618700698753272833867632924764665318792120267063708451482605144445879154099792726650105339884786968033011779560356154091356976944535123426864581105816147558711288885913366222594592091940263877888841467803065070388614685922382534282878742508627816206052426475047099176812525863155615290454525136563836568595453048105967875356997198904216716411827920958709346995223189271279785040172333670190488460005728352568487550567041529922083795209537475596124551596263527805027186473434668715087343887114207871919422058266034379928103558271065109469839848738128876344254771566826191500572872272157615902354890913132081300674075354548024052372268628164358605199091363006619074109351475577363621830609677922872251276498591807190901735185842925067568407545513655233579786317890130183931974058326327486245363512595270382506437990834085039539418258243458023178787348002881752902763905969593056080635620873478475142857774338846989944916834737470564374813376498366172705168273546117852759691620349824519747810714511129773842185968517090610505134268617760443504202158517344334143044912727665401506219294609889463319956094167226994444682749893632267285577179461428839212667170022020410045896309810355717942900719425979202382828801417248732935634056151093245194374286535190520603117809828494655554194881509725638201138178550734744238917253965355562846086369966892188634974250062965699331278728914657717560619719011121818784046602123531239031686587249222524911374592085250639325085575037990143419873471083935789375285738659406287263209219481718052721456468770437707939662981728383150911127341606643162208741646492855600071090548962630653800422978340442049632360621507829158852431537748263558639049693717413040809358884407287860652451560432464589567781423420061290369003915665790747139352317451748868411893948387656613124343529236810423930932619315171594130535643709307102966332712281204985843054160041845994613350539587571894921844567377425424909021944183918321255988798636253824337168685457719622759827168847110821570188331440892386438840992552646923206912453304121483967033583214427770571305184426306908531397466440907554271817285992120070295850184746645947123370579427653330802023466897910370955796897874087050405620933246828553221416967200355012475400279257998619969898287151534815828285598495047119014244442960098578468923711177897082785208621044714749450291296289221211420341525780195484804566560883724400442178161281268919454603387658592967837075574306333814691060335002037860007669263735188463970214817938485368934277516951155635357333831514533857678306654786357803031265072152538020442203313051212553171624707627020605709520537838766020255565616921641949656822217888935757654591973215180819850971274770510213050590200625315861160365503285916242013143185528844518403307788827237813454957560837234282478916594107547463276801871266878326253699546902424216369578780757822887016315481749952860394384619754275992500075464293905111432321091093757078465808830291559567996817503384906182449088395420599483706075324749611574148806552992295382362936879089036259581241479586017471987781716081807312106132565209010587945313428742376587912881173834472911039568158528725005359689848313347208240200152714741462315960109482198189418263384480242928332741644703641340342842548916523079861602751038648237044823256380267463684088257651309807787200137232874991899474073393807684416104352132110393347150253964151683367025386113567954422714479397589074157193141907271585819559830740439668269143765690638197585548326949991867131557788172884800360470105093303751521133729781825654510921344320805350697932696941647679292510610316560489151557691333327958416226689197381259593501060818558680995526531868779414755941736200384045278264450130261341315548102012225280151365237951964331013128082882372935411084284028695583405678115265678469511592380420551198753417207497371654546589397057503062647605076443136651059801455109623320300892031684394996655811201924657658962359764099776759010481423842033989569874445712552559626297780656653849928034415715700219575567940754361824477243207908383902264321126606969760483948401133670070754831814836450725417666646581286569864057855148998551307861537865493853940438645468192935604177084619439957051123142069653643687903196512169278868197339983182441881191961412723932014574671177549600800603487487651077152302131838590329992640142542281183901378728275048733602440883102246765845706533926928895942296495655631115880573065999420766574695271254536719189117469687459827220816146744730198115213534257836598033048301435078886646776708554225678639261592007878865101754736091070851353399048616049989059778494602016699433292454209163962334466940445333541012717592646649369239496253568767049838004674021364904090068725756929776483697929671627328904842011033166747158611650179583368217977724704874607588469997819838039803001958993838009936895281200682271540299258699385932236269477514067916198272064808516180773287241171533047960680077477853993389790245091309544978908294709736945186097673456039772877075709234070657348213256139428002859869824647814777947841071145248473781385163666555190504832283060603625116502531790234940524159885574567983986118796568628783085383827331346634727123608314931835034258974628136995465530022798325782464539064742721885412122147717396620767214250055135646479401521643182019066364487131434839558048315781633851396509376753779439860661548556923442412767520693615480241039438770701414061711492987445472445406502162730653720316878746452012860013055454740535946752742407427166947864948614877605742467756661142871080571737270203507420000476216005221252973477068389140326384566093724781028401825864476432134837466176612333152764952408929772753069543369474951765360023977140332785174878958496857803516460586553125315987739656295544286943478985384734568849466684043051877720721602721744058906165056125906570775018092699410819265855856142974705043511949556967111393644315908423502267344527246104244447986334462976644277939699346317625877020610539119372371535437818170359003416795158995426136103256302917740762666888532702579511425890706847989760671366825442581766698395524599443600692119940154981934426220771324509174132585358973410296940355938914812026776374133643944406795441120026361357689121166435251728704766204957810693861678072590402133334327015178774536581398674750101414907868781644671799727992642746821158344650017780512010557428887346004339463669212356846834627126683950609811258505243979732970919966960979635591869208418341952191255482286615983330944118127756012458886964797827719313094149473030270998560262442424617436354578396822825937047815563496770218875790266086238101891266854031052960767340834759795823296954407441286430054665936079836334302395873696039236335910034434817471697397192152664318447355081153906730594727824440072641821223036181163080470284057577059513820912580911709130624871790049847044492240674184302314621547511763816870518149566314288587507990212693454726690795980168916253339034216164671563158736269962515459889985067761304632506150233557957828187929675872488981700839291669005286606257408232791197568974195703669382731576587494420682404656559646064444499611158147753412773026921885140879891245297506841989827809798086863614658056589535487132211891242634792695027392866106718327280119236581208501097125121302631020052968156665131260113834446530711561482206408512384890935857212631011300292812328561106673083749131513867872566764362428029307002330518749729566205117369313918690810406806609160679605813166873544073979992603538088235731716703552549147224514880993960264068874283101165211959447142449807810627569003648514372246401067927739841990430180270624120778502407850512864321872109440740606184383059790553224819209764624839433163989094550022987251328730003183054093522159580065099809563589815926100256296178763230807148472726431986246953977227819729312742270742248102397985101973544766034150790417185760318157067350143933632436787717676792799168481468867406091496128173159838154187751459070736310856231796782066082839911966206296719942662224258952641225683304351917109243383614940144051596799238207398225639265343373074163364610062517424091849925830113241634368840450545584966789164835878276292151707656235015949105744876458893826071018531523874527644557583673568882512516120653090956553708072896013242151789081572833113800597061213523516686929584469756061039923122701630135065018953187913872413940189549209461562325948817725509841845565007107579155084723691457486840507792716103179925120421333366401825954199360203100880502692734366899706214694797403609133487693811016158332657616530536403457623407456382360606541268982594505057593201060486281042504585063243986932997231057487234479820059728721736646310442986445891464572729040077037506277932172681644157991961324734121661806863565463812569613296067136939787233641083530805872544329273041567247152267331564212818011178197901262155102054001416697734536338814926453932010859649565783639155680581569060723571343599214477440410550828373645372527235511942257374190503463223718637630445548084390686770561241924867807903639110065850879743809736014995047241176686955424742512982680668553858346377399017886064034231265922874932379373263518530600651579300378791077991008333489267274100222950138051410680225234931088540215643601551225329711519575789717186269163770554299293454346472402975991160007099679780628129685926348337245688159012504424445076883108858495167391128495298417594339031751800462640008467497814758145134666818759760966498422052659656501576488046157087899937560874710391230618208333835271695065387773918370230154449019765238176138001457537963659213933988400257187331404402900461178136080352499914116026293936692725810883392140928807570794627582722039828295933218661756400382059151130805251269037251392502964387128293869330469770344531521812108809874963131028302205818734922614658438086394711861137734573600029515291023497812079304178238798850498511033442121811322321244379272915258637387755838459415631479121939254263669247750098872398165886590102504745686431548710335636259748862110044069641845509390634513955050889006843255610849694334789954353294110332643719146176032818316973826339903536685645052457262733521254196291588716527413598532923105050579680187879553259660751791538710142565908994856088207792192565458942840382148463982413031407574919955542368833506720375629483706808872321885152056533472253297155518955115568991224114852274860904789486555628057956757958247356081659498922144338888737115588120176306383305487693264480297738237590047238666702311609597534056552612526262857864994274927847615182184329657500811974202447140864926317694921813346714447295055380593175591132059521393840046767992480184914459345001267672394258668600644795954877292645538671086616742388842798248043819626173825266715142781098382466000901498104253572216474118201919417079714343731487382359869740837544236369260742594310324135850737522479952247269347797553623580517470983740521797581034903883188800976462397406892584498045494329829333106560770033678684847958841408419768799027369324180312582183087127356843161194781573443642710466519040987626497561288143547356839221098920507376548867661912508288133954294376147278308824476800704251998831109971471857547217435431305065393282687710455340725335077251794625339641052492363106921724765266926195870376601686190893696493845580242952491733912488593273654604596372180425984226757557143066004119985712065864320683960407436537023854975392763051940345195044258139761818148127763303539948726667000273920849723897782857924658364360296728013437166500808645700312912667122418838131522480506817590765468545806558339675646065641099400311859294325244133412576281790283944868609412157295212037718681905474110401444799239407069755821401166847337842735433331780097882915272085748124909620694713993470505920590316077265985067269494487347542823271672159967842854801179375772791103715527084281726510204518584679982992379351100058727285379330265913703958486579910287945288113806318819234068691342363439872669406268651502360016634855764805072914712773506464890148919367676258853094294090735861756783365625097508652538622899409335657556761951920719091476601175307678911543126975214941005652364915539021575430654212360676990300617014791122587303394154716560549496847345236984506608058782837107575858042212140541746424651011320188692501868890022985021576560514946569966185712465323972105528239515343311510163789870062723809546511216433662675934404602168756748948587201177754282071953999981136555814526939817802900592930507666141575099006273965429229727367124724229669885074368710095504323366435541201379776046526535620860276592162211262553852410629596076954449664932569003493569655772028430998103501103863144306380682376753818992991333710672047581611662012006060728303690713608752799911923560783283732200389776490895246002520896292125169009111065414833630536398179258176478113722486734789676549927097364701325616492610377193416053773470343088807362699680621364253691490762159608198538437167350123141877720969118814032010259541363118950941186731215762500953171496225386205759582464207936684556148750055017312914003644864178317442283557204202681851674144080364801305990939545200344419589176592881504517340949177751443317453805980406097365727051503275217212444661936366722627103433402443765433541855183043379773650175738968333949342230735190284416591354964835934017716594601623651806964508421257877984118493700338341852396763053693965968820133084072490755279985778927001252196052626658038718100053784919441196279261666955552303720112265862354549750903036590822047266763299816247884951152327442566039409055667684794325145431560070786480841909052502188224344873739290775043079280757394037798062385136795371406364392569461664880455490594113848324952847321646864207853211048073572858740455229518748168391981376416402414837596705575226735575131170235866020328817369664871947341435593026775507302037126258291951367719702675877586949262139223809706842132226023611594919506138133974617182293059183814670438973799587415415259807075999051842037867244491966236997639713177508461102306010440794301574807535632867751917481186494911296572246856167152571247881780829633096723836154813669655382502936966801544728360026636375327568233674866719296674488896414132699370313937437244590044427681846978269808692002585053384519899881338717695023967371914241999788570292177409395159380938054583428787974845453190449980973271366641501786180937579755034597735229274073413857572502508679114687563894394646853961538850493259150839295854198363631812412105789368674770103020544242213465336135497185796006111689835623868880108813290817669470438532201458608630265775625741534458512011040619340264281201577275031656906396085288094052167642186473993389822005729489724719825879709031986975167212271000678042203420566164257610999752359506819997583091675174354983234824569533733761398222530704048878048881361593798431807099511425663863428109212744591024478379921011864632689426172309014959309034168193297877994127723553642232392076495755032932484688537709657310709025465415351787534716567243719215495167005445396268609996849833870400024018301926964903122856181083182136763986129698999701668995501711937111546901796762295629122894552753189498466770226404432887745393927776409119056554539551428996804869681154204179620885285238904309518085678804957772351499553122003417301302693395311257866736634466524986185256901074719052334977660112580416158348749301772736857221284382705153832152529459590146514958747344586018332341948650848083230934829554189476431393626181097660316230570753353671963771231261878817447509393905559973467150772575216909085793313296360758717031100716456079430791389199461853973209591420335962230743414534626892365789523393787416042918150454614830554686665748690442566086452810266439373481707041324594967911614652095340866462783905670450551806297931036819868710520937012566406467845659817763482958301902444109009778247815519290218967623243541428092200211337455633773854718756943958307698400913751009658551733850291811113397752122125952060243554618026020494119851386879498436075780020198314239719991943013440927536777144390333305336008859281392850274282593847896168176951606836415323098209018615829691475274240705237104443135222654478059159704266578929995881224426888406998738589582492211392987354152975600431222548677854774646200557123720922440986894223151545811118396652854510093899594948323248440797318098781420223963127841032095725213987641844752993318536040743412032252807254190907698636832277386533873867464415238750857378115370537864892288633263063141028180347948109680664327360266322591368220282463364126248930989653254811595792940883898322579338155751041206713447568249004604356253080090356910843866864654797851090090714988648513899349601269942359341128110496251974009679474611228830277730302570753192762648289207415161425326248961548331167537219824537587891802130108575230464612308129006111349270170613079384157799924716513332972515931207981203073634681211936541248567224810816250545577531683033761796625956089497706634712329563800565527227618713820920077615593877279775725690199074658676154904389237759247627759310817269220944116516598031350616465898864412408634724388227648664340602706585915043313972399024149270422126930548842745766921679568148793201275693252252063988554814095375543641163602799569834172879041824541593787277725094748708865764081708977293984503514983667086414720366115873223905692105205095544076990049264352017536071481300563534230487985190317825332705600546273792030393614133985303191027216001254473996796378480758748986515122430000743358318020589794916654153309834435818636639818787982621759725689411048024389765572143082204810397274003446821586682645208996059771253062163406328895699946405389097537337628936270184765409433269057679617058184098374541108955762891342983965402228862996085008534293808408859989896346846834316278778225695965283434825935705300018685223856812497042057061707606205917290140344878482537599782479419438869245291079885752488921518211501980970238141954060594186012349729799992644745228975440729560239446899472385922622430958229931982756077155400723961047588161656278619332918413292586602203817465391212506601350337485666801646607261706826760970344701678347339688050903238102467050320796803007858200454921753701628990769347249643728627649485873760171795490375036251872331219038041504813862447347002024056352254611571732043739982412502492961391342043371224661776293822456612355164527899454991989707902150834803535469724462311886377733716272949407113805217794294927907134068398844166498654542870222672226725870083073496600902446753737106978717665680236959903911391238486570012156417468312395115947322481438218169325164569085791359204031859335574163865764727236566960357696871355573796509110355142575872827477558013380645086868654892171531413175712078057986142571781675794502787946136590681030208138207211749296700619577642828127739112605514069111248313513171526126937800549972597918701649307116998568080950458542201321773322761151490515560167404854550056352318560282072745063853215461832992095159473551692549578171120266391442498339131780378747367796671909056026392935093444106100223007481222538077932819561481106846118656833466574133182294072472050143792253609194391793506714042986127075767723594091881172513804193408001726443344095827066182723947224375648277842888977008004665249822780675304709118555870900414351341437253263935642060658340809585532219339209083991971594392804735839600729260276161545904513825022259755540731367241113080916095687751390832206215940708880873663905378975913924142072584048181960550845086034911317444035801250647510045659380185150660376599537128662852197016568896025817813591500030856012457770046736858985182388501221169888104904989209243450513373104165277944385857030002927175512588244572374365319315178185798368966826359247975675363913474151520633168353147920598345645524010161047049610896963731550700305207776573440576207433905318073789356505385042197448345413496094406688683288160753702793628325300644029401011373666839514656373012425159499922639556927765427811771465101105633356850759991156471158825516991681623782013909403017062480123445375263721113608146571072486538725120770936494441584083166641336594035177877626927360643165922690314098602943767826557803574576573944521263300060946774216603426920029450286434419175656853926008864321446869856908131990191328226997959756374625735000934868754771505315445669271892828755313952870847915658470201668514617919237998248666057649856143447247253782488054652057999192113274727357094471963848739899216530275312869463042320955436722361175068389775842687664409738094233529456561187739760078443277449029181237845756900242581228771340075047104273090419743326007491954583178647107546643628416061095065844208564438124429411979290862028203790886623088034063257765108224982310274984554881544698802290964544581955171994540414138804524357105458924345724592523669642927366859116702226486327495563642329719721505600489485102440086723477199485710735002786138690393041689957659075002959600644083653239709455087238213215342795064328798735086011805731827440245194166122443175610731777138963087366087986196683437665250907961302137063443228347728904318751604905289449686367911486826497332647692650147507852877654058857030586253427183184895334565387506019968853557849893086780720391738796593114736562804259132237447363128762196050899998932023772281428250275931756644913128927267991227125667056785398340465314243484750951529074768369838637764523766433566423301562561883849171633034174361207791338587011041314230683163180877309238251957624874281861600739698381917326590297997242273494837360953329639619741750044718502327137807892011815667534184721384347215622321031856664398645184118857077462132164674726597303855008915700139286239530010314912636464039537299314441789852703347718392403940999134684180698029878417322033105579171161227570987395987217010838724734156570840724298010077250493215908835711985789816337580570724866133310599081182416637260023444141350762428839877610690650547604006971878341763649105847832908832004462743812157779526746711661884183651197246923932622145727769383383109898596734533565076592812275430417723063053236381981494253101428200217726654185638314813856194300455696092356037776330956689060186230406331825388736587224539706248044262966076262343711067394002923778842255234173798814935113988276014914540797799546367325317110528034847397812523264892411099307527890885229015143126391172145838457230233416128628851069982242452195845934824897574491867065279603885530993543844372331113059057623339656490653242963282448713315236554678012628818922025151110769589812642061785492775547839816002587520605752243214677030476997650596387431023253839769654954803269924274180503407091331310042839935918158118297764856316627917854392281357577600033062759052889875723648872405639671022083594838336848726580368102096578587573036148789920671688642117146309756270193721860033902343891295636621024790479082842877124812517899437085779504444357617256871902825854845352977051487721480759908389673177815156820253248921662156373545683324939088102551263708158995744362645410626725035434738124118957132320198322537765708324520592174357945608356064118389440503446022967012209389973389740347049727539685006813197419557846734987720204265057861765765454140099968235504215890565971923154264929788957310678079721499159381866514025574447368436529637243230759288818438759759699789219978340960787364138144274373060944020411383656193773261090427922054670830853187573685621236326215805634331796800194795952819749855587718654715863299513012714907605457201668297991099555801533697724990569266412447856337693436167126207788481861248894935676678400789620272205436369343315716019438502664061591945337792190831100668497254722182766562689147644384068614668344135927070663836166184597409127096384892854955847436795563689689788796543525656082733898345995489762418458837583734104709579263322630365633513155978853755016243949801966408138072503964904778932418280224254116463967494320615116750474348459738595146911083540190172284688315425930455221325815468189342576244655321016537421970592489296581398666510121811780520532225887268013413510928454407821483113180111264644105200918555262360141089375692203880673280563607316386327037901702845197612173573699132830937392605461612619636277089167078949230397027506809139448914014316186042866058781333804440665287289249136362672010391655491375786831317264627090190193874570421128992234157206561527545100947493987140789388376633481254292669352478488324766890377862655723860611026727445492279958370941405806582876715906057458705739509114585990317274595564978272484482694339892570322578117509589266440795161502815915298296931737073290494851329678285738198212973704516167625691909699235327399589000074080305547822476111331380474815122459204774965014777632947510306465149488803327168018054466589333993891348880524550817752298829494922724624803868068722138671356783403992870144512356993353085055732423025067024193121917957918593864968377725239767709076175640139815291227059741359724604231814709123205743648213400856958433438251820697328970646069507625937764827408516857380868588025278665275476943114172854299381769283548094549637829254708151878440033689367910256511670728454660609459433613514404264285817373848985544049149285424421000465351638159913890927985368658029966032069262935705306036509830824004505591786680741763617345822187192968151123778199744348268083857714036391848802083525247605861782991062076561414631739826056060370545873916717872050769505485667505300344854210526581869915770607541335773377841200876640746698636080458623219928879400364039634125487640637297319803647682060237953796836811181844984065573887118587798841200640048006338155788215544047310619156888036961521736896444687916012734895348244117980936066397978700542938608831298712258737216439072165381905284305605198483259813471101717628625227095175918553895779439390807094170059586480603653253891674815385849276234788035278942765166208733992518683802726944717225197990163217456017333527983380160314496346360936585263711845526534596647416402088641328628497381175187036229773738274895194496640334467055765426326253134204446418470684026604934140554088309529805996468295072748997147589276571140879177139436905323963065729314426138699955226446764148911629353955686573766575097223836808317856695320974483911060493275242052188941677153334237272324576263098028975114015455891588217650247783393769359490405713114922551215950240611454492906810969915587267783900865084997340100965391797846534822554634467935475371186640435560847492369181096540982119553177504942087885626549735542254425145676609660446612521308123963341812259651236676474193074653599568402094974518224590739910568897273102860568596654401547866097438423269985812545251655366540449022183584689866708298093492764789809180257285483425196841240343197660673365613070071567870421675793551344584956404811470844167128982076213553878546639891642113882521883055368916274809499186396445766030645033540037646585735397129389475384821579421023294261499155064055278557567599007410666543967763005273867662580588118008784389166884193975883459535779414985625135190057009294482773452650570141936325245127701344003675928934979587758635119447631514271540519795872087093699535741467571794910550625796988388063825546058553723707919523044289854744620310372592023602112830260962198440467361792469453785034499964117480968079441490016654102396771262107647475065066651846424522592451123739026922507666999769145240506793765707762881469589626071761521857751118369406548702783588120787879958703879400171559054195073278097105670901283233116423096899789671631921994426378878307601193001770864291391700800335125941710956542306999071416899494005605383329416308651497139032508934845985396059856005719093224478190699427304802701824358247070691789876334997846326626550902210472936342714709263175511513675314130690351708773728258511153122775362062641092037272477627048340872731685607572744169685193369673857906346081818813025630098840840800999134803035187622027397606748123117500803748505846190600299234842841997056010856957829789024476237235117458143319881207198991218689026956733734090215769817467245802068825475022952009665576381953526314722802165421501600017108663230737104585469082911740749192278222547622458613610878051483755903947914896714936800310449113345366055611280045618884541126691908687289055653986389092670632511198671989442611429432932884787085100467552125788001963109774831627519242502722808845239723288018573476045497356516120769080910161007074474200950812686034507481396642574790910360131406580012063609701052642163346906166263623433604842494773991864998777756048161202218568253941934720689306299822822710459352506749521120607915231130169836188876901859957911799374785387373531556565890067311662626411386421661022911263170556336680434659073140950524020456640076788179502674890679962742820140255088459095992093840455468687233824734398092406372735637329799038895040587010204528867064892259858131702057269401608413914945955274090513844551585486142976772692474317516432916540060803826136971489706394816084614706905739589574448256648735049989327382521276474680677867186624401611807796324285916331320364351621362816510120258025771599591201309753744390736157785904761127847596318390609584112034152835969507305608006491297372518616043367442470234186319042388982532023723073197612008909549690425903999682918245621029975237945052284619487832728537130625004364448910222483932862994036241737879160347785034903890209023651780800412580495707558256453111826768037229136424908335076777373233868460681643549742333777016618938551259447833530859441819570530659544629819429874570183280317802331420853404553141640791313279702103460824291445919151702690446646772509829301705535180761495070677780378180846288359522007900919927331977186355751375455125737438428346808109102035151139406041495135290662063362110166044873880141761891484050897963815919966746791475634150272961758240216375489518070338049809904980858721283775465786681596587039400132337512709076558177488465137702939547783606290873952134543241837232580334541952548116887563138594728395634347640571279909060001412890398087470145527483898800062050432634620709652056141082623720563058388801055333649910447612006907798786566792269053999579535343767725447553548824525472098556872899149922517550493949007547694102172174964091593459412082586695646230645240943681065196054232382107428795885081551486047790882224434751075031790202223967266223725810825287696326536968477590716657711096361479667624240213542115323564636035950580169855565236214370991080272474774998355780988304633774399425303143290101366966547611903349675516352107862791087303239943881113690273936503484374701154984676132272743181035373396578931564477467340567430032236324393326864171859464750099874196314278187308755915804520107732896524628809594863590138142850808350865549074437120162416814098394778345904999753482384849603054064207196084333532754584038708739930756566936909129580087417154252231835892938369547985788001160409534383044707956477703250747455615977306839295455675379106014388785187116600613702643522725629438334950649826638847995892937556572165555997047631406569779517791271155995833746666267605411812165986865794885217743982893218039554242422946068643716240914273784351316397765136056153868429145186400257957815164065217909040543379463752544458630290033627202514084082025981262604204303263991976234353592215646909712889857632117695887920237258765218166238732722913982238804798739271167008396975531084505412820784516051101507556814895273965677314610091666453597595505432116400946169313670327163262529780224756966107148804178116660697103425156456478810265930440186591949934612034058838243787439630800304054524788501852237310444523824489204542503543944193766230202605838127596566159163618867310876286934967940030319947143974054289378399360746179253694799684569075912810685866058636315961417981839431353697512033390536099807562649854673901946972342800934356652478522350188959834712622909803656608988105963587637022227448160176535591163860847572301660243016059606415057511831619236611557143850187647288584540935718494464077668798802570086688631818577010145315146180849411448344387068836021224770401874360524333458995211912281140139744578235747685510006272726248521843955079656000456057595558630902255346460695468395028311475522087778844900559337124564627311351625855721174486651906242029956736496529251971743114611385867892006748342090594115370394356511509904429793968045687536997487055996555822070409087449948096761835947420729454886084206212679322520643197432492444205792205671920131964411662858009412547713737627481876150869407109358185832474579544560286310886774100558494477011916597590453316818316177841490849178981391326123299094305092600481488857018898274623933563482470178730879293733445836342178035679873581467707194066339765824939438241106600758013698170191445866781249727650032706056713378018371409010148199957419713616915752992443736757087536656653084893954269066961141743209349738000631124157913039228916452954757642308314169635204509691422737882850771668551995403798039293122976759682123840850067408385161087486683739139503325148896963534762064741109808328784849024062071349534178936136490420065180293065388799668738254023785785232059857907668274928505148626915746034620929157059944388267655721550132362236156471855417369109759756772632310510368084741656956905260353188506008482700253383957767440288095799941442471856634741991776369401922503605534899600300338272962246403184796388915296781986016458980847325884558262988845780827150337840847374271611680064277843613643894284687169721293589480681826605258047854196266192501505801985881836599777529507002654245562561730661418962412880299470829709145121934278597499498937960332869515283890406183864022308541641411632083710682654575162035601486610915502118783835735386246376431526775583022141822691639474898346289949203552104367349615977091539313444875356780038818774823484587804923263721198407633209034816809589060735277274489850075607026768606762170193620476295114208103167978068549250937426687768428180812038822931260552382058249323562088356229339485695542207922649598349398400945060740891641531105531719621328133855402713000624882206506331254081854364314049328250298544461389397481996596793594150551215021011851269156166915011920222156908455638270651372915582402426463924774395499027163630903486423110426547818977606768959086699272568069832463354944928591706960713291931819359046685814634282505755961213288050287967514785551879818989628138957534161955669586354118108783001681548676592775356098795583831415333802553745209664240224014756783804338041303121673444787744048420000462118061091276823778916627665192938198659804652592893157208067879250158965677892194020832323623388956859956859431160799305628625745406244520272497053477182618632227493454174820296445141367680769627179318838344932477366723158572124998978373303214400643846385500025949373365293650081997372044071273172924056603556431390950891363744150659126903745528336869571781509429624382324467744451367096137594739923033713690559069889156886126136603361975256253890582902228306937538470018371728158457791228645619247038210488946027160338979024867663825818989840226230027444736299656963504878085068348529071743586610236285363370423784961113360082567944548163815960034508663228160777858518012244530230251402630198930557036210190600736798351984430904549141197945518336222100292312027468913578720361647746118313462036576422828443181095518783104533990822481355191631189998950629637922025556004595479655985086460076551608559365709462633667065813817404363048173314289656594769198798847166334896778441474955213452641065382699109902204747663436006069978859958769133875498591506555608126034594825645642559584373734478024846233436706989821716402488534464567008461940158303796584018666590118895159416447687763919773945292798997664487058908824221657086778222390803887147097512506935554239256463146632563130545791035710988218647238986811555232930103443040529415923166162813050163304509761967850518094699662045638044550705173849454453629000015161063611932604195509327588322892414810241201562944421350764844367814549952852905537201872329086138110181715404709721720682303548575658540807412547357776968180648317528239431152076259973857281968096510708793889018025132888799203125534005631341446279988567449126225260349120397120689074792100879253151509594612010445220585426696211971319452601429854057371496498295990854888603661962074518852683575314714311092622019363426689145481219380239744548293298158244791530545485991852598782811553594238371137718381511069866567421459425775532807245544761549428350186258030573147314773988738661513162248109500017128431740996355324783227308143153071217339772134654421250486394672082653707974093178741876682885625852264682845738655482919774627279610279594069170198851184094155263553540304859983680624520535920940261018156403998956422994489054537707669317973408716133813520162780125725388038861534844990891077304441445163090410432929280248809585928992539044476356064860162975283293464419553358264531630954139662282490560742872405988145929460726036659885573866421416846461643014905780946528076394879002157699109397588637172364645425525200231678914376828807032972561216828489980264387193722080670260541871063059457698481747706371527441865957474128121153651088168088196581216387241602441603722766468495004054878121694401362067943710258819104755788467074419021603518347242620927670836695117289516656306505232716720955361279089648075524344579778576082668136645219702527978398943024910111065513049683909200268156095793320610503861714125622276902108547761227114057821103406673865367594891542771151577600524008063850972638046778775428482144595295693394350241237008476776801917271616130624032747509396682162493321128048994419020026218649305804179654158882078739698739886997550097089342125322962685956152597818769793004731806576389860110767972786100427572101578437835854477895404888758697721389188674374792637531939646142918661330800844734755303907961393670111318764276928176760598022281186386025201930976832828775450152902941958106287153619204256140689580910733053035897280945498086265248931517190612811664593460599285531194604633890994781604517623416716972521763671286957681033755590055320871531420230376487962402642205874681154142731743215007668913372849217482657507427087566349116891815228164459353402922711882506699583477523536020296417238199676990549793486187580690105979005527632818039425555717790446227311989239569392415929726259992108386465352180171588666502084622008780610760359000802583318462200768442351001609793389760043094946255391695754202019545936964182800553717010567715099140046177746158785558286188634057632973911875829733335725718575688957531098917921785923387066952009217032592012136979190077367119726458000516516940270015709144458858373754151786439714103644753810778663735974337411427220750985093331095099134933974503121890751016960440328044953163481181157784701909392001346187297576988617709328903860333187236563121987809040074422062200217529344166005451233641757210380833628155265673453716487840009677448923788541277316161876244875348181960236742885675282829550811746762045268897346555790882401456129362908518274143609726194106303267775308537248829866870409950254144916080973502224009583879302053694735297469106520459212688284058203748292816435739757519572909381529547339162318114106725131614248077245849762585974712233454247736498091799270687751606423901647139799222754960947139391590560336826116548883979798182342829659798128344234732480946798912586916257356805778822420904564063616916217996241759389609330074283212290144687900298513669456612602502255650577393542977423746757730679632092696559916822897227166361735415416043119183446349052653919875375584300516607597250206147896543034775935525870411812322734475579880642158940196150800618927491598699200019573686604385913943905631843968490265588543827548035416184540348020109985665243756212273661272782998043118045245582500296107639482049834517932241327851471464605015829147792588362696514181934816865131009464432678693788661348083002364122470899227040297079706630352705884734762468454468356867746476459667229602554504810745737670022758783349104166592162851143515309788474306238352737724848063281219773785463667563558360237880722332029658557876107883029996927580639938738320831417719990814270644250604340276367877462353136548133818559172692189464116354522685236533412089955148394834499017920754646438966316445467525440691365924501329252762448802477480474711985636816975859888618279084289919650264279602116190532550172647053534925823399064475462590578978325178184933948755152389620606634490423310905493530611388337044321629253542168414494592646745894757851778078892493872623951997100992736409385685325715435983647852498564150179012112480018532678807879453271346907782833730618697894144699876422214159748894703971788791366202570168735732084049346953669005334567621777663397662399943933980986125622267690619549851244660846951753630366619662744944987592538121922411774565179476452756081649230340307680120790528972153348535394679044969363642303759463907804287565152814017450150013038267817624378590105861866044506709260181651548522325808724927844345094241236492737157375218518632559455756901461526255961212296516088648446138617191191315705725523266127119262172707413863111319395638414908638482858701761950166506410565959141884659757387373052645868910256159976332057571422858074510952999496570657894419359610316976521779073286273350136807250843903663897432856332970802783138968438457077034912467059152934754689479143387271505197193282285697752778901114248857417976279133990239847232646807004774297502978211136902208909064721628770753019619481602103382259103506395056290949261472709140467111710178897758716607512629608956380540395529848453572628886778737015349262579476123771078743910961504737363401988049519861721957594280559512864711269811413478304616500329603633491292953769382702208009692092786619778288867276711411745558273818127586466564647752614806733450746867539825729451885404633502776072445682043465997848225493899265025621503749872172078533770118464929603323138323497058767342207587922408626956379450572920908671055639503225324374687034638782295798871659497056617215070025004331729036870838292199968947233630484917387573028871161791095595228213470229933947588072047938586314342018626357849795244889854418039755597769941614717758926249489084649429801923728483776933511158882380655286376851453261080161746088624343166503070034162978252100838832642601679897455788031630551501567990132538193947974574238509108487761262476330924476949040736873184277529276373590338876109781226626785807202320091474080711360117231919016570854197999090289974595503195938648806126291064177621987062698255117243913564955909738516887386773881886782887148186579382839664484139128803885038386184906026732606715121329384580860703640651291193479918528029333140248067309599286976144090733284777395771510191442583931288843175385562326392728332895204926132010095765468790053102594462483802475083961307609119309443658367494247885802223932259337556597407270944764511277156030426879733005421604695685466652358529702112902218865286323654120820646481070734867585565224249165332618707841821863341494017851169818859942528738520467734164800975797711186298415757000060284432325012809287108588747090047305562305289322469940941693442779935297191941940031151399684382272391301893474775602205466713554204855819580661076478220741440186930241805500249310573601809197646803890071685202044921100849167441808833727411370543854638288231243429648275621481499782228960951754387157284093280163785851697052957719227547929367321445102503248509787849580011690772082091539936138550703505106177533449925572632370457563569197643481353058234796087729298528417653291230586583759042934973518610522008304655465294202142404429644315801094642511237775065366852385169722531522494108602833333452150198589776814821618738965744862528662658379511340946956086704530885674940585881355345967902845404389194065132047343555253260904611416095395853086014021683272884506977665860752593380301978318861792157362823488165824558776056343946557568611070194185488745149346710446049168325571554335830287002853456645097504987915133797699223246271341033154154565039350828721870322736097437698311042439390153155569690629411806750427372681772599421065899894220022074454095681631079104950138566807513323188434267357478240291835072913024902813607504597588861044476473052037703999732116723819679202053499527203346305647511636655646991246337396430301831647796388394857270299582654190628018567547149771758624763319651728998766642451035403798939531765990402868625326848936387974206513738577877844763090543327846704245038789043507159778265734234501095784922572143484706552827248274751715084320841683172107271427313732289699050849327638355098024216290965617140809211621613282286641167584792580701400567648561880092987958479264730158841402233665223411360486714615899599779894759123141717744195740652876316633964397699899150311401187848238216123717942579496984303865747815654362961724673041821468328652670631976692882529189783063877962507804735747710489997609509987163170351277764095165201617695017423075726243727069375846681352752645870195072312313997380398819850038899424464672421886407556501220213980566791800654065883069382058479906288912778216013712012375370601874808173175418197162014079717924375680774957734833228665608938491318799445775443265653509953212085833536674776073140123183524978576409848127324918127586674232692312997494834394464873457559583124734826745602030945058608405771965699678429802663070010667307340187588551890816222241572108207386274586484902214151763573695273679319240231895002689554525115886717723189641807214101638877530549687475857623451704878417007045974851045821527364570995830731857470744607308496772464485318972613128326461128436988333799360032891626348529295744709970851716063781160205748609505684572762885215729882782106045005511883023365679365674899940951020608727130860356051742502171270683706992153515750806962603987143768074570283997667436078574005746988876695764335535167183973329391727951185817994361791706523926790835757833635453052363267887708658983386896069086686672611406605046395856824678565699142401685582732282114275546629782131638747156771803935957462939803968758670440280351281829624390790441449700819684336108347340164129272767411099659687391115242932493525370129483321038587175745784157665642591267308947400408160365353222716114354007564022958794166878902060705009906464669884580656947011028423326553898605154225612064604195356517076972233236659147989463674711741046710075531246891723489861236237198775030416001786620828748150989876278317532518549645619972815949846397680124990210333743892714312749625220319880381773425882229642201166489223700922782374069659000493513581578594266744854625013927447673046995458164283425256946440808839455669653306326982183290689322874237675671385128949363621033065287726907356721680746038283238201378102189832867047278063359938896411227520888362677391475324092591552114763133592877031060242764494387411854068561017808421119009527671802421474750963892946488702227183875029358751895562412930207416091164422889472742167336563662638031332163620354685791896095069169865718628891324773077787758585827955855779278877777542181825070715156358615239284338642493033396080700326891057850427677138029761446258765728978920236586324373808589199372241802155336647579917850029567105192924139904028113877239654726064568022942311586650980309360985840354669733444409875445509920465268165455014607711999700119884206202462506581103802614890421435789266241152066766100454831741539661209859013032192647944177960480479054487114818357462838881316206462500134656851995776680390185941385560730585052482963251537350273666661143821245044880145469191105100260045944894105122901339123877028332009545877204726506897201507120387293286505569999359740273563611802042253771848639912314115061994635933774836618437624966471192981431482494216234903286693381386154212295145633466983125150306494279899635834730854007739178606856471893588612542382625257594949414854444582263842861292977995055194132805838141010084236177373744006704819250573128339996975624133411603976740803977767719162658117595888432767629172031752210674922360403742499662849127533440529740083105738248889038911286565763915275697222169392813313881109649232079458131489864550236483499579046088211359992047050236106447050649810379271394905160163337630328780756821200635524510960503812229244092766461997230283321593744547098358470321720062688313440058361981657063448559499152108585257305210888334661576018417422366457536404270503259732758100605485151102539245548165012272034516879016177126577811110160381925069493270160579834988869852004795829948739843657090780309219715625248332277885630847015307873686869271737791341111806554976552039120720535240256614720938868166078794707034067024281340516335904118901295070994509640502163311489309011961734366341610363154159750024879239555657594877931189765718227999000636048726234634528531557435472266137558461216673642596686793730847781492506805919920795520757102755661986786868808448497834102510807393538588219396937936671600079756710053038931832884621422545303735615683161887410944905811451982439075188017135986714503561231982424010212524635552466524460484995084736050112928136772597489631993305764903066120054150460249786764043881224674973324893400779479756740064877367481861750986770975416492653688285315749816856509186768049659794235317747577188250519331448305037611263039750422625768790266973648694613909503265691370930143863862252938969685794939434415792771096840016930880187042661437471569836758018260580546841080663631892723540716260259645296918367734150261759618120530685469142402619203277497496085714553476303033430141870162650176671025629931665191853496704699459136673084592584133042932753561320267718373223255406860210754106231380653898734118875272762280257256264067037895917559563401112457835173134207138204545696980459820374519810103747473813090408526785074343298022301204442754715222104146487867869043103977083927720078852075483690060300354985233895048108080968869801497266128419241118035421011809611420889948024222293031831690341624294768902073911404664246262144571233511993843691454573810132500352263565085290608027223312984655594968190260040599538495468594921122244255493571267253953346582499062204876790241826109129312031322894593058195516561616978480400825398811161592226129521976642003826485889854634874578917029668744444337644534546482504067374207191807252245783711453518324133001415795816657954103731385857210970813338271941975087505185488290962990275167637900144216274375546882138588452702708348862600284651158092753504184681340807417615791761246086515735206180232416444553707509524294716370726671150290438132893054214908725429421303675626742851691478986437462819659511704870133594324071125224640801094441375150262736388773610155456820771768394293848039460705902946962422091722828648480420424377605828534961219609334732553178829507052219127278985206133866305916868973242645097772294888192457365986306075282123201711654077754247833348166633507149208217325322595059793134472679360105805528791653306822522933610197438844552393226483492400724096748160906256779756691428318814730314273501472919412476843160000119279479003231024990736417979402684291851689992468083757040520077447775109124060184063145663160075396435772074687148254836584162660100157516950098085933839279582157655180067016236158612245717539793149509651544319318431071328462247565207760161946175691649949323765679786959440980627554174009997185184651289470077973336754269334752693072841491012526120713391531009981158579580489855531317588360875945633808912807024464748956021493521558591824740912710569849754958436468437397308724377418259555513115627296682081630850629638620956514331048032175401896674633274104772013520413790712492358486359449976820461068412954731101484433088214622417733170734053078455670305912340663689260914382294994552163142759880737317895291217420289851937500017648753381819973303945548339105499671112488080409510730803721456473916666004628918522481278838098683352880749694364650381661462563986158084048566284381840614756154314839319587355097488909964594809414619573934228015003816403485601749757708009271826700305994772254943414444705907636022090819896280715809262985109103641596733847443229338726993044336321702954017988774948393193437358012212134481977102981764340937041892641161683417617074143465198207892818730689126259692032504630356586579907517329870880916612388874011235060652822602252226823624475986042152482405072893287641650453716230515403711560165834714210474235344546576125388374993144609397591525193341812216666830420257360581718482555200466006247662519794686613757526210949343268011065538320873010072807879141000606624578903382142683573903284130476925627984261760625825966203481005510524335203817729589575351211924804668308747050470450574607290612774530643026169955733751413261860526068621636474802909294390982898231465967440420005521284194580767523083103730583548577968105676100947468484432367593826680821754123737751950349306472699965954713599959970034772869595083782054085794621608230996219784452424419943462168064225880778137571130209188407821245145821601133903729009515648698741716200756244989352143937435146003838143221715927963694986777351030565410906784096090155568252975958951978050252609042031304252587407269015734217510944985191379607699260097755842804605344624731469640861136180440802078163488568524591482868130401360183425536969313555176362356299465153354262281747506671342646196577871365363539175923861529693717588173328285608742727494035708020778251415314894637371598443402061942354483759109717530733674392963659581544313284321184525500863112016845730180427764715099363066743533457883840809448331148620395971904475934902756224353606867946824285536557641980052105658024382828028356008372861791783687115187693643081667048636756664208427815666400257845496559091255369755802003235517092711024283767647984802008978213252281917063525166287904274752370077475568357287249588854896523009966798591902888126910157556838265924005852711318271228498202109729784784274224618234605541154003305772699875101284136709564543319571296889123714081950206111138989928072216846776665841495987778588206033333727832646040602696252481906820676974987511352701708981936005086818261702438148581772265068275551210385461430139278235890336186507068113385650845654669250227331579895095422636875525725450953069932206666139192771511655675689570853528766710872627498377418554950252247561757213141213652071814521130690249978620858881127375436514428252959450896762956586684247288282389870889653530672380221941683421408596899833675741271346344969751730829199225612761786922905613830400459911014744461652996651062964781178361875105340545786067223700811917934202014130915732952357702311480312141660701141071458243319244233616744748307640800835338843191545522802425759645628358595392646812437615733232383763678429196941873469008622633855555228689323625076832037132589162764548249850127180209596829859587731677737468655390431736381242750832741509269862053063148755092301539781562271917038688984450379221291999412680775738919454865234019483626784987829228489246388128816139534590728109892262070419646955160323645155020246725856843047118648686347719691070678944025114543048529936794291695123489850457246684910006637800018239517291643121728638335872349194940151177472658428948445822173416612737662164081976515084155149670303497797886258494368935207296189635259116355685113000040732364568277075790719741384476506103782840579823689177844835222136002580472573763940923917442567976376367520376498981165291454443068924541690705820415931940723373786022237218225701395276990936478247487343924983516803518815683089848047193619909705061042278949275945513099814581994224592691340267180617557388581859818865862702817851948231656407533069749841977169825915686823412924511323821671811370299965465751504233236720008324704450272719550307841827644884159892865663981354029087114208779229206363697980543740518640790578248801239671355350972995929008139956860543669258874192869102398744420573312230690980493584080017549804659400100740064574552135194937364149042178176484733777057049297519430010562504086986121000349694786561546524511015493259173385044928716193360273305679905403160109855887145388078872485879833178745679142738585292820274756425735588679744120670970378017557506927727994854499091184818612939699443471967827544720623136759015593148132027131768886970418615615611550033280132902816238634202037276047746249138342793369166505874319253602898148894220399649484675240036769323332507582230666230558566918350397598821157577881231820175446507171735702565860395163384776120533543152750460768501714099244052455041400548995608076869501735266547217495122752491988413837195375585921967038211000255297997338798213947399957639829387570134327441372527003427664642545489402040897909046366626066494537110872743372787384050572377160112668995842377799079785243395511306307230598597991935078934669950356594003547546095335231634980555088821582416511408919161530198836670093638299588310049355350580989231243517610445852519467446228705220468291309573135127691300725399180454908212190624492425070330298479884728345446770593611460201332984260180778367359873741204186069575204983326232533669167857305700053078069987506212426433399288668730821098325792674468885335304584756762647499803394687877652336077935425174133793552191819758360095032824974966080111045539794966219495123796165233231113678248584073316498164621794662519856875501952073532266549580274957886651874962066035997902985520821726319391319480413082812836270150936606512153383368147837742193995518612838010566878330110712548621047329594059342711440879278637044911032667385522284404657138882656307170909942503203082221243670381975352379635573247461339381460358735851080107255304893002455966525303442606252843154493010542255823239610113128098469441758743982081843919374904663849746456071689678475948101860139524477789446703374402626792689374425128567875687308145712441927142057422338556901308116544015696287532093921943588036947845220677429354300112987355758358907360073870125791413137595368953400534161539881708934636874077723540334579238559314920344628814845010431032210500285685316301274360286262354799328194097542219959211865913873931240592119660347115015679204077487850173560234710693679402613863693999391110408622293486118873487463744978223986967880856051459372607836714836034079812390535216780252741526759787958522712724138404963029572226644596352096250932730980438112784866366956046506380450875213125325166282882179957106328008502113456103380235618599045080502992733066960700064541568894814558975280819157914316863697999936989023677112473672183760634190278733305017727036007311778031701545079986294169122928158763603274111292847136603127695774453286960042027759002887708328350653047658380588004223453348882579455832873749789308068677577512663969101277420946225112638415405255985126153936258833307995534347079957779357533481940269480943688545945350871715550086952474807233024455057968952315913569411162629953670016012973946093203522024006896313469695175156596397424409857804257090705924327149380152843346467081780368316623659582991309420938478936602313838692962303196219472776988792140374318467419363484138179104796273999465542037848258035645914811817047421314747043548493880520308016932396405247125538376082013883746336046943014830637294914824575123127692271398490971576390835840022607511962211000817906491482698001326597294803024757813722292242907112322512072146716120525777806686713914793429450610203384810384965709476904745853431933988695084588722952197369921712241633922575849046430530896981702746620168505885291543193035193258733329769243658098694928606072116646669408302426187264417017918129085874038880581854001462300281754957345874817306609614087471922780859067485266292733183215296430778686070993016922696891060485271906251802412014743445452055389228638964840065842163532391112999790609267447506191669780036940545734734537797712645878369460979633840354291077353142243125892902743244020236991561192369479243084781611736142355907109285706012756036456219017423794407538287668918369193988967403269629190323172173616453704643394599935259864667647148433435374796455943667298842960295751436780207663978152934566431321150028503889537710927155601282810189405277397203618757913618592397874174179752687567021358109073809645115151350284536912402831589843146241456154023769903822318181923949466294712146254003184349813401934555734992787754843534413533075604465882452842398591770684151135752896487145393231093768987062309306692636365295560628966245018771856499716165635449358478958591222510499600919085410939612780385454370785408714160704871284094656167532826021468131169808949629452926561259945129835655739069690835968816402215638297995238274726376353588887070251472815270087976700730210384598363441366161439614092584940944289943158911160018277389030147031760328204173092808224983061572707826968387856085757142455217956456816733051112067654548488999649871897774169505686525510537281800356687295264706956260612609174325609357393339956702184318437895815756378439394468770071504880167785812411540748287359797243756630334197879410226739683032243466167386314704928430777033474823225282955604860602525349403091203845706548459111915418110865617146008625692523529255881955197908615214126173600695745133096421411769829019019438627217609913644120742967346947191528527353153595409008428522001794588713864492922594958262002534386086066524964368052956037524766566854444372558092280669070131981353807070939577690871405750016526451068656293215680465726773383757269966191697386391379695851328246213796328712254730969444406152177832071778642784144764954774005449215819586226692635664392650224049492358757491233274342208728232326688979414754775126217668247656228225771396751456499369788824793398329595451869005889840813037084067064632763326708049468740862714243347801612144763436776085543325369327461259960968456329797162348170458289810477217107232764859856273603008846615532041834210731085005844597911852460517635860657344817683809821673715984918335505407120241178779564667751499585907359164954991640283849199867397224660565358484565496280852537997229516068905904278596155920031524455662956893763840957134640898360062481504950141564292662116946512798194157964421894439911987283202358888412599565132002684005166189452152698406411196780857191016524389922823019154968737662503568962979328360322825361163191454343931596473434943353348531459004259560787904310520855270885696651280389928964407124890515805531221649227937488840571884146114895458655297661919959079106702460327431716830132649640891840618674429424722810961509531924192584393630167766719254194144466619458140009083798126292824679136115820167865974309652965845752193083712729454947025260405032069905689147994087085397829877712188137554220958793657961661868276477754177157061065981361849637102750589069174458668905104029443084361200561582765954672263983275709195335438905817150894939450201808556210726013834163878866255947344514168973554473814942852881320124985666923279039612032827881696420355389332353650492164873486961200705966010889205809904125755005160653936551871157363325248596230997078877496885958222458780830889969136578793001320916703109710909868376675096844233468833552476884769885440701234867239622516266927109423469757598152690331707431135662303191660635907049783261961496205568107663965355239638154661939530846131030286136772615646821422837518009304317133184976245810155752165063559753325150601752185459872851751231154914513621334377377951025550463412539240154203318638813998928815506980092144694348468605646390889211064738868317802760095977701758109569964557360982637462950095533896856221296424858640520120422429778146592704687673073452778228024852953169639575776498399673767642284115288433888679031335296166923079552828483559599037305425827700597815003607410997177460956759558920073004577702348485073130515209017063702051481088833922653059267220952295436639427576099766918077608760752625610531521278571451706006745082024759810192605957267742777215255821424801593392600716618405924871653728962381080979143687613091284382035040267225674024277705527839191673291471738696727695299116462745353213416729467026428167517965572497474988790786299507433787901086080213666105697120416820399252469514906858584007389152880190255971973786505078117362215810297484046742868893507208581339898974176120016223049149665623630150945413010425276515341600721229892943643692655747428147266499388347281724230775583450789985068820881910747453573981566447741512969225453833345857331550471492124621719597944793379229839708173308293546623691448719353758681675416012846098674829361487185183886528301614211373732929155895153441861669082283819485159850902662982074305650220129399344706285463207766089104377496107328048207433608968321185613948014992847046010279832241166573577075760153253071392280164137012777477846060114512822505541674746529230637395207965931100296884310105544701900574418551385503641757980978760597478106234956979539561651731160449542225756278932589971668175599687513426712989097303689822252109739201335857988608860341745389127543336074287135653806374721466719414249637145270931678996050988222977809402673325584207859386060342446610359539327921943173508895337181406178653147249533883638258599367333033019065092731884565059465043919136701381371221763550885289051054866315947668582615213417775069756089152080805736453919975770078424219132640226768331339189372647902824859360625966437297909158418504975797997865620654261727826537920518952048645304890773602700948456121359178598904186902927292421456476208165726920124065672323711294819757564213817033690711203758572761084481276985287819399965588886905146396330067211281896048704828822214938269399106783163798562772043891408341491924323718466644078037905441582274312238538196077891095672420613730723752384097593150210187899301831981225558563886594405988530344562402832342741745631949320277069279650729929804182258972394414589459687052824667811324513480032071996438935288947165552857710538679119991970429329034329514102389515318799918848238868313170484305087824050755942875478792990569719871704778428297656634262902887240140145824382404515600683243327095950915111538444013678229919663436791012632747749247441104009910231998217913518152094110242708500415440416763411902823414934696983984534649211873987782931721805769087029445349208340502334331579943867034395964738063644079425691086982274969467060457429208202668435646845497726213184786371531222385221058184478264821852235207478515755526155440773845954760483501226336166130251342531445608478972619864530285727447845633519702834357967017731038458254939999284588399063187808388478968765356011588667839599805274867178079264727790110557829056098737256246686083130075629230778761816518447426520163129181507414427246823597472870231452743511252246770010749880871314310343509711221030929528116848855293940231953686295335030390603927017209940659731558651902380726214628404192006138069588613636367559773980891619528933357034701601375852765182147180205034403448379890156373436047960096841498327685572419752889883888678813267439459304977047723541153390578606285819410687328941845385710946829482685215196538190550386474097218186496044383120290423828881636971328921941812908339363481256978236181307366844386269462658321931713576682234855389166158061904076912311425535017609311580750929986497825084740321328182101923263017799235518177127927898248402970171979939018294009458911160880780778760296561313158387421637384016817330636606923844419686657282160444341004556350739287100996794321385769398402644769942267426822228958104322883304459211578008313530360177202164672207690198108426004570377659964097359417631459700745464463216197577713944124556130237480455093621696906179836499179226108788573798258465604150723022878299221530369320349362959606690439560204504154033559294520012238874045891799042456231604542579597572175189206052367697054985609204171177474654237781039617055901495097276969093919862021497292840335359484236791428703939405769748790584287227881213726482442567023806261066759152851464814262889578433245106940763365163197614735633104892778560383119505865947916317448261434595643465252113117617593525714866544364602094969724173589438479360109143225326252930065006645159417314930546148416474152467334044960329666457867306576694218471714108117662875217538443455161966629546600198695191268799930897589155265253988612440386155244390379989752502069186104636490617695387117357278463383639906922705270028440665007834244497485144967237056508968278935265295881182866630972694853127138443826218794102768198058965519048134362074087315132364209973722163403733585048256734144762153017908666629785981474585597951236944596776190801168570022978641906798076074974298813472848680549955218784958261852443366595547588227493733929596148724959697066818075406533960137127097799565378168972496930224541539828642029748884166406955716821700653377538490674068486970694426741411318812537025113689569445360444410239868786270780528997829796297656112468084109727736898499096535651931847018482717618241231625303733848356427277874403647827288928901699585576874365340046297200944993927885615533605483393885162502111757260463241534463882031996171229117600168322818555435218321560532478491908007484899011742444066032181414599232195262420119203619891953629057686790203178643751896595018813497306426394780249077043583348318008026331090591158761668551869602654464296302634863242354372437576516655990491724254431535891227056989778701586630025333519413191919280640835975940356618437034732606952308073069055596312192677728507143512251895328558724436908143678838548372712147305965018615860713626608694766113280947615151530158121487401007531309607797546263082492115158215998509378298943836388615208351687216621808612855949371377074984803276677153276744130597526007308796188179235608840396112695318045321773121018602722638525579946815539321354758954145467129387423022647532093111163097040747028872324413502392248546938493251136380984234005454247191796895690980904257590976272544993450365152838712434249039933368415440332534562551598434924370059522256480589729386574129939443379818603295382536049822934092614455760484163676623841369093784728892661882158116371823508686805904935974852907963595284208719578120046368764413789828001702680502072205074018399146220318870334439650290927267581495934495788385209662391598939475157726563554880714516387714186699856743679432964563849210658858800702384570221649451683722377054527846853133933274382625740271241454130050739853396800491041497584022226193826629623939026017840437909305789606477596967468671053326569253374717222304496468950531433125327871537751670243932293882319054293143052247164809777955201761656197519792195342847503312340181783417427638814709319401726598588231205477906325602756673813417103530251167496802831736177449546211860935264613308843083479361381789313344601838052046257990284957974799355944358150966627456978872426759679788905657539133082651792082678453234149198855797353843878382908929518793530700267537984819054427975808634854044144775370412089402578114443512455895630043303498766535776788730682955097598988544346656816289443575276551125025371534071958680028195372370098378501866528985146280358475041020206839958179664404324980985362624173937883338031144401749002941582294244040732104215837868349410239833979971334163049544923392235231682624073140189060479761852394100074135087127146852667781325931220226565927674945049094916788282445332439144988737445211609421056603478581758216495825860357883780560132801070805933825137868151280365104382849428894739830497218558532833399765619023636316444383438743098195963852801455062343530864063640351616618852591662564602245613340214553411833694193768368529946170748472594343856094990472945132118731207239035565813681042500252101466578290752937193575819568773433959466922451063005484403579024939716831550888523337118292267916020446848541619510476993298594129875705873479215228586215280457042668756609930781013579981856428515743106975564994612244225299082494996206997142429533648034576542217599582490113640838635291973888792694588891569312654100855889750107994193311557721301257674275204129903666474244547685034753325243045995622823029916493069656690869637257981701717216279460137612082838717264578866918752890039435354285512956276116169676544412045071048666989914040154210763517143568800155118527980537433998072969871967125082458726383836577898003052301875271322153997271518996095386822410309887450198072104821311314973266843101421886311091435395306674874843891032030077257158764215849370044173832752733325322867097718750837917425479859343464723768978415277940358253474206570734613013861850107303269506564927448874248917303786975782125549815698837111864377911056636311852521798442120893019640296750652430091978141788602875988239369871977053938732374464412741696653726291046876665178254788410894291180077728325932057380944393525761520730627715798616589635066537256893612777769104955750919405779873049033008301291262588042612795442589044021270396184665509259427851991063026208109896817056827345371857204985536524111631864150006638786908380778833566474985382862930942182721048338453877467292003747003954866828670508877923758173838684642899884532436153460033366300399133436827858339991496848636078968851171457054662676230158894355005063644417614214288167810592750693769689417892789236886712577832271954212407496051569513822331582769215411435969875043372934337416934560193346523914165386097013234920192873356126904655704114628639239905579171377034713232135129287464114685117479415969992870927464207716079483778482916967998427596186081894061108952913974866595328245113729165275631753349774968564928264038179942660735758019459655069939973308208124459232910424573642418611773776134698889900456060409185923395862339081266275990928693997019204597360243204094737484572237317992576985407560336009757951785878740511781360481668889845119430147526695443311177470104484646316431407558475791643215640003046849935125556609903242237274917238793770521811253741162930295170638677950734894125724970729625321785972033177731478503966193466005769883560214398895964855765318437584563537503210958071807055375617803784906923066252007476840117570367106233034875657059456507546056709971114651412762806476839166363482560782362705792602224209326790404084255575332984466898953486166311494514443944706911783236506143291765666598840743520615182870112477817518681680726551368256786792682232613812518625841596797654855143200268372517742535824579423149233172617574597128930594783561830152551300718701189171160834023838181946793090878839372583708376252897105166049622066039925979510419945325146822913320602391761604242937307146378065843741244900461330361820909544709744586398878151558200246987989238099746284407705118307462328815908380840240156436598043857723219795980607970693689612843020384987726618875001429319230301517303625039231024703439757328867875431715018077970274976519918021134754519602590966610955161340896550582144151139844970320779639090794673642339441305588694917737258928006761602185213058916312246829615422353014061459647824727269714759978282445294139268256244804463051485889805735988965908043796044109063691172328882479479080209834531358987191458441460846718045247310391184020177807112086788531392382486119631808990352763313972712432940105414020028604632037606276935652823330504305484134072698564099132722750419938460976696661685145403279439517133231409817273239678512716801681098038392329357089973880808662428384658106913095080847121816170502699193060328379989269422391037930113478715070006003125587255931498144272073904016175114909400792298041080406789890749943577447538415622426241720306658978506417114712732824684604812974920941955016342492548859162777280806137072169310705947586060576728535294855703963106364892453586195143695226016244294180057737097693111551580969249955343174125279293182065237608866551362003807287503706998842264111051374455747185416148409938504569469443570216409906462065784644412939408788879983340130915839710226276205935684122864690798534942321676587656224170340626795447033138011536676437276893625716324370744512330133625487689145233107907057248713392378441929087657591104966985911709025770483924541900137480004805353100198844339122117418135023788489094755013716029147346508127741552789401469921467393282011906388549663831838042461020132583994333016954265988968687429068657864442040430658108306006330537758824164043056993519341152173439822634546246906327494922773114789921644596618762729325751123428232414898060576252314941027443743834039477425180128458763827027940638962255520645299621204911401278118328625426949833908469497711060147182653857862367801719059500500750333885670042475300061874025624664878456381928428082956383174632254803643681149918325802810480262764269813064992791286920103475691804519788285843991630340439893469525700773501918855567496182153787480223529733622233747507900249776043406076566871910646675637138970344598960452201175835139474671800520697131227212204759064976619831153884045196495779545986072506756390316109969373103889809243081687786965760301996411359583264690022529199599872890627856766487001055453523508547457560028906972689947661928610182823917588429457108834643368389814542001181586512280617847648812291245713035657978527316218564047098687725151122539440397943092319859902032913143812554239148364125122658362723010887823811340059861216815920720410956879518431225083994223518274872079652286842882493245106101705671264708711038017597592651602966466431225235783289523057376827907466622122980736809670582459354138467616968799639201896355261751451146445497521851114577724622184984723809494644185290126798399286307126664536689881126800487951660388771529754036487940634843129571667224146673861745054555496765158556898993179369350552171065306363947615579301124176583609796919718279192329334483289920269751968145124980617825592470789025819120417983631683682772673801954397316254771302288620399268090395273233434673646343816305235970644829411167925141726306893043057576995643196894435113916804660152140350846106416135195887240823321171687808322288664768754304748108794791160148684910663244687194533838653046305522253819671776407133963667134148875114777480350036646619549361468713545857363572998553236585002377188384944753338217561704907832709529387421148368224836129184869251786194356467090586188580426244669831763334173302768468444744063253500146844318606287198500291285377907581029087078356412833250226028163548171519982975480145388866405626461464847233626601175623499260792649348886502947543500826378460346035361106498420651429834106155934916532596888694981445330578633439584255993686608271212809979076728731255950808070023372650290182954830646400841974402890232460020801425963842630963396859354687458627890711112564502534333755136049087476915726250792389090436225628617191577493851957054731766482784361276905913953861341493561174748940630514740642066552401127314148708838017227894790630922336477099554796922736086209129331055768575071382558274769762285772638401364796768945810139841289797627260669138568960951886972698079797222226227927454269727827682386455321320519372835161221270637445692155003692675024416972041544671774683495204782326726153023551953977379851108483509343674778372086154112861540104772747103589349914913353568663981576936920498234405656710743967155435231438624752758501063886412938633727948464618926548758199575489609014607094843986299078166173475488840497621317141097663680799740989886179220092055751264886685168934165145345746099123204421454457699058400221143685663808509409870456182422790747066225162415685854924753537254733789608572409239910031249299764468276463819907174683658411445802573141199708436040462902964807967815578251088066560755584780783659123184052078643131196159688314811169356069890630104320711769680874506988333468344358128487700350923277702201844654887766582565762048755565601870182381411223710196844188494101855828196795722069808786282131395299929875042127974537022002647536119440998300780561812147285776684842005577340007168203552207739152161725048380595175230321235747751309001920360190759004837807592528815420654266063526933690610199949242791020895477473457833731038241395009238623052219947253586881158581235255561895361785535768822243415784718238699456279340270529373879861842150201777605002552775638571370098194779170228847244872235818364506391054349521303501186286136736504894166725209549782033511471758765338252769934555379557810092264676484489355175406622769672642500536902675355777892850736300000177676129869606119449521283674081153766596999374080122291927453441116991617803621956320742737606775823715825908572408921495838852514312618250914643043346045578991714974838938001547161642970953296881193493087474248013647027773816325796333039577490270150867248298058076558883809197281125839114389393069798322669641854966749228920525464136670087498253720116254226786331652368148817272646952292018388988396646812772847866186169472183323772579045262085598058533324421654142294369032839058616715213312877073283388888019763918729336414227657885514157287203784963591156221076111912301981840958340795431690893391484371834807638117817816539511232813331565369793416461566051445718463406176902121432989420195160074146446200546485948206094381783954882694291436977134677411566201058615301238970167571922309029068650938674101593422051230444512710410092948221725832671740979884149963645658940207949959578084096863052560383926050449007586056166265454834605681732314921257702236449404375730252322498686685463349029524145159252457088966112775375751412559081415579703652454726103596470950716211738708167538137686070467261255838550600501317747773285827615284749082243857140414617466610949681594876226787116006545478193295426836655953911265132075488000031060378886444323588930145718511323719966907726104760786027696143652961694281518087322966078459667970578300822458436207540598307182119412113139905494780671700515427912290391684234441035955945526853866215709391866131411091558891979218672861453707401361253983407588317328217146345670257418418625700454626548081853141585596801735108196420384426791498156005489174959775698698760782140201334321009285088375347868997290329631651028926373130893721731813820096070271412661787647732246930860167383952283252788077491415101524043045333506779760310099261282110749135379525930138265644104873995609619455188379531321814177457318414684373205607536144004753997993946553669384939499097738597630035958311393366037622020923729540741402999031374874370367240328692740119225036360118343064448729805746804762212482975647015113059527645336613446399967273987523544994968057398958337301899500196767797542511070367497907975166933720971132709893274465590433713667821995190737721979896497709988287369059297882534408161981189224229689491442675301695119107655070766217929698540928859375066766946752182880677386745483178278538599636685798491433378328707698630408190982075403642241736972061204056676734880760480743860496326022472397338280869114259650405255105142658851766406308877103059697564934011561872924950699031105263279964230709744752767470600408575639014054981556654657730653432334124383490924813455173774297725024071640809157571167166131001214887274108024631334721558308504198084543148261358188090090205853764823633383949229504923668591473218113717103013550366691279394339977674120956471373507017199861879065232707352910875096538793676586265285566981434530378038727159583747458945064086287348888108022570994003477291488756640257576705109254567788542297208553653078452743947327459758214097759935932519530005253026311799379813514370059598921263797719178999484373120426375647313476526624488998187643252278555870579434739879438806801955361363490709354456711482331184438531552912972404460555615556446001493774181422960161085467942064997143803179052407898894325244019905268441941471392488329029531864806267809129034973770898451037570486352517890350085127606052697945645105157736832584612247756220423336599068780823554008149059043395956954012712138500755510998652891846930452503897986179566623984794981895101713116886011474971065114230453272184511814842422244166605485452278038168938002090270651877162619618636466040312290710391194041774700274955746945268070033925492201303022771275338900403337991067317841987059674781268699026436858161310050170597570192427741220457508996604558659939952282137377788150032685576927989956159101041669948044132605849643262451541566585618082862508506245697109261540544539354028888643278037726477214512613077474984186406496784905240205207552545619280890708011317500597712385363609919362619475479048077144459476281306161290092882053673730206324620264233893308994829344436306089043273131475299320813950163835032821432089430127882295885316758634868148160465420193940049963532201695245941750952638235742092265164897124989304846058469903638304642187389037174799547453130704371199718346371553503128878974028661988158728069584269350998686055607915821768206236072131819175686380271663512152201306414107027558714566355562012716058111617572243737741909741126797411117722366369207543272871802637538938130139932920799648429482769193372163486491789760868000798622545984682840169217804683285353123995573218889143176991278143642805244269405072413050567385564050108738811195450950067403187630905776263255966204559347492691940538596121478765691678993910327165956730314082998419513528155173120185335327588289047662136469197238113914170078914751891336729632907859061605582375303476816071769383935093155797264146731978219421173522069495851978276690407365097805611036630686432808132788696546618923075875587661698712379802030084562689117054245927308008769614848168686561404874797006315133155513522941051071568406274930187227329337892301104467336777162137696856721690738723451144398322094791434947405612968280106449670651083279759765573582099059019614787258552802217078656877642975417066003708752879655394187052118634852974359666377989431855678731363099952103969637141586744783409498972875507572485573077269408335121130741841763708708347797428576647529935648819388496526168481102012472331387038983126129475117299761251232090475241069110722383935505739203635127221528045345688940217695600167253901606584292427001723297402968694057061113967992932861641153719314886936133593378889617272339560982419482311796409094521287793640654962094741937273326893171929451178913828893470863011785696693144100937126560883128130637573910050391853358047882750656425573421753996620845820428088694145646219335071968929246467869433533271441583283038408443425387677299712765257712197214916563706634414514735585612532553513754491238557514672074351707743071358614189129797490233550669108340762999411428635319023434899838619249633923331557753627560734403523324892488513465839215926251478228259670387763886443853860438365420836641965212837922630534495689724727879867160198909011428876522829935252155006527429650500378419908412331524100230796491201760279646159736934609108905602313466289108996590798370620261145337562903401088316269675379291093270717286310473796948926801417030032328901486705348587005627235008527316743916966596228965663081275841031909428917890480480239475319698348891992438651688701515195435612626083571767439458957946064132259911356013911885949549471536604365214881496475338763241941515684930468869467185834463565829135284964822334929011691307722020047378823901833629196990604291795638742712155876196610961438931194073327044044872766453195411138402084027783390274347092239599495813350433845898850770203480503894860474568363095506261781750829417181265763553265508690689420118500227879232151318195889630594871886038960659906999378206568886710939788027276398857846253837743532183849135504811679185611167709685399507780224507924900778125109058771966994198803150196492134547889677975272755652129222185015293395678289740936919931426815461224085477045741149981574331446223997981389240717872021377704713839855467385824464504454543445183151200466854979446808048481951358064300854183754279093787058375020144795863469348674296265407937470282864563689811164775918635411915654451108915288378709884213163809985596147343757589797480919879947987377221267896467297642298472976534994569813651765794025391853600403733442612160322849355754212331036706707135046797383506142553704432691807601441332076614090938498381945523476632911774752096717880408797950093428944689236104788751012133070801722928880516471729158744415923964404264688636502124614314904943076896418972342950004644729721793624894670719400580230764226314401849072377825367587672812711890174379369290734122695437326917724893850256355641199638835821475440907547512233074682841831449161462452600925145276968497511855842293998490809507278056657879475323991199289762880066167584184330814648555233266107538575288072917127360759798874784766783104024259537221092341205292700314364332047663323487367900949963335524869368706358966990811354228344985944851237850551557817922099910792056037241762772315552110213782792639316323401941486634793186182439224162744111021308853901346297331537393235243307839272478710289385955463124117465198590884999733770958089508897960895132777798576668982305308845961293720188815051922256092638090704967881894495538444227880023592128671390093779390635081583210134186856385598151197220440539864874146153116863245070412810476287960563717384543544648842410728048999663325309972874359598017462761850720463183582720788860777498321728024649010644416766612288979810651081848590632336754127151958687096774739429976813063913892813677132270721777370459532320995568902122461128853153266950237342348796114837797152167869270203028478404972197645758944374469022128775075577179786282263988172051889893193728774341861613019302888436957281458572341121461329207259819975545057393890548586313782484023910278636758124718852509106077848604148010453907469198991898046609104118568626566724188478496582620757970375540598623684869406010939514624930908921274151745123269979392742788830494111026009868502079789411656715800895777028502048474130979707968913084013594778253957576855537268026175283199215062697734044667615022353415770651687842996069798036384840772288377286828941958193598633736366354283826422659072108330787573512538597280318253147393097653945262428842205195283918017230042789281620408576302891618012256963788322896200313525162714580478728667732593564710878919109673743463255114056406646275669273644057178534100406246849767670824658242050142495882887079126459582835069634654708317295832176338382345324043322677295985323758074266744519350190849167210465658562131106147884842332443318566924922670129030834991448178476484039851693176021682362905174492498536143347315079416232275450284625782596089546490942995178986167347888346267510265772406039061894293976818167454073220339061441072520427335122314874921918013624214471034006319756023260396293832356299350883740445949322789334217772017490444509471188329554565952813946297951539574219988331500095494218605674383987098268059221726260612179069201323069783848530385886239139744186419756061536537646818075574952449523906266565451273339205080746571208909416058460369074631152732668789113463282040964752862642745184188520928397060811683099895580964723780655471380337085905956695496533078567094523795435109309937166843816213192807570069501258560720073835660634638854693978312685501766631162342121345593067079392405383181166515282088734716045125783133126436697475564852319093217492096611932177320666774162360122746922558697413236446294761491866124501852875409968186160027571230710158149539085932388820151084196006073380047742486928882521376544077117248395160161375267669165573793599629061166049718320592781596496526534840930523896597565193990835530062459076066634239099810411267929190045054933683740082744858532117427713761488931389421108522284677594359049467912739794074525472165226587241851257794191881172165926999378419087434611891612239381732231168602395050249875556660169965886668614586750020949031267123704714106749474043066522688695836550198355776600604835887533100811120263607026527321360621565939826283425941098558831623014412240229894368534560745915289109697859136892277471991777133763789974959341533598984667766625818066277172480998645717688672201064417748253482205730250901255509313552659071135808452366118030192000565675240398826580511577481887911835760008779527060846311590251920320196945755902876472579925462726128316264480722183463338144443417311708407306538071100640088158896856267684372703131373887645487411291785588508739871400625474039434916784144893342132212439649359425993930945425200172037318912859397663644654994518101829900580727595778381163105488713163247924831346706514903681588085006678030548824004994589592422948775890120605920414863017668066476106922669845219182579333934131435248145164268102048849047741603924207306475700483372845878934304247892036263560710590969440687139314863485086832482039023808079124176840015370417261968423003801546384626912837278084668053114247129179339403582484819096609040173814841665234814369948000849893302590067567882993719601619980880424077299855501261256782463327880369478439901059025279861421143726995002539451686661604516268526783479864054633077302081124755918324731170548260284809068561249435745699640842847025939110714109243114131695826211347458590915199300177256566622295496748716116815094321425079426272211191604663413552513582969817718309773367846974262097132078839598495981440030300666255168062314796971416966670400083760407381302469837863946944355462504190924101823826653691870838527888055759727657174184075932243142714785955151336878808661344398945057568721121858965301725381711688088352456776704718775625506782505528084073600873624054998594679173983752919444303482316989761254609902575017878844224619112467100963269351782293945394005057744058430598635828512881516209762086872098953430466561443563576108499495669119561844677671930064951242178802291802085141934331823224166968742166659024712313613083320617230792534174006149778581765783228571063630945225241423748893084543669422984425957441411273298823687451704264955994330011100173625998156633058929123557117521311951048284604042486977613483925840802825990406651699551915773256893203457163462877975107394152295806106459991116816372955336283494597290481143501721138134552927759899797771818776139373809295024204769760925163636030360944876407168169489692754706885328817142656328585361742043602164469462818031775819492265063333448676507373326350012500536318017519495291691740706735756752226592321809745970792397029590032263293513496947741254735042986086298093238703609013002839679913534243339265356139251739115822213340887303456498952718761455125253001159446245512469415534188687414565326888130381216991560444998664324818542449577602154484823336006337100291008221035584717242641781263150875581599395454030348965165345562607455653045554779496104893393603493976273513314525926904500438486638419960791117674014669546043540907124777947991805307910013836101813055601459949112523589068567433633668603061071766630350399913005069667503517745165283232080716293133538065502773440686849005210240016726184134137654204895058434126687071628360489442850062254304309534445012263935968974862754554083851319663432155565957300865919448729817231071877302614628595828928398949861506876713476912812900779307207834490522723128489117171765304922826118206457370512166280367228563552407055551450878476797071661673033995783659267873172840241949266012277746818600775532880157626997883614959722149602286054331957749554821949826348931370116872419407049952888751889314197528429282744710317476572970162951673350509523882514972675567818205712527292254208519498817199041450845185096931418915312969127733253127992207031433505625314421085061066575751703015194732811177105600480063159575951355690480334761648930835428965403841542365552906629088634632598578898664072177626544883480664137300245667003512210934156109827331080741679598420722184971679839744954137595509819056685656225716819807795395035281217924442199926176443909092986711350085248233838429835412866067984341966878594316110592531372966194881524401181286219312264883428421490530937133418953428990789861959983691631739652278659864055026918871240153211826342209275076030222769490140681178546362556812719387514673206457200560449101650426267319405445176773214303364466134696091200511461659826769576206484387560651369226293916267183309918278052332641085107484117317017115324919942920836600799917757681349963762008271135488379714915033206730839577022818858162573130057205773281839866722061060363279883799835962568972803539072674722831409721309301763068378913044481239862406329546406579417468585862718618346656435058536790946465985270836799370750194223789194738304238854251074746680689453705350315777256051220110117994007766149472561214505467955778780180815322758923583351797258072500263827440015070655041655489438720685916193063417849671188528474431497561324073232516707527259285191775525007813485477119282508436278808268019139868495050890034311539128392706677845450981179600656378503167444268942163241827996119213601800263221169837369273315495963913882833577576058389347985600612679552752764108028527238033399368418070855279381910327773826551257182933374333801080639211516321116116085466292163260017560354758458614356782369740018594615741874604864393201343927523252938101866741948997533718517244817477942706591216344537639278495615498175929267772588935005682075125653283631881799908777579425278006623747379874777934170052479789376154898316918949553066235525780875410964807035647331908464436000655402223927973853324227233684777781866178316416504050430409408202932216725241761685492937167849121406398251747976810508008731956602821403037682566358049638052147662903558445756045349743095608300075972828478607187677995936182598167872314094866606814037562899352806710068327723102219620596648571904716245322713088980270428787996913859026182713033958948200777684307122285095035160504722103199518278268756921772165449398306477344822524163422519720500170076571715777102586356779240813436813841756334710158826925281442826985675644078542700945148549550945191671953661971189197832058417838479846490248781457778611149543149336890776643424181838579854520312876427637304438954911727187769900532624132211085029092792070700229681924575672795828138616617129207402973855104425590311680570885908156203645401994032444340356171023766016752563046091474203807156001609175539291186668393496854292131469362456139776522991039203201519065642434433393674153425738764975056254303373199151828610001310971816216431061138892625907032225128886839104977384398898220060054580612098768315315031510313060071027985383949816296205940220890961030846513714485808016124839137522736843852459870793552473166866128301949938821347423478892414677265698123051214652752901626446623719394207929504119267118479302478327262211320095434413535929599257260286710491446944253893616162002603654972496581071726179348075948269899453947283722835335492714033383690773458153130147182401303170815172276719366190909446853199259672050364863102440351332494464411205860295392430612207045658025259610283850545361753678626657430712210456682526592468157551358139084935657305285766085222220321431387286481538830483174072839024209050294982198855986475401482760155534509103496568423095801423355831355398580198793649938865232257406099445820593268528788550742030428633951618787598863139055974983646104177665766382024114496466761161362478455130029639925836463004732178738974405661080105846507915325860736336912665608511683088039674958868632458271964400094449525496397545544978154883170402008704611729084473421373408780720605359578936379728766316601227660785020259012580849570085611591793696529426711474906186475734564328051475338092181463028288990790764451708261174745213401867373839303536734205387955590472375774819235208966743738154672474939468171800959970697363566855622926382549858575024078954189539292072131673665718854193075786032896119266223289078332809958653549116268344150463211457777592615868954398983990642116123901906721636584734521313186725766275329092962112341792018910162452302355661986886092057984951520978763575401576306875065744440991263354289096151630074832389126259874730448676780025265094238167988599393385535077609152780277163647729872837222718447566093767354256714905001214684785083119123046969776516464907066547221374275573372851101191421764166069206613260815055937379762465400381663596616317108547945665086314462776930008431707765069324895703005759377014842240179341193789700409144107468501564968597072252435980646937597390536347960774234728654113047069297562056393036380957304287679355857715536513945242397580595452912957059816954226615074514178088452651394319327287755138636232128571145384907955392914999558439065561044246896768780436706473018204954145494956075703962269328175831766604861486255509215584760035821439796780065822760301667494884437948601211361855153267336284105606356695638336848642846486913438579524564304303360325335346856310221355767616448558290386794592981287196100430773212227912329249157938661046492883180868648227054588973241170313136460935568697992951415777784766588602312035750471874334248276618954865468025439721684732886217365491949562725184081792953690493819659321097970190565275562258387678155773411141659599768372427003800512360175434235497546583693268545045608272200206680477929220123663335009447342397267209987660000047613630256339556093415499203517704034011941733995516808560383391876193255323427879087562620914762388011229400852933728874334238864319231310126113465403421980640893390797368398375647763467530396123884415743981768770292872835209879380848129373538982955345435190503946109072929926977502837389605693846232779669223014228328183968918726872050263172830460295507559630705422246695771931678552305971776404464995564383541701052161454401279043079450489512104266872108899681481990838502010129253496870182211657772383735926289564400280921366789489406201011226091787274126807808791063566564370114693635971047138470878714859631840934272117317327077592016196145202432651934573005090573321250473660525105420014706668686982713696375232623721480823161228399237919598351152355312377138998254037711110057835296822558584626812873074570160209339261567399231673593768813119617426015221146832750533407358750389186205987254733483157448479256895541172338391025926344262479153614269700021267981159477952556697133469785807225244792806123731575686880087138670022264282959498258848769202922840502788047175912262480470539322093106358541765809798979367925058822562160997608660721334178889924776328632598824631007025035888873151369392803773379345710142222079287056022899938302109301945495284991457751732153725352335422932569988312497050402555255808284935758340984317843819364542165902482430865539332973997080778602594388417239577197455070336668014033301280980332897425167315588439426358780594348248966225205023721870586786768173510318108153486146289061812889626947930329028915500923088832014939884679098742319263934128789745129080864087375837329767506559842300311123883036624981774164263955055470497488977237578035461068572695397385264123975995600239686938056957919390654409577444816031393136317234593132997061556567959055807042412035630279216916601545611524871041457093000126030930048172806419583596405963962982131983866514091399527776212150455975145810324259232585339908477393750634452871830468776914203204646118611448067034823520758770571004341486472203661361866857227624975813085872536775318950209730095897309815108848570570242354621496018206114622007368896119921649050126721212698414053882129692192610036519725339984000784656662865510746322817144049731137853479812428683904174464444597484913326572287123532195276268732771237710659595747932715529033202495840436760125860702076268198588637776360278783550843047399094728520310994113792380727584002168218336476798400655580191067374511185378030066016953338955178073878892338964723782373555066044118715955746100053347284817737376458855576109858716112439136408009393591883900280310984215549261317540622020368712099470905748906996477632417853370544981699479508724527484896926944955004736388132551089378683610177132927003760835138418684240417565363796843396997188964237691606611370780681928147637439793921823645777771947167417998977271935314572607912007561793638940481845571925918520770209470058200508459778694118825834677306621654811489156192337684051454142526999738510746463485831002573981801042133775992893366191604745635668201444623181056408973344715517780557730341319346134204750264207676599465051703495904683651153837771588544591583741876965513397741527369522328088831037990588597090964631442565430086736358503583788341875863762763492301915387699905125237113284138488190042003551616270657537731156133899241398481939357083957081345229481199546070896981449036978295717502867324763993460576999692972711487163031447450257407578188553592796115975754186717063110910324884758868900594914153203348179427361804257004617951278500401834721068383825537340315712223513557280260122827730965519498671258373464232740175520954167230161159626325821396761830578267301300896716392797773827038204826025918158273687440657297213699552395153722588871311806669958674234832871288210656103127461332399702452484473798674985844144961563769658923991720415587300500923185150530529048816980033673379159242926751269279957685159974377242901053965606615920316036954190334791160665565558938228867726677274223384002523689329285450482764407888504345281646655280540482448864297994503758054942154741616596975508968509189337994698793662548190343884257261230691046592165053278175264190219533593212139494214140956271596533273917501308279982963281299463867120196244068057420537232659652463095801410943126973242663501876868628251990297684232810156014830529185355793558878619026941206203255895747428629906416827878254300893227684395663898123979619496701185979840657663338038826057835346819047030421739764715009270340896179858547627669499062561592990679731248356723104792484764296398826853587721373856870146685550354864796328587782879451088823065967888291314222787612611155193439969861629082154727844372991136718968210922278892297675257372601595584760306571139237510214701344208815331933898330148709481268569762595216337882157425601223137838023528969518883550356087005465576662087545111529400499229440613743948406346301693795158070429098474757168313017428742862962037146180873082471599345691788342821509767832477139625202352748519410863786661138220266331795217897357620871396201438270069148394985340663132821385661584514383140218633887513534914569448504125709437491648176272583742609028671843480171475023438127635868640690911042913515786706211949593894008172040090223920965669619799372928361679200466517036639044661721978780939198123373160106267174416674521309206074979393409225798500432686967192716784756001454167455896782454508315581762241351097075966152222386317659161386933224848192065290105151031494630243259698638980690829695278044853697344863376562809390227437875883145209952707877335657188630120393059417296404410585726575447836163414705564000447529721633635335293761793000713164701154534046853011643517310978800254964185857885734170406475503869007974139592869880767725947830500297558991433877371505608302249974988774607753636496720422745586911042228058709978403731842911994552277273717551885111615812385726564013816768982611705640671291050842829690658094599688549408337415969573449048757721913153552669345692007078238289915102460378923970414417918177068471649988961236739635074056523133687150163463805723077266671549427570603856120504804576691052626591136191793421338380350861846174355861480356409016081824961308291813578397908587874161062910695843212218354033722081990230988792981533404889396161997801223022358002422970321832431885271315592502062678358476139135786887644067430655685041880076769625503695649696857822799233794973155868621221421293432835697186290488536984225510422028823074124280394764997086417007082057094470408314560799047255124769079219491823808380094929981020669748701291980161901182871099556049301185981553585954027689623683739919605903845992903546978834605087541608977829829857011809537819443869776612775786472243544806157893698294286319599999310504197358885855683774729567149275293701448538877767713413988629730784687716364664075407273567436473248470311252377431663183653571642160992693294936730497316538011102788990072500290446032069887103281522930129061205641637510858597096318376918547429950912625597385723537723344481421736930182627653553246394520698112956888312925130288476841904207437729863966404581226434070107601701449589874214916132636035098244794252144033500045679540391280555228306724317185764986906337445088366369481533268163966871476313074334980585530142573674462216496573143473646916374482149116814560546950347273640701889545424648356959832279250980053042358567639813038994759205937055114914277879171901057309291226135076394923129853998390825247957305930786076371931628069709077361172086055935626201826583497332632789319566027993781380896556852755154878732386450165401568009355147622453438924005543231252436865855002537328133291455064930777429171016842968728902489051932009276127472735544144903231507273776001033380222966489005447221183081363577391128245464362994091072982805450266835621326682797963285253434297599944451314326471467894552943791752665238862656285693627258625307873628856009353573988013458376686335521577536861138182451717889401553112780149692374603729902503875345479595683614090749285493919408017754480994521664243004585437816268575169860970875462325724010120559425783933001932469078012252499367033813296613207845475230950806170104155090363402477866833718186611398234043782690667020489324157698383787037745690813305135948086068082372737934926420788559480153356800042756302852425521860473539652036835648141594631578310439131169626916757888233584198534356186888501508340680254553621489923768519260078787763427107882404459524684140534353042237163513303637109287075179484867789751914992775868607078062016314359867986753357911006571213055496911743732519974768185168725252249213464078868966880826682901690916695925189722725992885825146081822355900956176870357862453292506878487878961571452795299986005006509329549249161906119783761636668077778209572932568540540142869826161216713812713712621101190974882874405865106120189997341242198945588734597819052511182521673790519293724424629036935425699243217900810272848768454250717236026274723683985074965237779049816939892164446781474406192170041437456279498702948559032771619846605664779191086926155989336713664218230868022477590149693761957807734235873565481470766642752236614706591383241413835552892304079099966606118558659648896182803494252058695177579057074333404064299212772586230697640027837951633535886438957414455320254084047231102305670894518520311425319399943680366490691092106988591882317552873879821747553450164197995789946447673045612157442997735313792956583196910920115632622340049195131308265141864309286937475769997925342809435808084827485615534118880554667844629668611563097364887658777216080919772713980535155580822880620538063166349687302451791075627677169159966782694332949462518865778871678251524590572979446274379855732659071638322919682991382366259881942091917265092448472375719714707005155475816701005362435598124261778174865864757289744787312304596869993903830815351331423050284958188857869480017575902064624067818511061269823281706753799280798426530630734314119949214453426261072705001725320660914836914328646322348768238754304058002253824454540983952370066526343179540455306032570375357825683399562823179220799394014897338671011317551007341443765990048906788068776445073589910806355404110294733076730929298054581776414781493156022815396154084414725553049057902852968289277635277335829456880979454972860041710714889986805800532520755630750278204702320946088747153361573441001411288946763612475810113235760799468958602559080002063893987897136132059469133369775369836565156684141029294789982473996208832909544176407754944390835062511998337239224174679968906119163414738822459959109409035759178890271392762628617149827604769705924978817124141892875281714889587421495016476682087104406928285124299959532956362999499766113663835759129110327329651804099175944317875331156073594976236040008529966349058803413961495191031296536656028829247545117003166182854339959132362792807074682558706721730668609550092988963989886365549532720244343340999300827041766160848594099833738491920183026896031221352424044702633497605880616375553134939803776882252482485757471989789530393981378122590474690497670490200555945122568815500007734605760471243153571951971757388282948400097088978067478268505764369975207798117468022654449090454414810388648897855451399215666665402900906310317468728524131757584702467951167445862352695742996415665222359147886429918636523770235932892790102808222186023354357121678556010500625958187840575527410960266069019289119264826017822004537017062901643126409224231155139650215227327017843976944811352130523103615451178079821945417110167476753892496005508599259021849609034960841822796713728377967480646238453064908563768914385351984461377884925621716803935805202840472835139864895789203093057804824308321406527862087464133907379723083871252420434930222101892473423378395096483835253129135894886410780690825045133853963742148254483496987777623660669317288200259250330574910465634727328016044944700170589551186495015781616138527406287750511960373038107866222797618963907953283757094037679638860983624518191767410674467156763844646145294596585171305346180584341355074569722258060611222210871406831031305667141658593133647688961036985592009649099740399890034107765863573950992012341777032302291502903821349124713867918370967777059053029449391913165806376060555498685232318713068308707470600606720898059664684955721017777860275941664246916753464859345917841901441171605034094211303697745464264009201800788501056646307348931019131016352033352194841836361326360378363185997488577772522795083176670196802429275156086447706486778461262867618439185725616670106491423515956544448365394621281859482846243828555191608482621596302253834535382236496124197117932105297298741878156937307385963899112963910686509248495094386312805795302490292280746117388560796592992351399932272674890444201406192452624640011781536254708228667223755895369221346079813353426638796267242969307514917958052806933620366135129553919782419087466080305124326950192400720363786618125799512365619258852574867113097396238719207007313980986020842483982983294516680076472896173587664230707941015005762765543399355047296165865305558019949138425491282914471277359459671424328069559441605949235242534124910511169940879388627040508443967326691065546920267599277971373327064408194926301689199240209595100798408583539524713767763700007763350223313797652718568085601205227257237054166983971038456776387285437456316031073563177555851254482102014149394383895889142187378960395744103544928143258768781562386503123622164715979507928480153608278025392572157078897947483169735412251041123528178861855940672302877912234943757248789430977337032350589435350747878632045608357279254088412001147255871139322452574742286849425311428301940903997588312394729290044937677513131482988574206020832217429036852310050509766527314359110450296386008541670158343329642994172131684903893181201754828160255048164176230749861575765222358255196325422023003331364057455290013225461101304120512097096237290784002114225952661050625431962014263747371598550582693427111526385262616310757564203204302602451816238217425951461103388476775943731193053451260460703725879785710401433618116094600215441253274714080823129161316068552738659304675500856792654512963689358609514914088963444730483681912879626429711531049279092885834722824074037717329288657434737017197513630107202900980869680537418867611547550154399143020455804950823938332695840964372180451280600726461110658477780457476950407623777678127068271554784119980914180576349440142290923819898880391228453794059088975934672986791961660199748173903327043268278610877688804779634414217366516955343479441274811729718520801613054131619083520145092647544823406552069730201700416323449543610041306139771839444900289035503471186031342156564221673831392461542142955943950409331280137134024014461347330397447785403094353601977058981700415457125415878967417960565303895357649701672597742059912741649880276488940971240398823747760736967397088832864973032283692026447961094198664437943858980951988408382007699450588254184333859706191737788440211157945437754585020850757791494242743558212892513131924745688058321408240573792118822452734822849129209762982579094153701469806058179079460120439159858106251070303161628506285858751748250929359522097823684997076840210924435853701102264394720993788722697358618360559730667106841009847912845035333004874483065881627131665400937745649011214993535722101286241988117181103464303584784887586837345888386061260801240916181205409383230550042403823386937520819869845079891301376548159545722265476729756001160066467251042345495028705977746974481903567655019769070512145688309566730158737331802942428129897253035475705740389713814756828497780432982926831394299829027961871759362606228276571740035874043133304264401107597189297968832058101952520185642985104063162631986663991132903934220268735673668803545352097257345199515758906674326416502686279489091704828867404970224506584498653937467014073193104922564533709621388757156966572185792680508856443148956528469491133555270850286282751461237924257967492890255633313772223946867909318587517422193498574384484709251410307173277675166025683704777310575414389375648762659271654553929502957671841327004023841703219666907152859305512662585011664125464475074870080119025170770664187218215675176794790212907935900014186279556363693508538881408492282935312334197997842957879001737208600587015587832044203190376635565059582663208999710758945591587326032887520452301443145290190633894973120105554885083740343675084243046425299214585130205806112578790137241297887759970558124817716668625963832314911511184206137159752269827070487760815691176649151665871488120378947965436673840872723079615977684033440266934934637666022796151718946002349156487059125478929786315604787897716865150012896581200977448766886316602565281384399339903256343575323408217921732551706786647347558933659914729621431724505123723079369119975889655928000008302956644019123479159042884870063035088866985436386606912678597813593781346267383291219400111601614003023180036864098911334727713772744926342135903238961257509112388620093188885177226656344850063031206039107216807978139851104575040958927472586057989870644715010009194712341221785757962102375201207744032784460007192014099513304750405302649620615565977798405161477301561460603220248800765777275348352630811043885933227348451233215055284740090711400018667116120779511168681085240108564601802329847332168145233092502448718574691349375156224419740759702034227549911536804339073049802668584043677188256357251000521376539592696198094920343403062753867564231259572612204107075144178153038303919445573508497297832222979459493694355927487566160728850036660962865606043564375166380481501327461613641133307672835272329238055074147311838830087670590246399634713415433960203025300752116269671431742874048872193606767888398185001532645655874313380616600207390453905648187247507596409637639316693675582178507742136269195354907935975621361078691461264902389359505683381301433588980838269029979149403786849237963535737055609835281323088358118857683357570433988989545304902344319849799826977159214992101816490808838585666156642394996120019094686231972364549847561747937440550503311530967545835412735715986180485531788148142568714877083504671043170872973069547704759371040586668918291260318457535572175146190312260068130925079955971788138058244444942320289455292033661628605477167875939133456035962217296865745018840064098937726636235115443197469888477582607998120135919637728523997507603044916163954946950555740617408472724554609432712385262462315096590799610222736011622546590353871105997710512177727540950768371362054668260408438322987326610236835956004156721197080802058591675341727584041788762963298871959893119775683072054474499377689898978664911683299271627964265428464451241072323836036067017550067533676801556197860400304472484393531732767589025807955357147557875295315485757519405413320054270358386383901440447593752751179201415221575690372688226086716569717271565986519562075366355194312174256481225464263912509053762416570224484716774934556281634511501162110449287617630154436134301320990905466956480161111176524150688753385284185609066201259093770313357066443194236243314519956274573742832041606641035463481558336968032253241980048347190486783289972729990302623492088871484855866568152811715275110678949096911617877658075940744475283973818229180952416593483420988466597601298231269080696448045951957863133091988126750624027974684745223692904855307988213413228858309046606152424072429754867880448522420721203821409210125082038064175770254246060892220192733925832307278712704305559178015345503869704583390900456082466462696724203198714115792225917479752134325512336370093416984039673356246703408451864217169558902613630259063638802822528317085969857160836011370967708442464633018509608624491825594402422353523806016496510508465918353701682265842208592980300422770856236477030319105949164390130333235330710312395458629968263706310665219799298339843831134926778658595155202481674082221680453494698759611910655409776946895925817369322337704357168161010815115946602522507053204526500211393440310669453485048022769095169101911675367674731070542759540491608484513013116263197830400992901040302342022150034807162509388422879692412811394870342201707359114794293157986751627299114120009035231041390849805777028282069793132441467122748882651674037112633685178604583737825155812047542159027868650185660526539172499333413430630872685927584330458733486699051824079804581885216899802855974856309377895873865342702022958285545627879902880172327133761319446171282289276401814982995582091532811096029146121618223531441798388612944913771516350152273692237136101303076382741787829037580216760733991961240814958179001542427000673979767580349023085356196485839792401543687887263438182974868247917762546210521311888697108168308484954712158588344170564618923076074364939278076887323198539799460522616914111695215706901884977678541669337848921436159964826973301377871689414568948146795481225454432736871671700531768576183933015415931017957423937228263491318253618278015770930389029875043701679776309866622292607210844701738881046176493055629275319281094995814603992220453722227154405388329045946996081042874723274201412840652418357670687528568878866014190546815871608820644273750114775776258954108885214640697583490786136539947081330848586113542456665549349775828375329034436343649169541727668257579085651567774213128713419107232659035727353396523162090985075662634959057316543128675870130266684622650896803655665785879473571479582834745260799067017722398197414303435475936069128814220977878444097176170556604140626530494378967959144286162524312339853005101986488261800254106309425823057315652380295842216644616987333302407185357246122823662167040201690783275025834423231494215859364427285191426603260194443687557388860023273575000016310921766145817929899247326665885896284101094564699847138913451364101938969762389814299422318683500145296625630177872497779857215398279611412689206527402257386478958290696594124872600652589072300037441081946116499849404756815520018245688037472150107031995585617917761101955211801071064105596609987692253778169406397777814257873104776676012725075772727213755646822991856145540564908088425844955911730134866352252510280598342340478027475220730379365196364303995709690481435318512919350229227464431946858976297777449320173945000653626779220587227395044368164046584487817107936374974417544465552096444483934763324721488848979016740711194492610477961382960558569771287992196900299585690375847256116486857543189788893798112859523926025054954023885053125698315042055386720283019279403578445097864999363445617073064936410975257504320859312413230969127843964651034813570578228000421545804359744595093600838461347144647842441949843872986090284542778266198986166829004430203682088871009585780778541998591307501890239038457088168622953141994123712926297963490522578447528733900412502566908942125607706981759796568639110457111934185600312719112061573323587464307116602180907759841621595325562317300455344737768563068608919413687299048553941296941299417495483125826219777645273858336570043953845737403398339404227073011316990826127923349271813486401468210442105620836188713679274549618427101332840509567291361814531021946983036810284404159293296339489022484991161602215153089643162915973665918418534316014133976271346302487702227301732249282670494095467250149371387729110989028442579406395486754816074010446470399248315926008312806230049854932443351770702019179994117195372075516551178605987596830177018040227559505748800366605847835016487914591452801124701519851612555381676576012217437192128541245972214649510185820431609388253887365425335112871066604477505382266542941132346153190141435386733975304656335730693817286617041491734046318619240071271481906511286606252724863079913319764136329603678444145178691926743090011992855675381228741514055027188377249911156561326151879597517138876381885444376491690777927703770136254434094837486647278352567668477273681380702916548114830162421547200825983095347610073400120348916830765685493490677576675217775982824784857514287489957462490969465012710736384764764919307727045005366386562823595250763895487059475600739909417952227031859543002422958608345023909742323409132814268446683872713250540303579279876453635577649200627291785154289684807637292045377883451254477268782308844475949868048704302020931280825577078744023468083202279415071727119088912373006768927522675499347870265458951132806611608737702340697337973928399393262777520023058556224907276125549639135368189355433022259317979215902796561416884727686958284539839120319315964239290520732418234487812870543254797991148358090158206483499882984825416929209410051128113389550329896538886640676342815554959729377723062718166226408385377603416610402749016901570540610695941431962692493042163434148339213835522748991831323561247912164550160883517456847920927324059131548965141575555725200767138277865104652692912108658648384293358939572499128043254176541735092377542313560135644267544876189202080971755792893200351951035596984464969915720069781269279401889477413279683163023010633712570098056535303537190322886655867937502737970789225392823103478973755640490261908293662954254219629182070496785066848476404198016275608274773856841615146160553799209862579279245482984395066944704972158031225557041927015415001229807703743801997566289294960458437823393821696908548393506218322243537803505109564403409972093390047154105994882530140302657864802829167049846736745409668955420337996381622993866170220664826054790257231260651122441187010131119094928116087283980366657408937679343472306063889437977807062261104379483238220153712819523927573810261228534040170298088728874285943130314007962592612049763852936526997566535958533483383290939379791525650276377775979443362001063240627010765800895087391613052397299827834882548467750383258705818174134130050733343097349618993827048799564509398432446035057554294872859298922694624422081745851400629971483316856440283041796967325812787459952661828466792180629927855077702637916532857641149009657926873884308077813047871052806807643537379921020373281046343735470161636057098016407085499931387362634717784553344729887284048647172816575944931600240295888151166947089130406497122495601439496889330204701344783819680707236683343944002099308913303128503118591461884135255393787837041158305581163801129378228900552657148484849209438226851952397867971544631566466119162054942046865717949711250701848532745206022580130882350325110746700456443335303344633508052695134234372539386168692814872609656658432387770427308265101914134871790855716016869814369680477466655857822643299469906672998057861441425735083105710973557998923761666528341004338685057857068285316126379613493000210288846298452875062533414571025900951339723473416565612981318238717360030684832857207979248615632340211035120818780652674324916270341493307721995700132352131928630135139511382710839526581343017867120773861771733973082498325701857209558078286191468236635627573896874299182198026844016285121283070234463515723383186015708371878553473574718349505989867640705863506404044595027152115729614116876055637060525434438591846333366174717201542656439854984912568338047217979915602659286673155968412327255009313379114957664688039339109282873218871065022314995919475983797306892546287639498396744502211731658584299154110774560933829158906056419431017796551167532731292950016418988875602158854102201343281962955248072669037489606873192746985177336161193240838808926074214745240385496393129646557343865135953328106653230466435669852150603863188020124918696615056125722969555822260954296876336178374549409018096923419610286419370256496390087015042945881091327982049058440523439622544352150273661813220752464144891254480853943634421331297848176568320738983216862505993437232964260931205932366143155709234031708329346345266300541392484160767931966594074263161989296056317938400289882101496158379058944448909864652168825400256191122358318829244774029665038743609587717779855908953756166722264749923490766227920384946605859874573039385581519613334597472313364960695720662660548196003908516688587403962146418885260849545780156370160917519664114279283405683464244964871308669069967652482481201496493598091213405013673757896772895466861648073564437306616447172305809532590258234461119042701489265956741493256531182789679566258564003187373786869622546997148002795134784789533648983584815637562544286030083112638759934010234118689513733354080915199176752469630367335999477461678936363031880836065480245378580960206750468453354574429097752732914365295307029345633830710717383317304913913633132346962549055453157997064880308293786826024786075644499430249625486986121862126724373942737546841827188964407802411266074452487627371136006355641143705608957281662928401277248539489404520107294262993810247380551276307186581136195655033695445652100902188938037638203173467489547575370244411139377865296560760164202553939081390860502668736346008642569785169542958613033335415331329494898476853876286111949940092194520538984706741143280140836635125660821561497815725812320109575075913562173440538473993178449225951747693286086359712974338570861913715584918459993366300508467442049642530905264655457728353753201866794019334761571390604279580819692715338095910753479966727382758276662902293795344520987161397804944945631647253507466529194063564136955912841528453979823661748434575332682179811669829943570965258951750132563647302040882578515444496792714223545994965639985604525534692645150187027590208282243704534690203805553221295280326358806930552318588927164019381425180213258987431556604595417794198573409184814990162543922678602637479594915467023869044697943160154604058878456654741206526593927454026881315495426105306841696156385080013994852888039430108218876068315751268824124422083336955976073402872079189877729478802415785551618819692817060655739436242892570970362090542129133760383722909675752596205269427516625640816954310878880829338778015846952564856644853333459594523123519603596293239320630689390986373163625930992879870819390375813615749003045517792863711410000872521776077324859959284970828290993152541808548595933715162800708066423311867624131028871969489613353459913926640050977391971047000336006195973216669585486772308245034286852844034148635349492514945759703706272596375606738833115448958295559773046754343516450553289626611133872615294240782766107282695013259632276949566431383702847247011420050960805698610755256306875690295639685946953728362019328436585724943080762304874412846980526322122200842145227303322710452994275299663109819726319076101106139490316065153003050244861634475322425621699044330762062319171945045389653067359913089814440473745179068253998629709804896742431040453236929958555080444633668218640367408145017357049759959937959217672979143938902307376613283342555683984096258422702106266935786376899970345595997683444034635548407961495597600842651414114161425292115593949464165391764114967182595614912958923186840502585044761037327250569289413760132748838882404720403979935777393510888911734628426202286758539461030337303863880859144358945307122076717538773958380273114615799411738385569016051755992222805436605052124953532076111811481184829917885746186444956612715075769009628715922613998900751576467683348881006493591028650990860532453934328114299099638200143752797164284355188075462412758432828529988605375842025456083276218254266975702485177078901009160179189264157062622560169381774333793542805328419632977409109651622246254395078245100601553555584732281021636653475935912435641687967936231040220588717475304361412247659396270051499960429444022663006207354805754571092210826396861781129895670905464651600198277406576876857674092183673391975021091297642888763055289308377952033318726071471326718187662697165874989986749107116288032834134414220228957255082246104453204656583366628956062014038202927262204577361706081771764826284451848684685152783621120325453175381875337364734556035303184654709486458376052987365814496094587440959315346627663515984481453044943554435966508501739383136844224795660796330996772681536166598283246940155918115112198950466233319479800000085893276667772159286050939503251541494155037103306002371060115048067114454930754017092187658838487291277982751708502652383346617818546001415293604501571190868175177952822496177716951547988939766280051617749237580319193469301397981420381722489610102723301543392210921363714438907819740956903832974129741144231347653561142257214664443466142522808220051758899579494949999231648267859685556674510833249923149983536799817035622490954315501725669105386509015488426122089632172107921931535838878504099604519170725481977216846965852097327414763250800822760284606481876655821038931218578463600600163090057190943027898097143463694056817739728329654088065961459334089339023640105174907192657996573523776843538861841293295365724765861684450328326330708386994397071221889306096031980307947355219536711958668739684903615780147755307798938214517374765840034193390132276693566711237247672811038176342408409186437038763789440225514999900510731600365013646973948277605397288204236806849619200043333710036323186962582297604184131597769720615788106055585270519758614047298754431407214210170773520771400145029439078830563481504591961209710077945311152414980313617256525702560405683135788383635341284454987242396634706465287308212224430815602496074907470113582274962911807574098932507212698393823325287346299567786579154641277461380633975595579131144422334655060019546391626464647494586778132877287025123839592754691181901560393140563075615214569847628968208161326313407719142582084468704055427045327893959594325735892182630524919167384694738012461307038607244934322338604419817194686426609852460516460574066344125461299151710002627376167006433615760809259116097540310991370348812845929550241630910951839016804394754424361003559980302138944581357404817783177929544071961276800851113438113754607948487143788875995558111577351957069975678944689580899466136096800268468194430433821458767274510957787513232585602947828737104950095858199330577587816448692276499480941427833993769280080582516246613614044333332050804320012149427280501319856952037689396030628882620471019549517766833890775982052347673841967933559195938729289103277309073188649484996447724759537230204612669109252195263276348177645281214793804621043410914674564936664925036026096631551201228793666895708548376995978493242194956743651311539657337951270195618570680489806743091207101634499696260158620291270953443193279215317764865394963203055549584907266349056653589870035883865274673483185903462579529294634600599505956752685980151994539724023373358204580277158326143001112172948137828733044756800253370569571276920859771019216372908238706446938481823552027553739981368349745189825479205406546738763795097087144922541602019762961780736716776914759293854915972193636777094091279795357162960720618521475973612937611225960039053478526054910323026807834673118147733154241408034438090445685052068481138012654268833051534871632412920592628970444656422181194123915937897884018811989570737752044702669856969010475806103907284622891874103175938722646355781450667943299569763513052272908522756710064518785530558609122930342575881675212697098303048409925109319637013790322811564092916286090867680825810233886002504003132071275812496722830375981209728724998717574055648531743680307839847673312886674085537703194746049419301670924735696214190017724843886651679526004646452656205813718533613540535111127489624179855910080559254781984852639967215808271997262728340078949977018349472089319335248101257913255602084964493027105942385345089170315748217691118833359485705361238193024913894147027570788152134860573380990095017831004884227966407302764808084143922971603991224794463224951150094670514359787843123865212086709861288704814503631551826021579293012118921497487000255042241725338852655535019737405515929604236968051405682646194889908349490362951036614634125873862482372451886376734020681261014131121116213278459158532354920179528492873452247943894432009154188026453804614287357069598743158038545533327377486805713556983309510473401926518362504869877780270099192869086444284925149640965184565483302276653310447158710279702209366092742860278891045909396036828361234695056769245591117298841755461966300640423340089820860700053717198108255720039895503036342427422777747877138360865543773608745996778615571142759253180406536655372775799997262934873958100501133949735917170888146134389867991820045855005311659479054057020075912721105572689078143077299260278044743177862391319137601057080599165275962826537840186048663416442593961024878933572933709287589257089647473857079992138541218061903798602606878836956265562706864965199798309117916225550456397105419088875784937948297559962502552280533055859166661980606719847949458068503826566526112758018171008237464008296049604181208527733781034368615932197083714719184311495841975058229291795160159636601891175032751613818304408738363197079403842135188498963992667564884476625336614129923170414306164908088971848128603779627434870586951836049094901705005996855560440836710268253306420598414241194222763972137708552158324523141720716454248867860028399509284855526479237049825135591619203645720318909144552516050828792694113781266796579132651924256506819911659389667779666755997299212573717243721469608727543752281006327524037559017398873361550214874910423200281012208140605111593833090431962593831984305173435522562710397699223206181751203239432467591506984140887757120697441776914613496552051920720427899856481261928360500268743768237551997548685144346057185599541875200904065121102178090234138691213628182629906566567763474980150541913641189503987184715025266754849868570137749343326076049755662047529692728235710358691015866949163697667601085726524846475877490923800646358391725044173146609346271434457638525259268440567862792952964218671310827437751193945323139988178112434337671449743511074514089536142823712448561297102135612515656660350243381401323414577297919331884445124955938454688977072608990171032423850187678040993199569744395424953292874111814496829423510364073310658038007222871375708120174548776545372776900257709117888947053003059822628201088818078718892192975533743605270286608024320968877485867473455561723836435759531163314454729135849615181608181842580124797026320704324560357027524245545129495908845780641414046247334991931949899264244629875248429930297088912703092978438758225744314555202033588084381105095007746445164426778950309446808182925630549602477425033566501832453710656080739444342694053043482194643091706631548784256642296668313058394717757184339712274253501391633064612606994559379140598151783242020061718029296074171524039035023147908015846792790025401113232242468287350268686979583320623026258625402678349510170245719811751722175776850461864373402216633434363046782320333487217677970722087126647948234762712603341193004667016670718610756590818801954786913396775431295590849059057888385909248558457816717171064106279711072483919274965656823350404188318759895529296250628184007278873631435027029706527890071141390710281340729782411662673117726810731251275981587711387522078141814769177995661055251517473721783887094071979376686789083418249396750812265768434135488879366345849429281799768910899829052051059518714665858607715192675167556145619533931664714197531330894219571485986635867377701771067340416007253078005206229531541892850421934210714768279133028946207580228430294848307216198494305246251625554264403723649636201132300013261381557818354614928023210042566832751460137763060575052994174767017760220801063005402505553223517270037548714862601734338064741667299558674828366859738268026722642413154139889691063796528330378142838798198539256584038598043193319408503527361138253882265859425457209972059230863495808302646210078505208259563790217599279758380754859603911449786807483922425624017413826636614033199818269804982992942583419011795547911825391797969570850685598750065099848751139262794978061886192372666347775335479573759915053209226952203804988989564587508027090232245348711680620314055775282110021307109919392128897609453580136113012209409599252183113715845973498394113140197350090293112088487780148344355226538152908675638532582740048996635219049969232777545552383845771937199974474432751625603210158549961483378899062373331424391409885571218020576398018381716914604422363656386468168218341491755101354905859943117989688808481953434506525948523885109943506042978728753117284260551498708072578417662177991668712733781534558397302084497497671434982576995661262610626158651174067818899692888797157734836385440917040492864165390872742976993096991066072686573077324897690246815214477312136481582644834827253605497201859287280153922218243317573028247969552334583834621395359358203522530025215894638319016062895069909085726401337191209176670594237010004224163798915762352478299728187602616903662701454715596715179893902244947730921980358922254050808810782965982649904616727732593855593523406922228602741446392547353932472424215978328827328454317562343701180489579430431644665018333163513228421646332319265534605848427738309320691031674192074485390159359755123064197504394558229565844040628640137814380477340271530022678462252766808460572645707003808229895248050480519236115194536013109127797206970355984670305818893498613341192498320681413928538167498090191039496780795771450619030580500564475313067087229111214099626954561012828362237953177056686406871785415626103389568580280227858620676348593481967928056056244110324273772811239365908385435960402398164330569820257576529105445716020886440328061743219044592595681017843487509080011049775621460587988807474658787402154734965066244522505488451689419961576850231275392957091530645488954358384589222315984663255864858067425742162120191968872871388249536646910543463071286675456082179344064503606720916109096951723296931597962943011741461970374994062284189879473123171672484963716176971693823599568325092815526711855580398913921327903973488349339914346323174291868615626016985159796631542443045172535720184039882918862297097802025870878132625489519403247022443454630894341729106506820146923654923494978603785415815707088805721383268472159881758259810915830231343668010437353977288356981798976541826719258892280985760034497381274565180182121937622809845422824607330984434556889460634464558517595575245094690990513873198707645107194351442955910039538973957729153135073061349458144865785569262881422076413798306484110802513144989652801336427263562729006816333655677835948906088906061427409475575959972239186800022945943732347866802136338931317108623974961350564667821823288843207783999163465052886747886647374742666236591411573796595040087028138771564530685734987026219375970897382884856397744456554910838617757888784817275725723642323386160370329088430100503225136698341697895062268592216074742842065490499662794350097974674505346308648967200973316333053875919957288923518967945034615431409039097896108422648453133102339511772953938856616550301557438676458984095299393938055229901403042680596026628812780156930342060384352694285121974154479367694533168832195676402658634461735309279389979385679191796672346270611076445347409157971417534735278670072277505636602225817687638881418366732043575154752986511410867513683323535229286880058195581759666266368152573545808051252616434097690423561808400797137234540395248103147316934099257726935368325729867846292074056722698261560173957766036039742699038404695089901471064772772358516091195388044150743804031376486850284191809799501519553600347892510497075824347174687357781071583088216649965465095640666449812644361171003512257083505538061018772239825705697951988104901137894838875808848331781195312273965602264749689465896654898662974032042292777077387045856212252733115498608217031272789496394172644813992525541783969409636098457302710760540219661347717543734316404132047692252655763643011177836863245303476853043921967525740016090734820216338317225326077944581409348437227806922547041602230705010058980838936236403411994303591464895457134222315622454726983415576361311894163342892833045642272480669840539117159411922594481221210301313133278711410650594993349416224894055702955070608433406495100742798791956408545217878328154104920896422408204955684475504166974728716458904883445785379642545262489164631958783081070556322173578608696050343767326481230049919244307801300985411393635676790376964521071007879827000365488012103586743892658254388836850171927261084869599258031326251538794973320198751961989398244844676474674518880653531014328989392212654529901484709809374570297236346121931903853402098243463510738760496528149510013668889592432034987211843572747569956974884679844381476929019244589345000813275908581521543140274757560783959149594946274253216085815352945842878199023290163013287352849882687119401999039636160241592391679360512734540783734594163084850278703183987701715741520448168050005539805309384098128684804239789301972485432565054205148833706015480415828882627996224263596937715273470106026463350660655878474172767254447374282096175989790205290166657520973562729592834551176053556451828052067527148447467144261831714403586704413178967587113463635761218587639823023914337534995256182848742472428386216015605055753567929376613228658424860774125427919092189971581193060914291981190046375852797556816814523148714636340704950846033559238532451921293842177041741692582887815746094112097358563663267814370346467536986997601480149622671069641709506929730148892834178653955334681953633624292829419475613298561255488380694951675369332400684786280085134571757080867558824553426597189532401442623770749003857252805552260961597021052484095312068627957337029216982044883789334633237061289876604839683612256377329788174896400501382898782643764962530836422207064545810802573314476863039749212270811710887179378449674365777942802384675827379184949533402976683935914737868332293154642622678938944684561229002856888675646677068607448249197123222358534793088763277275469865776754803188717765139052454769143772040104417695333742547212209324280189586495185609138987998333572754551371324013504753801537700293522371506502789476945746368483055428497466474150606871484259806371429991188418305476906409360390305348451060547352720153707713009730860244792489083267115118896832980738902580290803457815660904846806014501876731146136960532197336938299556477735631136348914476060977809573204932333354151171851812591237093483078892598701977952837626190107788698640197053257857183002682724804653307372508476066485762020080463295403295632590259745607836199981813088811152303778007263804880805421146582937721876309069921720987817092620078336747664963303383183841667891530756193702644143365836009791190040789492564137240631626244616064732178812994094526805660860456756280338623036027281992350555889705714601584779464656573453551104617606886290445905868236985665081654289196455439889765100680744326941796439128299813886239199696669495978216838847682903304614290010325485329031541031214951311800521276063586268703598379284413005873305944620657375656263022549348929889309787267296024159304511100164457688138701878494399097120553583954682684465361384329614448731239137783594031850211114251603704280897930638450503191014361489668408402046212889796882698135327570081849488757837028529275642289486911751629935594791961099661205597085659269186536870344185715271178788581618829886486947766415265946896694663834730504969026239984542360742555060054193470102392173726151659808673947650893776848724148019572206146069624476684428668385784994562671463799841281166316335825554289931157176411925927040200265253144528542224733731256361072666263277233151011841506998987443672089035017320923965494125317471926055696525365646613430305095324145565649366118641161828012721606637734509642152178999711471798180156241342554290957979192865775688633492885489031507421878795208613292652708523472056973197566331530969973901637929285991857392838644089181690715596836738972041198428537581260467696313945394369358302697862822690382296186418800609085787471988846381955701416344845325408798726386863898984430044624567084245454847927413604885639952020245374082225271062217040408182368670925511192723648407863034710917164184304289564160603105255181308988510781168829282968051137666826817182219238136864132229813769966943147176208882640223248440489969303913767419465723703221989625465651864341595196664879723582604022437950445723497439551214892394163453702666451279986774725388928696197474226170434363005187835212182422350519955647091803600908256131750190600837491901667656512380525456075514589671432166663927177334075605073803722446366528557079795859067164651436899366793547073838595864300162174483218959659852949434132803024338583882598087804675913158108335585804778751377898589933616658724350471400519690645869691245265266923392688287661295410952046203955417096331386622685175337240167520796973949628004877022109478847902326609403754908585107167679722318944172665959334314163849025834489383075795535629234453150411701599904891369117587930025763642044829335566662057880118565669110954215581261246816900203971684626834594442414465681921163176272764247250282314298617437147596487040511898056098146153343597381407436921526479203265897292803553092197890112952053708473841191427718438884947465946712217791477494342285864705650038087190523320772393919085487124559443899007421606497616537428425029137470208860647541166867095492726218744659564599535391443184015963699936156731278880835978928765047372062548106829740924920252693952869935415887642250122432712882388735433068690611531560747334442827715314663525778057522595270804439918123204305244370123709133172454250854352951433183064958925856100757296731478729921870517923078002211965713960035499445052137431153242042573700132578788960697510651728779720290432571671777064396405718083023017077883059271875890081449439163544007765643349859891096813316292683750143683425494205784337760296939246264261764098297633311073867601940716141089467757802802570099281640000866898873199343036558159257284746654235293345075684461235698588383343650297800583134940185378739431955477022274820291302051520684685744389522291648373061142998229205868770230354028333608224368580801868401062270277730542995622227112512176519580130668635936853371025931720888771948141574868885368603837459799278761388078423534926831744875793149180547647903737870024583956027072267623640218277354453706732002792941199333915913715462098112451769801635852784692876936987536876450323820600070505206410248717537280105576204583225766090501596863237151130966706953515596225381882162867356755346082962528713758124562766616502074653606812584507638802548604302648361331874361193374394252668985025837733523635710169849241446920130622355369320857187924930049922603836358265341853890264774255613946767293155443483483992007621708837712140577311668350659888364838892526731794961869484389474420212182439016039016392150832887139945060831393987018803676251136766122106071790042590567347065521426040731912154220520485232024495170399049427588269298235617728247794387256590357137583181709897119295247274458365812933799987132427202960593988607492782530416331905210730193613152149987610465416346419650089695633577271696238407351816078100711667812124859505333042896015413699368336177755202168292219837173801170573847912682345764697316512200784552589577705707518183327028623206276828668158710806004725593623882576761565750644859997886631461297365373810426091326424799315323195798680576668181601079512216456228908291470806255719489173694572257355288108096357006509635725638159852029940334814829551627429827957125974497416697859434057815026160077038936585113057228451288466170069376801435712444303473330055600122644800883628785931046029519459529660098017297192607981681278654136397158536318962311305807291066679692868537296997029377174112213204732632017157570164568669169838273583097656408907695143502724116864727076528880052500476686154509638334798001660850744557985843981807085823393662486520133432245975393084137805028696203341333321668532337516739987547613215843103769936104368942665510287647817774570279730288453199292132278998975275249033224516822873310683559444644340629873549280193011633660949657540994288521185030337260911392055025286240650147837858020902340234638444853551946177106552060351523457175629324685974728991911711408027020893730391832584658293004676976355992834041510869003331232018399243728820276965923271694690520700301236479865049989539927398595399997224538665726311146571441736775093097892135072982383652032505447481464094929513678518435312688518978493148581711118457542067876886653728957538994677635537301614377874598871553905011008818798976786222370985879930858760286697914581350688320916527725364477843091697601500916025752185109890578803959760954061262717241951814852559665649314642549903918003006382131157929040249686334788918439626932136465167718462395837263385715074851005981596443074375731488791399746650352417685507238869190588820372880375384557157618850789672556777496808094166658133783248791802992655450228372204772497789864567674599385071894056467457456041997653374676923133002863722537158616993171290797098604453000034274874229476168479590651610544457338020557515976863510432492393296811267808723042185070654125774255559241467984257661542344794480409249959988071175625610305377360262961715162880371476208468219831721181430749689189670392321853327180676488387252141300727611236758489514483755316710670545385236581265486669685085328580693168309704444000667353585420871689251021614829610919919818506119404425715909986119041633288887608759697219251647517440157437398498840143969574263949296663592549413499120219715823628799844258920946834758265886554519691575952998992196008673852642252753645850421622856291280647385622048742638341695394821168318122444288067710543347806357644035256182396981088431500005336822975672292136910018904213483409901086049520939836637750629839258452987749280627983778221793275455910281702528980790438633102496384648818277102857583875829245618349731029370357632719756946242934974065320658032578475144684863466383666977413555842642133323725137722511499920533164038059307550491811696912677895290331171473456398260725792803477343401048764983340386843783925566958695315218596115811069480110281626343004984869881198732416042862806973953031834443922105555073823154901789413322108605357243550088622681221240101415363963835733080454196260889277486984493969496336623953815600727695201740086316433088250556926931708378325032868566113460080749953622145464367638621022642985657024070128498378712190265888755073595593550255906137369033097283566811588157024246503978593440778908834808295432085064789968779037607372739713807782098554213963853236550017105404004884603074707364344380072139721957853636402624292333157446448975325548562528143628438057164736111206148902890569503338477166172744422959723891297362849545550147058124916714025662479343694156376342904406344959964706483559601736679831370540990312867800279639433656441152389749483499517063993415992877607232963105671758832891014354321698238684028995015012322975692202840967174249805820530538279901254870262915132446003394840130767358076171120559292259001884486304513208246581669461243681628646383938037407369225562871991904123125437782090738711054485693116771693731194965102605832468853826499707173932420834697230561570920886144522092381043906743350585017469023543947598016975389140850187133814554204491179647097579437911163074461150402799411437106157522452168978160914878245078236162924324543729818315199836928662368723105804890266701345556585097509753738605237950102377982130326992129646054055237347807549793649212083299159937525581235130937083010157787635017478967319194506834404399314156231820061609581288777576266052843370332126122707643458438955423322884458410316862152634506604133655769885015004403993655899610329599667321461854999605115692346548371874804206587814861077542032964449023849966465427024613875506514587033831480094192806768367570079715170889731573390310003763162391061664966510630631749855194695085479467803126086156896428421319879113706503365605940472142532943065817948919055803844081963377859198200943294999637771967729931445089990624256437327001189367682374316822655711627675870990202472184446054951281410432518295280068200627121361506182881337130374944663141101431467760314738183246933938191413262863602213042436117808760652322435431831963271665751574534509502602890712709057796557051439620575801711528906688747323189455573766144816763444943573556635602822202636443385310399360651578089541386124877911869885281345695334281667042266891337131326046120956420105753869091724355730368776861140260692888878621436759554973942686680839948714436048638694324934380227284499504724604713926893656116806495094335668202884301153753701514131633435524795888437209248682615515470966993647329184528838116937903035128137942199525489562766497475617997407620281023966791288912619697445121956967018416601432215991060346142022274360979090681894034956913713967183133112297424390560113785525241281189978793803649921392295227210686759668195328458933827112981178379087437078705267801219558683787644205595616454647821948675418058124331468264594609131025231641264354214089589349383504326837287298732424449807175082822252305511665315665027083532913777002874631205607335081008318120654325530661035729931373980627382694414051874847632970624503704847605746061284891446183865938273025371000729694068625372598970821397607658009300290280788500496332088102803266412831092896903391391531939181958283820885200375686689132204601536309032313029597845369034566056948189101917146534315183392618454564203228231490115326824169558058008900523886401879792764642233138451562918366756579481236346963085125377421326166350265062816876272370881973774998815555125474280301262752356721887459704467132819097869869288623489896684005931811333796986773046537375983540704545177940011176292780331388216448657113595816535777084625720448849884789077874821623173999580990340925036090888694590929357414524745909049421638581277217171531499085260091109835787093468036030776743945320164272419559362410078457451501650685245521344871853341447011368660465897362075645182859351743108264610329900447218303813209232048953924765588950255996597429566727984047792493696938427052021423360677487732113641046449751939329801910725526396749780802213492969095563722995663364330648995922438571236015737892788370197085539386553082070028618402523664175458680566450766426525825647639531712217694267521949071866023707764835745310025969261461945665323578003493232353166321656209290886385453584834028387355205110535085989157974372662578301260442698283744072658620488483254957827677235920899911325266960487081672325922675411832223013150425568042695135147115741371460466621276574579300575784489473813941494763419006708811907408277891489524573250720767098632390332056107081846016279009799174046566292393679071909229836763981408802590840203011506374055492890250085916629470079073579997157389150008898779771301734017348990787815253720385954770364849876277186218927411518930589012954125822389067776609906430420206668341861911786025005108814968057504067992518910678064731052157844214540068609504467886986582149542836132156586213767136002472827937125381453317389457472774403670602693623960426028759906028304313285455530520213477076368762932480748598636802198923863691420897684388309394320632433605149742939875284699031388239053987484503845604410788623284868343706073611410191572311874819325660434564467896744597235455722211735264728705748242704632897858256872327570482467476143612114509416384646128755223044228085739805679567322935767494264412353882658745704709189362595655040382501682165226441140020241282503034060542912498617316094259587643980878327268796433449618433805231016853863241024325304177158738529360500855209940527949567319631985378242973619456953484134889049625828272436219554169494326085700794347299799796691317459923212937776005374551200278466416268017581765031914075152833928491166556800237124977319712882419666791056516545414352443398513173263138206948560721227805814431473738710741347678262921879673940827912764544049549358159597376441968410158091234698856014302205304595249507618302543898987837963919354813151602676888192153958688368011768146557935157938866228158688216594527085128039492877231213241098685916666877817700961241680269296288992605198802818236586628263596032136906335701409897677895427386033123786452290079787134312803620936232690681079628510468874463300534658157500867776993460661401344965130321425535807987003018108686314333078868161750752218264953448671591341912821120228187807090241819942385058168054851255973239641260384889737570440281618684336466361566630318995806420605284772152954593345808517190196350883957758651026313595383502573865316523193681625648077938776906463994652852617791297295525288052604720292522126318536871389503422977934883792845113450446906430277366779718210891473643673544469670616947347099549123908380462199885726868075492953193113797845245982317258961682434344542430126863368322559602447449576635843889937419712621973969793955173132176724580350336018782410286297722559895455894593840782719048863875314026376882818534888071708480037031215738680227655482922710381837735395587554405363052791891910927716911517005641609158226392052492551320678231531468664753859786114451793120833628087858906363016927144875087396022139742132817110098199654370793026326395434580531711732571538193606170888129189821764258164557865257050969717095659506501639062016119831069090232672621634857441125090347234127369238156230273870312636809977166169992499899311795805520773394136808089204918579774881134156822660064551093597390339426222954316965500551574551371826482569474840185184674587809643179163984828024557818532110529123944873501350983446564303761499554355909101127938295005992762101388360410925958271552620201820256323352816714651465883161484685637559746082507901605675511020731775131679221350323976357805694415444781065151666947652147977774887888344390367346696581018315603674627353513939939708164963508769369886667560342954427137542989857175852751118664945671587370325611247390005634208530260832135825855257981750573112584223497545357831559460075475967677256865864921524442782761127418325271499730608178425820868783764817494564431369719654323420919549668749514489328274242143481199164484273122058873191303809752334509607388544993747240333039002670303440298121209594269100832263540965542449791818900484612665893395484257757496290802982435802337861873918245053158660616592793498389505470693177614481914750653818419236475532302616294879225005156355397408962571139042995007001119800768803364720116394859137319394243950354009000643371519341181352977076161162514441617502973688039144256793772690143000865662527298248663421218151224424503454974825327650930121109711965516225692279471078341682403454581093425080595570242498693053005579891737284960879806996592097518932844023341463329572104373457070176660702539070256243048209333541862820927048442662694103636794256688415161055679874004674904922420900642978377785131111223815972800837344436454164300879222931693122491386011591800192610445273917919011224343741055196160614837020061809975452162050259788739745228492950275331426382515261434047406731063429488622717796944763274151996172462327289314321134430939624098601769805093668082528487575321396719138855506440489987251559915868671319520227953823047902002771170438364354147187910991239864607404612010418129780536254176483949185435805076184947578481111204818316059178169485353996954638135186487786115795970695983105345830886282225058955881363058724151877758643575019558270989201949177507328279891485352612334881261983170019057541832465880072421433849932561905972994741976920985598268990397291290166724978853065993327658692651559197293973608502674728404625612727634716873886751210774550925869021547603770777820741747766962858495151002861063641843519868646496787822955342815405018206641829834722044150766942225690084437461283592985724503821750465534159612273551892718118259630189086965159343821992126569895045411186363206726797305052282272149393445822285645392820962064905729855648098817469176708313577807042979768011285372648154000346409623002045008392856350403686788905627971199022258970065232192573668115791118696712120212192376777745138290350110701663634590374410154426672149740414525489249969259947229934052236454329921436760861738910195644574404852855967367785622825699098666622782415108433485564630139165533399289719550810027964438895938781974462636635520615142298347895983557349972028388954406737767940288469541210621622491016111224122911963634402732809193054581225904081751863601851679091140867055576592208487648719334506085878204030563313133371363947710843527629944215993238452254350931564855685447484432661494769314780924035517219810836559681126831724476749800419036006646894868870783413668710505983875289502327013968052228467175965024225219012965214931183768425173754763735556506489334033504068253494261097851521505006400337786976754146359363927302109006766096246837380649874176566762866840713818650773528764755048842534322694567810337160023192316569440487454949421766905041525318863777986913686702845799692085230005697654448401555963980077530657477692683798044984739702546639157880011090853445807694682527479624165467757333509994054102934910249401994210661081514227041287960612756278854433609568496977431479278690737139694418708649245723852706232492614654741588050387074485642450529946302415367083363431424007302744220540961660013364029768990708363759510273572734890036538349198962456187770133858338669790134994600007638854957632107017447781950311168404992484098545257110240698151099429387367884432705116107328052662992890841514265716422903262273858279771961285143232658496692761101118306853767237670857879026238086563732365153752350587183166395453682040816538023264045642672812524473428917695959699460211708946562345137879708765052902194474392741900569965065318744008287513662095674846866195287394401862968157535991948084749906473458422060334870522615398258935173122376152909172940455198391668943071712451779890726885754424529313444510000066792593348000224471419278548616603499883409367906736481197696205869038056275557029397945559417589537854550126909978126199949965807765637582244202257137406046724901358708782314076494195334568149424856093866201757140285385408453783210496586091478224073501411783791318331827586747807523396185359918052343981185192252083275913700313410135576902910062861972483995975282759920319772522086718954418866242521374642326839801585883092815761813399931373744400640290791047264049529258794161439509651771850487289549496102370722144787551262055063520488437849593364799839695054776847498966627202385680387585310622024133070781260346857268775891607085588848213271696784994352247437996335581111355325623153783934523570574966245354721585777854826531875368385365928934477852170329162355210673228930801943956856900319648121736526211434449795122936700951719087655718510119471281462141189315633042684126335084445151433123279042072251414155372756309567302840390634091516406696327681659719802305421829497611786390904079339231952982809833861426686084659531150562171984487525717617666991825799855738583397488747099494658886038016791911651422372768039140627088126160537437878162466235146168572383515187522570775645414733979113294955450128619334553078044341782252481645419482572614351030052490918391683523089955617062191514124361434157889103356161959042931415580821933539503589447055067063582714857709602873915047993801061398493035277730897550490286165802645329071938670238424068074308837641238293483750476771575988754843408677178161400833588505750603936923125233499408578016419576234830107092236642586998257570198652563192900845962205718029256659610886454052428332926820971306937289583049973475081982191155738529551457219747346890867028356850788222436063019905783629216819100788514099940764503968176304256829135923110445378330254340591452303876942386639960589709684078559648775514583205697805549716332681803006089007754337181804454910104461543437456543950664441959576364464021047576441484201008775430289689049013721648122791542309908155578273563984259948138329291475767583148392245953867940543807141131101868142374426178825295160284235658903187147341061822439809955485678687871656671104044007333600633090391574989255118287837130085910697031757814053090576984388558480440849821191613229792978371865708975040069814232924949254213678532759194925368922491978612967407219834584130032590720009166155401366916462476428469641477540146101090684759273653259762062165664762386624981033828721817468714885005236955955345946300246064446699483880808872199342569034708443235606139176693652783144493971228408440273390399903264102696959417940673479072658380702806818879060036420132515189847641664504462307392165704166587009746615409575149706565111089165447764621435633170789570125005705492325968700246459423669933148609757204471369560748391161625201961671342170153012068529921912839614411359362697168885749522381006100719977344718344506369376091782091605757894940101524405863381747471246192613934742818708182932166115929189996542645678282654925723706726366473826250762048361479275969696376480888071428520125882560235618623394510015743209992623076188719304602250091901953958305796533413213545869567373700129826441849270883471105835194501783159647686588945203310491593818435375746099745350720127202906721701987408072144476850695722662819415568202534587713334757703933589261563963505520162458291979980929681156607063292411190378734074520167279499620141894243834853916089126115903008831129960715167875153797486276193075716350976948194761458885940620448031338638468423571764625099038805007224470143272890968475768263106331429450142362397443530596416226294513941888325955655191022625095362376717049308492900253234403611366846572735839367591449605963597519615346703989444996269592455600701065946224052285239951108617280505636627825784297416825042212708231329886173088928286154500637081299425507008934142938662596093354750214255702930273940821271764554105406822971501041311744636629412950696823158543463114627031573923823759810944904844913658593656338826425706912812649771570787376162169021219070320977675744012655743883447812884827767328795831768228192184338133718223266787329719164266871346620844542960869887161501911108123938619079202469972990210451930570375984257656439021414595570879916342367039018477714715035001357912355017359105320910103941322769642759339144031286115508503826105614040679486271531620921237795374693286535628083241227247087143230991111651528657777278029535212724086749048855738966765533327958960232645485529557346005483056548244288593978579460901937921032559888344588182741974849401966851613053441076355192693771458683541631590074173548012493322367153498417111831406660272268634322544372094311755474872725729816651100339145949648439970974388178874215433810006739271938676162524723628202628147960165865947652004966582507714519734115116683512357364236115667537621451430713026192040907413767599679992087210765794091122589832922758183290117998545475065196292730663384108256930329129909617184798380067899112797894603212098495053956231265297601531897995765741455229625631598681447090363434346332083779125417039157310086120477278901302295398755986689275750822607482535279309651373520010140880709978636283830426515757242511880743302805119966687275037744819845474085720272571682138815637441751590258744328608458679372820875768594866666866069024111879936815918135124028514148156995321495965610772834548146197651881383631739103681708519413036637198252851186026321090670228622793712966588072100679988019587558240830711428675349661230583676424090598998031855543737511035237535110229579560124889134627894493980006196933602327391344540160101238263466017569585141586480872665905981204986358843795184502081012460875172269700295706416456289771014134311335155176348325193357894185514731517315740436943823306839123792618237862054179650011564452889235179587148680789322947833050871516580389250266898298655013207562861549409868368386563218802557024671113280904019242231697292955219814316745562872195299620299879419239484209154835153951611159126870617250883357385000978187277965547779809959211919133557132624644262412463192325129070998504649650806165718894103338444073015499762923610101183019065727192883288855947770311064800971757025716435523646992325762942335690076511087190789967402710322420325133667144664481050110882539658545290828794207797965778088659843232259813700802947046804669403546921038146092289951658315110864679496826278729523013783856919435527757038573680730422686335973979532925416788104551336500406252300035800846792989144898025497026793504900730493003661012850923220502671991452729223082763675972800300573620965030583476611400639287462452428320498151521815537248474581056841374199432262059047792708105576231432487225320978948656522401958744882065611189123743245334313671605119661556215945631327228902508566064096907799943179205251185445441575116548700852557052671498273492784969690829156565720536741539723372410080928157986046094086383547390215679684375648691886043391326208760733080775578665379140617808792468178221792989566789582961903761384617696862979521023447828515249440511831368020950873350954063416916357064255733950421845808808311638397299995882007636511088683107973918283813549315306986361108934334770063945202976337896596578179190440067763500962689120739490403719696232938561635304205439556227827444465468340649384808671690413182369806888437759078184832909547869753104181454723526340075419439779229289873294539949454543812095888835642781260642724630038219956812354990755034770006793324332007773174962717425452706078152310882259303116412615612626577716194412694845595419534167372853666443564328200726431669163734135617753275666075827306809985182623921714488687498606134364381952349284441375247352513394849902486336981047085695743117734083370877899357303418208173392813382555719754294927735648385948775096252223205415092651084935663572575242396294817004834169845947411410706389317146195797036927567496773345420571624442891082700689017704013522955614856680127145217406576823094291581200664040742549096215664454654348637525624889000896236606977224784228602037962215262360354673490499605982484156936349647574983723113061151925973910406982583783684756529447529483599406705686984345750373675471471445256234000630053241163627388842413419010771608341459423854103384795855289925587359679010357617756144824774744214686090667601603679565461903084105593396784576958883441776145250833151294703768762039841932403506655322040345503473810586285382923483506585495763241576925055822234556819930043437051052123219235353553450736316019497737620877005632227193474931556458291558042073508300273595003806562001638366922630326202822707036076477603866043364149594667097891533752532147300272629916130139474965180985157133827725998449845418650456687629575272476267608036149996403785127678365185866421936438276103315382627076838318225037802406781856996995094257042483311351551840139261572877011304773638473494584840709953423699499810905753026514050091927461051157745159539745960098651542661630134185150225489832704486623040907167756082997597096279243792277228111945669897632998932411310699494906938093412549746731652758039729438312055358285816118541290830761867565691468888319753101041688147594730131719296877700171953463470997958073138601307767358511520554658961639467122271741332791187395754166625123722063378721800505345564807913381122660901587519378374348335740061733148582575451227011636027251668483220538357021023927645251240859813166694484102977924928435718480367835947974353693262372902640352164695100366278762369954658751663493288715620481962138513834857660466247130815182020966412766303760220121819934239694134676158551037138472303367582336039898633060809835501261020856485285223454972452868378916300921957017972805837314464593159672805041843696477507321504590059551221714582002788951714767464659706189967495775402510460674079173420862579243473346920731158870852298854919665969137218356727052294107270300277325679751502811474244024431940323098845402262877396952549845581212017734648915799980723871474737263852321226980236751138728514648932258466503334598955507823161694796668217102468709543757217404498465101602663625191177405959589031804097622614372143046390872442350429232250602977576777078367195672076479987763864097850164385497077795301265847635756944911703649205650610365234756866253218792496690078394807704262914149317284465545669424160417792395874826425498239725327164675356836653621232930278421000548686228085327987740559637737651874212754609295031342728062519875942186564444973484474578070975729481917054418632136143093986057737582691419465901486788689484481772318089778478033811616038062783452673129062989990429802180302788762060722373366764032839783271764802321960500893157664590703567032564460392097071810174539576243811359341982734445077967939613859112490633886953457204800076715581004269531471196113875092805009122277493534076729839380484043150384480055923498907886153787033222394238593067899303911658650213941863517197574298772158442432325436298115779581662320736459023787368573475516338759562586302260480284166360867553290808000425945603711486103765862614592446001594021080851360027814011272345981145852512105677619578496518421732246755276029981959593199027979591150976373243310142776607145859852645245386189651458918904169021346742904458589964826495779968658614123768525342458624665755564940477508106593539735648681757687202440146920490159774192286343437736167205265637050732480543646655969097552951922277754051509594909202469514991132686512060569444118754076416818733865691060240645765426085520295193512345995848381929775289439871229277255211941662635908230668429853372988778034967109280521460527658209737858511140954039467985381026829910234120121938760061425614159480425495434462359168675080255411540765792300142949250919849033523880553654428501193968160064630701955133269835456933543487692557078372097678682759392913928869443944375196810618227663469654185192637020592197630176946025718796175843694923130259052320324505133805686965036022579263847606989791940582007420187500550112805295639209856746620223078167735910315299857512970441233211180356433389732400668185969215573460851456756325047559320937168026238238790420571272942796215863941576628276956574543539634546571634203010655767240986047951643369957327649191834435886469454654944338415590705234400112911575985351332955340986133266835000427263670444510270587659789074756962335037791396743161793456407245553322496572289444325024245864210123522085145520134133333673362550793126660263893828525020364844624832931070088749088809607445932741487445100690820753805221151839836974874071565687894698685284930243207568575674507436825230724720440756711126108363756587328940443983944524961671977760358157571932892206119468010352693194770711577936524427503198115422559544949719490113062943171981689583723526234959449021360372031200057939543274630382609483811821548713853632363677333023805298081450670226377410880016242620619646344690660584774892071500237896756537645538232638288819067929991128482710202752973348504134043723462969145655919269235098547877809570565264294397456487303191081967727162819552969165417315804168729732980310091639514449280101230643032788066064239853911900398147064331556393346263304858720991256786374556829759856298500870512667838987989627100374682976314293439956167097070660293193648057479758690171167421984978102234931937864302179678799135634036748644320829065210011609311042441752940828075260192007997864965866350704856052072527332668927326053550837071060516667170413706341029032880841147195267530684858364393853916589850212835192021809461417373119664113364834034689571530918045116667141538944031566223577377478154393612555071778660539855111069685238476401736021226806875221455523539852056983062428689969695760972338645347974658160249345519232534656184181917320030428850447343935244333086186252443077676743623447127959010023598931874957199199297753057528055005774158025870863708681832654358486465436979800534140251005042737441418977393502331615728243769788256213843888212030534965482481830531092152949902510126277249358995337757373270528458934248367493983407103576814685361905483012485012884549579098804240976720020582290342341028407978267205319837808801635823831351280284892956117431046306699255429858554343187153184618184268696972695729332184310611029803846202923421921548255394411936834692222265481755020532714327510351096730399354717912267983819028293403341505304405415738975263757253249745849179706746150606133794530715254176647833918900155786807574315182963152679122314541045848552495465362451878928629886568330997301460447579169105569012122159023945542433856221931114463623463379882196202285215890391415862430534991290971543727382731339041372108041346068421337766453934667484310138665733918880954022582499239077103511233501692402070707743949142595767727040354195048422061931014208694388590525052824100885483964508149258942081738651027978338760283764583892201675053469238141723464663652805636752189968677920332000324976345551840459898299215646330314900183546446204555052534050235636229361946936533971540410520492827819212489433324449463235385587694835118276953940752397773568612563078214917191167292100534283484880260532272381015202656899698529144037957370275820623652629422631495315934505446839155086965262652129463943371777367098590633494798515391895207108922250914312345737714165711212704744259041096510995139818687337262754544808533575637358365404529517073548382162716859164617612689147164822359077042482515832002173023119264337591698028284569334899541972455096164243139836132274464672218235104721484457973511416023942790894360219972555553479543324543314118168888720561618054956066839272024951120791482502406149105605837887343433793833932118986849692265390526989544889464166507204851927145152861212266356084568347757367679255491702371492679554194303898178073722374683855768985535066940110071439308624277287876531319996495458761093560884335614238294193757745208814682135521281747027157194829064444334176063830147234557662779381698395903456890852240860750516572995140672634591590605922025663869178436211559805047213837657716653092057355885939743162153235171297334359794268823785151927162689982665894875889179035377786994999171447760259049696832218642461163219948059634141108323165212128827364375093606619742755429913070645572443877182090756613670342523629274512809476241627625299885908551475321523543349841509117820277130315661581625724309225124508450921901310954565304651303316581551521658166508457482837597028376881270903916094868677653043622829333403841092343205315669817542267311875583598168087470521175621181257385723204210754669996215308166713921345261633134725653379622254325704481176398486737726823007224834789003705080327013095923057257927512952657029265633540526049914022601933768870958634631638298004885636183939569155545518503459067897704677816221034284817114541469602156485012151593770887367284070624611417296414121512540349866757816828719098899696869132141456554927148147823791877235861233264438239156729948202241393056120410520914202876074637498316704539195292882965513096393180753214434575251209050141027657448882885812760476677255601311166202705132146977807129000991813392475968001280723732190540145834488481039897732446193509229442383214665936437482830011734043707238216332057145987583514206767260493328549417925480648050095293104535401384820391670131700405849472039986019629341632408796190160984361576858644834406337420826246252438230024754775146894285573719124270284641375651059659696828003866321719893818374996643483862306733563461687183839052055740166824318529449566730969441419171410119172105211140923370906557758547343755983446629523587162934110072775090264915186008186257226042419388972571569120223257083042171245334300465779329742478781946416645206401339482338777441209736953508789951984182626047151853303977112385540509392439150094962154793631216994312732638862669461590296572846460968529642065008815946640185923864936233807266625910797272331116236645694156595007753256690187292129303961715475572231887293509689185510104690123942724987206703049218683782547004584423154091506957532525565399595629136491175856014587714932263946894265869558219585736982016331950019551810155135742013075131719158294976216816625015217252685412789236220349648058949853175784879750703016572188772431542628347581383246718366964850045339373175083845290919141890487318226298222625933805818452202163776958127734997025386093796423743771039417209918396709795078885938128198601224399897620834656798488745133892179491979714566005018313609845176472205219988200939661129287240450936849662205854475004861693866771570796394044693877680671589313843053553043377010768218412146864447503507947009558807980058852022031622591896933750418710146718925673025740228101075437707701392593953718193185966106496769036108363143299913645090455291033625443938511135798159579881387169475987553942710579771889697681243914840064216360841777826995047864415066863950149420818215951016032362540804172266973290726632680867485763549788285916465687570644874181314979313115852549244631020372206911987133200329921200958018012289426112134305803392621180695317007112333774633322455817849215672363898984764240554219277898787281408066163787298131721030655542778376558860772614950572161421601674773634435405271933640811619793082747167113504960135474107448964364828936314390283316888267747827807525107411860486947074435252713266469747931354441046523074962677095135758890049668726900917149974362477812379727803659678890493329346830020610548413456583521381485140521845867450984953431304304652076093433459422704951393038452693936188284686762634819929294923722705545696268530994728911755098824636893429251856413227892250808743722640574062238646234405622195524631920455604993687264978922780187119438405562915511861432032666362366308932443637695043109875959291375433733816903704585908998334915672739861960983130790923395247285994609076537458628433659976850062869049739681712820759382471154854428865957821753416703767353762384912026360370446702971610305145391800452437011382110648941651664278145024122691082210976490878015156335051095266888270769185524872977565511022028045546424309522618774465540078853674150299787276460318148053851352080483435469681200757970416867977112487821245582669033217581251928619419857530177815881480265540790832237013653990185721661819356445424762117307592253622756114820340114173452408551281062751042360628027584221107601849468807179445096313229539263694046825094787776731368105976537992289538991875703591778919427795790049910547098868992579549286929358114823424417246712536053441195461812193428770461427219764072996554590780916935138080863453418932472828174949704953160583887608190098822133087425218921755558269167836914675862718717088871425223027991889722330872191760079186089311334934784247170566746661883287054401761705804058556541280597431771364586072669136081352176990904575051334397345177071816484934587153270820352407644433654622756506110097467367970031022216152003712933239824600429991741607048962708648770655072794037073550354449625742117584978078876667791582928925149975095991255020596353796281055492370601887432799240153606218088086173587800671482013408286918492346433678522843469490314112318221074587770871167191825372665618590450358345009172546328692558013827524415446034765932649554016015434946357509908803936060426781695439633381188548771842260580997750084958227910127744897951659774580997622878670314652777772476843672332135905286292403850666939387662284895315431884323494924071848363657745462827765295472629943735091008233342700065190180837827202539637922363311854282641161895086495132477170018898612926276877113659158135259562050535514171192346679228911376378737008938421111958298379681256250868842038136758555501103629637848686839865236220247590522704371682808242772688470646296094762702097334067982670768352181595110783158920921366459128020837488362320878748898098026231628533512415474767967602739884591833094488878421249787348359470416504502037041802351522938383766673624278825033213375804688103952489747157047662311294530134258996562305279877351057259238248561609541062748716307471661915295695846100885954810851132782704346576215752039429188655580409348450551144008297043731262697945245945163752304572854264172369907848850106171507867469199305633408967081008935275570179570898417231035374799598535019228863120089209093324217440513461505477074361419912502717891730471667728034504653631488660252132492752728069056152133830226522524935635224582567868797355778820858276121868871909797054529547451414379951083677598531912213460490466538704163754586842464013273011934817101067265134785018511757842516960222442141135003765090571681222625549921083597266626947815393701532342105334960022937789364641163477218675990224630541084708015698933652394342186227870090433086849977698857733800880672683720393297190123526283110195472837758703222685916218278056832331376478283116097444607708075114247348922586571101247333543130514699866561163016681736026132394683047213192557433682145065500662274566916481330045449316631502780139520466595256266108008266384472893615570729299856574262644123348828070216736203689734726563580586450779068471294779138778261901270484830789961915811056107677216735356315564941648254222552860032879324133559448745358324447412184266136308351716117636431126191939427784311043407601827315542547512742396521606332873607633958809249639129099038329302750493086568890329184455123040432583601009779378152241844545124229868004978544369555390514819419106628571171682310469821280871723099543686889304849018972041966185903374947391827628125397086313715813657800988526277445847639533801380402472402405588805655426653409970812646265184782739450756618285636097905444087615771799396321651754569287002063840066275880458845351949608047778617224799950784539971473881909007725733527674850461399268726746610401187040418561992222681472627207236195041745370963064225051478274348730724352742578741173965275549622311868074724270530486266302477281666639860200911720843742832288764881715005407274360118552714765691130285533747322298239453408544098336594220729041896714742496270399207344534911567688231780480249880948726797453168777545061990504369053062302291013486042549125240860596468033300982120043033510051730428879270393256449796654884097176328396751091145119075573173356577098593023633610886723130779411353191658786989161372151374047539436638464119975663778389533674777688746245658069287834231628595058195646503053015600706892590788037668304568119315153387403748410947599089455210156068098038324513392110158384317345347458495397973345670628800825314872413641731574250407569681953207609914766982495483049148904892553879255870320235320896090254372394398442592276133481887503579299363412600460584920916428500935407157354506320621847111381644530425264880540219639262738693090811091821205138385916094821486998224754213665276905361405995193381275250107138699504032275314270514852219005631318673343667421347572226943251060786482809338194545071435173420705478847173743925233287291068308553780989818765891841670455702881931500371929770579880127339567557333311667733738821609542347483244662805285298045210811103661845497600167671115067987235490360914255627061483744172327599455753798533070156528793330210586239698028462761267016978272270758432847535745923733189026721211113656552443816211932025458555554100906183707962096232806372466191681253781082325278394255569036792402669528415897800960071961542703834143903864222570807779997509998857395950998502297040266294596989135589041028378338676365742809269986096610470013393155923733636132247688000993196402539784103593055341648889439921946267766184186011055801013927125113853165919157108806276469943725670255340113734353090591074924390287926606483328731473805037944739124066293294164526909000395561899899986862663172711778337964571867554734959743582951672570651578930018600968459679418440129514713709681407406098172181256464303015453104444285000051621024810155694671503500718501237988197632147438372361190889402959961296048006662444506389223543173684884670326784339389968221862269979699863286199203681038032622297951138514179858013647624756891873613807839581967754803613875091076647608088654681642878502513122038383333093057177417719593213593881601760727735088675062118364819445975153233470322334628836868343156874164034222884325526772116205811880212385408747876591095399447693400133293183384417578063247635959653204570945871115606972307383429090500302862510642103372332799502147665572982785341021361834637023176633282190500288815525508728670793890936895089602541610462469340704267212211378629596405030282133669711097802612722854272473839702220883060683480273938781984249626965919123290711395935010952327155791523113254711993751529665301458010722430991233102719784338473145727878950322401038145380098171903591397351924478633639010716400411392420025336024334284914626005153231770793271429911638954864123829022355478956098300970017438949539071429054639830476673293580720538054066806715242046171858180769901518497050855574829647273507520301894919389541796239019070052855245148460738012623627481617570935388721822385446274461963784529593683599491938936263998633346306425169808449036066158359162878339226180073872797908862261181510813847954092863258462369050672314873308859503432552349244601976960005706897052178852189471973976484703557799440335401380795709948451500220583253426659815269169292906966684480205229671177187809509030207368758174511468943351056154609075138130936574294211360024541971815952270886864767785546702361994673413847171559366670105390580372268365291196968326126085389032907529332699348219606291989062686366305249868637130243077755776792692553559788149558584298262741723703957060266934801205486064526691957104191426260944688865023917281113519018286153032422226201541349899719390750442744841185788315116528499264189446253266555336791488678050020431746764324486532265862795273318517523595767130375624180077173517319056328221823216325707383652991751640287117076807092044042141322195305906258847476504001327163329034590550915102151482586396562667322765507135882237497793450160092188552603862676494076960641213761196537267065606111505113157859615940182880598592256727162354777278068998754283460620203574727521129147873274816598546514698737713130180837548157549059278632920895893590842403962664583789552137555005776630617047880251767569598824805083374440596060088987260178337844746412260904557253132420719047093028917380877745511710894194193209376873821821767321200701335205979455147635020402498991419642544862148020217237628473830796413194852018442613262965070553749600528010034715102399847587835159355951540193606195276026859140687543939606798583577164650967870624697172799040046439410796457593817492144221998265322259402292068471539380804107490180986096284144883957176824231779349074173195489642357533644692863920634815144726769005711374624478559895647500734145381148436837101885357617871099945933246196881401328196827595159483423705105172384741663092378760584969753393571786066515439750058488090352292428965126566619723635706495775365014538559514531918463021195667820183805375421787583397939572065263442414870938751741104818877663431306925548098214750654660644506032932992219701298694781642154725646539705299471635075858561088691386971563546507494211177633729717175092732727194887966617086358589373705730301967718129479718431319366373730708098405856294612109431941523523606575712363205712254166466133908794444652303822241911395073606918431784433091020579568606566903234802138712766729721521498164077885764256948423835852939359284299956576525373739609245918043571050345370823476434619272880402356444199245514301854992827314745747342168837994135166748753063160217886864378757659699138310953059467752228363905466853402899404106204311048755479498235902952756037740336087959806711523642262323535949594119655095871921217365067582220250670512366704764168221984963478266004869870248934379111721285835678474000964769604977784993957081395481951737949820546664989278870683676741939843560501249424996686082404003539529787686517166895407059462589495877251080032532622744056644003996611846377476528374980434363727187854632359748890590631346926461825210868323909063401169525869705656903339911303773806695493416739434588867723428432880736861377013192551490086164340111351293026428947120045988797048339464134916527103395586642427117582190357346360810910626381790250149450975066429423514091042822120615974983775663538212694823372795860802702558517303485024291349676812065496235707803102383085125487910197281917506908099279529240941507907850936587781499847973435648694734297099553878273763313765472746502147202206403121143465061473312957729439658113034666931208541109449854967141754634798154437449883071346624344992102535676566239479630169901473314012851656288153164446178211320620581855500940453291453987655236096729875196676523898807845487042347482580864837079387462117512651098628378925136267389878724009613826417507460590765291781811649217887442952338030107858003329624017651806117861156141444814232986823233093118656509031322480294357440019043633532610770019761865477075397518819170701878938637192507123582180516819704601462277261328366701043107561816239396987411710385982059935440019459590566933351586991943123965254787022594766555436636677675923626884447973029589161608585038128279877870940352957260698042789134358291000209212304953031465144806015851089422950309778249786623425577357592319330575883424936272825582533176558790170845200939845432127767928340524198388492306973199148580516724852849852840691479434411792509978252710754646001227191191869426751970125938615668412786491683021931469259183482107532678885807254582022296081528148249232252905008534362242725552596226637912170174830842336535811982487246061185599785575457197171726866450842496281833974349666674794085184421823397572053141319344349307687981089333138874571205455691241288495650810490480512426900643347454080119077551731156991990014180531443402879982655814765559015267478826072367873794237209155344225711732176320662099179303865408725527178209124347317130609068164567819071752634696949342811049160004396380470051563392225548866024415068548605886972524096210249574545155267263430599878792983055337009504394768397735900838009346745688836989336329717531858661387000181102997501142973930732995473314644585507680229186022076846074394092474510807099333769361753617956965774636347371580500843347431028539495703859252475724778629163837043594735975691443233451362229684802908712357381537411561222146774122553102380675603856485122250240239732535831964930818809631969973768340490280121508933220728290122902388597365053825076705261305535669901611628404978809055305467347279574518947453872412894227969143497900685002953992946047013545681998195932821672756955878900519321229952288494440599309463941372660039238115771225026724873909609089904737174706895712263576265431982340941078101622681535470643688218170880324921761090167382934276247406421023888823512099521960241248685434929724670796878226584491840917277300645340330658449952267778457981800936246008238501638168283201557126648586925972043842767666872344829541978998226241431942852040992593293325395301456225855816675939997558804848430564431554846515152441786972387248233451181377761589788743136092691189049154946754286150624834417313095896623800715569935745047787498871316750545200245877088439411363966182417171304168447273058794676652297369856229186323892913310253333342233354813438584636144775200561385709821842009981522674145207819658951429511501846827973808633307778024042791678157556583065091232029694243795277644124499736279642810574921467238946503342707692779707652268062302523468698098303399111721150736706503119172030816805028065795107666498420496047499909973142555355289095243652802983011785323574281881688189931863959483500249275638164620969389808592212765714226651744091640782685533435839287674135490774285084626011359608879358222149773118463072095874537120769105188505689815275134611305200210779083411804129888165786592199309765954225329215735820732347551747924815027080718426485869636224283997811398161974153444772585988097492566769093250886940677589018598703351129720560655378526420378460661151347320963906035120108611988913245721684253428184990567069355374132433646782122329635311498321111507053170432642088818602807985841041066956097027919955165477555139141530291548069775838209171062587393939209325061390722826129425405403188454399055867101104089963946121485868094200646931068916007456115845041552282823359080173891780318822665426390921202178958638711912699212398777175238915327455803534112674623282733958549191071252177503217358079192200324059483547268805362560999682638604687503991666250424463710649266802094021624856857263007791845250893626170935951035079639045330129067916845972624123982600178737688763598599861483897435365696070469271744743540646657579750925354315663395168700056894158330050870467713644513441519286705817040628369702889852013999591208701682572208791637864288348954176277178198446786812525946804606045306972361761062241602187204038427823089935182056997641325114299289455863164592435705523346458560900841998674845005162851471331357830624358613281858612259184865632159643609859784997614804525243444154651857271417939035856844311473844015562034031291662185000433328814788847146363802489394055919809268274351323021665660664614253596580549930532308398266543133805258565325656964730919538091425494851507446262934758558018259881222894494567562513825422113897446202514657213004257450761715729699359368306211543186620081790053288273756513321304343316273887716618650130080507952836078530100903271260272790045034073860676104285787937248334942916203936901017427921623481081556042713984204815141154002166621175994466156863624092809983691809943909581901387724224206512544184427827531105511157348488455103960865764657932998972526124959346939009552813645205204242985436564912421309879299686642340388492124305459785480125328346206278966406424789617288253063286530367355120235717843143886183245345005540701487031813031122876842026545411576432608644854523863944821465681889577423862168653836950119202289228271895937641812407694405398897254729996333080697096232857396175712020929860079653362036597566839105081277791397307914904129371741492169267510107775577711665410912186751552005240730043620271241678992829122662556758645072782648227758425654252377971866338231767230250161752509978307451793551714019175920047970616995023614037732941284533837334848627157204067260059167507983713258037011023182377423718058965082077241817263927220234518947196691610170717156559729304087535281561356131713236624351318341305692863373668998153123815898305432552251625677780343468845356224991435079955405484270490139244009460120743808667118668686941965505180338167540200448302429299452405878967019193147116290979893555734919383427355346490776073882469154286337810936912388444598062843597376795156154917425102023767374709653866318951910698693449166257455871373305992981824843689753083223446783444372306516338714571347020837510446796207994236333877806865923637317448246586095262471538212897405277667366677384320550856225804720237624209638573240751590469874153549860991894565738746958943933909914164402216936108092058795135748874137919695168632040340913342762393086949022833547471030410735990296868752590402539898691541193790739061666775380949521004214201748405322738379546508915987983411013080263997351134466337155330308982342565282672028726690150658818209047668921377902677300410586018737625915297429318088923981800302297112357158135489239479933166214663630944788258017068201382441989802175195584573579665663420287800727693912665012942142194455004546135511997486464918068428709705135463283772916500218021451216439116850697076705732436078186792370115043218015150982346650863938880875323685013467963224335177536921925526896883746830862196706592435906872390740411444422141894154316113692978551977554471284461178153272984774947364828609156786770961341501857616820647855698345501678842490620477108567753026857460894008314850502716700869818253335986856079672132475608025203094633835823766416065632799724226471831170215967887331935098354797207431726877963444179525165631586219340958269705185290372218876646828023596490369590897760369535999103953170923452491024979704909236987565932574127682143250347341696114031308130913170825711795840145896715835231473359377165375633889365129677990154654501949542496622042398125555483323948514259890880527093174401464347021690439089812204121393194742877647990324956551754417554317820716174978338778970193539305670632819464655110021074466915192111458824945525609077724896966081329419133107780124509909486358641382261876297421484655104509250609904787934971638989269736973866945917333905263255164910809890749784158605667222638795207160067238474398614938822958446679298495394249008148427723420675121000322001783807562520181102292629906553588626847364958741938878675641134362872087759189296450062805490877694307053984643558470066880440677751716574431079151118995225667866466235240874073639397163101363441719391561732898897412383871291802585958304554267559697551092833105205918635224574713390163580384967382807600787554394908427865960675623593639805582065831851264349607676823360345317007346127333940935386608297457441640352040682759253525354664466217627626555871633647983965376972052645115630727992631104734666719023221773415228208890541591303751801871034679116512150111068336785625490659186057744918149895251717243567394848732309191369607246489308155319588354952121082570738613416202538641991055121746149991420087871397709818383065907472633526000766194361644739375998257132298271456620446818160863406382223333748382111876986262073989075983490611061100705160500580752040027529043178847845331523986136752359538078479477804894363863864303593069044618195680628140113988265721886563974777932251380967418789049860989889521154573317855473471762207331991922879836355106724026079544788952360817684959991324250228256656916044504952653722824125472492285215751968028742677504506044112058277343707461872037068997007452291429561973787814620313523366324619739681479530804224426119637942995171672935564178611058859733197189688159600365609846215512954127370674570531498043406659566015809748615820379211362412318212109925915208161421533231751828882814404652248679701173975341539389542203071285180392791511698491810856761283540212722941383772763358181078542007038609051913713300776527976492174172875593440656337100577456171476293705363825309315808622727408246060371273668601599786528587359771740032125450109592900091286200662752069241074552535640406202126671785039265219820896298396040395733522159827055450068121562263559003853538412284422230336789834140934252510522797706966068674335246569076133500869318334347374543384086163996576877947852419653983080616972975500658693843847621608471932067703755647729106412087213875282507223355507963656326769043324015758176127875650734528341301959981397369568733572039806362402110427648198359027213941176690173678537544245257406094478921356314204001446110523735378595211877207012355758861524513609866816701517280509177713637646598282904151712450621366158764780847781794784009466633873069987054227738881723954177592463803228934954993433244330983490409087938846556789562412224455259813533763599915417619357519154486394324869586220593657007251384047384715748666766519908384280714782088142832851683968451737260035291601520294635906921990906569720078318233963752866477885892162768038086185454836361835153339306978852718648270677625460160561871243411035966378253778010838100979787961733159854173607399676861397879819003484041242458260658684746792657964148413987028879351619971084266242284765006512068525485971746721909634929284931292386618471828168276789849659486715430141724476525605987832723199619747159402649526268733288754603206076831004352960837523561499281941980814583447964519082301738789685766185236089725989458235496809456436254429216267110561532116107976387412241439682521989368708720820145463273259826447289271954363776835606777442375257651566349836667952180946641631756427522894922316295113087216207654111248225400301330779801466101606711115225674608404167312387325655518045854411631897084447366187065312507094516510094814280794693465128548241437492278117227117049513798085116890402056779050937912252440803155135588804164819468491944375617259551220149602388534945519561156959924711546994159662712637509096705362842468494765514293291505994119200200011563687680694524603271084632362046723565816187053243984375707942127450064726077724148018264130619843381182879145040703181898078119617993162972968983209301105818462426187685026721426350650917111346032120896031351058891033797506352199412256265062922299725809485774295317783894481363676227209044352328845314983469840122907589871073141210501931516652148831465957285894115745123648265471744078382244956521546472725650971134438509217275719452262701822207580915379317456281276874365897953439519131419892078107758135874367280814405171490226932376424433432413779534055041893224937372656477729204843494584600431953054124969385155152368070723579313743391857865427355297021260123595255250316011512470856623459203596420925676621843781452344292196278862239853642347345607097257753734115335833945981713707854204765581483215173729477608352753340872506605785505678144509068133364046508237249754635464526191036680972223381259570613784428384127318161045946581937797533198575463860927438223055181131106673211446583122942543755676052757589376312336746684884194654711081482706984934311652203429263926133338893782473595761621932857970647965628327348233645162763033419017718271688541997177235693590293016003946788255138011090476054407580228776519541949210950650920486400718621645560259297316106029754570313967046045647756218088985454122631028658780992229847851194569575085999166091560088906249633218291211504482659950904500719089180604668702963074072473259983713234174433784321820339705694675412084153940032284069974632812016051158333952774525324677929777151074359278344490163289868854829141514237732673709156812943291021102631670657933079594714691689325660243681332959163411251074672032337983951922431426871470502879725708921506754007442627459291756157445051166629546013364312916152349260524058122230609119988688143960789557359631141037608440330898758597388474543790636062016558732660300779111637700065317779331457424965163937957184533598360785177367284364136193346209222959250198224515857255433042015590923100430357680615479696819349580028288775070641025942743294698413300286807908128782503405933277487555500081160751919397914238996273295358157452485872235115155839264624847673639838302413794119090315180168520510666072260747877102843097120443209227989076860415623600985941056040172522757534153860060114455255325853622036581116869384129533025578825298176707202371890370446103342064246712211013013200314134840436339544399228918549315361804926126398292525239647813479439195083247408977013730550001563026033707552896487884294277619012174766313490119044578873157709055169871422686346080159025913929241198401308211360909111642491494657540986677254895000967147318575713261882124763917000639705538699421756264857496307782849989049692189760259651187845707458369926145642945316916137616497090634874595404048353291321169399548824095602994464955340727412448824816340069183199447134843892743186700157954816819700498157577648086851962001017725883958932913886415787731470198307932223162568616644554947847011182315236221839266737027994128326557477323582496699239525436753546412139991928492507950138751758521599189861241447992599935990578265800280500258146498408260306120362896946389258408667947239785392858716291034232290279887127846312364085900140416693790929042135048828753795403307564518875047462819482539385047661572426875515642423073033470746917820521432603905999922856029958301861165480455923645795620719135075380787398968628000291335565001396602294066129732528058571660857345275832223680650528274558967775958051792062460755497491412865949719516197197921202657882916424303826453268877580668417146774286238596368406095030810508181420246044809006903849000076224066628971727800444453070384235042630943759046234112961234989756042596286029851207804509295312572272308785313274040697519465123010061005994953986829925634650327008073509758169592529016913446025429278346794607114374628475690363030157986050631636992519189619930014045922657141567178926273452608721829052984967232727669608729567864385815812826842264156596723252717562364955441605410181442723394903394131855787060918395189518336579053591125309474896525467850211838912234709389093092576264714981201674469138930924409357442890427426505196886316504945357555072915807562074107758422356989043575511775318235722818481690187891016880319423651326411542561435997313666065115064562116772009146526738400770743930122797541137304763309992621141137866854240748191008218768424627418666155800860179753317753732934937841183770746442733638829746614851380848070307497706712186194643723211698904094425179404689472071368603653189609913741777496658814254988595570452970956916637956324278018608529170216619620593951747857328201664846708169136941932159299518836461406005803826136124571302737502902551125899529122288542736717569554381603333890539061124085014394609931148011182297197059046034150372689084668793301857266029496580470932377627216578339601083034958174053955013245288773473396614903118399485634039606135655221874683732465770491666651539124572804627117787098747468870542154194127452744268469944277724224434265243910370531767050954135662683086877921682937617034074858439690245564296309509770640543639969728378200221355307028094464717095758952189848087684088342505803572788024794376758487145681585992595646960376174313212980905696826309404949094951689449365616870974937208553246567836431390385457788808540933077572763197073571145056382296589070838407084695648210708544940603139516238116555121096970491807480862388853954605136460036240703663666185065175377899213718731007521292562682491758275622761083285337473548770246037779853713833369921032126204826637789403640909729005936280596405937218744323885741502816708177129512138549216618363514053332334151991785292051649157508962454519197513633964434269728135009255323394282430551247366162486537149978090162917191177758453559039452004120880465946492307109619023542542866369160377301435845363934637823608989865943729977889927349880366758942092733854172297794987491301784204675990690349056679791740025769742533088209255228138377046252056727255154219258879885951330193373122206040073131361314180823572986678666875502572238666472246988133409789813149724314391669269739940762182984376643251917863562091800317026256939972430146428796044903418591603723930219698674360649661900355427345380411130537097356304920077864153907188741208455606170360464458147169731477953033758579559424907570243374384155103276074870886120204329309674375943147790242345966200561116091640115139984740283338299558575485581090517952563138629771951127875094956727620858305625402980374734148344238640234542560005641177261362076764960822307788038673620387755357578117135146433603118598703648701929249947497033905351334772728915814248749974868486615347445218929629557831280735322534228575532318366720299692446928707305892802175700512028840848643497543403031163920845773773767812325251866792008981992589970271043750877943680898054852982217304080170963883101156576277961075977503666832251485311885080432369687031109913659972228071292286381157859635455233579811357162367481562496673958609820819701585698444498591367451742653101693332834290534865194284049221459359561292143823727335333997089151978039531631233928083137962832719307389645211920827651648670680270758459378176229682575158497706602464587599511425952239924504228423313413604201691042316796101016940680613734523408802464320386366225514639319994765657279114053202467822915144103759521059084652962815659663327505034094182882772243516761967214517052755556633497732939153513854021890091437750397835189206251279536866005267255421728375594041184379712768055900546354756016241683536775504084431435060043623392063599203471137114433645867713843618348834289508069314465373937804010619787608575575819209361725621054479049769070696428499271972718490598521166062000000796084911250147239591962270214400211477334000223928853574529212609087184124582919560619490364174049311104004711543835770352386540965952119182920382541163764910902501021886604155869055963358348986612887337471745717351935568465746640473302717401946042175867839292488596449335584430665473215029397508955885309352638354968287431477492292525205792237848453932858511750627482214648627014170754891670062996432312299192660487145925668808171578883662809674171538760341173570395471571342006214274993718746255509375567943751365839069619943435893555201627880748039499843519310477058151087436537919510582097028209078169553996741944799982532953668871423160127266275057221692726629884473636180862356776424500681398394296354716707860571025336991263246911214381694585822627078283171354391019160330738332681288553368907554910882662616528493493483871894806517045628514603501157594820502616869531787339471369644565821204181141910881821277263180110962718316370998638822672708653653244472945727485118676477998403283133757837594208118537056755491974859091733661289247083902730285900058315073136540830606393904078665057225321253209676972020317861072523503988761885456673442633306595142239822003856224805990213398600906983685660597698706512655500938872574517084169403537378507754976611787047291129050043814285631597995273676994556671531376363233721065670143422278246685345213553132663090314543108115675273596013537116065579404660548633175929696360337400128137682530901241151888272358045715632224625939739846805564917989638726027035575169110786945087490459792926390326964537768063804699315841692383926658024207585530494361920072342835519178722754123968101159704746470799413823385815981849356339384456727405982673277464664175055482332684397781691173815712878442790050667461502212736262834996036491053742386350245935845460970992836060509425609940576077290211244291071539789643713233073144719171372463375358164046348806089424188851566050913456087552970886845510128068314410224322249536157079761230996539776170651155163967765344765698758707886729281490488628120988810470469095161147195002452176766717634781257442942580798546959257816975280280867539889663448931255898150317997348016496586446201938237253182668166615118445192769552721527403352962684608473131489080078630721268765982739041186271126780417494574487388948522841547362908306010777960452434153409021307560057995817560233536027129483023101944891565701299827424575617376974052858771814546851102021253379480945130661822406853867709920621798755478981649399575028954502927361145785743099590162893012570057858369945459152443862250073876836145565573064506261341798922132477219383486417950063574711531170275632267763477860686658317393826520843003960181566849072690446064404322944448999769172762974814515401639991709879416969961506734953726990373964385583150125534047610726335079310333854490982243438129834583804887943770640035749664771859810926336876026335900619417152988496328574488644457025443062633860123313813119909099122697666632118253471761809390372043145957806593672963670011653980560420816825708265113699467170417625560735153313084979694837933260762789450577445947387890152187946999102336474959281566024774340976968448786884191586386740168386759772227652671363726406884577405101735913408785725511198041611501629315957797650028553989958291982375143409807276937863815322312269164184734272341635993096156837356034248445448437731668428706161834983552580907367592373873240345007776314550651496491861544747401829772803777237607882332632535559680448731425355728185425412527611944367079840000752641396112134164156652860735526062726121895437586184012127231361154518636763653357532576578423408639528987602015666807812473094342417084031586824979165661898112505297675748785146605192184857052292280264727204958494028899837529170418647582535596838567120391795776627620329027506948091395398560313854987862296265737110702506801585561771034099420645244734013742985438950120660691720063958155645089483837946269772944745372106506979154175463041003008407758114308512819038828459421571616754341469572208774610349881103122781942530773388239039010317267141705316066337304358901530004752743148763631129292787147518827699354605783537139982183994335817011278006631190559692353487724898895547949765621719329421208290429254365580994772351480682716107760036150997339515455295079648758506413698059460689430825149507714359578962189620380876287235697920109207822825395706364484087807882469411315755703806751485883031090354398295322117094175492599924754970594121459758041854794570915819220866192726458042829633518856073548779532993639941685456936559023893301925224402825842842140809064671985881630780751889156742593140494354580792172302801305682532891842527703490384832785777315715070121120679899750596109066188815125314888019324442392916212521010998373182861299953726611760356647811398980119841249658040974830222997385817160989718925461170549634843942191932914807842311445927804158196477664772382793537517806372795453758836677966352258890218390217106050346092493420300217518974332012988215982018869642999568432859664599109809968684311592953324495311745643934818213189132893768703058478188595324054252103878852963477785111879146290490455513614387891567072704427311597480751545806222109813325238745901253265809668446232723318480152745117291555924105152723106109807640819955694950065723904731006211813693732000270576611031228459191930879714439872222766097409353180386300156439947211239414294449750747418298641050334689481506228185863804455448506277940573149022578316075689694214769542541600532183242027660877447133737283747403783686775610363277964818030608309936467534773267910473044859353566592795057447114045637330722454704195368786296813227502570365184401155740125766036767855152730498430582784434411587527902140167230931354841402543007130752216506793561954870511814367541938345443113648859260409567154049169705372498187097537173543108955221587940252129356437643180371546023379515445045277221451737326594118170892702316530169883469368953502610041952307916232764662235657169267770391477189555686022036565264537272826765949581711859746102409110969786396107548695574489517891355560041825451033256422061035665283041363688622237891786197302966734402367227889325283466807382416323538016360031195250529357619717403555537648835306715457749441682178547599031699509432058929874932262495244202644307150897999560331536601806457215257413985716990184006478831599957855734787651091389748924950281359897344537260946434799829472152506983926229638378368763893907256177127896735473162571983088493483110271803616120000187320135761958239505691240856931440862589064593359925005043366501833538359664189362788064243170815262759688206651476773056839718168131849282123480398443172842030700935182446553190250336940394870261402627420611323890685068439844676949561993937970227584116218830839408439451369723136422999774040023275741211050586905798620970496299750158611454152282449543982696099001226098378266858574516873679665562933631363601345626585101859275591591191809592603190200101843911892755485392727710741819687275847545588792173058611341385622224064075304152221322895342624306340103377593789939537886117648901587425478156584884739906491567096745157173952195809822667055785401666563393122936624926756811642171038348541391274332772236731846992916695334904859882613601742427076112349190984028609971949757129025760230409032044367418380944621163748989592512781906528189855610586574555327869848574408054186812030257778324429736210081483281955401907980410414531250675718925000586858245960771452067237210711923332345688071126538734918609299236174589976653891398326838785385218359815148591564487108026971826640069082749050034799816663350362947700028197305961523411605831796927091950434239584307495588461984088246530629753646151305716165875193208323811748228826393096216122035151542597028255501080366818703439409179915782085653646197980395434392940897245442675426763351117918987709951663436560109192792280322538814944497106641857770844221956129969836672784363799174113282906953524617896897001633466072680272778283744009990482630763636094824300417228058095183701725089992762173074039381542544304356059043623079139939176844634089546254771116029161109477975886011139395941178500849322528203610064847438324334518757535689275277704974431133552584599028769195191425741656270983290823953603999527175304670896669199467857519882707528248092439721076343594322138879637757397299519860191752606704016966238716416294013716589122801452981422456813603908933650847130179695717556078472360592584790574553649200700961426774485601767007184473420401762215638719262325924806643639060334762998735665532762046843504733584562618463818809290451352804180447525517498457254051605093362736424838576676373746735894150322401023303556752141846432686008814625498725431655509784484527182079552919710239643792538990854611156681317445872946603443097430546927650079107676437403763837680270789088351352710810789410909862718841939995370119036908721615366715525334262241384606699117533435884773023403077251977371089323970994229067215484504923391011266196507482015403657089578886414206074287453822175470152729851131734848271148586020397258743855554498102929291705073807932766797163949581846625410206993672436820381581902603316257645987299283887913986991823901248725165906448415581092370204756200707344704059766320151420737841138365049500482210472588808613585440416941179329508888111328982943181201384715884902936232221579928398757647051601389028273048838779702691515577558914650504013466749035459766370703629479090053632692562474519740310075589195855209989464035350715999343813064962326011965510385397208266560599192094511426149272905095418943712264316134271436186650881051830374021222214697328986569483707158613485536497806213611700661907302876912661405836220782554624470609535198749588346032809782054376326871804375587512097298137533336604781371224538995261808455298201659323726862001030113855587410570233641050066723415074132214650804044706234075356003674430668433197161669108868509217911143451167723193932327465160050569396488372419900124908844024251119555778355226808879061875755896445557527398262595230804928635407161897938786732971481066142017685188196236980167807117925233772727275869855069322582830881820706112994690420984140579173589981938144391548541692970807515021600490562607653802336222405243154680516102135536898167483974094850289886331332711827983013929316351566910319203744295819021373625004442689568835544772787213176576691550215976608724268942509781170704792261735965638203054427387485687046416577983190098892989266955182996842313062138646733626510463784130363375351505026334763998743998482864990426226393983856943591292568938491798937509647028476510750133968199096685082650904307273320669100088698629783900461564724050268489420964152735406262566305232072383149432513299821479345877545508301404566876968440227934829613822782893769728923101927126229967580154190571314471128860817785211305639015320712942174771556378037886235115861189521465264162163218419717277535339115030231354571765383464003562881148019423336540853446496768160954085399378302844176098600623155769871733191449735748936997657426285003706394577889717691118467384633990171964332524741140189417182715677158990117925872474999006505911551796062147294969739539468512848594618986526061889596884227413805774256617813493362261862553080214971172167562195614454641491432235046676364437374013408755587213028128089288454081502696751082053127816706654186180719408694116839212886975386492292901785806034518579293432275090645121238983513314512044506852804573012304797905866851132321138034589413655965940248905205383846139006940785863520952823870799197913381292332554354440853621665809308571547163753060294498848166236914358353149324082958522713684737046135962276095323090215223098725438576564174124287341619018607272157298690704054592174818071058747171191168771379818793742649922627870917431672999874822914104083045636245064199840326919841299604698407789689270679694487883320882398772881730967279640878437137095853183239309402647493169715142960088833837010161725115079343027160761516985052004276862034720957257057253451504947268452483679427630067196056965750372364871902085422017244873912897098217325645272217776801353824181551705145574818650368071384307110873141224312130110976057445541397899410467752048693511493007375322428149745196959538984438285081244529760149836002878868803022868301524750924991963805228979597362242722485083422924068427735921621420646325154312060961214336046809519433869094805605105443956788087866743000362100349898060801695097407297366116679926832125495436979132217534249216505063118828303617537218695494448639863437363245761292973157320943918729810407953630926578248457614605085706363059107783875226016606139025861224975300970631458092919172366079975986341052861206620663369562492065795932703088768503630591519408055705771096803120332366196736302125211490508504648097331884244697383956165686533472555844872440170053860077800473704613840785961117897962917923962967897088463954630249936749824633619751066245992704658140625995246841489646678209882998517940191434472687923302900086073487354632938712412526575934399015583801319750177714777563550960510659333368094757555846089986928306937216157461745735785958919651918822715689522883747534639737254712845249509341963527726897731097083842513171413814824052609421262769511752283430064866428916806351768058264222664025838452288496158586128371367591472016342236549672826991284081256222802616824194017648983260084948842219420757143920021347776581972201168025367006325689439106364692501618261757317297181082067692398544525181328392937194192022150131517059155277320096513833425209171958886943349915311073506407776459437838818309621476757859044022191777399265884902079911542222525561790134233313882698441202684814708839891499042755398492212701700096125699728486046448523797209014643754606956150749249745588215600990079832310480716550756959327756700976946371018590366548688405369447525867287637747466692520553837190016296250423868984798702940284245021099273409006928277119486088402734721985069416600373235988176033851239142702075370346503058934670837707242413167957536202501457241402761987916363951109368829043995198013935082553568112906262577729462635581954928135803600704101638233391450425560867454694478762844058804927845017243598074718979447287998667850736190017791218113483215060701492305224579963893150018651151709929528836666266556548571343040583247185501106491317976938766069189400994018114145949501275047021411295549763184907892315612922087974659402921685684635326821968710395705065891192525252037377280900898495537326035741797524318303763346516210470601974477273392426391715385368335215606147519773218342170303294779612970582486537582897851573649437141382132014648874431452247662558394182431207000352726099226617838177838411002194807167981266677741591691491289141021444630942153201791652117747835141693545732484027161485156527076456332196893017586850128092311428127210119142581446865071168853865748013854828690238619037250093693669096701590280807563386974634260320066385710410663437813052997564715893908892290809310281618343466162094387061350138955266224327015444952876774868743632438380171528286892692555806920316516492390905778736547776604480136128616253402869817598873424861897610004921127860915190809507326658448845619360799064310791281955522632076366960035939132501926521260421260586860995990417381947725720607140165026605138408088040478940748358408186057680981106384838238565505466845657360237103647224885211071302435211630568947340349117356241427933469641911601303922756317650736434165355633458837800676652710536515160499374009576357512567552905019022666800795168594620040016349265647982343244062116279457734227700266378682938576217249060670152945922154962583260577894593493892137640319830804684550937992251999670927359098060761279636453299030183198584141033379498452980564891685110846389241644363728262359256148800196635564025310838128716555146461292383406821684734095295222104624362412285061232967003308444372433541395753737390972962603961210523257846349697123772166424357823586104517374934117673830615497661282709814965207930019057324761766657289463865705975181363798074049295776593467737015938976223423052701194157099150391045055607760361752947323110101957779337720495010602218604491514205689605785881416399326991700556558119748021808911698729678455542520967912958644162861160689506336823218465332428882693632918374901473982396369774622475071219585029358315472680531476002177533039187422682963480334335800156218291061874035936185085144521316229915480374646427376044439739423948485105521902815197573463175470737391493785021140717305135615514178563480599830765306533981665888047000876895485149397333309915450763730983154078892201359583291831286425006661920978645389542659165699512679254789467315920049457719881131767827236338073160391133616578766393009127010884397650520244029909765431770998703089271464919304354808394916444775101399684059103331799337656464277032125806965283161376752715052963869364719965159208419849296136468730038289753829740955443073535291654579889341534666078311231227013696239170725068844153681495850835233429307151158674888548876891774520691640215776204960380810172643600676355661119567689976309315022275232684538418114589014741288740984053881549859274212652766382418599861250822891992746539933131532059098025941537005325714719329898343251865705010728143623429869927202167023812661051059865612247008150553583274009754063609543721843169481385894913260809807846196251403611283731368386923992874963453308913423957044043445526469071218413509165112003300638895080742524762344259672215788117843482727555502704497850349266329880645540108304051605533908892868634393476943760228179050973355271262634642573038706142105101893207128010303266241100059415630533336468939568624104214270080931998504311262912980364638233985418006408582418727873601416293128747497052552429390449318519320522046341111116670543129569607760289954982788674360754948757106687789798630750886365633801873491954895656469699183656355162072655496890974363115077244980480101918978921240311705647933476894699794453680909873099463701157950823522505320419320936155915009526980999470950809740631984956228325297293262173937768416299682006279899962198842879480275606063502054972461080833249727744236478716468820036882972036900682525474092285573978871057560030455455775559878691210478068167958918477852488480949649408625878408647543576823038860527155654650648979340711609803877667065591221096822874834241432262659454754952010191383561350830238341067919105980396329413765701482412267638849910055264654501235536127665759920504617808735798403065147226220833772189132370571808245307373360326191121502946723422716057100280185228561219458728318683641157576257133522494211069877392760719364767108234746082425488806827697860940172802272823022424774602052828980880243792852886029319158992268194443480432315965726795416888454672927406598935753201557095839331324966636017942050867522974565624978726698943526938132607357693020502946576250646036355375940841957244096605723857427752992302536502962766757777454597489848651959850189404107876931758037164656741377988376153988825815426753012370882623373965137671152660306064652056752630793272779686240174334238826830448124677060247962438304800915825196129221126132838422258072223469087345318884385112266380303706956093937930613724572746322261352274834119296410376942733130508548251882897647838111576949849939873254842287307586064477924334125493114401426279940651738574805664415230326165496861400748159958078270716717094997724306443591288768996308262402199948357095155945678989101653276616278926833457007748036134924921158467567884500747082696914902251184631640863335022258822251078513395001645830200539734491706161524834741397594990913304336173138517346537564867624244843313121525392182357630118670369711765593985227375840282013502232868835124294264169915958743364670936338694630708722275211023135744737786546357014364266953490335868447013033446427558115323642016540427678415732973422348611314915086452928650529445278881476596624710574984820894205943302137068923813208715816079763354939171781335847266036054273406759246838751565080441308690086944601770738699746480640515032594917414789548131840313841735066341903711220817423833748183867022033261826074808290268111475710244294177243301194241865237145370176089854325936628297743425759612692536800660974190248071240845176249379826758437526432796975682434518624216483622579328813100965891978621172685326797209574489077272420022580956294601402969004944110197824376559341757279338230297463065334249272364039775692192808332866760247951872623636289807866050553282233690400515043267791625752050994207517998376329315736511341515933476172933182216756898544625473702182065356644082445821418883298083517319015924007429974113470622105260441168056949205155346856180276851772833243763349469434826397740227351048755532071197769090066271824063423599159299765209182808519812590952273187085351634123002638683628304084864180593759153357305403130966346783205141126742362540062488802620161033832988742208367505239301181473033987659634871917843108862846809830140223709176319965831552878236620980358130569461419563414202882714974130511640075029195788803485935876691327952557964999881868035346988254511401851466534706789824501410678024080656900048269441028278235264360162559455964496192504803167250513197523284564679192816089921061185913249231955813628168594196825789834406688672108379684775454181119102473871231330914151096115787303270688832302263125448485066619501089276056535801686918930096531905296831628701338746477194728994724743178169765857534218271031783440029921970974127396473161185237953965789708726481541664650631747428673263916604985121301201774372260583158980563578376196287551196660178971791225036537167591196122317642211227054781863994110852755530464540310975452097992793385648794661103345413603228096038211831582112706795514405429373902728271758759963742003619270636024079385394798415772218310676004297925758698427819091739146782673857279741406049167667398114393103898221029515799236250878082611363769706268176644941750997753710029646199983233259133965077729942968292355840296594827062305844433473992694918091529007543713057072446021605826744446095958095133473965781000950174413420349137104359514662805380264723938104217234286761687237694220406103687787344591995902942345443791285082340952876941290148704776909861770441737913097519874097780645151566047625670130504284397370397795208552550032434949731375478856453079614685951509626354990831071519082611753983341361847583330255738199165439599491552310566515961413128970634315887420370387977136457108089072636213661413332266336915693986371018956431770940718654173676408322530577846134545736577851129749291307434397242214106072528768189317150305776471222571594736538789519029346463563742436029809411038992286142834353246990257182195375283361520423950630482419868259033231041783664525631181187294445536031288043692511182220860448421845061081153616485023584869060314554876178925881532233223248773316600578976215574426200575354144147715521560244942938169153185957235956480719680883803095348999673122889280127237147922314556353593212959104419141095955516779784280949776590325953611500631453480917175081962255377167897848067050266134828479012444035206552071770508293866145947267503916490537593523663071938428106815935915186315634695889091276911951345430648886572535976947196247177300997135977065381679042776669633871916225305762607191207610163698157665064590892515863129260466948624569343546048897211581779933120040461934722558664201483329230193361351212157626388176962409016672547126350128350775072598430201734124343817426203745778284968831582277933225207808225210751111712836203869288372800172197430874601474637189063661846748830128445662296156656262304670632084124386439157610800007677986600901135207123574472934178537139108780169276469083457732780104210636956412173190333055752568068222337840179308011297038282532047122161584621602756640454169736636444980309163136051974387563625219936698359320057869180800388672301292265097088082403258694513280139696090368176187492097748355975723940355690740746777390649823563566763793132864703677130791300067124619410550354833415285125230359538322172264536517630691627243699068427466383770717922508160849433043964328370567426948815543430982710884559649440289573160595515783004895128127359572506935775408902996921709766992141929460807131464090376868601602992952339912236451708550708404465804489350843947022875146131098512313797241054700170469942550023858822343845726054198854903234774722934428034630938459512831065204735393190863582661416064004386303021579585974328912548742818478136895236214644844198316380791010691966519973454676285996141505962134730241814323587920439720857361146343877148852124538438502395076127947264030591303321208934170827761764077375974579566474834273820880550225797911516929554499677934597487544947063105217724291946773941767565053441088341361897398825502664947140012337983908994238356829963933953719546731164054092795693752436639714919307261269581578764217551384317978305180978013727607726081525923009087975259561243138522610670281377785431972431048000156463050056414415150902387189466262424093086383422165789952743818762950376934975366357125399653972846817702043480050808287830443456665789728311769872978502284650722748905413876565699207317941684239164288910392731215544772313973585250083552494509700145657758145405566499729197889435018604315892776081522078827269186408131510035695458133241016104543565261772032548531621079041393662768555068739730078531889904632172905112637637384523003919313945378539862352970420446456526273781590777807912359856333757674184388092270471031358627163130890764544827832609282720078324342506286310106293427552503330532401635028746115299138192963625924168641544447905025992260347179534565986200517676920816069726530301554684624467009856506428320476041453684931732736049093332597871236216639315173587581812561363936448047924021072476415974789240950955451549533796241214946650453653657863419470082884937584875808340292652298541567925016515400022101562354761315515534554692211486937219345205980002537362422500163095516860831718641627002083399963590871778159812508175227379233225059448343108156918569203518765064122408631180350789384190775028439626793690147281972967820430353927295825526098492192894272946156006943331352897444396810247426439890751645980977633944305021312705936743011673211786568448050527675661711753693491310652325690889021496112600748229764899910787207237563453860845201786545164668201833231876628556751209513629384929224015943163574404497776914112252072734600552712850358574460794726113563145652000398208683917439115434114648969431364847911628838492474207207491139261495516621824194744881492378288970706268738067171880193771305269551298557243552555775491768103707611422416154107033414608527705071235292682134320450557123110621663485312555231667217748576875884217550195896122926141098862558831070362466237499202839972757409532008968514598433872623570766044488623108013436492361649028908272377146630688099035561682140188335969662795224308854466650944883783999025641498321998870105069818138541282163718330400546224047761616019311196583693831138111182306069592766009740108561150835743738749012003698069507016171083122421053039049278981370557107821713583727959805810555045245390765671308128939373688254781372708844482178518688556356845148907408817676712477863428893260343435446540196173133518766346931075638851061601717327533490084823020730721084004390285342032451900462060217941734678879743676670053359923239997348508849807912989344249350525325524700410240349954544581632553532023796842462197948542467727286247195144714799578407476822796121863529600801029737688396331044507894505916554125772798750194133365098612535574257878828576237343639320888038514241228839509381641904367159883719735690227290463835197370578999163558938712557612028471678770722357086590462710107700930562145715380149725506492173065190973981861893038632127633541415151584996196945705893438388264392059327760570716173250214329686166220508011196362892560975497982999048478335158314891737188717038593158330043345122463187052078101866939022482094781273921552854818444564327246779269264586310819047502759702920474788529021188194790009188117267505492049154895849918670159038908927267113532221209645461450939914518804205219507869092354402182947244324231753658544074409773158498420103102336948142393776573721326788285805994471892248543496480740236372369146167650699296500792063116051267842274775617291968384141178473607676868022492058830751840906331098430847952901516025606048525319554827808326372733664993476178663978128191320432437674134144909353413631462526059239231657828483427503705401937465789479114295438724271383918412295277254695688474612127052423363831222583948456693832072194602982056038776110835778162643316520836771696374216183434727302278343908432596975731669515211067290522294388355687353330211567449249561822138250864511486238942976161261442966815573532587119457500595209873694888101950956377424383543823383739319989210794207629045324542462946021929377595174545270106049891672084889223553378766583353743719023021772368713502805747953762224901898025122052642653647670184589010233159473191569332357680074867949488737881888298704768195892687115506920987936482990194471749618584957246511781962479160237396468248717380594305755364728771828845560939726781876625347223083974546848754069732518901162880025586811124501942442766348340186741364223801564057122386394684157690561372673414211190607384607728409884458574803549372292564889562280178555571107688011571943924000777091251995953781945081971015653705788841518872172185008673851446775783972231713726025837177331702248429953387426252863522917908284915221661811217634462197987234303485912035444605721327500171508512383188638974162365829601797519470384855757633099339524197015189514755463011106096511453445633294530730725171617011169428337035987074330313302628142213788099167326916503078291853900220388649380109344415986907197820852929529500615328878465035816462028567099216665550203241716247111281322091645513167436106517014744825368291246493383441159742005508495181175466042612638479470807665415881949129541813494895223217798665435101427871214410477313695916995851655451234178203293194022575541517719097744770592828485880388741732359585323701780900564210343193438822520993805057714056142700349207123702401322560729496643288184062425942977995754955172258225903443968966010799085958020511726207493366965301484895004973895133869909442158989993929914631313536643053756633086982427620209874675913228962427099212403481459500743459693583458905348368578075941439951753420774779180533996868149106873178657918559640476235492208579179618497568719860582416048465169038472617587875252469480852405636084361895881170878700627250390337238402631673678857540868311034405771128095895868367125997685461853297903410595069922241645722380834379011152408905602302745326592877676091668243519992409060089333383656934373512771484267615421261199757521866414365848109439135414383746724045546664215761103954296359950677042494318247874831985875564383035483095311526139792156492723611904670722444843677431381631183368581162769484238681086373137744602461279409281796451683365864400334351174160947799520548889120648277739909382742083103008587398954890184637532321454928738341969124073563965342533885100244284313589994202873547566621375183028034219468154284031901392487780609188064045562234466893007024528364476912925574062704039202192792579378143221575564623635448026086991707526480133552965513412117222381317117352445477539959113308134969974316099705572256230150091111398120476276082197586396482783058842517708678059370649190466775425226000717209229453513077656002786711588114874857141383076690721094464045267336105090288923493098211835385697176204932216955915103289155157012253519172315245303321615005797671702547724114127560303523516866411221427851908733480082986817705509579763395586378941414366224985719848470258826390978614570685414814336364618291286655619898816483452030499911942074358437842742022445994863315963798518874043169205772494807716647223136286693775254847230351816140427394918952591870095773279614234609735688379600208757684662496675752386781729754535523717204489439098138072324414294314671630344949834806711839798562712426855001739544631692874772099621878481246533097389499691609748780700854140311976662365013289858389493376126114302970256861988247795240006288858745420730848770343548430174615437589813359838244133115574607156047822784970320492482686777652445362152325270791010664424673620150754919257363093776016446856524727290793648941196121895036918523052524928350997246538884754541428360547102180868919047519543322399857294487562974514148119807495302598026975668188898024777454797194858645111733194421738221427468710860346797854624049537993081242197834106214430460215830843146511902092387424794362273729236450451115873262659219749703055069112097061915327364121469747835301039341520516657145717116173377841421032595997316985445905756748205489664356457810987725639837354369620341270546871441169298877281012422300218221638764965876313607808095949941229429363768154269620996976333552394726670399860675475350417883082303405846624426485018273805386797513521766206202369237155371806169318524630838152060163064870092914524974726607379880944330330372693810663660361542965734692836434054973326264208600548419059543127899086881738413309537475210836007808046668917761510321502904972634325260857293055438850781481628895244127810582689803030833958360500172192580223053725972150859455427217496291888489480476317365699863249757474823474515629565195452140083339254947365833300912227750731844784912993619045155900987924177109411697401542661741134276129254424546601198042966565778542714465793504010099128816562901190339261112563245421203201853367172428758918685699939239090549362243937220173820468837030120582419424224502125157977261147631754961953955957639183474056286524757590816252533465652964942271491938815720138430958588154744992518504736244747061215140722764342032029506384663849136235778675407232065561688400169421958353954397659199067914436521106504366943371082754015771142210680739282037513146901139464126671972506730272406797138916656174798216564678262108136072556434725373628017046894623532419973373266164812204697096970327023369597793508177435076897774579649608991929942618151027740447326016725208192930303355174385978674014105301230216549603581291323826467092578442443705365621704076083430783396905289365185430342925333279024737806211518010076286897823589969171520098816904937950835340465234201884484292520541125570829387730524901803336498713807683502085873871671182687916542861546145454837037405519983051872676385949336600260567424342728517087242463337454853042441113783828512930076869252949758302486476811390817861403369556165794543237558423920509005595739478462283479061646590123904947384488693310793154117161127088260296413826974548547310665428027590729107161199523877131987830810617237298677564966639492661223913518765459419664713617377899674911369218867817903337449185023144644265587859154663696771085612582193637814084068169829301347651721873587992060965565275793184714166141163033585274523298067696686808840259086325446053916457162186657680130297229752825438796999597260667432615261869210131127914034673342784864206143694171388293222007041942068654784515799731117437880021857246684672537669072030809816036425827839768272631846542798642872453157701276174258890920499632656117745483058501219765813602290871243770421820319781951376706553742764442294419867250742828744199978304781832762486031464554940691044553837478989290528638592490439166375961979181411442532528670203651879175996210003968953279247646369813582009100474793051656206518858432341786867614387305235682896711031223832427547847172188884562123449239018142437006388956244917452080074057069601856170909331526562828179572918494399541940829902045911668542551059578922842299381658754074883201091735287458431867945566364526105047011047165086050578900302334900678364748459597770879058174666077604567376449341208567628627589026591504745920945959613734692816321368869452859315817713675127555817249944290467414734664551198167819614752028050941540252685260646159889670273978632701033645842448833901062377827009998884783543932100361373327995568656371721254298843940489832869853988362823067365845137234679681768978675310580219946191491015288602068458949069900408350173947783652674786706037494336062366845258948299478037009674183372796083638244588728772996701785491795677676529198090581142098717176442760423505342635280710303393481918682763683779611595724493130054942776009473205302440808129797236152850630653286517782089035791220455498136322623587514289288792023842110859406308063189208056038269980024527656435225229642445734882802085632877057574877735321459014472072885209822154806260493406779343344118180612335615011281517433891793569237925065174938507507053137102588978290809395266788897702183774421636171505480035584846898811181738468897628021504334786926695783688324489494130643319271673096209822805611856031808882025390731119436309092707476519060386767657978723004085845936344704720319380571691697306322336089858862710321824260833168036527578427119467559450792582426129468294617428369637798664364286509471600458333051087349594981468994281787304214288504390345372464568089832205696173116149163152262014874127201907845232141679335208467880334578119710408856858534647868246164538433338691387069340501785527209468147030316616113211239070188443099880367113711820643551198360176750923777513227408162674775736327855558746916009698228530290097831457487207531034016750815676296648566275973857531458151997149174026437715491727897057605429017993525518850739466661053788775827036033265926824652640796856346016471658859874180614614119299254697943831430781419331987980082189442592438587023463859812934863940369517839992426040323581379406242206716352602938077881845076744940541051133581874543209857314891076512792215748793875944042151214743803162519013283258134441584377384355093495272220478072738198768296676255667755968425741183401877991983053408916851135379806020731681581544552549905487776834620412541728588880025363964639544692078879614468913563102554562655324951269477672268656407383202003752136997094760191949971802196863893889795343414883445138442525226860902186597085169056816532141904995732697214100873363085122722672177427638606407501328414431405181953866932111993499656025564492399947785656258040598000460615885787538550064860637009292404971315209701117798531078800477643524611618764588647592973537615661349796375637922405773201529183347836546271651222229528624664753894139676518313334865620862412144375857782008515280494366930248707710292838887676028994992786236872038121448909497117431694928733152512895733492271789410434947191378752221243173717581343123363990500317203700338188231240958349467003296287758796575283002935657360391307738968958932854486096746183779913550811389713883676351387890698975131891506902849956420301170018743823502249123675643508237609204296124710882272308183839891174130765089839033375725947824541618483222541677257023280313398514723122314432202559917661589752603521504245850464907648782810888044199907335055281282007400753483670761909875078342699707139095009978665512075338869248804783457041996366987788071995270858737541976890185637483738022967149439425358137835160775305379864599183680793449697567270058990750409320501408195232091917050993398560727436669992100908452675358481818189584059903875134787208499434713140633189183877372457490077325891407033887659562520633844369875670446356152516894749598445749658791287729638206935002189554058882194665667674179505499842498204471905307125762128051911235412059580042794531094341854609878789675630977285786198427498402223335198187599496715261707930244587629969367634242213611615758044151954337859754279311122594579277896686488480385548131273985351758610007671241822299998128379050013018012534108284872026320640698697035728334358573068631092741775392056276673151941342407232313385106369366347144899406481658019187244478127608451608507777889686986337465095292257425390919658386674174265120287435495290175000183505885912832921938214112949700455857807848029287930029471976774703072511445781988755994137249563360602218932954227307997862288971557515352354041958459548599978941750537239845856925708789731253366614163816043706624468307499413343910133062691075255378101502695266795458291775126955835029125634443474128383264205568040171453598214317811346409633175584215494543166795444837977014474063023271902401529748397473940260480177010361216406637215718439437831286438021553905230795756435242889030457032123629502464304309195555074556392404075473650222726306263221505680524592045763449043749100725374817307514850959993374778113078111879225762819005926137642386702036144679243353270050605243204345661306749411334450253510847115382701186567491975053859459908573042895677004963608759839834118957243930579009862329332105599365374023353275515334807379328536586545971787007268772810795836664659678152232842819217175099509520081211506087410180056188319607948011778294181810791690223643363441252150674259812232619545680596884970532449142634757615980180505732504621837507573759290185007751130896800866731319815330970848419346130129269595863444773116268648238078488891815379459456445137654052035862869293574780720725629252403787207207806009090580630065184806736376993479467876202615943859206604202518079541390764947186297804800738203215445766936723431752468759926625351379696372336913330486214451514619819655080954701825461779907027441021505070805900452333134101337527227112686276749276711227176469820130588402542496898015361996050046503908898292217833603476478350642829471834623607744690414966651530298864353963070774394774479538929238500847348687468978855123356328303911079879566457798793475336997388517753529610636445226355805866245233006294586858251133779400247541787082115176537373119938922375543134614506565812589950682104414226736353647160279658218316320386386696666137951544068915934612598043091331796230606861507637471462038583304110289469173312131406451933123591006564539280400707556542808264089520979908917597709458501379392836601804233557865731669461151283575132545896030165328478617142510947763905540659719465622485078473336906589565505631898840146345201773026251286062413045910568877918569972184626112782211269510554061799893260929011896752314823737320061929287871849792047589186330161431877416423143488433878573347628998869484990771284412344026738567615802564786126863509932938123650468758943031527198232878417791946341672265305720470383676449576911145492696615871924938917854338536984780391236447338636253634517537126405318557071064490159678121657897227154196047557598746925088063111754316840005463924267817834799202533853348096689182072447986474646894636440060219501611520394763785297204925207869532367734995649910236069186555122102096959392746630794849244625642586874603561193210501822018150990122809694300139195881525951236382330087174978085347093507419378705710015604500139990177071654066678848346213789951776552585497219374848034747977585396538351887848493481510868176542400124775074731843896694235602565733022628050479441585550399880250321388322573732210582395237086551579665676668680035856458893981457281478673683240502591912506100819557925074346595009904054292666573515599557046693192661620852080277616373661545997497308476869295521070237383053526083262511689739016057222271145350573746633896427508567532015083714582994077771119311623985738847909692628562894771324906357870060585851058703040260810088610243082881118475512056016755826334112826471472232343073903640522907395825522517727164977087589629463421489820917693478494282166315401819059379974793971822316380556284880143099512465730913793830803091392052085062555573027009653623329482685021212329313526938719571223755552753558829685346154308766790133150510250249274317580792729135238487187783208741766207729683574779713398906258803862407570973888556913342544609378538824977261139183339959966513095768314291926230626867472156041090110229338283098932597332948881300698891649907411419135354622823046420235590816821422429512348806487899099520549636747197925063732109367177445750067781759420713380524967636317362011706838103084128931238204771167264727920181818022624505451156924925182210092868591816437861610584905610126387095379653273970657510311790453757840786272411508692823596110230296757401288299722195850807628715533282042147692765141197926225601251492857512874757668861047371412468794385717417094364240583410423959521909972630790075967423481691856425074085821517904304732880703046579122216484878282387323721472253479555510905237112829903461745805380386604040037026130650527391006197599629986278370113545251746876669074279994936540310009005771154026515279723003322357796385123320504182590689722440198856430413572293097631566950367617093877053560048606278402285514572082101426401776480456795385767223611220763827968819082877079668923171093893933890696632972171799133862995213812168090825452585030007866614003950778219482620276672920567873933046557280263451194124204513812369364522666333079398481847966148280379315552149543809393835920611932279308977691448768200556148644979458172791896970035577061785667006984786629294405739539206718267331768929077597493613004646280511924847121022415117420020227124681458924261962996130714435677397891641843172447089346208030448369285609588609077105203538856612795480886667064745865098628074213352014758176412426291607352834821289491277477018267279058963520001378077851976113899299906732179371923091021889684392463826094022501272221950559502450928129061232904695286596183843249720058249155589032862519858713414199599719419512604066605050862533328189002353159355961121791041983216654201123948801546157836556346613151998558997122293852155513949869153640955727336932525802615643630773369850614166849965110921157936563558942126553826592741602587286428445921938345236629965755960078966151870791985505651125568417796753257155121091005039963431478508288953816113350784973905646305166425599030304895734332028706930293446188103880609246949090970100331032431691581191814414638262667173485098165099309989272357628313997550889853994206914564141011554161732329290223112940251550366546218936637400008214010257464674666618299502475607411651851065861113619811503620694468523578288088370628122195988227770863241899372550914751863269389560950130289669856734843583839000565842600874455345399193471975868232848806281879577496375931693710105365321344964185911243294656432563199507024258905286416371933524709252978736403465540195298237881247441950352420837373375346819280955423288007981691574400577893659324237021202745834720735216277381769138478641012141377517916863517644013027482072460030820975365665439850062803201454196781744883550197956774254634725638569810608102368047493451063131022755620468550039039263971619387429698463819246387331429638335366919269903957749338817911227347358538314786380210914632123372002476971243598966838287316165090493159475983930619117654001018153769728174297239365563920619903435825739847341527173443221949019351708447992722935927542804876429154154900352587925276217117274617597289960667539031517260116786911988611691736525589327146413725040745720881350281295750922177065509563103878599647253551899466980169954387786278286910895427465130327496128258195640924874080026970627809287355773872198935963414902510094762236084962033860752676521690662487978839489942192636972230255876421476787590971548807101538079913668156222210113085070794559064519255311316576975780443524224230540503680644332271542846883114997631475747969703361746580726151407964494071499155480174402908705719528691588594142432098089991915713940182189352437072621017364979447682240453301138148528203769349072578881027809145566539919380421620213317087921255932908561939273574475979472716529001246167382064481909256361425782563079201148159775739331238797533275856105762941462553409499360094244387893403929483951320447186278748857750950132781835773054493508536870101550130001772558374448361344257435058139796447591994973689830723140446989240613201773231495976128662539374418122662981477367185560303896689142506395391273292763170769359221097088077688003955131192911084741337174539287023273452986818003269429753153474465375280130345753028143460239898072904390370836596019476111567695594412352193414195860372833154116107683225538772833986841278728807943721312751169402082322382015641248902997392005937751359641473384944854533206560430629433114932190163569694500154668820959766659838191408506940172809315274242458432923956018613459397030162741628995484247938622556493551739370868958081365813242417493503514161805149963819812169502873665156163506406689432211209599924550483920283675631611714431007387576022275028773431964922921061154592369504035368753291884006134044554203443768534548026447604882638808814605445854566324017715077865229128328173858983818293077134665589485807521362343360645841526872646657429321667255866251298076663693349994414360442967195248043050363506681112273661815216686137361405942576805230364901918903768271889349876236338977982430741296253119641526812922385292412335109720967213143213569554038537189029882848226585575194654308558920874622837690535248862219285973213828951409339284601733735853249514887022982440581413703401018069043696800258667720489449593236915195979857642270258786032044981187339563413712857215605993681260008315759013359559395755526655097519054812731639997123747979818472585527126369493493557306624142453318885416563864291347629709289325272764009978234985361790783010258571888521792310541415979953713347672509869441903912602189820240625610259244358547895180024512999202921994732394439233674710532359378429781475028340319504416530398406017952373126727567272952740171977716798399866372698072999523185831939396265145062722616176054099054599394916692051359230371368556617174108540297450806813018620129273117598718219309138018972214805807975315032721026256123180740420738438851444835237119951084397493337471281418622113164188509862081862025699757707513062264807735270466814418439691423324966613228879839045367770668585719257885204092220402170643325748394910896088616180888510637547016036031562191801458882432588520127425160764500547565481278037283598222101114169241206674697811207724718195682157594750856922146506923565939722228095685623220521075645890970027947963354022374699895942491789013454073051091428148887815448384886194774488785397612154327351710406650495059422873789308927032196170312316030284862480894473581601158572568654525917891011598194867126605997126757458830803047779814383526071614573631800213216216159111259597701945510254597459434135368271789190835415126626568612036391963565874474377920273245646019735085464568135912093332191255825401875494496285723019565136158600349806110750164453669024710418808992037309023534505949806094029798371161181678366744204930736200290587038601976066866454109441105155467487295470517666036026881007144092108324382559502169020657011617477845636725279192567294512074824314870006034525106718940693845116569325414676059911508684282554315242500187998178351665428144924795968464798303647994081926930385099880834326170516456828801146763372995484740583203366305667224147962729456480991482277194193255168878769685250665136859289717311529696959627920068180259846560405621402341863229333535025487115128780130509883533199857743163550106939749922610115447520531381823587262454740275554397914216175690769772686162086767703174786007950411422971308623985923902513329797306648257405239744702252609671187265907398162369299634471648066381276131043959411026314619364058843955736139968839324249960122356181743793540600677349531556964237417550558540673015095763651187818895844029041760588070812644640122754119091390680627746253552118061231864527019395532308585714371569784848234349089888347027672645266196811306813163377997628585472796633638245922821122834412801533576811946781386703907323311470257028233424088470342967482519776556527754544714907294376906427424426692015534133103957955088009484047011662003100722973906698182292090218869877783676280491988614467425744966269298342195857365417753876270783329086201584632553877940014851572504239074514134967463943891487771607574820979322491844820140802517518953841087746599428984913367489511793618280119832499137807329747438632128263555516204808172291276520000336826735961942654839558005083000143038874840756347107197021670899701692989935434477054065867461015749751331322220753895957406747143015767144628331745651820237908242659539884244575409734641883438915353588051505075807648356023554526413850731745037363392558735542425139383734226533981592758963160254343389522360395220938790760156123811682031487694818865467749064209527342336764054572558778981136616561721895602263402087639844353828101068257781298509341595167218050572997142118079821211195226981597180005776271443782602604865943731019346423392396267110891597610758330067579476768580294697545133523313509616392204987022669936512578588552024847039003303561592446344150197320368601672401415572859802485785991349101169218339153360392423434965447364111465830558652960310994301665389562595209194139642227526726270260227643321865831455829659199953428369690649070991492651511018940120462402166819551815548990168911350696982173652586151525126711013923642543589033074953885828300215880851707866849013449613401800643263627173426129246482294166914042212376934685155245970091954608638662302080416650150340870037255033013559604241154542870690054631392595487246777847278257181639045631533991015698019261011045493767199686147349464845737609220529293795782235489328087850622794774801260099165778116408789203776273675715993232381383857585059864702787103739031091616672904994244965762471322903710837476491584660275120669192410560574420494516712264231024734874340893869447292178757504498924902333655212043217175245342623807892384818121590385092755023731693464949254728434691638120645333722738003656169573618005187622484409129950184110360386098232484105317908175142090963775915080405239636247855147357463040668511742554005301932097917260234275633434567365359038756636208530780677695061664081171428972139204126013744632564302287845467264083377986319093506567157331229853663562256121079376408773110882840142914322884404446587995642859844682596774099179404074355316234876884179493070210242932844141866658812982840328869018828262235605497117191265488457487838476765002749723938692743646687918832279805478998966914750142372102032344617073024119499676129746619616534235706467431031306733923967686195072403790123925610157839144809025302646266718971569881935917542190855524801344764372129165495829336754866646816892135028656491462988799586175352446587338545904704005150139577023331952777546651249764501721961688354171699860135764604349134632779895352652233669433779288936015905577458243747493960157492157920888519514284610485924205794642943884929528232351307289892242081475612872907236926672524043393702618737689870614999661192761618654896384361873307897189248427470771785116180055811131805101568022336033789879180303059467799416712263312665549812970135805033493170922226292196386637879855240951158113900453839146031915650244834394860463847047781848701878852878358200709143114014798256635464222895082284355932088320946781386588584625418820919972395741400775162301903562780819585856242623831491981651795566153700761598834987268323924955022362800553371325504147699948502691262322378638772127997720235433498716750223358111470482887661961722574649162071526778698506468676643010272992623541322135829115572317203168823290918415217772177282478217997044852957109383074787682079657607368141580693251756170462621158066287077759484587182059900530494524750143718725605629994064613120232694850146061908349374833185747800299489651651959043531131550150400136957135495898629121229003755408426040777644792780606684604419535934600401704096199366623380278725026981368251741031314270657088116311397217067146593299706138859348334379756882408656971585422852916665986103021442454552754274614301035519788345601986147437739135825518064277514559101590914095510375457018158651857484713379903989911436943226674097712596178976117833647763969245811881953365179935071766272424555927213477337688158599789160545280408671252816837773719587318581113235904325517276869078091525500673712888265091088735807340502218401421642590162399034821393086909765972196307491850354744068723345150989833513417664887847674056323845300975641341570153314466397773124131340791545894341726888585186537361378206996890925472095331874330382899928389941101671661128377807699602476887635959660238066309792661884788909328536682885262738295057855425654384071257345727010960517847802033225276691286354637927167476325206513451832318428545704551814005556437664116634262595648339519746595985301744797850750901407170736009350926412101000087875949713748610007300739810846033381708807184734521523697849000711196552741628331284513923119136321251459336918094895753746448634983649887183627302316792986038601744513041045737821215299941208153398477823172612829228874850562043225480971161909144822501948916835327810135094554525940982041200625980177321174140923942568725443298450551728771482399039314806670053315377500597745085632783784014542008806288011021153090209583772282675879518117996063888727254935579074729121771772764649152176572424686562813797882689370521471792575970362982467109917211467160726736460125926384586459915686669776165490681279446008019787187667721870005709775488225828933228586713343939777706864671547239617335493934106067665957831103263271425482214932546338279487749336632885495077664203551690228293580918303893026450626958897574909422824987995086068665322296236720517065217181075121266804603166984880923734763470166527017612289009413712266892831745484932554709643316912745531153468548773873048974101430068265834191905892559475588895745175953316809717009337449353623533746087145580995947989609727774274516488759053399551717633153501850369273592544321498423106190423111353561268174652182830076698093723869044416974643121729621649774035507249217944647007736978964845808062456177786148744821317850636149991621305757201888714308241079337917076629966404267282261795386514146616648129236527447499508787458533540394977994962581014352982457268946915757082604936812478425448120448094517537194328168273195394128843443974156213145892931913262230159959079266075288799024762797522549157008151794767031443591311304716995775787165078107787914530158281806839634007476626734682409594158535167611880531137320500270904890022884682179074618493005186974131239667275323924311501300205539754037648402063194064054585301414880970513407018275233464931909340305417493777237574475002572880715086702254095291290500156246621907253233666560263644373927505145845812510103969850552365772578691237058821454634761047142875271900372452349486464138981468101294270360220030245658744205974841075655448672322233039233745996226535981215381159422243495621123961154513678675304690882379711948152763845962512352683843557667093685113601315820754171221773094409718323059694534150351287323157570211961224106649221039734431266089840781867792232890181641052283721212425643508842898964097484266879931670361808150176899872068983383027397314103774420196409965050445775225338042488181417651506975699522025372317771721862967863328881529364182387437093034616735597974048364144228580762252386328874434414068373218145091094301604003219500739496340293925288631111782128067371440255873008688919733860072954997068659608922456823800013300771957754052433321752563497458994736470706077384003311348778620416645269896993659456637390856386651585433637639163334508677558934445199849416029855450784856732173231252617457952825761671757334159707170003592625009868083406657805700509753479055217180887269387513312613401622390850650295736499164540689588134309591831960454628204001034584611723581927865511353595035699410688172927452693888392104062454127500592502467368816640361523242090741467927817083862955896106761242310571158473417100187608861717701409332165580719236320370138381642162778273379874470230957395239771269037458472981752474930233585399557307366573849462008003531996278873691405476967310012745484365463804313801961669957504572682589507929369664039543531273731776530478757223724891761407839828087659552635750098658870980583144531854177707861515615318691685495288826613018473092482914406269883958295733087050261389268095404001944354912792598193589576328409170096043328759228229971634869684887839149081378572493254952758846468714824379796158464973465413220531137553295542410971495063882721787543935412045479700642176026110031541619430683412399049305377644608861555413868939628400212128618234987415231911256871489024478813757266001615639963643883963195692112570029224309234520034926479292770558875713037367337067330735255094279342365343997849050582271478131752720221242382660465262954316265548375354006079287198937286954726298089602613269320659456948793746717159286787337765196374588946087123941324880284188647590195982159472805298336841092892215313667320595047806937599512636161199304684134940661334548873161907914226723325489992205143237246379858300248013923103643091108601189797863942303104639607660852983169060002065652069315549045948452771370665360759440392690162828224129055094138899458896226786841233889834948131468476195688319880735935162905667448864393051864063275491020241302666988181555383997439507656915431777180027742832902186490550796675406908236185460476401102599943931456663018962208393144435432365977302403885798853830096154694516411152243210181011189617521533125251051231038512361181996186616450164779352727837968338714841892582324555690629851732291531779958277943076743527211136090950696237615713258578806294191624879915448799998171534941776942555648100216631104686751591240337776654357241000305974886047957028102254734582714149997183503509234520985708352358031440091185214370488068518907092770145620547778762464995883275068326548827814381883720296406750436531637171924956452730347474302666243607033157048702245973305948993561456574887067446148517222338879553383012779278652685310294579927515609627903082253711452582319754209992827775627018939150757165885401705076049465698100287041469508748631538919919863367994200310423809685644200354602712337477856619754971030400805696345113221995434827238248892534526121668173619786567763753410862295972683969098897494197982802380435467971271438058301527307798210102535160194659536174832537853423254045526305502171999599537570200828648303679586381112246831445616249991443481273531360919835006896198490764560273283766169608009786046973973873271864856269721300285610871685841602944989147842510379451740699698918287471985724959384234537165122347090223206361588519714284011245002679642390963795651904497078465027957476105510400327630409758175036875698149961433592488399592142828002394774485595383829620662371123642827533960155408958156620244358485022522075665720624761033942880838239687229683319655176877276230783051755008411732018276029529012470455114957696670258462546687014672406652802689487103607620998103132930559796718471272792471971840492145238587953250172941171770230881917214063929268597095624402801233999779352417414478037128795381159682655232393145426161788727485261134334472266221856545163768078076159893940297590280587583671301165130593895645641469024245593488210266066322846462912380922056380294930756578781537186124221550183800267058011335219292141841087460930578805406456751107721920039433571697639267906884864967001666127328797868578925312761202587716805712567430096062191690243095049495013287075964028101240018069977030002802628245918617438425114283286954531874259809782497611791616201915392219554549304291808531145195832180732117122217774186410207986955579688413085501212592005162736129846828085121487584676293040771284807908339740271345862809591317974214953265727636153938964499334275082074768843084495291221522412192242957219570618082523924851349801206480308153669832070051662846764188163588221941314716644303890679771363704886653158303076881286211991019612347940008035853328783122079107380322184550313864773183214664257513331693457927082915742716772511966654821963928819732132788125141800060991741308373957201042246551217167305501667921639320915582591048194878526707311842897321451539465542880684263937628515541486274997275305144457518754393197896938527554216888208560799581960701582544185695702648161612083556450218553862979855030982738461180470609407695221045380527970171994423163393574317272774850992518814204711115420675614334041326953634951163104990026981824074543870640162198321008986479420594474938868349762061624322804610324039447046405200647295491181898195622454987003247091313820042155519746368346027384682233228459983192952340048517012394800796544868654736040096998148250247218463545962527542847249879346649690714764486532859485108096909204623488692506164567850114968721565440411750653649811710995388598132805049540167705729454366163073198557294358383316691526104764860273617360820970229580454799734567826924750157172917634905927895095585034226136047274546364306091565752454878699941447699688436075905457016646453296001996442313919329366613375124671224510818053219568560285178042056388422433967670486524182582725483822028270077825989874479159192028050310802608654684901491732180813975902719403318612324259495946456579638765933608845226923823227595009893705754320165202206032071768251021432769227559314033049154471566473604968771269247665754692556738821920581758344651807433003581564388457173026728508457939180044402920894683693914497512836364370905921760612380647501957134390908222280351520452640389482184538280268249849439342775816176587008897969265805364784147453018203420835882806244661760937410977251474096888624353245574118391652266997465187888591811103007685950359752491708282363112344944103672715914493356978898315923023791177674507328674304213452097842039117043266185658701225674501814084498154091447324391934643053951552396761030791157089750369732742577964750694811971796822833309144751100342107527091791294322181179588573036647989512017817193312995725932524744072409330307606375857894080885971853723797700917435056013084765532766685130934099725943251723471673962324856875220827545354655113373828026106187252818507790938618595935758007561434372892329031140445955998143070799972487526810868655164576160830781831379424119279660996394649297185190801169641157365319755821995961952292314621087951495850617564186220018792729081679478652693674411701084517390608903673880872441220427670560352148828918034662829626430905160030255764913024309680443133242061441277459239489358212469006341773037983435288823493034823529466412350373308682535536964066464877652051101717765434739538553261894603239238783193487302318945028034235965762222698272435342191746705421908644625953600858629811989661317670134984353030411210391702649890425878067916750456105361841669453131334830178884722979737566298421491915510852523146269661761497839326979179161600799796056701360011324695435472988053645745013808763730110433890951863280180912912247467319642856945625363558131997471202921828228206521420443107605362731556722487399243356358655775647996659680084904417211509666874514135891658281183490712540824208974157254733670732270055444472710870131700843150954234315645728803645727645363750039569023870273312773079455969378244300951105087135347867870614375706553119716859395349475516748337194798124555861787841088540029488848665894034717885478781684908227496556734050134155210175574759976810248062047162709762124893698958193096827439577029732301326490559601715748292515110469148493587586798634014623453843745013421949510916602318882955994633489253415448988079224162818613939520855009528414344110816646014867889831466123070759518960502360080423835749149585438851265946117213338954625744262621430253294260660253630906571002247962546360208614330295197476505844329073836617512293032952359768151165401570323434210744997714138443307916469385740517213290748348039761264195290335533092826021199034219077735205626569133203150979565491123094626396165789061497056980322130599913804343373771451419807759005910328951953703764756078052949596925105856327339064979855827432753922727357319822871065620454494461597926910470872407242985248157992183639751619264635258026304783131488939378470216654374505395535095723479525258657042633516038985813610913012398708420902870868487376837147936466408414973947136196396750753074306743810240217478571053369245490205843974922082903486941233181743698801255392315042075850664941134365188851248796123726731016345422393216336335952575323646127003019514659110944356602122490456072036867882835114586615151132556586710557672141143682770197766159269274221643475715296092618209874654167090800291440975795120780929772159446730546409040354620656330575105234328637115786484539349880892851403725295335259093505220743487006866284888706343870119548710842087529626170684382748089495548767447074862119955299299139781303657311482855296113439077912833401347062192855179667068630922429071545617429376317905040978681831689284800603112702478982319615895965098614691234630562818053749798331320172054625381594716829353140639871565396599516831008796027148065039472438167637372960318987737711913495672123998851980439831974810082074682761991002114532686865063714331620902942742964457280957992737746869640594408169902710137998516418454090156086246265695715350806829231128446612000844365077837778048912342886298842233923663291906417897440525311117798930561162681084765310398936076612091902356768452526305211092346945256743127083131916578533870938770737146504847189055510864708390751668117631729521994706895123769547713852209211176342839095301336567268538421181889310913363897028372786027226209992460901752227292794525851799527320270268447991062007201430467093347842685029764774412451971424069830314130483958237638938409894649189439342585644955055614761057596429972456657917493352944218468488768772745545563515315628377399998878353109532247461648573060957737917215056191626350561181354156417395647697517898983742792335179523784465702968484152568001300474391619976301242988198140291745609985204866750142851880452741898956638641907773930419587029875594674302654593429906418385396855133584900365810938893369013002723061672874016498677631672361879712864145789933305147400197940791734276674620406435005348737937102184406182577624198755076702778552539173506023184154744701976677298884367042947179295554062614537512717165353678432941598778025333536427342330444061736847239707457658021137223834458441423815384813301257933818845020071006680768200017137585658779340997158122743889226617745171362891795159285625897327903617764923397566574155436790070432920194759099059198782993413889200878140403088624987370939410922103591086136925664689268167764985117424952265182412188151594878509523927054930549391479867907271986668374753495882853291580434495415182612577506351847070579919518098095574736395340862723835903944919724501527696794716735207019740502182150553475477324754323510698651180616107569681164184194438523883394684323371928270802572444091624940312700648600184943827782870790146823423947871881141402389093209822843159199781072549798654632766042056111310482088859067295649739584997574320903255471045351860484839075661486190125625737658918817649431347794531535808316584564820564959206205637128421182449242626388472472306615796058959429034606027170978209666642537624979776278210682533175861289166866226888395108200187430203995110683954521434750404869609012601316966537518986231931256183852305921226283843316401737655978600539694496946914745719036915464832248624439211844770495083603101289192236806743540467308101865574159875100983125644535998972493108066113513887458605578115964760084637706552117947776501686654562327400615502729032347526029508586067131413950372441709956456768156144134608248490295258859235920004507229098664617555585752407766082187138019983588419646599991134526468418430315200870769821204254251969590619791825126885540345969219061317123861910041005265030356983614260314593572814945377431500081500617456223197867316458888269449376721168337818757000811756574266932654048187949327585007962861408120394107788014864611308177931976961835193369883638992308708110599725085501019740456276334564059404283546328052313191677206718781682033961718606342658763864250513207082721012626462317515851550228802167791330310447652822184478304866500469801012274537989272670192372334554153402438972650632350859793763444431673099967525032391689725811890565550876981711993367635860959590165729517415626734135913170805245877979141703113894549082382155079927589962644957332823826687925835535841775247152815325016898621697329553183509458393365330582320420177571373386470842521137239540974509244749585421265233856233152920191986972795255671051116263324100010540760965568798684651623421092144126216815843349427316691395215726187154295524593301977067860798380723024773801192625729649116350970064502516821246102056662971779866400092075068525013352439089792795650102658781131293853093262826546128567742236746963987697855579675436574225704763816971628805216600640586939258757475478635684137050736717531343638681548430933228172153466885245458440162603347481450273183604119491479980162663315957058597341044895416134911197922736663232521755829700307771357122799771956608441761296634592634777734995632850941189344309568628827107806129219371021043094060304199752601957737010536955027680347744094189611725651776937852037255216728391006900542872208373120579016953455873581041199477406947052112326894619860745153541216385829847462472854653389310800511138171118987786339611439888952732793863125562347168115423652698675016414893016948975486888473890283666609821716846696302848693141376839331497111101475618871896987996692051297899783895928726944416847789609566182804927084638836974519066851151118438023665924707061531911454504872778222297681946887156959522291385543559475933271265944526328137170819744800640448803399787213198717799394354541313430291603972444347293429426488860373604027140692588178068080317644948374494558147362503917034496129461886483852725788742472032279743623540228749512545607827341759378035649749218777284536068016309652663774942268351819410283465181755191128675502958563210913154493613354517623023395639730110200678046283199340300927305928610914691578386559411663225410465650227375891449844722010455461689685456036101615495610118266036189100628029014182056970220562391721415518661625868049317892850813749655939543605028746646568963242148292820253880508460005069543420149993888718097153735805252372394207015661402313507186891976766477812642356191370176617968612314411561959381559387591348634529966481551116075505430373588077456850957488283439879395745590414142961399061731228403034097796319931977587924997438736935636025443828790151564541712263253846743472003239783939599335212441878385006903733189896269560950682608661539439938802486359488428114787990464689275878112500011930529947915955342609620549375572514913998142738990472658983048081896517340194039092595088211824356376312466463737048435663095961801532476559275995147180376962052637719157501162189481461774802868084705946622298104979460056676868165378060263648266617287990907228559916968145766264268832121806031946093679903122154876112052881050764071247010319684060281440686356868483804916729528465845368757751455949679004484070362086448838447881436508931079067144115761302114144440818189809412106467661037842429844558940161282537657532203897150969587300588650240766030705038008034702556694178983712702375998727234177237126662733824321205291864896038341063523573620400770144619378745563475404113564481702648277047330623621115215664886940647725866030713621042527146249370790163417765593293454166029827502743238739086394785105598824406056543591020895419923734442259435425086850546074441571409880927606032353634248061291155961856428404952775048664076500076035698282358037906196525738932938414601371668391459635232578537525469754965561627245333069340040922900125292695789302404167501182397952326615770867533683542721657880937214190395631783974002805585167839308535587942281098403771044665106288127682684466160870384916821878078922296467782570051232887803930966784402994973412363626676219996032050091733755345774812232552218353585570261601701446580667438953988380200235017481006653564088555663421344363262625297351645501686530249947087039253435323090504133556223223510065522961969419270040878157672364108551272699607085813821787803302978702458593364979261622396087383612159617106675176803377114204775420256885036650151272858894183547832293680051584509613359286812242927499119707389487338578907249616883054730658977266436668872191105031118748467313154702458630201014185511686076189016065035032887489467188695077295828148780323327610888412882020927882969646865049607974280326716691899976337039390064641194449305336591481627146167292107432307914250703511931489120340707742466720320972017591221247669639838650292324042854093704531007141790172506983648138726606744709304290339311826828012535907019137193888611487305089457891682678055793745856031929960580031221459982460563316118898079414245041831007526573589653038793478360811152593491417025009002761344029147484768153109278048624802053899397161486961833125443075769896481323343404252949167770407423341361750360856812769768234664191612783543814253256688452403136185897704547189525385037046294457251778240865979993547101418851536933654440968481571961458857679478927313289944094226298958078224072721267971276378544929487209868747469308372067440256954845955298853564384089385928964454607353716778121496494095401317697471954671339596946518564493776784301784815378338771973510737864184919458895767719479553420099765324667823870314379063837639395587832101090024402312974044868820200527092932647932112156073278693803302970657849154091504155069409316451304754042072422133936021804833153002032754403906411277299384359858278950949097411759265287888495555198098943283258591070011823630654189547571722979084859434719239283561828017289893904566803369236129777322727970490268715374933618837437219381647460280931192549671572729959780111617072342269944100322606571838514767362777462636710279271763828973482253966043658145476637054960638292977381213170738955166132482190696398611896387475569611033486753424719504911442877104961547647647126654960984547412930214021859304973750765928980421499995100932722803961391142922502003885506489731992229040586135088409687724723790086449091522796285649421731613215772571823725215951315869076456876104157078530655545742179636342107075885749039484383387413653923062980596066229600914049530817637781508287008532638534744389633683483907014779286287678991493307154802058422906736332697092943410249307006260967857552952525606404998054458368815343417999645798650441711912525312002311815691395403153005170766548374910660534375182658000143764132936560772543385634901736750748145930689699714156132985911205052806272016681130811281601610194696027464604753906286812649518837103696635439300230506096532167636272923128584647714541117071341720981565186357008569268133847647200160176609330629847576479720809831721662400410536890013551638421446605875605172058397835972674378846652929964742873859885740406059191986321222867102998514062564915577686421942874782695399938830910677918667361898387165322426165828052863851219565095787524693281089351267456602239358618448197869971750864232572219573281737512204651255304875454257904156218636324138754534725672957680434045138563849120578233203350545829711620446621014219113751004298817059554219413870931376550206690282828936886673557340501287513543369605811796492365461643810617899819227239275181729782991200106774978805790947679176850712536588690274914326566881097674609876385332803140518192273322703836117427736545416205796731250652822363666976280630720212267992963967938898393809319149229495510226585288578789121666431691797764441969832994681592996716836777740068348098054693773040113633585597295440228149043850815311016858913256770334670179141220827994676262515615705643079527811722122539665246747691718140862627141385602135203199431649559451005251822695043004405451514708754453084820694894042628185224075637643130854058330574639270099938553314032659750542297028458564754985230463642754925560688921706689234207109431544202784542508263159483010752954301654243591068886801486772218317347089060397610101453871345577169738985408676499118518660006171895906414511006439316494522112545857928526171582421429510825968797865831685836291653754456500099563532477450868598618874019734915675845135502134949162161630656876546220716250060731466009663963066619518945213234080914779715536770909816961885761848632792787609874207706694963443632681259800895327487328706329143474990618512680303886061608498068404979963031447882019612629658714328947610570802242288954576253429697350550877266555048107483785333537894180890890381088150594321527525200227291973196817829145757604365145198519719044731601529230266770660223296023508953369935295532306674777248560911170462196309316832975151054083892783474379345493630446461580480608508962013612597516208067448405596393498333130417798689761112927284741764583026632132729960558893264815498319431251156814131150643457281486725831482973368469961597954776948785621474224100428804743390485335873279922806195770736490531760741439041824040736254336887001565694393676268751626053384873010846156883441358152208601256000257328179649570465040139252700008520333991199597788641029029323907557890125761212566242656774159238693190345893992119212120589364164022428306693603830581774059516269093939462915977299185093035851098304455998331552395243772962575491391429222378320865757255343238097889703850075432527929132511476866816293476694942542922318629214413317882112292239127914932373296441594321494196891879996796101373107578907559748270715405479820459900210335573612145195655200541769745969245728648884166942917625782279178259669941746942850999358119610095400840053597976844488977101598341211220935564738228580700907884937586909649303503638947531694999542244850633498781242884660374037380983728547868932693351505374349341584654438441365858079146013564267699514798489478538367025069791236096959567966926578627903802139430839089700347998386289268878979672570093540331344728022442096365094807843005803420984647875438827035701628716544066337358135797014139180869148949926943093171134410458431427224048068221255106090236250746021953931642702543898625096938493153104187566259503093981275777428108563688638442670412924607286217568571408566289235682928111727602955331227011624841083224049124652239574053800357399273427201261570945054602841890367804896250789550475172425484536338803606482844317593818312220804389280297688522985122871253592082825786124824931716941924333068868671493179955537423719573553391710540848057676838030867931435558223748579110898219271054421968719704784694927878408475598171819436710235914907038705172648467991590204969739390971338824796842129345945063203455685027786250192069105569534176730392221181025093468687610310225404598117840200581832749851980317710605457860484987874834584379277209505377445627256365374059958074987282834638766749653650951869496782095048031504330731283693286908258770347611927982837327048182338467248582410675119963091182092788073895014030839605092653473078099519899514776531449128923051953507054670319356507295253728835490909020585188052697204785327165935179674044467882455792876706791176449266004035245402894615363402934548357027871757586237456752011673806606612262474896191355039261098446893177834813819350831272065786290243656081313123245870744286157552230291693663991286333658327098576217733154111682363279574315255918610337861576655160549992295625426659792015315162119242752814424090786929763935052336054117697152266201783323186545774056333404590064143444250924695785438836772640497377171433927045804706415642843838913198614796958580862088040239426899197335413179616834264109926694551942479029402950364944689921799380552122224881960873475311789160402105989736750274199731696361406847352854696249496142637280550035506368800329942397396467077495658941586640685380270815939066733458864821688148952455129756551789330131625800206045870100598914849894576025775705527907591872160417986507018660861703742316070535960867017929202037819844470449747840872719687935653466598222382167952266839092099977440487285108337788864904414938796476269311226674719474623886574636122951934336523043125747106914286701827028296992090512669372686224782726971749529997108608466669875614547086710464622410658720881489066627086978306220764387199335811864382617264536275941502005742263643628853587769653460448980055741118845224216183356622274583516469335947656445833152730516458197038981380056903113502097383052748277349233955874055828635158077475929892465413686796181760626870041346414946694391571507132864382746782091185774551281942117185368497016399115080970505028458644111364023218120278393749498266969712791646956019176691117264572602176900004083942268996663217441814307594070475264695658644378612939486105446987847859356136170944573534529782584751182895131526577324389430669320616161968938040503850633984651709693568408012665969550205684245732221791872559843055784133846680866424369037666074469063043634347412171383260684513744474189765633902461689258651183966741254539310115879310139556703218173447166853814642662767536382437883593951557975523452797344156112573149822279641833923685609492357346707740031595881841490935098901018080997471288456070408519278723836702623164429947484174284678097321429687326860743810843186038502801338853661633383507370674164176712934048154443190546613508481433648371365343345194185658523352408705822757399605551810732330445342033424689929826445627924897899042834036047001149750237740834216675386850042420703617577307683826752584662788540259066259223428197551309222342212875464457463046947243220149383997791753583392312272503066007240703086616482870726500507866867544112041775613924937396980274637359865672888513449204670302354067885422125346070925453153740801797625142892765406614100458772465806241343975521561840706735592376741114450707859720082374489371605297955132299027828536758557446635002051019785706106538470404032463425129481366024013930620454794996950719331507885097273743034419157608017574419602421878336891366885429151611002365690606401349358146652012650013004084803419478420601518886951578516085755285850067409042655771606676619361332514852157461083271396487887235569765540423892712121951422794519927564659625164012308424869148563619161135145188931302880221393162962233340442521932277840974617856524642006232612275928309265812418581962646944279486151386231378542795860204727730465436111203470904716081326672684335570085624957599612191020592636594417838189383632429938809186786328858052655224153742464641440236067529537249306315187472491041269317859971447931315695112480707047359233310478639389997439265030760320596613476903321587820795966764198142886486182627743568132183553705588645149821980456846619925050148491249290473322707535610422043466136925800780005265752647595455663038416740190341367069274616693458027758019396013021964525763047441002910884987274914469953279808044484251411728751301235562760364085064535204251503332389262177542833826251947173349008706583259820472352295391320684604736550102982139546121666397687832661346193952953402430767503099657731671161527462172924934982857517936578973249634830314916616985430279937318261853196434989097433055405894142924140434768067935945004649497554925732149044285429471925061612718349965166057064685460639244212653279224825150633314157722224306379318515858055860655326629494518556405128364446742877996655178708946193660040070112282073835252655244974994259626864629942886995935101510993547136478668818501061280342500621132809793605653084367313235380944583346722712033142273874567852407449289930039952972318483050696722934920565914384819155414117580657394626150282014701074774412663360182813251979402426415209848965970949062381150236095126975284601783191571272358564496200105796066022365433636520948327614532710047615294111351116936239480226615169613451998697641777062857400380231732613466143604041335303067522043362652028933661001339093302743509656590133430966776224110452767551621631144857408991063441746463009893722475932484020758592587246539317096089858348534948757842842162797002828485222235261204492701777829070520001944318174920245958680848200420035606265412413663528185793972017053806029741741900011749755780481478120300431596768663087981925412854275600780117933649735488616217383471543927030615485082901650847536915231239166649517277801868715301048692696569090670029761419513899243445334006941301321387049295257112690934563807654833931718118133091378781369120566082577114365471629432795686750018526803239445301915006528066491497136627092682130433422673725431516862044267215675686597130604330460959404006191262357695318838619120540433040180726829879066291075518863798179876883028750518177573816591199354118580101472631712419118916969403543397349569672942501655867677390095078623933799116226601912162090681152290520148885842578138802004443698529987125954117737779662021765314160392968193421916180309883404439980924052390005597466190045502082734284969463328587923759745985408900333440733003046917568030692196402026920984347425689580189317670019117430791701910060446588880331941567061754899132660261938872870415539487264024336270227207728803568704943011003445456092463577969129779948004425083870724068239489559390338920936486028637755746062677684253510911571622713916038376813591145607664871539582828319967897624373851285167730185935614463396174909212283326694414199819740882289721695036977024789308090419007930882900370058576089450837238583018154242089614247875858727263754993499705140617066170404007565801806291935333396854082072064492491319942247523248608434954945193751703097154445090390259692365119935139807327968452339866243687567679950062860858382415400819355030521209515532199967948581177490903372659932730228375184445803759794259752033996317576245435006672979848334740052155021686503524495245029662001348972879959491641415618120884271381319163730466545337140510173872587524605205034461579069401612721635993369828909211219338551169780579812487889551963364879483145983660285625783815187735761616915974958004006989097255793225459960234049074924595092534164480333344253310411520596107377369627848483250893607272680875794945502996732671082407131242423729011547454308261400571026035736035730475461407875841227108876011006394707532638696600851927366634478857565879811477447142799693412358743548032485666607655594734779781140904088409733048562384404310357779131461869958419537771738187038299787169595236519603476029508769037182664506839508375120021602275274424412816623285861486181795207561784496930159380389411566224356738190725675104440963672240606586258914181107960388563164868815915216039076521117790971053390623187467486652373916912315742548178384516157731954520318506021900006360044205036692401368850092902858825545572193040901919058849163477969825260005015106905489316302642035799880432229866266042053608867054408737620107238198542461987064377256781045760937775943847855537141427022185965355777053853745846755460144931256271377565570353100111453794148805518132399380428208276769219361159085836558316507350329785446525101469088068297289493743065042066663712219889167732317063077794104954279127822812866967131743627039092991924159879821817142621727289280471324045804628982427710287485340723213698192635127037186335157991224799100320896532636487454840250818610286921640820953937585225055730789438299417307217193887178127327523561282222264818495375772133865677010262647860153582604530325569815906100240373846035606443908127043154182980005251469564435443423281911436510520551882348152892703679325258950754856024615163372262307459145416304268620714657793932746944693828307899232266733692375536347321016553442982005388598382357378492048249616423657276308508337399877783310373714456948585515106701355375724603860246630969375525356883965021650824064587752108332862716857694709665719050409318684121830742272356204956004983701882494092948164850578987213960413282734915827722399878800010497159992027517929349054826701588646692469058579279745436719857931373725784385315557206648445017698714671462005471278887566644392962505849539096604883054274724094611219732068741972125785131906186601725090471792233277504231997173743511328598154191678140589355007912906279857590966623053644861378454423136169950117949704605368425462769986145916204658869188950222282395597764019631120527954888152337969312463227101554708976186931436806810422175941167392862055929110355401711439671403091930400536079759960202627193601545390361955440515005568781803536497632467506753038044533235278362489928114819532552285050641008580039475775625582787014664331137962852095309221950002228827062522796785783066993262464874522751135315139853238478649353423963035492342694973104315213012513753883747113854552494741893821662348531385056405464547315970934480722960050199742954202402977586392385909989481739669093526418200335027289058649227532625764649896130234625583717131240261841107679810873807125947082569941702160315063007261721886339172455178057945559708747699559200149417364617524902521510868739076173415979562309537909752098253104208013268139769378945957961504192972448468364462201226800790595066850004187264614115099491025234433676583388702245748310574746088984825558139733283597387775461827961892582453929811461923388531572679502141383219096771709091239808041831514115284824842695514788382977776660035394719403743802890684591796120376008867736586034287411944722994279064850390214682068576787482731383005867852314828461172023477978027672184028737560735804297160985124362117461752215432783964004417136118395838549846398437356649000931248691577278902639555084172290542378731916862574057878855460348110187179861694035459132058824259214239637657388213013678540238276954610496105547126703245156545376113949588728678964089959112185417803076584935045896680681681637952231570589276963890842165726989735379018852713472296095748187319818598051541120285432362279208169000571575889650622246734875940410883258378527684516741966792720749646691177121020716698954851080869407048639834349333914524375134782332999110352493280056640610610833312003163963382167852966582607423230082784985293688780241407543029244065029458388241335510258900794692019058627320886438856711618149054870023785138855247671824222436040579971903525686013398866088673841905177537538496408301580436695481972214809009768854045790028977470881013368421655598543813677297218653420059780103509024720215017167841869155217758180880305387467371194173290959076897138127715230328643698050811346607064720856103407414099344354179339528065845662945627271545502207977950686577603513432492081576546349708047177522514078094527251141014119950766434559613538522164283244819264584971504139172153089871769584506514841242568667828157811567325755900150259145956939251863967414714701405245050000028940318969744193463434463663767214763084375169863341148322817386755976375992491138556636768650127682626751966016872897711679530968589003214987725032990976099310946436594747507874318679598002517816963427591866312334800877693504961202519237616190496720623397016750827117193356531321695578798820248400623636021834774009149436834588548104876194687542574039785368277386599884127746116516664034968699564356795370551471781907716509251534542641995684705786446142569739579781070622806665875727751373759758394381169951445176559083396303560560962351796066627258567835238353080262539399264466765911410263323349091890175533134889511094557986446902411536876873428194382045367520405814348921703065052460630576126330249101682346237708760128432434239364722760157001105911215395381800809312686220021844744454579737922580569554644885852678561810114608387791247755077720894943209695023147821792979779088315001618695397098102209611850173968507090726680695944516706072707631397424056364461570411418351141222775322240448319227959051794678561676678409205862061867026333678781083547798004320538042778107229769821972845250067376760245552724696920626764547326791699441611867249476878634845146868141261637806839375474003796823610179315885716023361593996759104227469685558067291264465447286132632716761302319076272261656952637686863530553388247201041870038337628932301185249332951692264721576729162746740151965911702584376959643919610311709991847380446472887440508881796773813151532212688420563230440173724751808031190571128592383361142068368588857075210491341441145337006337185693080185699081641135390147034407560551376373795547535409403573586972793579856394026984516349565628514131205423694109879404234074753391506260314836899312652456567176001605598590808044660702112131184972461300613131729859860175606954188330674750397707208714967989195070557000752246546395256517824462369527510111886698120749832486367852885561931013776984569740276449222048396383331971641047890804990916789109050083115402046693206603507828484441984701027489485304110494863665645958739636965355492550359734393571954276687304986669997452502594761214806824678345759002436496296888845565329360775069793839178584951546812206192805073453410291086312835707697040416019821605614790166520960995563960890908416482935289362832675817369639612013599253690674564938891256305290585796781742335790698383159536677965890293992022253657282630722532168489715570765841374485585153335535757926608583584263672064118505229390497834240045364463785285556956949396132780994305922236903978661954481798943589823145316806316234073614931942792303664110872109835188998908442592604037248231739267160082455893506299673045503889154924860374680578650677640348984989384252037942051793849276099665076719302308015604425468446473907145057006733585193000092680318837693680039913840217177138852691026828645120088289257547285515095251853234129124258621077126270784566980260032823544813170601127367814489710352403760015084387198511127446485769294776293693951843825017254537991879188020260814874671910295960215527407869799049350506786415032441461277193069437338200958799556975901213003443097174437493784411970673659833836767821405365755810028880126520773724387164815374307249856725359529592072953350097210430488843036915730423501386434714613324118988076644365442278481886158789731846206107326404118115521834193749409315303371007398225964056129455336957437606033815853901261288957561228216223264897568434009766603978569189374711672372239437021685380210867077584941312689404677483411476503413848297171258492953986777004138552979686795872046090186946514281710649769025666386823321385186525261298731183307447601035424193576025952040192592718594211388607810984951434188309604399544673977425564775050565708956071532361045732895545215875726478763637027465254660117988459417537632023894553824579140130787912994167915498968652899187133312472633990187310955836871113587943306430291649125071639194568067191135106571883665015503061507062540463232127248085854557154859986254582538234723168169329638160789907067558817419087097118244895530415886309343658284866601404472141390776304105428387942403814211923831946211285139677900088719129583041955915036670635800151729302558236659998570562012151348254654438252874832600740951573832744942280277754750629037031594391820441270187546337540863729921633195981568399363847056674143204482715439710206705422972179675759215550310725693896854997635825574251350517255753204872658477618076985265343574107743590996618667915542621373947925318419083092233074396048558702955173258809279326184230583777381955313743262787970037919199659488027092775056985438937405791482270110876788998248695615837956258846097702293340501454745443873564680241282107402995812459833896427169831324352007111950150834384822405201297781833924656575008872390761888818536188770715429289165559592714882450548678586983016416870691576922248212190822279592765153386556146735277826335641174718846393779771829743228332433105860980843460094724700418000954811653556229905518215751836770083802618160126792895564920380467259060611284520621837023199526431187082960309996297555507627701206525733743412435542316625376234134459102650797187172773068467731793552804676710117202139832701125442936506651727392757872206975853960898710212958792100989484846844679528201867332198905916666972932444374393074262093572211141365772322914642702296061439948547683439184089320267124291904950398196213355340860842874044234830857441856173818853773910968666881627419983951056338449963224126435347801073681807478122522769332280090511882089824187834488166155637886878265411407487156058105181932239107338803704167681186709067137125328825608915979964265465185139389443912636931185939659686759771575699944091106910092623415674798778078570290285462108663331917063879853732334229568518218942960377256468174296797817220963362399460002254523507185813182482644628655874123893169233315879145598014680552117841658094566450118208515237431648948752631875270356383659539650401862479749809031279796468565391029512984221604296759077422813403016393984293234561262519226399603791254105317642639245039230563982979159416040207136377675180530461247723434129690537001516940180599125477240327983482716096801104379684712623404639561101935975798697750125440388665130175803048622915675323171947515621906047734184581942650844113003640473613003316347403682483792555695322682223528214870969108087360593700875544636031439036768951787945402292505865431001416707708299778267312231811924693753567602128653534126087623726740996512695925431069165604033325688887471197311672636447752658415483076227625561058161818831798341421974667515429557827138641859103400517415604283112624676842539144410168224568670756327780261156531507973828717269812208169195372844972297759342752776957601494489542261305951920463021675895634401719881323066956501093114704217965361880113319896540650765373977898789014962895563676369823006783097558341472286265020434534077753688545099619016541295927167115662707407240864175900714816362526278000218038620715104015042126667614297521234713113877884010854291787426540889825905711809491479864570096164165319547300223836530794068194900407042319591313755305670012038561920964561398711608678686876739626359470812036961782586783978170755640883731940926786347363191467420491470122672931387921874120711922523292343328597383495728378064423285395038829715328934813154087449093154422909822456114585475561468823331000868805968458814929669104193782246892533010747004854416536397756176242489692008545710907672016920782581229423710217398988098409180483936498954734923886179608891945813399644427448364385379744811414407149202651990742368539557288299720840192415943220234579546044653711440421233405386299124785115970898463571086447015777628940925286489967460166728224291213658098408790778634685791649634251403521391617429135343720659000342710243231950694240065895647086741088292744603154501895491194835849927754309781291697521837027581899166341225047061452044441181191111057198417242315110896050373915665891070452983957712337346522889036225315268816345567276940096097895232972700383423484212576638349098410495408960542692409011354467394510101595718416771202983410794416117877789007182125872847283961726338506075223823087675219852457764648754830839944323728291108084750283328346477561721773311575798403928085739047847835726596959292247504524612201382003071923168588901976622680400166691627991086248326141650069526916672022335762416380885012866418085066516324859423422831627276380467825549987356194991942794161670075556474886896670937555886494525463898925059980813422910254205200422844060363537871918859811423616217723121425506779049212406397401736796294733567253421745512459296248889687975148277778752013563659386887229882127925096720545001873544778999650096186515038607002508266562470161888575137752752480012903267228250306218854757845560829125388043101162853360981704908049784418373639880532232815765236445311907159239884572243673840675170873042446832464678935509181038136770545224788821792797292343698035039143251105071240659810610315235152588966503397621095928472786978759522129583400234739693799466461600969449026485819792887620258138233701721514021307380282441895976576495272286736973667674738491654485593868913593350922769597996695722687108442723692047501497817611524346058083632945522138168534652392592187725745042103919764349031375299360709367924693585809684001614764734603089672569836509589347680385287878632447532763213561463843154363329631824743277336587463700428512663818606647714078173269810533184630187613885845926773752585367044135854073365264087213612591945661873459696755287385411213589452220390705827521370587696144214606702761395370337537735453176337981169335672187252631266465943866543716322600122772141532661240615834044489093933909456052289860773092924449911610713231931134420354920104572077354950611779888342947717448441590849747273130642296998812751773069362568170830504348530456512265363610786745606591001817984329741603992584123176943610666425860989754315939433569670992021970026467309373858487641778395506837414944694642245967898741254466793793609269319393418476715698007942963235177972838571580423455742525740968310174474802226981907508827824693122391429382421842884914488740412732319120255022147402225959937346580583016226080591262925343621747878711554606036459715181849454738174340396434095276751425248909524043140384164614317934606453573022384496462503042803137302231840256205544116931702061308101772212009534883853627801452723168635129838906210294605969599059765972900716169583293509955724161054767379540886742802532896737375090307367765650983226354454709698835598998877952917578089311284576481379509332375519957172512685749653761019931161581168957711704429077285529203598473052087377247507932212060900493423990298226945846436837056801875638712036396355465371040008507835714243956732450112636513519715959111022206410934155662008147921937159005369800867734635513321945183921505264560327465077973973459813122146624087856725828800505698810084472522150304787095403413195022540316519153010399375198513969851868549792536258997497101855416289466063462579462717826062929701904635981736614698193346135472098553409814522862285572636376047638664629605559787210350667998867732121985773703182411274690140692117747162982613736873661456636991606941902033179979269425819250623441694059160305050235801207793317862578387988341084839164871510844996309033409475862471631821035753139842138703483157491413274673760178001647689013801628435982421271929440228412298210334984487262071590364415375458215870258913678718457263519739242094452540958915487180498942040848832772509724300484628103732450304260442114703986715031660490525487535572430131393798725079372375909580672754234270844869129592934414468778202347025881283383440440992382963761756051113899844538731501087950790587218130252063215754079685126273817186097184263422443582354250130271289980174521281037984835375636716030431555652768912610314279515567218529090706670688090892550650394004079503432806691706974334461259948723869386983815806651677882982741126687655714621628460876240231462821376762935607238432512134677714712388396313003797113038972903222542452451872779149718018771787515462887704630110335779871955892508083158641947262426044933946935592741193535148785414928764039096695151258230993514680386939124518124729841383494457742491931953146358983583077990586544967339121342647574474062205817558938647817679514112740891504454014375549072319919252458870458119795680485728369214904195106137294559043196563026685515843344812767200812814233892787366696832341440506283783739486297198753474967392177789245636271831955412055539224733440944458653683564249685458723328738811948975322391177932911389013359099393272094652848888707303605131364581172366250227682121625680849819756822785651260493259095305994540506705719332082997914775141382431184562231410697724323844853694458287342599756684869569493145702708652887484800327701319646465805339687168235143437751155887696409031938377555212332630544723835487635222099955109550668727273697665766834294297876432658852247010463941432925247731199613575830010396014853448522984343326343948745118359928959416511075298251985940296611511641883522875957144810774061752700648340281473552764328884143329107865164866361881306182557770625949645540389514442646609865272197041899935809521810607213434194798297353712848817459748739869614951874622649848995876323285454316435999126842534715563727098281593113957375248253077865879224521144512058268190843740188661871118320849657961244505145071801346836536282134433658211559496199370910397259438306817057668470028739884615322147101983336990950031959248046121431459526758359499820736696320008578218571263658152027941966499568425176759154395552729681213717618718732166685537480341747187568505945876673990617612803632529703660598438369347611461248828945092496946396206836084802245154570656332245954375120041952184249305737315426505494805233009081119299120843270772037227882245312802650223009009931424039927033078662236779551282891034949046343952044279157377715421034700803318225509857320063853640107107308356466408949281706896394802479883078718604234248464391622975967168024418525733137456027132921547887075544455653526195794983935930276006567865869087998148346346711715430916979625363310512248347240971490032414931724363638856027367282329787562612999949814560182112437316960172572732685197927483114389047167821893786286553679253537367854102146514627007447504041913154460498567471717807623140309823070837322121245225521250395141756940495353238218683791151962312513015740210146669535549687797882179213261514736703334028279285418764141617744579358035183052616731145671090397112347008637225094498195440759770430854572844964542249840057511117067939548533013109177795728872335424752517924858428381252672220353247024131395564646643708950336233619022915474660606462960989863370887111673995894047834593496340396049506688584276307552385115998850690871281853610098395337694706397949542407594511248779270584077006798473079478507489512249658837693787803243343018431553830453882844850420017987891672049438522446930092018539697822470481833822548601281846710510807538250943725037667585773871148928366351227546297703509160993849788327212560826152920669439059381246905380370849809182288648907756897679118331612544675025966877651847650195612218683484245197069796400794581591916702435789311189204069556149911577027316201231060117214560556934241896311947113231952309731114529364896986054600019959417064824686871652343618653835789434935916835561570690845480218793720127136878630557490242741748803354127179101015841467206117339914625411410221587404310162889947664296873542886217999331767158882527023239783985948094376302442070631957499513016075313492142218799931581781542234264084080160941119883512053550195241842627371377786938768200506415066739158349841865738338013572430578035115327647758926392302059970263621441697259181888077463513464914084837694509314845375693422943722119789998808447182097950760109192163961082936662692094687293955159210869655568288071625322366705358173641878764435688690462091658899447239081395220049245682539684313304509150010614666700571476775114352092347948312848722630522973691594588910388327642685631572742844260554459125120646326587575061261879291836654512264612074557936243953580808849090163928120568525320431393095215411603438095453754022453221987936600471275819560611223690822184040259168311726022659875637323478481795557514874187699812525711204381053456272151464978319392777664101114214963880101929058233497875400131679692927086981150392950869573638077064754872475178832884382259823399173799827230051900669269386536108933346718997629692193905630319486855421566223045111816805337086369546605633765822479079446282149947703412926915078533199875970471206347591748011975485383405690038968939737253113393575243433962413007412321320808142543028778924044005517664149434017654753487765574298010825426157134947301970810177471168318759748135417755483072350244483696795273628541235948704340873234715824388903831925925352428179402920139759736535161694313290043999403516124018229829211236530983505469346674437388351620372233653766317777895168141158238620088470387994340014149247764597465180801288407691518199213946340748051695405722093091753608964292515413956800081916408475871029984559323639137705449417224262259325016189838495254299941864076049144333216074597196120182473338573850575310045621197196497934564460156297378158443184170825761586375658356842178761224465555322460468736426965522754269700125682483304415289935225994072674053009533315576657358582924463759265284390803243646065382645320477101741395298706934298061110761722086971005239905599832193381394740572888198608924725666989781062179849692706902245328968468330946874112159156144698512215337791259552029061799817279624164240540492885368584965651074994324833025972222219381830350470024371068500936361768432688996709909627800588056240754932819427925165314605249742587117518624908325954559982233001159762775961106127751735885931079122236316454925679613803277379087887681532007605923213295569188235082402627960160287382959696514619910187673947702577315841056754394854562189844363573604884139743408771392183463009903779920162579926804119408997379167896584236327867851785151834662913332593861855416392478779049537316659709622218588521901696246505544769828574758234315783304519739006131741252890187585240520078327356050398634930022691775746690300589666266042487520607895501672211317259317741483211140852576401482903788871361368094606032926970810913250361465263686836742001372315848589775415756870469026239951521626108631877662121474802972770327080535849287429257970673030081354467212136838581785413896709713679779681046208104343742373309131210001967820496085580298879915851692200359465183049986999542184725264147573354983586860079345102409389574768114664465044267943065335139164995817058072619279768248114607936563622440026577187486285755693805891921148914237588111010818724305205965817183342510563054747886984691363583169248985868046902641187755618855526504688959345459991894248977459296548278647694902885434736153861225912255140659947271907526708268419072339903679482509661065517508353140601728804300358255500924683046436559346746627968137395956190636882623762414327959596784452370704670849907229032055885193131424526237346601977955827924774216530927009874712936000788371364965338170264004339842285203353376365682504850395470401810603150524040912922171705541750006086409604715226835957449122591486810049036033946864492176434099621072192290708823045408282580918063556067977470678359843245102066331489899296847690951563826395256095942116651127212564208174121910143571850393866371080875764140419671043779997685647840279789655430017686963600188138928856051771517017661691697594643236852905235767615206530776992606036591472266826619789407061611443918025166010496358244789724939888499454488008555382800984371242129793896165359768400834984319956960270371028791021780473891037564314475200103814576065238406995254196843904648694803447902073761620504742109928096976994901065293223048888903207280658069904648329393444797065999645533579298404845390894840577169022621820854568373361925024462790865327557547792162441368905176834671739149331405985013889798076727755461428549351431318436122708738647892098731819832438255640121156075206512834643276112818803584178706495532128459462426818636634539789035466605777640722399346016427456318143169257548746776848589852721985906815497886927381011249007300271142896993720184705692713510403754828557957555913754579877619725636112580265201737182461762703890464917400669587959294371632147029730161435060080827960997872445724923311443697357684414202428534977608407540922530384939860202463008615649873129012373908241567522769006524953831074583746233013396683538731368007149299531735390449406128602004142413049918816504266737211359845592397023399654844273962712949885650205450815116315753929659546622320416738880647160342142530360393627541698059499737999454446115254797279472512134983512390079426984759436742773640102355218392474927247077423863929344887082985947567371617238890138009374040558610997745479248598868729651243895141034729084556043947748593417798069469804876133261439335138350319442523937093616288232336303228162668205945359220062602959564168026691413807099945590150110363095934269456502482462409505451908697986543406929548889381404306947026184894338968213392695592006352605116215234609705632007623013876470133077711000786527668858009344904254433426113488593163537200944656185926344060053049506075684579807092540130267980560025111711860308816196072347310462936694071354601364424045570221987611480342677282953364301771227681582474751163921088620173602077014050861072628879991211671848369396436198241079522269354323291750466389328986727377888185832103604022624612357395891964171893918135171979417556062291172446329424560309665700123020898115726226276467952320228699213825023613074321256389449353874497415814789124349752773936752596745660052977111549979789875625204936002077478531328226564557694820230362127983483617220127184607377692358444311545647022090856285708297417225866300152112411688400507226513638941031198686588421010215522483684558744655304492413434289433789835807597218785504394677820059449126371726609021985282130092850233829123592688082871475507306137648487571067824655518329533739144495531735969234689797527388574363194316330925238267305803023479140604572476089048385109665345604217195664750494837921465224234440747741459139886462355803435010224399408671123173765465400930944584829718106915790614599776439197250696851405377138983173977261204168865789294376269360258220947834723235515824544986506969542549773795083956393563832198483632605799154496051715277702632172388154623106356168835395663579324459531396524093354211671360098444406903453527663347970354839099431789068725149808437359893577032843700117941677256978899743986050237250029208435805198830500497028102539263984423376339746398608240108508747449355756606426480568672462799156899825087886589854230467233176394855713167655771249462224523998170390834009785980811938807217576890177774193886867149787686026517407010298148799912453198509571336289684787285805529319085599922891798057435713398212166993344291966510751776049197504658175977846572930171359615756226576732716443435381163307241925805898525699599918222871717545528709755709146349836157534980081872553137611734832728842748873814310186485322348923293385255213289927643987871295806363560521370700375779172498553611768667530573861808364787135978062499860962667701059052713007538724850307519347131981395099560094232683781852037710231308604390433481839404105901152334879038069892845767218668919530140516845984975299502431445444488135532438041690088741067777415684058676376873656172728840412927984562868951668417152071676181028368949235476025700798939778788287796019208456108413455793584192097523924252329840561194224901726618938482431951112254531817587440740102906404591454011555274123193285777349468706453011661832383770355821624479337930865948154385607333754348475948364289325419548446519500267732202043263008970322221624746834256890320658289101346766077623301024218990213168588788479303227914353357322732890849023008539702332891240903401730927809468499657566100015191585871524311557094051568521910395774107042288811214179040726770688317032571817229666457101224581384239983282932195299575882666487512729273515767278310838406269372995871034131214534257168269205721247393069960256361467103679090178935525133548550506417991950110885680913531859666838712973089500459680121907906777406447204071099333839362820648043613727359171935241531600965980376480417079721475061551984255163861009153258192200904589673921371115683628992773053711146709657643185792287834224463344097846682157812644744958201292105056210082880268321900612513858763403858486113534182158764508199413203500377358168082374058847899831587141127870262838251332605750339963197200874194890402971886684198236699413357273555831808168090321150638969493679745487169020293171617577234969107625521774256158533885177506210835635221556718716289034460958565294007646227411788748717558129527722834952717724542935144558773325224893046538739335753230991059719915295872727167001307250412469586520322345484636184134593225010633916703793394937976530652686606725149731989164272799422622628435661201939703595559836635907088526825910566585132290525156962850378779814622805609608773322704145119390481031716945026924199784940396384372254132430310158479083262794731889954085355937709555937920262065271758927393114528240569167562980822609133012842169410530473654457878304730998114896842750237479228741913137295709363522209862838796226819242614456402981228578049733268091957253136380057863606821050174846313234790655414502746947419270084343729659028947897802140932621797911805637722381043430163292935274799477024450034835415757855067332903412758650080261668006817468972189728120697147682123966663342903094782485159616522665357474875311268898000073556328786407052219732304724836229003871024385126120158237303697415808109154549583470411688876739487080704695027117148770084270690309479125648528578586133521098128405509532635913627303789565005901316027181502444936969907742693515092421212019733849610512356201894822283421597350432101047919622005778964691921067882849535925342333929332157685192319871577221668262449083367139415052614620784967547544861666717731455865281920846323542168072609201593593602821481862690519289675336331956063432516493942389454018105463079136788083589795820464326810553324187069923050182818330068659605933579600159004074431319149687835089669106177310597558980696394703123685599029298135583195075293380364309872617290906373753556678693574236465658593925975327150246780882364129319540717194137729685542514580147733343358708867724686325130726118044777853266204161971231050072513531039991532700286951635566333437524502847655844337687864556762797115194830461512509185770781099418581818230479475494646681904422098872363977729439836209964062758626035473035037599296650674202099573737635744961287732863546607488740927718956661066247481595341905762103551361406891065467803036554122614392825516856121848505873425007449790074022925887275713082371908180831389090463120162631694031615743662124040222193450445322808319974001429166293068025261502776434733831193809556318531718041530439831026858325065398424366228983853671212906693094931068441289557540840869133116972180507251920426980823369200082695613060529657438656687028900335668966134606732842435216751032782024088586106548797213184974247407348057587922583524214839950407998772390678379531929141044395427195232868337292543778245429207438558898189294242600971701464148278003076859244687701064382579968734168781907644398659501964071298491417671199984906872287425039369054226130837621764459133808013777074921247984224556682958501589790553269469574405836384700583979841194658626903732310465804472953985977411479959270942828303077973125518996698590555957354431242541497332923333324572170304614447868094695666797204219475295092133644892966477296992247823969229656140965542762865957763436632605572545449185109449441399130272419161298046002153859035014216296786049315763990110590953248199301917160486131412476174137759523120331870056284271261485706597320025790745903218816010868790667754853090586010532840452910390893905734173464062546525043576210168050262959518168284346782872897341857204171009737015160110365490314575131781433976641578632450163261943387821132313890991765796155518018801444737870938822025142958489398919688957032615891339514409009670237807689844541118208366297383700951914227020668668574814988258850364469858352220337286332574606975084113901903983474332682094084425246236941544472437760507517572385877707012385336924129175674826546266443160970194499601227762204741925498575575803115670363850747712490333911651377802464057504564278416152663412585507784202182004758923111776825510803346285808576898261486032438590933691979685835608248982890980397919743886459283273239637802148703656522298878523111324273509737596412280851565008643428799400609674401299045722094001677135638758838727400107515273860322378861175049047901590880649958354065697108105934611108546760469832199306513112358279855023178079729769511881320237595974228169313854959991699043033922845396287845947075179989194132242776793977927935052917930720462845767034944572587297427651547685444868788281082081128869368815670100261527529336980113353236863903563188300578760448657729530682640285757161050311554890830062693661700203834282469753626167327957928324460752514436945353170655326202000237242961781814209674965051870458842078811674607235634804867781105838845277386120275809425287280744364550437330521420146792897122242732182657339279820185334464474358381346266780967459574656447432410124722430103908898374860353505827722052281962387998872714689825523251428213696794882736392842736651809873518091659266295983738620754308846799744323179199839523627522509840859072769125976793086505492571645871177433725920678864050913456546411641354285515773548447299361106637203083848876324386467399173297473165670521469681665763795832852527313266172243439678089825611816986966824902988785883846109137084672805306528687498398169241363828870119212731870553018082501512705031417345105280728168012679825553222919569793984273562879272442163002320790825985998645673234556712225902330772643765232769469884541980795616510045122370156952742529643194732813536758525622977520360380449532311545416005115547006049297838927342309024536149832592892869414434185017377476632029208510993953304514580988218450661399095418854222585160500702454126755080749985959108337641892680073533968063634881266443156994347557113136901753038507822941565706942164555545937429444655387969113665822419553602740673712854088559588733327074888478940378902695267465958624429337034650992765195023357827885365328798490817834926022810248597710576318056438264812030377889503368247468350017819080629882536510604979327996907723014827656411732794523562888767654655436898348201432044071042970416949803790249016465124841478914704467933305015684074880055098158981096637257819027639507924358357531883109026201770646303176865498915614458148128916221960822979298738077831665108645595520494917076397211785067757476626811238957415514175526548197904981540904115882546203689225230985878199289767591178263667680847590937942744793975285894830297539075289210944259411811931123544154185526969352468995173973679806456136322228836798854833474968482815409832687572796656878021868049826023101895412314890546637135301349730670366127968842641105949269387054633216171806155849745024986703819024355018676137352814810249993957923689870341388874623170661200210997479593348684699656974413059719906113414500005399316614145362295626201500012596357553648348016945054096148113220814257580586040425885271062263141255845637022973709761996448654819141979044391979808136840364605895575912357733840655313597121356426607446227304200692353772975701938937684799415021334945504818544226251312110885199103416144487052264731934152719608475922709983359186058942143832667719254842048540825347654460275339899209836392179465749338949061914282406101065385229348803807335761953978566213101504911998788352354762447085363927048812929300937924789024684736715183076013147905963420473028164471867403036358030640382236010198301819933556258698793968007960911393919535486997659599743930991513420220049493154456291088728601796565894011743838719440287309655482648341317195564356688723524113557413318568067178014000087228416864841015764149373526878514702790958694972285104882089242819731589372204724943833586164501342082136033914848454721308336482815893253333292994702212396927730821931401407052995968213734032090052338852173673400392600803945155068246653439803373300896824384615623805951057140203749072993567726858644399351696601159953027419628753582362322812755862765786032178657034883647802989772207372489344179697228525730834922532476872677132695967647160582927364340255087219395957511933691284438494418173366644832918388162426727401806972389493975056583207725676582901484358620230403528561473015191974774544607996916804338433375719911024688433115126836093944965130115542878592413256546449067312901653505939623613714409414478238360032614792142361560016919948337858789326218820482585325043828472919945737803648754401826135267229934573366809708746345369949664547723492268850205795245057738230092101543700076357692397803718828496552342832118412941369023689404684404235224846665519067452390647227273931018992226656772421401637071110211010958318268362823455350392330224233357762133472396633266475272342334871396261598793936479945134748408175930048103189505147967888636298053775983091784110552555676015701295873521764329460769258277871854948289543063913193268090117034504248786382304722653277906813352836312194317328615369592621955939959019026784301011958297152898086997981650328690801343556763734890737077324433233974516179109622795748751972335087875947346535639335513326283677782432898470635892504678152059036845207095400220625263810559888727458819898808843350302762036534610464332767856887336677307578509992483157906368894253928317235371638720779119382538614455085247887968561926739129006276987261854872396946341524372137025155699204977225057250958674980217943367145097322488512678732529414201868769624681752626668987038281981222173208101482578736248042425234727933412099253834652637768157786948366914531436383080669012463976304749965860929094316698706108443854072958273319860790642140413578229504116479216963119705413717330706407580385945332387044382744602825842113325515873585067512924797049873110384705222639475895894542552914726196505848123734202507438264517916320558460269356805603569391861386556347947945451922985897032034315250621575035114692079625514059589823606329780950564424864352639767314573606432063617452744540173587752019857143293846445108360159088193481617609496109605710758136013469121415639633776185337804872993270999917634355881574632822031434178091156700201863162554493654832329309773902357232527833209861232806314072336036114063613777469770591575114567939400052579026759993306199146285901104379128497551727318109476920464912594435058187918662091462410227104492041845588314276365785868366478977833579259821716076852924949603720268132044783653525836730119012149269719399173613942017573263649780693159682391587118763008144428975534514663700747961354321498144408536101669656772037625636199264104095143809552179870748577539812429988761902439881788968700218138425961497415760636641487830629897033251147278237697449755160617943993393472148682143726884209465517202482128204280041945102622874125372449039202920882933089339196018301423065892163609829861211926762043200010347207326453836299919082346344175308436994665695454971492154712001071611634947789834347620043252156750981121137905373618408551071516365351878574793201126369358259973120875936977178745291831360716907392624643773315235101891223668476128756648981733821529278399059478896911406597485787619329870223520346177962989470260143970061286852780862350669592421784549300359146139796552842881549587173615226943969108469845281377829052237366762321812620830196609817775527666704708013967174040529807197217053019041734202868990874939881332092735476427170063996467502675745329705854171399811614337908133472174745124946378949377284141070974151533138045121985309886180964677001128628165391724974650949333277635047772445019029747816888376736378246283660717510623178752012609369598746001977667299276648444582602504329988719578104332556447255119351654676622269550829597128710340440544536002330168262491994691951837640488283195106332869118697508541632048954850723073318296551684129289089795257147052189115229527687036309712816672305290462612792471960443715725359190240955536675723121889115334711325352417885630665652626495726677442470659463012988638270057099911070407172968866823888466177437194820361330417339444345614137271685454884142620778107155318844811090053327601142555282660397487776174082057777993148149271692060469557828080958418689642299998641264945470930667223987283510422304527442175080944404853118804348643571298182932822652976566633374846932681373537287413979992930653315009415232264828957419206965048633602452242340850795896127826209264401230339483087116068615223301630212479785857729194568897429951200592176995554460055541595258063556752191903775934167671783102697080061673890724287550225128757474918143116077064481850092203098288357608241205169374117899524983804972648162871554924106148857804763570330939666229979715767071877313261411924825858528323409199842160905597503816861387972560446281624030894576505723364607904468117479108668360253422139568431233190640722965662289804205708735735068241704482081785395559135179203909346670468200094829343338717602611348328785724130271319749143731494418048300929991790241499534346586728218930038866335582036939471160658108026028168292711161136871598677993312642710630340657756365810721862789833359954625167408013072319840920711603873559450745510930145557955255779864758969109040073139680218631816833193577840880542269935909924996515647968715065368850536539027228633309437304035608962335358601952597556311875804997417584692705916484343874036119746394787675126443395946250331862720935696404852843661840854324607112188807622618028681314116033280618520175111060289643617789692351247662170237328435947592498812193124197930137166758578681391047450081525636482600372711969493903077835204185131313051252204856915918107879296127572259316330847216769274683557114472194874488008252710828517577091087032958461709467650971881226549997700279229347323496688228530057259137437244619880585612122393945616745807979046362045206982864928711303028053561372160151551564242413797682333114234759642968470628601544126755625134211081527093645487935887886114301035366959314298209666683842154355610932801763960981265155367662213618031785178836755489173975296258509121286338504271035610782440866842561204185968909145991587313588866434931948862143986896309811178360706040867902432958634566583747737402038167451524422603252999711950950338984309778073674808368474505441496675955517011286526377166584235979210738786635667826138435480328197778907964441582146627973248229491464108212234584597300593874646468150570517763285006518889512068302060513288721199235461366382293899623969808414706848486606503189334067681109162420344288721308655835810954561922355644774363289074965074833028489219264640135826496082765945396161845290095516595912785391756011845422323125880847283590667143507707951051421583247813347981525833343376202444596936053293390161169630022019263762345070121227155336257661436876635873631899386167940578847588010832298075434092178179687628015335212825412904516627976718058619290951006537446340672216366724667643758909421837656030312822245488783974691131835804218697483634230523221926608710865451771192371711361436584319268100964299066908786795741341914659816038983122239546357790162217272047500588039959677538918463010978677148802937663302530394849727662814288087759362077183210165065255157832102434949818572623272864508020087481279886767209100139588280191155724366255740734744662540913764653333991026066172481577643248121514962984890522992644495048715158291907497832453756898505329203765998202293892376215767781496071055702475162355508384072529342352908848424955358436433099891087862425219131035790730520210675236929190257052258784409691585488578516525890819747327712595764805870896172839799131151117595476091200059476252715606890532993970761991447263272349883154151163640574808136945593207883324388431728983762167368879929749120616219560143707008100762150432313896930104986778210004873244763262002551940949208037090932559988534182810998501957440430709043235863771809485315024401854543227022868443219629174649690913079534316996474961256325575578208265463917235379829680995619654375198049661391390681562914604049628238929046189617097183438724766158572706760560368462917384723922258432286508614476118762632573624978174788597844634791743831801868686138472258707690730021558077567496758554035681977909554340443240633374599649188742852206807845660339096823384579311221752209537066812914530804482837642397994417911313481212651271236190665602928620187595123104469241837422492502544034801665253385769469357256254660879209308575801811576117403356461870323750534972511939017011964006300760711649654562303250113688415242300661598706129927474405522906081011631173372152632154643794405426905994282405595611763748800024200245140193832934757250480883116181852053120316590101476890313073944545215356238906208866859285460877968676888085377071097252271700547731437054725629384730774187042834188317495920967454800710519461083970759934297055571874932819802141221905521672893403976394590241961117096759518780842709240153532896137079102216420080655889598537294291230960366541567424275254544180235841974312748638860762284325033561583934007868922502916187609228382772663832816070007824347631770769431988232548607122124635427510954569156115115511157067690012715504120902321749493968764099943558169849628814575561936416356519421187894490547782722221227838776736533989856113003054321032557011641465441580066678930108414235834170996136722493534179543946161226208186336461373585263159610486247977910543938162392219124420166380648971378797591861567239941903773938540729729514050281993685804010816545240782793220262276316164412720638826157854625142205076043609848214671668441034336879979106333016573161601429075303251988585473031811810484383066313078274903546092497979677344884013180665332041007932828465745618888906550919150855789635267718807995861694041591283527637185402856040534146199898106487854116545214357954171194976691031939993665448529765697754605333839657796417377809095454046129023834681731351606478861830050714809704868413899059297800671884133608224245255288293924831963750748910696012348964135552888545872520879240537459614367031436394724800463112707007942759834219581728104445113768824704233086588978011602131243712608788391065980061170943399080040309277210143540890912890757229550171255008287842644575663851070964735655504242037316042243402589044970883581151781420589094391667351663225131328050572197554696949385528475940422253093500138670756248461070892150924278609419521791990447413674581681241253658150273621609521728926111671196413194398804541853547330979501027214711911378558794868842466860666452967099662669536594579931158454045655700352038219601159846189414785345750418872157013143067425548599911791292970364477636919270491843730435714723416853549850676073169315900576667830995167456936144194256708091096498225088602806169453738620779738026694299666681131690702300577745766922697597997070573887460154236080568375323151033574327861715859336333866539291176970324555589134298397816669634415112903695173275848138755510715594150425961403314576798501006580639712789498329115479535699836460109239162041598970659111160678148699246020794653777653250083362172284586960285757083259520461902839560721220126068603073090113023332463935276824433150891297754708730627487580195279351753101026345017681616930539264395137821270025345434733555598927727030938234744747987674239757808752556745768193464450966479550572072805326240779656171847795688088162199103020341890016083675503078392392983399004353369651858349244342597404213426875629023337737945665869459638780602443279935579456444539634545132803702196389515023223501296947962672749889095405134034615857365207800535034952825739909284719037829872005086782001976631691193201937198529761421074326020583698278263930897748874244851450318407431806337934383189461241143877953962140074551751464338698604180748623166450390581686028345175374261877168451010940896387624061957224952077391184969070325667092497986835700537256301574601138162823920427512126764606188414729289121366792465550220215499335537131939762315447770940745285916955777523582212849641109189179646143508297125561293249431451024498250884047202714192736146063669287140034097664326847337876279001353934046608453375772739528585494260952206784090827625825404989819390846381196787043422052178267370855430074453184166720297206230634951933820962781587741038129915700330516558566491098569943483300007500775107512324822846678470809731070980614057948299849523315290898285155326839576887100539980813120836745581750059788042752204553149228869783801184874597869064679389108321541577199578118630806114678387111236936914290792154613093680519864391507595747613363335167963664326538926365212912381298807105323685906272196188403307811524590555086526851601101869625931338505313405276501212920190123654282087029320635882702273859090283238102918597566332816344035196192382250364286532168029518198374462688448116991298003303569831434206060650175434026185767784670088477877763159940046614620797122961985590395345623895118364288332107167189287861290699101460828935269633659369993246687641244698595197905517732332004668965332735736102542579740614857970871521452367599237265528151370713198763354962532257769624699729206500960543222679834278098340199547375155548844328754739486060311707168392338514702069612267370694368758080319419103945147447343649936898283472488608735252832640324221558817751465769267521217842743522146295873501562908768281674086268347888461940650772120658926071929923678371504266960324173085039764368001152582400130450234032457056233069840399773596812834238593603387825566407708585624305719706612802727982807398786965681962553188721697986825859379926206642030329764658874718594233340651660304370117894191493199774947791686586947926681714425187782028855074113441984099776735845140940413594934337681843679373796219534982105954212446726634549510578301920487296883242545801494898889493098891127756757188296843932273084943787850939167216863340724801514886036316745082896662814124156597570536076918824009807508372751491535625592982867031006810851917034635521999464508443112953105195526479459607480527297722451563571062283718158522798917007526770763443631753571225026611113563685911879791650932578303335772452458356322362126357040466878983616881373218002270877462945232672097683804236998414522308324706833477986289362208455114418304137759783070782254562970390742413410789163238528655607943332472567344442106738609236785251907206282308277599142622827765514508112899861915646284015704070392632111973716371866560945296259777810485627409113538321375884153061013657646556442120213456262433655044384787291737944459902348025940667397363173389870082409406913553288085764457010653214655357845369931979836097008861541049611297097821546626392069988403435173980397826543855097661653369276984782578597948087354576099845005895690142072889838570838615449281279404560680774133904773040375875898818162360043627438786209190404296924632316882525589398031538308711629217761472295400164953814393724956870130865530969106534024123368998131834101105738183912783441525897364084094783440067239199790635063016447219207409855764501935818314837168289679838643056562480130388077799242282647669996818824031342262655632733674265578651522458415259400312069541031781646394311758332019797409185712286995000525316777065156596995725198517322953711521979449656633133160612417478159467781368179508014529665794861173751881264611806387719855167764997217303202270790729033959830374669983812683608582514210548556015057564257224569208817353552105905735334016232589588954008285241057540847305436653243032416408390773700576159056128875314444695832974307788852494279335171493181159088029055849182752108128975535627340786282175757051013453051347778518637315475257371215575974167437616706778352792593717213202502225983977660401016799806780443555654533787509815023947493110851516715050255076311127224772546392882238204216895527435851084733549420724558034339370910612966070535292488821284343245383498967708380820876095218750602601034223051608063043158303762187444794942910564122405228876625828068217484461296178226547634096839346021575903876562186389592092079892240930882119603773744270749482084270567487788861313294451212680818622545636322640458466061052401807940016905631624595601403054475045564683128283491287581445982965082928596815017852860046736191839364499502710773180524230797254879317289661265819992494281678513079349574982030548938228458734008361843377090913112239020588408237985405681202173449289182798713456679793757960721249699165662358361286576428087990046325280032532716271312410919843902149595779489000157093341031268522242127934735525538125116577652447334549411692816257079868441349778751767466775663788750583196118349669788600657226006926679612082892629136983806595645332840843811808209164491958194397564060599572134391407839564099237088946025337157655413691869798748375146494265024073258376915656324295319554326289000050301738344244537959178383438514137086780846200429730496231841426377308050628176541135448993833053763983782134047290401302820317198927455922917302933901556428240494526727966990497977486336935035062126465459585254954079817184219353791215329769391043904358419380627165919479180367325432407808853386589882578638082272552515421693832931859919430698117655698557792233238696624481715755894506899353224814190529762039781048041363646054419386356429658746203526841881711519864547178296490017162563290345305582627074653480269859768661488789514067350355622577845620725814383408964871473344646681571741370256600960038666222156420659422460417941719921413268123016477229513986262222555958836215437854267320067068222447363354067202623862871019059453124339704052948112232137505553821120415453049743911795507087707377833030841578868425221934337810660118770246203452773065182833767466928474232036898652385030731119842816559280222447619314334923080431839163289875404845803892104269304286094369776444626628284996196188202677843750584160432480093237609003100922196346469757202702486066413958346697876252857143330549979107605385091476684503983488084559298676599588431080071725939356138722724807644983138993011151454172186595222680612325638309514784722425231291584384812721340239576268119693598972685810837740403483907532363915256920482623744962046401430962986951206169074251716957281315714850903113079972707295769044986008500054913173926969664251498664569483142405655050608462708825014021462923173249873369856475196473034420889228896087732961742247904902216416116159626271359989049205529478927169987227940423285524019042331920514247057037761018786152246204177291578306852927396776818548226868992299967601587673927273331053434789910629106570341495991724754514152245032224891519805495720832493463448246305191607856976119048795734245267322663831295333472269085530861877498392168268170956475340576433491142390880985003597532185746638001891677882896539468432251100567961396105570095232238603239254855105666676656828975270500102998638695136690231161608538060899624492189974085922176157280668706517557186804258953021569449033329128109449596638343670902022691629476863861464237532884482500199430113984385576501607679401692019310388260801321722295672601581986149010875411530525422665671412682675695934509752701618499345115003640461623820204279874817409256714739320814128729736082320020250284986946344909168996783514382635523860711636014279341235278278399170581504101929903289640989689137265966265873498526797328299768255703405051337784543542180475524718787692690652564136806084838331051477669977916367253779246245724180622966592095939701316766599177834262948024722754591413984145398036309747491573064913216543945289928493155170759507854002508789676644244025086677956389530379743265617336996868769856860713425592229792226145909748828945815302913468710670608293155979248339106228876248305343922385992269899264902666000444333383260821037181424227670471764409182835641281318155036620708710087279296874698217839522623039274134235451607189370037153488451082969651340431150962893823844439748944575298924822394534393095581479019274201879502635631010982941463378667448718477063020213804682487979759963593042887586697460458667051821228293364797515500461384427237919277618180010925614540901398165069616543672116632392835585245680978381749681530169787923263670753619546572137298287623165114135912091656563828722550030053581509558473499335444172024175156297719524102464794827568302835053441157108373013458496328337041960746987160583418740758126493835625920522573322130997344985980512682037896333974694040888261785542503789153411772248900836901718092500761373207295271532650331710039327744649295713336565248480896158803250864476318231757089273154208717871270757753263042634776085025147297011633391367181055508807052619392541699570210842572812695093813444974809790442832871357597466324988357938388171349159831542986512394321132897853496752054690865885586287456349287840093901649745933735255902613700355637661705282673429470171589979524745151556524087204357640967299176303636769350173188725284493429913564687486808473934564594831460089628745213172841345835710074869530741269914730590036494994477040184225528969389228934315686590680469077123274328387648604136339275159232600003354401150320536387148940645207052481788003506312475492568033967213550778328853207962199923982618514254347730274192013815037718284619779609672215950789585782622491941838226418332645154307563926026285026458710386242742621619633943132826859966758851048778996569995397938594915451883233511865651086082390546287990716121662608874656500371685410263465019639239999786406045466485337288626212134886188784915269406887551396100679980637002210161954886977398997225913521838118992170382120840063337331680125527792202378360332489377638190823268976249299514201558782539264892208781611316305119619047023170396377981782553042514411929166515307689675027689332276267066391353738872690134116557865929624098732963761339096395209861929039902486453351873805700274844156430043145003927779508454093097067033446888051303175973232552301801755547104355463377401632571927941917499998095940976644040301243155145746225890933818483511446856850139224430100706335015624618914233489931949687355354804382753837371006397287995293068033136321864994907620823619105918124465603362013639013700376950712052486973174066373645623911493125050346408625210446617522301556408907658162546731357613934978989100233634706417959953986437484091655129020184704662944941507310378614220052730204739727210455848282038893844299670435396702084836966993820194131108745174988806475720287726091453296178397686641562822530598184979796822676453629352561259200045563159154021293417242977798042351503104854305734817112493946331689946656109556014110093420590892066931720371323404981784637081278575306890239129565728982797766735423373447015415389542124550509997508919441212730425403156887454083143022171319980486998823429255222865937798453711986235188836076981145344647698599419008865022101299992287936417354576349505919838377115324295338209842101178017549125197593729556430251370608602286530682813650279950387992333809662788949174825954905433349524007305969368697170899846283026660349573582711065448151502350935338043750496288956550263681497164393307710372106255823790359249929751079369714384016158865248623465168323983599990945905214753497917870424952365691155436606427087538751900086364617481958067013116699031861346200415364401536016347968357478172067588265879493374698387541450305100724963631499692656351220829963806851319967984431120262979950391723323544165671263298965422894122776581216012355614808189441810154277420313539812527064168637411185345974365474760156285654796047645819219437398693745054239210346756182157704890470868993421989545474385901728284566116939553255721640398459539161181360411971946943498796703554038754859138267929627479682474815079833406464286951186001152150385058472245860814858405243923795780604520867975882748837332853318744013915249405894078027983395540424860684511543122867495071008818793621223914255762694358031545658982873988594655417540629041909055179857189704489132342807154425411794954965244182990250117808702347864890060340869929186224975651188059555191675583123239274818727514602094025498332510572766460766073496820663557294656354973583883707632127033167519419643404245885846205128541475012993576350433635557789785787549256884275080550424831993946790081741580534921430682729352085409167275917885928068082796872671017960920377163163398769252925213878694122849935798547154459739852894996161863163949722643762610196375725263564310850925153420455087457175100906672753016043384845063307444340006888052781795308978407925915896657934898490890822812147384136262962652663987098411942866738441345568637300755838812756154127161334356891060349409799730240513525596015713516351517345005745520191155744088167317107693648059164836372609526297277365998651109766127956346937719878141887973932548960071035157489101498821057385553442560454082195910411677771874336735077148511637632091275630485169131656441765085950382387421412416251809842547145623432679004525677736930744923689046760490904957947885047367235886359582371552347887083884942399502864012816650313818519923129965470496547961485794773607437757514795001788986321653017179962363179865971591537114703102358838389249918664238898323795886562355868193013002541123787387573902143114009233959572988230703262920103476607779400878390691540522228898280416007616766369632287672887232148949021231826615534033622009010792324505744841010060020504675405724409928097478420923291326772640793222902795376852393806937492203489949643183967115572170982331687267495882312622683839297626289497809156780244603568016478646954873117335321089296959034667656121213288159322747634263288066865936243178289469303533946964926574797898178444809215926540225744505481457042964871891170061170296244620179688129813188283695198322956451042562900329598984211299539074166624485587323543609507890422166298562253637069648633499099542026763786663069479821675112223323767089129124887268522987740137375776256416792387221728202245710126672945267282412786489106049183873944721226547201632419879244448022253364682894939451988232160141703422523132748142454067092007095107960392777760818754940841097177800157879463463878845832832695166762501821987054124737365720966724451239236414623722869406128822814652928642127775670363731873223133657197466866254106880575577870222993681958775928512896309995789833410136153588792475892888251565969525792183688671919146643905761352668122739733338376736656749163437339147846001065331896657320020804433883807155615509324382853019214341568399500530332627869728393929754665397072925167948737750485162370076159282669883693761562443224943407451619212753866485654815353617929306328967424864732292198029159844042891555459495578602852534964363830188454639834895356531085185147254250182132192896725229540936844295687963320824889694941675100349119387066443322266139246347193263346280811256132758370227339489621885193807956529789710215211355883358190437419036374006298450425465376377808482511634440307115426960507581248293625082129998409373935367814311474894465875067112530194416807988889470264339957461444334764841505009754284582846330801309712614158728404621051629386674892665770436318801545763790945215523935451654790867105298015274694490426122513039285868388179231380913510136845716561353398981619194560263914185478804502837727486996554803431273016914234171712962985608492131974294143192396239718338110192394545331100408441779840166328971575115664373620965433096835214486228801141447799955786046054988339911101595280701171136860316392170946294216692117878945186138713612942016138734839022845644411434902709257067170729990153122709444710362478473826439638274260975072762737067596815525605326183657092464631278180688602003434462162472768360216201553507730244734115238040992639990479734372884831191552942888023140196738023191979375759365414969851472739799548148390272393006204000492949414888165714185585297366810233078845160613606736814219063529219038222545942060939340775622518595846964813622504044285706921652954951956926292161595796536528854336657866965079119257399799683928359007201551881941897573922107997422820997935181666676595645121643262328720106039119190101672391530055251119675202577748756388271954081181473385831743295665375837369376487270391993584917742543940760703503802162482917418475698821233272120559103795427137502986077592130327804960033686726612971384827978517072275038554069389125336611265702726261433561522079288329549838760218724883237376204790130104594461208747162098816741666996186566304928770185487183068444873884674479646480258528322962113873647507988443006658185724682795847352174264482141584508646973276365271011607106353299256250933883946713338032390683160379066663728957600437133990310007243163312434775347078262486940499221761625419265966279532414285961302579777566395074023890410758834919019934372526517004888566947047372447881484603601430868334654817301693211496589821676997223874579080500005434092524070006400373579436447703948771787949964140333190187450943552771104806914653960650201008527376795021155410051397587309442473788373457060857177626519485556046974253058644172591723180008246315717025635416458911969216417192570470046737613533388531069492563677372658436931712980145482732150158049133099500472938648724381405226950048983227384295811779482993263350244562362771600962268630537752003218706716647792255528333230844185592266867904081714975443221267779535280509695175055059800321551293064791821702673533914357304534440296471225627362612295726516482089268551126259808278829795142821645835560525489952328533354820603162022914687844148546988917826451317094920532364718417624170738989008711845198949616551732062655196467618628455953337374897834335981302050865644800560542233677184983447998208025555682300760345853173248973695954885663333700483218458330357512351097949206365101447878577301271043226775078682951424709550617801249884193406031088917321310334343725574179523517296782909275258112451235997762313393043567164388155708477084105588652686089358933203433938124104893390138620085826797564137351269495609328803836908158866080831806601342174533503136829482958215547693310384945257697381229724377487790731116714092524061051083851252257390307416370593548510574945899341577333257909352317856358081946260312176551560526804242187854567716027111236145894892944395187795610184789328239242762548494897293568853783009427434237757023348708867194278190517653971597189500952589827275355757502497895323227700506932134196526608426831403045728049561491926469627012733969909701308757731458645670366126373598459366859510376322192004798043658399125012692227574207967197536996378226173979610929710657537247893420120195772787562597909073691117296890008150624547015841172849871132747382822089665594322085790864107558005772386943472084620648800848725141172954522155749182405448162107445462049431205165273631713637457440535051648082757207828839497924191162474472424260172123916936963634403376355265542606778278926295794247571869136795416844294719799674687355216486457785477948507007740040563414719826680872761957148549303198625010548568635088812377699091748561682782682534736141868041681380267702416094275961229543048707497110822133063728179572572017848048246788712893206157711542652695920072034976796196409099003129711789532242880891449222725660652430334464800777865208202680646861422726562403995929830381903156151354531314932373303317765816828901493916250041865565238334270132185102020296883602135700165178096794137262433473381052052064002258133116403660483135001247218547318435798398067785015700892551333612898480999469692591124242658502437376257172391924755958003247291032251380932420346261598714747758889887304734854566264826125412525336061867822903970677483279510016879123969426305618626844006643891345601988361326387551329599029898288167129529269967193980622219380366211123373131390330844311684644861203091901353324574595258400851288489632363807457641833216997108956079903650760501656077514925572326597101679401678381061944383098392901821728848236552564701731645553970885723521571994626175072884113437007360605182949362778648510359304809807849045157318373405625555473332482003857448229548940001132158678238168852443999992266586813078438710359399850052425948890214926617607367146096943490613484685210332542839872326442964162305880567639419341424420716662069190777479505218027298537809042866041307888774607383419549633524461311503796034587377487541409409823698779678550516255306033405779427960204035727642349645174362396823231332347920663297567165108511478573160565304933143380598307020316766689319896965961945179786784940962836277200903749154484830723049970370918672464644789368444910130934753509387925564259152364198382634865850997043113701401120792612769570120402123787292059742750114676536570132810444464448570708863763264221820422207289687362300188222599348443247391401103718018701988515431146645406951168118935923873161366364930115517492497432491327796215622386118982716993756648093192206865603980744268744560543308044751995717188130491094180449335045638026644664737592983584861457706742830938072999079051057187009820236956588585838747849971371652890151456421363491942085336998761774928153829475614965046494585847583214491673700740081473555834392210487579223851053446598090133320485296675665351042794877809816346351595749134930464544717594350147587083033405483595593659903691130632160876668491752100996623085189298486804166794862751230338773552254069565336723694158848003176017722397678911950133444271783446442066243783481329700520130306228739783610990645061589047637521123217707096064972905958578279663708448649438855058946812213397662265058701410697642423942514565968716960030670310611013656033780421818423889086581436789322485856023928392128798228732286631679211911051619356373627668215324730298335495730141708234759807502604380354441542236444760715403079388242942131441759976503121486680124873916777177516548076758505510318460821052715352960011867164821003021409781723219414853004982250220994661303837515340418258138124666977773320404638615637915237317698975544627789579904384534075630582416321358949350211921911364971204360304845803535041722055126321556479246399982108728515603832698910920650629241449236107597536232722867560904546582118844381179764029630107341320150881694998626932439834757602051590861567175707631804951232419339270915632171117658422710326305102798274004746877496153244077519380871522015039953168205322954176636577399684672337955878103024138126028716711082114700158326881662820469389566772877112844891553862351692463726411808181669772970119049684327375427322336571944661863780690382951037218139270622570998236442524803637215676259870997658446732876242070983671217211667508393075452664453460979775405597336210124103885173488284096018498201558967470626877359409639463901822902202015781355164766210737132650448754240801392215985806603898386458648280338354425263364980841166600612907078032475237447498620558996117844171876046686373899759452465321924730120223197081493323364590380463190841320338458153928060022405645713244063267364205812231073503220410468638898894024573361105126168453509806171370950669059541380479498538807663313395714923262463385865852790605892407088851955086153418109181968475519377305262710656528777080180147753489580567194252027998207393499692519272599071537897860862650984028712644855955544179570769176988932488080629596728751305297511737279333311062398978146288811158706416162511465376132051846736889495896126766674736482986508685432100507371895449170238461490468446346774924451223966203825045697865964655135611742627321067321468771816426152770489883951511593989132297069806702988368916197052299817140509984858422990775180847738114773973409145244774972904214759462291856917646759254088147275697025503639183267805786946709198220108749091858401649681991300677752641146341847174881433446723772539471311631512103508740180550195733783251282977101740170712748954166386872910068681896699953911474794408498993599453825393558198522104129662953333162500725242572335060767154911510855126644934933172010585976930586337489971614145144084811432479125033669539417482082189206656918938854497883927800058757291910790318819602010480868140586161979488660642371501788680533629775306753116621572447516180802610214111942739092823976700653445234174406416529562090692872276283563528850633849987859309116268086315206345860010540603399203521686957611758415845590088979595036973652861161940884515555318364857228045974792829696447597401754812782828809629755355270291211838594867227347222560317133284466968605776013115972995735302469085846012356367882655931184427192300563250528585550465724851034889982034662975293081572909871286065301531672284459473909343137717456754435336824464536830596331308556546441354958413632779237427809872354348677003422639219613835378575971806890755476256974321150918898552095655357865555188399278387849730959663064791606749947108586093433881933119386987202344785798319880110575855351811808269007880721750186642786363283130996397102955845553642221234683485941142013556339702253582420233381448249797719369534796789756971409915019664025343158531387256298531303801157920887950710563801819607821870661541924058639450382115427044799092531601328438690699800290845574800451240766494862344067082727106637167856122482583079838369413185435992005122159480128050913792688751135314695106238085269648592199762200573014757725125680769498574904470455291961717466290157579775552798491420745080383049242325861200114684569201590309968880827767492746265735749406648259573015796089273323200824459812619138088206631813699104919366534139960877568148680330127693965492990537774740734272617273847549140997222977266733847166281317704424041323227369526938115610634355611746329095552768125687165432648783407335699892554399121514378001774334983643307723229629985564169823232342755666937368990082438190136681437223412180490238113815194437973388851683036303219747141171091270016202733538984334789386360123317632631655085284672683677194827833483731814493736669051646945262550473277129707009957281456250323812434342253909957083083514975383649871603618200200233096502573488735659388673515653354702724870425835693985186674773301504420662010597872667784131190883045533486289524734719491533863365955358670984745676702692885529774521161601856168248997766316022597999963202530628240018284438631054427503742796033163643402707196691337696541386657990275147820947167034863057816358307357085688399166859659321995668569630309366134453157342760155345322223671080293836583782440144413629394869800414005305353919407786782798142539403620802544693775014693504369655315976762286044902580482670347475831291297822287725133334957012755313339311414066904470578271035125942412971206120565179350398174225291900322438958147941619557401181887765390558055187982900295253714563591099639178881275950695085186561383467029894372986234455519083923791150538893012939599883365643895741111677430749031737744782160627545472669549140670279717142486437613467710603512303328082206058714427653921667766739403170886749627725233464265549912717341301270110088375115741138557437114788879040779888191765592255350335191227054232382210292539457749683029478847779181070891503953785222925475264731570768550359149062388983529985787471289797585804504762215538040798982174212001850824280841591317372129855466642916985476790603642545284198919372849775530601680343765562209847161278635848206224444723419978733329679688213767462528316940311264270336470124790235846105804041770205466191357406299340945148978550570381510350638139375209296561663799447852456070967523276095591536958869858030256988123052542449653466424466455590975681944398238741387436378837105203086416407358952344978309005846954492385008588042555627241101686638692454601441986042052133149790964630026273907352875810555637841873689654192225418891848753078214328852464720646036898511525691756385781878163614241364483502423063107192963346973189275686637307091600965948865431800586916932765265088078829951060881209401518321709518484434174701320199955314970824333638622699996170861240988056014372924546611673860874569931610854871661879992062012297601887816668903590773624117653309469806683263621619804787119065663990987325166360233779009833173318349008736366073602558257468638550520040578583746995734630647796463330525575419770844069241795608014543047720060097398063777717541742884741278628109405142008117131417179492323465146821556568020541736060287322951530205298317011941558406372701616435848433052009617278321911504666216129982780509026691073114675993842427331545597340451168370950937155914948845236378901834904457345353020277428100512789209667140991555378225712870902025233244070635590590224390327001494541249658392827602934267291790380348767077417594538437243195177438673115298961627434262191491050708612654075057342042284269809449190629950658112893756162563209257023637808181570026953556741669118131383181032733870671503823080456474761008306616730280823603263584426013694660142733861857612877989363574980451490040386350342486347295290622175022664837256716633543497748284294322271713394026659544940257812206695121475979542457826498055836345119272124050916004500846794599295095787680338768338097774603370307446410077318802471741578632818912941082477893050286933251845179245283701218135325570945381758076979889548428978283751727131855433472729027995726100091921323017698386037046911030380222498143199179565919141631814198687981182553742585595547951254911583681110541940903566089358324631020779362944344575829304541857854205607805897526222903189347150668671513843550891746810820188078252551856650481666147469146812160373970342601480242380835037128296071528568589688427271618250759643229055556702257525382691745715408350265780192311577528914239827792194906767145417850362670737542641152165891646001236352241600594343231062900105810968459166564584188711478556981037175267368627840614126593484677774519369451089762504701625876138689100443782406501628371968324004826645874900567789006485568603255909970175430114322197921950266789838052203901742009188710483408440165021635756613481632217976397712900110813519102622005697291064293691573061075831463171689875197152932665117010969710895539881502770237364833665548258055785457437928670121825134924291554831900867365801684847165809378908466010254204278635036112782707967001517602751142490171885385553576499402845736755924875324991629382818391034111692571997608781025994005951030423739968061872041366611492703465058250062854697549802479043614685590326172989856598480719886713232915508966416971845394430116652012169433582627982038344360623817183478895348376056006136630449068301125759590868521068846782798095350818372225644148039532282041958088645097637223613553824980625375066635066635137434865816792070657763076433826532071318379297974909585207877107287520119959209000568624159530219869088108181496942632579295510154125168667862678861927086094252711248570262487151067843867581525061290651554738578657597178721286920954693829014629956621633195357928789224891314370372534932724990450205245132336558774684124603675872784620015681063204838619420987468736215092289340478995107333704717209709252802517310059671476934039962244328037195315635177136073765973471069390135410787055207762045319612038734191580563250492898244311983641425484474226012763998995755702697182255470716240264232000344785104608929907336837602732710392854851541504493462084597225707539884833493695761037940058317764252310474616331721592841389233260472779231180330266091051925641456048269560022676939294390086540377029341151345211258999765256407909865334361172505229702028321438005857368067566699413976232798303465702567301602213330660524595731990032690840502002358070376632961950049101444800183648607580866750014463171506164364502742816589151605683094308331852490997852494496315909179475168285373475843869976524935669360036771490458251074867908622192948096037937024243916116089595534941769453451011036084742180582567984032237019632946021312156584179364788793191387868258413983155962697406528747447112256589988969201445477111809667011375248320806777685200537932133500524713234342806598249759970748727468350995517392113002547106944996734315114425599973481750639655716387958730505620744008030094074248628835834243585577000908103085026227145218318843425777720800065522585478412933732500711280384970574463434426722976672919604147587271378218782131698505637725110918937839537632929343890481327044327196223785564327571027586180695558866548696510579073154439855874108751075312671911451607960214353477117813528328683204287021680860442993424789570364451408847091577973801117164335449275660559047720966908115741330957174345874285920468826401027837856994364868459693816933451165324629029354913813993364991852288335665658752806774039730028281736483271970826602605777455169121848472411425833395192556627254904768882238522438992253901936403408139821482101480092592341906591143397701006349215268852072466127507371206373855190269762262579601636949057123012537744591031608407001637705473336368517661780471380160776925141770390918110021546533773021005460227685027503597806373771581297915592605824296016139033338255758651648695010211709437392053214240059928364937229503156545377394209814445205746919953847023831067747628354110209575645146985176740834159364494848726811210411747118640548751944342158165331390317853089588039131435378929925712166331924696258083406747643171012579133283054181170865932203168636680039493278653177377148368342309989416375733580274064260563620484199576361864489203520280538871353331947099603089848807842603249009442556694638748253820536653831758748378882061179441036004911002335578948983944274809718307364224003358514576835780476382498411866542387332021307244073432080310328428090539509319862730170914282367534824689246288761446289922273750445464054212015033769005882487343987521360393115396644879367147275992544762226655705755132562860350816929478090302641829659780239560927806018152240776592533008119843975313160971228092801418238906118534255852268111534697254012181292822072488193367779186351718226853092757570141883781643912528071274738554051746291994454548867241693025193934660641363155435023192869929022627100114764792368555037755497742561839634188585161396955397203565482533288313621546341044862732611242142406005363358032761609940544066726728860686829073963223533304925761588806963895323122094415088412883259943822336484805623220180652746235329334936770139744365911818103993256642427990216584773142262934958529069073809968681724699845564610008220073901822501496768981634439645882179083764408258684508315528545748159669981758583309611742690230165454168838322274156662717334321100894194804242827509064588570528556210711210727235292813787073202520904409519508853285534918764027484843297227363092922496053140360691839449888776772112539310052077959204115965556632925045969652740787547152479697053343618635096205225472240298367091095971864143155406257478453478867474062476518599294946827252459265072777163051406672062023697431941634142942014291465623769556975109267646898506622088326526500692489597083377509338521069717860412539484660072301316087547769268583755605747767454673760386159397545413080121094353496959214801924417358091963591797226492117978800758597822397448123204895595727279733661749947985111956701253688394816807943081814876913357854495536159881497766986528728180367645291100725106012142516713787616505097849958885767295700000001242876137538915909235496332024855264598997605539687170200253362284933679163693236694219153203888795443082426157825327896642665055865845694889644040795114797364739609071422679602386550146380424262665593126740533226989410155153545667818079147916403262524614068941301057459158463759267192441399182332091567543156915376177483154322086472729980845358910711175142965180495671703295918485436445240993332010015401788538145645116484221755509416637325545485212030066642651085534805171911825879320667534945351239023449612264928898517673429907110422043516818803582709480473892770404248706164816770590776018335002336865212251161497874864956101799316181916659543567978146447447705430875484062285307828487375293223183674739314495702599703870658863997842043767901488697165697076560105263534607040463908346162431129756149930689769427655338254167181137896042074299456025746770193150154055573264068117743546569574831753174009269125610993635435964635901816932684887613621708248067848845116077963486713836673301941707219003355099448456991186363201144587825647691091860174253090213935930346019463626253973402396411233132976652246437033079285231706684413789420728867360611125412148750880849005237969155218919741937493121483951997075814441918813624530874201870537503380209798253370681039468575506856577391737259976089315385477640892296782479865746120488657957253251282866884432212490004392254866077438737963507809866859128010471326263308901695458654678184325640345061277855287604532641378246007684121357043856274963768871864121998946470029176222479923944492196093454978250344583638022886115665864995804663174167928518788935555353323017701420471206291409276053261220219350961310512431109233479649621186428664639617119948613911288162275348387888816358461914269609926087136277759809985638334914483198718402765329202987871669875762308377688267698033202831984971739742691065966660959722876840486495694729236497938271360887642627281973719129460420764583954618565927763312147706163264279088736375602754965323175295902784951704881517306817612825083058685615592207424273883167794890019114077459625621316202736552701703801942649237617608433700445402294394481390195526731844755290611855567722343732570277862303506489654962847044838790774096791840776732243637236224826589768259667525415364085773850817569103175638485080800596919777096448082910946978635018212862836550280665448161230973531309901933023865853561707309169436693902434153193896742642458320372343469578556026689117957638865857601280881979295487932474252898471922661695909543682006373974631455983295936287641569235758020213484287704004384581835515677516678398621998631185317992284522122252579052014510947106336503276150427797259342090240788219435672088160935989238544259932156910314130960137154692062964197916967617418816978197433484402743603642562683281076178961448857918025839481012358587933198798351252740524950457218349812693800025722106842950040833561937734866264283982343573433151770313212626912920827243674199360727798989710694949008938380779239340136262210964474130603826771854039807759587752348259943705346443494779649004886065160682090281323249111042665307663211178971274875907068699548248022157652112691400226536000598641496845978824904497304831531312506753583635886098669999957074116687480108651896295104081889837320975348184666700997838094154334829472988452681083665456177807119423948803861313899691959820584530142359879814309933638228511517281631888325997978861752119113611520835119665671505801769406798355968370297683404882153094795656038407309283483925766450212663686365487043838819927823440597337379659738485249993373774462969572555190765554145239134803033500406657381541734123573050961927044986543841023978949948300425530913904496661018460289413873481934698865248322892783615597637382500531909914331156363759901451680259221014635425646816051305377923133816384917447778731902828385302491913868647745358888862634953493454692174055457335535374541874673651582640840377789723039473232188976855381422404442442022865611877949329489161594698662935339965423774637168271046049790369825011488778945244794976482539750474908911851531099855085687518581312652281428040263438229264182562757615052857272256233752034121773505817809750991243420442221110107137903595060906131943036854382933039561136196094122687080679076400273020556549140377660434485924816858415429584192232875918618020102427366943475501053976504375194710379415898025850183139402790941225481078375573373281667036752576903000226820927219045840669052193639312514261975639301852452357203019200817247368621708966840306856401088879144051227992167318276831606531541193937510491385747123280398879099117935306522341412351206755166304876440252140295401290428699921112617753006889557375444268470541944879862803407742566182435392462761593558795895924864677147590544177605275610871519821924100637111319487188184668584971792855489682904783272370113701885507667401556953099424785212708918490582597079761437461842341186477770678108678649362913772060871152756473096594760661450853674282510096607694401656728671354887955078552919512956119610616657828665453820797869643756641577624297178064543849092584731189295674056920108685464460288177988252191026952645937891113603585857204891298222742069709548089686723002259915716947960737189486798102857138090889581193560410593265533622208049560970214277240134455808518609965109747824972891472254599200524750247221044975445181661966186512302360617895492824299875072106470856320863493827629010449885329817321741027706170005101471694335772727714437185754776507808509051112759270930908937800806279138264325353715415582391490550042581917974827528681687582415195062336994247867135790242284255370405192209839743882339612750538914085924648158187625075816029847998831267644632144832642634791985327092526315883120432852492230725143410589120406335206792883959835851450639025799532257236950009610788159569987290776183725932478990257762380636698904134188714366248768379173102839247745400527767429965987972786370217685988303580701735998457576296262715635480213649576111379559965410471309360350520184560088629991347020127020449642190681033239452350406263780281497666581336403658706524125435881436320790780519769853709985615082652761274408488886250352837342260948937471376503013065302655061967055991230923729058589240233570290579357235109978339799332173911893203418527396944664467116115457460314568009407681234145284815380893750207030670079142309223958994246720757942369095342613613382094883217908408751790956485119441284102138839468242773131389204664659179939233265898598489643268208704168885821590131255882440564612546259696316028777929771355483983775228513077234260123692521586869948627875466189617681820862391408996420900284745746730030819782187756078683624803689146824357347309592431652106809340838376394861791073005269118409885022080553157642433139767950083536271548136319535235804310942668377072417261538964512277388846768156303231648513470637847734350325727649090510155991775079890533759669345594922506602519472791009063212415098471970636051469240030368878891915658662816352393674436613239075888858668545770757793092697727643209347174336530275008159055670481413637624939366500741354549151913542074944460674149905719997890328558808070400679246550904796472957518586255140081628472860261056793342738052160477914985496718083262695491145655106074600013693873651730073032153259677673281310547504323421056486265050070650561040309103037309909017688606220819398944202082853374897631062890908339862255233849017536607024399214214472406739063962725850886269943047375758815163411581924418271750439377094678548100885795434183575676714054237502389322062851262676799732165956065732755991314030457971308352844998702362807977688584072446274854415570096539703255612409188704768439686045244483306836661481535065231879505055578380509305559450129834328375213729087418636890461112319859880597740434365441038699977040187296600477745733238032149634150214885835583147707342832185090387958456010925372808000945511654778645892902527691554561431924635709426309454761078260020276493030537821927699675499577895597724670166019478507918934249005766063297146976795815963500031414396358046679329638877086939219018253220649612915302482426045592029571916902899512266808144247203455826306881701529349887864159039009936130970045468044358094617923711190162442011417893339816255067524086377203077290920288535554056582114456692524373313653734251297796604226079978951815681833612821862064101630254179210171740053782473073168494531965846427005049762232077963216917576184378635818405782523264343268975415495529727103416365369826324957551963125973538058158787226082821340550579348207666674872324524695607408828366514249200816081602619172603514208156056385612211233876103412162852254472911763872925809919250970981427083074900768444201454168029339875979238694064001193657813898340686762463739280978229277522664681746321751082817789368319583845760689853017531680704571885757045749381973955266671110703517899427737194194451504906550301045629754229140345230859602525257061271907324945191955653846659326036579873017381747916563937722123483409124186583198972259443354504711923931515921051505665559044131227986475821544517811942635853952242055509487401240138824532904187721037222478916815107728325509109499382521252570922462480948180848531948483274641830342132357963598746726682219695297345496483638266631294979675858528042007539926410528072816464241375679384508800219932195938793032664679514778500036252282270493301395638502002641359526628828995352869356638143563075570717691136979991777815771903755109803727581718350877239608902928903763379518816946445155385180447908582014274091565609350008623739381608656619524717709357492543725245741640846172639599032511912708436016623030446904011424361953652344128790571071348312170663582821413297483487054457679169885563457737672597982236361401852626110320364298017029388049116567200885771056868206738922291399971339806325807014531730623087059754199041041350542015428894489102085358412605688348527731064000675755554739999812569460117953734775500832493316450659711042305587135286920547463231284688214835331451687567068364243879867740578763283355652281545989386615615351065832929192344623713145335167145100348929907140809541153541088757335684402126691997985780880978962402935467732055747191772739908169341880189649358284917172169429758948224789336718639357961481727141923677309534101636881966092316765913882442158809835173377763192573861380630549685174267920591284143489085617995070338650691334475889574542374949851432177926503475453322175601636797672652921320399556771201798069108047913331735091257117060996842353510772380029714223335904079144494626009787055117856393698840037141538110730373947680431321119455670877351979410227949294918632828700017519495438633053336595459560317220178142915731113208347154240421989650957246347689502240047013624975495826685393832863812875923972660979069095616694103687019912085148940737560253122676499610353369682029983112064354747181149319523189510045440612554658325491675738052812443339724015013496643499151260065557369596597596528946509478398911506651698570129609970158979956063898049357915929314886506750586084388134016417743811289426267642135200339323586674116144724030696640678071688192018976759972110268756262317483288106748577584023675361846036314979826477859784351369699821951645366285358766800703026012461589397745842157578368644297102191989971838126414091700232507098756142117917675183092601013609490301228714548649226725452000827106602044075627621435534469793600264952628181991812574194006660117301619945607874466923052753350388677655473704565502305809954492698624164739740507616971546900466617723850398416128733196065526704516861697389832457103016748178640680768373930052750141083818116149927472895329021394460714713966740011605947240271406670316699024348395140793639386647021847993050318741219968364972179575971256107592168675594274572383233914174056917711152746878503109967173134410436918738030033625350875356502928860747197389071148820197999165672839717530296274017764282358364972986658473325747172518358699650768942384766049302207061268944602285813956470638346895348528752252390300270054961098195390271270514649901534676128683288684180852190274529059501971793991323048061945559701914929843733539410408135764435591391090690498793793716612048500455310686071153118271401455647792466333746011289021175611046292989142233048578658473270245459887300149478362642385107929994151497379431390868424673712757380445845066394944936369190913229270233986277452222879482520096624664010799485972759652244392595506769015765538467011303341748111428334943056069926062588377401216316832430005075934335563594446016644158780082062822817835114588865096225262523568417816028161048061659532345578293704848570766059127198263218396229765582386654816257191976087017119250846498642410131270704588983762228194124675133838283897172137384375214400326210152117719553452900905551201107399581859140600483168344398412785303396319224041099701212314577857818961575890005724463230041664388503798023310858904221099299557910875073293313850986878547491558300010583932217655754451970446163915552660530836120427807968925178081409759371130536082839244276359314682974182552299748963571225246218348548680406293555064486388489206636292531712878945240091691802226924589398294699972394217025904754601197768101851783899079360246466087084177526366314284400916821797446380750468173996102560634665304859199006954474285844012642351033486045839387826001805326154056357265611536560054125232980279224034927889545574628371422219963629084170638797181101911761842134376383215691517651209035149877173853441835796520098858533564856579152147790627616247121812368501000108193832999297749311929053445526986044974767482854919560548643805922773676740478604168946923542084572570057672830765227356379203752485970753617334849640854144972763333433215881471843355078244544569617595004265409316427779187838457180039974324669554872551419716607906849347170154996273521808875202252151892290076688881627764203640416424715588945218587504676431292058155612487771299361445584039921088032216429660185854907929492239567029179118070893953515718278065725659038305477154438339753193657577716085848433770766362774415612597036593078546427375845351551902816386013999924816646674587735906900993531210106481572370611062826202313554496217988084781262444675254066947367749655333660620168487164196788227429891067591665538373939299233688255952041553970228621330903168569205428173881454408997997150637534998978546120268795133108728090372504452863304735802371875123142747288631748024934653287665959745740516764017871634073028547308392005210445872291701203441902872222564061770522915086926667844389342460569285428894156823813995836158466576516485599704224488111424246791411230935552600833184451909365267336759165409351324992286073533937655142021270233031750923103815466714552576700122550403937838250333735605531041830920096101970000182622348076965356544343057460629672462421636779124893821406712397057260762107403319125108394950657813746298351299087543686556734437258143907262304528339426601054037882738958946165637265253153976463087783911402839373948493228264506870460671102525522996226319744644403309938242804261512413298558622845504080793475309640829367801228862640710403241020714902168261165676925868998180372493772746134538421474266516795609441277191048426216854889697874111091535771118621738437980233325199462506718661856476262188879107331881982008326819997729379705793491301062828039014685486203828078733773281938092850162352045337469241632652119670857233472217835034362433909012831568794872139722951420249588932368324673608824120422174556175746152320487958031954142375666646955228385245899147604342809911348552505066624568296745577631236908819445646046731700199758022973169933643262699552491322732445330351446018148421996650206603066935438697646997275446551928125309782886663922154808219219279261380307676620719836961871290373602383710855053578256772077406879179393738477114902674899615155793378372850590253660696380932371614154547591361008321003308112048135552210953045306471585437408667293088356490108263499789039126084728985897214789635654002906249479434338492772665530434789395109817534552612438002649547911531938034551003750556248077448888206121840818401733814565434732541008448577274191270806617123378405844590923051535161221344224996480096154755693158812891287604619770611396621057675564596167898479345786691308107668275215069158975713314817185759156680667639480470389437737291711224190205128373541009521974724843470154631903034424174756499094157134356989451015277664421137444880340158317391115626018108081501053921133249220211844451723693790696717793897721056414099064541970389740273417677095667889289952946033226445753734510818404179386678747084738104234465921731040197065683953183679220980663919507860857882008785178150255292758573742100199228765841055878423521967868002202014428454353318478090607772596945644238133156118099657768937626077291391721641009005928711800301506425479776357661583507309083382599589892236849680191107941011722872005429143692953970129904226103919592619367295544980130940217600110731299399240289453073678677454556663022826210846775589221884804864754162183724048619847764685088791875283782727272050960639233560646907712572265468673416167395673605265963906794456435494444168117732710405250183900032707624845793213517238242480229114059034891992115294330427955381654425974165089300422009352487492971252896282004028820776588178362448631074639031054121593643400915992880899797722283284447214174676215526829902297772370306315655582302694076525353485846312289543571745034914611256618996641190615706937425710299635341253303803562163643360932460032186662687049917138313782189426471949874395174821956033648693808556568721849299994209639019399136572142434355958111061183866671135641170159767409256874792859886843305415859187402297149556484992754558089421402140440893784305436669956871156147954785280042393970252013448524959035913942697341403410625849686330787514905113254431435698374156504884701477348001700019549571534417728933526194341662517235224165586096913636092418895793732231621385537378952196033320991345810951375919900972662221906149231579312427729888496309451042039323591023040544365205528272341288592657860417731434360862452347005102253020242435804774001841998196688949712915681630653692718422270825471305368854449470380397631218739214863585799490569525993729862721489453571484076508467121611421262817975379164608439323775224410258271502502604855364393357694367001542371106221347115493214298816191897408560815696600671676384527638856239113073596367183862901422591954164886476811726533410437035320162065414733103026728598760425643521677666166287491662395829054371082396578885392128004619153225137786150775448056731643490395222502335038722837894233800452226664179333859955588964343636057676028702894551119514738888721837406050184998250098172865371840045484025255173052141637920696998070667617568053153378345117872515741928726994605041431493892246088871315480377061298216343212520399808287350860700060402382291363285445039934828325671603305892271673412199531693457877285773783988428988332260664473512014648495338966359314123003353421722387453356548340949384141613915828694709077803176332234217796131539216893653490490734847733203675677141221033058268801595236649412516432936608512923629793478439373988281182563311852245778316437408855313074244376303822753723754628665709345971887369883809680457240093928207548708565646048792253078119563141387976320616900426691932311448774673480982329427319538841970185784267910135214945055474976172462274731287166798765403265905340888535183673135437431422946378888976792752937467162653573184462543057123827027641511417990907635881539451617153382096211782684907768488942153401386955331148846535648730028983484354430980688497067604943368332011684864287269664012792244019012795499311668820487666593675682071614865522437401856626192161193379186180537780895826577581014759852799659897114358381887939043279142058614710871932759269435157493959479018293473513390046463731125863766227509490384088816831775614107426220673480258508503720719884455990661635382511370517133042535654327193547202999635942367658395309672467805927770579672919853691084574492829198752619904688997383164476179781622358000700626769518920720593673546274975128451220545681842264040718167912676353736255339963289650332934981926273138497611547329038547433574331465623987642089907839150973832164762604794492555677034994344927358851560136294000777097482683747847456232050960236391099705397267421120977210069458764978407841202244456904941977923770680006058930473827478222424353684672439808901193545652198621374845182693962144624616918099929045249121903248174646251966361102314996341630113677640557515483449527717712407798635564883462793473779224311498866626605062114778291189410075721223388436517522018186525289106352309348072493590646650584385337988593257099775751327752804712441581980866376108400578964800951728227099230934581384949998599436874690837017255578842638497759565990071119614034333166696658394289774295873589972490996020544303825931763800838037779575878404482375020398584936867944295798166008292713335473500851680016605900493667281095299143618233718817100657652247177556656570400939737709021187191745482807513708723957142727887412157241169529411617692300638712520396838130876333145994351738136827441339549494264771829960587288227776809875286446007582773097038204539123989835722374298683776213783250691274876233535495214714846197857530579016469717303730887904168297601480040302549831420938695968946497824076802159352501375723564015550967319357620495850947257255038708075329458734987295904633751005578994546836384343924333760819240058865505324937643490975072839976563740019990913274960143010025625903312457935177168993636811018584502143311834482709591286288381849380041916493711123191543067024011877113317209832909598352839446532879800805899850729848501212915277370851972697672851045535553842221987981300826543615068676471411861748587569352676310603615131894831066528917725804849588164255867324988516392617761488047411999805899260862940034773536296930263038333569673199297320385402003296347904551372605642580743134497891829831651445240840672623082122507233468777340864571230282435287122143837083017042264226897859979094663151120020334104188514898703866895730197540103021554395060186692519208952215268029068371607529247336657226122398080563713779632302386352057008332748302689617752914589690985133215617032176353451904218155978382756421894627280738307180829575899655681715502908814112513323670104390187036675733667413177988967682489910582296868640939499338193131435376396902493080827637238035064709167223982518141118422126258819176914279006986830889441412545828319770193471900458573912146333285774390551730203560355811039222604698425254155410741445341525207047788771931561663868281417328158992071193386737579151165747921381500538252106206459385755515822866319423599674429322481600955110409853130731445991908972606326061318363433673307205312784931551293882368372925353509206536821341629403331745359293493562904597099258102240896939134415226540393562833731315310555323118354966381852805358735215731541026674596180296714527862977607817578550918071633578962782797032022422245521885548993211675330916465066592255411889658652624394862253887401199340908881631754492611018918269282736294730099274507500119807891760473028329810704014001618271265249958312661337125061099519302597476346994998146555740918157858099448862454320926013366579021392599009783429292365857884057561407570074525951463083736622771947630627130608401791786544819534224241346961436192927020427378375955179843901388957566597253324494905342114589624934591110147670021336118121748315860905863259594909156425336023987552431505277406679079848046654694281575274870766242307926192051088669773211969365461054211023637050237821084467443322965247188425315993874932119512315525230929350865476785372012055665274214440553876801218676800321117301885891091626986490580229561998277498599578521452779747508726663018507565387392771564656661334921877362131111094598886100476603828309046520838791538283075040024033660123730076891912346916779300900775038860262118171656472485886056886732245991223784578118125431944161973210255482592537756323573423816513707845633358669106383425062069874524503801306254684832489545196539435623814224227090705980539468941555638257866903478151373627541786291208167451629259014357379191108521984743186637393262475677340799547306970969852500149173287520000183625060676793523808589197624003593683161646690054043877804591184845934224270143823082745535834163777544458988686370610637559786273558750025785505069189004343283701467609490488195304003233618282243013736299112929636669315409703548928282730667608485636572142409294196846580857858216636340054628024761486860512469993226168765369842938353394782944701387468347580561520932346551222082620616669518157113342068539612900946240813059269844611234514359549277767465725796132620508026823515835168332693879292330382505601857665136242513444860326628889113597340182203963356177611738467273198822384168316917384310766529233043858990553753257211112947962960314412500118082613774351384585654751047246387227825579783211019254956434992635891347377330307767172177334303485086531706897022229590954263862120630369496416871187635405790711727525752000553419919059814369082896623380144983662337317110091784793528639940040911394533522379365258667996963520651674372499176568658691115951276572983134776014691009694125175627350209802405785800545715670564647829384114744780026694661150176511344954393325201319761202825966031680403227796167912733606912283749858644650217133865908689798838372343918055879379335626007851738412173605979807776879982736329804594812378183247360486744024301180092445111783326658672392282639619416459737832352373562616089774307749394166303021222100465367118031537582372285862915459152649856873073182250485298367877801803472722429049767913031671657235011706042866182924459635851126298430791018145944572356912899938845665729691362818892856331393102050968854975032587605522049908460284768474168696528943990379490664885461170288959975111563392058890781792029045624887406025228718898880869548262671671176458679742969978660205869476173809781520339515730242629535594690626492749345290356825880109685538454317333177055701806447847771276164514513992569912609156203351269495861131902781718369152455489771520967426912953698381855483714469528989526734024477764533214788566482117208359931370257106532272290212086723617116292515235945478496332191077005836041332812789309030645674495201472297655353747454077910970614863842257192704727413508981940679446379305280188987219273620623707365448803410143422064410988520056084231735468165319628560683621515246547515282292651043309890120608731091639883556852066242055086999784033916639061062617393145303274066657609761503463226623715221828622311037690598227648369031039947521067603769263619198121032893211222425890589053985207219125860149389590884479515664789255037291676210918287140653810265868876318675190028409809018788417991249847820305167550924495768136264154260947543729154266894498262399466794197077649913183307268077989744426223380082038751881125730369583377142289313025827490449204976964188884579470840370748200429067692775087620972586388129816905577355283673248155225367909747467870597245118115472028591740602625109035862431733858858300419064113026155570535918540456997632185010505567993152506774057510363031492096252670913455469741260159367600558291653887643112864880915035608349211212810404964528219729391592172180967150193526057228009430189337086652368218871982215390078983726524567396191228759790971371763674066526283507247484162016723149440220478413845692704891297204927141676376912775830679143323341584621184641364343518627686314916604774551145556509171617255897574458694862263532479115013578170048810933398218352476589353992899915177205196209262518696818035278693976155609281837867885062111302816387317117202451757233236993961371825338017142713616670226913746796087347140972611553130498468870651008067723102848301242846450519069604402660970547235214641988624131207499387508156160552468396333872428025861957384263237700491364083621310956482624073701393850144522120661590931270697567325415886894727585134196269995087173589910888314689292660285009255765126202546396144743206512517865917345635298587110734368111289492278321621433773644293089582731813589984113861277356442724370189329240235226281238881429694256948098003623173893452539405613242509584482250476425787516777083983182267916712735802962028645667374676778707383409587455860656397104601700261831200345538307519322543404614037798795348622622616359679307797410047604324992143441896959207604924037913080616927844735582700168941531311353770826905941340464476588601573071559252463999690634883700557850388085448667532020982778282979978824053686545120563602005428631061773181620660490353124159515091076431507523120918331567344657974865526256413621406618624452691702907745070056165174275701598481842629115014075016270838794600801074965571893858370294369524138487022804440234481941401714424204239013661659630543219841515687538644219592346797505939233136360670553792579568835438450850986114132371277026540847575219206373975134894849811959228802049787599159260232797928980722240068161436756486370927172383275889550589932489459496407376419783326933847648078719255368759467323829948468373614121127291759091382117127688035583429192921035239870615349391131203299294817990032614389954326521398333526485769153612510147078567614047164462194065018554492067603619484228831974868006219011020228623456961473877802722177228313036401472470660954420970753371470453071370361949450940667807780200586760636892907648630604455674832445957152061138153245652176716429501229345191946381917615945738430209890165571786275160414857979290122454208165095143081856081524385895135798452176549145809360530826470101525592288800426815115056060850272525701442055169634637904108231111525162207681992447457744995921584631716817021982903889096910856883043416776202936503020339577393778943440992313036209899290968614093589214846264290369276602423335530491804378386713825869655869038357400197958461033151738541114684139140545662295272344989475679517998145509787438922393849446980982678118958822041852332818655782718153084556259727782752822082576232066968220349355947118665401648145016975875805501969986711225501765193618434016699603420251283718771901951380543619505881883144091480224498144677505422553081101215871714460524278058200110487063547602564347599722993151571644367333964299084361599939138498045269942959048254143769102988175866391657893570390779817645768381759327471552669524151048653895027052095885471679194143099317252915933836897434961092458637490396928597991238075918752901035187956014970627072729060910829254444329862102228359699376846354976828293325440932380496556858974037266422711656102042822638260923941907269311832131783688236993696361715521160121003334803875399957572496485474295524922033871326180214789144944073193237875920773309521537828340051861661850957962749586652935094324551977920393150290244833933848633989260338947631580141397976218471325433105082638204178466235944099429088955649824410018099876556331739067646581335403911597348658686151851530429665434708818919461137877842605234591982901578597018525481829694804682969205608269136475737302378417961670163972367761543243747048318861397035570582571384174886220691943718021790734829184379910735155052164858983680004050450383165486082336079485617343656912395658753527923362180049211038386725965725375980484016966757027986076393169063000638454696576308716546387680918141457735566062986162591663700472059704129105836443526366229917618438696280911779059397606156381066395050365225792338119155886217238799275148888143872033619851766630955068237873611403211270385996681571328941574870766898240631253833521516354336768816377399819588671776967451525499547730624365140410449502532839845194000615047224239832607331882484355976560023128613667548046333405544546065262346205513593176963558195264827796176790336157485553606791873753417211517821902170170059902105839150128175815454855406370860382094095202761693751403858793300771287287163576196252993282302899232973396201134693406961986690697811996531612072382437512046805801908560322231531179495662152669999601716628830446687392569922344775794663184409340410601487745403091927085859963035702313757093368057016729636929815793548176405716232134546789552378872069835654465511972188185564510085574316419770760192828655470829867708275000076849783077800558790578845929672773902239620310178429152046299304609679538646838304696345664896240224446600114813022927153378761983391110461732102260198006713272676689044660727950005234778663252214315870275650325432488370221460062978433995449725961016884623200149969000161244059960996187965472921949290675442823393131672368657918222347486723660864497461643912380429750230051801620513650108848523108691953952040719310018209157822202421128958348226556158542710206912469027258217594895700577529523001345861758489356454512644155446422430409762578006691758572412089776428926195908671346531457098674315183699930960189422868899191904153513441061868353059783116001624388850449676768666223231279910165629079949757521545803795466844407767545654730358044371543013187059062427029446427184943830760224204843348832029627782737345598863621807531573583262775273715873827640832529607312962375237712046660598975057186889516590601622521827944443055085492089074644732738517877257707434466603397302810342360603113708275415579381343225334370692658530643034310182909403647362031039816014571064616139782574640195564190937113125045807422333408154757434647691923587917520954021327058730764876707969465716340140951762925848725692436563149539460183365502223390510821288570666844075822696133740156878868583770749337194284376646050323800247543755701547822169391094482662714323654244890552062742025491560203604076806259549376852290486895658691343074646082125515449774508009203417756833079168077602547800513125528637479689367467587395366435646532744817453449735144470664866720690215767479994532892325686098996866926016208892967910892224334450135968204336805500342293131346933064387826299166369694646346459103813961298038078454384250440273531133981293383037803748549188198874024908147696560834563726461547512244379247073921688317284429758719513840808752923656403927331324342287689753453609553699811977802555671996029700477575908728590009043343518744163734522619404824142630912129942166768300547924341397837889162078936819263589799274459769696379982359808444389809831593716883158290341652863115648420232821435522423164633607045625172323645213812871783851193249490652056003415870292481108871418976266205489425798374227675073545224665301974035741020347249163640466584337755093914605879825500673883772499185614968833445481780871276708901393970528114331147154910517459774506174453378481545546023071215703526511318875174021543227714177586736718020547013273015735126271540187350609392899176799920489724967124430623757043813158054993429275485073453642131744420430380609105794300593615648962181106114921558728136915399976048406648290367667521691959804130710715177195954138274453953445073831127403422684198904967251781494213759841670415789860501705912984958744467866301150185398075318909439262936051885131692659721065707412586224569551518737215649860683876975093346080556010578360716216045763764926968414537327969392692598122305496759538173576333386037258035017134218629075419090778023325303150489757187702583089257329531301048136074703183186395498332568838697409169614086903031955839487654084020526458622289373430730962300277200296275209103602242816813001618280209920016391812060731169034817855097536371083434584193753967965179606287268100231542436504976612448432548622926232231126248291388506620293198411041053136586731579063345555238329135288791934898619561534868531676799823611721284367947488052201535760469245231785358250285574170463919924506465963617248328429762475970816197934928678505508582995692139539305165923262825025107003004514447219017687733717951918777179240579651760380442822529903947209031249265604743763691401366304602443217528817136882439630131550391251756561246798743262068933792961164508847794238895382621736585504138376031112088173055885027667221018324939328255288875416590770398274894248731071160001807926441731613034372316741985733332566147428733927389333839884367871941290091870270878216623695909753467930012376215512644056236706253729439177178994954321074989187274293435899209187484310616747633599003909559941379866230994899763390987416830645964936356307247185607951284376180411379163605421401813850664884310850827338848386282487691703670424580586492570509418858277445329010338733589874684463770503042168929114144151214856977724842597638303927229701451486673954713676973908978015424180254973737181789562971052268445164312554614246602372079754040505024404214915976228683303183405384198267391081212737218064624208947714857542180410432412689126085959185596451574175571409350837538811230234216230367864919254193306692680332923779641610759189983985926460482218153827203707337087844720370650798510514660914257654914353317146882045435188760236009792428472497775144666129918051381189930076419691036142577682812244222258789872470645416001064529026056421663956124514308749518316214455582315189648318143899439893206424407782920868089039617495528044498428219790874992021896201980474116206922169339084545475277403690360414958107619493913469856730046661418801570078714055691606736130410453103365129684720242327036813208991992703908584405920028798047038974244093335928519686509329063009863749650154607214746689056572354384078976743183059761567852626990077145729428747093975211282368986395396297218363781259235443948303724794506920796658588335369565986172570583681152499029848667368145689619524549160562369958671022456556974054318294961553987954746899140048402624363135285641459100029027800431338405017699548455847977440953336444140708948207940429036743044857324281061297384458083516218293473164311317841381300884461713940393038242461975781309770208213991495174291968414296500956018516360728267035684787963278357535217893152387114947413399024421482011307355181356376571799672613414680493028959188767513086868663481248208470589253473559139166932930776980315917224435342787765271956301927736888291868941147952990022835406843133311746118084173446532317552941569864606310269862541509692931646879779808908985555843905160224488318306160603958259689997436947888174169551250518464485760758005168007498628664657075631345274127813626202081949588570629482204481814661237943257113322073698408577557516289462413361519593126302201192528710952834101420723783620398125978768583722697265553602825036741102485314539384385847745942663794198236743721873433001298155543587498540689915239399008319991165680269335634222869981490362756835091540910510485361541680260536418799177143471605083444398080329404097648147876928862242675807462619308645438933892708163569394840787421611776337902884739009825634269182530736210023970028094646040800273653913413328022823262718956125232765972090727033262532656349189067563126778806517469733181115915527219827216019759013416446430321027345627288338435330968393318241132805562325352606651090589648737975472936666123362590655466661336570921771139195307303008103723343639231503010770146432185686775651447164214567779159329719392727005718085563422235133092762771995743681403336785929990332233044177675349514796919738496993887765411073908738962928481934640147707939474449783835110315855027635582607091525158523149632668653556065183670755783171061246008429964340353308714123161969172412154320541106891028612400675750519458272494573047073879770681467259199340523372541450887721155593699765711328716865519346162924626512937808047531086471856280438429021672445038113650097137326262454307317010310629034839222509648231361817680771190235431045698449205212368242684200298437963776275270121617830144207033457708975192157148935286377804670300358087584964225707600895649467130274674603747842881989535749281112898143243338082512608069080629096733811739264491446420268388902469494620915188686184657225533285022923830756774230814873418264725802540113542217224160666024076070775780916532763100710690679178988739006340018170575407420953560474718032482086544762967721584131312622169716580077275030182735905076322125433271447530761742323510983966468818981955645352114631863139930080332752301220426090980305740762840269359028733876473924403453472420739267196542263518103355897530870576822487930550569864915341891069180601398842309175070909116030082011751244611875649502858932330473990821776732440310388615055958405544468638313495538036061166222203772543812578070860767034176009489710189262311474805535148929839427850555667419892223938434471177183543941627745597504218369072904325182593832823637206784693964107554239854131257515643518268452347162654348173447598038292830543292707791806705510822501291838350218133016411694577893659119412703679704847779259174016078037665009917846981230926186603885378318491410584532318523863995895442771910792008780105047857621444948630432250714664449443265743656654288861954642557863667424610278246537677387283250309712955728951004679929560335472153086755659816443703470535329508890841021771670404641621550791140573171049099799490447768522787610550438341471654521950615192031503872473384492767873758861097177436991477033341601620194587558183240958669949492645288932266860646874042849273387168265685876765409142048013645811848586013435123467324384388298158218484985325427046194940727940568340825524176685647409898274333231601997130499055975670897423478474402091714742470834859410878261096293213014727959626724271556698238053091243879257974204137551401234849075795479498107710811002504551189149264335793777978355640973895573331258669958206923426119546116919249240607953024909267978628982836551186505797493881868252779725386555054817087410603329551468274801200519875429509963606058809939566839804418392949951488777908836565197984421427536289568420874367869286717003150118337836077592529087670119650163279906070270693699931923300763878027186963587773597687150459466034726034846108341437199377790434436182410459431293190083687101222421383459423789802922865919983839585865609573270413461280106257342756870854482793977511569212494113193429317487418202078305124156924940808865600419023974327452663829535031922743111436864359908946944661541755504680029362925778400681573647335513144154531371875951131458467521754068157259756009148000560671823835831841873921637946011535114178820912282668383002208813909695206752316357346761892737984960727727387621891056519354682182663911239670670564250128624045506509169930777740629037128048004727777760579362876964907735202847716102209302232811306954614296898837412416610855536612337812744364991063566195567667370045782422773549636220733233805572297903825071471338690938953971331143293068846154779898360002970483607392905667274095591521594214818982820616977637581473687448540983699436037014634553355757738877255836453900663770458069252150546039537587215875306238708971367943144525942507281159285629526965422515869890809781289038308486493252124673031672216788901884225971887579598489399135588127033058874213183608162913044189769117967919048180399195850603884225581806276844522407365703630854456310788553336425163128112088589319896951679529020246829567877854878659705766265419520280510139150732925572250267795985249442280617967965089367350160922004929080539445693875788488616201129169948290886262907573552330386981688745304470196612479250893244087661871795074167061158209936580887303572564434012324319853727758059607437219948175724483713215151570328888676687124012352113319914984745113526759805498233182046982823212287987721088910868483533954041401083057352799246911843873940040393537105469292641689944257002454703530555448911328749404922352617134838562009455296415284796477986912595949686803007062419444156278188224172064612740700396794740044347444553190847529408318177823001894895100198423245100145566339991861423547830814000186521646069780189120376328865401049172845034773797793812687271778882036421853207898830906930489753669885371991619086406062406606456606640094921069617336053623256317517490336801090507737278844112585591505498799150468063948883315400724845025011760526520700306236991122948569331293827731964230350234338726482328064341980422919026940183538877819943327486570545824202286310749145754310339524768734033239727284279874364062457054945621629996114970730257277172029688945756449834599525132965560768301316937509979489616683848235176546862033918691559940083825015012709079540145246690763459425876736307775290631428979228977910953170298879062923714632842436077640195322362748505631748557668265024768511504975486812710916213099838516848253959345358526398531024572476809600473590632867265645778890922631633511579979878038675569266645901759448221450057004894571886535911380000994184734955745543596979912465627244655366679834297149889699404392137278331763056940514857684442110619150947524711486511663219424920895072527545069903826903188500780256593468766273280208691817405788464793903523312980237186480633406764919775388278063417018146091184126026436074937587831144360838863582669104236437706021221905176692645082201778481250437611161930682427283072231927851501415687233331402150288957237587850168191257387275540741774808936202023843448777677820457712864550662303179477906246339290957828001779598119974349736959194689515345442028888101318329652668907373746549769602566484342932918295864534019084059959507001424041135957958005801471012638062552659575125919291489015754181519505602807532494724290371951911025647721916701485958044976906692027133296322991214366562662399244491812558064070238712534030115071697082582920068977157732362252284881424694821001945539890419421840031483082271967664450985563315717190731628690035074859088497462221482911700836654639317504377159040550294496054559857290925246393375577716660926430573476605432891940481008039476884564774224282761901475027267950542106267952111677330920507299516149699973330478576514575445239696053791734840894152742977776958416527012723390310715363012645900178367540688405551600112213781177276614602203430732370204658029395392717335007556899272868003268670792753244530231368164637147949954303687325281358819155870503045582672772999254880414811348067486920335038274341922931127316272802625709624794676557859280236516431638854749583129112204845792471436835980573454274561075735531529153456018736087813118438254298700644043064983288328496310519431345949974077730656966025157493256497724683155637467278167540778864400287166089789690345109340401194774202828935486390891821551471468054379800140010919028270381456990165265879312130080589004298894317440631968431432201799312538632527400533019433255606148821959827912703884644787936545874598734102414688687928928931248199313497413873097938461284124583124083282339796545411542022708333711358914782417082640367412185604246676177151973111630580555399335417313158717429873622790333986550598536106523635068569306672768705765014772278068500831607526680191017805286676245517705348555334946929485852212128321345262246828658486974733129575476487130382910804775441431201553519187844233841336542638851563492869211849413437295903783169595461313021298476517057164285288038132634103377462505878588397314842639722382208872018337659298857564827250057801281202075401872836483762143859695327564235863051442772801626504329945644392942588927393792154903387360778124236444161655594128666178235492160948798021321432006309861011303677193584992148329338354733175222575048097361398977165454536737595165237835455438017461160049741799799982261646824903843925369451343734506772297324585054272741668414193125529097588737600923340439279058018990050301122842489908877711129130814410034046099628840736562801228062127091737779701712322807352061164199680782757756840989121381138568185017521685457376117047076624931399697590254460898595299202164593030787550643191885931993937759917087861292132272143378675112239121345313705503210142510170542187461671314090829091005213286649510719360372453990873076409832977153953903591162856441635604642946556449557112828478135466097529404599639621197794684145961410380394317724537821210137743956169299841107803046789119774786195460453831333731051456483745909059772472047380325077220253932317450852364754201463988687317876837352863899901751317076391381162341923043867004139622348760522366864017346647500408198626635648812749001429960355741834130832399766730466654685346477961613961758809882328963509261783820254060449882380442051308436184445720969486072399866068365043530892575204221576992393513206855232674002214956777080905049408836951313000410316598424441144199971998884037290921565675401161593162139660024566985113868808861421346771850117417213696335863485317205320396785390710893412015144004846057068664653401159051433172613876927861295890487963666720400475283800630028431850585571368500423310573713443659437783554271021311972559240500083858472459824872441225740454985521680362346854524359683459149097531818398676157407024710253523886940472708427843162965266096785947470744372602332686295009722793029867490485686500353573489874421491439458916513671639598754158914400651905398035456451825157802542673291087519020026024464505406493766153784358676674466988002300587858629385945293004498156171035362458907771106530304024554070702494446841078939628508325960759792845572115130776854245659886320575997406791702091119145747282601662117155930325832213664014945017213562194844133014056689922960256741377192414580220166256096907930553162537450773909680583072987909259391840396111838106185222396748187842067872280070882364121756379342173585783205974689579907525780599389092847668261106956947038453275595915321781865231589443072395069697547066536113058125660783598570688401879794544214493140783850809845797849691535145527454803040986272949052173396900572050468803109190591298092869713278741587720345993018573658891268967680762699115681525149683623624318620050668309679676884701126316314513181763021746047363397814917644286366751464665569034777970688139902412846673249435399295411008685806563781245327802499306084610851105024974418002807178979373147563022402874021235195962527082492498350651344755454345642932867477494121428204442001792006441533349561341169087877007761008985653894212252123002833807710165804979322477788670553018350227214452438722545879510326661216727069956471506557477727574366064259209671114185433927354866717905049417676739806254545374391313096794716451982536481240766046771807325483540921097001447936446221110914263192419288283233829694385484907483432415757204682565354432073699547117554376944964554046481383418455002929148682108361010011869175753593657884986027499202291061882444858926375707314523014883034161776822951923113165475957094946173623484965069032097682715452407337396558726162459437226321739124825274543252766882030500064974380567399792226487062940413803603256696085172157322716869384583650166985473394703609135871641993157089546927935417046476853850028608706916776299582600669212469179633909309728493397799450070006449540729136647373525916017797118741220660477927624685748717300200700403915654638950016588680184824801349373236068706022892225382587472311876535205567245707294978050349304002621163706199719260039716924622200973975790117906104575439486412604812152678664612047727359564225602088261216172587203326672027781936655469263445014077110995948038249991095743373277571771700250811318839451182394130606715943720552375528227646770510051825587578775357454356488713614470652829251017375605226280062999751043538897446974575905021645946592177358788311261053301889885557655215168580019491071495939222652513081412297952257057913089746578336486112213135891663863140807976383109699932835289486257289691822400373488912869621797139376787385628668635694168062597303687012539223145275106580947334563074380589840149212567916044376351727202752490677190177213232132633320742728955682415163096688065009272882224114379844770326667800299668526208347125262508466303067252957278787091103641767102291378711813581300729562666796830085257296867766788156484636213420362514091324217356675530479040518140942343222903257065233485716317441932080160351793706421240803008059651783934626006903198587976643785140357860284017520109994046342057232768240798225011661108440029647761568996453644023425018008030689192474263354864294553350272959345261758042673741850054699470548015235022241228692101404783777623959237757175078768325344618878392683186028419592497036640101650834869028702143443542376238696876157605101529259926053714199692070586764056959613221577546308259330013076770630528743843892638035688774576914706932332901615916908061797911363636267286801571413754081758203245596312413558870785586087244481489795791141416506503738213768349746053215458453730005798751689104990219316172636462340467535043063933558219296240029375306104603212530423124163334914044799829617211353346705102414888679336667127556430429124199734431670115035189026784594510005057227512202104116001205220583664723606172358685232170337846742854437815083049503701956220949095285129263930454742961125121221869490908180739214748156965723162693080081788171913924199032658764946452861532287948132071698800994672551237860344531947917751136262176780408798152734205526504360665345038954764529088234028720800299776859062151542063014698936774014133587715144024903610087491459969865403434520670132055005458766404907110962281159552996720593150576019359767282073658345664158163623477620352540566821783474509601652489285917280602658194917025499714487306343118930418785191270963519666063553832396983885175056374461874502119155994965546666715609037381432569684260993899448442796233598579134663506742445796561871121125282720448680228484057676762665203572985188897878807505290761630346822858578303052512195312056005493387724936580261198832248904909199441435686165743267617790984711930675622335398226504562556736982862238048996009489114486801993808872321197415680388234603053816017442277634794875674814446769341271622186499940719287084790713738901494983980192064933208645234832000943255636365176207874660914537232057705040051486975531952734465909841529563935725355031685335594674505732787638334083682861681199423206112429049238462580714721989554485630299771690864073121683586620827649059697740039932426741804478630693057344008177190302888720437956120168205810501898751488264595759131785288251115138048071626613227058019830792313341071692461455522188620311695024750696362093825224507057312796922568063505654654742781607961875471392581228894307007660322870710012776483243069142908400233538206982258286930348973121313205200788202380014125266434594369207779012085504147543416713005956332451203621243518488686168317336111602512202674596476870693136694110376296391346441307143298197703489153360829611676096718304213140269420564491292255436504053673467356735730842282843830481316109072380160069563453588180426927613044789728250375017505851507693912820744333816075995898336350431586173020619331244124565412757300234214589651497807320519165935781938989620356838254276030593400196582465513949063356244625547361672823027195691424848726444480971619608741934924191763324799678242461318091742329170850346276407500723720374779077744791826344018652345518715102368421490350660501169033185859610871018867964244942822426292526456279082646293399425493005623485665671857047540951017928601851522251921299782890145880897336858116466730450725264772771044336537255475857229835465514592574265068559083124674164902640889459198220101256851247570344374625235219652177912022034889860923325215103673161504440374812383290199862086494590857772051856792913834283962162734858531942613396789200282655875262767322965294358976269842364629274464472341782420338104859053817835043455830633586971829441876284827909697784042546039573021313487255517669912486658787877934508687892473613496231377580003826581171179101778842809480675204396391161274958484438466348624553109046038699410008056480381473430701320607295413594710855413281931528757436885763057235576355031285796287730089552778946837837519267807004246123072310243606070931578227876891487580478911423316543459604747437813924759425819373575363308211367881526899632132192308332158358000761417764809456656347602760564766035037879025724781811383870186693996552155578560550754779747597570681600577563688430197756840502282617201367109177415139030953296250854817694705162878217621532921708243102696644812839021392774827320822524222096271306040272400593432121090828416063138009767479712279957516620474171504075793783580223099605537780052355362413756404640472154937588765641572831970254888410303347976018138004676883676348690437542473806685917566580189428954642593839401323495133387414740442077819400327137941104491218209765859987133488624339147922688047600834967070358647812768054614875359743081538879635471079343170988185582792581823074931055477513868182270695215188624872215106107297626305785311044981979543057188776133629279163229279961307746458896953902824757251853971501538686692454775870486191968572140464499920261413948664978651615946077756607996494850735192830534833920697084913075098935617952078920926561233665771731382160305705320455962152490861514529363065894141693542107746756924141527168712145628476594550052539318210074213574248814521871939275564501442503094471634879312053852074109058826865712975310304354302209449365568920072760736266944866803415585074113114843325772548267731318716090288113832105832992700478305268704669564624311795022142757357979051304840338411572619510695990108750361534315628557747149994523481972132932402104576969034527107226263724270458878078086553842318370951189962106608229675984177767600390863343943680728649357245777790551920435585367067415305343450174526989697519993845699638118884174699231675007163416910799866832150568238634207227032824097934090954434498469442428271244861994882071708401150680624807203210342567589690107864097009219897458769644974713198788228286986598042058267678535276347519112558284286744485649171133410383967988596176198521924123440020195972411932637545237854670764651420571967751542524678523312276679482537863750850765891874025087055780281184141570126796136784815658773860209848477589967789422912777010540271613533611711568724251086418798383260542686439583272087949981744422335010917985536130505025999131081244576187523926256774865305208794521033126378232414291306214223952090985869529052783878460325076760680714561146133792582732956034158174213274048509825751995445902159278810782279946851138672144473407809147569719033407081738261775595213105876942635915480094287576584425122674428851454964707702858431102701495353756305665599815068926449561895577764236259287977711480094548571245565961635011530399876392391133790181122789739375229282276423243134409529972045387148513841394037213457096332954892461083954381130915686537381557319952190706367714579021929797656867032036336691777062442346007055820944742271139846412135840015585342000052787309806523040763070208892494784726178589614363443408427949999579440479870187129310913897963143982048965445761172546942287643088442366385532731006374718324506753119159229632677340884254548954493675271803091061474373680638948754756394779626821508306535262995766269803839650677760750754324435212974124253273416748775055625360285570015758094922404476176703190427183789948301206391534472574596790597865515589740217750478997499101257624480645043532469778800400126259424909754764571979277582297367550617537611232912998891555922118665317710647691239716757292409801547437416674856948270215367328096486942683436299038828045949529650664746688412069018212515224323707569620952784817699669852013666663890050611785982958283018825944773828822091456383085389993515378062870385380765700775499890046980827985170926236633329036880143393502876244070073456463843954622119865556382851019597722961445907107943879282423508212574009866671973526198155136879225424503153499421214801783585477691863632224461069889752228983091464257940276940437332459126084554105017791604891897724592354213803289812921290051449097159642981121867496335967717031703707754436597417390537252104226672498627388610034152795190579178828764093115796313335292912043811299369279583524431913823696411006883976062869987659144146657356605043766995255230930395811610302238295405060427305349020405531773683344021317481780324891155929821171471716003893741392628532100443234429240130955492058114912156046275848368511784574446789139796307098836789257747553823834606124777246066001900367551971730044136945897562339402874153816245734769562107107739738267623677067064757918073651784969833815392660826237703687670979751985036901587125770906319344267854889885995345398320982233196018128805323359880882622790442104193671464072161552165133931998657022585440705878686117842604034210645265466697944179430752831312347410607959772552643031381852607407912194767554686444644159451594986572718032323335733953896683345270643178572969066559926790004903969977969334455964736914090781146627108460423585942616535990010671270196480341722537808179136677112092758737171914474798345738385143041552789764662662100667027184611749876287236216969431941909666320672178861686906517094295932270156628614019461066908622872873912420776757775278436001265670107981698473922861501879963822634214245822728905930901427835137207673397901432145078385194240683347782121660561746750461053234254296267971947392322508362256395057096795012968299233206185413839208299125681564341890097795269728959073435391365529287371783724029248673556155955408585104508784933946160222756909597166394860729604681226292019315035560096725107000855302593465695107153956129202381178695243266662861889071570535161667191727839239275613600198488080441213876881045118959823032749948671040143467610550219058029967838007614301192123311373518638542824145336822324598779018313761077503384244433283772912147722568821379772672924853228530080310135058022099428189736613885922451582482532059343937655033640736948369707751614463062722121879739292214536159456225281591832018931826962946510946104842704409254515511615323295845216774586962145914056387442307809943672116504600035699988474129523155687940511232067653131176165304113291188617691901726272942545915456688709162168417850213199528274698366238402527925775919021670133934988693179924945637291935334766652323181859084026710697610505247218100645831922656109587239516006263735321680362425665194042326718751754035684653925996071712374943349503181574319284332376267935196447581889687145115741308447033332321142000224777916186743832756526086208582608925447460429006737451227035978564195944625738620892189055623959154652100902704422288457598176078070441561331798010832582341762047662653441442031888657230194255648785049645873914866179921180309693258025587846615919440224357581020764559023477741757241120634680714895592742126706588904080977951316159945009082768084238494509628428293381652936397744660539706313852348524749080080964366580719737886694770634162650145867744849836458917324582135230747557720615909087239223036655776689439477090439460069995578476411361020206509364615347338807420564731188907640191255742983326395978799509181630950131497191477831872873742682936544714569038274796961233875007362089380608679393434396669194981985733359439655588899041102717283547449068081925080549995842207757040271642750779169081175773561911139419359098704811812621895599406409259733241117638415421520508395457874569212656940753219755662594326261142656612077084279372836923477185536693704934952618130637236441002504462781265254656234088257435863891958209621453770147284926809405274336527657466645088302579494548400774301829765736983056620836172018751224296272560065852712992193936122374584997671552643852609729304804988515061117643261857828644469590937171686059595831411076396801160856575549338848430717350360166502929147349637331689265382854285282793200284323369848861515286657086474102852213136267982505916824771728405071890901403985525343774894544566913802575433052077485668505152821878679381064389597476799596499178663673116972717022379074866192619031358633407476870537463812045663569373182678069945225261931465715477546190490829459082609079941692146595992698774229963749055337286517841304456692920135808310917179708572443910385503977038873489109510012675334324039736491751841259935589716738376233593603665491601046742640458501990415036288545979673740123348824994694379306328596370405590155366957197531083245860341497030318728948584697080059704233016676686803693001977421636862614436886490288658057307861843451201731201629366477234413271676684335881956110808714663033197291492711984363380823757443418380961296874738123722978423322463000647771790097303101885535058925781576898100348692843762283210267786103197037212452087432989367045266165901982478442185427501616559135234906683682068226514094816059608770265529154741291115435830452284335137072955916252945911939854998670845999773302705347013259667571267357813285297619841237478447635216217429713904015928054118942363213451177014597499201370122941102730710834788539995131888823854929265538262321334224996270329159057511641688601838015006908729588180799417187661253019633736935116061642300974451809416651391239083935792577457235874560633502392958736504519282498739240429481154020686472298543443259021555767935826482558225458015842882069173935336160255161334590477986139994841495490263802896856119053271957498248846724774131936865906281821001462092399893369697356164125246809098522586123213510636061388453494939646094895875600391979319572332283747533377303845648466653992515903552604024945626936239469302423960108283021868840062600538327847357354452101898554915708988689155881201965154778111205553911723766064065716365314158372398836220854568028265827995335191003515656107701012380389058803792090418895594929953688801064935981732611789242962921053279500849278388077827636562252334646956579553297969023960143276756559981584385262482238753064294809900716185539143401816418599929489675341433940676948954503254734424835767560752920996557004344479718431898772704473692979303148464077034253798040523681723348867563018524606294429834740232227059874817145735030062680085616461925845756415527449164515444805012419066138633469305063928752130287769056975758730678770694256356248302129749429415068072209225248396298386770233974053456120301440326627493165619776669280488985863117270243859178587597085401155157621987063084347706484617267760013861971973832739224135380133169675886982438445683259897059998143783804650006069449847171912211139107257786457849504322190182036188757875931093957638053166234639284189619247273315144814086997167874712474359330176839451241869038238278648696716638983940440846447839431179244999602906250016683423249172558945718503117790446875534363743848834616347749332505816847579156867037005630150200430108128140758167476542109788468728333912234250646643356130371616290646641105887233449348699488003084560916263117771589791673833425719847414513902157784083159540979182109382865421220445345483238691827291920896656693435467448826351864720457300107132875122637979460633924823718171512993664268822623643124737886507616459364306343837877359079520734334649076110967322196151423692442113373047689320342461297939583457568454024594688797972128029005050802964860684723392042816266545030805963465488420490978816448485122483050493161634375168763706686816300685813864603478322692132201885932161601154253768075296947070932491253608195451822291889903340671157616270256631467882762978976503716160667744039139094157902273232082121677677444380837157459289118258082248299554204957105796308868752438267393662295790986545423691901485628221104540563065859250907391775377898953417589925776942765281173706232788027869098645266585705133803983695082805278088120004281975268946547585772519136968403710042891813908985473168696941347600043794609782555266588050206447550380160528102048564503054288982634749960163101252626794079679761949824093332620222981847772061033602782207830840556282958682410657949576453876341994986955841187692984905829954778943334056613677536621143799341981194620307472201733649629487906421336477780144951422340937922829293600638694541419635196378915205325177197732735996973700641597352869051435810425964216735998246027898177096297828363263742292686455140479297004508480251208840164144763544308568255729399079064173050016273718716255773628773070324646915049313651853980949154881174408003695278815619532082116156020281628081564066571159588806501015209331576937649694352962813896214954535923775228867526086643792627771216977447198709763535295712855029669609823574036911260970829448808109899876092797796436169819508953272516722287273538381039619050821491877188429221830417453783227251091615248867041957157458132044322593872929107008630420592726026386423961378940100302361633203069615930136063337779852223174964179382020564833648021940744785518434256628533829025921866748945354196684647857941112287477800293266585052118182109440195403793803240419870021326110404584599869617141059061177638301142135221312758884897728032577912202649603642566175292985528638040465405353474222354668898327935702874740233406100322553111732705269470773996234008596015596558449610076869807656540973063555765173930679364568127253147932461769471501838918895343552013625190190851649777911611655093959506171403080874476688820411705100075815707423929244300347833565870669833010766183702726373125204182209666644843296324270894107354661587346804436317764703816776883544746036623639173835364925423608147520076627214894482777281380606329166907854719839413320888387401486830270860398080797154616227774491156141354492702630243136431716972321742219695130260436172788668506007730434543910056447717856739399537759985582956287835738911105428060186931124531929759505218736497055025710665584732707791448810960800358804601108330377956339168278450662700718020312163160255252697814789839799163622316141128282874458373536042838121793116576021667781955195302956193651646728900003484493854499028785921483082751622235115469035949789273904414465783856136269282207395365789894398589936955555491244917201393312689960572432825958455111707733713121262244654843066271311397198488491674881006019687038211150369492722697147281046814918563602277984535218624826260176144848369378874466584183667432728811836316342309930097301621808381606823030177383555723514987672759438430090495626784152013898208895433618388880317618854684911252981491303209134016821378011398281656987594163027587955457572411255015324715903245289931505584462122413198730295050656697843315383212506833700100326004637094618291891672449735897766376054532078587172493911623115913761066755740976412975477702374798846067829846268198320855360518893053407403944946183755013452252257262200143666146550930528210826358587522788564943896197783550893022790667706931196602642710907510640746635430185623830705719806005704153527028421802227573169429875521193878274728727987419827250436614550604497487255696366706991925644205423479711646164519558066387841047711017718116809759928258691822493975463293876546575646876012830976501744251888072177075882037623416563807704932586038483329368764073299593021863942221017619833520899079408523359284985249290189074394731668298419432867979283134151475761052237752886597025778172589022982192318028244523372959166685052464748947129090795441870902916546869113033081347158480525556990132345807492441698532923015754097259782354415259047677004532788929061004574175131688311216291854848047112878590842201181980833830658430495968492027184787973675299655126960354032087342468468506732494685747088969422021382025925599242818425962275692440692954013226196543889091566776798859917129748454785179818824851428751970934617186122329423074610078448497269783310082173261828245264619642576644329343073121141035570853595624673360224524887302372954863026032042930514669464993663950651751444894535315866541464069317771814328714786225749052684879177879480450721888344672563125604816384491963208114035370373964380576401161544787096755106373013726178871099540625722697869561338855238550829028103402142942799635200919892711713399847166984633869289418571939691112252962515010909315745706068287968827162841290978705707448479916436595972634262079465874921397715987441116303347151503279158407113835693864371425880307980854686206537761446380524196816826373725633266938287294837070303194262658431144648253065989132646382755883710484900998645591220247488869156855429628972031499198103635377058821589805747583167748428972327153654670237833319422729410541695130484211904081760320904703551676399485209045760445881851323850981646824290533276879805415523051728308871749273164360318252002467593214425549584397575737853562269678096018039318176506359623971551808285678407485256335644729120727992263758931509404038156593454883799997073786036333917472095561733135175999803079067562139471745598127043062200230577173445432370238850981672547502580279767089815237990173466914371053864587738798043583186759217078904063325719331564670572346885160835110368662024623597005999985247860465056542004181902896596434703573394328255929251763610860385748252887977948226750468780268508294491794361630522892157723727031515137971036605004652950450518537109633365657456476409836109816653758818184613970501208076461481972545079763997488046482618315169385407618691865968554720614278290552958361286856425529320970555448436656433426929553421301398688398309868246661086309306350182078960420365183444722202653948072849740190937570616475417939346151481114931405140445772453778590954849476805373115684369796049665101840095082046759173826241658402393278804715121938985421025072971025930593279310680272852793962696703865225934377140169673948070810886238546689950214411566564556957965626637571075764835024810053770168629135082564812501496475113412691771737802826773664887866227885333418704672530373550249690197510708075776616401020120209333140390508968054513156176506750822689451677050732340071832862848200885755666573239517411159149488580334071024441820465648405101674378848491761292399680028008705253868256910576955416942927216070452149037714658889792619593662823035109734679269580867304235079899646386924480639874620076842297039485341649775313104335531176646944221386771424424083978844017145139701638100307812785799978518555678855834092226056906588752203993872753575885060839854091552423766240248269233797631906895494518595993202477843079928952698395522415877058180858569721730150143759910642078400743707406589671370931514818635749722419322560067448738013777257190369851847887886486286230072567468966692116832892185581273182136365129486957821294082225154899352582856008974409322767615557842638319588302740793887425201143871219743539378212932905727921223362120543045661174753665214637055376587908057728341896639307922032873149753028511707832994594735009983078337087135136446143543802968461246566433424413456868033931739351393005912626793028625824913165380534400625756898309516581894535752565714316218022279639232906048841858693176830171830442219678109176436872168697665528272095270325325663201048349695947221277377037951070526214931932548033976059415640403938674629108878838994797456951382856226381817629405764872729442332346438914872882803312926164062812733015953569870402932977315824165621989707836344146636841202967937518826593325817586250867445408968568388316175069711750500935627265553396802923714614459591024790323191321309658999308159925998937681274043023857497283259754837208756487740113630186757445483571686595669855105973879652739018836312882508815081366656069827114355610355489479494228977026905811107694417240200401767612249159678028582527807086777584744352010028684472599543127900563275421215289790145352770708802276956912075555747528500163605292170636502912247899508705925724306721005096213203233937635716534719759800485201287348553357564996719790769172626159335089609024245612535675456367393089267188245093516408130470603533990100269083775794944513964703950922501328866284302684920956785795108308076122106897733982098356804198690292904307857046234261699666119176748199897330006168957965633890830905745933661897842103399794963594998352674227000633124670268429222565992203004545531927719734883830111362615552433690906631604541239498637767354061800503660717429796756969398022467539244860225888448270517154574497921852918633906025842513135827355926377306117466515833979519206485308375116499802257521846479760567003028221154171832761648664997810014869454151313723808073085866799648236179262736039062966783935911344614424958836295098381630021679777785766183305039540197897368562387754278023583196937940564535097975793743248593711329934864625831488515520492599507232781878476618166514318611997076755764877098618111026626088745729853851416822059908665328649261301043330514212731322901278365515772086304248457921900757754592044260866069547531326369623393170312321456971985857143997511227188037950527357196211286264420464448199209226766857464084064328106759265284391688956472647802441997858901903002787042470349049655330680656270968863901145834574532217353666547747765275139545688682126289292377222648364434211257861485065468772801439021518463586806067139580236333186137753677960151737847895719791329735861860734505757380582850268123733120294410578556427522459027120404903878870009393402500705773890587477033706362160390146185780159538159920220095572769284313041065779948015042268738005220431243617668790446922656777866032337516551488715128678560353637062019229452045775585779953808148244496315299931398910711555811758060847383242764112021807169260876438906155189091941773935596548989560473668524537360125041058772262558371534228862857226724809299240723310056243343493957284374286497278764964067910556362801010428728671804858059170137586782745447511820931845932037440855458665242858217916737466743528609088136331299797159217755675707055930462821764625950135288878592526829639504180215427086235031281075651337037093451706131541848378062589716671677659442290636617337768254243030995822227355121673514603026661441251004194569221612767727398471112200968657062408429231263614918115835982252942109648904605175591076526603705375414731738466498041030462023853905766972937982197437513825809058602642603054126407863592646912651811097037444975113997534840804917345184774373252745543012632723601428227366455203876845547047929861813632771835810782418952534239634723492649747731488752891743711083024067682116486398717913576308632154398237089904173856819667741032152430223713226706775938038997954732999568756430920664595677022614747487941551549890471175816929606418447346603603001970151082660015855444007333472477910881440940482247593965168692273783401425672205361357032703790578657990453111421172673575590538835729354854689769363067019467359573691731039678746325393008082624741462949214702429894416004203175759890564805297020164895794596556146791747466899777581723714278035833028645121796695273920143954431387790958902698178909734133954701581821196056463039415885794469192813375349769688383496475422149637204296469848659940710062722852897334503538718641338616893855532812813045121153316668691638579235484618381022983947889874969871478914610469778737133360812725210424875966127207733079367687594093437716331564089417792221034614242475393972310094214692907741126389810296733046852652208032255091987099314404473422695685883774559768124746356088696900733245770216939516439784054113300287259266590218650351574160220012884862429153420403914782337597488755184103312379092443919976893115171536610246672402381057264831939914843421501236137728437258738183979939391564638143502180012472521306543018317833249237566350992656045210927199347542370102343696035801920778879397746620039076306631892522313620570024758815136411910363577198803729942728421415166568540567027541829919844802636289036601211771666860971489549462983946706270448806181492796250347582706277450207097712305140821515886023031184026284435430513437575079243060646621505876394895809588741018319974123095517575888989898753422116640185889940395755551243431053845079278757161701419125199330084367445176102697607695384672785066603549586931015782292028470801556717433806823327180348966150088213171735499784561646452668334790635368817853331754730314256715243809565327511753845262986755105610052298175777102058558380841342272782023594760130709532015212938271414841774096662423218337737659187637989609423055889231179055273851372716625784522281874823239009747798390270179730404321898810549898401116930822790144380105621903451549326156069353726967684068369416795711876593479459094306628053976795229815509626186643257575478362805196804403113691867537783908284443848819797595089003627173209536616045721017808911268218509725145848609375810325239871393499978471377509692962475979699027305848177740082235559117436653642309307791049615250607043896578223118262855355773249626944660086811829571750637367721528354159752861466808007388039117124633709999392888576942335781260498813627526351357196937813615596006746582389304264813598437125706092589087063272017508285672698432770571855959867888645971830666641225067660062295624501471189523464308318190933748534382945713706836120641124759364387610285565457615709177232067259599490507250669694281571531112344287887418014360806062154546602499096140438729659557341555230531218689432771919096626186755981494275458817335927522619654518393914809604974503126994955161541571092649655414361705163764535406990607465204902331474470468142519682676232037807891662607985214118454813287360636639334123838754670430785883708289222660399396764010496110614275822950567366055892808838388322175123859797448102549579080500331909585795291109397233831892425037383175318597287803940690413682832079501162376858274760057135171160024814033034910418323434736308232903435402426092323078683541809977685830455155175283927448860086443342283433137075992138905215759993294388694937118189150041075932534305777354647075196996060633143399905419743338393076782138591800965979383968856288938999886585060941453278879307823602389930334852869089997374636774813674758343219949848151503508568563855963666316695671688380678176403583026582824008761876460223634812612769787560900397464935123103756985570096749545631419997724735761482138648051589999669771505405392195131299636184104157436282400126293721681948428411426260529419390954637838345216730306301949308609967679968276076433058006004690246380897897867266884543380279889410488431013084621616737434521014818802267893599940625457935652371195407976857446255027499515757024111163546732810384045064655579453346609179290103256340259373655052520377116320023243522296664936805356305118693605703958323396235731216010794838547832061944023297499626824911242226643074417789298057008436291134756472327283720039646558183706219361544141311451325202117004727373047912880803808019519690644486971865460562603184377643347022257057884322459006620704370316558527690376073310817168164141747258788455990018774667815716928481470815121004186141406847983106546769182958775018083701878980574963566429932115174398088766355216046412581437287253970530531201476725901055562949171599192667687952834080040533854964744693113521097217979638454738112989871622070610941516492135669813079419867098144415993504310047729772818191885535004485867626104524859179170065528490020185599864645781345038096456981453737621490223691549836509653656664179570973997638054040241644293902121059042303425922952649761264618731565142598782134980947063300808354100977519377735826752751593865744851449340097414342317057629958172252761304804213003812453261911725195462886118296277719004029468111089156551568270132029235855929506989653195592451071848771085286253680603645151283341701939542758453847169614641357462981564039668953898656533478278274077074756717870593966050136247230676541716901961666248284775306419553679454631087288635450601732488242752099109429493340252247296763056620240206905857656184953555561391772877723608371006524718599255599567927399103028064963057686764032812662199253436675652138115688670458449041820862598114033485944191746127131678049322394152696147869409042853565745787401847688948701995887505360528128818189560962593302466389822561534544666900628197253532565263089723066615804336686836316847177848400534411261783855329124365466957130326194308941260865007349687468040520239855988801427149119301949397495875326448501029757036774673691799587425421425909032706979115770775407660225559815693699548046091127999955760114528810699031942193611171861559778731184747083422309631672741413898546096429687253430105180766138159802443123664131887302217528924578125704662280508397748460999010490488414288267364918650738880771474669189281272030582013755273828218212548856273700672296243173084823865967143101476236618883395777647091383214459200322248010099477026451980438878826360508180598555498372500720662815919986111926046117980516000384189529024144085587092038394184024348300288431684470286337801552637892008399371340296565630195938662709755480277861741008925549389952776325096442338043319729995560521079498349676727398214666812336097223612112969576403000841383232191030413984080546732320654534967332383590431154587136080625626253650335722481390907391953600598866232673781507537519253191526054953616098862908661364234500371125385366439876522027381377469540282998561214319355757826523986982415707738837410661617239911345480703173269269197920031438575528247394593153111636630491943875504864616126198384866029307413694921440953281769635568777151590029030119575156582480187241345907730041033901977629876534711363214852073395275031806299917173595161835095061710453914509715734414336374534128516552737226371559387621083804720586757052339983175716331197700898800974673248955757863264612601873382783411036428326758440796573446845530050379425884378221694944138351679565302661101376436280194276189354145423665996766959116936274684259097159412649650964574072255097749493822087549142437128302655644915177624408033769490583551223765954204262273802356913001684536473539963396355583563812478883980668815703448202473124369649974614550560694276270297306538796036882766684235712845507054497586285625572980710533992406883505837019206053956307086161454367593955935111282682464438116860481668187542536743668126506895749624589987787921611118967373141042867273458547773825310324157679571889514264281864333070790486797966967029002738532415112773821815673270066104902748728627063385093674884948513498340858299910643613883847692100487073790154898588535174742039659527781855798446577103813526495436661748424375354622194670218070699234465204147258722543964152761058504451007808666340176693887453834318222063306474071662420953123195095997301169582648181942934857532914564525144083727703023199334916552000268715740630061672545675619974512364805442481793064393617914491313288496589039430411767632820060633007875898023726321216504591546278960982608140263042840432060734245747509103283453370519691361222261170268967321587558085695936904042311096906688806035453957802314139630537995222999935033464408577762624470038075652239786917973580014264687545767686559701410963535750110961413549494855876590119060359211404517756724733188084176711717780338509252061978809093205619567872902362365078719249582014232294296140677046397914891180529453298216852872018262982920220498546873501633269935240233711224283534226708336878390261205373782247588212636140309686468294244002757953370535964386851772493267598282281638790738417700497523603680913695334848026313353274702161597029852120755635186404671923064443706314924443871394560400147174396775553607252655013330532869294571368910492773179993346226453717564829949643606991626811348972164135918293806546124938202872112307732660499087833712251729047635773829669223176622374534454461680154290858342505477384580968362391985433516807827687837706187785986263948906229908532982099344080934294924619526054464178613814524743996599402437589336625927709137467267091242672698710794649537677963500928758109168493211845114055405374529119312189393109763836215250103551172661294536754196715433742135802535665261479026518531182530815362290955718297095223864672328557835874688526899614432833697564359904559476832063888126663538890519016365569173918421611473783756410020810839057578374568465163967919564581706649884013155533764058175619390574306488084994549484770873904247203698223799182199697643176672376944290104304569112036730766345531758988457354347503273037405364445917151259963125305034350795780489077868475419126415386368088798789863169766632705213626829697955648540673074084896909565319372014332590295476241055238666324115579662826578364115737481181269890553719682014804418423809104246120486124692146846592105333375269442576385233677033400048956149774343149012170278856264021678464358079653623902984890527874716498542046244320433618704415653119347211835662137909626706530859200359719543003235285352398628296392966917312802276041219583797652372418202764579267007339161675133893607189944203405559313036776587537834264616647212339641767552596310522733313829557758584465515000779666994873512757561495720625631602056739657812566439465130202094167609794575897998467749978330379216533689438017167825834254419218047715022665984105609329294480803613503449859657325084389105975562136830036003322216721162215992351012971469220145114162901652287089614882556095944582342729415660856628833568367440007533408024373255746492685659568290022522138385276773766093338845255233724966851388069327992739298115143392068747716530123131432813058251254118928000520828548525189216329085279333327680480359189922347705521008144469003170972348385938443174966462306086574555571001642979530189931139682971477263490516032069516344388046045333401357455388402437187976606922796360963069243393224550255234471418055820405874143235984708967290186315134608941769817124424168669517234407541905688087616160944197968501080045947129647715143448930661132967590427099086584923650652589844671696118727319593140960424190287143181521029130003293483619728640398963192850941968614600541348132568353985410223043509011484949608207359867057720099092483544031766888421505014736100202468449607688197545365340115275459647131160721579476450104438851161627568219178388433705770264761670220910428171718782649511924762752078629541922831024750580161602033910647929351022243744836099152276386849344415715661594220459229641737052744971533167447795845499147237798040517842516588009636293230758719153595319457529610120395987115820215134440352673375050929565665871284379719592081049990655975797009112412256710594902129200273104648162846811834813474128169137658053368029526983478661265732300173370704767326485608056794125086992193518461086656083165222979846214317709927155579555377561340489899393377712791323314483182818231332253424636244523972714691651525653584213735669639445903174717363022263071358704656799722787442234124467702446025946810923427307771542607895326312370083257068293268338393919626468849200743743145267549217299647107967681515086002867715377477395907927489598896216402630824900381995307160026383685752521983505739560875038000394222004264984896351794561347454354050853703709418150304522493508460511359734007330229189518427758967920470700798138783360160791170315050717547515221681631174504369225291503588714921971571464319306703251756635675264933643161850426825121795976031529284144772492194532198540247480854313221831395125899542602413565521347727509831639325030630841049436997569801160257153944378178602621649083392790419305376604963859379734958934303642771329271381266551911878499851703576843146794807950316701737436706602858790016907362627089729893007515250654896881621607578091318033571345024434648900683213185762558448395575490398844613787285302284205857354741283995171500684662786356421004307868907655558441464137611597948484475345796005750270279450750169760011697999721621534336404707073359158537296057937514984693927414624483213342709695702043404603178213088566871281434779358996972487368191926516647293204557886636428914782284389314402678595007674434420613534501372773914631624786138155610814258048660294526044521514825065038263791261777301554999525079464593310018922548825846595759578318169243877429797469391180506859062453131382431335517927236025085322951223326535044066924247916255151996208257468310470085620233275984820106270999804853782141100119648096094726924329405880874543497283651275850955987649167996297466096754163496959016231832248194278354307137710301949046351589011468130214611651473964036744135216332692572756201083209611611246570425010988137341822144367906560419134167665551868030983449199663991473166010037308078886636827479141116225226891797910555557282175127434486376822245455554656022882305695429690126324499535532270956408364714929472445000877621232692108732118099386312163594601179111217421686067322512674573632098188934430754889207578525827667362304983172083319078528089489849363877467608584049464563235268156542508359495227055981587085737220297933257948419142120213308998084577161005748180350482020682261303294832379723508764303398558066004238518919827914424571797463827735412522959107054963963009609319936204622350776753019921962793902505092889963008610967088724011993847700174141449709570790842127996782063933739477360199080325898675640871059572287393384830469180575933303800933043994298965844278918245499469706002170783383008458484587161697931092063307258417204964713516886751158572140130519637734200702076878474487578069886265380882967024794640510727929345995486249178955253120418205282675985775670919682465975896598347622987478678888238309070944977161617766371577625057062185954267778036940373568750530124087208151290846214295635749068575371189788914779746038736062771833785235947470117472176940604352909092973964447790834187312117567899242116265337809288851614890611600401772091163136450351115595618996920381867426883074724301499405413339595187605300094756113038741412239789874300037887065269934635662530489881320139082601210549113882507292555912964719884253169956592194734398200903053185689900747245746797850019168202199293969539804882423811136757261180691222211941646548587744402202934259195213113400593204679975544844184066982444577345118839825961959989815778482448255215954642109496004024024306984531839947662856489622294348817437073863141887739492972959297712220272835860738658101079561184073655098882913118048672225459038006718292341162495233961916507382161885009911145305498894280450687391653698232045690117765173957245981259920059691758030391658363421113525780942644693258933807702834416342695501585427057060286666060150365868700351667309886929406013070751447697749520971598189551762975150085403518307614522476349426960637494072030821992769016104251596488647433644232764418810367984544177134389484724409264163061933805098645516972230941977077404794671671756991566360723688940933183318533986358842659805173715440615602347186861522847806708247137547458837381851222292882968158549815674906678213597776571409696513682264648541329285426723830392993077305978176316893880391610597797185811656664492710913424254081511952815097173636678385743265206730742268963765365763668836436315702022232076258261667253442197670683898694269099384361774970904433252746866031033399527609784095469731836067960875517962085272302566431565210787343438345022882775409832764834870289516751099786768898939296707571264815959877222714479141330068642983302302287645457555138543215390299464800792299689292953917597723754405795020142463004254003911996208330340773165451840866460864101028901691478102532858148044356924347776834634674966980236123275825658699535232616026936398486842353317816140719170253213344328726891123938406814564360452429122072156694822922074949769109305966928783682516359922688357521209495755534642575567305984851000419707814838986736506150051160121084013421936473225419223203123311521176272828083953753671895190810747846609758448697240039156587834337066859482118183841522624993580098719147335101409874993443315614907055477605398451969948462867429787793697654786924773994571869313470143434764492677048803135262319082043100854091094078670413677014581248682082468558698077553254631796316124073634982409583370392946176658534837687774156384214853957158082232308014009924774132427287129737817964777024244278844170319007551584660132545686772463248383744914146679458788869018851698790538027634046460535561684660360739784097543006359170378022825251809620068293761046683228311220591597846911621496221955107782194688692090450824705080536028760360771152936415980349452047376780494058908412382888318753687215179120141201636245181374466680345219851589309835817868377587635011334497061785007925828731088344582973328832800225194753341613021611554890794841244006524663040452318191523181551896241863202277045491047763769924750349038027413055363731397548183355506420149965716650240380098665590642403008410094833530788998257605387345944640514202585458829701770435686564197144317972982443581277536456602521687212071006482318620870433636864783179885206962175408028536002916235972392225356381673783815418720314029035795174446075308033083887192515005920701336788154554087603661351597759583616732881049249471470251701647098648320115107731620956917609200759724352884164242151522547412249981529823600672815264967830221628980067899481794969485690580645439759157163603353153973017824328853050736904020130175850865350629187190950273267764451999430472453294135202268526995131582813037660055025943911216477758019580894412743475167799522730414275071376765602386577237471302065709266084943421482973752225889989589320742982998193719284182285391443930201405263479859642328274417193213954376070820374942742741498066993119596370310260628146408464467326396208096605831366530389446979617124627272876596046237527643398494838080618322708617231702663958169155829337559111505977676318991981628796382038176160594497311415274072793329465777826793115583477448952612719168441309376006449335664365838654639847745271383854932420131131470932711344610642321612021648249971465842362985373738620195977500365163687424608110003864033476570683084442998595318321606443156947224635576939340990050071464911694965345180866714967197043846283389893928501440348114974499868667760861010444904732463632483682788919976871080318520250545049641775950251097554323761518887426220641599696607994413840231036781181719414421075379283087673814133150119315129606212038558954708541219034203073625187514417474072929544855513128638739886158983950554992560345518829390344910445075037136424447193657974922461379031393857735857756435197659861307547256315477728073706313527931822033384522704589874130936556160118857573368189984130316215162688629363225927217425773418378133397701181185205106166916035069393625216294040598505979352812773574038273710707687408666820273684187746372577615325618083513590565506400181538223703202180418331753458845065415638743809301545202592712785437850752106651024832387114028119891749991268084552697242946450033862792777066238779901993109269855798445586876374768619644362535433674915012126511834425307106064424421448454088680400856157270785343217011334680995209743367414051381489313583808146789120637151715223556113206729071530416159579861828073345592134324902586202256741430021030090322483716339850695689983105200625786395405275902040561493468559838234805183851997569821951595532719119096173672737597803160091813435482558473578981136531018410928543530943062423798750448288549262411073833803976743768302265544304866250081564520316726886210426848442721833711561087469166932104992967064185361672574389416381414212842338231126529359270183431179372030293898628084336807744578078613688218628157545004963918855802575904872405370973904125731293142746424964007803238208640420709998746628717805350691473295055437488470618952692619164030978719686987514713223411120967504739835517450943405126031479633665755356630770220118376816927190244402273997653720819258416328488543354166305615150576288944915534425943207865121869128664593499849885500344432541898283939877497325979267477626659230221812819929039510510867566712425715227464826962941466161728304985429828222750273049690874570616008387945434843526786254540858758474123398995474251683097062642633334517226586092352204006698973223938073842879735674177642982071341862027137259755920555189456463835981996361849085665700682175769689687724045303585019674553793445761983277703614390643994351300911506333211006638867984776751659522293507800640069815167063069340945329736944355121684729646565523624404838758865702718871125083705601751015145139964493526318227406006377219806661354171693130797006893927413243623354269510558027611582060079817450954405907224754451721550329286318026165936882010575055227656755219594219115195730413359744553996665860596314597377667797997383472137852944140023366531968483209680144836344263407798491556410922376376567340049996062096721712046070578937073117593793628326073274118469267361339454017807300451208896367255302097553179278793942807268689899107106846488823039229317057271477094529284258903477213446678434258314866278649064210871635118960914273913399862624537434195075789800207510442784229878685567574709830721735104624420796508096785914734390295526580711012288792641076359597561602323239884367973902568914992932621764775107731226465092138727780633066921238438645805877070417421417391562248122630435611480433329492078362561884446030095688489728963274389745084284092335574925734646068427427322291899620938817082548924891831607228777838459714218278018176499255736567526452621292606322851223825765005851909950655074499707295579793567847626076064328087966371247627725594551221860637724413095894859006318376944917857240675641487965363063527604353874282553213967855259716723447048761874396791990756477649817106408128401856028290294105205248867705968312152776261796411454003124540564692924784284098944592235366335532262064173003281318494700448096910879996119978678781687669227529411414949037575760871622160808581831433827940078123508623725992702368810527506910677321609564019667920810947764047359624754228084361746439074936507865580876118799329462746016467730397740241160912330102386637793891487985310167031572194559693741544018315751343599215363370433989560944542510888834499893679006511083728224947087131945037216592348307782356956120855097266040765957610148167243800547936917694229676221984891180748418597668070874882717542427831623121763233654027989416942385055364213786383418992982334414156915641431404733144661678243361865740152383534591166746949642904094051689617125410459460388592558282432189819519994978943055812376938039598641257560367570775827524744523640176737654742968236316746798611335933650235719928248368298809049727002657918588151287076233448076121766690713372482785362356138295638629618030635945289351730032475973952953297359618973997313566585363726724817473743640526116296170058861901580337774379211370009606182562185285067498693947688256382013301199506359036994810773487426492429554317142305898255287826197274020198149162487600435934508413260715195003572850853063489708263190683483712372733365275485595580517898075536795429226079363918581640343914971092942737711719925534604775753272044349795486387278221545442422212560869988989886104828949647645704872670649111700091480543758306604591694730895370319940503595843392820374901393438608172496969866092159627422486067756284613884587702147539600571598621256487435543191095192251983156386553681438023399191027670039706661624533691552655063619878930445373592587220570399791153719899611461480009937549799663415706987479711094656748405258314212987634252601317516524349788704905528852550047201794581411254696619364644788836279453987073913962157282165157776823333621326605412109462051531867413887339431423030828921130743285544896130672548360816504001023634548238868511277493447364268312351586393571471468224181268284237492025468123621229283114774010365441982482219635778592618230021865495007435856838393121569240965163715280261399578345656105990843700642668342115717813225087804127787478538873590751197333353800859003563984857738159166412411082070491189940127867087912782587485212587959827366106895715295093777509042801720820230049944776726634119082231595344829024698223550109166096464343187738454024051534662274216110487114485433697043665500434887460047867372325252043539354860306096252618094077998827491262989373839511151879899824454455228162550626837425709389539845027044371728699547109829080301322854109455927941549752612845652362150826841767249248792423065934412322677627191012836877627204248987800427417075467172057677525498666185789241366716127019225119133613254508751431373251505867091447909712682561774914571236502287003964906436604913436749887163944932817800045016168349254813878461673046513465309358511331698308809706184062788939917980125084144768809056417965738039612913126408456115918612215794589459501504190264735637583418574096037145317353993022924431696535529555610181725437480458095716054837377192045183696638608149812428024519845931939514894246362891220039554269448868629461839441578910305984058382182762910453080235497910845939671155232083203147043764736772056256204030387446752670908511689020588478940446814240731685563712576184538854157813742515719512497033807176549320714729347089208082939543571445428578965724554522563855607525663589322228980081449967069498884372296100174420011214536908952865139057117739621327849833301256575791117477104808337043998128249915040200643114289633552105086548662295877954147174520324741513760312317569289936908525627526192991279373937713210173092244418448210796896014358877849911046269031048462729109919001668048113484038080491690521600858751169597956079265201621810906552473018590279962508127988715755648801033271140381990286871625770687134773994639990600382660052714308414935968140912764041035165745687244417586242204421892436299102210822493872337237239355569884874637375469687250454239890907069546959127361794044763468831051095646770458026133204946792398770606555762604960399257480528405001773372747736107002394286137976781029109771585868318772156310786666232856563306794176064452195941574303389044239012877536183444718335777628076367525963278415594816710117992289949712255882675401787904389781115322470620981963564585463853680738755682511363100140467262380694179876519386615675560348560950343732031541029735852904433395970509748705984268212712724472725284337584215548813105440140631456730128631106377783391895163624247789817755266102842576760122247225644121736469418636661258340830973565774395156412539468900256416198020610277956498686664466881169736940796146476423004480014572373212114285250171916428442096928369935314436039098930533267127725383533942464689839193213934954103130891037412664330012823253881102060364765121743724022417251002332027535716114260183276397396487593182371254722219758712673154836430218398345919811442137294259073332527511563381847259341118681749345620807527948983630359185469299754346820144334650333585885552867387355916222067948545920447517165404245819824485416287952353011620851233298774032598605978142102232499849530129081577102644835356238839316581318090491474065377198055293883359429369063052704582690090901116389327742545681669747742590924107762487538039712311883100538635966463699730324033422891104566012373914458813695854481536830978470736590509931060535414579048334541946103119153585437432311705516105235899604196040295301318100214824152471158888025216733162946677600311020733967392961127838966230334105394729797269340741250385108197355053383440759499722141909893969033110249991771697614007881230306241344404011072034301849389697194627431257159298745949191636903602611969655079356621077229696457622938960761975046363332965395312640817331608651417201406880673886786244518707823806865952136948434163303665236880588894349536848021991120751008813364839606357478966275102058828583773663868315196632625104732384635691946660576497361732755875215580159103690937907723180586856625678778375337822092708060900004207328447313728648168661493568995450966624551021509139928510510509440683363178276623631463845443890495753571353810177747328691036929982153539969239724174834667479669060850291864413178214927938815355867803808954586333352040384014786715144057424646325655926411733733618406666312042375309237280175525845227668980964650417790134723941667080980116771254133453833966232842844303102218890843468577238362062213203360064179576898459242677663384574541220649901085132291904563445364690882447096960820358910103417499237219844186411808188720312499292470006999895043982474515419921645621035044751426678743939186294469353469585906916351154502920159145711058009272733757200677812506901749463508416033838520158553220839630378180844886982497660982845408456497173574005567782492492250565398382167222334729117854352218009946219156396361652998495256683634533099602057458322039844631935779968058976810800177521117213067649529223406861241591624049707453499353196332861919650232622517363072514362032411561034574748551540922746469736929414140877284150466205041110562928435760806252148448833585284347791887542824600877693190339354624456315984870742451903874058867333879816546678525204152383574567633193628651038831806968053706010906037417179341481103837012065373654233294315617824751104922232889866548783474161047351833869937028661402400427317856670275426984221852254709509818057822360623332618157309038789551768616672654884626123961272497325977678520037310247420180850191591005117371743419046610802630118956719204407144008840878437416704142900990603631499570074766472799689605327837327380535010480951136999803264108647092131494575380561063876206179906557848364135253549702212019249504472663036086174746733294585778119348998061816257145372721381960743067408913254645079667228691489811337510644601683329472180760534586868152166397610285488745276484033179527394237827517261127299944735656524586085155508364553085889563366459710433197798059525750036164289092581763440882331317285036395756012987007462719649893374567238395621419631325459311894606916841856624295718108046521004947633623622382431080002960863152893698199056319127658553691101585865304784713360170248279454078934110666471052858818993908472545627289270938904538434115315284116134072464645847152338787372123033525746225619267886091554627692865243376807517181445850725322261518943889519583181881484943917311607038754993725685459317162962001348865302526880950566960534300786004009945206848586297805488671716667857843767251462340174449247927877332908272049625600951315246958068911772731060617515695480303462586546807867085318386547058052981125618471029281496372744648033337287847840614690005304376183116876433285282903237755953993921470547883873905444247535926290223538424133309018929986390824054627958881222868378532459999583053333542496079717034696064296379919677023182376586221465829051634575749816122806073873709805287949243034873217079874609064006004281419337340879805714303109405551927403491810578387533832448676197138164328579575105511560615768720832413834936541140451832077598865730302050078671028277547730862746054102906007969883659620125189880639388200674715687740721074668847024533952411978988173550317712919399089049117935910719962474969994839074989956715531320834909985548694339891982256708744939249742499101754504052066819191833444525670318406052318445629426268288175487742872827894996674872751305670736909577258991815978374244206511913153385664714710237690826339913701711033795803305845591522629788599153823192921693780368243146545726851332934991090102440481641816420116101371498795595973542008501065822618010398777101547791408623937082001043503315603334493218073092017530453979532421366550375652282704943188380261942479888272599784385480189489329233186448882202226895767738038621069891163819104378485029713336280756876606077424592108320388482556398941105889562922272627143515288624002943835145052595334879310433191644250064697220415601565749611608323594692980564467533999941023578426645643912167329304990943147013359705286971113423885741872293170762570848627024578069683896755202031881251861817572561802231205430636821100298660749635013802281861900047828530535306830013934342234853282756771460352763644839122469880652823642684401371224872962458810002780077411237340960078123721145844142593433665748419743324051599338047082716721953969529511944516034161657932848674615560509984511297426991561911969827304946862543511107890623525149566403141329474534000424806344086024014479103540754412433658078256613344217293859522973635376466090364538620995346991781617116367778087919905866957569815077857958306846630054580697513421640822487439881226007171692763410483970302575344909082347191420655109434901301632634385686599624140942460442295947665381626428242437310842741993562318876808091902540393000359809762828393007171738266988559465999256323137321983955848761588021671905806840145622328789996608755053015862588975889822763788735963723004497024669849858178646525806131091709969672132863800665235856914749720217207284849980574574235145901832193324261438861711262611347962544157008934425798849288601700334243649107080090522696578320409588651425863979358749811911288519204149597807370075261126642736947004368929460787362895390150480544524215225795051898789303696737367473991867177963376876364250385084424935821631329728676808042436322418333461641454656621731209020656685963941388193893504606693511892921397151403851584027147199752335473713130898542666464813621396522241085065841157917549283052625589882639137743737379214285603088545655230177151189107077535894955307594915344538666050518361528259867349649061739172286213579508464704352216321793858917316788148627863141550561954967881891592869993483432850765244220711356161335189180580026397358930017008715170329441717050672107203773284205571489340607676897499220505950675891544466115792698708952265095120649106477127057510969479376608592656651108057991182651064866176897535441042113290290281363321368042565353641479924019871100149845412034369548444070420563750157987084465390497372662198681127135066817217867386410333836488344796477912980461075675586742470143278934510126869986913293077940498698228426674485833675502482068308462552266996359511612787299804758811983088946695728092871571253863430333347620289281720289633347590839538398097641132329525752432057615840775059067840822410309986858436370923146544568731850017007913086023570118709107064594754634943985671715160393058192078057195632645265030911345287288119499454752478567759310400806769417874716892773980015296857728682014592832673911504355584997650770063346612085630911562596127925873780991728652672968776248855879318183392591761793385379936667975912520381186263349706091395504077329510817530852265319787189626851916539947441515036346126554412836801859929787224118558088042059442890543474877974217328848081874630971385810901906876740090528707806660069859594809991376468044369686808099763947450853796901639181594015479134484913280535918699435446457617836903867820149532775381333439359877786513606947479123315980015759202954283605891549292109581218550040856942875204144687268887290786109988693826187571933631294747030031789611165897569282631553054096126182726656495895254940652070646321359062792382239518046239594351816744713925405645468167318526951400282316675689871017233295264236217380267822012329841469185503482787453409519983334380452769332615366868556949943826751544682423040489073417108969636489584579868367848807516105685995024805695557111310815044717999580294948775705246699347959393037165544145017616868969924738806668331463051662108412909012217163682228672141652736650743318724502680888286294745458896003197797248806543914268560903278739320472820600211456855362964224598223269417094072705033053497000910721573362533290037764030495920469686932460850698593029018648766081894449513133369562631151232691564277612225516154137287198503752848494123436579951199643121344313177710979236596052359902541669159537810148598226169206180985922704547300682642140433408935576346951861108421156146681254566713705157622656287875367252939388355946519065623499707183712776397556493021492722547307345992301972963082228100304861359471169255307661417642047848939010532302747459426255964828721515802890354375981028405762606835237500524383387750107700745917302483167714486229422992185516131136262397343637889068299830943188531877195882558448321532464079105262661296847218250104678503948660198064592976930014789675719744846482053854740377467835301549556246630127545189740849601388006860061386004701547151800233051938732083165691569067815159192868863348839486549000852140386483517778325467907750953954667430423948092756496886102953092306758663419841057744430732672306375739155578015683500562164720398273383452447506775066922792276776547758907936449512692980665926212347567156134005798190389741341667535419141576816141331468352595335775606746928331672851010224250184171672272903608054762254428762479817798700399003185815818554420617511581593401893009845524994687330684074665078034896856139875643614032560839859085495159074789429424309058494878624597537304253273443614821733104869543085517595625574456837956844868456478505279715929792417853643029091227207617135250963191967100561092707130065328172635281618157002754506543968870931007246924229294756940371555562800724640644892835724038026735201753981251385922584230195651739348193367453107142452624898205465593792588570352347601134803980241028676263811863876572815889227762409799231812818239850976085044452317614366323602332695363608125655865950079446133615862984756677998348047331070368749050616421828338442012821662364237815541770750326934963709899448698964311529738372520075762815709880004007628744767198257890397546829607430876412412140275126424281795155873715606467797691823220275160008117886420498024206609382807522823731392476185269992170794990124644843587186804303992434350107037693754110215981743162480240844382795165014342830381406420766396365752298608528184924212456882265108021539056643118771423058374270184535480465488500205491701062740445125540962807766226130424160337315219974243539193458014860700930408922764964856414588198014109551250366051651039232024467258535679730757018657880000557678147901701613930285874888478118910892051054258399837450444919140127407541028460642454902672861358812001889444530766732668654615600033124157905155614067364127099092378974946478410730863686384683139504924617433071923201831878470625558782912050152146318411785593711455127361378680544828397839251773759089843465452770718694395568918801993966036331697056300437747039953438874775822849499736255143263383821866088199558095991931406796451156162182125288651126694153832799796919055541700119430222292349319176867253497797381421974196737848407403444255070708894175082983757865794564623546299336992589151709687555374986131653610272835812715907802730810183882528108250625247584643028565369342683148636931803983374517510756868752822843266677757381578887233031665216297944795070075130369145384594698021019987876649351703867590859958967610069310159958226889548168918607895967164043472396944291605105637238823489142088754538746617797859345219853643543945116075772969555810437416389686936419561791111944152517878546874989730935226894148745783182212162395837826050063948611847542668813855798608238382918875728396560748527358621821755828218191026279380450415846555404856370553267336339581797188529925910848324901010571254300232482144069051290183288965865802437747257088627756596366820137207680055494883351415999857894028237631329012598466640354499733406212538388206225677596675372442911317589857775942316613052618694189298157814768749665636767224567137743189892844379344835253865352139878866646142732767012031865612049455388846018917679896157776389651718691542251130281579617261052287042108686273371541962151645103611618439729593634345067513184640913310696783486274841234571338825756110844224669885351795245803873022662807182253021465956009266496304585976637231413364995212268475631360868493055311339487183719030997171434228156829495063846333965437006713475553228694663781009500672484603209613071893652552971734368347559189878104398983162937808196039727402022154735286406558024785598023334341780872294352676943502077306287028088284937759166813390397654747546451924522985313324878141933163312062814637702441077792033818135707382720263306984595794289560282066618039457972827091734071788873668529992656550259724137662541213033532100083353124398262666734199394284005417358724905736186439243098105612984105755035835568429994769310804260599601477633246399013888217654294252748832431883611912856901994523696723811141226920392566048428109434606978676631013706923636102809723387692681855969873821802969058271294258296746486133001080074406676689034141968324032580432856758535468576367063352952002165293663366703489874918751077547574580795540598200474110511655624704310875671392455868149135258885332699372265208917188147454672976119929265317759470112198640137570449361194575677956738114840339646010238979562760932605655328427376179714145614022128715588428995932751458506452044324680670845673852209669524392250269177671455540775482179219920470255217189607402834070106925696965994984094104588999519741583399769895024601673225764859223668876594938002298251875564052700763683977379795002658898460961379979118518277712445221325546758510826032198102294799483355831611071946621133017020634322932148405502867843441678756042651311932949303308441373102906065279504277569443430230238899815712138058813925869998933340750450839555686965384083698645811934189412668302391645387422937712746799428421501012196985547320067298067736614209221919203721435808578076791548746678082706218382363786274455661331977445113843389934516362969172374809097016087689292495945272350432720264176358683900681840003169916995072464520692403976718302210473105536702910489261519880462046093371341842322375801040976718931650886520895441321148160792253088189626358922577537087815659107545239924167661935638122318846769266239363553856921880244276251385549625447729934315730370425592992068904563413785776869528030866501067071126470214987150882956684957421100318043982688754484341760946348584002503579069574557539870877365815742397720935884238529389484610422855678160607179644954149597497133888341076683091454617504264736669248904088181107909473026925597096427089555755665094025551113796636265017413632448478335931321120048919188547597212566900928443991207358899793706014510681821214391126458818449737655282506921110040859022560691801456249430349821027962825936722322767878137883346471907754147772634271948348909392610883709660396993403816828956684263519251665075269666431119398437369930714604068354616440527838226648130077872548169593264123614329165059135940929355985911795130800675403126404812112367382879971013189961241129760394857739250180005688311439886917152546259864549893333551123814955426905588053071948444794129474119282533123189623471694197164621866064107504022901296567816512465045327095266543064847637688278001954211811131836895582338874350388372231528344649494902860429609110823364127089188798055869234861003961596184359386885353478309116538229076945040462119365106853201804534763056618993546441108707622435028307821358605252151802474814018153266163434535336342156758015107977533358534315771992288670749611060837905564555344661456906235082193773390794384053640070270224275136525608502533128618253583927877775794685118576230395941793244255552673827215694730636082991249883624912407096020656171245007949938020181871177368098772034727112951752839598459751805974839973327818869873125823594282207459124889045224077701359443145803972129736215411830858143263126721069985750312029558018078107257946860854286423420344365902322080631582959872331689512049107183658621272347559791307529740473920356696320142879007820016596581792358006207307548841573769163241407579823953979699451806533307565453929773882652621623574824935877055237767104076319139285728991341754640622860115002069144071890728549451412702973679504051713737725013323204765159402993340206930694617194572698792923276390364753509417516739066107906666322471467246918701473000243408785149543253702485781325884238219700183301598788714850405696302374238726470624287430449976500627529744299133783632650663760283123906171764219566402727210526061957722941773688400354016600354802041312218101496062104545998306500787807654171500211021137969554104319488859772206971069595436119761122543370898188515691901924735293602814153641434489591525917636032184060514272218323735125860238090422259850877325112520142283736204993641508174324354265562158359268454969327575836113583840434812749412776476595699818213511477194758123212250798474039371802222912144199716963817442195425337932830466720990362079072355126036424659644638909582442481626882596071525526403840022658801530542421093909804380650398785363445134164733699385323088381892779381498905674066592549795661601314863192912066972445897585493642378908843287627091165590820341859454667503752151880821155762839666866368975206811190584975830909976223009764061250079976041839355321176667793266504548425221605580657900397614654750051902633963611482507754950827879580134529301260654675364020978871853512188080672584192493182775448080462290648363911309639444532581066847232978314848961792359078746905871077872978951219492275893472099392056374829215556047204975202490692994469830447914929844612125290278914822546399700008897542215498925147192509036178223342532209996057506642058858521457123341200596381411632315286987630290128877298233762329897002685564788994361494284324357944279416412514536834561761254318271014660583644897021452271249684150536583601928524545779997043419822048684812288607958393718875891495443691102896822555830372949512132412713613485024485285348958108140247694489025146188940175233952703117382596618367560329567200566083128990006128346783253256641396649580800173581560347699259789628981140045924176619179944014247896164391347897248687687109510462942081963355086508027960433206868394111626669824051581177971018664730025356420136865170878572957326681930733755942410875996386729024718332383455143105074393359475532155920397998601866753189971530329206676349650283457495375130478726361099206536312868212212854202713892121957697656937104355990891223656500680011670023477681568037265143524675411550723157201198076059466005142673560978881838828434410390282207012150749540680628944604229076114374467759184434988283229011215749472896712194839859892153738030835947379477412142134823660287284668729381636714494272716445064882719681190984436861259597185876459800050935801362513085226734657900755002478436755422921817734619193364630426728416502683917390824795955517134071250019783268056533380454752714667077214608277680995456792284918530775315128483731309122899054807781553245643004305818437663162373221152933989512900321091504184618689184429983354945646821554224728878551791570386515585309075387707255885494303202359159452484996760888827335483157210458542046511611086741171731966064021962200220655372992762602049988938344249613288487990480724091065321671173696511784250033754820214167388318504613359977602403757727767989780159035487179516849378865043026453118433300559785758691878830693660381316894367600381128491558255634801863976460102109462262644547285856450443118053393070956070276144882560340232358583086430315491255581096932865637902693241452000469847268956824453043138659174631034915638353279976213477103043821904411283664512378220583830287314997731827050639514332785049041635874499553509288690832033884950790673109360217095552894249498087989864978880086263479315376065223039860154893954067680317212373092135039718607802407907513641696417644936388391882713426857290770677409049583863757956051737927628663990148671344494744684508561396500174789597091361220342261370905597669036592283606482593695749646873109567160154196315453735563063350513519984912022287668485749639458478042910372230759045363050259415507908847371429335235131287366500029705266330110452836254300386208954188063428650888382127717674660974332609470142453180266394979715023765042882101145751450539946543979924020637658554787971339187738408511614012685780183534078738467134970901547936543779610466433022299874394861149033220760413355402478361905327538008050392644653176886789479422450083995600157447403005841909350933367074201393373769128997846098809390503849547693554746227378122148823329913578801994037842485732203856890018742168755723763133931597614064688443802148967573445326190729976543775860822400873396466807917621576691488582344842706516619613908434991115124607008560641660837503990106916881461969943616717682584703152135452441787483063584566295937833860989614838682035774002458358849242020727857496623427460156909372800196973423770530836485077738679741928341192032251431674226078814249180981649770612985945423360436000812615326047224683687722508454237070489720885219487979744460125544338360311163028787211132088576675893597706650230593468195243091760359652413018245869563647509453913131891344183656695130498136085199799785751223841436340972600499298654322952911483633843457159966901193836299282561393568861197745715634612428413335307605433174110515384571517535765369850719316106484983654155912089425082858782398206071013074357648814692301987542487116266558105314448917791616104339670335553071786403409693881337611450460283642676870064156267752434954740139796592908291283252865635158488605468946969668459849662768251721310620343534248570605200279858356764886645020214402342513346833996883316335330593885338204719187255433545384663450883578477078963506242519174977081828075107979355152107995039214573380665382063464596372831832962075821626813207772527062158100768604506961265215185818019536985432444003841921353539932549072408741053098517278120320930957602608002681649103082900491912017597796061244080934159344180309987486867996484395140925590640826429644466427419401170904906980403279453062969226773206643787185514656930407285798268118910377895744336267637038605228733957620732653113577930560149179145841375469935666571681326347574472026142435362030327764930062041557139196247313732691389389240048518062026821217937064173718242916863303854923163357669990008099661454786641933519990360822712090052546178156676535307372617066749477930559231352562154735743190636927861050558900313337771949609616570618538405613673244163912321249956231914072783027626832397126080117824056718174207251600873593416585598526045447547156152702481459955381857914212621628125865885087811898695444722576596830499347772620248309341529761128220366195447394661847004367811570289940999455069449691643622417949635632451235856524244846507911042454152460639070772745597182327485281550761045213953781247542051198594436617366130559826111171831755215731662692058161552236125269174415332380138234616955764762484279667871997303622495010633742098134763183982642520275890746077447571677685610060386667330207804788153953816735265233357713720633689188324328592645033016555402047415358245314602485300272182651979392149919636951873945334523656320995525979007672603944333385049358644271569322596656968161750683464824100626070562019944838996068092065297337269947802949628746429608823789207827652707462028646247040720084163082469387637926102981678922125341565160589527414976718679447241222377783808018234553720400360449721288103075606619365709921264641167852098437704844166284109309019711912258380437427928787474493126095600007379038060053545354723537107365384156793848880043466340946714147841073857548255906441583597076253403379769534660547148704600937006220537900601108815698376014150117678184161126319431277587063372122781384850958930987744010398624775091292259689482553737809148983223753227417949806935241222821438794007327813533109717703640619070742529151667714156405939332738478593742773552702339631956436043581585706465796952835935206551846186176409453982836663970987198298472577285737318363769080580151860688613335432489416697405029906636733780439251838741250363657092918381076195319534424438289659664512225357553727040644690002856953430611837307101479469102195087957532148543395964111228614907191810749623380213122681699989695701224296963150168583113972327950552790224590851757340620803443007967940645426533632029628202436964283600325181090817370665880034344310292486617647020217722551535747378736716811781719513870146018425205482823796464276847012700553904513475296711546011709249682016328838470081661782060481516933062271774934495222231226641862471154780236884913641153747111790542811233587450025444705415614129784441290636982836317579119147511001077339524093388299771723203421987100713165925783191598615423847642996853978975081034274041943797902951702760248091091557945475680319607908447437793219015893343782044939683727351788672275726890517769334971654123210201751392229261716825626406824641738950129973882764934827027760946677246469910010603207510404701607344946923872462487460853321622091742951202964987220055998473477515626189303822664927286982474507089798867500523983095137057946866437481624442199682582584772524214141888493134694762610347343949445765438750252096379183167602104505036119059181502970659248451283265696472188134738415091243161373603007540090610353260398684331547627102790141884924051221518071168895295056858967651575003763442865493397446197933285179486908466005427158150648141959998435789650521958176560047352075225823827250959132062139149937264833135255527978978471204098129630946102786648717353991300892918683964677767517244416555813717179102070493210519055686537803209038767353684361327590245407287065647148906104058213399807402527258063742658059702943572372378746087686867976593901886189994838402687139229094799436795664911396848969607023318374214710796273062909044045322673297649255010198429736534235094013858676848815591327958532691968379229272728494108344126185578019153767223904281969245518986253254547700361951502280092718442437619330153554030127898031853721495639260469244895181663461584982191672860988630344560752121127871207432496713019113043902661537136094361077575803565754167403293968647240428463537098395420790839379136166091895581412820057267517854044032902262822880444868515204176742566551912339918070747786938421650093577655972840131200886415286981377223707287983628286275189647207681131976803738794066090369573685188103824486463819247520725123571194808470822122794895284331024122464069004676839481541393671298394335373905732301657592766878772913238780684503110293742183166264346448351325279578086534766645348497271114044373102861060458204523661995328302866927587781665931745916801613836407761379974612463204737559131753129510597708502331834430625307996539230698944877477015899214861518375098616327593690191396631837569895910755498298635978566932136690565702274449484192899357551048760127752286565130937323645468803614609406766475763201273811519155387460418575306872344757131411046637034983726668359671387033901415720415211353805694039656307825067049305936224099913943634160472302766857002212135727638563273172529134187026210868843142445069031212294752212489370164028199683258302436186067860447568901800911834630775197410591653717677353661093553774472410926274113656936653966311657957837593410887096198025008095142165819355696624280847237133440512010098106008203765852992839761230673753278249068332166658995277001153768578470333011710861884541261396327473117698459178606292679260208131705227400869688595367290076805739391813903578179267523751505256394314908339812610621477126031762822790150518780314149779547012842045240515345244739742813992834721426295632130130930339054257650408367241286289609649266685860935428725626048800671745948034396631735856476057534222478605638368666492263512005806427812216210929932469196095082455909194061771512075940787221857415596316944111418502220963652631730977511850962649273142445149157996275022595448388272667189724185682790112030177580292993354268891429814881012919160740628468136128357734999901087391405251547915573452458098932014281442370558112801340460128672804642154493919381169007449695539430977228595700317399439548904036059684787438864461404079079994488008664150516742548330762834333884885259931939605155099727052189399721174090219749845661675927571903209221600380518618262840352074410161476858477926430822565260678753509658951919971506373345443962943447184887347355846038968001339265766334864682813234375657030236354593713787284864156237397330182439397661335188058509164454873749546773710456233899150441492092548729591876552939074958231032579254109327899547099257493887146069818926844093088913763625994507989615736006526059141668397475192249366951568930767361941782513937817751227605602358268966083138609286420749643596084630607197551498474641837595912235715610870056930288614177633216212675789626666402953790629099484167355955628243813867107148912485624330422215463198591502096623651913780014082862225963145012600998551103274128405199563104698822312031763211979556088688202737841216404543607667557090968923693661977710151314207704951893753174772969438826449469853402862382384853671706560169140343910274215186468057121198620849592469926008643793692519225995418787120662296960606251000287036497471370466938828908029769627743125257286398894577918912273636161047134946611245799286891636381037524656663070156610831932310681462853870675538105496960501763985834982724502568425576052682433488355307962407277860516492219669890333921970574702463690753691789434872722450295282310807138411308717207188875474207960441867876186197995613196594847692882492374621439901064164135428721662862572913453027137673109486950067610857300376718796228968337456925692606066530345629259811798049260912383488318562418039163619293036062229400558730571218000465284100146145387661590217828373330059075254347076967553774878959497112198678328884218912049585257565706717515084722974590500035413489966931416421947802419115927131303745711767846121499849440295594730497359038078828573828643586271053392040015728663863582667246853544986422764251803541616865265693878591210128739387461474872856208859417511005396281392645408564222090208247541332156123051367305971096788836854314134955481608737956050987157157471019780127377111214306730141011809012260372786365946151975731915973698250735152744208170056836507279956770938180723178522749299977771528164865189087013923522680192146813293278730077281821392490329241227085883429058750008584667011856007941811335532589820543937005483929141148626816387467205157200203003448234775560470024973330379637800212753528744158052288341840279003800794571477711424127045321510465256722239837609883145172611952728752340832130174766894767380893391298064833493551803538883103919898150342426462107033496427747732677195812362771285509232862471447092021427446641869134043551865817835456601551308130642331804955882578021139775471381928761797791667933900568060025591179061395782812666643452709786056850960290434723256580984543075146020453393483722771406219489614179867961027804331690705995676515733939795090302057950353312065530967068285231036961798192327263762472049538862547577670363281877777373462579335455902784769622289071165528719479473610639412137348540017167339312508652161867315933940003627828285582622603626103574246936962103326547629910859681015249333096648325939293025051119126578552000702098564964981883733379984690370256545367024813188647023500130040434985269902760265584522847833814484338352141986299571470249316368028458244066859502932083107359827599272204433689042166369570628009277233351676283204386145141024651084479964395039169139843769655309230016865593623999081658912512033315316565201131283045062287457738788717333822286504223847961278264615811781954545270407428031102341980933620379828160953083970902537079317071325701435984191944931019267411829503401568533098971573500432873373370645422940841886408248390946041054739239281737435894136352578484993857560587108438103127616966223326489109856116555066976135119872447889402034512194179247887450532100790638323781734761397572307069771190268860760110824136019565230814878921263607378629226247554018101254228961980640144461863579572459273021279515185132354825320280629762441209120569334683243227058155545930386252904544935089552151347556836274099115596231912436628147836226881950873510308038992937901749714861695017873827970102355335892214069724623525154774216032739994584335695515454789855728770759474172087191062123092419637967317389326129339565771811901585033665344430067663743505452771235463929211965470192243720983526445418874824688415024701493473625176547876204866558456934452146781389611089943325138430364186882712625473945802626704974186203935469456621630892577408390378081839108273062446773159217530439990843082444621069365771681230481791896512878876767286632919802943385035263157030395471085977880435485532869266164141299384974219475552343602345698533738539596428591157501286077681823481266950191068806183317634724701998492129651674775042130268229848258534470679969042601014695711683942915406995174901586463782667087928215565739048490363631674667394386950048002582365471050075488188937341874594914005218248520413702348267472923912299927925370049589155199088632319079441590496702197158464352412450831386326962317282285166736491203492325603401645866293164425890691881298462548157252324471504871299044930674131200754578771134437354346504169112779710957322140564874309566710297704380854106503123801265080367882030751974199916773857810144911739924605378597244927044343717988277801120779111419101471615174663964924845410878696720174807396175347129559430473535977460149975015372793403408275626717251438831554271692874814685938101717174782155305619329642314242478982245702690167421502658617111042475905196923188957667137281724093542409109420704872621830412281750310951998315781885534654966306115048467616111244050749811008959545475304288465655788410922385462247908761559268012463335467874199001710744395299140015549888095894638593953498171901719871593936261372882418558546191417602716273912157382699059514620382264943990192844734589500893697875342292432528600484253953592115931496959302483652857360517813663528575219357802474461587453572523068823953460271756198263551905314263564590099166447233409603797963002723993912703053865493431858168864433498301555614600147024143459639454647938990049185036102975535054367460482791175085179464120867479775290305081777762825744957509286100327190715799077346330605064961006411123780820458316622996827174906863808988171941622736122948973698631742340851755841740142019649511033832428437967297970293549298957291826948259121838421042657525884826338926197212389699245083128957401028101832526464467867694517518498097867488461346565096927144535189576839701465939501139387362310756304815957074349387288941866113961980360658639987320631604453564757446368423971873233300536321196786683831239051691616100559485521548754396255891273466248107599718028527550942357710405921696555024703877973556438789825675178024311265837775511719026760490762371291967789148744857203254381414492394208072019503539952445323159704405854178611713185820925641693401570229578682848477341338670316257309280900234253586173680750549602592387747352635378858303648005396094133978828381195988932070729795170389669133626139654033822453523267572475899795667156586266771926550623293129707937611214673812844687004159586490634856153628961949432289518214024300616050103678843781478980226675114900185429849045744729485084458637029119345575476192424826096484114849554455396413386770889278150230557084794279047142923582050146914464935984928140082340181550699187988638399667165288220083019090674834867356242418877862668528150604318903496361816354855257003020101681268684625987266333849414310526844068193829210375731196385788642082147226820742114795722511637868223524089052103877279593080051604409121489069105127372324498518810903157509758368252459324627955928215684255858823213663394644302674206377776518124919910081838859257444288175005791754783415300493068368611678378005785727608750221931635889073579733751386606202120228770201083006286788399891509159405054554254123384840118479426081874477006721871583412703863790798859271029337878475557480394746358770370328352539565994385022982283499162644501381337113448946754006050075226043023648970657847670699849260704123417647580137602219327835534036038266241825012726607324716317582119442469811585401198208021499574712027322661419446251998090340988092555895108544069506402664784119856258045970578246378978990129248158544417841424645399161391774820707642898557979106463423185215079289941382051160416546530741575309290229650548003396687551564771042004183593114904020214158801327324626085790378010472109228246145791439049100592684873794162568628380488300742248321319477365993572711785580143156556689803869300176586435534891369617830103706560043755582166241998088731515366849645522609438304030500379786954691285808451785519775553214400336120781261297215229194782789589447287052584173286668388690066811829275564859744584246891476505922080484145015051828470463210835074830805993099096123716141841184625654328023576875697169443746023115934089309835415689041580619218502102813049643521848695738618652734455752542073428900626735651738826554400357824962579795752811507703278195388521760816986182009707109114683561979873123873555797010217513663223636311756134531161780047608036315594133308511705755996690318562200328477833440558650454702770046467135152368960457793780641011264448834861388451951853177078475016748378697609796670609268439738436652674332576116242070012890741097977107235737829730124165648534362568363143676593140367997230310489914599275057677696017298773274464900864480285145232275129063939566735980619915137344520284208168049347533712264048923418609728170686890409351489375061722002911250621750998328185773457438465272103195670153796898537497775305564223501669407571787304432416397578456544141920791353532632933448103037523780221127126757065303196444593781198257061201367743418565243985472035529082641035202366652719320204680719036240209583593949342779447844515851271447434959764902576283479844170778393694419459199339049738387951802335146606940777552370740623714686131264578855340184728015181905383857311694317239669337531773780091508007637167622795059900728938887919439066478654320288876159724587683644894075488178429653264693037089055386898301566075777654722370317423232621741569676600690827856003054472316618944411002251754679273339575624963997928902573424265158376894600477011061723790980589445144911671466217746925057906303023015341924304745068704236920524981857723782203990292724479510695136535799507092127126643790851999690719501605122414171417943005815742699846373107507389758545145971759763383150453954307687860233027784606572108006597975947826648223152261130816525852599056296087538075974359446952313961895819701417501220467983713970786723337009111809321283946263968050329012372191943706541725545342880445918991289919131087208583326078880298600779552048539759756744552788076184530530539348685466455411450613202923122729728796645901527011955278000347901173442357362217656529585143427979449277019248948637246221748087589180847743227620600133810175319916358557591919316914131935866048676174833004664341153610786648329444393024356686668994584913297740651977843633900081752267333992783144734257127073634411810365901404212268428927430137386543175222795479143966305439761197169675762914066252466903013830301460740320278708550200927680284236869550307913974758115286957458736845762851331612511883353990656036437560261503247201962147339135028496631806303060431854860798291948836325747128054277401071944348164608915993544826609376925612094793608334426304336326115955113137079545436617963382912233177183813342820878606223898336010929015884941282758821082354712824661236034566120762200691446911480554818587737764066316823263828609376447752858202469523923233473600025617024305924411690879332746982970623009493241985048280162091102411058224050915929302179412315943868074441593140804931447016445788420047723643751777248055103914970625521254492851476686598924510741939910824633328171770149900363384901441051771844647998191580163001628992391680355324906790722420298800868666623174509717086638261321227108372370786723693626907585628915738008348385194443304557090992026507259231694746829904264835299627488312032330772121945602404504268678566053798922674252465137394018961167851435316152478968738539400778064450082355573105891131804367325526537730401386922576046203181043029964538224216832637323404127086913713810853309855354969970668008755314052912439000292495584105851671132572167279307202388458114579134703614192344571476663760663031811569276412670075593063884424655680695547093355046211649055877145920664246288110297040973196644194702249820480384373620481014494612345860386520192901950006531565221726832111276748113462205857343549007890266256306415633877665396177512951519800036498827224151291310055562490825245493016917454839658741143671506357024198988906812922354584784778430326426229849551065700843437920955429137064005276586179765915108436463011841824061773981552630811857219156141216663585081607533342772500219092130339148508887550058832621941665497675437380693391785330035922142277622465319040076133079775194058904471246910833900165162508288506260661744651317901833635438520519161409847046223680345895981962096292152627750523420758718687816917141210203321767289492545706368364270247770544676614590251324598192790189458290589333228262636268758474218700204868071808822997988598507306540868512879969573562251955274843420059447349669499451236183811737097751790109727271887804982611687566958170551273393259220375042781727879969133415148694746002102946349260285674141432277610505120454728926172772888450058706560751720072022290996454577231235170804733934713630233971724282312356302885217801904980731477074205766424286646294850147980710424409673136212930500740583099537098248114224449623523569595833822813708058041588041364597149880903928475540605944946846603575010355502948184835027191750494063838488869939274875554787601994200405720750302925394567505398315717510300348791518118578673722454759967949700592975058975446248681856690893892197326652103265031249882196052310621668998328269967130186404694905322693231116316468569738487426150366673937048426956678182977223182072705095927811479035917415611592340587747258062794341140233509362938079088897354341896633871524171458557587318297393553347387459102896056467990778534276510579598754319306362209591556529533920736450622755137860916537808927079603502655089151112488481345392726007496746018846926172548366577375645641786385922939819151458303880757351200435073737634297610567561656196754403514484289051885803284934440052482597691134584662158201324111802507523309546308167567532100382604871816494304966371579062459532410161367275645861024682491027091435403656880740031356428292340279402253099477054263057476062455269538136412160323199879984122779410895920027122483868463542485122636430653445135912557488800598236692002042603128187210760385271016097388736427986484994122817642223101023336034093226556431446245158979831050920449472134396590210947140534619682351909098549003619896205438008139502133354013840672991332822443017451846086090937524700594852584012251167088464345975947606168790142547672407910987276560379833248227088526397376260734720172620861359340438690852259681946149140016867696675700200009588731335946782735610038013144158353025151136398036801355985908089328499234335168817336926146212514172661279968863419447309545287999679321352919452847507043782038185117850293538978663903323613137303245373347438672886741631935283570140553994136310066035507210912724125997096442320188732258574096572380666087668717603679966158641922205067810663118765373841026588689170796943147222340527887482609129099890347777135156931940422348387104878733495720245131990744998115882882611685778929242687982694302644583862790075203411423148703131890166008196624608488108465666530832719942672886723585210436939202425884233574181996699169991711159440276681636192167600458335686722248193008689185296940369541389003471269867541145185058658871130246777563907319715022961063828063931335256758379518644818907137187103934036004505846018945771178860823686334069898443684581158319428788578935308954434282537941902012688756934124428878960990230497006500504304135903089919190301767351068720148213783065198508120720553228160058641975607742859561890512462620963506312879144393617690051717937767722623364903466279032563763032924238628043253287292468841776353598166757128751199603750526882778816110090282779618366512507198763059688589025709406190324131185761830038507198471857361538541728469856848041153977766500040410335075422398758950996887665923199540554336477930509311373523959742890031437438827296359466887300650489938358866553082303818781366845488649504757878610180974958523690253212108062331864717428069203001522361193079159005995440317842284192083459243117810285856137805260852402286271442441686047814867058322596860040667851281389937028281229612372356247745094448059416734470078636484501819552179292147499345986678169114802704044877530045948764018228543284712935278302117820731677107591914740164436055783156513794115057645075337141831212054217750737594135315938099718061196420042739365160158556490346266723417362886936831126427928952850854252706194773504096193446791330807608984795605794117123100504045309512217639555165027985083517678650337291023589323738985520383858792897326804160924943210323850513795125227542880434206461208690129677243236659608428028331472606600241190456079762130276590808602987636626970126418240051871028783173606480280841903349776495451676807645028083795705252115867667993255308631747135187948174064589077738249577705988555534479041488498571946280927370389687225199827877430348927078355959018158350076872011767650527297182181735704125040450440760264255413439738981441908169887266149032771883588492042049706205220373765709170451553367757436171621610645852728703244960672099062781039779891323872560382340456168018228108549348610247276543267120377213678578377272733341291418068108761271539501400381279529062157164796749456060831816151771018406808629603255676375211618725573478630076193027981742661751263364130728666133124920783787487939783540204911863261122385039184316974278338418450323618302963029997928050260954292807984021083358333729618803751470707502458301169280561553217988245295587908855948125831986887721237237324198160745949865389232122694144218274770841125059972983645068092832917707910772101941235865547261147482575256747941958093834342927498267943892728771321319015269693420885546912414107227590829082587787806853242884019700424466325351695352091806344107255761855287959235636330854840072560954308742288625350552405176950275942696331620212058028117515397912068979312562563662997558125899948519872584597847963492845935612829909582649613216808852433503556858443980213686789829612601817439017203772460816447238459605165608069025906538751018398988450465875591691931481793405482842326049371861643332333116662385321697761419675952557072617363337476309531235168897584440771948303637401409474435366277473237415060253641763514777540866309793272225859020927262335453696693545614260652062112178103223664055628315108728337428542644290971822498918880299682545481986248955260807098976181818875647858718440398924190382143107707368165489084602701481710488430127107189630343414351781907801522538690301590732002929367223148556792080904872406112276443522495203711989817935923734327920696324664057090637067921794174747182881440794944559192963688545262048002698050480599341716308159710208634675356258609897620138184424113219227964602021121191673094804442939198558801436715126541849727036625581184965573766749723921974093779788974276390983940611286921209504258950414135771050990514551637101353492657424304685839138619320829735155840503218192018574807061200241607631000829573471018842181671504465070131339603258332855087041089040361138562629497237733913280221540293443614889794419968913029343539127126096058933955639859956078621410165006149219945470530977795710564884220318310745108065049082639904129215190089362447384915121402502955280655272993700819576796065191559131643637428692880526929460727349674095424818071216628621356546283391539681918860116743407272220212460502608199000856131333872960981344410631417804264207636186071698146407946379514923935573042462578941801408246074317071408619187906024668764266921417742513729351745122063036665324419723546572384235294779741844071848070611443617568495689815364718702128066833705380254643201677086576853401354834886269610951553325887810380596081061946641742560541294239579162881870381378213793527958924047907313231743453286202273177815553504704620985118613735166167399785852898920221046998760322573304194780980905904652473213809040672396428378120245899097526595580649448523215556372961816252417570370931285306182590715092393995518166555167459866244022434565954821312189489269607082571543662535254293361919214660175994356871517227239041502573387421633893037340314480267221178485940553770580521336119524526721929179418282647909746143936243973072459629560561070666624075106482074283454794939834801955016436967764112178358841355517905336298151777601635683902734021447098460479461661707273185842700408137639676684212799770903402902297800820979544410366625830281975122484505826827574489259928568933864969815319475584185639247418440521468284276805294648928349563628823461836717149877880999236571059793010667023662664284222907394035757312149816818658395233030279094553526031464076131812488957752883986655751814547386131167106223614413385412241579977996365706167247725642178334772319461392404037003224572233611156663100611724992359857770017636201503734065719900842188414184656400092429701396362234656903754789503436805208921639506303879819412811748407263886163641825176796389847368558964560182332124170173472439195826970948087792122936513458605592140227637040579114203951800648021424850372792276657465630888763363940015486105878778215182143727574778604435637707340064816099714294070519817420978462676429713392219862449547199165967677225022320443288165183048693177798003845779977454077423296529791846119741432328191933343698169359115912082672294759091291969642228289449842630344398905412829770775511401754882562026196650083208163761161341601973719459437644589029388823125014214038986795570175654022193373982412295861903483247367555846121570363671925676371837823252054081187994222534933685768372856991350082905733190896820585868967602276164388347896829147087194773357273525018037451633540308598345377097518748307775166188583317758578582893168885700853138059261124832468847689240981716720773957093391318756770073450004251278556247800914006753501153077516487588567263412524995459069984165220761020230983382427651918118171087881056130019365108269131744836802969319905672970785201920743845741996862469612586578215306127857741288698318843516255949957667566914956342815495101190034091368243593341250403983566330763393626707867528857402672471235901056434158772363277720272899988188074770492334096375631550775142220294618367407605065751197696832445141086656154120565498845178154554941919377412567307539548452886215991738800397803250570275975608897324391434390945697455765010832112811958708850624819457024129532868673952888235872228483568155063621377508575126476208520183086973751640520825513385083041053856738604263007353881404481103226568250073115382713365033170616688836744453500788228117885193244348100210987798975626206878466442266280368520475217016609045613229085053289914171240558495416946114375724988541272999658372417391484294286892077284550263489263004168067552562101682634760200711723278868325826409254625814537791602827564463236260212474907853576500019019371651128254277935659143136484128675336722685256803923253876206777607111134503857720035820944676287862966884195359881848169362353206127406348319792031187250432264674609037453099327683568378284549454964880612204698464614822038586791965330096936450709210876868052629898202534811892709624537459090452819843202378283353060338768724642119168009540259498533456341696018079746436830624949031553487135378678148595960418367323698500006150707191797197199973830929673472179157381419878881658282941018694178752125552965521795459221740485026601712632865274507396345305368400569611130465135988304721122127673764091856188348691795649009990560742005229214106090657209094579773356715615247004894913515719693063364065711166380581367608276631552823608041820926717722182125341756429931995299829178515791648828188770764294785654264897536336936967607855545109714115556835578455627142551781183970272244834173042108100819670661149858177494627515676728345106392506747292627537750761596986330674670067047841905591725270544343935964250423609285191457165333495670951106303058284858748743020311461327161057727246170112387691124508394160700957457671173535913012622443192262004542410762898763053988075844688587310665028415427762942931506354587173613453523414243982015473654113391896292211152634873905075795970128381933156113384575970393185403641743246730341009190855337651256496566982583071873212547062307494949475143807833477217133405187642796901896524397300181952584431589907372585885756701781151881937033442686029486853937844633028504628484725805849049637352866516977153921464994862341974062493976756510838943793461618703065139735308284460491863697754790347220753539087531194615221226603690378708510643735464771199379211484673022650973354866384219300169994123183543688615173165356672229399614625684368204442096211946129138238889262169980537394855107206786422069664482448037616447049097433507773715758763142240690837802141646260441088140632221344352258636623012323565844245814696542037522904135105951149543030677243452659520915099947931907420827686114550084588374110968950317482326119128196716539235398857368219875535117895711326594211119433024467499542534312058207773162974792578944529229957814394141609692444057998269220865892773357214848896326722555468447977936696263116897256629582397373138177907836447470425003967093463681588548157116285341682292220991030258546593264620302714497271351689243482215517420264762110144057917725365457912328118751493084016958112265536206058331381256134876840423852877827036788908572418307808628918127936583728137687863914173372902212160697130270927885365768647243807456061709008983058778881526009821694390029416824157671397486132948701883103876777276603123339674241445869917746599081466461315059646926435403971311540339145621680638435377752143266042073229459213666405985990792108708110531522643118736683205087543549042759305205178120614009627357569860749260947612260431472862462252101687314720860236273183396609126222712161177631475378921410968825069365104066200067198660767702831102047057301526047650047878174735983712175933749827243820440319634408762194119176155649696052942488692555038677901501178296161828660813407522471339737046192034151767413673587111298869253766425417439454303920076555271548206956401814911726851730079578356660189656124392176212787159404286600684417749045849817974790473102165474870751812229382695691387725577372730160307094748980489959392917517524062682361886099842754533305653780180493708510295376019722900960492811580896475932834281928953161736252916342307204670668923046322345163410260901246805538534563922187793816642290875851974977354793463735314827715123544291518327724288892948325380913074153982463911129538797902106745672332568320417519838086787759716551606411172071894749081047350392046670198924945709040522161859275432927977730632661544549516766404265441555720596313517542877336876337665900668360571347100449220031913060198345641748261608462382448646839726063530255049338715673535130592592260186781440918189971360018678137226295059875823657501820708668649694282865381019678794572268801139554101659560655489318672828678515040720000774816573870264769740003220039995896352647573662649762785104853189768829587989369197429444725712644558264393891502709159931367656430043805012470861746300755186365330110222719410750372888315043311989715492685000585810511215976614175361508577562039784358937490100161924527000732185039064554110731817507361283962597387311193160129119427387267102454848232362997451073840487141057293925574353855870801339443178710014134666575524922438606227711040652888920333904646678339619577574501290339368423106187026473087236521639658963342276592709441981551327122108343722122665103242351449772962604760018023681428631151606764790205325499540452712803212552544000813432182141631696548878282778386861624975343916142015059674619924931503712769468953050891273345438458354801641463621431183129240179474934199403246319683887889374781565382809065256158562227021065782219290816089518387204224411715127545348004569714626793132780436552960326737145552416258014443265728029393781135143338730992060505954897005315792035950492543821646335305615445098859677990443028956347208561729885324965125832716211415262393736729260487456453897335265230325303716794266122342379566629554847461225835552038087227758687988624876241245079898156360695554253058751876504729948111097606695705768577878727581667262060835597816434769285621869116874867341352650003469223258463935401943038009325989003270783662136875633467187224638024710792304731068295929415681207784627682263584497825078155081773638706212806684183874956527713213943978386285584697921500843026236444804930405994548543967661828547025690357314201622724414043865574655644186461182722853437266002725660340447609336363691045520951187338731250103741562360488309688215859249845530028098229214141396703513958081911359883380480797663236164227402603571334955276773066869513372785280290680595448579254031227337610156508906869348362833040464328571801898086220587824148210415640758551839200000397993200069000292564744950068491825095642374357114712843340963759611798004088475256760621269032937230475577677368264232501708636632165243260459230846864558986335498581196417908709249242934383040360730115555021557767101014824682923051379952109461625522431851522848646995271630997381886872836072327843695521478260874038183416893162587524097544560988294702227089758155347875020926042976788913374808607729358483771831051780166749953379175296260448788296409208701918042931550203916268011589468125487216802183349521010451868279265796484785200199506917476904939845903120580193221535927266488542064965950527804006193985154675534373317843343214749189483074554847366952376798870836833666779356743139645938329557251001052866362162386200729319408577323904953168606059967568939052924546301128255586465408640814093675906460624347001646744803282083138200819983097843151584060813226124138754695384498480001276145866960335427591158981441276541649974491262054005658932335972573411975059583005983399325310647467278165139988996640039560536061930549426426232797561969380840670873774397595959082249009232687225404959389160814491514053838439754375698174653920437526744965161110196526213913898133374902707228673797419724335786054156559252687869740303734555868678056665353867315863092263365427974712085000892284731429893820038876886893864948933096824694634164389334924584638921425598573953375906979807246945966556675325011198428661535069772513980201001925019242275042589740307394353581785666122838927319006955968885226022813623108003798211567109702034747874606667644897740474697766357815514325062551688297080406541723516844260037546962011577902602312745038033236210232342264535126559055173900183484057956963484446472352543896941619056701205647292617052934232317577158312495065892395799994316418722831868601574910944433918371741214870158231717468195273257968069905202518668723104267181280790536438170236022641039256128655891661276445133735390319952236609220160604080456607321910821818880026822515439275630543443543023922312858490935483478070879234333093128547278840878215385781574176302496949258919648209198062959120865239207067314068875176707791068867552485248146140439228728242261287226243950312194327119311757992043215399736093464535475089536096577632014933280389684498749544308455840311063636167238307103209411479160109340045690957649323497916458626412447063869045895445285672435382298316560306208798913284732298845625046935404037839350772018044953283361976757954361654240887840933533238631776576459192084696601781126567571208467269046405338300811332597369628266630026301062981082943837387381864111192825836194095627356581728217353335648441219522247999048943823855212502523379370820616803181658159759627526436245410421759659656866036967302947900017517086230803255673292983206038540944550983134670979202943093305092983946855928035476539879477292333987236181956274394571324652620507782430244466276833048047811159371257883716574608928804796529510976328874586336479619831838956026467271496393038671520616052952800230984332701000432456397770743412384997188360421090554907474415997385049068986236805684525470456322372037404560869943293969732602943745581454333575276292717071683978392083294202394212178485386001668491695256735693121900482334409756912549534428258515166474871496127877398317442917521559721482113888505370903244982683919222397737454751352624001033693878392595961298261421108744884563619502960044321388804857304336883042369656331409463780665524422734130343012909585709957250342250706215203207887201863152307957798963175888779470442894712865976358283115337156716310577872098379957681572806387748274032857846743074265340694272582139633909428939143257437936034653127277600783697272974686702194552209916220703762320090227621647231069627138142114534603598383061680737329153063580793588349913065579886802545009237539700754792316102706312974649396853449061795176420776727029877719578665176197823296648540446780817840303241252311010667977237605446877242077572325554890359386365229929236836379040329125189292962832284711696470788881935317477898250433818799625653704346274208986905186318233648012719188583590483610699113980885869050417692652091135480983140294808394429442221589457023105124123435613384195058167205567279671491037752608260536954659993424926911236618205326329047976907947373496488107880772897802048676304991223807010199895285564973952439043913791391563601038101220899193914252163006038130553032570432021830610037539781299444584848892621959383999575723279412838787178242954352705986978294683566490643394170410410636026818890138667726067234637591537567834883473412402691491235741302240555371141920387562275587016943473322659399440128763757835042662017334091299314497980863395346607443781761290698337020558194053941023024645693727797953474708961982219989095741507028384910786365997503293976132518803111586494213277776650846527343555950487740527621223770373864637662739765876393562570675409536083257022100643924774540221533814942233867031669668601206505583161021900027707609985518134901390705290773912462433621866502108201767702425422154023629411867975014282615818436003078648412673056257705683261129491210456968362527947126284078603219342839676059324238916122725310110486409022881405821928632838487462746301775082865093677719056990931158635825794216500044785138898793719266487262339564258732613712287765292062825111936216507453797293683924694805483837498293256273217256841208955187056208015659688683866955441772647291804593629346429166256513948086672724494762441823095146367391591513092380023365254760010101477624207394598837947003419239053584809638703223051023615675247839569387602610422750792528175854875319899019785371224829029074195175529901785176573616050176711294973630527189286340749329964641792425503741870987096523335705729360422222630110038243252400926050860521338344851008405150588457239108329461057750338373481943114594104324243804542770263830938458191899906229541883707676159248878011207152914036921834262857737153338374510176852635342253620923824262938459513108775008767759185195856790464740968086822340649655699479135495422866027953732245632088800256120243454958268559754658277347680464426648724630068466219039611111843966837966298414561641189267512932639018557114650541062606770853913388275385436091941767893604177996271401675305989037012958440229420844814896765216696935878062021549633914100572884868507549073619528536144039440598284776116138365706919785035514722398299082262008092217993021606882236536888642901452001328305817743953175686976660501496894232506374945059362274185377522618619675032900819189084307704168072567937631164613490294354123542979161483418548618191726160238438665110004242509206695750310864442403305326905099161419194625776880917803392002280883909564449860958331988327139771172065591639098750240242404960837718769765486327365569421340480799651000877609781242467257072720514597802094478698722789223553920376090518210734839482517157146392089757703891136794130785345040865404854837626311819685999840748519895344846368674106980489151132538385110550737644752119304458767824729278962794085284509954663637205613754034208938690808001993865659235917669144713840575649050331958886971742141205817698695526133240442474252766158127031370497277600072074399659803372111646920753557718300956923839645503582929444920303666964135630766783166494886257488034314357869323663989275595730742401111981863748663946686984654883500641283982936377327909285300545403780774057966151096622349677346645578774730962857015403683308747583817390427300275911445467188265617259666785547818811506612861446260092761861882338620906255283593461423285169371268592297076357306686513863087094938002721444318153683075332966586640215890032581680278964092502289135912145334835929791048443342522417663610230207804933371523481179938753472552295324671915723362135742143870062073531949051022661356412292617143185724053193756081179909290194148735644684457405996827740402393102207757079260534695301204516356121125203052956113044549092587266476957564288921477178122705115907987766252589953172261074767256819361406611765163405865183159526384822809934638546757112897677586874617561019113380075247040117809277893600796816905629824700648919056338390778972408091724198234156515316237342604694985020440456562663657568853246215106918082199518186175817374237954982679780665749820532302362697814943054875480657406533558045028522458680879682601043254045652902845913598722216398514459733488596313827849613481174635587224199187243431532982385234470182800806304790147952303606870434696743282538250248155713396780554126841675966148878048396409510600546663713851459586680521897389399258130631877246486704540186168142796878651924084526033184088171965846714273538413425534243729423586152178736287636085909759357930974786186642602867019007303716400680172818195872013574555379942667209783929884082228591922986959506470958328228948723382866719589989949644602486715345205783657993193660268201882107303466627107842466540864554411615668718126766970959377192066255525483126069949344267287994221523689775563403883974262213828098458786679444121662945971008143603180102881768879056600104525911109953720949058410799767819041100382226328870857578437416860743683473494425335977566614776239793398852868062836790554107121440591061580914500204496878178993293299495168466534775864934686732226689751002295625978826702613698514508707700183294803157590677198365436845237085089016060978092030947521777761878724030292643682866957218774397144448510904724394463904573445204959039460676160486475322138566488553789425093403388834634003284630795872756894491867035428188700427033915093217528883497145949867446285417368199157763473185819631531155135423219821265456517971838709286088798259295307235273115608170917226728577748844631000404181508627408991581861866059563638563532130099364834682968910827054321819685182486920391705276417624876306172895422616835719943058173042128736143724034845994840377648303385222863140557505450793203903185990609710104286643554871723244557309740612118834635623843393963838901204374327132708381394815194608995791590567519090761735878157952604282319750134437369696644944418800460649648257743294900066865641751807835763852925992983910666583270343630217093908842012384392821630911138619695463706323706929668967982635644399952838710665181257601854502160269021999448359238514790991156710060446713108671974883636761010864904363760548266220953098605515689077138353962152062525232129460412991917598271116618396799862305631172538502656439427060029641919158511696895151513745163070058903857011255146986395676569442666571209213337503394488936555778921203247833802629295936909815297115461128264447919535172185838693761672091185917376209148967268705460959895044676653186836897243197820938388483325084121248568010984696525784972813340737868156574566583778142944680991855827077864119273249670666529269882017824594906341671433586194702244221993854358896453768376669769915728645068600881076933657170129666085937249068407957232166090506420291444863558487573347749339083406466890200910555651012092486884157244059890155238337682984686068229886623387252200314718757969057354763381497462174743933211743131977247722874212050395966399934630270562851225271056764085426998728816073788449024209678971216676063113466416004833745660573413075950534110911605344476413140412122167245562018639657526082224813221779095505043442214943452416908626653465735934612218293305042647150832882395286825784867892097418795590557700426771702528738179727187865167910432954563070087533378842367390161230498552282769473371194925001576122413390111197578779923340668526504721478632608742066328494968914215181114410461469631679826077298978404409642794971857196744967023607694763745948780506064755339505500177869779713507319010699638973691443983592832205757159631946360134509371873775852342810821726704696201007055238012950020139324360270625920456340773869530528946950687145745502818341031274064209206026206462574661706426394225171017179667081484036629114979130326919936818736930412640255132989818096888651711934131989405200437489725370713121740324722897752299636676026774015562835372141334319392422760987233185646375819260213626392787619276100722594210775779359774785891558468665975129660393252798340331327513407141738498913410945144153162431140957439975456891387690151900461653355587085646690200443048381861533920045074604936549297889513183276190254287064502140365891902608235156541656154337338324754458913709921314508385893376364512735630170268359306111489295831819998547283477504116987882142542194677430312528011564575496960972561261501567456210735833225088636077638074233587249226779745717969579256652411760456124852764190477078558139432829986253354623695014274624550048002563014184099743456477479675684672023645083795471319768119858306355568440980791359437910202219996362518882527059776495567141031755787789772797359164739200320877044395899923271856255950195017610078289434373627489213261873160895243278899369127317916387681881236116793421528638569364054502025084550109208372285897722897880357094323741111755630779785494598208196686405442075720786544888321140405212717700923570430689949698266979802937133034127714675020511165648269962090231672311193249787223863966733560260125811402003058864712691101500686419044500232105984911213384220661625308099365115108371297440156931605510661990838291741738231045255690152319429027832517391365056705194059831983785825987918421984006706317917089073094514777852582705931441016654376874810261331763444200072838198528566485082065402645892882957151683630811667561255720453360766283580409319882676895780611767846147932821326649021649353155638921444109902872229795745949098822602564372727733066213315552410045507229163250335282516410413193005449244539639899609056647433026269279271924353506815214856087977213694074838466183617711901643516357659374462051091713638157410566293865420607622414735090570629795479339135521723449541434568329545550607332858901074177162229732675086712589737237602348292352563220828195697790689307309022529825100433744199860602047170224937531714697127534891490515580744426686393736290991706196525007186993665090389592199636562038581326720268813771342934150682258075705668169342827593434386545590278691452230914323553330150187600808481100479560779441600038172562067110198654860581895469810362943586413246608875677124001110363835520195504922469549266791050614635548682084502594456398346852974231567405758243738612465910141708318991349413745091262876467711508855671560548014824461733989287039406261581733181146899678309210245108621598968197563633305957479885124317286537987674578944419073762376052626426652506022288020355848068057185853882710762969770213497558175553876021972958371992832156946749721636215868926118292908513276961707247055941597457430176339878991589713280519611836976464630673635362131464855343899757335953308723765427766830369578157811912628721562578043551903346678301909852552735103173780874695685891214543536844060358780007528569760460321857829316983582713592650794972571615840021144692031543733211431385803109810446002911673141262602619238858430239471240280086493709124513048237054015657971167048302387236645597842358586144980495478583583419948166814926047620630378644978181809277594041450584260085455390676779115634391295880427832322641644810889653164777881585779690759115764781684120120367137275530025411386952042913631027194391971994200099139237621478206716191516321648339804231294669186319308219235946142769338698308811398169768965954962352006919173065336522439377127481799210424132053986625051932084777219904280226295019001674796603974767993454835766194486516877552905113179771745796981417997434611807681200699053356610721980240039118390696320419764920854206950939435183747894554930304113786818866344258486825901416113917016836242205447624571266927043730108245988421691189833995254112623773402665139487011530495666331651111562860960614464821324844437978994552404058938131276050509868498876056429857313394904445497058413610869948145955673061210842922269577369167813842921697910376997326139643799304794205822426334099714337670414522128239330023928798550912751934873202536581037269599682607191771946324131840455623155975842982679502304134016483885450713316245406561329321580245439591086849047098114249035726451720417997116859362458472302486823211325072985290677592142944132796431233856126074982352254697966336542962824629526873187100693365028531447081268491147003955678101024061577053573642423930731312838632998604274496345406228991106856313459933712240923110021174901675941468744425959361303066524329057035546767705468673675122466887319181268745326444314311325720026194749241490709509668521837624610669742732514231824135920856461934997002807627768528538869280634616176524341000484754404681665133830013388970813319725149604117947673153633605897058357541362098739929518953619789089047310667518788273187202164778238786052483225359048567470448096241150523153380582162631619493209733090778846485407633212120205812753632485639716898109261558312487928110095977278824740095696380793382373802443309911753031695558651748067090234671095157361082595936202674405592145873952188733816440126354280340081760686813780921415745189056855601825046755870821168799510888548940623022019914564844212477986996156395879173030684164960043714158382084895358132262749752956918358650117827951359213623087031580342497314631427089967602759193486492975979666757208794574089431375459654622033705108686360116554143061122347191749518791256537651622763235131136249590433909203575168232178300445283314054808039264819802436760803586788750605468692164469065470715977972900056901880632734727856172314828020453936802471234515089492249581146254433292232698288427980640634842334634613094308381418144570985867629615519426310005603125869325167038952629483446006998889626893671955859176948784404091661281036884054674986433521434664128124405703770811318688970349383972404320578747771357670977334105397135131854409134267526435985326456991928984728343798053145249767310297276033654661283317619412759468352203567441419215775142005145203784807895720645479181876404746098393448295487029688473805076645301259217775981310195755322843967239868241771513541702991519551766954262586303581636602844472967635478168046453585125455172691860938831305642551070129780604535199760951434088985255444036335069558553617677366978103115271642857669526012641312639215418999767303675189717261074283960271887745728584366320799197858955030607662642081633233903380402517636338351429347510815311989021828812270938763268836274937549433983444011618264255715605852975505082751389096501740052324470291785998864158837175904861476831851999149244792678982411707774251687807523500920721811494159459537611353234130795598216828038644235790186353705752203458586139076192185452659849733727242906250436201256764384296340930770747014148112680404901921637729386496761432036460189994753274013361492817129592112560522734275694087278925797461079496849954851569135461253439419973413872318515997926418947322318994321839388682275655116928770391831315916661038516535953799582344344691960646061767479662430216888868953286952356884640360287805918113963624028433295851673511694448991303181865260392199127952397402360012579294339260501657660615054204677146763092638932673000260296523055173535204876407409768219485074165240156953702662551213272037865109594539193773796455318448384436073186165423088555649507502346151748854043756148008844844307230828410471069480498539697689172732678566761648993270118220271267409488189049786423779357280346209786655797715882596946872490312126467989691147380216351817483889074349963316862414634395793710599769478271426179848986087710418412918049893975597049263807826225680678593860076718006102579906099619972799314410643565375614764127972627693853531745628302099030178785102759321413334853048037656519638381570086828874282652045660080886780348135334088557628698631713737545047794150679246283122103802909980636907247376450220027867585342629003704235540484178180059653045131912049445299748885261380382238875839264463945860112028608661116131976272454116446209128275475430728588844871877029522242582946942342774320492345695030008988315907315451356034617531712747620123562856031991754528193252488875871187945959986568864226171094451274300490046124572426790211658944626413170880471916313398440228239485791222882554644242065232746288513404591718539810396048426485743190633601250600380492570596319349614503525102808271823422828798596545910961343451042997879942326146622007058714344764176213658198978479926784140927951452245353145252793092309782617348662647847444997231282762917015415834450774121599208391867204187913675092838218958390387511435253273122997300621218402273273800500377511958353567743643621827951376434217155793002245625971684753918514613401085478042101827654782884529737540272065383999515135424223219608775670786133184658468388576927772059219642458518539597911603751706524078266395833972174685027970115880912919445917559696497801513549814116369272056365857865625666818424220880790449666282258467799971097037043928510425913634660906069257160934291459583485983011281810905923873863341165138969358784612800663894174758572585459549012493097349687090326510784297610388072017498436162583730992725090027150823216945160978426111786155940666448828939842578939997157941497732370405421225614847282214993784894586851079597294957425265281011402040994618938742492734818605732642878685675822071308139930974759266602472871929079887541973348371885971372824326953794278521305437799511031408307502626377138152030912345789782838768882702058637345277321505918124628686225167423739446901829790988898265626480837972860477546196234457864895657033788263464246072846923894431249680087133203380342919594723979968367127085391236615736420450708018981385874433544016684927872386057558377366797891931729708886975075973791713372454677736004446175171264781683703777189892065758743650849491137491934566260120728066585398286244613754708425377654327940803026664033297006660843803353478645981566607949333137008991609730954334788989844533860131153318526423244419684165231183708937493901286019125773178715961751986894854785537528113537149385574113649715234526633163322183998053988827281149077139111859996995133969052577833704592498707054498672889364582154001867276695512450406077306265421407869085095329933636473547972610277310831994840420183009077693805012039310525384638504534136926530596592991161070398090272314275389303144502773036297165456753288210178573780078279730571791364352389190130422786191094446962285425856218948848852223462979472770154493743075680920766259512757688804080168533556342368676130540104337446959756260428064002461425553193262950560852955459678780642214009367879100552115271939209128475256812968505110799196221184108720941835611924734400318509626691457695967250955191602688899581492490149891805139329301088473448026061946817687782394322164212759594581115603210484111679864964545992313099234167115472483125468630491800383811517581674799518307226419440450351425630759524876900608323194275835906954505052153724154460388743652922368417113415576621699807004669284336056898691289188306039933995083440485464743112528755772511146897323746781264739746142563832054942499858987693873426786814870351778740271035329457757754662134886152089061425124880175176445332384380541599105291686289663456921542393067507980704908574096362084075873139770670829641986031464098347307913532865938314333620065665671604515172412455540747262365266464105421468269352414354865044440582287920440046033234084112890689087071633881050479879818520398049083131533888113053874998073285399004741747635801347876276471840756416618879981087154485882730205162782737117000439852329998564038295448937415717746065586282888284009700848673188448864873694359438252742951304080164830439298302508740620918762441209228612426896428791226743591083958786802145818549649369740183672740021566242914506050468657444275656444499145962013380747815839883159190370403356384755727117314646830686501508677918011311894002257621642313347589123643762469793500019885583298814775691266433838064479261137817031081531167317888750554864507530296651670286859790844187066884586742032342394676525048559831146790717820941287590443664686174925711755703832074242890939657296947390367240402685284554116545313275626548983828648089540823166468584636020830226404209568230430205595558416592036092880250161311267841224401707230205383442046424938357409913594794807953500002518400217842607617073485381315473882211846193735876623663207956155813638478954265159344230005685413005674623605014079414948002209961485621741855325438952706029083108935983084401089070687889886522143463000254828446643207145877339897812716465307297679901613042833412660517745024979695257017930136813260919743766383289987509694390246242599814586362856456627923818396677767434456293007549547263070058053533787291175287437506030762406472403425185666050074579227845581547733645718869867137641754604946849914692551146459914741832849231691708688663680522314984149170119629214557188779382708702250556400963245641751990454285744438545071862099132643347244742559469725652764986784496772322077608793767636984465926333020438273698217778005720479180280875653750435949101120435149230694010044742152718422241958879754592739803781983539583953894232354923969383667906201941860231514094685352506321484809226339603925776321397200548482824500318317726998309115080882116725612697607673698894708913905818064538478024390799375378162696920216878510959089148797627949090705471171364994454178645771762322479838466261060908714894967552581451592024270625176482274849480910056224601481897996590939517396957294439548026873621304072063243085736557174961015017548541749542301035356448840896252732905739403781913380753818425106574585948427760364020322265597025337187459638150463654989824398902704512432720907343295137808610581308605723106552566826437455569308915801392588571234880314696054793952107018162276867325438724825093230319985727208021036519124327157590364818716418403062931808803030600390194286612081759186956571871865914145631677050116611633346402909987103109736842877499052617759651689258496536196962614757512106550350473815862818295924397303078475478077797700122990421963765316620841082933462774438120020742492494090518291905751952243955898015091191077040312284420315176819466191437203991879264717111714292743242733536451444613445473572559944569408275290118221169656481160533624940199493512780227274255496848397799057828543068208503578780481612270695574804718449567700116821957379337610335361029564255213066488101437100336641620593329845467591224658051778834196029950205712280205892563729195273768412044922024839734947170074258790648684989540847183527665197551707499681203275238813319296815402678123319820254208054272828250079775187210885043323328233207031602034236508438790375417064078335260273430066967849307884542947789620853910886844737173112024125707030636610505294119323368586562961614383188930007419345377974024219620128267391776718006162701887902181512072711855861278007360829032092016560612930528545320518056073424886336325549868398936267496679873839893285465737921001038733952726875603261718815138704630629785221350760120295345810821623244278791078643331399326798045290380993570952971512513496871052930082075533703121281494534792545239048908819113547678133897611471233801941865515065732306370738030767933742969887826521986310798339267680077317070205523687199544083756154943124605600311097377630868386741833374440905334362148391727088169164887413724104861016100595777963785963054728132164936290634638492655220873918206143887363704492978733027738301838030354721510648176265414511990442756911667916909959626199823588137933795817527296010024049933173395912560259117144152904178551631297318546733336669655243055786245948935689639094764993094247798748716700357447244504360964246266183066839659363903307884247873405092974418648236330238624248983218674451203477748412254115935637130753713239266480221358848379930419767050203793683110550858136149505042879296118002421282667407622422151356820692352466535343486469938912967098070843755382610791040593020842749258148345388101013135984212325402563418892488288356341839189168381674147611624990185362917473521938598107577704066673909923481103688821603796813953107262227238479130735977764717595824540846504688162671400966138354040281543403952808458408354288697323069107026057188167179317685370745155169124133473590620274179920838187346483234804204358402541358860859310372919035181794745653807859245537504389960182345629476940371900114695029646382160877350450247543006296239638106822141238823633542868268760524958070668639035335951201198385634344253025755717735740461275918512878835009478111901349038030442557049983380044897841264698447474779717803374979880781365500928490112517970756220002771423080114435070719659647266037124398953290969466076806522995465589402801582462931519345000046613776736420672993303758707684556644390009216341500806668371127008345739215770517779790151415926375732728124192890558601146632743232251021664099757635797442084423462246920306201566153467388521638957658608321854138617423464476450241111238911311038539792313183239068488984922730262725217875506427367289278876241630919797582274749736052298924028929618427071180812849989469678574617749988051471810034947494899005501554204705740025621142851218963486858184120612143909264134116995401820338480554360533451199354071151174583482361536415896042047692969457243695902293841125027191181090377177023474967787900708708169307632753167862963700161193858016880614848700145385950018382049765679809043356526864211659052021318396666607344056920726581438405666337198045845375441727537726313513882322579023138816958263391702524090741800865736505123064796731149293493043733435108810989663413721452780698675384838359701071023254628647178730959222130607740438890867549601871135376291976743951333629865310503113428268620756018774734490367934239616329467937456827867424238514113119367917913938426636575683871858244942774457271349349946439877906180213068474295170263208513506846283153639661229605807937793941906494360080664031531451898652275850507150847593983858198402126223297569690319734397141189164892298818990972412412542794196554415050235190362736400518420955544971252282928644905218083374428833212610183714226760344324170995402190033028244525881532299210882778823274893765130760516802750050958485872924297216266169823110629026353195448802479130774825865956842560658457155988455956686556550842631643159780387950091945228416953336460816619461288185256296040867804514207378599789175375673913011032687248498901455359190387263702507117132403751274012067547105161601633950228685670686021671611254925813546293457053600529472635501353584228729490107523984826328738896750925908022939657083180646193819239939531185989657282035071841570228668305318569157402636954701535647294545983613017191795174996157029640403668878752298867015487218181347876190436663394978090205242894216813407055344128652845123738342637876994475770211675317506767812049892152637708368351122592963352313027701616905099599299707980425048666662971634389205924327583971894562113942240509547127147456525222266798122162328644939513308545138781666026818834212419174926955961239976129842761935023208674317836487864490941841642023744170393025200083221126870296480255692316289202647166404789067014785574840671599347957846228911427037921915759103948148183900802826904814464131813568666872504523247945934745437095512912507640905761654064600036594074541378010918512816954024173986784876729951707599008237336340158266188798320188946775736414423809704072761612172244332980283850970293216010921200078946305778665003632410517952097269335203446632995425338207081673224567278844516623973848457047704894379802992025217486987990689368936158785893140720757006870172642553703389370243819278278696834189305073421043253305492889180522885132529760126153318622877913059496331702653332199120328310823366052845981821847771045610972320905158851790734310168530095864164951581635825206796566072122237244070231072756154509117125111847027897912577457160387791534621264741058075466690658024738510288423042998891558890043184356613050060297453814174610490479294345049495047507924555947465994180502968545762294625780747259461552580270269767323116914315911733288684546935134351519045380944199427576168362235698894151806327647664851423196540730957652814951036527034561130067093094311375142378508717173596775398482059137959458349524362564312108127506404745978142706165359692940706873794523843496124720186407854291761838001168361158211153940251274167850259892136611223741999333924752639707408423451659041674978275200661449729137710508199177990012937320620850039399781625809480556058547303069828248553364073428915757119411145260926297139986114105748536623886508369022543038732455650378324018590117253893440435375073694901070872906194403677935283999244086890557241501050123474160854562945735841542138684900034234924034047172178870882353557353966492731284691487755704283924264336971921021774837563693729130798391277500689677920990667607691756719329097545711292829651264295449886793340142215067896616408465256818410200535218710031451911452482444300958993325955322735275320481864610683999734060108215361702840652321672345057764608665774633937793219527932136683858467420068183042501925243559304062525450180083164970339273855643062229772385112816620791910416997897820736066509097257030643983453551386024482889179459916503152254979937192567479406861416099410972785090756633930704842536935295887060981730187380109827133995337498815339240031290482059941215618516394810961838022332492838378524671102547079975634312207744200229505944149034254041899087665587255206889968802041195923995417851011199056420589537282081179006351788057653450096150739247907198315106789333824753925741774292307147356574936381506514302323901687548013106643585342209541157750682100020304911081987686825538445010146103564899687146634398542214565679199401113335661088051744931098998458211029191185883717004478945953996581432064358869186491109617663716864338208819311499857499834173782070256728543915902240706990152873745268538450493622029614172639947500654384025618437938690938463338892403260457638325404528183024873111941038320223427845791195259359809698625891354661986831457543204214464739406454482110942509571802742038218209609606660903369567377584027003728913323699707454609554807881079987366586114040972233949587468490052585673974497213752268833599114534597757154006011332961473625125269601613383768924187288294263422862994692814348858970685374707343939225080624195351462473305739247399672368814759514703670638345122635624461224891339315202773363656420297216679613059222625683895046137151945641181367184651759293591203216387142067367016588035489621749349400037843110374816356337016141260910596551086603846777161602395406386925208251705153618332050053605239799757279683106503524554941958137245492866789013916562510325856988382121663389221321395906754729459955970594629818412724063827720077912929757892266751368702501123937479532143105036462723535162586706910065382758267117606689873895140355905526197042276844715021572932089907530505813138208474941035762211786674224943256083020509466934467620145630467524948536643881081751180293907600414075030599902099864565990299153693078481978434590601814735573947672984489616787635720950412015179838896000648055698332093550250992839505879593590222829328604625881735380542705602069221540884122236201973536180538399571027230388267101558323437617274177276261175012222738324094664804846224155789998465208230787043028403893228805239685461070643072698372642569106283805289046817740147830955700809059480374642783911051912022431338535962134552489926078597468383720221177125201569164489966868944356764762132792612223010917961761083139885011304187222196114235865836240059958489273673830459663866960495030953636624471933813200276329224972854111346139254172116727805916641038106848260487202940745917680475824043653812654523888082620111490245349667469331168596944996085512914670707573188127228777809228262027485634903134404598261352296007872535597263396959248381381337742707402857352283987877076116079203943634203606672127506838811493384499347043149467123046024979728743754294165816824199423736258965751475152461890948840031537368947759838108306514952036274752901088522459331433487782146347151572773588458955001320275999315577066849425105562094529782446227100188095750911674871468885794274024959505163492579919736104205710596104922936837705146630401151824228277224087633731764292248364625753729034998847335144060049447399607074679230222325492693440056266174958378224712072694791292117724820080719107428794798487317386727100925898356572100797521703076772404680515387215482528557415365480156148177418725594322778144080979268848221622892105427667089837551441782912180332708975650747266045531943313946730025248868890498737108313843563087956695424409410295887045825021602633080146386720835366055185166129603054351790944378925880934851052233609801467751755347715125537819031739686800969564942767697824453907781694776760289224823151635716024455181868200816354337055257162819884206271726115593025295813310748166756073144314608056015531674635364453572348645449206579837554657523740697849853593442371088977506949366201522181883674063541516994252290064984722728721559062913931234349194030047102312072460806775875686957327526158705313421569974176432865215820313495179069437361476325704886609834705998077015842690389785749424604113762375721877258890167504403967953142993518442511345313594310931156561253342023837650757676408892148102570901508207917428888868480487040624048175163642652714952569958220314163199951672534205349495197352116881153491749652489314477957416909434068681437173021492922751164843221718226237275590531235539929859116221094075653106662909954698260930482150221974993698107460429292414972024621741613408693500796725070057276716447898958841528163469605828502881309759330691415868404255057121710252177464372356226797397548187867230185171079439296826895970037750010035340566008570247320287136642055668683549728033338117717812537959373763355368955041385942514260628929124051715343788611047181966314030991005765549522692630871177643211939875189417073678081570159383555402326536302759056743975872637632671008473205567176888569843442737339268003025349531783538354445184641821885941427771390309025109407641721012648802149656811815085382068458332323342668845173450696062083171967628350608056596260177773986774196224723105963798436399199183547987530517486594024850692885807028539309000319722268255594961191534833877353114876159023669742034862774007529477076485698678593003374104255846505304698769829569654617352245099178484778284416242007187360921033904492382135689010445029927466690587050793960104746282108660287235870071195508117457549031794738166232521623539887942319253848308339871311395029798810673941017727429896427868854326083513907498349503608113017341042033309161301589141356297388876592138158662734843846360143362073646954234509890480600389209781457271396950560622842496152649084693398051010959269672655801534111840566914449221165504895268076108295917353848553665228397367108639119822255429513989687543172317804525504945120678960113523262679439783576705319347863710229832060056851334076555226527600808011621712835056880476652147298459242488951713204297079586237550311795843592038257060706859442645198764699787407940665939877682542729087486039967037216973865451780576894316401757386104639838631766392721444726828902433579844887429193856033597072794634881135258716474268657835081236590533440275158974416148721361800906286743926060807993865889926495245491260933066391313569492366267744187060503399084864026232709880108014116933129584729998987079872701276530192221799696861810715877844014863041377759611518620330480999885087943916336455542284107391580185753940521393243849804257935883110363339474984739090289698977142572598572976288806961941678151510777737590208331729282345422909100388767750606800816675743964560076370459328397343134397515315056557485171132358805605903165744300952364218318353713056903240983536847069572341070857764507765096694578059050478591831518906527441938347596610614189802083362369286008872864442185947048766904566504949175284435557792967668834064416087915416083008454987368571900743518762264979898364502063970623482973661468328542610985301871792863480366212249991499304023226287736740786352246388619055249108463055644860820008711285789557458744453771635405215162419002705109771539129796931904631287024079337584006245451590370271576921293923414519684749882556310925370592353405203046432623505880296282735289581933512651265214132762427841824258354120580642170048354180385726156876092747727010473622116397528354826636418563647809871757812186051901154349261180733792448470068982610489560920726611179191726815882792811013768035102503594621973057299572822758340877383052265583935878920589351903892466188650677837077794873004694213040828643493068170971050873911630002925168969840129400659830860705373145527417495178150648048433074702040650505047254767771262450589925345073761877652505519351511668625802286995340398637470222705506903806121682455735430210655265279186153687185987448705764651378720958183086268317529567440009122997499247514236352903305446229544468581106023450235479684330699436877243772141471191199368697654181247417678289575077004716384979642478129512569887182621712178240584826008632216272206681501602990878683527305942154410103870036939631588750256851428914057119690903076661487223138991092464359944990689694014073466891803522328272207059118886520389646109134295559740969142839379423615324821299294546789440974481806148544628953701065915330072786432678281699675144724450153440206402365354784772434544794521177429238034395952837489247384430664196734506204631458207920710947255701902482208843713122757046236657878283576566173391189474548570291779749604973971753283118363336474997170415469656473853244524578223439475872338698134673203662998659335353094629706113160989435701256510988054742078299345144293709500430227454625423354778427837515598154739662665698851346073665587707900537238490742305331006999676924982553549637089681612542939435838528239950180032442646249339173694017034564330995119337893506641667713694521128478146230480895745165121440298163630832368258162293647938539114057439767944983822496613655456947539579830194955972939158706340888660605744755554345313447294871426942890237956671307646138925152590357017854263944390239922756332906303470622672602277027001074753244185728469552960398985629398290579928518406307838726261951313889662353113662604750173739656223547717157629906196639260164058992563662702842794812004268646625460710547868725003778245622209372364744884405155750990386973496631048232735291627568601784648284782707124346475517882805161401581520956906032330170104117611396343164794895989656816228432057501465959397329790962696942843054395121435286997127175156311220578527708835052694687981070782261180156823430921639481766919641658589415696405196731137072250150199992400201791557372005625057483834534280344439960235137604771498803678717932190793466121200537356025594366226865584564204441868269198621936421684317769211492779722398836242718480623692899655143186343704431430580841070294337684471280748118311390996729837309412893998258233309507177384186059771905789709202354243148014892696691539640463514301838158170280207099832387611916213061002114999477876368228435332256257131976093057922856664412413780697980206325700190856107885648346348011916348739052329614344463737950978609945189591924520511274073066115056714155725756431665493180320054157290284349737342770394892138120164465594093310770831287154726935643983224465207042867425967098203203584587404013063684852180517481365265422551232452776717478234837145824317345068125630512494308250386345159725819587179077950625512753370395440797815915735260074027111136162796653830051346900380536615918026631562871527050076069156611078158775452556093997331316308992769772799924960464343858435992381877425998127291611966563013529002653488236441224303006841396354805291715365404514077451426422815498618020393154719187742608274844430951135591425187238311056679501268848379257624361521118288165345095184447899470532117606328304574684428556111691527327023368937347052350827133491271873826340615586916924560724054518711486751306154968319061752322710014484408896111105741587624303223408248273662730329874189220734564710179656838873154735733289904346440627662073229289046653774171528116222907389308545303489665281534973958362357913854203875792701942285114506045713354578430676401423877416199498347516411260331633936094354160404206346301440880869676984691968668972937789012399295183896332760250266375261596230527978931507636125954530092711466803347604709007982391036263767910243837035920437760144163639172554841501145001548248357499874131054825186712789573012777267400706317296194633963293941202170820288421947413361049147337614450039246401120168706328115070902124962691870186383159969326464887189592279127906537779486743174173261043204935028856084717807450688750475503906805613357951561951709167065179513971146578209100892503185726067765547357558370932099722202133645833035472006007457846464093642568378765434503233548617718726482738046326257867811133506659405843039880883055031949259399920480390677403898227434381325404016533976143090081597344036706876799646431863642299490965123370403296643816536422754663738491339178138266531971411886632946378493744543036765539396144498741297369737946258111200465611511605025668039364362902562973722141678125174498784605146737734325879757450546684064749461996088022682478842118432312028099975993918523974095306033758875001973562948005828698171299397117027626872627927142787023268103042490839142065938497361356780303579041038163600281444412908107638057930473888368213378526150963870020274731616984123787282019449828948484861683111777832726013106367762459230672354590954935188914828245210753113926282504479872524522888599804047700346890783339667725583557416945187170411580300262298290770592100930557107711320821639978197555409836523710024011702560520216359131466135401770466006996655972528861901496834689518547063505975812508551232480675848286261792754127106394144134405706737688666142382530839626321651762106420372941459301323568757820475510147996350844834143780702603011865277325387420587253446812639187025308899891068907166635205615179921932798682986226379292162838626187713837945997540752795030014037777483922030128508520117157197165006554516417770415839969137564141944440384451443149047787154254753834355503955489971129029989969441573322107190077036114250165326083552649012162193853100284639100883482083480607238455189059876269028204651972520582732466217848312451747665119252340529065767229645306175202910952992849465499284130780990546645331723402510005170484469017070709356487700181946084472896358450431817751918621026772274389911821665059549481480847166239299110240414298721999338038651930969779275343569330151255638988721885526699095270922611261628150683107666904585972352398211175244953576806772644353101449195741413341430402169511702098141110437021929286682765654526348129722208555918149078392865961513077484983361611263736312739447685710676996459175687232856378893025010082441696698322036936490494522704161163787726827477519045112921342806654326891196839690498787007786957675687395032270816047517495772296083929448601099646298282480649293042315131421894972251570339268120001525461302335864326547454771653676407997973639659705902634353492574922139984395341526837602533043129388270226704960214410620604542688245638181701013361865088175320739273732047438635891934110618053255168395816993831809958956839573048009885886384738130085469329037314753073134606252957686686897141765159683352537841395616342102156161682821000827496238050146979534432980905506328639068227013295337652112560267137788939089432165881746746254675044211033986827410351596216177123744822907335141768694236112732174049668506157275597729124699487372394638881535460232912409584048697742106190510164112793715277161693912040796598341459822721901960297499090688171552706505805424933046885637516585330602895118559916884790103461438882553100998016350183017880284508098347820309512015433978284610880532804627041347094789603743365872975959041098297152737517998914674686897281546082252300202973519822408936810758173279088107146341415370474907336889988080850940281129209725076143589851388175374401708397332544428843990913263485880544238160265539447937850422862510190970411258797596242230081464439376314942982984770720178662641097567678737241415871366180079502983388921500656811344552505795956374131897779299801589353457347974090901818026270810631093358420994949878582929281799883940727105402171802146759587156889341375625323769612536545921199727363206944177343059945574999269859549320364072908652080086374735101208053169499927053874373718761938508022677369984711363140533444342138193931475826442401866095928335128650822408681548102451367781634471666421484431026461263910554934305352037926600388545095216619706741493884309285938579836442068893483118298124510448263471569380599796054217217371977366494231954152131668326296719180153773581499120582370085695001862184590193462735936353542309154923837893463461919917909412668041839777712326579442541057037901165534230008203917844496351910520213427171029428413316284108879914713256705314526788676357847709111200721204370181301970783767618541795932933887370071064116396073091969957243372887559398581960004728505098413700737681521650966260777689424736551256727445591356056150726189080381845664716830792763735939608940833846182969868648261076474582062885681868630265531249068888952933070046366480826614408502130841227691294444826534358394412569131071015685529857881895620650006780509746583790832187991649672417034502286216989843618248605195683893567557292096112256729365363735815522792837606271852190152938598645523896005492657369707441159362218793343443948341189813020303961993021660616837180023510157162356920446380350224825320612909348077511962508223980512863408244287499259405276167811155422743842339805909756500318913386093494782570867934081620893125964080916967311418869298601688708047851186261566023497996489080687000563632346867233025275131778186942494580592493279529858128633793438200323184913385663063973284927274530311469808578807291465848238994302397151203716143714858225968965765927657635991760286568914443633801241753297799270046537651659182149728075152962692348702304317107679858546914755581815299699847666187408589723988730620397064970050073181683639654571352510970563357346530967159820561558968505943533402422718834969302619347173401849132024507967759914246269645120291581845646214594861268071427353144781772165877233564666464779641952841978965023692049854575929867147172489403415190904931075919072182413437214742550184328666915940644673780991531677934760087419403854939316561872946748005830428691746777068316527483264659822016752669329933826239711660099468083389757721271418649895886803862177468844130082587246300045320505217679415502476388867839579911698156923395790674722547777091135741511586034558843104652353557182310915527941143063251611654694565917885395865766952509180484897825079903014260490366174687002532170039885010339369949730797807055386918690452707317774795613753284244149173072387969908063050306850189098280143577418634596809263809142339936354966520575111198254451696959901131244957804553901710033502112993334225943795452464806100143672658248226316823519454685459969740914498559372469294612406334007235786668080218597531313711916708996709071264364763543771035065553458644673656966201662987048367823657875750871393574324185863311617479968879338916293633003149208470634743660998076147467605206255288239129907382551198886971123043829064002869814129794961592525922719580106059352352741419789716446015011375339542289596444901264643443717124680734968847829651123107999612834857545415401526210499557029087493112243241259104067343252570610924774976311473827083492402218836640380599153589618174304470663171985629544613791324770977911432796789964107981449315031974224024957817394920724714058407838572078675201162696941467335706230132190712131328223229216928522895759179229867612222724613074368976106178569834109230912468612835084744149065919368370262138964642607809431859389422018541008706718745217661567758903313611579518115627995155236382723341948529333000093428254139196228929968645861646628283156299889762412850125867141689653112412695786915571846064781095391340620272974748696593341522496765252281661024761826062917802837258774208470102197727316014467843745710651448394931046171734528349689740946696515496485174926956524732203115340692453828250915202847728166190826339122024266086978390380443761717467403700048640712203863695775800105887505299841301773400543395530852265600732142180346924621117154707571987971044673569587587182735821524058452742948834082543658525299741818972680232354541917795000392556691894051235512258830696665746382540588205320615406200111084791363304878420529699905146228499981973867356187212363937721117164323679623133779797557506151925563703156734134995810642770484337141922731435664410257098902965730216801124627208996848055265116958320633337708815526206534585258268470204730187056303776914810292947981641529529700332873654650806592658151951162467938451000161357564701596289042793027485283931557639570948301149935866644006798619493510172842186108368563369234783721164008918460774307243155737424875497692019092264338803864130991471797804043015538014049526094521782156420806259773794254083330843589037032650186709698971663186247499061389539569394725480100315945020769034622885348861859720484968570243451713655015071938028452414770122447457087030728384173796673843337494484853172171257801185489473121814390475558041065472185826295751497089702739017544090103279601265103175250763813719717162264825015077229558049695631380266896683860676857944246708797104265794635766236350158720183096021045231844922916851815329827469348079535539992095376055669476850247563970123958866800672400452487404567464627976406457578755318583689564649128024307308750874681003546676413347886076212575309854905889740930545062132551755847230005038438461494012460359177233089960730901544568272508276991885107086601287026378636842661909757628390017570627735221552600042944469655606687964295550139614698592100708727289704864503813575331867436974390570449814376162756887486536794630951040249374717181620814979719097836120458053182448872385014095454868501432057356314020514178544051429697353975260657568683487186619905573442966861542519255641515115125173704369183267434676354315479479907260118254744485894275038460487360973960120146118424179977534082210271955606515004957868148272756520404049103512258888464154186216922417530314692765923652535200929849145427816140178689691500863071706882298771194277749420526340702710498838753368578814637266363053027001060986188468557481552045427156396774860010491225016415993326898140256531727152651373491805233474031869936085973563347534082603761645776704346834954773891914870528062596760015634206528054902233424695967509814348419372322780781738956953380704539341915546487460069318567274032935094577325953947751367193265237267342903495343106792400198230715321511666440833674186860180931544464221821282046789449292034298657136738389697032524734727519059783803403746912388643352153473783544299425448728790454836106789144482457202651711453309055882551558193499898124549758336446223835637845053138732651189545369770791841546831871305514472017771374153098291861401223551169642591429127127417117991710560983962835383964416803165673168742181301223296941091321776961126822793230500738697834208317170774462362640600200163392768396003461995103092709093772891029509063439468488104034921933666603638100340912616360457163203081846225360124719224442839501584246568490113950640765386302935751561120698246768334009306858020277963335483301410717639137330559021668193859941173726891104061340342117609413278947535691503585313392056024464983442997091527906650012350507701897324112936200264657821645801166573744231385493515411798193498925665616087514985335292478075453776529414472446601268287908355488096352932288559153950680573417220774421860841944989297896985822176907849178151386419951035932949475175057045150583537017635979200774490059435596467133619718297004655427751338641253534274625292357396310224987227589561781354775378708851987495798312569105588822059179047536240677249302909211872563013804651448412237907630082714907347067981167011529388795702075729736120058668867257069845798065779713807316204606841436163551289913565014503301064141522440715321719219067128944445295824690727347073246023741728046108221278910949141415017283271421095635953681505460557217879325472612072451495952379483571129309452892091488165021050860196563108072318082618744602529318095087324081626752321033676558758125721931198715456807841891427269263252336950101733224674459997765545885771804946057424630439218612201239578809010679753376108441176641330380765906012264309925772862910151359892421810144434628736562256682271086892035676845565923403350712577537305094087391362035679147686794334044359843113260954809546101979906753927995770857085812419694639398958935033645669097109184435703366905831072884721333302350143476668781626077373786080111484578666727535187173473818114466378500994278147312886480859533654999121951241847728249061936045854153630789428361691383778160503075466987892354322925580678696647509530544681272929795401272421239558830588870360875046927765620502100674103346203161155711759844707362603582997444741139058511470797501418017774537885903090072133079611304267330793142889842018198120700377851305567621177260668409695023318537731833226727248355112356359481859798899435708758262876033878242728680415221766119569557388458475816913792644189280194480239774634490535912872936294339384639375379948869847774715517652851229501837500291734964819750730583368264929895398724160148178056532195283526850551081732489657749970268586801416885880828172111709228183526359012424675263819255030570616181794822590724426990469815724531254704495023769700952725032177372332257959000573802407638250878550166751906203472389331587583722711282391834512170116990118534160059344810364279350590805517820290729165957196384614212530470063987217362673121126097919788413858328954986813513375027247930209878856378843725784029042708505314001237178631637218651882951082910908815048726685638233925188811424844514191621410774879061742616000698870169167724534146111629213148807204667492350285646472784442876522135379399304460621899125498568333953429545518291097568847177161218687226960288773974152290177435181717237881442756976677207793870712681167707532725512175350247963593839192731362761299116006901188496810951024741084399205113596672437026276729185982380147790168715368419172601826866809331736768969801107541108320093362521633778589708531368789207064991291054401154166490259049061053824667515334998086579439134988689449996919418827154118085996913281695415145161543395228937170966917229198047925611933565938231943276534576402398969803519206971768332974192328343060154209588884496915169221116344120635650828118243171564937271697732111450861565789253400231798522447450663082763536493789655725878861364920221886953040785848045666002558141683468098794845892809377465302211779766429269918435400002748501657990503799307185466403162371341284764957214563959540513431349746914718643522848109681577629687133472715262612389047916145736437040437521061649323747655000910913560929326509530472274431057320678265521473752545518785091893682802332525141339686438406547664238262289850408450981035604271851213333404188303824393518147402614461196927175901518122470363186554684269390604729665316846732370870657472567984557529813895022895819794346239312852020125491610867585146521387776268142552691278694918622215550838050146578317430072961652787060619731914297721463959506336098746246034403237674952084508014857026523350874773814833127999334855131776030053499288421727904139370226987652056685730352653973361497862342716567791743407065560157771861338806891828550710947601070655517119750632795542801910693194535822774008111306369722759825932948468049782870356709631670318965831079111123026005002422479428632748387006615686897536152550924837928305328721063776591292509164687020170747411813766584715866524593588893936041997847038079388946794589531274915607409064305970388932213454058479820561786841065205873055102502922203333586040619170844687854070887974901153079818768048865534210786225477543362411453679970879187981869657853632993693396760155786773408782351281331081505673091787593769556435468596259667384685320642646912985492140158345539934807495353663138193244105757556410649666923753900150308690525154840746606201966866294235938590488454975535884993843434606073523371260120634983930545995983489530346558072450040474279417761185124883242912406929129438660441070051889793610358535370249615499610723612967841746596223324595103380629044800615101000591902600849283974148510567198307616371837123124395673295736357770470980944957419396644458066460770417851566280334461526413512514134136040603983202020345217928031202622997492024342409471218602717904627113583774862233463140582689093838125634570511588811524379451926952778480763600281543136958166738454580665414975773911033257862017933323355260212601864184075144782452738738911115148382975947733909448300905416313120835086263278113156906501966162668351393006325562566365807697401606032990025176005296141347956019585724429290700479434271123348105364064900700633175249685230365783880977462165369693556896259065222795326303207801453288302403043274482650838299287386949165655479976507147348062614031370738771504488703065357752064398062803747163249194560058380458869253792164122658030607793676191592026535412785944039780949337729679998876332454862136049419135712081470324153725469724508764063931754092641596740856137508092188716449783347523831089190577353052475763718163345180689348045948062346579106080695542678613663074130884337824188625572376561829128546355062441583399186044847768910079672148072039532107120677027608281215000238430381876501422670834299227138734032779599418288413182219932646337111604389193345034641902870012786067837614526296004429461171721083336207288824671641979995470659777668244504035130680100815165418398733892042567454740539987633938106573602692175786653765257890304536483870214905827650535194720615456243815518998799170897757080612606770707857969101125846662800982214029821665175939653534101058724269005411266610408792826292441423248747152012373593160406421396587502125028215312099066519945359512969845606992677467337679844138849120770042568396474313812407957373207721030494489027367424469362490399742150287348388250365790397084449091682815601459892131594807680157886100322560191942209893522894887709968283601248661752490572708094586473821157501865488856716509011280288517602614874088277262999587730321033315326617800496919271119509669404848590758562628883249407926243596125005272092104217183978414079575962071251639651470093232431828916044461129180077855216531422107386432020599394282722411426663817041176797726810728344975215310448707868990858182386977863390932766511898753359928948851682078042077315356014604690291124581988994553560065422439770337652186748172004535533177136129023720285391247385670696376716430259445529919995785877118245422299173717734493245302459845592411950458083112028814451479365043604855226365638065641319865577001105829986399870732014358578549734482596975804897605688646411645087782765766959373376910587195030311760271900601917513353655680952516000740591628225105016048595825942624394978041856109860916351777387755040184014459001027297626255715423756858557387061957458660699613182166166719169859426533568739778087600055937614815459362615457340345556957943497634422132839186523215613410525356681815941601990755972401542139289513937895651829150626842122098038774610271007716744058520485470771797841961122063240939415511029617557145152006103208217368518836989259215701965345984085336685405059877897858211490606986426229621104106113543327657561269880463083432284939953674732425951628125643909070975592019228972948436855775661427147192624557690848768604166279247466372641366665538461519094544805755745561592199077169996920049968360999763265865548812577622362286214757655406265701753217054008715383608505171841950535341800516256339921241486559616990628521413682156522847776460427795040206184702287768148064432965073649555221732257511758203553291291383830188705220642083859719311512027602431277985803125849585456015355413075253061535795376351268321959964222206117834774837017382295465909763373484669461413176420807494957008737035786891615979005576327046564599177443931674728534674279694817140510196261871321493322762333389876803561936285319098350984654042139375979232387127080464839507420211168257497407097582515320278233210803564822779057012652807682090493679434966662294445086175960335686068162067369383231772057416525234142820254990908610325622114396502850585609869958591041796882997237039212444893036902240136278856073070564005187951156506790478591544662629847707453350204059014109383133740968331048772674515937013906485687834374937838257793400066805758058959469174620041390348416134383481178710645650878670003359558273229001606245673263480082850450376474512750294041615787132508440317697332284737231656570011159450561484673083681153444699154361000584624632596152621949522751473262141356211260695428247985008150371284063319575767468893881475254506913809794202115873336671638227837300333100033412396241613582461580789237707198352436378697591518096986950834202146203393398301642554974681524309607560697014379751143703577690189388782505569140583347352032490601658269289099925197687011270268723125676473244747607344600159972310675294266109307197415436856994857610991821832448658077103532541255900640147598531177841281464809308951824218893951856239446850106635464287107897954093995036995227381409157326151632494913205381033125213449452235290742040030870198383591574981943304199391480088497060895077855144146775786659224830335806947010599026666994340698752118835843510120101080350708994969015944602971057161526165938091365287216347392350236097293328207642781337135848446251920538008426061991024740818449744374223971436668524435267151786468106805044669571925538301221432665378941080645529707816239940266130825486542242443702354816436465049286431249401912851186294196651168681105448530137795039667518909520447518199994195168007741781133296296577760470326065129910592531783069593930655123700030021164579708456709952930514920277672499400030397931429921894186582478271972763018128593624898847275458961106384793202494827706615998241389082619445025022379078361987473282141810300178110643464905296586472526755632342123562890481954667716280242420307147319945883009766465428196053662292369907491062855205960510508524544231057830004611849979688629863047485770381250445447600251002829028527684139675324429634380881572049648964121318718884474675351387142163761346656324035249677111161639075293377513796053729257614759072983916941858030406731522161386300757038748659187314829294036153936942202612182315533926745302569288596011158192669565177227771181285467518552889091645418424540745409510266853067513588185438513877553482750213496989863745945959434229103631288757032413312460047398780886388789984744458767886458437383521249763327429030893459024449086603118705950141555987666689533540826091329049038493302977426098007245437764347870321906115216970120807825507358279353883279888261860067495041481764194286778747539798409708008951646153668395163897607240100309657082119332457005192752272020547294092899099335082099509444153286214167904592722413478725222849906278262085582246492482541416173478919481687124907503362786985373679726928174167081389330937054064671798182559043090012610356999656313454358381256794206258080712441156714206260267344324979951645571131775094560766697466959699302992409660073469070910326679389063741146196190041746696170598926418055664874482481943317436549466407321484735729565937539511559001575213059382648810045204759523638951326435544198165700110139707285111639854414404518056478367966865346750538422945546987618625549526961176232781793572334380301044523389835639560451463777145169669869474375519244337835077895911462149464576638405714882399930554788891214581505599765466173627392739593251185609716983840939142055386215224916684460191159043746406192488291885407358217202260820772150543945856030403691824603402399453210347548728567393227127870449403377110172932724306909180737776312707861716377262261475209877868722567734579287494395470485122101804963251689849243529896826273728930962356729500690555417270087021811646115758870219292182106068401495300491429257825736094348631356204099209281376155816026080333255842150398722119426909389349420515147726573796434711003480686356246228640005619589032190890542052748528802014955018030014557548196746899781270429001082575858678216010882941446120515981130652059551231797702095965242884796906469291358743050108030164007732926344806504380364910240996556105727997893059633794400892964677229280805569127502646507749167511068465798290951333908122477892036205957436855406003173191527016889858821231168164530369533982475344058163792413698880918363772081981413884285552911666013026578267756467895973078013262485920054248720377136414650002363060243013601868390548144529541750805404564523471407745204797613841359478291528329223462487221532151898484644907063552178157717987828327668221287425818216810635240864376438990780794540844485111896208605943363013351081933593705905119124323257269138601693434060184240187484131757861845092294150265837152313677735585972931296668463099459549801634141353532754107292430870832502234291460492329422114981962347624977781603728087451160326936975201345486360682958294792451981620294466663153228943087349709597591305566816167497854908591218982011404291258333554834243899498658835590456901551986057494506964097296332291558492205774170935404229261146674197922336928023890858895564447791454652454425816312651751024060813765413772991845246942790364240852889822482956118706981963892409537961956052350170937065354525746919801195432479562600007051224535813323086945940073393819647172131136014725120000183963448245904691079273551419269726563516356569994559480693033718956737750020316156639388127342861111039342100186953847625649213491590092737625483596936227068342438509989686690083275804496011739879025867511900314388991781016076445069613953152370631554599363410151222206204652094394187274410863659539965717876608444174165689979568961853390984514926589464756766420099680967689927144503285439986249242269183798673245021593475742449343715094987687250785784705620603472229192593762917678035992098481402237332203635294076603794516356981166141935516259359948854490771131481529842115824224972139708141049195170992717854523768833860892358508557102686940254368661134012175128413623861195623759356044384649039518058325396747705250215639101141429214802011904899129729324383937202832984140113252977045487841542590072244022799879973433232791107938005971369272604151914066728467262697881785652074830501443279209882999100636552183788812576878247100530907280411526710935811831917821905453182791802828237560940803135810343004616459155462745943130449120604538451639998657267429000103531198964676564579674526012900003141724716913507495959669311113701048709111591450747654177208518240757422213938346381346799033243406782170548728344901331248121600294174988487677669306088985455414756887374618916891862020726108522809400165031782724542779963316996804528245185688786045123760047400606644761193818360088059493044761095984868014188979769999039007029396170965375598777166744146775732956100962488380641072665246277802328035395526514862909604012977596385587656131186876428160247055198203259933793567810193041561602241664680507523637679964419331175494624287769367290804754702839108099030628891011520648956625853063734975542938974938920893192974411663409230765796148539591609045040556350516464888203892202464081087378525178289312683182919606652587152307912909132859135456101885707976658946966715651002672192009651141817713261946177637511845114512707882489792003504050215789094011254892272307737174399562975257978189811351290880700821142895597465318830765715786040401432711546666747293029125169108275534934452678531889431696417421427078908865169604301766903641897649758745312466915103100709777758232059623532344249140113653811727384382940649926810819396138972814548688565451882431960424332299061321209295240242054350120375281404840405093944898903517164939754781737510984539596083142373929926486913766914407769539779103387311875580118019216854635425972064549335707470292914874814959116639436666665593993306356205835393945062060447496080466077210226057961853964339030649355143473617232219387079910999365140783739122564094594007177281230088197795353674018571709433958995998686717597131384456260317045414265605740005881555615295109872001854164893904036469839704470587496043237415128693952817427732070853983979669132065006058674021278660964611677620048161758488675483089836478582064421125726536598899941369583947951146180095666572271467638940253612077995743965087098191859877926671386797675610162918291442246872693148529201650671257598277053095927860162804360594333742510153920865899441168246164110922828776774982714885239842288019939594498654160906778385397607470436725728085972765145768521302930221576967436961985504067831779507085185584356433293009632841782436678722621415557409929510765326163847680536228678641682227503229194522651920737413378709507143872990115380004816959901433705991403582754330491291533842849510664808823201659893578378944381896937319038805020850512552806007782389072569864511945032749710188608289031057650986107042107673397818103755567531481205052345382228069561287543374325148663837931838875215089745559054107096058707426088376424660131131648931894840663307076869341161163887040615010161080900634836215389434220605324480545033767137977145668293195281230922079508680828042370244833025599900825275695387206492671031366424689311536617542859592463864980822098907474751958282228374505817165131848512803065993405033306052463241433008142349247210186354705663574909359112787865455856820803612038704278675842219044794446505594324891062253137815688804078047129078853940276045970221472079251954453832646290532790518625509582529468400872576429442847045963108925944371249963799302560116276074245631613416135966355783822978181303488744228286290905087534790980428693042012570204627663505571530370206272163071390184375462590846304622556015721222395435247050758464336621270902475441971334799669081348734886823208005748863674183641427527804385028489142288273889787361018444674095962283882962208851580507142143120400004193382333625472538525254747991296716516832105814435965492549215699032353574955309220394652471884634027307627254475798416033165797334085890661459318406970703167173200365093583645893057408330265089687444998648643376364866149891852160542943383393278109876289956451130752380463222359047979169661797080163262446482921765224906691787278107373761144083467142102613729508565634279697916837693811985942318787655198470023054681964351325607395178956174158135387370107251928197990180342552756674021504030210484361709660744332110907284306590167502285187023995695011958160347710662344944955317915464796249843162538994764274728369138192905379323557059141006143935140038515770750742268671611891962760121221044154604507484982096956193925096078705477412675366638350524493120804912015878911315154436984058394375527673546880289072964200217495641421913303569750651668159480443278901859507483512448154534940105501327815876420303437306562344672163932208641979596995180264371284796375956255082949978859839011558006253125800596062689896246379240732077428136678152036995049062766437590932085467707087132642321487345762420495377411686908700383603864300953923668341508170428038457287904940238600875265099312336370840884914494140823750025070663870130485263138991370067736294408281105077591992695838844986913559964796039361693501779826831077986440524304447597709824910050837933844475976822929673449550887362170612443517816677600039106216004529390096184128170141022577015376103747886649619849217631608188973415436051612473803279465653253951828414079677724088812390664283862614942648594128517945988954656733402835405395255599961169510911241031656097765891749224092570008687076989337706034390917079741741771657456248800303886920768086180026674378222980815110097654191266296409835861564117577431418300581035807359514397207519388297415300272529121470731333243665086163889736772210760518846341646802214200057537140423368430881199690209329635433968771802408854801197261219732421965376635474967650597490597680603120171892783951355134997399787634090064968944589963241812216369876843990072378425068648193294855567143490015491989659966121732874364121169078227948507415318470353358136450988826319809956096297917137582018559583248491215602485573163224251431854151524733734638412124611825005557317266774779150520558441425086558041640726745933681024742744442984248880938437884267230689151769811593006255813988665263684683749822926813692163851306993629138784758242384569507101175245346706612713718884473550627802258972987551031465210532459586037565813804904433791447862396122064226310907763401162155273648828229506788714928428961324265504255672944018862577191015868087760832350568578388429733072508779269513446182566495180505825775625015190122463943808362041135030422171486359387171672302532123744230827851445168590296884208266826412571995003450826816936024643784871719143332082936775861191842679637133523796033033391794921062765714182762748958214949504247781162687118096928336863461497068717730200160269778992433394494402965496980146953573686685691534571412440791574371836579059313562934500944294279237472586900646383905014353095373984481279129963446662167177099031946807385285329753564142741054573653093629585621451839494592520574198037796524607047432048381763467321562332106816234531004044116000692968350094433211372797429735365253954130602091571172906714139473052117311169808840180652598160703430367218362076427213682868918461926629748620078025769553068662269653318346871763436891777070133175272748060300879219136201335364750900620335963561956000363127976485739135129003073011105101222410866738423274200527317222177755627166708660645034381698771824827454171659794059016938113612528131032846825740049924669585333500125887755822462602571214199214792072024891090916545471785113705830952546351530319828055536556168496002271613372052223935774760641337583415782551996246212902367685870458357123245925854030804716768356564453674062025409278520049599937840078042650302072683610289534335561879292247592814504516112459943538868178690503794901465837747106160890128810576561836598507716063041098377492774356499415020607572821444247087872309654916769942182074396272320807493969590823379476746525737654774581001547970941006939179038212087557481985820763805737946735945493966819332535330160784759083862917411008721110080863279689840848737489559891157662137967708286362962792604640784103818901314794778905260195395043231795362625144836726857118914683543853539461623611242365108372372950078387213378121827222071240758168261790901488154279763847576702183573228155985553042981412412963042030606251900998746884686691735426747426641953151148187243453149797643323446581292841027896313679203794193141532845161543571572978684679979073298588538783923859300660354785129125611749973543684467970499308496679187982189633812506090210222049277956501462075500430337515996891727275306177188556588970832010255113678741881447574149567088528904565993668298889957695677244149970005637352230892206649935751221551745943890372007380661724091404506205989069111723608279529811830572309447031365102540539315987229435973140829694430013935038592565449307101627131039903253752007029668152436289765608235706574466032699707962356656052739496318066772496651429275832501131267344738420252578844475840624253345763374296608334142653242016981847715479683357580037338201632460332992177609119500360727534040563726603328075253078171157262652966104688504876514987357405910666367599971243628252094867193035885773811303016978589075500474722026328524600055041185467276975646898354281054081640224689650140137333618374033996724249537549895116290007760127446633658961408297748708838249193783512084141702505090521571912058434236898608043790295471488395603059135422085973889321763054589692922381601288628980809364590322318546125723326299770890098605246481790297351622931150235718950144663870943663730957853179192716195381207671264884425377685083836228875978778031970092102464281587907713194005505792679253493028022166131968241802058768823386444018708866667062958979493306704182456627755656315987455930367403939449157086281833666942403383986102860367313111934306040047060359835405556021179039284881050212199781346267834551322249263322922530785003006246594451936367515150087947121708686683246262565709047765397986113411677146296716987380471311166222081969191856641876045296282811788512957821477806284143392782170807213677581102901254644027205443127225177170859316821603238970217172267408134867630530231223987116849911979412166455922401137002414577454565241776158492008585989529116505527136654447557542504396250525721226661753312172631003174794499156488881996777067579285942537984206591486879862228033015045958619495193798418869278250920726681855182927706221643114688613968935989066814810674256812282020605944738328045164798174840070863714209029535728158876574104433243149224606193957809973955880523294435746425546374812652146616258357943135256744578838617183442987655417310567083811885116673278742383764612564710473903043457608576231663566692969314496715221573165298558323779529775694780993086280411957937406935549145442170400647875360054255653281587411677326618750574743804837439261417508508092497845461499187206837799355451651805175034088161351771419450892630470646409708503937592260796205957262523717131805691829860182567818720450278934400940432913872748546961540947762633261264514060116182447515041460946753540096142600031536177605455084028189949995146837271281860626238992247898244460311471459496501090314899467210744016925299946127030588324464308618081012350977908337972298789484075700374767703947544663652366668266667130537583600561480141759151427463645843210114141874271844358570183328134977978390723461790745172645135459625135542480455381314753669072462847459400272595652472902831389225542785176382301396910676959035601900946245927510506006767832345778915141200559743212829286394679639050896847089936769392757924938819906604552170689976923023875421727384013700809812574386768086875114007511362199567400087651593101732442631035288158495046051982154943320823312163071619991659760750816452752473926487302389709038603183433671539190911988210861321224445211187738442281488060136493312749137769384395078168209842715907286014394959014936713026085053723960937599412483079170578131602265299755135422748605282208262309359996123498440407582687400436816351348607251314262510362765815470284390906230432901668623731496571669533055323595504652955972947447790652807014619419662989843492217753500686519296828377082635701597507950081646729052161744912067970601159378783507698526960040215467733175727330018721124329716430538301303870756556175505874385198598482568553014584263490582986997619209416544738998007707707667632237833405264732644486457112114686379858618506384243580365200876043658666122913489299049179230875781080317712758940631825241330139253172451926219777225761460139746554990196856354016081583101651799004395104541423150307514136441960569040929554834884609220444903245295516952293171664430083646288728813130743779534892274107349191355826276638982812734667061526125071317331503524958509864949321434126558156562313376131669816946034341655232475520118096960298610568139173978311224339222477337247472216519646557980095011896949836523199187260583945397367444383197026879113733958382386004210508091717161539826862476445014203237197800233397923754311755584218421548510369064195240876034301575208051379513828732386591325994877204233696292188786942048386425410340577219771551541564240345987595244236866514016221978482222689384919670412982777030663020136600888913904074638210897876207815470387613988091007317060761972966498719893402496854677200695227825614007104869836223731038433714198084637168153106222721861297517482665381636691391198953900852949602687980529728167839547120649995054904949631334200873095710877850518737428536623627642846439065602232231199665893647069381960849279556484573296301105397594785860015364543172298577249919437709082178842973018055334923850674998463989936462265627557327545065713914156161229264906781645306623774519164573274281656851909623849163033508169470094950187550006929761490616184128027743672943638125680587677822567096122811830469406489835955695872488411042389863973203594366999098173703778337258555399992121613460498578427208201887331381807969136906193348176024064200868422927820936773233273706188409763719645921972398083509071673924298127517771600889983178486348860479497481870027104288055677151117071164725029947959231568573598592116553831297674389172884867830050033334114259197334682274427715752341460284107709672321178284073203280789399601078323299041940246451613645542694986445069209864147191177298791608799977418243900135041652826425564693567645774936539453904983023239811375856364557027424743750850044332159079881528406122737457585091561746121728400734648710645099120737804279294814429982929362477206214433259307067504485254735304172263445716239438931527647874513372755768798956615997325948769167499032012887502563966863111906724775040381745740768974368514213027317976977002000191685527610849025779654834372662897328285339779805477443855001785105152213591357103760482484074888007556136915129559682504136021992413557167712214253601289891412615159923435779438922931897808512651529848293088194425653008722983872530663338124475351136621654600213898932058870062892651709831071617299223085244625062141903449803733544024276721420868798329423535443269909172539558044628537373746018736211755741127970697879560742216255419387168652474561735255481904653265333808160086222160986452632285935830116774156807227512802964999933934635267077640635366573485067726435446700555570451677876194205414583480567607380780892501242512290406748520345019760317448052107779052098415746265439096767040557885115169684645476821235912270288010987494406135641475181885294498341207495913553429811575481534934776959144648459463221485811680744877796496034098368024263453803235299637891024099428233120087356463084063537954266080887011589552891606125067953552908305678735771613235741134971152375888321718973397476258676082936180630542139380239449678142725592941179686883439881227682077078407720642419522610111846949952078953239497214606023589031941178486458643713478673093060704188898544927444572856702238441503693201630567479126532669343163891993443720249968410649198258248287200269611747813630247828462275958367338573387241003361972801911484617169932738222280101327371596777357391246849074977217758723436856192347830971666743919747913812327083073827180729413893095687651349858658005728233021171327144351791834256473641560088978072028566179763848705888684956322170519056462796944213524060729026131501041871545580841289232327326288396075978055551551596167168144014689727540456135817196130364364513116008139937986631500428510626775850217905291735633115592180674492388681019783507258821397957857698346881068178188659127701583276306599177489964335923817225978207101699369191208939160432771297534198497494063253678777504647441411605686963007307462705483193981714727236380839428246087352082379921457742877623738241887335950662751652139443300109436332160318867437879338406842599254442137543315224060061997101238496412530265247877214314199734831890890308926706632947376423973361016507637360714537640402711528377461612033694501909901284488283624862442298146337428073241030616759599332958828711246088989051350300210278823247799637759692706387292819138102311688904382171818939182164426711501135475733134189139769098869467033670950277698783345159958933812990717477668544817336523780454643460663600453824118181451336424299168304110360154505071837538859046633812624604817518056943041960605507658068821652365411611019430430599051815037919144515647231411099906508736108754405428653308649057337237339727835171701529014240095182178420823755519507876679959539709855258934147788966967695978068990226520969209932534138840206206003389766340428526080907989582701316001707047291719397345338517315023385895049160615688169525826239516985157530115377073925034335816510072591582898568961265936616294219217620603124093900897075702251407031027046969970341032845547121289962809743035528575309179160679826356848559596308172680567079955278746099965542553522113081962863586929404444878571900410599631334217306229483008850456689324336009890996599857421216631086172225219083254783567742661140628197656808648538364139356299691160786502827586695403195841681348086415408017963742554709077987486867784437042571200679227067338585005689520595292806097224746837018388721028566243960660979147451220755543850361763304172622396349900370136385548693214533355669608155320328501086627197790319707522761501504029578008410697519869832126005499029240903288724247862809558517530418107879521027229914033176095620492316394106960236475265871424681746019072447548681279176518376177093217722360524960607459892269085933717970558509982542433573983818675129970022056409214354614999089976816663072876747987283055047956532295258329729807766944431673010854419624809551450095084683614702300866866950317405688476286278714973819128697710456846534551863553109094612621436557034618651537885111073266041245927140407860337695482988790342751807628258252574570187096966539994759197751812131414113729215684583608275500744106006631095953311087861377352367851289062666486128417149840862148471834011144255386061442286909594373298043010478689356143103454565977938002860502431773212345348548090313892225878742754667443855431195862272125781722235283170408506312816137239914698039189897421507514692036363883211213672275278856508316594342801783771362266722376394730172779160955626085084534858378385034242621809084641917616768612164551350528536640660831903514610097416637987950955848474548665272907413311533111516353760736543368089033151047010209040559568569894596679093760179788351209368398421191702675724908387114808810373196902151107528001143704220526826128139168532698321248089682392528882857629587770198509008105939872969580615191289625908670449448117874176346160552603245811467854950798116225673281506153484138895178254001153461069116066597587528795235505124897987762505845170664046700797595514516819952135801234819283644221868689819471968346778390138665621766245444620618512548944233234514879486143699010722116273541550536103792975069927438669143180703371350289420604514755764029111827903673901396324265676225191375231201098195074295489557693627545235622652814907167757784715819782870114067629800695411235362352823513973281624030212415068268301663700431470088052705614352055060148650410132578585552242207986768657179686652991134795981549907484051239918901411557760799500557505138618658448312553392932163817830628377264030118224389093620552851833427138788697768798309130441280337569035383199296951033086829040354765187115167443691808774798236626389962746756001499514415560747424034034177161755805000887703903276267987681970799713993747965156686574740067338065395864289452343318759544095499389465776552571934387944601696463367529591263741442995915108189697792902715486791118607463772876380661596403851599134848574528762688753178662940423295030472418562449065491428834129480393191002046368228479937499714830724867934385414326004533535935501011208354291345669300002861363733649212127033747237469486811097591087889207501285053083434188631948379825025925804113832362239990750837774940798771586237547877564389339429215402076340039363435449451972993318046198241873640306232262220538972681127595082243191467293927805365710790582071795315670711892843328064090605214754382134788891044755637485747730315052451365879747429100937853114081946183382637565125886540474980894498791276365722388008983177340732720664693107054337761081630505671937983290858126291632096769122342140361866571065102563580452001434462761490863164681829316840754296595044681599064994515584647409154933577626316961532529105593395796166309555581153772213508380477553954164466218239382895329584928023546658423981105662546693484336472489158453510569766803332440738249937992247595657328017741996104982776998516839105074483050844846602432631232863496338232604844943648940229370793387781849590836972561843569318565544637998724985834198345757001102096890637025738199158079196576674498105588917349337477797953703402163697636110417884886916116909742284905236360115945520506449123535793779266490707069186250808979787967910512174486482816509388298880102467630088499123315461748358144805536366692532724111131100735272519974307265157113857718324994326227640669260165024915175897398533081458528850190773041544097284405114349486567417430150238695444807507681526696414382039626498780587644196883671924564427785374856448236199143962313667949219779129156129086580225041315388608262946453350039573067207647654823613345237857388508652951178731911198576871696024390160559229228088470119180553158276318082469006968683998806101029704643628905454597031524193277819376600208833665960444811855048407544604679826876785328080139746794779039016536763968665494506145736472758802930848031250137365003987056893099374190078819191879213974016064054147656160541719109069711348260961624452298136182676768095149884250543618568427013505259764530590093061532089992473312775082518676314763437201035840426800465271655480329845713291445456081672369538043012708833138741087021111409842612991660593110950321227868523850685837175540541973971155208063492153942133956676985890672110738159031936464755984730405339226487404428060840383382729025891071199839047682096078803458229897015755204610627555342086111038143082811108957881607570182157951710460030179796409054529791713909615610368152289946323880192703939009081100927193899801487749906253794407862532697899878443119650498501716910997146576276894690463387598699613272665977718211714034394850241003108196482475429674528171274370461557453616763447974415506019777628649821646466888064229810112093234612036511579225203725062632016765491872654512766378069563673194156219942317074437791120263983365501525274814906355468293117649353128435172807872776286938411073059256386368484990652564355204298919128682363059846495196146452354784813125921980969424689520455877015957396708362507300439637518146454620094617146488834242217146202706796833650577789031958124699468394705938878798326178059179718635827671296563859324391410473338973179491153220109162839359066133390063521726882839881419594456280081823110572895155614419858865502538523677641648299190494841089016332215125324910437736852137544287334367592762522868851506656866530859999352842093437022801738231996077904252747028962781935195977363127305085771944040277541759350417566314960339937059654589863774765338195994162246732871881999761316830439905755262250898109525794260256538902311092550018054761364152106282347492554465134918487654396716415013888876563750158418315738248727100469849183040398372677888341513781525111196241138449286946159334342290596169543245519909082115126319461949452011259715329038391042062940706151596908579485741325207509101901946583116156278746359138804331263079318309694616875850932596319090470672266967369261156350644644492632469327503999903913289344456671619995193131140127892373949837555411354395494197824535886484307391871987485791474303127830232333443776340225618468966306934203385367778713320506042046258215027393028896360128385626837294762861719329975606373939099253503575994438972021871986573992223211080936564357335989423726903264859937088652705395834792943427498769919875522917585858576737408568367241473800507910330300086854195038709633304461933371942582709242845759485833289888171785872248309555255939555968288437726097229825309134654900742055729230860880555324433358820134388573780103683110839419858833365685045311086591237110519599369599456110171688405356339317186892392639588995619356845018966659049842614239216487252148001305695615599400957846819723369466502680189765369963302812845793192003833347196623297936113307525098974075118777813623606019255386532671194979013730113472443686672129839239977504714747819102472284542158920046929198915861932437416630140243434559161710074178373344412907603785259186275777777749343580152754940154264463406478206328989078359815985016982396725570778871002696056607719374589810111140393437520702396752827888643844006284656001081689112456239326621835636102994355545760259118435038685792819518028613515989158569465474390382605135907607075469847637572643705366440165466050091793300073300431281837201065504138749017605401353291510641102829694830926711902926830531295683591160338484564943603912047264353777915622425636798786943758904808317364705906797789469963900573040685062261510442704161029195709125013126852486906447875416790650831046892362924356665312009263787620960272730642711165968712872413697476518775432409088595706361236336054276471439669443589700816778957609771970839454366053646443113691010778896072388854449696960638749573530935819426223663927171803171961100620172641147967366215849948260263092161000702805890304724186434076977707586883455748899159507490054263525087582535426538170040392573282597828228478583386746481936771749072676371023260036442707999793115357826864988692172523043945814577731011451838558297131089314742070299300147057383786951204060332530833417049890774029467997399348665323379807248633979158888686539200200422565550415236080057806254215291449057323424793143765976237770549564971023898757229575425851061778519547139440409827148967840204226533831500319158112026869441038534383005021796128525214650787214337904821793758618412466135590463606474932681836092247165763117228821576914912651733158149879404670207029580090616003669607801533485189731775885032041014248302490568574619637187905287323164831401741172927045097991729076667584678987595961052259605539879926334125206628715050489440203616541507391424359595380102657152824091028803607361357830088182364765128684859611581234592801286364711626852142361722224537111301492442051711479554989810808592942375813347079094505408374595292109436091897553168619782362835320977633362516233156205351532013773279561354383581984844182399951519706055145788011449449651293001853926113125174356007101993545158555391212652179029210647309512430018578655464855311487893511245224407943223379999899448108869767764956935807699531343330185521173838674079654954167691409205363041284168181463832476555342500298606044535825169593692927398260422799462305124215020819095865939702300188696999753884329263501352000584265651188959377983561362873894437518569354942159348778468708019755770738357416131231343826506717378989891733090329832290223066475315173445173498658927263734402919221463455154295980612612972216548590419073595454112472186471528936372975106447253537729375537900000911883709393933322249679654172907846346894716666877446468264777159490997008264762986519754931894361256882779417593284611645904098274425538936726577548164245866963732882940485217034823512143645954470718529956623191188638467159245047429494165878596512539960813238862325578049326053618159345672464509768818438092570444279768285626358561877934615645774764051410848506479395861821273638557213928908311118811940473787325015034449001509031484847357048659667287288994299725660961632566860618887285180415637019573806660988462956247806638746720363545839121459015422515526570082768414198125375411888078702841463391272786805774938707648576370858647342874452395041753812483328822097686218605184767629291125587005008621656620411563280430511315921552158331793521556269521614491785518246302534084123922616290023787967653236973946177627164486581090382311266134413622235368244162888433557438698487343207842878016072539291917092482008772309721647877150624690379986197161509653512908458885027581211044337345562870304993162945555248967990369371354495363921860166305134034160010325024008860123059758549514657967713109587415233782099075433572614573016807772694208106727398582607502320541148093293140837627630404786314968376385934711253014607390083887548759194813312858000045402712634566506355207084496783766212341587729449273493912536196266345033302624229253101425033406564540833125152735117901784065805469444777395533220058137062559237713238536633238270621696982350120201112491292793082065014077850262675921037049547853132468621716748551835961087697479934875347583977859844924394093054046689608359794603042878776023310495045501987671740583482192014099710837583522393884809103119895449965575196014282312423218562089193684728710822001519599934773209418846516719909687443982513739350798734704637898865271911311110732479513587415142947744363922886486762477499689470709475760991785684243309518411008717155847386507010296165423693081099150441922715603245222417461257114495394091417551415919801973834637657942765161659853081711489130658573372595516313121941472837170957697276617988948626861569602397620265395274740550955540586015956073737186579856150294451346308269214817112575386693474173722193585166289062527954497521721805185211909259511371545988689632887734467108221209593718999069996191427827711726846535096668259581492498823658314049264414798444590731102536049390617471683873423161931601891734259269730313916083244644007350393699440360919824035442104625759106834432228603586737028319474901867238243054474079619953484573591904039019132755200694889768346997726608561675401911265448873855914426974715150713275368466320163471785731787421757894191693229046135479109266881298278149689892119637643951178186065955911027149861777687758916588038883882356552716771430850566401549915996493817368730687353907999197569821528982451460883783930124999789495527298026382045651523616621565180770436747027961493636302839612125984277351902849936915379097825489363162718597605799035947130597829475183961207736677972591870243655403698378998481355912409037584922796578975344105305227197808491809687056986130315852341393489663130808025327178668276519926956808130912809027183979121376094347423937082763060027004314672357013132785491362567850584723634977989901979722887019262404439195154844382656823993260298465990054322170753631179968616725214479560512461577834246033902960989562931976373409461405048013221784592799071948867830005553931569410335768486101270827257912790427846361554061822525150126326535795705337495205006313598700003836765336292615012589146663979172714104354216606098384009590827797516616621619490748017279888043183422269133304925090856161622302207045259617144426329177155237393144874287076214518400508416980377311438993272211082327422908163182065198770077470148609834051290702891472528730928742899774310431906684376211499304462288215381540184096971761781026788234798321287840841907913634361297944047740566476335604185459217174584049825329705745939697837547334024027723966424126793486464874902125595831741198224504695942796786715608358938930084905558962123785457797983276264640033675199138802073224469146326318232374160584697104408760591294925541631641647682648647213905426397797487351123039660415997366213334221844468139524533522574922881578349921002140852574724444687742953291299047676976485161867927610115258946331507318607351760698508376898080898946828550702956989870679177786486705810308903112302590692726044462394465827091921610163902613226664154056525821398599677091380827234668152319858441906699255938676089409669086847303792588109968147400466734116022311660295587564730229206776847748727704629177163180198039777102626670526051311810756383778616729300659446919150521777353881965578383797872345273018157021930009894831737229426149999967879799263524910063430374463533041277690093570011164689606326162837938298602498789612921296961067084997949871287925816722408448318403105242431570723911216989978096576131290872531883352695477688761777260958551695058969234142306876912522801590939590573546779591427824235750390475315728831359511536922968056558535467898901946950154054313053095652823801459587663511594630649824294520699238532664491414508265101304867988337301963402464509383701603922653945072135628895777515949977151431578304789413632902435067878275912205910738143719236152986961980477257208995465656225218922538130412460119395773479011199172769552694179593206182492925038735154151587481828819437738626332737521076071192971541121455466855738911512469250844296783917377650534297014947108162903878333663428517823835576610115467113933805051683493869649968277316106650095581517346983357959045954458711597151187601285079509497096420353806200234472407672703333989321136064863498671294388988516498027727640277299391536828895722266195507099561688577264034646438122534385317079762803307387683282345743132589037198431517207028834916259891912022019025314465486100446072968104112739239858266514179022106431336790973092719657704430953232797953203639395156278252294957140364674783884858866700986908722319353073424284958112526402909483924462466069894607104060425833451938237089190596914130343695443871755363360721050794299059980674032680490515093005284820576486446293724867020981811622041159505206098807431374318265515014507137845491022758058004002871786959074625824132302093065428282714842097076196245518298505921032087075920704116791488035827998768066238278537353770786751811960978558261660867191777110799132785200982609623479284444655697292870526915658654526101846487836235020447489804087470727411036539595932096022648272240160270722307593883101170131561126865672283344050857858392942671314549030778477903940393124003688679060936915262977193502478113153650491429124549044136565019800960333187703126770351612473474161143063071021383542725294598678832591634912664483211037839586130656976628200222847234643186459342531635858140507768512555766842352149610475398502017501649208601322213413356645956108623940000035504917185621293074072054107652488417035266833739714395895824645545184142375761040429118578671961377164425635223028283518596214148900649323613872030349875672697356046177845786317587962932761132222507105716594995493845051197649368586129806529865219591767209842294863965389397986391945821745461064741069360946378615803658241252298319378832036878638654114589449122366522603788525261902104917167180414332465346777887959440893639881357380890222223009504692310243777816766623906142103246355646605041075246138438973785333080681563330189137588698793508083602974857043351409293790768000753331205606359934642196555717989911464712208171355799020454172532614130767013382389909754409990163623265019042059745261438820818912681411414327802761818677868675050901129237692211876385088659574438139940931711953084740757297537743716109151709404871023823655408447444674908411288299565546005787030180014430253962751863575531942200203233421339579267697758730790692130933073116432962216400046026476044892494940009574924725391983360567525063554175601870699762057080125560098808440338060221861882021518908038343140180938814539350712379588969348463867930265633952510678297362955781659894857780385260885862209186546541112569655554553233138413168786277969097893543618883264217232631276769870629158405812592236911728618292419952060033663504403946870619319302709781202770535111974060313186212818228651255646990674748085874052598543306605436284893985925536582909915968252591437480178622424184208150767921651605803734572168842798815455968534740606968276097201981061611979747189815525009741175000949160388564818902051110745341835688469838834035591346639774057520465732216645684985854985576186004055161406891574204369089676038610907233859960290667279431981347506438714412091203977349621872848424854542585929444533719674081361360504004015993857565842945717753987293540236629580997536145327416815253208271991028869369853264740261904505510974386298676548972791093437918175885524502722612620586984716580363013326425198160281046931795002108348857846729684365209718931371850755972020390485297743962961362583465887906623796944061330132980304117611987807484624898291234470004111875808334989200749075789460439584161305272105497467775243323643846061200661839981293172486614031458124932057493155304548154587368802260669303647323061741879105032304990747754170224987218649560355522642701715244805669436924256765237177534326889435057443807740285864644505040609285691970856180629757169896400904967663616175073771206248851332126673819058187001059757186746033562429334446614189779258028170396904946502346435568649365553269163634097212085855873083606547763613280934489798582230163713877200734313836659359640652115576363521336245521393829324653740542694545038512816904683308620557442654183064334657588835683801932711453744107586822739454246865070784474334178032189165025718354125776008000398144790518119286166863634458317923526030997890894513282011745971543479886839514081690655286723904890396034464150122576028573781276930744321422232649409171266524090062666326519804463981989341531325742820608543818674775201234225595185315997064074193301720114530171883812895571691367069348664853050641271120303534955099744274509874606991202806499572987081861168286004751340320458650979735827725558146755013339605603925775199448239945137119630886439940237544030408752922500318356340896653417577066329024820287197500871858077617512567391767821542158804299783281509833879107318482119461768824347809208741405222096473822963256278342444264602309139171743747023002557013930350926864296042141352606563204441531044329098851006869837032561716999015323147402351070654976230848207140765486278949740375384608326915213204765673107385086661004497313540618652626485504959719924658168126157211046740126193928851413377715722125336031715118927822351465146820592687704979548303810527334123147932087476250869865671950225718186603199739964826871400279226582129985145210028468939169758133785832406168185159741497318633642153498011830787176318234256037180399155667976402175505533942261380023816969452197283543255027305695400703606251058286591582262809265287363886504365324819472422149225411816703070147295582240360824510899460000681724471938038704774009799306953944928027546320096590241947921711796733046979983080707710103650302930809608415756744019341750307394360303979996023746187711935798215155922921666966615835267010659464474221152564169751385548250512484648275436642837330179515347358981682488564001053158157945372915415922319218279909798882903448391772689645810322309888600155340173783456373619545926359712345542775186903986767922970202841083708272524027598403165309880605061170400152585032516564503107678670199865373912397293982927831645783247644784263985578227573048896686368737712556957672241343515860166497234546153556667884456560864947161496163997386370218936621297796250989839693122666083978811230497840002310092528882248165197065479353445178215167874232610178481319283094830261009290625101791326732967037294550710830958262148262400354175149099207711649362476757441076052411883928527037063335492663600208206611131227245536524347125530157823852351131143806572723765500946292398119968724959431894036951081154790950504549549049170458292082571871528860182205510235432661123956738223701061330374137439609448310454796805034335059776644535947122995774018491811088468661169498765578353176847024185026316771967153830126820432817002475307303183277576683206329203986379415649452137566421003821451427461638567489107463987849010067773006291916415366768489914663243824944201111858857949162736978547564928075648677530694110299881997319309442376927666075267398406549372670065523392968255409891540787464897390766444053422909028200139246897720509617684023538648845035103488951054635004467044270163783283051246509090815088403889375985371614766132366035960169766611557059118271607069592893249055687310951013450570604377741429495496032157468316359175610512502665665470042800973338379249025939881997535697649172529987909753961181037641834214159281723485482928699059772635059515565831276658856107593274927759966911396106332581030851981302893079188663888454439345043230500809662220534052163018320459855181839680641995304771242251988728163211807287183450186494788089193148760852440621098178509020548545320729143838476295943088913360707950470847198561374013164408923643805918071665276052021304573764861564433259329613558046442803578257282746225308595776971809171768445693512333712965582930851133745866864131408429069397893920217349794067139834110711470937866629722808813377944536663059306885506348994665339648099236321199410363841907170009093535718436618543205523223408920462514660060779884749457442353989906724985026208785637126693976148665823132174509709016433122624813825466380961917731543510314738141821591053794234800057514573928940118500809468717604196283506634685314254664186209367545177472375823347189787359732907438904377531638876725610004306689809693051082338057052448284934267474375278342427735913494237853311122687961372862885038880260287874869658406637080766804229364344733119785583263961428507498398440152896561228591487624206295511664260941992418538866249840210307892739139255752103532488340463942747525756369236892626139171688896958150922520528947857544659489026680441735522129375439803369309478459168298728353417782955997095700492980801456576049035785054269223540453499891695836776208433360042573368222451176820605694508322718938597687893302873075579320696354134202803598983739405105596845742521205922725729465584386823132595617684931647766599360868792313191191543635984679555172316636307630829992605535556877128317675366154052948568677907928909636985903455949907579899498287102554512406025962578417629797973292628431411480689142033689738199079570301762594661833995051161361204237111086642384026284721719759689916986662941812897875687097297044249940858454135962741729854558120632871525155649071090801533584069820796282207636623462901878744036463704952764872249514289867444787743983443627284743780024720601291118207540017105155303860629935196208576985556291604245588197896686235219618945489376314903813261163304179539294517987738212786089899353598014703229004896464946416972140220468899654608245711043556642622108932535157062396704824739282351435483914109720048810038215929212901612050488232566896886142247052791264842016596221411449081783822291904251698936711695358910632376784804408782816807109951684296990154519392024746518797435024961999621656054522889871928465317347171419540837820668391209785201048432464156686958538248516467742300916865070653798554322452717582680207660154606754392096548797381935317875391388914946400163756527373327353430283091848669535534390309047083156886267814968428601663170613360354874301960131118166752650093798048454004583273679232151558016462348461183542470443533750619835360776320726271296838805523839494445148989470721862779271738927399603878409837182193631230909199956121857007272784824306427268015018183768807261457941538716537069463519686041102851861217556219530664215650086507063174332816707863743369271709828110265587613064975632434197583048627372322258734972659123818850647395104512086814468408027780223494785395454264017203218310494583996539735306319389763485703737755454599151338365958645988097026515629025128369419818416195019171981434791905574470095369658907129271929003061161262784385530583939428852614838314737304101771234000755687545707435514700011903600764388861729678863789330606583964278564913074946894789121986848876386034207433597281335557020478735221099616736311172623922659627003241977022080201757214502771063357247599762203416519795058479480219556479121912853807065128041411528813001886978060848996429846740458103491501741310494345119131887877527209651713492765280215448339605322130139357205738342846616055905490474947967803862602928628259556887056917290823286176566357104004326027016856537581590183768963586872707119438561709337583921981589449684732106818607864217859537736176402738738073326167969825169708869110869489298097270157369876684377088227271615236098623063553161901024854972178372806108031446578130899025987936777715569848770104656097089292291698970865638719246101833215622097683266401600318267861860133885845311596945207381426905244036909434337151135377827865659164434667775548327680677489732087366498324771921610102677237631324151898475360299178851076143045900229476225156928492205691022158358387504054826379210179915154354683820755994793187712836407735506705769979480924149937364137370014629299476687026838213285669530458410991822082927212230445028898235966391519035175480221198178167724888725705918718866702743012334656987263546312086042461636764051104578888640094560494534592876561888532541443063098491179696280345029064290131085486105325837853241625228167960025407631973214336102696853875413824829590227661386026360830019205292126372997723944305918936249582159836985514498325676540651431495875337448489652445943095687622925474731980079458905487573185365943728544520532969149501266853101904421278535964212319423213207968645981488453292143544295858340263309748163751368560356590426238124570332386365088092751056586252624958634941631743917273656522320240324459097296870643930386544698828930167712147409770536235679249747018283416939748258913083330447586890948652893458305810555006771039800577781723674223310641060604304923376178059969848826147756113136853011695603373402658503703639328074598514201936780410727688464414731785388579164777708294190408174587136291557164389436187679505889477809423701127255254246131394661524982116300357841953471334790587830080448244241408812123153456251766956385968213881583170224862604482722010279248136267443181683315821787058009182651319032801894975300267861783739656167117337774778764104136304106270195056771619991395427104978304631646384704909956697987424087382177991183113618878616915869315599874546588058712001944880875973875347643202093968082006013565982202828671381246613725792243636083601282390891313602547366922728692647251843952689475027333019074931510198474733798509187851368217007001185581474076015212881679994835489981478708570238355356097602100952946792400525937341533872288886804174635822277937904245370155613768865678401614409065547938371631653248498657312380534504922845060193413958883867951192742940877854339687038133044966152649509703263042857008945831342669909065631918788200251442795507291015227324115951094891176715416314208864707331802150648200042735414040944447117815979290585393439645536791167542942797634195341655164010440236877949234299172657451305418543909134872932787921772238938011844996976319517743436839893194301461390833227996470053504581143183536757440603969471595843396548048461797345554323904661078023523158650582497791350168477519534677737989867533274049588216717782176744370564995309686737572507632695190377067550594159206232993366360932593900350970085379233623908226065983797531788745950161837674618168191353422459144262246782767915193958634172223269885416352638771382411533096235812500387243104895098173627845576881084260517130263693367366572040471147294281038482366003439756244395572903851474439814795205734407574516169484970866803600003018777876780564612088431681340721195116709907740930053611929500915482488797327235776033310328976367392421630046789678245395575890844130933049477662387489048745791269680628589780944052224012533801311905293998192965720177460542951985207675565379681340217508029315632408740510390848420511627666250219968765952423644420776077768785885551504423997311372978277100331971000030839644152215893150455832081285459496946641614863553178670213833684450853378854623066436753288647237383917877038760711695767217445241042063039277938177219711342777387862716474619590982574265728605822560098720606156549505838329393504681091800362166561310411107140068181685105638554770957957919692323475036016343079778295175751403561587298535677830119846280532799347585076555693369293818887475268438003139476444595064281460403572076213773026079440215559490245123240587110682165303038471876876631383715268556373789322752460450721727893130286641076450501038252764772416812523389429640972934339669513604578575150847694017016601544391109151601456999349667661377627915829094462781478150424405875954503180848272454007921964969049434175851801666867099016728819536679013834433738888007730527309929712806952729674115601350379431620295682833868826438218631231178241963646812020151124768373190174718791491736262504432630917418912110702954676840859094362924659925755137490611621314155458977137893661427287870775100471415828143166485941708703475507485043434022063130492496588926885659682910038083198665989866220681303174370624072668645591656972011477298580470022623117911186445840666483714585389846892271168636922489370942941273590935005917993882358962106797372893082783378865466306515180251632440705415186727222409653820369284977641209206393904133373782026382107157648011021426741549664007690596255475025508562780036951928350771850350974246378356610806645112210410844713974188953384509561575830496973160585253557720061490940239906367818883377779766325612751826913518441251127465744577920200601801130047761958478620958933930430664576969000560209639175790159563368858131226396855901659939695728257529806536491276094291874627231221666362797005191792329355454404018397935854170236474694096333961782137933522397621977424934589173919089874932597699895774571143902713808884318702608716365342976953412767779814523566900479145150758682735464918769793653264275589047290564280409590658554270130836638718810383660448340755806384802788537662564856251514810569222129021294490325241410364446822799449680948735945020994775567872520169175673169240004250274810520505093918295892117887716832808889493804283430729948345486576173979937897961588471245622677342510345113948872337401851965663657573654820586513759047714752503639075348257177790902001804982001771578979564089182709767937874312732216429840664749020536878265436422243658861183239701058485681208855698720122263888802070623300105950168050543347235990325491664489264670104685330254542111979783650298031254702069128906115405224891588988765911237271970720394401670525746060997148099952282533619101749660132026864803350544218727997959618925479019104136253530495067478989326047104833766770068879992738572297237622818486501188664302992274017254806074272888740184909702171106928160659791234277326056171148493621434770089441362889592048031874629042051605527611699184415803692637165162910466997634153979957324491086487181595356669827992234987662737097889913512971732092674116355827309319025724056795533065729371096381761556429866776901850211840039047186901453602773599715823498025999425338550053343433901230248326739547068933196544606024009484675418153432299777136383746943105191135799148684056351842122993695689203141974690465847692971709413579132038029323142877665700756955845160513024112741554798398900074842963636715426850629794415779989846264228572820747302068190538665536281574898993382310007987167266695416500286499102399050418375389492488004407144066497021393670428378922921663832877648119403408878960582142571275835620575118197396191048772003459849758604273287116241997666511994491012987855660090497333316923163119177861536743254244789974766870896216885537325179839739559829203644362472737784331512605316392363580473802729523747226590467413810658928244926728769660113851827383890242658957918450315241117073767979398913362824903514827454128012860663917232590759795221281177076085809752878312429484371407161106032419012260785622643202764170533963316199353279403019745549208358841223258815355636267746279745829177783068682500392158171103609185382709495328769925289639091679015777672628855826888623840621418980439619789343082181815192491413982137810967370558783817366170387578134697492371798561160516174419282158860497000449779963209274673428835355011271157102286257730343462877300191435057771507837056025248776395025159463538815026669992246477356295224504399850609570149459315708095653441776254457506113919319213859773501829472716905323471449590623666981355756316303379906724143022360404924046124422257082566059542339284199520310168902072406173527663049315191581945578123339565958463870321945390849478991511317395993879501289440832512755656203814404180756754952975090190136965597928184305339826455859336772807075678822033504828659721042587545592834228050336653424317118032091522232536927093257836631245728064405319157435573098909091966778547449591560773181594660304499465226841619776948949685386981203646109012902262275249447956466418712483662862424723809180613710420553709572540447774561944117630545895780253868915044179007827655720383618608030406577509538249072399128196516223670261713085913005375788231439858492362409851662892371466274111435408435111619267854903362675826693066801293982117824915952268162887218374654383924350855710145645296026356213715679454971396827652519980622486373416511852938109200830419987585258018758733534562017429902688801557019905313177741423865846547109553940816023748092357595182448607266688411829743062543285502974006459318551374865266600156890142933635021966044113026607474078972396457026568507392168571786687694730080476132662932468711882235527109383705840566309787045108288675257511098939048495808847747580910210702546048374596523208621783452748919575898513221953578166218823116019010500668645859083862122629423045488870471942200445011408784319163927305500709397863004667604218431568014797649854508666104466044411032153049555853038513114336777998306612229929536626625103421714853875279326212947379083053352282742353081898979326782271043672583805538576721805203490455062282995514582725587518776419896933258410089545375011077198649519841340890319610726222467763341695470720837358745946851775401247619192237743542668704428209088671958644213290010015235810427329364224061212757814473980717708232054094153267374354420300269317670743346758116843864476671643924238799929984370886333307738158732100866241298257704967205036973144994296449310069113898706633010236349364765428897164619106716893873954355798278976809474203803939936945898025764599414325331182328728896297458849430091864782301444031926344953159708834832165395650486609963567763045160441964671286138512903614309270510100636998734331265338871891998044625367230430765142411228854028822479606288434989292613922218788662100706644640219828159230428127598878180293547464545049073501311055392101591168226179216836224253816789110610450852396469394956189064735449013119677418807069402484700035976919353496349056118792169414844856843221883684801265274381582733277103880433369318921253274006860152421499925871619205092061895615570629283958503409924072338165896937148659027337491551991306786439907499560827480140889356181633580555044268529925436255605114651041614938487312405771200471237478553054027935993676214142030108850791803224321343302168258716589159972242350029922034711984301396312908025208109845399982860022433611029286600174057072304461349408109181268074475409486687096494940790013536810167729388427140945611898552893332209023347487510156040588644608218879386252224589305423917789714927899237065529370446124808123832106398697836713519337663148249638704455772315731569737542634308217664996605955812875311465397406152894046808979950894803634474052532701459845972495600766672981761726505579542073030556237859462805848181593098531870099054445291485629086615756849658502822641117161797220633854104360085735290263288968932441481855986885234878366024937893054918547990319314174888690038661595925991759382721308417021629021959954915614702876406151922223736558198380850785717912062350363766297417699529969468053965823791049850813562774376878464668978072906340365925958230956800072659965343535041272241290458194079161437141073714301716896402313991218549981794341142427223457628082759463624177896783224749765052882235831503744665139192307331883006321846627647324423879709420734288756027382728746482301196086574432711745389269497905145009242986241795137174048496410002071428367900231921396715024888180435056659253542568215849772103402542497191240760499795874277916009525741488782926381517389892219587194241667192652417330704706570808971966749475428957145753825944897775388790530451449430335568488481338843052532922360607399069673030901301806667803101338118936765476636123832705117672364203621726600581825756888412392355471528061424474835774658480546541343387844564178154017785062002352053913949087193427896871926586336818781823398584607506346541872924702873344721909253098799469906473334038402652076720306933873244252019060262311107772160009051841456792728224053927538008469057235519108222951913978753585004812746522531083288009926822842961791995237275150652199822470027100968766414761199997685802143173057700779512935751829065150785257243371648723390855878754551633134940747346010537902114654102893967259388602619014633229771374841938529988058313529613823715400122426345802711822722357152933413908259642869567576816317729025281848158126180752814188202529845582478314661841862350366503410542480310280597132884782738920984358095696759627807527157509515814573661646477494919753948790072978586598277575509889708256938258958855928348225733745527798492469118515884032814380582964653221455729336209824267791080067191450166768009656750796116037013234155724386292049247630362644804313105323440813439901502856718807594355275684204179560131713248863053016179577767609539448007377605937727467516263912760759435132130591591069019940311902865198887556201083674645025498168704877029062093138348459035467114827950748946596108260407981082897949678348600168597293428196571547488631493186793465868248212821410823973214865543877015814013324912431644579802818226554121876466035926743621081690226320730390426664775079563219988454344984992255697977910618689016746171725242030868374353138331641538150774364265699134418756779131278136170142379609424886191656079602386027190471963773449907343393381823161673331225128781852763035030917578658551038768516543762110943620717209575855124715205133892325467340505835033873798640683045675441921005589539363796999851673706779262950135518341255174497785514459302842199783962112141673225646026218029609305213754942775247838587695501548192449254795611827056863916512553213653913769144045155688765248463732767615341386547608649030735390363168416571680044031031892628321171491255239785257341931881546698887148723477208394713031317426844738089518678842405582391644201971793130496374363587032844610688442011809470662554838571199766507506925701169130436218701574230642198678339746608919789371764039222145327427682099071656553963231070877367548575580903334821707168211145518791005023301322083415654987182113798082117723110568114103836250858676508195884927196876384318399569717080677197844147109330203943153194780190340215016220050602430236240212632127485339553285623426159469931375377855942171443242255349549806431551701549332682550812505333576003501737652070051064736618476120103223995285068845808595261668009987220026816004896308858839803818307116262083567743535559321918065490097802244027142534982271740381185356860842019762689452914425808247382203963307085644530799639014600163157384354895806082672578633753073102304768630488336591679337182796236716410300993292778611782431559704839143830659011954860640161369618135680082075303238508570888052212842736849583929549566297533024558317854383809080071272200448771154962285298997734511944557346128364580706382500682589347357013725590002502281634073277746743490259793407487372955532238808080607924104768109738978195538738970032987443795961353664700934991818598518540126769109118698490157956636430319960338871858844912706650498251039339750768557269382652699811809319969117709854329879239154692664812741694549365458044325362869678577587748269886571247899706477213412334422705770573411230267574639167934345354358504437954633987652386889867047563204354824813897768391320166225181612511100488355932354232538068813999040648941800235760993335834801435510446068624988703443156958624395624622178027825669476586988986007680397308395188848022872289409920025386170389495737576411981506021595710680435609382131889123426393288505311332256732323488674772090925497018698685801088397621229003771991708527254203780622077632784952282668698485038219742744322115447185380653556032067698282441788759945541903229650954270871030800189441360446091969690510207398496620764885746871167491058191165184046305562717630348111571152548626457449676685804564094742251895903902977264957785664881614688700465609654767690126275941607825103233754904511648877044410083753817753516019669333492474374214212693160416697515149217455771800395206301461757693011148314907452051982045400474105029776079358789175398776701397829176523535018033229529520655165438701514914217847007146482147950243985272509279282769022929382616454195668475306844110054668988316000554863760769132600587151388035401786656493282668309110659827555491191528172220909278696523520910660584331132957994934453217405403923930073521969484630785514312189416240411813186717792279763316853648304040909724043623654517600481748326969700681327423670332066306067429352589871254837946811017034507519629847195835298581152960015990662602747383170769991409701010045405170006461540690367825579099797734767221430868874589800259441164788986755562785663586705241076304822883304242226436417354384434996060534059997452718836254520846664662652341255034648432610449607835438059768022873179685894321050611559171793589825091986140479976900702870584995407539892547101549417613709400122065028292298227012860428188144020154929861351377427151257074489964178544322018484075808067967483607544657422259914931817444467149788846331561195920678320698505279207925982646039484182522132985586815331459094537978301018517956499939022392189304756754478980242799902218447270339602728889967295063169458103768103191942070526972020493356675870551161130349445306238540867331931772166149517302362044563797897366823530555438765282480403063127395389551892026776073632901386637894721212447909910179538023411505365717716287336740848793743016299197952192621164802759938970840586297182974772111375159700379861604100695852780805050143658238193200309695739077707988567783809251284376383536752144358280275129859619330915689165600154882080323641800495058070415113106423409622183584012644336954574080233854795000061439746802690799417651917886842052501592471021864053993822465953401187315724148458449996328512973685101050091741990270964980360391593439796791809208498431999514070376544777925341257354017555298703814917093249228741235652893745953693011032148787937167724377727915760744869788119835963499511802871940466126716260812800304993566576199411764705940817440306267553643804883606485721413438471753534408273446503253488165267411516297072697313576102206072490589729088928987165795457987395833977295244594204945624024708118252895522386480899191755399357844488897661120118240373183979612293035292205253615849292591919169023279038798571120774500407124465283267194730005168438342844499932120460867032952190645580051297045727751461312674146087826158538473687104947297048796511897573625060796205574654260165846013488623043861146766350837060781128282811621123653062508087168059544708919940501511011486112902405991462482518105808839679484835342545103537697360122987163143469416069160753993420209797733195945273295944966362169619634745504364188332308805291256898078667753216899866657366956317126269663220986992279230982008864960520063729673814344451652905841302094483878645217954136896309866505412210905100780529608611898110721137032287691971153196753411674165551945599623160028196132190687435409428266822233087247193872293977444298157346529839176886319167673885115662797103790662506645601549661565865697017466359747512236190886990008970483388088356060759342867953980847645017549526739857845095023261109268929418763584352063216457903597117004745614982632041987241755013357208134279859313905111829747352063929298590477548127374804019516215131568084804489450405871662975213033204844638921952834403660765482881165268148996039836577158785350613626741113361184964349655058368977695135270461001448784548603762877145339363088592245392785959606673513677339307627610415883384799110605580906140025252126576637285373621369804806925141266815695645593626994289579669116579491725593689037850404806017964429304002975487959422282902785024877732123932981323131875306269317799729224153339852980410291649365470389953867968076826368759286009593492560442759892327143840932597732223190937636255474663642765717315093724567240370446020292972734669420924498184930282727419886851675589946644500325455951162381136860987345613598663326286618294610578715971109967923577873356574385677998506348700273989357290889339118944071630847170407563599679253935641296739565960850264749584137386115316635740512787866627434336765736169489831846344595242520146495730374449575806891285513764646668245775960086516706517104494366212131869138136217001086101779538023487526984332443086516552384946766700489977805094708217001660590992749989794907928251391208010918836154093233328319539193349005671107988246026745850736683403563399223606452692008361252765441121354200137031279885234749361907153613354473771275677624560000782538467388703242167557797987029078651155048484107225567988074382704297993915992071013955028944664422619726500004111664149362383251767346589066901712481901125500085662780167300943467268485024345796510335515824620398538943388764287811866980641657884133671778308132155109897016928176528539913136205083988864461891709239976482113545849839177414007151322759444945622223764590537173157232876248639970806446175016507795284930761952526006559889921505963121853515685074068623529890971395329945728247596031160081729422358000481013197074332530657369125678500664961398234637598066694714373504408503346612566025604724053686504946541771617728486996953413858486046362241910886929080105772280446907486005107608256504328491366388853007686428793356303258905155936322124992950200069743617268314231669986276978301487020764093746905732482848509886810401669668178157651731267196676393091002801963101820772622578182801337566215509310483291602330796061192472674750659499748443725334693549252074103149796973676652029578456136205527093312628815401159874259039456443223955191097546451665399369964072712501621288974005033366383033621651944977715364280283320993930168965518026532229940911822774740082714015428044913434005628485218160872757047586380953178608049133870161218559846461744652460617107162080148712238286168262753634753627670309400231046308486443765895610529083514369929391315656798437911342383703262454660067105595349763085421361039628904883245543405143724951390275879212461080849076014952681423039586941692522992811025253169310391024029955227660476381076831347904827471491497883943478370809638784829255850097428796206832465140680195707620144506692881539329608980662887935716339414251430027493405390406544001584319667581115464504961939829660841046110050035329978512898000831173800836762864393457873205748984280571331614280263377805342206584715846524430679254622469929014713394866293659249138237533679814448219699327768705425526258371647166408806359922269340886996426997772641912325515009396174712485633805932213598529098249837412245402417080934414164070660353935373655956053390020500153127896546819356947892244320720695699290552895922390373291248015359104880750338726285834480722291949744181077736977171549024355600590217155435108612383688957140393483059403456430319054691083700983793158983557457539413179567121416119025958031469092996775765373207659582025438352060816316164263485560343966320784898298487746072655886826874129225740180553605303818573151951024640796434860349273554658701287119073024032894889121773624675907262862436691598516681048229534822095126103659066122394535462909476713568967762784034754268805697191003788695728432036814882406381259232161039742626224152490312014901811773347639973730465203063474362549429348411695985931711490167197720727610934970415153857777606068930427624776321756583890331606050070832622223091900642289956617315662589694423342129104663307477795408038425286903035699142036336685080466041751842989481261865729442578617376203896477390831953268437179980130231767736244202039824974449324035070350114029243970695534214672850915614206856901379749566754226398320370088461326430797671322193184139223309896336561085565784592497065552967624798934607759560428580661908080501169141959960713309710425479657574341018192136137632822999033607079743241952359511346975312217048509464205263219186235281490020232236029660328742236340302694278742030997958852204190053448757516695903752068211774728341341705577800960492777613234306504336501179082393816100977004377441979763117982432065613696188371540920469778254404548411927940168051122840445590716248205560627875978993765217459500032353712643462087357404330969668323362417839027487821656705353248814229056872064492440351663939460574743858140756972850694918010394068586619198579819492605610981721553029941050746062920350705485690942989315679295488989761795596232418073422946916708602740031546252203183005851027901834825736152811882746866749223935280884356506235933800211640971711737226463937951731990229600775691882773324991174039043556294285613233955236457319597819171009268093020410382961254168561722732492646585169863275297479463412974645181695698150986908800862109840087959761571200851465908352383917606929077378507802675348236200814145213787003818274369915575289439456540879743618635895097253987414412935963943040372346971807357487491924049864456642028469105129644791836785886366724848454129710571865142299541347958843092992810467116305733677042962207212992296380060093643901544651861684126087060013662987477761492351123292737091782342569099799365505429901003222364890225991546208598107723159463017255387118625817184027929118038490585430275730628005805484272724206614716793349793305864858186225385721430383591476644106535063116956854519799736963963433400158665965365358720484156457120845303228808414078326075171783472611064326563805414755102118566172240209851328282380472963937923130927167197167558744857971995219800302030124039648532024999123070314646971751202131035680765972569962209686438639677439865014680834761214794309244848585709815656396333753032424543812458503700029246577288052916441263173915370191143179616249876040674107706165451781871989119239839177946057921829999212266258857092096431160856020303896857440745969238021991842901184965023789137733687006940097237635831795655710487571300649336677433818384833214407009134237572813305456807970014315296904515385705795659207332197144368770351483545188905716890131243019609743515760579507810670706734192657195901176646531021193586089716616784618242006212720957472867741805997780995886609462564967481031628545707450582087857317679196968300133470391797143761972633421861744970840850597323581132124583273270346880341743432845754906642483450661270745639144260836507603821648281080648574455086032233906094464625124614364405460693858577089899426165510978353770447384792080023859010936991898113534527722243925065599677538804478402213363728557600795554023145045407334526789662004503395955301827275688444326123244408245020714972331044063489530844828645912472489824246597226814761626618324836601298786810109774500392768243684239954685866052471571454038267504764366117807477920900573354626155174074493928472939904800857991385586601351366634092007352251239471429807537240582695353615982471001692297223693867667081762207698935086552432282342494473004387055527025519719540006402482938612127436762916626335680341717422122151092341860559697947058429032749023637691964067515334458368247127870023221889206923363517039588971955568109046689862979929090861085247342403097863397853832022958527535413620067270011396219996937988082931771729252978735497368902733809370298009792203583286333244132811867611228971442213935777194194395242954991500768740948715061777732764809372968127296778770277847767000966395559335216997554885072334578275504426886188352120043794123973879528809925177433505932056981917411338425162106763772871775647951973750240255122999948372283595280542248800617315319441948815417389559515714056814529376071869204079806551441390569420665833041219307536185830741357959476995550304432355627032481361940407299425819485090845762004222304954539613155492691512770520438433662742952436332321562070827862674228002261195535589462480785666487703396585445524492660716546936226843740922883086520868088664120712198441498598073179359236853712954094977660104925665083091425015538605518043470153569250593623179052048927061566342169047904605020470103159974848736208602455193154870988244574300803145818621837560565512235027427712812500701072611496250181363879597001746951387917622045541838149609619174199060364158136082488060127222986932121636394667095291425342919598537901100148171408974444020080070124850113970117950218811491505037258141041017968254415553269423924924000192420644072424854244819077952164585654594373021300606620467236646001738488496637016313213868986679208684868158553104961881224317811453911214334276156285085979511468029656843400338440092522378125961443801391938954764489972889719073590513848407486489292944731940451904640925013231398581369170308700699326116948773897041412125354421243046291446714660834925076806167134957927993230947194853588153430607449514626535096267131165034826827713433806305731524085727887887012413551389102981215947703156191049136215961657831628156909539161955098199439882221942364277092496213938275332399465559771668238378072946462810850638744242697992741125189830266034576452142623161520926680671075158023010129197030585654439255362111424931866411870062938438301183906765465858410924177612732112542624683430954053428883912557696136877229356630952660815663960841637850021553366033297581995884726365451116923891612826138368879893196788324299934480360109531871654724529049523777292867151579858980865943585638652668717062660638343752021649108378066079198474135251493598841378582837396285169783732392389494131629880168649136866025588413500295728398044940361915020638391808431941261998829521910081001783778516862483512099550553571806791963880881374720433270297683386356292651211683268006725772912938532066061998015018458208140929939079953949516175332983384490840785537135418899245340711826737574389837134202547273800906609860585154907177615412482933505167430036432634069366896172417897679474801799298002964306288991053074183073444410657725505607464481773241147628769144205120759878389444332169958624184634715051165392645270698312551944870268471388985350886552040092260194268935711799015763265396438993488153558015529525479335573376553132049962243457723093416883790962852073032818702951781619588512843224243447282839905083821944822255833876835363733636118071500638107590878653551229428648215856674558049943754617647387623950471425542399467614973200397128513761772282355145636474380198034567690349506925986567417365019637625562170007236138716821340457881126647774257155766412503167787806030191026182348957575736016267721016648602311281473510659346945241779017471918505909891559370980091535250115604176563294399066220103206244512331743822467382576603181197653372140348279403553730223006680563990744565014999956797566942897898409438455621396771685652445099704435396647157667203743299352300252954326483219288954840854758821306816425878244448892821419710095499580509239775102935813134818729048509531487742489171739671109962175562978945190540823224130628922447004150710858627973428342309898672137901832236251692393644026923538731545341685810754868461828492723817539606971882905854312408940208957291563618390144037953054180028439277635895250412917696473551715645874192913343287354264323439723953350937536643052450043155102167004763206293131195171660680883267932838841801786589688351192522843346853225891821951873566867389586766056774882173316346500848467155797733914583322160460019789331036311616798667209453384494023245391058062557873894309774178926532222770371866662998205431512440187032274619889184337778036877017980609069834074374613488833963882893883649326265428962560510289209486571907284780652104771881760385027439999286763705098231838060423683612694582045381045706586353057571256953933694941786357802816413663160472577798214870610144040503633355597906333904751074565597734876471862603296679463883172844696457556987030185592862254427165212970596845013776581966756418855039083461919715652245022602776834285622054485484720166656129481583230553080197683924362736470426958678328449466162181958172018747568291677971141955624069539122519110168192465630391614004717217091408715546216630147481778603596258373919578827441637817741524680950648847385092591030388436396964612904617627367764419526701296173465385808853097709662269166588030067387444369844575892438231833024079019282797796837388187783275772630300507340057437432810348916143188849474252074204035232106771457519090172498893920417750911331326481819700287500511667834811841531853078030220761410519459526888286540532492961482869750857577928903471089205908753907686694825390943141302520844671917011708247369368081822337585290788648637606957500273520740849657529299977608127477051176550164736949262564777336743816180354268780886665960914083032145606968504398762028575043733121015973796134412289768213151044185444541714754036796043312789396579552820973578588735006435482022904730188044203821559962585424630768760071009010381784343526704853390588767779532666479555554050940986920647759925600208380595597292666250924524150393262105432407425707735927228795066017072138400670403894946529554611920284461276503460400364740265035172325858496846668556970101639818792128067166329185228654973769957768274107389096588943431218916648761399063800766199113608875463241369797593946761215518713229284086088449393577881862022665214723489826363927551625124899637827712709038233859967745698735653284630798172052392936616371699945780639759726155675037706133342856964024636539940210440083805319432939445163127296452625389891356140752954614647460114173289954052730781521768276830781158724592844827337080217869489085407043411021146252355521120855247482782616284218844751266008113524998037644726218501332700792899091163325495670741873865814772142554547021787285499028277743724763907727793647243402468966652320937999836429818185359941248851210620127584927788377084111143496752687324291978291228593321632254252163086551363023802999752451215505132581583796137324211843866863087447881546356798550745560795128572399241632610524493787552507762853297206801282549114820291855039838570953803014633041035701708319776853971357670436459733683103061824100528441423528896122092386705926859221496501878710353191114876360700483909026375772653147458619481942614710820616082798554562761707997304109990432152465040864977454573907216654114088201966804006072359961544382129485854673768291680893421839510697576698969231472467322499626142830122293068586037021011661038763123243351225718374034025946330125519335259570018212696683560880795473045388056932947956603810211195649098119271962170867319821891832074199571614665591727947774555090412404249456147682455128363755562110291458417444590568694698593788547008331160518493081841006721875983755335019987890811872782499664903836402581977935722825340245034003474759612783411571287332534824763946872675681614433076117365810130215089573254229302811139520284030724663894176850130072995697478960648694549999227832161251592085908796309949412328475165090508641736596773579879299281807904693483260549369083880383913343463137024706205900943315625596148387542996430131494761796364198567330130797105688998368813543414378062335539573602150813770158405595648268377759931486155449223079321360065699708767355149077829115191306966764965116275107978422455470144229743414085743286526067722851195769780683677874378217258736439479170426140919509812969434228151401464271971194704655316610059073028582854449282355295364812445906118339814304746082556984407084522267392760037600776939109924344512176135860255089397481692413966335060719424547564118571675255398768990902854338768182097105909910062014057144037246652899670436043476993144122373462957269677189613492571399006797361950411753399872025220288059673862994304698230852045152441981168766173832332530600239147851558067211161081418067601095757047081446612032686796032967686763225353707759548989351120179285620142893702137165107629013108333555081937015298306221419067387683581674230344357729633869439866575717464540063917796270265512180843391715886810997745815522269936404384774760950768233776257087169860684073562486884222884242509471625540799050913083465774736085384956023928013949646598809019170211256384913462312947742257933054592494221349852612072090399319863380324774787847042840275867290659455278300635251407027136489300548402430580530586714355196548872671159388060077443335460271561910694186121587516688596070040404006369710374874538159750745613415648218055164690843709321218841020946606890836699634473069619254836999811942388836385690800033518168114717200243392896355863227368232955637327420661739763221924345719206728932495494168712915167089816873590416815159311136343080973909401608392313994712678401513646844568476388548432286673015286111160191114479413718755762722313467967161008280013818464574501557123590360216297440214415601530422536460564135084695896898247787924717534067333818548767064807155623282904992047604552478931550534383385766668966403054914263688155728212686480947284861509088562592808950713677569590318857937147661366868569501687630110214657592246008819195889511590917340645888655204991600838677787479955258027188680563604452313866342146293729283059602151374444265781728181501355488960475697336483246883758339865802881963233097719986504795855619901240283138145091563768691735205612853333789322812834795304484386665890631557388025322603488971345229528064218316512148640352721791681169934158644273657097159660062773109632919848287863552392472308089262899400943961845440263839241676169802393674233908277422738476407086536675125354826019384713487300505900095283956913932968067770122268408543518085871383428645223471588509676251991255204655916232781219023169335382757348683192551827903837731912541808959032350669869678802554526346396155697005732910175162939099404550346732272746271611531176504493870443638759218954074570696296484229479630995938055620688108329362524498917689840182936761966678700344181842332652596504630202264936915827592501264764522511721855806551723166511049619116001482812213126658568421348672312530542880304675373506193264839016139132464411172088054337057821523783410977880102115733497324216466623052605265044303183091603466205532479833680829789838542112979310718564462663027531529489426903715340884274872809199586064940001177062291095358570650063499331720207798347368580359300731105577720165362872555993023164066864008067577105146053907941885340554668327575875703370531280270891033231837202129161950125167187971933436347091563144039441286048343118970879822971674186543211950848994659963201693235370318153254087211009424410309708423180361214364540179875472140195589328986556912570211172003565879276413999336267427317902252023045989247520654002208016948018437220225097706053938191710158093423842614961143537568276780405360853530792189279840549773711538739067046191249916304531698270306040199902377958277185367777532250162935750663801082016321867849205791490399663919329120086894782863826603096255013011858230931064611666348255862964310360997688325507308153571240098613300261477445099531923775126806612823985989852499547192648148010501649280975679038766823782001978700716340881543152216871454131543722613227550136322996196676747134900969101111981461782225904404623700491943782265296275817421846781935273074223805685000826434821700685890372440193253749176032245894447192726037344096045696111069994677781386774747629197733265574095713077965305625772761774699316567097403317373564158788146590348721495935137098114199501571437069185075537351331357540354032249206124104227064238247856318368270978262084127041401133749530097423018394369971986041226927898642186148663462480071534296376893743131948135530929128116314059787930320214392661217616832318841898244621489420886993245186580825243357007456372670193304096596313256595575285880997362900321529983833366769009076588938596317613649707904097275673311815607115993699993267699167715051560598401967330801389794441057801922405025673146059129570813073863545209587515663090653937615050099572856041482540161867389543627315920268049735763245246274617072982761267647660671065209443484887500872714571765434656586463734456440436985221986572541594284137978889326739612794307300684494547719077782657488115618925060281816585683760423875495637188861118598962346932505937459896394503633678761576466692609487868370765359391494924307711501830477236668252193963656994770703685945036446836007141925346207717076437710705002260495260774233287837087957651909927253151308041882640613944726862377538002675085304304831693807443555128891208948129484830088757448563008562258145783994012735685901440133738493950352399030944941386841197446877504133041797063473013450284998979028402191321593457369316794325645155379154291293599498203514756063008769591192031238741194693280451754638171441971005091535953305241428770212348584354307187723919303246716871235632157357486505939729877649838313033339874351858008232289739801652004735602955194808828069134701977098230086575957671162465872739831061042130947721428011331749759804594441022156597648838383245871031381092677654516626807150735533055766987216663339054110893909323915832262327636519011328341129081489765928409824625395233378048573286241996796675306637785157281046844724936299723369209721916353530419844489599000885882395777937650350961092521308907732520395992898245993587855120193296977364919667220646742615074555164057936611148940571476109861329376566828205580748867426240753110992612298253143650484000161464275599179011486889686975082796594593660826071257666902002559508761180541479818068027744175714507799560704426518871357961330684360045493715521181057968839763592159207950925832954268661553770479030722156712996737344469482329011890390736296013304666487975975803680327384851216854884422615252070980442978458404283390773350864058969123406223773704221985751242621618566810251789370308036845202001310529634695951731897734333284981609945226977306868191117253762503351113550516320481866103551971381040193716708523321072599824086850910466441732906274774619494103213951159942564641396479748850640348891996785610516961211571457609689591573087435253512155555191006228847942111505263677862321674468567289388214010865501283161392350055438352325917494245238157838692124367640747236505604977869387503563755255697498126924383554383676461444283204098283384178097487876273536904201136965728319014159281033485330242598313444090817795238286131861797590953526330541120962463194010120791976598192262380754297480533513961595138444888125442127247781037753094395128509396782709554231919811589874253730882033313103112914560155456162117835593697760057406518312067860650969172051097008877843369980441908961004855700858727573383230927127027403224161480102881210698431687523006086349056181177782456347701187018950054271179901875890387139049517619740835558628302832902616353806806421096718703868955718194481385508466564480517707041826383195489208254414411983613019542864856119223875946884292161688654022191189288252181667580339312566031521288223547504854460739134562496989116970461724979559866728169473047092318258086290123943157118003459058179239328584107009381012560946128585599369424913520584986245912258905924369384173903140038925229441268782139897819195415128295257255422153961538684458741727779215509594854599822984478715055698927806658859153869308117750250458178733181960494256336995913125130734449400666341124770034855815583629896204839370729100122343432529956589650803375706305164513659593677543718473300620728682898264941446132891101456076932820038824514002537159237788298977801614737377662481288219387039298822591532995246980077072238451089993192089975200462258706972910056888168639463502157252923636403902452418199518064259173350438368245404722069301266738797743228243111875260016035193771236576924617461156164469198744196650099620387008971211263259271243546090213341839732481534588433153961131858317316427894702780346260000008378493533782355308149173147076577625107394959629910151255302974501752515777074894913108012003071549845502953017146846678641603344784391684905426840209750561751462002676551258689293893971086282129444994226959748231449575627950061115575399946723534572064971086227911828108416383310169643746057465850935155240944430190459278543077410400473915627780373138589132923167231675035426531202263326975314644225553298807100870807637118512408822196514792534345895251304214155579876552490660009234167085644854259530307136399329435502603156160095253346809170148468473493377398141378457850817158941030115670912669442093145011409055178572798399564408893957705228344487845080813675188747871696052740443007501064197118623501977064804897657606461901236426367730067058933402297936998908767214935332180488855955938063135773429922193467803325220383670774385762480632100380381570862760920728201737101722029099955585429521646281810311089504533978067199302223799617114263930472910228801483303328785119924069956102958528275327686179368764990097864404454378435208636022549152207484924426918285582226095629390460480776579983206752298942186515441892151280270926872482322215828646490832895445610806875073560208371231105340262899540258445254913876032961348612992264734239916323870438022104260349364517514923933198859285740170757759399605453989374957642670612511362000287850289576121181020424381221570884848324778041883880591764517792590463431084203882179713398431186556096462631490402741767559720629187106924116531647429242117172378794636437962103545012386106622081014564104568863312899134193872295423860986912067826856767378030844401403410175586702032368319469956555130626338584473285154371004139909674707305976665878185002960780631370737584510702690717992930467569128775206385059570748425943031362423548485243015847228956600145862576541753162652905414749637324624619837883436140939805924591761498741407185837351586564203709370605172835518722221328644153689664777380337078088527433785632282328715199156054083162250256509420234921589060583466802528440717815682288204468612257952609339513641333637220787137603946551428079432684454343447140245996413300443131305027543927547914116148478232414962983003256238656131325138478181394363222892061700482802298634763037683280064733434468398964147870572989474109450991379759051066455251164486072301364616253161279498140636855393425789189266147176425750967142299272714530383012255161769653502969853542521443115829597039864663531281433687866936002238293402706867288373138262779378898878006973560363675357412117566970110644914799078174471090393948528902470024991352175494304100662431389012280324439884510494580474884269859983261826644384150624388050766922409104759556262309330235844218152827049883924857582619304782375421981707725332679802965134204761320240292029066623172375494436902092733821754373854368965731248892974317867829387623859347054938082860057268395912846318278230440199494519918415217325205863739808475353062716076106178615328375509851026406559168502186101065101039801422706960047550717544321616198303055671788018717956170135764920837256914766844628480581513053388912355667509861479632305218907093716813872001619481262911948057387867145182214964037066491196738852270085492703888656316246246173415238968372413184468132325498109256891995993143958693624203628092529555378663459300743786821860991353631020215036135870857778606402308562581999245755235130762357087477573670065637525513624125698413988004134529749739960350993333230110068112028339357582476312045726140731549536991067759326454255741792087415511025975423020597141486120244933141131090067533601064058825601706402412027582231786786215574652248803881103811870132145691529826457530909529980088662061207716571124510398870656291729645413750073387936071377309473989300084408475621305145599858204058786439371376861387596806549010703168237998230342635762073020274551708283301193058647732906463934626937747230896619984769931397008784376200959438840809952503381712289273260455919231743108530233168077184359662482633888053372957845105921109114842327651766966171530679405166328596161012648365670784787159638479074312536932387124282101787547384136833115115073911753543829012982533134459085266463841982856261769168242439740167862687930470241026543896156970826906807159110531832311120336976733818750116741764892271195328536117281738409669340164833841874919965947324026394396303084221685365754774650078604216156993382783886859850860754953857944706984940426575540030364488977810563706930289402873814707629031420903783032988144022244578048794278153112618639875810085010643569961632382569313767556273372604328881513117171037811439814537603097006576867208047191961866714116257054425665857394006231882803716813839323052796978229172362578974117462433423336861902286378200252523843363782004944203649965421499532398705039803712087941392111452084529177125810920611262019650090748685450796542925342626217620199133447556127270838830758386721392449024061788980701130690678820050509450166335578111015796136023142229753065119917936492478285909976377559682502123502783500717691709683220104861533904022119116011518969704757707335767766621202738265311796492248106532667478036744084405440546018214119840200094226085791785398752903523754862198738197142793065827080628528025952828042908459849720149186150343714617848144779909504255616970245351377118397418265272480260014298346004898385646412423075327867806725501619108464663661480532097551563430252927798166277480251900110742049489240398292439709285679010065417950468392048332666621359236869318925234429716841971818932224020468617919015310495764510430688202464000014755191494650159431134456247912150384924289828330688214894270508514584304469667689909203290206799924327033921413013415575608190601958161154277411490589865918608992605718259767234559057006799995932705846800607924323578493548832789866748979269247847711269266818023977825660916646211415313935753857303955209149168127284240608745028083580317560966162327003714879124278565279097279444296969073573738243534069250056305358423789269239248035852785024023644546720730559925474360422885113684060100630188080940990565402093646591716505559584252077763591209655167237423606731275499633863268949964409467052813576876850021953658022854729673452500629993977172180755633116701774209382029240307305132076204656882529230117321553982831408539910536993147650768515068950597545611619972166947713605819770686858798473512405753599391125010766609562872804414305574206087547954678906933952385922004653941920369141428752087570576085447406805534770358117042089245905696811480143766759983388672824464344766542870566363257333734599201297921156972326153343936112001735528669002557266980064395065707976767660852305376908406324755400940338254107616885135039368811733277649818451028404622453563973615237603646939181874772705342320515915435722225934672932859371752420060637330301269085895294199043036360494163579236550000652854188826452353257878869279701647267664883435458421371770047295929493653952744142056427396522453526351115490438549804453867742368329953634449625265531159010469595566595123875710865341759059529907407418612242463302939156247437765466470669507150742013520823600061521070426066964611323549101326432907796851202465169157846256633642604748543399930625200375434831729225457749949952326658750055385854095159808509540500483969130784407219097034063901203997089904163869666477938616044424241073348386268091825462327906778231621695558351108383783674212411607420312473481431456276669998536881104915613362782526827982151608875446499262630120411229435443688377487439589143602629288324769280357776506423613057106909584693909096397809525773373741155744931404820112201816258345621955926394214199952593330595406993472043100311103390054432113760037878388554967181514851643621313941677179666840774375269055668697291163355846686246239061671127372825897973048761766952309559110146740323926301843646995499201709522262016967060927324301511293200959434905276405402980344112882523888195593717901486186597271186001283226632024179161237667196616576708729190476865723503623165553754047580159156399069831125376847752257727294657654997405536748717578542947611110562252738696573299589658643952527743031705853423207504299200667966049124608924791438593911299709113753038933732456756391821524037818101888326893618362852934465592108000279143357152513989130873033449685604110890203878260771102907857023098416060688973012668780240656225104753641475912183365827724547623344632234872210219980166244991670445594155061772068107683248763694285493827225401157607430742296518489818351867314714231695751036438476864468568397475747310328263012674729079996869480434406473486371333787345861029551832222631051731608022760446043745579338891307636159379922737331270377440849355899905047608026591086675077622111764737104234135802106353643463834387474275100605941585975849437879907189361541158133043426664343920388055149190752225172938562675230259643214523881149209523178640418315562463035966154740343124969036147783717435018678448794265048385149022477032058539356265147131108817618260054039660689577193766557480603819047143027803119342300720372288678861787246429661981269878708173645123459547672293232808941174556008162745761279740843634550139297719455514012210167292850162050512377138685271359430897025209000233359748858334838650329554148043801541728498299671563777723843991964281564236835376240797377303813348620672053678807686022746188079710690110659408389484381962265764907433312761153714683255723811228899099203770861455364538475550570608058606914577340256315751002495319475053582941219349771662894460258035109882132617346273209711805180683205003975877059653064812480035150138357384183804626289960731512222459466381030950315365943273452714807686246509868036250807875508778802220488320625682671864809853276050268096476055866383268915619072569821034366944944297972404376597467355113038636423443617249036457085713305165596252321081560980127611229317692111663679634164084113952716989093594339388769197639831258663211068578338476261303050735997079114956110208525574872332024456666725411951240400192152823288092769092472387619633796165913168908561871307432472951699595905948682575750913759929534196646224370693039116022716430939546665080444947028577423027858138036686192281420025351841333410276293898505846150183274117924080140460880859270529464566951650371565525991379252368471105041687122953193244802079700046808986526878986331587427221701915227631242539485197891945113894951083739117209583842766496341304192248768607848560853955268278451170965418519906415108339507269929290049610735915705445169737489069379201664982230859793309369101786553638800661518908286706590670117801419228169951232122862097541337427888214942439058822647638884223016417580684804604421156448847523890505324818358831235733468715683201422840390828424129943828062428890040129453227358870504897882830947110314042516824712274301177504118470138957094771031162170145334558389466759972171750892761451258626654001920457192297248692405374192425719182240963217002896245478080527359787719878251229280675720744772490501874840491719961335879582453285409644676483429017644642433088310491077106027278593539423696142638942062386849882087049461575091921950894131152378508458958883648003686188686419151183396096791382129453074467440582518283527226886290623527916882973476150512809867655975205314665887352900073354088637322979264468457062936276629783227146086119874116353540633209286830316797097075604826381051945608304756865753930389932286983025790594768656915364474806389638197593557105103740830427936462974173392066050991145893215538163723724656911181958609095576732347719659755662923078444430479986263437515615181408414184485924409787576574335782530926579005954919833094309904887067463703088291822956909173787252663018905121578288076994211389280490954720219260855026322398142176852497638684117258669275148871947115156846065884335063007127965080307619755991061792237339067496942457193179696967526541428725186464099511095779806729098268512991819510300761295358133973391351596395770347277275912691576656811579609152071743295320871335288946330942177622791145498913367744450636483677969026464684922653811813188417007976684576818388276135725819939404882204319486888185416533474424633122515409056491851266960793627257596016452566331835850432035340316610087941901692158103641087470843987490587124172802103200369066340326987055658794999310702372266783120032226302579529027604567863024265138684119872532933961554310708036582373762222034935009638534556004796382189027275634814768309734806717952925759771162271708722216853297310189899339243017697984507775050318211214636528431903708774231851227242472712596267928501245697711662036961298893323164831138591740859852135691097997236795026277347880705260258893698148530430615252404661539498532998703019909363254879894579233512807568439647913912926401502170130866092735251030888490733609875294278317898467996045001694339213643813590093951975816977609518927621283499945018143150245593095905328343772858459158064704454994886150664127384567221061649736601313335235417295863854693501169777488198416983024779834626585505975943038509064555663667558925825664927557114867703721033793577778555685727742255501107860770650213796242472698522848596968725007774145534444395192055699309872323773845236309867566292925318389821835837854346032223845778490999364968817747187276527110841738701201500008336507240244843310459485181150102625364939860679318403616472610211131494524381166797531735198024182629617929922577253701547322976345283646873326499059232472861393524347885651276026662465428359538072159158687320416983554682522690253115842148931887549437382058533240656220722259074271480586532054827045933530242172430264366361357749546188916691925242593951603565693891282883445307104749826197164572848735274579980180486119727448868502707763788453335487289282871822058773605865435436452202390652419482641493570186116022504314650863390431973976774624528667692758904036090343652764443551033036173114219529237587909772225090817314150313871196424676840012678584784991656286056632502690399462781911638398193067635311678206829476606856000128309280613330466093523184232012782549512188225377071049564964220495748343243991423517894018121579689184882526850173136596204648651504530065905729174078370268868470409125030971396733680313169641288455826318188950688624561644166410266222872562378963970892582094840739733848644219342025577241657678110968522235201622059754584398436556765784278839504425401042892428327100589239311853789104466383351897089321291578838820453239839510832395522720434663745781588064152197591377944576459869196116297593373627907542481169343105013929655990352052669583989931175157057205861443241569221361234164839793006911286351138609174374508260558427128719897577149108655432209282779733090665690426309198875197199739728421970031934130998949187047953881462125731328959885405739495484096471086018576396484397429821700715512788494300781592596157404824489455772556608832853497286069868125272825128066959642273946609805165419985876206849021528148023069740422055058606196277744550748863796061862173057454613351891158447938605461211503641212504805826589759610282811520720602429290719446667027323130639172549518963621595197566789254283141499347124476726818663241198863619433195176704154039095834481588506239928107294186685191808337431289997273409842681381724034795182927795524811367693426946803606491357280066141940526007777497468328594428424404193252168907721846278090059152475645002242647366412664164896936789661346169937217545293864921468714040577738058764952157053878930547639962056224279911133128582826967683641092187099013897591848725120029428571570983600789828315030390745511096599188988245070870820749516910163335113066540793966047842346956918872013411144204006197294950492775480567018987695309842044064574543362125179290511680428565047281150718299598344535534039667890004434725900127052122168318122593042629404936207171986321506668617504946258031937216546515311133214103920469926794788656680029564172535061959408585707810070165628651999667009756846711184522974320602222593097866487689687940664680057644738292311665325934761799518940116011129090280288025817801470144708624389593921390672100534798088567856813597813943474712871255056577192015750205121797336988444891842884707944383360177151573012827814055570163489046399345268411780577846489007069244981145502882646800456332695028212342496108026540416083362783504188864914840758589284651173312709487759224579731289962591077936314626629366668648028956282721867235863974677431976311450882636727166842046480496419304418430193439718538334153605994488377784184577209002150990493768867504636618403133268431224661316841028721321390234413878534811437216188664511918701389769215428495226156354547267037256907497014736964493732720670098563078787339616157896606387535212232991356463145217476707746569491196732340244477969493003226563453149447513358911637970748693160343596935444955800174245589663084660156364719686464177854940096017452356475570548163810635571373091473118695377439050832792254889106602383200632516312519862652637244364859244857076927429691286422322850553190650885462113534609932952161405211535510876222150085205695700460375136427478377556376435773575717353230446147471907823189976147371483134103525836089386801955204037418117834581081762110126224159152981115621423271861837330871445758832586759276588285326424973463226176132930649246099342475961828944601935921159480174732478212269796814034019120266003997404640527110754217748548647995105574813619674997221689591436854283777741865355742303005589095845233115173934088013610743798520209290028458564096518947707716372877504261098756581629645906917014284981406766133064005984181008227271645000240537122218459794440600153221420192789466761507969783543641013474932092649819346866323729927949043142809517487313114692663808895676005426558505210250327583627582948065616836468737395640275587501381789891726931207837453168017954321780787040433300235324324941198903903687652363862401062066139946824742118751162241350192545417737579937368585192299955529346539787230506807649189148867287293236130497054500359982680018970671445569352724435217621352014254789161164566272645504264400877445556893153576278570912718282701326575054089846351139081228762414742412700439245962152644646181772991097415739938917698196815801244996560118575193363874962261612095973088853187246884919056474099682527360431447255374277049097099613585762847357430525326673591999742119523731043616732069984029206987625161423066162621354024917328516646239018786271478422930915720583830792237359579235443511415393480724631701389591448792172433229831144133261278489765794501313874378345662368985243155865720301182237142538600408037377245855811326107576184865580787886988782188850042239562331582276946411194313011349365875853289012388564476317548842722049597197964360009039051235946033216607332337195049659572504166706624959866597084342126208466090859751624048451048282063437912617503880959635045309920458794984934295698499658168926979724461641654392834485816690874677483717045707496742022694079438373011609176254633907981777771796300437932357153879798176033387855575704068507830406229003918697682538639118574081760267087482975405122680714012894598332106489946335389746379847291527813511122748179641555454060358822878473018186693999370489699526898867076303440945859525067928618158855231325403010363586122699615704276678016734373628730910963588461378472062727492438779412676865686504711414358676911021991902391657825988958095976237888513346078182519819176155791950817332344770800557695128523563202967425404314889536810730384102862742821580666574442927225453107598039126096964130401024809061490705432926388926895306805498230181130777245425315730533614497224890069424420121533567554170191170561662226188976063338123094653503506546769398316587793001379731671512743800037872262615117008568120730636834849223679835658657972270609374494031409697285883792100918700781750982835883206402039695617796786550585614320856185371940064452966144314821875172877635565644137990759965273668794173241551758524418529943508333313568815956030127414617925574697073945419193782603810531987156710945322098574377025758700998723462159684945373687629427136867042789576356747339935019080603237644532488497011492807151171021444516119045348839197068075197818935048651276352133174288019919806640087836096223331725875941543592710268732878468662756011506664721224180783866951812199852062228072771007949184109976918138255673984719932987917380265832512454596342231408922557675002853140597157381784736435379144247789853814650129578459926189701551187684760631884784743674498443889957252168525811044696151512992108444946414849803847638876632979339835844365324589214812406924821114318615942005839411578878945095388612065083070772282453347249122439809710566189604523958973287093788158944545325265516055808457733454403146352593472056321947562094456974839465679417786222824973762863999398150940555587233055698094730242084983783709463748163432871911505646674830308753373319222152257637412075333830841488415550876161590495856520052391370690566229599012540109530971980340307661326736216666797362582383908302028321562110746462841283034365043857946021554056835310262142217834158994391937614652555180248974157515997922370239142597147268646835599232971859806902532477429168449418143487794370565273501533554568267663091073321443645306729998081300332756129416220283106843385854252928186288688932213427006293969320798518607947761749003875001835820916821637415662860173944618588225364643859754763017348700394891184655273188027177275125490635286160342686857002389265996577381281697063806374734827083431334983571927043886057026152305015381749272191804899785445735069631666446735536713182470127475105096960925989092246286421826882950280819681880013941194129368468935265933589095890897771477487534097825878134165041948197806612486768720065396216749926308458620866152776791408257394878211509966188126309890913061499762760948249259857643226956935492056318521543146069435493074133849388604016784257325331162968483381237016070578376227379566338731036579728630809594411658866408848850624545079761315450845662180536228824577726074436197817241785282828903568278472545763897631138668628947733668949526063077757750175820553512296093777332811878010012719067798328916301062004329775388876882894553655874415978970135470321581801767330439829798892319153915520260649599395884757294013014594586827682124813423426542505962383935527899232246159128521294547989108744791997322914878309720903909358159267886204417028681334773209382188560940664915159393421047323251666943413161671972705163093744400179989631873089637952657027128114941353884114258013241463749228605189213221885144502273250796348892485673616527964297439993210631035090173585499501493418500422108509843333143227213929032889286278614634996971640823356639084275194763774256168251775225275549142321443492249938093105052760564281089169456986528744328100186769112475296384001244448796760388388989002738976492278970468216285026082867358850609926724490318349686596862081473673778896739541438793291510407908824123345618456539803082193335141255615695487075405157661591440187184874624407270156385264551020113639864902866361375308830661880766094756685110891388855953520690339678284945745625558389940887773464095134778463182969167149245513758633614178977306304427685361599926354793533467049519732940903743987025914602692938786990079062998863938762417504318162007682111939046687011716137692625284178943702347564778184405164280762460822929240243830399542000555706581056613478265069756977283758871732709879534924975539516673735766962275663477771295999223596769789261905847048065447053261227137096238174598470884528991992351082697564181611431076370020098651252852695222972699229398943190988277907289687368804963686832441916127083561920076124935819973319801000138192845372115137772708625207998791313897375494050788284686173435633738847543638508635751866423360543657414023038838851394849823126067159876576562242846180760508241772204638276276856329012659877627081876958945963593219494286899673020948429288948495137311130441544689653697287136618628316762588396895964046470123679445929476799103439190973582463142353882977419714165321679920301071056350741493819911033035336192620221847540963908303365432686318500907400385883024640018262351407050856829763075435025964033948107557268404763363881190015042418690805005433832761346477080097181591313253662788459765829079166397746664601083828952512851868555080882759968717837671238726129908202079937419692317981442488544174645128310694025733835391809896280247593263196076296485384176598662014697115697592868712787290639554176442875106658065941346142889069163013488875355390019756882354172161929767737107245425014536669748648285765234159231102359551600483244597102568312498012595426403647178450490927117181456086572537249160621582651177625451280738253671761707091690733686707233773763541894565719947427711843432987872633159810249161954352300754741919744162713993429396413152980735735207389570656011586875739983583652663053957668859987946464921150203901820791618243606414978230468352851249042188851755885215892248659892418102568237989808161166926150326499586689354032773190760181711758332814347353329389256242038088032297540568164271789739481305519934825994813574075031072150080567109605538247593398145962757089771012041029157958622643350253455766412124864151316959296864684790759409638199016664990350681815244306304703338253006275030486067871077496290918666171144749713286215575797447255646552620307835704003865631047350004008345780646286202813792687175309297818589467783469914432398320998765006229661093822912754450064312922450673718568619155184771677637022736528653441817211552979320293311404365658941052446465992870591935978064579653704623296106929040306864760887853837824482077208782344735905043167090329713655529979321102855298650837599420577813118456604897114572003261669040161984036716978930562573740618310640026143433944057045141921491656782996275334222454660025945920405995395243053963302918400575491570689770714932721460450725876499042648828199792681911755169567054047125279318106804323311624564958335980002970704981572746912242848749848389829770958857885380489150896808296425384399683125485084011300871994777905562452971586129865802792041821789009701169729918483416210209928216500609243829743830760850143838478253169702652157605069406911526799026566556626763699852398646508024855357915896317757586866384981010496297672014040592337368194311996684841178128048422654888520243097477103233588134826315621091475349575118158239501953056335599583849277642908541778640343373865685307449926535888212791013575679804688976069400981994041554673471159680138685171028532120246558316934036163610280337579955234558077439000292323363043849319677575184451531200123121246442566301469205853382819031171052209509350450389807605123808771934271605944212562056187391648816378484231706281974327518098053719076678873017387444290020585063382313608835672293878231057998360139775634544325516284063547897809333777531721319192730714180073350932620000752050728338637531078086172845528182946770418024455639551622693294798180692829910433129179460094172782339950199788870363099097405233969006072405952436158973761316373750033034089523214848474354128536393489192449884367213227268647827777324951957597877894421199750491922292970515009677474773028726354162416034284221263978887053859542485468900630812345943264702122805331558426969554522432528798290316878113116265990091151148954520292729687884317888863606489353016904981822166737617189660919092603061536971007921955699320535340548955819077784913893127626929116779436300891187529033290110398879361736380901515089051926673995333510255606676624203801223686803602396451964267881328022855007518486541560262706169495969179870047801730116175419884405504985710611368553295811030761485376316993703530548834407145972520968837822362295341130178536477129068577684946956564211176904126923020225943340127219093086531510220041184718484097049451255757799703823445653299943948039446657781354258751791597676306258192093595000635347202580503006147469358083567901942754794553091179711164076878434102701221453685826180691383220954296179612045282039711778579731020304503710527171769231117828626328267253471380122772549942348438077749620891443990969029473141941930236071584967350058198432376010786004986846484928700789986243990545549005797981912799807626470336184946353483449595623350815851820482375991247336547065634835033733298995661663094233792696919721673201437714115032096864511605989660168369912045716585739676157381431669075921963621078667463922984511857852674934539286267300328095628529620167807232771452240356843398377488119174300114634498516088930440044380115333880377227440407512198436296403641018036969261519540046911291251524393288078623334664113581741926953019068857292892656357521204233888814766633205901734059392797381375993272804706431274578719786942111147529458894764457464364669659585932320042397129958523937506911862004772679458130797323638956574362390889929650593591717623876892431527564156407332898082431994347352165811499979742857720178992420556209345694194970342575415574430607882152570756665380300476837506383300670042751320554394026430767624291565492930616294171898432102500162385195032020881533587994496378722997205484542207910828122694497349707427073732386543366659571187656893156969469079719059573158789067379821936098855913219708650021773939083819350425397913945793711474833474543431141056401532792022282196421780133722101143696165267323804682100601408295141696577615253467931416521449008893135646163113576598633310961885874891654928046876442201781355457451711447786670828206179227392299520135625244063685808051644043436450253805642450565470231589604706603871864124309458031678171121409561191690324890621481737334466874454132926883314857015099609911973152573463394736699121076684088309355607299174962608352588944845863310157769538935109420038711330438243218111398449179103522773564102168332594282843217645271619407218169545399762055045198300141766916293720659381390542538076465840310254676005103926779548824337363116881890638189381240656993657906948945657096971622012055319626099017687550312900442455271214482114951622702377780482022171799821918133402715705520336248713658743600158185260973130839711074823394148813873466657645490313906073440731260554269469613202994574578936534117613377883579499549041895095813280069737944542726161627165104073195798614009714123471799591240476814212737125326319538571005721985083967018077170808057541622914694620707014695305101953482222017875480675368493382648091506235925499605911169514610077876741923073952366847292099994185086600967043189439047411794528338785184981030058328735772383024383898605821577024387063380285960817819972047732543941922700485481597639257956136640657633075485631593658930884529887664224391759828471775539772827505791604930697090299831707726312930231452010003327133050952372832068611254767524281072689859898753482175853574598050864619254458793979662192163912429692864405153802112408047116021891901811046311702670746564767052423839166799522335998771961807601230293190078382914064461368697921294804281821276275236581475268984638738804833335049332827737053228802190419391181909670277546429751366699377990736264416219125365728476692253278873062932360146715616642598403676122917619402138161932198107842313829916743571594650851970077187492521031808543095647965774553866989399072991280418085209761759816881837876134675769226821880072275994490618877669603738164458617376988687608529279152320074623168951855938543012288683477362040993299009368012347444091080461952084734496491020207817502011657603803848201522387335039086167683597508603683098535504332706944685853825449110343536753402286020314931006530019569861100712747422973420506091087265672381172863560270679869422651420411348096417174950003345281917805409087322276914279112839591417455504885766969117645072189136231383414971267710863177445663103012861976877437077761326367655031970190079885992373579135122193457168388661293529065517500708525892005635065082668945652024291148114098435508416696479171291901624625812730678640834887047778762042204236428281475018373404302521315895146694215092466470255764717727673861759734867883474886507616752999780242532132801368331223877610625641360664914874520342150673391007331964203704585157803414113036008768577996059653194855056987322249315190780118498679643704374382160785546062700205357341461861214647631660841472579882558673333962748192984343724872565003525282556859548860213370895346796890603650352208439709606465671835913798248776231999821393199558511595874599102200032572032564083650946265601864634276402010263440854021169318292017095940939654871192729189071837417968934844204140138031435729481375808264073062193707834094100892308828048232299000918801077173777992444970325942713472424426945858065818204467547355211089750528065545371015416937724081238630326397805128077690769495425955489343078794039694061322736426147730612843858105847209002081128236982347360515169120072461574466066626674042943131584094338654079552234590926846058610743563565943936936899344454725151143079783678942009192796233112054874470931800946203965687960191680769383801212119447957043085032228260354874873678866061428807080152614847781500524829395520830741412867774348336862589234501967033064407825684699577445086418235810575836717206252897981405288377436998843034848714951737689052439234221783333212590173270552913366009326661516531729266412164459583224392079826009734042417999416775472116082019014620327301603824679142511970001132111935827688493406690442697146047320008944189426699253438509766001454594245805508062173989876771636843659725747050742573982220853301030539132250543586782304602627192919616555010360869723622068343311097269429214295316343586846712502350174698326027911031761549898288459851290278322647302268058314391423043412438486401055803343088291295654430324774196854949972910972991686611762861461661314153110123687959415408040716464101255766373398833886600385184218746086258285926298189494834638197449850607178685526931472633647375994557008185137768058544964015529824051198803466980709670773067102588946619741297820472805863363401819986361617263693326766158903717669525605383421458254974987132909630941871653451653213663145177411145039143276163813582615359886171763592036077157309368680799311679105690528591452851792837622502615099929523512752379512637225561302970036174786994586471232539395087448773588248643134134858059341756581043513940975640776782560403620170832093597743250228710136776248387452832938331149893005812762399591489945722692643104700819546261283179094616161727220353132307208579603554269132333752482700057686614314944684380762962431436169729806918576729928980964274782440599736193308539344555610835988715289087904621433342707146580374567778483062755790290750723784356028016132417434056248141462969933751958407143288765910399900818873878946413803528435274849250526383768863783149640755813006954309504891565797445306011035354721516765971865142735383970305518508802854079193596124063791581006298407489905158342027673759802770859542844825712188528069526749821426562812249716618374041736770919458342974960234461009651359448063820771505999989173183002899264649625731701436475066852902855537796106298958846364027498118454663767200107622217208704732157182842502016915585422946595775541153149594072594605661423724743483608640352031965877167510134522658996372194169522879328997580881284714123540877512665218148716999057240676880448861012623447197654774702969951015121973853378691162780456864214379540370275302521597613669355508916626350644492290477864206487972189313736729958028425129543155565245547240998022389740608113322130580888218110599142051812640503045012496719536338797044518801448713002531361103769524569396694348986860427007928114390150935301505134138913138989002930855099105175355594019323798444259729317822333686699240054207702115375513836467160492993603954538485227662016104526180565063191292717527635220698197680433844299011435074662451939113882355503399656088308903614055734623081856705205988339558073991152914883607029434644976322096082705170824713417369137945672987471013837602254538847492330545536012074124944490710528485014890145048313594423352425174359865232743462131676263540587765896432912917673946227097672911666003397959310478959672933048452122886870297165296960894801021551884982571602866434132218190787500500616845441447850965491597861919185509576971895032283748938093153726206698867060411392670626475871397380091606469429780742769191388097890442786985775729613480579238366448384668639241838314859909534165373157953551106857300618894821876266202766909179767480426092604775845249921005239324685207758058710134989567364589532895687454954321716371950136260973571948814770851204533997293424740497909841405690374422729463663193352706956823953231150037139165457328319141196896596467263089909302449928178713509444485522183212656221388733551290316691302365861633968373828593316345605785048681375867353593489121358327719912777420010342417750589581730116901363546331583747552545427319674792727515483523678150770373896897940003727895107512669002026108048166002094581767765909686786173321272111764638329384456973438357558297010373037304617355827504224360217800283365800865911595103794686619245366670120634630149506387865495351382138340152110271748984269606971012343366840055166882299433987891852442905059947403025238388899587635873714192635993355732623654359422689581951956446738286232554247062024084600760823788670121309163902210506417629620578072713573999365864951310848405896891434356585958473122789415211310950695662054955781587527709526228841461403141153673719401074306496353491202195243564357384608501277949988319151249722501369812458109045814601048565027227945568109921187676767636316654238473660143397707434632235683789394213889028152526829208711864920045243676519137124921022205798986005933445337885988260231657532047364342182423334466406979466137165746764151096308176008725549461992207952849062604350642949700576918969520769762275359116627751955867578962212496902457564671205629803616939831334082384134560604651403193502467021732403106741112866157627842783571876744883703658153888708747624255274765462081378926199847120621391115302048698643176991386892756937207236090692485568276659750831050548793273945510979693138175141777608304796984571616788599484111804331704030280870333306300120232246536425621060566298830348007723055249491235806036434657232300131323859165615823521822942499355892132293484700326711556868860918928383860235851928237578338124022111903609809127708294338892553798878076808075548906587973708652904141857558423162730954915657057153680691544855082258980644685702753045157832644301342631328941840822870611305293719677643250158084146670849335984908937611140342521597654002473834337362431143734113873314655467116979720267911739682142144251995667899464843983937377634071165796634463080547071335018765609302957063678117964041868893706797955397836731844873623773941455730204790446101580685776574266447292211020335218549143489634210656731134053388028803813483511729210117037319992979401396819061301140161877308110308188084372607898152096976282156050580478535798533146752247869884614373823270244675142168136535327662010811857737072806796873667051924100042445564486187086525296756716602532040239972073828554372265330386736332142731707671495345348357789058351867872399372230426754776195906453585665945058877353262642674099175842065779351497497549263296466143415733748141780203636397087937249723366060207632691957332270361007439430039932840352811913567998648867234805441104234796871094197027224427585278970085727531028154097719395261969113829219717073390037395848589612121973896389950772843935941788799360044378936829302151637759671468005075287459516936317973435224892428899146722556979234436077365500000070683476261361492460061873869651107745805319706340147277938784038977786980678978621461282400481023664200553840219951399741380959236148646501780349047210206830908190022544845717352582977485567746423744179797757308915619800128292129116416928301265831975140676264703197908416565296923739939135410829599367978693948914775562998602237740513335208831172216033714803238338795264221339851094213756674655225381591676293144359375735456439293784033871436471159009664146230603795056943010267116626262133716130792069300440164564508319092674916127344340040168568524337098743972509760424203090879614687548110085799122668876650324811163962666109612795580992075646513115302317561036643132488534108865301977854608642478699444747977406761758797724393571966412813474903437839603474872692827735822292157969783025856842254380187903171090442117358499610501183720079190479889191630868983291057490602647164132544058660483418177136224622930404561430239605444055551301168738168681524420426440843155253161828808990414077084710672152982015899589690825139577184216378394004151881645738522589416336080978770317029901533560799890365308854770900260329579406203250462345067093985578259469147646119381511246488156694578077215243486030679378566304254930724956123883429442275538273074195544095068225209257307080102244983633012830823370317604843049214389338097724492345219199778126569339584942012220745110010152095286740951524749374415171603529285725588450750917252979292947914134258003092777212015979105477020513718134345862670264832108081716736458334572706472065341067538909065577691429924599192735921491273844673954097912628467584642902574800813311329925932614029374272172510295883527811032697359715176252861251997125380812993153835231280050547281829426335944577619815082081668644538387306466390143771927931308155509358858755215274046283158938599677268539720234120149964521737327886316821558723459853209233587488409975288556597502506120138577078047511772497116633155868710015131011023203326102690707933186938160392575762562783197971873030447969777249998096642614985093505917209507896378597893357939572741650755118908641009082781534111413982405498294400707918890163991070920917480706879100754479133586495437650774063136655849319412766482193173699359510335638120505180172421149048583488616271528139408549650809081899415333644409146606548140175129429840733191054466349822247314598575113278966024745295547504970535603181226893891953953285133087741207256200395091949333402927622303038041326207745684870564665895602425081945270548277027392742073311150811583520429206081152588719863025970933773389928786270307727963939291668426647703269760127079557255440155621392958428010660774207025886614192428078000944160799578515571523607447311050955750949579927647128982435595617538555385333464309096198621051153811346861154867653374079455428327532760719631892118742632266250718483409713375161155071084404231248514174499637102925740667264795799456131707014770786076019967141200915913282884701560401651996717313267615525809820152541460016135247969246500127793584619230309659330763257445446960330447112454009110881561334363249761851244135700372121027818840517569378146083390621164527781280631213843355328885258477953139247964289434922311771985561875837661969656786944721098431904147486584845494510258105539656438207303557509241428626307056756538941659166372514090462086649004596839062108935722196802956605799661599079975826668614850708669341610405917705150014512168472897948316010418601981641867581851347023256083026468289685805391668741006205664749905899043796031720139742123190443571656682041849320006135598704379024601179621715797978158581862175170831406736590223323236424027264103151526504472221984652901145194635334046836196379348080522948038383101743651155767073373547409989426700093054241162738878233515444906743435881613414316266630621298505325097679656040654288070991725698650212604904971881040169153711116600279322065130815854103923611122742261250703230075817901852289286671538778318006506903246208907347497433338387016219629648591331459378034576244635124584596509582206180191610923978652227739751799699048366422292218300622732228229286803727144231940468183930992991252638260983607567477094039860018475684404829742585301704797662501583787087505830541643027149717134801427499844682997412588062814567713647971994179901988647115359642236711251919803757520532845289661866050967589740145851240073955355467255620452951458534631672961926050456761030613466256790702977519272651250576076078822830742734046456385577374569852816758083781622862956375343317435239770874671654073413872460318474163961260398440053109903161968606228522197025423474586401199508335608695855991291989659500834319564190448774864302051257684408918882770292028489612008642199343957241225183837153306056991923378042008070476772557226089189822148656912466683736480495200221013486525546019141233689363258041763565006184288491569879586298643703625376613501540509111789099412507180636525693485124772274361710449125143723942769271896719688971370552783620025589512005757406975137320329542266833077402419148687327302896989601531820417971057047777408159282238145273943405297114333176475550030571113212175330647127739185885909092753810705292187661018930285090535092457480283481112286637953027131251141497778388767645102106728265535999250004080170719433875565250390963824274686262869728131226513722922516885984416728240626217064805273550748445175212901160504438686477062927692299569342889527134566539367234904850404650570471689356249540057250357545709921296251261647421886222958933297298324625999818384761119005243210628074232940730717169821592756234664376749187083155514603224134774143052879952406263418034142992637235838378450725025960748846821901607068584291983350020834225541691734529250015414067912403808213139676192224811829004717228282354987638170882142225252667076168899545764102943400039402780456842694935843411579025435435911682363866328734161153320384749410451512746226779749977307346806104991799611152131426348032724324047061527682572843800690986319942027583797344119781225009691978304993990865359589883358919910497648042964225098565707815968143944529810804178773510030367197289099900824622287389622016375342778561911324540196295621391773006826735870942590332180601297508494686236566643918727911274082468309636147228631168092770663217736679024135755091043078989871508193271599665408957479682379505479910591321339746485691996639428362930890551913997434917818005162165597026295625724377541370741178331710373891963466059217396374689591361447226160763175873737011648541243888758804378919059394029803642990215063131974212408774199306390740903722715629633219315166516941036526564721009169615505593654664579820876123960327152143238351586046566538214651897594920537037609515106141418959106496061102759515917563277957841970624622490828899609812378907860405282373541824104918100342895140288794136678706366316268346830522250344392194577013814842829104129373414884485672206320354616820890295578480929252410966478665867029040040579681202749228807813882930835292793736461326578187733250380134718705789375314604699090237868330601908417911993358310892365655733744813340508198736104575156247017061315821789015328672953098295673053731865307984777263458864762460509378773953284428402057791440215538064422688314813916297568654224988905791051175430841136084403499253055521296241831022602353371318785924950008322550085194332983512300127603225861260188121018160456007257992352537925199652956791147090445787792582385496411849268914378971543251741424573302983724941191109243420881660784211794475092578204355637431317098615757866756370084156046805494514535467904796207480258678391158493892683233121573498651853424235958856530753029965755048949705324777630035830061742289597946725080135936707859801256676321885994589058312089603455002919706601805447520481734004937867696361748113022616411979747680615640474704298510568295166828116037296590258516050659851643810080153401934893784368611822048466675518414509124459206692705967859714178930673843344159001833529772939177512345969193334908076529663096030457900781901541729071291404837378566583782886835065589836276806164071766798713407246352998287921929348856413585886710131471061538199982879672219580947895306704826930399909917378099139430405633254294183110465431343445814282255361551080209315439115461064649519249961931009695324279560923244951075278908539240768916456613894746563684236293697434500473993440324635048247704278877962756109298310273514221884634599938201897056226559578732408823927488778098749685703233868567785957870754068038282818230615910764159967421700453546475748253887501194036355865468378874651885788478766343610863373459831290737613484135972837057656965184860619948057237283078976642055616363129168038199861413716481467981935931737180124198757445684455874700471048924471670210381049119833090238751809272881381431389997974197336029260579119275331900131474568062988902688371652079664083530304915382216033360444421989703920789624193502006112211920778294593660911045851570572774871529284754368478526063077658986112520191671096164362778913884204515133136812136139471418036682195047532437055295695965258912243202601126619596642247071466791935876396371767531696551794827464599103059246214195635559565487253573692831526881705955197556429225156960111699940035421428821676428594568107745098073369391920767975724620150653527042295034432470395454361023731238029021284160425359263908078205988199216423732687153332211766256968163403139780004455362467060660535825989973439174618154855849961579735800708929967505243004262300147726603199484373907095372540577892552099082221682760621024388829015391953231910132060734707501681110332981276377624241377510721533932850622474948331407960055189465442610549787638729387605159003867354534071355136545187996667595251761728575240817414226961342062113783436360156378967238514622032800684714161517100794907983749721069979026516387322865854117476049955904212875320747866536818169550694485340022929900982453076799837560212860075681382489555366249712572412021653188187322784797238454469438061250044401907609032887073645720150545828862364422605171712663197094524251895020125760692922348580843699236474250356886362405976652228992049601336333520860738933934504543492351970134961118645497107483741943268199192534906353420056439693441562069289332943919183936215900218368953385912564345026710205079130041788749386451915283155779163410885282214910364621594150788703560387017583159514622922073822237071539571935596901947005655374026260778963231540953815975076181164983161947538647027515687056685095423162533914603239116902217301521907613710860668832964201877502654988437359575422240564709206130442177146808265711746434846848675063227383201509396793178389715456727145681479858597347298263967555933067303524943679319897890178732963666161278214439530705670566014283346966574648015443713326895404809094869177854296398317626917683311989720576578695450907482073800069284040365366941939600338568605379369321025959010222045305239408627846893100654609286994900469188082361707689717557838130201123254747948455953193237186181162780273964337113803502330247956430520122181778310012701210856185426116117782985486232369494622502188029259355002035653474659985640514803311977716178774197122937208033199329608594025480363561227929910348280741670237533077073025407331794467998879950927296857626952922236793570097193435082256454135570143679964027717701200696466093237710119903151151662937437295544588806600717097339158760215841695741409558656813297039220613753818828132393643060518134882214493232698409131018307953505365709743983294945749831313386666227964434719618873156899095117352149452797299283534019598074878066445072296353634709838630373051374733016496226004837508712366703385456437809768422251855503478543070961474068503521261733526024547858451164733477480803784951202148562453042609286737095350523274103840980935016312021549988876499094875412043461217562834907763737850050670700040696418532036994038839727791243296533783392645473972894461794399683633529084313431284685235205093528413682021833670017760827476611539881200135428357022523846960635095681523599618347738221440692101839056946200741401834295866920686082114510905871521863214714640929738127445236744371731559067439055624125663846007819918340098047841614491478662099085822851978220717225072010628274747247051877574207864902285619318175025266405638842600858968287273022608504746007724872890284957438897643316644245347445886350290009628795810778234990625717775406127686374608428489898904290048057144604405837868643825637932961495896820061493513496615631614925291740882668601850396069409433681864317956276350563339962987765825592806448251430740260767433894844739327297807039138291389803256528716975824481498949957173021111721563425614493233702700248121206616644494224772280454802628669060317313608822536539770579858885791739382818223454885465458751322052757085113973394063231990308478951525593397124090755894077979009596277807943365848941732463004282398269929795138160448522453678934446876680577686353409047686690424707205632611072149050173983554969464307194918816443300202480217439843340040389368852814585815009094589628545400856807786861161307692072806563472951708895661240611862498870481119803299988638801593065489762586970718674903459603489337742959881897589721156779889377525948646458149589011087224088522421663553871585731876614969447468877662697026185546562400481794033482856536824313341972964581623567421894146418525222908625012777161655686817640336495206628455236786729400848613596297080321964028642355935401088885839457488546745536228729364131103746099585609793234848789973582837363200809298105371439010513606699320198338316757131606256881453349548167497436777966037817701702990567493614461265536194740289448878536310903798676128699575459164394039714512074082636602841939234865295175276966657428117575555937971729740887505740587762898887920915786060086346817329849352730645629713099161502668108146558524749835891145340502904026083814209002808776809869167944156746165096059146493157744862158183957987647701952051399440134382177551956856413618169184152907115890838142203305083083516049913751738729959968874762123773327294463748041942514060007388078079617024975416416128093847918301666126347357042387594617155107852312354844422061149122151680881262105419534091052670557129559112108393999262698221628975296499940339753984692759458424951408456624914296084737351748047060897055815537641267835339602333664937017272236262596906699138962847149783036056514724079291510052680988202058344050290059916668569217722927519513795947516796207405992632999806236236917139796419423567297463760204950077806199271975446264027336148913960383318461968567297191588450211854096993553634528552454748604622844058668419419856057701894708548005931144678193991720704048122121773077037562770273497587758163835402089368005486372717205915191012589696247389148059418069935993923436664922345579664536382672580852955928435321759937170543735357848392596623556742862127998999941048123503168321584270580560333660676040464606121306593940672238958949677248686589601759094034078494520677835687284145321354645629047710133064813665318915794635797622205348692530874201158719440089300603642461473398364749300892849802592540529914077655805740516561718730400770607756076083898310124776585672522260463716941565138883675483248512598087614264957514166266474640994049675353772324720049674402740034600805456427284434722125712659935167221205939888380347430118613979749176863006992297108030810486189245560243221012437656595455764130159161699480099598621304608166024645039170804066875636999239890307820304589190042610739662632093150758074474432589654816002837057398050707360518148099932624919594059862713462277541274671377098491872464522484792159391598994388419282010899485551478449026275309675159331388139706171756266630666486730830695640341238345297725960998095532859385734677888893716075888425333535671016041831458725472990601256429399115609960799193404010130202377672920941898396579467393828597919323441260348866625099294004940229073128482239286859208226516846974237018301673575854347085807020368402039001459656679510148364685997870241101451164693937392242338057007049481870599598107246290798735599230120816654651293282818466709442953654861280180963038636442086003524757130702674914741519751951430094799375457949241109166244006581289071024301745231047714228709731434832982189268566696484194288197085799558336295414633251032590253952498593619608227086360334699693559387567060573613456758311859534048420472488755136288930308932684235438726651387743617136518100080550411827877844730124990940109440444830244750408406173177015940230076032346635717286372115980198865013458661857337577978745814890266137778471765031091048221953443688561407952777824355649882514681122946325546505445018871573597492362909905415007622324692415225676066872419343514646802738674549569791496593193598156703361898144649438042306139895176634075747200969368664321670965750780027701846570485367600252943065024139885000734228033562268610970895064200991354363407987293469764178884996899080397445483486965976822526138869447663599343496213317874933809242064443775208894826649487408291400932762057685330921709386965428526220942890570970212170771187351666192337508690543029377303794572641437010799496419942884742649338474630691502106471098202287221170441483146729420469426282870908394156152357657044494945215339106570054001103383226814157030249976346034412013946069067151093383458565772697294223390975159839559942898375170762772319477768570634013535870724850619669641476657591146585790168532259621787894790657746828753576414346717565127172968007890952935585395321444393496887464788638988736104616089684479915282408611111081757894839238353163459404275463703896997708789595755973274548182536994876645155832699481635833789917627896700073393869468014419543370669848287090848706018168701842546429694627587190613630565966319701857431748326535246719408813904383874255329619462249695323876587124768712762711517470649673512408912707789880876071821265739685823042534675515247583650140075796436013494205692904235630893288983951294016798285675790207064807230620610561922104183397208987793641410943856266555617951739279956780821635863701200010648614447703656674152552011654086630754031188021806521024875250233718763907454583335600262829347650927403720940945804654513702072717018710354103684905837299980135646680661527610966236026177395623783295744634510826373525484567862902836892713865702939534568856425416840702706999627845272614378255853779791227244791824313434187901540404630677482114297173437807859562429048473165615387309123124850395826643802921744942082783004321070108961584615868616211950174392085708182509576717172979165430429855401705356357207736843912726720772929805801272517888585095637340672302915102935636534076053505476039050913866274612049157572047571688211016029348693141199094856354218608015663320005053627739988130444373809817589700415885680600446818490719520918301499740854577330415674609342160862365557393527810581981146505498086384646414302967983751077098263766548547639638157518119974347825321942129797188412934524032185488436679503223454754518004548639528007809709387489853021567932468366161038296653588695922098615384186617871341476860921595960565683347594177362775363396839207062171000335941856994478232457289834754485673202289713468494865396993679219318083892174904117077662344434483432427493860445906872262285122389121529392551917779898118749622556872883918452818835103472600263918853557655960063262253035755304201053603265647977938310682819556392153278923917034773175516727647887215095850105474454036401681086834150838593467435559156446456437552098096584504123621060186065349478311692757103324306379166615105668393227427927454505730326447452213145343074242351737347738563525877370069504427841181027846413520544364189168885678210848309263117550968962769721823193861259001250444337426854073286927990494875147421814959085846303958839351663828653915101727951397919695769497043210378365936965324485865027860744949554436573071139791776444781691097723967672139012688315766355488517443738803250277603436463139112471075849194909916113801756918328488403534383415734049899693301396426727073822387276163127253384103529478674666630839021316344475324280325505022573166520802399331699787723552385328973092431304774976222392208324452921263174225913737386947384722359687363453375206716391368101137359120663954418489979952090981539714256136157771495296026003773716130796435451473988602551153373382860511969919341450984873714072690240463755656775563980850272262616945816324109717773770165283274069711136917000385868799514995680785187207981805264579809699442188270979165677610526169871147073665534590382309301653209366932867498318269412424217472211644740570525308847675874956950767216178709059364473461130328021650479761755496754859190900470121033085402571097212953387382223793872168556047438468010086741311909518007053527600677014773969811324673366301217591473355472560723447148259883020368304270999309807664245638791564494065033286925528001026808509241801627207393991021969180883823785771163094453992494590461015912712151027710421242482050575483774148414428071253535791778734587831028282830420817195953635381036023432624493848601906652450158710228378109915352701953205997861935386252030960855107949264834507660531712479153607473361762571196347005028423111839739836995960018373181531581733072669718911196027682966024478331767546440980811314468588198472843745701574255227393802970441577998359417593614885076392631730233532884274808996082689430855146635037875088004075484801280863013282699517046771405343335318644468876029900702520647703065005815176096840840861812541213651025836418596653095183531701809188972073416129113013538983209667083466657988085469425102917410291487245627312030656932063465950955293485932498281400029904011222554754918696862838366543496060726020127051894952174727520197144546882789007283152002412043535349100606991010150072453199805058319109579973035906022020148582093766736846436710067603862800288712208733465546341279983458496991060488314143022585437202624366849453092564323227316014926048538669036315865289603978662846418590364904061655831809933162986555385823603412798435195995086002502214407125161947619334072567036826828117214052700010288649143861980337895455021340106459676779673775662792281971174449649067290299374167894679726762628238413402788206152194118150666452741806826029249504136284655524062278872308893941623299210791334873106928806310737240289295946155055911922040114622150661355452238890197543468263567191094570202265573922991064632403986129308637860849128584885223482931036944315226252214740679253457608076477240204767823258735689078222992299213426177006966030030715894437496107865665473262769150266107944366965240033436476106687258787979387263886945263941414449412886792580838466445375215568451384853513444690867643681898921660787878223956329546108363453352412987517244182767916515458402269485309464327054849220894768686053788938451061366231524188291033096145130777973708287202208867492148178270781849141580901185416398208766958662022016300171949664293043819802771498537888561123110877088527997069500078300287530436741131180908580162096163552675914521306006103585761966718639492106142579097945566254103772376765860525686025194145292952663255878790020114808976569620998204067166612671606260469206526211428441916227288443526150011778423571592204514805335122257459009649041844659929858490398115367795538423467603105580780148084723823096282431091801970541828414180270970712365609975918085314754268545533404125542895850006911351780872271807169602806738293161005225332210187683518633911212912792684050090803698291189301605328358498372864395449037729709893918197141554240100066931710058183309863992640767625722932048996139215006577986752609221394399336259750433254330763369993778598165864160724510998036506241566708210909252025096276880278946426301144613209190324129880721917557001739012417032190568943135036366038647226918833054846808884903422910312650555231076035153930911327219089468649674323673123982795866006191303591921046560972246775913561593117486694433494951114360067157734555125676822006118583208046761670215444316333582887780334567612646844231874890572876014385148807553735837429070492054328384904309572608850252140512549204037143322669820368408977813609221118151806596049706522265602975820137751727052659283814833850640676967442901166746254370794716003846281662496700999337679904275404559026204543812321780104251284827094412587821597968998646389082957902315787146613611511677278192240029644395482601783248712701575833116479827868674395851760476230845305077924107481870601963888909695492250350957012300573127739793407967959450661266567667540068909106072544260750639931648208205063243641482729471949651509675372569539884796218403684483717698935846404082212115255896789678272825208796989942700654707994923418318659273100665836562595123182880907185026333374691411966017502487553281381604663708494881632691272060351866471761521028900304920368464370788756252138738960674997529470441824422093781593976741975798983667464060310670922255817902886740341374956279397377721554503592408380650254632609822844486637197995466201266720613168940297118513780745186077189011367777419604162524831378963248125539693885435765516011899580908090257874340684044867635641107843514788674449938415850776239767930399186532137829482860476634296386184874292761768210534870042059470986055605972000959180339333262223593007352962656752705925655895033082994540868054216381906691807106860882983801688537402733140650184854863950597097093273540972248991364869773380645599605869150600502988448753097605079084076130269201810440344402460620207935362118989543890507831255464099604002781725817941046087061047510788936200924577098545394317320104862167841809406627740684317599370116245047043719385960549481872718065242357465263216553776844238609706556728110709732481958145814949616483624519766876967020761270372351468603677181901379398256506372439654318735414314023125124295944525840361682135292401626049736476497161534609355428566845181400393654445161862011321136136293192612267159192082509148344737837228885041160760015584277705205998993242114073513141860440786555097015872101049653131939978979746473878301672518225176184324869641382689062374365243940436507305298990253100629594141950301971133969121438371666167124953263512397439151637254822448706145891069012644526513032199289676427435968630159839788279671555849284761183898491441807706183122232539504134937708909976834147484218653978048404405126429727185973405091491684698847180700019245713704673786286758982335616332201657672332783101609051584077943868223484585336975705705904504363377702381620858999518994835818556191168192943176107680242920731046175118748791320466327247484895324474589901650658162392363101222153817478156429271918173017280097194785111497602788571824250193446021619968605513855432617142488139796336574620727620541364694229049457711334508521306863223223373907751366876954447606406650293659586036758790856662508685610218630418671167369086097226456192037751451368783716829331186486104106913333239228904226791416241031616865540081166345006097998122969110419460438276690206011693881642528222255718858019153914426777802768434686114403810406515757469141569732256738943626607376759716973375863858321238969695912702999310077043420928920894495838203867577551373049619352468362506278505046449721522901367415730334107254633017932059543471009020278041014731025177384412357884696466730479929475177633210270671461646202594800361790970821929904751521345391990169638202193937887309878087056237334606110694622685027511628329347278760437264820677075831859918399269299821116695346534556214884471386709754939408633399517207615857974501134107635999982462095865793419363355473478915172791986451171519767285957232589880396000391644172443242135209975760641593953397438189567482499944528659214521778406245954002347015760412401128205908910108874308089131621011726810780958008481973552712838222097565796213102048144092664092014194753355692128597398747965759588062093439878792661581894671050486545792253152283302342241021330173984653273721911203772391921191621140796222723694572581156486578394789156216781461610396971417312939794784859764410456296215996013806403499961775788005321531568296949609891263787668197547674928201304924097640518780861329099365507945762457123151746688620990391767378241985985722921069172593255591355241689295753370378391444546905922497820732595397115537747226502764426035537735591139955834501071635454810940396639017769079101979959372571737078917366445811908287378280500661843902333682195332599390802406149535120783048703428215807090836161801817696522819872002105011395070138812105651053221012774100107273640943029803895305708041588437789398260440326471410402417243043640914282833608445024537518321309535190206007161769703238717932911579343971496491850860743860735686300018666369757927797621199956806789790875744708520080385478611309811209191075778566336153113066503560639282650304417061454203988799206813642348604600627984395476809277474572833138881945866287193862015653570036478777677112208970239656921962809822652569160387554972331903171857677530584340274202298384628998275375116069112396406906609881027666491250944242437688694310596600200743126038088372891542674265654507867128974141000008082729959130117627110969085503314923811744516359611212679294209981572020505254722600314022515085351092061899143050605930064854197633324695636221558062245071463744428012718325240877726498775589523384581879810648713715613844937711451044231950304001289172174144396440721819858006963724913159580373815925466408654462260716225146025785545954526084947406313116393957692021078700550114180642612727680786863621424020101719842920483325076837343786871309983719330390573407507266355903630884910570475907444229611565359358133138696650618054151204945878894863264199434267070220973439911969885402871526535337331209431386286819721597678195242887587872901326174206368741937995635817892489575139582892479057843603884465393863314014263099838014285115587765158152701207150004541911339619423015018189540869724950305404634899689150461346782362926529218670486850014751447934176215830595905523095496709589999290201190635182327105877452551764516686507477207924448461231961836768421881030131952600751077606389591343639369291077417316643899442712586982592530871168749906743795121808364267751339337681202896550346694436702052449463378723799699627318879664574654340113519119818013615759948157981917066914838064793314764430173729052344151204160361323427503348239580776595254442172017691566282479423942074575036636613987485415979237018532900797085988601975583075495538467917009717382049724386680419294890044327370835439810496634275031477124407572935556955931757450993014779731269389644540407978716464097654288435050011148764050767300065628713215174767515243647889063957996549424729032505739684874263689394499186745139491233978931227432350763161274629480613015228522234508707607973515882966419991994164194600585887648778021965808497950163406523521947325974777609582981427034795012987389712322324336646497020009446601485666490537653492787078333985944942356382309223811571202284873935766535146912704669552407423585001339690353639383042412758361377997102872232407658732233365589922471415226847267389173289710148248480168376271636021316599152136974133093097113532260338184110193950683436796560412899712659938749599497044616176685086573071044518551175758306480590554535318153212405571776314721817410595001542359318539335077224505083908970742239254499646965465714492710477252496460344324692121403644134117980696213171440079503116047114668499816254757808266222114910822119608322309221169273031432763213616293725623272282612114127649264793477259638084116902347883756334690113171642836638739621464285322519079394058281948934956664963012774523745159300733579579192467462833477923658653100124427839655554631299237899584525850783547805827429307055171674987850762139045575120737532578546970568709041989225425289615894051166097502682580586894089009173594046659604793326537843603343566527274299046240073420786642653920018602963571941507862702115320799383467131951900732856067441970778101086038174461420269615754529798681527156917100722300418441491728328310777044088465655357206502359969071366144382555622719947950984162647255858917791669776297107650369238867475296125452014515325639910281091831904089479931525574780075511621539292853234004541269193094391282903424819194954834013079824109086656481306471898777208622446153331686336682264254980598945425046222456089794849151990053072307635933828434993794640084724830266332391564609988314771686035846249249094088963566706304199344347636068394537072466373703880139845352168427629124842928454111257492904862284656885969832379925896403877905235992986957995229141174032804735692879701862117214319026894078143696251154622840896794902591325250303958261260237030410928847622253358956210405167477725615335251476356325506428156056629898787889487293486595490665417649407644523529882538681019616733199124731457760814040459197892653813205976716090874955487725863920072325926907702568485092779051249796879318899817101142397444540006025430024743817108153303363792079979562911809094557684047847263828782493872155334206200670349544479565443900709834251032164087683000843429275600406091878822238402153069112955866851269251679087566169060147910811797914682726801036239091637924360230091485921856634943525763243879377229168436858315176832355915411311642840055762093729042165925616082868453045109925112797416547621085359701645364015016070802682749551514358236939949078392313921145838054698425599111599911842940497843947397599031168657475520052057027790539339679009155672248891429286751078739945449420545588943619831477762022287612194549183281800193452094273075219138236968866268412542809247181395954474978154467156167773636949532120821710570933086042753986971030262462853829491986418839443444701446823354828251386741773328932853919832186055899655085058176074030165871318432177330118820974763436251605896208069919086203148389764940860394318928253624606523269164007963496835664369380529932942044879862829222576547798812605894517830165972727251770755421102941245692252901722393192134666188213612802916749086745769446708786589407372676631120101739614505698246120994209845438498863316599859604814395250108807852422503580101744343799490046392870704365805071639004087732214712350229512008411011767997073878018349422138979065446451309950260630145495988282680730127614968640790591941343423144138246361906246625837927933991043285620055272307111858976349988976737206551500743016856040891852751831176903928702541914548623604845958038559897449110327091221754909606366775026312749616084293977520576259793789208232623487801748856178650388742268364683552219457764402388726694970984976646970034717421523987938026514873947719182613130705936172307529083836371388193837573853117956285081448017510683766198621758662355878783969844583421870217334861709221774363588458642088828518670472678803726789455323851896217602257634539664198617593447190495698990826831689754833057629792492376359241698690117588737263024581908609917296406693340673931207274064833199837229631707558705798037725704644299610036444329606733267925045636349674911985787540120872735136944243538030471563875123530687705318657549989567542489721893117623378220787841253231114219999096148769433845005184634321734097356483425863224206351878637913501464700115139180484987072617912757443936472777598345702949578272924045742445107957840201781548847888532075348184310351818798099425770489133894468510204018517280501098119560063858854977195274617453917806449803404473258665872912900723350175650715304730159427753470396353047400650453833058342583370660552209393200902917806474397750293302148789717687766940108061346145969187797841413105709651771647120601445853181340186167461073597014871960515142523372681593035569632381575557947843700010477147340116473067131231977050085103765677806622204258347335588623681634652331620402991868036265361179186987031529387194198780537075724565562457145200974905305791737807227770546759488848845720758314544620906559364216247096513866201639611948433394172722207956744061707515248217773026904504058457362599539367751339839424472758732247440223791585420645725373440689460374743378902570623271645423173173232505079712259150250510487665174312631740207171195405669823801921178294976310479360164426037272604569159078021787452894042328703844765179693035249235959491108941030044255836362288496159997257742615031841213351748754180313411246580459051450110710551931808301295723402312957552463143266050905276035922277396165819648160787582351003968987239629790376958034850817864993420324520760355405623328816690240221145403008869899436977420173233521998809539682099583294235112651878044659821088582301244744280947403579676794328492291605458313865043829527589194473662309270500758391512639453290253611943553837433325568742346949817793797538256424166789614117867185822463749398117888803505041227824239363580265468475294115886499148510892620062184583746173735435060200479906416400213940278324941818169051234457271100359574321854804177109023828599188674458802348191398655085725232222348677770732960417632867992411114862482238258313450010024223437977322728688660120327391085553323673871654318312259917903182295659359446402232018405348249289655661713349644988361224866293184688145547949668871566199914752423159642636466212191469293571406697013254869363288869452753301032750102683157706632422914819060958206752304783037667434925428356162282719871446112673308015947891245517556490076159394969243719422308214675088508722716771545712645263686925294161717212208838143979214983994883866981797483152519648920586262813186080047325603293483235039039932854202459975206435756532973461723409651830495784353944956628627885065892540079894755708510736258089061627366295316156957932423009667166334772951689240212586024833720689846181971377255372585247151173677700315491864263625212273265426047418277655136016897501560386531001535780088906707467525064111814333138019751028552704407741467027808013412247218993429842066550673026837493817596290098952758902875274639000697896527667045762808439963960078211235449058231899272236403998630209123704467430784954242905376826619626505610168422982925048666021504535975528622615366524204583921683412280732363225753732721460616500116590181519953304887115506023902263266691255384227797038615109863604601386021601278795422494492553778458523323596805158971153870312253484586741535652973691918921273445786561564625270410374206777975292390569279884994312680290889920017580378244477133087606904758696795292118844627165944696807006691560913651850261592432570315413845640370267348544267507620304841236156593952374106981574331766462630876631289154018671245976628764739925180619091787356313202757729349259857738124913221560588427799571614650438969581116973042537621673769490083189114607453288625056722417567302304428388232285897380965640181994071274517866055149831406252611744486571799516901487012229681688969005245010334989103864191237248638610679051139506786871128523606875204507249528094833340521719430070924764148621440524450549441767536495553121712552874961310904783015826014811821985228911455358190484987486576586844787263752135669648363253337029282994876858573625747954172000892317781997933574552207209401933321944202338571156423432225109304534744178063645571557111192009265888266816023302673661223882357640125586740264780562643617102819328034770110465290007625322421452233568197067877768978160613444201544305638084982031277703959391398226888223789679190668228646581515659142091229659655571189958791939136610875827249215162282191588588295770999997106065967274102558878441962710264016059487840841139677276182672448619192914007768853166679782982890752014731247240701206965428015970939164216132292344945304332493019635203993539034941725746405491726316329752506305730907020487644765806362883241184806964093273373359647003818674943207653106169279676864839481127033804363896654611964491305276384189281504211015848334282324398805576632962070458197307744651297352736832703198921776322634927710423611358106966608758496256110730277838550820417202748246935138945351873439977233676434978320452116400494202180440158419767422077529001052562009246213486233381852122532166212827525861505304724952213615365846562624675581408034742069826244611850780300958451232050741335992694090236704104575118453691601666665956252754954171293293003720846000645381910688921493912386711571076567979093916391858429661299238351448096958438831861156091436690905556298933152505121570200170260327274592541679214782197890911676260432908838796427564578167440742223578309656807161588212670101592147937281281439099517200210766701971784110811797610629217505517063431479463228020177807803064492820001098576258606655952847964385261801557211357977079365487951393823755905046176487742182176027836126416351839758956293526908562889380977494057669953826598459616349403203630979460093703871713975430193824230150435262440966881942976956885092684313537261201234417343464611147678774453361650052359025738057120792172974997644377393332529456886864048995739223730611957997057272003552743566431146189568021325610261154987836072362429804634200289401046171113875475411025384320424651367147479257669162897706216583569536875337372936778721295954464825670499308149605519055262726001267369301840083900371398572305547802965021066862506774662280795706195133018802913818699281237660307207130922365383389442285161613935615527225440361112160998201684995220171734997382174464146388194368543279473929502882185149226832511952170868264351698975675172606471589101876804751207382863207840248124033009535645733802247006788821583539678960830392045920015220585294661986944618625235988299949050859177851652721008695595205704215148833167732898139607446466501891658081727572388905580236894567640555661723708052609704432677973957770928376970003890763081380146769027613788599009616130429428899284685963950242150507468162573872048234569307874253911707746332062343444519263414138662750513777248937701542071596512055811561467226476704816958226654726905761484254903298454127574432164300487484760032871165652811737570739280337507237236430508206355064319200732339359808500857255394548512808008040592445695807030297308240223105165998699124877815016314470984375794889417245622390818083299972906268403165021056716127902875308256302029792055084054611905164982204311682067396551587432417183584656112974376144610679734291400401164457855616738689091386888292988871501566905644412001227082342385511316289092915903133217235501719151956341389554413315656616892734616688258185761156501091396275986131626452007802687686928310715512699212372314726275601639900900648994038868069324756703164125118496861558392019095118575627647385752420786745320032498775396082459484920135975891396632752794019972846517136873720209584471705602098181423565390354084068019376092622758688340757241012282788508621859842002612671692359260943558627829283792957244986814308836773248505656220569304780397727739512684399542772621188663340899194495398178067974774082888188042838629049092758756919181661698984059709576804207936069785467267791379487954803458465499324755287680945977622885068224873975840229422966327180478174787546755550608332184315995474566988396695972885460558952644425809733965275071326266770440991520052366278767670786411715927674182149415808040031563991478905645301812667270783000836158197469670122501904081379643783594096647045109170445833509956899220028496595630243482189043316693906063747915759317682719111875557662745187500640736123384350892959260720363518842303139679304994197143184469967742654749480562997489335457825449774752835117639023802741269209934136425291795329942114861878458463956521335049313098702277508163013894130584468601571545688009477150288992095177712235232204922901309395283337662568084860189148646806968069489319499907651684331033769150027592728621341553838505877460808407690597076785558572177274172522684501528157050512834597478259919217525148319398449284712212065951956329955188271651833526309868457191438399321573904414773268689055988374766976845811385952980639825767905000987743797442834585607669085370852651698643144585436752751871816664796297429142267780389832196233308348605573719564810295514420359828240456263348180858260450952703996746163757036623836475893506361269331844507449973310289675075887862345467326684994489722716960362027475337436963393494126449997928536805745327965447371298598455952300930206877103434736543449965604043920750007558277993555471288564170425609856433458373720694035630479599267558963886988047400570040230955141418855270483251846859098858587235822168374749953564464605395396704668217619446981138792474566705075867285299762327128798525271985331746697945239981015355385122510703438279626416987492393724770175480954778457395554534677335822191881751734433722234047016611954418476131064993612297688626926682324610028733850289287224498739115722455156764100834551765408098071645554092210628281173205382567112412808907115716646134096473550163000349188400324044750140244002619549282718384088630564757104789356416523431601158855783340266599235288182296935277163315732292900256454836929929920007022510981925279297998023737044261164002554150065615333344612752354724448778670277228443221659603137234308523758095778283468267846781479558936630709775016491846205364286506003310669278152727173825186494264294779376410119898134747982856761539158624546353630623508053113144056471081904312756540123495815382024103247282450104781338762169766648741358144427112833569454182443253847722085655616926432909075394072976309901779123233819126945456048307449246137696232616637845432485088289751836180218376674303762255093281890291554203212995093220796732335354297773414542890651881272516678201146065213463011242795138385967422604816360589227697768653613638377476396066258689393925630069003115081017179102355878324591997366224190743497604941739197678655961614170867813930515414036469436588764542456443457532991018512899943276912214911169284002703683652947058122406656166485955361248624520782415412984408634767298999777487933743055116295608120895368179304362247242263336732729773521412691016115092330064855271094625173917190579810493603247608672234465680333691675607860646308258181787390799204905595142102544565608174496249877842300662284356245537474601348366488640199930747673978213394128978131362622374825523748618358092988181966403710977637570610347995663804619438223666180663403664075056633569419668532372374752114349934293591282488442337820344377863468149400409289608173127616846564330833601873970617391960098331766266153101540643523472075169328857444721494903331544349885402091076611407560883280205739942634661779881026836849896491838760967527332971835684861332195840940809102007067708968039278183283264036692413380947412240455989261727271356615345050159118796840953239544561381771342687189241169089382632484848824403444521286511674206533459092275578952101352852190790414634276929205670076414479049076266682974781086934985277536153836472871731167447454327004283736663578343398965002987549539655337673795116796063840444121693705004766257380276477744632481420396104597460573839161407075641433668865408301110693494257732561249119385277169521406090085656842774722946403000089682976302444060506457892905170374443475934016633661286427625310937008522170723166203944078575986756547149204899335469376142834321543947011571348189888664625487591265813470339000724718528078952216151403912742722419185332747936061511708902930204936431305615898206688068467839956425135115743468031294985570038681726558830260025472490203271645229182378369339393892037869540343345888875351646463466347240426931767043208858299855892616467704046896253954575872822938471558191415603392374440816323247382513828507310553563725514862270330856180317520743430419635877668973223801882350529527456208487978056593280581054595397614288247829051888400630041291945069742840988235288581376856251639460777302965905585233776022015776965038317473968164483352715214028475766853722687747981452241486680454699061635498295666992492560691962021459911896162347474719145853732866518586095339337831662767344640638070272905715966374101675172709425645332599561683113617662840457764846159202133611860662382749853171790698436972167495193914178483820827116994217812226359030148657020860703278494539595077659603779341538470588845500177039147928248444781410295143825850881095883987035421974425368569209734800463783839096654469284343869204360623632075065251021619617859966969142710310187516075587973800519826685856635722791979976419402035591486521558734709480131375264752683328982586245896114322096949666589010329716959791488712334867989074526280785912513322211988651761028690725774237470086493973765872239288319473833466622193700881644833823659942483617878833818948389341793561748262479159884514353651699394140533034025161726526895693778323620009353055366775763700311384232523049694022928400705957857930258073513979848452383254913862123410518079256483546901373308231784770590135842554384010048021147009910329823261173586484938366053464197039977527974744586121855281591646290307570002750715180880481128813511257066661042986668058121189975255532254720592384999613115514761793873451842974433808562659471395548875785678055195301925029372201374763017554508496090527119267694848923370450250567591115222877384144132460230703464307710344195625812921404242869017171153787745387908025264553638170705297266542434258588048059700562150719587848967435163236884879163980807323352663363912327027923892704924151045406457484992250042584138568786901103595290099349212824384699497141061067999091893979043652338827025586552359367017600612787786324912187463404941462958960298690228698341770360623638168119119126972548907926473626132799981952112023146292605902165886419362758870694392228584254358068432215938964000235001041136431175078923950594426013475437051769685896738709671098735391688524361563086354736544856190582134119822332292737185826244930352108567772138108111935697200391748921321649446511488767831723742643838545263863645452018888665439112798514670071453852056252725636106216741680799780195502723333187696896056296613753483738802146534587020842738388417726272821134545922965765646509844967848682113407964492712565535159161750772993249762809862815847876400729504755379779957481441864709793328586907331228532811288772793891993614112099379112295290895666603170656563023857478055082592624611713282240242731084570932992164340734159294626808155374081065156746155434365288348417322010920748433244207513355149977195181312442177275334390437328560929203659292784813396156793155558093267017756246443088313546057227405300721740021306216901393142980347322892226972030935523910221660164142200299239167467397523275946497838360419828953439645820756464569837661355409107311692253988540579319551098132090230193601599086775996406190313468491741584531287961890536152511340065246628949594896577250173310901065947103353783713435813991809690517459409771430954693043490428399111718099259773681295800831466528455391674947900852815968305969960233037652451363515302370994978900859394651141491486705286493725632160462773885567061995826460391491296418514644224629674734055755070481718845872509205566509942752168765925090671886672179953173195059868692490567413277613838123986753617056624597642117657750448859858470071342185816167833300335387904614209344816359125553502903326621032548370900847330428548130489354941341784319185612706484858754950116685654471437026373682458201558903768046739646594950183219564660029814800538283726136858417879367503970012264499778751626479671573756392644450878727773055718781753710406127703367984762681574365823817974396598873512741484617115923952476108839083627359262201711983281730827699095626277214435470989641439538837139409120101421393632369669077877513779960118401167104806372994196497522944452707915105638292042988661506041517612761397388140395423131730091371942743625870521508777431077049493238099658693662160460708319578712194697578761038031611588039897333169549187215505941279360431828781506709737706949883877916777175452820503738464951729148878216469037897659717143290358358117920842317461612501961949802645651490902054397866132724134727183649312630020445015989960497689523160683509019249995067098179767679966074002703097212936455407001968204607375021297756288663263752519472123044105652452057462789209172402032973478259079118491792800011126542174502673524900925990401136418455442101309759337565902449876929963611477779990698379501295310998880979624529150615521084377665379000288621500847269799290717897621975192766409941231116434489435972082350454144638676109488154654049455743173422666094176446154643080729201484097549872502910787887935402838839078354449964793317567061638011533171375608885842500551285811143097610638051682465764446202854733842544618260967499822979998589623681927749809062778341037668026633475577543589310926845346546955245825918498779041995508856551474342455855550909371314029387750675509680031649777048456200346411806684938565824346634370245709421582095064089606210119926229249096525194037905701148357490031653719014507606567888406540150800898542049422575318401982939121732493967799474998230135317998388496930259400615196925560147037919041011791564921554273507580155603666182419799673901572501525586427619876712887882093848626989345697507936184580816019729499828026539641993025362592336714910461564553975471420927812223327090329671446246382132040050371044917212733221706661897743497193351494003101458917859703315404598107429673071422852806203150631021706215291673244470758290043559814323814013179131447513678604769401573507562961474443284668266822807744170458778208843522199487644706366447752188863837371968527030198384224005483080216754013005214223928753352034861448282732173347871904533553538770422892954610246223055280080660342556496330290665506743946266000121250330843922191309300649207731467704505480653269277445258693772557657492680682331512501137670560197665139419134772460965056687243376043784599514392521635743626654045851421927322966441891247912351166065620123929765502541397238797696567002562599974774389956755755967108753549014542481934659082061269482780386161347179413876228625534758321459537341361798266352332206961948051559614536474338834691902706249207408394991616037727024249195244304591574191650600674413401216216749986648010973712470699525565232232484030026069940392505948216405881329226602497674220102937322376188522242664698104579848970529342560330047355845179687807766987534752760344176557391864190383913853412529628313805492089285610650969080369922491785705108132762535780832829878505005307983983115351330214596638119881229487710811918477411747474710830047070833927035469915771977311558607129532956176961540135486042906726698696946832367909336380853717050887312705972017750961491788830076661368106894363550416214870818015791570489209856233247860412085228494455503937418593736785671753731701906690982130251811406416797534093133626131713722256640587245178462276422071198833786584980060108471687839008484045913699882365239124562575983769513977556293060217678402256025818969378623118743492290731170838162857158592908607302576978969164989160249374335967728241692248899050002316783564176157843183303444249766825705296743635951968740693816332586232080318576909841884480742337131351229529941680707016606774951213170553460659671472046869024971847259172057347895287895584065759208190813115361646536101748735480841788231373018793242798852606908694960205360603927182561703176425100939761945878736595410453203023431036054424178425049415535191632470241918159473059461701796931232003465891459089172894908976286129054237962822646190807030649699620470068478228335482743543310979184341129709392207158707408121715198259154255494478519767095363498150803256369218931232153249513361831944297984795575638692451564041594523781642325424263850283530121338523444506713310525569313980538580580299640157808409773066117847670147062992066111049214269425671173948267409474936760336315380295410791096185918171611659301578443793670170659707524232282490954238204204661550759138918925629338905951415129725530173769561541217838916149058508162361729753175043677923946718469467870383833195876428246110714868428739165223021988593856301217442724875008821310342201374050536713622043704278276540521607626144061529089219590208114441311288539322085715755535423246185697940196288931173382229460081888557271124130418833987700495721407297617373178951694650627315480986984188352160769001731639151485041606726233160133015457919815915123055858673887641727180384566075185950543142108634647449640997076681260411238345372517375516259603489230108299385488999055010630525769062074128977338201926374421730193433634365047203552783001706135631584441582066629356679296221903852000084338400985013298804067516444237929847929438560886371903961499285604053593041171337318030561456023226750345913932879374011866707605552379952903814755359833702601301979562655900792325186067693374037808933760387258599541945142028270808490085142119646965391211281688277630866956283809235281652453211534292601196358375591373699480510026078992477072676202416213017907192969486806359916960389362945779834853768604369812683194256947764027509187221371899272093987199187998600000361651499281132916109227941013253694146648215758967944404963512735508775274986818086143405754870385290425014539524333287162860800655343746103578054038189704158105295048349938314616044973975974318052548380396876326701663171878165282460693167721128632675741544618655641232141042517467224048246602381545268404659914527183512923192212194625400892054681529767711710361995114560504751754995078474723012075090621139093297625297588168448753598833461932302826991271191604034140401992618848464937820890319572241128763287417916676909893743490283311841729665455660624661950269348492599663281152715454923914565410990603984568450934262531075591623462507301134383981085771283352019593425534646088731638213288329355997930433345593488254313440009506599327063093399578865664868777578053525433616894022617657497444865291468968834840518238081376835525016294516006092307326484684203357498108507547916646231757603647717556552451725172843763751593610369888002691114177000053947530055420206145585607502676948023766822605440307919907962559800417707206935812077926594481655729840992872348215682721940287155493285211319888942155973930324419680810866774148455621586510974624521142870003519207804928764853922007680597262691129581631537057573004472235540653193679993217399066826397635249900033917962615662923334660865789913454493665740741165026025558793354639421778402813708640246758489149822436428706011347290427980479995859070565898097054585710214081251190584496479864038871972968898110600055055297418493210803271927794563971063962190207465531290099709146438705113831420079771968118139166781481340591921994604049729442569138827270567764250633195672646319051470724112358126295377094161862255189263707735127859644398582924055604174671985930175598814282158031199611153631333317018293936546580399174709888289999492989950148860341653282740608972941711009464393119669310538821414812254078569864791969143936483864105440348706651123668393735392175106064295979633077493844677644819971756162787378529666296542178149462581152885773119894051981255052452232341593601728117271255803880073426081728004061508427421794194863321521152377169550200058601948095271930336905067219404809206184405304585052974407255355198441750435956699165301990210034935132433792070427812862976497908630914548406234300408741247337527570820302941365782911765916394223450014616797216282870798615473466613749177696581184175673086493654765107495822720466628348185205171214887320116635574438914620086725968339465456457251951790323239740330415811360801705770525786744448515470754165940962676337554587096350139957962356162059919047723362488314418775030178686158031194457338258353055743332146480476718654737327684426692828567506870890261918343499552680553189753939954498357430011394733778389508786210046527336957279745717694174220505974662837470412989429863241610713983166127015618242829811791896768824237861472270903876973857722754728386767455580848128893357454123268050395975027145782693306535336772105103746572289209877821600025230963256902648482037957992086687658030122323859894082885932310902979333560539423206245336762092200473233900909339119371792252541618341048182850482951860489950905025520931302851315066885430695216611646014399887171361295883284701427511011751070310786154846551411845972359445005444298124989810716785195146628405696039831708719308809429470028888078764531272228630731446269693025722183010899154760311458614050672690782787346170767582735348800827241922784416362932414966606621381405056052533966689618729174563155935955848636950161891557065888091527940714380552841957050576117864321842735346582765341460645727472308040490584387564809868550871112776625170703210662121778018203349319405958568981678400800145915208921770869026738508466110659457580182573860762167391310640168509392823022310912716187397794068455437194116891067687336427569973349057080692291144525841448926886679979353542628715186357395253940677963743492966298544783752841004172823967536259086127383108670525239610381047351535103407274721907951572080068664076263376423750425906870304300647570435416435607062866540711228802796471275730588054036397907840266370066748465152445833980587837440258154801202569635526028676430460586450018700451542190837839432947420206479272699188720879376448708274724956281315899176491933771132516649371245504073895564651002279129187634359136960031867198631017940932454438322070867438174941770490058677603371073027915519628985207640646100417837711067324088991730063137411750928838245023461176440848114014512662098931469410033148844593813635605948960084773374134105176773463840999122836935697576477305792354718574305726596291921361732198983622111088855115565327270620798689496666868332205966689295939922170601910804532623743212307946053118503263281649567055194255584862615220565333022851344658759052503554506903490276741182521683633100965766415124577147962341378399346526898711575952336069885012131990216597658944927111423098379748407579703011698637498275532936607904255573139809116116954245800106873356184915795342129551390628496842289109164836976613747370422823447316799908782025884752918562778796824697020349014783515622850670118610304145045300060289950227870258723086836830062725482670492095138940515261391566036370750453414015473720271175459031016926147786920298226796207019400660066368961869055570655957307815767951924423034197963429158779568927301355332949287240028771468785160733226239808716642406636554272667921851294654447085338804541835282920697098957685726100980931731770221265106546012205794815431773708527193068546679602934470214330359427489257534642757515673247302798952115025526015845873186997456716561896055589794819123025499523758997970300797332212907906610893434444467429918160388750677260735740959130021085415575202119832944172407905516649655439284909654665108245364701456630735036401127426850074534978091775056058631462340171205379676298565999720673983885421361468307831325095226581267676852479438693702931343914934205292133602347041501950232438175164668595737099657370289002357633203048288384715516451425838055858332256854628587186400398456031134728742601115197749430698790677884444274000058844624306829710699048910024833785516940074444390463073789727080809325455008078995839716682747634255618764317600480343453556971336704163482994406858088988744163382399068299312603672218550214935300158280726967266086264017399844841403706842892833730062830719049279273311751100766534776315654386259238721240170751885377636629444780563600778150531713702234963210695095127310405137841398033226801973323402931238042645755191854510146310227378515429238511708963104922812052287486083194900402094739337135494586793926530298649260251188774114402361463149587915458579638084672651747430874322138565812942024644521877853076182112560217035362060089943620206190972933596336599747261241984354790432176605984428150697438315928343587264515257173938471135948510635302094973123667793383560698243728219544664297788385397479168601456377170788747449120859906246556231401245371459884459789274701236055180747564826893253295267288564450281486012626531702702746726058140912667791113665437623664502220365139422618279950015063012071853432361534106352368366243084638076000566229117831227193445600943077126838790602623839573327685299752440522820035830489416399099401565110104873431707986558057443333264481090652891114004722434819776465564887167004976707894269406284237339832734895566262844519369529591364910952365676455699187464790184281948189961092510114308469226444718173299410049943600554673728180803803635491812098340708204516626463443839748224707664626817434270406788787866180541467491073078917378695362130735061782125580346373693568638287881090953705447904072788527320109526890882630104574807389431599172935349634502943474344405163657243929796674216119692233882109962057963093642355478370076741346622643250528911839833401347801340802697651453554947553467230261989375376552891517432285977300505507873873573306139600544700777889991546283326739430250055653993496170628380014980768202884894176254153903185906915515422001457149804555507954625948289777396589704532568540192405223995023163041808429592185566952283175110806411306575892335882382703310077913981422917445349457987735305044393757145400192350095559944819850287570235242851809158018919439570819189396093274570020948347077789093487750482245698601380712840109897016415401437364077246052858536465812145746365970103773095707070943281859517090815919812273847469002533272483124226911637193914689749512856611574907496537366280421453452819661402047931154755092138261118591597437320671400168085250914654868068874636164799911181434938285941742932484852549214671054546760002839917284524507760568393201874415026732450938499048921888617969475798626241374607538571773061102957111574859232933404023887652086633614535169830427123366049500389599582949765860691723691946358226332145323918572936033262319009242701053089187765218520780359086048034340160995017181301468414356106156405577968980356230165440988259720038382533870659715471350580034792612201324663872471528536937096315668309703603654823609285278218926409581271862427731882836198561702613064095721272840255664523668205141780164214872968654092920061064911539731565745925840540932753601828729695119396653757331347582664176798538658020364049355131798287973746774508499395161030704046251749256433151163606146978646481282650730862621024636220219301974695257827082087823198442189368901023737402382744986621541383542894322882464239239713700670968632168910951222070100967342198082687083037423966214944955551579439269732353891908641278018051924022699777328713069802616362598834155034282392527848968934870533907338801239775130931927779487781187808661184269338285233793520809991888655907833880366758495268170412104051335130487750999464213542738448967887500242612572876115686216713755280940387610282518827784846012520623195412661577558405176507165053468782658034599841639362096483613254293209978297611331368269303325763973595154948998122936326057074693615063414242838266343598999104694435516330372305698812221693556363233524782314861705333293782055910701831868627283103474702966150797178241641246896402397972138829272368308557849580290992664603278248020015097918345752808567118056129390599988284433574069733468866083001522753583908431947320462463750363570073070972097611608175006358060262518185038429431320647302476489939286382393925976308213866318495233155419221484898878684264955583410340830279400516828674394125954468550350608909212895438430600098971526350790059413722979930157517518659685015315712178813015389941621795695485553407511949430294754856643522849392395152558108155832028517170205839320147206128092485596651160526552819884851718351270751513103882624714498250842844073930028843806995119419530224657565500913260222736263284587627577959207980220706798604872117822097227152744552685330482594212482744277758873972062943727303898378489180188242845695177202872526623365447069639709594308467547185104937057087778507758838984130058958430392136482870475209173867971093552211016511615804953910494280631179682666180957059923005247133867544586738838626775898096215050447225346200525288107079254493234066925261857734342917817554885464321031120660965058537444205690712157032433320318700805526293784220688214079455361614413192134104258810312130637138350663458563468707693477796548487415123187974924799326272061735724562077078287712145182425723583666881044391389998884457669716040652633056282394145285166504606323860605136913388507605281177376397773900015970033590368888072868474479113379473722726845215732926407781868311937144480086546574398805269098695610210287135686254231364471543091149589694153318040664358161439291451658824125602864269600095595053770901899450265416679784624664680733578229916701291971095167399021537827435964216645727677977701322004653901499586677496002569661558774846037990854074881817070108853322398339525548058087372302074047692621941302975795930746905494176242077667369234337184670271572477760514657104117110510986441565305919148389982084528101523783670864255328248500426739439674042681071667842740675708512784092797857362245716142463171794976166743129803703555889925676659116076428336439476725506499683072254451458272220610656558127261356244858968677414464673132614807951152218070373699943513720822288393902088670002446118285416239873368978989707287049432281655809812591942215359271962665839766846895339385785652696812335133848018481041920093017524269297812292230756680037915954831813459924441357570366515213592498167699697580718807997988145303721671678390948434549174474127326898173208932955646407927447620571774793905375353280649889347165349328194826396854935499837906824057610634011087372401901047301241950799895231445548862581020481578179978756265461425883466427276463700817688107692235494689551019551256365640249077984874427936828689727262218900198094473642778531001541217338123112272682548278487924324637582423842958270715617267497459455271840551887894527695537689281571407111913977112496358974914192239156205358522403306830644909299667253114024006962280142889100853076120325487128871039025624491740719502226504159798893153676084741874891109766955572255317013621557876924052932627370150145106940944697368642780474718379713102111521728582179974680647238346007062730576954537822864224790368534630265840414652976975544127183826705817026489779385117169422995364741410826209215736525555201605410197010717072174861488186589867484242541430183285002532664812352040063328401415361992202455848911649970430865965938320548307903584119656103204333453735130909872458216382677155887513626845730772076215200160008391800134772694122532577158559400785952187567691940271520423576807608549338656104631290213866418487954351720028782030106487112546753273537090030232974918445334028469470946674590219841932763622885845963259210137989985778190033471498114503343012337955359026498161362510251584280375254536396659119158829402713301025193415734476208615209756615340717441564075655279121961314693855616026750478783146191876940230045590632752997494128310256861238212843802777393990757880349082418375938408367950612453779544343181030057563161943110286526766972634822810015681053873935255353862474807598211153570750272536893422328387647898454487392240822243072647988867203703008362806923478362144436281545036800861294458170501929884351592711062475397907559805733527309801079591760311452881366351435381035882471957701784370964202589790326979596977117861115923357909363789395867268982205943027090655368272554200051073837561451186118157939727601978773678852313077591823240207350578935546335041465375933798894576532059169175158910017880870201968131980777870059429532527090048717464139069213006085994232700528450568912696497432533354830293496224575355405033562377212555204719925742038322294580152673594007291976498599398155249242063403955612505307995598160662212851203443215606825499336508590475986339547888019198318616717991742093606646731582095577892962002814600832571475993639722751519987952486341187427421710325286970607486865112700220928451449201166496484257201785627651558571832661790894181511551768545277532300538067584651068974592165411766851460085133688967395797133336958143621252040465254272325188035849878772442984026374376751271351988831818155842408541120890629558171477880668195138420130627292278007235384732198063198040885093383112689703744964473299143893863964603384737657488368027152142952381065178644994740122867769295602173292725293156807175089964944189075678789840337669068118220878105872395584851604929445863689729079742993332931833295093622557706566847214097370763017586231258325486914852796636373836083784106069590770600304356933818108374878937937502436286279094110231249399378486576475630231572903415452132490236107187423483974557846005726231846673841311176147517651348307247412057068752303717774716609827382037352478924195775650532196596759438263481690654826827820637000776250930815618917964705417983717131091772166549526117333842941946269769365981466100369961261217278820601550660223505422235046655280026726870127361846259495512151625281336405811436655251997204046297811507593731339351643626701567342766025932482416950081100365097519594372183791266144909723470137998080149715607730868805084670477160808509629602260956059761575132480409846537705415962005097385257835777533047677151314969335664272236880285325952238857337521396840002222684608739480170748696518757719394434505328269669026355122138753097193608351350592487769670374420985018880879252839893341281648376159794596040017831595914074525324669702218979346352427758823199694539930215258808357795395582342439604924470566885000932324142328465309830626728242675486649609081325566076811445428754480965162881791158075573148817934662432835642580971722665262961735800658035423964230165989184176462288052475232228190479699972117974423847442384290549510264689555283225690697970307312799229879212744591200387499738102579047513752340782298257303653565469448883289115421368226606932479105781426535136847655406687109570665178464738184945046759540502191465583099112541071050454199723225051605128080364674886570219613535876052438906308393369550372995758249578956906803201306249065680802687549402223577115185599179893161884260636243926110132563968212288255532791370633853158539510302830283113969301732229427539580430038735712681525887262110925091896748076116026720438951029870681045354402798407726503996991054100569280102117688595598881638693106594059585386009877663676381576669702618160406738208142803114347461683561150537327815944255322352526546007869692065811094602320304919303380762758300870907086142055492927127582469639016989260272385833140280499595796680498664009566010480230553415624632666756467673227851012126451302784059113933500359955007961097375154225049791501067311004785236009610005343235800066378887174171163178195273209245600465303899358424936640439424972638778376400261680958829487309251578893555457127812165695014608911257441641164005942779919526553709066131226620723051323103091047508709080118431885646543512425431076708397075616136832722282268704335890195572685209718850926343918492243644603258214981353150661261345085810290906016685527674547105424907278458334838953230423295586825283218702899000303368619194077921906066979386287751410380915491940623907898160818118319966564621890599815288528526821889627644412743289425432692128733245674146955684362921737014547164820910406186655891728586648431975020544573610934681881961222789210240890212750225308235377069490255135643539061319036642442130688285945812519556847032777749706253569945834513253973298049254196039626926419433555972298863610981007058933492403008580253108462760584502830266295047185536628627560452100502477208896186867593499069281584429090952274967497960465095303912498905101192321948854136506446180097200354685989104240851540976749309393147557513765112630167946092908596484131449578999273693567092590501558818465569648634926981618343903179301078150733052402613739998229973589178831308349127629758789323863025739348823634582508166970558872359936272993340279104134499435420842151626980246469549726411025489048051597075142931727144030830000223526447677422343458130019672620409005064628144488719139802538132322013343679464739225828957084386134665927362416187944169204674366114664512994301767185836999874986585387754223709440534416265470387370732997529407896780751387681148987403120366026183933517984577445429510896024721039070739355399950697645315751482671909724564405625291280665615525945970882830758827920157424121041520823322340908406695356208329296221621698255919475617124154939090374445239409838777317968447347117683042757013070173749132690642680770320688667799984742150275311409960203560820332779374773566414411137131520603714717824053042046766761845111001623172910657295324696855471270551539196454924342290033808475327962198891505512611931605950558742405252179853439276800215104497235579187055671665567999208417366536198029925417864658858813260466747366203454621267714479049048869182532446139957618350879983300207415631012912200302039568997632887452298721384612295281315206564701062836301060467601693721400273106953464535547728561232912411109335205536628004391371770000342586205829593754973986805952128804964739193707522540288523249573713661215035129527034768852980267872877827091425353296905884797127321220527604127959051185787725255693040772819116695961293903502215187672337085729640843583950845971626830279543223360578146608113615533734314028205630156756703659097610353556317296969196790567512588487531956890210895988807143220932191095517898238006150316897128406688396236255962152763106049928344972436396178196216586017810752214771286936449556113494610537679975356166817533516688508937032105211325125420444886010047126791606755519394350438494780917954178440065520572059314038179526585104148742121394002726610869290080224855915234054969786174775439561963052815768038778694609303179615133436539099796950344367667198875329480385933622711190331911297817762332234050999256708552954708640808397401492807649245541115589872971434978115497197603621414587203855410049703844222892330764675756373667729727697238324244198287627360818548513605391584201967213773759976529888062395572527460013192451250470661388898147198759221143151088494354367687218673770084756311137592636878333330452641010841336027151857895450052186877382024977142572790765844976022632966257330511582527911055046879359343710467676279182194824648239996755392561522903333314430225339808557430213310191571969050942961364633582625377866045591159331066474281086379536180180392640863694298154875673030078870954074011907075156049864554262138579510310771952436351669097140986943637802138655828232380221535654772197639120632596140797217801067482392288194309193678627547513496309196927464688751273428840512165060158056535633951617763098595223713741592281458670068967891911707391802800807907093991368684003158173962999515422019118930975074719064950904022524305978050121601096425908009499693714413930600071442870267141777977131070177190836445093716186148018750367163752805521904680779048816353811385427099687007618792368753796898736145582183017609951591230496567048074300960988767037661335271332866597951328609200489676211546670023900595977787371365913387425193833836529034851912422734678581220582293190841439246733259303402146332438896841545823015596267779729447092240296561628188804440573421348055006248182222005832142359486134693783071361677278956843905817866309811832618265751153234066046457961355080719434591855876735103230223305460126063656374970131275324413929622041737762235136734801166138100624307205076592316948104499216446031054453223483189409595239329934261436261529925980795426776935100928067017420453601047215472919551143768506043350119450605599864035673621251932825525675229970159987652972639245138643166874141967077467959045524494962917043623815676694881197148459968964183663993200227062823336058171378100167132620551465862413241610935424865372513086150056897575949318541533966431749110383541004081866196511031049093651370087296603264783137600056186841568341951196740842638352642851407235054437333522942212732878704905486708717583007978883218430165628148780071270835796831258057890596060150288700362230133126874172618723789000298934952906843134392883250601669087524328916138758856576000059463060634573957670274487276619181493984393416618906871021895815563870600273340893851140635970974312266501356618369853549509495899134312905735955283557259248722731504590092163005887440522750271771277792467130659090233507771098267489486386849346836044375172093822773062333494970657960317570313191447495507469886277271356192861913780062382090832936226894149541008765418425280841940003429257989431554429190420086471416428597090868507878834342271751072099293421816779145934756139566550120314649059006919857427796351611424535637325112813820783828454992565475162165969645885607184929617445292088226752083967611788801305995507448757359178242844544696317781705484005761869206179874697634363669229421388467077082621996890314966713301791528191930028693430699769968651706793242001435276592495691057772460866029790493112224968417460238663179164171073996004286369358744864299311270336721929183612510421615094704205829987322018826236578087566201094864786301628010766029767923121692322365783919568235719008557091229399577669955446712234836178857472676689962835579150338858907431895407724124784990762379901856444400268185933577469118379488383975714564550048125540837154829707396436126006482326082559537868171334519447630448874563297048043941636395371527974265158599215201971073946951904130382294705232256606291873559936628653991385682845626409548347743643899984506941149955217999958029986147456357343144896284898811296884391136797531136556346187849047232145306103523896258170833353200330416999122610057358447746313022104615143355993300317218807304159459352308363430058415450017954439397849047259447345661205324384201116721271406689060614014065690061261033485647900236091215855263232618471801051078018652346607255404362294626606534347838363434128238986790271602544848520033667960991815104460647241784949834889655666690132755386432280858943218190996371740199548146967344752193101474260109914109467308248902527311108289802535648553388899461238367974138588330912978755804046126562649808139641086434525990839353555404246072211931898274377949324983652171101085754797183079662898146929841486334238538438819409650055683328317482354394009113392749952877016235072356958032698579865933161359245685723668821309542415104315572090422565205180936734513701405907808815548718661153053265470144093829828581109948720680328618228262985604835145775435284829654244907728079681973382060947132914651786499341619225500896659306504473078773272926180667104527182916000559904954166102590753213152237811463781311078991013471761113326103334318656006813969505824654735017681966408158759542519627731203303894729626018865639250913854145350954414375499572488782642680874070276326425095711065415737878531372318300082265882575634036209674201544691468269661999338591341099548398916327734332399511439899611186703155474936559832100951207865980871677840936318540292227452788787934103145336122623012589450950924237034289857218013281691645821803475964319341276263262377016397912078865736269464655052507982782923960778577047577016469505282809368378730769667867317143527751666029771922629504276244436344578360770430985592932444765446966727153764317870951017996582792742519414354718589973935696084310606756154690776396077908361913346683904820791082842623859626935077039953179852553607273133037494043923593260279748344478508597024158302244304012441254395349245753886811868914941579061393091287257960806933868851230117903640841381561592691009487768611089237541697531230025656776313164773053441180253044650492365805083632407275693493587429098186974605756770836860663421597319946066799062784714035018574741842016579736308434520879057520186080803063478652122416490033991279286053242653219683733919930152112353967957524156252368945542235829709210178642175146004877520958441316466367503682914708339067165257984963424708999621005606317358083230370261983331067458668703503821538428457782899680214652432397512424532661503150042766739293840069144708340168581743444958124801884923088895734439832025290701113376774237381743079275975972214027936939503955542809236358443741882364637995095704176397707859539494664746662017505513074410040111359412898371278073026264286871557401583043053446055136053713972013588015115436538017272821477616085742085359928771879273157733214791227173268943769069704566650371820703534185574746900620997329166205729616702357744911671940805699687527003916174278215222243154141859216302730337944782198214918259558481510317939056557906750062770782747302996163336608758761506747724017057575942726112987597345499560748346486293539648212538557132103345104617741793319564128840273265388204560039630229619413156080443201239643019613839780392598182789966759063746997615483774758044877160104026571724462637231391194335668312946693932642258723177768291091361725146952547994063490576807939890755701087899043845480210402612443940713546790194521296608371033496391609501990125282536601829719845695112660659791271040235569083871108747136237970171217130035940839536763734731507354366153615344152695976309877657671290856970772462514290197323204478406619924208792480788027781754109601174771877629998327750769508481836657965543423662473652063735958993038059774477644848133051971571534194817808999292076096991725911962936579580561836146239188457228008620398666445753308017771631836462963376126387060777299842899298845558624098596133457037270152109111748554440175182837706541886306927414910242846776287053386876108635678906533488769669514951168999247225116370511817887496795245975658091816533054926319258911300119664555130524100115034167354926791924314522687770070628311106198794408854781888112537281880723824050133839653428023093903254249045972091711073377955715757414375962689923699286932910616172345247031719742016586129164432216818510132388540721965610333785366433807230581509287586750804869517599982005034854538268291979166592488027902914786561757130589773296000328904211735671410282174543046115286654319151671316602099657294086594390138376542706636931077512628321578514241426569207099446703765870008210544750606924254915851182012778078733166330404473869431298184758429209562916435522740233817290525313249599956906112998724271101937663058531052521419634082544130582893799142751119035806578810891871137466730087227258629741786036352754210986988979808339505853141290798996871976468150920316662572685841806413689417344725817382139288870457763722497620626483735435711864027843389727993843222393746888462232651153940026638009108583507925170818611141074633948131710731854152840678953183387474944524566573217378208258616898812832335067306139135039284961512480254551751029024776865421338655861516440361452937398770203657011145854507973820495513888328017504154946441545097984150308979186124684725581243245405162197783314967834581049852003758086929741446471646755424146775141126825947800727172623224461499651817114156946540686195999285006186024287502634936474667892169643771337848394499136594965118802046884297672906584504314472615450129050058608289686066947397317654467024428348511349457187259234637291728623794678991451780784609992350562381951081491646981946646949618856023573836567999013945003058457229012009224396358294156707017949098900453452822215743678908193356420341744315648497661877391302906515235891744207661773882967931773967996900579586314452905895230307035555914573818860541861129747426948987083211629857424681297733434350260309131445941481686602420406224561918655981968784581469658944246522106881420599629194057563774538939105011725788153587777630830705011393929595507521544094731239251336459042878437239321547993670680199524539465400762215146131773989708467519834792029864049136575250598960238685808342441387717285978290886970528655551043530250793237114015695560414231165841109772696584648457967329811561665043776393800192979639619637828162620679261434420994965281605482943650337010473090964468969954291967071344739525582615256840988713087566514855029302922219675223467886433186453079467279603973425176299482037441354342851659254764332752390066032764519596040260662792075749248225047465024180999966449096475544802459058333290356748090364175149024640342280673033547466315842883723256866443492908127736426450223577070548394479061312235715614675794750502901505667737384643278824081154817139149954861590416766901092109081476518138121125180577264106578720118566851429062710984990376627203338735456952155131268952678458207727644416316178116277845370077222222755690934430810400667972337845796470203457386434921911267136812324603586625961765320652412166626448181303822049071268235915218552522227645725733520846597372010230254965662793469542542528661296089300651279689259028312117628465168856361563626409168603533254179594478914337127574832691182673736182483989845865309244742506176768467045115849075268834552668175876786811559577686019075211077795076850832305655339666307420981596304200273137035700554785181066928752469827232083459654227751576585429600490348777211004404697957865873079382164321675149141717291513156651877174055891575583843882263253116460097193399932485439058556533933248354545047365810485087166025120810782448037812040304915903740081798395771637970873861711903252384986977446187098504902192727052353604281117171649402422150999877521953625266384690347207087822768798633166487715201121620740755190903630266969950123079645369546079789296260342706122271508098886703294450255542288210365488572924783837418179945502190962859019827327241804584243662657137664540904098320345216219772771806234018135677606537046591698980184775967170673456922270909556275389052155815570474943200294528071953382408856693799000995126725361841357465706418351834499167427530685196994841436593535659529932656598549129431416382717971036396330483041922895423708708667278891373100655595159174469157653808808461759569454849245484171870608942928320624089774486941794897450190321107967549722693837738854563332212843762143953027940124537508877286014387637568877601382443022056592312924807874868626695776547876454597244675266415469813953830686091661465329735393746727220558950088830906639128868770140031151553804030952369669951340002331357079643442969607017466677207049298091942819777224472392746447211903682054525314370207925164009725345131265378438645084181040181404060306698773357495461494148364696236359442842078061155217116781467816946298464472060536076915050463622912290590764949827957515551151913580999266861025035634913280397140993928261410140244765559071783368358430498495730812479639750401278806645501748274267492254796308687969695991157689192919189215942537598043544292268754548993085522556976727887309863965324707532665679305411223736002704819453633238037541223751680336403725047629565506983009038879771646331987866347649823813590571027620902309076619266002079810476057197983306703831957890405080152781110311506973836103483916441566139325126665834086014824983624415528408132248573539282419804788361844621358821516699445281027944112886919558429169957712696711452941083512323782853693836909617680106480219512001773907409326053790032276552565596686185032354029663262878167371337851606828661784121152462122719679061738516972575888639036990174331141264000808146560671258571452645187403311982477176875836186405648301872189451733156463640484491846484931463479077673495604250878411363970278420658776088809829816631002735515794535921322517396219615052829347383626812019485590881039495558363674497968017092227657504525014425621719573260905463182611076728829614566821243882731935699065398777501415498284719653521090308557541017379992036728245285989066830159035827389635429556805364240574079617695746995740210392697283981959089911103910374349357902602716939478563628323205530813979595571129612096769308085922331852632161351538233541583174116190121477293325918970593546049933977945969673836709855258891057612826972727287081155565362258507343191909968225467037945692509002272167004650447725088682094474394220340767078983325676987799819850893380923612522894698070001503155578862263473031083834378795685191777042448361446925083519897162584856447552134753530561882466958979520418270576096579026390173517604260322374243621669666741969428719258793357556847567960518934232510016204485396314745836400225486007094636348758601681370418339276708714317528334845942980701610630066538267324244367342743483743692238714134963959268270156517821477809368535154223405591472677931150422789340380976700206030507507526135068083708570671674918650714173239247974053281821020401854258790596126985035301910192372949202469977222902195577814811319300303081926507189445740553861878914266063801099526363854175672256105856545537340755763284067250296212514827401213533487935205027665603702792857497830513570354946147653302835097036827245780013944417318865973213670280761321868000485380049808089340248311928718503964430373469349342950063439152648389716261575696404283817806759446728566133932489424881304341581366223450266677269304585918151648551915275211040693480467471468596436915828387553426369874778190628992536911947830383810066213387627692580433008945273934729274059382363509762072900633150695702842911022333071465707729566111051823607958402400448823080071863201904639079797244573778762021218543086820260781782634358055283349647673458259283894648431626916970837269070198762660353418236608453187321509078206039376567782869072646634102787287517699888917655212383801972199763299897807441462625001928116721321755931044153695339767939984615898931864022333253272075124300771318003881621732866149341013987194895534816434172322015007799917882540845337045968078353999509184836276483167713955320453115002926595507818626610335277620340013568123035117712840384188285470930073111184825653126903656535455675419292869425756345718949638902274233578284345799751661631549750654662492218678896000869408163069955280313341393173271884601281842752756614131398073213996013650216190986086634159417509552113932546165707036129056266088605159115148513844880834084168410498339248409041270942931710843534922015747042446694425557242713308306335298937596937924119982792743204859580354747370468118467803652971242017970682689096049580686308091257879903654230161635860156156010363307927846869409138690432639353740041482565529558293916337354340221705222154120772279457092722063771286103200753130401217994299109451608513777140901311675093369665690533804420971734722600032246115331828404874036608355352558586263883804271963521631426355684659012024999198333123405973213341473338869280898736204207988650849335074286760201514640761578433975354864744965169434701829914794192257409758359963292159311355931411915160072289403431963479512641631578373091650153968917443350840781921082919023596539681104574593707382715837139092249557285746618276750864132489139230163292848879894512462419264151274541087805202668219031831698502298820221905306442800501156026082616246531459070656684298867164733717434191246233865930914396679824507683846636379035682603220921852916915690105484448925765911381912986509189978543080131019188248048923732459215189526619550720459931679242946572537237587362867169363676071562933075220071469619514403667123562793907982014388141710778804611292029839956360152557736825716135393379580514533925843992743619881570128762745068776320113389306601358963484147206933858390736094696130628862757493851281743144332589748355825720769786891482101903025539921482127848046726458399370326265905920016276787488893425166559084664547366031652081673455287349959971461677067346542200139622944780451776994170028885982442298943333505583116703121870028421178436293518196970540745768976318389712773623573742723208448484375353276108911809322851652244071965114574787491899437423839145270216159187003445545771518386445340842495046913033540285245644340493756957252736377692399411387641753245967356670223920583798015227381315739513208200018513687869440490151995054252599623716368622979555436834082610289637790718117886915972122917335028715628570149218661544393240691767166481889976923678834064576814545538499812027428533471866997559404247435938427723244952915714443051266605693122233947372577682649105457906808914716280466473761776564608145771142110277440963778845598963786650035513264908852104939240756885544112203429506889803234618773872666464727460477975081127371005399840890414177117345370946146962944550611862659036211577946676423277390995457496613313495643920694861294127606448876620904486960740419736565394715612186981674286638578943417439711045944329945231282835702901796390478549410887522169095492777418355486388599680314169062095498981546135129268695090378554143882377247971687452537762829782893482622336904715959517602125891553371578836327765030285728596481701281738233740352704526992420555458569805840334904612035589090170457044476145971564078398595974282691156040827649815458619620369752823990153509355814612451770458509139099207467635545619688910715231669122676487453848877519876094740216628903259553503319507994255313029282828147612744147884325211436464397923674330053871980870421705515880536324807684344044002348038961327273704842907239125541587512834589204104246845757178922891491621348102159204876383738851137598938024857874734448923481441119732744368463751319622272111974044558279600720789935975991504865065653756802460421633529777121714644580617843257240897023991334157708843551445106245685538863976309011621290012409280982761466942348595122626939810569371122301960005860774626562542253076809947534496079853895141838738914838210619138514545304372707477662699348673904364390182272110777898096469864662021653572709718507693735674483172769853331626225783635052493347966512069062739246891455337675143512427078913265145797369354119155133131474144394451383885630981051556036837962619123285353113198377184520029832190042515875339006535929034906066761596057190121070231396332439795062787900358206760421557550663628203613004028371439771998301402414868335756605613847515368766624619747879255108905634232735020433360723667710434953424494525778859869301312969852145958514830639629196415379841869738635532962644214993675713682353362492425194749803705525992955310958591074520158739144209034189412917660879613445253466730909312656483214297566813154369525564603798411702393135723383631534182533426267937584236985922906211323031433053106068877361053871741131397625868040250514162275845772469273990999681240099050942696891678001570777106154313525484623926991540307997280316122970082656687517470282088483758767780225177216674486282722669817187733261201028645273880619089500943616668559553442203114848863193575142320787801889939286976249449346532253026568245239971362350511014051741748813654012900956184351568181018145954395263150485668374127942247028507847581288046891919207986480969796680675140286569291370537002400619232916608460598770483775291282461237067445662417998711741785208973060955572533843191868161670379826903149236484669095761754204511846689095929261624047016894043840372960278429941280154305126252471297902361237860416817130696781445580087469485236797616061043402390341319770256592190309732861790677509412121335991867558888431910881471602398245793323393578740527241868755963442320926223221912354140354814250162298859400428659721735920925520102695452957660760712330305957121992453643005474492897837032220952208905611633608254892231602626459942604798865361108773406463930683013749738421337361833013526470031747261182916736950334268971352693983791095891488122510209316244627914879696518289003379734479708078047111045113694926259014889103068098364616829259601200216789839922113573361279020003626819456583516594690487269162248051328498372076069929330601766121607877103654250000039256308407005873601707533154108737058822572481842272809161798726791204567960557313995578903423848628118048328753394787438831669588104508794497306230109352127486424320873963503627184456510403077403707646501128706680179321655162964149751053299949135442633620218961827910737087228210437339027323573169068711175757547916301907499472512185269627668239642981627693903910212521007458553850834856772818890535550040302896782293424490826503015479559960252299628101516368389971334221059696885618801264658694734841248025396208202032745077814783002340796856069453949909922287463091569878225264684473824962320361496316814725536554737891725548448153479266280139702610721042717681516766723491870939587611201998998783448071174010005413019453237850521479959560622666938557297975723524483465317007779665612317790037978263562046824249031769226475954001656843288023886430363570867855573675876139562087900651673497612338643463814673124539719661359163714754264667291367773480542659991626539297975538659257771848186191289298954521094419135412160875899236135026236817921657180209820597326538844220231093948031767766627568296844554528372306763614087170020339338777596906040063326406610444610936572986603403753594071538851528636359848425230302374623094680163065871429939389959348711846147326536470096856020072587857140022401765277892496210957107753684158409034724439893102599618697390303931478109494800566986972798840166207368448007443779391474038213560912093711585372012904604172736302338039728766575538045502831602074103627902675480158213776652287303306732424900117379394331231354924767738850850033165563352270665646750791698887985274844245898120417648997759611166887911623619384074408454109259368164655314339776101349212728036194062464638631318014432075363076961586959209096154340474022079847866255436104763387156561643775558222491648012983399797400430020809117617850790097964928015770784449422952790163806482367104830807751195138347081183809769352809754693462431020121005438940046572366443269382964136538348277325861320922426816076180464345129818925559827578517707147201650605312773376478089559470858931562213992104166427352446982466046425584364916382329197570940326027467748482531770304832982138199551747596099597587818455364226263331323247243229971911351366696145233675790781908158834442613182930292693053986272949052147719390600002914325224729750891165693547098185740392488192821250068250461090683843877251430520011331139994354309223804548670453827373151985517054769371323215088976144306956197625122030146969032923248487326297436411918445520346558440534221116010693911582645660727954889761013596406677674271060288575538279235131835157933924256760663597980821260104573107756648380959836342823356694653583743443807762199917534887512073413180493791354700581894540131334966633168120783663467896077369439234339315252475649991984074123690121903009442023354745705575446924699044172842591729401003165975571289425024961219692769558459437321243185333586692700881131613906028301128749561226930791426539211960358119944114032090386866186014783451435278363400821958586725378736813750225099701504391085493619231448038504716565028278165664205728777455290156264204625496731152937823834544827525292979084175991883287456857126205258705986425572817237034259962163471700963643507446287590383569251235383475942742769979960239833370915755792352451342474617424989169171498755593655110881226437122319386884380697299628335968388569614291471878307268697086078101522976152834102143270549035735953814362851426707426258696348593297767168435172822403952612750613342605190089249430480117871901525915488314291970527552190237613077365717003961137315115695018221280830820887008492080109585470346396160152227651770227007620606195740598195778099192914580702916368027122876790950527009481929719661338539225750505444092775406029219757736437339927841700736932252369392499177832916876002415413277098413816091310663144587358057891457072149083641634457975740120544784214417200248265329679014439481423257229942346802269721494381131899087259732365473054059089057897926680734701933896347240050675643010529177063931579658586475280114502135833281574557973790941949744131783279305931853547183435050025604060533475105969631706441711736867776419186224346146805403390225623188210937062362160673948651075374641680687264566591723706394989188479948716086621898899537978616926404084699789578471816525065691938068586162193620987276105128613552424970152231386979742336593811552648016418168136926001756227451897710826413221798726596091561301601629428943316360040348483115885806843675380354733798185047438703032586749676766530131163662837994902520555786600702605471051231088113439866939798501140411934455432528763507072123229526258844716801456511539884684945927291166135695170900959880362911186100618125686491028873799115309817658123254041791108291434777760732869431160364254091946186503085682987796598595457012334440009616385998366521618355400886440567660126576967255256849995208409616829501122969456512584909663915157611235239536041818341468546005793057872700283873040996181169867171107329649480549854835601613347299529451578240156907099955719096519763702457969574303236472736517043137848420024998841674668869282118727770431720845564894892746782798251265274809863264488291924787511476929083738128352057122771012941046296408322244006930447901292202802734893040924059547985997992718013124511792394694892517546708439290561564189264351369258389982925541895661624880882922118893182835690338348398391455711970955674475707397130545764247277180059333292564762364072748895359261588780819916427668135395251213519422584357284602550034013321396672938443928958381463723733454085486547156574804724207515063163914008632988634034498970514114200026136324178354170555386201736224483831626590405106389036442421266733012534419672366564267361287648606546755028810636826133945337935819691713830173634402384321192946948094597330299606587230059231288239058372122350960235851720689786814152991952218291009907557247157921784633341109681387468857486789820658611665160535600894173523381649773021884585367276396433652550474757083878611894990464028704323118190180511272174561502667197930731202018064720297018159931367125204568816942925525283695592061045335902586848061215978595144703669007585602166041708612432995681382680324176011122511722615266798963662625847598270358072723756413951833065523295848849920264037701874932463289721744923483981629239411648368000485764149758607420879134056162129494422015064693391779758156747936452005029135613141986045241517459645635950488091357955295382311268064587550265280067077844305586760077308337465357395788990357932403769266350969582796623784630226321690927482689868091456317206893539002381747072848821128148535671716935155026083456346304716607802531672563501977728063557220202650652804332257600712402019819110237491893579947776084298046563599327148850293895828964394490288005558927883007627677297804878435706717748679640309544169965883086852460354978583195732085399222363420565113011801665662419675062532796095262659103379748263727185656867841002648016064991805685396128340022666756144145263520855742742962758745381003008070137967920043947733585331548147275713731829145170362703111944647404167830016538391168126204367070482428554603823660586978799184027595215050963848231667035073804618188359018478793395651537262865378291428429510352521818209154496114830920894960428416971859435020785672480596799615599246168372893658949899215957834278253738524090642921464170620880641068306467566604569277009342363124145591967239286519149694296293880299180089849503046597961511233135508779446487925142825134662097825114125125271934508304257276476060616426990656006172895333768026171785666824320835980005982017776987739259379761759255290457586042338423470178476193767149252175648125381832885838873231035275485611533214055313444231928785022523208263563147008265271852114087336498958290847860639868838728402102326071081738251255544546909862811050789993487822352787194462273650544705444314542757683896643792171987204443904385877203374741513619939039958203469552757822138340277573116649663567954432820058951607115266640103014517087645395539816244921414178412869105164867574238498653841983328088427051394546852537028340874762163320140601912731922392451372950206518073103470121179947159204780585089785244222827912512812451221544664434237592939170084662697848423875860978052499353529952236743248223747293538083101018793686574471469654035892343938153210319252789570818282370262627347010153616778694284360399353089678140711700535286808223307953599853839676313286984730089407887843465802626107180634568080508226911267677441721171779755373825343087898509731482121435021925227481739652885488936241220575274690397781191267658807614977424704396762768628603326232670941140324564560252230075578426382559506032390444723250713260035599213887077713526395227684404635407127384660068929121521980074547675185861297648808033766289196663521643384026183870741678561142846935748031738278718248306350212703853401215667352985205715312348582660072299850655560939225850290791685696033791480995384589571152681383263925816232635648847877631855035633745800419254879364329409695237559904031178322024844990747421166916727234137951264522807267551382669352181559366614933134610271770249214212310720470668056239393214282805047229910981852178005350299662118831146766638172488845718598603320093439112058981042783847243675346534163990263925892859326617551575938647457399958484875697277529597910507511270888914352757043653854125011174761486391771955153191955000017373774216085446430510743401626397021892425039727324761613173040355380309086806755513203975659513961851520553632453453055109069123237182492243623510839778461681976039676460386220805442899618608084303716653715498510219442218643585644303029196287440168066352174823091118516929924839185319904803158697698770514058767860386476410237911674571804892663413060063070035177824577219754359702198122533006340297450686861862520260019593302765658993937453738396492637409018995938097801026485903709096689387378749411285672933943017578869464229359428409663019379607760688049491326230971093917748298728861877861801026284436870038253428254554443002282919606785599408574564128019751170845902284944635387359713653465667013384618100632502437267251555331894227067174733699248718253046511818921561644003034745431378178508127475568734829134360297840491058146686594291203699129704357044466005591691404106891128645571414238861514668249948152600960502707702927358385789439024287447687691867831640954170963267164882422812760753436255953591662931787957912563830147779984832562637549759201921388163532139961991978621678395777257081552169601712933088216772288425915707831676799592859008793183828859957289710392139615926325808628736766368637998767908086943125025450576590273383203646722478132042448290276561897836217422111757333542138302536049672714570703908706517579711212307769801298734271270856259319766294982681541484964603575602240310584989936569211472403170996202253515437977034809962292667846475895158163278337913025617072912580093735331967018250864942634164478343630189975230583525628576237737612421976456128427595475188201417226742352007794899141706681979624675683890334622977489440976378825326888055384489172475846175913499124582096471496928289126566189871416521484331386896296864100246490959386428430657987083589285816384173487185244805498278124350962738007462920855343439063240691254163597800071421136220933439329260450234141711290472518640804363228089453388694521761376587996649533248625059757098198412743539629107169666673666250804752488287472347412964084687426030992690719855205566105033676463451039164511091332648162489679448964648790655961816553010802623747254591162033508810812929623582174202858567276270227253708095407706011363420878773538647909898703458034635552443369289852243476630308129102047911130981983870863070647669218624788287065526944154254314074599228129358093602231461691111645775421016151184555096132340380763135608663271606844796476417364952922284819145461725360463800866216471715588549984409975494689811685966046776055538910480011940077608279734586753275381969767988443967390446572499709395417440472370486587847161608575054450981069883148613668432609126612790074179807156427327109252348998604146780928989653480836878926091431785657884213564865669103923713503172795192431923783607268620211933362969096960431724061349725640132721807831553548457350666731476345224603346848044229096604324678332307663063476996251476351626599732531574584745047679344728647523573649050722495542745794626106628409949940599615484009631379307282591108943385829529561550621452254026178275735241285367687762510910626200718391529106444510757366032179078928516121422060103408027885487708436705661941924133218155147010655342261548982260699646215399780569760706081728013277360860453793524657141362583858872235763094031685462134729940678972614565941467904058232185052581469199283530014176930090616578427119416567267901030182393947493613025057784006032031843150223347092037961525984057768187961911445799922772684103337060471791956440567660219803445436660807807287461882220567563556226062392380179174628233640456551738864024058201047869801792842988833662708887351779369245268060280100414579332364402159098117176342752955837017545751458718873266967028435832739890569365526909203555985290750440196629245505450617114631425652242130388731296996817983259006471369372005904398383926605008347294174361155984436212067594488139139503342456347357342555128533130305503665019447183438217406618891827812541723531694578026370401616801113075465864577005190135324765675684066604192017665433059645693354841908129664652072942565334620040431316342522871336289181215316534558074622867917514401889003265932478923149542985821933925506937491321418248591516883392072435835116259807833842717238611136311766848606295689290046272793198248630971076401671907860685292084021137094311116557960112138141754752090199461582504995934627384229193206638588028996349439377748477504814367262299100904662706488249158479767334871742728565991171892258892896900334861458209192758227574211262882753740139382694122263360837257675300976550694632827404663249270074694941345010912237871457044141356377677121944284907416831754468084439562484446687200919296306385728203420930259969055026146535338764276419008783049707759646075822047131288682570676986607471052059773919853408397023163469063685563508590405983078947792417280451826260161123068686175853431778556043527949350312801886508922751109160829178381291686577780107207412051092842001998910959830388041224688230454441989434988721960352938872739692486073434669852380468224823276219157353005993279451700732973742567080969635324421118957446845355915975910794589997543844621568852116845907939426332305351331093607446230842389718853515958683627169890312239471033504956719476398333656486613351125176449424224485394861328805475141144260506300510087349358924950635389510784765509068581527398435175045595226781480587710546637840086564959102644277674786382987384649276227590766132315005439437516356845429705805973980390677320516200883467414913770023474100079841522016129162772538287202157199552887531878375849173350084158583955265887009732698109230903461814245012552680701671851988266153838824333387213435652931443401936381224160038548718359151045596319988133837038664106543417915282613548075495751779429411414822560799416690506570470884605580260086800715786279080234182457059441192523571230040676879149076778200947432033437792592647333167429315623400797670109014144599520901235710785255784427803621338830435824515525847652113207254647990307912024761484534665348381246182318837725864056733051575312737895852390877299931115225526230107474571474103701913796738798866656992048557608524062808556423128058108824730242112888211127217233250467246433127602488841387649393657133777442630265062597102035532812480480249421135906671665526665882492972570599980864766025553174133629952936716326734088672293562822211210079864720575708055652489152844217095585052984621981890927302046586443597567580856826003567867406222693759732679187361644799130351679756155234110817981476194526881430878248553251389570581554021572956732502773550146325539124665850826030450017584705625590841729179910033598600781684137356002247530887235634513264944346925190240883993817175811404887700033241547402103842761399909407577250349295011128890215496557052708304078244592813655325352300632781231144633657086111254094775918203057546410260290596469098389755092426836933212267481869484409565760238970497220849456108644845808424891602454676305306976413092741005427004698221743777358534268067335670650144689049760096208536400502259873509186586602965288338456980538682886194835589918755530189207265370565352435423298340193326507473162471152090957037964211634162418661617440068727184697108829726622220466555964776147710145835066424944130786833624939295121261459261724864995655000128598883015357672244035675631161525735760031615397922610455728846314508056680148307200899515627166406367257611569279450907477022168347413854574836542587310504210740359491811689748137111927949612263385683276924786097869366664457262469347587059936980790095359370369829974206689412993767801429577603085892535715169181752844259816391805295019518619498782156656893314539424966357201327068502433701095366333791559829437737620136448338154851790919019177421537050867458064718272812828527810082505269240633595400588647789743702823819556338242457060992385186942944497205118344761662513870648506217839538112706261251566780763103247733482191757643578860781752087816102996652113153226894131354838559375558392510331274079890083428831289486574632357651850284680661020414032134696131240406122965277541335519417292985425880954890106091327229911198304455516123171018376694972024535540837478495086206404786508145248045049733762794340724365626692809102358425972412151741697508405628653723970542129802267181734396045816269547443887696966824173287323228063250267129062880402039228159473668399763711333285738426369625700822840914289793583414333507493518490480044311463147370618003630242450718984906121050722681874912627823685019908867811825210696212180065223467776694300714108077738878970398296951067489866256750349123786633852876559392865256141071595973443970322006135009208071351694797198530364705173347716784348635366428048727211229727033649680435879359845490743877924187892788400785497248025201982470992035121196702442391050894101605294381505355800271981529757163705464074057977408531097301863755990110207155643574563306112166175965570048279132097133694832666085730301729322961551094299741933025542872709980694322943738580877178966630991613813382410834510399180368464065103142984308662019162489722502761656088334907564761095838890635376978010279822493425393488837175467710939272525359600586408850729757456802481237389367507585409751817333946034991319775112997564217811691356931734341449660493535832683320395879276103214566901417864120515125545990058418742959080176641341166269552916003951805897491122792282261014205700945769665617485879525073979276063321112174829612699774144463021898190808136015850244587781253896544859237555559271462851908166575448529845437143871900727614217157434938531744564786647991644666707488986384315701130800021713778148883081685790990394621107902028285100658186470356409310474092575131884206964192218741890814658674969037247636268731417860476197356917864511214401330707466548214975949338885922456446821284353803330626734923846425129953525173604805780371341614149360454009445152913608523272629162332346558180453931297322120451886022846351915947818425712027144730594414993008956691375052272073138815610673778917510130516405633252901409764020659862252095997462325657368115606012992595776442040364582972437592362476539407959891825382190893298971393622581539121656323785759836508676108528703684204616426920513309599052789579694342640135094301373806511818095950185992405183317679384369426878167297517418991043285733306031523848049459255954511818589778688690438960107531489161253463158903134378365097596447761819452535194320128273313587036180991611681422669910359829076939352753152574116862610495452678766529623258913323806124505148524928533888419484933947074728869937390358638730930642977083424077325401842631748481777328703280712294671379725089355654119213951937378595388436186177854621372480987387451121987785212692880278836324851364713399395314058247468678960463427364573362681385889985699192967442060027062327181944839652713251733939239148977357698870739510370845082139717618747276811396015140535736176410079658153778498017913686967603215446482844558947938758496611974670225198605451841498185842059227472117526434972714983975591641725640371935319208963126552891545892227144595912596579811207616072346158811270884387088985883735572373276176300535861390811946086378184944283277937276647858610321355645296537828550118645336824636502486899898015526854638871967806103408476009316599169048945504459663507507085254375626127370761377364542581511598618946188839975840095770595159606433079831798343608052692470887939325853994779623996525042047320917251078065987237355105377969953985857139571531339521116554044781889602648170807162031022075870364518882644114273235812050477508099430531671680292864162718041452390028337668423845739818893325748069978803592675380800982511995277365923462385305117471328553279994293600586371555268052403715000583352543849612764979518644538452316607372893127142158694802328356433472105045893186975916661427642345435337146377547700728535092695383282640985425883350264790625026694849195283106373985557705574078684979806700056400123917986014084673090335548796595301361623500214729101836733739594257798072815707492476833931589608849076600350919727303921802847985768396799254115155445874557404716594453814397307331412817176795174856850737470376391219490207218434417505153747308484401342909789055957053865131685631097738043971203064866146383075430716995005868851132165381946759623925351983639017452801655122165467299217860495055772185167324291844607099471853524462169390986406869156878378991987498450235157365776561798391414526611548084222527805613455882846278104342302492997503338110256465173280576475310321460547618619921213710897152370962509917645412846131667601726161743559183097486190483818339247986387753398632082544758496581560526824786801284090123185485198090154644145386915494061584909091736758334406455135522570991767582120005367193432572314972082981839230160643121916633813094919382843521544855668358215478461990633240040168065611843907842986267356800858535362915056403998940449878791386893608255643854225713562351521782952717649676938740339501216737688212627628521047093363047013720857043260554446960660024049533913992977612211697875032522874832339689287310764183342765106922281334676162678686533944891614436718517700143502895349944932259610942501608580983672025737639463731736102736188872307530492373894838813735909228073475579439104455638611734917278492042322713064014924545499168717306105670687041592894082529675967823437549661472328724730718981099346009960786596633067105340085401032880065010893851003318196198062263668837836294300540254441790033452611523022981917148946019494690052912378185339833916722437191060424117992021789355864442992577120227551308310376843220310454874181129308859020345749249192976228452827791491997140568197670509986713502549519453665239036503304167909333135274781519303008920690596137664069207959992307822740131928559789296311318825225468189146534832108159420121977024201753372709143734972400163479160601908515674032982506692811045118829910147691741335977391490678552504650049825511587704776190872408177744755779291024789983472532435192016403636583332213550025354540882191369043565256049840439223901148504191220460650820030473284442793866957808791544030450428893563636659424294783342694808020327020749149738975711578661202401523317185092444973664094975079293074499265797683217101219913628957620805513711226223948338282274500268401415840447845094866270619350951062061384537857153316528339367959464670230792134868703892735374145418418082157878377100033773379291306456519806100300053324714653373290338756395194734068013521246386270224557275282620939814289967701869276056568615118063516447079703857938409583292635601887822546380362169600720906211518988543643486420578765252401821414826390024960722642607394478344594415908299304468237014399022491798904283706084407273629236094807842874747376641084613883085577486627092219783512605640457133397357481594729481129709361594321651052209776451549473958144426775302239541927817493419609642980626855330751530094156141953817754080816969022072359226273302726909458399588039381627370299483798563654440917907741195832632878333731005600651121123072575180594362848737179165120687386607540213686341233289268825622314831860722810067040147435899940648967125430617920277974339512788996633445155238884487965705573295031630294259884321871897223630270862425699826369924769264110689873482464187931685882230679930883589750237632550007559367852204505427858338569442232058631109637021669810373463105017755144730258678076582677085618221774658769780877481965859280129928600030394781282659446773322252087124049585103035725395557775599700933908227926996372992266607151794190685056928739270941875549047559192357538328639110549645199020500675553281601981057144963408311951237761695060645832783717277999076043085227759422263750856979090618925876335999485900792817099403274438119653281180976390072722968453045371158033665907181531640885325772249949197090724724568806782043659337583885970749538691792219931087755405830826344356659773588217073745147404650639198468698380408274274454976814049370401993410536091097640408572583629511608652972629597066537657779315807714743593477977779881349975039772612195448149705743141808623771922161127798048350898000482174437653079567438619663333742784728623903263822918054041208213335744700569110201424845009189005509892227425837431525501385412397503102438390531309692641362301851773513953730547880243834111257645961915949496797314574220775552490127192163424546298055900656052592311355822818131992214212943785466362045108991514198320322657878958841056256798284603255037812821990361908511148112460916103085809835591154623386931285173933813153609375184741347036339022540332565082013564798048194397018751315061632955263623188768107285603513393447069276073611042531584757151539072280935081384499571161624330403833179259756362596208581807406988657009317368064453996126719325289987741925791559891739064650730696692277941471902130227859329760870906304721603642580716560813991367885271634597606008818737121478200989003739140105757145664497699220285080850525027179788108149829727073605700601992587295054822259095350284000498843881755998928086942525014110023357015187426751619008953997259214698475245562824791525747013319661349508471249344467402787701927551104506505659032233623071430126388897287335343826497307478099607156096639966934731639039766046505011214335050876247737647168878013175745213216749038339296656563584523204841080639924213875229811140811818663176832583361021267484946493455255507779480182911368826666734673185514525348392853590383112747622272659690564241816310128651366318525560413527588346045586955964179383798477199012110912696081055106613250875234145826040616781623772255748871760966303364886721979512675421113494520127284979737557968758385669710216812126829507214515070687961056281172703314013357994409003712191925936282897374928518382079466771288333853557420168200858636094958931176636398824109404607356549283160443572854510026459905092523304049694517607983818145307589407942653418229187604933502567687702685503099945109910115797770064910296667936870361405005092444660984123825782329312282251657723904586801255826123705867589875431883604237880883442996546751609206113077739839238786352958787067922046759725467348040090891451383117161022532379260347309603548989886947262591524787808732323687688521154197956042194805268825304391111844314513939419016079097625403214281239815458581784015091031631156103987833082532381765167652236381919017133962197765043619307205855435278751872154810584008271986398196995043980600547830639352965161276873778129244481720396255605455214782931031425676377921871175246472556870704523804780669131205490765189100646198871743057237086574522159499818166023946777488930922405500394307022140197602614470810662092326531843567224317947515369016958218843525719166917182775356460705263699915958273355442008671922036378950267866349902570521466753576348813424730648427589469093794535125324472415536633092784293238313876618898311960659334051158869642837041545595416974453499590352169247966959248287749829186819939342490087886192392178232565785732365666798695860872715639121711526860491945865979040775339543293975116018098658658327245158467760749533962545991659117266862384403696572882596387956968527362868865673051896073829006418806427241225233768537933168825408969447956100635569788827686416182677815099020567835628176227125928492852064128476073120964334995313449824584626182887163631585555645821681763796622025245102044829258120088069470188154680200753587521795164118777969002573999078325923642007761682706108539835151748054608196180290665867825405294078820117653942739881661282525458179980522907863835976436815878425142021638024712168997378487152000941857055027078123574253551694789236865543543050482903403553236942830344298832513679496707376495805592722474993411293367630222973756430477526324007182423398828531640453033122847552484802943719721935849265378215586141534635252094391542518447172280321670341910676238842651698273772127386441205204069606627879026795995320758536136665213511497822270744302634026021320446387151546622875875010472936031727832416449839178712661251681356086953403007768091640699814822481092767306383210798671514921748266420041943448468102581011766259098233291871631809630467701064831028025519116042322890802346794423409986491782596877765834350053796686640713910128427078350393139021717846767911366501270993407064203836210363108080069957263878807082335805108990411395923022139062772463237371406273107987314684856552673929647519093066049962724036422306193720541498848192306318980965672777443698145659499217482586728807469257346696650777406828400123590132008386222545632305642382234491744059391992493612691055354882720480570146503291003486779257915840975385155565382760527895804100826371903793755627886310341035749674548397451157288164342400273766027249017499952645568289769196427954007519529691995078298667719733587890517037942019222204895643742514465440787597431408396130591165292293884383029412330461384363335511963623330394367433379551320008752723876958180089010134852118004297595250300666368457334875500625404036968819441814207477955394499378005457215488753964335305461895635030891770921359868093905970120330672908990094319928161767173553320417607730861585056913745982946802280591619377268451012450591150020456102082219492236920415698021126899513502207150760994518890193188825207337016566183842261920866576724392943425457547373248128152361878124815117051504541343252471761408665978576876022823312533456916055059431209881072009528344521833085024202662194727573699856984726931284091919924597920749680105231733196456354881561066672571744604724236775694545074889598629567660426895027032652520686589714741803753011643980486247856047130071667286277881774270105415507745286081295918694333458689070566444276976516142101960195353337719393862815642900594659051270077059961716751659716127318045090564833306655625569164090580445852498145142246709108910933580392237280906415396552451259764326035423494559097654450068897345620364181439206779666469952659139631792649727156793175636180714101677787730766581400480882834351896706310266287026278484647480620854027169805178721439631110939595873899858003159817335140337734844494766524887210817535003409108695743021497176343496382423945576282961784781352942925599826418346477219629563887584612610159108755130427595245034174320756089300342764850308914057937333191284598407786165585822928166222345756343933743210362467798051470046164371680861594500055755147411832822598124924450166510303986229639931796906962218658435619007356346394493470393292540361901543482381766897835107027275652328313863074463495916763551440093989226263580461746070515279055659242026692858502364406931836211930217923740245983654286276687635211022181410225357127381505981294210427242291692556771764289253300937028075639205195361356994527784581831413124779639162115229578675163203928580292752581856621448247591031449241083796089648720890458766232746085172942076393729411561870964956975541165931011635858583862710660664679627390816327178101473396644182797397330278632574764634922389490968646717523656066411060453631173975715561771493892082180898097046106018807078971564939476822997671133233608732011234613760232470361181928409243511909529735542144473822011707898914983071957388059335296279497405583121946602299564560337955331738106880130413661586137913823682649080803613918457845763736759591115547368706069209064635189023941992237734185138404523982111756908088923460806796206284744650556564091561070222378031870606091501579358180194239482263121202282626953632019153418066089274644852630157614962123793574739852899395537954788327463569164244212879324385411371752436280632953043623750742436585399820734945463814950739968707453220567838457808749865924894744401289806744912782256875018870639759041262105125676022171461067035462993529961635770715891809100100120212742221175893100520193860023637322414640617897175895835789218871381615120646511676058160077401106427164061133021545708108750005236422155354751025089838975509555707915561894344368490635944656645694310157212834626856891789368417569176218958833543368957316668228021885618191118922986322792488259069527576574096177478716919859255525034445607086463545237039212955382761105413421147265424420713378175755717499829230785707552366108058913733393687297532089338805520822064433720294615876176564251457395383370404163129155996822395373014517713967276874529067624046400983583889486507880017293665950979747447366592064661983878344709317622970321199423954002744758905720997735251836825386282676433185854546827291570300108503366452227296849552842089508685770667091589455228956351981803416052921855534691381178541435884854522423776072213681282079248051372363312824836534598564568339215820107532164564294716527069113470105890600455163495267955008466011115402649905820572549376800598183526487094916267633352843366674500002936231314614561308745512769749466626263607766318297931559588682406693688132594142177060541433238125101808814679908417108800942952084002402632132075747514828492234599079877526320282409101359019828732986231740815329095687934649859210611718550759549219146063993592798482847180555102561084217612769552679602649793870167245671617237591325468864642348501867957078404191700137844995651936943495633689557629034456070711696216073900014621559306424006137817842975238373555327561903250393018519299073872703545271874812575019458561947401607650583927816579704114856058718256224892773689967870590889795045613737494576015188773754895941942343947151270370393379767492498864002559954365881606873862484603670509534604409539547557727445904078015031671563618933312368124552041404167554092448394505018668324625049564861125577875371440667827484099989900956732106413953508049903469310824285802502434037052540643313069744726439785594197172614792482178535982279169003049860135545570679973650204971430502509906489356119221222238869569509924158088909261470758233562515434256683520851718173771306593558500638239646200798956741655248782128731543457540188489290438614445320884686404102072427885827370167998511216294338463796209982306658184939757668177485846129031998316567262372211697723909565859113327466943507985351117940311261672324809474266667335620148933863283010132729892093578323830397943328992719493954300149567709676432575047944700776981511233990369747972095476712341516904528057534896713737650841373718063156817684161891611708608664228772268383710284756135258088489264246851320349469169016236405512977103236721440468533315891297630779240913843638753052195605961704807603814398658952687672923764930877840317501407806886387303820695521417083214352121721671045003164909994491088996704460405906225667248643819386608157524318514764547169652864898167878363361517699115766050454918059403291458335588630940118949691514190890892073406812244139996906715890228243743260696374753894498230594850806385151911770443907867532504151997977843712282411353164416157680613415282957138662300272256976551025360700502433032767290964148382571314552043458863355362280119066199764962913805772090145374360033120039615467535756757505877378982765741247945646356416002597041541952374808266585875717406844210097991178641272053320841002550620851284528755270130149669416202598217125658719159292612078928259920208392507690671963305909532601997685266998980026254461314521989906511555768724499127534164690344451904684310910322500269905556801101585965956180400112641632268934751846068702866899579996229197524583151736850515397150050974013416433106332669357371635197248113002636022164319048882711770195011929628437459207770231005773611882496808137210014161544537230481286092963545387118882780102947598416279078044263254020068435433128445520839093538877076498786149956989415062873518197076720626617359766761696939678849786118025309341887885331957498875878972435419645249559367270852895902111688420103417709358270930543920041899597744053707822628774584804283154737808829502075662806600144501734238415173620652392026503335528235559010338306907154087176451259431418475381057597220532492802636047760924635758747024450429803060135663908859174888753541521161284369278090472217851088406746587274259576956921531732955036151857199935019267650399703262581557154800630881097896765689638938759387897230087319492421253551880307458273523316386043159091580504595006442930302900761090740520372734629539675973140417271199554676625106309834747671560867368445316180204260199944054815626878113794480856182975273478306083160068545320028866051909401248593767407631087813085601237130368595967523327572329611814901182592350199966106430633331069023932372956371686531619975992289259911665365540729284139495160878312843982334843605850781682332604746765611251239883154425190764829206108541207691907722187353109959739969032743323571501092524440706617096234996511243758634994057898148874587022026242380312563592849982252975907330452949221340818488473070390255596587377073898640489698397346509139125111089455611472059804241858501551549684094392833798235075965066112317060981919822783723331183189778653052374359099719910721090741379886209652194778586798106317358835064556362083715039216383190344312929372272473534204448433052493877484454968800000606629300974615073354173939047198428734320327794262818062665804055394044793679040622519541100494921676091852277314207288599678566857919808827673387512630899763734908829595364024919606571988568962013041869147100001400137321135481258867915048118011449534047685592040554108769690079128763579119906694200006346996831905245754116800126943277228337595398322761260853067084467651660124433013894736275521809089570987741379583047262011184479443854210533292099688350522720797898750035627472280377345318826999380016403981183295511808768255032920544918737297832030714476704294997887880536991565962091315794860320411264435339774680744993042577730077469795147767974522137324413489169427344537253784499637901236136715769176539818426518276751469184022933522061225142697977830152345386298674709801556767699861124323707957038041085896932779307570693129066312954252529893268836435285676256096457818622313800849093740871736984930411533650753608579300637359572532672732302571769567699999636482505330700831291832466339924277560571995239856147299026161796230279353070240690596726339841263764595972840821065510415788564867258617450246335714399407323765494987459678933128520864901964716400001182991367295626438554498912211615088459798155243701237892716390054764249650269243203694966681144226641482490397045681398751683179571867482830394058993508380661689120781935613166551757605647196041348122557506026741881427006889701223379969452993873172936402187265328306685631545031418087871830946723631124632171315193086371525060635708925182715306756397384665635658423520197627544201809066580628660496874871957571767553142154092519409054357160080618540955402203825951743190253702356681964498806190631383858447952017138343769715352354520183144448566073617351229845008977022528338661856605905189260301301498514168673414772521020770859271731481986640254213508243935822216736293770208337657852300805075038356113345284422271787791983575084242172869236567129987888974012770619749286482523285512510647219918418331624441470527381335406185461852364752131088356084110703998571363861854920995882850559808860100287524237492971326699544661434803707137166371153116562574638034464734655288499494160183860119043001590733431302890516969155963251642258452297947205730178045962368457440133313345561575006562013323160291756644743380995327211799829109628220086208672244025768798301862195127405285485945112505883689058426085668054458407067542841831133791623865456852886338398393175414643693845697772005227623257561538559441045946207517781026551078634145083814817839261628528446129086019896187743807307265175445372414320218821869484452230747940521083193859076173025188038973657596046061075764060740515393274343471598119370357125939709678067796205375406914920505337930399279749688340241815550099029678095509721050786199987374254663924851332746933907557421771141735690826953253492999178390897225710787023556822064389431933602534066280936477485225272740743685198804681593921557124479831389962577972539856812357939887952221895763587904773071679890372254767941810520193479111604005848012836255439673147226393596670567713084557353365004253694442005910608420879713106661180447220877772557507679089434803292081583219462756219632472250573215239973247556762975540552204017554848743731201626294827211199319568625983910134279258765895550368176886973951985128327367191171075929700189572934978824805477195882096328277121790717537968665780208298316905972578202976585327374574605240336165806403210797929845213170781201636827972779545135375059828115225981034268197947294469247602254442684054279378512814325797304931155293849148216475076586417079736481255344993386338519890317346148874638162857123990417585243703948380486499463522895783340265279723243649290073031619827805134944658506901364777772268764256079613231169449918431589001991781193386324510555904222139006918056217991792938808809410598416384332888058339110162438609022057694289857558384375797275900580712476182181024426679417612298370826612845345687477704110865583161750273628307770053963306183927114698706165356756849336516425668269586146173756929514610351528671058649352253314987010109786061719517389215030629637473264934431139031499845344014919004651731227267267839600142746182820007997499173845839388999108919103263406822891805161826453958031956826326420234044694856337286554611684599513831746414670237872279890520899898591164413128562223355486938573938329796575250085894916048783878464549004807723828926200681816419692891808631034271599313819383179236479600824954704444788289292643228486171345029201037576047848654168185689970386590033762402886042020410547593303743100445961478943121482280462236972295795018861575645798538024298656134577222398608009991077215965914217965832476001344805946270669816821697534432585497313193931716003947510142224173773397706712187944198460712034232785541723964041184645338667696819965951497532672150115598052171245859145642147631166561849965205777412932674763963536079484748538165739305822995833254069865346160352461781538209253794254372322709452318138484722709654601562214899932794412424950288804242434271058942788218865555859907061226578693438021839386982843440246682919142902336487283118988818732037216061062382747969813358045020715728741065286286356763465668160899372580015626943060835631363324194165356124085940314458716973682718206793418886852344207218439603318985982102949957520801540858588603624201508271597696063165933873735144507703074699603385151541376364772508885614798431155167881724188356802439564701292866233058419911325097404587314738785739231185649072918905529037062165331376622951903206304292144580385636567957762015932642535277233044691489589231460666542787566455174307701546625744467746659502496506479212097263026445555499945103541847146395421865165446573624876189267197517544285786731861480253472291464529961702905751505743447949438995537416480351575335387206574711576975028498277260452985979077700164932293212026533302603119224705390426664167229464286755748310772540644844938599662181320114320439318091922458140867542690169211567514372221990878796882591641575320520409460021484733987215338700750482807466822799500764228221977926238772455552360435319143553495277231990933270823701897438369438007284177193827954311789859797621685576660302928378998107343910701659097627426206500517772924231715435517231318072297805702686328183339117625445060294636325039740841339728780983534940989904756433718396129695320887408794910772688896046382166234995790798589160107934493933573017772779524939997781548739712397085884278790962240484271777550735604112751396587144100597277178279062488023317709449857847826601445303198102679867799555862819161973630910433038939744342651779292259645064917433115282709188454184169436173187913263317606914397484001794860110036963529459943737911495041109055127239765647232120195071952328571897349065599963721949963950551833234111587636021180852094850881832254054908328301867126258118627086862694189564192465229577283021459448520851854239393492995104261123494176072515605685300381739783792760442857272624949776699935290249466658949109602562725020590048386328353720795993630688273955300299120100289485309224638074885660974652446764730421627127689806822344728034494113183123210485417602682543189593950954124183420322360255192606928616267701752632238501714709072652303511641711805852979190672159249127948928700660901057619402132969148262267322344824151399747807472844448617960018158971127192944207992211830906856858883964290795371014116441907745737890604655114893681217168694124936445953850791427561497656730516401662086460466540636160536729689822311029798970419632817562950508671533146655327679130040096948034803823152520437673516345280387896020460667128442521166484527458002381275391685341118520946122881611594202785342044951353099847779592958718939204280696079716446521773558136150149647033136159022693054065101655816358706313621034674578509241985565954394555168933982517902225740768831249206350782996311524722577637813285584132445453732582105089009206182788227702566008170762372511390960956526454087134978085267444759366352825147445451045426808277621668088688268643062096104858938580802287204730747507258615311335323436808380163280915303495959781512773442096599697701111371755937618424286759894804653170976885120189401019115049103205297353858748912462614794143408174655387649051306054995540261037237027440561753929665733460658798888584943257727725931175979057238440565541221202778269755695465570073959809614517549922664452654018076162831067141762123310012126516934320424719700677214295333103640083460462885256185520504069880302953765726323518241374529255741708150869549748216268039112834430376655053886773584422569321701317001698538683832286624014749755970669029086150437389530407826711350394790777510899130868278627544105786427965193561446611971235233607461731632458049740744010460498567402630804665309509017854978685896823733166599502088680988767059404773321796556413333144360685183797419446287184251655685246729649856582313825031060125380701183938854287704296644973879933778150547489821571275149308196805874082046701539157430914053714773462223138208363299879123281741141295060026511323645441623188530299050221350887787675444664319569370138747402283772769368258722745568131439009452103116152083275660081231648826339721357642885394592683370868128405365988590526525324419954102093977456364408199475875704280413141911238288845923426788123525244092771534944140006475630098164943362226809484827005265677592278092884123108074833915676693751227986766618696059000687928444060639585275115500047316241545259361807848616200923681344351556390341609983415970638836949717716342847792521447523995394156064253979956820516798849406305317974089292838277644283437913932305354558789113104536883485025780321585400782950823704589069562383122672646502392968385026331277765714581538600322755544251098113467372245750589143201842093945729447906828192212054890301329708565828382473023311835606929975615267974826565835479209124361694203424348428958282835269545909069527641659024407194479526153989828276181795383205602926211141402450975954206686130627164745403939973388923309768590400235600473386991383876523434329033263457948341226128705945372398683289214734353589998037170292093242730240299748436181568487801026877396852274028072382435060311038972238621550610761240371438714762626158706390113331030191722321757720664180433584422449161003717563414328643626439247679123793535272235890857250214630790744450240473020359096057743806614031792940345822919509089125786514649726072219803086925540498006924450667847165969764044817573378421911690876615917377120465255525300087093361759736095795350541489382621621691370598371506704755293342812188199085387671350576712279596389771181965075665767411542100806791889958953549704430466691772638988000537855462472726603248681703116040153308469964131936200730540123890861573229579479224258715946239595807565882244947407518386450555982687481903962178675976801633865734566279592140409061244311517578527611287916762516757200663902836203462132340288307180972390366384722126807334933126585970569883159166184318561322173832219929928086208616248283865397521414131155886726610155961176344414516157469586532732876736465598767521176763956695168664752705044885864256533512274898921241344661920305337692832720705178734234190404392075450880588092444293445882559048910686819280248967252485798403491576504364387877171075045177969108221020366110247119937241821364049552984352041865123662029118865836853178094212658887853116062269336826603244164192073114313913342508615221070995969103787410096686131186191392822385186391723819201620942503077683764259435565867737649202337516114004294293002643619273289635388798172089243458016505815703151272321416824083747621725461328302074648017935535120034405485585051120043566551627552711552537585284801938249158124879717179502447238867396476804452064496405955324535592959501638500508934310620124828666215407899386708516160652493122686284619813207498999755355393885157543344629875159376182992138870374857610962165685718596719945421018182020944297001745344856212319776394806018478748603221841772428930908018350241799005509792296887957910925222066267139620490938149876676328909529708169967215439104000153578331132293939279330988549708227806749988275836894193309091408746211391831261871444968185896318018282537825159253930398390633088027407153887513301475363799477189494776677661091298802070591288656329578158672174440181951938844543807067842462818906736906161056635668465243061433438137324501155100354446205090251470331528705552017943897316242942000244420654573708048251149202820749516948536749720953089100885885366995042441983886458050571870556073553415130875948904591318361810842223516785791261181799602216533256281518603536372509033502047427543185737139480814130000451010431241962408211835231703611193390956920700354912539216461378971851028477254397275537620338141528619689410311202448886829264090416320889538987177885115803004799949228203290277744008087999472764397946606857500295919006371319745833270462250294485491101749900546845582789320542293509196824480290705351036765742762774553078995777218946686187376063003552168600085016327112115357193282983978782837109315156576305118714083244527307083645456424860646259333294578383193507429198642461699789145936419346674939613502427273486561516923961049277987796514747472538073676237522663642589783357204940141518914007090181833760994875527220355357697832817462942178097203350398606726718397175306182257747020141415229824245658712549872676077228986389200184346507337857564032322197746885034560221232733901748663557380783494669365272154168413547270424645242135580660913945262446115801639853162067072072247569727204290233149341394180325978297489487128082944212660560049539094295004815171339633650613019425598518264128727719867604641480170318846780390534358885069064130779806872298511793533894237982670536767411573964034002735623372313829178479448441051790465258198890242824577983636105217636401266288013179990298018458718496081489444540003221495799813186028880929778960150065770565663039777356718186939135079286900585875249237340151486387363557825884582837468819598723638989960429924952970612383553240685853375471158929213552035544412468089729173007912724993363624823237402632629307732927583641505202428547587423029291076878979681627025077196109776480537187851325752515218504183330414954438317688803772621489960798863927549268046478994048048830847800233155762947215129597853278335468356970195288588358171131261846676279980457455224145305834389366241121327068403495182495287386820618820097684443789430286266090433990152744926627342669420298527397813900087592996555023697940604050458981479364957112253670123855265326292062721894478623200052517584378515705562571135751122667325688818846734106046293874550406596405124238650534618652124681864173733151053993081214861113740072213287586493066704220512198116169166795518725607735672220608709271204622907233577611199951620110020086419148091385334714860836931684856455862512410920914200374367956177968540598464063846695949627910117150965072821340617750664707428829689083085497919058093452241285477825838477470148527921635582475297080585174013045861394025248546368753584500491452324163576243650162137241183008791017515454551254995828609030811528010841605662872707891880456879740109845039126396376892359319235818519181715129432329391373422785358934434806966171663061192830011045526874822788840119385103803573088091606257507353367993805198525609816915874893624168879948991754623619793185734699720650734659594144603761786370720319569093066188237564030506872129579775650408062116143805598136699195589784433707542459101848296655675208745795980646021607627203307249437818096111769917261486730320057817270473797644476206842174178266457688693300548023396197253483526918807094767344847826608034773529180842915272584122907503539560396303540944535934986485934072005089568471973267932857910117831695565811728981312810773628646073427719313450388468997116799986778833700929134585344898101317393239576118065229401516114056988637578857848593126431348644143893545618655161116943865002362960388758749852307114156997676432197330919769672568951194600498255103654867255459931355544462904958129056495271430440368534396583498587693679849291830759223917512301906307574541505441491163433528334720180370128104460962815027147090549155490455049955850739662508877203035215650891779579924840892148908941538968532591682237280320986237481437338088845202357682061575585585310794096959953337954753117639243304417592769927712797294516690011147003884768780272559225278994160896291458986742233308915089813641341322871184901150285753374805457519447920748083119487846387027285724938388740028868993030345232403550665439742610861664121877329226313695272080573761788325456195482929773918187432521590530456707508860633955793604297039238217401495533468462636716974924023068135757005783231632971133918585585722591017330117006923748597185973941412212442801576239312337992587404822579435312097669089603360190891763131036434422117814712690324207419457804326895069928270540593058535672144788262706835592030631830629165118958894505471961742228470871136559902975748966225157328641105081632517863412989873704629588951740001142914739061235067955128086362981133254045460345182508766694696600550207474865772218237647605035398060797426090502580269718879890096503814821164459177092517613892747887096097677153382258972181614827817517074088129179406980136742808991586826115449446230350865683394998819334133322295871913153040708699971545984835003165994414145971445455220187795024974203443774572749173075655565642364214350386063367854587897737152198959141171961168354144420121321502017899551269903027896873940705514267657743653830454818805516194549213243884133434218388463823936530267125094212390520895771985769990149330167665101290265653353824691413957708950348629637131308361034139348782839294657703408366275564299303765038968741122847936027011058854523748441796443842961078692499153187502484911568192710725920107866533240313689986908952544912798666747664042769361456123760183739131827439186983653679987690277400148772212544415765232782209521490681595767185809243621850960516826834880692749850564578447114354552563839546293506326842113248459726726820942592673165600775769500694096149270030006342169120878218020223581037450046807690836731240741063122255412652626843699323287807448695285429508288378400940097898793670453925874641849158099690782530561076113905711587465393901515191969368188982628827116075202983908991420029679363851795029123616889596475203749739113243102354087478149019229489136426140708009753011350620137562762591388062182750909681644981319906092297665624309309427471917531662718523099280912477590536048417996226288848070289425387314730830451600561508316180419860594780429655311107607246293538980932576101091355425606085899519276796753847245310557723059599263082121229060991916653135741760304636584154962980266941965473034400032360774362362704165570993551909649795869733595704946312838594478016549014180025471427116989612714528786743043112925563384512332069789559370091644312343655114208935682851860405365783600207547820075450146973251248004600509215701111860232096134786046078006409044369992846741002741384327196299984581251006660712965340771436136399362415275885787801712229943310043466951581587964138545350719489398945656136967500805101225033546917259225131401738608094128656552778843691908310550140433611902784445359589630970940303490439995478977290395809655868579190786238252615453127289375047909637529037819727224211473745346225654417494334533668272031026904448090557314666224104606037080235554788245555974443408888396186852972561648863081138850558247767638977727657847057915009103106794365192384209356358004599122925189351697242363720295129112498767854659644491548548853386180024909033078271784493390959955761147974213105070317532521941692982181229237510227242399896079653968864110418100295239912594063537008107968876403822905269483543426858241172762517352920021610980179549621091023645793432690003221792591003064459536849091332041366264571375141595998513793182403851318278042246127866268508201542299607662984739566622732172606159390912083254541659213890110955762354775000029700417081122689267100961804894472592329911694880842545649141027635250249361418429208052128917934684771672243512170016760643939269735856714722992889972308929460379599084494789229086481520114776350367391494831567206370213177195570191163004110443681711926440927452315894377624322298382965925581491171891903575195597367592028102622355030275018872969550522272200503807062874577188701552377554337190145627094953782221587268695239358783394401439153774699205674340340353372958020171658701138300003264004135507304155053074087304595111490349342490889540773939333932327064339004017162995011601991247757860863092605291576165795164964671149395450764470778717004555361275563628327806199385020662756751130054043200717904083564513804447268328093482291378132373995873484210810799906736379021601476610184102413124082940380957556075397402450213398301091362918837375024153234737820810856139033827291530261112887062529124878339568192655626460092874197264637659331343717546181191087394754857394311833485474727977471746840944695431251143379419902803568934988432058027973095985530336841104772281450890401450831137355904119224805010743612798554592398614076205229439923037759749082094463491311927905136567900065057161915057116999403758887806057665347137258477173239469598908856309086697588259228776556669453717578691160522174582483535096235622884765355023779510667841600320295282904498431054910951706139715450510937941629233791239850206502279875581062604203707413921930463128834827515979607664962184279515965741104707422435391317048528549720877279482872041962416603686982430183138743350616980488103618217994336623725422276633918463241165260962197934760166251546336182563443269934396956854188374946453102798195710169375465689804377259890074171370286956670753718524150306940641914181039661342328079909859558525811111098837367074016684117935215883727695285023503735658885974270913238974659372992904897054100474266221247790925913787280589356961925822911629494461413850034936207882641682475377023503630988456070337151685723165503025408353296975394986012293334397569773274054228025642147365830485136858613268540657916300478875889252559459334249181709293638011676616236005157499240095815349117826528086349855460318009544922929549953846291451769062187089500313506347165060564948734693199946214785102353987395159451367825642137372099524386319009923961983649995297672490502903841467511212114493769570609879899818932867005732419234352700911009425614835125179021328059935204705944486288384311669579558116750742718272686712176590833962134637526221482558758076809164608093077004462482137960948632367627568612345673508152482757997857470474018831165296291560173017439081480133361235836351638069304204580506102859425501815658398500081452543844753739437959383433546115075552172381149486492814461761416857628203561421182450349176203186103891647459823283229285879626336392668086331060265240175202506174399193483227713597034247571783884196868686083896100146696831251817046469625673140370185953771334317270712042685341805902179199678429288612534402583557222592619139393724775885280375259712319289854873566127537942137354633218194970978475085469348472231400297701113808808238452489417954896468927026734501047418052232904167310504966330832651537288476832960430199814079932717607150284102605360555980171255594516313616192224412985460709652244057430818845754792815655385111639225822484180990249920555137392373576707004531242619072122888532208834071543938939606544509157584091514436356041898842744437070088531339514294054227274233284299066626523661905696096533279002204197809850953941945289434906171158993161455313400227117442965942228616752925889813797988480153547663934217262253946588070226733027067494093341548063345081806451940066420671891476781269579421931653222513165556903024981163155193216803907347891652352566560958711219459891138600170383005376268692259641301226286435525461457801854277290153970195053165339981253952949687313703674393939392436131705424025287092917689055513931437859825627398648416099112427544110169347145445888460948346108976300457290551302942420268695476241767052142376282163461841017907358707855996621604209181059436170726473284241860817189277031072174010445101831965380563656895553426522911752547529417568873097977994551225859324462781728459085454050015863614598725934301361655703329687781076589503924383470069654235362695832739216701732310287729889619627396663260139073433936275242992791183393140195035573788284052822580975034794974060275775531767178739379481295156052571709400133432799196110998234362381120903092099590802034261719269123608733457726844563915654362586937076046022990610310172754334766716697433466557310692929063262811293765130387201816019371796478875855059770855720493855627795889948880509752928006711132211811050438450562914521162022159093821160073704487753924678114377064370817591466067173892006538479212069119919407548446430253821655492785319473674639346601239290127546631547035394506058940201945069702950072479806275791382132310105688242161867504334392163956029784496128668750197824256497320056118176572349603997186297276010541728754360480657413277288899545678500964421937479284133680069404447795988964736300683802112730996461736069972244400049327777602773229387700367241167612739563810977175414827057920382047013868057831998052239319139002853420105900960375587820238981946470975141394029276022749736351445379734498729236805625915345532633283099767126270717934316793288591846377830640052195822450202153026074062317349733281317252795932170768418030057305325298139666714670673482696552905400647805787253154285891979591056025527506634681872092292154315845663414674670269464185553473562052825120329783332294710512034401749456276552508894629228856394822698683621704329589324938738613250171065730804669024314073105944020181234207335961415944085921779652387626846687393801508348857764720473635003930204437551312559163114851334835672474139830102198040603310378051097473903818082999043883206780060979387626294061253142550767550956998996616116020194167432055345897590866958089457551117500424192318020162958217191830975005683591461410260731494272103910809121169223832737099997967791153022521496509644192187368690527610119344632519158948679974776579620403926488538971229456824481317290704309243451390388981827497644326830884842918900138471320178579921608055246024035039017435968961607343446316538718877061962007713176091412909544607881062344604409878988954608695014585093650250217377034838749600777686395673800464195591159773054953809944193182658837619037524618911961176940817148022395632770842278901454340422089188504444447820951276616991123134579813308566607813067525282196734925631247116048273170874673241533783026541023060581348003595251893886838270318228398062590413806886411381301509442952731947018959107893052715917081787995561392315444234403595079718181576618346209513205499041198176360173992578335509622728878805397513281415412682135181203806740407505503277147362290786949650450856904926555911269382997360730379591108235719945662823440474431523260787933585965039684114639169924159917625221713583083701545136484785672521769856115309543770049126663719081462468204700159340935970529124821898921454988368439372307225240852629671849368167679599172298062613565979987748890798133341156498135363581442646999788809072888859416841112962526791992911550330133550211533906197641983638328819893072216807967505403820947009778992543991050996800810398125685178626305102583168138149354013450619397383744815355289370507809746777336884741781760012275689948617824751832271068944816624218278976796209193621888614042067692996974979227619444110814331748117686385342368867781551567180551887996246734554885623960876418993870602504953392757871583778657247882095888165495405661125497421604158699957061589894537592620722703014853020666475127329971974537070586320720294355090710378086503100602842261607737031694816160581272880777322127916881716913313343882940928512366281270417072692152341973067423957554291940053906536411361585460059013272480332717474627670607371931381992681184579768421224110795061345571643786170782243699127983845372321071643335269349854025003656116813405627827125837963947122438101029388682018441894516084438191627050846704188834250551872560176879357845660825721227319641619231051930879344704767337718931001076401100827525874424916040966230047392186787575149405899119314430223070336115178219476299691296014321156729364582958740732812522237532687682262672586545455624494457288625547076581929523694546411973206386084869143124054829292205045603680437192284397931864128358319940262037955037174054583589144928918588229587143458942959392388875155615736241207140663580241505543925214953596758247185970402375091928102916406766495498794272862536179850569405221413825296769965872257382605361097969802674972182394830316902144466068673916814557384719198861203883026813457391190678208140525408417414063645291564552055497480426917145650110379454454138380850042003766829906447816960519008867645629345599313263283673441451625989025274622386483615390842714632596257079670424271900647496451910077237731863324339427538216476323342109852569597043329468968362582394988375715372503562245658761835308969525317692617629817402566555984930884667827362934602470192391125649062302942220413875656742997050550348947537755965242393433129321859950720666363068079248521219988621036552984760860498412812342445562817569330703040604386632269349941713236240923384970541054607475492882828122712125675225645175343399941427992572517919190004278320732120258913171153474473724902590494741813747765851115489638898814426096864067053002222075343937052798798557260592699444728031641516906647974080787874401073360935890156242002111317165257231845702819427425583706261232761047302785088839737249859738644612803008137477359387484160994391524529035415068843627119633388339619574866926558923373573874194976064654740930244335009100710455571815480385787554924500705000894748698900746628780963529191867873253210872886310031243872454875080528705288500741040272913725015807346378170226814554906324834180010088584995982398737784671431663908506494505453547069168566064261731193033014120701218578937433961627873572526259145527921899716746553969001551267667643724610033001376217219225285757448585310400096986818595125542292117620463806183102081938284876777510994926694043925891375888988059106310475910376921291228699245403275485100777075001892990083101682429321888502458067379567880683006369691892517591352325660200817936924858717889387016185863855548274028896206860924072671595511110571501234166421509463263621829177933400730829044004346365219921927848094888973310206059585141137818752207437654316180132689802991838282643634553477050500946835846158712321978876792519667773335463923067438004661216023544609549450439494588944144605073980984669785156383973285637955283230535663771142504561103967440363150042464466967835311656357408533329715863674614673874823625314970309425871678504952593557706924035720784915949998166326448399613254028720404706873931745189508915582900761827130390825325078959766446236732860483264045555782233302933152960718449994926800320443301266273441550200038697759400925148590248264735802448403449222425363669114350003670136857347291866260106147723008291448354279950690769452441695019962924473101002822775212447763801315859932146541504864884378172816168819373942188918235001921155099400891170350793920512696939725319815924278151943702315152432977446429150884008851131238855168472966821206190217546260086761059610442736807950024094907967256599444498459676901288404892880935181156792635382919232755302292630177233132780633315751154830312359583356491823571376541031046734253054782790623329320091265293498483083577982112608758938105706057879130863121811237848748602364894482765741438227660971919448392086394634670758818369883117013898957527394096287409080785563614219729556732438712039376731598301292303233030504680015799413428054438379383959083766706626015832346804340659076118131073436644354496151322047541401348948128778720029619700217557106428625869918439612939729594048834840441130672651849982225041428058964305972362419688779230804046965823510092725185895971676553984497055467149132166136977554308491554476692996067153945833598893504931921603112535471262062307406484869219064851589948159318021280242057260051346292255916679787435929862413103707037830760764819533557369597651108094493067520123958442812877453439857247773918487234918944137901826856588694936814515712893082367020165190323511999961011049212113045151074370857279790085280465153515154444374425966195942836087893449798000983436803860418450638952742695563304819191232913928516622257875614733694804518868111017570348467973683572077633788093121156708147846899580390670764585027660947280764670951657084414407583907137125541672812258982470002655988738071690350818803193826944909178599856794526749952133772402502535469509335914730462520508416957734389943911495404830011230471184458900821062572871831521828481079620168042452861713128704167518515207268544684095289394667666542668982128027077770079378669519779617619155940964256997894023673689939349653982222579036909927577334736982388715264070811458318331605048469580177615182749316951191431203029675997189359486441402802705374292235117276886950043328273575289519049802197430677533385912717615945718550927025762744330441059599150111735952470305672402601000705602524342447296098031111060430525111697044249714557274037102727860233067180895065763436424415677269807019537159401290158570396637894988678942292147052214633631742975037516800955822547769534345182727033826514625314398625359125110009630895924886432762116459454120721717491423551808625235949917332853732046602674163112763922787493340846386982344187112445317134869814822124606455847313720678484247688594917959746493976421410233508243890215631557834422710891039689929607891843954364812071164894640010138822087461384097722055937578043181916844912023037198156055641615654912513184078498526460440282137880355629780063103008138295236988763714347315327571725356129664724485022251127463169513266979374750349996163691761700263799179641693999955195819920547425931433121428862033402185632891265621113105818423315836392917217922244947798180669650229277889984667419641510566617390088117176213078168081998897288168313046436515114223971635512366900195454608262394935190864722658924796334392420567522349665599123727102657926973324834489045082307672516390050629083033658063445531088466324524078397374249841456326128518135625998717043360059606004822877099191738967125299654805347581610560604460620493962288478510082036877298426224795375365892263739729205346994844891349838847798977379702447426791341910141898173147535166083201113404965893056511850841207957349924526846820489129014203719583696444325530736444535118046242151366030826211367134536617336719047961416799018837726433198267348932797822871060137409397119881004945037025388975268750293781921379663796681326896032413837788755108837111282893894829188997401524702492287436712209540366257847442424828894904175489316001305866628092202334967279427400981917422781310970335024496497932289747733271256309566701725421829741257381905905740560801356925664741620974866122097765962968881064413946976527915963846033793848077045324065666624043593309384021543031813786799256377533913936933264101233584850762723710731675698662752070951620161605737232213006301054169514757411172439374954054778874103509874890729717960131162311372026359720891797930058034652820477556864061209604145855234045669975664386993713322043859698381825445194877955837388731389846099622781382834169298557947657048770003203913722215007822475832934693836054115510353016247689138201345866770238394495544351162490166934014520598770089509254351959148110774985082919413201940338268269176084093014626057786555969924144883593000477275491449622168231905852992428321445769669490188964513860564387560732217535665880296174326982684659932830941026562042023765263366926645028649954117655920470851197942711403891551821101826266515174188443955031310393844269271580399534011535386417170268938699580829647358899458648587900629855306719653944163291817330428974177339629386793694334840427238562039057892157886159001450383100081789121760253148745661901136091781237878323985815193655423526362331708253720755739529121441762596961632444821564710384440439306930290609966784143828836855359163549239199598985467727391086309313212342330076358391307295667016667397172385807962297780130110240191007315361841850539653214107494914549720463110504538200247907095498372851135465600107255940743067040071507033887017056359895315328890821071065451101259427825411169202514591822804165073928114737334926503200106444847037154167604467290497182712352455232371472465693208430534513709076588967871443289595931928412396188748979259233288581388558473046493747965296519222516371353178123549139387113566436382223809779700839170695668848736839515457109666679400773229260446670615067484690799704308639981446898186368390008640873078535224195049307873656357887722563767846004168587502036918832600492487719857329202461185129105713049427179139947547547765979470403455726181687525390103129269075223586603478691936396541865971306206512847144527383928040248388012560442881288327636473360488793458169444440675405657220308252595806467830795640448869883775334763680013457101702302473310955383127223010893886337614159128359000262082464727656190461747376750223126963029900552910423347653120917348804585323216709982074238869400879497762607152837839318550730811658815060326659798203866247935924040211733328800417001097890143948607686782636654944890388194700813069523153617083214644007922707318713350523787699040644796678462560081161884874017476932188874681949032241860542406602336688659652569696245466201431546616419132251306970113684419201292929343313802257981168759054437742198161330810762031698239183194746003826938813508643688027287698217437226037379437361274504178706202292925472063404012104152157101699009057951607057662902689651823568780730521758487323782074469509726278036796693476762877735988994026555176221715305448461234608083014391244164405582472134220873652393869225740472610910097233202762755917939745249307237230841598133727298872216590584918352908688342028533158770477702251172053790388881777468676732771708778014696128274514108030063770680784853012332183231000400819169393563921978106400546139597368753767849891669779077901030122825427892056069347672048874819164407743516373406737047723803512450388932976483016879346025633428919551772164459157312458219934707329026744429264968650550070487728801552479651964776524059231937193938705889156536925597830499687587206350919358536899335765998527988000205789986825825206389902751944768733871240057919324614349770856731150992351178185136898840916020824022486881320784316432225959468892214069791137413568690680422229875154553555790761692788400708080833731742840977381654176570203694828023314005248186568934349569414528771729220527831211698221171012950911497879636831429855534800908958031988668344179856082654683868762448515806345163885510160002935621356312937293141875492137764079201297530874035766135074732776518005106501047136136638438462751471373188372698656560990984114085876864053405890808760099066953655153337663359177167391882460008424626964990545963336398928091132703091595271922766213152648429637223417507613951967434118860171143846327670291529888006318083624739636509119360379752158351453179424806527477358108876926361710964820784254418336971723790642292002350062813350986024965449725836231100659227227740978046373790369596653095723428407360198991955611895259008063710673469119363067895241645359462898344908001835826664152077840047945344859144335718487719100950835454130936439878406649723944033743170859236428734926719156329953073298847444476095074103720486050981422639588671128697194916145919321687996156643760388417157170691610045478725171574871961590853291126061002058257317495775832866971218802632127508032335953213129597894006762536724149094308852502847344082026262115482887741019062173229881009647106851802303829090249608910791517384346752460645643159456315664951863087485616893688379740398181173376815259873341813001628529113427715389508493009032480555216549031946355791572143872316995525962527850472736890862516043307756187667241380860412352462744462099502277847466523111982529230859786618043944269921857945412829405036405748894199093733123841614996820760102631951760991037649757752530337472032679598952552598534943454631694396556435908574867658187913573265962070100293733148125184551463247641952938839833042568132419445679388473677973979749728163260008838603195773906592850867165971554685993325814499106089751052374220870681366027776884666835512846655170159495586321310645916689729866164978304912066246342043650088057418344089256974514164759838507448567481800583327399864705483260002289065429944720034993241179732556758609141525264049203136971526412777720062110032893343802468745889110235581268635561643263401049375167870799227242512501287730637470012671327287589312993634018082129985538434208003687539640988096261891591678311585171963466888379391581624441473582637792497645557022673325342747704033216057337117234834167879752692452178091963333938722750669040961189033368541934340420401624412377990374953191065691946074568608624205824311054108633364786846311102637606449645459213404394390905754799231987888421556994424263064733696672594978790003286500206131897529110742619114283686357369890207136595952231765685712833007940127137689705479880901045050588196367550737395848392944548955223530888539794604259812135806443153456931720178700358349239323019239281307780256886130264868075266086555514257037982251201816144708007498683831251123681916934923835005772679712597180920941402994799917732953271683202871455336093972246213555224241602360356975245070546565250137874141168365331059958301595406267416801319653159731672835765161375346435311653459297067941539469385197722967959327144054364108619984313621710011487576099585292257447011584034459444065986896492949574633435698267069284442305291045932320720466401980829384597262997091203654021083948738139857251485323009211348438994004980072232799416087514944854920605611311618928715440523623206160897269511319859757088417541263597768336700808323569998984340863263046384877535121116341864189272184936898531499552330586268518193367119403298064318203471271524634591083904201863923404338215527049103095007941445355049929721855221274991695684087033961561768878717582879601043525415472019444891803968759995717611498936091926914541025291351605630229161597179220362297177928620787681680650438236682177227107293613229322512522864572628806744354174840806401700981760077204383480121517624181394014165873739134804433638704974647851157729122781717699033306674148695937137055622613846172159391362578215575700760560985046738213003579885166746966062350052897994607098115776322902099061290010891774052851808814735747611611442547714307041645609457487181293273543972814141287732514167126981718548827627421435855066766653947131672636991651548617574842713168396924512702178244039826579800831805027158703922075718519865187297663436799067658983906484181425688654612772159926854943817536395597169787149943026285611475941378718474966842297977757677422062227793650135015757591908486195486807632492605257381492887603938645147617029466479088817075797184294251378154756227720328906758128638536608711284480180226488634203710853152126885884737927860878978005290644684835343418054729232130522715562554337506595884168222442243002714144368909688181731151134745754028313939331664571790723186715950859947807976363495921947851805305134972670504097544112409733558574728825515129070331215976593235166348776659191482807753100697076871317300546854803898511096036313917833918707624193123931397578885403493861535340229873561937579100551703668732087679264945313270878883309075839809724447302397656053723201339157791311853746843689263287944372457489915212472968672390829383185530393416047909042547612515471859612722607094336001696004411859163615169020872629138798689175854354143020890772347196553801847880936469034785137923363529461041980890916712940759501496824024395097875689505607331327150112416893285086847759734070729606690794833218076347122672281585023689770291447307606525046430500247041377510762588926302501135762267770831310035986415463961669921403098152554752284380242837386096578220563566215627778963386515802407712754517885496284446071240035585752055285754307174962888838238271219209563430926935942149292717343487583589670477795532621959644617816249082137301661552590918798480024286017850883078422816045199102898563465903790869786868023178652860828272121215637435759725376068458812822912710517667930588006415628276638453925893582260880359825151475933457552889067569975344711315245875472197403645068016548378466314412490036860705915742159848118500724558742995577271697030627591422995525235157413206158267905985584240680431976827807855926084819608268015076682264915758103908791643283517443435297329254843593057490794580982964763102198374283911605813899953200530979852678358013123631174374857445916735210234775062363011969540529201235159446266543734965756352306841092355614107031569434655403102257290472678560482577248865277538737374915819074807994952194915864855141919790070068119002426170625254865614153460115613555526922997229549513649672485004518984283413637645249798021902032337509305733079524511298773605886683901486637027883584002492740609353693734557349619741139427063112154969997667845668392348465732294949575509794020486995898763130999682035891609253362399914578413006587240199684681776554446234717318138262441277726081352456000938228572313587170324631651771972674710599082032764447542604631526306886140564306948211376008040995197085746019444063789631713283112907979334069476725159406235506554611551847801387477039995625854510448822903653425788796996077573787290318244459661179310806697531775326397870055511012587278735926870317995656487524185347712869901342701351150851049153558770696288432353854120718371664203309647052221511628443038848393131610431703309181190509610694907410990913991057364909903210780644600855855710721900127320793390922829256359897792901132369737887535362250793262404749995342467033556297406881752563192578246207313190244743803899732581607895910413067485985706954555417214142782764124359258576530778087491083744461061172766584886036773219983114428528906871143011968114954907512590163495604306336485881311357182825896230730486367068472183968716268778064259399261003239521168603203800307925823873397801555465947324148009211326339061552308599142555530430505488238291496105495065057679946633638328119148958513165792475247196004402058399321492299395282296525206357345362402723080041731578594209316576569631597540357376618322229172458860356227960476272787006085695342327911890778090211361092716518822701282772231916649595402739784399994346591133266501770901817616980576476823186112715144764094075810471679760015920876572533671484104668564895742403838572188863333622799559966303155059790497042593656811059857513771492174445940460311482029019231640400474547174204154097773474298661159217627278365575161760635157688537580680628307904475085675326696931267943103534350944229170031634911162768924420280312900007854747255745814382975845025106989509808751347600997607439797911969918118584706396748759208963901058666457095082799132079254488979055207580208212367347575897134964564516371313245941729014366871609487583431457892828737412682197814005231918000218853900066430562120185004997813364710809789604466010796433530622739163984609950987124453944398094307766233797127403616686688750403893168204009975135970855316637273783954620565155914036768969078912193622180370837564788573392413003685571003462092557910643344625539069438402125270511351654823967647270770035872714398489712342531824303832026598311775740161733878052266043029121320420600686946060620440175438908006209410278074002211737631326453165416918821709324855978444287247789635320335002438476847093608690365663334739513504840090545651608495612600798790828393701830870291449670750736053924739671813253466777685539246262707653468672541287043772674691169204876130771793006466408288210406777991098553558481742624161671693705387588974572283703894021665691007694651223446824502566780547790858061371886045486037850962937640285246853338827090507368985809068453072061264921244450389875867708834677560831403172400954908254956104030452883088646666770979937730874528220031269550531241882819553602572459516445657160831388375782995761698379908055837380661791321047159113257918556854136164022534938857617049192551893469660503138138578670191851818154993098030656011265016347280871575847253839589554562859006876562429990941712626314799988164686181382240804127041411518484236556387593099300885183883508969824829516622392675068207626628217820285075477050057536783509109309706440857866311852327942413110809052085591126383546933667888843010706455086915945911370192776419822081715379062159453587759266536979652998664369027332740131145401525687373192199105237436664709950293467072199331752423130776884895544226006927091145123414493920127583798227861019468521722898656763178623839125042189035836102475164715092386585934011381491666008699416663137693920782007301876256380687123518622752852244719113269574533891206031542082210891911590535990405536182032151402274000906875732812912570705010077547266890102966399951138295100221558888615822290278884526962561736534964041250320849586467517893688178324893508009941526802429971875892088009823567123496080399905848441423974457269398434919777434599140124478952189394875873527751650612530481858334511848963275590052293831950174117753450922998680821316397892531384828430252749224183793994983484675524606900796441689115409795890590171334917086681208221660238260175860880851818802358551951797683716735889809411169622288163619796206668213972764376012360144557194076621958388482135935192979812247024457451891575907319630803322745041978297593390061355190372411405531118468739916371477170215309221232051154884899753960429362598757268650383299470731428427502571074627518337950250720803355490855063459189759425019942647175200563083872023340589148070121802548670268841443059156602082082387317707592916670270677178150235812828748429864238847172128018705091530056463145453800191514719811524411788025447096868793008684711783351896172983901183270612984551149859972072599969868878496978367348769637506376608660799215632583572171441971816494108116527252936285171330208277252237741243610055088673684558756863342452949964995606593411893179598898591059510901240653001360709308889868965528682782089383045329235453193318933321820937113286400213125626246378866807832166373542710018523169923955630114079765555318119129551424186436489900817663063782772819358248837048704101368483138869192411251722900530911118109120756690755193721157426038875970313647331459753605483197948514812286985467461748712659514271417801290106878172496530239328230901108533525280132820933272721969038778760922272209377474602693992063133298091071409282288947080283716663357295646828114254494320783439758705777270062858453804479997146765000123936497097592180431181206635099817016326472811022483320436352290664480543494025323529836961561794609957402933617727387706593106068497670312278466762540514620133875377306712275821036762309909660848575202004820569651560548523748364725305747092625106043828590348009476324080877968063061214555360225655889564700114349699269460354395710814371465470946369210400194985660421772954294398630827762749768612597359640057296907218763345069573690600060054622860516572624652073094644266208167955384846417783536400663036932830028373314782063048788219781405190972585758030122720030290318276880961637922803210841056767333187742061284912955973060787237602480190051732763137384795685843400391654479060158675123038684588198318537849310487268365704152154928041603665534705528824097192380006408258889355003286457487424690559983319188913180520827476622544615358448078810557250054905896246207865468593862544616768115605063088038102467975790407523191374229149858392790598623333834535498900227932734635960849933567325468445821331374774948897421113357839256664759253901404782118600308924143289834882420620185169546961433357993814333042786574990380363338635137763104811578871191734700481530970010555071363614295362374492738782896092733054021781192604293781314702566756811192197523634403745667194172399810430998905877871926833335445533458104085515648711773835172033577736310033145248925755013588300343689738962205940008084865635544486377553881506814685361287006624327257939795911650224858180927190605315367748800859636174324697250195466506284292987689432759194276832131047903834990536009063688627444778020351141772559552674655734655931807403892401338649316836802652034531144599152712162357577735192644636881602374456523842750940889057755371123297773482461095273117302011853248148465913237452623917138369890789065778463751917462318522284514961803953682961592854358356216385465395671296670056565240279832480973141368862543951856444931807969095736393743457590642239421004159823924832200674902632255955104633723355339992237459527473813561657896294055644038390781459971168706212572058162959188557304219836830220055211932706005239581430859044841129212781595901504299363852805012001856801547634787977231274352959208946713553642146658806400144879557666819818366166696030955162025531208614926216682398424413451859932924965635599273402161929808042267328655502569333394503216561765824625967682369521859907872705641367283008862395658097140386281887699537418388343182338096640352755623699704274105936375003388775287680490038718018435440724226886923136358112797179651011522331327166818897568682142704844743375519995095806367601520765417821866090000382374427279562244859898776500871266168511455324300162479273940917605087313794332722428110713521824493269895280620923002475970259074499690295365017711026740324376794696524834027225909459606138045586340561637962812665311909817356448904926646958285056513090523734514455378750109031507621059379843316342204363032222498799658195888528094088781008122790421255328470573114373243789237404694856520825407119111014840463202009880549589735147101922202494320471973618754468191676126837545447430569238759886791700164053235000858753187985607417999053500534951829209793199083485199269924739223946119182093167061563777387770132983852745325353068316674306570572363690946368294924282348407498350050982468891594690604457360537303102372867779562369712716582269940978238558808348550366606734925906413929408657096679185184716161467169254131000536490491630818305281368637354676458964902954792977576222606230917699538415148058630170854973543041167447639686423690406754259166901532324111283523824826770475051934399570328856686752057852092600073300172224136578674559051921745343007286705081752275438858509193068707919991422917870946540670043308426379333515035011409474773508904792833592964083948221956784910767563875239233229036520108249453557977861783155282217865354007916148469360775245744398548141462095382155281126245648070954594474887629822273892820176142994000830739585500823289707657620039206687103251169541296932061884083148131160292151682255496964236626601514063888059946952647115843117117784086599721710800224412133675740462083738279828680492161633893042043967464167192162973319587235810974234703479535613143930500627129134965240798282079642971540600291309308028134363036168492491454653088263425419026102498635175333588082984941398900661016081300501185325475976350868789768601121379973144068997064316617795631319895367322108405486059626806291837326806942081852179548490067302565660128661670758061136681624580500864446199259832520733030268498225794217394683533945646012355050095373377911557630055200915371812290767113681499146650640908456253604055823895981647449942613131200776885057437474423048158647344547171974912308268341697625721077828431745313803175356855729380965085662426025869565955865686502013902425955867486188312175259782577493721437226871519563162922567729347519328133185972237948602735706546038995219221971362449135788156053154814735029272732793541801432633687043061891047663805110881063035413236532454386627150620617869051525711976213020968126272159420587595851267685362308345204338694971006164338631762119118377714109965730597141576590994317800762086675438865399327833158755079727019230351824365441021399648745589069328678765597282461194768782176583819003762516513634905008695874148015937069285065520543425767827370732250955817253804024666459894805963253460747694339229438456385239886093557918574484376394313008263173449139657727283207237316970832661273921113489263638086417825386919433117059715712142289297050492843341427263005865721182428503511124439508536188293771987550538246496725224519303214385523293401911322014862560092407655174065740980446241867630688139742399953868435691180609062234018797353974174790684302718634246568780944698043681120921519028680296592429546159674176325835180964027096442573316140191927018348088130493944416593235507632678998011124924417957265146238329260951005538130372424894091152883393432872521486201940671006171656665359633498631781654644453902335992780336938086222552893867748239124082605075958048698641462337774306174477191612921505145118476270913833740404715614393766813586499605970325773069086423821751036444668899093294500395087471226238730481390367092778295189946596160202889574242550440790450795583800550736678666713014142367972874534075177360130172766727208863547210181635913877576016647017985040482335982153469520612048601502129410568815556001721527888166174221627767601996518466693968273790804917439103686697101937431543180066805449691399238722934674979371176110084529303215575065737064466884859885617988755878918546955275515857721349234370503597823208712437116011026949404269069738912706230630701691455778424491926121183031186661343798695124991733841576247463045955976106651616015800309426079330349835213721107957033954549588582753283193324131402023962531023791534114316675531227910298970570994473848190260253450268553375885709117337459600147487659386840400102288823712258302140135403308092852765444294845232726189114906089205375199570462395118290760191550575475733698442838387578389342334573217716729579983347246866888883033741021255129744038683939820593910455475902661896187660340910486543834005981271802487075242941966201307711872236285729833436601611994623060202784826403931808086856620279216924719960792454985226132860254752528702683296440075895625826306536865189508574070938891296299102141270570009648742906287532406624495502958695305143574900305867008601671743582320626677733832269333183594168048670028044516512577308619578689857948429367919473318514783807554836635298426493466486502748356674873590500011753581351887651949124298001412466984638296174348308811794214668967870551393822514264505207920140159287756378398523726671129866451227770828100151695364922577206792319626873555920346649578125902452168860350655045894142774820857674373482417164792186700495733444499271186267286351261912217917060050504048672831100507293266595372395135068801931780946619454951215432037420853157779978615053216884272874764129691881463624355449111839239053842988452323895332216468305911125266228756968331996882889816021210983087051769601091958315593792805964355289127582828935996896407247535409446146181544069971510082236587483272640319746383642991521161098794310040890876257648371566780687391655143397562162807874847594825833323592516361210102467928261576889553532587620751576022493935201504828446571365861188536248580378361639166284505998271738671904080029268218141717632607593196227378690395368617312212449109062936726711398655948354754860758980528606201363565463713900502280711051816251875866689799532388048676581241712012573054621937412518277741687089126405405916931097371104826327157164838001927421722722231570127388817583244550695272915330796983270975512009707846611352620602654785152225664134783580649069711433546455115672433692976448954263530240894390248913213823159175266290852705105554285118449137094432691824037346337239705667728011379540607621328897452870052223647808236016415866688378092061262868821963371469899189094676167722754668368598382109000801878135571418363369815339621095523225134178820647076779565593868156842500211809860117943940768388457130520641639419767845964548247691074942190502347969843618015598423662495709739048671077268844599756265918866092597485852874202607153319474202826489215799276137340444797258325422944474972163621026083275918843584619662667302090439719180675558254442181549247542732158822268940793939647788208349826971666239541115661989652729055622318284033025284460705574515202624124303535325643355865105897139979053098832190517702138438380131902976994938052748375370533713310718279614871419400804892052551432735614099437143711662323094428003009782241999772325646781013240299950980344463137866189364586384202133032602495664698507243779262033816271514852377123485851509602085786365242716948735082177736534144624260427194467940806914685694694834610981056501826643908081826881953237531414136008746460205527997014444918890851070559383392139090305044180714465376821835053238419747999629222106255177435417739135371077906220804634069476987411506936737257376120284384578200788455736484714554985300748024374113298373243528891942864545221560356858118382830317291260197017196053230305605033615209310808676119480757288495549786579771357368116155321141739202800937271349357339151254723102492554137816835152437283828707893681114490462806385036566264667828588941243622407928111461055459935774960403538791843038088309318668824904509930590787593557127941990266095648006168036122302215231312128630633433113310426210848913944977850910860098981792280029450670366385456397111479430374971904264354571914299956053179549777047541794858886382258968558428157925973252298433176486878864483894902476882412614607012760675543738737978479409678248735543607623432240991692918405171343842787009040093985791630992168966546905603462037069377013674558941393424461745011406854801617037905809766084184136281444668689070671523127366765101789696310998487697198597197751716073155550666380280829223188654016854649648006311099453525441234727700841290057942532316680430496387874095473974321819666753257392564949833371750391888958083511428667288414465688724249589478631595064267851709249607884517488611684041634921110352530980899328253751930505745898198190411487615802177563953373403366375454532387585596116102701686394325111823153766043584883572305992282536625554778503211349438670993156358229118302676982486029960070473705344083824886203728690318477088437516502255750580594764048423361986939804807585414747476874601813555384655903274865104804351172052310807947256680185003592788880127768892179640835959700219267049157959567932514462304784990185080033921732659917771828472450933641880584099150692663108626555697383209961276728363402491974993839845518387055043205405219212000575323711626576419338538149109622083331135067843968509417330057729998588827015913584059645162171026918573457192127742436720680217074574274177927629004297628891866217549104966495114864517046415358800956812251930231173311333526221399902986690472193409713969751850682948673358107450087527477172880758369870101283592793298908841683788929876797959031061653882538844401124708316261921166295977133718930578047733573176589636694122531132146254322566470649262155240713478275572294301678447080824305418407244725940849953222475552661263119547361028999345769029136961553789441999196285458670950445019684798439552631413532688329949893280105391358350804705535100232968279316799953053384588062238155138339133272764962605707068995581713413285468313563896030583491908421583913045221719572472908919563001151889922276777596888240649408467975131993134873870310441391430598254779104909629681763923755488256854477239831102891685823870340709829867485247836149181756658428042793374055121726744437311647271904234726224315598721358103760950189782997060236361182117780422037509429832809246117029301943204007726946456062884195077034754437702556254012958734440169031299834678811279575355428313231882531695474582366184484886208355335160423372468703553685342183976237131961874953375863687711933637676273816765236189214533380193164870615929469254475977171825014166152406070237573707940081792856577037212087599543541176455027588465123087280513459596840638669062501168284669000437915783226036214321861128761252954513115427616822728075654834690561011517542760301300845322133057244938146918300933670710291277061825279918078177281067946457380195656431236611383998303549219422612149497614587195146721663863618573833680387112283080861627252599681018064241670150850380411004016611356351550777103507551234837031682925912452779308993055652493456467918769598362438881528718823671174477441924221483784235356530981729253268419903758878585481001089870409807393128049091311438099690781631008330033753250323317406428198554106738735351320578278850536941970520353133528767982431502740158700978979682709944432371287469468601515229801916010676902959720623108051266294389109808974806891751764795341989828857925298495937152098037431101090987571384353041558305881944261867101021244706156597945174740866804175212140099782235114383394830207967053619781334554720502104891761965870263932047626939254910022472759284674909430714885443515740076706524993840302838068444416160544866664108522367706110502919860247420494219711006361667461650878520256643265548637328335298830680042112298096284865293626773883298886418711925894389891916798875848412269352703822906180501944576915727904861208782097081541605380117857620942619185979830980048548391308351643607779796302899842645484464985620889397356344290984661615264073236493921312345526715956087384394850979343616343136652471721652397344546073496030390158951492107903062475384526446066333754538805580646991026170441108699751284251185357081245911913286135363981213116992154817699793767101995816900444815667317394417313643751227347713296071918216606651628190202644077289528731312099818068092905987973298180741225055513202110212815651569743964016114948557136716502836709376112743393370728987535499056389273966287374360437153679855434598303303295503880049135431870457774759911800015239109403478406041207147423823958098679504296251788317114028980701723884410982482154681479313709472582479973717055004727272562009423112232818620416428342960580685977476703119275469390328176117829645496855681185638986656480295616951614134777346131441636732808506330101730227148543612521089244241387184888524969974389850236295805609385217447847732380330077720484710326171060734300265701955050059321560525438319454951580888324145340096716950603089518146044338741120731234623857233799111861473271432367846171265765550172730173861789949808885320180982600637754709780446203125393082693693774387207057571984160457703847205913623758432469829017204199119691353749669336976862900113815045495627695139445416911457685356044858367666561642019002312766879479837673552613776334062430537240056334663072533811513708981514256836726111162519007247621547677909737797619422988000424456190880293384248784545262226265181728591654071558000448707824490011003488221142787308015691927611848808593974751864969083886178071546463085071029911533363468750780658724834200125789514087177017202440750212753506077600313851946883060247867478235384661354744039104577209852077047534501063362309254842793570314608281269852313100627661941507250765852291181952559547114476822624797788669790925254634239793910449440610935293150823407694910791697151336975760087739670647719342574948036676138901491901768448951800681622994612297762319274783481334716476880380006108769266185091594657643207351254817460425180745536980494025550602990458392358466748474777593805857842208893419427316466090992921147061450927337434465430963724631642190234768594540827919459042418583975965793922830621699131130686358445015743445854728064084797887957775251156751127742721932098568562713436264054823599894936741042383843328427726176761906477412456655762188820944049902601760294417297158762862227865456841708999246736976457483638154551762584874821578513961092890862888579894671688719605869146344751608368965484962201098056148886168325477780168446833586021207937833850277518869845849872993502972548824596682573917117744294295218201004471034727472390517321563229318422026218734342974399077721408669613257352410006866319260921322797134484200707714850408453692292472915284809764600445527517451890892095995538106882496807972778286541858277064179679452627142161020840992965005814544281339471467668064863899556946339438994171194793542425771332048404028266236296382594746617101001368155609831920527698699044354559057391976570985482119395903211262933629770314561238911896256746183969060304654548688783154986234325167663724272678394743376526222556204499330222571349832980822484916267673149891956738199130632905271152537846593021783902144265055542141846600532923145101322723919834597534247344619573492361395471599739441225230222444927030431984354785514309250496371938555119010270510077305214236046219361174675609088264876927084086073638008706939455359401051571206951919189879595762567786173491129794660463614467645646359333589367816620303224274522131900392363884430955234405530941152054087224202464296679701911195004590680459840312301371772695670622534693079883152564327100049556580625536547504082492715446193276269356910817562598659536918650446765211111545563744781941345573739301554180583680020408894056718631359976816843586003105621242003013996272621797071727034205215896826020409121290280998779252588928138093245046992589689059686237334061137180017522487230369933339642720150006076387567788572318621304508207489827107526974304490079250736859941623115129726885862537597930948757828171852161633099771919470982446267641456112666441953708780894149837035145906843365523199455815845721105813718069049859439635603093434981028634371766345684290778692468366053274241737744514594920865027326609572969845003765157085680185001552673693137449190826766161398926999165985316002627787392048597030757978927947647933376042588365012968164572847012027357782370723678208242906633899127502683188658459048985719154663036643676270481829659597692666468279558691621239572930541534074340102787282047436038061203577869523592672908481139680535303193919191600416406779518448390987432376995413367295865687442302514978022299196556659974547531540329708568522584841475479099453705559222669666810103433561956520156739826594904325028704345813746507692145627410299929650751321946751920916939528971322579261415317000890796917705041099997178003765926083898314593411516626378347239216257412056817099367514347471511552079030986381630616936294118524249519937661800108865718287657208092190698565110250753284517573663420038660218160942096646092268323123246780837177571767915164367741574747135199703785171263244405091134802290600982961165652505765922130552351058979977586787604326435406942719441945625441718609488798452086891566976603906116758673892258360420103951060768168173746459605981077916314727429815991756247241600096093722120090226158674277428900512781173118324782678913123716629781934352308839192068589940157195026306132600499920747836878434998358496650920014616505277720691883632627483822599738041379840815521715613975930123454676348008802374755112319527746593910245859759537460861284558340912974597548023204449416919264296432020024210943600347371446144998360083788438890650838004507003695479673206869207745441271495532236345880727584812192898262500047253246057616436250639529659017219701246677684651206239069451217780189362738807124403148689064158356167502153091646409183771188969035466482851792854952631779774818506045750863247994665122376037499484404276095569058108511072808267380498409335191760496231732427918386242635304015576383948954763187760936705683132618353115082796369210180464556329615966375157270085339578503040628719987150447733126589647415895867597550557751788443346858706796873259394951014576438681187613484582353056810548784221187798767611080891039498512136909677117946233542662683927745415186711362692113417462102455145649201532901379951553133783468946412954251351920978726983907537360197558419227096302580804646567886264564970689651334764702687327093283225383767443388738174197117536919450618760824109188394024353320604881609630699459615440590258708139300224960153676070789943927299142777022492750743982289878150612018466968966532023369380482195335857978466863708214234732265366718224811634400115773701646200474946085527419761381861541531116353841300384136308556001536115217960678778981157954370372947206835933886581199328766181302340298853181607498943313058982233216061766398975162524964860634225648881981338737909561227293627802541526396961584847003982489440660918317625101368796715621601745802889616594109498392710165558884523384083016530360589439037383057788648006371857330727113010589201004709118717941379911082080894620516455964938702921485200493945359122661805534984402979321046576912122432903432994799065591973265994132520337646286414857649733275552159520896229103548084347412334121649851808928424497508021694551005357503217725099853107540089827567798373484633255054702207825198623645015178502280509562882058810786893758626176079455304410983126653634365300008191453355408888622976131597857625155047684998259556767612221599928149886699265406724593746525036567486406752871314793992506257322146461348735773979496957555644460048527177554732019938736638276385599345239072608178899745936513364065716591821173237385924215163053146351089836999297267905955233160948241758226254137921436623392795383945185259836350235697443786890009453028911776770494957817506688286128244857088937648513741150333702045028232449727585839805243458591478592733571095024471891276910645307125558665215101444088138922073900749152623306324202271048575919843342805799020860552540749167087316719863253483300175168557697691233334767855466647018137889259857275175030979556637742572036350288358555559290981925507341975131447354500938704848775343892602473671443975393403439555949597606131887671834391772118611724634224676172157910093631873964312566340368374382845521331210129190044601547755786039421244704524240326278758591648943042561810062698806645670476643228899835401281008951259729004997962797211069537102309545662697004593491432491723880749634570607737893640100698111380406789083954250006691996389451724278128454340438029547100556261804144662007125772578521196145639438280446195918161305499399982442248606322575907585695161957281428726307462807351207431482290769041231832348453541059418750777375078313532184596165140591005452320122902275234567865508436119458899380939518619462713723280529597905206801129126098282369964979262437676842175340140629616446503421953059246005371554544683411143193732548603156873354622319982267685554205847488012212598981050824851114510507257302636929494364739308306123450143916578272453892534049448136966682803424949051624737477567453462215924552332962344772318212337656808256741172436923616179244569180855039307973526195538157646613802587181657555675765790783808502146702523823195566962866149237504119123219759359379087861010751628177589373656012457994397761289385988195576545944935188579211211255283222345518981613423900890380549158871105436516692294857670908342297007445255291786692823251992872631939016596009857146228395961374499337494381783073052104758572821754573852335841660962143615223552580941816464754128726245841349778746176455029406819534196376193033789589886625819328630301805329230416155986322980538937570736579565416223420578368006213567084924361240338207122937317853602475968783337477854616445084529555532742379541578401485934503704127589337765345209460344616954573143296895640466250118329905391641776568114732918349469371691294036572573163855428429834281969534377327652617395549021794492239542339248445035545393085829583923327889775097946605056263968017234479682175938110120730735635897482553200093712089281492774658540154739085315583849254036198137757604030072605815962868015552171783818133812185719770542825833115340577444353201418830440898486355978922007780186759352760992056831939290020509370438957662516379915341285091351973321448671629887575799140781677978126361783929079413489060443202513324019596891835579288999949873363255881704410889016704500776166076396842886463582803387691065351203036151563936314792707524420141520631783702656104071116533912437711338248499135279682947967726504148253354692719981653120702643092256035869843857194039521384262595966917305837535366151017257975403860423279324365902150549660739308662715266357831288331256194677280260053329149277368079951908784314541314613402786729556945681024870970685771378970311339722429128827027418202328699537545559351102570136761938247769344482922799660475456190921769661426186925966862579884806501945049007242405790796670557328270928367958116303487828608732406408490844153743148313232983153463228321192013225353961319508347908853356968358204614959290060277711980294908048636582687700040873479017692741754793616327519419571238189403011395755522134366571467355869328890130092042698265544316945485739540140601337645152892948053313227329269825998525831443107043018123426788786698696627369844045097304302301521701354253794348281280109776942493175895837739809327373785938861576928465870516922260885292740859347035683631538870055073488333294658212514163244494894183644212454740116460627299653050905232883328469313136213887312784619449742520714669379694963515619825065191763938154522809519613495933530113664379672088710443099064218643407180411885249457117597949546152065726377229337443294793615658323413367939504926575654788431218748029467434043057921315613208798140406560787099446652695274942082675588491180208820398410148864446664872970165906539449804264167268798796834946054398862938592235497024585780490960609896302754178595521130818616569899895374707576562493847989091193234252987299092106707694285027029358995086152785397051355836267972889923737151274942036661614040993084590058754126882263518157087405052176663453441702023392381693807975878088795682455547637962865621039814982814512869945587204601239841330133843346469004605431858943197482911573395656323955147546639923130668980664081217870231829693465243919516670779169092630478996579227520844520626080205907452240161490393658738937756513942698483371891443455746693880996083245919135367699271657808908944542612727835003513065173023232556793162568212933964087184442121051908799661829610189596167442877269510101523794856577923407974439094234452988102917547175089148548139064351111664344949490710906113107916604491153080704086958198850899536962206227837435933369409278346202398222237170529669620129149802600188412127365247301823505750247932769427012542672435033702237202874456731985662873765103717312035422347699740416489047725998810673179323974923659640184455288486854849560885063195515659240283117460113748815205807651593742972533958287053706362261949677288176171602468773407398724202740206481439163430231407751715386807633037515962288858982966296679936887340196608243412947329342888758940049400356313742051125925830498397826738356272210029968371889465518209520542893331425176640574608563503162734870682217908784004949557479046470937286698104769393353894614215772828868201362535056840958085220899828040146738242080355928668671422908525093917073401822458693500484519097792085316805705311911070745042887515561158458546797175112843915014737607293163573395916102441272684510920490808425302969017270662171402508437459008481282998439033002943023017783624111115259319814837975791950469145885944122344239762279931372626318946836798075821345754630708665810753470999000717394965916581503517506646851602108664486324139791803453654196701269555133251308035972002758850344422070386898822974850006299702804967318589382969525374544945322808795467915849140816295688911508096310599897359686344922791194156690938367402896146833239220001137265801419191833471654416750767670179493608641891990106535661081017166357945218007912824265201848866559447975741604555133970535106750762701750293784241349851121352800170530999257194263068374687189790905754934997803230992344497820195287083504768044151868781461469618894259039995347267504016652419914463293817686390309109636058096172423777734594147509434919614673981729698957949009982076999892508922068681247075504305005443634164400875571816487153825954243739311464254877898172616644734601506930521436583130623356556098523141734995997656045194259998683042510360546579385193601565789020186817072778812174739121897851407454067455560695562375130079733655307416934826902032420149845955742860084439459214886545842287501676267353131695109402615686888038750557744573582453812688371685370786688202966720872748601512785010430831145841017227317078637598782127935676041338298284206724307893537230480809561534278274859255432113699389428267271114014738669656843996782876430370161347872947608930508033053277403562864018181911257934746840267782109382852279823006427484831861631611546722325069740470857496808641524410433649851692722528631570715862735717141893208233398701077832080790088695009314497437525875563564893629690401929567487442997228699119604170082639055369906574333233806056047937700527162397034729309526713715680957990778013307483220326104020242028675863643214747738130752519191806859061354498750894692592300582960473828563008411200915086638861113832206962407428011836447879054028610124852489510585336020653273845333749120796315374231726180304988739223560780568697477588032061618319858342077131179167282516114015010567928674183379318986048672831064669654999873378376115165147168008480905060885122649184183023608459992302418810700949626166887970781811366145093439018357985826307635709199839992549741388421730573068128374633144327851421914994470430910436003447007271689802309532139140278920720670554968579454851451083215644792068737607624190985168297285909723141383787350807654043127067465098162971740530564148410223599520080348416654359947493326910863842383944760151498927488387669496847315280054737558726277910668030039780226443128006512798180435925197341939332188403673747633603459394064875979054053265329090482099355720817683295541705191722877479199322322656546248974516840576948721278071098903121435778428033118735456867955428811179216743043434849147265492024832821036707447473320395974839593009507065059790882147235262347296545087609612681024399529048328064190184021106647698911423762810664704463758962979271435156197865210725061576072818837386796524805867313724686872960062054603093757694737862465405273288591266568820821904363107704863993500012952036373941024733745514720463561316415899112430738393469558079902778152987136500692801419797536410961623128603210583353575803254222771250526061701150090528850759708564147056993956944730494099454169843884527850268500438349907549684685593311488832079995061452510431320427231531821856312785882530536692218320541416294023119241317659379201525084443492331860675329321920623999659478458409516458188059090157041806149804189481187445187667896927444654104338603372680951723831524396297976894404085949858622877892641403625303062061745487660042014931189021928999995277891028643084515449928176948444433058562121086210643288220297219181222632593816407604159762138947954880550799750553475117381774202774153594130683774935308772663227136571791242704314405421560757579894202989089081777203378917433769175431481112649402570918908423039795189870181832492707288168673457151970702669207046159398954105208327266751730755395598505107040815261220841370367498803511018183072797514519279132480056385998511544398700656910092527760787003816647369734012026186961100222026769767504753788634903140235434154567674949045529925077426928783864578448996145629164879962289149981229293721809818261422392155308971702338506204345388380397277292575455439760770814017537135969491041436405651773319407399678669126453871304478919739676727226241504752405761677536741106087551149803038021276379214121519714173208863798385415973194246152653142019398953581119197569187199343883893259531875157693841941358936785814345517394296565149872765849413892110131447494982416435128440264217653307199512624539527179218479403547666618871013034896921835287503746108880850445869462459310527202368913325735956991769263867774025480057429973524510545582070226744145795076120422761681239799557152417823922494104410574308638111168313776005453293912282220763139977594178102999774667615187930821245880929062537912854950521728442170050259448367992043952732592923047099187362336746580148041707553193443732639961837310989089448175559175811955856326354380172808986396520465252341474998543937395573431545362660238966188022453887969476071214028590135118155832444613991059431819565170528102169294270080332699832027153329716074611572080932464123137097189720697645002696668025676888541357902071073665613946303048656829121616743756420958818352136453636893855793157577742302455378798638467099907646365805886330388166262491098883162568786792194784555993164706270857985524034554530137563894178885984503274050780761339977495657130520105305072635239419012065542679007416359433746937820505833022163319568523030005726856152360117863141878446514364203346429493192626269477893385156916780644455865808705851678843111590305183776284403062066544772356807054269361587929590193677263578209876220368218141264982127865235381340536460226270161893018501673622826724601400099870256201985285603948327384093493127160338808200031597957929255125098449590503798566688547980308378257483669029043851640266124306941718806491900649565975376844256619094513176863332319515956205390116601745528949923327359153330899238282747438057881270209570457869944224738813650132198232453123215058764170484942355703423526951770993023116250151016924171503708182775502227684525831930190244298431668623691989381423965378447589159157543094317180332498316956717481759110398665491069535958459400537865045044590727759434643428486772322005368112457301488052955475125067844036336764170138257577922102785863876701750465730813581586571944970737347206891382512202470956166988168165335425345790291411791497457047384437102150858229249628339693608972507296139989032096345244887982451252032563908184816964570872878828825238312137563141830037818873556789749503675130698044215267726091665844155388920154674389855591834937040629626511125258370884745760880607786835896148524285716279749166815391541690504373660098045689832685366369852581801906005772238017570793024058175358695053555157130589117258010882158403043527100579894055674966184801802125049755506738070816594386506331650128256392273370567219033871504387352145136795399902528698097947153080215576732039802960310314401059271225436052478927044874842902554118369169394362669337199234004992450601613398321522751386584260781611176449387715728264312335113904381018184697928464624988403675294929883774342191418068857672740634375690385715085686653872973510630390391424027293012941540608491658981787766542168475503118382080272556595230126616751551387893056412038380954987840418755204986646757859745646880169131895378038003015545307490064787105474705242758514260659694031438679557786464738479897323625660400103912185747285864003617803945759419024632789180405739815663110608457395141060766704937759188520577220690143682914187683598911967822202060819698285396875481545726492943056960847288211246700546584585944429910641318092917635583029374027492633137605761067013363467776496182930539226086294088523530938079681554049052957747652920372948815073470532129478975966908346843233738352780174075357979932587581793781737998662101612498362184970453227941902642848053260131570654090021207066856791107945754546103323020034755378616427641338085718527875567589196897978400900643590518871537723873708785570705115027264360450621534695842164402122081056668572505618951367230267882535379071355816200885793788651504716448408526285894667420224596149796491919915729599663467679553443527660631177344677979849626681187033157336059285440519944111769226168277321012626635639323600236811321531869736207925116332971055424400467852017055052878335330312892069030264403228661785735406131960367540135932080725899363497866775567906045691172459188260458529821661113416096940057997355890514961607483978320636878378038270687539862260353065259273881624167339912998301975336108638200470778313567928333193884106274087054121928692242455422818663974721011085190363894492764786302425373465607057717780805110422161637150784382591621272760939418106313200327203147414192124821841837947282414719220493682347243904949843454680737137324371153544927870185941232324516977122885872720836319059893534786491696649426686463062302335701254657224012767614305485612055855947598762872645698529715875044338095400964412798528731278041686569978925261327689017906938562067904884558616499441618107480418338046045205456824798582510005644233709245018277806418163040598869251441127216027523331859866496174028619280714143585403104700048712360662724653571036292305914547577988267008651801696221444974328597478364050065061098575397247581174452949831135461399267821709769487098491423383543993682513776352893008904854921038883958953446648890886969671351861577529933729206458796388448675932181380858772998902024396050680961971999590902192070057480336593287030540609995701706833610958323051681143337995730436152618516923929327238554959756773427675030430366578149467674434886602491269734327229280661786691522330499391620028669010544361572267490692680915499021366063283485476515410759426648763754614339726288814454905385854566821693329415234614783266513317516392223958490007506606319233955693512912363202598688747412886900109108850552291434672455312304859672333927752471094779858493927307800252792009377815240936072017012486282594707312915390409736541633196835222620051361990235251203118184682378822644754053018471670745478675142430979512603714084120251170819891999957603909440883761990753303420738868869121078830831828311769648126858807177814934744193733656048609941734962475664542718721498003193758676849595570655810058393357938659248669690390634994438260263973789618485122157946940442902119165955294229191579293932612967866525134825766767585204029264302182939580338892243171537775846277935245223216758119066860211111863512788287533170472900417658678928096286183470866205213566220074238886806822903660525394821019642188297476109211556281491237263793962747332073294137198234473028689922409786942382689607120131757331220811317855608745835082274288620792812662963952627549398162028988973961313154706666182410051004043760699590225995318837499839610653441720935119289869123995018170081505381874891660897851921249018863354398739850969080734480577360776080302731256990304318501542638727110921746110377126886209853944944476047792599410698164937180204681524304788133574819800757676580555171678813898581669430854921527699566862811838687463109556871338236283084938588248534643093292064769416708931192067023188168671489175202975300305401897664915193430137144563115211317852335821593206589376640592368743409250638171498162509755396821299132742531452466149829831282313130987393390745785989356727188670340937761716731056156017299075094141877504554264338034855109113231226409230603790651367874953680359836010045528324191257542599586105713020162450701489070102974318402001819038810812267708953862845957535993167441388243592320142510420091825408626562976038523403138930778915852765703124214205291148226509672663881714900655314482374041794970406089368753529914029229745127090100860997212169293607432439965177203724513769969646739247183924061397438013404725339541685841284905470237615567266430462156581157705217622140855110683953403577294347492896137393727240627855150807927213031570046451420734591521776951271512223982962663666688144749276640695210445509806511472054264659322593413999907807916058465088498068713227779403915068040835119339128949267973496123884059360715305297643563012408807483309050224124146901647311583009306996926415598359777321541441364231548998018506548508222116893777860677845492143761849565305707519818285012703200490708222406518184742472229287602890321597110304507892692874879881363241875808421428823150369257878570626486567030483925084721311634240007062797640744830220354657759188323367793867898884208716447176153158869229278283507987968679663688434753821207092161733171357370390457277895880042385528786463000003842857231891410538876152920119068519053380993932613121742885923810363961024599941130519393829535857195708290773073968682583071824948138218953552508718187307886323830241737123487637878048935380423960269920790983764486155411328108441639119956345435733041716097316591181690562498863749283676999422134827844445925576221587418919231796996824343418711899286443242144680936053336658135361136731088285831020450823774551437203673381166919890630550518562511266505661724793305889999815754374740137436370469226032522915486575074113850783259505314717608849673672211696432048148877916451086191994627955407303729307286964362357230731255797944660349624772479551060387580797682239971900200620658222372438586092425266503415732373265590720436697271711124794136617855199100880645167072136925571786284690688037682572932652588606391328018075628662104642263982171918126018163880613242621872177098178227960817014369147096814775182672245704442162321724961250721410797878010722394786897683359669364375239732280800364378502612588194559445846242152478419007287086603506520317963900697009091389365809727899924389961786443119298221609003705633487768945064963917771878187322376650296451189114630600715705927574448688565606945315627759218800711187343485411120402728172666489014297231239192802290380679001586567851718563286518672309934916502162246835773764680259878219807019370810875381681832171226339514901683901631217166737561269715146106610000880792781800251566181162191517632925148422483407279592095958093324768933236379351748703463492970059450216936037800777248046391937126973232819228762246914478927948184227245933428563627539909383701998749111077968793226024184295383927694989337009022516203233590028261213732924065066072331735380804008899816444129778810954955853964329413199919712210236894354877843622856786917023047776387313242668112553670604620767858416827415622485512566445782780718021150965784658061825996366507414190768897271727181675471631007703687161357978276745333736468346925766693800262582821029212655395512569965990583743651034121616729941758443931377465240980403049633901658461942129339166626349521720310641432832580129117807563141915286344313911830039803032158271335969569375258668205052213512539834970249403972419102493193845732905521146114377350774751736863896059747727989595157773251094715028630909289366756639409080793091178052264188038059556782021552319705482493705814139219541491814168652705583611328328505125810414648274132635902351208339540627908471750660579026933656164452621295641563508812757996306311815752424108701743146860210428681555069057133717617460668891649292828927003559703332883289962565314240519347607888864927475445494183102735341093466185787111506983151832135183924677946956566059605755749224181777024191764921988059452682728420330593938462677236599851689158446353226584219660105880474490422346866858301862801697247478295830283057731050574285550987478038699097654539039571102624226895695414915390349503251143972385363059150115506323648397215149241325478489510605146073898928294120495163825941557448906703044249429023140188961058994210178143272466938960841870065539183163744964990733605057468584710701644902046232504815237482355438520988981082316956566446799987481497140750068499954937834647623005423929401240743806651251049784371675335541689454142366145121998816962313311966460219472543114330808444473284677936075943761018970133015707760145140467791958510050489023034325226723971330063702181945566208472479550629070146650755804751203602505261454379044374030242695007679206840110822609116327831746365816636855722087466404427969183097238110355748577708927124733056187124080551051555366451763168758030942419064143436910874387149202414162205330252547820139492394715004141668069919640883413754535062660710709945326927701694546083175728321038346667972930053197407343484309456725089167499377567500667925774360312187272697140678166421973829159841650098906434632296226481444371754239380070812009178349441310276367644389759149040056887889305176696080723622777334850839367098051207308764304158715874827437819165304409133382958928641291328917619502220068031115354539377324688402064045922634720924295468070680704596999841040080427949332951353144389458240468234041172774958326705525674543894419097330752312234083741919223007609178299586082768579030006859446933340457310807202537419871932902634225908846988641673456829701185539927609137356765757900935473033766967625413609930427179836263784316067092785042597307309306478695943359452952876175630565146353088042100782002164969794748508617129841019981406029538263830501205127791566643463406044404063062926715146795268264439943538345478261778814396253440426136636466235421508054205844464432453213915722374983804343240434544947244291092630385535261988589243864801544564033773240220676189084398503342228353091115256242924385152063753987343695687197535589688915254189809944949102193225733236279200976858349033259640456626403077057628175456746069332344053775962880201137810381653692483084652868363697192082735768268586162424773636328733520745401671117914393874856341957862113275917922013035365514885544354077031761356459862662012606660191773506214130071630445790532912193702000241921454871735719383284939269069287145581493729031037387352851030886963551302627546362098025444209495955111523201687950572105491654382227757792821828608035398671782305956200187140770734421437719960653253435388154551111667303743823089294787644022703463443030617561398472340538960188812887294305278685101834380340526276870184310627347246781885600638738707769733422781520358454195348494776049558147770214482078391551839980576503346261641560553949594748670166509823270869419847488446082731991773815994679188017770737551464881411981794171139277635815314596647457494075385915256398356901706074678344097827123213923329576090445109181573207317979605346157417765902021566597229413996262595778973302346737806746771652294570545700551253932892693007772985703174558637822987156524151848443850347690637059830223951136479432492890405620792731024567371457438486635529884017686603672904817399006757780444741095618459029478114708382086310736261258633074016400597750963508986395063340867325558741172378310804576883603982292168711783233808020709870267333483605605081686979882112879675548233799027719480658050510281570171112456959692032293818863961349132428339652480741035671225673346541326146696088210856120398706184881466521278051736096891580651951893637219630246828823618143268768853672334564654985070210424901443531019976799595918205673356334267601528737349561427159352649372195748425137354855121763284380671788149394523900593312542792578923693412472952456744929999971117419657608072166215584250475834989481175265050654534991164991407139329185692968671429131683373304012643066553321840001975763172664937311039919616127676737889612429697392716343245512139721669056267170045359433389453985254606722369222038378908278252307844749534705764087045516252574792334586156750306019862088365927819743708347242636078340961215670221318884167301035234281638230758218354564151795914958118131599873741922096313369237665369491004707389466745477864034195136695104563321310826413323413066726639327261686617311442617603454213944094256511531303728718452004442527141853633434869696711607971595268051118388559787908155120748269263118827201047792168292075909831057974924566018749959745711211058182671888977642457160747204156317038055662287829833194776610061656370575430439528391654858405093371676074654283021946288234972665113872139874795544281886617877013648251529594272442881475319791384399459525467836126137732511894139423749235082250364275867211452614422712838090712358573532985473516360194486020469156611310281207119485488655347201384721778154380293189612871248150043513515268214137582434623556634864563828511008869707288613144632408756961753453637452003670743094652045012935887796647583694400877340665971317877739904935262066671212130638526914097316747857028861986728016736580101393601649045802003337874395993403440704233099056411554053243709474141722407645859407849928238804052062603179003709299844749893354847355438901493144191516386465633609149847584651322190425887385565273645393118483039416299869815881628494923684819452539315481126843412431233963192722466754493677477210818664855477114990073600438013080621546499751108895174893937811792179523871905100706032809707666332010260942584428177540835509102529305869471486205253691765326051875734388518690844440187877137954676827752585406358281084447608716580811674203284376225920997037617603130624977938146932295408018023739666688925446929911543009560417735772314739546715913562794368613442809334673641446555982403687419241087380518710458778886799497134703016813448059817014078670356757357602051363796177472095822062309952296872439940032930625972503906516351987481021831568078277469407555502302695124353441248478343221173818828182385701606546187283307099005870233654638761255164254397947662439833835619121982378260898446818642386804006709890582868085993812633637305245998278028610206694983836768132052646698481133835428036300326249642472453641105598900465210250025673661920501103914542425220745830928128967592693671858120969987065292330103879277532207351183109387420891281022757268152639022583261953039689682664487816871657998230643483180116130550707995594878329216276012997425170957395412750156156870102330867754819527107362895413189491670467663541857129084809797798292396396253934905975474482018415604468564463517169916685771495471453030655145512700671077957307625070145386153965635078811007631882486047711461699457024030633238336603716416862920143718455483115310691029374250126163832158199673650090328301589118285126471431803384348662985881210353981009960295558409178264705451556297098758976547620022621896174972787429074298527814696742116419513891066968067767753692168030395681767916332348578666898658338268249689250016164891260509790390228111320293013775089230106460195373235256239255098684366708003942161339746068819662379568931268188492710856945227912062296228497864814206345035547853790584956017934113537864895564763819521232808539287957042139349385184362244109373006576701203094805773089417447121501956082666855596275541325279893047339196164462902943808387442439605873760957572525556238075910700516942808921365628583329221001450147731507491031928844716549152948936586322778721155404945759079171130167951759093529136883686571615595065229148095362955747049691555598584483404950967203244666325230630273044479493188740865777831669542750828683238473832320265331101875186595464478460559328497252948750100699918490150032057732805897702525565268001765301325081333940010540725176071135116609515201633461991528628807651363261051779085926920288553836000987132052840114689702701066843681395070046045009461882615078908748597705637671481479508122583026080208277512592411244282683424927791437736599845996417656059429073391885753457588387705090567700709301156523643170888089317431654052105389183700518522442775009930664560003334451805447368066021133274150791318186890694993492488148699027594501251787533092413123452822503815681310424086155040010704749607925048875306387830080157181313151392703238748537313495863009241077671351786624977752574310561076917146073064334934488534707943215142843382169458145621622224801806539719015563875384547441294650721224793018309272939498800066744524831740839567852839787573015983216398777480914454465071536007557816212790146671218042388103080644453452268715843903500445115478265502672974032749953987448743849868703742142805867652674550390935349559863098966905875624517536992291022433571541967797552235381400019993781342894532105636789222498603215281386158837290985321317876050568949133896536423101170360713013045945781569923906504949175163481440968053634983788788032204689775143314426917817722032998095818483944964912557294310629753778745246070224548700331489324553747593436272015345932934586250710142879357228622550261273910368151798644409234774133096136745457054017060944179512597316248758719344273047746575775400333752717647424002228111129796453243393394709574132814495577119485243978587015350411952132772212976168895041797281337757965653917731674724032714995777232500888552448754199385427704745386391079993810236781885483522252565667660515783051234801611826022987253036713078646169250737475016211329044760641297621846585555186891833837433838136517135907566474020918443144557989459210791845828084105150286773487839385282777586016115092907202126850262462708315405972862490623884889569179965165571589479105717525299308845643586385552982551639254124682343794482883492110864531490707609384539794134884256108168318242145147799204294217003443908307254239327732099084697768069037907244577390779308715588471081834054741935175659954652186981672458605765830285477013288496121578987004386973998492569627086293013985616971515532642751259057694013937403009745854957735047232001951121593079375312357954122511161550007814072542651821024411516055025862233558718239394046723496974971787142680436851294402599287825398512061268996263745300034574672799172744227067145675398391511511973980217580130690638419863721053959176503171366373866984662029287083137917378912433419302713017383437903768936787878663588664129537877618384283585628111648893940836863498721686268084274666660095466265399839752866321686563531543481111467364103886068798871527665585388145520876069026689273952828248553078548615017351132761081738998691159676900724664525396414869014313137002003739267227920566601883644730833573220819372899350651999237117467078770589549974328336435178910838378494477993862812061381482882106207883763277295155851225962062827171855690335036212937248764428659443222942544459610471408585138210737128427986133605057419325259368695269726038988059874249429624106473191917570389314646634200996453858871010198797286972372898589741764874284837953189014585351963480849339688319452456590446702773405341345442846549532223647754003204152375214956679430170777824279619584844740056275539597405981061069949359343652039949058606659832438945249472695908320744208599106002476265994666393234862697054811941338140203430894669471944959137797578670079138358480067562911587174559611304965510534993816893754862416659142008646708839155145438249960877440560819462053341148456616217458458902509696198582164114576648185660811955850251416765812869772832227750330724205363172115602952935824932555596325519592577252734619293548192485417607769347442718891886989672183799892350971135774891712138063820734184295474209177138123115997683870698153041395708413719918219710810403670886801302412847402372412408809263876992666095164907648079340646641152987137884583490901819999865327490911311198258169503658936503532741511680252680258072796545578896713715367437149413962283337842666246443798733444112006560898394341019252296913717873638872304964808612680801295394123284602295537409439860014192447810148141693902632346913446041569497095769376309442417939174294542741679033230524355768761578085037212963682154417474786514795745537459147633461558752630698177261731066138077865027910976959523647834349944546394828818831065126170221197959585309838965693381183428636815617768882172626240075355563004704521222966477754376979204536147908376674124248814568786034279999565082035770551787865419238431408349606231334429724277577846239001962556437219265624431890284267824732881647624440589876436802534948498232832711201121610897356989152968864901743083025913286112530371660392276137199718784069554939979599431911277030869507673886161958832488868299373061528022526621598644942437178609066332834049632141070900705226057574851510198386185840377596947262711886403245128072037805556123659641433226255625469764993117134522546030971697703727421481241962014234114342421919890217932650828452510870034047674886511236972514989011398284241772767816634158255837427460660626655867582150107603371820568209167592230748578888637878209085273529057345240904298969713264007680842675432989165221570197155006056679472214766179074677207092056442429208071002370002445513941788885260448921144643567764333620813770823935162025915063574708036262360088744831791793215511286613144725162781562402767589489647238624888461715449482952981803082399482859586508504918780789496288912674228399277990273947330679146311171454678786950287706633030635292771745325851909076010847780175047570896653093200080926999515031104544500585905248492072407977273130531898364816273696696246031447238023765655472796295413908896379395229184271768851947818913298680234943165211755356830012753627555944213729751693471806935928152966688847179426397412739741098811840255021577967343471255696403495907248156540913567602671420556285399697383311054136066591531861497955362371876998584032867582948109354052925332754100014916451584469383146829494185146644258091820721523223133617826821296112026186271227590545388473495082030417734824821533784467111301590694938625486287333714051431585576976062890551027669656479086704686556299491642379873831756084848130011449131842461510720058257500577454558559678308530132120697329077853517078593783740198188896936799893201911062560120213915321350691322821849167690194763048058912591967311095887632876022963847981365545261610659877655103559275684630480640266869292397344148946660476834306339852853306079519007781292836807378646291082512053054815175698725088881287924921100145114855709881760741636492885276547500474429754883234094114229344644196429852181804528428704382507260570528689773168759784644268891220473449476066000783476403466330510969153271858173837352710439989458252255252143912199164397849373401003741769540304967653674161820876608888211276475665236560538336843092460213838351443054312872416476994426954130582230480728711152095909667836049082620243330175798950369076018109491777093970283409860621198837861743318919425418288149616016068496535768099068504226776120331455496681149952668231760221057300137119324590611820132661980447078466849839731473644516934671312293209806595089766141861849427425870200367361390745705527159636841336485249096490845836111494397851481460685599693470963776996322107007912263703753175862738433086368531577463844479562932504232014561004646701663372661830993272099688278951709521927718558321034108894023457261490034552388605814588016004052522426774865569893507063678206845039329909299830508352170085370036450451039861518056547729877233736779838353526589095686789893696128645395371360586310231954284501756844745829538828745240169855634217130798378111433975348594652103685918730227487391218619158135054609334437791208418249544534581044262383497345213416461579366673550190802239365342355782102971274799523550429640840561515002033018494862955067528762371569206404041506459967943593346444071619416244625062984860187341484740928954217081773325908293025394561372087075008213709704319598623720017898704317264841087681591141352308152046980748220670117190595025118704348836731561673695390268994994301711059514696695118657513188412296818391571010436855150336450948331534620346624582548387440337057762495907079153895240998363684573403016044111937064246986927753430868430676734517522103065414007275403224996748719804220887053023203854162737215692495673279265423082789467809001792058422406264943857801909865863412930016960918265588008607888561121720894118804134692671696139663428710930581069946910370645885921812544469554610261021112414241659228015953259689843243480230922507407520685471967119302211832633007632242177005446854061413910901764202526226836130577369242693315892898172181115754432942540321437092845905195866957557981132890589129131962481177800866167699301589611940604355145845243946986074922062235941149008981651851588955030854550017948778566302544347917796586645891970048579166793994601914516449674299830544038736543150027296952772640606140629893543958534838835937612546765682140467583200146596325496093726525565056392582311473665244820343812512866119733920598826925572894089809642639575428088813374403895788254692940859568870077718661539229729356228724234131410886860756135202256288137919806876437934532351411891303861186084279268018454286651939034293746390654974529931380303590602264311224537972842611915279794190529886305736495999510834866121730717449516856612700698714848124223745230580904966523993162394897980149919494288424755666473765179954474624432158600847334548931829177301252069085934090247737488095172049457585203631329123439345438839086446958008652004171382964279968876881888405952269846675099624769399149273602355067822159420085211885243524222809175980403263336673474723760007864068599345390894369444207784461468500634939741764555176860186313021361051667105943001072253045081933726013705318630068444771833076792359477291070185144666688736844769497397943619080715947385701720653311623480796413174464311640318610897606436378864087171412370028870822024041735827370170453179816513134157290819509784287347603353283654287532807267865175656002997705576163725952521056166198254364363425652021861101150185777397070787438968915587863970635949045449797564608203288145284210408664456673669704701534802244092025619820568016129885068444137710445917763022079577736339816348168437862395726202114092216827149035061099981594367666004114037814103184393309394773007368220516787343369230597411355705344699767128336544013367188912485485990215703424094730972657292480401385361941933783618510837266431765087258428930041462096643682390423107621800253295050341770352282699324446070901786453811156410740839998288369433348692175269195846267312670275126612087258904722871825152306857516413967603253667331179809642204591581220140137417803151770616073074331784380314693111344482203740742204467958724829791776260749193102572360959332268958592485684648176538530773033139220815159871564680234026915043480740270408372565199383116247996473239417745760740554576584058387254464660812799729205189583005049643004434758333968840328613428435635226256167745899770076574373060974785603688176416787571127911973854149319805088649600582858873438372696146790265492369504234400021819419713148015682022241373048003951411028029733821322051055256913120717472460236232889607132928966205024156707533167474789653015951990307931949549859650262644386167595189853881679409376832611815942205553014055580039096434238554692019334549030631529049759861668429688101097833793381090026247695562600437299048796098766405187491240960344668581240271447691534966559467724204842913557409219798216581286749830721019668217374648633743417197331057237195498074985025119657737483490064865755132509182977118126689584236920770906933851768074759589756107939491451617169593604747200348580066066937174290739610446815869778224898907157637635210986347544960202107170696563345534809761909863447722970406394071497305535130285028272203717735096946711410617159794225494254401450755485646214548106397428515530819018866229865286803003186129510357159619073782774495439679960379746521135941079413445064089356432961020859400805987927282390465192002431122803506669485139786965411014014097198172223149646209539173300731556285258509325916810609952307287370681117748313038690116912342889228668856001770629305540880509822927347538279474059614607067834691726298569305020155331141646349379305070929636006712512418855159327896209532121810991305149088086529333731066298771295397771105125738103495886839938653420486649662511495551084026745974084956354078769056422391389193897580239126120738635917107774936682695112710762184182489648584184224321590026326358427248386787607422940563420686228963433193450009017012255425464553579688995254609532985560809435812112629862125885261323040584759322548372419884729578535006161792054770911054170607129614312681164240467499810321481828895244875835085965122289594052306256305383087750685289510108272237715026799716764474046135045710736384202176117156301258741735345351916622805246389656176445359484127729074037714505726686474065279928991416456618505535408789626753682438031434339554675408168643214086648851285499474295239148513642925141251689969619397944598550033082702572985574401865686105178075574143594303685903502498457965228642138305712750280350194799891542569302432008793831036550708111483655055896460050460940217244102571731116024758307829299764058569257303518640263704976153874156702892860559477478530314229603839278027962832026034806249319220560472233546029027422956510630865544672084936313493979800763543296797800031042144042557224347744317615468194161141136857943696365154030403629099764187943402551793056529504410051577219556316668928728375954916181433984332142630121057818965049630627305834999469714618619612428494064676470882225561257991143810687158625601312045233090376422472935098275518506199837912019434768691759959351599118319589573377762052515640826363506353521209001541821807462076274794127034372513030077076142660914485766164597690671446632780539192497915138399569863666566153997494365457219671698370389006612452353007264748502638036970491367366378602939468256309973228042758253234168017388853634313831659837634717751899788949750168565451027748281206714560079866195214210137716728809327271799086539183771192593166929906191061915566500277156740443774964935386049801658079006041847926962236344832825328931354076858295306380797869960045881087752768249395975322957054980602976930984345688829561241736731441863251365060072991783977897134427999793779224555446892934628321411881134178346758374169058155589187917733182153353179596788665520228116357560919145642266438966454432397326812397931767691100994857183714189325510483940460802345124541482500239418631183082964254792934582627605655209856774777588047952563229145670524618338083223533592278370457302445233982756446909268860423169539990415783893231656763889265567922051210364288382498025840518939020579113639581029588201022939487717573577156146889491750441613492815678170270716721501354908439767072304210833090236045646381632309617564540997544654615971675841490896344368663324855829970426532344863583857828444096927309199543865109119605789701464391373218413167032775579264238539205228733184627021564233711476132414760872971257950722994495294542251809344062668210217258655726100665087382740253940715723633244174519569328255675127088492685632982613011823881570656082354748531240116478816426348956163302354234402965498353078805899821953964940136429696172117345938507268950809031013294503073149387768480864968942687510525849009570764718635239852509060260418277838572156912977482390647278763022784958157966384173538945817264864896970968816843670903134497660047322890433525286132431840123979703867292946120028086451216533943271673777222909206398388233625331804427208445778466512109669876697821378138738639924028746704532117629184381241299134085759258566792847117935745804488391197701115318843874715994809478480344528711495214475038330499219072239133393611174924903524146060714841174631219535385137752384102984996873333938476596239547639954375942939346307263972200756990170818104718288486990935577050838832497201750905939976133933614503167471910932477016976409955109988360611110799190473967021274293189672626245317636749141535860424796563885802039845405584618206376732284818725989475045327642464896195114514058062276241798998500600099136301195849959581571163155140739992515411285543188532482925279087624786361738028782595970949064023769818112691025104016178959380548377770842820574675667339626040523418103695262651908358495141882020134003426490889539443983170382776341399894613168656958525859731153497048553610080455388936693430241273372935314016781184042727579413988408702472997450626104787091959158241647412980035305909115297930440006107401466620605603380542646837887269201123296945813363290716536153494444709678814617451585603093856069633142638067621542568697432178294241363803255295552612549429871589012131803228152671731264111615852886908016170824092791437163897274280555922322324312168322777555860870737632877002524125879262280863754709028855200971029186943402610505147682710858840702047713388766093967240064572282968973024874092117434469138153888576696585797493155663820749349709898015593043404408831474682192327581767741036086170110790748106697893243793867912980163894581368638161803382552417127084952283148737670186111368773576379786068584201636903186747721816206331645396132792785481351100512087273216476781441700694808834652654634489273260667801868617851974249728270147394739764462313030347363345552565400456091479602171394447968114944839065542267356572758854768608843995796811562128187922618668166181992335869499381040919672435753879651360746073845839029373219816545935287748560707903820264513032747758015518798015783442126081084828132709230093551441033826806660931052277338811670901857098659313402314615416226148292117528415666413176743778132992284066815050784286082250761365076582565749815822398045087136575083062873411122375379518281709340521813488512844669158431884451261382503235801202779165275947227992296206885912347042912761082408533246916728999929786239280336532007200717470600427794639292805307971957238760186456668278884891516533630177130229432889202090140151597724011920583265996516209539144219372562976914772049678373347078723078968458750143485417213373532163755838772649876150134718561833146253981286500104655691776127820793713240467000223606116454549030355027275305054651804106495510470581589880708271469167161265522122063038675900679940504334405707686925619360064968118665932551786467017574372650513000363812147892186597401164027589326282197066933030646980851197527633740672703589319845380612750349593853828972793778394834996432072587655994652296463368249882636163634122069877960469202521331347234214306862170599499773803577164785643962868255981259519380262579794945771430866548268617335790566836270579566211779355502137485893732465793887883284422000487114959677957365964453702583346556149694867223524561362411146990695691023792974737134631064662266418521552529422632427051536109519410633918766883478369140757504580105401178803567972452384771116268589483893987458004566227880598816199068701466974946578042961580074369904653142081113301941403878427897940524555538359675027653472978624125819192386896193751779555574873082761700196485830838712579540045206171134759604074515410671680881413374887360683157814868373542899532719989006668287170810939793944284130812901463285383639885676596629549066962851210072461595500306143148755374446663980923099344801409270590301471910898035744183595303672733595434713823350567668918554634440251139928582796182367410900127530352309194399080218923071356989679448179895190328093897310032334030240504215702232863810206328252170449902172912887856909236668034289304052368291064200078666148753743236314846634706121868276757800839601221818482708338594679625315590387744156091430483829982442014960830685693384463550859344497577941683081073612055088639801847021440787493371514944551530343044001927710022115361507765458668581352593921652996423429317812592097087083498852668960124852597817867679375677165372446534434569503699057414616981960976404623179936710011890025988196737326665428025982627762493172786132807215316155486828809310215639696946897235976745084876928480275801996391675706171172065784798227123669200479389064332703012495126827014221004108838601446042751161745337685562143998447436423406193466027804570666881125499736679231609432409337083896627450564659431855436442458338984571770932382728631707030272556908469008672296315832954787553870200162144701462042471853944945867404735940372584014953526497966378267208839362458433904457250793480497852945251765946073367482117821556802794451005636643444619625718716105229924009336749304660472766111893583008702559288868581765059502728314213773182267928346383851700969508894220329998616611922762697494556875776060128629548522974662140531956422512449231095034277858118355314102675876194207587682816342112539494934904679421703239589074120711123826014763313657571907492847971243210979900891026426442932230811920828575407916900098104166683058371558479412535449211723295885322332280291788418340263807466565789005278687827694175447690346457396808404531174236547322525745276917002117536937580140022686298534234551070487606966641031060027177449081447887310754694030540219047748463019690779909349687824079628403458296573198776620130772091269866655160523125880242371001331897416298218122803444760159738248635486699325782771544493036823494226407544250274152595890558965839663740855219783542867195791973951197451529198853450609849999564796408033233259998497782717224557029711230361952378619099119431222982387055352606539220683659464628975412672358148504462151207340830333458991162292540056861144347449747082995770600192148304255227670533493723310381895133596127195776215673204298175120499945548131210446732072233561893000229365076088868684276552618832129398078515822222458929000156256495989669391483978905127254736355929416697190477453286359847846057221950718786259003442970436625615854073946781212764594678081409948968845688287756457301290238016327544602398318326632234545159239844684612648785136550900611981956330060653225648987285483106492864462410016572291384056978385335849302877938030683272534148440168179736825674645239505770875602538808077157227938835700410131220713945479713895682943747078529246602812554534300888282381288877590357968641391706778911124211215494067214842960065479006938893657653070470744704476338167336063271896444245055878808445239469967823093539032413687363988871096604634425891507068121226117579953927830393864881855737904367181138493619682471063645097051134175588501637080464648039089956584451247542661626814965157530474409785361692864100252012806728052279707959400175306297777507063184630240425055932172513399024565537484865404057160540355950565670018812676098069131439426558337745659089655598139018333662475405793761714499019901640788311208268945274457607340472228292183849280307812618430308327212996902603554789731839481091446491033432699866934306004518375606229844723361018455647296051949055873383831601908044549329317695870541615241081542153227318742522499204216899735711625965743258068231893237261806491758193261452358711192312505069071852669935644359602000220715677360237673640249728310420800123958614818564935067389713445949044164444491562762886436341396983842240273828228513362701925046149048171301814749587981444554209895644895084829521977025691637782422231602527584682329706345608637461194969752693693295754886519467444051482874065481473630605227265874704922869433750731502561740573764070302848565828251144226888645923262222680950532221744406403799671417799397144323710034544001448165276207635785979373106045646814005769815460586741589397594932952548775816691096647220242122102685830634167398598887833941431009728163469202597368727001998768449313244722449007943739587148166560579111630916476114476126584114215033126242282818893387233803094767349207500043906377484964441196921717926432740867681053926229759172070589239380339331814806961767724093131764430534356893341715947153885575780073456884507431158478358990488561491740730225866131560870257014463999640903914818167033311730478652791171523933068975825898546993000645711142295533861352022536390021145672088494225885034340656928800676280738622113479711703635808300457217024731719307450411776949027831571664040830594006571841757213500547082497821036740126325990491511169412623742643041608022749111348631381124534722351345311821187179441335061728383902255554658771865704227253082638968516231097089739164512331949884292119774393185419097071264368902378888832128472502123616333858790051929592555093807810813509299369566946445566921361879153359223581351144095183915227495876007292557147811930154724679711130002378335541361079718720105484207211899334027390658231445543904056276057576310160729263259219745597968645390956146665161113225952669048913165150235545901149123528535075410758392306712048589312629526614116164317227902711561987682295056575543736975645786183539238545925252915768159186646223516159550066832191626555534007648092519104284584372530353000437033674482471625713233666849435899044724450803787453903953004079535170848132580758896130046251829950636386558927593356295437433925680097291227003990646109986309319863866836761226989095579968198389941704504497139740816976026707816020013175641955265544254309525743291031558956427012786253898710109753059106021253048898267772081173772514033756494694072973752339083636837152756814584312459306988536423342527857012157641036650569112174768098271309108375974842357701632299821700736642887773001558830553224484658693089560474612808896344681628582481825930494036567688650173655155244562945014094899052194879038426968136542003418563126867686567919558340476149445772908981435515806277654794771871826852867610252135875065569611940736322483440155043756491594221925168802133313041450425798475920481284248585989136418163820951768347844243542328077687470895293245421470977824364628544353574038094266736314799007145760378258212508641358093065658384884262062956193693445720604163829333462745441815274787244911415201320854055959347469522779689112418855142076519409266273320448047227531438735563316466859599596163456125647537974988803202308194118270163106259754358610470017550724940336255789266751834096674264779801934353529561363241875273170836138042998147871101427438415749184229033760093949724966663531861665528921928868005421585228801336604144260339247571350818018354093256015835925749612433420227732965454744784500430930125627288959214305114774607698806099982582015542542944598783731181358814385294799680676974650093438690180652031886138329058252768533602704907032750822592840683134216102260892644585886725618583722263146118359764168399188900189444254619015909754119737688015049900760245715620838790167002234282354044960622925358068986272201909911089580375067757119777331255504840118570572634763378094347899412989397956527827502396719327811453565460864639599609292495340757852764175775580537368897510356227582189889429511940254892212024399485428867963855789622953973317518973371124181322525520970991904568660243832855675214169425328428707724832650618807090769059106878750047773434800610126390537603699938195024803144278396319760972635702880340926253961766637316929183017665220015330987657814183435010344046743615307051882497635451310051239895400808976092226262789393412304551976216611299624272370953903263022892573624482878091095430667507529568382031951030948280478353505665005036538540452401436274230856176829860321986877193936519385912087351010945539575994296961448784353600207594616879009845705060900078841920850947834730920193437445080840811907447358225802460847309551392634328086696522222880338881396995629425463379733019035773013039527659801938611156055032679182838034216841496510797132607129343967463081878630913978482080195983247832337553521996830396597770666323555343376002927526321284911733328903559091584486950682042808818531394416624135834416110969768135817955128226086155595383072645610028137138577727451111572622321257179695448604501195989453794244917734952506306506536176374682539914822746550623973682305333191544425421419312540697589502246721896111114880843628825020832320420403230599212848486953034671381572917459866348483610415026998731714050967866925755855209858819940473000392405528262858370347782760798639476970614764303794067185747984590612717345010287874355485153530965612351823631957525398691802132920803673797030960538056211862792219059733816586814980310185974130983313229534068832256289841954470170525409828118695130547628918259909843756611913346169187533607792762296667761307130639311474902877845565264682412826294823229541548937967881510464810813322340161873929801147541659470043227502494220017378433559932131172006644483968316192833069255511887147659873005068940012315617171433390240330450308695705198450563022813129066094903664449054408926497273863172555027291165320488151725681273540808488557173492887422084256716765770161350722759511527612368661785285280991759180752838271402587901120559487820318930265366487015469341052958144450044048941949565845374282497788322807816707944614565047341822843132875561357307134149347187816120845044077114480852130603400321111904404393858705323154980857429079410988344898789583087483779711061374811622554714640136086962442506580580223804162351835177666642199046448250674831517169276091120915881623017232998246259121898236989731503303870488897958027607703514969492450429854660699900516763082505507243778856307538438007584820112522954590326901851297057199536502028526111367628051579080010744645041118815617521168158033446283282327458214474504225563989461101793899490721646814162597446907195445606569834337194254210653082790235297366871799837244381851792976203456964056927112625272792401494419860823469742913304653568461298981843396574111447880727154433694338363939505510468541990410522058957697722874579331231069828813991333224299203585852151855473073888419951718267212622320899822055107360377028976041096043995957817915506104326667500575395824119887037697730795859114464409499553858231281022009434614272130412603353658815908544417116498823757677544008349850702281403467939557879226379794091148809396471791713907779100594810133186997866569458046903499676688444496310917669640410396485183245280518686345410868279402680819447642039798100408382126908132966613827207192694232410241257610017947676415327075803844477940769285428751174968207154189956541690053421318934438467992295617672896332993076180098813571486258291446934492180122010581558898354890616867795253122360566978893558684453333198144504024605994004651346052995745281805818596444977333111209303941084199527997770995040234536002570961245930437390353965949163430907297648365501506394068539790748346187201150746685267531810938216573659776127282799467538025531407597085397912383845114664680865483708644069120143572698920626599767467320406591118157491227186428526167633366226115893236925428927243058038849177083714410172318312372511953081571278944663029570694111940068156840765223739852699940383319801673262910251140473913451850031259186987194302830406591169434623042346673416312603838435817135193955796157982081875132876595538261072923498215044540082679555764892289946964611194257327957907692069804171927532997278746314597647938841800137100165599096525927528306484483778792823344488433942427508160128670447173502038254368151898576387860452431386723183137239736907892460462113538919929714630120750501512320365481779032089942831453982721001736273919522155508230319212501808469984615959724697012612517744627969558360336163420265643492199019716301791147623699784768403349645090197472822709495510374862463939594864508728998924207815845736094105335165857155031400500440408927833567598110276812577745932901781783786768953113286381560597978891970184889997099742922832056955930611154562181621420422903863061792947998811509705576659698237130323423653728826136056708156994804652024881062925644110879100124407717545586532843055774497553819177271096666051893859621897160009327636945128659845202427623902872716113354862523959533700149129255939148097792112678977186416581775972710925162948991816498349531438405892853122436654850511690879783521540501461822630241389411329945200335822024932862031790022649018185536818216880356035017118952625515011593968368715199645561124401310799979759781021535448239116448405866366701368739669785912498825113558837486847918231357408715616930816522442602746812147045838185759369854363882343933082287426166377098127446054639951254938949949975477497580176005649622815115296076925713694705387264858617911437990986387579610816962635180637663978635580516563114746640309333373831236300045531035010968064212762394279165002936812825660517513211436175865789417429612585138226412020615554867747982135265718530820733149661575754734414222156497161131226229963558033204834392828564390152149828998599709955705380263265631851298708743897995944221684787550612311302208831907859510815984236472796000790623525648902336605485837068455075881581627212986871466161582001795316285973096580989766367411517214326480793159236505276633089709701272880780911676555745514432366798645797574690620344594358769386984017976337857303090627331784038611916051149271045019218757883555469031863395850304057482173767172337151767824566906478432529467258490180332029573715001422588115254307068233213284522840219719198709897975172727866038323550974030869110020954975277284762571961900020264102834598612927677553270287121505996965266701922454262468596104970946235471553048882210244053996532796014199508626624008083932655026769954188001126308692281182166848035377441274282398138147229868528711307671998125419121678434277412930658470412348263178518181636077620898980905260055809149579332327517572469439146382092269240495017111777310814066855731254138265627494983532292197464795287770821524601000260092388235580062306208461283623082240397989223375469470360699415486547285988517921213845839824462719711079050417692535126449845156811680109320375008559445481254339247171665998481763896802549066727405416431853729897036011589730759964953216772689658249718969433000706988117833397209642804345829793157651566840940794756977584550012643822101895184514609325339563346948572942501094776212285599392869210442909103782298298400097191515671385092353912196962997104509802413384517743013005933821208552017887301863756214336730436865413704014242157893682049630770129204893935104551343904995621876910836936392926768689952539577210186333466831923002666883764991383039729868773849330030930736048815710558484192800695452621057793481478528446731620042748528051851515252009807670310257782768908975009261753196631434016114589090852517195814140680713664817766211077576098784554648877103592818127872815265509372258529131615224685023549286376898276833506131618527299685884737560102438121763203770429805448209603353862304610851406474111453839448186655370229381359083728642948453733675605025525676058054782995705539855279766149247476914192475218220727476219074879337001264499990201988814534275337988165766026438175970421769776457833515300681375988287664445891955041518552423979966913256917024598773879636605551865360671728538240778797185835926488995997696519921739914431164983252437047619233194435945008266031497845355627984762072141883413766620310631020031366382503797695044708743804190427266386336669820489641784559366441675481938442901817174968660457315584244523080575428503314623867818542265469711680401145355714653676487153788601747855377630686183232105030132180289568246149869981756849010347660916409627746477384073492456662307271696460258693962442110296028692943999248036754058322541995283320412945653398444472862488000523268890028875847089065797742028236636855973033160703233715802731095294421878359691849826162787895524877156689383184073833069246426284854878829620165333749886535056210669512378171645798164330933573715329368235849205269766994815116913051741166649682759620181286327252656362396096628448537253075585893844933697290090659999089758048300985108615196133267793175605170009519220253022416896080790679170970299201501879080825876523557614857783237776162199002759036785363463902604696721247493736978406280327808287135847612529262814969590540135042785021931824987295928763573542599305068007394741144243189963347810344787494374935910584243688759134330892623661982135811548325445769389626972808544012241078585564937263825700811348074598728045190211151617559208510631214371957343522649464445389706552048193719981866729605571408046379003606202980316682981959783384774222715400984359013053111603518308259506043315737057280762832594843116103971368433713731970246473772682782924853255780304533643909721337039095992029901902899940651884462915594058132881585820822234963608461858770485006823721055168861338975315570060548547103118424774873515625048643479564689080912663885268922043333214122418261478211045209715472622741530561754628155482747133416250761626963671593939568848187518188076490970863914550847506966697520452921038782634654011192233987334308009368800233022635575110230481555004565088548273554657422360716423203004551731695683656838225803895534512484108551685522279134637681704866166568048188740748618213860259760875422093993577821005437270592146466768070748897536551077848446157447458423279026675356644650867057390277758717825114691020147271325645890061240475027635138371734119460627130588322206893736646694796158607013521505228685696828549948638553548647490985336989930744573024185146321978345264237366204063427418584999196889748856011552844920951242779572983930288131110655963749099201679327710876288882700183562524720693275074571434207069744907394580341858643528787874730421583827774546829342747695620959115041206282174540053734050826473846972681001697030682229036374414901966390104235315555026347068636695426768928585321863702317631427757828553957973401297697866885592776827434761404086277945786443356152775696312763319449338572514026327875762933363102182440293484344375947133044133718002992590477713530467269479992288422942958965874697367550802760571348418894841243370907042054119552287687090423642860363748713585614484490472747826899460531801672270638166356100781552230665944607390929587919456185532916044493320816597985295199016120218163206972062442146980822935093369043597037925221496415473102054802185645948256426071923526707719473518886055605400941368026403270228934186373281050132526339879723836998460545444056864612482625368084167665241905962325311137256958685515467876983354772798091333982264370413766980768691006763875054622941268216955040982748440470801745902901893038171977166434837737167423510479782620118723439246797082703841269731814234538104363077264826545941708174668376344407795441628253921438962576931556028507468761244014235661961131801025370899590288775666375663467970782241918240045818476077990590082213462961042259291802125230480344459853737754562450752186206955098172732997233962640537429532788823777670869546260234483996018070426405487776558770150151315321525311101166443424435776163904999154969520816050090651200645463552429354321728781851259691641556898126532193159831771507689289036295770645648778203109295090530954987711294247366161106302865603326433303100416848946429059674911339247417743570757478279470303175633920228405394905702824034805242585507636051056630191269883983597482572117971538039804812363494154669721418899050315813465167700284404217213433028646234721474718201615499012814580620375519307704197486034844925855706111220686843778088852644155302275269912593754294516893396409821719506983530935577844048693363439086392752302674763499500120689963091107158544148886056285404041517008082772698431704233679623502942937086690035000810456517423043671186112632037200016778783892015584172681994487335725348950234483656947515577115039187211226935350318741615238443582733274819556218482368514449177670791191093168257951753342653320122279001256256826144040304153813843970549755153626076538341781828455350933744877353859990619883497833348702098339622391764337917468033226373549094172787907786466136920962707660074752056090657186983697947840817169299798073175610443433719087669741985650566401482026450107054671294299109213496644948158706995867346886383350729183220545568653889614077040527809017290908410917432775830937051973925266660841200277107446951270863362623706032968442045813463590018826983578800884729543190467373526560531722576260682930757802674204596124897458614933339432861081541729830405177013456120996930318611390842049240410415018313273685243989497977529629693690244946386591866873778427126073484282337915455769031500841869532233260321918987845546815493009879671474650031597118595513405589577673852059530469845988529287237257112994970654715685957555777026916084152961724103777107819385205726251401468243199389220011631778990335257481133908246829728190819021445415217586128352710619534107444161100773246152842484129831466973296191945465999123543179424072733355059606277509680067008296534357926276840936162996681659565008646014595098097158388190389168882387652510402834491970569249687696894473335906090986415419112790023622168609231837891884874898794936740859857724302288837794150369988463244618380586605011488179982521173094048314275158874364406229400652345198564903013824785160884943881243363041722809162300835481189152082830613643473791014900907835436749455475394492417577495446879832407221399774467165453128183756071852738389769917926062820747832221176964957273923783887871482670212098281284122004778688200502826802476045694186276766213432697793218688139696221905623390411764167721232133108619978899581395924718742284544927487640261772839262888351970808783507705018102513113007886419346454651378329270896995081700908805749543735708310227929491597626305412252669991217951438571829274346055167492488178423590278614876610410188324533966032603023619280937945238836574181607219584278122774451649350985290694108104403000097587822076789021465732535759487758503550316191498548299854675395233950561997292703505409599951618156679041608763669375056864988145595759958933427290273271842198693273414567404267924329336509412847857584794769572449612561969140650986911169114268024932554178357000412304211552574022226536074161325360312132160249680541701389174412235125397477802959910532204723367053898569673026730540138186905685127996121527179175171034595625815501878464571734844992588195172491441576919787932339272936584499055292212155566626733115668215433768894034055234065546117470707944405626898402230775251798505532911408861322941287194276594992360378687537215965342303146678732787751327570767301332705718910491363191833793857244914926515783079482225529782638223881330324069448965613922005575592530102405126920463652667855018583432305740074882442631335856219175181059327170733479265445316916749830519267669698099296233495711250864290179753087676111859422720564160504949518985436726937281697791139542154762028863732176974654577803029528877604706028363387530939282839519924726066747460575910699165125664385436085680045050575265389002770387384100278898021979602528480239893601844222638623109868149519231837190618989389676182680777728941119003480051339913943383584505254675578665251236939978942683790770555710154275419728395092888474025010957280612167556773749301203794112928182197135700455294207637178849497855630552411609428230369395255174124984081950071984182580580172143824288456509818222846199587432455665515660054375266010057206994413925948786547767905219590421150608592436303536034984073935087540345926432718634829103380536925640626328273527436712522858670941149560924412644484071535218384883443833513595491265468255419861815899992079538308520527526512234465518158258514058502608867315316881676284336057344871842093980118695374998597379678178646604036963527019660725842536434639166643387190902432506204797937095768032857439353885778907213134268341376409701972652132922594085164197201497071296006671899025754615180908414249868284702824036965325951187300272393811279439838863437027564768652672981579507994798476710662778339592297300017073533192413298789947973985179597431953826525036036197788017513986921974605672967924205797838327684447201201066439445716056558582624520101467434137351302179691589903734088743940660856705492174915544979589502262686009125125854760932894428543166244862619689229759601793151012687324753516349981563251654826286760669611667428037329695229699140864605186340480366870903681667848176679155015252821187690610172830732561194368961448254156042576279716479318420513327952318225114849456562417123077821193784163125680911910724135128001835790950963846005437169948730297793276071044751907484638463625951870140548303163594799069728696487970672257073714966669006763150843489557992418532385270355945178474053590806067641581810988099261610495579910171603316304146914159211282064206500025022858570225385625167407674553463867966842010748997739010167777451591551847091856889719447955428378272214366158455100347183012811097668274728556163410600661726931150004424077464566775540482178789144039128998664021430141330806886447919183353997506320706501678001963297686925130606715583803870798381912255387931239846894927603282496934114013748987682640669442973833885030884465088110369632117897717959945383398766995744700632084465470502363859422218618017060802856080770791689445908320877729237015137744516494303553920748703434294644845567668878614199720386579607835179285628991901797227770461435621742774467398870672316460809992806271367870421886421452705835714904573931848437081136259813220142350822888280040281802368725398456978048195170218619714455725300473684152445510578208587772081142966672241443077319693524521770765716399524346940461011445821113974620699819798697126565863429211620946104943489104809181749735289087946930307701454749578605704689335211695015282101510256237261107213111079254719691042603425177646103006878459730225581520396540887791515284991484034427351770928345437957365038318647034449248578548454417699021903247306933418454258587879532623788269691711632628206061437383114345577055367763941296024923093292774336104835480040592206902732231948248222701015257744482315570000730403330594996166989547281244790865078711578325086348767117329706594221571184248824360958862576585809250884722936105279292059790378975019438690923327193585767326532738204065622814170678625752008983441707398201816558446644742947379465619889851593549144165135017895526588785038151532051215102425783701374172077956148713899741401828960653196461011637740016398183037837774020676124230756480438487383213717247903909465882505693465217335276049750211303883626145197960304596560976940062325930746237200781480280953174147214027228408170637326923769110315511755361423324113875547417489861366676581504969587198488027860347014712758039641636541476436006601957043622223966699904032812104834580861811459890846489404604661287954453843727105183857268031853719716212300934774711553126274824078433702785189079290423854936379732621718809693829426113316249259547828680666405397319006036068364929203895102240217014008341584753949764480261916378609990494025384991281459124402750923941931117816810577229811290182650624644319260522444687375846995529296723699643095043116554487789855737456305099518263053201980056264769074963407696160508168621485573196775901616913247663810665250132617051095444116888683308383079973320237655596844042961681560709991920682030239024781248409214422912758437857251078644973994295823588742800379300946759171939781463281489857018892697982760692891605439564907631032604658745124997808969062766242822903045398118921863685863021170129374537422300966393960491714263851511789202608883098704692253413167712977432437842150585757398563903509962137450510005002139495732058569289030043041870018250746159476105802049659617303652705964453100042431587554344534314427848559327455655099272632202747063774868180584005152612736383372534300649466458219029085718839993095797625454596272749768102235594233477209740942511287597000316665732564761609256690162860123250475655940018537546861972189681172235231615097512119735178832963864429099320974501692636468747191866102752444025847531946498802994389775735441937688570713442003423076726304667811456714796944980216462305718578116997528403555201470558119292240804808045237057510980888081114028562431411562069414841847012089793018381962973989032961207350309733754466082950137264508056427863373759459870300348167307527245336444349613898488806575964814387760137319839946599638448686541191680644989966579590373428712809593902779723001730993420932004922404000232895745388482549660785867319523554384077380439903116008573842892043415109852096742327146210032377669859018969369322093001518872399371159043363264389752468992180758621341795263285176413575157077324964522021992537168531524683063335039434102308722691676383611091257325561377044629076435697962876480793199155149037783017746716467579708136806746323028803868722378623628395888915421070344857853745031175175778138875678335115626909853957406557453420307968106181463720162755593238282596564126664436028611192075913121502253614947748395153563626352732309330786182299879172245140217686325879408250633813735751842067117983696347714795220164892734799063870710751243420943662434506548710344128778933816160314685457109198515906295861566993102985278628853851918978490863106365171227813818058713636977367293407215524090609502106640804651422987166881282380381483520945030877904074799169906203687765450974018228953174772724555364057673398210178664921893105995187175202800919948246218554733768964245737373350066901190026228981387418999324071247141155639774726804253520029945456044945554057783895567913547865218907279505805108991639869615536985957820915030300795999283649074902941673022781694406483496312318125313935863686418425147108026761184609015041833447808992595905568454005850121572101481877181758957673572968937373532970026329433190949806057049282074718235430561787725614941215069381080403652052965950230710934009694545957202335694979762032534776986059161113801052532848918813947843599725174102973257128239921344643700743920974230471176930503894065314374986086307003218148666726322683805093885665371065971344490213530433508806246980883154253550012056922736368832690484186965773181034092614634100801825016428048791791996513038276888033712545494704179369637120816322173972643412030148035058618478929873425028785048946085892621087708905662018814048369625587538313255037182268432855925159474569601498335726032307004786346911754793342604732422343122126492315101245097267157343398199399176014182404146867710404636388643481643128322238925696367806199336762794898634592429134986505048538674730321279711057461078897985381168970252585917744253998591543278653221765669877767005736354206190476910140591351057722311526344904916534262996288614214440267845553561603397065186234343538654170364981102789626935437832489913958265202400097612679863917292247682897514067636025580783621470923564914138042801123980048459526885741292811900663589124066800312187280834673046612672690727951083381172856839789798926601584387850361770610672927419621738045795055558794998410686662712862202820515442966009189930827013512411378857164211281623711383464704969463236718706448065966621564006486864440128031483625878736742298073926589643696186404570978526772311867372200716805301729694328556469697914669301726323775915691840688501035881189826892201053080445955489997676057821807541219977668246074865118307658909485807378622068332823033003483987938100170721247204993358116913257232315307260544448150416324176304446026426951344388237705406298530944902467706365071515705401702391340236223387216089864159887922409893947631179005350301526568889201136180324556791873616712748271986162891538014534495843661187204987618087414450950341708585355524691368733778524936088186941496507273194163069742105975506576734999697745682252374665786926909465172922835065928542019013906502213449190464389130882633403085089627593612171585555691067622073369650273331380338601641451943018352374807777530050271917184368691313589453361199976722532659954023915078305904744784861559010131936472609242879029910152679863950845606067468402418712705931267603621974991500816227675294383007331383959228773976761280042271067810801098852620872990378648051656101955595824438675909466346897779888886041742370254747964198976274164107251228895809448626372795496676498156279489854919262382087638952023485133642643695858058048452731410800685711972672589469805326077457986035334111003925765390457186979183324020657812460238027237486688688176469169976021814107993055839248015808153434097047529665550804052209506806612796089206055276960773409447619896150366570470554084296452137833562339272180000269806443619172596492366109181947155506725958518864927941055968398691870036636037064782700949755744534326472478598564899178369789043890502328668127035917199414019872989731207880055347205887271555413643938380933996269252493036210909181518951403222379408867807322846579383042195888288763963406165927287761410041163562622476668307816375730096847809820031098783059549082263624566247355948133329466725422273441750674874741747499267925390509406181455875062978019213908617630903889368354377336665650945744883538601925062968813596709973727579649518716399559199595137116085805535567123216153826284434502173348367865910783130031962246470067295906414726482701679215792226539688119777646746440088291911578143507189034542741131291078472454618646773422067882358020729227046780967768249910441359900986420835987680443803499066166685324318603715570077869913763074407025359008916513107343223905676671855195901796412108252352065204320038189020283262975224464227138249375291426987280378423240314560821636301874662883796761286699165918450033855386584383332167319543502397201357856879129934010687505324339726346740293974041367067498574508436350150636695873139778810074390361368102001953541853941405758397889300630989513128065299632489932420618028574901528685419298628228752785120329812836252576481893655067429182975030105290691840924420932016303640336905733232190680281776883248499423552908107588881866884729859363332515621920189514268137926956907509161713922638012868711413863350319465791272427508917909177675924139249310873488101627047197279986196062103869356204273301227248474439069449413494614822997545914749543738064552483099701635685754511425098012792869595410408734964580182052436829023803412875811306132947546373755189775694691727510108698352998324437586029044338509878191742198512923150888395577836094429207428881057535725666990518699851072218391797754414609273430935794891051744452531339593179577168402521523625076906085532663768492666578810436327651793850325795053269818358773998902554178252193820092475390272104645604706149729681537037926662165732715676084998405989358281561689632533715161834115125984174885471051050558739967382269244289750519802738816009203870391923151094512118543621931463466399213121637028468041308539315080955200964045502582234459613470319983109232597864188442612662918486837794365580088647482598052553575854377880484892377386398489717772608409191902050454826358596702862600126612169018000237561785591464844350714110127865549305890431399927266420281926186724892046040931490824713633565960896801811486870547098601639439576245722209376141074901098431681364397553548344230883459763631814466523252559236150317793100778188016875618115016127633798150496877851884562757371411753111661932745618189425465666851073311939437173699158723663085069305912540634018849075139626471622620847189767243630322575386171993312958226741349782293212696236495739462968482127671977796990965826025215968337650566327345464858353194619531043566199934878754392657479701512380078792203390783736943926235738645029815684747255783995439799685263990700850177413796623630349078217314261507698844305832669604375729811028621925743140064235089181370541986850846015820624362008336170670462570496023737052292688771246337706495329015939373735451072986708321726003459945690599569456817258028198272383787525764861668645501594162913754009864161907603644320812292691132609895684456490215359318481868192854534221018313602991119763921857000552576796279768884353958513157950083539887173508624946924909013830210517942022858757933215419607721704567501618275908724260304526588306384344171875705318673527190437280958529434537208287461104669197953752724233495672224967010239335949269224360493777762781023953028675483414675254073939700705278725064736870189018344463127352029404934784062105476540950360790962825282637869563884022467440203700719429645762194089231857509245985454055305844388346501768703305236754625471603138381314555311587683832435917515474455063937897717487021220944961218756942981775638589598436152729094515008391493079501645676959063639915220233902348077899984076486759518870272827812905606122214909581933765565823683976346098976742661821555255814230983733495393227420687853375733242025329046858984003698216665873764137575135345970903707626892231017292668383696371443173069849329085109939506114341348198605843332187346609386737791687437192606375473574298600216908542747256912011221923113482998554399826306470018370382123337115482111350087834281946368316141122480631479985104858350997903774265247432266112095770302263423393649245603303929070468829078997898361617413135702011717904610679526716055276608964126303653977094290936439394927224583432945204687569173545782920593919610552846825529376340649876528468273186190909575280847548445580181412252652685834963686220699266079650689029679112725817732368737265653321820264960555784722673314043361573355718591882616793179068842016166049016874307809810365365384164987639399211597208963208487010187328344037838903774191706430293259099860804551924828556551981775097881145427630306967436415967550570888207682067210016091950366151233530175864734828800296937151450134064825506405609966479981312642245533562186598259970926022082088828009245543926412013278108433504457335157206629695050682738898194456596802244903797824480862363799314911629816718628114725441082323063184692746574596890663520979135623011687266157179752584549665122729343826781609599479989910868797505405253476647528299505984132904089347131118341150463301778202342783520532990521995158257597241052320449775300305920163840532284258806081045932194338347958633871195390824307875305797233073888895213871970290633641259615309088755602481267009058759805361677347471541107961220484045720315684157331685924965442061293416158263696491955332531342522393991995187600231115460535937646354844218814724472447291166939786952253564180356138276193236542352160671251818789864308017275953335250634833065462359176131556292269877203708438676929996857230468034473660604199894731343598464407298176472668496621887300035906138061890742941254560499608441975668364519188428962025516926921014951988417310592736464283084635932310058083758494171371941839965967238504061330223098188979588679386879166286453568000740193479332346529888171301126027315564600619907672620112845612130830583442155474673193077097754750707347507249778304700181655796729926009007775642787475510212705884123974418464271006206224052862535485210649934660749979818875392713908595777880078153235636293435461040125802600974179119560843676737095996080442468869434968007657348012390441838009504099162690262349234094297931526718139974846889111914236796193940841451582891338882790662564406358208238998200394285880646732834042753450623566692056590676454464587017546941489318032184786230767655973276683097014803932227305216118803159441847373517358288277951718790858719022717014525470362750022653647358115086920301096161553635136235163863472313258203035045745460145020393759569930804057829032182802618124544184761920437871602455230032181731666321520743635744979348826900950307050014342450834315307462177769033834119146969067375875113920527919387764208389326749254525344509256861148473795214328063624801586130684155571766985138305549835836813153869779270301074389166658648548746410198654319775318340816562395656154331002302497944509359183660924109311887474717336862488595860067877602655052822584936029938577253118576820328529403014601245779031969097963515181606477640233829796218141907402476344453477439222650213896072940346621780457434516667354262952849298983901479509303501473380405191518096516542603922113128535556176814383071037835614400135164933620952291146923920838071071847648730149803554987966143395758835719545600195347298156218710270118512974547789961776698223137755909414760970189307454379130971503089981170122332826085718543331735565587632075438094309540241852736633934224930127986473701258960456365084461810157511615090513888536494927016444349796322224336217574027793779709787884709559658503548322481214022163315463749537408611310865378047514918694699970714274227267217145479089814539255364690979375751978362339408789696647454730140088219080618676920545310625687024654530474709003055752572104914532387702780055204991827885203557748898815473532173021230982971889373563050795296756093614314717102201520022263424488533810866164713658287559584271140933204638271612480238613374639967155850324160708747822877539396987735930079131758653447719866324509562913611015552142351306590154883018054451697909547572484784241159597449634049911883404280411749561476475207069584871329169711727832334416593705198402369043563905735273976879540511196057461409373433785542250570830241301021155289856765555039343145189207894698011322061001406061138887455003110656597287671904137922783129426273203069641562674339380035013647424745576291782636749315015055656559544884779760191555452515559345725229553824996996659185191779846867345976909037887285009608586381585208727942408785611421034872590955386387223923754594803486320736325879042747687126687982534194886911565444097712910956167852493257071842295615320198238326539750883245368840887428090705140783700575682138561018322870863348187749752914829747803020099847825588336878769871180972817655060785122895870954708668886916974220872614046261077496657063820521393540103602718528044770834332863811836850031355878211379114991597819081010500810821175432336118151718577254593015854343611261134085647786466650246041705501278215497123064865013769852842291911912980816060893140470670024502700710890011278563953023035857943566852713130018921586131221141805626179048286124149959640677091814252305179738216352299458216792314296679000750097219167007153864645702717556240096967892510559600084159838129434729533803208764317138751777096827171303014954047950387356618425099694588248301807685498507641983300249293678454299513506482283957355469491643232592260693097955531022633521201277735441048240404788397639540713980734940474315166519218277678134659262116918921859832873654816198863218736587177248522811235570420150823467362527912338592342710624881928653329407429612869851347760678557338416991115558688936387371495001718771219269568432380038083338451014972705979256818505077345292823146604385743743038629520209710494683174019574995203765553020998528575093756513195243141631874702684584304328627351074162089418810224186229215610835969171227703889365066509778373249643975765687941004559323455502554006401805355024145301881019416936306012986305457156089804392240164842554182792088676371386934156699243953153449168679502886964272729646480484415440986309506851822146746809099370458971301944620603011891470756696518481838740358454986011454030391640631639412671629420184749401597730892186537185905353963903916899075487900065450432752646034089120911305277127880668045546537909835926029880630488963614738090850232300604290150745099046692575234252483595577571331605063454784932180591494796499322187007958966428281268466235661356535664120999836562123091171847798735311259609129795216014096594979916897387753593135660209101762321264173892273321484446653385968153084825021827106949378055886297149967853785838199160383934658276743535138643717526976406389954344006034964943287304324578924135850301589535027172415438065851529092073703443585632137276611328501584903467212363853188955820641509409737023350413499659617984512226947638521478759697003035072845923932488331681501080030671899483038001669414513924381984206876904815188959850596421663650742154734749289463992548272505086797497030512048738945909844321624959964664052993384989238119163158776230496044547114882842487801532552107811785226116039769791925198332536173449143185394677625422847314413902102382112176884199896242429326302504818128989364037974890220822541245846579003665069321229071234724001703048466894350718253844497150841119647525876544682402677514193968852660408168858931466862445815934605748881774671526165469913850920235528349264909366574415343158518282916061625626567559791228796458700708857332468450067758805398289915247179554787453028261455288213049085102386073716452811653232907156148030050113777360744358361948431490348820780532397982975460786504379791769062358255041785684052134978297212690578897317074507148287628652230922686354293513337533335055862249081276591979834935356842399985554609473095106161026478138976196211199099894113497065443557784401397994644396982925662015346378700142902145359886777998375430119004431441452127688386595015687845504862699407790525214450482826871042939447996331195623649509085605730598741617042226088926580565825269883852221185847061694173459228555730643396116687651518410347108772991714464867419092379643257907134748325857179844574851243341209271633224183797075718361408918961049479986476951992986155649690001308496237812820667182863728615423140179153550053727993378051981269352885233539910245832083677579959803209756960751535319465890615417623599641363216933776454646123044629467471655852649220484239103580184200649318751208900328933641642091992683416441002719872018316522961053036419181859490539807812319695725872150428416030589517798530715057177328642040225416761029203577921977810681288930174930250904780197142895932089506936419632662647344909822889837790826437332502267565287263148802503480164026599217228974349369774178291770195296294549784040139647014828485692243549683795355221589633389046830696859989694857771935295623119515933425767700086615246528503264720980001184416949563961100848033526598963269072524135283441563210125271906279937650979772350931054265668782203400220645777339478364724202396693491616588739938748242480789526998214793770478024510129395412948957978952502035067669660623410958067992744907087274926797356731551700676332807352948144632894455382051067577431052605535072405928357995986341256214670486191192220918163194780307841554334075683259862809857908378800289988742942417753434186149436851134120215087008361092612987422242889342182654446049039158569360873169601848510457840601407401468248785209074127362636361096391474817049646961957005915948073914984959472790343654512218071674700655845556613555938861141192781226292578619394676598079886580888880221699280308472974305741398088156927236818482506061356834095332996489477913434861712707107451702033998601427302382081593876856437407670786934100977339156148285981813059950104467035273800295198926094475243171236998351206868191662689011664928205916954065153301789066405509479594388364587861781126460736673231832255832321574012422910252505090199359338850444728150296529265894798174450193969554414058262602235282099343855176535180496543391757289707151677102317256499856322031973555409386928203755824035551008832123418779402075947269475536634886552695417944233366950357304937047429475016616499526569485340953337082804634884858695167798052883365199627399175307438926022715261322041195107938681368414873713533744352656957688660368233053874629058142318633804854520926294710129174288926760154904645990821438832837492631763343411187938762941971436053407735927972409272907936149646716653854031856746178983162360426403761114670424791276304125221070983413467641860617078262681751277415654332241776652060653108447578899666573714558941985867120885716421417087041766101727136474557087477444404663773670202831415492669975336395176298857076392361200660695776008297228451048337551025469013886915876537576684126527553595092745308920770783410674107895200263584527088642706381726819908454926566200021176405300661086464526239234941423877653416342197935402148592205142782743407484837465140290123246971981066293773715912265858601881589659246310716316786538105569788983819279637013554115704437569589350326668752311549537874362295776111658370216781761506689144705536305553713218754723003149061435157638475298239910517179341358240409490591598889049191861138810914988121304966123647760336448475327281089554061240820709400191682365318942614972417897852243988647221523939599192259427559631174937902451757152837965094665983065260869282295685046785969389701855731681738124310563826008633952509032009162171946309416721805821457102972281776568228508739477753517466431587590604389462064870150241332009251605034810725417075453788321318696696633448638549489388350258629402479191665893235385360437162507397132707539419593855043492186486032229739663699988500021634985565701888688609172192727690565265258287189820076850456568173844799011077418465021806715758125259808096328081149936658966949968853816883139990203008119086035925723991036019537841620020584208400286068455264816335410339996705424417360949060339764489600509065031147490183423897334044684076681229970795812701453828893217356238398755192562789747346949845513638264740017329642329295580235571796138178989575987564478957679037390404358893151784305371713098997138027803583117782806593274102390995519517223645430166819719665378218710722321208083015550982005458718317631712474387217536123273254012846944690771573649731949115502048840373904725093713305858779140705376842089174538356431645098092096638095953706183851439326317102087138782607475690357339817636704423638876097586228000286516047791277544702724273739874390037961340553805609128771111495899910385089655480384960521979904710918303756190006610954450619143748453213804421882082591763977094387216592736357122754149654276002567742957029086499874602036442405971889989950324254331605257440003802377107914264739095481809806281636539971083349420948563163279317156731591387889223594540142628279691324045123362983737232554347498685632080480473232437476816024412492367852599653418560588405945974895372518659446963144042613450962522974629735645640141289946759258318553490085511663334997191991131881216218212555054421197064011916245374753791632508585016623673611649189759662314904703337989388074182118282877060965641832773073476503250323791375566104437825682632095368803699240425637651862514892840861634264025751323576404067934299584100160859610721952530307845622513723413073875652187420076117807696668600862934125258901224771153553557091625573792762518959170098877983677044428808701331686370928503395594249438552680170149599826469999538071122954237744270288420634201614913590885598518495049585361686036550505418610416871742382049026694226440853136083210849662738289064505023230276355305989371329817608439273944965077766896244610826070246998525866058897445071348904825240437167378151794600199424226231412641931692827394430129209910596128213647608976970876752393104420924239896931450534041309034193992959905099176253060656652928326338333055624771091126646791630866595529186148081441692553392890849127904730149626008828698595894610683043654595528944684423439053264394578113552435242520453647112519226912161683400047215466973727744484282234109470951657395578904153436495645272883029113149535824862397675330247020184429174579930355172865158285353685164056521347220773168005914094205832340433565674281542210979753231984271482130625441021778740638368730346276558642653530277772879620054468065973868501624780252747568953986135747205631232457820661276676264619318984680756126829188897857196379750589805527834877988721707792208130217157330846065049389305622699444145266956824093283720227295163110963988628877594309764431825386912199753189637144414103325729594159991534291271704243721574331147620781186443547993707129218177607236585046474650865280069067883084945424358395417567191743122320481776138392828640887033514319359780826876289182640357366123434156742641188865388827914119738857952351563482059043181913783670257407550471484339334294675618135274380400257500060572770397744328603756175870548451017279905328369450885313861346374471888739364186572808744406618281780574441361497767132662917088496708309779629807642785447965975157504244914072018962607834628121234491420391800718588023150723677429637827595906806273988766960831929309831366585351854759167681665463008571665541435875892661211408894348347336536732571982476725578572029596299103455518152777398925413109649961958375488948663131955668653890966111266094579754702170070296987240308524317678446167027034609579608138041062884294944406803604418785499814425048953339384909846299085997580225912656948352864123205265423270561784788543177777805544982282702052101355892542504454774393283493766945917209051484791036902338111764953761289262549729992898865106684095564847231744288967448239255801499527244722052836944207470647596421023245035069054337819191988524583772479687277834685975000394247711349883868424082456906770764637866118586755697519611393058901199934567357505745097069575011576975730382896340276216783534748047295257074599059044169970230160483790086470961807769342211094015219586564797773774200453702909608926171374324582507045383736817647252564489102243999518577137131588264304615477227464045166048968007182126906262282605604953916492990948141887145660879278049841045309233291610149299873517259361840952861645314545684694048750361501700997627385906957544143521603333889676822785923568125889928482561644228973027760889572963014337303721254852379611483883726034436194092856934648337251633560214363608674722631468607829420213328576237819073403427308367048323695855928718414446316716320410490628795667596911334126182051919406819452786398610026924390886081152081114935451973937703599076162542416259741890697283194310357496211827902696088692891803431770564235106323168870991447453495158059553668192783278017880510412807248621603176578986308742226196372516935072076506192187229624974564299073574989363548169261669583937574264796256894917092909894679642103906792288391032279976185649028219306244173791218823898035762342128102313851364629421547825849414141428560119081559456604230064034220135177603290766229855002770895629969084910814002495335974899048555327667819566085814215211656134179956108503424553907920290743793333965384236711184248990089974337520923797371821789714587805892550426417740469629578445001056874993890259767985976875846868497644879133258779401713054021242704220562784084383913797362736993678937245452299340086091808899553965533317101514556771701303620358217641730736416590671667753689291388525836992784188515459935727797293860562049074167689630656318138699013937789085316031663284339417534349367135828888626997785083074514536678040814964638362884624317729666239872034429006319324211283517217710930416798954179618866544790215660548526178730507560776710490305644727927899895216054884744476667615036377552910830656978509196468514384820411724080407705140431990868196688986108256015095511299468323722557530671225901463990001395418453051688762180453030478659018003656131092247011642406480277636510244923484491412925207078234679755877592185300418773816880467727837588742744575946192665179701792723451267166044860038560879915604191556056800846149528588988693467367567962164671811214860773585997574553234987812377147107227823975588240325851474179139356134222509656030009253032515081293150466504071082341279285957390369985953541014163031106377366952435453418470786463799800930063122252903639942733366220926421990599951477082290015643818941345336691124755565218896536061319975099495318168310518523525049174348087710369928636897313035923700909135776691784841795820345266498370245193429851820404951378301509959212577918017775172705997184173638863272743072811385931726881051795795865429339935947051721906076073531661745762364847426566102692725669078533508977510247096973906109755945582912729194594435921080359517713967231482385637818175629458975624335903837177694317458098875126390836649502697603646403513191359666065537081016069868149704554976560584968771714356521292803986227632294617554867503210959837605352091216138987308102278155244653776139693327005730994993697942829662513626323498454280566650205440269451455406175884296948030119596914928240556522794025262507830794706353048137689401973160135080658023979426443257092522134579946451303943065761348680914355998397753574567527127952995281532486250841437020223923490541562338306281273430277838679740693706349276394585903759128456661244245100210054082299555251573418308587815258175991124489037548987431156784845134016396590892145127138030020154144162447534380644797016566221420172569865791006446563039458429611848842921973633408668019072325567664351539205875395554993492377360893761717997334659448950855022478045442497285384558085034768998988407118592270490160264851659288611801367074839866540393266802810054454429526186226485393588103564863383060046456825759892081742744107422831200754953347855135210003461821083843110547455090667782274953940313408827864303297632357540857818569140974114695723900241134574079843086907130958133948948608455245561540753858071139708006152153587546204335893121557332726232659087830019350850569209227956578844587798457051275663773346748121720240503378104100167819662734636447051639876922987771200887665558404909371497871913339097205964126276121540413255303928452404195600341739657575611626544017045878990358950157366834954481121761856530650328734799421101842898658160617744183181002432191491636721578116879463317190051806793877693228693828295756264109148019232615280430783650023045829117026923561215007392352467110295715391864871129528756705809405373374456411621990408175242955396783902701672680649511173441484670019572034604788215648699782195708292346822809794629105840408924008856370735725029694267527839048421424949580526953811205809177030978936190467141535097874290980302469119534988989409857033779738838844459952200481369317013423159717495466257542175749002044692425767985032011006682933140742476522891103799598922832030156667880141592710304238602301604904915233187797077185763857870974506331354672892874463781001797726495216479676557680996840719627568126424735524279217438813060153077576028625036178710043772429378908168350575655857942783475042060042560560087146184715945333781992101930381737095727555042954488378473780667300039311192929076649160975863768972133992708161553032205865405823525473041624755616431073519913827714593282579545256619169015372940645080156765157183893726219030893770386138571478982063742844008272027698438223548613294158389965422949410093917849465578810005873490410487976579678718520614970243137720352437381983342103434205837006946458903209624849895775428670109154135152768360954457272204534850446922449893506113984719144353195546902524724870264309665212608643868184929128297133642238899652414212319258350161400149167185910799464536294823204557088638685184863111730473229592012221751925121357882820852577873385705624641992063292418968474204715489716232640085946598274202989718832454805682297279452510636053587642363631175356096384726683077676969637563163792934955136014846205384522976321163786563118883296117860389116399558306138084345919448282182405073314350874353006589724114902593632476205317903723776283044020957431839977869900788084213037302209321052249914024422384814456109091075023860084328725661775002268082702782468508113429623117997999168427054669486636473099521017705567904565968924740619348809220915756340002868494823974854685885208012627959511914971060395159163989734231773716694126760893977441901751841801112029475704718941916810206231804498089430347971654950270183300323112326422316288889910409917990811985376892787932642604219333500089797114920845473383482501511128713787403175458484674767265560126421135041303147974775907371228844305543999477953406755325803241244381038846250818919056195864793979771872055234318161870248339699882861226101062937821348421346610049100795910226989554554755433267420737513168653511828719323824705542261273726509189392082529654453381775510041629167023759671036120199934774487738730760767359431629651863700430734991572009475960186770510232762103877559905697914563008064783249509722529925843069872785595561906383174148303995664003221748420824265072168733321999633735065718064311792345974818241332243074245307238036382000263660384892257270535208347360313533433983576672607083366000690103082792423900815708042572842182864447113702470317731156640723669254193273524843481012458744199487443405312172877886689660553288132838327925461715128154128071023232569334617780361802037845394729565351177588884283396313067009393284146628358808012620241937021434064838527199873175428481278021669472934090882983481524336391035471872927413041823267913419839404903719815556094351156830676280813177654733348382468641474803822519980159149858087138912484230262452016055989439704850808172707503227332159973080229807676649901414764994995030507730166289998574281522501094766406925763113543800179139207533400787894662463798413295518462798472879637615931946455438831843729252672611915023502878094856745800053709539013744886609684043383883294168357981919239488864322791727791615076650206663513274935888590272861572381598619886573475218339737605390683565358458398102794031671338458410205144408404130937892394618663489968880027984368052323866418775360078335219529774622359495061549654455857164817990111359147496327675296766905882856378972824658412935589458793807865680762111629226796402489091314777893314070679679569901995603261237503261552224401387579456323445368054609484378864900794115389715026630297803018875495155896297202638193493561720127582241526942542651045919927697996773476704058475536163770813875431171755980381879385538221458780017621546200466084044170588835653341867503915833735955233131218006168741583603086948422973987466001260887596646411347656901826166629917499568433035090606049874883667248105489332573694274493950542373202146579378757902064101124260362599737387924605694575874039001763886317284071381300416048953989157088830879376169167258803269002196837870683096993671469901821173490242775226312919424034215067198170337404342699522811540986385072831490182953882542282826098612784731302921060884844190451198308851845311000334142252358602415851235406179275607948801633251261050130276763530315913067983685906622452779917417795473069315508871037458123431790794913043326031930705793308366940623059284804084743988155052082552193779387680898798095626947867634696821788511324002513922587925069799932382736191227755464688305315284844470279274979075863085020534211704761350292622651232917243584225951445578553349865931120062893964768134392454901737253566754238010163523513705481124255020583632750064057179604722845120569677490400354620356600082705017442218695706514155011687030957660380512271489868511226643482999551892744871764753607936127908659066578837809820199419854109507687952517904094525799102055690399193835750152307481890464725350649082715653660551085992153172323138860987406636720227700922947252711864787114823858771831562168338829608158250713350036554681571008274500561895391442869492235424129892118419703283029078453868016414567272858291818076285200272735834787142884529595569330773212679982995119802870193345869098235518172379085726688682250136802986798616034909062865624903125556758051031604791857083882656358527827395121747641598811443401765796883181185496866759519613426338716926938122814291724410268400589156915765014057099867993638454372837432723501444797999461492983103205233304715039988050665663169853742710176121521987111376977035344975429426255262441481045075803124416230430964709127920891269394156039100644569135228227183287263365862974274973234332750459363575344603362367912944820297385826906153225840685230773653929032420553250974679889994786785072017651340393829016915895725044486730614805039897458052364522641308753665660208768710787460903421567194643204656554816901581539629371464749463867189559338247465632092447598911849402574637756653330939466233937117727689718077847421133843426372117484237090253903664745770752713067837461117905050250352269996622564976018032147837204188705019613083076034165139233967371080982444337555404023469492569098692404467265131444170565840587657246533856541132286650954238496443753689439708257355111849330391451682162391269943861175604536135600218770529384917897639479733259591167667729688302119067943322002870637568136946030989235534696295330041465798165118757086701648007144366076222148740332217272526507589126676486122070156623653070797657323896354413171941494060593584222368448970315913788185122674670967004571863651149155218281025225560000103409294786678454685435586930392071983670817994449874067991540243867234468439275105833517925643212166795012569486690717884358782101760034738181207302923074792342538848835259219473996182985071372087967469223696208901873990119579902045359827187064679047779892654107051837615496507678695596356785620190599115064099159707639284284884371908215633929561881016744736266778459577432209231187033908142994897115233936058237418815586515963284086197134207145368916320058007357924921867620341188508601470981697899402395916068190266079672097659511676996671382870706020321166138363614781487147551725989963940107815331658537080839246601659618287068481729781682976903994884184239746330825098877652351147508807680021497297258678884419584300981429003365691445447541451606846055547714236271897721518941402399557221322727969287325416253719409651191911670195588113694781376479788136314928690490589092311723723283932304871431300846849326707515373635966966324846551314319780754864245436687898227122091516203272372551320984717040453154211958622995929181609325235230127049421957188894197497573758476830756597708520512659856508595835122349467417570543553011544936079920867692729314593877423237775581966016276984650829928360886195186799743588082195209135581936611614223117899160642885428848265755998545522717132304636078962294842337844060037835105543883772825215777255988600309181096881557104379967722690406684212331694301434619917463183462283044769635920185644129546198057007484764357020654832982153413945533535799929549110064161246606707564101178739832772731437058755408257779032060909649188313349297327124271251796703953060564772575870775644488492901257814910995504558742831381329322945230234044608360458622140844474999911173926199639304106148567461956030996297175248116407898316401338812479826978691257521837034875651021357405931955350804542043986905955069688869988929466431765075570933603382926291677595408354417901686244422359283727475411235623025401004141703604893301508701937920371305448240653200391672259815307905915299866254187726989863465173577792454410014005907410260878079046560020051328124209719037404789080468100883229737355869093184464690801197258154975538791047161713871453734801850446036515841937534507297426608854833608656105470639197166282480512766731729655140232872409514823299561957770568961029251009843158314496498709978962913431233281112072759514346507975622297899866167786911232561643643562465032136344194573097480908135825209693545930773274675262854579955467196347914165825952601825018901829599048164047475610674425355947898237288978948486455870050698506194829925016701359077679692002485878630892051321512669501333333032178454078569120888647029076179754151766836243823043386226066468482125440230274267215541878908189419678276154666578466862086639360107290786766085833502737887373718890065036646613265861734488951484300944248963187914225481177959242526341791650276675159323056925665911066657712850588050397315161907986075847310905084484553197455991281048120287854430435415516003030406387063785245895772570493634760253992358773608596372265232200725993705248075735892563861411259731607035021783706839371531634758664553919530870043314253380872727880858992403270877281577528291853199947433489312185354367222987836199745927310053769716484689265926893775933175756950182093077570282514271700868924422636655355650711601000047116306436768531601151911398783587576312410336103862851258830094484120387051263246769650033415121094657826364845397393136801740492882356530897907444399464998900630566127769308377695318126416093400369768297602132897231995760453960665680629700451955343047603789422262699755491283607915057100459070987203587985296039053947473525459746633455632690505342772415864595108616668055734260908393228035273674692169972824959907253384383938065423398305062836441873912731736660783740730818628105857605984241021583659910192696377659114317749242774397766196555029807910253861471621757376994905401144039011766273932310298066079036149989859055965588547075937699206253298980010581170988417791145877322342714521006346389009253682380969378561454991856654487777204406645622214348970625828120312759167845934690388957295492568895467338352488514915908907786832618840808171490943142078800748071388584007110756674192443389205195004981446802648430382249648134561835249010747006048569280532427043591349529385247935069688150438402362956109900948903566329047588517585056322792450869440297930566761101163241451744743835661331092780674955936947983988390004610134316987291662720322753115319087277929862574909334527596287779823112351706764320237501298829259554340324982220097896921245227905785631083120704646581297779461149220674046025513043603521128960399465153571541751627405085424310630070329253020855655834480160561281694047496190583698059275378863014105733201803560529541252364732241856943085673747071148104309856578816934674517542261657918385880643556769338547735529788038131748167194354235077062581505911025451841011011730435753312853798664805044065750520093107926053353294810222698580005119775070589014643402138106445329363452076968119497111136422731070276771558828070374195282660155926968258790527180921873198845706373396274818480744778383806243875131174326725032893464205285872576027477925422992924972716129656894885912420863560891643182632127659551549414627136668867573312750247564021756257530075711041737012698710999764783383719892508660476119788600313735169026462994704816043228519392707386312473238169793675355819593316957491943975151634673946208403007388076759125197050523271036655211803995707347772357326198173853794016750402624655240611182180109119103275957736521754484789646147679858911610596078285168884482517138181447957623699383487870156906618005594631555270368254705392759293580836568548339505909289582860399028472113245939772795111517569042287055464899770941045041975063053578936315774001788285655316895230510920759546007636492653684890196861194396397683217106383379961228157171587738750231477391226625360937498513118036600457546849086417755619496312871531058656742029643813957275857635682271300966076350554476334495263161816825689324803450500795617512557528500676139639175364437845379646134760079072179468228409915149269253288776296697611143282157822155900524662580097266723325758642008071097960240153242566804514474292045863499749187541967542556708629279252410217286190136310799110383064318768065344809473037880982188421827492694584591246114182625395384268079326936366449193547659869252992335890311802629531909493746005439498497255602994603952726834794812405800293687928338839740677706510852749898307903806019005525124488424203494482311705673362308274890547327561714486506481599793526479648383189663581422824303997801762205625902270488463266561335205660285330527583470413744236953384935174277636960234309350381550569920676757557156005699434861933597428412679928688537695602167841054747192730279666522536396953045585208854690336749390733571655265647567929726788296636737175647376191650228918300954238347634518859425196013758411903935942180385062293027461755426373806956296873700507757880985414791328218276900605056919574790464195528906983338337718209720980532259575459253417976906566998663168858935769898743450354525950314582309929039912990166415595953642029946056338761583355460529916966335987995938357484965727631991573444654288226699735267493615083007513338883028491685244569057488816487608455137572496513000308280498377542704422237642777878976968524772128722844795437544417341029172583985373505229381290769819026172308229028240835140395233453460522449212305519934446444316364230840302827518647360217881038745069813029519605520110700023806220626904042954897246775198561750536196585238635052546690198198560311838924797747844901585433365524495814637256138344273109997429922358957945297540890037263700316467143311429500016286432555027833388611468398382666303733939445274389940614615187248853053691831267052205951629981663957271031789820011087012603031940857138255068884209774123479969079623143136243313736392411142881870309955364123602267131772750143196602413356718074751994380383052524471641916540759492195372777888391945217240398089894944827434746411583616707135262506056866933865362867308848336148988813937420161979067287075927650985463321338261222775068896549229826754055113580332063796628622774221727861312830787639146785995940229180440818264131706234505298732651325026634316091439323635429251241371873820470952791137092739649737479137218073264139328153977348711768459724109606273683646043230904621653793690674558378496046519722169586135736725145961029096543171544921422467800777451117163182631183203875162014030881888558853794908659495923303283829032895703349523687992319580382028608343857120709608477519627371662413777913600481629265420617174761622506973477401193579278197353272231451020473358591175136624497036753326271944574375835877975867949797030824214918721458296919816846743971606328809602057161194733327808142520175991767784338354029830297686164861554050574594205887631886193756615550407899085793048262883781401416199750078698949727316361405203315402012670427170195988012821783630025156672182598517325016081684850172340903482971154340412119337427107540702022272592843475944258139240134091770725472648104458796743141600500618726468509247105846221243790769122557031894042966417184624231536638487486848611972617608176490312255929178611102283592107416367949367318504895523476815698979070892408804351016243852057635967696605552068402872208416676995568746386764101840030379529354504984253328123367554922016238579614659004932576720646365660067562674592212754548318352275909580056041613905350043632999777466282918648359718253246850176935616680442924564666770646626425528037631487170909761501183356380357251908266433282120081149974208901670479477846988004988447993772013562964395514343364974241315016896734365733882230641901896924887885373981052269647285823939160792298851574316859889707486746166372391616274544977942656391732235882369528247715180127203567973059779725797125780248224507375160342425701027932704361269040248294984314674950624811760109452843020250223635049068604646212578007660719785232713075997638058965524473589379846764847853760919974978984703376228200629208256825819743587336204858146651723637908787847736239443766628772123653428879128411228926206943674176755467069603546254419563944786867816188132060705482711999284765996146447909730681566070369737659793378008142416934525988795547374948543694459957307654838120762343034248345049155717177943323997403938449314328360393915723259791575353768437000564199825749659868230093490017579382579259664477668958188694042168093048025151675265226684834273104776501622834568944329876697654934506209651667238117015935099201876156512339992803400482838465472495020861352246877940160448143792917234210437080478793241670422565060588959373224879022625856244038748456336733483486383329619152939837431149293318154064725427499385211541156770514295235867120557627969553086188671737414246449031613896332871643799431587138150940382981039145638260355235563552796836239473587325803352571792950192065295942217103884166227500734237191424482004076614573017638861615904841681713011799343071385553332948506183211431043222124587105525245614408903202674855225548653586250174721657550908062071621543019951497202819332830311649688485829793166382847445008678686590213770378173416245730698551774495578702399849230961803626685317093278575201314400703617654181955648203019287884524007376298615942297354414369500631834255899132068828681482990980202687791022896219761783786369837443368363541595673145859246754627364675871410658258080587603564288245641547431652314798736194391153649143470765690755195059875401975583076783748252774382051966419921853825115334439418835088103483223196705300810926486440509292019783932707239775968181990268033188357293209519616187781992916850430981644778286759482731113392569138593013324180886842577305828867551458870691263278595577659643419885373530597643705350864817449439872359367534682121749060921669572516252936857319399006614297347903276770994617454553400100708174074018722170436316478777647422081111941045895860675095691001448757142140176839601951064710785709284931940603179555335215287872873845792992401227207988410878922278179064314120559474835486877095429167147838181356768704114143400206238549453574252857574060703473994175867309192930100077528076711651455143210680230401297500191697032865688361451936557338650748770289697370967939642487693697119787988354771094396213446886993651251005448125606736591487697875389273110406633994086499964684316944203354398624508645781365168300095645508773654215855829928690635581768387748493198242661338817809577497606572627561307988860936605576625692384296371191729588585781799434983317156295837576331220015675122069837651397508121578058125244772807116232356970930118525607921682745680038048905272949502874918877281138096669699456673365335039720822273252789213132912916575643438192036815320520826134243871971184537474738391184027918133704396694585997615187056166429066848824405279922849822645074759825372674186009503546988116447168574920858702561256086739048138829841649238690831142206242006683815754058283308676050205595649268903636426294327603232273104352977292354023553490205720887119313207002929629860599415837934513514729362252269821003387673621736491437238762194521044955572504040718973312463868451290640322507497236106670941740230900762908958323741669010821152620789417741578048864526854052622972623877984873486433992947687032529040576796741278180819720826238815478917444596154268170283563376368057185972108783083345188995778817436197157133468008657875492732877115167579595983536028940769772381288440447635893312192708150435488605061425487426425934030298608153837528329975319786763902255773797731258557309533292726813232000241754108418738234297348952899571668340204936704647241388499945946312624898797635789251277924306788357304946671011650283717029605492703556022421777529395458215179236136981735676503984007712578652786218400667969313056919081828184103053400948295759947905563837076388847814945113650387506475191295153284544515184521515491638105529285597481462699655261155972063502299460374516964434410866174194514508928122345702807818355561964656297221652308597084021163191574983238130067933319526581445697381606417972345242015926384990600007042038012767338351330258170131748985952541708727910784307195906037464271184153967168266184883703449592117071697795289210594571504589333188839633956899202487321504193946058377140301410986370605270542317373806834868392383932853770945633300470129226501417031719230865201190213891146542058575113391486648990132751580313084128834548789132968071042857756601937358117384816622246814399987215784933348013692829655153554153206058757712206128046726845148215508531768254131819487092556260909211704816299309801711160831959304671943371467019892769889081517733279000826778864886325892494720315255239182229300292770539070251594459275733901546571515059599945525531049153154251649238202593504809411450550110125028651552470754440457339761245922578514390150528652664533722097110493659176534764104319941292476462602073892267719633318896599112401514981356554201215900021175531694811813059132792264748814352794853848025775558331284948993571691755943024838823287079011826880036526962953001096209375832930904259154102794347591601589196902591349753713105827736928278082192008202121595361373416778099178003845640935616631151737478209810216046214448975470519857940593935978685991805954326155303503232737435731673258847122163831717305750669732821996518854358302652094933815252805025760835900759874580312620890061932945020318367990990169055787262079217961596521243914663237825886725671342039137051222230191028315301425235293019387605256047223180493955402648410849054670883474019254800232640422088108088381993180463816023385287052935643626971650861145432480937778636493591018933713454818708256550619373843696241453951546764650622422158128970134144714477511845968241227547512294721147947630946414532108151470460691496640989084530017604439792495115053148820228541341031856508875079329060053152067605922671551276196703362563180732693244409581351739652216698035682443065764744211861173239384343922972521647508101080171765265137906367011795085618217678585128557872498704632343510833286856277876558492596759264226664836386191014719400626739627028825914663897829903092520319825691430557999454189930373312931347325461843636903540284369141053289796460098938898322557537010850434275483134649615220350607441301254246175057075008553243603299367631055186140399929617253789632818976045765241322046401063071043804984909714099750178343995884428009049926944630735104856889190055306220953748955290753768686199521251220936371571370606432396734782825974265660869525957911707371352624974090618978196807751300419495178599976421745279606199963118526500899586939166074302787402712544104807428544685393062338393723802403856465425505962898891552538326915966076842093424368033993568561732916606161121925034520499998959566523092417361207370018982337132473517135673045843793097698523019225264514941209759459008883623548682905862897732535754737010928657636606075727178350257042406515579987404724036980583820072372984790247011774737405950198069250769098311577367811059151509275582470030086285180054771494235242130671049260841267665169259249341551177064424865799145930000683996633286944737529769396073695708919018978125631032118038295183526824518783804988825764529161582774620255844128024960750606394561909001471392640830392018918881793962955117826744165767196427322331960627745526516183455358256685811940302881146980300303559568480251593673495642912723954240817993472225001171770222031163523697758126190166048702732071789029123064648369802557031635043471453894612623390174834105309023476790429050538941210540408833143581147462357306567671012118732971742132007717765176356969668193265758342714620166089074359403066168515031736808400585381237825546444192367626398976058559939080111269329267794606997240867709926749298209065447060594111433376492992466091014151205761041641560987010864181430242108843103866542163871288435586169496997237194338036357956277679657752008896673332279988178400344156981072366942598577794870379074355606103180087098013618759102242413087146264433720267563176849490641846416334438306937344844316080915944719092353338003017704700399800753015692810537639763008582950697504497110936309465407809348467610483700014222608713993979893664372681676430254814094188969825314497352738959553591719864830890682899193093491780093431380553073889393989690925078147480167416235998401148039390228408120341795242660361227845500795834958650437037806675355425618936490730209395711872585135246381089026147283473598035227422587938982386338421632423242372274254164497204515830343434787224759562321527310073467896923810996042176135786168764903522577972706912714614487318561520441044381785305877562532050680904955126294201598220782773956155828483468794891917387597432584110948752879147362751459531773650628753410026150819123433542743167936660908872743100415514512175123228655990807031435718431467944240549076862934286259713208882467563878317306710029780411776430190988162322524714159286367979710555858643267050441437534404959035935448173706323103490096795291726707051341449762587797327131597354175672913680752492107164431783942581685337928870979772553317557624104549404387915514251902283202274424537574710571179473934199129712856478375164219483340669584358881891130564595305830505262142590814145712102805555791327320153942616107481848395286222098037728155304680248346797180920754370047855690808385882567138785309671549835811255844189943366624940451766853058829745141796242684569583970814905506740987601232690664388519225169558441302233713638560305086471466790320145483308683764980897494501391808639391453130062133511272321430366036460696636880696473131518590323736153254483461789594244987333950136749339605399947112308929103459283700918043433079033518642334588978905105818510369585855916150003881239886885513026208321862680452984638091191236195220387121411824055462269168899330884315454225884696596699807207982757726895817748624997829036436994640173552252823551963275958606266023015792979267084994259842793318627821006465983202588714955653336346405071786351595549509070585020302793051689912825320370215480871586367673672803136983274597749259983262234092955694337744487661908840819303435891238233013034727305608624056759879444079130634536249695659290837775193036116670898455962240221832067039180490707930840984395120942923929556696572562227121623997909903755664062882178558360827222513245782901475465543030283878564571608755726979990467762986206582278348193607435230726554961156642674006731894745496535215357816552404309004065227197946087301239681171797568369090602209770769815095720301835386295717304477905305975898934475988512545809202230728810114771251119044217804150006286164394034391243738422353928192990599465951586587784468070341070117102595379085658833268109173984798382639813150505454098465819132462862020804516328276862273616028986691570746864455486710231962467845893149458232954151995182995589983339504109310983764413827749764123238049318779736813706665425191398910489100533528728715916640537119497066786034421295933825319627763754483873557085354804595484558441858967169901473642934687699214223339601415144870416304477304910870261998402633492569922103101488779466783064847502902757464985334942216883597465008543231296126753862327008105212279495471038272864708731223353822402682395723052896170838723806048129849061420675968435531244983140969000843368828083880321877331194103615244364450866111022649808906024827435110372181761597657679460171421398610420251954964624343972514597498397892650000816272654845264564840743948924844126510658178659162279000324744943379308180854182323698431774924663386448958210340637961924879377917072974282029995840747559962085621486430730305431333852365707898271882678492950422664045367031112515410060344346810098886605222067019692505262950603688720902731521079185789653078230344054521183061166527600800748719110950988827149681804774028483404727536579060611479500781729418205581021865840200250006502878782505907636172033840882379038870755326161176511180009871370130440054344708850828055217795478524040966322896603691105975997677134556939704696920972722402309208568005041255731564675250515777299603195399737654817018937525609440881002637954945631457427799119302729161432828198538085797766916757759425239360208635668775230316586416099256401250639517595173297544286837188908731258667540386592015887677095792944676926214895464818205694348186845970466116979453811034641862543976970664508328901642518070547967737319006757137571910425671956796878674735934494146024223759672071176726641398297644884234432762765004402496839536031619258428557331244927654338218768445720682090633175880658290761105984118291600213092793439904495061412545325795113204264870019922294753622731021718756146997431801084633717028634540173511065783809986360453027347852341141529125308640093942186290021053986893559823955962690847688091904902545344886388123288262845647785699442291688313132480592683863840433054769926401736918663320680001058407818391069152225900172205056256607259766545480548838445428237538273245065824352147022406745180763341932373499830976066739871101304828977698607623772003770813290082831975472503354305158101270724803373366576890461107234002524423380977398937652557039584093667937370959941787089062995214438442458917775521385183904659086017364948681927082614486467047064927590120268850010371600499550740253696421631295427233557823085947844068728746602537958200815037944552133048706344464611700250499636409916872751150331005549182054688598080986713257102477640374275890148070349927250490365795267462067652934402518629825913839401946469252060466724311707323601680281989266715821864208749133179534820693224192442731648710993980446238378681784826433458224641389666079622763694639551633006830546324587232085432919726490290179928072722510403173519622340229271014016601445592112328029341622316206519543398943167555611695137058495289806217849632057274175098600420484488925864933805603658138607594854118503262379215942803971359298872442154217072669686810802586085833377226389688017914132345288579401340863050372260273461200510846119413689588242833147048385898112186158018590934451322400679503360672433128942733454180493581036676862418920768967510830571446022171255372707190000588501238675058146354653641724742511272802821474388949638434076116811198456215827767808783918338767907017271343842538570599460378750599729673226062711344128535931415407058336741843079412810359927410295349241236427656794812009972946263699930338872612021426571903136217306722116682341911986668259156585320066926251973670249098422959432030541799563773099072255440057527729400728377715337635156290438610088303864677284109975420520114022505803801764556515380597284153613922247793495930902869247015833046659525378874028229143167786950832659615561580842158881704691483483107626441390199078395007429418029847522642123230266175365024442270607126419646731776660024182226687442294727531623326529242986805335218358718181728837926464334913618410038821317060908199567427609731430582727881836525504458165068104852301447198436707731578591747453762528063788809983632662018390038750639075114417002807307122743589738924354684819195259114712701013801559958890681153581988926733794717029045776951600293983926182105776937208515552875444591041610943532962537228492061319485059241003318807778585915310530965493321786821972089513055151322037820441570666417985742448108246436346408087447967558176234422336748405594418533422786083134497450806834073338281213329489610731173782328616273322097166052213534137982402444446528026203622847840985091736789912723891731614066887738180574424624357017945202372809420478770063418521172858561120864701776377624466370931380577216076512700051808396338598522752288197892267616696540212215663244075174669997123201340155254507787843863557540970034790827736166264577339615311531296683393252601707760216737684248160403516820103040132231183897486426564341603555881653783441234863544423372407355194903978410099680284755813957475514828239747771289049765908329859204376418087717064560213156204057690933298127453181480837809592643504277411804422418977105415162002965370363890326950535765584069067984348357920696003972719933390001842287659620497186446576146705895114128520415745111043513052134811410625745323268833356657548889010443623447073373998413268149317925643423873141285502980373782847297300116567629740804863143515581195754077329101507450394901673591292950487593503895917072085908043726184730775216636931009557572644200945482515764711759286398916415633921314681254523853476952000133854348742541117740179148009037896272001983637360331942748136683247643129107992167858354209939458348416877463625427810063671308013862675424580029563527401561588343808450476360130826898159949669992171120428941250244165290664801588687638609927826327491750564461075113581416924679123737058524866349748479548480516432633404819471622990655251904917468111439741608452461245927995097843979500281851844332136994945729185212749916845942587307970743142803838996957822220567166416303522679614322329916062996665562356036976894577919329952647175796005295135452640913065603306542086359631903413807332963237951703483414033527398630717854983753564143615030577829366141864496709898410960264405088688212632045630107252237049825982960788271113938368464709381897311612668864140609538927007882829081213038369316643969350305861774132235088588696293609449864964143073708229845388374954909053951664852968417013060626883307887027673641548606465946138411723660367666516212080182000582332875444325820458263670367314099935528450009570967392130680695018510512027344021085492745009817525406035830822752537031599364962656511220918218315874588772006778924277482955307048986021414133323248037740814286379331067477401020220088740964580082217880451139223909949812899057828526987600463783984515192283391403805179889272062329758970656948806167563037187133929455750683767016723134560146194640008502253813031410514375129648284287624443376630287007710354620600182269004677203068377003982601714790630436067037251158452907382481943539349348108177843695685585517640188801843505463857876165994855985453674981067723579464949416502520944181488138548161882165260274748700600304477752506653333163871231839308760988722978924144833810398274445858570186550632260738020742518453925876011823152118363022869913407926383171863346943472853252769162059114621905552951715927329889936934710442319310989293738490409560670542720670687326832425605432197298860790232361622182169632749076607992256245417606445824550337938220506147280837584904368705487176626975270679044399107237110979118466035518840278918249325658712931370232841903572917842568192123314030549564742663313308129915303504773855985362142040711883596203514763594549903793297674269142874488481773388150199333811649996069089050228630191633515268301944953652106578901690275900202409689690853585176779868565411748567833866304685544437609451430732757167003165461751675986415185710196623104778026700321536156364230973678662562886374219272436505109292145854856234457749814213831569302157958921572097484781069183555755182348991727617009342794690656916581703144959807510129279608207495599761604686123491231859448728565757498577130510684883572729153033847631222428033110730166334713176400884147448504289194559365165960781606731269077043990821633221481475686091186907679856136426228865461292428802773620067486679878503139050425517388521317171479678642286446955899964563739345339038898021378154498627221064595698623213929794791119410598391694825497252932212492922869299665724617036901549915506045615412103936712321316206688375902472113464344379122961470909693098392193831846160401218354794212136776463365744018577891787214059891159616076678328073898795925951973465276821991967377572800791505663836598717326355876544759342447586959689476702589539050480731826789039718111369267680678552762503039318543172817741024347735943213301081277459733771176049025394862255269577204547021567311877148703260121653267694223444569427086466547839435912674114272987259102697123772251473738021431753846117985384369169978673216600171185064980871827818011458486498743254986805462528940766095071770115107765383481661050452994108152162108879611401601148927314515183189419893185068573546340680015162146701629988879193039818952587691456359563609765475649520916796534829939343672431201606486781439179661746228805506893661623930626148975794802930648306282463555500296253041389193489714418618671485656561124715256970067897869848580835394250585167654513948135875906832574430686838667984928180021090130561037633666707104251170738720127991441840947175311761222057412381401031971259266183977703319033312240306078985955907836368985486979046165703709782517311526904314036839501942739919386943150466408831152225712558805544286104582884847925848905749117604392666105914202526745600779331433572974497082678962994326225495106218588379123116843589342841953252770094077960305993572441754427473432600254231460035772994494231264492740366671035896541906097483448644348404630506162168662491338595114191030718028250557084162331475675273569226280658973344400794293425012608541774857169453536977958866404457418037623167217957032027455814241417500511856256892244669011785232197869739998784703658817489618203101177510747301385369879034081601250722406387868556528688289629157472181290183170226850632581610573043398261674323688684755647471315087089828609204194296636480027209125949665966916619497734944224955436080288230187257225089000823981575645746474690804513748363034763442962369979250236185131745982904850235746016272151408789486978048871720632809389129589425524164247437698044535752938229424385421659038979140858018670389838206002287734851900524045358163236690197718226920369970840183272462821625666759361538053681524515718426801084191107169325849659753424089591519492527968549623784290056960241304836382338276931542050518411294551936344646535790107779331107430457645469632807582592949729370248160017408866699504197362575658155505528519684955913366616311673448066784693895767069834080842660352728095270019626132142804605298667368809648425366379263642627631582767050952112211930766873167987979786979619740789742942211335594858910281188215321091794059884301020425850707887827759817020475463560452880895386816008190939883892016154639997208817828287301902804683018172715646881717759955087656243466414218306012847926324654387018544898897579818966638306232490284858017034667567199432248320945682520965751307486904032351462358855491576242654437292423690942123869422175985501083214253481311549701990210838064743992382653723578357154696327904359876439516876938419458777803497678913852258232970506715853989302688469114783028066681269706615904405355433274552183258038706915486153914281138006250367840844849390747424735828282039900696865978615946675366417617917127392543010063478808192455384775626505124672645584927372743264885548359663768595434904131286633331515726388790161915837578237345328797774612603363427926916417219052633475407482379160891537815347560668153587164631804782521401338260863346938335784559339637272760077158552737122736572447811565608085016857834522842182465599758058198234228828354655631335172274919721543024111442977459067693423140250685812931585634808430504612570210768243014834531675355621331901323525624255890373427477903343039296551729421164195184124438780056485186555957500827519396928467800183996065467732469732037613428379173269992107700768853043581708551926054240128600831659067685093197239361566777747314698398856828725053479006998470864355196044691987853556528563117434109057591602060338807226855486635381765361345046369713027397593047155707585587050825372758920499223368938760113457056745030562197182111107257008213110086185434502769314856128299689122467187276263136964772005772530091513005985843132338133364452195963645587706989124778057689673019194175768475074485593497274353296953943364371201248613723959486769030512708101586920252180934035923522919995882107538462351467543313258664100518428518706710290883998652160897578670753481996311979799022046816106142353641576621122999082430171338646727944976180612175309371239173619996736874408409412187449979879055745440155847112745691115992708525720047051568946854655169760809208064932450410010396218948849092746158858193174150737665032488005144357058753666506646630465727184197522607894364414893258963749398963128872688774621063790001615858039694639518317504555960884625243652687632618580334406278427597498869899589995764160459255865598116145264038533775232309873210997772061722396214886517152119980792017222666505184074639273692644431962869850134363157931853521743562588363785862931514722198768028941245271734749057314256053236467982462525775096419004475674409729910196063849879121391064536808963123933878555764124032075380810015888411710140602847479607597600950160551864465853620071348461140324752432933322886719290912087791181349576615862115774019553863191758966002855506396551920214664507987369173422122248595191300627386959378453684348777012230227776275273521393921743294553163928674878107269703211722047825290868836644587527574367169765206350347234681241373183967943867271353672823028368872663169797065933929344296867755015699218146637479388660251536126939877489552086420747191998977990367144874398239295150771885522152075035751505262150944270499514022410233305531896306645059726935493234981060796395781148431943491110775764119422747076428287751083654107267003786403909334330382649532452514867160298030504775012163680515603805832567519313671694573064001521096628217790310267524081150009980953303535016916294432944539345250823835357506555313218953046468667740146337711020240227960802386393351311801713644782662491957377976507919351196759089114136926361253608021940117465065154189111314344559412424280082627901829965327678763999070940874973969950049938709781689129678147556873379091231832580612943911823154933771444690463216392759338311421388486307420221853097276535174939452850531407731626899585434629547024670406487878483402472446008803919044906578680738819353401236646667478046347890629175416630161852300748791225391871963798257934269766164948254102023271431424670007526989638158171890078824608986239576134257663513859832765623551569878681741956090266943037586171791503735457800695127715044676198081659516107284907009975702456030840019764138388559606776945531861811944270172556432658955028725770570598348222414297165648035273368613278901374820882178442381397101837336509723991076755468623826340613914593298039804632524408991465307008022613087617816139089209549787300230309797567412102696209763040568457089130179924501517153727789247408829628492755113444931401889692250096877290787961786020296076839076707663297180551807118459825305869890047081573179610631508407487944707239180336585783875085625021584247858719119782835481540004551992252376552808537676215979324185465387622574184436754028323715389902358709037502322999101730280674680638710030994277274194850417415972402795964629968655114772694838363884219067006120301202546270943163696608793139045270983272914769019014956116424290259196857640104557849088694096368856043235814779007191239978401608633293228946893613715155926601530428653550475491888529471565390742214202993254945899519984741883360203526744250318756579482618573978108296801567656281296001219223612772542893618056623310002235949770741880202031855332551666295221832402759633144713383612156230285811032390329261620550437044737313272814989864483696553222930286244735980412383524285826845065101408656908784747521599149060413858805824969050136663622274152910489387482956113018195001211900937437082812323689045911674671415170686425094993064068831480461259879530297907171830563586942359757177932327631030697240209766921557151027055043172670461522058834867995916984019187616890239444136990384399890925570498108018442668396669615428982144555192859089905131725207378026513346984661224101637009738494371461211978726831602913606825184845258242865953683415620163732249978673565853679083416954513173822697815077770285361412827802004620242144872179346813970337737970351685964047101431697532942948433839088291472264313806398556031471149074377391008928983610216423397999928808413879066353540010986308828596910685259335538293126333205572518713753803773397026027710941453293663969935792293029053235887063989286986252614700628982752142970421692295531676328389744181440081360189344001188821259379066806692694096719851013937194257569938702161971953450048791420941047630407763397549347585003564055684898885780276416620229847893179631274990051882952852682500216466005553552017068814149504076236211341593790766506414444066670859560470265789762045239300000804864993356051395047177913834082685694404010392734714445908661303315722823759809055902467433127554387442267977683034188834049996185899544795210768868582222271004019013587145047639768500671701607377433140387451492355812806690041744162261473276002531324420530930938114799850639906549028105905739843131318627818740664940820671184586702311916018492722103729784933501215712858760454598371332071001138510139365505653426055847234810406338538320577538900721386486611822758364153653590586287425038806005487578642241817416388918605938039316928523109131553028083357508531254577748321793588194665866287120675503510143493187086054685220700296107068681929871430537911065628713705815907956666473590476531824663754372824356143006779097948814740573793446912701854223634487471157000365539973444882488484163376974312067024410337339293329015210560730815778413125512839777261295435391888660410245516058486258904928699035307015296194043293013619078777917347956109474782398931435545113696742730694497832091146907388904112154329633719185133075970832232075159935046061340625592284022621447768321322627710610511453399115989888825575111398150983398964097336631721325922320259680182291395714077542085134669892610310354818252650418992073391977367505591720250568236412442557110237322837800731248031997123130197816694204286324525894312354252352295908158820554817658966035369478264507081806025811935188309000766924563195298536101082069321834866503820143978519616137693856085797863405219504798162539243734211965053380926368416520710727361400491334912593466943701932943488502977028401926424833255717293659390147665363505743816604124098944275094158947100252952414382817848900959949940488058461491848483540100706570451947042236073357426422458599355134472073846349101672438847798800113862469912466457560013882050076197129090288101823678255987324876619781524670319015509250582182918385674832527140327803955766724148393158339394054654925660220063771819207144546332870612532607856954098291499740318583237545430921687380477891985257024954980072806481368207664357090456643058860743042411212349104053966405585411501787912878433978506873392501961424500419544746974458006627357256670409978853872729332077434158296462877708881407268200963029244390236983955417336166445001833638370946152398067928870888144776602981775010515715419315973322356268318155097257676620419305056502270151902863384401305284196965305240422471654837561496480061582734716335548133435377182748457669196343771510467389654002756780341366456172259075513443253443234701438811828558437500203427866602623414735829535899600024561416975442059301550072703174044283720765677563169161308214952637723407850747587193857017162290437085863416011951236929926144955864389993350086704444457797921165941045428995900667411987287892257772763324222391064756239797644079138540856107912286635534927760856101962466288483357325358214681120025669030670401880005964897095096119494960352669210423701369401032457856111035295348054453188496551789635051746047597668868146075691458089809772423746120356711942303397234861478181627920068043499648827922455479540024740179097002282649045877060976790311594509405090628837740016995520279450936141986650818119788589823963792205793400181325304766709214449100797313434489150479537078858819531727495649493340889687626731389438229473720996758248657035364988042459170445308624606449919713030106309864491612468927017397942486996764116233858435164837593293292787271764621677338898821467075017982045077954222734797702859002909820359993794432371424724598076145839262868300320695726112963374733353193689072434232833609853377455048631157122053638430225483508122828717116937483201112863498834265004942709076837036967116193877855431932860615478453592961313015891503605408049401521846550954586313377054190231029246351269184484128744881205012821172700328437922957066335064100833979794178345507305727444308091548621231700331938993316428105265866263526052702466915032092289641694483611881561392628297101347357636953416051125451470713585939784774627533030200095036861530068901102777010508525393145688257900620790308748489352890527638460964516469326799014433823873142953806640080974680766987376981597368023404675484764387818931629768495693371622547336750192611246060869453271043825928331448525002066675360620750686016272705586197082648230597038529208541064945285754759630453813488587146264056123815341717781927453003768577383596093850652852052718895681735042899325723266059351916496509568435660364649943084123925887274265438357518323936424930081602606582545129569929006656397070905635837689538627769010141010822885951707739235455626237344400677336222990673277186080623780202460768172351052496381029147884334241358275378161994951806209391048881090625773529028826625833724970114110612547402772916690477581777622550106482661193515696527818393764521864999669395675958463238694213167684252772641522638534351652836432525003831686482559111473234822342877385849549760300425113768806285164625444777815510432494924827063482809462984386204220253490557930155698511646978758149716834136870757542264811267299480275783604260445446825194220985583561674874664702439215689645259185663150497646987319790203968239117459556731619082444236657421669181703227813466438474146346501799886351237618076943938300505501058223029023100083655341467137365071243049230056213706333291451042789089339495802530075783946624273177433145989560969898221108790273773890501570292255939827259058021827282632110809574322058179179088858146366666529739924116155484633721610956044268671071299217506431219155289529186078867930141257316451649871986303611058152160746250189618438110422154284273023149752798742098800306750582874625603978160975394924429028621356673723371378599545160836811282204059167656236748726162477114212157278843445278758806974977866199677164855245972410610673004190871564480348122132491112106765231294059349892004748749027113151662915031609467832909828126101072571234948404433170826279339238382841277100147751334812664648270537630527604366001533684705997181901585374055646931908657659443832593105989280724662503470771074167233194274073377718972620931929516230943849632156526130022814368502093186281183008506175935606308037305240103306988348182858359717770601076807755417109872540922318066483544493382763101286874112257823179478269092300927657679706279588797377568426811607208287141745851007291308547308211458321084281912863560533795237065793332782989582162089460682172767992546546016391306214078478451522986362261983857772122459860725034176147442078373167033325703180116958986742762841573881999396121766529715100001290044532380726135099381962885962894059439253825398161884161779144497729581668524760572328011045110646012354396664242946206858367719948872919028327789852295318290732907651304327567562993158900319869620299308572248292994418906950070493711745168822690140941062082913688265526255694338725432551285189347512016388916432572381526998006037956127288775131265122151764606753551657641251558266821693370370086201355407308695966364267658523802925235138569094107736240182874145854832603140317351579250786007474912373099582126457460219023478946242565229884396120272686006341926171864134354020755927713226719641597181790206407165527824704850148773514941573001833883924505065872044344017704124199327497539380617903543965700542728953751329194164179038288595635101689781506155005586526517736797946141246957044269584042804752671288716884103511296606014566826310258273757973809237003019642164844428765541036211453209529056832068329716247621472340890961215401191967372055783330047041946990110787650602387355797120508084183291331296908512022258728835162202192461024895173738331150217640386676643205854854173886062340197499986482532072699727695811296056440589709066755706890586306060974481211114486294028288176233340989469443612536310051377664228137924009089656154298067974449393463019895014818533788846913628438727960678748636474785559968850985759398450243574391665981688419255054900834174865530780608464270874935766901791358075063954682945551292486516505826551167535421810562483113297580882924148889925665909399988277026641979367049676858059482801490510371408038195575729795043366110887282032714456230385977486210995416919270646416756719536309517336277806829125620110127692465448236001062327646645288672400973070560139973516656063971943827688082704381956537554616934428375326153078589236092084947815914852537451439375098197852233617927430677528119245568863911304540406618071473435966893072219307136095440388395916459293825090743320637116512696927766460100780837270665545075144110542271900412423822221450114715974784800591050639770659040274927088973708240279008808712895686626580996367565299792164517681891299965734870326510033515240469395446493455824574163906572414653045035428404158796203786922351880667703417777289603558001615040772357519181665690845793003051416752066360728241952429795273641091247447557546723344702308929140382183344801941098912010048875539136659648617306832794666335258776767755306882562278442385036939431599477669948118422277277140490791859614693214810470578696170308157672229847747755257342424854634867472801890011451144625018670679696379835426298663370496819057652487872833443381351764925402308691278987074159155904453365845639437906102849508084006823215586327801518805474051668763848237758145169992344787995312049461122393155854014670573832737767160548828871486879511752109761513094314138253287382893710021779222298005587371622626908224282673081495329297091121045024711795507093342059411113874048096105495409798868732057138768213457444355649426687272023487646928688390107895938124588563596594492106745512063535697545374158086722417552088523822323688381042610900155963522887806780019633857646685445052886516252713181751963177945752313049285274769623536905316430079991693963805717959344200782461000849813542370531943573077772933283202529927009228082888940280696666219818635922632483619443928130219446608715228379808559448271049192399511776561582908889681025405318466831393100728008631796476918104938906318040966828697439850769891325711711423165414615514394660645354494049724282682104878530231797582106306561505453583692174657218210654167879829899111583890950375322621976462789052924467596714698582354454694647349643569808146339345592571675533772965983301939058642399989143859474426562631719703953273829792974093371854754307912352847635614496578640689699455776235694890930539417650393502548038659149604142182521002603321762189959982450639215183385393839456632122776467521651315861080959393307060373595534959054706048821209776120391451071710203606050335773392442307714803919247826873149339561219335940202283994000975499511741604145846854508005624951498735316400749208258784294102421380904505652428153221247813086671759964933202255731234152488936751090927502730663741599424473263059111441279613728041194784807444034839915312849401148683734542692506584103318274806977940192895047493638848268907685021181417573482062456140455115512824102013410967226577050195052089380148443709311554720734260415943268814447008796021471884955455094786366238290789681760941375557075889958821632991273280214550442246894619452135421924508043866622206312552426279971239814971161530841841649725583574711235575520892034103851474866600477577704270716142711587762760770964658594096193816331807872499323248032399365285194287127220369736153715144554130877813865893196473797252288732178532629844070709929709295205918759467180076780854112675278835013432438870605158068453008940785316552918067250086717515874308723975882613762994660261583018188142254914514901748596389267527600090854561697525155664713853139765639426397768248539324078678310321319737902212718237550332307377772426460651219383635839811157066446830702717564972246287909088978079284133504604479934678779815943282920260893343162339406490258528821947741967305635945353351450106405047189866163709046101413640280422865433416833640190156149892441911852757610132217872004446881467405305958687427294243096300932692598874747533418693332651199510793426167213944999855586765426566043751577528318222704233077347276169932661957448712560696563386839774725278793757693783854274771973539360340709194939091083792108408427124778882424538225654723626718618193234039527204111358932497158821325509862283604310603349425555097444832078846525659673022456118892517410611452410071242480061940201476896694102141069661724892645517417403777112399371364932083779482871248674278091109980837533649849273185912333100761301046587565691144010001810596350584115691891487423033548597940198123237394038281916166273758377469841058337582534303726788863099945278003986765126570744315973952461763202042385307051720483935600489164540954257821025033521127071359324550722480380068642793371586309656415635793273381967101547707391370061714250280746418565919944652285152382923476471363319476222840131938839989838552263125836872457489795280632835087590167390413415687124326590908982079128435764993928136647797060802988240591924958176142076465771570585287652179115233292612969752057632381149208321619416682841197939825609016393157789614512054004440430992781061573955253230029555670817856102879038834305172104574444093730830913389027331497176741384522860806456892472220497319968560175413669416576694300861773372919389436514437569104627733459679407462721356220340356566893024046454579753965851809220871162896228974032112309272675076036316233490072433171320717907025473247708605213399843830059128984659394713411840692187325169397421164853200465849646745543586890147826563671315320701389044032435443659084678315955751187478477158954523650963725332473703240973795235030158831630970349735773585312544007728388187650352886830122389817465449933338451376171051119387582253351135238623144684104019197641410235560314203627425747436529613051167473907226466373080215406757384752173823358220810512901926225023840185283559395338523576140140268361078253790252047471413735295136885620488844359814075759786366075739455711692200720173529288958526783416193580457145358566063019702926963562041122780532225070160823047955409193510187089094672550432839530753344772157006541643064758554814805161466854337647980624338214434139362486438073650553666368486280484474071248043134196970148489995914426803343399259224182201575791127345822394109874647701086511339331777540075706923364283983848283913857571241766472927336413698018712788305426683728755149937488079706896449993076078942282037486728913531462331374326705624783534118346537503403397271103179316758492970059775923421417015476077013262135056174196076681781991489137615334210581659618820639661719868726300425455300961512631429781140009345859040043290492439431198173616149120844577319195305799147334312386457095119838091370324953601019228795213776972636704760830936768329153396692351383728821826939130846633930263367205903945376317992255435830935117133448912204464218241709345043304560789249992893933142575919324275104573054473100339428526684457213829237751497729136054367208147958261070040736960223745063346744583674417623298537803290652212328366289187533428793015355439783418767768362055751167297771917059270045535531034998580003462570342087741011957081956409603274896586625312961822011761865900113091644672201357542990060404445583512172072268115147582732175571515696002767030330822528560651738649856783268018022398921607021751941447994916179476630504300287843553847746727134282998438045295271757508358233068724503174183522716314077348923043539065903709263803347728787109281613560001808534936305798262824144287614469950263689778711180672576798166915120045549194797054379073469778133405043108724911692264711251863492513672262379017073317620023658067410386167244122705051570591902357032781274752509154284448180711015978618878982271484238127192445476805537634286616271819830385446329684255874292007892957279406724104338458068086504564715100735860744435998432050463220746535513807471535002279442473301716941546640660761281508080381433342649106815501902873354730586670567976591429503789665800359703599775134980060538464573820329204682544976955509000111546370029688219938823762363950400556272469060846307719071980303626772685652533501904393995233798552033740252868990314962474944595676957062698460142480904822108260769456578048891095396047180960098958153286419732374620723517164495740325819338022425747525434157245863742396382632254854965679748899331521193557290371605251438352592065221854302113314351976562050229156170021854358923078859327795969485507920054636814128993102253190774400324123586052592058587069149916285242874320531645232562363726742011228246662540740813477527554603229061765137174513721346540874044242668544536972043423373779506253821394727994887516988397659568636400130150999515280284926285126837462441987539888509616774816066436751177922184430579128511712911479799947330030869306397088161916027713674408256356356676345932358572945155453418167865100914193914317058933584786102449600003573514600478184836840357161433978411105186630171846244161612359051022630864841450365741778365723352503056883044638107165369265399179966390807718593278523621542335306969476108732895694038005880863627554812093386517366146838516384810574250663440056733531590408722900082698136509085551550790236194395803387133548142968420447604980362250571706038581947308874834011110666325975599791296134020590640348056887150773733470818237312414014569939207463389538920377671775717580898152912274480434772939935171878683608631259932261754431049885967560753684005841987013424040626816164494556423937807685022373957114197622235475654840267037519583906914084499586411392301911093128750082051904707919354363466107581739889009134091661637563584412628167092586558903152613994164355476250341277540440413245762459931643343411454459607576880616556815036771702579053421457813423320748823403468490507276718950575191772778910384756077244073315986848611389926429271242321051618202320714576060461547080838255563742379888404271940346346220234655341832674732362209121619123167315882786235243517484766478679739945807269420802623370978148887780445275323672394206744461841710146834821629607425768183590217390041827439675426476974923885110770462688174949710932394947441681837623210439583178664696905582187594042901795937231922596127966573225267148603955563970174013584190753858937843821745992628218809672263110000591672207553800022907297153613861834528855821350123534269086448677208454990537565105795954402589538986661316343579455906467540883513623133189466090948093457503087701302927971284634671279142236411014558203068119587419750056364364015722658815213120058503716613228917954148580427559447996251277060722931792616867206121883867504110180545410316894095700488367640132340966223571300755878003775631824592406238602706987522779049773051028603272842153456313550565284552280310855296746025979965637487489826583395766715871333906560589253360256663822752634140697631122742748548096664152890885292679784581711348307233450247414336078461325379036155398232281627183233848299946992722273127498502981711513579950771955839185225960862234928123965116058210053727857432222772102694980804783890767248588709700722950745837703510360538955088775585567504084238252524859074059327068027442697662170290446954420102569885164861830994064029427810443744714510619163307559626752353288086879949565991307147725161385817615054189951106750497014197518732854871426276150549832438955226325109050606435838460897124748374962057176821596227804341957686640094916742854801743101932014732012591539388256273981358505181377616562667983965322708037693724799327506525812036879081999958931316784822632083694166382246585233949989600530973595102628118671109420115862892708135883880141453165199887083578636333819425872552985292241132162464529888235195103480982182072900668624662569461857300282222152022270346665745654395718071116908280680863159386345805758436215218630545840114568428054545658817744684325470735093661887892128773384881845400373407040543411998620028203932649481109803719553230449982011736995991142047730259944671066630946350664691764648808697548032098384766695102349593224867144915283180431927366111464109394179187319282478324901769314849121249019846834657335826309123197437179790869583151629190427769874608014086156870195816420475206957157138974241213762724730106908816959269313373487163153942513266566737686351028627630221432509191125474386585756889409041920879370516393380615813799791711518947268176769907838601898931067286200209190458941950910019776196981057796332757816710736788067928112953325372628679245972524243443225715831031013056676779182749922415223238500964037307487309604483507176893229783875011841253447012426297531240612969848234982408395377741970503625370854891086982822278426167220842015598245886053724669770208628587453352230727681030934250345150770212153636982636622791762077178346668628492770155543206735158519684871997373188208229010221878403388055570564370150052674448417248430694707146277828369317245135077779720695437409248311547521840333441143913843113454763991656169448517357035018209340157262747491211436104432935026167981677335082147471012581706712236032599085015577400314879445048515923195000631884214232858312246962327080050256319351327319024018909175990939659337783874106699977908950612570075981110627962288227368861315217644456202911240762013733682318610959268444216683049354772456297453865759993293650213624123208570807113787840038580009015311475184035791383005246343761877133632707150032478024775312722409895730693886798221515650567887661902255896804122919962701175981059858602782304065276143800137989206225251102003176203204028616667479770901449282136560691230826726488278019106307605426348504703647597337459126075310311223726901466712452790372682845830222349505027594089614516436155014620275967069662740054784756078390651847451971514937664285772266687089091690689809104985965426113533026224606720534154588240801834063285797117134916061253143719920257314256742012647301209070985902543807635191401906955889662131267823854448654425004238262209848035033534919756888921078810712685153148158370155720371842463392553536617149511700963523459917371923079209011396874506263363332975683227538261091259679131465138001118472185004723329830956214588623090252988263327251053726664632610255265103295383014226628266940909493494174197425512856554224777246033620032804466609473098135898327865257818220335053498533388390935462511674646492278823018177557205078620619545668890260231011760281442728363205697525478653677134569362904081580821261321180004238550107459107136668971895560130763414229177605219535756614422732500388158416085711949893594449987753101377982361177466626238950297389114591045889709038942239289181990499830555173260842865542857059882462510806430870943983961995985075686800352226082769414765781435183432554548214980499893500492103580074239602613583364665219768873554251313930696650288338123377414543015116421692782706852893818270865233776584973492955297515245788799917494661851059699219203339664934585491720172604413237521121152514232760937518044694969029609949996449822896581450693519517124371981422788712169394183885345592547391633577587616156929914432685716331291242546320722538514227270203747158106863924403355692100404868435314977022426835552139254688658080090445728540246217303565276262423452988507164463590942975121515713991533241336491590550492388349817913472431786049616712576021135025380546721296818141033589635140939897433162946338358724496678477819843071410041678574763512125927865191150010177866940767235973747138237524572740534483248327254794241114420791196034830465393496600152465623506168495172075238257880592522755456790919204602589932786834741101415975933216136115727497244266039106088625227863331684977241311483681742167086491424392065069992766941010774035077144878012161989218401020088476123448708537733647529282242697138727393583634091729827219442792686793054597777851281581375197499334813589786299305651448274209039996641675044406057296352320334644882261007542897825541311005219551186327386587897425831942938224277794529362929615649145639977606377734060426339917035720212388288095194309409821694571436770814367987875378662427855293811306834087502219505345952576974536648816464403942722805369075472226632516062791723389465451811518199573276043338184784115480523944358990839648251824626250685850355771595023626537323013809633692361313525454913110964898091598596390999331989946062215543218970474658062134947681282853825089403682730640002182695460073260937246935975203865287018614132502654315466183206304437766837705261009907555612108681675041417906092650984745164762908413073795977739340009461977740426588123620446874026518100819539090926330434480546951617706527621144601943492500812057943331070236644597832824791638945745148281745350837440637572863849174913680382060398058597637228424067162731140852699471109819958682358648558426364274814375299922304167465820010949727233000858331229648129193193884974238244889198251945484957749791680523247092760639029648950386417851373297740790304201077186334073501451935810861984779921747306477819315618503075576390100537520429674894819922944357427463152800200632926975587058863036108976942341228157466103730951911304889853935306636103112693698566307135674926587321390604154298550715016276202649109023572754461217001630535576584995957657766569637667019616159341553981329444303328448311393122553113176828255401437362338894946317841576856630437657630513405978676877998608138448703586044360223964707528424228039333419510626151494920277016718241429265079757255696948733849543783170143374821950340712080976592998388408834623810163396884364162346961009928945398245748865396278419602955654488650412016172081413834097927184462385155366312030422521349481827778718728016822386703097441358399623235812130940310680649712484662484668255613322087930987916101646019709051475502351546070894818031928709397992097900491671447611689074545653280324146164012343332546191849350126605379728447056799200907371146024990909280705021832139786445888087016776818286229740586061585118465901301622128872154976411753717152560127287743077373340379561739984086366751666961307253230241057581653073812406256142102994833118600078262995407707149891185482392925572896988286416689393900578353172591758382334713425549239293722316067914873309789989499277254917548313138557220227380589643564365890079351479374727513156649030948603829848584122964671739741946963861963364692689618080236586146783785565521008261269381502014050906449806199230743851593530512877048432283335490475290137596133258560566458184776985877111892750124915593447974447472559627846221871502436693149792154355033387037559579486125617603352548117747964256317197439943995170672522990902830404233763076625295306697556014213122536707396028436265620534641510165109369980017373023461010041688313336263898281736815527715892889609528818535320416932884441709122059260998301248810333864711820108505958190831307067507846266502651961819683978233605488155161404464633251449451034133186434998789220140618771560667575257744811016845926511646117002447989111385264259038943274603968561832029081298600102520506482989900171802356114986873198260605020755961630224752602682706209614404054855143158302680290080190818259755301217879002637242751193728689950291775610739413964502520741989950545005389819827152187425781238633862533306322804087880888535983205791336772098257569392791926831079996020410451757175283402260820319985892857712592030912938553181566915808487117030663213699635448532722468102984556895294982723220461616849024889857789561043711484393011068202916673102846609477860825497941091376709348290304752877297119993138196383198763840900383562674307960580877218470738167711982119382370192052829905094454084665398454692601167340928292270881132276158289664075586424763828694969675344074623881709305891601156237396209421884186239468516510988274654780202492346224191084781356652507732410753006666562577681464262017675069569328586005945377659797678054748990361012562201180035941861636563952841853035390606776626651967596906309124654088810314461035001219072957164353223483383339503737760113883993814936166289956443376653588986477675762856484360163861551562743373776942808143522948371288603763271161063168928053769104887660243310563272150916766878206910387375395536292873993381804675689734756956752059126311226632974573632995248846772029375438092176838343880650816105002297110673966276576314781302882548887476176526333446583647563848427179793084307669887917162742024987467159065789692703009908415456473048925863982110799895118830435142199742309982306766085925762640160746086950057512946431379892306645087070393641392000616565785793061059651308688130875847419099008788066383410061761253693565389780705535797425468893672020225649749610479789242682883319613099640148572118534776140715344405806371178554700464712320732462898249855528450751972060797614930125502324580926504354904765585705869325870815222458441495904876523830752744665755799056977745380058883496836390978516851464007742447144536162021367348104396220111212720587514034577761308375928097241282315832157276628011556156413094156756980734729840574937091526859373452338295504231708615016417314411116230218829218412177517690155621119863670462355461191994152022892883211207502247550929364461085535551669512013402548368788116698694316319377567994877811774459972470478273808651234444514884039564150642222924319368754853145345845452131434832943350201303314481275258707138607713748328058324150106569399390506867243263589659776414148976347780256141091015466686092575479697566808881669497208265138623438623923176519679997882312429517896981539932477598954636596981149895015384145033332781096813674950578593885040616711244743667443981984429997684680205703032548573626789479191145340347352742487822506334145357582242164489762533545434727750851768012382891158504991767626293644524876608571380742686996164989717706096861121657597793473596122775605689347880730214924710247337007928164216451548544923534442705774097817386377137252162557153442300589288927566843806117073898890366171031507397197298851313754944006779043299120436586830843295824601727322724891381813308289335326019695438953881469308060064332208658011421114497898577444621352345245260985455205902221906583749079524599339653350726683317049655915568506122062759448233615038550520833554568033500908570181976684657998238560707449269123764162302846257919708986323872814853660183790431234373581710646853127989327263290043226859584681818510872736283357661134335689601811001866813686390844198413480776176636522017034006444095328752777705449334154669060593441182140627644890469633466095785987307218877740996033679374694609550533510246687318291477719464535544097765459471218849037107922810675573528896979579137430948284509709600474202479519628774183810478702126968653547583852741296440375306532782713515062811743374767435426737610800352572200810848657948352074811252877168436753904076015401629346379349972348339421327672005063361583684524158016921348799468507326921342824136484536330626256222321708871866153517432389185024065718259670856412865385742191162505388719882840098861346063631760857115129652132744072005468128674057955229144852966496551706581457407163570302235576240962923062865038262017518692823427865182542297301547378406735695706427936099478075247793168159845321730495373226710955310255192836810084343991764311784294272649938622391210052461192095608100148471298397453438422943134011473892863022135071273439947668470579046353876924119616844442824019754509311589870763495091643520292294504692584728118613634501004870206268293282356341558453232027308152250249649364317560921391676525810431590147526164487439423572862266381662381398748831395649081541000569349210636220703501861453705134668181373724724106709367170030069842177843905527326828210575052668893441842165596385732188004549855431439459193440716699458445680127499182598696994950975976078660126713360471471638771669791236477226396493909901751062719968304947767305922168399940795345452232007255789424659113117102543876332612966472694734238256108321169189893266818321080722079286991312732661071023767995717090323238504413828774434478171029965137345962845032576981130999393216623328652963503215061949585696752760651542410361824349256249673275700615056463474165571083299099733039822566518800331824506563826944324910669127183918390426143825737967852497504089426977457884880537167896158660694093457442636387792110268636756341761372630142959753627475553210698325447346696370871452492034441344897988017906723198274054416038410793084857622459494816463898278955182812507839531730062589497064100692366172076153538727752165581144011078043558017814170205712341960201042721090515239762901797707630536612856052739462236727132946787296784470212398661733474227074566506462616468945441110627838602211631040141340342293172046626243774741593976966954924858750679759943495867633950065254157276235015723735590869005510607603117258473262673876605743134901101631170599560583519704730649587432022976373559672119704344485103297385324709845838948375855167981496808122769910431737217990119866790607500074135888747652381599708826095780274665312097796659413343626666051377742363689622133911738950116280731620804644512798137602327346699830025752420283070494011481937163528238426047800731182855941691574699716004343735400576953965983845023041867407196227688734549112643300125426587616550608312652602552571400557158512663319460041565628636355438254192782544995351507195797100210012300519377052692589413749231643556991374012734050056058250526400134733452897506275346052392143662892969577943029303820994180136962335265422692121765563319442240038290162950665873142010999377493419160468909818740282505667667871264832563134653404331290677503821797344141867205729761398959289809761719686905296326976640849955371511274335119757965507574388216628782162786825730853937212666871415891891435314785388135774108418797105250097516358344935755245251693035779427461532686421232853852374712310459316241900304528544862585449536384897050877225930303593199325044600784906229931619395563087218355967644636141143138265717181621068628438692983310913043024103366523269358245692623721303239226334423965015772529455607193171979804714073475384985807041274541061343540198455138919814462949310978752523615112298621655944980796890223409401786527352592864547516529759331911656112984221575922573966876380252216670927817702015964496259482797515369812372029169293345254327456177855490429648332721998528498861299793372681191811803915378936345122819609434212926046478908581774193306980644103533600011314662867038352951100777614543580803775963593968664268367287405653980281800533464592252799388407127639080097563080309153829193065069353986851542930940679541968388450246016920713077745081226434519747857128800167246142645348428868488105666907786674831437733545742135198490291321697740338000111642322743708389842532083852644320140537457928690625905940853347973734716053659528029449946599884665762147132940176157410708309216516414153042224289540560668928637724227627414763735324706597552967252030310135271593015975640280256534665565051770454030992825855560309405458882701632636568935997411498795592261443287798036465869291615929012369779262388936684200738594729722217192505850904996969663637151815459907829514853496048440280923557134172951972210820040315754255141784352381745715217453708063799497905996284271284552450597266462193701569964011355250574502562787512049867271510853296616383732049149666963322570720429515426045615258079748178750332584076190533621293046548027102244494816108504342368622755937325600295829678584153044195196889778940992788949134429903199841790571464348726911929421340504573067300624042440008994582863753251321493710168545016454133496743292176103797189675962329756494968412462071419604027554935760193877217960990016754253815532899583819956022645631845186212175503649517929586890105037747061367035088654751370205136897577537144172868611782859126857430202788104926056170856351308163668936765761066146573692999030394867825142765783663328410130803908835480363054637089105893477007073920385221042368443131985583498630447613139710038193041152068766272163122973111155585142337580493243799357241888824816119842740373147951881384593708516931190190936204421198225154571147608872553502110276148048956362331071998479167836255474968747297887887742899743827477462692342528109519150815265630256029629754345280513966257189540103692373828192671509172351361239360685248461833264489784968334891394996273353546316730207089750438479545577199892000979090909564549221353406370066304607257057297479134401828760730364738347339240869796691066689925084457483074894805284946084860987168426427054360054353751245716041560384321808485535819522469591411156100512545963971979548440702268466351718727890191259536422640939261838781423334303075780355848474552315465759016245848269533789385025147934112234206078234268912133535707337287856391266608404938981444185875731942823371165123147092057679910531222106539676531929587222831589003951842927081875739668210943194009304422458812112291308544627438348451311926220469254295688637661618321584199081572011539343400240016137674161987103434736419298782465145176079091142737112974908899080942558957430379253416385207908539916730628907731861014136028444700175891301516098651808988529136161222897744079719478627706561815778869133343178804591195389195534556972521615928013615498098237128964496080232884789215171326876451633134406431219206386590462024969822564761958313706578868448369388240424819846403262597532055503634357994690016711747572673380289948041768330223270615089681139890494558867940309186714538373615083107533572313595842247118881898106903766876682191658915032982143982514093319659928411961780558780362912457737540976654234091190675772500365402646312854999926562162101166178061281420329221111572184413645231348708024253317500857192034954141647765404643137493653407165306100728277758219891054101779883295736488465561218773096807084248771801266608521653921669550631752942256088467912770536135981243062070356174773509413548238024917206728959477011989108111562006209232198508486441243047977111302928829541126920378246763083017919343808648184476331165388780608410830543837858003653506003858216812294010119653361321969502710713573839677800460978910720065776497964297121277386317642343583157232461762736903057876140648189603200678479630909645378683495830937363283749403004105284538441334065580202144739944702071803564310538957632790570986338576866030534870584749886732970596161295333716238852130337551124611394273696013605093042254241584828964417352414375961858165360755074385045737774117014138497877008878747070920126243764838550901385287127466557347404848066678491092448180461289183504427398029737134406897055159339243143428763361856708487046473130444226142379806890676803460172519439296752167348106623374477417529497288408599421838043192793475709193391102645878448866737990755268653952810314140946727901361009860838135435169226122042257204105824088168606513217494343730443382679364592454431432789354740180814016425509144223869219879913105571724707164299390546763874779561816887423869093754077230380278395230291592579753676375014601705494970977457854154813367872724328816803160768112028473234405700370552817144149027086809612724910324681477338739508833422038551187844945092481185517587341053067089459180205440932212266177973793287803360522055464511401766555530343710416563574996310839255951997858142963642301586805492872510294961121331319476982687582735979190984164929994542464281858321381877815388070294000934143106883402878302181117892120381834816336839487511797057552674842229725868510923513753125724720496845031043787860579091928102867783188129389264737224988000629188841034436812342594784371252007893840930555118718429668762283483678038401704855866561316219277943217072179435916420229626207034440386947760002831752786553485958109527507962066673155228610414734837951577130873385276626547062016512775129397702880487051542314676362226373531313495585021832504201178404950456056040432783999468687804102231443644228440267500016406807848528473738777196506160889908323419277785544487851642942751678243344718690923813532916769780879893816419125792663302696433591993484478793666240263179766686773756865490588587301467879199643767261861645671159700623037725763717346504535378939709385945147000001754482803926863756778971286864117649521848150254457585175356348848660754781327136979635996215957423193323979108109206133187719632194641229641117555689305700089036656077937576235589135040038325805466853321364662006155451067713777743788849106073930556916874022829750267006927110242448623031121830380195129382517737900048760221223743145261750772114501016892633234622225438943164360777526220697623501912892884697797656154221083324076028496931734453493196139033930563225438797006053885621252871757918321651666999363952868898874874249003413561734822612762051463296559294052700005131825768622936373910872755613540427906773739638650385314676475429351532351543511016815988947648003425486893589534724838284951087414611779360262550173584074389405610200945563978620635903229509285373501789249767909948453377838052210871030333644848758692363774792446379613582811393569014618024260224926383462307264214819166418581679586442386868410164666880612948153899064025157625847352495283122852687881261457685786261277085011968833719604980510121431287758955577844786887396367877129493259551182526698129425256799881070097487690943759061704544512241567889422381794669579338596756897870720534935370094008667289318226095375431459736205556385682935066637083692612464027057703515940009087754473821282272432001566601595233957431385310701249094702628143760074304213871800729803206395541929938949498014959774526575477644818655668864012945273178195642421589973012922298331350033602874519436519377315068515026687170523576287116199813792130687260360451371556521369218308176545493593516669601355882317824327029217925718611794423756762702758018654271746051210265992446301210688178071424138846670126608129551254767688768505868213247821624209724540104323292882606967597703931508556098473912299569730810890757404250075984877937946101713339304272570166834009945138147556612741714447834027843695223375401211653112417453940869587937786867797465431843165011632256109415499149729233615130208873695388726205287408838839347324672729540293722616313818265073752524566973346662924130422992665718720930098686958293794642507889793508428005747107172340254308793489616312413137048407387211318416882774236616999746848189482931159578221678661491284928511857476898228759570097953216740475533781413857494979044365036992587910583896461510105363348114913971639232197788697708426924022949244504182194670131945763309748720481026231316852442970571743856478535671333130639703113115914278313549462215217958368557715857545119985873006185235238520144742055681468566377311301455934071567271714853291766476301668861398118896823199676073346901843174509768524035677868316915000119455213338945549478240719340680595758542621457332261462431017713476234932154557507081214007670491389885119715069968595805513742573583974920135226487584151342079163685134669553205818328874722605445839218091712746179502444898498852122478968585192909302468276781437830649174773573655250126253019141369529345137692735070648373521459253198271977855398019650937440249422579204322273118319543745347005110983543495984839042974016762613910830159778071992411485901126604678571157940292593108973931049015533539123557438162998435234830893827225354114767695388565810136182516458258209266744042842965177294212228370411611194267771138845739832526341917267889271887107173842256624644806785294669737154653283823676724460257555477309254002942506313725600661911361495308251365221888204013356967941226376861987907953636167496171713279896860440260925765575127595838321393251288843987112681951850634890819087688480376667608361877481149617561171982041716357863391295838872824346115919086050242801709295978064186480716021350952427079266207837672309922180937214705413065207475702537622467898038109420203240023746879589622113118262550023256600773597523691476501153788020584914462520900167246227964543337455012147749615047760530855457870017352504854770274505437960654811456768389451777551986415066377816755408787694062559606175674877605214994018803777960128203027522371226534630267994263993245164276288359806652346633096319631738463688204511822541001018778091369381013118505306508795453788712087722793049334436165411705338241891328035013783884264143714050745026053557483969446201731027928435663332101385650606346489137080740695459695653556251292625282288246392162004273904946961710500485378658518826672054945225393256842023656358905476902320964776886203919014312044542087187067474540809064943115852095334518107927103318285218115026725752098467351777997368894398492417962740485593134994234613178367538463946052502124734464565528448515439501266370041452030228305345530297798165119581486930608172265920149497905761043666673867996994158823701826567479904280826679317411974621187180667436105467796644520395347196114088197772872900324466593786540528512599897012739654063938474613240454038701001641220668135312751300717944037704051795840500353132059927442434894267756203114671601397483672647999072620652190806708746711003165356636322099305592928649662027288549598813621696563960670222173032870297732574303585611667789430871714702229196136949370309390487605890950016708874435606215895463909502839088450330256613871641244505540807290555999028114135173307150003308832723144955465114080161058773022109403894769420293433333125359757618939655027727908473838609271369403908949571095967514765956407594353239050158931885554017665275190471074748954047138064688821488645907394051512421482450185312538731471319465637699962375721658069736424243886282675338278143576914778346523784270541796344240049401917907478994967832532932613411733694343626808088144309397351537434003915112092870129703445321406696124711879144825162638995712521698381917110165045803093243318782909912481024671272793578821410027090138104557886956740581346723403675200451945429797974973546154474284001634651175419940608601655031320254913045129092667280336822530431366222817905705772864277019224003175089164114559898883018008431098691881898939529606131700117488895390230763826819744575062792212925771261591521032724508820824355920376904885290647752481657006752569866944135928139446781187010807340896976575542061206123373957861261207024697594510076189080055697869888021330896295973943891765384727344696940610775857494329493063866419036578737744096784416801161194922887026930129773028483741280165874844124601288767701260723896717836847195076851278680403894161049280449122708641937767283608085237819012357771013162556425031305718031447947154107812188269701540415226065967828873242490909326854052555861812646761516509421718769271985367702496227353723546774839164094808972810049590670066006551833619855885143212843647138301927779076200245852822700536516968611761535669561487422153587025334644278058453593515835822073101662720315093808429728046245916699555016300640283639209859528691138465191020308367543235931751086204858156898076343390116227462428650221837605053019328725607216808999858491752990231342437346665313912749665062881961416926277025797835097849684490387345675368512659889775187213940806386992940377801209422539053522883273110978722011537143262528904571923931297885852332561288619547828008003887923770643224970649722945248048288210585791170041078358353615326114160417821339752083012205722799606765070961730548229617229100324070683586238086269107060693601990749992837735260760327543761829403872563182429453603735623027212004406818372313206247203419760667950852070497698792290108682839320622462573754792141395912687451580390356442537702514433441082999041084568844308235097825707146897973923681548464120581006537609451206560656720247445290683199443288056055630583367054265149554780394519840218565001464258261660972767792964776609437462793258358498812234892300260292666997182876050813332799727452560780222330767657710961029145484642560239420986296773691305880618493092693444039463023686499327053038736361680505290643436046125499631359959818171707248312373511065886801954506338468767158659302117205614344400162722893997921748309349331618281673820457991428496255146776594763488279217069526393249213923910993450785558650162750423856748470539758322964912794222209717152992986200522703765101055423143119629006775422172172114675322137240210922344226983487812767151768515474617222818948750381648771331212434641861822525731767031662018714124011213713880750058784194039990123209217744693489815795339580014053760039189902981551531653150810667851397745534981129275994255848240799334203548144346189948671915112200234237058521530784395265317380548746930852583067634079602669701286117614640077286519757822023566374279431444607720349923320430469746468674684745099000958286971515304295095095024740141516244178383686573662232002580661234842191543883499897233781867986024716931482874099978811095528201093996183631381844442408957924044493573593214127554802436480504064773106112008583232768508442041841234309281239258295264904572391158897128860309920002468513067749088745212374920527134108387995729692334749539300607182699601300620232888968924142240265027200666019380523570875954898118527716242868097733103516099313179477129896205916267501759403778942986352667982021460733369674643489106359766199258235532141157218526584525759482110581442357021087693172575860618179009298154161635341060727865371830565009245218538207009222715092470452419583120075447547717836430148478543753207880884493233784229198877855608530981900893684760971456345962348675284724947268864009705070327486967703505660438513313140836858065230047884642605782879656128334050547988062216195704877208180504202235683260804158376346757712236880271222883098236615459406924469957190224857734337918871773168182166924065795193977156239436485669246228282603728592374636035217830626384751742864967552713494003599453979202348045709493794008078563877985592893750923271796744665811972989209014052033005248144954995263392338983584013591950307542579083794252292670805804816328452409304061053571235743706482849550102626487727363363070811989230492854121958238529894034408444583056767929269139928121368267331989869572601904910279665427029309876536050425129811660256076790580996467688887133023529506025877784461343181233639773182347340324193456775888857570301129477974439168148168585516621372811106054949824925706421470528689012044537096932195793880513284404817204890809764967793726008495763209827275884221827575480755306261586435046011234487800699824121498028617635203355073749123600857588518288695962758128774677740212524315088882165686057082838314093822879789295319208883953465879812716504202386636678790701950488406693242110810695010829311766424594019418503340947091542691509715132047554755735612590028994500438924848071008979591396517472347637036585256769164323385189727927100417351447469271779462117074216544138081670357322252190603004750289114566576031835961924793646188632620920737361280228759437128971440818477866044898904308478941365454007446522451482654295709076933763370639456723935919423814050932027563216530255687202837487527526769897769904291132814600450441886413771837319026805737131087876992027389977074821731364055338111643794010307724251114533716742689161137329537998810237011739040520405540019518533898641497661638120895347794531801863417572940970413585620979182593606945662486740794207310400661986072921285228959491430575317892541369074197537830328397110896694906906840797626325635869404547734071863750987004766248841339110447503756401928586468651357750636646819130095018730096709959445028888162750306181642542261116859309189409341750621453385406236954884666822691919458941120273519122656029074590814051179461391858685007242034402756055158743203757863059923417687518063007064371152535940266461218590461507003679037304556098659466879491795334428362998707513744976862752018837910143344715497192506592374384227230771740524096806878240141599229851670140892006872447093727714210956974422771281936125138423978709545091793026879514351998880557294429997896272897027625680690583757846920795943389511919087927789686314059546305138822694251857203614323992106528376209959762969858487989879978611236891359546258824790259979779518793011755054553109827254118308368435735848511569120849514565591149916588450760020791830596531619225087786827204265440049384354639935795748148323322454537069101086456247246202136214690931216793299812930488752609807614942040677305592678454934166375173563454561419666927631000940916833605393850962838342765794790277764404056260345807314894634771356930640633341413758849388993382539770276485885059335482983147563411057799692566245898772263234948652468475484954483874778568382023314460575229403870233432469498966207350470114108622373535679114597570745040462955523977088583819737909205675064457746636379785161654745362666748343351178418588529688376226337611116610017291974879352035995481318502460144400809347997106017216764525737444929216232015532526723189690880132509900477737911811821979182947673853567103884489968233262844207731216475105668437321715363289911213762465931492416927599601703562226875405844421949625645634475723187762866365012932715116217109097228231023686499945343822625410109767515151148399783777203832632885705289777508306343454586945549937462682438730459804090642199362625410078889852862616495313206855886354963998491948015656750519511989572679080852876504842924487085617623348087804135407397387246384244775894091767809497738628004222884341444125633731786296696064925791657574774944782991788384741766148330685524579248472483939865653778747288066996621332592130886845296327861328796176947986179573721124747879332962653897525714356426061981353290915219957058040350201447683871580840443879452504792541835403288657882568247322565654435065643929343989874424543830542442232406115842264273177134960394228355429373493994703061361927361059372890826974700496116249793863840087236730084450108994897535399638205030188563174087746273777132590037731855227933504294869768828756372655907789377676066906885312219290081611922111320415511559179208379143813300746181687060802467609157110830564428075271386798852917435175922231401714690414525387288853586533747766202221218286725093832941544571330547832199662043054681521724085001890675039861941936070653772257011054887189181446310056334836997855630028173175768704299470698967563088779281931367929789012610884872547839492501655043832838252409754026487112745802502873957713611854500753286137064234099671677635264155844928720645259537423275333648278926161223960743809454233928165824895978630351375190733714822202158719322128436040439473196995159840710508543298751826702811395144522985277046262604006687585004876567868186537946471886595484895701985701063215898653857546389045235077017284083187391812774013869309829222074838872658256454856771716633237261337663230549821308628430742142906354306996640196358135472577972188798784643691519833764102484348953957805655168109240537790522061087470003809415353156969181188447923455413549354237832923079243169827251734878135805489611578191978828896840043909677421493175796752752906821178839739342985231856712953176069614133518827149524068345275212386354888796380998573553942678549492076559776946677686213717245992034878166997626751801255662411322314591005013069891298449490667288511402021589448309995162717506415872100019458190817445916621977563510643103161292132223485596765288099813026971221817259379287259598591568927529552218942126117214844969406228204486005195120873016343934590175859266479242300159909097969001684961538838008063195576637001180985530840456908360245431597479870694653209866321475977694751037244927106910479188262032294558582908263403810526786365629065906542604012889012684612780170061663537164565872239649075478645670416269028747902037441170095335936175675465781701544837358182668627845954197890316727979396359450510218808941110583390557692987987449104156172867400856818724252288056590786888109096327612943659641950518324309633855671135965684116988773756976807562110742522910837619542433296862952157709078244749695659124033620817014834237260923429678138408442902926763033042186731297474583254626267686783826277725213434038051987760399211809662791043392262109142715082017245506213404749431936230799171136745193710850796428750713218213504861278849152542435920264882529757424797116645787854767689481468157144402959246028791044976282360525230522825044424394912706663202000739803302059855958701215571246095518124099618684820357742335930347371096618144947963878476451148330613236629097221618232148819318370018330501169301615559409518220194687316984045215861859135290797415307132447921693187265361111121192538553738139423090652206432649783115836104482283940011188937523567714062703327836564584717632682240778746511930592935154143870143457491399133807378696325932898427092357388812946802890217839470726846352535135335040087462438084238415646295898138721463661806197638037505452656987137941330337720947626694755292903062758098798866446634810685319124006665284441796741567079301760358043665427160744466238049552323643991121099841402591182496172309644171134843345606185330748212416300596323579379027155326412275662135165365690263151714637263129320082725054776968865504451917848076913170458932026188247463027296867342733036299248270241962597114718057677895125823910631090554016167173268217194860875366967680103111548589816237737357275445943143624697081899381779916818179972806216250483792349979881196956486312538307148097005907960668409152807297752601594084989517827130806403968368334406893039371846942523571976044655850775591119975830945653281554354375003281708195098593819750162948787396224491534715292662493501071944556195853348768520041059104246701926986235800512003415446480138532121855327767283470159500367072553846163736453022430337155821020166651096026681253316008020492426373311315076862507154131902618715593290966565317066959913818224862076374457079012171265134367122298141100442998240098184856055909491772545837708667991629465686623475136813549556924666786800532850242550643821525486991958908760398095781100459501731030050864348429532225101951671577695382321295529521772154158457265772272393120485303815478318414113765032338017526465105031513936308769366777754938970227085311251114084791389170391252822521996352772329735238637473126799707631201996196909745196786203311515757892047167945024551953278030196831912804011941844481068106877472459943536796063842176956941340666612407518457344870747967309816586798771879339698781961008036918197810405563850039337753046299367311416937347381209522843678089676199607470185534891636836801612010539677246193837487983174390990703773213885415605720157086672082125155096467618746516387580541700769690330585891142954439277592005111594678026351621073575923686865466450248102321869703900252051361688654002163723626405347478884085662079525024493839521576080554785350755632234886662119541814806350859722023316003311311949752061816259844117996450617940117937207347992722189387490802839566717303165006568012201631847877592557271899440089237752720454461618591569659411944371367284892329079609016052452506608152129371427579769225582939156616948874962554876623386337332512869899405381500296544222903514689565844258403209118309055027059281772632635938458311374542986869336904630359715296995535501662602054386775573524960869826228912329673562175740519608370746258227232853178265571531148198042292760084289804361028420269681361163670043906516422669089349794116774291822532770330503282712437836419332307959137094569815385724811784895715723235472980440591415519980304617768508884212418933688384720410558067852772024203735874072871474056440911226341021606900088533724522099162035934182234654042497646658655972117371971350596211953431049723320515452401774416699015327653133633367561172566035049359704035107967302839407877489674341687749221580251328565601360051073829715881066113047032363253836850677766859901677091386527759199323194752861874941997092439034076599973107790629854098375054443176530194184841904572104717277719479385734170799961996965313251197582158826045971802386303217660351179678336315835606266395743927549304269296614494250109970474129174191884179024431272182427860690325732857052740622635181479636464447654901303899405814780195036918494470640862729649938735217644424936601284779922524744858017488187329210820530551064376844354109762883613043745014760066464801615878307051557485526265860207454056564092301224628744116438934862624112660634695198553284827851083089364666255201523362736857991630267733954383472082517057678159622432736323808058282308448578131988689948302469559785781746678384564467142934543624937994050039974319596536113133457304274956660079226892700547188503142644869352556863442318123113136747415924905713584410322330395300334613250565527653716308789437614020407303680798827355614861410594429074247170520147094940912765630209874287864476322398026412697157949369699166122594313262287179234141514149232341958129906467166228694039077056791857519956976700806923154035279057004015114783957166465287865463010612430500363421620677412974583663164938958705282404148504870090857443962239091773633923780894415279983386723909950878240059286789019600028645698929131494422271864005209600366625754334129701958407817519168681192380605154743494444806006049159375237848367747036039475062771686935466151285811786896320222170715169228400098593339974827289790417772719477501247955786390745780642264369425657554548064421077810671278565717539044259872958654804604188099315651489476814997483320849733239609534643582324736625409469425211811221481369947720208210917343110060003097214086772888952221298016966525338850663249889394271689696437842722314831493947577216176012252832830648960182386333613551277693664202136256833552297757593902950029732761025563421415111042969810798499771998404615646109929563202114520651406194183202817190026829639897336401344429002642121305760241765679111135059621187887618757812533172225790156179198911961027406623389999708159333687398195598990102138926091853424731395160995844303549194362018400037764219195741254232894481073190580237351150163601697406727145477708900873011317103305832055755861814145220718472596479163063131968995450000115014275447590636296679460700392775585940471480095016082596163882972474128848123775600698025295599170812661903448032656844175183728843864604019919288699778340787806046076726797871184206888833027624952900559904947090936482400316615171748775531936043413922426297063047026214267515397492528530664147717949103684378039034524353246585467903069108937956533610459484104205396177339633633977672094015162247051453785885385078881262314491280803124404583242809122499527273357457924534525805081727817649401309519400800334786467603373750675465134114672308050932531940331415164411463873291006427963804311242905037821557048329626395801785963566203511285038085214922751073923854261721341966279560530204783822575594630637945109674900390301158536342181356593979033710343320151345186654320462629249387340696299412973907283074050982581681972974348182843131365868229244817609117171414718861891419785519696386774823970296508834000270622953497331142218096199645605177520996481827240622342354650036698679349986228603359450118873353451760214324503213486198823069188780513701762032439005344882554027642451852977723683210355966887200576607341411834089207314233292828001787602363102050908256108318055122914092623701589651195986212969968881556270401996690856458427132164719072827479726591316831544696478446651744588863502713231877734062894452910129517526265497141508726944207106124416769017997054937477744547282875278502616043136003084290405130878456916372300853063628067315022726469276487212975032129749103587800417771243743191225717274959292602491921518655889741495998972522594971278334766503146803685333534036075335730435105330064592829178991061243876034296583836804356325047332165213861807181691010428124476609942993946911724645756282047646003877322951703832550778926703915481130963368208299165419151234582195973768173899310416747580534133097394897384091696263630391071690922549781137085451603905152756444492446214270131360851787700210472516921142401776155983846884510058547450003593585714154778469925216852108806685395222063356966989614379685869491965900254643512325766171963287033964459922744297189187591388008499920531463714535575691747162590906512157718584840517266060330002013797086724100884457961731803191515225148612163634546072505513900958976504129313380118605331334877309292121411380813711713930256061251566201238280869696355301219452865282971914612145523769836837431349853779428568926780117260284116321357978168968516493927503457522013991337969627593654383286808609491998134556159904238403070262436257032982684015101403809806392238143294698362364162681674298249902498603664771151695092495255637738329921333317943842080855757587593377916546911034371413640627617907374206540668204094640427069587424858904247802609066742399841982264869490440395177423513639439681245082096335064600583083574073813727545747828899764464145477507560205885157487811146390840361201769435944846734799538628555437718596763965072581172342027485784106189640044734342395289562875989390725043644536245640533685896574432761118177302849826848275857381691705073190457925770176546881848326005842055892685659069577871000067801483370808816101330530845914047368016330703557476866205348261002993677784054964893055264586601732918337051728953222857412948528996102442251175272804087023667035338881779240641305879388915701451843834931466710377606259028519509263621226023970459347111284735287651159087514697473959972228000756996924249792395282471123287051446897241522526063027046380672226326937872861187957180676910385489897742696677821820560716726303143258128961098648332167588861968837514972653067866906322371749202157363054102266415958165534222182990958358321820413873468882273729172404276840133381293640193763668829099916406535594825684230625817781536356420466209075704899797834123823419928786495636872198856032807283253562283475136609236223554048345806286124158211105501641791294670175437719096114817561889771298445242895621982449964206933740525669830788979086747338059621978360471006273208481154030232707173428891209045851933006995263090882225849928899735602175569220457372558850776084550751012834014851957788565157784728399698371523364708458689179174131632762182762996606704792637215318703033357848108584977417226315996834814191581801191475386629354398276093053034213613300130452617149408405402021058393327751672153484402886263843264030685825956861706499851259474368274606539384093113829442514877636089244275004422792283286575932826879959384413935829008814733977924682685269496391323782648268001062624549917736739712241073018939609635178429865150384905857004433506572298513427637825911906594837499136653498003130363096931478329583652668024681563877373893636695000360105602884263476856335988671463832414660046033945985587480806776602831437466807728150960188724108017040725294609804676729752777712351672214887868847582628624665832583119934753022947994058417546120776184980202489305424333765156875029172976557500607421833993650745294442752643972388682523278667085188394709302427320916504766574678291145937146585898061622732188709728041946263593456918119439753875936345685148916197510856622293062810067585301652440406617539671469747167151207498147387722516964925476309227654649806237789602259357649201102740014538934886244091396634175641103317035070392550720530536886306104982015579283811873404488971067823167772734553650389628262204708728655571609969384639374366779102226472738711915884988798529870765742744514326630387744135212584662534225134211095849079877029092285134111974665579114149629447239927227408495164110869296289993876129898889658284221788536280148397886245655904433074693461108268300385582542295302546633564102353750907303697197762333139682106609160451886012470185369909870001715110210351616050434835868814747648716192778037154659897312698426121976278472570621749763513635927091943179670985746723014979154935870178864597567569180075006828696762900450457310125170237510619329757947624664473161239747930283495621881854876527334076486321226634654964023198249730281944241890173107141397660441747460927629154129589219388133773520878366620364883224473626537966097697937373373381658206925173745769160641668124205404029320035986608440163322563553366117798432957689527213524011868271214829061106192484656054925371780593732899570573105146538269868750370624830470578935358070084155992056384867462317788323209115256337540554728013807801575418344769844022927444194331524822475576865892434803210262472180419626584100754753161548990114987267753389242597346370072033692384804243686798483610591731952809971494870841606530928419071261777600586270880814975639706243612923946291867392616324992616543372147212845821210409830286819879989930868402672113080173479544297554868785432034979620101456490964804549212137796347160462312025392998954830703748913878750197740138992774303006633794604641842735727723965005035482442388737893709340056693175855523914887989150859251837707835186683100782856519921659217757384499121605708126165750443075315340140648501810209765758393048640525212016437298170041876954186929472454644867113092304183315136177618397117708460763239110481697697136056424808848229996926514343595333856535373038578055040209251190864334129308551196338915439469438149132657756079769450190520554703110234175040750343871306478550730971562874597764029962998647717782334149441480303416288482949718674152140815473897895195693116016189781442258085951253728722822366027129306352906697090383995521588750210201026300641384175495822830157827637995979523737142429219664084259120494055771310136720251805738461689908778234655692338395876193294676620452311369234392938361949170720797457461527747899786577349081397872570654195846934822584902290951405164507355424857001009765322863972098365685377120898957904153972904758036309823276781321355863216140764556524318903705486695521150579130468571345253897979677299920391932429033611445571981155771806125256006804371599352065082774950580800513839876744294829254692449277380662164047215033644234262428797950136098707159642001238438955564257506091296041544911790365072980339008047876289877173627670976257861894722558895929139391838825429234923772142660402914330403691907239617164823249359948614785749442528834241696114367861411764813730332583364001678324332956954149773337496000944768560531233065556469189244938002472711890709424801707309376236252699718745434192431436448248723739299380730823067202630806761661329062637850132292288415445859203784379563960836605434837307616702830601561312137727409850843274074138711905099662448215713249644951808609775827632661923746545432289854091989052175617508431654981638112054422310484516105194875406852081017180890936621287559834843297898202855705580055020859787639470435986219983284642711756767394054454614217031589214040872357650616267015147965126212232171117179122903361217162673117337463810413456114049935696487842468925709318112852311274288744839539490209062709632726391305133894838235292778800398600041131710881076528277364805203153985975243088108385097478642372276762390371185620275894920266087400413862652867510504127339414137241041686977742669734526927186265292495928560730470282736679790991030603020085660059833295619209206738570828976053460432599660709270438462886502971758709483154427177326663504268765765417230358205034636535244041653818366502747512724080850161745900309323366775574799679423889406271162175641679813118729243006313512315142749929652718847914558319297479764747020891033269424885108245239305794935092264641986140072127806399033169504566699533332033845166240761630959359746912704007968348170879697734574159090559787857163740264875194171137333813395878810432294470860807223878234651930224120908264320779976978355711832804718512901216775689435884671059462098257540170500582718997988235065170319161630321459433749482671769859226101873345101514760236794654788007663272078746804993972849524003486341159166313662366580426183137391240314784913695057045249149200420100892731128865914564021049672035593062870846422097691596295512549591961677573298666885823987397401758798656962001810505853133685187480729850326039195715079292027490437648180719370795128172967522049900454550810942356688859328759100883244465768532866858059997908241633505831375870454825664289567942149292908095913836747248197032041908386531739612000960119520329861245412965322509407225734866331701255821876525995949512289412683463513783019709107579299227261077674395665197738764149097748491498816708341260254445621311798878828342773665135812254629967852141330664050671748567686608358812600761556620153070550831718109461359346505812327594517409825000206961909690976417555021621724331787078468119640999259363479365858764621096225414618648874505626921517119046529302464320838410638578777669693470698710025304026529288957282886517334957055066976979576330945441030184177043308339134437987384427561016137333331786667582172288962080849212666446301774945329847311945733963762269325262794477411876639815757787884941736586051984351526636387600927233006969686960672580431150165212446872825655812984779051903671136443807278952761091905355936419174118776214485025395622744995523922934859908283222369598421044717290469484712428386994419540131304860667397005151829401556752928890842402569102771497518731087219229411284037625011629969034186055316481446939710286708311531373311476009648464668913950607611825447790981540430551315584870686682959421293837213958949303974278377086242721100826020630858790145940668781483304013543048406580902801821746415732002722638764312157879507855486442860673503735217322724840418001759959032624167803782388732043198737591721875286722047531511130739489334916294695752402858392227186718724002156825175072395451204736325194236038676100737790942815779881940046829886462336634663868326741658464394576605734005923086366470462154374952685367129712816956023712365379352943936535329314270256889389329385081915920348926592517302677945959804395891023640278077779956893607645171401217876346248908918917126263512709463038794811121639031264277405915576382922444474794478804534019832612749544126273025571731105838655441535377998516130077673676648487082869293729434133828548489793379555200831196753519616473018303597226947671404592537025888640654748168681824421336140238826959421431844822866308950382835848043565730284715922559649615775422408943286332318154454791212869483856755186078532124613940259075324552580002715510074732178425001567179848702251145934153045756953936308865405025194342854959632453888296386363170581103973369541783474930049394570016299747726205045095002100987170966958712391291830900523752732289125041921659487247692810831422807407904089690457355221938078833374410557866373955453864733881311180031269184110753620182124267812359877750352532458266337476057015471844983106316842621974538565935086394698342239995464110365811123010341769705347103081409578788951305505165254972761554554312829887925856296270478421631433873778375922819006023730091127528261168013992559390638340883565268504922078961907987275049799177287494188971925373204428241052489485003462916492065188240725438885305212046588684488897411071883913552746259933297891630164635693997199018654800187473591042927034611422698046446814467544772275128317127866525780369102545293373154894916465338786359390725566099121219921511183772050572480731932363349807438688220324188999722884843126177768848070225030979986721492652993879862035153965256468678075734495334727593909814702234295385993394040063612078835393730099152892450705258071930808768776532537264715936258363420804952722537465626185097168416726550888269498181768297399142645823539402739340778306100286792231020641774683889333903070005282906861520439298255269330460597360554723533229208220208994327733832526613253742224681640518292188515949366452351029229346006872893923403593910042766742143062492256335455806696144116614346449771078629575543822026561299466377092743433742288951452757409839087916679565754509495537668129774683917352063257174221984419982229692487318434238322316168645996672835702115724630571363519800823404912251550878485226368698929621661693973525456423849127337112096921892406174125107363247083587910502365560332087323819376118722084864420182056164380811651292575008389671789394550620795606990726529788319055361277039770250743569348464083790219933434569026273381860201293287925502127512603667591397041296310633662476737692761759534879336815323542011705713701201026082369677246795048899027367344058794750436959831092521604232136671213972127235375706596790291356267014783394815346611855614460497033864348044298089904999764722719030627963703943245092438496858553199835826249995169964682869331962760414820902146030546479338180265700076855277981989409243835399645218443502407723665952349254617185712149946348699703519137808735922921097000114523700510550300254771349095794822761957502864972758329501915750160185392926652001608989498455982855861060815252511407329341900692704366743280148801307391880471174769548179444110835090624471750392401885111884693162486559309809756106980461719802899642478347619624737454383675161568251599865783334949763508195286835746010828408487152095083434155091424487026804905503364586415322532533418763071362129101473366328105427181305656797496506628359962211884090824521211890567105992375218937174399295351534925971303630466407808159768155394249088261372692606651171603566702396241848808535418666905543608846544899437106651770058048060763959299347658292921981592827960578578333577615591778838422177456779807749410605654601476524432940572035316054965505582333864507380096878629880707085054045115116760034089958872163395209579406269278675069543292180073551931692364657483766389298908073713166888189979174851790850247723344820581634907504765955715375719202926084478577265815250889421711256687911162032378316048528414262044719338622259247374238790088656521211789749749049478891931319254514962134371356044682712427119730307738359109165108423465349539951832994417710542674972290109085471427174980642153062780698803812919329538704349914234468415975392651924820411237600789519514186076563125263284356200524960597069362272229827208560092651071321142762951020318842940954363154504778242353988631220685326551030619520505854248366020379610767533630502926869754477369528982418422522295858099919078318551975693176971192570143177764070142310025982703658413428517927366252350156541659525536524905650191749088010381333233021858095601443072920312006506536770442116003128440036637280087124907620823975888807055550050919961066357994617503070534834219297154410105748544687612607534125598727161278570980793145175465900426459816451876099066744938817487577031228038354295927667971331041821432690271275552666154584361411380416271500282126430906694839480179008566161990978162253110814663633794489861062184281780631560170716333963176875925162680710583603636217089778047450425922233109143597865195920861650950413677466105919749273484913001032886327383455643330424834378185930268291549973044207021152319940808458545975552998328638982255524027984693534591438395451015378916038870524431310979655320706495247921918015493433520840984717244727949149545036623392312332631704209897750513293552072359632678555461821943706857078593830951289501578706437975244776117130828724482853399610073973991675816843380813923433281532593791002662119543564462803505601601723781148504394677310078971854681657502125075022837884830150962489615356547384440717437971686085396716682453925844354511467081785648759685728376388962120984062295209684656669665878395631409682121901087156176039398222496584407037941676816900618810674166908320576281086218989358337051759893321499934541233923226686801156402165127971470337637119786263418542624749820418005230648843309765308460112004827826005498082372306078458092627115531143978209895718648843900343514626131213625632247215504719397943767470730281846538589130881877300950209346332757674814570380189990929960099127518521854583096934736020061371469430759963929752468423326363665222947532847739583453460913579125607216629337344414847054489772242375348559395497283303726901900510830646582834556769077990803829198235492327898107494893709229239429261773007413073572060444936385666662275450092436536373743051262621562106776142498201157760611249649308083274661335299872406165502604379661397232765147895295050437302406211694599847243679262942770217575561714465005232898322966153331551697609223976429293588782366420677028092022757636652880525520503706765217225276363498600026968696369874729064537572712414825430357945957868422951440774219020271898783695220680632476017439243455088910061989796638234456114806696984411516360858309350045003133057276605651922068364348423099273679055698431262427002908855435852351401023882013628809197083107531271059438901729430936190041085905955661267843340826103293408285613222998628183795939367125583680532047161787210990755391352788850352055225279751539708023760128165882130110760327293491581500087786037303743315731894841542357610667455640663878622409028674268916269723892834408025981556201878642464297173957677961279448241662610257404475840161140675518862954216379984666121589372097751608768159277727777109375902309789528369594925117251503419002203126112423600415276705479913315669607828252222956434765246961128240422919176431556016345697765317334165627905654440533487079741830761417390754637735174084034985772989917342247513033459373295379047855395818565826210238147741916067927799274133441255394173584329222887353934637963928618424345074118142626541848300975945997393835851755389004474867935581954080613547278427903103585633201559594268577595204152706134789571079275457379388572397537938195462107652596673599676198956620562915045927726205531042519916515821583992955016161502948961591992558276068950847564945531124086157742424173887153921315462170278434127046373721129163342338575661391358610027640910524935987371380227794176681279208404678264063623093896867230850369676441033609094838579135872875761259000544148192319220851805222473978028210168304602005073264174388235323187594614948091888858173047468141957455009909407223248634359226573441005977887073798413740828133283669072069019320399595232588868893068946971382703430890848656048025120716163164986891663149226395402738801617594905220272244373663397117074431359591798954111126508576258197431567226982666091641294050672438139753967743515542881830483560304554544370326027375566854972558003881738253593114772433237263090266425676062365649783729888430759147261210606928434014030240375548680253060380295735597710067458695862837622972668645680868337517167903500970595916563669853488872400832537647053998624412939125223236729880139570884274588879916090894134121710270067584769873810487867154643856956235951937972876507670118161131702097202509093166341934126626686507026887707188963334282893701464820569836516773730580577122150612905564553896733138409016768927776012703109395955573964630182629645977692751746731884681696282775884427291597784353045351668498878031225349625541093791600485707235399216685755790154039550336968704659721076966443067016348119504045481221316850419042665419485509912210290411003492792733668025765581729130272051854885666860721197114705154571546946583650828794819531823023177436665695926799174917791432698500487351510978242338577357903453402907313776260929555057955859482819163686085588329441896261166030965860368664039365824324326160135310527104353115034886941757472325413196002616139016154427771441330459859344937602522066681233066576580678559480169558715634170402144811748531490728530098608739942136125467169713436941952386719659080363849951271633983331513819447209334047427964137852122263644866457039674212228922398596460414938659464766829338909414352971820923896869889625985283170137574585528455994118834085067283263051896212187602349479189356021736055258097346109413714498367694069772125527426351661922024290942070247842606084530425202912439625765161072802399221739543596988191657993092007173332162889436542360269809700483037171996913913283020883161355092003613493392586383243348174655905783537883413713892645512506972553100870214289310084427761999008124214207307057376293175692718766136823248234421061893229724548458924687573241250714399758878980094582763038539859875042072927161143249324620837435231835422815802156695464879193313232266304489951947483088118786232402695390483767695573246332060328596635801329835341334334616183520883640929375077766406284886555506946438313026740048053338738472577291808890859268234405897199286875041279829553286874907846896976343793036264928778167589023793561311242769975848185911454641242249658367780044029809570600741248861359810019113942242272094680416224280928204324446703631093916021789646052406792238252253739582974805523066602780285719897189697704833461063377027649613770953516277767992884538920093542360518123295641756845896154138809161068832429943622343987651300544889089221362520600468426846322484071975081771666316222540924038235196717451950710940851682279165379869374143426106736966033015317808176945214062768015036766838211031450254317493591641848944444058151054334052830025259756276152332745549137699114824748197596082160805473073145842708348443147094019167235897685610175075209215722396837863166996542833084347822967537643521098390708627502243309210895820781372264934069283671139776939361743854413692060513929435418037606435775545870445186004220599756871917900791729732389617113927512052829165728868434062524157201421430883411404542171380407658826094885969330086583850261063360635301991332205898025216308039209098727788134432384018165501657074644797365910629984770227482617839230914890309508889865747207149664231659578508355304195366078173939273205837978023146896391065890998649215494874501646825134245330286797339032090208468888171686260618631426142334280127198443752969579118510477045896537619467226025518017882423774554660141388254973274035481374784374109941640896522241684977894032473602023029402639044445937217556242488681976055294325835022096723863908028933111254218795856042446463990981849850554287612955568769892342199903232661282804978190341135291034391126225362719184386387117459347183339277844214126670099708199044522257544188867953130726848909056349004801666396392552330033276245657639850587308635314167380298630271004910022679583350313004536693606334075372694022769226268278407910043810069648094811454993295942609143897605354111754149431654581586245118231278716045336416971821340340804338986339124398502902826283704282975696781577534801578723839323874899608968079693815898096728409572965119873716327813883749542565816271229016834133471985683912658081993381009628209960320239189082660581126595304143534802364277430954797347154989914117653253045650797567306210559161420823280766426422272592892477469858258448391387497380498759321233303625282691619653840558227170002737913100505329006083130185664298421436894403881886340453093465211902027147062134289733829189007844525442168937422715870707382693783537886837650480234701699520425716760796130496106891896822891362107443568085901486145818229067031515314964822026300385161421344130604961573980383920474363222851137081306490335114615980252418289381087966795098159647089745621211870321293546806698808626800056710252453674453650949026180325775648683634281734316865915423354740592211362435351886245608848428736171183378245747790771870774779467468044720437260661397012360831234322391882450572421513377307168259141033892401400147730259239237087415408397202845627508617308447700276631352327668701553179453794568460541753274819968241875866716494463405267087162588636645510223106812004056248330361090530582436405813272577700403543426864050268467254470068250114353799377700236741393849434483474226175829174419943834690463944844053469488140778462118150333223787483443192684593876352618036531812176787946495337191409704800445455741172560763291395946397155235082535867406390045662853861939939455434810393697567058602829007862265194715520847114150294196636635773623667346401304440876810208281503940670968747056127959421654315060541512270701180042836936095042820794707644444275869857586027501232616190423678621571452817452891546497125828395119026052408942855057462984132196439860882044718504724341585772148376590475355744315436963865787718754085258582519199330602142689715523949147133423472101741872535577584884650525110289874357725090809633392928821715654758806151139538773881970101583386786590691620846815127955080292457622277302479264319953111998918720335725872863131502757119586009040211447716607739824443818593749631533759168686353012819922727325958769666444589800488218304767605930708752044101640054174034282512086965723918662144050693965646756234293366481753155102957500312056450847754821248763756962285041126897625243234957298574392423426774602437400989825848077286947321821084066792857262013866575630062366977138413841075834890888077312686115198691772081085250265848961297774045909069768711179140753756864276242089373268462617991385391245064689820644479894406405473369673466761984043705707553974693253475312303621335748324061906850731760420144759273582630203087140199810323326359050758145107258524804826586138141641732768958348130453976294921043928515039082324110163958526437100454955087557527029828481644732343828251480370575441483232663905310858831948526107886223543408245577103662429420372890669240851857801701001810796415191901156372819458994150224576719813755974316096236246117007866957514971376328152940517643412587666603076277410481932898066493757779837714458626008115472810897052640240509986290630544903730302603884294129228900657339271635208159054113032438958693968798894712402131084147707518606291688502520831330153358051206364033099416935745280509438197051819854899773607244728855111678402309390822064900748502141555788893271561570321354566202272636683681465802710832113391527482203522969204806371285070411458683114618769098052703177374801561909128818843507392245780686258376733568474604868506650416337401353267448799338695952317115341589670653617715061095119225677740166605094221656997551060674163050839279974831141619508734244163027051118445460007481467231745141418167304418677067255050315999325127905335334505963554913100092211714373624411702262152151703705294637171680368553388552091519421141735520637968135125493093403588239112551531488049093254763979245926087831624993253147749307873590281797635628396384697620631561480640161628542172945490559782651024022011804341547874988598704983622827322929427522800355084906767718065430422742464591949396300591767208764949767593757188139534245390844390248944072770458859713408504102882162795385300572472597248498954846075142961795281432820327673011535108232260984350809814164205027965120585373693801359824751157335457760405524073793533512715354974395085889683311492442876378405872480384909767816972194520375370606138055975725904661765661163192013484867692011025557492234479199993892387134670303996493122839584310355129331472383491112960835529497530750206169966491160857260378303063553290500371850430907827945255961761937534041802192437088808173249822684808983721594966630421870563968015118954295933744152486056467802387003398648255512633194752005656065808177632251074611539576960824570281171965623900639134802951802842485002253497666097062000080481859864228721363074650173818160895023291141150499061505472132475052205705464203599737290470275608294663006437131881867715407868409281692705964567072444268166197809681926335005515448412330274980005697693552083061148213181081850307041961146843024993661925387386938929670711320905438774742908543130913658939611978971638669434699523260772983857441649543208391647096354755142493651135951850286955279251748114511365047872116387384251560226779304927994291020552569379586776397703324316161279405359109187433879576849427917343256170698967112481043751998807600135249323899653506176513781376628663989809903727396488970756327678434181366246409976798154439736377096371919474492309208750219883643065906999238904196731620029473485517871889587712678239980988458508084597108314686482109246059289421255389166332717958216248909770223935634872166177643104959059318649482012292802479573924647214852202984424098086847282930866173008747623220768706792470156127775629457756820497723727929416686538436688963448203820716553608064883298406068447034645742263780773253099048261977196394931699792437938373942848260453150525202802794399288849118543632080107705570345967134444986350839705340264430830175289883192300382148134400050390518921743999689275426963616221486976474019202696920019927004195906747665111966512010889987197575514353265536915918196530897255891621201392605955578720811530601643232565264944514518870165372862200392811054961653001314647984965912611448119064134461303769228956796440556310609304782154275117285233818129966671315916634572638796137373734430771357030817312279384729500476334781719910507275285620287585987544041070538990297052938862304875395494618561786204765330844866879164443803308421383770744291856900391413031378383446012694260683462289995156005291008097973906207001606414892549436896012000039454491518573637655205457210557059223372298251079581269336380150921817737049691310398961702846427873484662510190160324975565591937149813546230325389581559604465982457615565408021869153756020118467824130707681860173187161951408440485654036809298479197705432442691786943289275122680737411347458585376995377570243326484936844604316207052613446421291643584336330985833592031381386780825142701742132725754686498611468456467545828190796359174592494847176333587024746222837051892821691627810286832239205262205078613440886453329347493596107592563231185637077635896795533861368173600870464288472762689458246544384784216904142064509905964811439885955420248203102413435309349047801409839785540969694946496120989913393248796106949839961739840329080318334659603268079014253718466561486532289236587011363630625823223735881881648393261763594850131342118358193403059712594186323121934958441333705506492027953239317174407159895005422344075106868483483726026469806949499399548494523413862111002922621480230596638203201651256321886232383207199234731153181915889762771860437449214592307072949793414889259916903057710393775687676677938023341768568754204861650367743326005901221815580062223148287948784596106787704381661431590468562292512556621654692352815589870017174639427510187317941361586801128938490697459770733648965229220950186488669235399682046354242305933760266125213294666972488102102255528885202728946540518711432237077794329705853376981836210707357882076670622536602807701145661224930270248830545672613713533052866059381830435745853793963030572315789400229369368131961198183344755153899690542495864488649769189213841472246459965836929044012821042946425253872524913845654834300236110136654804235872214665031347425445976413353001846170105888533573587806092064364590217764624091908417585366013518023443369777362969631748715930756429016181138373161113194245146678051432002603102689414241550482139309940162271364066761487797792015012161469339659541282500291031631111003311649472896764383734984098783524360156322195889365668206797175792859887459009824628859079391698493100635224888189336715992520034062668788345141658805561596161463251879766585590596212648053436382274501973807233680706965190011090506788793520341368920862806157527968510275240248773031761468224107452074081955265413847561700117213088370269771843484588578821987476649903485355589184088890267141545050459877429549210007538671350286213677025247358905310518479067275611043593098136924243899906730431459650398760552186696823121679543595377340334289756272572144626014128853080330734001813778888157055125096863620043930958374023367950426751857213471682666088800625775126946690665913761431668962705483742888696908807979305159700680609526232784055358940766853239975741168428014532355207370993924883407560078922995762418464674549773249084438872683154474346189063131319117780888018778057121758434938852653461078725364673645821039455126651055376967454212493830028035547600886964823340449293977817570927747541584305023804366161818669516554506511881775273415952374038297721573074388919907521101255518296781033497798864622603981371085416587764599243743402589859391538005401514891576255347130965815363721597252041831407725957966960747514442805963984263117537925905899536039260393356405477565252876845516798642793731011511406130497974277447718989239615092083241304973891027935464374589664132184725101427354915521960799265587706477695471829045167992780773775571586994904547265409768591419252785302065284766029162067137912195886830416054188807317886618978511010672425103075080972878002162598409747082926550966036375981381784474049342297078680663358536522083414978169701066265273135007373609357904758251993022174091354817996332976006905871145741557755828259277842518202076219060614300601071751287442643656026328868076417961257647623079790546771370474803211098213518057163121433704095334720158031394435054944704121041010800963776224433244826549651414533722648648269473200411256540219560326303052345085483094121716266314970807806034619850228269019160060396535163558052009611909159991535576149829869676361745310355142414958630372175967619846305226288979310227232430227529405189234206121843812815129118960726419383453021288737372514614921375689422475056539046626512048591386442604775437952210569231064452493773693178878584627175189395468946382781390241335948043539372845136452074571966057058016001656261312397255848241155246473062474682259088743463140161509860207255666471806320012045090629432096725881580342042787203349840434663179422569883890332872589739679775043176641809173255766988839995639606531086462962407271015962396368038564418117480560358935624720561053117027860096389183351629373003125693278196730841063656840259354474174442223899729935893277358255940436893766520087971766677415020595377373030783026061753886413881072736645159790492082421926261868674120488906681368750877704356672126739510618047525414797447279040084560592808256688840857254199621168398161455189557669540672130936078623013817707150287850172018020173007085795873468392202662167643981672970039928179997626586292740529973234786396340348608943857752237155038390516753712146064852862590619942890432130765388332601154091717315475569423710611861650315011228534742963592317395012070420877437166700592201217185644314700804717360925818768034859188802194627589557298905100864142603714293465306084582562209413331249866026073097820026196717155506546525390119597580254031223078327783838057667926393728326454071493393399437480259397994537897097341030634615450006632315793515356095098846712075426654246989615261152727490795958610501866103911443367051609865597476378068117705820972619544417667848592997101597621444533033057873705646914782077342235600962202545105363372563339486436012182640639604700620291934686760970437017199323797495846515120258325557198486559039041742542373105685284412883872895210002296115033012812812260798859373122832788670250281585769448963324935109525254267559094217681167183000865167961720674022423934794843779518797017396446318489024442775602336923273037155605229684884222605968268000529806567041078001913988107283898494015236780036237778371179698743458814421551723907031652337262930994819268487432126710366950817850708125556111879716068414820757826379398082183070873888000483058454189463862652929748660024771626150167364340137341888006805648426686839788103832254934549980686963189003222179096341520969688509210085176061855115180548678811279933728851910795061414180340670088798535853588864863683810998038933671151793652632699502235013000531791974202517240444037398259651244490922839943776316145185342831078048340507803463219562932208754280132635087773992871642156762589050859747033068215484745088381369835185307152536256358434438768034862316135443457654251595370902710676740478472384303407183505380133052013089152255074986573364047695352125310948793684474105480057163482066825545957087158612699835243588092877937629695716072956635596951632676581722047588601440728506949022793654511350614438788282211742819665196983932249649588847128272964953530738724453313161733116742921576027353000998933044017679935820858807285978715791307846337651930453099230557894320178560697649061552687190931792314683342805731807125104557269212564299444755756184161149753271698509987086209709085066411964731080161091737337421628643380510714543679555515189266005334554846892740799341980271621888745233845225746812008655288872322860631574042948487196102158927112941648841140836318202382567571526937292521967014630668784120614763172222170535985366903096064276682640358586898549371490892327920749746075814317260026999301529377534713625454854759626791034801970269644849597192371225251145253491395644684740290379995279626395229777242942867122891968200194345875110874850861309031610302641331824130296952787988218065625998760121417336362285241998507191105283510594149188926904588407229681200469373719709557204133154080953950357418490927277328622214865018616282955152586225383512100916029396251276213791014800012746056566536494250713223658875320330725815320873226816266613833062136820262562910707237966032620819558573917530016374932691983809544846042836910951740824516314719361580866020694169841476640606167079078740335545955808791134927616004222923641388646505736118487265542874755626770019141964588543406397995354105858852253362523786574947863987689687168945582042468905346959368572692041643737028874781826979438982161603266503367757165749642498548241156313134340117264986401310519062569817808287764183016035433825136036601710023915680007954972242289812787471714430479374467330049537711197718282850141874778251683033968652473529624939659325935865448897704963682201563003855982795246444383918838857557437994395395808273812194384492244772878967508165532567322461520282482616077302682871193981074554645276728711890527735827226077206997730831284747644207885187840434902492819449561787007671786179739123617938779653274862385942442515758822117615118982704343757342925751192712195583045409641195169758418089605109632708848369659941983873829561264868016559775720014002957017320988095704716738379127900004902883998414763611101765869367617518381657222507330714452052312053353710110726336983796018752008711065888837639212038160520765374392900804282092032852126177488296835405248485760422018133866574037924502457072731829217363689287011647799549557886080587701610639746111257827837303180488761218694322258822981769256154738401775046638700194810433635385655456357540616091089264847085008304698305376488194238403552944109567337318720604446071255721880890052510467851913763946186407699315509122873558012205239061490275164168457448600557273098699454155574927137884114112807930503247914151124082783831094454669799664875882409012571152801898658720430142875884493358035036645395706042112339653977733793425372056424240450190507977272268584426823891984836963472436207038738196692432362662436394441490963264735821295644483018387515960875715931666947188600362719510649454039298579390772508239823856870250994841790598855072109221586521503164710971026182213882989252664607089340281597321089855115651162868366133506669344080639399575584294801505100219490675314831580463603415682922015404548944154965610098743924409135301196131219004487667604631541821914397935520341063585584128821992313107826785734560574611519679692730981351418608548993413682065072843118751172102492304830386273800770531037631800053839111718411777029560017392167719220305941146137165481198243794585823175576686225428455978737659825145431457442262728787100194721616111667633139676180845531875126830133571968940180687182499953902467972631906906884346023737188583958261167307796851923009247925113701312938684968565924637021637503504801271667359738223135713312044195566585349272271031392807487362158414376053676450505926603930053599292168866610672990675851948797619566801200054441553909774435979534924424274681562857549373886382907201228546425616922234826441070360352817054075309500757855735095430238558326840066885935514370716481267339367569623994195408549726953003653504459545026172378678197757045719821848925085145569842881438317579929742540954873027933136063876223418586660371802212850532670713703218686884803870937356795942729643298778781962745585795518165999440491153155913136048050953003246333607363953535011741443906063618445554218164343368539155981007901306689983994544540156362826454629872219917333780143833163042074954862750421465384711252394443119254724346053238861799963856245380942880598399936746697433521342187697749161793098567480885627149022601678969103274809574245203224811673761727287319193353130426908066810642741786847811097385590611444658024362940849805112509845811001346963791016357411940465921525727210075822191286146768591856048594504741939192562715273423221011677507391450852770754805516415798058747284060321601067196797248209320419924680432453630694296535227191361099461031364298461569772534730759892395700818728819380064790125967396268424304401484107102149554162672679388046453603398198247858442839214200861473400409751876001223487580148345353228001619271052035427933222636099000099041874507627773661425113828701308529901314738065358176376934206970502412295969968247816394762678217495394384797433965121212456955064760759247882643547629757927736249171762788712868690489730331073656048772704491533260701504319408289719829240522372175031329200185285523538899537065633902770785786584464236081795914331868805048706909528734746915854499878531280110087008110468462803098433877204673036301171180628691979790231555176655395606948384396381166245910459550404961825145659175678397601582447471668895499955380917774817535481274383693302793912203818084578342094068580076630793274729636298930596623978205147866652726556821147009248211034147206472676693206705076983740190614577288877103428905585377675755033828210044235838027227960736190209733419444879880694536716812464578429515290842701033898833321018251508363554357775659254977284188800001114316343391290728872230509107108629865230640534581415057618794582855563544406615804269609183833742008646098804481837972705146135404153676191720195284557392250446132330423176006914299438928149636609982985171053524971064193982739317877363665462244929415161582688627362082732577009230577626475365299208741454008342977306697938872133737825031113989994997799305610349213404604764537162684933447190474641375545892722388993869109449960881847220928633998001223526519053120495009382767342359945858352425878768038388981925836666856412340451357366150811096332401405581525544876046541853185081147708028054024213863174935972893843338377753096352103216454495289309812051384908051297255880879391046510384860841053297249990051260718498287714077233555074141435361404248346610397075230196531599426201177231987789668906659792129637297556606607895043804189897646744783489086910150524462120188376155711773221658718542691131461365223875883417805939473500779193769260223139595597968674264911273897199764603867747708925843452155015345408599832006190610199895768915437312113018480113648639411641865081007368402767744292463506819455367596714077703740089521374933052314931997945469833079695850867185262155695177504068567784031582636123252838493406303591312412524979591186934087927319180573633411708617758211327103179103875330540410672995132169709432980893143499036277598549070297127578363221469629598409895246295398170418654077595306324864192994769209190724314540997936801532887762459678676821440070231887332876575874832764604261686309110564277786081412222920254253973172632148170531245423951009355980564076850883718048040702124394151504966356110847191167058344835088867112504526418972497862737862314049950463057232200880502559499122080665423698184129538025495101100861634220753173207368059878949625916748291230080975249559583700696685886189351867379457163470088805929111928321354839194850831246699397833967301240601487679687787994689380490644386084422379108809101221123860346027724841680435840308394932114193533189470837489519443348555216572081004638578766690023205558624331898912897110777486004704025328773923461217892957842301331921820595532823797748455840767391841041041063168539790386240974937257039943927702058301356669287480624591264073732805752120898445926110023840767368254782215485689742172900686971066629035789443546700511161833787903149171796948692797261275003672284917756482845266878175512551814040163248579710318657426121274179954377518895137681704983054389184945375612624943017414735710544346099963008961043204594473354929575280740232908968831119790330504193181621709941331206973412395565615016894719777909840429086699265282159881179146933518336409847239793483686074789541391508633545202445177292827953218073063307247381913882787576179185584576718436282253872178012175688831139231523546649526347272336935775252175013835400379691132301602268470076618933176709730998011034626436209814114543077095725478782727139720862795355063865176447917282739675697013400765254872105876488911656677472061720252366885381639079919734902810484446928697774788297258840879934466753068251106063244809505247709990576823577470653716122658031251662062081517201047307759242675720182619932437203516089299893269066637078599877364805765412205316122008183412776012837567242376709384629475581217192578063203930663793694894971926966589078608850261496393652192918750700373580536262555546043690805339401044832063155743008352078513500975697404020919808109161831438738036256410321693813653667262363999944679699525968067215434307404107804837728550214555647301932408654144464637723030260673300665595753958997593332058469552786475520228046735570512974381489930177566006417347548432100677907715608298512718393118280740335067911509798958129680480475786391601141110127251603225775663589507764816531810764201808605142858385532796095111356104473014285284693895408633903056773986301021864259513231026535111923747929444024483329653539432201183192040822920102255088661327739739906798334721810644919785593458037607990105185881331589197708080191369016926900707445837957622505034849060894540661553385206559140117022663642097478869174545989325213883118948605281257789125997519511012054316290234225041954957315043608240699005502392026282484159081453724609503344391841094720577415459635926434974297668559659645883849877185368168390946096147442256152364059809244982779417534466502472689819528278148119834772881857520290169039561212767347988310190034395356164177713179881612095844579532746445034730525194913681221365804185119137703170618369751591555474620747978070830399875096176511069584929885141023606340336016127232808345955463448989719895316972073997303236135250998407711542284653540212599507302865129298214518884463201314962816861471969413795930438684474196472405314646597161847431889690774966187968847193804882594502785138196300839479085232223726823697739496157377489855910195879778231761274744379210775304676654793002616873510113988583874946021691241234361232621712740319430263714869046686575583300702028137588198158827660865366896553467631012234542926112876470243774457231515671418828305068856962201978695260626580102776995214818599746318041543697104425843766066313850884339089572736206380119124250294377011587544759852379216614684506855497502136461599125658755159185747899627822153430511356824649607390615781055524359112859069273184182899329019535401574528552665139516273779727354266684617272168946864281772423397433195824875665036214896208736347578528697318428983165912681520145269054071639845947969481940475580396041148966464162192913348333523971986653468083255732261406439553424712059332206679237984335803678800670058011176146177780772396018556513458484535151847794085642503140730769791166785538238917397301685321200060076297763015624648775982783878792602240894048518299447602691353109293588486020199781416110968210292461464119141805667493481198210356264080667730850188778938725388421288097544373020556563029590038454316120094547626940073697462221491825020555071147740779473513919539575147248570259036225856861922729411827084186955761064899475645332869570307440428202409560666798667049960917479967615120519417494724566432754764190062579959448984107671252318906831072515884725645651334191744211966114140625927430629529174072481665687060425826652458829562723302087525444437088431318091648064309002495849432661440854833272109971232307712049619201813172303626727433216985473630640908103611788527476010982298713048227516084662992077014375423508938091565508676432720825994904659078654053373719816938936608680302823706389315273852071904449677031483488279369758663015134701791103328861787343453648645862796149914095665141158364240043564489970297028736633354679622252102829332300922561211506101516008382463816901136333887224214134927412468323251124376593436194865734788443830494469255247110381709154699059859610507438745635268427398048454512844687351958055758080645013422299005092168493823847960005129491288729093636010320556392343451111814305812273393406444401263143189997352831657607085735771861229485191733659601953878547522824833912962569687544355478602969635940357096740351050900783179898721363586970292740984107350489172509555367842172645328987903978048263222349871356655236656863767809819927476053143420772702839017862329056283608672005972440842677567168230605798372440570012111388830225243344509111351159954271806801846222133065134898495326498529718835886183358739455283911973206772027744409548839820381374763286318726244403759654565857234051551710892715036865603587702536670185610011915098537105541546525213480615861470742394691337023763958866624850910900871013611731883166593503749896215016183934621104636564377921924678129215872166758897717280109984713538165583533520580261102843515549600466578209252627662675667674528103922975876438297186676674070778021258384148652432384627059609120832099897218570510844546871353243844754282506907565921165676777690598663861144496145950198977221861875150921615263307781037021436613645364202657154731723043343784601430741152307681808779981585950144001607992089605397297662666625823372021753055782472481425210830735966332858450782381041042612032432827322281342433251164546144246396784109329565733071853818591282059253517553273041625210660540204489291796338319459071461278684194840009987629482631081348494238127079204871981919027849620181894429193999696226198148228684181258343181983444642131841543894293400815005032864243433252982721969685605762881149619263408175521326600393280741884314414318391768481337949672719205171569171386842645949671726248310840937495394037327985461170138685398870460665665901696343505101371532642758876798251729114537739124255984197979619927581365542395054176080118309421788388560329484236600314896942927577382404204719296598878300635219827567236574677323611704223830995887759280670123523506862645417068188293667850507983262153855451935528285088472128436370453139185461198789486205371489202382906073098803087511883252905787889924401962049401453444318333382321346685792386387473457433902349690542025405172930794241485563140951202351075915595726335294939152843583192295007445249537806695851988601868859665679667070551467073745691034801440608413526602410667300780829005105316228070233858571521915842846936473094629674591126580600384631507111500327735609015560178870400952184758528672935791923103670929857562828296805156237544894623989398713784767496722930524679815143908228528923884890271373809723361513032815747888425533117232022304698812859819530338974988494379585730517025766365400719341601333828102161390162703612319837105114493766348274512065674899211578782543202801312865967083825778548156150318809539802289505049623641777067254512075379449420070499693037558005361235484483105625507982720785288472783175843696087548806827093410372773378843287564918810760658952885616539313630792487110036945498040448685547403660190164291588190756909922876421487241942409967325113095899261049106809551734494696976209800493839760627300974858665437119774387278950035167967171916037993207521117520647786560959429086761423172072930927586227396096218150212579185229213480752008555325573834968083481294331920948528008574458410065215458714761282422762369196383341286985586518666435412904420353910503859885550303556087491356137141444103720890066350737908541632120271724102866167364810527113635343622010327149746858339866508501833165135668118207458319935434618329685392090945560196161980367525585789106244922227762482489280187591959945738817101140192284627372006241919623978018496725627698603264331853579046786974192618360301574334261692635712596636800695063660940769988617369425561640984536975398977646730608428905502960593883762201238174529339345313536748455898443849394331874261657106048436993403260382340409319757325475088336495384543253560533005112088159526851059435999263314675775485005381926454822687275816372654302502735680301363334021342955035610530596465961982036818736298278740927201096003354476145611691501886930295814915702146240839874169539784601298592027751417633587274151313080186209701485838805225213665805331694685821678279836040619667469867337879520042975222383808797255039784714577757345858884951372029290531581866374168040270683626882548859588647502792221667334700621639274533325731439394376425184893725251825249340746247008223745731683852753314407755096506237319880955398483150560702143638083214382131464458609419670493349178767719713760801743625326951834958247387695905330973806292500381698019884935422402835059684511943026803694161263557609290011147382192371604063878997866073688009463096945383887272554255989680681921020214755613262725816977971581936195410340903338852237648094026893077339715430563212988178445444574729218098328909438348789417274234062009719199648977758816471294670827592260410822800875952142438969504201166453077395597200679014212222399009223027203992793207757786267169046867142019726845716821373991253550004429700669249133099133623516509437428679710090020020916436901691681059028597360961430545942236310807111819850937403114982124015141153954477515280692368497341812938181196626516447242985525771176783396070972884635114329696336785114150446602960420874388315948325969495653744488110141985878894900597942784276959584404372018614762244211620798734969922064772704615394295697087023637845005459456763181347591808005979141149055468944797157124385889521129702474219743880489007816477450443173520416644538276308547730128172956233082350999356177039738146130805729906957105403411396327183769798181692194294343259965262950727992521161501641063654335786857892167680123859086290846131760674862508532565291973609194500193835231120115684961428640510828913408373460908779189804536775035701113187055043650789446278652129887437281705528607160991195221447232573473565849472761047601731500600637262004333937012271077215950537847647046216348486782488137286396339899788761548152456966804476622837931930764193235153171722691737538678499236500311298951163479536060679879788083345800909242078781407556762949037054305534289414642463493028043198734547972294523004815467805567660751842851299783328742591002669670025975873503159704291177840875231570607205857459381259380534064102214381261681705370968526420240118780514655706883390692440597660912845861055871358177842411320203003296377152201862922028960326132159982948803574741171952211901195331534383168531683073237188075177266110216201408219095664396272724320213622169915006361422521128807480584226962498873949035325010796909964152720935242670350019916611380799601091876856342978108164849132348062371438582978719668977323801975501746601170028368156394124999938164120293237285985119041644921521068373998426874588702436740517396103667325367090070712671475587508959719445763320299915540300873751503325711086207599466573588619931224402120278770774556431420805705866587029348556563094650498099217025922901724061134056226072158963810946173737311591373793159913312188105030628363015904794007455279577066975840377930861697812144427147769045039152962123999585332298665131099865155395944604385814998465576769042202790242354928486469106148199160899264235309943921950848962339078780819280117234735269917750543499773711849621001876427142755239387841381068906234052887216017509778573204567235399260690247153374869100174270315273506067455332141908416212830678317334448355081939436219258499734121990732432458071625656187356908199255330110857324614912027519491725642096380230021625651209554579664282690462297369981560037015965410932371681357670546500695185967632647845766920035172937713672812107701464998858752546216686653958542617484950253213962296485015163812604868662980015995761002016705988572380183965757162206267892754414205803100515623213411833034110304379951069840241406284037113016138013897959956405915050554283999589237970125682361984322725174906847347803567936186041198544016268262646936063127157544906999712498360397996094390271394919171887615663794654412738652516644553463512186117134123909721179681866635962398786580191041710437150027760591965784577515387134486668022203927263555640217010042755673823674902343380778803140347215263718266672227477380023127994693086798601363276202761439963368206999415794051020614137460790482231408331314559687228037619942420845801121084876372973659206433792493519500455803795130657710329937463817506974605477157627059395006055681840604212638666562645009130015773577922006110236004692389262581268836845546477483613555958886922061455715992477288186575481488073201545381099178014472485834491397183271478096159685771344902129743740229854309399182991335883941149334011082826607651753657349360355498564861821240144544043378609542461257028288710088754383796288336679138676806278743868120110326675338018639889644533222424323953636139112398233204960944551154659107630814484874603586625332453162296217220377463969485360785550529067422463186772519829044778146212376142568292820662228914955636643112424087248273857629894437544786520957341057253035544919514693187161670486414688284547997066027857067518119103810121422650354689239144357010084765260473185920065004507684034696176808625270731150089530126049033187087760415295210890470664408626557809093115973913773777352873368371248843238103969451556025954952046032400358877655521572863227851274807965854147538992958318596717544065369015760030954548719709072889064441811441063723723384683389363455253035024501559070062375052674666568262116258985661536700779553120080109088887031649210146244753880739330364232836935827189763104300915710839115559730382571635472178490861685796303682162416491933655330960809378386435455680881030885741598865555237300371073935158286618444010258007483286598334626902568077561551801548411278187672430478322375142557628099333035585038603627208741775450216457331031778266372630432024645370029085778109444976424074697476297529365594713368246315029027416615376055054307086395030210299349137211395070958573725497114001599920518798597302439190616034828460623792909945250726427714655232384127762353316444793322295189654332802084865809004450133721135120785705851062491052277168013528579980659842157037101510740526813238252371239664182842246243668003423664197128666393263153391569448186175086444784980239698325737072122217887001599957189148360049946214304150853151002548391632522337125168902246123513375026970376371904449297731972949007878714361917702410480622932606029084962736915378389703277959310427025257069955697732069445620323568261391570714618514092914482809156801287781120030916076183222682489617043449148012567245922434965792573157590669368594734108347303049165349075848248251565799265088256919520993597517871860246591076998582008282543641457254841822827818886289465661102546425483293091778052664893200880512559975728804401985641357237108673897226106073298290546962930965746564672713969820933168668049338225490153101647893566978722455306760843503701881644029534966164510777156307121345592005680429064734965820344751415622704406174991192096873749265656070797654624152854824477190591303295717200650677775427899485693966131294014123271464805534724007258387042768461413065355860320437414678004142458374764560459942044822898439884614241361912016211374642709340381618787964476132855534098004192162504112263807371015676074028745224202168841076597750360564853292667500252682857892488813447399615791535436830328439853644177468146323553491012968457677316594992626406355640452943197723818230903047540317940539705582026081188322971497886169860481720034047924735895376463141275983948690267944779316585628930607220135667016320334060086827105910783982133098188350528098139074919420926059267888349244281151974091786509106081511550328647647823181940209897396701185024323972932936392154083200540958848062596622140263834142941684029604959543382538366410894326687180550749184495712604260754001510128573458537347441195096386696373027886744369377537695569692994045293303825629353073046175953611896894730692030678925455674250736790196616698264841036667131658155740722863693994637061364754804831002816150911368587252313812520722424519562451207192730186585660833840620867243829786864902428028341761034126919652173586558788025314249409758936172899047605521776207107007267710820187335459539198994864489554596739608745576409298343353487515186635383270452582461055202475595777909925426411810121402535838034296923285008033515441869261226806176457841773063545404421947634429268787486094300995090890050697757085116183532059914095809196748448459598293005855154651654554249867102153499141884374784392886181169162868279902055694411402983123524654823344091552081334673874172548253410122647084441747903291354135988543284304305968430114694795327611339027793758310848934656193778666179312443879783655281293482219929507166937035328275111510789940646739420928916042313042450317457278912594401267270262774679646292487532291188654018355720513203799699546432672566212425236055860082475057168750158323171825503959418716061341560384210673955978575211638158336158550149792533541561899361613106283488063311862077141090448425696204091261123418206157166955889096820323166309483454534492526321952895557054442148751846531049849343199725067471148170897740812972137492507824158301257883961069268933938581557526502579602621368717212693565306952386049082558136648067109360700916523908834973109491314252897999224518221424774841930290615590636798579889359487347772270752049912181824897852826081023832533263745231218245266584936510486484749872846225375631032028011584166149243265456365838440058001338113627957566515269242328863997243836734159661190641410781408879719758892114527801561953191365743024409581140878441334611157709718718738268727532695881654127729256256657334345753866619718115945171278114389177766334689926943984061560896865407016812340990701264286684014906799362098497077763181095096449352200690117173812514796284030164797889389711344903326483980779606002476342996403651650997597295736026608107152134987062861537668933274969829340077353120672258142921527944578802243945168143436274516531966472480021883241699981271830731811069068515469311741361261503900470968220487739783271169085567195806729346518012230457501006010918182422917461242774103214090596306693621349588615228574812291584111323813434656128229725678977334505303610483354661380478222009357394261073375854254290736096959323090948582279541609006534683618182569039675759291476291576562042329181429769854711171849115533024870789584838437880600071798961574541429786719219346590043955972619507394672159176967252898840395080805663527019646297576770919397139001266505591346404138631182377901796521265101256496607253045032811599718249415201382974666582549307438367586771006520860495372270284883584039039138460411391411820971901249376374917326556232124088979920251770012636165750303419481484927498703677532002146425783089374824610154515627487916670370911092507717517292117479159433083730719509197867647850447594097932736083324699671611637548820593182075996019505285995461998889122306394378861273357090470628393701974017885529379507960242649582425787017309347017199831444430491715201378957498699973838366377685154558632921535255448228710826917892739299878422542250036697209917469452936933905551737786853596268896668121988557365504134876563743383454679059679622197420611607298479591417585736429099329786681605382000012987714526552920948518692335284011801266499288552724555920295928046228515938320071732285843304275105784526972992019768656810564464152638402651855065745321975324946439890934594801587389952390775636988011240762021268836987809995943953877469518101605237740529447478927067314593830140173053403766936632397888036559698103315817609276129383919007342637113862325224300922504539309272468006857970497435360119433552031507893105261035246861966866662829382311914479702899912228395652787383119525037424898418882606583785012908961313380637465795503350313180398346074663158376027479736525228689624736054159798228286238287725440911974230750244558340110593069225572704041706666192204414930014188220103768848858527953832864554658804343137121572785006332124167419417818096267023516033721082751346712866669740252507461477644571094230472657015711217068289029965448767745368872127859078131097506032175178378712003340751295138176867507935494145725288907409094847993993719048438841143682446156127267521522976058410764091258342206666351257548666789882054530874290575723162313301811093443604466366949229622983117161651540220075206358336086567737954114374152501063616955758783428379003150070592447199437801644139576340187043851976808466857749103309730206289600609268886568765891737608878067112134561574175883064079183901959194328791392943507463285435763253607430976950749867232929184816482836781290879717006941752206269046226133623234760058796611878054011422156809207386414016960107761195475367254209939125608936857763653738473023049759429829967899799745741380287941985859395916024022254582947081780092316380686559531033096547155501033322607732611694216975246383458277078468321676982487590856366438147412205824101705338165726144788179238924368924642864843233055757901637680509172858934663089831949361981322019743971492301189886928237160725865675362515530750354698457015908219120990782117412408892673063784263703271782715205466116783349257273096088186513617285904499457583283134239287524308591219161780464658333953576197639460764813401088270125170471812539522743113279268438072622843926978988987600641967387672287819996581210790474948202151798159470123042597462166992134251040595554033611611025929468274198612147073005915753435162289029498439314130607816460398732519230688934159206189307830229850451480712976247899316017192295301015025969004223103440242024444796809923488317423200348752293762536947125805995181648052841891578214446357747744118302531549516090227194092041972482042995430137437461171800015456328482364511901128866440819152339493913019882938382598586457653014168243360222170309877813802379661212860406477761024980114775428605627464739003535210252118074044969080802643580695566701215220675068811214882124417360041106685336643633057336138509408031759440566102799817084305199743030426828933612786729873751724421996549372734116629110469900770196372265531808478454596078358530201898880066871595030072481423510020847941398602349780918770378466131440011317259671709357485842819579871829922495984217164809032227624761696584628514948770976182698582295317870146109873184022233241356926930301759313760783938875944633079923996598727130332858749851911025202190751218754607396582566492725582089548622224059889278002569625410711746189709995087003482009178663545831916643967962519082065846926716577829900634216906214642139678167383302066953494790842226360327668486004487629605677100687292270803997505244969477663881300688453779508382676336247479088520007292668701454918510843240751308675623180893159293582709052428438645821818456473785350223082301410021796134418140714431768781869670559792125171468549637191002898435276386754243847717074615019345704002029806013101147306844100595415693541994395075954791737012853124206561756165611203737425119842451474237955127979349820337117679153481222016629374756549353679063339022477965553517081132623201035533607772087151307487986335128281119599225780012103893926837229200701628906063813156169269769328259541196715424236839097786595507881364981221972534524320919126197618999756054864945249833437653644306405280155078540151551737070804793018753499169636054021915390176483347840812965749233541345144871318201041420120439165480267268526997196947407954258328369450141399432140866339582388677361335672537897453709700340547635567822131454630153282398448283512279266167551745366303375933665245879952530184799539146868287263709671937855645267895356420950021339986956366884806611460076337813583917353866458425737492337616910198244323898192424793187556784446434230158104748732794563965977478062805649910090001123125911256018110593104514202737544025045389707756074909721429012408790204810888166976389363159291044720824109876135133012548913709454988339162040335283966290086485628617344023916774251058767305848585847087329726345046949522000529769729688368047430974777052282933484275453181756976599351721067999182365848311393307352479626457265200965731705182199277420544801835863607035875319417142393737674576509288924440918952573684418834518487373968462042229057811549028385901345079821777053365099267167213134657731856629642638928757961738481954032343669998178322468995759179362478037030918035506971665734815464846943191609675084130546470983114269142532623038451521689343902881296341981287292985217387142630199311191336635479995023282351496222995895857634562509385554808264108345551044544883452228572608245540023353184108619107637530267189779121734583868826285654901702621287439422696906641913725555201102903704999693736344013721691430153921939190375445735436720387129267887008547452233434888874748093761132589435738891889216229876951703476016411063944691496462533446712524118342195323642859322381696487903116326547327531280769568647619597543098835891925938997258080067929787254201104105299001515457730812246885787266452623896929318589679804705868522496179951051802590150672984789897085244023948153294170578823136812810162562653907840369430117103321795161271603162076966087227429393225886396578383587537201829860092367521742814443541494346461605305188101472245474484129610540163956748009862220895836518491215238546900402890372302650373186721818592817199762785407850041971967925098721847314243952145314796529222004232478827915393423286889291504644499699592749639552137053755545208175562492329873623136398675088301279699967768485939554233248884460801630936411911645228460141422342688024769731056268744198469939534455147682294121490111500162569924610235602356511273883586724198708430989007088745239951710845297441096411689654402903836043054727564961917386247741293445160972984795387878368593099314985768532761788202006377750541575994365827782753655283419225434886051054812191597449691928389922566327661270355219199383641916003586093082584936229941023045160887633800402967015810958884100930683383073585483750832229406634656644943842711659353281544379065816509991981095525239520693479670602200113796630888752527949504607886822837265188484711735858329536772457176731918876715878300542799347637869901886944704056123510881410493986196091573144760959426906572524509274162463962453052966986220647321444240042613334108916151874373702618018263923299307335690982036537080675876641876504681812591265995615862297299510802862634062713420772776400698914307052727699562837565361439305882890339654596418545652965227526861778015808204689076611225575920606368783402659024545722154807121901341466406057784012962693140094123094389566767311869177314568858749674810035352851642286932641839410803487903486495167547167028718874346593876248304093455591614007716919800300265648223504180874567350420282704654447357382758960086671394290563929225723369915614495973757082581885075789769280052489283028066692668044975518095607160332266355285408679058327995399441050607630345044503607150304655211221499239018878729170700481149838060473907421856484159053540462788109373906130209549978183957303364945410175354199836228338812923777704637900784225513012411463056088209360058810150906682716895985360868516742708753472148358511946367597860140624200191493506559126005329607402209789565711914028444119418977876964546124662833673963185075062175145454809353043640080340491259631915683927009060841812036638142830834463758261357501462281909750462503250233854230858026539346537358129561368263336382571431852305032072649081222922785321895581400231213316805980414404068875938053529767609908486990118622731855746657866039587376975115231914889637020637342590473539771961730938477602816987200593252796147995654793600078572157847680181432025937095136261725722081257032346575728380155712022224808917131585413579429858712901161458408870156504746403431034619451064983539167017743201117187820216975757130687032502023369170583245443708642308921616196842202699372302264686462298725881937643374529430833273958770347363736154033757795164101266090525069805886592202545008421945420239574555698158019622378468070663961403011025426574913172745711697504530130978407441090911901115125300925198918157765398743955488488335355473921340281654900161967426463919918594023287010093562190772149035546236527303882376072202260321681678055000839425221913264245817309562638417124869790402708920657024804959941359209181327900239353388938201837189218929608127376537380301125993382886608874072197858498896263561816946524037651565763801415533887681357054224330799602855443720034930695506846768087238825950730661935144321165328684270554449229788495051681403913863755611851391638437464448972579001319381211379032714930905211868123524478414423953525480955040852803518678134551753444185224700779399867105125264397490473143693526938329613373641728958930322642442628125291976916329417247308239921233047970009414818279915190659267849648335705173546555215403143581726542943426014893105708742826142567201722154388136218862143419109130783338178467834219778391371567872415081799887249055531506960072502335455183641560247398009635645591979602037402820043354536635855895095734115369356385017978198072847979615372387282293312697898276888566286960054523985285768009006749408968799284006724865749222602390303704654654063622862978317374248585444295981248591192162671698633325299965028704931115228958361160426381091601845384621294319823777611159502898811675811898324000961659590420598267488937658997184045787197698188769465766386007308598896973311431466239896009895619364635855325380926102163136439421038839012944073957093014059004555762631741438579339129648402821043704158334738109394673371450799893013940226367802588565878609145483008488924989234643993517079376071938968363424415691232200676193158213636107014212224710471103407151310067282442635079961842707811637879669454630540483141185937745817479997793083989165977497842172701945441604246380347535148497297912669094142742386354710865003713674760272202109184076468366512143479357498650073817440393177458550664117012047499223778234173414553090851990118593700828223325331401239881888851443699663274995923588419100569747816455338675633139728133095150968228861657761989627369778774460497983639945104099835699869852117087576792329162348746928204677864934693061548257606793883205858476599770658008120711435304103566669697879119277762500292559138464325901532423019931520515272386442358832091033249301225360849040656701298663265659218211861091022155947820853669314471399010822882698279236274897011207122014118879468324402514690145466067448267700618278071102712002841712906686810077591218436655451853464559519316328793880503799855183328666156839782219142960201955220326820237108872642059888190218832139190607549690265891802458667091586375025398617787185599732010681717160622393906465487128024618177034841779778588823780800075196156913657872680977579130161938260427686686151193727986659183850100570856514469897852477985571367984017459962339203613204353002656635475568786085224786099244710318186166378702353083202892778406270069203173818898896158688641058585812118334232990854985338210565768405566152472944011418682118844382376338644416960378343656667438180433786834142566237459699681342596421352137098840579904141134314695917944024251707592234192735463448509511353016744785462035496804807087036863024106902805828042241930621126295971084982924930228996956952351999725309377992124289850927124355957609981982246684779449552848470740749928069559627771318504043210778078771582225957231462409610261265432225543565022360237045670791261804625455507401738139745605689373489429130438418019450261813577788917678466693531633855197362395938012371638994562022053967014515449772040153661998906475986058699791680427601303891345140997895367151488121127231429098671224933355050567580657326493935278155591770832371029707097639797557521087243135618698530801195529351808014722145200605799994337195206463061127241283971384526692144779708994808742759318409112847022882790611772968625992315160009074288442962671091062408048039644277450050010722871597545959011578137896989173413306463118822611642415462805624744295604986915888196409925699308609853772036214237660146869684664784540490456190889016492500893113256155960308965185097468389038031660873620018293472344124292034179810431193831021177011591675490160288501727696103902528536760419399609558733410921518534544642110615745877818296131905785659499140490640012085222165567082642677589971886003588342920803060793245110621418634221481955490109830571953106405720064230500169950568506344562875342576675848385650447355325818427488004895734761858234769156557025285714140426197274366296339699285193233096651690328910150464337388560734813806051261264750269882513568716650030402077124749368386283321885588774145333906382952104355500507132147291495597152493374345745652620853774289282034716729880995881398859516588374287899419486504611689746585619206102685021429953342491386763912506789044515516472881002339778160360914560138252059410214976136438104524724521330923227274808445847701424841271736251257908731682764621552530559748285453927095589150315233417405551863771087057417675000161974191598803833301760824331584200678529658154006573787332487873701754379133944632231984278224818014048542693181260213872730861795995066335272849196129743202253890679194041711669753678007928970728756701260099800091770005181026542138247784970778864393406399198310237602779099213330305194842669044638948322726223047937995029934833498246001549865762169968372104998821328949074025126124711405773449995382566136009224643908924950891874841085623333268000999906139459051057743823168528138029817868326321101033203400515056110184816579176833704299157194358203432488571580493451636338445595139643822833508478986619810180674604921676313367069769258820227569915666034382490146029065724529115130245181983099293490198812748444184206300833747565618930114020296908440095782054274225876321003289331285299709418398362208881375164327709740747369233338277924324703648515364545653772847117945999225212646584618671389174235486865821727216658605065826879727141676324096369846603906712587936380878219320601757508675274701161159750191481754666156216545612774836050042369414234796652261183618091447486265906717509044103309411442826024430792788206541503243952324288237913864422869427099673734325674368268634587331243374212099239179008484207020649319700216739343442794216759343157335414342102080281444308083457594644029320915572117607164515434222634430389450835303629937031343239056053121961608454837455828728919386110025971296950956793670111301396082306122098066501639334849687864059951750667878491542546842555963832235492177690588723036089333731888985258207762883420204456111577970329350214482090565274917002305383803000234782924982842223326924256630408819089094948542965431922773369729861570917000246503827724482822085490543895668173974441764548450819464188705099966410024185242605834631595009242364018321971818166608885408878747373130010218600715776527533197818950817819725778465426002689208575574841206044317057434108194739188408203135023696222012165673813407833079605819518866614515470924419402739626950184287403677957108196137131488642329272925781554705861055663749557246744490477150796584922861944608799106811736786395152578869219956448029650286140551132008571559174096584472644951717670011286116548319366325885406013793662392816914705744783828962490376008327031925023120136726800001022724290657387858097074245717415656321010398920649052254486163172805876279313244659592529326421297328299269280981223881228864159013730505950245693119608171434260783573185912233334331386153084652990977572201360355721172820273406467067267553836361416011967857409842013950375494579960263198116344763843269414940159875814161402528370590166411864541048243281662728619024198378885490923797679594389262348506729351517131452713639519874783851828536973862332171655967381153172041511903557764544038350268036269750725907100645235456476094185162926316324214687134993394479316330465369682468808531335594210722559615410277328228315352684800039124755149706862513337213995690005796517399004535980003322828355008199916292699677963817585933904474838854599193431619472027551021737996194065880887173932754309051544771614903247966882688099855596449404938036653826260461581694502640294640498402519163864815402783693601474162546158960723635388381229958754706477895756944744161032783040372062434506957056049497319729434745122219208089148217001228352981415404009199548637664140016887535453708663641184238421155122436182380160386229474432418885073460915717238617127957326882990176486111000347530661122759447288729238570826111833893564011733562165043130822023535163110185096104211219136298724260687113900410394607511852912630782464184887096008734031465957766101465103429915058763422611289187264806565980866354475257536621193068298290444903532650011701411113332466254226968906924905386226087255185045157675576699417939978410558117795646830597852287044307927582332987487045916730592257093859753740782122696224430779184292649066622857579083154842610310216680524538114966246297534258950042881635733884131192036126551302009902520591281168402428779038731093114967509118934910821893593247991343138759734957632851535483720808774924898544365740372731158612858201095423506651542466232076855766593626650928651228264241194462102707997036555935894034671921378314770016326561599964077245938350290021640387026374880579089821814407805438823327950627493617526457934528130294812522926053524243618484848363437681384507557925272189847364625522801953017914372815182758061000254883420205312297474267241882537254265847680508375394056104405080638612757506056926857237219187852718415940902517444866530801371494775469283856972713142466451461437248940914405430318443908205784525815286793319810268242326663273494448176842788925641722016230403755405513340606348715269631242212114299859051311354720520266248818717155188061507083877230105853953421705207321133924984012709784715410677359004309834824149767605484833138577002518136475292499569932704334338615800149702416624116934131712734103737367882767221831660827385965156717155178908735450662690320625962268862918910246516185426848939261020965328302785477557367939611291626445493140627701154472569874013427621820053811771575054264914015748597997146924757969644728696774230490680845635682827542534033941936106585418219382936773990502674790392624375388177053261617620997651170687034150635199681727947800278429154604477712970229658700965359640748676048082530922313600530801555845828498834939284295851388791583584577310130601035961076725136444386714338677919549762400751913884879823324494599330572879519395579257841506980820833259579198297496901832448939239675392770231740747244407029355246931236065707950454832826022744940376638248437280490142562604569287907960193502783924955308057928338828707824640826786537265788208782646629895165106773373711366613260492218251882220174472045764376406923557236963482401629133680038615138314391664993020652252562331280793900635242817758256328298515877068310464582673952306275766674072845710197495398539402573211278737740642170229830699588696116041684915343375849801861501524810218901616851174668767318657232846406789347854445147450724369505512118651367305638512585755063573669585575796032562737974250596510581940360990134529127018305403745290841699082628726453028357441732735003819546292836514357765643324473369632923418701857822870087526190993038381742756801052264804114819556213536203316251037999497009439390748121693806048285681338200900996500780124111483620289610771216545566999990106817629488367051491664324725857971086383940925283829675522562906795387765890394875793519077440511903287635076602830033267044616119542680636598091789664872071727293334105455307370856730635217960050444135605926640018510521452109704909116642980566365357348982082887259121907603564873549098266801643540048639453595827263017214648853861545428569662336537477392602563236283345680680630357576615889535880539746530729450306533477277923237626317436710585714944883108204081201921839481774764739472131052045028878523656460814682493795329223376530282796403771306535473216337381062120881307878188460706095889633457795190840382445305644258212492886838549611576522939473681623161611278383629881548798088207037662527332557060339789147752239208017095885967174205721209946567002065228987430497640248235927372133219388718129304305138029893425022211161019843143270305994216963568239205178952879939776674505721529857026932789409311829804804378848559150319876756436163698637056424873911064155619675642036560291676776097562503147078174443290788392686304472392921867322591152170468147237349325903996400219269559169602394138080934902409261258827578439402256673348105355780032699322921233314891240572652511495184136906582241522295084863908976450539732754934999436555415313549904192446778307317651749299028161752660926591635541761737985085977578490726388231817245332801623048212166806731401155987886928316279590886297873149723336829628166442471292668113633182359322308006099881803078822391499686048225096202154316194320772264745419696638888109574636402802922487393603512748724501637900177670751993323574060525049912365821333480589509579751413572597320128454598211147155251586412086165490794253143923193922756109635056749354721597937813962214023378911658831800369227285763865071289489161068033540693478275145225765338528825145965558859822575817700395656897995979456669073502538593155232819974184388464015998365645946736933767156252014131694849854548508162914299725236806965319666777585136304239839072921301563156497790902821853329890354530926963361409938508196433014225829990245090541628497005089062193952439898613124343735754296894556627025981703101153763413898345893126269739343451053023672123683147287447458305044608220736737905689211644304439096933459749354014185807379793129652475170881782263156587866776540333304027443552583080931598773081721642143461536627265007563055578171026640210220727871368662825610459955852424494521016173901742437754789435712482705159314285133520894142248967054245854710483265195851115288916599335270083773135078040768654317019982858964597204952853511429490007196866189135241160435661110518186531474732531966088391802822019314020117921606081177768653931080465599651955647953339673387526884224035283436086552026923192290287094292603906063049452973497391487674723116969560173550274705148311656596252092562166777564775487213503842579508968787768411238854258837172467121717177276549417802597853504479068749306475541021121772787936962536845774169642758983262373946267065832564543575450628845636684699503561829047388764632567702592584359024975734654664885095216524811984850440025265232722704053683681910545405785267111087014023426223962935711254166273636018434281083203141451853820972678936162957048848085079983688507329524122151646971816172199687743441764750291053843447000925819880002739173877975527707775231878218354544446084705741044465188543865640560896320367111420508773597551980623245279021600037690704534829587208156326244853821440715587340074904468993609648988395271363186576771848460139684063934278533967303361626126217815314029353122883790527034761902899994526478404659498570084107254139204790530818877652994738983512288124393457749735629570979190381067557213105358710972805525541458518918785103530988231531169826393504216323512157895682660872647269889539968339609013849610867357528700307884684289726047145876256498435835123499480972469549055387619279719056694139980028531657864591750550241636059687059905907083658317226180577809617454481316290020485893300606238377424150359927581686422331079554828026510527040036616258174242302084199506311210148329361873132661439059444552065576406970825403794467210990946414924399658805394730925465002489288606508794000449860289040874434313655447135806697836993483329480967261048176857694451035859820348511745264578686492031197770092806837925534712008969566485244890901025482991779005929880787056665941415054814301100987220643362372839498820138769666096806456558257479701670557247549162553260928353755574272981763028843383517992719833938004437870193008223715500567968153611290627411367190870097866814875324396007817584876152343671332561064803587896616795903848523585233974199612567251726159218755807814799270759043096967076383219125986400517591246974607170558573781494414404495568626998674012105781793017465707933381329573822856359901967102282252862722349266073737884340736011899281803014498846210674973204345575412119404999277447500412405612077570450577458334250636710569626646309669196795138738203724097061505762972704898942363674858911034314172840261709641146552363633571090086158464850258872366738366556923225700915258179218567039107473845333045623677016734585136328516528581279837431241662333970803094167550763387488635126216287891186462491136417349287124643343411505186244861302788373526806678049640496814491632874378147918686533345027752019214629088696900767092687978983802841287410225254402556675585843463537965322492145192918990224953340967168190921989403140041427005854593339351873335073830551997388432712525590258721122561545485958311716272159216478774411213977670917561227637735107295152338482164540527666051271618266012898227128794634924806593819282701421651679433631902020425351848333589709558254300173012455062626878311456454350194451641953858997401761628039231847005164399975024117972814398090915130877461344772196677600082559827209068245631363656423313788615476547792038569301189413228015556586504132019080432228146507526938363386567143270179858258237211704946894575669606942707786393085030747888026222876880196339303895250079102953188541887014858841805521105981447512650529066162038275405885097968262294966676246600667628074891848355398803406921313309932929706517410282934140281415548822689483018422767890612058653011400531816991687126244414710589885645706853225370576694123743458605617037868245139108419148023142716575617817402690543910509600256294194698217329041525870153746355684497162250073539981351617307815178461449383804465125602993720133471718442197834907400673272915765592529645394803282848704711537633789242107934406706190857219484143626954480972805510874307144857267608357316970780634562848543310641765218486920415708911560871874601773055675041441248690313941355270655294310299998234540946236724693109742980540124930990105898288805265602975638864961020090134726889803627915708880052418165089240182722935191476859807282672606951300292487948493154225671147698032826382253032751140701139909275312285054647139492858562602856033761424644699860009413067009360130025143015122442269925309985962281204996425753540366167375432331146059636693984432374582491679654947464617711680466172744625982689994881641191780259056098222023083001615278114588899882577967315416359214837133814220904981860626344396649610566056148977274233301244885250110198272443175466914765384960701118138156178602306977119943485092698426205879063511784029685679410624278434308464180342743287791850264797894068573786557691932686570188814601188139370677374354248170982926516883866699097005081425995243084150016654479374144244985376382807028439969767277536611853588766633908409889098964892749664058475207898410751164352633042886179530881382311837224541334162929229517854414385478723142252323926138256372198389980544398860333727149981995977473150562043083490034903503091218981485005757944934949028033303596673583716369742420352895158478346955492259921636708644206673167767143309379792315991550816964333793846442900873233907217928648546823743815735633887834867531977423857787575044960381507097331092839323278021893777996718836751819522985859748199868116832522002855696563880270360765462498009233237556274055356570302870713183991583722372745082331673420044729585930024660882309756650134892024885644349905482675833472577743961510281751865848683105672984643496018610819664520998878880198151190455946239692745960385293070491281236621525185748742938972660465664308362112812623089431644377586942259185438256786244225496284389170166940421031430797924463571117721717902392688961947801952280356586293107528190281825820080044346570655623967487797443271000401532689790187007703428029969523636963143646398522030940044368432691432186520132053096151821491604503881071160546086837211416205354461859689923697473049835187022709994714384071294903991592501922436023919402788586424598317638816010416318950013816748998748372883954220628260765544703545749873239368911605975937318293539844330165933092749021580847722040938899941322101547495744045052768064333965474106813348728239783338392672706236289777658644010181846671388760176613877650337752938549183086070820376861138840216235601591350654622409253184955349779263389767595664729071595839162800770710675659239229694456358930291402111962639887778984635885837758478524533257429525937502754716483880880325893070870956200632877334159067520246826259140003409326024967120935972143581921500701134581259047193879397802181556305123102134046302737997686597036254954405087772203876176152500786135952678211358494458935793361072577675257078268608555856654731601965351419293343489666438160978697963246371780193946242615608055306697660066036922767411262337310662820659523368055406260929275294149647209776459844664059676031535895788179056014372545712269759538109019015215490939396898145373632448831833390909312182350652756100080498470298424128515706262353810423896617972414146248976886376194188436335680424590199065384740438727634823993091373776112848986009391159657807591378083839774568267877173235283552654040360874375943569732517158216011512598114463456059968024738056074947875962833704487023241402470065950131840845122837219878910733869343927098091926410911665890458772442552856525605068867482598363111286838696332311245750632938053285695777388476425289778214531939161651415845411699944243938767397568505478549160600852077070673653653774809520375411531971514380194326591192920265379189103889766509476048167872791027281382859709799136434837734527938100945351532584030229458111929420363987864653695043931654558832331090665747061980293888257735632465365737045064110216153190404458830381280188822698625239929411064516312470538471180255088331113910796410414870692819328595724539520686715770885262755843916769178210454387086465576880227035841966527431398362265998090823240520248579946053203840987500131715848223904454088189478583013291285268516856651089384999921459819359217429811004072194078074003577042521520597243550497633110513917986030970960767294597031999217987994659435752347371929525684446970825655130643238616038017610358686131847505975801788870605645221864311376312835155882017601644739394838876614083433562801637827815584879496278841390323938010339283652006657501627414861088680784862802483296748838584190619366733474101864279946823089569749583923390256462772383941163815053271994905002383939120996182022604464318430040042961204564647092900549856606911632574233094156023721836178790561397698343335474136434290340762596779716448946075017646631255454968925340099076175717194214762814012577080917267750830145899664617427170540341721090704596128139747541669502175095259605164141280575752877516566379574498191496763504486883750492917670606124440590086186475518438530023314456908901474765657221801652051730351794525898213410259816676660630075832947191805313568804668813881968000703581096511034950106934880305611512547583397253279010045961368330285754757299118059909249746522275779039639416335245637480231390554570430235565810416267597019427708735849618045854753138664436973679404641348057175224767683773655125335903917186561893059502396315742502989312665700244474391666906784556152149722170762481355283298315698625196845658641617275601709055536840843602709673328972642485861473528673633830596915388355993888187055079383345838738030649788802085169997881445938986725437676841698108586582584285093443927612282811804339924391671872986361533387380246578665030045670825943604383994559521272326373549088434080044205408335432520614445632724525570482985022716558668800157231167184184503621300240428182718069363365998374278238197430206284742264205541230174235540322314686358412687241662717828400400293493257012480158282954591845730580580429799094567534268737213828927203810068983207149376097738547360898698310083874360991400443177328968574892689944929188116554244238906835366312395720989280226639072967923687456169877376639279412403864239037610569411055704663454382380655813214086200607404937156263037648715656738458531202991416268986100671583378855903970694823836074153783724117529008593751832756722313474345527625777283012174888572173284759571298004676737484965694939365408639439081136453110127648195783403022014067744610283227605132265195777767818470865838108851883913389627987770851503103904500976425215482008503914553799558726478717306189454821626812555660343722919430050104119269306379057001699886332163463760262748753502569286154249687641974981867865874102531974509024736880799886883740497425139758988384081065398716013238054748226731152293309919597022047580436749907435894314878618073301943910073219651163270631492995499956353901607707914988781940754056072124951065659919647169167561723646265654610806516638868112465328828877316558746065016009877047715348512675366519047172200499906784221893507698200934173701298603309501857730214359109777643081368131738121122854594733137525481239406240817268054052524448192467643502601100539367485378979757360094310136628575015592095751869900670064802317027360076805129458712710980772801846273506421086754477476616441749708980283256947440225780339808270072710215429957449155378701961710402190128654184307132844798631697990665441245471682121343806705205885772665550819347386402803277624249811518344779921791108352488104016679058285658999636451337442933459893983312453712767192686037230391546008090866435751715960838488222832894093457807054341224570762994523227399338164786352741528132006751132655946549392062212677519179769572036632449914829759928424046018848357097677423895199988943263593185159290863960737800878917217622805213232845689814343417376723052080390376882213863003736723530317024134339476098856065630672038941386078647616210057599079186860679674477749199148344347664491886338012265436656327778426239230178975767929741434640747801616574784990045786747313196761290083116344380215094269658522701918470330615070567881069909513031917207251192673442928274556213468207419020899485617112871464549398716163036436012456517275802177432329874567011396006067335542292408625006858710987065862458441394074911979561911542093601598155674323139294505983328493053083906465740869228078640168656740021796590857529041970366790659751890856395724424688166051209878194846810242956126363877261405193972026517416456843619094864251376997516005749345051542207186113869885002484893331746065682967649074487701829616960709044234462819207797994553609816911573445761371200423270816144683602794983025323809393084936091792057480023626632988191194362102329965770105193846595085541150639819029491194396414889525151172004056150614524126065007901189993183419252708736489794569783559302177649596706778297036108794280836139373377173978718485200582771031459201136302224317991091825355978088924271727354699537156554061784107143547467461014551731854835002376348217874367092261628675074649378566694976351093718520087642590253685747149336919607318741369474221506916075747266508800666297315623116883435028546691510385779381418975006914242691880614751668583076980560651628591893215507623964484302114893414825263577188868607376767791101099732204028537848323312168531291284253201299491895734113975935543760680993588620222259882535736595221631951806503358333052028225015026535174238657873373696660165162363720719644801113166335127180284452473053192785692701358463607468152463766812408185685473637876349167328452944535702759104189957761807433459409115010364617349135530903596531886276811383140230377077712244394532810481843028556809724866151561731610031066056916572512644094591157322769623220418240796354824843635024693737528587467941289382021264153820990072755159625343743824209194117674730325387490662751224688827742920681623809473963375635517611993540569302454236871499560054402920423838171198673516008082955635044689390652746594713136868688032941657769386869126517547320412258883327193764391894720520602059357510808121697546333106611553166394213776812036384345680015286366830183565701181304931077375554540705790415501504805754708689361098920471968640871329356910841941201167209664485653137349610338649930643520955886705334099775044749566510505998246940079114291661552275500490699279238283905434989165154463164787383784543082203084383528835844462773894159913365423328141191262054506261078930465099419887025254839145414247785352062931437407687760472716403798745509382084080565065241003508089114799096192245742179253421786551912988654343582596834922759597662810455612353661525656915093996814376824473761740388888491353000622597483731628254006346091363332794535933522265252950063984150508235762695256060070203590548097582902894899094077408168941755921939238074802138993946865830205578670837737612142816651893460892123599288171134355974660537810229410633968997410045393933282441793879824497884085169634986710756183294012783314294371440053862612200895449408455046214943847125567872110482937753166902361604260693275978685943849428557281675263013571725611295597011503777827199233238514456153776380482938093748427485425985356274904453283745860744061266587521292980516231482953115401973781419121525562416920645615380995583728757492413603766655931288379594128800487802973403878819082583458739530801225399925190806178944957299111607738466165759280599340407077455525449179983936264103582382854007865392774719635062616833726172239701924973022308281862968836563288731401104767574563411380596264159246064550463795924233054256951883552656508671678156567165032524169012259092998677980501042412235824044906381599742489641298578177746787876901669688861566587487605229639851852155061258894909887255928684012904624950237618784585853232130587665993740868965651863081672448122598198765849062318494555709128672234389224240813160927199296628649953364911164235827042391766736128197660136670961237801046436521130972775666540417260069309924766097578414223513040567871433123974656989070351654552174688934374630170131127621065535154910587817524463314310437718173468052144062698770619899236624422842921906965428970448024707424017612290309557677978753261534549482776624777797308895806662797273340149144500683369660490660416776853047762106558563427022262519221384511201257818133648275939137162315387352456022173088312311291089242525764724708796345657313068574343436923036254178269345137118373516547572136468756798072362614442903322320421374922419426519904485276481526897561948218721020347603930133654290205852938766596386775488876026776895851627337686139039912537832833900538405608232413994179503289376530414937912673518291508231404304290781079876932790406382251211232636624845349439887785586105692548266120358216959727032462706707315866488897743144861134396859562501049251251790679974834082792012847060008953834978424108244894990333097332508266989122926979547272700516434531635713851775059615490656328884124313613315256651818034776956144695182161620237641544142785101970486802866944980208964370548905275957409897164236472264504695991088713769531941294837380246702398284910760561341627546766342773369350528243277779163040915045361670256611240336713827546834875713792741698755003480119755704449478230076680341469912640189953900770788678297567707632153937091871490465326614745871757583971595302502913845227629838542253154733365310835531702555132305183557509726573756143426416311877572298972283904782910264605461985873155288640421189291300811019894130815824158803378363769175552592235235905918817676671842908275681403952520661028576162282662094071734397197711790040161484168692648006865498845323358101111311857116557298215603450282013230571767433136478693763107490573482929550614326688320959203894691643985697173968447370234414071338067223169591159103186291922568785361361906638632655095077094156931781397994307231070714986546040398629693767164519436511183123222560166179287201880416264527309532628787945135272221750054045756487084475957426887720223320155569791900428943663964494856267408015321816273126711219139324673093126487417358931322304011491334356133612349616716543285040838285311875351468910355862442315960209491610382841990877515826755802244899189404359307292821791305046104704962762591315502415404098173189689875794036920515500868834533010405187610838926593859141481304469369156915236338717072758493697430144258349221452685171698191492470270911780941650265444137762257770271338697237736009778538001162736726649478603328718203176846360927456772753525018437755994937996845101557558372151476507318893249189025326595019982880895471552252585655724843204554514104795407563928372804946841650388664249659391454134645375295079159804422888920112605157269053943367925255898615931699175205684291891344082168068800550360948260463636389422581735110681700571665186093544897564105821792853551629357174818336209113390954111234503768962671424694941733376018641468987819699741612008686400403423232042148649038428232887706454083700590809247086265738348360473271492300331573661650678049967710385611070038638367930851037118964489282717392201159449694149330936696096691980783268140506036307593646314971798444862035808539366497746349903855269074799362957608519965101324967160655964675271559450020316010557359548610163434978029586319600427979859258605364124352816488309176538902012840148660856232700858807771784060296567821638037925259572291853967115715477991030796388943668215253406693110360553383692988980583107778952168125408341219100472682681663590477068912226134192384484233873317746935993715541717837795968606675617102452525112119362994194750212632546940365457329880399701494946164005947027875608245311595435204755603151608678419277332858615842606800249177812229967407506024484707176346771211509328325764035741406374685435644753382699478087503036846664602054324404398368440323286359077299102111593302051264646803979780104001131373661037503352848970788532867686698971070072121737251517955546823705760745348786275590174454067275580842017886054391901637582707014149946688057029113785460628644949080567778953664182026671304123903437182263559862291003597881819831693682253593107439848549757958377683360799695148179384861506697604422335637289166345243254098671796548938361856006236065124988282562727007475475722824906877508312455735479959943428690824723653818764652462796469715920991235828649345672341569765818883898650515357950211314031105000492138510888027296434261124108807181782474785676580963036510332467067068205671133177912645568687314967745147344720464593682308200829997300099885668347580218639493026988372991857337102342312310583903294251319853483216041312273263601893262992476471091256073827276892212670048453071810894322536299613875796129728419725833382018581686247680183507366193647466082218589400244419959358786314727287326165840484359105763352221611392031213279805492935830883430230466706321155786377805620821327431660947418689510738838996877347342680665878110963725184617229226024704099422027767849862487890781480204723962222855639633621670403005709973535678888139057843425871232574877719729583503108193534050316951010428318179116757327952879388072991348946425800533839240199297669483481615376831376589011319628540693100901881235717714411967771247930241301571684553591935776224409929069193513123975157394309569023625848260433670787421660252385866122028955108817476807632524719768391418729741543264554102183991379591674003932950420113799327184082226867819133855399663100635299836782860416626282296849588756213950694055292206531598302028878494042423318684737407647415122589567057537288848583487121209976353009794644469267693320799200188792461906636366184412777538090446465026821612496089532767109480473300336236195643593521478114231950442260527789123916702401878632735825623727397007936790862187338402471458871684480180681688641697851146675364132613349259620749431354635104099956072953552850915356517672910762446070203234931057193417743606555870911780036988642060765374803759689056833241768731040485359649489580436175369223503987127962450914159485346682556592748624275894372673262543450063487821997355456778098803794616620192976529854069261061718823185895197706817365659776100600732068977759524825252039601695986855910486880318609027694320252133513012647852639787976764249528915259118877555125528841570768898526700944561158571802304660688178204127635093146393435368317126483617479698125450209285098877842505170447987439496208815442768238699468073447057081300687781553542905303941625809755241896736280485697925655047162562052592175287032974622256093510036408077857629078118399306140533372624482601920911609272722706681313889305309353019892104836736685505986952929422117687043241219791792166499722996792176803267615686649769240673404517287932875429400355099415490377071543204727293607469421240941875355093047749500187618667299035788058559753779596739228662697085061978887694412905590502775572065671620194460754876124895377653751710629985895143809811632089641999138691312849294788086501815383414300665293039002445645123184474330703249088814965550230850898126512175787925902068100103025237293505256770765382386465788741249760863737113399271188789948976001604189747439503409323973380411580072098172741454065093051446098470948184680594422810642522927782923352716900132631209440762510506416362995332274072560231690563637622059630533318204853563664498237034087477773744315263029536641213013200566792166504774266715584971360717405714543035267812741699782087079085981592399759904737477549327220205650303551224572270983182571384691729039891203513273600797954852067951326043348777450574876567981756483718152097056362586714388875410286419576894787347265513709668727208519073744176917823508653401013270418011400260008483226052785697637852497553898837874296521864072890684990386963074888348935274501517038301496686427924878942739364174974744032779354088113453621549591085992673326820782193811375969040212862282810516518290600247265810995079918516002039652899355575269461707643558471733018043412556093044619360888013344368880283267312931340639794037647000213553238770499956759932085246523241536392369390746464758224414054275846785202046427105540416701649141439460044645249411636330870754359581658676837518448196031469977594482400652964039157763344921975412014276501674799750529288122443434840309641290425550015010984423184049158238812241997106061518742049952828807953956205782415315060436399010754407206278612031085170930306112166393827149566166036639882486647662514990883675252421332138500133353041267815409461002355093497364407711905240090047996626162671977262686916220769749566501108231920376760079228418181548861503297911401529542690572204017262944922675985044976280654500872065495110287300685554078922326177437212242816456173657814214618909733819141324855058292469778915005166853990353745066618680420095870347642867424785086511950076205812626198847485794248723753560840803385508760473129831478933585509280038022745561531079169528268765507392920936437181427680277026250523222556451668189326093909475535893788199443785906640467241167737543781522500458897895729701417430060081744734467498279445310531015852133901083104821977250084248777516030581092375319069012286591220458850639564440407231234674929994366553437652206457250291742756282376989928527519805393651147275159857061025728269217354789471106685108266488118462373738695609709591883142476728531493158881409451647270338052828084374620608326755909092704348316506353392265119257272633216103384151472376424615446962441579336270958828420860731059476906130572793771329610673952754532840084924929003079116617194523718600470502007885307517743102204946903174378554278080863135227921486300287916383791693401251381267521383137896641599917438490921688627315765448314415742564488216766861596129899628691210104250199070098820748763425489034191385810746799132998446980876383621275052585105602754169834701400498367174082635131467702744322098802981578762702125553990482695541436480438893624582815923987419531297399710366135158384591943926849312056807946045535474452965567398440383011118187250188604234884234996151961232457982197146723604929745416318973124946567477275727834394929471085907181153579386784580551195513238437152723335120547347908893525072512144658761903771461469121356505559432665754415850900529853966707084985254011567027548339571377094320449318354240297313285231207922525484875209557353714594068805194830570381313283211958647316279997276658047557150586785107948517138664537879293283841062133793024488387352986433654491409304266696866099057468558302839892466756167540526767056055586072079799328166423075804303069732676829003333827643982413784436516284210223973038738826492051747108719675534035177368237218589941232005824296233091592440986153673786766291411441925364158085272198143921712193164876884086272510212568698468905500022814015842803979830380411439405157534211269702849264977588601617825176773598945862396575777114969190391703385453691769216540219755753561409818559250303980395717905085901203013798113370535706407849907911897510788127924963698037820933581218185841728894508595164292779492716710479389308550676734778714088550394175716550371226168676838053794091359179616110837351020121315803166123223144463664298212132693578699805479848633696819450813982323050514887558133076929199080814481228251512946724308817963298891965804951082746917000356417268467637467457633640684500402886672702837227552058346589487340034020143095903963440795927738550222860387677617193769469062581076152640712741463034861470123592396392592368887649975036275390521123593091094936923441854610246847949904659609816739738609327769483270228862140960885188877778947666867413718493706773889646089009139557182525777714325854630889312947131449839425099384759920210159081101457688609083684158045759608009004595996079084446008155822402606761090442588283995615880526879850402383525319440298228917568561409318178611201383063522716490686596663302955880009828038272581822704420973840991758398884213948354455857143874264224405080372410445645136373149259657746920580689612703674175133749032216809768442447947170960527224649254603418356664586341096454263895306258728420962002556713063717721975487877035226512724999095690017726173475066739341914688456298501452483335000646768094486445252724280452056347999389690477277530483102388696425063605138498771551631912380755137290723565584130134632600042728595487657238076377030489286929351587055396718760573992018333535031254997025913866018229908623450300058381449889248279203500780264762416039054844063414655732340580456134774002088678550950381511989292450523305252640894159156133463074739597051194613159890471208387966896057938084344141891926667672205160710159335353724390759012891793122897349880836540603504883949069641890311444334307413026281925466506022924717955656365170243259527926972250781094867382721416430027766216227455843644526251266758825867045117591142070308373457255699208173275160518464832456686348620371142849525293121538615065475701096322330594146486904265470598779888209278578443422681794172885771938055845215552233680746382673552571879726876474428955956243876587398873854207925029372003716908667459840284932951591228396937740863613112947878375175907152240954109208998477049970462478167398915964823085854246056284700753349219917356397880318587843401070622914237871264280407701206526694594188926525836120011433222916909444493528588010347676860129248705765613804077781865351519635895765839494184677973267309651633304599883095715396641579988070932518503161150083962954446698500137595627529833112495289685376838574060360629464135357778743208761943791044824153195013581563530108855110820817315949101035418998486401139481772962389854793554443756833468675203191437044247459399931470330794179507926019777197244163668442428932895359484453552127923342794226224397424531351875811824225571680388685249903721119495450799655517528245719217348928406484836937107837679509530262232516753251960446869325058521204879333195380599895182803431574276632458071663408113703958081886303115081419000179820662843107247894290825616469194659179886459590382807853064798397112266984501302263062291231775318080122512648844618314415841257499688407039314470481055942873026230639483515967170717937567650963060779884503373161565295418961931035797884902885509021033221051144210362825840649691181357371875535968732910792655426685810477792305220686143387892444113428472859339424534575530591456027697862570460247823554759185355993052408958308392057673370898035954553306576904683056925216518274452420784743490458735503544602922099300278769084741777271285205012170366024532376726255210504441531505070077724472097996028141832336308023754522895487938940525021186454174870090043295177929255988224432010115249589675208854348592644075668726255010800894112674301678696563397076737261513538339252494464006040196588634161335697675417052596160327949806946311441690328465567054156611477543032915796097746468159205350736657503543777556738761858632032428907277390085353460691784891902349710848700659879964222941505900601301774171201835395432309356747943595696533332926090233889931635319346282975410350892774619046765979774571727580295961671296118137516708043131504192228310857524699566287201555774341685171173554616925181326777638442927504457764185975514906862530675337104115838177367747167345518924681484327146909133977026532150140532169858439978890921624871205097001841245566057161147345066543701201352496450013176844893336841453015260954424387552378899124993732699559104329934614216119291585554387313817815434421459053253461767151302495730231389684097807749697157276400892282843876826465850026591406116983559968805201342475902060222740310033203904118708146519020957511363365843570307008084246251453239133884937828676434497442740148459807540832036722890978143021750380260587797052514311145773030351084826780876397194870276931819078317650617740540254286036456669354959018939140323678375919703109687274873859928509781740978561946347711699657763319155807582071710413610038326698296944513149016191504081229423364439532370909934104139493346852089403448383656329365682398946409815616231163850409671773373799267541073928785779579491005927088422347556720969695803789347573535549693837621364585230735048177208289673266439208991319110586141389897304745845859734298807497464148128213006560356119515407573943527553259335491820374312880271289349340680328770919082724320142584038487105936492018929648789394273612184108459525757124855194920120925550691859601589503198524085126110419357002375408613238869473470143238753142853433978967661709381810173058466065858414851653173138746527605350696948423600191666206900320804070818267944262574504342342369667580290538193787975088159654540269129152672244575652744447134723385871259449028838188805767431563361169133453897796802965587420952397251970035232880981137007985594066984735090481400381078723270505873153895120948744484172519872151189619273626425825779416730886178357358820016447608054412538038194070638594912158810817395470267239650325444471448119801994341181452822911701348371798125574946539112950224306168431828337618791980590896217494111602556117586269728059426573918486463184363240027864390146439507500733248358202964114873349123246941478926508965168468643668236930061624466647828930803100677268175308718672644807904559080555595601724767857769513197084254745819895163379158091812958595023366746966860627571393250367289254888155872332675432124415289478250446201263627171319925233927745983361154687174132586837422268699421864536950760682783574160702910395107741747485534811670293927600397332465639296067431303354243439222531757925416145911209923263098141974292723657720628156936702428436285828054600617322434213514664666340652109637006731027966856622413554753157533236083331232243330574820657859827253122249647322818988247446015693599136404563865032648265260616885012609850266923486654259740709230484856715887103246631728412096889727846975181291901968699638885308678611955323528340189622501442741828677036816169220917803672600383414551076213940802643834832227150097903104978029503351620775626839003513467759519430780398471011780615958322211643168329490809762716468510317147426035055655554146628604427522319306153937329843647655121931743835922649297619367463334462194481126541130745948022492290611121291721833304075781960452019246930995716913593308190317788801760260231971467495001375049337121900769570909619247643232755586117126658268743733098716346057136447226196625780711725296720311513612812335992183255035849799232902166217092089508712376246088225130643260171348981957683270902621326428845067598213068340697801501515750344681444235949839887328103345016424042418624355627236362442381525490105039304814880980641052573668965941119273186610878280754824602182289688726515538819314445107970401658350384849063578978455165768363412811347082419020316305163327029153660124503439357277024864608511152430305669670215530070612463150887692773967761260017237586448316117256450665726553566626586775518006747876466253818315652188387692915563123722982123369710442487047767082203635448501299599072165947961607629586738368228100707550396460522937207200710202247363785214611779139054472149085816964227975840604959800288572910413073824925518123202835764564088493378529649018261259576575008836382289244278081233467740903143043152791457240613691928491336972536199131113311138392136182477556947675519072683029057917799894805296260851844320019258996532338814973845182046147753053165816671467232124823786816905741315950923721225627084933969731596235417145676722208186653755201040236308314534284828355822367833742391763073576727180571370415189698556469898782842775310886576520070555393776437824386703488783784546088947153089054845956035996014326059478092629813259229313601857717217319029171463687087271261904183021496932482938986802989601219266779585409563094712067003055266844487730835240381168665904374898573317619952130653233477238242070768413276841834906458330114555474952016982835716332817221156836982868255229164474717798001270530845808091117627501818886886483144846164659203892086332596637744513130944484844886203463910199717745498177379409208464264439442160689250563368941470054029485289143062099926440456496775271574933360954558627878899557589772043292242029626696398846333046499296699595311012134684285093822905005978576307960822020873111001672846485564542590360701555985887939285860780276589222727942560264828319352110936330946179692495113945871807113874149950711231476790380258291341091451638029683213776863895623732099860533706056673599957163087761441701337549489322708165088568242513312024178304925179965615442307845524592116198566480786470148764673957730320255922165942131920269718875015878657726805420335789560173344751444921019217711932402913482215775359978218939443252608758738108130657657886960372096197155212616666159772594112492030647031767968678783247102336424346107249589187597229993184517748956389696567818811759628741117761175897363671351581130267831832419744961208730086199538921102329334137269693014835681414939122548425106300693501060041664817459355945511121923368494234776021832849429611773160069652667593107296510021905942405633798434697725445689956712542479200017872733075616464942159191335632585402564949403247528220175604768750551430492834995005821209664658304037524479520541429678186880721089238977968892389482759063980400807208842565445857551660668042743725589497495463486112172650698831962926897647526532405353139271015235822267444155521040975637939801609487890776336368036245880618597376559638948259269042195842988453290658546323393556199338620669954669827438950471327905247848550779018670332791200257016078240358374894558084361132504564017100314222959567176196319356749035766546907189239027798812852545170507325103260496015192287518752947588502224926749443047197925931801467521399754909870709138110263228717793288398306800455201558066020463096685521710606072093050750149270864249640698909368824271051489761942649908280646780213595653851383524110466633487379131223526596063804162038830774509507123259488974802730660067181667830955879728670374901648915354858605018456480050001158916838009681254457187023727923509558041454544345202114946160678203639821553810472275980068123184846436047370874547367728599174918321631712642479230996462883539478669187475466537296253263794006347706986526070255789693507949788226399135759229757853134014455733254307965755739386464407626484732879248055606290683791615468760048832342609697199301732870108713323949261487646302375482639110655123990346874921802269797908892076659805212779553960400504874340260983611402210789536946483516964798511239508778963139904173282867140665917207949604071331978195191466127630152073706254407730386308180331967669720400240750835781366553440008281939869467357352464958191639499449077584487805395178857867511375231595254026522773785592845356139900978834818231468765934955003800478894875081510103690717388097609467342256953277435999594428964872562111884758232994320937174513879847569677427403305686842140637993753068256831128413808973674586101950174480061888964356073140684502195498673732362313367451128791328432341858556896634265673522040713562225157253979104254827539941670272845014889060169306397209364699527814986767204893675017127103693990864413207163797952496559496278604698178221907666877974037116690576773185400925303398805684856282480051944206881142598507385200818848252245218956710089027241145714971338568082504470923134867714754320308088124123562270346340516743171120354952238030336359671075626753061508145739374415940674636982223491328672036746571991068985020428843865191639982376696141696005468566268414348092435624517491831960974456830890627224679666329390616786089217497441297171415696502473278506441569882345792242824280450632701534647364044944141462908494784161557381777319012296594876580660301207607390494127563855792391856395831973803772237780707976060131164988883311319641347052752313972636908718026661809251917329235897539648092995049957339874898824243056317226377390893065146336530443559730713889966598456428873032060575816095268993114081851378634718233476185181878128132626312844349797600469894831485349608681790215911146803282474596537502923054323119139925049257488787629623470631117095820528032811305732658643478334845812948829444634055541423998408992187983776134944779661782670863627084459621263054318744605037355313563342370952853835527163657772579305860798650486903752250249219729228972895305035752852047053810948244296029553622475605478101774477610379092782679770040072751612006970407757559131474536514546570259712997858421579717140542310571059537518647766267238127041251608907341925494770356602733277071506082698725891344155519548809145684579976689409354787246194918152690930342622861840369255498900436639041922925703466026218522079374071547652015479781117918233760328163500727623097564685069887863305811078316578539131984923301932395877663972946196844966375852456522125223152036142734120444745247654151085830093745582708388640438551706894381525775083372992896654368167246164728516441469381355350272649451601183738540997404943595511045310510874586522115801111563054977268315285720248343773264455481070550951578939259494063421194327176883575223691715029914491967677406913409295305219545995536856289651259183151569386387338295895940578723754831033922961163736751884292559993900732012827589941316343508461948734407841958612683596572854299001109902832740790942009135668837059131261282582860830828989589888748445116901638094322289273422886138765022658587929831018379051274707173284929184802987127976935172033702696348550314423065493693257469956404425864229354662141651557071070192710830023710091525259300185514271179648469651691143820456746834877753745814874701733238681384218180397446424747093998258169229222810321666899885267395820275629444350273825870798314424920115637646414252612514212852869865003085716850957125870837579349305311857942202536761923721880044114973875548356307613790889953739277878130087489413433377050247605759103379870447589270389760212302972580003855638976024758982571253562321410064752607055583689934470020510654623985290956852141216954460485396280183650325028064812244613454785068570805390630802381063537573905427292835524472303563188241710429727679431552311841586840775244783341231330414399094378828223599956140016946811644948222505630055144395293771104352259663561053456544664600473794487394667075558536148645028504793245912906866578383819543507253589855605679068203038538845692141677713413974711133220385804934254470967313256591721079882988724365403884430827939938168932949891181670661721547720969940003996054811256142829936309928271830588061247867299312163117477670963371667751077508850082274589397486913393155054295591476326518908561687468755689655868292818499295976239268198258567189243054506210260332246161642456354909423794186739457471552783784891591724857512752795739304874549057121602496575304409637557158630263532855732555915204808977706732235135897427780306091437492577425206024668930757642952435276361751704205655355451271769979818761157913222830245645828758140645659424064267780096668545309969590946291568965081860425006564557515026953868516505167379816249141714487677214510158593305340061248640296483645064206938307479309572262540067871929731898183695265503844841557828875841263182511871230743447023367512231846908228807691237920341950356461359979420280577811926298872218405260778473630738802284727381593378601644662304488996037458610517308390004555616770068362414984764552318427097851215167180464955095430543332190725998793933165411816997987865998277449923385208879498485009693854264507835733386937166159149835911082235127070530375147195520901343390680648435168123399143420119286500425019504058214145128792814957140814285672982309828687592782458915330940638729302890165381368953726502739467530581525616686678056945351802495045169403484969270011637056132639983582416266709619231332306940411448315968191200983377538652215622532273800796045770168634881176438199754125840300159783606577412112476764116848227361950085574072549529779395012696358819311328086349774123514345606533053801566647588130223662778978863838133325047626671416538398699277476117677278034998804238788733305066231273815818227402917180535676036124018617972727946547758413534190083044291766081555326708026339742934455063336866573496698845361507724466651208356826886903452613930630102192638754902694948505215562031674522502108929403256639417127747256719138849326337307868485374325925744851548289740130770568497519562783870943075779704933907416230574785149088994252837057055882787057501440826627614130940879520713978836256986090910295550462166231795538560096594110494027330938719764136243007610016976111018797719395721722585784556232801237019338393729649439873856217271590802439479507971117452779957240267460824641145685498292353819147908117155038156575910995289466198468348612285649577198144871237098276948650085466869387250557707113530584866934500000809515832406764611451934639780206373978338098667909272806285669565614128637967592540190612556588509799245173679531817510319566968566392700596434742348071841135866358481303966401388811222150971369537269130479684550112930028932207224725344205257619814453727386770053431029280571065822914203534191097072814562458913193745051954399209849560926312171316450685926048272607942931177237200251887382328993744380067885002127382464843631245718564813347400951461297976509392879044428531786382512868943991718827466863774035951479401467137778421082463512809911274422588742228834593765636987967733369851445754376235738113547604029252958226390694816754432062029910179488707740075007225706654195149225771173007036171097082337275856313514134989804557484127948172527172500553376473394429464879408415947155495447514898251889888479948322102526168532694168254197455662803410176165035284677946791808948947347274795571175073467129623544800797161677640261458419302802461945560398322196812742862116447805847151175101499656660311435812575670798975520946527402562586021263399763549814783889490252167641842990207579922577894695423950440792489172202407927924123894464080113199113176748400350711696820009211352453348264750248367110365094904774363135034786155363361987370676251520894033123603832096269413406071892893355717475870121221526568365888390807060307607154209858392160456748008362681284652470666851396129133993817978508577740153685639772381355741092491156940957247378287830705015692953345889554963680409514126525267396816085740537324788768042309146381014350637694694603683448060837014794302927365149022918585619768595986472993826609060875152021720949195116907070011361261038790019801145199010969905814592347115577711451655837226139842780293518405541045218533831568206017596572489954224195234951399816582115192929768365540961396707237582229192095053150006223818184346031134322617449181419788510812073626033335455462620852334278463476276799573118824074786051595506450133650064481053960582198687542991817133782422569008786333923847599199344849601979292045607180962243361503942439397487010355758185161278649823880070302323570165814402081845489007724762828869986134256046702203801871431292400900135337789033816960583452140502496018633528354411427700518345050929915753356982205114346343059469406078620143602160945736864566067658055866641492549514260857325217363604263741163949415373196702628118761793357548594082771420342061042845262984846297587697997877209429281772599251567210623612520304492676992838629900983289348366600914452466924929910983340229001676107536214842834783610026689456693059526007313102217737594366441299109518365461763552554295642349878092449739927712675967773379672976833160381351836319704868632782804026405280311400919629764047031963353195937597395260981400877295333112086478239941763673064161428565516385987268829748175953404454487878892947090230578139111014526937842720903383291241553551769207959374530385810220711251982066956098863540066211049986889547650868261364925187070599087533436893904376490397750098819441429879328984815571885777230238968843310002258116520019923608537125093507802147109729294192402814151899551520875971432307122551462419014336745571151839487435640342684404439864006060255181870620581107407145494024587672175241895984933561788614245786288962625618596519491884716382181942671816777978534291774989802125112786561921212731663635310695164310018444205288135123076755015435020504083469212671328382329194617791473230830513280969242567097504385930205854735605214047629417697880754691977653671514436161028444967915180709067401366446908834482517907435699122687764242015494871992442487836618384188143288796827059522338556305044332839692154847738466756257309899455612260537366235252372263966336393639557837453068363123270043871631415630778579675213033906269203415631325066876851554346861633523240906824434349310645169369180442324768077483641583090100686278770996452692614326068765383441520991998945400514731406657381165044242310911409494152147765997202234282517983797405768349389464915175781137702227169388982288768697495450554279609677158021785901037153703996780291521411611926239716677902267176545399204250505184235343587419967756530355366139547211692777002977906516898742858695584745716971145652116325344738590869364875223733841891955793678759442400290632705548881183304774521694388258867583642300743840484793000344220968499961584608758584420004072429974385830423891227671808214917072030320113655268932780696129329077917735653274647789459037848498997426295210646166925674948242696667944372013415549359724259616714407821065268007929751163871772161273833455051519168670008540677946037573986028287895394830318466346008722567707762680504837049019276187092635013664748300537174160160290968978619185924519655759197668065003102836335616467405441892542492632583350461199176837720825532825376711674381151369543507738321736878024947121715321990702198640152136637525576487066414646911510772845614975843438225985299601441985277655876230334744505036217124938177715273042996180996405394572865544604952393162882211148698040486355432769531512135079701511996107003273659653838635936114327378709766476458993802842988615006060331498114108256908706974163624545583966241018519636962673893090165023935940765934938462507418976875263918246131907134270372630079920254554089614479710251191118639335136530533725467199885012701203243708121381370211284127144830644274472611172632143290826598055569817588567757896009520166565309707691864130934462172801061708937086596190336283930822729735211176281272197152369660314442341865726176716064146045354339896212024118360646021994401389876366117723224930565783956284902358923347814219846848296464260231306539747587686350690535569386813292620467471251130473154938894065522472484375937679057768764144801246151558523170091119839198657930362879759798077284804031097463983873961238520793581951207462844072415165139652258128647550896924148522558075540172432234320877068336249627293728379293277251855450843591272162335407435022812671275146423212484967169243433005180908725838569438321959485329726248145334749291435137250835619944019431794640096913614769433078174403809163865156124475132403348476032378587325397546981834506915342214209529226769191723352452522454076652555364200654437553812991323344999929190519483042129378343154209545621731614412593518972293966697239184177214164616166546886559673473321478252085228832067823391726485333773201102160896264226787657402780661043354857917030396310575335019058531711767162686417126871049149866340570980979662721955907938905789222360931409969721891422316532365322937912840259686315730989331059700038803453920344498063053611919598317720460190649263295283832760822520889525367466603437393260002499716535547459913315412057452863585670538967129241083720350911796436068477708119904048919726172236475739199551710799253807673461649288205970025788754998748368288545579015963414040987639834731161980139740119545505167744787184601642726021538797095071461619920273384201639100362476638927920594323720429914472067540869372521538119516882680324848069960951306886953899101719250647519490749775044043194708026771053149752780408343078002854958443403223876723244517579133651916682693635001772254996293362403935475668853095242401937782107107645635521856904980606600405684379853315437486875942576422329124179312014835238114516002380093046535567229021476668226933239649478494479058769208675775134729165133658459317786825341589705303314556020844301072875121284810784497714107839040389151635108740686731992234705071893943133556074716162807191542657615712925333090242430631764155548123073614986797309008766582657294432674854582074707123926255729438128349739881010280070421504356114660562554921048397846826055454168815140931039297335754426306249816396194477365606551076643756066548786973193596636998979592526399920582965956910613413298773016100998452428054025847775094835005047504974079214082007440321774828229108162090935479795772645799413472387224667169313723488053621777578919997307384599165740505648772009795229622906598465805145659513732437488283526907302034637648160467180654907359835640553989878377766242377421903914011645300852039836396126207263025501319145960734177078200727176518100959087513136648237698601865823060870339888183423353909818145781971644393969535234096304457163409810224360258735868826276850580685214608430096476331066010682434298681258275208874887272755988932598867516040607867635790606175165761147637779749545521688020709282216306880424878789453365332959782592453473567064324035024366302697327854385663452345131800878772260365474502292904812978975556130998156666404834051394148289790781153328051452803442585605888417014547114909259730018492494283633554133336194313525514843630619440268204422645193074832198686496276217203231293271517469994725195240234880846580782482550824795117271400635602755014634000470507156823773238302486308974941974892169065920092255144465219343555648657815445283907548345893693974844826788349013442397354408558855827244848100916160336100663141565271827479460235103975147937581023276938141837453008271850953853118709752885642669415278072709422122445513592256602262014841441605383042904559744484323228173590519410967652094061249259075812428914646533701634494401730668762334856185315102404966747882677708382182760671823288281227223809163722959720695500377266928140146858460233791565695532038089557028908132126041541550854524201018996988200852046728862588604224582961313229328573496272532407306306765858098349915877679992206141467695074024733578570740108828820269205279283518303766689393353310738172322124482277805346455857697725060445752916871334968003357513532621794434896931544554875648937468536023579512202974893715971421021428208123696338395123300158195374807049586011865771906149786071183829823577853359124285506751311581802351617655537730144613188098156301530177241696802770613983151605686869223920078820902111101606685204098369518322532420271402266410065702553034888993574181501215826367630894134801270035516063905048223220334387080617878378415298010755641626339238260015016270498927535378505134929184344965546635261405865443289339266957953426254717916305151608233795296152169305982611412500401474976325701416368408153067760930387006248322050873327047216794589769166969857447288470122046326864888733752133072688962737964265573737155989876102258670767138160996914113270693340713408082256997910918117857447755693018896048878884107897747002826366691178162861617259822201242794407446002976976696163455591016488631453778585469312736617711797059975247610071423671008450719508596308209381176784180353963871635866747775080076366155825546904885135683655448578477392120685171004418627545825110276847185967438991220708386529593341939899158393180371220513042851923312179595528224146861797520351472203263405274388006865433865140261612809096838583058869653610599441920080560247529180470000436280711697528712021844178767437117852764906922824881066882884791320206746473977304265744608491961140936821395742263670856304224656459903352851052794976055835784535906639738218020415662278274667414426327838197822906048172059230266161707068284617819986181511017894530291485194250548747524788707801961346917995909145011528073916355566177291754226095567347812082984221349231242525388626747269520441762334608283631377698574117884870265325892264438171805525671091888394174012665762773536312837295471704917912566077684464264933057675740389219044420419555967044837518781824300604159921462292221343465010967918121085864464731463333122857692637302882951864576590036429377926260320545094752067523256470022489631413208843542785900392600177666032051574016560529037701878993305586624235621521431592078134093932610232822713692294229379572143289016064650030437324947504320539355409211351726105732304710569647831894198844157487107403603381534827897211924985553137772403891943138897553492568038276213040572095133815310278547706372103466047431903968485699528287824051716255695807531900011654101642895415743940730300069633557469492027456105585381842746493824602328883699515872254527189956919098168730142093512832726467765516000741779957427114315201047910888151910442572516618359508146481241057230165384019962605805069332939848681145288651373882296776499660722234953430555124989194414201454873077146890850323252734366236691434470780350011210209084549892873194292074284711138671298709737326571286813171251067216304699255034777201722956855401619773299543957180811981941930117439044278825046194555545591187336876512831229517722870864494720395254079155984972238623784686721231235393061608741180911469526259981068310787375733521170551486896933339078524764888962169500712775591759580613385011049353567820330066058546137826788409498650434991310254598185947644113325613706272281457562365920931565888067592242377604947006380876214879642210387493423773206016457628085806977414264473949290188672811218892178281578323440279714440072054242284198563958143018411488166504197021255890727258165498859856408480765511306870913589446913160833065453172475443785692879076248894596509503309684271648000454204862342730264880349541821682335246480003985796369142663858112433250594911118176845697464896251515871874147649760643497127097402534210237425832699715040154676812248211636572528779838004565014339168751946860989268082697481755200566448910093064316143268936537208743368072478892270126577040778859764835349551712724669112538799673808747413704693581000457784272647181473445162145078058730034830491613462599134211520696102143605574962869984722257712301548126273562990785546081356570442466438614818149159681899534297558333817987275832023781023848530165501257327986938566027211422429642796227914404836227003612032106968443706157175584564827531828176071230824250804026351345714496580268283560556932221440233122709850915688259466441075371811866184419285235106163618707694628111387925592605063710013924052882425967982595830044354169542501228772802951121053759719158166656004414268580592706463641921616922336056459952370425725961773403008298348751767694924255354471397462584164466616172493649808651663114325867166398336530493837576802113544001802605632856766061236587100018228182596413440233374395733322406749031098022068918090782944125586569515612156781173423781213773568118154382907448514319668114213997338808193744493059482294749121376059078591355935894519659365671170458318698137685340760608249809516333811800858141972374721689651997200238732670212890014983976916435631811543166250728546578016013533657533545711525073714557349693993546783447661880889448046004854698942958941304370301274866227858830086662248106310020630716044044668759868694623130518197362660100451015827341549119365202690062620942598805499194299435724696431026230404071319735215740619588710324511581044639727907461913197609298770048923659945600238326298799708749185371318954418072823498233835037032226641949186777329264660051344141911698923112842229694232592381078422139782930817525200881009571509939487150013380554497509640274505799417116868999767133823629079068557477515128523092907289245995335418245671979300940292091160380167755793918846971247520855620603555765473035344072204559685833772304279715489678123386537786235603941281249488326317312978284436534626831368835746666537135439101888757731562445669173189588683587454422290126783232652701468958463492726318585632823695537175965257990853978580971814148779654947146287942657831892414992075605446001238385725064695578567651393129718853823811764666828315953533115900138636806514390077244359412899414350980682439471036481833971119656855259093538601886429019296700146834077293130191096403563898181927153577877137286657028193316556158410666554439748723582405747023598986541726536150115186013897843949370049182852759885362426617331558111780295892191184824827846063701645745447086445026619913454284720535994052646932466444222474766680439302006068061735016599428343188248183846035692545114512464514982835097101651671518811001792107540476168645359938550229023103546063827568028748175223580973202337812069281878332774338088724180729705598823118931594497967424537818339833081408694001626686272772603300263826211701701937583291334393873815234550294999423765767646480121764548086789985936141036427561220978177776236281368837699994313198951064022585385635831230974726784094738215235069437767770311320373492569327422361055527671950933361674779477174935031120115692381139297917803391618578706537598260224914169043759951429920595940214754070021526657128603202175145427861128528284489579801077195632332009190566269458975079083517909388028905252587851740180871668128483317098750046982729707243539435214796506060505732608206883722734423898918152146658784316598860024097387021821409428382216477908882821513685361042714483950452522447587510384202926469005194117519638733795113540807464331661727825204904432274839122210917954446302774442758842866291817881857657192372541500128179920074404783473985237247358710020433660813439350654996379723949042590404822839004587269782553686143451377857484167395925698974780814907454214699817526272949773696916695589427842164321624622939858600936238062847485359848838704610380831254677161857866021706878377428113733841372639746421571579151324401254645285098608224381196933562339574268094265787654041384398621897577486174857400047812150684734632072877998858222535349493527876248022355366212981524209498296160435136721306214235426079590746058321528904622849569174331843531945695393494261050792317248942258868987880522036499535632878674069889037217338163601359983123266595929601227718028722623993576978233788353660788462365467717530070471890153035779012200210913110490744950581856174828924970887560815804467670100962312637576957161452558547728395524297394568140516212460725508987979166165485283101473939344403328997471116539234870287446577460525209338411849325140930018991621782845297201183151025930559616164772514386537324270518377711227453120996387889408885790737121372963358946690934230296866831775143842123830600216017650708296934047996958844542936429779497858976161669999556275029370754217177058010830240854856596398560392979830683302636385857090783417248744616765894849279494951815041724184512242960417422268117661643149175066244799218194345516253910953979780592146143348447193081032763403613465053628651906817181936134597009983184301518901937145378441969244425441967245657703978782116047209995323863476416140187570844848383950888106451914926808752921982247616089934158651574032197456164910588346109417723697914902074446511448535743511287252928815648852656120284327153306289778137345363925394234358877381653339131340641746509904841571378664985654286700742406866822464407191807863749761452932980382184724388329142630665403919422661213928069106983893181301243891209319159825945166884360696915967144506373379247799572243998195717335905412473193487186591101372906020950308890071227010216765055977215790578118066175455997226458271104656211125639030770326750281986950837509083780212378905169474352438339911318128127719540654957026088637770562523185624556698712824687066667123958874358716262662741858575813853730691751715457211315489629108442399725759928512772935012658709686190377972947445348465640292885261070573882210916663435004250361337474984909936366722661840829524969700949012565578900993509663511399132561423410998919166898668315170327781061791603382051982822586193872166257553032753774213136103358333549322016700949239077265641838241958910090295628775335715462135610210574260703886824285596984430440373056865480427872819092926590912698795770835116762776140451365375461662483439980015133156771996174889850409075731491575244774052498641409222291401166510040633685467415113154283761696672625651474872495154443292413218290908282300877106005332446015041605767164553635860908364606192066011576170543007223327546195174833033114548597933850148435897707634893386735332341919203624480141591376240716359704804456115732827279797414013924497923838218049937159808838917150126066101344575338614251244005299697883809570466485418922846322056841551630602522066204096048047311528590637236779407224751008046299302388488426335058890230592071701466896597394406884252331507922517537068813678238754365244260029754738567011082686599057494321065685496272561364745171120849873298435695755324591372394741599929092732021131716438106667543705302111538665984949752102272493953665436545467721453218808752990904392904661178961190485751053460244748944660304962554005852577726640044798873725226411834109339881032832992143396874901015444440811551728915955110015868498760971778154240086022290532217020709104267463650937483661532546567555913181044289384852993937627483046323629729838272203690860390009076893281463291342994865264417481985746236660663493745664509628311878073104809108957492939066087515489145953076104776273579618745503553186211530005882350346733223324532818865551586178470534878311062370660935823174001768931168663917559028873314603833381226742777396770583147863970215586263043297642342314074127075502400543814967746429386225810334137442042973966977057383691022498616883444476711144149895592572302637709510209145615752432507610960957602285107351224797459426964018413893410696683153786479434712302528946301600208874503446584049373208642000950720144106437249440019134256212617021345501312482274705893493092248456818705581009034679475551162529097395573752831134351425087464955245149235489672639094276189475468638200464178327959876280072494185823762914045957346300996197356263675009758411056388799048286265725520420699380332945845466158750758987986536248392351707442915915965402283194173688394986678952411809085077641800481838720392760307242949700482826389128310105601702647753973250983214522566395945233921019609136262329724675585158360753709790182806172243332685696947088538221657386400347483315262049323143779573400794762294350097996138001889995569941997718381766044590683303543426549938607039876568940533473310082821152929408774790439594639108827597700216877969831792133936714871778004931578033717097800405001276122312674599612393511099900353826309948474465801546985354224052860252295894910999830352694570999385862790618948304324304976604481514530747510607068521026600732443012741644899004629662998681351391343316715377314498998297915664321823319661591629951321389105248125345166117286460925208180465695067107356740645933670032158699620332891822070088987406431927283063550728820580371262340532002635413313701609759533562162363018000258914359451370562098012771396980597318058906621257994250963460382081738776144801020882334903892661416264189068110809243443892183846156583096823925128258493459666879238946292052588320537244169005118886161373797567691091029688072883998438837275932893532827448611868247156005529352674304315958636168628880194233016109714264711794509910886735489974521414955100387806185141857175303550770700166992671999086311729976489201937534955921425250062689855776232465239538419099796935594516465243333933254771104722845458962911751402502389417751338576939219885779006775481843836150954685342099022491502424118559219787419645538703445523262066414108201420582615137320682386636017810058033399909861230391362154288142788856601794289844236223954568912405524496668527515800409835499522890279861104975500196368110507796084052621881109882280096031727977604077609376947252665085778567858828072647823881958675547288430580384455316260848405254880942946931570176004299930453359414611397239286845245827777136823524955742692197131952386701397755341536993516228973196839267976234421499976016353687968809413137635534666731679904292221364510420312990251066083182753525261180473572122125128471600283504673318919052847484560441820773557856878337517784767738248198913144194289248277303180700436206390818245654018664224652706024447088725170323342281134620472796956038924659499953211327242612193731531177735746782938957206745587770382117275185022276171004310170082981282062287796739977577440896043651100443962386045422065221975841285063981456026106973985172118100848445641229144048614035702435986622327858276737796645537921330474470153769993958715470052882175717107215887800603347561523837704242278965547477928859908019904626045033342193430774421531403066990625066011203745380120713207544080974774611255291157279118822490894672505873013708918432361182888254571968683632839504681526969940888626809919202712392843812858546335863656064066845544381673591400958190778640827344659329084936848923114647241926425847051827009958399121733620760579151561078153765818427777246262979318842722252742868237396778360538740045864674171543713281082722562970256580042424330105291586049973984435648828823973490770323009172136234823749966089239720590443330660616336254320394043839761954508353444458745678802525466041527685856320050874669790358092391757845846481410100920664145520810102781238970948170645300375781004323531710517127414658007158844209318371713736002993704142892618375698930201048943948501089783288161155277170911259038008517037199530122394467297057458194847793605043350749779452256737841844226808450517765937271883053101496429093604501549274025895840320602234308007225982230110297355261820117046145411877887873761749746881696682770388933354311625383974581921212461888053979955962282902915727479667092064553122058319517031185936064969261163430349716369172767612255570382989029061588094085131403537852593660325177451535778010639867052842725692976717190332578533037629851197724281313749609832290240865705061917267638855541258200070296509759852367453123575238503384717515540393245632261886560886923906155255281415168694680164429842004652602172977069210968803451826951706780670124911695446437243331077630954230168398406982658535280603776155684189560791499013760344836598645127482317728728810974360781549656244949385805601812216567862378887339685457462112695968745982758821998082675578156797884856161820533723610957451377754592172258218444881595214758662669203454782818937486028390438761014971251553309865473817896374077219920129225672591341140142483352123311303067121959788364269307581301679452236534546782096655621862910531010064402237848792398733395963019785006327479481532759463296747955906051318634828794289120820370470165941641868192195866520880285871806553976086035533657071699694558629020776507999723765880686638547757279663782697026606957876546866024041110303392788661950272938065429841291247739234206375158406641772885404733648970377397985320415098692427961074614986488442392833644804663207762200234511211463013414650715114707000723607775001263127792656473057840392413123887802256347439612672513691340112065733968676409578064234483819163419972890745211122309905337726631094714035749061963863242848949762493907302072276652275927005262998810975451432340787593289047204112527577898070724926834666237308562697874833433738746475511783348608577778084950665907889914917246619880487705950254168527694483172480143090566802619101423022264617565932651689156273150123577185676438442145975184044284954959987382628327452981731573552845721260638995024834778783550069542252037641369214004723350682287374248865252897345956201160792698424109696752444607019585551514167626887916580668230221508265378226534301072619769103575508532357620806194310276695772356889941778401741673656576934454942164587966338347358893390998974245775854972579544170236560941222102009230935117400550238801532823144307062092313944998100400327291751734408916999183365940220778339538260017075781410752003705081740519455101590169424519045390770599008766319881903664022428593290115178009508768513651053140366437694843162616939325573507495137490198209050480863598932816938692777638663599279099834930725950740907040774060928018571157518667098557035616823369040764554513440374623344166244678984423770663885982099566634599951857528781020602156632451483711785067056101622168511554514504686476474673495933607201573466608621599319667865564060348407924682451584727288814656344727756392912742717659265696353914003104088373930866968646534522200209440603727292890618445707589028327349097049128289875215879162242314061903665356062085613593598788093698621984301473102830013323297738541496897491127176620817156120041612033086293396081972900165009480486553890203289740115885476782935576221063660640381865953185878623351498895141188866234420455373457563733776005448230017628569818664323939651399030096715798408275003143940653860807591964639239072561555239056487985767602019481219814014155743458916733277349931156203610513694846196864701156789717108786240382199326229887191156929058409679250924145478033406627196917372460576351148790556686353589233240029636473007542195230954354881382959745629053194770316574357363935886691373295577042081774238639210819394603690275281929479320596452039585832282213522225838557470826150528825141545399308462678146240754156049598593855035126238755961816737793536478172578432027605311054101041472429689216179346336050458562555060812567324672903062896544115353209765931029612307355697937540484754417320691580046117297061399498126778360317813791172610008046346983547320806111872140844130306111675788359410946453084015283708386713774683124152124221583177724045023810169696155522550574671608935294112982456551200703896044787891970194596516668095341511879895575670174208012710529362689052511455715576219641951840217974376084455369510444161274685570151489582218718589627534791455552956581186511107355526006966097191134128373215555965564325366455109806058513192735051271571801417122619198000847017997861415832115541642866991962265067340582738945609419202633256715986681334326253506003242440636989989668362480068083870606208611862395542713802478502149617980632103562620814933924067304724056324352722779656484667468144472902035381994530997588087186322667388327547659327534872809250524806638427689911905205573267300872253543313482566298598739650630549665093708205471675744924884654836086383159781094711233090818220846897006943671701005519430960971984457738237469378988828331405056785989318319554337748312501406320322030464245387415339950245504387730569968858261483693607488925477091699499759849178448774655729930209828089874473609584126356499208775946536455257309366238777921069426543053937486149086333335920095073789651669834051320482789167114442171929107173252395595591462085213362599916957142068616947406240187741155640477410509983414954309739335900386739867098619387056421949047193300023463841718035252700841663822786194337392116195841429258867128891119192866880407205650983280697659255734240648414388846649562125117041835847517021082416343584218414433450885356188010626776539844723569091532419019535211714254430569971518210025784993811345190427515104463980726426765600637843634234680156446633947264516218690693627273021160054346674321790417285823909730199398970917293515219504665300104522219299749883612991027861222034166736534437904772396499097329099336334307668169642129571160314212947105657686235547687520247014714162405368865297144897805462660301193858969204437374448738931514446556631034821023357832504753016749587668156250711076139719433416220260326956172638999580042678149858772894310406439470769384001853402341125375381603276677743119952329674043011656043430254216268742874705607413333731768180529636637786234558551654268709350918285866165249757168295910943985867747705548823993369409624557178325723420923110826683504700345448935147252739826041508349715046535520911601717392900314944057038407024818433733820934190635542992997819150208639007518310228975840818267857750928900236586536953043814264215455601296689058082250042101939446617563814055670299592519893398686620512876503089497454526542050508565431458678358782472288579502412451607992422464556103445984721562683219583452685899618465193570560467632736390013742266271689047643557899963900680918650996453052346437177030959775232602896851342268194596518607974588935134937063295319522151711756346285416314584066250864667270031032826013964006084548961584557658767888702214939016511302546041318971190113306774424678801111409493428655297942435481479455432093797783543265960823761993530182157461745162580285278264055345813351655875132558173413600764867150584724370540675044334378616115233114349249051892607740161438392242364983569887417786651680989441096063424274333590652751572987704927877411682502967327588882854305006465719255363290522816750074883574394212403060074930294133229785897165910748015798455085767390180847732777140609534309195802505893184188826246229423731912379927201850288947763444300633094191649552367791979405942097983996499051578901963922738864505226422719421296889140712825650914954274963196015581369419098876999963395941151519056473842094624800389792780259139659551891859320374280476445739365970506097656807746191738538113758713757158518000668398478745022080317003402723779622781773765629676634189962913595006503506306223982802251106585433836487068381936544859125479501473247083148102556408992688927414997717569122508472440419711646365179589680796654342379018886650729044787383305056085324761805625893629791494949339087081105046852403009568399758745687034241190751300173559563466723789317262892377117801227623786259161538300876360121958749586837187501280449591418336161005861380516548015076859015819191879617635438206664307978187328335272895930031007565606809740460671323604300802538090999998812160832041236759493704787032833440511454508326565769946221176780234589182040310880676460212246930626773857316728650989982089301226902033805512891302019409041220507525110666411614391065177093473773015082845254537239719575955077363045221558649492497776077839275592341688565535336547143292859293536441921423797431716244256834547740308047372903134144878381599233380794324902955113456298358057556220988405852829240524443081994141101042456956354355476199174675067914088198284786198464496444454400479206927918220127908572208940590976567921382393737147524799328336044305933813751845693601152427818693076792769823160748357987565660643395667258267163001659604719196303685661767356227679598266372986504420645005552989852379918217975939609859643954028762335853499148538301729251435109724337647128217087415749597841610773746251875322663385080954502613448940129000029529409896863375575123902674371563427036848828094658578025315298805526086530945447091735690259462675848840956884335769539004750824958102968382642534672352294471270835951411289196645751939944454393409320053351571745554504598151956753904474650443363005655759635823618988604845479139560776196215829711453887732865392225505506502908923945608124070558193983371824482510454040543325236841939995626387054379907566501582487387920084345445557095120042191764801265784155745961547125419405082301049017944381096715064962007735530614892174523818137834828646314467441091658289731072131864405814560370570378167561480309331544205674231799304881892801801382270419748526285485050867692627833174163956864119463793599318018126506430795006420002427816762353606058689141068060493072037537467917255806818297517491280815923756193343010034482292553279257176525942545559069768761269230596961300423277883246723860281094906132920509217719202386798607987051259283817738442422303806922689170898787624289853044198597344953163874029710947708751422581525795750129068144085228656482459710787947638695014503808453038657761665904538092228023968695669223505323996172596719735952914298956089659929530998840353210811976270894168322121353455391710632885002183144469488235183191007959850110810984324719006187887812579160428981362169304090898778731095808754614417213862727813758831846871609925287725539252732636350463520108759183294872670574521238135290445402293897988360167841516438053588927501215701521902633780544459185543593558091607575553741546395280104839429591404676453513908408210526767486123132439752607068504799427306060019246777881116287950452056165838031650951501739129934325692287603925232381488010312449742559071915865367369290861944736619733023793712473376750338545869533293456220195179882152970361144059510107029524857611907472916841685814093779958364552221406935775307614693150824924994671031208053072667184325921488865178935813379159338685574541862543637149981539178039582118784118234849706077392637770867673900893342832181549476412988482695808745842372957235580941127360313037926929876050550511070646723761105097295097331350285736309581321333366820692048256655181319733057375913252994756131075863619124216750244566589314535263728441736877972263179725026779961767331817461840061436906525051477820689854596635158842052389391197881509820454134154022100928689289195046060826278377002572154720819459922106538791583190425239118426247836932216588918735432742221861026727863256941663932034887628096719064422905049236454052721743218087490420256311658558965318999580949949143117379930849769464056264055948900873787180949369758535343862172817827887815096137775228459086501472645728482785021631957968420909011680423719194575190677366375365058696892307639963483355207974460681293516865589719662306670241585231335073645660557937739499813616785932182866795525442435851582597461820343432214941845367034379400654404440177946696723696663229550415523043766314398114102929217268067380727949108977804112585206811374784825596502720213595664842390379693628510017889923096807860910969864151599626441642378900407849664479605607887796050774292697600656692507545926623678993290336403680155559588263757152967298699954403800528427610858911250139965598187337800136786779224888829146202828845644186697007468323798615645724716862298745291223489497830490000887439747844032481010394284028469360985558246647772400612121484080845016576808001651180930521780361150144331004840096061689449263643895077159424330700070532833444245378922262790531774873644802053499645190370514136395201151805439453725312996875728822108732120121317756037367499354863384414609624555785815166146031036787795525347717249280090878372885590397672967309816542349924608917319747152371287584981854407332629367972305459628893149003889792136238301394661000965803708439397095037394298623166922264128996038641301824148251559544367761134874272437633312496013754707976729244867471953572345856444518273276448532212686297630689017508247235653762947488773366795722633952929051526788339579724868316750361376714295058936763809662850957890661076177197172241505207984820031666548948570186849566650239980884588061460337294377134963272199905253189118955925048148787447776916171890998753348596326339102283403698854034997978553580842771598546325747304123438189993051231766256181598587441333599483939528713638222913451956422376607449828116721732484447647312755612245717741118262652670745712581718605925895095815941889207791671092638919591258368915307234468171902221797900661080211039529004113103717706783920398936272820752069898247135737824748997856816684425135902083849444908131483047707777297363738570891410308511828846110379481296640807919647182459951728779736857190527358863706631797153193468999463258346403499846354472784538517361389806702784859468087046790414867274011045162313479909829994002236213812692864230833385707159498676934827124626454658967295058512235838536532264201170599783973360772747838489944719596855070905453030869055338300017990021890205792795577024006413046466691020562507549037643322086592421769722366847301917462643038937438778675015417967984471561179271601425809895880161193308923398021680035434000453641625573932422857830296618768728182812461143275860043637842297095621346690964200244629889352942698819252107614194579040835400610959041436453959472063053248982094165894668546897388817676468488425696277785160314241768736626627601113027651643709572132827977315731853797514402865713798713270754937570537770639649160398562964846729622925619528994857185412896123568884774267564401315513928345567864962017367345017196155769531097937500421340391927023554344971055878782671043623607453771816916754993736113700100348478023207502868116871702084244986485479285921030872780999641373142369118729280892197927702872199195969349056239359131892315146925304144848849193323333316602460589289518899761663701377055501272864552657990646100533062460778915865923685444502110251987677655432378514559547142544319518108574415052497105095248017438482308027160277454485040812504909077942805591908428644583408867211141561747150249524097773755241621444244528906494682197698221426321480466173218323994083170641992826633967724039222616254393158948187042609372832622964613325105944634878251542290866305896660308336689473007714039736460962752250920590104236702054559603598666706811097528564530833080479467465691299654917733312207992506843846392778088507533090914666483065073602904576249117218764911357321203517550279175482499371384050199457041491139261817794204703192477615651750313522721846414077400663280374857972706659517563195338439989500873624826729656877550960961708293843550207196045965913962629119879412286518571684305288536768468320521924555527964233449953986000453926960944118669233387690059101081041670281145345751798653533744394986873765932866949851461328027170308163542889691348565455580768261826070691335287392728021660994248722977876932360935896179538103263338235995029701993953476165591711947897915058949826931312691523771988498896500368845222743570705812519011614928292602839507072415107819794450278344676630231044755390945612635415956431464720430476579294466453681132179245986594274664602319648106161525668715820733153023742845364988257270922895108277698577222707668902703163143828119563864034557072597686092614795373338461906655534543929302331644207976345505627501611130916288225313085836529380395487949331713916222118477471117083880596001399219554745970378802138812399531267724054540234785999026500535705099076425870366607062574174429682188947323155189969932653032005069079666688997739123736189709467391253733189941898363695984562828844046212144037222607100433143347495498477110747292853120281664519931301884673885836468028289178338823343454017062537883747577920628727831420673427660019403919383248453509545450319292205487696471928222537244429980746724160785435409636341896713862185101786890650692930990137522818495243948542779241667215426943635413172855393886261317038091598762754804586961195529096293548806516030529825008098662859984496643709431258000611840104579749237360379076491337051946149418163652848204589074003410742668126359696200903918280129504021825222365323549994157852889192155624294777612247936610596064863424152193864000312917988495849206993112978848137804228946251930791715496775748936491373920417972519091006101339008582968300980285079008224697370910551862809436353250815161491544231991930214773559356440410009986886909490441426779217266022348570305026178454851433947298495109078677898721153171491170865821431798685610217635098218213781250290231447497940484154941462235833351900386911180413785387208977522257273176929140409295108573949401769268519857947001056754744232342725660630629500681721224880825034266662231195755439458029252132318438457770777606315624147895163366028442844600474110700863013820639408364555619534809926439991151423981190546362386910146466708911777394454405268004365961742781405457311315651140320976312755831727622847633919511720530010044360631483824268284529990105425142787901627225083727789431879314384845265835921463312676354857853591227532924168494741774441152512341328114843078132202008973267001550503511696104602646360620007787594826517539355093038577519929002713104999920335545745168378707311687341673382107132615899091397697352707764973512657323847898476480371919047463862852004507571922400482877794321562859330882491310210481119274293975190994029296307332031479250726357491237778801436104073568408513771170909489257382958415416310575724290347461799635702061275526797060436261604684018043451214533832785149459161476213358670585173068732432223238278009080918239902052986086922045299130896960688738482403471738861958317660152390919355701584803696533543417296972224585346729514102327867828225416300980415753152637038431937640208166932929434589991525298004025893128197847079540104781905579242655813073123175722933154263185103173055257248079035313441379428185290497950259410175084788830811075387750309895740551812649665115184420756235389716895363481899205451756046956704510354938611378828089169555275718284890885394386733495063635681088784616101535444094670175900544794891811231789343601618904563261744516219692812841891905296630590768854308936446374008051251191308451791712937343832479937084449785247484874930850163475486945636740685569948152290953573418215858489047376540919437149294329558455436622506115590341967949411299651746192593999960619534949250090350159078953582601431676157111061379335013122922348726334763246713629098812936797148535218918273805136869786020806367350635595260417748623254396335815117402033207688991638770991651111304936786694274314733045381815252075624365194956039403469032365535814309941591872210503028627499201464447765985079157420224828701067957326626676917697160422331968777927382511893215488557585554346224893824542188522290228967136318223760405946880875243745952108173293808057147265027745352546284288690881331334178607180520402515884106982461012744117623370082584216208997759284098496700493307048536362712151072837018091616765473500893722865737347698429176114083460025623018703978679811128655386731001913177453918567856970084976639407340005161948619735346726148401070933159112701102262502415082192307732029263254079091500013842247698760245839731366860349904679594330205490214613667846659897160866423100652420839994838102798256621912801846739302268536477001772636997762835991233107618652524594491210474296889919631345710354778010305840917808816175253952810063704293716328403231859984092513716108387833990863188265139363976951258516518184399675518881378900673369491707459221310823735117977601817562819707711610834262353819071725543307474988034182665384430831471042383655920555693050383765827097244923841685643445543148757702019452253443597089828706472261973189735776275743833364585869544615622340737603101367339193369796647039006287917093916570056437370079296739042025540986091883075843375384710656527863328094325939654438805721865811368812520224422203769255514966194393243318172375135664380881343303682949079559488691848847156045600671111057509565264112142097994377009600260317097202819493940789962416438262388647736968438597780068348941943420577330704985108511266762903113206670586837797867342555401740058419618809178456903569782025194329283097905936029999735763999321425143225897902341757756788025592239824723587919007083163315297518747755527109024493605040056779541367351846928186856895328954695043830580778961479931053940812049912639015567209864405828460000768882350192080971871168224275652464317050125516928119591416630564039520630641984284245197780756865210021613615055465167264911600294377685670003918238915606798234239815608270969463203429243542146461844578315659574946071778949971754851351910922526087703586884258484019956027876571554060720178001116453985265078832336182011542886148298090876743840826410542603065915380841759324790393160208316330560662318088782859356863704547530844612927177566239052979714275629133135804389091812359866213503918736058621298531163041956359229840551689744780454237572584050100706965299642067458016104524877126593275553562300879464352356473534218543564939872451903929051805524824289875795069698918483083078003665627859423743893281314346805154229961520299677563832372396954964646859630759836746567361363862947497633964751896544220059763185839940107755990585394063016297219411524722593018738768722744750330331236383338175811241543712494956710285050548780384925735992485883249988079895340403046568520379938685755639836387718746608245788604796732927723581944524666393041453156569933180653131428731896177364841837654894109955100917899194098794343325287439841206967828987455077331512683076280428590628999998140586814485812058289955390961790686198048153955020164996022087968384440555956055264718633947085435677464730866991362037251002056121248615156071371212740490069551128325464767693140159543294580689141073673441716474575803395757279509430282079144475073320881271938165883322510504441133247901345480519399565467607900557872683538605002022580811989034667272712137092130898743995707787977490780256504892162834645381409369153683976218672731797314903374319124315707067507814077137103195255856092831295081905682596623481286782675457260662384691548502076769847021390292580463608982469951222884141455214266018894789425107277597091606484499571453727998287932722737380777384488237275333703394629123889713024479497477026093959017167257547120210564509993810653860979091711683436980654196694730011620202409901005782668300888572848286763552884537648313439538967970369337560690771502086390007432761906446656705403121033201370093388908626617227048674787119025515889632191167519589525910871734175140121444996482453927864980971828587523337238362804848828288476966968819713511433027224848261270006975989220456604127431236216959569572087792549054726690784737914982351105392505868216241956347617146749363877572780513440280738938805106722461480075970736558420920352062006034977867799877297319916380519575602472885418845657056701548303988156037749898578113650417836868503186322280704741024560198780923037320028783728070477987309870865357871379597127282226095105810670815527854048548924714503173614414055284621992230258236070670910581569768077305748758540633428275109394207282871535962023007117471061036587352953690990003680488743437519287115189402943339990936655258329464115401039276444458931880323645777384354666028032286514551129949507908014118452737098572604296594449586697378925411737415421944233276895840756376703812640125158918975552637621854818279239916580429781073082146497981992150699626755166393546320651476903053120862807699121793400845399013906969750356336977169136813682033751472118854238976790889821706065603474864671323505034125714140371547495842887483888002622886565658625250308377742279086033124179147726333676401763929061659807145970925298078705197559439429936422913238197668287416120813181387258327723344831775322214872239116886094047829010799251717532639674202494581721662946455021061692392150201343178904682439550672040641557841327212549851325398061713731522736627526934003933483320788598222622289540632850318402290907427907175174256334716339522111579237495068907858611274474656031043957618681186073710054315913542464436841402053378271000125629714992056489471355714788718703627930211899801290633975853843613147035497519028137929509612787408498606248814102934096922249029604721124700260108004835393756296404107607815449990108714221041909934299087881243043127534660956500304083698447226347045374115304295697901825835828312656938201530301709059416471378066459199616542175462122552366760734107494337567328059299852291298817363258771563885794951044657318132303630779641709056142364204518455018814901570810185703709088921512353959516930094313607202974914291501817693902415423568177198431303650407504346609989206316139460390199902113713261156409699733577851466395821593566432738135116365308183074001076920339469419036011206948971709205748162861241860150430535131938808874982185046516482053936766678239192234495764732817437746261660561973387604537236310129010930080553527238558221621336469221538300315722214566589850513287193068358259853443747543811988530927279872298836549083283607015427879846123228334083811637624189177908695808362664351858486267506247464227325496646387133732151579763390463967348308729840957492989368502883684004219202033339536013470939305492981075207848397103406488810116432556803883221005046505326665592182221982973913757155035958191124182051001274112410046156357586630363230090778381364379931498900054835922248076477738409216211406870727655398703401925267279270847370155755550036188201025436594603447183858621053991502515791556272191058742510293421398519398806561134310642933894956669678690475617312131502862796445395706841886919727511670931283202316661763661562804015860963327299691058209714692527318714655144516686054991800649740973886081776074546967020344701273113709020288401620731464718967429175984112211772517819339984555508526304079076801056322742481019300103587677553864181459537106125855580768274044082756206157489016812213653294823153418654580110950830991765375147320085787247614336846819543682696581157094302085093315924426635763745008878768409144588852451250298619454530999431206496649924445649517397583365981992898287967574069765649712198205450301518788465049208648632769575752180337699346383586318439840899733229628864206883067594907836853427097884321377131622298267484860219456595968367565506252477825108593537705762375106857453337178196865331617991096325540913722700407896959496390486080729788725643367070848446263999116831277498852263740791429481666588286757296122125933451374336956501973865682458621956472282902737576059997051287498542776487089942767103778137710903238083070508398410805134573106755316904829856971367231178547389021621887783114378552886916555431766742019528416235989475756295740906671211072683078257591674058613289968066725521457446277745752869099423556422570796837403745094661865255184454589085637645636202178597935371518683211595191904093059112079627215744580332450850558697515413587978834806841268035476599754247736681494029412771834118004866264286255588598641180474569918888350251219324308762473197028277601378741774097680897215281783019770757740023416384489584422713492660266869619475301823329162291839753727661995764593516674279712287770363978151879879262994613805406717285584604237375551593183312343905902932976479644804937247365959456326899328867238572828134533102427706414000945102877564388848414848334129927906398814561723097797352037412719000673490725488248852833166699605717352700414757950711139145149650877408850883837329195919879424800901038364637322535333092175284802266384036101282285455353140507456994120690665564336265522420223491531175557823584344792756393813612742021980571683524955686064789136636281641215903735276425431106722697509345188451398706009544600937471227694601260247767940639244749518763772052181413041035457963088571173674140443199460540848248770542155262809106959623722974782387706177836061924758121047163788414856909101073465612476636095993701765375240482481337606668517020343205635013051492072049953534467790254853323690747084618336118843881713908269678219771353049903175230867244281169409350627156846039350363963021089183880224697477226726354757919936459012851526521551300397309723368569041047718811679211419206327703389860755379637770693797816634799386672062748279362208758482888857002785701448758085939685818213531805769741529332142480376749519429703854699860244370466581209848525758779033323024820061681841673503698384876309350912769009685185935916153001823876012209970329562303065003348836806889028222744615148497692261707992749990145740960621653206174806380280037826203045746803066959365893321421270450500462132849844692223688132574754107527962614182352979833815911399831077768589964723118276239098534003126467771630422216322346187635775029302004394885070938346372665865216886716056908841352905736006240729271651772177042037716396000652814775653332910737648398133233154411158733168214456695546992218595908957061689945551151300899377902842415935000898974233254044054409835124587420451635298822786783796176276720221173660619737495929203593417558504882976217644916167544035093367086185391821792844627572191039092608543068222324507283935749495463559404491915389183671199118201944009714884199026678134636757380777396230713678414535094263783097545872614681197070219094076497232511896671898660254167248719095825327217927177999489813988876418932932785574846194992374621374169262522404861465360580399585291658006651754833464010811149159107281011472229647203708659746661682954648375871010329622588663631597430897445431088302417843343050898082182670411010310901303957967697948577652433193809888709912123673126063294990383025473036778169395823535361928955705998497156777123609012497929271433414568631623988473178719742209417775118687375871054003406890315944215366597091372625206002982963396820290713097309860059550602698051902853376042481192851759017790757125237179699454247254657395410187850429821614165969984436886006798551699399497689821687668585259982652745578463179623065469471562171987112940540855896142628475415683949787253397881328549977987504045518584282947292812066688544695426309367941234775548630105084239632100670485613131776262533030953461141202205080707203379287700032103516737537303679556888421225653324903824873897703649411900014039758034256180850454490081644609278054866536789952751616612654221269839824155086847890177118039819292969546551913985037467649029443835348162474994749301886516043551864800557623324791369857272984125448880733647471291709033558811547858306457333779323959381982202556915509563949018019866063486039827769756430272028419404900919898915461486936894027671892925938660331889729176022511872217076255682350819606950383216762627702216704816750047437893976381372897811234737269107428358154203137761019227575313558642219135502354317746128661252960190755316176443805485245368300029420350653460482519721988555118349783310286753967498345145018949132751367043389896710624869407843088394424366289074846039362077445673359067532414752339047852683226541333886219458509067430185582656361684513360687989458047402230006381377044454632206718153810800420408093055684565519272401525788349831842461719989971902951343483998681487655651581236181735336196369905859071730541991490413866228394126876782286829477186105670451380075239582145645764465544851707954660171911063532404397370977636444448969475520032513679575474609043297073412062447422985092109497640719652541280749246962757132097054542979801680522587563354688185582523115054757789510677934427575636285076075148280383380020151731672805693087019891607467929674123630132255595727673329939222908135972704388713216610221948022962263561641512464539696110273797681018706641343898807459611481746849422916025046645353837406627345712548658621860854161559352156964252752212079520309740640456246725505006622467587062342418304282990580026444210944504125388012280806229182377812582561416356822605405138512468223773464743115306689501458443822742800213166777605500294532316033942743184986163373722453932024034564835343025042530483978635622619895124623375666872296712372569844549149122356316628190106650958169114915693377899385888505821931554879677653638292904009368756598758817338473183174416274472284504024510156677171386038351277083459373234563613995030198386940361391777843351472712621541310795545604721822743648351410268966951091199951807728156855496425824768996170551930002883166129169060666608129204762455387198081137873228048336976968634824382359950870256712218047420760060666315920505003164729172372900411875957557962077601681962188584896832244314456444427413889140636999041326652987552074658296274987453718430785825840007185407797494690370953561958543152158167300406536985004749475156732368346525388894063518925945554747542854275304352982281859182633776875323797698487395589912079524594202089198901154971503248247955819546048831810979491018942051965001281811994089560430275716276767266596985764481255710875317860550827102545040855916744696079481018747148038788883909768544656526718241891052483091869398599565879711308088286176489288238723517135071942180094869520830497396081311451765660321294569048021533729752142153145507659129534287485163543654278888890958105821518077111000990782006200603342662361664764137919554115910796873970743752928379481354146259222917483831061590195164848637089624580979826588507311586985430512738413642376910369856692623291652672608442004427475439290421376516997570564235884629141745817962769259777053975409902265761899306165926228228672194645521449739290137201856752482009381598188843236984562788937857725265464921014126225935735222438047916278898367155050383366558443365527330918659520259495383113459065044630633259985054598739044152260825235248444787101230964877683352722757760194528084383327737923661468584502826874359046054826897560508638876401629492220850420302542880092502004377102892055119815631113597549641334917311463269659440950837792415916708261325548818550554218894316258773665556484667304618668669333425173798658488495049863478814089477906322479390157387079990089765501742245592323598450639043094313327412110025175885476655743531016056241844690181222194904951922117585375529671583287265610285106195236333498555571699279216309158125339523963827760188222906197991803819314664698719431648723591408167145654796178677047598973769110181330644967434564552299062593964675139992070361092025188162395842157306658780852426590781832659493609075045484861675184171897724227743869734614043314242623090081215775825303017425602287540133435567897667478405959198868000240698208996018346907095134309847172394045778449373814463411707348902890951156780352545099878761091002673556677585246472179424352718606827207072255987385525572118709214773361735544429519831101221677678731958119638629318292511496091141385746197706661749775411097150982870233376321323926371240139759129578313503090107394424259040701607864110036774576291846492419749564234582186413447811760770556841032049999495328182083029498661838777122076460226731095342511109849282897623555492610588553480308628340564873825882345145915670608833103728997401734706072023906122178051854969851417256306066720691586840495870811134916860958417191984272481460411930794863794974325816099157823742753459167558153159308352561037108098268622878288954960969730997971543420826496155311635769259726088856899917505263594199340313156363485210759388136304393466776630891668919243136189842689838208113446639534370818077564718062270223629236041906607274885157970504213082684111357878396999731787916084193358059106139922724826690953086709112016707706352593101719428918013685923452700889716999726561794759023436422631848286171117859376468381734171584592910885680074254041397880978622089582037609552932449444360728640969964604126029962001651461808745536566014846160989991023354191442909152515045400638907141758844491628555929991912878701836116903838959181127152619801702569378961665623015888091397048541945779842126119668997311290397936776235488008044598503921399883081051259213156345682115219016092121147033929163113581098684359044389506750174582340423813163226361930815917011434298571674179110815253242806516633268937759499571723948237509495506543239051861279895726311340337881023128253430377807841992568010530426076364513086338244876352251152503991841230160409768998233017790106015945293407427488051994784659976286528057625535190606418674341886726490073748477804093373786900911424490678122871361152725125413068931782301786244194376238556022265337661609296593029158976795775913486899239620138566084719916981248673271332769117465553796016885704544770823105285266853820827805832259714504811781841164588962106584356337054050514520949788072096786891527665315440200614672858945039096415499446023599879951060100101365923632264578831390141517206962710664145081127802380990914412024903195138891172992323331178186368481398281004221550040614375144463293649585313240270478778586422660393270845271917521092861186443505752550302039477867523374200415495772525105592391221847424413557994802677876776490246025045885462004831710622874948947478993216647364881709910175740826856859511061407886031002877368634135508343677098849330989730297267638136695796250355026141994545257688961576557549554651467717495296303923800695009093872848295081458115620850015974872951245574406344855546983844708790619835356393903930628753486411731999708918265621405851830811238447012008692946584849571040177586735320880018955436921911456854423442286159946096434010053532913559868854664476561285303397820111137180839187423067901162798335890930422834661245279867095444834001640139116061126214437555539793181196871310675481910621592473658618806192008324505338907101151546400577138225208077522879938287815840869509712493357720310193688604980811706778254672651878065386569467607845045716002385436374173070999654704600838800696239617343394477311119094217882015025761619397960289577641461773295953731835565606001900971966153568215212727293892485892036845535587596345944658619598342784978921448183068359608385079160780377480954984865083816684519715466264508063747999940419708525757690811482999885403388459506436512948582122688862173520760677527539246729600708091449837304463819274291828257306871580238520047770923054225210893533509770252811381528927706148783068493102370377201181482134420506950323230373895829549570829477793105961661858773905078507963750935360548600207473926645582581968487714469135696890402871717568973774797797436820950675023607609028002570760697862432461722450763531860734331169355472335856446269112630274416632491370186086312188832432209683809429269510324998292137649982706631302734723540596159090596035996816755549926554468728286879866713578321799779712308345900938006927890993536159810981808680466494776351714863594319670664170869988773374975246769758599491422743437790656246751503672273937970326926344921685649822474632927729412259596113916532312966846940251850215837913274001930100075903025978858445387268914992133223620532395563454838007820736140407108811450000654480579771972965185310012826588514167142043412490816892020324864914981369027849011009776930897226618579069367108491204789255999107262607689436967439462909213188568162100233010973699209189634191037291572318966073291929924514384573045835048593858505818271611556573223655190942037613553254541705081209097407181428436764462511511125776859936096023751656669618946189037886482480043309513771529976420797020817703551740257188776377732288712368737336581567871735022818071459738651138886095930428412076032316537801344424627077260384077789544295152452713619922087258329754139273568843784240293494402424053313734495854194597964502199051875717591470286523216362965719455015119052053764926602785019312735249378688363103173378435816899587611155065562897397158326981255282670947023542000763411610988227617723334788368267185014326538678937527072935577255884057862882549344424114484138633096291965216199940948033639053003189371213238405149633821317087066928072159355016692951123336057689131626452451930705555439004725929266317820190266849387902644006814268587528090587519708436639533745865663744511493343758406226695622654054504957698055372110487788942639506467510247923313859669314369695744086531718681450133867326427178272307638297407012112822673287865008892863003018365773670390226998552847036508130885447150816848526656550252299441770915109093850790640018525365864580106235916202748815990611296932376660901319922315810523926015575631063427717655306875766536452413304360998588305427362084489500894172561446381016311322901683640841030495314682677728433395608586092671121788444611973165588820820904484038641750969383199085283933262664911425517330909074868499259038977163942158336137068832332302532283200709739901046307023442558641449614890208443684081329700697445607558372738051966213049255368169088832522688345770406153257589267640701863804890161293758672471907405394896618043785734310103499156670976678462668399724019738896058460712615946799259178795765084250152767668726225125127119466542508186276240142467756512025308936425449123505123553745885165480182084146364190987753262200051076388191645907512440076016432608299416314908445110172237288974857987856156828387256573175434198073597328967322249768348814878167903713932325968131292145306156750380031201738518315987585057592540547512143910378218352966990738905626671713384978300164724918233627967760174063747063678622059625674010874047098017579110536294824609276778659159578673838801581108797606956257265683022861098640186597465401291263459936036331893506342448615777745962128073339366130339024779292219439896893462821141230160204687221147415454579373544881780390620618637510053251636257182560970197847987087010387552310426759106243196301635636895177242433511065980790978674398732513672711901729278563045037688255292199867549154079643006914453686920934093765465509525502043255580251262748174686777834126132645055267123452901134690573682465312420556561018718314608865773052803773561178444663604048087817839628414953403240333049864356256945153701993101045062463204988874332840926688550031822615806063300497278389934517218195731362235884876069150967675642270018578842769620549212235062725760622950573611204503389801429085037122199069949623303197637030876169767535887639605220375373924817161993985709474759765974968274907004671943154452217834237033941974397013756396441317511430216164412285832644405404783044827272781002071641561112824909200967383662269785131975414122332240852443687184864134769499800729436077447093235693678762772467227060564932255535931129362467289335254822449949410410737304394154154598264641307219032244218168445050114906300257431364183223325218880546060290169803600773327265795876430561170995442098620760317483243557455747893905436458182803814750636380577822798068481925344056507470243159658833724482365689107329686875736570318517333392454012689133950678555488999171940357908409076670248600967797299946047353245956109083273713793198358387909479753442483979098325640428922125837822186574618395147598964131082464965336869064683613735334028716698660806901806285648570858421606190166480352939153190331842611428461379892741544177739520287368920197950821137163723830700490274769861818235637840797967187495363319867930534167124001774393592606362088774842557225730589287845965481955529784407138054764963830421111887606410685641554520692944070707888070196893056030165682511013640794120323069495453225478861037746365477880143597927090130671611731620925947443241585283154107818905916484469942897655608178158009864055067294361786369841165136521303116283649504205259384431957776827011356763067538907835022625763090456068356425657180908759011249279897740275964906344622682199519143608349258326098017728011698458917355746188131186367641113569732551950295487516864590405705231082368318906979693577622514239045836775584607086571628675680646014133122012555187815145780622106288417854611411383257440521109659386837405621528114616427298419950901816370473948179191600979466258222355751438965691165019356416617772107039699876647823356644524184522737410379324429872636624698988371080920660424016557254635981395509981976377597270003711086009800527697549355878945877723446038152709868252956433905941867403162369572338208290950475062941986265909818922528975082851561763221467526520387450257422995127409981964618921915217939011447140925874297068834437160216425282076365671415727273496460298978641241105956474758140258892466401532234712925185653815613271915811405940666621098804884826319004804307612796669608751989772985718196267822635936709440300585688093360240258389584600616836253053263061548281529230484625817234179528856929703940421105122899745034063598509829977784184933760434830122891136810326495924755803928058809121131223271732483241756787999568953720365666525961562598280350315426841002386072358104492479784988400730985452763542537452467823567000617382911877478658677617756142763491463458350979361550090099215298369483240261980883806912081581478134074996532151406425381056100971976478824841821329558292931464629997337972235366950752579618778049750701248341987166733855420192851040551227116933880355623209320175470950111346714399467980515833314120955777138441162544993340676683497735304617036834713601318490010999030035908614559044055050421918000997888850275988703172550922109531928923350786687008441174044583394027889488459412725189398680006563197879894555231380938281861820070683921809527821639921563444562478697480226181887779174812842355146603944233171488722354429361083154805784973427670828564199021445852781395613586604628290728192820980457428657228253070195514063893371407324506486255147483652332635274527433544131855900297131138107008748646502218956272788469264589694913570797086661672484953498862197230426250838904379377853992406162683495324544547277994558057639996530492275099770085194572984490421104813635749659291021746098949340511856621064208701379852876557361391111204531008647917306249450405016278669586788508074850559871127429404223336530892661671533533716496495348359291104725624520724696616998848126412801441218147940364450622943030960357698468419779764613083793262174731685284439668227043063342551457085975133149867363263945229160089277233242356362713304981956031324211099368344508850806504102044551493191388641635224552459910888424893996481698469444290617109244799612598493956196168395054265837586111153215195857584525113337375157361088545450910294913638591448606718506824681684484535547987094806363571318928114377275604989695074175219530201187766723581403755867164418116079804591055336807922073634527904930833032680466018476093568341928052818263653981644179339165335309057842182288757372920260583118077453308500484344107376205214976408760415000507259732500765599777461949455427284046947456353635448747248320282202151468172085826711126510952495507888448378294964810381776585662576365429267171867757624217825026715284919735836704972717527822418222619177348797953668199160979491053395830637163835045791633219693205697021208508975505077045428681096301161796522332362925326800772369597828759546900378135370521861344472219212386068167103810323600812651076669328761677109406988463526818966587259345014074196101654574566719681600905138296883592799916944500343719667979816797879257874997026981801337802430642548486019427061503342025735830697423146310739138548838149810526754593617039062177389391818627056503892029888968235311001298641795072162027580591815321030093855323245216388869857748083158660468096182249729439464783132003419489264021539175221748084258292503430987732225498834981355172628986007379587189202227161174705973264026180117338007325827007954425621256977453607387390754634436959591579019674755985878769361668049673516653493871680196327850908922501077239027303532132289349238791188015038751889094460894522651619027483524879392808393547910614074966937312365994994599440372370060201634789672832743934599659680033029176670703668981890216811868305630364441013760072166645393992153826297490583694339032705983940073147593133458517584940105699304368327823163556337761217007729477049394874731918484521058862957280920481915752015937846242405038752542813981195389683431806291764959694182952681547296826228295662339309580648630897334482226148502046153670724189281208310464789158275892747128724627024695308143996383813439373026374044115791269085573374598366778607372339822774947157770355050561684817334615650938613977459737779085041474355683301799948606506108268383805241205424841870943425174266847854011591390870739769382036329189263458196602581693619907313449015643547092380249816848821189347450522335677598242016762147215053257723028921369820366838347830069402614416389908227136661011747223188702550964085711178228351079136381943483261253746847962584146121195894389705542636771153462873877655678030187693718343078988863277983668897480384126962814853894530065583542352910870756609126484586854611072653040734441493897948854059004526155803209148631188578100349753871996973866011009889966039945023787818655364785227479177216420562204431796930212750469611861533866704885454822230414054201123734185470944600875903649083406458414426426908251349431826378355698311811911715229584469822248778000477083223629967603065756043744986500051977326128690542498507759254378277017203342930797824268435712675518451250994687318177988155368599804484786500398964744030038954238538274450940453871370923431941319813574183307732825362237870559995387595927191921960467308004042172638297505738983725388358642644045637940780480792670819968421348635665469937914278713656637502631318828639667589674794330690918355307125033485088211151785580244504923044196792162188657794341568022479680559819018701912291237411682004126965474054144647044365022319751378500909958851759679383455031360927933087660679236247187109948623970030029818851508567029573432097907070387980439922930849231771996133568444667315876574852973311974805144407230407674210775759092943094349736650265268587564232617054131383041122849145450411064115826310421385257762597721730069423831900807406316937210426003566468595712041329334029434722212324655319996395042216566386763762027161934287291032585560326572135277717002688343503884656894890502138455638887079388847092364243337043363856362171219117404814294712081734176012287351641805070777338191261990157008024657264510381110521214918959017044611843895175534740340652615303909153599775467134165947260953861896922318919327600276393507428854708380813082311004167779905171221779122952595879710196311854710179954468253358449103106366659093979737863882101344285201136134635698977729972107012591878791170566252918748119499052225035857594436210190526230991750599316884910834600547467285107525198806706779553533894289738901232017740385683933211773542414605249606285995907157707612387880439016258867381516347698107295410110729416805196814617909030059954256633586932811684020876753814572993938332713806956973166844787599042543374787452664161686299563503872537420955585912291863186436456077656745741989795318254081258899446832549052430937806935634695519711626930476753690417943792652935037749803943787721754942642969131949294326055945581036815453019196724036380076169377869160835393119062791210590597300944631369981057143598140236572741234838658249403014634730863093200382514620613420954401169902479525601871686665782046159723892628412560587717448741088339897658212151395288747965627579292143048114279771397587029558545583193095799867873605220613733735362250857535782059417934461867577290246557877680198284248449588516797223690785082387024002187799564647055529332975735136752505582067965166486437596953275865944422576680888911083316822066499560934820606832454141985083653947900368656975799091589822347722933528321912200250391758268493259478093560057734013180143222963406233706389746968297758259535747015951547553765869285039372310300628084405812043609587296147674784989737603899166885982428256389957410531889659691250917958529418271795557550071495349923217736936157469421370615687598738699586170158021911653096195683610226984157730005071657342385179512901063650151675218212222502493644780705585847027449501356139330038065309170031521471336725458764378078379806557585506237489791475169262709451632684145125224422257198684057350831960043558888987479501881900698732535944715837451896953780297471897190448952876870030732171372754087460901438768321531069339837760352025048936302342012273766994170497115795379245140606069799771092219831913723066414847983971973111722110657290823743352804998507559630417273107859467779423501928469054171967346152997115080709422434185418063805765937934667059328620286592008373874487803582302636119315130162415331026735180752841860153720382328056750513307930369100512595818452560573985795461501592555066793139105537568776962878587444238334027204434811862111289191317425845698741058399690428876118633293861281703752880698140414128672838151601041433209998523144509367336856365042099497476977158471901982971315370677545866201925070021537374841508739001670866819282898307713539587236900249981543303162798473502594075805340921827149876527252294363003685764021351455763325515798101517623006584076748542726601143840630726103099686605467735043099901605854025987730503589797947053909945976307408419604117451328668202587365114441074501393429691585568611519571955923965745863480679398921001114920723230676195695238348494045541632860009107264988156212516148571021406063284012781445057349885536973660217163972972806673695965374826719098632539264763783406899104646713403399650797569885493444306779016793611908416577102994383020086037014823578818415717626446689207435032359522847769285231258842108580732411217647119968998050852689647653197549653853240209031009326812370438404315961943076426408312983831131961918598390720656854531978000572799645631742173704118227277137985355270851346352104374310734539539447318963737715788509575473534524488309199752598819008617246556172039853627912929592492422424444054290446667490300612880051330640961942951955331820658196057531842254808154330379498158686512061477564357741849801396317171610644278127755599684263097676789996033774322536510023878421385731542405895506188704602705486193800241543509093101721292494888281359865946870523519579057114404375208803012288846271981662496368330505932885267497394476791425832037727775407354914066461914760845038383997919506411230997578225780001099845763959846664354223710060346181009987997887759798882630386892130479911348961613809334787912230262307274330427550439569002472376366717520658439328102352541794124638017748660401129620187909541928675121668562547832803252215432163639898189325133923615663855764540202365055889921695509639144268844142553667371569354693633266763851736026842902584495135634074661357001816520520987094708334202443169553722723543159703905088281044929493921824458543541647669842747489850908595608048371671547115649511355834794089606195427886887594294463494503965902610446443538045370016871268316254032623160623601686206349843932861067548964650077871830262994069331940610410053720225841746466968839994705946399138429105525352069888451604983880298845566107235478166436584684311510216310575249749687959714439029315379499748960551703205306572017344458027861065387025211444152089098425788165178508295702443320211996851555121843320770010388098046333133223137112474635733784173888200943583264878211692170102089961878503943243779176768266182287409741047159656117779002460394318642304465765419130930907624506012264690807045820854956108784691525422239850825433285587922282517746437288737256480822891282260644753152364512130808948921434431139832015268022428412593926899436062120976331487845692247794109449104782298520729578667570622451460745689100923898746204381121059229980471443328201451462221597056771176835639646016089817999047464381382342752855490669650018641685332617397314635618471008243535435816043643419811908628093148575988237972624079002830737915023359974140668945556362617037162617459786895890641814503727542336700763251339909128727665910381063020271329728926502235642034023344750128437786778588438105757918542519433710013824024789809451443460877326565424057575709798576936858027529347472497958732080432175883859452479545147385975982646586735393239270480153391096359044225478354898826873071585875338094974127123185020470320418951219710516128385855299865533555449506226464607429657701442702890446905187266640297472472946285559756813634514415651419378226317877746047726328210585007625835153774755326351497950044381167857356801848910091807302153849584927690011141815482000953134322557221805301413413488137094357671747272028662355764185130331016255202424281855634888954522255667787069602456352247459102176783250872659435934719792477708869996785866821351156454902730394056928193175935198003742557138430321303944833957298514968891121585324587606389219956077075699528108767358139144797339940263054972431971432592856316701878163240115367517974667858121047012557942176454262198262501119738530873527673613385243639444102393102547473222926337198105406989662367613358549938592204672825895672513289690946297507365078229052715360549204889598375831092591196067527585320823894144820723386990903236919103365730239150757012949457745091328435147372618636019081158572126165083970600188663048962937197016760444840769704910921808453325546675969724968623139190868122761778007818932996466557968839241727968211088983911827263114681091599845258219247857354102117902455993157211197032411061639785382332852948474579302615805165376548149716306799364161724969477992728400371271155404241551178838403414284360812430397561589512499966946285963849258154370143060736639797889950341369322589423182049549529977289594628256049944976382316665452012911923361300864963309589214524679536239051043493721801515304284672868403608603423999071079505173329296172117438094709400432309282614150372537671882937003631180261201382726236234708251470950500496010528083048198460353531726186003136370807907766554617005932468155967921321831012431433868695527033428201590892522638840513588028075340733260035943407818194369390833057221765533972300862135967719011260312505937884365413463859608533761454731582496719119055071891201895168756884327593326284178712498000471834845634414946106347545580559132859077359098267268391519197778542658486860732271254554423512652965604999665710871157503280302940385001788575175429249555534960044803693538638693532057213566363117768702032550950204007756340628309590210425511286670113012431740343212316775259027739889001767354349175831572334175559023008787775822411434695099611164332127338555982463154927965515783869231501968684156206367101040190451063129260608848988049256390575668624184907620776094264502272893626562201992310516316680546278496474613642850888550062939417221899809590686443341495365892709408001432196457662070805889337749303480830578900159734857176279997477264352169351442431824327244626233981501090212227569605626121825954945034216610053539721812713591894498083036031317882371767107468076807061889424017379089388231331119096153842271032039122432225833855945123716383008919831934701836612373305782157756733461025030830631071211219536980074284068237533555640261808487709630038203401608540801224310990135951374926539567504642410404956357084345830807404191635978115056281175733941065171079357351495619916781574262053095183040371212670486056871998635582746078013601853930168099762099554791229757555261228782351932771519388348764401994011761209092412379838330335761949813615921431018364322791626175059267521134292386745606753033678773664896673019698235980580666886612570872207139021788304612805794833272359695370354532331238209577115604022169740821677463767251630804673695688712323176705599019439087620098681987809113210423357846891248272224874674888158628985710025765378494953827990166954963761944662711351354043526193830259994236860274723777107087519690601346560693210216625619888062673654426784520619742925142719382791409488943134502231499224803103363759287264959229794711778782139157949142270970784689036052745868363765961084554972825227598624034372234909463362834244214430514047229534975719042805992151599395937229886406309670589250164731312310906961962617457084881768061285133070931183713873062963841294350549177945444401954757644471258216550689737619341138411492954269590426669811690160315529437976501063306781961348633228108082052163378705923164208722590802604933850684594954443070461376000029456906212588150006832370079209029778748376682972362569541905031670201883519993462857597701200083579219503043241948957883441393043343183564169553872470772407430398622431645951152226279779534916538982743842085477236976108047589010288029743096537242390385001278946731570490744246749434023317923499123800917192810988865352314497710103398813491031547089273957501178849873362149739465590599747623623201102757300161149781916636277286615013856272477556942532521667366268815929072168380819047812742815550687107073355434414008984299337415906700028061810311051244353254878422884748542404690403671511532566708179999722500841359984944831600187743570378438002152799586718712550260921833552602299898476638922382042165817593080474522451222012685600067368587387154972601362918920127492246105350804055613218425553296236433526631932755308707536411949370706427203590127261154016749680517486909318264325737319978948778572035618320131480923350944478677726035832170051261212040732430099704590367856559628008326095319931851607500671779114645978047655355472735642658573446380320689136944587335432376947486705989276754366180239509652397863718233668236212453408520228074005083276201052672919556077011942850535407913602319390371885414155053228081828460620008812633286291021927242604122915895351013155799827782831448374621489252321148042321341298493754806082004106730859151772673838895045731966344473070671862778951831747989998862556247725954985599935341254090044909924744730649969867591652016048078262623563241347888149126053288166615048909950784136017733271998565260476292894234387925896646317733322180286985893650733473728682278747160826964000047690924825918552574115659601797304868102251616468214185228225715858274214561458718007286490469932547062353647592107612983761870190834161906290048361807592499610997790224038401878609344796507816360925382459957918400053969695257456597076395546626794477150721399664870215440542118796641099574826208473051015824991628466363902953482790357937211675865345541301462085391133768014522851703424034738422670487713847894109376103783965365738520125979133977741958165003417098119372833569508492131672202049012751372759864332686790841772897420092923962925317538437822605874846634878539399309533801508752440220591689305449522985868151347593936216475869281743831166097312756552589978291762537981254866397930900039728647059728268307608511537226578793173092309555485169747022327565825734500222109728089601376042166431432268413394864485624474340963818261926783769269272039304361105374065089325833940656081567538390444071429389010091728054762930053935153053491671596812107698118123277625956052648054811550181374814587403224392835500109311989209677390059145029448022194484199473394358118711801378656367967777902464659914897244247287625986072286976719848549369894902937393123335804790690920952784136647882283344318054361331296226426145496455185424863417347441606332015687085472046317884113421517090770233622255390662981726311654565336903962574111230723174120875130173522804956864889689106660082567273889498585873451925454883804770743892392717687595791998891555082451734571957732644963170438384432839180724652943218017149898499668676803563602269794531893462289924776560668629549466910056971270215403457027167607314117714305930833198071502876052178891687596223455802373385570849282535486846611135153206780328603682222683854544478518590937127498716973170126418725963372753423216611796843332394320344093690734072752076661497212972673713275577846370234512147876285182654567180140790023249457416808086209186046735128555732878635939703110111790000606294731284811218108451156346176865215978428015751819229278597107770660525721169257358976206375872112393303611740630698787578656840487746384157059485088091964415047301452750535083820998221961049514697232769219098609306644363957448918640673956628450168745321555678461932686843972599366053177002418973737599009338650002642839430796377652209941647414501068603370564887163142201256859419740184501804407556926219011493318470538923011502706736363257898992698643660314745968269971953153290690552069612338915694630004252824740622553627127516375501228159927788707861922674008505927010563194559365045807163152557969337400649963276625108447166651184315527541647601404384803161665617489378692538582559864183161265446185792910756849437230254991167125322227952239485754144610059614262480856743694406546592270729459978075352497203200983341580972052006037267910096008094039321246543293720743986153989757648819821161891053271015309106459565167746223346073357535138228107065856878208268056283859078504753086679204777782583616039135138052126107693612489635823452723425732235696481634009702417677637919668507242785771994762374615569097372972153357264703695823031625277926156234521828088605735905534211570590283426803901381528199201602390479775491764826752299031254850276383366647705805140901614696337779243126829636091903154067289343381480620273486238230938932781964167315706397020541262296517728814612371880247467485153543221185541348612220965749842551808005664123331874595735697078209282669079028903668042266424054428082226930142129577040802407993927164978436833820691890738802598749333917795074870225303116292590429680307862442905687399830346395234714679297738427364258310301414159239535177607983877593473052316360166237795772649879874130882757011712432093644463594715216251866019947249118618277776893481954177532048430900329965244833645878008223036997702734770905800478808452228276657241482547525767677804362479618324586833841410419550907051832309758189456579077586791714520112571741059797202421479947834063866231118161652214083247689012838696528427601889234502823390273092067441531681393849787850684896001897816682294542985867758832404130406149366689588141014255111515261076123781897751535404910516264602581571126654745904151821736950364285234221398902897708590830713770416782866742883253294805569719872098368104858952861821379204469740309567562495768119682203380705863018457697938984079293316709584164892774410830642413212699751600445176199443457166761220483455209198274050588039495546798409250184694435000043995983275493802330683419176060371282951477227199635565663559760366845553777332889456433181688284432364064507360078975059405760892655605778909932116110904482552878256530365416084781765697766914353425339971694007213835499345336772921092021606975787938412857347501625956841612246194747359691269336656970753557838872774510263330877473860953033691171113758546197124126441624808271896172159727516826392070069138169145360036406625790876739203728464905480391041662792170862257057653545101444575694940298685883142913119867906119613495530521247868679489691162414252940469102459000098166565478790176209758809978983242514919769520011414574515181005481203399302574824175214377066692180709016083391923698295848756863227335218547366813009256032051052704896066705662761488663330259473310673256927224998508862653229792656471542904526408035886775482837047461446113851378592350499937368525853700792715305153539092904267624306694785976529524549302757130213522035590876113209922173254667872927601185802247432239343823145972736546438561304122242298944022170532436703035422811185686730886138936864425045660265199853564470335817577648911052574272814575433103226215780692677186676912135011814379913473641810678164013880615549951213997039711487349096254957406371700886499644769270613539703558770074563510089283765582212546793346576388247043282860402409360026098281738351314974922339511697072063893301566424185156914065656457868071778666859964473694898462591502308169499656240534605210297949851793616950489600260783238140561098484480533766203361274834631492794522756815806551507915401360476451744632667451472628803803649330611176360582509534542651025387815187007068330890128695282643872417763300704270737070856621434700327127004754760098044264276262650357514939582309037555557079957729518914626350769298293612344094685764105165167119935913087985625746411092808899869502117254565359654294454855778103512596940620432278787649710982993294975815504305191452095603389082436567315359233655768733018611759939265095509706375548670453110585478110962659020847128447271230262963078359261426049839954313600242688765071151310704358933406830642177497540377017758295154204270533071536880551950879503866989851845519178908401293492510602340433618400499697944133421366322545581699555481860022028082211226046608118468390546603260901822583925513585905227764207097592214807181963642616322812117504025974103499240258635537815258825112443761739543615507737891373765034060211994147061226255100536743237756534181305827001152432599621008288562418866619691567131957882264902201226797344793830983893725866693645126776895768501956612690860697056006674836998818070936895652656611391854142950500294545130717910370350996353435566997579425938562692562899663484611013730873207221780775489092813764409797465001719542497636333030834628204224072942384664061925754049337895419600426920281607626459743005353733563817177903105835777781957219976766503486166732578524444729761441945469560735319148289040452134830070873836539893508803608639650642420060040303282816473481969923007971783035575584064173829241165734756227386395136061355393273069570835175506383703740738276116870648776248863747964747366812678142331302390953009328769426111715996040489669884470364993162036826846025061585921409672566680371971326116979816245807658497286134922970735347583797256685365770982378696883568660443885354124181055165541893500847486408806153411037734609912057062981175586718510463647808321075316263918486783219959361038834720340810735228626724329287666275070236014904451510401815191314534328525606003058562542064169066161938886159518658284494374751157945019259834602659476304845232741746824574880706633067072621106577051064939577226337437625402494649518885592459993138712423219673657903599137369445851538935181959036255604748521278344895637482210987500468999710965402153746712397819148629920071583160021648380964461162086236241359491552810658439013392541202912819770881382791658520737106679216625100931551272636563371320826683777996999653202201252769885047040438899169276173068295212821727625453717840168525332152682357029893609998757202324858236245116695610194780850721024012835171885591802880719623297488807623546844632858103903675398863319270159037814912741338721648662307021948039452578536298485076741183934090964232378882399671310278088864957133482016990065884119282644759796074433116383507525639254561686453989720642196811123412410312524206850196775501123892219381747842933142087733095922833349930012193623401488399004109790370249288761071603576103136269701158945320126548027487936464364981524125024768636762924264253594057772665318571852371592376260389260973251731308276941671165135113672637798856621302853508802496873240762501630744750177000651883585728026384570697856268060832347262781634229494438987380471209673994157066671737481012811307506249469969121374489610962386645074126238527811125992603877609070292106525796902780683301407629725489423627544651921580632094558103244096582529974529405647440281076105837958425519864225786538335569625636567277379169116805120086486011061257249777013283581244791050635978561618224575461390072454450387760220425008762893318240934275814459476800992971525801856491737078280932196830363087330801406699167157508291700727619137089650441036660997965758716725147093955506490649586046773836767950261206797075740400299706126417623086616951842694868973190891629197984880644506150475581732042517300524191320084251598254290943838740324094656587859579055831807284265263292408471195598634082031527146000571336424744697191278906306332197336494553095464569855776651051488101138519362632775166361840903014053417827178661522779374560371140855649700837745323509221185991741937342909459068800630700590547440147034812925529249789567807602211895020110755026850961757777124099639989048328604224863657306975054402409241086742359658801322695626278247802813307230423030206628493965183380576088211853517688664111281204507564785788982862518332177002900612216345230221743898787711181701866736124624383044877833474378181005376731492069406605477428443347377257011894136774308441137223574785655242434596312014278699802658442352423818594267979823510774652561050907372932268045598225774796157287638687975152952183556543958997970901730811057095738688662467918098276737651544889045077625005011919393806694889538012719711630200066730145638545329674342387764910488368776159791962542816777711249374549234647577660182120642382314884863385335588513917464858109934023861060159779028631526967499818390640603723509022550688460859694240463988047816812199479988284519694361401654517366709156502442731438733322507381540006758877355929252070960530008062828209425332943200233994539501473289963896838456989005861547934306756477987371313670480268515684909268872131393853472607171247901661647440061872983394445821683542209763186592433977181763408222540664585033017464301596768306684564902376448291936230481764779296782964731223791245979579218014634451731965919760185869293239468144466035097375935224403018878209412420152464366707279301935057998587559265783677489589794063346187563944058592107676938532006091476132330115021323440456007693417424618563459496964664797777776848645064125968944749089191945892011633649398483973827338763043078190059240290247955587915506912575512451191126131247299662065495975923604575973561671209712441852902426319676029556359005047736768355829043308317242415782783016132145576500699797240149288167344258792917952611953052267368103122743296475991655235408889651657550152256264593303074694064251021118889339910544749713978934207346335032296804217380684218921967226245344728554019366700535629784886274259749359104317336848684714371370038385534768438894818899306087310264339210149432097618217502532611994226552628221953110304253137689892353948759249155288665164375872074024923062685787482535924173680971326080642237878581924002643353458593905488673314424215376329709096892004577681901218504414098842621786636279807837600399256280653984589992583141668954438413903881753601602032454774794909567445383764576819732075906753633014185907490516768275791659418820730436139759907020621487478118026900002583790378257871907582346801181590504166987117503593067047633344614776239304720727808805651753686084304838778323497749341483965606563713781487513706157420384078800650015798775483601749950713157010426939794499799279105365992362854067291985517984778172895772316739547984485268648708927655497058842625038232886998232355474412924969977756413126270344931409866581508764077336676879685960221693288926753510236637847803967427993757712929423576313179533445443061338914078079750492443814956047463167574440429031377702235123670786490552399245568767223320066247415540811981517183381878416197481135091763350939980676707763442150884978304650541982793869365591202728312965392712534550518539543941339652462119715987025647065052333386830448026601617278596582580231360447683655433968680764183769585568455605578216303875098990588210643691565273344606072819678255939060126189267733859114122942591769533323410219063327798830865045868949882201396946916276312929871639671002075405274446644446757905902064128847083310403676607281478230201379356178879207415841134759396752366484619701563132377589281480300184109374776993282612852237220439523127335688362402732704823612059470665878260472069815979011139325447230884431795518303459222561600182104116641455699442884903599043378637073716900859192515423622429282637474308939631900132864257928406620063445484935391593115000009778169694998279636944282862999993190474056465513491342945075937935361135029947811732521187146252785798371057530779085643137337597029885439446136488966073367316641887126099271375694542282080865613683844841466836504040254096785107087657388938435658634791248518166165003591663194800334318001466433333811736972407340455029389846775414881287950326826540334569009207845633352537997734908169607139390110039192230677603371327149694844542142327496843946318496670738934748125453832490602729747156353667930747786664618590996222881787823381926850437866450195253732018135875630181080173235267793139714405867963070265069633697375587564994785134264591242533028786062959195272500617883759991921780534941560909454983298376348001109795185896648888829135640013224777384334016848106777099255088926125869469564921878214603699905836916099631466657591979094661083495966788558945019620229498678834063183362318222036336033751903672962733041178725832238302879623330737778397766348846433860309685305641796818839001946895071270555060128525887381292810097306109956747444280051423744294617193617124927282983240932111699503068967812876209028199188077840412403452468833741961691426725385220921625767911990767282363692014760674246648539099740081615137923622524332211984986367439867071841475830279228170573523195609523256673143368175696893727813128835014301552722628336835218464264922535490811679261674928255427451293341795391351397056000688115346543494071953257080049788375527080029594355693559676771015218303710455207547412719498478705569814983967617087275518600233535584871976263505638887484756829102058530573271300776463932298172186113247690352725809436916030650069524728470955511415387919580951063290355363392106875298153973066362097164874929724965814493476893041295186114364046617116788955686361943483769951529385404772115459231080339077534390323389814521819535022721805798953752614839647990758951597260024433467527362348692370676310943988944191671235889501287793165725536019408360250271151919782228666470685391360443821262791387272458581082802650328479097442571965578588196221880855820249993004198488788783787597441838824851609959782478452564159822702438875140687916527492967233781028035320828538578473470097479253241952745936196211579550527934976923508177640028879288316390694925395257696001966640936415836623640633845481066634696749534693462490737999666506707124511489662619610754397110023540493904434758919577551650066489830410684437014177581481891301862997292732658028431293308707731543954276309790124840068625922304990032451387941045425733153618797418262252698139094843740252306877314237853332659426367539694385918145424628738618263950863986976387809261564708109836869726323960322959808071526772194466016513120252341225198287260028030067200264506001225553739278932528007557677187034208485960385620511479085201272961985369370813825995825690480631437753897163556772952497378704282715364531407495894511332758990959873004878208453950142045835273219268068253736124839064524902233923368624115766215717029418079160382317349556134893976331498744560540964871275191611524677409073072749730906888551722688908889694298378776579092663754150049967069194413280521706607634904321558312021334822079944321151339590947144231269177268728408071601695726513255055339044548490652017118046472400295598532914362950765297156617211876795440664122359961610125083793432757498431811462432243595965541727113166550588092297114448451482559551709267195725625601874244077953404972398537750862040807689594175885803561793697510224008497850289948252175567749401164293996919375598784612080144665022793932539966462872573423807893072076252159248217666204127106557268660304610218054822087178939178208196343364920864284159761546271218194852796081397462964795008145377159260533597897340656264473563544073349555416334697375253674577034462124040064747195581203153112490436839064244048594915476171702515610188121438805424322099925142989674676349223336450269643905763441916407014819415386614239825019417786446741688118669592818688059559855086468977357669058977515559517682143605140529214805545100371557678394143923249507400918992779334532254768699511098236918123839826305697812744001632736320208700002198096271655754531317542597794739938090680335227641957035671864866733000391470664561345625174061647672897060350958372950880682080921665924585639591275881826195927807720735859754503073578021834081048425594917677853896848673016684385786340881179113281044580907569759970488041044683493720708849231844210659793140560623776225464640733350886382829388284073736022344677071152868873277023427257233467292961646783722134349346184744089907421990232123746993655083690961017136590394646335500683452431729671084727246984387435866150093307964318415755834894530043781831203334655493494489141131641207016986601663676156830186669481482239349709519889945352574074880461660520528589102326900841827276446885909921270530601494963564895706607471702738882529299967746948995680008650628987396044276731790734735330708765513585309111413698703855122798391816530313262308085477509055582890387676327522484005227786660891009120044029782488672750909963094037589074254198015287088558275288294814352746058308286336441428847654942382144601750884819427964680888789897071203337839696132361784173496743628486329887950871995163427108325449472988835520252286177999324822158540021313578399807650971429675851424054042059797102189883419573335318080696381315821158662561652358525786302853279362154151579255461729828750070354448037931404980227659936686137280826752064364013517876599794453130231305365335644184564855426701742171867976874250420990670710912205999656669542415036537160814943506360586603320010961322453268363007564550925395511670244303502599764489156764643744819780250771486686597836806427281353377777771484495302771235062120903684778573453640332881311927512212529374415287050459396384673497494488579845779515980083243990131544912850732276255552044638633874763340344526849830328549681960597066512331244212216547591274084904203896526459291965732595251309261612750090632442056439418117225728877050791534212871480328762947940733020843862806644693793263429299838593461833830575971864168027810986176930765615133498892826258713789080687749371588226183152065378194822185293343005638500928121751637526345508853541341043192833220093655821586566550185069999106111595632682505373766628590784011472025114805022475700388325256585065053129101808140131362730287600477185856207047318872218638776646925307752966407168346732356555744281436708036790616258323430060479910551529405433529899686786090539004346226515523480217752536256745372868005463618373814887034246192764335465199861795784267131397540418030897953155126996958703866114937364500619752618721374032159176701853999940095052310234710150162957551772727618584704482716050382343343847598082875619186533251160540849809745358012546055624487271081070240299676864424398689497362163633484927811581727506605041601249263641650666501320081154528543681090354874204255655589677811973330205962144122818158744140653241819039420779395118271079462395231385324641894256306820702314891012304473154685135955457152136034216782485236598071588082020099016397706723808783150427713453293998528129549623159837587403768733539839281886919865139421286497336332835273139014526329043521700534440926992096150212933972182668529248555988770360408239132357096612696235858038358106015028790181176973158149777678750330984847700659383534103446668038132011613905414859067289027267044317366951324910744433112379791190132857114627173413867482538119860451227007715822709602640448929240367054723724052725167325467850848672803765692819772642944703447594021073692098554584375327548556351548172571747822740526491483407421728417787157576239357742543720349109804178954176529133742663316147264821683938663631359651225817604814917516076087897875972887903267236682140158493435748361368569542778732634483114007436684620128347111761380689010204300300674710545032928289661014210805298653081824508202825515978053988517149922236526388107994530298746029954756318592465034418425915421304309847048967445960134270793955670510375707497539643435307194068944938917467439296344933385909834360013697104812909126660402315371547617621311201334714138074498180354067863161376815360298464948682296842275942356629852561020669960268638698226359009381031292382346167062698198888160317601494514704361090313221230984017850040648389710587379277784715221317122451689748872795521408079718392316724677533806418009498910097706412041592630236688087694807107679837007351068006157283742756091152360796916026550053629799428993762028100519377225518899309400119743862156333334029042130850173902586741079999784807999279784501515523092088147296051713783078472211377412803263254467852413974900876509040383059237677024360372297919294049615913337338355331095231426476474938039021765739304867484528761957186579652866298302478907006055386050335398563456634680173365252735170747563002756328549051591990459047266648460258937779485231196307636323928144692532465659439592483264545453734237930047564265796358985386765604462640609703926038870385809262347958452111465990059362616170763543561656409524459921668990664385834769870395143788521581867575797811330273379255937128701827505935335101056375755544586991267669836899087806794033498486293588540421608738479745846071746061207596509205474705128335817349035305751974198765486390691207017698783496167651611582188435128368296857009648686224882483070349668268803625943093161188903923190077333173043517264916380989054587512966364029828992212556659475811463610432506090446223791742022225020115405063932664858423352441582088480954037555924497350614787721697681427887380086613279145080822450856201238613357262357198510477083866368301926337086004481781465782585360539489665165177291020700396948764129371644325205764249465884799827275379330768710243547427750002380612979378073311956512557773222337525844393942370904918342989765149569744050908724305748796435481070245273973131481094455329306212189041470122711258006726701558314755138038650068305724096114691392804422477666995025506197871655894792777120822341201483505947757825512695001782166173668965070013839402579580765964792980364955761300980296134517552194076037801459852889784871290500407881825723621415337373325688667601073609177886597631928788339028281966601661409033597695859368108264776717545182922719195050770052455715291690529468875017317274170389178175035407629066656353105800277040985453498001229595465478102748172298288507832392148767280230907306433497906685054624131946117420627640307631174449857696628277966581682937979237853262348695517414838839823492425496022347113880402654489837695988459994761896225717584117651921760216520116281876347865267812198239940293226214091723540175535156013110098903870161547422443632459778090778715113600317195531443939328750851328342435954398235605771662800681996761918940648762346264818382877997455694679008829212576977698156280143106390936491802566885814069320870040986946634406217526594860942464466579070148365326624717249654392184221819834080292121096139305352498492928236597743237247086057327950666482690758073026838770539640896184986044221547676789752023554029352998250492677831421756137487100515634900443544760805317411558476458558351661898826656440703438088796245619027651373850462855967917454939352784936608409777682660504007540654784520898279218743619256643316961031691084332959331932987401469532320723811288423135685258025273260853927483223746895973941957255161057193842064286870247806153938322159700328619001296110400225885644474071912881269512563346253915085250396091427188811995070670856180637842715722966527520302548514624302779187646899191616739441076227994287649971500335565922048868617405884143640720437175262648363622987146744546028337232501319155669965968454643280099093538112288883420472801468312817034827139939631143656250226690301687762283041238682488173122625528862183330015011405491131123639124571695057673916043513701341887579749194322512343067630093658470353705264374385344031773140476821662839338759510838122578053773772896325021147386318361334691567757388015893053772813426115186627114889589766385649994429365708562690976414027457023507759708593439991984175517373292187249235175380869984184149480309586327312311251365052888591621947201605041771407912871341035589312764290565298115814422127123533411732508123509980788314090437126279981936726756105221391856050216282426363019497077919051473222095288863343086115997310650448361591595841829291755779766649308438026509461538689973588660263036460312948192266685019274307077341811104859117222252131615745841630780124891254399223939561030197530500679224349282334873617158723287001534603877730373210029370518943085754521725649506298791372265733537497575410093705010196117864286733349931352445052644240822847750934339541351109909528394701873898341377336037570597418337621105122859158566390670176724012959749260309278405208959830132112377157579770036736280183347799004419251648151091851271157975322380651157427526326057261580626020334707782346733585187944850651982627078352400897132667975791875195802637284055465155364824658513788172213948524041738476318753689838513560611725193735975986330288771626127212275602605682383446809378265733936794224251051236322253463217114119319774783654741119183986603572003042123759755886376732892898721891087444237257783764487898534586457268345077599762145005686434385878102651999220721583866655823728310157602453779741251169057184248015102860743464038445468280304439601278752799393089015471248213404280456225992610811036933294599469735216697094736804138759300088984411718207522412317228373197574679573588777479350340009923961613109766150270989902317090847394487952072646709476896100981796703938453982014261674566469655592389917097965027720480902504683038323989082230363926755744499572417788335387915275790797513606766914737426946542824205933897890775237034640236506806151673594756857375710223449296902464268735731775622779309472112403472245747448611848345291013081210403517833859953016335388574837863398238675932136951983011556139566724175933465038189484170239680222533754124119208653971840353776843261186409301525486492386509166469590775636127385516761992888119102886299642000108975156568644944545095685313389023980185000731618986743115713660015247522508707020467243033546710564591038104459630537386883482205900238963030011330616276101698900846167144914385730656555162235051821543420245863851885309499099738743961255907888843769583764935808628901716090148057849304959793506750127024027750460638883294086666979134540283999753701586000198957825659613251461594939211514903869853703440981660618510538592446881828650281642828163466203382576588443652195615042717518193629878144435716240550962151818380050589325914947607399188646666512670933605248238152915093586492248011753879997934455736720671734742491730177333836271626742717251702635284541035092321521536679364780314581186799766565980868400134896857832804666706107471416168022276664147879314705052011245471746347174217521226452157664650492570108581970166642741097570133566583336995241344567548878614472575646406942806414216111743731879438462684184006784420639895143271846683729298644109014844052919303306929304729410729394917642639383965131421784334440719833794100049551915480384870815280620844953554644628719212166989478529418926891578762543156634012220438800000650533443885962521005919310798572879755822819585715470512900885451454121012948371176289389678601000677863946365589266441577136466794546486747905229567824495015253917655320541668928747877279641202119788825033980818457080913257470024176892536377824272890346490005289064737082480508773016883016106703933523563784061452769149405253355404716035747846192359403538005192071516294668726564932699818742103465013929904091558193915287993791116714950411455638192521301402536156315414069063824990142428272195061371785895973951612155317228432471333249500065228343882731678697798010848623486955655133337568103789495285701011542751611951659082719347496343810497812306796429544720965694168616116343926219346693258756916387850987516684287096045115791589197535240444137138640905076076332389750552862170013401604452241379218830294400442837391815888260842664234104112344241831350956458480110118833898081523165902484556413098387581341626038980912688256166624299941358699416954345044617510618003921283326468589590405173172875472679122033905185439214399025880998749813746867530131139943460605962348613618008820635756930596364138470470213427800715721415601969888323494905330895214857458200232617417800904235730215667699792995702534449167908526209339848165856079809305705618958585505623625683689077429874825242325290567499011303500003984672752338487917836884758331989406364762757656710896122442215284962036447404227986311290169115050461621061918750652522747876869549753155528375790119575809537562081537237287407268588445666376396144087471202899932281972420180451840585350855234798263022545357596608063889786739731852431017580829501430963478219941114049519955428008258394695098615100169624079719320320018882078710343027577672735070295259667958411564448142133703168840000426541240813136710305249583790007529806829721798757419385888561225897589499000208230436553351922049516145457568198169190187432798346843699557811178739390342541847286080668926547576214568759780659184856965788973474271124984902677637219301501482487252928589876775557035654043089034138421614099117219730490032247753786103467966458397735218147741178105221025321649340290822858388138944773753083177363584866714702661805392927543494065039301719843325943587357353084750523252267928975210003085373822754150630819680049680868297680581507666124057956176653627080104367059243310787718325554064681545831350828747567713931057572778065726827866618007182066840941803126912606188401162937265348599436684535659052605432137339599552396881114282326980501715872452477950935523959430077715778310979089261909800885120560995652948847446756555392605576144257447463613875847477506000335942169679113969361446150093192429470941800642169161077038687849779012752923180572329760549291264934493090270743684169489655031802286837260270795777192755964846900691818599806223373028033351420912797297893093421682148625928372247495541326377886299703109358302719221181801383677799621147658699234296937223493269569521226478443780461557777449638295494706528797641464450756870587176804349628675185066585105963701663305251256327430415937404256156182164399773643790993118682780536223064097310727249872470447687500247560886994324391545287057271129008627094845262513904985537025242657410739206227053525465158668082102787228132397704795978050082018839337176478004815500513860354416863507760819066759023231579287323909943375700849398242210305979466362602543537578946658386274614412821301766725815031968772807706877589378499273948009632143431815946049917935518186177470941868075536765554627752817886532122318480178437985560466397434232493725665378144988309000511510028402321084794331523338061557184354354484339008347147735383285055266739280040367340396168176525388341050646012029591213617193410114819624081084353963330897541029140581622626427620492277818772939131872155431629674319345375065019060575930954565172810892691213730594844618889611459127623406517423326905223050466155172278184344885141234919567180149170429628184819836833574802896463358954846135913803707288879993110553890812332682489226718339702653069266401723304868129014291050625068285061561168158200713291692326289012548146258897038499046503124046957367956298331528083146927435567218184232947746754819271028831905146684176260802791234094104811261686857737266173281992803322011533200200037500499567482653709267055995264646071378927513364744244538722628680713160503472033390627683081526625826065318045369205760834767793336018365004706089850706604758093835506219972586002279324491802790268032596740139081381428437484509660370450789080346170926727000319322207135949110030843609928564907419228520817799571928081801031779648356207999977456157172901971225865806148826995812272262319360423454499276067935238090800830601531795348288432600089981137516646294153037745843740468987111693253807071623157488181585897465773538849621010297190270831590664368775723738535137808110254541799775297736956585253773642723127517304386705723284376246544360137341222283871852899942208860283570802419584916507843548531104186953386930185800394215519008134764023348023642008907274037268328353339079799119034451671830774078516297871813998263414057431303296882137859316389450162178207768663991767170450556491383628259846903262684375267353467715452302841098660544886676847934565206842204082698083729559922554714933344063487015589555143103067635813834725301115024500161480351918185122999460306870583941445356155691155684135207916714290699753483109164040470692256696107785978302216101034016567006009576109657521905574426147478013252399457671359015480357492223904596714479620682110225196115423185813230402351200104768299155012420765076835288475079392829211788552924089722998065229927515146177996454619182801008949357491364753239227384396917379240627495649130809064570194351048515749874327588818490069055983980358349669988952088103026806064673640737557656905035555066820916450993083719842655483642711023521084356655471120383220942571439142460697723881770959128516017281644551382987599060948696873126628344603651264057524465023901372868995369798225178310316935846938460715972971691330300206902525510993986163687281706570090269964197960527993744081022390164383143923174221366812856134500176279700323214977508043739906284602065424468807633893889162477446795696718639304474316276649002772692601484888000034254708254919950418938530510811315167276245904711512297431136250429571488696646998471374972762696471080486029482912366861817576043330107189090997490235531763150114643501399346352102265053345561107068001217219456250634601478779246985527057046684216656606255778537984701072704215035441089322285244322888603549525012639102383238398833252080532280614252409871170078696050636011250529399793046019877338210254294859230212198213068664029775830701471026811581121595994927097946403340596039649947104605247181565473846669162723693568566354855146680520272932803724681916616949883158409257956267342283841838298954079618069138992757878305845385418479073424009730561044158993009281988576037265263900511250879188958353026672909068898613310974319242329829033606509165677494498584954440466747007113031841933249580543915029723614334586854332792877708942792599535237145587412991951221194319498291969831827716375507764842070955495963233744437842377503916865145374954663381437755783846492842945255684740086902372052295675545690365933000303761175563033719817644559941168348580615838405352196449272900055015096000219905420249091769998381117008482037108005316264904184890632477500145979836910366734364101979750951768262253940061763283944975180285687821961695748700544351063807001212214097037683796126912113876132483303615214420573179360153738275743715062818710335308731329975391585536676344893321814892152482122579046516368274724099254534388033539271681368916668816146900886787708282777985347058755671557491407804189243255445948658596808354198385288367893124122375089835881765198991437854151504070092751588415325271972319313426056243349814858093618476114704845559541850823228541056405875730094235497659672087746022224659490250651146834771473816142471584033875753801502048398221646370867561797640956979154533733030844162521647348686065449642878434880754111306307072337840953731258947462904112108453886533675085977150900948802773650813143822920487067830697713810364937539112866898660614754702085485643938693846964796951878373430800509926797223489801289264104345179298305576284562404586877548488132406528305706949131779138784269572236808507562229245612224295757938178471720388316727863584869342289431934658007647116675665771350961812826498212819278237918655704010029653535284113241595767981774385345360965812847125211608527844923470109533031980332667331250789500299354241976795614481711433659410627636624579710390766533353745922397483582855015625554261858252000816334404690857287233899087876468138859580726679352834380862765815549031394569522051227462184970777303543460666705466897166149983007565664927253802633431966723138147881078357486117292072017859550209718076418774409833802978952766161326672235329826170435848139122966225574363824144386761699760504305097672922950378970869613155600243341657956678341048009417863512012692281138018950429723952562044948728516575982603204213177487911222096216499061389288710279030937544462615779877500807551206520330484004297692622460643219789045472713794417040901166396208662555774103923949405076998122365858541351396139214120793066579791833536100365005858072337299946996088959203035177794612702536493126903321559909608041510350413942844284697839747012016348364994002295842768834721023296171587841405791883799801406649669027690283586845431747865717373469663045078216275538230654768539469869459118277051813535363111410056575224719341391330036970403709771960289401399287302128843720109338795380295341817840550269566409638133627957838452562247105163682034798037741630414556442617612807097756016645797594596754071399630356340896620733758928068176192918453143912381786237396604124718254790040968848644609666736814736348257340256191061168127062269010377889631650428229984447293335166430078391794782855919997933972303043457910326603889338439505240792990473508837567608029001673545241102435747530057849910765911575416795469756361975665279231643617030521158504240779009495175323917054544878017108657637247607510732944773954258537192756965322229500277424779820315780633374028940267864021298704952055034724217037407086530586038888586493011839619250474596024456980256026028326598796071853282021582697837408522934101392741858619510872358024401836543542527896647779953111931690117971054366422751230803531700655114423354894935310618672319136548893870074155276309275023396978928162057648108484866414616377027566652376994351603642352185224704359422245311785241698928471294756658899073591855844097006896661909938516529407193933883124769543376216724406758357734454895701467698783432555364187625243139726058249779533760012192045009201931694677945116453199453205975358832452466696471927253039502015037100955352051302242133069391045904323665485913957740189139607591431008748794880955420485804873922453912423807582755077922120448565686677162521608980381517529363430455685856345740226018193932309243440286687188189747685354751423983878116367698713664485322079405057268717702805015514544940105055017963074970025787712894904856391837369215483583890248816891435336003463905288284289681358381121283251046412655039302659955169109812516144107885958856703158149226653317950358588577631246466330549272966395116933064394408185869369356344991387042899086329431890719482865712236932414754391898711314851450457140984863725225722775567893939088746635975150066704532540177936902006265504067526805364278488725422763666684133410276563443765582456907257777908410029840324758926411486312081312877604241632241090491207828993581972079209532660045259460958736334159282471532604762115564242328628765570811988538953472330387669731837427574899357670662280093910887704732258408178355395498414573740080831589603692892403755515626213668496863221304561758325928321198761200429150591254057674680107878288001712321164947503444740861026561634668974558388282248490951681619363343445761337945706348292309085294756314474614608485180801838566002575960528692821611925130598571995959819215611383214965547991499195230494533088138444854043556732320548349851050405266111103071339838131055428780240764594290112677846775740583826176537453809650121691149832030708071643498725369959051560341452021358764836334371009707246699078069028976076913324109801021291167024773270931410594708819151436703554743651643355407306121375672831474945227434549555218910508887894247245268414656601298395565802255169705893805434720993542406458290733233220684761147541235652759483242746396598185322378327506992258977219153759056889204122385061188593297690881089881868554267638465028107358340410262405530524651125064419288574122157586616527686639366903399830570259394059441416699443916976399871622546140485547309261988538335624850227453078515840527167157063227109046354514067559046664629731019180411903354830223666033113422141993024942799486957985167250509848198943017046826839168191221443912204871800880494125246266378360628498983145467388596658231259001261606019239859677415814898147519015855618691886166893349923666632001278221535352449505516194712750663775982329748459698417686681086218197821560497652245194415787885546607104792798051045164687459132953420122734723048094804461721521836398070419637341197177124874621518342526397377165601740624439370941808385605510849510315806336268657344452850436545028022620719928683561776102299287234860556586577089963384636662335578706327625278183609998798723882246321154234343979710999592792558212157676777531318509893724245626454569167740286739039034008461636150764897718322848372273074842360682713856850678638808844566859878370661104823787673731003280196533050782560359588968592451625690350798106405286755229795265425246980144114291885757627135894060269442243511891779379963470012807085202620477051966977384807816425593012707069808151351646698133410805648188672757475055375693018597922003967912517894777453655513754723777333051441354249019758135333834738706341987740426163413334746762107894336471397142974470207589187309692310703693720737015521709061356361212422298298119557309059563615970373914743711309103271710752934860762817367295609295266845846123209207997150715870959698731105208175662770577657332517111837001994328584428719255778373488319562853816551754120936108851951102842345344881294852882648509305015466336088784173502688239177302276009865358751340007254614192460804502262633300552493167459702082973832611658306648364154526537215553341766025269177322929820337845712329311926181328387544785356542305718486474674913942164384123950114719750669513385335675842219092482834254125025288369827793448154316881268615079530718683739093977982765829238364212559448877959445824835793348284860032739819272523701552359923671222904388958928847291501732329326385809702987370446514842468258529959177509095435579338672549418269484891127882809508019580315869862033317786837373016237495554837440925174093079163031044685172957339328827129171041365884588189844844355614952354071082836742320374801991577652415900004645117065371926155680891611976002193430992930889248021379640680715675119734911261412077506180814681489511094471077595520816307936538716245301901103630840827904173553866706457366250197788477533602641090377724384957915865841514785987841439595552891481109266385755566100665343491954504487499914031102542372381356078444915705721566329294521118865417164763619448320458879229607678004555383212952377738606788180022113921247914271362409190880940776183088053455857125778598787885941600167324750061069674766819278258091249090089373895899690320075606425634049441435505644480841738439293373024144934800981842644108240881249981962709657518973402680860338394157881234904237430781259931866190046013338354262429218133637251612387941344287629317249686013988257054080944576054968656868482639959667070490223367782188719888356201348835037746136022206778709099577313704958774497901231909065458447299192034392615487129305291363119308340173483421475302596018325049763830572762094783430322507653053964255305577052326749083048840711406757619035795720055093795635906108396382031887398320233414209220718655748069337125742969765900079833499474497413256987339063927532078482440165198298988563553514466560249541122132668069731905444523553105112148031465645383207875577284911715071021661962758378574158651805678445167595567719916839727393905802161744624451829926134973506171166312698066892391115303171592065020970415754096156338570928744653568727003317416763313207284252811978929306571099186756445951552052328920151473047028163942885188915877909272238337333987518953798644485387709527443200349765006069965308825116923348149966860057623580751621426530936109683526871150521990650319233427206668039183733440091942792693432478428798506943400095410243374693247027134038721491479246012610589277154052557273139678175109660306680005616929089022274371876664537952741425968408966770738587078548453715876440205307404326555193757757583028807131499375002881020870099789752015288073565141335944882437923070623603588930136160859285690970560870836021765146157521856107302943120183286799236250437489411262424161383588288329533550930946967621820193779755228425800904726080119647937261943388071011302448617079501336076831874691535275139138012579743820587735048106202386581449629243158539334778027197064912128014318680130297745129681526108190547680815317310752804172928828346577098845746363512596616526712043720524751477560891179953436187919744142656477231394039839510536494286154339086588323484960975471906370194497911397017519380859935537760507460434661739943831236280542216081007747927297370720324808803063645629864832365543206158903868948898673196896191406780660202863817545346597201301966543123491525766793935230214833325147797881455254124315920379175857755305911101668651475139758548798278563149462953681035393095027162471929921357612588950073616142514147071012268725557994942987913087162051206038289679620517939897505907187424232503252089601309371747475481920036286814435867276641735614374308419580529151481232326704498428649052296029501000160446697576976644732341330476978756994018215478513010509155864023150173093467382879611983036922123745231939794027196106139839756394577304556872654110926587971845820002537087801084543073975901049643385066064111873173560074392674078923215839253691937057280412178300340861382902023114697550998788046288102486983409506827757683810539709822659847802884762415358606256378653810580859201387646610398746049756790242174526170871363626373304179603984207326877050386915247708520955390998635973204530554332871706813413967454016280755344671302920725127767233815536414667091377765785374953134784645181423282933724227278507670747690701282717248066180615254255973984065585602758587237597289016475489817702640761778769600379997219725089477350526176109008898976667385583147767292814078437907076511123095142688636643859967292766471879127807609322663400963109904485602625845813542749380899610716209587956719484810623904273394420556256747411266214432222763572651175126604995021189458080189456893999357188985723200177905957185077703902114724428785460773207906880665991115620353621218595121257717305584151665097105243852261556853395815899937938306229463366129522983075464944679220611737633087897109783779573790968730257105222295184802172038700675628815047704350381257886763854789681606862419016710710723198982651977756470636502706777532034523629749055288000581451439504666012230500024547078183010956596235115478535691737949419177282905351542747605240082408895916602474693070261349897869291671078961782678679611475445237009658428067054902273792220429930607750261976135103976402106173724116610973973023706532605022379299974785731899145693832174754975404555428111205106875324558834581883291618248256563810226971448878478164779030537377028218980972847231100733347828129254740063309227797574885823884889623860867272237633547909866026173963161569704611432809096613556972171502711624996339782543635851332833628183649638119194593197223358357652161703187882229198996382944818792047153345321346910468996376517456594134659010728039754544103700623605192582436710068378381507396141515967763288134469268617347519458866432364603384897172433253731795333451024585316464242360754772968314399326647236978643054649770301919121317631943076784313534606434567642863873211826672267694223078283832935916530859765525363239690419273892417705544969012923098078384274901166281832280999967185517248274515801662126773465648423145311131171178172898671098679229381429086345438879268682269220233247587444847919805985953084962870742376898118657299950437820152296798947302392573892288193591974214491337163810935912181217034943978079634833462692149433183062307281587607839827706865718450994198353252050423072960548973539260963709125479830792123676998598268009670590097637650285611744313338678916005550261005162687105024544768264667182756217156082639839176279760112559376688069693288141981252184274640660869354352949870963519864547710947320649137173662974070615778092222701353172902933598742499227461220009316810781595705401629519229158184225828304164604699930254709663709132211262922169294022266135052354330630876517889327549988011978021286794357828931057489595243198010689999677499864005054324457273288242872515613119713600439138169879374210549747748951412114964310034048757689722369847840092612858672375474212016482540429831480851171169102971320955866358595028894762181324232010032116864474270734584464201372652884516448462656700082816110790259283430843990804750408769884060999572865038812664955978655175330031493424428141382754981262590536420352782609942414421800315843179666947255483795786987824866901990354383083944818441315275664239330119942652876356604653601708762646275087224153658517051348439049114191596271284176972967065944989698735901432772787574049305087828825558376411306173854362000103971617423733446420896696426606567504427846318161185109821966905234170770672378405903497295195140950970430723504272978819895464527378453333479573652573252938958456410317081225011416230981050294183450366748340694975235858053073607796421197422633168295466662549663190389544755966365850178619977047250989790508336315470269063369369119200649159502975232203123164979693207449970846759976595986198122062063865514759655030379496219633249569512395293173103196913992014071166222279605631211782931374522758661211642287627879513064362617564536394612654407117351477665223805288275849018968290843749676603421920329195430183533649408467550675486687872595572927961146854266429034904027459174347825920858848367452621254894711463575774901253630887717162255497493805149189041285090448554257780996656992849396645407691762303589298807040907801415868247368845038498534066958374810727613389278056334408236202403125134866597333217244048874805368860071005900085615003259394863917049924186066784482672693326424551845004814513335061777139342285163135621459678843074718571176254124602603050983086537107097667636241365030341169931114490815875210959931648872695024460316256572666211449613334453342107493319752245222318391776262722523459270034183592692163800212833850333086288265857586505736990182558118544101414906787655740387051322932704207677351224523482564645150723222508917362627397590809930186571008417331722018185882184187848238737296989370864787044042111402878163325412462991528808972960392350941655167430061394217587698851787932071879908710112408340084619784357612162737852616193648306117046651444041797098583302439696168735263021442449534606770924965090207450340737285586485557398811497969904987970136746379890484333465786462616144622646490803196705188010595872613453389184620109683261922644778098034913153629770449615081062796340875903332151463393038379992573614842283713967695302651473305234806068171597106507680598546798312385483529795977611061872124626846535930098231900392803386404892693619267039265037312084942328686740416265565538887749002912530312097617613584034055483598640804518272169441499074191221869369192042739734356370089861937870789099400473022089778069802122424878247210392627090877284141251861886052307241730754773899339813981868087857508144129500942135162557592861043376575280381773426782711186603967309384386993966336474415245151336613458994159691208480144920790679792730658052146232930781233079843240939038794647984270106474232381342034556222298779846576721368496870128356187339001159697342766140962779227040032019891708976535909524973648434522876956076006009210536743226505889676237458490628127400789720317847852312402058453245093439817715945670126738791770751913991820046632720848277257742777624727346945887871484299453042595174359400423153690866445792866592714210159871882795057212983375595370140913114493771417777907220667126211482086754810289474080470174790428294625815714725372081261375061474788750625935456054032113199726104331894954513207528788012294447231257384157688040693849979816780861872614101361984310988422558533918598994233663891724958013144822232276113172967474099916213444584411204479721527202193245371181469044380324637726040624537375795603246941151876514587680477990449618334367379797236989821348520637555157410966352842044883056060285526756874598320941903062959982152692821767737566080979766392031445860768954008390382194033756362682230858731576752671156713099886163733831402338023004601417649833745907939649298433146140911757342344924042569093923737399712033194216522712449258879736909977197152506321708482397294017171976992757934617609413517303950039719285547218326361990634397208828656580264393065934177277651525258492794179013252953207718568213573584867302889511564668408641399619754954481642624004390282708998895806850138889041562392535380149659375017461209938416525095948984187734881098802346374409393679067742426062691607031398586385380115913875467679352336546787381464348812361030945971867097585332859829241055770842334138854117620459063928903073373473375646456221411606971133976360931334499164343110186414840181232316454335958846015836511750187198997523337975265235269918024607913028890476519752579312647537752293240313822552685463794760477666452461869043830899164869059874816171849309516497707390609811342258430724924487996113047776411981023119081253756011379805956866029155415897032581987339461760124853608587852334675363749978205776054358783882892814428914275508189553785808768738060304651782659696747594080292584416005576115562012493412827051463098894458427913215321919594037639635342070038884105048751270533812055355725025918994081667613891877734590891497353667985612879357202353286253007468183959820199396709349202997403507709836024480624083585902674215362210563256109453130522741494428747458552414819148622905098086700377274421102309650078610385886779951275728273874465230852900510021422657461626369592763624223274899022305120173037692497885456398873245636643701223280468364803689756559984173963664188484594297762778982507919443894525270266441546503398975590371291011705641709600315614936845955045916372121118073541240553993932075419776775327743660247190273741090940823309270345193566227007801726380386337655585329749213693654064092660763059076144552066460536876947243106203963967676515567144192301293755600878064176089248745388831361192179625566989147542226524005778406475471230168295602089086286970481437856693178138830718537826177702650405618372949692787420329207179212673307286930456349630354090869762239049838430857164775996801208755583841322590405320053425499995262637343198590297519993663531482545812307360195241405733141840918492025011874425163362140394942848787795693277476326676447176043252313432475379657791588221626164377243888894442090527782091753504920458262357127911632419978791531685154289674217094225718233961659477457183590001213100633617925911612085566228069557934405543305801186321603515348696191922415813306548699414265525122034297886597263916444425821687633775477302186613685370138166597340321204233787820933684813612557617919866334115758413657042895042028788374282877198162357677515909297762103027649168270072061948784592362995136578021605170772193943250340349321908380360005925744597420159785282226608235216768202043590496627184454163369218512528821895230342955043474825864193459542871337994029536542085137301677933863615492819181584517475699831374169065850387232574571854700888801231176037689677933723494434775960411775010242640432531748461355051451790822009326537298706677355118249083489760423149825514022486941447945347258387041358939410824791243384097786420762158363614524241162786351507182064024419659190414317662547075959799182456520822617952050087863404676674813214365373015320707424238003398761782281998861094229663799184393420258973159625375872753597209098660603429754754333989102632044591703706809377036429070797321259687208141900555213813304608484717415574636322237310297373110235424233831591158134643006176538144465627008277933772064798557179683601268575994587707562224889572358871033183156108557157756891177541478650376094802830524165412826412201751398767754792364707500398001370332402851383097514262923587115722813307921306213825761958505375785904337186461319405012615186758264294131309562854860969914828181420513909675776070318607098580688898075828705738553989624224137723368744318954083033666388901978280683518510216974234740696266859006572909509189396551163949826678223436793997950744516351027342698184125875164313162775757002182691894462817756504660859684072612682938469422969912076298489998601280614850492965121841705514358704760275255856373684426901963013160182381100723386350162621763243720947554953305299586358515893803256706017616651127320229456975760301803678149468185167547413894862873536903921123907303008973408139322840740899353580127541633652335366039087934743265735833709795095802210408452017357081575943403577264931887258161688316980263222262978771230143264600810678610851432319570836091524005462877033711820162923619884160281212653383211147508102020181583492932755947084281774577763859388179018849389308660533087663964812888301142075732571712128720624054520665144760372524452467928323006117962161614945319755726831198541835802857160901124236236702283449229781788517687647395755917587483527557612209431988296885917710159671422014261717758311768805533261182988724280424672585574454558995058561069198323718478202733508362596732089780969110542408057783839860667674782629477916539250084704446708071941853937465736903637023179929117907811957033380550809380938436912580821869053952645163398226896407296946571346751580446062558697482696627469818161830542814022668948645388737666532910114403523880364008137635158648064887620319307568756452794236032686567389100957711506302078344345246781632778849960731179057951989053804334410115071817814181848112709750460327620693356858477991302821633213941736773743935144588073221416047304837484656939636022946833742372885335012431132461312310455306305568228982049652706174404940394520315250306126247750001250052683142381550686004712881733578963930927045507560656033400321887856317634753773072348654047128180093996519017933152972454236313240692939931691216717147779960026727388578638049860167777291356213458452524016024254488492554182263527325684194464759364082389576667667830668637396195063524445406560672281082589739151554823783297976082423383923860721611071740941741859129619584496209553936125742018056598852411497119534177498387396431649635745787310342789525442085799722914706009703930257888016906766234634368194973794345917639612973556605471576727449772274886555249996739591317979511802128050673571896987303608482247238611763026523210715823051007642857642646285205573203977637110007674375488424327915178666741298052741797763321157438404099624363825673766625350719972314396092417122710471580762518649190004530404521660840312590005754749856829182498858040575802553907231758279101804496769521793443063041299846687906333681851527809252914611273122576405439165580396943926448969637199694905516068367596100685291394742941104561332578628251052993492315903933900412684747645711857319317790441481461195338926857545790397684457031909462703844767844711044267106416072340657794371657929466211615744115352270859080837805872664349511488205945468977682608154392681111473352425219472225037354492301951532818114440014828114011974713647745370183530543134030314424236277300587980220069622486890735766937622294069422919560694302030060893550953981306360619518121715940319643716487850203645996904659766998758555908288158192685852347506139445544543812572112316552557210337559570453272736945372919070347929806053289556380859273492530808452360355986848743548985303759624845587124182780982756112928212562514455669949499868328282806483079081123068693117241466831826905759908769320661456668475587236606905314072719900794439340044540573900628833345423109158501608771378724588159830840800812416431668883592258439282261393220685564883398545543655498925646032610371652707452036139293116433881586873594948489200778777067733018780537524713785860750641816540588024983090084006837144888491887357961112520721112521004502372055022177549724794291166637663127174672407524907722140108335678617057712593310578002708079733900384853346034196121825115468415974135777988409114111116007964579881475444467779201341463850494652217442360457087754192408101411119499883562193538427306940621303274194058100226626017657404639710332312411000242903483870611897888629686453188687432230095186822222569068630296835738413692400803379327144127201615456305822976914664108247712039082852940365827807356356280060924977228895521384133212735824072755715274521052728866595586975037371106511331765822527325376815521649132215298203928699463097426450222452915890396179641075892197400777227258431693468594773021966280072095933820196263491342017231751167259112565704372009897529456037771918528194594012940277391691293612604374149303677015164636318149484313071951608581884518811009921508805660017272150793185098000474599581253375698174970471799362758037340078335516194403809223309009791551773666327164662572874653767746923192511401024841508545828980674262334213375709008365881850271566025301337545841588291693687339813859678714463375442533449960084351607898659737015145751235049611890330972226547101886176265169257252916050013788240701131320911775933856294224243589472669879565714664017371585402320059778019790416044728962127106253480826291917091063267784795895528974189582753528416077086553468997608145081200679582376672528651769817177083499764372174762766577440849190340447573797658502382590466497519939602945482026910200828285872788451334768675574553634861286360066057500419464238411746854642968432281496226513421932968656764513072126876746313419306438652161039282763887278133545084531905196456161838969502989823764403867777552661932469194443490131192144464838355952842714191958282913819944211101424328580317162575700271269784186046296492732949211279547409173444168761921143043419733568868191414413181939860632778689713637741866107214775783724804919558686493054919414295081497073599077181375900303007968087893959369029239614387218574897775632229728535729408542918965395779483991837350901556432141929587172530316615680222659135245236403540851273928085571720848214557946119570188433180147406498759864140415956004299976012406188640459455825133825376507193703955137846373079370189505466933884036219748340221982623969120719246827209125834479343900395131530192946757728580175287848061804572646723207785881114282989349046258920506932196500249370958206831938974303146800922182118306473405719953504748779992668965719939914835798690638381758369735537270209080115676182998100902879704151773637380772478074286367727249197678430056203237977697891668111600892437522570791373967855789095514237163260050365052114857701236700840800309172992336300864090730861853639972933837017441415006308633647324475324335372511866029323484307296576923462671131571251096551526662780057124056251431368381144243948540587642643316820435147481134148379053781239147690490508339932442637855879576203820021626663561194805164782675868534696694609666555962323699039851528043504026458627811753506610388096392287050546104725793030931732213167902007377767201133436647550693717655525494574067032156329939523481650501975689018622529113868040739115386738602129346099771420033422197722297713052727618277518296382149092457150905185800069577122681427043853667655432800637639972620690477018132126593334612863104820826415353650700934874544627072163544243357023154443809241787857199500629999860294810845555227695595902707517199642624672023812060455817040786720414821010680294133301893787668061662410921349439528310597923488142423359585207763722517024956846134923046796561252738501566446522308001125218791702332314547387902674750334925826152658356047706587251469133585489270910326884230725684381075230602664655919951642214197224292649457738781728455214015598744017641397190329543954374439507963864595429910915511535518974504486101450139210223883985694867644297386840438279874707628581130770507548923350086121329222684483280740770507362422481768300954000803777076957990199861693952215284472323014743016891700340427067956122471849884284546037006418762112148452917877893761581319004624949933284263506222312700981696501763301084167919360743274786953616097549239901859806329385201129346008002952357215720642809822959713013397068123183274111907042991879074328978939264590484551197386740643891461123600795323416642601280726193992924635415936322855489707152966978448239928157704629119892560056732483246911369527792757285691748697678714189921838890345036306948040435602327827422961843865452018724051016451956332211849487579105237499768927062113082733073693080903253049584740790425003029897171234255149477086314189025023095367667754031533423976630699863102209728784792134547084824939294560566656048166010135227538073943748430601418531789957957004680961483384633956967119655932748487097972822662928210324601435401752491172014540957448557962024510856220478241932702916721641721018685203133677122234075829592902478676904346647497246775243787500716504764581842144123064921159938150321318441822794981698709117162686178634145001066320656786823100573087811061011163059985773277092644709094428654207360386247865138334138770452618561790650395497007211484882402588153231251711992368515245845391582541885862909875488223809552080245738967922720851715329672505428827052250596168159100253311829687249695424719819104879379871463552934362619367813742852169605629699120350159810733649890718394174816483971854192966548130603540445453764114896654704417791096673211733453349334850155108114163739402498997081161990906554114354194128109966523648835994216375885951959050076956017203652397711066339901328172826799443193180857728655863289948361688471497603970835946324299952784761129527433141423052163533196944699184683859285893424515005360622281333822681446756445664980891683960522618654297403460077557522830359748762211733625782287502496472061157339332497687750218313609578420214253835968672118114118391684231521054620406471883707159929917323646542875094725730071411104676061727908817117940153663930215811908974120971551077376441118457559077214958335536992571911020487892703589852089129482936924550646128613930388061477693115076315630193622098160016289469454707234577568551579189235189529275453229067753919142108274707693821949238188090902765673459569674519594436661836804178369429934978273131920108780207600303764098160971233264631590666718737146660552201427499338579339988621559643927466774232510601795503479120282931664639929072658792060828247731840204346295912910649373197277073653645912059410883040436059861140971037696181748369180615222301724926907217113583370384047826107256977527760913137590181932260970982029640454281496292839578980070609965288461951751489547558225511004726616767327145296566755436220289662754342853712776515596211914118362214096994255289510233077636076121309241037459889814928110143467408794266299800559152362181390087926741846514978939643880230831277295807200200474364159149224032585657260001132468566588512521551282592025727560537381282788570798220703554133310949792846338490579249504384039778321581039010940335200748878392960702883394578270860516264739803658175490036587855074165638393545658100224739838769080877360087217935088717258120069246004362024865837146885682532534773901147794829732376707335093708546951996725427209063049630027486919557149551247390496689976491049003284776118112393853031284000540801777326302988221835964854884108173274853098774275983156922540604559078908599464038574987725774880853936388355442328972542992865356696368404982862201684220728054709105054189075938788042451276092342519277690900148440248614050056394163371804206587107996568210602156583311927508294431516193086790604767372861774965770442231914436665526026337250571671595291049930251979499535934171506269153063667879963348762965769432473292957860930414583689450177780377880363831386480356115924067303614685974288204414043586072931978761315397725705183859717130840356497755767172459365799666865132202199209727537382195046289699536401472106201450937749935923771302929761447054785583028407987753851714005902837030319671081263251221525248655566126479835875677854768473769040485114838268944625044076780335909091905571632054930274958734980967745534203515888869600256472430572791478647059617888221982349817344431749343732899601704942560973780835749562292415080549126463522700227846415627880810121505654467202480107761385263660252407504663605060129626316018763991818844084520614075461381968709651130641335662561429656978758384432279891392105505940712736270359912107190203534025044792271878723144240680586755322333822777006987386512294493644237941834507032911180998059933306285820780475766389327121423857819744215624230618644116585584842368828722152273133307291029646601347318631761710113711974799889926480838664611725740229092473659539497676575464440779373446421003617394711239165609609891738910838006554038373225432697253571833833313222357344689817634459588269049181321672616497133355919021332645380035427364514667151576184066952246206174963579719200158257247901314026382382431266688091977623672693425270718629669615259914490830920355409809395432454608941890583718174375910430445970062862216738484535784217283636542402147354895397970571278081707709417078574667703488197135643251105956366772227470212882209606597842049911777823958708470302866129005965858267234057637352214072436704743623614874294058546574628478365985561239616409941762231997824096038651425073476934026715984331404909811580113788366301226024387583174081002608941876894708920999061141036092140165112698171126447665680199639584603897872495757251991168022686143993062503733552892656138409918187534986888264000427768709777869540770575072096783235070089542903364572363446307921003593002347423932496929193776530593375834091753539264733601262194681195183011100787768915845984874220082322479458090838052753996692272070712502545560590833672571708747799045743281470064180262634184115744271074006156693340902084489111098470616062270285347956256132356250098168802819294904098780253858508402838727904266734777841215505860189999032395879607466781120719156425986944947744853111805157585994973891237959808306833597028097677731636086944123350829414512703730284796578977214641334231354748612349881217719543390224908910924258198794580262441348658538874590408812812925171379245411599180871045909333796886985141580827156070748270845022852566987722235795418009646324166433797510504443137118558098894879747398249181121017122825018817904109333846138236431650310160715606456583226380562861320541923129231019776927141154807794120313578114514553614944550249388117725427540878342021439384862233207498384374253709855757443499296780239801637712070624420758926613816891504505377815699635812793484096939164328090536482984513821313102631678428513992708011705593279951332256129652485902633239947674063241408667193199584163645313132314545671319127825990606729004991186970837553109971312155828490122899958093096852857286829695623717668561368985039554749092244697324911498042832457285681530901258392486061281215975655906149318080396707632884501331319722209518896709749721491475626405744997819685351897400892257592131635487026403168921039121375419061277689647513250572628404194589527749237307465241815477962499958154787697933166714856602172037874875342017759398634008894866968824399021625783724468093582461926930651550674841376881861842692099291664282373266563309551312450042542789095554646656038933839466230582059746023560383002756657940065655529506290618772785838171481790711541421539370154348800569884748055027453097817936087502621027340106603646344713549919917058580224432758072890502974795114406085655021605358851224006987201857254432616916796168937428836296931568896190146963603603671525389080056162481950033725280289206392178654631130788107324084756468004405072237036521437827855091138961083405285136266852682622709407747964097382561273895684949252637517255680955710766325635406097613700368210211619038974656229036147632388801329083478985770556633429962007289154018747793683167579880734665443413061883857882821477751910600880384337563620014050592468370950957117200143433427215753897311640231327161948671057604286280628730033762114620110277061767109527855358939998743692059272111314926459946261533175683596968199633535899994942309791524559223152833412894602268847882615236619148640527964517380965979145446873144159506892079632331068826736394530995863464564415647672849152554204275372096195025823087891456233030046218476053630797020226479381329456853420614800109470433419604539076443557428196391502393545021302334783051112900250249974021008882701927444084004931991945135887813314735738613996257297387198835088964091535396633780261759816844343732235025444317830614131743757529025644930348646579649344818110428407324529868508478629247056462343822622139782023593757952502679650423552982336407638494719411791781745495272720201845455974526403580596786241401049332577565221651285239777781859130874645567091360646501726427991401006166753093995744541409770273111468490378345046941306160520352511340314705629869274364990654675983525020455958176619059909918203421705978320869102380762357458397392639429919446165937243756249459445608968655158429829551498141484136215811563211966323244451955803803198831035209825159819782400897251325486447743262559148793746616179996000795979224340843929864144512693806149957412561972544271794225096726399920922802362741963100646444832723528646487531854943136705183534637188564590983529545425240861314181061358394037060340980115037628015780372907296081070465663994930074636612003453672494981056386773323527461408328633218223812881642291323074259075124307301298209634751317239170371188212550038622243563029251937262987158780761558164296176961768504731926598104388596483022096768521155127404846809316436821003555820722949666774336942898520569716594095742657650486743913889335650244493221471269729433838169790392757536719691422051049321893892473793505842081370009861045934853652417551377389524824827894773582794146100074844071911723657063043869160352038098383229090971249196430431487211683760228995848253238981396634391327263842508844338563019197717478964633866391330584510173275643953208872770953979215014048615985952640896412726841009342587390739031823601788904802125968648160676941071307244285565728275437349172520935650666068327498201460766890734082519387282798867352975664161069795787892694250701072179549061994382344818846345291183402978570504548740853574554903268396137138448568979885614821753331332318258357478892654470150592313513311463586658076782701006132022937181461858412540134406423930567780995113935210577044061774096931660880986600417857075371059957145837999641693530014552195225764162973019262623740525166803675776498057908513898098721884765722236561110389900930708325924023252690769768519944642266156236367893204438953133092734150681480669925995769848234499122337041632768456544759185538576207505968523802033534437314603352682833447179809495405124978440475485762884261177328668432776049032283048409684344092969841280878089070608119725741455334765470708848317941784413685555013214183929913640048101366961740613513670578861475524788157283819573006318724259294387181320123252370461443065758069845568114835381095893605363142535884536262301361490455962142227522928482305449886154438000585149102169077059907314738973248924687605072158632205752606032509139083759906110471568720028702959968544877547237356714496271209442061994342604349659586101118356188330821326438874266858746360273652863086923191598289694633352508527905489846337369922402437615735270251576908199794592317490411756866878133410868305563209624959520153867401597213494239419503626835693227105170359282473593414144104021815923185267510198430997112696451453328910755306625725319187634184053610456849879024451470539090488630469670682661792876598262886863584602186636130303238620547292834826388943032094660380604584262723012074775701498108494936017524464918305911034279931362545966146545740197050562202253478071199946378440417197923012267099002175288145029884380733610315273478714690913473929268073805277920702642164613051142409346884410505266788842595296430750634688610305809056050829227222605186598426647971038402433656519952404291262116311633633691451351767976489204033937634934601455295851260261394347955342446628376371360100065611739222886789495132067367810258038607258137666875218628467071787093047947494572301604454412623545873598601697127115454521073607854633615864381500334459474250322397048808105316726044067327768064899653805792270516210593853951093904451033541831907740310485771177050904447471767009813900193343783194039113601777653465802038427000123529257080144165163439934276843292396127165179976301971031377856680563917354773519210081572892462545810676807459962868166329275512929074044281199059561819112072254908044281890633204028451251722835062273888993895390888389195958868669298454903137375382721701268780420787936788102692038016102045507641234888939695915743761458050478771890058534862276432360802383104880660142653424585804462052528664552500978693153137650210669213683789331679576851357867974179083684707983415971212946410684359736193142069796257165856855253781581987420378841776527480105605975653425698280600298312898188358508486108750392632367190817849291050643378625074784577920990334649310814660197141158144136535688474611555858982061303693039045828120469770115572164783061818647106384005431886177321768059942169777190832663667690992784475270697740040263685244100204380454740648307115510215140175451798394666183263325000302248967041379798230327024012134888582473337062750757077545461881893983909286636558389800456901193095264171860024836868610288812713355061488606118875159058675303296512553162728010494819102273807835224240668529278836040269522584213184556115209953706621100775820805676327120559156526137818522258673577033656940973613203145487543910828384903507943220397827625270189151974908922191807522265520093989765226503824681480582677169019170006717448074529616714571760838930876642512574697919965080236550583642874940376767225171329776391581943590369584337904194153983941218931596429017654675915301342285693740351583821266032870023176520077412802549191557784335520098999803221103320942667093489450648031786076896405062263021551099432456967964177348649209666974342969051037562048754055764209502830002537842693373386232428575065936731004187591176580744089121150484446651815034892560342695852484002832714516780615189529793319632640211991764125433740034857139291454777305480176829467909401051891906192410127612017267650886383672596477514323316422109778065758675115690447435593139671050377294392733026910228830157341867761516287744460150687410566340738142621380965571057710995517960388648311667785509129168509982339689891137093679926845689349119850990458673589377024008680468022750313926714659518769356661800837582465525635708780709288424145390077831079115752396963119203884723632374043738716333301220957395382469583833761737990340767640643329670736846321520863623381595798979771813090067620916784925043260309935955437138495208845723068033420443865402862099862973985771682166225971644185353390188836294965382372543232657356556949348772944337832201469599413112718832291634871009211469987215774835882125534078487193488842762980550459618279562097351532431378234584975970362064416645483457525159363734830055499357474259471865118481264030717760716906127901887253460341368831620677762205445814340551551599166493098290583452900847058547745863249470022390000404746333943417056006136296111245016297886038748456299409523386699762504475494939087343247524194004321334187727877883273030615667812426426675180657023332440634977073845424617495578165943154391238076685610783203605179299595567211368727291989383463419704944893051882522414539603930734676442173307208566409063159655427216800937880649991892229134671295626173796046581024216292350488095110927853520747292631051676683692033174808391711866110743568578054350555952160054452630976327523130239849908644652663075813586742778376799080196860814572667051802903500587284715952555248382192218447754461825774163261706145079507024680765939796927336194714595727007510579952081790899143917764008967557908087820154901832700216112571318781322908972082516179408908215266498390289843154012510416161409092400360735515939693205735270787760136545141372096699869702458521527410192536492483166462015424959772867617823810749146425090466619064857948237396041618071825015470982649099570783886746173414124919960123801934007330756185272486228332525300339347900793496456755284772620280788378801962157365262914619908244761290718238995221300228361679003379050801480484149197134624211159419143316723387966814115543080880680689287789723209815030132588367758913682344379403470857934466254535138069951893366330349111072217974069701031095282192144433083061062374229826234049048696357189987561247999333015610870984725985272582417272149457129115546622173907319667167598356598762376230378597339646376312197942425620259770518330301549142406354276061145168711953058995142185423323695269936942341874844057604456400141798042734147805566226395645773055216896363447501836520763952641407335427301323662790130415958115894859828923458390501494693431350257307458014055602898306741397941741653909074148660417519127712210621328120339580785739323903580655081495941314388870270176349238950046693223923676522429647722644700134027216047950350881569830486657318089051392100300093178341781962806830297145461928766170578013561639541127829574118975328903341668440303991373938921803556088348346040588681775675510328028101742396592564014550779577431903134355525177068444410367065845081184002238472479266234992224038688979565638127545246161046023312269288819740158629646328027161621024640700020500947978261416376467369588072300143923022864139750092543197098863449637232399107522751690949994591634163140729382535982379611843807145457694577225056284290245936391393741772050765734377854658733511536999567937813081942036876785866159308057228198033012388672188671754318955477922805124513440306061121209775348058626158235183141607410341537975755485260262173923054843127241319641486522160284368874827132270088163475248477948226637243523985669894262002012344265886177645760011428597220084644854687739594745269155285319270389157066224785279352905771480154925538257742910566030661419573766783194092414570255283053283119052205946383059389229618061397033090159412202263009474351550775461065769318588126965859450346479018224014244250599740991887858462684106748652926502097653369822798478506410241397787122804094139465241596215302052854297388612475279254609180300869799371401779169928009716947957838365917056937590445670643817382130153506678757560748339665067543917028703454492949403783564222000093617683466485927017993794901957195007532311581757388953752477818785199769244832287174489868482101668867097014027096202487241905584107941807324396714480768474396705547553418915625188092420347699983237754156917999336203850976090734589845851543216239899490493317747578486812885800998223365259918574330540629847426260637856821596740890093939266157284119979822802762215950602744825407387290291929170587608631111033096661595597621851213611246024703323211829184109918359216528082947305045429923458708708872017646175744540138912426887957202236183512068568313040173227381113228358160219872076219075597009804293025461156933538083313211824168341992122123794042503521001389494430544596700445410114797269875222012619461550697000160727056810625264171620925624670700530713351183532888464040567971252386042566421338435456182427196901408713267809849310543161123822593081390391258273037435414325114103075268760912879741099406273623747465134430624358852419537653323288308971155689918781988822621859783730812007980480186254614737377310145915528043832172390591274301674865542941651837424279202485781575868026602763900569753346973425100665296931962454101000667033411658414661602578574420576708016410578557635146636493680303747459292281692201800562240652492808486654998908858164093991872221376988359033664030075647248098029614845071053396424778979277613501105593149733678575392374766623106622845821536528495868303069936460232479911141702746526826256982523767720217095788123260410405075426498283763198563704868686761718067934624482329538249650270271488327091114346450535286427963069471606487668241992388541044736489268645617736004414247440716739129741191538568690011826598799326043037966994886557175370851015329633263794485895448532970876360709978999038425840971698004065540417397589535197369702898501181051824542643421468314630419129579199548311259064548107381955186116680933350205625623209759531622699443138663774233921733768406827065386022508917658530858306837108056330850623851721054018894193381944409929103024405435803727860823598979867035061437049721151818155893988442595412545086105246121641462536064214234558096662557201517265293083963634514198210448741698729190521546797669290903537441896891147543869207969326538639597540049190030339710161663275210718802120085459958697016058167531736832392904370614487818009753316181052645935458476141408031949665023695934598097494314611204526861921273842258642866612269632891542478352077600179029272195674603367805673197124208644256703282507747528175157591783350582392486175612427233208106101497569414768859730943914566466142848560366467058382382324973336759702717409924402890114277108797822412353421278794157039099891347664393296343697367029544320077470777342943946754634275267589061916305070153516845018037897377984893195374660043336477144137136913121068755309200893953802934361263303805994300476754941894521366552741215736788891621300199943065474433888700305318349365633998712509043539229026502087042610602459951523688363387044397530818805549857977486125984693552384661618699023767064935075857995784006396637245937604968787946023998623373193539273010008047976329351254332266029697818770380926990320409260047149382587363023101100466006369200096641933547764669826545491161394569105374921725496257011761024558119080352895864949444440734030842443938770569078754713116153603237238714920294177847276150859345602570255504112924295160226282249067809999604255296167952511306962699607333514260804354752256591295354253752861508132023690296150739945508887794048779205018292659397507014984558125051809344024416577864711074522095668362104342105725972630447336378202373960068375764898136911000108117322045141318473906694149767425517306976240600848505770689738277032059469167836375893354697708876963860531168749502725960486176009825710218666917689574270483824181155980253689575937081611508708919883550261517485448934526821481811205841968192434385748269070609623015875352005163443460638709066801466905720660792520412497218401160162319057966786568054307349433898140353350420942820599219682862597504476174037166634234816692276641282521262654756340210929805787471963900109970704647915614066561141125956369373068170941003838751227642739939408776612407811813257572648704586960562218174376251924359638680807263671418547946380025586516605446589989035281245211521758048677746209451989653110702226350631002588344081614713484785812515812498136968089648165145039507071490464512563170090442217143587826534485370313456775014034169001975275662894937965007004399819051148209118087918515701589554401750270918895370300354412586712481259837831100978915649806758931671692014242494082054775535338012183271122816134592894433859075529568873473855391027704751436528303550510369896033880608583262791458395080920967947804588826415921958706870615562243906989997354893850097327047969573700959011645599524984563797663220796077763761514224595454819289686733188187470317755920289610999322861724477080114546793518549383504452808111892720818111889303808945450674647891283800739725726771028005309665910240690840579755747184148499078767657931932347771525566805487231102075354187137914867114155059824515408200075204134027074793186424510684488411553088214378719189750222073660116270985459715827315195556133277392617852844084941902721713431506564656142748361814542017783134602037515089600143668065380053196124815102378421077006015126581339370447384971188101627588674243782371536875412498969373977321157705523101386290846167916483230031314974390194965872994981357076198157644377298854131692691474851925875491051384772040472928149325153865968752594093822890238255097739502860287938161305443263849326344641696928320342652834644232114078648268819618144124300939535086929438236601438744246473009249569446053106375965072284472976836629106988002531249838341660813862919008155930821287255147297861967575950893839830595820448102303004776454941836301092083848629754215966402862089454998782680438939695246201758352916112367209450294289855539521330555736185653768574768726483485419917966567909578757450727493256597412802889369099263265509353767162667341714110929322487395975625489214016345726640027645621219652316948019413415791803673208311943353914569762309678931080917179982615967990584901433571582993146497196306085251952490760752664328499397324524344045673114047972280634425687243731690993268258819042206437413635362534710802453701326724497163472108006242500056539729239060573171791352955548946508827845404738393779157691966629549112613978653527863857449558355853421882174562716634853416974919850049368338322962915131044895762541023258574835853721199298980679106544889122240636227679738301406306615354441742431157164830168511571222504521685331906950801747317520698709935915094474591236187468798757810982731470033521401723238983907935973660797678080206620236061454306456817142853719674349180046639750230376900585786410410986738699362356617133281603775433453427466333185534061201980528411409899110125611802916356973620752842111107050697033354746074109509030678024687180717627705453019097211284015149519340020062035869169612755205424295704618320767019344118699827995064673113477822260829786633893809502537530313937214338079578187249110591756423553565333926031161657882251444403937891566829803203661137549717330685778894457471866148061795844622816638578223312828362213192497243741977924751690073856785591958176253562477252582695828946657505513453403492195799647136014455025126693223427195912540406630145880492095735246072208096245842260876731130001719904076428353050021292322492965819479164087292923293261822429898162531333287399642779625296411519503052440471512505137744464662478816569938171883977619504189181318116253645468416825517035948713183190725218600595835288956898501552811518163853712490328182490645563180837939250031113403429392221138344226784139918900513893629127144444376090327412719521972949815156783046043979412075488909000402968443067029806710603123784504181367258841579074893808726432304670430223217936409199022106418906198580573031267063264158708668138658389674990261443499067576470494806603873796324346359035150980947702894158622643449018084740634082183202037282990555708833125238390265283324418980750605389344053118692162719317947707892861751015440617552538554470813340509696546959984811877673277730956802946304739915810997818539595320986513202641312259367189708838834611327937019288341296171805350730490125730778688355224910523482889997892254761620588363203469897063447362479512264356281481460583905313927319276302571041230767564164839534479152068865687628844571584709983024000710852232148301485435699456894805841156765327704135555101666984297631009643929075359629689101496498889499176550631074284095285854868411392534434070238294624594537479953660714192521969833147544709374871451829276852144509842997956639270523574190374241781155599866870686972845131005325468080505257498910829851131284298964523691831613341307075863863018182190498060666475582621756494430202159021839083369156947545340428369218654324885851937324096877787730429700033777127668425443868104973558031146191685479497489245748751413774800681058776511156431033472989756465694179736862724832349046806252272338399964776814953965056667295538131648835154097884800705874643895135616619347341556667344703954676754666269618429744685127929280129613971900261157016958075060878598242052249119147500660137292554640050896795116108754398412659491658427137374148828143141391424471087689224924348400755724119513920165525262527362234605618907473609152611381507637170953911500961707831593026661489297967595782059628491049802417839109713310065286471266614321753137846209810841318516488225372493690496012204830270147180767523300706354127449906232789128656323077181073947821632854018912837197874345339227252635184436349064440817751157471571995627709579964036630059888204434983106765686822685202592000840072153988138736381050836378465338943649398364173945093012213256524124446800332628266323250106671271995579303143713715580262854229739712939400866683000453299902868467561586826308432104778124405813426829507210937251133327981773347652417677607838056648083720666583048392267928055153883414195642231412563923044067653918591784579147348991547155556765820605774549145829370644526122394574366895302650164953153472412400704561773029316911295459745984973585868794457467607640177399482518346182994996506277233289685439841105932401322579742155977194053300209251850666851671435298984356284003761526151302307060676574790591418806464843538500692338567507911565945265597750298488315321913556462293920385977127142427240191954945099949075472324967129401336240560090421856424945148535780784013794931018441140454748233406905048338103080112314093560684365458724695033631568815236332649600807168846360046895061028030015179419112349109837241509240159536275770138722691225536088488578880612864665210227667135536740811700539754999252913966012873582837186854869439941822728341060025741466866745638956804291065825116724021382466360258513849829227086665491435487752456236485493644494977505986120827134305937089712800693216756807291342456495382616855597217527713492721687396394499835320566854068855555928224206887912763582088368427425358439343778383993557608358673465912484463438055182261430007945069459695856354549658309274838758423601797620662212967769751807432645380248253968027487497333926679730620497193342455233778629181169914259752266434548222261397043627018714059969674529287179260406425489285159794600630922534703003725733875934233945833106680519033972957437859473060484638454156142242791583127178698400066551908192818801217759200126900619037829382144198742299777290962600317436005565655371593716532729861100122151513513489000142730456728424020317045175985252555644745866826601247542682057905869566888533454386582334846556436201607537093628240446034547296885018645847929108090933555218658968060320543650680057206969378108584153693828519861085647121582807175479643524422307626915726627787763274540379086890606606890111592159684314439270957549272132198476888628663865813177492414170460030074750304532821375188643378881600867578174621051881792147880265332387429073443633490140691931585401415976610680642037769937193777182948107933331492976176329482366274056579031639105829260936822122729844918418584581610099789812000045708956383481925278610707293776346460927896131765691391318178984389652552223444678048041553435701162549548038959145362566183059983650794736202800709345878034764464370114595760808824355634009206978772378706516599229394936910576162354712794745153769879578805985319624114138640677415737448373714637352443486240823822902170502722584706555112095707384918859755819052596683344138040875881348649080330097291293002858681739342163326644609671348320869935844566934706641360133638994059318949337044727203148422031984090140101403244509286843253634671098875741168514032256185451686478358331606893250359621202077288932828437701401872379196328656810366581050580967277099045089210023352339537414166895204934260542978694388297785016388755630564514114063588065698254120235838489194345212086328267808333310990183135102051205083579375584301715081276192811127415219894059939211680724087676277383011281257280781611216660764250303101957353296620247521742373167547122277076375887807987463747912356082317509040358823386472393131143188642257517151641764599527589152878496495315066314667362540734696894723078465267974977615348024371145054021520598162099486357322015837443068075928817118314547328594856028738366244624527627070456415283067777186740514837624830159215369188823615829902392429030608152957467168958019444888033642925986043822055640200099123810120480901559743719133064230255952077329724574581395530476456800882306971161650917901649898811651394920604665313937508459520369816662372449859367761256689533190526623434304034791175693968193104433098711393605076165911906458798191260392757038362461298277474347832799803335008781597299934808829520461643773098674568501870554677275338968826296599728571022704466527389396543382290350362800304181355255933627437560405384540131220994198633137338721901819192331093121853152205570903948122433912348720446966132197972643008465355847800297367485895702205756308502865827014526873016972213284800875809227296368775054060769638095644487162146574738217954086329948148192235442373809791599609552922055520531687171213130224100863221625776309857201158054297651051405324335295453846855174832900163548962184485858694538193993957741767452629967631379958682263252920771696034299573649960609738648834672840359526687649167752684610481999283814252617400290612108294232853115767316900285178014973653415558754772132921610985311267515831498199954693277299916610965634080221223217674607446916786301465550429057157378389553190423897561039570021594102533068326308438251879523133622524598502232129066655295125685771037952736246167545626980132709737309165097447854205272337691121777114532598337198433237274038657313499248283742908102108615245162300787249715065477856553636323748597613227461341675731956901290567684532941658718965297157046530208062768425021580772981988086266955413825626183691174461567103431304382066481164738839734521496258783772834769937846005859868347132733973441942767766920334827893704670803249923126202907486997839346802729841806206241387282558900514352232495234891258546179895844665452026373262349242753880963339940004111972535290507181600204746569299632931972305971099713618753176070353775914340063435791661411975819229616953541617359748547399426563683233821256360166859517997331294178307959337754238514914431073259069672236339643927784042337764411706121293762305389681373121201911849281511927657627507630851368559848365053685007184506482447632191309008423526703756271171356270830364255218861731983202733800692112317613227798870519602889301141329859349810493978381007634435749467656857833246556918150001859544888047158621815051168584692416296829122324396774939065300043012382971546513649990155197904159326199083708095038091027542698557814476436394099741144487350229658367390072250630022911087380220274714924219424939537489030772474624676848178685991130701981333957013914098931962360856607554685254230896364893388230865458985911262680334029899906932295421990877321003651863367280101313043109995929587193438727872845235658943557710911084193174931115607882296691083650999245567219213925560063235163252285780367169882484766033944086952411894650973635595159359711979343670654738142037797635986219675668121685890517587868968854817677467842195482083202934220735753430938166860581376600840234592516136220645544368300241989723673700193503494936902879877832935332463187127905421358395393419017320585231879495142009944894075654668747535505972514037343648009620041587042118865355267583446910587478340624965819179062874047482706223610188808047955329354631971875997758171824215511334125922449262725128014864319288934419749686413837719244072483853875831619298504827745660830847801457944433926361092331092707932297570446583456926381825159250659694060755528271427605034586455382599816466012142104431761473342274031089978595132272974769610613097772824628568906801548613959492799865554080952729241980115930283122216875019092635588821119992094208121614191484206486884290125400467658194289753945996750640382771283441486617363658591336693885875420217776463162896841005764075285696505397030344828291280458201290860888371598061881941492886352564886980270465137245998428291776363060234785073813505547016027369359471378433598456308209492608518079773037428991417760966931397179465130242986142402287857984338582351278364869653896745070137662246621903440022677541915300483922929319352005289848742112096471120785677742872891786355785743742709631911191747470877279840858007155825958444190712789445017433438749452342610142897122236481868049503467043289253575468511010312853691850495804748045819379119480262729541241211280170146858593329969822644277210318922459207536008031907588772797307666313899327034645826103549705299720250414738302302378026497084236072964041284055202819345851017516977979600112232002464892153291071773140037013583062472342026592484872109454154906508448326373171606304925066888684729341504442809395366189893265813948223491925368098918981799749540399568172453067374772533661610877375040830384063386285347542490048777976942120895098857886229724271596415589284053874008678822457142281737965281868284247086759272191735121345594599022666137213484353523835303832892173384563658625330767672209257473705830850099571305167507646096028010336996873172349691702599783269416974208924749080988657350558906267781289516643100041975984521526181738872437015768583083048096051300105397129619121327046032887458840682541382525446078392463588858302280477316720655166297825667280190324308286508510906481741922445512676795676229146406890154022817510806146275159273445349227406844677208620875632364210810700305371867131145957193817669584326468541634737016111041163717595208838305980890902707833755545862486473902249053307923721046537327847991053539465453807028239232360001900366928124849858732062904804627887541133381834058045887459772757788733069239840936796338195830534822561683182383726601127002029761391348667755581504831894005993553403016599605606299284651448290526119281788708231495989162520878130656472096343321045609097158083709643820353535826408491248674824265999128759542299644218476609488679187692367389010821903153610958708141406668622999172275965695586588332253081354322210130780717631872622265690628361801320957422811318416415946990019399098924657150732011940529118355094061100512608246162008010774920460568760753706307836866321870004686151648416345345631892120085097268387855388733959652067541875421814566083685599103894603201743579666691795551503951994199168855734900731012931795726072886433469991033950566382617074311196200550542514800030826540344616374698401712896340450112973383051312247155600704773760905179394968295738722574138489352534366968565339819759626248930749705521580706296434852084598595810643372908891756255359068244264176582553374862645857145397656529410022362362416640275565874172792288547977507087957081489333446490390350943986928668263043167962277478602661402846674868703075533485417108942663341283192319830730585580843881106786599443463580095278272017962373501088748688088561999981577391378411992493374009410272351752742370659241982573626812513710822967287414118623188496828547548013998955566954562644006284143841317874016197843523420458093963847038159686377301579591789757616165958134820597965550907142265581861018574762622095801983321647499941169989805083331801828955967295507105111010604277947485717139033955908527745791273181260174657116037012407731968773995133072490046771490461577455717800816830384604486187025080222592178027373788088290398492234303438900256051558831771838888878517963831882346647225869282271223869562622603167781846061783140855282537026535293519987665625651808351566634063383687424211673215348886653828012546844313394643024050967309834224647587846336469623174179654789492534736366649497841326238454975962874886987369691608003331975777547297834030170931133179358223613267064297410449210075483573005857941177794846207699398889771110881513675088808054443885775358422551169734504509752037402708317187133287918145056949507052746736320961801067444093392545006160860075065698985973578042639831619134405052760173378012706570809088190342620268637366802485061044034442586314437491579435290420471917352968231290812860230596646536074778313205212642312297591219627081624576411137475386202754272272622141832141443716322702849801567096582833838381485911416341878470447644230357522424313753222145649595230654702273702954942044469401012172176917903547218520305403265200533282800941962287869336192754456463981781756640380045778511678239973134559039801130575755528735308010133014532498271807274335613039011781598528085053826294991774693137309408372495935475786296430191590862501068698221019407856709545842947523384028077835681592893531234022762769881998062404997926609609258406720501384255968148244192715551796156985188558965505727404648781694722173788589502886134623759064208023393179374120188266866011901254071619520697035294959014785133734091924996163896659128703737055394896202984086949649621546865578593686865852525678801837555000311183523532104171829450362452843665215275005481255177309629146318589370907622896286386684609053775660948635426693969021397033780277157687584238661840262521007203939218512006685114498105360880234901125500542519132873869741995186814749015340195641299287757758397403552640173192463349856851341965376890856733975889268963433882761528433441883709939741260777261115434119808216318509379074960907423959246081888134852861207436561518203920785391528275829580869457451324286857736462789975493720252947491917568667945957202070360881120329483164346579820713912413794755607740933001506193003269834861675560785086655827401783647884023472125038877549857634645644498374514028226229626039956037118921247939850710061997871982933235846101322889074867340606962774552386665939478358456648691796757926658638166989094175027696106363918799982647550127981641506201785612832384741044087712965807073599925417748542244496202264956408910922285916958398813203585611799390748949016621775428532074925944397693664716185093327691855135975029445960096136197685098470559997368673151409818774482287178961196390418340516408969491664907181686073485831763651403834264038748473855551144238104407439783640115454676393242114446952242900859315051226081504046904149247289901345449439124086728015004402445462137511236422951289727320274138435120864560544305647297106810513855332203878923633914101370087000834620534541370956070606773272229476341419435279973422317851970914499846591813058752695025013862446255586531025470181862977771249684696972743838703523838833608130044578495277245289351252818821400528060156988071027209100249208323513058977888477610930995382193436197651036043353078680106932332078655948527094992850560835672897560191043080330281710806585214821395115659623512713159081916734484206701775186979828267398199488671511924477112010997415930616144882620235015021516513104351187233307659265384349485489529735902476648623876331537219719263784269552485652291091206881392071602255004568950913144286980513167611382131044346107663652806333960607895199132835282668203602829045591431804072731568315128607548891639895107943470336191016527917175394930913972610659987147749451941834477152838903149347376732309163121514988170571761571259603865126261649473989295806190091140158245546844315744158806683947212126552954737279737740397103178865936473835127217594645098192802877098228796438552377123739192354832803425873770925347754368059095620005517682941825014735361986307015821318481029178734094819567493892479893825307443920928901911198503412942271853065008153881103660163789795188551965581471454718395347783084235415597131233229684060182676559274578148376406064638948495653506230703667224408997574546032474556548192288991762662276764555841253967005505014437879512681382347419417944837167116367423911735750162077191088574815183082634647057161274606034919814537670444476135437291841222229424510427038351800285764045241812348106541890833553496089576814224772653369569396893294634992962343369573866449188407792154114836642347554501310959907593091027187215974253624518816248646921581682584344505588217279602440847377167371934766564887220842134521417951600037701879647613598182409656465813309906942929320070165112325421423855350790311020404245903310743750433613547382991294560454844305657167846004916033739730658991292674989285086043118131415968636408441870354975226718849747416401935282272804761772624901263143854644387881683481589209827161223944922645825152410864876282286926210674615444260131060776794328283619812878903870748497192861448254350722688125528772063342194869530296340202864048701057161660028829821880764627068790131634797841108999917723802754825530819571979476505769344671000736005741202167483413323860585181536014174444801178181633283662620201770931602964488107436385468021295222462140157265449227572341388979489326630002158480150296176076593255739610714048714956841019527000846951716055182363055149406311347725459121462690095814512066296381912324647407780520199596007533565664555126858051048032252949511771082803085574007556913001165721830176550801955712886414368259673880719135802503450581223332716073840437856234097301935314518086652481370156236538459519081560888698408538510855264298931406006049163282567485748047243343780892315959508316040876888772645018090930900480492400498446988614926654591239237042209158284334219982062738399579502240073201244507336895997403682440004142191648401533986039600290429399759415383387178857644685632336229263972970971040078876891833095233389043704510216347237742526501876107832154017055480754736117498321999585839837249647484013046170960107082446357480966154639360817833998373068266309748425412886232588223953791519418115440324281062865769735310603364928707504954926318583297460655477722302442252876624036410370252356587968878193917689554987260573718457634580571647564055000217566740405766866454579640272642989475720488871619229816101662954159761496707672142336813314148052299332699899656132832183003285095632043568190494003332642625136365407760057997506970537436055493262173488740573063889348811271758291867486675976806611655202289235323018309763396065195836534452395417340723325933093640659655599761268527414292906676960755168927279359712629882136460696831334271926544698957484275845402071582160816296330572090332180490160882971371042338845830481808254796038478067778874224183197440705213336756242651802823102473335726268607446298061857235580375880892143849546610000430569349853045204923853294861561814284805325642140674800350567409606409758529086747286956239324890824765029254157534343069427699273831620606129249494502404228360852743112162105609736067955709756512101173264227103713131199167073914435579309389320512854360005174668943320837169365679576629717207978097510850686339851480989859394057008479807545297657726119482342411761737025313177543652229957734974433141759960745092628605907293189753505685838751904072090680151929303165656932763942706126820938283194897959641848126853673800820516083498831587362421745928442388483473482131804457014031777246355617641384342225066157557626345093895469195921389284026976969975361254309200077092442490834516245584521240823613007939311269392910553191999105009562017659454969074764539488281133763699872334751684373295350417254839484025742694986501938515553188582515128243132139916271232658515246166657705449024470026456867611971514272345895522330889634116742341212554180846101278436621562319895274305500692004599128400182589144864425346680493908289999613260841916920834516017122554072759189371981228138020112377152035117700503710865943265760507620753729416639886255711545566011366738182320962266385200315196087050242481527758589568293377940360373592276314702227006498902350605773952945888427151071245037957476608307972616595033496983011425142049755191453602967603009848017238887116781670427930132642298198482290188566285174629811276564048950119422357429703554779806563131365153050387861032917634009040979918144802883088390973320076197557028722519501076542141008410361976758193881671732036389746674261700537833632825256827233785902402702095865474493788078983545908552557251096758423508686521036695924963262085040338206735686231627408868704916021551076247651653119326976791683977365918419762468541376085303472256568500069214741885691359235793053071293622394760588845723408085659927790080313273975023333740648980224199418029006922109039038205958287284349539010043749526830280727890187191032980685831024539176375475495030286772768353985581166166479202321012070942880652974274892009265483044421151451307485532193430945261133042724320502682555636335196886511721993728172162997094734458252289190808460810026651901116145903517848468708151663341347759785128842691705375399202185746508024173255739239095941809403476583190898364865917827768099595122752539822897674991813450674227767452573826854892488758993578512295163320590081219133635511128179138133833499594486322258279862701675974967309438293662699198017211946200015671067715225941273136761177274020350589441968926729890614763220534886058671825153009091652412980539754305626473788370812320149270369583717733116055812462386111993162489392105239191440912273784676200084168641385637864408946050325616909604266844316668441024367738004128937891636713306893931489665978784645631698890694526353960404795710374711392634974461043397245036437384999277177596569561505261697192404847303609467175201022752665271997680538462873763212939705380092724777214744095817246813766208930246630043602583405353391914298768148557671866025736439375606561055445509311441606898584112762260416247979187065768243824345664855114173623950428323332401529505016178452523432571279398238131619645737079693872184288102081448970294469816417707104364060629251580164770045336901487893602923052612484208737639992121137685433627915242062894687235813311792137156231956273799346286296102155312268218459742883741747615811765735189811889649400072187918652793399025047642093655184815502137333122001897192174904371041610049325692685365173743984907967916051072595326659850523263822609888089547012212246939216657876892406573593538383075994184548705114961791283042591587170449545617967763082432059138249100959036855617290541767405025444685851930289937022992612553863880489653072923295845117877156354462264486451365425281017368054632732405453388099892471459636642914810429300676376220838478889870778634665454633283372477563490095725973132323934779777276290664496398577430256610059675833033914511724521171627872884791692137026650041741218844805285390547395521565226803932342597080297734227914288067774012860163830218499183862502453704886011388926797914645010319223039979773246983958507087416094743587134421188019517087016866399691400787185631914526668782422296129006805602559572126882708934717871941419383085312774802270827019579359048473784091571297562553825573946833828813050235337221653119916773809677363775851482964658643054279565740749234346792066617868663670108216723497941218083024742468826024892550412132216900009790962583966118170985440800527472549528588131630761649009564721964342764040519745654618052936409678400774317932751807031429162054980389465246224853737228543330357542000155259733555409944110884327714344551474150621643068214948033771530838488722881163205864888107619364982287786621442527094294862162025130940301020791554706893796628471395615026022983074524126611416212999195985449150597049770344327480633530525712055723328812179662754718356164793773142216619599362748941881601534892446283238557316946051674925323974023602071872662978711608599734305327304679438435499839235463684516958581334383763071306204569165679067677030558031901459930621401797127143793193632001161461417882430763814207542754883506930980380823613669730550639046082760692724973389181386293571679060159492575984063551977035952885794180796370918257955003073743629090278956342296594753795735713649488569985720059685556438749615669211569623704445813646102339002846352400819840454143584235705675057072161066350219433322196496247743590447432141187716338241153844171577719221110908621308712468032303708359038853316257687057682589231491103947717359939032530896620587800887464791547881370814371181552103600699960748121631083081523812825030513696173654817587208090473180783450286279062215446118012672415080703776742088189497550321341754251740094453576322942684518560926734225662278389240841534887668882358044214321412821124839531569862173031309561517617859686039764051959163234439741156286890956512843147994296504954050727445892845880012236845455361705380677774819532807947912585520703342110019147713232632524736906944936722164142935793469797753795496195914648370440485218480060531292929664676053804377954977918220404773718160589392319303762646231431603270681182447476766043013281539963150748225973148646132825858562748605248511749969610000060258526196911782996210453738823173344707206908995660820709475195723379566949792925195001007988288473066212313878932557239077271664502278405474843291073242881435220808349157306390312553909078684011386573279530686021404774627660880457895857168932874029609681787662974864283576029628421807438689268831297006687299063657063914259820215745595977211776231653919964805000361940177556784717230295329702920203672748296566792594975334577763235309604790451424416103976150099675208074555570981129784610091485762267936493403504600322205443312091933089754975354206552519778135433375410169582810753953516536883630774856507134999493536691425245945185363220362110429824149720798964271328164937239967242946805219872399578307251097046479660658198828580962091492606945038139150060042328255028686644115778396622042744427325860228277847762080258677646447114233699549312463711318511006620154972518715357459062775350562726392590922838339395717874078945433928674457143919188489500792656672623502149276757338211571718697785265991015420823653295252024195452552249258468349820930023634677704463932835435705532195139700984303529783905474750295265085035721112767407163545555840894585574986495166517102297294536191461913838901503340796602116406261640450521655863240846311601654438432367712419258271502254985309130732182028844529610392558864360741809553571042187712123857481865371793890583430691533957767835089662631141663040976236346052917161878482665279486863391238742567450744300425025887486519739528145674400832243894749111313924672420011463665139598014537270521127540115517423677918541718157106065466859080910594389889771817501604326493989333236595799261633462848926150318970930522248838327212122421819623455521800814922291921162671569507167823396558231726896094257380387985748971082131998910193644491437145255765767279439462245322760684759702063380225744131513461845835053039710342146659743340603399257219766482810337234676628800319216643198100574927695989037197799845980506264526242057915216267991565839289020020804117803541369428292596329083006133794456010740185559331536448644475762899400822624008637689232916756042448392300297740839600848096815017336598858645696431981215896774302064090525141519486562783176167124632670908709381423332605450229000154854515204872164020051391342024623030765778004426760978556388378475573255747860511743427250041179621558691489160032859436718149778147784899656193359384015210884604121500274278209351593100965200836574049096376925435157811664882022252375261433842953319381571051381252180840058414369589206583213566553878607017019502267215948185940363542513254497070084603243534855620470322166640451532682910063216693013215581118998323695160241418918543887521865270542508117214357250703014788057208860841963894740933126280936586131491016239354435084606978419022042902180030529832308052700110968148013650536187556208410978970883222929896912750832076925148823552778473634445172336746556631604023971595171053950193340922904952162859624732971892998010136629578228575610526188582056153212196309397917438536693733680962293482387894118499001733520057714989401737017387020722848863978436450031351025295488390885530141971050344235199809470439852743391720599972058215665212109712844243126451842833538715113459288475433238122090873488284958639329331769062253917076382918606567935524496045446976861960833706275741250934676797951255014159676447401003069314191865326385452336790833295006185465229248953318854553087843081414442318228651859136649847577667305950023418353795588757333714026963087483964430642889976325704155324281237968637197967489093153418547586673804337189154196406472345576771825437523718067970173667660278563863987770307349138825463701805288591409047910116834402468008058525154806470922776228534475902628900704295866439664441128373925566802845144890140756323591762948962384336029656167807982257555644374572993723203205358684618431579124325322887557932145721253901532774596508166002713675634194778654434205120971692235078330820954596693162263842431478978616402043905195210550718170709675265034428478400300685008652784895215192829703135166125568083717533105459976764744199284128799688094587098049524925443877514548445550000407608946898077942659262067032050857722451490328489536409832035960982386534372850992133145692507506591156135679874230565745540181866312838791518609733105900148747410194440920114984730542583179693266724419395139598516531097025988808821416310112713471792472369928823380926172553596979232190593945935695918596726527846019137397264872343015775733650060316437054523501736632886728129632474455461079721574342103166759242831736819862746672101586475887932120420230768466065838028385903145557791906813310571854537788047542878087976511913471129402348524948112676529840453951920698226297704496563452013695401969638383912728142366496572715627647493960258356427457493033893629900033379929701635234324843818867153595008224430235513077770384352258111231616320212426538877593653658940388370873470137931078956806092108366364358866213357333255376502992901048765087878539408084096721690878545611840237938167284547644860054040894936106735321417637538959847977110668345011939668674062590670001803297699625649167454775570235989870746580722491285583243253148567014635658400332711469258814444343010978316394691661765100901778680087381371865380505367786902175822812844867678217705094422685462149157176797524909003728247884194095575846033189057371117368748829084951517501696905723385512590285600266932952767469861236136770511254270237814417389036362708032574438882223284531588895884201984837663697066381140502195056821104583081720993139689098057919198577026589193956017977742957200853661425016396384358704502866475671906070659514498768734261723288293297604159994795907126820144977623466331837966391792442504159577625910604951743350577231234537932042978056360328378635355747318179449110604564793466955242729380027577875550767189193897310060731437383744058467657852461533659313076459538949970476847181087336202651705762091230431380499806551780172457776842731402305252600969396393992969566757662215472493794344993724534414237358946181112567916849471445936048262386067525705582827003747142328290236017899946235703689058939983915186825492807703185630565072070900854134563485572193025357029105266555449237403587941533030578710072867759457363832545102177958536647403785201608038086426331433061923616304982181391131037715403702993010832545309190667678303684043049089373295990959761404238291989022326085388454094329276466342534140762470272734262799762942154434937901705112843309807682338692247220314716062627303157331440328905373829909465723050054385314027841507311040631680233333326688167117730820210267500526763784463840318053659334583538699244038097921100373384055003712144295434218977410013924876785891921838902057491649035793921563353132177953552688003392984222694504445593287960799563727531067224520057610239015453592807344315706991057522475014701446142653031642797934038697702233656031255213391229452516120849539447925623472104852568149117443254835487896833748439372588169577463274615672374056323849138915287690155015346182886736598769434469566415790198596480737726137570049047834298866182938254842380480792565035199523803658274990485115665056775280567208620975040227308977077406508463893801732742304133254911773063077316534657855364412296911754542117274229083128475601107010376114061495927317921511293247052425064574054848187484280880273233420855521644185111943352241657241552519854407742696744483239241076017499006826276698205119431424092285567700235400453723497335659541836756045778776553455919114137494436760994190022302155981293101502654251252729339316861148357636104750167017709241111744767994198078201961055401011081028710609772029318120979606070431630106953953477457187398122028196968227571204250341955262707858807753374447098995572457858066616263400595460618608970290023734313609701798578454189308563728610045831607606807517587776945288788932091548772683696754511371933757423616837947670535630820399335517903147593802608665958520140403538371424976630184161000194959148985158641067492077027973344546208167571139590181934070992293320609707323848150772579114480936867000538986029794124603882529334480180258193078575287761923066712479728767259006819110479670771244815939426086084657713948628645691730860440142936152624782463986911565020686741277948213701274140380432424647692993394424906765915946573456258032161487477502247906649719426650618522887761472174024577767812416299201704640712087687430474473731263492875468451105442995651689240288749613776860382842978916949732589447103044710633073232129867985357500355775056245303312895335520388281849073852485115321104991137000939036276694141741711257273463352019663661223589254049727574248048259929996499447762438727932351860649933640354198830571674312200092601243770743838167750905982709239985486785527396098585293318751582259454016710390926821419603832066698383430013214633159604724260669063190666171226729013708319602179010098176741469517041217891935921199686965761529898009438115062900103324031168230008172258290461352440120816255474566612347637697384125716412975849372392957127296628951346644320389986700027462847985298097371094365989195061039900154780506980964058780604556799446296809219580750214579968914824302924540017494458950618417621203662770553372427268369862840289424378774327783167237680224536068035027025160310601743664573327561879503549600759117017872397732967579320962969190183610062325122314167502064463998731162459421352169233896475707241237646965199928040223930223988844293920725277185536833497826102898710330566655498789396187853772212190920821639620259247489608144514533644450950633014079032372571922550249670648579652829075622137853039226590306311762961981361496003837662968141195821520490487692089713777973278346302354915799580759246417134451893112099777150414025548480597685201225584085865835187896778106757909461649638491253277690690062806482536710936189531422699067404525841198981571085586469341649738524847157956909986484148128767368365676882335802456305136349333737774010440319457257724452537959491657901048295734169203299509774006936549019451087588099384174501826919491476635294199738365038828932626816712805417836715079657622029814841614422837911506061850874489957519891933595514898506943124356484373685376631578405717905234124629678871247653090516746001755622979669669867564452049251430094630519144444900793206445565052464930278844807498586618497092229032813650220205433366615386393068192420240264733780404062417376995774388452095021445940695722987985980791819675404748361749583851393787325673302145627138052843081815163301402027213182813040297405923225267975607118115530366563011762018573960321578211894072417281466184459114709627570588852557115677255308147567658253623680412541392893473306494731999987979246395032689363995870744038756915271974691510594773444716453408290321514566243946369135430133990180265706445531266041505867963133287134621592900795638513402649962373821226232048750706551556360062724686253263465481641489832734512933318655674198885158225009763424050487505432243664207335517187463298787702843993297138168259498865875514235241506202540561233187395591568394574053410369626593376166763903331155429144298591820674793831385283366305687082718526494824573749249233547126841531369206416154470804146634179836320067239009952760957519797177573628515188995095667914992825759774384798052143791486142900251858051921706895488223472813043495131483765391063133236352407948882506886948195564977360832924979802668200874985023216526215298689784994506596785432881855392206146517359146639460495230486224003054221827054596426896747178665998438360294555101102749863987508509602245521976217023013042439914307509600458034454411014252550970542999227203583514260050535206624774191667827914448878466380953990090853186965671949496921827062750214716105479188997452687981671375101735220224004808643108377191535943732487781120782180948131794194265119293781813303579579184072201557505970660437235900554987442864885837761598514076498693873431008226021472267127568968084832160955159897897865018772068507099631166772298523134037881101545658662912944705342845342003914108018618314053479343927861542139307231774411088706363945897873873992643447861632392279561284938782311288547040907520620687203904604249464681620884559039344136610785952720682200215651068688413284629248575975480562248769800930926979829599550367913361492005141204085726087721372296764147979260952864871780058291381775395605155401172869096197006976869893024276457025962950523684926255021598433689187928847933212846483370527266598639535176067919279193114670150894649192603507105587295920484589853724808600469450443446807264969279850919442928480097806945679382884884157528917111260610793920297681021046295041288890080039799758818799193256152230930597717817377669167804432220384759612457484137961369642572546836618048634685566759915957938988279403344430550446137231851414952295506843900465082450014165744908309165392641123699041453484664931734736316043025472564564506136726250679166231715441617680063814362572505525215443790712768044970743853103208999234467578832923249806517894412403803052686815610988248678454536457617596716313852460954613740966675654490413620234379657802166719223463411274055965010769290938865751350809962902830337356437250505230944343920443629076248697965510928459963078031347072056740299834594583916572818341470579286023908610793659595195161088837837809594622930604913171206596791618508051044227370182390220670644480038770976236144354852000166020511021913583658214033212418190491019879285607764064496731254114263752118591780470489846413719096226505265262929088881639740728694040946038801033852129329077577610763608212654107245253330394834917981106954819691682682462138899819335803112835366808296950382748024675402347113488948208630668635348650678093937957625408515434481447904658770851142122598253037387584084569385652426755680264248907102195579135019712812934549717735446530845108293932557503635310720776175273592502304725359405140473155482307655001552339412379333139595659114710124620149020690861432000004324790140697881302344723709657579587545429564231015124743937173520581484820777702110497271653002756968208343436798254035405361776172034714927082320179205157524797883070310700848787554066809912224504454473157288567496908616335925063953715043131801793109620837224626924678976418478967449807965652387555166017289614329144647085375072673404973045677830764818726918877378797401572127649973610030202569575668867815061873007562187246019097818389470091563737355612692513850520846223432188149928661843896342786247101787405482809478404178213474711954374071920511181392344362633727736998433071409295865623752209977015327705473477337944811043710067070333548917953247013296240404715184755088912583659665003896558211405272241049022500108201364176731676274051884948449918672093177662159718700766333409466269893475342295169801416423942200464288855168638389658399502881134475643561585976054772910620594320343330503944732765842308007350512220877255920932160260090183444233491065577689468115367921251354812716151242195450325056513856865561143308241028422816798043581680339012153111364016771937643543138289931065370668943655337150882967016806855442297570976122991159887829120602590798046777806976170049240114864682948001790772288638528905271282321399126333689637793202934450982468907234527153547529666299846652806972549666862356720743752991340804615080976754287365025856053940492869869715763665911932285008320960905969132330143674363128980813724058784140654060073069340950010105680104617032016817432092011526499154466384058103144253020960831058528280878891723370059527400724263560325480118634587540681623154737594809259164283769994166962666097117048263711617090569285229994399463743359504123951704636611655915327773888616972625478600841039966298607538487448020987104546508428596917697151407490318237284631343911490992834396825457261602363777975382106839245630125334050106862824871837990995776146646269289151059277305258683352753068664947026541861849583643416520460290277330765262269728888927207913516315515753817192236591554328316058129038963731668008135543842224308101733322770715501721664761252672360663849426167176098335069868392396879719595940422182045528244034706978792107170072781496590592770007878420857258884885564365711182895193661002348271146706421487703171813892231628336348800759567260140258581488068770203189865307524472688182528518308864094123830400180781612812019512713586402413057956990065178149470415680846608382202306744292218208794453854947168628495642291740715724622934149139243602270644557340811923405135459823172665866521065652818191171238087428092226007099660418265675463954685498581852362608462005759514869751214485363249730198717899083820951855509147186830811368394080748679712499187053754451447422448422861826151804002833789986580573920519086204104904002211986881840267867661876355002862824460178143967396578099497463096573323885890544622771067428254223921155153088765842790325228867248943503767086198774368563233322574836929236217168318326049830216601598994794475254806290915193744163776565043406550185156703737728447859950948088005451748472501935694057165691822787192529104357813170058813116787446459762262916895867637021127384542004974626402441626643803249654777287302893090251864427322577901915039684168949068817263585455918960686702188101087589362571261679860785471120301092658470612408635600549283007600614631202268125642575654899087056844487765577871581462140058633295092571044913297246214850443370785462673085475206622663907472438720405231395960618215691001935004253182351995225499983997235547417946141525617536317259187503592389989132012461883804103535330590882152146617341254748734811421167903390070989000956869683695349949194363767758706180662565076286883331975843649351444214352340885295006205184404508314114039437834785039146207233077976516553878584636070214692143593106358301647552852616719269727625727111814602189607430936308827655320512277842148889849897220930447866656544531829037758664402901756882233595521420975562014409323471902869164692042993173806684062020937618305126499324437301338364556254912440207130143574025637386675930827088433902644090634659477160532596098457935471990316494417228646353658317166139595197719649304798325067215572350162379734249950030651833496654171980094904145351012732089091833583209353450067322177166479872632720816801838155376159830958705512252702045280770324711086325814146577251722932804162263236685532777541287512314268747386493278100546722454435662674451116304430273025296346940706163011763701563398921685772880223129804304684413520158872562489448666051254394721766117461507603994325345486001226499621398588162754797217769153597255608530448442151139063598664520532717624476986635490446623810614008934675925033958834076896744853346004674874078456937163619955083072106915341406182724235307658307266762125335855394946439721340220603833335843734901615031003557344525231597657119125770781029667086027321552269220614601379610740512416332291929630848948183723022412452423953909364463049728585391611141526312455640134626879946553276154154369108106604954655850379146025883170957197412541643708214497470455050368676463052955609172068769094419126361971339373700614344849291282072335352572423334582411159560844701198214899784090373492880967268963589684929059445788857277555178928456161979226765170140971622540338384808280341763358197110830522170019108532660321903140379691431204696644128228151237923798746071347966514141707473537284095160496539929238472019983022935722194921870145195189695856371973721610695376374813407123948037586261535429052415319569464074894737944373465046288016786409746493061116235164471537337984634262756685177710632611836755567478757824578465529385883697252639571063310058643968373589824727281103497559980009227341155093426125418312328267732718573885362679261142554571207965283721573408851694744211565231610909491836156925569181818040346347173349002015756579631610991074554320470926462421761008735866857356086448539773793308549362319545269094761302050248874967090036078485305698781565812121331515726652350455480698800911414416016371276352334263002252065834369279786377064654123266992940417952710841187618261822092110443340327155288986906881214366569082075853768089682220746553768858894312610141173259262558222079804112788234016424243467718710619852490845087717315186869439243045055932035786194197060020020031594597064058269139027182812933926670013776456303528328480819440251252239126645312361494968070922506619055084245178483222516156073155621125824804514823083132371082241785495165907072553750824741122451055189858626261985686903523687883379347460648489616318383854150803583523856197091443084904565848843227556532127397884738552080913219615956847010160991425528773066724011433805142263691905438145982671519776504848402867265620163051076553301199552368099027965295349323547010504805276297734295349893026521155842319621269171000356076124930143510143236685042336231299042646969643003033095671224782811924286515984968042290543715959246716674418194057385757196617929527909904512800038415601030838301547586935058642487356074007741708171284927922337693555294628816463945044849351930695003230364455920395621554563342388822414524958524815038393048603927369327989578558886703530798382045398741699831453383208640358942489986930361073095443217465973957158280246313732204571291095643287609060155582659634216936442490897609454954825956147570921154245565056349416489969425201177763506208650221737452764147764992793235571118085351025406694880824238157965484042452059764215488365742957605386450319359261933682608898795440181675148231912756334995817465245334769566189558135326196180167749607475418563891219069829362115685078693594408299994081916588001859813598067348767648117806139853905977997262494038944414505511655659195507585731785803688868873101360253291268466831678108041586229783310385869068544127371303588432143825638961058070586223762954212591574063366733618159119473281137575363764248789558072428479326286615495921531398780531193024613424667613354498129613938365862610327892580822010582565274065943791485048121199107581469318565538130022594678258897587256272100979080117215692237747756452984746720704880103862387331781004790440883107283144348611749687413842680807101561221414058240928452655525551403678438663186103712227452100480388983787786869010043376466491716489748998014604037766073795145409836072861650386321454835953896329570577841489483875578135543409109047402501939168722538449546938670608586773412880659254461670010630748451544491322110654395189296653276252140189618942540412818034542530866277737283861153742138736613802150257256410914803600002905300955476813357955627273928767896364036451224735607476613337703391553793285982502377870168163607332308734099348468972194978339979700823193267280304704444662356628447206633351254038696925382036936592748138609522587566166569051455584368858100085809322598692450087973580867534173640391879262855624132368285041494505951271335110173022682581852925155442376150669680796586512315148650478526679722396144656018074191158124017711125909979606269627768542624133937220832617318393371033736528017034172371227666179527633480840886742752253704543243769514946162759498920776304211358006236721816199336370419382745088518019230838436382409826710098187513506014616330530704665294796455438474867254213706304382091590471039556819578753557797674822767888851302043505565940085520164156486907575332286170804196319050944697133722974564404808626858140440659293571872219579669675864460580604134554121942433445412324556753416236381986029120745365135850648768039860167619194130406864824954048606470654351231850037830355571558802416773943565443660541426194939504297215830352154914413777601730928453398725681049432317982231747155806349777004906361761986353561886171514036999781387313709919166620674113437344973365069411340820811113260034035623132050426116815803505628141599690144734248467745187453462470808656468457605893590594013224343043667011353079421323818851251300789178316309643267208278743925545342403397996939475363586038743380028176780388657319449576081361447650027014860173389743308372822207650755882521639055752521663075645802769461382480528412939427133750686140387037353989738947393888443824991635237375136561063913443904508556406045281654705700657004285435021283487946451641482887725566023487717290223043532039948042231636931741162606302392611397027870753098988273734183084599709945731306725995110855528695863420124716273490174999407183875802867839295576870749273668407552281656544677908643105910858082274148281876589165996064842517855476448005007135730110503168954170193243168254427557273202762739655686895826833312457644250424928140977428181801580531609073446102490681945826595556406978835930040250272671382776372796720236713771124995229402143401990180518002378903483369710524998103759417230917894519797223478478671030716858526089098160901276641445450175118972379499591482931876097370332587287987822320976940229529790746105070705769131269674206692609115239657544479614504703170536181458843008777443458757969608954579513537074712037679683052072899118292313923098278745051669038608986908591126543722139343846988630657674094803429992524006343023037214724583588390464173594147425448212997943197550421361704555170897255141517057574359085301385520791204787429795660121551782932294774016590104633256861798421628584805159093596452355058957692193839283458854408626979950874758329633516425926002684761924615739901439604934764530762517402215330250949773507066291461044970130655146296018513501414157924669984612134744923783520551743430031646128876908406956887828245611227219644492568628765271379603393867365855516817387428688413020645525993665510448738813037753132275020204651761140836229476277111948641904583036879896098819117380276610996871981521010435142119440161955867863665138506750387664841678363649245688214390663041016945032887364228601648915060890700457243840878763146317776968597157390294916056493820084389657777667523321419921735087896843904106660410588152660059259660219268152925472520192452775891573658966113471161560456387227382973389725559891223059502753367823442443545456130584595596313493439104528631455450456809251845085644859763967592345439635803706078164897487476648274890531607381642437326633793655137668506779352621745882275314766496884133690824613379923509212723737517728409541720345231527265554515933058534653986780527951554712011712263659965663366736077350871291979291875362457435146462843683569086273330055271855477172625987413668808127585808957660158321792340833021013786250063359452686091001725566116567991507152731181026048787443646042749615149477743937756333802724076097275562385074795852653155643463604512650203510151796906498650927212598369387550340005859534879801057419976586904963600650189507666874318213689199001125636250257972483473177420376985131877294281957539744513938867249021599064055945548388760894518014288501955637278955620071129128673711397659202140718767722399651804183359726241083587010070081859094112019435625052529009983921760799916361687519979995007317723138437725947292300177796322121074101382820354396994824349450206116146091261658687746974515171736271720790933304058556808011097831872948536527343186180370670795422668372336644610366336213778789870348255835929639578705107303877487652282563398038469545143539082248806091244859626314278520836382562257709859788678960016439668502690991498058439325329658744259850429930775077287698927045154714136300626494370226202659811320438236477664226649984018767096064474194745675057688134596524442005352239985690802321339249025805857026166269622485280084910282303435074978745301139842546834117909227999250008462855572954595005673716783221756244278366483767241108105480510450008843477571481273240156806112663837950733857625448241698724305908639315974515359537488479188588553179678923626924154005715744865612192682029914472288294153084875981723353940535208564102231596135001934485093109835667586832699044100831271820607968873775050576335909755196390705147382827130337472151543758369863518516048608486943668267098995694181103720041863666710755757433787639414724917865777030542801653699147543361256779217190530861515558456570048925124428062882934070816709839950886005152194538523378856204722320354001777137584366604142646039029061861606620716911568948624390013213134714617985573821136878113722234127972166469259632899952396639219383715658837503780083459712544028267113234836662675815879231965969456213880060636317618817367782757563546957745401313056850146562011900520060701269296884317456995189932908581106755447712381699743866576954029233391268355538507332021468320652672091107170453781910765289095858787812371037475128741558889792976178340397028261842043803763332630637478221589447113795619107479222439698274698506978138150271249017345047222226232451720946591487388145305316210032623490295578804448221878904388566863334849460997062654279655485021829596030258838101255519877129467664681553440322283905944272506830649920142043092907241685771936181826094845619783801488742735824401432944590204663839659103691533634685387749638689585940865214958180143356188822649063862579018132310463274258912899618470008924932509277406997062034070157703942493627264659750006605523904239363704883161040131132328242519125421833395530183024775606704390258889749351786840489035319884669123311510594384054753276661410512213447548565870058662260146026862475975706871511542322711951908479811529817138874664932626127512161759379841125305849522479729609537841243942852938643178548989495502276448181601204805617608803874873291668271307273037380157812317225300747777968415368612092930027791317764891928722778818287240481437964041042508631200079352967032989988712071505800115273434593178570487029232962439306014901705870828955246212139619031307913023942224820627450162192242012793205841510372062594118365911993771589906284748103838974180834441205006703951895950855560601791928990977384477622390306183059769765854747544008112341796717172125326589466731784272278493859992137754018511309130567705130443895616166327428444272204863299634944853324954227420607878692221609637246101572186710392624528624656782809595432571556507467439696925235507770035637175745821576880046453478277656482743701334910345121508257871127881531236311636033901594594861290763393879090854308944527763961255438444597311726497571513125540664133177454247280962772556221266952736583994727491455014070593181880671566261562308866233832085856386000577681381922780460287076140580254736545237716712702577076775784148379548392893698659047116432802181371574674776442811046143144209490514860534987107869491753145310471689770956630707132020383881754435451760653056030916451817718542819096324817048257771566971946780315573049707355388733234944887621526475002159591696128298656700392287785480413773367895045315085172813995951006815925420363687400365016588837360077052596460427657871092542154421083876305295921199700234527681674867193716344149464167505225298210295443309138992813176535634167767348281576460525466196891317945289784065456544497674136115025528546671303104219417074445337513435083803181570311876968213995927666933921955703041574282060217437515803478616432133467445684332937741178985331659845282999387641757122882169532805242669990167319027521729919670070754069785028972139829515956511229262373840465591443329460871998711175720562388955182084273786841123019776058702460847728849647175220702459014812015759969531870798961461661375246142853594644928889543447695760426848416217351394646915940728833418356590425219921781993142537000710175548993391620791896080159663291873626626953510636150482839163491154912207673540495193984016042706507325512628017929312762839119417013165527585011233689413672807624062007169049506280779932801880609557523163274683605796976728643427648700396039057256261823657121293849618671924810567639293292707339917760168542293008857192642964354678652533758110757174110120658095197248548269265604214448107779394776263222197749198041665457110598438632800161691019452405701411448032068604510771741176032123452757776377687786512032353675203591837662368856380003547039308035173757491352245272287345057922097525420166747032112691495677065933064821379044328672864647692823551391071286757687913592534499482485152962832278718583699630055938544965074674663085851025308676682668937449022080671381190190394774053937837689782711703493662342382903826109772792456267011598436675972030068991932371992007243378552307030607883319059616328568319968954796475074698168856858780980042554435580955612154089440526668762551686408564224356210472614511880490823807042639282802654335478481860190876734321699675821916820791296333760890086186401959693482522344417521221760794215602175166823114610201765360296147097856413856254520080278353493577334571296261985541094491321002954228676378671559250234970401454037565844419001955769521715133217125597472597751264555315749324160727458560431458005222145501888676339652413409449501228406036161100190697090421488031123450826862361058272690812198705018543830345768475811589163349907889624954590525464708252923814732918587150906352291998105310923401290118097423296332770280235027274955097436606626578305859298717647262665514897341653407818659022705691632100010010332416419322149416377565667396131885005151528390673860520167779036109867728492764040776094788013068557904170875086924070923154011677027334862391539832963077214947480941059923060706558503553942709449324073329703153564688549606425371838377247182103024785531568547111443196779851701718575914095898049122068611249021406843523790857585357682723607103829047809335869779362646467723968552333956711725998451808367230749059163664808607141611544559568133231316257401800793818409072870313042542252945790061485176778571566368080165845583487457273913549805836915230136798168043632513445673266564232771296082718855237010530709806778854083558717277324128840858867101457372073465453708704164964512031845542722348785104907647667640713875249898735560800094383023681098645537957711268000329150358926748287031900416276562170226498673670363060891135639768112179674316172699159230164798130659003180355833986495062175686134869896225036447110642533582731071969430245296759162822477203843012339332349556061714797675025524948122073847094838467782510987683886917794810785551910724461432307803243244725963923963754339703814307973967904266351314816737245062538785153330331018151090782281672370389225905124185775705900825474932221305796771505464647116987354264182398625292089467569747497331727854789938439143050614912442878446239338681542263566903709061815841214726562815929778853103508360633025674997796285185549098926336425134575056681020668966014952547576640596226571283546608063123104338337136050638461810839351435789932602671359907724402523835485795974532558735355079567933693053100671606109305269114681135178236971511333723512006111522755744528127203768266687976549552145202443506084250502923641611780934401828394602010251732037564050296650021344549798715217612789640707688071984985858323196374828019293805472856330199623415567631304709207406567680406448724653598390211065876011948457837943393815433393659302542435396157400835397928878595455355515610065615129457908929298423298273445577616559789886728673771266354239786530572494386674248854889230758472627756597585457974441305088833228649137576108519373051557029040140794986119859463136653527357802486708847673781344078081151359033573991517780570976159616051686103764593360238255406769952219492332278094090774973749599997165448243277008691291214660310360343395149056636403770223992081325353313716942456000906454256910311108412201178806200678501561876448851879124634645592867337500310644102187537894451294559874984556083994107473976763187391269984175694897524213741521553115175673773357321830569383532040328255654440191018709436627526863414462169725873006416567999380898254078784547999017303242472248626102217419924768913415829314367020357909287025698528378938391641509519809529063023960054892517726807432294437320379236903893723605105514814580577152901112957146584155016902034040964819312225873213994076112104634781496240707323589581355165151957699675578564887507382976883790085579424488098337779485681903030834427289533015395363041207901516133684262944597181812503558218140521875683618459529185848883428131724749533335055163405655829918156855097426906146862379524867003107673173399822497474145450091266510287170873970291386545596790982482082673304158925806486511893089901019493732227380915152422764188191089675990494140865768018255787676560940909961092228656617154169122640012179477932043441365076377150264385001565748653554674836070376273151926777542154296230925562109449075993007185582044264519928747761209896802451498952810851883534359277582667538358342958435055929336398899321935397258777291019120130630138919995166081631606145311261382279819028067994335879783235994040349416167330594432802031828799497733115767373283776312039973127247266212225786572850694188005367458920153478833064876395400834737751613807435553972752636854132250028720909170119212512347553025151241257420469693163581862679352210125437378850585349583289766409083820612796848921991899066335730463964902389271539663062136411707473892073062011156890513633100021713140604356933931864920186888387430397694052878725401793964648654734493402572423084727302866687249466118433474468133663388323306216931767132480306906993995230179221425482863163794326140443531202819154747171478433743350131885838832639823539672014543948598596141904122020760379623460378162447275847619513430050216540712280282397710074073082481044887644055812646004025605986698875343878948486959758908809660075441164502309482073323807759770296952459389744989144256163193399913756142364036983226265936503546492336437319748072011143145326330238324205388174447523130885774484911505715190450947193175423694951652241852200142098720427821424883421199241110368908188419870652260231432870235587185918372965656405362290570185857049308247071063388916700429990437182173562477026282253331647886493264442711728505335806601440498557175388206528908597547753606250947349000376628663727781073802450015391838005607789001269902916996251993050965904397538179628831877102781230205117760462138147329174710839101518889765042576514569510162699533102729192544920631825211261542455990195990138629819586153553050019386923418094641066510892748690055904969177645859377203532289776297248120929452064074977600599214735964345024012484460559567681737238939280998890372489832633223424969008146566367192559833289463572140090871308970109661064472141602934595100802149609398176327706512226764493383461661867468028024787256717743438549484698836430184390047769662491480952375187670699378520244827231509834928522819142932532024740794045734310095775267309566818717732969822486042211724037804330253923465058010115994291153832945580088853910486160155355566716216413850006643877047448755175954744564997971490250439086015650553657103062460843873799222539286016825693422693231209885692592684940649072747317296499981694402883225654877160838751091194377796423841730061647177827390265249467231013223404054178662292244575457805071290667583886131627158166374459651219839401173847254379807984137816870175258913739540509532076227473390776214497752164745619935640026840375702649704988743111235113852092460487314817179807827378048915366232758188372326096388414912435898203391867816048191327033806766805418591037321441135237865168904702725472489369209140417423974712358422318744235037992188575268723420484015527724914419245766181805566745466890647795168844816875951394957509717935645911416208194041341226928720387793161837165052640581991867895679826426374198799957007204685265160890436310336800843118692047040296727757245222816533322387232055295905303179432448165019430788161352732010609617616459619417524148548998889389288822603543378125630679811735247846154129954556407637905518764355820735891788574263597126365480226945910822973391207454208986220738499340560086859079218581050286981057828934087568848344692570626306966166229205929345312618240289514799527659709024272243020029883035622793686770714408467130348222994437644155018013563397837643797890444597723699559812675161930469991171811561702399489096638566199663399681116682815959239351972147971099460011229017958439470189981097633118205447189223901305589353360519032329516679745069638935007345333462523629314910563524190256171769099007380206442340934550504369001919630375920280643629623226530097948130694721899125175308527729799901601531228691884617602815872261550794681601375283265804949472119302412171225034569751963644692371734155933105283053044569718084322704771993660302546094665941167695036754545537427532113616617906548747475861845127631154652050627399437488850910673610027906841289724794468947445208297463457320162501086113236537965183707142196704900251934565248565699499731226644299894868248403517137300944081945458582130145204135044492841217508368671644004531444136145197172698188741890538132611221049521628200887981341305298528134953970776851432582910597702910312028358248983896563415534070503184491040415821734590088440930031277043626095655404287002847787405772668499368076555872657937697161273064435217484897307522631139361743435294014906768497346673601454134080261756050336810116197645753673865899638985548875732527576673030196784338243796407828761428212020497289435263414237973693678422375014056475292379748539929661761890552720944149983458284412545152041726872990657350138554230014791096662188315868508604328038906302438843120812214745198208667135960063671049998056392485745066580105995389993238381987260670255180968871868138201243839769046373414488551969439478820950179300870551221972904673462238213521956966823378461764326667774784545804385964302069965596463180198353835453890925660079559528945094409909806032743533839001351900571226118466648860988539377949652781850043730613461976384187756867029140247076355103980709044942984677698354876333521781175818339109483956085951163150478608196866336885843515735572090109191394315717246223716852739595579218092068500859240041983868687664733201541625228833887102184402115148436989082406805671633890567588952090661805660665934552339970704826620335645197206890200796119217581179282309272964005101438878607830250684678403217395307434093346126869128039063683330076179532848875041755010429447378244660132922023352070939269712624585594256773060405090485616995843523075737410323048531402853682843640646294365990418986840543477155586959834155663416867984111578715151947373861557286395581050318912590279113736913279006697476345077141815815888754285746056128164408425942094678588818404624353456401472580747314655306031985528738165054562574334211286130500462490187419294126803089401736914975564347324494009927886975168128865463280280948540872967152815699640667888802704064581631454116434191975115048872336349448677729263279495497355870512326179446981370849254532848551599526714965383360540700951205835946706141491857971140571091339829975293379100810413868326173792592611662134511787759676094878796387212054367488996171903823102158144132056646782136633389923839611110666467991479524859473335418338825750506455486353223143087593773336660792284729169179346758443467818489580130114688312350894160483955827640037432753933864385165102941768100958444454052884339393155448347675853318094573372061209485560689804558477428869484100712767746834630698222796402791445822394738197387464748152775114607184858620806658567202194984890263777539633290567233197117525627282723284180159424872122323566624610560088433130118612372006779447085627034609451390914384112334790152657297663131994684030782471529443801336101395993558010842012970974085623510955036849371504226488966718149435828675287764129976126970354820188496665074218113698717411715801913666812809038480667479865338104882412689096203501385618983440183788583404453637044216483442308208669677669224979946095543440055939052885362967312942691560085995529573503504697376604771150688252260473518230736912707271229902383522840410513815250865665570671663258730967473218152040722754250885168178797338213141777395720948373110187090696285209687419279638533631488010165539490856946497095887149021741213757509053863605336901286835608940861836714687076104345604706879881443323852097267391419404980547580359666359694851181759359556400276429856365072476039011287218820631068285183233764813511344227933227433733162090831276628039131634752764286078925835520351102817166885448995082436465100295298578857659256788352027290503400524673947807096411657069484132805927964555740834348491171653844214771938828229498330860772843844009964166775521296864874900908061613509945531652734673711103977963967485105482074699591396714357032980323290071699856706413928655542594638342869297904398972084272810237368318079875467753589116071584331891581017689642305514259077806025824099211071014865309002993793811812283709209722618321112054737490292748147981576239987146511732929216026109179762416810582119962983474881880394597807995030387479805804834730372925267664833962630121540111331955837773032782609527749246611374861573320967831407628257161823343812794305868664587972618155646894585015123087282293119272079480761763563434858606718463652512038413637776280986427308700942748153956725496725349141580942159927007261849518119381924384949796770071204170458272762086296241543614398215570174882453486301157946852024569687374594670145181680099080749099982036456229632788265725004206069305780289939597310060150252904882783500740567263407786430025381691353808227221352751126162862965783762743564554165177637080032878748683866179584989720743255886369361059477738740263028373062952559190052117751592113528414711955100645407268548603390766429904449067086886255926340350929050651430349066263043924601998453252058249059111936995603726235515271596051680231117635507142541749692844136536880992604623203012638317747810276355733634146815288289874539046986609112535400370374056643691701511351984496950252806530757338393812230176601388353621465878406865507210254405153352215744554948275980990890244101422916099853076316439463160422244708707022137568770465918946267844140949886528555693536927473374634354799985352935257176629324907904823499524636489162136305916402897939777662805054377087042657307567307693814972751036911207283531706545367246326028883067045342820849156351096199059598754649141380484228827058936266826841497225775168139604643777352840446670204696311143249314078527433344338487051533638676726372517470744385716954231850112574371003297854505152308276342750571676006752745999889429884578382201791184101446336755432190802546757711139624734324241463890633729263910591046351976468805999681640240852276473422747029778674360636208125584977295135854361144621793018699982754321570883462296209912713497061109270246555171022960719896299909689712161988371627381252666034759398580579519303881151523705355432641932600676086463963508928977584488744757240534721379735350872570525199428993404050603007827560026517385510615885798038461493235520394251053011395008799925534859031219725799157929999712373838135525941466487486706434000499362206818422408670404935674547332081290373207099305208189168069586811666037806927350581601068466775884011090438964301542349836378943880961719695833612201734424083140635630471100319264639856394638879053456823194847717479670796997548705608219814464954540694537640284003939754679061660660223709819092151076351780348419454554077521481655012597790082054432450055018890853834940567976513420983603999811464029792094592604568142362297614191978131983374801909400114963287930654128851659858887739437942711021966963122764330954618888270899934808915615165027267680761189262861467669952138391173211793395718642080082403989536351738294149047635407211902274775902460593985268710895582622952138358066890289838351083626839883029839174531252727253022509451011716503860752678526521265601993694433756985262305251658750564916179864259417772955912319659047103102632656003282744363931111763695517565989224298303626264866532388724137950380254352518024282723448668135092842515674885684171694159896259265720307256799881843936803463812253521431305553771223685412885114581553741209621592423109323117655531232218029841746393540387661752470262431020607538022496261774161222106196752952995127761877278785976288427706841214559705129895766167883998508759587546458234821250557273686043953422033157074423484556190395977470928538128145355193812623247060493716130835396071032350360533334558848918799919203678131625943064068241823717813893500784998886806293823323306463352340335010813729112450024563308389160998059391364346702956883849346642034630668203082807377489298638023146023855696436588475612782988757680371229472826331745897388211016638566825195063217368123138921585168447764192281779500366498027083340737700810969689407545954131822927652102813401254229570755948172543495045838890656657159281478503767785967108189738968742781103382560674557932954204224443662989677461717852605596926878260927960702136480450451433846169247243356869364404767981551662677866371741687079134552695788890570580257436911659311503676139804787613089847429403549390654384432947070032428044480191951105125912189584745308747049474832154565583649800979085599053515070089746595115807496404868966081209625784523663217997783770452219704490620044527822282396938669878421070563783672393485208606699622183957851843914962622966865488843966371294170424088593297841928873036203971199547137743068791878925207386984559580907822418759932585032652683708638398947657244524288067889443764831569208938460418886397552190561191609872390813940824169422288176344520117763558307362752134790481457558740286712337977463872588120880864643359473455601371112466694234607996618771690001885987587123268551171040938361210231755826663471195795431277398465561901571006139480735634500060443203315178203979803814838046160161977471484338534875310013368321233063745528447850893607527485718150580509079368562166949972066284379219580169213640027171278153927290212752871133027308123150001736880034389719219645550209315543034959777985142879421083730575180320830024618998823743499499603402874737889271582278759131977287659625574477403661672748130755665600809246232815765370341966022125258302356187883133633814461412241795724745322127021572228440700436209918212362445155920204682604388469636624096692398869949436371046781428712981298762745048295889492301669451211533968955142039514490221348412500862197990759154785412919138069969644649717528985344470891078140572151462757140715462846243491310079087459604016260881642223013505582420739063445730042235324967517380921620318102700279394586144517756662879033765596188904365480111738079743848885201475899710068183053884157464591974437855977392931789563311412404446465139346021974295348964194515547308973793850997268164262932854288147902962250056042029902030173254325966760889855243204280302627195703243231094907611328536909882471415634802202582101350090590687581481556980930970992359006594401902999864799949399859506089403078629897079013495607995867278748993263292261490038698579934113668555169206152732810375168176710716011187852165838532936163105197537905615840633180329205282862226821307645339154208063977964163217406690019848977632970386189620279348916373372552505560400257151399270016229202923655419258858782968786271056787239304047262535313898833684036780336737666760555029071127839821489880721576665845507476797302257501492015530927914002346430611820438092452029030659046775044427432705342137500371733539678025969115321495597112630510117012234773786984388067345547147053617797267659737472391065321728198679696765945047212921898763774756321601952358768660723806346944309689028640602701318680766845778964434543358261837170253545815771017022831850256730421897706227268175527895128462955978584638453919322210293658987742709402798569852004049542133569886599301448453968667713890567019095363857076606032531924489850097795126590588276861982995456359043651980087589166218123601600911126488237153875568185571524564024662841281571882543455872143133908292955369063534894753142516689535832409254623858234118344704828768925291597052747046342151049840120120894020770444582977185015373615575171936493290508761896711228523990018483821056250059727636263935709415586803782204630850006258560209445997154484686272447774349510677685313840945621033817290315275542623736401935367033447868066895214229381671505206405706802562934611831736562365484563745202206281125648099788074566833137040341887439124803092863901303944204892005827352181100846921773337438221578158765224099232988371029922032883120799658906393440219228598246262148771337085658914009333419333582757562848864609211597768411740920715161476841355574665901417576706953463683316963261563594923583953362567020537924155556328153415938027210064636005074150178016716071772728928787771528687057248705658660802481631965421381775791406279395040567575539936523117028045992624125927803682335458398318715084169132529659904689149634582702851911776136254541438375252601652894103316428126878339576186800373666921129914038844878870287406106307292380348491782009018120122867539625180906479005464992817305241822756631434257151144363063701622608781130529517138001108503152175894863196270009198196857715529083849981648375667437649407052119375238003473621993154300120021920585847656876144558740753121452804058039102761100867130728725644904806648319081284886005876087605637814027248004287673087599233126253369617470428252601941158620094887071542545523979760249301477488769132659767859259462040787184661274353439886745485681872041510139627668151711705667660085443245047587432088974691468462579761210704125617223087331363000330286948716359262430580435611230763597371172238300107839843099863833459744618330967708335772260043420728681423526090336115218757466400905561649889107854049411184028161402204326215648020269617810070344834149275115511169200579642452667693319305643050616370342738281963829466568789252962175177194098755078892135026907311480718517717383607738817238034322761758085877667766130178900519416584326852733427642251383994792973665691256906080358874573985281029218714602535536888990325069982957484691803919290023114200652370356540387301511574760077201560184635837326094189627995183190709677157695926094862096334713351117112301630739947655646214816089424779419963855848908177833140527549044051034101768131001425227348199187043064458923013476802455673402352987416639665230174251805520337111392037074790440061504090991733986486138100808419039155425872402818722917107716164562363802979704676269686558142424981226623697609170437269665577474304451064145514558163589616626099773962017317553842241410615537061412773308152583555807703816938847958902948583487071077603884304414588802812167163534132326081409502774743638908272894309051855773534651701904860366719483042267102998028692273497866262878115537013852811119527684657853042561714092490558020289940750151584873569907524273426955611931698379070736350075084515136309508893263711513433971893901476325059026270448465690567340469895555630191095820475460591063518156829904541969867020103387387832688569231544129095753353204387563667664786043735392378286484616767111489964344462257151805203053945378400645917019635003098159398393075451009002312352275688474346437671924815593967766687247927731035139560769262251623010571389668991593020406936239736807622196240079089867062774127162301625108624019554791693674799314868658514410611695854981007654007043175805890688176215708152305885300797723191310326106495060907830097366429354893605343081635561504331852139243591997727991160443424738068715710230853081789467228931202674587969839738685815861624308453710777781690773549930423083142176728684385151289981611035583603146983287994022492733624819944014180594702236066133292989543455921011341033407358907483582180158011998696369792971344742311128120676623073780066457198652177801391195836395613198863136187514818562089511139918156983960712903219856916060724304020398924181275437039229651930656028266503826296797216683265935496162066784412934042310911415637702862806681878400206749667137367466883390923567758769380497409885246067877522300242008550442184461639882721134248949747607613843872042871571408591379703756336856491192212774710425346393817134605157687532908095613099915796869625612676090041640148385433303252763597680900884423539609248236533567745759081475801135193808544400784611193896357813976959484123139062469990609933694928725242620333286871874386488538535176609291508214318057034421302796390171165829675924035156683180586770029930822227407662257601834161080914393960128150572329946926974392149735809454086416652399593515152675335427809913599953233712734293554654470957743490249917376618201117505724668844172968402651263026492277003500401096106114225751124281029841745430577346240754864710960432863916755254752091101321203460300652495638564638274111402273871849307952142192607915335875045800053150789848520223837661234522446229163286075302971712737134741654495894410183928597266362464954464770734243186775884891641819863842586363629205682437823379260951556405845361868824546850817850444733126048760953897536740071331579277072889639644728893879811799552528780279522963333374538074245503920336763358462655842872431843673855832336216878690252832148089697354851453531330763332513851212966719785716963109558655928190652897165529470205047886134837011849035027937117912579974494756688569455281772706534150598167372038364535215642375717888003937247889188418025280688804869864327503851005925075203652367258834373417834123150455423143921577575958486319187578927084219793082804598324699646357121580977760781952932209297329717238308495497698359784232360174752126283377215863199572470066655001756059487881945088700580211438592684907549015808503054108716279558839006499316396033048586274343766604276829712282766212192332931898553978989464123463549780725755927570200713944539961867909239918421434015901646376782744792755048820959730128068022698089057633663197626181974836779282152275134291651685922113893613309280697781450288753608197575641017543414146675226732253761285501578943879240888309463299981212829566856624279864105087493618410454775878681854067272942155767584556862979499366627054662176813720852196883783793096106378922618654394233577312381937811687159950371885413664330837089547387740938748733883655747671164299387580928701348147894976896604122428798810364818928978410075341451337451260267296910494860890719177969245375742535670714978143078213061862120715369389037805462568490711830494037882999797067786771836295876950424507256409033402224726424939474613888491749692717388464923287955052125919341319106084258721208078670109817978379553231504112881522425342101655120670560656837702768936689882513119341419172222565503829346258249218381720886354162286644541417489877322466488110609173844044119155497238438074336035997860781555573362808639979040468800226524711030088201490154301793670932522445140504681198753185008502616674523248845447851994024589381959129688557607557411368063602913976835600150191528459282142159766870574700241677390233546738631097494147101390034007746628747211650099289046258606630353148133719935993354976698277971870872493007921208777051336443879590086404967003162314432583709871310808072909735049052780382369001145001148334791339428933987169726533164168504246688621587390555175463749068770608546921401856635567670337553183517971967672208244613301178218891879893328934517564016966640552842152009073046371464192481081310160011085633217505038649150077494802466281204382023548763575133839295283442974405230929681056243131580660979176103917392542979724804633973101956674337277127306310008592998610424818703451387248651330341708498717751221325121546763164382950028311802665882610532254408261922399155759472124017843691033466763815627588300867451566322813454189778610834393589915076542430114755107669810426650816466961791176882764036282528610986511038090094462109174993458453014603328316283995878761785430795510279511249413574702898232296636291953657286373679390641124863528291644372028791100842082882797111551993358620906020327647441766798333323945053950862989287903255093690181764683498655734312972362989835595251783041075378067399462149738484030075409136290333675309846607029713029528809329529647179231658724596528454533662840327931956997399885415302214255441866787751292718530961315299919926364138493560278829904839865756722594285822594899160736615240669657289525203440766474124490623235690095124057513719408583274407745840975166443141953944500387312762684322410882241911719793244361647579251921765111198792931007573921615533614741252140840160588883868222165083352140028298245746586626719269799698340463562498863882541112109977141812014417136164248572663654722745322418747242899671733017120427256164220460503245749365224415661344665000635186748217437504955108383112139374766415670928855673567736335101935707555663333067808421792335847079511459372580531214968812929857719170144950821051548172239077903265138452768891288472863704250870015464786106269040171797302066813917603476145885476269210401453502007715953017184429066116164568884084616682115543596638551018554844213849955659003244237597324678541960086614409720116036076478773037430253004464539041001739937666476694679352948993850722234131990625262943166821318861508392900645408721676650955753319672612325801488128027413444576997013802445485773431820365984839925606427923280226707195011729930481278630317525844307975416657907471244709945315232224750146445273481401576802917506965285923960547271848724420703260890698751207586741771923844197853394203083060811012158414226471836856915449098213622160979270726306220309039778693437550900723195267376873203836507061112268207700237328383773511078528884972995449636269029263719789798440352784284979826832479581344880646157461513115681971754089987081659846122625041272881488948344724049258855732710618986084174319741669920261222975893449288905062942434357284235121698585201706951783915308205926755553576422335707677368533821027794937349706724486757651607153798995999245679012861860966413046775995839172901448201593090114072659772657274961512940957450848934043384992763673160296727324556339658826112292487568662516615107336575216044612422436238724163884655013306317725989964140895038312377999852495251350835916022695030983192834918883667575915323899047840928522483582862689538007188241993075226829418643379803794362279246512482835981087334240815363298799242097587072878429252766527496443940910721651991535539428605640553925151586283595161948141920837637259505400713650917691679862735164793313509966262541725209251759542423382257526601164398541996632022323457682919525624762457637677346288062144959979762635852606951920756058302812268926933621107982093836098636032257264701009610429823409554110782888233420399072655718388517391025412390391110811763781905787948542881643772490641282764706259892979736944111573291231158251987738168514863119249540675440252560424977945028949433396027164966499621107422482901837837927317359520875801212806065016023485520082631944518586730780777203178572207937650928831518396368666941022656163494268371093058916131568237577593856955577838820160870806310945619265724581880113903099541019919694855152683771449414757065861748638904454717539647817532898111490650358382176512516202689281094705110920326267226260269627481328757816442877804050172499693705800860783280218322167197373406797234057982862726193692480070737401130754401048471666512037147681560948910631942162832158640405504716181773368732927776660395340263599645515113892413379423639074600928890525020926832845876271732889984392371436263560834707659066756352236037691574611663988982122151805425093713750676475553632114442431368757034133757005541608626681960041828298219798247221603423937710419521351383706678510476180029243495449899152520925063701705127598520875368258020272053486766216392242350471622402233276950569338730003664217039848531128286580865693978231138734605631998357112206632086619311054449239764881045073399213767639850798860032591963880357659680916072820216856688599825765424808971768689749951586813101725328342010099807327200548079759201582767144084998603723141070252449520365706874971800526921247009187268445579502571673413974553945024674177856788272142193859390001906899343619379024248195726352961290069262496580746400910207847131075302951240798049450850090863381165193306522402072301394607407935460462322789281853105330806646667969724801742922938651743646558486267658928836038555669082724925704093259042448893370938335651757887756112903258528330712007518073902974711008534503957585169372627701901996486560141866665472428414758941108002460613849707910247506821738145750978292070972433319940220160671254807822175036053433273006473959046529828079662768335413213709207414198215490935544735854957600969778638427431712900352287704330153714421884586291631266258653799680334712307057608358525964870988117776627227028711721086419909633766666985097293033581339911953015222303014172211134222740598381861696807850532533852079860214457121088120365343666138484779436418260322141247009060349304364728835191769917508836594698074512179419697098692409972478754655926374947272234799866423682754338172319065844621060906878721737934670026264360042903772493754973367725225595598859346409265064912780309930619484200295089388127015446345099354874498657540235249784970415973428385616316533316769961653790915246280267699101955901025054161954839016001514474090940280357544287722710905053549331883005062662858715037929592120649531945729526276185560558859520264310427555864283920072415002546793378201208723378069671608929395155910699534651836161405886033999540871590219019291859976357111510394532009319132493842112009332632006499288121051727365659537114244429650108373305428240874719353755514612266224426232723428189622834818929308346333768812379601486245947787511709386388582031254327330830575260978435961348248331025635549488129672879738241882331063204657975267262188907209286856306359834125096647823944138092311210734084153329086343227872435077806242327933568970491363817308294272871522254975802000711895855608947450179459591811354660877287709238976037984238441094457809875514322628104154496414141331502866352177888027972086681657431129097812815879942327391407558683138683152412427696385893275492431867704141279110465491336122328666820001847495553371465602823240012796654919004475386556776004398828103331822271466113809313906805836829891759497728890467725130104262211342995193820882126992634915471090005719405604339411533674340174167651834180359107427803836478868372261861746669176248336639151739538321559569169790397325920333166011271694222370396668349679573868184557922464025415785369540598071537506160957116285775255066793475584829145274171307465959882107372447857675525462650896129697112787133508488594589362173466222189598886769358019674173555124653889484548850890153524517038491908032446359102374935553668083388631440702144747360063420860857963821973767108288876687133816948688686347657334372964303159097553575707043175245221506056537908773819084556071782396072158603018448716178111610562346272315604657164177685521592995657827426534671380974316077132637631512411332202051880803222101589946889586676039842916259978131095032511713883150119524356582494712674169306069131472502201676843827603267531154762494914563328433587622748251166193046705403775694493770162082734541144521582909362848451514807591769512133531622656170318081100280413356138217016289692247095856947499649861968033844583782721905823661679880978799883286950633421295316330117859478807704375907906435077747220900197521550209821498955700125734023434785140088375952745202278075828405809069553606141730469129310383617970025572604208205922549613232885632277279296877428978618530535902890689989298439801213624272056231700818615962970183064180308051055822496017692030411746412503971464662842666274240934399087446279102722432984590273884690811620422126773247666740182242888351335816359322179371405936804372869617546747090572004516647377177450262790964622340417050381271821536433298132854932404282300719549982077443897250441248051922137565840709144511241305118976955696140062627907467254670119541049492038420557393062113424683203311378824083219053975999346218199199527122134294523039307084798632439171734414007500531506548823188096577994543090680336374385622658250442264141868896497573557773901885822646919325050353825723753193138241117147122171753705994575444771829181170149415733084227277158699328139721911068372861511004063855890372004369065603127574597196593384312723261240392129973272195861476101091853644252917104476735961890844049449357706056510259402717463434079037384927576335810672770177058617559463223437802359065314221095608023567134087401111817395815782949451994517553137675296024995954366305280267589647146422832312063867474413820957888648097224386442999219473997370113461719353032123604167504172962682406559699522944595133714337960387554860585829263507610080058638764727311636287962143591167057752000030951209933404605328098052962424485890917889529763858718046019178088423712815037276444794505335860758437004495076727767420451526596942138803207480346932498081287300237885561410125912196896739725286467147645251585467526916774320592100636513686302335504066513057789430910330132695123861282745752447380884391549706416970580281246359263318905882678900873244662134845048979213102515395795907894596350426694110831637455643756567432132104447062145051303072950760660928521909996756506658273456157301979981226064090235261284654672976455741932495835351024348897965412542665539905872441868020249476025834880887807301606813747659080211983881909514833169818637434091965793784714379182266103861586748418175183836961192021328314789716351058714422841826633407427137383642568868565674949102379515934494905090484856595484184653138906116684567304537727174130325985633852034330177273743889866118503525861776199757526103062544848629286335876923131783539257850974721742009008169890858357241022730921725520207330234167946692964291557646816262889200131431057033053155657791128546752994786561121286116957830035636241170628028284133259844697894856248333898256750386097442887570260278621196213553669413829796937565926079024568135599580370572263729056833634432280049612675748656496650160088462952694925815696824430242673375984503895675661718698890666620868725289340246467730195747681262439004514119293462061769534619804128069150112114182709457194978513632805082718365954908862056813126127828522673243806712308147188123329139451062169910828747794283904573794238242497720515900140345466324929982440193055670072879619458485702943370625962304691901903655293305662815283911868629110735131979954495445601696780256583162324100636648773160888819776285074504125663246541165335224385018807785778260471537587314837864282090788252551227132453883725084001796368534742184310363376551773905437832645373337943417584884648481117292671594928683955558290944639968631738487761055928340904608856979902729384321540177494179044958103870907504306543617968562828410566287249071098973198251825326936506492294091968524320256046467682307465325207163807349030162964937169902378880648871221337163683189118838828098100555390998948531997354813065623288412417060773694141420665286932658524363466775392287683469626309236359824614462572358528920736957140637554682401283908929559841045389957437871002847763502271256244697421295727758258388123869261394925747951724677242609453523250993106052571017981412192131370439270462096538408996417681701726228567839641866614423017662040189642093154003848315529709738383812497842325785868963346000524840162673871405816846677903256619820042539058941150202528818507708274041024712813960859930423802409653017525021179354286326990837742306007378758870058747608255347436574445176262541521701060427757297627262466807952174898492543871228121487350786250456064149781094279830560183990165183415201252338533482619883573810098340314584730913855309904801459385778962366620701199537835482050293864885139344595313884803004933138979585232700505572626254123662665537106341396258104951001911342298106486388752926650175102823727418409926100734415093551608965787171164187757353423726908599295455310477948840922642641207940151987022773737719507347393176358823126084009204935591815481298907863911880252448135024402036333829770850731561479923804239239309720767114630101107780641961108018742406865149566838289976819168516274649106297900060507062927470254953810751462341793563001062348481945906813318327966251084864811065870295682541958415343664597452147909944802696956734522360151155911920330706827873474084002982909068776216339916346392131653858049276298502107451077677703232446873281559893740946472868106749500391804368069024444084933835593287342142267780606184225205382585938676886733861453531229520297382935041531756727257405354723656082373474404064239812109639311331050405096290851945108088884232485863739447667267452726716690680052063416597230841927256018795792611609391397515786873016116331647794408926944611415881569056910374902134967879756549157387436464554288892983963268937854867025649785167906143434739990540097805298830431034981867650965547022532405305657379074688625939607818359143401415695465025005816488406088922050120167142254134060129290149544937436738443066038456176421423796315015536654864322194272658512457729895771726995384388198593380708569719352325378595558611580155046308947138606212584407316183333766202799088603850988856180816151781181794353048345845603569536063978771851863175421508353004216265786769914116372429836962601036470352573913606145714312985345243958570557666708808024805819626439090886027147967824318595261781510901665665358470906311663168228006028324335239673911060636715504380651600553748969621633682106944467336809099015391847975174476925278918368752615422051888081249279327236278952824707373020380340342043227698233021821255163633353847179555040636545738947032515926931361513364747654800784463540361881639818008077738126735692633438686551334205568799816499348670155506412611294247702419795097128412005206022429917146465518355753253605539819418471316892374791014927313856265288272498152501100203664259209226315452080341813531174920173506991295542166796364188862385109932155803471743470500379892125303150351231011465280984818401667772479887069089340592583983462283634961532002716820923483890228913447107865509784148398871750833440278102715399906104142993640474321052347292834183995465989412531434802567042127232904050656979960179135811014586246500365108879493767350718989207293223499153504092231967906296235905326211571280512539032351530762042092483477977270787656637182595951152429133346702881263374837386594924425234842276495537698107186155776501757734309858309086002677288275278730679039233492689016490303021142033107383398346694194048797804467442962179562952478496334149167955126171010824176075650460119396467119276124838821528787120269871830186429846110541311768969420042766370733743687862104589093729256008852758250755903717146439375672204521939646198826406678971504393504905854827002269140623177650937076833084893892827763537108789980720121560178897738610087835045600288228616625101601979649980444136285247860312683199045896031694987955354816644631314575179551189298106170011336456717763426370383553629747542503989440165977425149398991401859981405070204628895475018660568996389189427660422322845818595486364917615380561280136882814931756397217842225928243424488576749172623874758741341668455363637289368243271317863495392862178717342975763848609868565747612423772745669155246872434083434468487947504970080777510900403783997998988557010150369778886026238877998080704164173322959775373089868904025936950113919168220833770913106350741213640171695965791214266896632000818060304397846527754908191863306244288093635455052529855118195743819439542598454109183740709257637049964595146528070100999283432190504753125176353265134110935636421473461757441612620874416891029352410180618258179283616749276310724480549862749700059255188782744254663862694115084481225694550439042549236442145865919966929594571635742701392021118103494764894413610757466144615341781750903698892001798910824576831546268101755440481974862340043860147445360621687439012344560316004364413717081546983947809694369485372345172360149348958673519880694466148396097114638840195431371692959461250871707620818176545415796841313358235871496479206613564074787609331762099950408709082476880009571682534531386116136934799720615799537262650818979347589706363106079918798476752275255863761099585646618495728919887299556968011457579761778555561790220893493711253717849424351311640882608141277044448172480402880646528737950110186638427892573213783250996555476264451560717678778327810718022317753736390621513286695723864997578022000109973661003454160296792711720404628909406508222642543274440106892175409125738513489761525420964150333348138616935757866864895138936290842060767929413219980997661125126538008526694444944313767778924552824472503440265613142606445559562023890890128202358553446445344095706425727661347206572985651117536204293197662689236232694258096483787045583666387935455867153621919532252354259640355760819378274933898191851527699020853683560578643692439968640283143832534932900787280895633528017320021932624462544343028565956853934956562445484302213866430750293710262557030896134468358073475456616128843254047369814274994667270274284353991519992054763142430459728094050463419484058252681439882439765044053892577508958112960866507116915303597972822849441570711448950321372511282491361120799685906218796456385276135167403395246814740007978222819976750411225106860545401462911047967391507837736295664904944990741754292901017983639425352134130751435271248669239486367601182603921762850690148109232755642276319499718156166412729101727634418092155091256092315812205999471517040973516335918421153789241771755104701274574579135838350639011037731346969983462149912964684230476337145031619747279029379386435894611254454651928689263315125610269039006000922628413934556153414292131201151517765538579675828747654567607885785184226596347170999885911603328241755985041363566294568949787683620418388261613809094245473128367872432140694837331474627427606929220379042941835991474568679794729013447021077202804537887811689761825269730256725286187901866061475956613606668471568115958755058890772075746379382683226546988471130173571739314168581331349679730071024435823763845688785985094402399309602945304258161591508347455584171807882441547615164261085564361879253125314590200972280531676039261595361757818425936787089813113289861875193826444376610277271350558596239167705688842356596508254853431413332737025744821567834452509539017863331791809706221462959051903077985770942332540464134358709272912152937080798579866467644234787232593116890430551866056137601403442110280639180538950631561126703522904815518705058439605234030849956392728138244733067298956599572219325137718630208105174195469658916626623483614279661875597664585478734462428254707007362530403621004994158886719663643529392444757538065945810105477026255363073774232344654462886439933417505645129568781496314055361873991536044483744822186257326737862601078597864905174181604431714157033152885444317609261355172083097517761005585183888014568949424741510421361224890274200001646024781668897725838739995222937711088993607153607927152528645986604358056628043652610163650672858718208596182384467773940928354935241651778339660506488322878748816840543257136080767429970575899274852915979118884396351977885294823025339260681054713466102536402724854210698792532753655844455851810663223156859178755983982812914404403166255223241917625872814243642791074356180816487273452755190967221728652769094395739725583028050351179591251926415554821203260743195608953175158600964606466649443085215047970788495037618446319596715784582460538770719597266031990455263981470403983814432159768352196721725340048997357207926633160988473433584786370267802241230414966220300838451958777321039487063556503769335780277325161539996304945818975257921915284468770491163867556680299146753122414806797543472412537095339684933625802891128887746723794220102008337469160319017030255215993323097839019711697546638344771187661078809101652992782542752264012887480098639045881919184622460949580390534801781685033891512132473900372675053716603236779451080534163548235583114623657260652652243251638214085617699968457738109609097448607469524676296184897359043032192027049468729385891174306883159958458711407661585086386961117635916331873163976394395359160305804764729794490245290453926265929784106347384855150709865843581790482664017768949368700515218107487037867934292846141703596200630207549315556461475084027272843226577308091992106156306148293569689389100451050903203109826320319631783108832669128271617164627208623165602942116083947303446151749906499561181267232952936789498011182374437098844909895702965694922656141806629677374255224460133859373973477964006663306740630388830908313290324647563994709278804321869343323901272821848702168592705132963186041857487956561610746609828257955149065764546614059430794428432433071134821967062079238206419029313586489580966200858675623077905585605161474782803768662687420426090058040787924354673816400497158610780340748703385474508985805595087317387925425413316621268624783805724581898367495991583905725934773406241817905900124022723018878340012655717339863646719241877377676625992657531537870064753013046796532270758489492321882245037303801318508740565515540867907073193457520763180439985313754574283276311581800897603783780042504876384750367459451546117893837907539477777058918929953285949467545670711062226691070373895927738000208863133474825126960789775287047965882507200573833942218842797878058339528921302730978395386241979741446386285204037693471620185396169743965961011097070083634788990516648475752135211360015253644773650948241671860041419094285821500891172427736159970996847519428402120564949390877124705950230914854090085599902127345268051065651331324040534916567883869924810793535516740745202668535806400342201980126087786749951131825957708126652500642203620815752046632491732882166265183023015398558084503017248712369270817476584892166163255638341940190473083984452960201784989775646948250590365468081249109434722943926467721767201420411072848608904579717726266632849986865332124542258722372066212582846431475312680319227143912272388462429065475790839107295475686418779137906633191591246115118050680878114825239831596814650178919408396498101410928839768537005837658176523188812657765672109401425888248634848119227658792676826548481113226620102742456826359427464226855330076049947541084690578821275077390095402717400436887844094147886193625685089762567865071338918768173594147224285361393049763072916685439686550336419456337282289498283647661041610731045093710028413485302836673106138926165355045900801634182008485722597299810848853390633549665539516061918471642518715135940239519031161307291604332414878943145163454371322523445653489626200460046002965473831857318754531518610401286793397931119625766252257460242012698968167188640405657701571562363382011501688917957652224430483218363087778821062511898559874887457163165828046108440693510721526701730130335868401580852795564794560357547611641602856918831101108590585188040154228082215450606849918126034218263065106658907604088450822206454608504207075856782356722859024090659153282140939018477651988728075638835897495395726947446506431527599102613672293334933056197166446287815000138157510508627456764700399903917246747968797470708522060533199545505678019794132609957012149018631999233798319180202687775309926353291582639561435015849162353954738317085918001703376629648546997716505863483735724087203028472780877956879221879457935902658096139590608589184891056249638424044794709817353088265586301020357911292565814132453442624489786469315990103496268971111204854504918412886101666736148187570483474595653409351984071937037066027456725344335225518256909325934632278533098619163907627225582479156535603875552329728557707922124515559855844410176857036829375452240903076533101522745818019387812298077895460090120850997308134805425947413799038954192468031308255099036310127266218320774004393056134753757404701524341323301824149280866766171481781055467569174761524545997150287823074545563189839537044467701436484551968727323003655392631845297211600350052510926552056596476860069168361745358458666981891058065822252513859620334231132628402955055992540092618290639469428250859804452663054659308359405352141278242899612561603080499474704969286294224046689757345763945865840020657135621607012415967263218180265071527329089987142451514793951435103339035042129789884851326963687657424496696990849564940490995804308110747994475972030452880599767549544647591417660556767332132078478191756436740666251039957566275773162973218078958184147300559092873818969551637389871286436591250157775693694456914036310418050289118784921344599743425058676134628686560881368849547113823006481970583592395477264862509904710252076698919661515519658334066450210244908648321378675361315054464168018743274756751864924155375001224033431681756092680499375134549700682725533062098143762409089911942052668303728195452044264905882977692710600285373849248113862414403604358450602188168501179769607883483907105120027391706367809168815772122260442915559743783733860611252134253354136052572795984609511993990752057358417916426373425958836436066467167649695227572291522789323175040362068613547889788510940123244661681098450073955043016996971322042028490153356997225455693191107138811265492651127394163544308937091817514711799246621009901540755876999408492739555779434728082148905593755063080537757548032276249822492425060884866383156817635498937084389480604622952868988589473316138726017346696616252614846633399822620244072556661525218474529000745647332413201985637874720927759628193754230755396495570264929207935609154227645987228459557154961299156688652211343286323661036841519680405541407047075887958266511358466654923995482361400066044875340181996916545970914089421579658377556856533192628293690113577127176809714682535492093047447460353370107958634754645272122667414462847127936537543318388682186004703049051967736718057542121770108770990033657592385717200817156191866348724139337335658212486651270546718679261077666400288890076048144505237694422086344596630548582210765004012496330468779895225162479632451650599174185664056695448276895761802069844486387571233150829578549332983579478981209544539860262985502112356385542050872555816186878116036124512668020317469090324739215615289960590202162233693056233475811512831074623295842327437461573896435104866118274190393887997567028462209069391156748494370153863729528833959391185213102898956495146493196910380139330177786963606921457888925425047087139168337643139711393660129608966251050472171034805884673551665589222128684058825744497736282408678598249654399611302869135778159830424539985475863380841741582876761107955220631370026179289602644036308363521838732279252632008243769133852250234298273965759851352315861967425957905381122387607599777872626530768433964020899083349466644522055626757075651506725822350982735987605075933173892775239467230169608138571414817924016475892494886146591470819006127326663318682832752995483064921243698264778963184604987774095188587969132542127092823227851256168151894308849468018076643987538485041512540638996704885820924787587871531752724200119615330834368294385456718299982060696335980125336788765123964400690481354340394636414225705256909157600996490324685350936834887027486861385074213150868268868176478530072188723469902713723818912906390264603511348857458874192940211520882672830914303929963501245265528877601859057982014883722142608770305594098026027302910244809890931318312099443309049750751515245721782434869114395954235949849272544095767918695958878020986117084498908328198799975783488769396235129231605720200236552146221462091310479462545163471400195524140500380880712073246149007228859294096550558075231938826287893134283610502577083075444410963817739720049833021802888540084969438059333326815762297573125885395960267982745092446598189984982163281957863336644311096865752632635130106513272493586758969485844624443656721117236756429551264746338642001877005810957028942030288307318410671689211846370325603191950275099177516470285651360336239015461217529441374127513681366931778118606546888900400388300376888684072439001806215031514803834811241884279993152875867993496190991773826607880733132535462195232433371033181440568348821526374805864121848893645164889204568991062356833597311314546809252704099579863362086509111703160756389361612404440256373286222826158567689141677164568396339360058334533638757586403735205717325315756340246981670467765626121769303051054893266529782429149775276174172256868434557967980630580026377304247005309975072523905053639096846651066819022136835629997632685222350570346313058802491416795273961569631134882178415135460123892013390619629129288312771699283818812491149921058503968076749410300204143430778857536528749666212177961314292953516473739848814326159012897780495561873777160459885603397650238867871279633102696049562154728309455270699306927173026302378998847247020056943044367904464069556215121379483648163554597561680068161306963129223611348286399597540796176287742069381815914168858604372033170854262321737644309236206567069042923847359596577976213569520566537210071160823180885106418323181424363999466095189196135506422887464926752629918096356406354918124332453275588709690511949123753013208438198912535351415564995006428909459968562529560122249156329983435789853458070197391218368302691112022073166708345828728480415150216325986461846109500398136427205753983761233989507879846574398114768171496671702502243870018783407352172198065839628101564824338529323033994892875509791800452394433082038550798461907719855443828086249917539870926094554746160525366299856702216316630304075685642584236682834938544073348705514129199555197246711026159408119937978568839305312995320593315495920724333697869583783170034239760516189423561649982735926174994396706528581221527164586732481868280641746759774682276023988357427276563661329456731675026423389041544264937669500648593117523446128194730564036676931848603017394785822401329028790273615289194888878181506753273213488061230128252587739218230724707640532474599054093215488766071995059162348781661166110276621416950780838065977114723727858169739502714629857671114077875509189568887190800463826248843872810167329226575700924032598567149357249310606667514724425135549602771609755162633202247688171703250593590930863463662046048097942771217966526797683497287264059454926011956207139972210155772820798202985835726490086002914738172027656841217455704959500679062195347892822721095729714587204468644893627761897958436603749838064452454470592519750488043406388734993653794074005202002501867619311239161884079108930921794438204444272290001371192179355028521306640740578576963142026466232087734634679753265438396524828198654919496202943198488709195956372014092945387218319178463954698532314092240983597958563247211967376993117317222870190095726110849600994734799623075419743878011281679186766316969249870937336985111422784305127865029734414045139233366235742201805743236821317453023330059419292289100389905364130518082162986865584485735380491949700034094657858343069969116869291410449954154947295904733126024581390438666595681448319157994962924961364913814445076301850023726993543935872963013432143186842092673688742217548230077654194314718925302237270821799883901504785490306716241646421732438472656503281930047899834788826035958679634963233452101262661917969014949931595763721236078360468986117679305231951822309948504910483811791813606094330809085083734326333206238025202123482179284915238021740425913246840886872063159361793433083488348067649662400229219417191270213172589544599614599901660114344851189376956803175734263416763962393646574263633711586679591551970790618778894871479224015375280750741085915825539012886625197209368252571168795270338509774600970923394133756911726370486898784334422243956249335248963802428911606407210260581263627297466404286777963750385544116857607617847527709931594243182438391564373826476281672923510573173137501522747278498109136116725840654842403728542786702401680173553912648411280092972420846121609219609770548944557711706383693929366643410607794646817110842724078913973303584102458858156887409233627945941028575025114368040536339604254677172752276861201518679068512071032454529561491314154547864802555943486908613191293842076054743261646326067265846180096537889363462209886306985480240542643963199601027740492553994523279286176423990652493935220069264820962162292053595078970639300133737147659214592087593606986726999199031336687650462301358254621862207749282532328150197856943784447326594754737565972743805748842572122917165129092134027594552020400257595149493419414363181122792631077493769018906846336536554360941005829833357603949154292608100789818538995980053795445487930967587272836450352074772878672307640851683860068621966522792271525168107440976513523832707491784020570676867015319713293821474734289876594063387734440919485011888758082732736164528596324905458265613854284600729383976859621045035317421287891287848520841072770818317667438269445985727438289989129776552473014755005710751179434722654255890901057986030363294999476759014015084488948213500161097621355608938669724262401640307815846536335088942706677293002691057658593650700974465880110402761725842821611482030732385041510710802174001586547811661754812059656153329767570662548831048260922294206183462490334361972435581984851793695475237628112938934579175891028404359440540196726128605421484550089874345278990484377726303475332793768931572180183039312217733159347977324318887844884180323055432721057130977417264590636521457763601652591389193137154896335637135933562858907576350577093964207907706412816047293557401330489791318300045566703363936192291967691213664169366447790748444387091287416315846266212828611086416389689002755255800459967245495182730458833710020124747944731670941663434862219157306607252305691449101892408467885118512111030491923220390980563710960940204993845674984646308202146518292074940999571245561681141974234731499869714924152024970156550127335939786857578242294821656402047192817414130741375534089435768580588872317739610485374852227049737757125933697832885794842468303613081585133562274497456099765877167648369749894407644150202314978418268362436307675118666098761572649801247096848693084144264933167125814018163430321215422953107906702629894876609764817311109300038993373691143047073002663373515434215437182545421965884119670788170856197803343118551070952143573026388078734873607289784463126130381761654902889267432538834143830568620563509279488392723240670517008320420865648078046632214442789867243044308446173996734053938846310269699667404396745035455132560116660871779523429893594166487111314675490490970015201394615377578756483757618388984789403138172361307435168528022896568664094985351842125736862378943689108647256802873734737767124267578303022316331023424070024512309474448518024345608130563112483161612610309250894917922234047607139326975140134754902201057455585503337380216516104997709612070299237938215468853990644967545617736757264873480476638364108033054833162964393896108744937872279800857832935956747520153697844111656147500232875706029731703867441687524832224634051173667290321608989312988116850704506294179353922567423537139871756142533946469609055271223052268091062233858722151331494773452610665345294739648790394570201683223887929255261795043667261666592518515854663121631157862570396858143714160946829539708132758072240176895452306079736599563611375201977810474813199877932934525142826149936168640747446486750681774938626016862482226049789910653159257216586875546504354034351269086458977358147466295503347123974024697278546941026864276207493891545994149474881951749056258609676644144560949844319333724017965783561662525174379147959205907686683563092488971134875897644419016475136861048214022322421902928688120590650714389042729637976463503826994927861322130938174910428474190397405457246187842072023567065948980887725444704032033138917699529509914975008774543112141484264632958779423265665729068407094126642375757488592056916848920454411285820036736169464532087289757137916222215075684240089176550093167458351168538925398073982412486720313502469193696372220316230406616737819193028697523858038232031010144683263231887055272904961470629845612707712046536313343604800244156939352302393264140125369353354475845348946455705972780162625155989687920298016842007695249624950398974566301125192987753296577882175967756219248988553653284060486560665700757179017046468039065008864316911866340023887761468614829214860736301986876223423096613645398473179179094958948048169564570033257081424251241706431452854079150688280004164098432836536403196215767429558087040494785657550772000887062720066835603621666882330202044265427549366354293408838717064434176066499594351709015110448938399417703821725088962878109382941853719706728918698319268350570790701546019793253054596542814769804704043980727684321020404179662711359066857362354989765114450489055174728168381108827842723127323160691568957764131910676853029778322995664532651018109815234919169709269863878530588975348728107072297541606133061146620787720840743384330094428527221562965732612924071812375996414819458713555118672898232315653953379413050608336993945413255303819144665189636531960257077461833472473638468292646935393297884671280887126458003540823913876369326141135548999728119571965359765388322086645428387983833518246061886452710326103292315937968417037021202965988331592112084397243725313514699227070643464696523932532202259582313460091729085367090464364318830863886139976026614932335365684412760648276283750973983211620125617025389018586532473220693147205287126123478130377391557282185464549442696310099086835980612480191818784729210109211381886317337691168078959781397887769583624121751394153875573825117597414398476352565110918716982547536714735781286767574868850052648352399846830759044219454154073372124836225171547602468586675571794077420983921972757847995921461527496152306954196486202309806283015661569167202465106476391699236757375235234593551127797000673241030651440884955868051086911213716578906829976758185954529778756415646417292897179246405799312769352483498178243182165790564967799787218239755452457932222101765244331368149018219357300374951464296130866052517644123351213147798340627784967756400115803024216979732835114632861986561377287495478344613244671597107484615469151730640881980447979796671415645767633563750794012836262186798729892250655638148814600093642495445081872297233738392038931674565662457574561495277711216811240605345290622810426577729633241507855709663711007310844305050564659942356626222656626603149644933423794799370945061036438994718266421037522178392746398608784352533772287390394486671994340619436066965009805221845307624149922640761327859932389277479053285823229142176760951333037495483075328277159897774412982142873552719164354081906556460357731375765277523815671834751640865111075470594783862534168754243046544714396194029737035686034648188733624221190307791763027364902768997177513843060555151910873535873810671893769563777619963354276195690022173108884193133704281167709745122827138826195104878046161310754125686085735445755890005897260741385546608739466614039113535669923466750185849036532747684421109797783907618920046491635553057868895585708707832491990202954659500099572537435841771031181770947895168667530763007113421883928534673732204899641357084406785048512110252787090685147473230189811366412139821764317406738810644525460060149186861523115830591027682943963612536100933699125871892704424639091263380412703396958228012226951882973861462116543486762173570207459449984872628518308379857147107248515397016864737615571220613021146993524222726337094349089751957909315082752220492055742205455215963541369390376886989819623454094690725678586695257197842980766739522080009655541706612560847338071948999448659991025453625834143682507257848664813333967021349179584009581831096131197620690329394675048438716311153437286574309885376879417261421825943968656492992870386531910454064853449892870942295795803838994243575675776560326936399415250711164781129074943571837973427959801522367158194630843875523556483329152912894012135598363961099370363579534750163175812130570601833590767973084670704835254438645548826505096953972456100988023029729032400932534960414712062945831138266085349456192486345089378945965462900852982817445956885648859895712463541147365344695258320037775486498106328607225569242208643301212223671484180597358432878250273142621535735866387181938425977340964301140923903169025744553980112080687978507951271027143038518673047060580681029433469368497876956947086813454458558575683722684902659926037887400786579631498512663886139432554697136757936953120268040960459265593596886591327976058695909740290183894680508230725192907988393371071199530183022459485855863636626177127939575325888582776417847836201337629378948195938839689895739059766548341045351204639627924566266170302400027885938357030825940217893837377628416473476299778064275834390890891150699989371605143929608552156002419668662054818856039097256129589493953594191393290568281943598592120080708795422723426168580170378892459396201522393207997337250684362932519144010612450180952413814098900601017412730514404588313616134130837903324689935506201093402679231634835226427131608965813234805459259268735136602443626279440293925546035276766383163508598709823901596463560802052966826466439930266314972824278181256177641827554613511875732633295546597335904802109993262622550803607972235081026083020886236476998422028272451376407919628566490829473208687240120807949855496743733572046344379010591130394952315927766894014339738815684200968177778267704506288241947545133872021474387955396286969285329599046195834761733379529658392922520324000017596409137020992232034780819940345183381503891324163834127982051694668240993661908764266627163618337569423472140109059307186670775814996668751932057331330975310119451529740926470587750937135488995093883767138002941569939209745081028745438086991726004934916931539034172545152797976595552068494472353658221095708111363454952907782710896516579972792023568786126839523643353652233042362432945344817634203956548637572603328812390611590966704765189398538273428502364328436873319886774774221832737875823810971967867188145953121277647885871417979223282683167306712070661817515173828918558510804475073908220975067123857198123393883122083801264299862761223442832245121356755161004141313713065030809337396526398084058420105889418543103180625085577051079823697006313179151030846704658474499791808939692995792150085369747669600072818056290913679264988265321014028283703907370088844175728000283641088242611186357322856851571429542790249188398514783520703850190522395561931172181538047940914294782405312564779766090517623746035031338670689490007872484556534525480802547144789321474151925409931355555552544342570963231231025566035327449116177758764975831031889949757865154169669134642699371227394874326429125473389693017674347485256173990802219271059176503361903342776597403858357083213669405038460723157945416749932814471019652068545029011354084006777166870337393157940111446104184734823673815497099540711992254239415523083102602102581156098432719084314847439379346699722601719927269136814752093384383189751146294129463215021212032777908047103625399746298593717119060538387650020148739227597783074421693676316665120453548741702359109197465602819585405895048588792529959056571978122681243242828442587605765794083755616091997637280023077035437778168609006413291772865134911063267571112498383000449854340657998673435641501261180339595100952954865500924553548331818387470710847892863427472390235185080473408771411620343092078190342844983325822861063884481126052700437366659329162042481366700329757879452293273120170288508179528962320385909641555434928824979878011574167262309881592730461400929709425127477558322415269130832578699114202034193737367808468911629580684862944616767149682700014105345480036380657270297709986522518666513032117887410922519368217009204200346803995258319429854225109578736365196497590278677769580449956763874637509899453423806515004452925084404071281265893183037528249714677591704279550573425834065161996515790858634499915397108610450632702534989317310738232189895310206588304287637297722359085453868541254227264747916119066494355509968748507837025626009161197855611908291139670356235979599056765526071343006124225674629558918969755904289592352373525731691564613360989366788997709072184457628555470453869746171240328749961381973277839286611841100197416528040137145083898430875544463148134353269292563774767428568570622476612495338455812304666723862046871211925336400395718489750190234074900611545260880189617587641512508493551873927568051098956655350724992415051268442486769791548679350345694699707324501147782842810967360401237579854858131215547283221693205890267612130601248802639657226949352075929572192757661327404794258169143259764537298974912409886249788792717048828629283084482383289276141724083823192710724233980224641485297844358151065875612198667685251012912165688705513420559164122460089156775475597760106166526931465574450647781939582928101335224908630921886612497579379627413773839460477313234107621890069942000643535693114154841866245170960750024399530446583787507589618612446461727610202354670309349785644646893670890268034640331439566244349055628443372986335228579613230226097780700847646370487063785624745833653297679320795922608793922989480629927481862523760320972670711888757048596288868645330018425697550040471484373410230743532272001945967774919833630484180716662993830502927635209279773708208249060862108222531119201856598782278558808430415006180775082746998650614601933448156871362355262108260969791212643795459183829758941925560614839988409038350714358758002529662199732271531696753742355563824979726284283969793681275456502721713373960423296683474632754306132082372142597546049516606755256331228924373853548534975799849257030646624741416596061184506353282802230047519139815857650125502869610131220086676771697196450352389522111278427554830525496567182876512743693211927765444720573927190025996537620053238196754609920743897309249943260597135117455989992973641139515148225987597435000148850238981295959492317881287754691766926559365110872373662934857248884193567935783376755212222986766109434182301445079109458167367755161494001081929743772257917154871878967544017190306999589571185124657065971364894947815141895452266911537919865264820593352132991088055609857358691925967997669017995697707989523050446119960620691984066688719980540919728069867078925429822378199027610743633327161209654613335566692607214332693379970394294184238785662538095605360447624592407594633910291884727156084095708828727245966470377502207654348715059308262191264653455843073038277581194049211888171586250289593738574883141337787111550007137834070827525508025133745404428752531049299863529869832781988927015912981419029413160759302106787377494081085755545009454933624793105788251266759363922827411919512381350207631386849177078978167072338238601884044466441721216292363798646022440180879760360277137164303609601955536740455233933951143798212161774106633438529885151323242749018207409995936357325472835801651607210892335953824867057153505678653769600713288273721063576325599372580741269792320513790193405907072541682233131101727799398777909148730800113575772957829898264927450460383703402742512116579563996243582405950255510184170795959811744178130768348448291831216934835482465229138897027279215652581205713007057701595199647872598085782529361853811895599774701273856925080021243272379289581454088072869800060166145864061562866060702595294399744839697794764077220664686478280434396746132696554742200590650814944930453822828322577241906139298641911233089372004205378791164644926768683737135036809722556616082911575297672269464972919288297026803188117034424155793631601837150218348614384543291557989191060882113161455447891809559176728072318476367627843791551143412743151976289409202737625567249707785464156128877652408581954470009737565205678616877067436021079305067953066588799976431166747065534292286620233510737882700295436553396801329368123759713763045634398760645089159904251877551974901095657575101474772850632236021035368323607231819119421492362471234787035611074941377774070022414803117128004256673549287259301602837712863490156118807872675025670749415456797687470098888666693572551968880641511930884922660105258702241481846194052561710506062067999488296522807459354150794141220422767138814058578020036722657293928030355799569815349185777827717272109440084840240369147410150706672393209108790521157893446795835863925502806460482338518428062821215832237144238782457218466743753765427435983586090435566057064619827950074828286840011359455848392358704967778516758150303344787959856155972709984399629178477611441367531954468269153061061762841082638071985370868097736972689824778781125144161504622686123143741847227043781794778691423457595358687373980834211217773214034347353877963229720710085457068194124539832468012401317098024002068346451434390385723559929893437693706133127436302596064427138897497554548182211854818696835064185934094255861801938054055474657381941708556294896812790421769671869157030854125659882165614732035515699634274673807271217187630758061622490502102241174090771107661685681209143838082069082495835155826254792964068540199263302773727726795993097012221512064475484239138267341254872887232885500617982957474787207743202087576618005639597472750651936376490475278857706803757408062393047062798183040284557495687648817278158571794795785629431835658954100403904047062514506806019239908752335285732054993693752445553010257561179610184203252110437087470833694316085009438789563035128872301050231589833986866821561245056556063142576809506044357628826861237511392698286045818711833859398992414889667460567224089097819004934799141425275830143040756841957308492605528844699318979224246668908105078135701057663430411512001279845514936597479183254889806439096070873646656974358752761787235249858883377380930463765474720384881982576616233983831266436045417502743091528993890570050043448896522498000022656238081478614912479161558189398556605884130384550285533389963401443516423466549914161245810012568735659106495877992946196342325283731914840836235707979045857334109854749664398352334343553918215381688697688714566962716402750468244994876655515198942281419308138141986822719040083714497208838833796436148620681086162210128832906121385856701101238917051064819136810057937053289633719181038144638640915756531734775231954836098287831961862169414108017280157934581209091999587742935182354455663683280200212073487253793122216558538730449251935045092470864264157792240216664071606853281178688297151080832960354430551594917154713329394640773342148076501515379012834168073446231070288939875329486409614591272768599320287064065043459803394716208461774173604476164556431971222190265348385627097209911145537527777992067589454224031110940048017426233153326037836736895262265023832635212437467243459192562342935139179681892450532078378908114298171766461949230191038903770282753864970766827581509076988497364684867697679535897125601887967867046652903192440637885591248657781655720628278473846394932640542220101707861567111541821163701684726982382393210726369939742653324725163805969198205713702101118181142800330023907909671761222381904274165707908384631115360218993174540169549453579646512990076445849595909400090209648533765308907074751512521066485717556846289072967400399420899726696546426649262353717406834479522942239567632090407676277580204265812513043743233132265585719707521586138387063495848785648619210795320123793185848435139802586836375703764031155993645795783737442269842596948901654652463072960733358404239544476126806598844774901519799301615295659456802522654988478326993352296802185883936808989000290840123866886518629023549021385410628987756454595189692402280079517215925527146434205486536272739136115788996117940295214893564098030258297827579905420374874203318156238000020074278606388043282250205140800057004224037103540323512022079623203406636599984974690835784369097865511425105593681479083281124719315411384503012327194699722935025940383324892758328843283196700744110590233560830272819587570835191697828528775947087440648203992957378159808656114486148483342895952840081931406908594779333814296535790518352887300516455823791279906631509557405513806137342929298186921131103525192152367372305365098685192467774032182189932687573261116257020756187000685251111708512894510902367925580857462817223921714240042673988910656218993615639791981713458919950954967692789337750714411331422349746353760458052207196351018664306552564078335108751370332457571943768351528869455652767301357098233396288646419876362127073493856090509571767863043683122692638737439436531024985376017868131824078872392298520755700870263533904264053653900608994900883315339587933130191289467278329523635145979473026242633549893237936475985691714611165355152767147516948185793023826974702168052730020334219716752152130940427939131609687572745864746011420855268012804427819236772389975445783079722429157385957924060643711034161114971277680406328798837188925453891168045841447956304312019594444348684502630885225144092476069534557165244638669775074173638525345944470893921730125659839434837812083396413420698750841676735681145291204278740463280263997854050600323091176601435277908225359954783228516118590575695803750084789494204915712822042426805245290684945743017046023236300250278470053994299119175396690756915206970318662308072615504460303788664433650544590030338021809449248267246954408588366959556390403724048166269000452864626671585487685450447758705415766271157783696647056866336273486792485731844903212762362306104022094685335629267168973374403384502702531214933065536140365458568235005430024728060430801503065306223183319505288911135719427192183583658106260719380407869215465797101698908572015032309517536350563237817658488308715143984671837171063934841022729251085608603964014334752015775333955633797215324972107374818219423136474385236848444283507775217397206287196710081437775553125896348770497716242652378175952238282800037002883664534379923696615843190232047503086980612299990913854918120877778997804491072685718905006432554261710730376545108352758733615925294475909330582884144702278006888873939160098177366077871062264635540787284590420977233310885835302890291048094273206965567320115452101276823054935604281649499022365997173423153395452642527734216373525054158423924256332650018637467018302586911278681597835709650930155034513743389313413914798635034368009916134216072802371592979230960240094435991957940651691661517302425577387057248900517941690706883256728574660813742497851497636955555351504584610972088293590227224918869840744142569465007916797094278429731807797523935781964451350370061580755915618183600675012825043818233248196182978225485849790123313857667836216464169640430491568750743733111489520601565705986385475362108645130962405718889919939128900565200848957493210699710278450418121507980879272041172561525052480464927855945390933486554248405390090462428462586461125089561218261998459282368458303398235262559048776956526504017009477382941633549325625203090500544631830842549106049520003355169115697082490865094661186508790628963121449454281281821315647036346051504198664067435121791150854012663383824950794601546496003829135829447102857353128474983381746533805124895468961564660952649561331182669020852968426081067373660654483399679749269395465576462373178756016102742448078520184292769287510200802383138252562239176813318771952196288951510343029704247459259571021577164454155411309474586634462116909460527397243698955371789196332602452560658898327552462413119535968281052684833254389423829474941714795654374130746319098677776173086545807333625540380417871885549569329008057415416684492843485140686664880635886718855455362704021440631819867452723204259757929394760118296519010907712758503618935752366322441242006615829598009485720123034999403973453844240566159835203483178283672076195108234187581092336132846448450219161430915351092265231919008254089955892103610878144953017073193985537124500915675691683968814798625601540263954768253375495442267361445951302391119975713502562686278519887998505238330892858954912902644008604751009751071028470672621274770131027946794763482871782822731121836350365656838190259581597527856112492306753788622369665023657706063793604075739938119486276690662896128926007524291624543309688847229834307314192462363695247214046754639598719202535418454635914104717753443268362280271919093133835167087560440891259725044468573693764029146204066786996594341010064481036126577452962288710434942881796918071068570811149757789638003522065110877631564710264287233421398779695950535717171335523691579865615126086342877654135987524559965770268388743824832278975299268014498327070230265858806278034557092796050556595523991425748742854620758430745750304050920049664435466275697021119445941450600640623314881442237124198533504281363217053458147690333565063441073018043817603078540727831658426881669345494392420277288138092619655831397666137148673363184475526734159095109167936966652478358532412687230513427343638127265030163081782655909703698687084968010700273658769481136489466274728970915143489153394695954903644606114027306927043424309725839907723129328274046369642770285380422398001603361093462740741201898037742826293379471246147870309226159241886948439968916301751154601511194974816174603781173087677424160386126273882345591516141260027677901920812465826348917218965002125431740251467418848271221282381989320787987305096434110772259770025974224998053632855790809620266987036646988217732437999549027183742017058575489920180181312685241414567131918242269647407350787485634987985417610772613102725358010756246804361783756287958851857135834312768191498633783695967749368704027244485475607499651251299249276937692630948610184590407380944854030964081050958407738438128771017150690077116542466688874200167757319622871530067137679272658244016674490691444997683079683831884403396447489108453771980352895144426210423748792014138780311200702280587210285961511701759401770324082441795253608773083867743239706824734792316695722687562663038677602886082805306199815384081543107940213981905646936921930106380548969596381896881884711339012079963816448105692477165723599778635269942917284210867376401603759378405896086102997287305928751668901010893445615456002499035624690990727883357429178758035551319260408660395945873315057254137176344938162412318135413391622883627505733608811557532733613176103502965754149658765244171051983475788462186146422151381506580905706862832508913315505054786019246928105381707669394263922155923381711904203704935978783226978110135718685091039170497323800710212991259584699174998059440102254852284734563327802412461670402269426955864941963319494654709587893468337293064761385290531264701657808185175752639291928418784455239554883014516671597536663954456200260968804259306718794584784476564377788441616363940933786249309506120536412376825107661760064516887209489451821825656082677148133154917226889664516494425216421613358907553461709185710244806394151186609070239245890969551757136801426143773100937590302241037508960030125053160736971886950238673861237433439650845415358974246687843270454763729781120774256233913239489961496536259081516453012396033066645392291829147628385266454798543573976349649281615873833748189166499084731724192026902856518415470210539640425052234551998608177907813733018513077903343496228456292993143477700894265448741132148793461878088876364750081175622519587407591893694756095513539580551672705876470507831127592776262585943916911490988373657181757887463570209486501310487697313496732047632155979436044814091960102027891492265330551838013192932304000438944149593591027052482629376503859120180545128623798177593836541921365229578723822715788816725530612359428186094883923340563988619219276261040543329147483185108213432164957072561429758727591910198520577652168787497060760058026283567069377350891251275411255325993768708728452051500374520697886305503228239269736510390732496921514202469678706769419226749350922919927630097310825673150417723576879797492728367398436059808349540377894397747204414221230988757228115884005327980684529087188352605786434193728296851633203549251160415948402380722511715809940148365535068225467730428118779810182684964362953907090588170886777769415627441789875514454080126389585083101354486608517258516001044155021344643319587828560994028507802761769148606697492397561156210698620371659780874039314980872437299427744807519584934658739330340141779227904695646397218072147500061083526811695384878957935885632192209486657215648849220650445543865825633461862488884032564522642408896242554189266271865437477861348583608174737597118105744816818611367999575416396739375270681224590140568789720597526970129545898995453772140737736405858365703963510192085579781518887711063425620729901876133030609461730990319126881169838997173976242763449727532463573417865445945441005851736075243651454025700198227676646977707576879911898741894082692177441171735385175465535066860832926509988433452465889747607502294969624133215491710526122226975111423271158573611407029841888642987287043098203411905995541073891401907284903603780829825706377945625031386779689989348684364111290824265614621362629652460031648797057354748868980973186634360271762766240561360372050435768508209869661769387334522806766862051516210578213915509861396976136216807192160853018031340404611275846520070849634038831041921410526228196996945236711668485463319338475463314870622744618335546134662782416345116427612373297667404059899667190410676694842755847092544248545713132608384054005430412036307675784056877517036642650118117388624059303700254112869748695686552995356546360477783004297203438856410257627163981870268691270426423150243906047880850722473218062130013429240803576385088699172433712864403162277441164821724141823818868436203413071703983812809657874091988423545468890342705449609925118803778358950991146496705630681221015478749162285243819547078515089262107470967279166187408286245548026921169357255713266504244203350503606176541603151126376309370469501679358953468045030944447428423724795623161867722510389743014156932002686037561737402996608794190766511313500432716152162800896298487515065315212105967199392960853825042587832487413976719460151535625705706212866866751819911943034545958390622334648418046941961837839391629562482029308091753814753469432525713870967646471822449423461052036627401334124199959656933608701349619350174646082916564659025401338154166158325599029771712823521572785442245075622969803059853945292709594758733718024488831160159045192583589328975260263506607369601808378693962188891029024315744588890177174467453785109080919195367571246230409745344943802560670308485227752959198282921111972152213654621003098430801754865644830296691610532287596833081545540805755736600475222889011718582660419689320915296251176508374573551904222879071485032291450231832509623520946767708797616867588684406839787860155814812194007441535242645580614448196784423767668332713127323149055708334219279141754144687175932248432011126219460905579066329527813689774504071387915912781892940531777663690423091926066143237815619218450762413052294053252478672731943019335041357518567770567890915530743589298419410924493387326082831132307347255515509178446986971695482374596643439246125745845503627297146983139234175434871232058163774102420773050716965723504445731552270079785519605849194558349489581772682964503649582214922318533271870121822221363889198864081675891749962940022182690174340707207880397986668186301990525477101893710566398643096797246984084872618882528564786256671099042407811175164519269316734803113067138121767183519980758921390262293817537701213333442585445830641129466782403777470422568976304728618283133247567305133173291905217502737885384403147430010240303047107457206167594077650018821891345045696426335479540853110438229577236410429603438780321909190994880438976930846407056745683007074568334838480247435077993927824115804004363718997731306855128072085764833852045727640902514337882174707540869777463167106703931855131851349804924393419108625188872599792495747186980798470774110894578891027555662324780562330089454520402634630818559130969703948436922343546414009012225305289553407381924081242331139765005105631196436067165082887474526923141117419830637331108648521573846993318178677225913486620585863816114958944241846021376874197024879302459631671277111094131209651755239837473919935073527847228652457564327098744662356023085279218738559555227553671463220895075015386560038779634380451121698092523027709099607491345514320094889996822735115459344528798994782115383544676526017535263064855650493968131330315903041025974706502603824566826723551006748343038035853715089562038013559731730619238746161883158666804903719105998610140667652194429401998619459791450532514979911565521963788387279506044686759448405941807705647291897342757437369337740728837326906508683186455330701281882220374152542045363948292058124426451090430564953926847255089158988100797353654684707913985552414618861323760345084931632113886735463617626456776361042719830087188625811212422935027232056462771580759705936274971058823637163928840014251618942656698525311924575450810339622729228545475303547620896197083473221705553005479999809778522666849192555256805956385819194411067154254993383316539375101503541328315011875333114468736728633360508855101817648092635355150140637856831635258207602272494990588551967639076045059464854339306282176781548746445781471133326648681464503638556683136114446428701413962497145197177512412957682128121275268185027170671689133225998257943373288243350444274008061251180545755610354214756041722663776749365668058368390061569538366802388120705858550370447624259181936592875028407410099550737305632184596122356855670797716578440783077951182714805765551228302658690165060745883385177801108511563618532716111474760601950357342809238542679324727562837788101032069302589125183278028171531239954384134862149870442190092000096537429330128627146809489971625110050207594438169620835596949241387420598055875758919946779455352561592931087969992554245355103172223139548486055711539306895075520030549961417701210243534464000193271485818221500157003978513972014685156779485490811902206865807878397572587136753088246638547218437569398448409042374877543825468576553895447350535194771025127882247882766666604170984158570047126793129547154982503994856887183022515134914567386137924799816342628211426836694669139185451003240582468671594733515815628987168679999019495181394935955522832928837539516074921903668204616788576813886237847926857203184883912831312479555532755895842546314169843461485280481116455243318290935237555501048198445633634378060357628679278464813396283551369687105680461764844784379914640763191107898917383705569560161119105701127965160524207064283326946528702422526892874347078074564234558877654103044571296994561304848917584238269295195702662710801892321720285061758029692880274954510196210894605409799675094611301895638226393946347054798267012573986972334185077116282196326071959459221494658691693297723366610973701048737734201507414580497419065811816476832694702332314483784952918753905741161087755933962141641880405392902579049415085086200748348046174078301781998954661371199409610719503516852591681682767724439462598226873210566994581827971103406136577033658356021952190939610710782184125805840825619629733352449746209386478712938837146351553803293895411927505618557269881694945980031537355737298601158583455402224875122913416035730451558248695284463712462313130660879602575091320228211606573193161946435256284135493816200842109745861742377227727757261886027419084945884944309304038617178554039201043614130168894733704918668192307698682048460338458710061647006478905801097413023386575689800256944083906279681825365908148297521306786145042652966345591303991169700275272074587669151601390867816663777011408522327750059775505218584170694618575552398800527337023390431499732425235947005858719892831234919467144598567491612979141843596780870178378428996273734380861602764716083244961502719003605070359035059599502206730015993365061065669335672953072300199606586503961763966946304066662820260034458193335429216650075438414777204467793059162030712928850531599434586628941907115518543255742309333994835643633395791038064348764168724808025509090213659828960330506192723980665764749650195048432074184640386024061727697368907215869422150379561150933039417728811096026633882120477281482020329409252700026941318553847664733324723095610404084753369781510195974312923773455583947007712564053933625805731014873138219087082491080271005763698351373608808017641826159591585047866890697444434675621725311123030846246642403976742382078352493626493209827369213171524248118736600084460198286546092839915727680759141903343828837159457274184509867914568830411619353012674481862932554859708807780085510934977728966859610502089700260670725303902870892186845988191673090303155383314817056356136156844648882837492650881158959258874466540125638921850802351838834785596754408876454765977062972882621273374230456314318701597932465723739120098416214254130592662935756028861609125243785581873671403062403172567126529024088987983459040735268735376615915492512032540834588695413587958200305311206553773537052835321390960562021639889179629916416903359115751475045152937115324354976586954469819807136734910227247422292910238895853172446170197570223960640706109100609296671800442599344543836535657827985920340460559315112302506468165791621512009958735099468659090967812933807710351407430658985962235881926160818988017742906851741643583296452497370293132472995864459241699195024808315522665214922545460677430687090225051766566146357354994322966298610123150258127899871305625120595768698064374258534162942325388110891724053291539632066178725743453325903028633301800798069155804055253429788645663171724960601241299989548119142106775215446257949952202372487413714174052869094468533297419484971484884435494001704839454897454582812795548704615465231128701987833929670198737265256117662756665055477076769028553066543172561469818704703434555407135623754050590279474858467050836599192098476163069385388032007926989733485050496867587949450948075121925156491415346651176898727508098778713436879034575297072690506416285247624964624555757999120183995375823666776566208108885415055799638017791098978339261378456382235670519523473645913796373378002514453797015222321443618676977271544257794201425461694290206706167337263761191652361951848009326588389862992647041967250090481368320552471322319876575889059759395024968079528427449777498758707456840161146616694358166665648876016518561667116820108911073193699386282321662672307699943268885187557803374275391206173006523241551190061339665450167746103613775893981895774652621933424500295265664629459047767022389390607511775764039945639322589868641894860392398779828515264509517921644525971404574449015052957031237555724123236792944230089434018472164642727892994075864857496947463443422732439056436680689321129546623686747270392270347891985200959345434688298087146597762165801942993329812612062854550550615281351587353854691968955845357664997376329070329233369982587505677988432318793513046084785430308214240712957619313246833823792285950004318296415159881799349732633688203124365056213549625849514077627730844767507311209215759858594961854749648752937126204369784642664840020861813721994700231147817520040529916966642747618384970542770690586166742956174936978398105953915446977042998160079155976667569646013092913584670823246089931994708621625748545313675784711191093631035427985351242891768812398839088996282919304439017016535239883179391190382105868213695884213484273372714469066741903840359676251149049687131380873891221972263984062369222774039481641667553458939133643899747968925210964640949463572063302621825901107365072873305328887306204549226598607579046070992468139028201320208709987028148581014026311539773465746966864232009227998820082396272352498303065486344513525268066846493315814599522076993322171655616785434113140832854425539027173963466785097230850614326883003606329874340067717036976604161703995183963092550730987793341611847825687304384123666299737438845369542715279792803961551975616009798152717058699564030523180248518869488697137355479242110308497881989185576197546793374875660437769303677052966522779240484741678455291665969600706317323539527035529744569762365992738924260535598443891861571141186524539848322210494674458393779591677774331496944189821441655531583753050334508418991158824360439366769541548393856363569518671466068296134652370655008734645297936668193189940919567036158231837510307571525853619975629143789735767185547676090167653359632093933890382471303483135436595626975305307131537476411619125707603507663482969726303018660308483775127128762910766809466472197241021043853919925088055057115545836618969202974975763681490934762330601490520188392528100602277811546105234141968682353927642280110573468316576516306812642200703491244316495099827865659171375865028109476876671453582219056781393097863080033878237833199596256578131181077001673642402976155281534192675609381455156966548515017912517811422533417843878692358628366255445138338169665032446661435273277629630510932910798948896685591430471044567888638080576196012848279555791529993212822507041009535262373786583346666861395200076795687549108026963687278133418264124282030996028592439208424574878075217262200981551823797822518316773075650122706376861897788215379313093550742502456893549913231767477589213313771709959538509997066069515078435615815646218811925521795263835182758866542208693157551372836914015103694664218216797353105807264675203131053883657875575501655792416280973386488742236844246203604091118637431211120634742389686820289340762919811384122352905540603774384909242472507914850283852992506801371991543074213965766499302140808791310198018997126885416820084761883976209175433034877835791845318349600828083336601933583894514243810955180195642232489717768327592638803866685014878852694087175329217175805584737149086001896068967531695709237395547828020823925859751560056461226862016961189851327272849584424356947802318094571751661763700750896467184583661906608620281692510786134606730852370786958199739494229009601778461739708159504505402276128645015218656250955122957716223321984480844959589972513773926109067737258182367507215712682405385474128256942194753399907118044337923046825878341442276150720568162478342117046846138638121752347011510812680132048937771967681475699400199635893296813906144969584699510803462573705081007466998247001312464672164930486886729846988931613995998623168090439343576310384924357545741639851093758842942828336889924882565144854974028295716663213548710397860322933201566912579237607235725313789922905111046331515408203716579123019796893659719144761994769381100924690302777033145750878139962834716492901950353755826726557670681459638368974829312932459794607182856163565178016284336556272725497788879647358821693708036589109546447269115095205726863647213183765740985389627658578696936493129943976579017422658393214005964646904461130137644119353110176416122572227832345307746798751035097381113096304422337745654967167836515930300931433348391207884044889646564294088587271520735271679511537503280994622368236535154666350832967259871581365518086024645236508521798909216356468345405913674821627378504231844109043479114423976291027653866764085089641139565504774249519919966378581129806988050250561825791249509117287566590729326317040365885519499591298853636636255797675976217999690615648953749254691254284754827579260902054799811007543473649121246255971058445705216550533245865266441568471157900075283603473911307697445955096650487209578972725332137807964358024969335202889716708524225601316778130787344201263756452516868556299430096602640999831401352242975131451925754638894900656439922718444591739806528647661465183842988945680407086527422062049682150209001974078506605224380046154657399605182365233367637156028543189695927030861198225877399780034959245003847547283611486696461875693294251318281186075518956226649003243727312681151993135445349820709471415065156853888573217500542239041978503301934637391041650030781287065764035851226520757191636630540612326225950507165108127424987509158123790061691486543451791265289970727447768328042302167780540003398192176317831816956430454010778049520190914044337831726781302411273386910223209590423651006250924166771481283709945785361092849567037422633490310370043623334396797116565394815506147074573126442706741888097030188050213632360590728310568125811533066705439137863752149270752924011034766777747609881060130094454388151187645987277060913113813105495213915249631820783209492557637790294532209055818024344242445622046169806417084503881517144047111452097028539583350982353348250953220405956243958702040112967101256047947216917223201258103602411243336429955181462001114410067204761071632457548462134801473286086801421941884196976000937596519377848067682934513133692943206046513503496361830579488296647498568341114629534862698118988534248387322376753934020825868772132377529916390557538116809021970967246743783113408032969235689774337339216415717901630562224118960694031506997924496040475468521225225513609585513982655162404927112509486782955945658382996153269788271713636753412279280546411526150868405163300863239221033647711681453207605168680886783869774414956680028500248084210463213771366008002599097353163639736785000375959032999899308582960518929611241109267998187407424269665862424233530034712484704755616487526930334352701874503716837104153371792299731838321030684316918582481107977668396230139285874941674503873915341561002807864896097346319205182206817629208377322646775650965955295548130314257844972441155685424652536508845605800406399344550938049055258859751622887764123894118946374802012942045049022262671604396106372605068156991487335000063425577514363706642709056379384014389451217692408535403325866410269027082555051930509682209386009711475826006583592498223917824409042675779193811906540474416675493688002436400268561919393655016263158457886451347260063449855531473075723143504822571872674846643090518389089357003475936805477511492409824896424432906083721491539950083793546401679319037849416995287358539645200585022371604503505209604734258696986933660446662365210480091513396284469539329107493610048265411435831728194705122070148318581338038317080671439597442569909694722776946624731540921799689151838223502583130017023665170344556028230774686437711175699806974412490329519619844235399417830777514355499050041187362518815504836366335607259874574362640140646248844667560437460360923827132943652360195902824944798527143333732462398154762787016858793555809040149297921702166835936954530434652473860869178176693776213367470642903120836052634259409509213445307185141897499512549538700313821933939262334199818291168313881231060635084835841305606009814139893483652536935684114260942854803609318088609835216225919933288066387102954699938897008354024653302827099040765374717662272135745755135002500488866502933321791508467212328973309039951293992889092609194137978487149096120351387304678544487196627410342811569718241464830951020110123458258241537564087880744056995185255185885783227365813970161600231346456161266127882353569784640135306444343432498101125073141134898834601806780341373703079468360429861626757263909002979336461564844474309038028417423938582526841042201559732820468955306756108225723269322520250239281411811157265357018883982089910867879751251063541401409781880214330672509079130405826881909339158131641702959418792247466140170650663140158819931326781440149412788951736951419519529329400808009217833800563121394974103911920045791384387234885465855794849794884304068373749412845447441883892748815113640598738741039396073590251062647853555764785818083548491088125147283564338858403688283051467017084280921511690686190613834078043654362205783473410608031174205625272077396424237518391073801211456233467275427346571336659431986751152592839181097080501916873797060428741360329997243034463010518139964842932877547521527830011949357779381575336783265577042004448135323576062168185648185221743389039360520105662426214759879677919904486761298560864559433882698904545241383946068785437303030047899652936016040595153186609243607217736781533817116738438914987302689705640284163096947333437801284329592414565855124229887449797450686912413739292896166194976843057403822729463899559270149864457669800428875519172666296405476262356080627728711036452182999299707755047315719407102132632730883382017287561408801779493187518748078363773016956383895061917756894004023925547300747591209271293010484578437291731871437474745260663675246228676310694657907736262298677512911320669561145857851698262251971238503272855740728141261026646234494103727709625288681258764077125168675121955196254556816925501474403148926993445333134841382561082452745272310051215715105904091430903574724562983500145712739245105846142394785690773028399418055680437738859689544330769323938870745787653556250627328131204131168595100742388493289828648658217366287936966208132484115431404724884950500891638243359306646854700491533267465187822758121312635054246830854928255409275965347674820006519518832933773064172498684110352183113928328687015889507834816703208577399101830240668817986253142061342631132939384194237040379511488425968336383819947694425203524532852458021181954179937955142382491980389002828258302498535491228408813720233865708894698599422861201297634880689888800538756875603342062622738538189661895505831018597423938350430217664752062205644765751368964492410182950245814447810896065866793457795622670064616188161378465085389900646574983778765001616590781317005223133405662051678936901942959097422051672135774313894463143113453247813966159378407542597547642222153588166999621946846345551022801869173445625605119424685944986678197453821466232203522629069394857543521009590886983309937005737179362370475420896510310845625721018962943388674977269384410961849953565469719238244005995414574904231444919478543347961350709184142613024451236729337394318502087620605731246081576501779940288218442610197433329691897198609135060709769829215555121707372847739433911992342078379326063825471230762362187426055695587006597674605219141672994144663675811138954227059689245053849282537074915094104704213836208134642443489900582127582818822490461206962842352536719526092866853144996919551692201112548427266311551748106479449552571990548164068553150028872669943849436039505421528696616154246638965759221383188752819937001749336542281548210604910440334587294673684547119315994464827070175396733788973089355677432857785519733211593692895881647077175968829626853143665762600497658564479082397364540680703212886657205484894973103104316644118218412645737731649392530802318417815498074069497774459228122972394493669212618065784800022658768702397231442429973501496637474219178140711074087015315124988307556756565269572452336333657163059459605053912916335153295549309036026940847370329848350294485387136068177388004129875523705200403614636893765728082750605708105771961398531349688314023819300922791793024016594903128875011385677816408925108233662798345749409357004921769746042813626917616183794243870093280263344064768675339883934091377393460433096051713152766274069928572279181432297564237427275783976817708326779508886420696806647469204646310230143321411160107493201694155832782454326655245991395667346153439351582920543186648480488946536738168480101185852502328601454415827716263446563720294410751808998631286093457209061390437183157823262794778215064541585127082333946227200127719839148301848363598256226406325957693641926182066191656094103146725773698313760411434653344504000147403491852449839109584910290020632468877235045600106805741820574938290073090433922589586270092312228584231443380242480471770620577487854513027723389363715648659369719815758230024233407352014060522444364168158009057639319523126016351718751385686538320205825101874679053322070229506671676821606114897674927394016820811044725021502815129128443713294504624194852289000157134911253334894535800916819073656451368175700451599328486006783204290591244337170344004736245649073651518201689439065166484335792721896316469761615110046407057632686875278831017275231216831327225601417941996190253667923198138209588063526599647901859188948262442035903787600125476201406331106485395649854095605795473492576368452029691541690389190652964891017548238913679308880938454662553946234223281747418878433340343198442879973792587480422995112648130699612331701345380116941106815117834297262896240936809200079563668235261618827811905410875713714850514420488553410341546740075220245116138940879202632618049394294376709412268764196608130498435574719833576992325364212599759004390642285061671242738555674046083729300509832385987554171216498943499221274477792066231038379853179298837404266908347076312033898625779428170594058761685729894620845577553476175735209211410910389317365643226021264366730238343798345025518719006985678829234620882799435424327487124621205843839649563232043070804787767246495690117701095183622095617365185708279180820697744128944839556187275081523593446877630690608758469651723783854087210311160037336861587137365652122002102709584112591691993663265589571656325227970129765968422883073174563351266224745552763959844455587748191602043536895496898687984313420528406583356862743722172912108563246938558416363226094431940208779637724152361507343019941690450344058764541133453160257873744541065686308850618358605965366274706611306641038455403310640473977754971978795383867389250184846998314888486550691025752223580904673865570551331132695261638622533244374253104282460102553724180769697304413839606940913561267847468688589461091710622332026169325977566314659890491191823390698536865398895249122458016751382786949631688270012663775711469878178104580254029996681185168000284293136478944474746809267603479421489969672358531706500122434942089689639844879443681144226755381994302306430896965491309145294043348910345961072340536475684222981860443723167938500731249670439610131552328439920731525298760340125834373551541433695217807117285849645930178993967751888281226557329318789102179321953232241155909688645786736908957897125285102355246593118644172808943068949736824911320919554587177255738160631031934386042434175927847292270412505815009669366919350208535531828478753687168367714195863426336683997416948313099296310866464597156153920832109749280970698868060287279406803577675028435842276771951369348745601789133694496866545974437442047284362421737905202908948318499355365943307591029275858753155684628393676974010066798344749896661593423807998726847529509641022922143077510847112271761391011512226325895516275099858316500214859948092344304611428539656185063542563340054068048895469211883828661771778419587890797859623951305050736102076816379802539462680732209779901286540204771844331606991185948112597086948227238282707694643062905149392798412658591777523371236014763639518601017703082361691042023700056746505405521522080742828710301823249494738543813527114147876821889321895629127509138909443484826691075809831761145059967706618283996820892598002623702264832063192593739712994250615574999044835605128070655285126773408296708030328740322696901009360621350274900883652796444792614664670767109509420234893823933699412042016259820771189665655027011062012435357493947764295193970407018791792731067147159273946430431616571480335703987867828213796133980647944847663595798231445190906847685380481412467758625789297536225643036678628109278858416087174163171436973503872209302108275789398918211043774750135167361652504022923197425668577022870483421694155653446038423890993687900178272765799561233254563426244219462231058709805672211862695399923869454550801582728949871313223112716655180388744447678305680981297487250652918424666073271885659389107649658931828626115351198131548954192310523325041346291263321437888339718932913272155765637492163180545380429108522307691942197709476922795238462083211120630388339978223431726984698097024673371565449380387517803137775555597723947891036724712422656819721044006745782912857681047580051232982814383783640468718225355133953156655641496200033631016587609951509213444752092063874136511438831155420782297381893078995921575805789335789589639660669147603047135229843231784805536996035004859991077871774974683996405439812336772523952155930145170066921600784587935002458079026043678441145219478928364541004301252783862107570136461086996309055469637213268100668377646186124443605568181418075298767265318409394152169884124243653127371657595851276773022493918660917471767938935091978830749871731171420226369538346369605638465513495764450980355531017186479476005317010044603623546664210351042082831603287546967818536221475870107400668843362056196547523614110985562680344723758437488463412401650210901135958930399066619348566459044385870294488720199601392748786665632774405445326467578005829843183751389749683361315889975465289508796595635494916131181388494443621099511098954231807235797675963144431887946207908847523243031051634798996125885900050669545406289310491729343034297625821702827869811910445226833549411460804607840370508952233563615198339725054468237893436315169896697271355143834556339221635179236581152670113134273411753131105615167940820243667509360919166663758152060090588908969195329907266173006801029729760452574325877562724329786214833756948852161665163413081270874817656918015907984767032979193719455460025850323295154215886455599815017467942428784592075069820510181012966473348903150142326669272331723707759376503544864483173683416169740595356521776685476333263792737626911486652883267047547100420978458021446793666973056419332189772790587184222003944761976134952591075940932545083582659731556174296642304220942141290067521291958952385213958197850370302913084606786413084710738266889727170341595496613620271741131542277756735147843756651250944426825959106863141649046333652476966705700731730481376377743591461976905705416628455359218158419462860553550513097863097530865103857609012138469638439295473310884604508863269479868188140028439930331001872324259426873358288604619437576793970823239228162377150592266924833605967475842069263706332417908115497387002850492946601683719556159663578283104364281334288673806137843679772587089694530590772045917259241256774875513785284402150112653362043222406080021190159196324086125607946414811525706068299552204885677894483880407048331010559427714273655081920204342682856919950502118414057984213340193309823359266347022378517815728383761426145195539221453685423918699989396916591511598898274170689691330481354213018180609129776861131106215287004780031685289984654530059701035186605278504859982986908991003124570809270970277168472883909730669533630567627397093257172983726872819186973098756717233747289332638661413171514327920293135819883963596783606628659099491769600631702899680408143458793025845543360826543298451796796901900679309387896487888423661587972707025916084378722140614715733820785317526636146099371336807331122773822883052750593147385980595553374817985600817481077334991143980230537695396509742601010794293989322041477307910585575661690916578616325141815294816492741735132403832231647738932447850019619240030622731833750783075987288148558681218280976811954074101099281121030203461037942331622727152165627717020937519733133954296214928104457279090227434313529475874730018672715274323292709828155577710976758059100905365897405496987051585399066956063043790228961180972044125185879713781586177420736641618485604121743871765886789387310568302306999835859098497977614067812559130241953155561363991445016344227208384145584528209030593287447461021073294275145176032875355477786018356622682630138234337205349200067653253807966206672787203403788755479628121101323809573491370826583133850549686495870541834222545735233035833474877482469749103205272695513393992553799866774406556296063121675490722733213778615561610764638730485147794259593606971483019759266221935508223775715167829757445525094314333340331790555199982143150813564534036662993535826569284005918323106093213661845342882134629520140568708573972558234468770003759236858720643720358833221810890858986931812022970019172660593994608270426715235645914518129078209393161917539358652045282384077081217561984386594988966706532747957023174295141414541829574631944555600718676302742035123022628757591319800256177448898625233987808580184910126303402936762250596719571559284485026397775201789278180434838298254083782712171323927371703257593792734251785567470013681991580333316627896725520566294925706438597688912092307720244808973622792157645720086754820698155463058140349080671786754549903025439379601876746327209182907478334109023795240277726068731556065335773915466420636328153965392763512171986286584623002513609712661673374560389590932136138584731698549914032786445216305580783207688435327287143209916175273864824302772143632236127782834945340481063162389350876538370431635358589490616675483989034121192444231855952866848751269840219433050321128245417520295606205158104367256427768595337131363303671292352578280448458349044605424853760884768667999415026219172774162309518491896550743010122295148400232183701191001859172598771070436677034757087140120424283414348444558169160376614462029432350432689012418954719079878664057773222195754561734896129046410823918394227689995917503389908652693850265374514402870219086552117299894160723390569351852118960294062151741799474415611104650478608706859263147819176605198708847589986655878866819074030213120021570403236841038089551716404418929328095102196271895206226617263002226009970315708972453116077288391780303576105877383980252644692933499222743348824192262860422156305465344583720987805686246096734039633637401534841154907854655575236376622104924284715300653337618926522102713932783324168658551843207162580936374036540939103019911467100311967117648247622903871456446392204355543774071432674780184734557727913946259898794730746317911129122315336890292752384633323046870599792718281037927573021457552442300019796219278503936725310496299500898365680714555153597308347191732770897811604126762057080008245190216734815169395531538246689218437809022487493646429417465064937603985498817249340475035307506769728346618162772357487050436659547235601683729396078002044241345184314139135418144190220820765674996307836968790283167551625239541230285142370352481214714270537432045813366385348302833081250807918079205709253205935920113808933052404642699853728139550665907308414950241577464052692645680858697650557187579239832176574914092041292210032445208836097463425986287094752704347558682536766843953861136006022362801093865818581381651800118664128356311535248233773953593701120717716838260303671451564233161480754814706937382890985645479206597985508758284426634009438565008179498313885140817390965666440615652188346305745577993390347109467495517786593677018063395138325658578953511669054712694411983630084246948890487959993416240319359294930060198804510184830786623974543826457068542888020113329819930593559947704396819685243599059245825491173716552581332042464331913014097862810124012634386833990543347702823336517021503677264997638923413029378176321194380255096350551102562395324364161233925361707386408466784210887324697340785213205580852944451368981959705613070203112941127114411710225680169222500493884120335314368199689708210126809142352686848737304967415381728796928510794861721204787792769594906713854347779667507275373533895713461836403514286980183976562009151176422319641152575789353451165866770896060624959554718216467327701869632705968349889540473119021454230627920866674602273621240035630186227946844971185511797327009497303045108807243533325187065329905544292756492381685048614706064564028009940732174121659222276155512864788166266240562278436113006947665437078158043637281060357673705984331177571742437319935211369848558181600490280383566755193440053783210668913547162987415120036813780200892915556723804245948638222135110728786854074210490207709821834935196965924281129822188803827213416022494542909653226360878030484351735838226321072923773567678230827344734730218391820228495283174174936002822544119947861754995775102067399874667896381775676072132607891319047434255609880976922007060266209125285503145618487574012150605981909522606143137040956089880861037566683151072058940665600687828775868780585170182368776737240358599890451419563134270766496249394289322140400724412912795591962514157575743173503381001518394902162923973998485547127582758219159794917289832777647331081874712303375044368529789360364551338406664034497916266208265661024336308159153096033002883018117921407128466578198378040478787556672803738996038401575035589670688483774332282850469336267861481095884206125793232268506259866270672298282799289543499838659314549760961293000153705421519819705251570260832618836903668936648452766890654433277096837639846687157087487545704116184671779359259656111922912818381636251987895836384059130765733496338808503053689776362503515548445647630636360905979245303871160510272830009065088277968094221864650788240836488546297327782692855963048575859459743629651018124978705924422843429740875748646991215171994018466571472977397860798436941831417354316824392073917926245819456389916962226989631005153777194238976749486795237671521337053620961042986646389138044308462487711439335283570133525660052519934984023180027278581368462581025397388997934152705656733159315137705146656760666163959319710210355809265679093957078446101707127876128325388002132546825993663458168219723184629186089275332200250578339707346435650269939234555629364158680548279632006295934103395584163014202063467355253618045197108121263692531994691801347660549335861130631890538123476806705969289951611569803763940962538416646465221548957202015930458899507107465077599660927217138689333746303686471582675090059838017723306539984940915870002267261752197954397254577324241991458992243501267094249252078981606556286903656542588243947556097938625254515864864952030326155314976360388688987089721234123964845304494289168730607701526846464922633385531953358433264011178577006117432115927668959534264446806738462188041450722535694979777094408940942919914590864840362590696057431420156326598302404975329584602484611624550927728043861344913490469509903401109697537758527628860468675703925938296066555786942793105953731311654446750118106403795040579538877671828468326065105461359461856031356222474737514334976181313844248688719668701362768908986626266073197270215383222838409334506903976806786874758511175417874563598543129631150478626987074726590850202392480130525229011711785150963434227120735311793837268642734053913826681622053196950738213502377571616972462844953180663136770263248761808314162842190317787045071796478830749233053710176410399232359269958572797533994687718575322542417539124614751375318877962255102033015271054160157481466392763946098579368940098968881510487029566648116734065684145040975788464947044492845468032251531860816272501287375848655258427172844273366476551105355869223090749881375711877753878089475458285881829145208319198683939574401571292514353121470907535590451311052106233778056647438833538664470990614489251384176703068312953871537478048282229862742657665800521023965268288534094891642968540125795257417991442792072974960829595415289659054787863151243928151369053776178525423069918631522205290601481717580503477444864623661005429286195748122325811778296806294357763951812378631391528970417889324848104085633068104390314363625899680311034713646024460865257692491179802198902140426106644919857873496845931974012035639669773123865428839481804882975489940442202516119995400487213364877701331064831057279434939018554909109230035902027023517740179620335079665475354653142927322967427932872928780951075615904143380430590996187999696837853295428372780397812678775906662212472503294002139299351626478186535267905020814863612042381671040244117499062024738659788400423126007819191130900965653029689315391498394950352589074009601780438217954000270453826534601704421876867453047558592899065634490318939596162441618714851424627908783341040786525923820120531068034647121509250805639225456193316597828236577054577658967954634420786014512033498349414046112739675306873352379186289030738695876773353637837336976060064514320627814669986283039564252715330841970247296718636266980198364339033381829981491342845658959553712022097711860644520719371194286928987972604561897053940477964012885743942043157236024141239278516986501476379966914233674457388846599231264486795602429628231829574263784132537895123766026609801583639666854063469297139168494184952167951083531241797252021560589069343625435307289550359841330137999072837130815825391689043827586559001296167013069044766790905084302057470847433024835665885233377518553262111111297150174200504757813221701154908908747124976344485434036466715559866722546823078584389665262960878760585942676135229716485116904002535071280846395184666546104304657775074025401117108504260055621550783061124184440379739109609694837679955740647887453203870411982419315606540018651254557135626873458118874219654612002317664270358312120301082169969490756521335654002509901763922836606505500403964855289356665274085765912229430950579400695833421511777822291484117545200298763763731985745566446325648079328121457131572615319653227431089910600939678273990441845883053142091167785480758739431424538133550790208101061280530742406288213307153342676434166730574944427071731326309554856404002322316166137645218016705910083711054430121056596470211461818319386836459260980361111229955158479143636638932596831680079801878524086636423080399326384244650880347997168961656007569047104309209752134159041758657977635651774111445667032696831987288020283014138880841870981544659639541864401443999223821128203504052141978028164130889116401303334142489572254452519466954496380718126108593164545313890160880638058703049771604487318890931459140781080113962106476522028437902030324974510610441932173474538478098547895014097635136715306796976452446466905198350515791174409861746554586733371974910931283639839047339315553089795123422425180908285392924568460947428091202075698986983581548904217332130321232099877377473846357897551164603705681831174736535869748280623375189257645556040040819339379057749765627930705536238911479889336131326048261199814251598460878669995373848347716096583170535598789007770724744574927994637597101226577051806532799417321137646651493760024637079545930870151672508902080616201915924080011651049448700221502793262733814313284489470398461600636047555061812046201374178596529088446520210587759672432657803803090534271344037477933477228998800860161434019441834931992618869407080189414385571861802397504799308641875797116539686468007779174328331232817721696759352623699760409879682986742059757556605328573859510013962696241321569989723948451550735141259696536520296302095449171156885733794420278416363229952340613841755244779695643754191588878175563455869604966345486121924388786831521756803648155724203360090282361883935811407709033046993581688198334288804234648566385006780849107309494986004958163239444230402274275235807368229521891734206410914615969434091530931705687737849982278307645030953380600301860392336058273863129165263522025018186221596229631703905654388937412181564754599654303350392626700100919561865136114985352572548203411599278283890887165609341082964664264983545138797572814580337484764609422681779215224448323818569946864889796506748547003195346379191930000798964991197819197097969990462479351811875000496726928460320208606865296058356005681470417988372062852364648608203572163272329319829543124843994343151966503897313712343364675207811231602546740278369682811732895578812883406697563247320740426358678454881657379573761769146126619160475450519292880320769099689102085962287865625199350054128385915052291946395544550925683220823299613917040049585972718576392686567383938759316023722704243230006918508764030897602585114763163982198061580067998606472169352899451386506027039460195274009427031181980666247144921440072007373528617063605523844791376988376342782211069347906005580635981198207297978983541688322283695906570694624761283296190052052361417199898431856022031301519349718246857604159005704702262526736966999371104031525525108439626268845177870109744443254087881219994244144125131843463623143575823346772238974637482204874997410098828604262688895656587977299632799320342941594684579696597606842274622693429647476654529002694069413280128224273318023113866469753589425454675417810107873844674885549167787151640610704532536831267916642112702169072585477705385327046080863747496314004267814612785595280549684434482044370235424201313812704348402466848961972871455167365319805701933180786305980536318743430395950193784265515035564786560655019998163768900572418567655264210215929921655115325461173838252087674129563824903748803749155162949362116160492035062470555039830030569862561781787017265346342160488915101005777665989147649680335658132221036022793307726816697590410570671358918925993469397640708622958121721936808210742001248968093220306160916019769625049933324904917668389640348720299401626838337420989602810417486703924388672464822260101283914361026088806971087056966607000904145616257653567946041450153034558357073017499855147326271296254237662945863218429300981699954614079047998074449272799650266585666544158123505888139510738867660727274176845225091470092946342904406373169962243834721984120055810254375768653467052824949683607496389854550852867333616806313626556872598129851551362796146098608477627552672796100441387434073624311980580581779497843290385541946096149782540108937611503241576342019291216660693706628791057409472614965680267201230623762542231315484940323591630071829460078938818026314635404562970518863785390970313982634241804758964617204628741699251051789300111818632680690962129077520951356584020306204286558070744051740739121385666906263018262127836405434595536010196904079902010938736471957122529523016652560946928927142584417559835707566895355892452233380617885462642134096494082265298049427020279270787096904798266705300723042349266962090390886678407251609416320690581964489427210655573179366277599300032983050980323009482371968917451689483916111738498965680242549477850095257029862086237415099082215935331687976146133440880372452077968921535422203244654886498341198399383826815829587550971887256124622489752011842560096051664318517659368405004834266328063428499859834533740392539822189438654300956193887340694737801144164998388437381363081582949674661653872956242067405409117657002814006772918343370123313070316975338417055182348325627540556502147829489126596420217319871926384342799766154663758475773892666197584154515499722994348244745568353633521009942689115239170975471911770616813261199573934229635985585729912854572385540508806313770621558398212558421551288362916708624384903486967860470190519517274937384365480162518207196581708050273438336991695320875113489185641638583099084741737136562093839352440434498902254197888089648854809837709775155202101915817458245811727958647697143802876492573613724619745823736591737983249355620213927751180007851652901236463279666825481232292688862741093981385991373948299970783276484498753491386894995036259234481924351974222589412919886730528770413573167672321345752345096258665997783258888385636689690594827104216242120608144912644050307184955315901008355264585810707798770501129435462786432620230973924629538380472464169402495753978876640966020966284418387035454742461482068010101352546089251314423502322388213246398195576624747526615999758514375725775016369295456983701667273267468181928202600096329623087492771118658343774544410086677108419682790456612606875888006830372211272606936421112396703745964996086139471298289726515289213208770089635375347594862038494244580752321622551967524115786915769407530148473380916876454986648816159017786971225978998965186727894986595501858964989402667155684030849969902079784397628050225792727407986598559599022256150174294149075660346846996819851075297082348618162558445997201825001854161486762827416276047754674249893320518074192307890200692610683824535168715506092011599918449665188613967614553844716055389986105272112418869561064324625073692260729795331214537039624352368202698937253250047893378642511703295182931538159862185974842309205839360472771915527573614785534200070597360890092548858285941333712990001595121239163226879468763352985681305250731556279751105389255135775613271625976785553048929714999457940261946153786227793585544300374158376828511015583441411662471778453722237875823542339001562931468659627538911701723874549376104720913884573741489334602812624694894119243800606184079100718661574422264613040806419033318934031865931362056932448854989892956732389086990142023853795020180064010134044150176144034679225075131355158931401867251684987170945292924754642517472239235093384133493158998490086196114641798397112877482772028030630907312470834724727772160582476295465013356373053751682383978012665423048611313241760137125583396798115683050605667481603280225785920911135942372755140996328469934297568278120892850113044189693618440846474144158251948141556442202873390159798563468819463530224967805735086936502148683221368184898224073069694888861285907192220166450284730308607024422455000220298164024578935939980739873021880816990977016690173660096231661593638333459228977261970581697738179633917319855457697950302306367408746723689477583286292127415856527782482069738002935459731373666044057824862668671288717270941064552025923130966544535354085065547944242447522527531842142296715729153636533315331675727895687213595260412250684926195031674820517527169911820008044673034328373861638241022737785492660186053994263720467010430946719943672183860908165592935121282159043834364670671227292180933589831042067854743551635360379465539923632912833819682988309551966378124824620485202319888456304168821901200137510290538477740218690242273510475363256529032913052934724562811025229505090686069320338783942342947943367137464196579867797570306070676792205308473127116560838532391544083441444882264421110078237411058607678873585755985021543223881276918290469410112211487594968273576283774998036445430411269439368987936700520948186567253732974290745417181550744153922578474883939216097510665111863420720345931300753027681680910724599333188001819340738168574944889828559805315756730349110095771264036692619235434158317521353179163035511249551833339171634530752005683726035717987452779500642326745177652315871531355849953665862788996518209666852768406077119746503601605372226786227162799182214243284632370516531211345827838324657988149409862233187994981957024443522113092124286756359131651610511411350318278409454077837251977731307860276918279694530372898677212939740419144439341469755627899285062724836772169526696882100463412918779626633002907011854608118949598975629267679590038681755095926979171559901961337105671163858890741306857041380477199538195770556690698581939196825543127035658215834214967388236166067188420663123243831401129891637164250747811169431460523496136053916858906118467419915708267471444136470848300634791232033511327202757002917781887977394644371598023025012358283874025367514506563569337812570316891653770473933634669997193599147645349304655396424992817891566485380881056109830208177226845700257552474349565462318304185764951348860286065937538546085462680573871463530174556935966341595095240398433011682763645291282865728357445643996756673707748675673058669724202854367595117916058058042412066964845995561047880427187729762916508263973688437990549649712895874999284261438078590064169279538163636670416695255349547466194104873202375155999814751111254373109908205071995769488126764575304448904210715871203412311496475811051614456417263954822103276111922039838070714208230625665234609351529453468219347084293461336820311036092343465727150034979079645732284493856912515194068732400693775566972528777786766369323062417484829417300736179559769834894374363461626396492907679790596126672668537350428495320111072620328306728487224405616450423377063538029807058086764194996712687368003346549231849812278808774679131303664091077627285813089255955130734095119521165220808447358503786987846824521170491507368749490954603957722935211606852590728052113816343613241711017853339856281611897983945952099027581812543186883925509544401977027544295617073364009848958070165535933061259941585231124313760526248104403424492283377193387727951171238916613376211437977771275815164508194195010105808643999143446176203130298707503459209304604545171200400844042459925108947951274326431382187451528829483053838462601206385809114753881181675580092140687272741795295806730265124410989886319018488577334456864744721207783124637119944252837956927574017182822724439883011136646799590327213256583861861313547304868406149978035961357429495624657153426572940199723981904660129170991632160465731042302412458265278900521636839666910675888770857441922103132547749066749830151225348583206331107610640396178731374127305007053427142394114913861460715315647264766478898387151564569239451891401564471916279561369938107840743312949027946507622268518908611318741260211230594932425751014100797225966448657329354192671161405100172161962004415527478451207673354247815853930050587774052319533337471752866933469239668735462699908274121815959985111897008471732502513860400935796443720905736564888714109713620982146302023424383916597041745348310326739650834528602621935241243394761521394112597106769893757291009615617528444315748102925487927546272076329621030412748657091189889638890774033147306975476081141844008793702152510967288056809941030947902862167352163676557414344441523096064283249893244959033163170309770755967552884329644537962297392270322996023375743540402229233547420355323394049184959898119448135708669678876593031383452347944321165589150582348597403437696813023560681658915317361174306836062155260325441133870588165815928293608188152593411965883705619770709219936078210559324239970987097818823462018319797648743612616684402565795215513964874282460644820748725303863604046997269082216850682610510510306917217534713203346549522692887786686365315529532221328479200185833637657794890276707178075447680232463759636361657756744349937046671175498118229214034083555427669996969932422362808574421486891358557929401949470904162435573143379840296155445790658244444003553902304063598100582558571722572783236314027908409408027111604051672107647859955959782993890746125669342132243086831949888591267039434203616251445727840363500084106741794998398235134464553482012230321712584987698232357106974313878920610570356876311899999642168294620942945847084544858307956979337014606421244480271747424702988681791952186678518202034407371976732073356871055138922587272642761554376216814217271247089285068613682048977778144041659776924685493279749318305574965170069991872539857544158239135141129976219015437419823948943758453379929742456506161784679114363803191461666840092509024796025040077469986995523622979220817531466371923619575850489955436619998946830700362014821292638999875367718042574574813208105853291735424882404941496980220136283131950353829494044663574803255325838316262316691667406556798124244309080516703295311516051787957162241633331057077719181609196984157942083009621348286179436770273468303830133914948540521708123057138344881431427738043965451025280859972164787257158560535686775873049415997181211621206633419323169635452526720468573046825802583188832594161472588047154540321230186721833013761494777048891972650839209952909078146184472672373606086151945143586617205757971691881532131520328447724692769170514940251538247247463707720174191898085977756015275888214373569389892159282588532139379676076957113544247138280062175102297248433295940801455825391997385750442155777090165859792664177634266360274392782907881691269862831401705840595118483351322742232525700515878026763579921653342710933166355233912548219586900682355750933975192658062064297245844735178990794462917623421354217400695168079561242052824369786210238299945268183990330838662876914852519229396682388808637418240493862121273551594998942271087784511717814209301107601579246593012457934993653173577780505673209347075905843019865368277752310045688669900691665770100706830119498795300257710301041707914021115939101015749582655444571318209525757492720643994827187218718915648616136274807524453935856465585105042042892552919493174362169916809293134443010617730457148810215581245888517222766641066911486003699437163395871292069738565808071175809875353550192831850909941318900045345556344318162653021812406083504934035338848105277229234156501347201202412652792415022094507417100758713239967283150056298724315786380165941504359887470863726302937409270344312762431828450693441698138314058213679604380171615291060573456189460731014674425249792854292297275680571864359459032651916781802141111089621036478649082551121812667025297955090111022238234140221059747252137318025222178344585804415553268940946958478847469434716235400050547974672785222120864603299660725786525329954967340641369024140982127442937327040062324957310297025065665019147805517628078980148088897065263805977629522557525709820146007306859131624507077985374623444434675967452087038155319676735232317036339299684826561137667396229372201207895245849672660156850510771913846390449619485483685606657638831923111129735941235952300291727201356211167350614689294449920494373927567546112019088005711510906717856933320861454415302047489911701719827049769351616296572206919241325865159702705793093131024958547114208386311712579403068993497061571355807044282460483374228391882760156014170200535510561536558025050807167113394256339278097424277952968270658677790887459823069112651350872988038462109467367512793780199093880219535434598194073565941749345886127311381321562737589383035798981728758905071968983206116987197699532921535996998960446422361036454299084236317469090377825702076040544034780362723011284536831858461952493643005345009655629158979668664016727528290727457436484687515836413233034392807586677481946502539562667721642916279611780263101454822096404595118414149183858349779239433458846386887235259901479150142834646415044344842801602973282966918101082119875385554764337419011389054460567434980748055538377320245670575552958190494761331441494133406884947610066793976612184454349358601388073580850639401065690707857065924721116715028717485220917423327409730910320774930759710311114029296176136816323002945280043788000372924299017772727798374683601212355545949739390699180120042453628985361462846066302493754288133839540671073189766070912404710056370093050183499321093002557223891270854823865770108695684454317279832997823173221049970744687762913832348641736136069694498004301501734665332434345481658947206681017476644340229966226841523480343640780284507240001055926401337327318440831846202907434551133189038299077729757410354627798384637613783108963747579618068454057468465279116924478830828430302551617472449247382205954339715619466638644926515968508232147149873333209470950186089195017297625448596240707481517910156205997349963489915655683292505751586959360874827873383425502025488115005292495006504116416345779138873418766336893926252647480381507567484561845464679292546773357774555529949049948776563810099461579311295207218459281405041951923004944035125236286610098385746720086247223587269946422147614651774144323858433729392788801324073298422271604858142581670704652800200254682717132471702417045667669862291714595422696589124468407618724164080161555810049834346522192508620355196806377910381861353685223713229394604266568466748071724445307716423973123131100682174360187762652919242400568477139889813096267873830708351455966272339827758130365051512296332663440304505382757198168483938652840043036266111721725290967886083975040270725558499739589591486736735196722974389817323235014321552720782995780163070859990631995669491733469129728294301716759715176972594437278252284278627082731823826919393429286558854943277124214488087436358952650005836239214647185651274945065376534805389807863979123916751485366194751944331408868459374368682442220068644232224266289888736336599318473329542096870383133764601160523876699259792166144944396413136368914144597875307634207491777250684093432532845890845875349167610992679904119895423613155974781486986081946330746387553833624908868001122647756477059855643678671142439932834017504618127198041109769358991030520872597899735673305815468004692619899208684558126460421235199775018003066195403118285776107934339248859498808043964590634540981713782035237521497354737499359990203633107568082701504444537349376001770022635100087282724854508716613237360043229230851986205455552281028622858567856233082521386792300112522772274860113250070641121290096077537131609441402554652016016318066533756121387723316604537627856653409841126559705223379224987233884945840139688371839997546859523539292239389007192320436875095259599436649700485915165210145500426939018442955428312680411536933385693127271007374535790116319641552196710353501467366269466673710613974679097484535444684879205416062932995025751297093544805226220615710362774230379648290466261479194705408706766021926933122701004433690475943054896806180323107259781319836787434415545481903927884121692439715106987646115176417451895520160177830683894726075818757693954251931991495147625894037827266914665543094130774013443432291879979073991009924754886829706894239815664680801389771361950876984806796635751918114207864049379513103641423416525409526685586838721412237392104349540598819515104440685526573566748206088719081558509058429860260415273010344950430137495816193931202504279571455373683764209709324825036661449290375428288863047015526851565075724807115217193109578793494444545267694909268661125564028655976064456821003803413982165752433162248362885498068730037856792549220304073966039129622549722112087166583607082245192132648368876351313313499920326693957772718362334135821209285394762630732670975529742919007195998312984701364459435840989975807528498109061358719031399645873918283367747931953933427412201379506151705873602607411124412206261338668082510427684058087169214181043481835763213085771057234080072895477754537411506365747643708191853992278664688257987009675102741318713667850552553578809964151069907459896050990374867897445743109115527902210770328302729056701843379124845429155707506967348176693358309217388887481806123541646705468179005748256459834531478506124263809570523796581747853724194863639231626953003568760676035647602932911622372086516262508551011930559915664910275573552229080600252684709282695558142018514553646470924571621857177936689371922952912609118537791275760265620420574925166721386055104564036613948253083111651007289272455891581890342938393527472229342170603806059859402639197297835064354144022211071996799071054536040394917807949804214963597085345139176498684966250133725443090504408151303502357966581546605237053353001483624855372736465996419701738230856752323384887353409681080050712624122134257182260055062922394339451961511448698525036343554400100224806577856873303670107311673779563710158955990637252161627908352584011777443634728509964260589290359552223734557947352589032455994179391478673233801803298956289262281097444849028211493609130121219068639085257342898596098056579976514931617177656139877611209385395285012423715277153342866881191555061605957489577859215010391860320219560880711778277277803416057872720135801889848886436306692013990080841143831836927428777936711274466788649243022351876299224054583209723496734227254853559637657116965288086696062438619477516354365339410783962408148558024510608553350971649720536598467738985183521714879204203489585962486305858292690935750947315786889144191420203286540583423151252808442203213069418924365047143713647639154923182733337542217036848804691819427515853315476623839311887542903571840208330452999128111767802165327577528073235912236245921909048296566794955145676013629740476548596928540225837553745000108128645379915570157923975230156357864844080876726432900621549788333195504192649766867415546731154844015330235696310303149936202872993876887027849535867334410685705967172744388823786040144206569735979987500852814000086251973138002778059393544932101677283101167279053905232477908808723913519390195695122748889964486180585455028148845045432354906469462755325686446424094663555208891941507717676077815274514165741265974494970717610424654355212838736016285273367431137873020666339980195805365081171118321228060455061932995732257577114519143455190663488182964396776791297528891494848352473848598716987719683094528529095099194672559463628527749198477302855887972148077591771059642786207383007716933522806943750451840365871002747693881617240671462640319246489259141226853936587039549130470443523405024269338578413717967392528479073563594915204937073879726558030417848462823214676879290328933074812607958285173490487203635336224929671292064638475838861347876014390401263111353083442583220724554700122389046594498157667421183039336835315280927699561792477932291237658124073834501690020030942370604151810632120345213886057205750676523486481167561994068286536811909438760831539495946010882143007903004020547562228112937813670989339603930732386809267138641204988700040023286802425150601855846890022718969691942581058922686589192042795159758191678861426546524744961683508544769973084707767634859292411916639346007496383523599036595043671791187092670254276595321705874910428122329839480298146421920477262489705539482778146456161420407617219215940730417544356673077989134978081013218399539991775822839647838703519000888396274034263108298293022701982629780631675313064383714357816073079228294963048184448908151139726510804461161099977556700924774485552768651011998732149211019178196022114492306394720898722722734413729177440449711709264504481247521204685382274864967766673618296187893242145628904464028877983969240629821801216690448375528895391317199830793300241518634039239084853805534795601781243341911326642273049388961677881623707883091896711209567008222956012061591490373441338792505224233302173313879994142798392420755208563844900204324671783360040821985485242461535381324853070237901886922275484422206123438398195620660335142212576166479765742311569913330928361090399930947475134797126097110696009716040406785986282326917669793479985443720129386882610018541161282799448805933867230500213296727309801219498489651280468746096595343399871595190170500514892492590051360233390230132246114417744278301856695716362729989738477518747497947944700055505518265137095458130314317379535024695873562002939320573888588660106774101838919342123915626222958493508391662559135805054550454804396922992772299202341456075362245901206325911602543365425189197976474643956746630070082333178438402327068975341070294891429488966049853556031059738250023137448382059603110206935812185384914229849140664558432828730199736137400277025642674567330048359720715915077043973182750021410628250056707448936570472794145029649471849551422664554253676146891965602267458720638681648746031105287552401925793529315054075794963592559048285252219389105391805557223763682269742439529530134480998133532284814344700843147974660737039280825718336019783486347013599168908316069218093718479909742726129276709391918600360960554946527805709815492940314400858603557799197054762449879014518143157660483613026896161411362053141608531758159243338260693307236500943089472936958779203827745419447922768821810806708935588991225954574683391797961304885687080582533452902386521179102378601446469137637223201074798372164561457692649571565658406254838067115412915436176710593214465499122285196088802014392154706026375897269991495086688804339113634963057802636257794624468700678008299975666505329007668305761813227093092427729260190204036459262735308942839594705427320750244986151311438959056754184474554139912346689546850268602290171693141947324043153867708547926152893857327094844689320958949370818960288515624797051543300568328046501316912318113295162405535243192814389596848605189188809661804969487351626742666126696923617270532937237915724122350678282455635730035556956137585323871697625288683731544701940728239026466872526011414156128814659055472815082679997216016913670719590473272990043684188776500920416786707917726379829168009761267061101181931800190947980022154668794740207539901076205306540612470010111301396550887819285041900425221341599808424876319157009845291920602191934567110764087890220073581229730009055913627443074629098705849985690745071388510717010253554905349488786903647579233261300521545209372490679532829017255906573105820659260372500170271794104997077255346747829922535078258755140609269365511990888675938537819622414899643969773266157989113970277139834768986713163146119769190816416913953073316335174830809140333113612886355390236558602899569808870713657568778176374687069322632015845208204789389139067056050709330467064071302690619376509523525753139583350000857226655759515011376093230215892120559514053512177777305779644903834706719301000916217780010639438364762983402519298562543478919427187148665486121305121630285955619379902696901083710940537344620324281510867222280835986966661611283076011831219497601097343747666644098341285402337151498045803011257603254275116942463710149699697264909175708144415530201742724239961906008734903483997356253593090014850473502149182518346256955048500473242368689275510680908004827096124333738948534577325874584124206379958811045819872963077391858047967479702329454718280304817255906340855741310816115996921134396468408328711944989640643198509904751914893167681028070009631510111740722745212279342667593957508516702530483058139405696825372564463567748784479695586325498547597492681059803951011783875609530049170000378515930178524319102889352185364147414325234506092001575601013959548671242378760766705349254060576871764814505103249680181382422287022097914948348764134441453854517934714462455850632661192831295699596523100064410851489200228716160234123145776939201660591564770825150572255638673081832598354461883810634856363724102565470062464955054707169434039097638911072394596858968297101609343170910457829446612047829459118221114311129149054580945444254578618434297946910661112266153699986569214826849181216456297935385941608385998294376772994540856478999178640345872940493655720955231728679633504236501817529887227234633160876684377804668361042108884124556564860533389242446336164209246581043519991831910188529308500379280999345255367707201558859703585883045594643458382750848668857817428702779743890309765796345555544015001573269883393319815680581475589005653101617473845737021489916694936441578240793115763748034476761200497374718901429523285916798499398200753740349067257395890158675550770986934394374412673299653815333049382091053258716264495639643220424148107683808438548158366126015548042374427590902906996027093936775005051878464537202961680725795716458884816498341387804754284411059159363955889618491090714800386694782277138861364469264129033232668527559903611707262407061326249500349917108328782635210787382532378089882282052690500749744965443788769984679196056652935443870483543354822550608803676699881351676694097964834438061925714350511503397939123640539930509963582675386628916322305407699959314378207159757929066565417777345205050312720807530535889866021097163490209596331947797242564182214563157241969651791490197449093561953934511703515218674944031038645684086799731756766993761443977456219403209812264645979177533785202697041208020449798471324066680404903540163163075695315019200213981969256380697345688020510366228044287999138480797747535848265545535842614872785394879176553285011834415299210496986019732363760933622308282056313786522074869913710324279054070314453890292279417536038506557351786138348453262133137535231439187854916132826223464197579846676587152762284678213797722157905432919763199363653681029798485134502551390830152906072521933439041783534776986202923537718174793995337891900950970236201898035810131622671718670624044672314661398360418618491948737190130427925897925720498319321259161695676163178186212426434852298993502049868314909683018547028285206972954800614383931644403647533548429779930575440022063716764415509131326978075341498925600834388509114582141182109790585106764594641380622843090505951211738235746080336795739988514097363427521086041708476449802962993470463402289292445218555216305856855269690740720238421486507195992074565960347906878529856291997785748504124925578326757338331556579341737186357864563402730536923284655836768692681498688437571090103360918514707448794207785550969887441887032864839614538717241558612395911528858170044539857273974228024444377857257613652528184932919220687030384100398911689878244655857486822199330612784961274374227719078473350003087513201197309425894328822522998963346687090924208858407387824802291939673030891260442790558963627051809467081953424039311869651004812888317551523464397140468268297562890799491706345271123860101408142807254132160719371350716373777591464291992080548344786425062009549808588172602595619324501131002907311307907038423530417776561947348254586840207739295570806086618866963738840811762501112377254140599973741024506290832273179764940442674259421363196348270756636905431881583178855636307005626075394672382405891922158518369400490254600791893725372684708973144623032088738477616465771310445310283978284511188473517137663709282247585504132605999517178956795260699252622517635288384784835695436407343844205478938650095521045022214439445927407492723134133188277682766949095023150676748817339005208021434856247559712276439329251972090868254601324158476320123793027210512731177767065033736846970877697780160859546114939626679224701378704585234796493521154262108016847113335201902430714845530194617132332014831500929170284224913335717177139852944586980939345957199600982011945721006942646799458376734150406184937000492347809352795065690085906461797108604502522009340634533356691491963424842242122984797371008833110832665401194016828353876768790523388684511941444085967480866713985943235144901895163518689335104568238041698130624498046381521562071319682281819742513877559880542627884649593336778469847307168870993983570990203777480058476768662454644929743831174815842744394011467499631499281526805460592863028337099565823117404140764531977457202237190601682081427906781077870295021414690870398192431325142632084653193389731612956519310363705584820667872939834105042961629577248338410186583936903285100666300635054810736432464137930899591224654819220828364021239253752584409238236640357072819256185931184502570477618622037841218852570324621752855187577421325062988019159670088470493073974200460863478294113073046377347980603406583019301487947223114969345132705464428817146173217132457480166024353732335403848837055330202040740826210927461012935520819458477186161511965856480994624082243418102394339804594255015704985091205666616150601602220708020596470012974812617195084065433043347746865390347848691274284929414104931873667040482561712306447352577375289450987312697162555456725556459731991992353204112703988143648511929535783531937784884161733701051400727511871582298122465402381731737397727629618995427703891415281939449012587900578493194448816136872270252766794041033545179826946028966858012110840067344107546383140302871248416812462466453414764387226722872466897678384948499735059905031414393281257216289249392755644210318936842321881628355693157751957286992102095670379546014533216981210850889908181184905798854335187144816186823665024794979837280276294949611643461372161307164278174382348321738076234937348470568948700463650016559192434119651550135806752322672405652178036384343971864611739359964639403976686791867493697665590744668469720365072918783913856405633872345329722114467021034807011223455017877614223253681466485109422150999321786455036612196859374552042790636878616536004105930737806319912661193082802444262019782972319704302904039607079239998913858876739626854420507221592878117340657428201678273869149890347666464993557426132256581183850728862479079587148085372844522169143499651278635909907627660498597924169682629430946302668740341450981966054380648538614622035523596265792442862436367817266941868198060995410660490887812617161115682944673459856490497510998885171585628223288951581293440284510580884881735584106593114810055180404779473523046754424486864514516843986867552093764824080483941904385970474102551681049580859458801524111107967992771879779252292841889640200758548731407519037026234488996559180841962762583618143593641533748957597967319495918654108704409072632400571592965832665228392325984604837558845724466401094448832038877153577300536155933970226529334555264513253323326343245328675600751287725855654344353385115857898112304090118352168071592494482808707826153323775355322773243684467009087871489020144830988133832889403617904576121648054954138973566186546212028260510509990222211213282251240566252892181985038894447035656433365325233618867134985044371476972627965241680360192138090277328313659828665152634511912753217069619797782305885229451810426329839960872770109460169350800778675681992624576406572146825802387141540569583969530984041141585286298953462264215197730890295626881272325112275357608823660862208297037996136636609720421522334854394857742645062793251864336759043510524642922903084295963260057694577508501715942123740393126101107311787849087290899353027962426128907178896322205688763111328306378510452976136122507940896591312133183655021446348656829848609909747307129316086862458041726602995906852013580961046864052246603630961175999718286212618045562177366157696433305576349283287490494560843677393319639721254220632283399158433551962091096393690956463336530365697832705752968273194712589232295820114096608670685547898517140814073836294742038571146754914145768910487941808386814172723507836671228978771515775746650807326487900769264708809010819656205670724028889159247525785438333310942240826052217088428174420382732772630158726004078712595759713222415948656871573304325917610507275726513790348445335153409292250903216181869633645983799645309983494672233170354000430740483929967886944900312091380734113602897391388923543634109442433450497107611438407237845922839640888688364877709090259472873093747624672054448377585064938088011425701918814145305811675007853187501660827747261113192939301160576939752262312435814753851067104331188658684109653066097785308425560779611445202271008270121994087659491392194436249322220491123361213018432681566763885713874859087626533385483940127819324930222654477746274706278209807318848771171818353537596745025234258817446282740313812131919993572339845901768622305064410118597414462861596722760506049936971326599100651860675186556922898565619416299232026125269540783967719127284081634627851571307718848253856790463622057775016802343209255214255277422247030616332418758815609329584353293682684333459035474995509200257193625707383420221124742446289432849026532390702972576185505454221533212021228399821460065020966621210687101279249621257976808830396219263677306649955056675383219708364420704515339488862739486783872236647891226749910067928608856015126325026832910869210728983823391434744254470338040222577861401889164437053106043510657520850249961274706190354015861684842394308838863561579919323974851968475409833542179511132990738545916805230530387792796266350845799625706533017855720389677575590593903891426194534127296128696709320872184546878984224307606136287992559411161709409508310600881951505476554964314994573012932346725674891733480764088935749562993874818505055643002251091107157154020404992962043715772155313995112436714941856084926483238908509914038410967482735700919470647000062730275744971324133604288765461539655419281436573209228780631462611356069935082223043475559750769219501588458645809739238886652684065544311886125866234764380477004591329466773011657879202085446984892940727402899679193165586705941706457590817024677471749763235114016143554874264936001071131702405833235113192297845860047940044973165767922953104391242590249870989662118117832344736587538473953956660651294063603479245654590168645259638336235339679617444320491960234633064624616076243174285481938501247705171222306092451846500953815116206861865522188858036437952374211023921037011691338291634180835823338360614783747852091866243328360837758623868901151816976187995275266593650540907882259563417929082320251415912143313075938920959098542894924506766966261425107231655044440249295238408754378797691918173216754601983101465142232618411846299257868644344335778073345426400364948581226674340907134752472873727902825093628967303818780906651398061954576623446714497004473723774156920860905163073741625399901008785938631684880186828264547675524360502074713480048430906046177043091941290710040469662311167251109665093349333826949560312995927330554824428472174039827484714087938155729461786000896965962581012136474382766261178201628188621552804429191003758330524116520176046712901444610938464165706043521312476720975677679661297217882900222173401592694500010815438499334787822223640432409715825805943750695582945078427446699827021222251091796450160433463017816594808389653020716678095952471245465569597082679235643254189611223358220517795651504307765362700154843214288462952548543902012588947948900885697392170809228114286357545177012388037191731661410200579490968503423120246367554336640713663869060380953884848402826513520497435363139978061554386107833748199264709982585037073108943383386345761528704106492845540843073643226899884184030942636059359832511277538868976392374840419698246358402167310681674524775589102605416275682026387065485788977346078284587570946592373173113010385150843720958892783118826965629025749375136281150057235885357907994769481891985682835007685301345051943520557858580810343571922519812438382269460261398640728084158727930114131227201668362571272251700326617014913653653880872743155831636559343716415042304143018065840003159354289290667072677125899570051457804833587756616099665747436901573056361472347960515246648703412688738500845146205037758041409374431005697689121592480150681622408928854964646490813641374368044146900619219719433558474739939254925475589770933593023478039823715986447098340936430769252526528147302868919251093819148455120761986698699299839351391862431048918991072017369458164886909780049184740162807353522658651388372335237364645393434014102182330200545338589721862839558074963018615325085261108045486664921655030410031991456886166852364302426043799664123459063869747067304396068041871874183247953290077243660844749223526452688067700805827940435900894212411906389914116229163740274050826226864148105271811365386994719451077003366245873060552801949856541810535886523902383420049401227464846730158616758163178688301308259825426773368963535901465933862293886745747883818700470770695770759066181411389876038723914892754771856032923211848822425635853840189511281681041924982049926974330874037022191047570641910911553079907942424087169906153718948209930350995712873655905899355127845500783431438942305217448608808413439570883047854679852755147155946059936180160794757756026868604144824270630043229319110035475620736764837168207110203515206193043421874922522124651802722597188222663250941311622268465812021572623075678859507718519039852159101765191574934872468796945800011991995734153120022144422436050108944261285164710742233081683792072635381500740309446699996461948174275192634915780666397940744842560448205331518057514871912126246960972238564091696332492218775967093127844876125695877034771071697810220929119834499071114646027903740819588102723702468298320431040316399444846112717219557653289945841783982284104271184000389182284804375974851129054842870899400323516387700939055604070833630303549864277388196559225639849634833821918394963985312501770385987554026415219193154565873683922146015267121587301068314717449744430470043222614066909866941765944939422114801982411805227316612367376942088467423303406183456769365602346004714864081413313943912898181762437278248737266294506700580910686042775351956914551009082626470944760915535793499829750669411813920127437060973750578095817041429675919913659985281495193490751547237076316246224027763324186992423706093672175817453144934611678732161428997220238276322342226784431061913838953546876526339819790524637154132333709084559550237659622381699200312847621947900060014655776556280306433410212511679757424181887263588731710595272817354082129142364173558025392251544645006609547855737321694457790246394729092500543542217417783945358767831600076759397016899223885492622570250945756762007571470937237302612474455478023084793341486630844635353354097051919164008015107599764282332036292851540167513957904054846813729296717316219626037914063986279981700594903567822907283381668153028696589886784972738989305547777742983977373434283980532192445771029685432953010273097626306451950402070686719969648623867796116343410281091237949994181939511861766113325466404840839915771704998377372445073879767045301707414614439125928451808799292986454773907944320244238998906619953251902784173117947357044907214477457063989268101977651795692982213934070449265910518988244419868275395746831453258550837038256291300740395991158002952821295275601787041091275999009693090940097803034555560474708689731619600918449941672751244669198788284496970487693140912569254940745367396456048734422711223830275591978269683329971933466716467208733327985232312897087322234125892668000546944740096075260712785096379793360186382213465151134359885364295854489885239300453622616897360387458604038286247433256236879084299776111201998557923629442703337089858771582193096263799329544898478892560739723449514102288738047305184225392160361639887438907815629274418587325094931392036429290024033378717242169057780427800871411783231450996412051832625111014402047822575847316899975703953176773476313821629690036574406792365760673023822068514847188241324006166131004103693860972488909915566285394794073450510837924155445398894464237931371394462166251052989538648568987079671441507800740667043029000039597304349809813055295746377198893265080299391706686624554350106552871243706079958591338512567509751233318266811720039273220173521820264352839799022974184742262041249968519393766837315442592271445211392795616307202265633689021765638981883084575541656251569395041351286156408854018303418280487016574601593127262205816239717449045294603201899228023252792063298620092840047908169913933699587249460429705778422056630666188503264728345720039324032653816706929778145353525827554746480727748590621064376761930779519515581399521917684003551396136177176910739754593377304273251644315274234620622905147928012333041370646109229746119635154475870927153054871793815098564007843537437733922076351604323454536239620383529529565897833545117371391299610306898211394410933718435276402616813749382512731780832942895093388550762319673167190529858061699983646778496424899402411953976553069723093519001331106103547830742404734387709485611988727040644275482098480042970521659153309109661593273555643093874760584721597055897308409217395846475098617081385994451506792502965761665106985736287938990161619080609228718347507691514743852696031821742661992885330928620604267317040854276364435685792916095497334406011618193385098528958579821357035317802348018026142362987138529845360281568527319585309751964209376460884410861321579607266137646196615429728239866880502891144573491661597617708514223875665299277490678956788596418624627136205812694510184670098638986483879163447707853319221687125384744096741391057419952117633019792354759988455416217612287619988573773641018325463549005556090369848014177134209639127332239855607268090409429132869637324295785965555000747390982087639213889080003234304821204603189816385803470251976194556437515043474889978663028300059627198831484331338067725443257382042330064561862156964517032389110663076800084184803167038363778554652794161801098409820080915466003018641320691802425954467780563305936387892234904440553846611275622140358721618720760649522287158612628112362347576628066877745478481333299668834385613687116746009246116728234634154557674698427316433756791970942048949241070813843692990896661007819476462252337440788959242459567993147335372495710219318233585452187673135719703984930496606493979412475339257583668595795444338383878768915791191164756136012849536161351721303504489031897179913540594671026055524821874272300331337201222455820788046101284161466151129481746162044325274429050804437786072737658481979332241707895091296086812042187783857213200469638454588348573011536974799648933904569936307162871202520297682455669379940836787873393895277563649984783074192341664079807484890633846415465295152176971857196048126006189901095479013556790053463010748536466489432677398507563247206790988008682342059064799821897096482622179330401115993200968976005236624474749542294868708848769997377167730848221122702696307976791799062714978774811094121710325270071266557807500148471329262290182920131948587268789185799875335461694249798798555012680105907509219548711089757653829553255665037213248981516420365390962423983911150726384097765979499459760143677134452541195166322833351930446308057417150356111542832879725260123438172090770534729795140250727432890923967753865352248565697236449525384037330386684989498294799248047230128988547365283942666650098474439598169528618173533440439174433808824369640608155155895076475492642440986197542108610829369944660085320623558719676357465305263829771890060477409894606115138618187312345370993613703316568233081833894514503775423902222821590465477831331993179735287598731260582733717610499020442777638178152094719271711910634822842809095148676183851768623412650546410512631775833342180018369171135224190133638433084098911478446884776589599872002632778124782882874264994177309685326486175595148754674830885384441496149968775644667394165594639722450412981542478594414142628603789637445738258963890603964211073302264801691176127985561031534322071038879549175193313731367172468259216005559648899236022690875208942124310974389131812464142355430006347148499732483619242251698709470718068287373416254886136096433905186342106098685020836732152804261725360984307846921750906928979824881329888564883801669861822149561593031321811562923923677950308525549941241018531999594177870642988117401570499893360214854293776334319183622506980818651959375722936110788493434370382784208711546982272422818861265809068763013662026844291189776473011618416921450948113667281975134336816589451047198217252582001964474621984850464085764605390739131536339096759281285212396317069339263955299921008387888513759669992086859292324261625232933242266916019705043459484199125462532485851359423319353847670096546331026821698816937849741284700463486960212568008983744727102789788903808800633298276530686253816672803608877167125562012296755474659034642405318021225048019740532121152354927512989130954540507571685497283401114889360355886205512668928419435422102315268376881699598686761767320293174763814177469986538156382478222012727518761252697692599220524469649906536139485998252457853102580641261998494894638490466213017979266054903684787286792197573229872855686630981476563948661421775477833271877603552482495988534887507843332315593251903649552826805799223568245736266291140653372102645073043501391546749007824261151332716833240244625311377593337546203164151599936987458981518820982358291832922590329846409923834779463301922932752076133780554139202322929375902899432338260350347177577078478393978166118286760975127943273396186174058549216758370951236175088864811088607481303127964042447589328650549877954918695522454866237971204270322400944287442528962880429062885775631530497161696119046808813362543062652526716660440712553821617049207849223498413624302661788545207502563726571985312303305070945297374153106517453003322685087552090371036823680675638743989952116422525505446575037717207405372942842081783700320644012294784614139788862755411142084384491477481063784543627913795634556215584804507547633061378167221365035703161293317870638902203346783765872734587208717630434621284796880794064566332295662689596358642958319209423670152486064409557666742614875081382025919214299254710694767493826903182953638918820916026126143106439973359947949091999290832172274512635637279533168066723179412286957444626391517236958153369692076607305331461689548655340388142958062975211973209637890074669570389730137034243178953088158802931979744866044459504946743883237355545695090702443823505991002108441146474888945995141747091237951967976716557968170861381466980488956725299491300763139395130035203164677863615256246661513609556157229497254603479225230879929834099465850038231130132666742014134421169575387293057498890096405169951915351232822377413441389552112817274391458172768928085739905725000965115273225820883214387748650366074105371926725013783349813667143490870299833930536800675069134925432445836265863362258869712342461472740591228800387237778080401788210561831040671558153605351620341086012976382128604037928948307094556479849253263027146086866053706417031286105076653494729648373629315314177117730895483535632067000354015192817093532162660106405780883035278540103746814465999518429889904584508659255822219777768270881652770983117997520513006847813545680675758909720042259159836611759626398643570238581045787265319430734960686952737917209357615222975024985053933837487327977518204585654113893714092089688211884862749928228826452739971308052785378657116330994181947259366205154278649876783148314402432740633319866215040534066796367355817870384634684566211819988851231572415399835465600654013401587338690307331584575373173176447153023697640676394194564399248671069316420564733311240060313532917880358432033408593910929914052729080562658585170650254956906126623746208511090094724039135009329498031971388143382300449628601224632253922005122727481810768254839176750477853289553944175912748285856334663090096135612972993327251257731524061407140430445141429228489454965840656473954952537105990491073051524230658460795276499058987101833937807809143421660033053327904387600645291614670299686822139961796728729611667236333841737322187204367493218668126675132225121750844121982894156314720304520201941278516480099883146614675259997162575099014119465295634184278173548934116049765093144954743244712164339927711227531303608612095762523752466706077633502444335219786679016591489032669356607844197573741348155162009657192981425915054150683559361422840967626188104895573387494600872983310974058624955795646324602019444190094024837151558742243982703217100421972107396872053149710736655159298066919782024289390628966862150765179838859716636934485902467511352498120606448676915161580374225600460297291880619347034361687410075603490834650778623784292154802927770960188893525551341854102129865057181676217387067642867156970374211878356527594759097477476330920211550237006265680191662388286961532844056306853188088928071818357574721963741054808986278302168693303334962601332921263525868961395299271027991710255563538372832634905927745856052287567686923649233954175515349914006816713680659966451130131965756151359563806661530494280120652391265473121505077640073791075346771875692973920607808941033809987130882472889362138671170879812379115080229560551895281250024801619201530315379776537378151591147027690113948296189313866505697396932593605395697424738861771236792422012582087898882925408233101480755288679679629931785102546223373141140066786411042254884104807488749519559887812631519228408440852437961054299494353883981417817815631192378567736674627932913590434763965034585654501003825251361788120259761055859235347702014427780226731158172121436561977039271807171428139519179227615072667032497580507212382373801724239743384365376050933435685624044958289919165299138590750892008341389517153772931071844170416060309730853973438398086276425646295947850078771835551612395494852509050489907151545326316167284585733436809138400705973669309512817399083079747220192376846060405847178030477136869060659321695972014788805495182728667598507890520771514968274465795702403630159252464694824097348497463728862485587833746789632515684777143001351396264199631458245155050823950755514116164616044123983289092613113538282678415490425244654019528256984628003614430206325847149942971520540209745936950131205335927953626297678118337939703955007710219466599369054236869595612292079511927719676250745353979093929238988714800967078253107866922262363478158322601541810620672095360074603508856095355655137568519988620982668818004898314503828382690401375639255778513645540553322417745356465923678682254400611330669200710439302780101440816691768171032983402111525481967777546205941795276807298284914799806327453893808201123075878017357542058584879646015433219365486006687110302122990980277044503052028904232193004314268594698418060622500029021089617260028680210475442015883876041522324601412165712199696504449505318319349028483414762764973657984784938756119297556940898964897907703677470472685716058406305248883088645381798349373758694911894510489209917192190178383441640304596512954842637239981239624402178578493686186273930356005599104131947618249597741353404763213873393969439179040265207482759828848743140387251866931195453437127721423830086548550890197238999327242464851124637038917073098928396427925481611914804214845487538034105282995021831554867974898322949424162036035100277075970358886881455410648915814544570800612975993482635917598715406558363864470990612866172709300380610522149970355711851371780808092369937955692373660604425810293402425321204682929970266460618360167416346592186537272379436606105581419664825410451330766418031129352548745084227712182364462531166707238191953304692122363990400894398157153953141572519266974160729618210967016453522066480461541210532708604907952676135343521487823042499313705143444746456553895946284830586845610582284195731461316472429289257010555586456682944564988086892768888369488752681956907645985234688097471274776769732508901824066868893483329234850143191025001980886060771663576569680099833691969199971363688603500444869061544040964746317456702914206698636306172655167944758225136763693650327177134591675725876622971775161825883735569888123105841801360126717462705630004967202368929356265483672895133702016418318221057646715454247369211824937333860047840602730224151643318678888035392240546511008591749139843896520894258525701470092116156433702293936758823478070544894429143840170363271732311664014628233326541271260631431816857786924923928296891679858669298912739734670231130296495221401611552520671342127501615602209329380444185049363881368427143630160885334898845726462953155849216024011543282041147101553898154980420347167625910962665695968777535794630471045108730564050148663902919661390211539822424585033675627303998372073127528344846977625968994500239616072227638358869782193252013349518468181219326335097886980563431692455280759365846337399593272723413822733509110651414640366383004542126261636512044199281928513059605825128875874160858216277454154115149083847395715958723353851003353040555509049714719933353206294548515314794089633573695833182017203190523371320598230764075127123642523134830770269534282536709464836424683128268380704838225696766237043806453021132078707418429499298351277437479977449450243590830064146038966753989520885378789830389863445305934073228534094825889293515430210155516201939509814037743976791654188798030185500632393479996777258134280486868011817391133827862777838512824817003479958588178136289605846052152576697264607929773000547335323321691022529999270662164471059204767704642412589904363322548281039781735265481081987567519851241751182535934720157593501806090972346527655065970153377749781579392809655043585846662947153917061917566382682108031621931771893806538707350162833274533701398098898848787254731921280295686096012064621760047032181194855507182382323598918716412406361446687033548076957635185878577308710138905942133512737866334107987187293843233731022362108325546227849135919066675917785719037772117891688828161818861520483077037686975925227178303647515275722768225401402694435387845356899492720288297522144381139919730167095978362829906185262366320692825576514339246489307560742617718135957839991433874055917691123796061555067421911684871816374794895828840544578083389389294569980676613117387029779214110094536586669962729589966336720455636100210799911227204690394756796670245224983417554098268580703977949632559236042418019527542407819866890413932196219514867165686255416820288128321880214419041910693081045588546004084742278920089219968883322981227462594648999519013461941962692168995359792914063501766658073365082640793289476492694221767438750609961017965626725539023827210873894150758753374938715973112802811895910176933607250165223869322424321425654264071139425589444470306193739425467193574881785991445409341440096621570646687774240638122138231409609900612604169225084428868309906073099156931919773262107792951145761916325458505534411048838930199779654363598962229360075705493475312675944261664425319135051440943094137833263958421530720105216687526134931036255833763226589552214904453883850907907156468341810614146450166987878900715544678618667708188201479692651110093524504587974730784237656098040133668575047774017572017909814637096860232530035999240222891911042187903533088290541219347413945552866218283541673103546636276277572721959166264778618140323504076298981571617717734346923388964916166653764945353771135937302115136758547222205660170208498643394182761356858068847196053956466570457295007580665833706711619907622755319561714502368249000185056631881620868239506781154582099317318922641090050468414775558941790761339155943478071445457794040176552351051747140211999159802719316741312421148494994478150294565012999802882789811622269277785213446953037446225307250410687639957826440478015196175119524039652371656653960058336239456957440247767967412750954728761981974376258487561504137264694888770455621243174765099689067215470109800108991493653250541184322214653930256462123950273392543921658469008734888455769152695240124604003966660297619863385406503716552908705207130550179073640588948490537683913396756055933731255769585178720260773029063089312637409259952449860183059960423125279547740393327099891086118661917003191625265545746022760101668385523646150581875458317126371141780466658449402300993845974126679020345969324640209349411528154582089417968785560909112031107336335656215671476181874695010910040776176025547433521052574359963834858203107884695551495347275995045531397921351922979662252000091590445465842233379565801882576202433253428677096166542316136486089344482987531394274715058861213362521090337096507902599216033820842615904743416420892904992940847064504595492137610604748922836892609930551701453766561365083309824933514822963833914328317759863993589134867974043252912309802934290433461506075558113765193867604726231418964922569501228826361830565340026941609624729094925111904092705752129830644152233121980603775115429468706008608427615559908766329056273221990233027881551931831755297646397538332368640885564843933440254496693955068433826023650929797592416786408975909906719978830010882260163301637445327639945016878339556900955679253915055097468268615039198199848333648400819693959341471675617706981152779366435787847044932733072628793677904776950633112540873492202850926270999194775373866053323238394269425328719086755333942904925843087780964144846732932242466514223667717599878069741146569279993499202027770937100522364991489118895266090247070694455566655030873571262334313170765192040342440652523827996710893298929646773438414099538612638311675601586266493730834183708822099824092664122851388523012998121775777104180107031849523927850825570476330566747164293547907737485727015482025266418530788897213213180403637432124242404380299527265374516923580303327211688716463870568106656516457408331924371545624996236953452992005090734556223068947546029331966212229445514289388862175208380723757001649836029454199792676732964242456783605702777640402018278223187096228299908272906353897949165767654107464431537250782126160348381590505851953361458539436801479810754956048718558972823950278316476095054555199207096370139500984467337017418605873365309092629826584986876633624008400749075265167490550237920977498741409211916482682284624728709925553448072366234083729850004448954808909991753029469390661722361708312607362105419292875028970299436442039955092926795349412287585269497621745304678112788228053201844793452387298836052525217688817863080419461278818269247163344798026093239416732697757966497278693660209313036159507611989313892158293360400122042809237337395234030378117661711541661707303044557860211625713319281691390104109158372703131787501623125195498973262196541160618120957071226032797659736918596083017689581905038529226769314538965380508843732042014528043774212719853440782156645724369011576768917484861993937000996048047262197890939382206521360832550478833036204185552396060469385610521448835090438524558070065067679107495448927960272691900674901866150125426729173394581004110457769512906595425084744354951836490932767671050680151659229814203566004190454703915346164786132478756886720067360364047811985089418602432617745146425948651615716213286755025901551460967021793857146735112309312964305539335610553388213936034505865870172007168018448583296198757445406958001033458351641491706024812858911645483000064501794065307195635487757811679785275307257581894965169984267329853645850270842893995931936144948846003901481573701314894588302128573198375698297033228811551699852366905333578618371231517049809563998183725364275918379263347745271819211972258022528061989247267189830309212191410984389877225715340665645909338689713305935082404439521820856248020422737817138858186582214356942487495043251537631640540493513886433635249564848429028261395906355269933582937546527096284614138568809335714253490582097108056344347269787579532458798618078296491284204198866213602921315695253031650759414024800612090141267332088777791111520422820308163979152257969077871027520196106396742683961509152625116850812556910467814367991727369208908851412353150692638191332014137756848478945282093314359072836487909686964022819811814147704379360683553751275071282383057778946191174196780364282154892139303723693112597604043194183326116323910838608465663097760366482724914074206455836011876176395483535620107673197981370816299890924934031910920603822534747876124431957461738184641468556827744040933392189554309080639387853751440111617565573516995686651423746780332874991429021742657523771415732412778254604927935242690216510807985553687369105592392441414879365181410759412554216825982652789646895365484325807727018332141991669707154130026245302408131616504687414095330960691121341079679774912712372049343782548763941255551465300695171821244174697880054770562231457726177358890122049924221696533372255407891133652971547998226979463914623052538411317186240530233500963126716691362256872063194931349058210314362124453563287879361186226902237359281003969941796164321142167469989607943021277546929239258495996849688285189702277554383361787815330409839873004918237386965743636687343704187200714286914010526823409207159197481039986161546782997721671683746019758118485696930472338997135311112790766681262823919268302021868974919639399591713900542845524165629752833752782657119499489498200091158021153663401240525940074249604943255198690455976334582512001150609572081655328016609995416877248679796872680067387431766486344824931100458996442465780459681203946887234218714931286699931124920637798216579277026860978309206371425562225055610242877135014617557666538070293821986734769326481417204259481595632697423843544717489623158327012135718732465712827425477693723424363749794290532790392260591632791789955592174061893922413963070728287730447100297802339837284379619334424670644891795682538485594270288108288021358276687345602176930420439046489798964233994446077524663775251320745000412860467054916075515971123412429684741373700467215261446531249918600852693798679732323879470882142160109267478707200834091212224110036020984623856919187133089291368303144384316683552230877427618021521887202423313093033342744886672758847167008867498342751076432033622507746544047290375746874318998519698563835108032152254414593946617926229384194174497918952124394107858618949237099874268339511474021203824686847689590187027654971495086562066201881918736481456001838537809834394275231604978016576525219893814686540175001455611572867215456106552691864859534114749805421755187554350439419864837403551933640923163032202726306590577462745352636261053737848927596665874047090155831776036817098137978646296214220906905815942619303128699382088008867642139368644737257406201525487491453292336087153988196752133966807243968997734442999761905875035995428724591140828686621229158278392147055969741856178588241054001625988388637238067038507890691736806810740079278842415977824393972813266806501079737398056350755333935961497603816219352946975303980171789475814616237002120084495658538206590929043607505081109299261026749681278247591478097359945661874443883260431570505612436136035143302004761034310354870718903157210396633510217516324860546005789644310405197077635138360921748771259591700944517766999350705220021323912090314455481357744617016669593089758756568218430082219878961579604866513919390202641232190364263625544433406184418172085335854736326276420874192349152214258190153228469682971951254182320874048207162153200731894097981380688822264932214881777439228969313781435082290019270993766694735473877600693111894993213059996903807964670946861589427494080644308421745510835205983152448684050917530002376749748499709942499619760971044742819181621321998843811518442027898070878484252510065078019504448841406307528622338082711570660454302479807391418371213724380036224454897177595156321451430925497925701907637586684267207275635218126089966376498786909605943722722641937822710263045756544070032873564196152961386198126238789279072133738614358576222359669608399281150233474230813918965827454838487521047247148874560424313250400260362938188206510674651329019780114821606103025928340237719386251040318047549959062698133121687023103008911007741977875887452750196345928635581999183492207217219928463840087429572391830120600846892540579847070748153777985671636633086826145299223370004691165971308220450813904095562141897767018696879488230724246652660612174031851329682378284893860095553457964960175526920195328318184396115473760606761113257704657807311350274494708155406151908308409671596113791178770216651627436711357382676592471518173706598283243540011309879317553420098070302751007258521200601204058938348139784638604701545736977611857141406104414506059609012399703347316942139672974538721072426698431935391288898958934552934791845497380174218139586366777714607043923220130809432866777078901761668020508235614542405457663162594502967894149412371509324276844580255898232567430255688246250376560406599675857542111515372867036003939453315671657761528828130669264236566840570341299834672046576332929959351719159310737220314282497365364178733370158732802851910468377647769856240287152130866355507775137115609867982375633792792286327383521438566949952409339587060826422065295788772831518226130460356163867468641409986677800190026356035902190133102730983954925905170620077735756735092545847082867877621772516675269241115391518199382036495309499486261634037166461268885253690170015476531543859716916318435145206423701639258523729200375934414462720516825699135587056189315582856486093686354772167977581208665412494067594148023913012168277337699733034102570148972718377859587815878550027647471690652602715824817867720536762382022135843413391926033054239443378441650417780681759558182305170962297620571377342884504834368327694816889274197299803946260874279985751771058102843405415479341692963195034583843481588808346037030237743831042674350613469534613844504522912767135505486564921383008795588280240899826716747887964567721583540650722464805110218348757964623553576174344380643800143524574303692169346526045257830287972850855193062087568498193543005531679752780219825724154771518399768936009890057083060147168496336592379320675973452934007769737133395809802447834081867066101407888640852121656749832154399850794422657881617759363887219002234394286992450239270718076521952269565923645228100127324931226144445249232764954075395108872417626152243979098083242974862909047351664261081964476744018607509073045248073297140381072911630002000110442732398961611189512921763929472169784247439783179678526604006420850084977961771526357707640703523082471432647219440017071240728773839588623699997621001292371702256160817232797431532174986303258781894580454054254419432039134560769002107562577981001670005649140301574877204313193878167686460962507556173445013250299469941000344452549630598778016933608835590951648004035397744603718863406868329804158127220876642214487346224152609251392220462432975759542777439009674494091430871727103566099189487671248405647688936559261343372431068983340270685452676760151028232954562678168911979300958223333206730548532470692488752400643330276369676072030397746417043601810744368595817140745431265394368953604840695007943517824006761960072600782381947606227268269899970273328453462459692329821971757542209505004303052454063196742402402195288491000757670167484355797003932131911060530749325866693245299829284377867112470181534789553481184530325304777130049620024731742755475414148932487738809221017653911292087790500873043323695023342127902236587628106586502977546713180752962896164888830947284475626419587490150053524136894308490345597603179133679586596470866680097108546462667473433505400680069413197866240038001246117744210631992823904553441044745016918395030075788132922388248314852836111720554621060702688332038186860008528491921784661319120077544264939225891949388501240115658546338135382068354599257711894567795514634489251220597614525430627682794844540221391072795790104430313046650642010301255473563686204667381270808833417306092000314891377389399107505516889396933541759933901782572341427316961658274096272466305419401026989784164307332810686778455191184488622343931966508137752341881902322171472492463879922028851895321939715621013469716289594453574835392852172447002491938030432135427108098780412790372905810261277159659388748175731494001594955718596565166702811294776091231259471308853736254563917223814432278301828950851397790755821010755725926198405919316213194504297008576971275571048951788301353467289221753908220109140396562583901005840995261222672860219446748153472853522352372841393840595918657155345119186642092201642872170255076378461338870856156321851512740444561239010737919246884961303732886461499169597193675346040570581462490355117565964889344702010239747616279153648436475160124042898999825623701672653132135934152762324822369606164420723899185282710101460935671326940851350932063522204843493352299466246316448011943787383937590473185647796161331787173016940889936500498975431151927007814386886491426528134247565156280080288548355576569789883879939486308812427243074670472399827499141716022559223587036811387037629257160359461985108375974254124917869978330009431494324230129544237604136544712023456222251152829579922482244635093706564975333607196525773868698139521576642402120831585480809689574117183289101138100941339527071038314159903429690230571289606340797521392086080437368064752897991498824526216588838052663965171076688771887424571666065341086052946861107741564862062102331626589196463526226921250607380168648757138001388617088788797270203679887777258396026967942355339071178176330495980921872647696823184453153288071974310277802648549770677492118672605786695816809101361782892615848803632753914436426221953414333377012562015055992855326787678595109550370413535260924061452198937108533076249264726853812493411331879076228574965473901388993487152735852903130764366457954824283497688334314412400182984538501045183518655875024868077894081583971735461623065087600063486162972373464065459922171100206085007720081108909236364063490955879469783844686676620800771932908056188116154846704155870536817519445269583258271276120878116133758712741189968301808955632790750394336774105155791476974812390165348547682695302364796947533736105596367190897912862739820333981810260100029054907683618698359092887263389553984135519934144849065150203561995931311670980979043489599352762731354002726383825660036333115719063880182051817781022366736869350691249105426615327610080782706093235145793490825198838468464515550990899964864481133184769140853831531245325582234761517520411935680444850030068063921758758037721400731818858722594301734799216982063994354764860791525047412063451772733075679085361917492525513791227413876554738577324054143189733186297616265700368935812565991733328344305351116710186832773824531840282393884955166679831096835241746414697626904264920121300406894443001412595583672997763139904175235614738846933342853893995768909589439382693243572902375383498332359085573905987997720001536399286431327921603484195381532687221222073937287431787276615601106459287460540666171923728040364876278659965244941720286255758637016392275662334069122694252798421983005970047809155075659871234456552713630129165706589974352882236632696681174409745539807404868537191888916965704534144303407361239653697465497861446004801254121698533616310815092661995515956530350359396648658766364983208686607861571551277191238245058910965440542899237578453113661743007851869103977876829072701308725028517280490733685044061656930981654834418283146383137810490154531283405067564650845081402701903604611403707607257468958958468025877226832297852514327402729180549408815356553300332302397640783603741831575715994018074877177357257231925556325810151746851622441799223963700925906655888330284650161749780992801664494095134448579746473462278142249821497475410077141963417313754383349775366398133369895279588038224772225484151157882706814539902024639106906405675476176427723977206945882971945871941209709560295617755410939730915254519957058595082887742894381467720621393102391512751582156458123813916645181779404138172473067079419169957435725232900188041325881815863858079545379575260203232572778635589184727289914008012681334837277258469419629624244311414302350000458711805388655993164265997082657898544449488405702549142121712035717636509798126278584164443028578663675238559279629561876102697042359104659604883666465992774711599144319081683302518014352820095646224034368073366752742028210876121824162902544446240498521967513915829130547789522713984194608094127156705497314758557626385572517297342078434956840710295945251675150551594328664959137099091167865150430360813716248072267399772577800462977742218339832694305667490071639417012956505651269502764037628099393223520433924211690555285886683343676877933634992797529886916143829755603463198671233249032294749362026965860441712763303102632921273119506696125244503248542246916188194271660054257400557896623020914297876036299145556495817327103177916041006644067756606043972702156158501978235107287462886725212489572975577260152206256911599130657854578044914467364027088139150530538576246276312149703465561488549177935121197290980377271046326965397440671283915102764830467439557278686894832063762541752223824568110537388718585121993773042644851360425243127139329822498399928893532657941550989884522045469213842619644763202514895957817381366066510622314606745676650408133706485896280539100292277990644637970539592719249831110564932680767794027751927887695259472253938089873727434697896925432936173329896786055649692286793897618417295472847954251446826430778621866359304419698823723577826515849452169971747917746485445908712088257134389106883259207281595865703766824901458738978206186779091577021688610196246220787888263197623705066874315213432859678342144162799884672131582360126577087624893708585606278860412980099641636499787911499310228799343451919597959856261513719296431205961884317204032453744162128340950284836549852841942837424753671239005180477191456932353828130289452690795470359604565287951473507085555215544706518777808358677294729499488379963058012835686949850597909007597084224404328782922296970526590520739561882005630100113536106511933649520888580408829374376968268811287171708488080548556691190894887116965143382781666636387346784212269960660907196790432128087533524890663773418388063777370044460332783566249058819073167984959504812104342275932595020212034874352712616127673624707000434718273901636601483485300438058579646587635172274994227724738634060393210936234175584448700898869483242457848903341908019501259077986856420255059520857008976698587186516151798197301107602923478334308306670341861350175045253294146883237702136848666687854955038349488265039906704118094302627622635444122859033711686658740546102693424890467236898598477148267110202343562840206455544745437769386343176452963129077848948288427776724609924988494189340847585966686031938266443940726792981505916465068723102259569011782033387801955850471004872993397557185045749136797540501293564399070790776627495649384989264041615973618985639368300255101518895609048354347949809801401514660052238685412554463829951867769272462018918052019436151625698603167312423128175447724811209982596786866153376457422072059539784953175042284867612486189471604138475934542678507132804053935258529825252300401465078436405719037765439845925152094959285594093223796181825156181910354661816775258606297365396307756139917843358924369860584930740156765025242086066148264956718267875099557706407460420111053543896152449281926831925467463414257936922403601687458121919771563468890081993766812806130185440560991692810071639288233312079898736563320815014305391435630806341393401546154166314705616130542448482461355580302261292931666646696221882407055548548129792520850287279690182923006909956082538753875060166347613139116023626990778289217358071210214037371499514970884920641407471336836881856613775864346800588059575021107971528897727571864644537507276576053250741172133147387839228083882456317442610756034943775406513968199327180974969391132374792029902471829572558700977955593552930183411526457397289841382040313273885951431586018727303335796518478369334707370342875313929548784565399380370806792748320513172893372855505100184966514922349987465388018010868153923422587353318754433702630205200698013451764242559807697612650865266155684467910941899787699671346625678860158414230161613345696184134663785451115662327732925586901031000026324147659820967144417216655418047284736945774127897052490421619267920655905361477361968125918979467625074390955414901671414792146663467759642896919308627126860176963231936981644389567120652353159430035779160819312942092043284133569507695383672817966986094167125692114913838176833338699176147367084888223273767411646861564144059085589669148783440454210678271265009979473759683457773695560142643862725698377632632715395589069801205084015438942982586828108847560831022625621380339025830251702059744276973207782429947255364519889383358680201100212440012104434404578804340659765174794862581808715754288643708828542778129274384397249335049195487398146373187890551349717489648784750046656720487933298334713356777959762793383988297019532491276941912301382218037164031132320890285055266602324281776502681007408209718350476441833535869709438562986468537676237929037127202123706032364245206115860621120326447406506007727522561014024272145456993634615352370210900248898328594033860938205325014194809218517978782525870020989683870425045663941488105514267617391098227503029010781043862313188673706223775502831154289303792090703795352179027557584826636985251244173542706128915163525713195960014956245025275565250660238475561727474902918997997684333975188685884246654509763285041627716498447698970793199064898957025700111480633388514633930951794748456614369463687434541174908204999697674728373789877802178089343961419569011167104205978234426377590183290768167955123634049573812633882475237579267205879762474311396257706996351125320992392533604699974740725736741524765804873066353142005206806155404829712234725578540509923138676928863276650565069301053676810699225905448676236338460254248780571243701852262650189590498127590588646995979305502996806538685299885545170777467891740782839941989285837170387151395342330576180531039475530969689106930858874582645943685924313037983336723554741200008915051306793805307200420662518410539476646999624514124749817883431923157336831316699931049612664442190811288412613313135440458130714464250801868245037892592364648015545561749903366320680004721318481694875438753807429170540289963279254566679969030056361109539689348425474850985902642079306968485670207653367099781718874648836890677314926550709800769415972961769767863932583219443026607352583602124645234319287076508814955187812353563986947795476431575672820292992707046890450415759470127634576288785060231646971703599870368459160256462472194679683693929012137760359089104150458120709656230100613158455774875651496672672957718250635487072375142802407229148316662705956278021497095340727485300716337847093908307344653922225588759856148365040337394198772017046020863235466955823470559150478554010272300808086385987179302591813949094839918396295886411981596669013362736948733782383253882392870593921206720367450603539241755131715875414521680997005780131187507302521742873451537616920455497164983074924589538630104748080325381367522112973125009989541664216316943379456926928433663548454224658251522937463437324876203843127984410512908674073557628591352622317052552278425824994643777552586858355143477399164123874247996282303558021937736444190855609048178558167835196800614782004792588422221762080998375232037322529423609922495413083236680202118975808785354055853209012651499989993903488964959391852221144762393830298347790175035888435764782926580717802474177711978985420768623059960816221165962011259799990083148011427790458044758207808622911489710429010704656664700754949977078781128533200912019759291630837020620857340937022882425713481304925595247836511009196578109590404104388123650330694356468519442848475539784555128342097345374860253560037664745942523610290719714749082081270306939248064158024732125568744815423598736942371513609676370087253618635423723371365748180521652681534281609455035208065480639870440911358488006689525794673766366721400078718610742226594695675860425346478860258591047893672149911749593421226268482298563558393791692279049693018597999559678816564345062357102101663495470582718278814300806779912986197144616261284169313697934771135404505181938443965182976873474271427259360924854696797778315293905830828054494815841751722765499719825731583965958501905096334381976021370581722329310948137008585678131481840111522939307250180588669378350792930616366026364266442340560127964590411169700726698410141859275931007296029818685517102068742552127108704212711003556096243079187237033804431043060389131092607762895797750633761025543603103646361358334877021248557458564225288902600374688555983159766717535206991965975332860681613067838776121806703060590942245981471985390457459381482344626961117630791210173043683167763896575979290222905091324592160726684647746940561196849123381665071650778656326726104894536377801984958077551136209170127015210188521618921329943425988514360788124695605482741138298281753891383049871711975500686179318020136964448907711413296391043122368562815375825000112683625542815580130484830419260635573272728665461881559113993369764924678652583590546909545725639311842289848986365627029464707251328765333528912843986055202493501009338845983848098462391810092137172087326062038035125682955558704069055022493364887432679804161664742659055984126153647570246104742926678696497345706917402972719051770447416016154023220222567071726079524378284151484981968051203061074662061290882103924228252671108791526366891667765125840050287919110185408915809698327130859402613438311062349989163180711458236003868044834592997749382746178015979876401428848608009257801431704584227313001856632404198528461533302351653010352026601097063769793204782744273959274873097007610474106529706472872086805842929241374429306371700602879022053022076000836565236126277804093493305474997582184799893676510560909810387308005789148679729930241572785771249971119036898417678437519552722038128013347422340790283747581236417859167347690331007970020411390803122823979354162887312161905614430035982988091686458687870604033459173247760174656066703007217252036879055409328159600347860994888678045426382252472600105220304309455579759467404829238433188766168408483671204198284461736546887865552922691025274247659219877583606875477319704386407607634122341179137935786857172400240615078271723661551313511413632378912744807299999763359260279767489627656786501782646618349462908768494017743210901966225007369430877709086741249978925385767943843645766195547491974659522605867244523740790416087445527568117588317329834248141619068186697046234059747053047329206186164514821445966177492022615806380720387870451521023392285063098634389920421491387338708903869792365197700205321777122368373141947403798840486861796974832448040924585935339077090100424375860785466683109959491066091930757281154594850056105120839582798888443266582441041229056649429359501965607804943290626827435982297442905201748995088378686542329155451315800529954971940685862548817108478389813024452632592238194077046325369239655754470593491092945170009688833126118896624673794496183010012512937165957718866353399672107247965095444076999331449266246190055888161654101678636694170648330005244929196361716006712971337143128261130330619962902647149528961217990052327592656110158738596457143245851159575215536043196181727937568757920820594219325856394068544851010371575811545069157062419827115421708778972326603997908772211906017631352293344729984354185722111291062405122130111250652131126401902928299962546582240501796598251910203454723768550598182291042056859942128675969803264756141115309996564699434423176615154841559200555514080116119506409457957294542987899391552294595352293830133259044343691155016330083412414984867396952361519771315009682009894507869063318295262094706249791627417225366010366745099029823308668029088972561684017455570686847528837225987333621751456134399153158175771529076880512885677461733477544683188065929337946163127989269795404481164951296312772993071217760647435760594916671360700714625160368600670559283076700501769906211732120959338730468704901884673739352788064223433639486666263224226365039768557327852881639935352832612426185536630843879626349149527353711064502622437563373389743565712003623533099084714469451756524736100223815813849050732385069050961258251836150899621027749660855732058043979815877107874668439192833566813279240187102074175258143874189066647893002909989950792820517674424441605386348814136723251464801070783102760233402410119966891120616646190040480913574827040543238901149947468661137454413459657157805455066174236984190754972490029973232720479702906672763711721418599244469104625238910958136912283177625118630469847447627431053782346222160112778598047719093405025877330138492431281488628531989404379530411454898090468715492401158296198563557759934458871547317040495713567617252912813455947830063022652921163309947593154285828595315503742268095273882252018106981812394157073360435243447824214992544280769242698651421177600455269440552614392568296402540960525487355041357500605845404717858068474969108371442699186178318564871846011906788213266575989956173913254389186787018499206253610444304311954803409828717999264831737488133605205189884433213631978164087254468937761985834417228937410851937884835118379621238956855659008827007460629654601252343027676383453082721351563277184915960130129258754727657309122074694683288936974305196209176000534032768756141398906170342717704276102539013987421958688365627458067981666328158284107496802655933430017618228826939145956583774639812740895920926139442956131636046379126154187954057124872788914033203827180082802639910574750494972094157587327827995653588674813861405292672965282979310523850395320133045261962463466294362531056075727328757086632898951975164732014715538813911596237732767987863937164596953957510204093369647806060118141353075275118344882061030875938921053551063549857501579564297791020948220150657712804424171436744312519888653379609572546925199057415176836976049838454621129460360665742006980150421156250488969611205421220517636949885157981843952260348317445375675204372417096704193185714100790291495482454990877167548987117165749653070937342107880343098146220345083481958537813187268853102080161352627271605333891357527083752988509421427528848459720972364922210514053702696680340471321921864981596371743191301908135840939181371512670941481882926462790169169474424956413407390646280467916219156875906020077374857340409888701338927879291355806721766247977282094078490474933760522899658380788124214515934272152036000534103510237646976702091689576105710093432816538131035886167342088663974095236538191579562405422496802423327374899838221077976662446616792883067566317611047425928644009720121996625716056051011629102161945041744020857709729764306388564270958162225960931484530071126302895636783421782570674993546073556410033515987902114091427707525499513704707502031964671263304136276488405985472784973323976802293316171672252458637313985462419877039883407844434215160447979809505553934244567193129810930269652130832609638230534513033859053063502452179609465176266983807831365822863215470490909865094415202039131312124632381270979014294895555947596009893752823946623011358928269637308003966584955515301499616234662664574708869012974276510518536426649501578729781055830139423601313916897427621991580235903487219708699875085242509869332669284615673709921400171307590983910772547772810425305797872829342162546825258447642565964838197686997519699584698783476810030988150031579576130176688023470256027015733694348822926671780728173710319063525381191514854095052055029550228857614617482035201182378408423221391045264403235886802969977079116985488792949993351445000605506743887486555551429680386598667383020795190669370913386751031020878398610267707006608834751928269866592408554787907825721450553999360751204209231722022625124402870377306926878021419745451767135313317135637675111838402685566574816871269464766839709841421025987747480210077342575354786673876988735546145747034498945324304334160831790916338681801638577108523657953098941601376331935033662773972490786592169009516652123131983054368060198942393100805202594982153388554299844853561025492310739445560833777056671915887487563819282799868720512003214416260962627718488873919562746239324777397069853336088414934004761408827456702256184357455951474208269088001268553479158563629360225795466853477571188639746191819984995360042130520743156482283437721094017797481689901014096548023030495655913853624418747189586977873474992316216402909669635107611423457155505442278351438560193266948089391197672168464117628187645736013229229825864658688939316618179940001320993603013117271767632289310494128469103229672097258377187188478503397616242431757922795945935960603519144444751521138602668094741183693756318178647732726122752491542359994585614371028309007540242334861356948466676656193044401034645602808411100794331600591069771512352172204016165501679804001531440846645234396124997526986733524175518476185112544494847000067913585810761468702340564154146387784340952971483219683714975669797602110504958412756502491553986261579454211174013226854239443272211123038163805879666042980308372568872585584596302060472075408663860077715929144729402857984743933671370306096664645018107657832995021375135493764105718491632205701622176129038413915336808133985150579955550858212118606697461990458486746067293003652120865392737572975995156537583494966946971157217850481163250636355652995035568832254554990357539429419983410432056458091321838649328352905253391487175904778737899728358312678524943211533745495158858395912550923454458010917617249238077815468164916686122959836901204310325117701785524827626112388612301004901286278216231673288554492945241650213935324512614834620673997113233464504686461719720642636189941682919597071882470000839229815174754704042301089224714746995259397938791474334164578052822473501088399318869398284869535556614946929846974051912727741787800706758630047402436861213274441318060448268857815520153380104564841404044950782820409031000874615450040343114087625478519434178861552470927636265977920890763687020740786254407425646837006419611966585368908595530014723730646325486793255076030878347488974374972558759001036122819675358090157204724654771786865472059292143636357491186852627036775771280833372105815254603066064185923572822192692599269297565954396743818665112892009278904282101081993790151986431224626655647759106928982994206761932071646915626497025688554324994050741246092133559768547421974846597966850782069449496393266954406889845197361059548793682540015819377500698132399374778679896202534183017203808055981971643987410056171172882698995175266849763804195326111795665965509335204625299212492926560711961971983560099517672157718743971751242228114165619352485871990785237746260110582760575509051228180620889987740715690075109805250462061356765551588775735074444596420813948241336785417909308181697364481469901232695479255349085812538838903455934440918080733455904165533074656208682100710726499424725101052260882063184808648590871828952891790032556245416167784125954028205006538507275701118432034310985101950129679070141420731051068947800079798526650432280992497484227876706745516488750464394185799009302433142159353934310980642977525546912095764304217370739499103202121774383162334518783015838571894417701381211726536558971629107810635183185919749181812563872594079718112974135254830801909099505575024079828221536220942078723369451949870290480458663627786529797941094572796601355965828391514051068568863769807025411681461598835420464655780194369251873023683403911653613266181520441524620799297941953228309450156326726447519220638910200472096512795625040555102548642475414246522822875343038069279580199879562732772076600365567333001285086238538499182812570773582508552448900248234231673373630546685453823678819761137482549910042496017322364819341388203236186561324388959065223792116223977384310598501357071751813655161808466052724935433354129530368601778655825425474995177819346636567360085108656024980044396779037983539319143483154058213809475660041178510478325418041164141728700131238460663177557161137670635040236312955452897297764099648354953077014089524029603460227051327002308034993627469274654327838704409979870277544869139636889240316664444305628310486642014713423353527545915235366138991529175834691553184520957603563642105809621501562661184663496041658166240325442677904563647083803831306677070678409453473812909407668047227629645177199106711687756852958975466169047770974347251678111359269854473299342750403712300492246339659749725338285605937183830298754646714323683204258896966245796354334591092310063469059071416019377184514109360412939042231184833618587984717448821081418038442018718150541530921497706091015657951790936439078126399587812804862997735313671712438460316559604168132124582048752876821440897591467558280274480020396970974348878226010187447394147047617328511148311430008549088639538835974870969704478781390065165983074758309174257975962772335391965867192626513911651225584571702907951778057340455246848133849978434446712456846030323990477621733065352143027262541699644571908735228660167320885125867798747755733861404175019273970126969027104599408605535002787519347591768147158126889542025699471244522562151550698032372259469759100517730049344705273724971718812321846586200849717254171322558014909337444626037664645448083656094870571839353665951046199153215875589461344952989570143143419753613644277918494935044114092859561413729491647224965889464087188668632415619188469608769168806983774230824423285973311940918031507407223193862236972287698221195438777130409482225944535197795297198635531086501141623707255193016535964876612957712051386099440067508410285717354748243238293230089005232215078381599349357031501452847318558162870171276318362468159563281802066062790186375591398841641883910101679379019316122196841444900287792170062198354232421938240357481758549893983259352139218334899494106006911189775079663924168026290049167570712258136799277937064976793927867248233064403051714213947324716952953828173663031797643899846283115003026489954480134350886751719559033942328400948610045976605825280180656495264796540839009294309168008615992810137329323360259096745031050015587608247283796395351253809824059180377633908507166026652829403968469009243961271249745287227997327887449466356090081660859110516937195557776760592742860736982527792762167725487538929281638960762937062579931723491121199389648048952580335548471085796530133314219926391487523879747475067784499827168813740033655190891161273368971757372844169137085398125965663787777800518620266333807113779295737630256572725746571412097521410078590218884350735826324646217240454083599960860794883221898729905852926840904317893263572715649333121813912027896289957514899726969570193117959180267646989202820051298064216054497713996567635105267048640615577513651101938561116633207704858456036404046091953126045959950221302912005656234371433752613465011295064517741920669275436394447848498759601175461723405559477527379342293184730773178980873101585291403533049186964248814882709956905257924802111589743563500334857332464495939363716089069274445304752832338880382515795403358316447947154169790604920706538245624404945648226517076216835849599303190482782958392892554895711619114903155154672655766552221262299463815599742951973906799183581221896329578528621627162065023182048511471261770262457830239286630447739547700937951277044618454661293040873164636953848136469135747918691330146664097505531988798457249444973539979056815121537896993306680740110094995336832178054764263800272690899543250949260957355502164000031507924340699334091500750533089066108211285346102771219527992200348602720204925877880661293021356542302262549899840052823551670029276067083102205644861436254558250616897922227806648361681046905497206874442469468285730943912341015858092240002428374878033631983775466091859069556430933556738676051009588971680778716498789029802470832066287423834893859237053882154314785742625374903252070959247006555166244428417093221297926287999007991718165897188537666522017573983230869184810303668986005060492108640786196422510197027578563200293385520593169879604378877319466737353896674396843545202766091891295997099358468288092042918977072073954424311129423622665217612788844200393835575172477072865116768821966606058002015750452876253238187944799812056491056999409513645677029463566621743310775560219669317748926964938417130767627899813750329135005319202571486977021235234041386644914268980193292451511003063444242894758284341579239966549775130995864669961755894833740161663618006249207416750747169316709876137605868044749138389842731279754031314414104919854087725879876041346124664348148358969206683758473724454963621916748017486126558930157577767440567398195275540197915544368990568130879645554456728049890462195299667895043814813682276874905083730354105321791796691838282521433184315378993620007447927175069318562847036560884745243722584491593575394946084955222965411077289413964584149179417683923193670504171908088682385850491906768590617654111641371062539123485002603784485983445530578304017992923143684256749664613942219977585667465541727363935554791233674119997852515021539645626985947233253530524597246988958728039364008338693297414465942631214488367485154430503210191046148716824394157328543305363613741330676188377605732314331516772296014508696493652921991195653719305627346101567203756072268018284112419880372985235915098745603054599833422394761235603874547224408534776207142659292733382359395230442052952653358774059060240771978309261117985402893239522838680747348490241742903139020665187041750784427113621185052363000804091881774737376347909698103930235262798496553083149911129242384278592233986885073714282616342204533197637178758580512549921872754487261380410878345753825841848895607395644322746981879164728832085459285066421656049404284198106574378805006443470958740274887693826616543741689142612930115301629574307878956290909337124005072367803393959375859586177510414790590976964195203253492875806910335698822771910182653373845211626859551648185424125685614428081671051308375357649507301505781955024105230254448767266973402256550101464064429077652415959676554569865806557869162177628435128166441339348747132450157808058162578162713299495385058456591767621618668510530479099565473694705806405134783057833879683334002573141455689302796262367705037090918694901773992277374781114853379063731781278943448286320676128727418151000419459701978744509131037654877999877540513831585544969038243356638139688450304538494562947325561915778973257347846932373066619136365458426862919687282777450593564762119615886649595287232556129229650546924537386704442687287056913081739375377816052743553839513725663080273934426238386367130967927609633778214590854599974957395427203839495023969476200232443659270092676702297596203017158841607758508502304587024581720111953891158538624204414775311603183505605923474622492430425628433485877210385552102968678800910764489540109215580534125865431292491202862598297522160368217282303429706448866933732224898643177027176001985674758754242766976901460221729401391706434433096339539216485952326804508305712424388170951183353361566201365347543722499486359972528140299414280591450539573822710493362460741170942922250799938884826997918785054845083365719121020750141378128647520024090148936016113051350108606933372044342487267725215868671961669962709178213604723056882118929552775458790298150091375923911763846363954943795693411834890509653717829750071926496841942947166298025980753551329529029412496473794306854814055240083057900917325351422176761506323426867919013370416924183409886927998935000654072523170974240998877586496000470035039266604476692072337073337306353208476564996355955839452617696336440850527353237676034961746426142602342264574735597362104543866234876307925004257276160280571432798016126281575013625143032780398830259997458961204607817727790396003912669657199928048300545578384699151364215848098957032724260172047263920851866481984644259547988618140369684271412414914839783269682088204756563015928817460093173029691900813551087298707775058629626910796521622040394200155022598881671414572536052930872522866543837480898394319363226099194973216646705044140488576733787618084986451740533759189422908422984754547292061265414267758019536835100607862971557265585890095460858061350006244084364192295280583344851604752702096933957735384617103175534562863337720930527601668956102377171946508448540404986095508664475777099831805054915968835078603308189699389907109481423336425643043055951147866062916211120468252788863079335477951264581151177074515016208271788979847217022478760111709417060205430855008715884443449099302932019734283629898376515248128584191268536943834809685431932532474347496022008007907283610737011160678207725627597730963432494620043640022713494497915468868149034045948222221110007632481150521618246794454755575937633236712611384554217791370166346138071679448324042034638806916578984603517483905973064450494117522593510308581877014686783059528148382286042844519874905415791029034465626402969911507295574801676861531996309060005532167131373554811479258686993608873406620780639937179335950939375343257531434222924949829101615026379707004836625123111891664890354619092620852992443701333901413665723964265954724576289585150049248429409555453633876026228489327958728250217293235209302631502446717038857326744073552359653048237635791014217695213354580761707267804167862381268757836726953232079022040843893424004755988156586557401717492353835024026199198052283019740903125624398047814046568631308445927851442265023954929000007616839113827442698647771859975231236068438365290679239446561668317831410251453039860259501518942925145393024105148991373145141628003292862025115876101597977365732758694446368627605159955892360489371383193821401813196852990265833403058421708097143507370728112780438148255113500232522400289085743878467240152925239053322988310254770629096103052430309016281045671340401263091876787895591333840397358398513708365666150583889585017029467127642437084250994298344988723582438330236253636696754582217750645026451095962606745116074442270994672140996821887228140998553395970099474921989265741655943119735385089099023134766008095005003923264983431751470942838682504094577118931198745917064134570824732582578482967340145563587808015177796729569048734149094663760807431816668224598738544207943915393027801634058007515627592833552613702596396735406748014212811208991491670796682181535376934889954394042300406464794506493610631376575611610448581256306338783286436246772525922807349878101700749273916961440416918921236248145922418528074189755939155066945821156611683122933434224209568518965632362985202052160184150320870792720355514921156810771308120807020095614354376287827174973719814183114280231028746682281383067237128815366677723101161237142949108736448875983886938106949988755340214781628441122957054223485062275399095281207347097996066414315014440427105069224361319188183704985110228553690553872726842408634661634568296909991563324325050861351110904985997610064702933960885060028822331112816407160767372979892092960363732299516320093608032299037539749740708728103705430505357692704024115408352169265316078377765811517971583207880376706892154002135614050763409981400354365414932336617567269559607053789402237593054418537762959280900511757664766253826703620885601912957585907295428432419951136713497676506101406446534697826972775107760728050744000580195541409680011560163825697273997623565439243225500921511445533286598524976974599264147600242965800608957285831562938244675637575284923781714227874939214594952620299058200683519737843307340095902818729289398565133648124980595305569685601396077986774407658791658267678469563306025514337537098089725539208496651190346205445204891091183412489652605808104716743835958256408677786721612273071218064582799176856566395421944078006247631479965493185372735681728176791027553844759600172272880261053628348334408190018147117176841478616339492887210741652334122656455530780818909001096484996678538924046005147594015887951152874632850242678670188261247027324853974297198908067889495216578449701861557983696777503991303364838215404594896717643110703159626839263227058135357111706029098956035955970993586429552368482793596453304904742587142278991288151446181158364084264325041894116250267097389620322587274242444417819291842170063132649559669717885527599807009092259096080325182544938135455083545923779131662352543927813050062984331178601421643238205131325422840743132394128001853080029689372987565913670144106148608062754091912467440383372788364118452117020626888433269788231338026435356609704012425064409744687365056737455532690114797365587292260105503004869024504243509512578467321020408055695165561100387339265555665528036474685291975859815605684141913691103120390169879120521113682589368399859759593186557930302496884667002954880792476815304783189411005126434371020479532515401366704513041544476683243881535711413667370382577093467944528773860538599846477516612198485804590105468118381050047981006577461009871202938031878484065372106419237730487924116791154851126378171704096477900121739427561328442288653319341836976784482903690766423061637955036010099128861299352289586716974729568364793391778745114465845786658364509784886037896411568307818206867490436922937391754964997201714572484561845441855275114055412923625644088588550866468706989986122981200580444927497682257371832957999767940630361893158484826593263416089223650052863551965865428312956094776628892455646776393989514771970531761592975081492604540994360358723177981191532569056823750436916253971131324454461724788036661869307880664247806137883853909112494562435819838290416177181974616511971213280189692613413236312763782536295089324644653095473563629391194788079516333274015692789787012078625757815041467041450176331274828791448882423260799351215867624078621469212905185406742603930032144931026347514663541317149211445202108159917878286915851938809915296009968987294770119678394466589090277650745504445383897049297237731316186814814549481370374636639771257358020990453030433513351344296011361662959616880539490053845452242304069830341747727911343172045604277013546205419089000576315640357773933156880738136845318185433148528777401203491693556217640720121559028988315788923611725092329778565915509999802621449440527620101882989549211142370132241806194598359846947503611377215026172206025715910499531391377042250788245264069469518916590300378274630036252253601539402911400350524965744490790667512363199413186110528040647078768517303446495502692379965672741061876481146876167034137412059189201101144768884198069793578793828171072402225805909668087002646256498606709093498634549431754229918990870831911995225403794015727251272267463885161343167593490833257886379232025053204545054346872540218940078358480939201419353829335838185985216206854102749768167821473961868105052887793233323760291781074355043254219159563200780430844647594425166455943357293514554219683426314413634130448875474344139838327051535529360951480019162376840135085077103717442844762554795474786742399777399353871530393492487154714850146887775351836239139497863750140229387022736471909053720677466203534916867712330624314060663569622043581173805963085282580229069001289121864286643334102736999763643802293898453593458274776911298912454053867409878316111950616555569316053303181738330055099463584707584004756457709713754125198274856115692358530357339749873836227902611166126104112335935829013681107680216308159091232965275102640608515941143408832901833873296401643765194665334294637860295505095989330516661828857773136508824494142492832481148672792486353328083914265268370042859019085798599949124684856101883275440802404728476914720028896746610091019174871394888105009138389254709103515628040012953036851189822549469587438227527678729514253468819125326635334067797829410955952762204353863676628053910531672672680483860670076213055161285376522938135423657177881365631615018036631200846852196065365520038786973319996113145542858453788569302359949079659148224206493340700301414740854077400511468445411951926531806657351003634452370659965093652625098424315838247865327926938772698870391793115895597553189788824051435841216867769200697071871939704886200385270866077461212500648391377681448720225799010314562578815561154874428103003011844402361050567215524040237512745331860495398840908409474346275262412898974143310731542786875321862301042416226037282534331334750999300484325951581677753447244095521509424604927256337989756471067254533753340567575903017327989174705107505618518531870994429218359463776177146390173375840862338337305924787871989545634342359225343319854127381380855927294619838201285520652984107887232136968948201032238888955931878767260587098596255992205755800193907180856238279348828252604590274197119934614873876316607634164404925269854452874968015295933470083409300274155811373439548422425184101577638230431433968824384766793244303019881233780331545920796834883479485454688773059457339472796977114785348337904284110603060215486468678486121961068373459567453708344334636120482120651719595108597272965076585149484342126439037556850404325351409274257372163984703552851054534911508969767043208648723186187225095967335112498776717498538345628252958344647613755104361578303089087009333298205147763087895045263529472552401720613259652644396590018715678651443568727774497853059257167949292870541552866437695770284742417489718547601857825277516062553394867945869009395129187103903544617338016818467378086485453018089898896147500301180093005735370596953950703684434479434526090608577556167924761378352018093024128910535936904590123604778318259280230538938721498157022716257590047454622968723226934483010287430087778181237612263886951114417435560477229278732854832186203400540777521289029873639094299262149969733209135131108417131491127660670328477772980561557402874780642322100353724367863409514719272168302354534278568988713014266500913244249274497119828150389759656839125210730355147733757842366278394638596050103014724901931903519753076173984906707607911135373645531133053181828230606202738683413119928856686394862904438590239920131077218755524064027306133104075768274055024233331024041874947148250583734431015600785366763279214513407586782714774017645319386534714093375556989631496096446890016866052735255633317198644662177526020408865164152035831428515432941192609127882378963656033555468844101593179209394944555906107163771776642445505542725416224597310391811455718641061863052594566017281996657253953230911940051100409026213846048892324780537325051340587268818824635231451374553207211178047948193911341257920155898814786111613714808574656885925161615940475849667856712992893754458446399792795171627000160930394373895897858660223472445847340769017311480624613005717182730209507093164194678760992795286535096619195411435269604111331736311613864712451508638812959563331850543854067386112074294212272112753994375294296888631324420566495938836120752208836732268290454531248716857345577256087626063486238810529486409567199422163483076679050152831484084460315526008380600021041925854564336370245648499310276892759096568388807528711662351291756656323075386034947695104004315807593299108649114257845620001344748083755921294737625422636564695585106213544847974356492621618417918212984225563316601331091480841954072098656785372879444103188437038854290887617001369663476936685349374599101014240610186388662822833876622248251813707648753963380002077786490348096001332783087708943073535222831087377234507826197920362886703408674040813368157429594325620179719882013589561259258394549421683923058662043964163117675233450874634283173907469880366285336931967576986337132802847688658969131845091647716707589772073141625333641795884224209797278709283127294633342273022131592381246833874809071529705861593340575657799149588081129583587374117992340547606473697718668968479581831754114762046297888290289432847112794021940691406455584829056189338421289235951455703213003437751347382688904144764801796002207661723335453496725695776053981569841973775923763822451092906036177307496802855496640102880144568356845836504550666126703580681071577742102215928088682483358879602499470505680637358901248639216419232942873823224876701341991886135812882793914237068127566738872386648269658627016521917320482855261861889685789162357561197089928598126006955567431699364126781478172325685205588530161614748181980605945816505668588271897452544013556978847718404712740674393651052355012302135023032319974275211250855768331127464060248248523398848975382229105440434818642606560463670003615350587008022847078709008964897390228635703059646148469774363859359757920942848636146527616571828715146958989083903331914328549762706802588293988123515560318063980268905680883864167420876377602435376515076478944765079475063517790147705347775149000144447379177403538330049992918894438965871836398326484984410311138090258142053229133288962178194371506683747171603037481601839033666072120505383895326481696013745931001450741185228623082317378881026940209790753337687505454334292256015530634474064535392931083389815437334376842570803958368498040929383510184906271325836970107600967408558177021100441064123281974102199598442178971501369413252886254446065543925319808903783930012516195880736507733200385915194074085285391943858381551660828618042462377061534598822418846047925813955012789850480073958507038307902107127958836363733034448655613435631459988306654445192668395994103250505644454535166107514698301618175392404362119611851122624606782755149908622480419658890965287069442543846554331584929741471798929383732226645892400627565573402929108414944316245700580918389428532182318514208717985289250502275649985322356921780296035791840517896088427052827687898848036090668823495759652706745856995600658297062813857835711244722383039562243846183236944483763336533653826151515606368261970180079072624323099916142975946167909208477351016149084228054956800973961570887280485650281997122186640357865935251168472528305717434177510024795639605099580742586548758868828082331095607630476001890094555809266832822479558141935673616707636764924600467328429142152719597544968532729109845411594549796799108559018790778209865807678973858092845280427728377304350461968843813208075650095558357212232515247031235891342881193436977960088430941025356211640695838922367791959522140458972679777395235554802019566437269771662012217408441278417558427671240855551015720573040362504846017510815475801577066211428257311722736378885805313129947182627004029278417879201338014069551016210647963951496254288881794951826872866550095346502999771957710460065906985540758302949651359017524848261390827231201220393804978621437156272689848578641183953160277776392850815130980969860893878106003044354938933211933355875220142377660050410964728267377065234935321713807100617668957795537531013960651503599616753255569896271941041922703059476045407982329113088396131850898969301119802360484327421138211728639494172784933108441300213641508873532783632510915672909411803935981225180588673837030911695858241810031523934366735650774266649994913136059434092152990194413411354031722164157721337734233918478197134678067808250205911602241260749497444681365876725867252615325742013704271814365867888886333555883992025048981043738853314958319723194014026377602369400150844846156095508581985020172768402476192086789075958011623656151969094080655928572625749007922768925042453600961655188003828921142197735791221827922801564822899980120461245220961271606565447520514478964587312148342786892401745522703215968275650420238154061362063751631440856668890528042196650946175119412370210194675909032361729116393268119649470024333268999583399090867764572083753881742324656115677466044989762495891848578797045113888073312707735648967532405943515632285218218430903659874954542934677760936999239468441385131627453152205137647390713697643421243039029162773814502428300766945635904573850773541621053657970991098161790472010828784319084000737828379334334874364450661899989965781958848878959855654923719965150838679171528579143875949362998253857971898555979774706406401127706111093787734765299042541544179180672963671575678048464935134456011028892643471329324421186352949918375369874994599503675560434008013756943149578700083097191689900394151610242546831979522780587721226476182706135651979143415117614233481744831818986486953918741274047688888063312405888760873412995196507427861659765623609671802525734709999513202926291567836827827934196662949860260961452397891288571522138626229347009080853971530016655358114358062801991665020671036846348193099988005283144137413844682066795962118279704932372002723964913689144105089450321610114216081032592214354875552336661743753499669693751486821268357414856894856682986856670228797238493304697962909475826550431015097095577844265504837949583889433527682690192279022896639771276677039683878938074899420210764371593614238247609531512327958899618113111593482845390712973224818890771130810632802137487248677485107167348280732513088571105213703262106828791414737327021515959881839378115654052268117127926013393183342922092429473034812209713014855002836762875294530771554232172025741730138344480110965922623395219390817908394437027768826278892267075425375861474491852756252224347260471660690326152712801166301055122772851370927142618010414399291829958730719441534271095268801763872637300159405321164244052919377301098733700157164720333816682954372946846218751310512838711616496834948818770493912041037573224518621719427569493431103483311429338776861348952949201735467875993932501156367987867287918405638549791472393155083486703117832971060505371948384687260029643790645950575944304062501097684655127631725381494297213055453100049017679632033154092413882015580681024062443044581638901539325579455755837369351813939850815404321867281707915111527933839764195451314021740961759640046939827549552437764661419274312375485864172654694135383192618718991023899081023098301874527295872771019207944232995720262433402927365709750565590699746075171303086019104731630396198490340305961499975590999236833402572222276237080044662599091532107750624438290787960164904952558166989545617636507648352277618621523188114899054206927941005791199904835474297708475218882325504214889103062724710001384305175482124128374136842683969293971590490855781697994114526607374505274083920821342206294441578093648054540497655756531081824753060910661668630063751293572416738430439469483421966149290227426132384539446095818874175483614789745344831392917711266949381267212509367556138701529501258984132659859946002261903397970282890869220568348778695967110792899723740909481166331013415280534108320508997573274898697478404475635760493589829912201386047987648145979157695922777282871337485460134521178999815679095484045801869706237128530988544201436999415844462184274785404122023131541571740298272689300052204607542127308416583552505991680173096724783436490960412093578848581408181562482366389111294423938548894568527429163906393260003386651664966148608283426305287389321788407096195489367417125573506779709172639873319200682964815718092425660954123683331648193488196346458873626054920350071222908735904778015872840556313270528785035448587768869186220939630067658169202923086805222492066790274689326152491611061220178831094573182193481678726690909306346641709295101596723434279930496323747612377715091746308328285172105452843229225264536082388973542703962357392220238220531969931994431826964975278899093265456589208058000590587702801885393122224053038410664706922145570354647086009696117825451219721970488415710748292936553554930445240906525266355087867113692709175418939962376021059777979483254668796552756041406847296967386871975105157792699261183257694218039890726298539144286284857837131299080019338770239672058496289458197228034093228511181060401066800091381180166549730382397457733009724969603621797763268806346953533533323825523537251072365026150989266223062185722326114831859030513497308681075162090074639133128458879615062592630283435735887800657277579737108339516720451316629884127993148531426128730883718835276034954778295089646874744329566438232951433163347169858594418013796672685000045143699006782713766038173143252092637597299875092730172296991792360681860023968569474097779723577059738351067877107611553416601315286113590008534014365703568034405559773253315730082553395684654635147315632922005214370947000667476303361925149050996878306638158727501709795387797666859618648510280141457574963312567554004694530406037013198454404072633851959406525397663724567773457976310924327022525935577437688503198776169059731574259129412396474134377195499084390062509983454707679335914982023252983323462757817572837598562765861650429887431393324596529665829899551066828971272704163567837428522473407849911729024383745349156016883372069460207923249016366262169492610020539624626854890931438920787522656863750256657511468444572113826491652972446939639520722306228163396047618856584593951736877914079550044512398872847087387703800818640096478328470409090280815846849869499728823810933576307016485926763968923953740209379216748767933822643207775253643137039115756044372507190991289179832647294660559952183049618809118152455417294217020603027649244254052702380521353018147410314864389595885902336560518615919817036948626255763900722320310733861775087609570743888960085881790500849998194810872798583189142935205342232694796886341908752387707049189656792024375702748679190455384321803396070856076202934544482669176850345644824826414289211250101544272195303215360234687298158428791973412726950183392565297316069219417862356341287939067517429876032823587846921515553828739989398446563844452098460588355570443282669926363475440887993850828499990064251408921175614709323050512952247010451785712875374070372796176848896154702503881974556604645910063768262942447535480540494172206465057482635360274177273849341560293046682294079967514551087122075138172479682657688909398908014860610834042756651877094717298688910984991571200776354514032866216955213759879159601386478140476072506356290997001363055590255235676300137072866544594941112897171923213039029228225468459282334398793510151880066495978885308895645633645262284942885470311874298181037170463948939570123759518024499136014144884662085884877401993688651861330988630243160283532363503782779619189207167956468323991001900901104719973789982693555957979419864026727679001057046163379984487504219419451661750760951067745235064989481428391317388230767517902381320743924559362504328824809113920103922849927074321751212544911770128407700309706561679113949474502955695658886843059801712477876979542930966443353679389576663935605317675382893520023152432203562138261153281450945396802858066608774098803125663002908481824746602134954364469561359725608806786587311568553399371314632276680504778001132325349221055747323633188967907461587676290500319531688087384613874729979379926492267844714893560957340633064006416245583800470611173916035027689968538093107213737293878267628089535640818289537713834972777148610640417834041117199001578195088635016686962048527818394682601338397697567129378772587950289612339171179825322712466256159764774242203289119679289638859071945183458034837012728321876757785845947630516091503602792968220782913370518294473839550004444157665312939243891470425099408988687519578267067913453699089808865958415404923545328943655084787144622062790016555092888641884813558963565899612648924992707518043505037101322022640048079577414063983653973768592788115500223698365379584855104780937524004074615681846945515213320366278087801145402213494072094334104110527414942586230545978865349889590818178422144365194171506811376841099303830892820096908711880736248478559850021193863372597554410317396080488678593744728153412069036103116520583792776176003323764035277593204663330143962070590121362367934946512194153142820312832125683802948707325065769649101013167416530199720195831036362405691946154106968807591502391744375835151319648909466775186532057377878279875709024628684843119458029112046738510473415404430496957375078470129285612444266538278424635952967018252702053531713795404138376247902455385540229150388085574560255574583628194600502684880608387343941289049202882287567195784869489365097100894833883899589177175552634809622762951528086151115025278761732590601978491456449933572273030104321316255319949478182070679930202783444532976609908963458279787003458361870848903446730740801901917906983511213082797186877555131371958446453243101989767506027647160699253413882891505422112254663303209755405193274851877469655677436438314186511499072680677323195217309464215937474920200930884327222806786817410987268393272347897413307303755297945292605251324941263543087851139282864264817014321257767407265120322611830740410637997411354658228656935806801822140874843213648905284749982620720230689836244277718220785629635038497204006283589982689121524947732682044538732575908002895346288482910899307761565726622131939215001374654293000704494263281927860404488280010533851701233613814735814109503638595794319437169443463964471029688073198970452948789817391457838759558171537268906749936787512189835252480860175561712648995624546434745257385217694428722327405096881453301896334654891761679093245868700138080724894870180229736825693524799797558813202283908708295100894969273842410405194893873494032149726681747516839392146420393520235555500094592704766627287816609398966319513067064331552413199246215717018167232676151967082532208250320455755853049798523226020635948231246230619794380784528131215672268782325253004649182087566500923830832204576622611855702518560023135223925183076691318049956515957335165166656817467531017313229808473113745577848596759409731989869611305511763864897814808335817857767245715324231904890241954089127565650519367304717973788989143821219099364901650873437355169871159724310146462879542321609155602208648513942108983852317574389680790548976198436180903444223182146133240450664007728456913596580299417540926860716852980198258416402874126338303452697085111492232366033729767462608316597474022270265541210178411356992240750821345574135869203372381848671990875646641488144982621382339466667402499045259961036089367595707474656074906794565916701476465697296553415335529259054824647690734714362714277941790735252557643331987848148196242624894000275205467280255596506050264274889154151625713459869708868742443480051186619844142896853393987176967704987556985211933098354843855981144662512758940453001598991472671843666723677339330141948064553444176100558062578879588215160607512375149947325116524374959989365750524069634895431272730836327436548877649098531018967539697930780768356774637571805600252739213055221623291140658680548533682756394616133150004924864224577121128613219554209055132955607858457305898159371930074374619671653218169652993461965763337045386830368299833795571597832058263465839270004697586669892122764223535581395162243140010193735949136908601892093586908005571321837563428161985303587884069733013155193264078630543190651951678549721527034869975098593872109920802180624826495465817389018421558941663639575352975203193228759751683660907987564173610755598696976622452862967851809021839785793454308785199009618958636911885585018637348582227632938175546011737256820902087456103991940279001403256488586188514837618204995089340494896044650931738662421052612363006069114737630657185150385320029521832418262594065908515875626302973773921431900928617998859805697903692189712493677391993675876472842499860018555731916344511998352368098791748128490992379613033968990775769491548865619491241888822228176981022487234342448051907778641815645985896418522758647105523348786542620687469884374243496934816800519387959769950367461446983420507775927107473473225619685865190207808243691567397159166447758222788262624022378777810021665105602008582279857598193946254747522709157619587942541067859814682017608752079839055648843242300241122344932560825758733988855013251518503873259619334705528215242311069115197622879703003795305334792369467242539968599322378264956753498880403412625017472767959700096299539883802996741875043655579849955304914148296290169429410354456985841758640049892604498747387038841797294373523208176366374536978962439171882924276736073486347878267691659045287566533909360727658349776856056327222436124178822392405929788616663836464500973163493085418877879978576964007958939652556471547716874987070104136616879064547555242030418331991336045613675860895885556281686498783976944538736030392606251235815751969098464839190781957778688976773969208551919572713066617297954616270565487178017734397526155055702696227302306827366385712682161448977711522362555816581842801775783589963463484496247619004773612773963478608506073832697576848261305014748104888630419934778142825792775092911204425637284594785887411762765181685427872479344381278285527639900973130579619398185083849217789125516274646418747105957366621180981967311679669582098485187156423390908842178852481746996427112399625028684499343561730533113068689537551787119722443749826774674761225217289957361910855179448799117532659211180237237740857026888678533549200172121576277456896118862886590553149749985495829574129990062459726158891330405091090447512811493343756272073126577822965378478071622811871270635969929232363082364211666346805414783102437359570946491779600956873352120590026733574272897680502919449102191744941999148471267522544767034639985645310189384903134109821971521124091070911301681957844359952836398753344366566889356400344763856424071028225688355583420658711014480996251062663147989837553757762716001486308272257164122925567268995899501761775565948572092554641874005357479642526309062560231181643430479542130955539177783970879627830631103278889715080571171865679621613452023440445918989287780743145254856420745191439417941072961009588507611298988422181191826239555533100751683088755892010603853266247739031879987280923363370176347509128291935616303941571984792127919678217824731402216393723096756316708033152810105086134048662888246365042071632967065028363574780319339929028676185507470573360896846008806010888087788195643188715572159148368285981195267248521465289096617449373054597972842394553737614763094755425110744619163961664824259564328062801723561938898150269567917089926165652496282597748675812670567382988435466627878744298280154160618111358542970169894843576476563991879460635113070585260716976993269118716767350095653554392892389458048000358502140879971890829637765032642550537199999871003938378683264901154030096866584754091680625611793858211698487250234590795033737568387206241135141957301431780732150898408158791151384917809752397622656791592933173361527964401142602275729208654884725189324388756503180509982712760389169196432900795245901601899935383118772358884883051167676321166497794685997636801469408784012349191826649407976579944446824327094932788998671314721415949170385586728632573152207407655085092025141617194778291522303377850900773312657565502701751248976475598540704898942882842807436920180170959670204602455913035388303715499336952700861308329273050315390396129008697596617506379849717852092139525494432398590315437592158986509170723808729056676603920499883997296716432552664715720888269045529210928559996932594540805472581162049555581797457580935763638369553250032352370556748207143122434727591905156953826876952553965788926714618936488725068793665711414755843055673618426900572147934961314104649739997079101078326490238123672951568395941092150882294220842869015733243365722760403714528693551373205686800701693800247727918023196675184152159374378666317268103949107094947442497743417558043837549784419705747084742385885604118742213221366392558435864056833655033620050281158862438197931483439812902672957624179303976124444335383824816219978847381144656272764487963397027381153607827271730903407606230383734872685259990610104121943426617060639220268329297240356030473873955855306821634316818202023148366899779900526952715138969161775308529222293834709345552273256079930096902474157179963479534269168403571546540572856611930526192342580317908091733848080617174816362332115715563258600849120405019283187707546343493917713678175682891289835487583924467939339179136027462111327847228950505106947317262344332055487935163598411030230561522798344380831388692442559735231696982696272553416088209416071206531994833962330365471058592289215236112007385951058288253729054775538451615819509575848075163652487931526640124684984228050847707932132557908291748339474162736114358169689965351175622413911244364848544964489633726163682617478611282202677351084539732431145227580213001343816204901561640769427193733302736262929035587392909980286063879115784878113868853109545706985429932674265395432016736773133618681972333092406004963174895124573948201513293896458616808626990427114526746662716249231066671522663757404462271425207543671758310104598669702393575333063311982949887481068191125216437836457717844775282691600659771021814554571267506483387880051769852470169694953900392405118711772309989161321217715410167805695029339442416477127738661969991339042404407707220699079027295354605731330154203551501913475368229780006082536203492827220805428157259474517401131979874272966580604869750566058629462067266470785844809523777668156162358011727434411437205889612096441246146977198719585296162946656999065994996789648624052819232602408614942824416700477159560923242191632915303771346688953170869163577074268136511452727917685507261377410672332626962252168075461881359348786830560850511019834491867231995904378816691643851530723635219107485233405292364203746798339919144118679037319395393512117752760681285510786646032168899833511948419390403361136689028300178889163421830498925709115745632335832425708717782418275267063363475470336071104713209511242995380491232262112022267782557936511315807758873690976965270778323939352136757344113871994700326963053069528252929799530998770863090674217546031357655146300895453415170640291078550446143268819851129892451162013173590755904871837951968557764738927052962229129079680569895064509188844303619796778007937912747030354869575453039904433736203653336922777979755439145302369085349816693870094803805603145089711688457363242632437665610620766991547730965294472991703407626527303612924229004821762820521376755638501111905154459938060376921287624698084876345659561933065847161731892988427593286471172593986159817742300455843705962882086507043730397053005736796557764161364952982615837307944510176817779098366913930330578270399008373821793278691436603994416256373529914244011061679989926592598135899601405795528270835552841036707434155080532166854909828276493199288870303957823865631841510587896481022137171038974499733774100114156412402499381847846176106422523906553626498015773256121482275179256170674227842783259415413646304903608798223253775391652160931181673909448638009305833689429487728161204236083027361154563825274756814468132755382322533486889082030555665497597809288273744587559446166895083456626776974943228511102640235847118916193151908921377400562215862899495844693713103575415629780188052638712613729935717255571209185429779198021836534656578915236408390947159616578223092402933196322499698207420027335398650711210438005516778183542237201947422293072683402503895308505559761372882712250359491249678633856774760687933466475341324419321237347187726960097233493519368986430215835491783579988782127228895847239863365446758610124708447115609241712740035087400899427827856754420059139920848820517089710098760932451611970101356626903279548834100927008666846462635974497082949295887600186960741458168983225591114552834241459607395366148628461273064500861133987645215408958255893294816387112868760693003097121892908078089778004803812138104903139170745421868975688161259861582454269690867898448212371103213375717634101523860716481275856017575952218591941730052714154960275042102014615635286410869042285122710415552423282256567474913434033033142270352501438376526409766568699518512020210425569018129395965561548840504195979984349715144962738363914787652217236216800813702744693613774714698235848625983538158192839924505544175811393923176175321569364876905878647616590011549634589033825528692155937428828999602534295786241739996280278437785822630555901708627394062630797957596374993828559892916422453525005473791529030384050947335922604295832903859008776407797864999216357607142782340585912175919346871657782022877125459768398694250583171176461999353253991639464279367590123400421489951376654884300536536535353310259372852032209610333879691967727315901848449047039062245515396433801396042060174118599760466127044713298285131068866666103463219876567447061087513533718999401020620351870009857814329770446698810995314935763974340661728832288973653091623331236516336319504872121695441462635501259677288010858492616900201841778994153115248057499047906334081206787153980811647496170290433823023629324518849163570994783715753925446826142801677680360575263717544216998252495993109229151940225003551073420218991975802800821548447539902132048071055845978323805466001355315419490147701881219211632839042567289932673686154201690781355252994222556800511013679331475834549928771370767136616933458785858137079243761117921041459303250416399939993390786266937464698302298579884171915485656992749439613264647814239714890678452580574329942466640536533756993557158591171800478388941775170552337234204670753269930928562608153672751383207751541680922972887481907885708861170654260050701348060083457867384947382295955833204212251607097094778147198539405664288392591980151642082434655461736873143876554396136308882299510373703503412668999428065191589624485430481300723516205931169181566436888205818959401491342790109147141260845277931130403766160736512589554458338272420963214465869866566329258737977057132447588028430260256651542167602711344420508593376172310674636736073280582054458094455128429484460546390090853797425436666853643329183518751894049405378403894670492251365850996434564898123645595085083217392750541770052098262138211677606072019425249117732033915093576566724024705381082331695400491482625087759206563891609140866350251265243596605689996695966903560180476212142768552076508150994042803276589949554541618378970201121230086326496399802282675439761688400484781139973944816580115977693076070194397621149000309159346859005189469430847961605780499389677765103756737764955708951677887490346573864961576378906313141135096252836928140445248254927959089113999794304325602628479704237890585638689391880950967107578904717531618213021077227504493971507441942115514917122951513916354115180706247554662106902070848508493386960525671250595963637239580134979537209345823323094322623675374525500522674612156533424237138204087091054835804567421342383217820432768917384772640767660274684173763412832875354537375209167094264881442499715762512541983778342277622436514548832176698901926310613272393160607760208519009726971761309399665700235392593686221516404257882928360540957971803319753645030953343926464052317172751352344251668229257922530805856214992122577084411394698072971667332521997451797293487290938968062401158585737138398214647023947930661419825639236385377004684770632427861894599250694230518743717593329868491470661264145137323890443414658849150994488378017804043529614696915435964648961375214020159992077329079950596707310714766554541919737386261239698820710487386614898236004505577137192464750798947739657485939079668170214898419456375572902884372866569067536355684817199217515191819443534409520076412806794560351909039805073091005907115566828289191258611481861887585845926990457329098571895875985393047547032462813205306105542138284263001757626053884150162431555530974721697196399060605584465714951737417136564172761802129088170603363660158377885307987775237237467204146516066021168176712831133740622968083173118345177156794304848970419190939959149413316995859234994790295252854861160937324691547683355015543632141271623837486563825747027071787592996465814615090332148491551470071209434767594310077654364598343253430405013020951279995079429949794860261603970187225929784878364946874666360574334822975345329495862187068321547297048249025671194844866681201411008293622808346159601056727555068575725737284258480207157002386906781545830394446363927664222039217770383649894850343551134852843232851799744983773637399312961890893292215483074792947935058849230153793478879421122551983914838992677450468381243021365922587791771556213077148756026662232193410806124452244367732199252689607248173825728589667043809694705594680508916457434503502597432973867825783158406572548771539256129296031233582323981895940462209510642785852140750957191601879175204441395826276837741701589429984558697643024384890134610138690502151440579286587770394103042060010485897449583294328999967829242885984928082428255550301189299687920222936940607021629918115538044894821238200317683192464320770190911955597153096909927310416268703445719417316687205889294267997047734085684277375609381111960817825968432484588870117482750717736265665182238617370249714957300716611618877474513509467780007111083520579898291621459488235934995135001303729057732985729821080936304320855608524096730209327698461963168043557792176400183257230516554370206482315549405222413906920905571527087703484140928544556771604939306297985364396945579087964043305284988301835503143633872901587574800278140552765913618845214133167568356624852931362916366177862141630844130632827224864364198329223620561402109072053756499479328209978488301392772171286235224005969901532769218019020765287513076836550838854565828287657094985716700032883946713795404262426498220090289830165150532110011945856546092850310296586594206268315661412911547284692046198488476965269850829974179738301746813299497992511105305209985048311963977531103401173166309525213672177699920026052986342350960530998573397966935494954940320711510091174897880532591781916705245250046324922586786854474041200015225368940891345754932618465752753499270259980419236013400392294326041045382194507261825027400305880276210914888311858290534686888969639188438812528014794864287522174298244746785617386159881226047816515656481349657903973575202738347817840157607596487920003648272172177427197106422553972534440278051002638549575805277003434053021556553787402187207960887040519740047534929927995831395440096407993567064058048093056826008713398257316697125438368960827713323567005852474156174166460262680124508583710220782604285456911685825685877422600655312315911047950452088111177155309591385427589518945977440138692103529426461892235547455202705218441771678559719439885974856202466237034618634898364520147878433069613542724971420541763920097109126084686959324599637373320556856310949509240181806468298731842784367283235037338354786255908552395812909321891764081363679292104704090932040348302025993290606829853082500329680794084187829021893068751138453620961553888060874737050144715248650883800449132526738218684123787952652086918334588933516953493208398734891936826314426451429683139709420428066534858590883472069771692248141859584047024660457610272615499489640880406859013764822006283721548584709415200591227923119936420928084457488891828607880117167702994717172486382368147413718880169228020941362964695453546313085276769338598617945871745704487274024131919231177782424637453660154302890961427571596089595351831228128664850323585728603876601363706444575075936793393931384478718684192030495632057969339149734380152848784217325651063934229968361481245423841985489721566657942339779721867121154352062452580451625106987558612265651979704174797603539956414009393217196686273831350445552852941727174595017450057343168163219654722797286394083366749691940867193416103675352281328473360456309569106203677553725839336100938088992760542405168733140512800478241401860725999306723779975467704951025987654376855939359868508408390170354685064840636027856481471017198844970140780523303819132775085580727100705379787110973366989374582176108569498010703250250272193920786918178766155809376746739497110178341110497730927961220524598277591784158202325782734085607301876395514267558171772515660364271157966688841095448485873997726999946966364210317148327594148069745065501529223477571902244914990743207650806360000158265072402023634676199817263834046586931542045861295882364932627660069910238233354880937581507502094519507423223978294043380185331366854405082432118100991461921744240434323495893438493062708716126402581816636076969805729570398082298355031976142099709510141411482911873621666972679609005868245440588464411268988899423360176312116884165981020005376959549926613320965852095779456984497010639344810563456898117847257006237793368413825114094677093543219871244957068493241767204300420319977341152256768631724985314549244929768036719443863365617750594015472812547075527512354586969193755531645858804444491517133327117364950406548085161508589432119362778141966525301738578113303089201230131531677624290225984201422005051796034613795692258284638442143727283679485835632009220438054071035303660303135585119868570637413810650218227533368556344809713288160787335443292521509533101777809530288237279615977268489139976156565463844300101440240674059545922324423743932100139892562065399812745252595755044966312697351239744170575924336268881437268626476756524647815679663266611709358855297039078066167079016251752254693493594075927214522602442285889451502684007059253135569070922338184076225612062226244154066799721156911477975459761144033649036226683845411224494049173048396085445005161326063480658587761812968495901618824039119398028909845281708204817723939230807461082075464987216793947307821544702831960631775456424652639166040194037522222870995211913915514451135231165154143546345929674054291224438377955330058053866231772285044533158504355924761228544063598529779009741595371667281951822453476131207646673337992227735203489173137540464625791015269756321748004538789304820679590958717739694270178435120481064849883584141474368947496304563751244566943354853619456004908291857280890233262613881051615095068052433301285894035110208923037512935795535514181089760211385751539829910816759805643818964553985875812616820893560202340395389371416022956325641786826840654725542923077681121559396178638413879137081931632370679791802783705513080780187222395673490835377012030238794289084426965123827592049880336475481000376961766006908171763175299561323432092771146112609622836831513693580289634510870796424565463208218219661749478461836608169363685087621742473444014177757950347599492709892952777244003619774728600091910337957430141821774504476831257590073559573070358228204915141014705577319912787601496426390059259200098001609180117561563869516081221248688765084017955402050055513311259338319087571061423753886514723414169638344597138026419718299446817926310453730564274282243148110085990818881197809637835719251855549765734663664353996558524822232357682260376540504966743412110132736117609374916573131459573048535927871342543641656191803707289718032583173293865757811531735015653840086209888164827526591850641616643015090573675356256211993299583426476058665114227585030351083487106514481262111517697020739401120465123903524416034092933892301567966427510471048447856862774896528019271018875395410983874234043037977672907651255778487646973751151201425616636978825540374978846249653061519036960688610582954717596534492551589006577401520316182069633402349877514392750785387384341218870572506027526020886769519154977875870047506852111309584626005518251164415234445470410200310542948961356352818531740800078532181323988581759672940214233876999316546971655479738563785408945011257993430181587076267540750833036360486852186440529619130612734843571781103702716529085016568303316926416097801377169077240083878911979500833315613961852240509185371139034450081377313240995203886204490421241639007920812527592722093548275225431157121882317591127403376710197416746063783280345520806618759114461596404871677413373714249927877261396671375201025646031065718923335069678143955870449111614436043895447289942442638878724156172398953257583582049222504961666303202707478319017732021032847496450873898183403566063939933628263093750356776182978242036679237968940279864255203840303386744551156827097348212410019263504301015920470801071564213465145772539996679095065077189361455038918881398745701915159007610062433108743658816805856842354169760989865922771357732339740899718465528552874044743885366095280082557250085714511939914379636433358805733115750518347192833756100474488553825539810506827289787773939587097918392330727244077505857068573771220286976030680554454025884713798552005498230587399196154649877903891835081481439094148128995293451358412520598886673194960496967351977462175872764791019140141812316062078466166150516967971758308256946822952470990040530275960369514870060527886908093822397929521485554463057128928773474797392261053996808364551843251879484378920091484717480647792822961393628698743532213941902262547410815320897388951286268850926683933725001579133609532559143134630963366829171890524449767688405875371769303566834743021603413883367103921841186460480610733614628810294047820813081681061872168926050641466334944314614656202040200781836689476513519942272211143688506980144043517808574195103115673896169067838301524801001473910016281726090929883059352122554077934073389253124318918429564147057623631736937093880926976071820949822306580719690155010631537213154106125872769114539810571242838438897735580301609408571454429469796568568364341211350024106581245070396192116551260018474414737452727050802830029395712143141065673034141924535450681247310220049641446221379083301625257573619658225737442683618916406405827863583944957013270885613058925279056134423335502352746118967250935983367841758005884871624104263995392963443154327450307593947562290643556882114047599908673694393673706262996019093536385320663770057986254133656549338571624922746726946369320321636358902161318473041511186596305977617120046988370521247799634038427207108341291603376131275228314275589372312417915728784678869415000225316798992311197691657164838961965984382788511294085800701158503033517841802469774295667656251841103811586706411796322016321332854462110932885249263357034052565427053706147128321700209092360948541868378672705542997588431867386027989752368356341857610332110212667374047872503017284015785762748342732778527962865611518886128634292053121523861050767492895492219825953590714738818961980034678555039856287746423550566162124318051502055374730296472210872990943302751653906722628151611312331924708398683721119170820865773959099778853681040856989961698921278422251355225500303989576807176343299036613849637716036184850476291350860550149025548390457417780918389295061821067867520592561258530994101904134062925088761649433342766913109294661304615675643083019814913228478499933056165982127456377712564357894327453022174868741065875485251083406618884879778790661341926193446941180598463132882092666578811269840521346881216400572950356823155687300283336038651777454376705554728497155979298272595062445975970272745110102556605350237408845274563651164811262876864378322101129853870083950361586019588560972553414209242841829484265675342349399373767336181850935380569570715941179484804333846034632387623854264903006299796990292922133175765431687067177656909844463119160024132335398313213126832930188691945020316470237206736889121201128474340314447339701468361841606216680747519178817425461604207917067217681043751691690815199647311638331798526609858311846066473443649216201569304279019069717565358202332802861278569942012462131417866376651652837569584167697077614937740169439161810451996814176452794309477481009795058042397705353466445029684677287664694163048760895928625488933789725043403650710882737642169215915701419880789083507749315522518123034125379689123195606542696680890683154020368001513866959324003336656375487126111339409645281992588753274513864351673035508044134690744433007663688872198971013050765505820622132868086402150653525407655924950510804063627391143088314735434132880216883238007878547163117511314737587196819187635537326847623320924894278021453560481088793159580426508433299247864217613165070284025069396317966353841470225113757064164784590316917011574556068908195236964108127047658292337959441875643326035210175667497794097871965737460611765647842151154296045773350349293990189336220037456430953007057678308681805590333189723963308239872266117659877028104924160880363668705392478777567156414737413145085320680474229769755399248253942351738753841550381963582031436906652438702675290595631027658775116934956409524078429116273137262155554896771661703311997807400551832236409650432802460686566559904700133467891898156639627070922031023094288610348010704291867847324978173461258832966476237278932992061338483421571140948535573708787010879964080339303466220019872386755764604154217388648127528830975068205354446048311967784527653853902170901214133997838257558318859614923450037890738742659802889975346958849682953450765497159272008890194531811053901960892175472285655571680605253298208787299563127977816937853982486399153354109129743356022872494447103586154022371994432953946909595420606972734063618870789150921309667762143445985123430868187001176640729775705998523856671101962538817011624635411086229807932798485611143099218526242373397225698100159616828179263405486086873308411644385501105868658614532151039353833806263616833968778404156425389441923945220206026005875608924148251916161934655990534469614158843395309525200256030481611058951526416421756207164642748242591692916604259538839273965984527883970294805349797843105065195356296347562711424160438090639900184173273013479218681056411802558930060153800897522743876460807066655750741554435337960560197517193181140935878069739562189431331455962565199742112252569826564373858666330097936385249590633940218035098158103771617594855118220342489190898556157822782239261037965589480824650078386405988026360213568844906386013602075463033484905010628486384194700711047723093954520617706734679892228486317510882032787985950666203869375796756941160780423644524803186961986211608405748329777139325851096371752730759662772931316542737433491893499770260753587491453414759334594998868254959815777552516597118716664139624652834442272544530152548345552191838615727737867547500155311209789940092876485521224385829535545225222281688266486733437125720200568854084089003077513097981489879533903067065153593204651657210236695672418866692065615460048459298082023739838018038188840066647249117508799852302728610130578468270135862020800138788321951653842461966263300926138353269439272579215834273756778021322262002504128633323021052146291386764928857724931224958284652414503699400840006159894289968458240171660493218652616043252936983268422251318677457634444108442113166036357645989251096904710434919968915100661701881615164124460693104073118451693301072898125422483073220029489432344142174111906960751624216835175008671387056840934495720578895079837844334577871325239515262858299960699427846024797414563482403923166595776106653851315650885737837362870176071681637132577644390970341596528464576429704022582767210458470955477990278712549907581165334119434509586423219077909047573084241391630251314192763708264676866532105979990952258973562263660201290457826167805271245765224764727430413852954242235280032366768931304268553866727274061237114703642346062017714619332182402007577332513508079044614086721935682283623086389600584487031238417245653587105295332141557150389982532921529623959674892163441169094195460255460823910942934661814915012059486208961082072495152479307296143570873136155005412043772645895330898188332856583996576081371608507993432091830964140430729661330171904247435076856015453187321970436606748208001153226243450862215303644679811792414789836308128571408465884041949672735747399486747948936865809165857914983232215605740405120994277483780332206046947463068061949292467811414722008515374739279705022032743056201924383347197524911445031881483945692703743276789169970896203156173408728794685032354050844364693942164201113734472124295732467121846948989341037863774571769184196645996479888939449624542856324236871182226686302621694698883609242877926361287322521794776028632204029494536489102658797157248791104992587718672790977569470661832053497120493488160191069676782528102584229081031804971894002428739811870399587758809407539990726359610063884318720868487192766415422842280747716995553802871977054098845124496836050892030048113220298788635371380816162495715171811714255064601298074340575926990399281238128777080257566750125964721301459575874722579883593952929310194664597750160966645998816866982240998176827911388963626551096010557003807217770954561791890987753632125740138986582461424706237460780954502678239791355263429516594051289174725333204836491589069936006130004907415845922960322988001730760056600156810297652675412021035254423578983037891903527592452513586675803401536292648102594614996087745042611406515315512031503473492957756824989933563421314571682601388634284837376558642823818146866218229860623387327546815194969804307999901608542788494516340324818511869665942756573940336748928452014473397217681417771277195084606335033472167738942716354753435889327232344065191017211635584404050690556327717005048322637276628734883316214218718257814117980175419044573276301932679627687573193631796306793343443598890934295277362249240955627417838513141629175048211430986585780645401449970589879650320965717472857659826440644493439124703576021869867476453958499429021277928009499139385593820704177996201239464202034332123629927017620835847711734416442829311283571748398241697017402485354211937733485903441809007056053011953164538173188268210258487386076980668533641983318034718764701026639734353305525489147362568998798750018893944833828911742744315701267764970882505271535458597074095886146715581446720020329614076273109351340772615309278196421024200095702271034832917721786380229623162093706753312302568372378649904731218815324587203098878302620229468171569508602394077193748927137019598624959886248130777814246793784531760036189779634312129887354128309891715758998393185232625329896231388152164608720380021337800558558938109347155131462196656883924359473963559912148314686029265292770124717477957230927944481692548010043786393533756547439929376062108696366554296236374586692296654563698412562273917080684872963108940136612547488273472903602180404448819080937593600471889753395382805620354481274460453780160315043690791903533414094147634987534928258411541921727127139295114105130955599681331873377176236776329684878724917303189211907697172019785485150797073111260076847250731757520967921796341632358163271664564625919723158501382773361513198771041511471117038028440854139617150509128977890524304364337257022379220977445170906897805339330176619175901212850974068321064197029094884813827195450056714859172669022456101405479508297235604156042409314012133208572467408382815532631096159456898042545604873595912115669721604659644585462980217231251736579723513901030422549219575094745175029438372890130460137758619713049940703341009552855618124679220572702040508002208314205779925695968386779393139673144780531219623470305271377743528879683604483284750242984088628342002563422317763576541783063906330795219369663982451740705629312496940834480935579689702688527299198914887819551469925369407411821548074364031616564647324678713238088572459240642775689948515108623825646894045572375738685822840064341307139891582546594825763846327359672368424146562293431312865507465341328127836110782593829566710986855398371193541569714653631981078389550447735911451041035721367429287768100428129647850687818123948760513778744507787366741767944090936801776278990511491545670884483748650388822112320617548274689679077841254675719886204293649501237531809999468746492826836805243109941766101153759438554581136935442597222900427857708575531945079844589845963480388574202534579817178677450267098633570600748321078799198502869561949996529804156811697571114797048799143635652916958115043263885503023928455139718739525600924921113710852602651357138576720706593330918585714877188186585732679844242083084120574386970936909040545094882877089620495029251911341102847998938670552780435732022295339295016002197037010244005996374755868799779197772112924236071516870939065138256969086558065125322285608281211399719767860743716869575958110418062479102581464715713280192821790332715489185675868852945876565653824082942577462611808402190482508986762346440036712714800638481953644846165030387432840685836674137011679950635779686429373793526733434813718963255731938857870857646727334894529990155441095578378815360214725050855744107389310011210495416298279013555184770687240060173120822202693035172369374619080950188903767937100815881481625548338567402723434421350183328653422569200691916816105461162257773082418007315043472619943419882205181502765135146833946352164687345202183683081761276169500194590161300540977629189197435442141682376811628586380525914852703545756363710067586977401013606570078570320935206673640987040951335598134776043526246888962507261685666549164979929944724954261865506897355518287354390746890361451792010188212059092633968433698529885930071388978686217969707622479806662114906045948046082159649558937106389272265735734579219460416187948257520330155805364164144020626557287767915763938938966536819369307260094103138370955985285411517745092674428688307531362086959145896814310244345590505850974057438689880036764433493167119231697139623911867391128047509521369294667499316636890854699724391832751110983691146036944782852861110046520398748384822806525889851909668463491580599239392627879107736246883790147790405554893777122976910417186220355288869680114327401207910020403377939020664168791827657065249929415547469977314202229485379274144003260728731466358612909094900685643072263852353452918062473722555518098612032130216241489303510328267029996747716202371296278165328733985180552257601043839286671620167606514915762769907970837379882126636281862164883272150999215986999438324452556867394824820352089088713552867911120160493544552517089821914647919221564638153287790727819152394293998169330660019360648006400654270255935449240556392277468018826206169557889652170673444623414165828627909968314071381939299281745748903847689225827029519489256635673753206883825332451168589965560332295044204277312204771334746057701309211977602786884189374350470708251098633133136695153016235544922375926480130114923942711474403666361407588706369170242396139074313931861518818539470320008863691583731415252418999765148582303146874657228667028697325274633839856645505353071474128739998632977996900585486775391825954355846055170079945366950625240748607458169327015997082809730761416915533673402651275725967826458666117350637083927861547601028309820816996682258914296026854346000837848686202610498263473944988579980072982284949299862072260057184311062050148929003239830207544904023320422325677649256523235277424266558018363759109389315768701094288430652379541730299962358726409930378244071539395797885854410777575014520737527364413192169665654848593615153814156760716587823673087373908339979207242528129709531103010070455646784576316215102850546170084622972664175022525927830691233849741976799031105479791848494217982853327310666961766359306844719997333409384925472649245273829159927887788709239329107597117269935350763854507892767226981544994952844389091971188850139008793435677470415050311902836202897824786622748593236667913957277799605626704022789843610326064908414805278676409580270394626038027847571157608964185848359835475349871065387387583173372011335265229305544592529153603961434134676761243112723794785634631986546879379477870364604656536434018359781706638716826540917824673496256844579072492930529172837935208261784970085688806551281851327094581757547382006039382378573169936658701813341727807672539572071643941448937423938474431599678484306581666281688915089891727001097280610571990274405363517486077727889525097102591078004957658405358018485801001374434341746874883724150776336883818964898235258259372237436104868637404996490822286881065055366332150523036495838509876104915993164006233717406576404437901275078554244769118892573446161579319223638840837722936294533401542731809563267566103619098454086274924191623136344089022064550003541957101660392066929621071160410587523305815236253143079695067346027569172638299600086511163446783625287207215089910157338019896119117768768002612512091835516288127818089313782090483569663322585593719248930679974454401477163912173415613768000149223157619886856091328367326142832765453589831859462680898673632538060961215246380071181286704109600947543255004477775391161696953716058848960425815289448473622621660104094655339416406866132827911192839903597273918228932664941910718888603610623193121432747488603005926072943479668535121896997977168592213147140064355490532390866773579361049879167932928688725054147581418491933447243753830014889428898055675382918708829918268400267557106663778292358440732192964031688739759337533162938764004648523300114468637083789729347909215217229837449085007519663769850616875454199696360942754701641580088935201741253893276490174595542712282960780301279170855547246195449375419916001878597451253359837987849050755226008926889931899719628722268502746123277904337709823934838523619705447554447148668043804671152938226431931632126233446352727983513260548844618200639240449592208553203806789369903585153782912867306343344296652208508738377212674708358766481945985115620837766731007496549034358560985350375290955813106972281183666368598156002573149000136589993317795862837516089449444325590248095886928783332551332413988621288565775756977816986787610242390235313017130068536478493474187668316004296823953434701160722375978297653272389597079178413286574182643027016726065233535502104327487123403919833782372165162757970419890293333601939697590385178860836525239229307541177689647437299062682045583598633700480046965439756516137583866348422453972085088529822224752895011717500431719014574925099247931313275059803801880702388947459896023134619433860914378855274009507953046812493924347899875180068391726444831289292809335793324184628541784949288438164661107866934395284055528902344639385905937308913793672213144890297552628033418483140584785556716590164001018872232238055844531120791556787717513904561992621209645512177101421307204642007569954264372470155062975985435612771385636666613651017478711496053183428396323615029367076872467121546881010187940698019032578658751152967403210175019451630091571616939538233133704116972324285829689914772722448710805273012653123281746138913818448772580284384232691264043980840265977638520163488411549853670160133372238865903305964536439647635844183314963798864222120188029414130694497825277159144918633418927424288215523265906233416241432322020186716812468309283245930120605602368268169362182677193016055495738470651414580865564590431355323501376736911863483446269307962874241443459081499063054161325966741373363579537323570771355408218390176390410849426000911910573786276109091141121811981117450560077359099970454203240797553249181543716374935779562587612627440032989779339873554347062565137002241253057866732066603035533440085662798419806639318803094972541801235966629050463901746447807392057025918605875254079203399274320659948557088244376122495699223946437860461182640241567401007273372202149081147873768443924540376363844289354514892105070160564784778632601739479890096557280028698077760443875940920241325039632327555685806495760147586582346660707787598924530809249967240848075667571895980247087727425024356854970631406028464046458839292496761766513140943254234997305337583928213556893788712525240356512052745527207529647586913391371092073979878997248806535762524552948267623980482341901989795057583651440436402937704308998296970232591165952109781772147617688445291474982495357983018814094738730245205607092942007548845628728358355279254413443380354366756505790318954462384239199259344926128625759441166841593699958468923491770394634486080163651354366223932435435956030020382349487497392512286393815590195448448078713924667686119503431190307831810780070759057876342474473194722669950867042568649932197036327912893639281258835895067182384247357870972796375658555595392564926736540633641796873383200991684457730573858698759804418660168353958929735849159245073268012500658138489175821047637633181219163564393195223919479083535176909431897810734967129873130894429655462434816536155300915682235532839267310093806791446606436751023633071558845698659626070534057372296538664908364280755433394422930863055822281548901054687595690514632438872481583761294420746563746787953153247141163371546812936724174709340131661323644049747634164891448934893993256918700276184908860756679825472295467467310307903256566342078810580418144885853303935990213175619488866895788930121068990041380107790381278694232037060659334915028342000269417024554087371184117802520049588327371361827943572101365846110165421881647322470952558513231385352727434659196623802492461693061271143414456259020456554024229476074818642964930693867299686356176546771193925164404636071492061026992105010539266597553311974747592541190396038100743030079275740213552712024075924202515557267326062961356504747918301818611877518969968986127930634057875334262473117293423773215961464291546505678715299626925450695417495855514725124622564931951089808399331047972552832773150287606366044086291611051973371467443168108287164159418001276012757453486812904446452036234950980690887417355394942087919701248716190898641763584981118018234088617084150363961381080032601302960095451861879452314648734202522894627307821463127292343660424009794477514932617721579639822330832542802509771199053298205326632464139119673952114647630537486199162470882316811862634389410750229005577256770543964096449379876309628700369964994118895054044051308279023319330702071083990870405707996329546328844579524045185724314172518465314968252982068372268005518879243090258197173369938257759024168810774727467515137208372791480987862536110359058541526078344895351669768299164448648790590980853561795932628752059745456601420549702189852091191991503973163149026510085280121014140797644581119576187550168665549958295860633727363982502964247755627133288156657803656904274686746998943935272845491657003995644777277329957948109344598387677756779857872529212178017728129824269545087759371729820387200279439674712126294808030064957076351880851444147031243632160982748996496136658495850314452641236481363465382799516860136566634870061644872518712295986231464650207482687194401438355752543920118744977551712396346989687207284581614190561858105952366245640136243261842957430972537686694556749757053564074407914539876777624681610901503724307815538209865531984498724794701404828082595416975115605731413213745804002517886712444421211405874618805188117280746617503347004888520396659816559172428751622760419271289328646042814008564288353088774466877392941083282043656622946718534448447738581546979349061109079421465744196665444296905170171087295837000356427219453871797207147151891185226613783323881557056315777589477783781713198927648503775773930672571283107936305372752011484684254431232855785005195246119580141999984581111364842404944820555841236517677893791570683103358606652022206503839576429685739628506012788845852071920600930639708951731144094443397258369043935953265151767571776891676248947374555321410681329736726073551672329093736853113050732863711872861695781038893402848105210120890023341498470408169579817536807322244661530566067887800068157525684158370185445225099378074490056456004342921582888625635788043721757277469713535092128451545713023477448408385127966961932299006958380607576604160879104413702248520852936884280373669771274284975968402794489517268995157425659978033613468311730696861342365731546951538107870395381572268550738900209342408222545348033551799241869688358452002118660432934678895800245274877308741819478247576022891582535985901109970180066530693372272873119858296388604292327212146871412132735633450123221974744480787641853650956069075598653747927520805350748635693340207786881968504262738213561853365309189392924446307044152421625214210118717789964950832750718148590753630055367348359442182752781907351603369355023324852810927992876821241609074999057017577047504838036375582401304531728488921088828296906855378615386901322240127699279769940801202978849582324202745068535054248751095695170232126262708791700119725596177200042316714690166468894845412581073326328581143247832247717694460842448072192753147593692475966992117481740397993980912485181785403056537146704464707368627060626879775169320692540205996054599788419380754749659605493809475496645182240427168999761445565924104261969560711668180935077443694347004502314404507800920043423790311580639730791998533579985628328703941330696974867459831777033254226101868964760799589061450466829797553808575528240951184652547876324892103881469897492579045559757319755685257115365854075435209101651153291600822892605780351268145260844988024942979886259723862078639612204164798663368828716915392641515381227458541953054509177804043667781677690268655953790733286632390375528998308665446665829547545887834063240483975528965484028833152762438385276616050504159435891076395570387441238323884664182941051161273753851138508984356206150810637854213393339119484808933962114820252481116806436446841658335012353290375842888705999917065861509358947267951332020097914456070725440125052508124280836861890114506334961566830766872098893744847572012847262552164840355988319185122036977787587734746484815277415214325646287512488381816696792605935740970508525981893727046262827277618214463301653504867175133771947504415822685302208412011357335148909300587151089433104138899778503735865209903252542272206336356890683087006869391081708287207195533987589859791428579024247863072432123997802506678904691141644510578865206834955543495170879687627997923605169118013663311614683235560763115740262102002609780196525514552688245209521546655694793965832085213514405112623990533164898165030916503104933293143277347953821377303156367910160424689009967036436509276447492419898196013507538959295187207504557094260023743464645699094363659968807299538000913932771525241706058637831114436922111473137147234809799712484325990053616974526664961635178415489668539665861631874961706977399192438952757004985987608537621269208424801214115568267214279668881495076744614679429925198814822422689106000677168762392421379386345030009319570694086698039571895197147443909378290458443282519619106518695764428598487950804986142138857157511992049849730571763491491276079222209312312307975593647763790261418933972645725065682532668353180391073846614410931798589634740711651890844913799080134152669391178942503171055724744159389783798556917105214595778885690062477333713670835174312227018546215299074930624670577164440341903487443943253243953433058190466093163579502587019447988228550448974713328395908467764657723012507078306550490870114414216881978585410648265099891537555141045315196674040492315142595476649048477670427258072658603261948270976577437760332997057321442009954565639051523310840632262801801016647670071265662223183852057683608248593630247860428160684498679242151349923489587844367470233887478653461246096244659727774543797984898315850045560629464802625174266392980897572172821465750864277109375419541600620337240748038449107470145812670680324003080106563478954295718189808827063627940532107649106357715532476340466864085701283607625536773780276632264984203964660721864363216488837259908410027257615186627302068097984380905856238844967636906717693921281441046023197848319431474133436848619962654490016677284375697717207340926876520781973296819142417776539355002706347837166745126785275262983326917515925395740890646847872913421396878757165723110993417703638679690778328452893218736242687797540772822331374256838848959438630650005860739829235403313088035506107172007348412723387682928275004435539219535287100320477870170428783582205227936816200059729425922302963141475801756914443019712471601500177583329799606810424227131828615743668125881431346159588053814291576229959695755828133013648317836459027720263874190578506527349394073966664641767154963820866322544315485828280200106191767397044748314849253199552010888005128791991346279712441649120081493324002885579874526147087780325053731678277143809295210723726586363808307653212785139186739963487408129659025049006825060867771626937619151436740485844633736880835418459052209256413215220691240433263008315921175460227451391592310188097998167493158298570389868868618840041006930873095046991557309365022026921695882228141320456467160131572938720118863343474813644798583724815549709459065680544724421026480443679111219748054117291352547254137696991572091734046984562932270820859281765778497898981399098649405745062852822706315567420182661265336772625680369055798576431696409879539307905945823965172757402717668547970125966072196988134011276587259539858632584981546505791066406807786021043503864019424062294609112994613559161371601608978725341857678500370019663638875041186279095843559246692028808765191095941243303797996887994942185548232632580592528682221888707805840409803299498062251025736846933882190289548474770228034186714923758716864275733163384710861060302118031490654677477326761688848375636671471283942825606533610464565091491977303432930969836585123135959719615884695919398509642503139919667453264877814946954889253719982492984926031251753413310371217548381480237989406117020387955148624224307811637478077805632110880770959957727308332880766313751916851155238569120602186649017984184621352292832363399584419225322530080139170311289728558787420205738805186202102477323863508110328879806083061696608444564221930418219620581971780999821272618444690176481972079141479414008142189740170178830066220449031930567997614585357426069483672490444997995917518943410318523453006857760570453569350767405651904958402744343932993625187454693579914415455874720647299225070704488600349204958716456836658108420584025833543231696556353650287857117061603758045406622809729832922522378711324427056899892095849227168677904158475590406547588128757898347578745360339084451722481442040379107891745144523794730267753081152809414417508218588325076956188643884368072625286881711617951786467984417921221776059595920338182034576958849676410967809934478308775574307094240381305586258057192728378949190981824446014749006170288398063489219856599589009723951931366930287680152562228605780971192490400536384131756552762205095128596891067166756781592359413112876720475360239097779801262970875030148425064463812806054232279929746163534333974751669071992807489546138540824328207522925632480550445976374498847691525120695181193642618487528858374773095341409962034402900997563940241596467672617597256646619106410049915678164062390780049681869706958736777339289743997765601719497792037467342910085380216358411432412264736340073776939525587773174986485795740224288760616222456265208419628579214343518324697944079739644254603227668507655184393606170722234789197218129748240447207107311379334143700404684681253682982536090399007987448233488098440939579625096764215395649891379693209875997868143070311161354067873640797285831146151027873320220890967487966808053751650015740254035335623768448862268854503750395724421047377448949103991350280677857784281479179162450262572404775439909513940670189748574709753385708960392648268061411681920789493353511701408066353527041367297117587639036405040866436773120824958747598635896184471363847810427110009378887999283060763634473457775071786793777039135472784772387623241394758111679857664157565277397295230628204648738358622633154057475935337738205766640452644222279065166898566702810464790819696524160931076052369941516418034193915217883824324382353599955369203754330453778809921763983114019536529905083397587731226680663760271991599213316818091051571166446612718583196554393262944849881966643066760366176401876412957449505215763919202956149432149832353526325644878286463108323342337987385913500061073947775342974172176694617163031560065677636248016248452318033991546201105735841159508314028943859552432618385854097981111035496552036923703257324322583547751678087847758672657495680177789626801545070601286648479196100575439822420700975078877106750243417592740232027164048776678131839505135561114446843845538635719199110018455690894795855859357258259521734248908096961405728991350695145044568046750247220418527911973027955066742376977986355926960345666667622590508308987960378547394915223384849813636220104118748019902242547981578905886672631550308234087604722804504924216316141555670071859820518613330619041296493018749249563082043494473183805548424313340529801374889854320519034198653333988899408330074809314298726361710872483325544959956708132079558299591429046282211932786575383906376836248459563843834724193049892987615510577093874214695989667542016992966814450931201927073836017386528963866779081735063597223554805211763284373262371811787774336366748101999126260973910886681282413122223282110226957299801595282276300797116895014589868219602712059332054293562095228459998065968943574713690890127068913334646159325876396504410978030582805868836073783380943285864731005662669352968231482305135909228648435978832897507090475517391641818821714405270129972388334956737070957163228916969460639533478592277627282327068406671778384530967566210626185930479675510239773602110321054534971186558031363850810612071601554125384010684073907154191961837130531797842734609911488946976316267200220451214279853892351856148163622059615575293615038831239047215575828066350690409546422831746801911362709765665632364644598100488288925077740853345142562612518717586324608692548799097407468617871384229646849474130068117073030606521251433975797088616831043115022726025359097561415387182907633834906442235446127533861573111259118114223453486999302413660158706822878178477825643549540390075689214866270627006556290942286116145027687192807371887092598445242184864647135128969439103240657231585063683637604122112162383053230384491547730502038809914860860276393775412570715399018921207508778920635196596945273446264869530135057431922794539791772971341000229416095850103886855288003613531060551912804760141568095184489368418753487915880726195935064739227265534980771774042939064066771614928897606236914314195772044005836857325787944844429645510244960931232292571816992881705513131599764234966892659705463301501821188663534723163236182423709538319355471707683083415325027288361826428738009016575177488667211983033756876164558780890609302973232700170948031333831116198848366023210732339294823401098427844229418282328590842587124196553371496520748424901384158656090016838556118642757537005563082715594067093206704381570361917354168356189866020438653879314052696117456228676585720034743575592448151979247072254021816654365027356200281647414787764748596450997665276462630869777554610815719863058992884382606891650219835665018038051710924066508912301248976566495910212076380562937247411365810607888071471651089578206727326904767398227930936404227279421541565381692049442210806454930001744216518404789137777640684394436795262744741589551148524699823201844410130918143881327793729333620106118828268817527076309886312453625593364863980266610317669206484444518498395123872112224980721641672775451826025617018609748974093854458964713399998175826170380338914951719688581996200250626412350532994730138770750437264376502066664220809233646179947340734610460631544352229741688277525050814609977653744843729303977034566013099119689100287321843778563732680911395543248027654376319598551543806589836079460280900581694206280196298764899272169375883727506389080315307311001182531441381932222888887302858283851782424270653758855926422805110836022127440213847419792993120587820567661814038389885321829616282087000563193919053265721095012552430455644716567979336725212236895506703114697365544181255146141348389807754425595819038128083672653700326226956815329158404145181491828061097800385505545154422099883290060929789476558626390775318419391993587508074259084889424145272199995565850123436478875494830226639175156505010393718235953903641175576033358335796269092222824903941496292636077848657297613969646119903562995019331212752054246107394156324391695787970624663795852590730238116521387955970301185174371726787243991166013256126830103279876565058246434286352575553789339680362336175226277573569309048181591287218935679271115908051133180259236825908773532664932262372615531222204165543407931537654480527476923445202632305405545264022817983067104258603548265361287124251365961383233438379559697048366962596241720412986414285158057674929874363929799904119036690245766167047487715573986019454406224864275085657163058748309417672358237378408286060662999456329835914582630288217100514133108671548162745880102754744648773140067530729877699410052957118593378941274959115236083436351793839271443933922471131291815220061155400785156274990573034610049472240251265695559112397898572753181764426332062076218398770755378852623163764154185584232559096433940817352797053993428976493810423711282959441684225177815210639461894976850800135560334855712897183841065386501284324780400614844004968753012820529175511039180120538057853830846927515436229653845666029380194115202502740397371167183723573595156760783843593778204407838898057810646871295519893758349585117577979235844904670209202183579523917606178162273261819017335851980972233325312191189356326972646542654573481819406855530238156022892081474990170610848645620126760593215631948714295928246435316442405158143451556183337293198417377191484391755125855713372118378214112322552657995209176846082602649642838360371399218080995387158852232101931002574093908000656085900380037915332900472459190836943021076091902454668985264443699878299076052453718445045045311288952699426702076702463348829374642348890019797232253410645172026149150744414002388504757311596922139833664400972011314078656078597419760748532898977352089547202495025961071855104789982181040859632045867020677469410141459961428140504939697419006268225795150453961636246672517950116838022399046650197179963619558827435881020681864350113777249021946133737531912276648691457758306399043997125125454120588316371151718733395820649213489688520229198163607021454183860163689715828762080464963855961402421683345955740950825289728286678557281542697716683058459062112835645451697090734145039510326825283404897784114154773703224622797060823700283466962639039254198338470339631887610234593497588411389650082727391114669933765188919468884767932960413184119618654848466544310178780981834776597373702858209580637606791117655331702444450542085499432373135365338658573426756576931558137957428953714358899584778157572026026023204744162287515644324370244324057301812325724191797042004239341336201880226831073479449703098455146918412209437228194749142548855743741738601763462577970722625303603849431442511183504438767798330454806961267677615126548577856442321116282893009287804806618598460974220093669327186243879554344242693139132459043335191076900724337507977856873141833039745348240467538201973846856363678571161430694213840410269517679942904260928528539496365239092750301314431963998108689877123490090378644350854957341635928418757878642686282337923661684253651960051511963405367706471977697845204950629341002673955685256641418641996940494527639858398962967389282785260808490615454553293949412292885234622075500857400712169050261854132403664997433233815236967345712889502158621293049344109788811358056800273504256647369125863976762771300877663184700810171263638709408232126047539151632943783386752242299906025444568500355862276445635176946196785473912963833600028940458448802126295447934968746791788204538507186157758185795639777244362979299612664738065429853947000734239658955840815403087097273988132101034640027954275912624293620769354100409132839973364471626727245295351762486695920442778038105858340924012711688200319651009507297573216009797387676752979901983403081109621109984154394837393963692965450839099634499205583183628598289921482607318225605539627117833608911462320816780699375169470035706082888350172856543555558603351635993778966180816940184749004264951744240126017616113548774611666639591027820357948525919240628371882597338058967019067689536305562523691139795617283677526015830828234681259887885974758952093285237094551380620732731769652964947547407457123797400821967460984105355912850765168431484224494338331112411687045237686294959868354188132577636259509969635889895686944800229964551382382894086783883830838874486319867475841788065941475703169458409353448312337466961416329204760783534361497014151071706697090589969898074054250131688419777641730078470038762355072175840446261746572109914061229617352083948095167903940133114407774255365609589312778673714150193726071172096479382563646389332955590722081247600873906346442011542020927397503545274221541355704921652293883943851610688434443747767091700613574871001025147424240022869518702183813330291651850481502606655673639149295011513930828819701823069042008091102440781135317004297794149348350404834894837000288762005109065291462775354523213387122626510136447907854159540473403170980874198840840053566596233587508266917236215502303832711710618800845070208778217601082015766408399329557726926736607510073202050131158522574680846816322156006064409351625512535714088977186362667846975161932216350348396046294735889638891746217332174399800340021886767065609559984315043004294217530544849886801885709616771809491460326495318341379572845114107781036239101706009651800490321496182104104678464368920264767259906509637721306787241100168030242558757036491839828828406533664379589355559494498480963626123149159622432120687949787750700711595662114048986250640985776289374563383167525666016206600275802200524011202848555435666574444703082996203249333250911248627730659450912115449637292263231662449978621603753821019803320489366954960864802226687147128984844828842256082837527436010369703051832282846597238165670055711825850741736627260200971371706175392038264145024879728941530207246092611645379994984076712110539286976519996743012370693856857761219637140503178194620476464959098995045718717670713414443795666483166604802198416638947821680166673977892210712609054801615464404744672192272578508216817211132112633710182073124746815797997190667490093043774003560896413799544942747468317015479187202621936632242321519875201809887188850026592500252284512459441073669804656846517227411215352687174562053518152625242732349877790953829049031092996835224958537930664315552321313987037848366810286333499800638715801691385635652133790754707541823451601961653035235905862955553087946365121963275063812415609466775728973387672708074722298171884060719069528587992399888457753161306608408812506785934700668705738708194417310196412985602264259901976429887730098157442812265868985079771601953224704446700719517345038743066469087908576378998860430937533903147716424122385672275900221878640300701460802073795193646959240092289238452003293314653476931556204801314834899361876994067866186290542013182633511997855712600294763243717819659683463106739086590035926086951990650148982372876437108244882738659052524952292688557402974852507867646134054671861943360686143313485957640056428471522688718416776355077752104801772769093192908502480059790792802644167233823604152950170379824173356433072432316228617019866751202431735616917368755167704486864184079842855102787644401558172590675349744492662093185555721337457369368487593333447000585819036222851974799915691377605936401211014318373756146666829180313129719731074032588526545434846464535521509535001325030329144167702278383460713797482679219366291323889927750184882887884935504552380126018962437749051553586513472717603179251323589170487813740189576924760075520633490569723070975839912523045924303360822276542734695345304122540590572538337512613677894330847959528408459255032916040108721237445990746876357963571044175809363770126707372128786458097977433949518825413190699105255507304022152012837532814315276880456400452051075453359274385713238665928879826698934320140516435699202294307218455077903837614393513469797331502686522191340316723099646452498628729788021927905548212529987309348523134034880581116773558431083773628849083136241517374997342905444522134945872941550696488364102535247489040651444699044233277086060208697010448872478692240479876110860228165914842174467377378725733676667322377743950548976231325761201749201030506737026261476393555766649910279007713786083711529641306049509683991293852986137646376014153857551879753198969616324371744610503886027679165308056987033886200717017674149961177551715635009185207663378191110165107091761550265634091940822787697134380038763331342659427925272381028919455703885407854847876199390805753032051944581828202495014784077619777628698160980429039512919489575683655086313474273203383254591069669270530943806137202032802863177658919443216342631171953577544198919931038596247125100167184421737902826108567003223172778957628745719270719289395972090067254757298683338923282816578237916706956776661846399308192821618390009154806591142765073270847906897676356450762362007843406305363319371481487528410787395062265704061646242823450851905453218308360409220837073679988878041020263617155919262620284307674901755266959086190671149343448398250366060263878275233842444829422357542882751239172362130496719189551539236411510638344755237285319816598698653057388492378199983587618477859015224120195229157426919973096700028383558243971034564338553273470912756564831798638358533237292297511802775742420532255089250839276939019548535948097995502660745399278598229284327575644608665568162376902114177406057897206247411896341930979104225700255095170558010863549903328923049560447515888180990486659275409241531956163387193534269647250923991431412505837585293123792844321475064965113154127095117729318929248988903533992368117031173679041086831640891896286525129069403141915959344106759287003958400961707556533651688093280901572121991812060841969630364807954207271730326124576372566781365030832657327167327310795769671226289020938158678396142682485068376191855699068772146076909939404457145805704216798100927975649101871692734930200023564993142917084287626705874586180222934747190873267633147931053644404119005425244266274612274229990634554538631624038864157005663784580981552875457650176184678055793727686115439780799376406964772643820984497610677029442157080871536154324413289665838587321150024660125232035422020144619236047522307646543694008238720097413011238267820253538017195317381728464377013945290560140379125543305415297925498361692698686238745611934282137820259048827189278677009955327186985030834723989782067560812678765483092855656971157803906730443610481157309788341452799920313565406410919769684881497541323027306876338881113171192516144596591417141783153953153485188323387454923086694524549121069871790815491351653799679237916650572884235143529944551652061601460733060254266472864553770417984095791401028041227875958885269503856229739099275392776642475519866344110464364713285162835245807161888419898753136587850456397513878929240486186144094128564448798243539078827812844411747153785606501947118014944606894441793035248284280298139500057083219093556507269724227722352276178618194212049393797458766046487198973474886716967005285637549683435106170643250863674346749096751402842481328995358513633185977159751160827526178348023740932591708549396710767174551483682313679881400682524307499062944485607064588314659016829650855553701334138447233747596175565774143470058842961851229284801568039223382075777641663647903703721088892949487960933199952379695399611509300668006971177074168975009226298350989420093270647824249158396702300879805399950614578236116144956855064261034965977262343048253760073348082227570264346883049335428505104956441546895117984995315031737465108861096705948258012893591428210478770311539103140784282638630532311512629613865864539241037646770121586356808832893628113164905798439715052966031961923170313324491347283389666661503969908761212326945719647699161836938372703824828795923313789981050630518715456582802401602682163567248723383920869660617349680098140465362857599630900965231126038074327273865084254094521564642558661420998274033014619781277603621673684988492126975231702074053412071856227446918181792209001044875167130875865875754919309133144918818432924398863202675562570867918349398175926684488480399795500176513829511908025426194729112317878545559118696209287189474718137252408809856811997232170369198274448301664800923630816117242441355541152209983216270004233767950999853140184496344532478851693274972613934386515395490216152333795100641332241923623507760157560271319520482305014544244608865499878412926510247308368061474034945647918443795421225180831257879789919762347151562067242414417540595529455911819534512456290834958353407847317172524182889273182257324340201097458938016630783299834465491945076645343882687887992340183173012892178445563696424421868503950725684542250061483987288160092880818520511046697751430031181706532390272506952379556774859258397751551530536617716893278676744516114988852582551476238066972225332424237413753342758074178668717787877214680443546895691926958858365745661065909939548473869198203773606682525373120024380993615566951315491317612305217969119674222738335093136959209615209274019233008022453326980855872345463174809275402111963595305023348057534655804822922998510333673483569981981805378802919007902700634499665194461768362304941922114318894009999693840355173290855182971799271839169025628483995202838295442001020811656797533888232261113786509409908262738350140782230090177728621825830527141538526633515548618331868619826692976021162503169162347056744640760624415522746677312005675017015314160145542477427691912372333950624527839432442181561990903172351254355715102631189976833476412036319504971042531642950075529233916350168224857515475644380420698317471762524495638763448545256685811350370017632542233306769110444698531725865812145816766339462203033768251621432582607078522832643939995518002684981667810421567626850969034115150778509578861435801786165641433552432092276271244701653064509001884887275062212189545115900596161441907916898404432884917097748839089253787512074215995362223274386690541095948679818482041101634152786255192717411584071254372333328537840178468209225427473957364135566596255094816565353327411256957669410254405047290893205524854793632351101054451851556295006821358791971039071201945576417817293242309748175205759071238684065322255241265472761622780968579923493467613586256397207228151263635257091517746674057076061701089379198050135168726463173211238443532177099487214443070476519477432892203684820697871767638015404660887635399247948228562040001297355323400981045460597996365446223155207174718240009395638655487733013548041320818070206951937612027729820625264043858618344178032054943238703931462999613624983372081930303460841489073026956375985195430876472621501709853905148368548583050056103392232710702020750565778174684305361837170665019415035591787086039602539302054713655206538284390300598594240462318000539802831368951366818916186616672587761411416834332058305824601268022838730807701431271987881961757833754217256717859180467522902869643782274867046911655620502788903589597785354287310951731343900577786717622716720092010105042036334872356804342612293867518983910158133384900622028607888989556906531974214239842288016266310477835445058745981845221381916979673028971570071721130957695719311469088996835030368127348485395825813537095280463033198007339944015801180274698652667426503027938286800878761026567452475941913971579183558253668067381197914104967111628089880485455927946518901840004081496797343201249310608287105268947378371940940133425149132876056143845774176544439696805491047908618320141993969700938274993659187759098308660605508534377078777261087405082980553364006574723263102237570285871690960144523025846128129013889817981428364990874004872508263020030232927302268485291276693357869087433131935495450726790550634122207002073807547711403215264528471214884189420563027111196599538082647278622338493800814297232209924371077830970566802537304278215792187656417760327722824227529172469966817525540484654702565310954838683085882855142036592094680776246514966155176539492149438863597487681039110483828498539115649717420036169395071924833346908822120409403284453268146686251576902342526553794088735945158153186653736915552209711526320853761960947509896254639486385587254405308417762979140072130236408488098359029230800982072734461599394186732192343776700369277774625164156915370653500782041888790018730991404297397477224550929220901679433210246864171659735866073393930883155441250450181658889531138308640619798289709153958201910804457719117527841368386546918152542296475301455619196983650531374988358751084730088898248228928985514599160333124378873266568406638647485789046857559226756772667225259865457131321083820969663309367911545327190053963586127416975767364508796805780832692166403030795116684678187014786130565771199550601376269293012305258559703557191316730147223782178635061478241313500953147989469231550214675079060241509180204444222038714832343385314344805359396383968621780532075356931477945342181773931064508763579063773891707415316271660181535755528052239595930866545492292735638576664842365348339776128130116573433213074664443970424291421837044481880831353028840180528429127275667989860562217461365207245994873290653505449819363820068767277871484090022041429911278609041927553522444492016076521854489140493246926917284836486244770951621888603940139774877694231640449981971710854474550048285533516463365319952406355165046371787868183076164440369834898442095389749710581878461054082295721721901635136282616595956222248669496359428500324587712189560621419674018462040210930841198667727407900752280073462038246509410751839875429363524668803244698221042958490116306813975600291673857263237139452096830199888296666704857624858460741260744881695448484986345047834595036191372186729629859041966934761345835075819201212683636070911397024984152596055253663039246326978972285923746351246712900391936744581385663767493798561688716463993090926360691658960105215776473800230107739699513502226597089557096685604497647226796805751873830206922930484245471620835676391353571491389531853359508817078962367207403442885888870854053369307255927246039053328238454329157418578803704100358632770739023640538243332473404348003212704058407803001350890961156036571896355360057838656405217087349454340969369208588960095509254805001884221483447444301667790349518866444767321716150633787520841398166887219260702097438071239616272798861681248130140624764250543775496701364451807885482990994207483402482810512515049842187493214596465911082049605383693961396161966664232130622035519136756342368381163769408106674196322820214329293172792505176886103084503161062192410357478368540732661546173540533476196504383198442007238865411602229675330416716431446596941448897859659637202297775637668627487703642183768220001308135037462088728517485801309722295490165902794663938169847588722067277351012427048280010238758391445517193798613408934808310992512948464405378399006457362043714431602105398578338422576615882808845239270790369043663447775418672270716739223124806341446408096208820788034927693785727357596670171034580787128468545625667324978713886331362203341104277654101878320965579618314113388046181031496854382500642562758848769946233270828811229840341769782574225061460711817467237655432775446925795251363453759384656279174601443091740776810392091461745302254809813769408555051688806970517173391743081735999122202787876112544561330229073149869007636098333368830121818362352645999866664513311059484598082261121360450139614868216925219913998224852738515998967602014687368030224232426509387417993901068314270374404272805506577299536853789620387757610526254222921670328746349296482321524643180146995136770924001965490942969901121537040837978626441121482272211256693054897337290823010191263238629160892185459778140170824756332614358898659945534638111954146926860131880129743796846877945376634236713327434975096890588768426508848859084033718350945446333502537663647161374452316011742239931446310898432260833470414014471100458218461228129636289370030210615159524273454110494715763124951288465325653459471582882976303924255621805853315021329120634366875237298791133650056711430335497431708601285192863620210403864770216142730382614562976860752566584144545550669673880957939178144340974624888502266196961144132590551048020852817119403127534245616209124752400810505578679921329108510908804150817843864773185238047475442175833059557245143478385834796647188116351676542086891485776060089851072065998282470603969263775753514432282811201117688714419372783980516267423258873238794102656207762627189669821119810770822505146506451856382261847293858571845039054340756619141132965052291279261485593993903224311991403270078041478313315805715620984101276210626942184226857239169015891687681357692898134831737394867149771373429410936365145696608761317554776936305773058360151008214495443936561628162317572726235911792213650057332041766263183160816291373130503838781695093776824120108439995154772795064245554156810880848771842484085259491309412810812310311018293547290311420224513713036912332269693024074512614954758056860803332492619141126331607214712425400905387752222064636795671394737714331346487104156731375931503458196908997026279296517642002634858403917200198796081621138934924067716582146672409801232866242261504365003384387846682058249494338035552048556513151187441991300739320025491251632534007702335621191145343698811549979833799298705114102825893060187281968199797880950872743966388418838533838647926341257739576033315823610056894877467994187514406532891261265016822337130190016359673146334263468766529656862473137457029567976135324842525227914073386344032512030216576933459471368421199052362496321461318973852328820516759794586793815344904175779274189538665530937636269521530980413883491503329306666986954008891761690737450301346947304734929199105395396237484134701515623286497517475253052417558978874505906571481072499358100517507102076385821550666366151574531666144320554931544342191598352687557559245031411569882821211606128661984022752059588355597037085600364164269531419163795938837321779727999087467022261719110376622381364586924942709224374352597127102058232130486583255819703814649096334485339832707129366204025294732251152603922437041394334789790559983812513222731812384043363138740391512345708444188647450576443487702953312401684292298476779147555675901697763370208889620208911732478171704519474084375560387018438206096225773740596906775578549887884743982495140067632021368740536920157882726262243283045149507026608311457354577451602659557055233795907465829336584405046782904875830692140101013645597122888310831553692735717842918151000675118789683756893333452297405363269386643572779768782253693144584073103868490174541193462514212802980897322361921134267871987338962663438045528304753750871101480610487564076195602975582113838261642532970584943162973609808561465229546664523429063966257704742848119679109330568990074696962617355393377495229825417877102908014814637672857228718621428455530377653161825044137203240076510793579797481159440247132767251728681314324434762201297471875414238679125203038944675100150364905530317293484296178947372434395794892991195275501266477997348388471503774591141919881174508166834284981521699694038852865234254418935564032296735255432852032817769531793264355258004427976977201902834883551911641432387308366670459106212121750645015395053142475471474286398871588461109001351993949401051772913159894940198914348640741230854494699987014915443452904360092598631242729329712903958887489801209334185423586567641890859620279305684242997629585209036192883636569658244070061928736424736179029141446538647873476886376657375475941793571873571009247399178162844316961770681035600831152998273282703415170804228337448951989588088528438169306614103040603075024125802800950661909122457164469408203492792705479880661880578498888451869014987478510148015036838373277325006371681696491495715149030805962684858393227476386339732243903056145883727279647749659010290300963308269347110218063895652690361829709364490580917053886874042776654145748885965517994688672063664454879990329594977301364380729085708547652397062525087323511881015051955866913743018679931588760762648522526482074004474621178033659410663998715110135397821224852349351288571561745073451730388481246033456623380219648059206827916711016561259721046119367659933234127434123274357821114424880607174706438599444780520772542592987599461168072733393376149029548501464557018652911124254534535314314094702874135574751701884873597555887152610988556849589253315015937303664928776823235072624261607463719957222596105163751601785916407048497817196730651157735569271012452030123116499651589304810687906306026745821608368126315501975277312420883269664967810176548892251487015739652407724156861195621007869602671743309466768320836999005753888445652159830800962204343252080513885435042667854628129836604789085529198173690793214294558037857902047157833489901716195767672628123779750055287090167667905467391168600359275759634600210972519489455398412567939953308244543251638633074862509138582717309525431592543224395755489010916782100343886399016882134398221582311503377637221887620921951793125107550572814450818123214133076572049475733470717998037908852542305434139658704445155290403059768839586813475062959421106796387103378056570420720565341104596388206830961689338463277013677042141076954776058208176117836420217759560051601786021885913473425315602865373563566053165991385646206834710726585432924561901300971517142560807576398500644571095656527571457091069483164769175072396885484087989574477973769235618905499956261891287469087470069109544895933276725132318781388436379778704935792516427168365598161290201296995366094286878344511046279008032744091633115935576963412344234011141760919074810703793185558170319356414982002575307291260579173826513509496841411367664713320458072715915001102708241711890765604737117799695503131350592757375573518501891253115927189461199990050533265808319205765780239313479801223142103129865986171813861354825918193339759026092270156216198603257690781867371972381591608027894755061817893476305606968446682878398008559386862558616731335818211541798225541554741830934885960911176272387093341128169851681965712794030708979786611521647404936902561377821338138156449092835743003973469795295658458964471220715242418890674277339961512221902547882910626378271083884480011568642836558569065700926479834991734413596157442276564882702798632575459416579837875980931858734058062556365314960169371461979322135852577261352736152962921000587057113395872711213740809996793382135860591205306538972187178598330401443847918346669742471433138065190380349134572032140715787203638290839213022600564812937594758499613382141246974810489264590929847884238798783464274770169061761982741838501634831355064988511785298643803277410711239657825212759039629556317956642337331747708507994621619372998205233603330263950875415986185981384804905548027265262930677029446449165556487846117799517443188822435212575330184115452382901165620710488984207972258741329731438777225201704265580565975943387835750564909460297298400603381075623612742216358791173317193406967452569319970595746637763065318417792252820607166402262152495483641535706595444353546622344354027386387831120873404871624089919776022336633406187500826356867466732484913679533559155639469103072068029979269503477888758593508281246913695472252918857065680561255611949772481667630436738609599030918364318843199816034882662135740241480734107625962223797776537872015766772144238532386635777828394668491615626119485107161134876709790730689371581175499789926423014074535496077807726141261613764514633725556607131181500531321301148224147077492775876430946715133280349240819595299755280194394176140739814657235634313387829380349276460279178405734736587806674637794240861282595201340276436954741593480509822189061362884398898497879391113971492946158144836991606988274799617838964276179348385725021282940052548339614273516489153514907775603148717520085357482908210061754719633879478906299820119882913256490493475777239220755184119591255393901630356461527478236191316533896443910251944487142248674029904082900154048188789328512112840563794558068952557980036903734433910203563702759376333373660484094140491287151823019394427359661590691909838156676257317085828859280849405458640802625457217739713312627070472790319360718103039384816702446635278223845090427666774833084667704406558942017196347433316590977279435813310025662225405507137179115138182220434854883813209023365814179676130805924066536065383628252608663614088542363981493598781696405426317901663334371990189906780984834657532219047205434762639794249973923214455028772109719568003579293502690856977869728293598001622569818322340102455180813111842182622741946162377825096790648687947123553715830666411319609738671372064183497578043966531830417300339577205194157631157155391699993491508299519068333430453817381772361988721058656370020995210000403866011736903736384755402571101929893577305884346318093985661209947469582716018249767749618093507022801837961835493294036722713622749899893782637664257584842446436516054218366500068782786423095107925046566797385239533630994195507170279736310687099566956178790603984669604937071097585570495852838897116486878182265950069389327088631704128736162962628987163017865041194224356988634467353474430477022274177761602842749658876282365083680766052714235745351683871836182264410491738726946864771608882592852961753983083722906243935611017531814177873718127595579614565683057006615518062188038217568510770425000428599076229037384448398362089478595855980391427378272630142490346231712906809328883191361804108976913735108433806219019782740772718745966818166333062853499680763182279247867853804341222584341924351890447863187611124534422488581379379522798479563105838294913292741003794463105378821433423564456330830269368493105568895084867811545997217766548130853382141622858476554118407403029998798263752243503890098591969275838281858318507617090016362849502345342919700346331234703922115246224713274097146077425782472660667699723913672532577259720622528070888437186977005024482458316708092724818710641419827242980338063020348792685378092390349329970163729511560282772153086990525440582542468161854101060134786768799811216588857780395912098969437923493184170712309692122562662759646954983540340412302629744008766135807940961405937498675016923786379512217948565908256541006138486534263830572229903810536754313143894967256444806241101443152635914630065231477400442698297234048759361256688510540955493352567846208140578635988237760002030535668561910991888378663308271674195471826002046213482266096675552129897271125878106710805803293912289724017950917045688297824429675225216683811614705370022155892353634340125684143441141265006223978258962045603752627238997959474664960558895306309299457694573158345122373152524795583854588928728445475512200997972662589508096206673775662511918463235117736770751109459269800457589423132428226796738529782337772172112555103502344332839763617691868525993015705090469374023510722352553673923386524321669245877211081573989461461275297563858137699561928789699768504975701620515193093892018179180826180386535799666019145027747280064692396807073552562474985352317517708004430303434096412278699948118466100992518394584218435415071828538638649572109455574636320765815924751683899752941990500546092900955136568786468639980560943690246892320453077805790846611256470531084145027076031294064405329804266640038152951874836583356801907628517759051824158551434118349610080864789549641682056536401166848632608551799620597564328281940596479980126109088426163357873418629052495038881818153414342168791159423067227875828229637649752275458830656074180456767721340285587099361554726722473738987699126237468446350449301393418261604166568458817467228117199495033061687867531901748155743597626990951728156254303328684468243819459317437458453953087739762748267026382391260906354031117879395602700222500371196876963192015247231268083922083001490531756341094102805460540857925424838619270619197050518903399460071643713759614452286547988094393081598307697243527693472968479320960629795811671365345384234814414492316405562902900785914080987658923114539243287787513661580591267390311989181947354564614317285212263977475016571049728517545897163638367561710546355978172572189068014768921244450078260195107784402725680067808283549152687056185555909221230723270895070906052631608347344009061318942361705108639571446631212112921691792897575723203489540832570401845923928417335737488922574368552581876295930268283627398407896117131219634036528056426167361275906096064874754795086141960550466500062233894375723234004393003746115082120724306413675306245323822183258700450415173958600230601361417617712343123897759991092879746780389616776368740324737531180280573336136848743233072253531439979244319517127487084769014213323064818310107023189462317991223894919954858183569644990364779887084102498792123488455430698764811693116544509737777445851795453756602352288778764062359961631102637347408523236770246990570371039197385287943476557249744135421799097861826638630308466703084877507274029524644004422112102447214091041522183970445268067262278798641061124366738652408332206363279546329529809052863000497379221065498127610841006601139549788998506591309340702218899374620467469783248386636210559068535851968760424149607273230318233503051655247275331941913764367190747159974059896842104843085038902068813006662932862113050416170974896508969422905421102029267683839502768384724884253582108936451184128607055568226606451311531398641086318439220133611285214917956342081706226574129741382870503446621128938834809306758264406075041197178012892910427284923817061971891546026341466813565797231886650945411222457193310668153031670706692321959042432943186073379970004171363006956442377433440006608678792526932075230541990939147053437539058492420396500416113426080802321696528718127427000338591612330216943402720884404642095601050511698667608356629002670047783195506328647949184631153786684938889506006476703901504088092819352928961726022824372733088309946037647440726098738213698789045995940160984369984760679730851161026541116577362433440659695832440481380711799642975531081999630907065837828034204463765114051039478006895817071790223834348496502867948992430570466655421084878607611925537065519531069149190087778337819204085637597303134177336711823060932552604409958110254086780729957487940604939842327320342909298330084540227531241105402744262173578686045617724985366012175432109977882010069164148188971159090212500099196371718808042583526663539385853832953346950954106740076715595837152872820078952712816486207865142863017305794153144187455102859252863805059148384679403744337736248180859496664070426495466272582179700679273110059204157630364564868815046748357408297927799509940739890055597029652625827218405933997628709241152708257739402507278345436973180220448677425046099520841051700087738690936202391452977313656952804566407566497998510446995523827611616737555543718538121085140447725220305642075257935472630458534973293625252469261968981691245299930184350519875600634224390194069154441628917617030751387631293632333762456733059518387753333188464288018726767300684808596281323941507963054637521881206769123326632309666896052902597488261956841302494641420154911196600277978348949642475738788430534249670459697646732659404215464313264675837367393245014859626986201328319628429659742967995737030706232608306418947596163346770296879233807291075014764122298176481966780384064551760946672118665649992333154378396368086769819478237632295397000035130404559480645599011290102026606865383809520713084577734112881262930120889349331810991853365344464079282929951013236607900778096705472005165349270432318330739044484958366834809488862753574980844105389206512196774034917604558121621868803844756490610651364742037136839591051304212817854098770943755694011276820078491098252295932473865818910060041053545436550530208280584129064729644542801332511889563514807835781556748057015248768831823342936790466917665700162352635996428779675537553202794541513447657837601219729222298312822476988681318034261423994557857727921052944623617006288873119763736013051940724184102486600785311135197990121978228256107634065061028752828058235052074888906718258053614679378861179180056533773593813079145746252846387795602633225743506787576131440180078802561563498169768632892417426383247494186643283491297013053315801861024125621823746812830776157159157533782068192260480637505889761259537016394841579444847587578162925019462944859840924672857057214949424199663832433235792791789352016232155869036502021857099986611113623472398062295600193280912654336733674227232087004678780621473027861176563985008157746230761785036731680588463102994850122099116677336249382116570913543027931834929795226270664365134199132946014642254461035356909825172490801509135840904223438425813648238602830190201774553348201235804475008841851085914650145061998501722749421699513145838820816218397575150167654508602928792870524821894987736659185164608167304111734439964986126361612703673368326721687432152399216554636140965773140442573227742496090743897857448725178742654442722866007238828346792085630251453232809684957479494281000141830691061395224441159767450543258029132254143236370606942178221094382222012596880735853792747663738763186332091383272053481230722510331203465294605117861975108113651983731216069716748541372969833193809127473044927579036554064938394139151522117993145224897338241675583436278985768204969247523776287819932063416399193402267434264055330727219507501626489604751406564008205413964209178321039264139252643284132221237830845121882315893062575334237507483360119003951493054747552974462342510577130370031108077908539791871139168330555143632365577931917862105736716457281406575833474881584665969178387965591158143068709802069532057265070451570463530731836967712936474796854927463525602335053004827403973774623735470399672638258561315108961531311477702285105065324292689229755036802289414279420758547371272817646497352326570277078669867460714372977231724395985886546662157411335204803157288178045061974664646986381211727253931912263596882990476011042250384355792697734809680740110656141260405153892608596473021207993506758280402998695090268681340369479760961750247400312944890767065283621937005335413305237697916063393400515234187867771001836963417507518883762342663879304371843140149571374110039732820570421803269493395925118860861139355492240423104385212675731699955535595299907418721857497802480348839118665428205448858811348570461574916473643494921398036645948449619600139601509394631179284515771936737871309522436249144097206273224932493681379198747888835421645099971309707668629925179513691061148258285565963336045705896293327631760095760230315632337877882558654587297014671949388126749333279030852155080906554096567642130433401495927194425062351380712727259746406850956315140418876641807225910833907431812636655947406376043475477574424996004475357757496449987432881603722754873043494679696026972867833878086524298611636648030856470889816281437286319088202498399426926452008700816690402875684422996103587996360356954595561899210561031674127818708606805338571638443970861086551160499751948184608921287956054670423910717999265194599518948434432438016639039993767667794937471609043022336576746824921771589947985426176250723337616816050865524925368997337913396399575905054442389614645648732443209146181736125973920930637726088674681888191791335171309524555829989220234209155050174999313790312397965051824224800594817899559777145569276056405047977659971591635262726693335273779431770071182177301575038265711373893724780549310084391399206360193669738847379886113199840039306801868685294541399812321215466054439264864035735706742677299226570146943960221859312036883644709382156424152703168937273685568694279474468897228939394146403274477445254720724914982819731850179961438148693728378766152358334427902005481543683703288095757094657257882751147543580733129953227079316414182465806644864523703200662614860981642732710099099128744930732927984110885935282795617019628860747686709379901247999187200615036183560391706372946445259092176709231728132380286629642689110872225520541271261379648803971172023460876120499552329447654999683618138805562734465935944595609315455437532241353384375451251984553286572441351892456006690798027291247106413085871122351569695527363897924459644555633071760843643681445995442693680835400307982195928578288763467986754471140331178192068536720352696333707511847037398937010938792913466093427575617447291866108061743327161584051067363662605680741176436393990339040335257164276616270220101753366257798624294214389360403402797407441221822293452942517332791653034829480877867435772258091677092648068892023628212975468926361129999598243122436879782408678979138861234687454143211099755107045323853783697951361168919341274205926692349739188063268636933981345218264925860814553322588794088374376074110499224508909532474573253546679715651652099292917286833416288298045481392909658323574342294073508413469002173003311698370382394011886723966157113303586661359215633987196755199259122016760441053895431956224894696863881083971852325279812254813434451660443228121406442694351975420066162585733202254333775572727873518776535996338151157622701441498628971375519057393633356253426049536298656398681455982075545642357289538113074857132238734111588543867031200272458600435082995395419628974633499113857674631687655449190359245465386819290562334380166724039925366043711044918279235988900765672064993080786782143312381198659279924787218852613677194191133746488932001929265892578020925379966965946273356811910237136891723574977928971187097434998430361016756462366510231738840939783399356526030491169822990814951194467177666454232042705429848918341469471573803868318657414147411905514631225513515406554653267442339284161003020477538762545619020867389364434448245202205602439015886860395394060229405985861644697082723733105714889787695702738631603444363068199801549258260261017109529957477144522574198112335069311733103179296625201953897016164814216045503582487661338905378028104215204073603232639243674291356894081877626826873257908034884252176003350702387586362229123259594102363657406827094584991330961640992228900258197015268117791844339253891931765617468003114339888702410659160662560580161053096687760713558732467773912683287316369439074044103170707788790518518501745840256002253109996810381540763485024442461682778346130209739769603524618668722231050636008873744814920994855780668050501248276223172570897322265585455285805801243419699681905667972077560263784632752286050958341760385717608121625131713516154574332341555196308975174881778233123285985766641468888673582441994564803510798941220628871525393801529534100643212521453760588001036348153925955981069709641732919594354321940323782861028415912690210556854940315995661503091762759429690152066692270341623173690589184729499859711578049128432644084894755927281085960214610518443883350419807897184466623547608279401048079386243887115439345380180930650764835194203376013707541104859238540584249242807754541551260043700290750311848986608442904912912166544045457563919508995968195128082893491888495739043624809572481454394635195896450885302589085663203839952766986836179608209485035586756641266586768533520031259019705042774214175647869316476231486913644914947008856361900918166080290237838961428607312768256233613254889623997524635292324675423238502439452048044288298338278242614729205993899025557284587679324335370226130435109269598935365834809723298664028645508320741640452869471186775300383878145978587007313306826705808355598623409705544702110005862430458584901424492520067557879774648583659202780418897706062443394476743582136504989782779398817020992261418220812013980170713967442832581787287439551847301018867800023746347769816215049198966269641638283098340047071136305116593018691931311708796838239512187058639121219841136843456188674236834775110437501394824286916591598586887527512828924560680720289734807641541942060751353552273773086489496939796479793646185392885066720563576101503895935909645160508019911167403851375912487441400046771226769291568575246869066083085428114739633719761865151526316820429713691167943332355924175584945436989970997606968990151703070696967615761033110602267798753303911446236806728168581589826481699725147900787943740061205961784413911719429286800186538396975858929242104035804149358747204501896836666596154618946035973875125775295956050367720075705704835570904183635610024083641823277693196969602772756202740087159510085221021795671281627440526327069099805754954377696688414322123579990370847209749058055698976585792315361813232797308057157846187304229374762831423575835648538619200810112498926918795736205284087294228552578209936514660720719499579353863464885326562942569741411538070082274334087234347908425040394710814061168706835737655566096125448059729685772737112153195034315128976151397955823095037519176912099175547831839513235486633889165568633058638526132221674362596108954757114886244429724269120968443031831964191595663496626689714271661052198373301508920760812452341343639257662270461352476180029910398339337787728859376308229449926832995552926535606705876599279266349731139217007135899719181806612828014903634652095734541694908082046887110445320738573779715700695193031860723349986444186759282184513489213076760909044447919282447106223283280581907792067059369578329508111412918786561243345693196047276950605288441015760034705344312728458463741497087763880517107543080669692558976165831361633451569179017866097606585527638585585642925359312091181000207375797684647649273578376749820596275920857468556237420706252652915488980585805712220756156405237236104361615597378086179400762543264492776243076764555018806553495473758017695574819287147635821762940531151351659693244948347671152509441851652309608580207024846299606898221498525018752312313153835124323268371699889836108496353125897209687976978359131587840578613458725972415562465046686894989474953128290521052800634689162543633274047371774350188591361809290186322710848742884082880965673037602479465184208458181045617772846473031478160639904974893845611393147342183926957680126867477286723214504120849705920346368687598692636785585380644301046800301234247423540467044292845034944321151238528063690366373602507818024685343295937011385426998517703192037667416639049254626912170618960853759185039091507537932313471420978213314592245078439771670386946320401301401772740621498160382041565607331101810270056443164503507626886074692881940907405399644253271060123190833747910110074535851761573595660200042564324620617151281368784548687856574485618028760436188407847614892820509118195715014968824263206370960695898354528083319021298220955730176102216117942113548005316550235909931554856850688596102174192525252506298601017932381035443256258456315920855296792085421461319739712422532789850421991233935345064260650580284305034023425783459297465451461313913488853424651605882851051129876446572706550360006845243261201225591825308945358877779231392727330313907220922598014956074514432498469975659612517660820948768897584102108704289120450023327328839693624359823421899126603363882340311227243135330968976714680970981511243477939586977078691494329437992393554656273768591916176618777024372564086709329785068667602968635633561851979125598086114928854729222844173103806624381533232007835758384578959776544088039914349167716681171005877919030247176532789156797045317678357781234447027145187574600821154119506203523768396267173251402633707707272568080577556397313811487038324264067414271052867555175749305280915977387740581908083492203440211324938130384413353510019294166054108848836617359018889549255459299198598375685225248327603423190219132469521673899361027049756189046314681831768512967836809095145508288441829095955106451644054226071856885150808953326347973240880403006240418022048701107645256535722804328062841184522611857383698507413529420334064634059364067822581061972936084185801086091183013387842919651715028717546676727058333022108583393086048316902882124097954866547863008154301491072943897800697327282032962574585671199440024119984797936247880492328777735373913388789967507523458259900140484913904936667725132041309812500332944507099498428998542151434213927049364756581206519039979532479797656397158027292495307601012498096074154583860418375709579025713191507772100900953904381366990862692101762380799831150902387882759299560193672679493390361298727785795725522639985788243135468274678112360718757812339419690298319149410180885670833949861687926068816196208305490968273762877920010086310728407533865831005598477719986603004947071871604407084815786378162164544814283809549109968998619517042117015710458300243426432956539143501232042894188860016057420388090685773158104906606855932405053524349700983846000079183898995092508407898601842483865604617305590424409926343319495109941331834068874174723755399140136311066958391514930946943178691733803670258412297607367522418960994016769009580873741680901387013852572945466286050453869070864580290240524015569954892543605179966994439531060139340803710978986598632998430267823168045468601172510114796009242780680905255141669252117470464751215214265458651169240780443324323467038018377754050258105120480296123560324360978792273179080245331003815292496505219060581093603063658874174249252998256650956069613020690997958083619208436537248005322590251390914039446949011723539582839472003516510798336512142287728176850848910495933504997299956302332041916945378987262278424615617593094078164840226396042065275232836945179106447717170667082436046367354805971363943951145830296658838580433581990590543877246677683240524169492393682496462707873092142814967795687921532868247025266884186974362870722791054625630603118090520905598572445247485043538350979918380568511917718222356653564795629206633117535147552197587909106726638001712302140267331172725463920105999026428343059289127897782104639400964547573231936854562546203255511065119107038136983255095657398406418496255340088534728803533713088517509272826864425285834373031887602451845604835232830594957705123679300914723833860444446824494033986715417785644808290643579417441735198921667006585636462729116443744164965096305668789861972529816541554665047166701406078888857527733374003925298059337805300957332362129278018719508507485498882357978353612711769068377539595289989040634270684239270419231704980491672529396231871891836539125499262470942323449963087964658042882507379513114895576152941006338406762527926403554340267879399983979659130303890231877711711807154219605411002571401315954449723872722391422739433693817264471046250738214788753982738291155517274257965489630317343697674784518435157242433578373372151541637227950472322981397656764842230753812140616073787424477696808056606162796667813125765245923418198635994793492908577311857250803072399509106595438093554701549886297047306756158164849403989003182298778971025975036244248495863046559424210518786066657052152820557823120328636006858552710435094444844829273092272448253355221423457520330408241915591155263960030840257167618854073639053572325880513258730550355096504608921891736485415949164842952215353015899841506442732876814766863388428086208874841583540098848165347016596757218727494699238301056569972290843430905588058057871174594885923449436473812757605761882307811286221334803333910086523110509375235002482535461255063408765236879245698307848474256328765469892983567009290358444582276585852091159761513596172207668282635512664595869019031385320874915892465899073482726484672348648984091865579655430516259022721024944273062329381358187654808998286837301443624813532587550933768100973475322893516171362013531840227508812202193669325780729234535187739174146531609848745940262419333521249240359789495977436188542530146480210335256794610175231682165103032788121039457470892198441686126411386052884980770975720889777048740152490167874562812005566998390297925751793043201117029590149014067751692277900950173863327405585308974165251932754021826939175416514132180157598375060576733773072723379717405496521721377437374174538786736254575876968784868257094449954765302509423417184540255582348621824997772564019732204850159035152383973156151237416090115588068042682950111503666017300964712296648520620079487078711189567315957156943507955053320261736807120021344542830593313508514692428050320089557787546414223821902784468681552723865827017140166824272420312186915148054458424665842999525112942967827319863281433549734923357835436947634224482677094165527716394963554837321226948097020332425483470876858038124371742606749884187879495456269850849452647441140948490210147886855412726480101275008487765035108565194350737286782815687441674433023070292815651181670722068674985650806239999172422217121452259956055604031090841754110423863432991869689411073983141805070891775453048068246992637546219508629429705132502430477849573983386052696540903255495869367030885895269052349275754672280796482693499930725692510067153121398062810188789070129321784686374517292007149994499078263383754972081726916456289806289914973074296287570993825727753711489749758330058699173399781084625362624504745521312475748306051005475501768207225370087240651837994438862978290877170857713235188924635767304706629116267322734389275881605551211934303313823036401898979485171892967009471189047140429908167363659682829802026016312005380007561049015860123179464080844121275042297196903563610910495717209058319279239066331563142727042622599723816270522794239846871706388816395027304988324920845228893826293336820710638413924157676947480659053065885859011337225386641560654411187647644552603500979166337825297786287102768640893071857660703633174078990005617109076710368131137650856261474339580817102051360368727750668691245504816662289803998949916801548716619122092935434406331526778055392157281460718666818032616298418112731336568075936184167654174773344025237335370620155099707132155780936722249388035289167660091443510976637697758754632073943850779629666791406862700721138071495311548454468853443382692543240905700239337486225038881581878662390136065200329947699520276021839321816615327385997700149718617567433111872061643445186281075873184880281969725425756529472864520552143579251540453933248589252587745052906905187427737854437125700411506374409870450087385656131012025195302223153165948777312195521183205204588710775797543406837819240879800741580923479842852760048503377978283296177927371495193899374029218538645952037045191910973966518558657230646188314711319629899061414840006573355621871550033255655232469895998232090178904444606756724393935859417761165155229330328852257556205674151312265453182022913652091720817250920029653843283076399890380814505829492457073124908975972277005647958949835819200183752076935204565536785615152159089392217843455055261807265604633104899482739224341273363671602220027617672971486233097241968986204972723326104693779750440585623388327563045258949691572231052640589276517150643973939357619176518166730534439775671692086320585630018587640628770442704333827811925506499769490981375334597983603102775747132247516173481491823554465469562761133251891175975468913195377367505847200375074453519510384670813514198932040985426279386621315715405063999624740191571675364211891503214037034302798497452111980285395799103799307608994659349155054468048531261194322438873190127910246196759751505539701860668606842825913127923672672367996419665791133823009355026646215394918538732611940951431914750571717643995340174449045882294562581360267815420263504248884826852583778843320327055148670593840209531372248651887617290691088425473837872083868550579325784587576261325967574638365506000604159932965366042536234231548829009100197959051778384730111727716955648813436600797063238490803217991378225557185210712421912558217443816354517236243204335079375627001435136976330690668159573889492088791958184329602976685408690423735308301930783980852703140786263900186440422878369066208018971316876226394960774070631514082715038951814076569762675064645046550206320399841042452395929474458167358979855279000497813304322691097008207758151912687156220709972417136761578266790472009790255181715750836322876615566572230463273995287752223130478731585926302014138485341244108964711465119346204627533869778301485541273166856861698133696471121635318408193996293756861352054336728939486882790345630843447584729669104640765559306021707270278816331422947686047616779322734830430275959496842880360047485675593279898038940867670817497314153066583601868519007751253809648283835411915418555006685484430401838085145818893538637910441191579724600335204103414520130310524713337919026673709931089448812284196516395096273944621813147034134736715092694678684107050898745776701246366401171828311678489623903318299248461316868713864097059792377551113227322171174870075294525361829900492004060974476735825834227453530465302292899124745617959311273657625008253444987383173574372347400756631316876045493333079848034136572446993829704239327156161823029578065520350301534915634245749528999555859710957481037438343242642189874797758218298136707690367519966082127971085036990526479802771487119155204886311543187860754407161030655265001679106853786063203456291490031317292088077601931484237077114192558911014381124619593234074155199991832385385104836177901656656827467164011677737725980638986116456470066664055799346878940082611745401769486031624141851156567664440773258125978118013100101978939902036833502082080565103755235693055317747874739292255120613287192400696659592949983464013213954732901144696329057103195631970639478825376587743221860243308846978322113386632247553473386932853725414147280181528377685781044998520374019849045642085125850352172572574351721487858592707836561582201750708059007622387427788542422993786393438495575969889256870029399581433418828353122470780857412640629418050854954558090482275979727767284254948926188809651420632519450178789134702269091259689025750485277787224221978565172090724471705398100337666679062820148745695525162910675308558624132658985716738566673458851606369902771261977767759515027051156419210236672552763919990834913969874483932263741854355803906960928865621369544697827172401583110231691659792049161312648024248611356394865792955040583881072978989310781331056024714021383171854243714624753641078992193870825211630302839082160501077585838784251253528723097858282156071386334016322439090054648278675450574495954925872129303268145686989558758160309572970262364626353308769208726156881120069606616885742629808719092966707907872666586731309960675498612403956322398632404765880834461504516772756787412622681842060577646936776944612771611709850687638087113944288052321412237394729673720230360035360359441601351448986685265944397424600211586764392705686810852845192069235422358439621226010213696224705940676476893454664307093948219454586526503423418242589427901035448751729655347139913541153793559103463355936767867851340163311885998677374070344859252137813136493923690260171068776170811527999844860490919048987202338177055207188785992266771529549075869447900709629800610471948292066130751735926048993512237681258655227728895267939326941243229682961444423561309524394512501097446170883311704383928714818743600648258543050222845935584533758820779694579356963697369136806811566743181360153799422229929443601217529469336195003724703107719342820550208451177987911446094096048060032324500517225864682747950927429844963996822500636951769396254192350285122369565825056106164367129111870041469411101251840447187860129056762925876476974498899321418095233577992896667081868550234131067938369398194367795210745585111860252496073331575606591677458584162715768599274529300964626771313172289338534065495247855254898840859630544245081708543372014519978759153102528077036844391357352523417902911231952567843824408548997854574697162344458376452875708946477210142838739806180862547317322328262093651686866966573677151033628014412694582086131904014502997136825154622946684792658748819744026447569588450730159803123121174660440952383980117420743870452630775001894730717225101015638184599480799112406278048825684549911690927566258864436669747576456101235706054829481093867500440680188950261349251374480795012412585986545760624838277617673764797931372947515287048594822032022994681837485401039784019647479018792270026874421540896320837797843489034225435329234772657726917611545195792750171468308065792602074086255442893533759422580981429670462846176581061758731204945948947466498008614550972922717507675213083902784748870843987323185375847719427344212226761313780129202453345905782449731721966840233907864783197603555818750104227088964346524043770858311665636590969423967036155043929172720544322522665268695813877238909326461335145393134694563305135087075411107711235520141371205761488799912589281953377074151137780059651140948791177601153232029900569231273985809796434568154974690720263891416538275064397219489062249007795506626221735263673008669146746839248904272399885711260749310110345467894327297355845865354826102129156092080899731457320796058624329672947861144901062693175176035865855798191098509833373756666199467612509228436511708802254357190762314926709802872014762868626150532753169821329237768875030012897523747696150250425360648616181966280213588238900464418440016877812918650633650963307938187767606191935960929760382771107928095528457867515645859770460527632223945307034182611781589103662947598782109442773318487895981304110767948672544853366333309940284145531543200472655861657745267244057710828884637589234373451385617270619933871229110663860862808428307507628748690596399072056239393128313690939944541602888452738202900117207317993104980787434137914196624048595148271577935197478779665260357739063150395143674622086548032450085946222766116862856581383954208458796036464141894230488636208892141148538957803548790686880950328897194844440208609186619098151128188383232907130581088861273851152726326750090697938911486419158713701588576658138609705776467479937449433093078144658375731655031098578099652515357570411484736100390740842738618904896335513865832351663663479725486943211218979234479812180493798962760479970340518846893366900290255354214322196872922811064891667668486122134676642688750415794858670231405461959193133451672572273279180420752544578955315337688210173337886044126862233027863770446961247062402678247442848623657949240532274503088395493505334729915525734970763407209025509037288624591622579623001915568085614030320900886994574814651122481248491333062761345909253899087537661607832351823536182820515939900348683778048281234708977838108265741092409917159814911127900729641491387924093615510934558303719210396295201619016480397237083154251278648097909197922156190268187497008092433508571388317903171664927884215121294960682413932960935375119172761569673240076741024104419247516912515155570956221408878005795233246772015561118727035715345431857122093694551984213883742368223607991400125086277499385083377918681997990960856424741759417187066008413103026907999692773998666653955151538840879088712149028407617894848586646139213309547592900747633038232056562935162541514069821370793982447558570560958467750464345147177739076829618089845841559964224936432797865018785755616252375048568074451788851476902749634925692163177684149884045437592934043197579093652643052028923577609460757482678417941112236443189515068702109518895112370457827440911489257857389681546323319970781738564954607628684590528277707478960469218144813294969102573235678135475950531312136898394693177776030842801286714086686581982638426691192717008230661250373334266763622265012958042358323671550372552507207926232955407194242690302183341403225703222538645002538985937775307057357537910007648092657460592810190843026650300737376395668333556492916209096141733325647934414199539316632014923850764697741711240220554205267143561324611231155801119119736852154198116989520451839026398913618963622013237672612156663584014378160493660946865729186261579453963500486956871759987860800249010734732740858973473343933960705293149847498535041110811332606766234342043870589494364649447001376871256722219895979165894991988237820982502914342283081097674138756200792122342118046652996567088403010482317687998726228478644958979166375441534548499899403599502895429565974655498564314945712212588732928899507969300767655586687780076865323002115691077379482365282091161912256051354336982288928353190696159010329398323121492864054754612843478126067283574235566472242878035413047306209244720176400774509804352486693515409662010648082494524805581579324781845974766012197089383484484444501194171555857456056567935363489153408467300209390366240637066274529688555410339074938305688477073509694249213205534768568184586365145769693736212511683795814620120457688110884604901695296508516506332108120250933677211866421415706843593775600349817435919655541712219189820940005982837864187618654313704982378871045544992387120595895627105513511031814143277603531927393744410557274298856654453093178538640483405859731601061304565755746816619497893941532110554303331769047196414197046549122195634559964266437486685662044349800069890838187805588343251641495321565116713894682778686870607192444280436447595610193641940052391678380568523984883126476391561546641194949458407963953610005750554783751917256193153163082144333802373381244965831497872484786206446465503931785650182481298950141118598661557633433492923042097476286650464641942424559919968518516153351545682515236216495563381671119855547566704341426900660353818255056974546207670515577569538933906974932641203062395159108136530453415063072694120232364534867989701738735734031231803184049894543342236230574328206995556414137775908159743474283416011725268412178870097509584251602143583165303492083211904456685962329928935751799368618672559355171797271141184886226639195158060717125016467338565806287808838282616450104273783622287772781128326224661480774034102086736484389879070993908859123236494636814035834545964118328215863724812158637478289141589939933007795666942647535218207944529479446984790361061789870398714832359690839337092318620840889961033645816684732583169760636978349123354784788012968083214243864779791257639808444650449117775539857072810457221799192005734651584461395673928911262150739590910215469766091145627418758127612315539069342222922577583653632135710403788045123168530988749898016293219592402628162717697693684430424377483507766647106771550542538312344401707031050661160876264434786660852337764088957795219664286668348263669040277132748880975302982254527550673007275702507401783101600439897808926249773832746828004863440166938998536766208089576127763510898628266155901925916670347576573048580529131935425486166142491855961260319175722594555766969408156125065295080291950075200884151257657123547910503330970190549289356625682673078162461363241011811297287455451989671532548935638946926434721070606112178365362653113627763599154968570223900347767579512900889981483507742209729824160327488879712508198263518289656737064318052570713788286116061759148170901217554062355755793679329691608333556940003741026717050736499968772293811599811892812994627398286695215709122889833219735551991375472316041258681994285856996546666216826425676717370489993445954513902797388136566860344466546789785973724201785354916867440436311759574923793980979571978616532021057543351107315833924694517932175869184930775202590317367712602399862498486934434619204787673684661058696407671527577302843434826797482214129470574670443281430824027168006569401100754255675142620185312726000345549621449102185452680728673681681411362382156339129792590446210802607410241308710119816904513589041003738578245439776454583770428574162423900553085760343559506771626237995958318002473906971513204581808108154109281751200589628985957694774335458773928351696500055452203335721083147426698980300453721250036054177258478037754124931997406568679850874705415359085582630208505433983868869804987148526614624376712984728116672170158315654351313460057470578306173480174660652782331634551569497043326359677188123112342127439426053902252602105337600215957392431228001629332474397138080150575587526501080427043218795928059909190168013001368572866356695720785330024905507810323734060028383052346684709200330123038113114832924362717005618801861693764941453072714548636600629567956511115352448714531935856856935521688319237991575373199114819873608643419153095158954691893835389909772097436106326131728690059983563185379928222740145572943856384887655923619454147651011978715692036247851561230439417771266476908452449646304466457142455802957074437168788407184866674668205059426342205994431831204366359417403132906834738445159900379428909856062277356521998889675295748396121373019934960356681062097225688968571963923078771688630401553095235768116588322241957575797545529935677137272442891278987556581484398130954018102306822075540709665493999987400640862389672832837155136414950972284800388432338748220526628705263657387779849923801156182754483005128816132597155271117507790637988457008640833071396679703978442530809097441141816021040900200443137408907552749302720886453413335809394048048882133452594308496020388163799744005047106600210898503019303810296707090624736922804027385407111995960209483372623191887302555477618040989756085770437550515723243809857399699678563502796718676660378273272120739734287260193317361083358365584098059922074820458454385561976849143519062044849122913401616154574164141715609742802884093642198008295791186875494520132177135187913277755193581487808867405684973144767358392704561931979044654764420655519579946455555324910003622621910035497513435275563581421016913183256415498454346259890139206376093422872851266909539849502961067248316401526320596035607575343753679509666549413277259752670647652490760609939104277910112697843380963703613157985370738670230200469816213747900167045073220531589098114355562164457079150142656290190141292824159895674451676449237756468990864231673027849549864968843084150640064689461635560418606266923917634595388575898008821901202495793999133398397656174332137392216082756479495859154065845028750443856108561267919438392441196406486350144217477949727827961812370070150187301829070623103243383666849830682890583273301690488729350028676066369281860462681631711736322652305340786896211518595167695892699113197502745841443424267248026698580418620128845468497265198850014184411019058185783160431294006782719391629544963126994136767083168237113079740674962882817417339803967914667378702861206618963317456144445555822357715798052361983628161540874486654880323069979559357589524468672396564720172600717324999470882446996605908890617240769546057363307268729486702732918934876292746912614684900874628488902304304693218154810419998647983901522335531480056970792843133254476645297019354291517447529859589568212947258200298251141995637957158347646815870908265183963759964125102804575880092485049854653475475774044387633985248839506343560097078799018125633730307099658777722797856648804102048015317573887956776190299103902954801836612038429426791517460439348883645115379150642826520155578394251484145937043850495933659369997725319858197916149905398606078664702298030120051880870213866696063421600428009079398379494127180742938656126994819090268334768961696677262560787722143825050603403982127709672893982699797665763227521666617909873087270674707202244595873983041697434733801604011746728189054164159766583272461918880404505670949800353345761496509557262196285177936401221919492534008792374037985218783485360732768242111274122416512309451071622745362806241844150680941495568770910035364060412196402011841199821258303988632697003450809732497376019213123076077231654955039435502968243201268349569815290327977188162143027242729461284125968613909913919493690292319630248154913755780128257326978442784627977093788450397669425762562692782265959830023620232666854999239247130788979844748849446034830705162917101006816514140270613182648339664371571878756809530861854034034462015531708208146425258192943207250895951015958679394474470837193809610923438140912664015777057704621440424552875542796454865957883339498216901658133790607309494667669205051062770498602090050948931176198501503260293914129977773610443374655200793001399167545590383797365437025136218862172623460972505540029235981097074558436297859255141498524202047913920621514013087516699639830109253264443828804681734560233561288271747064205776713728850952018417516058498655643958383876995726401314531104378979976053152995810780372585369392176259421903170740442013873444167186590847421978657603787784361504482609424156673827003107693310794905295825875193331237533627249682733462125451904551358153940369382252182240234619339923104682953037685521699793906187515196968407863525159983450943431504562463809993384251600855631524506598599556235492843796700845814749011633340177310464705037696832049602500927617112459991565298712794451852729176945510145262700383372806941693113500770377038409039058908717324610804158806113693915309937425963224659636242826747335854273807403529759402131400495154477410448439539451813964426818060557142504243275193694247548799351683224690347320140891880025730008822078041570831149222821863116793814082354874838011463999884385149724995002583316233340060016698323128021659194244441241942170996051544843019035960659004011675284749346680594984470299646953065938318393047696460205507090090103968507066288919326022853016869497826535076014993258019043193861637960949962759583723186376246786851413351794939232601498092613286719745217390899455446122814447480487366864156986176553237124335579096733663841441409108639869243124451447085525942273667324790793005303130980708916135578781548469047011735816323340264514740866396943981741330403502152811957543746762991785344152320368460371418400648393349872357834846266622547524364813730899693495228682386199235356548526467097318332713298093152021508327554118563735248668019464414679850365282393795702347858248818243777728082733177274162389467663254923937276347751137567543456350676140816955645585841187329840733172127233969569961003937519943251093662201907023854989105342418552894985279584605466144212492334472954099287374801472778763152787136239007618685766960512707491727956028655085860315321253486545856855850094773813162003494931360367029882741791534472313503450945456557162437035111667207857749862194642374323674880955836882887678683566465310592114460742011614559504229735717253208413944562620238667089014026327174084026172916789942728000878160056325061042761425970821591099940015544109103297832150798352315520078596077010082236110401086295614698404910357146027723337262180447999017555358662423465213702221982436762291502127361134380412851521181489692832889211556304246418920551382794339111594065079642039375315405250215838985395357611328933510477591083211147689988895162791349483244447549010236750439447093979527689135062133680402067755028835906831330467713614220780495719081394937522406630176369601294926228588705896587146701668860724567423051599783291700768032341684364399016549619495986682839710098465007160057869281632945166413895747293919011732616958396820911175897313431630282260079710729539645945291588384174512990380639445214635383059370536877787837395507492192032164276638335814979096194091645459084713535415196701871160005790464123080870651348018532778467213434001995508561878981588456075870217198003375157051826575081456387822570343971100178935606988807626908014704953502327982390104307853313170148206783956396671473252641436519275099929208578356411543881589287077868327334942957849757021825025362177192301341966837649483824596065083452678127332789103766003630459504861652913237813886997951225958632734194582282777842730021935365259647266896534729921906809791467535534301179038503018342566917323623533457923464575660753162560258892594485138177552655557355748337045356537910698999237875441164601512840779977124842413655817634631077390534923207336928417097413015801897363455289486854887984882111716002282340929139234871290092968186882931511886341791958113514680139125624073580305606172545824633062584648552022043169515906696327721578037308969862395461372163271601317986361914340911065434436381516945469042527502289902522251198859685743189247217048695555431843267935720767481858602516852288996923939727080091426069280902025449920455899416412439763242060575504811206488412166795413568628690611610244048335586082048010936506394037569407724798275691381376752093177323109728095142760914197421224729154403230010623676460357172039412513452522578686699996245556863479103705739462694605415859882381907943761124861435626594401188799446773526548484312069265548381389551163152030094705094628743536857768366508781224125364539185595917452760411455504139239866587215223014086390479718837532840030630204485322954944317614774413633425091612657221340268065372315542543867553828474563107533339014593085761376154081680034873697964213512633685662446402633307052551837532418174917746622492274165951859565843344633539996438974109527451925850804949587432895222274399782412221091596715857712366112935746732343604362540671310001652035204516924999143988635716647045465481757731843778993266860913796965235225316623261645104764397624852487693667059115624054403104579275119150091202395129991537135600386344712489011124285846043263285344658789229701705267529395653178575411414762268663372346973813297443637691553816144251551210329596661838951282793874737109038808742742522369841655970973556387406385456112409589573434277388339563902931423728381718772234763186133120994217111623749901297617453612701835066133437189098372565726296302092776808113536379700130719398035081237326203020174860469528826032081893024101439233821008028508598896870479453457953245183333193121730914935734861681427408402445544927434675413215627575724702289936752525412340829244589579259376944321638839358046217777857184893095642445552243306813926318563256114354891904079161334176445814353343531864346754723176396775307013828002493946877617682214623180927108138813389734230625797331217042343274347177218448799971306554701587618979786860445595136290995600113491016393687488944853704174870657825043122126633364785704298135805694800491722784073432250823898507312290865644601496805254680025325182582909837016165663801678456668662279775600291920058101382772222690909744357713589176947252184405219205233469266138212936051311696957677108348463418431824026782506643123817114919013775868765455996052122039558140025956908080556616085209262167656211629872468790727135607658405204679921376169951162598863200819411564586459522124912079917636374237438294558104043461754662708613248596346043908228309196698127994200998133567132185596732923689773275659027954556361090021395058754885621673142201284962201225874699904701932450443200332698937231441803908388000057187343344601864531266156909737022361111981584660257901315328382868924847261360847715420211146651100079134763907396384088390724620791235751553490749935248801557693034450509594084120003031406029731816559252467873048468222828201786470746738409957004031804354635929441826836831868062901626741618544405282881624165312868276369691880579692481269395464756108150313363222562829583568673968928369003235899209814003056621878618187634146941081532551846467251270307163628237541280320918698932185407228828944354073564190654518157709420580351683196010425229086576631416133680911236523543956995743956655110015280706081093175873295906723185439714989174679213621040582191563340292987890027186813785327413773116413567009650503796053356199364514898174314406545422008595919662542857447974375310534565555743087002438085413794146018367100560836975157568214576424391773890792048521866572179998995372980671699324540725012741075204570076955089026140212878539991805158123475872561310355598750752772913183220529478774450608958889055312344365704807450913356321456184846182498256277764207525402686844360114745972713920187593122958216302050630244265685261359500900855508547419701456110722895793995774167523070730433251386274788394325683244835879672526382380930652211456575486038076664299802610079262756929211883977646789950893660975982055933380799881460325183389858335228552778163105258914788092737503482106305043729899579982634794550243470180489339718769230820971990820683228263162961275060965208728226519381518337948242787096836450556211300767463404447008776662069453787554371314867618605947363433147432687649891761490486523720569680961239581527178489364766724987689258479461709546333555019462851420678936366532060669062869098314209285432010374927276842341565210677771925631486581908599253837793083481933012711025902330025896065206187504336811618020240057285881142527759488035121107486090773579803338811339510600246912796726190445068717574649876555551531112920662168295915459014299566663778767509702675253709883157181179736707723687086927483659330148138814206468830142509747431799099522672337944733866716153307803621441377031750862621509215881116735705276914510436541728797722506359898482274372246634051615439675878190555692511108560122020841150595473645965439781694891866186308807458360443855427108616994272817420048215366985840424084496576022323429198053511181903204706341722061423225386570563345013191683709592357066645896846429669592859504421392359588403540184123969224500594936116863744168668802390460819939612712428393090350169245805637348025683535352838138698925162286591520613883085019435123143429440901847331399587231255073598274071246524263533300298674407936383270917136021471497912266413178256715853148565170183394751933494487780450741660448423252836344798378998434028431213302204737871469512350801940588974240837287186071155109152796551428863507766302124192394556481638421418202728846153669252788412638307766234056075626238324899467460512453980126926794492705149516667732311634698184565819254090203650523661951273162257141849867472811161746438873463428033451492817892171417749775602719947865798528788700155813745485036522478005942874668821599491135871910046313191263158954390697161919049482648441104844751035157476574272686444731614483423133864338414950178059875095450831979200834376272100052206543473079211913528056398754174103128758066728649375552198593170357221493235813421712516073544620364898786484013024258797682954461136577361034456109787328947807914788789481706907342051019070446869818931096760970453684658387237572670881475715716979907937432150632551711594840014160214306284750796758019694623921023914011631099449296865053084969896629122080486773186810689319679786365868925715395227220781849336989825326528361550734236231422658097682122575492389275089087397180161974308977711892842526772969305361653056759807627182551017857798881702724303975506816436498260308413459145736860995666089763774136238562520006154121402589229675791998496444450215166779959133686082754843885621583613225709058111269109713948750191631955994593984086456643490960572543435989135001498792516647904690923260247821339384400182550442920867924584728195945612400944451378687490189614106009583343602257039221058380680435432051502465994382823267565242726985509499059919159059289311416003888677485834228959706284743878446909057464975233046738848378666924330226958817253421904929965440164322683036361065687303041835101984004983854687128656805682936846876540428070194527514311272617779993807999977186892611114266902852365862780886734180799631834911666326182982177383745613297227733372797020962253782720738026539805720732031348574667467531042006930558343401441347240758091513214788071376123291396778526576282852611258989375201889810669211048373365164918990525897171083866317421594540175794890729373278897471785017518095781000083706743583991219723493561933875176581411307993216293313628892599592354293748085206558875731806898465326660991761405409584710641941136751837505914605773215781547680497898914548133744401751903158084721767040319469058936664149240019731345319134480950817430968896835423653199649570930917188411573187702159422629438184913542765543397702239763947636239811043253630429578945595639387909310926113344522558237291966176307113353112371898956328510052303896716420771542130220831545562752126116015444779444401097959490049470707815966513711466925729661753032181498981341388120094342474095347894107333040340004354919102972909428807939437256578774949286607889958820561284060386282692549140954895696469859515921628614951725325691936523526106413917600194818169166988996483643128009800966656911300800813730266612819937783030271824299693610295754303327671802727045084146187603657334997372496616591680790798397456201519045179899309636176323986143970258588987078017671990205054442042909430368218327136194632886570790480300264253831251364049556393268586152033158961364596670302762990268770884701111330846557109977663899657551053466128183922288908602696390823592620798710505084120894954006636133226022311681638136518494881675178720412322768755135215126167168298922798170892325434316617851133398238460651959519667032536767876549955605196885494953240686332250106687132980499799667094432217001330208738936118089704315543085929465709723986096900458808293902026590029839508750418331083835405655075975812924376062684243314358968803156293652873018541078356575229874944171775261340639904449953649825071281602116196716270888464415594544983461647515031861947350322737627846118818595028772969206129286458715986745499827825579397726855318645385921952087527453205062483671654532528762743585104279317002920038592863945072611892042169904381078314356660121922513248906922705031511384515796189237408664667188764423044363170215547157480416564321309492551827965586524960771622622984403865300134208985052164221178757830787610752542768984306032340171125420236108139351419991288075234896933050540045075169802765409523048887422759551961148350224409273277486311882164903380088821364426787885820021875934431480535092884435221094786134613790636970539519713447704839620570779065467223960887866413162728481164782465074589663897459619528959995133990434656989142393218404232002155367057143243387577402581639485639440835578057724637379552426258901897596791506706656528217931458206046703952526096331993374260018527488783753333464795971551243032379163044798368176979075263409982655556751446015776149049767673760284288107359622350407689126015242693085001188725483814072762891962991744026753101456438928434648368848442035401434989866154530817011621858213523016898128122395358911250069951697845647271253574895879065012872820846728662950563815388239263013029391873051547714556788332593200741886550990517321601356844929105321083280319045450778827772261825323332353147810770224108240064675268859797236463193969916802553820304660754017575665636363245961741929979569021738386237581486865919422247389741661150738691245063379569649517278488595991328311016368846838749442516846604396064163162380340770662259177969051713726870585043251899863755409993651265293574006530196098896676679686752473167771201388971791126939952951542201490517842965146525706997846921907808253966963811593436776298890677476218003047121918747069794084519554781710997214779175554670620301037392866055936146806303450463783922269879609874195058034720093415025084674831540427284601665519395726502521075229014802944647497509562548631330175795801007053955472292078784510929381663630634178431930190599141034334593367307705665811510773764907376304480584449208342293599955440636508158192040757128541544615515895359203457835801338950194512471712024375423872617369428271679618772480174290948369677075488751976987765438663368775608972231710569041522085484995009903407733965527302046693843297782229929140314850178628011154567039890061880709273241585380932332651719963540051370479178467056743087420448102477911693894420353912662385128904864858430533346111575785647319882165074815958928234503993442919675475729246285585523799050541253946676865003241328458776375259286430359634514911281664187760409476505412431216782224005050088353978648527984168346086192824339232255871530900918782394972869795790818586460476911796415784327643168741901799534792759984399652406068177273951292283606031910715508855116545464187006967911715053434025911107862395124681514852120346960672011471428789986771290274626996003842077465180481306928493151513824506801012038176035203767761811739453839909177829194132887679447128126006080201802186099755300213496339623556985049398938453125462427242629920156252399313971608651272533717037609495707180893000027552518684408388578664051618172225926254938619879294808033472943198027232755813978413105405507697699630934283081884719395043701236822912713025879308709865276475488898250531298691086520198941881493368597196419722471680882430094481833608717530165136961860826015623562142901966746383885920700733330445466704531670994244862152248056183733513071074656875883878557677209357401085547885961356092982360993699497250132228915590439313986401721129026956358487656099853316614574925322643696904389058281185159642403692809037716188307862333751202410467377443511233131268396967658152148170066432224370532164235321256209752152473057872800894320614971543707127700379966682336644049166930480810818333486687214353709349093259711248896177505447000954848592582441460935984462751251152049106686900054314861020889965321597060728540364964529208124702508412797865726999979826057148354278482884487113548933495213206770114661924090706832771121962626968972193058940918862962917715035885900304475588179911719230082920068248157922861690004708340288628408365217591790045627829892456671281291274429378179334444757814048865733697414050349745730438212939005218285663390715660918672550937836509312243637481695075120088020911328889653750916116910010789084550395503726948422205794589127764221594079925247855192986850736351166121492135409432132631410894503067867776158922062986989105517624376033339986093670123201221621336284408365684790416354060406807684838921760474827361404179376442537373864438574291663702773906311365611212164751352425312209442931668582175519647575502314203620107384095452916073582862000644654039289559871472668940649797339410928184896765676587933383890959604286873100263709396711719227144741525832418961094817465312349531335801763861549685729291538928471290860385923532160211580781174661854020649818450397029503127274754359510816807203493358548537943537737881306049157175012798393304627867799908392360933666590300199661108266677408517699008013556087785850240513989835511033363153093761009510915730802264242848007593006171980392119876330782867498499115115680178223173379916283580370172076700348029477872850863594334024199997810437959223772829731660880724958061955593690050171981849835700463556670711479996306100826059457164868701074775251568192060295586356079367280311656769452261226904946576801348460696776345268059941419932422464961053476009630585325444086968994919319986923344685802007590181682673271673753932523438503848298373832342646111624552497880433847530090836228964116737508166213984952112431236275274089300715882696036748716062978019023154911230022595581828478505235102426716456890407033511333448462856266961403687751613589774511999441677249128185398747200263978245803511385560964502244798889870521067401686341969930261771555343329902851673127660568534119389967721844908736847225790320072262105396662853745277918639239667584990135073247537854946930767161968429720025928240709858625123995885841981802039707066005900043874142474473250142082591745460158639059680186945304193217982543607549738278841625557381885674388425594756943226202953388657932501010710366956005185265774509559124120471269989280339188509405499487838988715840042502524979519934464930491566037803904743610344698712572100299200200794223242095117624276509714555550280789971605979658283157642076576219645931797402343161499985913797954144879745333998478678721005579162501011504915177719276430674578753951070925325658507632667803983142136270338755296608741012935693657674187197936367825137426657824382877563366885371642359653685117051463051202561946604066169479462621279651028097543881287715386043783558418444472648462088722696198643513984594341109001788554714444917922554318612311396079070946787052393575972636192819691596990366811971516438329916391781440129145726199780395833179039249068012778326738529305626577321370179329617106668682432993249009523735676738460247995413747254061756029433396154442277568322985416222345832837123926542683201678632855567314780472476833531721935060880620294070786746559222882597712228925847924430999456510610953965951995940853911741552450640853150289288515772344568318453281700313608505998108034493171372763043870534000042577936590815771698948603703602217974489895400530746669223486980039126953753878969848897983147982037509308738792321429793319312476658925357292205662801595011825147957949956014562876664783962103178591053369790413332883918147248248898576429065739141044364222366889889866730534933114239669196632879899530266775056043880060318150014645511412919326269136820446197361888885677872448194293694096260242483116219322798370507038123689784548628116870961399193635079946357172850503064042535023585831557126753812547669256257925333149970601753977819783161321499246824700199961960139418985842136252463201598729263554205588627374377317648500347737658435833941056549780657171270687175240859084012421708325273845785985363833799767385803558669206299315117133918607484019654981029749666299713382335451976545231725531392583059282743316156211368800226973086840312941787040402061241403889733421145973725398108385249160656184683093396371366163031980818237052110637982953217881761340394339407947894788786244259139646288235529004337603695687915174913816156943676523556968152169856738868075984646417950597651895266175545336004558207356271869283076897351016626855067087160450209178416360130073791393820797469136729155651106608617970259000875502737949409633837828727394827672617536502576948066691577355469772927350193504902672472888285913679179406133736197209209668537837425600384412353646314432987751214215654459910760563866158840819083753707954554030925934343628269748727993995516016487881599809337934917300880805807897160706673834256552123872140334613024047035781611760131966085367471842340463608517128718044215217975487576861611443036435041808618385215912693195809910118956555486019998945889404595892113611403657093726356288275003706663860219949758473131827435420950405446152499571992609349241688569989657791449626685677308933872985384284921919635242572916878558247821811271390418548737551849922903698206045932718013909710105306686728783876460338846082924815050413518426392556072547701791624786116155886145000331546765612693646438488552274443121743955933179882062210357457847063784740718648325096153479166471121320309761540460571206103406790805991585235616095135798760459627417275132072858232966000379712406951117005847563979014966370838976531440708738063782859640791643273497671396162453399680023921486459537111599498649475127471569189579823623346627587262323139575999750295312810330320535940641404551643334810305475949980314005114790135576577926995458043602101389818561998515516674748903697551387494694748929350886121461547388460080698671475949327645373652304884788637988567573231762280654553921027461805402129172452702536879406074252232025057511791016990267371914386293437116470740254439766054772205171669576818053545019781661194433441991795312919238727028650417270054478496121094409387182058216205938383176574890248257586985699601458118831813576613836311346104753555698458362916947916654614305216445862563014792728286212209457511096965226896851104037398225795965198075981734067496761048390601658436110197731166602989952258584261624158754023309162191969279201949052662844752489006998829312897567927197952765475197621610654203372694889527651783453493161161465845224320106144408476541385991833926289149984490538196171660840735565407129536466782299180173330376557798399667472603456515591194987007708206531367596217423528563332451746298139160817564378850538096760669275565303658566956923451399469333107132575369656438877204797221028031596433805125828840580931104277255855882406015174518267733160098873846654654022758031325014903714110908515958946287414258093509723201355829243911774729516070271670250801042680935392258924063013546701862849403987202367863679550586590256231411701573012474437180698577072401456211916298623375858314351603092991737131148525862616436933112156327753335508037410216862433686314427307894509043717997436510921527948581482756986089195745600469220367682287294344104071647519460961871066292798734749523900207909054049167421113514815306603287305801439276783943447589387856420448305204976317628097456525547171318699691277677729854061316132586139002254834081607962343806126870514414311220817514717772578351655224304977480465210622747315262095151331092626930141000535742662318873261162778624932842080732255933430139005005594746779954230754244819240212447544297676128420891636587575734318720639754210874048688781363242442738629670223826511768174457114860009975049169483208101811049209781128213873614997738746781493746561841888502301096641470825829881934162640318276621764080257961891237886248208831972884692442468795047267469791865178946424040234120086652920680108554023568700378967839743215629905479543674496182760917336313923367012043348834545324988864737475603358109564522640940845475977453490449260273315741630455089225971605078721553614017108466784656447644626519493880558809379270358733171518979885253305787526150308122623540267745317168234543350607968088994562548880207181239445754428570628212459753729615619567103339562488621824676607876169831465625683398046068453536941164962009115467921155073585206629740806108546578787197759190529753060321005937764059874109949793120943865694047419607321632354603986386530025247650362822999184861699602494208624399197965486611443252944684475362302000551628970565445037915738390069854113004550315282766220907113485957272293114971320335669107714661888013767364137622501810718523592156527691930394242442103806827825441737188244743550932307084506415370826894114700947770733573011964330351857889332246008510803100223260988696964673869457448623190183403855126364622947533964783840030775035888413397341870606120687142306338738463712948067995180133059084447968467996170451668761033030615690907622523088471824358826692808350795956730709298105561833414232792070322394194401665088817123491677211535611970057321696479636728369747809593394084017954915537813044886040065647386505845823551337701223753928420268205480274175689103640645078714003513115891881796178793955913256838429716061018500811885830986908560171188909026041102037870617929245682799415838115505501218336993154189095265938888744537472182829087096981895419868396975668204752937239075543321948715567084443920218827789750975797310120030962931492231108241160844354324444166450211647663905684902600592203411631697897105313936688758793452249112058110713086968542334015786642967808319414267297054207093564025670957143258350863651546123643461284579746376250563266334323951293371922342025348243770106760557649785573417573135328522342368754240469855236090575881267146546752820372422767251182378894161009311071094976097022664214062907187651982958557163396863455615842481538161099403138332203344883006998520913918470045935064882080809744423800211779887690270630551490515187802173505811154293009444734932403893941100032098848012902761646554870317046380694337338366338348719953514589139811399690197995002004873480533766153535133403371889084748818816248074878942604369820235183289247973678829681267084274042840822958750162971534999013889620160581810317554131617036550591382662637560820104674275242770034191450606735414674648039992400572777846527389556023647531739852964848441837687864104253623993976692331115627153088822608861722854393112312910531160917214936452890181467533617264065628792291374121753749111953963207334206499844872465040792972302604944058795992161268888550918115050879653470112727332670215412543345858728855686796057650645760581969149409830586690188738354691718276777979205401802313140989122423873178655461679690885499120877450057866038758917056308222539207593637272153488941103600200244370945497633016077214598949191085272239334382566600098461726703412722155513111573037488126514834943083134996578943788695381024298077988773099716554059156724579218857283255434251658963062887433595528907851637091539974253500424816188983197740269491136678802728797846181710865547978085655392424419253159736452965572332795460942474411839512186295079737626284954062819498583864274640707591807856094495069847855581435218351754095597619763068415193763020795576730178768502333342565931794996386973035789248476277625241095323492839225096147788540406270917637001140568567498393620496249838646011565820040828368436535602329181363412040674236519225630279782749926618826420867533026308716877281013541785315759175925311062209778052570803747349632364974677306849788577613682791768114838744150107427789528732492173757963594167177373284802461972744235099351000961867779206015980128671477540985210912072094008638945585954661434606335037624433382949725262535235743974971431180070418873290105886368240435071918810316291563791986883728253773682767716847942307646832475018765430315829919880046786287004014935436919150820600180139402664954325850607258364793744610120541817876987252676037672604356761979664849690493120041401074525131679567971751488223300330847458346757831679662416032435195707427215826969636649548525560896992199117118052357920998282258515405393402417701568262327455450843788960800802306591275029356806366945680860918141317179134273761823309334524463948568458029496712251214017338580588773285967061516130338873093989360305519587040483000575424880475985237355789778560339995430904491569709992536658220960658665930144921209606821675767193037905413023155670718654865427436126930528685585429825115408173978569607528012348484789031080228789869360574318624353986611477452412584715790098109944648981348796085975743928144098480168196553439602204907801015239135018786976343679545121340957543096477820258876037584287728007035364395900610982852054249384801668448307104680174552652618129829245011738617046084240948219464966935169549940751881327635588539468403200157764170871182942541923299638877242848519699119657273522492049223665288562426166433908035158153950174400451521113634039183584595540009724580160430498968481484673002230868929242686713930353756432806425636126378306851899956077166918960174878929257581393837622381452890967436698777010600457741440182937881798241645461955391523859826668746420075987577078671022037259998737082793692596039152938784753062714447259760007694447100404204159676855821573749701422132802549344721701460341462495718970257801503131827096249458625885447978438310001203019690864127739667872525305773121769202684887379585395811658771914015027292137706522475384836268542727897947465427766841978738672766857074302605687781888209653883709225160334219633150772270307358055386885387011917575011894273732389391901804481226408950261363641139417498883673945483501133045471344470403974145173002591929288076495899072210914430008802263368408670113942024276664291220505685907519888459674452043743949709225135638078213135787516781412902174900088247589910758681189474267614526448664588787247578375269203446230898621178051842785460251071233101543284787729100000666608321517511733402691024718184757598235118020183942351269244257935582113234344703883667449704479329104342423374476179674994715150168657613553425459448009066688242643037480874078883102998606261360699216382793780236533475737038211688696231323535420152306979711931900781743785319142936118945194239597015547880366104999988786043608141480857255853177003439019860152409500431804493765569197077363434916923559068636961925676845014029245317588478562982456021050299227206717508350343881344700403164989307560421509503902848326813109238954744083090074802841259457946921565341181870326061955105092389265342386346599051594327726769952776978538594235186872492851316519462411215169701181409941473110864640595921035038029392943059507945361263672089137387314737932518636298363864164710043756332906420638791411187986237529149947163963239681344053456212471455647852485926383119283008474434680545659726026557698663149423788456012873800283244780820698386817844212048864770628362193858343240581931313508304379863604813152867636168887137099578291331819059516271135458363544948228066559515526173368504799895090052632886980600034726178735813587015521982359971123485527397220343026848710596811710490794994553144008254754690258977328722731168775735054988859387349175529551094512181922665320343692895022499400504046591607774460851144554444720480851547355027513603388842171042702431436532120876564580943519756183162128000915161938468721030030130821553367499461646148623629429763290862961165549366380529486790682826032313569806564883415484999036307120625516643995095814577124760939724720623057866080902494087161619909201164576155569046796420075481951496312556476528459852607781818234136919873147896820149202221191448570967459594150572792092551991634920999874437205402258649506900235742169856692068491956125908934097607809986350824007577273560961216357016341708078461807815334868405737125930066384141652331831054686091179451097085609012083888941535217814092575828237439697202458388908514131223167814470472215366214670779533256709794521588684678765180038457770695757877704103186413182154041123988789699023570411134713279029897496120612410847453671667545160935926827161860851022198429432907357974415304386162590234009095957599771276120617191328610767359696930721790401863155931779036124517400629694178515573329696224301310536191186302959331633446283301302340752016458038303729236649756192615840798568723276989963358172087731206728884598243408878690227510355498226192307725800652326202995712323714960565104991667689568955784541919889843067635710319851897626702860373490583352328427462029317767904727722940559828406299708336455052774235771547945520968604342570609278673722897763494001460692650261064314494872249212579960611005114621484467474251447459109550645062260393611350617469088392612981481263888698560190464893326512942002152651383781023977843602503518193708635505667989762873739543147154103879978128576784638573565013609581709806646206024401520339231285808365447663975944618495815711600796388659244694099586950331839214332142223296509488424306708571406429567997812700974453999542869700420368600895758438922726236968235954639014553567804068711085950099968697587458468239735941183149839843776602295966363931720450415052333938667556208195357007757398264866773435716638361836590398264422865672566817127191850629660664977680531995247692830743417122914850339337187855692756002215588010387999158408298313843408480512352538934681250977405129026840288311527077649929771489487221342476337998767338545692992048173494466058483239437009725414525652634344229562102577083845428803133449346821321747229245480325157525899778992779499790306992668090144342194583246535313771162323670794681716571028117967254178189721707875275042581267460380475469188357707288146907931438740979739518434529115715364814110263007995232817487180404923348822215498416932302328637788916446932378575511551692878310076753570033755016771784325396261001814576635786461504625595788805335756035879280492783823979287776156276525480699096424299894202309965699069940483388234508959568655275873375321785196629065632696010738648597744098781891965454038903744503745279843464345190143128375629121018161940921633208056713767901096101433998120251160730763289686575695358853177702612277438440084340271006336797583856359076192959823024824900402239114180141029203006174332451829973032543136189833438098277000122038587789624665983609287650787771912817739849710200620321570582991338763695408759401827340763411015219284611050845580808516958421699735396623826493568685560935015200516969073131241376943454569007937954941691105991282631161526239829148283389841121783190973729548909505943902032104153725559910028585356297736760734407859858667775904480753606926057788589582868393582500794772081140168977462793616187414150578212388953454957294195679028427078187912862625769662122830480330781131332295584026346883711338459807044285058371433021943360841995131990512376778176518088397814403952463887740882582431738554368108662058208211530515611730312213656696377904637022525663282826867215437734099130503031103653371183654313522154094578299525746397625669118877467165311187943316634186869247205190243025755717623373716988663086008074920567434255611338116311271256834923342250878541009438277851536879001715795762552164031858120924170222885939755119544659747855002614300405395269612882853853985175123176822329462468784545527526578787908938107677147331271467052915932638186336571215382348668329135249660796557778807821647928170767737694442022701740342264411868672815818015056663003271437737781811407955075428839225585009964395764286862816454259556800714590785989631230886515400727463788108457534395017396611471366693135925911501109512966947419438171110176929455242673665454444814923255898463361630281440381691319749803478242751111854233199016887251530193688439342352322808385083425231626418665223949498855176511308542923270690795872836836389437879950481941373748538034659392144750403838491846508139120003613331638910018471525461855428104919798393119453092347875950900590284153281376036963927049699272674126160963451340063245725454425330652346438195977398266195040467760583640015908021459873214393231255413805361155101231398820891017769224157308829350153702462783144835927167259802129685956473265511737945984221243233259471513418420977123288604736028675618832553512466844437085470497815371104180611441883242996356616600118771561968752055216516008334613846646151959650816924785762187573154640332850620347032993994620305610984612417342918612789287696819904969427652181670016717880375956709602108838236740929707716729957225336563486381884762378557052167926970342018322154787671697732613172260996656949240721350099712004278776906970886658991326527449098595337072650794947437203118493063615615868725815657660716080695692439001800110329427027762420766396637230704699163871607479853448305805853842905501708247646771920798372251697795561103316186850212947339694083712894633156024952998920229457214622197127063051863296277186611297120643894502212681546749794327546652493356623049698085339035666011420292339769539135109530033060857916457156269389401499579045088776015624523456373430633378842739602600683340464077301329673339781084874351861745739945756128335859731567267853764205148822518089797707539955830956989682024491915975571577936275497662580336632190092777250160227446823060851957309966600553817049794527418591351629618528399396486327379833783250946264823758255214161869458377892413698756104057353494812942520386898186144815629691841250048091501678870402405715987204856701136175146617795855479027429084446928628653033834755809576349444200955475727531552557987336556922944174559674258291745779375846292662642787671533176657526665131601928472561748940916847661229585599603760252535791957606472836747385021502410743392005582676252505362225501447522344930314379258702061667011091979262417965524927839136331186575122451398318406608929387789548132504743789401314309530311356329927723581708972283001517551846429446188712341691688638199647189270108134992750382757579199313096643093161516328923146055745049036966390374947873204483709882291665622269624969144305006474224115289568847472064107235228545344800207133586640851230734158551150221625084487423838490725586463577089438591411916282702735801677043472740211758398113923094565410711863608735683110750186871132537734048697806865950451387294733519191029636233678432653821431373435127511144086863384121964060440901485532854761658430301438173664345264807046021543556036738518493212312928104713951538811736322897840868456917131849783796549859567366290187341020858440882559341030433794380968114585132373767670220697280430943580726183625676685145786651598998839365526472871339534320960488378689668263028626786718454340669566421356852386177947162067376781906565137415924399161821750881497547342885402319901740524838264952100461806540309368995773514300425262497340727770510776419103406495442232269735341300665863893393133477843789281289499842674458683860478524778239845714376231408474492210343467690398725041554621517386695854110951599947161880031788157260480893158864597902964416172747097928324156070504762713617575149589315994096223088366391745407254802977069736056436698256713887718903442388025614695416334275465553663630902348751900156490439544544463383508429822772935097329683027382294708438089373271919602071265490726105102261779825102144684535386962520822226380572927014267955632637125742276692604166777038870326061557968390481582776114519383349444389127926177404767237476735025220488567923806146106594552853905039500329186606040642531521224750580331165187914303511839046329277800987907770547683966872253403243865034867037239221918684877805526813039496732802843656472280348511661856381947305334607120844356157703984682042197619253762354797432511820341704196266880115655092481852971765135760002315277866636148372126227034010981632352814740272412505761653132545918979268788240484600293099212738788547236586160976105508972356423397237917001049944913528578633464920295189443021864139361195844431144211933974577462279068728798016380349982594064736439035213869229294205353215281684449373304850258402519703029087751212267355582088547981681057505763766653163273527489680567326301331706983644576009250707157226251841318214688816669704376517335360451979564536478314335522367673510320785977225307565172786280436079103964140851168190619994645573669812838543359519745317377947107037080632773947038757792747040170841344694271477457859978718672769799350017196694833655950153007283992073730951361553795337687317248697490079392249436442977202724027333859547590675096960246386593819819593318077751504186216298215696536614383921521033700678712238664426861726582140326315518024114757260726381657955696086696625159436078147421512399546733794868963694933550581906485057713642934286715324172960549471218180297553514776602858185120746212376724286007683390479051135529863119869746868378613628130620536484594281398700318989657771340405564958871237655015329186675025761372967619601557525365325739248164853625506787157308144400475744052354318814701925668167167274491682901475735629220492439284634771364049346546464247422190450533159856548456375579573267638740240185849051088111193168768993276019207522696838063145309659796102342518172415576352427992180840033464484245622845979669993485082883160697574971482810714182176646667571648638971460625056611172503337007019650567440335299880162568217325940529525163817897358132922257984715070456930287094743770921494089443274101793503787467593201853831482731703448379844639762860693579123313623966576391127270713478948448915778476332113990284057478976531237789173576801026991083197912949549033726684972758865482946529947220865906785180920913624157396303551974393885439145168590146694887874637195916368825868140951116141663363164476203704755699784850120292298121858536262441813282010018540572310792136250259681890508173225113746697688886770347441591542946025400823777577305320944274091504526281712078729155842045076886982924936206181175397082988870851498509455618494022520162231036892568209798931056436369092006181912288581306800276943294422812340117179359373580749852984173926636216567830619387387504947255637565822502492665645830986210053284273251321877550241966251821058163815007996752629902557316954007691701868955644271405851310105825006955266738853019503425257858388935067813863377940393529241924187016596347991848618910585719207166816223021849327446682776590410792800496869332200389317656963502578876963652419235052193876983495605956952627412515278860438894419547954066907678748814125767842655416443154521706516161123723986820575012314839221677352521594425658884942043285262648521150035983596687328813332497104089680486919458304971673227896720795575021854010533413215430329553819838282913221391314581732869461557092962651251963123985789001059929988581061325820445621140048352068957861117895962226680565039226118682548380322480385322459300197396173361339405146010807301574591851067394925074260281223814214861823741637657267739126018082588318554032957713629649106183028978576392038565011404502431358606301904166953768643773185414129091550635060317924247586439932288064057239667052555829039176879817718989453923620708807182833823701576474968450587206422313383014144736289449584128110317647061951545247091714194646993565984151282541997278508405325517877652158316366775659373560396963841085118601090641833714602161026123331663247563946667745290424046268001366769975586729896909218689260541935973481929318189225016804627871676096168858241156571660685519080360159148681907678351056260143049299049550625609145782800583871159128568852968817930919276233466795454539018886286059023353807666418744169604542910258485228997629574016109684593182206079689174145938809540293918410726816260292937314868707654259097005041564616321438146438520569870710182972601398454150701259004319837929689158216646595147563473484742533093016472316575100379525725113885487678432328561995867121395801814092773155028566903350272790443523901453903915239808460930855546548358857021848020388151248804163051372781131740615488169445419771579230718950186191667128844203800719266700982480570459902570596450506346883598709172817077266171722992334590976293864785422606725516632062248012192003918931481455090229087598079736491177918891898418304549245191748159438764237315080285570748657196961571488256495059236277560599061731668413056139961581381190471123718118695070534101726429730971526960872303889502414076532492239904459656644931356216961575270615238683787873865255518993035598776851676193681793728772649952209740697043968797660882166615346255154446044843985951265031866126144872402416097822022876345504193718829243731377138364748304121091074765007269630377370384168602376588838673228343899586900165105101683972004066493645741472691530798528372853384227552885149493671356615370840086411233475452433316940440249473415188938449635586874792445848730318738839104879985170760139060550481868315929433663003701075898895542085989083256893143222627497910380950823014552636140102440172982123854379661644311360892700041672475833104197837590746609412166307349994506063267129501010464707442756713533504181611669201497870708822090483374387671500108118327207212529394891761315287838612023997067975203516166400340289859802214492062439940349963498887208048039017317318740379420936358967474525032655515007694939610548305069972877622228374024564123608977571268994988678920737605278099914682481578778950303598748113452668387176409632607039197009624396072367695896138760381568438481566086618518641488207031755157207782000176825788058528840839482084326061325116350318072270400824198152632978000539209251710410860484713914322148832228596587818577436431178242167333200838366612656848711563982351775975432194911474662039853230891841695813090662260651049196906136238815264121311389990179278389575901823321576728921950975942830714878930281048923052895009903328601561481661438966019826886868904912854478180123654961943149716464193092743176187053999752951914482690779027398292022817298303506415872838104321186905598147642025985060384744596092948229021075607640048682458890764620869744145900579934065627150419834837735600479257401955184995996234395009337389046715291695063613376748915698367290922305293250803175456266059965692162498748503607078130037201976060533138658583140192653977436309596144396592992595119048512676604479192340603643043413731836498707728055967252047021783252787159255718259419673854829578066122758136417825872848082775583956880965752599368212970337409113159673861267299280732040217092745187442897113221813155582144483084965535945998976244762635476177450754300266850171637531605741079278494308023950312305294106930565242747699605312058726751930859755351974322618727058642507939016962793574781435809527156734282539795234643334668939063459561620764282994447267362925474880814531436765248028988130747979580009855487501863467023193056340128163781167572296965897127775525508999500442007554523180738937535610171410733046219987262235990876379831232801896427180331105979905807684883259579070295774809273390324799951609519818442562022376421614136616615905103383988704757724169787163113136715401850211932540065685091090941423233337875400123644580093965175198361761733609258833121023307909683597076242036607607169738827952038430392028983583370681824197503065313480396942470877132218288218712721811326694293335080462455744915093218892720570199612251568984356482952436897542175139728934051717042845251987906660806772212413524306786703065539694543385820303660269666107074056655319534503061335821557074150413770653403474357700589132611543530524974505984613411193469352311029746163955488131859071992983704875634230487650470146822939438003961609459323207395411660572525909168891496798949022115177260154258871362551495148025482596301482555887906582014015157537702864857930707434292282913051250617185366299515028469244915019573530208907531003989419765373072295231721314133540549557012733365413340833957671182399076868786949267951788814923418973738576707838759244279491504167518862974156310129042838000264828408633074810692037994591952070790039765893959004906457885696530725817734070583478686035559825947818659775427006889880494999837528498684249827116862262560141147985821766086939065832732399796551159856110624381961769024917135084963009768120674125984107518588190116036341667911358138048747150935757616733405106558583896668363561646359184236706039638642341209295937098705282878861835139895157093276485827009566136464775371751234493910637292252037796317784599867673480597109047146208837396133124106506723945147145201823564527138727363393935151463248022729788827396728256242113519206803471702749676732312810022350987058386510094855888265808429488160598971004488994527419102607386998330508850701256082231036948492369906298056438697581114367319235677509996222898269998273030729888504857133630402095254297053018085262026613986697209246038807871591978203618775938048004389078492715711701795054505292482137120323509145180435030946319058265198285087059334354858454780873569729433967606297723276484176023313326008201248452430442059987775261685921476747706750976747433519087159323342402432248751578749563550208494580370104740115870303938679030845757193017053844463968190050091150741059752355574749587666180625918645052397339068546267074263390832155839866091377410415095395088583423559818564248418492690015005381148679994989179188673470239997610886222297844220894661196247654684606572807568866151705438070177980345392928383259395993388934407793035760261229116272065919588695250922789530860396365381503693561557189605405498108565555075560374812026812631379198507328716038774582968167253702319707032707967452223489189311352389309696822581196211219927083290318345195017664778921105125122955647349973414737445821908844547807087400840480380934780829941011248599289533287398974272795650238478900645848092200300464492493706792898725751374066114900882754183947098146464586375195805398220797208284187413404269766176550037103987410295238857820210155835771031740935805044454168562115165329494345882661416677585114096799505293939682035368046313952333977320383665584376936850464676979437218051609987236039246385653969016091169333416266801008017427372466356674612473605555689430338569853239295040233007698723996412821363960901488780004839353049929944699222264033244195684005913603744311219099725598520669483413774003183668111440802788119737324770273961223071456380828728840044917568016593887100290693169734965993573029672508085715879443645980044798790800246531579615906441022925824166594198461797698200380707931007455718488756903474699302552314170298975638486977991446633336634240614794621141852742634616981009852572194980251377755631053811032125379227255995880004335872626732341739622541104226444096814005298661783698430698888676269191183108328835778496867700402672675323355353818583204191759608202181110603672436112267792298029227413109121565095244433550497879282740803189725462845690401473738704491269885215689647826893274813253179749260215821395097828251724521911070396523740506093844094563558293891402334841976461484980193891208306730285044510610972386151631469268053725274812023652817760586648538988758781685923037823664479359074317314197168985115753029097274629775043805208527521857471349691425617462765027159981770335865851411022947690149758844392668206742380909123881937898337913016308294322369455985894715762776407457865340869283858228985786402144626468260800614811884115205881788819708007636268518120453753639871161939663422193264167239817119021841210029887279750753182585624667512895496792428000232730563542626917902131816045253764224300293566080899337312775057112010976013749480729884422457551637633258476830817540444400279009260423792687288288683859513913749420056086541636056468405941699217179989818900854433726814433312060578755959023710728026928465786661118454098092600234726448128624372937924288793452373192745869279645457739132398057006693829653892481098633495822992955546166082655628790810059593899402243358640626353827788098131406125583525098881109298973835938781647674486732275164528046052547400602389983081006447795799118959696607454324317034274010689047636337612692362574145524699027946372956318211156796590879718839412566525406912978400065359529490621688967722234926945048197945853024163353829198101542331791681690852706758554787761340855349836064780399803765819529922107779118287364628802217099989094619305688191096209606917291920515528649154778023281152879994468237684750637508467293242454703016373605904764458111745351194042721709863334918083694302884443080941925197584874142672703735299610677937217750311798574964350732070378877317041568950915208136497652072731390079710159302803251374770464405192769397351322164013719213192753942507845056098155890359772094580834770669886198930440435937585948085887749105846714375620022060052001991007474570339472592960555813781505477479958352273713154347211485682169292481052065867301000612476258444256764186802174872436757713745194124698859730155553205934223115792434192770121722570130081893262926411012905119965947005953282604303298603755371926349617443657720350254775068418014223974908284488031016868660387765356984381426854906133777685173418760360585859336768203881439866992809623243957425513088545204036417363238761566213130744823771981871504239749798820325548152745827126538406601870300738493180634464365510359623900291720854509167521152029917296285074478341049972092926110939780694575015731981924555865265037496380085308453408002489623757706733731067650472781767679778044413347118722154469883424131446053048345966330348225938899321925891368143817187834979396549771802474753459035328835763524303742763969029871971569088378173414894101234137739800820430182934063349479177419358357383297704418364030787342533003217135505952332821240864934696756212539480411421854902086214013627691717137932764360112311805304493545095873686959627389999371780971695443762820827978259088988590200806224283101652577403952254089088321070370068923013602740255319121827363501334181399288978394559926040916510705496375557069705567528470609723222331585535504505550982125598731994841577130350194977015527781120996719051800857553344343871508207796064108420154707049051017628028190460145195171406170112490497229173319393432652961322565197938412710506656149989011608277924542153589273951008340056421679033459207162622970795754165492046554334032106355478746737352009596507565546336959557470613250612717909385431072367021418848024225450956951852560486543812539148372480516834435665442908421277893243950367246547339493348762797824294938052759997392263441842679777252715483576659894282454145018496911511042637561662362683885814282919084528174257670520290118428594312636010096742257153792413794307660882216630004835591173268749360820037685779871705653142742151414837638622167433182390816284050561773070963954041786094046712746433281155102718319206118393692570858511844255630790089457475224698016118398923239247265547158194567332207746229775790547687225572174933319254063529319292507837214678702594934266462547029347580296866774307693192688612519726867646420466382925946244858449781907485696849396200479939812970749586334640212543820585032959959179999450775189774151738067504748598380189151082945084378390315029075811709069795500895204174939272151810644910690729137715573061550152751287857212146127577364524670307276139352152397814018740478533988624396647286375865642302813010551579140547423730342132161275209538749174789089865976698224628212243253242014529962447561220573656267466545492919707342653065978517937552742497909217539712683883381558646950847159635073785274150584658556540892618765563103160012214447614528560338423999348034524448919036719570343571781361358001632039537284432495431901140295958159757324271782122040107724370111585251906085833103742714014093106187855239759445338837655748106248737849206885886720114465017579055602339748199327607778486345913498780491464062858440488385459022998485526125878307882965030690956428717817502184528496229109911519801342378419614138216703286351558193615857861202352160115740760829394571434277570108082721220245817204274692948163828183285470331097691728532679246616755521806028955428554163534944191271429353949779143473743578843500296929612187649918589539488927328188459233989299182223102779841466985434649465523288123353121959621245110435120251697804937875508644409898286743997537948543516952451153141122620804257562957074529839744146777342591651109503788501754436846083854150411507312969342803600926920006789441174462034911462075733568488230800960290798464655845334522934196098136736845533787074642420470514596064771161914409437135588583109390536486723879736645832589804731632950885774233721139955647581449485090392429356036914672570301716432344645981704831660277487948952489794321536370476037320875218213970258892262399028188912177419449857189011524635310045769560467204789848221296399908538543594720949212465871938829566308394837784092762205713724683238856453100260142347929475505498152923303821998203127836724924628156105827162811623941105796448130759007512859437593825284904708809717103973778276768901554523140120464890622747250361970713650004690023656738874049494923024305585781981224828618301786966731920629988412639521316299392034609172042503864273905837303095983499203029206433710978131243849378632479432804591117774071217603992294375250689415966748617861967551645560206837508134584569231985848417058770291803548819396974097224751561733955036445420848229649176235797626090983137617185837608942090463680633035871098248615632514383656970653827985597600677183470551398034172583009585025814220539709813660616533869891053413699081196037301511856316155084341159036952781891894104034859681948291530154744550734481985970005585870046481409664152272452704167621198998564858205142912045905799277816583465130185214651322787237935361684687472936017382834935198213042053782391373623027274366856759339177084045868887871980887345039453401760256969116672863953225711148089075780759426193168489568018386206051710753730205091157401072447580371609049550450426306136774093674680412858038429492087636245279498543949875519131924425876896974493027269291261363836785936240471415715593374375303754491765483117970291399662590527389491615969216371400109724126995981926019407544305905733990946070499286393914795488496993995023290332003871162609531226427052907179742529143471030062874096278830265751657666772499930250535808179801794547795133748464466758369572998924951152237930111269115524739801990591794238669871668516414569955108723300482712679380955677792942684637864786638566224286502722831951270382957299951359932540711922339032669167874432486537512666692312604091325642173994786913132572572318280258357710654412597048229992744728616184110230765787437283231318956298507375992046872386773412103962722999217255902241551990153257279892360472725032397309921300512892562538911734843072748582770711662114963352194152190683571049286790089077113947882547970066702505865292631775279149719808405800585902288059934757471355726752495764853559326099295444369068305557182891307889248757819051871795387132974615787043190877026058244643470234324474446110365447644613133430835849521845291918590894609742264695366588174321682566621944635152744026107065194083634220195410689181256953283129149408546377290140769767104153970537808915858992552134998202440633446805794968114586472320162104931894519105460245385084491332910622935307576499485621136556698406177537395049150118136970621453379974492622079795949982508772740808380964766545165149031833877096301974694668094711781559645491209857511237490996137552863250235039002429611538773434445524915228218406756694720472525715226538658517431524037183900026563336741643162321536409644732589755361294835571206184182964147329050985728324516445786995860555583586840520720385295298207867626798958224947771054580354012275027801291724353147489536368774760848420537397847515806558038594509860066705749086031960477528013157086357115728028276859657309099820643645027537162999090972998390345272467249022087005793415028954265969742244605921975005858281821727822911118500239062293528496572590314899623300466272473926229425149830555172665885765327019019025117678572796385505292713107393781668142791073428296029258989042250608745573652744620719729488805634132327562191809873934018106720989337823276383097494007765114094945547007775802718407862023384574535071999631368603084480030412829721597667969581691881331530443606116702558783952900804283076490094236806317810099777265588537335382377458525376281227786266647024185123589158719312134470174940453499466303419410710963023347430737602613636958034781000540127810950698187461133880983101378971276166236056953018893073995004759282419214582276442053782296479716938373096026334503646591862470842540041619949298889745219214783125812448612521879291597247265586742926032377890909457173867761398316051406606513877914842793149226364625018843558339875389002278278606051627048320241453448927121366202383946577643782104885814751196445500212102302406598178276763267021643476324920521822462281823373294664060578481095472160686594434388901725268576244571725604970030522327157707106875898715504528009955027938832148566839132438639086324265521299628296523544907027817603455478261760273605980310462873032714398914278026532535694505671542180803731830235481119769128093604689612372289230140234900898623655080090367255364470352335321060410930892992312121394221688748030517159778681301139077317104638838666725918366478685573660973045585339563651709676924520955748776064649482590630998297835118603608071035206653079218199672842140487417800720212094351834213623004986149898393877051778765557365731943548455035706759606999806976143735524440423214089349879467913170540565159271643308029364652601720950759392075656314793557906964056589566631365661389495445513374353456871324839789222279016788972203372287030080241981270427315026908096478021636719229173411576296805606550084832944352326381878092770823010996286467948422514495513651052337416755186309223447748498748814625626487844954873022916479362964183539776564194222998181503388842198029440874123466182945917589552003089315466270792651838182542772060566415335907940937742789738898438905251615009066558504285015011324882848099582460379072823063643114373223183591035117394288348613632690710542897278948948346098819489942817470204605315642139641694176625055082816803355173384563948366482868759162732377900709147685148068339884395932389347798434903495627376033051014758947655511951023363813814264259259934098640049132134965467555211739820955148195355958256908377845045394069864481287316537338455544930940976710110707299078957199198831651675818682422885475811238402678576587527330799335392333991582227067038923945839577497240493527822611081885956444126254400955587015678697637821014333703047622189391679501646253835417846635447137288524281080293566339474985054288507828817699398889704068928917526149198471919292440036845402178371685962099790180607967517078522094674904833113175215073154599583124311067387150172373885395896166218221358429834180500718861944323914380235376715305957658813957452435983322526963000662144826780703410078170766415017587369103210038082267655360291493037212194642759561712261786290323351274364485321179043446617255346068830623014154144545109294989449502283513499908990836098308985455214225477184999062822264094143009545042418192017426877843500502337277586913813708185440235961101898797856262541749987050110221354003113821431032660594025293334465103589837016190770458756440335945767419683521656903003419274174341491245958532398420408921904243219560480713355497960839496700106723926699186825207370908343065144460583000994583850439049170795419856304759442689546179046091881484280227629672383367893786764497505830179047045890507788206173379405611606813811293181986163931817241401779790650679370069004411574765701460009952322080900574056768028037755607134316988000674991965082293989766900775803564729740492800091911658519732813094345267287482985655891525438941613532825192087767574309929980380832135867186533562568135573341702443798307003976035601725524634672359011893070718365625138877996036325369611613528306114234608574221058708943005341524881241362729829868048117920987777199349269065845884465526541784640882471485764434444240987713315780942221481171420165822613541133681976411667050383123512973868084725596395254884401012210002303638698003997007601857808989480098028148000223256937787271086611200486365776628058581656753504645805487869088990505315072016637570632800528888583033199637050176576504435138872225513350720633907423686102936435297394575037886522715580371907059955868327681792540318098111803846557529735722923099695729885744935674529479175747393111815754259821107287420006678485354584181556657605372375196838928462493531181271258686307880166604498522161119235131719817342534639478408413442956656604326696653019110934462182089375743227066172095727754929819528850824266425566366853319262388703493182711023186572799566821463224822513546473292952384329420378564451813597781011943807817492434658694546890171843363855753759842875694897646559811510272706820421460839954482667079466274662077624691339134275638281497942163376317592298324397703062000433654553488850674514297233907160367647607909114911575143208950953323196428453060276628610349636588529099271588925562635702902266499674492719162147330239578086544854054149427405601767841133214117593592603527563285155432750123739460759729395252708001919923839605868070520143670387273971425511406350064171620414617430706896095644201827536146899589681970646063285675759187281863364547481225289326803945595735620853141440578119447337658447329267078340510546179018468237086988262338141632034192308880488095602387184296241858707903854161470977326580356256143027933087556663582084164867582718228102565436682851204054728685479488820073552723362758917299995468342617980099125041959929410144924050325293250352529527017859906273528676822432010259457560257909818829247216020465056170461941373685623420767514261428338079448776493304794829964802292016371370047844881801266876961900055163773508347319726203149933684659954149169477144283088659731192753363105022674429123302634391845246618149768979938204548243469897120126813964833313694432498587744631187111327200901411567503756697532913209819552548941253508541267948427525942376835486511303770993360238923921462395015547437398446344793319449059260110837300167216497084707055042164668062359273004658542577518687063111032196777307684835027702728265386672092585214274384279368279656862742675270542011809365452737896807990992451765358129081663351594617651565803071233100227328704567807655982800783404010711788389667378352098618594846434805577700421538648538164362623249251723941339318429587255954117150675612606088349172269934401720014859132553763623502742654220466807801657190793697774904486315612247575944466937869755327770131871145451229259353075452802889459802305629111569262460952059576703330439225932875270800834762374950867276482215057428466554073158138850412562853577134475175987045504859522232113602626155705904535414237396813925672887887968563178462846446123402558044414060328765845447771495719538236527127587921565933664291404386130122297084938131902160529612601487500846607754658057004917727113031175057235294774649778783559897387696287867812295609299440925078563297792425962171343055492705740141728478995299261952604682029042258313469204253127367436165175192078755897645558833507777462301917062153393921237386737027529185137864975856870409835750259415830022134939014191081863932972176011237271821174992391032245891917045502656888940879638549415772906996925077319051530897604454693927954049791678784753329768616027922900810995738004095843940013756962099586982256796365351931276493844522262419963649902484560172058808038770489658750014114438686965610177683886370194641407425936021658079937016348309050925513941653759687922792752709931663556314548315669027736041224640797416993776900671310982315309214459788977555809526518240544061662506698735442154520294515348001054640520194954445212354725494189723230034317471405792201162728550769738825102211396451364472068560195832323298752074149365091645535514894458214420557486691812900470162986889104254097292950314877839327350426808428963630364077369310330920716607789624102254581813046163752472275898195200040770914510788607036900929235882738382541331505926255840255013886777257882848160086832809309281304634999870574081697555886476374980631719594698314805635357994866414347929625928074303979762671036486825842338570346724245189595256871230064325234225242934632357169917948019563388045355269359763378874429404391349907714379235158067074030019033592376210814040124742870008060463089139980225836327029878376320783564805343388554284447236151751420503117912829514748208788184696770269453130379860028828681604902586913111216951574470537368628995261052322069409158576728113615724914772918869328278069635022035821614476861821241510629038486579411142860982679395667974130580765860171361856465184678840856624255478196316002338684219933242159649570675108342474021202518572390857629626561949613040433040306843995571826376979720656016615430156682346855576631666314843192248593983557224710569184301270772126001069477390406467696258645049520336271547733544393120842257560653694947361820340341866281755399115997542819773498551142207993152055085111100610637934172190412348018801027244617813448513688964488556814397410840520928258275882365280866995911166021334724541249818847754392120335513379804193505912944451319661417250687869776363121962006608788309698388324713632440914194670636342503218555522930233309275821541010449417928225467602298147035873925792262817574581670313181369069334316028249834743796603781035792851619208500874935350739468531607306709391414883986614987164207285582449274781915116877480017277527371225303933913658976782156439782517008573184510851265371996767762208454325005121740087368873201744701334540102155581604564393915732926444624191041389670602517425143537679844236885354078428447035252917523009547002419321054513045753828599585417531040222316962570671187425205524442471191243285517178724722967808982131893214599492991323219285220706333947488634310545457415394929669944261060050002485338753390964317672653558486106026523535643347456216499877425039161863549665234458279161878973645831045632083066773804994502368481089641162526959302173056796961891722866296569342037218916760870943144863105686786959998093945577871116540014770279428752958666412771482507418892340362685819979751170114139786265932094245712481547444202052418359501040137553289151666925153457479235429778805033148846880146378761295439962905213049202713766780109148146923041984928531868258692606486351464191114653560432813012707497202382062289759194990659429327405117737964720453935342239432590313320278209789835191032421008120115927079786684115476094864764614084666627407293533057172478271985053998994566425978275010310397259465599860099434599039650076866852322115931778121443109292298031927557333968266577221163074717537202614263262086495110756675032004075177310888657760624948134176687220070864246779146349371184561464968770207562793438308052348747963934701317262900955994092074691203776720373102224701788888311199766228231829473330868350899379381998693889031894065109055659392009539502647732888891152505116392409333874831664691634389009824547606279218007514408447719268214838896659616337839090119626369085477085077365357847886686729748485089131738195765021964212964392352052507749334584914625069461955249335480662024650328426714659096173610064754920389005643679262434373322593771233034263620603590846601118043404791406960183152239714165523801515705122577662856585192201205523215227140225824483379560478454030008854457432308677891992850382379874093039926996658387922292565182810813529233380822168227050554035647326058032245270126903239781020767432183622347662566105073438549838024907851047761906783578170431692036767910820613272265549922494113364670519621235372751033269006186483876308869764045256563836046523686855224367937117766114248290476647373041831107078971751844623904580787890364425739112887562825656367843024187301578388990178887072248994235153333692460533892787663788850974341369257125348962378169814628725874409478878234013046099343973822309628156205015517219564577036285129301637641751974786540494192998409276107261791394194012962826467064737320841146032208143586086103000408062088778577496062445249590242055069766078347812039197399057739280107659189063821578930473054209277707981273479666670878124487330703733133050830945144233710111582118190610918376395284031721741465532319188928636364562410767640984169284292614460352502749052709289201860509497894625934727479346431784245273190880994867866248790228912739550733538537302473440321744920748402460116932682514712033930334409812388411743621510980310981445429662010194968493693059760494994161229088216172402831142293788942536181644564666518359422616055185389901782157133515178903497267363967102067699092454615293383214419748602401314864591911397456247435236099779919633710247107305760733698011329752034589825591225379911161658680229683672633941930458861194951042684049951311149258985973139484164854311684157889313974931442737685165737105475371794611824739395853479368393331893143099070763060594582871869114820710676102879839346067001813799193517146870237525970881882635858969824265943975218280385338167260588950581085927118353605955342369195618933962115199513577499127530713982166377135564557504507589393864907093250408198534670146902637216539448755034940924929080830060754833082611756557554378358793101895457263884293551494613359041039378254918892998105396736318208985252808224365771358757142122939190037343850505650386365138412730040056701887735279987240102596357203726783541180351559089466552943643001810857385808170601013075895202944656696857101642402139199607642120632981813972248543598731782072916417222282358501649045422689763159881699568097333769548004270146695840014166000514811951801906086476972342466715905748473580593650819991147004293261024395759791179561846327262917078322099371649381559980307153721752727455607581463373579150317440167249508527388949476063197117382125619757984322787418743325808217509825534020746078687092613400017260863658390802040808155410766432073308726722925612331472464235525410667162883973249201159535827460291305943878245262839446848652775400559161427470422909198391430768103761426914395398671193602861128938068773175077011533711103608431621423746256019004771717009996923460566496175898129365650784328693601208267821109012673633498625390900788605409228350887186638205523104774450251047691155333509169751876479457609014743598752570565493950930135229686501481501914665050312733750749944694467449173920816389554961032132891001447103935708302476718845607234417084554958934077448011645316318139724992841409930817440814017270687855361141766951473164962641382989997925144176892954092866354264276100548599654358427519558315482398123709408718576380083143196600764717933334725852015840145889075548918164554788267973067487555389837703194305063588854291218019415702949801843780033988952388449592476225332473152031857956175007959466732999060364956684425600548486701104601512180103478419005642494782702226611216243424197513492872206841475053088263687692322934440542176885804234719385343473114489900812886029227426238427483409335572937967110215417559758068760682833052683876230305181221385404645067226154405429001130009952796152740720788227809460920793249435962436724508050310337750651259910020431545619278306150793329444697979916858375043651484579422733960031959782671416183067398950341583265458895088753943558063489308560797344759429799066617157502156761978597676762859023391399658740390584760798649679720447512620032036869358268371527342346953008191839094739475777501612616378820466901527418497406443132151154307821069953489667458536488292228864750227787233556411562414340753698363097473893845251932131324784866771921335635826559982749644426318872362100247467144859931327176913347725080373033828477767375730567485811376235370435878215714542928038255836588155948273235408926265385399195239660617531955139819661251110311462685885380955756721025680095475871976933141678159913242264257790776651616857998351375991124967309896848643307326983223574920537981535837655585317350197361403171177489331695349088900004641000104338411813662147862546000948052216251129399693027203376316644535261597356502433660454228852966643962613801058886117467379145761266233096249215686418423898034737574910369695985233066850456736957668176137322062980398074213041469946642483012110560557521066907983195926141071513458585006238460141139534715055335865754163423111743949650270798607863898938805970645358156972434533181555968310757345726614926867707002249613086874293797519470880638563622535172572502630189830595182041702843733691940450935930335898711380447823322520896210454372347535066331857861182669531965414894675378985738299490955658028734410565919232882073089018288431006998584252392135295692380850298993847105822239462809646502001101032875549407327010871316593470267144816693510446569995557179650469522310239348082111056728150550082748942748556302780461227153397503384694273816039002280573701228315786731614774098110144814826974001847510757655247086333588129522352680377159599793894333184754228255373278375489823617081332737677901550212158845821596387881818891435758347420771546442326624796046952858375320988995868139031962198266428677188166325477423602899549665545013921812426144874109294587000048185964435150085730055277642944110260899572265874844684646518126009029170402934446287025975191434458458438985337367960709557918448973992592520889378187521850332671596583194932568540412655003732524888779726206871272453688357156061231715298466525538872520738882884367182905147530340611441695459309192602672242590450290621123972010619171879053880058320530308973912889296226460462795437341345627964903192247941919130760353222083331484940226509542928269268810088107880672286616976844914658979205295907012570640524304427210052425577509113745473209005512029709301837062205645399287143586223060897967152011710105510890963062805200198713005000268433475210108411228793019175367480184820171054615190413882281550983064038254169471173836673059600375675622604158604353892907680313908020003364568911179659073259767304742233129946969323269647920912353714309837839345074311705666947975801032460454705740266474887765360955139276793755110256501566820045660081961999675355292548535364905981478230903447972898579768819492087365631823415809110335491700048934612596028289013476866832441703794648305025734018071984051627605440119295625481277514264867682056371425787704193866954823423074626011282805139837723966301292474794464196791977888089845891179525425150062865183526407840957743084288549518539244739681720930237608453697795709411117606686936472694917853005274712362644560326112515486806402133474805461612414066727887472024995420197549613738598361582945776723663672853997079386749951790951023127528332166112522698192611015096594999304650199342221466259439624407670573327569910447773490430574551981722793409122990005331805250553911751570339235025618531923793250623760885928062763799284574309490706284324685765880254205050169961060792674192686159643855730870825497915055582142053321191570059550481775743154635396797590524556600616374286632733305573951466357190829593598349715878655903752358976018992635872222564794023803811466584379397366004598811288626620149323140464805140471151119815575411748848825262922932810118389226034165468490915480325670563338578871505402375128781954382628538010926876153411380493235194579203514007695480951914942447273294255434030746725069902131914330792827375743492276105074206540043241233773687753561300968965466030994742821610468653968310234906717711451271591533385487394474027690169194514787025758536545292081849525357967844421642379270046413632080810636214560519633110400125121097155319563092475877431290167804210728251770844511260891220704776601716025807218807858362528186337111508215735115623928337617179370559733097677894934546089244147927083407633168378883148725819402833504126816277967785142553096708167749353043168266783605851397040724130155681729186027561439478571654876676746392220314279605993412865874327483931727594777291803142007766801733309354103450452670516906220791913568249767238521208801889940404864244132406820596117778393005823074478136779552731671772291749672294111696209156784109226852268725718314955444167068389938317432119622506198834567598504982581013200160758677102650911058379450861941269728576756093649856831471145594366656940095345674033065763382353393816619363295108407896262688895528368555935278332960793828827557923826415036931806640530350662814941754711751876551651187685370907733671170885555475116214858483768012824120621885536624086551249563031425119875987921962655474453357154583709337706994401176481157283672015875045196033857045306386000637544605336901447438851243592263203668567641626713696975797596056050925921762663047958134147461799231241869979751639781189417718861758813455786491856171591210502281295078230309950879023204447342665953892801124933070082116723114484662804382386974051192319571602894402055727349406302156710663477528651622561086117340375938060216620234793976406583442319377544878521212870479568128749645427405871098531311187111823897867163164873522501271743677081022512638525386242088628206072746452481060398462986002025370079409637099064738853598312180514994725769095686334964855532702051885651865914644700725735987689998936348407701442422571426918704181983339455350776151752885172138772117899699158903491001692841102213106337911560545987168740052495370129830949027057241696311921188101860721845215010978357055145772825508933043892678970512853706508305976843272127302995828304157012530455895025764506446242282339680504316344771448337079504758831042078297597245979996961510601069203894090375769422994850331090957782602809740391813835110804272818491879030717422994082479189243761742320585758140741383708200320782572355863800110119419828456810852728823720986344064136758321191802066721537341113701259753269941259135421431602281995937535650106854733684796231181526765006604203168831974856319627402635479608432614863522049903704862816404878722175808142061921763843649131266556116927377842336939164693494991640957883985198389083343464606293924222406557134781028963914271114549430923718420346051731019422025498607387859546543909310803416521355792701900685267040468773000832719955535452775974456688150090354711773848747050622143090692735837860575459404719609700217933873785598557493721059863021452560797369216198222074002262167630575586510651209643788043155779565940413642658751991399632658847214299896126869825354607748756509750388437176971790744023471745247457101756116824921791733557674836867948205165800524744961803606143824648745545971827554031845460862742081882360804457754707798074553098023984957833344579221730355175270879516804728229891835048867658568875028125701463562446447583446814483276426804659736804506213189706795494484760467844024667290142048634528416917687106904431196643712596100736074362914963062507500509406367564839801492452686870576252357126254441816976093374122991993976280979779695832620909732798129133634301298707691906093636981172494861117213846010297677711230934520140288486552608937470736531081116781973879315048547725727096035416902156796909287578399442472946022931215223493184909426907015313286134534248819838621050071092991161781880653571185727378809662341444365266893794005539022381167434220697899290079634904565685090662203235971751806312601886064318711703924399243993919927243295967444301357876977669746821458018802263296445586683075108637256098447316903899118213119262564485257346618391425241731341506969774606384002517498312022013594795899941885941337597731682593467097387954173754484726582617465357861049176325076529426562869800511219162489648327576294431693436450382850182440226331379397429163503302908045629094293888479333044624305481334921282598680895695312256638231318407158328326341006694277098451453250759944227183745982860455632012561109735204367376804795632517746583580380764854336951125264526558707116948437398074051355892900050087776951114347758574845277163860270071880303683300883777855523356616930774986477347547489290041643686617285828705053216180043460128611952334085999426361163221547489712696812865588211338220230878161535178000351065241831900984179092837578488023868670462856050630525892646156499600394122975162174735447070234625126347795255795962320470242928429283840051233929584243298829052789778270503869616743944275314016820164426676789468022215562509915078044094481200544962120484564316408881984801111030785549646671374853421086511499497110518434257758255534358195363719221604790714001497925051071530852705904240373323749246808193560545795604050223525621836813191781988802090256164962383700724766443155446287193421648079574008814701174734897527569422082870625356092219732439358618026596631422958627456546396646215941812511157297066169197924028106960589195969461382859992894618404011424707973374759966459730501056350285844784194018998613642044143658743462353674837055997254659741631199224187239922242051842996357471614320660949158456235960232583719610960141741305212316526515412966621481938214414107081367285289652135299828724236478891970877963496208847767692558648317922818068002498113917422040233950069203902694759500183730616075344836909860254570796946103081311957360559584748589430052576649075569322272473601360601033453040235091409652069693111032370697670690502339058017066977586311174132334415348114521150950515178068055613482941972531438696874728610972459979836053291665790667692093490170225090387094985190372220890590366292678102980724626107179795944344421613100398284622644968663106966768943862493607281337652321754184258561209097907681186392086306140021562984356052818228522013815575939359718934683420918901258728311587355180445760220770395087441640573782346071431833239066780371749380961312119982406848015928183888931593869130991589672457181047067732780390740214250079276599694244289465444116185936137723236275684766743734419676779748616162555180742728883853962679952229361768166655897026122509605985696040609934466114087781348659257008261435074164911732570210539590828187951761434833378000634441683426335452052877978524554521264097347449724214981102630642723989888764271564001915975176492352490540616432930365774485569551911856417677021650710977307190352105000052440268005278537837593811464213996728371460979138083492946731277067017231074413860064197311865328759177782308819740748639965260125290886000144915482350315596717025126609886408604729519700209254918341810150424094366890889284582879151905412364871935061679919401638662170695183739660268545213028599439802421094961496947102341651564880096391837651196729148420742733471034402689173805759043104193540584946564493309834849599074432389482614492624937329490060822165795517178504826824499811188253428674311263170550420339270774782229780911815230061917309772935562590740983668505543292528546199448616770346547925255281879314832669833546994414612727174679219267393798470134816086314062894458283441808498360614010621225067807511075835666768059879863943582022776624231569311447508366234560853104034993040900484253698565332171287806761525398175106847369782127215908351884197431715889211958943769367815317374504618288665521674380301168431613508147380200496818674079897529787344340055214168318834674744972074589951960938807781973617197214940600208286575009490929349583267540417320235990298933486829625860002742929508412642617917007938210049511309054009957972673588857666984703675093365748682847140305755596410386650998005101161798656650790173308479944571820016387817212422147892886474110857650430121176841730418485430121167850908253827701640685666265277255042678823549526572517452337006812829914295889555948916775911506399391256745802335721454679685237880221298788642469708591870354399000834681083134204610479662137187201939755291997148481278272784733978824464720819248603421381775231055737260762285657262676551010931230819820752638959199701131294479614096997634906557394475067858792834772692209590289570974530821774993266462988295834786067851275020907727707223894903626238276284210489325329388768252490694737660190711571051724657759491797659401754803406784195401867189839841409575117394558488051325518760250241956508010012237710521836581379458717182619840353461794071301282926764661685182112849517160081836599038399869292165536347032402983670627348134101393846910087389064220355858628460078757963779314336656888350399232339214639949260407956942272275392027386121043465408985289977377848461309844926584809351228477078489876872934551342859339519418082765460917817477124138207635111527688703095753633646663818847569567108656818160511807911886447445464464092816094590927812859024417196647951127298211249661930306664665058109979388622654641425025914527358952806028422726098076741105128102581897208557564606008619744288554252944088138315169680059028277013612830449980728527735843307028988524832730913640659871823493793867910584454556102452756003263602691893896834343383755478646778981916510564790178617045697357989061808645243500472080074050874204481707753251672375132387219344466256304056142222496015153931184788406842337582633958540078323180019204578801135674242751148701295970680099355851208428613430679504656452775169912788256786765201056146793589077439572272459236541153257437992638084335553723494581115206308467496528111927815368646059927098804488904887498746132741051844682132912854629939275177347074318664886507546672961474805759690099158395708071246359188401668999137816017007278327442475206962510559264877514717911993298422259514186007668595170622167236544185399157959181562202182534630541390753816810349745228656876514418209323144865903241885538299907872705549590993030223584531768436703679907825106621512819618130751773551907409904338332888065286879006844241371263322783041742666273520682822443545809836054601706803912125607312429005326310314909341396176656791106793589959123064696676057314396585348905451114715628001356039741591289107721890785609348496435434377114125584268410339413474787594509172516108589677293768490379092988438284446108190826158664618250679286694371622883207713314331016604324631718875500382909783484245624736085853422675546263377931254523857252505117294015633359214874087441920175474233630511915649554310279358732219258438244802696215431808357333814587002545941939266015442681591545550344679661469072959599523971206331935219557985449263384127394448356208126797860109955948758457570867855549053523405220307875824935098515292347118299266052676339360009148900946266646494569384083551128344240809484548117834566118966284796819085338970209231233869810308357864726420235161392634634651564886773991703477070871611156215842429218772478160581542212961776734358533949637625690223022510265240058083986876556038863367710462339448941373662539741273760257277922533083206849218406812435736400723086577286201403190160694696644313765392763652345396527233422699559612779015760520818979322056854940981933045264221312587042884989212218408784586338143476988897447607093145589511576385891362059679361487159235004864644946375129026417652198567504931194096934278707284480030128978255483849457191466155692696864137565101414071338879862876356622431915628117006091214267471212463745493026443659226730018114683664766679668553619285089790119332350391937508482994081057092193127322093881066882790880074116157647106325513211002560133947760860581791061490836468037337060942562038979029644292183943976127868878417033316963137948644143884600257895930967409648880981915307385509448049603417718504419105633193214893832420221917515961072398104812560137265689244358690093127156162142924732900256033827634013736223997639090664722882372195349488050959807357215484975197314788181954400964044176413678949319325625692782556917489412881315342312005463452716305666604305892955695534478502444145354088660622554286466971275132009194914341422691914045605586828154134077382684006659964925164655627166250681984334593152637855661369681597556107856572763851773659795351966467840337062600435900033567743858655550745291363700081935422056345048717017417555418113793360366186738495139945205447056587231354519563560595748049571032481184082714570909047507415029809197313595374171721002846742131029225494422477877082608952525878805451582419175813794067480371972830172459433284794427466752026704835213638981846480301216466314609612800592268640322628010778860974179017456109735223220775731459814381935568583201547798219070775339550573302714139409717096072337498074110098830700537926822017671392747771523508155341937282077188255925801863624258095844023320274917167102759399199501807526207669639749012039864563647210727033857579003379704498886404945600822414051460365196972513609809491558041927570230105060360690090731271947060790255859250082921419568546428199887473228177831419530717884863172926674676968876958412760643150298593786065800462869228009459389592286170124653273743815166712062223153163197011984682259537455857005488241615885052582695719619593176754714022591556365745217702881497590217262071200360582225631142793142585388792422339623530334088216977831787498260489214496950246215781852844297475117301159491128538175967198043949615870090586144502001620816771483499903757617545782377769147178318307899973969124894788543436192130614747636550820389227738823176188931074557221434567276288206589106767882002704338763049523568795158209741489326879553276185858042732645751289465979730071777956237556919642985048126060669278618498337162710308818494242530940215743645234307167743851188581483766542420388609077421905494142413057936025338637855321855752589746488110992029090696746298056735694148441718878651793269976201238697335724202454986067518918977326443777821070264456348185374854069032208173961322721475031656352885622696135873285098046170607436627683062355900137585051681246951959172437713232940487367615050118480081676001644807028162228043215644984843074338746982127639516246680214998343904905917099531210987655322044892704910956324470990968935013539902508157375269669846179267831075114699616502451006192616219063145007624162814357771586235505315919946961221178801003742116799707267935080503066614023476273141202133666798211856272574114801520391123341474346017387105744070364389626035931671385500665886610136766021303885979584416489162346431834546965364100404818244513438126369046679044199265444470820051602057463650903635390790778611480668581999780025887946977461956398684313365346136440428571497628355712101067425881152905769511847428487293861018461338637709514130249987417677393456287045769888528404226303240353649152821289611655992291646246397097920490735124458851932196851951969714607504855246830721869189163139496355681784954007089997026929420683048944099575725358018560332206294315463811761214607508910104151484605356027267492274583119110264521439676072248998507341432800751339638993752688332428053820391955571537667698116925660402271062733944070637017347051370898597358022822889339081059419510407321935423048909326190991149726454958445135947360214140432369592415078230102009393209663997958733872431366375017723022724135634783355157367918432687721122802104417588719151021355050397476655713317265671945490768068385719188322809228430639264307503641851823049712220284118149160348724708339975776063257711718899563954866294209359923484489699764361952805216742757197903761380855899002632126529584119390567987466082293217485801790617820405662638485149047708312491793701260842373077900471788827237084774138883782620715410372169092863624865857549618417931834019798918056119169481774898638013788937475082574677999662579765550845029599846232394732105857158350555844743617393915945722570038014313835450052647714781594220648855724671822594310568222004321366696982886425714541190475872904040121478505546070149763243614773758707788105239820530332886694515594501258814084447709295495657736461984187301439521055025991697533876015234366541178249394755096972503304271183793893300405596619809664501062070732475670399697077850112414193790132805140320863524551932826075911157934561506276536771154772967849354286953533576924018994008851078067372003253733771995129462656873956548758516259703809617776039683350167344038166418580654347973556516980142572528381329014705518781261311917556327337683694335921072502252851297736900073723036692318540256429826349414473927687224453941082156329921775148760004400275023334927120817650495674674122525867359999359674938927633593219665963646769244638820584287606985638924681020185314129421876651088878329533474512880951855576315376545218772113424161919069618454307169739703313047681911955427060824519460809013085102272227241737792775015923888055972301971958538113629665785097448549139328503495948467027394366513291130023629724137632412924547765546614234373589762097975220583839201356135864771888480706176753194985485270447458828482016822845912712947149442897450071620432341724519620392837894463252232532858519235355476366447930189295806569192633918077551578945253148413010045750260277210484627762293383002961784722439107288170872569399884481450699708985257953863648620662042099472780465764447391022077978088311046285716280545903083353676113256359892978724998385219950475802408367446034312182396547816597108073995141783701669149611612705337585817654353783642366346787642159834485255532363147585151090300375788770830793325500591089834478232994487530163775481935228483423687685002861802978013471716021106045181596491579600279757796107432030695557993244972722516698727760964051157987923121243682798605618579944947507182600532199989949865912193695047871709950296075281482337191100022009406121240890691250312903357871817256888666483613919379956743824731318311078164181304228117670068234840043589699583171397100137542761800767357279501176227157297977643772365255539563294430965829883332037287097059207695067455710075925702373668557709696926535640120886573688622857850882078580931218999306845553060345218066286953911458575590606217285006946718238805216752307659274883522288952433168549053176173719045208646432272546154143140937251803886382471213716358723138970325151081707998879712456489780843965830597703420220851994423019945469064765678790363605729978774154460700597839215031798928789172387658016648105979094404366126885197979162986795703388325314950269813353077590920448538108910299788117603841347881616652918858086916888821246082901092311744282895282375438252203556594914348324927548791594441321730969288533442286101320541861196383655400116700916731030181559918901842480307278958473469103756187979197920729516275829709357473513098143889331323734768473526916885682490311563634141162937055869188703433819723358622255210096720138905033954169093656254429851753771039161146529092600973678880011254947935568834798058622730576749692126817058024529493492577692872975253829249350100002271861206840071517398384736876616727589833173695933510803452749377252981586563750712710240582628724138570746502952430024536652989079904867484798928690923337885626956933055482283505061819216762089961942841073657498746674718101192242539028146226691268683279917681540580744401385139254188352980136323540514388553158480682542635618187374799911928396495941536328318947996866140962493163848762904379529970508810663361861664058012743848440572044169790796078227902827624967458741560090820119784952554291199166720273533939632093415584376263275197441757765376240623543598825035416616531976533570058705500448744333659974041257109701310466428963822093018270586157726718422661125325249221612018220378940844584433655684894626419781702606959353358297753505379555668758780039434319581996089657948420656356494190415340169531071265177353081283664916529135556325405789598151100855371618265015105306229417397267635058410670011458196146630984081566303043528696558713970031439096409827476073240000145585504939771449094216679419167597283122935397471511730863575624038559327546495543670173103064779045430367183038391549971566411645026253768187965086922340397776609888711671610575896847136165405609098849738098943877573263546658965139850617933386278175173924128344873467787564092361851183636700554556218896938442949328185336823320576471438642109948014628406785866665019360763241235948102192596296939416544702437387822395279012408415606420808225339875338826019484159318753918591288640937168736605652825805400105605249658369295525726286875743144788200789776833759582955503463401108834956464666332861599663949279486302050807655249635704379092818336141946734565460501801432728980894377002661015638712074267206498121492106813423599692229372344739834309187650345061000221324236783974806927541725332112697416683486867411050970281669930342301949954866920097817486959947947575076984979895159343204984013363809197480713503893413642928017790240253814856512116046827720814654151127110450274029613717146762960737897614869647270246187522563941045104708097576798377665244281071366342845136397365825158506353844300640444730918377436178573631769323827801464986333078011874990469064438398603184084075569906016992955644804251625759014098147429071613634849575412971282355140389296957090088747122005706700508154907776133468544337765688545582695118016055435576089382340869317907977802540702050225479580548335738441637337404003841295903229086123511916327823217715992065245049817106843110151763648111262155694203958468899508552471632688750308938455860384885105576691103611569318409816185528309949131693389780667518498528201294821413724377884214703672079658324588249224696766918198226147019693729963720487879429304788789285125909183235139800975396942715545305546688018414312528826448659146560099440855358185779596352394448813469069509364457781666566665919427692652668893145029786293675042762265130117766956547915374621154647000633308512132782601981148977424799376081081184494524264544194380523109916369812373375220148231341322138697345831376275097117082371596318239681175645837275977929091053990527410631441961782074611126269151898826212169401881622186569461829514088197537025310176212427892755368837148913444716354979523519623614155098647502455204494650578690637978413540157445898409349234550791515593041122551354923287760286922796208131107248554714352701874998293326842777589647141204708061545369455164756882413261556906829108973094567801811457894161612083731265094572780404806696357779248289547213156019874571235759717130605799540301415065846524726234982376521153119543423381157952211891732569060650989596221329083606314495756226134542462025142203170766316077988156290420805229341462447264435312376296549609724286309354195329815493570880148272802706943605002614037964721167168132618464207943016934844605055023105352345321007034228017359146253761813208305505940944010991399385929935962461124633325179875026566920222205426580110369533504214002538867150126178672300389128589198100286103128090248491827641691938489950480877598969888048574542160354280472465367430218426099219034250505220745171455501242464587458275737138589311810067541106076360762468984885634064680783059221842086707776228495867208354525244728612280483950705317902051353341323140696212739546545048328404946623467017654737490414757145498059842312514359517163184613828946254520490475575183064144526698844582791261964546362709161622391011181371466618591444095621913947165233260709780737043302908975379033108826583942195570590220879470033407731624281591915156076737267627191636960788660612536095413401960143902713176420122615838308433482243708068087362076106861010449241042654857006917170616284924983889543502426997842354696907359714464574801080271575951447827168938073761252798970230670098120457103645380253194938813931252908320905627000777357555034888533556260008394761427978596609959552950298466981910957566725222922123186456271458216377406281320803174150950298864519425439760467062044550967008868294612771729354011424694415705028915071132316671779983574486837708555693605702559039257156462260440150710362427100963909709679622647376382746426839941804248099393478670787470305358804658516201854441838209844778170675632535562732620769620882774361422568247498148550668499589969473923513666252694547833661270057175299679273818354627355607489593417306727773856285038520896019252632113875812522453375315249284194930647347316303259426123406864957245627587522841012654365433983955116609092154629987977634742865296513830195048632578184057271513807621858495363577581104598670871263958901795802571401128254787102564758523695566566506728242673211042786911590543621468185377012766421470869697400398223366446746644575478110302111114055959155840512324198401607362092107408426981170351572116043910224448381627296868338766536011707221816529086634697048915560760560100098496063162846912158873718779896121399520050780029711770615224339424451545651527518492365500562200399386009925341797261976334670607898967679629614209384969910957433599856044058247088746558165958210931023016806827949634351913212440399460698203000087800516785248128041434732840079014698682020725482607760515737577689751669730055588200330368888597561723722741134551822325866888545948786212080291260164745810583198128370635880290757530305986439532831896195106817301739600640331491950041969332791004581385839424283900518959378810552521699353442077417883111631339152909316538973257357309584652819268319359674257482618731608491301069260592579955304995229421790295987060257596725862872631856768028306673563135170234358637542632657032935215304226216637029966718536508988652009780893337592154040992815031104201167634853577022594760599606021770597522219900192229967370346796702572889543722859497439353357917082479450742254164318641298539164783998303599424144689517451701337214590658969544887950446206615092704188638899261321038143443480232602788278412724535818196960666825926013832450804758267697334990463021714405797328882473753043199454179661382001802290056646169491405762013872913699781773949040241159523412442424143017856971544564955756618046945598085870292388271975001121506743674063230494806268192735989310690481218966393893263748042668710093459671911360017332091213287724444851844652474555865946172176735861592831540472325458658699122723928943975850140574550854973091190973774991627050186884154698389780277221464295383746087743261246815297091604452458259786530290308932662912456478395966608057135013442200778682335553379300285444330999520241559146445047220730461154382548838512390259001814820091709612190672850340731580941409606082802523020947535747099516153987342488936496081503962102221587845937205432441938617837882907294828882285576956744301560000334743239278978499066170282974418524529514189936416389021552246192509930652168116509386353980460209533675059877345032716585629550934737779594256042969735045367673902005408820589315744329271322522223330727676933784464965515241359901872643472347654755708691942654035548316852108753882881590719694806878705346184909455085741013914558036770536545441378961253934547617980937270351868472852378727680480378751966479003398259468992428627432952051652967601677674217767752121590665112359152310339670576081202099022436809933218354284385030593244816535948789466570915449099455462138148088772573414994575127375334896979886117550031552604516800425750692862107536428464441124087294460652447086164183678109341668607947106103894252955642584090243727173636117543492724557894860831806925561452127994984025499893169770508156269062655323744367134519156278918317910071006955233746282785114000862280253002909748538527070607707097122120341029474586197610290212705348677848003590235505788251885456455810309274693788819936929680130307904038973608736499663891686392953184880437625653753267717103292679327965256596772641346002749769579602311991783178164781391929282720077425982642731836200261497182777143687017238977384367490074403795814987157661207234150396880434244727622047637080022840935391836526315078184460132908740080315120309587956488739976573863029027368171741783801739880096594779586862209604443632469296552779845653912013756489570676993694601392350051185939038933332039132476675356872472862268151843587501447510821878311751136703852833027675536758418778805505972226211586888667105562607866012718204814463500393799166681539633708171279960991038326108077692393027514765904323770265903471420266082813061082604089910524176449182228536750248662598424449263802487909409845924082219454456046600306368994841689949971595038862295631087302489112335077973870373179300295698514589162879711199432564035301670093302531637213306906834743055421674670633613161719549383943942844601812156152273672128656151001697333411831982655383250913376463806599965763209591795704618334441018878654375666148487277529285877205108192413876480213457746150117130838324578681467764356290147888014869285141307719878976019330262029088593159143033430125393263623629286035220703605084279970037421346672961677489101195234569939617133791631534352628030551560028145665864371980184536323486007957401228850767278408622970248530056061744863787533831978220389431254266696738686483905582904976718798674576551747671477474859735788620754519226697551589875247903177341201056329492918995001661819261131729040549202141301648698604767332933941648450365259659031712421294652318539673413719169609833845147722322578734209509375411289494685511740201458779661211483023550273637957038701237810006158555743551469244894798050582353733728257094863667845997569498595856146115162232474599710897553686533492889473455593199741508271993820000455556790416625510178618158923052544079532875329419762458917529068021149781387053763130490924785646512653881243993205006993839172037138674679690973108553762144926792165310876258915732122742648370936231004736678239986102686819778394150425497047201931798419641096472949050026632641010485688276115537008789286038679204564189559716252270952036376286410693280256798618438065134018835985528060028132372188159171891263565674633027312521469414401475263933006078122350829550864518055186388932098861378904545497750472051339898333412420136129809457077420080333610733924826099523320559297899889091885447677371184063431638109625795559739062294273359283319580166457506973180033573381305075761078596570775765944273658832558320504286326242562693745286675176409863301757950066962640507940550325409143106828165961218252400604636103718838912411442865390582263120260497941583581867736219398439145208559147724091164791599097997837421241847122857368030791999729172671118634764267070284618655943855190414527210105121947189509682325821180203548412884325188390848535782109740266800298387790172048373727199077847498406419035881103677972620854585955120110893496944433649245055664783854096949317383500525527826617629922925773461040928696852804413427434306027172302328016168121373086082024545565358250775832704198299570225082332896028096903476477607581729260055983764189460642110420380248605293412697132533668736691621846149352034242357556495537818723179839041021466000665531081711547878919704811441205175634718673141758159013996183946719966920383239041405215485627745062495666718632351443358131783038250994659276907211238667383308636787095813908855653094526239083946665826269834888204045320529052966272885444664419978032751842188578683419931658247939250661091210553909862057269108513610959964840497052758370586418601935393511495813259675311767706116869946182151478956115942631084552677632898900198954197670306231908526752185705571665030403187935682921596114733319997755716840931985188441633288946107252343846105111031391015222320404203106755577252511257968246974479498086100728342012014233190715385487417472825364604181121220607663809264055158920060786133175711410095222894824267324255686381032403931213396825573993585156577115934963070884247080138186318511044539338435737900389736440833575945418945336599520353539311544590279753879114488092335811379803579992009875085719919485460069537226806519399255403511892262682669985081016613129876808511395816375944904598955215102327462613474983628895571298471129631765762138997481974666827266052817173389888639923096874159161533556627765243217938584436913943919076347045887714022087171443240039809143825726856085361930018995971044407830435986085186969825687720312872789299337057889781660546763946891831356708944132886839634431549470741056052215637352558897941251344253655928930736091490521705542071695974199870688176368940018129517027460994273113043700490073897645197920656451326848569259071919060440292222115790772293999500122189202490981673292882884668062455418779191075153414327175289795460290317136098875373090246314249959423021196052903587001820362739426002068812631660652831337154009981171510942189166968736853745786755129507284492665709319118979753010785674704420739076523074247981658718620073264744231363622509251967113933606906742620119403698180165615766016167034926918978453472071985238568400781343858071852277000708948225955920770997149728529612912646991142796785441268859240777004443951393545425547318091745344331381844957281576223834614031385339238351319537143194339213207378266303917940897055289552192712782164103540041505941455857542002430654338310390776999542213017434515844222101304003777939125732346437935629900005307593769943239103372089235150111926535104635009268857497518799428377262730371900760163483291652860661442133183774737217581362806200642566851906340660012751618647954906611296729801641825910841543516906819463592166806738602057051038503630338606357977968152509433844787378323653869575902468939421333092029905420384583143013825514203231300468344130727226035043313720257040253777143781247118579458831754217625182055788505205497955897690442828248766276871089955431704619637613705509288930667885653876606275625897744113048452313853042105439500663721913047866032630596236025343096750338557044236915544971923658755203070031042564966121701451494115290164533260544855065998262486993927795948544616029328271511980259824477110064246902468308249972045209872411995339371408185896547634015903466121650065805865586530775665872876569970127799909870445594528240231692906584373498741232419893378053636418225492334387055939497491672151025531826344902833311670016285598703697787989207335502242787750863438067386270525515688362652797761045446635333855404330156695437897177232395129457116663406869864359075070562867133010255097282914771787248813925175596741112321580521590007510788345077682367069883495612505066304748638237976796032295821441242068452030937545686779049304488460741305134118198534933273194801873650496461861104871403103610190621398705593068658059591108963560005183738314182972733164671509883325804456112977583879869273458468668001456322262774569153503269048189686879534041260981868782430131178593276625125642330771950228100929266872795866859112339559444028472753460837985035230756912601194062850898579362100829755405265446800466410063457873163555297008781901295280801565321186012949075656214141332745792928751076952432442252126371439180030574615053285080197441296581403822637162256164249233383487485230470298268853228800226266686636225116460186268315224612074245699473314780961690017329043954713519469078384624370936765983806858147141292551782877923541564617173045770643341323895449795428803244013139978616645428993193684639714635802091023156860092099515323677005163767420375669636498945211932474152730893977326696607368937871877052226327430292917419303418640388726517187377186381166356163712590644263712467919932257908178528669287271854578333593562799265515046798670207359104348563142651478967691971241686992345063666150708569561371518940926479378828068443255019088912408573046479792282550683160834565530675817455605295791144342033235715186934452692608214262490663552650916114617558716209243199943266366821713104861635480883850708880999041557035361907205204649963942799445701238587308514256717553437576104380741889772159061334268005766390038641701990888077759210743639080440381469049359721014702203016679278134798627688840718914689476965547684798898192300657627943834003576016187656300508069093145915921846798869779486356409180575138552946302427123776442913309568260063920880887509861006421003331030701067282213290064318701778307190391426526163568980981290632277089497606394231205756052506204048277716473380727782750600660173273652638317515672179203452293114564046920133670169440121080719056945214103063851542927809847018286313697632197004722165715576980011892555374890462679192307829441384057556118728254466503983726803504165809459709282958353115185328167378988395937214292298093757052991421983238746570639702028474797704150496523738915381548611208112858817270922540957855677566517637123473586400328602145789223981076316630228311012935540999038842270454664936577982410606988805686647388039564800381737687739688533486337657138848356273446796940820204944100245393790068302391828359144791674084923308842541583130660024934598131843848883915840076224659007133138700072015210047931881383691267637990969688273563122551817648952935419316881614198238476368799184585622886847257777875629680951926010961341361762381559769627127785168183350306704651976362965068177366940801264366484641731029689479281206121700124655552375430293214292345355246367452975891012798827646685934250013038429418374931699909654976973567676686073497374872551467406426115478707869027354194769606729916888995958008182028696450875409963095989666803131547790652365615558529384376056193595102447378999779380002170009979334830727154073657391752281639788232232912415843842300971490106703764134292419163236942772631464197609480920820106675200591548836111062301482183741810085424950142341737127518812054844930580235390529180426071939530258018557763693190006077163425465776157792058232102662923660846460488261344764110286943281126704686995277041900354604890658099539699011938764789683594790032672133729395697028258963128432411636806439010623505815015912065090419826299773359403719720417749291868381366892675127867924057851754390871218286849856083331287067175150174444873414205699964472351897102282208817828311576590129428596176003188798065923807840118968497444309170333464616640897884030696625911929069273289854497865018131366206695999874094633827080043643676103302401786849849956649604053898445595064370576857001475266912757274589458797002280169831191257472541167059168276338060509315328964174535466203038610845887373943159968225778024562433349232933901792222252896137620329542624541662404151756743633411916655590767597638492883684885094666716947123589615541534978477032258085643803989719614647549559508542838827914157389806793485171568999106206076014178021561819251795537815571488449254602062549707098522424365889081356846518600955557699096589066524477694873938793788149578008880875912264107263968441400951999201054208427460532253727709256799615854050183746656598884852975231960348626225972737101906313565226166682829958374033189908653062176205569726894407637223740981962068594962884219978358345699253683256354600578362288906093069107894326079675293945524189810514880723494063923903724225774052378113168030676023112930760576851941661460235110110981128911139668987018451158121000753695903039347467986051388404209682069245141527502757668964570473827440690266365367460051358531422944527290428648229031246727556381744946822400140524246303248560181085932357424769187590965322204333180540279204479099442053407835899530004712252312551009863887161357268769358115525657127058721397797767436017796165850457366979947254128043076524268906472471234063444858198336880689243301612892595560643936874749101288314641519380418497083452321401101681181057498067218782957594869472453545751133265879702583502964099438107929405337901076290561625821584717877330885493170202836179170592635473549318210931508997826662971901563077470174620572261952654383278083060643271808508903337002809483963819900931310573842167337405490657270611847367938147630186067444164104696392425525639224595438474958718589586229055521619105550652772291421102935826128847849888275646813748395203391457794225777561947896395087274025459725661540982179386113284821169387399714475411743480301382924263521651545255629217780983352746816277052277885767894239477377601694511817714934869692210696623901918879242061747056815588657759790619914848482889369638235200141005380519499329787606657889918326628379865992535539748373664102834315143433223343606992533586776593735060348801630425128487247500736852071638359514033086385339600869195673346868668773441050840429785908636350846481881195976403196074279984758202417580314289258991754730363903907480434141739213392295557477191551108287686670271070974427586380508920503723568652843575786068414362966387070085876249052079631449926060301740595772148795513919850465853933396032526627585909847094582465757854394192840613448551060917486470012807458648739816245103946174701624676238739974420146655528886693203706565772399163372087511141160278514731176134490255237958108629371098366977470630218742770204450442627130652247195294781582517732220326270985444562906929815076893660904749717296582419730553162497154609452591804539302163899881708074104140954845528051186658534059819298385575654464264131385922559218790513827823261717136909066298192841138291753344949037028451048620151333989395168180219770834457166776903917171790076358653190170651289017246010555642927389649480056852084732115015162780918369242777049723342775906113230062134464800782194368362193163715016211709262494908316277131773744196544176347814803792806409961364919435989073705474813629648483950558864936280330959395258619826621819389745402650339887018891425872083500756269574939124026975528976230668118618081276694940183009016659590744660159322034891690232360001791844037312997925325148591960480567950530883384643087210058434154043650344658334168141384879038405452712110359143642750914792976544904304831751705665069510301787756081184806246541533462222190504075231662960376516618784572381037600717563942672119140260181412498364684275908441205344763765634343827365225691256793815879373545540540128398846746703478430585945311936674179713038443075527777605584585319297497976315584364460347978356493188579215236479810192741913556705492075439019122019847418658538861729501579824104929541062699249592345032829311552445879486813563198587058628447815719868920305498942854533946613616821792580747384811353868452837513818501744211036917978993817071158997374735357044712250800357470922629873648208812809677795580237279367419014610478014794593923781274509310717780478277237378597151848225275781811049983244273937586099441891871674482999644513900399421751427408012223147439697722612513420138147891112115686278637026478815011315646620292709538472450364812681420452756510501050333303443270988308685423183412332222948402414192091127098369248108572957838409885911905334823954781056002931227630568230532812058314289907457681795209661890697460353102448579559915433506406325476166692183193669615010409165905632795280277972714507869284020440375086156994468696101735373771603189472920133052675840366620831310146145699008376545464632667299961973257862551400212002138425095879539268632334138383944503604538273648525981879004735656675140058490473751454907161399582326991785467535001371781304192664833250083236450515116274223147268264343044820480854227177977492284298900755094544753884290218812959725901617724215426668373466245328920670816498998796125583301655968922295598040948258975666623958123210371372003315788546388884770072514257320097590450119934896657724979174141267004135816531209626868409646300146799976069976966602941270140312483782732046257298157889654879342947395887107628767020486633330791203318562537785155047706706395077825392053242705042634942411454402641161950544528004828888767539069574184281194847689911588963102500398364139461847427480144604348771217370258882349920617208166700380340052243480230899877339129706581193113491559454961109343910059715318190323085223699423655474440831785250220147359178187289546928429525305868233252940323233052453519934174154296305026406064312716930731033357628306137055804660814889384365240956978325558742367282542680733076606230980938585278490882188625477121786428912648571849049472620521810000595582614752917720140637669702358933549066704558494702528920223362926988567942726325758709413278659748218320833928872719174138795533883630601223348459027857820070703218717160623209633069990694689180685618111167289634805177067213696381793261732238720594618360276264462261035877499189191328312410011125246027400930525282087618438217097953406741826732294292759396827845381606901333047186178915832386575040077115618150932988002522006208625724562430256628098320446756902506501912682655949988867028268161153213556472772301316979051896370058476296485419764580790534628901552754165490449532154663892862793298376900318973208906944077680703483069472476106069850790138376665374432694995917393295883858509211408679114053337281450383438953848645445717800984266951678729761690313888405405413308377979781895917116379323932365507412162155934475470736940985745800649324965565010391404212254856753479503751361350938736591112931686368459843240275700077448156450040200389943812020745006774473329785551851988360970594014569686958390978152650257080677038550600206331143874941860072449839901353179655960481817129897006152180945588802618902401174412005340753093848820484249315052957489126894437931847426979378169678573014111226402684261942988813058931326657699576584207256369665879532984072838885185994014994562088070836319431889985808633387671910058221566265980518299087791330804917753497148141028163147425508028876368987547277923108565310941431736241972840006021148144694520057861073379515457082139285443079456595312977299960518955574812578465969819779366053721700655080675004041347017843144944450256030377318309799099717856744004973093004035967320317629525504728742882340924125037579418898164701456975426050677699700987624350906699793125423601161306257889538545241591853732718733496628284397807492425100294255544796154212217547886966329773654914795580942375386787375953776242347390261143485531080889197558959049992672663917584596037695303168269081011178860618351732106453104200111968471207770403489849725243347030982637668109177275882965752580702671767621212793750391604092360573233435536908915107997175855693111908071859462510783271951418225010979514874912258689786677768169413628149105677711025371354893775357886050392914005904108896090913632634454391884870463814853855409726903816948433232028682996949893932326643372080385018327157764426714426089610982294222825792729100273182854304020727432603508536020403187298630245094642624342761412937795813185207754889712428625088650115084638010963421576875202497559029590510811008238470350912939983606348634676385142867931792338212224941147593521553430162452351037967815419600674051657284782511665519144746158943256961644818313763395761810742892359851939656025661317281895140546611905328267714176795352102369322072818940063679992342520503314172642292981948513758663853502286824301203040616396431842126156085572365678138084335916145792626171052137252518986074193009843993892402430003115024520569844015513071600957381750696675965178954538750195541658226893836056448700706779861616470555019281410204266522147004624241558805514272687416263847183992081538387037564539456772440464954162266209451201180648136999089787682489546792903418370240029597345006242663666154583870060285367577898791019073452995668972447655494386714970651435659750091204609123522298785114169106828891757120876710654725449445797568386281056234336037964284736526124365943578443673360241771175565436782091715577359442248711332380254670815768183039849964547588013937247336727288669049772217332263801314294922428659240083355758297037254938498972745635986503074735191517809705214050369988856870809652615506453489085143875744338368955707844262065487743866382484200273520822563898262152421271095766660509184811243533942443763242289473666942005129216383463925387406052393947209149425441020383395835142635698094138869973895269152014580946830502645638795146188762602640976410402308057828909218683299339459754642753365974496134157959745067843784096340556677511415776540271809718079729944882996136060549423176042683413400464872478426576192659194095527879386135153432592841523577670563438268191122624860014483906484607430895913538449005601713054407469867481642944386526772378183121369409525762428509390311149622324206154065674866578810881879120043425619511522524051828169462878761135113630011945360919861180851724680165777165345115576977484321808418554652695079190477231751892845010322623289955102468701350192137300106907612041422685414192761127495054308363839578958292902475405657618896678650743416501892546736731613271675645607627048993194473041173080095271545420061836873505820189951221334954339296515170572809390576508637669513055985427566547942046297676040383135266717118956528983311471930822807038127839861580591776184845738040549944774757463066076991600382328010107008817669308418366607633803315934904019423277410191961158481828642820401717635535173299254124581967295671505557355921732343554874493459830496056201066429108782522189781662540363382065727967767934912416599169586619449210049026334897805261353607685578215868849610468793231558871786588797817810656508374907284087083618637036818897051763161658940655166995788554020216629223304386851456693696355987583337458969278653527663718519027402045488057925266384176630660939479499693951654635607055427893202183811876944958984042802854013066529741290808978022329060737199555209820348772279032501390038917040875324867073526884410846702306071079256078291841541213433294352771426957105968397964502424007039902482569792825332291767172717083612041974467209584350699436688935847118659956255313403009676353185832626328148931093164721070645653080317643425764281989029549962139218908910390506226200459693063893115265318748888282926147166540966049823139962183628939138795040836319575361421925092665634129528492880419588407446063084870647848107798684131975092855762803523889283479312403282319244462274262403124849835183763893503102452852477665470750382434234918752374194204536425416979301964533416982789103017712309314476815807964816695140114301439432077480353381640442325258988442444737986866429572931055162567016451325583211578006849884119123343317017187159599428493193752286559922508928492287216175604996623958233118033567365806273927590777985811362160743660572175556442595595808973729233955410391873862366517936201284642602226079345710509661299047294426908369852256599093941558493027328834230863705133670277916786604813926503582794109010312427555892899568213003446871025694158877733725416755513706201737973890695495314095076410160793370601723730910062952086880910273239366576642440395515564357569496252987037893059630499019039342875779764159747916825727621714232721873487401349284133966592289777141937234191024782223836817693095302216294025672052975441206934720520238854335290176007752211099493608843019783819629965380687795502764290577551542548192402615892770518829822100226645114918758313755728813165102766854249520971065510988172261237077515462684715763114297452162209404910067456316773541613489648832456463626896535128938792269401398300087910481958354879627944045732072106346138205080305948819512431645388112508179214272186777714362689255449664320589428032077098108621668143860273041109429999814143516774225706353493094449193415216481128883425362577445721612220999676776553967900413330882732418163272400395249357681597065483773025598469285599310918979126452280250036018316709532621606247883155938467388713025280716242543028968011076457351322707532181623601486703167322854304680670740113839977866751012961627154079606621266905024826864062507806605115330967549857054182904215170068369966929884185929744120458371268489816846243953007308610348514100510275033722215490720683809546429565230245139097566521899529005717103663973193838434836449334116371442001505132784302762271387515808011786355878826814641526893884359778876751733369069791974844063693375894803594753657391016898740560911500436411761799896808689994896191171805445543161687502678925655199386340304002617237083286619288678844310899460548363218804900639221725864497103058366717771049075650565714433801784398532890939069926820844497286653708072331459448075289120999660046518229501641991383257114028347468740828335135044413175369315006280751011536608753999225181014316719038432798400978127238635404191574538663802552963164624305905311035546337898930088884698005000978429267603537896515500961152844328106083956406846421120991818428312857634441747944899642823227690162952396862249377632977284848794700824778820089832380031752638332956200471882619498905878415523140164584130628256583264646149061637182289653175204807273415500018868753719770064108752445323956147732864956339980813339939390431631528013492565820300186051582751361508026385849123670785594634970113975810739218131620454580516473274275690896218363866111453435372803219050346504553437695939671198116061292373262801144785845561896250975838228369228643262330030390806633305954973379370876622867335228153577926977610262468097918156151946371883517703177704420602634904239976224924298245783988800801030328861591677213804680516390109123301003917532318674674333907563057320080017690200267399484252590295679096698641766854561190961920155676053069239210712982360849627203548103642985883428783665110838608271767506862007462970313243884315992913013588799690103187348355481206138992716794514791677738812549063205389038243505666000308768763405684334559825324950976437965989128285561033003967353860681326893786887186236016251954172869881793880941519410524881581664003028487065711345619098032215381529304030619699162601618073693344146899166473051003067107455096518372097776949077564197667656628679577438407925444642945869376968131688492392434427451915007991935633525555996083190959654219913052738624848647105873586093257384170914689006076859889637566347302712680020922687374686783195057512668806141983310326009170197362056109191233637875666358677124624065911842982844923316303936997528365326879052087940432174817911926404532566570648295167981523762476009089385113757399430473950990416286775192301201622930362592990668209571956424251247536811439902830833053472315466257218818321897034557478489444697464222138447021980920095395107039889828988622791543024264978985308866177904015516484986727865552370000261598590163347967867964490989327937167259659561440144386724641374810489005685632064744228052849572741578405076997333807503298466229183379144629580574430451446951217439656376165628024553289063344156562718959247645215691678469002350623635331441162680696520127893313449605295484855382008547009860117208032945135989959481753171448644377935408417644275456670758052768077155109499772926103571119242671409548175408102051316214913861256439088377875338587132407272287848398730460098222860911968640623197594082099568527821949127069122317905568890514903055813498419977619029061078836644781588424300369810837558723235904839515741315985360466661210121628212362036358103798617225067846849653929692704452378589220989759035437100384391437221799706200115562027110765186145410846043217998164848840046820500870608935980693879919202512443103585338283963794291537701911170681219946338683517692245713778022828886307159748304180745052328304201979590395744653221092388383181808200063070601112520277864604503177226924628705310744616488445426339280306077706388958916776136126472603417749435156855742903851396277964682724896238249830592478824604021935156264607886161617737598594767110790537898979162725090786912555699647464121311944698891789353401025124559434209537151274855212200348371024547256648033066857959109729410251990028071946274425807425499029895802034844214447863441597385690188020147089661530035146762574042204672440816759297903287733307297136252237420785306706099206072685562668805103510670430090622430915608254757125685672454291566393773976634704701103845795093365718124768415953910169886097435989150692740573792036713074673825199059911375678105077827821922668042349643585306945115733238303854987705499638515958981945220541857401248327208443180697893072940706905976350912323206381624441496599695491120577074688736921440690856372899161177559823726837872294374433994220761574712121257613789175189240668341587748492398703276304952073388002688009297517924147142113387378445896416644281488867681058820985296176609538018995925050429327994838436729950778697047353280956169649409027312791032915210245447645691417819894324351139045931490857823921199834435258358953974974098719025158158387877801908393446871043151478814105264561974628769721900438844751700373931967420062656835959645494694301595348870466959577101384400380394949715146577750839215737647356847239674462416605325538519519459690014668943288656994502639216069953509906040352548698255602670740503881427257002845004963898733556808076816197598321547929175498923650233355172723279530560860320772664191623418700035239620750110230954649013874362879328923698723111310654658742817040390000106771409782515912657664763236872343270654882040061673762462390973118252993923954938929376742657026141743199314266216541158293037417000973885829985970665387618449161516416876460331786920874424312005749936419499224011939395987971260649587096886900388351132895632164598185165012375618004988567231038134819947728682160293003241040937648547958207993044692284207880274699498661399785980094176770248697491895748157066408851403939707907837997917175839175053314995411006214194499161031229630569236020227148048838737007367243807712233459265748944902438092280627583732740203122997216640824206806254146352673993339114535153997294287908281860933040645865570206176719828358820117074365096432555049821364164100234614578473207809644183407175547186622117048785645241105959578057933202150304677277607314833141143834089625441402417961453363126498242961168193320670514888547199927602005367524966339682090652669017008168735371120031467247812345272171099677422671498914931331155352703110634600353465847266497889377715433934751349447313986802895860978677507090278088137773764144178607184469482246351075278566525640792516325834288497399577520428502787762544756913674043011419576752329913390763782723928189906730003214094325570499627883532005814386627724558350443568668806392782643538838278150596226600214870443707413420895414136425794946447022255024386317877174861195622727231757288845708485407362711629546959970642139444699873371927744420127844537558754491971298495960073904734039907747594434338105694130884037192700880457479971080581657266236785340323804345891136331171963559633488726656267166616550390178747631563041776384206211514021243326718307442043519860449014739346433672322123267564082274329427504418135631179863439245479611159749735674525284705571107461787608935523433582275302041877133841813292030844494090494359378247077635372944984999040444521968171664117231028670724497024815106742548271186693895329568122342534688509520311013947274212164811619998719041625079729816164018278265846583617727176428986467427113707866748149234705153992637488795597248257125416382988629667800131069900225789831633957241534723946877416147601652131361551276591592992114325685029783375679813721722053102644544452885695809136160911336659021147689174519285697155783048371952204160787515902797473346124302432424749170449144540757427300188158701267624643790159426284752957016880403373779483564282928906226653920202007304388567941974930046169253133753965101737806971323937191328630435622329508682531597027701887158213621200747321471104209698839337371904805500729945912179395624669384913719327931125606068218599333587490491577014512569173396092907018537522958155830041173700702845622868427482958538824411422851653558340329639323179116836682469211084024669644704793170447860154991810779377774127362688481665117416696886637796729168687866223310710042503586585354405022079527421080336204111680085723355033844052407338256399234070326989350570728869234942870658606978172976340096405912261333680665405151813245210096021019934316676182065578236737049820775624984401475548986009082943251173157160465743778352857550816145445627487206685608455159532174749866732544183833331106790211158966023131285820435365172142557529536761129914075429688012670054338966665540677488254924266813576296232911097982699149689083217464756865912891652630475279791604998654530619992543012636934878569273167471671959119690629239604875495978926185261071764280649194990628325662636674519900323735217902026053398422059090552084939827784129908194993844475530545781456748407151839447522186849586742666179275590910408172857069138763420734122343870805033947308671650715289339505682725662841006271642242044263385937639692654850957821982397392306518506534185336420851230107970977125175115451543500096375317511635107201372687036721125934298890971445241145001978345905043511816472798563204879484567192648687154015082474576816864222595272533739437226149818386778895082554541295333983484613580987176488049154810733405925013741316202872342147605103269273560571881344073987925521034581054988667951744867177292587302385118556692422277927117583176411236473682107950486960987809391265546706953554934508690164670248448578277323890884738559161998873456918726817048650199493831737609037835042727963956534413006684009945747011495560912151274414979239064493518599149090666465622813523012802853704997202632939568522484788622550597669818785866494481985004798557732568409610599114177924986212167566128805961898406695325082313991899452026501726379842982674395995271666079736795943566084107036387884733693207963644956117353479368959509996446630300044420007012975744981272568521328973895338520627680190467121235393482082832204339064513003572696180349010540116121275266379528734076916985774312948290900339952205344972578111385298903747173014764327264386879818614976556676111777805398552385469552257456158670504818115077693796037026625538492183955610960323081557968763380104394419712336873264367930303329332530053927581465339458272260170320076189148846145473650957437732242207801518174587379884749873363956171871400584763851934268959959692912466053072273087679102210944757439371309646703043556294816675553375435303978494579948252910424129413809496557704875591362436025610160523596362650723127176599587999310021607313363105061661898598838580380585479442738085769675943489008189567669807637097944596507301679326694046227076457432902535610643300656421514940718934297558544650981674808514716062781312069504832185065994376554290034424616606963504076934710392485315800801651062265164925056521660980645092107563559550393086077022500798393359353423454015967161270990474522271419641226317455556682354930389435192075678142450729739645046859505712454116236451335434509995504295228999051145310949772839005565551690283049909087194276981725666836794559185839882798635241214255784239256518955160142715467409869836657344355224218811195380525571803231520648864913039218404541734866099245364410285160960117740200287432585817054242982023966468181734459422655843511848137671243374083626843150382762298308917278395586308642177458408630253368490836352015139747421856458491190275690816482019358324667071249866289341092338785903093272959850363701394168387153423985058702995389740091460746648371018728026811251407727162245264223097527270461483557699292839592250999480074637768273650984877967254419688151115089562157489493131881927066546918766443092602787670143334355850665305258553533064255570924144410220255125437758595098008125688657122370282434629725322067118965816674406726782197871596934873450216231079280066781323868063763980571941240713412828511683192863586764805231404154940580684533623430310328434860156837388806689975023153123987099619475984033523454938532162987469716028014733595237759186535933396184624825864744121569201715964232220414686535742158445521484032135140435789986677950176943391028373834372580693726689813638301930762358284708892389299908815368745945008101816871095733446329812158007803409432284462199906108166812078687808459154513094998788400919743384694132977847049830833305764038920995445787464761644552722317415271252766319748452676054060568522524191505277415036572921829318963682634849205013413139449059966002720455779146938141957229699318711642273539678937725240425036759179494059582687254156427397534754523767005478416501031148880556557648894207482531639340791972926019901495221106440428927791439309311016972761494633387095947373855597897907001399165446900147715857966269674807368846688494967232703491973307211781616895054826981808266468501785677408775958830945871285120548163363371232361962499363588015294101554910411696741223125079172155973662548282921477820351633038955917891517938548889909648027704476868401556688952601846553969506404521456778479239507971365866314402844744503852385582673210414888991914512430315234761306440705546252387399149816711457129659862142364909043836849214558856664405992141248506565869867807662705869586538300058685555651318562009351185536839936920464371863521335303914047719023277196288455089587889514147439357435483062260938496854139056105261020245579311225425680329067617879304936337274829668467916792240366553641944582883017695956081357743489281173917629721902836460912929928090404401542650469791662062197688096647184573544659216519039633673939139339956033961604105769196921965373714429496739623935751347214867232268403841905041853767227742119897983650860385160570046436201352374838232816628392748882137144033000662392142164784501015585301021170000227688065692819911604908619896126193305907554526285551067396855923234453727226238704866863287250880027667836874640872593485015019644295958271533143722985820606540541000353492229852982751651233604593653011240162647777343776344212475844577277500953945480404864761325049247025277553525463072349567937056302349967537539140917592159864715182608967264975481624912580354721611573010577054505292140684201210705423649948034525732932693796152705057317623907780673945838858334056212208013153572961837538022725619398817834426030302164873240248590824644213398431517054702785076102490049833786330633130961778702629460794865674538741440614381775957158026947840143171352319290293976016362100364821371659679022526502738936264513257130827403673119302426114229066633451107287154767246232121917735550904596360775517446378641891506742589758638274249412502643108434107498065382166194507253066129767364222539473085582590399434329589202524237608501185251426651113536419600477245968230899590862372432812507833786331543108147868142734094625587946538634048099606111922766914728478681116964616681289719734477977825128910994077784884744322280747388012429048847387810532677363649440016585437040861261487679892744336130986604596133613699323682820904177240876722350634762599764245426925248367517591385665041547511612998883684662521661029333712024194568028546622462134413316064940503420085444934917153646866832137192503204268526280547258435271280758633009614598843317321267301546154521638514491766910510409175340075173090967395996248418427434808086116920292517742252003103463011585869146784854903955273202063977751947689708685766619403789421167223421260835580662666691366495356836360383690852534711480386766044446075178924793501664569195447580640059545781000876603040237586419504288871100608678574738893871657118267059938507526909920029797902625023713473515351886779290580190276643432956375467894720982036802680307736348219155041505581098666432354405009126766534633257718931075559520950318166287039819179445140923403916669051100711719778691814848406734825367440190659063356844424944022716933224456271759664170961643365622383399541411075367441084279087186313124150330030508334687199029109177875385053331174100658778453796937962534179439766211172820420768628916550912657266443296902159362769605824746331615859521190740411910657712616972729030761799635558706193276035046601645183030718466204035964243363333930853822292694617699029293683944726258497235741940523090155149579292441960785528076192274391886976224535302615789521328579312942973055637245167688414934737706092683478049385833242881768203299572251683083990966776992011097390949282951660310889344374865904434662734699956057050033027684339321869370298203653765352256930356865792634985352415916183495246656382516221039340052350966311255893613973898396127072131409291451800110340985166561855164629267316457014014720024652006950780495055570005491791027438621791451831087280552166666362115580800295115728017925095899536721144106328433452619473484593646373590507114463680467957950997835460637269961948305088452998899500996081117550111232741528464637079452605202526503013854700747633568310702304821302028657537206745501089225444807494506441373730523914921057275875625010169914344942948518037835977316003400869323261525205953326359401466445427147485768063542985760165130036753977353242786125165441694934683299006445100245974222131935963216186812895586717957592554001896285076113354630801156256204014378816746111967565439081555571331639617490572451974774369740370316247909336480993906709106283607071485640582217137722022775400643588943964666870849239344011154544208778057251373351992329354104799625109338858147144802460200286324798739038141358120019669569291939483777174028802138517868403652764125113077539470978287240528881690069720501740850964887028973811578608131246146691896104911147866873314640545037543549278211689689941869040794907624509528316638573277949771570257144780116210142875808877878217329097571312805928037045907801120305224578269801308809448554919602756555155810123345973427419023556429406778636454447697389876517703051052529039103367252287836050019465654148660423092216042775204736244867832738305043904793551022092651587216175781517422956940406304916281750678588161298825652830373180015332909999649714068311558739701345505824300134247741473937312306080916508514710369817097056975533900155373756620106375828269130850995178853821738195823129370380726436190721493535480351995021592515641323293479585381348206089544172402516213250610991645021576614786098437790665827795172628396355455111790450811572167149768362743026162022490158113435399765307835546571944025682328240423054959751623360468530702576407101369186592101800423413104235865659033532665872812058894836975936415074088292119382501142759517471035768647430028085229229776975385761712642308031768936964602249447818175391369271508948854753932216826564289771057290281070800602963557572911495923186975172109549669179476938755511470681638856692624216304101978078222205347533923646001331273261443887546296676730204144686643180751908991484034832126025361927797411014657320722403051117429122844983369015434985945674243301829301595270150561927736777927119670684939172449752298663392584031139231812338058116091508074014038514583498055099026196029429857392373305353805857179498038022515357878478874461574984477228669071605909110502224110537946376647434576914406504441023068470124444696449994652084922742439131640044760131641347265235540424604940285172321116345793758172705447467400861431762284378240479059839856728551627842257075640669825304722867826270496241994825670331266800020675165912361869812254534357689186772939990450789650495665768764440610281237535871849295569131509020845673768455986866134645156035693213099428991516335638819941162360250853105760380716684696337610383856543826652613258871407139839520189240857914353633760144751648351120757965942250864292005108087586173977900629833076775050717138403854821846813801509460523517765179339950353588521590697156914204772405073013920656674267508040856791840765256492326587935399763793333997899198870200691979202561408701355927910865522754701396563064560222909284560943465995648657252523724424572310792475562201372435070337589284355903808941369053887929010950875398060929096234179779902107271101130703859160583888648508475863633945571643430082090977411462546254965533174719703278521503061970463499537290651574335556434154704178697849332409550676395903537485590388189288273808902200624436602369686852473844426715198273012658972859345585923996037928656057910444314474421143082752258006780629051270037476584782010351613511942068151627268682905664202494091598586175032891603555597643746551699463541602982717382520785215627974863658655912872407929228310339957400870332967887271743115999413613088309987605761798590297628157245798112079628298522357539990477246130102694596061628640799205465349937964943436650699416432000469343002240435937417495307301939959248902894749075802846496981003934922928798681480848170063949071100856790652800831992100812757330750311552760001081155502620862808176191602918460833453778135676151663839158075699306334271462993218851655070302000293082366178248497937875826053826551381538314931547337743467153089539624072394200073095865608035550815632225537336387961940535323463283327188903004552717900665495051782205739253404601502229942494517022180361817342977751152093417718446407252082654875825786945080708100743845945426447584979221472887798298347738468067844287046651289661011447101626222067477570576907188412139861975951458307757672135923631486866301852330785593351493670475006741795889767538519541952586075164833919168561404533127147215837706783412079715971103764606659984837068011624145165721091280409706401254878204521950705518354215229909001439245058299072129769044477744831273085769497213793390597652797761929905598505420061855565504517783940813002152390580992715363966444372858477142415186125133632495052357414174703190425879497828863932123601474039901108055573032264136249055062930731671680334760445936854294216949601036541157090821459173773013323926473638237836509843401025141742090760300243414240531758367114042906308067372769886093495720383701167502844079376686022065986254515965640289943340903359099822193328300264144032390921716252976827899315938848880424109261922124410240485939103322737420666356373958084360809368334060728064609057636220191208404409778608431645098699978831358154568787154844601698914439335185192508621585215511039739375511704973053533011270239285799998797855944383288178806750618910594769755675450115888875723896125377049948252846487845500404779242644992811126079226469968624652807014198550325013205524700517824610248952009651535983044659719341963170858260543804990897836182219017729142095422288675409374988274619738869299261439179429568132560781164316075199078114749359207659341721068083087411496426882198231434186209551836751688652121463979288323528348105343915544093093401621901601257753672890799998378415713648634242115237538489153501736383514559210484680592957604873505760902900627304930448341580177204404584537285377099388489152618040667298067294648401901301185501508450156153579529789193686057875977011089287633806792327954330832812067507599177272384873861856998984929766676367936890086612641615079361278498514335991653856473422960406231786909645868942974002170505323182788609753667928882569908937605832613711607837049657895503614355584804799241096777643046153903215417661066442119352487897336544405648549383817381198642800755820174040372184371487252683790385638318845437787153074038960763397799584899684286213850316597485494942270959535476242515669948108875361468292986933242173094020439576377321476754217102577524252682224522942996356331699652178181560246331941853812608913511071815265274326167156347859093460419057949881573462834161954495043651296094168832553625046227824179305995141483001660252833099658519638492057184195330288257864940740662928471200431414709909404384519794464427189502483938601419683076297902092076113807115946139402466309834033331437400858667369795778148831941448052555261076617099873453731248361799664447891366448480290223671733800209461917410114360832113004036814825093629009855541564495315206558855955189741588665197679385929148259958306972269761966763993757156413396903171399016593903458884536538474629767978741091207749926786357076813239418679175446548609308107699166850150330081741411243762206096979700424134795394058006768252619337282736291962573747353927204300950634993663835569521932829768345215690712025847268480020607455188411431024248682576413058978359968591555605739844975350640159691104900345384530448802489171368816646001449827408518565035077492699313013132201111761217036933672005879154911559959913899938304186500756486452840272868036413390626447532401583185644559301210716327633275060510843827504914372345080555356011189037382160779611367946504347477861666472361742150348449390953471436037425347876646731922778717144909523078819703354637942914535574068401066531189395674226142426552564707365623044293031353398694240100332727928819174222404173333070117690897216876431264401300628083808664040770131049061518850384964712749721343594505155800331487727131813627996074240563853374008571343763290323032849632559010311994147476337741106594831173650216137670049878000500375558351903294365633977511407249162443058818308658599795740247322886876196458677705057811760954139513472241597940297896402967005983667885014486469848371854954788931995676697259001327361086070046739986807806139693845120289700538841427553805664917610106691825995741331548456554537365131014127574270482219499711644448638217661903306004848798120696481873900633067064695435111155555349742679968662485812367780834454717198470576586534019965650160227234585197526519823128387949938764234940351983651488400972267760078190551066635740263498196903927459011618826418461090442502900876086474212170612052069881351716372356091274964766673775206722395831268589533526598098879111624146276399698017769941804387690413810561055194274961212228342596910009387924286295187108665788015627192068295297665043515701022979567263308120619560836636826891498136651411073838110661618743033798122182602011198689211143747584941294240971152443527135657229273083034276881689094679639274981529637362669165672913360332308851881653910708061688235274422231288006195253996417521428849718579548336684322993651213426769875202279393462015900257115405319491230484493567172902105101336250304467021464878867775116748691938389217926278225043158600700946657298411272150793749728320382698353001012611411898616223903582431978642931981558751030210666497157166606119420026746676536892811418308969498114857466927839785915316567603456717702785588174120930727535633396012773384691473306391975017350616989100401581832679712197729920442816641095771353580923794852063347325904158186208479170336076754466157679184156748080441459013064259102280582830138096903019664054404696949042347805475160621817699706582252439666158847802163270053630603518854687406819251558811502199669386441811172143758233819218977802382738446849318305212018067766932251666716073782842879799143379180589149099778428986288109707310658682044293457716338525591156227318482977162281557801852228478192998003779342776576356474757737398448367833802134925955219273247909296878904906775546593860595930879266918451237469775423679653458600549422936306068127671273111016348858650313572663491236077184198962823786563079230401713072500493073100742367199694136099914399710815385748565923209726581476660039779462907276766415835123697990281625185406717253669743773428747851371607588780632412004052940935527704786870366868500570054420790981170937050972707012002237470212211434918203997159571486191220211342366279599426956781537405808661515894938289233136058567369089815754154574045914322409836300576012721828702951486378675834183477570845361740829533243834822550789614554104266229283246425480780667060676437233559061034979410958901273865517687568844362255323862052577827968888770356228198315160686775981835605537066730175835043074655888946400783365094147563664364414390349872365391712761437458821024827052487495259165914412365775209809690432847751258884619563504711894653610677714812468168776745123115770055851517837802958753409580493743578505318468615975120181675769332676786860937318337526191527133904446995668855222904031088562756084385806687256045685819251077909306316809072467096513410476627342780419396453155521488169049312819711256454040216271551760176655549246676712306962005460422126132580902498970895908729281846469101759497570906654569578000429737912119373648340685251559465193344654216822839289285827294221658784808104013365131694539783564052906673711822116147858837018118367675580895447699839353244790642997895758880330598112140330661454730236390779662820613312229951871938082736235730557263254318541112180614324244594963972686073036672363243562971332710226074383166327847850277767933025398268996987715258000588740019343710524362570252287499023929358696159186678647024756397959067946292883341778328462498052609825079780092859811062002487297337595165448824012747166348257467876303536988124000178582925827429316980117391853124944401552428174774436958474727746848147811905242666352357626490792969708866868776276201203385018960480598135094181336244567577717776298646828013634840400107576796534224415205965736648089976541947539540311019161960299390609141744335643296346386791937753066333634993737307810802591285307836051438564205456778659982507141570100914879696462631252110487557210121532743130952173054859595892826263383609181675846394459728677654278091620106882266371039456364161225768516850123542501810087268482859532115409023019544367838286694848788433053550304723388242234265082018375638283297637184786213218218906443330767948286426259080341976781156999257164141192001955152140063144896594422403423031314884198109427764942078180412594271052412049925497380123015845325640887519052029479189827268366088124785407073488596491539355197057757316033260214035653904816916273250305973941285190164209630843595607018480274361393215161543099825143254321127231051812480363849574742161025207897295237972887770813359434810517587031843528813755778610692259564331432725749409931301241375876743132209702022171322906681990623075583920413622400810939230717267994810165675991757413607302071516944040785337654195985327706999861407188290484090804472159210484069572711425495738478663363521911939562270254211116222987485087458978939251800768326344407161584037380151948748164027646135348611724988065525111086865479398013181726084811002834309305481391934676393855652658044997677645487982887548921416198826063873005162805402442907791813288563787305015596999745204357974693665809611059440147234816676298509319232267156537324617309238653761427117429620277178394837019742991247138630868461441631015093360607414631599996706944856692602932061712178112002672318431588794605566090735892464270059498102317262777893687362035135606201105371659293130327137874208242344144008583905493464405209120485656601766720495581774707661320002766622098008311127280162092608402356681702242898837170985695255549679957891995169299827589184946674388633243057284302003638244872495092997178508378521019055912902678318439689922049124503476482599269576090575746397079465940963858799248296924272103388274979376278428376395999696958010194522291077772787742304980411305985064375611678919379424188844513428350974230307314879132389029234125941935947287002487560362426449957084029095349312102994227110063592149241988050742572384793537938583333056345496351108245677644380485967030923508559140221909213615829397697974073851469198070563512867126805456616118521092448329412291016935480427515111267994223847054098832837799153867352989942557261230732740804872162145086224402158899683675432738469567302070693588054377778973271247291816799755832053111843530181455938056364125088168168404131859747510859838223154841176218972418735762075122327278505360518945288971516793071013604983580178223914835862442048639088229266143296904365146688018851681029163880928995203745268957351183555868199681052618209137336375070872452912562489763167564182323696779086874176694318172201800183450533158105870321439864246097273146127742595506295341523161082383990522644940447169235531442045269693264341023017396189403703537241101979290454605909863266118556624716459330613566269559738845982267872862655394180797509287826238920407291209443456943044972397102484976496529090496428874524966179961899105900329454683180484245896141063273379317978535514930314390304126066073847986788717947939717516034078425376197369913355793123696768557258019196822578284229061652464220222508723214363333400306887000277060204428826404337029108006809138089861639682999391221554940742793919280102900603325416942284387454147769122602180349797509270119700614757330932615476698672134546121236313638399384965019666777559617049812333183195826670937155183386840493421013306860627959434025823221483634895925474067230707105326903230760536119168779338647250759012003082315016737303013570833775836121126020931065999303775740442684542089946008604127292679419194730117002054759299376281239187676723217336766410653990808731483512313667765351124410067322895214067783370469198533027417158179027015219454242392632227091126281335803491235641872793177407182646287290693543502520465933270395964265476604070542862316331273785204897801004663619989465540167649256296707472383341742659330286177559810962093226114214707283439629884305052634048700597803054342086611553181105843053544132403061622842546038177580190645847352258101667521682142342739986394996687698614895734664268193471978727651954593296828279255515234422941160661653933524476204088355238941522118531665179630461043818065739042655853697019410768650729796977714748842536274686254303915432722108190453129427986321290743700474937547644487361723383957828730301100069087044202007010798239804384325426036726465301503643646173059125566706402799465999751333071000628762503292921837527804908741262644590567232508852706367834072096009140734301493674053551947319028160003689972625767245916672173267189376608225947319309244559001199222779031617272858789865119561822457486101515524230042510209290207476354057485046683287705244919193002526999741468831687283084388218028741789746102312210931500959330014082455145703234015464401625234051349714184898752060576416735774777297182931229535372937901051939148663820448045552760928318077105804836438411016187828229986794951523301189665007491726136617480860386979014847417524785694987163258833768126374842960283105346359398215177292060888574866503860431447558048171866662933914952557032880739065628404422808958419097684919896665147409244103649284907729737662644928999669521532833851217855984543269071263486531540108367965356950232979126708814483220547260076685375271160127037447973952403303512206323523089611637476781804856418172834604766880313990304627049404510417654409157770749136964475953240598595940255189641153017995788438791595273807756519254799298714088075399348343910390759873569020191144106091437919570435965707494383070849272579405750169377804994064222336118938916861582661437614158728161935083216529153731576877178988940606984979186581028638449896711182564837140084229213535054896663319233618758969529584105581209413720363328724229373866651505748304881802425907646009713300236091017490138253038762455639040454908973012938967855503852681227409062661059121819668856642786823958500041292321806873801737835435973027146753644884302007144304897822430498054959834761315516859109664221036946277405866652071316892771260998037543135618941105514174396958108265213447414154466615858227760711147720210419342338417712315686596676854998551006484594163630827689631319080302766465938514381804486156243968731828777711161820724781824687330221371177691911950611770211911869096233196808946689480063049570751302374815813656553004525481718048621760621425455694167465791958105151815666665939775656298492272673435374954033121314453272533408839885815859763281620153779498492842753667181026433227461162710305431433607762969058052364009549313426291487716389759507674533381843990812680495806432086795313426939610083796557880103728893621043884368430016406727345783794472902497643185549923535277204542390770950474113139223603861606038270195564804780588067190952965493925449512043665680795879323987595841246179934903008579838446219621700720834649153167925142149036893264356138086797612192082181922767509778172892712017962751024369280225373375089583982080900519307279613826769723227345813937244211822304708329503788969836656855039366104934834974654964842255306307997414813958177613856111128598749424316176314318328117837309682660877963800955176787003517431897103832600931879764481321518391952480225540326030910411307123400656244396800548816409686696370328423056977921982479884545424277831875847373562894594694254576099651217395904740555312070834878147669961504095325358907497930203074128483263773150183886683239201117938610830081599537171809546670657185990516903061119447234587247818128754783855677336122099539622410830328494766431107901777038746826410510144301707431875971608038592395546855034897950760568935204741690335767926199342065459672025254592310604401128225774903336399509477033757127651296411837117606668041098225581476787697521438813982812164325854949841602659802133550955300278976606596975052631637876551104351260779039568483004330865774535933100699878509851690161759180738091443909251097413487926601707850320148813879632504399920799269133708554568431070021615507878471574918815383559170041384731240207609864578979112554212457188339123177526851529204423224737045256843956674868664653958481698940250080129087066817847220692563874050143471409310705091269033024194150960912662581918296127607581133125568551942951373745791912540324497402011710394068101279714531096647202065626655832294806755195101102478758733339396009322308255363258754158215757775407167718897588003393296718430866346713710444930569778528307978464250954014868799348904674369325944247861340230180011132643794692510482161355771223124148751760892762827724493520145233427629084745185435728146407056167677434891578721140439373540059519243041586268654285196448523225869553581994810448998640458973888436995198894793918648534869518973480634501479637498209820417039051426622030219078055833051126635122687371776770872312580432448968024870911504972471855866181485719204082075152219338106831181997089690502619055466186519848678309269621732374543895776782259425932054074601672323120617178588761517049890066170036077021072244821506590655429496735676012321172223295710533819178913509190713959157872117991892985954684861150143353637320015189824280415057465057872036076485658659795968802201873913477149984237487669732430912257361701110836374614211445539764825344743073282516672872378531362592380039117126732500729774522626642505056806226206278543877661181275125731808118498770091697748168545229605042706979568538626259250464222378493260161030213076976068408678136290480678001131932354674928120497642553005907693619905715398108569092280825717383856266946073959769044408747950230207007251013896091236971963879589392768257401183109584854747755835772208693892936337249441446053178447819878978690529921218961277842499902903107386098670257150371346263808448606562821642588249534106033702075226003344952436655214025297134442876033194884306341698532739659123084027013717129794786142605415419273952534902518185604666397365776996282541346982078259250130364987402537858293366031992697196678471693491519244043458078100367000026723162737520102745941912042790119827202915328764798637996460598667714240219796772436585322374192561655480611534789974255261337541418843662405197639297621244620220372745816763759808435240605576942064149569068824513091895949252037306733783910658304018643820366491307139307790607298579734729848075588555930013499569872357739801483215672224546408520676321501666346061564007921819938556684466419153143743606755643089704841568039530560949583546993594493860843153663698309096637568786964581364188761098830694126686441333660007411224117891316224374425954015701227142527400510329025958045452123675665638679228930113676632349897669085429651270010692531909301053746988019774751778119148307724295753130434823346177670384076280029222054746078161450351648605295872408816836492457632817881192933394034182508169001710785022360781831803403597345612387828111627414025228589526979512580796049446689051408375778095265264922325963462825525341908234432466607557328742673630254797144588696786522643173057976980595369501275521996803681942245154739474929950081920283386269822357571969906910472198467682379208678270104151862313733431145894653519795318154758503260437571671613488998772384846817836951646008273060382319863610292363442093165328975650812543424850273957596973523490866594403226862806808710038963322617624636473060481686772641206368541317618668584499964945375975230984673542488628687170824133300690020698038121622636123746365283021747544879693272812122490276659741531779820730518532735623524688180993528998416977532406792663505017773646972483443271551686444714585489519539519997419034942957076104650758023163372851446067030152791238634501958985135932012784040167883308668913521384053993304504221702941888030342353724925734905091502996648880709163870311279609237064835363857333273617129976256014948067275093210874056983924466017035244350063195864142994506353396031858456418423822211186224561892552690749523106969069088241835385727716471152917017548304569565829578777269304278778034951237603033790715230599499771464588945306810274886118325592112194227438004442540248476171760735243195409518703228910209888190910954584224969676129115421668005984802696178278466701733844511956017328277971577365428222360095324973608370319429341543128028947349166275268871436542968887424531287814390078460574391643082500478878212950969774064549412270445645391679471741630943501573849192517156609037280048892402535291561168171782411514998296249979764105240622267181790255559154265644204736762644084966249717707770978325675692850292889716688196340917893191517175945472923849593082432995953698576431158119488648465778428133096533517418212904430281645958889602275488785321078072154600473367712749374899473529993274479534987817874792212493815087936189457544990201602752089613286250602307297206748073703168565497637159865779632076036313507933651807915519218503176198329557465672763253728454025798639816252384720236969269679200387222418530160821459802751149017200771021818827074876405102034008137225118803413793552079030749190994349752034639338191094192777603776487927611293560218058080883231223294695731877195927295435074233580065589518742417918837171468096141994645176893992733725466111858097462954693206566082471170913408932013082365785949967749030704379445035682223220804867049441119405565625702940483614071291667537622715948477927366928381836516128598255651781642646007260372033619840782975871511952306505960595049711100502835730189778236524824780370190728459405317062951912241240871264316116761455320590320237722346365672235612287315152619552308201942437424480770220235340548126111845078360735349442668429605023832865975801581809716686192804264761142877432743636853231339060380198990341929244622914286813740260931218155234811676490141680736526398904451416653348611687912081705510755287512652403629025605496596671077405871432044913681567734331457947604276064116824712611870806571791074351988162913269793624724575459957961367134475594247272557213455133054284853576624225656488890319243195682086248311228719337825125039194336538757388738166741932205321459623218658028891825918857098812145048543452252960948837175200197087294390978860310874357691435023345845293784013384298487533912016009743912136958960905753681788276156137284038207587894812255680494445282326720471881367538622285538673220441516276788799769382411608881951370000630706615468496972105857894854858991666811025145891980658073250225061630892553089430213605548725370813278310302753751265373470931381248441077163314720398622178261508267358741618775537452017444291583094422174856726021182879857698173453990328741817169861389502397752589908637549761728762084183239603497463583587700506667373109506865033000511054827307455257386658589094978729422896359770446021838405164791300522399066396361712219278096220731783665509068746874842662303770912319280367445031315095830380301059286157195812484326323019247122215635867454114331506925171295256705307870919270318923185129946140787219723885232773588865364072559668375413973613259005148115277176043354386978266938166920399425682324267663266623926560045879883300271512741922273891280334755718955287973273843618137499164097846601065234291885444399088553387123206554424765148463242513339835111659020870932019155374571853325855380230209479098207797447509010581713783491370304873096383373783914530093111162059091859224211070896346740772376222122766085063141783811148823138812959601402411479325393476071487896243730007825365676571991625751167791926973669930620593574829515319268298663202645361838263165833767246710351815483969784476315976112081340530120260383699845789695663452075593253242939634628669139205738801037835356311900550952698496478700707837241563893562336181022652610205948422852938415382057687554806707236950705141522579444456371357055978130368015411073339091150090934177506534768998617223016746086009145036767740565013819575139052538416863223365651923118105521279396038776650541320765135335185072931252918547657303972176659480886431837308726640835967102906042349202966801589784072778668230303645551515617787184616097189394467090358517859253216896275947083885879855557858901883120814120297646248312193973092387813519800821966154067468709148689350254852425456296013132248125905042045053805114194061549324194669497980073680387125470548631422623128862597332353866842059767064249290997251235463471198785410937281762327765037791608032262733179330999319655184273956015822717750960137778636505242890205327403866968765212400753594710923520526540775669735888076471762603004052429167623360114921632556012487487654681223673981149913532738661542405747906752437872792556765957782748546004035971144613735435245966349151455216717549431217599068699334055346325627095190058305447044908316702725757770871779977107015532175315888843005472397293843843759373770584480937831584066241712005535771082896422082221225268871261042725430078490368587423682578707841483366500438672156429813074468233486977438674024376853010939945403183318342579395827709239710981982819679617351514823999233424782061567327185518774011051160756191521135069936401509345871937504364685795257072723612512230866750016793456750172611271360678088049365225145414264477888645796050770684349885566715390354482694283569621663537069056690562530150575866187278612962568665807977375278289299402535957906886683802047115501341938698556764644587041153611382781550079818223964104686816054231070892321832628623773389748208932016816744888104483355362631809553323806795383441982329789766550799625074178161986260995113696783459878011844077608032861726968062057396252565297587185688435475921539216677838076853024361210739404594917865254622365428067825053772453036648020047417154891322004388313152250986322814230375172969494771447112041927650360683561236851176811279626175157809985102111200424313307417600541577087833008000962682072944309536433105625138815869401876711815332004293380894261988482630895400579080525573261622569169792663655081881570036713945630012048341005148481805514388800160266515758624111169084812743228420779455982936973775041804132843331968837892244309873178904417947908917125331771973040173670880782849544846917505662436229501761009478372250767815763167393824285380970220723351676713534305417587887511695179164707896234528331566326106959229760775479356574826417553561775599612300503082084281141409613726126486962949557950257144811038832744427862311464307283156386767230915095880387145962102559773615614945949910790725651692502335761157761373643670316052054858963255012809297774899310787401258300274525620933462083132062752428680305289551194383994992455087245874834520105188286907348808711292596393145547463978943296974898523698187408304047627311312481828934139388689992802245888377660143360777352002410612736719001090567153892265003616877889960076625462567478677496674795795797587294637836320997526789176098332529918298872049952867785596888442905004308042651565214731659230660551006226249007567138716699806067950736579757520278153399031606381364495868530440594769069055719922758800702161133448733745662269188988963615803494096503823620491140676235203283958444189178025807640660745598051774610492959595264400614347991625169719240441060689936475559804201737582399815320077686268388973092633707923523204896839525378460305437231576208647615540609388074839692503775756811449736676415187345167738227797409874122954899802641416739177327512808746408506395765648428321477488924824560388048928431978624620891000155585220882433616673574062002890487495438980334547319679033987209776653818551398012786167556749508629366604383463248536536080978353439349509459477822704672672103513061190210750323865633376886846214029671639806677416982767846085748926469385578824861370839954987909431858672654363110095540749689763228264946607612858777086967810844305780405353595316269161587846733087994015421608256612496259525877521900499267845045475408789909464654256605677100807065982736446900306993420799467430160443712347149903689933652852152810306142191904448290371131961443290513416876850866716656932865650998001819230233692088587391877292661609935954518583141334533767180673623823638534948238179323310632364543618431916013899736571655586067864236694212246616242405911755059273756701934451475704144997640788358002243215395800554054776927496426921186762840286088807553764502919411374541334412250743745303317151431541541036074198221633298429115822146346951970382613146091931132266090762524424891535963345119778695155426671950239632512990375248475406736061421955683107438939882740197752383552126026310850367999540695348185285756306042324912106389512604243309169862383175465370142840806773222474449224915336992599982425382141429965739996933957263673749535853292701967538061515873744869398483225013634605797508570668827092519295209535375408559372607845165692149231232153984921234771384496841050191719799555056016767198624525779410809789279800530448339755187110065067745843004405371848484255579885729630107754931469403567493268791486166660179427464059402915039561447299382068445058244124515436667835485682166426226059405224718455669458201530879710374354580823245891782527038677008721955155926780734239608991047119818877723679331770743726219309865441052863100771131141851008932172435616675200211901469729470129030787599468566565511993963293651666856782023361395410901172179479406109396886430391654320031793953010204495909488867247601577919900973805542182931893798012820825670310275808571888151667209748042936577973474951972105388938977779668714327066687141024859390575884158207240181474863490215345295486446273453370300829928079445123406170040880923421563704255128938026206265443246999981893732308834513336548219578242217464795695861455449862768654647977072192957159684234988630610398144687853809012815385703402847901956778776346300392358163345036392839798564226794063605952884853150636792494949726140236502716826241176275039450428864056825274765923375140536263322744044227313443127504910742129282405111771360353730714554816908704399592074476531235778817491623251403969597492916979844769505325318367276652521534820126921595097439892385201821993440031951503781011953456657671539325083081910953359659100297710507134322413998868152064425607425752852114077522336436313677491641227479972655917247790131794740600855443403128219741504239927680296059404881817050668460478197504171336735940768142484561772603896030985409162989675927391251424136677421272430156480324659314737695459922361699275269605883828180072158483125031160948895316120079699882890872797926502637826089312609607121718435426941270378311273184757916813288369257487655237392149633625820516025424132102568475431651836390459489490122527751550496106976827117382290084366301657828760682351429271364062908727418761509813624809977174001681954468933576471606041325421238889334796957801817612582299413051157349820196866331828371455681176818524533194432375969809039530492413973259513787761738369640081886973346513131730870900923678038543952272362574557025006639404368234720764457153226710710454560378142076605860580701743734929466585641173367719080385106346670448736821100589282986264121336916417132474893999744403384512577718726505717868681830276619402105256359667245693187404212945782508240089195870670586895881079765261089247530825171934717936297400021455436986031645938304331301918855015472957718375332833316410094265164867045758160143596460151380822641029861124312442604757695911159351620685184052288947295064255144195125437314807901095273169358788477951658237099757082624789051201649198775785591406867446721240833739828499322486725229209108390303835724389906167894433608455068621911054952273553255436181881395658100461217249722124264068905945695690819784056941765278202112731733664631066099083364319268656116663059614103348345813662543425156505241032229346008296878344739962165009178202269621610538835813990813813709463160942401506163433976654796667363198588150719883424722060947667467409715153514327370609835325413478461480307902781724851241152153753886547787492101155557130177247078040191580170451528012798816495712932017674753167964081457590138263932610733822878422989161173985181839310055694731031335753314060087734870006401766105613459896636351976746288399667859316772633300432388780063538671191137352315252317120581345367416185453866947514642518457258562012327146499350351928890924347464304690090588731543448510363934543891032096414743029515944950678209722118533454640684590708153276441807639907843916867495490438172366206816042109460984528169092965969149982749372231740530527763027466683790595126659353931957423433918895255697632349614877387620850471648792091905407390219663459050558356616630731567986652456668537591135208179402189332601458039659226913868057406722408992095147720724556466688661985807044368320247017252260932066392238242266116083641546553881345134258059670144628882182276590006258527082809410762199707757075886074457628125653275083291248315204075414975416520021716292310538984878215403988950778726106801235539131655472182523103914750388994028413818994719816914400607098657639440945241411671925391350039103693202821504067118546422098922149748322627030423784261330327616929334894946105831779650824062776343914899498164229162740103283459544150272517920119095767809815638837125890668347212965756508031545630557489398027539774739625989483947077660982670663108573041345692499191943381175703270860743615973894650644738659891134225576438437446675852067181522352542138019492451388192129740365710934406458081665054651719597815974083725088492970153452680567666022985414398641974479965014193448332967855639125316170309637585390948530299196449492407333252035294557905080109155082938047920920426573921082031392876441312429174390267186123911310916889661701545771494498089160480917171001887390771063424004874709972403658562518992781103763956418589008876300863151936737999907926056956355591616914517914814409437764476539193345303700594736012700826438979003775296081605061133542393253508879692003107259043295257003328809008251864583487978377863931601164660739045416481901535303256819314284404847377149125634485405757105870118728360727787231475648330560865391420902672220359303666824096221584472048890334101554934701551964529449046822565524258586230558878838219976401196976119230038318706100350472714286187240662817491174656847622345801232373769114506253131117546390352259873291779847128190168952124133221631126789996881059972247291708932236810995706561503260469441810329204030612776074642295150066201000904770814799322631123051483981595274681090649774044079566419710248232707795138417885914349118962114171456737428075651298816511677774761653680680072475873188781570089615435576488257226868942866725024311350500457975310622367831758609123528927806878738437519349944152625932160169632912913329622462378031187491329439537028185916458372188267549954367140986838435275989856300045692174994696156891076992612481182512358252828734530998356881379765832658565089036665850999905146301491922129789992200851911021638358599586866466819879676253819990637861186310977250622123185025228359067209967205329872556489137728882795618826004355941263004000531627833087085389058150052007675050224174652454354752687674705513460334923579169683751506583591076403019924202337711185634259271419522288753110541026361186543025285434674765119098855618798678780400721984740337902177340386768218708489345469462439688419785059339129647485214085901161131333616335773534850721164092934802169655647778947037682185600642611938675261170818314053394988904120320850570963709101120609170321969046062299071189995683069771275541671409140358626530724250472363320459153537158733702913698676748390754694093907473637878537546531983629447291519331078016971655335686660595273620825694778545134066241523785309509780650453363545083088535537001920135520795013810072381931712897819855031107034380712192487153868552091229291747956121173256957449378732900532993082905623535055384685716127473402103637682295944561776097433665326968393108796944505604753073865407525472751057088857125189292482921849618551214635823263818489157364200542860658897133940602593945184870334902859966779218060962769476223845512630868974548261455472708820491001002704438974712873198086108805761935908573921196490590241724465882458858410930077395754378979625194549242730964897685937712164330909472187567465645267170635554862940390079823199534436425542565576752623554767859845997475922212552678700218466961868627587315160042335533714686426674836284324111582515036564222379010734851705321122907663544794128558630195416854186346325697995766620316031321610541767225343758489892177836340132983096304619224426750702022170413556630988730768803846993946583675420948756412054229127805949237245475423472500688199492687533867109404624556552590326754020922306286252417411290235384893353045117395383489484415338014106458748253009789596006848059001647322949688251662463262283883233396569584908618145635410437171197284002321167698128054782579287297747373187636731465946930186391940475024931640408202223650391402005088053764687443584598637229100540644653256902582104248709046413884393248076292147294985894414374737570861552451204195557452223589529323874315368121945620470947700932103060552332013676468457463096537019708022468558811618851132864402057919093575733690568636495281990140037691810081421698535572756875507665238807996849341460525578311600653442288446121481170755229694776656660364864142119951811042697797489873637498567633652587220202583751400909423681063373877434490067450921979617324788363732556037054594095470847578660015245232565961524748712760590805991162880271278777392347214998533942751292768774196069676434805017310589827512735858526662550429503790787780879051351981634855424189171000938174665155027627710075056655350367422266312986606641083683308491426534192041931229781954761217068757743902860013601254327402015766209060745239675782602069685382772424414994018425778233167795623649579540893151594518011579652648015629127247565496062835687489854971904175828054268288955665203942482537977190978896555665541799719355540844515994787656566890325217311046402990035419718333133779024791551092832988312076856425646489187995007326209591113368041177422148080645485206272692692827471179423179133104283448829538943519188732172964009085363342384502631956139731227488584091884609820194473309893913089010498683724016458005230928656175047535106461264993295407223800541230995415557650695897741861731414999123564971238333950663925562520554943949849837872585085523342207463163184932147245667695322763548462051501192970247771794373816134249682700574047080969516043103565289474089451433979790525292820377278892210665032672006756223008869352791555324685687714197579719255313319797440753302966513741024629283460244745934984101456031192080726209839705581426218046531953609212362004545683193423315223549311356717552944016609467961684239671898272356494828688294432365377490622917839822666913641462025477384086472265050283534563838934422224469052016278283260284789875598675679331874110697649130746972483956871418868886523227656583107533263131981537312318181426361227809858405379718298611143392641812971680851297622701355776389045052667233387339227804054240396639360894666174612900785292904785205277023477654983479222373448629576628938542420207482199925082345276328795335105988564022131573082103322532830868861377533065550957534392033425009769675683521715175062875761762215728922147100134964646215030483295857247698628714313720285447163813346603213429429552013072510225051598161630845879368683710556538061033833732390933915332562536716135915336881069922644884108731446180340300082773676001542521512635408145117934207786720353212060303496287449189596688738435732918530511284999090087881022887288256071654035465379504477784828089626135865736352936636838474769819823699188814180633751325426758311766247105240445151660370481374063704853981315100424427540134477890315631049193844244132579719738136955327274559450062100619068394506769367375665516179142451735379273885493471220892182999433949808187959907454064999524500225963398964035279953808813045439838702340327923768175915279969946169534421472280050534635063956995625761128544629317472767877923372610165957774466034637361041432711767557194831289431918988555027795316062774521896710978869575690790361361933596882289642785735477520912163770217795928030061654286370719658940546907226738833256229850582070579024871700726029823739089486179797190516961634486568620571699212694676352396054190988749230407570580056501764166990975521489952326407692416263137597536782186273312231977655977168467516837500441511801288283866954623233757975677633238107671854900201909464625846593587334929557059595397920421438677393077502622459033986521000200843549723066805587402023175251055585360572132892998048121429323801532926929951023438496369092137966700384471464477172545369436065873961997326687760008501767000936880818454328519451363400214960883732324414496525121394276282538545376229224071783643095489076951468902165826680695868900038116521041561124285861235560181454127893612516662445779652371513200506422378704650718470018247624937401971002612401453311452059714484314202667052034531396525574047315411004701517879104415711949878306135625723985504188089839137513081561940823352066697540268031663138885116472400854387717060221545749455146108628317168511573889837001036401498970637467334473753149263391868664266823430617872025935984130341399128604553871548634403513529888343610273779568517090684991901530748432361109948841704271776547417754054244709814091225188182860212484898122613279406085301169165641754002355366388766160371652367907306707676072660939680130174507861483776100076855465672437959074895880327150534635982537804748421320621244922389603248558447074941097053318909488304168678479530174590070254941416398313469516155449524531412681820868623920081293426276178187350094786564546225900464112764924331285270512534720572829850440868689822835176585867123450765259817526141499165781163411959054236131640635053675602431925339184472377149973991037033242318312800842808881994224955883785843831609273272116392720801072622312409129675285721638282143232067067043000413914023586476235711081690619961515413751515756032382681285587048874913372146879209429538408891908934874496371586455069748274526227914050923584072225094961054818166505936094925576072218415612634586965120687602348617344954516673380342328974507051212653147721261398802159910163818430487143237709075219172361723061956363993111989259481734460021737318488862904811548735521442441022328340235504853467392718647692830443015081363099685796863207443827181403463157094690504802630387000772584607741813572205591456427067574177569797609159174854163691593739654682367828907871372203735553484744325167435343778334839582596786847205816456755766141247144991506335248360961487026931111943005026877355430174344388928641877926399576171811894014028211409276189148118600206626358919387978503823159617224827153699710210813446207101239273191436415879346039435760003229830358567739651269985716171214620799349661694573139210003428686439008590810231391001297999047252982585046241727229984985396285481652117586054936802818414875581918360436753405295483198018479828674434015834719580383804477289118482016418412563433872272946367202397152501101260449979778347774615250481818958034167588433787746478655025353656785864420988400515566697132549513145970835454089182358043548054790712615059793011683874600134113122548839547431714917356118847635879907710884687046724795907483014160043320893635471468050468261987353295539365866354113487137655221429972239973886507409778455487779882946554544867389962140056299107824366793411941188647921101107163943810167861968631342749705024392685421991177300470454717454989234955164514166126994274257211556128505750880965779453533273924176682421774115069839107300503030648599921842636649203421324732958880895436584482360570793896662843126980375216481636557080536302560754458692912894611385042872923277276418122854671756646322814329425124532380951482373376274081387074730177987477089792697956737539475446984252141133358454058706322769175525686030563982495163857082203518402449895859836125559445441567577397022023083457838506324993267018321065947757470718659209370174178929736700905884849186562444728283614492477778221989273605072239569785645149550087659264088799845467866197049826278726508307821901569211444525097129389067302659237359883664103708628740810207060420133332993652053683306512009170420523415387657414422165678126053189059337891940652950470230410064674965152749892491867258057459002530007619449537332850262558391654517467143186551916605762425433710665799462609079130562352117753600316922567739774194119276545301753964377426621917308062532874227511058183905855618473098237695896174586067879407386598939596399994710788458569538171798288569849678926745119466468206166415938959877728118650027110358130399364416305873656099940890543532140142680412110421510297498516179259304650369567880517150016940596238373448565376285823448693305711641204818385802463465775908454846783490833997323454604718521847957270113549906746296684960466529937335560357213281912408108870086408495169100776176921881646962816772209245994040983290665848683045134360442870591793017487607542289356851340171600366896377301701329843013623600942032141332034640578294414989234705438003974314503821621201663997332531434249691346035261147751914270406400167017393877215831448515290255831698328637885368547368083242339938536351242351302176005692192536598543141021842138077422023957832042008473838269351876359971707769363669562799382801188265023890387041555259183263005961138128279730094445442501346978554414198358454350719994923368853376768713128506699015684680132269225814738202681653856458158760873337260310547022433363177813980147961496681287253107387693949722980894562626660672241059680399333462295489312675071307396042000580121306200070181288279782633052025771478630373155307438511116547727618009397837196686867355027188240878026430732050206644753995587962523811530021685745249573009765253227441478424426295296888751474932195918335723506900930034547960195646141234876079699314170391947598406806705422989205182166581272333819373907045373736574253687292168371811534172699123095813005519154658501236308647945681953446145765709221789963346122110315007821254027755444284286467386396004848859221181243991404434703906925665954707015143885321991442699127352097067502351026271082614723704407795033570071457534794331704541821930912697597075690732465947964101773311178909241624642593711410149185766852974543716201854637393173664960967206363216629701895379698551631317722977179411698508290380624027342516835730558063427021540017952910715088783810646060710296340143119966845765333582471868290538711458424486921957930221839024482056240890030318301400312789142877872592230310361466884395042457083694163655650814165814053475263136584251503796732709300236037130192890840532347867016424934116684907947987274673627597787664478234057100264069302976692599578118814922537471669703562010511664437597904112775326966742834531391863724711496754046002590367221859944139924901186634575566201320435674546114532578696115363370436408781856575477501359791205743625918257817279096830719888464957851689717525925847678152021287561752208447151467357827661475451934664698015122448692896297132979271236131858595512231339356964757160490003554731873461680232025564191357500162926544178687732080508903697236255022723240701688114926365258724667264800874908758294361257937883450005598438007230558212649153474715492082687068156879617486135278912646020681434753326124270232225541136146153421302332539008749950451517425592707051378760651248890798324071892621933988265986605218788577266580273846271157208009999869870094358650448468339506561992870195265060194433895979006580511355941116723071061245328652747822440877097770500357520885373067240643946439687444121118007047131689762627168131803114074451852345825634108688689915818359366294606744511135839324740135765159444501432979037367748714617439642508748499010353510553713803027812031298973577414246435398513496537487138410084561106304390641225968078305045224796161729863276384201440881876415779262508694154194944534332904341102669525461023613713859499631710678710416732378870883433814434666394612119136292190986338688798565042577364412282929414166189607961694764997205464676372228043308751314502020806055163641926985513481683890278668002970548519051539723235609339827750315752122453665498439942067732206279856786686889714408178840545275823170951174498360332718856005269964002970575634387700134695175785199764612690073035689874042700109846704043282917962688360803554026109353398020776894870695457117998343185036678679979316120858892451468033172801878634512967976247406894649803865097976945781502911900967112569185525281779360179395212829782635495279613317415352209711242253950472459429286665990134638859025090476713683070762888375589638658096274276029140710894784183627848557875354738469345706726205465016483174291581648280077033292417505611359375582531823947817627552249174362465660605547570055015908902555840699945064836251407041060043409972020875541738295168553295057029941995911918682256699816083979081399957012917415801502144110880397231636852649429553502715053486588886116533442645161296453280814296592543372482650110649718988633032787437951748217139505944903995015388268368205632324943231098744994259718226211650499247435592635570422428731793645893149735823960065663320641733076475336750081129021111793208646478043376530530425467499050898284301129863183782467426350257218076330870475325507670918825940231714920503932148039584999746931753623954032086785448920150556170560517271047599649711597434625124847568422578852332398643065728996636289267564726875253079721183633728065616942380189339396836087820962217894957209152196688972595905781069341776880752613615232013048764634092270289159062963440282454459713974399467473247760382928811655552176424311076383497430274874460584277927772162006263707367442295528643974684758142422190338736080640946576824329736770160153280723844962921608157389613850878044384278532592102322083469717158061132205994149141108911522385289373006538715751901542795155481666030704421028681561609507613887895171473051203959857196749352684335582390419704984480160609486470341083244529858566308849980591913853224313056654674207671183302080578726063663436189042166526349216071860243052578752808158781581472674504287782150151542166462996364083292536169647579521850144184483892072294703342253004282930346997826679712521328078051322583148808153262006820555210076013051023411132506018495230447167663472748765319027139306119985692678787673768177613386289017964225112390428075049248049382763182485910427293758506777864306161552231225154486201130073758894704532797682409508895877969499149357618326436853658717184095936468048565987589137797543655522372802587582612572654072907377128375264647296347225834624555861287241294339855234671404314830335302195445811774982386463628919449764368092996248923330681458277770068264373952446601974873814385368832854588862998682522989399291619114625083980723513642615015781239160312643679199612678974852506993821969037179639969007288386381754214165234692726146526719589247540463630453648015078595125756901086704721081349332119868063999264397299934887265443274982182800879992154141443370277557062810362452886667749142560050210644315531222215935534949231260756662685558919787721946264948048426537101703577599340439845797658905162054628556109648730602562142703975035495699306233158973171653321876694886882917368199398716652566671714498252609886230832380970317679758342583256048239010581453418193354249617216100445228580077047194168930703051808375754570387974179789644498404123200744751993872574008120183532076910270278960337172260495600672226176497572599805956224304174971076994931214745569712178765480422058206583465786764688335160084769399929157259303439288709779670602426352187384478599179547551907062407913024564617261937781054255066716603567815812247511216981098707330709417292028846098411935401409564243998023226800718786853272958390384058825521351139528173448458365742950461170820095580080125944426716797642698722192739305275230800936864902252788213586788479977470074534873965837593706159775806024144170009849167746855011070799380821919550532882559276427158774986146903829006498576599610943284846308486881332855250213658929033953849667746789971356047156287818451484887176468418003573124880579519411996049968842899210649201204636283803996930858950702711756834146086530458959568191097799885303295845939532598219197995793935415860930326951100527412872944419419724612318611056864876919832656418213478673078453837324110120799751453655934889341385173102241673594865185172010816491508309469732621182732901528431853214038085289104270515003769986657740731555924044136962693185951161138485914985726575857338281441854753917660862025054812373240100926814819883730969373842505323717162475092165756749691257072356621639373929254241476378871090431146930296373248094497407420359158598104223658017426814391848821592655686462270248936221710335060664157901465244984500270666153874939888856540257754554304021877559059793187978182219881163998974015502477597609950264136614733450000552800030249966229212202837328662479115553200725459706693534239859078364039632666896324625925714880674443900660364785675091912431779769219043256523437950700247862401210292661336509768326283227326872512350229499502265071046996800671170289345472679527287268997385388275263623709962701517878990178209625444804484491917607260508412860575093849745729754072999572544362683068135757152605009996638568706217044132061024277025013109142854819965128885382068541794471728446201609714147450513597284457514874082518483352136272334806938996336231528534371758534680254462586647990000187163870339958129859030453033969808522907445166661304836716882687558639319719805361677731847152190620780261438534173547135446129398178368829345092192699018156664030237140539789280661124708514344038861482145522421952914472999640782405629275427810095585174215432624437586430426430606156564891311060699745755918868410571379758107802557406179022347959907252199715337209007055498283889680694738571118729395609744914664464998277481091580989349730977941696538189430496777648998414479141685476046163496352453722633991103179548376155260877170166140768404838652713066366223781101188690980537323859598175585631779655847486463425614209290441988270564584048788221417783222313782100280081131976283882987746833259213615399876988515457068403470715950417075545375256293831119772606227690754078152912323883252306668180283919478531583971885027396688579854646879454270069595384733210910708263456911929025282182324091228250688168467222557479644571372557688371704233658911526840988808567653120359449039857602164504200934163265709848554449647471163061244141595209819916853386972167016155169463791687933000390758810031864901211417871266405185168352889326263505708708314916295720557817870226633390113658564113492040613116708820343827237033035864173363401179788129406437443318329136699502364991438930642889766492000103894736505797047196702903932123492408380253239133384146732066281208363303088675596979028910751378439887586845251171733569058039714368723479597522979377716690988153289898811356298327321556431155060005497176225981314805737215159156019159008442836296527840139456576258345405741560713298740875229593852816194064968835809708178257976617962678875054414968547832571176085894526558244939345056779709951269366913079426356206136459693490522452075804488977675567177866468088744406978182299735909266316735552936055029881559746664428417326854626462901682981520226372361974008211016369045349306097725923718786363608013255897379345455197665411749956602380187038122395654402148083352908940832694839936941181100817302124182741898473592599362300094574130402916235238628122117861810206574232264145747087178044320341906998907359849630096170467885051452914162663901739992795543901105455568197904542827816117233421294784127492329737358782118037432883461827135136057482540619367033950221877443441784229082678964179792185522435512462637675470395583415672576087930321475357372146079995117061043195834930521873240127460954370560564569655539932033614002209685276905841602477914178499799956236310641241109116891707296414664418026036558087890535455437477283178292966866291736465418312761287145769841454738076643862519483583722231047729068634252104205584936860079287971870851323186313775210620239846601688074509909393104035548813357955915689275410467500160272617522383742580801025684923026336081652509291087671793916496988067638419442527918411158662160700442235292934387343348167299599145644833050187995664686243900575191340965090242525862544491614752482778055047582501428237746202878609830953160125792252836456004522981735860815662449615705270810869133801595214534064878147559702356507665003954943699118522114327887883101003224373697525040795738901369945772151079072927855949551290931017900325137026390112084872542582146891457822831387541496116340134953307171302270389797757854149420986472385470845142641879116442353174256396312955839611093397860481463217600863224688694057188839813485145529711811568817061662775882291200214832356703346500319753546031930308794714913941332199817588045098697633955877891201640438069795099816884551584809140892427981033883217847059671113601212279155445781297956926136379025797448010805605259927334801109504323445855855341566147772552764268320028416871211205620224041294542957244454424335756961450066508790272451072467978959692809197356582215244704381022587783366443355545688143635430855350800680868614821596416818898125157409010443050915927652549514014976646935594979299168243815612614401139551086456689787486944748291395637815009427609699972861520653838326527242187609639600672420394326254556521941583025767943310479376061178545050358676822394001174055737163146633347079294136923583134374389716264282995784031698415398785704478284940795584158486429088329116315971283345484856269850213742236054118516699955191032502372825918164954357687282254972923443561473131729089372276183109540734494944642849879277688707833616431853558278364177010620729499224841333639352882868267514384491855440558178758823278742143709222217263616553957754957036346420468246877594734920684963691593283281072082009282242644090874463123104378506992740889163143949019095458276595796581943465755024164018963725107393974978122794100050565200762858183276290586524830449097808776522634262459633129330732951332203164749941909158978859581358467028120858887744801762692000986137439527606546851632975092465051126599063327982005576687729913043604713206379231265375561938668371420038908926380623835459031289431186095480009620113935906187447255098923070571332563890636151340065682477525516495495785128083678911160371875117792557018903968631643028625446429347025047126427652069458785764879485152827127956571020419043233315977908454047872940876511531564648452496215314030919368645377475826792265416905210999250430079481608505361974490514283936005907057195340455361035851414197413567906689487240591205131893915936935332586973544505520729082538937845873098752835372532208077660781554916101032028169595252316459893058862509643571559900521153705076071153754889671526405659958525538665458894201690072058586466968243847569380930635698163544659955246373978508889292453509846040726589833734093565144539191741142089577434553516408950112327320589282468235643501209972701354729502301950468503138514393330895588167077496348472801339225043244732627604684978802360861007603120469810773360727302910541402941195080239083868237623381574192510270851257324332685285182128500264059084616619443818267419269337625554693985512619776166691904222038095865637128990381498891611805164404407513390423059758160278516484969700506876628400558450760878291477619941294234948312870406716016969073617492943453538383981332267499262620905779987295921887921738528666513409146042994193891183900145909341647812627735406851001123848353466343066911675782045228645584773534932729613817076955887305641517090478611767195612123117816039746082793606960822619019897148944563961560017239332353208299489022471989174352835924896436121319143496151887581821496201401882895405718323010713350576994422732841403486624975474733194650913809819019632592010276001112062363859261252913239412593681159115898557059117946616558730993349550482571594893759138691044157690042938392390946988105870348277196086951307824211868929917907728081708341398917284175941397759490120330569744589684820960565639327422934684524742598080112627603888652162942941039144002805874404914129689290415587151552179607913638775155997577894058333789599592266053979135434205909769111944177055565675793105988499612310358991331451100868962784950996989988096819411718562743952296291120038324580810667467526444908234899392165859367898763640942193069174824690944554302272484253142235738617014920689753463650422931237111565628795164813159326374308566325367640775471673761817809674458866797952443212296796045167253329285493425472823573773432301228232419412949242535116531302687680567028109450297488063705854359078742235653805931499654633369614716963326808363451739405895837239531252301016836557226852310895333638309927002432632022989647315186167873659764392722053592539483126989118980962051667064727263844155001734271750469598807441674509951394548701981364099698188438561216865301686295533134958243133252005011095185292173900856614962426110310693258850964094436297281106458957990515912560653165320471364677424786795852336024651820199525470903880041218814062403317651167062578187051288763099430791043521570915013294110964157241492112926528829543820114422903948791808011614574026774396810721088982335686364883340046950956449373947518353477911229482843520155200799613958743543851232488691670243613184911316424809832078884263382700427100759623595435982920478998344917816051022378706538982332221494928103524075227930245082457354385387932301259810132115979006528630607301399665225896894053681277856967586429282278941842926117518279570292565420877214295053857554916750793297839101187789288211725245146434532918632980489130367474529741897352570177141808139143560056891898171582763708148369518838159359564992226324499470607383273414905404469599586270591513120030053670994989738488444622539068656841730516209850269267405019455350398570254962092106761407733146856223588072863292781793694762033678545231736312630927028270196358563609078365463134518837664469624591771209266578867520606116247801521386064974726089175680791048023492454498533620253317164438201435462215171113343570358030860343492574478232172304542472030643152706597535884831518803102275114584425594138622726149537396237891504937759192193010317998720473431894087809951012023292601840971505372220845631972970381840166541519425191971179081379053896089743408082292636477314009436085287739954117318309650572423549150242798072367927418390062742785101014037378508331101982261599381424689559030518679297266430923347364332810256510474919692790730277063461419456203483672719680514751121184929185004014428480150893358783755188939686687079805231823717814381654766600163837719492507578172047293452543459956148845960348682033761804145816641105295388530324013510227145286590950647783797428080698249758116499489143281230760876064572232004204641308801609059053022918444105085548043754587982129734266384382237239951778830279041132275978578934785948090270649236094905713446731966795824287336188175257261316932425042775148067072598167592797035953983190663466688077894017502164125660266128692408389782761983709200306222301662685486148402803767695107919677817082073172689722697642438961929559779074151785508555794324141249478385930602456147402683897589209196983728329535968943063852534415647648607928493511148730732785965348538564872754690037147238886702206688873736557576645246207472348996675021785988827016375571338535817564768205615161437680889470054032943323583762709846721223992871700039100175681884188890125502839594710090941382322576910328407459326335571369032253087541699970921049911111822531660623847509561890531390072433981730986144003265337149707549364585111548414809719920550879652052612110507617200864755235846931638512892661148954326867156142286570735412333263071746138961648167762078149195798348969272455183985981264004182041127647098798984966968664761099614587473469228049863791685409966914489120797730190371515575336340907263017995345827543087950911889475278576467342851749970682268384708491195375104728066526637000909187710007179071713981642842206141824465889422424568529431296480958634517897670071941114302495324763491267731457224393967563009765178089071018980627773419941482990562253228307694281217611424782396234646085057279037448379498063600193983777058490014889823759157083901298328106025319695385762227960459325526311811156276215597256998674461721106521311497831417614630701625931412827404553260166197711143665671624189493445207253336287790851554406369105550835602224879202153818461174841210222006598394279949939965214109105760955232432430017611725583004104553077018924924263569173428414984216926885922855024090438659437863945516751776836659988051658299070998275509070689960516363533627003598654406791280830834320442890427856141171387814967315755137226416656151807032939758575100043968529813525300704114149687477707659473206038177907941517279486423738065685581160555134177196934391344439504018437917433277012300396541625258914435877654665831653833080960200380480698147343381251243369334158805654854869535064754569542364613310664082389445169617049889416844693678201630592105386888105534558740060858023992261941860416993290810072972415054136052013914231882176246141872146457980041515929747072139364959652124933097946531481448235070273607474151362683337106072260897076069141078103626740271457643153794245609702248676342519873767775629804041526173344741381734851402418397286883747897554451845732957689757765134086224133002362606433839781674920257113771840778110830928491615483179035577567981739637233570097972997264981119315233237848878189850863413208438538966633713369420655752118481487837976858202033118739148157938255596058678160863740199789764051233456640520331376050268764233055823778314690469284458188523312243197835737131992668592802687648243303808729121213810164806000017196921912356802222691338087935541485523340154213417495029176514472429113713339442098163318492631522285722073955723626316558095521313792049586525341539480348404614918539865936410718203686195423762520529806381361996979079658247653777925901479091902372789854049703154377421715275948834466734435681662921793625713129969035621333537096328533818432737864437078466720065554210541778119279448157800081624880358339003141271589676817030781419085069893449840669891974488860324944850596135634026435134880224318000398855991672657234364230962497657368003267155133093590493303842637263326449534490467793713470748361619550549668896012814230771434384724156615936369569723302184355608692627267031035759744603881927959774513899154868792890154238528022291565277701301208784556433546541503390679283588234184697668652942237900864072060512413181909901278618747498210392591512746446085390342056733925957680742428043187080301312010056919873261000341790308830188571386623645024866153670324393972539180862484457419877224382857354941961246414152833957456377351896537150618849074719842548992128903102640402121709700472128346348639526521596556215667644098203689886781558513226983354961509007633020168099404658461840799068233726721467210559433832098879613803883405521926644071457542682821816034312627610299243404797177661403263851351738564371234527374873171981861807450200281044245310350903799648448615880597889931000668396545633679896610715509934036221532752139893413481366423002453059072795282098322472083151567213086864037484401176068495302972552481387949896494275799489577113855147010906180170074853950843938487232832459883485133733693365945612878569404314967234833163212221171396051223736830761549607098497894659478607103932430645368606672170654720292750903751753328231024670323678631122914449977350309627959081049950980607061338856390162317579902972723453393943275628249725715799769719213606795210041982025321507228201328638326599027449443502368280577885495834823916981234459662047015005996104721085149425347968284717116774891975436848923054110166415231679420485804548818433604376980969175620519895497670145223191263819360891565551892953351949287372611545615359224153644141455268894494574469509018741463476197330791760014806698051015706779519458952441248247709686326874155104249609313882366586475370270504931677218920785360710098686726050554119263431255498539525202682966922682214160965182367717523132868357031197255008909634648370662209544191067473522196229473673133439335291060745378051995646319244948371303411537478260567369906544962498186577197202959480299943390358806033127548847850630502920999547122663775020531729712635387490822241791693456829386953875266614481459310739506667933646612891590530382122237935559188048043436545391363012078090616426078197585022984365310232675911194238104160203933025788109881848017083223556658376838006639327234105159041858037531238651948051874708308489878780499738280827265901032024128180892139455287790955053500246577141627343209646186792348556080013000465404299788009481619558042055727707821084273033288125298429474642936192683697209730933829441521744625956791324608651567205624899478754645214147131245913832958985070842726388999705646076855145620584062807311249182021453954815729216750379550213289758962376902128702088000678188566266640724916040334964693509625471921401818067208146410163888996262003450673724312809514262506571487051176630842530443480555637918069140828098538922621583138694649703777547584944081121476456067122750616371017465253668256162900365339276093532925373063705350543099286516318013105264352673649732630060982139409778707512752432880856732818069867781329483750673180745464862348439483295436020868079648708278391045761492867051270549243260739126284787688452054672417422270802970148704518147209486789042582527118372160466401655555846121672434096117740777679542695778760855686124002446306248113929076318552324866663513694061880717909289819897532147573179364629488914868854320715798283994688191729098587677204305240851449012193819363958198389423965235352209678267984809566674236197234396306241550152673075624412178158177746271339231352407474884763105070536423973979778960265900766723932039603787849694785781555006491931067587624174874156369304626703016858371119932277958057269264679044998729952973572848152298878444506542975077935119519753917695268025409049782543714231208229567161706325734471355603177136159821350205912028762196078770844653355264812175884103826356800903961741825807327061991828011354308193897539309745218651802941065063593015904403288099822294883647864443408121282654557819846291754940678434992196238580454217006254520748987913608811739061176354213056669330978483646459061754453292686039536385565650888669991405580316129693762510438914680491297162456966039515282255990699668940369108804733947549731889128269129240090270390814933261619181545896427543661678289842842910240285065543738802355891045955636881380435523372475080407520244837395065504764956174340816367144915677086108850952924066767787239584240174977673569981841595768196190166178610334951002312233832248351030570296731056571460527411813528010470547855555553269784045727084896727259014610416583243418916152556942426193838249760134638243683257827924235904328305604075246292374021478611241898924575170175357637308052109777581811456689445326787982566929810974189755785535371257811473103662053095940784749637045812631908388337104915080749701705616417812709676551900138192088900730221653874326905917748899366644318589468782828103128565850456094544936263479133841080185805435198827868604324619806415137325096776433310212523347069892533469976807397933718469279367684301854432033593726511906822995068610079579504693393137007185638774478424907488872818764874776059440512343007150158766627758500541225484601225942028472116481843654638872053655701746921568659946473871008959674979767201485301768420510654908765388638858357415292984998826247626947768978206488685329376287297553486270703484810684932381747551446337986561009571775148142434426525640492242792988903681115039519614427794780379280245584941152246676562836710290273105138068977653617377645377256998715954192760684995887103070709792636598613918827092261079221382019977907682729870048758049696485559622416203882423816972010197190518739243633491486764681268252341060738910235908867808384335498380013573894267802381612485466859991782706559747044960167886595074702972251263944318614655645659728318697160970883579503774812283248739698903231964185320688547793174431868716280368512807610520205737234090555069753480528230163744626710517999846759743976551137440075721404699377070819568663708018823305620018502426796850656411207980999754806336209786654742826970637693002064725128350618491941070012376617742546430434118911370805137541341724317942726743079427007707017017456176758464055216828174104667642836686309936490656176818901100038184797631035244690652690419070685613056158876266239104006866371454312316670218229876725987181513151212529144430006482137471277367023268068191363912320417060724073638165109129551513833335821347134084849666790361689488832705043587706137753594770380784941984997174508758282471547841403998366745354275648291566179817079946796149951328158157464088908075736265704909415098284521735342281478848694478974871810797788804205977063425226871917579430382554858845820651118905247885909113987305476339621578500378711123444569264737556232255605301446489378250494446231373153551938507875500139356784479176534153400023275945887375750177716606929209547584756535804539086836080951020249916278259743369879599497322680489391107510217278838571437502350023050843001344124928987504581290906749268982612358052708328971710720100370123960293658956874498096317726388894894131393088833056756414255691685435901489865854440331006419329433412365273817408352320866100632836631969637937497820438636943343112741449524384663593731266278927725776179093319728887024864087138249549742500130503451733501020565151042815902449767272857796182660876973415873970096137014465886449046791934365035670990327143781201949295670627610657839242078796383526381177323114739306002572262706143902867722797590861731352529114181170210999453726384873660576526500434450242053555099234050238932039736355487568521331079585580132456586527553853041212594503736174557230980572322010649594986584262090957043711986631427470352731970575769380715102572346304884052326839092966923656623270757736659626118120571546034759316599233154124851106732062913391559510948451129646205761923522428456667420143952864187867867878945175368081938772969394802185386639884773046619436957978175389300528591892206321841972445830781332125793311697112385568125024138508687364643270251511737698128567959141370369737618391370152876026786341372959409257928281328088424902630015017251408819037961752417900582820821321392082517035261325896763708922281409396964784213358403422388771490566697301226498672044206746512089162607136104581795559293216557547720727040300756239462175527385626048254752455192123949746444744563924959158096323869090546793655613056511196269719721136846902015662659545369609512136678355550207964609032837405713304800015305710346191024363811564286793680188017567776928851465571760180808689364701341013241064690616586921216829526290582146694069955828061697512451329657318012384301222415826056102043560234936102250053063842139657689016224012950441367098613975540674863680114711795810643015655664101742177228493264940154395076726796474422988526961365216463603881217788139116756546846586175003121220253672518594722351848778771587151477828682274586749071104925359758003864579389943456914279511819381279329267600868064642703724093889671295283919707448535372527491581081617653808431032519469209830299907853376432114620066305310517653640386262169675650641481503830349422559692623560413282081602594526026770030184637466748420349966103924587895519803879544597673558624337212635010874936043326581172424496899650456589942139287324393840092256773150371794343959438080489648015899009890082404277159570816411143749606963946374600722174462445014825702854376780020263422343840352126467980755081504310267664352833371040156402494681991414597672218240379627751730021517560913026697081892088911370708614139612879945612382866170974983881086890180521005182914214223125273862742607229058572898148760310904487788556515467379602795517453767792859644435564788753353924085642373805319252283465540950392281252230992093180313652575243937621543626684437667695927647959988651000456714395470144572777206133043787986699721805065275228423328104112443147880773507610130466669071862790814918309744115211414320739492199553649954916441461030370037419845776219206212587328810729606763533359143272381223413290848833696166693353857751602512489447396465429774269704753765779752534905597602034204356301176435027241427536762800581413288485933007200069963442703807204330640855034754472089640240410457232460593026142316312755651871907403789147580127537789329286417339965602917974322671474338673701935828024524992125742957449721476579442817770662088937270341800217278255354256576269831442845121483654406090351085353122697764606899613394679787235093962870773005526289675310834422859171317921768526685900689010552764852913008045828099443153870709407066219986638389920978131768059721113101036955404125167500595799434477008097954424989621799668905698395016423990285609675553116879116092459473942821287061731091850958892369596425900176397713685457504720839958013716697914619446018998324875975055293695158432411916883698468832406799402616413781122686593887200497157573298671996413277492320862601068202744054561676190054598998691554041927916483998076093364399062911878822727952953774260620290169105616060789305752715357261171118081367318610439472762854826001585872994043455676304308890591990582333320255020416689835518038308939157082759136566284771579108876543647995120124296544016613511849200851525394637899226156454840634437922965823051804430346635470062171763968484940929652612775236911690679061638339426836051040890639332858474147728048506324415261669781624095450309906869152054222887633578860691542155615768070745670822863621177817372398335879644596519448351898774375467511610651106064443127794275379871553187060502072165339873995228500267351013085710090720094011348124316467182561858835709064265985508446813065544995036884972024241498081110350124998194461794526515347084405542672930524964765403788709492094335794204327428245703026225730261712046244141529645639476797518989668822926698528300945561743588169650195423918795054450580046863195435856408985264145585712835096132561432101852272846152535329536884830635804587145378823232092200531905837961983561454135132699372127540778646734026553227896414818448614891877506091406398558821293313788211117393372009085123004161408634867539975154504599457872610614206900241687505733125076464961947909997282649018751002113522074434474219411552877406168617528739525498217148111084314489431972433872502898714988414119869070455262005471746071667598130916022395335622011102189942732452048516583061199238026929847851176381380646956730189946532056048806612069973156298889496102601167534040144412541286165304413022204790882952934433776028764449238777041405054344133743036105113528248827369861170466875040747757327738478516783501475467665890567063061835767619674159004701918399618059540672403927626612486625220232985056569444177621592461425724206727503837322160315639099210789888240013043871819412375470138118051636305256445537047865580835372286225197406102272197475061213366278506930848429708370033534689531229877109583869383077642463698032492545463319557124240821218799148814116710811449001980516103737791548258673586903458559727363344234788151707661668063180373351523039084894486286790362153845923510829193775901844665179931422100409448882513319801097933288961027611627666711425921405435639293346243704627140735467350341579662879192873898359393280263972817035804391289184702720914050682517178432187309167828661467763377801188574147633336763844161944469065613564496289447164614524823266333497872912315424293677808470950601498983406674750452898581557080263165526281729034984248323007684560816049271425598927421171103674810836397520563036419862224342309928751437784957440301459819852898403854725561074145445742247221268439905916873369681406614093146828651668638367501180565071242671137234373690469740220384554462138849197079160313195850384136675127192143827141573816579458338827678622947423692199501996903302458152770687833870624361092000735341719484728719018367853715423062384693479620063599271372532871639578321088426386764339254234353990143924224923490845576425555772501919622269640873458034033265870374723000722930781802454083300668185560430142850669388247460838530001476919269165383530877883969756714833746605184638482006446189260809445985186142172576232320594689983591095482990707920908760442262797288876899179078149867620371497011656102123044832097427635280853554646175108356867104657718064007554969772744501888097923466599195787299472003742217512904497916962655258601280482240920687230492351645230597033133907049628395750441453607102250557338294645126136447352340014644860322800741676345617383911287769591244715554516137851875496969991343281728856743808207177212237909328817124687772892070748059944867566835472402945050030753519018196718880010895387134468716007611035357635582995948997019533288158579863062635612268759030325702828777117226857526226085011759060116849540150784545495418318408028180708346758749605606709507780426447255045544394689290186793946087143421971412879182835755890507425542067979000223568143686916132567501434087752291548761807831628801278166074048979542909391966111029995132983993049667981653405132246754301816790153807122400847788933862268217254666780553553369557976984764405414345968546694056777154089818876683250489678063085660184521829415041346265867210532334480143214409466042955654368715463265953888445479108523574872518876442070506543839718538451824317274019230414446547823776402976885430538634375666832348297169260129340087895026001775859556800651971917920157298533902422811969384167620806685902557555468896607560328937117571328729286734720554295558919710077912553061692919511091391424108160742599086451780196034986251338577762095051574847237782461574264288156546928106479414217345734456277128993675099406841967660022833196738488271107632349406689458832856771373981485408897718569011407003047261731094823184866581628920233687257651163884838923703347793629923471284924306509428016163881389139498833257739869290286692108038863505044039608154149006463734192345399845691753583809908757757330250775014557674268418866493535808323379534475944985528853392766466493498029229260847526570965418190912379613433832408586115289131807027880782358258850368538672550835215225628305918344430512768414048420163160444076163984399678662744659629226150555444093492024139486055223899991755828298759750091285228454789969099574970905819602010261020048411972636174949638533888530765694903764165716442139080439545335168905713572732094023693921752873637150598122668964361118453061459583715035606122910149662033101049242793498178751603689290523060239874627373874778881093073340131337583670952157940100116211017324235273041480040648648715118657793095752716609335491911561367809161321854967175559350655977248391134811040922945709324654020639015794239785388560023448180003992480819178015262750841740785366635829841232277942726044592694830717116691871890546543083621115676846718221396201102843437217023683049069235319980053908486458752413326432693718965005063801321422821550037268768891302897280838330721908980795377346226582899370064248392736245983454387702129872210505848675652469621517856324572733815413099237433569476921025641275198450417760113593368506035262637732979936252058008019909251175180873667686173581932906375890119156655272730594837412871430211337995034166694907327605762617727687816227654407189502456601461561858856711204674749089120385705996901661737064363162582362485252395610122184469694694272826490449879044185677518063074605350794580654233413492446050165761135418511141386080977283395471098108088791371443399574076597287674615320727423871095580830921410716358824755326641402966982943147383363994067254856440641086728141041809606370188667903607125263056025963971079309664549529066863791707814969595622736912173538435052660585389196098990589863919794762855502081326223084127202615403935360605533810585989644862440623805641828570908754785300421301471570418769282225653937466360661576366570104805884492788127999886460859206848350777858534756383640292227625672891911386651054361899396823478602340215868336415372374572695425609051284724879421554755756166483880972085462270741161176626321029555497016504725750958724272837291280744262910251591755213448983354139662154933173434038482599284182105238537687898433694383511647354345040695171940942433870582546039114944769830013237932415585209745316836393218849388000658771865930598004363554997643294143606781226537525997461631667294724158821125344818301308747344740814727025250389473514207483124780155321649525339956782868707979354347651299011853484671734693106617021767635834834297152398948740029330959860874332384309715494949834468258368007773505080182120655431260874328819949142025418575603903664582764454097905433192909300883178028200740419240273068114140200459161375418275137111933335248476647472518569358140473430515263462853681819612010431134191098732040819722562622020510403342988392576507926199259689622587742668454486399357994519132418846501886504305791258550252681816293677125924143109383398465299877759172521675131440713904333357869262004546138663816414455155357081489676124236015166995983481409860206004909111478242415655455884127044220734278563163558524585946983228139211642241610168355476694747604262061131373419072101929561974193992036782763743682992790034009840862316246403448046952654308747382161212731735638097901174469574820977655351567464230226308908628636894047424902172926233322313630437374330998893470223790897451457069631509957328505258383720518582742964181921238063236265470575634051845627140910065615922760752923101291650170454616255755407941276431445295251435694138098781193032621176748612964841272324957152914714933809801475295235413800813897375424984692296007397635815204650994530497933025291719731850407103266271612413881346604919378604837754355357457471441733525513658102874919177737892315054121966900848324390449654723874511955339780509984432861145385747006260468577845492949173193165865702322264645912671279967371348709283446721748299328204316966415211558026934668753970610660618846792500845823729140625995504202956616552844441175760568268104530468679039310056700212888563417495086514291136871764098655044568774502098704707548413608859787997139822190872878258432157856338312852484791201044487122375838369343809575696692263774105348638203702513000519343593895484890815900160188442959328674490363078256330672855727908494219460269065742477369973308865617872628597409058417111175326730972317851695527218826838024774412767404878481380800912098394732344142947536356427443831378876011154240484030095332174515123270985359567293652770533233876880568941924023578626661026596714640190891014891099777894587301924463119748376249138521449812434313787503199213942337669993834211968976585460849625290115378626242613780444322645400915328012841605132565039306956895201409990650310135031421772226781506553157409530258529108738639164554893881838725066846517461551148915249599783303711021992431747437592876092134054312134490393123810682073569552099029602086253037265523792914195995661888258738604446823678930043709619824257925588806926097915142335124667374546381064704432493460721581666867413112699825320060072102832816616903817423750643033435806904454707041169549525258618668860799980274277521894810583126758875005859706791118865978040915818617851252019804497796452105601758553085495299395566335815843811769882618430709543913521706298332448976223191967555912792226928021819438013351936111997442573592057000617717986069386983196857053980408035256531662611465199924630721185770161987893876313846841692991040306634804667601807182410474720119174624588577415056628685081846517983861565058850139375831354519690384171352756101816810442735411299274917881644664463730169610929804324891406168758749034394903560651396978105162560326615133350196193370681634495238862450227838679542199896566630467566340125736646038611743413769698644799815926776131794456611626032219355355285917888919849236679175224157153423520539284305590211524785267686298693430026340005955426806527990392483645852542450790261612913779356057537917358685935284272220108610614338991881235296323981641442097019381430351296975831169402649249195957834172481199045289830804225891605904369311953316126526902425368354682587628022184407176989533692635803618044124080448826137833145580127469046463984284391955666594255729570103969898299398117056013358378759183799250689638811237785728550215255962466492145566866662169874533088833524034784931726084569361096382261368992500050695010708846893269674059570162211591108521839749421741780556348547385396764569976447872377166779879849183579815403224602200810202986473174630730347500883786707097684905748678310747113698968353894507378885572164297829584748686197712980817088150697029704457092893905699826879727866890583676230236423276291564958685457698474371715397660826270054745080663194162312310729496327077902032904568271052818886399270455077826044249514691861812050758237229036785592281467548035161282867865115375019997996974160835497930250295118213592078830101475601556858375264898023111125580749616390588133257462282294544897301413857386850988610152892033941906853631956032360576212342988011160665847342855253838051533446307377710460740498557019116212813342837523791211450202868345440338835512727064139700987932858287418705126493310103954955034321976529130163861458387705421686845064729296811341215297868914843529960920902675418780549117474898883365501599162891129177131859157734610619040883333715126734024149009935974096821301808377273103128415993109443330566854669601985131493562966503165801186799265971562361342539360989851046707730105511593606889960270757139078050705884788952074285331974502851295837807440704784640144892795178301968662606034644895963734704106392820508840616947771201143659136809039974667648950705339577170825056330997312214040430933906960613291834597304965219104073711669049197894698995729499320498683525320318376181310705611348953779227671743683865094721031078479267718338344245828606333313094789312732882661077710299035334706011034170440363805295709411212362726536421179384175432295273251541794883245316272073540715553441433373064416850616179004369681972236671997143263415076574305512403269979076433712476151893357922872124473643298617867439656481430785487465350525445654989407511801903696076080385310133103575398134115629001987753030800447906928353159697640128590433774988658214785925281084526034367511085544453155507860105704855177012373669505500959947798204199735407526469371574881867451280736374439728678540128005313608382283579739158286282895852825377267501890302387613742075424696437658938678086790355176671410747862762317435780926047367718720626261572816167120075454515914003193691411418948754706980239912714106702456854402469524170754212940270167645517821819843930718534254973154904238258228361558069674458368102255394868959726238605681964563770686160342328217888957321216949204828093320267325550411445839168865965049571980492119228590540408082355517809852153490003268790716635069221848523164572441943521117705658540627919554647052163376706515854741923016141812191623303404579741608388069880158139624807583826725397433727285446483226003146892773784241645647799921817500293481430190758945679829921208859546447983795478243621487717240043737320456987724676654978979133130854402650331649803496997327719365270226374707192338653648780606100813586074224850984300025921970780992198398347716562559459985499959507945681580800189000671132678629875438447719032447438092119968291811790660541338740023533425516565664357028442582921431700342828661783265756591326206032937944467948358611433412693094048956840875839361324683810425479327457443232690086430487315314150432532157958823245206064571848180640043116253377489080558562862526941815410417169482338148907076706653068925527576967885353795777437650630058458171957744895188845726741010460934768368018762995074848183951835861329458996054466834219379822784886623414861733607043798782857874935020462558436068969342060292043917659445521109825927377394038087054450190080690577270539151454203800836308632888125821667322239109846892748965288485844027398619914145076929600436844898641641261419364212290335642666732948469805339660148878018916062802897335675877759775505567924076603862142984764614768025381711533873247084321342031966924777107576217640799827367264288052311705089477394239250652169195671581349400166274257491958013548891474254826795517307312957220130465116485942357963775469163967057707875694821230112822552722901502306136484106477947785504923792989391449228829183954337664894481037927817210219858294393441526075391876907645871720211280280558396517765015090728971240193311859962884738686511666124867244968993643362685346148554559421136273653659777845980623401976814121305175429874561236042226785413292170290227406879456995778592667640130634616001701124988389912551541567254718200040763893122202607074345990940362330067406839861485570297570079020417455087891354170387617037508847017924970154640115984454696639119628972799103034821628154741553085767712339116611593304036941251794019766301326124202580031262141004389235048365316862291190333354637403849956107493463502358452045915947308243296007520179859642162560768456752168132113090927890662745143623954151054223017355555219441345155905812532333254188067548398939898404729524478171816996193698308111322930334704445168699799393468681924792728615375856622123051417920091601693618619863499387417720592256535442209010019612886639006509267528304700986401551105407095086423748268622620678665721328471590761815378077149749258338912453507885314759905794930483180660150010110067041694223028844049972593008668029822561466109620232320815659545880736735087581065807691288435108607424410237992946376235202008908864763903993509592810785342200673777622825840743042879836009874415357043582370126247932085360353580604763373611742557036949176969723058078099833198002620111736125059396579467250510416090412798732215325094010438001690475632195386201624922748955345346238708793011653391262203377422277586339070749772389116332283125143760702857250892728617471335472575175528677038146662615195359589356973356611195786576354708954853570850118046603778238264151822930941862516969416321266729157364463378090318016735345564319282436871452211835572733877996521225625052092540894381222948179630738558380637303659483776265590408695824932293642864847687697929181133098714630416904883612304089039668523007994334588596103973216901830861886698491880335389339643132189135294721397609320476668832002847992388977391818323250492513560816336150276216957186955050596362969942318962454105577393090938831479655069948541861448276673977770851179008718668512339198257595330008273712892794690727171163754078784862677453143872198557354287717673134928975970257751479090495348851208519693701046724331691105949759527011422645020429321786998391475491558874940871459991143978452305582007181698637899501357472093227016295631383941808197966082802977479806732409252533506432691047733889725952254443274202148181445439456867948371563362697720862887388488574529574587791172921571969901656069903586593758007908803761485145803577629511429210988740819347022213495675906572350121262958560613941747977832935429401996788310100698997446838308427950177712026010090118163645486724261298582735764341309670935078253091466188794063102440206980607276408744244501050550119842181329713161926791137077549909304902419884292638314108453717358789667875835793093505567202423699431780851934863758151513708143624058286967282933846679229916753499568753147608842013609397582871195268123544504315415374747759904714920493654515612913695062129282219311811399278929254872403105835917306516478172051431553308394375013565007004579631525748487205414794139777366005124459637884979223141170685051162376507708100484459954180782898754503128994408103784816942488403349315324825502593905394688645207557928659839194442836835104197593055273608212559881619095125081708026328476353081239285894522152082003468244455298335031087605273832905587548989465787646697897727339072358289589897567192711023397765627738672493594172342309105915576403800808001990370293574238339499502755905507934537578590475816496124985398502086592214677960589587840302369162116990093289178159896783404620844504899760503608272012221420752187242524354752634184747684050662477881819269348578855826372474861540152902913652937023969615447191591113279184677154009366504771743621815502079593264844507229137961756450171955738006438195575589439399182332761974599705574134683094482587751881595236708572360653036600146602952162751539295140041514018190233471864654105714176533146166122688612622063080591349698991537184732855888810802884837751165142772148344365644974084887374563636366627449220427424967238187388258371222159926571958606864080918169766907849842953154411741701617004056517472991836145810047218675399900492265140158648178018307671241627411640684082316945333424613491221083315371286670304591774851013390413747832257384795744345377737070199811172933011206653438495067708301412683696262430476770017091245616537464883122779970724091247480087570421354785065139309199043182009313550211423511415966038736600234243436587586577019453748723498205424200002883805698387594552046060002300976196589689751227830497408621129125693486313321553838915729983399806015776321941989661271457194473377088097635277914531355598809716769799322901914059573726134323929611960462913435098490926293210043099226444916989796556082701485290478727751524260961079665476312061808907028108361333992281801229675453753884099493502833360589964410179568536760013194219656136983368840801643812377825674269930313081517919065559486061769824268411970720450615191599076375802990320737519972330149672712593859193891804878286015793452491359009655638989912492947031861555142885380748787468596357494107713273134031052797272872917911451794370698886783850181896154699598536538965776953892976034871607768758796055960435577955573671925846123843157497552783383290217438311208931852308622829722422275562780139665666995294710650288582896431076508209834833326717273342227114026743804976013629544012869761703230508164050882333890670166032816136559162873429679115426492533176983139116262314837209639620631019381506739699228576540674075400103881528738671084026502655374062193826225831139232322512217977031632793408690661989548350432903241477614576976549799412140271364787578388640937544215525760252238795276664019029486757970872789683363656154046314152251741345448377222357604557657834397350037475573675476464475128775884452885704626410680449939959306357071926314137141899541470780528328854690366253011937025317266979803667717233736094006327121531618631889093018191890302493625941717877787820902858395388157033271648692688206598669903133817207836905214873774929079863245742180903846067619002821500011470786329532595496845728472806817459199151263887232535433245256533869322681727541606479452085759572133639464881861581841183003121515415908626917283997642780801316790894065534322802451971748809052722552209391433878675222311588214390310694425075299374255113908808421875876951220364194027840119701907841925361153481360532342323252988830533290346306595528262746914637784502097986072451829417780749197651367697023762041502896536368379583129892763353842028266212587632892125965395398109050782257277321233268473838809145863282634165501052300528548002843140538710791320902018351390235033002230293913094119309422284905159746093343957255053288204874984463229136323146113112819541254844960117970304950722002688041872885343179474735292842920951060454768640955522985542083076783550141322728681203374659066182771121589440484345504646780375194762400944017960003367032807796788018442282608528381792465259283228437808995630334797051339942782844938455956804111821343238077274806965607507529901114788560367048931536522810123149020994322107967064554331063234625558829865752145752766677438816824720947632408670921067222755852878850464744712754353986982930290329751537519030342591518457237724744629408914646688372274292761013592389508377464566364524259573163107115260817424662640387309303171779787641807246041561174609406907598621487116999732878484791556739364731958330475960387836387669552816976287168293960750020859750838345155159833954193348158851761243558863279027463796344375210687116779100398350868187216923574292497450671982915006215025735652873609915542979468463950069936537582641868081461362669899485212508494113202685477964504450252138748446319381814341707636378930118481205219639436056992073986123834864029278669326302033601274589464553016497377034351253943759931602860049986264194749178114032421947316999137547636804528171728013257350493924562739899661075668216481052954266213361244399510628972019384187795664566625145438934269442227613218271739432085587593046500959364770312555828369602383954147968518249023394788920258105115942333055096925870766578158411279832984020400104605274552470976856819542401718836865539371202954722688197202761463214335814777964868696467422204107760497501796487983730748639345904464053731430798071254101161784398601881249158398611228629970398356554529003000765233001768658101012242010504061610309357179841661972499108381402561206883863068744618373565134637589831413254010489370250439723536471114745693771757576429165801826896257737082062532409606196837200263741828275306355757110598673871290758390044349229261938788999390612712586148225025933777160259568613069354244496978917457135085930072110440213799994112302727850935835297814930100060607685364868649174897617386767075258233361411494237319298409608287718220426553028352794471454408923538779609467912239570019540644478484695171015529382490762536584330435794661680937786658185717058572471064500712762078844250934501857376834184398576996161522286162605999927089017647767151504208633975455499098167746197518774883583669058888358113150941990371437884679013861410020995777780697374709734794192183031291041468461408526701849343298197215922813707079103437990475067711286356128140489682975064729150755620570202760576867406806343695064398070590279521598310926683998117968729267292434069159455315302251715351792982000110000060633515735048004331163217413745235236767444634370674400158571466191063487367673266180276287058798929099400933911573269231982581037674652317399942771066848217325217740659494542825589744422367126976878606394813447161527815656937252507537147082431318733856493819652961598227485592156910277463092375984589072235330139792687275947447279160415767707655177097903301422543748687300593000528780219536719126020012109994549843173208963106876649783367342764000767356029341649917241331000328263277813927107400159091738874031874230838095295789956031934340912005721505771478612333735488883969789132789199003975397697757936628647995286734484972521273399476662587770757632091484174816330840988057829733593114927746319647785063680765870815707610760278553712329865323896518926862473120074654863135180469934257585378077774442782560284499317983150220512167719833869286952567942087608382887870354759999727853686262583964308500208081606860994914671957583124599829398661409134335787429391026498324362026956186158836967567984195922657134487792850658143903769422782310621222325088075436456542433771749290433372824739533317484181166810373685892555669403581423029016351953378648444733846330081773634496463734849801191464305584405268595256935658556007712450136989338778474290537919580655621035671327564633689112468092501162705815498175160009426926101615380286574770134138841177658750647057391888299350544344263382297088543806078645204163311099079605385383072524683485402527314135644191503359127885613727851781480899451510585294365887881657940388836618120973258910614225634368022719330056132304970041799645497367060495105449629250428509876582349985983837736678789199840873240580641151029600987982736949831803277607384407698998512014372503273895007509960393618738969640333514230261488414755169602986090813458493393839911861647731166888473170804466244173132211392925291806231499155376013576947605499326223203730332934296264665076806364838941445628839304350309823418592366346668300204095128684972342621121468512281544564405853719530042524412130843285749038361931025491367115695228087408875158518908114779759071171797341168264231468667321032486900147252574437956186022130943607564344429282851498183690629501240436411762973637887575599199449285949540636614212256501161104731251829007942849859980284433330030810892924491222287506612103105161171149539118942399192672149294560282752295170715614890759885877683804353888714154642397007454237427173175087155354395055105194084297555991571270127999050130624643015470998349064008782402015320857442319358075626115832693465874185054220049777835470610936076962230942043165079188572241237034160056823361482100961317790631132957037611686862476445496563835304360442346833131300884171788699014496926377745663124394560426632208835308312986772507891119930453630910410464274420362813302898359298590356765124507539074346995470038336472091079234133531162384579300147021909433867762714524629814250102329482648248989373144752397173518085980587489944357932049905244144821066663912025124068881504279737561332055963688762188798334002714332307108089898754695515534715146121490504116863837599715614842917825061286395429914394753506795098911867476690618649808579366488921175982840970423960300890482666460743034907322247906872631001056337998045853398055754001800182073883452885443322647494465156573137219352235941823342029381488508153005690080660263740016945823054194466402386931213097447838604987686420651082250679955928109045441859622398635608988046210830306252703219293715601015635981089478347534822844866749448590596257049886647873972504742144404123315859696965560648551066127860714117983879993085472734086551844102669896650641081147486206196961244024537577140341971094695538800300053173616231530475390343973097884414048708734001761084037876044230365985646756280684477854540097147175004664503837090908312787315532764464298223920059908798969406756472230964105133176238996487213933220496347890513890986681012218806580918408872193884628432604656254551663899679200412430959141095541695676540901248347887997660612454886879270258952061710369309514850113495070431625461233763446667070177613695683037211007105518481525670455989086824398877935443717737570481846394006988122611757132904685506450318426288309311417085701898153813491335166779117865885913958047186794538159158803237730324163241091977319901622785721801446141504409977853092508031044833787995475837243800066924100517254559677289206946946433072550503694295389421342083117199340305063730241033888571789711403466180181271561863166054928186589417186759481246167158305385273355968722247774385888994318738612575180008207478140201680655742412051794208765872998328381836113553719486340527606837972239294506609337494403541503890407178828870049441190702134018814672548458882430476409721815166331606042192910403089770984314732731262259073232119144655137402635527030585112514202367675775286263069903472588505754135308119726226265389836442441883127857301276576707037366741761383822305626052489816620118994669487356648716821834547547379631168678020970384098787003198893682137530309627817315510251837087426036247391301121936912944419109059620725838077040152297332127487601189622964093303483732464653791956125803889693473593813574923057863784098458412673331420181109268909196086739868907652221530310418878578422092965188764431570839955527735176112835114206553695972700421599132190282420907287385628043210421235273336659687320955936444417262476266005449783386072398144217335034714957744771414989538057713770884834380678301357499258615349030407381391289800988242697790991966907431226440667083498258318170232745512175492321293700468881585181579576248197058500304643505486756370448201430364879224359383857353429515350170194407452014958544219542520227293749738865884868009440941001439338815543268678448538305458627523132528001507284599851574178300013263256392868033549312760471789122623096737970375772901317975758474875518793837029402735378705136753666197221685763290238527296041503494454475657478296747539270506167237992766123440537877980311088941905924930760731557423668013169256395845731193936591288816663349151013598806780844999278990891866484887670662873832879109109098925691610509194807246978217357416451932922211424074467886781920251969614829219476918371816315037714894388976063834275150318363133967176936721837440139868426349063897543069841398062503691235567493423368037336085408289350169929253749501921583425446060691384932334451514583907816063155162207490424810087506038700285148651642428750680517467375047581188351958631657849553545694574168569820666259459750021911591117510100845113383725073899935971039449348735789680537888071219050574387760511483496097171537662738846000563234342329816872794232451977047561387284400825076483450922305295190458364619691983290561522894766103387598375560275150340996492410417789635173095266149800853367592172132475436705242458541739025845269350736257740866623563620918168745552239478352047518663867469745641112860482733983805272628269739127187853093715101897869101558624518327202677267145346276842495469331668484940806217355558536696315599592851276260326675196570089301794411467705099085708117260800485542134091145939543221583603688236672215753837034208791060353910534785042119437775431099717161717790854954014282835915679937270358090268608220187858086808956455342277132633423553494617628235457837440744739251640341696063398385652995653773461891801143765770227963031150856332530181996372904746462655410635761880311002487887399018804498516018910554928185666624499748750753341851083160588950483825420802587455340881795334602348542284891005663694715038005524580721547541591458635296442172132984842806121646019011380253684614873638478413016203146805475422353121324480898860958854668925680705840597201592323307413499180910674179819941999822676233087086116974629287319041626434410078752172802171781851369569285077453756042848456383095572890497778599927187803964700080105434826639205604555221464187607803931792812788391353068744484690614006313008736709753708564629025806278822447416685756923348197885533176591601735235817096717557714827137486468001275115981206543609047448756372508385271817825908241835281995804420556112229512672125049983694673494921627273054075920209360471124634180298944888627062371245287088034080827968070687688668617425718032602769036351083971887920061863680992924408444143829104470082167398189620749126189744319165856272715411783831060856440957465099454901164202340768664465078168708824281407623990955650907460740046662124142169660301458262430333510055123708724480053154309857210678829522866437216109069431954892121489665292206415240852955677841795902797063288517517871936374236696377863079799859480348237310242619936953346177955918147441093628657820085431462885394302753284357743490448882031810754224685823896782901344866894759366956151420097745094125411770114356622888622337118252077810828118635154921867133081333613162649401860521364746162199061031542654678101280310976806539289813165205000451611758209271461235417206837377364234485689389751172475456715886229368241423589170588014248391378585114748561254691259885652956989358506216142952387882525589338625529645657729117452170107402292726392190273304814620731477991504153978626634525983888019809366039266500450382136031500700645701268959262309789202467398025280553463724718303260547799107153937701121749614864147126271958203785419714062355821189617200541920507712886429174015524277605808055002628939198971936579335137711714812930256185876647614776281891370803299648196393618311715061511319091123158225048419894100205118914774572872309337309895142856648136207493535435894853327206689316027789695831472004812986442056722381545688882222584635286203868955702447562610203359228935392087165110129295338076588958382823292793587184514767754013396017373305481014869003404145312452038441157172683589607936069605254978600170059171558503391053179461292954507313440489133291652939121652423634559486330619648825453530985845813585032586214550386757015635544869060889133055727833475548027760426860664980364943218621307736350761664034642730630946833025484095641535230859958531493043418609866442357300648931206569296078001039431915692343724535074158027926562717173056298501894070691297712665079130920752376718933340932745488513166507818559285405203166025519299647728660827602751521555021068236529475596634274776602325692609458702510771606321642555217972126995779986211579024602218307840658731005432840933753764846043401338836618977893933522335677756140452172871174831070748532540196325994869562191846903154810639452609167716121292832858859432081720238167548364141945971201160875366055744019997867723246287555595621739358133757793027968574816805008832622053702245388030766615945151295989183235816969662971728153699807177453633233695129909623131505988479634284768389603335552800834967981963671969906976410630223021580726019279579966031452420128619867309038303315309531194984395388392050408357739957219579074081242847697636824585284517538108816888327900987070020107879997442735046126075776508471559884565919077807153317869033209046545213277730608360219270625129772845227447701424366542989849279355801426665806972346404165633706240164910807670960788301997438190451330804021513249787559233952180760716417708403374220371877012488076561034394596113887300676505965851143084165369160327922916905329840250690067011401205111279849639959399233148599240153175700533764102368999501106521386550966223938506245019688815025326305117009752985301453363413292442491828382398008368673743286574389530848565954068239108506416557240275380817050677893112727205355428346904039053828234708157578699448749169364401312610136457991935779841621406273108584523218136433814037693430769163817342272061728736493154111704259935956255099931671629394015088111034442509240656097907477338148332306539262218350137619901558603789660491179515475233924457270815088255741650773417955474790706388845647377694415769709008406209789955644050761880750691009208064207936709166636126731108479112613149548394701958359933292185353492439986644286840398969649527771100673873906052463615933289305859503257509537263587837686446260488350609782896157280369480498249592685992332589219769490380576820155146236399228324904842543548832458476199956257108978633986550813871366369432587131359928980834945456971447354667215212400427361254464917299183836125863782555334133585313655661709919206212801716589060447835937747332109707032036694468870831768176272996856115720677221633352018811515483176656326142396958047192846025474587107619634259685317480164065240540915896779997436316370238548539100336760247822888920071251299929931105138763258573519200022393663179825467755925249639720468634354647914413564501287623843367826808101193254151844052569827444314512658597222496660393251050429326839393222935186203315646551177761375068548048240259227426848037617311299743219622237485699180740508038591810240522515009161647815509980405970938048773138559212066940590197605693576187532888823393550424988923888088368483701370366921251698394678056194002245989333062756061640927503038322543394876056012107078214090789119709086350677152884775808672968037747910925783979323245568154086248174389997669734101380196442616863023533521425196088377786055014059441172706902290028119054744813994555190520623332730862523468671886520224883309137712631016336509947740734017233835278380026235380474778513677099328524904510869793315507147089143306301806865380776476330012338261688102807258327154530897275596856623699485113987857734510833422164371385426904547229273726872615630808397105304575160744030654640955568897018195521556696576299528324610737438276131351092207420105780310661839837279001203068477849884357564526561962395741768248772547666614849728780046442107102798231172879707251311129160916723602235580727277675986160193686067368301303745916469753094895123883045904872596089087557040089554083683018099075406446373124417061330246621842860294036160789936588254984939533805819796681624196901280107420326285531054625826289775155983267067968297575345348391484818344321594003471998215672626916846319939456493645485862560654371785441009732436184801771523721965644043079991090652671643927580053864891412704673447128835057612166319962933911154483781461346714875915471126667684647109277336291091536590750316038962387188153626951288934302406254091899620388226240333479647221258281884830807299428337034633734211491633247207407406352184453424877574334589246335966051785258428680210432580435200616725249018312786161135337308126957065720374015936328856550201020382168849106339976875802800277052502570997322296334171966306429883853378650364902076019514530894644055290521636773530369803085639993341827322628382049874391709899583814533640820593474742748430647868672869257732789592956225268996423854959755660550244212207117392034779886039015913682791091257840731416937012889995665876545967486803656956253455757430342266521810536064754678139618575046013960691752544183416669796475743017862774965771192962900987179792007042445258437739776979269275621368278723458399108948528930012911626079457967265532435875676428297817675128767242562330978062610692611317811480813778682798401767883820747274102611948359454019807641993041934552815763864011349620652763397106530099775013808261625453619791704246654771852481009274395213455920267967444429260021650428894024745516768775220031098780079681724667391524626862797240593659828814827741554692934752117484656541715344321079736580254338216753355323640370749455990943956627148309770303277879150181837691711119561228854622404795124297247163893352960426926439786909424898080408619515483114516819126675196274664957130161003859099001363349837502701624836302153322883834619312973602833248422176710374841039478120829984679818633730361603787170287784611849840070895574026528165322023205937037554381861628017056394204387768082530770122874920498731349438644692544065293431406859985004506066202645540976711631867915107172318552447736570018683699883918872458959514055270447705756434987463936292050856404513143262265024610554923986294295417324849824949776712794340238920047853165522258351266941355015017803728024034438372298274088459991863043253224101038764819756081119166643844243010817566503416634391159529375368666327112968276307725204692876954513738444913105420436594095063032123930002542749121639715481175268127116893220446538620734887576916941433482006553995785790843013713125763570650047757439121894133145449316896886307318075785104490073430486596916596620375439681181842634254467868758254377657026844729030972447645578161253490873303899564648754703270467587843441427608241255352466288178501791982632648782159746723802130831482285492059335284335107680283232300686499635742278354333196211796193270820886135860826971368508197976239810582892054977308421238546089149509077687089390225123955317181656560388642873255703198034599809247033766895949465852031949874982873979052230586363936452396034310281244407782182051581097302962962927494096729196311206795915652557345659289057686513290000285307517312820283291262740627179642942126264481468393225545509736764163983442213744814374889622342961018354020243514631417227357256301183791326027160740210590649979297477200879623571208976964902475030713930110230843870978048983900322234868588350195279495427908423116908326322887159825700444788474944932480232123748889483411590123949205872136555734174398154463168888712416528291424075893023874134867465063238761959825126749487386014474486086525571864451328770409790119726171529025623881772922394979455456827876762564082282373750201491406144555976391176818033760238483623665475533093284523712050685824344730103199758068893867925875402693726521419100012548417350183124254350531139423123873235075304449473714384996071018789941462867063631421382089915809910310594416242462598159199893577276625400057097337233916029259640553246897913500517238915038920784862238803023348685945939273795398693545964882808496493590584362611515079720804575078211116332092687825668029130476775619011785490414117384747863935855052073945557141435946360874430039635055354171206445700087206665467580580202622129899581254577093472037065340243335535740723801756439636726188360861309841359989213097595207811459124972203280801079327033857921169061231485618404251115038113566674144038287660646570562664232905484120318308308796552399998112322528604448468960905320554476268242736497849535808158388253279269482066612536208264422523250598107209800918621161070453824791572415645769259487256965988689442242047167609579915531636890275499104252923210762884056077211320369137648873709864176078508495030481990270702996115520959637259106617680821608843413974102850150467364500800646390409171207331076029072393693335385747587410803188658006930888426223159838646079554709310655057252175165312788087705133914794201555806740106675277710320709330716880322737206359383767874054860167709284160625916224969999362071457275683610811817730591908422215956640632740686375256176251806548327020832779000909988210115993119896001344029637348051700748453678702010659433312370440959654345717659121445341654817131595165051476645735339347969736219573989671642384804294907892985883639965236697852890352919986851580268563242078180130038691973432813379784210791681490779112299657749327060470179304417529003354489003994165701523174152505958086496851391872709723527591981268996170148531677297505160437633325426543757384599094622503701701617110175204230898143922956168004900899613803672349221284314092091168298829744247993070568183405184357140556016903963643620698145374201283271513059598903868321660775266384113160029664651216815819446263124727870131581088685508970678770418985092233788177686610789648860621025160377612010679197616642974562243649510939739964817813438389231586800459449096873756824213936002572193184700996426273017406507842905312801550923962309843981795804334552119660910927416295657668243304350115428023812959539065336942229284078479230727494785431104095516542578794396244346097267719472964234822000120068538983228774535435002324469011092718647096874125563704289228699876708261462875065071610936698365071103504445211753349338464947195259722119610139427120330050336553687706683531969325096877180579964968194209595738301805953076009939611261690116264181187821892167750081194937011042877698539500858989981235283015013246603669875740651890373732337533248452718722318617809226334647044291716985787131929709440696752797058176756935936074702713022420696479845018827335245413123852861749556602488444958741957225728194647583472177768670609041896636217191442590997851454597132790308622619196988272264074430922969126039586989595840681683904455748882781018735533704147590481899145436952736003854610291250644354193871584999775556243983486858464113290868661308665564225927958445846456605494733140718563214964842412533485024509074802714330437942960908840047543767330795908031917639977707652321336992324631126028713642807292111108961977563496911498104177433286968703445474371090589985695705630621617684390469349613613485787789292183759576697171552163937008721812531126155234629149845588613125940372968251595897376519982282996627759440866043660898418247297548220455971091443364462826464569377474276171926228531091849165253319311243833062147682612674114834226898547913532780388701558220855084852904823786915776474483652525822497078387964113457623637788845948352029714213364573601781835516107914098713174623396080299551252054722225093288908628007729383057095957807958676789968835294040973919334925508719006644091414373719216372910860781482109691760770936919466439005736464403202543511826760078085433326130885287679662644631473987116924015550870105502830161644304191087462042283189673504822180078852163756669046927792999272780839674266238396205923663363228558738585952677038810128666746935023404096893780613743168582016459986077744779899560443208378897419188841607744231028559577529367773936659296694551786975927815414691632542517260230828773804455496839401325922540536682000337621439444018668608239759980301072596908760478977800322181316312448554000087318128842870484735444610984963845772517117033871090834459052456254356954942962102216855597002823566032241916077443554859073435961339569212253283957005362582743073218484116970145903065687982088701732593197141556911131547480878860468451552570346108797713012772607538971745725714218879517307138555829163422609275392012066610946061722076428044755053780582448881705549881318577450011563545744326745556145296999878848985377968004842221551196048158567022209611195092203160409552185771000368811270024973310611055703512388011816625787287268574988632254835488995007523542265367845920984092041212680071604741348709321168014540894557348723083681879910441222356898019894465444585810021794216506645032115130796842654990425323551325102010880548579131264627988623227579424329302155668871957991375979773802126272039105262132152944363956745930613037704143454747906377949556810620949067055949702010370831732904808345695577025420415380470521210121984691500492295574684806907286338381865247660264259864926921694163570714460191786997521992394148952424929546660012205966446260516462995258632663337265543893904506963128997832339131495821510906311912020359547349937662854412605881466766217602484451063770155960727341636513491328446244803238266393780847720278463015723246675835127565260142636986990697498840486740408312553425104978101655271937358595608954191185408733122305239460255268956046100230913320477245838374991808053883802171968064255511445828672948385737517835336064596268086451200724747242911933710649618003422917781401783676162280259989880928490520518087466727448986241954732125656353608571091329496909901101765498753067286006419157562753644941231905935319407749626709761657549886353356936023539793556510303958662999670744215852760923699252930216675656284981258387706941118540783114645351689193442830710068711788822124293660834944279671111738119744784873277134899742329563489261667678738943208959595881880585330121700911495733064825980042795732721017064116030775999492460134029200778844619892126359271762758962567371388948439033877774361563824106391233874122779848261891425311011514049010804453869012759925375634253558668786674579522913274847744543196731677626841402865654554798752666493152973787930923117872148651779172543970603524347653114554797563508612617791137569629468318009766949004801931867771887899501041621449837733357220312607421885008693294102001084416042595390287222770357570615970420693777329971367350685810101125784496512924644912237545288181253395434168492015882894189775885184645099846803379315897693958305982381238924846296523137746244952148718951576721715232512599291262488674261374228252290965018780962113091499053267676800439250230541756794072826322340271143451883845530569765157261089325592860698106605492673453087469639427622775099292952982205533769493402433844346015663231838984542852065001872998616004054892335308570277356922139324261365803433716956250340160388828570879985091529725482905513591897843416197350438789234354093468876772273132681116978143085077811535404063687896617350653025080670297006259017030968609293519931227748652775244454089819138933881034728172372711134408901295949356381025802501640476342312448840976167004504606125732532674479275455414533225655582140299490388631356834205166919616924147119099493470261759056859382753227999639216796588798770950593506705388837849925736988378873301040980403254387823236388700177143239358990376841193785008575157990635925998117078773328871244317683967947247118671920345317897002498800305875581557258418738000256911502622018359091562872229400816549529064776713951045219396856200706365331907506134982564643289129833963252640079672266003546065075655198882336981100311346656086950159223091271915279938648736759389705425750407869357127351909199954623075283621666899166811708218174044409617074625264592285650505657799408607964439409778111669382198308606425847275298532106166156251681588002227836087536536400051557342264550842263807720853323826583959159979541439652808300122806733630074644359884284023423453357443508761633707476435945995764254893177432667251921066379089037068550733522287670346403608624145102705650935845314487259785131399858671013993506714705564869934823744377802219331352581908640248446898136187407550200395505398296621506894838418166755450898504881932039108130994067712211499248623249549893054015552077733856330698544340833573447293802832057491911004864626133981412967485318910790854423486889322013690172698195315236425594370232790810135627010823242699128108261784228577059119604146889143028228716940233664969045701134458072192595288599648762638042777380531393091860968159817560357282224112830597150448557733577253504939504847558517298537524122490973729516595146282911924064198762377152610530721647395743702193174619724195409817756279682678259424085570557783738857164528745020020406685871784451907441931532149994171446322881420206004476274627083211561992687810695427396830426569564090893324043403117458720119824451871465476697289734360223440162578409509219735453598887277442771572536599543962407327576869667983562825664924488215094213547881857414871507119944969999703904848623602273419098133854778491036275208212599308367807649769807796167218264613907518285764066544741510154776407067428495160642191728904322133283163096082070756062583042206022220246701983230311334499554910090095013925325878565910315406105842481414784320905860449312814593260387463349388578131193391170990966485062629440357802515264846320692338892174535709691882795264157794348041476714770419822916247348529567079164604115858596027244565110586808538682422173613733412565108753529744619965838154592012445341666819853781346405752927778248082612898315044171483543215689821041415386101900104795273992599835646470407481877776425784123140562761814774839115505527545691269617001159822028832153547251806975515040149690804024462843175032408111511057138685312139941443532902675731613631376939160728951992628498679083029087916833717746587193828443114897471246572242362799530232680871035516184161380201387995154914340898103844689077336448352573143146749728138893866836360894327892175714370006089199227097565055591944984475203825854206898820468124017260906820307654665255417022645898388005268712795136657288648197073368496289481759878203194787477490273923637518450339171777799180858016519625887336691125602565138830984958068747820761412076291261249508110393763899143400784608515869876596813762757838558023038178067911697817668007987161369567402775586827156666119618205023522939578695029675546555510345817766853695042595497320387837452393862329027134120534809459268700527700033948308222361873883806367203777978086457824079437719768237294818373427658059819308979731860770544061512342271552223644804559954373174966578145897574111310962915087262900493151659627836351601577396295402864138351031707289489462932023273463890158313643414990480725159855541154189646622897865632251017512137128833849546713076945359153392260011150743853929817315868694029966606098458958199522480030111632328127322035504928503994704587437785740020028390746688104047845885126982871125226691023818717099204396249639270847863319682995468575585878254639107051025717833508233498610297134904393527204981041873684679566543556687122138387255427255072703967780045053677216505941251124518965251971658622773952654025112344742833754733716226044181485001078578550052518178378202916651785816498992500315761843757284361337737289005522608369910675484667425665809900390745057581387949510015564328136428497756873324146156174896013421268368567573385388896823496406540396299015382447577897263576183664705867214740215792323362119082032916084960932262099366294138950416344468080442237980713387795233969381275130123433693146426064904679430639077102014317693696834843631153512243376761032145049464367455141861343569065475755514658671770317614005804492161461791040653375439876317182141925300707721622966362715780846287645922594418178886010374438267099756549530981079259622698996591439415109916603335159754463332094874966223172878190785596726212900143264979545912752711243307060243601343329015834380964851238813692621881502410610409123285852894794829413354211507627901327751437327554593507269035229653411449101097101253208078677978921825407616393172070651738418701381604439550342209851263163904484402921959675433872256930367004402934680727810969549548100419633986700261264204782246598510095021393286391204766445994615225092171775638270048523714551041922618296155864205652060927302117665802163569319884896220004512258595058427105557789716133362124691522832281354437185510421027906473899203651945914727668694809197666847219215316777218891688770064522853252362112361930926363098585086187513330381176541509304818916289347158557017520545715296705167091503369318905268778461465572413759151535222009688239345729669585220102765049826416570786535272819383510215085099782471240344329535887415902164582875179875188019741693083709071322593920936076685831909743151734919850708995939629015817445640023035080373772646541995686012346916147467010337804678641378758931880487663182540561298834175921439965808759175401948211852734388920389793410597024752722723084004616740080806037304568957188031440937100013051980073845927314257684326945436555316297971951428173451822398848142779692663647453494919436948784977715253352291031766784440862305654567544683779262668219437962574319520311265058988757943814230372667471907677639811555946443605316564038980083566079688182336254967308587606779122656210315453190058350907134255026651992760618543045932111753927291396291031482293066964745124817405423139130943920679575876307188429240397174251696775302811136097460219202589775874358213584085309123884857850263380694483690070876437783133581837003611353145338788697187309045612896145231365468353131749506692686195707114002509072474312284412509572266439564965662579755630587748658544113654084530187426495513558525901222917489256570310294924038923133251173554266988946012722472492891577155369573575189875781585386049149189085156418704795236398997623722735254328002174722700974763403993376015335539687490125575921203523357000938909416190070880140277228699044647991242098034480424610149874685979521080397116971412142720681738718358720977656099495768072375811973461142894706386860043637215038512405813211032880777339735988065696686857411423048203446221884947876512839254144537153543574148023919231661154035320987146226848946359128041082128554130998557295332523017085220470817156016690224460794267403900908776694899126992253396635842485749759653627057693887776175915264076369968485699999320042116744668801693668724452598195339508841981667185974098971697834848218600947377825193415247161585046705229718376809271485177120289946093982358180817826650180675535568614060862522870925438270737463570547478005554367301732030371645995005573264178238773455462917346978332707876034005066953847569842967539565679806365767705325139352294522121910443233389669099308673386058857830171411784607731532012562429053571896398452475140515837027610938560320651101398854582935203010999714078258584944581145770410650508906018509330013169559257307016172059534247750635012694766128118367975365169094577321752402463200652748901892600565572376659830957869715638145206856776114787521233568591598557122087878852511019229790880429552439429573255508087246056069928982310746593244194363077613378988806032523199989931180436973341130168743309215755981182965386887455451702176093522511893378101398858871397898092038814889596291887598108291473929660458487677122504566936532666609141580596792821732195112015631436066785680223401661286943128810554949812897379962220745255800465681418241597673904588746986486082728595506035266829524211374746005130449223450810826632794951755360564549048763318809346003337918011343973508294388509595497925909609044917747134120974976432665241748970834450518110262170589758603270712902910498261962795696942912289951243158948459895242692425376154871701638797624778214547920237783050671663567345199604577707523487704942838595685428670431019950171491397773885743575232779279341707311512612939958940553237175547012370892815679867561518822058966754847666967590977621615426846698675829089327694729412064070076602761732416087540480611766516041499624311607150986946196796265726662788697828262294858505367912012298222528072786313433018294599524714541825277557953022305976597347283745255668696847066691344435139648924588771387344850361839026957104866253132023657798553307554057887677725432927994718679026059865117614724758308093460547691379292665735571600878921524838496657935119496539936349064959153196095315589574524476259226257456305644090828910410409412558288021805952597171726928283951808255297876878985471296505800880648931327453448057591272212863191022912052331168490697417045176510979629126957178351809182482341345594825175679976286144379209922094314999372059265607447298607084722897958328330632918644097035085484907138446813109362640852923164856954183642161557099068459715738483746959535207423646987472527667990199888245179334473031494561501174742459992748590749633658567319854470660819428853512972266921114279023806290192355028772674700401059210047273499056709055252198319153163456889195419502107512293745769511687181850800988238104682246600062510380961382121441775550267258700870228940835647343304026954680448022556293633674485429548825232933877898259655290199245583068123329723546099679605132071359960428414425467772006564760315714274856529187782589974202465349735343188352705833875449708389872759347843345030830471284233871857135123480027724932992136198812619501410161904809597524657905068349691534807554318786034965375978568322126384892704708626160098935897634043827583907165941286302384761189494164285636728118045321547148416483193818340957611369132900884499869318261609514257313786025271083024148636168669451782672542176032155420274404922500459651063788086585639404390783837546218838903983722374448665575927827184764808054859802947544828901875668823667095852918002417837617363669493193044284415441167480651031823094427725865262071316709422626182769010415875694044904756767969492380822747735676168821357628750455808687928007643490944631658030242363506236862376313585978515602814842916382691704410824503301217294974175780435797171909589664667504021608456414051816880455215304586851913223008778118144212534290130813463570774100933781682611674273889466038741607659360733954733826381212464506217312374779789254706769812366078537870862103657783197693902678640037642197702856401131742338148266542552482599522214691609359611256162940665650929095092533987103451267015201170018312371573269789512463379107226058805436150094909773017432081943304162098463011429327520849991327809902928622893456279874632369512599051254234592087541984881441111544213750158332825438260770021750888024794446580656649605529278810529165227775022374073968413765625115502210274479087771637601873145045829676020218912290338543592471131472538779247780609017907278718580899614660668794582036891512161033663967633547128623634021954711533191225450618512156010305553303697510427910477355702051647108633752700461262269200892670131689684371869215429013413971230806237438283329314312579574772297337859953056074998234104257384147519571150443405384993520847548308353285621398010009147561887855984644445393977456010393934211452758600702881382669536902030110227144034942337568020302444667435409099024777771213657770582874383489080565332504392513226441674922158552444567714500841170397109810825226032160691092709279714866210750536321558426276728734977290109351559435239765387180948874925502301911534762374709111401282499332198206059146675241722624546838106019553479697545450480373791041429412502971905457433927363837791247184779399194529021790872094772168317811307934158001774974776612298782155566222707856652083566154937452623116413840074486180206839000335216086973661761321082899930854505477482404461890426024995031683560925466517589380337083718498790855002372030933845905745531334508017483026601856458221747601880631338137556704997988831661379568647144270274304339762683633519790588375964012947592599398659445168160791422216374461660678120513995124502986399130591798528431853844042304441815053125627819514453987927123943747000555738781383902731221026427009243606853942558757829630524302563184283322020815150268128508756772680176225626732901568144552410117839239976159469921322696280461347099701891786020913113668522351596071687404890239257302014092335367118976165584004839479459807230294941917703382742083702393494593399718336611264035447421212730238712110385052790089224412030062572548529693367322460197075484362715340252108273558795830941203017197921454288403636598672912753906733356463526817194175602447138470679960725191400561963337921391487063138015320096909122760591057932063427153616632457234924545832610426961832468004118200178904359622664855440872114682315357560634039708207567502468862831948502358749600318909204353772035362801322984237660870091294996694847448474436681160085040140865395818959555331015106908531655643720503899792413148305502315303852601894519964193914289617320135422550552433230003244455465709347165975753078209406603521001667324127857135416564424316381912856842561466770168610840485727618870543074279874459471168311913717424021447498726512201026236377081489869282912980364032193259853576359250875478777239582261005335591154474927320183669039197366982768908332946882640239656388751544634876400265755014926634437267110291774013879921763662354810649246531633849083669501665015714655378101376608233487556551665329214329080710938844272570528726158515058082792967825460937582154743217311723562664726724403907494854478441363478433549733829125179667372724897461057272944403244283945564272746711813085687982617131099331153684254376582375573495560577356736111350437256254857730699885305389116385738962042591283741020859012742810714052971899769864904033252516885075596819744632264343259230730660837493233816737592228615725958662313607423144945608183054208624268814843176148391034620579452178224647502652023722448687415359079215630075616451572151894302358627607177721237187177571621928344761537377728138872985861309213104586847998481432345999877433131562979962327897787286939314046154941955352195199355245514842375808968489431982609373782334738465776798344576703674032772171997860700659466388564022883620530564815648299687996753642673587370944999586215594078211784703876073734827013898001895449773464949382824984103884775972991183037379921059711289416992063482592692734664048180875705976192087603327572215770341933227944164627059232878246924425579598838320225073560471617773835730397132952295545729806003410607865627192111530661841750911094646233569471373627739699258151201142922616020461374839263272818925927302848831015241688414848114573111337046776467890096168130478402359706285260668102970128069581865509419465417832638420075760551468023368884137994026987306754051686375691015507199641197114492453319510727878594086913266698931925105350063530335399505041989080157566949169220233296877310711976923576461782048564115645139649556614604761456934482585748435959452706799565465276147224803713380064890377754641072930539558438487663669091934411397535433084307302327769326643827890895592873119599508642054474428739526696038485183547339342570385240120084419500434217631079088741920119906213522377792342603465665402500628565701433635572344276572198181892142004679875427328717437021881200056111492122968674088462624898738834129424995954478747035305728837981429391154477078648278406741961044529910187414933273194094185772994797091433557503599966031650807036354024213138341466674941825663575815401117374439723921227097033283655954244748320892942310458132055441338949378875347155794690878195383076276458525428469241449969606833224049675581740543298724961444287235396963300986249593318683824337526864180881055280489113351734569586003829571607887388915791286587731343259137546568476270324653077107332393505479759120780743688875389249493689887591358014187877349228323521090984317613897227178032730488381593851248952967415481211498057781975549917684301662687732838043926048975735455432202609944160465577881294690930495307071835864620832711444544527391610839286713232755382180107142935024949122796224395223504021965088578102078088117152957370819021656421853150009903810942137402439253859423042785219390224394946606008507640424232106845368840126650261244336248660603961051566474212041298968456737096851508190892286598088036201940616908274065104894618303222174115711915239296737444269595231603955104193399396354563776939711289456847412063145545505430556635139923474983433607757828223572202599556571365635104272763862239692591219742485907868239451653927892820900080397231411033404114231746713133000393760839939389644021667035566868729044389203436987400200768425108596449156137465363987403856884714874871603190116605058935077835754040725718776433225557515711622840371100474667176461188803428080955061719391452723172305941056988432190442593373288158358691454219235125289455649240429166533312367426309269403957475182345435479112651770666851943200161224189357947060389071524530754823164333609373404964153148438338933537839110323982028366645842029850647631190990153644456220525560367879886181086078143030593344810169357005177666682187467153895324472151005587355701775974410722182256950980539811132882004555849223469079040423732702931831587764800809852963900346862776040605773149639352050111636842847535451065075772649285598847091929335746006704674484344188315080579709515825069669915065459802842403434932293160091812989779094491627049767177717919698489128743566091849808804892427079265760517290798076028526511703333563140481014853099485811188496651093924793208231566437221961693822271423382593785544051848569609208538336987345500453848461173971800157978875059941565065220399554271564812826695997168689714878905982001986356287871588889266178213594124272929955963502775133058488899361997254903933280953102550787602098278233232430273411396640157220391814969939305497438088596910702198624481084140692258545142227707681712036788858238885465596059160608970126049081137511766263190157005849153956257264009200024411793943965079714807753616923277625605698759283144905547181963998059471046686568817421417034550538249146279752195786259900242544866887360872391940377541501612192230122299782812545330114119422054129727206064168289571358709720902762788220676285051604570620475904889484952014383754654684599784388284303514842060132837085775548854936766438836052394882128862980573364560247017646995953096128926730348568869374807969922601331490510520866137064991464813941316783232704803594004549299298704097586266173209265401245395867720794051013887250147485445118170488375035386167736493366378259571283939194639887138272974233301332961806164547295343592358062049359823278939298045897365875671515631899641867266671438327393226078069026278627278087366113550397945531471815316369038291866549235585357421127914016533462417301620434419423159119778025689377605239821038544363539167953334030363558768656350013792036692114342165505737019483011669540998676995101740576986554491632921845076997385534770981045207684493856107017474108286223004442192564961035250871133722541364622470830333383684859271400136010638179856532614990432455196287285132393307393113961432820442827003747139892412042606765291850983818902025198867817483801089109499143741452334049761965881504407667400147255504057026174278182761241823379662392996808915573338409668752835342149827454362574387048105686631962655801241221074230416823736339269637729762034092732035300582516302943361361979375461998099317649399418976849691242851119035090967111325641884174995293667917679335716157178620791522805036166269213975712920585427687924976864733331175433886493438998836551845208911826797026936711641464417607270389804600861498131569295735172075471146006808494404222675696397942330377577531489823832778116251696561003925577049516262910521955343812385139346324218431274354582291221762528872599340044360105143104530143605989046200976604382323183671633511283683501786897036585332823832236915315130393069634475548023561200591326657703651274076045583237712152705503107218714564913003128050906033016186439208678522391601139753789921237403421183478468381820505142555614431974378435422058835252164069975434129604946086479965049920503042155874363173231687669569929072265537720751770184387684324558503522508367510674925152630755197210657340845175448876621683958281960085984146786565835907919962206655372426726980497031257275698431291234111135970350166755741309033862883197130652362300595799746304888126491823572774770095301940786563174846351164129054228792763355283666054305483368281204623355268193125194260709904788545331647762628823028884104431886635382085490646485576646801645971979149229808213481702070735194494536808901546017283947406944324663488905296821561218667244800149050237356007744836128941474755382752021815529122151583300508624833725398910376060695757239066461879215771831034692858810898053672142670814294361119385166821188713596943882664377479768134251035004898372031683945373277375328486366814500855236283973281369042687588265325426434696227022248131982090579500261502505665045437766926723797046579973208758339756199553877895077998272410959752729166184599196222478499185625808040706242323637933673859434980447115279487022850637045703623396118474828514875758800146351779967935414148394030481171242306933242737314940551053687394631242885406954043476687088434843253215975328045849640621984164413628104204710918859031470519781233937207627316312076186028863574644473948615595307137940393094750648602604698016468561324957575000685290997582924026070931217459497882222964927271164327228571709983925238331341997682707781187921475846896978955805391831135565093165408869257210598076606427805868684787234300143966882008354824788585613161948668603689920445744170897011647996843771356037759227099999423217437677304612573834527560425172529478713842826038793834077378287891459501368225588532016663537112147956470013599987221424351164681195029710093767493410762795947414614423666086824143107158032974618507479856699890257396847033660929775735159555163775395138951363271607631671723022945305259902018992238498700081759026201250269638291608669922234319390213729253223522603430356849707320043897678847307849132744819891773311647547396568956475091924147802259892046593931711245751084122042610275262495139493583955286021074271961718780760900317827569234990535012550707409481825034808541916814982437060329053100921294774647180727946850502179506126943112791987206147143152240217741271533281098240856029145118170006680842468549174881264320912405625580801559457180508394909349977936627381909996244672747953948011433176736790650169396157331895435241997548534592734529658674498550510176042990410624283825819166410815000981110955290022250246456261844897114976153747450333148729747585576885601560974216019912151024127002713031001691752824812803157954065437419155626955816002471545964366912984249751635002433287689893701297516536123553001518855732929542672696446792135130587677325463872073140194520245176906127415429838006651577098894803013578172122081961485775538690509121471491050142437154739088143899682651606202941416452135801352393846611162104126761663107932439253640459481976596107214289651527698272478768913410425319636544608457842967102794970450617983134326369235663216406010609304819023237938405599407167041085942743310484132295117404159933683816552078120155850113468545730266728811416566057207798108037573736671071099125853427925207795395268879849535698385613430149766849561272560338810938786873152010673438464407094822637216388382564820076516027047434070126934231183426936226186786769263612163599087632263639138296589679584483014393055182154758252193377725819056532252920775430253344372851696645927226397132340696950248981048050478909413534643306492694248187694109214164086740148488107917786481213160528470738596122518029095325456864873957702950533730448841147293347186353763873820694533729283769830239990837410485356302627648704057050470568394451061053637696941091138924618855292865104160980574983543371432880524649602584034114443674225965661329065017013764863299395416220238137549893488851583996436020228151040512774741724382243667380783548690547778202256781697186158342777503259668275316406370671051422712421674251314895529114521788861478130606264442958895046994415694052591205917982259349087002257774734538258306124979119299893992826313830881431341275396617277449357993078390108748868167258880412290902462039093716134585907370517117705504913944901468043900821764631847183534437974351495766186148016384491300103212971136346856339466779618225397764828956044619823373311994579252143553837390907695004394338789986066778650751873476199083319572271241439755700144006416419322680282876533398675747543345181317614294487300817780660808678800866550221549332844557147346912510272471556009494288505485259481499262260057578553008160864975997137608401348633916732246303384742471251710426316267252494190057178598740253670335035891554678502978060089217583793699413395241532419478552610217210388823288989921076608310861546778331452037422691669965597970221789280187791815923431376945179266391872025644540090162641569958667894193315161707390318658591008961035194733637796894391435913719401161306244039874418369736346303806201037827377615684261747292497081271027234057587847158399442268012210939635397193637890079014174362949503042813582515983563724389831769266488369157722585160400978492752689441539402109699920539755600071975294143474477147377324550007760411088448782918040062216723378251047897058028305436262259337868819739489716883170148031209523514643236452218657149375595775346741544242332615820739950982029402388600637774322647556486279791581989141521273471038124620105473655929301966280913250876012661893483717379265861081334202591196403603673361912992629331594916572047340234096575611265412489294974937834007950609341560707187128815361928704343171887984393069805585689781415778174643450100201910646741297067180788651710784249101476173634503466216348465038945244497185339669888976473831685997186241166798380925920490855760342275768481594557206789231158720083097971733911434499365890796135859334427242230280741875138881754497295520677417361254911889563646107826577779236041812274636478623082373486004658107582692788833088714848024301978000038099366477026496396563105691312325597649344980170131230734032729509327887635987608758313044638481050810946514903605205450051815947149712747557708020282337323285376077006352363785048372655973153434794033953971563264326332582969486816512436350756001535155222703399134053002351604572498831220757400941826390137458075499731259732032660695002362302869786449755683487716572371195463167583813051593482607578456026228627927361904947000355602272881154796396905447135162648437644702466202224406611071717399463306049643819213856775399733790153514695515457146240926022711744630456485426755127184289232839376346846728208861826940070701048701623246145610791236719047503541054562837118327969115680522619024106643143114386159556181204222112018973162556902066073845771418702547065423082342761139142280124827406830204024604463715074490844334784468759389557943206711430625087018494640320452507632371375334126653824114239828570242441813986612700195281534873452244576725823823831670375267723148787247747099180586863463792119199989223057914043393727464778714184025688702453423594179402620207328210444385754846989564020206359596092391117810788436972888928477205921183308928011681718539442524825095602764079854318590787364004981073390715636128786238094506334048853706157858479762208356764936999860758012335266115955507079050639465118870779700913866327574264399073716004809447738430410018957041752097579444571890764673105662078410568482780112776404119157487766127936751476327683522512730501459053565354275178872708969440577718536921722076753666573372224687616325848306362651937942614170807723483666451496458294062710500706065147256709293262572985812878223854841040290812118536752064414481144056403424355839071025278760730639289443385456851778223514743955602642721304537023991959196628708724727891248554352926692758678868494457969101661334753606860502116173049365307507159143837072832756119326889341246370158264849643649094608947600633744436750995811951951283339219626515048402916289208143692807242803832945166872276486518422524178556069465065262304605664035049679218240243103554323335064367747563400615340172567719316748185462896581772359332873126432990057982344647343760897348977622659565409889244070950834811410877345539467250885282082678707504584700743177603357476854035219598247158890698790041304982167921419607693213308235736115619522693224178064174552326518917284301483839784363874589145791995833021471497566767715431784118325849358564314438860095340032140215822729028552569853670971395825808651816355605946489895286164105334848254681303943336009299722412596504482839053217605692704280366550770552046747012325747638005235652704814080748184555563267940079840986930298582223753226719667331272753135797637900728388099167468456011331179962773548836648431486567990197035426244459643731348248127388623373818228610060595134863078883612492760962146989383337826701643109924582765506584241400378754962706902424868291592813590573481944749054416207080660220080392415150147958975278279605038589851820200765822198299531202194797724279326616590722161019712242793911138965841997266218100189672733576422632371234925158038999040877267135422449835601949648835512900715279285491000282686453954821825260671707566841388039768631673434999988069043409652255502563314305952555888410860240850947919647202798133774216596996385793740915877750205412128437370916715097356467960904514374293200622717254629571393053760047563104529665524100323530001641688273067917490273315378008040949909641492348290415613383783433563199746639471609137185002248023402923110509388216868412792438128171106528281717969699621355100706336031736796816021464803383098702511242177476598372599665099681853701855952818785325346200903704480356737417873553842687611782090119202056084475691304508270445101716408010962176645358887908721324915436521451538170227618325672212884168299054404049738892287741265849070359978393489368776262023271700555167285931651968170311059868949929210642835869147605586521449281049113840048297597115378629815859085174243839761808127863337449318252043540827664657527072587607966782095054470094022260166269335925729669213295468192111142432432989830657984663366446584545353691467075907237592866347870627684121582549572666490195414719292930211491871771438421411232820153149236519275468648066659544409932998726594731137606629557807557801689067937171741191773323039679496109574848565206331624929493995993992353861304988803185763019323936372688428504492753575661865397979749223073115459806609958071720703114187147315972677166880940501298845148741282881103988001252999206410170912925823924963524486577373708062334619565072539414698062252214060287840898736715968095335461832151294695440406749201311457955869950420317177165175925686489823303825386966520931655748828440825549691419424653087548142686884299058943272329412298178360826827500921439894880198360555252863312868116757155198467815013793696113290823147855068251471429886101364521591835867027973117000793944088108501630858621529618158769237826513416753810776114425838998608886849814099717373174729727110260874539384239240910698392547089175702055996628390348021924064534969728543188544557564569773876060144552582550674744899628757034505731392776291042081395447525376124106163447896871399954033286789394298098615620165336637606352642255622070311889385957613076721101283457226584650590901423021246736783183442405576175178608452608915086371538002659737589983463794264494331497705907634579423381670723983749502063459544017936580638951818170071579222047297744692098406434977679252134736472958059784596941017978263514186833258729858287656476138332582509340513360257935853508534142963213874964615767248388643059901839184890874716220453481806092906702444814970586265447663137661392116488807639810820484969833299424279680052030902877915643262960414315356305472976223424213375067766907285354696331399132298611768107446368674515672623224396346650507922020943009796826896316190410911416220546825750083204255480806531156312573291602465741747429153679470354234379288211941121803856108335891044265231409970053048625798433582621836312099647358714455438818708777636643715054943719028752364148088500397987422656088465330523329494239821614515573102454854325529289465336852586413789912430257447677753006896864811917661908065606214895944743851455305814586613008154579684941005895174560823572848481572192457621846424803224733715967084379801943344244048679457310242504127637521977435473173003935823888791252436239776336725007083937815174678184030951609892812926023753092169851511800722834275688653492048347257977979945354229608732645687962486347415209432031980950943850166014446093869468340545799555257256607334072689860980243775292387784259174826944119948958496295922423574850108139269340808964199294591887789940507323475174322823462875456049395109937691092737951029295746266280381399236968941808231243872605177876837083804298873404103643445693586114174247201530499192389823664688594926337921893897188246087600909231580846042188855698878393253324211786953553352679394121849478790268489152720852468900646268693036093247887126985516426235707696979000593447515164919577559308510664510934786638111125256218775166788634267994627739226990896520830632069787655403223068998096012977924331726605801025126499204244326632345325788791467490859258978214632638480561483928462290661560207812874159727866654316247587510484268043031089894042676349885163843752422486614286176306991008229286740038335192212228141713871080816777337710126536247009467057273380859790450580593002070638967123653629176031865064814290817871321698195933928928331076268279657313000061195863962650605087086532722550196622879609414784035789999100272578182177005645463515844903944647216464769361249348082645137352829750835143350279897603893691795418144864144510215895101488797063106367876465362094020739806607917175304625032860488574165498614512226435015682122849600896857553213278223771148044984999437180775528882853922491117633437004491395790476313076795415646393809046866156471183655429395757712050748488652777632574379853577262897821201168060515874074048470964950556418124327998077298076665188078459235159471035931760181136105395030847862936353624865016739304600802548427841313127856105334530003043514384945793234485726072998089951262690658009754381994517373462222453057163200951599358863168893334525854681242936051037519247915658691896435031344231041241302677313174145927707254237269573190280336465721982684903159674696764073930542957347990091275589707935042108243222614040257120133410773631259094350107740979743136238405702474584559591997500864634207911331936833170003989362341215658641784002069242652794113663186923133460188194498814341208532246845097909253488546106135899690500264692951173040137584420607021313263767248547699487000127457760274466011263159514795089450597776578957997520557438555018211812725580417588812811318702685753182045662692408278328646481319705538794941850984807271566408891173929186966531849741872518580480971455395276495409085678060563323420967579443998061422262604397593445832801497672703008903810328711885501708602386129505414566491782219355201904059696041483569846085213874534168654776041926022830565659025256730599783309344757474468131692897981275276349796802215514613489928961385527126053271183487329763132002856817436943282123469252211558478717612863561373709449110076789004634293845632200903813143890185883238025685032028778985160010610347114486569238010252104431990319909317513119015643498763820286380168087902484898851104161275003323101597380110818480905771562940388219221067863309816446488155766917024236906932020746994582657384214625081493800626574489319145606759223517988769051655635934673225003591448471341615018127791775450064945590595307240315215980350184323764306298402229739893889875465290556214980436902414600346771112271553738208134385833180073929165162182443833992661241156419506430504321443661525318548883198725595485085702902648784675420506570856763086720871712461767386158241973413762436071257963886966082066789029169319266666626733120056644882714410553235092201908411225117148368494543841759797398782503117961209068971625101513186933472386376453742321275332662128322093102024268028764026516419971788257468265416540016604874775343652382022282768322485540056110306859515443995239109075295695634100013540073533959431192758675258422742936783232422486454384554362854417117519148654183662530362787734306737170841610285284085858347978249254668234274513595150781491555696803765770201980313409574633216002025132072690069618056269433620767845958328946027052276370623327841333464952641126474801620498776552672581713613744948346869164706146697946174148690660520744479412968206733630730099445108178966065776899806785538750493441389458631847517506526898906844306637351424176646704825960726474736122106815564513915405656855550809502906128943664698645394799405869128238881182057579672928020469902434486697603668810774147842239359212031686775019816064740465367485647728970961055342740767280175501878128272909179325976645049606938426787911293678174713945585564954404607739725408645196473483461758857362678383743755545997101257039291837094746932714925965547790443414364039814910205000528246578705376389742716136433303377324115687239536305530531107826653576976717043849622653326902581180830513394678422856575451243075627171660324090767622267305669146890233060554311753906687465280555058654486067453737465242460837923156231135976854650456237619760021078412444071578687971891527336646326905627982954967114159266820978963430352406725923554219662199504746884268559708804671688606254049965000782623669487222231144216721911444226572455379426775454254240056449246651424739341871319366839866209197035567394135802781262162763510553834360383715281289907948779500238036865182266665489099080165987987248992055245683232268359121482333948244086249983029947451616544651523614192435194468087125477025100705742250686456126315378679098792309067984930527044232134628659997037978619442551412227665586247290580902050949775332163688517831445053630530367671236598484552941228178209821597202913744339490560136812966350737369438902613113264566178144521994091576283358948123743379050619866271402624906559853575479681435172965774862910493603520616654736650108354156057757744318596435474423078363860574273510403946539288841799637582139330757518771583097076022420327797571866015867273127597311240298951623621424336882538925611449583984443288030721110260977188296364660824728485879232634280660362986861351024923982386012842134673564219247017226300935774781878798754603495608350104768626042957891655477728696229913187432536376061709026188464404701539388552960873467429319707103325513492811241741633525797828339718182335671485474345399077302393404155143867974047456755010675116924043437882173641303292263576054402815568515263000081101804822111104714275391768119128297925899886072499424729903965819228929542117155717770867928364809320986725419037678729999273912942206044712157348153640326079799049040161993994904697780936941810598972896026463234921879961984170399373473234600177509417589626736478531971437377976129046544934520848465620503269515858153864627435386696358078175738669609684843456592062408703785201211563114818762199678143844549111039720125993074489784736335020807776461047535945974546862406785602479096092607279789731084336057949873632995858898709551505282261355899135302307949030179025735301269587471850598016138622189213249047489935704377105866790351820308960753594453440191150121980408783111666130525443413794708891831112515265363965809072625050909487542062919063507190865881287688450412915985442993206150235416093635512053239270068355125986727865634709507945997330789813080192679459842953353413453216668632250483563549410425120853895853324905522187933240353091410732870632469025581864125669648910918967527225588547267235654827748566363743969581693662091090744244580629984862120467705448800872174412105721819016518558388775184652308523369239470520160392462152454289076177959690000730223712175744852549141017091871706694294129159849739628969905835160715375102909601211221507323624924107859941041246513477386676738127005265098333188167180548563814366140398991859818966018578001619377765831064062801167110155238327922760255226493482473485965253944235523333259014056345337616167735847773343070422647861573932906160207470662505775180556829810725354576919132674638626226468360411167361273821494093334709180575538513627184444102755268363768141454613709219816753900847933745418744636431238666595562387163097422027861662607220694218591214296923535653622607096264140602181567927091609866440720456620303699864513439740208936279048497053600184715066344186801563205967092743269953625349830757938582690683942922991922744284315482626035558900140578416102976490920911964933839349697461806772220862551175102487908204888364619687743058912201048216976013240899788616627879533724566162289234118120916382473532385682770442707219335446961772848207724855813660262940483424290359314156799935251111989239206889462765728981215285639451447781860208671880876388583585754735368336076001924508546010936457591662541931292019885103763008049563922442017110134921239102719501936323549425396068545410965342719937443836354707758541723614923124124516700026921940359190357860526534013161832668372742081011635544293229000383585126873433082883585283960944537294142245080659240505917446943792358680522730757339013747991056800088257549096290936790116941558871324651917810398258154078173012077439270922872031306437985540434713506731122919835795582757808688214870834752310046586345367875156680551781911572732191832506437186778982008615771124613334340985394571381890802032313230628724114172812845105271491391193939855976624909534628178358184777273673950749533969224723137774797897480608342438339117556382777103830661562955544839506760145455629350614112116869836063687380022449508966723092877795571797400053574384074536255265022841999910782733548040490962230847764382116397911167771357988149025736393581937533250434988342879565909347735791998540301095874207201600261455036102089375487736424148154751658387608841841287320833375380721684911111156794389926194428652742369836186734351518613966008731276677075424097090119693067047989785999498605022991802904126191265874167226539590849328272704844526727133466119544344363880543804165085831881740749024852978503813711008988928371736661810424018474115102002236269840261933871013485671467720507407659495009891185920485245313948613646067188809998892029829009395135033420695251406553495812547621025041403026329923269381487284255943511833522776485674812440171268580573989488294396052242437120690751183655498818883542453695806258756400913843154783103768237332251951495252563798693639249591241229189533471411311568776572356871439850087204638404132876162965555074638376129492880102080453080371295124255364434642305945654962427054037385227787525533256584020232127951889718601009457472989107444670948338534665485613357848091990403229632764812503664000022910258115713899999419601436077896117824442209111725677353673393821638476440248660478368489246290714886273467676336480174319525834047204417411264676146391146786340544630136746765499736811842642201867589175136152253313745007577909281147139560477530781876917626962977298082525927095886811499891878514984474048415644590567018911919712043878805291141334300504387171208962660571577236288225782413502299247110495736909347344221815098885096614226001925537695627719434572951647214492208039878269778167066278501916922794172551125749625917330984864448938447184090480029639027822036362401955988594093597403050347576129590438356340040656993404222568207543437786947692373820841010568730025314655815005722211957940256046600074163320459659531490026825280254223958621974134487797092216556927020772299994921231030566350762712751471469657935868819517594411745084768499750778127425383262904974421803720490612789949265048768055009427020347964925374049220696557468056495271792704129408935072712128272368739836294696984548865435755008571868749006557913319540002148166696248412744215158282346782750269729171484060152593415575338304225629747358057028428306672564104884730902716407835243698601054156181627013966499514614191751274943782901046688762642125085456297541428270809867828564204186168425781980193575220549258782578876540883490830049951625652755221983060311100568776701139389845387224173629938530707325937533756215313705501310233660470839500674114312904005819950520482015856315354602894114566615631116018098273879033208503926618239219877828682745498001722472699611976306176045786274556479759427277518633596937013230943026708983579775814243173851906203595837318597671077684942994789657859815073738308028514559264858115609079109476806081675974374713196451801502276367035773007491351588631936999206409093334736181763856918992819691622556999849965308802759637517554224578643844510810989432779253509752541975654602336140583365758948285079182983436201455397331553496782997398707694352911033621505144629036080183076138967889986486118551695129356061185376197825061446458019537207718170788713544054369126188089541175994324828442787220138859835158412243597839892878697575341772020328739463119427135666445663110615596817413773500859354538785858852777830398424721622456922962088204382870356253856823560911982316375691682011972235571492691070155572979059150687817155588788515826662393479851970422115292446655696518110991075601918403704001684498278127945860930339826542832880161319912448472533291992357808107876584278949550441838443363736315572719608497649814648597398178286786307754449445975444008712353219480267946768603851708084446431150952313798244104365351592012145811508698689440836823960586988450959620088404302221333164121230666461083248941441161435393023849202053985386414820598827464437387869514132008882140750773606474836799537254081881507486086236627991198429065315207699204709875634829572668684203378582101383325446745113772282976798462058537585089640649746736060202478426309108811750541992269022378718834843254677959863442742175880015079156527793992260146056850413314775197025874883136281316871322272118702153232298956687740077960931030913974826677631456234712417723724831259518856676400545809685922359563950180655513796216213225282118804590858816624770101064500755766925655392866941732110603476991219696821633976418673470328643867734337249140583811700867838508531998886808333023988398797120429718196786624280763994188650415840580429000270124492882872666587733031528888142583758532738994307805485267807220567824614073604768329290222058117376184565836161871309020066076023794366097836855515501370239154243574387635249572179755474823920079822791633408721208549749680242499982565281577431781399734868156856061814892045499276897303484030372489754840062513611536856912632567871507861379965023118992359488086593986968675922892738138860371212458957872697658376701736049932321707872578164464230075417284711618914614960350114337253229517647798617610729773800374392315503265130069751101993877842320731634535495009625274562693212431222649599251053347329125438530192968078738336106527420442858985294941997587149694154924401623898991969588343991364254508174065583548583899263802710393599006540953633287859837899059949650483928585745238209139048865080149851149778944491640777344500826559204467273171785718842777117336116250961387427265014107252649407431898380899927142010351330375292379381128067081785004495038923250152149781708380743315947973208667013581420586699820859981656382888445417499595361407264276182500738127393846392248663426548619027839703418202565371058123788208711406806002645695599582835115209396075051365686034598211041619926119492895611132999158807982723105598971124433954179026310772778688440267758251445466146208325734702773937772608073238924738029057160836494230450065030259772209967455603164554212603236866515268374735442955602731664886244179935873808075750543852362363400711750179550200817353742436046479678188993784183401029050110212701193133895896343422203749572790271082444568892402775793421648174918677574006359381890493353912565556096687258283630455264867139138805478163360719465353217693482569079264584976353154569856636395577700795917040366309044872699622403143450868095099893511027288304922840366250512569032626346943469814704933237469426435072545300946723994375077027586588864215805167084061374337744929497022129336098173351841565121881178022069314079474068944488556007061718514906309386348794214834398326363443701054501437804125764914682252496434858602714704260796419045439020787618463841302888081377525627657205781258201223158752656715711250636659386972162846491193582630194732610473109319856226466478171067897438556445741151637981786704105443126726481411183943437968161737325139765058862942292430899383719047689647460633212692487272497648785983257789887285345912902410005584256131148250746919112027864163988659144208326851520975749677835571092441372079113277839947169269837149365829934406351292703216936448141085282489000166319102405653721229305581874442732232233905072061778389845707965730984098284706988451343862320768335103260001484325035043186734259085464785729555055971140119993575103263671659146862609295851917837525765801946701010852935655196420775532813594859709013835192265517787328406938387260674219680818392497958489664806189646558432488803231511929344249645530588456740476446123820459948476116958683564739619252063434967280595788494311090206705484751167555233404353046549948719337749200652592658271462155616882637306262331477600907299634582712778620333234530735471269842000017107834713135866038898043866805776458511313383509004513890254253335916552886810091411089249340209409468481534217648794725311485021353377655849241014559646912636106850881352141417129706413028078054344869013930696265055136623156134505594630038807831266042708413068135558235447098066225443989834483904017334424527939063821464423159133644554864527185762894097715750778509996083059311971839133791433553779060397309602237287396993450599910266200654518646064053299407219984708991995332916052565564954221748278077252871994736752723064895896173855619485331325465589998390151626770272290587128801063658733788543585635248435298915595428823948668840709738042821789981961134870145919832881689408922455278970880680928530946245536644155070915984509567449706542829371913457563800570268710771892622619019431491934776137827105710713225780082789997058031997340635679944143137475453353101170634050323513418288007381768944500345956645697801004310148482412587534564501707346119653919011707945208701774489105709254549142367233572924846698012576012045540766458213681324814085350895329090402536233457261411801020750668067604650535891779422821509482205579467612885075115733447148311235159269273440561448024243437838534255622757799329657256308097796096699734051863270770310617386906062334219113711925272042277253769369004832610878561236520748549433666425574085393077960063975967724017010405506736262748477982256972359200082986303996915296369145351518616889462793667111897426832164349186728436521263155031475575549500923845797254404580294992338096452164989132887546717294385832003800342251916201411882090974424347956064824625741571009893373076638210744325092344391343558542484937386416848549588495791692325750071033604256877765641757349749145061947951765291872889849742937977185883299261945489127573765127921109197520146000149798351706248847912398887708429279503124614336717378235378331548673461716385599627742659491407398788965651567271965508859391428127759303818548925061724133852274435508490890603817913859518876484526506235396061691919250943975155671526234336657093171478843938568206768151113620818326965883662422171836163413695393864025602787330943809019044395554600184233397886288757211703271530867000614867045991091676438145820598511449287396358997924897162235916869949915270659029839104501853140583604968413432748044147047818243976675697073305003520388925798309787850921933907543785990663564616477253563670580238187690670481744003542793126781615527531870003521510981031853215244784079935402868516053131421047947094720249099009510835336393194111943111306439841840043864644516446871298078847079686265517011472677550249447011278264477157685402935240404792319059250207823857650469551566238358283531941526587591309498650251881481153684064692036261820990984150992242954083166189646159199168492520533115273109375051462184044033590007257272649059679485222232304930962941117033623938815759437049686309019673760252383887740567916103906029596832365303609729192810594004804857529243759384682477640407748005112588345041135303801242331677112089290035112461995274924656108718854175170312960130876436034336042079937255398690416968514296242827425166145968518039758842740269274755075848883770032001516153022594605888093233638104318912257840178455109131978403702850128930083687255405055741949199188643109749038233051414667917225732097547268852447890481597151128572867326442345381464816459425824175199204848456821180351406572527584324377473666136798544910659732545676417398758235983291911337108589391011182959324672271097867572073299403372277569670946243330573075085509614205543539737830907373202943852762972090225149487028221255886627091378488893806671013218546716198955019312668125469934755845173242970713589580898537864266267708462029528993889116878178320118520047551154519224076941168962962732665943760212426984193784875269853430304757630447279374743271029830761641876132431547576279972447004539411620614395962017521399374458492691761819272135696916932860779415390810635316125490286941825414874522043189662947077849525659204450712574273803315515674046632163254802628707062489180113773999458313691801159082395577383554944240788803626379954124782522298721098316822091079598242941094860618398635498033909661433507148429106402587545820442046903275378461320059363309036505503563311592571379304844966916985156988595061449548183288841437350236119082369368798934779902153563912730583353170434770664215908277967114402023906722557589290825934370026782056941664008097076068008406517907293070374558080217243906713099742682336670914118648331577813990093483435182778477226385156518134005855760294172149034751234594312525050270311700670144072342230235663411149331211023827964978124827975930568409950964566477264516317698085174159873710289430743765729576282700725861288826807718410076923223686527841490738640300548357629411217951776291836998126732735757679701596103988538011701055506702486126269681359429633275341879189533177957586952283425983822437718993624937194345004415744349326036781202814031724921604320680981220030908247476093236071071553739397226801349572411323399696621297195388106637287440575242925497425682866298757981610768626620781984519710497250606010838351656870817732998110742232586035306670625498890273086454449256458340984415257991678940987542541031916414500781123835746105587512814748522310727430391707018405775070015280537689321745685362063438918625654156690423651405358007272398592104332884911575651357735553489878366874557204465134819499867896196637609474881894917585770823121810812589624778960137103907458678974166909925125871092406037527709941202718310886825019086533526255541073816057272947664112665424926639472451364916477151796772077812362356494960712099763686595216196250139282825744926453275253495583036381530248301870388815037644514385319368348796619553071625093260986542672571318879834101911878076482194548656710612447935934124507264629542795453169914252966851936216547521883123542462913268171578172153771641644403902358336231477277619874079182814306197700904793390685603375905048078302180299079156511390168201482383823172597138814510951638714197653940749279779788834441170035620451114348535692536041845866924717980356742225423438270052802071088712403785908764900483358531799752273236346294747347994923883276574886147748540987073046119757366575147006638721762104790211510147006897840299554277350616989578127002840457429889183075688897663988075491221129033681781450586043776195502448766763041653119375975055530912704016122999496506082561853008707461087137734885152293416304181920340594835929423312760469677698883678644907977002514134369349664472780018099030344424788356180153776168159043972322966794910419605883316386285601319527528391378240334105824145749037701429875162342773040965183907671437544610238021142515593543162103337476027788070463986856757345802859952468726735537981773775031824272822705559327310302537358273629495477441250300921336221122263560904882174607231624671888947912146026246401420637510502011123819201208301776693636371816182390549804745711114337446574168595257911763078457632070542269153381900891356631382600683957311627198456115092648044524449509161913849689994032117855478397898970254306682582590345381826063420497493933454241052091589560440706099709106674233907747082279376523842186219677728591749619505478890492580824919104790216492821567280906128717902611520749352961093330773864697710326799261100291862052337062865291859794039388019390005451310146132304025906923419990089406732476194592296581961889911329547448874421832520345100291691149925944780679871983794096358538292411637913231563046884189861687381741588964215119936492998008840092572574908878248310520246673942156561916922842107521064922610126761678095425763198776791913730368272758759146297083415261099284115964793569757871142784332447848924105709329650382378157320427626210936631248495882269510782984793898984617824054636529712526878429889209275768102980629395266050543760760629992853445307695034521527640832300959105654516564282064460887508499997604236033832661343902944597941399084483119678180231422573753432359891602509092089887809727487590647346995209507425922301139830603783225522244923348769508116978303892115683850435509964533561492396584132824914960598680154247368204875488821520090623250750839838311310303951528306534023374643312803829555192726730839951984410803447603760251610588738383111098385712398430008688722817993452814328465948153857936662629146454606494606881941026076545728104885440292675548847168637727076430865947325669042593454444336954626486413383478574145349273786332073197391510606509879047373550446657808983453410715711656981452977113777747696734270027337192506453752816519022570045330184854700831978740689004798015165694091817505284196598672967341761341909854664198426934793666777094063716439864851817422477321914408370110013128827068142960917201507295575214908910131783317159148065155992617870136188680284815476843895971976245088598100652919668799448833933530176531829693385078015066823517001041732899984426829860745810161144539820099428779602991906700382369759933060242857915096877755762984920490238104040189533782825947189062076898024823103925551592878504901062230372950132027219206483760679046945216280654405986488912109381870871789330711234981556347345759998372991386951310515015995199779369283702190096354265168037191446154213335923862333895956024616749547730247921777421109614745158490048380879879881041403167642771850499187911002635734813310660234918673628542751913523367480448501894400092235420459064911666167531561030262084288365291994704981257879807831672831988505614058263918695562028124159445790935774807013999055134303229494698525788046235816285215404295080156237021427041102922422268713177406630675588484325657536413438789967362803438530603629538525174664506147090758988423166950747649213201747046914276276501220833246961803538777141374604780852052920613630598449113077985616934503219885422764294011862885188413588422954053856307420475398488598325831912012349673595667404015555936603198203085317693375369165417166251319482039131093787409462052156075521316995354940750878241868482577494861730534823065208050799342172830056385378934296235453196878587973646841851161468936514881333961944296047138885059864248568570990143473914065358224934394420309284972995114904464547393726005745184440182768309943065149039214975727607647331800461937012384553624211814900069608242844041651103106214354976747541380868017079976385640462557924595418922961539473989709961830332006170127187943192503910183389695975843436428053858430975612800474294946829912507406481248960466435301185617493219308504414985793146146746709777269837916635494213299712663021246744794783684229793257166419119349548573618817611123169811018880707559359086894843340633928598561253721050229507890805993051153808952987186284893930216939459310477240602563665453681792412156688103182477381855072134520336595759064609044016653826813106473876089782520247219439301773624349939925804510657340934504733226973737002909240623419100463206128237110834646827279306292958221622110283000377933505353092235598596360932101185359172373717686243885986120195628148922677708436722989091819923867918682676103142715979140339892211966655822517358054523315417612999876634754100055429884921396342498885561586330675490551842616974503703580181036506011177854593163438620470274822226433460827849703823175858889099446997061288999363304619558934256250214787876908957346530557291495733172071751122138846805895951977189876031484570739608776011794439207981848403494936087010830231051277524234931621039237735450697759734690494209246550561671992558183852165853406743327976972155851687120844486912872601957048404003546340360889574358846388937967159412591545257235179939306564931507613661702002032351572108372782607695226912714864115094338144172387829885109962689582897851482210857868511043138988731059821109927233699237617140435587933065984845734558764436863266252628112578748047946664038782398229594268033831090274913754880163004673353931094373781147256318623016553915467624502874814065294700814288032289756444199983919719841446337827195583852295838603187861502966962616653501019071246629039246765312225376490144211430016440020718739391934707160830744713858302199797377063434919651491750693090493699396125019483373421688977803400477789696762828970196470134757776135537253075802437881534569958227270043898256410435041193040931803400278869831312740792319035777615996217915076635393192788368342831002828168467057682399996609411147979887610264868305872952073450855682663176551521990337056475922559163863305831478249066819467513739415780534184267556664052708959214327916842428879743395195321512094897398780540946191917617016355755416076806722438386988604740324249440265325733340802389403003393912051046091162420405457705185081362995183459616615029562985800450012717722597363830814178012910706916952763576725711678349606389604280823744652699127888168528208485606181618741053720102136609742735095599077125658225213277873276291191024153575319723540462580675742050977255134140612289412170546658605993751385380776214730455006280609502255900289594858329765101383205644755884051119842527376154996495696602277136822656386412204311899894596085184673071140785133973820088058683172010429185502691984146036655144395861005881508761760676778892231235826792134658370973987588604983212604999147172441769569433159106326734700462159632426268563711103357054684101084648946462613605789285354841632840121087844741324192046832602547614067789854686227098279446702649791433717901168004145051107951089599060816526335007754615130619540560180761576972072691152972232687719649635826729191562083913196402426162317385993254318271746303277492182845254276102348798378255146863388443920583132872613852805902620992475245722484339347491688594762504721964639108798212019616423237711999182238399905277731051130401606669370546687883618489549408101155468447245498548719215700174761162144794972340913386390008433137772618297466750167738351799211812042485311221308228047631017367208628655813100540875425653142810343343880307832198714446255580972497391331629498295449609088619933712862700980718500351243029032086005496709269438170163205504995130591696017130996552127468534905377276909537636594652494464106137966548929506162574105929749654575210516994566658348804931006316653204155102571492308950984652960780277940686829917241395974692801172737205133368669871377069335591329372032165607592525503106440613494712583212744928732673349473177985377070579026291997483581180500916064050468562330127372214314374299222165751126128551007364180795309327635890842018611835535773262759236893965588891294826815682544015467855446096172791600285195552443327989940453042183048255168911624721124962883140175104485802090947121922436616601053198590731316691924792073228724914064702125331361031985289154009030984564115639013673959101961832554642090895185989018695373798242403400403010354054530406379322857838171350367608646468421468087577905775821723635005857233427935696850373365044323249862969127048523129368167841925069588749998611026536163522716177562367235592966870526769267461864894884971223527454606614149974073427556800630320521712792515376367461867577204712829802948714981394123663637717288813880636679746808447197962467566319706930359090550853851836984529709671324714860146404954959969294679691914631263913950413075621919416118573396950066839871403537277928870030789970189100042884158669413106684987228485786694876086235013990292488435648286341950120593675320983754376007706512243305735953411983240128391622835730643601633524738210992534620512779549786339533352298194513618969030390475580307267166739320279779517467224487584780244589761341387273223127549886593542546088681782380586519506752190968939063215219937952648464652492770874540131049463829452680192320616096229006587102987700380846073831254312045633314052087765633448338081961551539724808267187409579866541096051021181735587830735599905250649535204367811480293433512456188843444225601993196462765243098112051030547901658308822721789117121787281778301540587902253034987921216066203292714604998127931282335377332291064296065489151491621463717188302647146927903420888157213180764445843052782932646564351736004245839305211780736673092261200603541367413726484405289095540714827165740056594260419988992318473639081320643174885766180254871432946163106973204951069171199515086228706203368305879083133326587823107265086522111684178879335993069401228243567752837140139015110219571861135763479815563585930166321442422312887227700802612853023323178721974129677689793244815837608995138005199690059115354720983431533871781978986679961908956628385372400852058357021213826998479185981322687365623744939401434773025461772245287960358637338131304518642650656067564598116225686722536683827766395195025042677078951402058194595278283473696269532509515353524382763271886141277502344101592446439161229446989341421560027656528973699960365111419294546305887780357791206795127461162735931109868525523799543988203461484818534280053133767993761598510009457044939366362905243964100377156058308299077692762522958777579273818164596587284344257143241750610505785849156844598791331118047901960068910718608920446313928195252224397382546195461649625549656865877853360461135900434759400360360985257361989874447852031613810460677084323585052532134094509596091993834240514245978345166502784982989553450531320382207520341430934296676858718420716816445454389686826918089257696306394327995455476032271314496450976275145155893932513675191217735088754460745840966427715398557922727592696140705294080300985263284954258544158323560462498629477632832247266847039377237020316828545856827294658824148449698924870817836050215510545938269489201739168933951672343743131439281954732689320870740048145797901272927309653185176004650431400069319880580165153975483321511357308203284610516520252106227295902737058162043552963831607986576443922549288673136502500344065205356039644418469470691801761149339613688384123694180463806171589641098862008158596376194955244355137212588192673672908430862440815252183449346833569375788462191184972659187599829709574233951451492908864579639939052965829710273560494344720012025202197927552605566112385221519973490898488692919423082347330971891697957044196479978846308391967802214247520409541419705730763651840434967843110632715583243232254968212431658188102670300827019545376855375370494380401410930877842999109956005070195374023020078098509327634318019373753193204095232760499628244521041755495050922079917964287868564025997115997305879946360429018882947747804947313586089170997736735704856688790966423207691497443834478224159376027483584786016795144248163574722624336902833829967694239332467284671044458274161897240131169917716129913309161988573265360082436726226559932786559693579837675205924325805292655604032224491973211365595009135573909769820874909371621383617787197463181581530412657603842327363567938628695927057987375768673514754199149960471679735508770733937614593223890079213422346098065891084450892843694649032061628168929995870664140321364406388633534399435263328568912446885222886161130278697322008239015909188947516758220526611285082995459948926554937242930322398605549359152550790238256543757175416479524763294158426866075218677055920292822354859065182107866509610197938129376261604650454898042165548632578633535482469483457654913058472448945774297475430223741697650224352611059620702178747208394681409931779442892281639615592688954302512662324235476162727554003564358642863491271943114714201358664516066136927993500697814269412460726941657002784945380303602599077727959306224604830802573950167878149507616369610283992045474190875744734695644519585461666833926785259467488642805889435429495686851812484307024721436879054709558755671624729224934159962415169853269468115567746966400071759790109545460030713921031631980334652836696588313847715164956467222030329246196220514491063085710993141025747942799586879655370287169427229600551103250697254333025327999105446326935294356939830095813325979792754079636452947899875210993975933396027545782966797332143327569463874049940457817651046063799397059730345620960826776573341057922971150235585842353227656928680219898496403493841770988280115063646991082631719557204056911605394688244320317408607095923004247630148121871281271561278585228867596920603656780113518277599596165430573385487740261283497377394252420793566048015854255172599882135277103957958984304756883235220583854169392545175036683502242008852002060347809307274530051621534498537939921899844959699615439981642664995276755066778444426366676933836210929992504874836152462210844611582931323007090841020492013995121143723992045542430499816716071781678429984974609541216092524434521391350051861336477867825166479051074294304011806540101905993998034034743211110163695692330229631378470746797303865691625851824216858438441830925125343222760098215814643105289616320599265998086695799175919703759358749357769933422016438888218504909024082850792718967045716644286792128746149844537425944523568494872178168855309358267529868321075924869147144991400761065380116071773625215096177263269787195985957177820688018252528791570755023751085195661491517731964921347999865588392627785622871761767695538117278532607339864387862444155060677255347330646847136107047230987574822788680185827232999787818253713971986922888809358032819705199615493956199891457500123127800035704618188070927144289259825944337326185563325181277763018308861325350139460152844062453190610036506656745122584330134257181465871537505834533529609597695280435938093246108667400541514688694977209490650702456019424985710655083706743424708251119594426146403732578821925316760462867068865005109691810428324752410018515099385865235866040779193130038797203272409853918925051383383637573597654603922847564332450564386164392428722190276003551041665650122136859761606011900820764185591400497880458994606645017921942136070848423854624887551923416012551323343881042641595084591718278509569152231114108422042885554091580463084426803588458415464362814428709665988858809784287517974187784862648424441958656740562605424375307860386448627233499740625377553011913454880636495391092455953843111802505239900863404088872559013695256838682593675702358366507541308631242340074382080755124687053767308007256621949984561670427924167448056475322357792727686138329766472812696821523788567618424959689071321935651636917110975075481492161949750124821656553813169587921606439680583891431337900653247175785479981245830986939201393026994991095226465100736187738356146462001613052494760744273745978203115387486334395155131185527859855883359690873863351312711468756820215351339448849745594106352796070921544846964562845151008102319708875891015243026562663318776288386843731684776584330616987005346194265842993517575123090129761395946587631013716142517417928920951331542967484403723142449806819282826459155886765247840880567780296638183188227997383470075810843760712611903400068626425032174659077589899003481428594914164836724337503612969315100176597665101328206263098571833659683599535820266709387876651789947855961649075438192847165248161729095368561949537484804487650193685934439497764209045420893601195885848512696942045309438494000886018390942636228422170076271966089419082381042324931585297689102288038353214499036368881820441065099517219165470917297865998315429562348966711196793890009504053709643130919554412557025482541706639757228848382262827902368498608545684643274451885881594975951484230117394843035441436692081177957590964875881915308513212698667652684747578759429701632937533559443032350718881435578265778775355995203161727146812644625556440689547367002472367033220149324519944898830086475465738956703018968139186044058976012505496958248973611209726189503781628007368333406929840891060741322650386655479122467438450076272040042421977294159915103461537061527533870680203234681477868601022545445634078453294927921404674035828476067027051949643711281424862163217545764255805740595559962355718114572481984892838028633714574866463000511594240518777563869104597320898253165477114863080646884178960494930139838564602306934194822288172390223068280519332229712878051468503210254285562442602901346718381150423554521097330533482371094483753891849943466409601632317361604227315472424558149258638381257909024950644639234186458748140880688709367080460886948728060747926491791660120883492497823535321125742324983284204264356583326602366371435984915908348621742845946243532762125710820245537155438042427195081386901368292292438617390324826465573840161599555665657518685973767907543784991431288532589323626296144206568149836155591526942592077543998716538783595824637909596248162168997400984757393221739207009049994267162168154413706428936270936255261362914286726080974585747761335794410201016012293422672535027944690613553554827448587814020366095191569966293819315944257320457876230306073441619100081825823182249141213211875588686000539664743902831841936406142205976571840623155395425481844382672195896141399902268730723953882829127771096815574403529134184963125876928680388989241449506425368903538294183462090131855785922023554583217366341195847341977683497059648139506351149227490267332646721428417235754625294806521104126667868371197466997424932360411821429042702537041589356794100099950614078199346290350310530206246968038129378649981491758357196451077680997254294214740852001863624309053554237006091020822101510448800252774764006659389583283335236961406016579437490924269995636591691179110959721818548806028139718450657502042801757035539047194885906314031241619756383689787754494539748785711829406248144683579962693367780236542717731740579459363065469555671109648704971744284932866258023659746725937554942761551801556746857854073471740048952002520682185714336364368594856045288565041815896985907290265377498515565580981065277222355483299374360133205108283070618820629623789489314384270735587112579704407311587551021330624183306452191292290568545909209117413230524101773403989751737743676323917647698791948385684170287841088446152874203340626583053760798698300020772803704229514963941058815693380641038412655028342716880424931436125743933315437730275661899473772262026754276168367664710118343847072409213426047853878293376184510209302293795705753896334447455190482426831838755801945770589725124867914830587926257525170258108168008318148345928015405765633400937408432926644138410278727843844845913271947741855208029248953017749937221527092895769528030573639978706669924772556952653383708857808897971389928170302308389532376075738420887472830517253736329875764928331711167894601427028360424217938451911833052376808677793740653407674452359564212219064935856043426665358007822863528396122735534655686453906493008359344440860053841456380672003822267620029731050031522604925564829062390207722753227523487074940381294107167219663207860127798977166255582634693250915693560207626731361339666737765382300387000022675806144392896401414100912938124473512835225091790037451801344387746490347052966226944393853274308348616786203656155536111196404575585890335909054880074068533659200858395962851603833778100936748107603085525334773183586486647247873165247153188952827706022263902024493630410908712046075860227472610834503592728206334322775921117328246619701848044506704795209983487659681453774733372809060897010679853644341501364492392146164618378933571130006619527263553952961176212855118278996874924601868766473774780568440224015742622391401800871166229190567809012342017619530002350702236156849887934177632243631196674858554965823980388159987255063972643612423450281912346802511638577470121175318857285192051493399844286489898845042948356760666031717439919444465089314498974466251094198481912970789138800627501727262356955997138321675748459293690721246991231593282875390106845728859482163137871449646246108241417142204485050177705279773155220644944576378410185212943048385190240513388591928144224472483338239049261948966133837849423993385629380935897607106644337506954139393004272793476288657102660050789797350377690711113231699345668132871835783463217585899792169663128471010342141722830272010246298922336443921194826794294474503240040440435212058923390816140090539853846978856107918758818163323221509938221724802720115644686128355801624009741644437296318432448325895510125222778980578200580997809416058440747746858159753869092992321950577663906103504581599857770538368726309932585272658357085707036034963345675251890000049201754611750796039686315856394490432706708541644034590414595634803429308582410107946795088016445301372190355558678041263494250949713941670475414258550366143365560014262811605158582350167055701218783186945022059816753159281325088603496820430923262183531026947072627237866494825713600890932144985249970121398300930735509978178404281597789084008148314247300862841184196169141341034572289541893122374255060621600121199372877643036696286503028189048293724412297710076842828717305979292543953627735455999304473696085450142258603795788816660204873160838773115943414958437747342430525265790928923676913995393541365910536148983396586473989952376768318644254561214153609325004694487346540182094546630357371116271127539172991485305790759949284482668763720380042520428932027865939561016053697518717273859846952897556851622774592442356371641134316950584853827102874127973821678215970036338440941115959469109027710782519387012976265095033885521252616619738140808920479314004045626005359515776262549859878913467022156408757907511897037593100251876315381823551743958754653166189326462560408457174782638773405099070479807041180845014692519386742349767213483978568174406042452862673449149298267101929516336297535300567776237891384354762422749905470890269646476936345196296843944287971055201894313382143388736166860222919933078483270927373795797258722014344833902511648806062848252950437965382819435549151893073460734697827106749809384053252417337090874745427895771694647408155530180933184422847405904349829170462317453217433325340095882289667680879564177190704869048335241009084925156850359328613619001343893448781177118086869880203438438687433268843131317675561239107523292582682046064978672417949647806894987413809838872588557279721038387223331459675896397784342481621885791467322786011821234762950805209782200728616145656380777603052597841728729916492775700292873208436417582562507269724175397490097774139760430673436023664397382359854662056467754942936455899995563639257686695457313173272013097776993493638322001806814351926709637536103962855770015194456981246524830953535122351298465219914824719712758897060248109933188971218733495147493525691214017801007244971485424666127045645769421068817221398751367538078737377598877338549992739475846538133587883760633163560166229621685086368295031942047578176568282195631080875523773273331893450000634303125534250514397290613024091342281140149009781612253476744114576574384707366248883153468315555413863642994666768850687057118892549736504182969179766732854746463914175449906322185867210289515836023503470412526221498263191674720061773228835235532194015565070727941290021011805240515427106572524074570017466965010727610926313508753328777057432030344549612664654126388508208624398177914196683927407266073049924442669422129868553287359353271964662178931736446422496628867491364787137995219453578217239721809187560080163235291064013812808899789544348183149391388060898339444418847815805381028547649869540213515407240168627232978916164784638165972022627200830228775812237911513759108154801246424352636832007841739076530021619998231175802651190525795381668288243957574524489267760886201591708567756333906012628143263210083040155060984634807490128088226891900524802911639488588395805454649087563962558558666870441951656665827297399683322152907915963119472137617693946572208190522816471108014204785554032466966108926317738377939966820015433421205269056796900968583700458231545972861395405114545435446066703938070311180397502275160285973734763366254847992476065916027393460250134677810513572702465805068344049200939477501844981116667203438901414073335202287033428790458696692066563520631933147045683385005659928197138719472503668014665747069357586188391708059019837977075474100240378520498923668009517259538329541651452089298687813361146615459631696922325032246205953718767875497066098824098408982613103884061349438848463641225346138704043102652858986307257834349330758872406029775731413154251818475584179724235493641427486677039783623380894987212045270246174926371201150845930897899661904494492218301939891956193963497282871768673519624202923320893432543981880588835650238746517386718816157230512459746508908009677064923539773468838593506795777805281713081689036087784683095850562397932093173183257089197011658793622750216128025539765550927345994864866467264061614669839529039628862460205011230901429276202386986552966637556688027267694891970327621373191147536229774507785938685455630624848440622891138731539280903082119989667257690737353567684432540808315887184175376601368791089534316963078397388203315979267919559353254273324971283038463513748389072209314711466964983248327451493944565280586808088651979500056261731713869878971181445735559363870817183370207087266176185584008760735459372130826705536046498505756385046879049319763231917696970779675030631495230291333166042215865721715915783595782162515619709639267491924116873120444374212317032071319219448305734996921723494128594033902045719092611431767260076727430934440548918370172687097348452409843727017837229747166200012995961013774587231233401612203869095718328224573361446254852316907693814038142066491031587012183923417757090484291064270053018243582937829985573360591089459904929379795771103493926687199176644853675471477845164592340303977022190488120322791294172620742880454100349319004399452253999211709315272666085607909018565549031152468485051000777999158951672346124355398987761782632073678741704583273650138009849599562799494144161140308225956032912984947606288370651586160327212935934174395040060733686550415526503428885804655104364567891273889261152683937883004711238555335842637094674708201759702498197647812825423548147263270690520585266844027065460069963197549129898082836805565225534104566465575507585981541075357718255155642629227035882797543455283388005416469136095392569461107948019309178477089217089926344295143609015496558370946758823524255844124955149625015895602964578327481363603996980510014283130487402587543083977572536466284532813839055657523658428149222519027390906518613799796900974145043834279842036044683041176233771878788466859406122075274831527296837002609778918169594017161846300489786677238785322066281020042431714760164473656330549408298749702607156662145100683701694581943539651407735682780707642639475822024712913647551427234052269792775838247690413793268358129750173581697145156932864109215543192884754108681909277326724288864555319483284054496029599536157174354933582096097421808522656433989077369749444017652393382967360162390959578677024403727628933659825953539433775105222475785197236815151007602191935590459867061419778397379733544944957987025082981500621214618191439399714035489511311687819113294972592563479928178586959771478608195161291556421733908724452293746123044410467455383549969415821564395447032398584063647939518768399277365507798218775792772864620284243004992460774224494603613524791824843790639015408905939119192526322149356272174087459438560005897594209294446841760461401392515506188602008812194048648134635729349669649122922338307199670079695794225999938093627733755046529176493068030173897447859353576088900938746332305139230611254004478556851765034716044021911233927859961879913494218303560243432126760560531584839052912731625855931829957785816144358536857142787292182449772150685624816278173908191733783379528768245231120703003113960646243197479684602304717802373769956617736158446832495952630144370655648160439644243305209452944974665139320782017483893102698574910598567381573414458284360992103709767503678383190022161186883800940425574701637952700903573307401416671571213347339439825627905233518638309687272901459632392326349193540657186229750958455317288522289902648813496575237820824813360203214580035641084471036716274527735890578731541580455064949588218896166823169902826651321499243631000016078846351434316602072749694370205184260323563089637234970156894463956002745718641752090416146852528693309354654318829553822456842097368630005546207333986736046927339598866186790864114672742687620105577363641484078140617520822403463765628534327468559676722013280916109113509173636514450326754923116065268856570622166317689407007500516239989890201028105439348999302607364066904300992044984959089895162405030124490298805085327587404231503703611300677105324309720285088490976545319445406484892079437478063676647004923340218919806434164114271681432713021840094876132252361931817380667144964718252013271050057718609700483984494667459530719605540142363365172072039872121154908940228716888587825152615912458610352721847123837351496697383226662060381314421387265988643699196180057749234451348617426466897331035503362720260837342224014832366403995459201247920040349376585899168437033276955342182037987489101632986558452529571601277408593509657590893950891198390176581191849348162800501162718879002132044682150764904171977582089420570127745375347426712341192890888406528917148439957724753682778524153060125332700394130208826552983926943444211446575739276478100304963988850458286889475028209915889258211240430185822449561372229968389064613261687888316674071980247006389252135683345092754136356916245329974915100491112788699154882523247527512550172504634156672250454696643705360559243544383871086584566942611927703295518242839192843791607010600678173283811534724580105633350669156400864482632058727479744343539534732252864123212424421078704434858094860078137077462894822792378448611270931504219863465390144708783032887957880043464310400867996576837522902839486747285106844795273089676355608899761486464866624958202640829740905600482973724537194018727961037036473362404786505938809582425451770685370026956522453744529470931095370483083251759388503736121751211995719148426394138002399186746943797704226753582721262159408198702496588697096226995293210591925757518229455548515443316603973552766053666245004604977081972804422974405166935728100889582165115181521574594139120282029509631377638132358688167507135726677879914536550505806261329010315535775298557978096441216509311336220340754986242782113862453614730861887593643094532026330182674813603584650879699993051159612914156499477838940072742488569440052849138860224739994596801741746120458564407381865403370602883732090784482646379416917099346013443481792373741808192324306355848527958177263999592288810008991169535639172795318745230691960748839411758079254245206695357253192471317529076290982080730066835640113983755222971077853584286925163006034082346328408252997647618776674009271099915375914913407131791304179477980521651645749621611094390590300099893293225135512742019294017252795895290661406472554260559661761349091466002216110798166131266091489712523474165863713901437379192324806365863983017801112436412663820216312276519853687604657204528116963293542489599282569857978293864227046992807493070923922314652215787684247632298024729977324220944570907928765451653055622521918142061929202609597103958143589599256241127796635670115963661565144505974793749806323973623635334234152180851804501860635394507252189837622136888699825189962590569175688500770118105498119559548571783234911847667966567944184028108745711599299612150330703939084829043750287611036345406023085546848908808345888866549786930818492171150885873578120581415002549955344982509710499835390799850899841373881942803853446143459769304069325721030872435230520123720173754569777526575449073771871224992088834949664973307473155848504733183314229842561107577364148042688987163799128405102306955441358258291796341051629554725951224550626838650992353995924769633049927534286570111856980490750684395722843344380076203758220594274187671227329448350008202905994635929057663516514834105506117324030593845141525538277296742782014208392955009671318421947182933321097656246468118069468297611372059387694055542389302089430665768197470802402038466065780845597596112480535313792273814998353709019368198836921517590570676237425267626963594259672468511058509949269696250909166436347680424219443256785093167939382504921664569346248182321397963116646342096460480771240232385568715381025106043998609585831812035096304506144616755313942414574325381364779571173579752326566317042719356809769520544682218833672272663700944126459179198821747787858187563014699966871180050242145694788341310930581233540433497780769592184615763652601008958587704524383909391839506514544495686815231280073559716928857167507462443231542612284063943842903102739243888794418152518098396966107439657312166768498808262327919504374131914667660681968981365362452711343494199831946326451608829454043963615339352389252551224479230916085748740058410880021180630159034720405943790398073488529459953907565448531285336426254228840646287632441894289263589729360257525158930617948231276063797252443309010699672387158195830403867036866331660223458874994055412171139072702226494573452996228448857753943168119943965004087944541103534136678758834683532215789253203557397224291762595430207943562236026962532978021686321565696950583968644097554597326550807884205745367132521095078317678595549949800566174164838318398487183328883861641872217790542896275232715780987889386645574132476763655531473480772242354358034222438370255251298589886211310203274197980047249527532580180561675159359089271796433840722258204831771192478425080837667494305995107414550439977574088868090186455323793601385720197544897705742350794694020325808389569573266080811760207399536219202266941461315871628925847899712576405279520619957021483130619936285972039020151830515862142213817709776589587449308900869056088100935332980553735607495264039467028874087084446850199692400442374592823755914863230657669547421380892490838393244181175820047074031765913777152141026844516302434933442923096822220509982074685172830790997672216046249733426969628524248582884858785010384982357972739697028511559894285386753639164801338386309783608925541647262109844174818565007696756018791426373267908603615108599687253086158444340728428848300472770576704753461844106837537216577688545587169737244767293889695760097217603655682979848678835183926536628726554678246648843599431742416665151306170596054618526197023623258131637745121838344985715986401886753621949939193656629201352617452628066641798365352556667361449484986107756717488653866521920663458586242137023464628277471315241679902675568881486816397138043952948037938042173789218280912450350423313222961222956943598854880380700655803821644141859248021845431720104431299455122765126225948324141050119090628017306085212353614468549212141484187583415704232984979053143100741649791471643552862416787021972380244628740249972066381901114836407706865380844002543262337464145100089066411866607028436561473594291765478272101878454299730748373842032553673355081722333462581391300866975195046200495691492303434575355502231700541987783800933851811401608636721888231578883296308097752632510070837876157610031497165609060352259625204470679377112951894609228715779386765565803180817100338682086616883007349734595067384706633769396803661754607980495179420339813733602797494237375864934090857147027985343295482858024748380295137014006788036999203372674524094264027423842353448354551218543519387994400627386496066156788783480270549105348612533626130708654218701616358114543549016428480963299656038851508843977331464898607602101389888815991696703612733314832678857702375357917138959079435280136663874418433644233449246341319649750745528214024727594006027255269277575756700529883496379543039991318797483978835971490927884999925302460331811399559994057026032421269567844179903551857906825590199116275861871193074843613598600669000313001850384433632417240525538611356953187447225625927315929617925335102953003213899665625462855627243895334281206130568802421800313759638176985630446905889789916018601123440433587691114767221909643036073313877644174990758177094497755024234955607253083281490052324712366874993328377791348795899628323178941357862613589551731239171345712546603809995981717888423582538124865873175906173595316351194245481801765726176609601577686770813191696305880853732124225474848486847099876092618516468435747777046562548976320526457722553786675932229204462924609982399842287452382834792498756487654536900292215523096372349077676322074233957482955710537455161976986484041034175235263556751619753125467850757432660910969259265751515117260242077242119005349785167417279710767614612479480601956751337942987644646393019392660101063400285669414825610705750030749928574220814574680627596958960102075373567366728382121758360508563053149052676135274666188232812023861786054128517103948041149743662920261475799547484564475927934569407614777379700413534406121527585975802684333560341684534808297834946685349899496890334163969176768123178201975137916681954366917876822222084956701064221154340344553785633252222450942432535502593541172930793730640145009300008198480209555550793724255900100632159483130858758756060456598901365537972831813443016805103757667746394788592412871450994797737655028927697313402564378346873425914482042996669621596408970761680644696994704337726132027754429441202871415558634320801412142689254143876813547729900091325527337719298281975523164614516384113246073219619775832431901245100936574587017575356247990461993235639349193579645101457697578770572569353228770037778360525580985982729490972620549080797438168218165762094464542029137905096323665882132564795087656269081627297691846979483196255116655388262305059534177780908657841860109299888537165849154666426579992709023880131664981788119829499312750732684461132076347602559787333157244717889073566927006868695391873510608352402907410377871051791863090021991148241882872934772226383832951925547139251072098424555089262555768584736595505908764178251719881426977650577481985351633820765790081656896145094369559044830044800069360891120687590559167958351335575298905448601445482668787259238050448605965321062212994461942338150694758019500456802441900253022403126533687730074262684903244332173689610955396029072693118761794306282214173372693266658026381611505912132153816209995168185927991308806901909403444159915708213333339845291820769361355569376038193460532299277811896938555557584166061246474171917883353731360893607941471694184286823860343951623494955339390811587013637007507924735345042252433523342126151580450144330362395525007473991520747010900160098306363362773448111525194286553506206923626997739536367762860159619639569214990845314126675482842525090716486501266035364692194019977256867770509659298787012975041378683599757551925612406578255342273835357128067054024734259760566524282218374007580050369882364716774215972881373317457113571040763120955150247234203706648201596807223368365915398461499608935953119946394171697422700295147308056130755637698372034391383942808159691009822932754738730713196188717643943261465901567978981124275369945435745335967970778917210819336361553437101744566120813987599548794469278681801706221365967308115316050987675284266315558917424199191967611696885787718595941955064527291767666290192265240382583295736517054567181560728500419972374147836263207408077299806537124425306449361045046531159079057993500634529606498084215554975512616377488525003262625659435069679402065079431928893849288675237505707793496883987205105193314164476953465724900929020567714974976800564827848637786832974118083032884572859719350887385837856457553142474534393690683066170491411601178667753540598637708443827091593567357561642128471290420164697580532654656433434791924302027761673152580777937301109095327074691754313703941667183329867833673980939779565579825004631645193910156774144473400293750587081516866042972570083766744165801653693246372396898012145813676329378520566911394671320823306000540795895838602973055945656604000072921037002249231794089015551058183832974177232185782757672603635221141494606059227113002443579287461044794911493320382676813401312505562051972529285293976775389384577354139207087492292266749392634689852213576247611571344207772114123241039075941456054688329593402553630460133223636200500606658204881432962060058474198561446940638111762319505308074113886388799403841991858280231620989599640087949085702674919272511084766119344309900782397757260704956285355297913903866083027782806869676543052105044565434823696135917651870674127725858963187191355486421306627625818195349683075166548035228797450521978167632254106630943734041596052216533148516219404811930796796982269374248034749853483596719783159969116871203233829407405634377312745137997949246560105026755040573000803226595173683855665199254780241162164372530242927178645692939622992911600494748117205668472850306535623820373593815908520593432800564269079005264911867083562018458949488652251578425507217071627846089425883976868649635144475322924215103109534725317178050881898409445347963598916887549922832102235335333555503252576284930388096108219441784899229233985340194628958069184306730618531564877052593447871893474562827676233548225144999706932269982864716687999295954705632781849341223018085770729324354906933360261400434217738616410187850948216800140935973633873424141538411073740228973134868189341851441355583332769227752035990050633389090836660917971490167419313673557660162757159682872397029227017336230508085701145884511120749712278132670284214199320038956553882603643350587511024189299532220425382733923617915428152999950466015193647798985447912151329518582623575296151963154624217797859751799805445000416124909301452167374176475672537287231290518773570081815826465258630664415639090196765292424118422302580877560894945723154802190881311052977574858121054648004085258316069868700772813595825963382975358497397113374534198257955916048246871760304015479135405598197256806268352479655883483141587021591428720236393695765272362773080999007941114479905843645805514751583548484299268942784618311415181036325236693906018077514012339053292867803815920468554415692007278541457694444948581622781705481425428874247977103754217996528452500386357050609523498132924247772491876569584085262101755210656065719516235845872159000001792456184868023147521736899947606900760662742801469241080689124213245058897923834682858963744859434360435344882969960142083012710931759224243085931025072085497952403351030844241355223619949433724157651661231938309041131503414866467169307966920887023201444610095940486586112649966326531552414207130825084427836442211067892319935931121624251073840781522516254609081493536103665953944590479353195664515078821982165921889397665488647668988656675626095020454905868619127435077053093023344473572367931001055160943143502415448447442448797491768378840184002052562728723813122862639545672427436503604291429784819678370471178706522118377390663010320002068800003751874910208526855176762030258223329430231495319253030026082572839502991463370638649441206654936421548022297559404802424890317900796231092966799649867031674072635644281084199023542818690697467575792214835027516944787848795904418137363010771017945915511096451261540149481080678163120079704284563107452679685032979742306930199795108721928184507771657142888735672243527004063067377439337576700744255961488550694568967294231499958571698980902343677381225759821861660893618453350111733647175334755697663214062743869235856728499274672332526138617607167839043651471234058673454913174289844753956371574745044626037160863281616623289887765172887707707459677957698251795820437487823451408039213432848201357936936135992835895633699007237306934257331736142653133476082561780869152135791742535957584629203779218592277134858971463092347432678852862393093448916987426553534495978957803899850601368925974585497715531757686122341191967766644851630367545214300963665934046457038756686371570899670580558903366739940003492860095641195726214719387617527199088599536276358571674515765511072076167228542317192670645008251761241507597317261880974477202057728380971167733787340710520920623315857005173800753800779137210726116569620485106152567770217628489241130976202165428999984323861764680597954448960826755294873196272494757300606606631779052558580340273317840143735067092465545321789149417671846027974674240711784213366649863415901297027911204292178019480426303231820377707708144756631744111256288022888685296465319057974841389831378165545252809630366390761009600951606367703112233602065873770005208438982812625521715917886848689795875139067048959857538497100642822742424230142136328150769660307564692534178605022207674680570106218525680160224829785408507118073505433603145725218547775445257767095931302475157043999361953676025590289878998601699130698186547654097102956640182556488108983361543639633310080227746019010805576103280230095291548232980837640370855777746113169435332620998862036826802427388940538541319220187659613261985236081137026982954678405707341107460204318483318191733539998184302676135669767806824008956043921206162885667109341944286890071256283065372961021128798672658160380533512971968389636379558444299544021311544403106792942960728856080917715958377025417258068493574911333189637224818234111573557919905164359610518291512768185602825225054882954619672269183480127172510035599661292000342254461807778627165341619420042619271761345111722245218975560532895673585304095605458205718191195533221793488572360790128349058199453633208649378980782745416743583755710612409478264675751203902400769284998652338304542918661012459084794782503179399682781428083940708501885611892429549859907050130150675517587563681640200082886802871619233797997020670306133110942430614033670683893996162739361474547990544993551051015113436760125436725443786619170534215838264388487710288769320470404400079612190208868776620462232616439618985037499673811014520360678662215552612594538708695880835228473209260150417043607169763372284667229670938096203433223607429254092966386569070100331919757057856980669676463943182287213339886938676341526110855394805723107564041388727961550871166222957424178805730070882130718936593084694312443856358424556424630257179827894380104604898567240661187311841023357555648204964659516365125615640991002739682682514145844544103803822233693682537094107026021564584339342249160472866768736897563048713933807985430076123859379691055123651089880301913716288672633055624754032230571219728225217975161957382107285696638070906322160938758468723373812772993130392738496331646296541408768921743107096610779879954085702142598654947142216042243053813375995718003472802778436699693608963100102922989468652735376046302581718676902294470307471025639194696208140504654635392148436465150516484791077074854572910149339254573836023747015260377650144593016760153746912910644372101585325632235787284085385126763648986954615257931944645720702548900315954430911890453767814900365403929556616596760328357021253474513941668727581975509824761838656801278750398847933051989512090364012041285478383520316087956248235757732412408845689846379958592405293973473214727026943665485160780037290895608011083582709241299557330390452672017470461134922089518775651889713682255663305897203191651773524690265512521338379031949711161480704318483711501980699653431008781959291048792640828602496828109158988264518430107986595328801635879377210463096570795080685308812710904916548978789601279973936975508093722797875482609647265894556105595717727309847632895928756398560517059594776191484010697370809240908336946324643413831332126861566231716536543040460290879674700301292884060726901540932533283975985488525781181033547876658593180172690838159420211828852094392127793257048914434091917446930230243841516731496465406030090012415387118847557690625749694560908191688434849799656707589838282700285244104663652438604947281805678565372530395484810833746066641779584940301180190685281771085362457965284655940583503171171614065909442737211383343567070251441504409080626606034718538125578352216057235011735523979303797096953657541882222883580288722971925106435243699245255980140140266601996662306492547591535885225800181887424909861739922578265458034166638270612564746049864583676435606814134937600960055705255278887716303658935447925576263590475886329691369723063018929730791467747819735337004656243924683346930032552157935644547391677669985111822066342690242314238399168230566445154113673315666419828450236050751168335829076822204100669725122214934705741622465432194225578233661358800557671174830921345715734472563042747548918507996015962176859087513112124419131563169492863498937955680117900229775871063749387617157096944435774124889612903466892894216223931511397377303364191617065546764222499221651332195194186251981246124527153557150082726106254350016438334685002250303421869458424998528883885529642412949935718134095190364884339327645850087130146790793551985829785568047224483876678658613035895962570983829783301888891442000986765636642723642126558262248416784160755114358668920547895180434565611488199984607242725991822642219471745569518771721195164760953170208109243978879523300783997311518126026640357627229401030546613089851606620490159775937485436902499406192468880954479376775512221701335490887056233107973510358606501739979984324760323072360618763241698754751575358678220924023900265189588367832117041694255525640484531988706939128478009268005617692049735111314939594980619629225948534410012509128914231979273055986075112825447213128985851947518134579203624759043491200676100768607393300160058438964300045887658365853203043242144402315965367957545233301763070085785420442176567860915686066974586690474750760696757876940598514372819443668319215188036558650508729094140178886461983244694109403050249098364611910535359620655673416801882873424971889865101041044078933796620541326995040321370558529917458445936926697068916767893641297586194430999637731933914138594187314751447775466876343272837023429961577554841936837441909578804076450211217252746865465952742865752040213028392950007353018851711147182471725789315636521366001255802610488093310343802161884950472112602809425295605122050656901567556685918288200080327872542989089058612566484297160018744223659795642198251429878848328642162896214835012232193602885530846628845903985562390985608427056558543628147093794984358452199058892054287547325687565844865349176032209483010756737245942179867524804943321543990882193530461817195607043484461880038537447712866764874955978305159410472271285249511839017297337247396779458055369178651956560770469386156954432697804638447394356195527092917917882131585643886916581858182670459680512402824622828770359587227826281039325261427780477033628162344709356466315154636574003816130994295992083861549765753302434797805091739910353297900733334165855333342300909615864021357702012250778420931229367957572059890533165889997246442899770516420953458591258789830789216877989097927759650867962242415949481587637867431890408890353193105976491717903905222759211251459955279803451747586987669121137182708854717098636606002133355584489803160819245930215370357476932388207940420001681172334920561301661705615248381488061642657215345178570295854697379785937718395504872697244994080344594900290808316426055807998661579192554287614402579810148498827408556062937131918995962262373476278243249872560282158933857654636383010079350794488452347601587014993389369092429743106693095459076921672570498626258296420187604772773097044675199623432966332679012293650809200919994394366738620706507754476670045152031994421979336037916718536212583326804055771980739398239556937693618077248399001503935496217451319392351231945826862067523393477884276972559112041998353387200024848960913812998108823051416887637551719796826730983770256201416668676416261878938787615918026413138648032613964296335824236120643573500215250584614946944464628985121789198233087974530836161182865884999795896203439987984329578883873209434052738307633444089074342280350273419375356721625968296443695629750079164436620008545121949141579262360640845129407032371268749973700628654374832040760886207490031389082304535943254032538679308122411469853816965172933527644334433907718173992425051802936608689015363143032773357070475106760054631765987497562779679458672135181955092531545497316015331173546431722299317806287577759994440370126365084465102798947900824266244754908473782386542451033662859499107170679095679118671399864323764677891929814779044705162572852036678649287778114124818657227827088690447555007197869103147097891632095865210960981732055285857234788621770948225190751495672099507194988196261912420021576097598733154292120336823016363053931883025503215995021846352575697215376720098140645746532263925382205493734294440819199764812323145473234618323191549053575633618116542326239731180245991215680795290303218909347532047078432755974994611231651284867336818949440324105548912474238827728249814066180481628824410518703998392124642848597505649154908370786162489182346531755322888891258884619841149727609337144202195659015639450334986433188800071040275094425077326322487770463938239953629470883407940530283483095487939425256713319222939893979478353664567066053594137356101627375992747938234585988822429100336448680607335289244248424961278284422276427681720916449278101640065381904500900415124475591842615297818298553528211884218351527480781009051129316915408048433766486030936812819731176842290395447375226101898128069376357333515627351681270079732991214309857308758340655433079828696021642109619373802825964823111395076547305469842909748272919894138050783844695854416242194999538250247293683312335830193630202719460198575774907222156387850623880471267916289024907296091515634388382836552351053612294639804050886288987417572074193064544568596697259508691948573325047939221677723100668607037877729409167461870384220778479411575155048776824415876151274592877113569527057759490883911679746973653707066262791914185973243846550721851586927171053676248806434054008991192371795127660584010588647708364029430526936307859219855088931951776444377535902983953395030007011421876035698322323822329246954113690070239021592639823369142413431611065194550678119436491039382327453670587047955404498776187061343523550247563151518873783771216739617222445682404548567160551226713085360842032489765990086133864537968937655306097347315099240554418739374539525251328378670787264843702873333601725006727390172400346367355924395787120161464758468899074680846707200742726436094010108099970747689997990181634345132012198312922724035180123367692540183015212645119137574264542894072765879025328496014620289188739324485012339130319922229545141638181395030256665377450670324526528500857450832234736996667205206528593865184497789209984607653807787196085089913029857107810832494000513217123482598534955417233227180940135587914559325617984048032370943927491186338556868614512590778145816522322997341707800056500733781670968433002839094046055866946482026034021431258791886700119741376494664604825539198520738770792795798217955242242059748854572881275710043105892583138111222724525617879621610950330763231778221723170886271695096248188168560839647533988024128746503926886417972326326960623700154543478987396731977801372501020668065122863852956688381275052133218582659995669526355584027744031680264135811286841599862786774369453626126785458744440058033807663852963198967222360239649709277553163280097375682712120792088005361236281416727135633097341179080053086045024573440653765102222377897056896900921274295700104190592499603652296938756733579777940108816496231762093324849024172711949649152900394620613865884036812904927758693697599647550621088904470103526352736479159321362246564505321768964464275139830225093764604491009012685979681659257853546034467230839322685007696068210398942731806961155756305475623673434418309226742925059384645858187592691500114493584059457872730014481517477809760484562690546561341470880459466865456422450805508896553685863848792688365862000073217927148145008789479436942757031442466865707667831509495138389873202563581014487984998665997678690636290197391704824430117616080108092754562738062511120025962586809443591657912972654136186042082761994694325327775666292860397106509166618017908610252994668346319802520258241980137782273695433967013135777868260723437221559664045225858920212212506361897244231340158939881598458992345398862509400688309416989187307295136046589348076994690761204837838561385954891313193244119974287389189554169561761134270528888558225465840730880566267549307236987438663286880180630641666334712209064142275363156618910912042567342442130639733027212589138136327379684474906243340585845110934724196549851625470779647693202897671727839496279257531109468277325006137069276037915009544094471363887893593157302564558758651857888546565349390064217425649721965349097142355806032626192753330382457368243950142254307321818885973022098157709045610289085725611495068629562951008018056728315252851250153432678093705954290739533389909787563257559308391293066597328374260179549710472218712639708396020815237510221622852045038188043213475592967302668329010700913234722461538605803628211983104062228211963695267226206467461829118637201837782740633674224032263889565654700821144800617356265687120215905943596635147200606646216208553434134442472062405317124564737083869577189442603222183765411231047822519178828425907973643334249243527984558991455213497976571468388847689725312620860717794673876224403179131683503955831129416025522829854453939039758294396234636713656835754531803460736061774153443202707184203446307343717200962958743387553670011012919683779530507996677046068022602642723718250457692701907704447422116890600311508943711794085553403411292190678094731719691822592722767814955215257777790615066427197375066666131319469161524145041427101670781137537168938115064379699107274508608267069349974715409148261406459515922679618713695316309496576970719348773457273675556702868060421086543292746822932200303191588483940456980780056194578061255268641768755332953420965516281976881523264644791434971014028423371979509603981919228683234010846761670678646769363841391482690140690279692035483843849147927835081030161288762031546474903346251938252840816279899993951974023043981494435416110787389397987210837671777293871600496024070442186482031697095155382085234277309103452822056331095061393771340356551964079515274839300306022082966478891946549878179435868914408635600599705766479280207971545736018780922931773175537799431738895413927763912881100188811294282638020662703486223909656956645416508712690308105265416794994418631144868199827492756533618981698665468326128470923391352075068697669946380703134023505966589436256225093336747812788116601216684550714809285404797578269718137459267426138188977898167645500468589135118554068762599842804607183809380975062543720902855133168224235033547120422609883610253217942249925707258739936172954129478143027730472716165360573178569930885241554346990179446639314723938459287572210770221160919027382496628673889931326911549130268367297906032374613513194508448564497732380198493197406127730481200898109012932759336931183141590667911300712974615898484603516575093888545326600345727231117422231959625833581396595580999278991961986414759969998420455896530839853696423421746853054384528001991861282095446905687139848547923484647413632405983666129291225812278120701434419461916514185590752474552289349942487849479457170660773718971696275736037900590809201737775413322323666724793868785459829863437627413393350764276234221236495226779815235843708247980377085993559556250247625991275455390143772430883752803476989121084055180021884865136522812967461424377197634087491347870086137544829933488798380472586975170543380169862875686350813364345788049611837917545147753703534967875194733551801777665791645365727376928991562143292747412417868034993670170409593195422134509965836045384531290835322139329981532853362617499213609895349089067654490015951687965870826928346425789126122133553888795768834316286594808289640714059674411222145208122388795555763459778409781442528506102637926419218174556696220000361321992855131100287394005329605462280461512511560786015366838362847799214814906149304219358302577916885201884561691386597569502975632104931296114566759479452351175840812561145385425884744168133376265933521866470440381957156482005473045041817076402514492017219185475166080736450461832526226976070269523649036333336004642502625454084893176651265206460243260677056073550313885972689897606586039713259680765260546060008109546870044786020980493999094875008386838527911110306413015658319592096957747236499272622854302719208261016368709685226309553388358015223325081826859810151642798248401984361282108558729931177104239971798844906289749212637319013192458061444651565538319165425284965544862468673035244608095547376722336800731978305841122239300801086872570597566168776817624467067248815856680255254071659568383221378292512689404954919475034535445525364236999453418869331801160868615965363770218652210593585726729780036862247675614350655554519469635528666167070138271946405813585198993407010288696961055678115038196028378591521339031105280738318091196041454400340027129142628545336596135234187286853630648845762156438673590230653792764952585280201811169357884367957049254082284181098280036126442352450464153361194939366852406577546949143620567403083659633764847468777526925841283055757198866299282823838398401218137759556029033565004773990942561322743291861766134227877909866163656641110800968759020267409488245416591866571868787307143073070583727044218666319573611741743502135121346290175501144775668005305266359393979865111214623422765929675666515419173441563369100275292596109037286347159869793787856150488626698326727230334608587111209513771751594211100925180511036736587723481053234821813372319673829315136523254449975268414437650508563175856311299093950800456040448921072160107397434201979789682040226284177414568733423546450325306240398280568922357424453902247559379722650569008948147981384248620054504698339506124033896037632170781336482144472014705056736429691704302946722814137066322300545099865556225607534510885269491977903308229393055503813378891369731864319820409746804480247166253638555275767437131826521864824143499228273329017326987416503125486615120253399714574964732449545773692098365335587716843954529178019636845898152874714414875833611473044252074516477394462489391973155408979408172224494341913399390083144485886664678488775188402152203711595095808893345157962687793301795391406742550062535306684452318514865794181159922663434070029419511034572027168177393544236480957968298032636028194244238150957900141200400173245018459888438404556841877245276005615681759786639548248300011002462276381122078804545245923894247044377010219138521522361369103950008281677639165282538263289889644993758301414035081090595430699066440260143427358535074477111785888058302453005619622110560714889608442355970685524964634889553133079180702738482778198386786049813715790999635893792882637063139517810829595428496060837745272932989341617875238984761745553546978743588302084805507113054059293547072319572961264814819992683888526277561731788379202472463477104100804382114037364072447329578322875849656178762617311483420597743997226540373267590923438210331805678609291533373322407912374631472416484317871064670931250391080482609202516879284331937482274854768880591533583928543838044931412018710869311925372231833281053439275768109246804054048315741286826234579872757881360176100464874315575236502180738951667650628429191654191017508862419541328153486853695681018843785346080924315872121853789741180714964510279219409047529778073658159855862037235303773569478130141326896473217020949452847152840726638827114115872817249304836080035020754599787837466110697133487436647455097575934391803238623479419211508400882232537557017373581748538299082811783625844010246563075825862140017101716909710965731699458279622758479848249821899763696079389427097631465895247520645419396323113261440866847646571141919046921591893610002329688904907856063355463364630734875273164765215855338921619808992938564116462022634162157446637361817962845468933339503224972491161439297794698373936105259467171755036522664365469877509157974668107686286041695049420071969280252556548726027661225355580652273130544387636098631635470837163852103601535816914352081185755409920326770774311519208600485935699774087543941372700555540448390456544200292979777143955997405556911495654206181003869679541742348091823549930160418782302140512277126590277461268728516186061033556506796935291532563137520832645031754114347610095507121640587284119011451292519462629288034040403423679637758518525705333285092649576721613594190468695177705530403926752321400768352854739903338816217757323857311254340570410720428851470808818870501972638660525868925046540680832081889220199147369426083105171381454074483436072442219073175677266278949253372742224980345448744598089148861779316017858108649884729709146019391114583092531468352931865685267170839005549753238931525580308366683223289402898626491159971281410401731254771306029813323564484781542307649577784216550371372248231595209085289617252088713451183255093635971142928075731989116139081900159684723350379619923995838338544303293079802691328199163936900674715780163297846769419589832064050859586193607768264643315781086933076655790311395638295103835893450580448465218747058970393965519567748793755566497351544853734754374779341779286653049735382749218622930183345724540680730615850058439396779770334491512998934414961050058275627983458013367561304857093446847060133093440221306699398481257222249986159218206323400542068119773062030124403910978682230980520699389558791176111462349689152153400301589533134708500057399888195215810948333095195005264766520190560669454805675877787729713229154182589719387382113633864403978022486149975951587037824903117311089066657219323926420926656219623057677318164095822113335845517215471241740673744117092310385447201785531096950221404173970988177665244841810238071352080214386847638619050251892723525486495359558099040649505745948885129670651868308990972101671179363966482525545124587234733484692997521536808146919877075205006323863912801119900066514729298790512461989131779958942650717374979572974631836190869153979079403956479037635381516377523058657940793252937154072603349263305330567540799931250838080670194323308632959438435012514507488750174034605375092011785497251239374122255192914046398799732899494045192596867222133566458592407644204773254954047282480937828212759031455386645316016254891146691950948173067294055081127324680649879757832206075705792519961366453197589425815759730434356965654101548146629950024736548358737370595142071168820047888481276887049588250875787863665546220653667090890141433589269448968514587715523540485642809137919174086088914246722034145106150938483382263192532696428712417457673348087915942649967155721031546395162418830123031617800063431769869628485059269695068626090092423611348268911034633761735611989429666795753638181143671333361918457074174419225000625448388038400967037945331470753035720417162565999273078698848925529288456194434973629977368952333149161387903572800830514572947719438614271949509774773705429572970671130160741550019737370900037323699513802724877349193377977036587391688199457025487550605169524602783501808306573003779083887299772898722426781980469258787643849860620578022696244449497528863976079616680371316741941587017949112069410247177391635009186692609484094379257916046625740947686927119350024292987847304025678229831715708357038226085233509604554441433472413931195037805074524434548224075799376240333616460671853180098708499055156524960084373564313272687810275226591295796439770636682928171037090695564186867228088231287391102327992536571690100140903651503352980712224846775051028290148828280484180301666764374817673497062802435261035446836523230561474066193403956702221958303306535291666566086275722919818637692390358775043958384112452535508065988943074364586223873152763056894138122049490467632302000606091560294746580747568565352088190506394902325133598868095190555167060516668022925566573811878860365863556595979771693130736164192168592604013868896130363521499829068232786112247910458310027994922845787901461647812263914908116762763346695274775616648227475510650595937589289743395474149241772596942386946841978333492440458271546756328363430845933496057922109073175673765394060022121634149601400852728607592913155099346705997244364617919843711402112854582847539822549371088325023572779310103042041183570015427844979756360005238911767246974763750698050769516991341298035524859564404042368991255717028894330425116951820295668927408559084231677213873627051397252171151436441037804034657132530480224012052457675647999206909857427370912121580448847541965026907657117915083094885748603372321578312904959399304488952352428241929238113602918127988869873204504810097622805016564378544223365705068293973014628856104798341117556931623972780974550070413774966937011627728745547059052537340321616657924480141804937079237330690132969731505847106397864970180829090370473044122146875897419057874175150537622705946059010892018535215166121834458664196822058693517513229588726881803349604669989425946349547662787472930595163479536511986739419388771834527681493383366780694653652534603620147010137743574351845528059715203877819239566896273656389401555464790027459073505080589653187855815648132569153035420602780072410381628635495306690364455496956650431617451596452891100338017422253185717822850470499738436448817192492078711351481513054859651915786981900431956994803011133211889345386349425733592905392381734289220061539829752370783958400765066532504268068694627937971618528143047554853563996210558834261732748621332110515282154816783029257283607674873146457121221299126324736991133883286563669137314273445893904160542295082047726362486898029517432631566637562862740784540848432747593460437806011370064118434597555606408833394669426869051530882810961173948733539574416338575723566517474617106355850557980374946323470616495568327634469849229645007406614065606830080532768247185087870128167602586144880254871486883608432499348720352127655516669353974141086344577621213646745733716804462919247960186965951305844758879037935503289151422845146483752129136185433956849725969780081007011813544500449805665777384753356495827826007951695267862470281934640738137202011970455475300013900808988115592563895488166560150587454311918981925489598063718327569997335836395362268449536667620533087011237227224936642294808363336664342664209697459042390199351559533943019403978945913424547358512509564017834010927459862820577627567043925197198144285672153371182774900614782138511492196145616574795364029943076629785453949374651613330603297838260294097065854888673986277728115678349978032133267059683924436807224271560194037843188141809745677054518291858033848504591016534994899321519407406361164742897190247014051154074556077576822100807658799044420610572692459820867535127729760787270846429621162015585046847368434303109286370664213037904158432011611434554958255443174771513741086781388999953127638409124072962244691059790216989943144902953536473851400015282998355870615434166697434514943522333667582638762559440365183686996713573866862385675893640195118238098056415385500673276936786466403522694303766614174752115891583373489317760287986156128801154874990821837794703017365565386170593724068416546150866611630145443377539126883896062267954070830530573918740818380095077540350365308549124783271933973668580588481508755699950313033820102550692669217216580601448839580113701321908476623050857621773986001709026352986271457244228637338781911356195608280557688393428307782882389341802653776312988710909552936204023211229682079319225682699017960064624511715919830665286505908251338730887818709304629171696890096891322837993478573751460962101016013056191070728845847665547750294348686869215304677992059902118990904267608816195256000033313543550383515092500477160418943212400693122660285310134376658929786541257210245315055504506846105129723854361992006189378485118765836674567333091555523215741438220821975873770734384547103426502364721771627330306512896774103857341779953975198756728996808887786345811032517646317658675113537496627673157236210784884683405476911487372436116843238436458291751505888819603735551091122668983034125845054340943169882663107707219396838325259190208050680979966941339638595723843126266460522917691419843395623156078230655021776401363402176280067852863486230155901141977613746625316003611086143032149261592677478506823292554606020644511235387598184686945454316988727048631541069410198339950279178877057720030405534706503081015594672022681182275501328106801505407417877375407599255084162823128614509003335340222432763738946210528489476492958860797349797705282930724781512451131896267536667050538306919121919535282166561277060402221097620233614728501789389570504502299580299938947051575212790382530358447073996278792037172968347130187758156213527861505279819476731956435344746813438680261799644147936088141371612087606644204769678941480359789344985517207811028108550294749135149813972913515647877410595748536334399520733371875557432878997025820773044345994139639977538270571851818269442628370400924214220756355026123267289208697943793835404753190841060712041002876930429971611568766892620965007230606418922240379960111187772691107139960428884969677675951760716278919756941555934455510543846324433976506695294461072355501400457860452001213891482637775043009274148284126295805903530502185472739024097772657964161730069716416499246328838023332907224588720596455329775283465665507343446789221825226542716121262133009895397062603057723226671618499778118045077690898461379374409594149474963369138963211552531805199839979730856588491507984987131531911995235346546962916385874230717316125032873104878491134522485645085526868493031109749333180049441163770091573804941540329277707299928555159930093702032577856839192292392630618939902178545528161341536890257178183194494624418088672509449301944963120266805137032922812701699111102451578324880161972929049141018953265832395043392721577369366383042091881668919044200536477149236964600126804058660123378881493783333546204949849341316708977536311100060169016292154097724289477214115963167896185479108556616126501953599373304637985386173488169245424988987089841186232485669490379655834285661084993433796749902118219116268894601599487464662860042686614470019185153322393410077996512296619626179087363554227356885859016254752154660237772973178327304140426286379731057990005467414847124184839793290229644408722516849802898770150974823087061356851603785972381972297736321253644252647225286510196960651181013301984668397148918950642528987955544652005235209811241626838478849114026309656675277422742003892466648594387075746581949644096012332766429534145530120820540984004996555461829798720537271169644777998797449606499378335145817863306846567260112894881644262591756244077609423209455640143020706408941801384968306196046780006874603533377500582049415211544300127647627592166312010358209985104756626903591883079933187179358199535563620136091061971989230230205672520709617472203446645725915725172627709629538450156022635218468669833133569215775717537553965656879629327334548647243233796506572235553590230407542826651395920582015007350936941689247514333145429768505334770090840207459906740085142827384609771625277405079247478605539402883848258911763932272365319225166459223193135610381790614786801972030146366757158871841170970687641073849441554182806277525239318103800872773142851865410767900194593157769655636721938926045221028585564934610077914062111686049233080431558365745413560367523413657850373724696721296668614004972125745644388939275030772982759915077907629217874865439735692204037392197913780572021070655068482711140068100390348358237691617234970804417703070174885554013577910315794669861566932191787218772249134799312571246621284871758357031489178240135061587633944383819936119882041257019518917559388947518149429589918612872292638596367907351504006373220645611493965937679237433498808821066675257727671044340827290022182305391849063770861860833666351764711547113461613112748088954995038260959834362270041900710101465683327514191177615251744003638468655892666431891203921756670074297796763909371585547175119717020312424229571120865834302329478169923001935405737211239042423844096549109866213340160902773845926637407754621591655806448218625594427122422485520972092584709495081520166131467688904168938076214481516751419749136232059853495446980620381894281837364599983449708106692065638847619174594174149442976841567044006038870150134864971168124692779479917681645478256886104918192593010988318805314179985051316986380255597368781992637854077010591185422723247156778990676394645839629336675180635619369769972837381464788483675481209476602565099644788263084949405257179439025137801558333328439438867565942596186808401238288493446300129896000517807388664378464068673731127713922397868613107110438273238572160966414486922194087222222703071448996173197945836898120035324661167971860673598313208461773643336740690924141918942846482951292604136473048693632495026897570550115735698187082857965964021896337578297686485874561867168491934165167876487269643487290980108991658053619239215086545036073096429680988653454872520465418788824914252052556658343040704298138245888153045240829369611001458512962578084463044970443541972124453320983445981110966181065535980571837531426542426908327239150704346510675832293471485903187765938360786243116270839521586968676565454940419035005124641292181123555177711760989332296119088299152337827353933681042456498310804246436639578541955384349342964264225310420654999184187865376959198867578516754806847466532001540410414733170112236279568159758803020384307456563917641700499583798946723169141214702707526556498873594520150289834888120557901886454395548027502644156383609034781488532638730621955362157993318856559939837814707862433076364873107355747148951404417114748702445427368788672639031197632150258759577663995281114205821207952215642954967591618903361226911749250479765401479884618000537046333297762359119882024019368586188521043662357529739875638793597950332126238083879839615646044763140038254843455797585386047671999350843719975433277320948020234238500632518493286238707583086314042553429910907505827868026526223195371599277674372667257973940992353356922849285933317221037113626215033714590941913715151685885892299101637096438954958515273124319477699314176768546302073813205507789873363063508689936798269806591343585487556623967784685400700492017125299442175605275393889341489482745296223237105376579207833443258715363163367616975462119340019105374446271452101392919746871979413900413242449804912338013734564421275714254646251740706363242907143864404748854875495880826809505576033064974335001996173564328633859991369681058415823395085705247432527142467584424899914704586956556791161155135272639622399864145317172014102497620898457347915141004439283345052262984420694116384131554381384819501575866368203336790937606141482561969699974349734546161336831062817292677844143006243572140737290901351246403429054991784066890762897450256110350267797981685714023212663118447064500763056517492895084895883344438349836895605575698205901749517479255798223037370288182072839811947440270535963395770437086669428617084978667516321191065079976669627902121582062503760904898339188494671441016036476341544966389184613447086064240855043924803842194667599249727718632743640114083738941523015067582657168027321328198851577426776061197723443811444340257115847745647106999515457551491794508306918943307035399028076304434073383637660304952061212211487945845946321707319957860351044117097579849856307170111212252785617957696317462480692991049004768068550570093384864507732116422715644423587904172111215207108764681131845025090868599750459634447374449041765783234401766765705813810424917755976766380660721706809472709032217691467171775306209289649826117039732367641161421148860956869859776927578392147292301486986645806182123512525614973294862955640797257209396626914855737015921525529493213146915353902058595573430294176420508581078799551670370589386387629387559920132932409320169860922231702409560514278079930667975376645093321684662147044185834883337034364196308939057625587017601630534021457120497049948197510071331284215861395208551331068569483984411915349500834505612225778133680448155526156429387756153313187290607007492831826881642605399055883193059721768270548525873646621583900430176240648719447569970074137928973087493106315639863108322594920542015261044190072698892412647911234684659371957027424955116695606074610306888700648730384817476929246137521271645944564141476199471601707335641979031015476101848867932228275873862436351273864371088373740732301496987522435094983070171069649168576783035413002589597670215096639819731294640540045363049856223029215334046463765777866549007501974933482641008167699322042453782370813241276283868129506438309330013312603954115914292959224354002798427225214976093500397416135846339955928332100113214013700273924086007258973051800919023785319705844128104190414543406111772719403167046603924380754765514536467503176516207412838241818376712126707751511185698415125297949877619219481763453138098030294810700929581164823904339140618688689507823393208414831154689406633680739674390863845849874289402687698704146844380327147722638600986792717740854868726456048988532597461907784940768852482160793580328850390080502139656929553996142670092961396807839970524313223597153961382838176995928050064484254090322957317779180741789079394003090386426749756459371175841711704889302709527377778822447798781250156927982970370193246418821876802216715684096678343908908377325391087400683271373221765928746961317128690082066843460045433682341690311364499290121639865938933525584956306012747414003988519318553103193979152513547399152717366884266498579985417736966457896699620332783398066222621031309411585202369606116583293512622664328271246407986336056290702641173084641081053039000153426018119746636537236267911147289675269846616113540418451864292575885807397694047481515058184025771424362256236403485476595486704180690994552544164534367650529525008471059596771435643678629931203906419408958750343855958196977305235239221350184318851551332154928557011605023884326039030944496116949419353052074257289909337637833028646828615647779885482146386307751334909020105881307588650108948666169760334299770444250618027067180133459281707634687192988729126867345172039964458596897736082946568840640685986299568843403286449103297151421786961194426537977798721964404487323505073277116083457928748032978745462290029559126288588768890954722706468740307884504627626619855924873885820693135962353500579125262336336540900115727587245889453470870966371927599976588943506562579663983410250886356613133792795664275529409529351666741097026129374192183211647410021035997827194478055992218075253432936142750275439732265500674316639401415354698561405338301058731118536783898484395299367939604937584182558173031815474489764638646234628538454399139252798314405985613269503817432531041862838028973047971536916312286352191214085356470951001489409531666522306309179639413775640955868181463608649115014884472610490876412439966387901442096888025439305949810299207040732001989506982203903707882134788383000633603247705164823916073887447276628521366187813804965798645327767128164924849770973095430471660437415321267123887168806873349719912500515684846735490159010790865127890673086274322706403882751663756960773678231170354315524686924790504924281219929386510876658014133442585319715766625707380462200865311813051659055975378153707941703518544044758925500688516638476010185809231472807834894295591764231899118295786846291766091317034273956515873052314967904820314903735547565060741557434389725823404527189282057573653564449831103832381717974410869045598001677445169741871871180025627757554491729099005334239175835600244010557165237691571393327204101589308902641101156807282535475382359214912844819650287896703839542073671482281890852479942158155831258891978754613003441780679365994481782982400821329474828107293513386894728370728742711307543255634831184888048286627632060542448436699993925741835448279970169092397531615831980102088142506480306393188788748657590809592265762266477963976628504475155734257649012749729887487082094585505928421024666709970738592445669325096544117641334528987206856496370609676536838952010170762919305118054697936487988054183779558292391778274979869112098219902699125367125327143178969119875014228518340716986207422801077643820163652585174482552351245608193826917870154728877671638723024425576992423055184075738698304226897941565423433527282105601629480467373270254225270053337567012002862624581683127919061069989704400821186598747103978072870781667531808988057400478952357556497537703758018257572708575791581677583655382370383111767539821979650172405316617306488822996923036732477850837674642927694706196616141328410041661882883798835059537009278050308543818584683275906654223477369439379195550767020431329829182180281841985138653714584802867167306675099059165371539380393472059375188497344085202409625433496253800807222386664497145945226222622779284547414430962969196361862631791394599907709341989855339715253651893364627380925548569776190085108537069082937238607384394982095184621072625379834356176886904588550516524941192121279169349748208186350307672162983742780394050793031053280082888299673565480765799415681981544069191626246991822082835253471720010680944081421082927537587868147928067589999473116803015719239324834796306300839908082962484089031384703537844068827171760332618175766109933508141123397595753994096106714813961233407536405486312068705805000481454649856609491846587445624818157981109709533571231311827434770958184784463700676256119179530763017491460556010113679993084219899956025593048315687936942167628101921210211879562827715613520976534227250509199186808623029744644586282281757746901534427378037887693377196747084562541246062519478517371752452394290446380428703301602144103016568632753054117884327975535481111752481412410187956462025449811678859045946949007938042241617967037313043392818625383546914184457338853287648916640767022299448624907475546874415655058510882546121306556023662582871441174446085176870097320356801570706541430181028099510984741356091773689834589261843569667128940209091522221085950724458413283075825366358843157036814886862112436907347109738901245156271781128835210860479924550497893431248944509755336549368079144026550064431812952117721178013081032606090329590532544661858931312279586198187097477578018758290780873782772153520058881258910961673296664913206107557410209608635670701190675899874575874872033579971612995542938315316871135882449331580914123436280805530992418057032024244120696962441578533086909640373876575885136155401263331008021393963189016959070425994357254428653540614097174285232610577444876890382647206542179652183480596316285882188948259171300888714303811830327964389312771724900466104160328089159510849075924312821453470827678726180992981766206397992526950147841981591979891995434942055575043820221305268858227401457250055883659392964306451570876615866143273101095786932493813710884585797721854886653633263274164853347151291411070351428925010069098460380229350621156707336782482730406905353898422057230767676214593197006749203697513797420257849020531940330453731606014247202816525169051558447432464979734567043014034768724139226060117323948831223699174056657513364267493760157195275344411251630224664677933630817528588323755039320209002454267544209295444788769525529944253765934831045184700127441646095202530191440824513631818879741765996930096472408297456443400726124941850888740355163939803903928500879715572216034673821259665225915271275539743108661472297652311910981513288046313459138771389499160790129997975644252300079787722222349174725684764949284196991402792500301526136906845993262101775884344531344302592178658634657684345912309822684855033114028143293390931528258142154811903260483765140974796684825542326902782712851409583120929400230339243344110762603429041495594764788342197042612400404525472553798223891880228987256714400577941513120725664233662753040085159413916772836155891601524652249584578345114964903178074274127441670407656562651269944370302108465770243259615418209273843101962512856565003773115239492377898756496904987940982756640286461943816618855082672889668392952635124288530179682342817813024179159500518621420773667327861652208518725236854240108329796802621251647935249124391125057468010902976734716038357574747946637013069732376331522858370422066457260682758289879631584293308482430674998545250274470106974890707384407959690004088525964669414625452405839269411215418919120440968860404382561868721208983538471738767134248353304967827136054628427925576551349308524003020789579836798069130214087536402161647036626723287163292751304567057184266784703208270774891946030087550417893465887778363139070085418768527954572220111777383088941445544860468141867757272713642136184393466625154746381987816019627291288564446027577439752415716286941278060290111460181476168276345942054547542930490797426858167591135936418484260049141893559202839439406458413656437921003418447096607612717523544546837020981284486620797840547216875205386075758208920430209897124907877540014859721587709785119963953743382452806308210863677129859252112707932486268147322583864724820783583843541293567710539157227378369912920176994259693669709436563884262974302630370287264229440194757852077905987635397256376053815121945750939742868531940965717514352041845299583517160949239692036014410833181732887107954689731493216553007080905440372251133170225676777209665759691481049597409246862606145928945588246059627408693427825462568109704512536706535345659306831521844110427976929432516533597713727176438761594051347046923314615411512922740858455610196029052929155393933131153401298086251389358743549578331990667939012102884951919833394334071043820507020375833353659291680662316732004955271662962623937185942220075976723235102675000824790506280527939137137826355852796746381710471432727736237852552461783492865801151499976032440492721193454838837971568549532289412916998434366647196156374283277677592592051015686316767456774914913528543924079289478379889759379379719610110827403885942864174919900350006660308703882921066754234238947947553120883831522508815721721571394790428687761598088793187388953692103946980891538364046233389839829061285967156913695263022600884556070959329828049755888157579755060101475256906148227834897870872026804713218618160431038328087852428227591969466443740632485013594439520620082637280232552430893687044157822169665188200791687735156667664634288716974919963136696556418430168684798200756641113128424392091388555323065261611240788407882174980552376798604200143315755964481143887556865372021433721013220318634914751105316876554961492932159075724717253529605444907511854719597844680171471811434525901316920223001644679828351884564251831386447370617837566032648304323982026167412210167988310651982931468479476148860926521925113693066966371379805813749882276618156894710855524070362723049611820263777467373047938374953475951480511880144724486371846014032331204474817978700158033545359408683080820260994653920215376426155667618567772682703187754739960654938295247459876593732971629552560682784311981217640653061088139753649085943356926055420637670744316615879930652914303767321938581108546257452642521167775003470297772497289553027265295852525785273640038459432585511423893504803962526858367643305262644663958142565460120464013242573359332720965155192040921614959138976551829086630429007271759420321226831468641903792536370288441345598740794844271386886430189571258959537931932620531107259970407872888233840015109316631722095847544591554658220841253540196395842392386508533569939162694501884400274136111998937173640394002369783680368715366780989340268575294275558818165080541459931584243573838386142033186944386617704931013438524042357168721871357885046347482680666835150604099344003651400008237871285352798184096327298939439923693701895405546014780908477405527454374883754831562803104045120298591959256021796505337439824103434473489366622549636110363155901726964604273643524475828251102822962443898766903389366105314478989180943925301361706981283359503613813952661571439753590864608752183601228423804823232786157460253049853759332776861633437993988711579557512316436623252547660578617807017489111163599488311546673253078082889354641467596184906644669927457131232492834513350477227957337934181672375734863973657763519808937812471043505625433340760617792904419718923385140895513095341119460879420374806809351308265831289075155047401640075031222555852418042183512361428851481406670488879691681889018609349736011042126224851289844902873007042102280348773069001186221573784612335427841207663213794064085016355289919804236460849463889665150736648427526546774879778875171956978395744410257554909990602182936246769259129614649881147357432443245441224061956262257551333721315462418397424435425920312933784712855743696274236483302884352625971235096489220054179483212844969551202861473019897958711437365647834091823948404072117046275294561765635419572380002229789189941000362392590570379211152013206831531855596435883408056487013920848342633702555603417385173125681137838834021431873538686489577856878526108332238043947872830578205173672736611513868343966999654849478531521224217168102673993407934729486791636017848265166489957879869288160899605278285671270940051475453044462498726445427376062191048550210118229285632178607840994776150229298073444403892060182628044436536852625714242674290952046023339411803508011689332104185799742169567971579757301676086348167904010265299077390330965052793769064749314430873272112752200205796965791071191275808938778416260905239727616875028128701614210721360518513741396050708718185636923894837983065207976575213879200783891600907487671418604124307392261474641675283839801307303000621789957887064086141126652422062285646956350704166176704675180060350306217249156166771940624791591974072985465453912990738186777138432046899578306565604622951464979507015255106000874756181779660990946906088024977427335174636461230100736922417039604009618525764077165147184652712632778186798230172511638602098029357843394058747335792328792346308121004324696028508969108154663359634027427580641841284739847263072970440651805706635128217280446726525870825772386975270079909808033293214088983298021544554507684710995668262785827344803010867426927011241807256199941825736681384402552692170915116297046325585895210154136177566418678074063646429265751591478678800835109725052469713133093794674972427981598863570882532073386881877112845849260415996454411155357363316482665404943785035831726528459912911693075082040757454057962921890083586152738773190205974230654642979846453925996084469672362429545177038621162690534897958442220058086073674577454257845898997385762371044720619989953282930665885781565743333792284222064105183626030582600111563879463529519498980579326998697417394441894463893182337760866751268383696703579832952702685992729288269024925634451346008919003427416997604786783542588458752226327495620509603090754603132407543256693035002556020457805195495095350638167126898349867018166458099943011768597833206717829802480450221904122873151971191558265319165561296251181690865782639762198515039552809970061735333000032264403952714828492810017303056462832041415209368918503009374935303863055411314803657355069720901153410412873693270244100298840657860017299059390898023893972130603140804415859071222202066673053491188913422692885455427259345207289527114270947469444618096292377633935657720706410127448988496580349093759916849329346287300020380541492529140829014851027532178733825611780883448998243222282270410270229271518655383478668332841422053939564747914022441170518482219720718796900431578675854104714979611361454374371250229738937536097015434819800487511793978557757150563856568709066139505605323107466196891283014077255766808598516358568426168814452770855860172312709010899490445253141150349040285634310742947134958604280147355028546331613656896559295257542848151736175427183988180842963049386248768781718394920664703129273067889471111914423524942390101867668800995090707887592903537719664551173003580261310777492660531981635377958337548859427417436153607645538616615271357946936600275446697352273404855915838151471998878163358039511871219233789861337425615029319560671338888731941019465000473451680826446969994824004541982089564869642998432145789151400335404717136039663460662725212195908153091966914350003649459739212186997906604237317194529161682567828985395267528744409199594188157227540153151631387378896075354845573021471977940746684087172523052413696441051482221263983646270124110574858087151662669140662616297297279490694776830857206114113287277288699075062531562974993620816833495878838691997217574824778133862491463539407739227214893254057549634074500601055208531604748510148391400477475603508951529544922087828848234900689322600406236522212476956997408749810671223984622740742142394363199196309410190809142880679453231611454611868223120069773260827113960657347993814033438147605881169554474680959553149824457811379074365062769699809858707135625685007229698857113804265636795539531050749788892766630890988293636979145790961255200079253308748321472169998623872148647619952540190188106182680149091916641234461261878049992665819387991038189688421625096100166356961260466926464900989288232520091864020716054342944888892351569582629697647620062056543135273528088508866918453057020664093158663909961882347286836397373306103652583704619115912880802200782337068050297818548041379143037176910666169370961485483083033083673881482674468657088183792855736901689670461791694686361538168604460490866468461102714700040910207867129940209068776266825722592689976202618594026739514177403169168422665188062353877747080274751317554612640822632377562185297744995006183644702074392045882724708070218458814536957799739049909338220880521096482643368183789080550081868455546038635322576536237647671101076060830316582555712877915202879769879247990136653736462564490408745639786787904685262636559290926404045834808931176597938615488366188629586650724635762200933840796570642051846647219948642569935772865179802041488248888328354406270662565659846048169646502683724687537492354269946763956861402922539245854642074069297600231182969084287059258168320649438759529136853298486204215290898353749419075753518515967212681395525459074315867931956771239025170686265007596339396573641500065969520727894410950342598622136524444690741275403106239910157668694755859055746813362970260526565762915501406213037281978329781769698941487913387996289031118388996012581410350122635537642040923409235512647984506102549297329364469838690578712395959473082946894800776647748725707780167032772364952893556688516008818374886962313333121110922563806628760774846260862406461669574899955141015276570147564159072928631750166637144232582666957969529700473712266445648091180771884113711881375792729171590235173243354191698175433830409414324761347776833600774894544818231647831268362085172283350339795496185468166836087267594615621394253543160715568097514547237293094503506422842189136658859280891172481757983585525355706477180071767936975157991700326209321216545466464417513795726988636627280532167329022252934328859091831402464029811693983897086028298892181497738026909108161825445185225414047117561309141991046364059641177902953675961439771313887385246279409441939528882932259333247482593548867301421070018478302567115552545575070072807462172500342911779903929266541632154438142733689648711174691025929537091567743451956462407367189398335759963878842129682760704967393697222339672374913044656787333692562865960762645693613042356157130763652073425438950920615705922406118865410381022453178082411486652973270064972977868916919684398682248292216073608670485286031698214306074071843716047230302631824233734881816501177214853424987733327399288555407984774216068998576272801547795194004045129905131278363688329269428247999841961094475874240192665427927799052334841277541402385898189860767764762394315314469475572152862667060391560437676217821869683088420443134181883572245391592414072606957966624212181177136395902029216462369782124008523917011515388097263187339524877855362453905397058147565772769067899760696801316250751461016766920527624700659398381360663922125302169091685170678117652359137087512698991995185227483606906393566694041912151482810184889233890055741002068594559564373666140701379064945100759099632660017500495326380963474153363812729891303825804886529548685487079469608795575666664087502274843334617395758306981218115309791196375674734395620006604976993673073801125581492643683163239950719570097281730709564397465258376568013736335135122406276750115844319589415978804041503797738303614894281499414552621192703563694199483394058941428717501046998933087490588105550365584872516287919755438770017182848303331875179937375608016911401882976397283360258284237662439790004127039043027888760098270423302653029762785574939482078219503391039278455255777776809235642430850608674667202343455175454249381408846288867654287846280965972146096131337310633664113670531756164305470707158996003504044695835628852282694260496686611690023482297563652011662296308393395333628909142917068190988478609040446940819271823990235560138170396650316232122903212049165277999933817811942779219672957160064373080794388121161156079680469922656610017604997252161334261376118923923189492077198309004602475354466107860556624402843325834311277933628803285211024881789965529252793223644358149009035405712914208032356999476279258491981437354208259851003576169657288915330279542436414714768688838569233337117344678107236591304431446458113668527337766874509846274833283358102773649847648555107975198129434816899546854335059295021077985593928686796609135582313757029963274738582938236867682152810315275949724526381541157213157215981587072911619897192222274149861636871550252315757968037971326940141069961924460718914532196788504052928930670579749945903241179670931713541235041204710023132100119821255322550982367987621482834143159046240716154144399388747247497733923755650654024734392655343975151757178658815959769500521566273909154776649328334076196770765240164339473010997220827841988002596202723174182042833634665682195798959462732457518858685393836260895350263211852995128514287695273374290193528840756841054812102225477048060873022242675856462373319455061721432306313568941699176441374261131471850984235841797616914998586215927737049077949544991635430535023800379388567945670500889561373735915583148585734095839310561597386663997227117460940140449248912727087286285629914192791603399603012278863106672044775636154443653794689389850929137482379898194821298105851474863694822609566339077967672499676289214336916051496398092013053534740410584497326750800905233517504999958041371206434560500255519132317710886061072431967594665123261145762239816112269150845786545380457815108151650240631853561864663452766417175288054475358168876071301286688655271026389487858924967427436734840521868542384427376971475183433276604572354507972128225997455477248960873005367686392119649519395872500084603698645428194148315444456835554689547167390635646674755493106724443646206576916937595703677793242224956899567889411603095055194404552345749799610166664259347614162375524932053193459834066586295303488215247262882768446523407057863475473241128687285802634445725666015388643172396527056200648089368687742212910112261907017072286388926000414887618310432559577326772724240413796655521596148273130367196690845213558544223827318016427000336891457182642541347781088010009845781541708236533068160193714552323123365848574971475318905870399830322247060599885425953708949031117702263762944053327758169907153577848025674328622378425621765514982095227569938697334131440335384169936474851682384078598538547743118448812792386557068966554481586046765097541420515821823828070711268063456093494530485118089081006089355287671625625271434226745679254878782976250754884345774641303047384727446373599030320989086341313269060341934392244884455943382158366341790171047224234763866010655612783435699190428711704558085044254633106436622622531220050594305738231078544742260686647677744177704427632649076122728096610484386821611325383721768783994687060295874804799239130593784967798029867217380642401442589924919303655766625446423589450761764129322039305552345944515077119037150755310147981519082434226121689751396692779955616404746184669071390742933120542955280667152384140245392928206488852402948591232749984210834444266056271438201512489999587078925303657958957158806322480091533002518016870073425278612836570959579030291898102557500826059721139518971402326051214909953933448734956466135520390718784772723120059196824273439364960583818121825227865668013464473265795094149221716633657096348301887076717864252443762165184369556070646845870565869366238941755688991097050179904957049766865877062116154533780529374328773096455296663629883377607220649341904005177831325144777434640176028805478868312636749086573892086291477732190287024399170693542657633317514219521446342833530071827642833995364983489718800039394790470505938951960794503024330681229410501512172273504507382121290890794315378318344608398669328453833351435829812333919719204907365052557197106168903046119994282531879047333647180780465195798693083455713038356894887788538117337120282398378648565633436644774664591276053113413521126188899977969901081669265984132164073887984985489808252684235981758492926549176445254377726486167757842805760096399960130306177520436312904981265716214146726034283703685445202433450626851046722606010791518769533610597067608435527113975522273896849664848352141022581077287468006516901751568205903007316028761637677132624361280234338008391329301256609715742043334263024611155844083487810049906898735296989399713328828710276632977676959891711086018942433184013135463775950406823780436013427171053083404714340516962311977401203550345002757696529148428872759417631095757757253151082809141441690907392378241298856414265912998105264833642075352848095987292699602275552014509830655590927383108402702771238707293157190702342444221790983544978752957921449427007845275517636399084139187903539636898186714394408457933514639382389264872339257335971182007925788987955830043434983809770718038443997698821097211519429355156359369455777082705226452538806845156661650556342044505897195674397895055276343305365690378106817059565188951723976429328753595707346746401099059587510424973020227015015096259596229842074279308720047456846022979818746065128958919926051885993391486129691932770897782480344566277915649450067964276766546905879294137282848671409797738644475827751262928557198975015854414093119504332093192229668352197975119712977316919920093379461432824016169084376183438869039954384243949744450828472557530685797698935929758972000137960369033063023678806071708395933043992559677843098688663064903441479086510794255285747201030647953722735428431843397622651827935304327283560302415834599293412954994374283117227791522696084562474859938707939452904598846804167667359669695678095645843399001368710272594743797649335265201397396116125651402516375369073210963734553760211096205166947052659299682541278748009160005657475049152323415057812789925510513445599496990067966903516491969831038998411352292481427777977350798879414828260000536973350166316209009399788072542844916618204774157374152735867795624070450162853093319203171752631537618365891252853059406737842818038573298687418928386442788901989607433486639772790105127838185989883935076871493054636804540748291430431105858087753666061101317650512825774090113942860455435158686558062272016362592710265770264146593832176732187801100349523421790022345218581750299643798550450665829683580343030057357601994547088162055254742131868912849928616387546284120051768228784260397229261882559028304821607834260708935422912650589028074957905332883060130182927383986220304683620190156720829924215647440681558825549006331362430596874244756260455191208786784391550392997321481008077277736912140768845019144824650542007543556991046051489175971153332802571216606187721537409387394630931187665976196251982354157243817495190911703395665244955996375140338171186635083900193435521538891071595911252717852883149482232846044530909832703506891816197503048411182563979843210150649499780299110507064433046732916542581690753168746575459149409234586071561070004715751161099350699524190252946505986968014671456491618110598469593788190737065429827528652205091485518757802917163654616287009041599498035798324891950937090191579819294486058986905270816887047433890885455078438182160860704378168458654983697977877067641541067096598493796817909750995982396057551443878633495013405653361308574153596875918177182348817170350126491116602332774755373674244113594788387191880922043547562645786402108079983131699186341272664304499956143091491106474264402015071993115515630057373403986464572686722059193064523844644469958932050034792674648162171123433861170396037851316527951651770896112278771445143014903015637425799687784858251670508342072455647557690164245623386132711928335100787010553697078998870149621956947298472980553514140422954204999647973255682392538937315341633722172848265793100649523606809422762067670646401193377220788501885445437059052723813616325527481766399320700695325050171114270365803149396427483469794516802368667609582873528460703454289159199339587328204119161086916716028330351420094159130496012142004889218031832905106775124888960147605676402483958888866895060937991996934264075242427702088016220943555250934202991202257088571527862427217915398813709904872510985757168242052380552759562008057042508884077354587976733779318081538430457813324014456674796357511826424538662131773063713973575161319773759854322296402071644540990942815859227987389071330736402923400220721124103101626813152843257186431554813727234024429021166830962793674238380476221039124783067836226852343839634797369471519626693859018095134881534605775335638434608152288210029322376470251825759170452988527505846051916859312324386732586207785310603861702046480473543096360965430230658933991126372417072160278881188276657808573838750170339242483102899738888952801905379039671014321517102856089313231081935922481041771826241526094187600900127057817695826898703871616448315041530619846805504969385372579625987939021428265018159916053969989949349751458833794385858085991738217389056803345650085788471818155108130301434555397438083817403459725623309497044389487874446248088221190035601931509854090601456980548615138694529241230524776520167322665488559671254051867847004270534867396199672560564784485312223419539546043626677985550827019139735315959413200219127933556444784789165731418503616530539026372192157966076138208465817836067972776012487550883075279887490094872822130574754456461423184120274280606053263355036044183301371032403222106286809559047759688993094459378390751630762470481962393775138782559652937426354897779574736269313564291493640592214730709446554653746118218830355337524727095089397781851621570501860334263380600872620307248582547028927725313355064261997272119961462467609069130416413295841191658861582353046356889461194134742045918718546192013205894646341564551193833931219736826500740840443967935179713654312360754202336155912368472979727811272376121925127655760258198199279361511083881719461853051297834767815479645841062303998285146050263489119461778060325386739486398633874005406977664920054573770777232189598109517771489372759356879102489683530153211912338688493396601786456847716487852332949604429381402320891603317931575327137077899902702756149746006472574786191606220692078798185131173653413025373129755422259859957783961991632623333485791606722099165339019576390841895312032363958321504661370343228587447520626820722315363739165252601585534217029111834481124736001001291156266376873963071590462256201620058125809972156371110997890087664569023704055987174542016643304140299136772926895801031011318074861536643200171735912132153893669322708573441298251463679772902472373551459052939851506476488915969772677755820710433186427254337479694031123407824757075845074072506088237273933975421002226257213279021621594991299894901442400782817104748938825559346666151079007837019833665257027527465857504852115451926659066395274722795097466334582628330077951397349855419881421441294683459963307382973695759173087233626402127825764753022953344510032081562749846649336668110068159167205888238181388480037110676103431092386226296487882888726502504470400112999490922467987111439038426511020218922372659423574936275589022196669238427442629484593702046854827386568947383520284120528009729922841766122502578602000117635016486581860876904359640908026047356147046810092626397080057764468910636255843972761452284396978741177473009774700198160852302906753662186744224668588810583889139617631232992822593487989519760254046543542587723331023891638141309618609030602729020311891618132731937518893503511792565569472035866053514513237116538088610829046835349868438032229642538335404618917005599921877521809859950689800009648536836668357204675286453055445714205610782796948139923858544419321562650345352064913483068130004271045848727187201275516485179374300512328583328561361121841350725755696924994052676913600825967585892041528701518345591841862784908227357907926506483774298731239564581172869282478236510022563034899160486996779993042165402801434808961365378254450617232654656467962510234338215313899362064225782895559352498910195315160833798907206082389408826997457652711041133690912972924573004294062962000023422977633273327856553352392841752038131843847864971845586425372662097600606037418639383775500628794001270113007671335733687720554476240125760350222227566182565861812510839731568521945651841570397381478346037878048042089360564946165909544141508677318750902122488983188302432939730628289459932380697018495579053866041200845031537674064371672180155679610263856297435077090387920177123697830141896944196650355199578447120301548130757278234693644373942387557093752944856189991536392826426584190899621673256806878715205341464893506105431413697497121759514772342752329226807545810275582812257960364094390260884570867034894790613557789886472420633724217184069298541217470500178292167769079992811577906779450894432828557353969932705583443985551013485152633573311519761163562143011920859822875607611061229751368235238509642429021872951783380405054659430944711771529648674472321322512988350095406154705787922671050171641403471979632335631049683721567881465377710729451736368385870915658138623626891016362501057351274536596555524208324824135695388562380440197387411772076625678430583351426119981390202963853731250601241289031311120962155792975959902263672033740553159570234413322177374280907966981424625110924350751040251385642646440409412067888364053413844041844990401947668273458574977519035237050703180280641115434199861597287805137342203986714372896049989497941515484889865696743843415444037165395864741490788013538582163319531923731522430189277535561814008068206035131295095809766710187333566971928605572590910258087691509982952362182502672976783119933038817321957270376954943373207035738428191994325878392243136176459642365345603650940725995128406829126084702572191974223869860206851537050937417815293033264164121528802093892160431711470643345789816360124896367899341389302299470621217214714391020732060802200078098300453893229676101778629235478293562353311428639805890140402850807472909022733605841014584587503142763128034224854197032910261820271138204246385942341045643534201702679707355590585729867443900626220440293565954645389319518384464069604208237074456676797640161060388067205069567403553559137521529401479394700695027437735504320486696542553256478919916578949231414717021446298900560860597990856303993058991322257430513798755859246997755934161700213607580516123958727392340229175247615827983516427215503781159388648368575085748831099831234801988449709911303593644597755846164608071025238831513188886319643648341340223801288928758547595128206743661323273395601520494690109505943900828497541361393140377361813472192131332122048799916971581633301390111788053392870339676916079322930603447812200496990288229332233185707643967714461323054625659485704993561812250260012515354732447210137152743733210964866710114403055576792816804546775992021358655765312053296415582322021293080842664189464730585196587194508095698352933435307448200380292032270277875276996918731915188569782961421982552477387110883550485261792488998317777951780335091957025868301032953388561007329685574839584270322387315569991146555710215977259452210884543981961046069737568086736738497043288470243762102269999318498673604616973304802523985274486617019578269470152520738497776582279041840808895997458924501590607970203882306139367195995141494830249521736468099168154448263760486099779932545947892763838480069043416357567399669848283409816585044474418400003886490349943643719702585794705381397909836106930797756207900759138639768610533872564320431010815304469612774241039348092041684697103523073025792063120326573759448748842114601927580251297967365889803637790161922596321811238519836673347229092684173920846566565804494589963631577518364293628427245247050373625791820591941421749564858523771021240196946280557147326055263512168475759425892881834518993458893557499851502484439829452815141740295018204818777513259494102513665884246225833894693814673969637592568569077801367949012467125946869746898146082255666261081566211028736317426968089059506439534484137567100664918615427764308142743822891328798675804049789406704176250093528144102238191334452801121595311724741943349499311892844841006665839337704870962212149377534716044500409951892137631164673265861383594107279229596098556663232173586422013724801220417356182716555922021422597769689176562600410567097346575923530534168213757213954429243197643504487117306619640469252189986450575043090365544387679509865550053062988239180063723630180697884339258185670003295610592299129642043120018824420200120110844596697482253063505703958134567576157270081588792078069986035217462490454061944036636006197289482519650528521109541294785462012265115992977509376731779130680028615430974550374263669817386039713109428704195413949748529724216904359341110349096746190449935691777476778917618658779322545367918810729113661355911912945336157534547476183232597442181407117064641153372048555613703979253358794429930682099799165094880071244354498447515000652088441887317142837880228432159816039525570285711842896370128774034826119880469276864005344002881685897206611301063521139914944174221916808346322538750541100863189362020138826573197890585806225990920606844960401329548618957378788037823811090559060173539823327579661322104382738216865786698869255848717958818755566463009167937449383755272359609550601284590391580324956544462678716959433697501991217892254548016165521439659662306706316607733928084103494502988149023522001519101551531030084719873230222399114429422200145589378963602790893115973012971102455686853231551484628076237843151420147020540840489850880193048575651350465589607690951152774575666371333075621426363711697174056378028309662323294483985112865970837204157242402738309795908517761438060873740333033247681986598367553971131876301948935124943918953803612166538097370901021312274975462288099163655036626496485266871439429885088754485297148093947297153725629216409919283920012156825051212330052291493599049441655628969155481631165918053426619698879092128799728807154154535824259870337096232247219837671594141182015607640389809157650779783596092393979950188280789190509125714906154373892976625193445828255409253911822413737946923343315759979044752943753959272201163797798637478451126394228923408863910617789048289133500417164740882168545703231806043553696677979631709030248987154694728686361870472549037228304176190217251884985779689009596710253058453992138904401554031515884281516081351178072701625955020239662343587320611508157281532946664538133400190274180891266590264854792106909029956258963300079531215550627853786195786399568359953319390805018061903402689996436519362723301932462993747943894298039142759263847209123442880598160110518893314079244843319340742531127110558424359917258472286265070304508657144187401684235987729821174064599809413056035526182989097280821818949918814490473036540369645021506510258683234838115311595909283628522608837846858977804084434349871740230702469089778631616458852721910864661606893544290129504878203438187914565899305879735021198755761175801091997233574711717968913253745981412122388317441630576400128453282352284451269625918044106672549964232436113371792248201651742274599660867662991011888433823700929632000270247279696526476915235725467747056249176039388785318333472863181258252608412070210353127107646851227613925362960220100105111859945082635049592277398629707233730018675771755522534182971013323697362115860105442420543599998339693011631439938234690725182090073942024484323163919114238934640013291001885291535411177288679850210848790423492035025154084857957218791524191382237758210535467507078522764745581678241577944115880826354061225321992528016448485587610239220250018845362720410926155128342274949300082826166853813009152365346144439160387073091686700323916088316485541453428081607141802344254379509463683097582220739036430071662483017450149165819414780227384816447931766014961599813115751449544141334207494962627938022501130087410945901875881234893428391455245473636941866472032330240555750805162193868279491946629476172239089271722457185034842914537138163804892957748450020444769024635684924373309969902665548694639803367975030234439629351506624301960540536658312674890313358020608901530294474537190124367930709512179552498307188029988288317593434892540607346922661679608415386140872720847063388735879701196485665610940344948489131220962070406721717215282151407296629361011038130027896525625638189493702972800459088629141772447572185939141152091607143083143080359374858395062143860164678250370750024666934204405314825995429895469771877834807268165058956568857313505856431768464176970178205586975092703125074348465664522196647279526590706317259774796867891904188396564182607406103037609214352975433245166295703928264120603960031887011603106789659254943990996941325953012553005350645329333938549548202470890023514644185268723571880398735853677722367165694120227124697357161964741149337757646189789799479973577042607487523185149669346117334657392620113049018515840243031950670366516560988352620778745230281873242916365771041790067851095350350800402909296454643906658300550457782985091562286868240489219539233814286781276073042411139647080324919514135367574102513086765581328709911054314960247605128830606711990269887654022788089254630251459150251757262390281451747712712994065796348962347872814305416669418979013876350907757729323966397231617798888171239548990922636373474787615366502158957666965411245450054871419035244258824730552623514128757903989664740658279151495669127723530427770885013055767063826605931180534065270737593041148182665297389581419058659227244468113106519133446207230623598770779585515351353166609173439577876594756851544840309312927083673195247962812420939100586575553154283772912576874765144389106217594165091502867781325439649092439523940556954927260041318517578331563475372825807479536173999579368150031195938257275593470934564909931788147577819656118562946466744443849282593092197229409987924440600012270341960630148427490498997132337669886008208702530982109287504968923876716154583678197916579857907891698226150662211374492872491828819128821648900066475789696085867282824244406137244672211329504822914947721973606575204951015720868515652066465220520271340339705618908620613729366785904491783106235480084627064894886980653218094608779798646726528506540925495334097894315679865396457984630840140752833750666027676863337845072567514846121822504738171094324981969368975056199079826881016392170932765917054424342007494093251333883771606223650511647304247931717176722915160936999955279993883352267940086554164417487664950970516404742853253992350820775635667299616246325081270070718865296157015317278998057291972516441321350716080133657554406202968527903269804437699969020646456432522456754928715433144446885799473191958306063038351122329268631694829626718949653179773651358413543741117593611947766679010336512538318990370279564353117448464287307590023617995325919380735709954450328618338871141692520821911180537788484948420857480149789803632232588638157914964385303517163565201403965511105086444402999298949334188310500297093873334115437485606159032478999978383864334410253025403100405904245506276119016510291615347254156182138505051362351775001288334271215486140560247358285079139690765524723185888819468722375771722680945628084604943705466053531980633403929513278085675159603039297711140944367022235446922263792654483151741703748193558045193218018378162373272677832885920143305618272732959103465333405672838693346987587807962034658425456010799422740201554024390192215574044403808961420662454252209647251707812430035970485466644950651826917265507964062754085614909794768514738264094747479102645540266735292459509794998986933432569905600979704904855825013612721243460530311717184542446225369853439025713465507972148611822056876746557849560888299928933310359555623999057979195119351929278400637671154465488308171718977795246279925496979697897996125125849389820006821162065896711240120872915792695805842089403915084205084446316062763797126113217048805550580290392965101913642452420307397518125421525636942715479188176834394349730800503985793296942865690141877932832299387166113142707857906463953015148205271187487166665284904369993002082478181612646892900853002177573337656349669278756232990234990054690812200600277913855695020556397714658510078013791315913098264886233301010930691037080037302573332446672857427658655461035295765364947058916373514878572993447740446741905366259614405496809980414253084936875681130316405260811457601100345074922948696546446984171128252720295432843928929717165102197763810936969746620430999515503026061631299626476004602693687460987558956217767565267606499213180602781046809706411506648843727007010752207515973027264291077964824258882749460123896539867251863137207041911209996491322395346408651785614281269977804255264617530906244586763453961527261928600195322306562540842932800760479130738320026302706313472216485232144402696063757453073464984189888998081049789345899459610261649756382969525187112180594323859671231547327016168841850316747078762569467397751095344052164199094392295593890417234076798222531088729342483879551109361631872274970407727873980067376190242634266105952722313349817446815259702445574838378640401588589806278411170587771638252106789675598729724084289413931273710347687512354790156606230580084319809439943779303015662637483743850071377979054128143293025718122765796702223373153139461610451774647884547355352569708530835112527803189889964983900208058037892923951697033138552454635881502147326621951232932649352078929238415464079360323319470192326714126577216478246911564445044657272898739391006893029669586175831502987051199909937780896121486766984976724847925236758547984231731660526551339163456807185698357936659661522624854628708156466514262475569967500850987877026886668159733765774875706587907707208399317750942062221047206885194740117757024576243578110895112868950142469659674898159596479851282836477146575438413766773334400485007011545092140208967479783961545360460379080736357334259439647906515150673006088725989991901269173165797387880089582415829888740983499228452836109221761536731062433861964742737236951545316570020325854921332444460856237968988119148072949575680532359773720482966770174569511195701515468182032132628069259155111728721526207482263361335795848851901603390232961685329825696699878891347463470551184814089904806416589829634525347572233331720968973133515325504408340871898970780166399252725527978310598814376654098729706966907762625685496026896386580887662084317930992944796253877282669431511890072500430006403138031741359445529629704743400310643889645749941298566063351102295355095117947925206063808511942142016369567735669985675816999249393937133104825759592749163141065647971412208019951928427231418965222194834112920796631906954748083071244549007255479971270439366873724158184894530390632203615546740821832628645321258140285232805217697456004938193927650446329086565435311053345725383312487379699030775639608454318189117603330578286036924732400433078733769943061487320367157057796715275906452005129763372484892329976022068964451372257898973871671057269341194238306360401792736211523726326268857214694318083255806130396029553766587313844196488106168208100057702148492419661754891549620251494612441398375966044653483200505687497399584765182266739148515588296075484421172332605350635047755954580306639973651417739344604050191101866664984658865349077782342845215779546198733234907375579651070965641310312648122187926077249906115148973110995225789063182054837548447282711951996581283833382498951961081101837717961896871001014794796959607997089081037319315068673231141966830279771825454431755625599519483873182209356222154985431963397344578984040231610317295298025906288364535873593553648405059665048247778042167875395592432230469460128603580509850831964689435668653365026167543304529997607949674935545066360522988999792490433964263053165677896030291179841335716911693796645408424556746420623476821242824691163135486021577522925469687203923209198668608734839902609961241418942425501028892495737338027998869171240439871404859532663085925609954550768167209905587706854111303019662652995886717520419544098258624322544206042379257406198921767611841861516616265060014968818983870230327004862192962480765677984765029158434507784806202066302981493031401459116707601351872633895347034456720481347171346148039585278338267827644951706978699775341244335314631573247779678903781228875849273596938238936854655453105467325218405980826518448960223644521177855798443386142219746309817605952385629028793087656059886289548867288055574568451876794037881973111810937967678885689685527272984108777966356216331804818906438950763531388895514386487300406409132715345692341988818829501035091600219591906814861308158291203543795742620207255036892464284723633472824756007965442060263571165075379749651389479839743840276659686817262304256187014205845558110071975685301334753895270047718490150054655590493466610040983021142787121762626906196669912464776770683965816872283030841587156385485803261426960738786968214456435005729558066802114733428955887824730936648854702895429776903364922648553887354638562686169506835688955258014416598083036140336718081207797455753121792878609848422817490046374884153936292512134617624826676795217018189763374704585246335935940809061366950535717284230635521437472959466755130992550242168906677735144561828190761722488610703843488536771231028380967233722905620406215583988030047933501082934267177581670670368816199311880443990608824505498015954100072785316003272860242576049573182119750343626327339567123881716356973336160910086873179782809953611962166363218403721595128053162709445222738165443870603074622064656330017258958653831118118327963638287164197821895209109040310860596667012648439589767713795074736405769494137573066322671117964052062365701450257197751214893843947386827136149212187445682648208449119044121392583883324782433389627336915792256585695413691130152873832051226328357795097870419378720471834662813782864853706661912972965813476038888649328980435622302808651024112967336599385625600580109405768237355182141037823630225877849952988707422057434620389379761404422438033420840304678874494719088574993149088530317507147387549107516403877706776138992155659670782050510795697886125383837603922557963782457954933703516983765543406582691846382486794398002542057932599388049037841852980161666900383396190318296245815942983424951964811949112231310963297464116374217068751958600248247381253930423671617943838919065662856357163447519745344708959884796535498998022347441660762929429482052774443444547828587188190255140601165166589482556709793798340206206198011976521864719352145839642770494587041648739158482946411233821229272459602042758072726155558698923651317196886213955555420333640635177446329118680501388856306625692889304668507146330986406975409292297611650579798888407901188773961478933700740220204118605089564113793108241352739393107949620315420520275617964375152613549181016751520584549012587038094376470360914795166876974476099548731844223476357180529999593861111089526819997735307986729442290695890806536355239069391898227593030475331050142189965556419045899294342157549762704781066909641172758465379028464343930565547918153592827758645732377208903739458905469460490986150514821635653034577607432337884807431431759064716941382839349091412900428207359793243043077909736740627344232526864426874314195478585888942161111104909548755671568653886902006410337427104415184908381874619850202962206709019725664749200359147124360610292048753543267742741583221732451548785830476352860622632728686019539494324822237509168284522059728642557230008384980865927112351568653497426395781594751503264418390071504359494162578812526384526421079134854887177008383860840918551777660156384025702413643821820939009691302771809984666802906198985472806266461013890953898994785374322193217834779864457035628607288668204448983068016676236626638654744199906140079281856006461753164374734070682994058193107182421839475622840754334083933038360265733115915407569594469251024356255520738824602960775377053297650123305308490946932049654270410424718622977502837620631498455864843730865447756607612588878363359622211020577495399526793706998378762803960250083209487673657514399574213102255688250006969393730366076073374703818349069763695599636382774389249668578231932515901926715082307974779893952047658893901634969864453036891605643422615071202387747165388157941176452249324679400731528208823598758623480074538254626107821638076325082376606283626971311009784223166598791570578953613782898685302899724886706663214750296884071000129171708663243997392587942283547828901913283156687885199524872345301407009978906302213145948510286409963944051104237494527201796448098934940464674772004835385220377627933540304773412923228499657436993873092737959944907730592332203859198174518215677688438832527775196068747488709353823325510762653112594806766101636921365032633318912786516704323984505345275246953978893343967521964716810374437759009568427950197979324705940000903794797024820823583022710018866111954761808063569820054618110660548127464224680525782817086555597697175340134198077074057967817613308399578555600593187999230767321573141059795892348304611958752141048247827172828173377299551793042338067091639857878306034801886246370883307995712687524024277836995014807349072500953787987126387626250705490611476229695842403582322903193517829566349427972128461940695285258105264942820033930937593733533295295658791287590011514205410016376342619249527093627485805347733784371396180072209010620973805277581109876103073657173503730107917665787873611298990881880565171279690647012260804333838729929355910960611677419184564679119641289014470233319417445300004089150525057564089523775118471208414078785782459318521120048502125155349858458651616042738172548923538066080173193199094615610394464989757417607853682437703178611287042426135202556956270261393623361941666288305958295467435343348509464929937595910779811556044734225175200561019616361048827095108312699962119197667206154679638221233653983488561541223992330492189785678433007114731835200463612270982278070004287703694628170588528762001483739486518050186552712031479547350099361257807351547391826019848380812439434973892661617850150597371725001530216910673482438732173586207540396669700120780300959355043833251155785776111075524336316102107209660118731525310795200416282476351443897683203984840178220159308391687627680161807023663269234956429839841869438962613292424783953189673396621621953063950438869740934506157785023305378597850363306213753910964763165517297838494116517311411326958415760041001793256832087301045594591270639858108209807495970177139791077892593830036906759429805977185269635422036801353649534004729218324676937206315899826190625982749143058670484299698614446079880725965188531464902499531039507136733037623948909291221729249222979822524870446701656739216781044583179721796542327273311012010440236240846334602637300091042642749653264944797166744207772257771418584474483361973367750543505544724669810407753413311573844718542844358282023741929466021853851056741368817032245181178625044897740941663794294915340739363821906285242024017690881051818972396424787697986431925221425717256218902871791535043766387630365992809368847577814196622024158778777593562162715449420076319940352308362821026409034142385357504502378777625537134017730018094661696193931883760276503922403963149619165030891833244625688121525030606417330560510941856191964972577459264857875598405479794941066575194752414279497487361744764567430775742873920707505016957490101382745096117251589651530754498104542844270456336706720581784018865965421546692019384882782135546849151560910826528950264143527225390083882636132630140828967322746868854148404594891087311517349336538744996025296137694165644965907877544120482774277030974663890705377798518390803636560433629427696989937310899565560690435803976248849268226983454438954227535670607826800186310639420814331022785471832853616537211249178104415367686674518755394696038597305551402255141671042017782732043818597996481954460945293539907580104367763658576825776237929320224749685603643243920078503241918588722073200307181310331892244070933754863618106175778531453771378343704573616985918543347238711376942367307590579170923708694031323292127171912525183579533331461030726602869057682423868776490391605999404101347866879978426420116400968102096496290287478084589364479957996699004015271128360307689938853085349567138414179716552192227505860700260856778486069040583396717705814475737726523469836405602027441848007347301366981287019703126128114277655140855917460361614081927656812754678912372386969531217798380144154399977889770185308810995847360776233946515999820819917168942586718235282063731536657840903840479699050820428955169817617116408217543812121717521734146368371191870050297659672379805855598366724945682469320953009200512691224947205205185467669995622425552021979176114328342154245535492610177666116191235782926460385047230879403299697900783921979218175376098447281677015150101896105565264896657872533592803488071443894696541492905757765756212219912784078081081789574932375124613420854443131797655164071501077506343338875168640974367313156744955416338387030891657423535772070268347453964986187167921190860865848497755302537659622676215734479925220074214648996621923057570152676168898477996599598273189885883763317654355079744729580458282891254631048003677682213479562563564193107375339885192582960570753399340468882430087317882737557163581290074070676163937691777527780363324303876812181209795066476266520484859436093159883603464327483984621315682897973428446572227767755822187543576577129336991701924561136537975717374140967423231350446578979714315066127918031380648976318289026798648964023189927819518033159387396095475431080395450949262083898655452783917529988079785826565816517076468024704441272144559336349144280180930657196778674004661417639503193805141373186001058570635035966874945411934077913467772508953925980991362221507939643436407119846393284950046341553933128491856027965286958453930326239731832626009481835405784634682354034280580996351859185550670503547060693138083028605684661240966986771645217761953156026143759561088807785055583541695075967597326914237201327774785183114143524521949011466829183164939195707248236379723587882535906169488248427914911656865552969810772692795070222337532067112199734774727704811415026315186668238061736677398592272195490310382796588431366812856042889818876993720400199861534443021912186926455312723004207860251539444409972762924444503141219167578118847340441596383665845355619031814623231894624729651241595072978896643996714048154509588107694224514602112876986495288797224994610846240776507855386891104644952788639293338949470001875278768304549878781840700746295785345787638734633627926181441874158763870753113242210224056756250576730841205833359492675012813522364556780522885593434954352922855525786409125398694111673994417579936742087208713593915786900753831254013281402692348438293882468634151813951196412350013040025158706355097290781275668432886116807251592284346428075431178352487176908472893111514374995063136551273148353575754744043991989844057714836629805592760318384294147035136019781676705136028997558022133723959297594789908117414410778759330534222623548542989986516462306096942885301828351944407230403071325192412175605470475937023312308023879124883836304422949256768705013881338550954883016952129574735350756114778306158766231301311872492119014598116906419123961673025084497743399442848439156934789082158150272507862139399482707708352458482552242393964704245113053265061422439211060448800052441051372687772985345341962582083378537813933505809445450600571818095761753405405122185115543202339904974095135386887401260225456126622345056006148520045300241320724514124854375823320109077206827354464228695725265322232761302649308421406124536435178678534633777181388170370426195345139279260463815659908205235457244273541338904368425727576946741666987486978458121690271437763543166026255017318584699655469125478034877066816651510681737086570184810646407521525966388719352377309063306982319127680885722782671642986142019715204357022798016747810614995993416639471461611812015682923636721045502544827659095418009215455962495673347864197687310762511865531686117703398575922053099828632113823421015585407650354920098244546450555507382441518024236157520962918585292993301376774594116125621392986565659936958258240623306367968793510357363761077395597576346019210922606003641960720953634664554084999151945594521895329847315922619486709557575505719303308049466198412315649341270774592451047620508303753774065227109236347289091491905188803625857882154486750086071981559165548789927137277611845644084037672395908334123310186399671760233181082222800045540778148915308902494372945556950187599303951078575403510740322063762055537755773791955015341093846648116716828701524874493891136971802897757627571940263935276063016854645360425130362813203652732391935153302261618002961079691542246414517414448734317999427653889923172884134446039480709053277375870493857607697571261629209311138664141143747551888609154227409001738412314900175290658698994626436485868153676279250268626250834222419482426703582377827933043941684615695236022364782178133275580003033791385975732500136442429371209440523919163344445180821638048043513853613511366475229010104235994922504631330953255232435564904249928129522243724320716676463973005788778900597513849496841719332538513503667812810454090514782570096968536707980781937501272748979932359240577817141463333178606933099478685738762082551667359641443842676244530780370727485222703542518200374675045050194487340900615587349837664391536014106056034022607713749214521128571054175970625066623229054843722748891750439404813088960388794283641125733487872175462100858133161105600670289531652997570243324707410371263595639566102644123357776355244422511963606444152938745982764617152893915884552581396296424736086703024728012230360774661622570892797046306140395516463025757340359508909558219169075422850992270654634891926783863972549108665285341925944198610627587372892597746554515465144989436288975519356483923887019185764110867477977065071030723554222173429363583825283797737297543911289009563552232742386491177026414444979556539809840656419424852275390461536637341444939560939925591862665123374159724330200594355499906972448456193933837298045383885196186162199640735773261269449667961970199446472755034007958670161490956574460165677327996510214949121568280581989963268038297185400290666377840021018250046155494441392830051833136010563859599914643380054464770768677194911555160476752951897770873979989354460213386838596409150534023606425223487439441028728391264234063906412331843016717444031327213912032444529136406609371560399940250696076886236358724420070522873213893895717568935637701104910778027233833318040472947885374233487063064439385193819098192875484390180161254443822199639685124652398539729541124208497785786714949754299143980638815710112383124920661530061145932710581869873766707618321789914394299279904641672282698615634462780055376179268880074457449997265449108570678821669568758496805083273387337561991638991438286887940409644797019503699015149126715159375342412543877075070368134570019006134629551710417348136440656223868311901518259447088421664575481136085956312980103902295571614740549722389276034048048079944766590249411540010517359240268483910937032233800411858358602490677893265051833701916640410069994372684848091892229987176979060673685979365970973839952167778080328759541397848832315715234909372723919049475057015224825403647870634603461453029059458819255545483127504727348648182719550435698161111899923480924731546368218982731330574390716925769049654376325159144757899090595844539999551000320472276246194796994120878038589159671819383925596447672076299690783820820551692331643246337989090313991157359668805197673216000084142334034920395899742112994686577533982953239056867546717364833243412027803295641721982747924136480514984149305644140529224517557384906636967878149981532724851752262312125814125927312824205676062466688732527667391961470376000966573652787475784716422142393258890797877536866473293177531905372645303185796052168870972383924019367179443302181428007735967635932923994121273249476529820085283803624991010832789094948824069588187710446538849286755593829747477217672141751123634061002992283988323893201879101218105394270552978398887271548185487199912182889923245526399903164966487384183160017164987697628274662276325382724434956531937428868961927690929134824494543474417162739512789284280175914271209588132329212698753588112644854782410393978941732904583307796802022465108581105055608098054002050340941171836088940097258645110446675241776645486227687835935110918303759493673491411474241288326573858281004614325317966992694664923048485107039273854700623554541323960602864992519883615985650811701832803772600842452437793903618572216390358958026394558554182242511380423519083038640805764667647759981151076292115414666170495728363162737010898003549327990202236960499708551346393834465358720479080734106491882604629664967650341951136731743815746837603286892525242606778443251873070652571250136931207896780298657818149903358386682201719148986988036152607253302502325863266659532782731159516030059995442912185370088452789600614200679598522489928327290327380355657989308620473191361692974892611546063605121975641203360056100223998437322051377816664950602714833470391055752197695291227353912207351965849225864714083267981379764950902235483978769880103063786805407048962570836662351180239711399830923699344663893228216646648184797872829302096983603923090414693297666319529216126185808478251385772092952999471823738655610935861111540510541469010066253800241895098724443770909878313208586504455575040421896481000335609471945891197090347355669305787767527415078167429402884069140491474472364895308881163014477087956845603096906049620193765057361896089255278610540577276466531464326609719101393516375081021760474063030378280586845789437477048800046958561260308735867990832005793621137406669672739935136459210148547494717902088932245968503537515366513496226274929480399270438069409048115396869906920513449293072064610704151386541826885910081114081863766848841528095468634286068335251480551720314371122082047518855224433356446095351687546958091712834126640533034638083282629133551177272058641420264954057132935172901902205763197788269896499653596443679118195508217073637648502971194193875409394841188769340145546821348371792094358832527449087281499879167137634461097564636776948813009623032071020635427126394863300030975028769335146898286849453698317037800311830311707650797930577325244802852383733173312302269219488381815060274297527026005877450816182660536210779006822257672716503391484694483953312864304798600016614412357915983276790817448641552051066695888061642111265374644600830335313555018478384754358858857543773596932674628282754281535169396914825057737287624736791709660609282045300660915097816572831722875627175270161158217514799869436527952336585972008500085423759811897313375370808686544374239506949506428954799317441844330531693196447175320186651244266067854316799556875854692798866609109547327040175659844028134613780644055894817405567289833736903514110617270694767931566288266630030976653054525740366966622992931815723859313359140085100901070488724285658743392173644371771018412817533409266473792525805843044509108697685631190016487438699814979036178847623114697789940972532877223440575642294440200666869015382136089971522783297249936249526892727354846901292735392939401489019035393829770760408102970157834745892780765363920429226522570508201656681412893425611464658652417348833999584529480136457469155167818547342167522130100552789709765647221732254446624149971424532364599780844140093973837567025506908710457490330788724462442555118913051902815092795640627505348084224823424055866846780468421781478022332089102801778203322345646157680879038390908975741300959241005446964241558010465058557146010460225547591508136335567624500636342244026618492505565018108896149671922864888221911029949428186938350264170872772361710909553171804989387694935613145355397603104842890639052605453362606983172343497351121640520809348733916151959857825177246665267860279446231612709640450827286037079040597101955955780975897224689998239576160588609469895915146567583165352995266209063312433561528568201153901589385513247546125649556644776319638215471174265756191373204187564918738990149631648435793349840173053175978186838404471245922620637530246287410840911064350652909067814572452627649403967752422593702874009290313782245891506010206935123242741024198743992997487317181137314624948039940505431464796580816982482806000750520127536809079238545300200751058442562995176568416245728822105977033563016073531736501623889199587057741639106775424985605199540359692589603451007794096662183568589764959466845127597198255539608712146225526130317095450047607097931547264843437415486658839658159547351577836549874150711184799463326785501060382530673450444628824717062321950954683415525575574144471535423387199668974261886685684508311956813815793771956715150953411372122317011747008603671084715523283008110578371889161214435011684867893607825754474158131081920149960225532595966427781726168100668982889324765707189755592509966943916250709369684468329233790339461657150209709755178945838687426603523799391405632671965780032275916992553714096022052533559889385705655028225504270946498818422669914143515362164994239445371012403211972185821175129266699628140236000978708177812759953094325439500574713883018402692449156701104235675298205560273064274192958841544451337589121492834425489625940084132234443243910009557006172615497483707726204012083743390581406120062513004254050990185643326050138035727207791362725519359582444309780643212271052720185217842033869720371299236088430994145038188752544063457123264530002502444690381052245671514863482145649806925489467328816584749713550837378812473505943993222213947738617358035635641038875532988911286197988712724517872468854443492222768590356241917981065468345846983656803867516787981659123939562318477169185551521503196646739230996141475355713784072873194779247937591093617497629035334034826147764660284752880458217831834773082517481401600752085899350814634882667616831726718711242481130905278928553124269877846060468553947489613428313666580005536793360624503156525389455809766999384436666757838739217228040806075626828888542311385722573154205943049676368157583503804063708521448115087962048418195460604632186831119649082153865733435859921887829616008445393578090956774290283790925452474145010649695300581206204503313342365495550183168120110796207460361569570521052581959363296102489660461320131165388016257405429161096349235964743057172615051136338212797575225832425728819093952417018767005668601563013171398265256378027585501816990439583387402184941692679646067214101191285580681413718023767755712232954557841187209571898094922936949066541013228283450756608041019592760106717462166543325371566138680539225301007875262112601870007966581496021239266734031457988279829857517161962639800315381742531323685329766425419399130602984617718246707670603803982314853898602861340991387638618479367456018461145910467762844705161370515271135394639831870112939496975439782741053856272043548712871423699305718625076315429844396134059195226212460066406777956144203389778449839143991592708859014723039991377004357378602168086720874670771997561130530910208390517933067664903245351000940920270298791154416240710872074495194189597946094543927913608087931568730685638776293920028682377533066709445253190103358008535520251720006092208448516522758239706488212781687283029740343158261867976469859567572522807946157984853279155847940320893417864367310592942089228831721270841966574790864688309186599830504843467209075987827485815936962637291871841213167250288732012825605293868264415655843176933552865871177338377160175055419600457249247541257786412975222936097524977297483626290590491840081545126698541491987141014119672476504815710954154752186334224740206326134612637168633850516609876545841848838283940910146695537082075478545765374480371780501047769671862558042690923935132189736956195711161108166667198660123223907686622386176286270701660578866963483921674900696844244802510769643426067475557389174232048045339493930750363789573933856869641125056248126094875374865387568221811397028617237792887713103625456319164177513248278042944385868993377105357821017486258176538316093812336492373164676179927952852126243952013941272170804174868836071340950081372157822574972367225098762377893202622466299197091188492639513192616226492947155097531318772395937644175892841905741699317124170309845574329361854806187741095374896386976707383784517007510206107018003675755460463832407712165981289198451768249727139633925779535978931586031931305096267083653203870520234910715676265146281146086913576529064917573913655630789336289235540501822543244474961374319313060879386421105464395839913949296762866741897212030975409121977335813023541549097656876849985551280916251736431445665694131665929522447638454648804018762224541654618595704766182398488378253671344837106650289706777333603520630083638357751924054836532090025504602212012570293448333934978055261335512007499590146353472253931189147326583844801271519842119868679377491598460258630378778517654409300478875046373840830697804288098949729626368156192799639735032904087655536695004517098141590518907362850985862116602251302913850299508095670429547813895145902732641366475046425363946479032213510402593700087560951895774366332233684273696264427578559152907711439376397567688061048247823229059692702648779409995424044905233834175768393484697387908914147419502015405897995381466442390497235243203875192055199737852488859700560306037825757671855226151949631727287476527101342539914533691023164846852667023218235357550858905968368499079674402685832754097470181179268458001118217094983739957605771293439953714181050584041099185714419235323581960928623971087174944174273665187277740374517207907505150377554945628877357176992089574300851488389477617046688355027476512276083804416786270913768766293965955338231409645825256668115354063848784815188807068144092155654539854523522110612892635262699586704633116958048481410877571050542611725279629039637137401438662833299588700261781092701176270861318779006264943755738755536966226697448251092388955974199266251122700560144566786289350750136705098241277787142552293784334628111143077041543077589394569332387962137702621242958055139338464731069620022225561507870328381782163634017613030970849496980023398458185933195230605132704997254904888067489885394671783935291378834742078354916327463692529686978546495317372909653614176900479348083281433378369091459442990241840543380737648578185630589612686276219634560563366908325329127750385888637425328339873900842435713351867536790735041463795884454801975547780242025600419866277001579048029799055008406717641123413683044614825827421943222836329167748565992246392670832860828930317677441368346078471319305879712383946494352681130437021562932572142834471876402655539559261211724491868888311263915733326121896818539889926901660721845535211426846898783889150912928114427983498169425117395649673980445020058585739652362922105986436837987907841019256947642103045501048036132233519885026644828123634692831476835882011068141445203534686971239682426798479100445342897712957809540873068164995683766499832201729439764828363487411216794272464178189849540307147561447849378655342443809263166501447135800039472642481616141260067409799669747055115722587207410359371504111946281523658695755025685698309376951576483833121489090608320793170002467566789667163537431184775904052149893486102247043796551709032338352197172106862352839738186236470204024323856582549879601240835529394647251845358693655047590333716600347134424786541837493735861808770773466466987615874478743328844765625729545141532175411330302779722554484265863304850023613135551012501792590390412988441780707418550195266777149331095955330594694777539555489330014879916139289540279930008740289027887645704053723177445338316479205025638629814789715510128607666888500226274501034898182598544170830379457759790287002735701234930478236875385566740086733614696682000724997166820801122761625695630793747790900592848724336390961388137914251164657233080182162172524030369720685407843920747130415025299083618721492526991414350935698185477543367872600914173664853076584876056191127930454998119964668659465865144091518380548910311417232280866681931584442952278490496775567828644316364770073777828263102310206680263801848047534488933888955421870496613337852193529477745916654491097394406783806238890207244817196397820994081567466351361488986013214816574663986176288591575327136252159293130328267428145988141520611053860168536930792047504390288295101152830839854027716617049747319033918338022968699804294995896324482211565836004648641899798606138961608766534330156579613118028640818467273141949887349129797970174975562435410780210575049871400253793240870948166021626115939063492870101940628673395050351901509735023189025926105011791451127046159426697462823159261079876638968327866813423376880479607250016723224142174756122738166001936432726672525226983954422774718552442399936263818331778875433912913405704631310609540617496495874184949925487762264245325500021074756119707840524618942268309700065784094577495117476215136158277053321267457973077000711393175013435266383595772902705689435214743999320484442739562147567686236593016906465291272999692671450458319400732442627418285361020864803370993641645385798161169116148840624081540741257766400540600289990043630448664189214690205059613802855710853190151390052960438236054488291562270886965005995899641344934696452116757742352184201277933408556103337311932792867815904148818308832864912799204391534356207992188638048635749586810440454727576577315301503015799027837707392914807880030998670796848077511136782071613490496085206386164660414366220583084309332944645381127536191704309297401389944027854629273153537090148474641891868860832305707026193658105867039600009859938006814405114411486600428700366172732477737991808440028069838865522020295508650795345528801830424972519740639531603885622267965475855151956392805169801239834133738024209962167994852594553897384931080238837490706892013640837310075095283475981360624016974633158518291238647227102668211026445663354702446884298075382163605664836938849396517286104175680451624688095106520037237467439843498732569123159680950223451866709968857253920413358543450511260229644116890438716734359206355365837033535406862364339074999777780556699468055204329512073642764450994856071731611374434585104717502981936184709399007608904749285122332661664211272969860584037403072503782249494279774896990005211105776526283190143893303687742507410745513680417001345846541071836801088724093666779463253043532897459333059212199603058106297279194237343997401647189629528355675096543414369615920209232865781031227621132744555037988687002889557194129866043090000304852393655052362107599810734802904510901897153798284067664884522971989579807104797093875461034459295711637223830925145305204793504016162037735644433110766913613755474867244127110909503832671085000613013423098751337881783126839081733191425854039257830946190733009390561243203712536605348213068279129471258454299497075617539600830908383361629482421858571872363083082511907101034614722487040120241919824095130815156958289532292401429113733966744569136454689549951148545941261921976127964530670128220735535690431130706457402994697956018431501823137074524237456487967380908207045908760818166867271307479093410505322870521012804156839233364898994401804182726067677480076799251242659065629423493669904597039237063446260444585443316135968709745294564341073409540579314175989232660495472362842407048799303008139548872345512706421354042340452171156037666811756980371059662312952644152131594359204112500239208339769349746090555431348974245115663950888239186303087785332946632976818784240984203961517819185252829262486125330154212873429271544456930362682025026431620688991561837457636890419056759858148647968877838176109851137597985168474543800443734401452483359125404928046940200400578602873801851267722590830666254611509007329314026137619494363681514899107921750114570941972397328673087451671291630703564102190556837026920545159248946001702288949933988916617901889817614638366065564154691100619051180354356035969948599744803162817524349457167473840960408441496996751461279244645844423938908377733573504195993492590813110888181619814531529617248944449951986900600572391687515942262647125914009758427446924800155990480451976052523813452660524536929746442408328179724516061827996391978922834658771127201874647053776674181066470017105200870434630177568657943081203986070005990223781364571506706908790702088912054904004453471077184408473312717215047239211256127633603762659312098542163857311243910850702448978905340161509274612632343601901478602035794205428859353920114378192881698066180952723197017883569134607560276135632286771969820010469062232308901382760642701856925697630509278085214095962680194869505274192433959476387221038085806936242919766566314068312176498315476761534569306991954160953791215526330795229146245406008617195937527486936326882053466419492370515038021377363161968022365522450896579116205943029112867314416354616262478881072206712660352262742545884517071397359956139457015888980819811628929702583708790633672155774234336360444975428380901991070951948054621065442597746107216405512840017493319806803057022159749911917412015708167971013435543585060511727811403686321335579203154267692628110345509874638133849083800126332638711390076392273712232991870050903548066020882439112286264059984174248945301254288688219815698423986596948794125197971419291220439499157491742740150755216469959107476160746854586034837412321928854166442653275664791438961265506387550649612269527677604901918866434194516947587427438370192692123620402379039969904812049529760025128220561855448894757297674845378446816019017532204024943846542874594057999674568455696467248418746187418461882960285745592686678061937667744278887967986309521184528316480108352651804365076366591416825411515133883044532155183974395655155101873589339735731762915516956330091719027798242069235223613830131798099061953327562997373299879035223984554317691211822783051629630260917408998636579577264422846773085681335172218516880291402084196879599833315052050974474317490393390330905257869532839932779910135181173613187049165533253733529292105393031393785413325079891869394483211204766277167018640916370758666800173010696198011248208341743244498499882644490763443361637657736879797756115090646434373933343442968438730536968647801236290270874924076478521764019847264369909693318709901445996637919327817397978457068754908726773281412820864352672256188202271652619464708870833334906958726671899491408219513080584645017819551074012464255415179268407549766233437509475872303494108703731221761642780993709119075630901606318994739734212084431626324213119327559369235267004353301197891855288780469288801451453208781206275847061022179951447917685585854370931261984889156983283647227457653740861371067291333149535450624433891658138064783627666217565195622441192597325176815639970808661948322894352637951079076401815167153539380603226822905955176116605287311722475810738513206016479983437269691117530162221836884523689398296378935949291096373293926499043022740041792984543401710927910254583919042628645715640049635053532297168032222618141019840524890897344910536535510362954364278844215018870647153811881253236077832914268877330176160690552141068785603553424930347379745006639651808866394669546816248370573330871023598272983847507591830654930277120333933290204956261103379537129532401964275532047962750333098393862808736002263340616602143346514531949274547564557216778835330283073550017913166294277318574779469455620110187645459437680036698716724773118158728249138676597397068691568816143630858178590531932998199964527383175861470080203811359021926704958415607118230422786576687420670380242869055505021237688100508585955666940146530442141803662112483878237892864681802794302921000222421161211317486073813301910101936952545577907331952170998185373325960984845735136778200983507321012119709793492901333034658360767709918722077141578704718943108613365474309173176829371818755766945405680246391877305552586544991722803612401017191837261630469291367555379842801117697011963514348427785667497947857172823509724037653326211141062783081822930441454271719891844400408907552675008526737289957228522549283015590709328177764075236711119783369049897486531088736023515923404267296569222576020953851851459423217046114190884860773627844989466734286001686280093389774932650509272911862059432032419354159563209372762540947650382958741477618469980910961039501493924242750935737288006135625606886790033361837054648683390939416418537193604172240660345111518513916005511100876831131625098586078721905605609894900216876444525748419172785814839355146937340992298603824614823273464714235531844971547120503337635260172649182522198524692061742038942532134814199489937280236766242701111814158292714572771472094779062769341661817618046060009513109158353721084245823434362478937414507070905418060330535301715314875972672839781987078755637508007091301073675902973323363810078520277699728994150268368719806619619988482932700456493953846614195129666555623787899774701370326212655805233704974236241159472354392716397380422207609456931098130211551040581696892288362495499035016675541498424001512508949504300291044993565917788507967216218942675867263811431638148098441850298266177413000035437119721395552701665579102300885138349719346589279154705863546934560459972212405024819660781657784025555021670633792543435633443867443575173876615384218888973509603098840314214783765947987803059977164396063237290449708041600119703579206298039952013203096058639725452519640981525327822724552295880215777101982552342673973067270032772255955550888295081979240918797765422910655987803366067825234787741498380778406563270174955188352074921309969952268201612559770662738662683429044957103914633296011053932921113382520234536846254690365759103423158959976080273561808356437253360399310990578321636010067045255040176268264608600261983705817735973712899001255877767057214044429373654279751090520010842545744742126346321606686282199078421477797095950574427375246635721989463545618358992156279654802603144336806386852337700587853965991902021881276513400546098180338269121958437104627728634745733698338886735053757233668769868759253288808597497587405263802796963111606772981114587733521752599076681479708025347574485097894495212353857749733118784020244134634871186181327696676447102530362640097057527788652847713940344885425862661742852179794970033351966196983475972464652867021151551219834986135988944183171899015802467094595561042448871065050746175882245516600927652587061031867158356219225389022120944506350815493240324959869191759706132011709045992820981666816061346300507062871168229253872094601164232049834811685171285539366308689808579040932922359688545668016690230696097107913629410495824887349251623073286793905777828230305473346835146377820029420420385571052427704037589410834210818111029625776929646807499015626243504773308328346544197473511913978694965796984541640636938074006844611655480148699038797940230210519901793051469352518459046073217800003083924191483498418428406320958663191567530581494817303010188964956835638605046057112319570537045820469719991549920400507658786797288438365365444864776602297677588706605251127613130463768727243058047783274741459033173726589816174404921790647526890622063009364195238842150511393969557376878809173476578729982564455694246548851378650855130345029246812851775382971248483212496497326989028771641918799619917338551118771083737843837135168467651169128810508992428864301836067592307395239031578657873294915640237839361417923893862903093362242892058613006203616111152717434260032666464953002135605380314870709872540832596233057579977295241556219020021812927274933635633123013705318733865269336717227830311486642648843248030139293857513839511736577908531798537839379295799887822553219472769342155634635202123109822425251032511370693018587660619953881279095077930126955445180968037413733533110798599493250202043403411762325092888272211959256744746001600398566562702626751854704377166539636733423793999513701620879419865462506395892320098553245795842533472677917821851454186767171430842443838237474737457077888655939389225710597330963439440932718635992432899847936203437391938479788159332181150151832809901806159115682727142080496433239776410603320670541492429238641087451052964901220596804879676682313877744615781083391484359674493255273218006900543624543022453644938278278576613013147506145980158889065885465583581383445526978386604142041132903280866186804495658434188317125549297054669813969556011935618917883695849098698195481726689078686692087477361610719128856828250269226662494155084864451964305089304883348122589640842812341187648495600633770773285581360808213530563052262255404269542075993101904982586260591638934254724981890203947224664259730566188337245568984807159811228371751524493901222761686354008044157352464734817558556105342373005693055739957737712191984006826581056708435337685687712490459806856342361807202116099025598968043969284177478672579132729963644038865585560891984174939326638433761901400666036675947039762111580604108330050615825793390156513160128304127905776025474829346312404921996216474294585702707007673271186396670592833110287988513035222670173015216945427258790542980737253906847673371966806744076386123978546514753792166287917234119133133340476782944442125684260564862778192702195283174618818334995886516501099360589875551864588834933226409970755548528652931535010378237258798208534139053425686347476980667823951487108211554195791025954137713103841670217963198511778475360179282174807646896247965881428825418808647827011477571589351063009555886174266298251177949664599851101717639240901391799846064798914775071916260446300467100859883248671548211820126026472708137132131639230367525686701145482898397857709872653177455531033846575621418853074988684432545379861612369899949439471297032765974712243948626584220393050711371666725473547773575071960299835031717565525117123776316140510814743471861631804216429157553593166530126134999214712947196329734726008457080612648175122735768272407742032950327413755545669484108290743460656974769216325624392997891848488948569544042140068779037493230210887133096020989815363368719675177943417498854149449325680663273316810366554520619072456221292703907092047141391673241966288748742926189089674878309158168203115414075284777078413196079722385474142973634863665990974633633459521216113955459674275213926137442131358752102667369959171663130221617868875694057053395141361337979061641726824661127564154567575423774671592784049375827600132867834663908553221434454514852754546804202808509353535948143124737728492309274320610626740158525724718128308863310743831623300285853675683398900655432914949192228927397228086628398303149451794627929213564848133649323956124978739041717210612498471709616455992951011099869589635018303697606851865982923494798525792341784949607463758743083847691608076134127492392018042244478649996284022704459400467753453003199979842723067900103108793968641947449804037103132414729090374135225892757325006581985719443482217891942662259814461404988771517934910193993665111845159547593602435863181229797052184900507846672727276946335637539309725777544867664102625942233816517355899843960971185054826778204805667544791010470473010646230323946562566999286910928316674869162427135383306124309191077400332764960212474027275310683455196622376879814104361658648364365019441299440888027766284006248978956662133474662440256073132077699613704005754110439913666595087941914953541299709078831907447408885776428557244288578673196444272667125745871601191931415548841523504435785139476117879144845090011803707324960936650883164022157466586761936896467496269937380822923590839391038996760415292387560151288696952256429577809643365152128922328891662244509652587001914554841767022657561769579361348124333701489597397746332461957936216826188714729239523442602895049226603933982344600290218284992613200178518708046423316243177661261391747813395938035448575147099024437079602766570013225168208988486077803579535150356673856523209176567690781596135661980891531809042044919127820468909728272471039339433040968985201873972057664922949590399479158522575709679610959646028247049465214991945359756871522731755501361766947692038685983831541692649763179383267678899563698206063908118748265868148567832511964170214545364143179800677610001196024332777228071381118597725912713496517211641570030132423258758027425508143614720786958685342026624404389801373137719991952329964473009151469223432243647667160827185152156748575871027095312173886318297283835986665996164220574204756767014811164676316218819773295426657092485935587455077559880452980274379380356301197485451553248431867456709264579120088696104210236398768247829403868511199080505105562675211977683265046996292342263647040276117737925333354523592619763379728721457462324631772603742682971939674183178155003325746010765621463630290201396394443933577630494313022453477373270498658539559962195893746904739659463602547657099178581104147968905993043079869377137856265160142749710822643263900522008383000519710734244576495622263503766465449815408401205930171548826134073596704220585772214549508427497308166878310731994267307936639082965314760963248327726663854697652581818975862083927495078383598913311895430799679636384268710627866270924274106652133371756763743274288103504461726654067770471551468563676982963228954522505390917417859081278225346736353947105498354321280531871022490741142641411538004446558557161354825949720053942714188687219616585563771891571833357571757345961848707834711547559348764120571193412856018479532114424073108323853826185960370042173319348864370809021533162797313963232407591181490930411074657295277062933914431922096163976116885740136544713243578529666463710415106909040366141505573771979846071711672519808415955828673144593070478112200614471787604675029619246263127604920823489900180442170036983064232439469528743655804511378659624205675184985334322523181314216301410761632003752397766411347408363069605680450773101532710870750593669200420235857325568799203260227372445847966861299096007499398278201788051155606039018245715569268807816588965595306692257546945654901479148415217799221770346583990978938055610560086782272614798972200232700177718951292431030169229458337437528240162055261112974596549249578133142189898758330834837055796699720358474299466452098203409500688021523233437562630235259790609689447001390223161342713030855649871570145566688677878607950108951926423518953814745079092503514961471646056837400860853936841298014918546394566388874947434249860810875067725543584876319262840909531376564923852817438591163321406806026681151002884410840857909972354149972866425008251806058512058741665930567759478434572021767177578263207671916875496098036743431505607818395781667828145423236563235916023481327464820003496276360229447950159313999956604691047622134164954978544300843574977433959461044893333693160654445519698181757912420490242227288977328366917846929833646797541622508707699299499457311259013541529924524995523206293647593868302424824982213216579667769428549225201749961044848043117788431487914263191503935701996866290822938725756461806085977501411539236638542351136474565734293314883737809424127618811751674907266721819734898426715567470082718027656956765754070893537667419072416033485514420482485237145508778687521211320519832174048304231144951255709989789948462725923889545356311487148663591039471676236478861908876863527845050357359759790337064264608792247069402107220824144027278079029814029943851561316284361013331650095475236420682408458847575662858803673071752397353179513780096231133901896732091169538011898817811952028740437557959877477059082822905598301265115346794671804038101792827617681697096817343290727346186284689150654152413896246869468986569493245422120973451255619204801505670032431497390861864032117114498523380499453381983524220166268535704156824028323797740139861921745408253959426865995872371124840761237545558910167752433820773770388445885551148657423288779968321538885802667897801907573728997051278947471643981240179265571661580732442864317909717850317939336296921107790801622827380123797496203964165904462415600839066487923283473369970113018084327678365984304974805698045763215346249429347030189240986775403993545046071745754343609243100766732124267766634224524079013890910800821461390900920424572860097708865201155745672911113384145529241487203258327249969403123896033496382352927338453024941032970232465300953473005418780833278877011176835335333640464588432758089159097085459035161878522040933872791463466120471187668594384926326638869730066085686504578920560351670637109789409192441161888698528109511392814550571477702392648106275910652331489209526773984724397347409090524865728891791895167601924127173727867572143363818327469060226782292446646506713697222967010166061931336822991058449413940400555609261042085802238312416677077341514368359084760374166895385651581787460145232717666743158581509919125050362660677953888379267185418497606335346917466084136775199665733687298571754175669175932715728546669452544277275324484599534717244101123054271155597646044930259222132087326831025069451650456313647094432927287883302989792644800020494699950998756420050222406771892837096768611051027995469625607148200344940912902346004032558514615770517027397532201145259183932576724919522227246911605886435686034745659680758826505088343648925239120056084578263936967747048863325688428620930454830224136295662354560025905285179717186867652441940615744549221032821038549464918407786960950176566313086616209853017436893746495358387449667428340167705461538559651940411694825977724860819519067440639940209820954996558494700295340019150074385874668827037369949792082247094251402914897302863218261462260324872619424481526084724474072349161519069214401722160697284032572751208899144235711230083938723130402517120844549912638538810122905800754211373702096403162951097736807802226689051218037883630538452370678486957395204504789476964389447235606854383804789257266939747406734829418037575142178924119945668216089534790899751887709625716012098640761073825186852283042717614023019425124654708210811531206538260274771839991958155374177405749740483734222469739283499299887400725840207643595536597059903880685011121195693242606700240365121787632053183796345522455119000344884344707260492223611710374525468499261661420228034141862665817492464987453078620413466907252828901615675577173605291514734586679577297725635373722396699028919517219943557193216936902392510736107893030196932013904194434180605993559933556629081190822750885518605357769734461462439508311523994703187325095371992856702691435840401997119642527165109268036726176243419078515426043265303788522079802846612501426125930279431448498682368335796146116999771717470942909563045746332258162715905812819269405850153259657094674119041946989732565799834878066666769331877726646294724753592743151136235932665451365536828758563480890503085457624034398347063664244335517425630788765998194356626749407113292166139340519168891829675870933046941081469364018367290581118175788015562346611514438334208698233418901893098641327538556483952164677463230203984339202868955003462813414023739329681869770489028513303125926657015418685111315903873402586040743977310234409168140193624433517975550177650034164540036868860503243757414879353616101765892606169822480745175767790462886196963539191104340686287575513883023781477666922731061486385739417986248657578376352043528283826248027708997075391642618331924901522098632258221755486592524159161447767203249208482561349669828731092478673839457073156947106289693543380723048919209970388904217912232929151481752623498744717334198505573417818498956583751999513212367346775793048747277211204438813487202539324252600781048436739250428540751707849590302881690829253849156860676559133557237763632567945875107659040736311895169576719245189082610453160363028801230344730784213482265972907624197941968231877999353414837174554231668232509055898383082040276414758430948705351319355108158941496455501396596220536058971348469065846661780203259441556517557449806407362731206257659404198353271395847627095801236949801795459937530353002881365518695310591242304611812130393440720637433094333260500522750908154389549841128403426712912131141751791026834252558579415023290326579153707219221205901493295638397990791229980288630439355475633746393427060093463215217918739496520182195444928104974182737954917152651644761665113415078790572902275996421036859789422485190576486172903402957365555199389169293309824182394344652523614106186461044104627488973460183333338790953264122099925049976013531375748776877672820869292672308573227706277135342228265240817240769433886060608681939034729059874886736859226214924663063600725220295396932680506352107895867639739326476292373823420559734099860186624530528781309583551859812402197479487367557160293550405408242529098134064178282281208856027954719037732225341254646234054749486061034635512000930831712556162612377648208983422326424492157406224043324107693652217693729731967692690879762424859969591360661238563630268733500748604205447478212503815048587918379097057486520049292323115080879378957399891098500146670816561952572128029905585333621645552163561778878352744286819791764901351290754941425177808250383808080659216923739316336944181036519183568908693966456582454437863667427412881898456653603199674635783019431511659401035429891887818155042688906237022981059987679138099225727723310987978740843293844815754950111783048703324479179517393241662504718496889554232393649851492963917755355451015791671208733709172227173598619084918167356445980121691804514954702479356177839677106284450926331883023692450044355561837303156825043832864000667023526446913366889590400983830682998484801827995468629314103660592556096294857911826523505296282232641422880191422211243059957785820293823442949852451022803886925029880180570338698009137475902869903656625776855242413893840370607802558040546989283119535271816581852701035499050572188854842478727223355624863144388021309376722278997504935682049223998298775636671148348717142324697401678729867301344410131636795860332215858707196419444905788292116115058436453584019927184243617321242789181212269664447669817304937379448103987068126642619831633800198077213831391703483120267844993487659608833790201442728018033063190428057601084395329521392430403383954990253971774346047886124400956944406279374114465527156055143573262392513814257864414988363452300970689500429172213490919250522779883822566937902530565936597920023257931976520078256530250597334838513733402148892993069816250780580890241582170489097635425448709767717342298350581155437074117625764393719652014024155401482242498324137363991517837800544547618845425043028362299567443321651309718268059329687246382897633178148469721464144119097304505938303766876799168041429348037674969748073784686651761026800461552344285996992661235479772747029620184337720307072769411328053863738765072486382963498651101528339158475216765869983619700801662219720300570701488055420414376475946238180991000084894870248143130582434312505392133142195980646034922268910606792663205346334910130041421538608597326396910121818175709556667546053747363068497354185441162721968427888493572130601839351507476415053036717122275465534640231643688251972642886174824793285628074336388257688177900885557106169001304827267654505599345461951711188904339863752032569973633617482169274094545195629359678038623920053953575514998045208157656129655288411536180499864304837501248869798117678239971775478491380160575690406104584343116443684860392415461667629807640982641737371701089283520842565269366029522953991543219262326027212479276463064480346317111108877438345586371042943793225766366761660535858729629593836679835029538264527336791956436442123793269838220218216200566807889739365920043041158277197267073146099293697175655100923443926396554806670901634112737491585584501927911504136113603007447546502616063154959595961156497777978638775260992813336639872366597199138679018497701284576782387088909708927042643115280404807646221877965122456707604485476615066023356062129986461325544420646415547841505581257589485390937516065278985610950197614808588752031934458774148987035261311993988395728990670455990826501992273840646261038554362892103971408167182485053457389211020008956809377771196797171534143446628910513801773247592014480729463370226692713953734555787638651414826981272716372246468098009102102894432509201851044118175189428534571356008745911316717780513019550543617318274817143186908313716712979819639576802098690735916630172551349738339111903983207427343541263561571839702232538696847901799706387036840528273000704926194731265371252031505477695342334223060959229605100174915333997878317621796937263507559443985900718806737093092463099068248952754405476255752339209237096671443853238594072800926591049340669929229757022463298267278083069087988029647743442868005378663609733726403876693559780137165899059386962089029326608891789524435006733692402714190853027698149478637358536987169636583670933304997727639908832709565887122341971064489144081936571837637872334384384346918584613849636208731522556962920369900400785627395334207149091309580580943980605739301665213173878407473646567037203259518484960991564923807219473808894737945238868592506122637793587736054300345931647676559427549816323375542331444856697935646776650462251005847955914878518881680686381421131569326256547486670728698920919069910070060321733780714280063365045425569720159723746646572304124302574715950482017370898380706722812258889065154742158372802657763560194983463251216967919884687821193184919732939427975407572378853017065358233436585358741357112628140851834898564042770987911414975536368326638827398173574937743592383919284809651509073806012445113004241289818955122277824893157043317326264290499146019676276647172987251769237052764089808792735312388319058307649930037428463839908650486312920997481124729075833466228647631475140400524869909149585702304756998163463617188973582748127911612763013388574801689810805539452376563017027449244170987199026335523480311763298396757817756993409015325946785902415177292089465804610959456208491985616003058125333713166375734963486721944722122949539296509643048538535812514373748991609508850258779158443812227257935047481489820760666809701173063943529160993327774252252135518041551871636469110501350941572554239485666179198646847875966444290840348852705764277230774645036355095116423153954337378302872640018859923275585306241279351960920701710240894284328379561834381402935732812906653429185063742631148345106773005115529639672727390156009887753141899980267743090551440616542158269018090224583627325132872315764517759531847444377605281400040422043441401079790097557540510377713885656289495006262193759583907398354357768935933636474036191593650795162084947362329368302129616524300067402720826489282416606167602003337879422723316285992640139429784561651524808954426538599388924056063497970252741827749439093078437729199726337200934973750972083110438233509914075799660392762036038189523679267160697741347644640698786440134431537637636015698451419030446788991655454213486072724319586833134389322105957616275272686872053980851042194331095184584474247628369130864440299844862350417725770796482769280466975465840826204381613200779870575722274470049376523698654020822014389213227461324504212590029256765709622723540652478709277697092299850471942038221577301124907198225737140377444201021593880642821470637195739650851254575027244784047470235033384040817897402520885826278516701066480889419453002175899118883261236441863567963362248846336915743782898534121952303029806468468204755904532011178753518697707474009281299713283123866654441185402275731167331797053085935095744626265450750719784434870449509907284399410031646482317872158240621069633066157257752553009878803065046267344350819334221715486027685812456303234924014387465178273646747299084009202764400153938328994507550739324993991250089119850407260972242410186122909271490518430115285491241563736067416524003185834794913935710495714018709141133581180110043493732012584048336319905834201339872172100189385692876528292370432845096668076015356664962697200017519206412977256842495555059461898853494482736789202595605772750007220099032611419329001301620977185765358388079807407141186020970228731964635994754204265610394277753685510507661845601916427974956775550574176984365371416914529353013518350639307672240891943619455977565570658965653879832867710550566912561901791223414502472134193541150411741126322313094227000971419434540109105969616072891945650126752450517926074270470009626929876848028025338579947245533391009203180712497680893473302577515743140946142169493991174894695898786065813377113077343649995733680296846256691226974137724013716261169430449225959577622857569373860821376357998986405503019236758892038619463484803078688948575697443327847215298805326875923179311929226162108127263776050572732962507003606914079501446403228648253568904124125941128519253279821750357454410686201933531478195591904116486669588154920055645680805257004811671871137006254263722101951490215249117032726622052193221636123404323537872954528832107699641972353251510711665656708943894058367706928148721946354238015938054888217717917667597027326052975047010190169715108092617740363386807561890032628069285676696029418744814185040636211776799813528988789378074766231867397259968399792049334824376583497390656821810420822459220633176145211705044011184533870444819634364905891706334651713919567732729914442254380470715413424976305025221914783013384887024849275736017043834543956707219757344265704211459388066696811669346042832314175311516175961982265081735323063029781366966411759011689154900364080696898145356857137127652921628880339699496625485276737883254753471341612262299575275367738697897292939357815576661312325605008045515247791693996100322086577688693773791751542570057282495864066681343311871881204035233645663164456575718538392992725637842656913353852666392092710908047074471450037957794640862996885581076308999381056063588823616728335801922299240465887002101569923944496601835148443832561073439124032481871727319470396297648179337290218356415457621170215564845094440194630744757283992550721330266124051884893294685630027995978210452532440909881782150185412381861251760343602193632516756613896826778357746137589132434938577406213675727905333622857777712310790736162121964157980272575638506103941777640660635186766745407538452510087499526871225107742665696175434469528072588287868900500179390947346866070408772321709779594947732985403021180349156293924281066064135256115120185305927738392968287514931387912867282980319787875760155980412389720349503153691806213514229708973416960438794649597508037535193004431259102916132804799557936283735619946944480611479868105122330417522766771199814202575780870930363578689076062967863288306612866132362690734537514062420434397389485583599745600331283706495505190732185426800762092860760301783750960852837062543023297474931260021132781150952482272449045344674501637265460582704700065356101031808218771904475627758822454969424154362026729108923486146153252385633958932620506764567476940390754604751150056406943320047728426247352661626881211078109775132461507199155095511268968259113489727698822903672318019794361629189169730839077052038564987291323845536784089601562643520452859994348672027985453743931408495545947655510054494217753399463703697502375364131475966924632851880256080595775139928177154083011164031108716688520100194059393694398009811301288914431895048114825543472939648324327598535802603540513109256018211808953817775447563663246402565007573096721742114535044827193476341219090011382834281801117500695529828419727119367794106222102390849376019665351140078298905111112520711087546412187717161812314603585267940722151231831937243865557881566509052392743253371921366865739001794381985225254279609595121041002276047936967590601467863977316831531204020995045652087090675808561439979953953278891417703370790319698727096966909329088781980426796834996811776227276691173301931648446847227019752121909619166429972729692162170126930856612771098217038643326728970050335379626769915210494622652036486298894361039995555210910325728268962992994718203740572844855814204324965417233477928297163525992342806811630536181724895145628577646377756666181841789014691895905968061167129945892950341315302378536779061986435062239736814214668890404291349091434442567894881717537115098472658566328306227963551719349609878651897866925643372420200101510889795781600209769965782025602031216991157641960100346920314061048371272055076696156537796202592329724637648747142131225460184592667540328093215406059388017296702759162332297665451291202010647964255594833196091034418450276510324802540409244023275304207004686268315611364468002925481540130891565998501839744602559276623897544878135638382793529844901470296099000195417689982865371864542130541657465474326024705334136699536514473722408351937706646578924238282206163399308652090983229851867492748303957901662108291771740470715436268708999800609356933322463902387537165052480248039188916649200789575131468387762658394355148422956689975487136880242883597132860843619990392479768955852106606074698296483196488947859727378257265981430958671933267177737865515517044405476703894389631630146150349467310815517874861756657143970804108887253469893431406502399827139791697055565952050844925068386607110332732533151371258510107495212778425297945362293556583146087622252525940008702193780086370055976908591910372185361882709523626398034404324080598795633846128902214338771041189789021836800805004223016135004967775136187423317570847295082408038392740225937358603993520319225368922701680652470949171432834162572884325805208795164694528910936241955537962748606243020047946589977859750168669470005229934977002929644107826663031196892085292561175240149180906854779076518851494508468376624059257605162665522132193568449644843941898656523075630563482387061523147748477051518975758030909599298682479446179014542843660803212753925888361234584879656262477567807104732123725259636758429067193155740948442690766271874598541789149478077070776671729023525784624289291108397541865895808260068558060731619098801208469647177671576090653258972733057239901731522229461088637463269922810592556075050800313138987189168996306826418549623940304265063558704183750847715454743319525948943701243562488727928224739965972014671966639443126719281681312380612733950289658733808008062755478804355608317175242796710073659601504946425030792879766129495302988912152597839818146518162467070533892131775864088520167094473187078959825776405521804198877355197965928898387914988943962051362923933594041874308867639724527423285829762951714090332485011699862489672839774680045525239256216831532066096290229827829302837665834149020299617451854799906650054261597721334608040316388378342011554911352718258175037182615932219051916413464206787719698025405991693041380897157512006060598373884216003356886700858433111410568663812496366421311613291400809076040317719299402981936294100736143190905584120394478083005395459741872955979827609533767655124935529826890333921468363498153322052177094136675768083421522277928850771156114213625364876417230072307145457535112589829649510950817215986543055565687658567605671222947182807906884095782866350551038836274283206624357335748754795108753716421161109151043163932819835110733813140329427759955448276544689342537509284583695559991670115521405534918019154376265348332542848726993165073028350091196692470885236828349714131982850690468746318677226259004457167031896254796206983142638470021168649730015434981770591770958187649595916728482229980292890122647906716465499823595907331731423784365368500071910576971226361087311144674251717106856000952795980718890756761451858369395358115710856494039971800330188110320980495738948548630145399315063493979646610124344426669361553971409540816282495881623098611640865150026408338237405114039229191882218760001742172911882719521377110777549777430994028808890047376454569039123810001983174994906871758525635753190706472880879506667061898254860642789852612509424378022461054283746963182391028997866099454042603465428700362210571783409126984346340861918022227860386887843178240529450915754720504824489524217670214602709907917473594681777394194536309395483631365048044926204956614480191432772135354788882368136664415076714372957788781518121775224451037271846934928718888016127770235244573575877055937244084409149609443713723216341534973165178192466200874231307596075817864749535450865577695287485427736922357332035518666827231611248362874628538864273274897978386228956800868455185607738321208203735879499259096565837910956907341623239887514152736874485841800802980275080997088749720617280605172012329566208878941836230734452212967606989440502720923687901959022861189355167816169414027194254711248072766972318571684547885267606493496437800086279366491069185263519142342564606958603825934136198077287067013709731668214375902977647454689269295408049221669550215680689550399205462606008555389675317779851618622511977049830665201922961304800874108730707648119166969785160403250233236472942683169706320877445638801716820434053463994246439046932039572874525085013326726145666769254091513868140052961859325526436178222699234857975514859208285682663373244923791247476660460801333537766850742204516617508143297703251637155302367812662082792926155010916686501201738771364365780435400026060123234970439233220205520279701111432275803502952148622902368645782715401627313580651552935950272259610192567452848166022774661765307235292222491272680879876282822926870638729816374314484886020259005119008052723854223050049712860105267826495617015093889335777513908866678648685145749904040085816075670632362785226182310396149602828141157403137660278108640019581036897911736783497036995917100864218088778553461788004884167033539683901303511931148661209237932080285846693736570726875183654734583935828820371612642189607823878669245749127808149264719721885578684649023243827980008724569573289523991673440288226198599693956002656696496104532566048158901528893665258160028899147756267308038104793864915032352684413260774959516714998318618817837452164799518753890424060930784142127367741422168738500894748834773763475018565167676137702854812717501564700824291850728972627842804176294204306114636810028525726761588241641609474235736225438162682953567156861970186286353095692027748764722075147149407345153075817612975128778882302863484400440566702006515313171432782080974915274920528505261150350627582441122862037625469679287672664909589272276974810118734182492230248297048084527184031354398731603262335275645060030121002699203201000287725882972046265455668565608643506618126532240804346440351918657481308406634816983819249837727287025437694354340103389388729775756099695864754671876610766356092297075935143010837397970864141883203601002377471494412881585861525630559388443877724015228678578618814435791343320510067636665061538919114093548699856447864769111961401726246140126629548914215011247244753389364732973837812092538802321182978142313530915537558508234291946002516861421906541713042604280498581637216686507349986077634574216897937597130376952802522476042541846286391987810754313569333955858354946874365546319345491469063605744072514128435758484048455462363557415739810796581724716545856109933999530307161212466775225217474061917731823341073945053401478008640014667844168103234663469382742162208209410241110545641418205301469079200530338760876331598037678817576620730517079380203272424641915164189871565868451276006170469244139440768429897419122994499697269839719254603136497571502888880961261808245030575155497286772083993600448379261247219057904471225924965027329436021651816787732917223234343479548926577148307668887110660851011363735080341273961364085820084189009479719255855493872414525592975791175671750150886659113921922692040598330966257617009394446478150101222397785598612619057702994195199213716263842435297384009631411233273094802478001734646152372837934613742625555429318369054870353855061963928441458673271862645747084130621626732958175223155598724919194843969361528817170764024372555408972230770146576982327517261844182867885307928666401971520371807328381384062065989762550853445832737957385877326907070679348349153204604822325470291795548251960499906436414676067811421038030439623863983972954050159377127856127839246223403793661410045715872864151747244897524336968376501012235834814375447018472863620927500019712160734855388148175332359588221880001175314455422172031009884789423444615274906726217539830041937714845278403249512994153020475249635551020534049608473430202317526643753073450157772836141051954630244585255029154507712668021691555205898233570319243947221647161745520452402573053335731639876847805428617005881080055903320646099594348782330723080624375557641179440772636240806995666316532360108095535142491805656583986394335872771694831232363049282542786301463909291869681581825428311760979931564122483163221623957796414654377012748013838284851828667103748808856774558899592089291641352856230606952857719331553099469889007637367703936151892150703139012661576146321813093685386618097180102265668676037110672582571798984628226641013474020809370595422348945449079418952735777988369249600477432945334565064943574743741978189583152310275200159942820650045104791822914574858250878094856055223389624783384227806958446612691295763270353726516100267744965717159226913962061948449695664099969479628406816047959462446128850328358781347889237570505270609738579746719626781717459253046205132552914507686522507486913806771553456627263144117562946814960558152006300009296326770660717729865399478334015926039190064118602061374782306917619279644048913313984921948624911008732007655565680672002237606300073995783748216902642033538701695630417499684884633758670383235579567242956832740447995833199407109253101212644088745774896624965687853564628689831563334892892579053392730068704932437918699407551047963766717734942512094845583105796684619592127870132059814294905737984400426914525754849744869234037230789794620450716372038452032299511602192102750616244769975633667195119961886833702225320467585996515381969161856140055816126231243186651857291129987461695044082023205763884384266816113140268132287865875602133289630704395950392432752275245776653237428236972089037667942668774495505701005244505661316591492760991386006968839183078043662379592780264817884479991336376176881106127322417232911525844449296824834612578134852543469556209750587661099219498299731530076199152154996355681675737453414669410951453439489693758304224485646673485657130719571494536576294630100438721771459313138097329910361809206701129987760642042607966585299764628435913635305484663678734141677319021209081802833226067317500827811897370433620646543211092736470951137423505688651709896531638173497112417007300944979561850001301470642832117833242228804431525979004461911104563103327992202175669407399388636291688084830480722866080274557935999642608715342026105673790609469159454907175227371590497860888063567735955349313634448108285752051021808189544074295106571795081475688668626986867658898233715349035213125699061084075113395122790521355852765286164674320026584880471693832521065763424451015023493532099339248205318341597851904139667856393902172663416556936262837212679051248339642965443931607747753391046273913056699976861953961659357206494921466703737263068653242928756309939865643072391421508129714672585981084394416519886602211152602102462931580091491714615279261952346792770445501510292857471572327606921911826339850678281909910977065211909053691583042934356902704955151658579752321088725614357998987174069954014031776175180840658923558575435363493961917028268863909696220923184789774284806321679245368402728756250092584312198755997889479325359373524434419899818534092940095283367262379462538661063022911059531457700383640805570906735328233470981201021641927965452470710973842331672899442599686300816799884040852715340274735587845291842658053784491506226004317241105609981411486420002583207356909070658942731689144886493547923317912859751619181489352590797824356582818295992501090014201062591456477777249174267078380032221361048534208045148813594984013608698494596141301943876399767854313496471752754105697180195209570034031274312825143783937563975849590970851154170040772021935302333934799981740724289233464016915244951955541174463225613767750168768592781090585023513192647989220247556199884208832339721892147049318729555073872133070415060893509745232714329913018859447262207708092000012783529089554575858138521645079359449374493867960326879333631242747140173155821300149063459827341716888768690954568706409678105080476145235637041760714920056688919695604725259590302420525268153364643045316348315667469828623492934334425223793063667871885778869782254617583367967908676952177927335854377743717068148889880266691613250705195005875348723586691121586142120119507708603703337235989411418777292178321119273910607745652802295875422389043386038127277184389298708151850086146123250502026378927364128179098153520700939499466035610748162419207993634798047175330151225545300144966248792623185425527918549266167078073086037484985871802653415576390510979001289549842156524075084031520562825215815210184178692444993851307787710395917721287850888938678842231435728157961387988710782073294346553858028533870578827306125969986146399785199579833662222716526173089123058917973962187726762373445133126854546060318561474433517992323849038212865277363505136245025519932373538307317848458820756554829838252410127888480797999842084775006109830503131664539088529759908215594777545120743966925577687907572532637727079001082457298393267568251110655283000352424465780854533548470486589191465835786850674072827053186205252743412181604860237787143493939963820835139515812264368131947297269004325496588798783996044993064599290373600625855180576897431131998476350859143182440589500990240069149456217204058471249842830002486707427114352201277125118775236615956845208559503337866260621454308639057515357463527568655415615699040793584268933555641185136832887943954122889352075751926507751576287675774516196631616544639237737093231584522600633086929246227908094538479347935602497087093518551119903293626205069133002826654360805324985510979833509630151302701621463426712698428388923155230088986397447569467142853066704657003236919858457567571903038126840451617473293667540829551495477870546529820220747568998924673874121278277746223100727024918151271447141953248471508260169176897812462796370943797258437276386179891491844242107683268312360074104321617582266728658024238105357410900111771755581000162546852474507935409067920727464685506313494158451936827193792041672547168280245775971824753817335818809444314872104253460078830297114541355055788172064824599287707403933698539396744806173727854546428598190924252336495572174513796868655094776038052093461517686403260211916224171856371216057534264091799636607583699525767879200601399883956263080156092230659155673507437513368541823194369470103835449184180429664539504547014009634843807375571252240508994974664163903701294267604914164805717109255314302422654177495652357717049798034380349080671596239843722767444245671427402392012099357356914215900517008171333480909679655220775873879444982025312037679001312385775594557393182501617682735659581406600168436008558464421007331500708237691931686265999704947092771889614285200944803182295416745969055104628900717987016927215036884218022727073373221900537904118033378229891925713172013084605057277760534975560820490685075297556448224027632648636309410099277991233428489651212812050183002378529564041664701839770941258260352810624606158104052262979824871436955955363950446632999265195827774602280532501140982941824670389399988378699547017712747096099265688325991895659994935255746472288630132797723312477949060594575832309176052865716587282253560525303499328033043024137701692722411654835958077957845998336659838083709715121713388442069932159604310996095719991337080200714840843041773378677735129208201421576437871966186970852719984209596066067631282466638626374381808618634319920109901673988570234081860617162162015218550056472161994335473715658374323897204418768475950382116235608212026037366300987561025999962250393958777854895371906446791604404121506765043666271033277558057222876783614706514407383381825673748304578487862069621344118757719626442936119087525209536569536204849865310089123214716046747534777279507858355029278640346626131641282446318902051498581112437340168948868919481880416601422329544332969552471044755668985316411160936591442778830620366935463680527715962127520012676510155157301424827917939177544848334760434893778750466883944959302086316718833533948496865090375313182708106988571258738648268299122131487801541183338855298012713531166927971011321648275974896827709344362092232220229032935847459516028611985985237063918999025034725819548771301411570504766557239597255142559387910166998306166329983860231898539624163283780442338054927708888219762954195362415793849023052238527948747747488637459109465239104394163707518896673911306897965604195241474385149562506777871569925830524224732306706573185327412373151272779873207178707738611670047970524023114566506763598694353098433841899052210741052583454822845483470623609523235811452698984801769312089363310711864471874968621366434857822533307265616583968204190587915373522617443693189557346690698157299636363854664236378789074317908532561300846146483301205875981456926319888531130947131763206336284017611770394784330079359922598284420140336394622879900808655903446650478987801580894152360093510802127878371355033470092568287881513379245538343633413512967709146508330055706152702418147631241630289954349571059635870786172770034775441969119587471091797126550588667248569913228713577327054676020526026116901258759182942564883836009436832934572197060073162847333121768640987939250278679435122248294523701921878486532658216478273817765495833871726596914063092378302682829561666935892831054813180783261431496329017358151574046870491682071855976192593605990664454774897508668196488865888623500321423095521934310907298382414572437764903469900035745287891943876064538983313083645929668200227911568260729482780565245912669785658097296396904913341584116980796752440862402922391560106609759179571174880545114306499762478747188762044292662899599561889764148171421632157809586927873096405272146875002398892061994452920671282691080751445552728155211716957063363241739400367930009074135444032370006205805112350088975966957757321089065654306056270208244437045443350866688594020246971758616580123312358604170658962930003402266481206435786487020213737818752275648142484331616215601617209720884061948837979552104306105501765725300344459383443409739323359709077067921055806697228169945114022139002901579781667790845332385193873200264723737560951823872853537906676181406645431284585995553498296026311606733592050218721042140341803460680074623037020736178595525278270401684792862956438483325540877763758806578502287837522631845604418286616565839906480755661691924130823614205185715578213398876278746660641197885781903356767009747226281208602724520194457503106488587623633043495902986264254801787283427661842773681000485360071938579416591075498073802221432237375668763697144936866824017790562275996693294016856593723922523290020380601575840722722363457180804686145371536277491981245169502733545513025432272847759772892697145340059254906806345163277964690356708251344358874506358586353895442775690355172266636137058028047360188073834019790174922131946604771076348023201921788248180937106772788081917780269074439516207830797067372203450254103155405553674945616266203426991796218064036975416612159770870163346939377442744588417842137390332405746472989046481714886789181809298574055005339389872610635437018062440079892425203106616134102176995318158031526801733990512691104286646709540376560036507059605985842387969364830799831149946831270372013105346219074769026198523384128771902747992543768789358899886263883283967980816480370938581720897455232414740054563029773376160150785587890889303917708404646480928952497765086920393853701417204863023425057380774994071619000850812229004355067358806173120955009356346799440796372702117073420804749309828814556315846469437130881700213942637368321176970979214070608118767230762455949627179012723948714282371719325696446686354939476204711313602007144680080518276137285043305686607844197446762550536905061487529088283861810703954592296629576502403811904572728251228022070586225679141291523095121099548796060206565193494257349876116874494535067399262067462939216008386191286662378839255098307444393881545438161400086608654262859204544739985587710305882137629336077531975864116548920229072304892172287433271304622967780382906423919671161107446794231634519416380376601063065909595243951119016793902025182311151311338606990870334676489011144830106968388471934247724888853488210814819603617892285598843381837109052906899896731488433425181421114088281967359865202021432022185343851394986709924297078439763094333218406400666224914961663049323703721136027730491805910613232104362019196771556612981392117309134715397180936841795113742805863843824320113740105598159019353710205175349470780654654310683063572806017537873005894247489883753598433031261279539559208605590505893825984841093255359080302309537432811581186275288612498836674949358156595447730714240715001551599815070635022956897615512321901405509838077839174058860867776547572091043965489927802030642842290277852113686880832784097387499571285019981768825292882136750344205604655575675202833915820715083820800576932686253367963601090732554331977792791336193752221575789001138130110436898847895698523518513103472705009918515899377324283339524736411091512179430184178914957278396812059206678609457876615619128971157818108048037952765111101161030572969511651728956630295895893121385527001539857285438689290651914730480292688124942429233339681168322849533744480611628544716106904191756232163819666827593919965210318660605779792283907802844470411663988978866968569760903613653176949074138513271801332888364611327944163863089067489472070436024502305437664181652076660821861304483343534383492273704204428976463629604750450310841954303360161883969147945864413695339840191191453734400927168335803634428463258523317217226851566041055447439051675683613120582629177574836480733184395736498197812024846812247778785159466940883659140917048553740566534300594090172623775821754384458998803620653036349414161536543808491037861287968714092632892774886197237218689405085428254725471603720358390163724569129430497601044660865456166311261505742505552687642139998273575350402551675547669426042648872665117647740826538386153047937557395494703915499968821147132656552451412645249449534771354002750231421776315222778441433645394420839891989294961478520414425392342418874802229745092673296817158846512433039596663666002644296618787154637077056207358889541543311964648087598806583556405056212128552702695689775122986466898115278622873757520723942918948898390724760359897982679147431864693724384941545698663547977729942134877210065828349641554844925772178041436093563175517858630982996589150910225746788159452640429996110199458347403102333560104004438047377905481415523837838046849646802436101951847376395921634601203070735717311414548131510901290665566998969361495594543516655406835473323686114729713164933203040425625292869313048693748299241417084809332929148086601002338332387421777277125121587968859099496916834150898799302985591186856079023450472240249174697897346760150276786250383432166832677310468607428462857968574243874320460642291306688088337939356238643955552546063780219582569683610497212650987360354979452011160721448047723590857990878881653092033199700491762491768310244445490029047029071340060317958319339582942157549827415560694215744337445934689851922306161546077664571369883507635925089109339786700700030113384855333591469012655002669435761398613118761616239197312198388041984519989026801154125896980760701884353585618352905945937805158913698593673359729198697884447828751786627459817002703756638066995783320857513452830736682319277680011094260923441841215475300180219865629879761008120367140216694109472321991411457966569788974952874809818639918400185604356687999219648477060687537218206161155394903025015372630167242209054854247066224455535547166304415798831991492637101014113237212430492629421600607782993293091491465249798625578943369940774245140694646412814531534176152589038539165700461939075690538081937993799519994761361475204122520415797569074645111590389868856231090818921190578537213671946596468656223986079985360059926940876638329236164063505813507695098246754216254388651127646436162196654662191440600869110034592286657614962899580673182468513878131346285064037723019146014122656185695589787614978616073988102852411240554461650989523014955226117533298152686545045230902350989766302492036568702017505353077214628896210325761458189918024491758628985324587820618935113626644430086763965438070818753288813141032244918811743461487539801452818881280612619118435549408083917780715986593141041361583892859187672406972671212475800101467524088260336430112438991908205047986298058100130441345935459039057616236972524795929068956588443412490941192588216598293521599896556592761503857293625531272312468714099792283929089129727742474753650238657915112971804087549935837203866811173002872867621418466251968856431035801563256590324270479214708892016344403810992326382320910820134546217719855837266300339131018329245531973783323889902539221484269877724668723164606939155853266651060817685093646760515637641449313944012881705533321979127234879221796848707887037477002792842432491431987324734244955847700523083816181009922589088829953410199496077879365066817639565880136470779867825282819588870143058694225446054895567307905728571676864224854107274570084014422905345728887634217576465650484552600934952463903067244038895730390917395286531871850634586170077940561316861739412002307571059860448062965204654785061429220451170693689817445715711504902162569190684177516308074600104791340326777740603655722095281921397908498550186522601002461173938530200639506358458796675351077330047960537585324595381452596784338196063228156172638404954518303128861492141263161437955766975566615302152227529882975479655935737356326536384513649946591631506431536729169738369667664893006409039757153218839022891979401324985568804522859232676712268989010840458418094424550669206649664729767999967311530409431939036158754597886489127156385621343539304590672121922733308572536525134912163072525224323926266971694486740833156702424343311586708404918225726306544183406799493920138853949121601527437787634420695120394941978440101416323121776401246277559424171363457774112697071343027198662719858836787149761742426582734392905266810854852991197435383158311218397533678159884621422046169670663851913129709926310422572907972750988362152266488902520139243032365860415148975330114417020360662766767624720069213286859681543107167774634038921860811855874263680521643087105678691800239243972231587019791646838880018684757484251296593916286700809156722697204724831776349899579641786138755648367912194744416658383916960611654715211144699063382768674544847520037606319846321674243481403441862631940148342964322576855207519281687933582772298825084308096809275360987912643294044309920030483106692641242107909459697345324956053011409856908897476090237668556044244163116085737901257222143158706912725837264880707026663076842467612413070738863615708715035842677683305575024683415325328346461986912987026588613368528219519867187145294829760646940521387133967072361928000150043358384153800271617000101264407564593098450112818428292733654092348417929192270637371689780215889421486670458811443687989030429279991172121188098131665125461262853991102786135558588869279768451263981037905789603720540355515859099293526219883785760430540086328514794967690762963944853120410517294682031214694361841020882506140305352557557446211548705270282095767812344304898090464228251205796292093631599682478867496285829229086626862090208623388413432076421894703278174176824216196375021833551537486884563846954305709735427550013003910355965186332603303477465237610004287907109976828280347012202239233976646102049709892567947594049925497080067107922591235805611320106913277367965502350442879913090858083558553122312632519263682383657553342901488981386192078528423813457910841440075263686731399886985380425002061635421470935030627614588042973806292819100937273699085667957739489885965488392910381133429531064146501891404203261565662649890409345266461778731032387113204964090014189817962329881477059282858700768302212187170011404525587288530299200348474462548789460494954686056894616116568337707312349242465114184990695390263292174939919718305843535310808410571912145677444592073566138260987342427161021691191482509859030901385143296485440371000220780281614420670533374568489521736801828474828550483391528906870256940931392706521790462138803300541982625044830690843738331535949443888507143161774919468990346515953106663059274015559692996989298076466131746382138326607993562371178407911127673613483783303284724096589227490078943601825244366647434045873294893210211963651117322339979265274219455989071884554179418873121965477251545209901312882077719790668786829613368378256164071245956426601565682720857482541488921467090411579798405509906733819993754322375734339899747147979771761257442208285717476416644836116657831117073175202031529000410043431242195700736272020263340042036265112499815168047842780259220210740043067496235133651007884879836552087048795523102290987612634661503007897000946234434203954906087490675368373712689144002107608491136764066722236604946720189512671145588422311760910109634257726959753749913885546096161259624634707726129590014199565151996745230053272787571624411910772070490741437360807881586235813301766873111920592668562684873683642915560274815213799221953051391494469432282726697319652402572889035701822426260971649328216461166832621043979760592844484231284519526921214315826923549142858181968877785908814184642820721683410574707856422176120058630430233690590269890204033346023947854355737301764507698082133862366380105297377054321001675356572040238703798983894920067466964078004475449430948429119714706891300877228304833256660191532071081361091806432424208336471499942585210110773154820097434568963344608372088071735029999052590651628875991039567569134584528423445101145281413517510672871943707932707875918148886145355535991212525724113793635044301244019185795667826335428864667320165181776441300642184590175156019714040066879929386721418767422905166012473979867735700536318884895348564115628904088529830535036414992832048340173159784924867304564283825977748090175512401345471134148939379976872082816955291400134757438111761343805046515190475551924031805440298913138058701819265290375602938250789807608730198786189544906712959068487885685234921432221559371382817896440811404615322093690393691661722330663408857441987102866108424250250689962848559604607553058567752138823889215406755094751116143788508526293332827178811519864737526465196209517452238523024194905797950887858431146917059009237029210813836348020670469522738543772831437881183600872558408536168774777600398171866376385192477781203486676101420619998865778976251877206596952979295334817569890049850115788301727337873243629854463947470421997685446122710214145461069058174019601932584800133920202251480895081451197012230516748642850675173935842084479752327249037054843144682228640852301544249677699565090805935302963083080716117574338467417666036299215814463840477470487889452093435517004490975976089805541837787810347748074322669515353362763725800719007558890000049481898508787311572900491689326292092983123441688971848992494666402624464413510925851374231320068698501772294637444935466421121159244423936457907870020347809734255023600756691216347261220262928659904919514861945720058948875270819106936403233497455213151742748359207236704564786228413787208213012500383319891885943169111077635881709902505798924410686763448258293593506594855076437683032885066131141471585502516263848880723059631693834970136324508687881751759618294874830092258250074061800626321478384489396057483668116914762551107246562850343669160914259060386898504783866586014608888819510600367503192631562758500076687211324568743727639572999580421303803311483132708851203963441406227736768258647446948007685610280808750120394600130117224653299056999695595965153695889323615177671875278218120392195206669643662007104511295792380926656361823513462775360511913083933241346502834229250318136876523703925853306768484512704475453089503839884869276228099340386313962591240160079011196580582490904031479383136606444467830656640391453175163494424002270973168974236655826971286584974163648423687653594403573386611630887715086475375760065465462502634187853969521756572176659637387792937823902963760926371567223795283196588799041506525405444843882473220891843063045417847696943517931709541032810890706394658680056680570146249071274318333024191739620910463924045129677972813813783017669575160122241430382269861305442564060165909771762891417307715328932418298455950931923001176428900717388850432381235975266887354738489567852387445851542820166902403090581131471809014707179781696563184180292876558273357131034607800025589880307392419627594565762404891385405347193777572134907260485814824834897085944249749568296963756510186262255531471358990943906014408308749537319623631816416441968265702769041891037459281734514653216505792284411042091760062604348155386454768957084623023209783689505915228980293441091326424390084915766748198892872320123804266093078711661541830788246485115321175689337267725733477813208284181055219284913817375470254706869000689415423381340803802805978801799580306045806331336600363099619438579297242354156914978136858197599020764414930389635117994970856926284302611410368378482294722479478498300402186121896086448858893263302951934094587320845486196387291827694250910950521311617230205145001580451245605960171060718474848740280551106584902712318870268019552506910303149220558888285913272280661553050593232841566944027332632371071028280191968643643612172286140046175344159561655532698676713461979112194909969594977588938710290601995307303545013453536288355352954415566391041544767926841696457068419499657659975280470803731204440083578890214318227368311939992566336482687810210687030490224944505308573561966650790734660672287049581690564048718053471397414150270694159164938771118647871498073289479470651299967449650039547399486333408182177559709725976102350019523248692439863426310918583489993645050855763737153656976525514310810280530248573471998027894126816177502840221435032380752443442987280543214888169036291828185710746451314472869434825641373522532374219760529556947784711420793209031075980786292585264776592959037739681352924866744187545127352908885572660548115553375992246253532242705630114413729479625753904093505948134605140793011185121850475083307770852336164403816338739594673062523617825002987824182794193867058142983998032788360814893789306841291936945021131277385452794054436902246151386679980512809678990530088016151858989153843460089232148119003913319610099243635704306170753644739938150632098864350770612217766192188305392635967166651757454885331996053210284491267471468036145312145093035813368712335435124611709410825574011494980117629086384483941095910682417265224499504250128648092583004915453385698374105579507024896794852531070015037911013701132371239899337241768012942360653146854947391513712403216911255207460219390413033869941601513546095829747323572974064890481754248146103705153985881634913598352804582279528867516968963920321219408680659169804523009307062033620701716983365222695698027940499176270637061697434306668695147793285767227472218249063008134642564510193809145836595006028165471043043112675017960838066958117183240844202098482728424238476959238566713881376152413997225141490692083278071532580649663144170207310415862491161079868388311729660083386092753384957687722259907878303291454357781416526848382278605364546643289423910837093059939698436703809558240344037644937773846689409097719977038002099400835670416551172583282675683400711434807457889440569044995137094448293838560399717243347242466229559789850577619830616089282568190378074787176838176271618492511794845936809232041828772388721001004190058731820868961598824607624591929324583367615070706157460106754289369181921838083198067535513545819354339621101723830600625896016267798958259186940640167188358188073087049654261884377278717114414554831385458979977513955859431092886585938103863405691132185105884712803014626471429194842955761057308300057872474164240689845210231105239149739886194390614274112106352203113311182209452138493520083353165056115570141053909837677248602313071613828183250142184309498531583015958966525256203273097423575314067280490254973443560211144939057839206428842504083544495664858041391290120597438299830721085507842606366476670670020319647516504543165826400881128701373202967113698922095257654186100524884829887174556216949888634650257679892961459295419944233425984459644605706334632078172375695396710453913834930920219330944040327772404924532499453854620106511123638680413203590017742035392868559489129746626581293587930324431504276786587117195211094024823273235790167232419778032039797580003848546902868851807902914766889257131672498814880115918594989023297388027705081220706315363029457832243330135128828949574223881238929664919204138499050446073301668304560612056933360936340183009600893231736357992540821332776377987585975888245303446619119100342254609360054624474712122583245881144693887432840478960426201649413076153365956935786577312039178284893519647326976526535112008028323563624815452667523880666788209520531648807648664939316981149363509704237622423035726543955834958030027915520386248856460785757254100101831299234612587227781593417963092145920633794977404360695799780061691956307267502411869545823467108482552771752503174727135263761449814953910016237340284731514702926408874668771267150376070422516607363108738535502705076953547520253466100129574286061782305874965130562120657189237487322490396580232937273549583683699239241097024850253275411596424776673526006912868189992554213775776804617695176350451873115063367606299396087734924192653140154897311399982467104740382629810742286230100404694665266544951170398459215736814594351762135118169851761164505278044259388374805918766965347585755690214476687691959558961961726154623567553642218145568001701828868617462105957804058068503261694031451861904299792631254336813628197225305428739484371162211432204723452436478263076194662236478647501526197941962894930896203748941238189870968088238890761124657519900992056248731875682615475277247515953517545732585180343795005215110922005546146949414324855354008653194265020084731796001086320627577674643759496115809572894625608401563840530397681423630433401127964290336231454143138727383104176818078892291978094614970246874226860939732771714747982044959211095509890240206158940160324886020050380615424916858659104612435253984968703666989704650663613892611395755439415056962910016887992932069856820660130224699407850855984353312225304528199063664630191302202112400767825344839718797711463597989503703466196086166966405090601092250956007166305761016914500219913048119830269227400439762110208874662536208976631212737036911814115322690363016684301786959566352490032921289741359656758222659046506992331499046746281640398850821753594049264074098902296134703534174614103619690102931197949198675502720806083745853499491459928626000786456302156710238762053032981070102995039277792826933931705777274929554922237325244236676241496539392241746709293950043472624832728504085249342986785932832080598424346326864763303934331552556872617377266731236710153599065027882792854041352235105945230371986997610545313894436274006732814167253735014661042522383471675294917980013543781023155133064954349490363928138103677543740429219840911733900785479008580558060281035688962100656788655155372196501039213954715074224135928694064919200160145348422941950800543468583436293974949434290108856879499315702110701051117322040729369304782065524316140774535568861157899178402285218462687795239505961716178343751003156986069484094006103479628066216911708016407487490688909881277450883041021996653889692451100991269610513027512421633355243885509870672158234561507372237449297641797572740870007579980190687726207802852492556574851829712839818713678315593842994655605636027591667472328031723944108082511566558635958403584617593649192497338844374871397792151863719446163646670535283094087149032533763051109703858707999420070694602191745442236094389491747998583747580169183691312123668914339516367805160712534430054477829133273633190052281467433390484952171419452756944023178878651013231516096083242120814462313819345315538480775496419140367150162867446112585238572611224948755141815269945118800248204223030968467993541112963209637069737868813800052868669143368754701124557251480254273207764915721044317235875253215600684183424555830103758842548652868529666631877668093490459085237399902124664575272436812109648644337179666324497515645116918995711221829789272274532504901325102405523231576570597076118260719502626082066936793014879140742762077638654236952454743781206689767524262335810270384029361319943703137984711489434104334196193937685437879875511242405024979668076357828993433024707588962252539357579864958664741690420041763394961997149904822460145968893669525483625711325537207049596320217663664088341856059761014025083438726730133135093397236852248822707439475737440021298763598758217191069326495970831295439343437277729312792604518102324546801653891025930487213875546867906172777971907136972494758265023753786359827716719066993869657751908989868036382641293716583299758103172535578081750856593079547364312408496372917515765753539340636669341496730327854004347831987934365048291124510361818685487659327929265558356772257421933480161058049262073264141620676978076762268334953708722154015608116900357849914916019043806181268703909741712481616101482411731662897512286785823313831293557604653288295302064188446406401866927073855147474507620922703011377664553486053018150904869377280577771262813640589155214454850545370129811097832460474114842821385220933930670000531375340806040873831599374412440297735040253279205879107056072786266633045755140016577169649512964189330902988829352694838126325533702183988537520308018871615784526930095662447451038226722872360477399116974037922103151929915938849606798013731159292180835875440087651667271357557748852838485436057476809150571828300386807526767717786222186118551699659919514317895721524048622918558893391583520221720957673913568155223813146169972872732166066054139099253428224555140859847925628425038087997815550913349137695367825748062316808255240907201795685908309148968169211471319289209085821792512282806301294016855242787859832824941588975911581006953103202495450654434009035199861543259146390920137864828851428263590480941713574089130417619463817991759173786611541341239267160891153710789010674628390121373475420710621046149240568890754562755149164256414884877400727229698192891729778331341500423901172106859335881472182048135116542601799352074770367418632422039748809445001168403077416023473854351323888427718781224484346738136636236855933609310678986905229167430172298121321559171825516155685739562841659515621248856236066269404330212700669371397454461774524364250495959012404536734242374295790085471400940912151934241718961768471613905706058935821996149861068506542839851585861944586472563590523626368788050751880191074329777180916128917207156821713278690766557476481071671050660421198045248317970001036546163811407291032689404338149823237998871241232263287959017782432200936574048322649993350232313918343156762966641394742712543736504886435692620326956163146402955283747483766375646799265662907708644966394744962332304911066034491301952688111340570248530024710842220688595829897615503650238306754115592254090474551083369977204103163800139999574954740749979356448208068420187644898957179062984573750518794171816332516861360932124224812236631485156085131871232066286267534537706604941462948571819810450030157173743574002880035977409988354012534249256191184070622410617027522691891350157740492474351045266868341594386741279544972515524223949865734647632296968316054935185575754188844173383649125934871544553779952116576016893642630805316467282182105370188578347837726409646492690748296785584438039058989716736068333606029831278538524410089522727794182652278719237649049344624181337456731396432068326022669737383197173264464163089234446417860185207049191434617603586252600578153599869669669491509261728417889930706948510895062806497889049088826461043630084560371553866183624648385376226078061987168754219117195541535031758469855678725747292133696936474420998934234824973401021329529298218356676599274256676273114622001978764414905260261788420558291793345559805370798950282488298731626229567479502154647042106539215619702277256473268584501145332912058121455353431744992936243509199606480891005647061494735422409931192361543925795105820535264750980421972703287616851076023762854738894139913947565219669538146150618072488752251095499845440943412076413668299615384405746967492966796431635911387834354200858225765920596602976352632841700882026254547180386991175703262805808847783734931781769144745102040558483189439941382512716173172464704108771551896916697691150805059744387999195512474248394610074718990391049264576672869282058173707958897240441443318997943079637842672139655229743792762292624561724871634090925850881944467656921172621451615106703401025227358127788500769945771419399615615740321444857493494132710797017884205307681819957114008449690467708717040275158579048493951649078592422040474675772027790933404300108575929884476388934969584936632560560229625948209536011254961699736292217793577085657157278688546740012825666896195749701099319657402843794246646275749419643112576458485647023697896089012656720092229354026051299736579244483477843867129074434032586097476344911737520372303482085144565999674774960282818462380166937937138509687695971793042488059464590961293574638781273087707131236207372797380097113574121033756093109283128453576393095256934264137849146765138680493023403786735911964416910458928163009868665348118902841535680992055632214900464600890444830204921715129276841248012213719331557880480348455850664529606990420964021430516021995748984000125895927676152117808691909184390031322307929691822635444652636509123841179016584297101912152184318659027625013902096731591966302673793401049848122289763764013261540774166559599132981694225220248461544122761945880909047738136583497945176304213043981679192634897495186093662448967112201095242091572391090301835540559058464381292770487175703581024594502266513023678831679746288187182819048499099455085918930392450267714647465680004833649724450975416078640230907894857456977220695215803547276725251496760027151625873552604970482125923994556150095798568377711417552524316332725943914967410722169722269235251435544493686429320109192738741507024107632211783098963660801001119012460465746796663861385191555431806165962869264931875134791463602661343902237220822667700101150877003212892795428164493656512099887209273961673535397405340758231236520638839435144923566824160310620197709529338598942214344611987438388213270345058691204775588126706175226350438389946150921751077251306282045291194371512948942865815114484609770617326091772605154411550682019892170706792332555070359745082894783633749639831695298754055972320533623546212120549066506984564443775530515817637881529099919404338409551561051316435028981439645488117582092689250803300174375754469398570029503434265130676814653696264996064255494760889202685556016048300885313518750063236621204030612467202222699717208989544216761525423455072640568285246980248102249730139616346842104439453077863029738138690044137999332028795900262776966910830297613298575387637318503412897354756388592101062006604365578153376063797705889544139266705234779944413265546718913144750455590903106541538166184753488154760898274499031961146214488247012705700464436034631478746851848857692424728043359734969277372756031876163165363269769066692285350953779281941551832768907933942056520854928280770931873713415855492543834687380908686970460483143681816287447166264193985725766710707898697803465667568781371859881724581900044946920737420018694948428060203425783645699378601184120673017645003122645520074290320053051001613588058461752212826687900832662073894197836941573782177676989280385295390853373588053820072688531174041903494429608609587500798168921907118205295117003333976370567301853655362753924744437519147030501095042415665958438664458303414676944194132677101414790268463376951290734524192184098374494743058855888248159810890581884800593298628243008590694949763563024097113584832703524322723487754116539174680026310556213860037802314791189328110624349602234989870447435960466295629876832885376701555766486021924137892789611821500495104904852395017518887237070821948226377563506549615734270706978122599293760960386050218037116824581630753452592839517639468879918656535764140024202799912903550178592370495087455626936501903715914463096812369633458162344281855202763188751040199423955302735406346889742009716178490199398933508137648542212266081941753840081809364144467065472567503309715872589174479293694438837289368340353240242925400791347686951560253779797505903292926061064929967694097330040116565678976217592009304312192554561190551517409714683436123506480947757301190482221920550230983197183244950149253273426316194068890776849162839295857140499291172751543533604233315597755117661077341958667902227740370216267347687678921894786111786813681062444118289679250894267961581271132616126691199526711505035799336360752469047744240391012220749378475316820642042092600277124278789351808429847087907966151490981505303748484024079783121381316666719408429627807494525082313389177282346935129254251310697472328190445834689430783617603737028517561572152428905987839442168878558412780637108923669975320550354777029526313616663475936274523019996695772838842130395814583350735158472238058629452526548496542121484172868672144671154559661240013214328015730453522238689437372049141102178469559770221105171307014611186964506148121776041132308706289946496608223913218470187948821725253205757081714015452494028526690424681124349935908907566641641577354190125733216625024767665445888697712150324067042555149293745031668795347109670050278620287406872424908191622919138839961637903843769875493382752275290414736039815678129786180995457246190890516779921587213604659230898082380066182964491035313287181081701082290699899848535065061326968027492254578652163535043295618730472169757163777324920119603859728281543606232129391393935222254409578897656842727386935143743233061368536544990649209132013233889369762458974727495930357317840229865126534371662806768848909182331266461928275663807113553265933319396749312877945124066102362338390963059752257199019549966318581537436559590753944083978142138131671529445931820034808257502073756077495780010947531946237858032574434932147831354948508163235716049977184866894361772507940307036738510366552808633550558400469197116388674752304819241580140026301251008178867631923656628114465540619989626178435909032016868381707126287583619611758027367888451164935764923852535139800031279626145318436552684081472734094641944666462946826378565282925830279117377487982001175290088902389418471043320748081466889699409932546886185719070645400160736781666891684765399092862633070983686341082078839185098847739710258009915856360152238931465957054130536145388261251534926188584275974862832477664094112127501813645429692448733962819852366632521906839623624775241611305975158365522740206711371023221589598998281419424151561931345942542561619400355757924592270604306928170644122453641380892625468950365507249138154115085654217757089578137939542234537132410756132670487362530358538386304410155775665897352920516504087778443718136845292992545439858759561376361625908256643450088446153207472343272269467711369296479912721006817653393583444741013946333123992884001116867926195384261783661362896982983747378538402630234498288775244219858929551521677908851034752353306674219678204701022743142097224820754752453420009673479124373037590387850136024217345860283161975863108864070807440522285048248015482928886496064047406152824110011865884432926992203761713526711311685043566183008842696943551685126890779737231022484063318981240151679976068770024104955398132285606304220119417426740968026967372657554160658722210393378034004458868217447332936703117584564997716147604327421349848584389186006933406893350377922478752335587124798998706438914480589959150451723964249329515652869585918051884049572916799759136797835842940540453644518101652687584294255049339493714402031986083158812554202081359437717891799497957615814265498826919433715380647486802226962230402057900743067440982790174699601829212645654934260562049370548852667526219077732342978588260870915225430839398082435685529480388769932597439573185587481644156414139132960715340670001887171621502097171719841502603441880732426951870497192009889373818933928446910257332742434887910573116823151682969910917600868990105714138991606919091731103344220229432280310399561738384789813417205274689815864351548606150922543172274494906982338844766598470393923866067457178105234325714584266463324904832340887681193765403766340220290069432542843560445701275923719237582562710319357469911290791319717162597514930603605960901487426000058063085843292080024115371214700843862788934855521331095230524597123666204579976998697517297762260111843598833488138505000431147508433050365822390891011559662782203107969711029829385315183435083084186792318088475249736287881598806035886245838813518156661487499205103072867554841979116187768940993761369632244516123194929808496644723587168175353665802625488605033005168160182191662513377474612403661985800681512673710390497191004290017609161995389570356913779025218215318180360549625664452521740113766593787588824995420892651933826546797662488539578957481032616316879696902118814237287151014819893385830828524342799016335582049718087672640755878912134466241275901975145376336109272917138305173124689191512706261869187758129419117146200703039310867880771310310634634226481088995308196370351692602793542698435829837220577410016082709507241635323519788331805738440863026287976736328369704962407447108292429578581375877680341406321333004658513227062819965672439895767938943475064487338603543841055783492224011790901933605409256174974873560371432660576861851906903425900504269079656217933336756229704233922471133165024390768270520842238340049399648059471326677784034049416687664141925708913283651054280903896006282030096208705485495752849317257257537438146413090520480023265937061058496660395147186271407173414504371518925782278047324472935395249491963231239146630858371409890961282283675708678676427526449847280759732352622665056357740577664835279249224536241190830151689172681981588766502893237144926705856586229230516765414045882153658934752276986338626438976306040719578012585045629686971953278649894011896623552055111941760346970947448914924686525663821827772233818695466366249600277716249954426643820945427722688196294671977421713472376140947738478331850556203159453451669659712177408799915678466641428546539853994785689684397071629120824387336828830942995173650806961450168532499347772266539531375968092863456827169833936001872740467992825451109738906892482910441343294276232112061551616800993418156834931269452630304651048022936820157417856496003082221541430251208323836699866252129329425210452937018154659875899514090501016655578967972498541571434411912996527863226507942082316811916646952062988505128810423552770453111193441884485913985271611462791444365542426257995049108835559587286680691615242805422782215189281033351625138105390642555677301013419472017005438474215794078350719592263745188530058762853421404620604112107885214093067854138003214040297944460364246818984415282366327192520173654756396855394310088831053319753799739436288532806116649421706783693960250040950882381746525020272432867015128428689018896198132874308048231355367015601306041434694517406209097557241202344773853748588569660587643900100971968600007174369187317669623559899376539813558790232455073686729582572692444913224436807595257628941265342071030293514906428250187428723136947736275634418095973354937648030311882434465657691783050504756626261887859818631954083600625583404876574392832349488184856169792672749311762575248085801298688495838815007818329799595274796052158492180425868448599750531663890578628690269733743680348946063283340740624971559370772401681403695500130702694617635750089572504376805058536797640447554869222137537025051159147446446996678525968341722287212199302266783150980015914825580874460216841074035229227504932300592513768922414360864239590014798570879665298817770204049656881074419018829535734550878246253995726890451154602510464868200405592039234077757517102949322011495549883321235321151085560719364600166074229692913039601822563662933338367985821809545566809860795056956429172350347292753811058450570702483107518496563391757726054585171200040643783344489419732285465755685893464223454184408583894645189005098046158143875116475640442432082388109227762292113881981770764153328832280033541742318464123370646824901831919010254590124121262704918647192845330378749322610741054405686598029314621125983725770828493471871945888494366661189129217613923808399163407352482053161227250914993085748731859996341287385755739122761276755556827783420444910626669981123184772303138518713445044017268365374956449540061514099126960877803534330031571868464384205479081736931722405479642820205630949780492673366602265888496385692812445767164018660960017250405334741778525168972698614754777785589500189824208399651803159856085170934501608678457750446560024465166206222907079600794216444481507279164508470167089759734328913976703132539662723913671602199550527592984522548418201124878976951092498880080553717287675978689831834206670693125371605440670647648739119409273225761977049735598034636736976643941403260937844590039293802421557093220130060189173185563001610126638723704371949175574227965215058420713238490932027013073265042403036594317117281327511810475743162137459902393901089563831977658020098004125988977080102008522634828343965020523763974445850949805183846360244684621644590237737699484141565143914726258985340303300823561568306873384137762334084143491252473082880917659422464797805262678958369958151191955542302160376454781275442892801401811174497597898001411005266444022035531943933684691221533013383723214629051366096621716642628562337418309204706873297364579718486891394972919290347512617141888453711722896018776902469683460130314471504760237224519693629767474180016235596651928673515788699324754142564211033036195373146215418447566567396417882132804059963255940406542808933214119404317629115090127128596014865997054900998201797184550963340103511054730783056190891546621316630817975744099835695312408453469480629026368702824957826649564946498114698038408224992490047295655802174109224763180719699691239436388686455219873072770103191420523333755883071331487998619872125549264526006894326027996968799058372124371194992740599317105921462699348996685583526356669238999167283896819369573082097170117920031627774379226344101219356991172653858159260766394259792917835836641165289537392958413004511526990533252406622433688379024344906794174169051359824619764598809507822337399915296564342766517280286025229345859637088896801160546619646653291259848603861596663875456630267012956387735803795692171683591323157450488801842825111654369045332792563931957458805208255910602791788331763429404385156099979813671483614398394989403577966625460053522700596389753934254167021097626434861443698404378413686460875730786733207052046587493243787505084984152388467326504004176737380449125225184338927514902320999200080799784838654547558508584127450163757893984170935451454199877360330873687701429863139023112185003629914460112842252199030600003178886068771459867110451185545154824731138960742635791756697581452023698015822626826472642527958258242169542448382018861018599146421814116216685764630057738706630638421850152423347500811763907311520411984670782371172917691861992092997518576308361328226898625654366277533432503697696446754149474150258208681022461084617764854303126903658689127771795828077099673899228076481861810717789985706406414573078527843582461560902809125676813763194310411407069878788535098863438379181745805851559421377857092430958398516250375983148152250263025756441576101862629845974395499677171167700408498525567191192954750761236208623950524023448240887990159854561857706209295731360800813577702213621309929393277157574336360940383260580469428146258616318890492422221071115400909154796898202900355027277352866730608962550429195852417272778618815222980320431748772780157469665089724289198711416944260675079556282532430966253914229282020263206369029248475254991568280607847407507024370752470943849040766917763417739929649382478861137366289586774838442850835976100427315315558053101026595844661000599290848504988021325365711171263826763388166647874657465378316187195476517038518602898042222911533663984245640154265026042185530040334430037588646899978070001078649613473067070243472204653400577520776418816653698709830531315932906044447270926759067969278186689659767423743059611794686222038861385626540015481651003515000945675307156578718763053460593580123035898870195098364337079294488727257287682394769976954777943940507045317669416628735338630138117528526498933540398284314641630212546929451549667697791391844915205406654704173097515961052398026217483663536354306963941068998983994085851373728976961422855640835050502264631297477524379398066088524888129978252840999692559368555188134090410578846834034656648771958583644805308929119824636432130161646612839501600233757927069436889755497122671659662127443651777265985997335949511529164071628996603512012559768563004965869509293533292063681354117931772198029057296284702829742399034091682095339224002445636350669159032296846273958850563415133608371057550209371272136969224163648911026453515192810301059847659065211505755563934013478357700619159451459584171157390650946932304165978661854235332240879164761632558956330882685726698009161584395643598790069591311434828980034473802443217090000010437688454106521952829723932740750037489511160096653766516519369479651438877084607434145110252246509611028706792906582219000567931467974511258047190495252785870847797879146838425013870803111418592581307525785536453309399660107173618289498707015046264373340234956337302279619584254092484997282074335945298501872770488681682103809246581105263743811540589947382553223620109358122785817321988348838417538144367873848643989805230766570978930288630490765955521512231524132899594145260623376327966543113544892858258957325817416901491514972049591125623448333277913982004268221249395530148929363569251286803925452840220378778405830971184550037769026542899874629883373637295367185772660814996162190186982075136942214443250278058948145969135723022768668353232542260424467946821764798337505325494396430143615631312800400236466378378311984951695132897482922069610422575779363274554515555112759234816232999152487641814098292676848958313610958960041234051846932791944640057535350882864191645464871665477931516275584348067121710219617244370982020837204795156524250353883609313469163508781881067374496910941614723563117351611227827150637845166002053752061280589919688871948769273278864735026008413099981659320432299180467675958528712968354868559765750003424295481431217257322995511885548052451223740233028275585748771213710960720161619690020469233035808901682103808262014302083766460107842464417005141234781052914775334252042509598496364050516628854015381872490581354761934320970917273076829695718250275064626251721514386880410400544352349851651389719426907844850576399921212865698716532231386108218720988380885812846519483989308052611958191148968338577714013980156071413562442683509557568836584988442480525150529846124998599098170390171905260704167505543837135551076745225847597013092049032280798143716635890559736857294950914411563678486886757615362548389299437762005587708288969523215223396419728641927715795585306749474736918475731854890298345601858248150736624489479756440644205423798899478268544103698306398291749001470068531797190158694669089556395228367533432770387678287085030606759485142611288001912621534020033997734827377172897401026230758924934741791712502095203273401461558396983085911981463579310371845112524546026349996731512544733017747061885016651725081409561770654986807519479907910465510699206950021848374303484812042689701081770002804194432413717780760743031145070567410660969963682267086412249445577289929883760891621545100308473279311721121094536777726707896790652553715198768555006972331769896297838296520269169656194916440004374784738191394248764259143768755906817246014553612681619266145659290098547517740657364725378976905141669526635929255042086209244336762014581852382381099957566978218360886025362741989607678381858786022570710260333735568872444956976860954200126849266963824072508407010066142618849993898911185217010654992319264358478466931647254065668640751462769778110077237388620168663092422631747598605280720970426804913594100125124502369043982121541199115944739678490054421805334968794764919088732908304777806372076365810923492806555898941100172067615471060820340181231535991152145541857025743042782408030203674872168640588843829095528123033182776844237648223550529340337842599920145783557528658187939709523668663548148401935840453398212504734269267457747189840015918730881197841418740109009494001175985633833530830549309275749131514872055657579224650786539235230063568004146926815497946056643529814000630434166952618195368543485143172861489016462470642932784023456010217385393093956740478761005989055917866099839160157484273456612826764404110161062562084716175296157267113785014214227861062828706206806595851034656028009592142413006589461306878957114851500293499348396549647573827296701772200338261780459776024476014261748858061365428564322146844294135358207069846451288795564605981079113724336841360022701201965981385144302487464261196642734072951053523137454853716697718727560333791551495195955101505839286328030783710390671187970649573899054842963269808915759876984222732542266643356812370979145969907505555243508752616134261109971066246627058576519825175822641156535962137679312578151831743219483414440070691657821785262260741440251989707751051231209532028548105198362186777198603887450777366852289766000673003569909065264261806242750116137561335683479301534194947539855852531282563315030678747030217230991643392355020044589788424007876060954607297815477848302673996272512681260226305099358584568060077704789191813973312241870443660344776337191306700790900477445575187931900295959215042765026789590111971409332986416344123536134871365780401651398961220613525572181915802814233235316104472669381794864535421722539148108973128338810150844204595589205087946361478859751445480315941804299498127723880017728456849022290963726083122817732381895513694575169190412343906260773852853302100539022760798339244178204363205584236742538706986948636375401260127485667422056431623377780803924333610633408111124847226339015397918819077999720641486547141007264488912907655378082592413911709089480598551351803406286790188441231569033146427597605046772678923034985248503978397921308286715261927849801590739345511421919707399786164607482487105000623280362977658873805059443034113672554258514677905482635236120267694199676241635071534214880323846181165675498767311780435074156762776149300803236858952025841173295987447621023663625640374258555435432436304963892088439699984512402768202638072275576575752527863856799949245985365221219768704759585561199447777600544465483968856073378099719024871703076323775205889331338904732711345463083120718099060007678087536480778245428549868218516870288402044164535892461143946905733774182818289050834315080729236206539143469679004569127285846658554157645470972739369260995388649193694511975451312550615093002765314269593003750642677034094387798910081600427320189229871263685466039555772124927116405414236343391938072037496849665877929059111603193890287117835462388740172049867044012763794198721740206392982964919043127230032031029634041784584527302252362487675108309918391384382794670268082265344419649348726281961355413715425837653758243284262883078411086068189313188068347365993536157818096035096564162133602380482257886183597627015924363434019816495622723088437380577685296702448502495580240795955767004232714526446458927445394167190157674776303356907337915555265499224907458105538586542990535380680698046086235563149287866135832959693581967774416291654077563139872299450540178342294817660739651227105207050655954133822904711461591148503163433726272733895018314703039515509345093929955306302305382523879712040145272806616986924192478625102070678478091780480948293837396324678676445927557715350716024563868702727527624112446646326496804730588038222593060093730797638532034830964263279136488685624859123127030776400501795409167168521933431353321819313659404155094475385361925932572769164573204290819600562339789245032827828052572231974198645918407567987165155303287075411078103239474099542372102198221654893669916862598892258068917886073079714377400787678623014588399136763791830199850531638203367211278859208292716932817761023219128939229776940040743785328160417323373012801444477484866926096309564740249957939486612212305457436853440951607985771595195462241806473630764145286714475906398677498906223699304602531074556055428303693566789237715750937564460184964562435430887446301383343718394413562579068202565061479992599715628145715616582287425554156902034589171698796355600369126195174878812376934646348104372772824301104588167763387934725698668715082216204161484079552820245745049312272565774018055125235098849433987395979288665859102994354878129067881738137453269939748088026624956539871179816251945835842006367225399276032368205901472890607651882839531445805208588040296738625171658590011064555867421120986387487237875891165635888495766957400359831428793234740032583233186170925673894056603939435362660895169682059001246230362842260956563844121919566881518972544068090899499933784687734707812345891325893572461359047594663042726797770932505617581236778672647634380483528647502655434035094007901772926293956760733599956232163241768138255603308402610773639427665530488823007232485173577453699323707886085418649536475545086516358687013384317336206428095825695701159344283605040062286492228119387907736558766592739350350444135150709517236965516106848387479712598903110436179838504789111449006898835134418441695899971988816483713601082694128772965453746554191438302610207335203022844181858943399484500490996317047388188393233200236397956055251475067491452038477317546898547799280716535767428103053421557466323752751729877861686529326230392918277974822290799903345588724141490473793436959049677931217278413200522137387384279482947674554901197498964085167542262944118075697272523248933525878802124038703188348530980144103915525110335751705181991408394528152403087131781948223094968289402328716143204554027609567593948211487277110511199133767700976108461793451225355619571108399965712517055506306616578589144837380743393973187604863449837525971941364199050470972818223832931920793970213613138454036378404125387789426052631485195321428052192831160140604148247540666229442260408103622894477099583462308630872967627180182567884875437446756358188742788860259438255548277204693303241782519868700856847559317500827426984098138636297153719631375016237284262095569361066765891727231297189474638589866434313740267613531342197009723339933153434229054855147267432854626495063540069920023342845079013808304802911808973022024033652669871158452275642142421247305463584278487272937411146065043403606863243273849764047602725808165810227794474318626503844685940369669187892614805288765151503478000974664839537944028473342259862323933569051577129236905403339954211763494323849021753992019204113396351267298243158749115222842690862666978904520422835388419815241846257242576487380370038736067077484564250136397702891758744764015803132251617199197731490038793411720199270342437409968133376473364145741440662844383830561495908151552825026043132349583713191498948481234082851898572193359464125558467991057046883457891158814916330640663003719843127256215637433930449439757364196659138729852117082166279947885507595528932672848075879861952246040886810300835254452398701512350029194721456796113802603187129621275547975074493724222183029873144795377451264584500698910493533728812060091250184788331055263988767838933514237341440150738855467540880760321941103581058105971940949030894548726970780535874073754977736872305445186593300456746033766882177148607777611808983414116638719885338889485297516016977520231267284249569464141781169642283291490119343635119466000622101424648779434406966349307201630711257750562170380828304000480643932512845640709434209580358220901015305314937489007423033374122680796335004055367712761110499937548760647686871545427603414738045954887637622227477003205630754534364236016944163282316486914679987705145536122690420192338999911299222562475160548985429160070434724160572679498765338317446498150214436083186456279872688809382921779557665635682730442745380159039815975706021373654477949348161676865158900033433858179422181968778717526703385435508674294863528452620942982221047012469310131637842712642048452227829340142965792251586908906755083746005066741230647857572596222164480981194784835055517686647371793597376651225096141816556774517155708480788871262861181132673274386853661484482206722810804181138745131779775593668366264462398259896959313863886376773137680132959817993576490067366518459105750666985472767166747181824250295089527436323525952531135072418732762522077683567114645395492102328934864598874080236780751792162431790437061216459905817158755493951507796780058737913288327396633357346598511233140895564220841240853302966622116388933024835428339492871587355868537422176006149133616053240763682541931724744142717066557526710052594676612899587612123270145896025968507959403240343283192985476609451660090674981926258514808393486090359239958989547135409371077743756963212211632880051023984255216143000784521245810253643736384041393171990106812671850955503827317915458926538002614436975532770918081321953996097109771503240710367629965423520416927441427368910575933174653409157840442751333395613745532406823429678132136833632561167373571639426961963091811006080785312140455557192368223851653270983074263110401396541261039764778347604570634741191981378263869271723248939761636293906130407352084153537006189789823360040184278262470675894325121748654393713664577779986451319293535498546645705365897027045909480987153280224837841961058049432559803883958396172846416452794189422605561769652381359446139166453425266444256812660918695998387156891260054410544930380975491025733651889520052709613364160859795043096333864703040556378403252704589089277247663633660551814668104162798775342567241714704378339458219507393370428484067719579881482985867012808141208317463623051759741960384676489245589934934487424929116349936893538447394743839687799743736281128811608098862868506951665619384092534876549223839571204323913299331158318810140662510765003489146153919108041000113149738305701568566122977451739897435061871935087477636658066693635306506190642535390834375149865387941567249989989075244052831993890730552702200311838315024159680735912601594709986286242423438373485957109911807364095797674285350670021878115383893442158525056194743120591446902708288586554340607357929647672990856861105176898043219033534091584196653751119710383115088202805640324479041880477380071975446186222719241548505451300217542626360040677396151154763292275223679096037076236146002811438123810323411834793194387734457844028206045344429204284080441963085703255388257381707248485722319023385606442628494569367753316100234128113797179064477698052375758809525426284360598266935637894565640714313178589800770790468890268497766214529558294537850448269795163669154431751650253941859534128634773749002785281857999591593644208157908733549450239242076714344191110001816261760319802833282465783387522158366905771142704770191160259259024549226442399021609345074519690499186063029816666613152458266301238142025730640971525126403181451247423091800685496211094408202765933729759927155603191753627892914310625181832660514975972668197348921840405881662994997616462888352955023792962662431955308946735929459728288723528550348282912105964528565907567796508911865884765676290720798141773920856872747643159170285665846285185593723064014874494446153185697858845061930607900738359634447802504410988535354150059311262651144756194575020312822758037303905889132322164565077760278995353705817122587178816267490285662496303671602838291649082458454269378091709442769471793681976063429007675520120947334972247812955111187365116507092479359881876389005894815178769524714589136645056059480680974568398010120324773794336774457062734518035874868933448919996497638219301194921278882206983812809174102210102241674961338750494179718208739799758195041961685602346411331081944296013248208283036093977763550395643984749099312957151170880606899869126497134741630798616112080669173720086182576256856434958816769298415982871761984078231051257468461416326143994554137200269012751462566557610979235606455325121398807258995069703786153515335587080349065949788540690396678274217798289254792254382699352532876794956188296845010698563100047501130660095171268434593614681879852292867399800445214112766182829146434937649516282142198614781315877402331121988130251007668224136145539202853945384138142346333180497852526595285885065837049154572791061876937813840667290114055446487042484485394461885649823524729965966317570675511036102147533655259755270184246865911610305914883966075418326641613357483552702844434924634216267799174504827734133946069130031521745318697900801792436683107540971643881988436735535668508263210205448692704918777073098528444781278551543521045354213456257988474514190130199410651176034723858540396761491807788773367957944636100815037151333294133280896415025544309295099553393850677129223469837523369901405624596936099522494318814590721684779803968126801645749812822924465666477989530033096004933275839072036114830561116069973612092076935591782426779702495920143674293694515128549335893835710397951323083708121035103727524103779787276521346592190083088724128055105712003634244046368423509102788266876386481882356806802975147128039822698937613422940878155129529521746327682635379656917494024992610156994251229945585910668397218866228470866186703450544106411525743837232001551164849374565536374107985495948296979464743329085458954620251663471219744307601467964879269218165671602713302397464997452223381920234477755678942959853941138232838182895714618204639625234113324598490274519105514885809687648132868226541292754202688904113557438527968020692495966570423632081759094428416942298862611028828413181622777512621933245045499341965087026305727432182224195038473789080933394431765475498763516126962953029533978763728055004344774600998478412145071560178009125159361528676978261743521591898069605568671945382516779326490219680905127650431089056400755360050593820306779362754345789241220651995333218127164612226918847844546237226764785395179861057162540711489497767739478624035900747847543307420986800769430197706846607563741623343216711274313838025106541207813861561455769342110380773137065239669536246155661903554925523592346423017777319683183943584540704209804972688702073621220493698166106226394889822022176969898796627575906146345869996781741125833614989032251697544551684201642101616848353764600600688152853825362337363549894284816349696157459331902472399458299783318352333886318382310807744961341686866133593309578134943166440721762367241306819647215527670439335696072759068046078010542572040615993792417795042670582759865236979079946037315863514162979803523191385817400696368877517138001672231535904568753973903732859089342967195599658620119451694665958358349211269856794670791713503927175621100659113809322617952635486398986939426318457022929212666236788588438864454645374425172033688975557365668667493517271419789778251520995818683967467806140060337553996775750498013461736142708272865312376537523198376131917105636158243892866988765570874326203656039265757030687631837876618581737848258477663353876553890017024663753465857783523003313442862564900289554578324721295855636896565554427886160841850843518922587797962488570576675586773193216296932723856201949297160751722819340412908040429432867873970375917674731474888183264636497280516950544924938251235237249254287777411590408463386101084134869234487844793746875351381776210768024509605593129129518117623282577878965886695931690102190467986424032373140008206929811757502304371761932773160606290219641787901566168599367911265629693780634268717831184079251499994538737607827288005986547458017873494196562508254401272270822642277385539382654918986091563583523444598605342226286926302850345441905691953835906734782021149753343913389424257604546759341883080496742301576563011350725000443908182087577995949181096815256902878105858029538154406006265224101621455146507004768142429689563481694357144864236196854423350921588836627373650397742847819807916516534502520990078083378394590641368810165954011386603396461358904579471666081247202275374214497871923138224923408634980492748720935629702390461116828834362957603644780442548067098148748705769122507618112942812724611712591442428870121361769249818873137780497160113996875141544332022688849655628718180287478667260294833726599731606456554581526521335453070835422546170906200018224181692411351015338533561309139946766035804504009597400460342685916717284467215716094750055746980415484783400593665076866613526570019829130371417012768554831305933006182720281922994325606241424261527592628380074363399022556807744883908556030764999902313346987760710160882074380633717857640763333501966309349529033078998436460207574284166603016798834099859096586405902702133775210777747992592112875116985996582980871811053466009050208858214606650090840608255671656439187360498827448105419912700255810189843660720799693896797925199163788473251302512092623491077480762473065175804597243907189866142293832335949914062999561789062464074516410005521246293982935392083384362135685343465869754601763450115274645272493384882669077162954084353004603665788191269235248020183582026917170492943086380961869256981856880577769401501337470028790153033262630048538737253317680372566526969269903210240566277764685264605889238607181417358561490380181877921514720017045777103267583383086434068924117449889357775999000472256529413052566045959414880866751839510810824545967422812717058917491070478679864831566557681764974156976819223207316344706738805255316032346211758457567350149961803072342128376088403303357760728358488368449557737653002386516200188886738905228728090210717591341232701714736969336840150304084487796874291741754944786154860519215775262348352975878814639816225614339238427358882606684893608534781214243488725290701615836495837039003205472537020814966487340625937849812349909091745259950283597137371621501544204904255099093127959052321410667286012728582667123480395703145158650416982816173524689195294129126293059412121459778116518132745546950537394495784003517816165096527227770196497813802823055281818435714727400390079376509349439159803368613739650713471638541311377091184980494475859703506689250747150192034166161442832533446953387256310551896374804146614239804228193953111058926221662009428587044921527335508433558230479515203943162397073243987296692871100681544396502299115118108456186832634866840912455634202045028118622683730517770164727512608568147867486829941905759337558391950618471188963784959314512038304971672266512049558910027066363793969406151705777045682285151029683336712266162356092513219119960332207416571489771158813973340019659486931587387163990807719213205972472510485021224532140024912440753749154724439665379225521424130472301733717142492300712872366146869899851173640225197544849109764878665178120689308106963582530019410124868644680243429230644500219124135862234012273816688624146407400764017645692217979017560595147044066249626768005379800242222657501621861751556398403725031288618304681039760680487932321809669089269915427179292912080762165340135309671268937076135989059025477666639124210429755893752972839187448161432863098295990903093177059627693161506940783379126054556719672715815655114823349689291493303113313853833558441435890139338052840751383376120335939819223702338557683722406710610784379851449317402437910342138044013059468001583564345746251093846926354704563586348835527544308005342950309614270525323559337566460907728882365779987662267875239088866040146801751822755275572347397193442664679931878237237767184445822977092295617110503720266257054465987827001948019330643694974547553086216854006575554436955064859274931877527285096438703014038032079838522896705496978112597953232414766062321169603975387086667534780333800408708065230050541649302324349837911885128069414089847608184561984081468050064875410800394796640458907682119010722828905731515802280496950553876441648663618371823071915793777712550287582779446891714351369968879069717000843436915564637210177907054029813559305522680609905820363536060414408088816748159491485295663696664606839474852298268143767312077984152215805394734015796511569682255415812348159790309738636525759490275300287592480248205101569482950651668830411434653981084366446210279050799627341238198254983359240003558529211357704565688909021303661077243591255256991352635629304131172915152127763397056596757292025988063419688331700852817835376514968572941813971322863150739558381873112246012852198728022023295876008089017223653710305854418138423538159133565397398592051950268020182635065737523831859393021911162475112680408666874102334613631136967428857243857957795129806403844882329597037226478688956927203098247070211003919073412744603521696865355846750756013418022391851292724718291374725389606003013220825397715365319130933482147253387887324863924516905285673429332095250581336838368330830226371577359796532911652206155100995520515615679313472000316015856507674482816336864023645550194315172350538628187006784000924823548233919549227507216185780164993901939802273494793888927477079724311885729644516688644352032660612261267953697066392785127975150419562394407474680646981111913530569468136131138799987312098014399439173765848673442823184054291929621166930400770338132995666074300040781164801472848951391451275686807094482174767000008203593213278454840258763575344488364918144825921078315534026827150640849885622657972983274748042343314020671343827672140424303719338799505301757331131510270541517997962553642516958216991084079644085841995681858275271685072274018531818984798350023118178288724651279528565249539498655101839592179116394257308599422998282284662797413810356281418576391378247387447981874144538691082984915048644785218132831520479832645776487714989669242399667666305794041139656298720153637031841568417092581403697500866348253589336938814833064696357051068668234235536020562198991902495289735956488312792132658259129819623546793637916846758751659652826652549071575126529780292610781414606659417338730521973829986294182430312793813037611567688063161773375080423578027069878481484491457133975076104322305079570117112247572042357348971951745611409461441056046651632801517623588100020185623676681157903038501354657702380465918624850647592661713348644685660271348026603832038597004167803309769480194395724219438062701813601959442277713993218535816029715019586653116633903246950929093230761711794397952621813679453947591608407509348575431490380361456411553934228895625473286570495000071551454894621331012855153183481781641728704863280868870802688499006538723368779439250094447348153335088983936729376578089548020606520962020671699588661322991291545162973068296806980391434566926559616819496971027133109587729214738436297341016112167551977080151214249146614961883415816308492929306559650777579693126174741584376296547776454031256838360250973244697495176722893974568979709892165466747224828537664224171922678352600335228736618005485855896542447083479571112102569560985752362615286537521700887324990593239536818028104310653879772507009955350911182017313480008954481519695368026716391814413670416936788221776835739974745432260562275073906331919290266804278408219346242388670423772539887455246220933670232333853747391293599913393449404770086940519630870248808992504882582822857152678893777308880330896188228404747625925260328700226890979407626928429381661365391890581364328959836856712619784006554442287802484044031217361229264628898019811726408583344142549689348010863288586748127939188803360221554817970330259483149818670376416403346045051090940551293577004348212116515864310102742157078480981384146804393087553053629966158055117831529881450413994993311303268772074058456069209657011084515799365859102258013700252439552000057588051093668858578520317242246824408824939688308208058138701784533784423430869059277946226337498963959077023114017423815853247371054445418077941202088134574695682626109282286684463430963518918949363872721141941763293105281812296412523083513271019597946582569546413338274856267565658577598113513225664117223950445282990879907490294013062922305958998573300706073661919399922740024063936709770558479758975619459090625587607685369317532533043807120203191010968451157885790326683808620375901089984357746629610598086045302469968793129422053930702298077250667628205841971930076912644671033109527851344415394473400828538142315879931629088237036787601959596914265865521807722694932289942105734536653365178815482741258630994770889064248025244161429729593171405030227401047820363734767907036691572606669307087008212584971237646009241343955671115740991513658368004549783276085664874517904250538486369247028560977377689799498133322025971032494137085243609771979766322421402028647528429752164424616164081211572280513797151403287072105749138003385409039842619625167362941133741683368018870944081388349323498498105757997124610633377561220694381643700583462792559804705767153081611362111116478212540470384750537368367332249302067086435647749932103006097143948247845754074680882971540612095912460731055338340047023150273912772406811674756295343678418796878099704227384595456715904538320765226056001503979917073691019417848272564285361480177712736628783209693866890518102710784993996435516158369045504298116436536390381475578344076268068675882359306322805824081933899542878708871880280554254977110483318718024136303602235057638445385799576702183134003152131205996274915247928792117042991584296630955734423851908706238439821671317119257278267746337062371809318094727158523301424947452414668890815473072226541138317048608591502347700848965395908891761626432640188921314789107777097334476812256155326041768323457395133100536439805356876463610617148708186205410514792979409325576313917837192167300025284585272151090273211361614390237183279549782933895693593174817598072237753155068704036608124443297736505224389867913818681766574131269774913171733382196716054438053970176806342474421579515482075812486700538078444231367964076261277055922925149123550355942157254793182370400108094129745080633308305959313888341566910092697051887668530323274067062320421510142347199386281895714848571802373576727263868495827387759491762062079113735847539649910780139840779897011309370795343238452090973358286507634715715964236725296315957628312192526774195400809227040985644243228264969090966617471618397963645723369278972241455015995288992577084177470740664592626011215962428675940496575394689384254317437738702856883062246164069144754493320114504480903028325251467813728582589549253866111447447251590652285554040645145010651522620437509454447358554902673364681510761665368169957477425451126488370968639248129294348763503933333306452779456905159590571200022590696213735269816501038642016935470489970984831889592519422139272188798515266823667575927359646504147403076431130287026638873682306719265653424141022273982922838994780949704663773970580833079688756290458259425615835429069509902785079623474315527864196558062930144676861345242868701399799323397923849422556057813244911280757268977349795846094782438124105172187970399637629998387111559981414302334751802228038499447813213019497059365333222990251740496145240597171232463183086737855787805737523800971572574824411671368762206805194058868790028927787439820481311350021183845414083796135421896431345097474004294279395934784923341192405017850422681433915140322903225038979060050967451316048461433088624015970974129941187508301478560521205238015210092611172889229081663508657330532548139917801392343697404353650525652094705079517541158612910935674048462304805213394430110300791559041882408391969841288403747722095421837561625221188240871425181840583535161743843619168996820666664265102429257753886122013654737000083294704674864748937781929769859144297239377916947370406888897649438735975405899923265185386355622044018063144009529547284181747422280243171821767965026754797917211283652027790982843286903980252534495494400416572642426511852938446233340650532317045314894487748788738672077236641131254083807854994639965279570550365284998694321361307745945495285847953537466432639955003719342290104234128303055181407927645702097431985072103475863861740100682347454644592455682442919020546808514364401244202635760453764233764511458751606742581866401485814194525847616531225560824202751901297866999545736317914460342447716077729287576613564152480055518489254155711188005789207068551517715564394899356951996928902413006991138797395467242541521579938160194556714235002537268971750424230173065703334506723758580376079266415240258154106322126388986640765379740937274863004754418022539695602243121484029626742265612246375173682034306629522793589119795832873615999644389040336089846574092316706426173399600854409869365021580674729223259360616662622326680435802706015751669332402664738952061297552658277053037614893526291870960671549159985188831782307555810660649500676578394070290347116265282643038100329775948116688282807177658459089886126987516938823663610297535272234194729081275805280079480327436513766579436487889453151139241740754386880158388956486082138508635072120014077367011210846303670476699688607314008075591219576972946496312039170760998870958492260452010739682404956885282877295386853414967530951971745165017873106999212017690394816050295787512264339481965276002854476171662383591066405742350399791560448386849375483351332076531095931530123322917195428534666129135085424870632857469406685887420562537443281570829927855579705896618388723918195171146908399880063468428296950179006114679287856835300688542154891836426742277447906796618644963832251395092142509705865464612967585165445250034896735568602544093977185850936478216668598903926328953669081739050157595923482640890278201196864635491260108713120678820492501205098864516601306722307588324365644632487117303625537779946913438921570923631641426130318467195976190729604391987101701996773840744532611652955587938347198935580758194696962887018740562319552640856837596662003835002112961205563332234036217425318583431019836181130214206278625197336713347147420149555514108816054180481680491049611990523477010549485983136346479741465851381770551844877722264570985623305171717822785376890311142289861661832494695694357626007889270546582093617151166593582219307256220744346152292990811972665137286202177253358626864414356773382010355549230846183951084429769598382399917271861408906297711954805152243908090056704000199088549712342659160328232078673996089064160940868819801845801154826758570145445728183702503901144211985607455182868354344447170707087698677813719889830486343851173448185770706937251260785003546523592649707490159893502663455422713521004400319714810173976051948998767113195780567964261231235858885081908161665155731383490562178903517292756533037030659181391788180692436499099292691891738260452489857265713981361687867653585795036888522512603450728562245799623557705215809373018884180803283400780443109790053338849453349318210914477436994733240536041634587053838134084041994121436701837709942459386825545198963272595108665212624209206349672054740207121838364345034352771101419463439122125358208938854444387878756498456231624883758959854229898391059503905001665617687424965491319258015582295291216267927968275665240712820494917481988592746604884253181678402335728600548040915528605145926309724560099208990000171414444800431437910369198508770068058288636547249568413033907788172892247208453018642024674926422773692492032573566111346523795615019913209933299230774421353320769005627283470418076222056047201371533122469331830821447663436026773624738670345782669592595616162399991513363889814616143365510151670245718015954572958121215306164674502093521796184899421213194044347261172152534758484529547292607741575935130797686071546899413044436431972174737221850295415739512652173949017938276688589808765056372725397034564425940266826709163009969086025754543586674327386444042340621782382123906116793770721021076699058158468061016200930668869135301785035292900465041959930356417904804442587637525512954693547720943268303727867238049096336643416681319848964950905306887978972621524809425008576337967503328683061562041422375652196586806080894118725778592281707868157529931521435146928500263752384502229686417216611173285174153150528816889316685744988930580602617091540616989268816077599556723458593624432329997451121027228071965183034825870098677591274895864969139381659647877411113797733366728762531415159290862623067870007046074886997872797524574691206652841422646177601906100641359388715743737137473491669605244583277464864444892393938115143794565927861851731414552160657705748538915302754043376901071700689221388276858320111515092191038913443197783247148244646822506403935862046050410752895541336498232064975598384103339221552868475859789675699458338734884530120174270889465534518374702107488143589593813363986751382259245824010186116043941101829988967680823251489013020831868565052360671094886282684377638038362826172048627172937566411933794937567492077661879257547493515435514262443620864623046187381577739077401048509642972172985257832058940371660263234108318271983547061924111460125263332824034915621215573242201650128633628334231942712743237796405273831355248479116799119581007018892691677062252901307608768714483344146051253249935600736647773127814258173312825328177637092324772852975097897395847971509522783339280183275136523963935752332909263175153586826593733254465941606057931376451306549697821898214191608666077177828666290913946985019977190348777065170389940307912506257422292609601528475611251478372758697159430629424394046023277791932934071800560583682358829298237992656994271639583407628461655741439276136624541976675090200691095763861333603516475516008094806529337655825424959089992150228876042787005554431986519734165941422723297102334583475167338066328442873266823610352357964143405868806895937041438902214522654314408527146445136485454203478517667814068607294284893447466585433715983321029022330509766926126371105573923478102333967107980973035515187800503876569566755450789994184363723387635727366457397017301059414439237803143591493967784270959214222828568557156097110200614968471796689572011240387300255762191646110555199810963611160424182436352259243799403383469197574030050512528789453418354098659191685430007226140356468501669478510695748390796809847194497121166480661961303789536301171235229398427317732386993336991539763795904424363273087070126454945638998523495652048356574169599016267148600242370420552468047988442345089642065446506702868657896468735006625781635934939124372772989260298098668543020724910065175024784198295740939280853113431333449182335849734877505279806825034513209858509471928516112413041384304646127603053018661787790330928424889525789451611689019994903838482078292655511556105932441970192907687241158359326245530155732804695147912370524066278745644122586752542707648961782031134222392859516448393864252574052231654850529384768520356100133437435700496417341164515994568678850727890571036694167943969583099287605881758754255670871100009241002980386653934988636516342598427800454253766516757034585094176129646062849265325576572775946980375605602508522148573401124292529155488195123445730764566961757652028912212154236788710437914394055401708207376880415849064936615517545474466832203856863972410281549556097989729455371315196614134218485848804258755511973360540490707187579718442123972099246709281283491388023939218791138556548297584201351811073868786780926089086931416078453365167238082287069460071417838473798296430412238702684589148891953243988851884383390339844753192603469143374524603475180558179323619799726974437830106617413732576158884657544663163760253913779139075414212853711179026422999102447603156214116713288890704821271433456821840985691706407708476197070809018777184982315721464018379599716190732892780459007192778170779882122808489151100162126123970984603083782779495371262985278204679707869502112502777196494055041865423378641409865012356908759982445980240169862022383952902678416782464914505064940393909555897878459901608554741068410311642015577168319277706465087192921974486622415441982691627044057681326504322766759927755715889586271903854444508393221018820611490768326025740897278224697538978760341536964190209603683805855862738064652339545047428364158008730892963036104689601026490266178129536738777304906625197733476316533669560408888261939343553292613401995397020281063855486670945665635023938359426519747589379800279940838992121455652175324541409833177539927506045839563484876418628966155477788699386134187946396866688886744021500892651242339302248937953236900839911013999075155987214990343521787104161377108826287271152262909604098675073132774492638457585346329772944378208141023123992004889277539307313844891675420812936264649125093783642763806683125661323053356035941027079141182766819693360126170277841390884251742453583982742118759039818798462946842739505070748420227033456281300736079157470553259139239814609115226688878808324397560262706273292551070513403515332512837595423964087153018854218907607658901346527472333031524129831288589419078001295985631863640065559821362123687216730632678302725409010780307789492996325820953332377485541524727330612280681196226497915603803988587874931815853868517486032636199681630033524141704053602954992537118972446789119896388480436953000894207437214804333763302362991375398659967793759629952717683391583493817860713719296181801556210351332513659592495095361461124305309255096276980453067597196687764892036459434542613035506267621743970574893195469170911342476898537210401010091718997443472255849073015571388568209958142334697171920150923707005832701688068379651878405315011329531268756811986058011878950073068382992585795170131784933825790715655242029568656442359986017457172333640019384530805153513926212616357340730272698838750992010172671418402997513075174280873858526005735058375429686286591810498148027264518935099460498697461082128493478953437056510268401803757305437720673491388569179729292530243294228293726834551688536615696452333613242085468926365203809723142371236366559721800324845814926562922197443250390498884264537220175228143910481923573736163518403150406983928050661098088613367721312999552434248274345998783586131720205382772703327113322465057346541066255696715436904046818432274076006081788957428649590273786663614759525688090215541541111265293899817716601166726270919879457783408787202176027227467365981850076834925020705146377429254150413608575862295245939857169290444863188234395006592760501150002326688592006964610486830524570478255661882762511477251531222578120492353513408380660535207305002662011170075399936953309693861033531660980773675641398001304813755283208141489050951572311844812773874140988889288553039837211660664105402977464308958614504634856424473779283021920463957651910811636823098061642064818192345560723591760420160476319794812285001381449234235324079360893711208504003065975951050764665581386690069911869326657581102333555114020267776154397600848000844267985134548155230001197272629935235989383258805318461668901712575917988264708964294105092461839473738178125443995790915527054217853247922343874203990948482263669984617646270003215202853903465590068837447506348225976146284449682380499367702119919436646188551839924120456568477845021518712771136930102607659034554304168871600438738328887008231497177565914912770536536597972430085750097920055237371467119243134567337137853822303391480138222072495804517183618626435479988578554044086480100286684930703081749663426649727814838138221470107211999556716437900157782637154598257079198408907440767184100775881963157686303615192586830916284775955447975972451948972015372121596052781766242659563657731677747168515245087130929454509547897371584394132254134081810658735564811718664459911154856426936137325114530432152302357566499799976527157903994990792410308575321633864879659987413812511873998336482221669411168136859761651571118270686085396852715615796734286006079639546127905239661694173057925528385012582342035398577372553342115071878826968036902057772700067714349399095356415272710356862869987271677449678465062194169799830247419844293937978699351687414803365849582849912830625082839790947803133979639902256356505376791221580586528084312790757644922926565565705808697332196271290820093097327973250612044736093921353208856027604001151762010521816415784352620169980813348350035292448193479068686054567340252464051583903283326019009045976975071576744990636345415649898953605438656750716163465237324361400622809802232735414879793797282808184943134534045975172459580563309821497658523790818203226250483009932590612776514066463748439560644784791862424548722658380884958070079508886007845271390170056514109873127887671123233450694946785756363194023807241119233341902282066262953262097738176370308542618818459875606660054564589832470073370894809998136100294842499969152823917532672311519502257512742257098615767289218140264761882508802084334848979266929585111237027328536087687029187661849744352930009189750854122290826945285278499406822498236986561419679451083756938355335272385998926754588330323705717806069962466654869502810538657539593284748905919869456365323638278531641220360774428112017272518573216523882304704873230519766097929430833983340019319230108007202312807326166386421548056449778474677751510821787859112304397962616775418434430576222799172912787193371528136071983704421429228990174943247010516776818777215386222181690886997006833221989734915671882851353710626278772189939439591439263132921355418646113894372908872962829209204304022181592328564696290531640221199881312955059579180078302920205035436101598831785236796442651105566580393870520137959219172166523887405400645510660566121487717858124894384719157320641466545165558394570285532934514956495010559231003486375242415147966232224522168385759476594046846039996935373001708359777182954037096007396745069834910808436064532335305272066373755700470486336877555069712831845381476747682366563836388013000744142729556415370217801089169948719900297499078555205882114735479279352546259031043656202678683649369877940015353533039403378937517112391113278541757280948191833344244352906371554095880935301547630363916829889907424928120974115064566518261602413038876862049293354173398254318223706504889564950845509088778073363727201557705679903826600599244628577403194416278641434614797102135713479950418601412928097281290133009344813722880619215157930905166493485628200855031366174875247009032053109993915638766772262597528705836804737527133852455144470896423996921966236695684586456804373436605828150364901735100085139039182449250278063336256144011453731824780999652096562589922702194618021074583881005037327568686271719273360844384420089718055864857333451856853169747475515693603426088863427358462795043859298971234754750578781614995676504237550823383067796482151974673945926566844065400818718825000193987750926169616376878866437875731540845713546309577795919275602991493473020096355467968465484960639638107063637356618233696829284489220895808990468705294265593885270031146146708828001466805684831514997656753081933568767607834458200676209784369857315580795073604874173989126590609373883542020572942448475738606277565436319652889939586141043054504504483154898112020884379732895465105675911054630751383777945547090640598791895973468546138606977453399974806183793793964508948880169744521524413628896039774740532617728418641112917795870060849982509955302016964355249322796742963356217002340829247055785374115873488479166175872069513698861331960357363755431744042289691105697545502220883436146185094685178339232003261127597292586703205552986401554233604366576216739029086704466949949595109751686414215482182719168713521643428235838604538020668799322650195350210928160297285440058356992311138141260794359525262588081409477713840993594068308682685050545634780243845718209274756959452346225055165181549925332751794113773573262971987432246031021359273571151100600532120386265130292991119601162404474571763082734357254989890421239073924705614033295678995614400341324039733050451146879947355352698013997623838809522843684650941668750304407176804360588592679081688523572609507799430245343015812526846901792245896313599940578702084678544549822443201644839756336666882057501011645441463083302736806568125254237742396991191904276294383714569912911439019091118956016576114630914749254527470083647727917309680414452310284177258614919956233839150173015958841133104352823721402907000606543232640003958721540742446346456113845704148037392848182933017291489035332138962036794100619523753865664452234526350209979194395872189736238904718506205347636592397744776183392021982702586239088161251574219391274044210326537020616526543975256793851323973514783976593612535485653764207468500965314260812353300268373534405664429891572662904979294597407138580748172508551037586244311151102993001506615348236377910605877443008208014202811757748955416757748506622984318176233542245178289338082642425070958063545677472936175059170828901549005260706801223498990042970147878179351915651800734193440943651113648878215557453240709482442035542984710678352536322198237924144288411778121683526950099041865650594589507346616317564084161952888437500164154590371881136777069158339662649200622886216160282474859736651086627075141901358202307884323722291799683543164040295628487376361512020828714120798445221430371376681132571539472257163191054253510941859427213018017523234887473811066135871644672960223736687746315154383192660175425432114161985057662303434041312901827138451254282554762721912453376145637368740080058814846340987335739570458306722275186238892185550181121438222654419444329873253259435141118756935274222286856910258007760800010217641051545835640609507597339926833568008933727933211007655415598033521663819258589939366570060354557277752122876181453613279099927650918495660358808776465575768143209256949020452624189895043314255463031080282332422547795094780844028918950729124017302692839635401752887038852659702488008359333005339340102258810289259733349410257421954758381088014460333406051740184217639460172201878228773790008039201406146866196546321226634445143282602170405340278227873538600702218347467457401468580234271913711680664003493081542102123244593053179276913325640359196961965968158323149817315837057257224619791068609283478531148915923302919033720414847440028758573706046020122948087440164074353597168677937957167879271032341221331008767743923641696495525064100579794177655635852766736937510057439019639686241572065682525404333216253916249154657051793027258442747098649445175424258353911433828131001611959206502657588683310302759185313389010673242770909422258365980140419974674665266593536582764171454472301103509030916205764597436127062049392453335282456643623431867612157745035649570519380248319708205732244641723138236476014693659796798987906780805233259150286341154936903898486487857317539881475615080136792723547925686214587120019594545096942285740047645178837514284172622881880866328426144947920517466493376864257452800033091473666683687464472103061654917561793217807519160715605310589635998001820368738050886788956637377807749026751911621545137065970897779128747354226629407925887365556030554014148570269426761434512982859322311018694913840670902233446121521330138308209963267890509646002962004018587037944972621446648257506673165048526395201344382224061826567867450624274589268139807564069245747350866258652318301334455604581920047040304884567608061519864190100535507414858713409225518398048843117765494236216427218393878444652844932799066440897488024420563261167980573102707351617004035208646335561356611151549742239044167399253975146236175887609381702474886624077915664419414632943551384254311683419780393480983346039188314917807801280726888592063165492247947721902140184275483495684157360561265518837950573214703432306362627598836177468537685053528349305233641198202367994256494496518506960270127026175983114189589998146637892458485126900412427082383000010475382160937428028494214403553749454673635620840920841446950636093571082625673132783498887678083415659278031630275831750127765442796258191476562701701225812291612739879345309826419510969096256091678936100162388258229517362252126921969516196213590878385299706655538138408176179939659951553446333842727494365542519507938071107175510356388869243809046668927819180053092507783397860265522757327554463396008682857065202240285137144606964053409544814301580053041096608741488538629358247349387574025529101643346511347887750319660811644343017781275913259274229969830555964482338230447946518836895192068546356826075455324638975122556994622344023544271319560446377772331828313789157089455730949109608503144729118791738389443881049276741834886925208373770803259566582780419631274512887963467477643215768329571718476734116784784013820798926253558520291893610191218245733717857746230765819924983781081544163432949259305543836658247216394973928888976901618229875736017545149440303729780885634656088850361492405618758176515444675896652022421123974965458425230088450935094960716998259515200687197198226788981771571036340317380000767561128054397179356069431941751815081522818659002179575659490275336690247470206359282513535288756061231025407372663345793148251646384005076530952301153844089648865488988632536785939593111513888662133837827816403980950116822476770902987377351413433087538503067887661741264715201142754252630349389940237356779312588325476276997620194924888872205059396188007353048348275539139002865059481274585064322558658813148307544875612459836354824778256952748442475745878670506471677028870366536223129356740744995721971021879160095148424806616023031240649622302119633359151058113367063541325151103377880337357388597369476047085154461895164726784335166725576341501249486766145032003628116050456970192768523155635834290800326578126369023638129926288931640548141605686433243282794697019464822299796242509416263710290575098203766350155792703768591808839682687196255355385039747651577566621964397879524788242464540444118869236915896614806507871300871061628737471293581014924375005349868313922276283663789507880006327488919697477398065913996026273060213587698213340325726070666206054258647800395952771407962811810360375837292220875562999773665980044926931242783224169012407830635157349870137703240014471220597706695838191446731038765033734705876085476756685679801809985103791999991174905653463745332520743895423420020805051554878409688219026160120186136838482396118639315192566170696305855693173538249300823557349665286867227329933489330595708312280306380705513496360415692807277684977209229059289347266799525716640655830188734375531605125241319589666126463421175098431125250512544022092826823358818733267686710940614371057172421578298683868237512458853565326927797577939640029225692355053386320289056355697886481890472804493403166765129604973840849870619518311272720311991257683576209061724328135541171513006854343325105882784505196095417286238590731599581190089628077188261326086332630411992018617743173483382525305607238325196959943068304762644666243598509948886103705244355777178780449669156188048681936042857845349469030211421086200173866067326110761083059487426114543806580813189598629703794685891162041562824567291962323173090074424484236266604833069811896603868176825167951521351211299200137890974364238135795719310321188273183017932780263479066393304845803739269091273586176853775473797414997903915160156514184964286552040768366661840249976537091052359767483734945868277912603399557055827958683770643944628430420602794142557437369061031252843414444786498122862294248439259495492367082989580749554071979442370125994002420902471086508427521737969488636437240519853852854759377634630243407751953857043288873663445614534547339038619009787746000980935127733217094823209574157005151355593648143321221814150493327385789169819116817645702658733619677157601010259652387303390332510230714197078570273232635484662985145938073134399273003545455308873947180804673177642472297640576376552183985936487688473933486570759576566017921868436705345515955291843815244296632092158345582072212532074940791672565806479029270773874594047205324689119272295646399763207103808173840463628116479741777884111301047952318759612281822261784858526335526685362853514728270337507144444314821466098668585850235033596480730406414487039103570004700974524161812601776506049279881917409114795868525025112696831768312260990015777939727835954286286589609144817334690595544158720485119283939420008560926708699974862144198574113517329215653395013010940169669695655847955800639900981110193163777811639435940940687888648351244368764839131516362456189400734912742870368566032260603442758825411380694504203226186034733634113950795596742041035337689336407305865167482435208470582297739966341991681672067315890148047947772222199219706355716931106602268021394952567331964241054843038556828659415234766299234872242657669355769778269870867460042729465654550342905745402642785110278645294529265014065186378577436533985162001326688292003100773235469758521595000065336618385625202699353109248654306730661007053347733397950144843208574967939620715840862119490556918875590349800624064322047459159728577950966512316276868594702820255263032106147007712968961292040593133908726790275867251293242766710295940048415909062301280438431873324203071703856759469144022987003455609451509478941881966410531492393093467059487630412125554490480969786804516823111154786218567838318642218730271625354568707592796450624108271251935676975323776661770171711360533628602430484334705599396843085163354096727717936419387658983621171459549627962168070913090713781993426528174994321499961728191339007713354060272512335652216715966309267799475709427111026115924478544265515343190509422475298937371381092510124800373495300021358567907879268955735778980315038694579363599776097664856039193990279476302487188906271172969058775715717269723729843760101153148497393414268586457434375832726737384869234196340567224277449738039616625590742931641242869768328977385376327980132755589057718695327591249067301351673031994341805717397015304320875805237961392848207921826643006534073034129570718903867889646576274508070497053996341976303560388149820652244338115230512255340935040184228885378890731758732082409268629637608411164610045825302752610449191937302566685678270670957461590967507450925440974548457857316646919748120343898022152401194219078729160199778802557388488819990705610805140907850738600722054255636274746649365101916641216416760446402123193666924466993051968408461124656589503446395326256058515786457534000006931757252931365902956142180024738108511365289603531386492763895845621085419353152937872283529598246735649396763143130070567555692639565138411067410445356643684182787326299713994335503460712526783174550707318592976711491057965484027534750912025459103784432159791256719200516948777644514960414477787069389996541601383249931996153938384420846222799637513157011692282746970184803187163488920098708087935662110168684188297823310382483305416576140225252457167791151837530824945979795311765721615952170668889586326529164816175826231348556984264634790017071447073653765570798775849782195305015890230856550678642685811877462238419439631102648492191890600985663963454226105169806482647769947424553855972382107865684581618941308918349356799514923901250184661461213093542697429590960461116062362712054849922305480767637862161521620787856879834774720784337059887317628622610640489414019165062409691193717879923777932136952203703216838393369225100052437796014509423962974998593810537292271435652734588590606191471768119453373040794168907030050693077536638072114969276142631302081728721351884102494980619683117713548847754541666761358169543052752475054333285758500060100929788528226655361706267719983249362511399618151841006106454655221663214216462167533990560132011424107560212344159440129281091350199714014133676410697310542997966229692241677249843294247049221789312055437809711488809090522403602405586409659755928673626838442669091851775240065379769567804303814460328225015747176572373961449241839119386725999568936462054658308808049980790583710390220742664565135574484154124674896451046763569603131421228479432582705114665594718198891606360752091599973568998109922472980309690220559359896812730689244473681074067162614058249293569380422216330900605225553669888176957941002837055448371011050747028075759396501855459659464409182430451273979070409544804171945220008463706055665776085445395876882372308350652959470981471193408524623687408753101711089403196417978029265994268976327697220734686990935253456487826397835005952520242511300617187735343593360304276974967290421938682078368506363142277640857339026423657713166903260454259612377842474580949987236320926399884630211418374275297054399948861329293873760760770702858640890889167755051405105120815506301832238804322565579116387432444600378848328536839680617129065492048498696559763703755922273836699179908146019191704094387738602924543253814631774275116452905162894912195521809948487639052144636917128920157961035687569339683015108160993021743686991229761118834567503614230356893010389249441648356363639946618521857846100654500082897307647417580802346516562995507943675894271865762877899906250779174450973037172929353026225813832868574072712183857271828837306339726452854607747902350142777583526895471740169954616600647043323305934961689364232363481228646181157759456929519557951314135532825463237911240024109095630253722473959791227721929782132335086593217332488256364940687598430469386792067889541350109342480705070698070525957934332666632325265529019983488987382771292466430878551513625684811883852913498577052713870381208006749626758313765008848048597631766072362476273310933408650452877083575577008860173528642885848134994864430607936494922270777074948634576994643710447964060166991666764920223646421419472945591062442053212613148088378311612238059999890750368408229424671690083984296700673008952196624854518763106997157786078922931477531509953645045731856216984072005439530217114952916085807115965750331544973911731470629516455507668711200884581573381237282242861538375483433863247711164521125739609807452654482136236363422747509421592754927588331999347638895718596642992221869283727366705629560860073075615578505549254238297618365663231993794884596878757933617725218776730117483678338811028786232324946562863004947821824640913399134153699701981051215609724595307299957469964724703247012535060024749273087721310105166071189286099019617960289304724321940793885142705823728955842959419479382308140977168149108645874538013651341504936869711857239753005841070611915923875932499133163946042028296572572656311702003421830577437735290290462484453578460234241040662907999703768255965955911676243802342092228696579983202869861594220122173115415148000127055809976193812779913708926227896214145678875703538803192521956838391266563429778185291495704363405051944639006751049640178211632092832433780145382351410981834837286841445988584624772271548370762380673931855733618287818561650811646081270902587833001907614159815609479993520328150941439367549637777070862645996927188019416738025318738331030291794350279383987678491899812792963940241173252249005082811504789418294917160295339672854275162060960649517730997861279453222604886121759768026463582802742494189903490058630123481532227927025096062543642479832408205290175418681940027185932111237346211248276389742893316152247266318297546589178776821338637466644843464677261424304841272261758470434006709815644101146437216917155760893530013808653843745377989029526425914173063454590708983185281908331230632082210028274761535472806975523731200476731541179707925711045757336202617571116507419330487568381397009892205311641953245379735371639520430420215369199601632531054113686648551712235947943294021950489713471462307174831651713119766354067374442689092296775017935346784680942345268862952534464986874973340767905557846953429190310378638389397320891505478890199027344452657133551831187288876893780036822012642609583224431805603275524902766546512196756854928508967223027581823693945982554114834207267674421032222104679177569730317041911753172234879921175300274588405767546743331637717221677681263582834497126586496864946933873754724492247477473693347863612462197706153664806435832273133364256169536755565084690994724081881058373260712210220556688407931370876626660832674025197521199894452539615889320645461260378928561959196973380225465306735174319942848665993006221436449025726438962653673416598201602318805124745508933463476729853356438894349600760191086459223429748502119015735845543644078857986793544409088898616954079705332453402698946154122793917099291963103530221818603571081940333882026640297750858649232095262862220037935161478561322600179955605935242638008953989952423992805513116473427009148725180002009810871870933927098697080173893308511540251487311349959844804877868557006177097318466864848779300449554251792331969467678693832543166081585629709831406069567562326113142172545335786419362992424274546512156187302034759494579717025371209800178435352737863073144457536049869808533599857217843460169422379987975323996114142252474623776265290369801253174353095795827939318046384709808266566631615429067772356178346031084628082370612971286134003707825312561498069515038999122590242475769700798377372824161847606449793273101646119565737640930759516618041676959329058840997178976995007733770765166926479373100079205394530801589141605798533323901226829868087427310129967783104409546529159970051238020487386313698280535514848321790783007848739730625965084499379605230368409418607992466932024373294528510822400673436223580048727595817161169129839590096959034783905122988905670706469987835634658145152311930359311318949938012101185888222334347818726739248098926311797036329446808541399572587405811494779563801350691437401711274808157498551105964528400061505848701164912431517759184760396923257347813307414181150165398972266051113773136734385143893287156435333254569422271718015113497982589270454848695138244183091430191067428699375010224057349416759585334335559665438177995361971641305130853606084623654283634738423181312716669737504128544822990048375271397268379078478161555737165330553641048162396763157144356717592054845139676623420356783183926530128333828122766436963302367892301952538256219526977014636550947950437097404051983774109473396611263574816259289804971981662302248143693988010317603837234102017969430383394549324846481945067843712471277899228798548494559307082694888716455428075136882900161636966801764059002586430528010188605070019183154139195944021169426959183034166213210689168349525962282657761992805357847840436116611004624812315462390507425125128409724855633368802194150097503878952104981766451525026995218433674987339274700208903767479544828814070455428722331816841082569705792960193131351172559678877217162953681174330774519778025154859982848309261069304747433553151031553886638428201393703746854087582223632498359512225184768637988068890873292609903757095330593617383533836151822462661278634590906905206009333888507142239664982490157303862009801113122127510689037399453760042836707658675125450650596748847531666631878940319351507924064108762632685794784265370527715392499336821547360928115465889339585397837387341856408729436578490381887355669233745222390881155572668640622467334995801850959244587280041592927305729804464129560459201363575234040631247237259631922058896654166424642481730814538581853059941798316729538905473034541532344592337309097747532922659890488022634884858913322862066351666351205633097307579553755551402719253638762847019965270450057288534735948968585357107567670219967757089015431538182787554697556886107620520004876508104460207777814514975542744840337511335455679614439453838066336358889637802513020042874280894504607896519798030211408289446913213062389969837006244036889867228521037643743673656612827280364834492321505988130434463609548016580569175025704069949471613125670478421154052258187617384346982990148513186427922015627766764350745327191411898178679062196145397361229449764834308807369794667830508957580837069248650774769112626466521738541519248783137248540936173607145427002947990249794670404974613900946660629948354579443753992016875445998741453647273130869680544187763895047866754305647492276014037678480853398245761084477760542837980215315123928962192326872335622313926662380969179856090898160298325342387023894751170554332086546158973538932748829914639991611072054504249145980962421495125373136067414565019267367575248553335571495595322651439756605555287550040302946451301376804231925203910098783012001337817207732106625947891285184734617658734569891601488165500633674192698231688975965241342371316684106193968915366305660115018991427311877811363122162609334198973531548733948034384662082153084518091852243378782362701416941293808420128403593754688889885496841067713003743259736460245504958724352886901522928329058281790722549049248229093226278745069696793615638944960019558586710359730272189126533496032436763382467411707023540454422344748250233357117848282400605700468705153271577382686638385549335910291980929140426498241129592644127050934844813129568639093343200560663587569154683411854543181709923899849448046851043850785122920900320414741258244615414382041341196426704605434259639594813727161371392637693761026984814162279382616592659169450040214730874545036251591310839022823436913140034684188070831678041193844075855669589403292546775048408676370816679072905863563238140779821418182392546197478352598950221178992628489447422183622577136903017827400278855107270428090749550061226452543206163337705698855581354321334880505232957826978575495422079605258046495599911918609526591780329550398569830426627115382985488235034582186231061194816352184205968078370457432898558777838365705019263840357702927005356018816404415334642455709148959395449069913976586374459030683488768983164023845278853303866673748269440676570937579922277667535164704775105327644163537483935853284554105678265149459956662978214368217242563664700398704587110383706023951276828358806621058020819883443822716413878082785543077939426534513793982856971707228941895295787080195432103733193397460910177119311923473714836100841211855967229897458789523139199131234768291736980426106055532203871855859654083034349605209451359968114425143398518568664341600399024198191638183688375916328358941630204106109297057478041986606796012364186816167929261990598996957161490875735198887489711965258725160075093189197020592697589578376860601329706171329858739504809762730046869456236018508616301568126489106837050944007088505086388029695713681014023361998551028696235115472058254211826313132972604835951113747808343061415575026920126055167562465589839388153746546724384076433205980966599812009524889958851035418061352870904036420826357466377416174767727448308925950289362948804620798436980038585885165774938640097175591721387069419795140943103751823906611276710143581211450753002912757108461749859742677996481951635241227294770975740981522515355060518421094418639812475411545023072518866857810612605149134334238994243604007247668393400727608273347456807567796402826273444619741213560411628940135438416147111091704755903399389488870000810998736512627580822748659963097543056142626958357565241438072337479458237210058966761782116731669307239648167714169610351633589836738738897826584551562065545616102011766399403549076564348578367102131563516777359978402991687453307089993458184926052919991287235550352190694578138928551707411156025964668833903223469842246674024066783619665369745936901008869002599000732633636973745928620188531789649176384471311463685398450866665966898903570641119549251467798576191576972100407100255518374154198229186160433067508609122997346876397388600721525701051904147456700660045475945632762536052777492252946507625560106561406608667697856442852374575025366354652308039875967896275652335050674997610322896419066389733786195237254408361571946243069588853908400910324584803807795376286754965581527103400198542016455080979614044571177864177939411311118993175138271036307847315534118540016110471480418736553490365383109154011995147439751937851266606177508700853905035996018057001814622870551747589530005017549121393447419457935171155795447702885644152922123875111525538703502169123667220573447816062702008004792340962844870658950986866908238905883584243312104943954621987358231454097921867983308584253084552942477002484788277650251217576246642204389337127997658918582168962349250842597291628533564928835357881946396905462371071083922769947430933130290646234529734804685432193180414909717628584915955351234225003988933342322342637480570203442155041722577798009945595231206679119514432988553620620262394253437765802933307616149353075494871031381971596238899527933294830534488522302419317147660491945112675347949306039588255490157205244647131136225005934549253468995137028638172549328566272842360296291906942459308117299368341500341203323069467149670374427043233217689389685332202292805807354266799860694076451982837808815441879607312432602226716782361305882945516549760819511092148687125881693331149492329461312817988604476954640360485410565881764164534647206151847670262698782552472427609241026912688229301446870257107866745969728096695269985269694240453500648026399277159471732007998061256518890990705764045648467210825428439695530678303280861623524933860383739747627840498786946703101060657243546591950476029130420641828364932489911629115749115577927038707434775214397401428971570353243618693199863108495754254249171798777739312086115977719429617814402471142441809013898145443349268113957325431892320818008246755945485058689185745937292183119287269333488051233573712875228310261559852045340000210013679113093398489848000524370496207805220579494705505169353765337543715700203609682794125106226736904509349130152818743400411984624799326751301060919014516790764243639465293143071153238488435614328222756719126975644508999914009112530111149252573183704078983619346286965170729584312413935868740815807569108182392509443317719998996825415142484224651706669069876688520941850424449776245218390618250121207639968583393073224303726849653328087867412002766255712233261232039105400881338773216732543307617560349327782297476072504712295997174401702102693608570975133191552006157283180272543752885216809564900871647976741373956361172547301021123765064671052341582049264676173336841918056794545990630031414781536876837822698889233177911712879474591868355333021948544475321806201076597621618217353347754524340454321617643814720985146574913187593897909987181623221312311860233531417504969723760100771546008381183785874857644629949900823122424530142794518259171474879682503416354626968195699069404056106957094754998798483204543511348671339559075295241297719859621751021584292136533803167087034911454161683296513815499152632367903536765975707351792014048571035299587865740104022634726698213027864811781041601649674170373761136474881877766057121837259072846745895339641601752745328471189080890708387998916854695050261440653956258358772295002315559878066593566911992128489331756678469413779478450984517801165173584943793673195049972487923532285264587840783292456981628598773749332903358082778576339407638504438339469110557205754379558238530264846092575003640243234801653939821202567482206237163340012949175151681418055583785203343217198061076245375016843154152325404677851436550943793949516754310757639357492583196183440978498411403042350848310808239908147723918270463920371376243667715644208058427677947288550050534748200597243957146265394598953222492786558038559127957213002810726812262149006179428999509290333947058482362039966539236115301081135039603230836393226248963237841533982724177886559687417103900570035554298475871077607287707935700115853906344861476041977013062486296000179638873715166569532270128065591381857244150387001468711829906078209195635024580035386937230763640688694409749523050054781099296613899248391707222962390573812956768485750055850649167273433114885645613724758995198661570772412219531820047479843601882677194798046032807957900071925647249085717389984233524876144223843658289530422497607990123208704581429726411850139980249853153028706571409412072295963524901033544500573234026720424016121565181062183888071559092326449756201594150548503035073842516886756886948189944013438104863032690726328713895773903046046800280965067773518825972695774304322932866964407420995964645001999214881332389133231229444806410760336295654407725207482830643011207298957614391479686657312163199586557363459279606503175888842925487907831479240358102909940331965879211146528554687220994172373445430625825894521562688105966880124868458023829599197443174245522226028156815015949796286088673549576372689684190717605374378221643333417773201959802728075716102302231800574296855888586241054446123537558652530677269491757857613450903891886269154328860861372901854249836455421017283930807001804816902948671602438823417098104685407050654080546484310488881190783404380426086042979948314615059833784431132115900149960513382942855017106821932207962006433542322716789215247513535916945580882770677601524879612966656331664901826308300019601691388770163852120871955727074042147829917782081720923210403081079557839936923706627899466473093342111091755245609970261989907625411351407584465023719822019009412382243736410984606432560219748944447911538997911952866285311890259247901844776307093513829984734185216951170618285094294411857639325044591146692157322408951334135836118308469833997170652933774269511621663409773557541674805321130655560816282806306650303139409996760676154095005555088048883629443252421235231738975557329193655164662250547037355755001615311476958596553450241208074582505557219259109482318494016331430180175445017670561847635192931829082610609582414062929441284159419113282312542434081061079716536237236238789561553009160718505059893839527552432668739798012631889489760402343749833478512743319336835387703598726212778979162630808501258314108409435541129392042835083411010936802740184741477335553247239630784584565024492715292332244325624195522211170293975941822948367169370284515891943562257123109897460579926424179898746476651415282870010905425025174616086954856062665283031680034370689703887881329260815466483753917460527193241942817170697620184868552262477684732155471486926987289742138119091301887191407930236641832748460734663775619364298299859656921142822623109044593489768843727768902431186369580349231441876681526086970592789505502783862964996006671600290676764740099764701731732925387138341482330004075264846522311996334442727856293435675132352348191468206823475514849542531170574425901780740174106237637891532732469307422705723049249130087700810226838452201269958726143994162447030757567473337014065029074350371557989622282835382235189447303194655735451301926626849478562009925070091686986946903224775479233611196272806588623093414764121085918573276675730579447432553865896909109436828420284124959588399700089989112290902360411596719191493708437209791917545205675668884550535604763422985435561419610663141492931363741312118962262391249309581917367861375064124140454319361478827890685596639635384600688542514156874455355759487264778621327098402211044201922589017801598240560841209047379848136785283688787808953790640596293049686029605790642840906632405582014659424258459136683052718425289945853697664886235978353745269826805195763026460562540278644424033746658189681620092021872174897625146107305259648144273355830322492131177443290919750959388157485270558841269391499146954166371154824245806458695849830155541759248098238855929380309168188845939459104278174174817165108999741424493341401330482875309583161359572971584364471223237569096233927869403883451706759076766514058269369899154028045008876880618615921322703535281120108601748657935830919180553396274293005233537602068223008613167097070418827077778524906953604371631507731630957960426246416619075706050095906859211913984416493821272029916767971348859292613733698025153093977244939838528061380716846897044167965728737553508539344239161411750122058572564867064984170697834948336866963717745330355282186576417878511137446536041958965583825821571435742256472546767815313036926231480094211024487618973722770382256766966543097134321335052252322069527349324843592330535378851872758342988174519390129909913841398157524279382567953680178549501567081274403360364742095337388651884145667572726869636345281688617321723620611324136057356599070538219881276991507236072760938590004567110717360483588132398236553121826793243161503694682473549975690906061593064506822516673620615094736033367737439235198427774214677431355256034744418096706341947078415495928036807520844006269589692596062790053829723542505174901954290215147257268920659192282660609514033044125248753399743895399098049911839100409237325330250862079801766120424227635396706058788799361660487788356387588557202607819679788474741318489832628021563634274302119887425979797771495522755059330851309497264394196663670497646655453111006543906142572501719403729409660578265205421645486901933540429882450088550880768066864071749707628219385656115311129919647168356226004241970031570276080698622187680751332971331698179569296487112733957526608368200020521597314177616339720231998763830494258218850673316196677794607139157716953746271408503536386475795539901337708877527003257568763792122771339531142800612132416104494364975562858793170036844489739624772089292870308110859893382379357696159304737215652672454598670421373712512962828787172249970418465563823066615834152491179140718497860239979926163617934413688517272806872867427389839408106907729321545955023106268139804474833946179055170865016830407770521193966821056033039699950134742379694013136314082339735602450753385010758392358365578081170871027924497588538870508129085830735217223434887004946244552882981895459527739601636785041071917580256288313121477859598869597806033409583250076680040581618446830286191063179221564850511126674046104694594796051486516023358005261227644476345154451336314209103848840308717898378924567591676162804813711463983478816515962312714808379570306635464944158907914828407559167002642872414397671596335752837671703891077989511750702190848275644682831496079213598308431676787211407166960340837475066622616476025943942988663405169778183579591311194992369605144911985440009526182925528293186258556735316698925077808117451062619182244241000506112004241036721719008939278875427534535708620110738979887519529281840991433127201132058072796597640374416421700821330684083868280860008893119098633467702322616726683402309494531356819815023169557572787352559853231788730739020018596919086218239196486797026390255430080758750015625230675550103915435083477512638086287417412362994665385501580245890164657385524797499326265542480749486989176038048872990487417109330392357971493401926453213193524055110784499402901144174180598296185315363774204859663200443216195225356150383327072571329255051539321249977693920040073648117378370327138285905004514030941400246621492210832487771284637191042607463905381096650731388514423561851942376598796602813129466430802976591829173458682300934288658144559075285757138515414753412624924212360777093031208377197518738277969071203743843822052945689347240354083181102324149328974748192659593251523334596261089828823514262281449701691951185766736491018499183785530607423682841984884233261738220535123038499082422044454031469759891620720937966745492997447615155401131443908223633298440000363796226336325679608658648462603884740409644124772971735546823381512670372512501318404879101860970063464218297249162563938489083580309123489270327534241152387091937904992131788858587768475623329813380918776419056914997046386278356055124981257146063910416626565735541341055200901829002167213570768862392966928265908820660476611205095612624564261644659725406142057011453338602728548805140281299069738320947956836318193314487765130845300438895037139850268353391179717446324482843509437060791405536612669820017189891542742123993380680062842118660439255703336101643012631264558131644752620489022098679338704275119513326541632913272104714488904111609129499248181700041763419673768670321180640298040109217230086853023554458818234142723287099336301278997079864043598646142458548905674719900260252269360952216322341489134176884491053290042169996743413767661045347899141274761483250870106175388191782815512937751983830122925286710854003294246304967110889969288919224282726213150342870206432699158592167738594730843406883047627028480021884900252210701061271280770655442851709201601518834731889788041742301563557468272502341285227519370414570197425887668627514497287167555599842082784368497829517237609827037276433721150882069364028881229637551081591441967397603857952746393878479052714627585777223602580081761791036330590490705017356041429318261395470683941114042978153777646347459656475807376710074453629681228643569199465799051236888260190042019452409457168020556914266919270014747966106292561743962459462059911597888796858346294480501763270588548586590757260699671088491103369302254767800023467588237412295867507533686695277519581508960147132348220514261571811733791589179480808680515185301255599900776507049538834780401657871076567538770709551632623076616763996890130994682142968738182235166288557670397190420327946097504518795642199030051870277514205659984614773828648858594689519845802907676606938725266785530181386070720271320286105661828477105559455234619497222233856357623066114970702256235707139239835977998166199966481318729367478628080949400121475004092972849792764536266256745822041265822656382374216299783593999406122916771457965487263886881619950638986444284526463302520090758901367578891586330388784785888767767554597964167483861086345241685528037645474081719311277569825686640183201649822364115233484751367497678604687641555684759307172031905654971831862009166704580782344050931009114867344695160065055587073745431127020422343353721807261735339019804707152747237847821266464835483564131830488189205637212342483801984494713168658635088514681546839166869813997363876283844065169941294208560827629140373756905012329610054590919559121856646299460457818992934887309448620905068108542734513774662243022533574781882868802316916242259789557526856965824245104278233638391990878205418087538430907236713983485117344437970897695991201145116599403871314212242097325582974132347832570360246010663215713490768461476177443711864278761728387556109710725277757537956123987350620744834463164400590844055368136953603478617995272721232629757329808336768712924796745538051158109479354891003393364164460616539754307674545647645422576947132825621573767076531559778845112530237629978667138276883465721343468091485447716370634052691938424887600782448503742172208441036111143111510018918968253903035730243449610584228208367448331203401842879397738309974759037509321837585924253869024642240296229244111872748975134346576115456209887091612835865292367614279706676833949731049570424744682683821799012524610992934212889935638634634007891454086793565016797331601715371160353664333667414707332699357405583286132724702386133137283162280278220279963611589676292100234998903774545741716652199341890495281054798747281434930441128369608908003339143737866065312852079571213352580658422575943180036199480890530924262502427267496007479358403417533636240677424304239810025126984281644121913323358937490667135341538131293139852023270324095237998873062100928565440320491109830483780230123299199150723663131527663633387112333236423399178671785283062606539861604466902253501460495698384450644978418151336436949393708967528000025565958438355889280477990752469813334871844299284507681680078137926060093381581227211316770760183382941828732905550381679916822156850661430952317827686100978494695018385765814185781911671158454916130497202851829158943015308652176218465597868414469391231255219789796953633938416401680980095771425997056613557548064642559406577014513783235344095371718905043365635249199511565892885072047901410784950991993665362979595779371273714350728595834431386981615330858187235571603261442661677246400485206464627360970482782940123524639335266676192298680020460731011496955318717039098276812997047133810670737867250965496658061764648246934843263037831356388446690608463461532183217777731921870952028586707735889399576300920912293035050591820852959733545859142265400800676786870204838969467990111389773564782712616383819674525830604782676377464986393899772355943907645690048326698303172469779439734411426868093015591303597881419151716229886492054863888746467525446731453223296218572316296958368293415514384374479093247935820281838065366233136700914040859079993847706791836082592932723384792993424928089589687388379816860939631132865137029502196500812186788203183517962351408622263591848841747254171930200584533982752606341463648538711179259677276609889083065688777079922223705992702664063769493105683981625933827367215037353839986404705798588525847678648372244921689634231709085167657959745464689899532575056411936185804166787559458571716093600755741463680656237454639938769440564589242412630458668456271337431810614320091610603762402660272950849259328536032237369197063409239218351374291302252871355343710092598850662603997650872960665400372158401654065207128321280360127301710064558219574390661020752761444135969932388574713981187088340778838042698196523953998231086137519620012509524494394948737530302812713206418850942464748608685947452889872205143574218967998817750258705233276734117716040090385548222341749599300770836245839184505801130914840273049158020283060444100041652294247401718364210433632198500958496827624105358194770618111188621753262123790857738689177337229934146433614395854346558498149464264792778204642247559913485103793137904941569577368977130118199863428091754938287194660433364928505101136877606854038593268744493825018383514112930549022694071311061342645825809213753488218492894936406295090533941077435818260915289893496779141579178427803529369994510560914131552661129020327093351967344918709887925096265023673588799628533460741201255203095344957806988163567054218269142843422846634579091950957551480028033098963703551062902974137497565520426844772120962989465406481977250082016592009434040574862118376253884077016228498074544656463462691320267083447545485196419634583067185126586913675345074541551579561094602365368025411440725870131459972126772547193325568221255334797614042751017340416032570139387913904972362838920878027330001149418553398979961300647473686947017236563543713682338532236914410675551921483113900813222202414176701347245462535911131707507466225814503065836645562033396058771419574875471725328698869943154319953963412066540065127567380672401444080416953087868855309991900404733261354808387131744440355982972059388787492516645218090423755966907057758680822766189927641023686889794536410887564254172387750295707397469896945576072876290526079403540733849354242360200834977637907454740797650890697574392011506167325639368675411981389565940881682755404690033150167539087704535282523726415140954448217910625725476465137673683506790893193284297977341827986220237071949891554247600766945777723815789931492577997813030070083847710570190400635512886849846137922894067704649070174304144061049605869185997882474779542357934642495854096062346619109312120888429074375481646169976547405730617832427877167612637834113463819983855803764286319455515873784512265392204923189583146918556378853512106626557882752991349205216581950677956286748379550524039618800593548644273811246608755776698651064508127889826679956271593653087460470288835673913380808790397586359862622018519374643890344081106533802059705767841151446069031185505026536361595691932088616313928291324832292902243659069537588294073222990991763081668887880243666391706745255824723068579817685755338122940288313026741078152908805330271990642875167445644615267655763499766386218176844097679474137844205365349912585446932567037227684504749712869542234074692592445764081720802247312933350718506112229982414073535831084755337954042845781717551368464134924106659474915419114582789764627179728379903824911236818259962030168245210488648982529486043251484134826073264660445552599575649914886266637436677764296749328765659037429877715379424626125465577298900497360910171759393534283881704751712591261100402795105348396311899512158568288325547097373804137724562890702253688270948597614126965499910559538603463470814160059994908174984962217132112029191284360231282283186091192633824603748682223771880009802710466599117136380725751464781987434926020194522770967981017224846496694528724243089108269217051795985327576289096165263098101315563567205425407525655507848792637219568418741529193398111362202116413474816209531011767091947577653992584777410714560995253308155609785704367538949080724457784175675041710803962922189537856157702301071384904405813852760018894315692040892908273739795733289449832373989763690007868955995476538113051244672675283743901950663427111654226231038724340546730535244449247728921152367699038676487791369498458582638773902782504341852891881245541682440299862012771947869433930308279332505461447824398923215392100719431360960326483680279510322191210791782658753722338339960722657154571014910964572541520427705086893462041616069551756766626169576148411601831366053371678878672172585769699863269819874407296473243056955985723210232562404436306915335346136783261880001102765050683750984371569165846452567760028934450500877374732358800424100595938829447642254573475385921340754133602860754883643866137802715551503503052198495140184163448685691974597280214892848214124891750274935949570468542889936306203662328139972032391211147306863308618489161864410125803192678636276025973013838818588946330183108174158295912159729032345984329049975303800862283111317012542084477479163476582696115330202949989841464570113477751926418359020675421029037661282878636857981602166548378101818717697451923614553378358984935506852392731611021591684056837649622547758056679620560405255934078727907058889418142844799576400047526047673464996351200084951742643030327488755791912326486945611509516547151045592168532505960618682921846787198600220162752792106403391032616089946780570578826783979390994957408046254089175128647230683847786984633661226678752980547339516643503977865899894165363183788213085247636815688055495742899588453197097256489342059073049032864567538127258810166439507666400784484649370294129476510761842985349571054126855465196446921165870150748922345389742123839640739243488300617744022644608457051037995146529582631078312192575866099014763786862217020691433657428455481494849344781874964229429861501628996462043138968632891645325912540530527933369558095364515323959405850400466421780411318208338842442284550749885329045707851156250303706476211853694579891735891433746853062774268753526691385448482977462574963194015088389074738673850711470502080476952184015171715737348129925049008497315089620737997783615270328346315580946837364539185418582564428076033504826054376171224496086804177791292443624280594127880133471533615680305894228860501267632660780596061275451859259431201838555647076724667579028182443800398774776321298472341815570142931459355065389523317977244004311378796674072823199153567380454052777330799202569376194680896324780341192454615846663846983142494383625989781113315292331633617673574076693847707648479766668915734161550776027811134510707123327361176087346497904067802771036387087754437619295882262526911356483892914002075463226664856048299596038920786646657810431404533061418250038312733663254333139574559501746705702615039453193564184364456562876549348522194118383022979154530828934176099625805985901255311849935414705498668312355555893371275455182809100345953044088174724226990750375052146775603126851215879771113508083411847678999744119366343532308226982631116342466112710047123404260512273872618706233239079781577899073727964141023872490174390126543994120374877239291072544816011430239995799045295737254834651601669842181553585379056191464520749312420575729383888130448211014968692334402521045404991892234287762364723714400464825269453511052666839935920072766201712624246700786914836411444172997919414508175799592905686097712053148680972813568883033962034337439908776239962061231282608812197375208158288718320164591140249952839558715017253917130533960548129474246771473047025113258616403873109016781554312706718098825274347532524573948165845918425024371822700292114399170153012509256233117708649292146024062600306471868487265701144450623827159607685598735505251281673386996981200385552595412465026160816841100416836353917998017421651895152943556646183017912116039797327811907889009576111767040576857665829353840540215350431391369001159568341599321632633729222859368082906953086818717119913599966542852536198770633588253834330673485179528748861734175955229994362838929776237042362676319030977123695946216729465833606034356848878887957143871551961193299049927791493648670050630045679675862955759657740107135541040904030973603188190363479113809601554163518276287870379961071850614734875152943040282227841444778732491354757582592914028971123885403484445651493137557600281768357843128681165641722827931725801985002991351005692477030069291464920244983292654828588945530652643182529469318146572742021530619759529912424086938628232797962811538004670338866550792498539943239298033196576676710772376844938156772273153628506648068110961560189489260391339841953661926041690194105903591385234469404025744540574973026197668659446338358306474715534960529238478279158608268182245939174339195494885773519431839956338197919818861595955434309716775150500500685139349751187106657720553071384371787878625682757184484088786918980061440923668784688190156447258703893316381438613871070645182268469947286753924961073247829885908692826264088688907351262439714825491477880018047653984377591931893585458015432697932451799135707666150373853916813746456358100644604267957948487282279976856506781968814089132331647661638369230560673178989554658116728178481106931923259954611827698382386305031089449922902631481692733682289519723474320310609365187481556535795504787877881466371298967264615992349101666848468180860855225624610665766085156633907323216069891642983955101688131499089464715745160659957702256995193923436932864976241373631045402540279098265452197086993969510282314431618847669536123873566780221283609041788922781377199927320361655463384938268204100991652121844597857173089207066533086052383114350185950821314273267886312078717793964330860507153233824961128896794736601485283931936812564801041798061483770485304476991487960566855394366071423548148311775371301397606164602662681220541513078272519024237873712319476655062298360824557878551163099018243692985813561056366282756658505995365599662086182103139949197307253061956124567044532685754494073813565930103757579584753782532342525520665008028096129938054842270078818663711096223406784363778232390326191236923362190639694938812678523780362393808331702554510287081819253507309084692944824185272687371568381951456158187108965909216924857747014187228275154275209653711633561713677174191169410476273942115832953851626258364145941936346860917131291317301776688578896189778601571874989153880609918807875098250750931842830236981379775419183137069077241500021438635423287743011830404770347169350217621182938096553497620388800693460653745825746644682125435529145447929147999338551566164557087529641510437153336498294894238504124222386589580861706090729285250993520355372967224667224433228802271587389754548723071770085846563747101576794089228615288369935736784781652884289565854774481097131910456163024688427282664967799868541917218386739581571044372088641823131161780494117577241349196398039736268604566546527255516586224264063364763628880211344390215492335520896145493165089218143042480285478761398220471682428273783475313856690317416504847281361517777563680470520430525304924486635537449869229044995815288306668847835732731555425533563800467459806028103914703053091781028965127711264372542064887878843989791458211359345404812744257455998540512946284540156954353855784279672242056374626848882797078516571912326401736558460066925229876261426895450610149138261820313554493632756958564066049596092523276250075178968713327066637228799310635059095979612493932478767491002011938435407685093253052881799971065466016111359612567242390198674131265658788873404762457844309996561150544884187739120242086968973065374473837242730067574741391892921271302521994669038443279474045737178771024250310929504381911112630371647199835251226269235743362518545748039490724450350409575959320273377241040444369552362235220791249143767968385348970004786711959441737710478085097966795813120405987519715767955091723025146710815721553249251514274700699717658276533129148774907212089276802577515248827999374078302030884746683078927536073317341853913427334028953740561970346027374847488859499520873287431414530233940634075341432655297980999328922443268718956726802170930215894374542065718707657565169142699645435488223694691199359470554133796721771699341101702021431309077105118532164321177901446387647582333731124650657426752324848097048949585394003879751159963899765112976361226706709467794551098154381541486105259063883611851802626875082153412916082823162673446095404283197588045051682633288030529166088731218375064447106472803467508444992292428209502809790551209353136611476958221246637240121689807480176146098381011112927721946932840744012019925793342459254628558816714476096393465284660516397883570313998123608055314353001983252788193587434209403013900050566727632332698841765102082574510949174419807404514877585692916979528772810846506982790422406054808420499183748761858480625990600937773811079127853143012240483069132358474637188631189439142984896401056897382145900399371917901899915962158047216872243739514806382688565599542666416654133512513642814127492103018213413727323005082557862818460057747838218771602405960499506563954135366787425595492644252798200082173893158992490118892667980309524914589477503649356690693744582250671671034980332682500475951670192938959031063419363639072439551150278990418448420060388117622156979840002641203516976567229526244763531777403420224292097984795204184864036878451494088871330814147843046463160646012728224994150837850739010424385168887616893921803750888186754175511387561402702436368361542134758242931039947633932624674551375212271557977757610827949436841983597449194506649157734440491388295304527917732942238001130279443033704155987675147472197801557872419558018403234194632011345239199288605448143366584002826004949973320322687326827633645061820992550232071690185055424032350674461689066305312279995365291883350824959831310805825588529434247004961163835979827087539088731637400037905567163618813282698190837280298603501140912378367522358947589965309952113795967253884394428136032447709278248198162775027381541500278826068979668371622906209771269909320253396592461620759105676852715385984903585949459622838890596639194792841987973671599746474921397104046817450357814647585223832951937787814848870680192227050999721591121554787389399249896263624743342342744247367680416838733718825805947689560866353567806300735389225509715308332663445404850149226681504175951475801612052749134317878142650572780246284243434497238706015898165523874404431722295347416772856786322569185636883801579130884103481429915591226672930024024137877648374971558037377672592488267640270950604583918931594206183370611453644420523193184269841351619002919299167616203147055625949805356472866180496246625748933658841331902357409832097026119690237213784225925814411681086874333925907499716590551251529047832936221160483610061031114082815127182309502260327400063712352865875558278335352588434935330152502380740425651736100610114657773055674331952954437071547620179328755655597953554456464300575812760556904067900893136718232101944529815084355111568307816761789686093573399898088864572823812269320162767652465268246158758150035122444053965976531680934268054638562275779192097463514126258274902632593209028157226124119967314903455061000929793360934145064530032199851783761143145275121978347959040632553231509503745873549174485466218883079680546671044746470311049431755101352671761552070051099919583067805519839459345033191823145232417214579443336838466410248874055683259844891587963322653266373131338540417005233228886445903884884957480302610129498841745018649865701763800687083457771093658154045735396463685818821351498478738691289267658302171166346613113316003422175310916866047434564385419547966456512383827314454342992667278785676144606302125287439903784196828427575702865786503470272490625203159493576628897384379810699868524678028692230512776321242245789036216594166167905302413762327127199088577487963129645900374648381806596355591701468425061062972839876427618110158054476022959812208902534699185586423498545631660872318399040504289439902305196323632618382411107486561938242129252347920845597664088571160076620203152157739192505317671125464133323567924737491240614824929876912699615492014103327782863330698726738586908949887516200163186908904130255576850134221240978369272367239524109378928133839767327250147533297943680525393663780588274875993818832286388144319632722432360282606519361404017527005674712535964166657787399255813798636414146203906105072399220156950074034729295202258254676000493795703151389890224403607274387929987711668669980750528053743142414731550553854126065922635210505976295619764243824522630327454804484864485295557808566178062655505176779057721394740524258445635309871442635728574569527875168112747875459346480600325518791599426478565472241679866170428177166038091189234605174085106221669484934947017863211229680809340605635872030674389861152728057890959418000420239654984436507400301547960227743162285689490838314578179974470560157658769524795413428224979155746215143590630974463548701792458929694541008910662279513173528482209233475174048628643884909831099804080707513690389352683035443618514298883226099006408391850763638058386796640175361429921914112884061084200716374028940529723481763470384131245100800163388167697665582262433161868882026667010419512562250794623623710764303387770584614742979364998337181694187417067318937123337455770549903812090408323845583207352268577683707029173991818558587646745282334072352575176282357356358541134580965451027168738725861311466428460932282674855263130641833420937014315037521158325717824186935493918073840198942438157548292923543600383737783311094410949760080191239682324266100789915642257102723146565567633736051093376317611898633816080719949504024013472225297347503689402289606805714974936605557518970814688012605898509862703088705155485747606433248939905622009203090888976426084193247864003349414964047683765120117166520008656301910701587242840912394234730738482015956046552623016036768463743290343904196601493598165436806646584015883239959306249591359810320647098010751943058840217090699657458085876465537419233277954391999398144563157689789092332757150221297884256183717577875328556965228331253898492521848345038807019547261836209676339834244366835259664263414877247659582655153743252415732298152060642304232687664224435157496690099674048324775852636705077428031429575083484417683944629921617720474881665363439954168863581278355193796183999664949768919780086851226607824785099947550899886220503812636460590967331412485581708854728534562285473802587358310127836831618432714552533864334455618635814749019089220445414843381519863966569324418825968585802343658250455423664424860071074666589015824372671478533368944151646295872160481637303502191676954483264288927659034137342783178332060021261164602357013184843881063730126100518177515122789258120337835162680327936719394070511301884109591913501617876555122908042755739277568398739076472836566079655263525754281337782474073951684301995632757500879778339262334874550028069687723093810513944524143163429305567864549231373040554372752690810736279574128619533496169521667676248272844484398285356633208175840891241405746007009732568190462362881771593658680515004085815734193363897582573323124724338094419515402421899742298661686143033583592337606193718291763700394988205704921724723737696888439513538456190675549727048738440843825053826935146108911184866773094236358529499885855967371246985002071825751610957844059815904577760773203646659421158227658005052150048389932552544734476449417974561498091262254689525314154599572629583791406606049363071592896849197334644408759569837071980863002643916974506233185476381215954605441149342661553839168963756385034565272225960507144274668673364369181797799523905525658482883696976933727639546759591036433707430349190322689573874934820086122398439284935064867629967649999400503584854795558030108828248470265929627970482039896609968808534403537797010819967588753935533146591502386135230747507786563244065250261797681811104615640662725567336896554828484113470776735322333379670435660407537249323852184019293097736516465662488120890901497397853138895566260412204924968854769115251323616353810803867462601391773209666518750547667084094961238605751243690496966604243949551264539676507030147115188655352112592667558458693117655277789596460986323778993568731404040994406152092985537099086126100834689302861913636191399181048853257497114655320208478398828067416184148517814557019565921744955539243435489021132220794036350743854642724391634472315710997187571599132069568008640998334021442636761765983427464996424067650968693656543259011958956675863484199964878325276187377592902128307772462944842279196135201731782607157019464789985299937573180704072238710019610583138495846601182547881154888732991342840405604769276411162152416104702024381426523164867239138310664797295230416565448214024611763211398657865840403440746177261436872864556918633779553449251633433850422463920384593355759668839088068924625059760457248703880110933314351538771564758586268599717357494292045728096317792492616034434358382484748794663987218514855432869693061775459471800795275337955280228904875857089036140408376970906057941581114749465140675377540001342109083983773462315917626668596190833153374058527729519872891548635804758859986059235988213909634245461479348292570918435747354569146170802263704815174209279888914413717742610194735645005923189476182073588050344550698904917232855373005048266620031934917651953160278479823416590968691858579752671359300854976768196805039875258749762785940811031210178104587529169666048133634321793389669386245699418358291280813481884979684490195213846197243380063427786211952553768935572494915821901272387973219178109569669124205711490489510101137234860629235733235667052084878442886305171884885190096863281957845807376608070064275103819478404789591125126237398774010481015729907115877422171274424198968219369615030525640895556684015147847210032947235372820130892549189510906150639351854763581071818979970163082712167638388610583106525869263222932568778426150478601311468091437115262803653830130128040193857742029268787217701530204343736809058682272129479417523571324049508987143461931769556548745257939641118076701105239028463507666993895539195010921637437366108210639601611916252509813518492788683184414716440822075225847178186390161000441497920733993130444609675837910815760818014535794147743081910694926596557903117758346757105176670444862766897716265196480889038272004713083801371623151773066146876752618860105958224196800173164925300731531710739786125522465765799400649565979120721102954505247271928532143795574943550661240851097924542813889535512453613252102483095435430153080957134447504349998742775857093184310532914378335423979215275496753119172837035021597032330041082913113713232037910066473960349206638869844594749480456694605677236064104295783999683692313666018505872218587630498894045853948978442800810323716184750765524824629324990495023066214322136634698138041972056262043840851188300798103233687286946839299234360156424595699562179106644666400043017431786620395073498059818820430605707370189546916195880070840365728685211352703786643103782202761287228484016821861559558873212104621846212970438726703092570770800019437868431852744088357884366739212355071567169148575836042420044327836357880678889741096241535002870402245451047458669147395835566001431641039256694116401106480772432214732203378803317465294405875407569893801595518351555365350519995448855093984129557183205500680726319748747303846895766173360270163900715193990527144494690455189870147270365075286427775368508523398397212364833110580804952766153814391897054490130367778736411181892706165998973538577733316553387641994652872705325521720622087212115228273865151947987347246008447259918931440668807383373323484984627643793350360416250511360330160793552815363979384363887617029509667515946608770967541059457093061183859706887118565666288796872591550972356505655087856285051361085939919558220267686552781438346167660025488275172585106754140956072286701130452712039550834062013008097494943987443434463381643020561864133666802381342607770704579351370896633511678708973814344807219889263148796797143748146147986596434180239439358870883584413090092086977096096234166588641742564458308198344865974770248949460014699737345391819526318623641558502740495026904222147939546898609462667580869303003578272110341068673473190773065418571417301704847808069038208556238860802023162692860903971749113452203193963854074573580350928001808127430087543014218851968918432825642693120771210792119212166681546649871479290072374186891565500571882202570684738196858632050926803316296798772262312173736033430026077563569947254288209986540848356034776491691587963655558672940850579619370549158900977514708853859929414146751794711351282914251446881699511764504695575409577071274188502919310536990625366192143509221104585508973393671847536108927544537173880282471932085127429742936765327317762278922463935527185342725901876047380024443552277650312509324818380192638834894113034423706694211072143322429728896141800006884511648979022434318947405982545889789743742035547187364725956270969271500878352306687875697357304066130045173284423954335935319568972514295923716657529809526693545201204691435314592190221313003544622626010492131367113498082107598332056020188217512301489391926546655130800721683113956830780658949997296728295611635018296093851090809976204289070284986641828090517636235203324013836580873717694437436719600524178731457054547278672574447061934430582069404597316423092983795684095821673466516217592561508138895362929872309894401674227119878400125340957229294135048903729209571726134786628879199262293742499010002308528682515103107446654533808291100441143027839721509900954462707164160612642967374508777431568545746139277857612024083412786703104372916897932793178102423879719929520288893595841731245113088811100170322323483635308104840154624820684268155985748114691431723329628020850108944063011545585957136103453133958408544847441512429010202296125379649293749577051491990057298899038515339033590827588540271239624569039708538024940539458002880958624945639251804733208141895259366104103276415940697460524355708319127593880770298837474762284515808955655230909295554562583224557347979819646780167722346462650855445023595354421772274251018894591853541747857742004711564610126189529439570310179692265387062726577106776294762943890255225746406429222439973527014224724367494724281458819445713269623554970461199469670908581028158550615344980594913501934603202040181022724277256870900186839373616693768208532453087914783944868282342570699582751022036613695720806935302181875305979483442228431419477999911374584785765873350910221280417241038644996591071801486638802850162287114033599652066345206836731834423676408615480338185696573519785581581866916269638538862455506711721325165752636153947538356379267549320549901389079571550331097970648681932700962133991419263378260750102482962876783158184070845626932992534715782020494705823540644730559097141699463041982277767704342933593642246446927685479038168574162979132322352756116749740397929768364035985902882833348022971427241416564579417197952838880495667605036499568684676924960178407282560681600487971074887753031052135463353072731426197957379311150804205924495454577699340700620090065110168362745712916356497556611774576036838637666976217721672204667364278345970533400514631233464824171371908274080013077478801545863518101741270696816738646299893281001505332884932484921882921752563057060123463620811516206324239297307994298590016470545391300388209620725631609925106851577664434684916596912934739742611868875181033644462844760084570870932949053008418716878331659489269043231148626469539780893480692776942089004422365193789434955788800913725826305513357448763271022447995295941035313226634833562365116716008657778619743060641738238271951209616076139768544476360055367539833808165772569437367980768744398933158636341311199727659580247865581846519645183065931715510953718071176753179129894264633072458034269504834742060583005581427356144855982599381091108700820119459194627563950894601612060284860135725492027376925682533718678528349266394249303806842987360881478098031665928131190905618855705509170874479338910101743657521059764170415974054348587102216281019201107822469171034214829024466596102383459626395544249312329386484307223603086676516647497147632132370087596086669428462464735082680767588195084289022226259278163649158271941154843566372024582098111562755171009064652883235737480685620569143440738570751546067378333928356236484511335239899064703765360081571210495075154649073122768014037641101871406868512807391004375561804681244617888555301053543356359214964849568824166343614078247250087774656281411579853246258839369725987279538459629905574537462078679873645124290183353145900901622540516340720232107119843087434624080175206096127212757760514671439993480852477956622759586568046076593902838463259082388413306405084631279375476170791244432351328342348304559526333751475650307307064814084806019203391918658037809819879641071573100018821312150151417132277539917405792499866432210381666725196569973459898452662787808835575230178791399113036771493741941635846364320298234352308006214093794993001666996538756793447081735588001502227440693083081392952352120017932148500007671719651707612142801575525680446067222147647805318204772922918649845405689403792513273329885433328299975203801550530737453340832569764318628025938038133535907435194303584106092622977594844801957662084011636166617790440969361791186002234030479648718076816380241222432468823446576542498733030182174254258356907360209942179211142067028326106373457195234835790700788105150237304408356271711190978128448191927123326893295110671703533830848983080050311749829992101250827848552902178737389405677071999929366525683976962878836518184277306464419730846876726487094916152789089584903490525513384942656450271838663946969652264969717398988696216579762547581101115961829421893698705464135652067113358926406631496177031963298133343696334662902051335579208504618299893701081499702630500580691620891062070171052459363188223345388697677290720812620053932015182882812294073923195841718167465468053452458764597449652742127649885329923387267311512896807137981299020758136192369121573733305004775253314806804023250258919999522508356117386775265403712019323926049942060478069582459768443619757496036932477826946097127513277224792877781433717377737334065045026255782276080090828456469441374570555454248329995154821486913925995219436815552667442067829447216998519673346811413020587101307102415546334039414192257221711081766024005431150178076880169250181030263113338590632608122631083661202292071777178076559679089238017351402809057051207500179429137747868812595521417715439186766592846097988217535590950360686244100351355906500336783599912319584359840100692782309001318321523245144834088009648615773364313020527748929077399625701127436161417477773547385795701591377109415037717403532699282582489506617018658430858770388932838708676501637852604188466812931283701708902868793612531062175258444899433438152034640135425759106522353093404024703124713354023350433216416824481040528842785902512528548026508250331000693393845823075951640012229326162353061665471512139475818445026933585785057228805400909041028197349251543970677550097093108059889446533813689426457201545521050868923601863729585877650203064173970313654081773293534050394125904367686487354042614485353068310427819505370053916371015101150048803524258459681496778078003274599100638790795259948066195021671409902008818072689514874326564015470066606552550654748519901874885919320765994583708999412122179978704332493538082256112387721218069449279591517993878320949062344860447066822339064131297202400965089379066083528998682934286623086116165901270314148367583508124330272042155430104452021317194349373551755980078990538316604557653989760129056930753447509501892070159601592491026043113983464576492856606953670360501296927597533566234067849250273276973170847699607421406067999340782065569547766579752131443707048430512887606943815252487464867586616585978343386688240343582432347725866858473580130758756420985936889005694712684104207358723330171614444045679799451050127968033956719872111188546215033599478121952708025075519786835835338876654342804455266369802119868775520273687934438973954823110048949681328471737108842756077607115248552529428901147373944953927958410336671498159262605064222850610332320346924470507500838236987462332305770011616948247505972481244721610479939938471555163930129028040338151549328540345512586679388428578895729225352911829741113031201482419089759193004120099173427603480855796635746710708115341828683705212104966232778495191939519835566383271806610033147938177777111052889090170481664739598659809032589999865622709383733053472824397401051182304635321925551794494203092399755586965069657764627799387585747183144843773552855018148582446017808508133311306863498780602493005416669420759987813560906103349426246223375000170539806088935084636764641412318642925121770889075216552185222574953318197324161893926133067646482385880262669432714388677446831319078889645199456333860833208717600996502888122858866524597210433458944375678524153323346361083742450591565787950666507212171358928040907166830036612372003969437770403975099471078781864909305993580533797636009293156954297735076013405721236177868636729999085723778469809204117409524583009388717226438274738545309088316038804898963019394321401195069618349624602152147025958280091154457804789462203306544393974027349495883612373873933144616710881352197199349126034835569681098291861275314620597039632303934699805148813197602402293312846498817731083871438271331425175970504843604152391651915774694928767686340547852558749404525819981390121756419251106903222049917956552006281493727908639981249438428871958833367253481892801474224745213598231107215616723463437471317776555088165819469673485874822952258953749592736769686530213558257854432745619709074799371838855871954190578102849027246327610598598949862034521355943324237224388970817619038555950874390246305618751193269558408160031502933695558548670089651937092566846384390342639373984359377443490251128903414536621398465072695279727034161123115197707223887838098046685118430755486012862121567394236790234056206686653891230412141210773617367486474132254667726792871380329456353437447366430684804016219824014552380170283188089939291679605486794230203019747419952925845613046658439041107768428631172844051821150008484677681398160190332337271500457370478587174098141709908614582506186456616557926108138949217632374644413572786365384291721442680297268107311011933525387990593568887182876389563604179213726829407310716215140118934275705250884649019232973891089864014595410736918300524538222494053346541787887594475568683662283883985076709908432698480143378041226720122726320662519531065352110860392219757135397337192324901044300397275623069776502435020765331427895620111811286711389631080937138588180617922574435270113411567206052297340108193292039401990967663585334982484691279525973503147392934934214620090894462018011762600408759318279676436073100887706193704851804792074556459068432851008489470858265752159834760960275736863371957809935391773448326326784456852328667394613728420324654226262761658805579408334958195954838580853941748268637809090306695909262283537605357338628195167472116812200227389797184054234473939996241134493410463884860180217767324429202515653556603109952060720610624949687626160054053574227925004968271141058393132727436429872220323876735288832519335966776160041126615826382551947883416167910267601913283162808478207257602622616409811806498029000363239807016159816166489134696769654094108611303222065893078236715056438683418962478036063225266302648772109306909935304740401887596585097767969226918288850462862264512868156368594878554013552146352963606813949022602077713640302443339105293891280319177126010517404241235403874256772074719560642150979180905651614224494679398042609218509391146481688904582157139228042353304750615063444578955670221073368211990768479491734727594955070717519255466647472715788556684399783256721738567756393115388221982209095032065843280141610358624097379409669481271296259775595309534846738937505455137539558669252137597615924133834876062545692065041271283932793592801151765458234813504644569720300325226303415642652232610993350650924438168150106474259800017756099907812484800483911568551248981852039534058494309204838226236618182514265609436143799411180100857623049410438529693324255237561377350018143813009121734843677336059571423325494626922151341601617682770063074074633347232245761393946066801978693278375369080256957406368412376735408894174751605288434118182658019127212388989912728931797442142332659682666754654939169501438692291002350717185040739690135282387805556663264237544441881572454294576436715212766593583736375708949133309321233870623264641474337016356811036041293050424507686927284815644198837145632437479874844992652383708097643445671655533796166277491944619705563089206739781802887566089309144804664968101467940696382345597078121107651464975626372469993136910842238607918561191655638853694535287248383236923143433689675335666381046775731345629550208440334581306909303607571401116287934532433148604957020600590982661685252264335099716736215336481830589068956458676955380142199100192868699554101601925987006868268203225121198504679435960117327546027913298562664644270615600905404603367454346763057747624019657489655135196447916323943902223036932197823510081372727492548583009008253295168653435719107762261659181327073621356022072920006475204983628514834529915474045298151789940544709573368901135401337554920067175073174997800813510649235887989019674085778030066538458755179955300709500019245142703453632511421135623357521809538823074271332180283376975316798300413930857087136057481630879921630329406310515751740678164430293260236994579442615800739782858098763064544225187205241829148151075477672087908115050700442672057332356976427753683130780994619895095475849549792779753039669074490670145569652181184181264556305045325043874246352162807816356064591906394223421814838128371527727535033992947133678143422679594209045388801881560053674056484609409448370917612601640159311118318020655711262642421609908665847585191690671816476793937310480623061048617354256406981647058139377160501825871071970108327257114672224903305713303626490760719296999039259621181969268370127696570120746792111744313098906571482067072410276662780702547220681356698639583812050283199002500782809514830460904278230623411901909539390360744409566781391796149028270390817579140889599032728150760990266490126782126372482725398000842742567538706277121397400339994972796790526306479836951005702144895110042989899887953018716409330715309287597984957087301970517556680894855235959348090508131556550881028027006022694040248681207325201023692243166866776289546886486040207699635972091559561569649604064236847765850025380936463490340464197335386498356711960897480853611875204810023229997797082974663671803817589572069907580017562530730530561093701841687991282057949984886794419208010741526428519518124204027294031283164918073649799056328651323522193132611741969309842568822818588089460363985773704954218206999301184818770641679293433908295688975359687163463963967675558107009417182647326926685569522661964824486587730118419906992201197852380170449797552290438387672749984527997451416207565745600784280927629738644668332956184683448624855995192718447120200445755493587511441532492550699686644066705168176040385034459897248728824199356002932289642990487311051124311973428841741947651686069680635795023855754173408720040280669530989750859413363003207034031507384228614193629213621557135727453324539250865303994338277649675683753349364425878179912836411106117019223757237373907796906331529382695062977569206319692584757924129064853738232820940025720960946527468931277011803164521423628741413959770545349288191932286061707347095573096381751690338040928202870803178041889676405689408781402288658328526558593863584999700803428767610707256731650624666458141026942867971509971658458774481864929528322637280376078598066656983637355594140710779474627244277880545503804610362316892095358470578446938943313106203750500582563368706443582035032005378715890152020463236962968671505807299225480841317235182650298899823672257948009159955076917473687372112753402874132530145861716371272162109784631353042022263333838655572544847873849741275454163342968144655083076667431493312539425921246171275873838555867048016204401356173227778595344902215789744828148205379218780403825056943783139517255844267739144399714011094102962607598966397090921913878656571338059062578155960826875636367801638138227040325013527893783511566671860520042840168017106413370971218670170266953976020292293755332913286469244895852936817677966647064585738836277516729556334566514437801754392689335147503698149718446009158108757522925329348876150312632736496764108970544841083068680223896567974045782501638629602353447063198813958263691645374484522928090248794511142601431653997558541129875064833610634050091225319069968489707150704505214603710386812817866818988034172286702939559473729965082515011043450285589737590056835521382180139513314084003355035097778119917072747567530768177582872544015803010057127494699508094880294402365291290595786624136676793001681224471984268157757438445242169479425212380752966208853147170428760552903587383770435081069792778377144030995581465082901562402810680867139871545998460407139904905412398538863444859574103469792527709499214948463324403187108078021987309089209447501547529639546717660947304384931313731765144891308632795550340790664310710647899977094875858540571904399955289934390310072484760638921630390342527824817458272933294051106374791064059355448622880871395961288110792162904113060081119750539844622427244524511810573885190487480006527953175343254987642713084640906475155878871964363135800583178028862763137316831281751778245823221274062812615644152383626921672441712542356848229985096907082415688307094940529164541385289149657242975595058692368555727492541193268001792201359142568784695300462512423291444037952741474960620661502347225498527668050846367301243936740609693411505747244694478141942286704338140919987243250402672150111785231279937371503909236322818532053143197875372408156236299811311668217885276706197065691307137845472511713708703174342930477926815472257030246409766455564338735687201752086694373646351493574933892327011705065231461596762193172435401588843953322717946747457033010858026885259071724586549275876523361795500130047283839015673569086141867090650101642054901493983610911797376505719296516214915539166701914252758647081092167505075908857022476020664201496054450745806130258639191143027648324013720863367029215123818097640726580523432915408467568157474565862235182694699073612649441445922107648562330152755853444340368149845938356440956849770431960797438895103036790933049922963484047098210056584611916948083022029592527673584251042049704104879975301237526947061105792986932128325245778877528098631341796135329116784292074690514812864433460962270394847715978199020795328130219108839779573386425079383880551434327611193815268259663986287084551435836421131508033455794438191025149303378203818371678804066920530866039537272657330730808453216194717903302694901526584982713327586776676176741096334752293341600912744704058189056648792824463424442577563575535952985587750705212072952615557968396135560261156432680664344923945919340973187269083370430248854125085450971826966769681169963723841886095225900749525800379212837812520045173827527827167856450104172226799711404750345512977555472776464647896058999622771215363082754771379631355854105601842907644985278282072636026422319520080585170328100634312453716808417371673456241950591692377821134811294205188379557289577719544239404576594599261303303838197772364213547036774424761227338756523533868287650094244140738251525297421108655653949965746935511310123613706553400198783641216880293090274985438675721762271020885620525140565097026114198415310471616906017133276302006601502906836985713917174061328950305042568566703585709561745406269175214553747031736582475222197536272102494508588028880470076362272568678707912385876806925718739171842907287866010226763537079791364743984964278291628009228608053888628719079303587747096801441354383507340344982962554069637096678572460269975693354919533283345713041093798253467010351364393013492861368341992002633602129487688166704021426592854249096077049735057951501554967244938125261660475297316838728202565587235452223712124851280484191595126428558246737516518380995561047471413212927333540200106769321028800133098374018439454829267753423189113998842794136823815417381998677107047463751061015017492778817109458803695475625281678205131040683786383811156241445992955656859142713492035840282807945079221998469610453359489471320799725233470788268693692589668292272601836808174091880240221943829649856420636319462861970044968341766737721201217955505529736018628359013509539975097598847406847957702911103206693207673015362302129082439994584896308112365458691844406294870251512092651681559198615450285287593121218569612616552643005817767204283639321712329622901366933664680309481972670641134227347030862842479589621309441422662720562799044320287892131300411251366557002350897810238963317855393616572995597861342939287804710746694433931915924526347026553979719502436343276292439993653874883405966904457161030535475589406632219137859773755301909477255086079622238873142075816835019181086495251273815716134533915231238738293513980201549970547072043402460119506235115716215499827563743728568271131095677696226709391213488615693429835796420009618863549265239615969026734106722895572696088112012047235493174876300449690052170565814830480148597202605254570688868061895540016045826495226166861084396991860370466260081249063914818653809425529965063715746332987174186194653580877845368941041832308684425628917462468943378784840386277319988763113150603218906515785939846544873402156735365993101856993491191916508938814209473845954488692101864718362568466229006658749028313788349068620455627601588146505129817230351219617436263041243430004291793212001614097230171680222562867771902044506801029734709210387021594419688678077179935366226207721128495656566024802914361646118484425665395059652082221563845962693322060214539670985656934534640627883985440634846890555692459360675964362760696479948434510437055858220681044862607498190451342913281597567037514278076247908265588001959187034372287854199523178759116061017262114665282168610358471629838267021242952347107776581977574527635544510884019728970918407199934874609711214986915880664901338276568970859752191415072152665014667005733437073662641695401073386721367574391364067705289396723437470271415468128856254377362220882037923715512405540475494024854150359751930411698480822193828512662633343807044757886294939710629742689027727711889227781740119953223865229275036884264542069032953636274541416400731213364728578780883256112177940432620608842489973410321244002350758281558361051814163181453082070883319164188569210355298103371417402173205144556174560298056887422591830850012551220232779744539910361424658659615999100840541104654705552244540215857030456943143756001991157496831058193270514042334892594749877788933042839190448558865310017267987446674999614063824391883204956468834188440613556478266625560400762894350897983164401089187930119425916210306034250950698780472913365239918840086131004580477737509952238505415152168375311538230233797468436302361506249164130359450400150037948415872989701910695863205681271290522095527748110412860563436218343805815121425255649344796825015890838839304541713786982783507071143270665956482419394124044199070608046409119428226230014035996517604996323947907580697926937646091452108184292335473858533795860003378228388103588299673369539211095612204786360915817416564790764253284901603283461925159924946415370042034056881515854802779717895155758745997329143572401848424432192341376617302110571086537879545329242332619064467327532012915280329429574407608273737770401829333486033997954665886196672390538084587609560000336424421239430386570433117307105362847957135017907150515541038907542861065373083677528182795191803757510484406884213104897905594685995264212879747141883271983845332785082615719420549237170365083902245995843759874856716466815396369633639077131634268000302125509386402531925241377769677826594472053484011605938216948535697155659030030733370601123530239289166044719652390103417157681166587906079980619715961980938738346143578940907815476758988555858991279545662249465711852908274821736236198404856028505815913879569596472860543503451266770602973663176834795828133151502397001679817018399225386804293908143032846884730936775605715941919275708302516668199963800473276828068440717387555079224342807002392395726238183211621581473072031927812918090260058720737176718009092940176742027564422246296572151127463248716043115129719740460662482134024995243542936359427337401546595318195763821785063661823797832459693487861388658479325523293886721154204885771467713170537436019293010060923160917771412364852690541263253092619337974244100200425592011563176160483504792125519180562127744032327527098945771713788269686152841636881329000809254077978982160093567044807905015120054336729225384878032299539812284545122726480749681753207582478451669372207034740697248658250825022332495844721498679309649607751495940353988883622305379442910954365674727437810074250363326834857182504618029635018346676781931061821477081612106213792664287439617758245685282645379848455832800292847884740356388138174614312465472248120875392293677577677460107422967891993017184130645592001422536736446221366969652468076874541583287115100321071363518175978178329374760086346110179236379677327938664418225317984160286477312977861601469440204434668454857972261891822072410744855605786362416586282682629866060409797342547037192304460293097607497098137385994589156344801225613310900479075878926829710554975631331151583621766270965885351286103486816785022729460845081235181683055944059621865167531305568156357702920611856770426455741924331125989612420822738686019623156635706971626993922877862888384854603653771831594848116540971319204019950371072633129630766749503406009299995638065697194465816734139068786644901588393728812139553754495297126738499006814472586581451673784015342980372835886356555893170273665662928429105182760531876203742921519115275489324502553720254233218212157740370878769901990689195283946238302103028248266512716825171315007712965649722291286197084391252979504729618081592706059985723719684871520629887265228203315687527870419819643523420870925798783769786300303567953276642066786301589866447874084666033074532758239005737742536569924898617103771628295143660818124704161345467542034255844660934580420329523877064257564545510997844776497893525212412399129492352957576162218512972602564075493986568287755828448032969936818739693644799520842600936836723472299932492673485559077337196166883058921285372522304981231717179733262054366272006576039218655984873594442562199689751734008842052523245965194306171555039046026540943106675967021996866918859909162194883899077573170952634462039516083705829755209250772905952983663783455564871519819713664091477298121787997937759636500929971896637275310246615905580376273693278623756952709266548584472608424110635006577576113519295840197944811458177839697067151684988065658661147269687538193086228004404205289394197393411237564966287202938536135031642045123504501837743218174250031134145484898079951144114980412664518161747663085022271017025608267262139468850442626311356331297815497242673312493242479525435271953370139073970569380002865416776145443772771970655386651808251211724383659682501338537716877254717344139796941997988369673965866077763301264674001035082976302347607350140465805738692117137297258991619022529533062321680740489095505116397114809780568054283585722054701272957216918943514248542187413422288245692876771750974705616217723686464672383356346285927161426376966870665706772452358815047885879273759431554267572880136140830026263042472098895873872232033075505349234606262569710939560367547044813242936042992743729567304038013408145735002285165004044228504635213059367352902241671761465465883508138736772117226148234167483952966659082218211156903686821157684619288916118789135508450801102299757560392265193790774886758913110027489393478125059336419950993454281332753189989841517564316352543755500953188699188566282486110653847037180919113029914527456123900119907348919343461688997486843100351580900177191208083102514983522307828944309229934650907781019653684359460738635800112042068170525578087105583664018582151903133177353202670944329972801944950383951696166519314788829191678311220036346508502618508624674219169245442370808357938558615489482995822515257200100182451375953357826106152759301233295776525171174511586886043778645785707574150852242807063329828273693102245140242289063290401006313097133998526311170390650127178210599242942335576747146957786688470375221144175106154304167631087423120327337675906807492260751172962177541823480747903503126834171002087702376481581687699648933482707833612254479293781593185967544220135018892134441720254713195389748770156939324464367890657242184334736924520258647342768146960405028344074818986161993142592199501601699031445872945070031977381942320960287485874089051556870611844980873596356080416268791209551540961325917688612248582444040976739943488490913121093275816317161028913242937852886361671930673356900406837067198149293642782458803371470273478516671480273891162104365985026034433995653692027565884996436252507061163760145900790351415860873083939154652527887357301804893108949913598255412087524189260281156940749341912752906018213083572211910157722298227277265893562906822004286448219590805804447703392250286722733366311825887975826273140867276229918201157334122927165369838940342228223221665747286717760906575792872495389334923666218185660187938691418316760320621311936951084898012082920737560448249549436347852414949840377465570561938800656084666132578777238280062923519044295471646359091902334124321665479232424477760765694879380378950219904098446369670487293435727752696490848869618341343948713459963268316042838089447350650117792956135611971651387091625356740862922573238973598538599460171892097650502826742273336735095083517364251623115597850840916237942211271222884556528285881042198055052107262285510316213757044262390039145407657934079224224874836470188904176331247275151280309937307238274979283315205481236462754839289574831884539806400648608949354681648276948105853103698033879669574041339137351786865224660902920972601621766232774892014271985271532129141271588146630929877356067046932220809632452308998897733159681584495746508702303415350350884518562116628365072887285855114250600855291900476962267435772375299793775451637920192816422567545116518016279259388116778707957302462520317438958976658387730704117762144588596276359616118371082816073110305730362772250798734770797269529244545190534682850084685367697482173170448611301527503445097095424584521567629540513947170334431031873119496012339380762200340263124219418676936995551408492986263027556937836901475988504289714635056422868375698183166764320568143218264308114309663997046720300201714811482767695673202865692036511839929150898588048885067221163872383550490215488096712833100662533480914015914381939454201388163065667618893584922387829807129564078500847584327109513892383484234839529755873756090671082057358551795947276397314557806714514270247142818737263220492127477081955697422027605404601624279925296959624016084474502445230366773668172488266145273585267492169025898008977226576022299818675635118735732575185210055436594362927616863318422019543703094984305400670834450573322210987031388057175798072424182826882274879428939632765543189761968604576873519445399799769855902044092378904564371395294196114702675098410908767871660591727325663455062690965821152497385145413346358853031586231423097785376481100697434637150783547633753978382922533004243138669665076937231542033743192388593259308013581437866882210624153190406456015276368811967074265066372603067386813576081972228768476913199683614420827934452913801667236511068743054970061535331751967407201513535235866072243635060611836141739165595259835318457989897714468259905392144179530408471254542470661244138056473667978946372099766023920654680701617398471998056956785905095629943282485643208197080577319218913274672169927308283501137716322714027059014603613864094884830729751475380691535032768995414113669816596831603618305848335474395268690848727797010231270227559646866684625132987978466870287467137611421900493046891171450794179228682838336317524432657837755867448798764516726376912893512739845924462271015432594708172768710493132236849081210507453340425324977922981622000931567204028228346337706209507542573536594253406651822589892736097160375115303228023222936720856372780352031506645845164388801000452573526953772113550829494641100918867353169527160658948151385870418088186578572079344580808883429404973914357717576208085514901575150752462953819763887158022952564348448487798854573142213554718403025969483251039452016678807690869706968103674924298859087947872051681452927692360169821441912308490453254557319702070335375386226189057203201020967643925329016869803400161163293328069371354430307573546540065800035963820084521466520165596113126918825433322209177310835855974533497051089473851467777210587147462128030164023105944037028464515006958887555791468882282450640434941818214525578016311895949414697011986058709747586670695905284972252042949105714811727530769584348526194823828024013778467955807588812716338050091298342175289704595225237911059064803949703121192606477813905199450784681415649102290412688042158641394340024484274586442054245853335440561837406019312175268387587543306956696139276022055621162748174818742108046939486527303745592420854675239795150799467679062876593880051681921595446120211864936374214227346900990022499927103103451729219261917798161754151310694358181469489649669715017868607564153026275941155379387680999564471253529990360085884576659235427511480676319717599147987436357141510310745272589252111195622505926262161691570721731420518388469037761388420982758256926552443738925240735842760450340696023235804398555390247945491401035965350743820271146294142220657583967450484268685290246628431865329387806755932912718996270417531613578218078178874602650048787594450639459094909059448947851219271104432656839697478771673349438307961434424071234534457653254208552620168118685352031331484137791676348741848578328922536429240747525870416845531621801746907982662073141600793769217022995152799304386132607534263232800657018390950942499318868258077884207330775846392441940462450570507288551926672794228869619635052064502391449153429953089900850515983551980519866430786377072143937971572138618994356617578467067786529593718798336002180383625635298444291142369191679692839707671389396169740566372211933053896133893573864660002649085408612599494525543033202837336413661108860461658231344635141486334000741882692870981861293085709414126403006780846818377719593608119740629377278421034205039120229898912257051262137547262739198007293464355485395174924876052301290449234534363896216057083954275624821398761502720920964006168985488324644079945594945170573713240185304899642321659247503530359096886990113730131327040387028074439037805972487777546146452324280822529792899751447611223495908617683328726775347217261143787014314700155901719860897333353764134129945893170015462839730106176616925984120329740224981622643020866003802076154109127191407357917827653597936772888319946384583338633845527861519628932656452914749190715282334930250623347926327756453385918507528116082838007474421541122443939218813922961787427949076325135938346180572059268583902212058459509845035105788891421718892131950982475821475994270052699276299583151214256087053632944503673814197679831920465928807582418483161135956460157762079543925111989790966476463220907212540177389049498861891855390379246966723082426463055746188381756229685102641784544415060393608692014136934578225316351090224164857326152433331304021441561525480668449540042967316857164678236718051156260691584411885494730960273503222117241304390017164360912413404690852066765768078229500450368574346424561535096409762385830061333561980758551362498526797262179180733004560788998558715022979944961043019775041022659331283271130228595882016582960931695299780175628796612180036764656049697321270270155554751896396907948656119061089404035211226225621732936044940384946678876943915411521015554183500854249766306387294584634513616921622053732594146910458023206522941659455620783689821002717748408736203872907032767093365659224755085727364836714866830328965527323369742690110680830735335216348525512781458208739378017078884995077699364403627574996962451546266771474821056831624179590013225590104478978465563696069049273712702888518509569936214953902365520786442921650457774270271465890348004388227810102112736066456728289195150826220211978121462661391220631978590357729210600141267350011738742049788076251908163083057162787154077564883202480364259509879623364431179785781778010045901001396561760651327852071183468636461442900073248203323365298530044346262513953087082997132726022606320661265461691167830201627590782894961629950123263249866947829665357065570073425300043895775073989986611381744777038887583031421135504558039471452981128564331020457226133749717022253458912778119691914193109216388964345674793681129081439752717530623064092259483866058592001058780453725744416675237442791210097497517652568797875519265355423074620313354403721715214615067668779707545975118611672718305770823363096025120272543619847203872552406457162705599910888615389043577140095842059698514108846907831540468932492281646488046372726117218622822429457640548097611321563567674348339067041356449379985163196449625539681518020576815930527290308135039533628942058714841615558612080790667322618138962904195379636659681699346170778961231508595413988979159292305177934135143682079188806473927304591536862947595186117970282609205927363594704243474258498809118969216930071005798152144280800066749883516858635540920698209161610899254650919307899734928706686144682439143416550478832201723509198236856244189653778383501782344572696280653623929812710468008042372208537450380014481818815693957061254477699289701954040688111627019970682919483628500548471132350239376380153984017230203205637827857547146812204688089731367661402603223624127320775200218966687638826933707886246833703192518765032074878398523129242673008484136702379077357723445363630016980621690158539604691386765341716329465549029776618853935423556676995647756205759957256539555378606754453734431731018250659245739487610465213003317202439554165443624974181308652111979091849099047137443357952826907970071045889832902264360561124279519089846747160276276884667572494885987618680855862027340588569601917566741919439959540612934189383353478640013289921900068263406999304892276413854140008407972720358269889250189561523027158898278103372291267331890529015601057227711824339793475853680306178016698610611968514560257902787508383804531016981740466924339064558092353499547471007929871657722814159096845216822462058415498030963134452037682155007808891886833269795222075502564492149857194174425974403363840202019213180455322480334333045297983377561951759641726663046412812786896879782592615786499502856251480630396100286077002665678237849410682910911061096066133479047562017543290719930402286713349790650371215814701782017959411989285818464911786479480691990248518649847841606142862919696173350210997269842934611736238965382771206002963267306890571016070821855150884202580206604878725073370373180306587040625796129162678686034056300398795338119741471557959525242642019315561549468907156464771939458682279766061843479711466157247913811554429192140733830237054249998213790123267930469697612507633867446925531244631249961449726652480056329691305394619135635007146616475571518023267245459959798488951231968974257665202116908379462102707851244385278518495548685609013281814961960693900647667286535052350968283186684795816069595975232008585525618067937511500363765959283697622200250390086598246027687782941181780182918828377555052447544416174294551969566364909438634270482522617069905817871753890951797210667991293308438512081946695751639191278441320616185337331441575856040031418318319937644789472303563367875790740265494446704820650043888804479296221201385238479056606508157876139280404782905751299861576359374477703077877531449509034628199201932361378580687542708776086303448979576564530986867244561036347779922924542974375684876577477782535634615109393854418344156565335996969654714937282049956951524986887329832575552150589128645600512433267191688498569177020559113772474682498017401623292126990472043007244030110720223096723396664999812593894689322747337384005520647931013847682852507083432658667820987702161119013892577983200828079071460294529108773551488126822643489762056162926695528602216770939209780319857001400152467428818698677148328009650782639314273894338677931342582575245399646242836839527706018996911811612233960491655745068593697430658209552505136799381231949419123242152470924055199002598677717681922358835811984362709148188533258132042493222889163461994788624254895117435065432179218834034577329964361586085486006121192267607563027574871100280030841464664277820305012466016881858547772341656966615828538763897364275591859728004524408342685940707253756508385410531482899218311254967848696522013519136416750320383719467057116123808144324393793641625857166033989426423527889978740214305619938401670206343256931502652539172239012851138654292286598551613004889141608184488905615222702287613067253522920692116565630899717701732020699311621604604076251802787416519226976207027215824082956334248576967830756265358309370939871708952566457107571006786003501195766689802383571855882578147934711763072591591005720884204287028928075720653343521070281891087006028708897994251351405254085439050453078546139311347474474197891929596265923472929442996747567751469792800294145717585340557315692338520405552769375244654385509133811684769077409499448989239788568398572780476433215328669283609108463109483137084084438070872210217741970038589556943438011151361691237007154591342449511571461833742818697127303006669776256399289335080739233607020028932160049782997672288510878265445907809871194750137596972518617458902956368662424058365965829203458131376430545918937301251441597084371335149649389401472293513843359247436908467176642383502565146146081194022607586575269292693619092593333868604153048718205976990520984765343584072112449995316152593951243368795217278802809711504727748408699567172559471424578588315660504206812915848580698705104836736330320516531518644456692041547157901494416252671730411862751472023563762307956612614237005397707758379980501343126524196046077434025002217437627104092630185499652331816339679374230155486486297445385111498234419640280915463386560685473571157309916286189398323580543581046618753684361044973141333547694649367629561264230709980689455746728406667205658771920663809716781467944141835569749731036268967002355389344805936739745426858805264084297667438515938252219747565764184696895648918475051839249384776430552976262670978073672519998868351996262940765234320842243114437141297944619881382467608775194550319629932193009098496574228583643243844367097470359771751013049430901836347309273316860911568963749556969764783381487600203258814860326508727205783749118130993492062963780996951737940210626031192222611852964025204345852146814353072921747195346637484125051949587996810459891478335033550124086772924586506588640920418394504289426202935360040843028986483772721890720361240539080873458372634245520636362461714806797499340576559062151349114988839962163733733093602063686765748758227399712733049535622905268186188002068850612314713070510016747980574522036432483292395111957762651621200971271531409247312783622704689208436870242955146032679425299122069779645762256232415544238151980805826171326746189232896868798160879434345058905925966319809319836699181887842328308504510694600547249885839741252431844154857016980865906934723724880562211636055739851128169384882097151620313846561538665876814407304978795388159964856095383833722123956283058033161605366878882930277437348732035946671128994842179935821086093966636872922288526505942848440195572918815195043166226513551171985929271150095037639105894180994812743879036028087232365952627001261528327775341924047750074514056822156577680073310432524823574819682049408068501914898948451260079297144714415494977880348930812806930814395985085685051901750641667358862914814271452387642906789977842105604006143279338736873109765729034963116244474852108673763092184482062058278362849504190742607566790540317742632615578749072297270915236691633210803045297083717881883774783975834910022637474255215219105079324661746959595263004591335095869612668290290723044299815337246683372299815363340849422023740288749713670175010053994158811814077453111220022222061318020063153311647296506154690375272693346312795328928158845669962816389849303264612017075365127676721988444481027364555777759248606556046061618786103120471887927639000016798388837038636771495907563683894789401145032679070968459429611110849673385997947989364578406859208731398965085059299203850437520891403130795800966600598945317607231929682679532803814946488464580117545882434997260578411929063579446709805218065985823853913534578000083398560491320062342263923471366141601755856497125145760035872692844124401085870049038475507348327245525245932547948207667880794126979027204204742141897048416953413032217321464817707363752893806633725182058330043345731532576522587091976981192837258231310483384245492016765987996775901135982208058172932745563021240970167043840030559672933565155498270672556924661882777863591786429406417703518357338701980875489536104540883621989609670377542298694375562612554990628029823955485092371217549079394365957273434874037587847851143837198409647987743774637426005778081899288735753931856889475284384991410982500406493921704925984718765314057055331324217108336163311851000334460248136213593505069552885787213322696230153857189074117344464319192357898791053403538722525422684708360277169472450622545860855052895123857260499596089851285943845093983632993806411972764336860556617109541151675881849185060655524513347800712491441279665840391403796519603711253876263248733020934990440188188092213146209234591774270741135701769426246630317648137785636820291190606048798044021611581103562703829020416496246741555143839271216328208594715050337943141451757350621417984744248917411974980895549754057549119541463464105637393796882031783048061419325791346411096241784434910019361727579400661661447162178300324987847174727396512593789372442371239666215011711766842727736152120258223998201002915956126096765518785666373056300635628082341237588861764192556570826707682524519014183817694406384491485719691686680043755912183730932581091466158854746668190238119567071630793930350135011165054343182565523942154829549615602841105948836782475269290301340179067333683153231602725944657767260551369567050449054311072800390875714255391763663021349801739955107714710743870499636153399286379467023662717041370394689508909742983366002725023591897155975380137813528256273515237737685825399416086951209906484291030782799808070728008716011690236092117252352654950781623547180030792696019005231173267034243753510296265020588480978316363497259010968939436558128743580160076001035160747351869404280973015316859393553785399372838783922404750712189045356025723468411700148342989398413980389728308472859539130159354230329225864739820873556109010904187724051706725076809460054826926628121973470086369732277360584948559550666931890820347649886701759883833769868398673511721993304972261157250177860765338155460577735354887721392662912024545028085294668995163149799150144274751739248171541976155731283861424384892069983209291982983015342610779379442794358672995033377078779121264935946221499653910534257976483259697764584655573791231126486533758676835347930110848725015198637377592041237840143129829071482673493495407662199920995900027984437672552171445443646673100658800503507236585631904298391945834894487681714142386336193856487229752101288320764836670339989689619189033955769075776188247555636187791713607216773475125395115696583554365207674501981921727417284923043182753546983380049052130526366100484192044141815851694358296526863924046783938650247578909499655583991001381773392182068797856850522475502478031999126173427361132603351979346771494416443593722912777339188487187118604074918799995665928135083485499100753205058453228149579670272156431198337855238467791133824135910694035254608745070442871658482725609710385347565245941088802458647814765817545063518875146011901686607446427173746184649658216678353008286212402969635640782845739547455902843637505389981119542967310226994062462107627212258134289034420785660022674514680884011165645308906163104524212349672157331989415300845797961302992096127278403079304672314045920765741242126413168456405602643843266052387944290979588431851566663738219626605154112235627170302767498467191115078170036118773830193808834549483295914414372301005302162363122395784297623309360492114820119701802148932471677500111129688140892402648146968230386447410204954925988928967589177393895676145445967803765410393798151672489369469319764493218670972962450976475846237994204229840427849365716525170193818588080440132028519413973923737945100185325220857816561397471412373902194128363442446189372437466627368959589730057446491656258618269386020972091383367306713816987779317788227044757255722327535553557112833563933511380306226921165155595677679728927170829981343669532741334580287193352633006740157618963310382921884877658270638521478389873108712751201187105692628572217605472204024424816094321914108107125840001407339637928448277213216967213329775026495019023732001337457173617650991976872526423278798684348643305896223296836232504386621939759397242310539855023339353446806264429045377642799112745762018985105323695092431582993246259876921316147931201890259208734511740057541789440777511243348017247804712654336698008848539086761398731116018352202303325359942700842357161338537651564414542005642009530599149490226941658419652862694326921131392564904897201361070424189603348402965007751718264414322150126171773159122830583600457172827399679911583864125025082789867179279302459325125496188658166959333620316575394853853665906259737380231094661631477123581640980918534046249128871109304519320040817162618260897457866597906058615589454722568771770288644435414002900495293988268931819651580914045087661133338365408839542788202760832485067592670890817621680521533134437201460061110353582546313389255882540467474974118471505631143883758348282649467057182345219587483309347482775002712179524448583442513231890857238983355757299030859746968337686095408336382436765287175112149472718471348131215563686868597830268315628973438513306727783694844606380358264677073827192554335349951585752768177197595293165338694147858268266029065342455539525122490030774332871582332075095408456925946263013266439964182067485369524880981024855178394646570466370622126273773490165518224125231321151409160934279374670237470298012780366525982497156903049397721331444117465288307570779191552917775924571984015328289083848372737726791682165628400492539921651584318139540349461295285701669128804014317624576044424785120721374006216512650275938250035267304355758946617207463083643948744335820189920952861927275056236010237870231404794954232405584891063735966610573527101210352645994186927420423198621140236046928227661718327975410101385249283317839568110626294638989482764305224193763979274003420217064800944458032131494777746811812749187462920161064108917499174094202422747652804465740115875548198988950327011103162265192394552210360460750287283409504192378039365937200474283949634714525176557150732362903665686404928315000426603462656379887679023155153174596942556963369166924848257781527801116696644467624345275584364140239822018963294268538475787799033976714781461015113406058441992754391977760668003916402337318922653939293101627003269993575847286610131220221289204515377398802704697047219175916591298243480618985488463112801540134745903798692306575763406217945266284658617942949754728962483840241360854550867081998690441966799445872771852083615040871237991150452077724360880651377715413425300935391901660231717124401790564215509453001099307100065558260562826109449221409369881967737926567759681921602377138365881349449508071829916708068715027631171656704873961254033132541743067944689974079046305203085797359811111887494177896948937176050383835778887495814285814327477105859358555163991623121382583105809655658241239305761144842920830526897697253003699324001693255891634771772371764928826917487049465895073825688510679531076064138974768312808683061923342646451489905590300587939837094614233509014942774502440504262533837421800132390689237196932076770392706404743722387302655575364095607695948764349251278373443468723954150148572841838656634655083944881997902869652800918506110273034500270273194665243777279887388744553951068145296062323801715268896282245143724949434141039492401497271377692212248750403429831983432993136010683446379920096108497718780565066374244536717088546009664575782600805371948851316798724206253405102771945684777655898437461178329333499357665717838847965788790074790539585636090585170998580434337662610790491489862839191622762344705060833335554368249358180435903909597263555529209657086976174442890537001491019686208262488016285323327431859442174989577374323117209997559034796644911383295044598078391843015174987614932452656821661439241660802682694220899247332791725238993307004667465906736517515774777383376422250093413332943137851035864075799347503662370963044969202773026553234228005029643903508987737319940764383641049326184609090035952070541022671584896981207175148415963004590955679213515371994047374125889373214924579064710767291112783948358613413287689285512553662703985276483049803199761450527357613089004073827007382936471700286778028279744104402297790881929651347669339135185600013738603338447086341619890262834740749543148945442719520329144262604315421004553768015275387610897077570989247564516321050164688131075053986193952335353506006087382321773635059069119053393068516056679994712097424047592222954765875530219575072676595030619936662050741802262199998970524582941680937289859649257630722547840095727171872157948578473859578843663885746348253458193329476759811936191747722667332103213992950583023379372937377531441724071001123819879440936333312724936184244740000432548746680293859351580937860198642293671992806839604891929429749453815879901182588567912949349696003852755630923259381540657932567069990087311606231828116279061556784000630028196540445473761900550409427721345911310232731925352422289098121097567273765930889126106295735975046305346129839834598446483050779037589860252093152416087908532328875771037705734406339623738442191340219254745409888599862144619791302987263299192199513531415153563368009038883688863176104269398768586590771561202804324136089649437344206328674586980046841523060598581074815216081567565385358259548253126241918319791914299404110579180222888229824060943248825222689224042047907135393129588193495205021961797507018037959053874768346784613245621290614624586111548214051847923437139235248084434649029318743637997293095445937448337915260172369741662104311371612144500720459383184964342707971319207849601323355945773653961459044017078651030371476754796589385699590860902129171385291386598118503031808981715569944646753137815651393552737156106655644776789236920613500278999737322466306572995679473151481561004832011857252180444850843232180869985347687951960980786116568900254487261915307379702974892175438626987377153090105139035428726528051453207869106863405868976310869748671481824402013577853586965273389990328644517123268297378928787119422912392523754264233135174283571322393166409060805748511545233559931875919229162345251618138202111715414537198860188492464424318156812171059462730528438750346215955375369054747612691077933640142036507113762260106374926274478971565736714691679147475378759461396010094883323738176397725492166864765158506736867604604844955528946285916781595549943619201951915310641284993327472367800449825157115954893332396547351486797861197019587493662191754478894782486735247013583240336561739072909655546730493336238251449195677696764179729477846908513785635124300918988716295499153135856833823600603603633028772597508517172267035079814496987286867617445049565546999255909760400417189665026898493858947834919786914607692412341499509907441349978210748566208878213053113667908299128491618130746265742160759332757130566236951038684274571076794689348246023655590703619681936989426068746582985037023239077835741158250163895635740958686085653463023006757914662331861451020664123341609793378749638300608532781051256394067624293744382325181967377383316471086978029234128070651264910583426324075850676261712346082903350895706754348270958290684633948252221115563355666500181110380141406374688839042689095590332035687442976952840300960434509636260105316933393940977171967984186040504139825616899487807632401846459549963189065155565950574735894761015739013027898219389589853007456293104253594766935474700699521210980616343952878935094107613101313923482454881046510751774671722955287485591320586739042486314116476489513062038355407527834339324831417898521491917409081972360867871188529164722740781141646021580975135152917819131169939152084451476662886577417890255554158700681785876433197065367232072707082363215772325892172589951125332972283653359550186691774290129983310239640100498052602826997098152043203804092098737263469135820553144232934227208751925246637392325851924931826735660079295309916253900006050570693931539784101266614537203382884333761599645190899187080954593362536035709872703655401441951710259032783321888382319767234881383970928153891514148997927139040061996701072291946860665873914719576391785214934648852414695401917311601146486544618031979699322259211087794025393463281046215254299681542196808778998027470284389401343040666996668272172807378888920192607253146443967722670178919292839733326471593563915170226749284248927244912180669998698527727765313428658177460877555108845337458528738624388586453803918158948723665140194307285739450098364042934623171205022249979724460106565254713104366273939661512845125761774299596597410990018962019708370098408045682101316194834040898861191826221014415633984816581840247030153404266760197640408071887437253296627596134660868704112157984125861651752556739671581362877725631742740331935923150952873955348631945170869770353587365353822662731895009514979066619277893860458827581260838314356594566005399400855262361365857521079291714340841560704378813805931999875428263661187474017602531203044712817755895686713361562170993644983729376906280859253444116530111993387249328165678720212834192818673911375229373204732095684195713752081828517731686027922589836258502245925150763403221405632979358242000208428973187785468501693810210209669503347826984576610272764731381026769915037913740216750701978737275307060657020548562613747714383795447720251157227119247042067542105079692738875022560706797978796386922730287517360986112795277067174601677161556709440221971718658574523905055481454797863896690830590559510505477931322055593942033907736045754224833122567590758418767238701946281723263140661683661906510935334139042836841635301361605676673031433947393917757358684316742492679211100264200494946845799666688843604771394885534274625147053303462019450495060334087569852605392736926696703652144437248068802064534412161368147273009003289892264632993512205111452416569776712433619077533956486943065310450237807287462924730459099604195888168906677409217007878428582562811995149319480300529793705201816319690961152562349676590007618125233020978756189246112591598552757215097343495641756827287062183726736453769566450133522658479791571612360087027473494536626172112426569028113224436635813305300429781087531525741077624089176751685568818178622900862662125538434086866553022732591546972128427686370297316762556864442475653110608783589266519335907969461350832379093744599491143032181851981890501129631441715135964566256727549134800458428410142315536915117677985597166604877204298860895396152004875338544359548716004294978768327055502914232599353662087990795383632180268575620099898389716184001119550538722232622622677732231707051789216439075346912790873002312132017456931902493009096814320023302797644890249529162645994790146144981655034919106376034768049737272726834028725892670105809303659751060654239256620079934823782419592141266499442170035798746536373955816109651884529011268857621644248869988477007446503399384091698650609046307243062049211202138236159417850112012853212835492996124031273097267643734164043012190324490439647980606166535361349292994137983806953527333179959884729496407248815583485841842219813126133250600335283884316911753006759655068200532891252534991952704412612595968450840469833695961745729848433988965759430608454763285088782924778632338503348797876917441940768516216342187519624318204628589461865125841305619333589104374400407694999765049726101799728421066772307903570521226927902810239706578782754874573591333697061468353551319793670819015592433091001577187119468926322152542905914239594924160779844825960090712070358673956309874180929485028417080026227851528353358677167806305710116132707424509057780748443485320140502967847127585721863624618162478032593848159778299558715634469692971654087639462785200957403001524396907414932464405990653860386652940596623148711419799082003335600976815916646152809553001294143731702208209552583883855409454855758062635024482048449036279137128672436027150226284565892364828332746717234922643075629167971202543104945204725553804756756580213319403208093741596838590877157553768849070978190268088869356883736592320608495548231624255718680584903025700541499566001062712871266502140128969633300962963047801249678234914262873273135324013835053458704888599593543435161231753078703546057891731118485882742008003002117737559303168409694126008095195267752090631768059631042752888003414534846245176902402062221804921505846503199029803887666902804995034270023724951870728213078471732578249703969848868636620155252624646483353286403078226168054438081887066840261582751690722962654377677602581116015894346150816505375628248212149871158650102249128166476392057511028137358691659918815028805265768284111230598581565592605470819020461902626917172512310805551319637990189323272485943719472673842542757415507001590900700791392749739770532815938694879020319759919102754029410076572106862594399789500955137282543176803013380042316430286637599765233043209560630753971968687022960614929745718048186580172449895705331559646923543355946890985107919321833298326950741417222081941908524501077101436088771663228630500556247705765212791576669559385646719419077501566033256899720747195496688241164717333989817044407956762880508773709707508916060253867926329996886962778874716411816049028398555516496343667470302165877587251293887704402486320972439891205362544669907547081885923441385023354058982900922313261675722137288580473443179597958689137003016451605726263240884175483978589020106168418408417310824876099327623219325489996563992045629494419756942619549482844503054556640022946318222097750714739899647516744786556508174319213618369893832778632748348322271149313869512218966231763255000950508365754947720019297316058504178845209369364613037824178932984557289274006176388230012821934839308962742286540270846770563025007847975219324506624146305855570654595792888404586564668533457891122287891464336774488886635022688890173825545158976513032453615639141633275715635130537884246606534235711434519343549008886231371039495382838988716570311199701679072693585003461223488800379898985914267570742715568476327906707383176661299086299404214477187290187519102892108564284685221704836072485349873024697920358496909732114804366722200523712035312722473457766490308253486222695872354896149026198787772981335213080789258956383602345598256003537490713056483443815430320532432499681131317681269904171480592777883796756054459837061896873356635470050018005835698722611104022700264596870989788185419030877260352819867333829031712093933613071155742970973843566435530981297164688151806710364931655264599590047278364122408130212447271032533442239333369465570588003218230535541942158723757758803306782857815978385595612935609265185760082317137281224766985860452639214439518186720154346743391009633745181625724522653121289794590873456226483504350673866034063014688894166271430073615356874558669618634264298415756629383317329159881557747849312384572833414981958719191534060842252760845284539627878124419916369925536752037643380459931599280924356010085301230806732143416781533333944537013539254524468268597332105175670729499878600953592578001647150323183883679165570299960107250442094398178696165291413853188778480156472140596313934424527280940598592565457195095754775602779142231403868350209088144541664540967554996618035924639817994382391597089643531463921643224427259011182935612461645781478673834144109805508412244661437561072863532200819876709824917863755710903533223046751745468949975053131059514981351510357969955043576814678908794078754373698520784285083226867676514210676417919305491873512735708797717116224533584893465906218029004513258627509314941550747363225603939723735102421986544443859018432392238497533432340022108880554386394579356994110712612977967850222561957802043037275865759711773333035065733057783107548457577043185067629464136186373820088071518456505547537166855534056663253061115921493514655930851004777621822682525569703032054700156720871308189985785678724792323888711732674325893374884390649491786625371515232136071590363361793804294667130053996626524849848677427394024438879641935344566344202100280317554780738878492661854196770344395926611686789147793381225909891511903902524710827886668062364785643597489650198747840190052634774387631920762825748436921538109927865597981156045230601534812536635101775338393819053398413679363084635118360114637650848497883871062705768221736198357586871355117247289894803073378430008251587589527293125613963432313049617041789627619720590682025784799581832456584484028643513263398600754147115675535654280499890791095114667125126633834173972015018526979439918772172880961762824875727385315706754539858496604805203475107613803013915702238721447638839992831598484300749516686933285353292279878914630455764703819018847056203020541712443814988768785004414405223234363748480676856160293009039112492116521064195929045561882506299711330337081308947947804913623019095679471350258594964388370580881824867721642441046205425631142576082828974934275715090670792246006677386090532103926547642094510961556907000664406091968461904424433281019684486569939123175871889796154980202927649006466000730725378879063479395452886586361699579373715858413350131907178332299399916667862250571281280823132538462704812115445194400235543230311924822463564641932205811681451186566595086684330417387354530028256117708304093204023627408094848758211370376381556151759955097420263616410727963642720857727044740503145690906043915813139041174695307228902152214926228468965141454570501703248691777066326158375532445381581614331626284392298731909459607799621728203260925707504681505919739456270869642347362286486911277677297974664099489270301962894023016339931828053104322747267946535385114693869812560324975531123489560830600623399356784874648126609911512916111478727395019033752302987184179508194491043245227079040726994247017945697818386190973960486610943482399631860146342307713927799610351476857921365117628995888466453191272987169022314595518881534004191688748601319795710662163813856929063769600209980097820115295839589044958424161135534346939659157524173070873023537926508398268643223337651566912765628429755058174636939447546178913717393731905624005769096663582633539439513809701677194667553144500360496787767017265070539274223103462879051660400479042916632059453268054689059280988592125806234496326457585132590878679522989502250801387792188268560080522788429256915609020355457405580461307678434699037997315124139657360220760074587345922423022463768138805271951988856578113675979073037040346331550512758933154544923744300907062419631828345067048542463987956978351315741854140981623804991040496395310099591285254702644815976418755489160957012635452921214444966517213595590175896638993605784796776966349458055456521900853349528170071884805969876072443466481301438084523597193840175911594895100762174324362671720680007090803486830124117701885924653686123280180785402665110101693913579116111745788339298685983866575961464097658068954340897515449876455327672896511808051738591522959002158718201222238750015336823302873409679106786021529472627140851117084119635621419443611760162392815959351133311516575373398471533811099346790802542641876965171023525960766194573856210710030359809222484289086401134029496888184331568788305306333756978269502740988320839795999821859364925135609427492893648820110519532856251610480964872095176335475107246175658501306048828775209711702262273272602034067917656930359358389987648686071472432468565964184675207946993702184443512091006884280105829771952918202297747519135673618687534579914599171402102437327929376372968657390803429710337966705822504406481154971802964701502533517321993403780242269263655945325176698030979975725378755131163524336859942290304356268906680561497260856959836755931216870346998460722627878438316263984399970938112563509761116163299562399744694016686133750690327193612376469766409232178919534275903673412178501796964067621268203337918816691606555147191486520186772012623084817298147659755128770074189224020646285282759125720826415469209026997236477081538837100987559452732528531584553874314629458677160594471539260898384626719292323517413614639940649595213212124850236669359066527355013208388733162025116051014144896952864273233814736997257538260842675018133634760804314574956763492783449113757747824364515646872082745217449351980584749876050924625526908847440562441567954304190572412782503204651834477954073776655733003432880564281527220130102480694298365239947493015510386428497114848487067649371208065506456234871002241115350468830611104500963374068441546221562778006139561635067855980551828728107426060756846497504854514555290064801986891118833334699208019114766516937019967663736494051612927351699035049329122737061883298930594032869332717214986031994658954992454496568954014291922361623462903155338865028631517550097497573527641925691545206637669227687769921990069501551673246029051346869211722160738971229730787387346836696906183188120645339044363555090923684207556093294240263650723549942146890635338564996676675693696999893338573598127878042057334520362017172063358178424442501822359477047265845515140887612602288148271882673069924181442015300060243976527274996048054090896105531924670623087708752010517985608040057395725514019335358691963891806173807515468729880490747515651700369968173414386272674790118241500828632773764887710947958141533777719148329114917801010801250286138769445160265762049372796799712637126012054081168300805792974813057236748967867515541308457780579545844341567073867657341569616868226544753295420887377897868710090806779388390670094397363921124986889663027305729842076912456177267196512373258803071053205747066604853328306797644277712193098788739064591974181359146607586581173853642169759459941578320349406465671043214442329854523305557838753952525708059851521326640923793327696511260132663951748549970243915807900571740656430939498046387773051905850541049017631104032312122486687574575795455444238516866165254522998029432667803844124884536607419254705961645841736229007840430259143555477641622507351806978966682240917490710464855171320458668427849794426696898354875542492607414268280426281408312806289719278221696239474969976112071625181113053307168604224796776384132522713201200324918111384330281263162381706001453793042082171650491779206815746901100518574951150565197906476115876188519884140357484943730717778490098519202413264406092243377614191282635201940690043440019597237853957654799212994356827759732460298480682631448405244875356884205783397855984173706209794910470338738134606712592720483420151849911136912748016644830205559074272924311059467716548890979816857737786300194040588083285063886072524729115628713544490830671496729151515318338944154515588568592395028601408890275825090467070953856578826071447486477967465778539839522925213370324629756035553809872584517523592983349247422287757564269005926423846612894318630499749135364639731708530523399863168961932939749195157746719983551070603004723001236620242845098469352596694823759109893416499557359829886194564699722040491369802195601643534215374792742902054929177955282186610129825479046394773139492535677138666810372240396241585774380858014755844864328286799341319322010168033389860922308443815681019288275535852316779099721107231895703292051764548098624947625883053774941203118630139675766781364223056978188172383138252770621202091312795008303658265911550471461257671647886619735117321865813949405870427350477777358515550220901103893814150583002009735895896751568569562891250181247930720365647539063317162923734642344288603615337560409422802699121024240093495562842764445020291288033908839153508681133108424640723524658333065520960681304210143665285654187484666953585909227441523421087137359467059397656370859291650691805444584035612290386409634368695226502194124899155592482871837834647452237994581782532023237145884977904248234602940398150151029883173589440624134357390236056184567805765376248725309795860741851868769849639373303945324449913272208370982250904583216710827188856319321431269969819213436780995753443817064869075552791537570555452411097544574601016721230411403954857830925709376279683168809903398336706528544658337393414069031965345355618773522595090684332846065257113319774567975779890268820281378675312561848888357609287602240053882254160079086814031984963297724956503903836329652757787661872288857570800527805691849558478449186459198104081805208637840220456101037627616981692390310363671056768231235707837334986489710362797229356553902227714569804847216560851349002260887367810061408899953472342366202376569062609457243098135885600565196067782794100664074937107340354393840693193726819862885608012462259295665376864203084477804883567697537766073827126098550517126958994640357186556097683156627503098088686561394849597040150087536768814687853737901550564774191593539550242098946731116769094097522555947902858459907576237026676628576419914679998649714807784153656177750685481081598013690674151292053761548710095280300719446544409892402293490680573415259257915273670569884653508649911711969966744431282921245919867974034917757396297517419640039374977314019463031116349948047754245554036888230670723913241246681484723761377621916528379089317398261220961699688157752493827406970589549601819308811850873927590950047574347182945033478884571977123572940704708679945363266928967888237158854135226961350588729477596548303669846751629128475937657283252335004210773921643905526204198072940664259669762740799552678491017390569649517418510909017575346201483641101429580896842412507785951503703451392648414619714768484727252596551239689842768089911245886779866365266726340548377642255036298181865994376755536454838992379217877807760767617120979191411596490002021619073924951829289100925443608934020384016099696773136526301278034597490214147765006846929203186210507878234909756184901160777119843010100854806567459419982060631159749596986367797346342443017889395559370857343978645876657583043648993485702546567430219932904335652810317341936900887118748679574137974269479958241129896866574126303037058825242568119355383843828877889410550964959263817648219808832355182532537335694457345442945529059467659935837317603411251144957230904439670378189420994312162306711492273318064891808260450339367194799308226848821238698763510209375497700354143402677244694328976388170465568561132546378693263073052661685881975564803624834359653272043058874776223473788395795707777457912993670578800156295570754938355332245140012296597864843848332453256526554571583473812601222826367726806757748529072155711448398955053065826286661170664772973350749625735748706703938163785663223916436997336952692745365481485818021735179065806526474495423771025674097316579732198459451403097021320120174875083276013773277205963830643850107140751792432296752977865222391752193098637103447017653658225800233763619182678390243813108483486044586630151504104225964111010065924782399538711050403300565182997876044185455443644046299747073931223833055368010251873309534411970277167798439791200837332579417185506900677131084281369907125580737301202797218424845627273501619773856616384932795028085107380183549704543521403350250166812399327581167056272448332893886023105705620742805396969258508209888777455792067437879036077859365473187720298267422218953281470548548263989720045500989099395107412899587072966367084064306556189410044366845793196848393679139857538841443108511740808293194395295006868446692783734941448553429240886856620064803443311882857953797969133261183838796832579503320623318776054623550089546908100320617432779771457134695439076808402009819795706050270743478755708758107840919169425282620289095629678405955357178508903014972581460701433588853680753504720974764165737523902530315657365781724142204958503921069184490740746527314411099008965032619611369641950308759711825723435464902596743456394597645708919815236882972111592460221556491659646423044274405939814733044470921560686504033526021831732360125992411825067522554534909269259173811762905246220619521732426896880022473565283960850446351725723526880091806085188406563606293755252714490098883273141095619078236152732203473099919797105709535233655870845884362245801853171981214151914853555459772024445031567577485271948324149538453610566472281053472664122118282720144172438628380807919332677418761129874982171270848243058772871833400529739076632507700646773208833062984513178387470300706458941914654791990950504848512976528455349159057118310300641402041919467380470021896912528643991357080003550789600704957416570070882776365876715462279822218330707901904776601671134868352045430421720565477497445928588080852957935440235778039380702768310866898407054099136611877605701013475919444712864787506689555986721914131979675144050757166127365548804982967201301631427648790438430195570860461769938575967443068276576641795786784469346930926765243275155500495791968802592556786025943975239334627057470280210058016553331469918527304850508089829477982241690713916699993250490448501804876747889156302786310343473791141966857722867141633816299975260436980478938469863431084620576071899316842060968538004910667438700441389925060945356944462880425939736524513513658395669452355190951901092679677404018448383777828496333566828526864104434707485417789900662361762288324285317446489923124791231857539062683945402162629451251653975114857211486365431267028768927489688014859333370020757224635670857007406193158410046411036217512480576962490694118038711273647280291808815655353568212905159063836993988251116787151660712928976029967972351980715785845585027716803568360052853944229963976470643537802497927943071297321674225335576988185416080960281346558475060806556711768054376189305254122292736553557663290359685114346350923003897921981663700578876647538340934528165837849298590994236650903859075561263995378380057493265245762213222932605824610629745097343982268182409093598371899249751823734064163520554454233650226531729295356100447848745215841823038405195323797962722902915508648185281628705639726963060867634306079285541203382814645354691867658970751014367892895124757315615433070191214022571211787959771902408270981430649451760282019395587089419340722290732481927008211525934424874634034468271337150113736126430816878118782683701074388546672772815386383928205022113677320716414613297085291782108503207584298480718717212240986638909570183959131356659335906199657642300022503917027471435747995409871879623391034717570457509306773522694001719720203862485932748897290649026626783915426512741407881088197731891334046326430786155306170840967494367277194797903207934441158508302144308225683240498726946011319617383284237166654610487169496021333783260735703982721871709182766359870255221990151168351161140445986961760996681615185825963393036658417886217913661563746789070882926218048288299255931235296172644170735201168937772156858777321961298998568977598199163144609482755085880216455645998526571721624015197639901879086474016542659812075840946172521971253503117007104624476781489717118744274305503685026771591174690697692964943973401386323270633491774517621762948038301443784676159837325572280914955287864312456054960200417724651235739240483073476647247347870106008858994083631437950871528552338760051056603967036957547486844526131521879873417012292114874262652450339838625588067843269911926549749641590088548737182758948525260811443709530466759499914961203809960537983269675783873737678734480005146507471136170864184819742781472361111174558139826382497676613023758895042688922789445463008047814370104120392719102524013621493664854550155527724698946816336250482752357552263843613142573822652700585235359490432487737322198943303651997510234160392456717125998583034273073016219612051081164240093876588842591161298498095235144962944913727531662742387689401085650052472347818734166627557438341580962895661000382865302740534072938464754128867779329534520885556461869016050275298467473282768966977391924446255011310502695152188796278001379407634694873686494071797770425641053395612477310793787174405898303773573919318585204911432246792458919910306579894962408981160020762576194667404119662377294231495766878616459554795815546662885011017547623486771099074370794030848366252265106203969239610878179400574859647656510321110967035485639302918677017093826326862376231655061785964524966463266489944034999512027671091070292712986238769165266341580842003072158072005805402162504801311388955869972171241744309529121912895502131971476114117349158716608416345543844641667656644809356451482112527179883188907646090237073837402860562272347104833216627317840960429465111894595979901147073478662166082853555843911205593268118182082336197058387638366988731653934597791513889502976900783453005577160378739307265453520503455003613806891308720962801891207754410859042282743253993307111621482918103938894022016203550681124539936711349545498620572482527418756133936164351683669192671928977829616204086214165668177998801792396083460796835099039102126272958522304922177606773420790032070893785702280670089572611983616569573716265679841652494168084051586288121445625056190473053273522432243780329006664920187946645756652781548330985689923188664684833927929863525369542309835036356059288751942349034492437607204320087369283453235196392237065879377128664671571475080529477158516539941772634894129928187153070730248253939866899227838855841738765591384639658245995163394146293543700271664773657171995149506111356949043699913905368993134717270948830771926433236224034784744057174649665396408064896819546733259913040500947339863766547561022450867504666812930268459312712553077164558132216638015096789662796566015471002156921269971177314080963091389924007644438525565331957873295205418040684830032594722420827742245024924745378585981493837039445244627127320714088916460647491130235224765730832906424925015313826128504948156977673789669786612792796809684305699536921732264747988262016693876785247834351943277715572720848692379418779788611242069875886200428056096328407471272354648640599828081679639862761876170902458389696883745540381506383755204409835560173306918385264900740887544421587791626168489362709787907224094270184754925008778416385046809970825812998174905807509801294249097554531589565587990146169364063690928971685128093589978621540111897926867210362404071823070661708273276167100093071970049387018499598983768224088013681341261002316099982516850876683089911245514458524374356430382581497312207864711294449760684007357082213904572465970090745441097068150390845039205796540033568473353225376406607957525515351288078317953869999659153580713720773961294905617011651555535983484126858868171153835110074158200064482347507750340259452642418932610022049632728505803706723694125563292938303300846915062163599254297833421379054038165383623883880560286164681448519893236288820730338655897427282339176723705603182214778454557521595122065105634488530540006044696515219809178006655583281614640706115990342098257281718657435455971866751876225908534604361368479067194140022150094553009788126775988275402662594327833024785812765597365572689027920271834224403487592595639122934860735203428447219493865698810699956675659668340178616046679469008059498635493618318231582805988996779269141130745051652444560447224085162308873986931440047311747675507367957912319522210938482774236370657955862240332008719095843715440192224681422909785175048421939620392926531754497327421181215470412940637088167023439272437899983242136802355942460152751268363396923744465484958448880637892116912756046132490758850146308835049041242981432754973734875086567449649426228950556918612099701401979167910435385632223493759549824882227686340194916002478709440934958113435474600574322758477819564071360068556823944825679186838131756078614561542733071875010527356878448756958155507265223073035220854522047436677028644926778130789095938010772863105617395232290118101420884111903106174488595725476193374928918802265237348472892950235505635866884289072182332173518857283690708934289706069986057811266012703292113300292101934763534683853088672713287579553346369830793746905233717284897933047827968817711434179920310769547608081129921816080434632936609902259747856444177098895115824005255035846345767209532692459275509272019020875552921107042391318484870756532882122988439516797045354653985772600862893905325849583874846672877073349408079397591716762070605253474441363502099186433703389293754935748404239354137359546103681745788750564515175975124322092420141250722408303420132773664978160101112733370070111333934835602290883293158439351933844777675575148520581599723516498346955569018988183302030954293353846534617855765247591146947079224489562178382812074040874044697643230376028513613379636597163338883255846575001129075243917347830070182107799092972200268343955133002247907676940352856955144130989259157983254778728630754701797142219800795116842652877157069488240996519938779088773504918748066084645389228822199198262712006528132775898615385480004542901322410722868955633823422558027997174257153734120540494775028930435496515655516393349568651577417200983869772660878884392105221935843552588282485737690157045300368450328161071024819008016614716225252305569293255682390134805960308589588660807650606250757614905967327085011827447974719074968506604001121023740256703996981315101663877861620286168146624612752746270518232678196486117598968314062523851439903561137998292500084791189291778848699777099698194711176313662210941086063971491169299385818628108358997788449800577530949917093557268633291906090540491602655377421790188107373218621082555004520602791145925308960454777021970973719370945253472479254824140186619959455228339035890446879040128375064092847380035559301988209942607865828558144771706982372260666599686885873192343524143206352496724086553659635914545413133478641411885409191642176865347849546167148257182077302573579820138519347219825571274224580040716663302560247310579376017151693165710293059111789833988837675135332303429356020518698562340969713286753499918956408467152136456473037942767928671951364887499244861014785160587856546416151536763047286651615509690420955180185342849107277217462403783064416893960295346314141817785977935806638059362458258626920564767417727332235065572106055697131327151767698637027764287493010795514246027167044139315565262376057787390180210138459982531567009079233832115393197329640262106310154798911039351940555572543584586201073393483472706572383744901996218971238241083738665764511646534123906299090893860020837801432977428969423752922285749489332694511985568425907406954475497676336970930241514031623024965759023794382920318750960649497546987293382498549771477496208888013944727996604206779864396327371519246609464814829473391840782005999470484197302572312060615045609873191781509227391525627974252931172189007803456270904544996023148941645873783958165492967751515922739025914037396797461782145353868027080839056174248343301781081942329230533155965020199861247059787902298658396888021319886976609650555186289742718695043481352718752064958329291022551846927532579940642118245631220077798143298491434131852322404255860888844930387156006991542749865141489458129353401159661220768527788553812110124799340171846638888619111392083578825079771838656441765459232371987201449522548353405922637978635178968274550383935831787239559638101545065931174142201312950472704383767895220536905054047420237258467296439772621061200149323020295156208752356038751087489250111295187756295263882687763302028352650973016631252112757070970489392617247274767964447815778063926506708675106109768038637725500133657389513443962633670124029765291189355516255598892490128061288543268460578222296136809294151719283917465437254605743883346609209485660001516155847199066790319584609947597690929903434428432247791008289425259953443592647891748860599743349844681441585233336163607034445639607079305330159418445186432329684798285878134262636855411137473840869063967560010449486865536245753008582163117587726781028109369494494171583534482796215078346291656881906459689410380161065623761801157736345137434955182610361423249238473035389342764075947810352435723666822039087048774537466920513383680999354511724671762935835551752656197934907098328031800442520427150639008242892881968941768902603188267960269331447793134375480978984767489043990587279850063571077047937530273627334770079613738843621115555028803098415761322344879830488949875133810254870409805927211242364016780506471157765443168890975589521733943114356001821405950863436482577085359473162053496946870121226066555119523778647900335370943046637020640350764920189323187923839726012576408413833278613828307104799644810057688863332610605339558168857925558426914245384607653916905443854423482762558354284209619859206046864326608865336822555327121231369774660849071313456042237728693270127307470274971272411201865818435320745203394669984710944581088054292513262657307278349619447278155100187809979683235429017370708231224137885906421154631029535072554139506240280158807768188799305588465350583464414558488156917199371621731534041899073096907678454908261389074291326458705418012746508169249712819576795139689491896061591590349287880772383409619500045949501592744710138343696533543367836909996046374381116952516746499192196635465722596739292521428167145341910155607778756950072506480196686841998314876924455096728141712903046947365207755252083586739223700768533982503996027254126078547872850815845305511353284982021045676079155800115142250212373683088870859057066768935333029050422445778227430356194841076873385066606962143783382725531222136419881551643325803826858283822162243147730595337538858069124080635612115623560074528498700316967803413441535115408742181353291785739517947630267435009671314060839867689560637373238726262350277698269353010854561764310005725055723661812936587866306080421997964094492897432575874603977570111876370086371138383541840923282270869457888991172006608739341911022881970965585971372718869878160530340117744334403080051721845273700377222426028790683148357387621900109197930664379731572021372881944699754485331068385710998520372379328554903433223105675762516648111125554098350679680231482973922695113778951321275858321460212436245846756006571668626790231310303731743534340845985074267900414492550120269485097534816521141267733130245176316642250728498702559772046167222876062909219750916316854081428086465680738939495909733953049628746892892955169020621908150789026510758847177650878286727739762009024284100731414128113616804263605846029663719790718487298085758924027420025357193652089231191064272652299506381212301636896437219838947218202887427273231386220219117629078227546878191659245086354290071247588679007370562401733800466204139754586318709127363310082858149106331190096407692539357978857778402486973062300721753533948184287198600022356814329934456281534990885141426184766251340398920806488672016044541441358808833087075930698481276278345741028936829370442523068248220783959600388125399931323446448522223702289489659820272583560623704065571318371953263452032833741031154373360498808551052967203465611484233041627578604528015647967574400261339277177621592011134352988659685068745213947399505857446229374996338721766814287444177690636842383626577728373053666259871135226298955381418387542344265917511652376999784135986303745445098983669410803266586899667119446096736874048451080115396318229371330972058655269456098693423422645386383997949049621709578788781671447059137279731817339647853844585794043164245413655549255677320563398797431221517408510412377054509865763844416898893958392328286281701732496953165287634436300248767348298752067711504108536554484594783690127807436674883018960060084402610264126017139170188175342690005804814087659620944024786662866172305541108257352172510906186326987832507495822592024732255240061417444524580926522368891339002706949193218091143508685362584386532887926908833138794258400916505209844013685408872664206466075676972486874310224672678741430668195945865798585813917926886558511974800826667611275435619902647988585490204128818153808118640656236050478688332461425880851430838574421435452501480403639144041913502361371832853244698891026209148987524593380980867354414298023155020882386921988854813545150447556607249981316510262110394702945609990837546790262735926938062389883239622924171727706094841316441798517493891223832010288593260213264685089762348810729816856331482484558274867058806424044522136770921819280680669189414494411560047127630768104980471760476737600652661318778366130513384683428224276588143359581473056282118441236153546168515516894034814132646295462437658508394687393415223209342450738918341656401455081720187932812698890032096668736095102150824858090043190102530378761332340186650935575307000065635697927986318237486275559764305471231812892933986320936089364003180595002465762371301429909592706425969960567533325932911152916564245437141911522876744804506460935424318813200812824177140646899135635454833302393785103323236149514541901964762006648818111498469482824331450777362946351406870243260994237680198851842923149016576369034217271755023079864773138618497639939739991266405209603991540742733779821528851593276240672124870483910868152557839330678295802577072719051552813289618471043831507150056458005335607177237544638975373087885445137488977224110737653126269001758378653572802595486987904283278425596903737258980890853801690261466700505467511306784070701717660273456520950084028959636878373062816176459836559332586042092152255326999106547469900046218902400527269585747593722292620969614533552639494402611710472613211185610675587074162786068461737166170755720304877643940537859915053488010389851561857925891936530579881536964523969803423982621678520457526914201452402036745219317862333268926242237269656701822355176008400132807599362714100439310592735274334821317138983206657936695782458063256250414394712315102343551089900078150255543890514106354691105634373132786136703800067531870320902167716512898071107500261351257543668742938713645508549049919698814968829268805786707239660350953940290704687115499076997671246185866975976241967110558325165046357703752332623885646191193477633866933900039785637975418757649782195781520961421425323637572743091293448776294668225042584674558090496899919613780028702839677518971100016157691891495714710692793528893408265900945104801761324371174530749667680608322624821321550705434635051640215190408410178825777581515108434717905298574859096580561533035890992327002461208589332260788671361851174628515988180096631596700439238410977285354180106553935237659781921774707997286564232159071467601036314943755480330215665030135611152136447405480353156368400045003885907230204004357202363289546743447183859012010168510677961471418232784964656107198262497592459885169486335167686196457858032242284731504518174399127355990057609599853926072769931009208264593694742845156153627136150395918944851466223872039321213527780620261200963411603979384599024450720947147384606748446289039399649635618948021739380284396002767863331557957331529570164224814575056725448163323799824583211143611838385227131575271671343353558207932476623509321153203009762278386292203148272635538521381147499016997406248168830131487125959743070602663123738167958263736802873591372724664272295862431333355313296198302647975485063986934061847266059640597165761907387024207146159834335143600232102449490383110564240371152198167156805916224116036876445362659977413030291212661321061914673194428249944107190010143715628055775409883488712487360901534072303637260549550785764346474407531602688477505702033074898687083325604682410783848673047510961304775888074948271166822563925565732397441895010096224956861102079349955738608840965936639267330901172919487799856071957887356247172497427629635791889700510282682092329197390127567421665093762812838967726417487300841335934692129792405892822591696662252893819003127421504468877112568881525897766863816617195101317513057870950210405883189512607642542113383464952104129790325717815432007051248730628936646365752940563401823149034465900190385929024661307896824236145535311311099280325766167472494977544412002997837579670638549640505065573236794669527398676323934167742009891834532024707494244317805788438784306758040161670869208806697136710043409675273243134540393869179864715364399537901365518674633456052183853552472034722925091935732024424958912793890198991191496759411540564975790915447117675962037699482959296532807132785205975031712450189503413894084978058167438915482635223610479037836158301775145756175131072490389105232940748297671532454823158636359167999536259650987294411887535368030611986652024644480743341618627760052174751031023084780821404130811584546720509093545430517147190427029149600774285916871785020837038006953378892153484808324360854958851579129843057132041450086450564554666433173640721061247760579228801495348449866976043983110147710055500553339766810063546949333187101011833597885208458285379231265946590657836002768309662552068316457734994808700043139942741676373988205868791442413874653774266607920155415329197130123096106152741985528533769860256397191804733892738701822817302423929025298831294287805288046402824104345452617871477593761971665883880533508767041034380453438222493817276515611875872175688021342160500452936915083993730383447803333874526053437712925062267250328638377193771328135483182173385583196447201345914477613838575886900488079309636286124428445768302439282083982799942808249392997073378461202111430735738579207420411915816331098022928904933791786791469428878249620984044420658211544422290670624348021991485103738330766927974572970352348056552794251715835684280490867941735255234359243319239131430144393258512459942780395532992777849089507024031751258204853678066052720724297589772368677346070828969768774666871931715149218596290698623300545526959419690913622559153072517168704180070220976574088371147516231550202658417004703420991987460805785004866518455289137684482880452862561914575213103490163353227134540544468447524133424647756014246198471273791315881761853888001201054725677458845203404099735703301170563585483420369698972235417484346584397922940556764731956860375521420635881399013675493057774119362472506536952742012635343019550926922412561066442624749373222491966904716787268641475922081581308836510174159457812200648066629283507127047972761820854063843174348686493004902748241298937647242686086032011775485989429583686382180486634878993483220975929993719880371746008097327419850631811706583060668642185227179255951694213451174989102571323431409517356464655052585419790535108329648658633410624244640099278094758204665720320220539112866649639769133217280987996731837435812459799790731595135347791223978601760614679872464501730501545897296171920728602734103336969275856578311886495203563317215497112929877095785014277932075116548327248380340117972131483198121322980226740384499317026657205209003139973700785186466405212886954932633501386088130951868508977110056004321480062492269618898842612387013550929992844484547424388919933581541345169230130865519888274042157993457889561138582551258068352507966921387373174901105820128844747920476506511706147060194061050194429598039645447941771771948996548900867863395433559186860002672227773881407261771827105691165883556703253385506210691061255885195631102070481410584613536382839151734433108605630328887457864236117132361331984042714922399572056533633847516007717526995016858054434087830702430189881536638857113102554675384357377228078977179732572335091960733330957119989117133200141834264527102775886485306079864199536661342051122275203333130356065970259908172641038357611703500577106521374230093833457253330336101305098772416178769332827754920298840407419246826451986643575585213605953761585306116971876543399260148885529950337857980433080676997014412909541688979719349763470702572463516703392848402229368230737814807142270073604234330345425402559338704545281764521180940478058694081991042711339068407129641450863299835698673250095349310143730647112786475470784887995183080465096454473554534754924247627906765555379018562488154833055011470045065435485066490933219198685214893898360834151413600243215307448486646446050347267405643772679408829786558380646631157448680105356895100030303509259714207097960352714101151564661996869304305323400178340256768005803557713058076414890513844421641305969806273320722557906017249295853199862156284632518733314173761975024143913042972058421958654487566507234842440674437120077234158249255815371470818577929884102003027622759804750579040634116138071038499235104633193490274497525510021771031328452845010335608095750572192566386993015012517580866750591593917743519304847422844159999877608599125166252415444731445654170433799761401081294127072885942936274522233293367387190523514145821624802682335954310925399009137514364272227426663898215372260792376882507003273250631067337307928011422021062591204359058837365307467490625847866521408813254513575262132273119532135797370727447824227311869981801477134739151561816405953944090720650442964496812796391849221093054322429348788467820498910223576600051567049289883870192543027283476108133709438887892568715282770340395346486365299952165216157320126732582443452489843106782027663420383316542870234820268200501736243444450454554899853105527521260999636027347985603576231981312631847515324173757826870071998768921712718255912567353338549053889469949737694031652593711423632626818108837620747801448420440570806816471893983783968213973964620602549498959608628917712203927813084729112423639005401047374818910598818817704947772850097669119171316990676253784184818500432669275782491609833493145323259393865653572321135052805009651235006994191748116778348940694884891274951565082328181830522610608310748950227238107343705298844996065625656189516873724242339724034708749263433530915188074354463309354263874053093467306933483489914588543139662406576095711334099012709568386970397866174541907812529861115860148440204633269540626090163846915975273577723559126778944868083406599338449660878663095043732192048892240389909704232313688379138578906749969984865472947414656563444018472264774790042785522951480438268312252643954087137962183003939209854927190505048409851321990138304860567852803999676678238576770706110636115075931144290939688275469345102324843061186739048129579387480308769950369908195605359536570282342273394023711049726799844731201269178217478969314099339935122409982318927386613729709668884696058737866434657238218268635363701921823382783784714460216106533696418374786984170599214962313994153416929757768189072009455377335517857831618527515013391206513345354999923601293260044949146162504648842854458601154771723480936790961273296028391466572513357754929531606759473413828159652700272014310900277296303677051486891252536465913073710757902862602776760906777926356312908990758207869378889222201126791721723042701296580456273662712476742012553458187510399166998741021502842582837362855206131360129796914851986537243870635726047293171847909912199506999590644340698851960275317252777517299101943106318575871326200127677641715732253651387813922152504399779150529878230652494563380952798585434252064420674807225141791353336503885209789850965117148353654359191646380995536347234756844282864703146637099190159243834930678269723564877374383231251155981711638158876372925506566002490396361392497112340328770059122698999659208933233603923714808637782667400176687073749515039561799438892110437396208683067085451246922544546159653462246750679864801651547895406608609194217798679156934863657936177667411039315104054440426523911313642902486117831930858080749796982973196832527143180857905143021966121381295988862130543907452560590434214678083293019166987769693681638745044175853381529800780782340472500254115242882326351197599606103290894484620616381476243088354457824165742708766598794702885373021433414246557307002247581363308308887509460429855118113166407968520220450062993179271233331487770677528042128517503287169163859854035964742816335857974258166491901375271588335489466666637477354895166373526222952497142358013978526089508690778422107488363777525196882392186436737450413246612908548354724127617743261534018814398742966887351161081881946176495920381512818869189265930029133736054391060655621735369064869082077283216211868422036526958882000790379815402466232061686978379895880705436916602459737820034728552893157508594120237714011553129374798884958782878159890555353640900230524225228608310648712194492722706185982631358302906221926848310739467372652009529488418451681706925722987286243245879825005797455748740162707660797732421545229190632088198756552716730765036368538074081708793154243905348637665394591975981766991331087225261745240708294751100729210238073657650870047244616428885538924875852564343144774281971344552581856720220425476919477156193059192906816273974264919158450844059416238631811884154759098741589630533167814801097393143500965946119616747873772449629447277772784436719378703598517615031557870506693488575822911760982353694530834091925575930995140460951903986259969823757287387884829486731113355039452534636960660161949957843233387638757234933828706576736148289911249687983588670024059195308364905230441406431753837879220544809563492834773323333285585407073763328289637904248233884972612341633181144295512928926067237666260268077318943481679248771754901703704893745163760365511147059123400177423886450921810506939504537509605938607719956832289642968388635708178260273155677225672321928161393508471203371138627447254945743839722977880215798854664208423821743313991643198910223489277795702384477371298687842923438068852702097134892243929423305058328332710326480756317712282079547918967408598959874223689907612361434691928864590808671516807168586553394144893600471093618805689820937428574864091895669122110353377604200168640589298678378562498498700425254755462584023169719381541228239135136391842344288300256593119310101900151029201977775176528677885510891568459317142457856017335201303561132939034336955617053426455489277237562296722416845844986202434304829403432429081785113057929823590422604924258331778042600430416682621110601084733641316801136444687034565356911832943435134600474670155060577216666813439150305594051402945036825121388904861983879472764421793845587817425002628035269138339921493661246267674709899556926416785290446856416182344975046112447393737952010861254366556782857144494932345842023150493027973105032278238857553610744841377162641111305907255655540769504988175747076909816213216824018950805462974022395913012376751767776013401574259043210901531455575960141664872045427160660520386690947804849469065306769956982314278689565588472096551422184218002463918876854821664026330555761903496640474045556134662653818416877523498011183241269262490709200689889801002969733737702866218203078646194922889529970067614551314476371356503915281658159357279458396851865565218573217933894740507065526970850447127428862496640238941506973118871371521248449903797343385811931091861932829590576781665890424356120430899652904076910053001524799132154659061402377110846411441026543392628631100389245920874237630243664179144573337792210618484925835525585191003231383275672706057197854581652980748406588852613934175715882736789993360657157872228607288043279792921740512546034921307957706933297791972957434672455361628346792387071966246786823149341662358900662835785803375074237763326517416950478727750700407020663468528634924722378955098969768945198006222574588959854044465531393689215581866363655920716290321357090994593878441817578619956594562357273105989106564811751644337983847911632670125158119703245869710673072716165006618686691878065073679127115590262948543583558669470026778393288000527258164486251875646250763090336113786964772480581196708742174157890830889730944621684064749582715078094879574488333427842756185138580609683091285444350921613118932268541670545103492806748477749535367733231254691352066279258892064662754665020569253771285650370132617182707439799867542379726178135269855047647787940010462093839652386471250889408748939731748414138185326118742886052756495794245165509760124572158580829584521723475666990987801332320366922908445068069705904149110942364997087777068436693730364198821008000761479611499421899584710840560491863546864919701124487412192011114046748777143267912118394775180079696322264331588900964065359806762129843432800981186967034806665065807901686498561340383941133311852392589674940993593711973695741622896800411389028210289200499563131216926844104664370778101080406565853783127419040783814726038777747873836091155377381175713774317611681355125550770354038139715796744208052447253448764232014880543560555153625735877706083306761359804172712018714662413564588483435000697154655947380426200035683891154202410879193173077770771004584111971260470791129522713679257052387648508130785852109279979968198964558430626589043271924918479565258968203681343454821199332186323598378925683784778009167985186748067113318974573993505311816227467807939075743877799681169439288687101468923065656031794093381948437480277284031293903931436253215742793215090193522726420968098842056184396375746171637565048642223289249420420157444641490616376289648213014220918126219842808830015337636311700413122307721808254850339930399752301353586888001070114354993679672420101380848434165887851749561635679436422747188236730241990455751525889156346119054571727002027465813878691357731027210817991121652515825740874250639485391913198364047617082424453956974495070852270465509881243299741479274758797720188676023979173633565381879906336927554999982165584629425545656136738423971609255503245410003167731399163134293679047949551215164007771902993731943274484373878011112617009538538016895670546208413864645494856962660694164755465685897642316483102172365127407767694463565919375056249386509742312840646134048931223932440573427487352827065899421107559858529294545657093444415872923318736852073204778180276174374087104571018961264371175471027778209743670218824293344800249345193913893564896089600638957339779305298038810439458136999193716897087883926288368697364576662220169935021980888529966283356633721472795155470990750827473167443979901854291891535967878869694013004170753761113186890100656270311603736819067817414418469032334462876113480480539903552529925636915053135677725107973361638327510526522616631967209364197698353163063869090022673584157922877820667589819107482655171451150129838117310461110031202785838960150765362346873811733607642738055161508236555390688577411292353579246324215836084726014333963882827766526118870610483174954459688540312099902153534830233362423281907672932378995018464898363707422619186091936512672552310559657037019619940409258786210065400097926539787731407569824105080824680625094644608723173926390906365871166340093562574610404313298989711969428983009622914584950173666142624838545277427772413263794608166378366615391640176472789673938371012258900611818297436953445228512938307998331705683066326946530488500894598002270720483707893269879206645942441436553242891585935790802293249239649919704067833413232153468583846269961365340600482003109811621360107430609069140668691201065386693683724963505197437172755612277240028957799664303010464865959567903936839920198755283816274263045786712765467426460396285946101535280740730646836446869343732061039282042644851339665328424512675036165616102571041648949185660263593499050869290940475229855010254129810013044784615803850199270421363327256444909564415062098327243208913533005654142861751965097696253181557944231266403877573739776939420325233321853337007379240475978091715856771963229063010438091757614309553447555448073348346015819719580716085871353381475398389341028612119992160548546002746266197957107026519979608322738147064412371479461964278225629015520985236919043809757095733419284869233099815084081283986939179622138132653453135156757257312688357955442324802030805778544964774309164911364649052439827174511347957435409675762248352098281143902688269216110364338743420545854379233138080695580994863860794437457782466488993804322475822016952396861688397401951617212270332485430369898878399505436459537751603434344943570149816378004964988532896808696658451128606078302724906410933596897486650968106928600021401511000772895346729262860294574846844911318384598644188672736091348226422051428083781814662862214387747241746511744232654261689805200667206596315897775840892433012702325213958850940240304201560869871799604853984676598423016580798565393635878781962459443256395632006494466476897541502693530321605916006168073897995278229810920581059369794147963076823565210495974399060904012019056604803773739861526162361554659165509893210390178921375649819916026597531745330676147564711901920351386285247193593017509089991556823080426558791237516654365407886687523910584455103876790804536811310125687186998236704396068400364321359529670752511862743120759861744273379089499289283093348044659766769310847838993866251948964716517194763585272224597737596877326037124642870097556454559232627009814204574319575540567179814345451050669785691619831149559395823097854048787583427316948853297817233549425507257126748616502809083011088306577275217084472200938979831791741203511422620943865186088925923369751716625813483740310977190730784655224100582878649862272532558775884754563280215736246532091892787689546739490950788484457727115599265880821827147428005096726649008572941293989050121371088829924099804059944636616896258225874911280706867750100292091289392650092141088430941252230482446870342433682547831662184647435801725006110755257955312826840550099423112621272526949022769977033946263323491192881484973437338393881008074209370759564658560477567435035897572009701587776002417193859410302951965343375002370593081415227014255937594504602819461249152783797326702339505934591677228632793123243043641466146353851054573675350122439576606662856473837220795771040768738457215172424344342514462877243258168219227174103065579090266871018197048829896198537862167705237586015665218588697993322138779421788359286834188479253145366807574065749843064634256863721374047954558944665045186214349160238612491779543210883596625204133664473256973420320506714173416793389917383499906716298875389714778826393704227496493797902629771343829885833686019103774900808768963496545363824419144893855238730450178552700563832022713923346942527873834968571729629866480249264671503251765799901709381646177443243418450928607376603343854936504810138532558643730644320538599266225288019146347256637068270137579187941328748758890057724062877406088923740290858207277892825076969228474345689592737857831534008556379130985533429865998215768652062198277819893983039235094647314887307930435889369738004684629197146814745339458149842102133223079939296773373515910060428940797517424422263767853560451366972989163386336526387332003388813106014818682287906500237871406240030339190947369481475700054404922954752166039160003266191647493158733348392163294242913663366150689093135539563932990696157223142797535329964756919951336331954902797186873754385187426917929297795879754984974339796200908064798569976503247891053039327156818431282880372414159685641328331279854521871711327943302763794948481969167150200855200274783001345338773344565594995042777774163363164827532316050251487919298396508842197901608625960866420773953390176609255305769771671127232001020937159186601281841753066385775853949317746670056970121776475195586875279259988730787296733858624664380036834419102221945550741975543517947713737304265621053695134883714712672805765945932993734333253797334459433947505732430322234623492717211004005040892490095229747119741126793705568849772630221068372019454717669143105424491960958990943618796680387525398807460496680969832424556618575925045668222539029136774388813101012831729006713013079399205000419232482321284661899954278754143413505189491941389614169963653425926908473727188285793736517922549317325684445894958305152172292685034954135624285488069821803004985498357853978326168359651060168987967248818995249340787963627609554126424322075135237837382849847416139775906312925678956674191642397369956013463510955327461429041308385688549192155252616204970583510455909198863211712442985213934247382410408396811391009095113670010804332551638818345874399064191759480039310815952119810152967536989276786393003521664638720881697321490981113080584435004975314760437879979769895433501022658192499739623455352448413071001635764407366508166620578827849225123588491807823625587689645981044796555472875779872279211668494924851865678277061846464911810704450548187784539494181044525415866086425909465259103277420790698554415092454696513394140942429123494657418317326450528821057691550771802510430509066931251390561306345802170119428332501482979918754960082067963781524312178215496132838460532740370558377440852543116340193072080202417600153124181443775560446576147100791198111165075371882190682725406631011875602773103935932913196597849173691635755690661781851532824577617095840104738716088727997261082308501022152163614060928406925598567855818658952328367075989137515055798880140862244791003237119108941568481095002955806937973569979132121909539777409905566859920878910078777267356034646213791667785517070375160424000837424990813559042298421062017183561169540632712396704936256178004687854636307238040043210624507420395591802551606629177286603875001542700205451851925141929995952374855891271007534587962069786847209866645158742083975031851475391832294693855324251835053504654084834377668493101976180499126770938284662507835719503668158453157190590727881324587738597692022135888786309298823439881604988489497106605435716402230062839766318268937920602542264344532859513209088071333325040579747445131605512380464643737336772969735638239590523112651634941932263972063874453469221606426409689753640617901048853080555771562314327732421401475919609871106516166600569226420743707941159583660734090856608503737077690527471342380941896780101075193477638703562922194091167314760732831621943017300097266398100916318430608446653019220824090332156749258044797215035030439621584526577219542940422734710396953664682885221500942787508899687606237132266873518569163749035111199876687424377717908933272411265344654148918095168035089460420275463599763814121376801903938042962168885122568628364213039768249330966874077344760308485032806770221528343210787065544079451793724594710920613719534900939848770608265689440780832567525749653030200843250406908914631331916594312498817391212476532690004073627155043705816925593478883809350952627884489755019111695418439447336731256872396077407422696763613551943433444730852400761305426756675427300375835611572013278431591870057786202810036146910544828967770471648393348703898365567770979108036378672170090361626568418273814040862816973401280297966954508769689767209486784528533024287563683935248411287050433446453050322953108747672699398937744023472292746290127484615955906222293276963110139353622122365914382314603653639925029283795748445834104596257644350305057451679598999652491764352453433010535383771914574993080793026139294501097148177574115986565670854879387644756936637438300671688610595467076737652919423202067480646462440219554345418203264043734490696490340056474549630541837885908759694319269302853579758466193484356167715671207667892069310460792765651948130595645521188184678715860025723512225935759690539128350608694937001229785258510006704938257647211329029137067559780713181921414663952984269528957493300654839956298186328510766247952582199156870151176906446015305486588275745777361519089652126539729693682044934744250571706316093306078067579239260552156996582745159482267232436507929171023982725979638689036992437363806155119875175733885228666278185952119308197982019000654585083726451168450164939535016824740622875629051457518477553820217021440112593570193245457872908021715732498721990004011604450245344687475137206606360731370474554554375813191490102140114978291791577986431967982068143631498433030947725420247520809222981534414944919041397042417753749076059599736473990028626999537441431518622040062951512491605485662365692416582346804373470685012593804949042409404421322213100291176805441911526500015388722373539484598943920064207763142399305484682029862636184308799066827998741781580791426483802190624254030021954037643894690649910426878683048708741661843068340690362722077132253688476179636072881241119748196565183957283774502334580357758434296082310140699134743826691171976019512668935836035921818460353108833363419711603988607213677358793309354419197124572420984952082532054237955501706514938474558164652938576892439267034205965466227977249095772445748650518738771504705139614845424279200270057611735899911270733350511674062219368347738660126792791251450745886298649171179364822259291536687791448826539938880380963788767080035075232630758509294804146935206283726293066960327152831250076477537005969546653918282642503056000777018914617503278613971013304054540330568238581555581486518185814319374407162466702430799322284619903691225858428463640880424720509741322144867780002829994350306948314790876338149251644402266138626023933254159173112038258696714003897108248772974743442005377639567098314064118165366944210481118799294916638121504803605699457743657901746504781343110764188318372060298068787447161375368513603973347310909696439703359586536967109154350154292664501341256624912081068363302619326474602471130432452723381183964358262705640997978819977768063232975554702606770361072782599096739163747761099696614603262638439731022042778845980550593580667547606715983217962087336394542064213025399509883646334925354010086924507064685072521322110580834304160696019163848945311582367014362027619059667855484688371246029639570574585634424073601735998097861465070050254555337451597146319232583773814718027257113033197044363289800254305319656402250998574663365452951605516983496761455543711790923939617544974050054724671393251403918413836807677283821093318311050653927603021830307228175242349758462758878508427710388003649991125216185165426973016776275189206541053775618120042796089082994899821666771373281712599260246753178307156090906793493747572907656572085302991414561335870056430383127695980124511146598149984132956122023133971963392883386184740750645560342143870710378565453546616445494031610439957567538768989212609511852398021215548538308752633320746642392550719189717658340256833933854873274942947113639024636965051036334093375137769708506315777220656020777757247570094991022292472077464414866222855369376673047163796637990719416552822366649940149995426382017255985054692889668158957618749995887751848702186415819400759892883834686546836985903726841925345248697667506142531121533197426251316041173707172612340997201890750609506046186823526173505989669223606417720751885665931887686000819840399271108763590565944501842765359930117179628939315549383530145269214204661171095745452456308478840080686018627322388919215110087024251958618458015239504489835870805667766698474469703118670450565843275856075711776700870105703291891153254411396796509471329417433160683486753467226918826346576191018163423734804002675894967257637335733791030975658604464864093897953788212503640150897970881863619802187743669361873236973959941305758859271205554500922815629689985752335152838360411474558030248686931620023630226369493382442513084697232164406327990713926004911526627418773451543068684048872596053246103866167517518765251882704174862873657471449563006343773051715991126595346172227352172516561159988937805120971985124234703689275426747567883717087729475079726953744998440080488812435147060273558553254810319304794355780834395459786307900355745199645784359064127770958643637030122396102596983532478802719748405892932492516820744222743736802871306797643462971272646599502283391551278364562520164005647268779918238023010238251483430971883131693115251041003867786421647744290410980808638726384732720655774790169167856476728475614810104456194507687591549413984138384926248568795180810543370199026965200623137913915156587122340362432546803956379486674970430119623204002824169964849076537338917072500268367548284472972980537492081079595659103432499942687097599833730297283879996715963464601751410098088090900394620543413886770555121923624521501575957048544063260352890259797704028485506604288334762773245190816941072494954533087416615431805354067284145143559882800967894445103041334017518966066567986187247727156467696550523740756936452951837433220675739649626308189962700080883329607005091086527449918338365479781456719231045080858431772294616593372688393054870193303978123368960575079246994198908310266283278493013134234673668688445088062360005092706579983822386437758409597359562396268811013255119568395345363874626879129528526100058967607477935577598016351318094512283221639527916193211125432373891366213775213988800927266552555440601327533291284807270280326489983795893949078261019103943187044761615041037482845738353861331877552050124558786467578861412710572863860056019997462676185387811309459478175714308236880308221583078353026196574668387420261531359635125719152960313031862927288088522298331280771506588053665764660594687429208872861725150655109586041263770247827269901403589465023667988143193171430025895305740483504640165005598969220098178681546445577280074481860970430556388082732598849084368589096180301821858339020428478656904685857206748098502944493344346624928293087975127879944784143135931728249583529122016688196959924539300963601398877074988861706674588333649107736756335274092926981485529296527673212018616649764515058316853013115685190092844023556173415561706560430056589066425267016210161244816176147124731457934354194869614059431646300916435005190492336889633031264547370360850558740783836455623812619037548207918786860915466967856364095945975620721783016762420104258139933927763603177631280889546475041371951973337189345929225443195324835118907524032214514314040611762794300298766757030039281451760350084176320091145298486795203282192393004241689331012563024472552959760780276039668348965456202010843879624260646889705426145872565463626825802951770360480962986417979597002709996184249383058793238798945809736511412803553001995841936229420463153669126488859242600723861656670097030761843107783622410929500506749515771223710697709371184311774219317642028938621223461360766681189252516553147228931829243384347347276038641853197017250381208961200298313358906796413815975842517910672950939239588523505058601470381059096370298099393149068241001059440623769201774831927281629926207871925221838754373226247997045761221091756550668616436898109854773133050629563739364018279194415071781421657484462324025723621282488172521513839223327183395783870651635243963102433448858107454577016707572660719404158555917441958379983217641603094254478096887222002372444794602782751483800684173723601593920303171867134720362213506281278368946805673815410093100626552339052170412273997776712952984028004892939986241295877287880239210130232761555234263491156898983044588656053229476498917739686513335753245356027153358413781888320451056669510641812489380230983841942497582776223095096626685334802267740127677437823707408038110461087662803543300041192122269439935762910342512619439074451210509045238796206616935573479151439827148734585057905246655078071924802837815308075311291040947741136049327759398536323108407858587715902877692902798370743179176276435013203160767801683158406491553753535011538027836768688152671278819193152168535375463472132853522972136224851836046071322268677685274736686998282940110995973255081472006380363681926786531868853953994926421917256802259922573358214802657179772744294501509957942899309832836051370649971663630172482686049785539104813398418368325970485463951481432205620061968535370209868787509052071179125491731015631533036138568509647225300585308088645324698963308599152701041649818609099645106945993700884236176924883489779155166668835428925976170552455348318229635734825261814271433862676752925322850175400329783640271430990047821938079077681628447205503389222617237987923728372157659742385126985154753113918032807406765186311625322863691040855149797183303024467583414162266168634068410644349683332303431006064424447015717594411909046048711406158632631662219485201646065424237154967284424781745691698123316188076146874687260997129596997259809311704909612101968858753123876079343497259955364997135629521384827276663308257695862510213224410769338195523543833767735230398188851692849879563666204798753449247637212259182244272285673956177071033567130602580596914629277167176506509962391179391537723379256876113930169049802018659032104751758027011273505748668244497402815536186563043428404729110364078480826819307029370978981994726753341709918762462784124980341974971027112216723867686933197516316893927568263807304872302434386454622748458403788853512674850086590384987886456049070714320604745410059820957644289269811210477699938067496120830157343272996187325818889561807910663879070888698742814965382042498530548192667433683508665958489320761655722018417526166989951469649578006827962414864522279956193613308808776676900111242345356720057413698265495064078512957802500870562931830074274202881767946724296202479751369145152946337858174881775047918807259799291725073185781614082957937008112556501532600245319501168517054295411557329470062203276987531558805171091183740579232266099553496240497279577486516399114972978638929139435043628402273725329869755915294526559469356931018563923214712979399045211680240930808196698470035911883657988055048708310600026427751979653245231280704965477817335985343912062945784229012705744957093808807122627880852864690503707988647067122915644141379918620239195457736016755994878472160153076731377858420019689125104842582699551118376181617084063034130368614751361145975072281221317329120383079151943087602792351920435043718680305393635662294323791716071050597920550064273943143026752441236794531925079137718206696688642374675224267342422071363351675218334209503226459786402281569295315203329444571709194559008383061342145707567348704106668533922829350928302002230983588359228875195040610507214196428592279052439860828581169100547291289440422504903413499645616002588872827272501635312557690637050969776799145164980368848434421600657630776923010361976583129430177525080203023916311049981361274204552882950251806193283149013160126986983344431397417486648142887589537646833904289629729786687332581934763919922335160846364051905333363039977843009870999491111009403877173083608614257726798146383753012029280362626149720567439686317687623487341189906169018020461617036022745369326880620446489134411393825657403648477362573592031855681766668820778937388632850186987317379635705987199696298805866741858651358657608079177246037595275649536037058788867237166229661063183202797118839605253774501856277459510745850527076030204166615357512845576493152978206669659023532779460104750606684295614691410730674606019622539396393461348044296343755416858918207496157476719475716043488526720650338546453155878365631538931139062810817228869493277169350335743249477846145196436304521377475722004983763078465138988447369293691417496072830299798326055633225060616746322415125353692412361287079199144047828780215165858926014141492737605517955596092359660816858621120962734648151287566756645620793873999277377202632447982347325731448935431543593688855337186900406697734370878743878878064367894122610405897648614776433958347757602860498565157248897369752802323806425301645500694075539500843790031510879112251662178483670758115702385031202560788725786380214254053427501269369227689388775391097877890273231822878024461027513010080631144795642411816377641778735079378831351335287049362471500081464603068416573151816497833142113225501724631029841387257655827037039641125304165098677984923397590587033455285303521682923159748466806755735560477454532725731459556796768095684400952660268158063752887820204018955176778581915676976424297167948300901989122573917607551404429749609325853437547261359079953200841403345471375147969435229053619452681350958455131107924397729582905848536376306687630910719682601009785794050370381920305882458128241702080104386955767055727384771875020475753316210373469751210936522564138095055330253900776873085375594119546712384173122026966085237719652954181605546224360955290425269910278070843479318214730363666453054458493583912641378594520104097325147305824369256329649791888036567876576663989624097073808845015370681767253289303273030734818596968170083445542391272246624367181411638492069817469403358484596429737918049859398758827421041535441105606067492799585143194179536853208251122457649839472677414195736209243144876446785280454915947183852229080114783682409158850321912376891362319978414593902305989916847559661154419108287618793586486891697960781905579251909328773469020099812336396176277348656104898469855598278753510114484759576946534295745560493769953453840672615515719782131181445591632398590261360583595782796424748334106282966743539359525238023641649761842603294136515004953890420978953987592857205552552729402899967102322909724534816571853680410465707551037465591551471313796151363858185533236090899382239658160823932291659401031653573004579205459271885601740478100155633626889878095546308543960827985289723106530140736839843920954327735708410327596286945263135817177773786353708599868062247834918453950592562308542728583566828423849752548532990225335744907138310062090624942984948324055102259800903389695224889181523109308712679037694046410590734649706430690680272974510348707713100858041592938254609737416194921702021579389659621282323187825906280889668212952866770009606314433650854322334297017901562480512239963198710155471721305031792807814857024299861986596167361602513648667164606266834227249790378429363515609380013765991150707194402070791013135939631046855702041605959920230522998891004214288937958924515494657586077104672642274971231680717235288125660289288416953621732054441371995361924163685091628460071379906579910151451501401491599957709153222959962369118373211943585526664134791871943981757842548031991570288642323033084863809476405243595846771776191377723492221526498268332540393023261190322587196407328611231258186054139310312073404264787479973989249753028906026518525051343445888914420576378732275058654688666338364209706024279601629629776932851160339609233822502340465864593125695085797016260716258450724961569304782752986589962392549170562839762466954135143661314678414005663726607029936879661487835603681912297371192552561655842415620068285906133234503546355149781435690653599873677782997259872900061952474778217412699565751237684318117444600706363721248166190000793597364648966585651352694136634026612851913997236718702129725002673888589899967898719828032948972590743124000103667487730264877725759551107126236236857212074490553835407552718439386506709781534990960945923663154495802373969077915422489483949631430659898914805009018797619038741721025787869839127942176495768841987167365471805333069108380344057519942107887957534581736216289452798582406412624337106517506236280188181061330077200973646664376320429696993550932401389920256704129099740983371198706418019924893544267414255565271426472847454570492769807176450762090863855238736721965705006669643234386389654977419201610202465627968557190081723894230123718070490519125691533679550755738912012347504772901906404833455257320899904195666376219403864583622437023715091627230809163650262737760484217275985650833071991642511748010792243819290010001903154618522665997843969700570129479293368229495055625160420276059860137344313892901258408459302366569275184216893054611023111754108714211672208741059370063078842288773368062512642818936489248004369050510799309710739144979169981436190455927073193243439021628758036277157000051454602738854759848460568794422705806174222705800236297713145172577762413499504201207993761238930998113149694368119489388637087242470657371960780673964153362519097493915165189284463332572977158309423249410711281529472133852334508515519701408220272411894894394759913349533834813129087074254829439404388324861684530040162135030523066533613038951211982038327598480986823209437838559069691603223296999072897867048573000014755293489966591897173660811228759280883722241497148042428738247174133041399775465608697687625963501251671137847813958100848220733231218136637248839166708416139722342193948239287925295784407844681024935160236121075911986834914401775370580127061340227435794483639579174315864122897848975666019248625850267582701035416835924917772413544762356815456608241305540161335948502792627190277901718217877581228134383333717827387531841509459213749663818571909719960059666524116742897834162035027907149862782319498151036741457078315028649010482939145372153223313559818957996064003243884622866745221087110516029095446788312435347259463401705276630635509477663572783647547590487921866811833161098090090206680392505535879051064729721636903591564806183386799389760796411034247975309156558511239365626146723167036133740986732298207152533533316263158375087957875447388814909163272359006381172044042327392859269140146089667951993724944027380521006588503777523196689132139482040682360529418124356255157086767213108275908551879192377076703384685577587513587308647023265595793182488491880820892826253386926483452059705966822349972636326394509387730701848106031480833830367662898339971600574716046723225890991255559845562570567000658167694336687662836763269198151061987364392265685251370291293079469003531620281259389380103106862841387340418494750005326834978047623884506111016338428120686693153296482075232620402663195753904434395073165190001181965433556903755959104363634983255948280853554644697125993604349126636123168013638427773388141671436861601179399930549765367276033874158279946849659709818501200514304565215950278352421105972852833776975163904710329649006411863379689911024580197986664179064299147639616034980547607569532640264975881710504149082805800541315314185423674550369296680323133037984224032117159905671632604337237615731875498136491581252774651810666597882357094799031193089058965945156859496975622198970976766950171041646069495656862322388407840599210891005387464977714727802936742155942346826591493349788203446806923384709669390861673902084044279527496959640015865273821291076404784786407652276105057394031483169465775620861252801464512852662355940868552008181371863047429276864930922897282887977327519841805772580019872832586807571066530197779245374402806732506321789015668649989935385438493027631297536085565460390902624563586752738228154292016560714503253284802869437788629480102359866252815487825868182221523802422323539620590683225792451063881410269605823397143046482923803426590881430901973969933988561793170826572181892201454086471021664690183485669726967250463379053919750206353167373679911308589977915515971087393369647787957437123652581016364640378481395319031355998302133191300316303331010035592911728635431942390164125308736234128508540286326630993280498042165888170246046195469169336910721730121367017768821614476102896213135904063893642423478836301848417437591992833659263779390813304502421515598854333863346653542166981296427507732946846051332851922765440191808173887421213025352225536689204820388246687841461163478487668131336614488051358056890372566284978709054592378560394205036128170809229006544622505733620087528499961207709142247818025540053666729423777567125835886956631889091276618542473857595191322939621730298966376697655853099714740002957824213979971213374108356210061620657275962816276189762764025185458920357236648653301972373671562516505051406103099600900231490308991538552201184466396622065712120216076144485563297008881413302659398342347707937117395355139799752137714281047724880031847280409174264095315761984408276485639652856054782216097842663087822911803166273779063184259957153992595201101917637340771940504510315374441922395433261216310416485890445731541860557903243102583471382390664021559971115796743549067906307201656956622586330909032191108480182479315383486179218343573600042593622282329840108582485745083157140665169133399251612290096357573463248070727717423525424724719687883415045721994658576025739168210618735081787975840287122442554140445493913202098619118399039736902235882125687194735714778040407599545057585833709460494919935274115106123481489699270629867047932510445869554667166752214430709368473332668909208998889659533209215559885506390863019460557596354125433197771955800327348684698191237579301239318590290104909058201196043638501725260438595905569233871855945525311953521306606471520549769195766446806364290889699029276730021200760197429943169552744581295178062345135594679646682155041981558714956859705457926288371218521126432860189399873063981792890008463755747272019870045995802283152308157336460069821441333236699941431282488345259799556812468522998261596375596521685706333237692666683416503713055490760024992112188465099017520955514825340588129707586271265342956043899959747771094094220240166779471003101126078762433483739411524864846930853980920872616967659099693199429689624101620509423238384338928151272705930645389554122125030029899363737254987842799028401762412636260798498195539646393316017574306105229530417340074907530832055937879255290609932708210821717535559356768423653789472665089077099321962617027952953119871441454213132554919965117360103339602318242669509312963712514121623570327852566833711024575200581168916776747071742257030752049746420401565915323005794477280664240218760256566601805455098861429184447256516394705512204208062725248806767517552378474928281214309997276602488211942147502362335381414552334423858781668676379442544617573478841953889764400621691357309298760698329130337361966089193539166349635831873848878304630266565761706688443903393103601796283861327038631697686141317113722949385069598494177061750400510135063564618832732593590305362263761186704036133187081708010284334432470471191821030120350101699003704134736563225772448214129184249123472105378628406638653372153771864261339987776605701798541081007593542524627875696186521667740985899793684332736680337708887188550224392575084213777364813652496636482122335047324661403416192906697206968255770466531056142963759435662038539787299678846246049767879505734400533904689544246811501768184142141065365738709355230735489202988136469094109152535683840701218831129550835847060733190353592363518309928965310012994723994410421837235898544509503412883010818549129815085319373821899781951194084065427165287365864412661201704060520139468196845990601074139686243100603879080607612235221631629919762049105129851986983595269407055437980798015030398468586213852204874735724291832762928767881306381577808549698841108495585719865729665920391907887497126748268800654611933943746305838652211052707342804733666707295357869789375447986896852768669010991085632283480162315889949969428180643416704462875639434343351291266759660199779154717173310988063032840599265591555774012567056202205217486513177516669357031120506141578512104458800329606927356215740769149874524964607823377655268356347974716969133844361681855609387878927658434373762865911575591665660576216821251240328160826625127728434594117216622326928309459391619288129629251242751982461070881872481133080460250637623663564631584513917999453460313216145793102260526561745724405847782480040239357754895930914935946170379756763681808374637558646853137684458421108697320330095920600617484708592302642547151645446220557887280697509201815130954400773789060702269618010576649845933634499911741515864732333761894024561393910530706166702343733453358937605979201916079030210917932024998397973278531882560770426160820873479179704903349352375750427733766978640065559072634222228740197725291969892833149163303308050039134470315912516711133982349853152032755293808773764111237349866912402378416553809844908760673945287815251044278789825549541963770017477246195710493458098908563097792580786369584827570312307974017732671977189773187184683709312642897694465980178845323588446687783725877010711570546920865107581654668557160044855151834263524662888058187075455976945032157353839103768178699450684229792178478494525569554184086471085214950694453385232858730891078604301600147378248144279885812703373006077587425850977359817375664947034232013638502121366981942792311081151682175206398057832756777620811563206623872085615298899715435735045212566890309029159160832136112828736830787504550175117691840980730839123539174112233551308977141704588958017885928017713483241941056146159555058957858738425901057919719006282490843083654245358131473837433548598557726711642326737505395237357330260262462040065598948769403765146181049607032928777053689478081119385696236618189255208944372201145294966177448237457269304503586017033146387326324439799785901174001422987294732474389706456697195053250270809294083910516463638161793393211085895996526250371296045377208881170966508789550925347981642406132315725775174776848856386575107201466017623257641258914239290467868700355974031366008440326086487828643873783853225644301419835519826812824478032207588598766728886434517344602700971869546906529876850024315511509793783607431327498559489357103717852540405644946536882178959416840893559167694802825015072329446120634732128392542163200425452404064930301354565275130176641935147602784668818010093323754018042509952348425643817086840870189754289032190054173906729270070383148125047398320852723470073683941489346937832079063282788533131539246610925458611936176814355237819759996968094093662866801807273832707479969636875378223892935013191548079797801609133056408191983887462792974871921965226419391916106032657282480588752245940937096671183583339673738910875739398048108680775717681579582246657932988934139934982290750851385750172310248259911838538290930209717830427140045733453267032202682709129808642472198430583750809504484008303160304521319508772311711448649997284256178750524262573437208856386952727659684121386607629799984343701196945290567821233419381489717321519407053552060451788199093653960918592332733966389653878295366922526393137326310233409543793553571143474601525638340194147386336767387099812210073005322602306557715882368518075147193139300320209138771749141469695430707628390946396363137021476775664171188709885913228950465186826170898789465398966654063276730711677008070788164145545384862676034420556193821950519042792731989967449239663883041215158645306370641800911352840935158708651261742242467438903649199455960823221195943255357255895720143723750129641224384210170938326189128375407767165044461121418652885969388388038053445797873416405635757981883989759374374866076098471976361417612512723629284599188404532884714622936604630390800964731477398972733668515853661665402316706384510113380538785497624068524558318485013274019991960339872738026824014985992586364549132022883853870852000822439885240891729922517677437456878484346922169866861639059582073959051417242806495817512135111343709612170014621488466006251189844478629255077967877451540977129490373190449698228646198191533754967926936494134129020005900093704699946477076821071610903776891947822873177438117331194716787862076884870126598068064520203916249605681677437138652575830966873724059696518691965607062624414497998994363446098330208145379763617570366644183673358000695513918350076381623194693540258886407661802954091164643034897475758330652032557009459724931172778405429252415050167319755326689747099419793719974335824256611905347892092535899234037227618771638770901168077563040205167487564287178547238572228135776090968699239875597528194781201389250855097491954868110837178039024007711939631606242476394807542743881556319637788670950983315844233477352913247757770425841281381781441590743362013799554969988184431910968884523098000278475001918104061795358094566494183819892155813082513580041162508509830180982364610020698415666670401446047208211132836003988906628892105107036867989401828454568012041228140134591060464210715017292929117454473240659744945053943801902094597882580793436876714249325128271708289346745030777287451412386591761082986517442446183992241316637974312608054332276360951041468835442721254654320762558460025429166185886197340925981981123661946542431296430802205381049362972598490353543175503930163811177918383413762901981127975865298276187563220637308139493885394809996482199171480096434571238689775760156086079462986339852315047328748278875665142046194909887199544112995189289606443173445970687413257055936126574099284039882396330464987820565934713334706056686012796880088635337923876556205517857307530637983719352075727523249353705499833823355120328152033733532232773745313138805727989762761179127937061680784075148922253278411870825308836166811113427498274193904022946838532067577325513735392637571235179327239388522281375366771086890990239424954270901686329667288594633802034448593509584736018083299344520739645603692373530205331373975984533754091375704934251012904152859563302820199861142402864337287047989490455388304271541828395215986601478691184570285139622396552911123315351830861268330991452918521140954767508373121279129237886774066589975914758065066812535896512329353160407788240123321461197717515194217661800305199313444221395634920504811475729031663428966943143656278671395046457545493468329752479596657849737801058611109723846858779962535150772519664547163280491651772472110141581346687147828620928848480193878422437005677465754916222623398027069889606670906372555353747211824866926915434673292166764535306970356983826166385292766917834879656293826468156551091806166162293657707087066603670086987019628605184117887123070365870009299369361355856493704087580547382488444443031630885312524180949081015786512429727389847176662113466567542782774130543926902106842120156492094729668907793666610491939951401157726450998083890614647720487257366053582973270264991214978627950050741058576989635691458553128387802199502897143336573912140348772603359943939731043971937348797327402316372072657391028609842392375792334202244004327931058281247146866535695838288565498797118005963359013395669162907129550835950446387000921276740043225358410170536446913060923289623312457772600667337308507066054179838599347849170818969857544116197409739830670707330253456336937935710910085485350929933827309768183368883027422057129873404391833544495670110962678412985162990135132917359046185652334136677883626333409837021518996660065748164893109604148416454816258267778881056844105672551510688891588669375566147784553350071656123861986350464534125002022003880923491705928529721505893607064559980837100239963481033021068933499788635717721792416279416246719863856473676517108313641689097429533633706951909863125208222211132782683944626102696324632483124187981945594720331623730880010806486727349511811656524023986971003334606263218866683394997079240616320783787378515837229084630819039877459559685603502071339376082288447182485747295243943385782395633793640749455793001538202092019744854606028522687400130474840935770712371362512983313585806527780004135253287439556142375420216446905597837944771173939408167627328864533746263402671192988911552554284694837079888620985730462538137746180255524589539369785116854303114874951675841000420676172177558849692287897715487369451950275499436489789692571974911187744154592137693471002899648249324709744265909873190307866327194952442069899017955396829205249832870369692231896748339657819763290466176301009448148974657974723547589156626330405374890157124699824208457332133988073162758815511454611785417019736554764569028834572537140516572292599629718571730936524399633283086574499394823076173998004295620798300118915047973596164382795674090209258879814656301165660631523437179332754988981605948794772945113211405063025435679622097549272651656377472950310740558630483434334476948771844026961010699469182464994071399263512349263301893361090970555600116097425052611055776403263259484927863633376206543690786047840048454307356504648832076215058670479700640494972750781589459542307850482670880132406287067492041194637712790774344649450617662819530081749005133274367064786566567924763653074497272598588594168986786430066774717646656730027526280085251971034751084215729588672647023094907755520173480723752431625014711792613965109302152079409111370648965648590201061581286246547231330843329493077766244948289370309142587459408825233722153200071931903849276083524185635756844663809326380948171821365835033823674688328597890944906800708341860815036109656131347656904134971528793017851887779164559942606677754605003823837790220039008310706357976366563410760581392137898198282138340244808755231691450229824686678893693119148205646867552221741718347256461862290910388942022343212779695995464165951866844241623108733211277184103784944030642077614100460740107836817821124140259684199811930873849985150003289114785629335941395610915003395628246764457893677689310895073870525839450087958065496512027487853708687286243083931399224897326810915921342220119155922821531481094312766149335364760157187174813217965569498138977751147880665612249159480625591038414080029315833479072803294998538709433657235685258629577783695318047979967024107479009821617414202662800325245867526995544779939948385314350920360585325857767007364111835321780052696266701466981251578235175970688223217450906326345344340562335251293255134630412004235423565875263744240573244881591480716743446000522546866061716802132033691869375426319804671117802674582743745279337415425676012734465441821272956441629204747658326952291727788187786691029638791051724823136980939298392019408994323083261437907378030439300959624142509976967696251521070414418151856158877197997630923480598700610844697059233092477328076387914628407146570610787488197600452076306798154714555008316409972224638250415277351117183955704671551449848400852412830284229131212523720483671348866625911601324654193100396619739802265284599550061159705425105440862539388356583703948916268568446359865703750034155174836428892079352541086566760552090589668683463102401292064633546422790650467187963318904003179678403033904851313312773452609391935303266020904991462361647875665391785836594837982889807013883920243807714634970823976356820885760422557523169607276781823088932730030350274042651984939420011743995207868113462983588765359820782996652444546638320167137472094422249310158922254734830799626765407141659248371988971420048530100249059589615536141305994345814034157871899244758493523361489630394847365571502931071341223182339842274375959309922593252026092115448110149254534796815990167709801001484099437464466567121728478924053871779523039719225310566535518897513411529156028293351800587475193908130671434746734010066694158744788277495825502534371352041916984837108890381552723061006218898014282290966336419328747919015762021002562532290383779926907590846013759879616365210120956898971049701997939269957755462890655699608352008020732723668832045906620251926595104871714623480874336583578238484575536470638504703341856890982582919415971948418346097180906266806366068230945591377933676051118553985140507460229998998550786177555403274678488269321699023454231564545096364304472970995136314364841816385135499770198531809068603223186251311522095430871299614907471177710930503302686144828822880883215768573477350031453450614126114377515842219474801113240655662941514901167258735524340789399129587960963350016921103812617931690918892826116081906576494296525886667802289147551444837306536316648043589598389787163692891363625768678515156540763130387164172873008897717269885803832568991308098844462441195033822013692713386601355841122914968715254678569930300810833508849931078305896457146242647343371803248690036877196180182989487946953512742128516899403130399159937910712800363239206429505082398118093714373863498203571656633208576111417986605378893970216403517503708479349622788912644324820420742247012069191758337877188557603705984794440050857343027233038330114199845950366679139649351654282192674373331782801580749898310700098253188533864790618221552486190432786711020527745948569559716426337660929346049808643929586441489611446369057072203783920783376872885379765098783654942385408314569511791974558254132109608392629601439796049272546902584150209770558719786707522028956028984595379366104302611299458863219834546072979918724533737531169074230383864511485617841649489941144164361518431948989488376590590051355204064577231392549802895465124258157164919697426764509194377177324970679847493240387988100926811076270965262506549569448735751591620234868198883415463298222131816758519840705345749677072325005025812510590311315975055283562369077998023427540233552225334798401783171750755065093425252102482702944138064291646994141803400328374868133817095583882064663041106680486290853842362835046177197195275140786072280212543311711104261496869935076768189424295462095849611759771613847427775644892310907135159317706451484550166795129965149832477977213601662929969006379029525677040648720640925314784458756010334839018571812187880714266080763948930225114064481676240132283559702080671359051980572016027940097610579660078442772778193753894384355075769736738574657631561504956677617746106120944149272260781774440091543774276932338465412890912664159952900642662739079282205530064248493375862982313008966606266042341627490560901813414779269494977560765416157863089444588289055602906597545346982400725387690885008406091246143845787199645435523496868538417310944735973115132344602370131080579512389012588612988912440523716843423436818383744642978937625634454656452497074542103668896843695325824989116948727731230534701947492900735436197305927373196161134993748425176435094651268308899718934056777248497133099616434262792508936653272582561350159541394881909471080054679996424513377272280562099676974881383056753164504340058958810398370808890082556342285151522994925763655065722918890134632906822114195100711550817310202613360036540952172557701810359128196903774179564362238254759540356952670907196581587924688168436528290453763262631398523207976811742791103917785214661573583851325913825106064692178323551406259482734075753017346196196053547594864682609032082382280746286029891326199066866336682026711647628028297189328924977162163418032833378656289147843631829279531638889040449454919983968747134857251627929686900659544315677664937977816073356453921578738413784742665512109705917785951801570499839086394403449346579254488522969191646535591980919920416325363892558534373393595499269538609787336266312112992989085923902207314319445733615378553371855111598952266661797892832839142916795577387434663741684923986689561923868544522918869631155901564291694562159557970073442405826771491695933156500505945356078479406918474308411754693602665058812628620449858245131953350999534791611141097457582312642010540953942968314792084904998421212090960238141784032787642800688073894017779032627908820934495250308345208327731344205374053549249193637385972836610920802797110735267099878494416405182194952152967955135548773831557873869274446598498037490520750722072430161008103778507684142567435621028683286820506084109655931910255775186913189260315937232220487457858650990603845176315330107605084650486725148417455043905597190651851976264103057484476538872366845398569003617909532837271438393046835577322076439968215568533940461962120665037563927576223333500671289306410282310299235195315008546625115185549432891307692343991544620123413493427689907420485201393942836554480004966464436456296380210880367897095817667412745418301566378102006861059602452755936061791440379487963961546046059834936070936041054611489901581436978999909024650316523809591468938818412771165777647699345713919081554160162507706330373984791315602027468116295901936416812973487458835201305147224530231197587946608057715966046356029174379423685539566008534846981411021419621746904167516753948993207572605831255046384999338214506345754539095514835714822917174567968010205204838051210560042428829545134020395832436475368316155037215714729294012537062773892845024248034036722789815284109416754605344138251468383916717362576320153239041217105381075962036994397607457209239282236637286343684611421541561159788302983973186463169283280929166608070130287479712709842998229329295979786091344762056291855341004345031346106560045562949966382728480533982801020517437135969763398410778385952659263656222359844514822230967534523656279995690128578074723082708051804957160010305034153542837044111638635783222216375454208117034545385335195854920009664467778196079752555889634460804746195351383227140465198921146005144339163085239241212379016377300304671007121794566888807473318257168823037093851561040738654058040358327206209428674488971115526952269867817584596120826370605365634414397282656634305608961454989671051177399521398140741680285103641585952837903537369840382581372778958725420184992792652764729125300267149721075413176272963603716705925006261520004038239007730936366681797638201169319498316416989925440559176157501585215036617499606454620763641332561398590060565864975497216713330147886427462153832685464092045922898086950413126330195619956222710254930485664025518690387714459418490227998850935152410743580635806356233186551575494666427565275248016171941289611752253360672674707382292986375521992426634723502742499216060213700868742191235685029461402005893435326993980935887732715944066273717101627900900450207690525720844499869467381687946879206562070898592964676378353603401497504788182077479935334902555854126872055243904863951737942774836999922031388378481917021940066072391806575386247097729067208433847196710478464262609570660647039869590378708632484188604955830707760897751402021090883006664797459555443517583860412718806946604799743654417545752117808558533140258678329685310028968038342107618963327857879830530310417630185903465342776905318867219950626447941315292317503294279114186600032230165085124339147554340462465507301868514334440149917522388182106544925536336610808665533122895063381875932868637949141890762861822559442457652484505979670143164891132686851651173817394188714551571913847365949636443095802659182653536784734139450459332704258621025894776669437460729993499559141814075418044692429155324943090334924069239912325255252138714187510539534568016768591800647582173781095108848305092125985822376562776217580387000877544588677271868159907830630003426936418158926970014399783903351046163712520926878209409447728407824202158343365876312776875859246582452707245915354519596233261860854614351025173008337767588071092198759863237894853843791771755661126516330249081725565162808151091271445633006084223843499346027173299794512867519814858981070515024447325233307039691195246232563628687846021745090304184525197101187061720583055282351978775509119377936380485508392378776911497492429384219866754603525338040161813157568389220494657587439193756107069366262990289351878083896919986332484284126533889252702464867233843214806877459063241740747922953979458386123599273499009384342963944175459979166846054672437269188110296569219239738533797892878643618232312410899883898174083979883846353496493589648103972550799585166429894886649051929420783061603026219381862763121097766921827921913828921255177964864172011072960527530156800567819141418286347515519510862534546506700779123051393541136415032629466869856963779561679103951257745161267376401964186043251445937089325730290126143937729161524030792878372995661700091160324006468608668973816376082603181357619533267280267812116600872705227891945619935079122424229789235427818923492368292442767604516518742267550637827830183138355079152508644977432625943182774855762154335476626260255404187959657967614063368108702653262975335862033614027063606545790483490948361293040750188105969210894111061224664547694965735898231372353821573921465260107846472983137898375475990265514017867334035524333479393399417925503672090886770266795438630306249790622143993347897678702047131343785018502220362231790222274948881746898621124094165668733897353245429666792160109344843320989497188496224324537557912547101378725042946124293841333773285253886088409899440230078820299585126736410588484386369907879634972425865052274895104425271763738609694940179656067841819974925891869232669662182103001226578784628071261717858612753463245629765291179659988414150178261008951601938129366247513489687298585514520804792414750692726412158216497477605599184514324471803978940143009041708464685341546224824798118689743077813895714547737933387019309617738139014898566994942550648810988317936175936406759055290890869939813038506232094662294935371692146165131341508082202931808448730834761974763184333850487482930313838366984721137593195825526176030850749380158192338025988243213801468370185560881511104984207935227619216320177840851635871515841548247284338833636623750340811773157204789497897553455997956262778318591064240110214811604179198924358320825389257107873761784353699851680189296559604387093116846811110256176174182678195466654965521942484677220203336340851107260602568252006787769934288005476612034089358755432329075634801943601522764800629335037538538558714444268197033980992672718269008661811576330178366691694035885648419582787571906820132630935416485081185575034210704465635463073669332667035742783535926183046432620018439163373801372483963306718347779604193306215453699513197939467688223974449151605783026641377132174452866740454049166079248477646710155003426289654906258242882582678771937586171202641473053367258538749277189213847093220022035086450986813940763786110007258484286034930087129473375673514430165037979696275601514005187538182904939838616970187883199670811804652036294082248534004517466537104242775974638342193260687463615127701906118589014213159225501214295572566733203247692936536473212250949845506190080897132772480718963727098915142994452465954959738302083142627311460556335887847936932772436185815487711987962629759222055595249126978602412775327215866787899508519531928791432017717921395420791284504487424164313042452450460568266094915351994060545483527948582396856463891767620910060499936428802726262368532548907212908688712224286598227517857792516612847492626729511967560750918902398844583445585505379963872459322109155404784230370159630745789625888161220606192134799964134283435772985303025019750538038587337170383499354345031588447954147238116421798735688666187294087024812504555869800952640686573930806952498214798749278911913657972785680202195916196236711146071194892178158419490096115155919219898200043057915241566237155458057680029093982979403561147046980029541229398548433554350519311448037968373494966834455109706806161963556462092391397529200741983808181706060166754339049917458382781079288051372430351900367400219236648072281482760923007175843323405857647525267707655263516287932409348750803985338915163054469058780958545777993330626880829744746470600792220075223158609930558161882685805199059073015403783029430947983752606351438443241223802775736328030892474511535628925713829120025074755496565747002003853805492020993537983207949089372354756274148400723229104129009670382408228058530504067687727068590079574006344682656295219772547361875072845330411001928447872157860460155441820000242226961586326054212011644867459399417929178342200153610060116542503942687002586906437465496580953577607361048397966991685478444379282028291254089505798816910913125206867814718795426843148573507839758768024867983204496910708379259923503186186550426545829366490561800558630986910649044378896827044627445439486221725877732489236819682249490493143526873086557967365445736243510504381612706455781066588236715893245339398510745708245511022927742130689283569810065297110257584919399512183400181680894374218648914586412628210512705079328856797990410910266334111875948743790057860492282586993703695611220228780553887378692067557635038586430842253801769362457826869065404015437905750417073964156109223539122109386291972955169779020280217730915768558852044744348010473754922386884501135766067725621660018638731927503109400507799472170920260877426171503117408129587404817063314818743505626268260294242993462886493235472071618821094535367341834571479527046967324100423696425922843312117052029742646430534728362518497240909889689162080306966455724319724189395635115041833628151475233900565874251307259532943772652189875239313453856696594535846283807730260416875989395046127307134895130347970482134027348388932313122510359428998115418032404495615636165669702402646682551142293101163700007434793596020425998089921618400055349142548185825030767679402393896100068524637891899771623397890893988077953160160367286161721604591213933076948826797322244310089187600925554922796112071396769119291310074005237199647635144432037877207688752583605246998520440776766899509307201333687729398152457295698855311345864576755915784992323916113973621943744855371372625409204880726992022065142048434200212902158974409494840133764434545642608867274660236267091329572933125547715568654965546230834698779621091998611256412901595762990326386890739238178264772667722446091673442216532648039985545861976317130925217143372389450614650270653298316767482500510369489541777568913660942401567756148103306960491976783857415629483648905623923661182100467932035291343379224978705370601128146851993468410844002345653480159441715861192142617406850017977056252207824846968367463090107712507923608432242449910808040598423989405454001202331739459069397341648823992532977987604169340334076017626982396043426308104576105540283962049326538121193030295440448711020752994612056502829751888398823608384903632249227588677320350928457272877821545299829856525824362976201768567191151470292653977952682302494687364762070426832176001164735110498280808316584822101471659924692288491343414882849406263910027415956003375656700316585513628870132236004930985325151513182930925992007349395603335241853836879857703713029300161083577876210046697974903006859404184599265033683152273289218329914033614124340770955731516219613944587371566887064585759884006119709707784693067842483437692730034986385240522518985563039238736535586234136708775732295695940984873117256214168876572252767867075439855055301213882709356557204400029247973689381911982803566227210636818590192232194261632123502290513909397579463127352963305103782412982400287854325799079386595034702506914368425568098664175371101582913846643832174525512449802144341405990207628877296645245056105572384575833874750537229841168650098628930570710329377254235065201094413398735967476144765348386075457636208604513611159203198956256787503579034618741199110438940023246530342461729082203077810810429276519150343761180402511444038360072741449906106444171154447539896990177825634314420035472567468361498455098509072064746173953181985411641980761974563167421540940232812507739976285595089112862942555779767055945711500128758014032895224671941752632239668143650414132615215489732988906704589082062529106269457045255022768715262849924165107515112077635996295380499593193369383023177412241449898827168700647592151632434201356316890530594463904798474255694999572828631803709777694664286282926614510625222966036625785765205971322293125881753225950106721493103108198844568907858331045362755251168276916936063998289677077389637313668248027145831416302640663000365864751557297794750815152111546614407837869721979532830748680169754222292262824174584251978932159661213291943016635895710080294846072516360178101331069085256492676293081323881816908216791024967345821237466124706985138300596192178439843655385624761624263951231104463437488906403525835211341242220147990664536574197429020041663296315846652755085299959270649784798623160283775730572029931227318974114104159973145290070026132637929481944372169891900447369940053254017286557163807777050651648250420000727369242018336784079723945659179276648818602918633666958747651800985058345672740417547464269030588927078335007487390720260067299710785721216989668308453678348696800470953819339837874689285672333105270534980010827948473888197621141596879925137761753363259434850656941293639780943921566188418772096619892567901312303200196169659523444308688192698498462844143586821895784486221758993007997697114051426834910221171031763352776692830087953789645025375650993573046514313211844993873927364206656518771384051091645042218268678891105130650594220230236919589584985062893027738953466809162901456647061801808152913251794357396483138367220281654138112647842467647705942936006773160761136918784916806258537231907280094343545935443310949547639016547689361923455023135324586330280649729701032503251849994002214217656763613612689940876725107592974786464678370005635447397166140062479592284655490350021068348896423265354932831012946827768014302809280208710120305347530957759991667412299589795640304783190249636135097383012085295761552784948615641766246799665591838824670974652997734240736078678696295091390944163909994885166304371819114988272466606994895998305531421848235096661390778601463737953539701177930224341330088849672726357671372075385438069548946060070130384635793192860725964417178545847305915132780679037768089793635984918891806144194534674122593238306271633288864729904496996564519185000591866408921015459981598095837466231476075763075474937740532084679333179880596688778772927302823397759427025992944435923866908373562284167727677852897901663399410643961515577784629724187895008578479164415748499760942471436129190712564312728739745168341268308889612255310567450407801523747605052759376138377830964232528177113014820595619236849536275720395105248745769806045254782127119539154995203256820144669061279440622313875983937456817126904918407788378882253251451673299700507080388636773330291409354457981343055314818763395927243846378404483161556924629667101140113333886500356579556608937268103886717881243848875395763449874082515109544423558218133464408944030352578465520397762244312054325460857456083004820089891524242306897359182239925592045188251223266026466467340519697080110895058519403551843496678319653382273053817788562027925611091399893543736357426557591890069729504053722403254894464506837818313701068668357178607665137485873113866312928540682475962476254967584759490331828311995221546604521529028462578991290658594477888092011562053337864938932955903871540028853289911576222045824751997325716675275884185733080305272744848907979441666079554869724745060894189458526249247028069398991295614436164229622354199838365598495791991795579799261876696942091746421048420016707892708181261872259472563800097817407941846716066230968006316232237015233887780266459687813981405451681924783950830619396219837654876453586903243453217981069278724689310090943889474760032404934929210757295920647932883066711594864860929257443724193092109685660627068375647399797240750918402234899931642428803541671469238033770828212910405300418457456224916247410179933675412087721822187653485341007683467002492253919176051076026057109930259779052199522739936009376434023194851990228113043634802944452383171263236623339543100207590108086942816924696133367838359404228276967593233915238534822150767483646700397606322184548461582071899448561733112583741905906986561728143678006024669563429000911876637508887262444763976692029963817732950919846841114356174462093540746226684808040493400043851629643910592929814922695156268506108459153330805842035295284913440106877869151962334642898280200426095500788988466675070664562620852555366533380395577119664471792120758832334147016742860689745076048485508520030947874779539450663214194920934174774768893313707397195406507717895232328656286727507387383072448647699050360914859568714622511587299378136668223436745987237109836367119138739116556021670968718610404779044094491144552597645277193035961143121769123170917030297531521022458273454149668592041789661027293753248588894029713541153452641110631324251504495233474043106402689036324740260487865493519469472255888819099463382658872534967788046407900751163390761493547786262353305560978868233456649425266135746500216008188787058651534617507996048470827766009987348509740977543468679713526762576424386373161111210675432753389412001144766755309937198919951753733108605760677742803692981848262721872451224577497729827345290969409510876655962203965527500793180146639081488592876019428222938843347393206360575591988609783385153578446744429630146301279105528276892633820259949963736788168220931431331849577766193674918093656676737526800151946652618798174578434512264727234812496011314209744466739689161147651363220228585564022350615112712750323029690473655885168564471080780676509286317037974441353249763640900904418544244122571866528548517545429833413617023058649469156595158244956275250931389545041924655775631371940003718928899111890146963426639763430297014753459711169111553341567070262027245039918913920398130459570440566671979774653092995943498939396006280517751030785292679785941991790266051379665540891829808549944527016315335689463360511138986825835611321957584280985001171866664438648716273213351663811894917433104120590627646142940754912921173587385276699292054415033238371625724769267357941176662693121503687412327988008552290088181187205023328504881649938085506889822015049693349837385828637823321872531351354823528950292447251109262486369247472568740418675760419344408124426573273234926588892578555775406197738518626755408119455753001906520952572032411337472767609498781885050763014870943994168803205222759596402441577950397308895332951986624980787512274906000089731374430257748508062361909073938305303603505068753166376858470370982729915909754552850128111478532636862612153643962824738325520625596456884872419894971114391066207233353243543629661040749391771800245633855391908223363340249320028245765260777232766160434973979263392495268865747540419549663067740464561452160823695977226887267381071225437507923619625563341521574237690958718063569088274757257426595573496707912108619654348195163454653724925009378727489001681157174928146909928063947928552113725286580325592412531352747196051656396318049490472838626970798232250044073527412839915303670701177274210432089102128101988365760436360459279925310583892213730426657925169316301258175833411112865121031069597060545847719597902464699777323769042738662259623378068157211413112805317025088803568182951778174472761472132569736687318732684130741801559708527625426121210363911560481582616627179149038913294006204610404566525290823284011128612013207115229025538694878585961872136606446101579492556000605674276823765526198021249794728297835197738540092969445796321299957523952503198076642047280012387733747895539011616836160596261445225234530316284138646515205268202082549739715223395944949069916701209317915940200935974708257784648261934999169703270395076348961773416439114053199129597223317126312025832333829917251675587617506134066977638116920087480934713518805621578685398603880484403219707378987690178846004493048170049239561666217394025061393110920388232707249708749274454674199897055451477375947496721721102297992761676882861744810376344895965738603112907730828044034128876242861598132674483074105512015035298582412356784828885825815174636383769411870026541903023565802499958142922371124423056219619276953323687564851644042685700952564062662927766340857909055795792289605741474789248286983202311588960847986100643995564508421256726233471500345729340947486158270397370623060055028027358547005540573861505662568802387317670463978735970169220359146712709574657858110694557189758240622170831879049432161440996209132865338468596371733683909364052686086089432547995613988762105932674483028481167974843035355164071583693996181640648817758148208217354223000594372157214528225326238573970862241930602215362970874549985969071353034265862956285134071977978958277769374571633836465777968477527718393502593370252395138407244096808728694860210674029367004231039354889083349938258675594985830256279580844784106007972877084789848786928873690406039194356212328932785094993640739832963516970727857062431885910820201744179989597340646761633139622732846199473695306208920350381642294805964777779446368697463174429683863198264895538812362351135480916212745038576308379350804795765213617875938672976952099094274395045698846798576010232800282551962347475928177242972605142594474087476832094623207973469124763893255260091532476267074652902138603708505899619206132751444118326728707455850480825237607175116295691966780339243480482402299963396323850506788074568342340983599444903942116901984576501511183069634211009054061498321089269073519516511168060702536831591960789506656268051398154206564694778292966971272796028218480123754252781204702064806622758625666304078124330780921925410848042326836748289370936724835439616023783109054654363198398607100732190847522976320949097698705819270236826347078776978920297910219285789023494175412816385312545949905099073750585281541015069980971095979922336904817815406350300521276015617643940306556985609145246578985210241543099592811463733445868235902644487213911967180279968488325673271016287145761152918243773057991834880971648034850463414895663226650817875931893996694843024600845961419276325107804811343268389675669908197919795059052844225660657136720306500064913554411464492814199681901769744869801717112040116539219738967683945198507788295610181435484324202014520767985800267593434750463332656465825769063845420817778920466422196824893799604743927954311675726096132753181473386298962318511992735832503478370199979742956538111429566962704629137457931310203385093535218702715998950526267967693983026076908830632475389138477551675526102430843959917793925659956792479941643139638446351042810512450744865936461191649900217839889784276049160541962084282363909618355418381157880861018354551980958246062469977532002287913595061465910779423862129559023131413748493467680024716582338849196750843518111876182668471031752959848806384038494012073850211873830849099847268610945984560592602886654912230695504052211682583614102131497613842782151586473086593702695602812833120187091861716341091775010412473704479705129627357252470881088960304676542975681693177518461581600748564064298538985504730756592045603677572631734228203863908415018135645864779916044636081614101671180132108132555215523195338457378395498170337584870416987715751739045912984706500027106666437100673130939145239547157698092250617336918772515380824382972969996753656229404480451475558648412196993085342256890375328565255523535699171906809150011851600980505684506439551961832791710548735274388698063208915111710650342325693235359506554417617258561523664238788291696457374866485297483484795924006716056614549624963915194178853396907697507792088973943465175458190154027356734592726836504425137345086329594084002827723977281478793641295101758315916051880945814549549568189647832057338314268501182707101908680965489252226621914322824803405232006765456962731070798133620718645992094498908768315567570928921409843143751258514461290049143839594748313261212108489667879092201208330229411926591053057538067173033143744069321909915444672648379992671589805175242606120567889461399144806765551666000150049876080186177002021386891125517726130761963798347282340918938366921526309934533587336401396978234941578560572732328304482648821366126283090057065042166754739064194894566538038133503950983894651009708739101041779053078399836257559623815305267643678226578749711359615656899295784695317467765828368070814824425758737018605571935175731592242782961627789531344666448561745518870207513507252600419856264797320238704205656373040380017974574944950455830300379963761054107365207905510827165197111115417172175529206859572075765511726961617452675778132716581673811982736007691649152026322276059994480786172432263700374246253783206322091968700279293581416991586106619331403226249260062135856626619069403757511908618053960290920755811293881293811665962642218728864106566798284260328190530801697231037774715981163668217887874883217831207328666368413261895939710979047136646260726738086264028695193803241925091244653950208327071068463777189998732584943513416628900033550642213198031891363823732955761297042676690692985434091839710706515102064287379754541840671280439037025868599160308767416401849777388785444944341170873647763009734778324896764045718531405406907316309553380621283612491146404475434893226300066710796732287019939426323849088693814665095489382361979240056573842250052488386215731144874554932028436314459265477212370430732373219509185749533210732901952284817656332229735473395669399139882697153611071068666647890347229191037673233352026584294367245831227604777739432050279799942924792347799121957782482683018280778136815259516414215484288439164414880748895760324701279805055135251580053530610634599212521119589307784076526764669683704916461834711544309503854278333905635051735402713164545026285698281413712326648668675949139748472972946315741618706221940775561064169954786885701772766762085632694472045153741428844320323081044840457465323913775468120023502305979449058628604908019729856802173488476615818545895753700686650040963483598391250019618973136753405258744043606482691802735709992558246463332468890334151179856497095295096009990246969447659953658359706369767147552540414400052152856322684107306938991911938239089813153339542833392407425709088243943035858838402741707034563860287884782373099675053869089353773656698316378205212643363590270797003690745616248930720434476630917936185976885781380096917397555423185825172012026859897247501979827866625047929041482177456067720020652178117450184665629528804505529052930853725394181184746556346165226942112171129239522332131501615962156378948907320363017862075852348261652391044420804921245388529504885768581418654507365717926677179968882735442833369152522893746889955722283634509989495321666286791364676682845995811042771796576291423205510418752929543195773198040678347961672007409476548397447004871306472403647156826324446553180982584141766611721706804840060320177005992466838820509697027581995428634438521839086832348501702597492529803844912317412727471299913904932252732977078291388719657152929119105235087987594799605291644447142449412558554907390989731668460322228885199425781659144033730009057659501455935876260180878238897835882432458429185238290949916027720555914249667049483694922696181956621462482967284705151193145783728984898410781156703101291237733413787587431917013469657574203776386416478597384799497668533856657752020415305603441724079060814212081194588232808699146759676887184588000908938383115390736922407042222584903497793786258672961027345970389869309640369554437605863307442464482146713955569799862656223452884111075868655810530098909677470391086831086550326233612922207390882897818094755567289905933457628469630231416883730418251796708274220263346422009331050542514743757496631936550294851878269839430337786575926848306860939388872415421740903092155217057202665075518328141200195564095175739370034458001361057600732238455298506427659201352817225987997713512610288796396601177176761083798133003537260822389649480305272753716210030994709197802209060529534480970490043722032925064341332973368897145055346222725095086020648317591241004168538061498041111032349905397623845752528902585682686969994033816723517115477720237360504760978176465015148864821328594213114784646121132170782345304007864491568729552172003961449713943987932051300446798253402991798015993093361608046484252133956285426819705337450791082835164634699251624773380859222342687821278645367583666934174203575816852345219476374118680910145177311999759172685849323506652588391050480300777313802391985973820081504898348224936478662754740733604237910931221816743578156520328064270048195579174011135281280930573845514754236109015641365928837380396449663599814559541449595929494033285085853474339676093607741010488259877155345276321160907630956586539600925131915979376459057247774906294111086107262373318426775383777437888630718475881650921865783607544691843760586022986995244746756310050970992355294469493107638425853099151634904390653668356242908858913433665642901259877399418127232937776561056967088896784516197175500946883591556742972118350712683252129673835427245015024571235676430683937687737587397357536452216448629350651275746405560751327803408415199515695854256718938332579758682481499028787529332976495437227202348377214477952224230666589481680858122259883779664546623661238424395681277728611263033543661168641932854635910520478328180978571027808162087637906655979600132257797677787552614047042464233938754753117515730835608813722982731245310250923688814910271079421675151324057230987533564351670517625718042754469026042489611195523076790955858112713520405142858824912083429125815598822274111771946207846103608490586901689632158475907314764584325035783451321054756146000614924650459307985040562384948180108861322122323894437110941470500578162021579441273109206758309557552762978174914617879565562683607400724460539985753912319889224613398628921762136510332190047437919226088215987668934234334493567459137962910667928530244480833656696580670073402324318665747659829617048899254581194920881162330442970434552663253411466835853016469821699794142169072975160833865959368679935496392730620259405918195505934605373542067561388331824052919880827789801596260803411787394933951040938700483874949930510360307049608199218956191234281895527476541232197538228582669374360367364614380059357486318829016310449878997037244358961937646462396575839844278957777422207722283905363424769523224982835316179582748670934613763522816699804588126873543373886326294308756922096792851965773705194447740386457464358544114378253676013483221658339605263863987056442321579441476963157752100485717163722892175684356398712473177595270593351574349424852156883397044993987767230546992945264402261904426481018169008120322282387041848971736362805507942457700408274833763213450506941272899509480279987236986884825764923009710487432606120068748210470495046046381292517982518454660120230211063714139814227355785638878585387316920790448200492722089341428160398709746862539069786445066752548985048628019118685328310590268595999856626237470251432835301325307255783291315553903014153779343726475229178094122434762520271489433232599677429621170215744117337348301535536519703178082924011689038741689626690764878125817076093525366146800117312845596973382039103104591627467223403427662801692590296821608955398189866796435816763808361105726741795372391863697184531081320631620496348576839543917497934726983517680929767670005193609977562964332063245886888789633752934450079855191086662069528747243271154716020996810686524307076065388649869366814340936788336752135908063226533523755231980068349578556917091311138764071454446055650351894610811463827437992788045906493426771381145648617424102661486469111299846730831438147758773412748765986337891123896327258537196394057240421681621512832880225257460218148513035122887781573913403176787165638761510868026430733379440224584828823240148292051940675618555584451434450286467621074348270733909427387453387162656819161455631240592679045380497529104189411853717643114264244776438885528604484979820239233145789016100472643828378231060771928789674501584670744616136897311366822700768224219930815690920955095502803552394896405787621263722059262363246856224563070454619145644738981800204799885271010000486009029839022076638618136180396828695423741191074143400347847826828024657416388434266662408136238476326982804893586161028182680530787499301192103291319720183728187704166181680851510692518384264959557513177611446803019964665267771124107645130958099276487101448163295028516618659582670857966453890697363837848048778689713499609765048485837271210887618552443724947756453055180394576363158567108340801315756079585030327559381013376992287080143846553243638075361973114823496371876192861713337471567802901218569405869767292898559047305357582584203687841998497136709460074985998697128254404653126228387810019319543160160361790321047713625725144532933792490019820760935450773732636787722495565692208606927463043923096190601918573520798878970425160176892064562426698800202016409064658833895101155858090559329622404344115421151119558033126449607447389780745558310215980730137961565890688474222646097402080259450015063154336337013669641875508427846971675112282828910644003404525245226605805168674381623638964786388052340934748223618293821243269528887438438087476606510399402403929777238154516848409076714937773618634343178661467601716773292176064310096805436760366813829440408272762480352136314196919488362684413817211050360364448187482183124187456469083483828907014994482850982941684271068287034861419393738721544479593570187639562018842941901218378447592891604885604977494650801756071931123700525855455579010267024854096874112238691680668349003157159026262192513555409340311675978296068116362720513491373144867263689714739118238664023809726632385649579163138232088699333796264205402445366943424668218949259175479588918765533244351090613843061230505529549169365980073343991235471544323599734319759393308061542147673618195650650951780330699046123289157772435539247846113978120914324966484854571567573621374656016451140674523683993785355655117361719353012514107557623152101030860964648187721181212492752137047952603980378665005841196533373892320137711905376071048030289384555395492288679236552023218938603896941585080268196865379653934014073904920097123714980464746280735441454188519170771311569227979139010155774304725395389806936068883859271694135386449283063270758639235158313856189270164204153976191739055623245927814586192757702336208766002180025763658090491515610162560844677027557381674508184964255692950655371974183775170933156500756665761914250989931753801690460221464806990923577058770694080407006036299187700749843050410137810566254893546423230740387058226414261501175729705627903013265953790102986652261442028696288214258696589584190733903317846868892225547343057320831679214141554684357796522602930892864557505472597303428144701595492065798454066428335560808805200470675093555959791602744114611345722405428631981871114620970028626132141907546272110010205027082101284672023702586499904501719755173564229014893339781183979766959159310141791558203355560956643151158851559294531021632521634707711985485418260861843172756954857107016521398924598595267927426681067176006426057254346686413804729277426495213833932292521394938895962818108048687630071947779708195715091167331533200636832054226857351341952710638566351666675688907801770040942104780854276828819579509966984408233367306177713035632976969177550819304768164825940394246465863665019618206617954436737915708705612513187938811583436741769908721921552373456403389919951035088348406247364069428015140343077040923258497227212516445901054924435429886976030796567529650731454722176955475553024478982143153598424720584672831076224320576073201207897548830452931034289251398121020129497062819733441655355056820828450699190022533005359599681003082652319785764554943587722271853213368436074296652837257774043815915054982393616259138181922518551818549654034438482398359263732880251115859855780895838492953042630964934037280568195366546168685089841640522543888222066740627847119332974378497748973983289666080480995038490900875405795751668668440847416670367759131982769049605873765130254082583818353642737794554905557684514414176024579452063414033235099733967366157017595634738960747194963086118677997516706468001739929094345459668921828960164640941600086318000545324900394596835374129163650001282409153016879381928333995821095315530846550917027069627816421316112369796321587266021138198267336515754572585773063666982508083920175070907120423893658539932282826603614829542300764734496018943032006891798250074785431927734283929841523862806996250848755457321360293986565304532220646998464677352512683103402177789766707771151322692098968315354635756074001120719199480744017050560696273314575205805615880748916542732600108210574285954698907223677174195537069629540337432256946708586024023971057842916894839619726181351249663689053157294314722180426436809132897781784073552823347094932219573198143161108638705209623991585046533388742760693525180273176432825891037492240353734783809430575063778731744023847634875194125643808172070511959425369000962676839051848613536216333157602556423141632834242336467445287220483925368502859535481680599315167512057015631664445026107162821284098804705079872923716698418036965224060628441813718365080652816365294880440282481862222490165715667134778587261353716319118268283512344709919768084880297774356461150561071090690880936651398155235159223330430375278295548864438942247975607333752058918430374081100743083248484944639588932209038647001017756247363293101166784238847097244900043005368638778511420804785365852979488099573646209135958301890409679832728816976700109418476253852323888598656972457035784746554771349987410213967189887301660127842948979544267437057357834229714782239997166591199225118244610151114483128419800798357253609337010486958918039116898330353675258630100205822745917120035964065758929659504521996143296024737548480296509286265932258188815129271887964574104856240077858136390252422854565855767038123366420354081619841011742839148832469684845383063389769755871979131849410383294408145799500523492997427645492378532145682696117571866524216656527135946408690317514902816440060270474432385619618744653627540827229312076261837442348105645951702469446822227021755427634822121942130854641843920616415150837803386643621183297313803552454687091310312467360184824476408297697183291894040780230883043295271613751782170294162917431652192067796581335954584935784292364256460208023110894901093358421758433727622449562683572839881365638573462858448266993808821807240447113089241583602752371553352678027079878167043094500100821786417332676549722097009429977259235151018078340856935192957487156220922593363447802964502217086375191411324223686699079765237228013483213081409495960883470001871802293532802015699955621584021710657138685001769090636826125464689187785335291102510399395930667044588901951951621065287215356639208408052147960303383238470027271957710305080546024435078787706904348959347165885655759725248936399015045343088058212699581674564104500425944477484090116617901548007592165460588982121993197387768248924527502321421503615712318162749172176994038403124038869916925776842688147547082707968669603426587958501933547870997825503750044553794927821955471479087412143619320228469836490322006659400305623722427356823340684562560435724991870360742710002751465124657607933821521465170564553252905092263195697775814392567078859996798043250087041384949505234785132095410429817518440700471401421384794049572486798604262823362744650595926441132309855461222939730892827701326663593408183978295639444647902839943301278725091200084314507043744084375311746570319514186353522360827335165806284824059822562447307700630400785088576546110193250998778461770350897108721112117288839270705868338863424766633092236725823041764883868248739276445608370213067317337593417854934853879015859277412814642914960565184175190479495731792473807888666551035842508525851196480490318692551866888445012166814063243488585411216728065287334610453385970853338362197140275713112421599515287449122615203650581324251893704298980909960407064959944520318280455662815710452843296152518917434577218822875978326554719270733193085775138631545860265189269932062783194031415116265075339707699029483627666099664458625447664859606542454859707708870028014918897660614003376095902487247594551888097097612683680947612148984968908589567563709327575309798172199063999006549284513022372194404991824041677891965620406866135606272933690218012361921874117215078572962059600084328998764167352820676565284680958722432111881508350513981189426078175905519811876570647878721270877080443006570157531899519449662964140582028237446963336099824146658787350060888304518077308956973427763086453056347064641566277764571840876395173488635035152055884083917040281656182143396878020373687252538657007178654877729219361365995326098507993503361094083875940448397249706649110761779603247086197715141552078656372048875068529512843166900471519504590066201128653311863300195894186488753795023531194051477368294617719357963197184364306469122010990461192973588022715193536556307111425022264817511970238167200167868619399339035052900256894451014071960135861959111837953691395047201604436535184113650219041664054855615685597950904645794896305303262973382699926946883605403775711894726544427368814473691624478435889853985687213735027432083976536234208987322752149377424530308408817130976715041129926313086255382093823686769599096882078743229998437887780366002043009879259212829051476922290004323476382490942432448632468651872121337698778258863511941827263184364088126175510287927348128374806767708189163717697697932272241836235047698380834142351661000681641761545828385483684633565955024167646699811462495332655697402660466563322309721540160117228597900637081864595044928537346932693641860977575260943429197944706924467771220595052907232958455500049167342021847984499093218689176036931919406157388131101115221082554653971625372569871662131266325294706900033130550731185722138821264768216050132333589416584356645863103506714437161203505915557815689289213764920599802794857832527300843377588201199746540604653639292948531955857586418655804090470040967614159007912499779081675430309574832565494930236914849829361605058156161130688841362647657757701134746806405403496957623595464020377251756341493445837955248235825706360804899949902360662279677515346912124808328878867847296701399059837118614271446068025896470599968269902254541089701307157928038144863521174156077720398317807845504365458364771197218821170845036326188744809669303316026071636608532832237285352999646196589409250270707846504271535322875670229216391109039988982211586198367800759394131026487345111581259000650278467113118588302139142008217181897479287863478899235508010889172045894573802169759694525401451132847642454557974734818973425396088867968243561028179278565887089956830081548503123953085140697205398403445380688729638765411536509591954023888461322369791156396309606084343803473037826747333179615044307990149546195909927698908027281291291900013826133369929366629198290327776874895239505232125611510907245009749465214966738251283290394813543833589064675107782399669990919043377774354713521313951924045402773449429909864737598592677716943329665704919560743407276722720163112503708437056446736660917495186681805711408115443596146824077172174863568135671436119866538107886874748012211371330680301270458239873177800016691537948463653813479033477553634241682836233159581738603065202087240648115266860850987455980397889933948545634207708825825370943846445816847094113680786581207513172713618619038588515513382754944705809511553185212361001241136279263062491771418256149766523157400740230752424437037908040968576289179416310739804175598676623466833722769415063966046743424629418992483118908263814956936497667803805745254942245401826585725787563779606739875541949899872225342857990406907220912181178198447043715045589140570483483688692872102684005461247655826415062101955235093420158656997142978502070895885768808079949434809311084368414524134154135127012297289505071569851319648839462012303993364758524494231007136611487700276631123524021159472918281132116074826064949979528366971493751387258196305747428253692217794390467069341932720462030132162784398716114188916465723488308989912968590523007659645153424264776310288617155458516811967124076828234369848057323657259812848803319798521956216106133770559703198231087122935267093135949955928131465335812021513166146864110122230329533829399007909635660634800020853954389711289505048571071489982325657878962368531842223070453030432044623336798251778753584557498869185822551789461740689150923275440937411601862553022198702956498273825052265625489778636963414885388127657063670470360846028016546593376177867998530047279862955451027181408792852913252738681044771456311025861808771995379770012108133640944724871761321067582003232132755596067952444416526228499460593446410607693413471750659123841246070568136077699261985471358660673458014418564132379617234795909399560038421487977403097671580690305297130339154744782418433174107395625442062270592610513645833045376743622093211917346886326217612017934187121609284539705514386335890685395565373540030770133663088050451249732870856865770524135480054131458427438192745539044746734229835320618926343312109774925626439317508347496149750738923997237699801336164029730942110287833670188436404411387188987402752086453591382420163779923384216823143807700047931898024020760088571505131489173517878554309529245989075080997939551552837988175010066081139320299517909870276296829033359380018982588404225023624118189354940368589812927327289218148995765308924903209350080022421644079043701316240775691737606766867429786081994995568864972320482023861261073960434917920905052830480337246408945168389189573980070567760372570639374497034109173338604349381097720464307401840788661444334872630226994777060772943485632198580899486925274404187750769410624391405590738118340673696240851816140590554861222520731094784834065052115783218421115846994756523755527327250548796308974331006643406826904802742403225140379862025976899686000228129315770458847013383999820375153834109450695707731450663414703530893816275718691481309852168705606658299630648543058014529040626472863985817321940976863205842661279978204013585285824046545976532050348000626934608419830278878177782934508448070896945610712724097093795219215012130201933138771449294106259859738506436893126624514520979829886846228728947913037886941335568331426080910620759580550550478977841467685425317219029260813563557425501311346162374174733914131651351154895543480342108865236970487986765406844880779345693870057337520381256958946257070928156617226532494032570314343094826431464563059786242850695832563238418431318235679870191710150151795057196115717506133181814207713534707403771380796133377753866528868067749039908237589468015588928659519396856556229889026425242195734247940242803312705186192109281332774865474582118295251215896519589766949628276265552221312471627160487615436965350183937559490896015037218801944973014519435108369036966372181665054649875405085003159478364590189617394614087981868577740506024638283182686757659338882816271405218594531243322731802009652348157035522939486815769912585300219346782947578376374505797570009212743155002225238849655928703674347983267838260363138409092186837380307895115046075981376099729375156253216671973330620250078142597710980408008948704086955502956275685669963435364811482317782719206568736808953530738265347945085225647804754849069440669034101233440904862459809741508392970595236460014126329611699506418330583085946802814751743140875141281548427012408244762897773027313399204238529888609147024495087197007221915240189437289941993695255164775102558310899030472566384939488876185247927905154705823124852266788605977982106320931482774375053135204399139514304236668368286745945697481183072260954701028910810032180444398879652363931094657834031684475534451825392516460160814002576143714539065100817329489101460452122115119868852170103980400775671605618428360031841931328005315442082277647224305220086288920411876211491821740298294896279376799566458813710824636558829162132679127751371292490832254290379880350358066092183599454100062455597335861911899821813586812179548863028832843893518518949555933376760481963255892123214092351841684840275217859801991445556123677108957876758741740277111401348509967210355034998325133987381654665248167879664406215115321789131667499228526590789148086137392728418006883020093308133384154208722352370185294168221234884736016727580636148882774551397810140155297465731530310563677459075713197365143386128355214593493211451555601963682797056245438098729233744542656203507537429919677654062673456376122488801865104310335783053964848048572666540815741527053380401680328575519193007715946426758716731069986640594419376895768133784088260550775498889410954735917851302998046636739374939304840735891274103550641307631523108791496640187030873564330374459131532276930614409590580137246401909601893456214262548985994088253708397893801770509067856338502412528452411992487828095571171681407136035520421518035815126330384311224235514107714492709218335643080694262067304165304993639791452624420305737254744618054997365631767843514065903275048132973624761705526601830903292449469278581667541672717084198800605693556633470920842689744785834903834829461538503201919385584896964985460532942025043645452875978061221008068806744207037211627334306437942402394962289095607135159847448835951251810551085202438453531350975970984348150778266128018963922347162629900662841813220355539101296755789092787659589503525988802015347613245350542474480735962591385996683390895811639472410268719265843138833195088579960733353521056896749906591772355361393394037496468347728125508509602686361583072699301397698804177955017498571010321399775920808117164608070450424213420720892505375937804655906626989443219164469802202608861627812096963444313272885754324206317102460340231151721645942941125442499129438980194931605813826681051133926235721483346637477547488718186465105912908410020279566273754750159855062112566944886374567561896907535050049237301496135144881746342478871482486076008200123047410356557672131438948867597179791937831409327959700129222382465950290729059704489944038574290018588203491351236540728696064185921001303184585472056970734742982995978346299934423199813270317763210243318643281460843522191065860009190759942876388427127637776706573264540505845832539054152197256504285079936005589840322801550057515868491069122048490746867540819324418272428187663038380509655653568198212907683140673761864730469617198747945053954156347071571135693854316025148609662225748391747300816930365950813718679050906709269934876982503627004324013297011469056237528365721305843311990746637596476175517055286941958851074508336976674393759640543768440802375779958372510057426813854646447632017840705524442613167637345691556096378117246807268126551105422127749824812697556205945335559131213645842818009756100328012669865852751386989905038495729840233600975954007779589188548892546689326935376337401526571288891992164360295975838280287288132402434317258538744993927205215387531114201392334516749909190701093031768803828923033385571153989760198465735639631773130415903746851971097340602445017558960910365872883221710515743883908308255613736681020955295124712136704274227117759096401201325103889261419895901696958087431967106193364402423980861910770351571114087972578851714673954041892868362819807457276617035908674270048420193560725223338023415716777013278529434432149203581204010464636245211333982609594761199367272215554427842918836348375743468906296112391217180148011550827731252952637382177745456333042277122862470165195962306530445798405856751997788359381607498503830965003500471913556331640865781406092167729254777761299812804544877498034170600575901615719280054851270920708127661538683795944981658287672749131625070439410036705396524512218112397726274673325672754567288694997196201150189189789457957955300289094948745264721298149325657731103824673912839894713459492500792316083020677902538805042299794410089194489982379163133918649524566247995012588414384735328516582559397690200932630836564804756907102072049761460839714754037952673021831133726602596348801127762523807012716077998816180745709438695840825873363710969477840522133558074083174492973628417098246463966941756985861858182246004936736772874379609303286581103655522887752526998035855715885420738883422538225127921452747559458103329323446448131125755902878362396388020929470356908636788695479768526823570377962190460609004501920387688810003786744113895050355607530199863771237778604200384074366175914757713794440652024587472241045874072607702207170891427604964735203540308070856923018558889428095703514631761429226857577730499178390535394830223800091048925824562477180639370192975242771648487195206396620495837276168958169074393503203384548020146250498713002141336877654382788169309786105072925380847353084322048644965230888164853605156594049697060915226839921251651294559515873189194623753575612817336935049793718953708302860946847988786090434228090818630719548187811616713947895694103643021024733079776226529521063534563652609118051176735273468854108671403228472527702709156050251929334427770093128286143600826439718319481338756916800169672312888908882115260119057586423919279796044933275572583787005900212209557363008595419713180250326660586452693751751472710958434184716923180355038841102769009048759739438520706291106655392350092439639755405194380813961679285934237238783668574929875439408704494953665816354079625351325160447427780800198156103247086014195862165575811027903295601049669696866650696389443294698748464477086148820638739685230648747924224087305509018799199996075055000960778646441892232802755950568802050944842032899072355816943150547742758778118324665193945362753255827305367902853234445371296930704928887948683192415574984700913091586686131608612431561109494686972981605890567311619131113483841600518747063028969309983441613884764465412445427334326943046615447375241542799585524069731160018695697990669845645170963544001944126653062284604138187526800357938390868096708767225854980489505404688914103508682676310214697836422817984497770895802566995254142725617816758028200953572807291273559550088950044222699196554130745713757276043703502951546599948352429562773873618401256549225263975649468768530288566005186053803898311687211921576079600449069112744109984901894119812016650679336141556354188831558484070540333624083331072408785972352143993876022147387802035795089551251161819519972553510928140685906104659448934449719130598850471835066859903176644470337197995889419732489032116703687082824666430460289198704051452722228817815336345065864554413001767586092898209149803882151892287186279954785669938586715078571983877239307423970564986654086248177085753723263981562094540606200857693513503977230531230988216216368089341985971622938436895971021051771649921344411313019350741893121497646796104629118656937958791214391168533303675213644467134964076561351777377821306214359282985330970435565984222019116332065609634006033541045902280005276360389718624839051022277707449082450410802159226063943910722707467062719880595245972528617209370190632038314488499162313506029993558082314667458067307168350047287584585753568787972939257245705490013648552220839630691934643674626332973431888004829077613890268475634386968898029647193637877874296994791038344559494431478211814520030392515103501626527381558687177531750329620267594760523688069456222972162831787829461889033612043479453573586479399252067860158506462772019700156394449940425258833010308549695006527576497538201096959585116333016090830348336583476075751355938294445754627845470177141494196890144856728036663522876935043832298652789320126245523344537280002384184399256808160835322889594578296559027763110854256167772779841232784993536613477556221701312366786274757816574026139912354438194919450840310915933488183318653798904981220653279106684523295259643243788353346838489531822310767822034754669206246952303084621644941907764753197452458539834150642055641457916487305561013851800614451297012559222459014791799364437452096742536141520830707713085534151997208788856160333559775584032287795613543331753764452427598859988868360170843380166535036469573516260858637714575690404576797006006857575352643464502422839744322978898462980344758619954379112130922401932957612248952944884769035801908876358219845966484516137258189722129107045789462821443265068937120709443656813069814558759714357799569089939610011199513224948670901164871600683490923599140996283253000324638572141645037012999659198966995216690558301993028384304994478627266483183178053534587995457669633672170301238708236369744266028853371508922263236966188192275725625055211991821343656541970510041018654725501331125729761673908876936824412631384611651013598020051369953198123077560931304710906191039328225592015844633416298287528131331721424235567894564722125951534717873258950514512836141761864848095531117161725318178694586887897840329484874934166533888597182084721912180905264124366860059780254567409139771877804900670549049168183472517427121590137881105546709776948437072341974044611894072454756983918989417885865155376672439140246008403644356495569800684148135760460360268042946688929457467422222791410265779337424227594738937529034424557203067945086168643416381908963593404221483855272970012980102114222007349892849425156567859570332240031435640599121562945761796955851382692924251540082128501387544794539446858064516003454105335449704042876174726391010880875507198512859587549248304777478037678995577865542756975155220698122254339275980662221629578141872585719609150814522044083235153306411263940844509048832380268038755499228304077220421757311874205591366473120052222843295712572415346472948607213111328604962387248373327342774190142634951894399736492872291895441782150655470713144835100726265444471042179642941138947127845129191602305946928866271335686723687153542596884409893607038917029420707527142319032700844421367477900171807251756289178523638820754812195237081784443359637681463885229545191659832227253530955493101105176281242106248137112552908984822244380399257619887360259203280350656558856360214585374813606728940230659418848668615727017550568844209710263347354887750343800983579416566816625036580191128408333100810895719309221375994615574897626360288241876570455700143996805127124577983077105990142422379445354802559426688679251683122945654748980773386385561996666905850316958561922313357894446308959907315752264854045656648034516506598103922820139942534009536781632287255886213576473289262716320095222583861221518742417484169178893214371894188265126473932386304740899271322109404973213553512839863251452114393899044662303380813619788819300290143238641245840812526472838383866381215565946529811239840127690361281879754530298551386760340244512162451163437722334281792441306999849680680917461115028113754852170227448700409015687254182282689770540881021272403861414277162827067842461576726737451151440645557122811087814662810166342614093618056260055587798469605266742471148345231921026672880777510390217841775629235800415189688408414406626583237069526799985798338253366489733001050914086325242888319953810009401376637838253596761770182335127954119127260341469066086011106825908170353242676873931197112804330412483064218579183543263310073523693345048569275734208631645227981079733354874906047579201868873010415419283079822288385380359957253203881917321205448404464287366805919442153670226950311831061036050275893183634458749766367461768673749997488119813398245132433407159518923007606594431470368731631374152596572490013067631350214882378048524499329309762913239865465273612612706898636874688704958070389406126688470560055015400123089793714935086682487615053198258798165901254025480967110891432586825559537135156783025274325815695602892606002690713037929441566402738210149621716546576775144487650733874265556387075322085801032928363455666265701049576413683531064854800929625734957541411961459256066051175089684112701133020112359626396200753403296579238162111762121740738797829602576027166163000251299324866467442311933803870426789955841894314325006892291031267568185256497102649116869466905237834536633871396535169637175345428405193835505871969406478856531532497815425944981745246304318991228280051637424878881412586526333966423794693772933138225619508622028759679205200526047633014225840757865022766996038966521402355332939632831234499329355668005697217667546124133258625550206813704237900660167406150467959142848274486891943028582904388627250381326855441646027768604405360452852708023463994909118454019388171270159232278735299305300157618311950894358241961430097390094119603939132866534946706387564286118681404149889336001050505873784019643846392072691050537146413488036644761450217722796071051755688205347742191161523781353102871011769560694827212159679868195471076580827521536771590186253052191921372729812506334214293098731699035220907945986707140945449702220097196109014789116295595296052058488156189616689019513805739815328065358704142535494261685454514304083829704015406983958144017658403570662620495329023356800866680380097504143623735265605657261586138394325339515405448014037265810205407355601561552144953544947536749998607193128084051711235834474147870000741780330179659255187136719682208000737642176975468915555437798855490738795773231221602318675402719972039465788465181154506705337446776061386267762377933586858313663598684978887512556854195046338761886118433236165521167826587159028918472875155059809323543753636984562134048267765704347178469706787795040511689072912085109696944203199034722977093281743761298492743295389076740653825940254882596824909333083746320365669281512862381834674426820695470433292730818903302436396081722509651689841826487939346129255052149466747221815418058189563587146285842278499591571531143660608542096421861060941201908521316010868851937229648048723525923088873017007558851615171104933467769744791004252279334995203017412010219117887490006013789239841762338031169354362851698182870601583370270018760321271268115029766269539627183338227097694608784090753195278752565086967333091613830929536002365322941278306931255239752600538270175323456914826754890941506725322192803649775303732138356823989674105977049022263319375260739018747469315719756604308454010111641954204924704316751465221239835026355176217301117224470639959957652368162685110558854975499661443553995602525142230065092511488489844466595981855515649290666705222838978837424973536971977447478606327108001763577092800893797901087661150918926963992315970964978693456416739491478829351806399985523696951667288747872704278101975697463236234104538694152549978595631057145805859259280679884638692815879642921782455231426349533041756798745250747115643796735301672062108935398982327727864575768615248252608386624974071199763324787780983511244127461869331984656456121530710359190401164208204262688462785291111894606638595044773702738821158169839301834297530269364870443822464738063832714105501410934418470065918849853303380194648747788833629196773327297454477358726918826930309519331935002934155370616253609456631053192720363392129126060004310675584296946148820564460401658107658664002657532369086483208618043519314396221551662111140505919392948641732601266554325631420830174091690211662683534215095184579579483786255628856420187871588379013910776262573257823679109954276809256245110850313605443002480566337168306864570992658456579568648665276742047344969143505084991964882905825544198579765719064495173518191969509946796123109446612562750571925546094918264917137513495639004348539258413794970266318088857238367573628173975415017293473686452467903838960810043178930121161264242401121113407608157097372721560350436648908762056882024039351187212213886127777658557164480213622144821588535518334565182318974632982948979307635846619501603361050719992759451908054615269370055506608146510288043311260594740290695193110279095472582857654739338190300550501828332784005716173922807822148852707719846541190937452698160676877721702614909786760551577925176986574171515420795436483005493184332196990216022136377281545265237349200833352112406900427104755039474257128460730303176467470205261023850347745036768689364742586928192679684282371469793280815170904101896511112651424519233772926677985838865039529264236394013639711234534190881686558527859512846514026646738862110643728877663034572994060150018996357737208528443509514779909744755476918781041814153420226001142477145776813675819278250650755911488397936663890110002012681339662947926131464822202086135633425227382642017231725125744648317241696148125133605919505189444953122820748123618879554473883794997835473332621293809791049925990842682189305520154971341067140216525745456970062589289561640924761282530608822431623753827979172885292112502528021978431485642789442633778810518631679800227689004147371277834495117445827012811944034780568719371509239347400031784842910561901414014778384143411195268473571862109155514374747680348211217507384524329993967864799427480012156564301763252335310039475465254871823784481744837523131046120909206709041893377523499437619786288388782417834598098736590123922413466991491861564906087416006607248656603048226682771719903427517812367051835141258214276476469958187659539484793593509083526979917410951316387041101561600765329332776989064388532067535802464321445506127031344446773166005569617231911494933043829472322863434262495870953779506705656999883688076097368302783000750576900526825235858807383439815927461025874203557059543949777893657882138806449612833428792372238175243556957681362100055726970278814194407640275158679787347406081355078768649468100085085064746374983840693069895339599878805490978035001034817787420549627007890915470306536672618246052596239432703052011495723799347433336891570470765653766308951954257775906618191405239509398667630051312008508381550449305678852832668292151958484557659790090151710861604800564305923916028904922744175923484042706936203729243387897790816195025343238792315023523932856351505887926454434021771128948691861108932433156638512039278106063458455504964221671576858120635510209600993207327045388681576179755115432611363559380083769735688972909718550933199810889985406038465326236242803508891255823157373533629075773371184715850954829270573423981896892714826067509131054654237772580883463029154733429732155153667332621290368607284781688556149006809508013027445951634587949251148565777993673544466283588503010109947189659946846277865584791267590532875178137721557830076545978183904499332352543267940017425429615936150821185698371675712375069236433287070804774646445828413294716550806424053882714256210702309862712182179248085757642423781734594223465077756959171328587122299716309635393209506972674298623725235995553830829825480657630901643418386765194176010255062504799390357804347070079343642120934366716368899232210318854528265102814410017329457915115713856238881773187014492013541673244488389656590365596119533323212254154901215488035127511545805592702509706873679866779038582167799456524863326522584874117050785886639858971092275619298888171390542007809845676830865027114549174473731821572369088467562441792918170644762262156041282430536404378101555943240260538173665719760544493739042552241192283625591198653703794589952922713572387108953157397020837439318389594120829947920494726542428090300059835907406490606895407039956370648448334298565342142964615350993288141291260190165397337872267810207640533558615773134551467866318607327441277108433354317842753495144309834550000893114369976065423515983249209534729495850050404011835156849889207286942631263476552328938233293664653781905314029171562533971428702172032191058683857906764653017716671861031574294624031230105333187081227362424543705278970709017893500246941311933948098669192156301094770235205294112323293872450477034505252159744033753036689387020666424043867789862688153865618787377785902271853190808978293930535522525360960974584944124241045777769238344413636422820199956174520716325013702273352295802549395906890692852193174950511555069812771997843988598910199922028561153077984913166966343054071868928324744497883224546972187409504109420733252842509769037245185292785110673582191927520816135849743249929185926764050129736063720238367174636672318115127680658727523755063747394791380045329193421764049698481629533220100779245275204704981840948736990825636230828798083917721009966583580757860379553168829424884792477604306179687311985333663010030808090303717924431211905162379937882144691925425666844427319112322297488375280631860788497392117364480005947646726072964732556303371107888124731989052625559701543043509267262784539646304760785165588992521946531929211413684119242736480842046222574062385966612543611582332146485799011381625365065221394955377953925224113759174770205230811421377797464269654482270366930472431600318940041104775970538205765096537066480276157924855421534576976516026889552040594890889931605788383134806760384661696946854378619618424703092822200205313321058548603467128711731172757876667578643920576953605886090753372993535362081491835944384464450361481886953107673765174889435597938479778653908925446667045748155635780547571787409735636568619093069185259620294810992980936362970382721035179159719407147658661565725727802423747963880881915000487589758192150068651697102693804357259830132281733333406163258908042299366568191646654691298309898966795655923092887608745263510186695588674022812551350767919752712320110644439827486996277876414600080515415024072796409511569130076563799994075228207789311482363331012129220540036807053956342602327072616581471524370547261260439312225036241334223025579338067020464679339118564437855762725942054346673986295759381147649283787512987277015701489169540559110825494475953037399920385027964289589531972512013081802293027670065422544927050469060651888713729146024627044395652779734699952734437365919898484912171048445555558385429300797104877104695529039189408602714807435897913250475693515701026558004511978554560882541705956199112277994679817807084770900612362196549873999602059552537288572602171723208591417755564745729396026095676781813331253443869383210089915738084609686789355944110207101505103178811691982227253694762143551158103065314731825483087802392218538085603972369283672836280020148116115096130240818116381999580952137114020148519330031057774010383766192168917396589268234127599144016657309920010748814595806424350981499476360191338371756295228927470638043112543401018849175716789212000661889141361260408371677408106287555252214036766378720437614900138365911173780845930134323810561560343800729834580631628832010373623780717101302869911833316831728437821281004479682650194369946199699176088761286888062256175666045113302885735373615556425734833755224163649135118556206320441103685091477643057968478152547128544422425992204302488647487284835742261557715387404864756299483344583556665299352971035153805536530228012480535183287106833438798404345699416251025696235468405452208645483265484684601827985987879511608839228595775248374424999795763272709419691219943124720149934863549133987014224815435825055476722156822696484915324612767672250755692914897394446757521074846113755674724291009702610785123978940086367421520702408813413854059942998856515033296515664079611521598286253701282826038319120131770418331927460682773195240254055331572593826838333627047710137592420382756245738260299606604026148074257209753706202636967308265619500445041657198603141044349765876227443310790471960681041868229203450836787337222823953983223230499102258139089244407055205308757539281976051253811933029318172820505181299605951532864480033623770941583032206745224789919470722413673926488601849206486681883389887253489832137552973466299455937151170675757268332029652363353908725474855364277539652062552597332998133088743771819446698679989106304973486169046580508939537886009397644549656772523997875679228927451333575531139311062996883279399076203591464485859481654214917069612697608785846258907145627312439381532664893043683622443102693973023178660973778291763876350718030207801093651279464206887761262210063949905022240709916279200381041659663628590205912215851530754316366076571373567944327482938032668279569406125883879306719874778082720035076465740766894739274986439213952000079969564208847721489979193737236420043879543081736827809623063819209699597229973205671495266431092980741075578087615188870936112375656067106932123235241830953186443377396692817851836673389865668560671221256308444658451236987864504392455680587900324614766016474707583997662413342726872147937531487574260599909854403193571894043789884970330950766204587282344931796220741476956586196748704770894945334374839065737732214394435158278764662524627422169743473706060185411081377582522424393803521468431305181660328609219732679516516493440883281166092795249063371484264972561262298380190066840003269977992222543737485847568988152358195933958693585269243303983560663962782096558664186932631886428774210057450784985501482632082056796450263728958603272019532649957955263276385100421407220404956855692317089598609821578746927661213312076993872799716674684579804657024853082462233159984734223085991766329664734536238385523158629078915872753720167817664884084878332702972279028770996346583933631548885278684409332214884424715066703319478466884135610181006771750550522401005087370874592092181357783737113051953943024569345667941594088862750081260265671880696867409409475664601420629652263700358514554172640847189669589069806774268765764229822608596273681103458145150919016457530012557332426576610229948003309119455208735143309734007001507514708214435134724211279875766953724419150071940158106764655572493311159658603677559828591494606649333538472900860526673666703144107828787860636417244185042980132960782625703491570022391661651523327979146693923193280212546530966249464412405164395452740481933909723091308227883735339467698221662701631981333703495287814483357686984553054040895302644852803925471561973066078569625789721593484933742037997786909135399383757827074657493533561629289423503203931166326264756878434963247606546929892852353117934270259976924534064117401969490983883579183932484090173924998778567348141962367270835243529134419285014737254108352108979321345687572712445646899808811332621994924496441183619054937241297448513457942623434277586649061962997393381404401879705504789805403457550794213092730629560239854493216418257793195769349246592707413767733071139437966160342227284796618034164752971868120988955857725055682495789037057067077154172269783577536900944799714260860098253124470276092842817863706991810442779463384398912611385053625703829409709231816184444047623925847009637610152850011445681988853316264698977859825821216046909524074478823918175021539348878179489431886511669076444060277665105757144456172095462557993514331965085133088670840419124844790771049841678497435684334656428856579878782927181659873156500788391429230135038678939750244725316097940786507449560188327193771610063359472117786895318875442093460529860572624598999539457732197628184824104927830841524761417178904083243505463296613366057324692232112683317076257316504150766544449440412405120780907430960341187490700401659553078746812736872807668936896524897176691612936013068056662364770825285194676569671926035761276487591036615569673126095723069190451434863662069406201490531826606696289257525103660135203759494741453132186562582716734616502052314815210608805982532889839914758424529763429025690260447694693199545373098069564538133910888134472176009077751972924644705043007330498619579947116627226808880150818104989809944772855959793328363131009330450548442200568514738555367632430997691038627505134056551715070441477249024868186251302268441114776446433590799268475836706812662587701784322054907734221364243650003041546292780454455600245896559979431649575105029015451666062094539092133472375998624116190928584655581509939356858155849751448683793439674800777100165419247768130386869693009588426485407891059518819558355959482921831040608460060363322595324266561365675146432931065470869866620708261381391707120609896439757432219810423878639927583420421902267647248302945588709614144557923448034893091539493660850581118874026900452753298386505915702595288044135572224895395278631258015055638802704929705560763921020832527142700743177776486885595011123541434761597501736902291468107944185251936508676452081196760651215380179016534581671453759397382743126918125200629470238596199630165428562805237530744595126449437640076971585556858728284130995861905878958152218293436031187215170151506713182353874019200609947069744314972204880220342808252343671564073066052177209734227654997334541963970834652497502197545248438334655637480457966944804866254005155850996515130762480701611348495930722972161280416619684595831021345069105590268601581822571937473271050463925854224741669733980996582197489630163404911658798366718468112669554326720969743530644518184727166744270046234657465873211209488938540981484425718145017452693466875684947135890381363580996584676121868322800460190364527795098665630602778679809719549379110789764063241029434794827899254177795283899867730791284651565472855032407906572904930424982353924232236741270893195874787587777428155622207846812320468702242427841446745431458705852751357539363534350491454476813030732285725317776426055466893606913760636518492139447926428179544543618073574621468752424651254064798274384351013785653108926397954935636972320677598461709548559592800418553242191499934158357429062473636947594343892788706442682483343932403318863828161279088266822601941100130553247573756689379183090800107645273476588315184709085224278822257335520030874716993316294587540993204118511975728683523626531665754964574149648962309428208689293680158601361848055401488643322130079333500040651749999079354608596957444079197947493888743373534505912568549841222144675657727811616098627435937406244783586422339800654291025325045921921891046917074302153540642753019360556811648032874761557491590318783790571109994723276020820905951542993843718548944542628516432237093143064736175415469388889786179195968030815886133300401500447287951410641899267858020046403416926377637427116193549825172491735318077842505333175294840688766152960637848315350264064732384004825348735348143590980376092482325495382337346382631139549197201953764383774625485804851400506303845428249135127535719575758683200214560432308086580541783414283206060740132173831394809247087291031489735794068646619706603558291909119631794950628222898798963364463808268700626263498214988845128692219702597110087478534029998998254027083743551023683063875334949642463474794936634075036104413576950561337887664377265883608168758487130701949048051786702025885833834341014510351863727131124153806598214628731114632099600200932886506681591667504289775307179031878172386946465416043114728714755449995924018460427160410002659292388437063459688813542712437397064731351643961052383098806201009740371586214599338247999732428644952225606261048825147396811348048774127246640768428486984343120083864047934238127144010347249456112251484205388014137900669631608001353141610967814642569368299199347502827950177701252118178207318959251603841317339523890022213722207719904933217616940960726840934910054193561185334338207477597383208103310793604263188990841074889806838163843598513180814602432854221355730577369527377533597093007992954457895990762634119458992677112597386359255903385156326084478827731814090445311912762002508522987222472807080340840677785058332319262673673210330220717914441557876601556681434647301588815081232511250809282545625506185971157250220730992808103679670895757245714006426422529081792653253447902185378782141095012304809917589345093297108110761326364386915310945626825276187615919617681368204903559422319008229103949641857707120064465671377040737036937550189796342455967482364047021228603859850657541497334935536356378590863413630323802208327306733207102970341649989718521264393205918270310286539354071802625042752148307861572746049025581386259019451456632257637921354479435880246365254703753121401601534916978671924834167586970192373159849225712443351104406143185265918324269276641248803275067927200051411588114060130012247871319831929157114200179047634900088257045064253731761240788340223942131101698646973728271873153459077548228002639378494838887740254900774621101674392644398959515922284177915054530867071411657435965707609807058231149050834174723204129071805173076344841239117778990713508026924915631394955828454640918368140709724698777854797829082146588972908248305825075331724496964627449055497983015843875353849818414167887760465702590479631224660425625403055413051053334413984018996213187767897013676898867167647354925966526384987811054597273783031893010052719366822942910447937791156889842989691296110136349843216523306339962051865564752396059318585323146701254347071520625421433381224540857763978281901587934784741438334887086325452662803744790455010718025133761225342414013519298824714152083151258378669840619780253174135260750688808010087466308085344857629755399975609442026583218259428489098528378492721081866183440123710687748187230567130886175149700713231982098334725998360952030170264188500134858567758418940863958608530079765126047058334380449562585961626183042600542187020595590528562320024317345893000621001298281587054134927248299704409698190327047388124569854760513728167446286849147849385965019483884894556174075951588866648084994034491920846475911335880344074731465694325697756147232403271633452737839809393891800838387201861408874205301528005343104933608423634311552733088682456083248264481294093299392426241262413180366541329432327015765966541912845891853853139944332619211462707866119335100572347813379621846070614104108432753605824615825383597654929404184314063664515031126447375704355421476217999226528703363061111052583475704737397723406206905713891263325591768536653157007275579317509611999605142862620802022497649510059600573751696095025426537166481765573201601999060217707440598492508934290471662319101501951122940614398640093472866492385334979084889636010830932187066504728394474474133172142101325198909615458296430650282145508313452915915569908779488575545538891756239747022138685295946913666800649223135669669313605465983678317538570688595686232212434381423432644446652603763951783977106055337689324040385038738234803198955278340595684470442646618538876300981683870393684553133320469295053588864129382180577403582066494704620568268660164381373052841200671674107887056019453979029444606605687995756892830232410618045557770175498371788219468830175968083996035295917977985957798102927820843644743799308434149866961543156126541578415074983196801618412097880352583300826672845404629500820077743082086144234881568055968381411177599006592753120813036355793829280641693171806188026997744945249366332453987107213657640416032143411984163055856892158704628570646850939741581314425894065498034232338363365292574381141755522762324423291027362574395474187404422686801792609228131418617201648807923128668004621665553067450035574459649214883283673895700959783097587990885602466510931078702375651324660337196268259494922077558919546828510002972762452444246213629113895086012506943705621410010376737475049762886075322972399526665088253831527873934947352484001005094371644447898016066258762999870249124122072950031164924774505478099169989900268181505241657781359711321120886756197522760240895876806799468784652505211225470142979211184701438672953817158564014974346457061466245250169349126905640388967821631163273648786455673032948530428303209388611033413118837426344942051648249270596264440474506824088302216654331352265275876328994656274094098686433760449777053061854221951399106507355327401558123267611226503116903357726629850863758054695908203976163918432509222086338999337047700607674890597667241209157122812698709802975768449999068515962330783412871055371157501496005645118414642765544478296111634106456946016502312747735749800654940708954243993293265652293726316137702254896776010148908699126920066669587563008293661227549237795743552311530660404033901547694613191265673002963023015193013001179672428945354802587809833801367646292239568605954568446793082315168943283524643131219891864758906334076152735171984409288546265085246043055929624783251176149848279137811129031754682943963659383219598181939927461648931654556202884458390263964278736579162997414970175005500642730834816528200741695115255812901838724022365444710383076597661560070348159840858245016748735013679503226279960837287305933544176661434027913488675246275361352001971024720725418708114004886034620407719160651952308611640006012742952436017102103653178465558349481374297524843886364063295344322940725684060858740718216221857231359966014262575547615605091088749786408000775397994539475860916574023415257930044039723427802059865243117190659819156732517194087705989740377231590985079141925973799294847004713084142879130942818863308495551882623117495953302603657063711977113631577367768448985828435052849645558443889545874872902399227202497482135200732749563670921165534594525196057160281322569085154402817265048218872634051513208286251713358776131519214823173177168353990971257694392883958430471169102633164275590240735819036364335200201751314725539597220192771234535947807113935790894953838842359948778667281034492832129549139555697195933774003452841868317580883128413163737214426485117931649829737413803337122313507849011163032432677641670460902712283481560285745064533354294286009213812450255733785277571299703836296889145189254966038463689938693684645365797130633360258623920068596113664887339059328797387503006587403573929433444335027057871011815084558929186913451339236282732651537424379020171035737005897337835652797479438565692485938579908959276311265675761719441660816771047240046199214240929972832815330349913630248751713344469380590909305171136558814462235494991875402945209262505385483698844550129792382958041147862969771392262173191920531053010194467438121085200302307574615512133535161399375184419498937794788001853930170283714370629855041325747074141487520547636698394648334292160188915393755589056696854320488354496694390770129000353291346624928535780360272989289608017839468751933763079409507279159107117653318120327609090676630215671025917241520692110505454051987754793985870110750620325318546830996577522866686330967622200243755739703722712391412400912782307763182100200978869498001303633757810197358479531173404461030574725628102876592476485724696777097029917733473597513165641646231624426950214554453583605334978672171217503453957852133477136115523056904706177876546959983828597714531178796157232213862617284971049430134124554413175156908846224685399836544150416639482786884947712668833962485543688576297946281711086350408547467175815487286752731295679982937291923944145787793920655946293817221132916485350409018504079109542464984703936016752806428862478148439170778308203801556301071511728202741314842387881549466268946877654020886046042753495747703098285644589405381934881773773961157089741649909684589757829914497296294522110106952593418170056613165013972798021825669043179938034681660162251522803277893799059828525430828227032855221504666386231300045008701103025355823123174315932657344307214065593680589768834549307060656260089471650294369513535907271381140382821717459315823396620820878215801209144698256548662343034639035858934598157899750207269803713852232287850782196303583314729369504657364900599225046617012524356772314205572212327379610115742031959336165901527295008951724216992260072252222237623629665025611213800709736649342442787098035640242361148760179202613780374165395312731732051630704581204543514777523395120211731987980553724045829349553413650859583176523824484383720003387136177859655635947580502060817575260235524319744730240824296115945977452097599900657629662929617757752714137159869951075899947889813386759429766677429223617297364816739348558488693161218701991772728814065802938289568507250347596728431064067335476337608262976427082475213010042118014763391399767298431832997055490952613880377578999848095522545708967945547889825538335575405400510729031188879946060922344359227533273638886916965134897046264775906659461682562896545339133241871886797869754578903622988791478443739707969308628401096152306640689795678032065223632857305619175301808322150295386830441626254147016703475287116851760627353059866565264243872746220844649067383248252678778335680326445913120796564864215911467952391608231177526419859047874369310204779890806223516679158714233817769206311603903039752162561481553531044526694685724080549581291435298237772716482635439240129692303006814275821118188004884165511698059120136699692380105465751461159740497905828546865058946188284256176560003963170184791604659516503927593644359407251027110063928761925210030940906057483780860431565142796991815918107451238515816552499372840479923566220633598452033563504292813313658850482205405043869374318807959145048615286633191376747205904321370856490110339944624683662941969759509035691165893065588275434352250424613916756866802902761005846222013166978397757525113559203362797507569301248733709520104889552394000060502829245265222335619257457715121889555609987337183856181999747650230493095766870328826550093656623854869021247997005180016743185594192145090787222614876633565870354003419908789735570410159562689751511460328613189347700648335739198898231804358574806553673769553841400138441427943667734686457910990036947739347411919394048917108714550061189410383798694028730368071936939326979531165106506154370706386318266736611223736958641386050266825240422521848406107600374221629574850722536005385789248580027500642585770276006355169567673934211521860066222197692905149109419548718489960532140479664705882954367352352267895880083083252859370406647898580051860505866412498324050954260309229779424301753050330839963978142508955368722986147093302871315499848710590819896167237495263021050267708829932100825368913773471571557562575405754927341111780131754676725854521720433123488445547877694954311079612236669548236566570891976838661897691121345937885912205454327633581460691900732614404048135804210218768059651695291318935919410492045459276423302578244922553144945961936052563057475368498458549809508368476144236388896151231659156672098921596675835345655817513848057646362120058755525689606950376554374953415194283829110756112918166585480603442301302422086249444412231922707481813790982391474928731538731164613208401287228090858450279220610620798646822479613731442133715764281782408071218078871985488759651525383393654445340259634290001049346165722861956276580088033804110983809002641113720996571794512895365716558038980458171277054429012020363782159095606647982690428098840302531436051548017383108327738213163461365312715672073237596787389844318167071073464710260800364531221068783566240055447455152343224714444097088151695714531244923378225019736008928269700974972527479650387033115028044931407289156031919026496558605581676221284967595604395233667110186883634092080457496597828492687851605337263382797035654858904191084311009376333868080740428720294316125720643312011243626727173482638345795408355617331687342746385579638913883485182845339790666636999210957901869697543696145457154984428585736081129801239160963524865378417482089878781536912265473772489470374236324980300900631897470618607298765767986415719202318425384352881278110227020675316447927302060935442156339091279029323246342528687952403050372669424758398732026617782414208688797271758861538659478385139872575336488596688134244201532550182213346703841706984247655002592667741021291206248891472730045306698736235764398498022808684231435878784430764523591175102327875448523673540880543297746208335192943136078414754064402532488328150180008634255115937476697318205078115871072930766317727299224987067755289898103219700624578408971920047768946403257770256222985966878184607573508629607319861561827151802762858854746418305059715972586541898303860079906262438510782146082710735463970853523939298004226747142325304435920130682515250253766495068929354318666366205762464195269328230872176106625960138080435094950774414458040303114930286650392929371681432885353728552737016364353408729304354944564592235090364934719490980265798366148267127127524750203840028079657432176180819044065751112434810262521147401887444371138003820490655850515445418609175504042045885277057073118550407938841425451337316129091558259820253946478350857421758414798122568633611678474562553783021656157865883601123586338228872193938143507017494641455118815174903011574620639088885585770288975442343046030153676508886851875119873362121635115483870265431661421575357847395798755170470029599605180106776111201978500476079550605484472333229962965732764483759701845547252228407989243309910603190602410884400549782515899618399522104238076206979610413837774127845564605965866222204215106457212322668408097828316170377627747083357025971431070425778081313095247497101175649569004706847730008101968956573738946609383325136246413622163399015809622084646091373691450283159916738646000272818219260556024569483633734558095777078271433740407750661879307639112510775625623292966219759492873980818428679898274602850027308647174807503499376231754264423672129452314294881666589829668501821847861016244866303564752033292806726216286118945153686740964494634142743723082092640615706488998137468532319932290811542366206599906985375401752343789966134648350264335772167216830073616026262046347124003244425047259829514136908619851065057400795396129024130787347201055157374575813802539960584108538320358636954442739601001469238192873612601102303515696092272388233592035728117708877669141373220811608057001907980090224241116577282184518628829373249615907362593767882824097868127401681322533459678114163445967294137808513774206955244355454901983160693027611605894613175366666246805568528704237645216319186980412475949717872195400931014203955851338872078602964837844854315205036561065525141733286787250544026479677607040825388905935521272517657097544272717708381750780782665091369496969755327764890959550185127460565396308661329540322824960371451465175753407150475997849244238594438598955618832727365506349288386106849197043179604109239111749286379207519882286438023712129859152461408060386039476820804799000865497035968579167512169835235876900874388806069366864905277210353084589779525189922478716545350315822211657109268455851999189833256043360521502728483531862149967925682147041207527683327537301640939660019063364724269037272515963353288610976872410430489975811877637388348690264070620987757606852968212363647411497757842075401344159218537131905526127552402773734469934302358217843341383898729627384957820132578739539936364133223661639074246225255910845611221075025953027855429541010441989116141838738822684067482958584035659350295834724305760206356818464504304069134487886580703356511317684195892897675447731565886119889076971818899371861308357770358686368444393426762261981067003348255224363610509585013356471793525620279969069014107966557431675719492783937427633730020942833343540477894156897213152886599011100237758351764708259641513476627578032556125460707820087338771528798909721534518184470607983971272542764685186428927442818185303698598640831602382400281054162305324565628053501348865497287757552509992079292166939980949934649627825734118654956566205074966878220345147370853371857874072145396522504085094736044062814748939701306698917381388000000694723718817783590429172660231225822618689295251965602780634406844728961709803625274934609211545607072724728912939129597702939040855263432280584992418532990002495767689864671927772851578588343524979432185203726614554235678014576992827868084088470988193398466463185340019413277294002368145356008039584055211727343134586942659472902787291727158626079766542029944939479702441600746806765248002927930040544739189608583843522113328457811669893336715096697821461535923418318355475372820895248615732378804775400763626769138643359596563092397987869595629940338681391646469449715463651889255555305647658081089634635699799092804783855415651349779187670740708366358476376358384098942650054437340127044620532483608368287194011796183662924562964627452928912360306019338263901887640957479059468636797392989705746802416996363269759828788222132314681052741227043611875532275733209885471669200868298561351748032301969591345188248471755751167873325446319410654980415082677720914758084417833419211219034688568836042692202728681014229210266131199274234801182557981736254511580700172827701453034229154757336732606035778038027421725319424521003111708972602070904431527861821164761144500413284932600296367469197211282390808797763628341252524385649300586020291170364010685590242600680760429157413705325278249055884998265592440420486737944304063073129013523765524416830656004299683035155099258669052129297489565020236732859648930917364170862063364028092146791639507200429261702033378086713237072587883786761548042309323911464034991348589286903843273843971392201222185722853324258729273761372773343108434496467030486769399326220039210703177437211865828094495308739681471813923585952896934094322782818040280400385509549494720471694289019697075186507899964736709765981228535840382053794075780169913145045271575648792433140346274203020648119262749818636867578124788928170054992871246219927466894265519176249887206471560933945109461938546801712054295446220848067648438067972267248983440524046998341628157887013911101863216106938230199020777309098562361189270846631163712264320509795514849213962695171612727082750095984200938165581688503254603385272483519465548886803931391765464248912100617443404016874203460576102320074622980782912276166351347830466450334727106798954581614305820926848904442307932799989668844329822232186697937557305627199992829950433848858393949852606805476824823968549644086509306470535006176149855869283730745122498254579059773954446767011952024962295578393488503789223731443899507283947885945699074400043249054358471195041282974906997257047042092721799211220299671934220988261578077445249475599708007847630169740101896987133289046703057030702160510800434815565934015123039840971444172581985907105418187391031334277665289230566988868493282443831788810422445413233435211489493047814108605053175161705994748962688310055106910870581514804942877516914199665695389441519952232178429267657429552478262156564610858296465041111545403252990692549070103384282584601343440161339355406175279335297527731549612372272445214944356618558872877472642605947659766826947837554009870484378608584039072547953812591649673434316015755704856899417339407334284396205614561456844206357096116324061718613145063090514942174514679692006404731128149038248650235481719548031580437082238606012101728245737990805796566631026847310684159420330845778583847551142401873704941722238217075930137829040244148577866571813509921597795759898082273365880903104276676196633654843440704849762026648569607572736586827429005009830983471755652358398352398796891650754212149124255984717882726001280202204396669570253879423043666480099294097392817436718283823261079467864813586547089165762407480287462554177696906645140912981026300116574155940675558960688995853062836447954157262572837262648099175620197031414414971000932791818264685607779756095733540795621850915748088085344413464340758988944027625495002928873209753026865626659137483977351492178736117022974554628542288427699550665844001972080091126572744552998458777114427445599908535967654951826743577257019699287607489632204366750260233988280934784737784039575462482825617405191322442819282493003000462950938080341676738022232314021744746025939816194436581791765487092357476939204532506386974181920409892241618436191449609010457958159012073564966815262522295308570076431042363604094441472560273933432756522480324647152229504077582023480397570666040271960754442630339000112117754052524635874540114623818425852054126167832701656866905208923616169093280459799668848164754529375212720893449796740322974913636299762755842142977555895079706921270905275439484672220204822000450654786495251744256957426055560656475809742857575367457639375064791854059232475402592264344682735360423541581998415958054942772401439813156127428226589879391287994058428215802993447126262833976232741429903416506828795737116115172343946576664175249620774300134740589313320422741408806185498104815990313704448210070156478345843648224923348281688129912733086015320870187107938562757438284655839689250322939933664084097727312134041270157736169467082615377799883704188017902466439891630219917040300856021288627716459722323420469001489042857990108992787516614467860414473137426580613783467017266419816286657484413839308634114825638899889988822617105402010749003580258143584958040983618128518318399488955195139202275544553388687483778967018706532729068421375612346020723428230276625369767662828788118175597426465936427209621039123247331195397261055858944823267374134690583061572122411930190324968809937612688901062892071024937335800652134852888159575551954450150565227639745594765406044197780282629320505094284898938464233233433655678659380105427999014066494708820609385062863246253844627197619883271009728599338133875773791222156721133137408243314379623315459240769635725369768469384696548315589246605872293571746844326236384011263093441120656994053045726697503640418798488523599940012044348339504811567442243523929261065645037686138428900340421862145726069260820000862819953183599675900368599209832919011888578332491770274290210450478109866661857099996207547628524295013243870182104598855423509744227091088195455359763315662763092830593360007072914412448887394047563755001061658226055221639569232794223316820685137866400982440493587889210482542771596598848469381523021132556074226705418426039679694651611340777492270571680006427382852295665461832419565247962146607899025487397393348868871794195400258498484185100459983158160083716771597635511707546495151473820652069462558969186938134779515139913621135924552662794866951138072906456128911239047034895934055703394973091523429720565060764555345442302348542261339800382778009479220542833352814998975507682456845530788487144350574796076042210194564030643888279033888467608740934979640831516523717719759923861869880527789057658314400524486742057797575796246030262593637567040184300660129533290023966664576686900849655115885809584159095102224243406640700246469652693983062851892050115846632915424872265237117322276458945500820859480688549919436023745520704361190641572631516252724780617636484416685980670430929843934712180808899690166801749573644139927689952723451246084237492660690464586480979569952290679355593882016104168017689853291602911772910097517114258243542062349020793907351124686627326201667229515517397227367980438193868713131373435578080932859174923045320889409456196729422624513554692046622191791642288657009136855666244433354131124826305763949652889328432066845031211446511472172745560523334691618759173188584514625472134622628943469729627415667207262158585019774363768639888814598363957706397701886235364832168587767893150543989885833137283721705921009714987441443517034504891274852605318455178872677385516519056050819775759559818506982559851666775781687318799359094888760367195513946682868432013277453986521514234468227863626196051454387670646464051463427512259481766938952499454957176687552724223848115670411273131496729066449680282596879080777301172557982426612365549010227734683095345325170563848569178684562813901293651285196740578520114126235968292817441073528992596042779401674422486555653878111137405844281930633365275893106625942296626348815402177596760528022090030268052141647783146249574075004387574673757487896663261001985406535284291721515729351708170246503298498842903556313910914433534155324095337423275297509574728716709742160991936797643399764150657525367197497939975532525760682078412900245234459563151688130603814435010618655368539474692855311851846773534409468882193775416812582497463079667595090160049019323668717363335402334779486566607824093197761309491108258005138284485342215468814795408998917866852391674423407995327418185001250045027655039682291378306583178125098296244844080998031590832637847879377286740058449030650154221675827876869087149229738837413056873123066983465833353218396492039258087386846861111023559368945182549649014903132805604951232041716935204385014673330189616195789595316451245139363401314114420998811015659973707198124556811693887215499879029532155387554682511248082312665069967309239096552515235160370900895459062670453648888955156507845506861671443251958522772903044969834490267618726332959437611387294961847451551279992048398949521030656970733056971692409044975460549416951922886172981580594258862120710557940661767137851845690639008401167696165429405888718385011273635827732227699079158478986001030734439482757563661950842220311298921196647668374531124422893633203195126634937393657889930684727972022458322421814516350242999212782173634615614001281463183890572523347341714002131716814101480150427983542686902960733191749523685506990901067593807844434201224339976654536476470584799013454843010779957083323776031036491495206270466803495800551741767328402387495500779390928937491864761177226363524858338395761053489388084619380906760491926384052357002937972693110313779471228180155722095341243149744706177056561809726464499989045820135911450871219709735325875506229885678100142748616101188170861849660632199339615043639246686889816673500943782201335605912553671321208309546890597374614818974821767890015922410045200721343708752286091832602036534285886504525922553423279566774593078794116196880687939441536484221275411371083587462134544653738966972178981331556266538774296273441043656535401423000682686219662066530935540402295311584746485432875121784596597891104937790284209010558549494849442488979697737331472398330890233603490867444495444204478352607060807688396772903811068270166875429299357718457987480056164004149485299847499747050770075802129041461037476141208719467595819744457560147265665284042236484428159929216454776949776337051460858257831743102394889041479003508353960649957488729344769812397096582825726082277097369222658191309209572114774081053951806357485297889415275965010640685714483331948422864716374297572179253267793826535166956463018221729027566636786478866547820923164694005273946245408037545632930337770276582778313869820946814186290623722958081986914431026105991328098171700113803399911238506591403997387577951207202428436088487457975811952536971198484227187181605774129623763592251713465199865739504080252091211942342342045692002875703391605872458263921702440273615284405409075175854783509916656495424782462744089042354338974083207996316529684473532321533792318286815307096621605647425836766105998908294847227489674857300491901352021967502973947069732644061883403215391861518027382041233809050840615726703858249167092057397305964982115904897408770906389358285269402140109522775958428252282590399119828530815771750141367520893879398459373201584578000382002021143308480550033753598232444017054794370530541901114523051265362579385942371853928047341191103700249370038597657890404094444925070899503058000063084540482684052470994863333948972470777217730690372418991354284768475145230523984439025640640202926283780802276186817871214146144481304813119278568124577697537709346784424819628755868192524173211724400476263356541753545234937514769721086570716358672418266098438722345179944824456922835728736262845591961812321770765767670645643115715365460194378445124820500130414687025390832457724933418474010257257053002294800314351909337909205809650770593785946715317216073079947900058843974946396867113217889386631160508796553333476650093452050356145826933694193172903927836864182175162185938464311971950838824346292459420669220236729997294822564979800534327608246946670541233530784255320062142401021726773783107007355085801553745171568284287148094147339565391976907861767136386315575585696345134882897934265671403705858879676593583782590181402845565556720217789451561354440177628638737280558099628236183568552902266963749076618140148093786959401155660481636701858521225408084203855937836472355103245922769576374861915176007573452831729719402563144705036276342986789318706159670418096064595942540844276516906254456074021430326809969015453677951862827042750140838907141112801555496298337930124878712445523430938264100040129964099865505375021374664378610316358457198091048781941139375185694904861722088587117762872369824506360010336726686350834961311663328268583206151353426511463076538158820036847491984692840167376560436867510481911689883339400355588001285892284886049622650065928167564129191142526777748596848808467134209234520211511630992035617243981235884998865971956457650985323899793689744711641325660441215999503562262043901469233222326154151354289033997783542920295558726789691086311188081259785419891857909005391320810819712937179506745780600780021205242708668079371032161845814627623564150806567053892204069837673414481376611312076507424125612388055613575120315854335752378784260057180949482073412304128288544418402401502397447270348117672273608128179762218744980565984252284317202019975230147299982776704204512117249738539506302854419320972887990201220561005851283977000378264958272525410233691144051373632382571970459477444208292476022554128839724861202587107702229601875107179315725970232705882387998399864315256488768201191786115201373156919757313959656946082175771583688332613776478585365247995531635261428287399133429953304470135629037878761765201043728507693626973049603895067322536700451169749666180618398394271106853361174108470435866450040922097543815034510346431618269945186802498930645117804444755688719664432903569739898202689185632653535338104586400058108632050493153514244954008222470177459913678576835248746910963876747008073320532128316427846868712653411310238108166950503175001626366339642721894306807108711197601689858565791066738590211199625490615697425719648994627892050170746961231501625124480350404059104877182087405644833886762428555667721084588575274659205065387772490460226532433522357948699687537274497063559298312768168243130586366265232724992365166583829065763468224165316502158233890439012238161664211490276225732850930264178559861150427087865807839569490177525594267625841098532778394895112817734278173731630326434275490974346898159440209992308137673719982985772747095992524470564363660344268882339907866088063663404401783560887090034542542697783980298201920745519862443317255889811098568700810489008208196425210106659197215564914458946912043743580729536065674361497544263151025492873163298735395623062783590945835602754698052164394185820022664445063908827153343120269254335512671325940858406734263182466303144204419029473462823943213341187754615731795280724667861116856429455846927373491540741225881361603854297918948331282930902945784244849312304033034395877519326795900354016984155661172763526116744596842457474584358222063558714409810781756056861475723875143373403209890290874207530357255049145262568792162783330439696808786393506392254571629081519882101551226848130483483825509678678980061873996038463266585103257128812259422403799913663657804902034150742874205271233176406476741772068600586644346374395323744239181548594221899256777760103358393281765021078431305645011760380741733731252268754536989538523285041778508750700671310434442288493723162025489111266690355454781418018370751323170820702850043475350426961300103796667208868825103533954709501232098698076772761650620422476235125177749484961464126538851406660559023286788881886570999795508054300271025668148340299452351948127698995167732950179716155987383356701417948667849082294316294618697390883200930151236360797916548141260858718809022254894313055979399619955169023792429631921841283422584463930963766815091974017228500863743096610171044125446609770669481018782875136770202917543332743048609530525144577623240620196102956648100322284366741250233317816045084410689296238616824902144893174906847777807175502806399146439188570011995336492848092633813709226858903709169860756788867423014640780143543114071263243863789070629541109039627758347705084319699566096668966848665798173244682659666049242131453916886322746558385174533884157786777359799829801005863773490916700535338754046397956330433335312898209537715055657328486655273506864863058285492007621137364840342791832272123732984758752016987833933890236551936167112359888224193169638578193019480257077750972654581755187025056364051857489227016241210578819868138115797462845137222052370915522700894075535685689147168563620109015836659232891486833453429121068073158989291987344724012074647667988734556044294194143788129811219012919393687918346194170622404659444497779474818508936824760885149373263565881641701653311887783837613690205491724854968072682374985976263613439128169039710415105554049428463365693955325954499819325855125031039891777857129814171918499483212934989586006699389324415743170728980838914110149734956635617066471033209557680895256495236771034238723727985110541008170822720545750699782219861664027077924771297527023703299908018762894988982019016470277359720375821630964748492955503140297429020726371009429184615545843281908906344935656052149655697455897669999211696305906407472187104932003010608260258300959269874283739274870815833290933390848952092338037424388374393602674012981099346243559636233241329984905885692497722516575057647936146288441723125401103143077648646924310561226787683515786549530710562553987834824129206083442599145334835304107798828389842642696869329163064035802428456039008354460800909947594906099285714785971997934075255376977582020092256970931826886998895355058571038835478898212327141101805982534657475097775561907866120202018272122435659992662068554072981500836372664780055518130148321262366469448086295764547379588706573435317870346752907857317355521833646743147412159627449586433412411288152892040439534043918156152318185569139116719737396479482321521271282160339919202475671148290955803248126724667717122062989307098389338208007825736059646363697238370156515139204004274856904041993632728252095002769383067648592987797391551056187496647332916634834016301965563593197681848405234485958238491011221850813504136436387263251130223608963061786266761969602886993616177297231332026664115058699957741431091487454606693438012037734329344982882091560173569684491234816086832875124157929410200753130287589144275772989683185740357202011533967083933204140810541228021217728538175017737689755782766202176149675491698128427031664158016625408347044993716502104968160263224950723553394336712738442463481765889809025510882685052998561797172236300285578037159773779610534828518905044386026272401166678733693057305067567658588429537088423685496583227529186487448439286818814267421802218108419292195482580813218474380710600533069062070716864996377541866563247375388375088583134931153128994217773019539101589306041008013314257485246140061352943168211894838193200569547024865185203408596041066926979529049045348177773775853282938372443558013572105175497098867962717405374287989746629975777608350310402104659256310075950381898386255232136032694273509934006729229054583157689263657313538984208114219121963600708928212056982498187737219929734526624098271902822582351368223871731653023372014778332704391054915596571574154984820513752752690220383770901121095157454175699214680815922106440403115641858670846092328802205741721611533556593128819307436752985231005983184416201907014401003432948008098364031877984080395736569375459835753485975346568453581186127854078519802556851448415842921423134149147007211760444981670419810199379342214173508487314633428899347394988253014678539295683783406028662997883734847128713764514668275946109870712261456466422851666538189099867052621588684226045188323967304991009651455363119959343516840140109929564957940689233676467147796741497819944326646719581586917088872883256934819236262509241984980038588273777872604208010258252235663641332618130463931012191071240079048702962596135271854233446180936083045742774730651570551848216371058993987861139628323244458189241320438811342552543788099652108724485338497088492351308921944070860478214101983179464178576927732480954745686861467596074893358309457722873747603129027593936329538008730065874405915595880600238897772039538554741223577856029450621156139379142195573967862131649641145445974866391680744956398025724418318549246132330194796619792858159718821986383222599988908540884877307281551111498847235177057631979493844477938285536970818062632531706782657022231836181463410990492533976404428032223704505240648694084924298829904935891127189708536943867733851069380838102102899763033287855463130348201224654417041834405559556273976052874260488622976525733241274516985553015940976161056754905509246636736150162063629122388259357098705640555250682708554109856847150722486806007725504350144231478550843621650760931932578726521771317798025254511173160728060422432533329679592729391226225081570605508781883506566168224747617894665972083241153793201891926141900849355796834318863117844900836189327635389394518596365493910939611799861324873367785267785763185331985798881608528505908368909115858418201278409879202033643927478111285909084995440291978665150564304229206699246262747449577743420029724664680816773960534805095579574062752043459692056749014176382527595571873089771029881904162665631436364866110692758730826138641162982189592281617640703269217948172049246303381108484269531430336742508397023268362130026207962168304415530900752278048915302070333264013729195958211391443847488161190565842189926083430677247490669597263503641561507001184281841573941559506166330285878364543248547395723427400302030185320743377939161351760654497900056674023284786462593131234270698394305978110802791618941955373680121457956314217410404689028309568438994795180456641493232855896743289947538851342231816346616902805710405507217763976739894049361366274356613558052325204652522505604033450205607339763140942536185141150942469020902175287059457071626870910653508370402381759747864421587432843598833330054141217456881353485560629104258193041730071336414364976225351266111516723112018656058363707296775767527340388544050096269239768630324270434330250222248574030152603059326929390812955887051221024630900289954661318019596339439519364820284041571952557616997057604827078128287636184428147614415943067245825683113711747362265578375845711398241775730852496147464249987328776943642039892417322456762619108400102590695713444159827134129089115797161241610997744228699797985477801923800981462335273517902703353471758841192445634713179070444386549981460161674357430427676832953435773378263807550279081418092259631893562548550250270109028252205467719734083371447590305594333743152656711467428686544212079071889903476820600877732741155870604363300903470403442769357095185133092464087166319566293202819919621730236217038047275731584774142332165266831548519545833501698626241068457050441202601386648813817551294768908249360118897580022860039196549444832730042320941311414907464237807725348005627800966792956032533874134792356308621590935619024610036430274112044819188116572760516695750158325223937797114606860755393769649755047991982070803704484007604106568396159352651983308015827141174939684360895065634758705051900541579496281102370044973618988388115784117896286860904666932725567530314466661840236209667946088732174709691249577092814400758263850905090045678524483621141468739164974805249827543437147613709331727382345945877238257932816067782168424454326974894155634267912521881349949094940197740444459788789730767086695909147499606194359129052961606984458232391104107859507872208855214666258527486037903700210258490268668394654759904679830987650803773869225904495469872488191593637929030069453961317482658946421903573488418659429313582799187566890657013204593412334329685066897082682296080140611470825779861273361539806790379522109985412686580925690554805912240425503964154915311890236948746047160548575146317386017394854325385396099730240815772724066898245065261027292410315888279980392305156518410709699768862648464520166810016586534522856039945665063743211025148925109080727558401659331819995472583788185010692951412982123586825792704355297890478268717580046174875668247884471090689396241883917541498230405594825455422569042662270617916262630434071296531630360355859269923033184688151500102137739572389999413475112076952585715538818219581786432563128403513370105974640295565061594623908111621112575050296184251454240689319854182742754861373082279752959670312872278614390227535064909510000523068773007955699549312577141208739467753395525314410516168163620497402546504673553056436561825360300091797101031347127035779930002717327623764060473039869082871110283601957282849042611727285444891341976429183552606344422190395224102977978732894941578177843220381489195246818128802848766840982326455917713933261938956185980512237740015604747747920344116761753580520027268276605460476599997689123746031999121061473928922673399897078578238102359629060887186767044484174995182951326715037744066603198158286003444656787466135735721421318870338566106106436933622845110779768311856350430856356248005370506052323740565557041828171271727389518127973122008529862910269409487042127437122711466046300623327196418809629312564926838704939128909163579570181624373935525684836835693042445255793621555191703267491382614566225641684764882679202745435350014707592634794457167298663077043642197051844995701758850305821705485955094727318079464246478439957018197985434415103443633221020857409369139481590542487837951440021294031607960344007757667583412917269131925323008801982990210027620594817919802793838966574118470158595722052022155370350618301601281337458126254701303480180236703801438617240070611628266362971868654200137826290757945682568984110870641703438899934373301207037990991405506569025349843155949710138161035120721459752513816342430599132179550059647987260850651540500666890974440286503163424934703986539933945729010174613107572963181936536994060702987370994001887945912427097623816604193194821013968234423195456825220547118579202868845910448196161444819808734478126112536983901870908054476000854474134999589220854006724740140274142216269483459461661199033235933302395210842986985060475273739753593827047703289026862090425031466947823545160412119306185620714979742812457253582584133970151790113504459695057609521088088906196142484248280087246377724112604871206846879374000796315140951839694323834771232493993195554792945732182780166481565382935038735635656354558003148501319866910821135343466029951888820954538975541112654513008695386621617167135276640091008028814049137163109732796849018731196047217974035299968884552209600936309716968001146162076666064846625182648699432881885954139737339848868410748039721778004901596442537391701214527910596319880764438623805726363951281522068856692539475364641997987109316430109765300195059426368180426926181549349429369779294900221990150422542564264199928031947651867499075450726585109220906569452512353622552523620627135105735976203274650673339830410351786657767909134046010074858181820813456784730172698065417643730334405520979502272837541808947335859955872651266301502645725282218777671741347600522761003285587899775621065656697064071295492550503472798986094488038221254844169919170888843551479354892499077938461928085326403747979636184258733516821410105927291705331367425380320346675701259455033899340269488842264282077183629413887873805148326488642915258664536773677380277160900098096810629258827077472153549491805780754347268244350840694813705442718257962086287739067918902924194260759619280553303964519527522790397856271210338577645425033158100304372547491608217258688925085731161654288570009069294393246727113808813298451893323847677875109747076120214422912492963815369523311485058957892609714226509386039198930733351554048905624020704586588434108285160545398550813051605054085451583748072661316657189324880584946150383504792429798589577888023544360614136483183435097655820144442424964697343762068756140627428621162296524541332340507587955781679207845028805329328275769204677969516334875859858163135764495117756608594737128408591794279700823083462235759723367752269719360351393918141792930079313018726851696195614675152604342265760093033467021296088268259955452841341966023384307858995265995350844629239465406447816793222658179817769785191528768480997083097218108145483456614909884761498060180349945520044817682970805990788872476819926115336741786362801425218013387216509865226029420111957151756584536701921212444718628905688460820757084342246966760939426448830053908231188996883300386394820132557613322801061716389051960955148780207630126364166179950800412750621480379133694510429617807365037367011501093694537294382669292783887835800963709823518011413182148970480454131322890442359718445410475700442843527375026731684617829742351555321919909060766848020274836556525572250948400918683846805224699883572390533203982636928841728349290761894260008979998692004515965221916066450191316394119304103252785787358081411438891452647175737506374177703041668196429272295097208360397597364423667616906330879260900386570309662051969340995809441592935357746661295584385531868595734094031431317702777848548345388534045918892613076643382166355637428219228439887019736188591990035555185636943450202271043789171809125208910194866939698866327953099735248742978116446945373424716025466433293878062841197272390189425556333726630861329580633984533879994093674193566896892494114365800956672049822181041808621417540396795639594523506355053013281540421531016075277950819610113507661834778356966979660828301632350047754465003766653574418380873426773155451114929754381085567255161495147784676235779381927105396288523554603126926418624593177693418131350031656217003055830525879223088709906062759602499021276896734182561791043346563434720294698356681255485671543943716508331364895694108522862728901280006755759094656248072470870606046830483728437828071540977316262099318959066414666878900706740310108841607308101425477191789361811374672322703794028750060868923808410370161274702433035246267441311704198022486155879783219982660682911417784677192182215596103169641219164869337830686582696615546461458361856821947147795636125243064621815941459098113928931081181577967001308348770983001922688607815314781899783689647609966610201475502960219429209083036523413669641712674587429794337051953964129151664183112203301285455219317539505162098673594138924640723557923660434635797744908878573962825063033039977396175612618373244480617301632249456627470059805674756954608973925621807957156181190848045608381227000890719858566041662752390894547970125109296148802141144590119171822084178334609735962357121538227724251871116648063313478270725034588398849526548139785684633188781896349879615831319674589391031521866001732137611842841261749137933234638359356185380633552231955910145012822762556117883001153348278696243841324401572456207189868054595372756520926873448290382067874102420967780781014193967777976271190945381469363812480870795969801107237928904126809570190630869137241693640289101153216790794494963014644574344292069556016780737144366804785012994873968612761878395986580189220077946708712459284036085259916629731197622815345347278396400644604745926030015278887264249967327191162480057306206615658631380680139696064237422086906964967843637770677762174740754093599076922970038207499191578399013326873408610507865559594067830652084513989148988329491634632461607289635389158494092657666605657720345937105872030100918666311463828566555691587040100445012042940630708402994212772090448779400987433779791115800227935392322151385752304376947901228043925708564598519342365119580901604158899879191526385809170952121805646681669135675570518562887732047532091416268453631322537690465189611067053281357734796823550388060370823644102833557051074350703434184798680756640792845566374429996932386109823204689330360187077964064253472427349348411026735753311788852679640491457214648321298485934580490222986230617737309389493015563678992004684536033279610415658193037569435550131133484967285909680860611745328371955697925527463671311134642885363900587504919818879234133761111151430457641559918279027332728127644792298991385337292884132635284704776769597747812593413766464570196000806045043367730578558379227319549949359774619212014551626527229788339359969165663748341125015643051724603707014052448548855354577061964253807664580235480606731307998389608835171339418205035046775484078112126719546501912509289276199616234588997836466575747647679106966632044214916711986995272405964205561815582818876867020019825393274968277322029067788621682465773780573956358344039387769585356860094573564276726616712288283280976949464483468494952190627462489408241118163380481035443513901792083143297322200687185702021590041870467670545417760753084093051623753822840370354803303426751924265671556280814082567996137909162006635414545353904473159094490359965639013693402416125867573680464067112033165793788524153486160661997082982392279985846754967136990637214606077216583777038495478020402690224350889230654115437135643642892216877959882227773280947400273298236977091853731068054396839868155927419054563561119522199924072721505569825107820833791861627008661968986688924599605870444492813179208662959490149844268727225327041475360146560361203947827460530647864081945916225269289717340828286843443634300090643654721329888253069226457325093755779805688696882517860294316987355161306781883038147980062831734860416153744460609651174856927027976651413586415675328964328629071544738780639715781947779533161799048648196229186971882589460692488217706214608882321045184603297316097780644610648850349725407422744946472634404786103721675265263640083140868727838019725310539083132028343674028489256321043247409690074376433668274446239643885635638581280272262119775507016358145951437056798398878221705937937503138547717090557585549949396007507143700745538301040879559939406860968735898500544406860009919675708448077560955149847382462836316100525293151081047027625124764932372615095474286680520581429303133491328126799566136695529412629739845180803186814308349125067576489745085105434087264813736365674722550841012497437737131512999501835710591644909378011759056182520005975337984404282203836312694601519879365070294900624481820492206987833690937988423374900083841689670489417114509087571443277102292362093285016949253345883111535830785193794948374156385264229772204312213861472905798627339965771546992145369347624492496487612758537151496874935924312237902745276884248363681170667781610376098138617918396976692028816828975452880006890353821258009195452284440435974239756987191079392909091612508992522865859412863025889525812580487803339910550285212317019862678369873642286147091183591067820690613347082888011822377489311346896760466169621797249765805362744897774560549651393419145591097375826055549975132851789165087055374667814777118414827304454588696700813977944530974185367978054593426665349282481892000998853977896131513084488847967654073674911641296816514119563390767082831492960008350758069295336070248656334740621436451915164297848056462096527118596598112307114755636017457448028075586004228481312289362888290486559307523755044184911059971635541738415615679357874523466678516187047885917097490720526063266170845155477851167736805567456816950127784300683331915592853185425109409776126616000618359627997380247091691769871853506171775419035029498140706585642737540800168557407799786579677499459841776560593042658928047074331881474347573997442898192832194067532451232150674466703904918221693686434930710793517805502875766326709187225001488963089163474900379685014805936621727817904281315257817325970102508665666427727714573658533373163780063110456988128583932061631375331652418184845611535502838912243942990326056997809061129677543528620297824993548419298945225787165086445450395986509165179947164549579464341578157928877160309076855582371526631970407119880328208696753515469635708908665304400956080160045939708103217008260946072306242602372259583144359489656471252075934974414690056020633392916000863786449194004052238377178944489609357371543465162111738008226343937061443631867392561460052053651736866579414467533748510514288776034760394262235617548055197204266790129695142462096016373128854492708025404528217989604012787238488174349213321603937311744660956648712549379878222200906276358515229761165837862049070665117832112041652651233885568539356527359784428875611635318689879079334252808572280272805355706547730566440159683479525095635525090761840873756012030775027141578667853920373535366662883473241459530830362520590523721569485556854211591091422563427974612025609878879677974197011176302905150608087211308031311314085287352967433934489228368326534440140727407823433345793226138287890656975353899864431076836970561454532734758853250700071012192697411940446949186261037980363309979382428731769683406992223168844392992248700358897941504132155597814404930358011799448681838621589708171289126076314834050139776689546816942589049882938705809901101841627806637986533169868544592627480047146170332935008175700795431819190362400309740883416839776440469755041033050908586370749120695731554456852084325249903799348371022373022114188085399131772971884889467003021462197207650584149896100731177184021944684853872092815693203316804169198032052313582012989714385185094531232712080961407751197739157786880183199070660759129431469056963477961611619229976432123753507356520427753269374333734131794886602976236883059124528974121147568090337379040638358338016655062904994204007008050577096868618085907973601436852105165966691828551785106911350709799344734180596295283894003650013458701126962888503292298405351498432892138225588944422082863434268789399272645903153856150397002479794827129877415122056063971652594912444213247761716415275364655900559815191076692303308876670728423546792695333414485121205965452222872237570981104635932916912280546957486676393577110990223164832044031434622212557264739531270178124920432070238552170435654040717052378035508345897573246798745999697550192372102550048675541597175965654301266247628537456269775516860275379504046525894976207953835205900103108187160803607106037496284274636820412574631691264496261140928869651174183280114996464234023221536561260968206885648433465039760420252686201381139780635662332994295397344367294716263518973503150224440097802194930164051487971323876170060150854310937551600082749000210855754051135546453508771454449304221382990308141935040952177572710062366937396685737555311205117772979783807503288890247787822630706415195188037056770694864770037350679231241470585802466459752829977260002396282008248850055812406231975466933261436615094111549648019885459205932741785418230859893816392918076409803541785173816161324811873831561191320539285216016944398776431520402411158690568984655034115344395096235808801474888793587664084649472524831467159602576231735892534696775859961361476001439758207772860839173681044514704365398029248923568226036432418854116542358257191386451016158313413949607937367760340564467151223702685825931313222023228158784728512348718512858207213746018546680755536992469412609174346523778511527837060246621778173632808032957226478908398860525947707389888986850982987190312279323241196647797183156627572053653508007446101646147080437313832826840340079536825860982491542188934732606265030237082498289846500522644935839103323358197042540606260555034466497171416103249814283892756436733350558818254332186174748019796206305077404795676387774742225334617258754277022820830571726633510035911284676909817675255982927360208452560437185226382610808395020935235274754433398769316856409216832784459799997098824520955700769850592053966392812567761537212486168567486463043178328472724623482734325370214949071027347896204208006233046768677376152188613078557790355330205068548886386911637335987889132052122760183777580192933667929728043067429583940112192104024231159692286451092031163348406352503239344853072874970654400040510925994173499892419005903363704079745157280579119935531529615570871151462343395561555306399234889345284783493486570773910326652058163335184466684277307304800847765414368991415113970221440219923543731243904197630687214585537701839411644757686002881814750877282994269589343142806061585737605289781975986723478942220047684932729644066033630687278132527845539308231311468536060684857728017380571691286242914029395278296443302637229284183797395498692084244807010695675983625225901216865123919396285045062806557183162210382774445760913150954830448887340053934185475345461335245143568873979446304285738835279261880022151968631793858303336484904958533530532257398216196768572271397180534866641824008435331228204344174624429001032446322200110608752948741025191064675459289244844811066461203295422164017552118329676196910026089774395114855879655095752448481486296097455742005622942533597281584132618424955849459626988517085061611196472309865273104258676579494936405408496512027234300789276660940241762602823524256621140688568932533590282458844843733365397080330756810378450498617948373645412382333309771039064334013392270460510556779855208595283935588411572055581421655716588820493236538375118015887550243967050627830647442035558348073592463631301629936827273474083834070981134267858111816503593250962008269565582139417575191060533249618574003809187701957165476965386698423601343295850519548097345271063036801180662703016830500098698893442341182027171903115659933554076332885756564380323118351807711846254582543487418189668894318948542011724446795221768097934564381070558853732523068519358235466778546551936148700740838746061246011513697954579392599738808783640658425718437508285384985802487888037584438416914986979565619828594661848299377364144283026234653628735419873168052250611092062096768127807071677223167745504504491739369282423144193915383272456727488812608474163554742853858974942217757797903521791127391889802077406558223804609548708873076217840296239848046168692723689499249618726965103249655104521587209838473141658541944140943794922076169556292578386631626178951921784985858450251442028624830754147477480478535761692477212658637790176640015392762047738412158781740014586226893727975275968206367329841036964116576230144295724107034533814530852498525462681290691976232955624768238196083274320271642310749482640829574657684192378337576569649310283829464304301562000908999904925371572302790005104144090359622703581022333682164768425323280448511138182966020282369799387847272975002223529807859411845877136507381187935591256941875002369452560931486004450026338013647188713194789148727765656141293312035622411964197271184188063479328962377295249878815297313458664191310988835496984116318554986895247368254185181274037734136272046578811168498436190440275972813635647610346370378032503574278830061375677642597676395463657892031028495598187439381692303917438163055644583090080691285300932643252406355136774651045716980378310487939172473630023170510731205700520230033071035124078727296630047414569143181779365621650604952867903613737470906970224843604619501172395381152007919059535250129613578062184286576717717981143754608402973889524918253885353199583204943211679619696656923767375618696886296311750270456870808001021549938795664932172470628698463445263410815245924008525255347064543652938460262549153562596021755489817413864036164809097688535800099809334111553732427227271503572959816168638301816805137953447137176498724558472621358814540790462969332820118095622950012206705638882778045396699398002567190130544605581048653335706805936757626343712453732970541874770333656174167433597543368350574502857464422165170514874360857036921999801177745797366326853751419636309262600880810262070869209720137335974803704455548062749439610860936295209357203563553783855490578296127972307265949360690854721640821053965584302219759904239627010029230533017243282750680531047784981454147013166314816916824719166472783680502944186736499552850774524405821603341517064150169919588184028682513282412000442935832713040814772311741718285586391578932516077142530268149560024188499424687054404238412073961653485518972264596074853631346730468157145327177698143910105100343766233193268851455970809180636468988505314239168176009252212304733431361919204846138207174904927912019847808858171589956034370874964686801959036408441299721483684361125792438972605426677864718581246469052287394394185162714915567414986220599658471424231272782276496982475036401995219829790961322813242689377019116456615275473527345178509884637005077477223386776735683127470038359363279340962400736563973972594496292872157638782526769744493193359693935380210738114440897261914065640955837440371310397861424288196871289967019150475109342432169642031118806237255479841643578150721985271597311750599967779782353766640282454213798948377174523235906963976052558086699488308739654162379525538684122748835254233052255769387491415195831772940463857223811017782396797255027723721137615051899222911512354373663754320292285564276778630936103233937449376960978159216013799534597298750733097960613642167903935600842900312101785623212863721008740070767088326707622049607172198257586078114506514800778623108813710030706785472212440417230376046695278710653855693645976362746060962545602456996865596760577527508503774484640829458365975937435893537285002449075495332712046961464702641680261058815559863141047190501000010558017336952049391216910264940267012898036869836592747599506543134600818003262398367267292838939924512920215401125402847579440975033774001546551458649137371562202100204552336568183341315376751700605479506470412157726784165419510877027903547297577285600136150606290103231524396163318320923024729604522782119981317479150482861789216344495358450156946616818495834482381455967995477061683337724232906324568530945050867478197467392535782600829010028970770403471203106637700197981748260699175493241086170786933705156190808479059820535757275474134711886165083117347498580674123248827953407515612662557735835903931486839961465985258269328380895153967494595337117773921176594390656951710358827149535703593875132816005302733062045359982689336253474804110789660586172566854005380838887512992628939257338293927751511153339733988614529503701432002378045893276751879289300643469238566987692713856672361636220309462772913903033131245018044883988614692767425998091692263525686350855012112921639012942195042785431488595464534534964806978111493377472755286430337192258171654103196409012465915260332812087367233357848033574084967490545528888984285155862296091086423553133872529259622425610061668143801481962400297639307716425520306657813650775721814757897073106835733900462714885469832507797438817406494526268439854952463412209932966050734592114406183429995869387009626933351197464614909865881843368203738431366555713480543644376033077156123278575451739024374843778818208893650516350841526914995543118304480160273405284068068489482686643807897879772576849760709624377740931107482723217361311349057450842643946325124087277332688566615119284550116050974854003189563888490179155222503792676477364009834789204294249661574811373916759711722653746943909404940554700793137458990397589484761872000175322743627625933188300374495823419985128447325568146418956200592529450497893589930807498346919146258287714525083273670742113521097278071177050716841125274884898316182842083806012213052221487315419927550872473654807871724932919686749511784460431701548226080513478877392627658776112660950299586273753888251537214594484032041896044115106600356365813877488541514260540600241867369918894334102141875723501913771854412922147189082786008362262767478190081231077906224362518355343631753833299500880479253711680681196302316000658902571243498539332075315750471009669681355106119524786469733362719135217756770012288114486012546973421877069569167429159331014488059135373985819167391290855191591587191896115572008624461900912433083872613324574670624878401554872048283820019111824085008235989856953691070314661780767842032755556280450630244224523010335494978552608212608055945004962530139168854417255112675655742377709426017732969937813157081482965751267391496932431711046573242668328928612352407828487287314694807139204894027765422438006673328611335185376912131466293139424841417731421237174203759801638584191409381250842934410906256413343480286317348925933141362461079330765382392406680605873764167162064516854035696130468274068439537569736878181366560351516014010951112566157975460474711333978435963465872622696643955334773819405253230045787996103299444711314105169880370939918239696748101420033184758898284686747256102283025301546832827781644795864995059773579894459220888638143459827898873535037125538328912270807504010602976812272282201771981697097543396985529660321050595410228105676936278252345276764975371139471980267008954403691604423621121753905362438263206701978747171646679813989638826803339296246425741489106311969281531372704131016340573651180506298981337940134991471871366240533906033429840697697337078872220969467521646228680249844262697185793737618549602203997060837210947305613774929871969502922729883916758607202660821987139335533662585597681726538664225416801591251545771580746455998467525365159350353541244120242370935725741432447594133255454234513188874564554473905215574405543653488655065377774509274162028803546129189129893955189907943114458728515497777599055850792146526225907898327398804075673088102963630625649681605114755938790983814622075889111739784369526897624815684401699687427252482271316129169078313499586696676273556818156543921008398766181769806266225307251673568510372924904800513506728724049986754635637693417813213901998593322065596642411793036752483874035585176259401494467486114977925794915779004626412189501942921657049701861182546861862596223998269976556096591386768465059236766327820299550322299688777818481056834589316743095305931916818200428218159846666212080312963546761661790967655194347738874303534134974865928620374817397248885272311110310218595719315570642060443870009805094850635784893609918216845561869865753528023456616844330601903598130641069378900423744127266083484402883641653678705488822483524923761092358726214233226366595290429290722391945597245572911172837843737004871620961435351888638795438987975538867660403811550150551085342228223266905418839169520234218387159403808899963327957889942009243570464858948982231752984353658718803692892656738177206495615188118794702603184476216109032630348739816627082754077835360809255484261890298383440085715644263736535389944425946698500126170754217180345002711212191934007190271400996596704043034709970079601152121590732829023630359430000111657766021442068042944424897893184824294273934204792283844443273352674668713654138042115776887770743075745521103935175318847018107013796386708248175766381243744458714286555634921067223173447118297194662371782989161879536788051817263623213205404595008860446453387675811648903558495640636028154542949001361197281430332011057694345113510827591236520705540504090165122474843680104444048079087342192789674889951142301768314748175567303446997417351983224407198703743034507682577514197170754917303341545765625498806746949910228598613194412505049481645306486766932546338479343969936660460112013306927959652061535574484517756152104589376926454527126987065037774480252200966829224183489036012844119026834815341782665863553487783930587788953242613400070856252159352134986964228293164083229997484594413238265436656288970335297695099284015180960221502055472832160541174229140621626553383993190008869441289767931927320939906328563102209940911852282682623311343973948761242295214059819892690718126296792093499361200219180076970905095555516602548460377563479389826417197617990142839773086501800496580994070953789155842043118148672916458182802947912647359521553307926021465269308635826168736527826852295494199019810828999654326705659658623220654514627538542580069044324049118633544526082830255537425710157375768324431471317859625982869636063781513337504319196979204369904405878709243925235998625603091713718371357662134275210804718956607734852379351209524502530274283107999737100547707931879236435620562073719686694640083620150653564369973676662767457115582624746930063168750464724605592238058486777503107384951109121704284169720551133701421139288847077381727500697231573469090901720932146765152742194035490426416394154580476583120933033657786303050392142997699300684569489003507352136664620822618784276991819180101953090978533252588162279915086584079928107022799889774331628305021242837885166038227532877944425042525062894952968919901560323735442715813253591481348192266728316083560930490638451916405494544553563353386549747209285315634481373408026288759548940271257230044803063722399942609874318851071252215313867391823969162909829391560924256215299418180321873191995303037580276581154905892220059183928638254543867690854963608646825626586755552914524846152243880925458362072709876731806641169815586328856170851421091868017956121642276891555691930729973778511740489834721274514427617483197077928679914236577513111773084585898494781235234524355584984254655382887996523234282921406739925089891582539613111900813130599383276356031845762192931125157709656580236307211627370311568036372562435878482155089572062340004836818133167736015576437617193235698582517548326566385970404629537121563401559427182534762114661059713437709700345574211898086312439477597908085863270623840984177896921072177510579374770347314342347244181892425498919395334253625402548357003475728803761803680105541845872537219198554500408111152023580583236480361540416479772429619072916359488529572777910606579176792305714016203602324229293932950686248180065025222056424545144771657237239915735460467626074363424132544184314620321562021660419111957636024958249839287718358790265714526939629240618287490815972199613806650533824563054037232168182275358505535798332201845575217822714372810943941273607777306702114504101604804503351923374513378719359856100369624448761312147886858657936824666157355244282276549060979287028195947053379896629176109236308497368541873977322217404173393058324262071515693015720791709710875402844074060958232615348302079742607298768821067254241148222249307853990069158788760045846378454733930508615319101021566965767858397925915002093810845604870592372325308697668502501258354279964998885913699841611575308993264543471504481810522700634413475543556638247725338088360271685522871494968192592994768678283022509431782315531193722877928462342838427738781782123255750444266103937684254171594965390580846513226114087373475993338972663754543701853671235882566755122147346329399731360678334298275951310293505805737011408467257743937177332370261347267878082495465076402324883354596189708622594206927933830878961217813931557212292304974005057940341368964820475405327507774103967381595176711578587648673618588951541172300856056358481034673755413714142487444579395498994891079153939522713953192147376722808066447918381138001696811933878773195030315384525488536639887167800174530904579934665590876912777773578982502243311315411663526621612819532782907407371606628950183846898420455794225173848733723523289189508841829871475205218893747774411461346139596508813024511996195280417158871969754954506933737516062292962335185951946280751332909805841480565839408449640827762136939883146685430530858976892760167762347620153182644709660753312887035588393405164199592333431135995348533232440740733959459272765710993549030279044676917213257786238215923379436959559730022709856486821746028270474330542540100575570006989436494287724017556160482332421336488248282013724950056862907231763125083790469361237760739932892188208489587974332004718832021686837842391640008446340979391006909095281367498759607552936795966883375518360494471912185963862883487671683004303957809331490045299043339898041261443055862154501544854350370917121467468776925370372043324927114413414627359280568054124104736888562026273376262027394454563796764712868395916125935215255970322787999983011136225929793936387524686159060289359833835172675932072508767259361509936882266279784177366513336816863425983941583676198460735237310167011740321467123458277229295448603065601935441559918822387567454149157980853941006579775749272989789388653938068919447346216848248303834787039395387800041569761868958701633313089004258784584539739288815368528208140987445978064705948513722062637194378172994413172417785590983848277000668888696029856743247504305069105285499768909958990348560320023861792303629934709680721934254947370051215253033818264231810780884087511742693814277381705475777897531572330603845592439590009111431100698618319193198285189050977233250441847197105928943414696665280386761881247759970490638722802709223752631888448220795851394294316104636217832285194428236867393729334975523690577208866544164564625551320212576501009551835400461768443101653795036707503897474070945018861439712673946980437301080830253381282247713831042435630655589033922240836234889212090392940874523139076525766123778345891457110886689783393063481086859407246137124973387061014988131332504056841470261402633624361514746169750162855473589180442107374952338062207526751922758798160067809720436472846809176517684343091798841022877613519735174507488818418058382153663070765693121712149885304688092850957191371593472053771979600721271867336410175144787917980290264368212163326349646729543003662991322164492563929745095251462672732583835155432995182991584612558621837437679580392886358371173720980595043963853966281623134135603164158548068428188118832329879032032889906375814887051144346126030117142503419888102554439202677578006566982658965316723794832824238549214641026994451119694456145083162625541549365581697460009921918710789434631716364179595427850488890431675810536381800288825714812400824222438066471105182772056943830704749552971016647355361218414699581058317940834509536936179827837303429792415540949707588675893479997404832619190674589752363412497711797642817825260708683894193325567325280180797974888946462552542104260232875786992837673392595647833001455196404293605144640549919699255239268256276808480169517553498194364209457080966500744208296214645222840485338167861449992339289088452922922084923431981524098464146197885851606738512604240366909848797328949531097588728274565195186903286597540705749040487768819512193206093155738133505022512885854947934182889715556765111080104728295280900756534301480284539850607308208849395900077251412742830892342822264465107804598472477299562048669983155866059905148636727235308955639666372897272786119259586204548647735595345409296593607725436586663436618634974848139650509605245553868122212646572532663727977049107718394457747061710380709266795523688397386975874011678944245640809937428996549398542329716450406093509902261812465353068716170099767942014632630103855427285133297855864858482191829088675132046067289156999862694578658453087729560508449781212163515140552087116054389861596075243648650708263969520051399383164410921348970745012241417051037524406085043136252919915146993174170389625154160420632160209757691604673875507746946432711881735935160398924385409145341182663272952779293810072665561849308868317149237280239146458643122194807413768573907202622321867018505527981136066977569400063930061154028613899307036182137074525201050240428361518931413959256078896179380907646737189079615361372684584576105385095994320493384412344446592012652174653192215331882260917733584195700910655458282587951154270416468574078342761523230003583249918088564925209004488414770512668068236282222585671380330528016243974312693443487908664842357513758184171645858328435406664359080701755529100919368020629532634569786106982629876811464000625868934675685778607301986781330317559246398623040033616948191112476011354145268551355595720406623046898943574950036310612193579786155077684886032565167696490131222903578300504850500840392885936493758528234629531462947555949181710712787686701306696414624694660550058908998946562878369063844438934979871384158779824726288999296600976214107037879897881869191338995622239622360418481389795007800625012889087882593876663436244582415994420988259436818624309132571269024659549429725634902871498080983638139056887605710001719913941622756070532104283493628903363301991510122518744986717682118946610849938275642012873405540423921813527228132298670955857554743905141797233453675246622727900888655276147396066419216265797081295065374426252642375710827692103949364332075472388084083839516388253731851887336031360625044269481903648213898711191099823797327526529848533656860814786661661160415043647321635205616785146753917891686078343961954140692169481177583767336507830792722371428160560352566971517696595249793758339585616207265609175049437284924632422192792428836945983176106549624092670621687146456018873741443473717677518227879470801439536268326404767405263622587264429856081610681980399895307455195012765245802653972186613746132619935143677048452394625008568837754869077919889930766790500281707820544233661236232837821156811272192906495562832789927244921775915153074952809479154919767010115403899111743935523550324134228317492843639241279182830217114691076988214831822371940919022947829180556801254691711974998069661062461975631856672467071762786848887971054982304924137404212539992830273069711731647969496868250427200403792347158387910660798394905155032575123597562268535056199346027078743001356950226845131822543143532257176413359823988658960505715628464692434672372686985750362841110537735790976757460361899687732837784429140336646793974329049973491849820374929282695240161589766320025033269027127081353991426865799462800561201560594180810659018044236764576150319923486647843710772916812685277106765094572724656415805474030334551380426952439324196859072318831298776356782982913737057291349336758934194569406764250663359069776760322589619244350171546924693976370340740757434973250922466082976734710981782999571865033194796755835675024955656628312225347901338071854498946353872590146941178147934772252007745012984326477885305298328314666362205817833319112217677759113583694393218253802967007956890919034702924679212076273967852069328297722189783431302076445483775783708749123483374202211325933470920447797080661500857259467636622167521774280743760165166489736121123001562966319510992536103888138153232993420988567340344279647659133841964863383274979074939153216984511936289002126097771855112513273007307966532898215359354634308030069214621009135398754705019326079166264977459387807978205381202670343704050955445382247340865782170770067115876704782923382282168037160501314617799900008028894877788023799057244309308934131125199712450036095308268200134516818450850249549972441967958270652902576857008798309915432654291906336080950164743409595645340091707642451235875134847189070334365128436012587830403221147445111534942657343490401285447778322892365408624907675790107252488505630976154532997149126279418174293987876342830041117788697036170775237391124285404148760742390516165775718091609506850757932893017862732373766337805725146702154075583807453612857672219924714081652486328573043764737100897241667366704128909181004040794541116298215509018928961280931605453778583652381993987877724782294935791882443207832273837322131381398749436450343479188571548519930202397506481089695811695516430285487371202806574170035608108942966927972869432730779437051493555198253701471497588313271751199018662916073262999201682508915055016365078064193793407408816269072023786359974000549340595294904932204262748187385595183589642851457869782520758158986811131205164013038983987667792909677566910499766190072159555762855046566533937850232987428901018211053349456653567744095390594107692781728524851075068964075738178310362939199494977362684560251082492927804170230666473862596719345445026350806492724700965350090374122232927556001820264283269353910774406722127538996900696666181771859971662083250991499443933717666352103598517070053385570879370845474194324005879308249945900228127810591330677197828687252174932363231508659461739025776696050373374496272271417486031772152915921580075111254755719223016039171681102136556911988956366712902313108545457966718095352057157094646624065421136410387757365227320047280775407093588374990870928419611973444712970464833183037172351328141700144412013447950175305717405916638251938412435822362797462785297761000853176648029183649593009703486418680082958943868061677050616948062954247669185838732104882598079766116779419014253430346966578507906359768069904266903247096417555797046733525093021180182585006284984270455516405530648951983599626342474001710368678153765272465706619058274146551800570395254108838927583422202268668190886606605295127424528515921253116270909342276262147571555872383227916648166236754011254168868470940368078551123675176630097279463635060327835946825620703433391528772016842578088949457206967401666630952328435880889115707427335230868605442687421899218508410438420080445955136906262485287750873974507335566012358151854203114800217762822963416956493403672796728950512601635523187576987952097984721123467626248902659151047261168605147144253040178954472185814125719851676303801174993390671169790004763362305927949535668449234681033272428568840064431521574435288839453407134477532849059891812948194544988400755600888047369514489165526447038119795061994981509798110917847787486207587550719221275326819700619353534057927520690940414382434037384368430098705188982167807901967081027035966296973088126011375500478281331395926306881474579138868100946204901185250538547426185503813838989874366893669156519837718901044678726719268192795507434230186551683463134547605294733076765974463340885104134244109518285971086389681816547933235437777037204748839435144489130523141335489104373181801397225574341948349498715293930089866903527094140711837767868154779762668735499714658677933210677603997308026435062184692189973832224777263136340780249872715056657529440362183813017631756797537888465816030197966699196585285848407663124091728650273071796561696495114325903451131479481005539120448296163018331502339036298511427564757359848280300350380493329131876599553659964991819533642794416803236273184555895478761598527307380853973471576530096428382041454519871608581323265255679565601115452570109034517615067649678057916276407848260027682931082229738262786625321105702727929742321531801751179296678972998504698556852435053605207074395852939171919934354374083581920826708974093985394491744014590914979772544312356200497667440986660749262480561537272312082479543032766039731560264607395862193765494142156385902522061786131815970458466548327712667303263169120494529309740846878947427956018303077478402681143839876824078511138081563549207868886368859168414594048164586652050475413837228964662501834088806577122497321141917508352376169506285926137247141094703343932685852097586421609416515886565604878298654466088228099934588670028555680124844651606627443776329734770204827547000281754494264423025207213174808028940746112483243506975916588476944601543483223294887273434611975416069061023846358625286576006907693546708648103395900011289360992390639475871407093371866223650490446579492827900601044460841378626324735407682920115356807648839682189902122995047640440578152281230352063007223973761337602157739142417250390667171626482298396579792933191123209407031378662124743405307801603102288302818688286853944956072517583120829440281621010001769551129846908423887462798933081668751388422226270975121954156861291281475186589709388085844025240887808176210481123180233327814604140689526728651852043294021583942967963654453829572674500809836937478876186173848492749899352962623547520840977857850779359949775020604537844469538133021942254516374760706284639042637718086071858908025171861613217755059858013986426585034151158081719981159522514876570312427044237920266050961054221703724648461655797461506374428102521446859206023847902371818722627498597765770372324566073213330328849899490314303663696346201086045629122951244963605632498098043253564844699033811295310640292369388015882946251069295547642311723517094208007840382085218374809403438368854947123338743936535481263872412229246195770839291819752509199608995911124253743196497985173344129252820971038339292307192117676598296001947923186476572889929880484135480631420122785137917541732874253335295872552096724076407602283425455529267475375388201669732387475183462781903104389237968883685874232582683232857327271394095315165790052713063884857854362376451026025813257310980378569142740531505508485633654246003604785019595680688949840335666524520487716295880545795984272029712320396959882650295482448339878117356386602477493477659071506089014974508620951899553478527391579178584489087597393134710516755120390542854819332335301564299068280239072295369481241359390346816411227260547693521785910396391548903027584893221377840635272237998238099268848949396283109372575029302652056202306088747216707529329001578983452681334209090046475672135162134214606200720192293494912770973177331398184369397972520807146200391558422347596670453603253057289707274686754561717562543784823683776278555529672461885170714461463451136400846109017664865380166761188830960699748765261443202017954122792781920107970800096051830786059963491758508222384085372080945873976420501772198033060866702394816732615303343759010512967042902757342258435662426017993224570599387177844736536915714757900834170755819296345951423995988677566656984243872774870577235116839619562845337696491679038841047216929663760668461127520600576470429878556307099571697736791568654976218085669244011591339756645050747056550346463812314521539302145627181970198951352724732055656771345421465217000484632786010695039247054308259518165957740927304186930645555269376544632255540467329562595027281076827497228502346443088728764330817020629575758366375239741993652987985804392043296596838599275035848939248010595071137417037513854324649512528214102226308999024269496577830239431042584488427137743746574418232414876117700036844576823092853134889008089092883820750326808869200060111035297700568333067866895411454308243670377767827305686357310937552927365062935557411362399614180830571017326934421178673050226675081398057484450495123451184619385967886451429811027413738112767966012793078794880257028211423690915619625820321333193837549764479594117253855455307456804238099224175852458726743478455545383539713210171873136323847058176079096465714260932310223445552913073368891724068138241969015351920464929685914999937659875073323741378620065171237819714413378579553381630949282179466160798384067324297486983760578026012879486212988169301538274475921075963627511234274708740431454621018062863701208709917122630844183231949553313724847961898296158609675475874022629440935329556899716241060055468035832288109558196277772425745148930353755125834457319764259648731188192507451703715730037671622710709688542211062473069762282749651127104657408776150374588614221849275555254729227034371438571080327206661262289220196221082948998516627555403719894062149109972453189637273783122006338454092948609947936440581053939691381354993811009630643384978314883432531656307362881287284359259631352787476980294689074364515222466772880653436202113087788801840062318347556338416945702399928485136834155588715329572266211909595660495385207916495875851328545277465820714933432979429137101846821227876480438535177057387366396870898971689429172717444166302551440778672462028244228089070800660107781085477547378490469732455379203872493490147765691765302318172498165300879611441330372156416113925485277435934343316552425198426317073758624810840172515088242827577214828628712964260364489665006793224203430487893182004313146381685115924122371651451908978580373678306805004550655961139336418937533208486186369993420658312215007292094628963721264556110256171730539255429645118068089778371018593904073082225858666208931216422885746699746181951683873271329109831567493324815890617013352646975643033022992862889371873570982471466282528712945934577990034407193432131044799522002211495908517792416733956773952419624295394335897587650359262079143660442349823758877459087132324187567824410456071833159129574166030812163990145207717096202436758374326364590569845415430344954110394464905556408468484926216569797016195960446829296378065371263032547740478939342669243878015168608661043911691609844429314702759280063429215720607394057992665951322050379188901505649234473239542359188019399920124584398378214972010319544722098615607505865382891157066410487107638941731986536847429589038776896888586595390012328635095985174549082986775650993831191819802868972118495892102993047712892267215131929856582265706232818735166754849067851047148751532906282330784583459075421200970035928342193747621286990031440559089936526136667791140088277724506998115540501765388878342077641964192029098106889353307933755597365091547331480628343024221617929687094826005373775380918462047379904600868451977641929346582586307818497375828284511872175250806116090772330705296401636193523698695730747878639224398339234695451597391988659894775405045759255681663414968985794594294485068574066165375590785662840565892360430820024184539352075678056821708374125183451454639294059942138975300250844909922391990960261316968159105333755229396492527523993442100431188519968804499068163205200851454836386671009371593214830357687928727821142622427201799837826031018055677269947853862722313984872396237551775536367969980573913783733721265024557521667640695766711088920755990380777140894446705142935807324309135396554290435890849724223565170124240630776002262481845265219496882085552677012406275942875102182004655484821349041749368357568371183526880100012978019845278466039793085868216854593205243859468681441475536047770095041159317484402167523828292308001668530382871771996592092533393408187618821047200798311876482206078994131923457531577691884901071122658467652735454455392223676548275382089941250339993437241156150099044007362084642518786657366477710156910883330970592610351731458008487281154943630979333191379847899837187533284036844567361469517593496821302531799029516088005134478028064171937879837550560743006866491593138007909954304584160215863332263819700476990414176916906927527495959543357226385564983772123422997269662618659700865410292764054415853135237604410282277367620601982844890374248833793645010467299754333403291558571180262338516210518736250142423080153456284224257902595587447082021367143690238854766715773126837474654075877553495174060439176631916700523883989544901552358298346025027941700839655381796494718485403223821397351329943108184830015921798549358105059207292693355873046087389075723189824673444659575655874333060059096627463430591904341486604270962234880998837355643470248539762545310013454990603641746074879538586311809024921443099806224857769721199563445263674004002111502646353519344541945018868429775537738905707554366490565600606007722315445340109799300344182738699602596403989622113655560081497539800550572635901528967958078792847789258184541788602951315211003682680044854392459326961976547611884793791942877647670591915954562677873875231793373472868906154268491560684500104179309779153725141130397369131366463077376240504217580870048868571025270641487671051515776310684053241628213180112188696878979107730332066877816113214158027576079353320084062580924428047100525439457286627004346499171519388201784099875122119145570636599751646421040115343233663560938337695642480117151381341006450288282427167487326550301084172788859298125492471407475541298665284870264327933902501252111426334054556382703575328330106766338168229533850613517970590842235916357813029834629558232258616638137397285554272839280158393390775183688577000285337917610433713337695114600658778114946403830715586027833184816036103236381135675630294335336383171019140703825130448143716183715447596082401436780439478506728238592711204704024646747423839901326811306979312077325119547122680656464305194171849890479551188414471704379191220483650895370483464795863864349710727826215624581080055468261988545331969715042494781533966564772485885376811216356151958599386728167784781980143776750348585645823927797925891731673476752338766365754557254987487956249154384699890870807833001102801768521262649511836626646567480928429334140143015067977228459951278363088352475006625690937257486693852005726888829111089177011368040689334531006789987990672024793873543258137508427631284519234389341255613260206457972031248436029512884778200930819027316293814388850621920762947861461533574954922925776979390713353634815639077780970888801640047036906342399561237436244484569626729571193865736660281943238279009927539312534094453854847251139987373410735716771802089991625315924975185783096035339299240413514083083490990457096694330486781037455271142751072023561416850745479172303544343160640505870288200539300983179141345671898973366305512004853824968246870060280151964506378965230094653098102751326636780899733146597858039120214366495047126598333903039459341691154269394230568675262466127289141414018243075138066121344952334763559297793642838616281617765004510390585769510026662864711653530439458800601523006396901691820750837795233119307163306097340858969601204920081957840306391044739924285518441479263896086658823034702301002249271031090313988653693008414321840516010334616115071471986788537470418054532354816609287738882971184289387846517243902660002935974787508826089632751944973290543793271917251162458491224712259096472917127210132762861473409765972464663465529242394213485547856295287561370974380583260296657565852682829105785364579233903534793192650859149391451862010296940858154840385762442763525630037000848183393549934144763374068121331553460834591470782612490949079313986413414191714485399193105067848701396228720919143968809316414201031637920923197289960514040921353933228156084840062650189735559672510974488280622746876398625334910965743812932194767443182737300412445815517268977359449232544379531895437886963813859266505073219871268571738596850034591009117370032174640139680396501881254184982826401994743641333539469325872245048221356842563992143490324367156542297012956636622002414285963917838154882896361143673836943682249192267539369378287694511466403209435938809961784006069269719053478541330388190236694980875572421911186708866655300462912675148132050019487740487094037291441621885719921938406638532253197552389118668733922751502791089242194878069393273408498095151113859748147008235453986933247474552073914807511068269876479145352144730695454380756850224269770267085894949768198891980178212584907133759248950349005885039983182767396532223300388746588798741077012044551721158293611571991140350000334944407632697601009050763065414763188969931566849633613612473517245138301973273118016870273565069389366204876763583203293392479393159800438415488961766116420307603512977440820463237784101111341622276484323678681650940496205085738263271125567604350893744570039553765797938766094232765540899769826674296672249396596684769269829900412534654458668774826347626168057216706361790873527440893679117531907068015113968422626648542879609890756430947700006746812169044704406376038250455671072991457857831519243279919993776498010912723516269431218106071797893884552209128438532319671934290881784715967375374180418073698649124734349474325954723943919183755553753553272261431871220935065300948579727656438958165389474311797521924332395549917934083243562398463995607015906242535926764097122442884253949090818398444339446584698089111127288281741255700431480352972644642825830920298155489826552012530151736604664988028270441434474597396409407300309095133849260630248710735210349005577160316606344236845223858964296039187085991887361227402787467174496865238685648472574983787632664661016628794333145108242988729575522976779457515134700364150112057489716067987131500116927482016467780513848303872306389036390768701763177501200243759802720512519396592386163108645927328078745942445677070421058187129630598617667838255834461019069945984200724554435967178576028132130938148833697394881101987272571431152868334719252592176427572518423363246158835893439557036983506869963888774148337050161380953233000562086423942876206322221988000120633919618067560857081810531410375290437847660509880031281986453610931152031260258179649036881202908067908699486299775312626805595159030803348555786477467772806417400016038706520626192690195251043759149238223302479574443648056533141131857857180842251538561713031591443039262669966064161991128773902033351248128867789534935597247943821234692957973913776712132164813886479128369486567834432676836663998328646036100063852998130440643438913134534205964103600343156662574120040901802255485644437216753781533280652938152165670265406578175718226923104781555613230204623143143876137347500258381702989807185162224535937792252458868316188311170521350439608152596814874323653881207350994712097582100555295072143453242136086808413431672998083635573483182607248031321415708484756725683676303661596736138459826651284740786591019721237487941800896243690131176460613207349483556205154064870919932895987360893898578270036306686723896076112523333846904695566482226733356287554320208793390272149002403131926812848274922314531184813224749977366639781931186839712956543150843828281398656019022713714840489024970810523867193398217566536362486671801404230239423255678744838587450545952000255620016181221168437223416397206103017893385458514364220104680468653955083580562322006662977996110087304252804913808506727432064613047969185403069890067934680294461647749111350548511778011340598250695198111971901135398379788097845731991944866288398549339718750232534819044093163621654864616307120973406596556779826068422251822081490873084669296379277752956369720160372453989780341404878537622567272752215911326501435111802460512735197720356202932932608262010482869759640119971202837869590076151759765309648582327371978291574487847416083640150507983971932192690990171129865699986517183351505619905124068152197403994434784232978900688571158763695532598800947666772312720755474197301882690521840813103581961787344083401496929694867760381451381670881978620893200349032761601485861505816831163181962194010730376672872751106797449802618656632898367516582299148872722710671137310798220953675680627455305512606214407879368675874297859419992317567280540754390290134092731685404747624493373347358094635017805911623400069844425468754227510742895595057532722904539459206980663189700746505025007262506533462131025790793428503975607992162850257779102828442143914647604073138153970526403540137286532475748473256643743123403766661121845272671429317915668615128255753859371291903106237494914024731631763471409748499896350909315967896853418542033186923777052374828757608304732010323211251496298047628335615395425239721508222978971131748617586430007813252105364902533223717405173678182868272819842885390729579751096023509281748775432111549671884006309231811433668987469801055481063200844545770867864351534237220688006657189230958102882450918962753836965795439157005846187244508744730927661041487493067173877710699888171935836317774292600514271397339186065019482459721762894625598495378378508025592992712694591347641366510115399483355818935837961896899802551659348763319184759080319512292020492718828514060743485783766850020865383227245016954536975594101577386481368213543420148801954657926310988573021289901572356315444035653264018681801909564286699274966652750345621862722083923099468193394844055401068410897415205108004080683910323093363827430736019371107813002288934603397548097911843694096644577526250285800302041539270601030628055222247880599426052765823642235256881436057898005494831227834871262180854750401810501550880468113854350622928959188567587401199125363722213758150945323371252930752656855177389508404304986920051756730169603709484592256556938556872643389706324343473163678247390881236240876072376450283605234573509943537858870305435250261466415949779198520094452259296752168596448066295406177634444232408981303781352121235873813353150113870026864614014499709697726779488694962375881852915813576262391804299598636090417134098269240488192646527495977978739096711011707167650368196396790660446989281452253558839995788791393650793087467056833960552013853521573956828714427138916550450228694190312575493670039259987953584611334239218153561272124476656284396871412785680858532168665430481896368203965985169416524794003948413548475203294163695975203509940602665018805919712091404866746336363495098678479879730528525623267408217548123813091132347426144106247862148912994402569632607724095079304088586105344037067753699675595409448629838783126568308657265883208892424181877051702811442255965165318485927416619216944222808305294333530504001952564391386700545718754750299717703321341292861889384096224295412499181454291851120231725789206971719469294040353828641614029048039627672613154900489066611843134884705301660950425946912321357394326142515529986776616401534791377057050698245152731074598650572767952021400413829777323395305568798882368652590405268324757957521803951495587133627890647910611774601676297689748157619313218813329013462823540836434408486803998578335421567440365397008792366921233195324748229503925729287192764431159955199574819576334778571644292208268227530701535538580031400804754354918887239770917716682123928656920102276988795554044766923379914640767691567721053730988851882497618401686610123374108403576257691971545261364274692878963690000898397375099939391343545087306456086505076065888381023494792312522067804631475320540033837382080234110214774163778513136300815265235592930357671281972501453315719227703120631602573601808148445045033826400883756028677158200081491417865564251586146836473966296426717980360644100278955526183187092309911876425874931021579227595994237032466473347882274136533311335868148288117974633968721344166566928252237521957148465582667793878392352383944746174085887449579859799531613520111410071375304997319442929934097536220661304689004743390063134543421728026236275212058455676617204798459136570389329996506843682390674912836952003110988142638487956321747050497690478452167579216374787614129789054485639602554955851094748860442514599977531158018633407725339410196741182915058742279477270069603464187342524628004099378450953295058043375838256568647620475509336033985211808640915915998023486035929081295701985775480712469604963747095644964954882373857722287117305932345900001035342983346484833555342351645063085177668749455757416828079881766895036454716521189799418451281161802308627294631744884794791307793961359233156931415733492059826037376469768168518126500792335898926171461171251422470868027844697598484326478368136562171208864506216297197012087981387144563547684898182155701748413805515683698706427313857503201374155726129191012650559536787936264050135355529800555893246114711285776867266746254295857527180061195003400634052571689691881819696996999709081076149830349134289469005232439949606274092705972772102242188430458450774214542356716982295254800372795558636658321248340567207197383993508494279039304425664437743370908436003375231915459070993651365506868710205492547678512484088190710365385518344296967561163597951075080710677526905383937825516101233309678298702782409464701018664313149284020672727665446034328375813030371773410238405653801160365228831502518998578634983211267639577138092896126059351262714414213992239665570414280480412638152092362794334012757701806797733803997059227938369112999956923403527785967303607329129465620123950714248027194180476097155314372404675480068157888733843174224739416501166900665973200675732342713959334370745711092245908046348474475654563667947447825849136746727045419961848009857138587058888169490376721412745408612668197960757981216236731270721170691024346085712200573656252977030086672648827362633967657462177941004735785474154327619881862741268663804787199930592382454344364867451280084776431985373331076255457787429931639494028524755793973257562695891438779444867299722048275763650191038496587334185509837258696568409863177260894376813526796972466491446991448900572796986463987533438707861633733108088341155519473900787672241330325257260802035343808540437088465559462224210752226717333823741335836876619669219177718989178801834558796820041378688859079476789377708053217281522675475193019750676706581379474642373018134200431094434699558032645384848591219023346582454250793321333151402685979103836430498355400168897668491623631427562254274098497029253206853547330137420323828364186487792454032778234663318558619281438367469172797340294026312824584650266911745235034776247671703926138075632746857696485123521390294246209927949257244738714992229844208401573080500988948073619202920003956140536496425213449196466275804509748761195476056841543349603822427602680420963345728661888646142073769077000828480419506499650157519864713385275999462706641718228345298059892154091674063972225451638781886906564411959137273180105526081982151957355025866621664649705367495174440527937638430574149720970406343796355899893451393225164284201478511599715378723576587223596614711232232619253997841631680720167768427294879188631104383875312161650217604512911139905797333865164381509603954767083691058331289088082872183682889922127221201052214429353400413294042826476126894791148231392254820256215375363707349057096009644747910221336337893740984009694911581985290383388197906723490060591108481948888939380208244252099016208954038161404478366426539523591791794783011485892475002916118693875501185053672041801786918451965950859672599456176554094756276562345327480302247075670761322130782716836919034116427810806739902163705453352571593154113099838126233047932677248656362019769780878049711806572910219621737716463450226202975060347650139169658619106523599688638882256634939183402546418998821314852313889477686804479666708303804795045359429352726181448249045113438269570646091199243684721333289942776773616531345738179063289517806990035035372210919139660438056537849897811371561018634234496855367012557391771299521508671946210755199704856045417926342010195961573147079330489489417414445551447535320617450030697393184350956030629612842988372659002911031737113934699534758597148635369280936277831928225412423523016146634849796682560919943588847655473974095965784980404919002660108383560413544788624238724773547991938319750896461183384773520929969534757889144034987204472501181019597841898166826371844294952767239013032351118403115445016369528879357695546381764903855374601759828039093636593053376109789236859150491080314020037076667067608984261327958966287059134703129233177566973371423392342650515356078428754937066084877495982016562917715044876949810958077973570507436809860154175757176493517123634750714471345826792262881868147612301200520105994750434591080230583902686345418139300739593747818898128698529790090144740277601121224789324920545386063794507845674627997477686990805239507793443491692853287422161279109078599453141294744172936221471662644934237762842224575699879283315358547033731472012186001993511148768073401933384427044594295064327273658946465345468191348295646142171341281310485245342332955142578392179211419093768416516897808319469299460819618088553388717981551907370487181666528886910520905565361444335910106323310047147585037098908911769411353369156777389728772183530348197684671323786216052169601325960627036111776069093841800554266052650345896724132797356807021069012698014124877373732068053293949567196531841765647711967160171328982685250905984249548703299790028636075104091882406294864511525814753292947928856194515016497616867757883872904482994757449924032288891582176498901871683558815068442610756137366395390078507809875311498258798906534878093451330729742667536989563544984360659856728140437167390467945158908330606544424508703588825696982690811590094902785449608681568454590267260701473244395813195698241303536244329922959871289781049562224871758788756582046059404545064733241250576175526878672801873201377380297628016445345758686020657516806338056930311874623795814664325961532525381498282167661354279176141702907080448246862234413554755503093956828589489583097855883824407520846763178648534182348905401790065280438310493033325940693724834616127646590787483362193994428850027130213144889394281486648582578092267469919740577970439755256443976948684831701556229067750108240600690495654661536186016831984114820703200446912237613528965416756533077125841679119248598282376411707311326609727590344730171793815063402873399739829331969829100326278009232241304131328787530295523629328792337886540205872232999284553260536479644086256249415255542551419266615317286277860769550670882788771285197790598473197954122037402488879883418375639030774463000214014431736070411140662599563879471980893089209430848973557253576281244189003513031446477416538054041258798993710654191924377177278447291839750515859182157487949007512419964071531491287903539779287730550531617728654546810341891469241348686193216262800530264051787411401618018759037453627131965849744594459780892566096226865189030457310869863506940962573185761809782936263933447511881411558982466408347887777574335435952242159697057317029961990651966965786794654289746802263088627680092345375077655796191618681378260090080134906889980421287912763404869799560335495479677657766261526374697790864150191485839422879708975868563040302878283472982544387654334859402958543294920767033513849293332921548906120600479927721107699291790254639834758908477328140093646227777274537310150234140797374352805368025362839459657444729650548259489881575809833222119892103100343298931162525979516358692127851935261581969062801977428559938396459724399852072334402286508257072950724013169094885498175277693597823157057466325751091236423903196383409521578419709771417726853737547637261936337635675636704878444207812949875756594130247337361150244308883867894725347731937110629487137512539310789574700209183515957827463810372185632322567453439745192944516104366337962259582416173512786567961420479032255720591312149605088952045487423599892462790218151136779433051781980780026388367747744620600631869737629861651314246670709399342368532324122799711452437609377238256757040556634761832866901941163140506332429091486407275788979274534405822154571200009198569006388118925286257524749682991748148385235698718198309644808772194683377948725751158535973574074658584701013352160593937342830241672602541835794931103894502627059027844299610659059277317602178487924638627051867457850151312793994301497779358530410185215592098405992209297704772885434291206266864005595423886780257367323444173940102361218742457153854383092959178086949551183829224701797821086642799630589221951952047377584646658010922970624366904957293519262774617439249629715772686828683968753605485134924716153030964398949267507671995630538352168751226769176479325722776569863398701106776217409433805402763060983268677535974913000483228571806638005087768784115108875085704359480130536292886237461706927733179469589220115876101685175551563139875997630897839375142510577811223535591819920052552603426871088864831794398911986780977842167453411538382101933081439606764903853248862817447442698688185478477052103694919589217895397312756688319061266741891528806197057460772188452606652868228125359855957711764549449690895453033871686695022098364242377684636034536181248078245885701885405675453089780991001130719729132001157610968614471464206972337134827929092112600606947693520308030791310945673263487249357178162355393221798547462051411323679649255467661634063363018745512500607155317329398338106577087892472160893252640284095074303013150806755715880560379356657112920160591637116506112212576374671098496156243106250068626229937805034069361778278505107992345864111502453954335212424552472211382384282837343595302584701989851107023001101378200561668602189259902264586221198510503351619713492408428642167535740156418455353999188501864102285065222576952981545395854849978144227435444076432008009856081665925177306854720709123703781497834135926841197147029950386474950852039940019897603330452718291289726017928682319678897894032672795575297940860145621703023440930146687667472057964499305987870195445368747089023367067736219684754772760390871445315156588144536080141419967243232926390812366160098171798181071128281468660394624310598240510013240591040745318090546793768678065106596178435947458066605391663108763061153060826114670867892228907526051941700354043566755004100209269144016745019638472890017056227035226895735896182636048980381219591612615941114343234971437226938574225893047826372689641656910963064026010404396215640460807717278758455037703441386275490539545918009516103424447084681638249263376837954308482957577638468817848515945256517158905327353540829706503609372489876512632345762049940989403187487488603544141842123920063699279969927695131367753130175699572418550641849671983854784219700758408239530149135104856916865487881714232969990397840757112443055647688633183097920553071070317083283071145920038001737862523771924173388322594972533541271408844796070936707876059886807930434361711438612534226167203212647091687689007822986753235836273922717779617690074403467172654733272617806909543628902741128340826139886963052451750730897327654583701968708487754312964965288607371281330284440648917442806844867029188288158889291350518621557191814351554792481515320510192554898636979304179945084028920018210030233651228770418702804351557933838312402251960135606429485910891415617867284474848226813464524928386947628768763016777185840304443065084769064658008509748055253418152663543942827015394866828343392737633083212428577466365732770425718194579420606045145131760392416796942168676172896360593996927671404836795790703113610100503302791421627268002110844303295332466583276064357947315738741731376105797413311533742052146620345187792180807706680900011713783927375866641080494645899172004473386269787679913435831615636134454427656610361835280018796105389509141327060097073386327911571474367611798370154681842569452364845043589736734847219078570366580096227750008187917813136537229357301203449082001768233767800902717024004946086358500371188185768373170659655814984155590547513861504391328177638288020958785995576929357208009995569784664667610119315450787080958534736548953399889012602960669673410203691085947380613551066087825119776043675984684539036113234444058218318380202269605928529661527052189937161686563215351985494202337996627685891301266388426208535519738179819705961442915939759931868663368696297418628779189961481816246343403420932398456939773254476860812832167973452165706488345292831647811020098914005000950899572504602698715261216233909054875133412742429336021149421494967124727771281246992831294983447203071127032621248621481265055901435848215850708257876561438577979160758088875814226750186403441849893749085946939899079847059253822848653798616245419283693437737071394406137344895908759037840936365988328583767141014953495715899112009137296847127847191699593965583341722911313441332281290290865051223877975202650508938634918104210169426744327116368208193994414647099214946660002497250965472171253039834092414225684292770318326299742812485478586509427434270537423655797717538673935048333347677945570070320336240032190021080575670707656179798514582370538475322126483887410810718865786602660906235613845217963509756461557370706461357123942646983187789903740780279706467530691853522715085173441762478849025250899677189883156187230699798064024010081793154610125922920121919552097357834993918849631424471081164414711000173914827394158531074513556541300583775647774244560042557821273908095312179116488540894610657471871835229537921944276564478915722514286075479500368303272705975258026461735233164101181932411936761239702569891021334736312008490109643150432920784641223621089837537516515022889405039872320577282505965885736355520669540255111495689955581354477371429944653585051603145573682119654263142507117359674283813063471617616793067381181871621126212896194511742899257844768371719577410402516691633872217996462388012332333195730119428430149036619243978715893892448027523548324889908348411148252015405807250059494132047183873400794943174273366604226334801048904847738035769242925372038869444135645108889692672675700570649196205425880628026269940331815032210708794449426954805310372292651877960471147890588991632549191290708960588622936969450128667820518456955203512519123562628213550143896356525019977527811328033062869457225485517937708002532878454904011561215895269802292221098661499139167627938220547700160751313017505833469201448832422632069508361209529601274419514023374951066866164763330257187396728807424164229347202305971961826001578526532042424795697066105331623737103365356991688148739853408068548537576014208285138227301026775356692671440033528284942695862355678515794704975753558605699145844826026242327152546720656150092674366332701425985262461977143237375858880674672035865430237594276575720009290591764768471989743125063132698110157505261532598610896209596019647219581036457876195166976088868059907635484562540237659692325893740758128269615881069591073125372858108426366091250022698263062439514629398707746876783556354248334366110465184892010506284877007426802932039998358729077781032293989170866924039845402300494241575325650630439874239444944898063508867829979142722611408824567414855900437791893821566547835483964183989368138671625896866498979885714547449565636383167146428533808927940624750110007725577803057312366318272884987189638849958511014694624955720253870715920375542564358016862963682100320147592642822248973507362401766156756772179043087671292981090152202078450150193992242607156037146170882796699987911548105028261190467054948299716508684100649373265538570719514142349039378544911384178687552777107705229161077772911271781354500502407338456726991652443789294213177957286586798404230883856437484651916821769666422685345355351650819285333737332550892324646327396175171839990924476270008486499728650423298801296524258502234359371538012696850862513097843131344400360908972738897658741884287258544593850019615481159410009833391082873467692828330393095597960578579324832657516214276068633961228371584578577093540400971255762783819801408810992455478463185489695175071307913756037070596252648204202095733454689291120102691940690096621258447811685042243021407338320480156262031601212075418856697657853018706318277731404462945473179098523451760752301454234233675218725624928294722413217525566464743653325334942996568818786020842823381971106570107300462299228656330181488498907914645630627398666568302291836331179992692667493410373091811260795026851801025250067575907182652300719456398263821192196114457563912151634500829618796432473937622330966696710434396671629714226407511619522260615964809849976096365588714379251335963980768555904448894847866125063105698564746604356573873575147053193794308624772837312228217823591730206162217250488391313518047579254689758362079075513023824806842623840524059722532162961740730049683257703538003741140497870297716471632875801529279129411050533416101279665049379480859084457433893806467524201267734060120509110315476811718724356822313785503506163316097186992925393764070633619535679222754013693309160318050490362696307683503419541890291734354480111317488973999936460693092388522445313871319209274118538537399448388065149486382273937741329951787044207939319722792848390302514928414538650488863051579184028489276704624688557133628216768743019609028598303205719658643348305294614186041410777185928388957983101358510620012285035614984371492289898039224716095063612354426333810073784287292335112977255919245834068655576965611852435966392765124278645781819489200261215822940862921543204392472443212848158195426718961298645843535759763474846570838166820050990924351233883438364530009062470624581974929369751957095258082012991830742757167282323662255199360870829494034821659855425750872774225254879714834310399540222724619510750229405742315037609823746283941758751261098812822869109347615978741200815111604042657046291672670681525293035901097284840758028944867051437909594336504098530385026959622300640327355070934428140388124285127490413111090638272777465117111071084707887524009339331156023149477362086746829994497969967996963865141868444573479095543167118836492917718163665612902817535327752605322137864928919172142822089039423849837638834274888274722511979560129340115084026106988485653082690686682727844231253671754309301044935096034653901215111091008941412526164672710821490709935643360091597580488016196127632454376678818246707347523844435062129437285791954755783386242195255340454745262927063405057053128146330270763242342327887629834559173664794259648580563038913525150028898052882815176971615123003109741674049849994842201524738645607279113181139445133229907742826337503278943338361955709989577090230661917155029228015895188641525895634524020908090359961434223195498924826418004827491876252964467136825178832264640703620302278704495715667788710214531978112481852074424651314476297282372116252547507971806411343490031661399742848324224334655795532408283136204729384390931909626783381004577854145932431946042393762903510356992140439676289543439367238440459476430309052545941053049995148153060205823079230740437598232432048054469588526884511735380414753961305752162228642690941323194701429745723230751258188246625438750170690498791927153649848564457162294446203510307196450706326440682063866243544543547115521108519201815962146047836427583348302318224028547424222487337727703831107790716098067123499267727866635764969235534987925600565330404653579215688489749887119919407912307990069937140091336445017396336778646890121674745404007754438018564577287453027834016612333184059304412036851673895829337330424116715748465262255829300040337795679490370935973409706653860501769779349367306565080239513506526174875054738074995061408985660513478259039800535755794935347214596198991344107439281644900241539317532653973133367659211112847883121529064887468848818811944074610494544002838310275079637295972907759210355061913403580832920796197163989169678291654441741598075700782742988021318593592041359707553036899059682930283536819074926757964592542603919823680941254029759662024848658600285169536792766471848231577081994279756894530903286723281996305417430758116764389774851001249744207099141065373939015303437708861683549451675663221626543646361063560680314692319866097880507364801586049934551934345563598654555322174650498359105972690012444379576807083036525838207016852528493809902818228552309383619273096529966248561255103323514270599515823607693725187158396070657531409759909668505506699601651910390674620725323069181281239138182423600460998270777727327465818627017924329989690871240487279328481310889288112017275483508773331562095788553733836807609466746420392269580680398540262273621583550801878251122304357426091403204975836337575986437683053696004546319149388546595258541773352158294406867113235719931228008682350056517248066021851291322995114215468757795779417299351654492536759053113764450023773528592967439876843499181655079776546630625833239605062930894533932673923699597226123215824207265634154278868114448718319163805714524759784284167329076345772495098505637932891496574110590454530936663883419664345226137870177042507499394197445305649682528355417680399771657784211186756433746929715082531950087341559954036545808452925271579465774615340444764111188111134869979532096464864641156323783831248343805660764052024654826831165086263003192000654184142903012256826344623320587311532959087641538224483740623582508901274392426266238361725795976582331025728573501207492743745548266981557333566066545162553067016711141310294647145627104029706570966406827258349127078667314780718462319966164022114010107213848243669879379090627973712836841659062090253454877383301661082886210703407585837325625427019292555980265006917481625056544849224790405607898601090114618941157055625019391926891924283589364859621034963802904086062495764757512133880389457703472968260105216821196170669587891755260265299936708339574389433965304192037409839381341666047986560615366648195486040333976203298422350268082301825638672992500010740253965354824577423079132879355271701094585248906206583509471550947813814584761908860634692560752498925799678976362106261388090225257275539835477873906743055096776555447996226645742980116148202035664338361289420335517474392488614861255813083578697430407557037975559965396413357286643414095268876751493032318324013361904112460575962425988170758986513074315382352251729926970498327964922090551836913426396017562668102315177129594084773269449956744324111348388945034843950209215939794639576412453283378516749242065005894287714570936443466087555383160556728639261048763143232666977822024459885367989864456013492533051061941846615674611571956867610067832365718849286190127647402795738340761604753687611077034381919738344404822652522201831511848371206943086982711191847580901069126247348741735437998844017235768478918706130677949771412028461213323378042872798445965571265662114121654170722146862215553101023333385432067968501831648725230249887541569335917754843193521286591678991925530260173131172020219351586468642092888737548241239595584777363474028398571972655705690785131340169105663447333610870777384267442170534255822265921572551500962986617024793083187752989450004621460739865875243815078472395971394315508173397083121657055721452944309998414247847553632250578946269462393322513286067990462509340410909703243677381590260006720007208049080291256341079684292047303815324967271955215948627230573156030899547873084295362581252968752822656947156791057781097862102829123234032824847799532456310552911427425638387023677283558654867311898393255176837836652992721769275670913286236769781171157144602353549499970401266486317965710341597427482372088115188524987197652841932747923577844254717980300980981992377551397560028380394591494386799515159156419057549094547425146318600036507738535335977614436889315676648400933318444699649312803421412955411631352582835201998179587843397425486105115096423632573178047973685877752944361670792526562441743308989157359417953722269173072694709948703200237026159181060472913859605295000096203950441893617238329574515098033303144611913679771310609150562040871040153793660713994818687420704503799150610028753436170533659774152400296228637473437785332544430282777726871484099856308263904702203312364120747820867988319530532764099927395158334876300255667951942182214805029115774884164656467205999214128891691300477887599035407085210630608639659875909011660720785103215623440594560420395835975163415129429537181798022409130233742204463066551751621162223067177031850269594215812357147247712148601681518399372820875324131436821186920427510067965682405030873364010550930400272127456352357666495758208952186066895217480388827086961917459907850691505735353303728402712254869923981946201844064860530945489960540230426457682563214401072287208120815705652874119528874055047981744856458780864420702270480741941866143905484097326407590012085201296264757755108712148361361575540413449989925727801002338559011076829577373994325253970579276916528018945809369285189077378266141796343489748745079554569830939767292387103045432780985688470613876877283319680941478560937158579768597547610536425418611863243837094461252928729909116094332059970300168880194731468638696514602016683493459956473833117609437068719346524968295736216005756594704842118709303735185038411812362424784118157103222354828814108670571300335994386811278900901721716470530224581908878046729744525963939722988835599246343083684136342794443902361800177333583550128188590514520573622154635882362650359220518544169935089441219269297900004365126806340187741654721379945272850940536514965495517702676065350668705359001576098726582652294177794362872414120473575403612116021111703030115726660869065632743277465512319853165375211406776889989495794022019319262885110758988760546974436019461377009245480084322160424776715123981898957162798990322120716174750268222805170925779320569351863885043946894183671402198010923782278318955790682291604464732194310547094095625803477992799740180372024343615810456069337678711436989330111330817514896598118288422641736694499722076297910405416298845516812859722250129580984309049670688346831016365465300971261286614644767504242615782018262131311836439962190786702373621936611628285363765630501653532468564878012367250054443691187083734260409085963218896987848462464715291426723401268104207506315079443164558468037483780104946084501876044673539477225568326208122936238821065481824455352299539116152890810791726834656336565791455616704290451913341422081767540122991375585609156244692426277920886751889653225984135170758754079106986741832161200460741160424926236377278622996071455552994017322219836878032147933258042169470355835884951139413730317860117932099483619013312009612214462041526124151597875657677090976688792719523440818122905462812032940191728274502261776946613118397455401473516331652939536079013992399579647001303410097287540258228159692682254265859976032098604385846206179555567287818850454496470648366463546743544254845859848081014258624694138587523476069817789161460979244159978494568875859603123078869545228729640018654700871856106836022192967572012546992620375875052538286408064885363678804443441268566527582595869697654479924587439540388079715340632676313513959068819939960203738612521465040259559698375773780958894876060126627577506602447577158264590364527245629760384577009897778490410844695486243435570840143557410489556404527585413435453766815333065417369920408890018786765190810407486162043292677433237945109703329970546395265191205798090748786657997271878967966364162106528564213106342460257148666516529429454884985140520433932208458200402307679621352732988269562331530609363640152114925816806905516245454428635859580875496589198497987821624633365759716699328706930912960779628178851161097889594029484612758484514074850797086548400453778988005037015276636532044758321807460347029685555827581213915882465316861811703378362722774407606721129017558607197866897149773315218029363011051424558391959587287458175024285960508689957820554925381482496483971125673394522675821013528532310599843385821417037549799110844656428042845664524038826471597646869135577203791400176740443648864544223039034195406331918806033100227609578547622231272236647256878822554590537191010043226208379555561302096025677119831204835398639902304747168319899209773821294729329893453684187532776557867128656339859600839443126480136397008249264707334539884914245062386910008086794149234809347724418293199551301006884932995144593290193232004783678046447607973198312301200889593459169599959389493392836445024669702123647314800390609893188144788579067727472981741554785981194996893027102947747367545283627976639432317862512523722314372071537006586177139453463621048149405225909130428655112570256624768069514818330558736998684113429431828010485794578770479130613004806067522695328119066251964116613718597240958787423993203154768956004940448342535177771402759213973912784017774952213087719502461176185070634900899307772069287666074328938361875621215933761086295568344215014926533692331065971164790745713579446304583225999496433472782766502377771167684382387999494730177234281953641345877454506582430568850907706748348466027028442741759621627677492218021227751796366580628775303739785988066144291940983542313138531713873883095831687410019027761188847101321461924099804414136468367965119111169427424561916383134334707595803215899936907428980886744310994810038019841869154914533879780219309163761995583870305412409872557649685420189978544708181185439130598223117120448380993193080544658326504235550667865042684465501847666333897280137702143258902289756901848029087045731282293806982102988856455213564170390225216993425118218915561128347876325926917607526804900186449206143110299280475380785541832334045639430682497992566755682348480147227181807610916106710942092695073046330414513078499621870946971643275570150815686854829498340250434748631839992931789907693822330140348044260096865144288338562341721706175595472774678045365496187802432952728548487359505519509205203693313103423744525175834757672254970733191247883725790847245891703547642300910100683437767896045704358700656775416998136486742580198798458119153466689223348181633976111570133045366952642982799255858610063054021567528276990086568336099046589968370568756521847558914316076660344745218827027119061796572073823891802100086276040202414829128272516639906685624280310816491602581224580276854309931640867279756147698731902690475935120804703656097185121847102614778978028774343315380774775979331767356529695695664592546908447769823654624474488290410666070487958206107937655681606085716398855725125901769984635995916069786835351705107613642999386749887634091134230000620124356271393769771458950309757797480691255587855990222268610543102146366890927110111908262848969748498975088231961228199274800846345062683108689337484700227623930588007088346925513023016747538124981929014899203289518563622312541202444707028404969246331284120252923485624139702439386482881980078570238992429643255184495961139503832182036323860637002096429930117860894488769272358893896599314179363325612226799852112833146504907892443083722656893931370330766779249750253728630656069390970974471436824085232523255423518299132427859902055484303162401386813049134533566650877762796463294907260609653110520939208235791229475906145637873451967219587458794680106109936573298526902139557136817532432117174287591516669990751168397783998898031302996749782475714792992123790549540761382585825051665345075491105219141880477920128809075688922064128173315071569226746424660477101507676972430496425148313910115528311916523759606217270965587079070533319371664548336362173927069293871883437497597717139670032024517927337891950803193304447394283746980311901245468095954043133217624835510948705203503969486649823305553673627813133361543042119110794949483038786737020070734923276581627374850845776896020342793571364842958804102304506402468636284490226113507821261700607134180957970727175165131736295078586183045258277736882461171509201161823684364247941778885812164762366318456051999538266287105034928915169084360131360775258378278169779833112382427742271653204699500514454781424417803706780485211565039815711148953367209805566304252084424276831985238631928584375564971535682144515020611287091255988868112548846842205077055274759963667890755188926304289780633825763060807934110487047898213603143419894061980124616913851881855933385510659928106880525762029990229921773876822969805028385402477189653187521005139743330261865217039472397214010200995733345351844973648305424546715070077378172294267684053078838976664843717143396276120076288734943708725398878615923486789992410011546748052511888918786582142213891556198676169092023755765867159711555598161939283058699441867960178733685641702985226400145995032487881329798448242149159293824368319493973079852193151981794216747676820112144886136019976587091334367649431581966060770050315330764455099087428278483503888752776661988996170748088016077667564883369644038275784859692485403142200137453980958233746629149781219878083853614118100259851740226886361979516144037326699298143033951539311886303991571197182596281073419280027167726794868860932809283292019783539086045343325077723467144166012658460538330641487604147005009607809582774492046976603915016731851319216495597689529743456117903735624206622653978009972078658569623215437567899754752280172285700227299197251642859961342212963880273445023332626739249626519508230595545555215983328621949883888532377229002798771349187385560677664155357369658563447893362897360853756379838601719746945224330997075810545717183826165624572686344895538251669576082749993792326735519068957477877988915175185242444123597350152241537450693070508928298244752486735687520177979245374896812894030342831091661513459286387648842362276126923870196926259804611512791860141925776299082232434530134123247958226022465670829005456503680537380035751466367867029903103619614349423546064978102574516804654254966065462180061582056651249830694802473335037155082329968212099241644806624301292945692539838293659367203958120303133474170544879830800074948378512678701367389777219133228017542728755173861288126862803304814294701303377559263699125528811567210114843720347274935959887668208412192988507892157701497755378786241571082402539159701186050253114791555293404575929121498504060297783277036555818492265412821939249652160470059826934702949327878388058153676672003712003144842821685996977373911819084661398628649333672540667341633789321293353584626844111941941298240626097287663960259047012201649184532162275904456221642696686456042915140099037724486918474416086515516370126085270590480989967516533004785335096059568886658391625428424332979956471149065660444286814388882180349705041270699810307732633884693483989230736076258605307109876518888843712150296946268459959532446009940753226687215777089664934307945912216711824175997344347190503260495444187107164020010212310199676095426452079702438134684034713050807391136756605394921549906502122340293627853328262623594943747830957230936134000566038155979532106354672419288544420070108302666764179075273536431049991417141620632895755573735315041961190454093592346295549616680614453504275239554502867297753960301738531374676149432533146403214357406254706494664281036359694851594314563480898973546022465077819076900320643698709278542266774502724117504325079712450442461465442314026625203255085387759640095628161555823488642484485269139811773488012846985904310722072631765959465170593422543689579309005682571893457091118124606926138737043252882269061769024455787083278053888949630974433977811032924312576314502317798282023953905094050495312997062605301116146586384276847281525654331830130293225512137734457805737315246920737028882216726732848666116556740443832705198930498457551332930085761881692357044015446759812024422550732960225522421879273417480843786771502361402752689402785595195250626960237810650623648546806052510378821732325941258892390331654341867623077733110026740089300178396063612318979592702263366519828862454602499277919026263710530628431304394100616793144300508660832945377745160660937870499695233375932604578636899054149612833736987246162810100437022273132588314247254359884444759366506312320160925485791230855494810678600423076094544545037972771458703600767514553074644251474835263745740298899352254592619565136365170503145429411133243659284783028969255168265680344649067942272630251051366204269386941350426059522467503476846557697164035252658942158171591651093854551258270612201932122903163910258601963321062703009848921981869692150978226479734398488539187700874575570136595399900838507396547476249115105934829454809440599898649101839959262006276971034442601264534372959352226391441376884003365773817704070810289834397505104775050551532150845577319165571136732659593692524029915693701430457261956122025633693054357546618020740489347918214426052880151903353621718148230262122051519854059639403562554767004626416223077355692128894344246313647558042441208310460322243699018080897506581456701476860027471012814252243476184717582569680463195841169963371815352362064160619021004553234094316912780275663678137946425442095360987726189905884989424710566008396398426415837390074817271526588600367592242416556064539544909211767240346075860204778036554648218178985773433719921240263726919280712084291631619006612052135048022755656513984907246160210378470449165291136181837401591661276548565131184468361227207625737515777773211992175798117729543027516148510342375157025036952913723154850214591427599243172930462204567074260676228635998079623307078288625516334581586002255770072977976349264653796891104997868095828871963915896495128863677992498964042303227213171548532730421831616727591606291522902845231002422346902775262330087056752352365403688709798549542502009279347919893494216314217464179472646667037680304202027242470607089147559222839844856552197981863309866434748480113984080889941954053356713511788657105935017738460649433868244621260789454006587566872543396959703732527439272987878780198194030483186685538494970231478910567117483402061283342918682524747315869273572737929847832945645293355504656133606297331613627902828347723665931582403684201134158505587512315705693554069807368062094656780492449096965426611068622772396994224802882851947916981641551947164955366212455990641713191869679532126144283675770143632572723051540769235509930956233387656930220905904456632155237254053002554961641228027812799585655072870267733351473367896221998892831506779825933408892901672804705547305092073785250281134034076485775488825247418450815278159881896072552625063785136699383744566082073617712295723182464550559022544634717764667062619211489807709989023249869425083159910829899370518237440689304308398127136748227931495482421802865961352073415927212190860895319281972700643328036933664180898132235817672252782285561099992385263346773071191271447411551134942770472984182269764884909757041252241892996185741473146538038809254101116381589808846551800043757881664066749018259059327401030634577141058708326920843982767721297800917758613314948032638202097898651949177296375082499489860318146446315797924764137343338273566041747311328227217792491046738348113429938538666370537795057087370971361170814627396097360963810772907479451454591884646738928467717156281027079735671174506870847583630663294329615972101154700552046966430316209291833312996863092891033284290461967892218638164579783929857138122428001482486109819033641001016878561407008519018009383395924471934112155705153398264702409581253260402142339751783030220771636836578657503565769522273161217789704100039138994360565756841431232414205417014927250619831076355188454297292263171864767778310542340609310053262461689943804795511395702647475559882344759365675807364215283525093174574927037805784720930836404176402617518725786191393787362485331988215476877969411846269327461946796397950720664471806753863902169748930121551266292605781651312739987326656414386376044246636726203042341587667572076360869814740344292090919876620884781124235138570428109147437581791843243407306379136224219620280776950457043507341725362124334898953786813461445081543417764442078223595856290276708359958060180242245548320962892107121812352420866447975407028711105007799343925415780455486282266057143861092057757784208515316633162863593443735930843728790895183653079501232844146791921204959806148475752605471949030120165800387256789665075308000823802428259728968718239718952499316171617845160117086878226173921205717301991309854140522011559654319985628549448650027738402983589916823221833711551204051063665310011516399001756845655480357196100151799893696740775825468505703279066061046983464583195883780931067791076707620808809997204092705348442567391263962543086050304313501010395436078140070489836636132236870681841311145902197769565915103945878798083533116927000319110908822265548903723918844247667127637268131477907576543458610406435528926545573481921342103951437605060336561954306967296376881976601273831074044338784204259484504269531984093782888082541509477445147021885358325235242467331272749594424782308239892573267246530456963528256247049539232597749214287525679244492976213494993109826314991887736106458437492558200539329147433482978161416895430400659229352953445840740443153063857230288084059713574707675073778670802448154654838437011953269726951360363113772320855120709308641768864961792294305268563217014152089816261394413263799468589112775286062593577655731617703603890561703596714547278640980900646440093622382839037143803681949815650126834918966993206727144468034482829437738154714897243818930336881915432122542484508519593714873956772016958230824259232453099187059700586168898043548204385202623933828468203744306610000366447198482014773014746428982849638969195530219113618564633050950730586903329738348860002106935582488356777475922517904551960294839003375956343101991954692505224779858085738880121098249332228967760199029759923672840568217770844681557859857829648973282293099092497138939694566006807493980843339781234509051674405837804264663281517727916069135008915232419889940670653607013264584279409800041368682349715959199228996355967502458431651631861447547195549568725497687540463857680304275666201559924111863559368998889190388875013059157388775147541679898576864528814275973683437259459875935995962966990568310334008023529503980942086098514751716653666408604782167568652514335239849670815517899598750836379791246968803474567950190090032354882613208527273386062212732890549145630304943690142016792602033895398925744179678247226687341097034563765135044695686162493319489283349197296629023544837817603432473057271187796516739416629008071455241884800017085919906699330528572879421705279292882361528805660281367766483088623295357953249095901240828216682297633678374218507103348665503468689872878433107124087382725068448898125624875071892602565674617710870430863078973029066774709112543342658379665277645512325647357666374459154092707723996275120892310551739354091331681068222272313705072169563362959210625171388801814497305921965372202122662122862993741933315877715967603091817014450343512716585986240144712438921573298715085815761196244783643987740180284872073487528756991000488268819456542344319919378209443255847145971219295557188843623660798071565907957985248693619472452392176278949257967471134677017282772822718958354458711543539287659301048283094695650946061805444732522547768941431625988471223309816957869050921739712858220290757336641084558019119151702357116242036861819828341421639924799868330240003880473583170578400820715492116918471622500509520778362254800777715111579016924174312919207345501789856097356764215178413909514549527725337521739604608275495402033818436861348772156180157831023102497529328946689957992838583254625888123349881566952573506490330307750740021706911711324595571287049246340723484216841210279016004827961692786838500456599031540633333920942545070693476408515478112895536029457670323189760218918125029031452333587785649044347590823650307248898384367574210974708371987189795232826289224613720771608392878995163710755720883752295989091040740224829544310115133024211654705756276779939479470950822029471505259152727481867430142298556750888772401670335593405707649233057353222259349349596752106340194463785914479839775914077022614392684961253422182647075907392063537953919770182989080194726760090285536200859034286155382904840156143026461767884812899293372580689254560404434527697721057202009590795856266962304343400035916238387508160208495147938117903342942207817770791101660181321443168546181235121065982142568426752768817559289224769487655745035703967332702948163716303776556867234267626161717652580257354098413206403856899160412232199066515785120078063073862859467181198291096691709468496992732368619723210641627435708407712368755277384662000234467359735387244805030301096636816838579561876994618366606428248158735333563998299566729651364846879967765530280350892754107855537428670616979804830094870369617727627583545438381904532481169051167380533252800879763017994610421330473867824392534594480475070828643582935171161630600472931512885491359324570914509814343598351031279470280450143834470176583149003506099537809059342890300488373352432235565945175652498247155581883752129789289122380913646083869171701372198415626158529280701495847595336512656912086447232622862067813194553832248164062451374120161791364375050498968779376398958748786766019125309359844186721920279256184179980487430975570236355077878716111054266102292462697216361445154320757633635656933109189649184127503753787921465140220098510490312348698091950027818931970926981311075470738943625370742727193945103532194238786333703515785376923378806771334076274704294254349995206342029891269847449980045756983083167315082222960832902369314654155103955333083880048200735144385665583304911182032743585695990326002180947608110535882873545417402246362854188718498673406228194985080350237688598628318984220343524598546830419817078868974330414888473936690342884113812649047079104326427549005142089352386280429984036385779333884283738977566795511556325541902601493544810580925842249993867771794923468115505716877212740325231168804925525651677656847020476648037627169506267295173879693578898857584654227494983148769467767040208412399820067705807160791614321878586460362061763041601514351375290780155741830444333720446603665764534353923454432090067999663808643412063228283468677083108413105972990572224199913055276570528758028061903377295736731711202032878537962934377798724677788326268317648809357459848729000581555076494091461177233259717064403648760225976713173802541176539334716101535202973940654756378309710627475322917549572282955026075005285116385011314001962094671383062910765166978607221357163225533389622651117009217601137749963416893583759907748945416518640227386939511339512984244399662722216551728899151279459101534169383514021751828234550329360185623700920610322086363128170187333269759864735702791400286442263501700505984248074136943943788078134497007370506355836195813264051177261947849368268312925076619524893311087432180656768689213713050993397798017768024955364832396556729030781867204659921461840066463818630008694240183465787937604083184476738044525184615726928511336432713178437761859712594462815039684710472586658739219699086338999152728933594412031618881401722447391365393448512165347126115470656921745939856534118395856961569603450508856898572777873838505175954457021827715287422363865197406711094512390887719362737590475044929754926900047560789824707913063924511839662338496298405812659481042191065087518274018598669593471175939186100646795661271612274540265693331735833062811698917052853972600981068523253816882857141836360914942622841459591960584532848173352027725302477327833270085319604165119445590995357441511368060601982398017801953782985292490102185157291070729763195589583709790122190415242851188697223957406019160501321904069006060373832233915844227858880296461204406821759922567650148072063739123186004733151195390931666670547112181873995645682456027831283915902084725859592520722159387005587426738547923923335910952757450964112080089278515942432619836503007525279981587772218467191968042207433600805599822005636037265481957018432650083153430342050347062997177555695033792850268658468269072752970355453323712372401084879064135260816714592618476229018673920202781957100215956488031816625396734995716259999159886236562219072468897582585050118169445927073513709476470123635785777352914695407133261283060034249950516453899152113104794638347669625812166128746159736176286442056119570508684765292821399827094775047003568091550195957699143034562216014095981071192233863970257166008833353819198694305441127888286955967127277254767337591445997572756997688671849707909165827680492261714009633295537130876318078093697845682077790545950210067863798435271499177736546599301169910967897875493689363615456779737287336869823771367406062992907738210975767475112993666912269753584551300734958708733489795367994519792628046020165784524424052774147777280884480429424566132596878007871077765606126522972101004443557785029729680761681181919327605320938415409884150273652853551642770396585687130373568425869761062012251490669582920504655480208975279993215996594795672552582065304826505728878100724493817454653405813180923723022706385807973602533071654090212328736813299692747183283587361066722658305344931534635331188301642839821174057185881183913903264647756704562105743863633767214342838401572074172139373167017862110540071791742494445722127748013685911500861650062242228275053063419250934825292893866892961892936691958534803537141627097159841323325925318294164526249847753596465613220645568432880700221528710032115703031369422828795068426525993842730872893311442008063614635569846535593224943969749965994542518197540533553212998004518254300382942814956741132159639399636085535544771395885502737257636480789110613032552045098724096481815421232976422216124135355011668743332267837877831472505197568636906996080614836446135946580388422194389446994267498174205366282324945377668869350356026633969839696624144839373797166956885415814898965069740457206769297455065571400587435769408458717821584297789769901992469241620584835159514876212054217020951980669879624424127395812046390786289162327158928730856699393805884927261814229733885835353256150408763320263395042906313367419492077986362582438185544262566737196135119392735040106709506555863834113491221380472463609677751322637613180453712944951327831602215434378657701968228494645498479810222058573642186009556992393033883540487959315504764612730667690683595961573053172275176565385084856177062356617863469013365548219834241331331966620259646852198607325596042870672700460043446735316423393324613177579192608848777580161013113309168308950423984740298033510792546238305211884551415952238731347665066683533409226000798013183546738432284255639047391736485543356956645149627727386009646095580126245275848836612826489964697340898789195859284934934771297094163164747350275558473350634656821780134190648351239574473104754023880666830790758762352002282918891843839560012719088240694056102596552021894911590872502751775107447451677997465307199698820238057942646112664981891911585520657392975366104509320917878469201745145008995105226885089396122287167064980725998001643953679809844485676452461311550681779992108272955325688692853743397205369778806219008245384456438200673427074026313857038394431560139893084613980837393464488791827879330432460139053968424742551963348816653360037697098327487661540708932797284517127267214249203015327789885172329686769986905365203130063295751512599457096134862779133472633287461830910758805299707405541229012607787152794848356193214075852460436397367696344994364630791964094212897429819837226532125379869540012054684143642583689836873429267851668074484079291395344586290781986733041210890244119946258340395885908320918892202147640628028728431872884975145244326193376745622611217582522872883873400465219421287241630879188821629866976597597843516507129599863247563702592550016150757335486153585616081379030666734689154845595145302623311157904672558750041128246279210576090501678014902581086128779533340134721429155546707292803319604228850754391347911221705724230312132332741670590350818200118982195097722717899367333271286017921295188751162032853532982893600631376146419144877333919059778272375590658112265551152810586229412757751716386892354944821667688046244038635912205233981871060842867717619652951902044731359953520100696283483790682539793484151877098054323955111280339211934977159149561365187274115000080530965197311684610742713616079299885798839212608191375671851619822234633943667134491021969488202102089562759645105322590074547581380739379815623504520144772122238747632687224177238215877041385487475569485223935915188617783159379905582003726756917994553117988725093416640019089467405948618838223400381114080561114408338894358397744985034849725271900746007087274760460320115678894476900036113713606013423493838152438582067558532768183105096155828465006301934887009017399502216047948853149825652616306956933055394114319944827113109286425488209170547659289084151220367726286614891436152052643092727353415512220669781640509315547742694505009145495162224194003717310070659285711983825109863354881405668068602290506469631564280070694756514702444030279322938320970143338562325932132042211802718812085369280750591405574189247762002594592223264634467784282654638511163181806140291365062269035653129752749000589086261801236817910406440775615333514428410343508503145603029104288327816381953616416493959117111187230407752748810639458581486094378800665274998800294327927008593437345190821682404127429604304616558582864072372471948030686166962611406194730163634833045192489869490717196737793203485675775984996018785641091483130157949824467010520767745284146452110622648866651173913218131349938853937550017180512610610939657205127856710446707216651753829058472855641152943875493817622122053327457863691566710309557038714750833652564741377133147780625415518218228456481053442646982774924139961723702210098482416956656012339365060908689810384742115681632088978318408835802167032536321482236218833630666996064897967602506660957504054135600466611397319402323360810218194366635786362438725882039574629558801381252153556515920778522346465651789250242943380976306210365245069850592829178885231315808132242807576015179111337431928139182821407253649501706784973619039786239535761404945660992287703634626617201677605153209764050181768904570134097541287969660069872130075844616496877617699308085602810679006300178239346790381111662726450957464291874297997779313701843823371093727393259315703469837217226695755362024943113880934001603456062485682514877140622441706187549848168390938133458222453056896146279340669541874969297782345607772257751412267414846422845125543544473463094221359099034660201894076140105472320769851353207891309588669524142151478076148467559463016316638353606524079251610057213454007674368867714961503903263772490925436526304641768301923713392218293058923479035573415437675228353169007621167686415854802906062208106062248730500999448390299881867224700992216859045436439928235495624495455675594206768664213795836304509362902801883240631109832171617614304308210696799166726438082452374747349725396572822801160511937030237399669759991149423685475841759229002360117639729195203476116830766359634841228723265026960423578252041920729753571435557283430281417038163070156101359566531872812135387010274211998638089730028680762803316673928601643207682154122417462888983472894438862242005530850316782530837671538754715054378828201780947248207682365002152275234875166379688252482600994210163973887975985383994979774299735194488455421381896904459076782877397478432081875204096937961970223450124829633368675317492587669671779232271675645519509805212635729929897676716929258215684884377330963197517418986592056461386034862351621734689702562842099581481552456526604597841097871552712552227624732906307143275293957378704122762449798186363380089607043954348694095218674606922826577178589171082564293708889207374839567100142920261108185326629494147558709599435550195721729822593486850380577038910419274439498312275950701565130433923428855591509388417194706820358798977865837662787058251779060085217798166662537976865886004128103323728250112381918264819792600782275476437495304731172827148154176223042180506567098779805692977016222156445107793995108488274870610558723589540698964093943319516702472511286819571210700409090877301696215425001611034905904540546096911921083863893987555437998861866759335946873150327781302795699444640187600392517161107438546894916498754781190317569555574799778116399468958542491972007389674371100846273792856783464224958427082779680846560443020431646182153302510002323687054669543383208233139369065525789729899557509390939731558653131221744850075879713189289734124995436904771456558530075367333410906096088062741002853284186183449955871304930731765652361270671179635495084174406654313760033054621457165008333850365682504551915564594242652079119792412742727343840647019745954644976829030457544789016082663439337179522502731712256239070715463829653937601872493646999730653089912990078539018914786079296563961271582754572686490414642826812142816150856883418781111908999240911862679203430004137731206722719207022242304854786260893707323181505900368919795825509378519860368697894532528830055576609863824430238159169782889755419480395490724550713261400599074028302392596707445441343011048532539399823010558155091025771093509400203928595215358560901832428430034091015333832224110299593605690446428829302787634999196098795826764859753483526587012770042786668135821069134675592449209230751112359204385653507661499260195583488081825428165857083658210916587398687656046676148873237147683028438485339372978446895737270930396880937562661683693281087150241989565383798117995598310858246599915673628094400535604707433129588112667359586660496024320053156509321489503903348070867710061779671109078369549113899534174282823444993627516105028063497372783099468435715221142818534301387660314519203203660880087910937103597408681359480172724001808629324351882802041576369508287495420015026823491721316167777636591808019622349312323100389585170342460117018014823026539714104569356681455452616762279492620320225396379850125281692917638430235895775832759689149344364796978937011009944653546415863888121504445013787975964309331584262074502523734492713779320000804809555641152138383477187343211200075556168182080598619115007255317219201208454053854755266118607769632425518053479762260493785478609249348246259232288624785420450596836491629239407089382498392121888452236929726257153923158341443406506177044689952910793560950327692246792298732631917960630975223406466493672668944395121503616631592386790520630169208598169875022076840901462697539238044049860152098768347630539668900370344077211544603318183988753793254903013569442676725194420077637599030222326207881715138319251690988179291605702390386014232871936448735303770822587505491834560743309738250705735821668442956842135979803215802869518119181764350534534937984704381889323755939489750781325336052472580122808503707053059810474750960214016327667963896487748487913679627539471039467429149970458761474703660506009439084914144832486031882501652723785175113603382791191998653891457126302321218701036048200983419486055937008804704297502881674915356278146243926841577062113952467792408812478635484137818645438151018047575295121069645863468061705380471900569107959289954542847564643091451450757530241376780876172330338329420634959684718579275140233321476460330804098786122668733560225838866125979192594220768600592909520068206499725767396272404127332946940811306772454164923850045458534078537485635546180647290937599183149261285789717860390310255910618771501880548839836460502951335451601401050331839760933585985343166847308162252750359312086419717747659559745691920779523354495554889935341953757555326467386596169223627575933058947109634775683631828866877781528241328992030876143154628802960399974569964899019529661644891886711263313742204397655723047928544215069439505309382005385811427005721263905441429541062325866865092725075005795976379401922434332001271150201352630406602289602631553367299669936607176449759902300180632564399261000268223788965186426202406357525433419260096336800844713677542887689661701308630329860195496008658351515111119898614829678842344648476791026272061929536787606976178741585025691993008666299588023589288807987467070615290359854185438136036224808927506433384569382902813537272030550247007802877883564074552732685227721171281615062268962038101157151936326329846678257564734696594619052025855257315524552019832859647510603463666867256605753033372476600362823608988881031892700309342070241750284782639182743328571978648634319230898231617044577829716483842832889976025913760273507757044181763001486244232175351998252429754174752764415734747412052273211765961465881654707597310664667384589572058674819600885860573008188043115969070368492581411623123018034702319855358878307508289905935715769589289723289606258846346806560533683972358743639000513400802998544237618866253998836971298388012763899446105114635819932369178153599053675306326867342637931983863503024942742492879390641772418520877670475101155842476898073707549243481655071334586264101847990119518948140507128122667489916507232119682434206771460336968412335348993958973174946081130733481145869264670747118127909140267531895465328358796085394709194538466069678119884005158922434407816222616955435365083338064923853665840678652478172578512351630683071834437711345982333114292109473674960827238925869585421416949917716806363742142403035622254246881714656261296158504441890158760495183859489698347787931029998729440910000364399409551225750384537091090076061595274960229128604651005808875331122887091102126123187105210187324789935349322198064908119899954041816894935288433574565233014411696475753858376240197543965613423904928019565160719296716761619498371683106796851804011045149335079605354391186549759482804787326820555751720181169437934573336500884118146842164385362429933920132018985398509022003937389391771041555722847915736793217174889159029439822122350821041737518232480503828177954872163112720494769453688731049103283155553610232424000398857912745636575313936570794128415804826175525437677511613106384122546378966593817297788870386815362201957982135310747114927508639452585032002289078914196377420832338372533240519601899100396092493327257729497319316582194445694321189161340450610969285429780664502212558684668453706348229473065696217735311841604199000615423637068415133077351944456203534622677418078943307309371764958837239187869289091952707495697420306602288333965759981259033514687803148871607810781081858968490750057468150204394805135359866817569101642447729505462829367393395133164596915506789977453300396020335996026002968404618320610042762201329035423934395494174825863815351446567908036771688189720118421665716115329369096066347610971326024831243811110881255480235255278521598380275014519375591464670408908437158974831608884996948754670706856928619719075497954972382561345938609873388420165209647117198292566012228855266139011053992909480413794042688717918027162761006236898246700460253657906750059833672319933170898539380061442214294067482111320192149003407319081299724119816993892446713267483275659725270053994850856247679001953100607448254693762487894874468484035002549812045819425681869435342262646068269690250043692552671953309116539549523563654960979490641605923572829134268308020654548958291010220694524650894573678220467067439208170809021672203091024686271539522610532963111516309210066878706920984258576862873982857688318704871382807260016413573004261165921034344469752617812860048127110551533899474335894409618805063708440474544118511500530847704931506003917107484891191628419031405621685020745869554763777462915970098619431647267860856541905739851125627854857370244420877712296304991391256542642202987088519474049929455393116541531970080474317390191509648023000852864303492378583438659645980537359267766434382227710630750250939769383335960544036677596024240743319640753246382169095408379793206491723692837407647528779247881995057047034352554601116695917486596478404316366298430167611707733224316366567468396821230788731609342989062449850052585509626131880040279689945788128126340311762000499365819667718265311029649193533542162419643007806697982506282236338421427535422444350983564254036889730568677122426720095654818936708816316597233773861824608580423349746158647899139000960387559119212785342653339907419153165849552041891937798078253748300730279412339247449784120565273569925038953664269782949725091975204732109811180429086401199967538684207784828727868538030127343469981809664228314417828304905346538617558911680708831435186342106157932392509575306613445968393221994274543617545536995287368992886540266491952880598851104516887909212130326656677663887401772778192705153343874447496134870700891146947934526146354029480520419228138583651214059024081306323202961014893918085110837128696445086301065910773808482582908994798493985732818439762578496815452560233842502989601701464218515160491140714139388458773799458148264996108952149087613083019617650017751615648344736346922183214885041491382675249979001214618512474342654198631707402372372639301362561188980869619420421284170516967466031074251191830067480444710363945275508850191929844681607250298784357557466024129618822801998118633894151526233706529444284861221078069865291192656615527480063355683303833434957421422639487126048713113354251995014812497310219736298707528899197752936598397856810238114911504272711432780953583592825031139224545443626768365325466924806714911521438524410507894656194684019959738713915547848898007242739895924635925472069028975233209050282565728885015918179463997552432158478624737919235514432453255936096954696954012098006781968303497439032106915405303228581239762457131673460481772625233188761636887088006378270933769995551216828889268357604052262634027677374174460119931707652871952442898035201181285019862952101177638723879912173547710729964144050668177547942911117307954136505845390771794000797705274138540399261560194231003429570859171905059391288909629924271233975987144950229807922821739665464317189144088552816219247694455963301334896408553527572621200646283073825297573319257240296973508755451899215393971831822571463896775642508880214292860212883207248659405079621479116406358824290082911076732304759710113906580434167823938405128715233420843920170553108227270297392661819105613906337623062433317408199185754538019832642957154648984306494126589320820021540151444841425112721554341251741264759016681505794187315318122236296811854881367803155098245680629342743448014798417985990436340586966898202497397623520557542094949889725988450547605915416197665224365700137156322327641515832346568471692993145648863095828644912046797921180265853669893074451977509961488307998932167502759533030859080275725894690850714424054228907651651137795068946251814633819797137176906069164741677215260962574291796177691871466732614433987387353617197269959162947013794198609298493970995764944712778822396641850785910165328420948898452896900160622949967908185371574718154972264114767879486600464334997735117390847879841140977738746992297499250897489555692848786494714619420313652033278078208936343956980581030300927296537514253729621363512446753471859976017828644092446137900423956819860368349512588876486370271735460782194728635993637897896997678394403591691652341309156354070474721329482396812580623585681156775670164576365886439966407668951090089209224285737690663687682892349059164174962567175762846700640169116301248366737310146082066261146165026424255703306907854405191445713899591266682610106695552202258024072524658107740869276834546963469659372232845480885524950390263197403193539404869828986868743630978818085855299390184975154200728044474708366683650572488607615486067480839564393651250829153545671562891845567738039738110682935739512321526679947468328000738702214877753123099066736979923940290095832668830522414426102577187927296085033265218162888301866011266572540589918931860377723971076117523648068894592751933105477369405551127322902928216340894971989080641175955329054039197256131663619751529300351332208501700034657966928857080624158034434817770936495220172121562705504979338221459401014762426831784182766765217488307658751324316232716067825802360546527279567043138709793154338818257252786495077658377879266162952427001492969242569129042804704380712130582794003514664528551040992465092111953056596456692372868947659134827962683820131044136738355737565897776952908953591304702580194113556979757211680649315186070146948560014576689407373818806205924667306088899865241414709822550694964854717401624554237700519942382832685145672264468389971832324311119569482184560195911010837068711594386322832642448844582413384208704432566428594341794000971020530951312155200557986710593608263682730389652544544139893099216953068896550584509541706467990209411317034586295337012405391797732380125964436332882994443158887329345352946633635876293951894245476871054376922064192955810502043695242389354049302367233700351279324690843614911607392138468652743752573295113670882104184239938806974304055265122727485802218965877313372759018480964141334101430254726570450961113588548094789902426438075773237307327644336652425326420383036994412680619091479741108613243205313953286917497869277264126993071363744226665530021584639934978885178212725113881470094352418769755813568222371945923977347738492700092159868934876147889019531179773170484208124338594271775010663090105986970308396441775161272600088073595313520597370698784679590589009038978682146708257661069095058426140568039513476008702838136777520229985734650438524198521775197182953525986926996029485834120963257514086483285330247551338361267422341987632608765266582605550468648079886157247582749038066563638232222332005842410036125805344736358678714954485012751988466493833341772617992167835242899586242536636694497402925429063521294157190695191797072172471843697420672657387139899034267846338108912738276424367673430547254988367694073400970574831578378608634770186507082177592993124136369212449407510282999080474146222105239253131069766841968941164342516782057123632521916430049538465515549202275260105426577371077393900479437232463340771701613136202770716629445529716615356929705953165260008977354137370647158427325297822047337540241254628643237833618544565886455021334594710428780324024643224911546845243263446557125490087719551026045063663714385481935403637566469132444080274840637788717549221739027924348141914036916924635798650934828674494023562903962446775522674197229225164034562929090835992141552185268753776697425024185922927191306594551095083617348142602080912981550599072938546963664079383189022172123482369094469912341787013449077643371064977019548667554777812648742706197425003420353311377941875096219667082126223237136847685919167514476242032282920094098599614422160973797087769174918231629267165551834781315328655011703143800832660931060100902504052805016272460752789000745748005583716675503976260767281364873500335777695889171017311447437969414716688647653394572617650488060926753964686319123655102593878724912467197393222585380770108366511564737731153112064844711487424459591631058586628397731502504449181860021976120244115883131731624593701412681326141533977734452831205061576651157138964371184827945059219100615998160633491704622435495967046078884621586712682868717429547931704975647975415272843871539550199575837382125381923463654000570758827299706773942808501233797657223306423188140699188949991269374010613138132149081149124172711155983794932857235245925188720426521539901558154369226901119970427673465564310313096691963538901155126301927798815363017438986376700427642020028276559057114053117573507328357080039337656591069010191729696136509373785177795253795655259318803667477049212865606532773347432280051485318915568699230808099585194716867621859985827947114486283827016197391292256176807637816770093042887563998690198763649857097999276602351717616381707677186776205913511189792456306554939405440001423069376338324780128578604154332417275625204183869367419516176942233714759602437000562097272222206330928420967113745103682082071881050584147219116519254621143182036214799857940995292799712672670303243491275614167491952263746818635203202381007910897517215389497987767513244666489443928620127944071752536639567015093045818882477122565573902834782439874104304215405800621301810180766356458350360128101277475666367717999626087014554793677611849372512209742320382828023843359684209310255476880732493014259521182775372769703328725043849254589851269179085730039932180459645505730010615398953829179471072227935984129518147755083469662934933041132539552263229574258441066703382235055041604289893039933096563732916205359783309620770883384410001113214093524252276271340814147434364189950674146048838039821578593074055740193691618378265359528303402449653900232980956025659020558818265041571375501032424971377915141017587128237986162845311939671394827334361713827495125464640320917671425766924890742512692696614512379684731380858398454507726554291439936938481594018898883369052057007773982360511737861928130237463341199636110695074140732391310154391542664738259774488344132796110670361062950751233690669643360913767136918539725266204198331425011143179744132978635013674691750281165590408520271257613293026177108872271001096149259771712637296103821689084536772358843036723975380452994015226742779624844023425365286859091506428373148500187797776502071852116404102721322836784165194633470559585985747537266191053471833290228784948808542492191820735274044368435745885999485114444287044945469087076101926399401023070530486947520734058221294202304530641896849410600557461327030851471460378181131395074198897807315704945229164649186357769486595566216551439129521340048143772538079495215668906042427717470008777321790927808527527415182366232417789921145905698323005576453965031620161662456538193613623841433382490191446155119935245803887798103950422294776460371821144411167224458427794944061946730494424404218312070497600025176207251396078026986232176345558975702340518509998562969379143636627378211259878499514276760125921377284710054822637207886667028901659118742323257152109912322519842936270538014836038729839995848601202707662125573272943002518473827091618341067098722903242455522935640011908639808586748820887217796934469764366214788555271741162096540723583016690146743601053218094164452431925487535883070712391254725853056272979579048175925647888594748503844598788453257170783397500269043904781407660607686028125761744075527406663737701821086985014978418731444720280052662365199749164703878247805212705556143580654327493560582400227323144981073995439398718548529545974405533139669432971289176121078007304944210892853560454749413263158259571747604506045921782800477344585340500929771100265250789481541433492784917887089503146157141632617729647011624804411030715375935525460547216051317972224302214643768754625946498197981383126931178837786048213762507768781708600251718657728425806899620124976832512774823709425676010396716722054711987929308150225434431795832783796807234520322898807680154965582230268056023296120191970553275908608945660243666564196812199478878440307818169010103720059758869073867908729330637458124003203718562255070260201476190102993411058808714986975702275034273115955431155757690379318891140706361770769027602630593387949437184209299730282411384991403108754746266136892760238261120493051716890799505092779429025550688028051679016521139555326340368604369233535294333966272163160473114017552997703630083514088502620448135027239567768751409725381066238478040368588105282629407635406586795644527005236358199769178987088312212743014949217584869734805665893363387470271101553319539042793177377627699962168143348395412642650913448686031876333768520170593122738048329818160533997149172999403431202434932069562277954909061862021915667694591136909962074570410290903993760985870983714281953286738277105832356681907103859430866475227471664241327222644259016511463596986163507873532795498260989666546050310287887213574424867132310663180189294266200508713323700543114055860246027022460555937044246206147438976425945970981173000254175233349709680309219586444113184081625482033102847904077699539082055446849502538436283958211320236106419126689101682909497517687243034525318909892730133626394461198002293334666804741015737005884516727060836773329461322178693704475868786748390883407858043357737561654912581954105302301425016244625773969977894688271841115743482966597637355879600267160635837009733812971295404850200791676913698241104604030629819837863950266001747375222875528166204079507440027246753073420647692208909817654956599617917184395945591624970381793671486821289834156708460948119099764412389143167315378343643115745939430387136139860857833649473269413248128398242395936946719715653733581073609001579121079021323606036897403961108848048670514674048131537260188991604041963699482764950029358473924724451034552080868231006698866802857844039057153925678214215316554223416209820477662834733641484236940736023113594999658982228722624050829644285230364358593367641517226547428666081402391413745458930198915324347480606455983546015072304506437743760337305708361952790767641802314762665548513969893961987678482755684599943132499418074700632951664399943513924637740145432027344722367318066856840928676155065178231057977151437255768135805739576002207978540796450948159505477448164941168383914656419918019590361758596842930673683556404498066641114766363233625438848257626084227464241281356857631238642950992566425172533791522519353463111057218252378372982639102375538391540893713196053182242730793038968249453409083364324260790689336124142185423151924590423124503953013393224904566315780494138603891650395258107858728592020522125239413111500473161489463591085388182450457999620719769161434122084746651682266743855297517750753225792544997520909862621269444100289588032981522543816910148347083072969089315047053700088646099006813005009808768106453949578887914619356435344091475553834947033625099404177742098671964822366945151714146085819088013981282368631026652770074135483222663827739863219174416572420885042525770555127957360368073709816813712937557220027549632192800826190020025021771895114358802847625035153919657612391596126684358048754171712380714350968432044959537330126370064802170505269769333179295835373729309051132911624014395773753235796236198457349613444063634486813272480132544618243335272193428413319633331348341560716124405833802139975809273298161498921044516291221191476029222405190337851407119243165428332733233954825017885875682774403058343250822425057046632130421421326510894812808658223532129828816720345085298162314143744130977797795823414548886775677418225291888504982043730754174509196556437982927981568712859289411076819577170184903494048695609442463788305741471433769388421761659881791925325110142474714123358462747836661267003579734668280783851167799975536601682663549133104556062722509637562855034193413495879003128126773700592711527716619196466009075354697709466364059781269220733195906431800484182711558163346714605458919702294384608124478760408103202069747003465024757037830578600215366336990115985611826342033870052581501208223239721709450629751991087186369539306530620487549880359521804607714812663457403757509195356870015201161341392569667306276055297723263819966508891275914871128751483702748516624067644518458651349923357157215468488011659162421874830970656788187352853127658062245242583486068570909852267299106814824489982813476930328155858515014460869815781686329811078061502536335668777765251914027302819498902531094630188103113398961908301032692793573430958226195463971454343916072736131934156860705738767979788382607179169308768709409256681073413325023803205982576641784351303239234507133886987241519814434034644294902354281078398341544911520443624811572351574266062766444072633803925489517663592537148992472745922410011828139077567683624449788110415544650927860895407283732510773608945411248358230161454493537180134712387172284391024346955319768385428535307711107979080726279081193155664332848367469236398980800677926953527740264801926761069679955941596989298732997348861849755779309202997779413683179986638018860145094097346723590545039076486490969487005822691270571941681322430108907173475926817520038928851203433612065402594465554290960447869732931958861019679519894611158033278905646397598934248044640294154516683246002177751259297660777061480669705950319260422772020214775378729956280697421008041248352662479037318192593437951467820702550759649732197879675011149058084495006528792551626020596163581406122156624559030731315159568151606382109953710626705017247286413820611661815983303412149833618438495736985348628196023530650810010321598895153517702021331563916005196025503817626525790829716871895398693757374360761065863567015224026788036701728112073127918190163473896570624467635689287673612699741497740699600247843632657144599245103043074740311038558488953768843528214135178234741339674435048324078018259864181358405845132344029786964960433355006823938637701927406114180927310117862919717492245674155023653775225663303030871414205854269358308393744478246586790048263692091300522268579052855164940229962333317855922106368951249391427056179604393800565138616567411146178571640794853921484195843951638460759189682324791998089354802054245765745224787665023351046421410625257109849344916546789510315564526399466634562938747058169674352164160825150000862644282766836612338560520549541451425586191483332278732497029516895808494728376672655399572226626371341298469046774547145655450435436664064740351950680888131844872855551708036135570481558232097398571403263286398604997215828895092194071881581833536701528162456358517991873240182812126667808992076784134236191819957887797099951414214304496617826353629112561462986412120934626138976976227744374465711398332948304031603832488399112918322875611761499057481907442713397171414464550646125982578827879995517365541927068789028472658385172558613578392903371200816708223553346454502156597794242910875898131553339870581619380455237834731014900645042193006813250174575249829218573519034764712485815666220788149401984640065342601595006701008092483084428151526947803890972438484028741038757168721620305725935799963821715661588254451843334710663210237824478829856593628339734155034090423039306077867697133309532582062584735868514817664261524659443978317179350639507503452039998783787968541699079789931361122657977903700737557805018582584338740886466705586057074319678808944399108247264580204787322259293698575074605769388342898654691981673451799226388872015269757236212018179356916625244470338200098690118826342304258184118265721364133175659606789149648572195225446674643812277459614580994503873287193333759461972523718040724670650670420266980843603010768099021182249024995780540394299592854549348103295563642991167474620420381906280284802664887934835311690467529408205432569312209818327971112128112110945346580221004767388267806450054971925317979553074484727227309866980366441474769129695450126731915121440257927312246423967577037160963944201923573149234150080206805951969101728029290520870427841484416751453809544203386231833478640467850921584943481138948117316932785611967041848818961672773352255162977863252196087067994996149413400363695967631227238833449561641871972578802075242859317382891420759810922337597054426212676148807957315137942477445895078926329931109279756700817358631178229646965885941086195524025378680203148612667271773378306438267240723355913498646701190100504788234947599389780813575162766863906807667096511902805731412548534059100647840609820958602910290774992624247513538907452460867907311892895749467501494386027052896496960434177021250537327028657441342718605841843166109896641919477917195399361209168544035383929372815697102044124704493826132510697900274724778150638016687412076152388302895281807889306365253920875353477950139041320785774312588390161723777564756874453053813669576617664192033434524895126389800680680831149403939603578222963302991752170501396463627038121659612894307883394326244920822296548493561138642375141459024181658637968036977303170710140857350992127746923483011760199720275945265512542620298379019631869698009098540710056034198158301601937237017664097377900457843064062487174489832579922696267535524888789559602133399753013314903715451962110679021774282767835909049871028981477638661041917124841265446054785325126372380293586036173802643982940265231806346087332013122986352508050051717386840047978641298055359239287143113089514907121327030469266899918776765969801700115821573115817903799448222237224191874763012204241277194695741734121459862047839772998988143482707778650638231732246584102071825540399826834174230295389505529742054939375415042037154649610938766503027392876194155400334633380543320258206439820313331518727804778462223181199703226214572154236129074363250445119221968546441538994504904074887522381055365787283572598224380762715441166287327848076658440001997901396232502056361323372348943459703608437792138738317037018182985989285577086569723691889557185169643754148617677264031323899177915558902989148889237347711546620342011801318417780307566921048334738387868750692201868085120326674716800598700802191302427437740662513643201249074838155942584136452967953470272163896917531107138711333784430638090541225607057774384771709892134523119028459534977612144754414727773859553125932774503758683773920384552021781439121730914745224970581891234538857169415944993451041765748053503756282181819862083564102139494791248591595994367142035181311029211451162246690424735382811069087749248917624940865025895263242928286580328776220801496281654308089632681369181255347335351481099540882748566613930953105772849402293593525802650484566985222770477560019572393255731728432348089061961500817974177597732498848008854595596042046950020299686015773341389239849298808445563502166759251484067025815043234365695780222035267354149006883478350894910463951095265525682226032617615554452037625296064326019995593943490004485150498208778564204888633692411982839972300983193132447183668192172919707671680383825165351488511233916761010359735875872125890849107277970803650560781086974546703974675167590671842246236349401253414611566682450109106487244642616761719605105604152326430532492596811259694262058959946656885915922969285321139608796700512075247634600008713744541660222570278571733206013358385582797543056542344911807706204901328674843358211560306074876810218076936401011809008958307892499400194848693847047640864378621710698605439116899762521747811865894718353815345386092952463873665188289712453780778256711070284542099556002022332099849637193594005082980218189437609963885769306936964257450713253094771196791716674152240815764094044114778096878112193529931112785621899526011027608698155457043313639611807497604513004781039940230145936466011741439426852691638093200765419285504695792757205761930268532156240374128037172811110374118841382650914168459973632405065049715090922645121824341604169398939880014467083795764378720382535543950292569306874619097217004914972533684738705990020875716852515429824868571723898425935214858124203265271376845840232687237788158297880193110149121231089511947172345378959212809577050068151371688847156607992233894581677436247178445767481363978063153934966847141283743786611155500473322119189268545200765411194062402453187219264224840223899866756544559752051699590878405421447119995570390487583802250785674077295542944814757921127048279942630354276698484537242592988905204012323443970242217107484325214063834801347072924723420581783204054527901083595563890631643901703593079957170339118277954162103243997403317555655975048149147331950728784751378241474932188646100731582246663872845879941361928142077189218456646041567057967521502856589252582355571414249484691618541271693639217472886609345993817278921590046526931348122568967479724907372747381362129547346694733118472357050332972345694672301982111026599858634255521438993666443087401057525024258651681858440358801823285470062203650549331273251145214569603185188074517400323156816127514258819696725885138268586687322182610054204530590938222561748597915512616945648604753044672915978159965818449075282806631535754485013181252630510660976220155051207359095541970955303450414040191681395550936557590148439247509736954541944165319667493118615444057110531793633404046190248606993250843724321296431152826716832253748826294199589220043394400198340487889827708810656433002904379855323234537639672028187383733772761040308820553410733342944259722138841781499789756708687324826309975250208561038222822460826258198085045056536664355183568251712182452225673773558250978151138636605561812330859652858395357782370797311632601081827288069927986678260893110446258880570981872178131187624957164077740282084552868915215907448176597243333140148219271549588327579641963291743982017475665741537922418613100348546655158774386919243814382853949549649490691720273697995813766733752335759782166651281964362398818485278156422196397160950689159123203996772262505924518353382701981290711024573412169650673817005481500164010332634264980393591492484825822646598255493488507735361139194953925177153836709928885631414794737834370568102896545153446208393953320793199347155625800962327363317817855342893304476179278409382566068680759870093441993934946716590593302426796402192327170402123524101288652221074389542334681952849107772202135973150430354542061374860278345843413471978230827196288915643227104565028608331196955284235325258344392875413332638599300425393206937209764499999472307695555937267188861599113060955331061289946053689932696484492198679636617262232956595202255896764662446093089330013767898549696360564055606546010592101021761851961487481925748364274345035651269868469593995460059487844147881355903676002692651483505347121244808793632963514206775799729683356353699640657000895252488457065154112593312346001527637664721155468108352863376224585303478385856492167570545044167850089977593174661359034778306744956394648539506765543009381206353597560100008455266136105621579458109630891573217726190317668283631099172414636202719872810709142511932134616645039432387796847676495706577571058083763444981801312966913429136431025248268352517963257096152221253930700969653865904770377656999519185469657102948184196648702797869542716022149462360694101327977302536688495901331319343083577675548501750717550459116636168927645838235980300639899131046202716918937941161268644614781271417261079876768858241086683280338867770053935991396651900874059232572433605897797516198920468406730709719808723530719562315310893828126001430769469316438475234566826970340329575933151597534896659410734326580791934178023011241202779421810159916954670654079179096518491851518227621776802961027723692950894111383731057202492353703190612160454216308263605255682585202558462994523425757131679662140740320064859008583298665547778788728714073771036967035748513551728771759298676650917377904311842814454383728721265700391080806114061313846533683411518941920612843954585874787520197234705739323922483439156660691707661202254820629376975959791034765590432454642795604755857446222297914675526815892896173249775385586476378109219967960208676754829966407599558510163021360101954841925557328710771763687704152968093562873347669800207133129260282987368956510374461007240668373954017920895695113579994220749123040914537482585545432977150469638149942842188920393263929621095563843465726801724124255175009059277549876205259436879259540704356850721186178531598514081806420910315344148921039881265743443800115067026698404828465877706166583253652178679844503150226633957672808429821705390446353970224304522623860903388902078925550583021150748889108525567707874106765659162784067884705513412034272109791589084247942625331937872294334203128974642719054155667051930096965012229334304455195606933425810100680269545368478918225624392046129770910121922274964222795131561890064561936672979799902257938950013383216690262997723578955356343582025399543584077612360959781255801817483601649609608533534116039685983301061934601866686158648921513620622002234573213242286478200923152563671443771200466859605188807983824362144395153761548832454230626097405563136020271266384416075606969408136372018819407431100056346533953004693896284899234394183759865234137827404104440847817468565525928489514587600752946403081711778899392652294535391830659174742744588448016453572316935426762241184323972785020421646396081593243365675366090697687545452986857069860133087217853015666663167561158237202518231963909885790887074758603412093201336919647304840736746889528977109825394365881459164513443844697587399141283467140149942551375936644137224684860453451026428234537847333815874759693780674831966189241454027011476067647892565402350656977081340670903094813452600768544995000265551824983222658772998200493810256952041031479277907414607890541752833967230981704094565483332460346849543389703462643054328852570358089540649096050934410814282286952960371111230431657877780728454363109855901062135071459790450651418674216696979067096404532796892197251721166327244820499605946690752969856637437410045275099862648534716664060712132797669544518764291214587849711112229187673654836464217662718086647539613896655326559637344358601962738138531997591138809338285169230103941778529815810449472894826256884010294819252120643067478723717358818882712367699426267190237564827511233666169523542455260858771518955773213177372365587276945190378466131415814866638980457275979681196442212085815936073378315389450405709893735291570842226429066213427392566424250368182878732819747851840659994694236808537460929492994981887249700241727694712519790480258215243573971447296958922605134761168451419547610540188352074254547193545046392522953505476082187558555426150882981208775038081166930967814232150546982051676203261973562859910186771912707583862035378292489541072841162152679666394632372067170143144036105090002930677862636277560547562507344015870901749821454372070071987458569088104226830915423888733548348704298555834801144050410023118725209439257612937950359963544287856862365076128676338052770272729861231602957367458458168996166391453240467588913218174444143426675911385997513460992832295057966319623730537037298154936897916813047781679394690742281567300431543308562813576257307593507441471620241432940219874669250641665302096629007670136387419881212979050916340180101024626055362320414052729793126222544297719952244299850859625292305092618492872669708889630038519281995426807229503141773057632407116178396538517937066403803088533309929949997190275481301556314898788477402368838799264533334291957752357380088044498057330661230078044204936672095966374655219194691092380677166080876581028065856823014742716029382609436530854351330223710185060845009565163185006398234160982252111791969972237846399900234730181776329444233027000068241753526782140822165341669782244686098634664548988730505962576233519388389372754871099592434119203759649423338970547133404819412451776199590665513741266429366142048398066284250033329439846744055765253525722143848378301368812253022858869341483180959298323736999148978529721180972865783045579179723640610141412481918996568838766276083188924384330438240174584189612830108833585055092960886398115342138081185231506506012761279473164043165879072658020197840435970615436278368169119866912025834241971680815610756144560679423727010971449599129161051533224896661480866871128632361273943575981027680617395376876346394447355845145730719158304974857051576655015264108680776213914499161076963320559261694852408711682060014897794162255483397803535861603748628885214102551335796859882952956710572047392787077004691850661433186685070852720929874752337384886777070769434621325245641755808693210423093650754333788109190392724500019683998193055522173236613306208002423514803422878096192494324130506692746725469524628741378718829911713579292598897134512095527672910516465482427408795058798037539618772652331929952676711682406075987438733792392048599759694209484985643757429280907243955160638686940529423340055862124746938495390102924991199328328567816876626639994967713309839678756662344462743107054780259503424506961922367416459190596550485066789106417143130112095712898956326107965113202518743946641123356684836313822645483554761795117400270855458271820393640093283064800928731836377833319276196490667373133449177847240650198909873173824278495785972130642738305966943251385076286113707958328237206450435639662134725748182468114564212801079196456530511070096142621073930684609188429327048746883889955675894636664997575658930978996267477325079378339990604460045009205561998814495932501381109142195608791136723597444050369156446142598221454226418188291036012288736153317716949026885105076225830009541827807337290705311146865529014930794061511037578382899742602612960605199196141997005223161253432073266777427445829344025004294963600746497125963393027303449079313444753308617347581481012589456210833021537012489955305771002277504218464974654187602564350510141214000602829195711950159105082403880558139453970369285902911473153783141626520898584290860983583082928884874513122572512934233557109548918552868946760629521408569661885778540113171818911566777950154022824969866572183719915373320660514103028115924037238622445180857604969234863815852223318656185150066149496018966931190762323251947620180318236254298102919441008193612384988082076875940973011513597489498426955064675332086982473338611059638591356922843126425854534001019323277381977989804979108308275127576662924014925394143679703966342367039665610441657888976430534568714875243455158095221163109592106798215740910250274072031643112736551266931828691280038655159140507688538290433298630523856319357723019182427979700653101739184847273769571181140386173536804075711349141760511558550432394063388637540259587052171753035399809465071180511512649230511823882471100381696842020405479521390418267521861162941024904589284979211154042096191413380461084693951610926186584916246894405907854773175832292230874577919700248470889553596935694979586819067602100208199367039493873094715159434759033599835960915119787904431463705104403639675980593067232810521183852394183343276676028862915876884926299893770400531608227786994753242329371583607302821428376321955528340948592237751144530322065248583966072176187844463994065294254940513817743073726848011005411576825477520047131457151005480312917470610629688292676109810982151184941986662684949463912358005300943048991770993979690238609950538903440000330911557806343287370103730655324702512424471513175532155029537440817248975181036604326226444242486816152178962639920010881796223381866820902947123344347243206351044958379714683164965714739574927429286070049908666456982681506783383770254587580772640633259296554011100283811152371145221005434164111394531879045471806324966966944397043824006007444252010479111946360114877906303686288731328851985737923981106823226574107334968757340118115906759126749748090732791209393968203298896583341804508013036682594998824584955792922594729750208303372294353046295573340783735341745288280093376219248957653324218895565383806396951903559729325609506007522580670882530068063612168493646956931550044208697763835096674071829862286856132610766654244746537218687688183836820791838832085405408902691941396601363966127513802511485156253469453234733771715628432288429073169871992542461415934634181882500265211449357454700715017995803391650987351034427050143346737625656095424436456374227290427887234239138320122834068439079851921266087990129824421711126593842953044500916068778179594183155779841317102927274866682133673096935485978575041318098044635787536799091644970010200738705842964307871342597817888615389281782283682984317372032942911871993399161913674091716808174547143039069482797532886693880826919005418578671511779390490770407200346916447389679783885264780100155073077617619110674511864737479755590556846496928015262895371026237643502218382565156582566660791789245624387661084238111340352123544940466069184863496125478300233896939884563484191642063249178573953309096707675572122691925428663186297198393996831749459371623370146530333538326772657417346954457143196224275476880719579996740483789657486030896038708717985935887243576976154321929937991144101577717102804960963402840862034371653264818338350110046290280762853671702303426446910912760205379712141165983533095568804436099882728505193725313488024585365898916752293319374517534015246302933083771045356034497972677451691510033549046963009414279470779828644438585647803160616790928005435256269029364961920784150760315476428433336549082745955875821965610283104507158453295259945415329516685442541074265879981750974465945254526638528075965099829999769589242262657756999996294116382647600085423984913425223633808248016091592564724882787717792831859877969924135465577723051893375385414862438067315644998977676099270514936537093976220335677751734232424679619502296107017625616345749096012254236126688075917321481451937908416634756835528398735606014834486951140205950749170992205425944434559750015683150929913816557446103226422982740347092727124476277176177467234988865016831639037657046854209369611330706854655787659753314171624031034671395624733127360739352870559397200104722082604143148897002891671634889421550380773356977240066983383152563339762266928729095238310844986881414409846757954211253886085354376012125968924986527154328836622185216341191677204618471571835245822437006095322681131495745864149997677484176265741409722938930970445185497797268203989751183763303899445820885863230087727930802322832193688292898623874755032493951426859544803546951421496380119209949568678984928257848791450608477490706531761060930976576508622170404093922530684123390459945387410662972232167703007053130618180715102942283794351530893842900484907149077414511601723442204754068477698832208164228736911219101756484130931359014250694844638416448700950999672630216428978526888633618547383897512536175090840555766510046298107993664900363736235529506903018696065764192685620937515399058780161580428053584470789347189568835659951507497046332785863412892726125424703400623543549644821816908704021850496330079680957985861976071358098938598443316846950913312926686442032395344536942275756993100490468456607280714380100575359763331822929641459527287831987285124682806159956113054330598694642190658668443645727622664835146729144091604633474773088422195162184573279918284608170648398061916930303991163804211039266660218085099496149025905795398045537257447014506483595908264913542111296537511344674109991640802772208369653408140694493618669268635547768367219249780637996310841128020639651293977900118734045787052387436542203946160846103842054626255903991427131380485760042506483132075512464628063413806772105981567929935645395654338586668061603687531275863159351998149492000010226239891502812472543964445969395863220171662405797801503682535078152207082336068559284579089101669640094740432685980607626642911044007354828085573796307245082124879334501264035092822361965880166107273097582185163684190894873551096376284025908634751688677062217665065232415412643630483834822254788928732394219042991495379972288594690478472022073815886585328852770330548573493904066915764061555331211586686439022089499215044196077763720612274782822259044233773118306170128095912572269794216887308240123959166246489881659248492265294113817489463094210367381452141556496604624362690684506362681076930448232649109756757475600624190387351516839543396674205943309896672916209376708890005442198248949043641890452374733024077614536331901295965142515567256466008695667564703497326204292282306960321392761078880065664319618672366771701040681493246214567486158880879345823113190219880616745538577215623804411206681089326554803603103870567764503413744291588226495039962799234643811617288338226298460875160827136224205284694998451797359379036390124754547066596187004148677610909821747439232473571641317484468792874567081195705765140154847345506354899866969463505365554094238080190873452926268578158827601201816495375236187846297100369175358909353524288988158899044467598904960894093634124514247015426879192623502435326117671135009124790921607601960724846003303326510927912333527210226036497844655737339918208663611424816695193977186913740875410239508302651213423049100255567594260844503982403989297590881673907705148029357467759518687202995696935330138320590990707803491394416382199665970516113102669429428977093050587724183342110296909877904734549342426421116893161904012580255957762548592552865808020550508056513657778054835698346558091681328809820885330280347412514651721149600488555285906609679945762961276037611583812125634195920676512712269267031833346019451838526925826383045963574425619467095541430747201084761544863533351683900831436468798226298354801761762741820854793673464806315350438695903339173505668196576913464821158663032009140766828059826321351712907411950238765562756606000943777971066311751842633555975848542565528612003770179244861672875488997470619586770178998032379839400456262415445406739271947258357338334267983759814464216040234167224661364690709544057658167734006755358368099407830494078846948580689796748952948943456012748275873744652431775642205561711327806415216825371213790610334226964889077330467820083081923601101157833373620270711954228860312868851843858678631454683236927754276274247635403483855100400666641609049264760000854532359474913208610946242043985704844067122402001071929463062201006292348853917480431327636583025527724348794812480638066331211589687552625661895772040130921969315076388586087188903008240459252570474329789977648827088211520468036332679429586708266897295785555713512316859425201004321916326810696990319344899394842054426245591301555005401922961916299196216597636581731901295619475366094784368589171785555143108157916669682705179860299340289369805416424969146844762492358322760534006133303728507889058574362961875966672352147641761793110274566108392126861647920216709523777756627656561441941904176407368076281697810291919391475848519123853585284881285292815940892275411929149873756510467065298674259272181334804144243096399784495429091471922936319020785555390087507822755831677117478384269674209819019758586488513363180586936037410484923815279085134209890361735597908164635201212481469683656952733097558761652189198557584311014946459115220605023328142551119666746816683479934636555583496824039960820439120664536022611124785321240723627567155260714719687510142680268484422512372949856236619730724660687414055622840745471642758559265011202639743260427493344108718066766124451522325853217324681031127798658869361741065757970697091548214865168312407053985922498032377773252660208676333063249495915230434718851177737227824635036317661386137005710548828105426344442509806538869823611291682042988551707469557984444313290099826476747600766754866985168446465177000980844344672251254080645489366187543129837274862294343880454232230794950604349651453153367943425711115439054093212017193715058584543030820267246239618462388172570509638997762727872855334030876857452996544981163067435383454376020269355788963196135582893223991484986546196020662250626628933875861640309920533760118349985124404177540768272153855787654178382525853316697684967505209462223619119312353624414989359955182387544566719244271761360943232243051838236017261190358154189325437746392037744660469211048574908493257128686513836508636340332003170688120826907583357609644022247838281285052136261565993785527939526926138136053634031391075688467933560629616382807623678572627228842485735964694796655843980703851412374277810482516732582049828947265705121956482306070174756597144213778140225162595526047478150625107725846448702995795177273062765207840185356855613346311321745428717756688571975708720848221572469854016234940041423954064973722953122317628597572150544552198224927935051558680312261223837354810009412697959320305912828919835222483642921306725378310383012108184656687013500646856555962942195627768109402190530624974276894410782350946475813545206006928855559778773449041967723501374691281879415222003483661674873558699342109288760817940418353234053099253564626139950350756147202106518972734553845765074532771105403500998283576487335951700690747758464285116199070899485111248132118148193624247309805829288330119185994155699824962394533056774488774342143186037631796513925448451553934200612333650496329709383629151307575821861952016864816031991921009800924865360574081923871420562870691324005853814138968603140185019486045666107512847788038153294971884910647467670680832354961289891165118967112360523880140072776020895699327089994905608390159901350564890507132193701639353144597020170795367286563875128229772190326116027868685977409337859359222929754774743595891104835907977595850600085921426551541620599047210456428090553014621388616469331823920468751519978303824725791759791455697985805115743081570535804747967075228462474034868949500053069517450960793877727182857905032473166230382071092454491329323316374620359647294577951864438272444173563216760399356662570395346257634420908086965153696945627864885821891521881443360181144565147309181182320853661932472515214119454485464349052663423122866710146671372561047505955714164410684915363524161237282397945361980049588710271231460793617562585121466874751988635248758027888470595043874146470166350409023542285180175697830278421590517223686613125799333878953938449779517702902161196784984725317164993690856654161263266130623172806279064301287558827695578021125753343875514905815800968227435354412646591590342767955409459462592436248948362721550667767461734015932306500735582102923579243930495144874236995394538520264052780176150052601715970886405426970161928188395753556173629806573077556167962119525410062592588789039096386795309727731269598485856567306410029367730962564954723587018011115841521809968184123965127285516689386820060331701998343018523853371620766003429900834638735764189092055384837728879873434701514734804961699703981920962667182833155752292026201818841011569202826286319998630037621015396849189901232805541063676521172819558446753897457445990358007749889309118125349377597106868315519690570391583332855707119992423611967653994081618668219056081062087385287519122030785436581493151210836509989311803272071542397513407555654884398669112679420409539859743350117269670144349157091672574695872118891447331895211758095264087279678624842276294443535069663808611973292186616633563176518202648725400472313101191697648761739226085854146360028353457031816225980623304389489459479088921216333162343993454198356773539351312680519107789184963151790745210817242515851309894795802861072509131451464710151567903269493137247905949668902249764363622102257252481153040728359469384654659061593342584017180739076930456364899089181142394643929708572849126070521058666327937987417185924281523521050833958400700363396784217206783819599870974760464850317969044597937884965650060182504475169447790975804058460901976827319562452360476183475723491457341318925280532394159538567122419515654154691910537731757677090744612201938973563550505941876223779183844783428159597438385026052544415958762808433431822974145141310739700290680508256051609921411668014393903027077503246730010173103236923940660728889805884608629995723509521287666068846085118557711774142727181712121411760362676101594951872258302934473098132940254842663141492105117429319245850218126466483822198463597026639769785816906044341958937186934303869180136496955278145902492654298285130296602507684807305975559379981018925805036692948884421546075609009448994429591703719021755186411427854245696438119356723418391772403839532336081810253619941539785310065684356990798819597464570485479820659826830403562212799628862156721373923822692549266048343435608827338614630009513624955343530033070939553661511832030305595840529785214420895878034612111619646510101550662104636226228534575173128093257442146852343833167134681715177073454261236838877520451562136191748311464691276618620222051076946473625008016030407153767208114084044433368278943508954173051310280244641224897203167493610602654494924166816129753548779494967030061512822645399177517666924459841923080965759652886895925784716560866228178747242011749704465150939373508050385259461846626805590626764863970804749126699387511744473270820489963467204218378105698915405525725996676072680471029138011063477841746838759930046264497858116884947115334308791219776027381590565906410407980649604881362218483571692848245508979969126907463632481081768723765905374623564140809388779948462199601155951361046933125941951618895310558374231566643679078440763267949644930725868210610477398377006704486863131742234609774075250465967327966523596596307147595106061502174954075385913130251788665587563116667015312293060397135692032531571200362045730176004481571953275500688746906944475445926949146792069448298123522449500883405125093660975350905413717205100306783391741104939526239186349352448976705572002829285494447190212894287213953581886845065829080131487655465863315752539436615798519395756540470158899357865790765752619189987743062341775602852314469789348502046997028572869056233666411572735742987963308197137176362000914673958627948244318618005208605034463674971170787290035052324472723811876038857613242308004732301206193754427201156732409338305233274825070704953454919866397512867239730498807973339507622390254434772039976256853023454191952549654993212282621049071652158342314791881696557689638078952147583035875918146657872922897780016910265623569221003112605176551427416855507708442828970638970744962060255335017083472352062925458842394068027164147614792833832307570277201299494137944934857044285763041383964750655427491645654345080889832293859010240505293226757251863902084366292001671020427877971761190367545995824984712646217817068830957012461136836624768900592515628978062348617071082338768066457137138759771627893028401011477973215337177041631738931571379667293487765439926809718094597490459212416696631709862142348910759320001098961945331065119994773311303420486157709532839249431547608257138931152449767893697230635842623023304685916302929827849360001277046843528315453240599164777968618659255469472298831776037383008764035096572111758238811127396291348808828022860507491492082683511984943278256433970712791118864968420235370601560637597194423031502144967572673275401603436079089493421694764739023307873710445132679607099143292656048777826132419113725679567587432139959355891011117777618309037505928521328496750047332458267316363934075253815835058698085502509535156849960490974024642766586673688678767241737065918625365461535165762601234555645770638111416653729678495918404812263254094337961582385116120390919052235194750153632920054510380265909158772783045149840055929112657170069203470558567578465616863394771287675806378842170090534961125263980875230089493934215555708986272204464759204402165602616381653835406080352182446984254677122560822083860750984310276252673412131707769582168882992800503409781299208064308491483644315762035476181663969465493087770908384255732002676523765535037234404302516786023726655775296755020694755311619200985351911791469849996304457148004726668404112973903651100865993393750138519520965074149279065676942531018732614481961950661587144966280390861557684318029401256939973169350362244533291736567552513351721790584900080975857854766204552011911919969331973586260567568363007296140011010662915114809337950075985770546285809832407010963158641689179100050682788363684270998526747432284917760260580463072850327002727849192202414272755792419797460241566907075964757094129804321219827795240989466910336660707097901850442369072339035829554760968708060155786676390796018024509027191831621458446216250355427311087161309508791300026337963415028740881509389224809347670616854055282812444390392551880697355680290261815260895877436008030375277394969598162149064738108586917402709801682318108515790192769969775977893800719410774845527570060616511138521266017632854216650205118806026538144681877132750080502408937830015103091400947861952163978660658509898094592406119780875080642526277052553465704641522580834630296564865449984199806708649782509819379424640735449640292391579934320930962225658100572813075501972269421173041591371319841197846733032411898114578776170889854131989641987550077287508257026590351877698732407253512296431094961699876720089683168422471777862174998091846442564628013631580505071838141691342266711713730252448621412720904526767321702949895362474170626306538533484893542668325396753757088752930668922234410345634567884976536078165101569047206104734077037013835428792315821595918788395014660927660687619344336641868282238174041457317941907045712525959817895197402550386938029827215701135866736899893037803286384556419749314764331953554486594289129737741272874719004684471204937955640518576536141285627842289808724891041067601371774431485031160826856811400716253043840485836748092891527409951080283331017856978884326099402001504997075879798952435496044329472798979321014220902973936731523123848461738606089573791354649137137800801453101063642890340058992744184292899908579866793731038197630009872439921412935917873459595147758643009625622190314567222469206803589501302087939326863188803289026124718805633543197928999477148008475594437935071415778890891525680242572118059907629179854208595095873761054042023423195132077113898783400995209014176317823711459131318863453456075602137457632946331120548997753618849736635374729594296511074834351475243611320990413011323625393107081535457036117244295943933504158298068872283006298147093938262504163737127333390864298318399573142591255159485011024421084579007690606045179936486911523307295486514813004580893436189209321970171225121397514599336397902258715307960487141701469372502439345864611346648631866635153686969753839047842867287324030697218564693918924967686301789378729104592846989771226377040625680788819801305212667065978998415066746817035494943763925063771834569141300111474617710434606442511333816299989704768602121209359419440216619421577630265554148663409188379443024168342517026897719415810500322596766926308922159079216877762085026595397595496537590169135364835657522760954187216201197415085878017407191218444364121025323534431683418193625585355906960749772847391827610417518954488111382232606098789586496741751645932070133350589873935180895428117281545003279492497049623057885817206566495833216830369183486811282790072526752226922116129818327749161630184648907810765250923806581962298120125267648317139655459799749245011094851396932328240514128202288943454660526347117763540070322703606261871714085439769982532051977548138595946096481398461209345799982567761135504178950327864962805915718221994226924876772187884128978103747378203591030826496417046958679090197294639794899290202825155736416980549759495262542344778671164757643577701212390470460001511001164798946442316558572922083460089987819605111439836867132411562715170172295559578175656673123722612433271229516868117002331001493915624180925891140624744449196505356049101907681310688103241090663799225486062485074418314981083078722540837236659041051272330916458220649121664869461177392466050301364100530205122554444936503068500879270470746502753568747885769749056472055568100888653023659813704009066158378864879140269868991819735208118747285598859250148893296348637150609480022703093545149379340430473300606397414705187750867326120264860844437738793031962663014129450567667981730298207503098106832384804643218899133434344034300355168681274270275402517606969072348940484707731605290412376771413677342933237028504742010311525659521980033794045939452178026396874071326654414811587893007437211164049023585596512151095158019782228186523617690617814597089784235676489064348369199996612052214785177798948913887123736147686283113940762799019684312372458792102042721643554024828982908610951431160795284409117964013260572989818830830805946040782012487845142622229873621587159545068911393756774871995114885336572760368341741810497337150134695782459029795272114714538827420411200737800511534806825237183946518578455155737274463284090828708529021257268840803670474126353257208041898629677575144108833203957072754897540087118137998755147868037803224696596160603238773205752069618966700606779676486000380639932884995377220805097493510650254624886597856813499396721205789860416750893534262717381949556314249993861919794461759292691808824061683606548033071109516223943488065384652911273895168165673861481771679356776955774431321035608530204995660690394813152967632495442875334019062884688966169521160026473375477882811922373229200393800794817123348471952829028506875027043547630209687140424736897344387066412791161915813093030837989200230735486050178589521429353060550581109417028791558872351088155530254204288367879947450727430896273534178349413884324646420493577782266896352490778150727591563297721511489185956676577916004102940761988869216643615456724697094665222250114979244853372124168921015727975549662577829256831477382514711092920965034189703275657855633621726121816769457215530213266565632224739937488748151665863033491301055557262454953967149618080352114415444648084436447726385485239989263595828535659851241406013984712851834265236946175850696214572592785977443004810055762846212653365274772456762181666971391143506577303683692122792493952022184508980995448642849670510002562788818998826875064434207169208100206344115341629811357970186906351511305099700873710507425759327867101749042142298296199240500696592195389706501847391011556360227870097961695509096436179797609698431167151683475274324530049530995984599548513470811282923613894362767869360484662709382536896744236843969729485410981458413520258623768211257522287423183824853513877103217975125626334159286974005868585065250198319520841669629218163207869469179068642901364931677950221333791579674200258820596332729660582640449011038766194103823836032628350693719014219186350980363460730509113260157505584284039976320885630121371576964925003860886209266851139988884585323142983564299114283404795381836166821564541203547850292614081236090254308920489618648011612658839258918969783110817969924269589540952937508253297365104064447926555950635454595946923170472835993950233946971073234078350421907615235050479663180430489984373371201844569177212072559670592122291753883701958240294766361577059568555596810393233271085871446974665701454843264145011213047114187307374760380139575070580739400623274013963062035126323559549974371004475361046755905702907111953329731819197231640838731132135011150843823288483578330067078105237703386838381404772954562358477974416002315081245725017463356533201622921204864707633889742929263029855870237043642058670335281902079834779217134817997902112825387643265368309998629017284742831659420222756779993563226904107345857020301208715948496867045069004212895608331606757278203417708893059644367747778986797544971144173295247859615811076648064165564047307436764367959317028986735242297167534974160414435867864286770662947716585128538576884102132437241638355555705385475512065209201678320660086245261705368909565251725064030434035665233608543943676378987720614263302632354928445561005052617893382198736520165982129590492812157588783759758500305485902036731412763895562035542319964438479363457472540373096589821878112956442299378733857189814826740245886750762345853199199777437286399448857419463940361059444300201013103994597796734389376783928718864385236809869457821394602114504277459224197832286952878855749351325530739736719356420896627445195915309807226920650765068665552524050327765209716114158730168219933053579619850856939591685198036507041128322206874621727432659258469778049266709100017400975583254508650154584342433019302810513054243979871779314558588158416300249650920108476002624212519876964083439649238048041542878716775400488130843934119703100395477084243816071076481792829578017065049131746341418688444684067702328954925386273986958467219524920099873250005919033343956534264227319472704708212218252208570039197431555506733336372273781393452548080932817421776172813875696299171116550577950588471624882715640463274468414897778228402803693494147557415673973144077155855865484757465003608224388489871032610287422379730977099804429063911969197194553411246417243955647725792893586810042393253651246335805743063165132261612891827700907276777587962652238890167543981030050684042784444496543211503127376826310337605765945851640134561343531166058017063940501929211839277910720101898317910753081553600172404135296547815333228428089696292630226540457464376188666402836388732115275072908858389895176724553257381557263231393272143644198042952332658916545504868171283757702522847805002275814437636135709402085029993790444187152838179295774162756841459263882937019442371301959738721286311360415862210805381855612750949469713310633065872950780986932936262001858473901935141086104974756587709758550686859239369847687845124770494535147542107825644018458771074812517880026167202773947426034873510152686761179783675890641985743844038626824411811890155965962280232395223226918481314880650383876367795566704531375195916975125397951791651403834768717347466123796481483927959568227711201461138740819467716256417193513942386511621081364352358872435160802891660778062386278812306255594398666073508122684669868053361016252320406761180793842766142985642427307087542548932513584427603423750468861217105055131103011032309058999225784412358737870957579099379534978126629194476739183547510759916874538069511299654525204182160893282605792019341760335233704272198095570262036199275844802903507915535536095157896066135886186652312912310464630392211993996957292143881011777944997308234021957755956462137097213965693981888017210187519289826734071748823652455685099026496915545348521182973578802909486136344443314013979635135245532233548095215265539486862447532811187691043490249364046751435864071411969280581034643266550396371158030514850005789323545036137283360663553389448496781057789506661125239575763835571873441540120369524361362592669856961146542177796430724914529217418026273825446285483263062422135448057341883757635000687254581435197139155706408684546346379029357642181207695396841578107602397288759154054539048590882411989268485347490658585652120699341226017255270329661725875486858874727433376992991981638703948271862724753245860514317219615128314984309804053101974711162713019403802083004041515446881607255770703358187476137731169050555925277015530727019727317123288777503288330238905943983949868782415587214278491720521700245230383333095450613324764355249239227384683243953036518849780139745276724648192815237772406282991005288343121101851156652761869898161132433164217532007232785405000659060388549521050233595656803777045182867132292565070441189143007545114154507587967986237243472066850819496428812511758297315648578432411005942109126580262127689894090304012056459743887437571069052245913716860952489506908521052219061563208275822302287896492303438951267940776486657995058890672296511836533150672463931187534580918413281364564281773943117995046151505431662111908206456739308848685265481750748500273960454115426632141497910076729780866191636061116324879985282969245963560331292294044439031959264603311929399773359168522175957045484066063297206154228478356109568115204583393739447926427627402247553505781963631970199817693477406378324307840119909097143635883988830722589009938899292743755287530871413775600011914667938304097603749990909815623964897941914370563392249476383999756118664767751659330810211259162926362494855869710894796951463409393767138774398035896034071364200966364739006586738423461921319791333663397121589643680844580900465773311471371035775305613069689858243601762825012464551498331906980441680364415189120848141948678669210490769616450473186966349134095791927574763039984060409379794026474365832073431379439756362837010550223188314737465786655058105168860240343570821174802901543997434877944960263020414718299362114039565525608414785488835707119086508498531209730361432142768015856961937215662208258610822590278620558303667624034260901790783623438622349251939176547670687834207253475383361990529580000877519407738740108718756712460798511623660785634937984950754939915893170409717169214875913044620063034828504799119998088841425653150127336074909834924474798619343955788271131315229186469079469104332681046215314268346332099012141012124546518685228774605468937561833563398818775699030633627062123745833323479873874550423057858836042896515833165398732158361928004356865861098228716220576506430991085850125276731294483661187989494720571031156187377976851465176194780801848330524390199106465380045561982023294925671940754873438380339391232089969523359874500666786816548888289144602454558245377088370648204618842538148743067290760378507673714671191334515026607944924350016284163813688729951093060091172013377254709651334766386314764174886593643323579675403206341699668036202578548499134241381299969434661587237087832430922684741639798706685648381181318777774069259876084504534319999041207298911440824652548808644745461516341143384051750464197688260585427242903051674526749918838774237970104708016034700652424851738110376103901476987231200560617231496208249813318927506346132335481635899058845930286353713996567405210631429217646409618068671475994381293301921710859787225785404072364585054048278505206866424453568746787177189213661202760759030770224024787591522296019527087444309351460549914758353073156821591746460018131389423804661520846610462915439636100635695628668972271358209811839241552704129387540615885773463409432611464154821558477244545991770565429110239224427033957500322232952708423724483100970418228148215038770194148479805528846717517545229787337501628537550829722924682182007672245467461687891536863352803059751572187092198002567965780016626589846215092810981047661929620708141042313913473290442162325107854196915301282807292195659897008202251017094327214222031473846540090504439260239847062440996682625852929947013461988267803830177326783678420079054688652387523009580863672488685372951645785811270322307633604292010297563097415604688247720294942749194111138070079474025578554956646188625172583880946146901821794793418999089381100911781194396746120671348041104400899407583131388833572851111610637850294765764251710733370948773713503639307195356794596418042217645107568399182378148630649780454608598541666185361311276835718279527602306184058474297498102292044858221669231490689148086800961549120232099796792111595554708952619177845541452637231132962797579812806198376660731230240426397854594798455915428685595049849740909762057617860410024973617229561584880726682264433382159569262350584234812668588022312475164442785401363304913885618744308049690164338167945035743624245886263052789732339424435759602543736443272314160597211095058585818571022998070860418067931504081949538034770454783666433919833159416362737322881740923785778717866312946910470898122850327866638943591847310549992036378342403331211459640427784373388799359033843371869856219654098761122768610576174052854495392936487084352059413491805647906210204291890095854700157681589764872022128624792190025867876003516902242666416560913463922034503609581365639318117132225320657758373808805798398090885966716233981585829075085760095777358884202965211438571673653783514237544038740487431562636058305834221123962290079205112139672985934527078059110799370560199199719002474992615652394908509642356593980928624255184453365835040269353739361223737527819071886012217102140943725041892450577551088595850970182930097915441251503522088919800741424342078173794311051826567677105402595972518776388884199289138867675300729648104189004217531471274990452784742447638454645062547250233567370465364872924502584251256188685403502345255750372599281548543591735363351076654126300666387153537695570579532223753774724057169806577034642886705143763879789481131713395799415497645299875793542640860937712532915390685499219935410926641481452047787291267923490647960443130771034501971500509793702822869832901633103935760696706432511585919996163641220994912140542984068698073107217669327395684933970417608480604030229169991361433630808060738587949170571765751245894287522478775989646413015007167840721523400025466802118220920307477961769115970157934327653782515533914680790721623205331948702766510821608585317677541679309762460079645371908265739419528975781828833014901313377060872279162063204813517206283652763334625305677712483270661661616366337652373921295108628983540916115455719009949653603233211607112479237282052828152368950802617536205698946762499659946777939236650713494414554531434199556438363521510689411677858949062687635192047459168723581760018615746319518013531983365444779836056750095522283418878199073219443787001360556953207207862826972935563711783641474446381936131293695619790311851178665259370233795395721108756055086129490954300091347056754519520754055874628815709334598496432432601790112096513872399114602870192145582376215926609330392037453557062109516224975157063990117163855498364083998518374249598574406989848764589514443698709701287155188383463989167292896086651688765255178038867659954323378803036500327983831322269933258484123604271628681046139824128646727435552551719091488696363786694803281963313648341225866523813174210090519665860172824951527497979242355896915857321476994944964322706629073751461114654099434301522402221325760719634367058544970124504171526331525140565529773797641286124176617490613460992998785397311121206553288187885078334977426992209626873751764634751520316871927430016756157214465928112887520512031137375783471760948322616005380986741218817873762289806785794755604196523844119560706922510027324390101100370187606086935552232830826918470284156907022974866397932257340001609356173947849180118075659383076601452306006386893862738998021467280349602241745173409432563508349378332554100672520151124850450940585297034673185077559036226080883032624161645459023458317991671381577610617995449512507694823316657733841855247655281895994681449372909820707029124517103990550368142499302968738646434901156060913173663029993048214471696616210940803905738561665960926445601856857892263107880985557564950756644692982661229305859928209144863516942845338642907276005520505256273820071059363417672954236747163024533785195022431996270041443475749861414934311212739961487882021371671275700287132454558398765846257136773229052469128079923174037723127435045733666624711361281136678775139521742890045494161478915271198418962406407249981974622302450504447432093784080905788530456523095522765348457235826568696869484129811580369243788405693081513299489781917103032106112882658162072581122598035993885999806147136127843977583668153648742010483011145116422000114658792204814033082482753383063342829865774225771335404825550059681760589973429563036457385972650980346028539605200742847462550572649742600241541214594039789136184150738500727029892075563655223951650794955229110125299518967690434922304626682276933087394427042078106511408232396030938953210428652819944063522130168601473481363511988610656474940095304260765704941098384951360410462867345377218723130045348035590226272682635934347954682827360021164976194120825482680059772791957493162503859025834463797868070992360420251836604681016799974653041733968610651208176843033540054883856201323684724698531609869919535756879870688350521722962773314347915138350115038541907234234164539877682618525231453847180645067316674160101148273679929382459714048186148587653020998177607960617245378852697998218788260967308588425136969760267170015695444168048853406397015848697916716938801299182344114270644502488839399685736163125447250551429426615631866645733421983620363188104208980076861197300601632982221946101009939641447501745524391391417514633571514114591335314546200093328089343835659736956678043341043388310644941333883060142746175143742750550182275919722228142583946211103833491256752323675319971857385249567972024257344651017449059017383496549867043385402287042784764524682998986536044636736623238785000945170506279141079271403881412702432048658002936902321118469176197433134804486388883231095163933979914344234960829210106489923312758496971827681766286894866281332492554976538633667738646063677943619845944178688793706184172837798313785165050190772210822577250213924461363639894119491987718620635483879921427721044518525889909022086763341726620797131317943550748639810512919186918984910842949689269913767241767047925465506366617647290705417474397912633663585437429865362318783177262459383668451823094274954386615139657338253732911967944224333343190534744782838438339464704211961874976862617659722063480994571228770005729598469374513422778099781811939700179720666782766401847119468699810192823591538795011803824500568485132196876196340459523402534063415186934939303061049747825674716352318099187863774792085856477414273333392879563484205085579329404742834344405476444992737497183882169846328743362198224851458638982742693567758777771179326433706475036474356907189352289000704449744932629603160798171665511978849498958504765652341775196542721477803925996531051876150800022962152832272551899766078469926846523813631497652475844858427164342267097622755464679133679316829960228963022974545695647311382407463719439956648963298226101955903182714607882457483147272209347322673422098569316967782835945389818552974648402108952369851794149868023307310578654665398629490120222281528326769296030115611791889124755587157443476174610164929588446442829993466151542681897440638000664009818228110641641100353540638208529288436404543648152677736134937238018406013102367220579954342751335809813246882967562743251481734161780509720926420965952085265306152681217074267720324441843508749471571266439505033367373695719555267244312409091529703305729798525778668035735463769799066046513133880928464993100475515984287334180246955671786682428550093845788876769749335431892611636334381843429566552352377594924078823040261264834907737253272186730999716277752865341143110101279442016268318459462493252163567614070250926927095163381421398190294006457933647523906933439737605320404059453413541025645990615771821058347564632940763310475884237236227593408641289235805839322159489295957929993733172823486764092592850790976236248741021282863414322905607875283822917755286709063206867744729934675570823223158186344819259776309604242849429011826896558482469951203742142443552551725361184887144564588429602118294716263100896483142664940231970033244620300515655330527519993126420121925956064817665607503992251024112801546098972598525226626481115834142994285403236310234060704412124103029203361131181565353369928305317378366220296806878136228240979377660129317064305968741621928365336812176430695246431938391902450361583818081571462343456320911862552703993879450232537702791235757589498051855987213668064734689732640743507353514348425414868179660104235203791293697627449157882143401006984119456277879805550305540601365526796860998466304895068111596779117074234726181108216902026695381257357078797325823309536324026541403104336499277487140479281308346135413561263477506469753839052253245218671813460807134473505333052964007373047173323214883764624219317092641597851291927177004741368573258131992707511690732603653408837460104269717835164534550911128944564415115422018789609693518424153620702003876176450726028074371814779326761170070296266053661092934665049301519983294096964097819527203664542378746221236715852278975502647069242697192977514899612579649569332453882702589973245048635463269720401448596465425357888727508272137455715078599976542319832438576314700507473329932244415305053674026661837555095770583392278513300713029517802882150825870510495841093529535063460811327726010818687320537039822813266110158577838358644614711264233624530592985720252139397827316337107966242985701422042460351901074276739154845694706891450965112253730085796332331139720687688634597527922413442016928870646104287829852776166689686342114849788467094171260024121670908176038174532628163557714415122451109249633794982297681750280973401418160381237961148590174265988799994235233266466767801493028443607148223469146513371825751624059799483286949071673218873353696285779535253667798780196620120005387870519606119114325651739839640965519935607121903564178294799781173675076967149271819534273135243871410294289303170170941430362001467549147794255465932564011161457163436822021330420971478693441965154368319029101276142643865315778566448590893336725363574420670373695028850597649942901027559905925594505964263265588332813171705161388621646834731664637344668130048284995935640733700094036777601034458643935242042669046095151593222132403508542342760986190687900672157526483999432895985313797764028196180444840263870889345340260034968470189788900023395090744345804181109420425867727565595394471526094432651829827619936226734069247413595792453185203108586045749158316965917236651629300720897444404771879465116428621707909311516489213210947510050371306667713313868706398097095618352585132501856096291978692805379623651446348040923500548617451751859399030040938714830840561297340693105907473254923421296383492553076131307771492789399769729533925061528324140950079432963179917244133973692742588950156985103984279476703957508789591133396811552482891874449048616833784269569131190921281197255019689242985465182423937165309825057584678422207116767821330136905176105448900446127895266101424634705156854012244354597904161540141601122941273242691420123684933366864892295372847559364315143312629544930284617323406359789920075455767901952717098740567863506447843024867824540397442819304419796242176510462405271275001889385699752596488429440069812627978163843605783922648265192638577127620959716657516866185442890526379718791185140888223137201366473138783059670846363610176727719235654658596323766723612871326019020933080282368215189520028552623209837328465815827742715584447255859059883783024187056842367576608650245382313568161023964795590903885693606937305499654338243742866886460887176451644798715678230183475707445830928327827872365510210169060345648166165746650941325715115609917567414946660608103412648988529925073114514518145070120526536001220059815889931063644962988926336952173800485580510929553950859343558229483646522412707871123440431265139250627113266167440945841776160363747714414995133454358343056835826517877985291336490294219929829864886443111118497298171155610808849144986932119544459602977845982343049355582360081582983464115825557500282427242039321738518178244859460675677469368079678608493297284290470966104353701895114145194413188367200910852235305327226162557014550184059709972180755032564011432194932743197169714650357329902113886057989693829552202135229175823245324187931979260807977750300074509702083562876129919767558428706562160553309147972843065231962074989360623664693756158483585334075818913134669017738932156601525146470775351595937557729639271530789410595130176581923025221591031591463319425255199332664024858921374499025075293108280411287040334463410667923696645831475281809666624716418687597527557237968921579552540272812603359885552810651931023597669867053690656332001450844164616818578747659749573270576424571346030905867120671720770732956168224170469483069206576548335407279596017579589617330714212268010269765596595233339253163529320314752008996347405200419054572201401047967910310412860964786853351912768044353733551860104117203156335900907551728657468230184110484734776073994376850292245634645082452574462057473184367737621112858671252462290166320132491645575620163912511472431804277968131357903042346810823461392745188113956713113394719659387099036070526923514469322945424539263818805873623207349233483912693290809811303520779738505413318087855123231035133280636025595746748535646597773350995316987160615584762553091634600621650899700059482452231431435771555070687363643921500586674703217723203687769513186820320677105762223966349164538803792288463422185161633590040465311639636567288515742414420123161466778732366989785735240335410831486951771216203636456408343781413588258961319974493302777031680913556516857887837101187107838643966631511906316075484413534823105586116225779479127536790241170388996105476200559267120306612745516964101746877312614081392903529362700464097986040411916573258979743976114149256787342149720708877607915540215280282564487605597870749298941862254764834776319010944629816234348160683288645915347491104693416333178313767906391254469716795544865406882832516419604526234587282516970093601718393901876758577035660921309531972307152200497878836118658532916149583279486499198248266458830884018267866337126452785872287940520957011438944575941375466759834899128811260994492495166894089711084950583833311512049162135379521341623341346513330421976023863320692464853996559858326867908370381548391138160501021892997161998557408808434928150794899061910332096867084075338867347645631144449260871002700826398753374993984321031040158574945008862629129475924999806811667486862830903430011504675538645634406764798961646451288499104318373163474538162540036463209403176855950749853875234887123579316524565026080053516601129352095299103236962299176190166787748221283062696580481193351955019157501176222622970858978359028613006633329790212600754808627568656114825367298248361470418356524659670792544777319081180365029926651552573523301082904780914849395246552027623559281716994097984250949245829976161896406516672040471310968173507475989385364181902476608529856369728737645157554486421763045943381616853585249891302079148994479787896912328562996413368098100681728307394860946686839819964122259335637960026046198007765365434895940694543652374783815585498443266464697023509184656929232033995661516601765499874741050918092351472178356000762382650726309555684218059023043909617742029364310433344540044801667923498251395021229554390911371746461451576570644313858047393466638147012632270834003803049012894374640599478049480732518001517226394422690182700414555195142540400276470683254377764826190521453559656666532575949299434606076438308012101503691010102371109861252062234648945833801284067730258826686723345426465111840439956860656420449187947829330207212074391189574690797846119741771951075431087398214146889600652836116969004802550904697192291772680657420570834233038088769450961129944402369660365099299038595891659566766319461645903740599908540259633399109887360297989352813454955637137842296062612023636888085134254391113625205443549226164888405415924110334016761333231310291048397515282741186854185503790908972260309716697813489441508092180574427684489805490818865332416176915303989241717782201093498995447851598340462817949767790584274035258270698834111073698092320110530292142662094833538250533497095981759242311481763609744342503111734972561701382626674702355936917628600313951122863596506655776336373395614068196030155753560397436336773042736776428725161526526515076773022208348365096787892519033012559730909329492533092140153799319520782727064021747037589339603647826934405449591191405315904043666121881399340066657938957936004053272668921461343807530039724953480939035794978768788226515994183380922545423423817085973163092401125581215755358248551660298457261027593851375164259221189080198616641061198839035107341005895144356884527058487508535877621023795521386571646964848211148666347442225194838670259870988641390681018219932348124563533741267100003656308330855549540306340309003750205882250658996625877301923130968731643261911421080947473116936289479933895283849121500208584783599873551232003174341043868831125516770658448573832374906738160851558822207352894097131983864645968385012136178701981731507235164835216146293658987982882371545916485489448771146928342427881938070104477913175273880515899314417122932976939954232571931830916884264803465828695267348259753976729100015506702047070859138796444340237003283077738945355371734051646477664252036885586662745533506235131113883685185993687074718646249637978614008120481036737357926654055858092981428077264460012261916634815982220524522733840677403214153874215080024399319982146040144273710751015658006926614675538484071604414845244081976101847324557097238610129301698466231504993279095573193306499362584757143956296762598872598648149636005410894730711404517436630339466489505012654851290124751909211062191991600596102005284786995999220649782019991282145135919704333800225064565743246013110173042538677291527647627672936342511966508847974559231398272702242728068661778156270674610006174732372244877866153388757945799641957446826759769355821987175955472525624385805868972625663522063310462172387319605893311823146748331900002067392298018945459439052682347609588929979660229893537406771709951201505801357048297672430458925833778856354434329494307840083162058131094288462040330964987086191838615171899204453607128612455785072149508907946645494359482777567760534637025101996582668821437798053739154608673169806255673119713426418175939094884916454025005629234870379317718773256197482107166960253357373116883436228085265903408715090568909700505870407625665088122917402832107505673742883579569145006259752066695613910686153784609929102734310336386355301755288455187702656484093742007341598365084657108086381273687107041463301879763607514031325411925764936504010649494959715015456348390807024116268767302790591968463711229927485612900842383291172680564509489408270943112569582660355583326344047778099528571600972745770846984171927883613512745305466833862001456974732266504258790762195439106972062764274405063052929221804608112567398608467338426976108723267518648138428866825857950736315649452741714346964493435254645929136387983339017981435073559320979792312337102409541413074291793775775810568104345264736212859176366495812555715149188664901354285757005250055528036330470339906537312442003141249588318558264009468201658712392508810605571632098504270465575508564879003990810680705556089717924842024680311106739361208249347718422966891530630667403036505912958593101254906219403610460252711421474953721478843961206789248745566090063646549678395559941112157110296927203223963826554707927039644878305486786052517719901103394851312372171001263712944849424672784034854873862645900878389514308643468552590237262534812982998796803273414947507109274562889683473185125875140757748335487082752984560412329546582794045690846361585679497595645656629020302124359338940723664535963217680381464802610036326655771600506177308842107397155180559716592883567060011991609982786215341524694968511425126250038038556910170723569425416409614477704178792494294410354091243292556833602073953290995429607734293625745028571142904709752809602357149850314030608584695379606142181800769304264561519802702871353299769300816541691300305597832163379659527187798123362653278391979945695931975503914059183465796549413574419689243384649355924588847427177389038697149146541487235173287587619095128184412402408653592633559075137112546465766541506196932395261848147133346507152114365016802509778249155966864909500247465939643482707836753760253066498000576281163678601769703724615179325421321953437192075079414429709134503373979858201103455097159366728163966411989684151703473465824545536487655889377908281761020756727210200869643240563107897389870503385204524963009192764963365708109179357046293922447952911599532761461614324936125282533392901710265325218397580902146767569244449628185363422472173882802310678730042433335663912362735322262509565621615011193953361889183363829785984884730209654751747438015292237379523145037894806043347075993615804936233914533865314591169468030881469021868222444735832175466482533656800385006812746241632016922361128714637673079749882241221631310355273393784610898656409138700126382890176231442969383762936742949854007370951717562606415473331365830389527436892107810388091152185227976049680159145713179459132377750210114354348874055937128704472965883691222444928203706209368904761857359595372426017517587072614518878605875480055730298537274206089398673215950785370318844924265415851265828043922945934426710547779049168720017571876306771574252880233900000672159832418215769057301784126790803850739639037566088221317587839126735457387552936279429940986827850762372697275874589543329499304745943790442323477982896600579612994274587901167509807474033800433811048502566054294210579631768024048207262885010966671353659780137927674523222352064373405336968803088334503129674617547296066954988242156192960486063157641277679197500615923437995179833794889752746377796732800924246340441489133712742291845645959005801311649873775663043944014618198052766930159344488668229857820993111718190305025796779702662012449187565809201211638135202458048283416935346090206624095148008446930901907313252283184004732929957215700821427318207055087738224099482267882210052607031135547433928582116720056661451769243462605151460109286694921426470728301632389599258349464947059689300087540771883180741062537048180853823782950641240163751837585591095383613993822233255359574466051371048360647732434760855918644594049390715133471230767747714494536125238916575072683780940418241250487452357121215928074394265760055981911061549061251086874891026310297305262159337856049501376756147606279625605339276221597683329716455823375952694272734612621891137149639947302358005337224913017206071927572055769018765872473564105807160127449939352206453799029356499905677848105719344405773829540026090066548991558863028569221243302594228300198218138182656687311311305911866577633626417341290149173098073140377036758858737764393317233971377509664508400941088793710479900046044893852562848588501953376444180882326315260570432045772209684867478643705934486645032358062135845221780842438968138871216390577696098751263908242950983132407854030176326279038224365835655176928961275436366325532569707232652592629914935507534110000224963992184603046918275120806195910477396672265078718937424055246882507917893491536672589455035035763752899523996914974733045144363614248907410444754034366025822670111555418211391524146062658198259301937322425273155301737405138272683319343219884269754760294506010309776590262793925792738191371676233738218845045812969729657048796234097709608764195732770834112740810850116414887730910790889757939209224847277187563337404754356156123311514268826602740525248075655909196774276025768581485497975737476226377469963959885193383037966430629587641587770971627157900079791731123460709431069066664614990167833307493280751924034962865481954792725005759374698225962366449251006382099707612535029380238571145622841746897871728628342003230370830706100767271675343224030668071297830497546697840648819515247214660148584323229752194997249101209340503012478643789863920430301494283660118025036190793106571394360260102444423326556839444082811190859326499236467800123345201635504062304773743510291446068549014152414627487648368256196025547407326605443000998847593326049728881860368239302114837205456939257830015766256610984557040566405628635302919030936240537514281881730103191500323516884114288026919262077148051674694258628016707333206526997780759485556591827212003636497466239480510902697082538879723103356262241632608169131081213478903615304170565495095187489243430682434377683338286504126296037205817823848025216941030166911091344062520476537538195172399900024463139626931510478773282445716535393522381614735570815745056095674707441466526519633910378291196798713504054102161442993528685875754383699052188994276821750783904941992524006580450703286667723670103159969824574533316916607089508196668405473786145030288664889482632632702667175508019976098519677213636713840388280633556932315769668480325141788899145294704638721326065351257966531268542801700096941876876668367029377595944450502007149573868360119968430164338329850548552313391405691268809946527040401225274896062507853556827252071451267794867691333714364408334804376848370619118899129832166493615610835570415097793026228692977072832403524819343509320960818074177041508115565166090694012795355664721214728479325211096046641551774793169593645371634930455797330532825617389277329798949782392575052715262319432380787528541053852189726797717055157572223103197754828921317583899983133255803307870467603881065015931763285250874470497459734854273746210852888005319573992112647569254450907968150824475694229119909090349242605334071680122445988863009732423171523445474115820037038291557146346757599267818900109416900183052195232785326026460331550594688817249313407510538125507370568826097904992253439978629987174576293927067081879227460034813337283643199460115380119208005465976675915570402645377112013298585041307281822102780596985653094150946817169945204296294092660878391482711137452272795464354218786063022487120710143759019661768555190861872346544594105042242391384083088510369271832426180993564508531635284905000724617706150412270586543122474988229361985358474192280001453307774466388698834305379232669082050172358235829337817864012454455150917764049853677162416942155724533220337208513986092922265302521476473124852806020798458512395805804784721518599954842112148118546159052303915144111276414853581253901278137729219996272771683702230328549767984951619963604289128016013372142660366525066847421900951889442413633082828065030954942318592194946781807025830520255963992516171105576463576894348214492990428587162502864122074195142072097499203100681443726269169546060986522679360319171479396365581588631463836822078162784808735503757144746530241181240645740589065578829195170269479189699853386159643373193996549600863929162196130251795034877870302246890483269937637561636358468208677638868840098662932302450551622622452320254429233918203252700578179373240061252969264397940318988860236268296720379466495742692321185360941537343492008029743739221013979229692654303504385876215884140578198749508322641921597669272153819306645945111789147245939258703780219116521580132213916242822329000067994546617110890468486169352249574936743064531668235120062191385846893163656519773337843234913466407194098239025750407997512053612003467569827359339770826574464514441768881325795190448022472943447808703087228909553539269093675193021092775864975360189487024007685950049833668959708739913224520930707292718627030620913943399823193184643106658072292339229947670847810630134285485414915044778090241767617626021321705378591189668023858908464733630051381644941625234791525057081453446057258044180984514072716428491328219325133405595621651844715273878636728317986602175184359311516758056233342504786786469369541294617480631224437669207220149845704464739850901358393615053735678420345808190859130351115604289678977096099769743953202986258570964372285947724412608963793994764454238554244606529918631328755888010943179688938515967825282342976253997385916826288927894193000685829155520630752431347756581534754530900092152386416163094897759417704759572224972752571524780789820197249886425020342532315755191598089595012059368224144159176334877923413526460656085929452651306362119927613880913426567754217294931930416879924283810320326324463242121218852846409090143477701722737057022335745520013871166170762439991961011338301970971698533721503884093590763196549078451084285421152024401115888943737283798185233838188607984776250577286804620326963666922774231530625407470951367277334411102633898605499104992671606669434575272118501823582379802131843732264889340089685493184698958175454472807245394481495911709626861015145002518803179281325532860065624514511153574091636565451298478171114010522799539099748853872415576227404465708690710010626659294359667261032377115850643943749978640966733702546276073823560459533933439339871271036319549098752194510965766782222444869375947873257937600026343496991991196352829991131979698310197152270504742852924328598623964946514914590344106794486065727841204698797847515539694603744853513081358950390334619017963388150992772081443276470734367127451079913016485535327524103184537208342746477084513700317760968259211933387332048342125645581893878206087814943453003545213102809311195237909594464893607932366162048297957065336480224353403258399622041143910410534426079958082494346841569822691653929928551699952380650593940004369702077563698707162904978492385580382248410396132567075788576524935135067053950696178190347044444844454568413137881324742734052281531994555715784326571107194479206215043818526233437391494335472408027009386863626106016461067444257708223851647944718118624272278894833919523907842301062564973087172498782946454373706174976690201178395008836041992490104522758320851360115220077258613476718797511619859009191027639038790721821918817405313958143011947597425647812108787993716313375722799008085648205634191558700330882474506827675494240301626707495875595505749842594302050399633988465073597287786579562809256400875198683374275731935665256821213555659511255473702499399506122303481361312959701702896335959693706222932161520248295682916920951436152836964463978238470108022034167511319113847554064363073629872073833610041268759464302527762172777846633901418770448353579293531409939880048018642560242254064561227331063963511712963439485362675062996921061017186633248266184026272470763179404768261198793029136914984883098887464121605052460060933756173324503810456133018678149097433462126186092734622620359200128393794862410570472410248467455498785003150817681245168841189050748227682245008087421729734676392480737187023015016947120694035904592058858085273728238600033615548361164692804204926479890820226804020709103740095007549616965297256618359542270241305525722796172568629275399519477406300559201708610690775041462851862696635752009019703965506139405440994549803751225713871177861277402501928513089532425318304948980948581785155819597268521296253712397851971666423885873867441624387452710977460562187259096255187600972060281267161733567821860838681480361459559294026952779496307132461782687838442309341390265761316408601152830127226360309724875639959640969094833250506497686472744989243756200133461652114780323847658983061652509514965573406780761334634148281985546319640117654112830569716835702923430142086631790596081530556133359751207348844641679505817766504807331776974587928511022505404815161225001348264838065065154602536495461899733380803669685292285412280665733622728666736887527291022570163799036000807291309145738011273098916568088413143228293935715086192327216198312595256357340757746912640810892790412331184074238301878473357559902510480875941531533075572386447569331223440955472342860661812559597500484543121318721667371071283664635259086343047483240042011302298465431579514132028672473357890773760770678326759856208731736373334271519822983970719529989608083737591187414073655953285417608446189419570963435839649549776675018010957622907665477611700632245601436704491248946583606066430922111845528298497731506885726336336443867226936240740749860592603375843052380694769028489470362407565617897151656879156054807926408677053756759658710544241155202174791644664375059340924844712270518457289251589417568496031492077431243397153636451123314729688433529040967880012958789337409903513371244739297305384338729188048319168179134699014786450194625080822735356891510158528056033762637906417062756514564046370810428615490391071020519657806470431693696860234107326554469932174529141796537844130696747625292629891250958160323186279662192785705305777041766723768018812413244924589405866982508632054987399573331276051772621616825504248934465689489068435845447306453057934501887545326929701847015584636801246236578514655489429954641817257205506500448912361419444095257105418490776919877825970701800746534484089561942562180020274397240868578219847388188847466557236440856347767496492527767184703423378891561738049778974944464123427492134688780605578129515699105250684117984394025733789853265436595005192183332220140588294151326235450303563897015703213748346515866760229917575891446848540716963066026702401810849912948872505470988964263406392933277130145780489678183180996141025923460314520470390810604854847870561906673152523381140759486986849315714684509322698898322087159572982908901382584405466667743056084545311664822783761590002475069155838401982370770595724815568978680202364748897305150133903170175914889462015177703142735459262946212735146782853732437000679621466735185299327071646371298930842493565805057805642023092528865668471579082609694786161630246353846566848861850503438484705421056691946989537686343603793003563042347811336386153229416661375092224986061873201169125702287641848813499307718317036924859832731129274989939801990463103245154040509910706410207227753518513896796946076232886969427398288331551234461797074022281633462322403677203957394519350013881625357003075211187840663457802678630437035502777023213041383173590151630174274999192781267580677616856479170344948113701267630821801295776881997943082571220315366129547517013101070161878928407197093035125566952149993526444411316727560051087500341642875977417168203448521211576932765885073920389590826517130291480572821342924208891203000636723260474297953202995775576991839762667135313030272666906696557010431902992405023298581311015628629641879486418109974860023616013569911476526033693459040625242678446701042461330417330033944880435383422932647619238999923813627810742801048555314127835573259069223877938248274970697610095225959737835798724180640441399768314896128944908233712187462111768273558820836081561152792667883637097005670387736063867983481160905656338245289406134531194836766148203168185754261581871422504481621218581364782108378628979509772831864822489159105256372310120653970223438479089361663038005594845907158666257075273596077646624227603074806393796816748690304592408032581354727272927577188787133978357498899113575670346345466074480719948426681676853891928256915905204154168217906966040288378834410374682060969490424033058540486922522806014977847641535793170106659463024308684815096349738052569341953576870889802953932234734722395921099769109082565645328608081111201262583386440200020344424534806185351073230561762523409502280763173458831676774184280181935606103625750751447899468535425101184078064523625945596966365079815955860206946420891565769054299023273371329087117867446797937196422762667917597799010258995455667652847993021900175417512031640322798307433876900932786437950880646905120595244005297358341883005640972145694085963656119988772900425925110035013712597151867274411726479261785327290140827402901852757591547847229855833468554129525978891738932646764506149129040385201922538153636790051424257637521172413539946716083832834794278260961042989556332533191200062044736815954696199202809941943872318989681467952911021743295073797440490193553629919546008945461999144940694293972790810822909974342088524518519545061291763989191232593320325947942305580928293923890617068326747782671878463661745574094982862516163031247977264029505347669591955799016953694198998935733478846327213491944645956790517455076333522517750245239673828654258505566185940825554887164442892736061718430580866286403913889740811200074432688462819416315943620289207868699450145856583938990933596092755895540264591831795742946835225280828716997956666867428046650932377822431199251621946859009980213747886858323767854005765772624108127442648095850876113003344568332683181513902992126713322744255313126548262262826329680962129415945868814548417971010446158044351302167589803410876867346742337352008558026388029934722607270977467835673042497343585097420536889831472016161282281952323037669153298802033323020962352820954674771404515774689797843004615807230291072355684662886723031424867652073366429628535703666364664619249406342533581820221342246461742891576057581981930484649539864938656710524980734446731689406649588171629958055489111465552325121013807228434976013059376639380898715811024952230609836628084630431356670214036124792581751554267007009439500176696599999328586818464238388953573805058158709887909057685681002718051732474527971739221949860928982713808125283757919710461207005778883493206674213823849200013254449282053145831667926785996462312490724806710752939856782073825971072789006247668559625588520837154370233270564023956452454587634321123592873877754145363336316357527768422060943041411711846765105208737997828494240353244249442331450467799799320930668482482783510495147805823019253017795054231472018327510520133588901323384209861825835796512185140741333681678933973299678443375437657227816723007940177066739046069447863326764336045741048184633415846753891267721421167826312246010089287209289951196770130696308247331892479873534331535421322260052622824767838495462548797009984006411627653806631046978675946970437632338390605950076257589490387626865063687202720698498601649770818052964904445085818859187334624326333813044430222199449738459689013935743651869127261254840990398235156651836062733996628654324962232101050699054802759506976756204893953735811174647164508301542757240358833231032359528504208452866534989004114069793926576735361811432846849911026273912520398398167288850240518975666266273014411005695307283298717583264154535785809343413137186159326088422911265596634673445027199686461378796672577048905083914878333249865932500651665638960137430620023954296276714993291240629106854069150311609611231717577945355942618171517346253088128100494541541547017618027727019929045534499189373163884316207627609246786240228550496315271817167219892424659226163562040331044148217179068314686607283700463732906301585420408713228081661826159741671474685931597298193330894003123529254883287016628416095790074337422354507543599313966202142401921721365062165829011045812968634236315144373681576041810587401741830081719351417566158424220796213187656217310661343256402082309053003280649539987052272012326008977765927591121997497719639422916617684728424611321920902441467804328464533595526455662523422051745308765923066391870510303197652026469529379644671529073648230883273695930473314474708848738914252837412932302508800335941018522743868924918837838513196298332960540114742534696789441608708211899637317492142425688122191030963601171114835567310481654757899603329641322741800644465651414154511060983096876146886246698803999331983996460573382058474605421781947970776492441012594042507790574252144601450870312239710238559635888229173808427565403261491225959308021244799079028557622570400914083634259504554158576059940128167555459697542667984696322317814946817687347850851103948153542476788148115569249653221818910235613083283645397902888642201988067005256924590688835503279276326241312785912578373764909541749443485170467291530880234375922937578820097543854923599140545431971781290398829961063527880020682246736339011630428784534035873490550009502920262264930802258331708243541602880410363251127308293257025783989315265994876353769896281640552265044444715401521062950132273757057405250358820517604319972389548342127663363846102057706392342784852593356174338089313535270282906788984321834826047392526358975818718174719328369800386364794955167846109590431738064146853365869253015285765041310157622640333193874919465546391491808339194262394007054094020779598776686495337932799498997247269099124101467596208126862158518584257253147821820056937696855136460301977404634141715607300780673072128772110917765409205009675310140649157968051781891114827883739837605154162231180799105152291998661220355848546999315171585670693067299320697934141461592443089883876528330419803014692985917325751130067085544925876429112906656092590019969538236846501438746595215016068504719202397209044399782394951984245956176815682556162788655170425591378339833353390203499150286518394364840090444399678895175945396518561620161191887479147581528934551335726454824070835684825272435584862637719719060335090198488239673176433856039870834928809643022751820717399566264337998148930289519579308490100353424152190477572375109336515742789013334610931807920349309715834192444034525223292944599122710090175822441690287541311734292517929350741473536047341690211740211893804373149060329953111634128312596820846554108109457144744287992123158021268560537146573415778521493301491593850720043611790202799562194143912958610144796695596200016010750357201928333730126142445615220303897325811929221831558693956048142904385181558372884581380261214358829518347299031676115645725050125857690558956530076527813980917887040420969777666039684844013146800310290664737313064552989696314700992103813801621886839831384913245543878776933428900736704690746219609623643212061895394480417897534153685099389257210937413886855862057593745184447679644521606176675812769442292339152515912181037890032771010426195253915916854439638824270297729036686909012709674842926839457703666762330774435290424767138411179965098671444322134655909639694010649120473234416426925757843368348660039767838394492702915953851468201302088531279054391186607933892923575981607685632650929625489520363095314823622510243511726525366891357534057934075071829921229068809676965043920833818439721577952701899185131787227007097214945043935090484786638305667114808272046616872584845905825640337329770085054626910875453136577358266988354865584394088224255828539835561867024009649368454369994218036518825536888283683267277001283454339223534258493366772757296491041246156379642868295908489284909519305749995128707887356927036262212741149902963245434898275399627750147886829106318049468168473981148150063918143111687394950874101420911717944122150370899801016563815522284640105685111815848460927356608876521223679498847793953092525938723631855259299713358474761695216379151038695679870120654958830908581688063299024116358992433982276373395720688738762176734232666095315520500397096169678163773949431743949483218738343094714398689114072846223590061764143368798131046933870579737279980540621332278025817746109691413731837814921443947946973119995850407222512352899219963171816510390234761967938123494113281171513665616250608245755922925951279406211623839205267202483507103115244118456209558768312577970546124525346834052501526507258780574862170817237124242596174760241559061211120559698696012219686933946639751189754542804937065762112064850892205441515744753641723139483538784033455258166562148083600859687873971674899860808619185004440837826848126981896757935270361731527542352648749313426281841073852970056118552675839098797775117161685442265942778282038676916509269830504401311746341132068271508466339663606443540376593394744701675882126014332645496052428254141041122829448139775387476664448469854087234680106437622195090410934272219102345277102610004351550927999753809808122169031246885213970111535683964870367137622162276467167682045168741864975429136511744897495200380733155773872161373194328159317822169016804327275929674395415600111135537295325145995349328413063660796088014822814928588808975666684347217573687589335907880898750113534627349476532372480352194635848904243273792258495021922066535341334305477650278883034358256471665914870608357411910082799668300144141585786776617863210581289941533032065629123821877560847112732815016083090460245496514942386296930766601479020203123028150959348141184622719415477757412852896475589238786961106999034356387168928575166128237305555681143950919223697698110481682618052199972189649194860490737577199069514814706086960596161626042488591658194583526847528730773573893278865011681383133811879621587500309800229009832466056895778122349604044092876638959534343337360602359166137408282292665539727675167994670711780066863920121914576892777386806701542704228968956132187572662812731693566718532120957298686884663689855681780137949507025925153171581745486924105143346573051702565049800657474730750807526966460420512712588895498334169792292817428651561002106968728171544953422565027674449610699341950801588875340694140131769451794780952029945511277805833930600196637488125370710862754595500064484930357591793456166567872504722763033584546214658990579672327993227377559474297903326835346508312658201968977321749644407048773541255930259953455566920062547001397463055855489367117505322744260820285820757371280880804399397935482495496620131925603307144479953475269989080206374920233176100045870366911450489317677368952343882458966549050974521910787015919030257636124329702366464399756621467524883522428259206093980508832671117419391127191471139863001789390545114437384946571610990559892789671117778794159131045810443352196131280512563403265521015678210860119167376649680196961925422014013748579659259281456187476449774486450262934254627768567372136786120637660315627313823902715385649834118159675329525616361283547555287180023978861343694172378666206941411830087967256324782843823680099686316209950709075983059085133352301981974457961415496786052409336239635479111037794166107365180021146061222270980476818345034289413943329258472458389340546941417498825207112353486313962223750623411231706289997016906530860640912605411606598099749771209140565287320137357356959259337961603078245646922247802868903291388037138188479401244557272606630298113211622956179039143043868873446879056961144048468670528874542375421149110740310809753838754954222590584269048319345186324559074893056743379451295873909467533716810836715735565280871311691844373332702264527751621832732019367353507497821978183359632887406556552642995421042817948874060883718289539754403019791867481492029704938046104846554595381954527877888177880335574311899358411769613400212404032361075814856787636395986287592413583765721378715196246128864625760334874447278460110310249085702939898503143512582394431575319214412212621647222215471305628992468673336551954562288487089430818972081772274491607976236394511791816954445708803910632052116997277139738104523790123024776931444384812812690044604701487901535534611126966768324278722551778472997893780972303155438603310292896707960383300626973000414757476143386069548620295419721293246738632934596355516667514696893117107130368894312978654215400421152496012398448356567944450902588396654559326187294269182740889179576150362652555425037357947487686630292953862765771078121858834997734268864400838504383078928177941883412010447060140442192134704491477886196597612443377218799940572299055119267398245452903635726487927895430587940845013801046039993335985866930116468807402145155047065605163833054575723962500578529684261890510937730610478910516404029955494697119787185119848191556901330852323296169616964071985756858028627838974396254375005657984943264923667603017854925347858742571009900939503440797023621825275671081864429976521274365218752920814214718565217793442714058686643741264770563734578360284533584910235066639364434134577627504433179467709395946495486965393038598603408524702815443502544533928205803068011467176564596172474878291663515753434908660855239604513257376110587417061326403418108725858544155459260657960187503713169094776577050097633577266078081574009245087046612396173323918314556575706470997339731724063287767147463300580236936043202569455679835003635060325465079720350191527537003610280790781445662533296919808301575763054091030462748965824485824768612961619978209969524256627352132578255105272670909129991462302412666774468133947987946869212890194053602189053020532966910912537308674482972987198435632781410461969743527625893002217233144736728174264023623779252700875841200609189006018868658000434928153132343952965595639000519757131842283493028934710341577743979454864625121186111945513583081910455531846408315302062925773297150973362445897523287043159002721666497999275461333672127257622813920688075971303048224922943743508322453999903895570159715249901828574184687845479266375447412923869902019254298200641622280435010864287711240380714365237923353078053075491473982856260929230069246363318503769551427205424435690377034024200491733841504136062641093480110437135139125510396576051656612876904204266927445805224673002767712112239669299285309078821112716819340451956081439832788691360763692129149107014590585239900658766002988510939480109335151193261463565152434931738542961392998025787027158702011160940994040066557704039041758075139503275924640603098627146976952239423934659205220487161141583325645164037296463058032406160497966852932023250551355283936388542710453825656363852179111724803727818497185821694552347745340948428110446443749007820708152658801905999525351564898925087012924136531944156642335220170235402503353104507197905735207911062078632464259876769761793246572355615298514612669556381636690183610610280077779870597326996853546227781187210590116313623520088933080447932855199416749069006701889299618028338574137628525300107596743552102615791375416951189052769030309735244795718943577025521223325968482626577015033433134479626977507729335629199607135681377579296467756433381773620772774903431877813452041873308107519124682519718077350196144063724117814124599668647503253469117213310836117584130699003403641445730685846820395522764091977011149663111329198156938284518368529399841339354005870014544110156528204285289704756964130536906760283218611538513338312518615091820424177841085576795386786586879522861399602506483317216840313575565568284453907460835401261540553982648178301984990836822709135078683427462838343003665675866141174107099032701395168000210447855637384515050473799638079688398290711280896727394496742031886284125748112864412976359368916559948792589735745578350345271384350036473766428539392564624565734035971639641417889206888881131739826549587425638024390598916814328497690984648469389907506771473481536352800362278511286669646222413785742027061312521382630305756776302678995847734896456306906814182439021222993910857729487890924302467060149717055732386835971475676931275981646204320929778897833514305183448014317388945531616846330011754846569114765822220609904954197643669932598635297690472177111831254660700093752995250606691168228031466700491041597851753020476855341023986549995226310442664422514842052805096553895418299220357027990915675244229486724367844456045575489103958803108477567660458202664030722319084488050443018895874128270680460862839167111703808833261338561128912149957983830678953483175752050888511369785145369686029250417454634772985713078627351247120951881859697827990629572135864172275813720012987380308377335326514489561399077758891849231079384517740277166070325033642888206733378092185083669758265382117424864549690493480275134873799173780709945441085993099528880860092195898995720866693098483048798962613063527712627960623151781271802675394008985268187433091660035133497377185209611393118156985819806129942461938801157129086297445712513023960353495404139714962692370294271637659153924791426746462348183842364642250977685541343502529843511873822179793296888834408892854047511712061138069158102872965511381806668984552487497778157534093706803529683244335066087353710008687092558249862677541040700952013022266138659740473184470739415282243300359685984195555783908528284973200724134759449517092141658830651944551935012698360769894131004430961433736869409090523584391086066575437184524504789949515762847325492514957909535382711015524801095891654421520121086768971825853330329901463444141021239036107794826044770091055055265765375318205311984292262170977376668251300516122805683193507410787329060960323254154339543235405982148784553991643712262395469255786072723681280728073499750364326101750630678721840086879730859705084291017899676874153513095611914306707382849389414626303477044011367228282856016307887342285423704310639407301716031118922226569654868019940466082403668255192668072324631390748153714623864429544051697729959604180395561437541673065443569196405076374704701693847291515328224024820972827184991983819975375287392962767186892556737157655816861448522674731258990585767054727307888628113107765951527407804753444008613646586228252011538426131512772794343733210780040730300060309544911704535459726268971060906181957244366802214525172012476099192097595597109345157074646891204470058972337757797750073532963529515866524598453730518467910193077212870354876666137716292802317757393657289821024453262294986407633328077764181071716591777969384849760184403811496540056241801069871694946315381697067302973420994449228939976393752290343826296783810394011340291885409162309447501311767928465376622922612561124902386347221524576837915856283241928140990360511482022900915708654182903923435135123603396325386148958150575186317902553760296088602124508205853852949955260937712537914342492610851799532926016988876976149330409828783570150235002426541366225135083829838138192244895738029798542532283627568801501013468123969653568904334130612362163805051714138084343223503997589059220738900018619612486415675698325627010747600357006266642968508243010268877534273382897116136675690083320610238737358642873313375939901299437028375264901596630822096852548019409034101594272811582655622640303506619294221893502224868309168980298348257124214772663094674938552853661556490270922207246240261703317444299123246887882769659853974622519183090736290639108985289731872160123396427982164869560373165235015864413133876350151928741420138300611388760524928568617016298549856597677983506522477374411881528386303573424387746328517713408964432566260114948292070085322383190002396403898796673339267254570655540994432963618353794226265400013631764619534035787564845487566063271548330788437888258130317549682415424431142241799440005781764754735457330507583808888110084932453484591555701331396658490267077141643740420158771762922613266134003527615565019512119741841812476242311404558184584703110710054336621157757567611089238827785181168381701901049099830053736075748669822524770092095155057142022077599310380384868265688567313148377529237179032527324289205223907886930634276036472163761452536109156883914839289495496085574013130459978906442767242137000327538831852326197808216458158103797635781669535850805259926744011418148090689811813296841164339361219531870998032811301910660134301711944217959975706183473658894044856652494225237805140716459326297165020875918391581350913452545896733036153360552429399362996964092440446356806883125060568803517713979113206221697305326406545592826263344401374040738907834768435292436764388746617945506442736380961519360533080332949552370956906042265787395801953624495018571001486003704910437038028215452494166464825531307155227615963309440855625235781835270568290457707575352534000371227547594052410480314889794564195512103539053109603485562726482559726020241143101587929258878786410278397888510208513100703981413456628428222929437746174778867069859196337105421860902510793051262008516635778435799302976992826074893892582150312424606796509383996792283693567721277075272614735042378673508810651469929926272333681127354829200397110109897340773688926828100030011211912175576963063135114379509360540475503149887977493376230523306656304975046972928425904368580606078910780015197288208105352826648355830629560163281740571667828515337542364000079421545070587468027691074643714017367272207435586743802350611756531269619233479737230114057100086141339800535056794481298470573797846754640474741125436367024403447218178247300422008978476299505413853903351334551952334056953534098400203928808340549104171321986134750966779288009418757753089174811180884119523424872287889088390896273287199524341996814314531438390313538882261977300661007307241908092875838182887535326747817144241293049301873304011663530097402096574155354734438654440219058167654697458353698343787737095904215743630999324213603659764111437533191924211114486302084359781975060219780489986567615581364904297800289768464246333647426824806475798436595287480926370224232729837464135450150159245437894445939059505517669250057569368273565453358881919428154930821943323743747655148664317643183792884113571871711018875759985768645930887731219252048387724829304084257775037020478139855483536455381372735515309290770946559262925696313292396426907948300319275743428148276360376591345104275896050243773075250154093101864156459613647934572064594513164678639958200492166224960105042841695364415402315082631808597040148506250659025176246509205786199034186698415364230098997402176857137866616922079204263293868132316304385015045661125291838224293910439880703868782525509193002448390342413157560910679043456775616709969385237445838816862978960882810024973590002359286533700108275829412359811662682130739276290199390514551803595753246704269765347210079234651938961909644197118316090347676011254762710174035811809739736335752636612703135148352700708003942114045556084643764509944197408892924701219657896827825237680939661416879271656926481103039878512514098486956719756935113715472506362037367678266794654612350587367762098792146071280892612333477397788176966621499631635493012255194405106004069161196858022003172963558428660899346405324289090839192460084919322377629778492179042106197511474724755471040650928583422362747769502070160211788352530096895652847019680447038517763820287027344338752181048934727072124228819172810367416409147508194157626192532271996876420336470290280470491399799050911300914141999456168412689788697002405191552467408905141470186548356627814226145215591259968122800843111496143533553557120409591746243388697732627602194166825614209843744239463117909333771059162073082101749782017021378716969578160035542994455499089017095383171849031979990777234309439570475052169607993178791006826534955620881005898088103165613611574186045961545225724560205334655023177580582190254598581290718850990490357301880866086460696639201758829555655920419557842716564781940552024445972131059419410645313851994393439325352111509709072737454692138580868452198486250424910011186846937008769211884859202694823904790479164328309733744214537984224643851580951596998551361628283981218382512463957369067709977980699720404395319460761359112956717588524584375489999828791320048435894077610927109266507260590667226434035916287149295814252174776494568940672385114336655671573267265726571691077676064649687494086176688741166278364051975381571388309955492092831349729669612206164847512776059973377868044929236135151477008538470920065832928234680543974447810061955796729525626297597146209603991128810945336046963318428033526346957504993041507915989717030232815038279363809164203092248045774159810060374680555165353410122975418319398253251482058162080661721066512720729699469176256236345007711052016041350632371647906599384478391792100979756989533516067242254553074238715791272104425485644622491532791125790473574933277158365930219107228909479736608278199318805784184231272594062525618630032677284762764240398057448012013663619133784622182309591199097354016801508638368236290933192665947761278421743483412471118069306191211258596173943783630764260805518858942372262024455293361157071535002819385941803439098120248642859395380870716349450844103709231782042562544335688203118600139289364974091501254701541908071446075411292116759189348993089459239640870102928297005082310700308554106521294722933801860737456877638734193552772062611885802963606594780495507286578270166465943007788170075627097651891320432205479646143621034898285448508598082280306945102845430163437100098770714107356441948542026599071081892746193435736859142545807173449399129492359272210731273705906274316103380415443931464015915689171025476868615935817705034664266571675587874176076466823359048046789120525313818535177584877133990025406828269685916255207627625279983787838301645276102289252445661966663184966865180504487646784458682713434858611434375859857095675700872340423165578597623015718820992028013498494066168161401289315658926242442288940011645723835655500284704275196379260044080566502230994801525534463585405949380471588423692960298022130195498531876307884826564145465625921928241182772091500845689274260985446068758143877244673054402259340215448335217185226862029342076950326007462017457129431512716580093415482442551133032906384684296915437620912271437469581192000590440975923865563014595316455727778820999508569081321154705828692221014531452393336025200062361573384984639058284088586772070673576651651263321558304593494267495551460942250872760481488327183791896916890920615690646076815098196471346093808158966977444800108779231420998111555499389750010888786941650533958859074071725146511497414736510424488625755278973557169275180838977769751888939110052878201720630126644993517366292062780371848827602021411919483347741445625592045948454001734553799281568135172758236488277274231812021572131991453566530143158252017466587483377266814280871765816419891854824033314232973101554052526316780834965344839097009632078771939982454242171197178047558080215014691384472569045635461582301313345997305482204605871356566287024641849194354939479881016564353954676637151750843897139389044063879325707048468316141091947203134712035243403435539690811982854001606040091740738021773742616388496214731188834310905713445888540536187913662844247788134787759279544734741563125464960181058672492378020708696020796331450691290800306270578264040727070692809609095868630604119217477525631787205002865716711799844460241026975525269092990109639006734315762399681622651096403482214144783380217030762849696306715429470712263973853998961500961822722045683112643104654623400633794747928257155575486841900266137006609887340029645349486210421037511041653545665889465426008539103537592528134739310399211250984572875936029773048618067420200914155168665033079114712125331446358484066447218497013848744490645473976211825838074765006110467156409688873548106493067934732901345633689353929374893585248873402845237503267699041327099811182112590954337701424006380784170236227268343017874024556401956533711327552457254896818907670820380111020321911522490105294601765604229389548260946022689956680832466837330057269237674133795472206976683418882387131453193613500101524650924229866137995269410610152891452551434661639567894554682828430795038075733237934667327928803539237187977510801113162954393401728409558580576523893034577028941092826775763418841630120181598285832575333305971799373535583882623463111727860806168989301955925633015319468475210536571872442168781797095147655324198338356049861472796186504782879906466666954006854623403299671145550204092051945378950648462591686099341090835261625301641564209413935808615535373439337540395246559622870317718471431818737809172036029020729266000714379386039334131501866024985875779655227490865023141919938467918386262729823716741899503368867874264454284602659280918862184042627186785060259324020175986644760110012335294748328414859342988483832178213417614221775715311015853957857037400669626049976217853354015821100261858156495687702959003692120227500582951319108897288506252510102261275186355177339204321295494890462977054877789456060267573586801019462483809308372372663694039208886990416336923000399699771928301701793500499279682151788357276713734292957225870929434269064412877733210643924366566129964818197043104974227890990373793782362957503461524551589950691972947796315968847655193280414842631741037893211768673486269410022020755896382030726072114988748647600855175745287563472813256834464214839301803470511057622505255182436794243904294387773134809371433864885065744351461151539042304211843913362871752590271867520810389468722920439106241570882914817836462698609075914639838452548990349406393266562522457371604048679128651741347308652094839035496192931005306521288400801666103510780194474168273034566263518106240030512782027458059755381072817325071628066003762450139771239382716345132834472176579427872359565456718092393775206757190430966083146353149152712901989681975724019020669370674021479531524556742405603439278234790774029282929704803963573336372020353994035695894248386028940352271873052206899890313310508645345612006576242984145236507119520356912716948844597075387709299021916155662902959897825818179718683700498474772679682243757651531274032451112525192080290729489657792437909055174323319942910337278349874380883569245790705822426452399413882815396088191132988291419697862943944464703172304138297489571599478059674434477721714210145365598127831723583161288656270720568969564419232856915767642008919685184824756717182414319284030035430103045788340519165233524328080562869947028141717960162306441105278414946254122541046255375713461512789183795795560903281054100872281389835841604083848607404963424475671824943861794255522524563182573117100242329258163561117361474255718510688322426768675467129893010051630759950998416748241468069512929960790989677135740029782240992159614089257093628438098306334324349783851006550270121368159851277460620130314623655948499743927036445020080559805171444540270055971087285125654077506003315798182963621191118436139959642975810091929938284598664367553877457234257638517069500631699623990937436162672457957797387294842117950338396795934251821171566509046338076039480420254694213756764858203966663591995078956855048114022538553457608605379558133193771145463337084726378514965512277150715044968428711737702183306373443275081660300231790784828493822822176437402333901057963693197786884758259744698970796938067152124191895414119334113352966767263818703099996770730797499431272095127695738142008566533881400975704547795144145932375934555215886318153066980260869939374869240707440924991062956040493128374307916331519687000533575051315407402083931138441013171256413740200023338806954965735297318261201136013416236822897192810356112628763650594242056772094526040590609292435069782958884674040997490439292634737352686914623089148339960631195511610370055158508955775440638102841762587772748726986146403773147643195311894095303566416081850063873538314649599870315762469489348535820636380616935503313465393750676230032783588818740919193611966484086095818186477632165845657969348294705516913958904209488944519490467408019784053305420546296481124209573487193028418660563646956994473371781944200431355074434196537195230097463468615018497650939157053487986972593513831709432242802214612174860564152107957160692631941596937068150189489827998965620991704962201753408920558681136864154646278187955714376865521876289452720815183408232394134706904221188191428275969943416697395531428794915447589990511534138805189290314667607936174494668534446232555788625917345212058907542803062251077190038375114081923959926890816896316311518154685415745515667701321761761802953195225660476300295342035827531368453217692121945955990743095050665109737217778665719391357623350834648164271041923923620069444995122284189077653591508018924947599744960509162461487429406720342689137693584334624684620358768132847084568317173449408923916066897798476370721995133360071468851139207832215419717711800644257334987727636966417954998403184101502798719813394419070484760306390405643697824845827894150031191958641514859883404632140739899122534906420718751631876325551395531720487052421725824258210049067460521150802144760624120301315423508529687994986853148817456087341527506543976595218147026534250983355566110013432982198997644872726990611720774808404309625374101339570067562355680374846796227106838736890285510022053471630492687475243266362454817761098901172077296477912924091945127171889679391737497416103310131036639416580234988898283025807015185093701681444250953064613983482527331726472956451476851683856830889866482963336352673161180307480939918225343231972717489072057186833896139856928496238425398111851808212702060823234640907273007725462778825305260427232338869338185636569085524156775884236412981822592923804470867400372389961229364044485379348658202226645402342590029371761357114066339046972062499038808010062443358367282682509186588136557187031305777327056377313786698602983612368464969004657398193561863242964468521112640235911566918586410448507893074030129464186398268924833077991932893087800572611562191601040510436049015478190486856149433361244398388359097807071985245678674840554960794199172412727027116531154935262184007430544132749772097849361025754118483044071195993263599859777513254661396157454002001155385109791589472479724247855111848319639650602939085366288344765444985705477531365386728438856495892825964785908446774890458300367464057399197056175372811486477957778968386117040476899946425193323014800206309939820842786991540593691688274337245182508607955109813725640603434322349694618591345936705475465565842428544320053696735293798144374842188065985268364241092555563438988803427092808681494634678337483167423837085859187094071230398318240236351345029329160395909591569223510177557295199393108318751537250294928167492458864768176023021516353754857515307237361481439578747303954678516237811273825870018776208394820907902458679658211843826317487632424693485046697695162181212002842563138159076189601564350798831831589567961266189964751584878081965164614600975265620150198821072303933480459289283883553264833251061558190844658925326012077982169850233959827086594996067106003003514783593569231386763740619280546658274179568869051630010059443736317835141415980763217080905557104814821984411802492357802977119481609417871959652875019775079641598037450380880323580031475271153623709923656846595917393380236381336044411793591755119444759675129719398558857171232741894973145193312448300885446041777212320410024488175826507246220502128737020806068921801485798466425951362369998229367138772245420479973779334663235373481197456263844652242135262097333656756240745066792728909364609246555062009533653987482095069130823633419553000128249975329836203773365764835587344190030522909649851324003084483481769512380675398389854886303325821932976373873323990451213189406249650639717349592609255052182254596647530503482540468989505281106374301014775589492858476269351192864444957303559140910088979134663502717363977578710058101609222168404624218027989487453706225690692147284305842746971356551499453418554202596767280705748951181966465222516847091388928308302458757822060282761547694019260758575411938229291221224090993681250381564018339673112209045601422340068139779496996522572857082984013591773987678234514413464082653529217603751738143276293076255218485523247891844741651376765076135321293611276910287409892905450101905716936150345221702467012391132456430780676043919747591143507942245857333060883107320638913701889649908400696698005257643292146493183111945529811534907018117853119480837284872586009905725699384755192172436357816109816850838144848268303549697744134640475001807247393971156905245079896048507317756055801482715112288522638961896551369527549594626650682366221454489482712822706768076486175278297277379179205885404869626478136366912953874964547771115182756986388903749487813393886309884169055884121209559170317392916815351714555075072063565510494763363040051947058501247590079841974156796523933851823879723600781132514233786639462788279073437711046633969437188373495493462525840275375143818512358816437639035174189043504333383379556707242322167283605686549428027393656734234924116084142016210643249714059702152433727592346808552611046583684333841800960296440327555967643282919800144813807530255541958149018100789847930446114848048486571129349614768419231914272507054312370792148611102957899161265815115844035554547439950094574242150526890161525007285874111537360260766657154235610036014784289094215609285223153564724772980266536258241102318144595107018780438040832214864653726931224476289503278393456840575565588298109269344015328064291037658283109251468611267924511504345439767852420466071482150337639176213479802620938264648773805822790790794468801361787864263172258798072774247351291856979519648944930941963660120616544117715338277332192674327713241659159504344871396659704480356338241402397879020524259962579270784824993654960138104174853465543771865764511389899493286454905860556009491241223596301044748417909201727388588478642061086107710832564089747557956743450768700694023702310241873320608157658965230284589791969681998901697677415564631772576619502219433303389526338956521873331846488041545303031685815228304942055239909131183916698065962298419387263433920835531721527969142361336112383675260093470993554891551987534334060000296207500163902272164484791270433826606289871184329284081866447883919559651793000569080033263249750610885773708038393058306784499275134801164913509950790139850376919478776669082310973211732242980594229742471028694061390862912269312723099323086687450649245292196834253726061193445713781705548251568756963195813300116525035302650581696099981673312169712142154859567700825291428723375977367102173486583339586262224900733365385903281906555844924409243870820592932057939649559714971162228571031589784294890776796531895635406713904658448535632114020180506086693050123536358664927385581325415435264020181012263394933465705982289759802963076121118066279634346763351958460432786253661812032001733221520911527522507805585622880142031683352329582366789850907364052072628817807710588603074317973824806984216152232961803759643682977948077474380002071892449060627278565568934684947499197900074003930044562829157240904000156593856572890110508108911263597869204060644080799500485142561607972911735987481484118719902367663296528817066726041514896256763873469881749485964582382426250819550162974149891009553618393410413911609204179842738527068924529756204404967307423524378072424098794944217681757288638590871353380315177223911007705990643902964438374389926410474423110348533891075369839961038084240756791119653970608118606241149870966555051619653063510307706170810899146149440517165987280308839363799288004928772075454263451443483181234222935515685684420077567526652175516517689336225290333133900890380573859079793406889939409502790081507302649578869924060322910037951194208984229710744513399150339575297145455284740661321577861785107602796049443696711642573346225320508896837270891565017253923613900222495746820565684200131429056117843557605353046809393360272934617915555761728831813746581430902881160020933001356875024164625928509121547484545973268293839073658420956949207662144567406235371678206477573577069867829811267860519620888817549394538252382844123369045123178790012169111662846997456023570452083456545105439422684542805902135109662110256023579577302826968994362471941594237071890199302680871695853512101205414325383826104332616195960906505598161213878940286989879935907398909784263420379081301618050249685568671896037719494421205834148734533865493399058652492648845471267145803303000764543632250390062977591864969606319912802248808548811952639282867183846201181317570166401375569022011920764820815230099353055816184675744645986615256139197265295276270270091388021616780079786250402188549884458323245434269184273321025302003021415940289519243481698232085024216477012028411114669312153999801162719146613408618963709603697148061351301155199833027523081255723587752914314651001761584851059377534163583126830282705924202310658569579624291964740361040391611621072200070860333836142137934310341945328907478550723182067956189246380267378205001046919938604535428999319062963767070993096288610927539823062448481511642507353838684996996328090004378164686996435748068988639616760899634708195179888800260170153570600651325668545001996375842860664121424652566661247968810152580074977410317727235760648282486424719994203988607034968784070711582461027181151538281905341825034081281381846926731775019182198927145883573454025713213094737479021236158770666357070407515779166580309228428436322285168091877872728216108491668194003576124803785702843530037456745826593800441317351396642790601104264732232250802268188752095948971678582493883289165661302078337631400232256031358577652388930454934412160850915059135417448375647826965946470561593329738385306626998677080814896228319257569363384833354558481373967476420164512511523446640394036853243776690291436670890992560927902573043627674735275202729407266629304298540249693749843710569310963141283217660926129501239921398998110204100626131505088608196510746938395314131187844832653002472301493981678234613038760715237490591419705261493504202045888430988560512877661274747798059114672415650259988761170781686266997452092995885329043040607887121371490648808485275637565006973311489402105080679151426007699807504696188983388839999845966738226951131635564010331161358583261772424058645249487970949211069277886955138600922342792673968685203431672237971298780391673052274706293601125994629868278629167349235362787912412124718002702050787257312999501456116052632362524959532116398061942790932780532585488248615536523814456720827732618195078016573446016861244876240821956906755081128504460399387319662169093118715936113696765738556658881916558236033055402049984956990011182264437022686769879372039235826445790049954659056034217703802515391907142027602136556488239489236587440777811172542703780556285493940014269838292147023758380610085937014235314041828692351340433419433723943786738267001554055351137797325458576253624257589094546722395762391643481887101008106213765017897416548732401373942998261596406173217621524063979147583342134386706245381358424474070110845611076829456061566695071022355835182569043207712517273158221970752814605218154412956920734453224217281758358959054759096909592237107358090276057407288299205952568784420531973747983093327017322444285161435491392845871484564960793692253392940819623738777532972487110302346757376722579547870697736947732785503831171285472541136517010538334776020429831336581030403502531026320107356582985486801919062098221129913151370042422052630373920108596167703712548495468845150242369697922940434297058123707719809239533890910601713220856366694589739223341051975042742181775816939109747858380268590098850983564498363892479703055071881626910373754237848133897501129469393053173811028648327575006477625792025347402568911368700403022067291162073554319313324440643501485679015089426079021150461572112997942538386899464758220273506578630342354581296680956623273687293749312266098342703880383295225768008797187843396760895732776876923120356403663249922521517336887303255609199872975391236948968991228390651030277429633273813483732158068013496111431538581827570904193652078811450925066939831456653551642302252083420304535339272479333212766181094264981574504368288741136493167918896623931643402413368036413295796254957893073302050209863484178438599957857619749305635553823804918897721843864207207397488090673837809785980103875910784023128509188682928006310215336274191577466840829221223653849360580114898435037978214296180749000851941325884156954043546626977890033567084468570060005457569364282140123763292860569934549396362326682342476225672269375980794089078762130106238598551229734343305984290730012246775997405847668671852626634722088456860708351990084718714036288100318496854377496164120753015163535671739041911124249200785922983786561277689511726140626879887216897438070304551223478441028285614159159183144452829808135281802799411048606787054815944933958523309258288276241609578029269755355331080331437363308719291933445260736028775674725057586681529220070734775994884813335979254701459338080032736891843850241982077122003222896775245878385961987875340419742800090774920741845088925402219339844518287735677373654261481209378854561957839221532732775506803404300319455841700426320527385464087173650817198180143823431016423483544160715497076050547022153502517942438420876094760594747855995190468622957329468247503308667454653424812519948868999883305185889224449905491412523878486523491320865710257307092159562593632677525110104146781968778525463249197718022528847483020152954454046350991350625552145871884603003829541746732219244565396035637585179693258230421948525666706897080655595005142824069178111041787883021189879216354314603854757670224826720315917991399880093079108902015800045898658808327565954211850005872307157804986303622697341632704570388485473684958589403090092944550831632619034729538160098659596213837220513591501971439562575190528293648082948245007664981204347869995640718441323664442441613346214565987776258118673850947525276462046010062364745171367566262681363584898589300898150323485847480871483695751489263805323106465063386882604967994722322731325859909713053671700134653492447582433044943090847170224502871382065711876451240032700583470439559749712193431152399477811954553066773139797142370126041481565774014491058932449223495545508293175795767963041607823166606601906681758326418020527013988604819062600081616430921586340385896433525964433308076243032364639145034362626467260652268284369374293152737116572254092555375983535492240903052470777498515452174494154617924858606110159217936017779303163470867573571767796975189115664308839814862527058223433914691347510367356186337373644669130858440872521099726472773566067596291246090014922666449102959701828309156158485016533071385357414901075901526362532480298136197474291611058424217404883826436419738939729620229154906728697584073924226985318221743985645794471193649030138554497130444242068314320142269634941006262950933249666884661152612398449560396725873721627727243110207047202805507932187225809819533895098583690516204765785103446115722084789612161370905396924980452918186989115108035082865838690007819308000755929449238382952246262136380397713275711362717543321214587196360576049161378532804700834271037704214880606464360972717460518994209078805263708453677929719530259903065215659307366150395429102673487027334196542749793863348108974035388268291026105447301644120971694985310257676157145251040733920711536820318367889164068586665014020539360486789932763379811601395331083292762988159453502986608421295892613972713162531661779784892136695327386908422004470273928669277027706884273408772285614025236727144641609669055696671880816951699544948663297141658929315214927502280006797305319162296420236650088095256765850457361184022969696706861243947129208285789515013960571611403345258826354188670275414087752489420620637105251550146363497501204854206889766067496748137598808391990073456184811916026554920613429153559722180077427753371390316922682934276091104578548319631275072386791455044410835443367980124073289474775804158630007279107725783099464089823941930640240229865852186060460618095904692041812164683704635697039541893578486372637511557854030608033455117679265502371858111053900190884332361399459504424329408379347655220995494106993052422166325031812206130059926840264624179437533779144832014416504680631248102739484643793273482346436180086212007665072286147947073926668343972740855433671031125197738458956312439564903194832825725107437227008707774072383879247072384803697209457997953546089033508911314345348915603490686614095877762548970598312993927447796934114678978861713827271086077874255306716484966109656158093355718934686026832988490160336817579867449194839295771909944296798019928395895128589669891480489463559657152599145796379574491835923257463454870592331490678566552711665013672286759176411225237195981442328617342848045387643430982262942094901924933023888338970797238867447277801862491399684716387661060986069757810919612336862308728309755555985151287331079529093427710181739284775278095865648369339846139217980765178551451303671740511186853753158519105868938837292589262618144328225854016574260743039679179937063667756707158357779922323825736370578794348437523063759641389794497994934173131341305146373274785583436303789214663562835573183992508350650464140637555739117721180172632253004843752273129426784810036554487586544129428852547083352667868392625483816808442756318170821888991340744053754642950991471760409669260767175487768548477175667641338123017043224198279603587202492022225321252270261460155870260782852774053782235738898004242527919719373059471320852642668730769180962222921227835220480819253850793596282740275239165596779647781487455613907950638272359664418764452836575058539005369434780069588373963136782303025958973741551674786282204997351192330927833337440080131515242831354032744130593667401946710471529967293178080121167781028307858425520655072835012025962853787003025031096061757371418299587174237220361522177883720892211946348394716900734715731135824271724231346505819636614883970422499669345424498185341098174854962208025195631704799596833885149593093945398733899658164244063242943563541680985178584688506031607585994232617690014728163540527579102021333643807778525391523146544918241803530467888138103245106830858325730672912708580450687124930373489112947903904328180787309106858342447571595639278424362543480561487952736430032750662498975577620068733408867595005885734268068339973630639977631711089283146691729170534907849961424332679828167862135523027002239479357442090547065218402334796065707448017027164154594586156633925185523245926919757519840873836079536238569762019803276840981526181133270773644050831773653497833975624834831238836562836489636369209742236946217356318724922769422284337216496518496147356149406742755540304442095096226785330807682516473511071865516291513308546398034948617516211362752218768490640956921154853819209484090771198812786144778660652995230589239446133973111801519610677683034346758201762447530493744498425621972213449811815566037026941973899827446274230914912656786081193109155403952369916309566799374970577629596094487887478247756835698619904113727941787544984788408296894634628593157607401550750952697822873790371762149008425461173492485640565220902461620350396356582104371478181750633549358738096088802152020218039181699831596598297167922346080719460459413850279564853367451988206207402943450041167625420415992971481484242887908743749338574383468154214708172994765591754314160583590425305661961485960384469364822188786567056950044149106047672887436676083952119291151200810716186650724643130142004381077909637280575543425796467963740782314734723488515378596370415566878632284928584001679976064546542614383243217650292354769029279355860770449992974202495369235046170482179205765085888009549485979234883670266551939813205837784155646445570168019892308542794930808340237957757637693614548583731555815929579955499938360951894072939038264005969932406472469029388609869359486267783610821230165742044539701757546006770620070496838197672939009722305529371961335853928224933605576421102576764203893059823094190824422675528026794309839506201096463176373878149706725733442188228566430074469548072122169983238240127273822944116094958363299312904057653995716184982455441992196275332048330085569353474262636179741777979532176072589560788054000855142784271259238455300497317262900271410185566689474078762293024488880285125973705975687815184988514432253986016502164903565005607025350724979822741403558681684419906756174242326534298034784350715134495532506709091545445278567129196160024455778206960629819740142291120877478881950527144045646904066012948853709512605320182550380146778134270259243364735919430516313922437436453078514069511664899966681779080681388634904716090897308670964228997573871953819812384474999346801708058978622574870748430284936692187199123827389789177913795298934539104249191454793294409649481768339302540467406740124897934689583419062422029379211339238492191681727580521205730599277956543565815467881362438872342425484607620321648969994374208564477931054074228490872480589179830042405342207856991759317010300923122695471532399854329083530852434491144954422489920442096481838435717770640746781390290320414901900530450188705448349408240620143481516969730744619242569139533363709706892263017906633772741398340612272726081927468521483767659367900803812246036447071250098971021735181469417188418973294492428135096813987479002426053735403714577259188433167674977418641420097138151539113127369538598773384472357513136517915017372414446507093637744571277450678449597645782336799716115848982519661453623061080460641220287429376094201616760995847764729449503725819166503955670009321976479506081302273363805134781798610495309221951866408516757534999853634931842880408547355719750170646039154654877365582239741977242988082363438039692854014193368188980822156243303685981235175578108125822439254505689726813526828775159523454113113373797274406697785528491558152595178478099713570236244386297388421185235100810508838542569240522691924454851477482157410969640098829683387067425495353028198745077511811303712529180788039647084098819157950776410420813222682685334606462806427071872806424857146421047806352977237441100349857982084810743781392389787933370810790513431595233201173554177417562594980033865407756347542460629836871274698608174224087398011277666160266272667874684424676946592192813725623033593887935127004172307374482206704599838990538345360888956384284699476882705620117865246209465685353938843373524319382879722306603511313690758560463384473926008968588234309386905293033868449461504036087425093339760053205778566155296905410513079984185906331537497029338555862733605705458899804683722748695585738724636565543380403298641825525768684132199698819416325293308598360968584833278185393973236043118061108704074593569560216165220726671707585907791410073357530731445391455991955196265401319560600199332229545264916471873843267364759923579844516769617294262456273424821026022471444396910837482501553491415585522877719320223322085519356304440142434851557905961850454481549254630951636241388233920704402270865978200731697623336650827905266010838239773481611077669728906072450627401967583311056475790386666443988825168566267672825635331763449736116005767516794795652620880878330478133845418279581088111045765927400903625463854171581754760833736827758002293176971951353820879068738841892446451710155674533999546899882608242389112550090797017343034733096239547268838988611085323826054540925569889497202419961805186945414972840680374804389216379284658314718090982264471932387529149966272199089476599640245478562264297889192449238072224745959578394611027422518523754608437103445489863451655293045923303629827333476299062168973034987993120287337521996033636320396032196479374839157302473879082613039061264223411615038720903418129061710715068437563599558794435793424272504459352149914159273963956745973539794457987804472167744179782963541850804081323517653346573089715490280223356379648870734656971472880375891396486470327503352261189153768301653379157642522361008753927136041713572478645084104428677144103056091419458050932064996340561845789917481041691934723364595468432659058998240115016848524876870707647071716538769235275226068456204303493739038133823264547179139393755654630862905412931644614325675342121884065103445267829868177000263527459495341934586781777585986954876058878130240408795942895796981438639741189505902294768447524387455844524413004425388839085266817403227574580087924263828414970826774673339392505456883458491216859552822245456056459924041205580537200180206126996645094940473193755285529140884405428153044386735166576667762810314739029607397782138010748617303619970315168816141889912752576021068785840296687254860929234294183508457391832584981011344021911702689479293443350369695840922008865101449576748188628203055870565302125986960913281310690596919631226279540058035329879946125726106292052055006271939920129446218094443941679071369931522360909663763362370130779642771934921147429196582293816118584662558424770370323496589280436505341741175449461752426560383560925304199833413721291186347946076814301591009534767094322329697926831700376618749078149873242764622751365091675622844289303615385271832334491164881174876378464860276144354396221356161434963339459449361284901755197269522616944174534239636053271194567113177628958169943418250541395651674408289291335087985177218128443507190718947324081243914435605155713639967200489130330723603527086593306742719443211785228079319005885768578014556154338752180857520194966607944323262227530178708132191055320119411156001569325596489127042396287702271423067291103416123793417912717785649177065354755415367993239277403109252251935592353959304795458207014774224798117759465990750197900869876890422776562914130876782482546865275083828545106521394934841868205325801976382921349990249257208495238013623266767787295315787786781867064634313553472254633315044793070001687235552022600906613570133053598098442836983631079527643656982164788491364062030642668898358583976997280984950571763448948908505513085022335489322079279776437454967887326981150083594662302295670371132693827055054291264416475470557037965327117594075156402668909905523172849885282485964103610291939376334821032795282359818682258518867472291368554579868408985790917637880962744455064736402551114612705150698341678187059871353368039046542898663855433574209943695225750381468862467635789300085126882398700616918553641297230448777135969383120914474269246683140537036036524693810084962031865837201079345494856215433105338835796390856682441352265290816808173689080280257502808195013425729653969935609138148465281513821052678313094651953624656270185964138400592004452072913961418805958917151136717651125573482325170971570731283412709909601730040881639517643581293474980593930098523102975345571778901196432169083210241094810196696830315181985396879022841103667888961807535075449680607547388402553623464522625977159086202885985047068557071042050399038725166097420754397073432576010295371659431470768461011522839150682685394526503182710800295973694234223668815969081185885018099508637932953665328784686649069273478788699817670853920211094434043996577805764605586904789375007117334587536378293079698067557788637164741208802537649499797722888469065686993483822977365023366424473774725230399225768871887631788762324511864663795818915070272555976675937600220984688404830134813198191904081105286727361678820969752749660196175119908586645199077346466832366364372204440641380375283431915412096825857819346237262938081081386418846178061919774323172906469920962099953484364930660375589218385199292550654378207541468494006738870676167476419655205713497786058352952702642520342524347033268762457104696180925445254353132274206202089752300246710332693301039014027738809792616182451528967800494606338391222118337597450653300103516513614918154244187827036205532615541401100845315616440990492576066767868138169501864441765059120103115006153481300527674545437668173011259766723402153485600305014839925664064072030466548112862947048179249702266283323290463395905161134701860639641905615184225436434352796591893237184032813543658086691815089865083967782656330389912881080077793707819428159186321137585771254083075070342395946667586887133039159601540661530025592366689588881818589034378680449819647367456782987802009174196373654462600668414075013697189233009030600579723641909658085721440841619130409736938039052731868039263055613317099128433911717455733505618727415743190803794731309734038829544713044968624430598934203170820913279610466553780200952939712889394717444565837282217411095135564508466031380984153208579116441370565199225426476208908236451435184284816956179503442852752730026928806830767902099097626006778143397065643236231424851020473565024579745214831614835226967666118203992250271889802960141857871572160286683956774985980826973910217297221113564761023465807208806813140914727350460475398795359227983659501942039451121547666513894548432225998494784266040561815667097524477467722433684787726692649766001999312351128431814554011859858140052934410200446291202694173488032300945686371663234645246762292037996513450918970619221505401567403308070406157604918981429910750245410713511236632582872353507662433356237636723758273707243716620446161277425962510403255708792199950245317747789425463975284122588069022091407043997035007740945119938231799292300129185434962875062038154525727232434136408811786181806074296061524302584150312160367110741772428284093096385675350671103561055656540537980980300312724864970895677187666184423066726825669738826653221270828222691810859120977676555906882547161346725756704745447489197279019480627979168493463107931407196056543416321991058150296298332208520265082820493935386753704593110757560500734083192590383619239908917822052674092593100962731066255302348374408566078470932857922804984518107440899106414445061186622461983213680350795748216315684725509004028367382664948786662647937823764157093722919435964881300681426190114389639374702672906276213176812536812026277696514813085238958445110949941326437261586228176941984348806728745609450963299505066002984717537579922262514608771349393682708727723460425666220185017118743272722206850413534878740013741873128163596761253426839365791649725518764605514239318818872857604265773417287017088176227596603698734712301276247066127407024981651496708993154812668448737117315909102080296694769882125064512906255738731499760691191643008609222483037831061494145444351067973599250683861203386700261071767859619100026139787998524183887415916117561093334969919178612111604543722911178799382323392573323219244028763858204777799249910872006898915686107143074153033469477894925018186425049672543180717695580942832694446871475892457842533154641197285752201104341049970160492686025516200231931430651097954162787369789977024737877937981654207443146451281507519539578809628212278519111933247682783546015250683410857110011931775963793713068835846952213852576770346000129730877296741687659724111405285048056689473298063837646458599413534095323851589098923748600760850638567866233785103403974904960622511165464340862280651682106077046336855116283104598667629990314488724632550776544368762347452648154201043152336808465675562557742824718224705448773086791754111385404749864393136730780366732583220320310148991999847276336381542053523451426617687333600841486876693604857764402583513479401363437466813993172922613264685870864546855198518747031780699280718900289350860139607598937574700596001565484005448150886478613680120763412718828656964492504468247499075603634454874680708587644713898613607943624295421268444269448686484133110066215163814459046529572812995104327256914945918286075580681572835827951107026479156532645441524928594661365253077363411632277633429296880369385066377762502456820018438432792043371882935955022884729577870291118029897329421665117896127719205204811210861749314195830107592243808656768217674502813092768498274233530617247104114795243866551357238268057611879401661770806501375516230891922017476961263767314719422081969478484625081990090250910902567516208326047994198485267540703322002961484168586863225455991786264180639472687007590020451361116922030055953841658408365818368167841366402906176195864787410166687156606750097161952228168152301321983200979656808458239598346863134886024369421314257589985767410298863137616043157946550208194599308968400661597321652696681817296633229613534204074853381775945251740250946748637209941198273111303830816056065846803098171931998152272519465827865554671202836657855447611451458015095300569334163483415398141002388077833159990283498595735332150082419123565774487786186670530108747426973423447538562764288149978935096303697550961370613699201812105728328665424098829737588779346608175565756459411863468836131271324316729160784452059461519758900723711436756403841871506864429056523661233591161126459053975391015493921424219249118879850069811336870270492637851229727474562257476880827840812009482601410904784363310384334307342209249838039681638313031251627627469586794032235845892790266173857858513291414991287716523036129707740060957758598105360892783241586304433359273975219500997733974640489132429532804038428519539417903364062943199537763991996177021241670134482680143274521728083547972045324959558828547796291404951343597166008835000675684109076841679764758256517631181613926890940395231227304797204459387604896940474720132631346816886115595928574976423706174363718839858201956010144863107242559890887842701807522528563295142332392793745538036708070640586370876704698903571077567334238885070162324832481058998092662419906865990052001010618696912721208006144749462566699613945280225403804311719155937451439530563223061510860041553458973192752509577359650655819557143537812498729028284609025064911103745871811248612622832871645369268196234725840911393881421631204228811788246547458201348245058868546638636018388347009052811281795796319833766697773131251142526616471272815918327424412137819148859106043515590941904743014108981314766293462134148055471613101234066885701081517072859601822566748789988997407289782965831868500669794159269022324633512821843312566298351669480494468409487939917822790200797347605976185052446182679234544141400932053457458618955704887286088252049061824834465581156298717307280422734532214300434225297286744475831094129512009347253160395455299368911162886490037847000997387324533427635239521297342430271003699393573537957845412706548247527808526911407943465981362937506701886087869708512491435065728077866003655524674853471167597936270041899512910177647981230486739787824295172155356209779622916862827954978341614029811036684737544688174248376214301680331529719558679280610120716837700758303695341724875868674022990326891302535729757535674501860063697853761573772161225014628215985984308309894996271797376169954068172633766198861332191499411464860661057713914327219961160464858179939555094790092247140321491057240260460385597268764933610729389291482150858957658410656017257508646269044412989590952414919868046104789457505195085510124759749734056590339908869958658288801003375109461444797694739624541991425299757967647920093650380856308075104702509779551506917643262664475262189940334906615319201836754968786452420483938457865037905177570357018247292655797358646485666841920082916010462449205873987668883577812419978976279089173774201547561830718629056769151584666718830624970725416556423310151988047410207777802358635647668362073476685179221641331379881255810902681686100640045283577043256810828581335712031124038081163962536390107945376595431686346974638104330968768903730461405939246534576029058938861643293675733950766079377203616872290414751955945106243155505534071508586931869892551175011008075812794691707736393970690474108672733698843632672119653407802954331336740264461251478244216804368031983762373332268627735920113260165988191912819993138297172032691987087566093686279368226329673671311862481514048969677196980296689195135632156604833877874190499061840662558689273114397649084644226265130305872293336679681891606711070427932125414035325610292049721880819987802910668669051620252393321468455090296013488448559895377085461888182036225684304026955246618945952085885324964161065741983556233283305989762117291385086156335053758115977642577448668487558287086824439163607390325987669288583559798348984154040576906812052535199997283189652974962312392388736303986882294133656573331950518801505851682070606335504178581421622642373309240867461441815381250986300585187774580873855472770830924246526678725445251284509393535007061671451164544231790030892286106258420651338868999086256536734819116457474740858714512385527802593265345965917553659473639013104159093899101839159115924314142131333878313197965444955624513579825897531266675014245497010501449335191773142974258586857711465296410636869326942611339064401923025216373319993487292915428962277324925924224604376784584657639638677953167386458314471583198934326374425842636954274255698201984122857702296406956505973024319228516810182947061121746359670206556837520209350921599907347266343189532109589912138806127930461336027707356612687454771568302851606871454098567523003685022870327802604889900559636389458924170598959540836286023886019006952902451767526667150132101643443538146421697543756827840632821176119265696106096689083676887961752701024778915049441580655754214023359772469669472047760771790501126667716785896728711695103070497599221811820248784226756199791716346275774169588758235081009737517397410077024774465757051745545432952310516094226373408455664096583163632237845059976324711651543524500188612821481021009704292628593083342794347163009399762289352603723740858197457036365529520102125957879175650686909106023029875113210692580200940373069890393246131392880755623404962885305442080459488683237318508073522293023880779296768236542599276544396206130440001447053632500614284751842086948864317819229242580519200761977614501967314745935076997308351656645289225438646432542597369094538016253979659019680085606049106015108810606986690499686114920268049176814895355791451248580708003219762239270259672668331323015540804346951635870323863506045594069587231736278302545312114336643925773418745960625697294867371430255272901010937031753077283253251828425450083727410902144983566965283854367100133966333666830550251260747742052865770776994090061234870881782492472564649083112422678701550990900005975183192313564214966581271201980035677716996780219426306962246731701421975897668820828392269175643228784262141622253257382135049871788269882320263016351384002424103684043452035125796089915458505609924133895046992151387173676093413576534260177570549831720074376694949215998304858007912906015302137694445877345522323058250150519058900646840515057810361645566078060414675098144138374283126498584649668946276150006445172758372176336857438828633048061769672177742200186370676931397162218009221052507960298271936518225102054643530099109422065719802351494893084980397093844995840871143165398438435058778736530098655176852131079741001325595166594293927790646023591505901607991059506005872436134987721126012402314183912842006514429340269527233076145561971706528927057832544537367154533620968713883102892149806803078549192550173885326062659796331162817215960238010837703508612982332957682569792376607185067247633249034450785547636855434504574632442289984556959987425523797783842468977612132718995239138602614710783588796371787276874355834998320412084437942808839603245956847667796619198660427409261507296373769769984128152180932404138107468188294651999571703238207524484971404941993724050989560138938764174906970541892495112155329887517385331122319372631501436823395958256528309492127908393082417321747214823657710843635361161472995483134130016449473224439666970403806374903735604625934931601149578268529354795428732985495865272246501828080603294647782914007124845007687767280244136983187414393448221850103643599235293939970260984766521786734644793056195764570724719794048089176183869545687150996791226777486835542809095062277154339047773872352749002474609426039428796762520823683767235230904721221645774945517102506718480446836672005469380309334471219476662848511661570338575174328852941616202261341426252139435203820948518076760954774508005839036194812686390299100088728728761973094235463602286674817209157909270974799973406684740583613081124431191976751556850130145058356596552348165600316908832101126397240133161993429323024494357822916291465433066243849212307466238630790600970146977766218725225278077909131125491945274363607834777521912545219103497173300047945318824356844327716953539868780552012161885699665806098643067703936893166237214270460961080926072975053500821631506212082220812875279707221862457379734466975679017488014274529880047247153055326295178940707942816818910671370490584605297771675717489459431944454780091952603466115393353335206850900867528342527424280071853883955172598698293870636210839050031910567755384112012229685146739060255505922689173809689144018943727572830261072529905401530429545800820626325137924523305101027213675928748963444274958831143339242589853948203449416839307554306918439923388222474162281218644622419000360534241759074994228127676012493673956926095835680286257627819909673654577520394746735955540170264948651785924549512812653907599046030169220677659678474376467673518526828629307655625226998370327332394202664013142595996111067029876665779169267472200633238050590157887534197359686183985236646361616907748848051940448875436302238854997355974905762002478291757762797950747044606518582282905220372976014983161638956851767760541797120390212639951235783867067226738594017985077786367392946794987203338359637672833381011415198700566041072297113443502693906714138305924900644857585033852313159113504874399521617712455889728344964713331440410363829388464433012992448034374176793467025708152430553178797085502457657517588647530722823523977488037243920543571756798207979266602471653281289237408830676374483117028513658228084769097838547155777858816144370494981831679959230883891892527556444036357734364169386162397457650830495898653113715858549995526027182672540657552580806934399968468271434484664514879465306081381313392565469395502082359929204976915548467516896191080466562011628660487697564206749320772438280509900060270049438811386478555358306121643537484316365170273244960843253427818488196771763199822613822685128907966926940465069895672031930171734222606710234932398918606968562743634492061946628829355158716323630630129605001470283948432535491738040223944489787671803418084351747052498599968357090593120969156792858329633448059948017201178698892045060802736792143213447546246616263723577091009157458321515620924080740731897015721565270857704272743225273354437073316445272401498150989191203913785287146952402831015233295436817084023818431325486492299584629981432182959938880215005050501584321051084110273859492373206856947714355804114739177735307831930288015689199440689657384299980999509029340141472802161381032226919076805833442547732414436990477828236659593832678938954898550165773483201908516742103421093300226340766371402054261073407774258878728329964389662749914891726464208786891156430608880619251035358492089598695293857153183819189300008816072967821176152851673883882292325062981796387666268754634278289702804331495693690254271795198980289996247167434298362286788658779001017520112455335056223658651733648392215673585547151968627467392010116415178348665263158133845097571458046895066866631724712825906741474366706445347103234403957387740945047180994569554890541386968567517365346588530026209914130849264079227504193064368178841659777806572252313216554891196670764435909810392920875500393315172303377619867969401704108549526583913370939901434844238367338192179154989897918275610632555515048315475420258530968244672619043908354041489768562100885469458516206072370552647267538335850670797433086340163396938409980080910998538400814815699021491825271138582533428443648982914395014673942832758655716804581984003932756642025748709923676216941138232374557307215032571194799093629011415888397471681923046489930799951310392162429419334041033505865925901997281100498048814804416190141390924835726215991095093808896007551227012228135258775245577711198278592100289936843582655352961636049725119090701433087626519056798555285956902704803750665235038604798483009413283744371354641112290416658259940777866747227270624155787248882653707465414952293876023879162623925981918969398881808721903705479736669732805143338381420277323359674906481219758146606209252688733522197829314562550537733507131803450143384642199978011719929122457652126651055016516600570860080720465052531023555245689984207456383320050099185570006996957695989063436915840050888404596006882389353146466663793500446047623664487092437104179868901988607567983610952619385751472188070595573041811514606649451943509793825643456221654862575051190170619005673041605161181528266201503993565222234850872538011513200962205417295634597540759019244558519282283894987599474442532560865890459092507832940246285813683155563078878178195429071763520539291613051881475280463403834778584336267002832847828481204675659901378718111602044510181783938770625700002266610518984986924983880214737964315054544659455743279129423134465318266004776566000646891701846218397933018232728519876033676459878900025099925941627777767092483665229750646923633903081629909924638084698224988169204810959157812006141866042684210134905919216396633865139872734995243980921904832196096770735601214611903018185163862953874090222008605651980471025779861658077035592566296962503596359135059409402959193663731725988542920920114343768159961753131611713648400936627956210546004132005647837745533569464550583174504357449407781680709775206085548844047778252979866147748515639840604075648701197411927694925939352376565184430158942526781233684546427906610414011112907477775186047196683517259745079947894548721640389356931108530138136006103504208194499021635093401046098357985058681134165652002436170022280775501798316332379401399495968609058575886433700141126386289036098445336420988209711940955038168692751674388527749354941059121226436856995352793179554396436624425878704705102617141794738157042379513354130755417979931150951216724091935993974044075079523121448251403659214426731989669882185512775182476652764841745853423571553202868434784647648198518052727764323783085309147366472091372855089964091633519809208452808602825405247811325182655008398722419932224031402692230173161662929030823176330130720185422029987133680361346858821130193331092611626477272632418536132393263040402788910552697722521887624287136822886774130179594830081220402950794583721072218963282026714218052283405976721644456287370410640477898023313251038380348980366269614596117255151425678831897896908526847250813536684917496060732039422441497174172968864006908139801684882659259165241442288115120581029761733421829949279364684315718188349196986483352554042943800789077482396125011475656145059870367876739752847055934330760506447201328127535834755498723681008101413236860048553145343023842318852415764928336811394449307356519076421808698084389123589608474485104089323315642524456708314585245382409791111154253691544938631116176985895723678942320202757195062532382045304165005354802187256369171048477627363727191245210824105735761429752976976226078419446341408257137884155328452922293985903908508360932874840728854009816833421836873393886039308346022589161730209579637098705577804069791229278751856339271510664677409837752363361687116077185189933609504369989721960455145299043260779183161169730646959059308425505175897029342481600663072454637957465393510203792874297104309879612350450545186504917262976978642266916677775645131287923895316505436550196931469896670396708499987292865876745906152847273256849581224824567958807651880305933575488237719832855566178347743949856865439597425459652638084996695692733119626687499179094670189454150860763760911779966465803157978094575156641454599749385004808773179546263333108635685724956864471893370056424912986000865577188227772289308952624367267288130028026387884804565587951652599575397003694837421105208929113529642659752224466004205610933315054080379787925601287921537012032753574254808429671335965126824068068717620577096197466940173625148905259931461224810193247789373728817901984129510259379629139067515255699976874269762311957429627925458630643370864637289264851829931721336541851491448020850851498940175990584930438546850572137353278768949905155365483059396121801496220642979400679023596304995239226604048863540299909265947331720044488263854313019343813996629256523206213147139214144738533717306086274194462510590511209613930088508722683072569100119633171461329226058599217038161458330420381808683199203831439007659176633528591715115414408260702607132433645794229843277557797113096759962728108457695883808686402842942544680493293849865343251768416633902226164855385100153341015509232119148635615720398964104822116466121736576692160335586587001136329633188151421249286634122086037707406444163922706528643123790071947771204885540055394286407976304929910611878118193263408308976797625907430700151876290330028034741917402096076253313607316996857798308169735104900325159367928099209952309088266942050658386175994991717676518674479964753815021291756787202708273346271568225847754367772565179276456215366300694480949520165323501367444743690815607536456410486240176309449041794757093928059210441257895600523688855500589914264765896548455586404053974947325102751181397521619762526133122687231010550868647645218166462342854540915222423722324387892405461894022868451048594395083195514821203283507811867849459192811970077651283438761541324551054762845968333350328496180128931824585060800984910674556945370698609685894303189088421043641073846991646723739635100034140825468491981378917127450526121878456057069305446406779069892324870095155241838873528944907034637749570162940796768218801980748931431011848421787710441009713989323947136808204234069213807397955679390948537514220143049502697327842090906053694679996144598984437255400967245326717200530047122520270361853770085795166290768709696710965642919179643481739497018717191376009636791392409353030990271828781869799193814465515848890604595877725981594395523864811923369382492158476999049714699923366991828876875184102070240481991022190072794577682139876326351137197310963871053871204798662604592872845150146019405164549773854133430660071053058045184967883702811840584766459606675089503036816718361399473889992251182301277606427183951307028762509240326044448336738356755297926646728385078914675748727657384432525820761688294864216216785772779853815361679920397663221719708080253731220577439198415718938964152990628981736496313195594034706365186418842413077928810881881005400904394377191193755856713574364844265283593056322192274906643734374298528252092057022959422345018467053792304501292594470541277677798885036214277611631978267126351272227981382763218016108413017473575202318959685295188778670512105716019447141502971704202440501272200643881735749811627951613421217815682688663811693637960505018867284920635400080128835159521550026667194225709210403228400683950929346211470378890129522287808994826343030279283082772126375686639402449281353267929395254530777418952266758322642279926931752955598252439588000928010373768834025771348088151020146253110001938935519439086955270495329787695516639838161445733864417427260747349669857310621767072619268990365230346236954672144384903828114145774096757545001223741378518123195613150478247076088410386397341550780151000859393534647765158748336074079912450767912798992084031932842784985575206838475897434513261147815855354549567448180715772713402977651429309902642949989617485453862466119532992131018508745027783251989761843243686026954467536755657346790440691943444396805656997138761645772894859966637253633095399826408418647292741628857310703303480770577793589456447281143150074233346972916940965520871809369463212792613718997928743360431627295933934990229902686845162138571238255351650101245445717542723486393657898466543459089667170367069882521438489873101789144208686587863337081418165172248065504664855398188889866556388592012755139681702368392807557726207750160092802245219368577374125392497212817137123309286025816009557134034297056948196274532830574491168155316675905022857097096587575826330367425473127228620532748335963194107581076741698402100984913838940176797117484261589159705076571692601998322797128353140445051153361001255824324172043703861703964527332739595156637958301546695661997415817923055201764103496626978278024018181288494754927427445563269546237565439074029384644124262754543142542260826024705143447401549333230316089077492490446568436410712075070027380097307165910583050546484909000611865311939150801984722107121283158189773288015482454755225814765222217955434374446071743777543604274274658158179515632111238480860950634142819145732371803870082692450960093983376412915025497123423813996962983095997677375152480818053433040615258529875825097416030391925195818160808423094559896312363666063953183610684928810588516574451407259744175643599461173910428456677624697365074878409845563084220869395094370915375872244550300379997906927241473983930048460561066858669375999878338461305610243438176249711664163855720151052568126394282078614289234291206711828442447092507943862174125395672326446192901534346848562023648510113320311845729148466422590772066901992586037809572499559315343328702883912692087190410766627272892860319162544297985903860219219528090703386086411603507872008208809679152399162474868487203372616283781554726152687835221422037360735317779703277055978672351179685532947180618358633386311528324025378475145985899920323002770991332088710465000013430539276791421998263897332543143184087655885674153142593735224113821318112701753838288205833159998151403202557470267702361048835982882914800523289352049381633458250961466794243588600849146166521447089407274418880034975864323282458967321538604402374563757013243646564437116747381911517529598649739502327635012428727475768667441274155656871122049127289842491324568632405138752892818309574548712563478419653950715141935250664238765119755951731788927835851937900839824368101037117312974426322039827966664981105235066728714091290102370591914159551180550471884535639115608261644970258338358039177167341617869526750408330038786340437781958906272608095196639706880060354908026700797444649410314051077487883166754076615417201578917348446740805958945560168501444660855436348443216496035399400166184659772066923547219103485714115366745919704907380129215244833414916316171738185445151466985856158503694481328603398669941586361710603034572646693013474223482499749061013681497347253955377340164170230881930842366137066752621362234712116335929461345004922628155034064983223913080474801646234115139419359961758494773724392827815096165329309244684042026866960117250142844959384372045800167776178020767712501384008927383684465167955243636800675103779196263199329131280463897795541380339045765345453885036722368778781694500783526344590470944491521560017303694014972975027820216280296762968731727340778364823429616297915040536699962956547021172268243412096474031498110221153831495435663478261022418863202744187582265484538374559252114957907174403186673463630502126880921582787517655318279953506704013211713418905538820349951200227477810246904891889387576844140897050892901534761286328117732206010578353686407696796029393006888325587506774739927923558077079083480834165537869088161494935854273744185777152177739215609195660872157216582240043438800214188395647310121971043600347820816224309748704031563591506302738098903739304348669940141776974447534334279845454609160867358016598612421374507889784640783252797957067794534943660036686745662750524232880486855769777740554481381945120362051482346029445216689865422541272800025445782207734938772086703571416842289030429119148379232961681746015543284592775349107562270189825473742294567908613341588133169252515248199253576626871698316676364148847388654340096117481036517675546020196378866892191789703766204740395929979168097069784001967276198810136312448448263981571621119813474023695311704089195842410576352164217173220472844723086713658944756662040021678279230593242368486106083319132564323006841449490304337746430594621238885473550972067888043367660299287042968802907923895951683788197302104624809418551803561071684384961016201791509178504731969035324664323967170269779156426414713899986231755217468696371612512284972797934745024658693438159990463895758515243143215284170193099128850439537985985484302424307466073572282271724445478858428896608528983828166227460955939694431453138825889222992396759548627232798630976460774731182392477935482608879978489684480000102591580881758082288752196743132110567699804797156616784594805723897677752975100100050286343493368751929393025866800657220495579058485067291753248036647808130555178105021902062584765296013683257059926834177323464770870865041702931486673828867222241696913173023284819274649838302813034878218052253798832858121957874128207481593374254852477582405192016773600313119808339115481220357385423372165383333091707308684641572194868109521779250372994095912335695837856494653484096334582253172226175469262623903936149286886728950192091895909607630939621845547520894881931279902466335809255341565150264338300755785448136572590933817817474452125175535141084245215387538936995564585950193073169835966144295434048809912782977378616943338500178971807085941881139741405176596270634902011773201579388291187162727920544137101494993848435141860199831592526748220508443072707062652054498120751281371323033509068740973759423530239769093353188286187608711287239388209583439762606354938350090703611011415201226334871782470424375790634472407550801645949130369211289312432707988142707170156172613348178547675766977942102707025096558943468133261964499850853614885140372181028448706147183330743474533578735245208213667841688101204227144891573190859523386960807851980435450321914368012351903424141647028180912242172967608629244401054784222501129381196367094653605847523945522945045422182360989380430580264694989104889310539648850322242200522759196427870906340447149396732651720744172758094058736762902374074373429337291608865932269405538448252803114012071236812393077567412410946144608691311489957944413281423429253279676605295145025654266540312925234844684817143153103355316388479989827892425768830266350414041804914453667944668797238239563919436614443365581962841762982402075381118448295422289680450474140395025337781504415716339933913365327584991078161384180839564044820109056275454341602797777300640617126387971551977847001421559222726309020762803870511149807855720430064076629650370920820129659415478261481477394957579330631028857377642355917191599054378996632195428845083102098883100492219658450480983589717526573478892310585315118227594176756694709882414523013061964659527866495506569665184899001528291292580361215468564820842772021465344743376699180929317241754285283509902410583658687978342560412450905153670808371491264800783520872064607755351895122256746481016745569569727421485049142574229656598457912322663226703595488150855310588084394447931332978829311983491477062291223668981365753545502927492280987388132051497312885189205317924580957915612545014411593087598191781941417555290208458160433298931756939456832400307047222893878113098044776786709893276284005517140801767844128002204500788487421470974155099478766963734102041755353923014244683824206767853066846556056029274166619809261267969070559931097750407949816165618772205244160590905211542658053917013426719093737832402730411728642858776010979446315977966359071722039638279135469113472193246442628952104156847217738929696948424364885770945307027358360380829116218576243643166143560966343759605315793992683204964902444026684054453250763728083813093115111390365274292655554171296546687570335670936133713024071733083035937437399065953623055086493521871610965676731105588613011569211807337081073721660213274459553492700382697983975430361537315306637189184490539354539802064400731175470555082374497083789689642587548536582633405746029224822558214024616880835542330955103203881213912089337507577034264848932598592731900375855184825191557031752975045862935285295860624920631967212999051837162632630482163927490029280837265058489880037008441221447102597260373443134901099175232193999694607799678354069254847063487084540538657237848103948178067054058223492819092388640983178119631684838892213062466237105419890081832621438303659293385034564350120697937414548697461526249875389353310219510066254522962440625740981497710588353793886013888694455854905343165734669709253839598259606380260237593232531085356752781936291964847448539738172111397728476491217649262000953988727642882752271017892161385913470797483726772332522570186257754440417059577963907297260351808757665698126858510031523854341158312536326048223155221256493509460297176865061348979012242302053530626082661435643320314838189555391036025091652717573022013557667974933910922070037883573085368829653118801297449430604696417445906715653787864200687889629380598603137231274454384966737167198636041771268534070611372041412587704771747326451728743956469801605111215935855574418370267641647297916517304324583257919485453030614388242090656746227066368329126405346122512532851403785710423478525886193866976695625131933466671276920352798248494210718293873362521224262700371605320585971674180862666746065386179987870903238189046569727623147759146384600666289965210200363251768974958828794157995626872078501222827301442789625273601957363856594871497890268441407458547985072159349753172000850467897048355820920391255887757820778766339967454086208341115596805101657522439452082395596889814668288718423436290813322382722785419625082602626514215908122237688639050240481167477867472098789312267941182742685428815109079494770908565342627218598824949440404275686099231164242344491132930782119757897141718587097794507366618506979401225251210434596048060488075990227568146849007240923126518344877679855746086186226821388653363678469293390216766025945967656555328708799419931239910032011992539620042593837736371792491331355255842041963667067888408417199129386547970103575955034235654413619264503325339647065967562742164590202618210912550698536001696128303333404203596093227679992694645533163863425651320517052490955662765156521787295686792252032197485975278235273314260203580821992339111853271032417826755626443004412411196351022321592007982849748488012450697416546816298716296258637041188949258445551461404406414962112612051488731048607908923959035597725794760672992434890887419925858342401567587957619369706025051790056213628282714874678081373694979926870206285317498750824964611316454527755343923131576231087344769852534552657715636448334550284878664696137802608711458810125425687294029327475247448041547639311041025969819641215414551349324757152856115466654257675980137645651632220461479394528179763327966030989177268193556324757018040812508426151929457896091937044658966616503602744985070097369047251139250407075919642774951930776087988975538430469567196804515077048463333036927836865445751776126376054286927893840304813765995865884053188697954646555038530386496621098076414096815054877651087981288635984038562913589148474288555006667081097915651865955987579453293180203953443585903659912482627498558401006525409462577488755226191883903146749822119404530465568535044467536294122790027114820650954203451509909108928719916454500430405269849677555523235795471000511734034151432404569992602502483055023485629263003538080512819203373400143830886808736492584306660597532315879397858638466951990932901119618411661326516267110565047047479080074126197044552051308391190252148617389557509048661166780419998364590915269183090257373018007157541859519289745490397334476287669217442368065646741343821653979731122250987822681020061189212831514767744249531741771941629035322184689372947506630722465082697286400094669014237989781311030207253433354350042527791831361546473342752554378380444348254053989812402003587226322695296668163643407308566042679206359574465015637224238783827481542949057281399375171116720638871635803177199112696381278880740503586454169158649698595360870522542028678992233916736966110595409115092631680280829471107394067534887474927699596271389630225478180471010837936376612428500771350992995068819080910196482678533336945850791455620485471794065035100469385626897703296252559517533538099301687699059847685135789464579424876329597592546238019687578305247610300541156244398127908170622875567547054997074400971627411594264605355662105340615131179022546389506387914074154469908676702488181580275146075432861706320995367536419234039555041544589160472245826595932858499654879011120825787446981692332713460463676674594350143222368094906333347219939702096197187822612742734574942234645425386887073525498286657496959394676430104598011793304177843375550597222714982139202896507799263789229463947808467331134079824892302831898900054547516198061545536242155916087970327493463070650703121953076664416510688273324649176599483955982864211133526759448466335374822790762559753559588495898112978911857552760995236215092829396061000974004616327705419925809077923874099700374386668171603081065348497859055925844326848992468509079219261889648291628635361133180901798308714811489096756000513282799037563187749519291927278606117083316584372005762738742980411958246561544170826284377882619296557457300615387377359850896418069373584223944546560233576616671814288198363289396726452314546999116690915592978051124253443417346486730544984153883147067659903826922875717317750477131637701643726031078425357587778497813885454650581088220403519726455693491924315284175633160039219961320004363299635365303535650368531143152252108005019499510130322949716222953204550615164614693730327743201939377262759513553489013626257237064187121907028870858210142397565775146766051608484042486357480333000797764865840594082612613678324894703654093081356565837336711516232346512792461560467738242394381246035125709105374040969278181047338356948477699177236807912475096166472120817934565549412539714725770878376282476129794610445125448047249076304856438798445420923655375386974343794776858832168505015295088926557515011422167060514166049805932194135223850690108022846588666368322970707612090766758745403569025639121611850117648428138825922589425149530747169373813406956632956248396046220233374202649923294621688381477274937829135948714136060020645856676736470232023257008128695824953563945441149614323300067126288991738909600422975103946482440942316515682957338386178072854142708653074678453640170624406047540868311839866020726159364879006699713509594044519838856749534185956103408162393103227083102942912799897423520338438072720331675995553959098020882018569953427375881200781091136254337172728660131058042915495046489602640013513936784222721657119510432969120669874111786883479004903489709502251553848940505859407158315913224042375355985919134007392484574051354146694637347684870361636594439344473736884597372976937178867398151062090468253784099250120709551850255172378611328617209649501412972041815470886007337740392616851174313454138124902384039889763249712145654394052295020182190099297782112931337039719773781883333834527533118387556052423134599857648084801673215432846068052529582057929616154626584514970045006234263763674228728071730556229525893875988062452332532351739553431347588232442777824817141404092109328845463501896865224857733981762647076776659641053848607258722380975000043598012575773859834990253741684626455341453793689689177509706812459566649681974470896789951921208909754986295243966617256007253182307555776858142630992619110295088756845361848446553871588135766846553419315393176166358517057184546073420559665902565423751635710066199179900080989164177118668862857944568340772370208569679253291647504543184112407397545642162250864772458239949756646233580328493470386091406266668652800949438307854187061748171635622793389040238672669175096327259674524395319444989604666437134969255360293594740430694605435535087524469103007208654623264867069276528444603419375839435427184102181207575217076779426240732967817667651644784811275115216436350055877711267676571421291119591126604703084804721234935667017630025741114161681551903504396279544477837001314596670518440402436083582089147622092152288319737205978530576739030289162239548356225905724172471186829977990985791666748364342449332585630939545818442309090317398135446064456941053464142270004604374999350148193335737887066969016845707536887779638545332157627840401709564562029040325830395416579793577176096495037505911968200064448106696863343591626465573621712492084101770611607499503716826975540487767906511998252770626523394989693960003581175280480922046265838934604274246731815203454349226103270111348256367380195187658122002811913630518020535919463648702021514634848006184829919143562852721072247557385161204668158754694972647302828626913125086808600691907277419087502167344949284358742929758639537690505593799533915200422327701869238416617111142514639543717008790218548260956469520638450262187340006200907195963300907058966415693466192517849775447180470587483048109604791108893668790393445329655666261778577611014807423154881070685322292220289616558509345796952002935078770325166755265804285602884166790348994023648432877938768712031645388668089636543820403374352016614299093576920518789556094697250702939879742458583016113298499805237580768940367400062003799579662824905809065077157799651974443184626382758624782563177929646725949483332402537253737740537698354461962024418887795434119445777545949568119578466813895784833300145040314645786826577659591922329630591384146434514437685609278416184993275425293685324606081762233567018336800226217484495240025915693582705113162049008760405115681427398157053568106883927679029781046339300623783446437968585127246372618153398784677508810054778411069224109752064831823668067061368293904626070256498485748160480461517926376173614997032683819006255869935565796592359744984428802556479446066848892360671417564079259184270711898710852816779098413420467707050518517057089404733672820195860926678460197342408408465202085365207970121975913472602631530405385983090922689346866289360223889988610357946595160654343901856232917865815517812027969624495333399204392321277855976935373982833384411433176831450747697438204364961418026161279768409712962564246431782351923452622018741259664602992893316081476588011249731657163481232739437973727371198160194953279387365974557570053939018277810334580481588049902144275166067682103692896985252717239777782992831796426768788982900589585741225128147065401845088861938154987561196617768054019798665433342737571753870646023298819154961594508122494584253634921589973959992120183992093926973267250628094463701892531386515873345074589840549387010607810767667871285011972920196418686203259102779448383801331950438370934230023704603848797167422049460933323107442791864568290799560398372151075950016165430935224474802140277958038128531999113370285335408061750929851897715636845404056693775478524100514990826016368638224498806629335652339719931907651846518968065310701678128066636706878364052882543846285255848665974872727857591332688600388586208112147315480439690753338665705636434516727900572403039425120836435642696844920095251441516913557944026532833750293862488495960260034222236577470474346843139920872417270571914149623134866153410745028345674999013540631119523044916416071359908898013117718068786335338847722768568760907773284560065322383607856288252586378121956935394792668775263426591668151070797902125572531307228369848937650495929601169435140062860102759029420462429763573501396424256852557883744839808276380310195584402821313426599592082807841465310061762479973785260674562557740004469390656727306636154077728120376204779079687233790953400939679695043097117740538920789539825868742919415451165090914730803038974906437364121523170621605158071947067143169041379103861097630988136202944199899784560218798023101184378802220650579947429245864518840537507479235000338366352638139297787099686670625865331968453465803931649726642045849254188934144010800424661120734576701585811899256898852785924885986440902844384543185491158228608388907735070478462410535425795269905986980931946302696391737193100421919505084729598839098648488149422521665148230910465622309322324043920235872292888643501252437020069554144412455830692193254533248048944742642720603347737644611319373037951123263017877377941867690917023468051245885047726408501399160396315484730684930941810512246270392712820276709165660400182729275980289364827857059740336318166239475762403357377484110368291938657482856629809234181696040694458843314778740489713778561261396880422878416144417110268231353967767280886934957790617526531435101847870387882139478750419457383043957450285444572610751364646891742531935219044592162867679597243885634376287283455562306165840704996231482363606136992398870194997507876265105838669644415153751224717491361771338100354508574254686426007353030317733972151754349911069726741284167002298378142091007416799461033481015559345640316239425922641486214220526566189604929525190109566273347767808298543686909369052123663729225712936040615227969800206195622846197645149455585057022494477023740562340512032953985759604002623108803005088387058958979430554652294579046862709795494116682076620018937241039194587063447605333082892463372954043372554636859239615509988874096035414470927284688002320457490034532863984152763453066365281727719366319552111409890071184869755804191838395992229376458877653698382660279372587805788587838766853566657531063243640147067150449022362543299170865682268388314239899446109781819653552267425927290342035069808983878411083182209663755326448769004840489080255360160091325862582863460258018622427867221207850619755692979484052196743061718734419716055025867070856250923142494928541971417644329913351717307367348452597118200076637215030863858253914069566871970152073897796269200191212516986097487899178406196572843391809976167699009210658682832411737506756236559977092419805577961413255334619155568448602525574542615991504884293582833859119405764285892107440619734299364953545750783722758709079174611830610975898468126171840434580760981776093591685996548758093024658026578928167432201586942515733412054862998288884625354636373444398452694770467101815073705979940565957056533140986816148450276594301007656303390376800594146951465825504196836801535432013022119053247605414640679028281707612227733459366862124088555443552110509758712657728104908401505221053525350590745101179736789639580583296058799357562388468544549455835092064501142263406742108974982643846124067267954509463600406905510089553887779689330946474071533400392122021943671148560512643674804825101651915628278291699657629333924773749425248711407484830823305612431736576833317361841795211033657491260512238234802441391256624443805903222018376929705251457978818378126217072669104060508865935142575269488387949887834905169322204894177417341449518632615105686934601262582505961359705895272611560025476539829932835094014903804302526050220620166558163736806632025759810796267303960150030647311803256753588270009970928314535390163897552768238039775071462634883488834779469936529552482154118265056672684862226373517936331217657775751988521368635987629259865188665943529645487344238770690533340418718433024602004667847827762686696804552994949219295172642029684521412376007456026103676002316795677992352200818437982419463099289846484426788254342236523700512722966016364828381842268383519212402276501336637966749822035294008006966483073809560853355395468307312692565813236874291723437504705934698163122598946980751311236638209285967050742342704731944691751722480737011155659760310599161343096086095777474995793489986352116310950044553197684042788256184202296033466926842191667680912682785203986890640984456955245583529524531887741574747659078935440657734370781857548917083528291814499036179828624574524611170701350838893625714985993081888790462943705960097613970117727272012862664283829499391511081863510083379364576748149151666151706895225711825871215397786994994721220141372963675558007088999284263059494489713551294644923001211160211340745006746396847766328153468609089941958058040052840417079665709555773064164673446130653193892820321628264618322560229977108317479032166418354943743965592449584195662756314838066856765187961022441400784032262035643642389506829870266821044332425511101763534871742452038302411329226012478042347876777079620086851909921281650856010723517124727047023319126788809700433033897967122675824225628555142594566784682174929867676047095076836433854949657625756768040212620562945065145720109891249218675030701258461528067810852121702032288210744511527810081153286914040383362272611985678766768673800199997159116086789260341266754398576516491104474401774740090374576798330121543234389973360615573242783058202491245986539921420490789405906668215192141150324892833499197399951183725858878888036941567738434785466001321313137444290987359314898403779523107445850609210837683267327080984943122832376763589153741663185318686670341689547878856020483039696974567191603339541213853774296928151826565385957747186824761458307342040490993202519399255266106862733510735721906568989744580396227964341263507101016185224015138225792809423507427259755910372666624760460932572125632746671623000931476258644353480838526772900967537771286599455033024992837163505045072856711224269777669220456326592175470114871318331554347982585559171868564031927988791221477853808632219560815589407374710672155370702347788217893712308908518919611798658112601632298931471507560013188015800539751232460600562920372838787742048611588562496240511448587175988191468907385021951348510778252920234670965176222516810705476588247714725612610469261118253933341037873794543042945292175110160454624588422307113075864525915608953139949500742895246217828906941069903014426321077424198279249208916675269335858233788832064518476325745751612419281190190185757387332103591526570402468652195522617506529503406126284586871306805093447367424864165516839889349365497791212678384492831526278940914275863750814435323901668176059440823706789439511151102306529789095346152992962253882757654328581616130150385624502629643504246468064937189965705844571455670295206950443929863310376092820876519402064039846749709226431243324660436852379850464025661750635050703834345613929156703314594278993103226408872309710215827974771496467460416656203069329013094931008857633647753073532979533357641996715339461826090396322195177281702643344588855753679161332921183191649357723163610760764288458175142977102952987997318255101035324495018239353012575504273602496572302422374114926332846023062633142985297353059826279991831819639741016305840037322940132774416042561327873004208880565892905065616220016582853672061376530772021061819760520702067846866792490039980302389693153832730216810400623897855605477442106936100631439013854176427603033333169003906876685781414216854092489667215282863296124829942080577277590396754910397051405044060394855196683683097422197731032668678276601664078641871504639995118726817026401393264554599040229517492484153109732705734469775968149437711022172754917221097792274314412161938250004824547566012765721312867980711092708427833423797708565465743526689110084985195424656505856894626293357583230117277814571010414080879473040346005561580961424723470901595154844591765336544262960949247058898604672450940223757719866920717009861083072996210001590222809614608590852079995753070847480153905558672988208945861248872365740900351124059837676660794359076673799258759474314338577095583114367294545193564029881741581142100888778645735909668185928075394981402122753602735937533763319600024282494517186487202404991600192717093463364058300694763349375834225364063652561905542792206163997811836139803622919476783974851570327363659764087012002602138323209298300026803312843001787802837240768804592846535180741364774237140971720320069499243962807101009659397639933356150652648080725195597341286330530045040432644257685619686889468738924487305225488723756087700421678665446307590429552442055189686883709250579193293217107512148325387896279737603436094432666619094146139403971246551506093123796659813323063359284904791970603184522960853507126080693024565111077118922254865460212299905286634364924002777575388297646269618846246560545407067223390616226964414840672352975654538428510616688421090126685585202674245294578150159326148658330264030448983081952912900531670614800524236037901548857736060698904186864215852461209570895726751356331815567769246085476869180554737641757530718312173138007966446565981638373142857031575720054244152525352897619035514273540921857568748191273345473928860100017435986168352889900683160228440887321876192311920062787814239952404469630483042930523676139173656600243165938314443945207725054034412869780483822097220933608211377822193240750930653574490385418931164988946760462759419064272727654310732505435765939235281318767553852496614604029933373377216805659378202281052951123373346902602313524996124590739440806401903423005045844274535087173811740134984577685811846482420443433973109721183329414219267029347050385403645987119755803289016450962635815950697298711412845084622033286404797593121566313019116227101427720052474949341654686375170712340650368365648428121748286876671183562701078025262370788175764047558215393872769127278495902591154262690224102951022820972083797970543992130567998126759782222858679206222119027399453554029807447438535652931174283144616240408225973483883825682679359942753679509242429142728914588743344970149147075422848003345797463871510718083956069592882336595079307043337244010616284716915793683479743416334741460362143674932421727302121041286235001904995659867543694586302790708517346395904250400312531764473345489043793502073769359747339290102935976931916238489422285933199286952434907163332606781592991192634909950621688371798298196466272615146528119859073456254648359213366245654318768950217965253007373512233270320413228509139580797312452610497969648337795683683930102953831932272754152948775481202545047363507064169885456032227007876456879490235169451772479620964257025932557442953230187433794060804506892349511816693780244441463461007790663453078902545109492244923548140167460353211055585113867031248298273453742940668602632587688903353232586938987514045513428379365113479962482833146410713291440673041838299154827055193972591282415192352962675065132037813168767276690623290433790905282431960236815364397562060792256557045942205053561684274708432015605913294212913405427356768606970405810104305031105661992105905458057666192078895262238060988478927919112415633704488778241884583078621160600510730838921893118006118647877045052861551524820638727985821115632392682566777093964877814669699487012423828175431138942661363042586918409726530957593909530814251496771724213293138475885364165475065598881487371533774026767364062756404102344566957660083624718467938531073897514315465123097094434269168358387663978405052404998418502285647386506526723341922184300276878127427944887219942578470881225543216839120118814765298605136101233610959828286443747317808905839189195822337151948347134995493592039102509184797908719396041259351272125437294315617137436850302587514317856781285832683843599571205745637928446085082884540061268472189845729348602778609505594899150699394237603501335669005686363435322629962399952388838483076245326223671828517491861740151613795198186006858829092655416614359578780386730420248223747743866599257164698760289017912136141776225072714361277851568931201140700497097070284943991850484530835277660150383177251597948922628494815369213929505738065729209274664566949963754157350643520362273058323526338947427015172482439357342268335515204758623373419749331303651292529070669691013889014328692915049632883331036641402839003897133498010387670752341156536896073317088815312357987482385150408039911602609109982534980324273114672542556224026517586705725510044254216598327280022992426152968444451086718666172911959899382446910886113860583779508247239343368818696377936401563966034350017884065163656869830896005748057525180099783602683909863947572282799862830061586717531301054318063205110208713224547057375774549120791426482217660645890427470076521918752681315456172670084364255462181146310650281272780426322932514741596722869627183167937758678457368927934794120811123824663065764952728051743643964314695772038922130479241674162694615505072084085768669912678462771950767530729493577837520870813622086781461746447659788133878296781651328612177958923701236534574066000952979620335529661112183316877179351334829710416509977066363214299406185713781682487122514407944079537160180361568494971951889487885146748667026748098277946887687528470127633265315985028133803643566354937123220062604318658524753520805094541802806771478268591655147668504187816358067384120918869756640083261233031807433051593432663075446601501683036749797987641574803097594775340538479396119589251026141436062666584461707589911041897062862269716738524736847284752285435431306777807225533999372817740016309416910953883580282463766459515397663989501267631298903964561026284842512705217047632966704491481250741244270707259089064230021232131567500645359206374030968681879610193000623357547070830221912028787072092855776723207836360066986915893809832685882747415937420066312675837478101752568116621347633367436832836700083215817821750460842262891512707486480331701234503521160174055347316236543117734461156841385972812726988815807702006264733359709108354772606514364550047783105038655106971175954260434558452051520642133445152135174751224182015293059326382504041631592214824336458690071018464244815793186532837943353128041609428947487069921026371448865704662753466350529673570389292906596858285226445466899429446444625754950852854620429331329475821808699873161837443047342219379921084855595978175845881079806497372711367904245748989897532884652088556781836128682230761426892275717683866876361004769545335037143407073346146565579872162708093711356949214959607766271433180537049902169279265789109490530268734846888005476373939161631791743752641852449775679724033977858565935467696058873741536596427978109922941358307489255689390316046976491127301556164282236343380728461028983292133982189887503015455011123420661967805612416344452825057118642583272213115368106533207801765261600943591178210744786070825329007798016241016244664115308625421141905648072435434361359603274107958082955976218552846131274322649833933439071606487445518985655187839234816868779446567073183912881812038168971233525334848161678392817576948109692223071847532332165034930085490073253456898372786406252298451244162198038054606151747494252447398758431435002419238011635664213117792216905256579772221277207155788531681759088178846696046620316981641108047364403890134224674868697315755194890045554642472152157215514496133067290530905641774517239158893107013578318344862265622184461858326750194275051639687879822852901865780801085667388693832008118869018708199902106053284743375771998768460556117042332985333711389119467334772105871055660188667003254490683913072670371434666224125371891463136685652385885366144962175179230926892069741544067319404362378662447987713943740295575138656796795880382149394109659850329481044925025509234199945477922744060895838440148322411930288282838100460404994753309955803868432901921354067370034151907646629045053352519270731684294880794259425095667598265659101446376526400759770689692595518285817907846588901794117051706857165955877996650619392030098878670898478010094066992310817404674860676450568926588156615875494675886317712557407780342983472305285055189310950091398419253604159092382692089460674836348486045650025065569850773044381369193234536190108066070708304348579840630461918012769165823661922892580270339256820031470472397003995757095281401358547315711441483780349963801408532248457530678877799342536855635814517690992593146903536665966223349649458244059482918663858684518888208067007924155981107087694685745120958911439305404818112737890648188894777489318681532757765340933142503830176655841329401462309672268601501839559388630794580760549030855623924530887567483430331947507781069999187750564029685963253940247634178450892023910461562130278932933636428369967404564326427277379666217845415983511692111376954990582445981276389400310526644222436135630187870234297350805571257009699377980831058760463656684602209727800982157505091351916885247631143098122290174902048633380975320328456405248501277959945685004831747637407461349845612196659131905668729382357256602256722960416810457137402005041700056225462791853034364465114292901587556968838701360280977640901230119822705420018819075976861295078483635832525865193760789004443520522359342845908402209420089961154811905317328445037286360014808264962917852129603717968118562206942102444683055278938533335437660674884536819875596950186742531779427225668813935613912131309713094753933090917190773096880052389188706144540300875542881903094299220086979494819703323344895660461889984464134234337554369921147653860415740932205809686531781034972832005927556478226231327856420963423413743216707663198751431053309665530037483789799196139020819151407667716415123718306972377527525641793683734600898689714222357122652655299945235661687275084572597698898750530121069210632290753746976184853678727720452943592635913940112739317504927200721915568483172383720878313700082546323572962373504978881402525088549985149007793759427714621017035453386961943548879636376156355774677640836072612449504327463902320977296291214057626276308965291468236410534136937175766787404800416285039576598222521002902396703521458718458709341580895793404350675219367115670909457555442810790275166845111842104376233459932696714519574299784537707632335885628494748122330436495111127783410579186416438394884285184966139810778956372843472892811585688724876959583035823030843232724373301016770981904408392752547029847694685776946682101476240674699003039372421397882440374236071422386143517089912206276182668581595854597538082645955254565550063332131788818078720881175697464287620183565006993831287920762327822816789215106733012174060010104827602830597383699248113084271989703864336807267348816030018953041741369020268622005982313432586693980244585851730805278663180675704152880576282243596072019763890541206062122018274341703140726976701612153846046814184807901969052471629478250911229460588571244366051170342694287069569439310778136494844198751426192471496764830486455130084190623101050337296774480698041699917020102930950082610401725272039483121571719009335405575695318472881196312372928595229308706161510545622249992902296334654597736222650147152836865094912808085619181107868600471878734851535692104755726515858000780542207446276679961035172639247720902074773784174014575836923343586904675079743598735758785905738404355528310606421622580345722651087473826689905017181223318157208479639300345397733546397072714397500425732282769795774908095923442216125934095503514188294640605227725116321502181649833422366517145680048318157623000105973748057912799754542586451027141993119475154581669315466258928897387063655150645290506059036291782068029593982631139452591908271423075190602253840446258292564408603355173049650087527633390713382630332862998230103742845346928438776648423226365356979637478763709872183143567254399165496277151961581169358883894648519683605776807740852229027064955907838837032847079344958487584188577248889816666878975086104688587783324395695223553213075760884733774127730189579448472382088447477048109211423405082364977612295834049658083753145318355948025247263939010183507661597417619781581811947182957352081292320864610048468597512283249797090428924260898741575159814105120238908395039517632274302344631834372020757505145937103789987955841223185520427282619551319846336397224197857769112082148054653008524105026427005310987965593183593907211847732307089900165435024539728575127682048977381605421150956458775086074520914267831406533597935093127317531090489883855509734351374039565437712954245421744863827284381265987875384894157571899413442071667857450817733354842794300234243654014876472473363023022997861946753242060500715811204662460533601123162280343023742004790508578368779702128973633232169108790928956557460930450819611332732238476902219602142393931016944709579349349147420297191453636398777991136518939836547532402176537612965649889471459813776035387542850413867767140858288690661792647996220710874963212034802122447159746690721853517077260364404400437459955871580643413453834185687389896143160959498069081554518362978940237645035364502132788371696490223352816541718805069931464193121502519129517474122403177888459781124140755924765806110246280161517483311716700523750795203319792284915845854460700168853902369805470759617731444526457368759562545130889954526973694738270429716378652601851085775819954126452831118933018982054709996758736187631062987337212894787316565667747748562800454831814096720257169343773497719643927769501987536568871285282933000409462916218058709080246672601747919351066200085691125410458817608014839806845104460285350954961636505006673412357922958545754737585185137734135261747824797623211116330730968313976152033248978823736462896169680143190440721282589708635650292388143907865720973302812768498716073170449370446169592155699211934674222701432642708537643985875321213785877008795221926989393031281975486894102120178579200800998583321939527783216900784765202703046911085926518133344208928498790764680043565742270890670191165214634586291851424011233453338126639998181151217981092402475612393370729076900285082012113394085872207875341453860209172413788806224111585387160230239059034575182658079192497824713774873776534966676142621272536110267011583495632417628018549080522171357600359260559163489325180716665232561790257750604749118719167816896453022328163011699023214101172066248926465243340874960032925847596097236521389207629927757104863400569652967549275004854677721214470287876458826394224823415749193906383968003100077388861812187270588364976083360553792881988989799686601770497765858861928474183404935030094255619731098845482145979352586290511658504452394108457979205656266115438178413986586331396593635333085045848483527396337092081511804909339743887158463257851045730054606962613479124809896874769498657727662773296293313264300184591299692989723235882457495312012592466344265183910568630532070033723052100728842593814358932116611494875979808347374475894976794711930856886179211262020179484371384795963832815869445022744771592038806730732250560925883368453585977871989559091799325368375265672970945138760528026574411330301684256405193467815460791211076403217267614386126771870853431892023123333286682984677331799652318760650678550442265599070178265862487026642503045931966337899904027831077321853941132427417115954648829159413971979426140700769522921751872110699201241883167447608693067873581041692080627933237070263883880181543516707567149922877846921383322821105261171614984685718789732195897845038270398035009842710628697875261133496980051929696726383978902723919883682645396736878909832224243281382941383404161531697379717415597889221124684019519204251779215037738100431749907858497192394251627356566517924119026453640734447818576944755078829789860242415079256016994056041499885926316137991232208166056070610430686499412743821063136141625370441601802575774023750467404502800722163442614265213310098223919213949185503773575364218520609600364066886813066025160149207734184433924139925147758125625086786251515686781647828603138302158701124453496808007207331860900635423890270899581724308500395675449415999216671333026859259827782196713215771303426604018471667716315198372397661467292244415289088072703742730973400805091198918104826838267846428736580442961732442880340682237754623068967237537052215004307093154686772233592568342308354837544003576490204117331072163405515645841100177030535568428206478721288062360645309006007072524350271588802780084816233874989126648943332713148673117812815472494089887126111921249635812825198994082970218968349369955491579858591464289965171665032245669780681495682240086558668733660345555688685991757221109253857486665287721500103141648253773281776776210124813919420597778575293727771029456089377237415825719688696962228853985328348636842111908001287120516434236602313191645952686511976782142162185460462656745306354032252383605592401072252355991449154060856173156195496898555869345042498639195086451394115968637729311923051756630498183286695371646966542584002481383730253719721591883897751005080809786878878490685172249521353139718418380130203185646655212236323502946462096948210015225896077842229029492062356499854613436192456740761812689089903968791010083399304804660838265943931761911704244851663738057776979316045278943281007864149293194320726417676451180964649510836534261793099024415816068027862420163990650598575829229786074295022539129845636029487176663842757654514063722291883204261459645994821878218132223289967588205899250017541836483317418419187927092632075409154126468341933876187242381929451969010547386954740382106742533123172405867259852651948112011163492721218817088691135702704333310035560454896816951247717300272090237157662351122611024050214993136065355639879435527401954237590943736851658447660550221116225557730894675502383730323245360661655524981288387291865348633761358592641492685217256393120678578336881158199465356082933393313109202686179732496149879157743233823771899470989733045428843913202166318014205438979862521643449339982419551312428000212110487767717240544511778127616632470913445003130498252706304915586787545503900085728589013209617608860090575540830709938895876855111634436405952935075171134282963551910519910399054116835864510544313933610231458758519065036976249469294345751272574647027748389336068633769220237097172031425796694309160817985884936864748245778325275296634946786345611064795965149667843969831256465694563695236350909488351606825194628635825060331442510969573682432606155831988867428362143631421016035971374734879265368291269771898409841387452785078275170769960927859011727174619912673440018386204387921281385452975785525190137102670277789794417036713259345294054040613584591000984730115508466878181853192551095502536231549177789155745117193357244572572579435740053179617533299117486018892894633343886173821199976071905671310939913861407473952254752017070586930815579119990943629798102736926267272379658637430591749541137806256642401902923688546808747176747740774896368536393485657203223331774502183358531235431540390899448841241675685146624472433324014079997190644613769289545763683281153074495930180681347035046214278382518148972805088183932684249776430716396500377172364402119874399741240434713304375627129889135479321832573460045955966957513342024017127460616858376059824067425044505002830561921096175364725110058262245503971311632074896504499100649951073003580406110220644164349548383446324589964812459527188190922677582722116300620468803243644968494596436304891501731087354114594200052128034549739875806161356145357655303544434158261920408388250919331312622629993894432621367661689793961697078455054383285176758654009913132992284649943468110982543806254904639312656286190187873068807349570161856848475981840467700122410309928999167671801917875706241896523941469899564004347020640505930392887467870539011580874636809325721073893721942014012749545996755060378938676970544348868825125424360109358469770447348544577977465662009751840855081098094248524107122904246444753993886456615871815709481372747595110639832027127616569403305342566927154298486309238709851245446048068803041965811654310491708471579714409565940167565119922354812666517590929650388529912259641721142376608634874010482241567472781369644672029377349759753888646035308789310033430699323329499365311249255074205231496555624084360166800411576646630533148253828787023900469339495750759026004560898472006768217210671275848881653897088379019468645355060591394773411302303415132678543031313236723544611546630722724602524368475964063039645333975728369702994417205995736727549815395646060694102308965113550519931033674918873308680456229585081646684920377892079566310685145295014292504224936579133845490679198228154982586948978597397700057331262983865748732014958104784489735078955707945449014489387455637808213102202991955956275104396860888148953156817559165145573361102752055184483608831595199039607930048331721932252620602733472266749111527179255685456578574515958674588442059445622641972023584673724419864732007537276714948169638881203817646522581899012241841868949401889600129451318014446603189385871461455383916730536988372150788439167663240687328937564748851640264826272574686460190406018781338937093782503796073287872131471159659708446771226231360827533757652587928926127155197294130395952590063599202646590502022336248710818564527207404844154012649475595444592661304909340903160267457990664366379474057644603427622226517920842878127095724794830907010234372444347197538398875704556895807012983301319303154568630944756082435028305254044349898262151692123806063227377076724416988407716979973390908569507748860797172325123357710998182932842051346000479347555669626485988646372085326343664996989013935407965342077933182972803707670603917322920190502153662339644361091783895486301604156602459465449416378592010680293898499129659394862286267386320575448240357867323435488283507692620727067691498206989982769908641326609132864719440522703878421193770562051334016170894172051999893130294087732246848743865658383768664565998679493844322215698718853617659745752933238736083033002484878139952610732131134630725105688934607760604805038063012619143347823216758438370700670282653283219553838763472287055569406393009661744927545427092887910629964012877133842609199633510203144911106290609477339794229551296786103500000217381290468770108223615945140599795960896542972337416191764902623448430771157475351867043963464851477854459222673392958951858497909607490992633522629121597048857579387041053330263759226755444754426454923355884499146079604806467363881701099793920744240973534798777504030610267874728814874129712636032659027991965511756638938435726783558176646395699327100607012184063141729426640889033611639850434426875556293416837648133617883592149594052451516146056926475324384058580047819331228071034587606394005217314474306264335173178691047830221513809884353428332422459258033887326713618342005857180065654080932026026044501282044015479293270798327371588869299258790471238120778589678968995357165100191656088049201767461080135791404785514984729542629768297948537244236808530972613428954644932784564052519488082829274497121265810117942364272206933071737589482920236829425814058010074610782410431449213756502515315889833445262441877613885263155462629260367687459183245628757451974330619870041205460787755663370012746522363316445842502578735602883121454722268037420791302573605883691718016795459844145337110105836252660185443743477667160169372238044868958101279621695649177929847221333112118268245470490509926603252361730742465810749011265305525584411515750454455531328272417862256433913102404167203541778871443290695616801693226978854757350578640563125216577620638661316882872470875934372356105356366446113036082512898908375310905632060012071551085835855055978683342221814684905256997206608580105427898236703406137900916031485894708971911720438800742114388330626366459641194081590146149998329834580618747964519676594106720449330173827653016441580474992040668677974395267832911805035525420434578214985713580573514921964101659183841051063989266936699032858050892703391143667413460161312709391616086049152192262742555208386217308484278476521896249530353000875254171677346889259577994372408920435158700879390006701858241108442092008774240480161103949093083171545089374687540167815065326917963695313180376353027045685106764161328339546176442405195778509916865198183243169572979060252602347211814781949703336071487331120190157075250230260894185984372997568547213422241051878386757923790868899544819230234002149267447213076928721544978504539698642279545506763130354647317732821984031425978696045210617263569257985877808925828744479630149268642893203767254240263969047579374872106989895655275677602277780480923365288337015760645440662590932653611711159324006020746124453429689964825893743813493741503524520737514098640702503509637550562431796114218962909622937682268192417140284957498442227673035033114292488118962086649448657078420140671049981272235608770622093675691762142533206801791417131364593740272089026778887529150523764432076906617815198270061818227598488786672075767986543801072642545131218278758139065156980800298933672587231118467043893842056786757753169602488069398350774359108998879300818498474639280573297103485954390088205047947804325150478928535303457002585275897080468354587094959066267895266603354444449746505096633259205005237895232958427218663664897993569909762406666661687475035298802696793016501436317579492347655688944147185367539992108805574396896536265279449350057838810262429278581870370624592303175583082631530413503673753236831215433313014633544360131199480873181375184794635297232342830906974714337633782812790638950537435363510666688203813297646875964321557388542434575938452627647977383107116013882322574430192171501475668119194720785254149795848662961452136190607859665799915556754403920256866317298309535387182452513702332350434530611026748943803406118710132025066800239630499861585894986400881967320242802356318846791084809235527994935864124917581929165327949106160322190945006402655328241212061168200908903500261615229965084564956951711038199272619973013994963141146509984321598746479818665161667134085774418185024297991939328632903416960799107549059638696835397413516580295197224407563579499861645942113798793659847563481715885050185096611578732998050554904086570509191545175175851836288574345268010838902083569919536286874523279282162882514839682326064558013787789596692873240428926705598175365242287255088484331948131307775625892105047509781240470757214254331517549073004351001157273886781629659237238109632917905731024564267699236677171133466607393589162780860005045170378815821453652375188760448216050745010640841268351503610937888480668395746506997555006012381207347616772965107193983922507560186470520576834092114934713515384342487269218518806828736426291622824799457857385992866892752671350110865370434480907760372913363762397894572061603492993257948827139140007363738657376554855771415143924027553509043785465804778906108042915384594083875428652146627700775355013612544915352393037581683346054061646175151514058913224309894322420500169347230564739685118357863073971404389685820829654703093062033545377887496091511946810092652355670349421186732536355286346325114964638694378699987320995769412802614506722690339624708263937433599471594024471901756360410915979811893989198309610173940535204490670573245266154535010810172629807959531299649136984076945999333292589837843767336161686806796249758337709586497500708179269520531283338682591177137294191723937551353792597645185917784801767480259626877669795721961372108396507375904625293698110575025350904106960481301138572503629710122745591009493567792305697934230231319577966985798469121983044220103548273656705894120974427176323432092490883428293502102157892854021583818048210471582110865818732944216963022011387990827752357625273573579012840801850230486119144037137220749159690541146686003684631875808978797901792970135771902061085048269726513417339495272616780062371332758355232044173930745497728551504969064915598371777857486074872765910154863125550726397022492615519555830862736432383233693804200194811853700380156446261007069366261233087457547895109919765419460143560980158632741736298882661563716692922005970683189089351744616721226524237572875058284902595136652332795239884735712609233791000974695184683721377980667872906390770859923807287945827860686682330132462131217940700287989845166968101243231904338390462383550107286696482442221885650583591519060612270312410503446241883948850295585279118062481853304902466867023779992644195089660953982166590174867197882452488208862605972250665618727337687907327815225874865305863768529005169288194539714097817444066278102737364604304311724107697570751746152213968516470938101332085468695284028549825787982745462186424525334700852536011589040743164706765104017416275341719163318185223210087026721070571408164375013142208875111383207221550896327530916932372698011171143753849945808785458163524472585078492030808017313839075528322245210225733123166212368509416960897439899484584341541961935382890204192205922777648795860439338665801917344704295802736979018575704311282630992984179163670954192118338912311451262656599599998290881805474966521668394631540490634009157665368704313364566046228757238893923674202485447012915143040512020218139902758023282125806559711636777828427308908976597384062687186409150580341837342437926445867120311279821622163456691076402017560503372657244344878255903912277068610224321211336267717631842483094037310507206359779002463216126045128472573603271689324200900509422849880684256449204205783896598002669363041633231199302620214063834734351213500435876439125308366161866812037458846227075741409651521480798030406804266140027586273271363590875898010218099400127464429901290312405427844067320886202846111453429263782444681980126361281086951362545637398949254288401424881925870110639048670888530006867790175563644285242545043583650140597178548714731313666173962246613855189788444871505713162662305148543308238643964389212325540042038114988203379674105698475066100669436996543643948560433177800828391204436887596748448171315443602233203496043253482350681003012355805415435313443106813730223842653556881564166130992610226357781972093176730302149486798488034334538846921488307735675563740722111626891808075703687393375730652845395345636293996192444737917826177839899528101812288263045512250374342181019463323283683335405658895892600607880097149407369274494429421875450732556954282908503028837886400836194556118914639088806281144667927499763719432475608469731614489850489767419346859976971589234108229420242845176871952649674769463098833427178469062961490023007884842300199820935712158195256789330777709442704105391147375717101199757192743861623816390842552295574801580688843681290617543652458617319193850715212859834906245668528921952622901491339351990717316910281478382535350309813062800885279893835066175209607833981445690209747833201166620762902399706025215347719816003536563256040200779108296718702083067562777790171819596081103127315329740427830913265854406576874404688198275974091806870477927423922661732619873763438401264010838770774526952041133725860816581180762324972422562487651374231783523800053539398821375519190189020212251337727985426071054384333924993130075955002350310105466132379828121823890945076956350815726416333526121907019866755846009112524197135507473568496568961867798382852874680181246692248159030946659813831400822206058830075190499072172720704306848326699149099877913789341089895511997311238144575982204258861150993656150629802820092053805715989401697942353067345937440799050301990577012626145914157405182481156143509878035402732343456792981514942580638873611085309277983447347620390814280572606122007456849901611409308987711870637384667731841621223600373522608529306700354494428070127339811353491069252651437812042952186840086435773934056421687419777521867206566837680307758506801281331989101860307022894782554398047415727688678645580953137973600342020905194350719140559156263771130042686135783260672005429805599318506099362295042899612550052416815277073627410559752687136937397412478683519739315825471323743930083068124036314524831571701274600727101545738292087112362626852290457660114947664872851358296343499824516544563999707338253889648508879285881514016696036715557311316670227227819426912391299785176425225673252891775647626391985025690230990028510157454046353042904248091412100764436350736208535406005134797623314099085035932002949534226531249213845336337111129045237047312376956267276451065448072992520465417959216686736030380629220083067974606811820914818590133368775377336228280689281131494170247041764654962093626968110204302687422989498910875767378377878799117674654703048849918277434656736686819710168392075544769046139196966590030768558212485316972355230387040162394328841725061832659366972781450695579903910345768617441914703068523465344207537248241376546715493256294460638822239062360715432040722655977652308402010768534762274574447587314169771046225864969618237886520175374850070744379778638048275377213685796426077069589920985128037374457546551301182631975589988304312964438456317921972069735951819323612343250043326759098549527501026639016410538200979820024582395313627203847063447130590290003158798433513856977773041464830421973043005738940346326109215938634151273648873590354656524865224565224956559376032506599351052879220873394790185493427602550923357522374556366450216150865884858628087563317876034693318113713480955595980657820279478881333811768640375147557558708530922005706202784710622520702730492012442165261574143886272280501626338202152121260778605027737787783174034820503783660707039943291179406367268788276438767561644510007282232411552685009761355764879073358656013201615419016311748837479571918275838825636874721350132400422550239499045322445889199585126125573226517075757559513087367775133462128592242011356291476179791062233882675657021017928715289418991725879880092606445406821836222487019798407989631445343385573964096956151829382582114851496755429325443756885327993462022617802631436894460069241213485694317390633099384789078952935813159946819996556731126042030719828328506976664418184141907990321409553251674489217193187310804969492041071579742191074785724094563896452585842680087301650497324832845897609137500720604871155865720412508207580561450453949332078494484924936677694718751314795500923847266631974402414625111856928331789707895881878125281528301732830902369477618985644262751310553904190522263457816168396413693229668932226606187060874262658885745294965113830750387054913672710300634757496334772561237082379668957430345262170925034470657648815383223665337623446610800192401020173076332265655100423225606064406490803984294979312166862881416128108346730606510909489969300489860888864810086934897830774681159901705381749914117341084423205462298528074144336669150132704843056489231242232036776968014885802283120262866602403240487176641312450642372123745299775695627000087460111370222406607540945946037560561060004291711101535646390407421584639932094874656325010693762657997627657289771247917940802998758845388813589832663038120200616005784891858430924319730300728526676590779870801680915181312045144435470404617670788114907157488600586237009914414340354915163836759351295696165013016061797613187228992307800768457156831264099536004551049780135496857348310659933174730288838654124299610824881036721371724007080097987271605642169894904387422391451400584999605092848393404470562817425460863596999792372152611681865793768655328914959988033693046578339999054161463143292798476245559896480718896393866024992277570197250471177912068993157172524905021974134985681914782367460848725986921142173527916308250755825900844513424441717655925356345806806083169175352238255233284843149844548095419173875986861968820543643034955901020351624751921277893408087438178756706992425899552920169516844341992516318922061769002569337241335319027772256258665719210468277582636978502495161994786002140286457965655142556394745256885368804203803146311121928101115119023563030610044426877997479927696392457594397600523458496106238189529839203386034005367683605925956764808476632821309053733677978505046595385143253969774536529198212725205749323497094386354122371316666776969817436319658716603703751773735236052135464746118215645657167255852984197136856682261505913442642818167874575542106109995689265873136156272232451698649699584739542828244019498339895625044848926601590151443329699486912947603272040021264179640810450537673570765184870638279418519957681642628547169924175885995447811613751132040436048289746470789792052138141147197316711545271254030908738710028309839932156530657486673285373594252733422344720391228481029240606915742127968038088072128238545497960169787651640112162423562088825088310168122275721850319197305146285055317646217598870900926605285392417829607366021225109902367174581033027361781872577925499501234361689777551047831919048252062422397469455124350563216741425941145013762965624182973362523405223584509782018007300220768617212706945438191062621336884810186479676083687622242980127694856657389019101906450723339369146188853929484932959371320192862628964642806069872724519718226385830016391001210111071867140434176815491987432521718687711600157486839287578840231227951236511263266539487539187733737434519695529167607763860948961506534294303906257379008926491956858408602185567808748174368919017200748050233006797517322849198458650742742910932495845875548020423233427649879145060888687828675351771136668960854762936063716190451395816349756723270107017665301296597743558651929826585301646869043633358231182184853419498570226543206078704638471347337754319762562957805541845378906843069753260673099050577592327693036599328508587995651048504902733399188402876268907227456158483665039302200899059340177183670860247115648478677359869409368711500942282035221313364436329122278826289777904215094809117676506686306889953722769599938617650871293603840614109421292673541927364580233945519428517082137567125150824904908643204504521160155130627103116240778378580900698427301802962943171766542177321132011170565771687370565596563943363117386823768001133747427142865984119818525403063018179538026241281311847059027023362025096363245779329139260888670499799013864949785446733514095961626686463697104896734355851144368626922353281670808743063776187269707807044894490917535559179877901285421384924507356314104374687504864484265993221421898925109467039217101845764284030600055653349011794711991095103149746541836153796538461871051129821702074375385141338933544277083211933859278536156434084592331135638553285169620600922896732700813774008767814625886422637125783385021730543978723241793916784538486075155398483183156344940154273447635899407086665891933427932195095280633331544911600154127237732813853569855676647962337000455394342720083343370906258690343915374784118612073419351298825653458002247893243422375815135409473025130868632853922538470090133303659643946052750749083097852513284418519820812098869094911905814075457951071694134351877477293801155457314877506063143268984621579130779695097533392702597373502585277961568618105995917139954216018192443637116419525940664280333250087414561425208949733756223522367099476995809028614360626768970243135543930049162799019323217446817955229073198305681478860294086517974055708503959461374629287932706710091307374899171191575090773711622477596560138661072460023302744101866513884696916082109741470950273287833330598552765318967731754914454304168813486081146598278335757406969627261270469137024645190793613241931664776285089860169114244824971998693941567834290062216353897594493136894131108872384841091053371047666144757059075272107988747215777459519709537217888213520770279201526664889003989270112277526621409619078283124315475379764965449301640612362971302675708915076100909670715907889992034797051959296236848338201968270507042024399448810762110897562668257733863381198310194774389272723730467242196865055734956587688852509620696886456637872107271011175856897967869646204808775052524099246919453098628592978175263252166675372142870534946187287364949969878254510552328724764185478285552067603601654003874020157536776527971122792472662111032597427359556457181905099592818296701620888647189348409444427660503518626497093961953340530210491383457711654058904251083978987066861084605771304699851447020502129482091133903543430405746443043918784593518680087183471757549719660272326038396270208747217480459886748620979514162384398808441542927745182063757107955771137784224303649747078319926217383344399678059836536375437830208224510747583923662182429221723102871735131276456565133313016930359535901972029412708356048143402158182362878895109596900951086718105809657027012315892925048542355880635732884518709507446904382337371960793327174504967429337498712760789527264598595204576073616557100204862079298326983821854798856313115868946892755278607123296720913938290392470595111305001550489281843233604520035884088577062244492992723275951765775410165381709368190548558125920481914666412064835428980520853178432652563456062216070293060298735269865628669617593479515296279383229018433891533457532870184015943102732326438609953282874430998343090796759512429508447004828216514840731906120175622845613097738761305032187900696096379169687542950877913895904670653530687534309172993204086753998628892622235132277236449262870474312173621477106112828547824390169228585232363081525028234898988015617450472943406267431179597278426346694184280011473554166253141628646625394310297838238657597092746002958481706069967282960201161054994351001080119555562643861136019604474220337278572745764043118699653238356100850038869692989233261574967970229753024700233430403035625784305153825491230403364791778076777884005535038337772258803847367357984319064845312684069537157690796490807829907543537419186090889353866657218248980232891733685016289547325543745555036128474332617286734136917830692801320667949717154488692568088925931923897123755160469751563617036968245630442236663529619070857941154530271706641034204232256309460262248881760138046235653894241854154708227764304936980131934304819494321763817226833589680872129569570704173029071972855302788203759729011573303798476193406600005879121167805189479569848063915455466083037134248800447286213755538952442107548811056477035704719678606728291892822367078644727478523285349508592632251559906430210427704325609779300437842687389921958441502346314123233159741922942322350350572250646535005621012956926675659108193529818421108545255108921761975537842051046760489370281696846375512437666808148340428303860881640232263310167446687633833510991503112106194670850861702242528879852987762057406054639594156559855096699239796785814471170449136124116806016790315231518994937858539749777607436965284154596275810566774021170242515275132393742622456262703028245088306828088154175172499177921045012243767050060695781930824115469466652262875138986428562762999497198031200293540614047577662686984047410138743280214840044507467607627013563771508229665962541811225557414456790351836026767884911170154904409665778899327793362673072776141693971295135040269659525119753839669965593941135964912344019476722522131496514183236984470919409646753553037217503908885549194082362740020577634268659916412631047774990829546727396371413205453047969147865523729829269484572546021043718013652627194405521308859888879713095522795759113940132266112374480514602599354726427848346648863092374517290108579002109403858988373937235912112071802517380906282188060711511679041429501595774480749041085894616534722686449573275094891652296943041066062665652109543342183803228469368027548516920998391406779390222790905867827280948849449291478254480991063733383062508098047573223224152896610700647914175124959605547251086454795931491850247438432769705322472870872004172340394294545959693961790137490819126113193653731800771136263554554050176071705691733052315495600911929715172275060979384960317309873842240080526362334026567684495851244261705053820224291752494848034650730792952047739340948235695104984561827043330783583650085149346497847350249836454798324458406638209514929722664777436533020562474390737476257122001983822741167707947738447714035393232503683329092941681914848597061424784489058346651492750343431967754066291110081220689138842630498597740074450956559049270421009014677937255964972226382341201427496679651595184782568464462733522876596407737047707890182032369303202098978448530392802676485356980430927767183765439264526032276584318256903235376176062209258583758098336230432797668880196829938379451498343757851305035278899503348262052993760202178666121704780135307629432156212617728744344821432458023676599937418100607564947673319505195955516738168611150531428900225950015843170583477642742077332620828536677567378372879990670834352851516295634545547984245448306317236603506964214304177219667037771294971028998677239463514757751614194978909350070810295507874336564226290448569251078905427135846334449476107675214973403577923248133879216247669903867556823298784273601461741598733709161442375455672100226151435085356415727625314122845910311713653133178325402968068344693965458519994657121195863249387448626866932274254406121213794384306712444460431641379568445054355376994213734233550457844692591286143900865801360423745827526451426691595674315539566789227558116959118485285950230500885069107189028426240819106705679029179909067405773452453958253424923341844534032574846027962286234176481609361291416825636363708063236954962036206836374477391496098329554896308965188528524663877363216122832581922632468511386591940330484369671459961103537788992714495618550837038182660919968146998422791901553257667731393988732990204769874556539629610033741855443153559290813573632506126081548511024230985150106034284591224937134209641068713397436904123552576429906275632614892107064634611649596347818229600087304978696823375984428418182443478303701582384164432423247503685557430709368455530858111317808457700417499013008791592339324399642126111435059524061276915030640409119704495553269743898440023224384549280864193654706928249924404285500193085309744166132587657168157598594742061724026797584952925656133974738722504564722051015708897650889310383147976791458097958557915834511067837445878426172668454088343609430293753690053190279093592041041200374597486096511400232950475554379234171491311953181955792617758558356535473480357219910142800517487109418653154604469267845035008490619486447008471829121519505212262830599478502561445449414282473834224581684543873631571068624954473566981333231627097811083595867490196434384799489132042014007792513330764503897517942351096137006665002764497136328890422201380155224948992191846941230576866927716521531032955140562360505068901812302765976949127883538645098027649141430975905995869731969748109994603449419548459114631971003027494676987355136963418188192317358462428625525802375211112248527311366156614433569471883707979621328899768539963713260367968914597991683722517535848594774263263967049128702690516440816736577650514376910727493010283805380015380163922647620365715105575036098639994137950665447999524449546137997009343711858858381486384653560858739890392602141634316914873949734727261246596747999710285535330495348637389135339067209276713927049890480812999389126918581132938285609182560443432362232630556933081602458117991067328382421844393066185903470360191498556382561335627799086803223574038807226677195990969043793139809149026314783599054936579906435565326265263130728010112587255344003172603469580581556409340677581811292007515502337237019617146366435195758348189787040994852447622559858400603850945156201320104983532418539545131004868926972043974341231945070513094992307022930025743973412417109209789296123407190429409618410729744690612370365966414988256072033006059249510950480151092249530521479680656844425037986350955989388944191462634143759368442046246698057537874005997052048646739667878018558256371534148476939066597577718743134024512214665118344713931561968438984397465278449943888675436721556082348165974217063897873067103037356427788412370241013015142282354919435992151621856410895124126593113262876454600955787678118966112207726212931530707751001675790422994072462293471901656962507599199309445048044655292492305071688195344060892658002219139677980696805443800826175301070271864808454352788677379504013294106371671205650894357752864176622814795293179161473433770251477142919938728410600900204904734140470376155892790573880621422484619689600350277361932197608368199512356281685785020611954444280374280423177953849460695823496899434899997650145036932123148989603530619999888321339199928354964851067896060653014914757801550702863486263064427048073060948718510157146680821020238998245644011653426739186801229860153252795443606415298162369293360375007624860402412182755451810516806296328450651402063223773442400736652069596542094833832513996423368590210718150793320473850620594785750255175508701844813054256060396431317827200949712933898890505431847435043385982711035414250744181052081162118562117382822306244616633034465249514692673089400442660894884785863969604079669411853499896832301721073331183382819048696407265006190391371121902272862425981482894072258120152684036814894288608712907073313155480112081986908029181722519473484181143565320045482685143053978149248903426569483515716883416471994341438943100715576165971608584561692830200547336366078378823189965561451369647790049030405089377563702034064995665734068238946317506809198595747365405708061045432146881091503962294481414263091001496211012891533133099138629175904079168106728964033975829685465698524579367095164152483813847515528236917016480283345705330230090597186463150254601716467480010347630278925488186886475081440361010535050108154648662351961659719018638195663011108442325807116676221607974077753527478466641460656378781669255484916984306015981196426671872687909674160176135404806350612725341912487358116092786075526753457623678152779340365257180265541850547911366814891484063833542185956829153489950508857269465676330083911705604525470311989004342599651043057975311799641554349792700365425843295597623697497610236079971229984972721902051927539125389810209218601008222414179889555299799649678985615792141104541080937954461418460202400666590969605746708833449199896122782379663054546559221339913563885018320784351842887329814304370221766546407382747091862306407761743211926962557630983234558542775850258349924468094602631878704409361869813839983342854210198217047625470724087989260046508892409923859524822144444294496186040094882466214628036868973105359742552187374018621633569323284044635419311597385958667387015260765413379775047644573964144239648702214804128409498859864642645789741072052725093135461271017635323759656936126992314940172615504034783572287562539845437825299925643814402770463209575283203554406036171901327460586420670660930320444513169621433730229780994178543521702481178543603149484291754197111022241106943903026478984534245095310291555743068871021623009775042081943624431532377032376376095801637736224426809087582166777719275874000683606423876083469002615557160411899472322511634837427209584400770669780652008495876452763089761296290572803018798780302086054635942789406881968873655937197994090245882688476911625235312204191236922797794670388482042136733814964039154085098817155500603964374858047878232903135986353801807530189736081403987804689097147682688275352998620112215931546717396560874526080606254937200769229675770975023474384470217574758466393721829138201014950064958499556971994152941255964637896513927335607290267448834317504538968145565842621397427080862080698819829418596846688790770062088479237247070594933576263989792552946290409282216655471926865260488190477208536776732958301323868580577539980483535837686706681915276705465579743851912972186546572801295301632135299863495564159092058777902183269064550744553782082579293076182055070035235163982250402845032397827700735227072190201821809702322263987856576257593014943814214456141988321985685986285871005565254551159552914956389450115155226217190711086845577821212195516186991390253001434464402656828314698799345383724014612873470247039308641821658483304449727462111720414836670072162098299948177554646462703906728620564870095346037861173333694370640463156728111531937800365786481057300636358374596364462225848717742620803283289285582563741563402780743755775735031493465060811850226430611867399398616213365171715459488581283655617846978464630035282948580535508613351573761689592233713902518394961545105497377957284835121122008455960533823869472584567323074343197277657858025567695466045851243505305968292951979189095560500351880837192743084644965286675983512185172072726766977949073138228101002328555790251161518092579053991919336290390253317353157154472360349815374856855849618952727274770873509112313923356033135181384146682825883832471804444527558131003902922820118199465543829767184982316547678539868133387154023484230328034265764811295787830999393080759237067565665697259496622942746666599919487938609971004176476165811024491634744219181293927165135230338101928719531849187044299682130821905460820759083325255436595931026607116656934961076287775806358604553721741753399856246877009823275783130537384225638806914736921004965919479332682720314150511084988950166654303296211294812142470264505133256133594633396102472106478355376422055464520252375741519969462412416174123415870889895389394212597689256008412648301316252258458710053823367259608003184809436701807348854727959249634088196339042662103057330849782580105855691969306700853650673835280893828510452159728689479676827624368420057566231775615047989477081756993131053028349744225634654771384833240860835665935407172343603404897018671916796904688859146870984427260921138155244718098061107191277301339225404009762992938346276301412762683941491666291663416117238100257496720092342094093111552746573186140604387388351057327673298368392563055013077667456241060390420066447276074686276908408728580085721288928036041398979013775561069452039105115370856853150294614066400150503810995417241608791341126712698329150208090602075670443377835742489823186513964211634855546923392169929115877627086419422323260723582430957956801299742716294261953102547326101238682293331799185402591669185171137613845714770780340100409057036459952276941850620879688359697868649784555986792580060463355147948950707681362903643916334477028260149799670507558152239595333670195722365713978985226465922748157321430430259443645252347509298579531615602815574328144881724672364516531479446615991502449431597951892362902126569986685102101686158482727822320813082212020217822936404482009362083905999519472341535833458248297060222107641292053084583435746457015694663633720345791268263460512431336648776743868178114842005385320277641000402503228347895071331401508028135081530035185705801439018205297096911019883985268674136668421731961076385863618893615059272895150955859277415202279601890639867040220321218883782983566165958802310900757568101724695133279217100653348847721274100770128992265707243705388006824716060241065527035643488887576448217688113709105336886540467280054734652672963781080523602708879675160892035813322462581870654002564908669842492874563755476922203883057225565545919728216845431565535708733890934285089890725295769265528448542478107329970547198227946998456115827066273492172436519262732399879684742513086417488665866306738849414645584648737887106599135536716785169160605464750103515576436116309225275055190370520498252147742124296754775266353573837379800075459760636341512984677848846194558539410192884414443327554551954027565135624975378291580837467524511467086279378325869807483230999860612409777822873353641769743300279900812102101235526797828715515013713480466998969625164559542648357948298739354398585309066751274066864147439452376407995943576572754893614585037605689518943033101537761022746077169113669364201305187267964034014914619740967147677712845355517378642861314693904032721761975390142192574037657972360128218085193810416265619316290891106588495170385618554498567351441141017849061355689574829674912866442595869329412011993720926761623415186231696451045484374393975539992967836532472212912962544728157269881679446659336125697932684128321350970114586500360126710126471920002785120197646974216823388467591943679822743233283162466712405092597725277031825364782621017467191077885068475880180072459066573738806607978746566324414443264915296817336076187137942745310861542215356739997140646573460519184637726364623422813802850716175664547937048501298776124776407600471593023745584300400401070632811843296741170898532133189917771076014681839463034861353881557797906633278820655085825940194364916630470608012291159320287828014283502374919013324507750744438794611561052674610769990996397961109250268019762787442815554477398801750983694607444417088942794600448061553401300141475416358246201693012511386836245551391663243680131637762814360425414605571470162721601709942598972219537399367784493468497871874787010833990138167660033556122743798345233241738629470689082442715066650123592643395292686030800200932973203279401906075899067678470721726453413414113160651621971581825435451422832195802305064923263805891321216673614760179055631135955048640128268945557637030942380170181421807474177979090284872447844647211406567040575676082806049643472072786497114055931470036058519982656837168089344975295951295589515016446586199578980378569126637981139880187695973262163792683421701563413524386201434487319630993692350501520935101441979752426610746414511755029536511159409424050800902712418597463851081112978377053792938950949439698281068732121879610659455746734379434429503789194643352830267310210644603276417665428112309213272881340688105004230788734553906063599906037134296339247361424173604558568528355042338771253708745158539945730599885561273186851183066567676400496637753367864023562421702930150860169373990877592975389466183512649820847128650014593400603999913974890408274016590324758711808502688919679307884018166021703041575083120035384388081302716731271242973335118467547396085920330937831120265274465624913533537696499693107053149444363205731303130144117255210539968301969879858166669619535725903796673581355950262547046692743019288337278957690201269916965612408149525198652123737109317670156540998983647892170870926370672337099728281579815743533409724286779745582492947290203650872884767162602453067511820029662639445532439754323666162763118305687666397710157049943258685911686085845109688501390228764099028866622937285652397073624017351368064129607221583905867634518606745043924850611240601901991100270556532097308039969771884092352567753106091558711206364966540800634273950044733703228040569835646894515778495797152609516656583634930892352291133850899224913734276643162412023866104564496000137184404091306780843708035852760646786101738938649366617702136043373377114605084653427669353897661935563105329966870421070069691011079143837872742372090118720808994480148144056356832242136093110783960161768693619461094041664521661020976472957327556539413879612381011550099057148762820371282036834895978632606113090546781078257246642675860587396257481090271415820755599654394805732599235737877788336738575765749864378775001863298130554390385869144489287867614648444628874489537934911826188088970431925930728085312108283601678659212539919120424510815600851632254465579995927320323575974334519170203784635283549575767228643280611570891775727303874270774024312078093321656549208258451921697722011054779891631359280714701706243443619810839227915684207603292570101972794664894976402828153869929006988760439771090019223726709051362545350556438501210142947262228800658499270926901287889898914194070215055025235704566210048841147511995400585407861119444508458527886175059090306227871683842429360944139583019439548865176282480541022214218513030319471491278316727126429032511632409234785703344316109989679051535923837001077394449102353685690510580002265707779706744337175335643675887838597818033484892906728762926544866479889765311856269048030263273034007202580654007671435189235600178481786537507027455409436116116929595656782372910672579019226261439264242489339741685654772887654458433712884485720242563790477827367513907129143600729467384741721649272028842046122159608432023166364770299979370316600513912735384475001608265852542989149014793379039406873907874222351063889138304002955647135251322619998378965219869294038248333249538885239864689444992848401267987217265691686966612170304502118427379887063679222978773921022709340337155707543380101277332923722159645064587764521452583531279200261541620181459496022893846950088709008516300321381021721278767820790779980671987330087274626243221266255071927009371281859678472872420957225978001388293104723820384817837271303283223447822689661147329080124005986397462988186378241540540502615132478521418300394714720155684654581133883472071895496338480293215063349908999623758678282768991349260510404751023150284688277518922881704716998255200263119199935382198097585893691682119727113084246198273976007876847116435139148896328682466417654417965065258015802168726683000903863999580442819264183143516010878408586616676279985307295922640288570802376636323943739586253141425314095436945096737095680718391429549268493383869588780940636474248427291705256802418980830771042062520010366883747541158131143452883915834613117371770359082589830912258872762172436713724067792399477881833727480459561616323561087943746062131803870004794121868316085892223933820205772400036063723118336809630706379886663746158335406701579295093674595867766098780473713347980172881993997704636632336155523604194120433478001013647692091636558575151061498445695483455315354350479137217883372319752238676371762974328564870952455300628100086275701057819795907655350414595122985995139016222380656655624979644897435128874376681039145120402816129993909938901914720127042310442969168723731751250408849713806382042608899150750598648626253188933807374457534453135270811546134938020099559244189451496489763966050058740750353613020317017241900969123078515203470659084366454095817984330266113494103820102010828406770873759124753003745126868497365072315027847931288784997285276029512580541306986571538398138755139890587360222573936710048659559549498939044397147618829667602074798586047380375631353221247919821506777448268698990088142446261711457545612469311483250373905708069099721320621268023320972812046089656361594053357797347266211063133508397202585546679533047408984136786063722908577266899026120334034559947753342707147739305426541021826124897046951306336540801951694882495507608951440154682043922357604968756849033242742120719088313314133253498535688186641532973245763839976617800649166077941246746746361894549916412617691099886254270823017790658638011475501736270553272638587702279483646659911621172927291495136400678092305608538227043523723795016342325320809667585712751035046287734888146616683286390613106612888890225618228878452004857736313567920198787381300260013011306661794603274072463064847012596660028274397427430248276597562483935130182878637571030536437082978332236831751413222490155875338653308453230024985111496203946257621452606315280570336678380029786263093362446078784958644160139632705424837694429639951079461492091775789531442573428396547489968894799271039174895269960809510235526539955567107783470602806644114603104115921875443269692810003769523253853041731755717477464151258170162828866668705233402350034380182215262840751170445571875787976667752798551473540319072653622474229103673781516411443976628488428155518919259540238206568835327793822712726697645418712965837461366670965453786800022254013877534190351374719761629212968474794224986130550740553728684948960591716585503639104455331356218921139858184182343870410579361256716512027178816918010710889468540228101966709196522678412223465860627897712906227975700289454557641954167601312673505600392979005373383660045966002329253559531487130759815569718646276210782390130969183864392655125099457065785181328087354571381870876560302539634748371148689326320779113967838382189758292178461058815780216766613944207316238555481599094560597346604944705693382528501672933172833122531938113419532585782275837029891072135877919016049886814411261255401759600943839421070811139628251764992857455618543804613188997878800746203509058094921923024707515980310795874242024888584258475544412352860964515586877374334824761638553030440644103880577902923711410323805386064203374098504206521420380272623162903198246565210287806730680330908553612880108505572712836531244262740030256507436935747275142599993247067338540080152950358038673975160800486244834621076451334862893136172323261268202845595779492537151069247046969203572870771040513831703442613400157278847736203361286153586718608587262317858786698454877132402414614043088851207492964860543199642652519806099810807447279752424000102436955649746537243445756558063210782419474383455576665247979160152411038408689744900134137511586243852852077059539071109513297229206682042612271638507560469170110195707727376888426778126157776398559407021669204796599812120303841224302865670718620655872982726529842257199513035592350440118785647534794336902169266706264909282972935039354031786260405974283835767818668780552174628752056899640246963005825953559058848108004080970368218742994633741554952198156738921859108463214099354851824947513528220398215044981685831038546450627047038501269423187675654883841425716445365064290862949263481919461878714189657571206808191043693331305544340380226909938795619678125268488687300263330810546573395067537495329076728981761484786020077260739497107271037984478599043366283849394697018761452912995768838079953201361305872577507554882173761664039649422047744755443024232020826979470825826948197190155006610374752347379399072154873654309861618240774212560639828055709170917686601337558791720112621449014378423469130477149904348009671358789031219158826383697685412544969777242457619242930950733496764799689659144604845962680205697418961735109020027149639869888993058601101752925831243056829244491727271213591985882619648688998519647265345022001344673710738996057228896665807034220539364282482895575019299942492924832138637557678095597842961440052610830815334812324272717113042511282100448538562318901073416525409656874201686431635734118538219077405793344052028839673240288838905434785826086629771689908894790815499262184838855716238250274562649907100680490448828723178345415492133024886456424970772442009249486425388426004984909151153331102932517461508599434216190926923951735326719764988241280217523658565460248889301792574362126674081342738369712994991374692472531274048427675857610341180571297071514447666863061807762558936684750936455191430505500769787451708515872123087756319192453967799838460212863292408939116269179769739083817745814448123727416099454413348423637281426196439565058815610581693848086183645198826742004493749804342447216106094533116828415362070053612825664519804887245709757235319012776637681483933588685841343338550844324190954130050168060140195264394794453533567208631785920375967956482796104336128145859392383716709395365488798823720502986580041847105029003271447818788324638354618700439135210597283345427424571663362008248250309018650285590313036581205398240494738773845068696573582590803451036203429482816095362950168323700303179965348743410579635539688430820150536096829737102116110993344105538619572042259982085277660911149858046682357796094092630637347967033883411766662420552530850317106102823410454595713026845270586007937669488013351631399827893486985887142992640680301722262699853240057398448307407046665568076800689530479920585277341511128669241884270040364891227594399644246803294207623737360843781894443340347870738013781977884987274488358765158205035317030854937687904137950769694008716387868667747387423674880351289519629050479362075984067764357528713463995830639614483303050434160899518431632862696120525184637771447709529381642626206891521024558743066189585662197531463473310020580074180292793533626436622431128236059313086889936927940782446968759718413667436842100737854176337036732361984865387903467291283103573478423415858253137627524951131071940651904457364841909033094184137794775190277980725592748518411014517408431912662848551130425061570827974212089530783912784217384151082835332451276065160133603451062402758256433743956278319477028777498594291028146881273659327346293365041657122739819307876189068621324909452163549023514497937117900839973084672893648014383742398075264322006128543227398336282843662882652557315411119422192611644379930763285288349421757968338378742665213610846655716213862703102456306720457799012730770667866452557871588199586558155448758703611599920536337437145514328847468170158017026082441244054904261974448856758041964772333664554162962443902794397750923139246176287226004168830095241359774702667055916645266840063244319653029433591582588596228619735427161838344621634990645177288469587595840793721682069075518310272621389372198071451818934880918398737841737760887817962124372892324538426708309019835399878148698288126207056177961983891760865784359157620169131252622720507644825979783911042949568912578220734006167428592316085690107727901296103341493105337110033331921899839002915868066275988194188537225972102384593483562547436535786829443659433480125581715096003335608522860923600729536856950740976302202316850539552654627941369347413330812197157999715098332272623650657027263299376041211491002961800587961291222119213731346531267842935592389145585607985562692137181290154831986160610618830274728930823316835827573874595867980622298992065406312788523602870843096883854938178121112364382284949574888734666957858089165082494056842437538258327782503614046437824782542519133434237999668010309301159311407435774678193323777110442418394601504280322796071856407461301936097636114041796900854168109075031910333786095479581011742892024385560592701984555680980812864980802395553850553325009234839782252271136013508214082854733800277655102192160016915173896249742167582731618042894978682744445321863590807095550137271811146078298030964760289029754607546546702943123406963516232141316792903053358391512561982741840388647806151439165403444208939518200571547397756779635781256575486907954531911995595227854895978392437999456270680398520127312525686121249761845310891368693724526139852977873292867228992104745364993912401502899862088267808631678167681797002289286746033077198932814415635402160605442603245616518359951636921380702657519506234107512095237804951820880444106800277324820678537944590747743403496623752727748408629565932291369406519225580812168584003466599352903153751916146216483216386543732261558651105921270173028698467981516797688821248604132939892546411920840843528545422986121683775948850419823499011892510763457354557684271174261063162255783557158825606169570131333197302255707479651704815884742647620571004585283836477134529980415946030842900747218021164464990912139225203042275574293320492063129368909535447058613416811014699121829306500939119881442959603370090188034819725385663335772684935480947953855152275549603234237789520454763934623379112699208937969643256554370000503772870717578541007761419149770343741408575219376265213351348657872912167659670108731986103913072925913931734074013165371282239079551989707435979762063856700338145661304690686265638214104896144469570982641947986622304864190705011295361515182337028185239654575162638232876156186391905577233931540619463935491039398539899444893864554372884522973228514097289125046424725125774737988338860935548457722691854370542111610466205829276679960950220709520796225054218193418754621154261551173627957120604340550905912395200254146678446585086251728970601911618933008440070355315296801301018463157258288966376241531489676979560500362231838732362917120328361070676642558115958723576544811358540648405933490553919332858834443246463606398675963188763257432180704792513174850270368330395813439736201698756169911633563105939081567789018664563742506299472428198480373966632101393673253389805335644218929643910038774585920550996520048420193813189751786203162821352893632138146457032874942812397630950667360323545715181914698474208984763744852067096883286057754894745749675595941058317977065128987102039817158065971554024575100890025090789304476741622229175762790929884460370136739282664248131808855046504604635260872094080603288962211506450896461735984819076293231351667356316888305941611133654640718385310400971221487349244114742321224868280795821359360549831624251045731158600677630027351087244155044972635467652304985807613575006975579981435215922986278681057163749030920013775899170098114733587688636892001727599957943504642817951024923631644409356593356770037247179353297865958517132801145333311941429979597982664628717929557053375422617538535249973462328749108074821246429788187395029634135491705617378380039825057689053491330172898666686740778576734235226604321523452516752764778623640036004687591774295210227712900614500157280154767804953583769892544289251495516728688911820079085492591636109046020763087157666495186138221955775124112492083291026799845411902328779809743548332303296657101940786692488833217081898261219456300356192592462611084871537258962864819860840745275980646019616450802959497606646625440227694011154536003973229712694181833421967894587564105074816896448118262797188107043600485095958014203501803450647737283012620906683312697645528108246359760024894483921720725135094198011038529704271085064091215852273895862519656352593646119356779074312665047349173738963956385315970296827551498575233410154528601138838221228988386628330378613327611093782233336640946943456345624680427411836033924472723875696375807676650710705088046278276024176072592998813554097303858397250784441166662692302945520501696148541685850416294198500143566511189160182430417898574140711108487408799307034802525141187957078868413707673501290101984987844791393016862784784244975760845825678473671267535597502312313196620681043361678972445844161371454824784734235365736799649267167071239338368562875185672255338580742030763117696639846704577873146703481985436741571397970608753082504508375130588254490290934963452496859164080418730809470353829851162079738832282359584884041650457673053516903477872257365650444899778025588198435125229149003530033508443101982167118168119300571806907736005576971270598798029357440195821060924373230709656744161413793607576963833501258891245950047783018756689286871698506840659351874828771811885263056250139372462726718889702202304147837092037769512879748003356664617058932314074720054225809445685254883196045399632269432715965969470717944747188404776474708071248935439869335069382882132113097613162243307677676022548274541269604755921285924209617709097249130625324230842604946888703096726095652456523554304528960962483545592197705106358522626883096279545532432457823385652004067994846803353848297718412665150044388264169690653461646292072063698714093871773472739837406102070067692380887211386970127076148735382822263158380116377313657260785915231026154762134066810060769408660048009715902756094019394586204690141888011510655608941425633367601061163524394702024660678928533185580495375089338258440308591123989268811481332828523783707501037274292242239563739729571589499940658875637618664384256795844707437087474893683576005289517461258043482683065753380252124710817526136296274359924275576278872413337328271144718558497241979527151935866997761374203873068598140032641282735663020752677956359193459430595452192271024181968266165085635270431675287768871738919535489176035635263558835736208331047099963369577888073247846218117092910771198731281729611308687669824629621804585760808133279258820938259969419054866238926855668884387217904084653989071130334343459588338988947177813389522986203546146415736780043824288086833474581699440421037176828444095943757449066890074949065486454913736961937336932686948633224231732898064562389007479308237277612167030238062106662801745760917112632623346171254595210440965821137739877022117111736493248779394428587069171265045735416365276673051313108515278953978640497517049308256840711405510700838247407480582013273309108870107535279897717058323802152230271532522502968259080118389367503854426817006454410677561833881010047520265355902716080135243401464503997102148947149496746749010203491383289015108533163697292732912862437807562106959454326491463439454162451016410200265139608840421860686493537649485895216621934600531324189460446914857755332481229401786957094583266377381162862825694118671317814134180833096497331694726548917187850334511738025263591854087395418491881477410086218560726245676417877383279723133883469236585656242987352683505138020738464707516063295416195442872505322158130456272768056204622065265457455825856190787705366565877728579237731911365455609501695721762599042834712313428761869947659547126150448578179716087703878099475031821191968649324821744037545894607701892072303163955385128847275723551444588407911501895581774045308442752359645845065280885810820815127260416239408001137861655431230787876925258606490863458737001102948511897905662987571413542217489938062768191369853447561636924534896644280455293702920080106016487784147057061107305581547719459589556935451659181932275356775427089872485798949586697216649204235552881157825078813280999621753039220242781950924580212694027598062805853406268146353967142783081453588908337485725600345262817563172073499551824019239839559232567259682786513147621356825303990757454612175307004861590773919581956904221150405452950506388217779004463352875613507431379158670303327941182418827077463989764211919086905420925494043746769952845759358402890586611996929582017935783617697836535263285310489340983198979113255890342488072289239698720037751107683425917724187587158160978835586490565538036664503618053944414479323396504571719360854698085738882222361239271860702539044718852188985772535287407483512481475737629653892221784463074841421240737301042924415309814467272680706311384136249310933330072210003554309044073454049006802647604967130958560299456461354071286595226468120710032762000505420480368725119070634851319999558598819553155447244019600522113137271403793226858599798650689557636772296665936815425578884255532465313377213771526000717064505597731857797419090320155632064467941862610734136519334557100144673617287478810604630525806331937328412334001558336163166226207893465688003103097455105684076581062465434579066921900355622163651277971622707316554951162140979648907499387467068632166410249821670141864805457360332290364267279206161932177308572726533195143947682536524023898489473585010993694506909498863975901454658192409330486596975419622728971085891348639022775188208631029782418804447903710294893396895686223091025475650302390706909842002356666904129019907995059964773081530435163649960521533480125801645358031825454814693731913379086586764042650346754167901471230761471965717572090404377547135038389602056970746788293818796229110936045474254665091496810432262116162668637408689926257811808885686696806904117568834745506410264865820441486788852064539416356074017314729805881059073881834525568304244490973256618986475308636433376000311924968207885035613901893146361959576992632266872112631693568930112370285116985990009102635912845560083084900016378216929084450700783820604917198085385722791882771793715175109859438704015211626528957962789689655469984083618783126745396005600972414695016831156646516013400333670671717850072574176113799763468501225504445881311852469491552810578386544287275165953069733092071664997619867801987289042721033826108149911954107052532785171780578604035049273800690760982271231680099070747408707000636681417551195250723661152827661098445321001442767621451828289575348378652073096529342578979664564047595402043918520028672347653088513080748442809673149942413895796843783385687798324708540191531194930573899024645743913609001035356899486293873686707279518905286774240811632539279054857072753054484102961367181020225400591891885510373488730695954792500553239322969022612099294551465538031755196094169914144105661501417044395080353835823814588351982760918971329218726735487602560179681723038005636245327997879326618164989093667612305580272288036621301797923654333799171626535836687566408050369709734396377313071602909099378514279991136932810948421660828100081281356184676824082521438765105465190255525988977473497305281358587763251509487545006667028342882330796585722835654254650378596874955721666331826146942918393901985500581102289612425203595960620159529282382770673234615355142601432450015309718293450567405016522915988887701528111881946850538785347748683805987371714664515268188246084272665717422446754201065196093623094331914826433797740222559925334161031757545073326311130269123395278850184002329784136700746005485855149352892132318627327809522984910939719085914018172292095837330329063096949558118316337389628994760608612207371705476494201364586096928497135764962122693745710504854098777135994537753051732257818912849630221124744479157390725548701024835555753340402828712946803999002816784906846250653544227793426830810280753844781545394752022899560461503013677110781219603496982853317144579209215078228673504280730665195774314627024453163084328242790988264794703819762832527839422910636546560665035949754198776999419382771026867988139213389514744005416361606502990803404218763022381186652226320193710727546715102860042031628064441875734525232120553554839433454068789285178565553314714298955650321348645823898577983144192121735338639366381056154936133455939532439641731118834660050280708312999160889337635346149052864760222889115156601326166377818915697822645709207694019036704617498072194390528491707926774329357710283586373627176662729847408980733917119518361850081837603162800742225147645388164556165595821887762927216023086597224293791431676427572676122104990209504687707536649230177406027360947044279314548059216975967958542438116982911510540001351951473900990965598314806599944349190623904646846346378810140834170670085700817731564468393233919788395420473520569551351911735409069824749663633227272273000451070009322564424226763897933691447726444908920611569042254495686715909815346273867677575090707354009317782394252257775018618826929211552518326472683625462062950726059044825556153416939009145773267577401445453463449562156200964424716213608643110028871859931292347694865039284619064913965850521724261092839201558320566056543259035169856191989473637244856202725890235836859011484101003019332705922583246153623212693608060239312345152171495687755853925903559393040718830399785255657042301741026071159323996037264985544044186362156406569100288058402094831441723322102369473834635907981813974341562065973288133801933718042481473325639004161442398449748398288142059411179200609556216015819582121289073663156092747872142677074351048907262537474309282264755671047156673299091066517582639166854519742386986840125710113070123378907868993381471835739486271958684201792196846016282416054915946009433442049061559001407113762093446069793646426080512261986605378846386901957883598492874695166150260885744384725265462495611386518913227758243374532661877735150158242620017198768075406134128644277650243639379156487192626311040415779811442234319399212242298185026717212436119934154107998445118821639272614325046138240871752615950843188408275050784558415802811675231450102226645521327252312591086737061898987277077430398331784348042964016890940805972466457564082018162287801828871533607407888492913533424534852986673047159454662032705248069355555753657152429721524548119866636881182927423576100499588418122312547846471011268077544119712508286594818637201699797039774224462512704187995557749035237917035673353866691487858575628980954357314483992114066132090024134143418909059836180615348801580337020863518847613509097876386584121633932522624099020114400088121338388916799766918878892137832900523413988666642367014892081663751889317383877926460373933390925405780542723171407104952400623848506838793755609366780871098590509984500095054614346364238396998477625761355655632926828118228246812905422680891327294084411705142322295478181010637629008221705461220735911714242794068521412849305299624491385358491262484493494088775569837924292725695998195908144843138021658085988704289289716662556299910377688021810236590132692542705280942086608238682273219448945129297320719598914433619794183691699410075648563181481278797717681119984987048004868880948436730884334499713475449443118853735917091783863332550118634514133642687886964919706940002812045452431868594710569349812874028990403946433145413189247523031767229215574942467470888486435442357302982069608506492693014451378976415576127125044988440765291024642473419861083593707590154132183215795925939046496638994180048266426208758147734833271361521206504615779983891872952602304460701100280150023101135259982116727929872951501015401968266296941492540021138544706181369204497400927589839851397287145787002606571446582825712513834032631976622237665802304886268102939829399852429718842237664244251541186441693891451255827281611596950024392224670571945626796094149589884988861828142270569852039098546869867438255567133315663100669662538991855119437466654103827744634592156398316740304853124508147614896716922187646312881849202476763487574460317589187463312970419539231215945445411437797341138856271616383260691573472537527238510286598851737351408036878618392579117400243984562774361260306053197205271081038421476920076775080975595724934845780412553476285750172278625713807988428068918939524121941233384559683314445092686613036485708692844093894255738548885675867840192656983496064789437193478945810894832277357044286214292319931474411171203246159544004729659902252022369983993160710900844348421133136014655362894978526553395172454589087154150442073674507153107198805418149628116083336947225554157138975670814235597388842134013660656510084211905481896457743632316424785474986755850120815729020543028440125940174533617266022657530449595307897584097095583092966395689724660420538707217583167107116270298352339405139424853907975102419430504012427497929364996188236010930007411651330232116324591661821769090942911986268765893612318636389693177091847583687627902881246682628151549776775587273906844083571268992790454801228468754403445732425932283359550016235964385352009287528009208268588022108533771527369790068608432448819058780514375314683026997369437165229347885946333112466469745021772107580572908009754924818418004288340644260778645314888527959538400435627649335300719788505687054642444765209329734095790884283482507618840098817134242686174596054847793589125119373470425191730802343406375715582545646221024740177293384812075084299520933209303915661999890094094991498811651655616574457314399146102350468243270131630974582398564789123850185928801721006830804271272222397446457387758870158974895877803033119655458761363100576401044437820687867073209143189085306321054274522371581593814812215438334595402779279534369693087324741406224376482052680845935346991522792399354855648663307991102774101695093748053787412766688407415167155064560555058523981160093814293752104233489718649322550797968604802013827443756030792369942378847289309726480328401457335421234774680424569288833996844673240255779622550640854809054375995537445950908532191905683593217833643400920554879278689869680283237360459068697087214517225026445635682002118391940230217447700821359078764047118175710102980960284389290233996045256562256158905141193845213713552879949340601321803872949204288549199103822972284183160465329701750682859235615902469390655407184483495688216170945756716860005928221830790682859183687194537198384950368627676282429260444669409325770860835080751971140083393485082799710809304777727048528731138425847554047288974713595085341767290185729915540403632273881846746479600780236642956799756133438866713415283931897184978530634328416596115969986785970572296624155165538229781820513502976363787424926891031538422218445712623756135163142171742017929670121604388587936351907350280207136348224525490366218245792472512257916519650204213194200134515939210667846320492229360068379178516576642840932421665268295496707976170941390977357641270019954374884578814285450916721197600314327224609382349453217315502418864305376326631128960856941816779860882469854376539681938961698994874137309796208653257580962358508390372304391042630824670213419852434210045689055364642175417054697509826275021099442182231367451002253244330646585510536400249220783511341153105862087961828626334422171859136257118665873229866963270213978332414154725006861233679775066879887528952301368503037132518500369945249696594648060316733869463008819724030702775214715156633504405618575012220181383108133767159708925913807799885026384489952399993376265420696626008959795822448638624265517655513340103963264072747151559580749422724552492020456011708770838995487675286823171086046093312472588492339826762249421932622145270793130086271024035328374974312049984540932222964473243465797981657160245832706308327777613113683701168735683752419531410666174349863062466920970754366757852631588650747657909200992033950698912359962490661817586696402889438099212992446835067087448123163249073534793187001555237155737199704157619660067126912913661569517125332321563117392824275868220580100543641951133557581117769327785573905519883086676115108445493261313891344435165009097469990918828422572092520257015402753665701760129943915099495871989287719541685744565593077200080164195860228742393393779240398903594640157659975156673448463222342478702359191827607861196755975510496024584101773729907288322850680598850657655773518162928701467679649186184573763199797366173529350329824758832110301462330063807268553439487204757461642257183151526619680589617160370195193709995335519654763883195963245207671260414620117140782085020716172943414426411302851611051465253674765220104432614652867205097880368441733969055312226603664557182722555319777055751132012480881506845232257820726703679952080425861414325217722782315111202296003635037653825719806921330222305087842052508181920131795259354268464907424479559913601546872744212707089376434356448307527578047060668498846925405139160073484325946526638112514871039044143354553107142200000667861206635605059011458022930729639047682583457720905408457839891206628505473309793533703979919689565075763870993500193754962640956092114357713886100113803898404739982923545342365083543697355342336467151630209814709475895490756065601140396323310808856391708550329851201592942170713627102849447927015588320352463451660093183359861477802088890765707691346753154021920611548512787853913246225101790079553805343449160920035681158040796652581080523869745274988703511246115318703711847411024497024099447572593992466881202009915563358319262629367669354097941069602946978254467032201507258927354751118679993028669164934596135038603141313094608672912999547887121022562534099718450308703926052516920247968324747081028258799787647487367715493213311578437633868643434051928121904007870651146679689113393976731106727924465728467218607858665464825986909792066791076053449281271063636321206342937703927583802083486171764191982728301831313591780495578814767335301668980892987800034908984333111415015575642773479896380001043887774939642539478426269844437020547928326223581819960329655580185958362160637151710594242268048204838383891877901088516385005927752013153041228699832805303871647109862774303172983971229161376610797608264418187119773609129719377225724568269272368916349057128790464908220174421794910095884305444628437631524279323755626723618599043667835354653483414389507562909232798232426360804399414066653239792299771831935075008841075091385576678860706949005996597329483375529151282151060099608506454701397843423156538753224675783550696272372278988965462986524768546927943552305111130630214627174462243852244435394820211480286242818904076642240880994480238782049602598707143009456857203369338242286032572818943919077508124979407625194964352757545536566038549581143512671023005809434881002582510288352861757303226845606507640027219577006620347466668399594633616380684641496968510996112336839997733587913642872658034252241671162669763963389194796498109774608906175807207030151376258679658048934420104777828974105989009430606049403969763784932669797507247828403666365190937592194014362593295972451403111601409809123238901448019201578981527703878932846761310573900788334512113177165056317133305530745648417006382278443675953032682180610012845759019642153593055763905385760562877855370926619506986384913606687044664914973583689538408674143229379285848717832510820649976838833571607109067764155284078160059773053707970130853822144118323518299448896717125898500959847582899113160543065083132946747133860307477782705888524509974038941372477119574703322285511903898222885257727363982067105586943002471997508274590479650720916520184011079780238867941763953694624081157039551508541431167570124017000630053387294387234761770799751230479808924236412807769736356736842092467339283773736656641828026807474632902331977622821343688551203858396942079816012376648538717914983463160857429956604653573033519738949048365607700888149844044378284106923699006805934547999317369132189540618058376249308711418282734194403850635644557390697908992107965172183415723194619255173270349628960662098645406284998298729989275188945967151529817001979500624210285789870837585282188316144144206023356364348438810642398154905929081247589991191778700794527221833484784424909283689554525316912445161225866702778381528183847814448620790113889207015961895148168407114335326874549776658759427942888025277309613020071619465336438274086248874794160528001333454152219348562059742513675721140908681231505748230883058742128048498082534360167825395692989588287875591384578993141649638381259935215808768021217745033640938033375932459515441907397193577790853203771981845825364534770920558977193520098199630081733838872471200262131042209771320114013514540831290159081705706430615532063866992715811785223158573214045917888911477250915287364433271130684434705160250494216528788237375856600246554242234229773500788382870908473685673034696843140711004436593619925918748980587023861995159302483886566535234496469768505165198517000131673256655939413942040289365836653763436830132095177684207192125322026814460943727662339513181654362973987807051513126581399412613302772740675627794103072987776969828962572034946259485561961396248144135706906677896955454676816608758175452328472827975862696073246674764563778822710080755998162030753534217962134583279175619421997645502986579691671282508696639322476159766108578413966268997237720596562786297979313253649740491866975579049187581446106401738560025288738635538283227801116939403542355584020358442902414290865509705413895488422254074507576174301281483601384928275756369126665492649300857620910678499062575461753821535548043946981561321589729122106961425299662081974849008475406490158711260580510722445382548204218159704697351781176549078462357411686741448103791303700928379987310315097417949661520919495916626830980922586926960993243510268118980653786943147700211706843758958832085833836883977808430810368794658949744576515212633405292366407099971219884308514242167792889223522959288138156974607547241082822885257154130906240546606547702269195836849880015341928096360166369259692096664588808723213964452508082130749771547898164945628806417104558305111666252727839814323484439276639330697509436491992754492439604874639991335946203311066382126437995932262829164357295985079484857888540170224866341850049912243683657020204670024757355450619678495554005805281974056402303179638614895667283425018295611008171506638945140853960202271793840655254108024736233236468868613882643144564775708106798421678409310997282944632870716137717706354140808674486049029088431089974450854193290870403215886612984475047452911632045809827804701484795924879109830623421761581021041820093780923259885451701686747469525395915540189220594719515380541791280325784022992201219764141101550875527941608716893895245778651476892165263354330007141454507049402925900631486715614207314282826211178772125741573395091850096185728504950063747562624773260381495359703667311220641272096107220198173461518792916755015707294097802154566882717647382416423604167608345573096913459138869151352374139187862368928956045700386104908881719467979605845215058450112349019596134255153545597321881097783139845658451887366672139667312538995036428099938375974012190107074062549512750752569559146276719322170201900372573489437775752361048684778949085271154673040280764273261087454886040418191488308960375443207171636858059306886623194200708969514682288460001664641020131509803853500877435238041034130122961632534832206485105515474499133484037395222264679748098780264426865061137279172883153361519692979041356881146041493806478495268304724705794156797129110063485113688079442769681337560277385478708060511054627535349677031419432797908430639241528764449260462854215742345828536288016969008736924203767561825585223489439961041837423880403049486665316886149936190920569006218982464198306685464100711432306261947499269079992025826561522230572235870218463558775719789824862971200486661193865223305195762722033117661640252970127088533513334751194214775755198273867512669690139790060599597411733996252131111115205901204418462063859160418637674559357431268912301374714695075688603546119476003653106154221843216913700784767169373555171609199790008271169823696614023666125472296085102697613654189105692316901088015378832192281213124283966699083547241621978038884993999026262344097927150510993855519410533000195117515525777127145079423933429544537619660615133876956868707514809695979785287927862711237959144282218313791690118803220103493745939000853933852678950718755284829496964753861414185990085946751808751596572011310039730447227041210543748403828012269408755222582938665614165204604687021971630988328228889618574122508928390723730384246565293076017087025707090674602737820923524174294979038474974354794614611858649432444927493387060960102710151790577899003399006803262576845175261115453564400637226274340706554245342411185258698915132919582593501104591141766981803600130544674823546966094163047751912473083072372125802517394690113755768300901188819842011482800034373967536464661385859459203440868267149148489944249941934861361676467023805221450716990880915519034425138897699972004684346678022305062973320620718429584533521572470148476955751256833310221279734905491926986052035747415385880126348285739499586813275671752839219592738228735309803145107948948379847378056732685841631014095740356114126401674125821479886422901264923604862887399356086309395426496497402135049893091772740345780337293785084248938914021484861736862884810341379126206765129341913147472692873496668326412073843007865944675917941564986985048300796263358623307311543984209103894792579590542120276427198802413073794761666373652253132311142696394974222727570362332031458359944529782745762647031692771727708587838830276332046636258771628192863972472530409822726834944389907475469856200398903325644591780023322115868229720809461780985254398438591551989771977361003185401780565911437131336589371583294726764251178952843189687305580751186748821011895363189606467942586796884618498207165315685637353855139078003271512697199874585364810875025287277139117996463941331754443575038593435853643220265772031724771022274597976800102782586470425161348252117928816114350266467932015219306964323756814358704142111501765696338883292018968901032873135027113164124818873450230222610760900819493555691690966398711049576467064753525853182141859123456221411520502372879394757632735177859165879718418112782814472860292164272188587277180837051376941479170022429884195771832162046430558499358709648006577684473786561953428839851160189840425027123359605063727814389313546705382662242411296099729897196118934371874260012014286019611103367843531233751206974577510278873548986566855915502802470927294454561609681668065074147728830688797323560663190504323909543982585489294380510281517829709609126386551556511091020906422891468577401609678376124560429213393046692522482498956826112524230826762571756851476079054839583483201489623646037118456591632903887545107145366481761722825491959936852722916273714517019791984829099133553775803120769290260696782582364170949773289124420686953750975995604043316909128775945277461252817040541408128932200644036024355699757138923359754776042855108128187470379006517608333231262040917155376455205844092506670833610316722952855711557473600034016449043227721675538375084593551707748240112700539709071140525916113480907729808901223238867532209151974948029341550104295469173085057413417743341933008771937211249977034935990267806008012497575763783199147033805302780581469637086614505541239869551949987936171816372529024298460420007326265956309715226214628487243533839559640630863345292380670899397926447898289595257025317666914917346542744206048340767873348836425329182752538707967893366440736234954597182944165908306923861612403458773695381188694145427674506039964926028804940962161031612361472987633606247524731546381071774494877061177295458147957812201461186119006897270502479542578493352628723549539659402625724021672695332393112948356738733684074805635592946581018356664151830210216168979109299322682185237236963939161340428178000505986610030833182800462474048498541739839588095368430436046150477683667867000470674004652983941663005889781297842256027579423246315016289277900930992762559566807462472962272996811344512389442619324159259800054897011139871165304207517759120819645103629410457354640704340972823950190990713155080281508792474303409347562046700873832178022576689987572809996590731164213656156560037267951677945359118274117221406377802478694135985424505169851881933411363836907072800605761918768176480789602642292211434654891161062871961528768765673286856001826431455195810559563457088422610174620453629126282351181174003018143304051058043559266096715357865917642301505743029670553210021620746696196142901381968687128755040425709855270970945855542053415790734687824528548761156821661296960693446249667291768775081935595607627286848511374035718268769294216741151417971808203444200471323804301420483850090181121980277934012279906467384228997939936905795383450639552318394908576417652403657985885320273680107813363672776967358627509142246610882269632909173604763133316053546677153977654923712178490508468463508804909084052375945584199564397370996131467016948572396826794570606228613578796942779957509375222733295139099464646786310947459808743981682323000797857418814978506723972524439039979565405021873470845853796894725147132087287004813761846511475957259133175588769624007943350350094471314472567150076678394424795035617065691050757249823438168052754458458163848659566674206800548433403879129196085786230814291335507390302761298679400603364967415688563484679167071294685424157773001845264293065235214529041465176947883223162545806545270330086656844682882881685497129327357092470957514653776468837238332646883801237790798404319996325111772961823898426790707724499909639332873166252089478814783012531365367179795775513924193401713020553285277678757313676198979019304608400335581214939257026418226036851049834628938435553241470689586171070642424025361128247355814424142147038612709666380453341547153330849110186115183657890234559054536604478914857487555184579534698631404935329574367921121274176021933921887562104509099861228809362310059732491177863706555345728836980801232630659303108576548827324271933436031309179553985297212491449448171736864805450987928052115487515088111762021612260400086620937629008629521874690563448372784281900888473358215560824964176766341432398571090051382666795585088924954825842592914608059421524305035865446148379210916907029934323892705938778761459703650662537744856826286622606714399816378639318955429776647909233226435744644303530466460298219981197306540202279717771337021946744380784945850043919859400638822095466353266190652079739804549650027528419442097034437998694007140123651196546265510288746151898065883700267103822665795089048407971270692905781291211632994538417577328267422222110578822477275640018333410025205365575387784244611295421151950798832882181922912713070942491057882823506373124860633983072682601295081173454002731578316768934618569442581351142409140218131185152989841708062630843395110269593453669486067913668062504800362388632102408124318791585251763741446679250840097549043718615629808137150041542576782376957518027046982623665677987764543335409378967776409822089634320802619184156069244500440332597121207668475972096458349020835439135293091830474672042217671085762695162549592586539722120413647721690109678265638660723346967718036409467634424803851942573638196728442219201302801053108689232167901586111048732621176582035896752636781078316957612902254804373283894217688319106983129874129559498316404514858705177766061977033312679095206570033691330844399647854754484758245999740504465091221904470217992426505560475929934214512028784494275040634145404315612914676442986777700398762509869657670810057543307961471875501327642931704137488033800374942826182292910268284733192735901900967840889571547360050872558220626985034947315062445665198534195988516909661579933555351356079227213244275475167070600623902502399501276267339254332479437516417890253617068915246264252358496675377498259878505457109229950301090749878905655438731773944905257838789372165109366413178671429482231746608020529031682085127332126470816803524569786065149325725602702824282110423768718549555436582465620240317466833268432474283928667003507960450347236027505425954558790546325447722049423118802033485414966956927312935703779333912832678329919162456043947575220471027868994247399449845585081795326694278165760454533528266786229818400349908475988151391583841142057465531107467004171168201223017504825311691585728200172980989484831740987261886323391899831364004541304772056359641766898538626841422614618748095306558986373433291387675380056208270858397161595198650915640461673243572690440006045882607649142278984118358059618293876480246239194859587617404557918607690004171388966218356299644424690203705776912245299134916405299921083036979970162907909501841367812948145449790690798966348880234223116642930069605749016476770331033690781528744442228362846100774852993494000597498036905526654390413922670963170819396924361587293915709037224016248275059892777676914675102944540922589220706586366316685884367425658225187986470102408702506930080782084735730660244218655167311664984397119211258125703144641441227493062775484807855099070280699118491436617565169339381951180956207765891162140152377588215116456933482760989027045458269415450124081983464146688473635595959739485741263530473794775881610962705758704484947812508347106048027025313089812766656877945077801675727469823148526875503337630164958861785712403119981487050430722105405719714865371571397297095858157183167392519562174245703035314503325196110791042482477045713248231391359325315182945758063820282701126193245522815176242534970438788806321350084863224598496668803653391455287827013948027235540500566959299524623214242051129797296108381448511683077635105922211407724343456807009011801586213404121867947297882488926464584539971799003003545169999915233478626610904530675714548111158206721853799311835811299448795530374088643457831972293252169377068656950864699392768413327576972155595776606999974045502387843200404563209211937614552150024498378350744013322044227940751015970577777528483983963049541676976973159231074735724511636936309453728148227570731952510613781873097078898386332301167406932744783572391914115576357640175266088347327086211399196227336393731828392272891488340341373668731568297802506117812751737491961686038356570852257191291078200942580036819887707202626916306100677440340510531317474759793555276269745643301186773493121458909049253200145209130574308310134744432657181316768064053614322899024068009183950326723114672185370227574300078370764744513007017899314646081195030355802771918373010914813885601056708135300222570811444710133642877135838246604793683535627881078399120693919131317015699443529376058381290456931305256918086160690833016211078612177876160741290691567696578801483171544249421603720079114973994002314802229225184124043442336578941450581549438436871011519312859557386604802394710793460724698300458733943860431311527372053989971002151523460868534818867745364339048420340018615362964095626692671934778638211271394038569173355957210382609667723374267428176204170686358270012350108664632840241039505661156053807196728852965083313755073297270292622374221708294080668529337364061519598885795125637383218508590738397288143820477030630088050086743584473520655431263615304781264258676226973789092913081596561852958660394520816490175842929924013771626510101674327082223505125326660617938744734182737941782775329844115257276562790419856468466162600566132634168256022580952465318614532692338099424985409206734251240033955183946641747273898220388666398474722509932261346228547442560700041612844430353954949010080145343100426460172020344348845520692894737320797909360241296576648759467334592717717697462820505201542521219748306186203689257938487597061736744901917556629587627122667596906983049083692013263512428495372392391963667386426180031814037478496610621771624431627975089442764719276129010238091249483534862317829111162399527241426307335944357372257994694002504233166997370569319920199897639661915521908191550137273246588546979393460087495097085867741692084947795729259764289383391367435163585765567307294847220272727523805656892514660342704468991383357835672631579306549334289232364292897429185830161056510841298429886506951501497285665057332651592298457697598310241426895634080294073648542465194527703197780891377824775009360354914175849224825918966033972730595081298229728303501689799028508793845864256940900115526177010108374688209353833816523849607003569805748785263759412229513737115668506077376652096300777000022538215721259696774081116628290044296972484789749877506939927185173194751167766586074986343588841447498917713429294441882944435001749342433382999151292129510531561030112940700207629340886157668032093312024454160644330226028266199716352968134671955757363557804220002005266386126248704348332161477890106297530517803067239388462379236363324013853333890991439855493768399090348635441533704742228420365291396263709218067465153626498000316346447327965927133272155221886592333160705406620601430588281214435551028676671601899258753394888196202419601405724261217900171410077794872657464020273305244735824282555023092803171399469416684421024249555215531991626259343763878991744579964832222729163760229330273905403134054914460812140835799963468764526234496566197257199454428252204535427668308939843871687544574775352902142327613027524020932928379023224397845615202728786925065497651703763320460378420073321697261238334749216695857435275173996616229396455231351754758079293784029364897279131289884242661524877659435681251766563227751675638795360501454721141541502582647420487095112257366139263443541380701489106435506946804280348884586725759742904962120101138912641540284436635466317961890720143763831082829908257397300019465602655651586187087127761071752480830290944498026860814326024203013747179539451566079557227497613901361084987758215015774668923354801046908159374103703173904912818991475016484037957300276350269547308998956941653722000821269677773617622306452972599045299762290609527396709732837051525498669006621472112553959649254136802050434025168903156849159566059513554059479051393283326590481398435330511717362220086187016487653447226012747520186893103349989984396304111813167089347413273641897578149138836564169906677392646358938409383260856754945507188811679957968113653259410737952602776367544643832398956536980826934314431088185851107726098922099923825053898236555362086169004115278512447861484050310871987756155295705293392108768738088329535680684168473967316991479798648719226952822828411579218671409972464921254890987539568361328404774657283510946356659144854227912109343633105279691814716829862143472941191433275343789402923940633528408281255116883797040077062628446061113210165296319858770056610573950170971414970592046476590931860060640774178777960733176889002194415649533543927225863854468845849592727409721915575482425250343494243906033823617240654083053188884557517110006773829522197827532638203696382050362343257299578340446254679290837563020734354272503035765457999287796152845176634977635741888503234335621504120473763052356485554295719457146511011786831121874268145697908214179819460525784920839774301244111586872380776296957096356276426348151575112586291676079810812946303275631278879567040274104626315235896144247002709511119150577437954236715691454054759425912185876573465219718887040171481278127344887220691282861673520068865545511406236039771618229507509530119528056709002086189942853818011537088058856119694629294371252159917235870913719011672526982555772070435688692188598261215225544861613484677424866059746935002791953709522923901383073722326333870273486323610656602793309376704496299428768923979684769660908692874036987967515587750979905856318266053516335271839470830656173581737715363514003970213948985714670864340144703876832828327251829960247247603540823747220258115283837210297880065364867371865353751323659204124008014010122262424495661279655893626199172070041559910790170857050610157824770832590405366659602322625655356493672758046951742984990209243159864944849302184701007091190243088827237944200398818892683714363527649268982666502497308774471048572050161337590355996637004890372374003741019636818346269816257061564634293009082204586612228556936926435935834242945564150718150144339410780904914417489634628945125418220110189165607668301214039468660839206107093091602225687825255720545823026039310367557793348688256759492840942853912907586142066220546413951797885840089346680347437475871269462316262426667959510234242797534657349102103375138349451687113109468602994064595525742409227964280674143004352283663504681771135418767603579600209890333957343577792016164150232273397616945929175085861836852292394847935925629908821437668495961392309753505140953343651545895376966332664272935720035592647909237312686660366556225041331198566003697808725309174082719996109248223070235171181618966793755658195276692134190351650528048213504229845405214737146740020938423439437525124288954342211300128083676880935557981416993384960915093029165820550382945429797526788830774062880622722544249966040255674519506570868298168953233666631532651098087639648683570205003808165445995809855811657265417090151860489475569878807315248734042139240812997624221454289473898073161350077832606074331964282985966039267263742296214674365037272208622974098425209004768815327624121847134133677370443170141190605472559167430461302921742865492581178131957676257304444314135086383723746108104175596719201512841519963426012700255761248786137340785500287296137864977455357096491957715523736580316441347825706119232304336496857075562448315990217607771778029537873012329258970949693881648644546899291387143446604035756588606816339369258359015655066821490176613802397169288396663535788546509966891385964027008184121011574868157813721179214820228107426967441820232632244826665763237139334843333784104216647184348449690870957340075627140244312686469004671154981455077045257393268956580923159348676544717279869182838165468229135381990041397379609083021157867909531230227512186669140318586864617136016832707544407925889125493859199135454919716486333315646087540555266687385645880854336772163199734383839455046014115631734077223392368773692332945546081026732635476216331970842905935657241917868392059397523110377593674430733014294175785623051857743590968899521025479181805947273092413780533378516077315117022502787328286957223280897277531638655788297479133542957293858756784242836738785910646320695549192183885753870308049139589351578384740366861203810596342927606189836999942430280695616844536438165638400100607972998752905097059670765293941212819182568350207752452190123991990553358442584613491524663384299992216706151458987988706313808749101558012584471052523954853741041185102894405912760214795315119403547402627952387542995845652079240212807199268934225394927512723514116649501500728216947227426515732242814645556916012196437364423640398160582408331764312124756331267817864540967832590416919441481022206650571905124508405232958407149713832512914047460038551166451914063239834155625613836544020962369845555711337791361249831292724500623898542781419753125234794997669749742623142174224682077699987428486468778570743333260332715293466381981682214210683395730466035145793834909238946950019648568300472769287654718264626671993642361154258912038653937074275649791319273920795797128815267370012961951782945029832017803981410654600496826499689597176636055669629320461063464197106270775668463399681404665898338502197215195859623376399374903548016911790321021572530168558291428780491570330822208202652984786267932963566084477005606322665174931100036313737210905267089735882814542037828824626901331674094982830834507140189267009315990426021423841477160309747226107390377901045003641444631285303246777303338545155900235481821603516763657977285075299974527855928139793503825033330791049196164094405556888691204324971026558351315404762361711807133760624758936566073809411022123938926671204232614133345147241280994162369496913420444031859094347418589223156427750971285089121811619111294820841491771820586257176849135717590758861782513240123828049893285874164873068620454814506962373437826263289242994114864086615559403447412837448924186131136923943439157285678870941782576649134524087978805238938950731957047278828461970274825904291921235596310618195744515123806589660439714180811301510997597709468226952024700924982047011760125357750778535133671883382342965817116690966440661652438682747087748855986068159935196532279482564849760196936846732859479624118692549707219147494225383768036984458177443505790881391847702573600402560276984241275471011009257349997353365209551264701622780962159634053425461972660790470977217181666901871748056603736709413512030803592572522168335839304592585210308004275554870290694200155198364320183491636742752182999366836488960027401552704871259627709761952794104662417151973883665475849205839149891124516177903868290813333178459548194329884524253138466614157349268817144618373530750118452321531207595900975062835191072693760567797212821844471995011892621083020365685720102087562771993404203962558670426841754382136264846871162083694145693439221286556999767680814240116090836915378790055348827446938190648963316478225488159178725260341045524827508169007617338941473043699893130508508540698303592813411360159869535340298801851207356096774098868726960708970137067854141878601524999833225467859443663342962116897101639521636368767735228414399312183482975913504692345431016308298067518311992797445938102052904602915151547387930212554932007690155897841428870502130335899958428163827493262459044807312652798159748399829848671065320782843559174347802358603585967019741562483877691246178216078246722292394564728018100193248718942604210019006769340097486823000205737148441337710723069251169540995016589113341479984435848824705081336826495096970366094294417577773372739145941753132305935051190795408127039012002844318251364632921682993568739998031478762216088461285652022484129482779389213767631677898775358811488160972955239739788234311146926588017211661762418858387694979917973415571176531938141867063524931410641771286630787591443605088333359226581179443592128148786495302884440583204556993319261022357809549547115650902182648212357334890995178084247699266015926479137218009872631342985154215794623620487292462519750051656302878284164770992792856783373228303209999388284323230775382992622932560580348834260005256412132375332159640739209605435350757902677524163308776291781568473518478938336602606494985628212137690248035736483970904123425790547208754590302435839437082779182455178769156540764449757653346364945823261541103934649485262827469063022972788047542915750597756038465177373889150124346890614732759551221492221328544489596491679113358325334006520611171602682129800809784964666402987339811577788683123222618760740152881503910922609828046672842423264626403427131254201682846373345483252679295417917102039522762348643416761220803914844113275926120617432641452437238365952959919123849576726803942991111961122202327685596085143507180560016797632515967784370974357131871190937587926030957325437098395171350587299491624745646648986326284877270048555338734902720752599636794551792450948998922460770927413016407102663491348390151426502531622706072770146945560364402630589709733142483999942960878490234823119016209483793714972589648068456015389301591646781410695113989626753008953764982835320018311460963501473324747846202367414299496816120273872308731066700908067367389018117329480994133024881451789388643817549413872986683679077374648891447440583457812235542171089171179479368018352966060407917097962158439333440791732126677589574908405433393711584398452472009166013682316514760993488110855570057606360592289753561141905373399365576211794466844289430725423782250553688094827087009854636318728285447184163816382129825679973476978948400982518060836741190835185896737773052515877852517565223861010567055905543304121915320078852367737623554629701118292199372619725766591068307791680097900143359476321161511334230225296295581519477615013762550730415680578635030424756453836759631749340903814711199553323751005737342369437080541296388164465184277307128360200409355393515663274782621882088178124934194513469876779039516600393915815503581848937800436532855130034615583368096505831159621418329328866565993872967466089607386624876507125554286444213317476718876590429571570176809596461498277397840343197640162640817838995471814667083372072159251071428807995145649490747332411116516971632013919127900666952667368448716904526017756569629891518392630298741001784731285219387079239943512450433489555838985377611306429333972605554735717195635814131604857284556931508589426751386106652515606322792636500304287553881364530988600100890558184683277252605114257728757013671356138516681342247835092634938286325904934203675722427248845040157365864452397083152382805246452919329409632614329228304613147027054708736656082904626749400541878331625062662471480359763416261614953905438641331278227191005083841709632889131342729891297958340545175247011523841592072048170987672134957199942759006793321007363627339660041232298533778497140195671837018257421895351544501758590151138651229780738425004952305277618790734888128141648732084798601663492613940268738603623528567315025284612320400515446700715771872654900931303514154578826531115756871504721921615019065906685807085758566706749799787760914834867185381595711791977652048540741114473519608491650141296618803731510787153750338741079122141168370805810932664298243683293831892711366806131742338051137883442519421782621302881104831688010608202363064430171379998804062836024845337858271353518747070909004922981844510511716435022173852575784095218328801189764182438065620705696547978313714381088148612142630237295737765838622398842362401308584814479189054763990498749402520743371614667509352159623151595568033256564861884108170182617796754199952978392062435627535372715881872640669242462120010541139381301507844419461780701415670189410987075840420633271701689601194723226165548689552954925343441753763785944842372938991049414539034369090595348907940634068424377788574208091660467119027676059142227944913403486509032983293367486913946078383385815048042391197729135583593667518583823452539169563524337460129205353954447852629073738340443075139481053450814423510448866153450583071428119944169071671294336965443285429721878724863564926410063562413904450920176621798811774417128460923183442239142924130952126344301838508167195194383156884358064988078281723285436613949518752563788166894960985736169248072881376362187023869786659130009635413243562295125725434955034522895135331814255720204108442709050103448674102595037477692713491376720593476859030808951100087813820290078074941697816650637876268882875370596939333813690582772124909207692108903530850511889381210884051861857752978344254191746704714137690657641381953631099707568258490516144972320075609268387210296629797227684263158075203929930120350849350473040709614957682976257595633243488578585107052131934681527294281395752969531581268651686799913949806391791413577086641181709441897850360360912281990003536837352378910319703279818738272979217610450436215053645454193338868604622635465205687846269152762530987704167483587198066712393345267422170919854490435975665717855975720364155667129643780357143964047837302382845695571182118786760855408330144245585695357103521385251644924947719591427612911766169938150327801315231086019136818768450845648830715772620831287873060643217552045799790741882498759527448425373546876215496420937801611503804685305739143125060042318441566260833127881957505527390698155480394791602403326097779874593179731093828370800021177983921380632569669366085570020599704558565253659727484133188397871908530664047520330979848918981133710192449037229263510116992559617110261226301835569115104616323063477077695549244421583829414287527902881693431772820573041262058092592533815561487758712500705711087804960414970317565691861086842340589156631553435038558397999392454575751816233323475386622610593121066823976761275670513462039141508837904048843195607308786085074773420080914388392939422415998947124964392757662992284196128668726558827726255742611290299747451671664284250453398633165797520935609729515993375288198034268460157774412029357108912630643223121197912984176607116404689459462832793204131414693692338008715650813973193874031721463184596635416707372643048665758289116973245766843605409536368998552887248550279172956323903958744209899476702652986004502140586300118780419418798824056274328785512693996005831079648774792432413673796333492230314481362773711830452961985517367897163615796909206877500646303098022953516114257915465391616588206605728115024007872842280979835524420954042370376061327827688695874477619894546477753401988961373484115924989462681158536789777815154360642698388896711661338981029512153229650668176872699941266430660723429197089522856487896575722414484915375296694189561152872098222381264001795882075336953870725274943612454335417177538540167109390126805979020350377831656571708504669014245316769889481245343879085343789693287086551870204122409841919386872431818611824021233968213555148123202571461028360905050335918897631330691638868099005795039676083928632152684492928281446634417785966848747432981864380737583632424759608348254110368369567152432495862629342049345815194218017362671615254309179092198154591343556709878769282042994684770970041455375594936367494323592158946161542500794719801766462016563055990259330255715177611540299113439605762910109000592289574972504201081399916480117247373604532362332083733534179444174220257821914498724200749991344188171198389383175854347926585415054792088604766439177673402245136067528140268698815029388454956756315220747787627607981669091681378773845945046455854964504186061491956651801940329039361449085109020464022064741538634067848628729133083853575151403379675537577826043846189333479027129672029723786249727532823972225293910462673782878876089649361923896638359905571290409712886609769789385445044459277854784073612992017693812328526936473872360784241152812185751176579152110306078141944881822260791104249765665556609899498896394470479987386992341630705943548291747697514942820413985285065295870108873705672357182247806691198007732643233672955198613367318200337874573129633819811786436490311421369866240562735614452918829087277147729552384314942122745569811790881392432073992610468031553761371006516164011883802999525861264400731889259906633787243537353979205727083283561001727519535602815666759604852025249062330089242619989476571092608230364897402299005791592710308290180189468436462628588215291780896262522470247903091890371143022010895792744214733607411327872582529920479923256359728553430113930676663317660692469700431048412774463484654357392112094137407160377964826099267427326621380665267883815289354005404705321352389217050647993910140935320324425012273565208794593819808620546057865078421150636195208182368707420943741843367765843522944803071334871430338363671938068440808232285624111670402283231104598488682925395648668829847000300743813511076717509698580233498818038813532702742992708808498055955379547033711641485923261336869076554340436204223785361980660115139673767993415979093646095228143539141196115780476824712222804658514646420498165496114058328703646834837973522562522662369563509624297872144640212043490156260049749233005363176141703353884530445172152151199227824244863445136797311351211471161884604373884024791333150736081780953608310783953335477064605590227642964680282295054974236657006617764450076532616462788369878117583919689902829207798381260004306671140260610437722654046395948659491294257179093198368725379504006499606988477591459315605291509263362293929005757961901155647341338536637467179263265182855069478033032972035279556119220056217606024191505005839069870471827422086712904535053274397486845856401865167821255075108919832647217617327277138405980200803142624727031146100749718261888428291353892356543621988170216628309739768121921320117669316463541923255639202331313788853141921648283008983569466464172614096591276826166444638259004817645520518909228795904316678663151113301758191726404643331853912045613380072604432692505193059341574563001620705156320791138072278278308071141924625528726718414687684718685889502989375221916832887759462421775499041650500420172084664916262560527629386973064077757291381286273670528999152854483070273594813520002528050906123832015677448265232504559568501312157725728489764625524213545815422259309126210258627477136673014108389257385183463651590595772292225272266089087234156594560310777158259246766289468294875078879647292104948269577956803704903529450552118564591247360128411434215812774374749365992363619158671492874948062934914196762218497589606541296062146522758528203809319114735156812963733369701064874089899693595704167878570545373914468539075054053906048284289454276972628229832252914925190555246440556160945769066377792672509023287949346457086361651547591539171025639978389605435407430870392170762539478346406338590307221636325822757531513473084983383841294089950630817631713700983513883359104707865478920262687201803207064694288617331688002388104874387894694354897925574136140313777625474367745151481700557228776952181362836990319773950742055855563688972798329397546634991338317467896296444219348583710678618469382154171364620182595069556152595951514624335117559488397633217898325044149492288198190452941364424095674924132301271197225801682841889007487065566788740405331272176594188562618543909402935460090851730524620778880877527051067365207905507021679322929257071165770850730920332108918055007412616986490725667345779216048797335899340225799108229489261947272585952701283835350395478926628921012581906675512756220667019331122380190381106466949227582932002303177197256457561325662788626907333712888742993877568163730841677713909493624843408151864196278622354157831130357295591891481791740862816964039360133772368131020893501049023882236243242668889275185399247206389971393187938401496904385939056097188884275734368695397866635879777897659017331600361856334516837428258510239359693372974005382539080172383013034109999419506333861682825260978721288610049135113195341472046645406691887131830108709018857746156739037559131194403124794919002135196749287506357928407530402281963894132504538561625237579615309080344642766502901006011529647653657014344298080730338750569467897795694686351065092412209521046213671400561307932699434392825544859581077069789950107611631244284029442620700256963665132489394248233268828393665465650471693023032079921754632056874013954483243775127870458969165497691022676457745914600143520015878126786087624246695327722414975247444902364606813747669959196367047882364281534521942361638025248943364655851482349241500736833893761856775242299028047624620533798276990537385848380974687649389801116398738214441086570060696051329636972175052064304866704066602351291266537126538853033538988712020237035093469125347517670024735342191105628973959593040880229030367502024143831391077689636288485542401358984524993805398030928535827387675919266694595092942949854786863461065328797465299649044989687716264789583466326959596777958284715628147370947171221389783828444792553601691272817382769852964921574030335877206428258462469458808617440880978439861211249889794142708975897326278290421858219886136137985985286208191949829872983722366894284540979176225122860770309029683949364335573278611049581215045380313935803895062293872213423801967022131701020259914750592691214819472070873485662964206134818965397026112043208565557458533198524217650186133598196310771519152539187392968833687769646111393065617553567694333171626264336657327021225663328561917023356810630411145362035346106586473388615779479883018440915358352917274678094315303971609002593020208265852920100286867810369980043587785748213123936923619993226785643777236918694033818748696815580876059340998984083319979014114719973740500533805352079027056944084982827259726699018848763535133689119536053017689418786798871060807198678446518990831402538898300705683492000274417422771385267055937047169164576000663403825113998110516632379215753263168609860981301000255407657281723889876836836394885511647848858647897066768974514648413835108413261523803927578848050718267562065695198666444502554192080616139128566074015415790286984758727770601733610235542485118260714839414706830284074957989303511707172796470694247582564941317707089945913790717048044404299721261775198869558124855168692628873848259541292563569896086390537695964575294795834873933492874687612322330704944022241343914531440600411075752074558788533351489464343907783809650976534981784088391824530383340873722826071248788627874523114584736559125190446673061280133012001983608666431293963826547098114429499688190933886131281125823627982909424845693802663761890330129235401064978943881237422432998765925475490203689946607132284468531592734932173145673800856836691095585538317966030721055043009140284925556708704182928934121916545968946901944906079128163630128499688669187742330032065940121748465389415140830261419981425286367641726534756674083589941458361913033684274582233728653221787353626312610126923605505944791107133324305625600092050961687329393076741452154726076061069859751151704854712167112798940041679576157627855749278121550838792353966652238262764229536040991718176564643221574824718271626956530897432780033024321462201428737227468070960961600193453377840078126866358925726651787450072511746376975778022502774957806067395184299236996908880902153613049935044880707985464373693109295539593560448451096370647751600643149590354899885112353522186879998926935795618853510172187347885769943178881513080622498071112167960211254198001260228306079938754676820582441055449451069482830074667463712797070008522075136560187181768905844391134172086482790730404226475511938922160022132033979245302456864951086994984457264749128300733732610785665861497417238535335324200704986583795422718594592149834877534113197399797021635648341896695509182524753672291868073417167666822513204613430618420573985793924640070294594261496815240780700866845344207802050117118548012685295264894420740082191594849186007844419643750040860818462160478027518322178221899932987272943869260574919749870276839402077384836199437985134731750573032446569421821472592965065344000394647912302850852709329670915133044547944962108687129229691857757812003833454818821984637508259786051479028403592672493916808775900362704025141158869960451507320664993134653985700883881632841253737309525378416183805105943180066651107213828426993074032917674082603246859750475573669266688854986665119233664738029883381065249545039118136985628844782384689089812261482744837274120543124430410850662914735805996748426601244824014576611894306330593056433765973584654320843791471113803361221706120356833235828238766794616083006118954858424296359930107402655109055463792434473370583392206697105600078479438048379431247451228901438904248109408299715916393409123540400860256077789364018399627173309040594572496609152401131802080350607847709211260675503936288362727519657159369887604181219693659096035738552641573925805437298568081373770565507215472601352211184087901417370598117522530757919727867133993548494070846793244532054941430812457039991809853958445487732122994414008747442282599216028375596227446265258633174596842316762894625077792311683788479182310777441207349956014780065012369467494914331569970232756017351524019675692444013914677510037806763035796071337305979454114832460806159289065790171212680810295392503954020382798622470899123882168607928945457526875261926835966732849400625684829010545607285131786100741063700792151970065882914322136472772666874090965116631364050148533010274431071704837190022387335479521040448246779780907789939800722333503558673177583252160585792578415473070258995674089176984640178176663500246095455116199692589149658200045049695160658387378454496809016950021251321039267877478159916287734841086308129053120315757449824488856081561644450446236059369317227390953647951387449813681507812460836520818052458145243348989987709184335352723766940404140652156818909428404356598035312874472082064836343573469119472624966909371285178725935737356056966865854955267770519951476773654982643712692689966058376617710203698570899152999604348799596974660672819629703762192168968021665975317246178632791876447376448635196224044591838114818589899056504896627606545523622682834967206741684359103566409885068847115343857430249648154953393610378387458076586738844012969240805164919345329842988428814305113102353237606913823214661917353437827164150277025768152405446191279042426401789474595143198166547285268914425345688292727309384514443958052997108971114409997656168530768622024494456455982402221071263847427556913797619179321022663013643615532146822548553415936135421004276049694173650821814544861566241447793629544006216199605164888049143530066744300092393570825572123293862743892665105919557476839211952211406499534452690773146065809361527663514627529052819662385286721484643777283628524377507940278968793142449935375055088366860048732529396234022886254583129628107370424905205388912363007703793339144472744497896161287196711694580479161402263971105815536736677539447269951137767964945160443087635537399591102030455963115129630819937901539976096098282183540152644328316307285381746227128781330243677645096575175761845722228582904565162411923272098084912075658568773523235101269151156462948001372618863343241667181091042439841488779720608979556360546150836127703703134730512771750912440964603975315274647230503852762310083916660729179624861466803428127899129518922266935448333396458560095653886182313826099564740668244481079988558654625655212789137998076589319137249127526891324003663371796039684753831268876110247727047101117822159289002899763460584332239093505213069423624069888551822627689949764746973060154700425575938930768179798240447572916704940278963587909281466566690569908859085543321301172471854262748007245123597452127423304061466104840485872872104572314866764828648803203128307650550353628429795675889078679515298647353986534800044686117056327397403582664939798553536917715719501161419815063633865806458482115585514298340001840938359547919509915639717488117660995939658940077560817867349732886283268771771194698702094391746216920607240645760104212047958891445912081586233417787607286931589037770812274384249652033473789692884932828145452346239164937947039459960928037197294050709412048080271736682025164288646926239955010652551210626109419137202605117757681313266163127756974366702322840240889993127898082751786768746828708517508581499233157141113838124401113468576967250644457942698149750852326037901414793438989203664869173068570514908251360828065525782078547732302734877811335756477939302319900773851439161134023197892077257100254373233366897892322348285120733919371791038852559325805981894454129005362183798510373957409361788471954204858070894172509949735216050485253227606758106678029103756325499785002077389798732094433942966455734386354981914211941303652878306880996751111714620810521114377649488404742046744307938275180458089523712829308269496169796657382163137305343635245699978440401618567986208742465848237641511976818687264897186315574226575585510309649314885378267613311867325266125170369550296761577865788221482610519256913674359823684683885516191237917070354243672853372350847076456245876005371647160200123551529477959423796002389454763944245062677890151955082603709303388235328216836640570703647117452687106784945944478851751820670668143517019124887653698627916495017063203954785129121637770642703576010477849772596227599922755342360002941396826081138977745849076238502453150963686745179755074969706765312754961207765917249778708572652003995852111594039562444086138396141182791752451419496663327857850702933354310366902379385850140661454396418996785484455811167312832833054971169299878870283925007060199042687128176095824557378737203674015026220765755959834095244618532337141287308709436860015721376777360009992142413772531653118816379704662258129099867632866546416578909923442229085916165259896498049175596946689717768887970971987431569070032952288286424329393002258680104832267365726912185692894804463224869400994579750127490608919775636294505952499274463931684277455369196859261581181225943252651598946372989940066926646742066272388793522461990510994535281260341542253836990898962472478852438044376827694128538615624301581441184670659809718374483825468784032772837456964501510241191526010902009674469837780861042747057175672073391784918405596896742448925009801679495823236718403409096583075512119826920771801028959756370900507160855134752872208525386587183962203344089089365046912478307646609846490034072355964800878341477437850566361788350180307464443342217057034467010063566684720191199561198363988782167321707284639246977715211698866052483664968285537259961258579426040982192684555559584209772322478325397150209406053556278044062686217718871602897281543897053089655845194990587871769188391006326724668750743311704603875205891081471794038040506269674899861001597859758731947183171652009079656949420030167098047122886603942150453166168766797002108243109309154876760957281225686432414744525783048102820854233163661737955562417473979799953339132623159901241592384246112286723739931613718608642103589246878838621744326286156601138468651735301543083946166235176968899687078833532354210700683888557290607192770584550728699826620468710359879882964944423075230387085176999488394907094325931004262421773100557146287090081462718300967965260129862551039958854249854369310538351180642690887755501155906313717209657067292889183938149317671050826494260349736776742475406046935210282924363332819561073054726251603588920018942238661197931381896102246538693479363171860778964031943040567897682287784717976667517224252726017398515916613415297250065322119347876934265252463158789376138010837995444374783061441138878945083928184428875682145957338756708737166852982976196867060127340844838345040621988081954621214009990055379259962938228125631032726118955274865826038398851638188123791551859114548252615526652311915524650648740224044941317202637854803660156064898798554233515079375919773092461909609511187202387580224355214695005391536776550303567524217403402521962372626832801066611619560818908503588055088854034888195491943241283030529757852695378956961892419834196348667869416826565465569055754772199862772311166516456470488999545911386487646073885719612892462249264470997001876165299160215697651321201881227268494337943528717509762670817331772782367860153264246576882358848079660588256674028684492725115211916250459309719530244097683123234173623968066733239941313282501411075531581272814068198727888733269763609486073938781869844957914746439852156429519567558408730569975418268784273351070427377285492832285183725809475761658947842673587378290662437584453384643970058905057762334186849980011612654292423293761935326839701579073747959468521964005815765592994642524048325168681255084094686498014897955712286335532319313604196845406903811732755715300023880914891085800122791323591647136679182352112819135981769312774953259959269969665278232029664520252783714295070450551047699078774067657813756876932757692703664136772070970284620837468386629989680878077327221231653313479717906952676660069651166853761188540630403322156110192184893773539573775253096869785881317622138278454768239657191196280065338915838738345308429348154338013247220352858765545446578494163267586676246660777501521917833350448437155627130708312331146488341100824973177317237508793076957059903816666464111889318271194972016614092395296443186830933963542902510482055134987333166859133878372760836462226024264408878599235599278383446595271155635898923741782290070828849582892476191239643989806735640945345728183295361841864675593651350608110389030326780751811366620035784434638969641076484157220694780768181851871253242531136847250814690626706932610320901842068650622330959443832105318821833322386408319664603224045876954594645894086717219530696099141521301337732304643875074178661025584824177915947341680037667523953268287250352719027991764520164194107763180632663037772851158774965547271052217140754959966473546210163667463680651283610753429772379780567439812872402503649498957895971549219614222792110716065388923488656264235384369396514189913431342579797718982065074632940643007394401922471870988534603634327402200152033998273066443731581425201503487846799870975284330286460061358228118858794692657042179064647704263517947098955370953939334099420899497135766563439477503751274883643037454790276226846305515478732532593976955561427406392427095484262541993109288821752600164003538048571463566946440707881009196816666920167393467226172358355317612530459868862856615473446811345138379636880684035222547830374123083331882114898005554798654274536623188573071966603827353601602684338094156491327805526980417068011782509412372718637031312586361303225285944627474949569286764689936863849956713445253872381907186093831554852657821841140109354898693428522952490897742172637286973170185225929128471691610357523858402149078049341886930587110503090438826351354165159130999848544549265250779975165314925025538322178983698789416133622525106587862845485655303544066704519924263398316404850898366611803091554164735461383028184102944967164439570186768428960590520969217173878107597577195829095999194578746337429610121352859181892980863935345635015959386526788882269912844029724467191555804211075869269538850914970532799660663746861723871151927205075629217020116614961275926804553857693719037340918745952434508028792606383278984336627035800024229564883098462674847612439113552332584798763087294486314912857333388778831082911254715556058071530380260601444510186100524406394658208258046925387143172987044594220518305695120775082872568876567975568793300392113803646596759139261573706846031566852164018543250999923926495562021096872742467844203699752982920451039554514097839478420944821031194829725342890995417887027359114734572037816590268450032988751664015051274219810575441763660514998721664998176890362904672309549109364348456341616033856380965182312622161189516424884438790566684544824161623400950136757589538777639411467188292635215419749155004811522499064026598835423131601903667905461133382761931994101612449527038400484592371429081230731431972260839339293608259520722770015092292956394938109462409068120562572215090815496136228659429733026784267929435573095772839323323180657628885441410260865924940686884180043082985071216602290374960225027064806706772574750901405399929747081413642381602245560096576035123903313105182201678753084554799294110003685064479670506947862478430882064745867809321310580131149825257127080382899862316946292884005763925652038603370996485923255658233441109193124825951275113698811479892904643671705863862161024107929178737980081635549229773433772299991499019498183901475067670125198748875117643636191171389765371504374820533535091930418530110153811531025421519713189826239551022072707243419452190922105295791638849701402553976453878035975981399062503617960031050169565799489392333809097641534349665529800570993065753567519727819355168007776224426910447488663180948655455033741359783231453173075699154070211115589622562604081116032014152238347803087529900405424038368364880449284349736969504848320691643017975854437179033967926327281146656614572144055872518730324685073773857372601080538706126520587744215220079518240234976444385115947013299569552065549623618578337180977356254267590375490362122269297600439139373903615555058151017813039358877320614480640896461868829007507683097484841839488618353502260044365044094271328727131314876206199099135006206101462811951860277150275574742371681423586591022090105051334799616117371718666067278081679548799588740036369402850867565788510150854834103199061045005681386843519848672972160615554844586630754196126959031172483719263835599523506042644444140115163825368634402262258429676929683131267859600967517510378797029221831873413847083274260359895190949819422041662252933007774208165825118311520385105589187840875796343141284130894033135514915260005530484009635326127811896948176941939950138253085676394104259226052193901256562314633695527757147489461473554998775129197265897527032670759123072749298201272567546831759288958768734633020861981429051673313235670783762103566449149416582826517238390044853043933026480494761214722775933874430769051169600395084664171790165827740708586171995821607109312125838213284299820763338477384158499238593707086187993409659167680403383882276932820899072369403821898760259600398044146274766376633973620115776952287526036857624420002395695609375336544349066773344740507685363063559551136109966280184821159012842196581515860633123684492664016230114137954014787435802752094148726307683454505041734333310840948811170988750569182460227289753500517840048388467336529877852589502993737057986435192599257892255255135571817099432332563291244863410467011799117175868766404464518615020954977493351268877844471420919734614323943988705130106778031027466659051039397496257680671946599967741886943906507429481650797224561502547378847844999135623955909785764965246956312739723877700368865168697844584316992124284759585727075629742432249864251380106882490148336931837737176832780814291956203385875923201102407533442360759683046278828426806444136276841969910580698686816595918669077336188385731702904784415107071521633276081687364081801084255567389630424011861125761379690976112491930068851087062716214265167647313162985715933204040903472076845784915817694741365492914089668441220766337010681824246023915761999917442394252619981363168273990272449265823642010404803769615502804803444347756786609054551054797479244825268516354861322189418369583506726966573122794559485829761869927149084083478137415908970202112568282664848261854033659338502642942930307815834127431662201839962579801586012451861352041604561582706878945464935651885155336386015915943698183247678189176995444197339211605403141429603313160841354033264406113889356497511599575622485982638076802255354672542739305041930451723281387648275412252461314992910480377357380633426357020949809478371615836266333966191614866789661010253180251255632389593070532952040174833386415361682601845617230606121895114318236110768874411077719989259588906883373382007221372816263901193274612460306588715203399533721853134951637237314419236613160694044059234484448863501861561308528844078536566160212208416905982426287718086672708845212149152920428438197271945434863003877098473005743962351188659513980287259735868850423942984500669847979648070330477620020191566192202740365312819046731382775712297116302977609086088819799393338335901791615226859928212779904153386703363779118624237175535798698776953867104913756884350981811459598570684887219759718564348849018482707409895244510303006726540371226645007700482980784039396413293322183674289360573875775320263597383948696481185577144735674011292836802761098417144883715846217041976587318123101903181177796967687703233708059864287591061612566068006461389130006886679657993378925099089215806689286571794749109707360814667309975801753855426118451259589770719984376376122112823662978123410333927115530599611437890258822002707162377757243233723876153877639119186947581826775308766266523920709590945851140789820677268552439048498946271792186246518665411750706502993252023438355917633256156092490969295921763132742054524733654397891118603176133633506868074659502867397769559686246401004754517038681748477165309162278728954444188447563029534762118980740579301312858061728402984519851305815574376612188107692803789737717433279110693132819904632631591644608740985847557627187998916324065808985538218789125524474719249241223058191716753579933446951583615382228746971707821639380856851008940416366791392952624248153341723137081241052776466435007224587040968888743411078306288762153224967868805980350895657591568021487186409913489922955360944528784206485395710863338722065273813669998703911183441657807847806285242559514137505576603110988243485047511851680462659023990896500322161728363640232058329132909064338224265076689261481756754355484015451932055780105907354825034261400867129953864608511716507584607238552024494209381112379479584327883470579037080421982028392244247829447664838723680583793131639610536220165745575560333410738517534862688000803275254682633658044648973208173700973554213733824723173883813409629329430431128243655988348912643209575437565657619041432942728913792266641856069361902568962700840148001635881847950579215154694443579416280574499218543945658566169799418310004836492966807325071576311466935770075935874459505724006102744502172874255879994005100117619302994443605773238383959248421002039001412402750782719711246903047396337209675394108381232052159081861761632928441139959846941275320152175997108859353005121667904321056546895689606630228291395251850448969292553273170817407760298048598482386321419250344957573595285242260153769312051953674325672639986853125406994686704268220747844223674516748151525045553645657297997222026627620531799019343122071451604433460625797432196013269540824623468171716540619305095072578968841080916424053364463006824536256137802313241237189222653232797243756361430234701677223022486937790399189952426896629514207753798722103686734154891419262461436424310003860977406141537922198817109808249681850066029065072524229866102312405523048037719225619907412407138712173245211091136397882853063776156657804354806587615161058986963697895201932444995618443047897439302832110069062703828339225033755575517605234957384928920774385608543017265008171688282988046623865055139239063110806502359033981405341810237861531417606227546925282897800240626506198133635840196412617718491651658653697953075729287961022244532228266999673908049756572153828887003361708526382083643928313394341241057027744990131129212469995196891103598690810463500665416407608189460228649517369730980166723821440561370257048273473185452152154118872356811395932385186335721173758819889603308875548570040084025470183811655242740205739828073513853241634672325828765550938625173362267717589753377708201993508363556412351323631571348191694353446180657916393771885483291867162638726483370832839191764465854390888854467750984348960652213906418023793105355974958089794426059543925761942833543604493883267750411880455909776988809059624744500459128468377525826774737636772722482834221046271001587172046666183346693334389121918797253704993712249444273897628401509234434442582280871666259282776005461170960677365141617697953951305069016080098397207281893538111636071008923655499479157664010913365303488697838816960462159446049446708516148706321209488640604008616528658299197211943783987939101776806082921216843132952644267946617431643544313320055635112100513723645600170037087960398563880628592499392460005107243921758636834916529023366128051214519870315282675989051993145747927327855622627932150295098673616373445131791181380750181979643358368235786819675975519636875119827443098968348604761931153662977899716034651029067498198327592662460654888978553006685535127888667184846679686554305600971009736608127859174141178517703956851132317749248615442805518408783397721245651629352063769989585853369506081740071860035978757634723296819040603588100445028998930801950298680363368102783782631159173038613302694051802022160902331178465052252247110278959688568019412957246417013377092169247465582145951232265601807020011860247171436782100511469199665576254108803428131198642488751319901129980218165327318086892925030629278468867952295320005316913115245028197867867349363273564260436060515406030457270413937804391443948803638115884285780488177394446282311472529412051212989087334500185564181310878968696366824519947108786404620722515862082099092540558341409400956868372796385996459338469132383974971227046233316047419280269647273115164760067996742256657510235201595096945208033920663743688336714598115564038058607004547466277838179349283279587695678919530414224283606176916114623791957065520121899660388326253795488871721251266605404387854240586267493143588068744472308577370495151108953235530182615143732261557302674559184390069114907820457511180344920870786825503273217886410306911842424971601706437338838508129881880756611766532933819049051160965386843554528123187646790910538125809956161995863786952042181346627526506556226934470550915912089599505553526890176672571419654744288139930954319054339142641755672999821061982350376890991459731015173675283158688920456059433043643360467796564586723138939917414438979750050649912078047537852173820210248277569356053661310175259176200213732618096193172489262762230023733704488738689544242551912618597972466808528636243885987496917213518430194286640592505300231806682346392954575425692589061830163017326807947379201350493668002650196121544759682241688984561995101956098293297869129042156348835301966919462836297007737048012489853825173563625865081940222563016467373172825361922221779065165496153755806803981819710212986379296272318068966576153364002899312078937163090003249331233198001914570981052879270387064167901361379389621972698120145762240443596342693748232804216095299995010405359027249474262785685728060782808337268167386880714596655724839499983691505527114865345853054048064295437945202914425629484688711571747024456873862897485735085726151429179135041253419172463048231844489461831897807537562496332625466563042966469700967991262449356134735444134623818701070351791970042794108654018001908322046796530458138957716157427075428402941677944527818813235368008622423875450402424093881452332533616542735019531304242142634505253898405686332468166606050684442661386657037647658446001632419410530833545090124065214219198876980334894844756710758932562607467427711350774341645447200536990887323489095449544092102996754170994327718587062222765185759035983749348363630066169328329068155435650051181739158253481858313299717587572908168700214660929723016331686443211387296935389894332355247008982031484218191108989054048136427771503392437330994160287078634384269120779441047927660356218787823005502095707440807434558035443828880581807382326186725766255022929994453915592045281303539102506672462786586926523115076842707804226957290966133527836891338574235803547690499483163639095762743242035591264525594640486884118737450695850191521611938411745050885020982288313859937867322590584008337010694236156925019158358426416965868748921113878162935355958678874976595158973209597649577579407845713155716333084376576713682793459662102244326901908596730817325037031143805224107770049629656173732687276332983901064166241980195684948441489786684144422704265106736119299049414217504250730326391570253721236625835795695127558645996780952442243485215959343249947480281271353674036967642948958078908037614769028683721744391132659865818738051137392167939328872488436102826396050742058237189577438076362004075727636626726637449701766085985649400583202400599269269116381040169002215991814938544743120660058921308224326726961265056170462504617046325021533569010448131796750593204953502718473786529155819204895201903023835025505646811036553303221710278308443395284219143386464973950789886407279256636198250840629227059221986551367764112844346547939439215276121950547559721144904981151235007269329869916785589153258048499036008904455006605557740233120711113917157308687329176160581651071592054273733491563851507359865681530009590504436376044518966252702387528442259180160496072698463804334090530661821014065069194528833468794864759646904610130047635064451688007885348955720906653719864801202726707113466109020976040946100517452230383510523053388263496115501592763258563965665818027923186634464174248788570523127977618041496884419931196935894601182475281687913513894764439447463897117192131824116095881244844435519742368680463718900155361731235180932040548319325588774258543569320014448287345690243336795447069431919012555461990396337998509784684864200512166765448310514650590384882820583027291306566560399049369478060192929060538166283277564900880674486925986464556648675955549123028320813810753029854170573293411668109422314243012441061830332000068139237895430807658928866887911775160273271279522517097092203859331242234841769886894204384946829384951049742521156371150727375802291466889416028518767034006735122724388986712542071121381302455567156166110553571214775195785770635156811839452947433836937724567372945308225848937019970358326313222757354969989847054640937826820512650950229276071430523664892102663246126777027052464384929636360638527624811405727034110513507352681812102648888325373871461043283559712831237549475164692229978784750685105651975997173938306006797324669225255567670514745941151876479765286359374630093804693114673517526876446336001558227631233643319809261701876266759326782620456618704675379287890187289160901007630606897387503018324976574629203116774421760371922229574451048921175966881981089304595661130790376014733813125894484750789062725049898340505285071611089317880285527010229018906802607467898679811681275197467980231511542902589554192623986857337893966775668780682529896350834864939106376789593931648596418969657474645947950157163053093459090754843606806438087196341654468109068625793029496853999001538589900893255353404699781296251058873792757000518002376893731903251546996056496571299283154946233151112273808324710463404595252896329468821261473522493574629211844786930014168406619414954626703413588409906219941545966056445432911300875202366099180740434714048742336111157495641656028443116359751466884177791849764853650981148967171757636913184695527903033864894734136646050349348337789559918729145435365363495247150601549418353146159387546498509414766949168375870878762102884205570016255163511638907494271598772095796402371495895467185256217063141355357933385815259595530985528224421265461729833440171789218653571088634592737349650671683186041396333269081296154251468397196274691503073551324319431221364715881336229074729728033016668140161207038844963509421635386841411592779825467383408276977335078526960712027528452550334798540492866447103904095834961478989713345330159213694126336606829205492899792570165033626946765562805783108903566944191843756757271946842175447949620849576062725442486332880042697292102496642098101485929471382113735297302121219830864541379765063097533542893368303168961439931423111457935023443538111579027111569144408636220198947130195382824837379656615248359707862753767175918818804405920554548177270424217571452213074335875132184315563190420035915149811359275121480506194709931184141434088358520430481825461284821897798735730541750141205153459797364166634772364031432725916031876396227646885580971437936164419337790652446690262126551843648584389373579675459976905979051453060228113247013513528763441736732534833935350669678718593496029970661432149435681921502348625395087590990911002127944222421573002319378132459638948908294652304733962254850711871728110404802155798140839873994416922999608196735618985473958048500022049653294884147508553441268522176214407461157650866040206033553880372793115574413707646728328237196684365653739212617674900788800861169792578960760057782576587852166539792097939831263868119277808753549036599688166965226174447285207030816672826161222035167365930685799500594978066498947365248150475954552149138973310886956672777906127597938575505671730177498455663109648316172401376503582554172366617688571007872879170119705538119848093544985726747397498284251283199368113818367496485741950813529207755929634612080771929747177178613753037012148134158714969489063249023138532475462353165926770062841955792257592413341068294974992533256690870799202875634122262070630075023595465790360531496609322819458461632994757044597098813859740039419604005835094782861047041566553703930774464351708698372893570149823578818066358111784477811098426058203720885482844642691738352091296821791354819026996032078194808836026505804330694041873087204131159870112340237561625618016320454892928124126737043619412960132210554916415232314168100566473667795749901849612443960152545520880326162355976953059697384331238257744736889997657450085035110623604741075924412576340627316092370410046048588122467704412726394809922065750332423088431545947220622751509793902471667750863686933787295035598245433813623765301771015134018562877725268930019013453316807343691689222345762633915004619767021507241693523672051029348466445100634933849295698185324866846337992349504763097974863803052186531686266009621059100901200671841323420839123856255844156967576485138079038122051258060540465673358973665327383850317532726546371051136775206174134948235475577791867823790473223924127863322144715478691510917163163547136387010566803803556222699320853983821776528310884747242588106602203491781514317141151382987653241126434292792483717856227672192744615184023736162267380411226834595470805343163925691894635008947292940285767643360428997102624297541888692447181531642990268649352393759097503936143203959494558839718047093387456927701265213263759331962915658802349784859511288201062985506176444205476264817088921177596192444321888593337705207965065699843609784607184242963288570169337564488897407689737187114535021912717578046972435470369981302172074314020781137053288969505568813090686019160836233283126208175417215209607378416252486767239761118238695902045301175483424672077834240770711564296775998018132030329933660474132974717735517099294151890441765423958970485401837119402093873123721718164594110708108753935460711602628586040741547906629583076883255000663657297984353769411518994324753946527489457815127306913250233313017084657835765063883021073055737811044760513098211690335788418688369933139109483348394142743067503987607183399356068792370513089290185536746232025268001267876395600620490482967400269397555620163591514571560541321706834499041901069067939587770325403659105214597826274070583126139384865858364843499146118591283486893870122303098858684212874417263130268559893057488240327641885002320792516595370388255863690442287454204210165261533976810688708443621179951754032519737774055181226876869647154832620015487342820935111667010155102051038942006072474261169336457369945739957051069831488248760668050331545494461704561141388485311027176850629390689301063541120366357738134495244151018107606442576888992584240115054873086831948538773699820071910844053664380816219476632692429420556372619542466907962464352352418885531096316269835593406811422995772604859379550588234580276513160500923019529351494004626361043172136489138027249865718079238857000514887691486332404620265023789955685021067040488233480715778918969166719128546456184706050980731545061024157316265500304568722215428463110322277350392323001237931394391151076397250084569361106698670908511192621662145573489765836189208048103868026582815762219351868207380367199209110895549072514616193178403125320572384736454361547314658622268988109145774958755928601486854628251723683244713008795298295258604339305605691388052498938688168144668685351192744570901148092321381981865638294480722082286021422025395299849959313154957062746034221207414850988653558432722972828081618605614848223524279004096025889498700105895713553482249900845603403592842319990851878696743390822842510343644458947400768060682630288973668489788998895872808269476426846747816026088600539949164131767625451605074778427578784855876798753518775320278147122333596045814563979949242880344004555603826114547468171250481447221978923808259748502698285337080365662900899870313905715625208515203500302887572276544890592816529549225123075905174962336869078742449572568412840538954851344543666810002188638833919037833701256489112060279717722810405232390180491591118141357469938846163152159564838711444936109281923879499158919849757346403840458904878400720503298573303245246999141634035578053653384828830693451777992637416351027180377156388267426097248860496162331742403540629277222703132309784330412813113949011899772430242618878451429996883714909741344551160183255791432093944469766630081721154473479657304363298322579794748247817527981438265863928828321209104612691863622878421178143327937281933465771061676577222534422747224964376677725602006136830694881711199460219341566200802556745072605204375349976581544169911433642702436271168121616655037295642667077141161025527636549013127303079730398946026718676156826941555782789664051948260072959382038915924827259265617242263833198118930869697036801852182988709697637122452414579609828826628088124821722572100745057178029234198363036923053909605009915715981934353811419549234677338971439543620910909257067437379591239420777028948107473360797287943873616581002723739689772764272551514702249694659380776073593666487107887568753816508321593225441936149202724698303105997782461193466973356342993494716070412809795197022421353930449028290967729224500547848043353949988372483647992672884369713846427652028734001297525246336252683531667351179209708925314238135735004608481067530391095471991025931516088957258046139845487128331146998727497640120300115320511926614932166330299331798391016173236638289664721476011668396214712707583328234939803928829328342227765386784152437731748591170487703717946880399134998752391318659697960874853988350938077758284800651354739442241503603899233306816302524788755826492614386719371969993279028305503568993789456684853192232280611637538619529885193418776952051263916047978843801839472593484608574710921517171524113808611034866117127561617768032139394452876150432301248890714916280114409057376704840613321355012883102583669738304513760191972494937734453476483482939388874202549347835979446739179356823913439890882713434555287903638523849370480034950706277137008892669971619105488562448607984341991200356579831367725609625494792445345714925885793310447312033613629537216039856575047527350233296731863522151739041792769250372930732882783438368896800858601267533177168679418964023042758541968341703959431868709003737186465967009902180389623181401673756781597938431097755864345788484874799837797895334312713128970410129717516564769287079276391108084471175359450872829688634144331066850261449043412859305340392186355362434368826434997501853703030711458607710526942986493778862963565158066543890108459564655166228983784503526930600352056283764566410707397624550416434300027947119095503337739597324637661477455282884696326101559618013237821712047916463454839864720487611825596792087108867440498647602725418816196289399322013789872146592699673436043112326791118258605158704106655793435164911598820784710112833730539298661910749472986611062175375980187047201932333007737727239100231318324430411684791623771280117115713222174086976441915397307685765281375630541187149323367101880251928173735687010092838511550612994367274153661803207777632335959361600200660269517396536758906906003050687145628978110706560542560960719627519668242715022150636439732769094745674920486372248245202490256037416787797718562561519839767650929232066107119921039996644952896810555379083358488884725426184670026620497796018664355296729694276276714856137318832219448688753851013623174861047799390410495205506514747770620804742884697172098520513881417828175935400744828818256495134054452962755397291531134597421561784307856140132188969223514366735689677287435607529850482978185965595440210359977306284433000977140765923539511363635162506112218792162012697320512356689294196708007017149359987754836376304637114644399087527141784703954579711302376367509417256914842299570923484992562383911620319307553467316613553801437995619267252154216047276182032952110886831911344708397945313910200373308907062128862103173398244097526469588244307573788815345218421170661385556367697494318300677993083760848445856189503375906646227352587723142278161157795576256599299951899006775991258217269776817914404687629114192399207454303487258747966295191253554558412097436199736157810488638649778195156353972413132371506738173577570873533202535939415914231031319102350324077073745026387441986315626878701966151600729605964508288758189081490062987811235336651595631118223844765603392298735091030054301699727455204251870186934493194110129571982895011401902201137632909024787842447309006493258633423213569107597707169069173810840238308857513571252212161034788289365081320418447513509734789639377559494152047224203809410759858445381458004616590477780815083023182237492402784306999908883362002718402673011101401563557812347699232040510493075776832515641438087020637103372686321055339156823114677018853774034266179320478888912424378987229980362353021130043442181437909757367106245034984766152691125967488723543283650109615481955469362913158768192153505659262850335151303895740252592495834894059746032190986850087208440286483864003716882672849703049291421645611707573204735318724954639319080061339282727492184965378189038995784662251028584918918162737585357369546234509590383987143864655780778685184627920818964156582712065279201939573009057026026928831612176691352857770993011121441479392634161139622134052010522752743729721181165822170007132827622131843569022892717895736949725861403786879588977714930649037956717716188786815851074178932905809593713269731972626355414464308332692749448414282866503491354503351723979562719421163193615441938658969504707589854743284594402866887938763308205346471384459509804358619611865879392024281691378623139073706556132619106551519099999467393383170412055790285434737340445819144348014021489282552639734587708304846893421466957223598758666119687735075947671498923377581368410067451123656763495490804159549853787752439051639869472942364676454508777942263393166985494779162794465751975208212263793842835285668931333270687530628685217397262032110641870362948754511259844991953956617852980233307029001345118422759128654127254339338328246797932413582812226338822609522179071953932133688769595469263874014138431689225156011932697500777749488891813038824652577620663461728649950427268945552850149845705085939922571013510459035974190139416327465696616992555347351369235823576052182880174944300046215754884256302884929202334801748513507925449646249960358724446256016164451942825720418667358033199562701607523274871854743001253757133731538653905377712225944814975725646829920920295960974433576821641886054803485993396470178133499797581202997739155101655336438452833628319608719797979493529246331124791981544468889034485352707038029683892041855281608611595880003039441141269653520834312098365595548245863623281807101380022179014915749728573979977100469785573763706333692790732445715673898690615686237271043990417951713170615061582826073655727344424120362501836331030722248261457918487324371754954913062375805644585365941149416117977163287670966197862293754475742379048789606809911597222927813673268140547275153828656799092548075701775033125193013858525614708090261422554749048836157195256630851580830695244872096729882841442417165407849357369410350635061607874762775472940214863183836634104063009458506414112977416656752291280924811182872904651109202514522667530083186076842529600686184931083241240994693934161683358993735019888711648906934179993390572473758806148639061916193792528316900911704742078986692250381623499696681146945019302893789744118618938269527660746325585945682062885153169896231689911799747544228947461367812985169313877820010465112422655707182947367908638495016409676182263696774406108053692987374783051337408344306418157628022055159589511287807367761187537105357687632696682682774595368184935320013136509699719384382467093198768592287084283955780304560278665214777708673492505744103811354121576847297109201599072263116546268312510077502409525451711000048664066386861062859818361703457002798749937406920033349210416653681749275154826412742257964937160503494498717314888084035098989516762643176816433734798754369131270931731665967512000470820766741428721355360109608917723550614601752352640130527148533036827545926640209077940305361767495965012729177284554882710367903679259904675434464688935630542685358070596540974643764813549153734510032329866739684727239317014310891582053661846661177295284298239765778311536297941760156966024668343725504472814129378125182493367427556685708870011117910655523860036832010988979584256162544364123359504325703018320901401309849724837151088837130096927783787595733056389237685573385501159051839075991850815419666263342860345233556586349196900539215209102860520847834906816166429040566359306619924818829302619380866271101654208268023162989179424612324405300456265273065627624792503610624593962968758405486039079771466388481602928829599433687570811407196626518364476340478582557021484013733769808677368014301836016850297830036168160701973452890602854479619325099843134945106228087861569578311338330309986043693517809180437744064766086548585958123066840566405938961483446824284750873335763527454495707259369063394764261443087690196348531239213488590924055846663714267917671653195179560110541647855624055591127471752687406495083886353876539391019836531284791873357275871724731061272298329342589815105775554014922669439360889339897277663441522299022956916505163331187662428673063847577890657460933275629690612331406218675473323517549038155522411516738896850707699361242026914636834967076253152721533506605364778037850389058809604510762057501226186962236865773620721470387245931286084068512770089920509901535471364623846028437390079731545681195906461421688060424516999249404074336894312649192907123784386988151897252805039241230874927800910809718468852846425174277065685323073020137446916551768509965910933274960578330696613610026932713200715884284240139905354537803124342958543337115162429803540037470987597698296597741762125531920638080176512175548932414749457578591203884850189996254682803941996980072280084380485574961968649212609768024832261469629995912861186091865647520727944943720765774834120665298215296406616504256705450876372019853636925106123518829865195978849790725867715396023524842337390417741654152112023975326701474577785825370034606786168524100623075354188936697659892037560033319734285720223319128236313634621876181905963276681709271974488060769804915450847160804794210959403611750006784027180396508666790824465389755367145820620347933004224397289379651830598976860904517757226616166976439231197020957409992272854651648780174073230149058225280669603788868353191458314327446568678406098963000487121108487903754408176589518096565173105012072754871391307385648423279603127540692260279869582241684737277057725041783312467337916350033749506564762032403886658967854548900774996813203852976587413028542338277212803838757677841200490727733869813555008121508929107701300301931599279619200566464036838607714840116989315457059008959711630569395606913434204728276712802268806832298409583630350472784004749850072579898644419343905828899506472459038227024894814914703260484164946665691776110668926177347325858716922610791593543811546567673670389067756429413477586631617705161971494704150670108027307768967635308607307929814136753102725080271504649587820830667731309370632803658933514750788610450159639957440004148167984934702985532381269123147550111785551103361976603250049833993591249557894961640813123829044300945481043571555957486697445429513063649425402099201722091067983215975579197489037266502957873228548905753711952434881149604428015572590370688879139648991098429558184515663610902406456414358182919814846245232006044625770488402827216608037299007957549029896331661730604673382570595338688540750261915726291198039577515441501555567555326068308593589455988271210708951883465455345996364044586409095879195250822668960494234143841305607897693632114293096588335601190752401023526182385491349583946929760770132163019332894974838217321320066816412822159377094353270114228901652746782894111692761014408270889253579408234600347352680267683560082127766760104258761857211326309647179507425156707885134011298048581111186829327156060913872020099278651691714761925001439697918904257679191465253742934522810339330855056905836271072588473691160607748656509062283809146421195751384393607790734387706166845854958166278830209021895609258384856386214632018523450843769068463281199154959699958291510127175011351527877812223494758939030438464607874930546768650113379365475592255573461431124419135870248778916092330474785270200526662806591848415936120993502082014954787000600410360850611714445297285711425485057974473739687398699191751802279811620380809775046989982752557423907041508818848134378819884392664743916859113555219307174684260637844625092820674078035705585748061852115702511177647345788277532257729524791173229943986483091140283051854094530325640263332441053997095170090589085332100335904771164744295164645586785364461846313869140367180190393587125815699452566519996633356971429455734071913242216864875152451367200289795286933353911475828401097009831084349271807658599751762028032105719703995572199304920578871294501683628144698616711209090449360169650401757992137993556037260108250668226377277033801163404528628104500308114939712122331852772819140274475980622313220921958135326238467414800738621409681721600699964409015322470821686732625408342117476893061638984138210312783066290055185178010292377210210325585318497618865972170459768222135761335114181584759132837135968744049635677592215574046856269832989645473644791849593936605797803054225489625243063620710609343498817950955541488993486608024958094768578388459723598248534084571005850655079698847767712874302948557135964519190809544932132105293309924389622186242148768178060980886741085310414190650102375415018588823398675756747568153966454844625464263060238642785953996654152119466573381180771595226650209271611811197632389318920759507638845326988721160530443539953160379998643136004257082077465718257719697056841797563431261776776935551667516110088705023603546439139329615783295200462206230296197041695916882194393649997240874466152632907631546265668876520220779741805715603732978442748801558310034703043603089464127325678069812222798094398080258043395178755827947545651102947388675476218300032428263131728652707903237143728147436163523583973949970604099586312339434663598533407924372617164072476273469692405112284680077943654571464220655825661218892618833884044191820922107707564363661485323099280743602467156491124224031303008948661306914076900986562795371623279191150613739594670420584631778135683603057064081926948967780767509685914352918569320058392775932503884253005175254017133298159749135529367356622715040915054302901512420924485795665557730976639391850297756542065180094213759394974822794285271909093344787363339995868725309604788789643351775502809173802080913788523890033602695355991461058359514915780910619041992013496082622227952423877073803223672919658643938089068206848048867260232925759066895122446883218798174140038669148207470554714033006014422205416155167304295229302120628830175946513713269094892969570055905639907646958014571804969435461965609381953873970415800968220124900696433568436608401755093637973736492931690484306745428905839917742900843879546987063977198917935057362858986544308143478060950334270429620882468226737693163538982317239181409729933001500529794796638590614949512712537582937913198379856358527275889581801814851502261452705899414030256718151669239955133434809573127095727946745175569962029992920886254545600643527940986289945657598447813774598187362085200536505142731022779990070474058934953378552349510861545579656644958892645110494208941242741410998049176087658579518663962031380885838204805878448908678231418915747845487154249892279538340309360188411375848989616420552687578156939661680890071698620009601477685140337491889347508535488532236987874385111992407788781619107680338692284447080927517689031099207765723869246784675148629739604287451115727464145712468486965372544256113549215922660101611667472184425946100103083555294451127182218192309237658627867891681179342239171216060571641969934144559227262218229964146004178579163667451051351376377499893883007135300660015483827106568942264023438229172365960353955966851800834137106904252922152086018454798328580817509601298038420626992751539213832315433098487978112099796473007444331200954277685886306702158931992083207878379478049504449692065756700742992011932524339890566593544736024852266931667698719157213541682767836526655848002092151560108723354728244188603666526578026173374582973801054103960078637739594939319163069517727921116279969913060648207362768793379241156661161403113668513885094333118656829574220548231514159239619699327791036459070449877592646115017265984750358757889467737225765746508257761554315636057650884296521406987754533640585467661864822714914911590106421892219221611062476800820245925436370803699534533827392656483089547330744091481018096872507732419652105890310292391422618822734567224912893102066283457671873142025928322040381596261972092247105512762856272149732254774877035177449130255658527455015140532527117400729441524812913072531428686951766954437174674774268906238879993348452712459052021841377149550301131430109518527913848580777583397390898995650290770001305328134500829079965022525983861988557652033044787651449916383255123477931742180138824808314049607835383721705452670818724238958416827535674446044195150066567761249974136798756674432748767121518417512614234261295476696972132119974545962679033812867220666310911032729402254015758868204785825440355893358858417172528153965339717896007056741866129035668339786518470036145202225396948097351555542393118709655806280942107650167892022237488454179719563406311637649071189329641330072043548029748856084213014682767487849268393783211616943135619814733921683352752486217418338946353294573467259150821806538752019067800905811849305324117791238275896822043035007314392952396849294389325920240933898702893741425087661740051239675897256622468608867283222198416253817253405322425855785824726868285567169271022549683188272811070029832629632900485962288770467896105651675028449489944850229696363743911714234704008946194242137913150635197266292275944175543525656048974142512398924734514152987653432331772727917540508198634837600855602882573609703896709757068065958034032489618504035857651980295668404413084770015355033129721818736448627340398323755594184679090563317528557554745747712182206702640637386632314893539840936364709793548367370390075333555106766151927587940687135222575751530562886331076753434979833788134876993249149650845982973521666115130302335142619812721936428166764083785938347906402741805571057441278298455973259544157811426044185365531551121472324538034135116725221645896879027836352836090688843181345320283114443743541294898355989790038399368488580622455594063772347587576381842845680090661492748487917464019863889865757644415938947516554775425818538557221407871429239107594063958365776287661269172693132682740895653795450620444527974783412716502326444008121616609002937234160218691140802558759177314324349201583087965023096108026155773203122792853782563382369273008087326151305795990939402452058246932469999573612868584186392613287955434195886156757445009927078019286112808888481507732659371590507892803515489163348186282638135132359371227710401481641173013769625512515608698897058632275640051856561578455864220115505636958731321674901317648818538921124997437229917091878945221319925201848517259344897433945608319466698460660029639369287422562446613435177263288964131589898260885212749133531154951167735018222059511124954227184017766739153340051167008852655632410974437034037508983173362668907338756259836726097219879392604319786977745703115766996460886895532735832945621012952586076174218916613475405195313220447552876973573241792488393677648013971874257714876180922224904728503257325782379617211568632178913423252723993313802673063882990951997615127561420794374658839414249093820407251747546612533612818560412167946714331818843044454249471234537954513197392044458971219310937515732902580515203944295575997021066564170316826164886572578134678827935066178456775625290176012663329469884024682936648621240450864856405616369422141368345424220761465491395176213141355381386585194039447877871997180261801271243158218251036452574888518592869567004303643840502484133207545983831462733909833621346390170711327159738600137866332263231387632614615697898271778443282817588683811284806954241100337747202439368759601441932329740345485217342691929414183484382541140281752529475635450504167346833026142060856331932002676925712740243668339750079364936180420292114750630036687297253899370067247921023971780535934744908514341827690904172021325007601065905021855441632250054663418644591874528732216781263943162671468586083387030477012671182595805110999969527388536615263243861769050508971926510421237922549395184200400200043821565441934254589036218952160152824271960062530050506505431711854152289869464335774847184725804672571924337350890593185099363890504751301205712212394926490312799498193713447208714187572998641163877161474659001573175224161794868123056209284281219843060014038509549571823378053567214534547584062651302371470943992454632181899865135599559607023604572966446217715874720025198141402261401383129868049925954465456186868266737648414535260633655669877978818033572220663308934926127537135727213954179508453364731858485103316713248827193101006018582843092408381778144876845706526322405529244373219207313375887057439090709975891198768617092708721300523587685528416750037100237838010849999392914365114614761250057453579334840808572504723322075053908338546475333766152239566682739994824231532537536743606304044517736124711840034415454604818733770040431461369050159025228465167803013424057592179091528026160607118237545656587909551740304623854998999875952117736514753653681592173111592293583714468334800541545360428483475272105293636088745742441140401538098870430356850056425508140396538250746857010820675083330720040869408813653844298437374851065791008873884864402976982573922571691368309517294809734763398078548325265580571230660476775482035662843764699457168525895185432057131959712584629026751081108999107607356647150526278473471385722332070789519437265517431321508001152315555559453791303159395115774291562059233820140835322233056461936090247404766409225990068488750530680149914578726407053669604596611029684656861799089222514630625670568323472444003380925989909491890773376778727108134304300458650391953624522308283491261861119852345688451218494362054590324798871131198169539428552482604814231223267063632677731910407239445959008899225721949297802811697263866912017184891625775861476811318481005186670285174429652695511860864536333454457355016791697850465545066453164580697662301044705405610242494953620030508977297855031438890873128736583735923028246886717888488325725140887018376683460638305114017515527388718460130276980489503724453512217635519085828967273354322913917206915617553452450871146630894823808168675455219058043005262814650978231757534276719474616607503625108027409327189309476367317559768013209595035156263752867605435114695596887040286159952251497629386648288304883682549542204181758823986459561726988310204727466780744063313480394491328444574864157035619570590519183267113654018983194581212045707496040591113766427492500042129619386481215248924234640842615403341138601731404911891182730177504070971354394437532467927863281180141983801551577120609803457443138737000398548141357057639100615363172180508210183069678186740458522512378143263388131803093207751531844917650252769236929117286602382113968939418643337781397571581464729773562082965851284223307903009713336112001417982826353334144285571675061261181137308993919297195647415636137550232866923420813905833784106327901365104044104828091727600380825534872196860767040911833919020251095571484741768746862475735122964879019009780219107991916721705365319454816229788809428300862431566430151356167339992069045037754655742326733334324133452140119070678835258499438727013199025171288038536139175517061112230640681893699436803456785297192395964223028536271870804165269389886032649973364366427902140943012050034955128571297012508318702983749772177922498290213240021400724545032641118792270559001044857853852224807627683793454134276608513385260627200068652417340459729146116553421007268258224313333162569969957377851977486181347965767834888461376224377983343645740159934802351979359721990620696152558833763537976478730661672396896625281113665440123326160870938840418567866495536170398970611610978975140999732646936384200745411377646774448732777255178565509930039471359508592453949068942823140382267166559949629585406729221766342074923423418414083584874250545076808521898313943698620342893184407365260742057083504857625368229491755911510381343963538701049344040904936669701565126477581332536606101806690850476135422328846024116787290592243331782075933318597176840375968713101054271658300345142516365615552217336847953064445576185526268820126188444078045334293866658569942453157035881542224415461820369190362456707502904586797665125164551870629954533118639039617978119095552982995019240481185276497348056751412643028265915499438715535267790220505791239248333746385115615363405301244587970922444751591101199136658386112589323658901437423874158382712575996299411292347277258760140782098588965155336292484314948091353735489803338726288391198785996757929286866768096060669885094043339578607156460741048266230284032736727846192527367111855024564189735445500433029726943025890495955736174713767095966235072691101590314107112930179393804393294291181625157644625171856812052806092341681635646164373438930352397910927496510825005280203445202864770912664873113521982491982411820134252234907562743886256506300176026679874362093884054001775597325713133873862466819934048366115871824984815548650406668394816628488829732773462867311767337045877637897110318602961928690701320059361965830195508529055713913300447633972905073970130459072488158688744866914159635982789983745809987794147192676525629224120918268020392733604625229962334894258275813699399351126537100162327838106394516423858256556711956632868856829434480537810240018060382667143315583992804878098206709838106967273487633276544960197718057969562245564479862268405927681251292784614614300373405933190777505397499862291642500576228457163855969196555816241642705013617930977979582164766199273980580589753483971345750173393246378985949639505452948833592806650082459067449891167607838603528224912905612350149867077304920996460579112077213179155560899056648955760854210131690366863740361081943952073955017058439246981717437123327525071323924636457466106598821147655547261542607593193835898060240890079425292354027455415552348120537112380629782404480702838832323559367537301866133104260464810537055533760047595117364364186250342301309507600030982081949195689885233362562329659176239179481013779837328159940081581547891831291160775488373140529121277750857286324315411563343006690979183336434572648316599242616898091005442954198235319655387281465851577982462564509752044043354542257779954909410708799003237465202312153320510570098406484146183526342878553603065419227845854762270106370487263359769602853543134118531448959001192506626721769426087111749089210935010862513255469279829794446615563342001871457430724533439109688158394211588826334247219863284969735142489196971309918997047122942784382065968986150685268824037303285239751098468483828116049672766427285018906106321861349095848002112347618894159076585181422424329332286815654262475702835395691402611370074319057777054673959890052032494135266408680614480239093612017472880843339941208912187071521211782592148462101117081749239054559639307890469411320171344890462672335773526221894553678894951354400523893608455826126445014840211912355218983178125204064967512431030385925158845085448509911930829956357769063680961196988862541341539895576791340396473631179579092773613718783461837689993706623270641968152736891778549107073972146843794880443818574483750400778499995916219374971435947315195217617155768980582724445293439756938844273831379037347715313116342939825112229815693295059136717001214896125273428978633200551261791697530578496059302987257614090884018803833559810235772053454391013412611523971914744073027207359718772467194672333894038667859884045152339907299083094851876645141229944727839538872161612266388905368633047199304600015429076865733469053975174132773852811421033856727365412119257593401646840902685348189776203329981263277286642201887267109230696093409659806474994335022873640304595776623442544103262021589263509282399270415423562555010959650721284722643326830081175211277074224298788045765276948470132737560597509961354330718351990717300868224625536306084653898922872610335589664536185975454604059634311286822210159424435049819217507116862100576880173403682187466083988658690645455261793532134069461467946811345229317390955506909077989700743031645414252842038236248970092959067221526837437395483626961711654427246522337376488979683733399897487878164458582345256681722214231409357162995231573038807850767014095359120646377132606991373694835164501245103732800279563064161637437861153026571061660629426822512753688980225201286009893171627813786022641079819138186625139240263871885155962658028180958513415595858224989487370658264724950231762912916802377798657625212077589634106147710633463863825338064209142897742838190364806848674915567380014465320866156490044755569719547279312566743792745663943385828371537477026954039221792468149898803681323189661956708379379762890342844530717103551480323945766066972703068732680650463797661853775854862249690468350509671970374428219739936131644439524185989752197467474223127634123687963877986238787971409432056961977843124891880399394943989872142458828425926005012698837155331095641868989756708332102814899021159424397319542116026078512625636267170417505645539399472362197505933899208499234813180867228117758649777171131942579909676344306388654581709766615679926364989358220892618306891283545850873178146925468891818203471606385971072058077888871670848477269619457114684409253523209086998706430388316333135398675091547193732962485529538581982218311243966253434771834494960716405722583817082535920152557522757054897905535010169050652636321880409030291760558981204544754749926138477193355040990180064857170368852699103163215933463571934960051682883709509848161413336243332154349130314984599465791334622590372903470638777096843159910422851767856759814774639055689315617529156889332269705083550267495515686923448027321404572712376262283297788089897340934914059225929600544827775424845873842681833471987914049755612949815372586563710648959885297063760698593691642551434984704448820284330697718707595043633936443874869560267678148188573339783199166745157575375221385851774666614011683899418246210500942397422750267523801428351097423816590409700425277839617221971414553798581410304254184377674248929385069788706877959340789169959176677970616376403184435970768979968762406912275418552360730670819427053378118394981767555133271112473163416303021114263689288585519503850795936068165827513596524042268685976013047455442849372296093354835442130052285823705551489104876113947783216219257367511968786036499633287674506300925312744617367935219428597293619559112854038155667873010330201617175265263454298307586771650471621474129788929311748745868627471227041255647827041249899789594194414446444554459529451529373320446594990207664094556637168094947222769282657968615593956621896165117568208850938843043775992217046364724762212662112921787217688035016430357685467455126004664586601095370119860283507874517160676489007231230204406757264716744919282014102153218722063019262489499943638798983917699155158844190481767407677876101362201111625720682396382920659712839820323133408192460078171532725825365536820867759561209400105216674829375608125363412882822022074407579608087158411699865510453369010781443000933405831574952357586495737976927603751269104076347299407751586496937622550131985529832015902424956052845465069057681109840601939398008570341080232618911265869755039422526100901910850479539506361851252445561686447475661616266638028746706471576374151575364477536720075815315027967711388285421658807173734892533197868154581248682114463296947751622902344690287897162898870046009126138197497631683820397755426224588463591823497614965464338458534322820329466062130476165648556648126437363464898795936502957493031372168827718627011749521846520257812059148512826003568320382209344337852530827800557314497582442098465046619323316514810301692690512116258760953443637802939932173634410427622157737005180026159001125155620528615041683941583949031911248316892789319418343810930045029192385198004901792775961200169433931219254956703250096537882072424610891426221189345818011576180417746777500257498874978804738620061901019749566008658234039876065631558597754014748406112651513884732832837088425761973074607977227725888775849397859596032077957619922712224487923753387737303505438631397955372171749310982277551064317533708744571536081960207262264366590011570097780813177420567037283548019790034185189525647315529888452025216035248781108195069112487864463211965489544381797836071431787830816920673818655484512445770620509925699844207827747716255270416692855004656568451241898793983480388171199207464783162274232046610506423432228709626796407604272982913589817833824692304335584476642925886136216148698875854262231866243043901502496638836196639715419123434990273776458695702194365828531692058437839856981039639322343255798713046144526556472846870529130446493122915184969021796835216669009137817131197114198272132603360022004631864831506417011932300515023237462720193308160186552492236764060014905596550337850830512037544602418808096034939123552119865789614161078737519338756283075508201296189283186100230749914911610406976014085232132495028912201556206937776214667152751310031659311784482836684850192614065508906983443484402089595989235957846432958630616977788497841625287233750942041032262780646957869320854147938329498848181135621288179495972326496185219823831049955747220226444846697738910146597520595888767386320635061668596815334150507980345201667357979399556574246008274108529436820835856925088226242798837996935087006417787040944660449840542235197152885519793049708724227329056252269791532536502237684311825189752874508342992805861183634908321899663083691407792532207313156423922988501105963789939933334420813284540792038511894631462547776983577514958620916261636048247261450857300335785098040962614304024768475204726725582159438003328236253508869094085440134087619383744199662902967282450606507170993111692368011460427256174813656610074929255609169757264166756092833766925826934381336923932602407997118506416361885818417156113758544775308213577608856075859413289744776032590711214005190506620110472992209957455737791306777285997957157489502702163856464219873348726189230680265171701342645923576978531102852157718585386021638999351971702846384284216916722686267460373100705509350601056518978348928270383217646910541799503627784584467402900883526147450384211590732529945943767825647294420949305457302437493155525966000292228726180172761374967054239937171068008122233524292842735809865370309199541047836880917602607329139360741770224736280106728243137553681844232236243616242561188307465923504287144859641483852282640236728885814391863473002472203884620954960719053374890350192554454104156762859526002256280210483053962742437458665452445620710728153431696649396349577263548663044583171629361123755375537303279462606349319740541147939663867473824554065406151926086353256382354218207641734625234812790552794275420279445761867714468343218260196373971627148087798217087344717367561344471471007663900552804684091461565753938313935812115742360490601646121542683578969254805629443834292735295037653808108114060908790289733317178022925453597116250899527780980514190934632596321085594449993546608915582458185045308088774882660476982542445001314536368882103593653421846211689054339064027942735521317440093798388222799232813763761313718748728591205715299182348950020475611568042222728232208461875988692584942150675008178185260363854011270684922247855845112010559470607624457729240512559122781554811815889081877355547343200722736777698974362095791378498005793675814642190690383559672534380956046419487283684165185112676582309631200657591935326940852190687376939552956951900251871169271688912452462540525879645705547603544118631360341781835133799012271795061218836255626440212895216232006518014940208813796791466090120342784561013485695935960377661652200147799627601166595718118546285850167768519845772081532578173151410823008350617024256527640483827687624644988603644389614615107366054704149064708240502380436538284713456719468829725611762989245348457129860972655179868884683564491570550122472821220769778653533187015909404399820465361430935086219621684467700752397603754955260734074789525820687309117731179670384339623538266409283005952475416618746136622472258530193326175645115204837148422808980204711929314578533721229732325768472238840998026691444902885530213547667917865176920548319179168284091127399941389217187081357668844121043562224933704789561015250715431332349920287592044150076676309765724364866874174744297238578174910132104256410016803802049299873549733218431217427922380527824550430408343238160155256154426595539266218316546339935293924217057902852211405717434108509231477791083722572059642623006043477610047592253582935264089677252698210004133531759392864073886750984092895834316033647208509668406730174374124746827812076009198983513264108784903255068396445279994483477738092700279053923004230307745407001154069150481806435978639178734420284398521142213132127493978934196979253846251856340067357062523037643659286263011786810241762459425208054055682233888600969258276387964731158870157703230153959051584061668652849243754812023000946699844132079446762540570181417146057901812373569583252173246262434158825659229180325204492398940208663369021296104194654849369949974940981711824292225619133089496170049845225967032486613124532166112931298417331782936297238294209946173091471722985515642746656224439852971483490259533826151181903604355284453964789335476096864771934092708150840756996280205098204752557803374365897644635875342435825721976889205123626483768705247606742645224317484422819977208989034031011377951099437091154920891161183264678738645635713300967312729967666204518528318095455091549012277999552136035236700582275322617959632721710605570490583291736531522801769630863289725389095271153353236307302621008127378899211830721778843266686314797613118248123011628324668738853412884371557793387318889229522217827517665554967593416891396252506500289346608065518413262910487334031174586560751632827709343648278282597584767191647457448282136839969175302352252528804884308839802643893011971860021705766027229481663844971960337671268496454193303690266838694006089611129026850332478322142246890034892999218164891329445424370166949685236252247453274031474963374810669421221449009996605044721988582262096043553752564289247424344901610602260334780964370281925387543700347603038840531805087861174418898970293738346384119049564705646854594820893585323240714705827818838267405120901538923267224588935335836497196989636265354339241552438631260762196433004853543819586547649086569416490760966644240396559100764136180350408350710454801761856096244989655288389410774168852968476803035883099827035319454135788716844892573733196426561524461074943712610169899655527316578443625676063859045341327824638117054695304891892620992498377469719705502626145843310455923653241836679322237093610819323492885184286003750607437999075446469931752291262383489540260452170693003008290530315023652984382854651992850244061514858991254349678540940286289428431331365549396939234046664603184859231780575456181937750454899427879599012680686131591883351539322953417531419848783988891874002065329978873708503538823537686659316157980395102246832526562787882512097698919145927152916880480248036292816066408755376308196575661514255743054425909211911422632526830053708530651653308982235303215053203948880507681864354766738586378622861199245920098198145857486861428447621329117099445824479220825541866007017800493479962897064547277213207407119572829075315550106555112811151686887562635843128489876845446185367580267102862735740107037510375256820978492199802345808945461381328874077986411179525521701777446355420101178834512118948019768815765934871196636134729057323192741668084408980331960722629345764687574103166815438865998851801905218988051809971592498247057256593204252357170916989056992571151396937111010357201074537743827112044022842296667084229215427867006242743950460312004116608020191985565489531536905019830879920045880893014478227530360797438165027681488147710455388156254021630782816533298919114368223063511953113657101035700386254931661787120236903460175419850587231291864024021574782987109149199810075515930999360980567323848973700577302793398588475218972507831412025332671572131135923760805457441137550378512995312608827384347955562569357382294876867852137856777455557535660248583440622392586023350065743379479476382812498575407854191253525132842814196223812646613471040643357707919820112701546266831367123684561711162673620582632638489927005896686882820480971605392694823745993522068058427815051331610963404413858680547191836776086701924021143810801066643527427442807027502373710921573367105447644226991168292386005964185280502365057641599381072725650383379366810089585716444662766097978788287424210296348333872706132788731592310393189091989405631238093263974593112345064047778421061193351188714685139152772297359383948824832955484001741447094617572529164449738158634090654485386429584260495872936660347603453380599576749508309291850756083562143193678092041352311076870143729636199463710741936123378186299253145429568847348762035426900458018010644272114103068713559196698048788835114081189079565785024617873488511284943475269365221390139436233571044143429960445939410640448016760669969935595032596860230641546192397102005679595726945371599461025890749383398391823915948698232110870738373202601987795019375090407601937095216559464334802446966232278086702215434121724803362109394729276810204461487835914076259493404608123926413718399406834204303944982403640697579892093076761828360982888627024152825787811789780376953255527834622049146040550974324934082869772287249943409675722729150347804118739720015894212347032704861497779847633711782100943495608618484950939091528104928609914569825503508184942167355431242223311450262828209155628543397263040600454778681405490712317610456251465090936169839723479146350779765661583713830015092167076196539489483512957881848318940648417182109726216321305241872982286863533735803617756576511915600317836737086042813895310216344548737555493069381923505306639581068132511111826524127974905245826987217075890548789234957846623528160943221942155690231510379134385114010610314564056537216120866939785402401827778495778917241595503215712981113240482155544557876986106127524115053025276132403364827967695284676323215026833839579703608309109994687527008346355942577810546806214219384121406338503071312561312481655361367030271591239409680813069675650891325803848832835495666779871417635854031339686567952647753120299420846271365614642112844265023587337004921493697838240797427444489903080513708418104108484076760972450331596468806500268691298238702139450083118571202229884742897617499136511670100064605940949600492959877250948692854781911094438175794535952307340137391875565651289789294460275750476472288717190210652546089502725991684711848214879896653036005474096905824471152051102496325402555269870490151306559052370927102753667243094454506575134409647267320106433535902395399917166933339461040819387630635653667559872627687086753800674022637638094533867850779097784007824685134100806894517810026340399647127178695935355092960034819657951488312176407650611817290091962631825960389524725589831346175150145997998910742552014956296480725015011970111313038202239375728319987218739154952793974950670037127612368572949168086626272506990114455410716792300117494703469948555543810661139803095395981197054666934437698614505935403955043143874878102472931473903620714483306795221105763583925563156265573789652507878936559120332237996552027064076372250973291607134518289677179663241991372541954226607953335652017246598664479981881219052237332668679337159298398133842878767538599811387129192022775421441658217024243921887880316566764437104050068277012859840172564895423943520253381296085815677138880055297977646184945522658020757281580423103202081932079627758877048428413659987067186606971821266424409217813066489928145574872153987518663755501222584322602888086679794014778481960413904037734359696910805704507809883763537469989519396011557351915672714543366587994518849949442300263680488159329595688743894215407362262634529715419774629122677930858072672967539240946378357794473337796037438264452264156922218582597913372336438819366560866169398948446801572693225038412078024986002911762020459025455497910026460722025987609209111589965437567149347295801519013608114532250020809072857658878874394414191678572383771168730043391063270921147131379079736105184356728954497536210682789166775426272290595310453386204199186398296692985405797884207364820752745211303894224524889772613484476209148417919594885364163327815993902306402766471124533259823416460276095798838590486294924753990745370352373191353457266144231008273655427920221923287649269080813617441502504813313747856837515097025949108352215936197970004043964943694723824836189830770007924447721008940899894559799679242909256671867311073395688732258679302549872127331827407637854901659167628107733211268880361160094682375408455051475541864698274519431382604829844812866631628653896789082461170730281925627788351584058394245679900755718781409019337255256177558749144390215018887176630928510458182643131987265422745558254267006152618751167696512715071743886179090270625944061954529456467580227559289776203231635625941232745614403030415079654161659950426175380365723659178596273828895982671922184469456257825661683954074692254726605122605220041810421878944198653146210981295636463478582419471986807623960027561624823758875964699975154375816883652878603117705052848946305386745382236606593700837871301279747930065367618152023651942411727561759875555375163816143686327977408093266612999109192417435315413586416069477668915918452640339964714641459788675757556418587932009816951157733817984173724006921809680631257918706045553562711275701622735241685506409593815392535791255580306634108200029527121243263872812084259595413694883403040376627337877285886502705859124879860788306956070354606887530574006296367709570990673805159637757834339937966579077544702216469025852947284510273444212741774210708133231209477430854835769265806059330975588853870256102108046523587954213658609135703466989818140597324062605216718058503041905011062774345537174054887693422261894738164610668165896258311949090576394854631507816596507562334330078056206610147312248363262395493421212017292933970926708344012685294183624964772125568806966367475057212113779332437749398311371951636262160560940446467660769023263662332092759481545160969804648388241498306593893988235006397918337406981029108564327345419956073608956624928447686009181215033079701346248573886161474733260754773377690912865477883503984455592085142657524259137913045772215739350636441191352336061620480229222849996394920241001178508618018342163755272297369647367259397433788488275697225362874544954470180717297002624673334477018565385441238700037455990786303848866351147478854901426414063363738965169873984077515912316042447922994762142153223050256892273298436257297127237979861530300965056728734157765137651508413452112517397538184827311377035789657563871979255815092383488488851871192454688026990728388432422305099497595627317076464397398928039751759269712997129538781560889190569041106528201810390200556026743190617876622256933803592608117379214746560360971159323310316821576174900696249446956985073623063572156616297066097457794210100192823569351808728238496836301655915910996421833233864783802640327148634847230218402178119582850023191576016698550963989104813143393175148002621206690884043081284176196805590322816950515765379377258266353765275836746462155406999611560014834966508273794362092217927752697188187322517419978036529004838485522981522473663022069085773826744703732744453431533501380670756664736733894527862981981143581247126421520385261669951495077170805958533477390358260919560787689245006219856289975245670499074152858529276933153055882464516891247679855850490135029593830695138838752074179824184628379284619475790353654784395418957737975949875203363800251549535546552579982099961579491834967328720645585434133791655490227086010475826303419101469269569256943149536851227331058550858859520599544164352376136905922936599236088338939604805445053760375946669120745901995515030248175082732324566919533848980467079801655725531346321291965065790657559377683879138244228800307240338384174040012291549869364174885498954912463179183023752701385425751654904949434523152112600728663814905780156681523202903820825203529370862930625652483797762137480509060833546338214401781771802285711776956018240464951300519843097588413695510918605264596610353127831597456877179995985965936350554443233501632320159241613719151602048315454557994691630437865313647850208451756648832177417396255501848321559779615923380606030866982348043051131011017084790940239742974203524041412993346661282291801558897933392080857809108150826444582002174188433419668041303802203445307310944019730376942407431123737108766027388344686883210269332801590907469053984418753591789372607326171495851549169069773724791196088299112625365735272873272863737074412523740274617768562238003661671400388949721999828219957552221369246443711861709900135563117551278043964670127581868960953288101560204990455608966015118824605422276450817699858852456981075666815426485062772508739404429513673520913988052506187034115126831745475636086936214944810156710736944467262942331460581819369118649747325835189643401240022665627111284115700263139639020411916507727452985170285912963814797805523350175284318432351196710887908878857335213529832026605405783379560230171121519801869122401789595525285182610445082771910471179235925865071365944731274136010970623333780087499960777136466104977671781366819891605132687011081990072713045864612363359012350242655114857174034568663218918139793831163706740008074600001039486518504076605793431263699182679921992591241501028773913095340344157999821748004011411192004761186424653227173040039770729260767873488127965625183289835462652871717618193367201567678187902887732692054402171258074842420947484283639311466381926258616538761308002071062377006279313016501580799413670162068878073175732173216408473113321325266074640450065549839588029653208767285915646844332748661150243716220551595709645888636100044093852731183442290969803302430032020096169296346370579396164408690691639209294446967147584456118130998481566901492095889897431401362040988728355347983785108236201752092777333946048419868555811413403607448618965477835216018251740662016221333730179763837107998651988924949995117431290372901428378902992935676716702086074391982404098662027507262395618133950074655138038269176919786550561830349634727611106627334631839852262572755411986893312092284264864889314932683478788034140477354134129433227197050287160877830610577131996190750564740017865554062754899792083894449345435109958913957753455900734358333871800722699967090759763785488622264719366183003936978660957118703215474052789884730936195009007706553413787758316800019588813415378148098680147169774122118038087297697068133942920462818129546342346843644655157894061231405431483389118360796461405115808631090273293520805481135591711669785287218053489627193550255865967807692742628288315055058382069007152762481772226871934617979812558424514175953184815917044445152100346827383550622264364943406220684895788979757738180512731503159398125245291622795903609839252413706492180083166472619662428558852166831392369058910206133579995616151068515348408579351227717851779825680692428840359860485621807326263401463276767397779343552375884019679047261653017137218809176737193098666045528379827891851109742685998836889166682644771501441394334729752700740149330082743033335726303795278496303451728369881277805328525251272640935971622673398184081515053497020219427452852001201188012436417439542446683106189698404351685623883284313924465121360439967622496646191355529650944301704240935413979535147899395876142868277717075385149498041004396057207932148396539570825210289550752518893388301123884796797936470630425257473381609268864426767633074230881286261157505664859766596466067047891521934021507468990791279938625058671736786139113669181193762767234936711508917687235172718698998396952768743907845891181823512175713151880929407878713222472072165739649560300288529796351427845687828955326602406699426001703605451256034785732681450354387876230322811678760474637702665168753081871677441935143109472548063351093743049330027963857887806328407779540984325211639076764461247901626110729588330864015639382412899262400266990266864351466879937561969379226595589127868562879542724065215782669452159962331059402505248222932121314931396935625457000796359016775125942613099992659196732755877974849603413293480368245617971966245869128772677080607693835361678858242730200617099847738549835135240408662609592506449312192450658776462416784504050068761249969865404869329757109634519276977832818345653589516919871416004991749427788847463407570987789554266507621492806844791525933631754260167173295726020960925111845935336973464730717410898619011191564223218074604379390950540115755764755060308909658230688971992849731162493026220887655324465166612057384711360979776009921734231220463053570709810267114482125339921890550570084553190410729887582290812230672713130757498132194245949152659892178312107929697446060494768015080979841140704574911163117952757910390766149524606047215586578624657517188532246194951272286874151019668028305251102003609577791354841479528933833023460829973960202206280406843892349764982984998853697103866826405545161469909001487580765753355049073445892609065561431379869498337905681605962218427113688209382574071661690079675494106040974723841515794567905137241194972796650272690164861197833782543510511277596735697130288588023145857525220569374180169700932842769069563526353154198948917454890207962451520596125379470181558710973371327167875040999681188040798604266480608891802172250881238221142582373839264101831756013840329326889887697950078736198822371223192072063794515166924379012299177178172914114925318877368040393422092934554740735266084892399494977254404015673365816912158650034317455478749587142963717349771906604440319165877625460414146253203654824679604990054220860214199155138028805394093412364603533647284261069448682867123148385153083858323164926881724872583229580207068611304612893484683114615879143513626031258931713011748595082032729242832442786739385069454358485084763860938007348493327276270158730560921399385662038388403062043592679787313156957210133201149630036895061006379432464562275144512919383639542710784735023782398736884150814828109284702961941833363173161558958379409695831641060510295501155504158605909470022135208088995413307076524366196761627415137558737604425058221948683947833705430629686186355212314668291407013458791514667127440635014647662813254483028497672134794150627400132478989449716201315082231330433169187705773971578592296592674146825588779808215177416735375805660234667649266832263275607516652385157622255045835143308473705634120551436768520771059332936004310259884096081253607758615269867427136504152968194013800788930731764666159471162185324781318605578555012843360093143088449108593899895273775783514472104549525444788304505547977329079323188760596581137562813943646765744854072177823074238524095203011294822926691548012564032811263452983276150405416086811289686010102944902972133176341621078839939670362546035559664713017567824333079106571924926160431471092372700603335947274456421779865041398737770225837178304045888366124460505378204401551400715022573095063852979500270686477451152466618833381465559899687472062901816226817833437388134887635381037838114991018584515305853014721094376758977397948874731153587020018690265273539660150578309158881583171834948848114859478811962720679043584860634982587488997983940869349736761750903006311111579611385582318582830504899643914094981650801612315404925273275580508336182212116111437348706434555611192705133397947141283696673270974664882998812076495000057952010021884477250733315271052135224048182489408129377223169711141852296961999088915303998627421034984977049776966359796157301304539275375595189613571275714770693201861029789943228268600134919056334163267702420635235744711421481958429097535232235740441333424752370193788166534413793415078750770563696262471130805709183637166190774197768755172095402982842958407681528718133469560061354851471024512273936178739031910029169759674271099590502582255890112270368051636671022121171929643189852952154039708955470846338187456371306507823521791753099850994816514050435974986858847147793998006817200712594559439082740606607745929080160646688285746037592849828900257398933453693015755926209666578300347629903856406316370831266846106597023580691547458403409878722964507427819109794297158792903748086109161689512049969132056265602703042074687332224988392474566427640564787086010377926405148217217514301733096391552902162251967633553811569542222278814145435661878781206269173978562963972568996334723939929511569875870693118047867513432902134592715372125862654376306828473119749408970057056240113486659454919246524975450494751861259762598802330447305708390047067711531895193659309505469948631436468562006916967347823778460376119495258482915924209873864320361544665006694545058462518091798046269765027360100164050498336176333869328187498916962846716628056749940682005951494371359981463966278362128660149706672804719309239247254921952399325879341699768538219389847657858486440150382422647440201888532474369848786170151678193314547111747569996324324701197181720466663167121987649073405826656522491806862879642576427228494823738156169778658315666023140088687447118084875106562611698599821488911213378988094139447272049382398117227888992763291543486118979239695470687222083316450889958424871587261273110821685385250235137643415738648079122472493001068782131466338758967071664224628242459312617703830295181417481300977627193891615128738189750491677386654193690610148227556699224826500959024544728681538190599785902051395923531348183157107280401088282528526982327673251930092369891725102096130037883699095256743430319392937171576716103725341963346344558944660799377723311450719262682150067925116771596994248859647840705693327850515461890441300999159615503861415068998381520483876340799750669318403594817080716024919697641699843955002377056606130793156573020303908166597050034627363743458138065635627418333519321397606577453580697401155592332709552125756724130320535344815337964635919306150325764460676446080138592463068706117409456934242219174331692847177562736245021623353126668429226928007750861976090210990411156085639262546515321647735498800020563618619624060618117189698568429125252825670195310760638563058238592108445444358820191583366857723192129068172521184394027727731468332369719876447324570612012335844352820408773831615881557296843252943991959381507385464884557535822885947873882714905140440238296159014993303880764537824505364691397674014815184122399695888928581141850085180587052066459763409166243185647860042221992661065293600860068781752460186022419304925370263915930118725328552911695193093582900683838101602615790997044765724184934324640542281096964791178037854830627566275430930140928854608917793795161526114913389833308344622643809258493996719957306834175326959007234664936908682046072427579287264840236538819912577574839429556627422430221446563520441143264665737393760528709848088115652981035532300778227679588686805388952623776505768300331554336465730819709118206725784991538749527081249108352371434444248196631963027011934916346083428430859647788651275056063119889825754788518999029222988324764462509712050090229283264420564716645015195185290587688022134833003482519880862301558561016840580594494891858714108271576529915530111003172404569846516422139794826994561756138191981684325150688283022067874271023724090517842527380472473950945617550816430505504527906390624593293661804358811304240694405938147086155944520017611400064292162164001354294183970638021260658506051711936558625752139892809278299373484899848401781991350283191289466366653721073202153457844719991208776458705682444283779128944270635262816157708047119354135012874465144092327096928590769039807662167928140750589741850104012821688955608389035846561209165931268167568333382680200107981951699676393455499150250970078978395952167783077072050903085192364875450544560877440821001842253984793435638263265058891128124811553570832978378240407545152496022373101875442961072455729377881959368839156847320356516380609708202947773166594695500155343035435787431947001982652968317971062645904752958966032973932389600985914299306427591503115339390630032298188335379481135877461494810661181007563962231653581975204775154801677144376941485112266020372429626190179175557684123469275263555211531237733770489670497380595902425947458485938008765555611906609908119749975885808250521008822650704428036332488445069672243563879616207218683461763421589758230288343583466176797006576861792843065509246820334001987531136176584324617740868295822357831989757182943558224161548898741562499542750625170961852608405806396431353655516994762720172914914654827503159254272296398143743355109063895886447458408225358545921280162342026598568733392541604827187612832648196318252860905516486200401716640623928660494697743311684253149861424851476021428687209877961421180892986634438290593478721344288984182199411240624730087357779039234589311904114070422583201498093629765033288023706832872020833632729119122228602920799853062084235647225282619107102400168233659839122139173041515181730753197139988020758638130742950954380270609575892439331052608934651393712767358195634227815357029851607434212905623814506233194466304409333810944416505880641942106855416698194019391032725759576608000557705157959256029290604180336762089058584243048910807495784365316699272584445346853119519610847930971752625596282156551013720548566289802795958578900950682076445314034289070397913685432617553749152818443638873488476322622142933533160590946069192757817081747020043113240415187581731254031249716650074104275425005323190482028184624012461586782719251331436626705653551450978001136085584020981157492169904197743146107001577376604987057634445355851544288580878561642809353659221159697440694498970610053923735373745704278709878702833093902124678235535792056021160945755364970502846243037154426568994178005817114310620905049867530291723486341368685951757781383909157020305719309217895282993380837786839884423191039964748873356140404141993414073227980716572304601560451542609761276506144434728632722282268806485185824289793540385388436581272615769345538649165276719664186442423707093546058380842738791631908147138960521978029737911429848725057989470596462834967500811479677598901383744163992598094862971839479787816250604773984576102158647716831322198359304057484517254898392591317280134191579470468554146692290099263820113467319287598624792819256766381445342724122212068769719547977175619481289078826623671793889248201330733344294880730147553955809131335815391676825272941376648694396353661600071858461633156520185825136169434606514930798754887284488604395781547667177901098644665775736262075496897204185926938240576061934967383598085683602126902692305145396012496135551650475398543599015838878145219527539990205271697543610056047455958740394965168417051990968477355734770896398382394051650835509213393633599831324225209164794890723804226380673142052276276557542137957701846864019154943748444723547660697076552231029107659405124909923671726610244843237441637857240863590011793588351115552691443863792787172315523431746743144538561551092925427675345846410196868868110748173549701958081330889513311499608065235389261920436375159056106342716798150059429713200659903387017158808804158584932092544346269297992787213116396533507158757488139020367388882456943471722539873686135213430486213391656118993413890871658209853690430054589980459042183333722494867958732863405756189007294345205957073697816722346578533207220095159313795894215358476992551644341698588559046565178626255189754207636572202188789577637456793259114579305577349525061356919738454219916872720042008920126422738648310863991192209184175233486202642826987241172734882193777247305548142554278171364652727350815290783944802788856133211897790233055734025204441229116334660435117794888614734549500432758093429957510438964970236519076751636327114013738904135391107714501482730294523816193448687889860452857707517164387685985642562870934558769616071817351649607725190548377878287314435961641807852666046323886717719392307152316113916141091836825045845883768371675024499329404872837602931514497976909724838746161027894950179783736731909499915739435342804601824568034144498993887905843262026042861379029824837241340039126760238923844734148291629592558422722356864276832335151611670353752585444321093591124909924078182680538165562117229542189461380527985133285249633457427807865835938918233650234199311016832128969160393739216094247732482238279788746508067226552157586863978497164355507141482632164750702252507006849025232106028454253565644861054569621635345574712957532223795468614325842035478025849928776647198173745109914402292163258760505135618383969242603912261102225057276089306549955688021594745342670213386806454665079985178983222695189009546524566505355850363702998546251801094519630780752635237632178329695030357489636973515541241794880852811937069731973533003001915629244125998778781424923231021000714664199291795177625949731257893799549655964016553278625259122362093022156566465582361375353149223298120050936310921654003338976723312919462109889898162183533656072222431277238616214812723130652471984153369348916367514463874771305427374321864951145218562390281272927112173321163183799017080103683493317525306426172630690301667276775319109570580480029125982977724135183789041859681094065232352316852257694880996325320345808497857419440174157079207941307422363599088557749328597911217431928698041835499770855775596999743825326102791551075930902987311231198989897062443739160616551250606130684638801070994637706602851446903888037048409575542545744485197828152819397708147316990624114926273808097202108423402957084919004095205129863823462373235113619597132685261238267390821058596525354521882201366783933814744904608791008988145042532025543860784316370047039135884326445289638897960646133681621407810325537382686837888169977579840551769033920301423507216836795553897969211749084802645886619285559506745685253337486540956613480388382606112128462982359504684714362315887373053991611997433825506054409586535722981857304616497847087006554177694885349997861710862301094454614505674561775954271847906696228792707739173615823580627012172892809714650338781821046939237786972907292117992019464625622735083223426561400886899731870523229609163243430575132278206986071709743281279221130425803158410890455204352744460512739529370741366485689522413241343331730539868063621364703768082004633720957504756275059786181270205450467747399579603132137117575946012139246059635290728080486526194619372596763767484706840758188095965420290637863560872774698013561159664168559213366260396171686913319173971993447188432642198275768987235948548086988118750578016285139361493195035555998625562528867274771790020246246365525042426761924515481796913856197071582758423809190404645532334154280441679352105785912430879009056176685779056175926900819423608808329672070283637440078238668841928448152149400676598787285935068379879754439059514556703226104423429188593398846133993000299081382743740155777238313632919282930474744293652367576382125467302883888224419097456887260084202729195354941470729516275383558325809038378293616743080363930127826797588803286470667530724233093138937786567459436230611061483128950416186269695818120207622282136201581792199994541465171121899823994351847829433152810258222444297378281079051010807925074856901606034662299566617157180517577085969694745294966535231115910689469692754598673348655066910371229585406813500026495160048761286267940023365738338015812673709146312619732455919471115626971111763676177653950983061330353896772259970635508914348536618118893991875838311134284983886302753530573390513701085662532318698897998109372490351488525496869916834225344601104511656799194799076588164008514407093441203933937458787219592359685928395091575537571416983254756073587388994523140622608989888399199986662334377645436249961709147339609080129711988260034536033283593283828183004425688139918625843769848813443490929670093923944353073545052832163889098473635743505408067358865699054453496792330566409167112279188588645086036834148727379676415391956850961493114985114092798766254784231866500142167906943719111765078459088588302351296483607383398946441613084200751263975557186012659766880389477843054969108333250349922801966883502968067078412338543806045137592700330640157772434567230129668185959433186292130402105941001201247138446246294765929655877529644172332705469275277181325135549719753628913577593213560324248895739910558196563402375221318318717956468471692832989572851585220798492792391679191999807231554805032991202534815934644266022270777216737806609312767945877196269205637718454445708258038588678335451508917459394334931943644980247669894748976444729514988434759971312768304941004085760171898029486074470402145325199351134146582050344345672899641094665894118231746394307947074130603491601356798064321928935303012189547554120700180875301718135992986308845806662088271807730509968027909301359384341503072453892388067375860055502670282374665722687256090600676864698820241959210594188334517988244492813966214631993689101718586487220885649394064638808461287319913210135104831684490081671637638426033483478650540091098317921109705579697690899861560215207717138124807527882226736649530790005477787327632612632880787434703517049942332322987024055109960945174840076709423888426896013387721898047400132245084436733730674605029928692329009234523677672799345349310118936099547080767868487194274123283639223911739952408714594362914859819681113828593494164233492732428944242802517587981473347110446922953330262077952613446965618379661258335032228589929312841833773781705334587038828594330374684838468289477754804337479992850431789604074473508195862348686142516785140200926822792596845460786870983197044871894281945168632129594908103709906351570029880227387020577596030342143685766290315792557653409305246688184461927715019351848704666382120482446765964499304589464202665946334787926410395512369472532344420604840450531749077081755193496003391720832051932397371556711744062940883966254175983648129522320666092991838617734193810169154102754142679997168520096507630945392248200675739151169216567656590917645738378132802801047250227311509195637523260623823784994810958612807356644485421860698940505131670288970477822313676540172991112090727016005657173749518883188410567913671133125785539144631438433208835277737344038124477513144916899751354620515070203194325469133418015560522042929184854136416622253446551332346320891614255573968337811535259202656912930279257384827975707162633392259805114703315992598646110636207441076989950323635046865073552869435365391217113684262995894573698010775325601002555614001778780800314362645350464397855585906500704793838268203644496545044833964925582796633114890977389476208999985937003860567222739657280812621928083155868272610066855022233771974715104098587313952950533696665092626426878234862935895700937989046356877740743076003973306619226000895274367293756433093309060006985296196304548055370780768103083787375515796902408762883526192118058111900276281452352432339058313600091947970209733022106066107817509277298748635259021712507886043880775396139975598020714423541624206040286274609254862536862806493856259845648023638830985366255898046951286920432894665283896947995147897235012220910002127568042192471045904288248874201163672500321015653350283604695896111737538380420707600646238803634194861908973613698126609819279000580619452308084759574805509751577872178910277751110380432394632575985531905459718993189513964843608761263171969416719841904652744625495066526560161523326384039112269508224096967485811208574319488406465351874630604051029895182698222839684936156646549014318668352689011842386176938499873974960302831359373491473001537936083985752911359914931543051134621098907433362693491987651886428619533541450627983276193173961442444554148574921231577319426404945551508424851647098260278151309017345960177011285752984107601405816462351258452756167216984385489862082379212532727249619668978711880156108328790401753518360708512007692667134418602070902296148408668822785237064824906379796860451700488767901152602738249452179390244674727486497572921394940745822386948610115448580005370437962926519792950306803475396314007507450795497830300519117813222090651936300727661256430124371118026027131138026701897494873319041575817321225362056126682828427172425316134273528180638533952441878717515769216784205214063393024709204093130100657252686661299211791576051970994879048361675183278479023159715213152481640204663169016956009464055570347647853958723485738353770905074261568261338486497674945918433894552079276096829097435321043850445687708583300928428319877598821088265864225563235962625980409527701003634409718528583256055684024456293036935973285040289987213734231051950899119140814583610818547695070136313171089870776156713087409462511240038386024618391213588626943137747381164675113210740099786378425111261100053215757675033732104224036299318796288470853174823494070575204674391102633186686496778697758165898504984289862768837408943933566082802138271067569483666805597638934410637591357924503210685300091347167211528127132059734872815910313934864776566205781078307339723928719327286299002892825638866599760069617457375614176669597310966479147256662350278072118577596037626330817105025665756977016320345831324765051249168175432122015892011053655435616837093016931610542121861662583024558812285824643377009085830144427710596817624823111142540499934396275866415873047547806882581164148008029721557052117818018677078599687461419553601847891155445562118385531268291441489360074825667111544853002340345479248129038667878113268554208521082290682728927696558298750469800693734308104699649488908181457807302422192051449718445660009287768789961153165134500459291841300232157953556701067012874012156065974130441413363475938408723997590610321083629451536154371371290765424351729238128965132916700613986032768101493020672700607651536784446951790526703988612575659780017833710215970076126600491139575933919565873636340213108882128417602847689490570001197321428041696986812670971510409703091537840711483766217819310171856934838651206407913415969199125370413307929489249724137295650801526311943172497385807133828949898098833599074582444677383801443236949123320696863418311273226398899271084584840348272330474391527949282291769511524994549749151180061985978629283888708957943705110669782863921559802758081616505494718806850847690661987543219619781770423307440497541785715553731971731359680572623733401524606542101325217533937315998933517760671234051417789894958481745730826003023171989658373682232086472122207395700613182077443612261126184138139816840236380749364992722057810470667120767577270166870184722032004501676092801593332713113110217273295524897607870821276292869496013958621032201038272843044739289186258548494194544313939165831099819089709767124017390968403434539124565889489620330729158642369411485626642318553738269769898230403167993640240064835631370133937419402082148049649379293828967388166865165916503135421570266096636570603748480685070270802958073214578038204113015661957603996297676188562000976556374475786939405950050668991654272375030130006469930530664388680763755607846841350213845623870532047398209660314062737798628278392181921342374150107991529847676657898074091498518217113365273135166087887401879620243003691222591159290355080205656401973964255640110810141112165908800037405527638774569843314760461187510785804137423065903111678626791142924302845943515722860131451538232146391922613119695898849162584254223257831266307160879311294254433386671393214875382159263080781385169610055561172042110460124029978647207843653758462265706113180743498500821863951142255166365209781756112163531036727846297753843468052720359873032855135772161730837083758229341673007439663657941182628820174983351880762421841682260344068823318194306724883500183457512427607439914807050902075722458287169966163852155578491097891199047579841875372885172089671156983359271909603644938893724640887419173507352466423829744076850478150377179194444462901181373448709635757173594502377091153799729017514340822143117386422104985191027956915225314138425834062745982437997046299852287197419184344146074647881776377095011143014897719160969366698976754538887198558614229965805230866002808801096322350585527949602708166230022349350471993243287226174823476574516311230340521311878818434593705817615672426546551709048717539119533647705950863685877717865582839346936261463020330132045331867206470588098076341414282796334169257057974925952188153002861732974985926894925515249990709002815336187718602008581207594127115605174045303072644857763817479281488591183348263962259214674105497252433398427632719291390494204332775632389572172959292127649475298550137165502144280909214421141808611791038669767946773433738055942794462814074498094281624540149662838395037998915472779682464934902250730952375887224364388106267473188209188398981634324798454187388361562854563719914838144694179781125259524215716416165407274945111847706554570358526159489321671631232005100876128889286459619514758935377832276542072459774643467366313379097442916765813928787588839058447300952348101816229652456637304960528418402035252928523095713502598330130412924242229952947707535418347034264884137218627275987400159214682985326502088558467320966765675178107182775119159018080125134649378750806777945481874579237982585324168755411362287552028030970374951446121667778116604607550283320978619123738535202381738887211111198024810911388921146206982417514863380579305340503865712132368330432230597807249323768226121061608798556734572608359300662847486879536707249695656631683761167953104159128444118340070762890546211250615630009261585044241810730448713306648100697992788771624653654377336173675696267515828683011037095991099250704406872877925593228114419369827632019695700304902731941948837287153988302026489720831983285056854858345705143929728373528529000677932113456782962232902503999026393048322139149612611722477912797004081696012103622911734814772640027926181226717174787814259242715601210521811616409568364779088566287821181537494756767362217253001303976476661461710910555670673718011303549365890151951735522567360861405375114838800737928372409929367827381801635594136151179640524259950581866369734768696652152003833474802762466064218575417803690896947390566432073093972756631110955012279237036827945406235716652324499804055610475143037212643236817256947104433547146358954695704626546811246948750227923410817923875563832844821649164553233942366282103656738119595087558595493210199121937623656794094348265088483189493479758725993641928696595466246239095211600501105275798788720063363923563241181725862341358705402450170095288477718918560825048954181847159281119273818097798731162299996603293751984782982305621386854773296329924732150387094977498853471584234839833336580651576059238348730142392205300250770071470680151750306110349692249428253111266104041965899096597149996151356545081022578375428939365081549803488125293932296236464066684697346980001965985067772042723113549328392505443847881232817122271625874583849448513549122112182529789681084637692880404714949094252255888160716276331961376730861105166217833544083313336864733384117004592628922681966977684755390933619218019966749889223399322278071628134028381081079005164684069550896767631995908845079236763571964202050509992984077157451856993529060197751337465127725521416399126858837075254189605924664223712085985028160191169522859434603069971094262226856901771350877665544544757831086174540400474792442750537768425399072813153500438651708702277648204095171316571737534553337107218217854278071260503147975674684476787489032956530998802709994157712489676026630868942285466560269573788157481861330672093267091701147519939130928742863203006282754256598455290542107893288229331029268163587882749077904848969813635582549068526510811428583695055599772048218010044404778593366641195007670529747861234343205278366423441188550548417939005022787957034194303268658441152330132565922680384672303553693308557977103299627692594376835164461310787508105290545368074570663469624658146836593889861820137061727515098024818450579389871232264788950564584729722305166567577777196614766674176466722653251432327832616220308878783876210424054070056012616905655220313162841070987797218940343755985357042246052107390513430476558423537130162726457711456786780174072405749696968746056996687406582006920725332370560622325347596025135110518987700184283341703666120733860028802548267725538229450262752278836813730466448788444673452892827246380093987258876385789934695327725176589435572801856658724974970569627333784096121946807106187381181485916748582793084321398262946105980174713125892555717484052240869321698336299000345314426911425867008605490272279207162101567673905880359160086327440573445506486058444470609607395664354348008325479615271981151549487749204807775337270624230888322792192186866776920767247542088105270513568131265658979373495883859845000122351879336027847822600500002239126910230337306651026530763229580195807340468203354034620432494823960922433533544172833633583488698541752707197362146244306039540872565224116684340862869964640961061948893663218045064599108829466721836882943040102198061031798945251433180885628946495670943340608739766982817450633429917504911490960614370310590690824961600519355950876672283835260159291462867125696691135740180974410857285986387453008895796016060345626316470432935092338979974351380186542603521608777146790751588167432303574655509289347285139296347275480281051224266435158093027708344924115211042561904930976627451581381354955566240769405641014764769153438782891378955560422698006392101507736715260189765955326719064693960793901910815468294549626313331022832177250686698810209772218970070766724971969022014002164909314366947141224417058150418512154371591073103788523077160845783643203692322528217603638773409808132446770070997021739466548462345482960145091653944925684233884967840276940838446690233995913206506760132490072973528401386715454408122271436297082038592536170357828678589149886601727440430526804782498930928565778491458120932041641004414078243030621166817703771983486037046699391790458795291413947452518676235033860308690687870876600431628459122724650151622440606513232011143545602785075519175900298327354226969226921911290720291918724867614101332743042314226945104858903064000909755884389218819702224474601349204500861921158919650266109984398825095284796050853051808372526593015708936320331850341041513707288641944142820360362069052711430605846940056165658619379607902747281362059927488152810975011927654789873364455614977537418924389509351247360253010398331491032192108062356891623218534387208656537015535547139899494561382815051552136455476682673213303227039846665793748692961444036852854146779163861980347668139447245891118103408394723083084331527865320974889132515825140015825575475983860770736001332339239316826162419347605391659340118397785200877805960068189305302046967816886562250734815027953488152279031879765748491199675780008593770969738109042012287723160407979094915477649129816965137431351355225174069636020985717062860852988968439161653424305623702742681929203372204344169618373375132099173771506485154181910151261097358736463049996633425836620635842164657332399230263145390503021459130129471852947710995980134983236908069767775785102602153566144304056809610468065604957792390473238817130604860664521980181275495816408896285595622804400674405943374735616173980014277135780076614168615022431789616674195354035796433381014882397674217065808871028477536593863839303127413160119604473200787262669030773623566830484926677607006922506627360943613367673100373991128211989017647551376056647562210222008656770617680764748077102804428406752094556340505208842672934335388676668500781647595921295233798449503468044571376531441245781562199301233523501932930339048794391545220678851022012041523347639785492251775652351135784420418873717638470034659763164970993831425671143016346179019088679196681123793981866565287636652659655488923841507092525504941327582682435580389432689757960387107265231157150875881102199748039820749998062719033137684417939486762979928138667262665344785959479964065626149098041512849856206034067059642695012223658972030074892257581240364585712975907544995787506809648317386136595291378906775335054408795433514300459649314070780172929550509129103714774710101572795922208058055583318787409915712334122279774054790777424196481363265995349514990617519189948707210375014422778045319547724616280195964721139169331454860163777423389455186375342143721217446765795443615087769666274775809652484855287701527753515116451425845399041279432012879327573858985411903751261940867964008929624043361127368143491253712112232091757762127744698959287481227583277645071971554590332991805413569618642272905783262553322137592523277541427535262580064320800004942863327363297128091989786321434106734292121564533649892657603473872967087347950406138674163278347812338414327207334858571245300839248572735180228916238636200458518860672260351017721670749385464115808600351012249345136644315189619413130041380943780580759386662778131144845552773188768607924947386848034979745077045055328398361256005646571529687536074216918296529194437763583569943569221378959483122497397342655124896142115044061495736161032326332064939290306835602016325909429913977198759883332779604032717829609890345319328828749410972766504520139617650999622533044543965310994121157173153279332389810713323467898299802754599986091629865566460195025033324667572690299622796792109738184923999716005262170276186633500713823271156277770315614452171241013242137407769873036662161152316433359672433476683612623981037089282177163110967929860910867747932479150716826674536414748910880920145293722603388646108334402049705051504058100165811751925084458773623455352036652847880311078637443169673515838018024746889448444975229524132128236678433045268065410935639413103544148370342814885919546629323647826125725001676585557714130658435203777355050390544176476553629308461540448151900128625216920522079965811359073003198897584669621296944455879150895359359153995108423347784580907755541254665672505200918841618601523829845272881816256801312942598246861591521645023448606260409224576307173856883658959180850912399902078903437576432595824420801704046497351071714288448996400395786224170861893217609693246371386805593295255379647282468501544660335249504867271344298852542093053052892352532568563274416388706980239765750742347747157242647829585246377485681733837589405296291757519252548014145129246581816695028032882669014852063564632068710532828609292852734974340411781747594926137529163606430279372385284061684306258091861229834222423969254710672450493269310095597574257544177153647196476452566218792896406046946178265419217834910715685602530932829543045508654971761977726828381474705152607204370624260378714470850019624359573970759127476036567159473778821855097066245513169468555337564213054727929443279787533820181638232484745649661441990188657645104255086608971611982996248112295083587221636669500811135288156202816735613315772212992530210384938196893297791957129077388169207957782466784131121861274563131213515604593848541720396286483587027016864663586150652767097780472583007228693501526635901326891023665630521827138802410158766206708492470330434413093630402689782520616498454750384232675786224091914982443553221910929736566940804495220102340342616797787326983536061470856128304438451335457114296144266769304544929828136958470626374742133008522386924856538501284042295091934182993265732491188403329418758723550440022411862283452811434184436066154282287354769711201285223713394016880946411707103382169182518617113914008149330944521697296264300132272946494515807666755106434880466835393511907589463803545012329598222571727181438761838314440404769754354506808406794672807411950776955054108819383066842477822447767669082087096712617648429518633191283274803983788630695833073422082366838707798140956294057872502168785576668688245533287988245920908797420524251768108905956248244645963660244011266720875174341595645241695188063659690665476591104222205486154900153096706347593604992445188883660172820681813600159990830640687786109253973608648376138477146844905496374825272294301602180525173295378247266493228606344603414326629606759494813974191960287839156188632944033662139142609476964097756549316692394518308782655516876639329354300816170225601694633061516120153712762286518029363877567374230807625199305081081668314593783680587749753176417866424976287296203602788155545649021166237822401415720926024629763424813876766071860975974591832045777408042437674637908565631610006744005173932529914239470459782146822016036894251031969256569790276627339827454004961878483177712541971083704423095078220624277572447071596745025597386615965357994412291101357177552047136677839750544134542978406476453594257941658465365091323322503995116674437111242425218163309187670415067403127517577713485916167038330306433603274367139711632305202842449666945233790990199118440342851369192542923543955610480399427004525117906346992503315155187812492077481719257799911547629237543567216175691319453262212127444675513350000438987234500879725473593237759614634475047460106402887483490932769353957535608219116437907715448653965144353360980328004856514215406371481759061169184246515662374188410954184405477349039345974682662565097651971196106262770203298495545139117448392926968006688566700299722012886035136142918425946261725128506840952030895489721217285320616263925692832857336556515647385999551604487739317740089177588469901197680507919708876532751556611314420856257910757444754735619666394512834248907583630106799312956820522654988699094422754267787678371339467803865198110642343171349116447882791421971547336131756018412180566540610069551647060799445626282869943589398234512233703167394203858325465080321186260952197986393593026941161888181464789520895786375648787966795238214382602978012159528980799308144062368168601343995064205357400630952477657723528528184100059845407095295182144506598207692557999000680211735208438008464807403290849821959127324152707963704927368605031726034331348887606952475255819886233675764180460532292820430105958191679223649153204896125811055046690503474802239011590291012207080976150382680713358026106803571546055889358521099218959568208682025473791486407559645207123034456947220295735603211406576367181282520730260777945411919049298072774284506093670375014829594199632138014914035441049846333456619960775657117832302798790665123700206699470758176411635524133366471367082811745721097750716987678544953698856483697887735911274615091589241164726552680920267082179246576949635662285186134211437416841869515564919253155385212917650677157522641290157360246180745492535375741969940104298589120895370360152347033335718456601942601600098633804588802513364403098497258337714485817711857094330729148907462959643219247921204121678064632130551601722808592691605512023659797969441702663355980288861906931083110154492827089074367232940199311022584536508301389051667093526684284731742868516692044132456256739760790914727516356503656078894066792576306362166753372938146691860381581445534271944027543212600165086813501789355115103687146989750620384089960903964076914084073850416866555038857640528426270188244894848154633497751064889423561993329673236661107623855846366762478777760602808774625699026840197037767247309694497105726482970693686577852705652669493209424660797253372105698163801413567095733282723379673145261425325649159082740856475707831564581936984512843784825107355614293962098144820544750352992494916701779475404144271249468987509223074428489208103619247673917441835153370713990595381405127549937595005750957831391047712847985671123746417390654694813240135378380005124559446109127804600216991809239358585512504833861850586917138972431486249863690307305601817951260953414121913642592750576578271036620069675915768545178261797799811680797200803251469351363947619923755004014740083918180065997181176252524011691757230641224144546585558242834638544373120356218573793517185604395456743134472206059600591774931791442914006275562065889962619902661150598608884194027132901490295711530979349459662625375989971500308821140573100528134594950339812307761025128473986991130134633165153845899338935264010528164397623259015759708091372313852242156212676436904464308861770447163852434502921668463126761289393809566603740077530576072057333952161000850219725154528117601898805186450080898576899952015834700782201891368935381942040881226676964681959712920788336210259356435805510041555821840637725598385445988405377917695990396741004233632431646867429713841236903005780112123692737117161670257627371573374372994122809462685312703677318518888585522137462366901166037825972581768867352671741677251080257661499819771604930784038659181251328739666238817302489395967598400925517105189438038779396854485291424545929555363136752379471160874690829097326602521968587036676357672678784813955345232102686604784513358492931811079667084067204388742124080539407987260078581407359303099741520033591532035038409850349779771341560131242543987388233994307784805346385641583610847163251462324688502952907695523063427918538796655321246002738962977788275211726779502253866541788901625327902519776971475794147236874381462806126506976697906178559339359796586058435761403985628179900245469729237050493696922050001021184304126920297616907284629406809728792532581309049625970361943714331375157866065080768386646791757350792727183620012818312707388167740922171249156029398115068859254397348634067448843181998638866876960045905950148252916229168547502187080535049860956610521418157872943128490452632964423014284233510820180674187491797012249973878490453945446597492004434856185231453775324075716952577942827955203751093245451916373244183648216048852038518895048554216627127217497557937738680693922868614606716010025978773850482303021591596959403957637740216504613785608549044826732908184871025493274911698946538568188440725239180142632660735391973877674667972686777061006750447183850514385810279666752340096674680283137006916428976627069558119140727029987775173321428533569555540498989653616696215134145803544687171469605490752345000977033389742277025847787014923789025873475274019198959456327507354317056090669404712814879211704420917493898805441052914722158402759456190896677807361471294535745429370952676709877310147628514994173267119428351982764890436330298652117213164308351430049202545659446553214226904617947567984896976873249220135567066001533226360294507444398838477216225379165341555684367630992292862456146677443094414134615985048180549984924401107231472186370140162551767378845001702354712977646981628055156250127561205674215745231435632296176938857858608758798946701159301775881941993142346720249029209827488315248912367773988068512130518646401069836221301780991668553142575901545440194420249486352626889313496701548885532886436810052134020578399465116677675846782071713018153019311411724565668385870851785771660894947774327238859759479055319195806534373152461643346780337462445531392869047108767641324410305647129903387576485271211988119755109557899583539359976536418066086808823269176141178505044463840117107689604719336717942777999261324034753491295513804175774135760903618747563787984039057365998058627000515525003978177630979678314937657495029082490686350874714335716036010775138006852327665010331050707504644832134823190982801031786662546030610782808747416843368771377269984965182100593273082831723675259493306819206828116888789283920566791327220392085826155055972849682144517667871648928609829931943672860241850787607989333478168428055736092525812410031861517024187961496222333236640393943093664454355513941835311134112571792163966065330457405530161970906145210302897006991167634688795763633166596690759716120848317619540988869119847361867503739931660989237370766430571902504773118627698218001383998494571171920446839832163918114203910033980050719302481807810355846366102991012230193934312890445143641563349450544559526564017029122364505214607575140569589998815319611358574371523061455212822970461831076888258657293423865202458456327054227753081219618805690906206135085094900888307220881534342672515677095844382544213916497773509288953779360037645093273615572046224580333577597585548260463840219122801200768380999589382522067876696401611075800838238073667102199178694554571807134245265077203724649287705503078497134762867997369847078309599169449583441015978870302402130561536345503699965673076275031289107722648330089133099551299822303215033300109332691978556931876251534865806753749595089981563355961859605548760524716767711965097018814960722911460993371300593050320955627503636841101619708831325805682479020041433317243303955431088732719145691811989316099251739594832317947122637021213318657546818901724886009223681800680183693186713371633015711068905077747906468622059283779216247599737659297745710376174815406737395361502839938651810815101064609420456727813353470600819666657231353703272325164614479944073173895999287285274247691053274189241389385798442563524320717375105700955089015442664134437751864005638162233666160761222767395185421938142090905812136330669218778771963883465502541588633802820983228462316030916385641257977206224014648998665622238827780291829182122884684908409295583869253230122365376205425369919192301700796115402922147993859889957311859589418325278216709525499881973200919595847867196154673945017357842405177692233103406958061055548447884039047963819822403028797408251393115028535122870577496251115981323588676107298865625965553612432682319055889780819361112120601869453863978797670610545313605262465269895342623423549008346997142481801536875312101244000576978015905991815766842416130917823144657839855040379679216100306078832011450411333969790812066704875431826390577933343166346119630998405602002437513307563553960333184826529924749908960580815138294126101755370022101975425027987932318528277855137020888103996316277579107688432163013694576492777075282525756101546205982703998902526991574888893778660014797383391594939194287152947840116882648962223936656691883642287322540813571709204678229555006319283394392256805053410412001698489097367085039532751285002963154720840854162855639664793158335343568824411302747842247725148015790923216672705376389626883161961845572359035290241138636241923549071342917636935387163866613955950499986780588639379528933958190437149192373031325239480623624485731635525963919427799292572644753020959297512996483789761506840626469591850486652265158183326205190885819414141146052311329297204097842953578473511638583685859356274784950706174722231360858626311516822633050208496766509669004151934584463853906638561288687073677528715791905956462977433018287405616793202140908563091350650939049861319505895375120831236301350783955111952516838293908732838272969446243270601514502233563202773152933443461504108573146072403066404360163143148697589190772211631677592103264726579903812463386221120505489379943643011684994568235161352440189286446248294178772102355711169642939165399636457662605769213222951472946611696072612593686712670155720945411330537918967477055955310534216012023915453246432834286028334478400446703961329352304826184422068650114618913085074067363580357592090777292689620700023724581871796991313051862457347448239505725697598386877220676644570302765998486938143149074270846759028221831984676481909398438971690307702856497074313001812859903922447093387566650738525910758553727673862554565050464246349363938946556194487278144933484573092806150045935592280853137493981849598119378892521320628206192166813234799554204644981552306272528700055164190920363332013235308877920557298631321096943771916390869496708139219306287688709935507101317120602519304588863687074871069667301852471234368211286456695865249523853738265087630782409693031893926895972232849550848117424900717176905181398199238555968461519039179152878547873632327247504410618527205624304382029601312746636762690834513531651234710369033114655546422031644937758783605812194985831063815271224614904693454498495863696768835945927673880619272506610445437640992984539307343168237528649847935374036225764078865800174967027448878083825128623932726034902106959541468069636621478903761279470874152919005747069998817362960957003818287304371682633874928914873456808631265381047321416875799534426259979397879953162828843128340187078283951628865538931953482592397821194571817168255093136182116053753854647395102994772558799332550569686614517461159679078306040934441810967774580005646692668105447271177785351322144335033880358406840077741714195693187716998639616804954661682547851169339867703777057170037173144171365984432964766872678715794272341073250748539760014400420818781675611037888863895245815492268181719194506642704383015977960849979147154425044855373653341082853467417633814461917923693863150657564726245089465378544764720307429556476236218454462783916809902107462815248426338566016581835541591761850437499002037412959294768005447475694144971809828390524188456943483387013791832504703226657495487959111118017566738945813158340388080683160570172593916624874270472382267600277394942145992812742378778596470208089760040299227042672071119133671773634709146179025463998573803383933467363533922061674693771840183639121991553369068752357826097356678199907071125281843891411607598565911692179301415014205406183159444600129173607336032470886056628050736742454969920288739412102895845834248746141638891347125771303427094885880318418566607282745923290579852996078334324792456129888739722647806333672893166379491411148421078653595288734941602906962759089403554398561498307182258738285410105199160374303985566406835855695354079154448268163690485287278101347412458256375178753847429485333641871941026113852094495496196509864292107354608471036582127680053950007606059574614368247995600688855528211614255929531154240188065074273422571186659072761931663892656442024433726674450574958448782330024761698475730035290772129133371834073485259515117038572531606290441109881408616120489585117911531041894009951676915602605477277629516530841090402907573911358678946566009840589616977677088809063189910907180228621435740929525931883814381788055423131791606944527724550506897313165428914346722464041667980604896175802845657693955880977788047959351174402756281232335161428707409527007508185551574828295970514533264741139922727625983943835059081152553867643362615959073621826219320485942541392677448264370783193449542680276912621023274337993177224749651156547107965883106275604229537452544298165934151666001345330028495651195059022304807852644170237331214528113764138892189610352302603357006505019878379386450621551138166670416946963535413897193359811274081102403161407407717594413699123466154483522314339380401306985094219247619477551692789981380813014596453246551820353434380286605367481724568028830759857332622648405516903848840545985985237528476182427182386047763659078981263754058670712927000136565114380656200890235385220451979744656518333631058302861324877845496103044490083338856362128378757556516701523164823232799508541076539237099901577362854197056055938939196518731638702509616215156783386332720420722833201390040758229305990566337656267157514337331539446105430442350512646197026047761158356042595470113411194895815018339248343368783995853358719951020477776462345520977003070208125097975233164833609600407705649060629202805468403594807768673258029086888347179354702296684036483329868865175530702290574302471780174448152854665721578450380800503690636269325988097332826138426269364947976553758148235110079199331120441944047754263998536349334375902014076987197291500798454637933326131053328568574977087338431765688787541655928049967077016322390048864420831180000646971633499648159944463948893747374198977646832438107214206692956948684142281487863921499926692395906667291814349369123127649846639073273879420415050754151800444061622510425734070118328171399948891654380469285534610479196541279029161882303645603991681437257665145162388522836588169633046844843899104200971282315996030124806084993118603385967712119015465468970769915126019268703884324744937993615021551527734716565604739002744396755568333081191241611181624985759848105651978258172187914234823585740796671016470509712036748083718205176530916072458238994451938353117382545985202566819731379446661928903201467213729432828590775492841455139645587144663717146836992104566726113718074325993467752626559542822950823338031457661776139451899492837887938842521306214813493403772477933742056763192211152012616397511725196005477832932896454389401262167256612989264080653607879471270295493663284371911965812510989444763863766633148470976230427599123840053116701052152334428544310506957310609922078109281539336601066372388592947688361781573432187285726572590810920740280033912337764315138808817430264920660778479160298445188160012515657249839764332792317817443765964263156422359632411636845117311451809207033867087064528725424761873193821145563187000829082138712626889008765114229414090765568552869210453468379686495542707967896552536148087634810530031021510665105296829009232451615036892299051925966954316402346868510776912731706719699519390037273763524156530596885660571726700664638270731520168383802571283873897629768756293509304850236128274130664979847265429373403078991051468667113308022011122297337584207725880592134633990600987800055486445471638567557019787530199089011383181764389521068704855388595529505553523290816597980648391890759440756273444134468508305729117832643709535738213931789518946973488661205815388281162094187732093169887692712562071575303723165524949087790422361787362509283111930474558510246453685005419206325194526383935944020984159538685428815159900290040826391967062588797386508158779127693489777735947379154961588158443277952921545553513617343815622725023330119208426950270402082651794869623401175185929749938535877215503700683658273107217990180920207767953286500970570948079959852236515209905093114534156943854418651850251554704718098912786376753851529596042178356588360641792182676420250499540234136448960421122822694657420708367368792356264580616856171231473560193107569264853933481720175525190041532524410492180385023896384816682615438632040953708029620381785264166003431285592039782208174301355492804243243449276968887716702716930776050843247605268189120229600289154844485497757147011302150005525197471892067709764502761230297064233942202872698695430557320424500669581805749080666582445258144711481032493845317380122119163234570166110514114549462191303870666107948008772072697050886717710619511978611074721970383327282703508823795161812058313737270350778527758684433483629819673437689909585204006480350608615842370420911698055660754997830931456722167003742094750987755137609289636158698597725833170183931707552094125000956116436298765481197488207303571006056268733231231940904201931469304648332145808014926041068905873587922444348156448779191462006245077127631206413490618608522380179950134497675496652256513541194332363222511449521579663458156230630936336586317588093628441617457348631577076221682438536764911995970237644384372621332405241126547090216289186574964991372607104149486486262441011405801398311784289862741259351262187948012716089843965484797214692838683808499069897500843347941212556324255138446789587021873553536991519651157375054399596415188574090943700931395714009351252830521730674435463728804059482086389095023790362188842195853713605868614950715665219373661065657997296303552221324337735315242896398744300181769375776343889747217013195801926436794018443813804624227662082898747373305740236497975066508701269271699627940254478113993862066514317660931880308473765454727523546544552017918299020051448847413104710059937683922495544351179062429610853839527511862521980909736846133760100074788042336178319018274406929541732800652342573456293183112368999793992675171481313632274783033582027761384785324354942657573344264887829839104403372702208623107727068181450302424570603763499236657971958072125965321104684653721492320820058393074236488975847874754084448408636308424818833293797665981840671634518616437245554247896832748727738553106734615514772565895591903927206246296263863973311680756818228627362067332962265561253377675730988856930143862372986132556410489755267199351297977379611270795864013910129180067284066661065439839701730584267352524210646867684141476536797915945236319787960985844014556719314611887993229360041367723719457152982074422830531912445205420590173953350988443653801996685651010483528267316168540391968132755577539494024900025507810447152759491847951126522991490205065434873191922785450364423248830036835024307184899024142237787752038755351346009363033909190884982910630599323061638929458913567910780982062935707604565181028423374642596187271781257273769600659400984832537956324828260681803777952532105291172324366777834589131392518716653139616185048826497734919286381479642115062714035034680802625599800587682100329741955054469702904299051089870797619039103553818317309618051777845097754793155413532269054103063294246011092061547272672744001061649011334226977887938757440946159055478178430797674696790367696293359985383240250264426500837544499272816915272280773020849082067758650578907685423452729057285972131939838073418200831779673539352902609855052180964906991607494760139115242612683837391634179111180174215470257650985530799733550226327447239662686719753738868896746197709187766885507236203563426098898061156021154003867975504910306710828479121287241609695756805709048632334243217456131781978997779881003602888802983678993220337134537597874020108209865518611268845692153700004458526158486013830294498054194270219650334667264153828658108905828694410237216491045433022441483121570491666203471097693305035630567447629898520605803331073772514205804464123031418915793033318026424497454217578043396863587026414233995274158139116293836147986177276441613949101521392563432132290194058453054162742410232465404055822342321395298832637428334204218046209799055203800884420008821596999069103474645768098157646025330936170000236319529426984349298171579710555227633151393668620996306182194516783790993956123035714619535167006109655799918725988960565653788180140013532166521831906559775671172724115974129960659594723839558423513684227468890846971411991904349037663292887109879006791000212321798987954104790204977729162924917529384610591795174918218745655178173498491635972818493462639937611460267329575063334028694345055315410141573297036546992082793247491731038030851961863656926856441444868731444342642569294268077697372051676479297759294594176422829452608663609416004076426122912477945671754207004182036230958775259887473367188406944556461990502868908547664875670406436686483928340190677699018065399925530764639023231954118160069956352429285936192641866373075118434944767969131790163721706815367748134378725565050669859521125424316968063885123712338457225590147479848992453467397199623494721650961525937185147968972403985847618953904991802897948395273493246727288582743212001662953208419473763185587648261253063515233342382832556006826369737890263314354618815531233762364417584035117886807630926131042616900686567205078129367303238208642914968580931298880835745123323702577305551398645409825858506744353909939611230068775053833587564721211547931330884051806432131771589762827159012207462570055462610345594765767777484690248966142356664040213722921769596636126409541130351448548732132068990703159944757633028288456098750860365424153827812627821851825900466510579214988406621274119959481978816070311827501935669773400260045186910680935816681333716505433511910112957659530658778511112194215158955558368360653745973569602008124880255074497978664921460725832692829736666423188347818147250306662049439078293199866373191660625833097654828947054209859518842903580771709226523098310975612313782857537773216939935588710468701460764173752441579374373144480065700175465683130110791747375031010639955549919107111632485505796061580337670791893643363440361519382461925324032772136457388370484891856927274864913549414478124871106425293752261484399246594070058958118156761563991015460271972669754575642996103795618859801226913651934581700669631233831656378353093874338708937784372451187143897729101363367644820559914852150228981274999111425972956840352575069787424233616143263358333251266469689486900942534606137386453965128027660283587619963956493927152678527207344918473094589397454131583254978652346108215542679002974837967958388272736766349544132824353344773211628689531718885234297675682830898880110171219031638957251574334662864587203372459101193481394715141749989905881080352767355018327984578963218521811876255299385189825817092441840206141406531524195301376064900121704613582083068439207436277115907965575791575065923213355003188878354607531410575465815638387700915928447686921599017867189281615911372550854054396869015519744249794291852712294813423313047003043342582171405909864240005083043556172921825522072605247108507090791473579990061120923808799460937619875723670254051756358040511929758291811515890956538545370159214095248421525539384310943708636721047922067118601887645607122845942530846348936983661181710037020145247983694716889738433367994293292964903845576749194876889932603273302682013930335680481478057858518399241259349751515513561201281512056608277405324125544788524152284949466481701739449438572259077530020607214697668863342997667572166756062174454107910376738418023536542218155041183380267449259505591691776240824435461433691240580460833918772662777061310161386858995747691185721245338714157616269244779524394633547843338444810286274031075916045969232192386942381266341215553453529420591658563548623711829603437775768487365744835208338250066276358096975931106185707403140436932228452843201502224048261802791149013751479822538907273849657966075564597371608859511616952205749832855612638138866570016639060575305577290383551148463074810167383845762705493320983560114178000191133827670561820090732472288620412192733760603263524299574580888214647223091882610015634301701237928918311253209801982909190540525103687713247786320854171489831626230766018773460882790077996524911354372297092012785748750870267919213554742269643306138139312399144177221486796569719811822546190586821707080737543233482270752482365995981318736489442548934472540089021536717226495576857869211410937554614275137796953836644626533480779569293128348453782702238962465588803181875550961973942845813223957556930158318765906896170192927018279087670084592195480369055255385962814190597587004037384941021878969568662790633069552606407496426660977282776542415271916631030970688842736026713657641877934099263554970111390933844904352550715096748583256871126867499792514922317185799024538698461639616240060789744912874932150799140589169971579302069985471213193330258567874425640165902244355498369848868105609019906950138818715814964921483400735220766230929965966398406909983375869248386753802113060011645132977883861908810688346391596643080476970920214888393372223356185393263255918356689217891370038257855942647221378145713569241779108446420532469358955965237048679555360947993422374724693890687446685783042753760146758972651842199625718175446957193109943525598916325774034615631933000501385945049057309387884213011529092139559441148380689743856891289138778931706384632837246918246653739721532883421390040073593606203194571436184493312323097446779465979906394576617069395276874947820896114706079922270264927029227776246898263633612987621733881287850684062432777978957321742826640980301690820615991189722564778631325823204233353135892404113817153002496219736212137228665761123708602863907975185505415447709429198226553611551504878177611695418079560248003189278812329307314185753639700475176673103056902776548145990752710198630130900802854506098152743261965017692565939952537366249895018020252303832553070380599044536504634753971986908667715387325355364479713200409308512068267434523939655711836599830937576780230832701698179108862413741512219711180015109496837819111476224210337591468466431235606848309356995628257988753458042976164392489860522558836065295743670814460203551761851667301293667870544458865912717557446015711873404983875204267436261814332552333084680450918098270767105167602411719408383801265507572477019446260425614711927770475011430343706842286254321942241606944729545260138148607265442532484047086535755182446655256896294979873046476572281526666192820781398982706993392951609674200410077151816815804169137771869368320698793431059325624363782856717241363456645942110836719117182096400959332060332602908076004032196829741379155733823107479776524593827236136911614164615674260298825796997364662803237164656251658832715684842461027815058245309993957355948715177046243207580854863231725835824428148272118145735678342692761784315597033198063883075637541866893889305651878520411142658204676596614044102436156215780613036564828605628625372473884958755198091870503905436546128378663249508559170800586972018252431539375704914276759070029880810728938712423695133171782493800450970786240047450312891555709157808816877795381904925278354649034494109911523372844622887203969582075469715411961613929306871759448070069030121877442400000392525273037464908948255852274023112600171880759198418910703931383974182723127263917112483447671502595052967647316232307247250214563744693255927276522820411582561087352755840040637202692712739294120293319840089152895319862948280843034624161727707370684291664295546274351162906515451980235067243640575837758135971786689395504230182708578165249415269576519042748713490567695122701307320604300605181001707589396251962534525034373550170110791170022255224000895941879122546088851655135317640182809063267034349493902800691751842080957865875241423638195792069402901851730419875243358158339760785075207869896404550863596960614403640124917159261042713033056698456324860560762855819707578774628845653829422670762757157646244424898681480824838244913855601945132140754550889184931945365463418414360056730963462428556957219681803679624839389757051377389568536741290201863963373732917215798620403638189732417535958235812900157435255267028321339714864764141356479329358091691528328776216432533027304827475394450108121699282962577865000890853845389964072786798657514259087984655107160019744029411883478946891079927195670903307573532690716698301652269227689855369608058621649402938235410300957333517543898768942144171171416651924194809496620140112498026059579400194051305462024217382093840517275485106947553120842322867514558981877994625940846855882642484757631539558892784120738117685516381919861295114738575558603060653186044269941286071529546927790630876906367267131584619598704010691069146346758422643380276260520403823510234991767642917539467829595382013604630786339246473720156699659364054647579618139025696166315491372632455520741875808188440845767965637982325831013502682427244095644446137948563899440079632978933991716347718193473066228615283648907498893015345150402113957854905099656929329596797899525092619213653476434008809969568174186308705773780886374253297692319694679160039709577223377359111677958092300580406572997800842058287519294696162297870099450516594875022214201259916477065401877984943300083876168549868659165370374973331311280402372619722373500439645083271852834786020893308630427513174547397421029723320254846190527999841758430707252162650767059126074592016668045633985657765290600300544388336385277714728023192389417504555084304079547216968215181257505038219641755688560649273201667358162253808311632491092881582916725014507791736868796417968492467138562696847146999303320352730852895580357991718806316292558395092475184417012984341253615641152317034052935621990496637549096272416196497157104842612776941855358988993412576005547508135767980556121821377240696715821559502054077054236689700956182256978007998524268806479174131819087816614127557561760089177307800196336597392501241183023578045177248135267242133468903036346166650732692130783381768872455564268258887924698107957309933519476439322147904541737477635217309707008766802052313404102553026153953013583496348363680412675505586476814233314099519711583308719050237656629807932133720675570749553800576539538301281225997295225433408393608629789847870340914027111214574936025691586181866006650533412972110020122239423917396072694098731743467049995671615347444327197513733382361714961613164768771431948721473208178788996730288958074156466170989342432990138119006311908000600434889846468405925442926562987553945763047353587748408593972201623796043868690731921031794192545097769386938960846342423775078026152354776218245688462093217876123813974939055316458088274670364378143522039139984746687680421999554545568311401719246458115161697678552194874544411366468211830443377799355047221810324715328303722586081139405384634902958410416295663956182946665358954697838858397323992937260955857245455520199693564453245198776492440370514936829400159455427958136288128333398868145973478477801305451865603410934211114974678827433768931978145348223374988482450064318366462470471811963043927077265119267860057519174944248850044025378413607185519775323795809175975095039534006836644663066357604937616163184874952970556274129945314011333837306906357674318571967366956556716697736011609703431836479467423392244016245637463544727599646554329275250355264521542569214938152871719623253855737919274624603427240206831557991876827497604835284864441883680397989273792872449124560950401567156288655816575934681586019839853077462189037025712393203169145177271046415091159628740291641138575818854539031620820093207368238056315271792910842844025503480200982853210548125741981746092661407830687045767252106580691545404612388850975460954971704022403578321158128201289284435717224670890429588054661691643606562014742132817989398295312320723446935809452338359778004752950640777920143831018823070292413017726564374744883168927126078163110230790242093349526335189687866569812813440397547718854024931278367579797860494720615197588278211473705366812822706451466546244677538517034835950398076542584115986616309288424665682694341981984878340359263841637591240757936532251210133967058081316193592010459589653698041662286005700861797237569347838837995719496219475584517217535770669674414102186408969456988600457045123655691388472839927658311518406608871307641956861474306585878643452097650578049786140793114095248110750830965744082922847661235953650727691219121494353250830839453510465078474701442958382339806406050754664776861961912021498404082071132304757699815576942759142874145645089021702519008568797704157933954632416877619471341740645840124266592256735959349098553644910650270975662882819779666140007470867479542214538021295779891841767262386222422791259616201015180053577060437420225892432824623535488557374247769371346130277262198124625329247494681512951486358957711351570174161740304900269470728557503485795643642964461937796094106196837742806160663766369867320931364177906373312960064529256800138750631083907655919637033708031740648556583966082477676020745913974481013856759398449916346678851132191827245213366936104340900234560937267134598507051437405746515960720819297760536805600361756234020166798221999300249121259009446351771580114463138854213043402931799809394831070583962586790855265456154653299747809484904108078569565514057080590196580094070798201539040376600692927269812056431637628297023359214392113643023440148407938922919165585924361986617755217550776002886498573557089681206791460557798841015821486653813305777314204744923667873010834003856556334293486765415594207784347919050987734161294516594792778286478619236556808449697995354667751719079123815853782757085502584669708253160579064736478012349507753308540930690243352405986370286513336507901769040718005922583929279446760774978396065209405437836504466458203294966002696602754673472992938408688531327449095416244890225954788301319693775752635940071315559108726525960900188802349076500950258362151164180942060547675992869370597401226670595660018162076232430938718660707426937275120198440535395941761675991552927856650106916440657699972639346649324097208468034107324969550927932800102729559695879338416733087035299898552341825850097648427083632239400712919245353419804072541331484225366994231534212069834755125385874035613711874051950929014113002313214235504301346416809765310433874921621880286500289468156957082459189588788247020628860454945194693296499729589112989560202574969027899690917207104263567471930830659298878415849496390325323357777444218589864502185482796521861272125202231924831913608644364800703202553658192326601109492031113376715692055550954573164896191226826847809346384006658014511417203603337605215072196625401856235626667538221391971616719505712604788929112261617144985211054259671563678173694738903821465461607917824291525799469794516723042278715454587352611221117735949222977410852329787110445881551003227024496533722024325522984751069183277385551276085354249172401264396915111313131754596257077172420195295049440984067381845217619387381876775051077975904654228101120975814215457594563721512414124566544158708528457811690050256406543830279705284165265200484199615905196448896119156689312241367928190601773988712354750882010358797572650687274254058399596829472323718478330418928111350777765624685224455073278370140155561173113614071173387000859659025446627153057770517407114331594454014912737345075739759546344155788857104523854887447797100367684030689186515936393619340482560289427808855936060323814505496755793469853363193327040474778062387138505405928771725347846250658693696529777498266360095871868633221821580102442592915569762028943570257441836423741481203947946096209722492976725971506822069142374070429569266662040026042817387706688581914940465806709200019743516997897327170790019523768796993067245378159710153741803051986406934149188981866922615318535193864219727220372140880513154281744938455380109519574335366367871577034389078595667006032838331144238045870946737472192348927013297635775484128158920187031680908263619983894659959727281383810541062082367622240800382383385360769789832969338418076122704529781198492247893878642133756247574563756286238819057894580037089151668097021784829323225393815776387267999495915090794635217073860364153016421231549790804627214866416916078918295615289218363008728355692370723942869332022232696591232929189456646392606751419652969194625005068046228274954448350901857636174816593106806102433640445850296051242150724950133927971644414692101651226784993915913920571515489211492275493872112304658884110514666010546265718453869044996096553959732545122637127719668371862564354443856267681294881484431613401977839338015503778925089962923689679018746656879089693205008083417617907144204805613485252072601135447695106166026443897784619183187688006706832571640070661446690439666812224186170583243467034288981975985681087507046586458719624859306043556810974678967016122239368788236981216007698241831213655312175098440782391138292672447923320077480792838285661183927549504246383249102227317236411252347313108505854776773185172724280671689932629476499793092499359200680862820237410425959885479552214390740499183098671276199187896623711445629169466892142591420069571164356975962458227234896168350878029627939616393126825476282541975154724557525158573920449374590562161031730595256333634695342915105443050918154544065496731160235648315863999770109445923770319095639925162975553655453753107533276869378183021118187170132232696930270048023780694162120012983467431823038545331671780129267065770678390709718686306408441800313507251158968902257974385166101868552843900025315443832401193438239478876884184620236833013673895825410167747237292316186556213643875474034928686560670935687072109240696011383199229034095008130376969095295629947842588059295100891922667898246401879320660039149109218758734995389075776296761802158918983651455938243551701370102610281850955067923614238103208105962169713460807897613874476667756676488399634647040808543244275700242448029128390418605943568463831488054161231475446361403810325231147618877831218267633140653087298762708805759419143372561189297661956828935077706142809521368757908576144188538171958819502910423854735151281246154266392254349628289516877171262081897224847303078372367483930500824468916049884103416706857356171969276990243010955714969732002968096344645067779110680746885966846232336894479604617356557173590167442237858241021527356926159648007002899990915559074059760547823524727570221621446673617830782407803657478670724906450477128806418051625565787575031719401081948720789574456899018464300846869361656157314792178585565282224623330468983853517893382650609675556851883131359818234882266797607485428585905869863591561693167882642197324763877925555334752144962433835422652946420421672772450364168177396440960447145127642268943449292321168504418424528536599851547413485935776735121117801390404673627294895461465985020166993273827180087283562248054260216585172381647698543184220229744791777704858529599172891526460423582650224252121476182931218334365362664519169530691618105954621754340646192799234550051985214034122337741701650815124084825180929365576157442743903740970443468119042022846024037924246934267886851202050096928715910954755398514068857875663984285759108968181532308056998389650625323039559629007375485707174363795078767390948914298225090321601804845572189539958710249199862548191844138702207121702148749227440582709796755806959713262677515938033785042101270199813827752757180706205744006077885897423953127750046486521013460952143134110475410613123482155523159215173269964631882027479949348998150781166841648081734624250297224592058691481824255085949371301892728987907524905028427381795398324140592889443011102627475142559633895749144254819252614300946623829357240169534454478365304312068135362178128984500977129631966844422539448370343096586411239687854556662414449385217985651658989934133478690788872002855371328265791525249375983178221606264552334194412734768973125839576579684604800682624077208694981944985887552923600268682123346902812461287906682855160632152622031761150476023965688712712523483315439764322057710167726920654150290604872510714220812775918749138541251483847804616396293342768984552593782676402644718644959214325666530173612087448901481692384385171021334131862511458091215606914539995189115369143513435949192868337419827665530517735631564339710459313947661843235335748495031476507049592209590569706798469346504766291612446633476379756713076590138857630599889901020451605135105943941646287110345395004039158673185468313279456175925269183180095126882476064739863597778778154750922548407717781438985946031364305005600295770173463844145092268498716312911852125338492549269713245195828991057680777731997206440559921177776165312550918995278448656399621024579941078692875847032050297534749228662175887190410258268931138957381741069620797708685444620440762860765342536671100346872902507611361584244173937428403808054592951461466270826073343117034607819513445263682160036637852527626581476332071606383109572417409882065028020483164753713419635119345158324018478042126112807359740022523731293955421727307104480454319145812269651155889640096923610436438825153838988147060679628973316095792135467937974915951743539232912690616603184214839353786992224677894617328613414740596846592062944681565651930894413356933113914490312233745234008155341324419992323005454357355007717322149309549743517277741914951697695350011191370008733651741319191477630007862371746952588558948128846760898759090396610374556191621269237361704813063766804287487272663098059578599635703752105314353303880187172672604064425055866893714924245792582223881459819847027121949629538083468401949686908405142375468329736338836085726131580029553699391763778073682688356068619502315135870789024469595831095035793822845823253387489096008047331840522797984240642037222340921918344169080414791997188992394757875369413925042700672518694360774619159095419383107090708243799631203940466500892274504528733381825086486882141473362994112740900540485636105744552514832921248693437561869282591299322196730615072539347059460772559589674349203598819811193022758878986866679371477386294841367401992740213973350772967668405530802758224891299818286167991762330100560965827422793253050544969042647710811103951441799240581857677856615610911608367368803368092256699338162663079884791651306013091431756680852596748523004967895014377487292894608272732637369969636337541656925112893680033054322081213683120355250067658367663668030507804725575287389414521139148090077627526125186211423609551347774681076579662575268281723922516824371834325485533896844921544765636794621044734124401590949973736229443090439603980472135198153783303530026547595490850320315896078266862371964521371921566684113602041710725863493737109888873102368624774183292411702858122622347332479119870008774409383263162203367335985596567925450372424858658458123606952181290088818330155470453605689189225980993865318391091895225193071566902903585192374321949031876879747315469085697644764639649862627687640511255939900848636496645167900946979884797034965868189519092505951830180270825376447200467161310200780986347852899519093445265098514219804512198846147972846659691907224595515935871937264048178358990574905231577894266488394270602700128376802004378496934724736919769703911819355163876392426783114765850373248448130177616734301725723267633128794778243417501125883878721301916709212120716030330913768483723121348652703722229633403341276617420541025134768347650674985040652906856363414605125328628364594856241306655620668831368167033243965086496121996418250572915667752690039922119995222506537717799039825709554939092003340167523686428336383706375782412677347732395099223149270934833780736172295708778463005999373375912288199587838390684915490742648754250193784299728698958231507065351150320354711544020902792482110662439887740373163769761296757448875344017628249841532680073412707483585469355944443909319740875614193971671652288835860927415783483401524628790250854441053209963930344406707439241389867969328029007202986446597883210154651657287174886147197829870204948912595302605797972152174693900333149925406924272961450712228525261887126089088866017504110006386342703321859267717532516757438229130745938501669749482933324924260568700839950103279120930580421219276446299714510108218593137429245299892525822394213473327665394725049125174044324625573489178902315698264767179553214455975153712417134366851934275820988338444812765412169678420782314043920957645781080073728496110750874378121456974570939113613413699711983694948662241469506996777230215823649334549038699048475398398484788453859582929683911860932481589437030163983657469948773730837818282284694686562128996639381398993251743371611282663630052212251841574132070134181149959560780305426171147238105261190281509777288444500886573026283340636682762947850569119306546924814001988951254286145151717259639113401320619878060732453916322343094635438935555630600915739551000103511325617203792572577438980120031626998089186722470817726712706901401675192878454211495774539183215120608761897113133750645999190486731475978186221876676908461924520442492184235703151625245282961480227887720342433396975399969843044597804585926996613842990115898373250953044202528057089207668664403569398073140024209691965303683992520944547094007529180109425252813807422380642699300636414873015654777394543904898699472118693736130651415736560292883296415761145664400895050295102848976658214405932897522206080234313734558971349676599286184122483307682913494759876593073729961955422031267144643703503352251008661664361041622567629108516873490535173332508841432348911751447185861338399151652202765949984500937987574452767582321304331526715349685448928762195340780113078715126939571412290951276925991537758402622929902435759257645497644944849221501780947512292536218586152196682729570608195507626226883727651067077227508963946372507117537261091568783457209350697961713624500960291015986509423305734854006680830806229016841445942856500312850996908637436845727558829901226141457904489583643327225179493129651824471261702104737603485805368683211497323739811480373030375373558792969682960754803260037093269904787431606387423248867149860642684028000534465459532846337451384031867118251996737071213672027677410539699434121270992448035929689605391030785995985074142257879235738314989949773668387931920530481887564547049741721129072003974969713699113408330717188332377603763838632884533685942594118434245720798583031962300580944805065001573781703376596640172807532262894260670678339206023154998953271098825294975742178714693154311739304279843180395905650225237685425495641617661464813391682093477673022169752865377527226120195083481959509170172747485153802507235277532954312382303822933900190965903766529006373803536504365923898544657559543199436599749368175265757893575812318314754293553713004341482292090896424164699301849535296253200931698892811454226993182870310946581965673730301637913799370042752909857212041113995133500431078701090270329971530351046862924747111201985529439037769619340312923259236597837313385117236079534525404348684912628720741634689495596605198422293238090488110003655162344423351923317734065359294598236219125701413318953445649648673395791814164681665387592071967262697315971443672719171712718288636297021767679000279502047990071122149554229000586498785979255841905859802523027315377166006155976126234707920035015273733901544006915687230285796093448722233820675455725322027001750037100187216482037257144562066391175185730538639895414599840822002801915567044755034674839837374514781393569305737953543579432183011089232706303948929763225261406655337293780893913835382254329706032031072768852088778335048492628840780647250515639851793202644207691525211456784418556631186458746545729702119208050451530223259623346166039995703391804590059855375569059402328876071046930395251430285703515808992054320795811885465920799134392403985610540648611191843307208178584286581344543012679209708574128630980541864492806805205375485018909530829936903095426372860316402434377904079986079776995249406396921431328108192648485409876566585021917160452255842162729183811601218343446969074896816407087542904278127436490764048611209733457053812835894672514075244298530131359792619910340032014218180514997817366318864442502341596602024605092432751344971500368341963109185492155650815200591910183444326359387444721452541880314094249611119579002550849969366398484029431225308048681401901750083455569627008761819181163322516020364181546647725511685133883538956227990659660308798644078763876048408204352475490050140495226851998962772257265941096874798483951694917999034086978340652122702170204832657819512558032870614818514713665680891947903819922997372899421650468913576185252885698468078291524109305843657780507709943872538838846816456164939759105882887939125415153017838505590561514784108092446983974505711378562693862219775759459981031836462436039602686657718313694891086363752690509340800297668517351491531011506469160693389208459891865590561689307966298224382612571653609620465680884515361398104758835614520357206280189457813857029771618928021129923330177244942177872202478874879116030367827999333286312519465126145510982717145731215091527479523772992930344926654764110469479095410006068273700277457259203767785642145224858650722216907964973865008669198854784359469028432382829683929239492855141294588569230019952957464558896182181289390979743953242503433904792311557691043820941609103157684310214222050895045291334635824688255576070544112945658053496169508238458676260400145419782012765770165390187952697103930475439112929723050773359495669103539600038970749425318561364281510755656431483343019812997146566916257104953079023114677543344473033826518436561585881857554409610203344337503339619334606192257167733868726836907432276789048470021908128033659322110166781507100507808928319016347049582247357559685432426078375405735815459021013473850777817902705347912744509084191119565443255913655656074852351752786842941873529062799098154614837864686353028128016535369981116905013064791550593808919547134649101454160254667211072561023344780902132702498108499438937361311449110843499747726300367389734719385740947963735461572774810651552714698915259672231536785147496423064064122068399160466109516064486757193339141267879254806769465617748426382022397057175632637531855740581566736775002176923517783639235569648660239286925277221321023519543208073892200590563255237618322123276752831458609491715969123728857083199613415862508299565359150103769709673650613961880311767377689515998598868816205891334983764670427075829574107347279740309043122758217476946304878519085114754604362805963930956355600316961485229596638892185241798080285520149937723768699904493796248741755394783384370351136619080225385977297134428509857442602348915181367497673475005632777901707913617171572165232874822985986020444558389039111648089977394584721410142330789178706956333175681596920286090759448783855117309125890891251235838733506110738770763406474011014163958398408858149834754757943684054175679737633212599726125232528699886355341246422332347567369979073018425360983015728316315622111516848652726436283438540533690803465766616864416022892096377729187659345075271643546630271737910800858000677008137280095718537577048855460718372992593102485049961495798483244866862026622197998007034511611759730911000517947270474453738450892188116152488264663003670026767565610762637918613738300796318894272568753414730659813491756747224385927161610211490016982460486988326223322439530183614700355466803389938764987235731964545694173942979285282134282832356890445587336473813289902655818749799927411193073907890466456219778373676167555588785420414875738285350367997172543821626296588735262914306779862238762841861679117883589006386216948999691826936761017511719916005267222876169994194418030633165701099808136398497184378529616429426269004559184731347446652233479625087643654082798146614996551960514201942902562536421978756786330548313159452412308067590741408041426470419501025267902683938869819417879907101447623549605893999922111312835007508123773244336851692278632564928124221670945439747501822619466916898781010144458864314472054026515126643893010793225197031361600567007151471689096658106539542228283819574913713684494225151769096270260651807326894259859405971099954732521466852711506512732724841718762520977932622867568999224486256228469829208769734940179224764871336599696858624811445420379337028767761755226987160668921354607582797807467583003334937424125845141310618530090002783177907766400166290530268329853978031169685021576402295075290472928389434152336732459024341956051146842751663142547649945598157991587821567590864353308804119942579739189581177063711899648966151473192868744635660493370216359245571118948492826089676960428961850974136250804672376817274162391436024157215227156511309817143118031539460188619921126576259207948332969602436221403981636817214214063548440085714593246943023184241147595471494867738492896188062254326399071936193878555118740711089229019415619325824966741069201461356577373246387343848933645199028837985609853137497401505854829856820631298980147939759171118860131287425484706680266974568229758638125250983412597675535190971246647822501539595966182912706060666784213372846828686665049730690740892880608576622584715444235393216558248200843672163570759647737830560817336840614233899921039165391858591312411161053112747348350250151349785557961668916978292059595961472839583375816683316789078115872803617819702122982827556169669669775782944802829182387384815832939944777565910075850403515260953766282514685237966747631124679420047763721386217537535487768188189925462426361476721971219632255337411074162257346518403783722798349995671974213483277115503909285411313096563597586972583231281949932897705123315587361186536198158988745212672601007960560132074549817253103224725097245845698193059201585305916451984652013513863408554870118471287679184027578187736441160314520172295807647418681808371153102841949669772446146935097501901848118364653554564674658849448063849762426534500606125333503074391137570738727730952487228119781045100803826113932403674582588726936881387920013493200267492874245232776644016410760939232674440552160878958531395919291853537805028853135878059245728779492032626162530498928700193347685947368760466076969113204325466438704507887093688206386393647705565800413540149991497730787781308086798916412018501944959275580486347788911589974180750119261146131977016721551480149813693353539857341138625381339642039852336423836793003931340749157759686119221994600334761662746417755107376272354919449020999543497185879906855530549323340110898838129680502889638273388113109684899085864210036735555875092792252787589132053172095497336463035012741162437272138945393713153014346747957944238060889358824365755242390673837633225533874490218878708325376317677748004242203853238869483655410941678786223586063521024388335984018220249857677316560675275511199808843087384230075540869968724271417053306853608724950119866430103774979405633790366949188368773756509595434510594102548117448095779147092584277886712130913033614469193605964583056316335066662592500536575185665123178587499782430823563715483520878811423051911101000483941058341407998726304759630630767684834808854634640223617644667531485897691580560252939545705398387168698022263930334242802850916221139283951794837539899410235337026966855140958381400291983625739541796075071349204676193978880162523780788494165177905140056360414283807219748672901836990381251697288830812576369622516816177335254032681717756404919393478574858424226882889196660202312952507526103327365155824600559926056928037321873968441536564922074347881689248243189323159622826518861039923605537750898367925465166732296834729251573218691752423553350831160051321701500547897532966501356385100635573906982998625426216581327499415397952992301634699073121353614560294254295243574626142845522988355399919233762874934887541271113584502442846465770662202170790887501753902495681459674653049042226771317509496244245413420768325859597565885691110335891167539907973031142342111956724964892553377567462140662484927277924716129374590774801730838803944467964966178604371869624435778516166956400797650614154875324427089444831443447950635342635327018757554924688618152001071256072273747415079367951585871565790679485197932255008521547945515071051238250827283404236807392790469477514909660819885696371107276580132098365097829962126377263909327138847672861413330680257859882074049911607767491701655069833935057537394280427829904773551465350618720720776389708275810346085865958679838421150618004458438797145677972277039977020831359110040820595200716490875581157008371413284864662341028259040189675681031515311881494764499568532519203564079767779054619775886349188938699675475543122450891771326205589232598678136742173992492875638763545395044945298933069759249025653426806652161415435957885587186085299425932369129050323811271844943655443875371419212526860170488431920253370965275518492595220462313364783758980605584656947755249362021746034506404087337250464364042180642974638863615174739385209281306221511122356100495895415958705593896591981359587539669695833379545673582638507058502052306977970184794789203207718374220899073067511928188689219882330298054037660692334611080182906878915268709020622314147627661584552958539027752991540189372647990674167105154080121531312428193643854442881090859958114570129833231989718198447726588943187317102743061723982602721396078955440890911676369041496380647044680569699086111665297042522979665631873717442789098608853833634228489053186912754846297786437332395053156079747268232562661866721520338415808631340704420610533335081056779802197299452711248921475269344255412592067741426722421352026273752466561604050474642372272677807430088154408262575970284441141204839084026925857095920426664036928901091821320760391032827276217019231259382345691635395402832065815816957147583973281359881243979460068568148248295797836044669929373931654840856660579559994676548810684858673959330160401843967162515344159561526259712408763468567143632406243737509754294083856887527130033317165317530686710956445673110550867275877995579063736545784065368140901274324651651824240070688243654706298428587425374723634889169132792740348665665561456342023112087397864302977160523562980917803921527835665315998227693917663815717739338979049742949952065154327264519262809931315939989322109235151035378623846930713860393617832301812987202397771643611887401127901906600299714908261649672534893931202368598144672739634177650260144365819509351206596945728422066486812556124164472190266520947829914088075054977499257131520835786960871946708436873118230588383405456390041993916026086427760058225789399074382131655890318913667965932134170094188517010051463732045125064195758354291781028839111365965044245724362263272102378616419194522339688739379113759383215044759088180509484258246691934516946071885580534275742163353367120250069680786260023372866487245666906939207387635291968808349133793049638279585387719025953225535846520697251999338470271126717435992708208562452543938760392296684573858409444335761714797273627464058206800055398118163382202652796640971487213474078840594267449566160788485567899434525865745331340789753754632868575833536429465543635979281725574330627227361820357742288788933475276299347794297591636502378650719212735714018012202418850786894604906304515055215950885032141588837599737190264803962837518158062747987361850181392025591255549888071125100171324246245218965610362480854001577347595817259992865324165228878463245535322127791844103633964327919487739113761361246656402948833365299346812238760073148637842806471650290435743730860942493006667359588894547673574928185831759991348209012424360567973036946277462214952836445448734777932517209774406675560000417504692755079294141118116631351111898717407446740150532040390469102889460797333864518194637204563510413316232641626836491626400257453053864899643562722775522045597098914765747267091414213935226267525831962340148083826060158596058490023495828470425524713498674559865005940044394409987321510503905577520453752458675137022545437802182309165049258291112332674773098711186919408002335563327242364583290567674104281022756506827203927974264132022284094657024296579898922604989656187697210994757906227316150959906717566081265788801014000957926599784567189169810961766297030611564950534983424982875686616667257621590402560239035478307909227686208537492623707742546269577809561288616923684181122202095454827086917571488236159255266540269774413050396197488516549996011337256765563359889648503183041422789322563498507846487977614279148789916837074818141440779353297287020435314411635164922690704737200137480723453662225324931581400710802176699400247456671564272072583929401063570301220462105747463354829827736924553532520596870531158685593655972946911327956932232995376932105770264186150847581790151197742072414802641317673150253836134926136349348089922131110531588294734556199479165787745703552269075671737888899363569993906001104370955404306800296894456793862133278562465605444550034579720537882147133813044786180057972571012936200611246864443295945326455498844660357132036670956662515790798229570916462012862673167521686772612727836710700450225632269772041256200817502203367501219516325574165275345974729562768507132986623309417372457664248922409982370265771194904417123887140541509480150696265728140883256625367924760883614350539480022850850215581264173860621679694387733008772017358109594250335259248845344893565434981484236101727635223596877048954912891019640712558043406155100646859092055409656542740322551228116054446187844636267826753493388220541971542591117563123983185705896472512714365048012677339963712242052169110534112655807624767483319319635367625430380091305432332069541458940753736002049736631236171571442405519550457289312040710729195809594061906686097050002520699095735804952682609339262548915105033032184053491968794162121478229146704031089216647771632686889962740744735388204148905203920474152681985554410240787261611290051448766209824560297887854091730550012776261087973285539556242400553102912118197210128973198985026382033898200022955144573552971032621640883021075122216145258743988403141409904275107919289938104117357110365267497820984896291286341575898315276375445768593531198515743020277954255904297602700883699231075967077173739184939808255946778123429008971409071129570859430523701429551284653279629453675552093432097001869065398052406640420387258230079178176683246212947944818713127772833099996417599195499849340314717337931094973050435147619118179331919890315713863463643473556702895296788760974622321381009293837143659744888093351027577176418460803455461081334762340569514016040573432598046699036930316359821448577684926121317559068144882036524323704634677706864721711966292531749910300820433232198350294677401178904416037993057448418918267905203509914988928676823406519018054491667082902014291654636988888464716981651916532571968737628954095752774094861826634045257305249134698073358524542237453289146683759614808955913425179271731328455053195922340130723552503647469803613688630343212623941128157557131977200313666330354045243392843791828725550275331644963886084120020595155823792667819056800972641620365852238775139652882896355212558458278729639680657593572222606193006326509612099681022976001981295928811583567114179321775362228297380102480144411528638725021023648962587207355975924317141106306411402279809831376087097809794044438457612689404277981884397020083051234950469930860724917802487893719266841523766184118773289833483425594369905254215468649919411933400287167038264086759340251255202835934342638902008663280238269205872939704600895695146485691558544205558652125972104669565475333366579661899178752977524284700958882117933899393278464698696581091115758851932687567411088769886145650268379327683641155769586672242989771546607074654509642072524697492727491533309521128551107615669500678198428327541340338893933887584630161492571923772616711558506870651271749607867794525107046403116575535844180134904637979113094903220130326424035439117657894823247851819461841818591434031776397077008865028851406278585678127113453112297697547126506875730692635996267823921562079441661398908911998217076070241393962878263738013975464395197544287181389229642758325688649688934044702382078307635448200372397427629946590636272295148885179284151333306071321043711377817826487115972680494280325949960733018528924669945440703401290819027726829194050575764725516546317273084731438461443465460378872924104395235818196608116127383857427467438038361146776859148193809655230711909957617249120070165387490037764825487308556291943593021007633720786601455980942993090748774082268167571758659493177474481372122820995701955839950493212524336215559078083038882582700833127147789769138483885722149625615885818975140754248997315885816439865378980583135880921427523552032359439770280796289397234908150566614520433036364257662827064147482928255107634312208313719941336826210796957584437405923378302145815480425996016590394611751639698415234688339250075781411929423045658037089597115961259668683590463531643943658203194449221382836056320245769607744369277724429257659524687877213875638282109647414693213607497025589678346859318867717605951441441166325018219397100647511410568521714388216731508480625657899873363624650601654082728763939935359060960167066715867069754765188620446152451479083036399095886089473002084433358732965466421564413453234190936012422484325667623297136689256069768778855235827068163107621248246684811048979426438848170073380224709829933551472237862935695844114029885611949782249598756517843542248218004879579800519817289864520696037302706619353401221800563493427899391567780916881621953459709353493475154534121122301768625861407033090262066063513338401550136874955787456159560559497892843521554722252659525969566477554543787192452315660461399399550060964899985126648769877114831981416291573163386901365575796971467077594862868679881117444515492626521112791562170723753611747689638405952749674372292644014875917742324574290881951689024555543299285686655878793885388111946060550651582747025368288915885346094774389551650944429465121173842980600180130430826398896448969859738187667559377589382728364832271558649106087638758072451068718849418568259768784583999125309215008024289548944388490915661472810575658360671583196455661041030316283375996573942920719012027285024627998414070912780343059999587768365699084050395267960705435530015063572177373770510798140854731843007784586861155033411451621236241823231035087554476992020838966282169644913821689940339061953336451127393280420503812135929280507823261209278976633057947786321306575998100145704803566481241610798353602785096425725866905470669212418655209527529551490132161189085094623174513400564448195185360372336456262622919490813530061370328487058138876271065188457166803396067826886292030188954674198834735168963941892577492129155499486222508919651760032524903856003445102864723628721222037284829673563358471443310462234873380231779605202926355424596666985162659281905419382714805087050596847909659116516929115193777745608880279348424465356139685961057485419172347761750126440605511941718453837207479947140779723145345831194378473138919369604685207061509817222120581230663074631217867478262635357141474680222944869244468174802306150682267833313675128382581567107709389809193546981710856766815777449688565269834328662665324914175867424457557559630090438598920283363854342567241743968996475977303548673472563582369364814312818006418946925344741373684853537240866433151724905214643809661474916099690739002061849004819573884034325910701581416884345991965919781226553931980172861246111757507303318731015299031885048213385993915876998751521952143839558607883943780262068570968130672994780353158685199182039884140808247406563025740921299571900360032060885138640433284288673779261611500958834229754734538397700131868753324266251542966199756578016585333373095616428858430960300463618021592411599194050108166241750922047455984354015289363784786880472258681802302763732896019032360804519470119638842246237646329881352038215444887461734942342332054855962360854173106071455298622346485985235488090033306876840014177513195438334941344286393779975690129083563331297657224602964950010912651954534363966459962124559715903090689094011639011932480300845588359862896091894826254214941434103098058856227915299165132362553517400830981052517606251601621649909748446076148965827939469405917483714812515196594835703037994356563257691644149472631645544090593929239436210656045165379152731588411305708558219453720359444040814331396782594907145988239489775779835314227028505198881213516558822901317400833483738791297531111062467986500623809706985508811893286235080667106452258070193720092410033787578474256699151353319536624517132522189855054904397793322088554666043730486923982518649152972351899436596192178192563464757341272280156435873412224032157358442622124247934559760996888203539849566317608939196903273076686816408084652460955743984175676128404585198845224265796380048263427402729604634712077876352968782575621462941162233756249782386848488725275631732277412896936389931146422591497344511962260652730243201285825254940770997401490187788240589653023457358788861510731858450357177644178283754906117400569716505180350883789544803921043356911021625831032715200602368202779423569964000497463265698659243418939393649755316437644401096710487858953855918258052298070185401770829339087379501647593181964157887976191818704839309675822111732715797900330936394494233688103171497190400737687243661381944092339356744411777428600300726569796452496469910711390225569211840838729814284195717093753029077488866874814495251716760369433588798830163146632001879560312202446078560294449570992056703259441073724647788351654771362679666707199348363896952738226256940836161845708412318309065215238461678709949688054254656763221917330986028599707197399930148744819557405200711448520675856997975840953375323804886774479415523954909348922629184609812261768797880402150809585094007112023671506232534668420254964318117096461601202566269403080638646054875734701815694663128028952731778231444362171468624451876761606401246321725768169806649762922424814575995451257685301263856328082975322665523175096402430836431602429208546991600620796255343772554993690318944160181701231493490626201947088566015727444534126454547536311911217791062001564255991158604542706975808788075909507120810537207043401440181954795764741168758688661055564668339339216535909464088213052445505704570677027099096317019623943127666600415694822511414402755114064493869554208088241863237876726647664605062591979705084737924688444137288427999829875697729255299738675924959761768864434642381072729607799485000014219587884949164244043982481944333540413830075904556352179813553620302852034797263611465881853528044317987202112976969676913201176093731019159014840966106080785442722888435195565495530049124708288041711948193575852705376933436372817670719342254838968747540475362800064495958277117067663644513511188145518803488296412612161415494152146690556237545993058203769273164982439049108791489752852377986570693003972105817612603386482176231151748598957265774652611390607224229621530060799967891831189343753784151669733664771657073814666811205057995066020912157523919581470595070074577555582021069167855480924699240239117611732420193549429632358748244615039184520547132238029613437378229018807035680555015900126162910247836448693104492073280085354160758825594462606080279794275650011857810312183911075374519706165370540712472743872018593391087677581152607766971037583941167158866826870406808622880150916131158980170444016464194701641213167851485010737033405102376003995067964124833937428666105625329138651013098023023255630980607143862420362741556049062427426962173295981353370321401480156427121918132312544213843121867268780434634090375127297302985094645868290196031497548978908721519165924641872434272063589362464852978639253552311571887939338605931620731176018557458249988475083527851627933789018722429362083538318090030509640265680277639750017813296632186003224868576110950179865902242694261529901141043529112008052155611194470386208870727970893842953026897874155704401428036472126575114625588351932320780317694052259945028142942837380088230740102382388780278755996512353207586571499672604089914317856540344999548896118942126888915800412048770937463821486617058652825996157561193290280254492621357823129089674634522152876989985038990553121180645756156256780394826001158869036168883161111397136248838356209490345232829996736038082181297848503943107912625193901771477594549347502679614285606233917024976271077887681018751618638546937296716169353794660659549548946151480155862378636135222757556393217553023478259063146461689994026141698546979607258074465042869859106559208169323879080029994057395684941001756571716707520607267456376394108413659045275770844860989511931214003993747534771249280240522034847675151362680219810200156605625883934153416053961794791294919455628857056683468629587680379554933557063507963992846448308204639960392829421031802129193498517094582110161515226049704210096667201927663953482786602344517222448577718338002081869603010966633571579697596405374048452153869284509976738843977480916228161428981126056272928037447609612846673343038456298422847005592581632644938768005941783644768219189066718528799689492040701876741392291201165258626513120039302311369328914859696548480420625221189010431881870644769727170494390224200508202648458086281712838699966845456179079984014245633645413765815987464168403693718151891631207188528535751241750733472829725127061337424022132995122094574217126260484369747702749265479410066813737624179040289504228449968686401581687069913885321167899298402333066107148287254064763915999496605492437262466914303993190723172838579825088434538691253505396900988063841833646108718334652803579977665213953740910895978692468051360455593485552312272875796186766720838677262451239156440117653030257991777018437624583963830438330347172108091215937775044067513297784758752089503031661922242124731252379468193262463772144654860286595054276162062506917290260594478609884118322913924325291695672315760140842157889168864240129273440808973838140485532393203228226278055509480993147426654128788789178989481565340329729780916382386048414309043881479563606878131352492283816624223423440298759253418443900417015741901240535372178953081598736925058947470029831923936249157125648817342116086428118355513991034255075127567070730512990550785888345598469689901257565269348919366828094696372400534025933579196523985803834618179824514520672584182646124715770937477172755909818728943140766812065020637660845078141189847138443877979898083693181651950877201436431869154734717797918722514383579319192030516436794356947220910829423348493785466028278484243219546225243124439471522607700038559970967991819711401543458954922150293694434726284839145857474453336461260317713624757547229681620983842539240235853046816207073190216893537340758020639382136954232764474479115713751762636891424721635821442616631889551289663915855424395493689148719075018574826521908584950839217449214150290644735069054257248424822338031325559422515669780798492437654659247164360162658548594735113137294443223973953743929528021363509100080213294022691306907747300245364571344096198477291111184221545171588245364834729754031003200866389682728460990752567971847239653101316543325172693541617723350132907874237195114965722592968685221490586091810132256743426012838475575649296563803173846352554379102977387841061645374426576966320922297338972135242301226800758732050141750588655119933410435921064417549358513869194333048347979815139437891963254253100397757084082454653351702774444149500480822534364288675112153157835031262703001683371037452842006520983901076713188526938219901965156388754858390595086118741798005566868065715663125653978321127097718224320458072325523716594299462746721619161209546535399666834069018648923637663373568588833257874894294640759186931687359145821863806348975657487319111787719959286949070461446632356686576746429914525662908115823715142156890697300123396904639402627834976209668016942038796785206243027457360709366167539507187596109524119904195988062472336177440288127348684018215970194794799722294635377842431107665967474377179987590136537296842256674285198897498563315389036805483562778100342646663057640253200221131528539710486284556017883201041464273997288210695686579962359452157166913051259296162461640063436561227581266471559582708876586455531945181681393895033795497955118273077337134545404313110585407769742624986148403743125837815310379824613014745152209904888221150107468911956417642287655794056747702629475917342194003233578251721774979411711529751111583357226648986428217186941680040720243549927038056726549473675654854101987192073571612894595694202018020040314382652172108205291567455660212177260269395201756929174208179711784760111765136761381241625566224241822068861508617521559131655625285387135054426098571326228514270709792100710211807905818543351306978260123384790865965356272422264053852198078059144045237230697667334753735953091739708923210952383825470579731489070649865606447373013937100529826102882937327460062113959312483182854777698922683508501938108435939901160383979326658757646609924883165638747711731970332460872971093271679464609244366622327275890534276448345622884283150397058895021559494087649306820698247526963276805254544916489076852732630260510210908301556772122010886600876122701889635615853231649505879986392441778271033534513547896087445423548084799787456241753285411893594422774007020155331779655280594840738057467319503112012083943793653678115293312821942229670860149970815827173496476730408201582034591322984988136920446488361135279482904794276610246823671488113832922861781121260594039259021308409936258539434152632798055368969007120324817282652686187482957258498607623116777096676866379947623932091588159589462152303249510720910710741555745587033437416079351088656784334108026380284799058474143598537943892694497942058312099013609081161824185561007439557529291417682326413804884102497327223524097343910781596300661719916180738714804714552372177159779737321267087160716826932035838100122844288941127113319610547306069781098883159903952868742404107452558473243530807482019799468529418210032336253860016152490723801973429637625046316366956685029559261681136821044398522550970903171783700051988456555169988333602657904669863320250827717379953868301782229620172379764284478463048023135941477114227571083181874057291502595513362149949982361849283083212273291661384614370399763178448893604085569888939467307972774150773548622922568962319247149449378524522700913424635274087304201642472807597148216866312402990111678849559081585757583473852860861181155830210269666623561366484354128981093778361238307552804501878610245127533157215963990559078781318706288211802056712153365401016921385957514310382389641924067064486219454031682757447703338214398708886817589440880006855754936773310269284742623934262662179742007378466278748647520726720660614673539160113274374520802465358175714251583353628602537242848070367639810686830072496522522178225969207559777750480316552083241836095086853547453122890948643343119479751365592090711506861119686235808866465665991126943085874095280209935684075589028060732463085992547970806482166853444089562471636865261666425810863246498921403533695683157513840845414470618921529054249560553514540646723527835913079317064682442551667241750349895934887330868275246257410970119819241031122646776151827028577089657427781688467019604995470930855049661738199066327593897717558022666785088609680595220727603114998763415995597557263262996084573530844895122294487232305319974149316822432685854494277475689478794543448095527498015135850202936894325111090784320254644264881881912216522674488952624594050352417869191492313028591788942767378268724232338549559057045811667148758591262478087801813847869491155733093571132944554045982919753349402943333025820260851520982365494988905353679339337188214881469705572323471116148178388836263435285505678630336069383227516622441029851988659072392240579980196535131420832444127906449756744410367539583063190840534611260458694644340740686307198031059084283148513087904078361453927562349131867548275707754845570618337031596981117910050193924892849960429489506963147749364182444767495794334258907082498537396694876409527191292906008272508023770053049199989547020183891718159045416239110106952506382354513765369549009936854808804306952933379593714446378197800072972660502487852813254362252380208309993314211176210500820140525919654703051584632855611659306169490648758158360530457346432171279549315689833253027229896880815371420423162383067893425515644476274020630681507715985821166105845511182403314287247145331011160865077929279156916199619431217993773014276145617528901748741171235742725628799398778418966718100546163315738066275037708611384631923675464559884614393526402346186081969887672352643285671795524273895648970237623542839851252467454227828301554677765270892763071321353925762476514922504382087920238891736046630300805919799510636845559786702149257183238318000556714588879265383141318486519700680959004381553044849334272030851294481153216918555572540006233727705827575494555670474627208335663688663125987370419937439351003537126882827738175697340874594820380586006150203969532254190603323873968065566137326946022697044733325857297609446419697142161492459108766177670080328034967515991832580464537155510380440237488221779568458825237523813024397942682510302217925073739685022830615941005229612618389987867567139027900846688731608749742887483925489328136274972476911431383931116119446228603342992381639780317986241331121587966757425264550910748635020646270319800996353290244545376506845252759853470619994606143876099907630508950195944992734425960069159649852694463430587818081280757603093430010646867392002229580286890192536176557813939514845914324494125908721013939659953214809652217825077111164887134299555585677000270075004139599061266693142208335878784373600851827388703483045804825960281460945185877467223268231376554303838736700612538077958190795039055854755069257877286065655687917261186601273009799829859178026044306306309775365398062136365448463660157605274991134449093527360246543778722944171425934173584632350456613132918949645279649554178868157609542573621738158476201931647714882572256923657722996549287419568489882928691821382626376981985535082786251193413233855167875028374202415575395315830322976899336581798791783545229622959211449535322020553291024119831030120856376335766295917052499603757984143604006481039557620398494208888572688181742080494572849190806457122962789307409016080757128726675368568907832683929816022523576398041296044097971501408156302436960398810894937610841385836198608491123889725422230045621770222990540384750230376666269270113865360041996538830976900095198579487238916090332429600913696064530438676739289289278054298309800997442714441446981446521119482221188505042653512910848766612454363842500701616917218966915989471997188289925147981074094761824716464140099004346614003022102362139378000875015714449122696818360958609774469888449840096735535317934473020509042344805649499683703961561579838588619135716204982434575022661746091098596291422966458877102002530772104106532491244360816291528701551437431577616098279891128989064832660611045072402412208310116598331013223198732953017534380440413700811193112915962968269509925416078987877100514934853597620080258195018891307723369864823694245398881768009493944986422933901498699373890179082501248819048251578733572401835677136031611024697526201441721441164665356848982137152243990005358707071096817729582058912756627145839888262714664554152498017939447999376425854421976294490061758677875256301382276233205075318830350991645518577602582362232512434617098455108740734528510768710543125125656111850906969022383723419387401777983597526058349178886675279519812232101650147563153227254144058602193588945090245466315267174141595641609483655237712187817863516114162001700550571732384345552499697932380857865554924497659334926600847564808252226461615075356824241089624132688345904985405240502001497242716593931535410189320283411517575613168817083502540450933191989944655579795164862657369888243951287047002674648673831032926726846004909288044277852045067464126708608047758349976545966209417448811781631830749337553855355086788977664957543663283807333223451997384173298634114113906436488011043241001977636505310527641673839007210430333182464045086113667075040584166216756745733774214702183733724021065506708025055762359999602864934151147717590531949315528797823056242797006050735244120807231409255599668889095858513874449445575993320411806731735318130679367182718506842686887141328634094642400943710416586578265462344471925338124159485425527147790377025919444789156759475365916374816330093907657573033692952503494626853311227955731519758288003312551719736421928285963114954853470648814871822422819111102338059264650625577450749325406046753822326783135815893328184462679910543650924918075318894528204679589629079634177488399709684819330922848121492620044232748980563053835694778670675743022286696647598121419272015219659035560484561770463932224330044499390743638154592706178460125737498239205161266797688487143852998463773379430925955950829385444330437888017609836823455791761446391927794598498793817706235316603132824391257114844117410158520329019742658294472940053152794175279421573283018206099179792268995301797217285621250635347704511956794547742188316946953907599240331584135538543719147937317953585318400396290511723992942020512336685814103622598858873903686518163708847424108167199852498497022281583936403704563036210334131510134144123450638446656306114836583632772772123693155416562542533393947629352521666654789926295618428063314977907505205874678639338983092664589383561564009703453215971395879210628358521711171568658524790335678529130020778557566147212968310603156278759311471398756971670763280417452702654329175307214555015368371612600656799813580385065562673124717911897072792133320573055772120783823295251909179824350378312174450450715802882621270591004377557446958125832213400339764771725661960388935817621523294916070144702420025895709158555709937688737845416369452557549570659568067748900450340336085093713291298539823998512202426169076666865637395861637500762060694949367166146379430775936275668433638945295228799274933762556958944386365378230418485295400203590504872906110955595497582239167304958265869287564035620717615995805684684860144626386909075138650124430097141480743203441927308042327025669905396075749304992301273221206372034492283115751205554868162859988532712283858943900877342871247543475904741389087252822130539367324515665826894723233420811286552030824046899687728050900790792612189300102344172425186802278622929466684456973690653760513005064016096235262529641495240314759678117777786581938624099386917491815599763740776869666873679294620678845991482143195092822582095503092893556638469826629213296076285562170890560195806128981708010798002237837210286972380866505217580331539983749268362336063980638292811731195111384620260614599170966638953128634219104020044783107900322150012459963899755669668349020930020535959984539890994914312605857491638831174937571346994968890193615053390829740868859392274922061944136643666571022343390837306274206019540148223721462440996437499165504436752527563147140625242557329160905996120495434545984954263098248998397316614352419446580618457832312497533225330254318468527251381460055466035499612857676718852326556326781998200665404841194465266375455017455768581326764928370730431488030538163301971097630948537382367035352206604413385370748252840390619998815793955867198184815673187256376901595421137817886616233468444427451381419279661354628755146155751164547934501403334769848289832812256197371788928080024461134293330313752290146875249292916867442395510400329270045379122497607031247048690232386651287891665744417152351185542466981611033432119804862171244763122789277683656864108214164614947443602706980909615669556569123190060227038152095084811518869833799432525157191450329848652813722317479439021519287180896494823978634802037827019676767878854449578814412890336970140795344460567313803637210032346404357554119621870842481035325890760606483284782220192459238182633989437635566851789147104984591317516692047425752027970969180111853153778068270183157506064977842010444731631129422002071948759774476876401358931989194038802352235262798002446974121243442797046648264630267203698994319190603650087566932553818751880909203409537945694062067747834296104675426772617318764806265757518929216880205148438807363630097756591056126423198516672245816336468314914420704426468798449423834069467574315154772717719867315368559361536138369235091785671539531113168176043845182200124842031397773783286334654677605248846632268704717623334471843180970206029067398813994405607466211849433696617483281673288270646001053840491555173398464031741480463504806775587871848631891489610420088367246651144816261566044306745707313342468100883779519965575354668711681786535624433873992514001980831522591822601522520853904337840655115940768339639160832126186823448311394091557125479236337818062992319126088755640739870743451658909123043299377792873963927151059226960443641289387127665034437196302666947117195051882561460470185253212283106517158703161113210032712885012339078533324803991706418366230797097332635635149309115243880690185965208873155012350930615708459659019343850595384447360658505854368379823251004419555674802180555860191888914895346211193496009381923564813181292038030505411946891533770826922909545192043963850208028506145331096867543563164748845488462627489266910780523469140467192407540411117358746222916071618706154392894666248369779937926250491623711871110921942847075672059585799085418024136912231629136335513020636713532024485357117220615661779456631332794673063395616956671655087379862401857060535482630760425207475900616184069783345171588795380005128711359840065297510782681344097404376710059802025890603938521138291222289088737928151194900589217891484884867530602626738819349398741173475604279632267851077394573223369023821468922534372831271534334186064703091229513721551195507287995742398524040652072217998847804902991721894468251337516309514224038890812954354002531365993899776656358851671918787455743893992677002282254989573230061757215785350286642978094846559126757832391737200354345274072290429646316881377582732959086812170847891126302790055618794601208289093942084785992750821889868958399739868768125659035563517028419478444997234501403970708090799375202654637545411039405406906885436494868800845756660633423745317098289635134814885628648350587181179706177890757737931014673791474552651096522818692950416425327839162460396745963243671758070769205219980281088608677735613052678387868800908377722462553600420830094788545678921325820947773376591531587426520288507397907386599764544186325216961406842456948390743009875499428869601344074195517602222508836644122244299232882161580607077611685194354464896345506673293047319832661024224875232072129190260349094240177647477531476662650912559896821596373089897155024112997628351836918100340797591614932729203066770266814311235651399263556580242205082527300367165681473652203398023027222478038539035879418902230716286915622812046071578941543572213175513331227149028516508834635392213723654683877615004861241026171962215985918704284208237645935212955452618599795771289339880478407505391879415440539750224792605428455780565834520159324592960154678943355215460539454630714903400123465379974127469949014367881618715274528190988260824286021144525970051830051426855785102963449001203665813977784716293489174418779611996489544793117890986106384215034508373177096548184327236743304808683978976558794070714338671479852465995698796809898893551876613874597058258958636670511515249180757795880993187958979562827996336147903646565201396357572938304721628921003822154497981806396635431608786902362366510661621248943057280773111559336961168636315054265019950440275574448655277373244411521187432913517946593575128146747929727661050059268339778354256157808086958529404626121136821624743314016215351469809150906767912305565621782796252985450857172583412026286027092152829032183730887211818661436801090840101491442121350062656483649612369569318945723758471856980488551051428295520723685990651562379680391208464600216445826932292503029399504056209500700339248398822920798741232861647686219833931756553216637231872839711065923470307891695382340979825395287307830191171047054806812430390002664727054321229483560173886798209441979678878328936602385147854973765758482003844113115591341122869256324197037299265276301393891749174785105707576074803096664702539199543310029417622160512290507956365567764064328267601848825678093601251932474231615041203769064447406547322234522739521382657840914684401959305668485902589814016779710845097103703794719852073724306066671746734855657240826078254207127340857355931383956340651023048259095952165286900799613259906044827470763886092022871589636752042136414242560573055345769613975726614759757147976823238194625534606696384314298575518965801730440804332228204856779756354151020313718544140808165814749779368891733371115481919760029314021852959847687516259339289295234866815859586399267690221615702874410414628444743892388506047802618391581627558018149075082482459496153404227753910340117648441555300684850358483011670007542976983888003657236547188372522589761782637343680661111746581277122377184579966351642602732870930230026955564417957379108068927520941575305320597899701718804385374624308351044590389391825860444741850548592216871748878807276489650657444607319163173608422345844046837490855319512327289197357781538947891999329822560324270703868979292092966907014731873052382292454483149446078620222728032662571710101922966512808618158834300129963954462497135118159820908378402156615209142725980597476461555289655222585214105783286101109447330986773793576564307215774134566141939121195282450831217980119003192213671822576587034566653811342880090499637096240325590107686035867540387369744637134340666044939880149739175606589696821986620137757278802177266633117010133452113025426580860780325448685525701375262408551548199193821558245207607727694817884127631738062876935106946205993088292341771247478180183645442228699791890868855894887207399879005913837318866272074632799485273209793354740911029464886016051819967670859841090669951514276626284828498471797980211623837303900925876664822359674902180575003444944212119826300634195889391241899029124530361745067944257288010422466339006981634889210414425845504082978571771176357113100647819214771339943956833979069719881460564990494860251523195071968630822102073331111845049261371824023485036161395375022069442836554457538254702452602589938186577110349154876340936260927029708117243142215549360800027809914332415353642933796419713630478964085014615108820274459619205112499964317642178606768078462210679747817603897830190572184032593867836954471913476048220069476779661266550508897421047820370955979953194905710990861409311451123720139829536122664717329238185007619986550823406429664645641258732274159674421720125269882333938149003386941700388768511577594514963879064564397505206163906242850520135257114619798074098483352665974549726778402712259851728428788231759887178191554620856020427650330906751357373346454015696720148024074174923702477295376405262243441180289674486415286621291519214337758984660636279167761030438075784171833926734508749505348873508124993164210269140118178150993326172879927944527734939462751170603816305776554820724074365058838261047894659754363142886772830921473819866107045356430495444550051372353103140125617321641008444925774062210259802581491008249284418925810295776990188742190878132521481090251263389115169816400774774449168186828994647230351496189354451893833728285289539301945963014808221835482906883086168596752093632318016100051035688402375128832024459165127037611348963466255552690369107405105580636946641377573487769628467519618760818213789934763320871032568308637777139873079024748056258251975395801659744542989417956636362550851492715992829900243024391102575666527012773653273646955451588602429544283963297682209579854230501648555150174755336964737158543533983705637877203716858527773776704974085983180913425031401524342563593315073643593884389896306314719384924263535596231387849589321645936814679859504761583197275438716593804528558431374874893181305304625138027921314113722058839589284103937713847242252844836926349448087230905419702229605401644169991461471596709819375361715718528002681423603715103260626846964204861837803213927043496496415671914930936656327313089268113800725028082665537558917293567108972252887104029047837453682754001706074531919874791347158386404725710691067574695088752851323037908056427852423327859688699433755615871707484861957724503949337546929966319787978190475395369835902629730707565761097528130545290419958671869145067741030201033050417007872856594815192413804033360675006664646970805917437082979419012085983560621941497352875461760651226237234663135004388039035560009237945027960452811011378261076157552006436733387789966047881502671088147149380723080962093162425216303103413662596428255210360657809625413453752549026674479776407014103210789063314573074216709774971424974310672445245236289289265206225681661698781055099145163222387750115664918956495542492393625737987321979963077651544194040935035769214961561339329320202292225878471359716708639562353820916741247900802400046703670127708232797571960879741076011686170240533479292208681384646732507409687855204788323696443301876942652401675230160284615115731582896891378476152942435384617596254655103908060576886313618393024015193883132569356743287146159891838556046415607537320411793678975315377189245717082714071419973032807861442850126764472764529338961736729890452310023490720517933879076522394370956509863333245610630328009522463119323775570029274288064793952195786655429134645892450947401028793003958907676304946965870436100678315153653384347803433567578354741014600603109205316769238103274025277598765209355301175637144762510597078442777575828501905004088490666426539580449861775918793228784511432632547244398717319085797607933316352537430505633390504801273835507354303990215863288338920584963534957476826265316797455904677564730688384159610042249277634956221003892613594344971224754149079961858680111370655732996591930927159371269805893388402744869004142310917676860807707841834268757831910616468982910330484933896122971062249809478727094779373962546009414518422196624943465082844211642547587316541009623106041437034646740314513627737159796921695202501723574352410423055068156721835989349149728145256623355227902085893957911694272214566066829799118414737428330495048955918848255746298695051818891534722430491788045958903946373895373057339263987028529632425835411701804969333483528281283720098344081416092438911319509284484121245682714618871849513851631681564926596064020175065985373126959577575618290981737720515451171905097896582558241487014778428990330295686822910954394924853205565029655289791517041364032786957397685021143603114003225415468204485020333203743176862713501874372738853487399274875613729604004508909204162370574100890072803990754372528103512941773173816173095783170120590088773133986805047429534384056437993989217777694754626844462809132713719516150860019002834605769846894156130419179388460996757038685828810706120994036199708772647771996923977408623693178062150768895002079718799691820403519853461289240859115499717056946447969413889709075579284637107345152624363683128884658029773592642861112385075225936971930705071823210412897132470306558580404969489975288582756010353885974118508086769200892910260213110455555842604970005010500947961801201895098358174054248108170794229865756900694065805812728342607775044407818061438573174310706483385314637382514849202463113897524333712457495718431235541270925337377323087316376051085630583411924985205862784455981608514466606791134976921080314507485835034595984548201969954528416537334137066787078223257481221207669783233994365568796350751631550616314051911859454579403694388138515258661817465065687677598142325932335693077102487379699619272561680226514064724823876768022175367496968517605792227697014826040818070824437170105860646408946940757573994709510628051171722862596351856491232868697018606924319944382634358892350287435598824969684717692332668024474041756005956523904583930056361688206685081929464798405021556372312069926184157687678946211211597447878031389665099943746371259016198640918727864924998335485688004458051547063028496671796411156663629750848024028439108381143669935789311917800283528007474914714851869946191516193086824770596999071669123518591894680587670658867837467267733756346538369203276518208022002388767348544057937015619605834418476936028460835929701774746931823590174735231586223764808660186792335944261098530936561093517758538995468282134803843766265174362408633947509091987267331949647704045643126462941024049418434100009637455972232028767107500641571239808410372057704801156151589778809675785194318731814058721859867745103888102623472611855805838351665263085017663620329696228297693471020712957966156299393856022411225776043183628808379297328367760184650064474192915341078173264872089146819528551768818852400182325017604709086187809022778204084852921125131054042623931628564289868105593671022348960970286078013233498095988145647825906595146816681534560276151032038695207443943807824354796232951016561626026821610171476741615834550666713441660749003193619180173011594138086838818816925366320846309281311261759150503287030917330864001010820520293814621481127681849865904506769434560405789262252295999245753197047839984773879817839383570091278139754133994365495329368378936548929941915108199547977684839983961999407218943795029638283795918352483675583711628996955609523463261451860667860945937262527762805764544139245018000771611338645897539195662702428762802228430909047206117023535987748178303174980129883673187046152259269705728783381520499729095408753865221152888839048191587503546497095112413956542131478900117611806644429301397908603349929629815013194310574204467678326139108974931617322790099210908025584676910243984958841254513677230893681594358242374771149603882061075184566174170283069917392471374620423909643966854854244704069443469560382200063656596496968433005354313861841368973099412332408717348289490443318081567034312673741818012332460789157245265648603783967815551542584192655078131693559127372688211017589007870126113576560608915921832119750032868902905897068207495873550862013128670308029288263504609734455173553555881438994080375667968999005478399336440960836027880284300423623351184180616359835497953668434003364963718092393309084267632986521423430095717983595548212507909600902031034758666435502337878304271493648801472002013490031889637161582289087008862460293269948065196461018804969004596931599918272782255056041211312543614192337765012190988317609571330774245970269650896622343470418723512225683468884122287763289538184580695841601019666135630336250250046644209954619434356534938202915477886993869919386874335116376451516158638688478083232581205860394702911082379908961928537295589622938308671575100017554768652617746906490590073632601905456519605299931652947307288356549833857120221683079611294306257875174174006052821627871902119121357352374257110870390638503435064090533890962250960853101178464200262090931285490071702516722792602220984379893367146432873875412381844232661690012017554745241429048276027193067430333194754989071019289630443290908335245561802134697706194359021229816282699023010859215692934391329576158871209716403344585471204542675888726796564443228249184215568363676899439242941732692697849344925777381042195559453448300695998980110456296504638445311292866500451689096686223226430044469076087669976498875734271375018926512975256381806324074289506582355326667253077837510343615746858780989625425508305077289975493141912368851211736605996090245649283434604788208083256460805780371095684169391510977511053700699214247359570680785064137110059381088987104853529522769731618471349084125588892474499580111039100150589692309786959792534297934844252805707668422639871710515304546820798245411484439198090376104884502057484627246031454778110841853081774690837487331383682837751379083677806021843767851904235141779162607052249113551988107222008115163357438141126054232981816200919141499231843355902907071493374191680857871865814796132178213393121543415335945929496898942582649829169552197804324415085982128431569261435363809255084771610565412890051976334175190748659338811362126211918583877108448536949204056519113758424674665649615074282882862119027204022079675823949138947905098501724458661834227981602458918354670286060153126064662466363650640258085859756856240609951387778030303110261805508307164464785576218193586930998764472904457260183798801908826329218020941581427385869465203225359438706352115247230822576293505953887662661612825973212896639798260848222340047028082807862411795895335204216878144012321018009251827449344004255661577186915383776699341030676664996555706206627958744613876072407715682987054980779121068917334864606169438336219097453965094598878476990249237850670447375870157581652919357939289391529495359531729190142389893294965282992420892978696812663555116534982754293553259371915114860786792489346521172533576294745688339965190672012403543848080148063992729468290770580668336669304112702143105129939985120858587702878793492211120038090426499843629981472169242916604828411621936468894071053437538169175157755501205035977777107339921633756328635376088888413544851479859411267163098898681155491955715825536868149999740325439450764637490092449586527482146219578520682497580095747791984326201420614468915450799061582292329254796942372882279064923949818714441452663468770294107848539717729659418686040352525041889214788894183777344385735897945607461148050667879656116291754334526049049256638599228499565333479000907382710921988813556704651769439072593080624924705946294995642582984457357861583341618605963312429605527613878099200757619100849345900476614290608323858098713129409424997522741934794456185797826608037154312699036624238106661804633342720189852612600513984040032394197475101524061478560004498172886437795704882741266801361574748539153224120093184904149830286466234595555699591837479730634209534360844307793135796447851071332397317732387393660084080818640155243719107118364022345592056339692451001098597578251269656339299918801225780867239114889853567123091877132603080010881764605952129206550244627611606146482424304497463922293643029640133065761180388734703982476674586485279322684609008700681738003050391374704323647398014020068122916369486359034706932818432858627944052640941275620617770265645177302260913989236164941896491947025946765670451852124360484053012872925318847103216744134813749455731525683967697320008358407278856677408170938654674730415569615240119485695462432559570034011739390226856469378886774217104219392752093254069217956877165765333474391255568876337085750117934702586355542757174393957498851900592315789782087687389143516820417383635775920036878732128091820800257593056964246715343860102956105239539967479828655767658651244114797667208945270095079670973188731835570015502073245228319092141265924464207866224995734882180350305225024838249450357801158429548316036283716259856823096076062349114781445627483783233924303495464814954944407960897430483691729577044924486491984638431508506630177704583897789073095498909438049820717576065487959498271171840237018009488199371902553672348872818560687159593440095266451407014436298835263150380854374812378788744079603613239762578339253433915214052766874650294487670013498118437785392513265882418958434857624406124397446344000700517164065320282562458091276588213817362067496127243913778464982647182906086434581369039860386076727099616118032027653072953478886350967352544731930062006502830722055252687961813621430336638102401466182038290224450160020858586286856908036470580166616881009490238104999545918607587707222030457696032645751711859469640473081387837179731118888052143026041518837482570621342357868599461268500745218440527695178716334285429205085493190523294450676929521133546431182870182967786309562488146549084297300086991452111364290794153148547945750030143014480501412693676101978362807501950387586760018445598152718158440213619716237109794079767422238242837933676556649836836778839503815047705157804121783260104763522213435135070876808125698763765859678245047129825218508003893232746505240376950520267215264732750467668703389041671778986749018311378709597351194022630599734105103305510884614443370935536453606890348652735431419659039833016849705356478465448087501116867379690391542676473174963778143811035201504082440499383083196490201011211993629995842010425833403453476311683637667949814731587100427098491181618550387860594022334030176991146729869372601240606630509597330865624057366736648103799354155061125527625905662797646895288600667662163654219824720860752454665837472713138570794787251197770353707931194982191819063219479653407633395048861096042653802813835532025474741053195382659006921299028956962538213509337220255555261512150326691959486744943382480488167357656195173077870518361543909635359716470211900088880401406750633567133199822517990775687938442003712181125645738090414225121729678541751748056085769187395294278498161209890184790029850282250108774987764796547123636142810027916300771566817230430888057039517802953329897596102627336568646738502731947545078180170577362296610057937116845747833273436500709760477791601157140757189571308093867967579673550379298873000521560365288871802081729951098636792203314779600934495211819078866642155358760063672005375643596612869646726813166849947746481020947449252766617870504482222884424336088113185515773051789649921402338931155102413253226199440572745387568658696301121504721671300116716826917516097235256234288745876275264154713480395754765252359744336548754801341614001329083180408312035241546586916961046159900898676430123012484667722578886536284048479695265658115431810518463843527165086742073804542136153951016470472569676725365309771764736363593783333069324673063211372287261003700386303300439943900197547106143245000044895705757583810726003716760207455397355853121276205713194126665581920284394753668265167600530038223315027465318408173421943899787568926547189843695895311551427044690394267725072811882383886536893262826913975001506812064289164615336634597791143044992722170070370312417845185743485436676306872082660641423974499679489319448556803584283582872216584921738042941492838333076102257642898948836767434908595989341231753955775685409122770306403618378453172201088646217881926877517266349668462494772107072332831671532448296789723443761966140511314914997221837634151188845526017068964244225824779829049616449074895743738410005930199538727447819015561748225602920526821038057903800782828146300977708809012045796153976176135931076803247655023983929739721899171970534727267579609918132467221910427854758299229920602263340757162401047381757040186612067959053961208132358873735069106502495767904942937396265071083815946925210860258248281115897284451518857637462884134569894800234880227771313732743746384198555141166773549424058804784613467493444082319353396226868885917260508775094714502793449340267783876159167842626164796458988418171684180235171330453886787453870563583853659607604820290261547380389910348086957753369233620689141994746350844140950465230943232668516339885723128038925377224061798178445863608099189236500823360485361209537956989843306045805823629599041645711764166403190266262818609902560478174215944422626945329812625069376010438779730045533857667209742271820482539461704799949356005071964692241908933810411769712689723335119988968750059942720851261451105392194680261899361441889707471770462935259162394204241866033864048234637323073866441453218413778582352841525414643356831514334254438821482297854007314929763825371238705980133848812243405568329934973006337816682017812484499604647009924870853545126232862136569714587833668238237537136807985454042449396283389993240898143629592665605337652401502116210358650939653519605659510450085957773750433475607788873659258273648890799835417234499348670531284250312413253614486354934306129538347219686900572432436639471600614172837883678789552713000752421654181695065884315848436895234268085417573376462985952583262818108973283916308390406837225912559242335836286545538063197288098723560432314544762679742586359996588147311785555301747228305668746097878763746010561679970847124790732113268150362087952574567137420252319366460399808904408761396651086015308587387561074733839360854680719105483493843218387935186770231674429711976822181558995507277045657483754617156801092805863262355629398633792072868205657797167555244770861165970970885213916867907289517534107090779448454964831827140989149840488643598296843603714371088434078825330551208195875259611431837773488624208446513134323964235066026575289874081030672269389280449401383637442046500361301311245310154057058201368760504434304406276524768679840089116127487625724109462751502556452483125688399185394226992291950508798119191239764427668634011527010402950578677008139184499005265488017481155573357567141850394290317006920991884001224061426854704897765292726643975980836393452392654272172829765109093503001450442821851683929498528908452627423251993866209098213740101058839332680379060693817655936839458613801449917970853273009920939239053443702115692647180929720809368796235104272369976643388347547247138821809656482133817201901568624282793415920692877578887832204175226833414295696382363949470204685004994655947179622292167323407262119314666405557321301380741742272876532071668178041280653794690124332986081796135398589893445667298540811177182066266997121102950923784962314168244665140702883927166734758737575668167581511334726753096208229088330999088723103919515965726585808588065223450510670726626517577741982066974687038821048449256204111790479616447057296620073707189019272304974512661854268314796226353646607606475380195432955847607343820632725415992327459421262136407786514968135145383105027749676369790430195464950330827568135276004152333252091376971444001988951881502570987188199942668592988241745365657889728294173873524976907473150334039350239936421589778766204446192277680311746003823188651800510532631278179429190152873142508492219350400076137531505958204973517079495173727102779102094641536976594615081960683365639229248574597729300859422196684842416741834839232904856064542115946358003755443000319392394235173157458182728024686805940518094710961179084788826228206282368078442744540097190291402156869573695437754969504810115606772008156831929160036999195599032898591431115545411919320715186808260792986753469726911663200738841492635741595919931119754895286974239421644183632202100353278954800848619970999651997774511058166155041089815931225562669471206038909236854811974966448599609479861367287555366934935526570728477301120652833191633544386952099831818949510753211754476551738314517483606233481020622689740378050822342066652928451125548331886763565337917072726170489931703223370319659225556818503149952266913831423055320335425240380375043313277086276878807245263477023746407432138178674997315144400981103152257773461616428655611060232947196536691896964768651020422703475301323517185627554491057891841254228506439146680958634389379264150783774864176583280299030778048311950029128799731154989873297812561569811282682605411820896549966910151301051237180589917642730188182447422673293026969260880270583256580058462390129652259842081773986900580646844456744486275560994984614254564950137381215750059109691132881732848554891346130813993567721871259655241363437472773356623627564492497142839226554147350885403193184210938179137060145691893995610461927455265903938045226788326039772474150957288352240407060723591992741474625775446202079135884800077890685391392428220865270504736934244723315971570538615768790031381144894606511041384275738853743819723610127506161964794018896745645954341473301092398813282535188012363370295376878331436973321656988238817710248157134771200431816970484610520775843883336757729990420708017020767550901370417754313510715861971613615442391679808251890260899658616136484099309026202626351828869767551194427228439267936715218063129371949918008641541444806727769477303548164491368892457909696284579594722259549546821524283338540159685895771240874224010004477625752050301238123545317713102332514828835237365093472160277721062198632984646095644175955847906157997645630828052997581804243001954450572818361403823304027191814386003189473960614417457138597547547951351693933853599602009961274624278127171724400866254476469304834850532278037743253476280929524793144634285516015004990719362975439578723606852413338140839543027398946764013185058922564632994984929947423673008039731030304810887142349693387325196749041982525438110533127730660926219164027354053196810026843760566406492878545076748409666580171487267242949769619336082537918785109351861435329668343135033183181207804424289731636016517702991725878365127347287290027848790870171032771251873248228710723860044724313766750534881879276918176847213446091969306062732123941286372928748441400694937635894797978092258945565623583189753379822046413581782985377400773341976785370037137206858799552162791478937129525382706787084609938909438595748246581583931420334944948970311123166743679135153494127841733049977740598279600069257125966512417664291824887270637570998154211129147918856925865940525386720317835857269450015999802544156890392304334795532776200710132731538399203885514325337330409760535568727666649220071744596644559279064060810639802431607141064923589294681241513209746979548658183236236359498215880318993168513674089637310797979577202492982671394791747406215503984788775335618653026901719690426514759473201893811248298117134927693441061413957773737655639563753188441859322086129746760774625659843494432091990322157863192831748039784857488047708214923234009589175847940891893874836397336641677331480859778768066772319538215486253006358858854633261990959541987085688460706056320731841047075190830658307785596649245076756292429212196816786065433073280660808383262443885997729215262617970245968362911924536937756078906434716755905177803860065225402746092041636038574227285096472725563461020104115087920599986769133834613367533243497153382125071896131726046518415836822977289632948042146976483916252919773178490479349768457238580363175647499426154247885431366540923467934623886067852729997928908297288919846325423248718072024509518876914767436229462016571485441164276985143115907424470636193217307851720066286053437269151714542009338195107323592146517051661879443505355725406570137892078595413792108005697877658675936987906072699873746324797744594203976783172829284716168281886229368525628089128020327821581070677839765363400333770036501131314822572494675348239089170478762465791737886673676836199032499567572719508433966114452323696032639420096232228520980317686807125903065337066630738170840909009839606115469863836457888601896948536734861380522038893219827972943039505982391893796479702594253730921338563556223967311762768627610013434815375409731495360703235651920362234505854037816202974395017302613390635898951618370071228869678538639568874023980024500948548940128040301788587183035895247010851745809402271347512978836657673729776838085469513035977518509401749645283419086604993768706866398454865526660473323299079282976151329417988126996661447537564247471430655416115767875456577828871242637102940165177746464214884128295841224200422877899108208597499144824043973545877916693656139521298889115645512793445504700277897355803192269781614584712960268296105676934664412692844631305985764567459865927115357356058689552219894957972352120858538150367044537672495328015805747105245389420687235216995994781074223616197036445448652811930487699515957453789896361980938150462884284855705283204793406285376948622686122583928112992533196196684990619180935532403041367181424216485757035847711805832380856352897437805611579449864823572368335943104317375547546334087370569987150656014382513610626657092311488922419677955883328022167629609528325352640650993671738674994841004462504022096838437220960737830665267251064686063372453455116476100370756128491809699993389957084753295813472900210230884748474634875406055625177236326172000797539077595576780395806597646966793052292420133184484179251667994664771098547988160258177061028105205252703679559530733305098215186480586168139111055830047032605545000620588020620442305031646519321786309088044504105412319859290795399741978336934658609139153451945404482821672771417895778092150451139017765407370327016370171687047390034072318263852660976883545515072432325227195078198762521296642349365552349607759538457956455336850829520826062445642412364892880885761200751929316133378209107379292490331736660393927111402574585174816709747037861633037382525164813904293836780524544191287896449378061344530004986165956956341751929353874353138142291139263065437610195832322682241978655234276764109836400776591512846509089402306281192823461251921437369559078336322981409621190601015725665204437725988696605705757902070340057629668080600118808955652536186047831371805445265980002761005581536188210815140119997752990730648477452051152567920423625504374013494502414787860733683289902139734690911527834438817130620011848208014863544087651365807498011430750092799566006018634602696089571682107913315563346966535206279488999862811979548522267501551232308358409737974942616772206938075316922690377739514744130176774137170524547436139660355104477644281215826901955399979768425147764627819986665486920446487852158809828344178886733783301334254343676172691909241394169790200629946939556664356692303747102639181776507503147655293572223229195985443870458796594123045878727593545322683778499242183579586478034710917944687333211530051154437409243398507150099913027998087529233754701986840193212742368505577934430377997910813230777235293628918713873226554960774922049562099280442303279992150324018492752505946131211716639090242831711103366780006401041040412088850038429098241387672084075269770780410134695576671707443843628251312387728353135624048839508520837722750322799777797669018624447460962481559639660468827052909300792934847144006888720596005447168313315193563161110589329068678714533675151167248276445601641662734730829464845484009404790991342763625672017309689089044837766044280985508782195575939948676757630569593247209769808226925952270396328039634897670330440647572650523292064516235999604593188985482244375866046155330344674863773623273417075298073828033673965646577384234434543342445025507342444118195198378235017133205502699570246045131427663077528022824863592592727922019762050887034924386726314355406737853329581454619104914775209939253444386958134178381215404201283536062449925024370575660705791606910480808054598511152729428271964522256212469791328944596147488334346132987024775722143527824961185093980674399202289288472639082917344401706594497850309575714151426720682233995461177917912975478365070434411380756169129453234850679939120071876168517332424560376718751926194036467828644779516317053580529822064735087959200456682768855310259930008575973956441862977165773094804481579460653501544394754743103914437983622866239489816168333650770128272493652138110516678814719279242112673166395268437812171775127983471714789750597654458661723441814120130199736205125471186890693700996525852286636585740976784950314171133225721061700492727810182634588938689815129970791810201910772464718011137334258125433101324285589464702255317589136067962769530949632847129350183827384813565924461640863764925818634460092430797914564003887347391287516366000369994136422221005848619191405549882505313370114885008639497892330514407492026497749593732499817662515887937274859492371437620367350852474551855079927183650583992856503470626242254353704648503775607438020178680702925958353461973883646669187255476989283481206093559250911421569107344465103413433898551632857268181266530985282298559985114013612374028778429051708559467014293165203756700951286621314242404801851891449495488231913029360193223971755679683683135916476106013552700015155156636288825914959638670107224222465710431208441734723374207269949932376651057008064250221858313399880654518169198567758643168349859281061772297080415705502475460150615897960944565330654832158322537111902758658813257881705351743912073780297512842405509304456637352797555492348121047798509016599198643686946907189530472302967619724167982471363028921880671601473350383339757577890091756026814851150860482345967846858970088793349311272917054240344400627238940746239361581332085001047977300793010207458760505565612679773961056104527483494618645891854030870401851182251693168725401717807550978013419545364494654525036674968579053879073741330084711791614943954834790544324015914230581440487113939743760692468677911745117924010529069783874718565000242196293487537917515266562035602137345261622453716954112046407499179927461009962677758535943097953172356149227046847726012633510294270917153304319386007175885487737021364773238000063000783476181259473846663903945659904209833611837432603475117410594482641077592468305119498086240248080916720388861746077510813469607967102170130338664038801490674924656748566565428330246487105639112519713107597880032871674220700975131818386990801366501784675536620825119835870755244839010139868152194129889774657327363192392358120215286558016179779407873225753877497241048049078565436389259676432746676574370733681520748359082930558779385554036056007658039017296893787310496347112392855227894796959687532590587431362947444357794950902646056001350838905787569711614044924365977542351780972553971974043965380206384119217007219860930766137009182108519100562176748375240997077746870689241851156592005706437138524000554152761967781162235563520192379897399010148323698817444796686796206675384683577671949158431740539909575437838196159756576494616496678279556106142214716288595180759359904252674523552036774773727327472470423913100453151929060158319297847839411120449730889950703149554542761621532029853630763458951577667422973755219624362576044552342259224209276147613567088764532257271941716144697843693009947746882541785718827413214316455495980026870021726773101759256151830210659730759740599453320239245528812990011947241582812092039129768386332985798918417875856586872326220858233150362242096445785753400955864719245716711412282702478713772204218878983628667700626155866339334604751925780941557021326890923626910163117981022336147730092196755303066461539582699337518292028023615229399105236601425162466312580002404487114711073298700785998053947647179245447090722240768433778942808108972182599055779147979548614711374447654448297791706003432973671148947218774249302910447086300785759495250824154955906560452975311355004925162972948207861824788804502631380359213191798263469357842070453778224658871731836675845804101091560025522330140385368128714716626957986065349015341312741898022776371593856695924663071319297235543720758074110932887966239289354727333173212847559909750168525707672539426939698472560016735542203615053646626835399905853306188357620054409411033337289879447082111717477325314977454278506810519341447772962174375730164711349272037612736211961821900729916109891342113736389430546152906010470342800683443332975077172786694488928179994454688604194565406618029490897993635384515244982719097670936171241240056947159828651868694077093821543089548199443558482293097180753199168145663921863705854040113202310770732463845454626634021813364282801469951339131171978317725285949137124467743262731734819295175530882680358386875431653399996327876944044655248643609848035081404202866165032539609890048793240526250994802690206097219985529700322772677993755792587749926943331253058756981179908123313343344671960241668712760714202712025977211253608526850465702282875891140294611611361516030039152888298895976678619033699477863881264131228053213393558670637655080035983321739523613282355989761937552614105597342625762253501686811399300590585541545933376380471578119255798059252358017435463707641837848017472807975490711802633824999186712437702086911390385013031810531570347990567369589284923607353415238521681442693709087630185840740995287978691182971763081795994336747380189449601381622485777483667652327583801484907198808343181062021672309925939978668454827643282906958293605684377436447573289152817439856948858586712664666239420558760326617331235810159708124322562580133640660175260889977899569456989614273521746599070988364458643005385959378470618339894665164597434936343712622320695577290541224962323072529107781978907143846728932313943649158899037527189317908380805612364350919664130100017974069017421229686504623880390036799488099606065626313610419276497762387808740074121214046536385700043527017226712844074138075084848362840395609392354627565095864635707370577796302117100008646612256191961855975760238743826456634853642558733426066181500772593931720913351882558097368201799949409832408544044329785771241812580469677165918911213051805210900072620267734301173242291129544821401905732455226948974124502245430544747934695451353948787700634967744804787905753673599415304985024562702904155192318983456230078677711944760004677034409902951183668733627738996464033258033289884220761249341310718338148685990349035438138904154311492688974411551707967643650853471471058923285387765369236591357377366230831906346027171746284976849045068447290839500715844041104013377584871882384443118471502299148781093605742455858980755881321689953625461809792770306830776931006209849638206987975255126181463541152700691879903136399150584059349368731852547697200484456915810329687856402771060950601421758412163247951348708104884308274233032383808750779155863434022396487316572259356214766719849820992770792069288776331794297154236647463965622136699029412611423497924955159308205343569832550663222196402332909371490946962320232601014290747893531340730826901732293233682027411275774967568940315644936320062344371511185387478620858468611651293502076356679699701677647844665961656629011154936137476426785135751466278437272230928907431048238966323310604236664022394156198009749694485814890861303514993930361262795334046473963800942677217945252955058020430002429951550951544756173863627935895725373546699350481338697643512174147017140799795305010713789845356360982126958859083002389086708529207146428285185497588280103449724736025310703519672738612150719733714788505029130547261121591202142869916763845208826213224196231700321819925325163503004990762653861306097630846704203040759875406981722312471938621508350393085433136525025358004535421103632168944975483711441805976673810253086416745390489539128499142954631157420050223010330398485604781150447666170385135831609217613777197765392753851986191137055990180722007635481360013022070327180685448170935741001316898202102760939704778177208317812630901530367899252262277961207063125247869006156780152657195953832513437107554746279680211381494069222383716489314629858716347027683316390125588574484720627393437028473235166511625027157139473612724790482670646081029241337245322859511181409880839388631916783626515168948743324548571253585413437650344707828505595057435975680184561968222329812180543666968408640690956166513480838519030034294368440615532676870089036434922176473272184273895344022063871069834162388435323461478464120999264300384556054674537456526165538191335305997862408138053910391324287834995943851292201321423998823058159702093439481552083808347118396547416514606670590460954921647313191363242073292924136597739624400169226625296676193697696675789589450919677714685801902806016175972901484315239436512971616658932243120408252890675641797417223758618128923055793088198974202234946565066339237517429112259597364607655709438389614385146238750537312172728722267667082591362212744891482008843001645293319431035312221107684476891003986480571770093566698899765020292487508739282458486826335484797617413004492526720339956507097756347700045352576924059213577878206352199076091911577617531006865295361286233981783095419439848902658078770369907355437697442591425203502046488235329932232254527809746915284271101705143953129855677216122988219443958418973525443248899242490584467855675940799493667735715920705438080636892473878968719230748276126313816365424343243638154777348807560748262769762988474568890438677696964767474446094068088198717752352518269362727353324872055577144277181172792521362726291978437468779048179085368290241981027234933471944271730935376923051236152061402358508842639259497402387306865748229605584440744013621356707040932204817965563300719067258788820626027471341435871448067917746026326575871006649141308045353395807017994254348277585278097293619066312045375685826920074350436086503941916755402146860808090288278060748955809874312020954586862115421632929929695813353136737677614358521464648675930729777373844495421740512575768553747642833831421391191293033254948542569218108114872341722171433748417101626450900882560603712360239964252672708545821569128886393245419632159736699782427221180114251137282091660985991036045271848250092173845176027206996086154411839903306042647029254958560410866168631359492054130598939658653032951403953290336710059972296815675935945522529452937978624836017884221246392786058694143981284565852355683292043683481815383406537731070516298864380683896865276471523598739548740787272152334323842227144033355294850090116217523466734555982539153222706996129092411631004734637825910844305965221442650537083388746626957548236169764483909270615261887644670304593404549503265845051350337737889990943538811520735406983766997268667490270126700066510255996391941036555248698611716934489635679546316624803444083239850795132060820285979348319526770458572457635179274277056638301380164668524570627483006265248788187004853982320415656547747922559530312763767456593243614475886097955737918877220228262442429003703368869020754855246362077846115405516085153545472525149732565042193661754133191019307294699921030656864120657016109514965951476277838108210119323692292463154558805493388230077205276471400361747538256521348887343826810613307831066916539985365007925033625254544926601796355745221209671295147297679332527155437288494955108840037843289062906677959686764111898340180785577044314128159617075460875635628690223421712254641774654125210679544955475276523286973759925661751963479309848341838919856030680747773138371311006897654535595795317066185483155552784799183485200521343634162600638468976468835899222303096952190749662067001438026570503948228255524735133576809095909131901904356928040551421400065550156328887187977706806711685251007458461211234944068781011608915370051546143225006449278243719292369302867865510908411673428071175233382738352873635372810440501388467065084693478276648321062865428216029976691152737460936050229833824615264783096070832620791398116134566567802651057847207402696950881818918866560731298428152536253747882128248349537094256654654321020794107550420620051958045353233584238878313846829030324696941029068343487885961090074360218105887202642328461978139545546734415501727858108917662339394546491156755279001314866772801651940329105022438827392605358012880295589129465954554036196725379619296018200801237505757373078742050469686348272978044232902919161284291452163572073405844312870883837964251690553264092163663422598654259869678095167165970582986039674411777167598446302025652508135319300577242756421548482654627410728503500944255459406030314016768675808186125429779295841573184740668609646369968834854252451335954658267590493558609174244920131196575245223568328014685942051273115674566907471047779880759160660054654124191409119391307431592259500933666703807256284722892067907652880239327324245200998023630105186733377638488987831550025896875970631539230116706889298454847797631012314191668853462426520409123662414410200374283450486411046418954256533584716744204375415396229057999382677750604092918888297485873138597705903098570014648039991723673712199671679992741727575896791696646425892348009530468909954448518315809678294161718439466677937304300231537310306358979045663887449674868379431781371973269218980514353901546402298617915591958662685651700600585807064384987103021432387477274601502104843819202042799350482693673885241531036991972882534385147580736263351403825862349429679255328401253304302229162683737838606546111821116764888055683078781926782576173259012457874779992448189567124035612262149647453234102984363833705453940716296200590785457201444040666283780422161632639143992023415541053686564416252175806050013902857064777373813842848062458515367813479124868107010337542622864957428683558627539696082623513459789166648161087655715195682439204400687936102702395404682877792361816815825993889094373995892929374483083993390186462281973115633524381397859792830170329757008122078498483154872206258855838188032845610146104613659016854307228952211469658132374586932478018037672365388968321186724938426342112520484139203436535988777954630274145453065500516231421857141937872200810612189471755515195492806314991996369672116057248193513106330867057599612323893232772432686927963825946656636262878393787341045311087291368130736024151374684977265318068380973094697092133875928807201045187854706997879350607776630040585298320613569461564343112471990819492813860767276036252292627077923254014898491512915540229038185069507818480614039378557369126702760232548609877048142103066860136956737698454514000913220386316316327873267627471822171031319126396074317709898908149907188034643216897945596578595314075494905954397167604743755689429990559844326739788748651918436678293225067617520457263685429370548559323177195959642314005749822771438234857499114340459290817753317130668603068260848556825436282608363980409112186760676940265790850581734358543840683513969184451352935088729398100845039667807421563054093637574556384829281713586642154016719720121743875626577604398235914896543379556631085569725634698636090683115013796089054116037756510748210464222412058012835755423228533606550887731943995408065752897759044737384317288202699772529140085900181334899418568891789660060351984421571899846399197405821021138379179215726922060495956998391537918581194819613737143068976458947672784918501263257936097886216544075709474543571914952423718458315756073165663657686466324796914084388178398298033076745956832309763388671880843935169365133848271183696019559213245996877877499145883080511701168688022355034558509706155060928824971118529135777396374758813498671767588929566170269120313078467062813616622501080395746037803350830397645567006226770815631349975171834043001360958841194288716205899627705731409232414984710458272696225521479352279839771195603785518550463107674793185227317898044759706226852448876571544843751226661656485609574555321580640849243707490016855786948863648008596802664186591036203803647053487300270219548820391539835785133008972475364209174908640201413886215290162411979228491588680397410237666019173480032738737110068426839523490717561509323905999273489202030251891843061369685170622684733034363430976454469461313589580985248266617975195492083971854788166661572637344662437590556877780236453527997427547294188034972018073552398429118081079148102535966544466728768690660780236239673477540698371279577018802334578570677407985590041225711480067341132254634581175620674573200643602509316374668512105148911098880024451302369745111521862555885614863102277206477427315717854759488535366408456154295111256249376808193258094914811051044237192058188119150402351597182468138700575389048462609889144159421255133355372320199283689652182264283451955175075571813064751963001835698616439082652555416282781653911264714186140775882752247623335861335046829444426557797691936896746927119996185465659858939116542697174484425342905984910325183626789187434174461800352656580320052677981582718831948630597824127063545563441458537499585054676324338247271073831609148411739429165676384177461055479882986149027819198414949187263347664134671649197667749727775931857243298781613811041165188448011262628107532406900727012264236940544745253879721094911565319183337293396415692310351417694203378110023646263199628006970103854417626855371732747236321145154533402288805663190328110821832610408453450191468025957162463175884042391857356158826298791461520838215514653137252350333214314543776307478652285271472106858253423331009693715269235382701321369674090721297576888265782263228828562950689813606001106687531005202731635251209937686421201592390748430020600958055579524912686565500698885114705127686806741450676632311031976873434320463245216603022011410738203489545603494986960143704976932517240077195253768894088437742286320387939353019077121904240186399301835717438579531720009358763665013046657952652641764081057608396125433809082444129061977420920403826877733292343261126308822384596531780886287085095924847350436341958968234128452449853681733997055369103518888757380946472745032430407548325755339888279508140489428487253835954287406212927082290773440003320963834035752534571891153996821220602054507945650309657525418756080477475518805011395274267041523599095152222486262131692254283596010525665347901107906617751681855770092648722519323756263850081280398775305408111233515795898055309885882485753281397077646431207749114039321640120758698339661898646725264036172608252576230968458148856718072275139352702628436644534732747630984116624065804210092460373464859791090170553244975584829379946006714114995892305024494711495935732653492923510788839008892492144021846328698881359139528830732093784396361731466679664466515471055654953375389892795249288060747472929983257282133809593609072582632441894467375192534603611516745720078816791714518870132712026508769907803916690425195614398341058891710013059994176023462935102999110367194263162830942785200147660026745380838778795141036126442789103058486573826335327331956687403221255030757438409454229654729927952839281990677422835384159999188944948388515331750119436435854590461607448747328006638827065111134079374408410484435743773694143938581480872236387278780857033812375952311859572981516387652877746731406511539791989834169341187777343033322097826736513114923292595719932134563457887986247934513455392401609530711462176558460803785830653814759260303893847580499441418314469588691646307771885486352745293067926838427422254639049565936844091876653629400359602926168887438723970934317083738057392048568800002431191865617017223487676072088257560004183626393917619671926002740689624746557757895973742105690920733903426913781828157650224989238661664834349658245746975604588217497825071144843737981627864391154492609887636820022628888094230570002077018880831912953173618026338944856441485461348227683665171990859876762582658052555137345057393408117156866877221205104888390490281768937556211306669617721893888975420445021615209828578098808464384928913289572900577785295743718639470332550112958548503864622959912349567961529997065839183337241465031301037380046053729081493530262940210471054214028631431577928132576257283039115785610539099397622685336748145885108586132435094499853580718072212688033950942166422752726113088372217352329039338633143224588121812255026875975699846289402177549176335356927911310858854327055258720323608091159452068099275687902307864329147869683518169169890122531380202450617244000892698602514521170801801630599088992542492530616287582858408719379821234961569211522788461931150146616711047963668328506602341376709214082341073688395441237625261049463206526767172787196756940118651452672258977414610831669627734068357336608211035177147911135225707496611412962947445205937341162778164552451961196850480437857193072500411889165107927029023493757927864824815379589884485117010851034140766510778522953293756766186520013855019266293185570700284850181063598353513008159762129211625230741675668966707134791542349719947641492601993044970995874124903601385207522307273988871534004590858122403535328692935631824173311877753700002573055509067279093265074564393847670146860243200126200056943869868926948376011645196776242542063465153226134719099099784542445209272822134048042042729343157505744862029208172932555353077044908788520081357570800820467550293701806908998845670752337808747301016257982444589959519012240313864286627866618110302819464539973376022344844407124127316879764185721025684429280813606581203099202229382297741470100512565692829604959011035253335676660172863959464151164835723127391883125678324547944067874103415484313740421394712222153507016258783677258211011940831336609203654985929187447275529368016031826632222916694022761712624153265091199947342185229991771549981339558421551362944362735957276203553781348447877597741953200965200246726486147665126098167074770089795150625193198264410738788471973001224159444351628733809158843586432642340676377964182850096163428957612047541269311853825853902032775825782737289314195127006295735638769639327901053454646999711957850209818259197904813297496784887932227562477505201091164145893704405228035351355813573749693864676215557781828875327730140005283687281741102454864067321145991647946090464403944057511272010830247722781787428101224353690922139061849086619113876151214471247626628837521172818950647562824550670117725655956764033671746333353724609435829008965213480739260115842765357322119630120130381595858752551415815384931112908732133874697456046482691449705730988789644038816037705111605296591830378366671904021037539550072040876161551044623790231874740181631680012240403885074581704360470795852092566545179844502823895455055476370104760879011649100683769635021743784588871212468417937742052703368384927835815147166193861641879836167959346119329256139802653454398734386233148394428577993913063843209126754353362109405617031646230401720105235127103778265952801424565636369357748025603083077525208347355640667300519143649707593701529270153962127917049233312240548237700226732272999450131533115965628495833655803549586864232836444960682571504017902316701155514631677607183163104390710176810998865307218448095953368670377083729906861916253368900646980862868186575003921150189418654369129251820722890661598266772926696363652412571698989225617255898938287106158931050393993047873556342944298016042929169112179135497702760530328951296065130937728332627186775352180836762582452069166962820689584950488855886184732712057679340053121696932423449402197480739606839261956460762983869768657525499712410289589561563855082282145231719925603932215333749067560371963597132168985164695315402195560837088592099535454093107206313907354801976331623304027764740716492439889949558400892807870820583074982090869412199885745827400509130536614022068471589065726631370535395257637668870307884913628099685347361072631561384920022166941421032376174704510519021232856789106468883649077447920197622253588136976433165024914551213341737172778109959118988966512605510249728039196651717408467472179136218961812164909872201964837093456390705994322439183605763999214640597737359041840424217768681905799325232461807307638298515126376198252152348761001654730168815148236533377934923237639599038275085266392326368124432947272017006848142604277655554551467088479802482269566313860932643252212537338750718791428384829672314908462011862938776353124816333297094103725294821775577649818745724896041492782831595594085089361872500762110665033210311071647245010317341424510585801558672900001101706920329332034883532445122553625917780764839320691499537308142328063764695131915995663390261396931436183929312380099448366277266867930127811720907888293223551726731983613962544554489404410245754921920773284205699403572277094223340122322213701554544444878470799084273570284236100476296036164911510058048872453850565148776011972474390145516587215672766211801154187393546615226324490394747181919544559589876209072553411196745318952374308467788066963873535533068670332383420970505221717949959727999529066485314036432588411820687224372249467096716065296884629757217597097527761140029174919630769520116688840818743091441990448092318351813500210330194132833406433989511533246575224820567531582979616736618560963881497528857345051933666400448124240569668548681629703129565134156838215264705142491072706185508845709806277270714087516895816487904101519574829898087894305070002741765825762033310831932417003128379486032566519091443077690102326269964461386757443099443341416191113147257589290368028110941528245367730103177749691027961743149902729378995242887519311740726597821896685609778955335015972424803991358647938863361036178374791679346644099736499719207550186827916360834380346258527050429424469621087282600665266006471273651141730645404950725765644622572201818722014696683047070935801090627834635690706761463390250905048729618323694005511038601185374946007029097056331159720136203799234885153237539615281161278145787314704330921465959792702125721359502949037804723602271952288208828758825525055586395037726406307707296936271575160877103187797935328252952648210784181883979090720461084282785844338782704976446443617427278757341829920819297468759606147523985055720923549919655282183800763111561233837493410733510190446431790696887227236331856885427947309348525764241076654875186522633587183503572523779826285064269392357236324290629811966095586334529343139263632494244573710511011325370747080464245243477223524174565599019535553948643286940972726894155749642343261366179952742015777474729548720756005125661920695158365977866567037455573728124804243445627989552761428189798109772101564842113684147516638733552615306300711152701340119034024054090449841928904776182801353275669626928123956163226334719130016788800877634147796181382989377240183847681619559199900164243595670896379268778343075569516825917624458671528833358044383200408296014973779742901526542498997711466061518893832131244530591135353922518110472190071483333359433038674359065648214364308847171738023251566124065531953726004925569379563186331147086947830814533042730852666053562640318234844538170291853074904406668166440289071005546790944021440085854992706932284431614064125298826184005647290308358462294265537363561462548456619966000224037587068348112855944628587997480398823011269090022824381735160072180014045284718360294928019148020469681694255658587029262777724991612971342132287460954956383760755812438806676854233591158689822434240514387281396822050887012933789792068200258474096159935940283383173802968183188557186916968314013008126725592003702428423943584727513873868991099771464196031903395972012418061765553564334341084184325703840192525254801628071693585261196267798655498462688338003003751468281971812841086614582660270488138633653787031685948304289378595614716441746936254933405915196191201740965747596494293206854005899351620021735436273232103148438419706599838870126523267717445463853853356813273933369901027553830542811134664135240214963918825746061719998884759663380150255076405866335314909095274550480171043963186820644412166911942028573545628293898960639130313558445833880800944226165433466929429669849573376952754249883759094390601230556759406014468972411070187143852197177435864654169237717408460475692506688461100860057216737954872773705714897556832999030547401950981927776608708666114019119141725274355202890724849248422253935515107940583410888695759250420515372478933463241778067667307911867507086871010360280617145401428309344041315288043681221626108702035993579774312043679870546259976291770271484009655970524881128433476067095418476683192384282641827445037871553263086073442536681243962684337069344725332421819080521376934248894706598624170846628205417648973138457185163003566506300106734536233247730279806313018763137032968501564415663705105190720508745631596826186612598145545902716714329644684933330283402106085231280247065518158764726438149257168419449532596953886592811777453785309155651900552498663034208976230340757250422304196616770605964033914663598466999371697056972474226197347524641848976158353323721990785216666046978611534613522721503271235868245388328449203606226039569833162697602284670255103135010909355741187161979572208049519433647523094423548146314776485011318839030853870761518920161288240260180720105321317875019195294473733775192695274761346539592180394444134139422484762406295711325635097988202623114973885096708297861158436120353579525059643311520108384411748143033639073613610508047127495940776646770194046199826039510589194538118666010925605473609023771981676312520476879316865546834774648917428957858831669685268294157883983522468051206527549261508192020619096686931164592623466249551053168906793967916375712274453197777765659009242553791652340177478154244382607948531128679152530024303112346778329161014506881938586623432170978691292255841721755572577930677306871396491591914352973003504931224837137936879167148907404305751294199989872784321888722309829070424527221145563582180429058979517616550549646734203947382532366408894120174747882209529024764729395386328709909903200116924215779507321437133691113664876275412365768155227030097761134689659052125254312461376903471317470134800899867893289069963194786959827582425607075946063924057989712468093212150047640910387388054358172596262057383212828919908971592986778889079566566707569723343610453955422935119910271443738202059725595645997398121386131852459640743708391624735357413237751006127129086699385388820840014881902581915947742952172575653805280805024037471691422465167516342609029509536914763163167111176656326919344219825435549633092377548985231041771592687503161740431058432487539429885012415523449454473909533260480528532896887402396548917493668446033524944618386515979371103036171326782314123281025734490904513827808828326503160224151416366017300229742792733898989504543806792287656206715602471610667231593870151719502442846532328006762031967483718527438075696269960342612250736101315546857680028495178804608973901236786173347122567453602424012370738115466125131830976920081619194820740486013468359732028125990290808818019987804717402353757960843719137292929678472635892516975449420434980947252753337343048807584475188570168346767730152880442068887891837331351783245985239319810813738274390065627243765374766139373542795721645178535520912325003621709364324095055696352422003951620998825847328910145279795811276003168180481028715319028002060210920968672800499729985755956819273846170496974728923476338915998991862287246281019682312523061310317451396110282575029648573619359726501550732578559428157325362942991508211656379356305349739683410627510442066561927136709276820067049473808840060342876692033574331905910666480514603571762302009500231176190106277710861340755209684051172864460498561401941688345690718517349037373339946252442171065663499537893541521487608459647222702223452910715432675331654265234214703568530509784541630976793584938382794002434241731541318738199503750378127484996893109987936321404618285321279224383802945844847137792606032877712291110693322199242957969675667419692146322071387057447038940498228644234209221217848589237992167231777286232085236294611610292364454013707660616676629898738713148916857206595469869917211941052355913124933498335474987455424613011354020657698427669142995430727286827514675394978799789179425905030374498072040251736993728200893025119932159401944494509570680974860953664321134559096735582749775040684832609856663234254543199954527127823306762257508245922201029987631050946487513426761536617116736057405372988523500365802347833342745374369548929930650867706424225078442629000258736260709210766181829423269500903312352191366375360161450588196369843716529543639131038548188080234380875773240985069404508150114805298730089722851790831259625385280097084840795087551329791162004327991392996185245271672279518430217960863316763978794534642162368965007922751914612593724138677864331587019539712393284950198015331418564646432000596343222618774553669901822678839526139184367371511713459275970347271875867525386591925989556002748915489088206850019261869408188355153445693400224923272895916644328193990831897198307164162196107161572620004336819910521471551583160258758053653153650268091987246506427583658084336144982050045063005049945851923373800978862250615476018032434000107952169217879624955368110458877442450399880351049295401693008575011063278048168430771344859012009409236938507543468012615125318797718152001166888741949559152054298943858490049082067436036580816397697157444335284829564039615720945839350761975522904434368257359976380033141568694410402084846464611715648954893098334204034197780749253284546826518622271802833478394808253860059039088348825825643099131155279851741009975729975709583567156989488429932210293239238636405655123151248977705574992199071776316918813944925530357426770313624010087491341554814992769218400049712671680905326602360164865781331729878045690031487244644138421498450148486349460158216271712158420445283163853008076641971348706383053844784443375375276675826666427030703217242750311987321557972286459035562114720908105932577040758783290285742104571116813501020268493804628613627687927959554657162927637752804019441478386222887003800636180420712910933596485634386252668544360961223013294889344709890814517324922420081344909861857871410915972131900217654364532044308165960547048101661029149712122168718780718020845527190737298892109879659302386674996108397769697575147330760858446093008268535879831772068715937438899723787521851136463768286259554810875255500017300637071735156653031555779366307096100122244420448133997986102495901192174552121319276293716198353611976746461456263547616694763246787087189870071445650083487494805262368723202083415890698325861928118037212484211864723582444576729235691492693857241226886596255448401080495574595691262990765089903555348201220723779161301116811214454435929890748039682314011348857899527456438792905936364682340545297604557794676582580963883503360002777428780029512353529001515513236335289406351169672433895088722505540595815696469806882643841006932760345839025606239874226874089542198655970296082343338951909959239079785674973779276364710706344181116300290886930440759604020211969410474204234781759263684426361746321380339270657161020500027018464405399754291413401977458739455878414813035450667072549988178694923200452525592082812869654070626952517231316266621618949310218111717242240602587044079657391953266082661675202177177066458375752572027358641167945509937871326695346355347387533342924193566026232138408697638118147908689354109799963766310819947345079187913794000259727043674213674383099506618024866294139563351756263828376627475905935228689661497338297796744040907485908767544501755862016452056319600581828978289307196860492063587569706580333232722507787623674636691865756439078487627787229901097831635912352026160165863066493725178338499882794187994463467034377993106849624498816973977399970654601713291391845616222609634818143430412630342523814143985239002274674440988584804913478627034712226528464169163773427560050576409923874759059581223577195334318724710553043086746034452039419721372642077140545406273340866228062638467269100856700681274622054944358908904111446582879652730263696196702410216248647813154623236657076402985401839379373947317550131366009147824984734448597803620026308036264078831477979641120226255001555087235805495671553140568087253567524070817415660257416073771156787445734191656884665470541539228959898397299710486097576577368994585305495654180517880190557421234375805068042637725100113138845419825437645375160381947249990738761069444707564444792541776049074772454348559340138833130348274727554358823242992914333420156316221617592877218313295550614239422171954157915755458773658042308150218336283921270756012238573604622841297271478203215228861729006336890907984961146655725734527084562270004094060502535365717464561573341009464279874938850252139567350511464380441974191389814961425485875766323345564784750522584048580528730878774954263128066537714083891599619036135362549253322662796503170010970936775846682667898736444731443397747651174528114654288375061230223839293947395306663801045015894873846162336749934074905157524175033840536670871810209487840619143021254094951217080920337341238243383731007818580289799081213827270697470883661180436759042100534329882146140463373756521325114903997008122156058750051112304701958218087372469892578883219268311735951912649265156015931939037491414741079613382999203295073446625879638542767506892052517142624149328078939735319575492704456221133661248530912299310101865393787419469517815827105433520646299075950089652516574335909302587231892454938694068398375350954681587286634764689159980191068345125295223685199555647634167060406700558821266056414485878547314707994133060176598539343014679398216501960108212832456077217236400314621825596385025604869313094662499276707209909660141978871180697106031019831340605629275428052491833317479647889930797853860348785183865866507252130147066612636995343255027733399584422743517145412753912636227329333470780433762508390175278059357086983626312962096687086721630063415767379369329316469017905235622680906057550064690750554754294396922108064680508280444688072732459078563484112558305254424940729558645796372442141007058290634316702415374561919642222789121990690906549223282235128328131046963277744653842196908961292946536844566771891545685188487934403895132977867695360134213068427207657804364740177948183949981415492433719363391888290007780296616199218013535588122782104912320652448132389188592234077805328905708129118117012646637627422262220592543119999501848284067163324530764381902715862027001927943893544716887581870363928524966352273385571666457480570533596363436098019972112375961761585195117732787320315475578004583286641600852305205777882921770928821975008360154764344810172240719095005415166631537353968046778471256666331523087431974120947630858037091593477083509941267474209323022540113166986799129548651712551683445456421347044204823957995943312514900621338626978888334188091234639033015080268501178157890594234782010892041867729083470086528221205597081167755570069244854096640005157278089251075238461403206200658541085681911106188976669721542695915516493267149973342526615662287665516821695880716866316817746288840234231005000763955946935058777417499656821087820716654409130323666892975937904082518254372003932852929456013962725851615136047586030880096387475096766144899606315314172557559275094361313371757645061781099854992242475381808388223883326812004488355471251472158051366777249218575014586179448031858448390596876068569394429464718050048016718653040734196089512025856951029362015827460555511442759887293117842183584200246542525622601754834025590713472447391389359592147659830672976777822272566195980681463927319198344165372650972279810465885024906005933779711608619878402342265418957385739663403909959375735139421764617165400475604572615625998577744289302954353723357662286258505742718192236254840047334190117558667677518665436380397583414576355081380090082208186541678398275301517620945214480013751459624598472629233705879015790149798171231496104959635698485794665066639123090758548906029714152203163751336132894110427961148604470801883782024235614195526511840496081872847599361528499152448357502171554822683691136408452759869963568821799284061004251104313405926997470931059263469083016271307348060701874535567419945438530955829252796170401182350944961951693488323179460476901547131703284835194264338072020874459343283836093973886322666974362625779293335845796478249558084419810072700123673258630699290205914336026634035171932499374868211729677475918235009046201654631008116242246794294976594614447936361260816953110903602379973682286144523895176535883258481364380950789742263146820498994663580677201467269903956994052127777595274781999482402326298333134365005439103992087164821432872832015868735259484296444613226504403158934209268038533574080089489452457673247030465932639874876711918461239813495476783494239445200414484871204187870185207225865290725049202113662172383129475439258157685349550758724165394403938262368355380391290196504430945991392903203571450209768940070400452898567427919115355854330098938772551376496211283655994543400313551334741669813929743690078343756286991856245628674414335576360913096905514401214338538263653341883123589655994762087623280691397858563649475572773666084688694242589299684009935333228424279866736297179440150950309095800360825797170723921148954733641943174451787847279457139705447063779798776376544895182165088051404271578374472981293937271283315042145073348628393340217410249852444263874364027427217146683696054762159200789957592180653850746225590755252230133019890125950366895130302951939596264530313231818747854184783032088175639088453241303771783633722239087061600002030110751606126631049114269562347772724735056673564586210458620779821710598584259915298443756284577915591190422860903497703072396467028544429004576137947181116348527723474631155006098554803139594654519250874798195542501596801921402301063253855065534964544701404346155704140533137512705673651055081780966827982226247866107377829506420852212528563355144758836858627005100862593309530418511184844951076381199576874281146839651772901014319915302979124329262883727632743428237259560033738591924856272713590500839108073665423206387891051967190581188317774646735773113768941871667558918003301151636297532284091760062577117136954703090710250546277364936228292162633008838944695927761970579645679519579009860811138124381468431866983251694334404945183465930096792797671840590335325385894496593721588178729589199710475002419312616486008420888648913544058472800427408908669482074451874482723738285367283870031208255020283109088927826443458355266543018781464226145331087625412256876185949734190378234065211244004644416416160960111916029172569086984465111752489970103589294334002629508822289512687601001229364126127246230922343656642545969796127554818125996542224470018998519400685975465849853898704329738039571609261621231921929349428070778169390017501285124526459646391561723890625522056607869093367815981036493677663614152331498788534732772025356096993298454764579097805801105539199788626339439852866090397685089314343375209130949631709202085383040670909075990077790439339227309779432480741483367066811512641908041722507508377978068594021702796881858203360745689226296152298389591078459955717485468903023544055451848421639626779946067294174440329344616525063616212384263463526889421674584115440509990565941137220511845820456924277365508519401440149532067473650686170202180129596139546281230580355755609049457370459001947762698058607749415341061844241700423314864465391693816789575718861203827819195289611634349415859102671332138011954990555784390223344339309502592897665465196787688308443915896214624676358024772000412800830146561854005439563189710475782079201850861142983551757516794120502868671687456748037278393916612405033555764078255088721486603897107801771723138572997213909172806084082473542868102727894547804387512766586323861554552322323954009720449511626478511100676746922743872670784540617997747385447047160617925489682970110725075258781021653190252367991595992288977622961088239931813138866627573751047830720528724644363863242190466092386621149083036250010571550691246397260196218315699260422975888419273608848037319580119095178639315298460162915704711245558774445815147160747208543410867146845032618378462862841459619288125577755942486565199912774407946955789117807158532944295949838897944435660395879475652235479151758366106370991602767366900560629495301851643632707775052624351339099120302112361316646178505529417946641810276506831129157006513216646478268833426638613594962534434801691559047880599168996009384187815749760555502760744827605229002775022666876658514128679265547603593460036005712004576445727298101469239650592101571123759742257826802696185282277590463856146832691994137926457800699268880516340425947242850286942065894262927620553294895887482819604371519455600835564802482154087534621268582107265075242690032864047248187531464664696555408884048318447173364476675430070162291206489259632268842915468280156948057090326863226398104837610735992284188050646223747008885834159984254286154136191974893722143308699863466272633443346873747257729225825601481129379140650042431301197204469591437296562021638078827603789168727168350263697204616217595146040583812719843076545701500038090860382548982039075554803984913573699463041217314745582892414801305650936306641235910030579724424071997277786927995013423635615205446303989839979929966156212581460497141801215880753217869447159393289848039374040162141179808318849709268153526139649043374885474919436391124010157969443558890689358631448451377804442016920706437344503934397040292465850470891539772700141539300635309901976806330379565882214725230931932112097556338939630914035528142387364610011093456283889385937671326751094046549166248361343139187492407765362152398693879732955629415304420058916104747648662030910595978570464232223156208083456585737226642283061178280586975876427703646213412782195154008899316590879726532915321871614178532073683132277881212596161595823687859993831336217817970629315352271738789242805307574981827787121073010610265222357485327381710866596821922683888321504687847350491893180590875756109400362155091785875436938346710742604415476959737777582823371874836997956378121082122363912253411990352516176259011134552637612750434439586229162821055667886409998849229701966653044105373379976149391255334855008387062903936059748202111971083552793775310822098385296144394696656182798356639671533725804713680180351388611562838508224614290759204131801604739893287034223434688177473095696126794010507292601173688331822501007691060974545455313794195901726581623762223587913538672619909123830531828112793931184193266510455201720249865324152247897174550287269938257426422587998938642838872810103825135630407811598086722430230228712007266055794516748743720233265204824582436207183981884328176543368993551285080156191211040119695013374679032167537347497460211724580781995321840907750668096954050039358879102959052964384229632254433050711570616632407205106974968142024477119966650315552920239496839471510632499481134300312490876751896612258475740035855123316147710972070234791441798583027463603531560257497515788759140208579033921729036688181493627007254057075643891820952234990418040857559292459454780493713849493665847972575751753384360606054178432371361834955613042763953985843446786691203241514428233598171579306421972406057753349849972920899062014287692527928389005344469274541009774748633552173103619512338702580388203287994966614309653690213521975775055618862211708631644289313693564733799576052161166410055328510744969050521516557785657721858441573996677866633134487938644350310511553803536807052489938236151180926412370022473369150843511171447087990503385683671942924441259947771468185399136986919150623178761141183241008263846700698356506054768339686261559789998445421468837252081468817365217326310982932185601514508371829072740431616334415842027839343042473577328062690601492210311283265183044127452287157218844537739308500035533804730381121511648669547761400971079866259758543627744827648675230930735056015847129171037124828875562041003474540493829111643882026834596451664345091314766734514684069344619424591271760069574996386254178696156124094229943811035029213374119865278472096866916823371110555068764455570850038348054383920367365964336576245712465654879475047624342652495492479399042983819178191007702442632863371239338227042161328050371131595293238737427670054396416870240751930086004448868209661882395147032986375103645070378807072843244054571280894663571517320743491292390554728557672491176973884359202368589710438340355717647123664680475095206492627289818916906312899146113819671791187644307374570374805800538044201713862043520558391450769877696025903395552545375349836402146497707944191182868901869489423660377795327832142008027685305965652908048473139105873586887280075650605193164820094787491805931824817369141691063353103940807492896240687812861361488419958957949329143777699343317261752868937461167847242079734093787742836369831377627831374511510591908766009795188342156908973266246436267572699322173791809954909199040983492778398368524458771028985587006053801414745263188197010103642672752988906308829066008988626443051996438617814662705249511688274991767776106206031013582341741921405396897432065221328149066927891363599705645107875432305413817468330868806468992948102246602971815109117607008146015324698359323460063927313455859257812796879784820854164784909024035064134267827822897812061578011833303937668512733962369169001194387845213611960944595317985531602937991070990873410586339843653312799110536446501718739344652110978681255207334670248307415459892735474062044142431003996347200242467694999129036493055668835529735048036078540358345295871193699006035325367603089227059498857523063189987596311507620662396161348382058766654977049854575473668144743135994737825045562724266750060342156684819485305601274020102696824645422741747457390921216028197059806292870268827215021451750952315351457500225591668856944595485079010370560317231863162030059943121713227014237195764036831576727692182637105575662802513624907139947921027558312712779338490821298369400027443263912266127752408727069174254694693190103982238843007596391243267022205298346527295288925073077620445416674952114006988090049426081736422971136310355794004216731794184606337177280704794763380086259104527897512926371668779199196111101786959307102337994900808133898131723145327173198376845450217123041748061017417097560183525597125769741624365921622125470561308908256739404852114456289255081761856404123661819848667768030019048076252183060961397969429646811658329473753650527077416263253407528689462540957157018527346497731924584661101185433123682474027452917297415338845807780568594258006329594781935602974416300570825967256378984696671854324446986854078247812212505322053326193337917695918008096489894320649511388348618006964835004550535869051863403011681739240566971248553070659644540604227972944053179615027198187470823405818095743739987834086415220374093643890794084670641992501556257584499229713454597286998213287354507035278134825340151301576086287058141181402608812363637660130993702095354797393646955696982583132599178132018043496659189751336552862938150440143757507135457924587588753198919863904062678839007176479548475563669900698556945887776423904683553815321545691136300543339427449907689371685033196978345388750943108475149940787936510162417746249347615680898753219370984847086997048812290060019518427692113273794094377778837612547993502704800997198729151856579801345192497898819378201203492676980289107232121466731204552282530428416825501556900539960865423949997402258600553517336246051962695613643651015619928712658574845255108524050607092828893256357149902946976440214103110400240358947364910230367377670536657922211736212388796844630951782654370763656246145478568596136711845041505669129760120667945784420373941733603341170448927540137954739083932692295222832303141853290746009145655848986845502459400309378200751357187989522737893488047492416000093398271974631688989877845133354949024581707331271209574098563485338890941918104731911500955906279062585987942180550916973451392103763955115304194442530999530049225990731021677319907151723012589889827503847452621434926422433193129939140136382238604257797790946798370714550420740115708871769247901856396986975108294994018137798304647750484781995591078040120744605330433307430836750608131190233955692930897327743070940648239055281634846253602171281061251684108759258258895040569250058453850031911333166653077322144355949161480459289390878203375858487069697382410531447594069745212797646448098017651961448941452214531178024632172005207772395351465864546122880925921802781333764241217345639775917962182072228380498892674343759875509662698040675596061474579698472286719636141764444801859778994043600523559767170989232203560189954516687279858254242469784588976776013585856470810171885872665408507915398297550575386946034189370957787668803777007016419216666877881383817829647899401541668850805157178804396755146380658276912502293239485488993101971962716337636054475710470983119752381075907103569526285246227602009105375365899646517870780512592126979388771581112772830233574679748600424679302877606332334277956384274843466567860909185037233383157219802946640283374098139536519324437725473216540718624911072288931263709942488267763041315672517537950617857804948396930905784703464411223332225819008275263173523935260501664527252687130342962936030929324986053086226608128489058693409051859702161190312787065110784426481027620916814246859762369477659395352448679225009495999268692700264499317718312443826308133935753302388144067456064967851383271111898788053028057794435985439143994123490629924518930892608707375266757815565086842872108662002095405156677367849729208307281958191040957392969064856413235055017706570082716535593799864514304087992592119557679480739150782600544450555507805502400858847810333092340484337711753876481244993569204321136765408771950732605859215200286795977737928540132389469150271122864241330166660389475981454575624542534458922948115737750342933811932924044016094216698395542368032582241155960444980491619627476912922325526886440377136907863976833229958971687870426891205224335324708265904837092693199107440642173969415683319143002423288771090348243922802539700410414150535810133601937474207321960371987460529665650305508447050124079880617023128677474120329539000238136800710925947150586634622680588028899349255868003785512627359741286208735649924048951014884236996957387167188029483189670786466372032718857050229983357312113355868623987850653648942466847351635160325940967093313674805576404147638530270389681852565146791709941506503910936612895263204435048042038919266425898979106354783003208802637395058431992300636573590637330092459805172142326072075032852641035633633489128371455291542333608207919625350530135608511025281452086802982841494225756567250461526293080565305764203910193849566596708382738018872876625478233654489116360114346889159213326174430924506401850466117482603050582062296580459292505351431154183727946124670512482386822476717049303317549825063216403586949464121389412992438065161434697510353751327951169261018193507675754044293289500622506766966100378886524210977758913343779328388821697948157069808945336215245758374262176894164947393493385038623430157776426075758339967961176719934742576302973432081959784766080776419517171930628668435502497869752901780683762331827166508400226571420119439298311490909250300729598883261727264655837772539369862104866688551377629913740693525831888499708643119942427915226386533986243525628980231935575632035999294745708405345638237789104764701056452095497328178912513972691603756656664376006511982273579231933387228498174934164322628632197730793219044562541673303610543797317149782175310327482747021416598542272670999372358154446616186396193610071989995221401344323418332218345749101679626628083611152242662239459931824526112756418121646213296909565826590033549615423995740264855896298448619217681890823186210479674462337627003977694424441667978853878257410863366595864260055148815616176149220312235142136559653347659460144474714927625346071759904147944725721780924546300747142011479228925589368540011028013457723466963474782713112345611404799865119835028556017849828677696291382381434131616642334828327483393858508806995430935870715208049597569072229356473176813145105707186859834592527840621400699248882590806963752094883619029100904836167355738588274549243571876438045481851209762081782952977732305534689333549108615104580529765668257956068644771690087156173606790461955341685513214823782503207155865177200473435559923574127380840074195628977155391917816926422291081661948342664035512930425245674748368007656044326543777271242483488491924858556631898235127706549669780606031488191617825977363283128619563669624647502645081483463776426325843320167341713938854444800517123342801559241274091959783801955919219941151264859445107704234330424873755697938731894893261112613560507101553502997293999495178999920073153377381777495978311012641761021316499743380507646803629813878461930371102587095809092197599757906221799577041099092554531070422490120999600338257591593609443613593162354826060956886440110724806454309921103036635062145791361201962382169878841379859472074454002081345114511143924680709196187215407127950498217707255027174264823319093115016309200319287743584349331578198801864897884816085480098704858473672242162265290542438841724653346175296059316753361003686010205827433266702484782579415888486415018422313050064439616390264881568679564291822582609539648951698633538196543759517145750837379375834634723227717597682257305011176063458140433229069892236023908200637073142672092045624199960077571673776602449503876301685712718572575783352636275372728135145369332421252403771141428555901017068070794211261233773615214757094905544167890534742968878270333577081320024229912169127066214118489613157395259360525652243500012503229366483052825975192258008151595661206582216128846166295797837146657460366760372353521939063482544796567396021840944516957312193134815206200823040603076140940571237221793771308473333529757743880453319498514437640020604257691829058611014598198216987051699005219330585675988719252032311802099141997302316020808240534983663182728416628117598048235814127487371297531594498596357895777335872846413194854261195972152918952290320055711294086728044921647710272304308745178828962500371015692787113654693626811722561385047412512201304378233070319432299879338869334329239010580622306557082517320280334425293581189040831357831337219587339107569619470483369815464635277495449489083768795909737183722173402667851843431736989988337937180410372388910844803381926793759563305357728958204734346167731433009285163348586712093490726812345107081991148975854269656614088658112408072672277277924798033532464594727887258857816377767269784521605861121046559330349249430580570401668343580977519988622933112137574517304457756493954271007175529448273350376210310894946047036101250611256203099183810111227458867935220835133307526138687861386728324563422395737747438189649392234989495414859792705753616497844415301215845424451780034346420575321890480709414192337273881026483592872835818538049354244655036688790965452814633753831493715926386399443775076149875222164316411931877999820888060844157687487244033701061933836050297699486548366760881782437653992425687008910504951153350887754918925608912197695163468006607340885457811623058869850617216320786979262017764201961491763872399439991203983915822112770097875211170171022883727845965532788087310251570169115975443352885450385804215264464422516575751204164517784767086776013194355043704010386814006874136024295552620573054908380393691549614527277626798633379650962571904439861877543890081555504577807272201398943848189611447071452087372565186592279176889711061310688653694041448110595107875841367390313457784603325746773606796848084505822162733711633693153202965489913154799135975952423166419122866249053902577751841053016506551570551161696441930369361434710294424593566395817212844585362597445868982942557372420479957202046045281732878862931871173547743901480830990333968140188739307481598461918666008235073358655511409384708379026796793027174678267093020101002143563483817434459703783472564619033173503035173110866150115555566134272007684533775517519407603737651150340256388345559452064480407702341375634429012170808569396167242047796289387413537131465848547483975508361355821176616309343430500367564926779165562363076895947716716827490361528194725059761801313212776079682191570363283383004381791107318658823296309647616119317324329332322231274593701529481588068617603514697038394371961957278224557593984137427595896055213085450198667213804691753228463875576877698186566724283340513599874435700918826895641580137126074497633448454683185754170424925993901868076050465218383091460674842548131368490236192801954039433314807221911443213056677151496534790791222084396791966507873325619438176524468909032875628866197879370452457620984774876822726217571447361088930558169927096654336432851624990054408609328140296100023307845457719550643444913111160820064072332645280901420891876267772484997744998493720525398508149174408983341779408333113595610730767137521912353104944935702410616463214833804098891561184019330953489524789310540247900732893867853761208036439841527039472591763513536965141683272022070136065207101809316064048220934910329166275770766979999115356446786484974531710079704165724582149488742466766372531813035059318821801777755630752474941773624991563916002229419303049769046245530496415355172801694475910448333333842982562142837969723412674118614990808673671703428418455929702152784980151287230346715209583630408156886235390770458131734021472813779485303247715274973889278742349398382101097517375440875272843225657664801352858530851817324590039327009438908203420465772638244699312943663277057233748631255887170039840254092123666021624072661551179592873378481618711859228751171594615324246150357109148863076027182500306717701758929125797019107285134034866531936788004770027412264142265704498875226198782893872845245321832534308254567920579014184327672818786060414939387353302578050305160275486483295220762034216046717440445965990560810426833976886757858327194901861959692574153243770575627072611321663451553697731180251417685383781987220128915528334837605561182248881708194772973772482374360346627817894764850684280370070280323920230795178483454015757435385028768991853109628352907931600961808516439818112726498692998783997194960512174281733033278614779980718002977577115679582975399275356714525082516601386145222868302295255946637945710583344333353317275764428716940315095586122731195560958371230780437289921986179835834339440003558878113988605078158577842118156094663295694784622439349634314116110348143361535094428811928529545839576856116183277579081951904278298268858215012282867857655167495368754117792566615236489246431257720205825271381859595165526698944240043471122877783877639469351688713154475843203260365649583795614819131702783514090844311815339679279366106522917007155271079630140759934331537168692520389705899030346785253518812804907295561370464739529224458427609498986406855008630171662669032866098902810471710023543720103903986634360781289457336696938481806875997395621217334001791748387628351283959645642837589859062197465886815698006889347575699597311474870978440449558507593509041935803446922662293971045782831596787489040095671295114501949797067534687775920635808615773595170496507748708196995278119350941262904399798839735167168064281004313234838221851575278280583148626400156203137313225067558856054512008810666954575411258302590563526786794659408726701849842863277122106067432785927232915743353628634037281846870851458118464539931150088678766643938277960554735256932536706661314835668420608629821606602597294530756739528791424912725230102212139935893243621875876984103616106181294600479889488503771166786670488716394467005203764735235819978629395198450070398889961533407195383932259500256323025535486792471635455303447953998229535082622414816815509138566486215167000820877058301252200197330401796873719607588207813146154969486308841455516265720650230207979445621651054832246491420579339372759536682163136471482103277108386217721277177848334081085015699017090623206193806571877751218958989326356768508191150312866559861024399786454121882965762355100256582315649848993599847928907505500221093166068506429630962638489550989886865345305022169669730434145765905256310827498934411563747739642942484355462991598380078846088149910755587826545323691031581309225937503415206524167463315451552870746550799255045702860480361641226828112510029878031951011906815789680567338167880028711769405126284776986430653477429592569817702134442517074722381895124028247386814328661643337272014945546145619116817211072422683712002745556596836121039594392914401256640015812052624731506188671311097923987289957823744236382909642147117169525213358480091854054652985672030995140214928788849989455281502411479168919541733188052454570506822451682307971454039262529352807496990155523241245734875794923178483306344383389020636870198639889498953983710465052573486214161600924106759718474745362487637302979623104816814615894559130675931991196756816465597684693639643813689990216490504562221184634954591839038419500481956118856556997401409814621890060770557609076434599619506106758921375314145594670656736278211077052901961832237148970506348995371770942979847606191332174585474140272153343094091994415628380727418613163875917686889741949888895708693330376989033561850296009808087383697098306724539139718980727169471311354351821182235545829247433983074909798064375021600869043527969189767661534795503664676929704777901119802849761555914893249293154659374342877924706318121866861972206598949167465376350734679549227543547728880311360752436566931152843744963833824040695661341039691138205023740823651768358724981134687169546318060279892806446355567759513101347114833339056652048929091913089632071976734559581467832009798644193676809941844502880516356659436914990162473170805590378363085508597292640854403946196779447375349203926846322051986548529674784041939915636967184786664045223066816586620105753755440016238189826079433597073185469105077599949270108449342889619349421431066152829686154565937850661498663033605546844106811619449119742886450982150290281476068834545184257944923474643515606188834439445992672891462518961709747951129400388776485160560231379054633851995587974562993942320139232885086158866703322422089618170437427818768386743293462506804696477311991939002058289670957444049429100431830889159473276673381898280635423299573236735862911026185510062986259052480285015645846145274820994094936151279216793111477973095010721169415523289824016324011267689522649907939505995879099190331627505173585835475394265685725449528761157643656126450600235042505220169106136752662057330478035287394057865283428440473320629938581086022171731961495179521214062146977240822741667646877776907666849867341734130883287122059493688981169971746098277307148543702488301736367235753733817737468076865599533466703057265646930731099412776321957238309416522505955410445651025010585637812783913798892929167233573744759234783182587028234844976278008144981535042847592187012335279376685194933530767191493708519012097889596461538932466383472448609960913040337362707469231208568734513344527307245578928654053272780442190181048599634312841297280421603256171103065587789155944288610046070445009098839326461011305685756833882378871515181181283657970488395701075898600612809946885044330232383865445649141749027546486025756215771374768613711731175404159074326338429488217949019789416769992301007528161378346664758421447315396217542335706323887709249956246357701033875506699543553631346995325014311266702298728234511436877394554721534064091450020180737249125166409690441442003266183622058788471870290662196545745555989230947745893588222075687777490096440463445178921596861806434201860130731315843092163321202357771560541961982336062766615637897840681110211685638076276791241995244111393885983527182800242419451703053302110009388332888095822696312786152840316736983794617556518153749755567716354670230514286317044043441817843802072488554317151508765284402006798049948485056387162978591312125519666486550425351946329535551323435987401395958243911788405456920021436502491523021597357760568531008633172327400549839982178939573647235404394592756293436502682580729822125479911902919728504235074564522293514913922293218462319946220484998210269331158785792823658087629229032249456943246621561628147626889670961097047981618193959697038503349781522780693846875978098901269642469043460314568339561901832603373240952540132383706317253826833123342259790447070502546973626009328372258249096709595376451063278796052689572140118782946616669687496536977228498581816054982194742040692818209767516908481116141802103343946553673042049366456007196940196903355795560080479984705601160327661593817835484854160464297083336067187149725155097386432759829857729295282454837930214001612604329809115383767552110699645918218268214364327095365816903196263398903406589188289936030489883821594332633457137148983427667044733768957141457613388580887893525482959054660694229551767726813053909890263254741240878077839092925275191998112082783075458557050176486010348507274830057280231863256843476300887281612855746607163570947411865335032188719259894974267263327454930927228585992303838689481252116745354874636976231390616984473732151298180337290225191963418853938925655886311495923247287083248750274082678990418780238697174539453532399484482833681033763365873599274284438495103418929491470363454967234441494285458392539948859138748333854452047471459792754481463180553447637806263179374130405338719689432198364261709750976089608511025967953759962816182334455048049516517132684049523914019563187430259662531784899071636207317779966755199867364434687584954189354721707015877349188667209216680114904684841205404396629658610568183404658684595940974650967395236352195388099576509948084100551754560377822538317849724730463723550171340389654186918458336254511327264008684093058336458155426826479690368128890012240281832956197727234312149909688912360730635148460327117053389498907099688369908079771993079100756536125176814919453330044595154250167287914790662404941031805269519297784557310359727910519818848922198314356077973769026761717771539206367122303655890688392250237171748932710326728331588108811690657050212747009110716448113871464547154722822377364629543521765699734013003957017491035362404672767026331352418332636644563841599976017094336716156650643909163597265640919583136337934034599932117658338359156232797657900984936645929705613939134562122757689754799701519263737403511789870345480480343904312805538506223327151327162363416055434893948038123710105960095653906767707211458891352078303405841524291743663019589149425078546954722682064703963911125841874748881587034738144529993244129967845556854747924485701145762518218124412075360238570515731311592516186978859426839372990375265256706139249688046210799076078342703735283906622679107447676436028240830062064284681649174306305654295203353676174815820159104929865997959693081957082217475162583619585923349034505520643914315389429583736330064821318815350709926337090069380140438574616370204731015586393675602693734353495635739437983937592639930745682783672420316926431229710342005362650990295435215929627624219615338579402261830703856339459308023934939378208133460994428546952106572132161283370594231850707106260134158764016678540167431679219998917438870457178032243849619084938960658958124386957129721951247592423147639295875879282876028243783327738025339929120270147154310574565515812296104847623617848007986133381776388421200862269315278863838761815706575439321033845909937282376055294462630587019107215026924168361929079754957830608360631102043543358110456126114406035595422946203139103780393064548990058161718124644355696166182284616146252776447896248269423187730852994807539260714033362681755110786506669634043509487191794366409811803520413016835712021573906681190831794490464360699577427868619950344421748916456198629264204711926557705691581073750542214726476366971493957645602039428735033506226741766686439198760987949419606880371551873166879621506323558953638245232365357977634542860345880523396079495134238902161262591738469919370853409259131110798628841625841141933385110005931984530662354595061261805924560143772474033189570935750380194106895840376225915158101081303688585139126802394608975420165788723774952874865666265005750046938877468884491396693579157875258009708375668806072480474213982072728869168809670656374209623252183111501023981795792314266486010946536107705972202103977237554285851030680872829506454839096846858449812932224850407841772272550728717490375325962646481514805176841506426610617454247855464014985016267556958044503883720072283876252498463971269027817268763554483268641596123354487611596462623958780038589410288308753120979127600809902881838188788096215068150569145909029441037850135866180515636990159406997638506739889634510985543001224844031024991058756053604483995713356025581563595038804755845010961864085879799002367498650155365303838878700863312644761579196124133394005317854678921944806564109203132722831900586167933009980738981138587857986455192935319128613133650963349425632829114059418255353250659965376547057075502724210311460583310164712924264918687099946020469965914539276832063825676041970723102969148786499662751227764101651354721615470085207598745985534002335147056278624483366568372417775760115893595920978296480758537386777589362161084123779785016525266092656033211434490608096340340151593533281392534894771706235179300938533842940950221100811736643604234231733718644438603750236267514074680996457346311403882136108474449049004232882150147311105715962338279937421018497731292760941710450420905851811370949944771024547952208136910676645429830213054990524343174496188698313416369977648309014002968193221900399919823518569074132414572949405733478179816122370072989774719802602803326372474794035739832955550299879053983026583455535078812190498860306822339416333247811378544040790758907484379584075924625116693258727574465455071574798841026223203718706288422122932725175837654258960521660353003384301630886593386237444172231292797650189826363929850254328789300741157330063478069464608767426190662210630410356075116200185248585360637817871140207373401864749854228258975813236545224890472225811608918412807650344691178050890183436224579077101986913868279142415206072142041232727508188114114841835023708151024751685331919284032395062663838684970533387736291875824545955878124242231610720298172194587739127747138880856306946852996467180805810252323731339678410505510560966072052860338096046137527952612592250353339836202538139504611204750634420392124594217559532005633634745048780042103142773655675940829378060258275477178758180872205230369179296352139611036402788343759564161065810834437232154938683592046252373906000014521465283189702797114490249784174380774593101568819343380176123386027893303659409446741775681369130966107095636050170131812254893547765072038309709394644587628248958675358002732158350053464968129695289885551842068794634589660543120464703557876963041889622680230797593315933023183022945170497925838784265609895352606488327717240346720177670935111699825700995159400044461146075788269910300669943947081739633290987221491422851920518592445924818077214590010428938024833268901994981985617889660675505380278483269356558235759110029633645125083919463382244486509160984747390979473609966995522750080395554041732899114971896447990986341309719765071786202927562183815868964226176082833272611945670369899058810532228557629555900810682311078811562683244411151347032539089417345007822520440289602349607375320105644183996341992385460312245810990518769468109047787985784565418086561032716748973943350305040268648114928822093093888615760623956172835114321502535815262500700929471405101215609501051210771233179885049683447848997470606362644978883677913709638142882298358369754151855765958875453575371947691233657613088393245228315339458747775659423676732506851003551784549764574000598248877809422944561451808201855382104423498351889946589583536572583740093388224516517775886724755791140435441613953967592416139954359534551562807976426935836259728533342005616019096237701491160444009410179471771119837583712834383577092549033161621033896221332552567173584623775391957858185430442148156306666152110073582305205437347878041379388747707092698949874865872753579857121192919989205281426173529576834260734766926217673454979883352402253276949828019363632464931869851368969108049904082019170449543322808691534426639771303449629968995152759564769573038102443015270230888021772305541811334217337479570676870091775406698681427630080168207886270103078897322900879405756508332688296689672873751773036870356123777933389127196993396989344045900601682608847929721547239381300506773359222233389824184689092313632251954279710398227752679326000836816920279916623178410962129240266724036493763499490046001118619190961139940050052601535956807206675683419413203745455267746020191626227777313648199037525051052499693941110350113250279269940238341212902440261776349070958676518893889125911164934382653995902771932937053045822985637157584261373992381630160185992208384644385681091854674213113534617379160432581900414810365850557499161641581147455290133045178428139340458044368257188468899100318062068607514902673237003958908618535450267594949554800553232094382148335974483312085899872801419404251887602276144413432057189729973855053597415440351261562785303220369653118396192706400384054080076948968193721248994656742074180697860254263448975843171293794703837888240356773060717254491028619974464601173053916873155860814661089262262802237658577238496845348378605682930841570760376097985738289457095013084590984983275694048955875908971665114204710758996142630887302408651579859072114085340844752322663338876091288127127850606142173579723854265577419348808160422152270710875397715581916293351065784515354317968392990092022272086304454351670600478686018367963830474804201102388321283638212520008355620292098638101278729949394777280534243324935665448921857213788960406221950130586113525631493738177935774551031402863589639330663755352929879203923497574080851482624375681118965713931114912581696223410802466929143005792620743153622358811632535417734266555006859552859239625690850444562598096574830378417801298675502756162278115241513839836654533188344356194181471767657303965876970104598721768069436600721246672299560097396234035171764834593907666960306880292053800889270662209547976066747543673787549912867167310392930209980307348618532490889987110582792420941057331729016967454720570926201597935063032026512567042364686418324186158775689155837107758607448223023443634481005872693179203220022599927313227686950789416340037125395142001879216985909215103359675874407715507007614486739095244732209328409354125159604652881776867606905242262837855596845375137001793095464527528160154012905238906031883730732055992121480937993525427869978038371503492323494255827429060814557114629973947281915376408925190422641353494346212274373638172295462598645816421228813381367145682438861498530468663523881662130168560865087857488235400347239891443217881321463226832295292197969050980632574062330736767571218550281549695812620062542852120554556210548393765345920246574648036110279565403584838552643782909480209990621369282519461136557460373615382339647450719593948234219877149833040101630076364824716859919029274352370819966037391600335880819878620103523489754084362895054816822787686207554267092681452863409622810236168791555665738584150229103714560704258850740319288917358498730586004088424456473271161084392721412068773736903962338953590834972425000772814540964783826492009886271199476527382242007552521579901534660708869733914043754363760965081967705132856170600704420222071447776191345584535753759401427292075776589820187167559645187063616919318464141111802361941223787466575512880874758863662799665172029735480632315620063843786710424508543542787738062668317053350615974555245472650874688893059350914786808195629917358161121094752884752157768310169974404528158581330724033280505522583180923002205138999529921835634248698949194986452546579529790499702680591612179851875536932691743619728502081927756867258617113914222339088827635716705842694197762992224619473450091533728855627488355131646390360707951730795342745340198419854041856939959322195339414035225648897649289920506850414495794716114517190617825340898063764741455160064525606691760504284382686122513376961334846349319076961427240642653215459442268009030432921165083119076350300617872089622150919155981194578743187041788916849187999618365681643237174435023107592197156489014657445192843224154066526208149690617101445645841905016671712079800592259130376509662727496610117345116093631340103532393734435034934962286112336276102492823593905775665152043860344438289639969082189173007393631707147102568026820406691424204258527243473042149456821695319093955337436225432501395667572305318790809226625056058577986207280266456983478078329371937587313065688895953044252209784879372459072773877309930639468655741408450669014998450293552118704302367962506001552452297791539263773250476968413927705498373247710312028287543487033400854573826248975261160175193983989065936398890840363812130127591784217180100251019238458981171413552388012191635526168313605680325451773133394944260552015578788654877109693198916958123583068546190063425118577301624220413574601744636079306073537117158230756969785843234598151557939189137409990742458989336141353315545279903798798560359856433923001394460285251485151553108608037431389814883931481091777050690223148104875872331538267111584666843564615673405990948338820717361979425084548958028161105389498186415924026199654896469065963336111129802353430851217124886294758438241580654634772285447894165810843671548280517847039423587462474302754694617658018978789445475832884061618315072591264591088858380511919752396697491744635296996963976155587721695687199731819094894657576528499892360637956939692540463792729162301410037405190054491539564074849491398635346134979894597887417185852633003811289229385388813803505282453994301414420506087408838124429554001577123247277112691455848092271692464585934749286531059624286339130114963700809253271942784203526435745630320880775045048776636084255278106722725744699729145470317308283535596913912581852925568033640956523610381098065259756765275688945085071038936044414051292046021048877402253128647694146580076771332242647797974044495023248530540828817072420232895214071673957478659124850515306516330381759744668150245056869680641508480560996574174213247867979409588887600405156768084060012119131635262117781359514475505962397685786701290129406298141161197552486367314049895660970477992056329670928855085698761859074025043632054598036897950114466890271584992900308180944014867372676449365678945857004594945012420234492628167974099677854945174670716593620967404912867453712529086564524857250666328849128889596713627880220198778975102155375750260626599654222573783421634422265448994951701480384632285398074485222579210882756109737116148182530970464408208779799873377237736567390165425150289161931377214441796693417888034845019440530772162793265822589326439566354811004806051945896369102518684624272260537771729671443182170283364736925107842933656705978910545013520457905508463199613498782758482941000091585280846753325825424102238703557840288217494230867556425387585036184702941262183885831273514649781435117153192953985432626578827986567816981193846038031738993251627929717000138681419133830545430914544480578911160132287098200981961382711331694653507829559586697238438232693165087914376819557970492890905565721437211667435352371903269338657645064725507644074766914581231555360772224010411890092460628391353645849754129432050352691763928622134205077828741584037731055091232112003989386626943964986322808361442838216072059799321691405178766845265229143978115801366768514234383216209824123746663446213878237004144243018218529764188344239449749841422872841164109742250242347449317051521663975177311186908849820431281457595745795526008502933116883109562406175165029111379439075284755446754750811185384834991925955669697502286345235772837799919994330243635840039270029508385117589441031389614659588659931697982112484316492195135493657815591565827389366286013968330019265676981854227268499564866741081427690785959951621080592991828716172813736151952343618953432007360928709948840788839043748478407964379415496654750405304818385799775230666104670494419991396423368126914229007262407608037889686968001539130138992904679449754161086721483337401663650587762786488802045793748503899974611286560753223126759756724420007541197190315910765386121626868425738995307237536184321381021387753022620717959660513993976123716187032321709405518291375858727532332620913939590141359885674663741328326826278297373060585264973596833170387898149961463639601953182556576645518716107446341738742667486544781840673330411457802136265853988729834418749589693768952311338534195383825021055899533998530656624694162615330686622300761656890041963442321736012451173864975826953252794682028787818626033624165348292670994849566776948236207804885731530149856765369822594137247667016459902733712992427646087275046487122429223998532871614376564744209603510325415537000961862166484969646320549267736422886036727073100867162971846222012133365854312189264845191144107381196104030545155415600614216631999986465212487637171085270518785869790427511361002933206860535062064407988176838538768337012953493622625084201805628614539714338667645369586894264877492568407597967536748184555552773770091417560519907763167171234308612865811806952568423994173860609904157070201859886454838339425383910376944503395053397354202350873809164196418788030119666641892792071270010295013439709725742700286817407100051867431055183533012848533096795801780448346049125545047432863907141205132291832529362396435301873694700894192388707869868640026291386676773708924139351206544431348259027103457544547148939826516895211940254319997386613610151553219645832631025399416392600427526946291303535269198346930051255143008314609494982433807014793431706035286652078332696610710204891227610528904811875774050675665061197133665122716171988928631509032023238900213264583976326474970070054568818377406332494574261312370898104497904252040775477083956302791851141977363408486481653935431270606034146893183960909330896385703105128247617939561993725195668202493753914616646057030133361514426386872758675414659553176697862985517516325555353590482374223574035697020183712427304745643831759024968124589070131945625839974877416840605773049728208305259720772700871222448841918224873219554469732360692941039239376727466452900469243288592165415225360136163313814414337528822094684330356330412667697627046191872409045604664234516224720402814453525337857558186415756614081342692688206952874908604701957080204808364395742380504915888057583312723244689779260920728120649704006190629076126253272421231726135473302572754840140109968824124275041093613096494138770467649726424996466010057091712647694184080105287328391541489101537089882064730216317847929540085490562398643304497082453106511418119050691370366588699680708254604964291404724198039021088864242293659462088276915826754917653838545648239593697903588537072683733275498437728006569887324627046133870918083852044253425259646346195042853742986414712707192631239750246279669995559327721395115771429894154876720694895040144989864747299159785083046341330493332839006902606196357275044638455678521657245156825031390970510601785318941549091257892037749434294035111250699804571085612165019378130991823737938177069830869519401437051341419756701423272658828994681472323483984987425794921075750507681574735541069600976275263783530569721044920491212593986472517775896990251208658192006848298380647313815885816020946809073358062663325284363694194380314091579137092098069091514928566869123016903334686029279232842204313803155228864310252319442461809098103103041899257976758086118320957209960286984512871759225979285365207658418123891604434188613076882271841015989005771779948532330962703461280718962333235290581041462249480785604208391158887029293543423243138755603320106993918003113505852497031851484200333646655903183282907677143592522552046929370264853039648166395112408960629616147526469490766604656679562277162961410294219289040383392070089751743278351518225559822723930895418445945231435934869354588989621718559384944038053261844971329687799097412872784278831776802466961131716423958443264572471385566635642943060371296826158697651372928020571348310749696956962897586292751769682520137838958532200708009552439837414007309557158500957574965375864254273771718513047425520267938187388051067920710676543153682112880257866155760817397506483510244797084081268126111931551592325355702623804532605005989526674781742831467508110148548638307242061527803801701376480851891964389088478469326876718433669995237079898146964267102418521742593036334181025370571109022641847021218578537598045612318573618432344316261511738265891047171581301782756277640944894755058824724508607222087110751784877364505999968882297600632343595708885082992103249152448949729688831131586765002603380654341151176196098550318280610758022481692845192874647624912641587486200222223364534982232438154377411445813870584247844128628162896438382490354752654342005850370254460177136627733242100030418491476789237235048689675043180439171932649752715769972921080975356298236455361973877074272998889459689857154020490111074744222930373998595380655619800548706092424908520485891613394762712370740220383460582557207769577292347404752836943063562135639806946625357629838711701408128380113269655265145655362299682800803846806106640861384376915829937261483088518705078503206646876358071094317090929151536711024562738658178283036081663597128857604597589929965447464053137268071163438602727988149423414263772246251202871453884152552580646241086544017395223137250304665961599094563737936997652411163436517007860380454558586027879221834194115567632426879213754913692689929513580349844174548830885338352444821510059692899625779789624667353520482239453398727832751490795848678142387117872433545586275737980079511415320900072236308238017612277120133578002700940271671208451911807032664630107523493668738210869355348284906425756845680468224762013541749838483368214593135247328013236809667308347692634987609166431995143283479672895362870761132821805451275628678696661792559584711132844975671467426232695107047357214897870844095839261916568796913946498980420473073294863293416570286828404966336944535602949430358495924162650034298868764983902593689844680014155518635757134895125981486658343283282819923395993748563406860737017618663256405402683907079557121456619015062968345307607576784488351805642111952099657197662735032644672294099216633657355661245713113474877504433376474308822742273530780762740986991246044287362216528002530809141993376405925861791724727384364027733465541533202346423387614129582167283985888009534189019197146140722767671144243949888384357966014976574894064857994216058112677841454994635650902429693782343073352798677381351058198060100277942284952263523858174573312632113416120069550455232326877243263051774694705267794886972039761527406489975448823387868411494697165538454106918240499048571842871965255775340122592452644389012139358541052179516760878942384648043770940192288099989120989243928208261316481028716316766301339720720946321322190816547046640235472699271899408550048525241843260124723722929919147549188470363033199202334358295363551813185081961873931821263357561676505873242526284031049338205914052443589590013297097731283776222741480514446409577311293865406112172687019947596489425636855699265870559873473032057774140864079107414652127061247166348227229104607092210110605210201019149536907027849069561097759003500741899887002188824322032016869520597211608028389199531361759122136332594932606771149956200777826824302280203348120844860308026349700932406090768682311532636267617196944783076016855291076723037767975584904707139744122126857682563164921416323864662904246391696789804111884833676928064596083784980477520721276388395216826050637208647539876848680938071167039610438563081215607786475995726318660820732264408236069558562710845421001685239617388725399854751442298811646086680953824504393501438531946967593226108591539411158783406075188839526170343848271927912098964422439664452985228864363486090835921570556572602933325581084618794625799133930755029646867760472884697363753367634387625211498114428914174748522599159881229894648312233028944734438026640253922540649838678581623143379724520778779832955593838270389296234423773285500037321361053515205086076032439099346512471857060979861698421030807013159427166668840992619590874052896587297238423950607683131088446506773075354749273638805895400211044450501284191061924956482879366526367008668790954421286478691852007923528933950457916881562493817486103768806420064583496145808106965164518047111520882074738062042181057103264910835132955330670995545366002829976794660093020702284054828841461606665608485273397080762166776371560947201396433771456117390493423527807345242064073616391982735619931866645331658565089100877699450266624478436336881055991006930697065043271386904706578219544304495119069995335728096770985821274224766798715119846804387214522445985290327549247025334134139864044233261838012088899350823584106134000907881243039134648899215249798103305629663667086156745916400587554331620688044508255195372785379949927247487169386079696978433389396992994318780528148849001919092853104279071389541455363281726637471941667698789863025043022102253540929736263641727895586778731708395683034472163853437104189321284064643392500268945643411032760433214025700617687111347099971610483606214476029501814202098218353040200300074974738728403372363001831854197614541796885801059291395002014379343366947873148411657520938504548182192493932456112566197625026830634408305821110622916777447556173573017273649032822790002208808913432222085341091731165842500991812211672710149378399867635318407234819280461652627930778619531885983312598576915922995437132097213031526722893752519847731311249417395683481604491794170051270737575986081975778607438335083498733608825542015098023449026878706292493399804905462018589402161028473634995522985086598320782585260617033078505791240727738039051801689578447738869033480900824321269390458372742993904198168768026330457334873444477786964464154354652117771573040628211062747869067404660610042768389689726316861596240539178030344806827437451787200316717496461991739404012134139577636764733993253004124175642418132951736619017751440818392801336039819702826203647949682967909720049100476876230388973411513575890319775491122466395502709791238907807657442147975569220379605516769729113270439900000621578627801363438250613609058319540735514001720637767120156703685713093600314862289009747316174141533622438443837269115896904555563442773955014302591292318373576337029421675091332955008426782323779984298364710191249163530343774173244264860876822790730269856208976280364663102544299386591820068108877473977752625380076523195338574492117810829478526968411268249131706751549644888043992468703201563068077252834186635179546104410818765877717334287116907184178185561563293510461560299858172856499402928415037923216834994692283583562285955543751193041868745917994907246805336301638437365830435315400259004099278959493840574773929274211233087701300525733411608990849050422984243882597233997312016977745984819975351907508746750676276949294002036500443670749525275593707432720963227507508195998297016278614581087384065562370682370599143065291968190106416856781428759217284449646152916802020277263246855144506288742722263139685652025553180572754720545222679343369457628417589477730892343446071635105475143636486087656941596980723020290010600337481803838856907590682061743261901711830509188986321252341102118918085349023807604953218719145004575712358915814124431258313497022119607939449968941732260458660973785297435187903552682820237912504537500483861407819005562897289288190340105407279554027290177100683445372675799388143614204332751200926508677093026327585884816188100027034306426939457984098351233209451514824195361488219980261460017700432222311279180096943659427457174532584727592554758124100702470513648270506552272381460273022005061179581960936453514411192023969677932149956125983893825281538630750313556634959650680466420391162442856035897048557490330914184164666889078832671506583910468749294525813757536184361223334598380985303000004279952836884089540915486936600808859832751080728216341042335496138789870056685157642599591438889394758310941962746137774965735143766630065155288366182177822456472240635430216226151015728731364054990349344382775985386770221500689153033156980032269671923743234341566949027076776660783055967711399225902133441693424783617663134467594499591888945705082184789552953929778546854910173101225649244489541323595149941423627052099542353963885002710636445105995697672997092664772991183315579713951928303799584808638205504063244331722765578452777444327011576162466434878615669790880588481169876280974744046146017401544551068788981171369687968517363869621120263895659636093785570650645784120031476240611316773834956269584564426662013957607977877737241483372314416530058719424731281397769891485361899553993068064969588210438646055071985079349256319213006555526430448319933847909968346284986675996491528356897289231986773062144222114871490440448152694282854119928577937363365685372818667851241514946115594759575128430218328626660953100638287318834758379271623801267766672642089059721887962146723019392353415933968673831426286485433379480172081174764845582106270687927581050732921554037127538978374055314937162083441506825645123286098166273822546211950588326091237777106061010834624489900207803710838440205088808577915153764401941811659220400967718857611752298503806206135971798105580879796888981815678106591828937878939476246177989616574367736267176800076405801914733430530661116745337189592100281610674260462354236510135303241071796680295877406521938615508695816358458482169457545988286824449995881421827668250675324597202429213033453227270516907895315677996075876379943581999083253785246754219736677825962942753006596571771336295272719067452071722084194332085337741066188564251604687166307377311243201584114492691520613817974255132242230468206940659483073203405870578260771498194698340423644244284577825229494366374873406028139663385273214561493112478252836247543077273820064077003719771753477722606222890553125781469307441207805470996701852650612703025483920462139202396793147131747125862773155674225718056214234662501904028588650424373123304805685312730302455420524308971077111807957629650059292662902232593238449658058170222563627634519957407708903240850455271722316495443704247489157510952017249240506375138348128389261158178475737591314591006856429318811705230608207895598792520274477055951232135128521758058017647143738021386720502350945491399008438463962572720213406346681500340341851319930640096638207416164277696539327728044696823153914095586833797440127722562564752460178222978363609712559252951717321560152487024193269166940072115428160799425302390871916923062131437071653440483033918256422414780261048262306145299913425525612927924036171529530026719915964345649201191161547303104584915875876318640989651233718039899346687542308919616368301107517983882373280905659548987059915710555929851969010135738844039765232753868353954095807575680225046009329755549090961571939400284594197674086293220426040150131669122983590410816350444230824173333353115268570244042361282902002365337922009049927168210473051989758108583628862893379645163443117667220503626367334038623533542459592604516435122051343895641928500948348019429488210040761114024256273319597477977376570761527591217574134111015237215841994085529817843384857728412820879687716795761829250849672546764538464666704394374976215275175407367388332088491562274214878284038060015738018084258833486740717836861494018433726224117256396701212568690966850279507299365879484265119480534520086220760567063973481693201637470267694641109958609219200400793513601877682736503147715293854297244459495707483326340249479005685334869468646966176622331067122048119975278619932534256529842366500279740819974273195692343756310454805494087409009218000303402206805503092464128005515296237333881478787821448380860170584972351299966437030609714837358595440488783386495055761799601626445828650609384669093392610311261587207072710311583067838743120111981877138443941245475884267039949856511916710282834697265663315750445559888854544002239102802940218926898872407844201602609046017642341607068602187947767179348609512213934278941094737190273205559846027353321764311599376671024704146073114240604616698877762999160068289219964301598061682388656789063785313921936500068956957033261109323879070911621035242653323548069430339246090686716593463540218071168140209015560173487428950389735263103511687401139830248968817204907051263719278671295889384930151991172200046546859781142446772358964142052502549045240455600558287874559329382030354910018444882389480592828454857098855406392196692299236392066820805919711204422305108216641712839122321648111419119046828276411878555619868619761646999946392287879333677036721232750881537875591314246200344534385729756190225230918161746279829776529620625432087333194358084949611925680860357365325626884883644336193790016676131676798814869672335453306675174383286344988671060191939685854887418377521857195018414316435882336577807313388080819920016124392856402998780475572953460542398181997518053924178543108911582928471233946472755941602478625171079960075053002169307896361207250129748515268732274084721116841793253230700410154943429189115723727388467814422421333453321516926403372676199355637197925581478457403193389065907800653127369487137729614298357777567566101270648518932244244738775434083782295339789862146501227886004543461213418063966383222225058649236732805713107486351663851961311102811538128125087960083539551496440730859932773966430772791254113991698597487325813794703028704026699957423867876466523752811311891076812829225414564826094655970804222794077297878473901930350202021378778347318708143955722548580601809070354881211694577141899923716742638819772351226865390922167992283570749241728549826083192737751634974141384275027233710129828029658772619220356814758711457799824479276399338529765444264266566141099556387363726952520710095167839671281879356851651096825080094085667649169696867475266364895833616810619071622707929454803876764385467099118805519348826714258150918309258556549310939235713504096249742794390682815460885569412746196009489931525533984824955872155581787528831213637751705283186638242573348229024866373089151838291282537231448591590273479074348092943386040060960308092693157500503692303598755572809270207390688669807560042255779721999952800404128543759442400593293463065403331260254743281192241706094099379476413350876370256538255201423193994015111434255788104896669956542539626109609236102542271888669918605319359921877237269822668082241983935674464686816101301802155112802330984412230005590976467053185055263636028924064139667379704146572475408164944237228410035342520301537675427570238259157771689631554646434605355448808975946136057270777318290149959573682136781863571813757973200658478590643863838207004433171743554566949078034213642888377129319712294252188224868367236261351279860261200233805853022189806927932309721658764366901447689654755870154530756809683751240623149758824939970021382072119393517885205397786966485861257778067148979175550305801392559484958874039197835145021492491757439324313490335348631381005153528004239572950659445036597902658553910755206558327578887460291021373666682879781230247933714841526314307774228225234188894211402673009517031890000431276476546707242547364859806489084622640110456491882968412536620760152417453661103346011816881076158542966375202528506361908448742058700497466600354751714280640571101448803107757943266180030407441518407948668081660907949551833589945855414314094410167225447137873387368836746661066832385132289863252866649322915909000599943325337497865033579683973365141640210449898944454003508722822902153322301911801026826400769021004167503025029166954786500977683928857696941880682991353943978240563611199994712876279761665558996830622332730797906826834587144953229385036933857347656548643083050218561573140145972586515270443441606731664673024166433476390440405326042508917987076183204586664982408879460131268412305871023982886684729385112319386917794103811677659593436020302688688982004803537430035218271770975164582420360349946638884922373919976243784190417016871012478726168470315076780921256183700274308969276965430470519162894303715809636419621936687714174835748068979207861320945494463020075849796265105718198989622810601290733381673455933024348177629021039160862931055353493392951587762620144115482988838126808017410329858493206923530477292474462661063376702430227003968248143905937370854572546993659783016457189083790818445059776226315315459432399589370151248774720697471651302842844769290544011874383872658007621496636591878740936512335436084399161487054176563070925933326983276001880934161023057746867861009052253581346916666585187383964349438412176052168678908341444813728742774014230456754163507759224106266671917901516091434203924676239968745439982851460348601774956412202702432730617441198744527504661011151689239822377870074679264696733104000193920643166274479193282304987922442341137239956480180722470973791484232673056705227232560527592622541779442304909429606226311617043357599141028594593597692620057745298533987412757860300470001894723845371173812697415930775957297291419226238170911292801108735018986915696425604722690038173668531115283506664979390141132163089237075521904614566568289787469128061056867854505410330952263775392736864375576108545474623729571363067448639996008081305986103163398691357967822054893176829356415755653998335513580570532520165021648286852304313095397282019515801482759135357189027968074632574503019437376229599664466608867984101293578301229515984823337666997848197517359503214020738236738378911589138820565157028376999402936931740713344453688915666570785327304017383831284858870704161866248621412864973866046353622019369890335823846842330340819900164451763996925058543198701083825680681997811402743316898825980248885712456910301321300946749025469788656930956396713524328047291785994317395321645169890787295623378491181007460657349793636530660706181920210639568554784384851721802993529337817584262045952265935071300247819755068040725211356064765372346564308712792804793835663804144231702900020355236269503350624391424241455631401208105947817061091511993747642713207406968188976768017167246579980434265132341480767663530800631807657172414853056407655484629412945659975925629417860952901169613209441298418528847437206291994980506408172814248630331301853951196417847595871895256864371552307748687708285057932021164224268591653366893785208956428520509908508952494051736738748617549655551829591339485543547422668166598699663853204096329759915824770824946899652842334728386602515352276391185616875010132213107441927147004218325860314526534967275983511856092126148255986512832722612993818112086363313607130255823139271607128505552736694544156960391391116643020902974815311330490356198410385770301954587667232205476606641416362662295715320797011007067653688774603486725163123037801360096658194464309657277220098881763707510957209951250890932943734301518878101695220562587415726641082426188793900116117292535439094635612080116315727864990862144667545933692775012692416848536417020231079818626290030247707861383862164128486565203988444530352154175393701345348879750821347053450186803177574597775013651267735096367024152155093823238332760553845604155390729455170201503253011072101478936567455432155368856775070604419693005014788404728011844731011602720325564627097425177103759027218482033278572924841883601472540394332782618157524490467654881796181762692219574870039438878834554551664828180256086764754926689014970251601891074081208951131950580306931577863732711679526792826308519129321407393819557794939080354885203945525598711440795962257390458577542540151108067470522879754375624871893366975675598680315415290175572180479607681685413972203237996935803206874132693601727203393934118430299500889029012848390792807728100260695319595085551295078117895280775031733785192453181122600958588705016269724883594741772334029368791347908361171152608000211164922073890534198621422152239867445299295302000351391392989484229097228660500373062209090948378019204708961067670069084567963273469958285026035111319301190503231059478577834869649420259958204978242956013272272271103404880822472308713057605078515560644472967013729147633865983149822766829258711691704755353645718465012471157997359546451881265600330237621651192809131197905053230998616935274020094305008403915702550739354655986112375561460410225357423775291347038289219139091025628268585567389651681739053695093390140088549269585582018487601190341522057450398113968290915795138786552993154055409522995738175636959912790512406406142254282056505852268414153632220869331711038108775678328416457988054043024076661961508413860989324656108466524422605440129853643151068859015473247170627519144317680264501865133419229694801774254365922173449403399262041957473350076746267925890615338987701833080655773532868994955766135151445619482633250679692275507117150432203509483524684648238576652928874967946206469190330139553732246871388838542155849047558069347697750900327926491236551839176279744158082328506665515766327151621018080449044556169586639534107860363681545969197470226557125506080917548552596313675889098858401357954857356121666571435216617484146265137080312936179031658459023874456561842475006601750026013261471150561215224312651708489857964309755107021221808256298253444860878186686778591338776119030087555867013965050028370774511105100026096236604378414911474436886513392658516426198280034533069220474221739816800388453714303619322067508567947522058015760445220631377309601805010401608401409851941553427413708361796777868543341674594601055885554317402648655115806604042658351348361437213934973491972416570463955189649301027590720647156991230163069678750167802024127299228203563514626814145587086243480063696990660913747301260736162465143716392126833673112800154789451823653141155381878372358943073998761924381014795230961121516300431185684984212398877937349028480198333906506632925884022114591330789791080755810536418483584204446208208926532683906986525066419925631091206325134420203376855627315535177850370993324441386377902481186775109369712445998164578126437925457775215438198537026559414822729146674831021305815656290891374855597022430960056338819795895767425108000986263885446712387109157345989331391432234616527733901798911562431551532132442589113020818979010421814889365321110351045584377798906364965129850560821404445307167588344109446823711696215461840155734080478712544302194490496682462557913594485083627368149263385515767067914700099432090167400036468550646460401304932091003841286089128159420286566710613204808291314844761503266105734290795456183737690297764348562715233679955380574886171071186249009198882621242181972300425893040568294270486122398532909020600541678527472498394510039750867362411687870617958923987929755588296565261464109150303178124291282704458348991000608352727769510753961512167955201467057995689526238066730824650088686242731205016870600462422672727503381230209838023340747017683849529430902469586699036226587089359627259643272167622306152250183031802915555640473721696067627311386473557958639900052043167246470109046001086028709152745928706388944040403813128428118244622077625072329765335995797199089636798900981731491784717662903726813782520156870567837034278943644961402903535403651177755982976879612417084306854052322040031997567059302915928090275445578099137243570765824570163278191079875901083607590436640185135002762413687560810423397117097651160076849427031951277398263778052675486155072411437796184037375769672378774636508316200828713375065379993398748536013972694054960201468906070528173337319897647580114628751489885441114672572857605856594341470701298545521803695043702536190908249196955579147269602759746963046023306079318237560370332162893333184311293997353052197536151655678872273776834158003922257496288033496116104156561227999296592145291574388917844574487576708964068440246454534099305756806776857268640043226562898997298423785649231495021364381302496115440388401555606621172379120930827540291501777105825943003879935584835828011911241203877263405454621975783233928753896919564912001320971898332052642935153494128456373065985756733131221786580750214135281994056623744409173137835234895401794310451558081421088305166671047592434887227744718447807131464458277328147416122381102320023640134934830440436123216473508076581302078647277953453024239899719260511567527801392243249862879865803542512355734267518171446540722193753507976039438002645192160317861995217757838102394553585984527943314414283616762378534542173275560718407599897567699820239429410961072862977448186758416263800083841742864643138834833695058380048333327860766002776822858019498619277152142380457012501152567494761706443028656846381274014606882498146505869293889698510101319487599733033412262248074205980152333794633547851167006712009824469289091735686589139628580317232521537129206859426470087112696695438610981031117342802076025330528930258607934526168361709561003358545228756866940866337463796917364182980114444376935917721465263650445331739250645128857286636696859798101350239585346870989922936036976793513622784049528826673780171672771008681142425039566395795360989926529323424953721615075421359067571563510216664461186540857362999081509450681543979279238550800329136913649069393602226110025550486078409719365167929660102365633314554483813908558474349024738690916489672835468637466362744365183236680395476501586626236061087502552703126978250324828018251778581516171095773340747236590299165749161065675704352955791945807928984260431233858387809127587262581888326249905691692960503308310228383317711158632261935766226075677845122498066668407672652609238165496182911376874723715314814137562441894153800437533305154990555880107697502203888870184031710698619950237666396960014660482409669871061877178325373117817878038794136308846229791165656917993016278845452702788782470210641198951032277377701300180698762048021890460390313242511038525311705594687440238306236291117407591540316584652252677322303312202256001686603156421920167828042303548702642288714995772244713105767051352860698147071139354644293828090781298476765049038758552650122396406473462901041315224799421726817727483148060764593693767619878135174506429413901924440840191192963665115369151307542677126550131197211907053904015047479224595348108134855402138018750376919389315955198228264463653830764803666224005797272014036526229677407282236949148130664228981185852868246750452714165240914871210321871967813712879785148660336074819923128384938105716086199404889938838836336077354883506261150200240189170058919754553455593788677226179686211056259646018073967544534142299095693327874393643147507218556947956203856289132114253052858377304774911728443506292795363616252989011759673337726795809831212646907795345656120943883408654225072889918853463609910055722707734403775881436127619375376888764291372145194950958694182016790287520283989102804005123407797412836579992023061314450950769372193956766556284177553801661795378736858019846370741654540346050435079332020654776773299168882467778686609764307213725644808544817477772121319936882854603689175562404443319199663129547856466137929318299695231735819230119592414535234084275433353684651151946704628265795955547582692237181666086836678081174674020872824970125315292543784721645403856372040333948010266177434762333381151241957319683770915832456699983220597778396736265756646051844401452895801032729196596530574815712201493884626799210858944636641319559914006610821912134806259779427503508034124134606457294399061744228395342430709144625418396106613237863327533235050188863923291373888604085709004001134950859468063386837441359421525700803597920395527879551126789536158816214176655211037357802220057590930034722454487570220586294875905448011857796574121154789536061434277489540141942389679807690220323375953880422305901544556017859097262569835340494761087371383886710806059064326669173121123892101514612930381360549467398456851404029010981785140916005127966100535459055012499181646396269474547562480411183509896783894126087170055899362582458710157836116858070579818267297654999961888747973040447267878852635669256004701429233338125000795956660571472344163603262914002108380765436223965315954896351467121734005253418601171027876161356965715654573864868209042052358438599138365167188292410347812492964513213840951174671223613531040011720283825544354450557181633806148570476276449808369641939070753875196974546775012470915009759216576812666165490247048771713669749431340008359231878633831569649316532308451406977078715486614465945421886850180867531296160287642501850878000243033196280647903662475453366503550741498481325186566595754670108039008133598963911579213726515776435739458175851645385618167517276019769015318724657141322221714045132790955516014364972604761579311929091241545238940021246699382198133529036097017419542933543242497656503584463358510844438387955868908321790688335393887182292521030109555045567660692309326020454072230132393342050545003593341277476826519344532454614481928737537514942387095471343547793781815136469258985094028610568731316699551465753373987160072401934550982661845627112359699460053257129345353163293782287903662318025544176441854877969722755520576377052926811721149890802228405459735711869444952451412918659260177879636218518403772748509625593171611722976507519239087934514142404990431409718122039551873992492812108286001901092727446009392242814421284976111726836294646622899877955777522336186060707804130135600106445571736673596410895179274422707987852801718517018158169342172367034339862609749759214221278125126176755667704143485664590874828506519525516557374989018867316878405657339707460856136483964778247384991399487884429640936984339136237800654116183010394316454979345438425708826866736733449262920281917441397883891583306125075397108261582601579314942198557800920795217894302855266624749094438234316001592302088371606354004830342485008665974162675446005397821801738822469222850906003444567854898518226453213964752514598713441665426269760239640688032039470622473012327617399745363773063537569744890982657832658050027200306201912995491859320645681414614802800076791489292403428181905325886531724839009337155718400399229541621666380038355040741812578742825939883528156199274493711309073020189699281045700367075059601552311995726819665127963600430903563251052511505330000510373876063128264548512448271118387686768813851650207414480339599051237821615654430729498217818002920905412585044781055684895369157969495495770412253155903234648936525729989583098091919907910049160367176412608889757219239151958616886255154587780584696980285534904306684639206593583223805270716922034789818837864952485308457746062472103622190848145201775581634229848089895962196976215066541948826359853456629311694865813365152787196197614634708294202876539202170541847263182077536293911151722448593124145866050233587028224928834696084735482790852032688854668126671292306901041823530541205718083768024825097937228164328745188039460919738613014791069610495609743347025615965783133090246020717863836475048112014625702686488373200117714170357325230852866934344063637258955836420402652009101333402169803026496906114066949266664029589925215016957645253693893866806504470825713839196822477425113606057178919934038831830286972141851767019755884148869962952717418012594300836333302166300394645102345551119868294830558336604988888338040931661500070762722226976557438321679694607133064671276256360444235285295166893055457656572069651825663650520422983102924647548865740419004629244917899878697881744784148540195330148043145153488922477531634069366530283467480991028308645785019209882150073648525755243089876799505183648487213202366528225893834769764573870645167273441476210871419595969614030764725077115894214136619267283213616348226820707870606380719128368337685671360933026205163154877239585122381504161180440554921501370056323713926846645801152368636496957953145827743771117113799297483016818898232736337945876435391394298533452859388319347318613384507871146091832195047109173065717895292649220817231280875986483404284210286572046563218989433103514492775694497327597199119157950087828277230601321578951784885588116407575783087220157343511681240157911698159930407744618701284097913727672836423271552407727629911773098026505489797231703271918790554917376848475374151010447719318449011184028516014834103173426207814783626072163847880557660846981148044055621252544538848743077527905132286922421749928017954463467454298427837616434657385979295018013285533741765567017245011560611001859931696104064738715623675331869353612724839759606182960366725046153887660524849118646745749164698913429509200730992743052198643624811165716499384277006499332465348948952456150288392616905506643244390723512666078476959969045789895279693339603034559162959772330200991872914741950503484208123875758984231312748146581968506163887146777691970740460714292171442802987347055225586784182896208130442717004086774688187245944712676213572894584701609044102786801851347544718611320721692854725864089538578880082641885922751142971632640590094879320788232910022792393804473502459350179603943558580952049076738844430178754239967643248149328139308672314285376433745382331076320947377373033170707942820349248737957136977322741006783651717769539252218597774595543168964359047216048631113772882512383318986191904516499628199308591586990811342554607252184195298139579357949577551956020802745110679419819631402377865656039845145712276838887910875498091553238242018689133696753471791076155201213236808303271810568001708342363319829251339803908343323594580280833333334981404219515250290967823263233291518940676966833328725252340472059010096729676514409302633612564437681356048532269231738084158352856700984162480093996070007114292382695029751373769210039280943493275254725906064861119303260265625542804019730713031547547913808732311697760226884937244497726476494380567079064542542406159738495640845372304940466547414050315184119212733639911776685360846790687360398596968922829333543011695702725358711471792543410719725172419796803329236999439364456167927221453991033209329977839327372133574863850610493052996531092837224614860688206801947950456537420391481162413397017529403552322044835349568193913135975972902136887549032230306246939578603296414169253528855732868914686315536866243926937558431335101305615370662203020305163151226914718923927245494035883287246223610001051026768295843905704760885882980901425782288128710700446774489203469585859912403451869709680485352415032247984902627787811210545699358565549873362931342935351668770834410512662628515408509929371536649734471591945799414761335470946510988929852217492586050702906567837817053520480683322547025266995084377319782616616355176132121588207159312411700765314210543218071824090943833438073357655575553473499424745290338382983274764578947808555554676438985006445529830188748634426045920474908856729679055644344133384994815128893790257965371001323907045830609722457623840213418269374017383252965144999330169903127573086916626617736695922012671877418101366952807705668480724907990862676699189323336067323066632414044642252334745741912863266668502040813932385819767683810955778630307825117134349287360553203395685012774018375913246473173487987786061841121605390503542129823924106379074413017374116624365959779092377833974515239038924353090958637567355833891930120398367067754447399875904852047142878101113276170614459180724996532105309639000382860159799869496476534160801428359742600158116405635230216301741989734851665128203203746014320038280695340593973760887359535888555581913740529677484506203069814869074014426468814105587666750318622607938899027261063516040976462025605963157233328493139123619666256446052556059612682796530050214075550988604549383397406679004296046695555480559345154178458101417255967990063372337970395877698375091808972111669950475318878700631303697888415217150948137689256289299863722186391352154012532815537023692702255801636555093652847972437377436992083255922203242124836250038753077820482239634544050103935623534043422701132697605408352425297263054350818471300511717981964543407077091729516134723273928139284019118842911581046560146082554164833353345676716497536131491457070469505253176350126815104935802599116935942245235527624329918136627712862760365113259122391355378311951439026257379195788078741416682680530352118728020312250853809984751517445886773111581924082246922382024324612995471617959389249238142948275388893510654088498066262640589763129302108799099325773881684382806382379419992280928016709954980774004006059742495761034885959518331618702778871836735508279683604659968967487383950989858698646734595094686935700405391981536196488593785091159500708641966798850346452156755977067364991826311869835157441674148288761212186438208368711640439142576515348412949285253439090016354814190126067511367524301458740768977408922110731455881572014002168097424547759651976756840676242513916779636303624408551091328257743251324613077968229751670134097562503153774346751101398013935152566183474424448242663236096127643834375974295303671119306209108822593091922381419073297316823582717612881391169956899067657509210591090736017204687858240371805908913915630951780781632728861743490543523232345448854656870213830998432591323546179193912405007150297796236054156232228581325170044354924069312438266163131231152768503293420146378983567646926064912505730235154624056800751489068835596677972672364506486637186410461924344008228845923092967352616336219741325577644672934769180741437755114600037588205534251762638953451664730663270729025791565797851357582832805266897603246709041933368101725295014162180697711491656024065695504119526501214293551936306932978480372220292126688600919848793875276211722956161974783922409656413700311222095184288421268568029301308353213725782877595699426596672024876863289375215913377946857978408222896565526985588387373653623819737221652335150863347919242580354391575965866666169431481055373604942623489612591644095055637267235349777212777718795617686477250812306443508486485055548148439132657140970949187552025794051141206728254096970128457444039425160177722176650642164730620688931581029384880336416505687342975879867694861404018654621952829213034067914319929931232695197650971076152129965236117401061599362733248270020730971310037825829840691822408573211792430889068198739837002513473869184429054640619659268383712519780797783953431684384266752953265942629600210763167247094597409607588673198999661510822457760880083192573683277671364277446713264948591376029031891023021054936121128122066627003351153679187724531684887281992957511925514488764254281131032597377067312996943820686357034590062917128589484778602418236959623937392703244256039014174862573884996733138014762773747704348552675432197567788826080843040449665152506717766264500730017124394396214022616790110403325006593983919460608970033240311821853441934215221683320351222467768853193859661997934309524865566976700097952291963923431704838025529467154773367924354893126565186092717559609215680913413020135762135679002381630280562869395408837285875472009743460422765739212723137567793421164750441271052326478611245322664358142088782977399416754626545362979533868365867415573002509878829250816231724422026004587074810802755968767696065821533171520502033512668784918699539168642293316883329555410546067671492072475256019295616722800015742556016149672908162248967315180662134785272211413618102396254159915127088145849099029003152152638659385461110725466190903519909174090524196429713698981869496132347653329246173574422197095653354020562891294957016614062603513065298051749014134285855040858598537721071292883050800231513612397623731628746298524930733998806568746147777205680652363885665652468939157788077803691269276525352392529295035236164334444502079069438423055986791008362074894836379024889814252860196494794474624180534431074358189317515627339580744527758965209604774290282132524602326082155880547626124087260680864881138948767087030796311578415461334861756487096366280487131376732011767784731731609841076160454942741798782694880693099376399098631726392074826433458290685190368546190908407754822350253016516921906321107076771347388416420589986672636774579349864554053596809329220508143231308075556280193408201230296226273842407733688598096141395822750900286965623309451105286290931760533935736880630450401243685052836009218803305145455623726303954080746281673278514258673571096731992107814448266727561231845023888614793220982208525800528091143484870196996840392336305841307172511827447674869746695371038104905027550394092601316417619447532164045850539450069220341433567928111716559028951785124026293709267219763371724268362322984417270795722319982492831892220845116007332261941773823989616704165259954430422541722112055149130184026073292269334913733521762804748485818507000734242346018504934905218943715085312476838520522752071033918910251961673807608621716763609772441258453466880541832123603631300944697597644998648665197587907507729067200769181182072471336008937057010264707236735995811530428578438573408558221797382667306855131881028704926814152496461259397538533359133714635344185197011611070490808154768544516236098339332256985582292837059169135957196408172396179297505199989294927675827388207013961473795636584256317329171781253218619031456548864142183153131470314585608265125457972467847412895628040604007499586630061090456425040864595992024064681817233083457625730923947909118873650719662486438740428808921504981953138559569866197997547747133628954112677432786217855665588019761566074155570204356903939244259175227730823106128739067771958542979529051003035986144964979831246963503440398375481981671411425499316596105864435616928187763853120717594600113816941796976470645780030781613414601550495913921929694722863558440017630851763355885423594046384006239129090119673939487130436449713676107381442591718068535195493606670180298422094954205406060995936437778794683458507272629330762987850310760280044381822210842552804707162673430610669086860870645896909232647007985701419955701822807546339607380923035550735610715663743275580005878305340697350498718901921523679305863136124334625798533072801738272537108092820502193136554360240978467243073749594813730816614360694522016281127634004687230606627821352472028001722746163108787876717615668213894614109510071178598928513029262108691019562676384285165509761911426785226719859206458219135291985893948850952789102059196417932898856103848339772878643441968038908030677726915775773596749844477986069757950824231024818601558486854738110667076401929050629557688212191002626654074817493138971610294335000417747103218875272087261155375108581952439932816798539320580543319878695164962360169261366363409535776573801124296022126997540829629182367890846279952250700970593303441768416325792391337940159220477068139935689235362466869478221941021537595832072682846546380684512986857633234542225526248556648677710122063933759569425444506708322507214353009813236375680866345261012111262279745616754299511830034689922601863939364116248693373927396202409232359065681523544195694596195907465192547985638887008324134912525761311641604987602422182431073663645613546243906204181144518459982814569668454344156339751520248425765540392100949628139954680336305781766233176346148267510803296796721813487152285123867228833672348391258787747017311288311895418889187004625431917362354700799567202959743755389317053569515160228946906439845143121073861486795381348056253817448839971959899280553414577490362152322402565787504720817146298760837940637618115672650968688139009010988854205917998648075811543753562654599773034320058378260994556465397764401279084769946881530773327336341860935428669421955048764325549675505325283261862414936466795779670255229489904952376472334453911765536284274029737759322041212210442575514913496231834788971208989649595112223444837554523473005084122164673200124237572520707727022756337401269755259581498220027093855466126092515472898320309718500968677396986241145518401234276440491175116169376655095659740514518908630697859237218753081370164220995273612701321421387067879644146731891942958273429089014011966897608138632234931691478301983403002834970759131623853987835371306902388217366196711636763818247351976139595335745048269847696421217335418860096194242513820827090077001500117006905612173055411147567941319990184449752678531845885537040906294397767559367942724940620048879718434766272322682681782697726307813844354180556472306927013461790106723117213358404908814638461318517573443447613509149786832441270293949376129159502600458150534052128097197162673050840112373065757462407026492273139633322523167382919421437036455271071391781136162458031780278568576720926973144349366193019516153330262303318669110937700466563456635681631565728724081765440571280416371162535818602843927106233477580161923591108117997704213449133647908273378017094220996021103896498231619179065811654164818682209132912086030583555660813055683018808473715526719693958589335523192442345884094430429822419195189733746658952362409670045087197904187694004773053437500053116338715761325192379253320344986194991929703645428455044405634434823635755039700595324233277153442300440002578922569440618560938145366775250179484251112439006672736194910632442270109319429308173330583940646093180477917158476325903471380439024331097052954859298203836212629307106474872194219384475130443267499306952425546461867525701122846688247622350261146430231851525554163991586121331030396304028964003072819882168121695848969696980652397056132922435273361375895968820997780028096964254636417425297697066630336145776800947955538199922744552183813103052640128020122630188008179189272469847659416734090751567193917426969985092229984064744467079894083416283779297186119259573190322315260935043038920404675997455973338024122501648782345377742022568612804666505346067108272777872458318047793414219828475335108257158264309443820609642673098155802852293652393622491168851943478684196924502685518108907461577476697787342703690605815962836207740422791786426161609488536090163085198019524197234686445751651612188862734075567271844576351807216852678922323916984551383348273091012175085144710078671368106447476490944480775185045575688453299725744439895684244219322115378488086888129862163910462341335165560931462979923501025249335654055656391874367911133717373589090732211024342020751269355640109716583698113628395949815371546734174646361156841155983445883387292818462935415846091246862017793436298738839791118715804630883258652580593973496067808047078333772006945811079075087991073348259760759994249008224241033724977853244008674832987565588183191485193542275905178545416966402705260221249593921679413613207686192531112840540874195298184778956641533952802781674568919641005720906748193817405618857501282860708309267795623285911462635577587947754218114166875953923049805206484541012469586022235409185988547786621277376350481295634352185774206582334390492568879421105460764213479098498386076753121736413043298772649761358853541114487128865826168086448451366873329920068295312631035041759378172312144489851410035982615019660208285749410736090960873807235613883827156676335613233126765398388693200808984667035561946514790529332023953879301165108268485288519763412460597738082616484503616433371582402385580129752469143953537101831396458664175422092925318885515112855697908859160022576940186944240349627369054360387574216186417651377426417797312573803201842950525920606261268795991614505483628863997967213143624949754757380704073664701536819837505090245633322028221472450682144211345417383920153100444447951618038957525930599050492929240791203096569178896367173229064039370985351949305926604630966592083149389041061471642227002275303090842749731276416859720607739746837450556592798971517069797057730838411276841746133372955705795205466699401904540547572213476260033002090835627170646739502309782552438929899981942663100975370304054758360393407507901305640455582981814914989685068123939085705987237127073697086991417602233681847380048197311668484417883371406786572160376494012265007336520306129719981283813193971319331969299597847173948513094159778181442610374665997419932304540238228612825160738631140617724969172037130588346518206581408739080480772274993632238341752820405467206052842163170639516497211756436261551568254812116152525244640070809975239749193519575518420347220174300001138520762006491504883793138883969317252774887012108276263892986102183971428278227845357240593700792300534567716820388674870169641678389083111189218005925343707084836286711673663559812924285602604080664212342091142429847325058292262543156847105643027883647079732781607491756658093222508271532712579041914788452591888404189076964586604054667010945141873759941741989241237748426721367569637665440685812785572105792760981613429036085817741606806947505745202984851717099905771402548906553477110408748951358971975733943172636336276424862624729471192711883747095265846615633849029523488088942158551508549794914891223595033637531677399737489932153188179289652367233096931703706863095760571249167959666858190514229463362100899421392807406005024948465031534369626143141004645048742781528948532278770173960118074569786994799857483292524288239891863621811071477212768129161411760557239169841064711464914569499698819297456418602882975040129133682394865477797902913855817138138302732438423683290077875192534875559954906290744096563993655281221905609900799450666205298710089316298799708278890170712418955519052128432167322136831551232877740224221708625470164229553323709082086540194247824935236185223550687008692409870566822691641150126599364334046565415849540667584240819459022837459872683246762549843463255659106019444226840917926086828194717537687897082510535712386314003061889759501703274227826913938547464036498449007315163000256686824793085837768322161647347418252498072800928372709476740774634605437485138232669389733858635925970384967227056145051255610368110682874546886531189653794243368914030335010105511928893762990975121935194961249418610046915770208336081551553800413078980830766322905929691365544507948543469977059731172070635011960206454618956153098073237233365711937733386245278347438408302738196649991486070988287379246130963856815214790987980659123441309189370124888580562340934055477384398506364592685330209221273676024681413685954965005559534067141500496918024935692004605952341911776472188237654827444571550902520471123288995565920791786389575467404000967601987168963904018342346857472687186479178858157789296823354875681131245207881805769603079067492190352701713026586355098934372450760504705103379071952881062856851944028924526568057047315300567592846428143858965772041115219040458108619295658898748288035413176241036710324750182605974206024469392288726690978484683059472790587993052915225063192262223839565566379900311361911945506758989071985078502578863350641391890452305928458783057702746214128636189320867363136011898893815962992264501170291928097257745912020231910713083563722493618387750983149125580240813839418504467399173024809477366785085483793331050347940517175681597727250142589059085903417535851124909217509271445754006904784131999701408319794438578970523776547113537930280626428682673968026555935817243057182444650850720587451091486628534936422160000961426475496068635788255227185713008519153009394316381460180358529123406879318281976076855957905063682020829766969848380172787182460718003722694475979144464881117158623647740473792360323972184627504475344207824925548771058357917399284856313767004102833464426629303695739643655284424165650455977584729413806451539058767036525609430978354532103156519997878403245738327893323181894085038811753143909924508234343309190220778292097886626517727896964199801400951800064028610875792017197807162350975782268794386013573289068063821590720896060974154433408042845514201501198636902961290202136261360910424933392944546478481374719478280957853474725165577348366285507913372266773135928261510423552303432886272385954422235910007210642422212224549500382410395649311023187640357263817398670467054174968781663413823752846425518151889540510633382329275543520344167273492345884149556343439069939240623772568122941341729593683434320440969012664474857525114817489322317096096942847880974610201723995657529129378926916555033756330670792118029078692393791356433599632860921451638546723856273293768593045346339801325906537060617626791618706069794416576495787230852491640314748644792984738436478774257365162161084421127706277642989832911658989668059866918639443661639346983244913897358756063707176938934087795688525420912579374829851594541003005608413826952923277728956151591742483101805933249589011162052532242674056074536578038806678460896034540037770490992858777290889953736611524864887016869699859923075057500596872376919417299543098789028230158404227685880612450876700703827251364050600362401376420349157369287972717167659293910204821541875120392312499926860547497679096260140150552646114561470496227994226646012387196738520304688175917365819831047279842897703308101000866307151391377047229590660359393203461262236605247567555005076795987383139813079379189163366676664809236576524555076776271674016842238392981033330022758738084314524623719966358783074370554087471791022738546711295741554928078370128293084301144486456012171054361618749917979725338949891577538044005404490974006464142648381772159889221795526873827167719344238796540996206891304622840920217249791678453654049144422303783517335844989035413901097632811969088258925274506215000679943966483837842576903275321301021349697219736051236053820248943030942339456264647718562898809659025354709745603341557571217990238601581084969997104953070756078097700645496029560703545320183527425427659070221957350077495235128056592786418073471319014297827385205064544161491461018325600201316375508441037720192510861517687727695153175466195708686041703309060346554881095729723282843348658886505178402177483167568114989534094247252051561949339882877875329174611012031334737748756453984484040614403059113073427506694293366329468615196510339003578308621950330740754892809558497478248191324164902428408735688787092658918081418501696497533885465568239515199293364676307191728819991047685198421549287444588103218028020903692211703584925102527908368036917369066129248368820328121543736996032537468908365335513375802149082298495440444762248713674919279592704964900254488669581428467504974127057643102149502257399517819670146164328717910748907280058034334158169403167961112954968782872188091064050906033980518224103235993363382567141333893211561135422864276761567854777413609301546933170301385347295198908492049339784037848530708400669208200082858943442447307468964826508740308901328197371816363259585229178949079486393144119618195992970570336773199729581133014157159303133365478460833814060958334348510903784138938962007253396797061479647609974256685905864997948371418058660937980178631518843185533270639047118198678983140324615228553558465305757094629649776661267869619142883783926296640472127357103447006571863714160486157443781085556568716811470819185461271948832924063022579415968679852979261722231445223081288529104958408869873601272173852257984777558974988843480253151161905176718502336634699346275776210678402534513385590593030732525838310964766785102069039541044323140656767154961447073779438817137676363614645496911854025101735583365422065225321220326622785035340341676569897661841187743293729694350662972405014835036578098671989439911254826799415714894920252123842027869845909025696218283659333635097437106414722244789751152927805449554345486702310097828716732308250652112655594577496780621706848992746883927577114761952170631074948897767089682295174797040681138347528540719893777171271525866166368183267837594626443006084522564976918442988384779594386020469984519533775060321208945995488380031829719329854224652296799404214652403872655367362916995254619792340811539207404386567248903835000218979789301889701445353746312610262948021205967561004646848246340633297429600090079222142625970429867438303408242236427526564539778560957643779803522550266248715674611245689333970455749245308924759803297014823963903912939459766850409925510915712692224075183452807149904058369126354331981290193597822553117020967061729815083527337051237444972723321591918159033271948623278331455701056948443984358344468530344746332941991585616633052322178800768218287491638938872979598984410319229155900901816182462175467155581941177308001334042099947401464554381694826507367279360153767205158255204233008983619197920562516912083580950165652248605962941857869398617243255185434160790026256569118702563528893180458071770383166227253881238596307397127694271977807188380395060652122973186853891163167615689922219568660105316935895014156716062783908343389396813146466120770550843745069941050372446593072082368154879848038839228920542126382532085041607255188443617350305908648524333477833250776408216339925070776022432517313087628207812139842176087048723489014222219398569381610943204459661900847953041483622613899101519116829243877326429310303536162276562668803804469546407712055447792635659046814876206805886583685344717284631222653411904263900937603232990193556314102298259873811596834250327165654347904808164140260373877671684550656931196302502395943064154307659635389773213663935120933172349828175137055463530525472994514494246009085348970009645186894065396577295558059892814151849987066783337515872027390970537197734170786136107284048770673603005450400022406213309300604478513053997236382601946555179874492134091719750898167262801230517083424698983359501493075126630750666311813948937882889978302407929863244075761018265968979843115783165782605027133387425911851235893297695758940276876888325220805718585765227756229342113621030338921484312157245888491600665775935670692613083471119202678773123550425251644150067210166060087375483043119633603066170389891937892741635688094839250285575472206567221690545938188940983856689073210418584893639743356399755179326446889055747067787970697486104620172896099883783613855107169048155918229843764158017272087009912177679623192319328591863407647560198101599311287441053395737172145504907792717575539030914253941787573108558761691863127444125421900642074965372777970304504364370599996055398215377617957164915716919577065874051429585764428750999118087883562156822205649502201610195056767926304560547034772221793997963371384711191419291762348738893968396679178997142732387605546349004584430726287160324300920763181420962976821401631253463794489514368226441274664935119284420027903527451816522611607692120227029038019340668847510059636405750488816174754389769982072510237922149559005805674206586730558974764031739873084699732903535614418712106172196358681792575705597355208665356141489385894850497693167689480228183262659523792106083783705342411647540871835784023816997810078563404476206609156376723359112992977851110461813568215965068638969496532565660282330956376925403767770706765991939116853324970719525854529793111002883470681454018800618760121304203330512184538498977383784261920881321982442628873239925244350457961141781616755772174046195263607482597637939042841255034859952135879398938333614577141266438691032964130360436980405615614111062327669335045963729324454797678491659000103089738351430348928775173779691814593733650489136029647841354287828038052779133843635029128871512660036992358205760210072443574326020630619875032515703680442955230162583647197552701040062642770160422322238650834050400243733411419235244698848414288633480000980177852537484580678773220517637411353575323289613670751260800854421236036876718523014374513884981152355178509915799408037298560639143282295994473111742741136183011847352168608343282031053723087175891009388119538593859709083258556112069439702402828038873041914416333463071379034050549679004659068473596223098010286784532824747943248186448923634791418103346419802857203323477797526386136632171072888394333948142229236033285861550661033919374231200499618207599756636502728652958464149208693461276494015399506375845309585235283235915850761692557898010653504095756453988075877096695105772462348418970334129995871969417372037398692200296148109470169569969430347452670398546575549789543944726092013640980129154592997983678337407842733964529996091030461796735889119578726801722107347538912336862687130196882280568924098178874382226363573051563610286650213696315331897660322875012382719201829642853567198942840996394547692012851761271006742078779714334176532747556284839496422716769242478274492660014606725859110907680421689099799341110842764354166100438078778962153538384867310344600370852101744822720469595185830780512532964071428487931698869968202685714935326765718641473116879590059139273587786084068019451504236726385080048346808716767623021776121172743748941363639660078937937116020305932832923911676188177390714143592743482087978690060539355931663368512697227881203909881679147267065752537764352001819164316093166020738366831028211986688763800774220214138353616306413488012942673820109231191904035678996445103671470098748214467017181580269378189713439134977292108355555593331328711530559504711775891107420485615421387519038873112207283233023330245971901990270864466438044148991119234392666654779382324470416202030134790050040727553233085486405377414382948403448894365316883955729103229481683794319681674212619533427379664172900873973436651213461985818318201573353295480392832614059979795466868700303117369004545618387895933066468092669366298660813664654998153176837196875524399578698502247365275533178084457943678841679511589425987463843118606071922178678705194719922528893113523919104487441354031437783643596298838441809323356884613470861705701218134158377354264465014399334098835090531762990530806873312867953190568700854916407640721917189440355382276337907607980081158286377387352918561064491726941996003545292903650371041719966550780810694188461767396143667134610785466525026963652096630610004533151382571115727270343523979377622677071660115592897247053906347239627382658810001986217382920809802831181517165372578910603294189873813214648790858543440291600715609916437455584773073151858232169825586581504937037866024544888859380129316439412190454869524367410820302453168331692852780330441353342974423199710496968949175934559681064408278832671578886861238823503867547941016466167574819687764694319403994083583334413641151100365386737599556114487887755943079186343446505078819437102241870250546291750402389650964593040724535242048531745551573185940089590029527871655212199187536328081509387020919627215010833803547394049143288407837854842748565558022875797583850551413426783989845486576859924258012672094650673348166735293397124442860368797551411056369212900285908275118903256883489921081798688617413210830186304725900831879786860783460270659506994086594585296642480365243175993909545031678643350333856435864367717873944784965048762423338915406031294423756262830545087839808807977738338369227505764239401600633048186881651898162028650568515275386788189004674025322097227615721615940359936030035870750264947373551833273660772728386993577886373557344145443914274529258130604108888430571026621346694388312926041766558081443604821496038857321573725756770739850217833055838234567993845552413296738372610170825841307001439532469506283470572347450795979901048412554332122644748304052141900306655250206543351686441192158589378979795470032978574710229429343338291305610870608005703861091287078132067902283764807306891121366391800697317185137995341338992353093652268946878673904194815078205039493610716297442643595132839098338625162392964843532924991063617245037866125283714670671947642382877154578836025504903907301903976974682133032708703729148197737192370419219032968220881430011612487392301294789517580512577412622056023434364763818953476346514391677214110047801901595690341234767279737977333641743379500014129120035463870263395766338925626712240262913365969090803210403570084800817898809424680610969518860708108948342615744190028747312665736738939658879160987150225649846209819650246963141837179157163376901074164759128355229747884323135896557869878094546376366624593781160222703110641094968779981774665549048384453581208149363795035457794117044081080571547784795382042741231282624211474522085466057018135916960592546073658398428442290089335821038957089019755504968699828035823595445796005093316551523928170351635201868339978547554861926681160638442791838080137607400268296113937794913002266511341259452204980478032695407400239996321065385740112743675798589172673838876986154113076119303189108781127356420573593993620668360476564909413368705588530721838007453345739899893564715331886006124217928657167136177782537333467356321164553737887894642565542796826287660960546636121913213196471075841224359312581581553651253968523960050070726366254156739696990632692754120536517174157749285138573437642510294614209594702711275888503008981301097864290618618714706132976546862725123737825589209261343082749495920107554540540916007890045750620797406876749437199664400676869118285339795612798940292245984872099441957493286004646886761973864566163430253646256897418259573902742946534788206983612291625451460208003057980829570417634474498495309947745221167795527067809001302430651950931899635660957643790968779650931722334191313869327198810023184184622901551765093163842543004410938025075882855998203034395490250605739154614138485012679056430762176682403649981068144118656950358358875700573237346506722957988064496485541231522740363822417388325092852914426459080180000963926858707327095496128246248425791967218029456046063502625747795866676705325081707408970241270158249546978824651402972124902592994802316536640207664770891865708251408042145679439171555470549301719551396034162299284886889460044276424114245919019754573035521576874264149459190831521290287047780586466780613017033202625131197386942940417885569878402306985814275781257223170627568027487160344357998750599993254677023946548756732262323014048537249343295597029464942458662711651448105366684235705585624897522281860063184511767867603185314412180267637677704467790975169568180161426580483175879410462353703292912456509765718522028831696181576431290155437906785256632135606149829017313361121660705845537585946073630416482095625454964407298632368236719649392712436099899617388581118343636679185700020643962287520294744643621958523695583830721491083070055732260938328253773458566800580050686798939606936059225083495297803618213300546602192099001310614840968716515492901555045570106064308798645093402426349537942803407921140067062522312077897627261762115746166841823193519705931814414482908280822738797530395659891629182296132575070197897177518974113334314744601795379431561297383650633503673939157377814995322259253250918188151705502013074573526791626688351457740055596538141011338110070891168929227657687949437442026506631017070187857884629941285410380283111024419544190358118283730746781191419960405688675362031910385807069398932004381975400755646238722643638640597075647681260267074568005528221665651167440668685171797369716576293197058673157869791210777176495412575661596607002255667243434695019104662680765230861292885577156395312319023487120399377285437441753397093052243283923689385695995091868408747110866833136712938436166092790279266856693231379853660360757494820357398423369099011587244411666181723112821676508019708008317031753324161636080451310565796327913774773063202491203779738960817737000774273229583353741938501516676475081326684738236958161535239560112759401131635878880463148416472663901065011783752844832399921664553629885030785660415511885629408020083729088965394232971216963835317581467053191854047238304438153381446922546638384268433942188009807417126169036500910752347093634437868871825129162036212054485221190367206056197308021867940434965846141978264179674488505065963268395884911288039790197147194060216009636121138150393663783614617356681940669613922789950630877651713119381703875648090527778509569775856431715183710155629676610147632469072316270466773748128485271302332897858365412676309154896911952172769181015186620218578710118171664455613858182869996266481349246588680844038202620799326110845291901288777272362443204334810433681695631320197631414639265960190566193702582194066950988722878509069157205368579428480883267031084126558188655014411524287565953756269959424996460341881463015548948567745363570444369543997667543773986728283724438367183449093803966766657758531427457482698235946032390743853667940384298302981969765372148144092009755619630489243372274432713266111510360878918055653021269608110113927719060482039106549913332370396166453846372955115069792873466329636171582520410799114383626174536553131674664877536947022291743802066560609745981622964879959214670669800234516112977469328395040908256661076106386355781786082551840431460100397923900015940717785979691112170079603523681075814285349278033646172604469555501710496551246849729897833510006027892278283761821354393172804397471807697742379257791588469090645788395528650966870746350172791090944858647713815603588415297065767236399193299151246097762060184088747682250351393963640209642852416833686966899942740565366203382474089121315760635697556231461372021881403723031638748354943569154313558748831498474065267089703012639133390685916724950778087584432339636254276208177008703211709006617448540534760467602903781515778909355674976474291481333876517407793352182363151103293955633132028537047255099501220651397125435716584082164277358164789441418702299072199652498883383520476435628722074749286201353359729888642693258262759899665927284578092740829262908054082661445545070527012158167297929391294859848785900131534849188780744957948254101403293191945676592450732476610925032449666248290123651460320131630476546465358041071300772514520874777177362853192514230944983898029569221580866155823682756417886495261838485164810677201896450313647383787831673018398749080168301398994842060888307226842933530899860542856507563711348092132918679539302937709215675897979274342317972207590399044350735764176606325584892214061612782198199115319818053309707465329686146254624828167299964056191714553315939834732025732643990335425094157201093668871490231452598019905751327201808244544774951501537715058103253153302833812945624755693685320528921481308831548348242621888321062417477058974669733883550615265364998101914189285840662969818436717787424252819911827203967055175343515883286255156674441784516786924829830497895060477182625646690515165136634135878778767590191236872474729721576883766346368221817639881641151541838682345592917511614850452240206098750553903061199710600100105702390659491614382049202654619377209285365676376081204689315337636546868897539295337391302167995784440212500324564650497188711437705630289226334354938631360054548933631454419588275125771167436992533189590405081844749802596380449408979698364921848996492828865444021277258271569738962199584327524658709938024965185881984380580756116448885800155444266467487718689296602718878646461004900404807676671936564708683023920393882514255217080180332716876853697669784803061441379352723816458913385974621121405773692273548138641586037705000489729086776102083087830465477492484538535444422381644567152570509189832866660597685988738523609571518809134815610880038509015831841724361559981204318417888424504464731389467247149231763832938201935811758156668753321275331209544009989337973785748960268352026661235952956166010284266443116826098106486374560616871133637871049579303234179242634185461685132185101583016904786653180559373033839683983648362372829036606987295924016857806111879497108735261954584401417203234373106408445500121106502648106814865874555189211985905874294472424070098552886359127460698498581025644397470218538559025492670168458662253203074379059931493834556205412255950102285949878794505102437535074919735549280201207789882196311397307022478566011385826370807523743534836267997078083136870629067819750208226088312534125649911481403834934730403842440386602498396483295354978826108862036553452593061447565951634423394078865956612005120842479436093533768714732921352225097153736142272087417406131010642056499106889791486780007108281525086006676671213339139477704727889063903021655252590949842058358690762104449777416967966070844101317582551702515899504870647690381765242098452927064546501756927393718604829278769885455326768596692613121412015022313297870942058627359501473007298453320562776753837845510785128983288620898994143634488887675889844922103337131954770050394666224996094186069677885363974648433131165959969758284443315085892980609952294930932316945770086462200380307085273358160438187778698718715805755520112760450049386377886246979120472439792357032995453784721293957749650826597054334040122906993664793120860695219152251729449603784210569287705673557306672402034636498081956027218078755817100194479802930247358626842317167095345809516002533022724998414078382446702654981815534047228261489943264671143070434415081943658110680766874131796021811065156070497360105728013113604341812200987278799165973809261418716631176627446983020821108467429720021322036435362447043243766664249936553787378967674573501583581916354841296451740917373137250195905520848899772164243899432276816150027268406656962452205314437509497568588271015725655398644187147408068655121237309406834698993951013872201829599132143252190231025893319578993979643543086495521094610396635419477082248171371050795085210276474782784767600315652221522580852876680685440173861441465141008973129226979040290508283087485536060813326366626072622527813731880305987331658482058848276081584780043358800158841610534153867313506587397853922477480622688617599963194709955774958938099852323605839043947085304349940571583418004352031973051303893588275307634825000314859600939414475676676361655852796385808503107740961641116540989169474593070630836792988395227459641244423255736523324139978296749687277392180337206028966912676290654884716520400284784689284464809815177479314077404729897908688227662556920409914787055525951388132201229908243042469601390041438182642215296197808077266096400327084364485316365924197221724765265595051261268822549358483761492295902581460305172587902262681792334915191828208068461563450099447953543210553565579602420528431613467626046431483958400602009036305949107184775210949665336959846428448322956779619640150866270462334413224229987585709526200765512671921164262452463162665247207285558838792780649562391075896967469069719816684338076248816342275549021700968154007955139768480108388592886130734515264546216994552800263057987968752781075740276407638823450009438655372209849692303916188282877551880647088341756038566699463484324452247542168078239837354752356954779560897240626088205785025521835588782338276888735908953446598496887630267442897778661089226524563733493528501914023398747928119251513756331950365855370378817994024790219762042438480549894701259708357711900321335186595915659024591763469588345692177231017026271778740325575902176223522109220745789152145736285164812957139092859030208381911323305014468622324460768835086428488312392245164794156018641365858474671819396988973340433585912605281457795471835422507749617509781902753875104739610219664068646920147965870319073269580491894677247750972672362009500439645941525882397378108981099059466805280859876555953840437137464962457916494886857631824840083886293443821327800719087475474357756322798646864638798299584509404871414669844687042763023916052752847436988854092767416199846901158706017695264413179940048042036674244816236129362425370427879787826635771235147304498840747570101505716405599905201145482751469694431934903749114071345786749917092275102204826230490463135100270898884716834544446002252275523005585189424296940672283292427432724394399420487329550127043450727321454252500670165855672508752944375654158271656351190019548162749931576369758109601326280058448803474082697237539246359217688769620398671591075979198817050495861204471620353239154525445890461307259508655262885689013388072070120796753750516287809532388204754901334396278938579934625113335092079389742886679378449104859492380427448176040945430577361523391943806494309510962853415942509109324572505909172371210537498653627256290791966489948622017363497134730576868874189176691722458020992923636322574234131391155106378086156196222387196346708707289361470156533440053363880367799665651406431966152986958135989387172315347043001584383743030649929342745900162575090835949477472697209447938981846734683977228670975823987908121295739626242533656486721482519038533596694966134838780518901624921031061332590081653212047143913781512230302538489830436157173099735300377655730107900800599691882686886781087316411538641075919561189609966043575788915746573831528137004922622137106609758829050257315081691349975989134084869890994381853923537096109245513769108424403059091362173826874007472122726898110483552264700368769043672946957662429883074697177383681912210742147395340179198254262235051865469707613496055409149482360271078452188085453500371098069757802551168138919167783564539658032124351559827877347746947309687320494933421851192912000922239369598429473423540435617650079388018486488577996228526910888637218212673534551515734440222742105037487206646776417447562137198692802034880119290196920173368117888535286506042539672141200959864803032202315150015995557379152724024028704863009606427043309483524859777866799781851412800729711230012229873387281879114641501875635369634538449091809069901736430021186648716744607656961122396831869894961213759340974035015339141167261556160423784032261309623526546272012207467823950789593186322295705205879573563741097492981355164001313976364518218365929792726264073011048245422411194145889710154961207381312789738001986859228200951322990905196081432956919755890702966371118850387386237643381291643622450074039652197695343882249041638410236952157976731366073235416856755901577594061791854860468536810260471513768085357239327527821963636172405505276294179557995876791552806736140030000910675727204209849977568559896059748051013332480876964586060859955272927587959085502589310949489770555326758671565766353151116520797671935996798022643798374959733824828081485610619255303780873048887798597911775011760079556329155814599885103801624680120722365205237199319955713432648623468439190679558338002120864301329460385322470792252388936902639586356409273508119837606460767382784344321960849329615093449619725782705465047223442294691389230292655333805863077217155373402739523727572670021920339921254837949078932344196975534352512011187415553534482470467873883200062678941162422603001498634761212648062178320910763475904639563216613467360861224393906003694419336693706212471941705455357776958861113029335032163430080655055338970371135332115054031013065140522470811864079863809853470639111601148805430752280554241063213045024471471018391871824498100916522970994044322495595685955072175499273306505880265481498992861700387311680913106184341903385790509679682963017292474449411909195676445649926119909894768815494724826893795255241800038842069738358665576066805760315785897501950331588248933732215956988569137544266649721565627074514122234138277008032161554521987303701559191240061154047933074669370077659815205011510731595254228800729742304758097559720576717290316530106680046289191010379117440629428715169251426949156187946315506849791319038881012868074361441141450999302284143500698401844091787653802255882074748619003159719615235691394204512212979849409941732306003639564014494608473134616819852186165603390213438872215470430214277158739973483764807985947298040405119668571947480981297443911536642391239424708345295465343424610555835373642459933630503573839949689057784105558640224539724257922701031753902110628777689224790051617993068539620991769877864094228582052732405847009828963809377082481467665132836047666938466844071010213540412067665518418249120678355761453651885855534068204840147152293406241311360341220123427117815549057048307815899394644920155309426250060236133444152288994180900165288552489960957260812644198745482923368579264533439349115473668921891245753864007749334109187799244820511702385054992425845662767216867766802436367881088365083684988858765814061188280399991405672779341504381718686994454780497562219599122684151844949782155527033240556981491776486869443298536811519742193470685811288893003190313859772233746142731060891898737755948747458346381470079799403853427065906266319989879411230618845362653939334968053501609834221400902958724895651922161048897829979039834751782553826183404034453305808697015818815337144305750125909137473799822747704149335568790102059273284955340004295011832916915818248310947191776663088464242881596344086413472045395365263973620868077764801399901457797594900783988102726657787343786528381928390295259300530027591331750389072488736356108387665954012901556507576445923976899749744056240341962177307675083490102734947848111484839345568474489267634168197205417322814374134479352461197335230773822889330117544123678457435631161710798694910768541469775011720484552516764835659876812653055741071385252251484646984881207118930068617165078990024462184870071979228940849354890855175164942554593940496236787189306990166137401141410757427254110610623429277133063943444614978686031070182401177336426981745311665615841178237183609855778920940099454406243566093468081478275621758730002189869507642972192533867242430304515145923303097315062852119785163852879776820430759175160170656532578251760635072543364968083729434011696740009050896408501280686537932085787717807984072125175342382593149256618134663174240778881916118855256708880038413569546594690240521087026777214352462652813381590455972404173702359339433362157623221213209617675139913375857600032159446948259018771325376510653215010555655152099730375262365613742745467409635944979886256770776912994488616751506375416658263974039052662254814086972876022236951293532771083932938194232616018539316735306491218763933038719322411507821379122380354058651653008222050604028006559802791405754436113661087055458073456376678354649612678735856247949220152517934661670677860947582393372832866970996885602947715787563060637633946152678874884415328505936209216453090740573124109295218064988394413524118424657350567355212048233714908365438006103843722045339539212942358262020204110871877526598986634315418493852384594700610207340283369601374321439120070444183203364140622065642349881502910725210221917208339828250731910363253979715014214187659856771671125748658747620992478524013818294681249420713857080163581053364412880987384572722697327763848467431785206325583603334331624119478675639516515668900747961622437465149736340987557525817329661803503750274385250972041478543274694950911119327308501747979254943222308434347330064939476927131360533843716312238682543951792722808724458480586958310181566369173722396884735830206569768493840832597193793834402094793775789367093505470255732247217528421663100490556251712708905563681139274399799301353987127770051086576385886240041419724825472348651226592972896481282151197441289208149613994277565375253749466806672309825813851733403879479445620134353064647239213402227084190459077025421242281264175971033230977599435310659388158301506333341140531197199107526169583990333584619257067331532360262843037175537647738346475523295467776131193502588201767712995907650752547656821681561011868699085175562963200312619937860727168682863776341222439435993580671437564043146972605105504859473426308559408322519853079746364198057060581030929773389338206420946939074339349374418323507033190843141968417329101521377433439208126112182727633279387918331493802749255297216213388126529111397666109251731434106916096366491502279050983167641168614721747837202181168508668804377486280608952336344403788299232660870421839956683333954622057689848144524084010732343419537402325681883437907503004656877696606178592779786326952476796002527511025023295689753477748231526118959699286921371000542258016400665726346317229801021666131315571137381113095427886116219828270805640666570845640746701439264721553067974029418120603290954702129332717954490059393646840316851611917774360159830133948259247151634742644117901117817218345094285687055474914575290227242308524434811427848624435868997902837870069569010818078315761238352513027894386516588654253641130472220298104939655399579440424771749226415868007194048036556614314585466393197201738036897242585204503549547941071078029085247791307903400157900810774591029712965030867443048863593383325086062127950733314103343038257244670083158230558205783387706571775871545461101671599700050364596922085042568951097573766274974391595259915437782307356732402146634930206127733896931468078995087944908986412290401220766947247994713967528777421990011119861459363371089169285732288057790490944029347057417860508411337526992218095132132790890950196440578415999025361998051070092809104041056615258312262986548352635950846666337347564460948794048039887311608155298400356545085347190020064030592329630405645337246962018552466265643894974107531804779129926264732945754993517190640118429895821480967143976823179650398191527263479597169862551441945743240824772608736070197628949623110459404720309089793463741995554835742913950914461988690593264715501623242191251419537425959848300273542406355952887719321229211862443820847018913601183347184620638037013001817448919191779346205776275250368000762027179230616136872944077565090989480994556802847182292560280457203115364110711717112589642863868252739127071907946757911162661004809690663132713378764818602646984778847886250724958753536424721304606080632449373988927550663637940972978271145039617469350482030591888401048476840098477842666517502429719229197706703996207598123965151348687115491518352444385492464006666533971230090257402326619350827368555124505383752410211229793544205373145589077594439803326205607676755709975940039033465232973820335364634320950548278382639593135242538150142644499963458283334152176645577790469154299942208511378903899927469179217863307519695683979210640618418848323754268413357055104698868472915633635932797181034457927875449845442911349472728930656546409302433119358240782972958915804561747712482331118469540413201013897538876328808808883757445030784559863743672724694802679417167392508973020290778544042294356829567663111441567144641250206851241359802318199519050572296190478328974053574508095225927356191613161187565302469519335389995373283209547706952042186890147330917549862297923637127700027300267061214111384477749013404557753787232549991369678447743837170475608947078792316168672386503585504780789517185515199143839038481810822638473536200528117834517327762106794799648865978940633615704897834058720533170563260686450612953300349864658551721441021788148091589712527020301217527988895951869404378253808195668682497937657513215269273284403897356844216288354330120326774377438970952497508224477221554807825493123194195244712805506919627811521653295951126840211788670957402581357168335158974050193552638860013277793874296274807997158822091032814661460061302810999947554208593446241523968643232128085316968976955582823640186141935736540490776521006243722585345772900720235543574819610172168044465855328616755305633886388368794844250552147673462939241054821754399432070549728639502980815057994501880824311414758997479355062054532790449331525209695012381072974099586262293325800445417882034250776911987470896216719541765360282279476763349533925351413475271810060935753929763627191884823073398120417792218229556491785313230877131929717786482164217979991512934907114919198070714812572084791768329767277555119773224363617338647029511364697889050922005419902143312439409978809704912729345408844004201708984230154434538246140867182265320750711407824440511478960777300794755163609656360832973895207487318442426118583129523942356684503392938115261634342303415051500032926349253772543676129140016096507921100670406129581728312329187253509145563242975942494060141414219039918816595181847383672864860976726527770454714776041512644198241905328995186293699047004577729664298324541629774156150032245403287234832978444754754025099972348950398625486969980364908937285970666261241578153973667732826657298025177116972598465059558830100729315213334837101103063219961231056848232958905565960052651143826242586584442611638464829813662401424765233593061247761698301065566109305863508601391879292137400257416034757807945923558406705642184921794811410341472142726653336821206680718110757071279668931924206108760988119454308528860028499930321755928890782538470261179002089674997445267998735558467017032060870435149313925744178006232396717746267755757995066730567763801490857555252681439184089138606258595887771561258720832569663853350265251108268728424532703167885642479057135146618277222087207543843625413020663972996675060361118550288105969283228495754871707634729503032911788017308993801402493523770712433752814469514219937505695220493338678432143790626757841647322763738582103471414342718773811182256924663196298268202255101470480083218325272157637529957782608493137923322540291664399257381685944383185627478003297122205868417754151798671341482768402749522518665259090654395158907990891042189067079721170622216508361445773340267149980939779340741186079072152655416153211576673449147866685328320505170547702099246155222448940968040058135212130203183408831946404170521530895548466604611908178501919044075600748831581509566457682768810913887508355139479102428294871216265288496921924682281343306152517206901502284609733861261538332750441758624112764427130294245862398078069560278353116048278884214144931253406484575654889894926766939277593637359361571048929730404367124345397155718509457810956390568001053032350336965427973572560979660109388422844204337775125985112781828254424397943794511758060896903237659203090511467630297522211199105919203980938173125724983326981758651784581892851226921602067765223615079035564400512671719030232128134612853453626109923608351073332030985758711965339479241540498406253796203607514505144482088753727427862393310963782247085104714800799029797537834055521296703466398717576321187616361746046601035687786290316468496103697593095773883936626698243238758316282243688920346614331636006868965077001164400258307236991583639359171883849293542183594211497822701152410798876480511274116183554237398745199543195778198527876039300019758402780869877637342680015485757090648969328479928341759736227763319123496703861815486779316850712610544806472794134354109208944236531872417181406986149567988723359884957819090264052134671828923964854216739942644924058662470518144662653328225938373187745284870272784017809948727890356692238544464502107653028112310715756878160339673617267308254022962769615742435776861411574813090533027007932803696619421153132188057800533151694393097219533589325384911475037824161536007912906993155765978241295068072330690508221815122168866742538097738764992342788678046764028987888724183549236638775286769827343599170619449316020640179046537282324392103530517179502617585362020466592173610312303236571218874813388131487356707992364874353899438726718836221591618791956353771805373279324007560153921658022262857973350815709098237923616444575558980373608395237374124241035650388251890486093463417494823371484144264186100356274676576897149985402504761268093103001830231826338947599338943166461913280325677432701737977241949741095221975484142530956590253044882327832097472421931495101582446902030929523290517193872366555903355127455751733497056833521050263618256850541558255718860045808139714449176991259953841434400678325924948930364541404201864267601702807088698358121373542354613984037956841683255339583730386287163930140692672411522392348613823828546318605508629803827336832080314902767050188907562857604897955725773334231853587785557585341585529674272453144931907323828113434709279265840290677124850513058446261395012228235655344162136024517381130278775598048138879923592299938758525327659169787700639922621545917184238819686402840812507010733822443916158344693155683006216495204880832781860329226510608625316467951954367975598042168354258032341396189946173949628897886373808556279432641901802357691929292363068616679358036756662610094708031278666787715931442046355348706335311124033075039692788087571005740450448140189505929272230136703542924641463152119263240075341970182379253449443438352798094153745261444903109271176228619335720574128971335464090827198329249930372803228680668707207795745167619250769821635092214596790544697734044326741413962426055727383164773981583336925472343051313593961744127236732955922081218667671035808093437899254510223012407015372324830715898627730012202670113782899320330286742622810591568063358839079177793858560402892621226185196665150882567576916191948489358828095045071635645490088689444993673362223637907155627697064580209877650890303388768770246016676303693481213908639097084719952228961617726434365224807312513936964239518235135423305268322641407361487173260735401390963189450210181925868082859409862176571021844290753238064683992946799998630712296685654854591037725245054979124005474541006168619241267259832563297834044515635372688224516831125623752350920676240944164879010055914693372563803572852855413456773852154743625275607260485858766267392964452403150032062073203942570488990943270064292479604517981220625683297782749038601962642691657258340833690930298821120681214932503788041267024724446210727812384680899824314042238579781527609636868599056905995950666784229454082529982968277201260383695005941995054598146046148201589451632911276589106538179093520102372338661051349938909831055918124302045272273432985105963975073094857985985021131865101106582807303144889223955890622738718221076924242072370192429012965917903348270158842618081676715797415729056414332825436523253202752038341442379787911340644569751511857687249052572428619276568054457657432288321638681957672702075192272083510900972634058165862992806544194747765211907895005460785263792964905991823029217419005490247027516029746186551006578004750989193361159595518731304620169280904875318041344348378866403494222699634975559831865625823283694802681842301920090139957380272347705267054667907786169225571916859519855864053024504776756015838059370325026750836173751720073641759277354900961283557847554569898171404142384790293956965593330849339197050292486891099625074224703299666354039625008488547609581097264819838453556568437058421630370475831834744387216033981865516166332991705283744619202621849373378275186797968816939802189187986654478241145546434956709042302355481243340758304419455771575495030900104924050728974228700567438790645146740342493763663286052143029442824797526576656152877955735985103276819503884443048291746348892536605856677915040076454315057606562227143690898964630806442959145862189349162755009192238654158005419885014989731520151503369900302309861296360311102299414932017549506194711565128102439715803663939433585641317827522177559861678937521779237283561158807077017134642680416856030164558628607499001300734849765044917057957991074890994255127805834989071976698956373028114579032104271161290755876301904555105231523529450767497202531049806659130317460979960774243725079371801345030627138487801377503674174008716212769330139905476458202916313126585749122091049020650579800494945569466715963014324197613375184317824740386814008509489123190305916674714977364204946517441998099065799713565203268297932737376458892934084463056162889730956107497006290572144619083232241180823445060997224666287281737442490680259123136228751172427888219037327404909519856898799661799114254658863126554647186362236923581358069131272668594345912389522315518138229348019619392108573609233781031122483989088361820642179698604123707926225780240567223890582227319239673209386628184036656713981894364535959848396359039444836337983369464200805862154961526571778318415246237742630573164857871421265255297337342337807817381334262012006851091031889323444551406357742841061442007634317657761339134797344666955574471977444160833505773579771489644660982950634651509895948185825330974759842943291110737842713541262721498386217180498855773669431011381349677318332700130806020834519919861369852207159316410311554868494751213441272905743110585930903935925110383527766203342536203238663714724384933075275457386620608477899676611729951816849894920280510462858930762008518763043785789383497905679813558028311001348239237828821111064250073876148031656507882061868189957941456289399919285966585776019598378791158601493510704315463607315527028975237371277361136707474012189431104638869795160973203028523498181415380377357446211761602167966350524066933254580945087952356506322626009446954768673695659870379704630955961537419153018259133380054176883374912466453683197205620400135747465145187574830841785291376981941539937721229442390132830393522712672668352504740101590687762117556308992075048204388526016582722578135774334093485384596887525500307795532354988733554317655082726980144574572903928612702733842597351465882461940012377998971410791508702571607359401246069982996881200621988126847342402195495992398744183591649758327784704564708766780125947497651874860868857969109831568986664497976394004147605530101559709115829914465015851780984515269411150340368902944556177450577712425564730415418407771616471074865120317438501989623393907681431723940929542312278317891193278421661503157739866035749751838994590842223143639680943076150559961602063792917423221441735083976502481487731427343356558168393027333540699991416731139465737178848377795712041238655657354937680707421344514368174861451986564559722066771349331233234374153433821498530084563835552601533018190351760572899776056149314032082216261588766353815880952637419175460754738493325529684747255142815391669512606460948092706209024681722750335005432767508437192460421887536888313607662784576991524330019377973105068584363776168879022133452653358902501561572343030139295266711149214212298417640532560552955452466920359322564752050734583307771531853240708337669162444802377356888543146041814445048121778129596015699437911231714817754902885204366994008236942521009519134050543820366555501219906048549888713640677510594864972536677978676897802970619790118603299443693820154155250417236583181296207437841506766640882207015073454928947061293957091399828996494990015830036855370706430127363935642889798985727178924199439398698906992072365446052756307948862723328618754585485760418094228182203106889291559959534686730481723606626294919285507782764011919639699153831811079762265105001503639479888736113974710576359813638946892542929207380204411185510284951371434199535939409581203440909367520493476941709352154808805467139169680632048311725534782668344821222864676392204218039380701422175161671503107117407167673259078856218717521902289687583300789486829514754030015735347780587409403573154382462954155259735997730316562358648347574181088470403666729092332719328290531695301105653937574208614090048121344495110686957266099485022173843351212502472904683169593402869877031725089109222745313402863034712253152370606092670643878409732464912601786741062644625827658943902693598257869051119109940800126979698032004016255094362798800568233367914208644185913070669178077706052079656212087338278665292925192242102336687576573700669760383652287614342551135418096607056552717535291026452040577756393362155411855173074920307732128860203667330543326220838880644156730924599588123997277052722561161406249593523625294289456401342300750962718595407999924868998120755870520403229122913710636269910503745199091559036437250423483652488633273432071832730299288211575534561369309665336053528893004492500393007536369800473415045958213423502748193124283628035886239832028349760431099508782740449048677599539205301067539690464795895253350596257082730532885344859335603355289916535069279539915047262648638340754467119980308161206747502631709357010776931714310968896887910888016036202516436587696959842421433165525871271090386960803074141976606648972478974003331920189729656221451159148561062542716493889108242147976271456994069679169350367029751098574055115554694850914467353109766490210795843186718475019656897314658912156948408590598721070880303684698039594293725261519359011231134255486523505279863587922725785829390286171901877535604355219063212997407246298466028024157458959305814228781659206568148804899527664994068378926842628022058246342293415094331947823728784760119786418904166322044978649931964449912464890790341818827893306921587706737824857527117654384294809729380557742536605844168234605442168548717518671264607397919020651446106499374564297758838909143775361628311708460247308143289338321009904771008527464518776796836894709981923333260674897560440485954827143909831267391117022981833515789643273788989328085729137831741768186532255595293438050708078948844222363631534857693648219016102169821970180994795652581940239234991096889867824007019331551660821081873076102476506483393970184065597960877126906870686782972104623144875881231039625605560787403665117029443909707209962250137058309791079940984820486359678070833917706792152766743009124437607257743415878171010308594270155904566375016451135502624057100229890007142250748275105733127221406148037676219626578026116133989202988354662426856231918616907363962937422414554741288976127874821581196839729234569576671381529700905885629122372194726491406682479920224246930889945209797130917035395910261795570424338902896550388315122359920813906147695774863259807707207063778629406839500728963832678153179096586034965189276420347358791208458304101140897311531899720877745914527749773093278933989721067759208724095850486151683276162515672127951211091058691816076512025153621545419195203459757210941818077327516466723229522118339494106241539563655096820174180774728132596658219600236990903640277024393715566403937506059426671011431556079590413465878398178944674326589963018909892254399616817129614165947985038559962314075502073891191389797661103639456524141421664073765994295192595431971332526772141888439937162787085598931688945902242414218729139778972830627691017282967064660104560110858928985119170284981230854254133364589572036638796452348573678978879555844319927832718310119717850903830693667012857260043940340076615019778012740755247707564237701522500120537532468257469356116674443589510556212929312346278375463367186943549112656867697622673304585843830337269222923008660844786617504644219052383697425288807797337182845819236997335732200503093819396609254536078949033330268370537854394826498558813665865398553959964889488268287715593808436942421927422338835398298556187766652965479727673282209555000005398484181028813435747894642230954336872222532802686854308248430985025720667017440730627861140503744811882216336987981643918166051693165147040980217933914789396029261057850712366268644842924480938187256194400671747728051202563202674486678338160585810560621647146328551285798457201272962841762245870316810498521685358416640404050536961226042883672664612098505072362524268355976757649289216331585089949041725312897681521614728711509092735692086624129604355243817614183332591832463461812577099394285390567911658202561193505028417440284017779461426511311142735037247462800645484036290021981163392186066428648678014115269717743552842430604597564580221738386849387194361954285927272834581404786531640295691029513776761960252083893830291977870739388688359108995369213419085507996188564130332427990651045187471052532175662571872916436589772725004456323443935840887204028800688708738836388371087941119540533924005007626730703213605524491637482817996509303679096755390729149571190079957972194595863775806918313512013854344122453299749708865518546421626962055405491303682752934860505783808973183759261583994354883770281833805426279752987180224347122385061502938249936953928484296883364286378322743916936722609262009925775784250252073658807515198415151779825212019087912900955517132281781848942849982297031712324154670642595373473911127591634229849311793747518393957375295762714472670667776018133825238240847630900398810756975355444612790594260592194804982607284870646482327067841315947158882765831784517438823823604183525365454694511931974717239445100728371971612470526177103080626349760063473903105964441063109821368746263483288009817492725084606766054182868266857804506233203352104204121300728844859436665942352525725941065812035182876845820851704397494350121166825874782469559142820700320614426761899923045120876477472041271559754131433068094338381740378305456191490694175465581562751615803869792101782732839450560474198422967471983389564766872356294638843727792523372990395097650741911631450535270238145567266674565927906591586033516573475025588568589056720434724146974449070399677592905169007970469547606121768834223729509673430306652986085500072312776660949196787233842005982156005397360131549088158796794936661154264454225147017252574958283137649432722460941941360309285046201898403275289218164959142287495792941695440372956198460382484920434939994359273099074613008122300339333942215231648515185183465196829025303662326424040835140994745190887595173528640848750179168663073550816838121537248292642647161860272660484112684078958310975140958288018222756785746978020353393066047596611143518015609633029903653599341599116104319773755440431009322994772583926769256827285529924387636202015999209105506385484756249914915571409336542630673870320695883450942827667702296463606117284472464216672788519348796686427183265066580588596928708619574095196079322314566670863924172974662752017565897413985004183453036641121426070875029531023676423899922066015983601918514282483147553234662988917830176003190177654133005444130993941459489586364455521900406029850119690291746953834306228671536849039487695194672069710811824321496222745698217232625634577371600168311176947166501971037971218351984210121262879640301016571797785300097846186431225096012881081008723915215887450068251399100970763972698600765224650344307308515163140922892874233583935654573682938536962570514678380826341746833721351819868316768823270108536924296530915293103593150895647924313751200730750272947509678785674633019664178346907975608959599400853526381993508438720968552985356856551260900686436260939962412312098884234414036258243358217053292322532292970095842623243740669343298497707338547546385636626469158259033990669273339101765838737169962368985378240440157640184694462314436889844449611246869996086958887821409019158026949470035728276434083179848587058727409329497367851593202335070347205637098915627305064825938274395515914443544156462718210387611224275477112495060315027164672344156624166409534649783606209741439008715347765965790788902209861699069318260566473248396035163311557022156101919917975799406474778920700893774166427140056934443615843176281369846169283481369165172403937387326743255493695636363005525282933564258519674093314920126721790386949508820560080906113532395932089812567341693188734061707894610907872007956589588183967837417882683961760781612337781206914063601662488139399539970005372215368159583086010206986831717840660922957845040865224464839260093771178693265226330870521870302444934418849868897512867321607780027511130518529902207185190512154289514137373051967501269956690068162121738068209891088197223819983506256314856384132540449640780279501026118887649851142489048758923249662210002260101583495457158043211190277225914077269547047133321706716902568243112355677029040614118893214434551075522544925462608546204252196256664525243527066353120427947716896151569735404666986644008841656524207695240893348246102269790213464285484508532168332298949973410093020709862679684377652961442760336176425554780466052882771110145485993559192349881448376947755729794201844834486164387843058216882957328479143702194647393629951243084173802040875618650570418978080759730266497385867047595595337635976525697858226802898335737293291269479670645472780878840457925227608645412289664183909674849372814949478827706087767630720432273479653349880956289512669287564220096478037073951285430775986164419355691904982062730111941594935718216859651530495155492121233657395507560961024262710982787913260343210581766267295126115665390915147677516919690966119264658862982361319067205361484086415816817069999666443073568813688891765000277789952085732129003596044362481629652434037452628703622695967268827683534554537103774539302194629361421339516967302710834747156307830021059948673439628410955584070404719492012164546308773533357409529522693327925878190763493282410393915961081868034737682727501520849279437593903659809732177708170270084771153143026508161224753704456746327035841622970561892980329351323578046182600188262951984200823032908869518284924281517540029695649125565341199786793100179479104090731162414750409759697244284501862443410025466314719630447613286861490323184578381030712272116603169474183006938191798096924412382202155245333535765120489346024335972721825295426067395470770689344127444545505478141794292420760693660780599289883560340841485323422315479131491007431589849157587968990947736828896255320234796280153617049959294183195404034974775963130003605285256171951295227384747236508627442920917284681471798321807899601954536271844638879714692767039762263726749721491389043553196581379917531763390435586262288402824273271516768337737433201882727724025669581679333009768180779328123896906408957008831557298913480291934818056888106758841571542723729652980644344462114414528350741132140897887552012067254275326509234672370966084339697638805074996098173301719769153066310837920127312003420402199380850157897160372103701766851709997620531093822893443702413804715312473617325618763197097947784372916035130455209970108733684488332400952047369225617282448782818740508482019229220723214631088080804164871108879479410768159748643946551075331047755666767751649183941994947294857250450096052247657579562546214143066479832209660268256163593909019096706992923597578538843549443113001459335766236113549858119054402788015573917203900339183686348766899209246726132979258961493672520735862819544414565310742405835983591267256780110120337035311473408556980791446674062027255618321197272778055860021608226543546590358571166714035431446130552086247481769714007515208716413612144764804597500008359384594434788940876692973825872752725877951920019649664114572116487208003975585511982793334083745252482152225955306698882076575825748555321355610760683606563284529839313291409746514593480751087996340161623923066284495312512819178692540850189289625562031213853067684966870635143670811200271323092348091879637210504086866937891030396879232910352099838002180940176948431613959634809163403767748071143144762386472794676500324548227724929065455789822897768184264571899629153356381983053953326730215277511433876940478546034400725760168735626572504126033803380396437082517935676691851246743143586718995077277121632256212241583943199334297453913418418435356263349585448534090854884142735589596529076087158046163637511698338555188750556211983091896507368913974246950097027289143951976489778883694668791536749834222941158851928074278424167097196780698177214615524890232777764522228379448339285663049342984674136338522056801722549995555785925478076511956181339344330114559340083471406812414026895817867873638775516774951433420531405073805460999139270425358956363365942737217689508591947696592949388359661600289119506309958051097763873336325019190498563705742682126021445413972765439541133665950733518292973127779680770380818244473011099373413475461046053746483916445889471546366060177864675384414995665090907590037831602992627075775380094041292673437798480398436479852751818274078424887655618364729648596957085601015203365088354482185104184575168506658211162837258967177194662461437629590750683157851937601859295969897367561908098931443786218946419715812474200701596518141017313835285088424067066802998731389699135853247666041057102671267645408370434283617884059515788303946195371005235209734950909036416843030143673903228980756840795735374084144151954185969007179261776543493033787993749858819599756874697908195012026682846992977768564872143726886516936916795983295263154121562866749801356290928224612752290727228088076353982193717634926721423335343729762890341884744868666992720016260939377870554401364516137270978643529139646171170096325058373966708425186991483362962658895192279766304954476177799601995808250362020493667189918048345529623782662162122115062204918155071647091433683596006655584429650742101592638239224759017813867459041391224061799182473992137134748835257198276003518762002018396862283102163091217755711748936950038088135039312728825576614190868713425344815773959350872103979241164303912294792077715737608587529236460049896915725035728591314348700362886529804743001076484992069492448584215892107115195929101027085174278244145352225682595910640198808113121965592498813090955276778576166822679434918251941440676544187834676495007628518688335019870512894873709438072951851482217654463243519781945409838432456290748837868830363481606049131533675020674883968365627253041304033775753348444692345325562975185302373036799154800915372867149100990006511598549144499878348632455305465083935970573261358125768205160698592239875415356004351015695213958669426230134356285164956287946374484125158768432438053076290071578738727978373599932652499493879155432938590133202494977658130173216480807589707947301189061502062198095450731878361702026953064950328435437566146818931892352524718053319602967635539149322121971612395908726914145858009191407007446033674634910841051464108155765634081080191299678661926971664744438962736833498557894015327196190904821198242350806862499357920945194005467823252289275505098967451644487662811594789715717178411243439981977797573580976106427157684100512105209085070157024635378329420062928132068117067832433520876972133790369182143846640778048731866106915631903624561632976451706382848328918219831375333806979172838838928935311600698018104597682765928330115840005676648731523320225091987679120060599233421215907219565676645114385380854314001125599090906734166135845150284082104477904700244093322603179390947897015751160409972330807881874273688692764502912498080289771721813035032937360995857854266972939508982754667922085313029924661854387046001176898029524223399252503153865834969432291451401140962735488047498380932799967073866732511323286451498754553834776702322692448269938930158562227741035648908119580853284678244092053045167044941330124125414913520996662132779342282887306457033461084933001325901683898890350118837581154712597918334560536889731612652427206723427447131479152733405630894835775809001235639070404053411408608149482885117884939265389226160123443955143354161267232888844647955146170131628135133579003606556541104317579453163046089536360540377525197783535340631373866390306109594699422930040626864465907792425564366544240442298143105011484501110472799194219194359252981411151529594722815823882900772290900920041363972715038292727388352774098556078073503877762015806913567914208583270731661124576747403308328508627092599931697462383860399577438625141205215600140106271327248622830157298262409145742340144534830261638225906373168919014788845291475681560778502169585317564276004959995560956400505036081552029022806622380389883674986205261421254843441503411632499412809230804111085170211037406994837547327950155605326941087287020036445217976354912206563197229342704460744466782926904408434206005683042261290495792829982680474548136512577191474445394648633184477096505029344089311024446328962129665257549780161823401084358198604093936543752898987089057700470892257660885237543566169808537957564415362698890344897789196286150703041318288038452162298864262913213109299392596329490189290142900597245513908723726073495646475021273316827650023776776225851783887124088119771199337144733420908654532309848030917181602469109218294111813952847137488558823102784365194893635112951999782354617404350713321855462154421728136090602931924064246169194666273704082358802957511871597729870827206917163873941734972770074974675083811978200763734509019929182536743884388606099327901214378923429217356946198442041173115347970794778755632902377953082339238021815459707986767319267849095013419404888769074101100312304615564588556425416411970667569070906673632931142644811354684373163717592759184347818166678823576558261655067974376354964813430220028077183009137275528779020444221654138596688483988799308002049976824733382008904107454242956770046003501299697448955017985880557944127526440024110784891687943426439678739374623850337984042006219211168632096537848433159962583450091548248824681439459059732298269851250817119777746075887595736559432225240019639496527515393905212800848255418788976878883552340434800864412303436119035276401532899211305813186727257212063935501313962171169249800143780307395206780991639891568735839429124685795363616916599417501603531366373567075560348175923238182217202225058640359296549522092341894913512161275672783744771487550524631343042125302569750903941895483437341838276424514848710587939235607424802147087949908441275129915238416953534479621759052472666369173644002686795598806405615894175807430791455158536745222694933399366725876668693664432736218857828817574349677104206746011380404419887570514165541809332936683599698755982845549121169281580348154867948376447934470610683922721208484998181661645062022925784091441401000732320651099887480377697651394167851505688814841842343726009554858954697354471247700717691243910768901992526558244839128055210763939208698502977078072367556818715994130020803502084696877953880439922242820123163043988749923507389962232487301027624752630600640681531403561944306577697871571725852344731105716701766735825366203589300568643068945980936514761112453467996445742920407687144629275661467224111502348678129736501719186999536456441558695766226669291617938287061174281362740413367415255069019404574624421995260104648258643121452598423512990094057076420503246031225646658656096970640055667264296896480318367216589806292728323377925795886376520930075325728597930889194840467356187091778083425706364493855104578810518764964815424098328204092232383130210469446056161492166716771478152677606485243857878298288055820114981112440678273535322096183339587466639502223590907967266806274645204000527203302867380973144393647417900563806088863771013002009472368654614215582103220749924695135817310853807550572605189662582676472031060759073815636517534724645486152793567305292693467676709734653353744872365374120742029314996943252763265840230660709241354175409917338251281274259753049171931115483249872224729007276430535803611581064973195128968249541777160336985631396301863305187432940641537594177464224314667738020637481610790970590642659360887454480644771286190532078398008552054065737211451526427014740776830532982097475738304812740551699748229715358172784636987867960707918390117436355605896849120653344651957868503449465688778835573997685958693755492524835299337347717534475687018974921059205189418304286149894302041422662436059231175189295276056485211367595999336491009108988273362067167714174871502792243219923146390521698433168097137231474246404735494186721027622493821481721010351574809770393893911738320207990417423246984139217235892435163080236590134154732013149046886856336379770090472176801629411697260725663801541935165038390202260211325685811698780401318387624679947198503292924561144532518338844765337227185773446435142502194861793101973673276278148010430683800972436606192224531197916564419684954546758021910201321643857954764853412092529354402149062268362835955372834082806515949204007601530130820711282757403067953216693920705557514960381795797824153801135186626805557391318393100740941656020624440392482624784159766135709253715934789850523711954420664801244575469936044350538712196762281683980436985719739403430742505457804230018435859471283582272996847968692647158497269901354073223177976091732000577443927130251611750571854974996445836693323916746980516491661519321074440983656122972795845823269376343546478279012983419723632233811976683266523648126676963687296818672253590531187260334002334403278221312617027699681134663144204930080469434236173067392488035524237635456407346985296795017298257515616274723902194441257662734143463378888299695272981108333885115455037427189690329419427402969506248432354115091704172490826530595221492945458820556457993893346573614999655790426581383100917870293423047721977508195117595763737891423961286264656611670885655507556776876476961552763127783184805395542414338399258241232066308242094084079844427405884832029205111127211623794610530040541687941800242586954867225258515505196210856972912607180272222739570808344809657285138412397019203754832598178203807393689695229851995577433550887332247344338822980543740950354126645678385263718253505934107577373856003713960923688137668177639834055683758700500157850531335773106447445582183488445820402455600167301638851932571365344493525623908127081749180575684601189975205569135641929544044179936525717867147692141082798467709066290571936438681216289998552154578702624702550091195143733652084533692149701684745158954836801400572468988738123129055769659992677744483644211705893805301254419946422490358298291042546706826743464360896793857816804120369492500897274733301779395912289363207898773053431569786967065647854483135905966859896120645574913874177121780426525301661478945199792811723673604986416983076245810241027398491080808276283625126022646944459346478330362577608952290759186119644732388705211620800179518641133134091509361145363520536566734748484779852607165924554071943784939880206812678690728946564841940263466641017045571818703514720914735006215743463828751313413087530959755648647283776921130316327460043906258250937348353704806850150697106375154721642080981169442774021132253137853249852920016247151300340428809132566162483356128501564625828164315441590651569114579307511306886059642176025910363826090001191084896421182797839715007700089900997850620301320078494489533493581043904761967603816479222148333659283335597743443553508238637924567073864312644100799195705134315028146103882831337198325222169905094068178205357561527732045766269431851373608015129162751493517655118818736190431434506073759489473931244351601838990121088633795523483641842531458876282740692110696606522010831594298819075567766768326344069072601322540862686603189902367913278719107341017473062070036623720727183596479668389883929531631649537621749402151766605044755254073881242769709096821424624585316046565024482189387761291192145372070950757665061983838230733859317161227961373595640432885514538493937369190213780649602238955393948734362977711083253314072362735363544579663802467832931014352893385829285682637627286216767433192757817875091887384060984690887774162580709055334310183391030006281406002239519023459748722516936661554123075543330085270858959435718436224253393568571880793689463228542380134650815839301020705134494070602313258035802647419959744704933161902187372440505890210251056524745329158985198291240504194488510144512094273439542235628161339466796927233395400319065880726535133919012523097694277158578195346398013027032569711539004878970307544494615447797558446182056375121691559403968502190030345563183377749370667591822452708637724157013155970355951980752316197764832973188764913792366142589706992535018892167397962285880230772223097832617992664133468001728997285684694265928388052562772653818604977634429751909492473832105973576991829760475052053687809876579431997131631294578185196369191947975568425002341939220318726936554633251859007412095081428135550999078357040283286329150954371012759581336523702150187087680384204872012338287529183705315932460721984628454115307723770719047966257768153915215366774105497410663733475548276133165890627767489328095064503772719406136004506079675079706828173822307214977354301975511853829031027025887745028361341043478849994842474143883216275693400520673682826533876826968206155240964481769882045215178040418065752611812571622107684594592154047479764129254909627209771701228867127033910981221129248446485748835228399819761948554520071853599481749117464953897177422627602908422185898851162037192615078024462460836711050646565946619701727949736467531089272309975175565014311903134064698552144941320891934279451643590339726815438851103731258427630931288910937686911897310860014637560995209616295750841767453754892698691420737190143993166170721009612347579618442566078978845636474728434026229461915806393356361731363320517927430726546877157526666979320966917867640598509264067133439780783281927371147233930936198373201334604563757379921973489096308558684910239989670965713038001240629196159037631880893819996498999348198483115392663082081742531856941527339194431482497614880122537214960193453509452507885382496259569682290935820843261255274378565791514330903626866819199992343829250489377384089155560272303814241922820869101109865493891415430516372467153970844816339428658732572577106094445083791203826218412470736716549528682639736196812760753164499196434822699171283457731878615634235758588356271937799991113996828578249022238567892023954671354916213496898883753539366014932740669969684721408398914495065662502000855129628202183425041917896089972378067836372282016837246918498588517640298861281744949254550289857750183380288072438699178650511920117797778084357474239785849662122939898769067907900262454533006058372668530788196354205277908076481562469621430238791544751626070891644308238011540574896885457760130024912138797322933319823044195899718948320826744481384170830670362347756519005794914158704516742782760196585183664754500236448568602989539241249145028314115568384894702397777313128052477564828493995414954717080527274478254019240061475783665086420344811869819405683786659505943216276260071702522427618344000585660693899721331680288808250755544792157234347795937652316889288635680949979147842480047293031697504044218231988574855937849660573993264572477233651213147653887717669328505527670721457216937296683518527811446713159384498475068247025978381271241427228868201123876462865385071293037022630649093500388567845969316327710571459248458106204351780986139649678308450995256630244386782888665794464931677755568405886610881182529854074752924547837692496074281465449774342943125610498978894768541044963515012736473490208412198849240689226484744466867063636830819088382143175476954367410148147786908575997387899428968722421216151233703513298176626439930245802399732388085069651725160968589347239769634952742247528960277368126308845772371110494620006509296612533167068428839761760854214951584701832884858603398388850324562200852391557471498192840378129564332527204161754672614628788649960074308658584239952781130221499121190756640400044207164024057216332121125959271418788348836492276823950023466347937251265769355374985855691523772713300921382046874253146785179492473253625925593619215002632803116711338982889998025522272349705677808685964721324719289089980568957363929528605129554798264490603618868832902109383041735821422796319901369457720320569942830652218718496069164586047220975418961308809491655364477323424500025306786674654548826313018852581861846879742537043447959719029628703900572020132488932763765175726740856291112651976772203992956099043680570275288288491794995804770922797949470837681737404190784882557220469417650343817438569396113429606553324524378559788450928737561710545917628241285493558643869610251082322146604176429876229897239765562144743373071117327677875942415696453100737675094105867746178119694107735062025274677633323884616495648941620165857420714943071466891133018758834596137848475125283880526773885409501442979926553213888405305641499030985940976236955822184754378130041777202727038351895816492312560911459631298259039599888005385087133834682259856111462858367091767259317982509364700906270752722681042200044265533663977468538206244489283563107977752380251273236098026929328780795741951256584564083268758912408015514884556318309527362832681332029958098905013346330556919226262986725665562491591525827113567118710267485950450412611262487091751760653214146856454745090028401192974495093401074533671319466824746074831671634513919466730759006143174933326890196542451166166224389283025846648964076251009420880825869328733656389779850351765661668797557981227311081997102280481244783772590259792055624267658189252665017688611037076316493067720680463992230247872842102450104653622035888978590350268080985785380432270953942015317673396026753815133599505983212402579145408498263480209832542244970450993766392020582453719180546448912747351526590556547821030236378788443785182915667674447497840031814796688477320199194332682327967470617605861949197806935908016778870824176165802793379962645818618175022736229658402066551144931043153046014106458372078230585630644381159255529833792740680027662178105730453061061307564502593402534964004308380266972495256340330682473517529775350873361972827828329687722167152671727931960137233405926262899734617671636118000257551579955120946168688626234702426175319741194208299529014081308370986039801379228404944601870477921299196187341724880628041109772597111222841699615694257160055186321162595111674464203810390042827591667935814638593198073443944278576299078407569166058073843544399833591225077731939620134855912529436352186825426224800496381965369313611065561870941037367966326003351258565244720208356478208213785063763706265736608671199443907348112430974106264817407890372619627571504600418045139902943084978084364982075691227901853228475863914254073246598536438487094148249548397297078536912018648649134905454374071181868524854169849601230018833856138713075900851173062419921688509939451892390489789176282558272693856026648055788801795841318507302788306448662457751592928526089798947311149085434447198590732267973219275746824879869032192391130040158606979858680890933990750236967724878004774609953671093489844751631844576229652000629781576082489132307780386047284391224788785509958694880659876425191053142533470392448652362383309188441301742061765512865396375238822432082425469098243532144560093151554486211522856215906477926232886226117031598994260729332800757497006795357669642251379248253439152244232105600375431846546047849520014267102575470559981345598793942555499708765106456585631054266791913086812185234593919408699849875855849447283054924617245246254187627417795800437234488378541388778367441776178219395742356408087401440139285362149307216071961768389502421309211739780960095983620487274924202268304582134918779822655316112946272166545893028636795882531093694327460706757475864515047023013922833211067060909596861435509482744776267494746096193614765209991215919618066427481715234024229051632441625145500238000994251282092949595300639916866158427083083836375948389805440769715538786128950014127688294133789719459549803898090104388118492516279045974639274774574206215276950748420397963334757671659430119455279435243701280771493984223853218427472911748330753814542245747445092590192146199465693635526716131317544542802990541388862452317435988481689749891575758369551501049449221583792997742765893387077268470314502221580367604706350771882873516195795048546043096937631409512072829152056342778818372986361199228475934591075349772944929246487741536714349898442255190387558588916960721002208742860404708612296256328228795153857499402943657087266722091941053087268138171566196078745827052391371157437301037987522030405256490137806110235411149600506473571372659018857685398237359237635508423265109340847556644538427389288871277492534422602925592644184313165390271033643413904839599534491267547785837648423899823980178027960944832549948273390604244769669636726141117103311547710339750696450711954541212646335173028728701456288033570125237331507841828017598567774532660258242011904952741829104472718935151382975210574633194315028456860029302031981357078559814919864778314375339505763977902241346142243620961394069548366063007822849384431211605743838264202750666888136819305389376443676957209698242312020662103162988003419684771054110419696134535868924781062174026227603535399986992993597184831336887124507703479275463903274174396185912818332854550292823933867199830389860388910518156159709392427741070780881685239380705912503355873897517711707196076884411004417566463634661755159378950460367979590485510016696194026802819223369689909593216329962607217327582925779729454785636029007566994563092314456367390875666745864420607396566341595046094372570122648736056242348399506982480310491431660283177896338270361822657214289138841940644492121572403928792287812331492489617991319503032075738331083552277048133400321588571723666731519448916109917609204415095149611404523505752613420682908781585914033989281704228409958145067966229567559749335399926734635369776824752237603764108456361533509165952795009384167105291257698099526001504380764320720694132106710213705368323838807925845376561518810478606175143877204934405496733753962408675859653246983926514766446922046034556694751785497523753006332485032048533747355882881113760475654735971593377003487191769589670285418104456983985836743155790205631816278821713396669874860714206294510200683729564899014953331105258706049536879746710979347517267770931011729438284174988859662423648250348410733893097777227895812734011355799471890146166660305867374820195225145318037269271845258183292145289860591166851987469197591458430817442614595279135246679200835259310860266359192641560069588009430245188420076293182513456186675249760344566568685599711199603962358128041830479710112200593275688696047334074530781243055513174760366770461669007344197651588365608357023174751638181099163470694694758093031848830087383926480240614839978894637933646805429029580927487901925991944464231549477521745149490155355972745995185077327898186616894949873349582399556605622436311181973889823256801000288363441540379442047128288549386635110333511676124724975868494447814129832766503586848721682238378563179491772288070589506512920681114527341014671151447280362731182070467872825550533675447717530774913259049553062717605599048611060988073027753341886316144899935975943200738377056974692082768289691512412454387219218495362373334980909545644941733069361686208069257231928170824281582571530524071099491926674058024090115700402702767743232198608041193107153074462448614235390015390993530727697683381162049673683115357337920978319575124028808789927384052138612436138890686390922088846601627474737961055560926235017517669309062568703556680281591114917187561227796150578673613230362218615114743716936975587205694793811326329753837555522691942782950486838720214001939099903915456695055841365932239752164931074968005169941375919947352362569638626235482321689697671306158165113036807924752931616720105736683320754084573384549418336021433656237137132916493299688746781701467871632314185693003324708802766957668649406219248183976321440820946995297945595857334911551747454694924040373030515235324517043930227788084814087594129832915008975906439447870265105321973305171186180009888233485280534626658271134025644782114502582909560034599000545139582595407028552918230372633753603034839654224252422945207816158480098742939445176235481196924768126034855891130358761116049641073970536909850464065983664413793291121651750150815621640707433804063943517055309255406189214355744860982292114908900217595803803626930460461111550122077215854284871119476144662506279317608196072683835380060194473570915650963807643416288315324279765063146953711062350769694474411372561480924425031111279759004579209364241457064817003862436233847780401230577342708228487133448202503748438733754217071204905405110987827989618935355993656064124994845408976759610830588487625107129272015604095929531024862686978401663463970334945052481087824734538103403477924395932047778317014294113025922339668919108283826406548070182004412590675536976960139990157737121872792568834231117247407477108061438720461503361589854307167815763812402443321854470384958255541581328562129740923413482536850213632787484985864116213656029728280334565285952411975144794850610960898478647313330245084217615452612030848005209306941684283556698433026682383466744415845057535879746932166525868308802438774632555597724536780298745507132239806781518831846097434879065435323069515660214323346888774753904310592478659396117733209340512839279310752054024342553035461532907050679287691781709135550442969330180049229810718015154671168321386037443136834992286271869929594706323681817534100922114166699492509922817488895935106505849074710987738515820907785267457386251769269489188425399317474056927783055334705759629559508854869071633487251989477997286835964545460415969689494518937288355416039024417262569278002138192498765500059366947343533310107127733961171322758235749793163315857490286045156464104090994094978822182848919731504780482532284260748281094475873257088911094241723568825098554324914391282694240262787593926633304951912711678558193636318701976848205212858796516593412902421090478793726028903012799407160019471002888249869459998024239505445989652507812648870779596946875625709395957227275120356225853832577663048372239485254892635572673214352496352460709151288862678660857642820536017306516395442739498187764838385322374790468783321226330640591941160707873864595781827950248642071135686847599316926329003967908592125917824680216604387326749843850259697261598590521926253303698160316197459188228341748300434127141835775400133793228724607881685898715221960033219571652950271080167008981111359036503203666230443489058836625870315627278303027848084795731891280571765094794983701563659173684267696224952883337613972786998049464182028529526592359397355019657513462047019138771617628203233715197892762990515836810929370020197016390577907817998068544859453259880234078051683208395253482906711629713111188475632575000161342895408889921716758859424124466993477536454101445607559871167812523600353534536032850845295440139922996731948144125620346504777601371220466838231740042621871484965527306485647649855428558472485307010959478692083435492460842204661214584055251511334222733771010356467555962325968369143695842485324080848563222838827541893306601239997202568041854192445790743115345688346903454158234226451802385711903822234343452892810515620571775636326021975791555837539251597755002942689268721867532411272842316534589636728255835375596591621682059596066708551089089820090300128508084184839760150848935253441522248723788004892315198175606387399300117625296982161507103166726260988445301320147634584113665473654787227087590295553226824892690004504459500840316940311963912522224453342573008040820083654624884954815329133861632887568574768748628291981593337747788684355844137262164866048654147790669326430184011617749801085166847305716001375884530585275312699734725759026028356123741360112537214501419945436044000862593237891645197001949705154378067248756980960300436502085558901986773481245387043390227141573453640536876626742258749172153881861730678018442097685800998481028486527995887158735045993376314076571075729709513344358084860476509496883615086228022419977537528575548233113978909181038873902069103788909413963885733079471329426987022062882665810554025389501772607931080150388357120890611376358987469986287998726401480594361840449416597515018364185064563807981594811575005987108155439135260799453304068580536683549048833132177218415369999478225801499675695615968651997877140113048241451643478538402843709057321664570355370150813580547720118385012424087723139408144660713786556759291460472503479029524517073319251000626161782870626444545388386837615561432488807951641115258724897809409254132986446220820953466355071275122447310752774534073478251794648758515323277115219310593321628227735334926541580634412007981702507102262666726449862330819012064305210290271868652667615390097551548596841660249539705928429987368751373775021579272237518369807648022043582635905622826741693721966171494816241105172758839017260746496907496248936936145730367124851906367385905902637599028650347808896285915255462432185288950831875358534721359761185083915306891102861288406300357196881946015693410900712434536856280448233646507812789088700063791033562279948889171950366435898017000827571178940381338113860720810124544911770977701709931780111469508342085471931023220935712504368905958012191389200880659270070914974676411780429718807028805516393365543657750837472376004850587697947385554304558247119911049645011221267078323313577740822988469193331548832368379439780792475330055621979934888663201080283845583369251899430568722945841434449924674872332476484791165899013275915361196744486409066807867006063996995221999787845474504763787826702659616992371704056928530098276586663433754834009318930828609502523038225127962998095756547526407105908136071684504777617542341332122527252174555609850279475855591894874238499610942931880380866429017777993098158142051422166507381800235746843743419115328736639225130400437467336336532040429498034699549464061080021567028346948067829561433826743374273984457202732426916061993156026257092615500509544736947196579785250227549169772847345458444604749257837319368010149415693052733393573220108039879296414539858681004159558953731484745987555597668868050735323340032849316355125831145696981972710344926171131295007930749430157032288352919789292004824329727797362005720732066287898519428402081551357599959213894552842120418348065129269424379176355698960539053184419702313428584388372026532059799028886479256513245401400413408308884578836988877454829712585512240333422931610693590379586638120515962322076658301222731154919955427659975441417971581046831852314957754427528107178382395217676796669767020823108039118229399088330470769812229159875741323433005315489100556635294845920121438032753653013197574488757575013258022050340642636760952767920298365470958896357534384986681785322112381224507001680449546023739844804316387393334384056852312326386913467717916265464011338529017169018783287723037180248220436608084031506857944544375673684749010925209967532962935286536196123084116054569595393993889731102689045382422458894364517803739641930213033843833634328528186147014918655824730118421823804407574292240599595652937829191935915113784103781529449278582410595904445244224977168491401516734095401783121393562817163475685644584518643884347956193107069906994873588705256020810789453020965008544981275944715679547420913410027804598106062847597116374914042845154929830968971211810682810292030918815445154778331521311516984991356734705339857631390516588438990023322119232286252566391310371326867712441655785251206053171392363869890588338334734590038652342845489608064058259703694718740073598608256399415291207612581493383457891750319674469827963514639893637526383753826103501650130379120280577534542881886143889989684832483694361133071760902570085237843451047848600589231344805680254859155557495259317082245968226615805893892644251993580652895205616293292684213246359583310882186481181106583079379630072524662103239971614372601735840779357703810870986365476232160115038684487939307934080796804765288398591140725274079469452034840652493293302609349826581015233125105588718070978351412941569517599105056596863618477867415689161716554290717544345768551632834128360934538979380339771946856669235691242580123913017759927789467222172526285374577905169127273462539410973887593685565644555236402027577532815750167974433334782686777357114771415990217498874913641181983089964960916636681697982313798343373934626547323732616177715079879887516371941268695273558515800554276931134621076147944287689643742227502039326661800562573835829388947127256520176098870456908074432155407756086763627950486371144812037523489187134164342880501738748352310498637062892087104385751400204627823150563171595400045269388263308311464160230775837773071315917733793403035815538005169538993299763340126215481857579734350238659184499188989065376732793119751740715398000974018451768910811387041651297955366889783963508233969477512959865811363795826871818966510344273872043181612846709439630795449055097174742014439979712204759343884448753471578484815713149647429662577749350079213742479868680828782310571078306658877721197433605010067332176906416418517477623539980877527891653816237325599637652022535513761127620167038917537825081647250918687240645501648688841109143356563091244369030682876685219322932113288500410898845037996025949408077138142964306913187501380701337473267086546108652107436578008446391771984234099303051113995208689044808936482739810886579598894240026118753254286387340469394465047668652547890606739928471741079896182810868833673239916988100731311202744268591875709580853308962113408438581612695116535017033758435442549345537504460274639023573824157362453291348162120642320330816602616950661854368126237977662539830204231979367480707055753716042428369736684541234193221622100723405610694072135852132940417500539867125555084350769954291490463098318039734096072644678185047074171670464458186862923524183936046210207154069872440795143198844771587613138984611462805473488361064535838345068806504034404394140051668347420879718312424166573992936470544804614869189288163501354340249791869336088772447674706668677223820776788510771635165330015721448599594444768138210571016510346193248824021970586404937987543847668590160397024983428704727972314170847902886728534756529873626840459445890233721467376667598631781010633694645324523623404094054696598595986521150346038155443943127899119245692129990562857086695363377566351836397607875282878250969585427802353775332139762127503562849301236627791862116045210517892335639149187585815979457751897484884061348957394171388435982687244162755862733680701296625237170605527879034979324570535049969673653366368076026241129458844157877554091812733542655982556133575106796979848611303104337911205335764325290677634933637433786904346539580474769159986859802332699012562413953042624029617802982204258022497808396833876514164671310537798875118357160238325849721996168155546911398636223374266678235536883245817698547356996403733743438667034801811435736913983980236616432133658428231580229370123721646752295716558528928866029423874819729174822910439130980504837128902239038482918370979533788099251209426176714288701715494393699270067719158328475684595523897025152304988680517216551376113430395890535847258561039114855515698659954710277000431718578887887427982844968263241398067872167039732138839092557853646484797695835714336871800732048820090663853123196173990198790472126796623652498799274629750382337046406642073347486835715451253158364431980097668632190600407071005255436924813639582639093577777965706451565412277499747823105317126865480069345779342532313691973794240133940636257434353771457355386466511897952655207994400728194015554722078919557567765260417508158957089974180239592236899944141262347504279436923645921849746268766090019506070060829664156331286099357227487235517872977072882385981594052006827529713764802249294782741724967074204939057165787554110616688580006233614354912814266721904960123390536467902622322438153978682127628597191002511726503943541867578083083980144185983312716864512406549928373763622258738364655332718854772409953989271987329085327415668912032829816398799212569566476874338395345680789775551758285106055100144398179702887543048273459220802685692692512471715994768837887697944366529515214779441310310203396016165888311903563295103453311417807033924770313900667861848426126023144722552423960245241693680098161915907293636616248024833829995031109972106982926128230823941490931675668340478753231663753576042261658995545031894612753577042834477173718759672468193880168755769755506557316090113086459518501275520912156325288485555931272522589250689058364109095764542586501153343236130287506404803651332654516328089131915420050741319748415807747923339741303658624806377542164194740148052557792921025359027320914379469206197739380653332798582789289902824385880734687603162689971192714283139119786538576170251390695766636653093428735980602823844911599322644777761346698583546650314740721075775942248526992463070188286325436582462711694091256607759367215009568821741359502569580135342306956419988186849306126874058297432775969544503125483174012941194040156173532461099956058236477645689730872535038692756627159249156721918024482278926625332156912808341468753718486281175129056730234341505720402770110973775597399635756924449480922544147225130281295533167280063323586006141374036063906367059820852007217491847973047452276633847312617415940249696512373688830985472241112001069937419870692350322698779927603967260376289131413740628303986180655024614171795990686326245721854698187719005451474946472174101862776095202599600506897300401039502582241092301492783221135750225082170646799065118911240567265084687935535051431107280426553068853086458666412702324126934154447439323511839151844503733393394087582371961275704091748670785265509449823365201846002678661680669797815517533768351650554319363658021292181445392366319520882657242866771038070191421025804513769777570356769325645235739587412574241730307493921496947364035471522242030836092382796094301898566016690835784530990895440267267690972288617303779640091686066584563433313376183739419217808025722823518920057999875512280413727231101866580986919726587173163712252693019236656501072306945022436564820176624850371049137614763972573992675241827613191111779949053057352439957248122213399675871177384384846461331700043215859694691271070332109118000778889710063743326219319314262298176997015129677350175636948680037878503987129428436689267934412890120722574677596949073844697466860236914476181761816167247218269448571199042430753955436876316417243845487230772104341730336736432696899318668097000540500812560166844893650716308662659148607859673752866917562618057131143720301648798258633452046851257244110745160945537658109412672708760180895925026411481605631775484944000472917655928541121941655096862312170533967689848288715700447502381628285717155015910586195422809559763290854677767087522820162942617811661353013168784052761245872246532253583030927317492063282235486656265941076567622205049767124548777261121087516247883472432882242310274258405236818353301849479242237332175913397540988718124914277581840727515300030294970461892624718100231059187065463407764256884022975853706901137570205892904047140553063237174693956837578302894731181706199239345652718250527442995546145022702350009227877674871391649850933012350373197907607950338400625927800552365449309613907854305038506365641832899836009723487110174513142324230796061698743369292213111142868601787609463340857937023619010043587746619992084206513702513741872771257558118732736619350259286445610274358229733644117733146867387387152429525387015635213187349882509490981155404808981013634956781271595667078039311989063685312925044067695446418678468933994261285290414577345195117441137845445452078575260834883943988527166952982858342719385596729238866339302569653716557913558554839352094541420213188862428027123984548780897241676981012832482553344644248762443386448296447065568304506709745731791076258293219393379208743282658499168561855410539178523898915661607480056612066359781672601271968857520706487175226845407217392078606653874998829515507644627020850359661216661715222368698016889266106758104834783707908374236160634754996320576112038779774147423667549712693261430665134117693792514413301531696994119693135593365889010123727936437879129959912699862503361144531087366210722826099260562200572675226942255801191486116023362675667850792745557803895122216637725558732002072914619729386055899132505823635055955373226424359950696927013853184509113991132284042777121783869873983634979771615680335041828385182341391075198304759044946275077326030844150724282921410419045314552542191491161955602464022571304557393456553811474435926887612436211097050729920107597500694561775623494107129828107759938255360229640392059269589956003712138109586714514443702882559482283894609717685545530379156993365271746819566965126500337050919574543933994144430052371727740743629434996251308644542374667074042145558287588225118758670643871170059599101713018699296017926512077569497556871411371215169742450636729575548157393686333749726618733301054208447309779506004315199341460777222776060239162743596444928777541905902203372097989194381694279979702219744071490312789845749692506955864033797211640815163451568475302315228235753073293756595009060341416494480491490741287918954596467057676302663134848394451003497531968349426099583506955356639792426111026285091902415591926446927023939752213522454083926573019389093189260346061563991072370358850478466675344783817919113428852175150283634374254980645593376133787485524282094582112225138253074706324315176649636467032992426171500852337976862064834352131096571345879837806232383616215755550313000257675225931156499315030605799994482542397991059080981668229510733053004384790955172489348281734474537096455105188639305819945348037221283021533088739267864692590269135918480949335802708717551000047735424975686211613419807089678559750214646415355466935548782741565452339796265283872323675099179555467133209433747134411827087396348385069452870203576311866988107795338048280310802001497886972126582205472996284218286470434655279969330990654308136229482673384124162167455283943208028222927952777977375959038787861557802590455627420786773204844078687389821889251368671904085779773845952544924884243406707871228577706882420967642270890421864797499293651420060216310193684131542043635189422210076179022563162641526060723251246095727351494699860158528901148425416108214710575568628849273605310609774648397162086452673795294890067251735056304304431246799054359185355209334299601561396918440253255928667695331671340636990393059245765810397642845070566980273920413019120346475114181674366519917713150830516467412042891642929255384312161688568547067345850871952211833460994263221071595101956788281210412835719046478330665619156756034921013189881615582960586760824179943846448030877451028124112843075496217802015916222835089311312813133194672360231871834484143000310594845086001978461528860731438476266333714766756009303887667087868172538361095418287872231802345069151077684129584554179152834566429354443044233939576242559578877388343442237399304652266326615429816145548065752639865381024930050306984192116825138930095375331485935500411608413162541311956739085960149001593846682166925975653624555254417147348115718920938295062949683253453970535459937382102873585715343131080336984284918117158217629566887200459540213011450693530122254009177413246330107912788428925477742470683013195201592548854023312907472138469480209799014601337492816299808373928782559894319310820734256868501638507413843279331118210931618980657561152214353442642180496559920414126265516880964890098833823321551440058882609308155128673555846723073127341693527835429145372430029943858132986680172868265262222134717066327622119490573050190586208594084686639516770785266017039428360369709591432611695474045739301380003942274698777942620485068088527944689398246883565157016585900177785841250562147010952933718142747335384692282288282070836216584167102088815378986903968546005546886276229051226134439976015752418478598089061738565877656140109281390413476853312405909190719783509120408487694526996061371225502426362597236349633636112387001158968741151653264419123799760881441190703914432785668327183171015035881326911744794054887555138226806564121455385887260276339193653787845433293442251122990716374627363374672430591922512311182121953243010689599565903882559941009515788712922669538668032254819173687048257661338262832190531433036164649531013291682429959135181112023541415440842648442556594500844093825435122497987932677381310799507579636665210667241723990795435570330411238248118615464185691178597930178818576015268359270245051978897507945883346167419407377956668355699377530842088643490558713746573798049263934035643037468411238086777029764110792502222789045697424105060786357685741511989407714304369380002293213085956153678633753179554770016130099875581846741945534772677490243866523601787344466268114329021149798665667770413242482309503711460236101876732886269464323692056759665895443397119980211317981606783099005589946727633105413647037927421881606043024154541658172191699490009001803419284838858022784761084019406847809257908299563629915693986313304108431911846876043974572124274417274095767767861559732975715648289914382954111077697140838957811813055962284615181393510976239750906380562108167453103793270435716351580322636899432685681063381386479817318226935003672974196199623341994082254246917566390718036834621007660606112682482574828025266826399967233686815396158313370109979325641153167963685572832473751001346968455838688591920823432137320759042113888651528826548216696696779244604709361679349994026532217153932935419634001006327940436998907298902537037922528019689447921077860328443173199321161624243114875562914662240207199513872430406072248638304827524173940698395120017566684797491502600492573110558182136128998645299957746645744397936565772706372059341490442446350105736610553584949558364247837088497505223401143117494690029061783791351538755157892413345972936382900429130507487122017620061736583422569640805984632444536554889037908049436230641034845400187390775043968875350036471381961498329955919681006218322957560591415596632357576272102628012712803984940766201639946532288524249269002726916849893761706353893404933125518705709825903128235559690733738681725430011210930186493787827676301570290331632271477704643560166169206165564571715808895360459090175938515532190943337202025113678009665039941700315211979457891161131889815824069194822955584953549493857915165229065215199974171481303577445764378719229355241809352106462447926537693049722907902922412022006194800778656290723234040688002849843400094008586594033549441076727686017924412437817348505967132635244157688248627361860387690076170909282740775088403031209527865888974326324825743957983350760257857552626738100932125606999902178908092592411323900724313359702953292180118471953921757973973307486051067388367458332960821593486934352167408766563429757111652205785601314150802367600700024904328755377166965788473800671955909114253813311296485252188633923345179464951413167206445239792468725389707430445707798605582580060272343064427539460681261009269762807937937377942346953599728532032671624440736351707068463710171420255435469687253623119692267646734348106904370544380126641287489315332602721426868109064986569483028681909906827199874098292810261990902861371184288201784177681935609462311034229220429215480254772002597722002621189645031029028609339094249441670652588299071522158938733854709144313549576987335723543760981271160859795433893726236908280075993452914377567147002832603099052826707638811828788344156822326492087118801232923516640889650856504396537135471591058792310982733223994430797028128948660429363648723825469705015726551151112319675163170386747835212365218181193386466393788461271454693984802852435345564801285431588756666407440677982110642432568575296092198140308825653702831196443388691240246164777302367823431886228460494150762685169237805764913444370728939489107725735205485468351230142782235792071242672391863820483869441950007272991956708452160343991577543824991385097100348199299300994750570998557730538335281547285616790259174234905734658291855230214698870190713423615226376719083344485673757262477350181065997139907338559941718058382862114709718222907023089661104352391411362309722942742383375342266282053617408387469014188581935100848605040997492642597136143550809262435048631814379146441570956706937660911777743236897761666191270203329341120422129679832644790659243352948953111235203188079207325355016350008077410468986903524078879531951744422593520547814879640312134359657192862463982113908822280310357793817517300055091531367518122323257720561143772287924287746170218388996512018837609384540130706551457475511065460473382373330191722468609756349052700588176611061294197065804236435429527050114828527377813562713765218332371047504626699466285717694053955299400440402004500610196759060933777744155131060618079897183371526950478837697298590523815981773350582341879705049707997911107175510582925030326868675105606026350786760694962655017848508865293158839289099517624014980396389402973620333090697042255229629184786013721241941098481725422823786916250572524251253547998028388856372326644464852054624163881507313083511783384052558757527620032770634613155484356530254629343511507568760730111307077439219251144916462743182507745732193701374032951440412381402060376952663202896120770053249159070734422604598369354253743052279553060269340746426880178880655523142099102752423133777582613060826820175000774576567729408237100848177223336348939759551083614218010534327390699632290824499286910468144492672527291398762192444385327681616231496027387205462429347205240541134751252365761760597957136827815738220774772450116298393223115168641092133340046600635012816813724976516718906719789344653073809187380717970208639570393069022149512519841857854087379595813401986142401010415195099277507675498818439825619328117387629040927981663129350318281555121316016375836901901311956351294860389281776788217085299280351851571726716295697194822760010831055262907342893663219496861262176609393018372198494301654940343353072909283837842735607631994396997878570880342941044372352175529868531066027989695033656652506550092968650424061931125198575956184610507059072148994471061574544443868429637660493659690845674651613512619433873403047804861707012254909479677150517046304435564910863668904929271325726372238280950032120541494484041737965796493147179274108133650443126268339098133995768832291908179122987367488301993783169601714645519587401784973296113564136204455505552016913355718946059026086656985025841330040674506250372114441373015727624024890529071168562862670605191993278986279510161530758758640917205745635357423363391444755945356553102849762132830980897855844715417358629401497892925111745661862071975967366109894568208423680116651464868820490488664127037682456351352961120835647522447427933144224150500818791915315034800795221828014189048016675088329438187996426577738009973684262457482391478302786632966381643387732299174144242259533286893114728387126335216427116676344901982600006905161804525305104220823642965418657765437582207679623394135777176402511081539841160259236814872481347578320150163984852213459797497917721985865867496368953694931862568482960204522878512890822942880512929057302667109375405972828827793291192803806881777359963862828717005523509458751808603814122633842731026776682503645676394159743115243413069965423096799820347402446237629565125402167299867650204039606143455188573098448288467307381961650505075725713595873671044278171178388792944984887482787572489129436302827906035870547409643827786168103607300157241977919920115389042360626240425240659193152508670696541122292482348829594698112543312880580354481259902071413574580564918094605236404691782301774925860920687330832879008971133199792903821862484293049430908055963195665656503820817195501483697064666201498761257053590650287065169361868319801578969209955518708205925647928823615304926608348472580228406365495266168409876454367244780484859139069116850986968417438343488885952257109458614951013931449979913233137197423405941493766791891192974503238598615230996381269166196974803754019297166539711538394058284844170096490246958611143431311188720123466226331614980105107013408678237821324908621160269127828997688254872054797353131341195069715288638830648983208017845608699472802503441304378279379782376896123406100660201229977931982878484892246099161419774555104518100916829979563040383797029815777564624848819563663758149682664350444118954447520174913611997111337223199336233230400627012168108973411445744595425156800366031206371776908588254763696761019163935978938016271716226588908036929031225202067423061042449692980465347420480529373026845895689599719386098691245557155823468606971700394549331007932883098564090845614237283034997320591972161790618614246278632568592002311911495552442478465627693396353391846542410684033351980463948837559126663017086386542245515712394231080631267564750048633367543062382054801219960316272888261564220978112614142147213595011613077717990449604694172606307131302953822293887816363271943127731190336242390074296848405754839106556917891387402408393793142817259824987042371335202246614900159294973974591268298691483211411565818346198773915867123577181334744638964280923436694572216440471015250525159964597855779813923999459557713653102277913203434255464788260426274208264055975292764011278697003401000440941198330464021837852503940429130523594121687788629458122726085336106636541007460296467393160655815401444394230476938220500520972100413125346474406275908907416663893015938919882477244327713641675118030855096645754463462704232286631903954698495007000271926790952934015174326832818230456658826765992681959457050752887814644330694797171692302505124950832910631356119124108533421258817442923664107879177804231974963574996522265098509621291146814995626074589683144738372039969356966421582207111728676464002173208169467139549063368281666106867668261746887562478419079824751674088597001441235035362095231105046807351974485839356701380474467495351988734015695264107499587282057125752216022627731471266243324715226072298280775754014297142166993049388950869389833654410515402648872035431324903482650982518991504236266281440597320399777629820466248643289591577530064755453989107126088715146280199213102995880632382510108788858262177784137988588264706593519270929134677819559587269199499246500085617329381371097296769628599873458353219811868947461960073877146760482719459730702611298391066549151982155282887841207411349554609374408389421020973992116427690444302087766368185330232414977178514556388576496717742943003547173857080547800286819928005769927199507035913854102952997794021652957278891286617067831323958012913000051834297492293576450014988292243603486954994125734680681671108134355794958624281455937789056460332284473870948874418703791536240727973887776682523952538786144058653627735444481635100341059095362903847951099810554471196935220770474843970046282156382064500451769386813591109309961115629816290926894927266736634614056244579501026944804560602584777904954900736978597506362971571833705246566529704954618414616692278606246287109819432856889488528419933953487836287079100861855117791229688269498741419132009025009422265864543548858452990158290344998308838257395811147909050551977490883749197117458853146433034994454466313911689471386765083639958072155547410696126685927790750007797295629334567832843998691351025056319659778647943673323516488566342266365597844671699598209384433705460762527015316716423524073099627241866923528467561173373630936827846558281236600570490375053918487193719057469264985107028364454592154777399898379389047894231609702459497204787159562280026217192378280905236511634177549854754229893061061349301839396291104990074139051927550223929173223863002134698631734766640596205435493798326878347650447665934798859647060196382861524675827906563942820413155993056777619163600348586278384195242150788261246793444348627966232732957401599033617858618765464125755304948644412629232673998794363862353135482345493294813590945138021872081452949078028820328460744611890205056480485734869821351992353603995190594424526877282408415170599837949079608968129152725150266096384570780898681836220072950234071244356481289637624851548599231939439761192468359419484107957591984159594851503012145759054018467956673698261981750660023532661684088169943022449437755778601772252152693566539046894991861852973646640530062851239504573297812749659510232272644795541270254578341567019702551616279765176917861139869031706365867047698982700021762671753644733569857090120971201187229078965835477455167925217674093136227389383165682684264090690424219383782074410128038922025513682602726011922693133917132534155522193435389391871018447888112504008079378698925176284744500795932282363223918833855913279419203514059423391354079258081720733957141148104717178624919910674615429387091523859849182262643896088688588754216995350599356932378173914327343775124353430427089159350324287752161403819620852082118523441583913367226336414025766686992267713026103185232484567020737145442912102545898332335770788602215104767201562500144195255676581599155581554536419982072248244082732174455083458692935316304194890559926699309437393817904134005499526401634705384039561558638878628586908446481514237833986538187490740641185813161122504031538387985870640002187610576317040397238186364857165571787545829092101238575652069435555652858872123728040083061016843324331890252197004059431454087852226074324487836115511976533463879968468913722461671037162687477205805591816181735787986404149825752585442568792899728979706926502405120981080266657397242012249103064960146889415133702298591262946447685115737071093261549186874776746155508124620444611211148262088484125237578667911601813060127025119316951508031530689577870967516206645471896892934428436616262540803854250985371654435964355128408108684835239630264400592307754122124155294644934615893568966658167329590765240401482340169055951020795148525782819557953071015430780912162882826661437406779871919897120864527941552135325288856782034223353615491855839174487294783781619457865188838138370450905240790466959263946410543537999003080960546990248537988604314461370250498578103784473197576644800011185682339491372488674643091373840693713078681802656902713003566347114653404012372683331627751174397911756580108265652611479821707104363392284206673538492930789357369464986433614804851918667245859207702899778220388917352602761009471004746524040771802726414699843862565357149147242347367517128742923480083909023382342228767065616419035384316951108959723509220999108734452742800263351861680656794336735431165860935175653455340386140817900129784055937896215227113465469023390672209308318567334864369701745326646869646388648564744743976624640829351189368599449231277072029914930787610184190591511746508301950489660711243252046985702277209163097949240917201088220618419978895888998927447222229914962277322028041335857227530994746215757599385128677832449824836200086172650441083248986796426892788896349382909367613049020833892725829502340705301797382385497449300586456640357046569738424632554436928376797173047475788575087724919354933929929903818266650299170478153374589338115275835569110374427586248159848481696357355649417976545301959134213218589805099525131079765611666946861043843746681435047983972578498524076788840428778039662020541068009305179048699829707996796810681385049829912006607614255674305029513368143589516838689716849920909168796742006355326223135683629491735898701898930186535766373833107421490195266512116992696890808223135429409809027076739609884708937262473677138843033554223067049407510935512321962256975518878026365386445490482641244959446350238391491357398964205645447369557469655297441637866965659695634189167385552134428763616465905336996883183704993183570390805881479266904469401628723988469175253642328677285589241835387596856600753799006718240206217411596424155681355911579049932485483100549705866932734390243803579077929838483672584903620564095489654002413976632767542901025124812617219810616923005705728885083120593492091853903171359845955780937093421180388993751575427354792209069394481314652736711974491814525262049809584925213085075700271485570304886509387845921585157242422723702504156500555098153449322805028030852260036074500801859695663572909602776437429993654244502675316556781044026032757847928915362354712499307291860721730640605349327815519585656007577107801655552960102463145070023971664364941373508778120632647254176057136961791470726490132633313177848213623486920832830405451871649913170846723988741046777316718923530646539811192026418780832208275123277257267673605827783996249600677008324154088608045319875645305841916326579821574467983112408662956814814679285466682313893366996644145904026298704459926286802187482662244182860635593957686972555873451884479446309699201500153637357763187580974080810933984284354088346288642796456561664119926299832714661090200475133993025981716780611617745750832961715906857333072436271808345218590940159146354542814341828132614288576496116414434060515517765844474949878330913700566823555548700139854538335392527504132685006729160978210999422559242858853816690086728088834814902369019064168410360323086319423875443409246561542190673197685440056482953218471490473598408900180899056049737388173965616845316753561497810098396248337967532578397107292660265265544210628492860235343096321750116988898103001815279838539948696988252289520879843496484276386305346566163896679811499670426871634725494273528770185597207308041710819858907801564466520855499975658705454246244901775275083668183129716148029925620822160157268795989550589305093132493090972585452822283073645786858231783097142305281136180238504942183355570702098855598158620479992437154120669457185462781747610430734346642218906517536231510328486609434849970840699133547427664439643145013460637256582419448596365300105723506440329878085563746621542230615255184645199897476164721655092280449316546970784489248604560816502305927003578858397248938177893707780279421805031546633125996772448971457612262524637647111823271680371542565904566042839356526221655287119661201919159658677399171600333528218286947636226372211264674225719716355518373214432657026594832753186255779707461255581237018179206298882976438293815408603791106782994516154518213955391751207587119329483254095425595072054135485948917004718459719974492216918353279566052485779865796699155063211662705863627152132475543114554854190595091269182373700753244721750329660271562175632393231476481291766825531295363099340801027426663517336966138096766327260078008242645154529976928277480533688971283749478203092810798363580930671243788327406088362502233696437392944665470880810677333274879173949498067913121570168482028525792162666308056546689645411810653077677214982381877270199842780144901379431415750720331362072662009955151963707339628650231324436009661407500969912701479437457807474060247473354904898110719840995500516907236065234851008762430534800667080748672006772204288856583149830265702608551730034191919507140958936712827238286382259401736589216294917839668745360327028176824173209126397178496515768326931644144012200002595664910012938877415625391180242370474506565461275915756498059379117568001949200998562953100364132599100982288624742221614538736803328300206153119479094262370619616617970495146067128832787845663073691934168727468135416623888618425656426495731547254248103536670000188682143853696481887473636454422869248939930376620148355999801078535210496039758661340131299922656707921681189165444400188377245041369845573919094216903684110295905456173330857997804600972093481321113790900068296168317009283872754708247727943601323790232206909603609708547869643219328834520019165697247758964204860306230021162263776636458098807871472629640200892624988228188559808429034372962296004624905688641669957764788373336215653801444042873400251639745079640028715849854300621482317726008247488181065068303177927579482253437379149354359841979535243613550167994695049548333223259454032077473687383728928560280703024143408914610455874851623868147096635398844230790340783051707559454879701713559268511216487402184090683182115037970287423267423387308584752006916635633477665103396678834038966128329802815612543343441560959843853712027734091756460784566669119619456582947830454008446074148195657199097477097130271994992124407981774507699356942312004678473051623984709705662148283580987107548356081502668059188887897509722060687103217168956910297522408950088622083370613647780825538204984223617627049438773499211256564419694766391234946204957934769711774886522813665399987065139550119697215405894720178548871621317788957632671389882506008922595107647334379016844133854967791786753715360323643511732508515872675803971724433966315700492247178121585221988776810268379134308539952225738409464704401116773670190956523179524047110017376984256877358303724222906089141991296716071593977729497728100364686665479062466516680588989029213964921913288418059975930982214337940339892024264830662704106334521644461474302598104491858505863741913044795531232338339404510539769709693535054139903256467662998835165265693342908097481389352600222318080166952438958452161472616950741109482545783823330131227382651104955658719599435235061173299627853419333417756868798470252221398769232378260222999062153559618324719460944242879198863883409244925444889269938991271740032008554712246786999561355867912712061291128553384965964967095224818597682512953736559938418431554969320321957071916295208048051927384278137008184121131906072862410519475135357520779502660125897947040341430785148423423487456021605625049325055829526713292428033927104848343181638376831217947220008406548290699540394793343811602529174361398592797155149948779893035492185971528825982388894729094203958515622622795728345641974247723931795328742325597356294431213146217197877009470420902034995593612894760133851633803619405970812507040832730494932127695266548823544006802722573620799453276034903807510227854593809305262383282738268872988613418797768988213991480413353439583304254302259160973530083648462866268676588315599540512144090976088998756759390156757536555483808460340699351857049544770702079665996170243652008319082457446229538286938535785404978317273989675251234262222758653607508146542788703667577106017729932606325170419996065055568928682885806494171167459621061708441770267093791358090034816499937195822025979962408699797948226818262607167536790806374603004581774205446125065824556432183079622040159255265563754329446084119601410296522718325323500631271190910490083196039079593184634244727104207524050649686838361359769621686861096041421984737877430426084598486207446459299842569093317204174717244585655543793347818387244907926709127048715577789857975454373249640562328769293649331508985008356411185007110285685746030200786253633905943795324854052237531634282917626193981647712477576186098596892052669087182559860590529347998291452057573372484188581371465723846698642102404251981909688113350227646092914898247169583590175835869400205538635916095130106509624161333647511293606242660519841141844074786616351028724696367281478156027934925266966978900491604804152713397012060410402879847677809412948831493231119729878105726481695120665452546832029015638028179206220957718984944278907033411658906544790783833276139691589266079296298139515229755783698231085692100895638469726546048251556151215409642011164666791312713749345183964020739480443280820668333565294375416592992204343691650328859408549880451278359607442858392658487481514128079876311423517700197481144496502829518384076325001368124315548159657612885556731702980124699140727519258184242991975501560785457765284141988085855482957478060334401137082199047907628679584104469993513895448663465582959992317828759986308699889674125218732405982096700410668385226798890399099386878928036037014830618752411144073305002229896183241814849103307797314952738142564820563678265355200005738393015046616662766695485303485292080347623856195492364189166461356299784654366153108823920413516129124972435245893647578405920901811816978470950231306141354467617251027525746843702882043549211475612375817237102290564410989162144283529094193315782301639831643186100023535696489213737487304923759696128355808003909093567992081347900504208694464323647965312319942341599403589198080329532218020058095974789266956391291521320020342727734239928589461955933391067951102245359092272647740134260923893961053916317868546200526379031115139106684155935130154607485896812244678608734828149903828764331304205321728490367808045838685630862213937366766917602877429906860693659616117838185404718768721257024271353817358211884545722194736208332874397766065100681458110308278936092122725964293177789490540399917355157803711059578737507378688458357412733807490517632449338812705782942042693958898357326084116968164217414617721935073659510748148816067765822677751472527159748747593780986695248480319636960674665372304819918207761985537159268225930864352504109137355485203841686039427722656226191065786784679399100001777652182609810060674692672560401489138950716719585307627880605081626383829527719087749337164351039338661390241120465523584464420526798126847015855357830095536820148106125561751329329353812590999406956680705194012801134999469476082245968058533915793832608816284421456128265701713499813585906367882862807642381627642897251219757450587496227542746142576085620970885961595169274064057315205974773654194969052059561363766419804738057259745736349239226562924417341369000181828100338347358042282591436827025000057257461883318393314502616740629925681707142037658880073356811377590248227214270847692218327947908501578814092832613489695198173180433560762535033327722637631591138735490576976031016249947037496322969601523588246700707228703075345426357138236640810333706564977767988735849028709522407416283197759712345963166758186797011767792470783515667462530894402787170329211629144479891428493000129283258691751720019908111939820427024129814182003939232057230228873994169849358321656526099444316484320501776100285965467918633256977516030433525201011528075332479561117309133092583630822778322231541803663138727183353339536759773837470571041896582527227330084232344089399694078103896845607550019532585057189464184717432814869777606476633551596809503289266939971174191432824374182120525829064346432789802228756353150912110163393613209163871668748476514594093348561928532679965599768342730881027685105868232369407980586290898174970938996585203543523191792982695564343676080043392356173201359818729562772160766554218178495263883418005619123124070615724551235427094167544574700513560595694646325423389083827700898579620923397836387725754853617299069475498600081783610081189515921267038411384205188779599822668732302378351380337904123855111187833304128368549819568554936529138947649138728471771448782529972648983592213246214985187952980928720388257706572439763743753063149881487236622507970042998012246028827997921148299918614242780424391427524783027623557203781529674045720013432178103746377530611518726134846329452580048327668405718333034761611273369066787093493405552923876101885127780029285533377252333239189102596273759799598647912962105299834133335331340675546306741640433763392681544577681785932093643637754116146933107243129344682823453010979350428208676047039445209280391029299032058532047709928993848513463235093669012318539222417183528014020988320847069336991178031201552955992332280156530233056090264072403574203911831000161990492257223652172225135523827860915431599667560970368864694283829045932426404132616786919551666841181218343530979103383495188758324228123362993738046144929467029355189743957252182468481843297411723762173495507152523565776137283601502072616467654377156578787543393056452105795274239468699050906839927555177649713980057677978741457683665469647566814262360973191315639125227972740358839410591112007862679599565898413112094389815288815086331170098401985134737593093824753718795371778027671698719666731323367809677800487653242727732993018830286808583009662804957193986717631632555583698215484052066372748226615810377461407414847837029953213610562378032049415009118091195713251449583736921035301927729056660383517369021230519365699859870607928767849695891462727076087598661138127234089252360969084944727712658831696333250868662337029409863278245239542938839607130352706060973683746758584391741909229264300656269307619146444629886603350101086264872628768311941864039829251288096747833932286248235438936845803511067401957314998346118119767578037164830350553365131054119289358094027934629358481063026191704483151341918301848886395644486473553388081443985866467892809004261249377367220275967716383049016474216941888206550049331968316076392065431609291611279285661210936500343940165207822809062644721225397626930124798525298572532453063510779560345636703266635001459037244507131817250401766626425220025888848391683136652761070491849476092187722639351692538817481185575843007473543213439331430232957374567512478160272380955349415656677202209527476952345013865278328745362157524221540341282508146970523769426119127271242491636399645143128627907352560568971596551779308973060087804422103735893979897418002880001439878539019240213850596005519860524112917868698217594656109377339384664323864786637064570651658816227130822438026825340376907761182379029756928952014919626280781240934504828524727611763292606732340509854202565623811376622228437446565452306795039595935020698109764066402829075660063628596646223908568014787536660895510727038222802782841208090888126551048974078637081598231798111982873115371711082572904571705216105182461820799809214501207155061656198739886628044099404832237109365366126497483836099329430813607087106693330167708588705368721757567871927383147312033365639749319879436950516864560533587037001034014579298445470635910502480799129556834875705086360198693908608315975475196253925947186152534459428997053552008817418852739392534039578448275417895549494253735297012623161020144182003547863687150998503046684597051388895375959685034471681624558418281638545572825031854780735709002221661510877418398406471958677792406067655807922131517060196940465710351657430107279737361991067482694222547531690855324590675655868778638589314193037033174483183931619962934701796211891330123352268812254867544312720524596059673660142897179133613551966463176185757578318456698253474578183120700903900593563024124780864041812604135380777803760095496267117717419017426062539876941408326599578643408973781184109763188202250835998936330610592243665635208682641332647850263759137501443788593097540233922783864237318006751586627224837832588635687360907276466970567819863270404294778622357918045082858067221155134880463723200754781039453705005537200546690291590369221530693943808528796640698345296782475851413162316574108627934200401894340399912821815483841876290049618186064141353185303525702663338246534023928876670327546118041700220254215985252738305564786231593815878766134464566650508450868029527789209364033899578968477225387174740553797727489741991295443110633817620976106758338289727750137109146364253339149279791703082876238542644991339593065754364449926840283341414618097759896079540664242342906002081676155387783497359411486896669229024220365248961165166947609188592975056738599163080102801515248885949925791748422446667033234017457070099926973739312514221559560455947912796566371762498133055833592434144121293840173591533848085031929266972836866536847760464289958370733811956193650856917434846229211499400362831650894305762528856698893718392869051506067536648471831829579321549231534280762775830618237288967534125127294450543184502424087485485117628403593749185292974045129456346436860888582713528650932681901881477436289175861815164264311345711137936554367853670417235112606413606978574617415334172410936810771243663583773845983936769249315717475717493212009086548485970559574896670990013394150499922749053956572542255280942252343878387840148520317797680640567448009825163610160124395133675470620174557633567078967590306962108772885155801617333274865840520476225812240992770266416228031312148357748287698617084670486654186782043829703409126975400739474107572893300079716306949576552670307613329234025268148486756858707708961925781737487615883286541785562063810722656617926665234857300427265630088316766519406001528373339965361705758446146600329581005957804869384035017736476751681964704872154513308185722115348452432471252661714645917996216152926233046226408666665387219908909910957398479196359922830009730410432004652229336385943520031030444175300981216147767856543241358053030001555484812054952689690591316963085363140877941577590761754632906608526681454100015537706164945569528940803525192509886977604134725501890926386832488274316437552877120677814137349886714736253733276661146514065795154759823394174615997339572643233556203940625831148974176743358400357951491744310280779395279800223825406729497493971829510766160583827494204158487739825471500048358158908523199039997197301203038214342775806452182011846385219030659042715402539195625373665469743456602848963984656406671223902660309216889471679859042362727361579665572555757398692678080619233174138842925390930317593346069033626283088213075946692250191589284536626799246305998566820663798346922673779076373903161820990731385397058704882310530988520945350395971725679218553156193175838340520415684982270224682548473491453744680083758309902670054858045746020694250951643094901444827565046049006996148274772839196681674211358630490348246044433795888370376531359697894053343477712456958530267016123543690920943311368260530679725309126615426480710058054095026932932294097463929462590477928378732988632486208867696600613229429182186744008326581199454633970258753007209599365130011249384225730967569028999972092350900003398462403031243921463952869579082449988220187531414230349892885917295427195233614716086247674783926533891835334169438390492232628975914859843912536690996691172355887303453873953031215146029653804411719721384827168316548916826125187788178458161960226627499370116752170185142916172866006567945831143739030018603191622306258903006914217168012825165631111227120593076489921184272797858730952268788745723048900955706347928951430383824693524931611692223333483454134020275258161192603732519174511283497458054385780813737672481738193518066086424612991935353452059083107669845896645597190517468522802321493128574076681117672392700108764548106330305481221321749380266564683260840018880836841533839766460342414616758228338192803623579618838732541446722417729165432764354328011514993227443976496770626647347764498802784692855885777762311986956745939922342473822360089215959403550568498090617588566443597756347118183685858571703273381978108197453105216775938656608615978627165652253013160129466131450832777357402573741423621642938265699573504228543749411664022755899721722407405124854932581941463854117064042503918099769345508979185903167021928234414667780162735813488075021497321387489909186408876635177312375443669307937208022160397041727141121001422716977173612790873104899553682233080551185501110108103299554710891791134370667452849056622216846449235430427220323679161147252030534026171146584408966052770299493926474586785746098282156023481792065033832707781091242933007757968658484430736834214047656682994301747113411203340157630173486181651739592669260105111060976620379821420719211863795391157057914338656337998423824832791312675435774100816925235851256245169665442416719896440628937962321346852848248440311998737172930869392183939648448244823016303452641906328368289494331117397089224008554033650880399810800322898779185867392322583343268448598604636529021347362729534069332437861383468379279528925961666061833828830095832036546728772308512032894504251577359125161402477624599072715517957210244590162001674095360075622882706660750918565391881878025281560278868349400388486514307770334642796458491125228271827624470673241118452703727185595117970885170439668967118636294079610217971920368297649643907330279483332713220346375062053426295453276159446114638002823263614506771359256856485105235137488216463876382083312651479051053952761997353935940446161841810582277120858476785335482460397118827400246952265841526454944412455405621262740336750125386295232091758931244922362964172768447161456701538050058892261232028893469647336286037509374720087279752057631744874428233206027136888296418646604487886752001868241954082323231773812292088219932024630725355989540397233156683543515717401794187505510172846168422031590465132872781366081989591066154406939932101084140958652415217908470370117791616961297366637465637656683412023441452110607351043229956267864409324394852307398336647370100571206973190245677232488289150413685139396580826515795300349562200168096999690680005291793446769426519539536976078181561570800702556635579577174679403893459793748101720273219190099937338121349155093049460374638571946956428956711933388524880888618732388892402174323157590038829924670845239109864922740141140750901248835359620075748293549064855305021610249385511529600498430685751137841501099663192883317268336416693776240374967367116467717054167937212442803338088761214219139481730689628189113633388637088544497450584461473908174267957660311535164643895780977892450806775780839406954712870952678253574007275039377503480254600108977969769109789581340300371140280254717336185179818849030145946825263596075281516136804677904080489716428444094824463382520750487551520015336507897161714877979029079878382727449291975081544623029945808638173977901651450601562678429141783353261792532385404350519072215664009122020134578286223477119862241079530914511444001291024198433942006875139827288982859601631039762748181009855797028226084426816758152655582765402981187809102169075054358645014953712174361571724947098530622125106535488531920711552902605059251244998782589234482757425884481567930837563474545759841710249251726271280317958804140666093201143179080140644782755999686716492563771047470403721689534566647374752850952069120560406901352216686748635430538718458531177939557695200615791005682860019308247539931520846830583701703629723765213794824596391277923791018226324979264683906275496427755243344835588973059235107762976436831807313160862561947410511004885463603646309718448218617071537514068816204596927194170222367217854803592978848341443529489439635147053944388609563318838803518915859710622002374944945071115611901211185316696211711326142334824396376903870478968846261374334973734987407160187289946574003134179895021377556039557009068608811330259831820614889019020756840132978856386659772744775258001009627801931795389651702558900442905578696110022053057419141564369494709164318784685495082598416620332790538694903961634175158674240162618814075024833404550282094783694537946583661783694170661258199531815859235616350425386975273484557330154011435696688885864749444048562892620163367879478763355271981480652581338680215010396479089038945789146334013756965343634589671808495440236147603531070792910597786243992449120159748032360963834077082206267344978529191140188506887344126986733933100011078377504253683907194845149841982283404123282823042602290640622857081553735203072173201982107631638688776979339191566990068993483587794063867770706038373925445827172803201554098797840123904862728866083010538265883706431419228627857425975831058814715238550944835130488574022879839686761569301946911162720485593796088385906969419386314152925576866657834484053308591123142444239484500287125066381813689430639486127764452976857269611024738120776497995861347351454371331377719768966615083347386981567272742859084327652992781182016955128285711003146856619138421026454452993432184131794039084542978622928173032666376307340853787224332389893546707374438998556253905980375793091376942442152644600997592996425255013903864500532554766839685245230050506957219998109213597098495752654341947223761526931198299493500674635326257046795576306573977912552477810762294830138774882959437545268848169358180915660995398069423290224920493417635210527796626194826378817375061993437416001650958240353101321536959692186029262106912317568714619949265571233201569719087293296927233173375109749121979656950495977572228343384128552022444271619039307693906343402525993584048835483236474235041833667046397450615000762307303712323104340492051611601833336434613539014321028825134885415610662883102039996380999898097788523036826781047872712549960355687276721407938821003502914572497248628906244521617901037880222223598139774574669119511335835235827751200024992647566652074882493218892801911796757261148339858140191219824717805335862953834763540642065638444223554623636536912740045770193447074544161300929611760280950373149580392842608901695288570216810209294434314528375423855536788925786847648857148294752638961840567033906971584315678532294536457542097327794947608956677246804769564091227231943419348777694859869306131725583956699970019077473389647124816406085189791639720259949417296198008910251100682402958802836936039730521909156908301692899210861542240980389208430301919222367192488827223280642567752092163931453708789616420564594721389721999038958492283416524844096799483187759409915063336380456939279522419535046682889565717067497577602039467063729322195105666462723139931636970949375338697802723984926887023448797338884498847906817929892563216440560215494029320757017342558950635764496764366942592198609461729179016263426140196338773099137405819870241416443414892371065984993651662970806282463267208788735821871246660274257902477197938445854048467537411408109617269878070258329310764907327414847856438390901584777653841149405333275329548993123438741441316533251286669262996102825530040819682189391103753922194484142620849303657580850103097085280692958173981813408726435375029877200159023885088025011972885745182490747665374092739109664449308630264341190196550759764301127818132397482444602377789929109597571356818478177551598466256745796131438757486270528688501078219531929213418959869230079862237842630846391210284485464551969268936107809623059737319344868565330160427802232405623160891282361722542240166986598276480424194635216191726345521697457775614998224435087673504254494097722475833764742781507334690085640467990605178968177613847961687402472432534157771439382916361471360953599508762655536695320037756180211713824431931454231515346470088586258900974824130782476093541091304596394294987181371406534650961505903871035620411539355569287276685954307702396708690509249736199838380012583015293435940486457646865242922445038026620174621824338955192297295285043467742992798628962359148768458812119611267460465122565427280680025412097624385224388086503770859990108921085694843242920066345393815569708626920859713728792955485440538364465062711513106123371751675724906980473631063265567027397130263607453845266039337149407774027319763077982159229499827058896184538225741498938705304933012819254317899017070596277078686293803417280189820029118223459836521665991496627997775217246811057033747483119988719268122110521033568125894838761048528326119612696225956515966499745131025956465661129112571793576418251895688437878707992311903866532040012031807380438240600614803673330702986151277236822593701202161671676382376403301906765042190152958412614595161791919933048760296463669337211214795894588258726835594989889532969647307583335710248960536033840845393483823638843486923636096038106392945732671832024634833220982567866454199591226771884540331911068412446713924110849293467839308103986331405933290435650459691120277899244998230701478293545221862970726137468578098236650829489265087377599829956203774167699158882005496525732758123725494403131505626741156347104425760556595035540769710729859168318888229196257169914809907361218793571583631534306388514481256781218331624927484964255605682992779463913811776086254123905420244659551475219542279428474743523240178929238174930977515423355150972338186800351248796651071336265417298076343105812793342549998593383921961559146588555621796612795422597367535727797236906805781740347820304806318428715635024723796651161465137854336735517942707915701117656078160220889398574929766524314696944649995692061974723559073976018614087303119328928198579416406107458659039027369696947796268547899852749406679900330415465929859905354227715607653886180041843852842515861465333255583826494864867535240035022658424383833494312013471557891731263335104173280817964586474968770868269328276389138003039056801773895547363074635392504006806275655385954039880652149081633178141185969406622806033606627584109513441188178684497468471838274590574744377586782914978152301777060805508562820977003570346037479141179935107576729327603988430603730976410803296244445549800714713883195501624208398197626070998095893670898372244217071889430350452408977082811528720288594418057647001726464070866111449892827097745304675513225417333496181408820124522692224368931019261224268419841847873121344612684822937922383729553486198378302307710317842057057258347217117444129350387042843521708586201080927821087916303451387491376574345610796882114073251942308664752284364532997895352407931239206917556515354147991618366455953557096105383145353186828278397673018515643822470275971963890937345089927305049801442353071716593900276851141413677605505094796157780248408219749145277537861928732274631727076183352808373358550021475137618290761671184564909159348654801740966141758021323914843459764229400571265408440757615476168219078967574131834526309642569609789487137929211349044693267930014134999677917131156430676086405119887945561711881259961750707023943853912955833199633123975083130800259165111304814087921634580184395003194874369758515412945775810854302003556636350080238755290739594423041644942868479373984613277138648455838061572467222730148963293719395429680166482018569412263446100880998832510517663324631566538372944322576926950875575315050455307354418062692062667134360343553561280619601578325685652275675842291642163129325887609098261715447386629688416251998282552333122820269746293828905904978584090927679555125891076555754028402838599639827007047686600479952322910107406991811101994051937343128578302750151840211382105880101317934807184598929832114448728975455245453895866685501482626998347072293102933390325118454268289073762571469614735093805348715079039070866348331515557503454028278679109629839302695909520295594956541308630062910631346265041036356289563074239726993148339650922875908625716539369208148996540073850854075363222670492170493250509148007456583081815328107116553064531228997124202342655217786860658956653028609434738629735264025829579224006671023116370871161208474302139764939591354031194066240658072643829868339883747465354300851798854779241290591746099421891181991794615943092495219613742813450963184171875164620389188288529850050892754466037154820991815147791703782455644696615243407468568517148481814132294510832391941027523418292006727080485628360178356063513849668364173659756367956813097073928736635300960824325005844585727549284342293749140017927640408708481748510850914754551198712197765320409841720851610904004884581451508943293171450029551553212424388322385287602709361731642980773599017630605703493404302024132480659699712164892598196948134623299408617663497889461765314627156818169440531648247921581955517241305405940763953287142993714193986423276729045822187095591359521639323126105238976907154928647486118173088542439229177907099383085035920829954818179549074324314962873739009208133659199061078359061426275836933392224773093404302412089990629159409565259103833064175136860023777845324131278503089940284874318464272776148092168427764557957367366037096954811325708433863110115308223135999773212198764414115832492258401305861533649281374232169903717927297878899180792968010801925808318720810817152639036751712887971134546003194103095420061456217872226872335477175845688119740973524404182939306520321075349952309177558806063663725073672036491989112887108902069406172006253346404209252462366639439832283245619983244262235379672662065110590901651257156343646138737561934104849370951017760956491994445791230297304726987648225517744725402041701696423940463486715315947314911253491132793191490588404374009253673150938699120878633927829487912739915427752522212246287537005569497362910351436980374872006836337259273790998692820151847153179041052101420724441459298064618442075876988068982627211999767314159986093896711644866096611104568870401783875137588331760513708296068727481279393672793026046843515456966666429629992545768488824085969873968881353357737473334997201873055880656224409062795288868422326432314802502904796613828748386060737442121038494494365329877562285865061209709278086498269145882275475299012983946556501688063987586435135598748252521002907207849505437375744135852103930959964676883850934104200738035566093848478177136812920817668074890005597585892303479236008139619913501909515941596029264291437331109722838635837977430725545624384271267943553975496737380707057001368071249565014471817638581539401842964298952225237993561328864560087958728800809524541713439865962835028060294121860641146344789729087823356874510393509558711674214688816322127048607054270709692998297631514570308635903057741086222970363735513942757883049983604684141990410524257721621774669545555010177103582355508700636643775730670162563805490208272130236224969643443250021403765820180671878829154262193020562496905805896554093194427774325817380526369414804260525359067686397569536377583152826614701403082340470265813800119505389160353081995362142853916865153856751025396202961211723411467449278301484915887296343955709204428549164434533626152091408085996584364912142734858100943253825291564630286543031504992390252679566719685047367159023400169689961717780432446691226976169631916605095879573966973024468670687120732674527209799294360653212168893104740393586569922860047378191228289240580686366134561203946429438287926685679804819503634255314129330233231830146912615912553590013886938469819196733291202873206356918951865003354919936835102307172372233255944762233466714938868290008912256484915283228534178166769874209363213900474559640314566801275223927793921362625271046735135985965489426480605174434193855238206095603782830609474674775216534476980922899574932490880567287195946779645560804598359499971079915790437690492820492744569450882254900417210210788283749815784766242874925790008297052470828671898275238815058296941475042375198718781296116635729958154336680864158057581902103047436960356334501681946607042480048269913081630519689225889388781034933014011663102311601119301572816499250546931435878557764085722680142416196113550243406114195533038034880057003557009122157129867596881599396917484862934424521627603038517226207022093394460180636658353527457642884014472885874096568980567819864267094382596735935032248777051635267811749687782286985343604777775620472904615076167991353534176624135372246970435938423611347260664619244432472772500825055503558014226945055664393949941845668197712408861303065515638428129126350370737252156580250349019477858295830349572904564261239044856923535552699401094972335596041706216028783584033237345255522373917678452373078722591703790030894307513673948737387674691737734018147910813820663237503126793415517901574906098913023911666803481687403359691471021503217540680123763455138458659500750642796215760524511794312348371892306752964186691423987869976385069830764168351792441070146914784720798403915268511723033678456961589527159999205462861219830254946510048247746424951787026615818125213716380733087338216292462222215765656480117484074386724533627769657906812781927001195064589593441501539763929513113152464509404716443654802118430940358168757366617517977777111939727305441929190501118888275779700526168362633759116282773865218409615651969438044360130734297653118414323381357192266627756452487522025275718442732182579100484418536116287046705617833135893451778664032377957770583068150305791533781900123740602594097884233548573686769759090623733386154933612193331793540111341279388973624619812131628956607422478090961919995152636652130210952013267601650444030217721733142169789798965100492462460791039941370544186016039131808320774612185257472772294054617347407739535573863256894796266257098932755437348075801888666695768399606796808082310746050575154991163916433587473804468785892820984681366166732117646709224695903717920773149341779642867390167185722082597076153080315872326216542727000664543185296633697700153619778208429975606426443726550133824790631657049229864204639442078427914288535309610643360880070194995756625894658035590040199190587181800908239821022326810349448267981572407829351204571017144694538096140321788032614734302103970316124600501232487194081553103757244279965470452973635171712173262478328590549909753225969994896533133132573294734490736340533053933426973502102904766061721636319853393121843099137628963081580929950561017295287090207811450443250998012215065090863652000345804135054434423839477152469120743121697640308530039868661141735787367880383073308061359597321921329629023557274595789914863444783241188972701926239862037368272606723181349511290859839421996890849502355683581624774717982076387536891120007237793726281226346983104526360031935682096816637434447924272273019063256384603542866531799748345929388832327904125834217401515766371412737280014884053161558008747130361334063190127626264433857636826070455116460380065634069462540167050729237142467775128327140845024779314686669344779940443955584583780429648502518868770014185889361673117180003674141005092801649462107988095545654859648754785527183567487899314775501572997883945984966999908611562420288952621067579607507727033769360787935534053538307831418071569434476780215314215783131911907978050072257520933768183616017414265227232706733111283767466233242639921609075702254205544741686393174293552046968681152407666418993077957439018060717017269730865206255329332120982284609978587270305935841939084260228117594229826288199774281470408296636605797039827225750985203647122431659631799584929931987309792613627810587977116799935356176252176746463826280669791394402339326724707550347605168464270174727767454068733590208782952561049457009644974198904550180528161946586605141582295504006849053562421772560589801667940650670551947878222836221884242477922706881817000194474272345214218963292393165340071445945385671812344733077250473647281727022950382092744163676323565862579153755146873394011518895142803992300761394703729155883428372890445895638505588560128064981177972887861071247617244656173874952205475569054779984148244261286971207329066677268611070667954169894719294585016247267292956077693520975126163262576056917141845809993728292563056805706117558276126909740826924735293055613635772288703553350149076408077333555473944537387258269244367100809377495944437104919831313019647794204367265697858117927502429907177388943212785821719801444960472705514449362609667148781634015503698190292707065870747618120837738463965191388570565371739216433032278592777158335189504064121395290385591607230027484623231863723631027056361507974830949408173761315693116930405484988739024055170866414949773648025680452486736197891268351734659596772496120383005534490777676948559271918808006804626543581661490221591233918922375855092736990314276099364002754250042214402701194369792377822494433136495198222734550893808064012045957726670070357665677213945305298474959406449507200970581621256732194400736033623341464231027767221588222872138076813367954756963309533161837949569695681214077403846266055668581927779919170638781256810179503316940047966596934207720083725821063563201146874604296618819042020185026414147761907842603619345927091802435885941651403237959060521014053478717586522938150691040732332609100241007420893683364323295579450811490947915924819867439296180035348163382507074807751496272722678895479645582092823697131023412134454430558119067820136733618301275053716162995127576814755039237401743210657893571035287690032306414461520906757222941967167800694215404591857991670746012500482306508568731376625416269702925651878529057835712887964613015231817360037526138648723933905220046448288484946777204834824053209096516705105490896045429339850232454188022037909901262965877289795325851145005582005390865657957599953420349437169931362800184833453299950704153874711682675554735207954307637700185237236764301986753877347749250097677439880378769933533017129785730411134796407091390181373444439394135005546643629659429408873601771114973913670558469829240350453787612242212775940845486531901306057460012226121825065946557993618154480637086095289939636812172797526038386990673992801149716323671437304347179562858257513379779367723540352188912291989445164648384462522698147583378911037543601361932452367074346205658886399440178201798523297226451206938940417317619997564043672962205391699094251528874479034962980329093291950799922892892399211055903412679673370612977766437911460961805442165807565753118763617148769462507362890611306554999836047621048076693529391609071996983147199633987396309161631540886015509100998582818703481297973001090355507698059057020892946348656628987149260907624882030835924068331651567697358322455422403332245377320077495373601649193748227208671183233642877088351728296396169270927610556526431448458211349426913697432709113338476282392682107062774348082365324861262898494975139754043120981332265816461971526605507606207395337459941406250002845796816482106792787172830979104736922143518069801062940840689058577315820009531377544026109662664394041915963958752472924493471533482998688710869156767040004667225188330939722376351827019643990701433771436369720297809158869709039092988099709470815669793431594646687149491569942949401450096399870278458542739308960976321224755482741688364968173366445261955736749669016478334188103415794632593054684227504945520677570396770322663597530363407210828809838652926517807962239146460384728186615164472277851816497881110274376804057099336178519406385369726854151811672474142955327178115411124009864098025270007705377579063115521123124589439789656702762613444374139828993943320883978640682466200652474784403712503792225320933121031890029997243998054436673972938156234981809029411396674290316322784551033970216677203685845729861951383137535184095143113807949850120487633724136547779975306987304773273376162312585828305979607995347911291093997564373681959829839732718058979154653201567967673959619982218146592529247205006457727511665602865399406838738682555942761485914987286307900284473436822665147818598952654853663786743521102113313757936804772978416929999319495243765023679680491096942206244970271270785478837523610400013428812381589202599443635356160757550591335947069471589575753051697293327676826304277802186046824717336659750256568519148094044825516664746810246156432899686943360873726188377227727649300284481778454686819558430345086474058582116617500020257846666006494276099275930588564536527821978123674476149591373475468458281149322714680596669003862228262715877927041631930763587645247479429966088073064086672751598920050624190311877598861477433884960677008803900557457669898681224715662577627545404109147152313379049437114966265688916187945326087096409957666699787296848887407664651435896207609130247232049961819372972712193644704284625426959905786760822858874751207819414585565043017453632921058497247624616094541002289794716840133902121496788071349148091744504686451949487512126389774887572181143469682369592559950402704216414167570998332896700706561396359550590227427524761716240785590505019076195567127468414285296663952728471136452213016133180723997382675586793957369874148396530472942691478546034442987722531611671954953905543155399669517508393739240777823943824495722920857546509023757533003011124961427771746027668596354558598026876064195771396996960946036934902414323222740856392018830756845297514487810824906442639614667071793221786278913225799025771432154162864780498722377343909570692016221948206490496708240640636888010728594446640785214167337508140123449637073478823144330935794188145223183134142510231503156969868609330419983749662100795488591874890956837353610370775257993398179820178504687117161404737450743265509255684523254800351496421517104250656123399268343710839819453439560268238663004958063646355054565653572911506588278672466096854477213029317673108693007087388418470798629962671441094140192405710788366905283325714463952893696858658818692118910655058520526457118322298764135886254344420851707643970982728675056358156335084840460431142242529780697719011083963812323940813457188890332298552244802132356826739660574888042588875042587953044011075051028493854154907875892025778962197230371612300503951228579146914255112293590729835490263843941356010565887466829505917376779990761567402299339555988033451865385105209242705995571082434138655948923214929172273981584653488615675057764804417435757208897258139789561082637544304016417053631801159532369738400345658906417609180309081098115156981306399505297866807699207449893070358029807951018641374610907103184603779396160195352566820606576538328611757539161675170420602613193812355152445567695272917340119581585473990703166980504955887903546620930817912695943012965166491883117283731810080596875383022373571304929193647500003666564081367137485833866289552964666874344137120971587924643474315553397923730668882795234780482903214028869419170184053967165871585195646542508688762512748501767640316471921760528406160698610031740707567563855179831707705806049800709845873339638920429236125615805023278354779667183392261668676704741228738636623813056538613253275415777805738979818978097791028330304313067911827703994710775509518409659023652843450655618325973845812207956876466165966755853053004528289556655255685338523523878519626840760690251856561070167028851741232395172340363306132799697005302840378723337329422732920526969508188662115847642294961263238965505641364618565031448534307832263954385270035913070560986047307633685300413476134606843317888765463186382392219784741821866457725352765949822272836350347837583574836665507561407432488070518961380491331583481705621912625384642797551603486803863083341148636888354050485455032831421987190096905877764206602502144126977361934998491341897815069069386002923496914644875324263956752328552212433707287443092360700014505090176576955253908853719998043410233115111063997172416477520231826315840884606277060574577080843523564622457843141635245248695468538515582331074275746523637356462562371506085447540436045475211093407360303552066713942881096608014238454065388667342693061214810814753164718569411234925272866624816497265822350464138086130026777352779701111371420551569179853460360258696602506036855688400553871727187504305212860198986156440249179510733269515555884365960760514771977239928928277069263747885439937279337617259137984454966655600209940210334354682109331646869551677917053872508096300107586645744471713825562593077971857720344530256490711167214908567186998245119086774617164478744893485495062984275849246232220635002009850894193426770673786649045329231891973129510074335939952484254001714982298970596148293157489928284905789094237191264809044893022963756511578124177845743656902443610783676453113114917036006479637935984434406406558261346404666686802227373429938414424826158805045851586363648561185754038452685109082599767605709568599442341787750063796095476333964598353228607226083659435735251634371963373984201433038796489488350067718646660647805450640421408699561691162796460100001694409378680059887262568980148017021404245896874003104636875994144502613273394556546034979448518572598138065232022262312096816842679606079472213727051578588058589890974599828576217781119158670230712750072025629824463487493808312408922928399252475567668651397334905658037962400307974866922110769462408177732942761728958872109766017339366772577427429998711799073319240420654199980874463408564701795639667038592497614968038662888487426515409178988676097896564438604504200473335756527128632501066506298326410288204327512657573190444627978775748616279445227088707950282201498558680902779706087233004328513401205024465803287414266788004765564769238753193078344462398247162402933099339265216741661682399793962061882215607698572378231196207988552691949047151255107406010646012329150592055824670551309928088183322736853550436541526283352860200808578194494360937854129443217226309295498667518178714078367515685276505908741214876836808012838003442408700051407334797475514213047159299035788057203532143053533337701572435153649785817166918862492133581703046006566889056177485520642328695308656105159641611002834197180616341504287114098654145069617199445939824577365873449991347948982607065138180918787697555771612481856486284860703734604672526249791625326088793553325992558860745718715685618333910684582433102413160870853747201944530007399320467302367612736011855525322703185117917798034785746114422048114591809413225956167487378110925094762696722636215143073712245568459219899591971636568370546374798795813992226892015733546949778639636441714881760389785617187849609016868462632443212663647183399417273781906311099688027088654548796282320661604358083966856023053490814257512988487358973683272505474420342490184787142855523950821184273458121131432491275887385429801852238274391097890809765373030211621418441261374490283212511175512328002226470047969754781382035879561495498969628534172992522775311501667051537723964157060633818486553551029505917685885751635868774152019299049530440447842000132289368597445779475292419927913480746378899623264256694295650751169144004618751622069402791773521112245602266392827213296416072246155276347628704344493635394838325624412853418913728157528855343118267285158563645158479416440441091196080461196210151536570600430046455254034641635829000280982434008744239936930275817921502528856116409037716076492356825870275387299681036833645819179785612548213063436703839755679857304223894493983160626526931778828434461470827148578370611171217557163196652417175183329224696474585539776642091018768145300634390879268309097566303082185161103437121217184133342967420191398767476337107433226247417462374795487428530987794314294736663179339400243539011063692156573439247148823060800960915401841132516656564655204549726962737141426543209529816591437671138971596855541179753541549812934699878184771878986982335402918320089579009659500387508959202174607439052980093288841810078735140451074522225522847758836042180161919691219306109101216632449527019228820433908775143478171206991759942204291954325807257781346651376582447767997501244304166042109665229454439030678757337970008256778476221969315357160731574786403585464251095724483792578168081046277286079760937891593803368880024858765393915638204175348912902772143012053891743973489538407314969923369881671425213210729697352997739597805601050609128973279702023179640847526545322029046818541618815192364298642750465828680018095681774370400911674612286934258047280429098035426979385939642140125208274416887647909194561856157948686057788456702476831975482986096707768449131366242693343117106007953356777951521087934802742243231372527043554536195275578854200674409431593330759989066190874786078608965622354010872119167182311594241961614300045277627414471421399692318573813296020739018509593308573463930383680756020186886524056333431237201636488890720200657127928457867967681749268117940851307125002827759853674980227585712183305737581480751336665530121092388030875697170722895552171006391931231955438029509339058823840310191336524996474733241205830304095148085091509154140444497259465056634939561392372166080112698320152955954944487747802166253993325641608827069603958760578537631949958339520219232494721817021962393833996153392173530969748781878720027343238490334384317433757639337323520520149223504051222908452388515468985880732613552989896283654789030608949620487140020799636963153806753668111994422343821077028492151992977803501261025521374251578401096128333800429559284125892186821165219304007495292217546324178533646623625468182255508716362282334713549882920476914491654990859449933756879766848357808622118326831933888234800719391526527102873168021543411321124282647560722644909335213164874218829448276675236996997406756007621395778115530939732489040121295597749202330858330037562634759378387676505335215962875701248349663753700116111396745289965761270527604969552412358400832140505778948729167573827326284982066627194768019399771191911259471888674782621039145391117344064713905557062332165341730011963873867065577662780254747124803472912494800404042670089507125735506100950297223577524607267556081789829661701923567786763779709882453853965519026723269343228409370297013568290458969088683192862945000984519170576587305867366090630183902210721001219397174263968472839334020517855501464648982932927420779591546687603301624426246670581977913572507448176769032059444607044580295109781470599596376011776654184147539498598732392579412364831322845438883843788371117020644315336209126522006213343014242374124458721766909841578474753123490554713164200507128694038735371960995172173104192561170549123700617207399545806746388859967598512622813592855890011386049200168164932089210385918216788501444429650042945557774543537154979255042439828790479466625356759145237573874157362932893934877739055420551768765960478619431885674606062120129856632171327865958094515863027903067707536315765950203399295368836781964836279572504044818186940304035568568999539655165599077325453026702009455905229562221684600911291827166712316468071078062594197396828629046503124488328092649684528466820087368601729664292308124750605647506194435594045025016736271878943141195766494532742070170694638796380421270689891813973857003379859066206108059515324052906172913108748216874245813038010861767895416457394125935791121825372678741371595815115424785217835960908191309620374090127091690080325232652687617024354398633850057741114991056652677326955592922203034863474456586746232539812558090216319658760790603065831895525758913222905862913135168214577321767286706931138137816898167323415911852358818125343083127248709063622807339083913925359346384179154226419308597275982224107831534507627998389913962973190661675187658155918364921008296909343354456227725476469520772153064688234943770246110970816439730860579267794293281998215871305856439206769625349098416785166168626745772445247335413644952362548252432769535131222562714726164621101525542678549987490617980623252557537299976253898529793581285893316365675384318749060162087916587211328819115010886527736620566137203277641378213310064864498379459380467673710393150011700306515977094364788382437317032439001187971206846811713445138969815011370470578127961118449518293079504691534673863482838923988296623375234700218371419940344905935590626701415900435144084772526079791144682040241083374925262951674107116620341179183871694557866599834072274819431027595402375523706104151932578102857113387961721528014593276191058839500963072459662544681541776064716873918063848941812705469472027963378716985304446510122623984695114801889112149132089726748290307813842558501192162579919432934138342548703183337007380646082635878913792582606866967059413139708520980993120631601796804800997638936608818770554503029248389114231975531819379941272498688268880415460043794095873404118138812508461402801497988739930937597889648593560609467987531472117495117200242918705185570268590696459199279661374899940680855705611462498733951069589669700155528507110773947364132907882762223240182071896914223067065693698796063539003618833695238903454965513681691636607078527257453600223112278043746727911661465867996438166375541463177189297340295989949592349381201811986237233031704846592290475461740229990923355269341282302485329298694358944962308457030660017959666300706690283737284577989655153827855384985901443102711188464273814057233935609660605423012415740641031643694177734928366121505381137765109149222135205081426379966069272871411355581635895397580557566538793885111089528396134406109058895609158472912801156011509562950305461492588407443279394501627674985599138734784644861060872255147699718327842467870256605318376411887361921893022260224303606407736777435830135400599186821566072068044499058698893717064852167356929214286354943515655758993491241158085213034006649048451443358637635596235946370369196504719482153267391362480725337347666489439175283044298311576424739409737741533841814578674933661720003703076774639057833043490153199361907620592359166762530071913818879511532550493343784702084586633242517793443474834767685065952367824922474027175714728397432251986344359201127124791766354426631262927594024101082178756300857444167562500811830562268402461283884915740733467913389952785461254194742197533857359914495044852002494060732380470412923176520551524964483778643520453300684706000093499353399199318901720302863071688040950487102145655936600814764469580280609251169186025366071566931412492698503771336625629079531306472953221158473525834716124099646313066002057072303636727789204421045678046146315433610675316128816291708698634256771543714426049389970876832217325707969031075779875667001484828276926143598473170923915752691801556519377058711194775242320845107479298927013907431347769567360052398571120105931560233516325959196838693761425259503722615686073210674796496467238780243829068910301203318827429696445506791198179701590633576001875881422067472828758376092623181600728080520947392665452703419640757276323447103680839611548911401847989017176577889439156626047975447119162199824324107317936273217696542460391821018150923084010923431306955519297600019005205790761794965687913355529874000000785909771342935877739060344557744548223432102283627827496156590026339704833571281980916956997766710046129188071625494560490970276903786448424577541397869148166885452546231377644006478235861580334150165411802873965499588335011689088867896954181847127908881002706168213662314734278000355403235751384165508338467568593464956426558035234089743443107211966668169846952190345664453140475834514659944574247837661637379295566764722500715234072809903306589260447644753583979745476180726734132347143772909480014969582167715488110910968481332639626874494577674831648302963406532334299333742691948571745359307474334516845122194628497959528492775206878595888856433190024872112453975712595189555806297323805553900001300287079302315816579398016435705567649747651391205578860326260222859880024953501738455446246747216431241420484213155475237813925606849061446144752067208339110369407088440626442471220419134527403487284550399217488571504471510494691365890010613795116534389349168010961061410231638950367574330566402391013154333538936536373036490359568410835034355275704934599111452900688008441562737477634488354891801400998639088507186285587835253260713506051791734567684436791327732804896921563141981198039795745128822511033249388192811558597426502831921227164038474773933253567528265788625811032379151494856044862476154735575560342774608755037324519543995809765167972915362626414207338338445366611084955571224216096737450792696932638651147036525367429447919914537111108194144353946587871946742329508193367217223025116882319980844472226854429603659329899597593155760261088156411320142820631088787675178859890503787073582869859411028957062189579762206455055743269024540790416152748985069023069886651409030605429245952698367406843561874261123969124948945056521791597804000223365208294724521607109716734714484695790028397127332451580034540789284201606664055710746188645093561174110887464905628477665376448718278687058505192873208897942966997133106129442357869402814034035383810201771987080787466527660304140107518564792325655185734384279325414005436930334827252426864696570652866053015581966661080098779889563160802893439769172132308505276818088923706568673917345463862797883088050669993632884824824086902926009145126368684226631697636307554896457317759468067652969665763517485509490782428276135857271752157901967311740141449925744616350111513190017372602315173837606288441671749399098809497317518285609671644755342567094560886946434033637479351941013271823845944611393209360560226194427421390123467687885873437858929161138925563160180630335021789988603594274264639942052366179528619881032855935526509779766146137470983104891517115731557713885974494599929133091751621337132001892301896622622158386589933154937429140970209575892557424569794122747592654247263203404448052749292715620148622246101669681166614853748752415803975037441379816372972956242103390415604844532213486192261304920883939464232049686352696091263907908018175472428648177038963329256718777332360271832685822213848458939793660118914772643103427871507839895074536631826900990949383648659754270467376454272973209069118878012453883397178539164602247507814526966294634834978706068422983666057625205336949941499602917780526305129878429530455978834011573383924941442524371242235644934563327798479055494211761409300896558482533231807653541273469761234954650722348601715665417417024612474830325681370366664939018226677071595279037988836373246272458706972839612013274480230075288635529527052991031938037124801870546807910242327254321077999997023539285114631921392096810731922008364011261100656581674875720669564948924474488272199751848125595517679465076541897424517763917122949788142550184624177972028627662387853239522510012289753528078976896623620729033551614256744239416544382478827251799271177375864873473836104241866250814653105528668274432618425661966913042712712910120012362270475157737812232972842033725895143935089609853292553445334460001573370232354350357576626737384694265637645357507581531139469746626083272816457853271471167529244827220155463744406694435518422036208172354056010059665086117951997199218562922019550502504796000927592385868106812492388198827718864907308241126030630884544271791316320678657124089617488146220615693556170423727998941810613067073882958431705908743279180548898687996330034134132081677503727221690307562655810975057087302783657337403159994176418065923086461272703716556556338949235378576539180838024107639122101905735442409027715014085940627745854905379011049003169404425752794892310015967563523451492985921652618108794829093749197814104228265866649973739639341211476687745439582317759235457381597235988988274783267171271273867258757996712015472987858021812251435116148178896710390232750977356928079193971033456080781036419968746142357836480593090326130389532362928257099364195397623840867773202068693438696787594374748356873787401825834539508071793543838883658337675361077152195538909970611361908567688169307722451709617658822357655948088976202204329714108412741741012689750932886582912610735860337897239898135678511402722453757899854401422623098485335799143038442678673777739393786715983025242830000015257022484122448326916608313777401151015991879003588362388257190323029166940693772089979679633832931375007765830264593869936184854523654923049632837253834365671705939117145213255781905646078897282338552775380782895036306623810999047248416346807480903964144544192589883229244963036540799647825736669826890313511785441125429524097559520916438009463069979158920416479830929114939698623591252576227713727299444522482679126755674271469257505932517583263509275266343559225494760096153256242769229725055417999680104133662285856033025215873044175091047383889680727260724620522257080456161556309133111740549034851170629400675308211632130514435451991315860172815774890606375674446825683113124684775037967557362135355265149106332783278550539200295408516315911738862251092025933894299954824680277979001174417260883428351602755838710494921055414985136232954932283998627533377878083666958263038325826314032407851048432685357357939116057272804112419011799960071235803694718729122562227729627225363450702959441493688739736739664218941549802689073677790172962830024732313848159952336710738714820550949159966131293024448499998634664695271659786655650994702627607983408240516697941642064259606183615160686976462929509069936210406250579798653636314198861591704370827578308995692147411087837353177521470928108435202009567060543384506497832522325698606569590184566302218365725714282243389973624472990801005453911332941694417947265261569403165613979291770644157736230836678759747849526816615330054605380445807335836975959491856698347547155776275536482858595760450269425327323574120398679777915105236196657728251047322481517240908127147377642856618252204660284413114173026489497276428428969392465100905674938643647311414996097685216793943938483760929398790847909297560700694804760159192273800926267308931882391914490408453058503680208681603336456681803986334379565653495758041161629353552276513905145288251932516088382436801636724442729272257801257293751437900057771636641780307291651312459760755468999243551483704965480572997955273558846037072372260080429731682869499992078141539465607444284724922479133623025985911611947675222853341794262805612925285923447055257131304413393885499437728383343353336920576872827874008312486188570196085503687441714373811259359041650336385656895840068882485852915328096098308872701423080216886659079999234126615664132746252400301406022727225458718835181297408590936766388320196024624759348636253185915308233264617923797209581824362061978495695650398886512806860005424830900493615166057708078633492324572016257454392419170535445517759672882765839875455367529956282689666808533710074984820159797857958096487157264828236700031051458563000833522814377428248636734559260289610595667767527459717667614923646735903389297486392964146833671605866022108536588247887396547096084354527063632791461364770885618459170966313491125121792486034434522922750720637487101034124595575959915006423168248313315339028542761930519912091532819476317160724136353499778518673941716601711302566755985971564719397399902757001848780398824520596309888569113582174499208665552570021889242437117090664109749281114578257594662513932162777084666476021555213266668196287659044517661024192400379418053393697488875415201888847911939274773534393585512421455691062785559598689258937161436921426008439043578081505020696775953681176090052024247133006936048770058698740028859224154978381163873085443263043371374650835577907546861058149014852638647825615858714316724416635174524023996423617339115119022805173477026236169532912135397790678884295896523186286505309058648191778323983311355471949293810063153669938764211947370238641733496303362906448926987094688224239134532594949945812202239263251906177924184084353087419891613108145113306492769906031838916825264537177065571810263680719957973232735969107157743048436586678342209042719658538016133167932268905471887815543659729855742012435303229488145183315981490886246980811499961905387921960784075658097074715740824087212113756407422168788704081478549539123229599772770192834178479061711460757209061237808967185106186429199723180383443500397116311242572747114518752497646541992086589645563558378707333311633414028553573996283230242610617038453628814219188119595794658695295011155999738442936506264474493024268074307479782710229881011880629320154044016051655387342861800744809773001597432131628686344523923791544886905311780335385408099105282882528465380605558034267665776216612529079717207128892977716895788106692136912203343330278917070976271435085566650261621435039043670323780379876426862250989536034766465172103403566038170967457638316349782532864706675827878555127572371854390500847176490636317187724930725676237292366416317172297050056307711221004703061385865034964649228864438284838694004519165449871832971622540102619573205536653373272847456334191006228622740792963473996879647189829615184521312359631129544788101108570308094823202966852175082940521616171151546131300259744467450445403500273847726970580812745947938965658145237683018884632045497996650731923202801192335943679516487104005508619217272110437780868830302729553710442911033263896345250271894053059474621748174638178451821193825532838783201540247911296225016784986375550311301667539031369992170634637688415870156704613208753567889146377130565632077720512645808917096994980050828619156527012224559800236108159522149348659465145198005773853559505233332338279448415071333481200804770462779385848588937649272992805722271250818503764057099832291641012352780614520379323551590788515810415884327656717483305327209913277738981747584648049223341531933095579269881763106087283170454663370272918096859036042829021247184081219262417249610583998670896511487253452708919239529746313501048392055395198687825068463170084572600620061442438701950304124895747974440062921986375110377182281106787220469272430289700509513175117712682394476104513973315770575440787847642376197074816509981630866547379170241936840665009190958270609532663827594799913062161913053120886907212404404647434499207666623617195373736815274696423682819754801788473973239562771683901836117387268605217554715834874407036470191585189997299833754800755665258008750597794472487433529924731531298526545610009250748635785880677383739486673789182199351648862589489364840856966351583018491189126358095958242670691463931138236331972757422937064504001666346099721649039453441645343676294283888720557562321781785896311974349724587301824095082044979758426603946614202831005155148843042250550127111055654134268543381322635022552871757566721408907290556796253315091351894081251226628799328059671641545015382215569463389454497152540918549816599307550451459539170805963679108051504033484251049115386278107441434322506738575246390210296836886956384775653906365016564563355502580148515865084522811596801626603474643266828568247479608063022359452092153719109588766109132913154902744824383395888819503062252488894213326366673162312156018799061381412394017138809328327123883487407978744962597569739344349449414070249703641402978280946590442225930299721546421684634741403097535829864026531676745647896853827678553399764432075487142022203736331540017138955687282711210584567967706218127884426600349451912058997073773423344866622704897256650709308031473622827852834075168742713725695575255411107511487788972361056810418031814134248717216568082964126342047121677478863777325702376575154986135246619868141085402977019814871361096073699155391853401555017112719038468766359703272101401097941522046579257537127205451979887415535473425773241615235110197400073276135717937823271655460179018037547504456770676780382937741171166755402884926634260007146803890428613186188168203357757605380314594880741530569586981328708542001201424150454594584694360688810157666018037762794156452242904358393947792827786336003131090398743055671631003970536130164574514294054279398159379515400256507808133338524922604893452901782346503422832246176319915513200126475614663893838710075143417447326732842023762879547785958486359875329614226300804160724231081424206005006046086323140285724090193716998889981884882812825191161410304502176233843245843136136166144820067172724868542569966198096656394652396514309958566225744216734690685217880388107348613352051812455663985844383309300755841897835740846146087964206552615556765662280110308202338449488567806754549965012925806889013620479889274850609769019534034378540126678049724532785766764206670885589081230491659977032389613947523544446551776765970230254170053013119437023623105390879136872050036722639436086908359375565053441611441053337159365447533189847786738437202485697109083876899270778531706160704981194666785793381875171919882096122101545605084979012888752615824761853665242501826750912169463470898882616400609787505890213156631600297492515394317926202996118787615404676670603555148416051151170937603482053636018465599879511173332530560544066627838731988752730223669989282362438069947258119325554983702298846170191258963305927141226576338072004839380735253849136547826049456107564330468380491489283867982825791290558443987815945205658154165736379553074131440967037363692038741333249557526971909866337654457856370847450274996176464538765243701163006061932758385372247634428252727049118570758672985735983910399393053682112743530583483055686077564450147706459378701924042384527431343917320375808275746923915859407831272892270052402253196976261545430832762572193711713834568347345316085336585693278089964050050421046670214466197461600454207603049144905643972043871602910094816194856494560095907443107171587592970333861039954213262472447725574557681337211636286889031241939045141147754900855481101038620949613311275975971667160513209364944849795354224685040182608824446902907125003491525666024187242288441504980316117627297352908614272890966177622069426633352051065130357932374509481247522661538101714798175667458532536061659637606743763174476733674819834070528333717482975688289949228178981798378653052742648361020586549476676007372485885632718076514928925587760304709018014743051721884293989859570154364129582998447233566819640559782482154190706013006421529799431360948103553909748117064337434904376553869290950533178907452525720979281899678873827039923857193721989728800091810834475083862782004119149170338296343560734445242848892125702149710121975485067189450840326053447223472332965387840535721267257038596252521660822464326195126144085452175513996738197182025831992878842044997665898615737748640629117734170185016411230676356446962846169671734412718132336587476284374341049289917999198306037842800803166548710711324667572616997829160735036578141112925641033475026206793020249856165272632943084202319559276602025362148641200575746369973420822787798136178226025286991825810468493646357573882958445117312458959787570002761881598537356910750670225051963548483470498344562094574491019294182368319624840904299056770719014432169829065875720122958194145337350156228542046979867075115596398748466655723480945714330485184402967151824981565965969463452710603625210871240300173852913295764573821122752068405062596812444892014963974842768756571271271526024095942389807397287479248159638843529591486970781924900306855918263805571929905127816815659668130223720063657494211130381630072902764531402778309955271235317440135250079612578996897369312072215371981509463290529397376700037087226432757933530989897323611107321555539713746467398937706447368517887560858845288435251378834603571889191958836203185880051665733450340411790492781595185433981163704674946567199189046711610793890323078968289647248900616166283207335870940471504133580023589043435007649269108749955391926141080944690362918891062300857157479290732425677361854876209403784751864795583888619849292282929701316232856721797109604926409304133640464115161418731485961028495309488425506573010642859189264580404147276988768814241815217067826416749523575104992314383721541939071130722176970084985349727964387287735287831965449086791173182143704167101404251166814146159652347608776691272493037826730737801858891101960065248073460411770691209057559721180496460251770023154821453083511915836921477087821145868339712803838651539437967901027447824597273868225361826343986925814890268732405039592379718225082949549183570114529444873501155361468354190649636106145592897023566828772380953012036520102402762031008491170852100657179684941063049205005912157131462533137249846274160574766165151121390826457083524352539442980956048249444611027702829329163549346442487187550543210632663167474296620717422565785538890951922523761674307956199097283796043804895463974314932257809316076741888367071196111002588350966006164068009764699906391083333891796368428594804384114473785822215432600259006659306338341250285499057346162846475376267788607701870399674944807249693275998299780229518843964728458289025647590389524831727124755616017727741314989994767239256263394848240135519894637395313449709668305062049556120814799512894436914843399502530955318580706659488466024421481141376566221270791844553722629668365732515641293876881757662387690879773585575679545165437803924137030196050087086228694558284947718215307688231374593678182779585231957679501633228734331034437734708085718105131487526436285543840275955702074370727118857447439334020520338528536530693387455451213159294714988919621789355914252884252327212642695066754995460613142849587430389348627182733860009306253259487314288793170953043431564683164780737143128687278091187947233400465939152866263194998020104063771916591148236159905096470312392854725446466309351134666942956426600157140465478061128661336711657464261085385320423315900094741519677805442977929857598458625459449439333306928420475633410299631526750481964794001163920587084537464981816534843821239018627352917679214346816251796923324332798112024283846408317130019914019587097490650087518975696568958809355909520972375573965047405225388012045810414478314651703983978230183008318876563903603368411466895947446425352687157137846714976745700529970771683383013243572658597727520951899090782454245626760809186676900617675103261492653118541348767780816159928486105644375286331702432105114339321691821961293115743845590198304452795243208476047991435541236714109485841526615147397982437504874617926009806894521119272424713391156793756356844538371773313252028046172997482865890906467541896449113897621971283726209285524325744394225782301411894630905632466225907695232062688520763027456918702829656696276578625763732415439594229820117785802899254977487174197950234176903906031645755653185795010546098202297683019261921347610537357216544526470550477123168067128384185444274073074485008209013578729592643591695734965873760263331821094638661813374527876006276381830397049842009062379868379250223865533969627767116494250255393056471882543533371709931058613856663554811559542690703648733548766982384517993230493673097915651834169571699737057027371632276526607368923884406703416647024875262237352358511975675452302096468221558322809248540738952436660297523335350017360780100612866838910707151921324430824734290932407222741792644218822759722110624783169225467048658494519841545434052635683421509875711752129921340235748970920967661922655015289279570792857300884138243830714476080294522416989365627416729702177104595823805912702764184950859565798294506237696961329419139743164678067769288753173439436382365149997084504333610518653107017489974698427341420394449042990438471662373546250771741517794431900473576300175894920774778786598632047255742472320575617727102986833386140571849643564204846813045044801297002436897851148621095539371108119313215368910225061917392365781946664572687284149856062724588777879334071622540088854168739043446655912396738170251679324675801961991805755149104045325533186339670285104402347282700809526331558292114204083690340587706433071883898838810909260928262952046133144372212862846148608382515088019869783074320229682806311246955930862208765629505451399604343941406384980457886711706813475244535473956829408348536654024923175594144709542681605594081091835930481882794256938086470318690201288777740381732108429741985223858612198567554882092917330998740902136570301644047897315107475673725601245739793281648094769789087223330703672380119875672602942171865294605696293718330676524883355041218636969299892252040753732294818170149169193634394369938483494555828164631220699166972234771362338886421189771484487119508831713868110817135035069653804072076787613566807375581072672751548807144271990036730735601938048063883257763142249023312474890500832659449046538019851940367515121264860332879760185920416266417310777486285822538899017536151109309607980802788970356424014880367363003039077187480517628717082976518445217760938152486952327444623797145669029602700674220843994439435604122776296837884428109247540950407346545091389259977439283736564602004908908844932062661497719967440540314505140271103765183941634707832515884997502936969124665833524315273897157143205148640966200644586302793525108984433809506317249079683322273709466324525808624558297708632800432112730915303239957089457569815142905717982813777163272969521406443761338640795266019390655528867683721471222345892291075825798283244643017109420518974820005775061843047861158178549628731681365213480173051459493929315464771971785927253335575399119795219654038244393463752586767737799984449800264653029919779908319861075656306411148790529691214664274573587481944427356408805060373483167682879561289828029899031390935137539337284080426573276877086371623792183261818494745185696272632324089490725136202630360621874838233380220432078564432554233630859833646163350290520798113916265473728355946830585623136583788460804484506738323380683077830962296970714876280874137162852692887695950548141172633876814193909764020092704575862441754937619780448370711886632628611509071244756051794993783384718115045937244170083395545599331226629611072956573564372463938034415070214294051118343541973207557153940026059752385508172297783454192190697950498218159607602572998351047972034212672446709372317542746691695695027324938745045298945220980925502255685918910397350714001047692440273017161717529110473911539669871114055158152168964258209492217915607884287047389048926246135226049376986233013269673827697159675364330021274984559241251352501725584683561304073291540012253746031040934163718866375962924484595210568160822502297263737037398305880038315847900498264165266301530183436761695457864043195899033706250301175155291494549160952380110971096122304156220309965123169798568929494320428876965047493182071555003989204503563813797816073280913817578793187900711658851004394985466367865000480936002937426278818209675612104309716260547155259294636764739451620163514128335920616446333370288694964837637266054746678396854714873335963288762560168928937063951258210521501343450103694748989926439726006945709823003145649851499657393214763202629014924778720233390911795929153547739201094594813024342707470453071393055975829787167025564930840534102999946884924666008242166293712945849850783074472158134982204063121825255193064498322998658922595895694253071804090595552513438434311291747776096402603499267082737971841910451025632941586979454196594016743318590469541552873133711200049428909681569492017829594761086583645327944597488631087386814302880736755491298888223598152168108949088977565688470769501359914770671604591409129580133700013806403947560439986312202794263424612027381633592275801163294307045933933071862192018308249466137136291747025839259800915245849150125339756082311162445157509784952017558711883984464305384251896262546332656015171939892071101295984593408224374545062470677138196441177077927579490450084082209658099798087864371093428887117593552916051165936294674742829602541510232833633612538669088165962167678668244581499293188373361379284717344257401180594846619150490331645436031487265942307794485522373211766209707445890030341892817816297416912993622643678489887355219619546865338223426290146872510176917046321994794570410738227380723705911498321725619265234632765068740477354617345712846621691796613572535285189769518538579085980904160186665579766783447596025257689982186164715430541946935326101694374030303168163071061554255566108604915213212546466779575424643330879895451244382506326545248069434253492235383434361707488173621537063851307757557645004198560184953661371147375433193631887700832707270264231386015033598583230701392992677854014538252218053023941083638234889860491366118620314831186878848804827360382242735345463033373702148692514173288436581486617570812289396442522011742815969924702474518426265148745798914619340769097150692575529383713665673822781971707906186312345457606793524190679740305040282643595660838212381136559750274920663515264105173295124884582850390027683099359924776592923869254426183058776002193968066685496404893366840413031265689158070936894813842116612663182300999414706406672915991678591387923696690216404784760806154411845947527755026473755523699831597618849814175764447486537124870921465860918277196468601269402143456670544047127059145615982836279120372048592578519110820423246696841819269486634073709645235262306279542714778289422622461831202467644205438847912073357133095887775171279189231945239107835168268688336464132793672347239220087686245220975326588025387024763484002178002132073584352840470667057114575781996548656369188129830836602092935696379422830755439016169959942832552207367221353463550691286219138070793541946100776638874729399714959108024510993850382059725726237283119193429874202706026809653848577795840775600028653523156688612828349043313383429949519914897400118899318758945813925292017457656646166124275443191135713955307497329161848050172645496533866373109758948960847197075780927464958091114860170683621207174436543973933916634468383896114528770340260569817683489856583787454852930487784652028088136918590907696581194497327252424361752336625006222648481804737472796654910490324712340403459513831049330156562551231527949394343109159742516768951110785666959174050357586716350514344718780659355618895156725723045623524056140838707546923960494310132285423314351979873173076076744480691854214857097450386628345482231244805962264405347049772188129861474971570092456292139653728662089622693767702799545335999301218239878862093501645084923840929021745505834540144841586198919265083158840912321230732135470556304663234377698106224713847405626605568555460023700171855409946606763699891944982557649735352083498675871585389509617303648518327878207719002044391902233889728547734418160884560584472998631426182441608899176896079903047757055088702916748700299854805232985051983683973697919923195995772915371735593977610949121756803336254043981970526241930387913124813309494824125185619852465436255078658198792464789048063719967643311031760272623949729973084137577592116896453617088185496810253717408220625694221355749668988238804940450774108161005982296208865331040669225337877558036533232494732674650124375873466538076960885672093258452729205389456775115078176296307191103950394459323761524914363755330936513647313120892293666783144680643087186584524207881696350608288028624967957371023095331742150400565186904694732748377117655585935522008378483858180016677243809049119812458983659130065514317319629558852488533670421527101599489209157754411839528131085783223379343556172472967812340233909002102571866040931157974524583632938059075255420438482792772481613255242936926926971122634393320663325471077688486908590480501606035689418378604280194506315227846006124233608690741887968841653041875590581570774838102227220018703567257664530826943493723499770370875381690041261802153521451076507445880256459802731579110636611987673930841959500811287062329236931261583190533505157456007239798394599581483517279609728647797955320145408529407003323720169923126255659016482214124264353619763572662486693910364946094647849082189871004919879288454735153486174311720121784505196082381213979130957136982447926637456906854124868331423124452084495944549416022808548103322262653672249437278461370643649059777358531748124780161405682914391092478620864760162971001608752088666690074396844575641336561788461451384250266770671787796802120778394828520765812941163012665024519425830767626952312865682088783389931988215346256454558034014963843887487221135300887776570872543052319727984671193244124489429974926264344666576128366610122633812744614943904962481058235954319759512505496504598454159889788874974327471492134854941473823883227506990077481569390647650866858517798497055825624182464443998673088173050014287821789472662322939029768204331326969564010160733196440405554936121020010879610368880441119990554409174808838053340134627566467051546668124592769831685571734472372535366650245782895484494109141751580737939058229422289284403893350875291100708377019616748396778405316272159028671254710303533172210472647274611219938405419929954755379582590810988613270441450786605654810328258953378561899021479575097748855304442499042305766248138383172835817298460279948809998946633631753455758458293345045343241318549280500542332579915769389885332994259332885774523197481647012756735240382374702643908383089197656194908485794523995077608785224906566174223951343063894421101290038346639858873939082717173217515950962494405863449547278584145660743836908283429366123019681057814715309126241661827264247420765861481891862168526166723623353984051596837109999310832316132098058376049035859549271580683164074278469947445986249258423691251541260006165015785187691324789432569889537286776339508755878199038801275864505459045367246319669538178976100557798435932951769210935746605940312341032604575036448705366811153257869122474728334032922718526219339694985695236881328684291350703098899308554373237346089945054723512736870035482965881497321061275949779760190116477570031869151442244699503389023192338827018525329110949215562945726012936119850138045756323306903581354749291070294419420923465195737601395825504538176372974826090228413417168752671702219243689310523482429558097289021644771979959143085472026248510619410636118542794516375159390139913385625590996704827033005833582460023267962572455295122388161365660002285514161810300373069134687346583271931114959081494838210615663540340203793744735937801677749179026248118836286966714563798939080995113104659748502846758511711702393105225745035527675396423331657919127127642618798337448951923965915661161275510820463935280899830183381445575688420183620934631125702061532839932336625384685826242311929923566014606711720634895517391221551851579356326562232654568644852142589995670770409512393465707130511109167829020208146530756781479813636149267834871865215050134648597462650750928317064286719249657346957026750987571751565262553001983932962813817184418973945544721994607706211730651640277732102333443063485888931310223253323013096897233043155380568559053385610784678742345738218038405084553442424301129506529468821447767331468526233562137582929829326897620882270716185488785626704136230428833445100254608471073504541766802426207895396479954377248475487746314371761828129922347786319788813345442319607280532518088518136547276275816524002468681725680952370400923724881346399706298052907961556054054645642911423045254559757610826004047809565029815206463992365433105682454907231730015370718109141853479024085760616377991956057114581197552247868908117778800438425347757502282982038704680466120536672349646243849878793924253030123340186513715891732118234365898995452958332957825747431239502249808314364574615697756378541151245679201905194546793986293278999143204455281523329281376433291551949231346674628042644014841722849131062222039992063790848751728208683115391235091451343553751539362862175151221126760576106325369484616769447099086547407486884085694124025324458325882750215998625871125343740454560955715495612508106148271305764030419753761956046664622308181992280302418764005204038661335737227964129237820241861641402564864615788132510998348136596593590357697991466310484298725673741248495394913591842319627724461112517763474135688675418818616612370672006259807552550345028294837498533906901267513599220871638423527031538681996017960701600854546434068587897987198204712428161371594612206755890761716081440041519044529001793771543621173586464024491979229284528867049338746792466644926912551568490211552397667602324499671019596406621605311372638345897500368058453188257213885085469791054878535837920710652209182743437092577399456402730422286480454052422772761918386838275734365614795456079210142131013617035897058929981702521204725585753191999527179510286880597361744296307806333099579337198774085005120704783071875992114555079271760883133854454641911937124750635620528684228352263059158953453724914536993413877643908375366653716732364459875036742926033310512986043752745284099544453473114925158537926568329989345304269985604951337428652621749899610441759725209799351056599087516868046249119737897776277162838451762777362202314775464120491064844395887648400762978324970069664283652045595288518561021594467016706877726131549148934000818135835252179142640363876605384687918816382900880207075729947328035700194374865082400487656952441561941234602072851984243202203472674308366247164821131901216541843697755678267295759923668683284518498453834315142152331952457901391748063632559648848159201161703531184980225136051300445340959727737640398847887608866094875187786207940486659256021425803625196398170655401296098588983238944424887086039287484686633672255714380858219480633373782091469366503142613711093522388219780118630298844474568747737539569791266119224911119494977204110355206522625763880365510158655283192706608391034325278559034881371883561195823953452037021974902593429506773272341113853070579393681879591353906722137275319670134781039619526858321070193617541250527760680452493086388281628867260234154399445753450086780189263563806725463988288881228292615460464822533923307925536161401893595407384860993107402793318504005737811471238865063671786804915632500729381839943472769467360054910790833529655951190781852507617198461934134041755499141525365379235736290628563976486135838584764638818087047129579771126095087348170150763675433864566530702638987056344153204940811201328394545676556954983351607721967962652743673520159434964697953805304777099383418459877431739601683236705733384789453784257046364959279147452083911269275717055315797997402409049947216672120529540573303654081339485214980979679656605662821263459325844640079059962974864825668545827868241536829339786550076480457501020940343339729396878110904447330773950983843721654070108728925817258632478925987695113680257416033154057812464081113343084551177598197228655858916602106565118356596140974731646014285679362612676263133794600368082893839987826458420455693096582768920014247109932185096824089464882019022993739813524504111635141073449724858103061767004499042431745874330089692694565326131682375066894812511788081396324419174403003017674301010156257597446560423963270928205356392197022713708484662038635687887052126087908506307547748241591529040061283597871906574496813616773548010632301840990420787350928345630825920969522431258146473074923340301041898846904747694077680195577952938269969651556739423195299563541127895247192471915972381637843774956624136986328472039475754375842321870017042211612562198349553903988945947774313317532012306811046137406859854022125234742908261579385485935038345636203849724367292457103199557920969213599237412624065233722631985381158382342399101348193606486728472722910107032935999516892602835583580991635823837062595024815485459400193504365545762426228584195696699122538029717575312230626768065487590622018940236077471316275396630317516816409660443424732219429193868442001706884812118157493436533815719410930847325798913328264184749470176444312797431050155459093035099396827526409679147167635984301011956111472270863957053280168695481413571599836499621688833011038216559491901862016786692886333067595366009270849143178094822959404014086217047482278112913405229363021421275902608637995051019957070471551148843841420952804213774486115372781550520184772647985174728971567333132421859744760261473740227814386244788076844401951797299589616443726812298408945603803683328094309475957753348363481743015006300459512843496634694777232178461559418812131549564954572799246200962318165598469873829750269119180856436467943508686780224579285375740909333740086189880663618039129497654756268983118209192222431446388356021767328689838255994255672574484624103382481072779208948151976863774608592074519314656967488815467263896049648138306384038091576757149603545671310972277807948538613017782838653725564203614334308256289787336057118618994574686434875041133349173615093405091746662809961914892234134147274691366425881005698695878482458730130239785743071878967204926880582166815393365556322306387673464995909396882081994037591713268322089087658337694619233124843389590047366770554237580528554196196534098663326279449709581814515296941875115621752887510921383813631814828340232969798416644659412455393344282287495349517357354116896323752270265638972003559708950712801533840049924165691048930342463797117927103044007576453010423094606064796551588070739211022733316026787648169602612403412080779415554075079371464672800082455702888716324096386239665204305646749591087828683619377471263622098356424926995981513390572463519067814165236074664577360503559729908134981683139891431336591499029699879650997627848661341400569535892791838533516656251132394648685292148724530835540981557070836259876528645107459533229513576594117507407135793641344317459427920331315505390593470762014572915079120591159006580947715159989406814209417892317437593631742895613363319814210192756428635102627687031678461655529284032614908589329563083427444430180371804513859957402070075696707178369784936430698735691107957702144875394273986739913884007691674756109670300096208279655662000066613772828912690350659945226421492494012989565471457128156076933872080877937319360024777184636930973512475600482598992163179723777696648558989096917906568766061821340263219325398580722992409048353925763863959931962968815833584614238710354124848480691784400649937375747455319675160659122316139420581629529444796790357078435922408569685759208317064154988733103102419399075290420715239555987109352975550240015276204867625886788731996059129808644120956487267890596020427199159029877082664955696231916996873543102972906884936313527591258615226459461702818758180376443660671651847385057949975720916076866664493391205121927912327866618353176225325605428039215982873074337899927277870742385452215663791716869749342981194015962956608361427685913418338048588731791272915192922083288802672755081612718507597291446549956312435826996760691141201514870392349120888758294524998587531773513300771369013780433108321514036919258302011253022248042156344198683856755128745425389940855881603247291999862681558779969454020497264783727634443411013204401068261062402913763946698028626079534410838631517798194831603784086033633474058910550803644486026997285420469728391531531483962961995911154610383400543996554582044045823805758920388029525469365025944077285348289972698872133950938209675678734650412180180648581101037200263588047695766992220255056711206664223443065288303627309142432449854566838205744919675922509820321964870226706786445000577121544311199133251222196746445782203643275174534903930853006186902332660612460080821885110594206179000644964004435073881977308782779683121044699299583077814888325404446414941913584500547027995313473176590842780770091169498217974735336719172203771346034341950399104335429995807725763121957285517012765686639577293247217940426567537538671379638775435316745452131365791442800715873395027856849606710165971300047561346153453941076341208777895806315948841181222919474936583643855187416363155467537607601057486740188849842767076923611300555359000097772424506637879754141175850749210132720519430727483414074270018538359884384382574115916265512005617498311288492865779373768581581727190195485097577605019104217494483525210209298422898470334036215090167578871635203671363692877995911479990780859601261317542641455412373808532001490983660472065680079600271778526928207841032323278654774891285398053898900934401423616899988435695792593095428568769269998319404273844708180219160672226244101991900379884649817594325229796554429601490821564577949924647738169470167026903529050997096855843753580018175530701500384312878445577577280014388421364360852690888529157656382852602970040327010971996753672832089164541102948111118876706001967832307457090895810406285252904136517991778746279188636063597048241060216926113802683024929358151641464749343584312899286597399722936729165875903634467755308555040521084758778633172876497827302357369222634663862507650431319617169128782471429711041557090124807373938604969350311918943955989951697280499244622365202504709052299643663146201485948907256046928368385928553953320292335203089686553436843142063527282534137495227878699324128866266598058778238987799924588908978877336233711433058402493475536231648288117068400700497894411890271828093035853611103920269976291994648945879544006496146044998136132361748629300228113252080058192403670121176945536062407283111388218341672529103101920726121132396911411372674056930937486966550710701530841342625069496890133844735349273924531885467949329703129931318780233737518058979378542295717137340256641592422746413448670539753173740505875753096007786617833907285921780753073804096715556261243948096574756625371673949780191072521269740151412712432409904058669780734480335057887979469396899806883994418812465874073754594368730173624564057514195739057458140795409169464349690937689082446937878667687972575148582030570356280384626908440902921940420137075316285000325297830086435785435972708929275587466092259306229859576358230997573318021289965309917225375102336893848646206540383949710587530481410733610116963301618566462653187597027080203061720789593748592521256123676249399619251642901578334214396030259784314652102164149607199352751478470109874684136324120258823039126572659078944324497851613362634178512143650334467767478392309103916180862011525018531544755972079105634706571449662087836590351687336445475683319164137031252846845439244106999344223224650670623249823542165046710968211886146171100003179157246412569148735641874154707574744709398698056526474741371550890026472920719525696099271466488021002077414607600216679433138674521507970257843621228402058462341434579706712042952280336981559954430565830431204281242068545807350929980472869702196004680373837587646563813038997088213734899510131362492601372929105879026028970035709358018141773870624969760662195961199480346262417983858551863640222012394635836557017340361660342537279880883073582601086371104937793759093834020794077549474191873352901739089882930039100667483007329740786392248429838912899910114983604029931576080041188513005225646924102092440462554957341138837160391527995015214911554219024398362161931776679056802000390180242520411341260636112945149391039173549943431960673158027932969151521806902230358782083018525335981198506401857103255489696358007465147256776370990517110974213492425950341964536748727730985329640784389591488896472826588774847771137768315242175538408622025971205799410420781921570302737092517472626161587141937134247409160748817839712655623586001318277188341411539713585156322030682666765066201506597236334601139663210982639076761381107129527557685900754432911078717036234383282716019736668703488535159910195898415085503720990572691317358620903786744258495727776087354038872806302056446524987525298853374128942404281000640978923894533480303986233508493840756880475981956724427103233150588185113058132228779507797300280382877385946776581807430450107150117468461424774837935048547866214559031802633336092086064718683856415271384986453578322567467231651535849003818523932762841253361353451240853890122701765832380827481027921104753487032999390737011592626685363008249563502219969895907855786455487251212214702268789156974524571345323514005270073594765000089652496972817482356721570462832405795136765418787451759380762832531701909510882491306287999313688023904470163149740528499848665548585602113107263556902886469706408514078602248103742576864772431283194468700538095781002420818444789488869512052525542829477375977931361145914661878129827612753707923345444007160099506941469868975020999033134441794551479045696970353611213158668928956515214425267684395033452366876902564777433438917025565963516043874901421771423364733007815380752595104933977103098680342539836095064578476614030898614650430566919918248983604275624689538399905861033150634080361047953095700307103145405654737632342475170975272524010324978689350479117350781607171554477418773419481359146483616079405030476900572494681967078912462260072476884265610184643992623411883133656570141325873684176147246969457084896043988842608449077634532176578032733330425947564523114753326611447047893948958342071156987380827141937220883361008390784884411033529997882052316733355762323703078055422262379340436054717911173279586765204305484649799660811063940378532110903847878950681824938197346972642369758950331565356417291244435123248695458585648010998117453393059185144084721961188365924082792602588871480309938648009239880284847520205148484734686237065010087488593594796025685377193403832928228120822723647222387311056353817949917588947788691793825355464738133348499306202480150413910420742827845728650118921089429710951271560588489984953007773198902637376832558090034964774898565667600495511088844848318968955937708755699059569690021795835905082089782570855745392844076139370335633014987339134871576765085748241799369165598120345751018094020004253843643890852157425326717637111758495478764496758760049924767744696692008370757436881321145439769528068552351036935136701430311896458028402858702132083301084821939275882213211912948320247764760404891816502600850497855222217701899246789477326305760805209245401819230056254479827713281188460020991697438845328403418014221844493678100177760533669485735694118055563069233925448132905387940576588543340220624315968050555530226627774601557308104802087601711708216105556319940333998984540506468358108724757724185245910401835357865771562861563948230836736997042238331424215627893521808125904767841551715619451141265398737153797158321698819997285954798368683857364862808733791689290795757839861263505274600889102557287091403976289961599410979747564979925572845355527968261129567225593136132902951430828223929535075740036248361962724541891892867100197523246050859935289397880285355761305916563164725529634987364375221343657649776354004558525793663158562319681539728707611999135626371654667941706079006413886738765389204542759946705200278375824522126979875678288056052393690659295012599315193046146369530749028769825898477996702409923818453812223539972178978758416038307822452086774851570902863847815461416048457700861372592237973764231253543355119443832027213607990399254829275294710897878886812072433197121453305357742234042877890873601886729735180268230485065620017125430044807704036099876698616834248734363392433131125597318204603397620925337348924889373303328559648779748400532469341944238099472142600378730424753078945770898313715284742929132307508866917801236227261162114489494610298842054995550909059733673219279002111531298605777259293001748010044442010885147870477693983874863067765617261622459710819739283769398747703115924125672989839588220171400359905213657170498405964105510465027921431752638265296973171113746422586635823115759742252119238696630510867043532477887555827643319670881750637936299916589291802117804667008367729427759473249159109964326489350761038491726804792229174455661135405225354629851657446559940681019420821367122415274033409918127650357621323463841346953555533031730329548627706574968790891636906743771855894791389218984458624941480483366740057732082698783194144516718601833969476146550004568698840156237666510323697131021378613057395507546429149397859198510575126669957813326069712835490580307482107565784264672978463972019867629194425720931434279448242212538952190168824553576876269372254256037380660508791844089822180591820373736360681618213737415433109105840684638509443062663399643299511126945814324403207164529567024353960310935702593918865525714592270532154342205780801175115268619197623225284096266439330590121251361948045789146825223173528984266066005179222468868417914966855334782278161178428781100992772632203601367909508682025751695459597511588475107710112777082726650746272449459449147668372955166412617020569921792680235396383878398909582554321871700327413982861917864265984599152613154902849258794508476853605988681461467606787744304407358468359887860591581019754052493477131579160110667362463781821969854587883220363540106066058452446656524528671536188264833445843213051779592046502965009034061832790578885632322666522574158847227521840105419734619296577028331916854770614563207497527110951009178972657508689325116051900287308937126655771794155640909005937989271961734232890377283795260503304289174318689395438332500375671696372283207018312820767734729669245706231562230881486609298341015990046652014844235026512821649481598510510527118363965544212836178051723800625713468859521060578574333538638287141732665656197266099306764163399437188449750734930077883908772525504123988906790586626720361933722120252867117702834652897829576240858933159963088865896943895869580957657095842632767822075405196205679385051794237809584055794269273470011519369321468988350876550444235531331136518276267245639364870094061415101965409095527123589644602400368441597407601809588575878876525075096429405514203943033495366754629193806297213774668123866050809379987955406264894033691178864888622956826192359850606686935288494264666736532173858806013789681681472360048667854846825651858413767120515424162631434005935049676777808124092786330029353617534597037348005139534815901454901661537364269212022857429040926201954530262497976197205047181789441466720236398749337554513264225734165516929098587781102830067491253732306231366182644104241939161626858108593747417271165496301934204871690051035752079448296973499460117245112670560708403241984819541639367842024296303552505857200544544797629920426125826626313696441549228733921575626348382754515577138142484540181414659879020863992191491995530851689105715419953786082082813200888964241895187481043790630401067405195963725262576015828462687275735273058697858317576875187936824155308813099684081928473751128166119187459444518384015846168024579397188024375514327934567538923749079099188192095630841545079597883330174444173988781202985464685737150849644933844794907864190523225436155215395800898334657275831807131229270806834034191623175812735037161818707540929432451654227799380227642729572451893911241476169756148226531779101394852736922890411039267505353967293326306209222020197998743963250422688054330431169916013745684684344363901655168055286715647968380813146711476448948296959121033573211493443735972921096206929930457251951219127684223493820940165321586770862213506366523142309701715964100381132757335495058338377435046860474281539264799506661799437091746369770999959608901311343782111927742326980726798194171102685312354159577883107703889837043841456548272622842925722525641922232584132345302566407290376410514159839681204833985648840063885367788810535241823188776529647978882225145607598417542376947199929063378573956813338477706263134851340058341450161576563555764478400399377138517887845614710813545661480413125382171048347823036709526214035937340764780451878478866959416635164138453584532843343808311175229626482990192956685930192472733014928189216108245001562599803512089847393142842284611916907886254182116679202417754190751856828142778515313507134454389265350877569868355906776275841889363428151609937244314471691151263791677856949250545462942137779102022167859919144555242923845741832701852005371792283007275455948169734733546102142425869540812208329178975293697013796380086823126868697417188723792570151860138103181112179673429152781452702359188373990325260291430347066702028244254326452641065018669470060447595174306253909644985567737662112959296026002049900958412033038806959010371632756561901038088278713659671476818234319720820513516730396602116510252012157091349433587446680439827385058987828539893067566344766276431330011343608242745727210151884391729749113415661328640601994711369811477703257840567424059460591896779433239708957428219663489103002100791128967984781652905225098494283594193565660585675865349773413693558402993095700739132530441240227702456584367706383862808286228833406169179530419785309814186781197324828765975328607643772019327691901674944610004542945772511573589190722002544618757393059218586391452908665396286666014745451042994307343473539000457232572175531407108934511836813570097758280542692915833117579646500319066551956829124591215452411463193064406243073495157204875435011990667712932132192098284763730703909728608840966997630107735454454709670316940478823357001520723525376978547152958718539801607517010031299740150211407643296445433419826946673528413649677805184524403375776656752530567551569698176955862009765284999059475683665017459120638734678331273865561504256926307704648054436759743744922383013826768996557358767021996617642226513414807106348575664723517934446985122114662749335683682160747629098918235215256665986482526443428213372192866121443646252514286272900838752670018128570372238381720581716534437795042125794731719244686320111910072458890487033898051060140990555857443762677995893050482910605086014926814229932860613751603231162593697659373713270021392902788072310131966660339790721268363826292264567155678993385778037100840777062197954297836091509838464689615985516583486406244641067959996324287608289951582315965620374796249274230397478627085018759010356010978904153133894895900849108830798669158491068818015340043463275211946238467832737316950559828586878599973582046523695709154227838310135264829649646892026067340193723675974173084529547791706859244685285335370118127712645075120240002690236811403631620867946782124390090272227567261689519157036438527093764975148949893057133952195345174018044320086926499725503975095462558290628003540126691895077145468401029030310462906326406342087136789673242449204026142182704108791433761271805855042161121366499805589812164509586598924231445542234910411414039361231148467723515265436403181348288666396876377551072669419113008126356301938247655074653115528646983110154657689042565988028724902319140254313362278620219798777215407141776963700611721384375596451327064697461469841753744358433930358036327814623373903518622077672110243660702766832468158804522352671982100469067130249726540737574273679623962401748289563312096119240347014194010400816935134248397089273498305730985828868471245035238166795746090628967893327350266523511037919314073595661980738331551812294579589540627297491175526356481565919973585332653953795701746698311491276853194878059322280087138706266710826226753563803672079465361216634566143510037826650242938330554151849571485847235340168949472258723501522772576898330579939531545564142621005183858566235836492650891393683981832629886966195564448301559285585651399925768394948324738933070040116157296438477042909534271600319318808787677171458464713881687414373717270543285914879690806846068101423620380216281737625350520962046642452155013764680731182695810899148319035973413589698310425400193638495429926103490596868095295338947776481564570582968779102509210226054836137912322983185077500951063139043265370711225491026092672818483494269921810088716769937552831715335814781183707213472606769494894493978678881429947433383667707934430790019906796444429328472594171480283536891346558229701486759227392508617680317858619995403034396426355057767061382135044795034651970349566430551667091428858222948693235855723136463131181856185586134514152093658617653798793985360105021353472893746011103939503133718901979846238332441894641095974861214220707570716669911117344597963035222238989709840548334593602393928372481801344537442459681370989833316206955296562643246351238705094766123855485864453698333142031015601143339097156551019997778733208584384191746503502412370197522997568946311378160822399656436129046667543817344639188248572893040377488846491371102307119911839840202831368896152024365236741787770493436945228312745074396899005120378171653505202840375953322783694865934964841658237493074855685285013700657237753553903809918372592497143631966262736159133191155069776288037542929148272875944992974976368496826681610813945063828285209660405355544291326868888032213270335871702321245473798995669117222439243003457202327106702966780167207058753125202100635519055974115180063297025923930079233455448775987409472621232212711254356475237185788677026585602955180899091182029137239846245952414016318261349993723471349142626760307772678454661624897135097132517705146388393203173188223954413016284627819173142003461060989257905437865537755152671792664119581889160980003388069951655819861880672392762365516821518174212435916768654156537342847449939972426435618147234694729725782179119973198086775281031424094863424304879351957296504028427797717356332695944869725946280461908710028137182929115763125041050531040010612507665978800879396918603520745500684727000245249357468038160229590124320010832551701742753967417924380952920660514637971544327539811302974110085724443133780475273635440695221609434789530325007947621386486300175422700589549070383223967568337760136383828443577545237571782373626680204647801711501266592511753033700349259019826216308785184080697476903332196334888273907909208224189964624379639965775997067351800896408572997965247764667286326802666584921853937104808383557095541424523100922076248143774882560084258292752015732601247801920893765292232705105530736975383229468029861164165327789753749848121644596107178881704050096512081586493103890031224327863412561072165828976657225282251520226110222802278459772429658409332049081956978950360198214810553301517446269365320545355906860629508072446627514978120327876949438623251338458837777529020578554132614049382096536809368038513923687549149494053794752617354522063622539381182873438798917104514963248440212940620449138340715516163268637257450172547876702805874461256039415377136586292946829466142024525633040832650164088329660697061307350651983815146978331795224757554140156910035518663328871867351824998553180863781350550494352559006513067823422874360487971816912644385515879995964576633570122081832805804675968691098893262903245876959738802043339650696831225183218771830730815896515333302037933720761565717498818517940497077572106341615682409562373486326296709005993672045667379221942250111119652707470803964392636267310966197251537743579408215541599087213808115475936813510600024366444961751393228900276049333067502154688435463680162059289689491671477187362611673801820596182044479107088909332917271152527129123460710098532743510031995922685559407235112830526586306537159337346177831664328396666875029979846144322255448696980669492553766105385134125638133006670068455887099820904128269624571996958799766766483694947310751519529404709638572989301632972721027289591842658230803186364577019468929212587463965618431874659780082889320532845686227646151530934117109325832582508620682288286689571455600701987274712486071723413767423625458748601511385855086194887512270944986321416123965802631777259069870501532816914943403290452311198305402210859847951686003934417503991477622444428436056457859574780609634348615274020320739362766113039520549344150048034879759388640052364935488594407311053369938977017446021149732231477023828515201380841685620830158120535081656009329753924192928925522572713177293479471283793769574394856591729234415507738003561753686915640693112605139840914619651849789100877806392382740220851373616121262462251320711334000778088804027118705711381412698977446165029185044587088820539381248497133825177770555157322118634092456449983690435267190273956042451212657537635896238735799574805669617174119256453353675449031726426805010649099563841885755370062561789458946317511951749212091339435758700101232463811079871865602526264128047643553453845115750877052077056717690405461588225910608818064624613317005617135106932558469259168119573005101196261540676561411735931746936072150843035414890114718952336597229324937091566685279798755979330928580447229035771804639062862729644006020184159227745523530959647281315251614797495581951602741498140640579228832359754729773862786719614476785575669909893857986360879610874640969943541173492616338465861183888103655680307980868355891615198979157821861716936003094898237604013520264814588895566205520253037119520032556308681400890134283590675503000752657932459391332697938978605367513927768285302552902349595669662618822560332244701556246316888976946675469229085298940038043391355615189986046396570191947833269638195407355102599245420242114354176190773672085619795235563893600738741464949594308316652494687767534677749290497311546399477622083742453513143326521546124939595843473845137111043616113202469486645099877780896974637915482038555730238866552423110055921165967588781923421918332071343436645280070003794691608362036772564532867858892339246414340796274683780007615943716051943318895263284349875622269464433924200879985031973672666561502714537640810619106988393576038335690197608323812795124498760661327701766250085726270489339540429267275277490884584195586391923861964477557177307112035166427821967849568978433540438855744945019353097585790003730892158314398398392194833149499785667897812644071534082442208285850597390588404691420929982179288913450938149876698426926412375059496532755345274423098131220339185549017321174284524384287193373466621481805386066976592209468109592533763011805082399096939779431074829860757084736481805078074368457075487287025327927568033166404974409354237712019064533197875440464982995924432493291413125839601627077965850781380643356618010497717279115886880194480741556967536492812632041750794584065242807114945851594859868427343212840203797727858600710604815856657613911120703042995235458700416529805747109421531452459494090759731769404810031576967527191290082327820143669771955956554609207016477978312426043158027212271041146709227388128853696762184104121728901183812415571367593005932283489762652206734772592817496207626371257287187867996444700606868327699119162035977439765832678631760446661653703615490236584697688486811976049357526715474624162540259473016806371062084373775509003227302415087250998805627939659576031276583043263657881003263810294958182090325400414318179691999077641240480622237268124918827480338995362278871886594114183012520669938256785700583317831105694474999793374647842124672420274218653421718760354625783262598511439644986498790146677268777300094587422953111413157722321358227111501598416219752867918842615577641816470331744722724803314221449359545071176296970333669575606093633583773220114434553149992784357426675719037894096411709639708883509809348579713311091659016776209429999068071382533440084363894413315483797311188402815801094734632049288845731494705103147572088204013761593194156502317850437467883899381065712981026029063407035764129311501347426483713101573976099338332071315878315213383304873551808927082166038095211916521577040846190997672328832462846074959336197836627196669769376376878557370303349213794650265286753572402985652987294598049821266736181627937061741027332382881197869774155479715981572875933704499790308748095791037132997879429543936581933190207373566298501702665789768703229692117718489139789425579119890620557324549953396179321022169278458414806999229994957519605601955619995820734367786981324388555975023517630510876281133095292940895055529395772974769306192950386493365804091003232891010582804026393256859210958267124496209360212832289835960540574097236469873272786898204302367941191947198181168754588800763653006075892197668352657337267843459253476347409946401443836775558355231282465311739261463966596623119597390068443428926625616194076667472773843332602731006842304270098812154387357318472588647760879253495839722437427297705639131207504052604086456328649284230242650130967040302580680664448954418021837492885349280350109007435688361045299019172292200984858456695468022321634245717990460139874721481054913112904864314995550365631395913472284550762992918632013310374226455219430664691560033160679224643404125131033770446078210003030352210745043524659798184235398440660968603693666047180424541673969215689324556656937231555759467802239849956052477640896404764362064923500102705911440268522323572671528125079782942775458539267989788919391799802928335911635973294461380741291390643751998142483193103151564698398098413156892865240014398765640472090505755474126519858530266376094927779319816447866839251429009980457222944112143102360804089305747750295917669939131102750243391973565033467210725249570732420191389684901872831970119153699649851214664302425264342600952985439252730567485782304709330810661995380288568512930399304249521010627710682344501729961526866640470997558797119031551239293859030480718035635616445547036707213241388116873420343993826541907437521341731690818814514046604184504085988658427489336941702834589768812088870054656210564570513206276526166389861462929553143606533425134958076037722389022644302246193883944016000233676790445116389208267375423908946681350753045968140550461497099284094270738647371059554943347762667936798185463401892420600644937149774732826160354407386479605593536963094672111469718012382476474813644611359344436281596077873217450206383214054588777060138705708288235762457860991840030891784749963266405941739487617398119686213834157022106741638340084162806328313214967920506339084234202073571794573316682062545138946118675798852362155862940858207134388862842876605882256723625135152749441635089056470747421415176136454529509739109160132464257731545986903565378289177341406100632174164052855863104295073926846176855174691675948183590248447159610632130471517753288680190288818646140216842278313943177437680685661641253807726649819589250819646787386099357080224338726561385039965471862796441935759084495596402766895279838849210583329422732743196540404274465592270303694190680558285509163624468700569179571635223897322347632959399080039053893275291185959978045344770438738352700175861276066820050990789173116785178206289146255804013614569163213776590780693419068950174957910425721155860725252587442885903410815211106923681270606128265356597466554206747565656848583073978723871315303680565840157022156568995925912055971974575794856298386288282722743057219952548994555268624820641616121724990302709872669550168549470862513404805267000812960600990287775824300587475169340352551633655011527324980906191645562203521821150384306366117924351077953479178856749545606320667009667841916459909435762507241499664622558989791388327406769654466736481956405728040274105495003431350252824721692763445719801940117508613007501594992433112971809800379093042861130787028731216941510530269881859632297633769426454617436959020471878901159708894890587563050977523563160503675957923650007599132343517967354768780663742351940148872150211878228544375118563862832461671746815954310990825050786141456151129160837292115708739738857091502628888549310956602513960583238477045221530073767697447513253654649768941730827262906535018098577537810080920231850839422577953234409810886971166961188916593595539959606497473358039496446560946309460896357681493250596172621491079924835922427500487628325658055769614777763771866407517400147552718963507598358926610885621812916078012232524095053791055773081965886283953482950446376997264155824470073114848601570329728124257285558454978754836511196569939314814458113872555670028569411980883558836073186049684902566914932009273552163884244767408719353490201446565776331353560332944654846434039034423862047293011480806370957511631830668502554702534372295911562831772703652203940196314517253187290334200471693500021971767288741661691713218747917701521828268918272380428161644334713062258140237380953726708210707668415236046171838662266085260307406764119890753878819290556841754402360843958393992685056108439739741836343026068844467128254627317845676719531352952775651529999453112930959267516684252504909429298782527481204261098438060853879821132704774192436449897141013276341086387142849531696084895085998568530420548296201350465875005552626667136488133686982197080493102501353481526024595527344942599930554497209607073245548789062738667254985114460453636175404352640417983873062019908109612461511902987811344679710143061773862102098344763330702650353914861649462290539526266928313587963462285142265494243703847752705084651561778787225412226504310171641164331353601977683897686956186256373982235450744927620974398513451036910504090287322810749915877312246988066777189719821275044809665017176247756940283560323752357966997684383340177233440653470339215277141169356487575315943171734913692161779320958416819230325328844587842125621126316549247220432072393007510236217177760417362649175604248282126576910767399998058458907558831071397491633135129571100974032072910828955869260449735485609043533873282220302232475593073826296080220732302050780023093149946551344353459180070287450480565185107840116544295613839266855840612473516796567760266142308203169569944364076848282151496125696807200694932202844795863386535984904333085621287969686559045668663722564013476280670672235615265696800449609445311599018363188578774578587672720106488597764557423225621228803258331803252994334340044763069637107886819187978183188250028945083484460584541393478963932745717571047607538835279136052514619417378747120522937806256735231207078289895945740165863054141807938219731707382113244192459381644879970954677064521398275150384546239546710147445306714410860682629527091872844954046920932263839286228522589116292565183761293102538129886107855647600982042459581427934683155131996579226015799428342901510359235682488053443481374326562800308752928349918651601311340694708023533034164261507997716777061910698563944819133887302906314668330167516561006165346444456414320357493413651476732249781571335815592616057487646380731929933375528001905029394721175938758916228831454201084662611309366317112716859131861316170509635486945709596619254809731301959929557304356972453594856535395938815624546041550147130267164579509005422267059424455409592365721737422680691720170072311672434540786585401718723165174858688206814932934820116223356401403227057110147101876105057490919919913117184835658667628025249669008551610118217239945658284673500655197910238515834972747297402613681606058896673502314722706576719633004712178928966067275687867787307711661604677420208046426882234187612878455113640338672791148634357651718652163665403779527165183984516149919619960018482088837815275252286782494035875661678127710832247765595646319151841447843366603971834478149833068849667526743288087954403280498959807813331615776281015242634127409500568357970604260082073758693717202778460764551955019770639716381521751544963506891000869416915186584420332148944902933373719310135590789064663150854339589506119878146455173921126549071780412323107047133272323232325608044745421876780425466756308805382017371084940456011175744308280516147849898972876356905334624161844572875352204422088787338537553342496569277096463750763242710838266357681031515227691752792839478367697809951927817817922706779852194136622828740144156159953633231112634256263905172093734006833924954926345064028463053929026150168953454808652212863899569907200399702417245647517966757557557157056461762107365701271699386051517752572653248316281877913983342850913129253446996936226780773436255562008779666407348500214217220267683610882216420864262037299050516655391376320116573459273509784965149667254642522609503972593358805892847104065514304037697970989543948214449248455187936794998774193513719636995145416620466049954360016128723141817162031295643687215163919799010431200797600420780162050501443052950236193533395522037202789434147803370410209535025376017211994267753207491061236882439715498783238336637711770041040481053161701383962468701199933172458129590040382284481623515939519495451717036256300094816090611571302299198379963992831718299841309178659119227832475067415436974402835421878437852569686309114012920769540469509630741391450820225957734213784082116797943032986862966507486034378208194452031373713003032849672046915317751569518399325610833648807505728397240753098017424140004682774632800045160930496449493793739955463693687973960230034325140166566748454579584341535562093178556080077787120180358074195569836627547313120818169074485139189010501585419271649461114227443159012492128380879416098403239391548617298374384820379494572377122095703473161175602135387949863241239518350399507545437154758416421765673408926573913666981466556063625727199011750427361284963446968656474087166981296393493555833096788646463017222366107355130843817894777559437553275363912544322695214078623461302900255988461694254827800850600760655337878222337660483877336420349878186054581237153192328995173311561575713634938750427774144488293382019971819045558221528373851616697642491546404141885821047571350484921811937221263935740494968397622862558995455305492908418182831356749034470465578087205602854882603028461597244313036391437259956798045954640533133430389936858978440388479185094137403448086765579408439358144278928233493865701785769284561229137636967491839623481611763486162117251530017972374646575958142149212461652516500704773421220992655477244971735371053562274474616612387444381054855858728107624931385207018146052120745487476454657320066791881865071375087374578009355892086665838983726728762569879263722960544459017155992100042776271038089625481520396012755252869302781791459436926686219909477801899430529554634423838065978555397038787758240058449465580357824513654953586056973390635385939727223248455994344139749232774745178584305184653941633722992595101009862464496598615026590035182211751125412007806092368385873985451110538206646268201487589411321968355544981066019540307091333618101671656498136626588757959882700606837571795016207479051081187509863085680646182279350465561033467907713680946517570833158411776936736064771121454778966095405972394845211435971665096479495510548287811713572825200265617378122640026611709998174503172571975768891621400372639374443040414568599990346247867869731314106433787181332094450770787211659139089232104302108853715192335570085194672921216610799202508314074775060472382302714728010737898614709078112017528662854814303605898604435167806549905223529415618346363376066353755976370898784095797062858478425213073508244693980168225527948598673975571154021290241234353198828060114240392047492389497475153225911569958586468076314660985004673217395820009782576553143769976801538808839963340824815125919761368317516032588649042939936304057001310238385677799443359865964034004215115057171806587712667775125388757673774641750589436103461190682032523267762379254466279395355584632870837959126840278397177334871131983764123834927843464566074279137555269236224332012329055338445530039541605653410891136622005183006406214130898122970487869344584664174454211972946420810582603935337740562955272151999259842950480735733222120980528472322649862711557593280691616822367565524295810701035003544283063139787948395610467304251245461382285917696488088384672409140656567175744254514834849056382261649291059648974966016804941776580337387042168066664675243336298410767253909349783525672494166954495085828964765373007565346659783235028353329542616039162484393497439603620925348887306110210721951815898836742449467367945908232047860494092738942306830509418778116130405483374212851707137878959794429166710593552736099638195922304926646158455672136770234448350940636992061211483530803186178202665373260873578978913769732319411804331789521759487645253256313366692509862642629942416795809141370025281515722958168740270398367719417271747725207292444503323481732995276261096953363870303708895901498247474639001790490024250276545291051597157715003120298270211922587803774092949563947015276494154988483278105594381608256317115203343589505157985688686594497241258105674138184858445334736660083752411036518539466564422760424566336334547043678815171820855707783168889986157637805592073648425360437385742586715311200778770442715068302658152935910811241516573066069591159866223039083374469143240943837550747275947411732163454708043558147944570006448561057128606665006132506214555596011973168733849061392448008554452011493380343963217910362873311235193896269277111015141605888313238621647563399821864181540488414083322605554097673474251340298702466553685061002024955045288306563996431383287259209368747303533789062743438665819687197711998347920879731163681657504432981406461875395032604244527542422199744637434075366766188947062657797921155265813384579755072548380446861392790214413354759379089890504028079516745081745736171430640625534928951909207595376740906653372431893116002963221312531752986801346656077078137033992597273294136525978043043537003848280392389638488852869677567540557201289518380383480338843175311184942780757790466194569467163924303486757116386757584059632929582597587091274697987084891615313867331063556747572858537820208149390574122843021637306941972683011073723991642824580840062769827957934225332989409738929200380982982332692269702506548554438215757689676042003180060306962944327690078789121967613571314883141518852063769957907956442656395770640800970219365892366314347598117831761436033884039641865454223974596727315890042394191632964858972540311856187727477459661297597853016347476830968006186895091291742419010488482358054565523930547654992658686019072191022444405926780547942071706824536264745934521257730153776893369068418514941773939372946116074753838386111121933693467202494340713303154963654364575437234845939696369821446121947915197658604326055676616012435876207913992735787813964368053462718593583890967222471759632574218404289025322744973663395055027427107372613494900330624232555351133012048787573432490717262481386174923378400353626095246336928773701277147175468317564595328355874699398642798932435534576475129715115079366815044130812447666863121162812668331665972906335648864334430565036865114526226887075982794171868030622159410519929663275889601192363379583786412385001133417076734676162627357981177714748466618616382503793430715364203882430528381873878495844334428784076151054386848370106480320582925482287653576752524061874597448318512468361506757237478329880651920844530267700821983529452601067387586972555587943329459060714201251157713276010612633812984234982319463803259345511526063985005879007666732554205768417973924371541800013836053626825023820949623800962321928419024178843196597339112255624985157131119937600953087121987000259377599463074923016470388317189928437677365849755146448610871365202087503059648379709846080433149642138294595896077250891015086907913828645247179596879710572001483071225213863034547579385204818923821538492866204491133229864635978275511127324266872259013910340926394339135405487069485540334757940572443277331764531198111953755567717518101671795377730457250248357348933277987708614234079426350201331456879823514985705741700846681974845929058375117198100877231652741654097267482351830252828305448535827563416362450662328793564562824220825120194607199918806191578578603018129159326093800667820053081648177268282249067979497739337151017590967874375663008522521102605234899386566397627873108645486052257198934349378942911458956874187725349658896377714424113475282603651534404301800914100897544815003590651891031245878007697176062119195649267011076690764436053828335999939129810934969504193235687001275263100082355673896432558315574959968186984546600983172995422674398490141618047586775136695228797872420284068125824956855121435496827694588966864924977465938130506652573946270717996333438728914608101579598842190375498873919955108026913603532972922734038956548513174065349779910339687512865438192134040505666975928217340815946959508550550453606857246668734155404153336839722993714945308844786957012772877068241714895353723792863060744072075969925217598058671089620458953319188211763389116831145165779703894995498302700333664208680680063970993476229834887476028916687406197977093928219516088534471227264913616135453801380253553882179438386315100254319861969886420923441121532881312194093702997196665141252437676815449475047273852819712776213754781793660147125482904607069351146977076385238122286221304246271891619679492145517951267093769840824323552073111218365301382471184051486286154682894688382832719908578564167702973628370361899134922751362524248558210426594447085137380642137802147817883716602912765291032969554096763063579666218660903027704954280824452681008583043133795312118433568301131033467609257196844921497593681066731176951145969261207966544622124052378543479395415509097521143346510641982195765101358708485586471639250341214055033413321806012387505330554511989270535566471948078385496244163930932690254205208738053063170354079596744932531028860789590896036666110351279107238682831631178146272980096150052589294992598408720364498915596438842152291481661020359410708761290825554610920168735471852058446026626833710130619251412316409927410695122591210359282381971814004382596184381376920837037359022332398873883429029656153143674906034019149794181449202858695009368382077788106257136453876993150297271742472856414776602138344973916404472562985257849304773435598198896838651397924338256814270171961850589568698839542467237962462286852235813992984914446388902674145839613439955574191561746097200877663046049568505947731285490941300043826075301094663236612782037819845075137356160080864403635421215171878882006427712292426819647477490883060659324085107941971747190272915324001602932557159741602875295501507191189057535715744716114696815110442431333855373454965470120368255055231641415476000040229446609110383917727646553736251523732002824288387917992446664821956763384084739051276636439769842817080032010618652823944216125117064770761549523809003767384477506377753414513868008868369505074548454628174498641152911629548914252867243659932616023571515104607780730462143308581361812410554935070872650816835003718974422105001813089683267994113521481947469250778199423574178912477507001144128576513000993289834895630089107859592970301663526583259537186126766821364273580015643286468059814438755016717476361744423215060816928706443587534675287105549920259527072201611623219814855516611546825348887545656273764434325703087600668726619494665376014772115733243328066836164286812472028840763127994765192117745490797867417952284184841571787550078673525954126959093404530570912126874120675316010478138285630985529542574897382785793726852340396789420116332661590954639844898519055846555494442426700721981894860924503451444148985304188545044843719883227260718778275833270839729112998268711941265872263783327222535000778300588443953596378729886712076422865642547983582931857381809155316222323686485438205909059894762791129729862106524602554479896835504642616931766081979221656732700837998897223807849659291064543549249604600108936517788172229622478816264814936451996914439771914419241475513799283649487777060871708190630547456264983654153669357853543924212426205054407837405563202080354082839299002976869080240898736704554781156249594741945781565526073636353059050438211667363644457328882235575174289807786419675034321690711943052392235789569264474095688744565742509513928099218643685375680287930562879612771740893397437425503821628511461117746041473261847551754720025598135203253642911928379901172385200991287181681626006186379277095759041929373540622456076353257807664391421833952675241434534201357498245477190591090796224912704975344011160684849465906600730694343264062577562284394612080605547673379873679208858973167075115171795306517130158569047572678493699416195919596447459605189479737039820091016881062435629458184880395300511506527228248355671583797016355459436936535940508139588049620731679107173086586413934930751483336954448333907649484713645982371164444942888831833346837173213923268060179743466662368752291726338073531750350737683995804482882481042730550961744054440018915145681410010513686868443678344221096504376381059545547563604707647873839591655999892859257945956908804798012421406316099429890977145110580630282420329001199160557525269771033688527962103557210133169811484901258871545715200723100488464345981775994376080743502849598730964529208908059303508558620093568221405178501141096380673505287962076979517692059446386013552180305950532346332832513615617645126769990766669116262245902562888176893682950816010535198371436989414731830134259596469286283787790163913662493362411224567846494124357589947909335932563729594431092786501729396217870496581781021109722476772206446976596489670947142548699685527450777111828402509204474073114968609095852805688484747854187054413054661239696162396855344151790602531323724534273166662008079014809708734158248952428782048040142216559274777926444702802620223946704737760211957474382271067512292617351930267493086204217337269380732613641099763861094170302628036155999433355864628481478094206477587771274004641244954114656429252335554370896406490517212588725697316330483988600218877168547365129162827077548519372026014156620432721280416071073586592236742191940693494986144592683785529345628920579780236509690745735557104255106094443720057325663935837708682033997218142653701260752788734998400949549326053957271292338372336625511661507667600142719412222011337397316195840081040069754394545730663702248300688540655376919271078645409226644632028142472702250304813553228918411064415754888434948351062759324592770692922434617567107890307964630666271732765880861941722041132070980106111139950406578383900677036880702880269627903147353239365815221838450668630284164394423812132837555602818813229413177647322962110961452969066199458678272425632162823428883972308592450977602805855944067101193032827836371926212370247927559064243188333502635544311047505158931484614877203653241502223826437608776045443578532134312453287941022744305357723849374991354677730965769669081661007792459432644131451841277996822914292587119449365533968494047421070118385705815729227711943245696215102250893192951808788731077759493233942618775008987615305638995358812759064525474648859391270268472682998799521480366198637969692958194838579657329505134513761449964265727596735712095314867642588526223459027933388481258474534340390868868652623364289809279145030155916461064108846357684569075636494487511015685081370620226023034088185999932919274539460981447388139676485353330010665981143793309650950977702138553113907174264610718665499378673259984676474076577293884241304221943007168223014735956239390208970403273723996259664929748031519368996649470104747898725066454242438001732703881271478850482961997186536214109039900125907510947899149067424587476862129248260093876032424111465698456023624581623053302037265007315189516356246626377280444385088329517687249646754104171461472260507431456914136160501221155500464136168359415677058617163045330744130341072241499067073361537696260086235564153124456020968072039941016961475335583147933230880182954650559564999131558893611980980972264749140038757706903805299421254709536680201990588692846974244418655677106694088168513967607309734592759546353309309406922137460739382714945895416974531965442073262433766263240207400808569316785203310205127277648379615941021458826044056194416783265550436097198988215199411828253929032453845200808082937302994768571344848774093727141101612217367435433113773428178279157963040170599220412137830414964998635937826120996900411242794412790606997272247447685438423683270456667806050631681920630355348039330276407992860083429332458960572998255010108593393865885517230139040764765344968811330476747961584247162852803206710422354166944089549849089046615110056729933467728115382424480813727518699587194217639404975652412883113699964053620554507466199276538534442063085504474179159894296832166386293073600523784922352289783853625296519504922277853737111931735049375197411785750699800858830979802353621974953374167061901494649564519444346427227829999903629393401327505706330839786746909873654400161872768798113668911419691900112555033987621836262842933530961399261009456264542528482450530055834303419692402526302233737155903054099790777884078549295943848115820618988347986096939534563609098335324794699891580252668395696245490168704716817455833100726166566187269654857055995432492275350406121180895648636855837243221553715199602627275919843817696594243934925066241505999551066537049300601078209429499393359529699463353046268518594982637063378022962158423995536342939355416682805005740373389125380190690054752172004576815680316795902089341379925391714289305775029649084499143522489184687154727530869256097548941127553106707152151969084186221576372451609776368731357033941987845159757797464653351437832085143092452436281887730479710877646995658119517465671921832053928975029708851393081001629374694464648149468732185316607839270836211753782841319711426098549549949582956391112938088587997324267600306757134152466034154176774780696962581674305054029475626046654777065471261827579751437526331791241941116647758053356765400628500926658457657175975087341497464688377173206121645438791678834262514861975275430580706184438233891884030036290856236657884997872187185730961609691036507794137543648569017294412107886573031815735626227163314495064594032324114319650385601380888349286485969997585836241873521797063291700294035642631945175741182761522055850179027975233737097212481378041823957389576266797834447534786938338705517059374075442433572110401851817796839406723229607222432777713806463121187377210599584645521561765935258126093072172442662153518990267572101063900610048544036117591036397933854320878779257635043678058282617562378894229901543714297771242390297817699707879123642415842542912285527339350723564590010965887772118086993750655126631246003573804975016671747475101115412205026127722694820833631028847234988937220855802837840509321053550624869752411967312954489141627905034089836762078049492284833742243105932324604832325616594004989444096339990565311660748985430602551619324260317735992622435903836509994419907798499593654183629314515729717202089056060662752840648746720414264288127889903870611447158518964502111897909437317500359333859591900901827508607113134994109380614576680594967332879402184240900427381520845059165269043844171439627731426540093822390043002027812654132482374700819751657823929521477139589695827654320010881669462333710867169639233526961359400825756585490715511635095306984826833155179061563913700636460512765213840252918055903939603100938554274230954050013309180999089765905119390575415991102447650814758496943944667493167088620998559993520796847420405153052257608233605337583056399179933053430140575326656740162585034605095714055231831720188004299799604691521463784872756262946394299888086325296464630691574743689401382185586447988505867855105571364078817699697107179567696803163483371831067566960911830065227651849731038260989897892866317660290798301699528030583834049282033968646268929213700053985150306896456968308986725884075660756174354195596348798952776999782582166742962201901096583426620034761359524607906675661869591097081783306066864687422683253824632429287100636289712319912643948168025341513362156909976699594201266706141672055251496106670204091640889396592059090893440631104912202370151510265638306614989321470575621508495146850811032063421872440504824456174490280549123023132098852718015259408548164510118022780685237158600657782709483572094256265846636500072499781486016353720239521481691734576440047580960040571719717085698755154211985922817975044114843663095209761064513874378254633162728793348257309587631894719807464499386223138027945973425520197355897854497912655058981606193702005328434930839007496033603382949523075623707835085775258911279281379301754451575645434412904314571082105408555940265747902228954160481189142353903899895737679547100336550684252559522954342923917430085488923584241993101944370625694454932372813226725426716721768964606266767373896726658536739015034321590601410375064705685926099269990524036535768743944108947166342646899225740970348385740379097015761367739575325793345086963160641785459036577016333423025193744709034862065738205034290967556979291141887035654581393842228793162693442677595574279975674043389024226927417901136101035503076180012068104538338110067066868136471795232634530802331921478394589765326224147227731324097359605056016460947963386168121285129136877523317933548985942961264231119043410630251048741401539927524645051378510779691711245162583649195636867116102501819725909424813121118864581122090155325635407027898802996859668899171198970845735092772129179797681485951639407199146374924439272400774571129132394057569453806292381886762377206461077912201890932211619595957587333352352102343317141944844837867596207891209879856974954977657151867702799064225135931952978429257060984514613468710098186173818925133788041904866531589309262610256511207677654797245245905722573275311930816816813616680306544542108327164232099515287284997580202895035968567506231573890377681108091235948135536925177468374021988432957081813811222367250920471641970112855990117778185407907170780079338364869523865561796387925649339550844668478362404994025776116334994763473520946490650185513026144885873978176509992084727490128765420719827043049168990299729075091133852324824092526602173462774051681119456078329540317164253657633350002145785971602436699598306531734170102036711643595582642590902851930171034889981360231444472882687574319411050222484823172913879502675619690260995468213697668767357904444310971241471368646205997203409601921131969298038839538105094808813730585564633329610507951820693668720637458919058913678160897357039667140059916715194460323057459149126824063328759372502166456901735741955883322707878115012705858952800172515647014094764361071407703947948661482027304450662630876035897158745875506922498090451956639807488368235477604842764112598445431027694021882570372429240760012234843802989030129431453530412052856443729982600234618448510634756036086941056734873504819980823917330916238337161426561146759534930464256312689839975341361510289363013116038918279026545338381752347497124940441035721076723015796214498450364961729428579297171172389012921265704359098164126042695620437791112371107937158923557174532111799665522071106006253647459877896266572205889943964910273394532597438443337737601504963114942450475132126159187467331103743762854845120674379534429228838271148668897625878426201320588695670475591529760134523625730660512534543709579383535445647020066541168858521538498177663605951969997443281161816452799129051552325967911786633056688395922057411172324104706765658334765932504999653461004577146560746522658191449581985924734287121104011741279485997008894927950763050677392635489043242645113459045293710683855382843893102891870524110029175592115889399297784173305328931584849963162405669875308038545501125250645889871509497947238103388144970956151580056532978938208517253765508726319235373297822277365738009842530422259068852947322257209997557269114010886573933834205304258142161619785385355589495781188851437740487998792181655273182526627292337404468630674520872932230122549257189289017265989429234054756735204532785385304475611954886171524139172343374382602881973409146491589696156434132250954575699259995083592146724836249627169070684071610637675974296707461116790006011158595957905338458438060115253245874798185847187561115411568707811612971982826706619598372798418182627797384683214909254494007213544478887110623774505620647508285066853615906668866817296870789202450266464026586281343777258185441296151159188702946363874518935130233085080610231689039266048103305894178653870423670093276511027414933763489432413189094657518283007031035463531759283508666492273014490803907449843125935833404848041046062040585392001913135108587867652978515536609444656211544162861722902302371862197608848694739951988913617312227245383986876578993358033633778029779205250617187573656294872673852128386513931494696168669983304924976038229057542482901826728391600583439284644795576756595610371238314968798216394621729394747250622371473573143392713020031243291285672331605412620220473704703417800054674514451252619519249556923059516467761334541652874068106805725510652042349802234728354052381932239422526992273287328429352363251005559512946034652036927775253422023033709667530467453881745866251864283579023064371222643997461430783163814271567612828340472818536652440300207186324189650599648362500782032687966616812462569156532690400804845784473050041060482134972976991831045179718240059886375588063323929992376089407750774950792316806891022967412642779288805161310951043431137925205276520005940860849856243635663783073907138493954328098315444408366903901936675519660320759609528074970011038080242317243340921162864070502015908331344829198770355295891739511819536460811835848426010446606927217087267736615465131993531229220231385847864065640378980227151536235684295463059438733092577456004862594771755050780268442860264770571013103358932598861108251944419904890315910318731359193468567710843380207629233031975647587915333515862403848727812363562565408619908769849618120003388046598604038571282626005942111376527032532294006056563082803963546437702628161109431344468743975962838952594267835535975567618147362131213424971423993318647225907270084586376316233341307385249481605702119074699405255132188553512241992174954112134796331425905520186543397553317987168473097307452959985131855067601486071457958373608763047213779278920653165965063793693260866244938006101634791140244941275276865765597316010457549658648281268414985236880276112606438532184964727574809774402144217802105367862873796671793390172146164862481020605973131173727772435870027313463359390894715977870714601077969085656785487004527781452373034353074807720933658219300247575138773638955536277404257481232930637465880679378279713906544856743397400835962561602932763944421307667307189092009219313366280805225307937417769788195907973203588135632718528220447146626921127073759722703155765197119980389184742197539622784447175600821184369888145199566679635506417397794156176217630104518018455451842752943925618664922475477779006886645360208818696562791640745170733284012492668208482985706455231693643769377144755841608595184916872148378361875995596664506371308973490875500776463911781444510524379896922979135138807735468362878672807224004899736220319938550974111932093904701387451726104086639087102812758932331858655031316677485468221988884081135015301658214754310157275167795864906483377266332352762664774566533934712335505062521207453068798362723547299847556929013776784939903714523417444432509911650213855522408774188003444286656985749074194768494091720630267188807068935344431985726316486756388179050093934101215344521355723115308564059079058639750820703815292213416382582211043092950478144016831008791039134569207656794197608368232182378487633721090783792226344762512678618214480009524641635173023452949952259225238585545791447132007551223408359083069250786602294587863071940633291741711800580801436501760458803800423172232435297226629898553839060999405048980686392911555601940807139505101897307620037330411722752063675612291934015077706872389255851136583451158986288266227023211315653556846525111727908466266228593167896602347247276435332016229927166401915363604155044348770927928505950688841050398786036467694044663412139322374167494279302183230793434172082872528765506358436020724955242123497953204267870045560218543658336169472771093221368900127204637401780431472923541840048620086485299691425995536618325323156300693148255493832073706250222528358532099910191684914518184209996252888182991279447867730143280878815218822454474672815144866505175554932919647761446084388258583739739627787130123072527721923808642382838643622026587773175063363923293625299473986867272080171486707804826454529116169168328678779410513072083824179041386195482841144270044743395268749424905143822666671856535406554811363813661768476151476783833592174822288208092831427640569637906236084616035134574500711754503186232364037815825533219617521853241936991668703428955120432264662345680308975530342641171963063839833442759292011944446159360823083587286052317260714143218644107113617687657877544305855602280884835376585307610677127059814593820283016211349069774592895002447822588638365933899176212362140961338292839856144383910103566664591641480159656717456888400845501780281385142408638558601139210157998066378201874340419336343682356335865103486138575314045966625210080281359964743962470664061188923085220192654872342747826765128100371925660475692926196222245922294085304407973134274410047490507890769958749561392377466522410268296458742217345629553245301092539715157322522099638980739274628773339963425078209772166607791141056925452351323389467210907842865621228707743223397298190623337237855873870809389348284954590575380020683348217235141479054436416084181142836909167210437475497428645233943024827784346481327781623006817525836018159246612100085443339597195494489907118495067519515453027246186146685805004383588246446481410829772532800795713423295481546284207557827511564914458004943874887137091645684587842864465480803648044224071774167897487512244365966171154270114710588344698973042656990671282597465360189049054059727793956229667075207345626953890165267438283089696988586727472275546014951371335871664199216886844724388991791341374915916899277482845105693798241812043378648167690901012554103571381453226655389127046361178507119469131396931105670913097514465129106205927775065012689641114343358502072116546850859104971450956397156340961476059591389159490494453671530524375432136741842869852379646992447373885596210274653222072532999722158772762805980023803373290577964450521495807706695724575491583636215158866097274382099910377107713340782442905687798859904186489292788112358459150536433203661562241356503768802493855394101482351635045611579157784269544427462544635175480310077870776136517796366489981617815781505493925286669354409324007820157198628188297729673341980697371721475225077236572791624899004813518945240909237008289165355079023302368256067507618812933688729595441159182396381614963396796747064768667978581580625195932998930391694404247871116450816446022563911865239472641056777260203564300555450663192375657889995855130350494200781034938455117881309676930135604424684140117210793670557782461016223384329313886463848062960183968803766064470140527986140856565630774716951759813892502874140733893576964343679248533206444736684753149272470331883876425310220314466607894845924031845050497479220856928870938645522086777548972423212671137910634665451775744214842349519968985209906778071621460260663364907695642145628143074564084360642103344079897434380587489502131299737838892794762440351291118713750438094834252625369795515782872873959598804310700570198726448681456756346372403668012377639053274746362779788102957620956377440343676313569675466118065289386505518841886071674275273866510637596020745727288398251187543393467176416081005773034175838812433916917722497145903682998055029907707398966469492245317763357161502912954962787071201179740485525414288244941202612221685119263192430407077339571382320617121884042442103917313753298544067887266566734224752017603823063613253496371166918620884512558043655549676477447729469532028083887393371475805050992483945894929168374893749659732532317052197786592543555521038628402313196282799368600012149470245355802465688290002253472239606853698246735010404320463636503040610018397645271619564012942008395431803792262902824083945005367031153072266332964723735391326831643093732322476490924931483768592285926238477670936321077939192328151699153581507152698822595997550438888358584985880723219201027850048568574995139035744335195278485147305938470143953972131865351817621598958429063482760364721827002302560374013646360135630228377207766692449001402597201337127986271084686649756531329229036721088410620936394089082264302002127457894185596483757372193357241686001630871719627163930044160369068595514055168933030780565978969808416159899905072495419675177261168344407834205376653425176540779878434113236409008442520193953808529771032379142739176132436166136904632083577689209789551049447449020366293456088816181987419863567545790438108011019987831101259065576631689473701938986568955424643451004152743648163163479743426990546612281833732034707561680107877544291436467995241414502874286526897122737094633427954316085934721059736963140069194905822250373802123995726415483180544629285879720206234279032321566250736426129914721984876877712379391611108700552301875050410838007562830388937446638193783217961413457837222253870031183720487167671318402508114676604234098321328648019421214907822184337469667903154930368386868674455360772150224880246372820994907991150408593980859557124586892247546977255250852826519195201903248208417168565631147359759004567674921164988933620505949425168652581367488486583221951027235978878534784773702541004770608307833847772242704219430236992021835738893259738517994950840468620600884046641869653016052921355939381719992887201799570007882646153938440121310897863580598893242220541484518522902947017864997221479035558599982491543268250246499297571432252479515571226444637726552173458407397708317035330820143052179132990830265618097523393577332949471026465378741705012381170743756247723331055959212957986741735898063283682804108477030048448250500666284860223013830249593833840329026767289177925812732362633833140725954787657533442457819282990906846624681858886580717287125469153478123661206488400189312249468673038529213045712405013206681258468907222943447623160828807247647379614157616405709375605356822283784129204596044309695921843444308924074641696441727826975546458835889067682854573834910990969872437261297763977106176454641807149517422124919621999213675483314695414310643993050441887448694879689552809221666296883703658001412131216190263768748094392832389293603111438733649596146627154338068066724335275194945072619092855164112373132112065546817868076768956927696465456693004829621542138874857487779750047756844579255230587820026323836091927649557388386969986156613920069218440728277072899686517973468337079713181213858596360280821340730075043774776266882934998469333891750940890384277731400842721904227187633414015821928137985147908597705828634807870041150581542405242513475343973859317966475598908676685233912571328562664270622596154978228160161677710294936347846149428119633224662092761074745683892000848927580919472276051855100660860691633734437704213499993446631471234897519416134761651692401430021276120723816605676448288526663345822718776356782193940367657587460054692956918388722654204971901752912320356291439276797094423662242366861055937129761049148431543694360315394640881107292328609024384793460776005929303275534481997489405637852928975315894445149185151748348492807560443948899276684725403519131836954110452730779669552985215388128565277635142848110240799612281572239294121002494738886240910214883616347912270785873131159503813221918522788290881168360530394882463034884815030656321445264979478369609364141736202625657834112233835282254180719623895781671806636909297146878086537972472938199362300738748182062796773269812169384841036874998637201594009016194548408324960413314327381590608651834382077762560872982628208786582342661834158769773266980622514481642562428917949780429195146802869681521354184696948759648684652760635388215070075018476204702065839251352920878584323629640250240716418710261067127752385553784330609165064216248442315808518956294481904481274996492880203725371462901661456415387740666097269478951544651350173495163442106016286082575299049470484328168121988116239952087104096129815554941444901665692559547910684332743243287466337127048299391624305460182686547703005668733724381166925154975819838033761347295842564013283163676902488262506837923875685952450413119327865452905543553510929243067272529372034572677930113881019916158099515746195473294784137066463834082321781885221632079017080809633777573051104403538846729182530739789132539873008854935549013342942901188615984445227647128163943949302712041094620356297511818703006300748916240099612034639540000449738874848871330450878223480497046727385176274920669868020416907015158591403374283452296105208126218716136004955328268583528727562109194966151903987875912571624839647374317959395112868921356086010408243333895277230569512472345435906528302504753802514737151726948899643369300867470648131395571713424222712539071068375313292410904655587125972230110626767755520797198661466270060741631920840241271900614179990137482626866793497426303051084648694544703686469453451124563174367380075321323632218876632187557476994203532195526916407353233375918165113365946708428642518305996053925974713893514039028869314726989466592018733924273613272593616014574573922654277006155535437061949983501718508140853005520700257350875036131254112950177779872190253424486285239135858903808188548564080992014581749239690028313261255288024060285826359533055581755204094419140605555504742041895531317991840953816533608027911307628210562601737034694534876773352030394379115810428158794771057980734795455962911852752961190672131549250615492086371751531158625057171631990638465414494450360044905008521827733088104338644435594241699625632249534192720118606961516188055953552526093618003816378054590596976887290692927789058789802243163237422985551772632451224772912713902030513464552860907636683891815545202086750112985039292667716581269544894693623119738370126062208236732474078423660557211601645781409665332079402649372722855931478035391709839909470216454307115136442884023686401815496105303780391584204164170447961670077955475742608319467711967686248013307038814235942813995024038572952251837111980009438794373774282158513383609346101261168543473542498139764315312240156025524568974112922912591611269176065104104827837474359920170380217001231107170636479021366324643072727286299677720067633959952464946537529582632946214705651691565557685130292135442698101100829728749511408394180485423718060077810971561713411926085938192267539487694789597980467327261082869262127026364315995675052448157770474087540895283769318784469859132583392385163915080778712040412204552520708016065805102275473221786723070745588275421822617213932976433379432925450786142129195344299902215675529858321134588543654543705654276990292109347450925798904335723637180162410183668836402150157983959569976205495717763852797838261557926683740602070065086926245482918041250614452531949800708418258472857823328092086617931759680496466477703043431512542445704441760778823788976566460373763842302305620249826152036502327854117318215399240127183907766873025857335738172268396816444586012290754367527401150412534621962851260651840612391814552344611843762049202007052406351879826435721782981287094034834255536341933132117414479833427437180203939685951238527720382889275163952610064393054931039191433519882023037302654112874481194917268164737350135981439614775001068524448449335691238713498886322649188650989377511998180251619986317663947401675108587176347649511381930030745604569647226148948885960869551525333095143870188563869585679157848630365227191090506033698018042431797898989777079577160514845335959007946354375321663639993412181514121378503296899677947600690203051348132378380566902375733345371602940246613557588178110947934791330060424226922799796583493037903082894390297258473042341038862978371443446199816610647197498298227213162810455278493774501987409479831723383472069392617156587480030122527186989500053605233129388370386314981998904917996902612915127659610805023118625826955807841440615589109145015351927222529545750214552781786110984568811775690618822761277768433103655370928166620642024124462449552136483819325853600805052311348396064045870511859351477925969582098071991247192178001529485500073346671207677140470866808508027966357369762129286567332469365088812361182144119795851847194078344332611745567995142019618429010573409161294547576616834052648460877069111505993613950548759893223528777336684227687835885984267787013114553637340952830933049537940538085328281750825604634989039765898975082390867797566222632411705851633877086389905278266468615662045257005417495607997503419873371258585524392923358813917128604073662531559332847204764657169697980119630684195109688074031868792518788511797935096023571204202088595299856163804341204290248551929335751511177298759594004883582519796488294851143393016183375676666968933909424935780943706291912200274569091089528538058805096214417981517060032345699247164448472224180050485351269190805396428921260599737307878734710662389378838632365728825937333107158985316410089210767716202706429934495262327321967926986932290911006812899797677692038460377835709316969144896166894547824915460934404443166048582114619234818573353496972961072377469266388801370264541513487228218686035083913059676950868535638574951075500133123866155330484770360665968280082643928548909416658714717110966031633334297061574388837030821633140013972893221729768368665058062358482741121568841853744691205970343684040148561854227113881150380815120914980581701904884224528958866847494269532757971382550399171104607952818374026997180285311350878643623450213140007713210776994607373033137139735544103564364001116440181124209643489614819745170704641773310607950223187858363899538818689821625010259601368590752646941099694299192325177868792338213084207028988104780572806277172141524375141536031417104732572315137858620291537292306053014285909581233085629303323052161447696586496210062219846516314389443358846531564712741582206028770570403175255503455875151520145100950713826794618534182437094650542924743667673391045488261735074296310209432714166154005890519824362601053719416641119056362050309801828943957902139367328602948495561598874804085735874140153352977899021784599928006670102838392129991276667906563376981408044373845148982025036239273010219537136196636846103355067426072537710818885562453013750029532677930299116892824993993088794578674724437488379485864792485671742008267760204926074368421783129423518951456867035790835126269670630690673496851457619838526066887436332007902507535426334183884440291587888684057198841435048729305484780588254438606706345522648744480851402984016203794074578961132221439120719116319668565594141842776514254339442777340572438387938245747857303323969802118240009925351551618453805785787622133982476510936940467226078071445301106271505436241309184488667205999974100663899020120457301671706175489246785379393892376461932689991604829350715491004726478514301859530431876239210884417601796818155876446298671536550767970837755089291290634035059339770050255404879757190589139227726232216604785576626689930742312467016415054750174881547807596548590009320088993427140473831579922769691742100404691491595755504981206346732315472922705839598175082834546493704038588764603240470507127827974869646404284947969796136627066754644466881168982967540346766733180436318085518948955212184670859160751790311464322235151942496704132236375487875606458606130435751446566895219498451448300884856272357497759972123242026419808200277353914723945328884600041315802278063100504251755617924763163410827515648960391212816708370940217879347733706501104758751411321686130668087657827046651666576178458734909079745981101444393125481928613985183833484579966487437550972054673997319171676314563777564760999432752204775765466350153173865262132646541294682490835495509471282839924996236665299641296638931640369002060223355170833085001193253253950211036722205641693363333094737281031221321955111093047337017016783999381540725071557047671416935007717228087436470268915445348961765263903757406432143456659884322082002184621517720277787860681821362919254367003810822064866477745295704516372635486573622835315236305650623071180418402305397276060144178717842028448783394558824566206058169991971667260921981407719286524205197201595173204820532590998425728827963893113285924484851958448181754920233730805744138684315621385453182098261573292971153577253328849115871363740173774744311699820001117587814668064008077255614542824109154224752636865081989900912622882440740003975750727594180890161969860050600583099000340359616900752944911911240662359535181845499664324550604875728594660349382325534154335595140584476318653053100588824774744955539243991538040844143673598543922045639855346613044756110070369978175960015276908939826723303364256937274498601481577331954586516368909970872712788294887079898837468081779486633179611424395254372970888569127768866147545435355110732705096425284511084700071787167775777118318076121932278851773369501389453196381676409006328635565620654004363255402031271737139688066341939349776084126651853585156832061319790153120223351115929673092549007069924754769018255759155438882001172399542575024603987823418222984151006642580928685767039187215779750043345679156376480470305360636127863560423261480005685087753040740891067666916698748229930113304355240959137535357424162889568042044391754419742135796277561079069843150960935265116951859302883542988572808712565189501057772226732665238444407173632992103941528933260705808231447824789738946349616981502006443621949648852007488592917164470285871215811959239460854362600489620462103443984542732729894374627773705401239739284076662275694804249224356335007134026318469491137413380320868755467296428293729435904879740476709154991828673942523686768651881839494875643492661792729681289236622010490215425336523180077424240941284655916009066466700116973521825414995766582960353906173677469858522091550763477525950725377048760605861738656619482042389977399594005890817776094650407801621332319663784340016037874802088053821288399175114976500801721505395540192537520563546076007440230462730419787735494956066155135566859072535049286493412717639145859795236236022146145536354473922073117646056898452426268308849016333078664896671841439870079940044982438143834282365907747551506666393308145434832942926513339426139098291424881744265151611903121470672337354336654502797744995426250313413827322198404562339074933349271490944662190691410631754484165465759772574931781075356409899208883743687566459079137007766912069331730545179024706552948192390303348486231492816187285695506669976268999526651404656080469366354864813045393320290149173270330643578849279919930854707625586326100762077725438826638404764188236932597254344543940016768123506774638225326991780274075794910152501318726052788567620186761157887926454463361041685096710002850195778138579751986502354625817607158310633205293911042036634247200066589125017687668741279543193536589772851172314843826183234756882161642856392252028866550270883891132696047388766950557242625683084279807222783891516338315411570345540680560039681237347214221400111712535140599437860210024228042360387177646251678236553957285482912298959417294391101596549061970759312411344799894908301832311723595940544922361477388595932906688766519140251570714487009977470708292269045059056340157475809313845965250869331121006432012157072061912502988373427125126174423089181764488638805409851265401819406134738436540324025599868608069353894075087685480852686266539715655150958505813131280409515759988072740508736032066693519487565331379444368213981024881450249855354437725653858466838157077701307772599752725746196091319214189745053469107768147967208774141008569388307443464185139738874264415584870137913499337459588731597577163886103553225761749296471381712784961487643827035743265685047016783355773874079246532513708563736563282569472566555397684113001940146189578231010501589042699409336905111968091000276102043076968915402397387290190247148115062317944205988782431963760267060868030787544373630325633174202729507728327917425905570597431179557139298035031758179133417377229289178076240608340030643450510493617429383607902212707668395982364246228546811475127431120767246686792997668890720833089752526336876669979805178289235271834264247146284864556503757524107329866237220541409190500284195112841747830433025651885452579354132003039590121595695082340310258624409492754393699233544100450889416251065347329170000437481657206906422199018896423634658266075450034458139443657651044274080968071140248827378226561862296052988716342276226220664373785438884563957329040325668479154290067522409961114762994620189022573601042734838288333145389873916439578727551833373522912235422845904639283423224106813705158375881608963249629742514606202760345159925857130040211250745846935085340012275090646658665940493370267130760665537892905632833406747210664663420633254488031077979949576506894387685457710169547748968397607418041928926658082440735278307880508139151855620785904893536377972099132281712898173673018384922472599832915582743143604041694091421353503343151665176017310628823411765565992487757229462852037371279661815060015752262747400998592054529496177744828741445399412182721498529818003992243021576186017777658565631820326447393210206868778958983895733052812085773039269712508575875274160410401007058052689700009679741816035641143184950498052295536462473373772451172604225446058949841311920067191322711209757469529675812365918453550337312479536184399109675129925709018870077880032157315199370971994781447039204242322692693003013771451261469559770507472644540313050197823152208051530549159240815604574646056248683194981974783818193331647394349162394237965827772711030066509502308985759547972907537800057528325168518288190974938450210154117316647425416029511408738891028249796980303439258337466854666539120082755335717365286523711901720347783524961110348349647515198108618246896718676995116400526224081223429423824268289570808510328807030912884905994782334406449318240369261412969623618103022712712784141050666791767890724515100977496651145727396126554420170035017263524370718285578415096658930922302550585970220017803355894080356926719651757289020482204378556419483979938864618017006332160140254102472772979205773067401517954031776640704439001403474468342015122132196086391817574673762656764976723903256305186512765537414070853044938484281977506414748152133000805511889082677497288852327628606998132318902103117009622180715590733758692904603085977698379014794487572935844591772411376369466055050439653034040846935987604556060530873714432894949623454198533309227249400135722805011246361210889587406095984267973397077959200275843552904396325845680092970642786725470764893310881697945544615386059060410121740899688782145376339257971550831877259436839904934701126176407192274945305461981982594312168065078770918679283272509668894826078586668655051815746027338966426992876462444411369536293247428535706325422023263663831238237435385522844516063309311014329305436050415636825413306551298644766116306827748475324368765223323550671340467282630438610741379388286262876176731081089321442913932572294109818752898780099221119702577652138018835720367946503830907303084016290702887477971816122010811338125093097538982075209445713869477663067805495617534353111276209514971302370313781395598774305868552383557444682925568233515918725492163188069723854495991742630454950025630331676643388315660758316138729433263214599107426698617811345686285571203482661001314351599665936310864469584725644894397348838571286240972009375763352301295034431463062253852366530175589108712560877764708255694743785293856422058147680179437797364796944196293139177192394353264128885766357693017783609661141879698010469731531304495154700220801459370384566075019621973310604167746537958874843379128240284238838212057430646429016194361940941683381846026784955430094044575590026264229533647925753624783798610713821975130593741541800927923095732132890791643463427981815023356714660519146323955528455905655566560360182064508781792526188537013300250060876891642391871857079268349366081912316939003131788700668724350584315962448853728873246518476292974370654141886263567161996619688193862479756226651974015115563553378850340617355204079066581383468464344651798413782466841032322832500806132618984164718908048428070070099212364189449565910912514960942579226212717331567182350578192580864050505172675510518059871464711351629402170368615248272017332218549421689974401543683908440004660241626896193308538371789268714264434042736655849678378231358477040180671422234837269148548177093744528477427916048452178225732849064146025948246846304831576205064080288322267674102000517166082389536251681177291055768295458992185335974972267855646710914769152333491910720456039397492950747453778737255831763623823999181464408947957335775720234194317593094132145330207355004393808537048362116736539227785189433221645393401825444360917125397986048390657314355781198902698042532597858623958853154569868042803893347566830031805035642728647616933722003227686935087354280919714517779509892544280429635615438508971529446910490690223058569579486285809630953355566587476723877004002153150768780314449747365211523648007903373405025249005704925753770664117937761592998743622654159173953347351506255679599061123259460755199970813800281861756127038233890202025831795220901754530085254545286774025399375070514930667066746488393620597586742592738187161775297020764612624396355581158805365451676362950161805389166708858718524589639271119390210866956535926958873531517016367156519022644838402687637068370966277921332341233480829806895311884674477672221975691294159599342918437944703037685625690927570208039482407496288290031857967542628614100599443700174986073602029802482975471786790111109617679483928693190662741065656861192122240616499972071988305104962258747767816785783156832089853978326776528923211395419067567885754031286301559527467676390978792370144840146546644019078477933165211866572659687436541186046920595991281549979207087315969898515468025850663469411198978770988943951596527210517303557279558332129593019618970509118975548010887023905223679477191578196311625630494331687120569991594992419659738240729867129212946026712250074892837066032327678368115203885892594689622898739312151680862871528583205668909540360030820456643728123686730974255501349129476061934002163980385756951666673912883723811385927239099006989102539056872380440787955101891746754928765330022295935252259591314771882931961425092258505303169857530580697504126550941265688582731006959405317731642503715101459115245226365626694954104495996698778133855668507422362523362869067626691609215753405943444129249587035301393397673647800947236594645623145529273442655058851273860845602477827381630915556878524107480965939077525646089681395691152325223897531370630218056146991388412053071367713998452034754507172421131256092541500621010146373709510369797241827931324591573013198091349089013734965991749059516583978602636023962899082958060069861255540879655946425920092769383896091940068923988809349278828035654217476826906414609507578245259564566229281663881391426821185444114703893539856126589361421306192596839849027398273594040097656566522038912809433964916165835822339440034202391185779834414848683100209147436915630545205799946881514873877379128197666529029715641968378864553855120402622472498795003200397863477984339145636922615064531924058873374589164197062002889925544381896537818555220463890174821323842806850406763224095663241585601237163226945028247369474294002826615538280305380973983319452932417963887035690975295229695125403644855705872080937505825591388371616110898945022150742418801747376054354101810450292628856092989811129037360669990593233559916231048183338710131237767444174927941864599024833069735946052382235623178704605373710811084287616670158329172758030117076845357026875112594852984836996274637663480056330930755393433282081518318761388302391848210682886320378459500363650075850002620253707013987640940741311227414625837236174113423693314732816259945785573114766203862361008760848408513252566325008524361653661708212284361412223583846316106824087905782453300446769179135283885497744264244136644061945991969869535542412336271148262547822064843664376892754323366880100804745384150877044720697454485884331935931145574977813889538776623110148565248902466359319050276200194304108910378671716766146692645970125756324088664094389179814476201092414459851691985632132630777943050617544239524173579397021330571900984299208118664429246800076884039562991869664907608580991193601026222701603854043459620911821701844704198765846509887535973782269218856660539525324896144769779323453269946165632151589821894708687378264526014718085713007913890991761769274902382128837671182522557035225362226438662808297743244879477237038426942537649977978516770588976363292189385462394060512845883146533282728074192842684836283045565308379427708750068767368480500431423218034532599576367936710413820487679896948130358514103502558906975588999329575870357399369557296308018118535408746910323012194351485385081549384901646973284994868156379675058068283432020509947226675155659937852437354454821053131458326584853907073165974500162046546092067858079914263726491497836854781047125798828632709652421970340574564464932304815882440343043094554009926233812726052979431624246368599269153202002802525879431723338974952549574747239332751355392648433121389009371934526966035079346638414965886980827559657504485613992074237792898164720973388667404151559956359522731403724462353214700841183799653067415654654738995162245716867083382753277951393064738817773562441048023887489100730935559124446336954561264978245338924702790427754520433486491778148112698904357745970981081593952780474657867331633948706675677973576432772602511441964649283640045040661185445476824397113360487292366619107566302196601675144595715728183821079355557336313632244958984257419831163669033475352668567370183633248259254221537305386374470533512582212356206575747360576264512784441515191840482812004185637513363548618434671084357798200511186521987896680306775702191486527123577396503397188538192764909206444704275201447211746622170094441054647896600601974717803113708010900257610729687093780309101008895384581198025851479023768256613400061883073177865745397584457725956396387360920806083746562524172528741902923094083984252093962574441099858431896619650145561894687414066547738382370013869173448585674278935147910500053991345218140048089135106273483838243644932798514749280537291197219177963275368208517704305980956314549343049935653809293877245102945833720036926224155222777779990305548309034815152823431651312740522798241277224556329913357176448004205739357184093663039928811779585581708355457881263646449338770511426701234553863025781136792091899570594703978884879386782658741214325084489803345139988431762318457603552994876661119599922159155012355672654440419042264212324318937884342855029635389682523850725668704909613300618326849090622432282751363323024483976256220944316020692900536301468336118380402994231573990734400828710432532370598056839238602894851484646455050786694361191956105810351644029554224860116317363441641739978862932377926356925253280047190350199215932610174036393014330376630825867598311999132838998905021666251271836381852818356126867419841253245844280580579725970390116028084253741363267531518376087225756746409599462410422139140776030769315160742319222832480090528342675900981368435641468361265708823698086545263031116802259086308979379010462832048299313481932347341924556112976637819036711505799683527712182509839589627059252069772289326242340189472951338108114883774783231906537372936352634022915723695320128499607355632085198676080214960472766674450683642957053122239253669857307089363757214965051854392840363119493966273404988731228970454083860378132163753879136983539698812011227939093265148787337537476599788168340517467802996089299797599563349918615781240948853821834508315365957272977056640932283064393073906625000502647668596684378390533139482273046157376159083895367905679327853316774579730371631689753350130648609322338602396223251819727019914139054443557878396812813693003337144391624847605986553130503066665982257413828175207395588521047126110234043811756281507510978188095294343820937596938114101363079668094008397371005388933336874596373993442903544294411999392025497579556365805686070383876343579650323880835541777862242743761430046968140813186908183680042084115978676544477953008776264177005933864392819572817364367426724161926860448111764824215561012994840140205533517671210834011191067155336808281377590061540316923678749072878613876455940682650312520621678496821769473984295206842386371910996760563563458594884537637029883689198312888078288005088711111474130380006833312084146889216571776443915892784363282460065787120158527416825586240022526524642360423912501376145842467399770028136616180263461344376844974869629540769038452871028995913855999697177961705113718585590443678473267755024304172347572152121625560502092103936140184101646529268615685873957719583508711937357080450335224309294856447936700342275524776560430511704642554622301528698255576630067727999627744899483228266735859764340104709344438395800696511418073194437534133929336596167109053474196771726150885530699853588650755571595816486366768945652256669777127475869068026310330943781349584876491452842168423880554292866687931993093088514556444242478228944391593570910018181813995609101670122519455036915232316090291846930320228753985093764180195472910446836817685946763874919212286228452746457439012330262172321115841305904798857580746872310237486933811512213185859121485516912384112252260662793747380961144371561713685167671648632768748844138631396928418408041803405892804188968728603706375563779687995801099466628416606091625810287887696608682035527126506714165364486160614805187876534953439461113346100618108811977867880194789202154444658245888057805767844879868374099967044502468090186452009921803548815519105700367535060486423453042215095817808452399944861867356138463806568548572409228078548465427341811669686675412073954552105715271749370773695266836473460538489878529497446047894486980311722876069266438296839457931474777733442164534737444074449769698182299549448372037609579456569266571597061366606825128739397412150525512562007231322149396017030219505684916898248270305010221429510396616879409616094152793475000899602059512891311369472579552320084003519482631918206364013355275547373156298345387726582881207599408453295828466946496516218616871064571447659455757766357747056160974005683979073194122105658028109242754956825345775314540973870044002085906047529916156044877890422161252421829925699414037053055087527687797896878521220962023301762412092351618795499060555432473970722404208220636336290057694368954385156736612788387108836971407294589025942191256855542915136302411688963392864935661661882896823634215857047452038780038882222555391644590160542195258646007648875670878205347330170392024313781138986577126033397453134637962586154758334335883104221814569447443091070785917337349938726372852105057409956736847056233354042845188449558784984642444763607637033624552574189818361821042496267464033503243219373385380555494093179875038661668333452681973154675280148998771566978521194596053808353351139753576878932045860604622052333734509235118553378604347487006192049087444904131514730340000897295848594206800235200567172051161074196700949943342800770835860414045890248907913263056264745901494701634496031208510074166762648223780389043175056680854940735526284745984343717530048817517309272832912716096593173507939457437893794882958258599781732285717979952426574946579186677400698319655949859363081516980306395379348170415959832650329426621833427311470251204812746413047836998625929507927992641855950365758490415083622633967261883448496346071102086030967858882372081475764400118797857123605546792185621629280274964484539013010908704183033810031223794459659037781512689690590624482547315021658645491901897309797543333381725050026722748804093635064724448238311860661356675313756255022448400008973764049171240904644442416195074780769039522435346467465456057904696586853116066739257587259779880949394684764064369733977968373154187696463783911005983338150121221380745443009332941290403226053281678385620364093405864661439028058051629886449646731382907771811323240855415682505115091433393340195179150750302744750533184462266634474392635604950965693748594446823426804482520643056974945054380943364547787414695209269259289240339326995599323424882362919227494717280755898203217534951197459087593910647935389644211549093839251400451947315332639775674563384590479740918428966858342495524134936736313868218093015198508094023021298833541392243110283902073739300463368686988643469706148173270365143322360754233466306009498037412610592673795555223876043399900252039970630742551681422046605502282615248328521307837878384122159454533730018548567115930967610270729490521457783600273635633266249018269674979844898531943326634021896812662820813750441724429971350768859250775749812805938088036792910850349843052531278831957459539111003104707443473715244594105788547705232391010391633442300443787732788557736182253373270825799907448701614201537303271667137170829346410856533938702236921518475739032950983114349943297924417715105596088730311023405060663760090496645693654453558563845594673050333139904600396143978908705578541765321522976744814549620545378209088037303456622248024100912687225819770506944692606905898454865346790519840068554995231242346199119290372917600862331254988418995627042821770275988085815839328175776554603868413220372573770623227289233340041791365715398256257866921123851938668182399303502854263325763410727643571319942906773773671284790494161991354574439278168177716301937483985445562746829893821729401852375032328547948669898333583607847415313266535942592525314035648978364087578773621474980022373640273456097768151767692548813623623967672240601510814928207144674312412714335845329476561426646344842692323052669306018572248268661568945166155438961922949435575928179498155338750313812015720488024550122288669852851072699969731337479902520669476554671057134296696958112266935702225335438112666923595998163824382294512886669961225915329109563217489997958892938502015621174406322758425913668045863837856141195769559827654129870876321604173038442466065102480377337021465337438436235177854208852284229282457410188117257556722976762739074993539239198549603312434874286320145765545612396287074178637336599249550553139992701329543008685061831165063773198317402532496051657656745436267723933615536621675728879687724406274045645637991460554414568687913392037930454066481741202834642261295355808191817338988754574522356724106552373893267447412249954931479459681059787463498429002255377478299513791304349545465134425224455864140862164008795663087071616501883041853687402653982966142871853132116751989530043790954689920652700467554173247531420398166898076549665315341433012989152014527410083271477123093756984123642535722047716522533931920134740345848905648085204707542453775657334552656515830989541141083158032784576849201130078657587374244646074533718712364618158104101490922249898634072731468042130883918509438668424846492706837258144124010388891245138050162781168623084275784014623543009305395030886449682000191884820877030688584863648410544503801997761340558991415136578825994760315919031897495090371838063452410332935338052200797546116890794437679651805939967623791888378714517186568136040896426059193074691385780147632427994435952258166478216203321811030939219765186571767933540325520341033641807943286093851992802854874170022928037918384480039519878028256605404209974911750053319302676728267471460729088958753504036297892596777161089094472279129544622529165036661568501160245626160843936273984502008669144147852390083291134567427151455588233913628048964291109885133036419178468254400853758415417346475737360785387831929286891540194936277323278398160560497298072173951246651906933834258012081129310348528441773085747563800312474917766578373554192034824084096074413143649260108526488564892427377553262175473890082252019825593305816545165992299399924130361479447536314983681439406956294028170644957787600791884696687852757142935564746534672951457264515717527584374805818642466783226104680364750904293137657228504145680395796049521699946515279593837707605338953404920086576130398475469996880639932275074813475589766659650712058382289992116871199812698848525690439092707629696421347235584406008890802115477172515499817847587363489677096524913988083379351691416108639297072970204749190726012559509430250629340999770383456672104872402225766861373875966337800477260391756456022356123692193732488033760276188016297184849392987712973980871357007361838208349628383880809618428132216224717222330859914001168422551886696089990231984050186062275004114186075176315890398917413661635856393988429401465304405533405629339711822961859042625145009284356053021983291185098392061514929577521446907456281523619978297971244949980852105612237374487415903546869235826822293734804811443881600894627480935231107921558830552893420973493713258898130950596224545033849239682229654327582214736000121860471163246035235284238648279533546877466848406129798778013472435106921160348707055380605363085169714850803154141082697715773107830258154663165931017088650578333110229780254286140481422836811309858039706902256129668352894781259735425154565855254397649011643559878230085684657422909184867661392825835965460112709629793352534763924430467130369265485653224665716744358997816061033311451899259191882812050240474277919568930141785993805371262124556963016819235519906564514357588919114370983336608348544912261460760743893971229821210230209930880994370590329313653867595874926240613761612756252640443641332270802860680681018944240667772893387073191054263947832040419864749221426895555832013366635262016027077291592285154343538157218859978690927663606324013443805637779199868534573039242858784164632023822047690615328667514892310631615495111949439566971270017657972229634083718606797871319186799005690049191616926576209979105902326696831156941926199106709541624036652833048238004225437689117194337866203229013306583782398443702016638902860874954468800069631736953556796596328888111385734672017418393568849147453989402718070073817511576701793601125802285827087680211967080776260601077305024916720455659700078856518089742924879035785558026859436839405572744328384708814973861256661355167494823438465302719129461500647755466936023060611587928055458270610568721306978498540116470587682201193030990722667914455183738571885945540360008394937595220934961598184310339724710300550155590469520238669960177375450684632722548369020523341197728091672130581870987025817744592312991543707549559423875114472897822921879866689532574127181966282063552160758587170779235232563617014222220271904096111603814396983675286049250827178705524093533440666097983575456576208018958118585261288919899670739876614910505198387371546103378192530316812189064418312573908221185886961584483576573144413168237285837866913880703350400678335219301532687009816004515349619415894584112058421699437824958947467098005204252697176135141200793559665617912624352679852287368140999193197325660210086743455279729996318785806850424264203160326029786935600758831075790219588868557829123226822654034019360833473002075280050610448427293417078728929230136622924891581670778016401650903519424878626867942814472640309932741375059112390459131488557786937342658621281608654454285137806329034106770237413799565675907601774922257777251719907785982383229139626040168913411472221777488938043897028826595129458056184633287171257393165265621907532463862707836189350120737517775281951944606592051227628530210464146294103168489725876933526239955294447955126112621522892452840336550392313475333945668064367551783713359547907151559376264698372209868520350842760621415261178970982288101965483211363574525048171397751145934016009458122201605803854739072230071444322364390150137185927238484234023615347613690751207783318704663944972646659435983987420170087123287787209224140449637799947390298463279021432391575162540826551155761243471443935801414417737525402138247410679974935853722240801347376808883149955170197535408390864135007606017910776051426386214586175892066180464339718123882786346471306113341824406792556508666949541122174370672177321581402862259062590181011470441036356371086886278658494273958443600056166613992274843277558092922818227413689772499904506181670033209943714793864377373647248830297341914821436487438948295894973324258192675886170567718292417618627179525297823005541171455217946467630267414550422786326276295163205030081758686187958227400765616396039406403810842344212888018399179420138572919544464006736365494328921901260541027802874216976307219250903102809319400340902410815362638317998366491125395023681921877424609037494125376773322235536733603083454152900992804530472884128813576652287052475817637559641200621900197477489798715561929806671712852216711307739838004460593573871330095175661090715156432466383610299558221600530420247663526976235023376111599309481934647070677205857379008976647722857118249165598745956616354430264185230796709821519620971802718703000798000628152632450857896678145250397017387663575794657306004162429078155567353498950403053305041054750104700557638004582443023862486586353784046898739297169048901198159244972210088524690668134104412436349747618707512027555260857724906939745051619718877241672612245846785706080162904040871183551947112546118132346314639223721589704285945922173810024235072044885700840500959917686938988062914323590552867928290106356930645923699431111711032472634190496734607490589735602350756059949842008586146292483383179291585507950440236284448089080375166659205228484828851650104576785711428779982859814454128607614224988180196826067423363898988684375360136885004124952082322788196004034691573570991763220854269277170164116796585239031236665911801260191689868679731684048055650818126737318312191563717740805035162726763551654278230709253797457082697946903502859504418329585044646043589953967202335886805394437823549585271078487470117637668136973580883743353821174220792543504020588186384731831685304579887814017611287116071284728573322230229071272789104044009732311239130846226172421113124125105526864054806649314702657602643715845587214672513135317033250571518535975682799617949272760305363440428442296103579035546876813374607532073583038643554850027113639009783018720329694310881323832720992589258081414285755237507659486014131747502539679731952999271485882672666512893083536193270363911092974447154351367618812804179694805480084573731222639082567688323564952531312594005008711516401447215603353205721296775979500253524520861735021514428014671041789594276464007254231240597902736199501408426109995178850558976282176934713335262870632872999125343868046203758305990666538706054849715562714462996486164671803672517064951832734354010862464443852000303900677613935344140992157311049885912946037290942754285814984405203437467074423621656065695381590965125501981135142474307940091733736720397221595857200950379993490305981786798408587627070870336147106387495848847889054283966607923951933885042868659224782653427846953367550024117697352241473905628818548068855310595231597402219670746855912461359865584457633071802306106738450033710879192051743778143203798736942575626026454658043610429992859079019559044500481300452331183055063092158593207856077144899267835138120649447352929034251525000188773878908492594604440547017708725976057656316435484060599929461852861152229134221058375367893624372434254124540592553276724125048133839507203235497901563134228443857217921900248442767384939725467604491428325982200212050382095554324648997152744085898175492289073404482158249620690996119037768818050717625435756074140219318263412145011781169833012949654578541186884310332620179183724209782254176407825481830671098240387191172873587816156798706916269825917437686974030407413571493668772501869275254991700805586646868681385224412594284506536693438092718583238192591174417010993360116288916258636558627119835262434322690060138196585348794401231348579090137952930080578280576410034905582409696539682678322766816049071479965468407971334786290973424456974036409991854758560581295870225974571073257285580307157660435841488921324777393611086223684968644346503584868973440489112982705277703507278659434551186317447855213350847762551286463212083424750266055308446365504078084791196983623878074393717236779138874037287571846817853667506527207173107039868281998455383648709112998630156555320302927983448932622121240209644242317989771853308819499966028583796380000073256706499480985605768831736535394849422370408197674853425590448091392362447642456033631979058421458662921149691856006364063330238813425694095173968539757385462658768085215718544596150265322409469156184825923892666548365037645946854475809760122876393916114156710362633836089163593139956377033097880274444195880142752650812976679504381859708334471131768193617083291926298803717718682183395996598749891301091786235590290669125056466785463153453175872101732669135419422433127380448764295173404104269728420621913968208633188637226864716135852805332346824728277812699514949916822012416845848337393726173863434362202892611669228135047071777389348135178453699607837704840196199340843102102293884952450667114331016287889386404081413856360338772230311863883693183978362613017158434995253031546334123286295235585705578653119254531473408209421750891028485222732992760798513031611353827321185156195419705566197364667322249957749043687117665029793506460335849743917688575533601320928745625308379059273795634801493534459409437244043406392949978805371475672090472609049320582149591252878168281418469373022059450829258333172868339256260686663734879261123705663869293042753180930919588666146658662435647322692742628246979986748519600412750634926383064628326139188918307032844972897261924973433670405512319679195465674657552099024278086094387519021774566337017408698365720240057349285313255762333775806133601363040495584869748053240959344219595421500804055527940482760059580324787344680115858326689395458249819019915216658611348945568695150642245553730327317116638010131438771710145347616829501758597666720609606610451385741718403483837048983788961577515069186232102531362865657076099103225085802116278587411824415435561912826276328351915755436819857304067915196062705859420632253048263107585485333033865975410477002782074049109748159110805408973608135696485449697530849392069283507814999453178616001861509350937528846167004580661578546431732709369079821892772198468487337993838602165207070119022891409227983955756016977554293024212164450423805478611909898785660962125543261926906031994756072439294344083938802785227652613533780501603362463298920549910386517535882655458665382598125875498754384775980231736779410406941342784143914151952389993165185766711419520198303403201508356842174828312840539510054778799992318132769432395823736595924095035496314515606768747601327682525350023855793879971375966273626895667877480256676995097274596656690009643001643623269610417443594515838412448495949958024965523480545837123266376448914767821371686861660727529393269738498101840988123101281870188182790045840309331515257532155741048527654483334927403029618456832774039150656369175774077498336993424280125931553822017927451637790731345383604673565728073632022027551210862740078475149201266886762366300201443449991285402172620280615556746209864719739200373391262775260216911944479469530553880593186374015801346983482694335053154406324454435359907434863684045155060426512274903370428697520893701541968381189999106398670152979234191099877939433160708787840695885567329366905850623941230016888221395821294851449960561639528123994443193740740886093453816523941182129463925151436096385863337678227025310319123409366742887962179029282095514906111185281801056258702048796135861747250048723856522167300089963229504128557850906546615610291030292026467415317319523767095869792636359451972773221676985837832025652040774697878936748927678598369412298325755668708229957799558009892936048843291074102183727243232987395754923253236378051892175935683035140819262480583760453610538801636459986621510944025018472746769513626988963140327308237483900443752867305324497895158702439154109562564415296310520157711014456812490556310264220745663409692070504162781853810412930716445292536683705569533975878330683011976560218444845295739404141378591953324793170381930126805757950532301916316199936140877583486713194796172328016029458503271414313958860970659622907588730790603827245962690261962294496149382283525174253069846951805033648709140497908532089035629056592465349224649026634160062991460842034626738423744006259813901781909171426976388175040829717031135357519576386079180285991871408409767643715569058989767528258646993732652620030457603616509955048003023343334446870057306095705947672304438130791512039388184466684838304244354431635031031917585921289641695606110664021912449453372020696633346281938292178984792783366648539259211783130650004063508666353576074478017965687436487337333426173252869801410614397653549995767317612559867326010033033818098912830631280272418052718790814276206902324241955236642791708511153065877409855803192765925599711273612036887376966480130016780023707586278637255332276006243141860671440523285379320849037672755930711161361456824935451818613533609111548655592031775323781400916850512172750425783598916806636300889995199959942981297762351065021688912630624506280959955229246922949812902204599257689950411987232275489566351973472006005582211267670846016251596267645217926145335657063084940583909686568407548193397763290257953235551065081983830189932025066815131341180560401632308878642735071196722099025317799757607960004121906132171435478537769808329726538144264119806099070147001976510576654797002040718799342902081251865709312237622709067156643803131292453051140333236149372243669754940275101936827527906212385003844613923249497900252885229161920807501567397834943893571824671563173956983058557063720570202945192022450803799140444128266670728901512029130112789377980441639967024491899539197970439640038359192666018860352190623137333864521090327810805275712433671572169692521724451019689127543221593028452578833217524049864979413040916897201643026608669581318707034322418630569960908658136605176129017422937701586164437017827120797951522930931702950780052621427566075148120641666811382073361893193207930795797888695294623829789892296814950919121760981856741236504114196981342621123074433155286549550949418253276821138490950703340200711874484336489883106424868837253141167758127280070955549752123042565294251238303826833991916896943943390474061247804424141090191191016744070704906802618534808522752710213404384683225055347666922311816139100659294373326892735904338876110897413769559502939297015208296720733378684515133970474365024306020869857530503545821290358884921563516849576998678296970706725457175296331648871207809650633636117326152799063756819437438615206057174277452325160581532857476130258000765396689214276086479715129528716445969295626142084547036574125848250613189536068678280236584231537709645823770351761036064053969937633577497424239881292348391589578910757996330459634658498200190511811609235798637455658602881436346953546061481205685261553509085055696455129502548634159832987435572683196758437227285129060319236529045387660194767336238985955316685919641089675303946727819639963265292154104488498154361663014556849363256323214260882001388993914450231308439391551514534792254120510281397745848164845950478668719841153167745602906412680926173443318587949916643150491352436580476211263700622848963122773760186928863063783933869094055403705056854572506727299631709406681320961687862235788887277301710121893012057739588142176154159147573100893262235987280805632830255839394103852925425539508740059653134278390769746702488494553216612627434517407099317106487566893611373045109473274316970799927327498306672454457974546713907497039668514642899398910703390356747154357608775535594533703525004343986718904883287274061220731811378801583900500265054871917639267248657276115814947780218994249451734604479759550817051894452396964611691085349341552494806382056741556149391872103903951506345480751945907144361501359857116113730767328964101338683739075640467329068649198857267487490239258376300087224491162835503074698936272038602026590913071414464961218292095298033168696170856123106811518327603991793564638690929877901587010333311895517738365099810829627697803108015821479893159832424127065908874680886041788438226463671633843325916676645749865741062310759670967925562708650286782710788513819425633847064784627753976962723768160881310640071966820897915414337179419415662023020408304343272655229192751853265123519607970435038943680956132723542381712337535531220000383889071951970974651186148143499029176450223483642608157557886098481725563014668595359291862108686526888372195147508007081473926252653267528400572850182638295716041448519802407247035900055224607290685146531942175019409428037728453119678824497988067268026474124166486632286117503896455435761693767109733954997493308555110717474961252730649836707174119120632604970099241824850335361304075998557381416830231858392087144897318257794978227469634641830417736195952833341252397119678670344189802077285211037307142968079986779059042442335845209751105848804571277207047643357913381259372021047951050208836232086036637167362033741752366721721509670932517513388249653899100688342990835522950976420521810156930001010412875697627248679968210761762058486881843310583008985245706201887381579074932928791997308080036093389900456330802741569909503102510638332769045749664423715896956964327650746798539276901829381459157159618583279374065602770989294004530352797069763824970134977952006938426127167742762361421788752539113892948820881936642260632074499003554142164365912480931849355637207825556460152117388746111553030903795428941328134272128931783368239135509391915443459036398691885924663603481561116233365430086157136272840964035647931367641341892280693403525712720081976783105442585503047623621360991588504750639814590280062890819715585823796350332675594471879046304420525154380956175824991062637663769221490424584924450263418233318639768763503820542946918109838343210362453380623999385268083796794391861278855988623073897773829698394035525749567344990584676354092664135934514197832309982418596992405730800889695418514523489107988738029175803147482566961662253989176521306544087706769324143776328669018899934782045528524169074017485173050218861763535623681417289776259559767581731728475708104269386081290128976712187385228422608147473936378485172180880606216344674954954196312580629144536773543925315015978881835521982458394014385945150023300574957004659633825103235038025416759620793949913856911084402327715004984176809205531635893674876733667757707650270811755169197191866603954021761187757888303085986326880400005149189765959228152388276631101732103779200424970203425387232514865336305976113399863191390952028162025609366114977075099796703504380116438312271333793494451509614339814017070019641229608140017613287790213259184160833458907564446049432385820956673311737022352258822235731735521754379359613206937228441961776268591909998314294774832351732939142713456769533243072970041342652593640911860814208462503321825402804866755328469569961672273912942350162731140853648333117381694890971921273232503894169452009263566008484196552073908969268226272756194070715315814684104187362303241187706621428949211391924657639838548470765488112136186511563122925435499835653788664046087249505370853088080571978171732850009138169541207157846397929091188229276045388343573650168756825861478579038789435271427963778126236852270206099267434367539489954407673572789891108923967429257848601794712284356739791499825688218980307421673649561855734888130346982312618971642904245098099722075680653646751497736165312851746820875801680902340788506182625692002541162916457455744383524857472982488979030130440119853900956280996324775704390031079481280124014011400359739478472937680195313952131427033292983125110338086091262288597848150646770301418852991447100633411741273201784883592341951299112622124216440430496196992425268042322003979369296100561158927112119584873348874397069552265726025966919092061430036024452056700236419090397723889023914723362915162468553157255274966633776084227089991140109998460899101426332438787008862399892632448350680775396386065063046697292225132903615050114328673205607328581417973608881257950943262364951818692811739435647642018661099814516900457741582882002924878925519699917002148983210679216540091881183262399992981239549785046620493548465474360590624928092678610388163329094995201578918691003955441987972486403894167061551280144854142872048405892502374649122936970479179420831318293156410491924445036518501678538710014479705157519439126192781564506267890648826629293399738105740023963991845254893057085873907212174992833370761047611336460325486121995935050401267454251612849497674487278884808466237680884221553504666500502260400103060146950123075879406496341582031119229859240015742870506208277169417341224318727999325088610360494532635307612240365534566556122940083921784564737015488577510406808240755425752236874026940558477993998236557439362212306682091020232449938957697213055605347891638484706171834007337611102804859495207386764577835139198749533648572011272943612282332951853250049903210006727369611049476417874911977839131854797558016325192671604761092133775411849291352476511136363550862606092462670532470097159401106833460800668882209204425820906649921661935361518972702008637361220843968103024964941978444419491422607401133049802918637392804214886619045194956972651741183209637632472834635075859293137811502902538446673973839425570635929841464553189689706522275591544446740470440604575660207336574405442628613901111124779123848577567819285413502066639735381824103814212770813513962724962883372479742224192238289369663162768643686651017680804343738744978762312548908184312435724482254261479369104396684692331104956948675780792533192111636757094878450027853119280252051652449716367554632827427914587044579144092936391938261265542002243800014145313012787940460509934050996143680060339093557810697853476691407440392654729483254715589703133355690218568789199741747241659579790823802054716810134231763468456610504027325984671152816933595098544955208444537096845153025791047371645287535154716691579624202331648325796976890331651450295720694894152232285696648793118364646624800553858138789017665581019653154033463843493545901547434600699978294518857950264676373223263263496288455967496119028546834406321530036539810391604440236697226109450187194327376363053477049516211457768680405789289734264201896077658883033281443690640427997291045791798118883680328477458448053772782905948829165692312526178190860659753269225406141430545434504367444505358322346658091795606778909077924538883204933932542393866892857775955958212607674850972528520308432687202942903514210443901555659036861093256312471547216101147101724019072840902916026441678276563768118257954593818711893539371071505730816982459169308718359192081766925672023882694451282231954250694192542880265058286122768458442052748810565397793278643595432772790975859739380789059230999124534802373803976494599180032318293433140799654672427496273673734977691024435280345445271396924319339241091030264187471062046016839004619384530682980106043997003558651454462349099950770446746514146753161244514098790704808139309449803458945189623190549360361662507331435401840000575991644118366400643947745617416968466905926933378806072211350260671177499014032075928599023445320360308047859265382812888733533486731498418803213875704761537553029351670525756537913010133584703121423942545317035277410549047143194751669439574582892249738716735011415188063325923921628658436369871118831397069830047378823192825266701290246943039917523032480656336491376088326287822503332256100979462883938427347522669068133888807232938954110067718781772679169469096403873508792351013358394582316912302101715504309149463678640154436871163738386972143735075888367256183728280268945416072878536670618758518182314386696005004418468624425151192823213987453439150684108977546552272374521970340841685192462955466196546128957934751168514839332034780457676431223483711500023013793139541117439814883134950881375009546019658068986556745080118394466149819010250052109876142102061294577913316772570509622273008070990357251679539905584671144102038852682011565383019591232461982411210272595824488272879163186388572737753963473184852934536533745178408337457077965469008266567050862402674357443210427486373893931497957297809030099005457396884030673433549457724715941911541948450321760334173971114359103647569148157010821039961395420763503854544511345115224206931382132693137334552080869720637383153979867940072636715089266671795651860103566867107825267477067015759956744112222090333851817398086186693988487205031134353232073736576771835168726433269594557668630821768961875327318375404932096321342046292075195615541251558717311791281050056350465819376437414633464807247336498444869827245889201764943502069486689944474154711446051565074787637873021347020678878339983290934876487574786355572940096245490849967442788965546921886087523923568414726536258926664300688643552135649271009387367733741565215155708394231915987673390984699210825633692578766548640742679445144551162316311035549260421680676625110495993322157729284335337096266940601456253493052760136303118468549294510580524424894784279217946908289566987945186038800806117087826884552668009380567368871506827483481367190751853699338958401071010400722171019405755935998214594355214230234222918951812804240384677435187886343051123674952146012596539911032103095520323943264011979416495347658766489616739254658292089085881687149990447198967275146474855848571290296839707380328400157296332952231103910992006057147192675450275751486900602270474792794549251455379115521066021721886738104788072533755023404864812887870633954084523680336771251739945299013587271429615497802748339045524199212696011723279730608214378463045031017310818310387207496395136452374067663205127795202270461422836249206328216577161180828298058888661901205302151036858404972882097905892357953540028074721966060350236464938711226407766315000831724271110856736604142009869765543693838383491073689455809099936721320771188228355916017786523115907430537465940750420672463206198847742579499420350744559944632985619799427559015215174098757110617560110288216248885404159759690527046939501650348650646698497162704707208603989782064291011409462520302204738490997379411609589379085425323826383204067022957135869417792614634476163872754418072002409393397615552161261389250302469315410748546091421712168841096532658228273360491354804431810181353978512338925867103965910458607586464984327684669101708191039424699210041845623837576819765745495815872964885472499884724319168128017201552184988767139043709245175849961622467730139806379031248891715793588794759696246200848128139264289741670303742077512900830209036006601054664224828937763931728895337754384162086248850275946052029416131150723384901564549201633398471697049122611788210634299477222619620616705598237750583687647025542405903607163370181918710344161105499225190913199919024049921679233508477993127696365418944158678557121925332671419240917189173194626099220426326630079920203852269305809446911473804122320117890965558639680585001279246065802640249369063645762610017045787278624781873333711888553233289237845048840571883393884266196867030633596590227764928828191109032863622987886797634280234582360451837258971900473098345190972134122360638901131265475971902611374695674037190864281717813982113092349077732329259808980025901640221799184459312169087808475162508123885836542007071393968661482329324329730214940326267423012816067032069162316800342691943678201544775514828693278441238158128974529838074841506179133265044108147710062517884883822067151838953661418272745502120797738071508326637245937953569419594289176436587996637816541510203301302264834826196790415435525598022078290867397986494168319656906631299880996847032785794093861387707902002706141819427524774011265764246345907894440276913614342717196908733569156361686735489044247335797771791654453335446075234936850337857246247022813834515408749887519626800263707525417258146607171615589231302009158787572779337268067897042395932820977315732156064378860343444359251939670737764579067237957425930819004552497430955204100565769853688810427881280058879739770285025031555653294099677491516262699725885186359005153939817416866768608770730998891346776599411839735242604387887160467154162476949426342212907951410362621945981257903658629456762517798950804560806435285130925609476986677749425409929018214961787164891756623238015918633408255032807215757726286207942572375721611792332867677384194863286632649549472703115359742975794903416775392219641498102968123101871965504977937458583364005519459912769583881015612298019707037047995393632182186906283555373477407174056547036266157205441292194384829252386025836447398981730334461787599643182228094662910466763814634954613894665248293782454716023108763514228566876518096880273401847006910474214232103057357513347332607055345096908306364993819066188395978989278294123481358877991651213943915904532972258523051708465872985729468898874231437962784812211766159233510293499628238374683428211066709517474566190655515168276447389261644392920293768126225912529525972732781808496732888005071194450844155763335833182096192753714652910479056994310790333886487532412513958421322509910140282767623576018070421754592959625893208145473179905707306878620715448356381095147953561826449550880819960927491287007325711787231324698894941752293059148545757606091169883099464469373716510110347793271917411065184893494732967388838743887213194835403607460975309234303133151306802074607827467618431390248089811923902841078028607267717713875042422314972126427192583958079001237796223995195678738448687305141381686359193561062837047953370109013358074241602320570870446428525587932733109952920338856071974445492494844096805371585627077169940610852480959739277675713829465846736575340382704339705914206463484943125832313638873212600747201913548134861637558044275200112767139025671022012304123004899676410188436894533363370916685619359249093924914270240231071530330602094754877519127660520849872312826000066871206100716184264479481830534014335422006722035070780960129914645773440703085158073498128421485051299806926451950729917237755452674675878494329758393601566257566913025690475741614812598890507308371052423631337583251788480973009130985411564233163469870828020704066000877207337105533438520132363901287766997176411227464171500619619772712670803789023412512400183733073952229198030127210432054127565420417384688569361123264337769906759490746883866795049879562241722038388187813466591398285647385483460884304280861687968368098289659106678963170804001459848286476473961805363855445635149545912265921566100318962588580274824612231316916269286270600400077469139812269140076528629238716031371401714785525598944093545517914682461505773679527130136899711677237815908934610633982260581604461517271936641540916794449144334533128855380612872346405761106149062154675863384450778633284695469689376921266131546285969750405378516806169091545335424575277522251927462920756585193128579374219929477506798380960695446517068492585523622407218127506040513903203552412242900297366752946747484306918183890057747117515528104628420647488082470850707606883739981572734110425413817241489392405594332778951812133699928195728043265182043835461696253883737006533391482811089429945621745148954968805308747795142016103386870987480021816742446441556442347098474825330280085948356102755863489840201631911320118372521628080425770698940065092553699648681393090507482195534573046323310467303031844691384667889502441134629797555897899714512234466066763304875247763032345541399670538982968594308209747644516104002134329167618739721235472877053674787366242115459800120195606900619073360906390501607615383320945074704950422050860723823938302043820990807622473117941564201202818976958772304927348027063146795239507464252053303162541644550090005669304626728310255870272356687464555826689590013445216713753143010552306415593334114461336278075221602234177533615200576516565559384938808873143966483300921426931852154565514252062491420018404129248627698048245308095743154662427137159579806180648816526731774318557979635844495783330191468277357438231364184802644178517361381311769178835685112934245380000520347284956951150354495700259261113127789610518835179208862847321830859919623111657179199199651177547202124301155097291167974845421259768867264155058993516952353865789284752439267371559848419977459700498033942510996464465749897405594278922704115795607740390247744849855379990246171209102005888882245995770047551720250317897677077656748936063566382015839739695151956720836865573147032514841826930275735216266610647700478657420132414678908321408010420332089997948277413787754919294468627888920545025777123087559655437508790096913635101745729980999345063265538517252159992656080392418685365669860752634420913823941065068624070376726539862043388823835560774496267397736924656603645700475072647461374195330350983390197433300938749432822366810546375252037506222787553142134381085216232150716318945545878795373602036705613936782959639154348552128922742489303180678011936580067351567575038276876610906880387929548665522150216493360445582941937650399511506315135200064053893306464267517688504830252092444708110938335853877744424708597447536507312455943865839826024153071096332888123107906097055528236355884919119457604586855512299982828705057171595414155055953962925439529937194014776168428888672929249004856884835492553325081437527668807027736113485201391579452694169625264753946997101432115307997000984438470600068394130061594269769732807308200827790223509993220120800861746944687412932375267912580216325448677857090298455565094615009550101874087796189348566789636392767517866319247440844461282752295961225402079074501883623834391013507496560512664176655310269785439160224706638860462270641802142164775966040745496619305119645091818899280156086096247462203562671657225376422893262733445657759599340309827089946665022405824834891525354832487167206686252197698782765568293997649827631980045268767425509686045466833542225356073126240503900482169615556980888794781562374921069119272947705755486010256741687336126918358431482736252397388182091635800477310245192110670403202758493560895007766443164763368022973637327206874457701586370644427051185559942124393030219967869613250296980606014195654991560447891379094167162034418919761463852448663693662044905084910582272220021823321609752994256833083618495790715542527152032615156586733974693411991763174869408323960655146079716171671707939151425017681779343048649023732837731597841482558105796089644778731097281227231515451278743845069360821905959703901683250630334856837837778124228522788430497568709086853010003525163011219865499889593878528600520958356737400149708259690579616896052076056921680010892968296383654165341460227552595567825706695342498928445557684318993277226170908673143338564838020826648117210466067114953036785477912272656801606032295550267208225447198338096844721251803577835950613618951551066751659994824555210808685328131628845524765328735911992815802464509893895261536802819542060639486222646845587151440066713463701972973107929220428715822801850796430891485016667942610886110801026575244136742703036067507936651725711176311749854563363746021587240958417215353607204809984843284899496445149406808591177676605339577878922877054957051954358462938974685407210406022675417875949527635597589942041891720291707073217996704553676240471793554792767539163316080856942784003849189879485711932053883032424366802847210736071180352205807162800345262651539515475283878465942363910512921589206633219238282362957546250703995489871144365252543580103466712138269317463435364370153424718320817552906502617767396855744128995851011089817375360288725147103146569181572554321768665383015668167455494785946101438728315901887328971369153287134183588469909044184585866335876794617530957626166531019150350350007103993261152761870671610533808664894367359036453888660095670262555951280707403436728749399191689493836119707293996174363368181408103234449011626323206067497006417210218819480365020642702507186423137394733052487181157029584772271615376432740199356305044732153301674331862984064697180346083678577768440864660507002066625386999212109389902881532182039187155667940675764800555860989714725060549859318650901989173020945732365941304390941603789450613721206463234052019903129261094812479199430326646036554012836948862746847106404250433204844997791161157337114934448367032973210371617830029284890533080047975551652822815458377285752693562181294537608127194063992209864637071307333028002631698280528423099157350256112448184291566454968077417441606365928734791934379865802398002088048829309143870196615115312420731591096542251563928520872892410870343302715902487802431912915470629788565554086362241525052744743522244391268829678976217784390265343551921897738050398106585207413424154914592550321688915463480850568186360605988249570205737227348456934503662955475242387718476036013947467229158473651390462341073402069366530736354552211288016702434345243948777272616039639108170975086859933147484131228165754371154857991124625735820985602745578652642826117584529512378733919408999479050557185448505041421372223574409445502748709842790046331239808203111447313832273689706822684802317335622402505349784777724180490218288373174169232354380664025805660472935173739067066057114101672283229395540941692891805370712107608885054410180003513992552639154709214265274978553170307788912646996504116306127684726610852077253439702210086961182175820250034362180135380051507221709394125973364580749643197861874304263667699303173964415487236825967295611538063331858046874177141622355054354353260192364858382406035142097588582848686986156178438174679386376803310486784535474036668341465695684348513944611363730771317252638593907174910981505377522482058135497417049091832411209202931593596803695296647081884535134254832433497531272343578518666650316995421608689340858986082584108290849703828240784968297810990491083779568427124105109886918362106304859027434811275554764666865477737984551869804554427080642393889893744115709203275634654719485194482879791885712013161050871157604020823275080439485504732635790713623462232662470807269793651095626036406510029813390076110676604657372762716831611397363561515314495290118358084522941773357232808013597172900196684806576478228614259158453972477309137065103782369832768220907655951862659272378293702024597659499642539082702367754639750936942362993755379481191200776696687715645938239004305655518311122992144600236929439452381002922108009876218909892518427157123208606644343861723831884557897354638861865809863870200060016856010318049675267485065286087093882402214348826992620018356596261879723849548340778845056540984685937801613596090560032590924576094230613303052812392434550656152545382392412470419140188277914208198868766315443033216778209651484473999508444080353668613325413902870260280307575509149269861266868524924937549399664059908092692322603415994456939389352902102451898385825579959675503082760272701999265496491417381221244191633162433675023160034610338036906919079591328971370786260337991931977499271602809055825916620842231516548669034539958991987309223928612476127747799261482611896695552188376265795992220379997258660561010464096971088643968152359398574080652749717212205076370849166541509309448221852542082477219378764833841882496714799213723780766271165713123962322897576943767367495112549706576629707610713145569452295867144926817929066595972908358186138214397669972395364013301309269536973656508522600501666330806803765284794629011956593990441763477404370934965346010711633210397944385145398643349383409136423290003670510767808172429523371178328645835060145283900512909919073093300739768187069114798613587879439880305813366330921939065149102731695177100496448468408043524490740727185352165562818948829455311468120528802865696263616881837346656895420042748820875150179648435054958721888791379001743812914814058304108946494684660706999265975160197143580907184329200328630461707357905497353759827796920901618056798025711597378789241177805723062727536199741640615803595527816772731588481519038954529123179992093060692431706431559560360582693419169638932712612807786236092386388961549593877338555752134503205613061150799131604639712185670638322876832460576385418228893127255987218912508489484892861817638825958674860727796066868987605916799476238613516226059022658488930776256734608992695049975208041715571096021638421637909102308165341337906557549464504218258882458718423398397426498143955236419379364075592336058274381534912060074704978740096489744308280035534399570110223465131695386667915111716667205193249091031544101039026825628168024298367698042247070358898485285141726740550188589977965941855446026770887480565066273262841945107302785916258207795736257095915891692182376532441074651204308274781575221369607229676932112631738902982930078247778031186790230473922741898081130396014403213224023481284496808872322255166590513064730328760211697236541001074861075813395578392773469971816737199469217812763230371340345136793677572411889643038228781653388523298461226945291410812783289948988597524367884232741811807495055388727451013476238945673372863402862503090611723101395245930765878596880408953041321582068838830197644948405228194677059460277301217759400321420634280361271982264153295233117772615967310046511466115841983866291459106713937797019616946045030607342150042081138638701337158030860501897958853909898458194011383287634403935450798169989246872778406123251565246897214563964354462514224004642990369279472917862241506950530206780446899986469661148184339429676286701039013624675444460045497775254784380768752288448485120008853626762676235979309135324730685758374623791001858500941185526257765269729648680207955694643555666389908336950817492170369077725248983820459418318209154774587879861491394910564420134883057391657781003059232034077192107524653258883372206777367719407973051801180631174541077168690226499807873331508292298814762117577637918170163083681823132218241703343891619349293849209343641932622090153304033512400033661386208592694136510469920109158886476313850639634535481200853797707191393136794777346764380208241159963290037366269678276258676382628325300058341666161428440135509596298629014922655264410952197488749235509830176983407291751665927910465712910450707063652552615238025482196826411538134883503935278470964987897214164715204853799748170304830089312128110811546028828698160419776247749152235590656254004725175686127703505061527298644368489933603724311198303426063516324096322390914880952504766423831112111559685886026969535795110544646562847099225387095652950833406132810797149459701035874327439955492119263192724007525476213093678078300679299466720493315491779592906178182275904059321167082759692927166643537169174828387957153109112629988710724029708960073729693055030902935922811677275008238849072741021974780641606104598180761833406407421509366850667785271859625710524683208046376491434363363815538873341745768538693053719606529049003681167750709478812631600844590744487812293719543361896624128695231336479645704412633519699887914249917631920692020410651053677804041654849164134883354560489934836108518853228185233475015621671588806293999422042091851186124360058103578769305365786932916706874207949173600988497856954721749889970116216503387902619775350111990194587052060846268028393962258699617236608131978521265425956480326444586591443594165118862733648539812399557796531712294330426595017706460773288730850915183922003046688551863819942419923259439101607058799075567261551530208127423278356255934205676655649316327834972109762560373295203777444259385266510576224651243029925349623975174328910141412536794995839837877450487138413136912455141675848563780590560618533820788995194943377229226581600554854512750501272953396295937427767855415933168422378807984363178976386032373290973596214381164616511416955833818211718084285860018894496973613643339166041241084580390057307061756908145023192695380316686887321619358725054439465676667117020595279693290202985787370056879930895742873755651706520518787619228812349445659875277889050577807535951523131019763092871365101790230698032523159419286330543253678422084030333603438353051376013979774509478526420241812599207785654048506315262714921828642266020337405456290653723945735238058782306178737270665187348485994656766497284441058213409880293207848130159954907069367480775906438730326706469654659490404892475113543863640959492818236925317059328153114342216415312930200351652433946780133635137929412868443254193895108140622665745470078883330365423218390843569687354709080743695900496759160351853082537847739000464866410533901836020181186126220430042024082069385962435073684755801382989753171847307374396649173799843782092875506583273900460596566560750339686129397535548651224252865504272741980077497816888139544805554462665756229460317574046372327459728664273034645859259873870133611589956224611190248071827337367722818449937956038424548939608269911088995161555328307456184792515420547440948524793921591186420619314306119676896142631161562621352174616416830157183896502466114158254747934910043447044006155740585512778586058721510776890721030158864445852038534711624142887018381385535497797743903704238874085533465792414622240031093415098471946721211796166004805829835680847336169851930114983133623869766609221939418022280563570836890348265769864567948269564380529026063264433315148771111984467263193300344460172625089232196871832126856017255229551282996712863043429537808546440753791342670847379700577644111734622391069268440933851207541072256426093219814944540491735265564122574557090949740513427282551857175706007629245740136736531334765069431822977179035543820533730367835720401265163601561444832838982039614160817843703338940315814802406028720556700977062795840592493195357469659800779966050258744277549624810432759355392188154034039255629297731749062992409329464485322622907600561859384963094030726946821321018962758601128689434066066426435223490087183027912461473481521898270117239126811237877493918724103561382341042819437922955881860824822427358116268737925969858133171148366341638820306536027902934260499939972400535708212300113988019057318516933001917832610115005054303278729822863767753628588903952028886930405955642827133446196837310616763532170177033570812551820746832528629661357831018677592135974820966212793288679539591857380892405555979322824121625585318644273822671641205060684896470218675679533789696920257874061577742810082213682540242860834910078446015200080452240405728317560097635913892318773794168636933758475903073016991440380087967473338831690750940723718654210412560296066290710631414235025127696841007895290432916981312739183412721093125191989905653566421821513895658689280045072246940817652183401777424577079205725623786795005756877118670135920213809587380617630393026334792792995566750532353462817524398359512121048347570082647224509392240029399315739894715974722158505196407392532867017239282074886019581100842829190442569805101519959682330572659720445515470288862277531100529509373389132924047142088762297417762749202235448256372947979621524786233200707314134259088799092101191260649320413682019947613216866358625808078428347457618893123354978043699442254422931981076023423609198316317422915794862266429599195237980403157853975394734336561918806246010926472302521104310866204446803649135363902414289711978862432295340815369689055674341001585099918436097008068351922501380194055521671610945711057704386864664562547232548964487250791836251290770218678070087302497501595457319488179442617582679048415833101503778539964983947201015839146677582764943323051195013646942609648805487195696625418254000188539097025277944296668237746912365950042307093250345595097800694091244011453010092366537968579864352129382351690635530264210984906897824228906704923438099467792521429180077936871684680629661758816162801621531452404998884063945294582602486398328946880012832983198821517264378798926412840438415135745890453621266494123606443245992882093259942615682963368309467380325466918075937896267883767653484115991896803312756662024171409210440484561337592000823376308954491570056988415883183170203433491036063937239514771963570030819226198921421231128889567826868101480416346502950022725062827622358479200520283927888531384093674201041828106493840275401827467405642281930903343092041399675393576339142497025355756905438674877424067381520411683014670797876097895210486167790643174719223710464341937297390432691088525474333262997936601820288645829962341440047402884653275795120871644954996074996250555298712798784382918691002966526624961001189800390880887061358676193601184111404883513234651927758228303409202746565331825919504755242930838570662483898337655400506214180060621355800371425737567709446549241631446453603096507618904249770868619396118379600144562306261491942644750029952855268610088711097276579465683361629506494342062798805530716490205268273830094416121746296151905575363513430823153323526438241052189062151679233150088515018676740380786695282685672570966480788624442240028931336296043987727063726879179411911532746331968932971809624284788096334303053442357592432570612207504517498857341787666769650483036062689147766571989105961277088862716913903063912802470478100444037638234829079627856226840658891998409383497629757680683191519055089124675139411803606907267125552547701195537700313024014183393585922794038589997218277199106657813183008326669423221592428474120272146061646055300334669839039305169727803596871613949090310762620739506769030961962424160114397709530915366538326706064299451307737366817845105946881125983036615141155815299170931077505734586394392060566492499897142410647559940343839914695459288073590982031288151718029704242468192035604977910527763973095281391729403724691439214367210455791301210942642291803744155588168278667477000170242915939132719578725694604628236666268839309406931979445712988153273676131938287943528400196932020067339745630664292925486965140677908900363394794731684172752637330496613880049329294934598287252021030518303417732886663540914684319562531531337464009426233046773442193039266269071400796320029582812737599629565814984554860381637893831550934771748957073057206486107054785797038608847753863009321547590975147766339057977996541039769982518053696110637733936227282543837518188759705930440904957056529181733682859877778775758663159949531366259103780592241562475666323233563043330858746370984528780245184230815835345918617375787607635629568231192230250978693247709208645718229077898091384315439242580955980915729884359895387557400783080844151356775980655036446868955783062109605887625445323534939242691422612914554008417775464435304058276815895523976304091568387894483709005442134518547646966333138747248473023234518009992294377036093706102042199612032046601062165605305999119132082041788075335413029161329665450586585019845553720326707348516556283364211938959448925063727377717070234095526633157811825682241109326038638055788731305630608568126351286949969804993076310124495570318711815633035759750788951832555991570030720148574614816729180470693008047062138779863275327668770912082419775519199660087515643762116037360423761035486988723947855424431377704940281510094602607664003662682251365645361036780317942562818649669992790197819018601546666227093171053713762479659087071857125040344938100750223137641117750280301599667174765607289568044525678625307299161784082078564243816061112626919757764648476581443534165757914723770018080881712223185138233274151736218500756784165276471466600038302908676433598687132729186319007930523626646107304593341398015698376827355834465662371625135995450423871764270021911524148651998784440001304368859359320704753664041379019689087918871694990811087401731951129009843592879672955998445864713256041357069937808690060280892001632144160420553351903555142949948827465944594428415386035358699471383877848210357651414158791877980847367370004447750417482985568044647641694384092144278768791805940479261021667730284843507487265215302935257575896676110038092068492431584791151203274492556904003527498024671384233418764429845115118022528013196389509579762957527269054978677196192799781246970482480500755091735092089677510807209435704206229614591814861324377636164097710796066577867385699366994158003191185205657644813548626074337053025794254005165443565255012282700888260829780332379800541518009829311716054099257336097428407170179061625228886824302112697477869576040669368962920410918019160577621412370915292703328469263181055816065058834129040379686061162277746920078254055863891027817895763019789791721528296414400886892346536462665963041602406410842869413966458937385820159357067473530242863972562086223999424031751023222651911299133530159916820665916133796900535745198202291024872748532342780342025643705427041252139502791305555091170618256466248596417319088664033653010477996760144564920431186278734877259195632519281022681655782854942450149577455541699531862681629845856383469884106201928180409853473579314172794352137406334729746164775819704648829790908328859021963175980292351311915388429854854225189921039472178453084101145203783422485327799245791613095127875090538815957664103330828299379722878753438539321591277478183989459070435039821632572210889332631406144747030999838157905983070030462208466646463559528834144006215652069451808899915435535806258114751849616297315984982141529911030013763533453880221228410743563106918669751762557292189266984906939400654845729178484597434605030719207375437297832322032285985788520633723642016146250332783057650756630653853860502623024274101651392334140708027556086319280298528251393936281303100212084998056813342302340916232200668478204509049071694763668357402409321314188475587094858525164683420876434941283232856436420410887704581416199111611183595923876537423038951978724555142248044722297467761855651373609316563839529349472111691160503318792960455834477608323027030387461955886505223430247875230605104213840684497939088598865911348764643178555456208321855601324248865936962011916274529306887348530004623802426628717006248460492221324696258257080156690222720755753711298529964065703228167552699692000725384208272537901002223309431262385809303132721605178498429645597967789090331141207384286530172840365439867432996295721197225910836766497243229423410414555567542092563577719606410624259858883561490147304520064230138270274184090234177869815657056026870104064196461034032789988227320770324270601241156407719055181926849911313061751458397514829168819625735751260670425953987061200888937821731474656804817644878344590084891463648351517823446643517269940806132387610080803459167296065308227030373171635983648568117009989025696560802378776687506601819900415709407960033254501458050762500525052750670936337338792633457092672621279032789004244030780519840368629788390188266207760614375370065104861524005123954909350336522846925748349644259799470415997366297614229183733179612356911515039096708750573684019911354479689876784911884813163283599234969834169626511025654537573651309429807460347892062017725689195570930557916272565269508553671202710234610050246166854000116682242944701027918328249152488745631608868103968417822058466558728963196832338824269498616612688809912973360207440476153036508141734555938419531827149394324998173177261709710432691140355837893812559538800665050581040785746338943401623933530304466549517065523643676174990027625481288388745708821929161870541799220904987461351177182601117525798466687408905171235728068919000704903263096445734104360897034680093290807152612149738829910501346069706692214898948304435331242992374267936670951737775596377142878576344148081402085597979750882159974618182468288401934228634149894397879511523101843326670682989966392960462480886245107724985118078573110598639399770809420200207031447385390833743248370982271689259608709916926339922417113880783553119742416206194412077407475382750494010256771851824396547655057605719252406860282138815442535583996059015317654405017179667499663768524191613864856468631407131687290421736180886656259016797188836803318198885097706173615447698259290676448483020661857580724973648136433669078816542974773523066623109498984818035576992652017552227634720347310283230511044223107684449807592234240340157047249275663019647554589535572014824590003260321276028273799915516442485861662629569092030894146682471221424966869247239562257477764438042297000724774271753912986245643751407648855975993067984720828440932029943166910778217814251126459681561629714902699679069341489898515612862218625827185193286024253386716029751380115694803458439746687785691280169989832355848649471454452183876405198230311189681155769484573979326970419954495167918991989744245676588875728425040648185293057306193687093676581584629564332166819234983543002858153648641973806295780885294228362318445363803544395596277252665499364714464343578066181423977666826381885704974942289170762629402684615101488279951464147055180271980640507733713510524617666630465884837168245665905784005983422724389221582380455160597054865475856721995601634240110269598441363148802985437947028710415783236815839807627948223028624870306268255700693070711940891840769847030943250700835605263781120014982302637675709834779357121671234617355131090510972470093105059520691296642849989124102015627362347903493603638751834671573434565782480652956213902900786638792570688667309289768855240715990339761373538591853571597049671209771435294930006525428888356290473783878670159442783666988566425479145429327227912214700992854650560435734121368416641615456693530058907250156346009091586411579490780472357816272471854520042011718892033805778870789469892556376584637158325049572893629398732809205793500739465965009225163363787427384601960725168445704786467900756661602284435327835284447881212024942213638052149598070169089769442774868062021419070491322055404255349977104695902372436292387822924570161963292970469233460613891743307707676213255797176958954860944211955513095497535846741870707712910280810507851694660943335411988194135342109866119765240645616963834077786548637642456853005195033438557635311569312593204819368084623528959825524454286302645679624306984336716431961197760496847330552716254385189153823294020775693469139155529046528351945131791505670669107691562445727534415797338008824562473361384552849605358419810094217450668733473580583057111695213516344855568440613124046353644189731498279289670299180967167683999800252485076731933695388082948536892436936879670153477321219525657827789509019751075501041136157240354662897212667877502677638392934628844315511985232445770376332638008712279448362588499997747340975909231189836526315599007180575067792011561717426536944698831298999213116690451669666876185732638488788196276424049827779690610926961001962825660729875687080310252634884148719934187417370903684372248787435858913741330185088613070117167113237191986674592848158031906613352750950286355383259139258524564683520208326682074728105446458729559676239594187011130777750698086370444888928072783031423429332705314652477221929118388557800606187264236422424146500756670083871099261294218669971303284386959502442066631437473622458533763234891089734000553710941007246007439280510114904981500040542895115382322409400512127827024431356135005387457153691396479249014487323027562377900943113486734199816669111738977088000222438531725901658889492603974239945881359961087708911595147987170473563437158663836942629686085905555511193929561827865285972716684793260716605155721558042267510603373328095305540491875267169048593606422181743942375737551356566864889873447894036438830877008766166825116987048579595250569902896636594861763289022857613458349611883346463312228104306310452195105963746725910665405200167230575162129169281201321606156291982029073017922855612112156383596447810978037906382594960997289565524819774431555508970876401042291336255619738472551313112049421801090929708880173761304156063981639843665724363020690059688555994630212679100245635480358150368161672186750869441388375773308270324345340739336486386734339190582355246668166058295343164507959352509580297445625590241661233444223653122921284058045351585663305654095199162145343530222151385773050714837348956852043518272372685834793047521492324328302770012619495641000069876959730685422647822624807533882890725006054025861018237812285233015275212565212881371379610594137261793542408055374733955887694076871902719049770134721678365919550786679663914465185074326839401469190730559714841416889580037380439841744426282825581075821416938958743662638466073016265108084361501934150979587612644517888065173026469655215058043838561420582653040220429493453575860827074528405383579357992701979747772998119210553351041651538170944620502756568321674516321612677146102093465851191715564682967215478104338045176687788971210822484896986440947841626173820545385338611985371552668020260417295140011644719027751860143810862728472285480609304881657453524442530048831736242790408194289098232568830239391232111380727593349283341702214273781217574124117305890737331886498057126967472469427273366823348011904300767040173966392821386590128201854696696593604308398704796377806319201817712232133351338909259107893723925453475204959976508079726803692113007971206231406773491312036238665694940307327861108872377663643124438438724584715241784870920588187323123210392053643275414699028084601932456715796076646729413232457562032630346680268113124995120024188461343703508107924051667603468601715005011768455700504531448060326427381044088248132427109616070914863665246635671234070656563784131748208373099506543924125812193898632760831011387071169925342538790548265868447788984934647857045847368310867654978993572924705534633485029572137865074323026869276619608720941485056029443545642451502348411159358236391776613801964394653572672437552721469449871722978838832181592951156556285860685081213308421147350405917822587996890955108637370053913311311778181182519535134618467785676779293875367419328449890605143670549065558743513619633154713486511482585308698349770737088296258118422028817889128289296716156844986452084024811157876738838794174977277006390884466738506455672635334948869467867288875551304746216219426181694871444266428737041494237566904378005289802993362252287881608551032643844774746348780780843208094962431031673320456985401007602914130067953573726935807570306042632871979935599472434319927195915138249670609272995633971196150328562545799147047321181272249827263431249532866569322917498534127110893867239888241113873570730961867400834722990565026212503497725316926299050749774867528589476651848789849815170710647901779532309506403591581143804567341995448069104609502511845524487570862198235472450532651641488882205956159849327262072308124742641903676127108633348827407279748107310056734494999421794816982866887106933142335509510937388916120812996682565279340248795514838356577741557965411090965584313130476534890899612117922515934830596842853766660994711514093001456411849428670197793509670422616018959067439955162728650741950367460028582880563438142757421345945684787583206181193676492937463409659234168355897931803507075459032275098722200787098465123640752595182806938740860653488667713068245192535409915061807899305388705938861617521471116351788791023505896239811385531296383694793058833689127333772584168966469182078721266423553445696861900509815204692659644502767828940834418985994988056232884553991406920665124313799739437277660492890113103707909508952931374901033806459459291782249309193866989899406922115827113140150635399358038879441462401491682317322211116430125902967054941761006771531053397071913974896348113348255475065255778871866680893756597125775009040406952602681561742053314770012853108901344840515901479335187725170853686988715386660433801701665880214833351291184198102326065433392429301000782285281333732913697811357771843874384074172191922342688301298896417748027350123408405603898148652273042177099813220105491148002718048181702797097210685316935838771934901128092023026907881088859341344374834927844389321388409850718803453833742739154165044305737261468181943758256748413333170914997892449625895501214119945055338482943192857283120050598563346663599787704099308643875909500385425107454519378185099371034284051619458641647230197597491438493889409528728491162636402855694984591574353494029657298857993913966981008740584888037950600447710252388924789580409705773138635223934709957614954352178382006016436192915535913304814728972721402849453871178118822485147912272025479140731026981662528951176988298430182056510025173373138764062436495634451040424890928115888848581819728445275442908223313092448796427166602330870556969887136840395190439172398347560556857668423607612158115779466127773280315536386480363260377937597785916081965517507834915048480967859319000243217852124894606053887302952208474977203221201121498097685678920984875603971462975601677336606642291905303641916306908231751339179507455437416427649505285415715197047889613218590601997475551908544031346255462013622957602179649781170382331839634342489533360703798591247230954230670762777951137694007220487587225372796737217764122412816464825662231860290768019982684739193580014797651240795040813785398211896316060568636127091601464656056800285053099267545493327194802352853647986548718918725844878483824221082944180396736454666565394336362935571191510911931903718422016850408646668067248376063855106287533597031232725937262270589830795424553939277260738465673458158288399252667023534465823874635884279654052441106474751091464055591399124608945034870189738598235106912421220218311724024847525792084010092804125736952447437298882062794103138023449224003859766523170603037375396572928526091209690059024562372604992875614854270183055001965472963526075562742438331899527733851177747866191003022817060314934203615331174028458407604504021676064947542918788281410718934243498823652677597351099552791224987007858184758570169672334764478042191825966677555468803392739863488903180719674942411643449309716350235184219937681245670191896045621719862011572008207997315815415745987421678265739470310591651576433657254334922666936929857677882138719257087346995645074212784355270938755569583091134009180662855962432590101559174486795894227337174877238331754291071140685830244710374930015201335853494285580648705971384680903419915771392096555482375454837789279275100210695897894634639661358728437075597482511268165192446222880097464821361420809128541757462997914156063611091151719069780922850058907241733271062270937169426802010650694844927457428799322514356134513294967010469966787777374993533907685967203545920461190376548522696614032276279999038615141819142410118696275925254568142074469347375021383649195476300629388301627649469407369794124645674078442891106181180422505917386615880030198082372978398810240054759170924589968132311905416473653401854299185103460556171400448567331058066017808391015497749072344880898647472955024573001927902935799340898438984414959709610649601198139396569761490592416001957379906031666125497521090001881002613164535140725374658826861974967714755843019847029989210089819845132642500574873324185634770650116916843329550506574486287479030020969210157873404243897995449475786835693359913864072727365658537015443908077493326279987639804193423503580853526485746442932184995127577196390105843969255281043481168522404528646525562869736222369801857291911170363127796065055384860651049098595375707877665735713534945924263172304845308757324225808605378124601682982116021396312631894225384689543039696384284053120727772975829173669920618515582338153911297844279138263444288815586973892104779701202894603651610290969185578191919861621441000796773209956421355137041628044676954458456680764323855550704080147279963539404155156337463845902308961581918817077859707059519542725771745869708026703807389773779235394953923713003175318876611699966571688791729200070996203435688489054761670592998279241430195242761459887893453359348543632630843325168627554724206914616246097356553763384352589773943588578640381471449481822157539870903636523808302620885913378857642377530899470923824331431330836473045525327897770399700942356823292511503287358404395404281110363346372514987912363698794951620175429397401340630196902239702776134437065048121835142174239039012580528680359678148091037314991539917745800472489065508379341190793835971589334476044283284042874925032707665033690604926585441356031896252289538156601877588379214795616023738800992916015534535597325573175850987941900684875063247422450080946010620310095415701574986130064421385442002153442251741780462198490778188887674583139097297985043144101394013425972345997784327358312755890790375016261996404991228434946972724341002094101561722546927941511033990344239789914971678224231786079071938172596945084896831017269465565442786298533393852775892622859922587305008247421235621127604074577299807641628437870812044632704626409506024474456448551287283575638051120757769253635694038877662649243569363025903168572201803797810764876196704031362160724691603422051634664469407633874373178067926672207138508484423169776928961022768956715658689860048342140874728777049236907228496234645359268587293713624118694805532706629269246693022287960394567239541125438979240396169659295000076162566527674690719850156621254941411486850566589146954713059929888022950014935058026121558209775524491319523397578641419220679920461796148280388090998532479122280943842510503734714337142494257938501640072821018908386003596197237121577723665614558016133984450547861103921700124722074663759683084007537328924283507056954588997106700049138674159653624792837877523291214375970406480099076080743517659517348267566941327018509853056280548927832142947221558001367199687570396599330573753220498006331600209542614833744220564833161512090096034987986171013097112369554224897695138922640562189887397314959748848332817510739884585308842861178564369433790147191974803696562743884073601714653089909344205432278168937588557417200978503239637780758081576244349335366463770339279365979652400137836775317754008132375528844360711229641610726458351115493347941008830738231307326001921719519053714591125959214478626938732268963477562969328539256335284483256742434035758966319680764239839011516137627442943397898497324441113500073452955385723704579976122517570705269966251663087231743270332339154565063929923657662495302410989981121540836582385117553578732436229306291318701218934614983403851938971142914481661551598867832012475780789666349479453503874726030305639961425661262457050285620951862705343416316971706234820718731447971677696690219466671282992999205119786955862909094090610765701283925496239679880877566980737225052788267669248236386650629445541595269061654518487537716124495235883834783457856633996016210417303007421619058964483817640208766024846700939396217244752193427126538047177860856838472917089037148410649737664394568281414919079323630028362445442740369124632447682271318823147237766358750804483811530023379123702928415155588142001266800435865340234891319063959018891446093216094586288862481295128746885529004033569229860574528283509418220820551174840526695971772950114910877148805326311172786465546844738001367460267755986361134092862736860458333428628492636524100926120764699744790026767455468305554948454306232595781106526108104832086236826436467649767348389448472200941319318881241218341706096140813616212122475004499925178998487865232524580052901214647025816084388529286338462986062031027275983152930428875218375598816354271458170010447788795169943022942069000001085490479168542467899822337739759543476603222854025572394608346546969465485209974988946146577261981296289991771119985024966823406106389853875505824739282897948811730327517491631710432722199917178549208893348566837440349518705271694256933835432396161475396859287300285379295242969529252896858327497038502694139934166353563214402837022003061419653372516336094227206668008925408389497864463377134204146587334981190046592681895471548210687519301833081094522661420992078370125845946986086155724905418463117223321237490815151227179365387465578325286542706570757738783599193268182431805390423029716294623869324831591945791419188966396996205614401109171406542137733464532371418529288258999257263946210873828342730503039738726283742152795427793599487074944107503456513114716625403206285375889582560556245549057925095491660161038088877692081305084423536774866227039151156803224050241072597747148185655174810494103393175882633384354771945771694939900439996677080824220181310573135139645473382990219371121197330162165046381782557960642573266671277968169736756058141538705275841318438958888906150516370476768386016668557452671463712187273354246517770780120702150970510527612336493731643704150258629400021708366094114497242909665570173848946568021673056303764425885656858059371801468214794602602329649984495728710138337647372501670919020584102785939124165461451699811099127318540987195885111721109377434551428637459997835161224902528699117391147511145014855574158041671447115282726326720463902023822779003997413384370494560085493289466314803673607384585606949496899791919415543624983533844688131952107813913941450676752771269542574721831443641821794353191286407749251088054530849098911512036518917921535764639032580066467403564364633067807268637810744941437007523044920591929018649901973782702661777229642328845024806689379223224815767301189406081652014094956834744310996263652833959193831120328311100694385499251286188608237927049146500196631878058148852102415842697005633632216121849169584571068835700601119157852111664187306675382016468788696289504245459568641466226380392644276665841328108022126460911341591692095630530434102953490963786747710153530523233954300237563037470160114758855201245514272494155846725070263551865448063557357774945100638998588679867611383610400577276695605540170350787900877522716638754989371641802628719831198468384503045344427221574603760491790954368624399751875599292698483548389885066788204499404977988677900550684499873113627810476879877166573085739077418647473274808443026087031417834779380326848516680357497871462783651010582630033053766462352833555675340403447184388892038944114361314935760820228872410178832461666386209327956307421339183924720151495653664179015182481344443536977005148560537704656593548160719248185160695645688361631013525422884996299035854046047657920559014802702240851734514432987942582022711854339819083347383055148406234479052463494078968337101010284069567068223385299253722916271443614890506689068164518084070448866939259232194299592141369026203675865397482760771474891107825916708973546672333283182825325352895692236098909217110034394906910627219526788412313161995557708042586920662299098008566558570403803688680466103448673031321451854920127948655290835559311128032285741587013365479421096816700543288317596823659724905525746134914892707640200018734126797137707452343935630732278723247262537606125004513501170677951118303247745406937238615757925622827539553271395477440214515109070788249864210470489093402054071387109896814730882196930343015379032034024631359405503026640084973313626143599472850291058826805269289965932258365320653504902876854348218355091044665800745952876305136430840304595192994914872056232274239079305782099083807899865955084408475613341801366922334846310124016166042343411113876775315594767440355130886157641347107161356870912814895671974975786502603674473849584890983297362200890429950128159134617774899378611508625851827069797727778232233714667065265243092160651786187130863957878275685777909817685215890627256236827239554334922439612269817414937430885899010464052001179947128659089502160725556809686860410060354891335280897155379775007279180107237056932439845671955411565899313059171893327455671619246610400022789431387366747126711718355072096229430357136683729188185405208591051707566869471242786605052506559494953671926401292760729112608275244085993676796235064238313025504924667046650687940754731666824531406925647116345585368003825039542270647508860104947826949894732174219340462759627215852162867911238535248252067346343862404853225771065204081062354702286581655875021633318335268164806011522697981918806920179436550929301796930126952082445229717954574505105458721763879481991881140706912788141476001218248058608172730149058903331869334221231626221299691319566516912216446102604230484077470837919812145567447107288092861274800248922606875930468259419234691969005083595528041157177130215104360089479706549845202198047282456801810788798925435139476409628681996984660846474884167391324504204485233653891535478969908879466005464274903409712962162030555796761944316475164776127599816718857432508368440517013461539905114809091624653228255864055620002842576492616021419125622464297576952405140690686446301044561600467141302960948320503552512466206013899316310869530914467063052514479346494150267285185453718464745781902194737970776692177806028993704857043947809120270482830835205033498469995943339172753168972719307421635602980038759288022926251407534153023288059720253945091929899127190249372006484044216144761722909580294485384161491532499941108637843245677798020936353626106320989582125645136491325981113278748787292249516989893489791403412144082299341366128679288611064394689451855331326972490552239908506438697146730390241005095530216710053055188553171565638233541274696046631098614493630226796136789333572073475425028253193942794469917692889693622762880385580078286298262850083486953940698518941654707209450771772801474281686418864716534436066149242765644228265247699260168064321312477556065010882475220911593156180254335452216582232249703566222618026233131327638866940992148450671860263313179136642347172987088955274844272591933022480605889973606393395758449867690392756310361678771146564898407155548681025541164238490650185459003328429067850166341270042286935670608883488425646168005450121203707197583535605310712508615899970234020357225638823196903891570204024538020669699635512991631109679244279039873099958127578683086428976560028225954791791605839415451644155310299004968438868948066562980528361795338184443596243799209787197415538141645911724016699484676582589387266936783693377908451810127903461774712382599398681973253195140276164299432945523793749564855025358326488093887665051899239130162079073065595858105131458356522252567920845110174235124324208343441831120327246903991705640448773624588460513278550656304695019597378594202106331897213698624376256185501606938709099866119542639593250215665457256635624833682007998881694651237536002823003576321267912815892661219851222106405953008232018850548060138468999504633578544010688838979557761927251771070052621373237988424039478802701827492577204904721279389746649435040176501560470239145409828997751139964825177375266599944711708873255416443508176712343534213833852283110690243154470624371987873783179281390296244447778153240167898834297541698764324572490436437532149596627560149658828322827377908842838269958103730088909027408652686526017775104618391851152195399811104987640828202584006515036027976025399728023116325436448162975293017787400296886927130575485437114456154706602798160722118742123398928644196043319063639626693896236502260545119928864132939450979353933601271181640493087229420831551750359569888059626674759578663482567266712686483014036265154851391481044463693824054557565136605010210836252481786347471542402829701693424854741017098977612207293062055526802644414753058965461765942640742953093228276441623774737785772193145427515568048246344933057746666102076407693858157391113252239726182290601066598636466065816343655236072265038687107770566720230718516790402173467940470236352848932181732040708606423429347759413479401275202423066891915347282545291197723940649800787986519781806404324724835674173788994482338467746210249349620142418010496663193883043897457104128922510950061552599571557185129437025825862711882597127857283102963512341245229897742025074071229137804478823977721620915740969944252405624369800068522935871228650852667623489008412126322582460809204481909607202487825129857383305696416871032885510904235297086342219825665177047068703284087164675307239248320501830933148761445438614079330193780150462448772294125536644935151493209080906665652344371872955403924921575512906266841047629851427102193855055074502800815467363370338537160213814264077808050847458331692333603599762074241169421430139488393830208898282033638199529034632919209426195566959272954285228189273604373568954835919668710117320745916983593761345344756399247294554076173360918306057149958559373439058671608380561465442609883083999034256535917624950221394696559439487290118796307914254777400818533271128334395063823734524435923422177284463688906919298391169857699337800251311088971940998188745860060572881044624977180852419732414251000375195538070656571216509893323188652694271217911121072080973568985601154489880637546793996611313254516496072283841429386682011204757453474279242474988277234963642564489512460015315146546413605529039929889585524041364825464349093212971805941168428579927433241815503151034471514591389189988762374621893179014175579078991378130217831891702881317707761307448134893722909936482716710336117701952597080225945520368496134050982067330026127513744260874679606678073830324407394354276810811790844283746440546095940506183817779505716110540912322389300778362531248156647630076826731233886806211258513373926563496010875966702326242850793042213421304962264902909055350273037017734238248453623986677351589013759994697779344720473157079783212820156148358691050527250520476662684432519043177813899855815986133202217096829002074927648561899585282856909361480307915625084458957316093313933888259168549315824454212663347044882806476126505171725934111086169146874478408654055296161901628489999145088412731442870180243129047933085284395387223735491935766033513945949162054403684218357022465507248115992836410268745011482648308925121328615424895070154927661489630400597178932523348668076943020310743010398193087427984635137637042716791104828102476374445957052977708494408602494365438791527050482303551356803715158539014811925631717801511871240359632390544176822107481751144373114929144813786256904183589579142714925054434189425526549665846338292268705549037660709071769400069973842076437393086478098124424386945383493748524703957056494680665383913067638603675074490114905177814852196447370606149433413888673758543901045257880913376452082393160253167637617144281942100583871632449644476822217633924544862680652279761529493699742548630227440949209742133765594578652379723047913574354087406421289242373434041883679260101887149743947234078652011079970216368703618974954008685921056639631249826442887963028147427275865227105754916108293380619186288365194725613168831440827767717396105838770380212333911216516086029820189534860124490483501472054817886518148103713934930432561782421038632329575551792795601356268173401211220391038836315537754565243551460090195873893942928512959678690110842737167867184297329180502617285078017061095132764835691213294892711111872243194452314556589364083114711496929453329998913770499887954565932603012780445696991779453468230262799232701749798624853408269662995438012070262805716918223782295370105729210544473655853075743668438713573483187954414462752969975450528456375657897531844359064039593424666609669416070370966940482574955766294162522003640637359043327793074711959441605262425832529491924545409568799504487764937629426968025154074493005874970176626712275171291636205471693843147673964072101040686044369656962639330705270937828415427023344923108018214661638814742139068002735352699015439097909647352248475161801461399622825784653558406391198920633935534092611268157620132576770712221379509656454799326581479072533185880806557580352180775870862059986853669967039108802979966988401538488488391047708280409193594066810318992866909936088749686213591014939940232042975436018149857525074355421328380701667135687452925658895672383291445742262882125278592355156819550149352768585362995720237103914931566906539376616659709805364724043604785632707021490543246750978220170263786121568218592302829449220261903627727291254460312947778033655444060753661724061211454796323102416062224662521072420826878463533622334312467483644669076777816312779171784521850889813471546375254555696572765428423144833686676586003971844649298151356713762863126317119742535946230797357012999898574664312861879227692300452321361499427437380139373166013873465336124709220417166355792942644489000449513640285706959524703917931828555075711202624541695863003327545525232230251785220021862172684959605647335359771465515977316389071054800851930676818560097181278415754866180347296434247447888045355635891082319053722558957009392472803041237680122730222418550282295958010918187232203664984909444452547688354261237945054575538827018741431147757539469400573287871350946900512999086697264551470759415348877051079878201640616104643148999324104339444175380173812892323643372687096521651821620285974683334070760519946782908041588073403056035020680913462247082399515814488056675044928369948197395396935867278844560709852380274117458617532394186477693248135382482786167107632768888204095919485315608694023471302985602756713747217257519042957966191175296499347964663379123146045710364535675348573358371510311892713380148204266182225332427755101836949542721097762611808675311946586514856965285217883391044614286470819811249861363783908059593763930145654016609867870524539039675387913266958852020614700760165383758869834465667086120496668770247417782748936152962150536997395649547453503718890303716276338472722144205077226207310643553661530330256244900462419258670714287186056510806988506336760659301670867003517106056064790789457505688406397122110497306240714610882973981013631040794883856658987088857586011052937650610001038492346473218291223872695107431770323793042677894587867172039159412692996750633536407993428652166101450372354007924627852071056385154294375203488638600899329177980798928393851438229694835708505248506242052330339219215447825687592409029762078340277999845103020604366043181618513356392331494279490602692298873480618890709676100734692754835326266913820673978267226225734150292727337170802052389116103347649455571144247217010580903125381783621486506730092190729067206287380866671609559327477669243673605448476727917444068085284995857247884290051015973612813413118862869126683732573683479988938023977479510629651088788892769277327889686438528867393683882817863747030286378538752287129434720383770712297300372206908598583650353140585117133276993283731416108176691411747708237592869859708559976365734353522634639722326402381095343094088255281589735539363991261087456581074903125836626669871729267958727735901890809390222960375231253636608282414452735469421043606816151823142223666256212692538609428081631641231468023195961673561770313015725436944523260324575256226560682882518538792953603163408973788679235232369006104025909998312053867448929581899644235220163511569106465155263967217549843447076980142672477797553725865247055714586331951309762559200778494738020683484574715334548369201471892023532932384565184581665828946812698300946432691589803102038943639986815426844402560899043258632564067923892455629678740602461287726704244862478190503526913080622795225298373144938070046943107129742510549445910424746458997054533024887889895890492202968104845640527151920149265181827710966835782165394237469986949085181537836199342860179262569593788237487050610089516524440702330743714217083923339471041464745331211080114652258051545640695092464251178958188631752910585592263340058548986492952242151521633080264643071149081765866623115956297728932812305475956774287681190171200849487143557021452821058943869864052626221202100656766171486029463828277515787207943053016231766155951955317816885402590237077803550847898116717372271097488083191636329880038721643524889198496100130717031646947189064488176760885699790483702495805963735302979142329305789503925175071656152499768427225532895941715268673382585082441927409190193189743507647557403071146327084383303335662674088653355441969526050957424742910184539204348378773180563651663037512186670943444222164091779058073154306999801198707429251899344871271924378932219167263355952628777995445827102934899496266276383608238155601471465979624969340082358187845969226257689988943331930633699044438730299244628418890967456349921889587849602642935773677060145351422749131542396073113716964995369421125269202877103416306977175568866618534135503142282321743711404027325772562151647562510480389521042713251373709229752530804268127830918653700890269112123777803423677672617101273951320272408192440881253895096583644284091100298867497217530915608547406555587156203417339182019553973417733407748848481044596650379712710988091009054083414172472638216099497983448898328804445457194884125533292361325846441967495147855263717330168973735147637634632600808275421886456566026724248545351503223477715721646720843732079139756245151213359373656828135914564934743514058911767424179747991353226559459561490189899880247275973588767386517178588615594941952403534816861111688167858132640813244898090436653975933974746229496461824038513356427281827161789053238082469588995072721075367707761430255984895821290553233518058280371527393823198776696901199420951114877321301491257251280296453886418005120972615278465832079682999826915835928125228537688887901582745996711541419440664819573552085192788575411494451326659673243394668056017854959735287719248121287535953444715286225742476325201019085045872460034581293721933284975373491715680501234358801696391803211581715500307522419245490476705557558166836198475732025158045987415367400745967252580525582378814039406796351904900257298144574831923370682873784775374444514120189774407544639266164865455622004995019297671996323393648952824219716812510451850152641803176442128683255254300302182160224230639940987438163560311061250876561836309021964019238313171561453844832104714510588053233824030921792010260218564242276890100866709915227249627749313365401632902469256324323956283376003597980298800692557081988250424008642222336650818568261106930857276752450839562955144663693783497958684297980492610462215481000033017448146898709446517450250506615165173852474857522527900439385746185318448151078906827983759243470233026786853089185323308221264261554010380884975971944351565694352204054315824665233423970093065790298409069801232297045987927016661314299926273459785077281284826860745246653638106505779554361575998980718179102562711982596230473424394366481745515562714527581979180069100777587171604429562968227486890177608411382977030052567072393059617879825570798242698612383055319921028694793757211573358015972950497582200218579415497115348503412170733862088736906423128240022980151864301624949488385874714351772441572643748988453304628230279318562669435506703783234763226912576462670446820232121558001006526931405515980289969334465595031659643001242321015259923496473636693805823250754955679848789023027211163056246122883640604783509995857102677621375286008259281719656214242157886315225961598091218429764611949456620481550718377367310568510299881025313294503294426060273772757769830793355110237150779552118908844470732786460905360226953046051734705192857045455651038737619756085971553142157806957181730627613695904344050459661543414559231343899867420685421878748637849448094937734193588254185631106347149000432619773735381851451778911645975992791307936074706771913296234978903660491792106488632493077641311016065983382034985812935222377877631052098475337298619230799479244972405554845575889980384945208678772178228218135772248292258241251817386839242143107149670071386552086323253727650423285108008374084210812735561093750634193274740618667083896902778346174626768247672239613841274873887990342143222445642259868856606221532161817408691904034246796650590778445604909105477837169148868322538209697847378831136176955427769331977237620680206022623197965459907516426044376194700753089516538503403915718189610057106875919401954402604910519571062191431412003514292429860680823591166773714701512692424609844872474889934171753562894796921548266001352928037835472702089380834492437873359653842432155054161009013754559960405556801280652078908032726563914214614610477861229357728769965470155806085392294553184727579086008080729390429898771006085361184645570181379651026662704425765416168426633600328688622683275970783419005836223541549877312053087253169020030066044554097534348036945892559598077644893963083236250991582826632798123556912852746000020590663783938015257151693178621738107305394593421083960079886741861315629008183268172665715994138644515993741601282778350240759500573487901393309787120119135114934079178659335062664644446174215479015610058021697025434994412068321944012159159026465405277139781937289583712376559004169572761141824139117911091647090061350731024239504263650991191118043588733422922855926938767148974675066434063191999929787160733143507685012067367099935180962498577120420570303800410097184551540210400575231425407602541878173368556191430388328034071360477211601143819459493604324343992505432924471378402194631450830852134824105990776924351443945405706600946328118732095511407999469278641809999178294244765210788846536316164375277926641539311526359149037094716220092508267777148442838630768909174874705181452671919984900944409795101557457876217118945141958188198819997792768181287946496041675381076859519568046838746908178011494437324534892571441433045045692123010416949925930474170719543938265758439010032225473345076380085038165851011626066112801653700455478535158497264788031806364980388618906790642314539708993001577978197057410297984794284030959298770823190131558569976858948090995730083863155819642802862365159864137072434270109977414544932373629350929435421239829910551829776187617446910953322972193691626979257172739523116021935556226596009918810228225862791412793414330693037702476848079354071571067669168025475758066938795234514578521952051579118162358669851789195030954039951202466869257554390211789581662213822091828551301865156052181563475794044299374314698793939234968683129005704847028156917666590682765928481683369109916050331466043942515478140973266742077618434553260816086984466954894024035538392131326792863068606905047502610029644478957982331264464146114827720047075916169180852022291155804793143146823015371090596777723889290657179633335628987264350854726389378966344372995408627066762403812745060988607934592283191356727935618282912468043741710694296254247856571784133450483568468865264684877105222831201298930137131115412994684142829616634670056822289261294208054423433533009831770875873235122952617913457453261280379390380103340897013369388839639909488462810071193147622930235420443417395106496650163097934680996691461930361200764508765709536971679792405520923756219610261410402456499560649407138512505915874843224289440908463098174648540145834901112043986326698893327116833668439936286404849300040252587286417096466166335253054969373517796249975037130296713108992825298478161615797801504470832664412883109273488589104187158041813053033649781671400608641969343841723640813328991975838877587116486811185650997933250532268668629952957280262792839505044241878615703806945972841242265309991317357310164244285812250217672289924440941881020631732667724267210207182504498977233376509869611456438788896008345551826098118357390866036150511360983799190377832522277321855622217807844983288545462147407111931905303997225380562912039366402414504392961498689857633752408669429471368815867273076110223366001860814942917059884693675852270564393268356610126441069765037223171019934167242442909230902056822642165803175204753579573570471418605527570067546183654142583250304100978492289890442695086189580028959309300366493795511954506050276379044843478837479141219406198730107140749085375554430538711073025006523878931015422272104891456169057941843180279223051059307689640400961486371913103896410055436613754031083581648186816253287102062944245405323525115829328066924069025161813857719431325171809427233524147231100856233098947182423844695395717345538007028156812794568418049413347261484224382632161047231417004542475943666329409648508683903809885079146307730543167235819855921015770059106648741458656479902845098082669283581995235750073354850341706862811530907414003177838296256030163909880673512053625280247871118221845412624156003803328644965490529554861925986621512057637653810311856308549259789251926712932505942499520546274028493112128280332880493952433627848085119295036278220349721802386599142816115119041213895451012714172064728160682304562010836538108720246685961352506007236220869560397648633336093872056651618619185439198656980753947684261635779454381386195515154287033410065286960049336861016294245236223601207818040304178541774065318722277936021476606396958814171034274868585203630675761544151338523270656828014606620278449921181248081844438206781932406781926584679104821892614499061964524104538391908366780525207996619477339926225310251807726050794403597688854965598298188975797800529572818726787984766806802582199144274366449400006858761833218108391031753361431565280133769701215595892268529657983251419925727420434164254917366409847249444389705641956241183662752582019443771677950340727500214060565326864738971839106511645499270126411475860825424891560253109591929451853441331645041104717860051858636389760507057024979621612444003679016881125322182402238271299884903157908460425447753048387408062088144873993651572786863884217024772194973054878267820510043496272332727441278835851912631324191565990791203836857898282816524358535059894503951495367313090926110546125088832886672504437238697442654309582195785418912866314936071458004019476529326154580133066402303671501039144443267175245083017701114723273793032894463710222896110072155114951649518352470917324474382376192258745776683951481117444776470371384594672316655868568820962357408472361261037851952230169950686665250990069352834316405757753064332524755540563145802198636413390296766631691091327293764553332190081563820597936828309362382436348332914344375205700480051439583110046070493159783941441692894243740485565096042988898132129174982367341965493850369004644754234320331790719157851410531856636251353812769711193646275781524363310693693810319505023175412767261473703347103890872902631461634674351555907306020807539034189412507551262145092838104035277639722696475421159898087227220068292629610142227259467287309671717434786802397722702968769290720686269187234333989196290253655101130449673965253965893638910651886558428745544329974297439838323356552135168399637245129603138475089807267115785126174570165362600449875621675237374316623103452524297356367492448381676644122022686474654116994157057425092325690462958543551771422626614071302683719396442232801939017473864205521729854506340350783007647765137295698193690391301479050278579007093685827782906827578971326171761061842892890756014507489357463004688945964116330848416344954656352184118341674260521112309527978832519392491988938588678036009089158674975246089080829444360166556001821155161532051143326315672664833391040752902616670587315033400561635702626038781547740279412026003647277913932227511465537150837070444201538284908245227820301858042072205033923517638057492170421949890471360155505520085599697963329741263883460261884396687451570702265569602208530767020085794660655202816903890490636827026722108942992614821434230335224060077798653418308922311391268119641582699825356694245565384933491264794208302880406072900494115995171586195060957060304417863922037381695298919053096879619071350549370093650869837119833648466377539710944482180730178228452941057379665502580662048319459187308520178038174771327692287982704847023505852826131315277662043097836998277049209978339534494063258933755746769616384480683440427269528072693709542440601169375586643628927401671981465140126429253022018076302196354659203852836184431328502653873240937033735321032104916411198358719338360110338767614576710538186530237578291619849761463784188943678573381338922847903566670754566296440492324186444577797197236481451568665861639991778671021393346166959379663171443791545249989747462277542407401045077409144365082132975951805476854945801829845161136699951244796162674283967404688672542185056749352321003693958478915444771991563267496376503803646769249323833772975670382096516481473624914058849023084638051357747471377345579293454088288486633790385424072209728327275477959468531083237361532478694111824139133116619337271114099237195235219651758806798182314789383789222614186773481998147507122801402062802592203129698827246440412490940213801084912725734942377228516364403910437066394976417971810251397819240354077872471815234985378586529016154328178973540056683684202560659324302859643151350033111082787012235839603449607999874558121627028990233234150294417503934545609923696745034969869401810814435377300434985739413270515522818746088434606353396680487435739117067993886473433898386179658458106600751685549013630780317427370313780703413457587195599189414203770885004381946290319486850812908267445395437267535487402285638604630532021916861002788936349592485733274478642317764440500260934424587411116452262387840403672733943265788788384845583502627783872944316434291828632719685172179143369817175701191146368323033725573810994042963737824716570294003450579121132691267167667829635186628099234996958560750586131717680332173985342822529363538925966093790224927744099061524556794931573119615709535512974918016394468904985091961644701586042070451682801797379447823298002240828389612214989784619579736726085828898565402629329232217998213833098453160295640149293061667603212330897861074181970296141789740300762324791062808027865167255685710451521482639097840886455828031528891229483827802081882161852526950350589739799263137175381630731587895327914705130233870773292294119745579675337918271520588048497923356966414695140233342831757434757539186801033109988679654882761697015369599576898992250009231399496650479340155981675760286684643203640192451539505278420591601636644441437163442309899516839281474855935867725797256915717088081597441717092762374226745410166030222358705215295441148435976523420080445569066125813478213730840790206496721408417815899011746913762015689146080164202173503987141926143094893818593012308617654126532456864693663353563888809364617983069664571640051795278331038463613409390634936801517956539798898703957705769483859708186739006301213693971365574649691819734643892896079833028477293824936267815857421821010506879770281749938239759264734876484631229610762982295735944416330110818750905125712657193587136146148541464941637973406179882187069790530618877982824679934865809136943635108841845406034837115820151602370079496009130247194983559706149327172931321108906126001902437826580582480478336210076186579053303547089514309659786045939470242124994345879159533628984453928716392638755682477396055953859273531818458183352826566012657406845677621469784696727010099958977102656689794856977839020327420021000702825519775633857206133835356780352852393157533594661840996339437708480253262388911645007047952162905405231529269265636503009628807529797389383166913416229117556549432698550502460295276189707303912617415048270694853042436399380921272733526112169021746197207332896738572638417399900410223299675066761293849106958309306943760818086778221563207340452744307986164452408120319610087137973340889004476922627027899745877663861503233259246232526640213404931502336124252513536149385400881231175869717077789481070519724579668265665565143053181946183424646234184306450805735525799306685107402268094934729218759355763311602616170828165205485988888821153489272578538297694263205644200409515964092943025396992252534937366965875723343272624123083714389589780289128668385775276686750090345307358190914760776417012905578777346376515570757694958052827074885221780300610707204758384171870107284499757513616078254786053101801351297859453925041398891860954465775914141047229545996672043446288954983018087394506088891118341274199582780935606335853806422848905630801864639050664859340536385729765352398920168708271942357344977719110137268350108288829036108589369867429648271839216611394143879907360600800255816211392983096147581192889205434883720528562197785487055595479704502057843159812325146435465044715331224539968750860051708628158812293459875168602494367300494791483435596653044314085789656283885509639579276331894141135562082009930469634901181776982716908759180587232861903736737098772800905077954962025088689308428727100118590551957636744539454922587612774367127085557338086079824108499918600445586270272168204430658740851438351700046315686336252503175442941078121170298041609983595885501881995332550956379480216627532613739142925286788632034465118363495705155853461897945056196419166147694221774237695131174385002978986087904197824844188567034502424316375670353854115926160359453315841566408272635865964930362990404107470466648031958468860269625235353143742331370773056916632500181415105384526002731415585618251856618282535126104094166286254020010363803130961505966974616954636940920473655643011993927945449294515913625572575301290517733825103946240141466586729183956867310631931983092673468280843865537361706086590430818407003565607177317057004209399284144742070500900020406015732465323372209274621466568151851711424642973847981993581938409024576386413476045228978666553783790211495756628913341288077128318680097652596385295825018540840071217452754204916442237552557331567736321681669224410715417438602232875159966250719183775979220084358130398872554995571973382411727117302615489918257263816662100670648115190926218430911451184491735919965613384177829079791362954853891219308219529202050401113866192882954851292808027207016613583206778999201451051768704700407480075088363447019008802516609028764142219518861033274396206869588125335738348897322054377235012264971037851211987540403193772068642518346019244932374605860897159070596894498449230342378139480290250858362509982244522483410157019290617123078831205470452171274281863086023360839556307027591113042220048834925122070515832881014427597910000897267700967032137745682883502691096012805004542601032559063185554684894159697010223490801228464085756579064612629834184896951888618529100967882926240173830952446050377374157058919317389456834277738936339392934311960778082684743115672679668737768958917629415717311979504182211688401772210636118931145960437843037572182898254807235730716758852922069968594866782237328955340633233016291489134930190659809691938317614118588349613733152765303102275589548232513572478982554309975298741950921117197889578053124149276653449577637748717373391747797587822749219538615959854280122682556369114217608373007768981939019401940320988930705004372629015947571894422782164948168402525889983417436012245875789035399978758020582606595655561503815399592013172626739317894360812422227332530435830407213677272121833996431537697596856428311885805328200060160192682515915888923042501951120591641710844249956399331566796692230203933057270467503498929409265238162586618456243639918611638028063987151565166907667287887911702970017527482563273814855299059333758438952803356635681383138465963112369608005267107965046821086317557342514784353326626652436299556379036818405052003222801590551922431822264160023645490983628760203791488133439229098819333238902850467162531480947684676286332110348978440484997406741334101506701573825795803440604492703888871912736237550738697037215662465552397520380277712576531463698132284325275718945834391773026617235907201551593010815535602078074372599080981803056529249965918043674145341805045843972750855647020678885763968999098402106250437254537356382067617427997772028633884355362125786943308907340642249464238526897832599039196476339694849195022972454961064532363532517995333153997320477263604440221322431967371448815326487621170929982976934467683716784521060069994786151253010057664061266515662844111557414623043545689866951146821794875809973535137587583330914504126965006228339609949028679097117679760561023280153217695800999673180567372993836150932084907649708861754859932575623696803733833911374772580129459534440309371628749320308442474898002071160174887182575710984996298181351358550987230040512579313453273147715080172871144142756966777455061813057524650819674720570849303698750491175773810572404820195126555121656676385003928579797922907376407171370879343813012416420119424832203211489213417158099116789357052995836369943896382816855711764021027601499293221094356315008408853974835496167717052086365340479720371307083363727784793218073535055963140908204081736414606545168469111039499114023613736018026327198802431758066944483389863214527730156686802728986539378037454017252029049330781656202168439739168258388325088379169238862698400559750147393252718301730780873210377765062116055298034092030910449524668363688768149305294889371093109083285537910423477305179147439400985819968307294695155721399569320750004242477346168777775143984290645064195420096589135843724599689321703192465884006202444787218647341613939814818709957587915917689932972056914774286844536686810399839941441370054613775086587056436288630690917495321488889652887359206406414979678391080083359543073776994779341821802137528761950495486228163459453726337465111397683157935255647819231059857968851304152154981197670305111480774166532223171018619533691374948422836146554929534760626601413261913728179718635476200993532096218119077402397936389844400907585870137814776199708106245541529438817246223570943694777261851370648333093891556854647197811669455409224255365406077021838498289505854774090450653288356427522998372229480047519188703152081777673810159741511497658172529605454310659758221689189848765005029152792926588111242253832958040147025925789389501643483792943024217549656775970262655694277819443918475753183090620420199680056778265117839613868689072393500087298200397607377058366394266951587092195189949161655603371321397946670541069878548138795368285287758116610351310733902340154175666863655257695990265306580805558587964615897543935603301594624989016166266425339138777218052352379073880326868987710481118871145400671964578488699219123218885286780554553206115921799773381924824016310338733032763135212218063091403568051484940695340876934945353478886602657651030902675488594882917185525333713420201426242521665210178919358998246965898418975002606102855143722845477246548470447226547784401737871199697705344815116106512179070595666197287316153537003260863633613239600105359960493219594600421281535110255263073023520440582282340631261440451546806155015988724892583926591154173322550950034594336985448879741256419034205884726111219726068983450583590991903895837135033028630803864876131712439216491921703909732147415970965855769411853550456765613055084062775973555446672481566582721876986719250285406264761919822366574236466291000555693093306096830198326579956679870230399051920276902180545338855590544396342664656880585496997343884820227305378404853277998877283476167497149663151376905454045609140523631676939225529567989435375406464225606435440847138877962871687073395160464952306836862355546686969640359246773877096023078877753197140554894851748388124198302638310010525158254435549592815293448632521731380593094596770843292494006780078087460251604411814216812489633028505755829099855722419989165901415420599091230436233495461196256617950783329749964908700948403908122144251723515211348995082001905817306038244874235783898685861442981055976096909893033748763302576782548311200082291221362444131146192776029525659158529768002281711415069662457930974373308538265472124579433341903712433584895852266626082889559210365761243393690301227856937022485718916225502214209666488669343001292474640708042559450703871612447251951646859564229418384412141224008123067566391514935695737904719810976709274933692553722943596286349023840953995547854883565456705024425450516733170683008136073811976876973793450178291267519502062555276077328545804479662850354197550496150892294627527742082818486605272854924064033050401926347714572978254334588841761663372597189391284355716559285897127047131882924222646781445121748042135992940521955879269996474485462862435143373575495263578981948844796411971512007143569522727065877066603878856345745289690642474239203816108369844561437273523154065379251521739258238676900336541409153543984044153143263599206302559161378586706300345129131242251982099345054469580853714037070158952504602488582689061289545432687082271127229220012620827112845119580933349880497334124489200773939445603482265518174763989265318077619709045325660503629383614410432996301191843775466114079337815667490576349196456163103198039822529246645858528194670893507453713762347045913703842829162642004905093696213062352242755919141524738566101186270421116779565300045408688920667316298224920171541542530634321880330162849431054640250565438957961139019196392706803083878499307711047001053349194137842926795375714899610900770343960512083407425832573265830482392439433189606113922522570629552964995399446242222935136517417848239402973264468791024361343120042280055636793840466648388443919015226285932989536383649524754153430963664611187493994404743588970987079409259365141938817789353563521029242325910333503681964264566952602341503052774985663654985029880178760934584084122421341060181941782537561235826761840960330377616883196934818610284994163483270077034980830697372425878180059455942310977732840876010608481816797331843615234170876654248607620933441973319942701380153194102964706026234861863481052459877798106823098896044554477209400540703278223402003374458594292122472248948433729200311013657440717456411915772310266455081388888111065706200228940756607161087454137573755303497280268570218225441451216844268856083689638509445651010920834262028191962585341980965514111302719520544614469976873351441470259493760467284292609811944582313816863808140112948330902363946411913004499497515720745027492785737466861520348945073283323163673101295874803667672157402296416064310081445187297723022856050932889004346716502928540357878261492594042597052965271732651530157702677034038582304182212756519482302058538801912302104194769713499542869729721906898672910096173503655301776750711104110294694637382426697946315844895203820225231268595858822147867735931244521558896160466382474559635832802630529113162988288059398714933927632557701777573372553964113585226842547723729864612536415845493999901407374717619516995014359073988262812267859774862391923446512310044514206499441231170732184502478810135623296479606088739564080856765964271623370313085924612284031411520438966412816690700460846871514714968427938966616571033882450048650485216814601092746815071638769079486443059956564255776750675226536028980214024580997516458366851332317601297236729127543521111182370655532206315077258409112355915723820615760965711168203982140115001982400784416718785382066491428394093211039337799412089337236673571196801556065125872561453177963185111053952458755633157916386249128198400303417882728835626903217468506906294320677904929319618978294155489495417514807011081403762599282975771812049697042818731457798957628629013498297194049050095218870983032458859685314268745901759254971093423577232055404288236580661338383800639444051599048698150400864731814045385915977710385871054881723594939391623626327182463496603472947528049904791943239677030307129396645802797581878152134796443517318557425297836431791960938015405967631064712868909253799468863838005772321189039603846607704788800512365704787426641107700574441226308292383357348592220344707266716716687294095944373354071935807332057976655198235630063618733425873743043493636226190123027475506818176030126923490321133970966817608210890822248305459403126727314710051658067445067870318425451898392030495145350967675719267974359393350656697508780630876747005352801858458268482673058021528778825875502568644538053556002585843495710387162729505382260691611844633759765913128446904275475012821948313589918650411576536310779684667925310708611050251323719380450765933812021773747490918296816056332878259129188756697799438640230906366440655872023291809842242190110442068320992989185033029570715679923035562260941675964340042406339119274318823233273627720798687020559082274554106060336615780972323888842732942695711187896752896201072482422861412156485282571156127921717013584639212518316155880714631625892266152071937767924332324399848730551134112346729671763136873896358044242432022802618563976578431854014016651155434544832875107847986911748539651927921608748246306305990300735153244875255894770034231618516885443499414760935371824301359511089867545847614043606143574799499188211862386747421609866326544891777928277427361652751187606481579071195528115394896170942098325141757498093609516474844509879203126084631425538149255799475839954453919080962278586946746884371860185944646583053455406500055037746158895511420690106760035498623754807599916319473743636978416201018021688798557891203002700950574380008619029516682974730796678498710726389863123281436005320130688320205649467351072628292257926130301775371391859727927692408349739252135651188257893630517663965859883559968276822547238266910950281529714998237999600937762445362081549651310271436346534359745047651151593597253190472649723987563372136152166375258537121119743871105967044985916190172283682875249076684008072464345196879695481409248893344891981620486230894386108633048328624103210556862741737717453884284748886899681986652065192113303065697949538051729864158174726372045386640592662668316913783967124191691274360243717485329774017975097629893847340897606543241165909197919354702720666182482494235971780158868790466028067547309140424104844052669424801167836892913664153058195577091071736813252402393337076732466668047998262281364195719281173211387180671691225107862964220949752264212772158058349299944118248199407425599234833674351874027258543956745080561616655939981682298510314889719899580612027425702904999079047390816922996089200803060710516454058525024367967986921356715419612419777372843398839527979092166131097903752956869178433557264507400487509298970779167027537614870130417183377457421626931511132750681996455784569803778980120990622498297374458244412913389246957895705513912805322945927475316936289072960138310762151326676305644998118888417248320352617622184143922907535442168888018162551248445794028533083320190485636438888591411832012094722388044037758685887586487695258408344487144339417231104330830567068066729551228919862170994978212360977226135706834080868346000722589921134116123878315017041440534676541550468519692064474211670859199270580847800440075997029068508091244263915482760739784876370456121172362994016199504566773700555463597240747770640688557453137829166100045176694367731253597650203030184048590502863612591174071321655707029407435059893214981432200256217400445390305150816774856244819946080943488486524192896233110906224807337825049782033261317755138814395729686565066348492442594980038492885932621393553366533930665866646398761000447086157476153558912977788863305892848162347315926460474803476814333204816377227943341263913842993768942003603826168834221969384472226341850297664382851933761540425103162701166388884229702476588773152420919738389346887469093089264619917327160130828107363900179128285372766453534453918821957694970130828634585068965329081851722529048551430887746859835097166498615488198258214533975450638470559736390324669152125298616069345083329198507332004207661600642548655607610882363200510380214815575883354741864299832518696048142364210784169233087762789217557233408644910447194956785474101233962473093839407328791943720994210110669315081633152773149551821562523000780522664114455448905973713373282875838969036902930988507491268698558077188801817185095803238624086480828697775667266918501018284434680960480078862667915127066582999248046430362221885574736052426897106659384400220877473183097798644860965884558431941072744755303651166243183675848994881380918505025674144476691688361662052842941275804235329708145827390752166930618326942311776520220689363821464790682154113025393692921789942700096678380415480737550658479054477757818763075239894740561856992123935892627153478790955504808581570162037415546941968690907111576058554353407858046269789586115558634774723553755863027662016781213579720323350254883679781079291741122030145775523317758106676335008856456419887217880565972667294999596817263869885608883607061679864394125253383612172447689405131548772730062483010595367232239273243313203413812325112495543275959342436983406171555657996529584604978694819623690565531322542277768964513811509893187933675389915372582090767886778005509378817879788341616140670437578097021932977629379830990666844387812313211237045138901958710645266389597371625542878860465133377663440235156927852502063779583501571309023222330043993824679350324843719020556048517874861013175865864587310230229848634639311760419775281734523651553307150829465119591846795286293182424002504328423170155684132249026059311801118441776074134861639825806100082477977624410889904360824420527266028955160646081857341100708097915408958453990112032168552714445795366242026202330499274629722404956417572305416922973404870813603723710109746101457381794600978432392703208112426375667033431673038226528775743455511529129609835704596088555064197953326821727599926543163415956240340148547864068686696298961326521615094783368846023927344518177833782454418109266126688138453008569990250171261673550170927973408949685880809608037790810457410651537686867232262388436567286157266494994390632900718700018056493248061403774834538177527033417190283200292634507045790789895890557458427224182273211593233957892859934598104420204059603696163476413797380984171261939961605041790226804146377106180117919318805565496782496776602993414597870553574616827387359139126817396395811972637470428707210121612220438666304506680443776006990349093231848712058232113549179671193993937931904056707623976057717965232005345759712799303380954302507366457296105387997308398979617918555642109094149802637264699701304549693698346326953802919768116911802324050446332443796721430824815229560251879694986516394850409397649147752299380583815872403542068916786208385294193247493446711346539514907844201241661953212883219066520067099633589101908897082901687244002065811483563269041376587265073416798338261182762545766210165925341834438729108456475984828019609643743680662785027122829072132689473953140014535485499883255990456060885446604644446716405254169828350533505439882536386085763572246448492438000877125635430825216155704389300583544582865651084707310658341795843025374681297535343642880802304831778757669987392045487918401434944388383951751110179136938198643092355740144847864202090719007830450085718359560219459055446943276708021531771022890453033337304654208992995099412342673696445366452295485303894267425060286486598585524764526921296465034217022576005177162122952169880986962906561508400755727791143847039986875700859653865785128711376198688230973379097411907718625672277197386451755758190942198944619278800471746377444590706673441836321571746083936393071455052076223205258153260463866949182677815722360776738195178000251775327763326795223353380110052212348528759135719210838596847471327976054416620646667597627763379434981690370370711214639395484414389336939721986325739712494549858447523152365384855621569117761356546592017587985114167886428628684730910001561094555858402301394622192617681876757755652281903172933601204339107566733464731506782672684766584375641115924916816563783599987182175372434594555439721541457691567259331687948010474150859926840389115169905493721632222354842882432944233185002005548995754065673263443316785708867858277171966531828757819000645725641116845358427177122803762066036599433317881257364237498895976103268954518363247400712193323300516951167862955776029227739305529483950260916287649633677571040535405068599469621068029774414019481998517737796133590682784399619687015447936055383220910918625460260773320620037775058446550701997200099487999218009795080005654489288239592464406617072653799867778041890753528663870719957783364180238449066715138603499397040961709661305360871316299828019551414012275897892840390163349459236789625894352095004222737434993751904839651952705961687454051305678535803641234913244644350880557014670127833785824270891970827137355941140571335818149024135177494180214015169620568822758064291264893412635939180954341389258097606847229013986587995627351867248625427947488710955546795816693752935452017000876326752299034327233091480253445066389944142033097088898042697675708597730468902046012008791655932883509860906865080680437914452772101380479616885286605508656391452949092403366057568846340972221186789887665047725973160137423899577528461256241117855054998192819663276970196196088645955099258493953534841898791210689415583661126953515051367740308679641485037759494093585399023400987957201758353753485773275695051858152694194338469130628589014647737431629958490550667295848011945400461225944614846616279706311548740251111577705114834165153756378158956167587996525254562413844558862107628422823372935056615769922923780324281148309476736531757062154900401504986754544114150871990336212608279466392769339237233023910832695046203966074178144384832830684668459395602030910218017083902188833688066779669729566636161306483186511208222555253431403395172270988754556903927584782514295642913608698134405980861759078467897165086667261817912065489394561526758736929603900363419177466881774836281203319933361264413549305368622980629582186154515970943762036675126831211361982839269281374965725421561020377268919853155058032602893090560130190331254660664412884378683202991102474176887613100600934682616855896954333564676805813578235063858278232621846165827659223460101881501941659914093239694774351243158745671102498608673166787766937440094527785842325378926393798375416992594616107393249701717924330174394691217479468852227795029160436764339430559082429182338616410769534692990099862833727476493026244518841387506047197451826994300721194649698070858895269684088311570319323226638261773090616885237811258467314668447314986333545326889520806716452723836861233640475908869892568613774032936724052442407887394519028897763375156948087620572804862756125338911314033687137579218381117058397533169204837911634270164589748602908225866250350774393906840406629242135154651527806861943888272879744597153756251576226305148481099993870115007585604223612757914754976577682589340610940316940793231141389541744012449652703620263563804875535598139172198835847879363217317008396918222267596861460733372965280125305928097365501279309371533515736190832998167046667613367276136477437349183824657900639541285115494289346376374836393200132735671434181715452063208342424579852299594653867444100109620844880950006739850561569484699754533928682275836107096025573415455042347457405552866536129356628405303813659105875797231786704680339876649137930867125100538082109700206928964627746161162240739707591413339979850889991208777132160586965389798152076235155411959739590803571733974968043050903711540236966124436349532268702604655760614237466747140814175694469606102526689109995769171524563512867203512008377799074433391943751174202464095945258690933954810430776859645318851760225942784518528495658330328895214787166470156065033533278496240358460974178246696218444555443605022222897394671061264141961542443113719495522668210215093697267877395866918890421388293979347337344535860622179136453780411893906153064530933788140241323273060546691636758170937276264009921480786483605539366449629832256033580628825970627432637489492404694055123636547556120352622017086226399241958096261337215009462296858463369664011783374870499208363213907669404364029675711329839419248477808557859229782458584313354917136141377683611229372229080524351880006053718063659802071344370355793012858461342103175476271046998353854394182577142372363507720418372819352341247867871459741783575615479319803792545415105305220379673406290660071515668924283551100225722221547664797438538388708039618728848264451190549328469484869224063884849574721703337266282299456352340334905244702460346026237686935638108855798524906117952626531073613738448628779640952993443761763855636379685262448675712608292382687005087399879753373189143423674667562109175800877274592581810315037567867556980861203277371079354569289428588717426472073430313248706278095237879259699464218361839745519154871636486829524190606286683629705211736110997533873266503662059903327229924891005812082742297069955614128401597823774800489481068380268916285949709719024611252723042259912356803267214761839363181785435324680147452764751042926802124632184399312812372693453407413089903794843441221976468968839840502290854722513795598682580639710058149709731925688034677983576693296482107360626807785640261996331254166972789615626940792543483636452230609479068947008544515449165029094111583403823410307481736742955432424016016123097293725225127333463792355286428116239924843710776213023364341338871917639366596783092516273316030056129631593256979742087799323278424957241133703285438306022829666731806726706086286414182264775893940863712994497409700826697579195868404757310226484137845682593538801259147593142810007467620176192015457291743098361658156845123588080942404344122204088755549797868639274388537048822112153038307104001141564797240071391835461756898838855004057518048238343455116029866032132872464048754309246842110534431191602232698123713404089235879420533995987731778920341785370262591378353065101277588614241786119893482442414675441332666928694172806287892590472468234540195686187911649581935774727430553927030679019724365478545557533950115507725721392010641041707270794778384014598704299181685801125783953611727558164954600979502739715549319174791821959238640425165456564651153693919039895787280494039261510860414783814186786005310364614857949496847834347362252679986336593426446989468460675319186577649748590261669678495323466180572751917802638299633689687068195549212696395953357138478855400722694658305313018271776857807402688900838465855512625050795370623389876911566130073794349783819616275997101786138350713407524033545782832658555153235228642947835927109008532809644230192283243666796322024165416751677365122380742160487534249147548590582040073046431403845852434234962084404740313568619206513191624706271657217516605010001382104981562676622725780586699387565329160057777478166690332748801014775285123081911132506247084458549419140335127040259792726679939684656682334967423691535869696615731725305576591117530984267276223473442769817604238282831993100960518131964149793921951655835860091113523733707163604023477769528041740727768383011594407884435716923731791704053946745138481119283056902003001288587331941357733718948890934119153032360178909200325564785404106926846345232806915694810528981214272221508241501364319668076510802568452419657020561591622451358817095318948322731073816441021922371464514508255007254413233723818503556117730672085867224667201976740432767315099837931148417338644562599068522867517449732280709516988698435158336908182854963299448371780987541104932308840770122738368956977284234077389242157514295374226896304705796739263702047403887346195415565671240105432023376167451392137449081966278195108570385322932270557773691015920989243231076347138819982597854963244629880538025593041584383891535005221633364351899738735853616161584374953201260314309669444448601614516992969810178803324622187639536633858505808644257194794171090983742955485610573701597468864262646596424304375117389515478540074303389533663603256714013917418179105017747045829109411030817102297339225789350845290185946119828669587159256719238583076366488995396085864322125526611255059910512671366945092326518645841085849334269512171146413840780122847692600716434067963643616766407411045228284798014094601917379833217278938996450649769492681887673212298881859928566739243179817537858693400209073320022998795133629536987734373292681336503965402391531044930506273274104276770622622855445006842524997452329088322613882850795433056740444278669792674443729099575426424871504043201048885820412044520674042140043404872828649738079547075435259749285554972997762388724207096605466176954730212736334435261896737990055177343244616077431670353398099486280861759586782267071248082316022111189790185398050712138800502920583609148744157417167084247280449140718833417942601657434164961501273473429941386781215420133824570839568583281085482734074036025449937120574857247922235696092224853588181466494141903668590086430123471921188884579952670364467879030590835256189482512134631161594848962086346964162011978221895152120494618279654275073494690486003928831099866877202909725314132017413673088271417200478941643097690211528743870635412790942686860115926273523232724783085862042873995087933048782027161604795127820852815461745322988170227994702727889911494770759358562556974031589195939778414418377131974054762588721125996256411431988449109402551880323350318102473893680232021703008203391984282144796346953893514383015172397984182210538390687668686134348358755442924312493793943824862393549219904874242707119606369447170740817006365785025897334148227089286397168456529585450001330833936696704443568968387879812805372506042846271498391583256958632357883689538851257941611261517587445309296082963540433687583215970839630808714807289609324186533976854523694418988416695399200808458252872541269750846133647926560726702827288286245162563849086306170162636829095359727839056682948500092811231553171698982525071856546078831149446303872994765212063760556208239198860958086397086944988436666976502032151375429977139085979551039614609502745983426471360610907177842151576364444033329169560278578845069529434810199916755818134509212887747090621654551387950187781780873928481476876409170958595721557309166441314651050746658696859957464676674268453780713787277484090342505107831294752506846429001056541026683587933602307591528714463538186532461960192341501747692229014460007205996100405740709858268146998718909128850381278423569717175751974286120988932890169272706614679478331690683604808030843296229954261318278495641839350992682225574880761614163658655407254542741916727232079960699307170555911769398524413662610059667885132536272242964082622501246280072821510777083539260964765931996907385015389863916547006851860469757709782762698471676661704000396429763782224869550401568433863649246487588229019689923328716423765563704917459155959032276366593513140620767286961637187443848139109971840661925217523800520678474080244768088171509688354082342541591824089458969714498382659160417812172859625557802427701773475641098866755447144715560565036987763404262127544834202210009031044089147151606937597789405775147258563787207690107825106591767720745089253806837109285038275936962441873062369863290243119430868277088948082660432628055867702294180292332042361432690171353837445349330990600279704205713079617607554665566441997987574561736030524193176082762355446986813455568997002970095931308040114650085192339080270413239337772089377366960220276287530420532881445614782048729760906441135413506180619279383840299381867064001259865027342069739700590045464393856160301564907056302210688680565692149295989389349077851710416927597298754467382339889633243768336789694154472281647900792232635400654515150747327951158278627644352865825699866525716476969463122445662091500951081884907698199820202086607683003881180105779807148225842817134060379981205299776943060531659671768585274275534949181361056761437132770005854143107901526109649653982024335142505072389342099930479020994449451186814229459596314321060805966717920808988087485789232710326928763955820191056697770330683576948077672555472767251118266622361419503472710707723397095746933617962195142032252627751597684634734297164244032834776635765746919988595570028396978776610604455132689100096769369552893573552176340901629930056624047667917889736268750056557542174460797151764414377587494663768897998198003674258484855983621744853164528018503469013148066216576664514057470978438469384260171617982252820949115620565971915090362283632709704367622959686457921362229426887037704678255679204650748580853854797628860556687210706491801971218966189751035856193534986939079961148379541387461703156022589597025884056821748394173716280758791593444880209291540880155134537521769682692478224710285679810395975668230329125548893373070552571622993028995178079351983714866459424308872547389287502257255245019046269760381860268513706743775531248752565392457544193049686585291616735113892981220878121762096259522466987952693615980193202643785375591716126732348272597498844714863677046313184523999854730863116071619732720237978423753554456509997520228507547169395013953502811701586393492795698001164203357013620193058220088015593900379516381533725922319021662277652592951528136228838656742045047840010988677336085310859791814973743570811120614017432185601654901253565402443754568122618173297025796145811151467278838208135657514138340621766241828052612605863946834757477042906299766368100159916469343951560770654808951770481008403950126852975826240228004438723445514595135405592045017347158209154849793271519205158875414111870997088314972087361502330774835635838184562107749547666098713705910954854402541424072545591571970276371621999723970247063642064163121766849635843290252545511455855359517635309840401459024450973354015227229828860043948919887703472410609011372351467577296111354008568177874493188990893758269606242920770397800099302840068560074228882977922015990304849644033306367651743562745380587082971408908789677383383492427561011824652319719854466069881809484483694672290358300438864275550421458155526699884603241449460616621775519058598935166324882105918839574285184403899770018804082209411518909656758654986006239199133892368996754444821511272474655642207936032363093707051406851232018297070262532294448186269068631010537418633765221723732821779830614610552467132886858310929315435392052626483597287960213476481587624328761412481009490205865328145512985833388183719915762283810066281417163362597561156929367926618140676039965939850454820081387670865630421186776514768058103674725811151096912288494444628425108601301680575039954754970498046021482185308184242425236095557938271246468937138265304674273384056077528827508783118352472842371810153267002533465633163225393525468387356793850063142988282334506519317408303471245202662772001294203330664084536219677686249152537295648799493867272059546451585974038099014020534642966433394047574211419743397505971099439947050439169814154174346593414383406655815628561823179379820504891098941478566849385360426998084603726237720145711302947405478759621887603489456620006813199800072473757596806425089463494999696595024452424159622733815582545703346161583413578714028645360514527589477964335603304058854229418299344355959674019561879582232068411944709371327573426680390587075736016642083985845093808314769727422424758543600291970365132181796513426491960264807243744630757084280809298635935519002014489617789730366435217241572857338966247600885182974745814336097728754843760887746254198377833439363624483952280032061684375368877881842591209583649614662261287724033741811201693095382020797535316981010928106378015694706606039093969807251065593721394692335809317338797090900109642618830183583910815695224609941209113888864784573259430721934503533935188054634502607343311002724579997715906968425116365368655446644312191504014513147249733064214642701765096260025161671171366527397615094525570681841342067654464101111876323744650053846854102905771247858207655501839957978824060286152500057937005155694321181461276990203894809581257501335158756895219676710447761427684471094026769301022470279968078654911436587840436881337572432388272032539963144728299632395342888089975206425869873272462965843681195443293620856434223255430024673529309335781820148664239480193793210793689377873481097753220943849281148888786254414009043104024599315936342902723137144810752308285878762924576890731910944431380115597413823430807915273181776485349769541542178065387352796251050955793072697656003947960897777126477929020045506124523692412692093201056398203835010960491648301885150019764839476529721585513295383714411117365459673329965674296009711069370895500090750571376624579013851487147940940876851774493572393673987801946154080263401140460406253210222488995350089828970146331183160382894597067852568850597668420827598389780092465101628800861587634277438595125182863392027007450888672063610988132929881602300881496067336613011410247011846727125925527741443195939678353635967914176379152642149661000855340863105391025297256204553223763982172102038760609924041221986513919095201596561534868818167235052044882167832124132281994516936012796317919843313883186246547285157476735929205383174575294435919533194465585481500388087802640326990048503887518814452091347758136316307082199483023429337277124497898152619165040113243237560670796366743175705199660852878573815018842229012884287287367582515441902729995647547450933916886873342145705452179268953623858861601676877528507260259056285238371235767496997236184421187610297904495752485246746285854089670098775230770528100247525303985948319329010059513218140951994854057459305472941193014282783588244389932205240826649960823990459977004025307195385969905109140307925885269429659842957694541853954922717520836500963914661155213687677703331636025108560908637272438836852804541443403340087904586026462501441918497392151671464739033051526312478530476658595287539009774360930336205005014199152197126536445634600665693631101947493646956278367671874867963259603219086363888639646951487715427164168596683877725350120308433189077393634535480482301668285077254085988473356105550506187953141687574011136312162093564691943800894559880558207940321865641237837510134272586086778663966840030137815294206148305595247606793220294288075521977692417446224207307226565188306606597571317416202871993488315385903182008446757382557167991853775359055243652650664915556331253381048248761822180114207690625297480077266636312900245783968361353346571866312277283095255967826617512229865819247171443432607358263803817046293550130819800257754146472705745367363810008628416386505358085324977142928284710777850594588719389924607860348632911198131819999588026351252816674233599388032993063992140529284433582751166837245519330443056238352532057745087790687460513986797930414159502786219136319003755596700238510654878208840313836362776605277814268526272813562606699875167531705015063830671018617444068567357752294065633208201187312676981655400282970648168942429037730220262501873918372347243916187471795007600139760436854454314701737385184198566733882393423401274051536389142067876222363028915935681452102813896061536822015731755883270080226267898491314643335454646808668196950530597272344774411223796940103178610885146171720061339714697902318536616278374152427453545494327630004359922926414458717886375974456219646930442170937849594001179236419436087574845558122815565177606584047638307511547393238339656286003210840116872362370314078494263533262891781692933536801236007536216213236310236602911538741559043886384768801932275433238594667712597494114932323741310488754122705733572139198653426456963444054313846881530209627715382201233836254388904775129438260716735604442801660875568851059974078600897526567489365192118705255497910700682743158366981083127146404807195867700654958710709069693335331308656437826798560900019103856806405812346107156630606667435424998050413307238669731931160527030866567641607535037658755847699064106232737492900089766316186578179065444155345239657949441759323125217838025205360187704830818335144176889322443514483570404452947584464136232581700585326064531072394383367016817248147550471356239846117138210254158935013800033835043234270808373534660421676354675387391608881872524079997751511414154202628903263138568244133705894578758461286232918344905177878083070014490521533891810909609317933091652122905605165422756893485827934421388065830848371275116487295866629028464870727707539443626431607657995688947458528864380114105286395893820114885742374497385186026868881984686476712798584462828197163014615319596027503843160048130318530381807106029841335431977807671199357019868831734071339306926334750613717175618138487281328402299834336735130588245799564083565709081267754750136400137647562246791438657296798718163701544105425809272355584303260430865150643888077883542864197038491556046991862537284019867473348770040842978629960132912492238931694641745481993607427700652337131875906713637616576302508647328483745914718807255260031671117152262989732563140895159618596971170375808282038352722212737012942654930012042738081969295187150595789351093499907440910012618770221983149469392508302066242415943196172150915313787518031669315988671166222662634599786047130064195491162782434027934074032638626795111924243010800651333361640682151070081324831156183838207102786244559292224189206213201215581393194467077824684137776150489760907797478843436556735768371039269208402581713163781361514717671979533306620000693745330490875114230039127783889159559618062227378147050167165970303147065295401521335805147035812142712872304001337982340189794954161441219938695841537889749240644769817657383002693295355135583570245517317843725314455192546159297550178648123477575171248400163680112871811769879299044303991404985866829729841283312114836636195679339845910900974525431723491948358987744812943738746352072862389167983920235786621778737197489926583536012925842192975366743410531168498062303525009822629247584832276077176327778842991266888887236594092786127134692192535222562919433768566938086565058238324222474068945490113056942058590447639600641447674613089925024631949615550662616659030115329496922420230543385594170114921017364890208323790336420919465878398406655055983293607648692023264355007351998324758359259179887201335763193058246374223071382080621851269981592395289653072536746979041683567381268059179146097462296736845611482547881547038884348919293466723686438395994642489735419093344732185256643946751158783377595545705740741378159422478480817264521466859053918373682288251328025715404568775820482650006726132251078221714328546947632332975086579181489703786545769741973707635926743744347902146320438352948043649268858418023423015039247738502213858497346240972547954742386381146060029596955140699743754285926420700867797806542368091948006091850170661178324154860520857817238749048023615260397998629541544640443678106452747967099218574540012886632037562606417786212530274176075301043294657893605697128360486353597774569739994485799699043426836272505399592403850621051156839429540723055677158870399940088938771404137340456302701166091386487438628865048296080155078171410503032471419218534436709707004407425431834224531671513730325060588963401727726755899717445710618436878157237406960794293784908218081241175751132023441854165341622791218092029161135560082973008992084426653668842768082747345239515616799976608806933036492805948599584924192990060065135211671595090673165414197394903244531761935455916567096227390019761723430145136205745755509596309747049087010216350748451667327755225456423062523727540863302879483528818117103544563655916956493517392295247219327259263516149682558655198563580572271910377549166918024150929845203650344383838852593179116880489412969567014987335772256992956606793672793803262478278201961216533131495206816518949428269961279618795049476572562008217321341907933152075709692748855493577938879648139501573935999012024555713785305129317962812203770560401524056740783719483405564201415266946246820007095388344839128383757776051025896435171457365952269719670421444737438427102520482718379771405011439994470144705929709411401225629735728403296986844802715447375752354777843641066671845364407793844870950197591536200409985610424652425754838079735972492960648031936304839232567312390326244703752374265435875055695976121513173394091461552996105011750901133900043224002816731112547884301685992073570986831546661317353646291657261207206570419230455483255606120567846844590729543579170437254913579666260672598143880323602865228539236761431564749194227055766734988228316727562884617782173767969817084688531870597874879773086625623483984619688609582371807169491050324922517224634438112613094660267009573020573414545651720551078027021866731229692750669571501362506464971221003563548648387357917165326631805759920209224017369959539374281980881374208005761406763562333362956472873482057906213519510777570546130912979355133724971463303524323776955597509019188716217264563394468792508576455690429829238247825759563747180354239295489879373479767874661854721441840924820302584698697980388000350563013158123686935900584687764486632810009363175610519530221529598540843007635997978987392560867982875035665037864420450824079302788451725261049303840036986953634958621594915429193742168486643556502016074161800525330333310495024816077188934512523684478981188761049300056022503104379839195043504636392271716458262266163203074209347484174289541822243778040758878810168990241395167042952947950232428619702031387804085210736744848745470514374945242217873917595543226360650580797431320998180998703527343097985974808494007408940978054770337691410547342900371142654989361290051808111647175419580751058973845570997589211453604638799666673854757595886909381464362680587614255193343348847985984304612674113887204307742330721237097303488684847389232821883618134607086444638158466279079444054928114448711485383286973793098375617113839698192421885567998738270806437906198148474976401396015325930359260265749338644537035317021308200228011531650754595765236156003797405958210038421854356786348104686549555056859549569674627386542640244883270139704165701234703774015589793135973316291655738490161622018333979152820040806130692743304741178830530512180835995076889546747768769052204122241035945306042070785221497102106458661093225950618512954212661236795622040671379629416071024150410933413380899313074169043510553223576446729856343397768826023941562992317449471341000664758640570525054138358090262181071896376855080097864426524384507102852964416082394220788347063029329111320673284735477442761705347584591012106439452183469737504122781857669495401976813894406860624208348028239117459153869982661151231204908543543186077477680299041385659767123214851048819971402152005615463754344004685622907709831100852297009205066532420533333231891169833008189857495932099666629496289798421440332016774874319851921218662791755884910196930427943545253512640355902434368939095640442244783504540465294927418850033603437849727104435353520593828063940821764797954548739662669830284462924550018362703703515508178252739193052344586811375797965485132435241211275847197026058284553300264070959511848781209374326370056140493249745404279189785765127454742303826880574673710217615214607897014849822069714932536743840758777291230752065483315911171703499949606341828905919928860638226063137450514172185502339052762462350330398988825643049834416532177894156695070818183049123329828701888817475732223748326218573439117914087782629063526635527582708899064355774506848877253050488878462193741479457886794014072126925541688211944634793477673492146830137933864560546837470559201989671342711656134319582221534036440784479698268799739923258939214351377820014145539278843829031251471468695956779945795814831681952226057195546084467132253221360217204144430749319987511141542237329473164514133807221100305209048668025048932056074607720359580476370709577609211411139720300507304908664232862348671624925178963388145157725297318511776885306847843043167713960179571345489193884013107991735022302778022437793610161427882524422890867530574803243357969736731492498466310135911617897616722874555082293165759771714172271210414200264642016263101805726451185174865608646819009758117405376950361001821737612116837687003746855724608381784181638040825646444030173428794359729007343258088942207315884395684514292176540140878146948571741486802787197858081076369523416794663403428150622936786975209256819339434644444598065993063938693416479357575526663124588994490538814111733075429127575298575714622859938021439021144158935986036438423864588304183983258830625923849305463697274850019942123008017948386250358495596350689047566920713700143089281879615638972861204970224961470202174016963138800342479553506587456141356619904539223904241914480091961431928925209474063343770956454651299340891964312690629891207801218492056032852375184013679329107723845198617347113976214768356051778294152006882232939750025831902757780986471921293805155285583841345290417452977388997865128027630148869747360332957253391504135894762353703603753363042666857749533472588947168522394844688705533358144338769622726626451690631102712355667086536411809152519836947827015193918263309500152916507262042957234475396526160323326476502644478190479199962445003725052233281442622598755400449536207328689921950342256512925602939352816243307768700690350242057929611564087837995568599560700089975207881061829552198675942349686961807730403112676719704609574635135039940569447261167882446295772712656436285291481044008088840063258694489944696414083941404071115817700857440729656221711749044067019500092317411268903542664926734751890733727023028674308629361375289146721713810757121292326299343335198051392278804642804023972876031441478769806247343714231676237747748307613071955868416640269172486813602023623403743442751741504714421898499367831281482762399995463647909767546992767172998108985749029123485407866414002259442626805928355276203466507830121655879227149560853277092485823815656111275849954166965016753903340145575501504466022803803258814334832737785937830008887172806514783552051719195367475222507869767346976699233943913873219550486660369171738148152973576476929870021283843839866767121413700065060136699405099396859629920836586236782472947797577171713663670906333489211912110852240783805430884242385492657120942020970394681929184110037053492666377737641652150227213818148360328464656429245738729642715699656661832846228328500942007474080624672671804591531446547873361619810036407449349817823864029918317321886295260350633340648694109715775862934851009004168981305866625512258890608470537247838488763650092630729965614235315021135222925877989022439181644547922368719290903849970824091413886093495306215262764804963021143525079251540541766150586893710246300345661202326551261136618542119163488281859641235149791143026025614777630636379468473256374656231327239260503318722197185784567399150188782928380702046161843006429797529251018213793037639390307948759375923466929417788903594212305287174022139676747866873482756807917084894654575522953045857851765779298074574178898676614846712097637750849666641396432978077609257171133336145665903298757749276570254426711115909242619910240891744532561584981261793407152715055316500642736320895878368167828375750149153864268941733022671996279634752205372564960441352450832215903509346942860840300149842824044798809468494443079982300785399325511585617648160381047493619216727346530601358883627880976376119407898846271755071911456710738483909489568409722438134637936780054130483092568983006333159687553487229756495704473136052926447599648172483468469900297131449906609624429560863983686296001017722139847880137109758724409675286118145615646239413487158717033215111639098687831987532279467505839777182904375845779543767538170157361331629718822874876633096329271362264143247977705587054998678774812960528208500749557424559834623659153237575888660357937749180694613767474557359162021547962990279811809108793749164937228900654553395160207065829062496151842898209569243339815953978573881250730741139949891321732945443902752548807776485155647510673535646770390023357634836272751834197687751978696643744658555727956905017674334751221239785903932778016346572875434014337551870972445811563306471960775006553283004418384665522256292786768883008649291937316601855893504460491576272009112919851214700400750033375657134924302915492377974403727737902307011780493793881653603171572177364563620425456510373142296615537233840625005568245925713839964186148397877370003791525621252635689931330680080407742049404610705262254615390455585157431253514314954255673446351378913104037060377522548762939381544853463868387399907351358886024829008888175168470556680631874992345316848148025386628410223732146210042712098519480015030205644883963600148347252025154108942811351671462716214841553904166064149136189761514627319199372491093779811072852007096700675385563550283602080514085675298114988562136089685343713503580537524450524062507564781646713827405045777033037461429247555266227950387986624181193480083405864942231220609924504024565314814507414162574895415482606925807615365119275343757422959838820856434999467303273566753963794102142069018724105912714363024655862452468082868552976599969231079485751254657465631698323825939473726476698468073114885058238966284703103011767765965409412107671142922314912636667273933671171877649161759159583275105867650471846173963136169768009770357558343150838583849284607550402860783398156200633060440898207794096061846739232531457082928108707323519739224893326630811520395435746395919630439063797563547750271033082282011219002449684870004952299102926521268263376453807291351011610707235042387058334351471682111238893662404242718941808397570048070753728110302558414567131833154417946167486024084126013868883126467680895596978782545375817421863471101905210443139513688513743269945335593402842315243896701418256264812327282934053149011655341770114913327650165158857260891768857757126544292112896050346192336654481753777955754382708541781188903754048107518890901166347142984456517023237524325393010883533076697189330824144522668631606603760053114715233336325802226696359977517953596024520205811814178111366139283024334585562062679069670494251390037152360582444040146605384050201649624770425470989653078591914345641640932228185248350516619164127144528421105404023447530827094970551439090451057531255115476854658328376631007300083071092431429427187847539530593070443868789350294241317955430079074156425651980143592038618036005491630334884874391905417391449560469722899424764839130942486908186320737968642537619302709647201469733130938251082707903369900826941988971746244123505872098196616430911439086848648327545512928098729583293799864941650455585090273962416491653598657881196537961040265084509189496925710786268179475656588962925499070701989473070976312562257138461166594885242530261633811282898606631115561547010095897288898601966754773216101893134316965710201096302680262571336367463812427156591434174994879554268135863978084973041555294007700643403693261248951443503500768176564818863663936201477435216311448425076030990016462658467557447150659499212938905848199367224999920434926389150304362871093770905663233122073713270883985023395769590872507513831430057852787820234404089053828167150111439745344075397486699983233403347798105545313392232422154725180664998188312561984632897674351765387115344548197868510621492666822599210429536738851284065389816706108939619298467991491245201256603756382097673498163965908990525060955843807935022637926201821442990707436772630379724649604088681610031329250863045196627541634621941077828330641108081456527871114865311527123675428376796988379488715612475437422647808408561316248013980863772150241513207655791502156733423116184358650794723444040741791870035407003070835042426131241511085496490611800843567310515444450528049637481640706133708752188286522568430259608927279744325256391123454924731464901229775953382668301337162337689518748789805598416762364282574791355044945482979652631298901142179763143267015437511533481201090962112472791684642928339082567613106967737729987376349035022320923204180631242054381364511981307570679601871199600529710309633660255578198850099975847925407102120095564921227478937537569421305831876511584682259638279893634166675450481887701578099279830105214258429849112873418771372899634266167159256807771459417109900889889028510013475027736741601811020940486466793229977633794790278916016176949775022851077849550952320791026087642924310391289447345837178301830420007316519622774983945613381555717729160787648627483621753324190555201094878769880846785849375873076582509579208679524149007277721250181990754790774829869278229949576170850625207754737497972485215870684925961079790615199114688911678159319127724921819797722214707565785855496115055003644152968354894939807598790378570935761734775390648752471820121647661129566160575425851508581375084360636465787873794074319135157753884462834305745830018285694466022647497037466151936516683037289522577194471434141289241205548200594092592908317095382729210322370970709153534423076093928697729326126718004101912130050139104145608188216313008746460978760154431934857732971027056366597594396990103765007601329776305694415041067865752992232476915990551102774075593615907566179025781112067779916828400250584502717328280570965494391304859588028835842553384298729487607621047751246486259672051328211445608412414316289273979384083802318231374289481046389852839430124890072190751975712608741216092207705120583448973901697551879582218537110283758450681724219215593497534788504835984952590512940126377884742917664122515532762886830108350205736773670195858445503606002964547968153406870972243372848443704138677115986090833288786830555173178584275740043274586347623964014918937278266031331124439103072089047047806320123292077206079307059149744036074160910542293845960029602125440430788410936780364938504695957871583105496120182450213932441507106991693986731366169689549329902704601112206494153616509938891720027256165886635925601085246171838705753637739831770579150756478912959464527776809144316958534606167256544202362200168677282975733388201578517787076733045870080305062592815370508336125652218631497323130993860249677678575038881376863234063368125368389527904330611580527054640787330296784647248879972689059352475991301328002328766322744005382741237949161956390311318564523442011682261329453501565318754077306786971118685897651118942950698402113106027051699741807402578952383511646569269655506579862837855461580416282121603914563479130081318297110576455151544532825981871725562675300172373193266021368030422098017104111857877060374623837836391270742608390424979978387800101976533067650527382302007232458019449755709927098179685995105953627336384011838452207548365403677998953832803330320902543878760560939674920475511082108572521305513694309282671973015483132621178913065353796145171100923745738166541094019782764188023091558930704361813523491449938138077100324900927561613901210668385999495077155032859592775511476862307689507755792347831333521944895891308503915406390646601659569890087185179498262433861476356916385397424909286752990165257656675143683158366103558304813845068272160975889306430329549351864248982318401196489846489489952439823701889062522843395009530126695183594355666984152283365436221761867760708647174189433065970851091675265769302001861566554162675471055148674851433054303306768488314628711184995964926058307725972610631842978903538296242102767143819077500984879757191843235822698721593315875248361155845319965532473355883476874513343225944142098475013881740137419408902263689646185213216231999027851914121054324739103849358984707366455215976432741920716283218624010083212953047686196648821764037336693734777363614875672661358025241381194298782012766160623108962822932174754363144551953989254149137463838070156194078462360033925670959648322775142958127855934692417107582536718576216846366958598290929204682090157075403610176014139394854346443399680293971215331589861701696248473634606797378480066330920900778746404755531587108000002593579340971654591027812293213186799089028372896525044201715193994895359806562552003668164324679391710148555944406294846131027000349021964746539067407192050595778369766404842171165328663606518449194672046265993716439402104237405279197342937007488944153872817027272871007038023707064087253797806525638877501874118094402164874013887288641594278026529311617201649275958908146653037421945648827271600217388014396276266997582411249307391123529228507736908792744317636918046499610149987328547572849371641001376278313852970622205210241383596497145407685851615528890122035679520076113546196914101169706451135915251669602993981410202024016777714706385966463507044710144588878585006299911676558869344380681880244209142092343342919616141232998991598144600456861543800029343457398259257641273479796179632390782789563546562318061501652659391770352717199816993191479383927413470412071049147241158564817585383177162606088765558257467999826155633459332911862425920435909354695399714494131007429557626532493054407666485981904731142432102210837914160529099999333932100114143953177086087485236539426375138368467078698272663956658928265806142798694799150896103889980991150860611455642188277155413966170251497070030081584332822472521360921817415944227850223534142614411510901176364613164383412513525317335551629937140545597279234261019619071010966798318198694984503110920280222887820375373516481938591903417606805484736185294757007823122760779109834355832961498802391719373002708841672176792864548959260641578871093437809112201647971762093740123496645214510887073523704911203013466636862707194236781271936068790731693353005463630166538739863815658470182935586293787015179813104754054830283092712580282369110781706440764669576888966802876537899768440464829996023550321666181554492786439519857088123449793084372438823883556547487350177260862328264134450775851687595874216106738224666515948284749362210558129010590515098170885096507555831020457067687733061399581556846573576379010668327666050199232119445800776639283178359901948785804268387991496754754415298577287954943681478954259852501288788062518558978483998834326140284833722376548789610911514429866983118839917644850475259905606245068676759264419046404897626810264902987406366924714941198420571211331291141283301879864556893829581014469693317194942744783802269078591432767122797581115434448411771400772580202247838223623238607620776826796969257178708979395659447755300694995704713521774150135528860998729469145119114079146356021312355184089897098569820170358666039287094445452010364235221715454564618248810969419101217098168707478982622765974594043184167152144737776348776947759485701005931526655393882937387021778075326074006184952716126902472967392485953514032814824273521496912127558236240972106171387441275113086578186386664921708658359606267340312847200430210805572228864898059145346049852984541192614985368212928937270507671439702163780475847893654402494221503478454913342853683129882765552222763621561089496994199261288564959351874532622908586406187628379696265803623457515251407290371820197303167680811566246893066030787622924165664919574297285772400915216776703957680779200711565407575908334628660822500173574273881844193332251770766961563201154589640268695575599508096426644928478077871563529603950719191277968975693572319643388767813883267907535018153899630979590902774767116593223922205168393733216018776286518735904532346712336349918243696106984424655268313635281001656252616300064760013133065005765027838729883952596036740613535670758443156037200153048489499107956626940743018322245996436709774672253970050656080030363187612390824241975539194274487378868565761758634500872864563467586685805100972469977254515592687816242322967034450920417804670626917033586899600609804318209842628567092287382355696395497224116004780155836846901304182681031765647343199340461328043695357065501107829514514473788999957868851866619762358589366852226882735848106695308611543504245184689717799447320788939732978089610879012662133397412526368675299807897593589179797726321224893121699108608629797117952468148717946251259813859139849803180867339232270222803872107468920418180122561946574942360861299600626528366664477669921785042249546021706723594046439039947514984612108351890135266036286751636697301812952963536761082094128458136401453743805010542814204263640731478764242308734295579599278986364899942121320905687511505548666624187430603576119178666326680549178502425049796759107006444583172936130779301349528782468367976518472618602620744692141623043063528801699889482353714003999255953210493624925102691333258506819996590002011829848718467363149027057695863111419504728104519516112079462163753526715448608032619723733665207095612241939819977653130327269863578381172820763895024466545055833096440132008908424131277711628688675342857792848566071716175971897412231806553227060264212766113404061806350366624806515700029722292597567096721135380765307815896610830158576033656732678750088396914413560894766824975787227880536549025318553489559028050300250152974741844096481071180079459850638783804445951200817640676865630757714960817848658026139903623300711097323474182244563120014827045767747089797027353578109376861970364600102378661622520865866587642869078874837736402952606736579156936643016159651590685079351471908056352295403161114792833408267116512848265980983275421580229855649533959743100640461472506394973155174061332951932608555985782036572607846007084416792231377675574179494971377897579928658340125641617279232553747021984734217505077986189495925236697876250865969892665094949146746850900773182993068896164407529909612187495158393737198572021666701051560245636095120318467676207021234357149053114289456831666295978407115219641061037692675298333063947407003653815757344422581903049762660992465842030103880679929610188375133386927815379465563540867258592440016288195807197877021326426902721767894807302815196650909006763656232449130406485777435413472431424578131840262172325101218479249228691500903245468179205230734729653940085602897191974277992752957488415601645228257487611404201773851506770030474746708970087389457638412970338822320342770531843570520532643243492509468209005270520906309531821113192405300334498627297138934346782102917638688439628262607882134160452904914837739958914327146260856834498731444341875543478961204099609775394247589721693622099370374277333337400959309289669697880362844076453524685104999704390570184235364782887787226183631115154471141617943877094390781222697145092512863752057068970428826022333645758397843646626066594297247179519168738277211235293109988729503598461937498766293438960132535807696973123709200482168540285628968073002556402048685703367635262171913807880453733794993143677968247393916644934936581772335781703460375626181208068061483725612258952484681827854077622933516623669601868884833567183459865483284927477100080494619773102773993960620576509478849905460021397528676645508813721001872241511650251564964335025341997506741091912979974297051606215438421363689396793919862518895660541581268850713683607375804010292790939541870517797110263870123568581972662403372885478740569202961731031210436552053065638637112874673274419786889510255521084010722415644747408178837960747783997656326069251781484142717534206457060666664891345411995999515039654239049044348579046834624677588375820727917141166308948866610359608141144552373478333791332085716367684940610662492503064304329511032537939082078158847476729802065531975273125650934497220319232796673498857542696145646704464279943076486501647043146841257774514067501151684259225966846808869860876326884098462858143169518127113041875965066332260537167146726278236058636720469307298529823316520302995190918115935432151932756171797143790551323983008328044334198222638803651771891227383010961825461585395833426940574825510662533646093636006264968336180362522985881642425651225902828773105726507228989020553614088631559762419429904413849607618932407090798188679831601834599743691458616637252215883605733677114793295535496745845107708359022818401642676729372012493858435138767984380559688537420324086925123488793556759702981062370464919687303958894289797698248872248937615691676434040681290822607423799046886903812865848106946127515287567648610122433991731877868316475048767998485727760764917495588076839078407958318085758680515673413090717199926935439198549196526479207500726412437390452187353390672832035372314293004234661812804537172826835931277996648882982212363867643281713149888943494876101844796082367176305299415268547734685944931203332387334250656932131741646712477319627124051421688741081140325852703871526187181678027700749456477266108648611329892004911371136891746112598281762915397230089392190284227472072517830648537445492091987516235687376658620240514170125521773913513256974581468106040924675405268666836437463396946146716750932244243995447069977794979754316250488464369323803102216921978247023142953102960710881843096120382155215893158552299451244948916585011285814394796331212961245048175954449710875260823499325404544086292386487072044277534247745953955666669757894417336386589767835819544701376282513731157550137049696277616727026133074755760370201388874949565424648356839746686915923689259247437786104876445639909305744785820232355215011417276607248909729028685618464324018552833913688168061262019069320104686201755397331859152134009544607731056903130320330252448308273799015650940729836468941993331693065814692181941818140469656821240686130963064562154566801286980188518054965273365907890514052634927499250263760147487281714266461645507506334909426633746669471067987959337183212737368303059631630249225335286209351111289755810402335130609198060309199532101061715687659680793901627916680362703222134803260256134544128003617905174195049237138447870399060671126778798406333350562069045230878699875809992691981446883889091381914162678248709702814926621455855555722906738982909888891432222761960155616148643802487559082270909291545703759040983326890529886343100578997093217388093947165889601287638909809334368671189451639932035068219960156661895662288631935115400174661537270806362295957379541143694229957104229106163594812252849682847930885048136806575313508326366294071270401112540249923863312887496857682011736376293931606741979071596390241090971558849358734317396268966044164403184896339488973720846167123769767866494305145095724978587204177652049694115889896963073223892974225196319682048989998397673758396838786203215317903433680053267281040997319187514423894049369447087972179615757938575600148309635843039862367051205126514905391199043327908586816553979261150043040191422978431680647471608892503016394937806260311401416539299456791921815076645237572457352785585325498605276258955361183874747168909974422404953208486078538125919868688134573884319797396551030170602039961159941729595797271962356004546829603170915506464725840330019335013314722298269999136013383136960559115612071885504544855714323238783762060318360998094432835789163649407221532787903778198396939121489038158679336655390981421692260481311169585791242938810513972316989262356227988841205064841824876268785539074418759426635010843885025284222525634362375997447771997076028633720276266663529278116942648856819244830538715394198737711363751296434231168383643736999433158775946197500264861311030337219624767190757980206014893207568379219288651145635670666275124875257801833979387734507217085569281689688812114356844666193297071943037779186833991995148769461035711605083858930719491274384098617081913791627872472357635897464530784741011992190703883053917528593133208019385174971799438766083889505232069039461377873394674325916421260296922160010795074305596212052355816390958794437636673999079886943744229455395917090093620940554512217143644149818068660524379970978956682538117431715480451866453393542085663991707359363559985848515695728441217494712968555791937843298284166006117536820656951015639852880831309576367347222627229038682266298068785395295986206586961090507383717271477387758510145452101089134525011140082962792126767900919416135077169011115265935895872502686222827688839972317708210804786642622446055194691241439799782350744843429447682805802739074215547065639137560820665755637308899365710462555623845515543442269286172394502863125378451042668888250209809150325769970025976885475896799875352067046248768873006086211338320460324177980834789505453265210762834891166028428220885488966552248679765375849947909589686195251793789392313718974414972412939597242801404657099260521844776238154469768427032068827495697968681670347089440744460189705204952887601184287759482985008866940140197985401734899396478381345533212812426498216905642311455590827338082725400233975189077238017127151204672661830457291552738793022956180325465560749708055896929519133248320781116418733166198397396138771869059048434713454166669163208600268752629462386761180731783165038933669305474471721719606276863126048022768166626024337907311826802455406779971898687794220468809315987311414765600702902911070257082390729373769842015193973055977509547299750897660045193424280660837150467078968667254557462212735766141591876159152499011327104867539521510887483337454440434702858660098384216447250135785519781194638850978853862799131315091920577067909365658400761708807811273480099871374002557593500054362520971175060489756434818438946393376734605728150952262611421623739209890303970686229754674869595540614752761669804779239431066601216113582692732582333103773513255774638406077128257821541663461556874565081854244255214112153951402820516851447318101776014829123312027642888023312411350198140162684971711578880687325362202580004592399158504969512341341733935789964674129544869570911746964712961989549935375861246748084186514730159543252448416615142619204900704277175403395160990953080378795382199219366521864462124978832175207989476775262387813386066107205023406811318122002201945050511913631415847002123492235634830748413525242479461711308036579223885133964435094827497745829050863700422572242021432619781531161998567245584033072773363918162803298383192836345124618358662982749433549804564427062005764483753198343073305755690702760468226696176547706947610972113599796479894542549773387509977101273400179577960984510775752856583580556166491064234723982997959392355937680304330963360878888247112007158341822998129526923818256924421144163620904635707197445914691196069191997659359171522488448148146890439911152246222196024079075270659424331013955965925760633639100731626697878833023156434869031686612776013821853770772578348022908115627618129099449306865048255754149325675687142166226171463660996344267037914617191730612756407472023502159169762113839860392776728673578106211564376819388433991062143542195415155757413520259569454937919597590622814456447373905263233879485589825790544230229308767388784151981306872134882692729070600329838925470333274372137795863631679292856207439938848790034498213765642662923629752784739979779419543160146678294184836298149170399149998449833329647170203245746792761705450951007953463078015771545519708721064324040033604425671705346404821101692708471655598171495117587305645449885549999551805655052470007244815215890185121339258307267133846795385946743911165446140556621982057297194998527506399279000298973090229301173449556146274704372222573536943911237758970027099029543941653439065088172161398525136732785226967897799353764249755279422946466984407837361184461426255266639397432894642180368214920961819255628474019147093948276259422922934414937383865768947327387078034867988701809105563167350847730886256645411344796377651794273798165778607935742115643200826312097755956206585826427995249583689399297405072369320331195170174108197754444240405118279567155492297813882863270402526284199167025196624069284131283237412399578507768014827556946683269231351611171020513369945177906726966741025628792560081144600570072637205151183526898147619971465959013150884702843145124714599807655675851002102518489334072022631023377051898801848676157915742705345797794346999671499431400811837031147650609494404696248567164001284227016384631693634012736276540638969155026029003118664708651321658507464210887085312782040914201776362930749535242249414425955363018654101433142350487815125052481918492607149371272012584923030583673298134910118168382817731250818734889966900829861024714706339577758181227972873909898465668436184620741231672338608720064880097413646482817498105591894714788388568702543847889875296988868671454560314794672277755080871837875112732186467293821287087132982893566337623617621803257173959322269715749390365915761300173988333170320738243656383130327937957595217482355964674336089447016876051535828192536807774638019836707782729002920880791900909466224334902798243114682884300794403725064869321290833020626970430633824038300555948195788962466839837603231004934532092365206553730963080674416801367150421810277365941317377364417082819461855345304580793751375650948288074877049419986214277716280873602458035318116339049488654028018461626600724553913784226851220297397043271630403788631534054104186770585307279898939339046270670679945476720043723001431636038770155543946190352282864879473027348963942082955428953488933505527620803448493504120848322567757065956453191270202533822284670624051818125118827229255890784370307309412606383284338074159346203103014455492521757882148765302297308089671943424546987700338293619207027456339436092808469561216906499608947265148130208417559716258262739822392805800326695185089380878974358162265971767716636764007244292578435393255168661502195581427804546949106367527446013647291568851303756978142475397475239502591238805496579534190196747505710278408859572844977137696584879758251371885383399801003869518025855788856550129034272258294649813953922452360052783292736764012662296940702070522134246689663396515263235011609630405311092087440411144860578447594000667573582741988944915416267681262116638420829179613929685615565638242777781600769210417001609056448925493172223279019035695828945375048615179979781703667336048706472404888707000311025481957679445045102340525086598752471733859849012091074103749295599399261594533136619586454306680850784169655714552078944988626956461411095171897124438608757285709414264730097736192371260035999304044407110854738359011694145910485032217814979533944539999878715214967122234689651954127407698737499050338686826303241911997308701628645497672700556282341718213036989354262313684249190411491629169071149786974941313208884213515094966231659467423169051183308351801516111124713711017279924285058114990017958218949458882883179273728866526414762901039595686133580451552812781048771327395096970056451872909725680913596675516264325868251171226634546196893096042977799201350835969510642325527244391962577241702492134730594216112311536914153517449831833571593965453491117025454465636385858581810103848567130473674104877345615421613391119271973444555142854044015586701770194196111647985211802282531695699686136742947734127068727047448398254926501839159970296576432995411085007932311391103301957117741377132339916008871994995382692655225556659957485089242921556990468880268046177783747110695924301722253220442861001616334141808371409852308279333240970872598221858852202827942710760909767157662732352785035704504294538290350195442511079778907307890793294701098147856095738557493409882378535017994491319591358791316523737950203015541998761797500919735829222709473761673750335716347735590837160430710511653614146308150011200367943176122735443557057677666264077195048197959948656959359907355190537944444002899433607029296087013451902699301092207180255659428914267751791467689901761351852667618713717699559645880968807923017600441009443048076178060949272887405671202170426008927413126084842356008108334934490467138591127074792918803117478127103021903035266155699889815969564670243236623145374738453790800516981172100063556011937154445223203441961733310659246575498404297831651980956098418954152295310078060595220677627671093790927117072469984403260926855412348935970836605727716070745167760079863779099795006181332326546729907327507646735463336192550844456820015201053647365750543271829354434940347848759493888718474820028737643031257131964414967558144790771192360146999953902929275640697653019782276215595596797218372563823440446151359531635510400967824375286473933281035849780190067673800202422039044593806688379682651755115133649468472513057540733357293244374283716508946158898939632699648028978029592769764728542639033593153290761003804026249324362005943040630411550436192556047601223480186198288167179034205712200919725108893693367626263114436558917606679261315839294378207848900190048323203051022843551111766446473075462362795694318417153863381394446029608212513220810119062716563845939632976442722227883980691802444375942152881756651506023851070525113233671071272427693141191098625323531983956599702579234709191892367128440632613483556978933451754551060741245410161674825446422715782565252587588116906971913450921176145835199936288686823329285731810207121012568505543172355242278126161943627486279208355089925922027931175178005594819213187921222264138917474811270247029812508244898771614820635559018290668843851488347646767419445882524004395050452817024060531403551798378544148962647248834061098890512895368654712901416456841988477752261053366999974527525726365918298502194473903629089540456433251059134351071143581693852339247819005015851067154908452350661886938623919099744722322129303439296518547971508905723284162904588013123401929013994029445315061169840197515307666165087821917502664525954929750395306477405276179139248272495601089309542825290525528383394309218268636665289654551895987860439168465071475542286128086922272939099568525274326983198286674600627655082972441533133988461738205762259563067267611788618027959907666577660485848071512726840067595061895515247371416555221452366562037579920875456877581937096634074578141214702442505372558660019343529225129748482232588260591465235207626685201738566258776128612369229071859760575026492729690546814039444519195898351278753153803985578173378681255521463577308794786064628384012750413732869306540211465524494797811680391486617080590947770963246459740307966944055017929438071649334549580013915683787566760865158467955042499035961942021054693811408375490812489098988760846135637712610779892722312395171420639828815567450952464811069788916136843960595429333779676696433369090968766863761725139530500463959351859191521362873934688903515972586522219765225735208175704224058125114691963875451042381793231821053216897422177655056388996668155253173617507883441735718965496563937700959012534496816381815155864052934073979822479515866244520912572454545157680344141815061286870496200585769219807653338614733457933477908452787564570009898612792056462590379020368010751240274866847554916178734434660640297279981582961744100235916599453920116198775295282674141623198429278170362013547826500850189230517544574499596195335735264273918079586564401490437945385072829698890882384604441156494410718926510582187653353962669481475839363791345886154644964994989539447089779517310211073298124569060052249712724193744325376076195164058532281449581097808435314030194037106904439085468217759724015340012965614576878457369373384750519784088127944241042974954058590730571419646252279550934018924303488478962118970588872540407161456606655268220434070744389701035373634474468753153121513811982640444598627056701842256853259880551389137743077883226780774360458058708436693867142213432159765890717095736476594460740311984020730144612570274031090739528321900420130978676066352106111448195266113422063247040033559447767435431442377587453938428773323168945520148815140450271310712283299671644260419314031092101811616901796284735857611724012879975454773037400949620846944777602664046328564168053289846937922753947857770131280730313219278601523966831497926872030461706682401873552045176289942925293711800243247202221993864328351044497750616677426308056401797311903964379795298809696248100031595535696806433762930728572151655994403019850470074467193698238151147512727384029377191029013722811441759552956780612566441972810756745616111696817816846040747217633618527950749558883814676703095734177022807671780071083305686354612168089699364339443777310594718357955717098713421463935919349227860648636319301990465204701748297608755220950278261788450921976645347426816985405085645089214130399794154574830307439811493227948517242511163367855724267733891066518042616212953117101884304264931437291893234659106509075914676584307376187522461623772597578158374262665050933498006979458778927509223959674192449574787117698411087141970762302937475044309878581735746510400573482455857659642077011550338077107831515961517153149220192417341986825638446396012460159451725671691778972274853395340068826703680971451860339600930388435010790587411432859197868315601841628031085037051411463495289855061385975728746297771023870627806328974097126966011393227980149720281386640519435828265289454582126846094121465980499410926823004668553196496418099217726428068223519027622629500019926127050066984900670367043750533107504658398963786381715579283989391782938283635693973459381142918982771320566388371877653427602136500572557289762371697037008361986884482772239142582450083123957448751426190922425478082729092358712182913798551718241088931424582216868080254305769929823402731917903008486784265813460859942084178014040641517896514622633337954474014627511124139410230212153627413061858173460168158070341608375379223034301972860582145356059522947362386549439273395360766914263051521895829169829674104505823828196531333882274507926733508786155442036783553309320204453058847273235212471209316281015451303887607333568586552547362349778489011935455122331599101392129572854119938696847193466596697058064377015874029582393018806483488706056049974491387994734680879415634281862144981502836835787047190553978446635597394541821390735655092245319274856103044701814508687260377121999592313174911079546015212808980067641628490343212137317304675290437479325907750673793593752235196653032483468200991864645397904802465508243086885294513544244867375930846315862785484096550235815119291985172821590872684395412674777084257316336433828464141812034334316782749313508808043409226534989059769096986078422408830420489638894788281102621678804423067474133778088945945505426415727683463441067038025147316296109538133357479975092802990403697540977101620172235636618942551691427159860402896553266051940139107744891559600752199785488211471083827870051681490509316927681267076275332901529331369631145827356538639916819711011705406430253557392917561632336624892020661100435556895374642296560622586229665335379960209148522484071788063042774392685482651037617075233230130847476481189648542419402400445597792421687726210646695081226304627620913894773101554733513201495080049672407895424080760308226129842388367517392326678521062918199247273055991112581023056022691937140959346710934281046066813090794926578286990534609790968831859075484989061028113199374583165583837815494033161864125970697267397296283707799672391818250588573163053983314755558522119914715515848811212437512638658183350186208853694344325669812682923079189277862163868700953411915681012353843005002416376055748050315953871010597999871560652498424836560286461893013349600931959462676780255896188016097460032255217377605304382036589650423826092697502378675227227154810233261602941211249494064231112673549846101262468904651511837512042123196602791743925316595624559759994838697422082471977361473859721311739032127796873771030064079693492222129691482119753170098934113546615143158857606456292483815517306201239905989708666648671032614677716917170536782724555695525258469422395867961723998560696656072607188976037372168992199467521647640078373256750661022361701944466253546348631715812784341140555788311164623261577660265146501116157190680394637660368368433517855218254266305501703536384741271289041396108810785915538164488210596850001893498753783724058943282865542534871647894249328657225491838836233069948922848943961253590333823508807765732929433807544197187116043728284090540424021249135221531908539398452677729507724281895916988263904223353673856383741939702233225422486977483487154325818726076094859293549422825671425084896825957291058208205253549563093145051397781228488279332018353581315096094250295756162447412381019312435681416686726902651023723412257466025984247030285632037716730624763316576556605488251293475151994500826366963162253698522651521778125274562111844836889705007410311643444455434274225970412555375375368066463918347029562588926605413783546641037014169376634951584863597157569030862942009274918851324639174466122862355235176400378460986263793524395019954840748761069288005676364688890134963701554442097419938241571260493022694314963136994293526719330575358924461510908622662942188466109686605762996349527606928216462910280506883806780414634470850479575827198071813791852694293504003951823037005489079392942389010989106762511226768740727185348555623782373830104674387827408087320218613032572849349627154679379197433339146435561963444729315284566578548544913186881501307582920482761782533540735070813945027439427441938964971013913743314214715619643804203881957532528386554697140695576743204156076162567786532822742838594034523715214474368163695660398490847391033145577681528868828547491873351929246048676904302380897501293413861016466442585141263671675490745452372945132671929766072676547525730073951058547391771459274770620297331685153919657024554448076357929320270562546137691827189850672093770144455492121789595416830539070575910938037180782236482771528196547292048673436162764653102521727577275688549433131486728228704462423065869428942553028795805947731642020055448467015660784024783974438538737145160567681312833012524737755287652029603691709278712636301958514457562106462066565522249820873654469490404384359677289128824992195203431286494448437477101928418446141322176905806776711612939111679804653193151909743519993860597611033188512225687743757150478894801656086026468776823384232560303763354961365236988412527985854167831679526182456603682454075916762086746308528729881861283757319233704621749286150445000424665455891595780616634161833296832047822673823562309679721075960444003078374123737277524467352310450725079430801300211013145296023778677214196501752487576129195009166272160679150799976549093599914473753121731490081413825667100168152100650022992615021697263404744605290598121135465157659601434965923170525285676638281915401022056582921935722698014196390076805325341661276112834624627886462539791702029543109951665423721031170344828438869827629818966271714569749629794212055698527045767388256141996828874801912585933533846059986542710869948900193858825963452209779926492967712851469854497230640518755723504472783490551620860981943920492736274593686439192689534380593415161891790781129617176642930983994441985468471446275500389504020762136307379889356849801538459956626933168307912947051113419373817700996263445663475860681164146958386885497707912625839423726328527075387009985246840117195001215279839431454689630549676489218569710083673699207322365480607568358036554235023149236378099142233224741599800670245345803686947047059867159098925585492734661308206744203969501814630296308881225378933600968144883460980514018631545271170911472202504333888721680787023497158548676862244112481182976795755895275612928018430907148147320995400770364309450992248075576664637311876231521860674458644490137100200871704061626934266346757293676518237495295365841929129948936199455811117581908323019122636958700813369708227893286648778719410211866556390956131286597933977839080091522574446893764405165116857905438390679022795599678768390347556158708784456722439567761132908011112214769917398112911683840283991104506626384952722934602594869088590807472846765874132626669344788499109376395108061521165841810232584638061055755780265836524315631445861269858143502604135132874598928846368010935266976026589046198710578903638667210983099869357178807164940805477934605156163863881797581703610176998869822361749520917796974417037225473719991603606985511149463712611556931557473667458677984274020191387700017672490263600702965745705517346073166250153806989895832000839743576476632161930257212517856577243259769599798071488300778065409554724766015453528292469733814991022880108696742242958180801196078085656967605949523970985094518776902741451456927054490219125130410793835919920408594330876616010839133871458087719737846957876628065198969754681666169601915960421024371062796992356770675016569823447222133704014528576734102084925461481606553423881813696174491682749523506731079583075925828604364616201921052922373991010192036823459297487114594248905096537419407966793750011556768140308223939750065918298418862527841397363421867086513257971550992659049262935636495636321869953206708766161077321037920923871213768808227921931027971687783592649705811379836236162850216505036318841430329580593954070412089142250961446077790106825279514470827640179115595255196471619454956200654688465247380507910602489804965011029464126653795805966733042206780612084783265330618842273774919371055453174650161008761811509782460872122789112117281374655640292558095619592262393022889983240740012520601232960208709167575487374517799447468355061784239016871115556603135582012789558874278510230430189065725579128926282976980680031040688217466483103710362234682172295378887070185858098354078388055148188486136261584610649391896061562575813190643862029276421880120071325368997267358974829529811070348568855986434484805645199126424814143878658942507069698486388741228072430117337794853324569380982335286809803664102831189321617438509796460407788097084343883672926673573424856840430187153129600976360617505181123582266804789676211502502182163057469270961418933078400140160300724892463305897110271710281343560695495652859158240979285534732120845513124869921547802175613740977035072311203564954498564918524535338959166072174912285928329494567759174590472585019127816450024542492445492511584686922209337295645423560908750248107856029494464847596680492250915163089672681674065054584114664328938309480249117416805540017855227920208666202461575165089312966747498323849698733431788557670682104726018992530770095185692011936873787944925750151318018274813228188419085501952552423709519762898836994642816401965372193151119005667288295931078710583592443423490607705029885880714401776695180814766356068467820631486698240363639656161828220977871076821025603825439173496883873733762798021714614658068889587078124814983638561929359589205834572438360019318270928810716982366664009035736019260530997134113160258179703869067264431759015546574995797733455264931209946220062009442223396265409696166989961341910247869355077826101555713909049061207522107969605105603682984865719048767233181717269765746995402355951293338647944378779563773889646317336987805118097057331643293006490682934855405213333224089573165980482010930465762774372352613187733706085393710118443354089762483087050153835239056618448231460008137263258043708383361330018324846927793219595967292243415557019628874644036783175041573411176546301288133065057435910042771550440962504447731015262856562978616323607073327991901286497529161131867477863310400797862679347407192712618194070795454670376744808712536311266315853755442305400788133659856306644914106878607115380144555903982609450295853839263409374076431452445959241262919502083669580622696463060678552196047922191836898679122762779882424087587220817175597706440889878131914822424473771213798247610546143030373964851378667104427587719062739927826171998556508470231972220969533381725555477942624045595971956941744826111899460990035565551516491395158595958355212396673780167910504308726052795869935946449023265767503253402728595749853260434849348031920654095553662805349964198521025918580048873725194777973603639744206801893919034821051528671005780351217997274897046880799810306250717987202569193614839677791458809417448393062247819516235042778380958616690347827879304692356850927398408473325263073808215356861663888228130949378100645034029354309528873512264799970481733644365400574576524400273113059842546182437990797850209930097052119853907131611649705307301640075909541625490026732558190793429425336828144566216849494359513015998376872022605782353160979512891628285428083507602090264106111903618957276419418897447172991466668828679267707323645171627653050163317559053259802046801387127917193875735529449128998002525466210415021476329624428494891127154666959096412774313715420022556938778120843147249450380181654243748288277998275200667410932772009807687701704377663830320555643745665437479884407633687651005265578481887509888697854760633593041170972271452203328500174605018257240396635486427407378132172733778357537966065671264391214266455697653510572478313164198964544974950042807370379985429757614832045353744066079423739506009537998362590581601398913485190358137439556973920161626786253409915467918930266805304524338410600857027404304883555833999142415286096644911434237035012732192281491511942866462722487424879054365114395094648914841954970032321126397945730481623967722360042773926758710434808394621060867065714046118125118334873270316717759399869453674903147880054093787338407357283438164337512626046547751750324819735200722658778715873719793198364117604703318634684881209325335611400689545598506060895819902012180925153688881433496311678278189247663462385938708007590801760924110062749456363464069783369728063100449300314801255641915217499922676303147316510912144781921283821674610247662575541147232635759620313238785992072567476367610434198801432097140794073980302651785376270067083740614053206764639459928208917705155957683626555385129542979069579505156026113866653094671805978370189683064693682575215090314877910798873190558419715696704214530067432397563796397276256927393210531297319086732245097148904390358806062147763328668722374778949001475280115591550980013153305506036366112815231764827994455886790480745998835864467692704890913572675115306445634776384831154521790115067356339688903634719644668545425394455802802816243278015637084000807589573989449790388919224163751398034896837537881161678175456542335179314329832304880325461758878221556873050575898265762567084132695211259306200734829750260648194213184328976425334574094935674773168668326257470627889489356896648372444770456308312103316509318609307037988376312817991712126226883722205544256333406125619431329050490301883463208866411919666598160660293376578117322686624280064829610237805957010835880822989569861261782443881169922998651860797244005260598369644286125281285139925552490512497178973381049003925256851988921802760210172575058128497537195833158002279612201471922891300393976686704960334218688721474885151570826650333083974424844501104078193098228925017810295516702790729214484880534112413913976012576478700658419498535089709640818428435542843963160765309852500316915811360794693071341484937064589447548738539927010849367612401164909200773766656034897867585109483330520899278910943703792930314641673066182766644235827233637153124937288953551303045227187044341006536481245394152039480560473647043875574380242627452411125073438571020724434624822803594295874194284071039264687593866428662660925343091660247764513089154499482317875207268508785595893335309610692862259145060995925802918605471459681283029018056481716292824179745599019168650702662744179582706749616346525183760346437137989323195643822731377370413087394164026761632844094404934238308742764692020455801725460976725368916416012634687602360821094010436113161086202859685873057167101542050886819847320740936189306459175251282855350032033083944299722852047395652468310362576937524518482862259503193687620371615807349013046905531351513608423843375411433563332630531052554471674757722857610708004475410351140504197511838411351424660557572587171229393016354381767987860805305160924333605458324919898908509875935758899568593994379277888869820550937567872169021678158126788006684179483384889469211931681265764401336146753613835374105285921616990356815547247692452486205428481512786136996242448813022000966755449347633530185162438607029845490829199266734354262298172931547113496729686124190826275313134990833113574686202554248930178502830315277311999935140193583823479736060429645718835731754274686792732447067925142176649545170182326715331696574198706066737540771001203520466683304241384483668914595751590726745084826839254193864030159565655567676915498993767712544521533975753546512621361046315232500829590398282280964428689902336261671246205011815291202344760835520538397539435945030555739007325307055461438737600758554220934393772729411149884453167440698819874645397978442025999323652243090381766430252603437013774245974184430375957740300021572368122756970062695695296808423176456307193854563465930728626325262545639778235721659745397890842826007441989191487280830008139541106077986289976123462572778527358472710407591557345355775838279350328472840275117232685411936781776758365028119925984049267038687748663588763908521552858396464677113075088462321263234596033417789611166790398763319683598686057917990022971374066590453860665363806031722962725611825601708795382388149674048012679628220182114022316234256357394565168428395004067662149886806269181802913116619614416219468003280804836304713088394841826358211646448010650674711314515491125057447256052429605022649588734456742179272598951880359189573877312561560586971557304023430942534965743550230666354248180322135563772736789671387922854700761641666967913889639333542597418738206562230297933088749648845880327625722648409499349424142522372705926656739745566560786984098860360890074692141658291251923420057648451875196458663387022461098593824494183349516914396855699668792659391421063717620088618261347515102245875555336353451775842684149393052935642046749707050520772795104770491978160511971513547304043936460891071508091635380088355869493561492835360901247940267168695094338521839161212406793495776085166383824328115211856757003774214844867676364550456265003180410020433313103427977206093623838012352045340748533308452455800621669712260676774915486208086956056020534527256817508847244514586838627052161480457810371137487816316773291757902249667516596252901833975009590171405105950970017356970321040444173385290741450877738697145644069393245855598622342773563950714972424539448618558259374787911442967852185301381428706242790439747143436762426001726920300650479847385303464761302890226691360902898634895581233982374250756719751355923747075387443578987797371169742956624148356484019667620995234137075584672927957510968283885466148271322197269975430702594719166384447353583603034428111349345884612026119663722033315219469912105460435837311701153297345151387494457929359508694570687003607632740115038627669706836481289205606110287922122260912234769714508088510664047950760058761358159446852374620374174259645145621127157075483025916125420631241229068441058846079368957289955254060066605990856204287825642745757928951521136297232640226023578356194990027322616635967236609833239307960494682511471585376630667999553803197684449118524516508004990656361875999112015733680472100085576654310008717437190692577505581582633975528680173466857670315131958212991398926543119219103670943134672822212538298847709378461383455952359683128721432767778456349255081609483932801560802304276821491140832890062463247813786898833128365055874870185693937665071342668379622722211472246631217927716689700431790746894110788166066342670394081760946258668049273203991492028105187027414664121440997407200734337848880811097980026138173437325731508052017039752208593772722974577962284906255668349502751164001659010727931949708633557437652429619499589649543443359006044755468242168277837829731722998538764157814789988437292391159389626200343153522840502899843201824302234726243029162021287267860721070415510401415983821990826043109166520815310321254943784717309170226604372572128714766147015244583728268454186218795829080798657033347134721210235608633957402128473056044609245955462523766521513394367731526675949347845310751835754052008363898307210191860944177086213529861689696024199460550946313176756162287465860021035676758222798778939531955652936366810694239507081569674788121528464672248048691644780282843677891889926382195277859701037397700917389599573625108950023124010357474690706699063528796395274971920570884502258592825995435177948569629456259800523871435837553055911159007701503815093710863114873833387078000874054588833262414741318745162921091888935500541392030448671348099511173608458146561540551613738473046423295942900244907536323918248855433920295638812906284062167648769479365633257793081538285678223841769093312185388849658338150167619422232972032673283647007430850261816469642567763547037875077467472093467910920272349867224725244678433556179141872171184313656274119114181141389164613475468942707991312215619352537760553564869260914520502883952502903207102543879301042153037885125962465270991904931841949296729461815529175539957742720139420459048070254536437883662965454683738768119115753881722651213740319795891070548273033238545370109420694796886777742290042248731984286871076951304899507138495883727589400447561256287159670145209807465673384903771751626463935814406538833228843900211415208059167560500845056853045694362231224028159579431659848677220501120916397790475639519640099989677745873238953504249489247797131290306796396928981642947708557192543339451142023937218959607947767387535152168115217677690736676901504039028830771832610824596028035370161400246387585212277971089806247531031567083035783761298495384620857122102432086367493184101905604981424247755432134716425262310427440334599851013898079869542583295985523558305094502770722428683089255822755704106075972661567727016623708940826413239539804773414950707985585707534530919737723078833300419705177682289730674909337349021499189369811988466345088146536848657527833580061491609065955502164477911500869867963726791848078980390689375417692582188416833435939323208883569731052744794321948254094635199532699470066448743580131807772570522564359615729259952838977566033117420107188307649260004416723621334669939270356856779584892549773060264285214201888134754302496088945919432559398235268711272085098291415223240864070249336915260640016989927471539510485185178126075189477457102533032121208987146795295254688154831578115512615210353427240187103315664103259970894255056740939827911630303179666581934062892167922943725342927111720039473290994441848639923202235816330170685107454510026787224621124126249102576469486801079137075949888919776969194488869081765804387264223697102393387287688563153861293096119518061805245133939859195262744637696131589712093499410005733308846082984057001856351973644356545775974387646600669222615935468727678643609300127637579607594510363991766773866896895354834842918930207399237295832262554023606182215867535517151590866685562439959333187568946446818487293398046636834694130373210515883568343711255873813296871332497102287960290024738158225303903265351920963531944825065521682290865743474625310798859333548026639882420075722601201242567224070281920849666971697943894315496707983553534559019318573210032289818474622338894278152178669765709778085249025497640161486209845438443439745794229287677408713871459986182001972444283196085315935379669605085646499477609948277854162894067977037234161342060887509398564579803124830876515722383929434448381695249849607734878038718802546660174437827812161931220371015253445958906955589574524355785212915379818013280857306404943148044610994568454454947475229725749353087439904147572089296745016326350986599426903934565460021309730959983524145565862839859092557855223298150706088061227165221968196437824705674785596646705214258643826248719394130457454108459440414620553173273000365432284143168464575429322609444463354082079941086462924696934177944502759838823338756729402208807238580790657483343720628419750391026777013709008683299395124078159054788195962939605535705008387730023148756245338363940339905946853923189702374333490790450696568459791929487290026118282463586110302041241512802197766448216084668154591527064109015776845662080207548709681792372450553714618010851523866493845356102597693911058490679841507560371584794970184297812980073623054013291466353141492163095917340907307425817180053544804251985310314712734480261465194012912819012662610099395839133604971804297054980472920452684613936671808556450917525302213725228776909881728745183720485769977204383040534691903725856820286164884394079903844681992913470133368734818071906166990328382111699855558772014915706286572071672103458328008851935817029473696843856307343497601488481924490239535574417184413314835395033202566742204685834028443495447645126303788167250781085977976286342442813263963759670193720931132090498447269945809204133036770318479790488416496483750053786621186130980384952111313596092407214581301230951750404676342613212829919355983993047274189377044860540443025902312916761159354949872223050032823249410080757504269078258164149295644513983443312364690893520015325218631947146752346384499553039457758448428876694851505245370781605059928155588897521903922704552833977356743641236251262820853036843894680057490341609324091057147428641128486076061959072139939734455604646545791764242938738714835967057640276023051334931898914211339251955691166907688504175564231071125745339715348827083614716794827623615355593228907854737133630635640167702268199989743499483658296619706773243136331571798558233212025402693136126466757755045975860950011908368530421773240269293751507206103252018836763949816418813152087690951459447001048759021216966610428926562424243629142347837137435981737094730482947424815182866320212437383729022442482477971071680073356975090736405154245331212348676396653246970258246662749834602829666738405892121004250522563739626577028468574740019020470967451388467820814562685070579804795992615870547246959512766636031956308871992966210901602560001942650475189149629812791420664775744118962496001174395496160799776625053586696928635485383754727508254172020620233125322448044344671451716690777827939588375997287019602518267422273458788304534220844928583765209386162824030708822240671044903563448366126539650647816988920345559918898337848318936770807318602113833938253752213624290867732573661077796343474281167860702269330848420953182764804151478839863059508891847868189462233043895084329555341795061982078642142792541524997037441049163898822007407567631526259413013366225241206053745297289646524665231248719011632033877501475002863708479485443875795212041823234419621628020098704008908061608977165974768082425809837075175755457754064324010960204758810163343631458881430624170774747434701991029228675397608018578372303202450170678476431523527607427913148919735226219637801087288039492124447007957785531813545221461496180592414523508802052706893325260446457104933960420051779193008647243855023786270314868322288930829896936458773827669569758728861866494061496839936772197808807292793291731647345190138204090111596268915674262902508935685636295301717167616025777549694948320099932210938248348806743800025453713657423697232136744632169795934120163826490466890472602477741442508400374706207092025350510064987663258035730353534525425537944572313804692648126282977530685829945915490150614952584930151448176367490776488022707770025335616569221818533303618600697459808818258098431983747402641741597098649511424345542538005089750951340217509151932259054179587400310606908041661334415984714189379492988907765928702607955089178340863119510307836781360160785300068192625729758300200505534852810793710803842808845876239119078306624306632247291309239170964570489886395281379594584784546739600064895590865513727161758958143896726502201219008423552795501146063983063924305960474030572583981392774644844006820598297283237431704888184745312416390665644496501749911139036265388607220006487101284772290812786394234844260810375650762789146746447051216334097862564290588917289921993778944829819411581494843779429601682006371796369157422210917084525516146111574247912932206115336380499523703562797682035771768220263351522117864775831992294539919485194541357328175255815543221391443931863134104154475622437473986523447639527355749159320319668828969872931217534640813247767811040523684164099959088474426434099486153466540533265233306106919557309556114250288291145021605107754896041322565269513181709894007238107669439057126499822085310164456928749723959511320374615832169264267326499506162407334235480762325240393191471982377157974882449384034561938789892512833279598810393885024914090411164583778856758613385017999068476534935081433377049963975786120579553304527963621633946542067281014587432078350717194274375189348331412335373437009479231869097686437787701934203297129359223731393054123556874481841218632524255754052803990165891772811129000871719739461363480156415340093442767517077893342945676771000689248988160340059656114644373446554385044814470709643487411501665091633342312620451335874775436772788193113405238532481072268411183238119706149538942287456844854190411901815035440103094528327339464096419752339819725525390697964160395310112470497601029251189817162409267204219008658187352228358992130314033566862581926134367666186013500474864037726983648131435319880240558791608168364934882326378274660674704348304508973828762100188348138794906316160997472185704353549962586839719638146412173875735393742265473593300284365823088297035557189007533081471415820101241394248500304182328277565852481654972755639219978015163503274758405618622182172924734450148570849208217387001851973009077965765628861646202281701035630249716394548510111333012485965908504103908779775624086593224500029703894874449121480687877585692183307447438565804167156965477536947170195753814311330622201125628368958083705562359902114464035706835061091746655047786260953354033533401355260244291029037406214786745737691988892421519776138779578197278687740634405464522901560406325641233450124649559281618911380937399278897293745614927612300669549297336122620781660243353399157040618154558524192087016761049406387064142919579741510405601087712927896795425472032534987452057062581876908007866005676655842527551362442531002970712023057211926543052671595023138191978929259467696785673418678146440524904870346697940498889021024869667835748079319673237785549196636959369321889856785914181603407828005325963913058870947059298560389297807985844963365931372445444610732233545734982760242250155755166960805588806380002197074709937143490490550837002999545544297199314308408579676111199108015548488278730641426088632564317113501799253883972237554773779947686745851561754865210195559036617052843311620849875139808953554529269660081350538728743683571715585645106460898965533193951243094446948502058893327550919713200320908278279600539188524442450609822401170886159953698874871279475701118421821312078452331245246282365551499116576029364957828034029644318593880405564795702639392942917156821721974597214357704634734864561120003236406264452543042623855137807484796153525915531205178699377551331289147306055522597976290435817645188589859503206312574153112290928901628397952015992076117038396707090650357363748078174355843085234890768861143358865300978069652031004673437050650874231731462878230125846339121633928388603917546098974454362545433578229767524089506520227681038761885703032518011731056980683146284842982241358850255932162784696586683822708281749071311990746038212489316485617759196026031643867012446638307247887181967218878190864148732714037870291761992361587135507343735554370781328933747532362675914954766260335521098828008168860207716813577659736477402664347219884493825051386302910994492584295346768612027118815000235666610379602885600544339310923562891229474823282850158405618122410356526011217947872338724778084908031112612865791860863092606132636441769996944636087402338526685615904470388819459225918759360556699977996109871026909474882644341808383488590190359270423505243959123832642201219781222475511687820067470672365601726450408636018536589613311562466716185914309310479970813330584950855261939792472937776055531843274384443261093270142019077840427928162674486330703520788660273774452319014790718747546551128230216045600453779294791721423181290346937082587561710122815113624151812059039969715251294151763901943008084854641830244411279914699491824451072059807523320018241423370932517143589915235848235840995159338259787983492200088815829435955363830633772724166375779558231913108710689814879606410981919316500417862301127758205005157184479042159841470174664408143106605145520653163907537878223456448420174278306380447340783978284324557329671897884217342808124135575066185766318924618294757055991315105799679128526415013077522319023837546560137926174972041388125307708415553608456941080242435139058913900550403361875528781146322282563721027416453109996620469611777347104186375934597127472110312439839791444853726776550403104788549743199740025098855218058432868003997983606739765169480470504035299344536622841656673328146921927712143721192209487294540140184776407850049961616877575499319476584904054208959347171530969120796215286697041685024654456729953923488703056670629252817056034733819487048695459653204755600681222075043506725497921607238548294732183968409479862589854363338536292166177393473975820076963540513651440141375020166854247132262352705669266812339091439228223374785477610643297128076020484000817063160071246559899058393558157687694549242768947563270164560539395100030571650686277594419854897319860057381804431588602397231846653318298362484931040033567886411867158141943963058415125532335605779506951906200760174286450996168861583947372691727371367584886396141104371814545274523776551006364922359552897070343601521467583402280813322182896213763164783431129216279903863236510225609310784100737387249494874971565596676393177626962219394226528523971617745934415959534909837203034036984904483162624161833496973281184886819915005968323801343599041587208256078889893848444537320243920114296565154372414697873113642115905062058970365755167065272719976084908479830657811317692830989769782522168873110645340336475339395882195146949219856976337495210668604954141627868219235892989682716728392219412890352230956573040324428367517141285761901678628962684941896788050838894519143786394252296774216384809250321019116041843262131225372588349864557613363786352171787519103002643461718565746911143401146134580852166691437544927486242571203779107828812984023803695417200587522735082553356145716778428574604497694775268050159095821185213662090335445523395812569787426860443712823812445184234563281938572725103630543599350031992800933381226245113384696938754657112687604807007750633919018069112176563137887814410275001876879581451903457648550710719386200408486149932151586258638295156262772138933994356739355800954545251902251466873859034596268437836930291607558792955497099293685602878096920047224953569485084256372394907089222352414745825228301247033582255485491464410882545909862981186770232426832411809913614289481652866413008973645496907368896414463785323407297950577642702940895936103644602701407590386168065680387079074084568873210866482505958286086787164019298473778539601028834424106842555135744670512049264284240356549711882236765219915798555141257693442857803687601123807293807618886591240824065697217801552051639585340133610006714743485842405272007020437724875941548305495129809096228120691468612372562393748547030644322722005458972231087626906498081309559165281969240931565569609465135335577992517772905028582128594222555595007963982373354637174952124809638007711283497256194678727853499635891038839758021572776327845522527922525815825622190298745457985356281652254392489251444708919194673964285576876687194982092281296374427987065530230723190237271116417950094156776907524603161227756291834053604808935750477044417320707022995500680550557755127698961282996412248808831875364729462596179891387616528885536227171002332569017499775651709755902176363704920128554119182245601457249248854001407529617855596299873029002236568032839831795720830857680417684391080764107580922416097071971319262489571944982759919035755415022442416223490970901294820609642712321191799179489467112678363978535639540045609441665061798214783412407805313190645688678759587994968402204144697563612477460258857283989818864659084975760877459023919206210037133600417855640265839868224220733180016263571830121591986639519926705256067749511347795726792354511807015666853826005043697132149721426333457687699733969904126827177519784679728344487334622071167389517957911577787925520728049708797564004120828397083453069098745102435863542995345565401786430221836226828438275822430269805123905928988857322541043560761588094176097391362479822016006975171114067698776666080782330193578381800124243328386046164562705269185500026819686463547710766933423796120974992317244684534904221205919701694303923860717327948470419698803660860482093393464188094187174584060527513988494218331134134964742758916852234332850401999649823565930504083772459586695720565818377805745157458636710479739885431583880813494100418707974610871623936224947564356156155215290825089947275973629157018874820294067802601225347341393564418150868140219320942544871407823096144022986932144079505663026421442292784003103989541103148113113204257974406870429313540935877871834743083234225136723528426949661178578232168430188996348404678068273962113647460649432046416492893822445425457118344905020454574689902201048083022299827313550818817107619525301738670722096577459060666244587935016275071782797563675776678789676152280127158187091212524893144537393028471032538039933826624347912709027099059687978189377066759616465715518371392971722189834545090444226865702992192145957532298024997626399872937469848408566659425043405886697214158340863387939091309537075412680458744633444661421809718468823688911507459754573974844780070156331389618933811297562597204586746855075365828480064922737822481345401299125867429722000867791355711500486648717257706479136483139806703624312766498989696977021233427486968343828902475722277527668841835859636306416023238260076849816435470765424217243573366694639238505039428608905511976748799815689236107611086710962879156629743459656279994783133490218774927975815595398382263852192566690404580506068514928463621940966458062623713400070454480965329372641679510858171472570992834219995858787958299347170381545121291417627209479803300386420272362550532612676815823675225296997514454445485270893581486932982903130597530718518846326229542508482427538188514231872784062162322639365029094211629741168962536219292505810332023042698389273625796078642304374477571224231221212345684202423976222386852280042829609474873656282549033683705962706839180551820546871282699507908507390608424762605729182883160863913437631414923872768483018513329453885814237395791397162457658064581582381690959441815087276955970349643745489752061478964079437643099035866292723194398070529669890328796471770901064997543548473204328898721334543011413782197779776925350430489510047193553486052887794293862567978001665625465402809413249371020824176078695015185609006914057506554177816757834441370228683196342402705742845472693261616896971834064844671862397116717652239160057148984510655839798222011571091928213891040486267549957568336500728053599124345403943525499978606309029040699205836641269997343059597373280014935025383310837634313285060557232685225833697367395116017628506813298492882553577217291036369496263877588438104355632036265543310437723410555788216279804915314373016726975051774376980574336012949559010611538700617849636897528458991093444059266005930775999634560578777838252637260370902295127849507716879294773672346393142118316763550174747408525212229438125796421038852476780380282676399721087273071608177852862425139028041557299795555848151166156422821249964463363749834686036767196423634557462568657975939383330323164677006780539953708528242077258692243348604532060274151744758849534928323882578069858625456555811456279377853606889979139854012598622054949806953286050486965597517662090877345232866623437417662490799573312787297233085376166996893272253697469992660914025643474441898274230739457931975135319043577277372709185985398681378775888657990246688042302896521987955643255905201144097651543960432666282448424802493477768707495716806715198257661211089930869767796853720477224019626409488708932901800674687807720423181357268913689046014850722692711872357339360851643018886814170762193093341153226671026292196263540682754789346855465380390381034215657173708410262440876531582818316015885256856115747525334831377860299232101357705730589666100910447211699125767366964395242291872031087546686978755696062030106610874671592747464133416753056884973943398601754896558763616571166149134787793568152088002612306403669492395855936632474583800485699928998967056228383663865541295888566456661933528260410275900006966761228055853700722702999491464439831956039733267309626497552227898313538678043453223410135403687163473003973237774573141725651442399373659281391912631889384904052756575204711136715596386639099167127882645793426635797793401243911645168135725233213996131725010318832148067227500171081912268969898429736720302926783304542643845004768461444476328703275446151926197928339384134522513717917898713972510569205453845283301138614646106093483393501803645786346912022697427396412237787541639961341739808315248991739846391371545289526837839038535006949263388951571337652644615389219875404670001244625626696937826780921596244300728272841053590322018876321561037182646660514430738234475624027880151282877021646658359998273342146447788686601474042228464406161590107245994985210809743912952372610086885961036656889601410418458141785902154602998014405018374929319931391352814238407098468586770540875378542641314532209104163564757857704506654465142727626552515815337313467580191819953485865410029666408208793534120159005534585305701445652251107064825671887564672358960595777291571688155932563805036083956458761578269584357260459774384112844775104234442764859510109013559769112633812245650320358370463604922691534965757887854183351729717592435723558346683405195610642662737818069693265251882387565360740951072060790130700850543992720595900490941222553149384286458927448917604293040450006277067660967090806808428818957604558725083967467203385014647395934088304995904062760427232318071314862491693687641467353664592326399983863625191071209014798503925391431628330608043885544151036508906522573478282586839243473511121229071736341710477907778132318821028571812958587784023631656798849787888911564240607278301405342788958860530285587327527915761345080318854757449145433336246959679827040139156885324651072123018565821550730953773568506690740355629369199103182815316539840119466392497825308905990635584082109842931056648293367069502789043258915742414542990392539459158747217850115076755484336037549153151170847054730682134281777779507872659803418525541873322603084797610066326781631958813101679699758897291032553771075593506406193329465368782102972482796123053165962599485428116733171796463276479164583823384912375573667972480889588875883833716412749253295864725094643248206356927335851567034271218971483879747611876866735256372405935895579227923159980966201277618601312205617802547531628068425685095929901778548170139700041760046665502669871931947653068445992763619137995736312494914531189042052576039401431717347561680149033169618699627323830995632693850718429981900864544133414242673721926499837846670959300892319718898415309291908008478107314052246450883635923693134815512649301450117245535512936747924577200551751696359781848394630051808274459346508297214442018119562629152414306974209827186106494231288333103843776749327130909876630331409830022277077400497817188404388632474681339740903519912534089156877478987369742751797400401415184832255446186310769153621960518533777556255376926879170341997880999212830657238418935712755046763336454793198519327302531340010672506019545475840726120556050226574669277945499422317351884460707198383319671667221628750545788421648447916919869269902357690920968125371216821812984665629860379639179714140772438921126814707724825859968744835481950695142909365786130967153266194862866490869643677615006999029501671209944344165443726303866099753824358461998117331111318679960763799675864705172794210274825441754360264632046138498200004328917164953345020247842175831352312473815043642694566269526897300505973199505903141678775503540193251731110823133704902153925717367806764542721127699562105577432127249412628621211465293400559254097391861560510202704624503774679251716978958159145180853361458660717855109806793691630048401934117570387442594214055363549302407751621374742482539597256446364727453952076317746858501959902487534840718719418786999852752386538026044235462783086521476324170477217881718282031617862464057770923487915974237748157986068022795041503563079534221909396229585473154204823703148026704644497170654914960245228592725081454786669397703392191913768096234652156023742215714872981216913584207188741746788712936810303601395046527408776973279122825129193298570075902781928044226575874375791482275612183873015935759429682095668679188075670163562668066934422092912060578535773395052668602683172853874715052191291642801742914008317880461724008140326634772703753807825034125084031273703553748888583487478830744037110597137207154754339024917424033750250248648419053371399854267171389464149455665873771761045158564732397602435276866464694075726272191577922942035872629883018989444921494498083297009400915990435859390091972688691667178547588645443001160443362507189923979077108437377385691056444852156544983023457852928678255890726030024075650456544713897372581135753365496946013549098145966356066112196323753376440546092463602856301256486481877298345721506830235520809152399673034639894989084764289839023554129190352289244505167944527670850981793494604268042830350429251713329541333381472627494938833747405492217801566490770148357676631889717072006597327434333336319177027162786262300798953499115319766923723798548871054341987287280099149225471068934877251139575351153241759119818491234356970559407244543842480500355099439522244572653108160180879453479871257140486231350659616903049504715857034799087406676517478182692509476901368816790978917328518175719192111762206507109305419361469139547908292044163659768795102330787971891046978510311781210088497423061926606234513797997117108418451545249478161022052286397792677804018479954777424614695855961133103956328236431994642676642315115846964845647291430648570533321805689782222493330647723867975806204275093881004465600047025818346824280386583987493912048689569287498804802788393014085432528604241598077233838995329086723968509078116008597418020991515164190749837625583191458455149584903007831225523623756133668247777748231754965514307690036775997812962589165561639751500140741342598526175302425828181250055196023607518589397886412867493372823638997465964086594003925132327750089880680410948126381503645760809129565460802108445235031145040202307823376090063021877435121264991914758644154103868497782627949949210249310572646839698939409155949263525167202759493863460771678983185246062504993644294240989601432819397247447709672849753313627391637164832057384805268799617334638316995746751514352560465990038912209669839719903392063155674414176303785446062259261881124003631597511265514664544337195970396463142172017780341295148406121952433757205185051895247922734004992227546300729301664611965884348425047372228072734364683322630088752469195560589463137141840597641327989724202759787662281229756147212536926433364997055977121473301525165023969758910771735633512930337794446741750760972017625380796165903504318398203770133780912454205238956703194525213392482844004437325168424125455310719728202759357980580358678029945496426762236305016137487133769444344183746660578944082231151585314044672199951578177394647340680583489238599621456052624585226419783459476321026687683801687641278868717918342264871306335000737815129912209524731853842364206483736830644778066956689725919504946088228637071216514382239049460714156152334778225759847193439841880125461702911627755439112362689477512239198657576325245282232325791143899690906439933278067445716275918092187679997341151749590585570705038725464971401912153940306542884900446804958481230654977767709517251468918534273946890522114308269039692131356549131995668804255775499270258967521639229462578574248384370371379349753231968026360732680349709891379570945467601076402654213761270703740145296516871018610534800191028341454022026908205559157943336932538898114387764589908099757013185338202947709289162698135065843745445650956905044276431655184864090674019445710011792043462962952552265455253183901596482730650513044142015950046140951447641496550333605401612577958665277149298535665886171568180160113319860967171624640087094657663914312740981225578662262716704816931920847574324246244779108212774599019805056143517780121357432657699987631879237511397538447906345122147970044827496606403714637735436547136745961606629023927390342822466500520025856163677029965906378169232801798028275243896084701164405071354213014080464634297615875414154872878301341340619072421504695809931689414645780358788703343430274036563933372045384962308630501390583219654202582813063576358827130721750246360805088461064611286343244205273750016609955091133239901221064652918866254649808410801546003419976939445045974907960175517563231521597526534021332433820706946569417092576506310831127602462689364818712991558757945172325311618694924421403223352912334998388815556614774744116792862596087820339603842122670685884444583527751514173758812891436761632798744847066284938608064620484226045325371241077033597876817668724255361840368916185464907160006894934358889375055894952866767689375398559853625581197084125654276806518295374442812492692111480622279425354205084135999364039283979302669940364243448894019844685584656675927829910399256306477318390199647789947041993673452784791156481524470319908305431451282958521504591000786329776893284095643070094294900392927066695794954238609772180018876797222046067198366681237878318115968612409230836595772071107303214045429241711603881722497190497542574021835327417782382342960348326305287586302330900599016417613623772284934817150660008131298898457845896290598356331085245592814429007847838353467991136214273081535618131476054875411182568262697441871670883035628084487763870678404097785182115410935577462490799118380143404539026085520084033663472303715520462973837716705153762317456980868232960652777481889540865420544189768615619132218388515518323655836823379495310679797826136014191358207174144633873379200691106836228544740538850224314552992913867817694423730349345033272426876033970488132529600354874470827057339632018591828931723777315433770415485338037369882341833237882339298391291420930278355468480823656306917697153262411501282348446979099316657114083427160947555531664715023779677929026755483646044225755536644032572775224367615271702664194119879374084487390058402015536423244743838610190840920605488411379037118099665716375257645279806742012998060772653022544595868820085721808419960059823341573325054561084189318307660473083140709348473840398986135237252645890035159081092140432460129820727158045298934191138010324154870940002471291534010436925716253052095167677197300071540521230571866701420020443107609523860472387590287888171318123401521119138037044083843712710758749536680382898716849784797714892339923279147026994188296587938309488331988444970942155082524352637631347947481739035321021346116874552663269137793242599388201435437002512824768735632852516840261933295701292822384410999618226370063445228887135289360214664785109429581791258505807101554590194626554569578723983018347083043669736874279613280708807941142975793910785919964605162587164773987826164730521119325923478620106038198218917246903677406103175551065335676684734350038625322751602294045422309267959180972060272293440314130158148178128881145789979763463136267383941316604001673133487292957046280514319362968997568074217317261351589970078679503730703854839360522138062325004047014988825808757150184846396742225540330723200500610534927467153530289225588976518009473225257707677826611720995182434213452995070262014766406308860071626455041868537107649688188862084964848722488102470826142686067781039081081632380720325694437704078949780772693585860655582099452637090478697609932629923282843372307583436277205082976028825007712512000799437164861362894108899614010934849978446587247787712585899896842173927147316427916377506308028947723796300567125503249445241751590135692786460623915143842111929790036424304379001366960704273497564573165761671335965034930611850082682636330413502082684322250778738518849444009288845980183048791882250859562083518693005516964751641098158516325007842649192794063089460625379664792766206433882631631682757211598595413726642534728516821226493726116821842986747510279930364677499849572479359462897526266726539665489965922695242518252753013526533784543907269611919923860614544278780444185173604006285325802633372191862414192413194808949445358224802082986383270204184233022294607744574445442249771029452398315825873251339247182770941310723696627133441264218733630284818532566350984748334368817679825833039390180266365077383895141875028385385656206724489377338677348820361255272762624142991784994999814695735200683852609833666387836992760919851617692221216829982965813623245576311005988694521785486115360094617707370788828707298167657668236167343507086630495622682719653480076409230233052517578449618995835993001689068638793231029016094933466211965844565075051655444716695721213409618307445171048505941470313536303218206387727424424089246112292457778416979267896453704129027790169876213035154518543747279250284712106698056431026311963668958635099020457346129404338616570810725091054557875574889051017924011845472601010492905334190355432269402047635261873713851682393508586342425425062160016911242337434090557244503551597559019019692211516256314467508093743534441025022188699495956004615688423701835824071050520388455543227927949378041899483979042368126756391811930351586063331271377485362302191095554741491917476926235046520254439869883439198662103242879121202222202339885206554443155567969859712239486331215135461689365201911069831100976273956739983313362593274851519787914374358260253923883175692748197504923217325012216797266966517739369409019153296300521156545062957117139754050054725775201227083212621923984776695539825705663819535520612918186697025054881743724639879589143043588284159665572332507109284804402520875101039059532764828437267384055736203069078597506865483297220988042284000114679952412476317473314929956547731575923507480289211919293233623073442440192728522706338423271996008574313677057230379699630326400646808647444008694327333436156064588702995442612031323391719662907886855163499513543546909462836429034127819190328356804987814657969719734149376406418910375297521003497740132608592427728536347603591906649061667444003765440103504743214138477628316325177392171671401652805437718417542004100563573519028140335282572644207363867100028724658980950709411015050708400641795735155926503694522144118955767322682818118234379992987264921177872356493348064340811146956020622183897438659512324239358111917274881577309984124611248699457589702651935094951770435347693749381547007851243892705124315327607042555773251618702938315285066784220526200345637027971408798562715961439846366517755951858167727378642540008198696661329853588519439763181082359843946541549755990807289074071461564320906541732159457059021705485655143184611711165666253061633532641111076851788449071340374314918859325163428504434212514178686407250850384149403469429375372755926397087742601305470171729310140771999234387376261992589708172462768330352721815401706836005808910543337441311659786863474515183408358275163022427981759780307097523459637212469597100548608131534800482720924148388804719214715916331436640658739424145022112639920585270474354987882130716133033054791653667066158301900290806325623493714192857171738166166878984624471445601940261946844472903943920037087122166951085413686745003740845497707896884956311428252188193122741256786262981756448183638097550419461559075803290211748914681318856627831929222044893897720652591707138584964363442732456184757769317215299124574568666478355031494249013257109992238958733239659603214534057964414890106825868647502936749269298185168030179456201862804740690656426184791968394974364720657713375640573835824350841806364755057403507937667095945103695153993102926017323022045908088818629322646813609065665533506752567609022087494239394722786550648498852675022185831740458198022628406628835859288344568406886465085223069615506424141711413336819337708415056743459185703080687317535123534518709604782994996418364220877091448292727498705833720613422462100004979250957866516916107203457689257696700181652953855261688811272390230408740516813712256206210336861752106426250466400623423003966460879917108277871329951309755373172163451353490804525071550990012857526458476086027781531437534686718648059187627709757077956030118295230534330478984022974328443693845892784449717744344421885060786599096157657200521898860151819999226095250301020862226566439449833500245769259628670768471448815658242166703904636204211008433553577683455728360044805322511104631578306620757899812646754577177075263033988314113182413813757100810945165750346241072731591142519001894024466769628379614252939687884756396942472117018151907421368928953523242344225920365909641525066516830078032246528235144308435266751101509007065453646386108578016042664781404920574414772661217482655756899449626625318922400833424668402528092605251974502278133670777943569100253013616193409332539896934417704314341061392857071010201266021129720625211702140116596492336096294802791385802258240542135388322504982999592509473816310279631135411474630484355272627442204913774973232286070111565363260429735175006945223779281665226996847030301441904389605822932678693252579536116325685026350201504798133269395159290352451961461279734093726505046474134918096019717848233325393507841139989423570857777823626826570370935571786004887739547364723239762909563667276050375960239352464772878949544289917317918613843712020652721328303627832856522884764273901255664847856266072624976518228137598447592643922606833350236547286410219880988754177253874263367333652054930081604556047006749326701788047282306997684390742363405875340177856211818697310004628828687711525618367887027590390503832013302444331332415675482491496791271108611918027107903783145137218833489155032935628433674393749951570585581456924365267243113336276773265525001325883370279259466037516225760338022316457978196390476375013137624651609127602838920123363485809263742986230253435083234351902450869120738187261806965779408318506879955562718852929697784267959969406384792654930947907788961785707392024366574432431416228976799246084751012349549650936079102462914669479240731361767287711751700815899544928505318100189229473754514134748682862560581794510965799435441758631985155443161028551693046037329854574423425549346499467567026937729151280331879719283204773107920659080808325044392570797959818591038661954700123797625782686664551730379968890028833390730500866530483383127040215563001596645240853804089869367954870755162483437588561346448782609414802213507696738817561885918204938159593728668654886066261726187073018270453352323310991340465113478319639862472161265956565925434014400910340465234657428898427215722312595048852767689379178010010728488688847150558002069093052758601535316738530889191432625017684577248500629685881026733908657779955363258657525238634283515638891645098202166306509616842591803252616158359615904061350266974524618766490565239918624189781853460335881982305256005637418467600696742944495811550851254185862642039538252507199490964668935305986790030458349637111368925517484743125137104394431848446097281512656833579749909869249070417427106044921025027400196029305371956580039337433993789871014780711591974160366015198546293281264428718750801219554800829951548350053588010831579450639448207274754076141390549949244800649419297932958953438235582105741929258544720253993289399088041268953886727101990198032223252368302946537586942742848605727386835802010032602875134694978837839218655173978781036315628848191661698256469571396899128090890758417090023483895700147856942171000564496019872135785751262816729131422192418305444858542995030136770835127249464056101099260512375008671174209931962559391614248144165879563528445121433941511134590101214735865150653298015818310223143182187416856982963008588830996089362526240765156459216155619419615410735606285055905817017013180817641741565457159678971549570349180866114975646199521829560332700318575467236290199747419092382389454733201033045653757756313077559650841614330908130238261263804739695295901671682904783006113322165695261990725912924594751210477038410339886546844880150045462271375385212044486148245581557137446314158069254628445419256260764251086346871367405513456135102300991019342370753306812884401932639399512246947371507625174349744942735829961126965602650343121926494718110497526973915074018838838669295512838164092195649474142563395969571362393920340000135154470164923051848692010745237335745712449234204977441655257235780934452575835086349843214659059283934031735097889626876299923838829367537884431214105126290710028351077395840285171525303902859006946262861815289371712700010875701816355502691769956451740646244420815785336976044641600302659686341554352579098366769011913770053374111887526172693885650482649006315480362990245812183569748226823194406185522134924414991831708616630643690852258723138022026182471100028280268725953136643385113219183434514357190365639362333022237948797372319952640603634150790041015244387657088923636026104811983819771929328335481284771267286122792957160665898802491937249143924087418272323847668953583645028821483931711612519491744112585363989770602133855592020647969195461800293832893856002468038436726948482132579403899835118784369427519615189589515294620618158779063341877704072711950093403620848211794979938791122808911200413368565051906479023599264172240112682089898908484106308048009624447354997553599015204535836781368223100481182804230360839878461757411136094215664810644558699710124209955918536492486710983221295332064787792567645072988971359890251771511277167467680263763526246555106041778467557358075710035018749333433871236224321588012519268935464273103714105821322320837046752228613159347192609029151662562429800308243094700073377157772803028541843000959499352158014095681713579470119470770338716496740008545080184205542014284549745051260582671525195169788057723232992571471405916228306420341084841059438092652151264995199316812886348109145760745675190936714384226820171565924852234716958147440205863750437740898386770302014618440399324900567080033187970000639968882092345029710885151340806755949472622132172824525085495606742891529187753477742255506578602909765165865844054560240399705355263398705042754998971255163408445626788787972131381141582625345094567581696944266423123450496248458594559570803898499592633048788452123506542895248641069226739673529548845520631126170909236696643451426769618561053408480651245449863062741780039513137580736192809762885537779829190939202493575636581032354986171080802018630014055486878026957119815509360280368595112252317094696167653883926693680144478156548667553777290875480728832333175650216795258881518434089789786515024881355918443128302947418960375254085221211078912189891138101585046392493265793664269843466365759046750540743883486553249140722037503728710335237073666458523904921248522959874853512960966499774649768695239836067371992674741341652956983213247766342130677202431186236756344778925246923853013356600203975910458555520307915022563209732471796206265627472283866780809169385578901880916816922428820006516078231488708837455608026850955285826898207855890988381956295618299329046334268593800514761882788646708309198888992230457272247699169642084230750728382966801052956362142025310056917473462289501785929548783386010640199871707777258101867904767131213814638423460454325578925614861224600594102093533718164593485661976089119465965024984309311385688395812203777513026795206478448258056669750747183427968478377331556093042793837234588178807231244306839683685533045521894209583317392928293017469038214702150234437367467133553092089358257941412102413322784797026783352425636518039450030406933133707392807582091197695558822347326086763727636011876442630342584741621508061849246350058359401607940916283447780638274701312432130744829442676770815846122378312660845775528751131885440015444558302790654988406764659043393854402424131143453217147508049455415593920975345220826609837344324635229932080722611882073490467742588057346779374337981891857446904700365558660820658019811775075626812203620681818510278286287586868111757225419802014715393266237996078584495550930266206326978569902350101838424495979337245988959388342856040523981147933156796843870666397800136682756564405469202459967051169433394661546602357322721303063955094612092316281689888154586321784157178794573136684484858016284792348760599193633656494737028071392029711210323886523431415280135313750823988645495321526589550870693415985672772007178129013836254540819908721311207851570343337160934900477186329106412539811570571606033635117850057542027667833223333187789568858867366724254632146551912132380635222011722302013266178083259983496387591415255944905982970102874252626529723126346533002117701556158526606367535855082508372697231178572002664814225600293539729306646321106687382561804077858410775095362275923179037385270185897179345877066855948374831739930174481573071778052508436977160514322487481142780273080936515335444647086818031140543366495099372551236066889610284671951580860422054290031508239460673633638354290386397525688033298617319645232758564616740910033825152978038601204439567744614523627327564496029736610483952288419436813296022791066949838673806969437556060023339462425331848722178163841506670777551805906864373209177315403886154345559814001751986263527596617320006068764549830617028541436645837376794858596340945567009947140053724927217941204766089907053469581671782708271723263184182240360739957754360985377743832298633445093511423881958209820389876564830164880317406004804447078630330667402864786827277741611115402899012642731603199925756553724706142784814262756207495825185975640457973163215540699967541063840455571242152654696767893111986322529153753596467613688962284271448147964520759921232578899644197566104326952919210849665843016657215171979410706726401090380053775247998540157597846655995195983245090386430186715167268577552219339968770005850357787828336332850809187292966493176163984532425935983246187041146084588332720892513284432123006031379992055214804383193963028485311387558734657982478823839319150399394721783475902538341501880813046260621521723159502639067050888070008096319288756981693928477035413479111894947492174697904281981745364414536134987743798845059018957475166726396806654637117573822226718472512286967264921777114679200083259448771300064385040728977805602790959491869918383565750129194386390509918418861482312978379920496062887956353667118569745295813289811877253437127350298880629436004850315883155113695949669542256265209978850378995917560188540666848696504899246831351909100472805058132007506496769267379414149115196156470697359350460635592209496365478479888805867066496781393291731788054355898230606290925444182701589736121410543253118429625040604890459320340363879699093469231952891251611195984665472528405693588294914054670345538056929172148538628635173517457551356308752121730811679062970995269036803893421225274887414426111354790982310088870429240663951095983483771729248982352334593392502463266890727727927070021146892630379144969719345594080500788064005520661603122261279535868937967794601351602177975865346206730843283014840977019475011258183239394465586668383599342180816580231745406022352384947930535347276156588708756255487852873204976935769757535952044878062773567109189389472759339244286164116554643719410532881768955975162092603587908802518779676941295156814370082159912475765492810496865810089239546707916447684620053064688880803471555828307199686022116131624081704771189246936172344612675002924446372055884317471337129116130363383475734026974346159660730212574472310114707333023380792763454135403946494846246634035075722114056113542438776810141405847410254244887906290105061935077920161072554927015024769412733991222060347080625562976715659259972052885753124188951668736891879209686946131866210855127744201137587206556656310894775457871183537188227295111615663025013126898496497132253080515399148605245772657230950453836528670183461595134504576323415298454170837524017036679179471406489494374426350167068935755423174698656340225439267165636391772347344359280150683108958406522415932102353957426632125661404956825300448191710426882642125385469677871812528718873637351334010963355379002898128896961460351739121735191846359360054658426610736763985983409147470133299321396037687055754737977342269198078904468082253883002748243737822192099603039322871992874721933257681785381176706104867122535637454269758274581713032850993619163821735905650338882867737661019000416270897534057022734420871199221079848168871478347172550457623964433062933201182906710445310201483661431950685192067209911241215181376754385223892230406666727234515122715615130314957125528495924234996043000096314759368190384591962303486228036968188282526683339407517360966901475218229012391863917808023833545057136479947075869086133972694969470037591292986083755250031484753995937159178515920859293772004430408504576399881179872137217033010318379815063478217155896211606483742646169972598243342297320070380236209587379828830063635905398241408707447383539247530917126878899135861928734425672036366988397342491925879981932310284348430126241179716817402251820362078509893342812060492915822419070583870230123615192731467350564312687647253880264020648085874163981798136415165016776052705114697534829387234608066460453274539974580767951434435920550558611766774642204957768417751842908107273687721574096444643657023773293452685275501406610904647406392921452719917283956561260354335625360656519152098325453267427594025625176917973003630888462115797595610502887301732232774010445729804802972033489750138050740505520406183208142246900346346306747387932726754324121272544412093122341136433317071298740554912996600169569387441978410917048728438621748176907425435260430943351343812683499367227250765734094735019777112079075994134698908194261820019802416494959684299710019914080265683727035935906492875627127052765798271802576370350507381309208853104556037260350764452502159386278713415431924019427746872363278790271814848227041355542420054165463755362644750355964709536277819330760620101976772148042874712186302127703567445290810163992270647204726813048555441086265631762297164058666555797189377739572545413399622633278464218735460139335127071956350485580377584446986745029870957287404540404795593529495759254351915944409695030615620179564175432085903497804991358789806807642237744294635746066680096032134198494752345046390481594529781124105795843397582086976215415443735882140033787493787315234004406828429861143418451575195779114792392994716066716359282978123923669442433368528158988496469871828512664990385396198793164876210713669135662576050827955625592787685046489405582245773070458294891478798828821560280054731118729821015882354072524820447904485156461983149258960078660656919943138913899680795442648269000631749420772911576631989445997055022154543719101296663769614246082223860863038213780288461597637421789643073408020122269124395274217171308560296806313934874586605988273364338247688428454317565554680166442317685591408909366392357201163228752459508850516871944061572492834807615522534758517642904448946673277602184729004685358284444258621248134093369913782889787291936652940501320589265258290142382936492149092139846717460881755631148953279237836552847372524928928757746526094365334153226871813886291487044529329927702720664138390864201241562997728218178795942644137618421471629814793830261470382257545276113483202755159919431183958500944556776523902953726465974027233900833512994618573368278143438138065841572595464321831613138995431796793335510696333906308368658300684065917142395869412514552258261969384957724071051199476357505868414309858119964287826340112447889662798017402661828282630073960761017502551004810311545707046192573981486051395280916985330628528721991244752429810135768913475331904544007327284940947582651522738740304401657906128232230943420553515048946899050617243853593254150501564283077915515229112858250725142343401317263440639819590440054510815142420333216647128025871874941375527744870239677392880054283554789306075357874350463128438446458004119515367481954005819281276343039063680555839085709367875716622797886002784303756940590884801800763749716816631988719834275131537035109649302433407400028495558865228552017899509488845201435620283911342248862700017753919131482846904527347905899261496548789095268926114952503041854192828049305113836886894603752430830183906426406376462988174624164122061285030042499391325630910222341559399657045058315198871156317240642991791751200112750763623934083978771666863609808440716253445524229490541362766348730614536719187014858414278119468448376099511361175244090081971112296387123486965745157351788290259355414060924117720399856919852104054443927735100887395418751054469223385112671426611236403218399201278104128458111175388313397954761904655107342008827058316639331710617715302214388392764049447624694670645766027985443604055620404433470337587758985953140367035480497164828322204484688228516859542092930873513674711330563042471656382618074678950883297828988632667893157592635955159515579388194412653279361093813625998479773948913075539174821470775261673084480682514923888926005133486306683238590777775202155046060898471427975170039806800975070163714737420604438908637682881209117846800618897398507462561092263078377889699551109832186547286583187258895478825103285026061782728895589020746981974006931411535645270395243119706589579060217348674183567265483793925102374024478035600265042464761454562917164270395427033800445035284329066404478878135235605278777692434538400396613452775422140782229402200254998331779754231874543060307153597505001342032121429466968347567535388903488525573298325870796282332675829872540325753326835319291259850289590649650373103397099958253556085417878078163213113589058892155696747142439990881120192878252272198967957310499125306709413997858153030282997158004664598624935905186434636432465780616808013952779824141510653046510265009506051627519728510598274598574967190391484479338182208780554945047476819715869779765265187751220050869453550892058350314667380817028559347906272919635826674803592005481682102562388672058923089150233030548449361157511933350166501869529345221579374450534197843106942500040260247722473361415848603037851440752836264825478423737941584213709641012089391576033816921398453894966234498729679261530413234889164853914010582435322084113362587351714660299375446234760902678375163605008706607261487073876603049664324689890245931821433556461255585183532338957203603006016939732101662221681937335145355166108869737808593641745586575683371815072661696991512717529993531950925553656851613037006458266671010116930324535947447027151264541628140646837881147602467388217843053517695557197586439706489871808819898712391043098602881481186172048879584128484649068408761609113679688285317653622949605387494779073807689971508877860747262067330442784016007872306542425826726372712671526387108799740139052288951526161390992538889748444878274118607846903285906497344623216105496341548195415469710305275683383519199402185836629574570162435417988278969186579532131847331526494095035766035606831170273157886063639987712598753373771632790580654444657068400879271910120805192510752775416164741439856857283959539773662487615984919166726027922829376226020346653639988252799170486200368494449824545617919400754721131756497887480108138185737911859654162132747583951883580865121990919530611522451249019798155716007607557253109406777545949521304614585957201594934873924549449099895108861658109764566799908721023884516937455847018737835947328567614035532816045578432122033702276696627796922246236261319535228196848882678019849472683489767824209376345155497221495897813478587551367431710836935210779321312936395769964459058134122010236841230889591810268654605893628718531245491674953063054691737460421665229070680687915890281129569097481237587198375132711046797657936443302247872538387780829231759818049248170728738299568038622108488074729767440048273418745502329413257576511153413465508696484654641756375439695683574045452474936873626268566776868217993495879056419503800158346967152250531663813681209089299624878426036322816229034459854450148901075326337930495735469430211020101284538097242965468449268433547665967046406939284018006521835994583327551231111743377694081950787493816026266147218061028611226255346455041432406433436288204835250726033170159022841931637481489103686861764455362291016584947102848301267290346682590796187085849895349878332767093630721676723553447349795198429426284695952547000923995939469259139872805074034818185555109535966950880530739409083320894747359558038242451878384697772558470238330979835300105304703406898349029372508643229638659385801056017449516620855452354359634193319634557397741201830610595638354167006124209792100969166912797269986461956758941558579811726778597272811516160513212271628984202774676578573460240833592786371500122559303459298313435861876862687727490466774739358569443563424649615111861768144116372010492289942880917561303124216839795583892978564262402475213893960150399735219419434801729708685720410259532916574690086827578307714966143857396733541422744569095550823978296420162833168138789757352265852684816340536949853969551129098479632824012686597414720016569000144343681082197387757627222733963432522294716876989162288280568597268495731834316812889815007399490216749499566061452350237233032079005400737064796484566549696363092814407007320190409883277753705637775040766862595087511699339679183209843872910893586316809921144033029131848932351927587421195848314357006127349538822187093681182930975790706939062783099473820427124429971617755048601166871517769038305328538394715700889523511173085325585645210368051153226699028404697068118498858349494352291991379786138194199987853581576356355441194799711293099675994182700671765673985705745556623660571901101563171180771364788552268158523657336849683872711810680792308289015879438344896336620803284005332216658680304759164320562093317438277789276963897269435093959839755387163909171279387610094530540000312632101883546849959433877170308472115289667154050371320124887567964069183790985359096338926376030200231429238719405865794342513506811503909798702286652195606653266389578973338818394401576078697196701169374854037762064564869234745070032920271697825364653628197542536477108433491737295798099358671315312114407571389105398436506158930716644718868485113820872985559147300127173805672508719194416949414220895151467967014615071075769200657217804612708732497717338293604390734184753616974270284893872269011700507295316588673721562783883015278237391258111220910350063386179086462355325333178024139034553294014854838164879386903848649556612282044956274769708885642569707206859548813128791412791529600054561102558747577203621773261946329460718340909583944201605716924300778177403044809178840493515625728378735508604054180761372311597700341388668847744067407198867098391275251585281142792121394612837095824695802838966797031705924868788818252490460520481929309867011408118862603457057311801609454745312003123069738376062391850708827258808150954351693618509786284316699630075505464292500562057614683458584972972842239878249800082976720266312191397538277499652139564497454104240455891665789417176516671595475806689053056074545377284193371027210802963425037779653864841603851630172264753616930002807020919398143902576744194730353201494741001033653254442726743375652934287968457987177939876631864013585429097850059656474989457115919583056772709001848892843109253846176496538662709589885884893181328798797675430094961756615360286111028616281857089180975379861973181498379192832999317706093603746944533705297298978618029978282632286948356412257857692704933994454435734209579002681692225421737278771457289119597611175556209241473358601501528628712518086849550457488594196847419820897576414331339875956632695699404514384805632706774981732681833346482227316787541959894168796721777956182722515914612159593876277640185105203255579209363773647830413363978662845091661642024505120007449275564556879051560760448687578168100245199711670176525496831066870680979922918026475178448510784678737810000779474921762525578571944700004244728748237418086881964820252942954116438254510216134253966002058243860717423927618017247030079447965310093092877154850832369228683458894401379763642684644635885119285217076181113783988041508920207321496738869115654208420611806103775681664628280601192465566510294385179815780543120750026102359226496248726940279171383092550433237529655223982050295809840720757672456406589413929920975865076233701303504436558884375741041572976035138560906238518924860797117825655175160423847055259427352096579755380461827608926412559313244576258687785691246371779873752772792131481144671204110183985252229695327411255391897047817927407323698282641467173138151378707170642899458761422416131686923713633913274492749886002360325981571482662067670984173725989876029972292508681717602940952725191907742728916166895214552390307981724928872376583348765914770431118160750755725842414898131497091475660880302626491430134958162426056750430966053179673967893023248329574502906125676516558259998336641587307447945015969832027863988527059431404159516250973905997023689398535440185389402763889322579443659718215037344185473851313802142044195509225828201568654681857297037765619078727047281437469977214903716859458221791663351681582347508405420610678667669808417140005124303352076746512982110449309305607275407342072070891541828015480817339200644754873431604788355474161793964479254906946706605002134056380571761916669367080041314185224331135096601714781786521276984940919341227761404167387521804339388766501379055474785935719731872583693777969670440780102335818683928916553049935891379011982638339075308032746736513997389481068408840181022176880780243474637950550930847788233443431034475473118307105150156807073770903587631826043603171090851007946929474646869316775539737205837221816670469539399751573426702669054038320669226174702515061613231794373302159696002360280997976961179798531595416859301517346212783508086129573208675870711603124180536608860565570874185227431811267099274108982684474758005710640598899007895663959845684435443517195330955931096325911096948631771586880762630771057088294841619380392453123034424605946016715673407749674869872696479347790609657643502922834409999948847295823323444735120688366023140927786629130288655867878002699263776696772028897001598474656508284525754809348023408319141586963678645491240706233458695560634242205604755645481139935598683638741537155976782254640997377002266171350319283330520401991956736244466297294340146482650315434177702734170536204781174094747001665222205949457980486096108857364814947758377512593054022185474862909412887616315870989992985997755837791976453543116345953206201696820529574630994988699425255345264511770073631363380506005180849738379260577661442140401506695855186539579120450841242011193992050001207220318894504650073714396107504812855454818946510710320145214065588970507624533685476850955280591020065481028248938139012117345535059364732700995632126269804487474068275827127337641117944282110974482239638329400724271417542707302537335037144412236641815869694875678169820656093300149146362639474054625652864096968996026446194433336200224557992426312572235000070992126142901897327115032880599095184507621734106571966362741571830759945801098099662732016636708679425679772063949632958805090606361494248101319075568830589608721955225957216546806882563788294320603094921287431918483196057255008320808049980939663790982546470797894415338292417929430289524638691979050650227340903801826058515834037377674329608359821361638621587413243064600231283618423132742002936607418648377847774820483594670300672013189900473705454353507795540186293349279982895858426013953563221004332207644747004496982671417584079234435972109938105397150940127343831320301851354871092414470592165671059457762474083216126977777114180296611016622100004390092102938869767865144320507676202847271062626276500123982787221264092788250804083654350421831288664574754028061260348713369815313675373493781922347763716665398630860808438321540493423591830805102474816469375997217975740744936788280647969496871016182483481731762133750999788006188633447173937393522023429851993948197154359213621127225394976182129766817770433826942973794673102463386009460021409147711916108340608270386737683282841974334599392894640670634048956679515156416597695028514260485643708996447108164130674575617568477391885907413519836669863798205650843002170582883684691957287996543486446264337765438434091997740336336163023176059238440984419477616025851070423629788441861701673181030680962974512034255808132346809870343871803630175192950059099949112964745849676479846699510075402800675343041799920025513974419959049465663493437276237456912320499352164948880650610847923919152290067206183540705560611681745129841812478382772196406685260253464098682213410354638572992868830527162232540379353039533049423467990701046051195890464074757814588908681933162755724970205820325505127216884472819538191319856103344833222428094759287438990889314107094107626796247404751800401412401219423188814400975930866335656735808566693971654251411350550372526888142320073058808600907249244842413990310987249031452450729988288091405789249989548344627741266109887607665629699540004147256998587077709730420760032552363214968311537486487941789737494269878887465691944283221037742104197502660695716760075387961534036477381436518127546836531517293274244310574084947733140632473758996875673511877699605507453435887916943410774455996339324152143843911617200630150947764383922759997628248799436806813882566641058002666248881444411142083886050414995882133194397292052032696890939794286973338264290976995810189372738179693302100032423879300394305241277011390251301781478840645182024039079930826068876820742341076656721148967575613741454788982093167011399900515124348923126743330417563384272192490977521426559376676841779144884961642456774049228462453154816428677979737203301042337818675440828228356816567707227442774450925984070374651088632846072621852668234031437190712607609560914914541140189340973431536350206530236051533035840558366920927318452264058934093015715223845175448611106674547519834105421337706977496048525922781628523838145362860255919075510741271795355063163456873503299826759671831414121214484521841723074557992578924015204669971979630193536166999998448749972677760920113349166481828468405509694594970475049590743999124445843528683640721322144668604167993979803277697889574962031316962411676292507578132568607968823521333974792471810486988133590470679096832743822041354614640079542316092263655015234695155367699492481670883377638194655100267723402824722481310564701792008214831654402183854734547757667038769393497181205487183812681298477267487841853767243964011607561765847155148811080655134597520203598021398453093038882720723886310920807668600339870568042752369427936660330059992428166156743222895439185436021595033786015066037088470478260135356459140855720988867911533999660675514012365690704197235841588312109141835451581006298718436122550603319064762093856741113030619598272943670491519980877760523701513340613988250417574517518977448731643905375684455977263827018943910776036507958808064267441635321218346798397680715411800798933747673474158824604226182645107071833302031315527485150382265085026965662271450941183612241064793981485847617812164239873511687109434489906972341068708250959774637798715896428864571252518140995393892773464950217808790962919398290473971904958632980879419644439523653212676523175721429468036709080849755796685423581826364440261288492218641702987700195862421328962787423392919560430445113643655138421662059069432000819482925404752593545069010164572824368714013535034895216182902603190446652418061921628474285548301116074184792896061528911453827600952217402772878759680067736454563304994803612545086371266571044651346692819596764168592840132139588335674056696649198070947265612726921227571152221764090378699987406945506932639951944830053869942212328595178761981782131980915098316204884867209720796704774199636239648456752262276731140567693443983819025460661248673285487363611989454679311556768561911553889285041665388062326618703157648523936947377616258383233708770266344734617231809400406449609598192834568079100839537190962315034870686032308597560410236395739566772929488647043609848465337144226539572120730243178522391772247196370897688307461404759303386981718604369249188655799248122991705298079158445081336748653392969992234579820488016336240249380362675507014501248178711430420289203051967471122477135519737610874936870916651207079568592049358459623907640239181855197595627685889965167105666552720917616692735849480981740358316790094124725355670116872657338768992004049256444546791322582061470891104263593251496975947958825824105202814055978671723022650298010993184637079476967526370489245230587238348451619475211237954240344785165182007679974166822257177187949004398022010633381456988277799514407156608424331791942508604035108547766400781995941385068699315135020636233077501717688558302204614051400049723006307304984213219736984140004668278063205487360644828853460242181603364985477951584466894942071087556882717948976209178294256641169547206901716696243265091466641914645477046844347096385576098172617250095259188093295540780828303040484476708884775642803266943461748764088667534694517964678825742166880260573452902650965660294631220211222061270319953078543020425114443937675161487500183795486914884751859350803132062895424253821407911372546287558586491030899958390025793185055380928949977338226659436621336733072763737123930711779471377446385230544935036528611389638419232641887720209144838838743745021697575500092957119475362591778592026802510730947066877096512185195481125536604648745507804733835851966355379992291090971528587121981601873849757666871403052867146825288093807361129533823834694103493150344106664422936382030565913605175651735676401520018975239841886295329626876937375582813093189628021787511943576029719812629007974529586275638941035608600541438374745890723060914217446471891795071509935851883290851832993199059806842243483239076324739791798185690622435317555754352013135368677583962720246560607612090435376703887252017282799647945519044548044506360422749592143210742651525337399829161462815852499423187383132663616963072397193254079047924016125461214980142644592622316545087580055606597280177024723390687677968741805935989730564107695181323254657042256522010271925847663042969292030087197526441138277263595881507942560844422392606471511888214117841717168302420260201559963996258556485753833903442581258304942834808891665886586336864697022009674371808055773480703964134889170677099642522770982639464902298811241309776399576626897937257104310732493849905720477021270242801015299628061201649634811103262102499949345214683854575517118885247470131863464602364707586051018692364466812133305883558349789944419594466269643611889925317833189008556455840524601544075034307333007277144314258881131373427341521883437085073466283082719162362518535730697486381246504720179011178351558281584990015097301587903348034282452114902420120251281705093406377510874009740772568837540988016977878254168630552459302676598663931582458342288666314622526256699614852065714195376880229299573274134123418018104354943460088454764086918176327250254511585947381550771323640269196562828185060051844191605462302669129048614551078475792908548653586904221471839350505024432448262578441764562497217949264459282624978086488147888091793840558882022948007731411207699155911726842140033388372860990336268729073666992447004252266965264190453184973662936245597372159269836561501960953187689580150531076574507434901564557403811153538233782413544956185475907156202449242235907706644701449613718177447394417169799809723117326520148223451224570708074148801943810851061098762370032298264169581412447086608214887967953229290427950465876496540107264086178816113102217759739889364728736775707852087048599321457524782673817705295759578510768565069690820050120188176100003060952406930579944809115038942018977065789022451893585080485854795896176257178815147606448472984531318765410573464895130568473365446601999903244881831653835760579056169577305598642055331692036100307501344959868110942847486856632763057205402796546811087072209141191707556143647444726198828533223036664796698975397625573252079484319908625966067680943763568505773718303212748042724452089758553080633218087046096785429680287575997366471703029654258476669114947499095894398518961896554871057803632248988052820886328775855164987967204328030502050552206698307177208509545204102531459427790832434843784910635232089053946530444771732811545277390883834134785474986262901267714738363551538033718406981748156243385291256994659433968743456102830973910713532445084258603131990269038316900187458984830728838318899828505359224052879461053093044405431262356830471472436326455840549867968802179103824069861953139689006460331883760547924424513874761472489755234236937354288846537409076427972680363454586103610622842545258428232923379395480578724040950230743579149045216985511446209029355144721514694868053979839879393736388900197826609991546036474171170255342090552468456917806118842391064369084607651791822013586179586890634533708574426440195614417067746421394013437085380871983726406810389150193358487335803083269291575215932547640173056914511459135601674087990059074673488734103177867988760953190212477335548190197045905388839273666025808153417331391181404363458146287844088910671809337784394570515223213219659074496366357849309892398138554005764600523698667332566027626249069663506122658113800366251401819272929130939955450846626054039594522248466521140309223851535981171258614580266028753299756876981798729931499017013571477349071596940535086765034868583335079098429190719482861747772971146999001396428840138993755731751891663083810769267046259050349809410063115045213575696270712560020203843933178171890732415944923204804331019245358594208274022107205572964578336179847753275568084084039176542770881375676966129411586022092125097825501354118452017323833589921348401534309285803192472615286364527656898994868397242314695232688301485358306325506796532495514123849410155492490101605222727621481345520391140591202488992402348689522213078099552954635624733921578067605237052407573314848134694190697238566566473796136810155062948224961659373345172281233556137073006129879757106808239432297893303077012794739289663582528966490329809665407879385861369124289927871826307426623976469448103277514058450744675684841680578489857592865764786781132908465050109384073410205476444080937510029492088453487312725609172420594119270287130140509951337472082097467639150778612626054584067429518559311583503030824370225501321161372830341557198592393510800122301442492140523062460415571377516304781796657714656550974724831049985125673684225092511333711302144203130053484549884673147125178050252328862087221383889323505774918935983110053084759221749945759470039483421474273922150611817744222803696359529250104509327667523619800054718709031197462407297176864027218096363213025835365899277574983043454212572600316919934141891459248081918017121361855916356524153510472084834735320509915640348661409168509810396952316235026721018831273726540397485081351546642795244007159364163237368581284403356199363025921263361976333718690899368867346745163596765321889590757572389271616884057619548423229986671764700199982643617650249854561874751387823810978640123308886825190364185411366676335231939725999873733626039669238977342231536162759273474962753485058503506330312293638157378005874265548188538963705496887029534724925954739204933585666702374402617517007965190266991736971981299411720495829018196265870419576299663141776913506979721632631801005577899252410081202883341006384969051608532908513656154525191590697998065130022269015094832481786079633870873191627704081622436815739922398468117345007843755051191411353664648869560630074810618328143541586117776477918822758401332957824559076034507299828047513424422824307850184834077933534053400748194254922775339586584920362186611675204803893992281592740939892714904944882987791573099981730244105958100485609483320651681762588983980481631262985007594434965200969924542974887283644947092384449336067847364910029047291631661727744920487738203374012414693049874856122879074075177463532102073491450709705138665147954878424805492719869609665819471766998164629919070259427105804470587781985817599130812908605093412440857249347410629604428728528488128431195559651399732232506028476734988132171658738190719494298038030464276364336801752497103153829946185391723309676793969800454250933371045598220577464958721002008123175091684775234639608116590095667866049794223246224396481777323438614001604398237159690940048161905173191822783008432395755726598953348118317993181075419902595219833124665921522178553619715520305116247486447053479135499092222907615826643615801896466590867232218126913117502606054484627087622522346861186244366937231157448783868821890023103358125348145580003722958549366073175669661026887154904379862610409917994056793796287580211437079535398599249556576839427213104377945742151269420693291565162340488795276290673547605804658138526389250833264700464626560032129405874859319635526199786124628041014852672902382244968435791680946476665783598090938453857427140888813936367683165256604780578266480805750590930391330103823393494650877496943461098581457461403498593027314546670956981897304232946117728790974741721019066607799243749003365035709867127987334193049700099756492489110964992522098278217449947515446642108701856926992413607588864103855317510870976780497913405473208275968387537571518753362691077198823078285985492906393899758419757360100466498487923024710747188079024387227881140292485466953934546322164510299456913100626247622197326560563239702635316955208646831405561937173056952388767045723248008706606953056045740853161245358463886997111447294037386830319954602891233691984199747069552297517393327289290641166526357293808341268956072042407467380161545050541209036742470194632500241021444770434172489025541102559111766982629657294161152491687748551008816774472251794722796790770610444824637689850488075860358498463071668910544646146916388898369120193449638942523764365655108879158577850166261453131496035264234301775518220166366939450713773589647110376298752571483779841371111345017336067452274753992898093480547669809811823299637800371218327376941396809901794942669028106872227516555166171367962622963902486538060806165007856267821940917977178540450212410386484028953582591932015151946614176611881318836524439141985098071388583079367376607361750888149085973314851152504799814554624739835834425862646169257985397659105187326086234925582588053485804163469512720011969550985907831249462179940264833009749073953305008494133062054250707942437981663125558993005040088831596647835917067882326452493472480290383799703720208072942789245502799970002102562619597893634967873884263867242892087365548468026905741356972487593585965436645800158786966930164703624559974154933672700730552031423011304192339067838509686974875957935611825678965302194639775752202721427456282718991679000991806812673628163855551613807037945446864655653316633644562216447764333039351392635967565207930667271776843722384100279175498830800059377082575224389502200795581934362996939978025500565078878436686031295174490037364773160286628027585654891956052642683078016723178929667181949926565436469390885605736069877574848654176576305367613391704765348489972199908987506036948444102680573662758239602952684487964413233312438478493286798582196652445654206834655873450948805856802043677114026678171147914260012335269533164323725883566675322087580959294862670177083399261572227268815233792686510658997064538616055229727762319682600085419104084614468821798662104918154371331498211644233589061544474249864444188532797642976797030510809171585672279781315878664636546366392964328142832256149944588415744805889234445180810454274702746858521844572155672706504870741596872146496428999097819948202466716909679156063511841001425963329489677706653718516189872053077265321777820761757315418616643261447703146486532576430671955371012916357023115026875894696438550716935466329283850396624858576860804651672068496583342647541407118682961900402549567601597790013590923789128174437408877859892484660702191682559789368135764354681194173609710601860387747160657999732221301020861415425254543263996531927410288034593910448204881925118045214532431444344874964971432028123742820685116135056993608205447785006311891239313697351407684910681428384206313980818830324408284612336667898279890361232721288961432277521109018583687233964861828363220702367888643198776557982328027485906030850269736315766065244633162407989520678259953960277047786865770884603221600116014635196123901621688400233967600667598023740020180695561220112010584656240123684950070337831654625485500557567420431613735838685662179863990956351666099211067672245829304940246634767422555998314809414898149780716482290686974535254367613759187365461253173980313636059402122060546853473950867461497857533284026511376744085544822855996117202597147678305502742367050452203810326574715109557503779813569171399373929086364770321031439684341288665281986343409076113583187857820068024662967067926998724217997347130208310428413700692992166160707308281374389277324747236511856932054035941436461102114782900009632590798429446436618870746838742111110842743502275596405618506424986091301762655231787626840187505855445958115361037133975181481045457578551807083345503411365293512088745095890625052057720088080501345420465787833115495635512637187471289659622928573598372249422219536828612855358154770225265261072214978519486302641609471228034407373114180825653108655379978792011729694812942000155880384844068032575174770236237378009489457568088548504682643585769217130108529012047395733985809397965449220072578909499619934475947731743905411772507755767968094258537089420066077126182494925650833759562037560684715205199013303979914670060605732704776192075109914156013566468245338983974477871336732607941810096522150702902405113035861973601089409865480473703751031190008752813415584752007496193563169866155931330059588733881918957234069942819547479610455329796136525705782023684311395681917939606060880668251384724737925963517350723720788368500676387287912363444086913653793986102597260435577444807087878596181685220322641795286808046170429793669187580658669082214417085900152929630957822109369205333634686620546607145162263457103126886054203878981767477186905747111780106313536878977562621052866793051930159246749643968087061472386631188902718960618505811078556451019679683807003140129115646191324997491600362386000392769825135318011369819561761314602997881946619467594939060004123807426925789520180450340086397227838910215778310703957584422971020764868795217274505241827531537693916183505912551348465745217310447735049675224498602912281648433146997504136174678090043914999872196063036782735815132042771232191521999195289945445183819679837196271785605001839086429464815505184366357630145605602473520298562883750039845148398883597837213593753063716488314932797422583629920374589021042018059797600579678252922362568493815999891363192099360949410316121157008902973490192647360119120333761857916161344285873789664821191013580703189218821087529892873632748315234459461468021680629184655053840950990344914792532745495507667649186747611851726702237510771354158429890350972229856922129460277002504372292000338570245874258281971430258122261774721521885517570550740797567667231587777563384397810157615303847114660548924424861910066553398628914537665714380457198705563734355995329726529191935222006212427466170767033515393543788950220743102302732600884659280619232385735575612190664750697693865960594675317600154185821972921102897166571936964439955535876448722145651619399550823306541841671195599514447812815178837954986703438196044195985809369017049745528541982243856442514977553949934587024610182505848487526235127784688858880787047935628952435666270435496916696208627459149802504562521340435812008929166374898364413548157566091798659121158808580788966522989806584203048604584230066097448187609301163880057340230897885023700460118371682272287186336144848002573723560725113785442109885359250713616323446207131686764712367868918993390174056844489225721417535118647361631745631240221619108939799418167557250643950357883271015782423471585396540855941805342775059492188887258919113036538696312968521370146970769104468936081242255837620357042943471087712729046795932876455945989813166660876580932479181160983780656837400190949615351535694984564048867010934812400155886263672725380438802262406824478151818739864767918071319661653876959901950698272371480332752503326740070005591110875111987386336139114658227852071430193485349300370916163738913380063549895875622528734204825827373883121456075009023087174183158338659089979892003162212575388578985948627226606168469674335573354261967297506242875344030769084047282726073969241086708432926586140921698014746728979093057801005826310096855255157891473861022391765425434868320660787078763538494547720941256736154074195474960185032063271885941148891086806341121218323875373107601851815116123658810033408489107373530965000000050541296862235592459504187425557279419782825732666141125624470409762702730738405627509197195602819650551799940664530963962773338649710671175513562557529386683104464293189942353152028338030829480643292794792739242559291149453611507653822248079302799251544052526092148711873095995953348594543480862215822987339172096259892814962423653855079691240331194610089714537541013878407398914362818752528607453898221254270607548028760825418528261789289569720842250435668228674094021742188844800888066163288905673346374089646184563855441583890679173416212606787507038771606016649477689822064973657943641085548782442394890377698465525534861507232279111642429895631411896690329646803875450684818666242304778732789757641588454175828009427687388130584069514316925580223550373658569516983332756050999748185848352750831199235903422641116374712591771997911584972473681236748901929054038749644421570507728375523244182754278902505583086113095308717842173787875124557497626600825096206106539400012601100566725595439579513371556195019314400109211278592195290682079785101306773235444343672808024298058756230427703932494659946415335525416676546613735929919515033236837459631785673464167729982273514159591047371305998775072586293959528017112226740374898351189817132922721003663589521661106144931156046714383174157304543672018655762849797330117638873558046522262681220905039017482852736212078233163807786957106356595974681508203973477465100861033421182442937951232478222495785165461496396028180163167943610757679618938908545578848073105702980331606509430709164357267394284278998737877017792679505937006303144547207880354825672657081425114276070057683805225231750042022864726671416625822855866737452943279283847277496051682791121634809011060469979248033051411847276100043843063482397426225789655598098119986350823392963604365824097501323802625242479570974385314310637012773949921065606197924091594144531504799376763089493933542554267436518201813465978645878917247438419963950592675610739397251250997839793269995584423264763529895521329086190292327288320042623429335366827564275375242295445767406333796166616112862477936031650945594453257586742833486910934912370213506374596013570610553983197330266549957595791496256933253041004392377239687524888810921434582325728856540854454684661359474148102119757357444739101237864721582996331860869927620159724199034570992806904963944792723189835967857546279585966569370792715061876789738755408944839114660749653714500332710404898133365907105814482952183343992306425519540951787930166529236540375583888326476800002268680952536777966690182189787654998714124852199620684822084597986234315941261995606808266361044196599064840790388692006784385004856275779630318989692976347998710953128178092832998298648310572257955487525833955341864035757014551389586705520753052443722750557485544018707946239237359792213633529258124722068331792032233198900130606218016450839615075448826417421777713124225947849537413621873913799284001436918919606957419230128824376236048262384274018013991612924477307559894117058401238579922700715034766509660665185989764038619055115406058135023147161358606968149966707951931141263111566309825517961826099859633465569527722917590030234222633454522880920619261176720069850576560368477065025186858615901997089471157933256848840941904326283370055806054613738236045210188638389931361366086934934373154437226270887466714065672633654973224230414650197172222565557612813397993674599057640910017731294655458539162636562568022174767504963901438049804963700780142855549371173726887202619138478069587197539848696855064488308321931927913085213379443124706987141168624555608782702775602473446748846898141804446633657724187490950875333892666893242570601100175104523540825842786283217646818213240571066702838038718092413034355331581316248041117218549117735064022605247824279235417204670885039919522019652185391018524137075805786787509116122370629978316854131854245773363330119489949408503310980653820493184139967228711905202989795670728867884521682429860642249379594808275125078560343431375659875855404381305452584030682904265696986950012573098944369480248909827235617459601310643084040101660676692387235284891507891471221889759207375866067627914142513316184195120061828143516321463128211124252142356466277618694928834248768382143079625970111871270265731140781138502189547154683895808136263059180219332933523680566328462587091784520559505568320400394767224833016996131691408726898707937191657554271828106944216440270019526551098362783716214291659223204567951067846502716006987571211626854521352383457510850243661752345876036227127176506712918600230249716533429851262593522318302013150153871366339208795650064486044185828424105578295916446682005173929807292997178584172083676870380577606020316864959342890577162754576305250016323016198080439539341088641999243719270605507916575331356680488977973035380630952444331532014742649664396998433167551473359341099043071366639421456136666341414295758056901592048215139716218782707032405415578454363048182951950315987809520977703599649733626654743960092660293742588722827525022274838549001458823144394218777427052056723728485593209661112509148488629763947663674653997044949572541444286670195798141278665097927831103141869595280539376204321805245256997772128059458396709729033635170956086834411588529328090259841425736869585625407449611764049266068305223061048287849461301978498740211099368052605831682447344493274145125097205365083219318918820334392245291390817722227195167101603376186390739911638384753127051437301427056854726439102666004978149400457771865454246968534120624014687128571254643229910822425465898239844914791943283874667431279476548502652209928849224504896369751804422832644034810899380085530246675593890988521867949963293005730188450046364596659502145503727428133199918842190686520694088718098656989373019819118345043491827861353970230196853615764291662759487657072520116909326664876486409426716939946359752846937422532413754399745748865487373405927444387164460036970393482894307243762889473663398092662008174280142298808019892403982530783106411116044438064631321190667155156504829373388710564054741765248443244484374355710937458319140637639698078198149468926767724232842235364135131462573804796621182178118513172146222237801228235028181611940604920027971557249619441241235754420591312938911255314900712391635079382341895383216474636732835691134593914964593592538974555361132702534194811910118381398704315805099940038034158846651148180450550223183920453857536397634602901772736152924002480884308553654315004800558621469744827384476483554668979580613277462330007376797009875545793368179143429734036931317676049523818697494827810745781030511609728486947025468837261188789526685739202929139211704778582399216479454786943253325563454268125027531400390164033523848812533989859357536392386490575661215400768361581536417900566274005389027727086035140639764344593559517825633310469859629882331872543053879554585659577346259860073158846881345286261693662283334086609376344588960999652956306266466224568158881386530595709632294348087261572033180891151314165924954816987047446206323729328172860029431769254611164142432776081175659561267695937030666106729533956305549046726531092630658789832272824245521669999509748430744163230933907939161331632670128176656699405671611742848271170681838230266993807539676764327242145154323574575782294802311757918426927899111916046885469801171974759677987159711505685585635965116939804580532448227862994852622161706133976001182042287419524402777963542557917927451136143290305157690914696673289034334202890228843492362426355302819851860012431084984909229369032952156301144060851948436249203480460417789763909888378777703218729505693098448502831349463030268513021103767221524969561572060213410341043358251976248606603815663507320373185709488486318180323423827591183611949342775513219805665630617363255790691046092409609384876654207040260796596801586717280130896948630364105384580938327049254898609030813379933367016554189242997305787606156400881740958209785467372529449716839163005388591862370626333838863834766102817575821523800660271852642549023835381645071748334732602370981134927640361799524371935202714888456783978702782942379109081589161253710904283970295106473602021630030387472600646614856080748929520329655730771247605954058707420414934940338839234558806313317991581909803513935594912142447716491332364215766229195098083295121477373457932430338499194892829921428265208332247220349035617314460916146050755618925521846394785851669139277455890838003204423213441593872551460216429888991060456322924262635773826361737684704355909549995379316406651253600023959719825403062213531784344529960913160251421159698758701177291917636007989905157494602295184700812549027910697688100688280416543337785040601372097070975305405045095186366407184596663950858790215247773212559958226249082550436625298325079225145806993673398014905786802388970328880855803831203465582671415992899109020369227282627205550607157333704282113384849989183273249454505896179917918945509255644643351883219615323264609432738567990504366426182886193528487702859985933705167225640436628901294674146866776549503109646744373970762419468123132869887222386412567778213134518995672971015487353489616895373946907681644962079342912834801341523267796934942251563870192251531483234174322080345586171826552388704535925264602976136729537161451786583363509324559948427487212932819685548612452671953176970255382986530281268695004989308661388233323713025880231278140179521753587985505090097008000192252438832363111434052821652944890793027761689763123683905998111168379569241684793405849392294914318326387187512496330378600319775792771118509354174478513391682030519771866609801288693168411592207411678959863572787644578613485996513520105020619794669141038231548838828493661915632362710291474949908796016651128890532756045967859727462407331188753236805167077788882900541115454423524923459406689801434819087879421689841183299892664118250572472348527824592624368570158865569703054250301838433934604248656852364785889866255870188444742464039354135252235822438052704309758571956509035818518618600526007239474131818957333740306892369495514413887064850478429915228087478629513271161008091135510282908705085764910588047431162641997917659024119900521458375940391233930101210309022139856174217166431497388309439200671176365937500437113824990344146909606433293441130048347988196148431548334350881201428181512441349674308891205346619426525684918514156522710819040276090318233118532711042218580566747641843472857611186982016925036367263714256854191941697960557148695118988349390351789258872501162203026732487325079195067883827276164382699338002205312918249153319334326383672685232472525402326242110379887085792409497514987355851574218986918602744554019010953551040896392988485393256137032032773660073336492114475467526044227679495692429337665918691219369806509579734830635680160638713105923881078202780056747551923211866813441054510877135849694632353314254549951702989937378822740726597906174502334208571628792595156497533137224191270972712383761854889646947823779794567544723900548387799698001134804970274859835291685307209503659688576180234168486712477155424214558638994304677963435897220966805032785563807214409571156481382427396433390925494090176131517871084252513748321359135068384662296092061462070175341113597544788251600533880117672126729432592376744193410392276787333395789231020691006401311488124067691723753072385594490095777055580441346502880705133667095850925246353432633501669539208484710843913085251550404637151427567153748645300605286028822132160937723498940748960817171247335736120935289365646513951432994579701617179400108276126358781481889398378006506452668032406568637046765057631929380029823587697237198038121909923797661471430211130928421562984721161180987755415370494063016573206096345513956735562195995003061090985851007744367713402127314227285137581724913811128621627199925648554979103306935786011565438157727931636492193081991891230613713910446309640838565132738140771057664197237780881400407452759718255795368634855374713787625970838862168470595328170980270214896446711614790035987293265437419379044561232803648759737773505552106478697391123923875358745888868681079906570606527629928827649549840837405079862609435599394688398223160455531159867091330681581450947880877591146103373593991407296446998952736727187924277527409178030809379071220317789596475405864966904519860470393121578995605012659680489579128452762362032982078709119580085272771680754778808195730147491017718101005458015352457684435403580704534557038707183190134520623269268773847481135714422188661191479729881687980726514438579037109862092673226065800841778601045582333292688011276356086823074772505236249244770873177791567876133999995283881448527593797449906791915859703440172500467821146519467385563946755006435018333170563559087162148478567303731129956928566650649129731428415997013686648289200729097724331240618229600361977273299996322550258229783229643777023774591636886494763459701963684643717347196591570475508728738748965819928876439901923121444649767812659899627750050762789178683942984550894638816952591105579281903182315123328245610136047372905130603807812037831817704601484461116611745431656867026241776621453847391404092922500662835804978712342850758177683983601972830685392335217373382281795271975632145188995681942047436333475621590508733160137842429744801604258010738261275701721599803775113634914352828806943003438576252180001663689194618809182150514832821163815412556822238529492111095900912153423384874519074163597163718350821648769087163435221027941555414619709172963983125827366883715324663199503749975523836813623700324592060334318499397507905127600386851102942300505352841651302308452323384005440434027994793615590029161504670044628957809553047162612186557004468962495484220992420228922420825625925677028460322790019288738017300858872488746759335916665261500790326589103671402015558262746954170128665554187125895173626353187270578487610542711556411161458679570971223554744043864602991228794955444978018806764286705934859244422025202317935991633627320196905029452209897550253075724710790539849917950455566249087123604171964081996045674998887858582152223333835091708917792185592141534574001213302316375572892372616159584404235520123915984859945830382902156394606506916813571934724176226744991699898383881060760461252898347587472269221835279721671490411280953507186454157755575503240563196958499084802896167328539992537386338787202077711849656786790695474076029569829258704912596742285615054165581292289127070095035279035946103205064359271024786674118037152581763901830571637499416951886247612256593293115769661050901802412768979670011776914011182936648281531173526397070722639709027045312007556021030859050467076807900426696994009795603108674570598064864999598222854747006776999826404357320674768222591597128569980618546382949542282343663694435741813277247168179346728104128402392942182886218936622515479006469632988385636879943272552473411525859013521362480637700399721589576614171352196055598736359798024635788075355480428063331603552460740700652009630441626346064335907416627415981518637062440190135168921940331072826383516798939526828538748781633505789423148270135555879400279151410670403229393283526670008549679425218393778424554140964061468463068853560586122678374240468570813504103510071698498703587495703615112869103722024525358376552266778159564224823258124934968618091864286212581027062501851602934448017509322042466792949987758812918797326111781534441956945857720968817146331540577666842797333804860731744397127541330823962205858750145651278797070799897380105129728845044951076191426453852256450521128365667367063966958829988875538025248880951254414185787882056482895075517863509112908444959214206562134998010963127252379396442000076949949918448742415280077797809597933572100517686576444761378222458598638977251288409214953671147617434928671592568618840786862556396841540765387848197683503961545492636826956453806097544304814166857575734291615850774923041234692715873353039613570361152072987861270116631159214826551548840310660280468415645563136040196401112599590252610992580121381865642075027855134769650188906112214491258627573535030812769878576155875344978954153544688727373611093664552516836127718624187419214532770144632559784950367693177217411957571376015414101507455376370106528095536972221573863825098009881103932911963288774559901026205842124047115748281665426558737478137508478518584859533081269343019963539116395930350436651764045629585650895287952294879507459305090711014306046806334129628952093055745745770452721751130741260959963613812153897044926186639237695318391164746076244878656634799671682490833008507686988273456279058171484674625352068638630367709893155413539895866748356430618597773015896911595422078859731818327908570397589468496749227849256108496600780218701367644171377296918639716029519726552312994234104864478846473697847943164861243956201140465793634170375276811695561107974587171964166178738973550236840800519562334580952084811598143042106466222858932283305964374601202225486494301396414444287565295562211335389386581860497869910851307895120350744533216368839001620871008238649400410001942332930409108727572452287700836644522004184716190908409739535658261369587607015399029057785355699879405810059578623157890774019038416829675393976534695463279238785060721767248187930783804801583087948692803488454961138445144144497085130269768936228847613882049447194960588882191827108469346180318467294519737986275214805542663103889976123278671268464807741327091837051120540729811765995341158871844262291720955319147846277167267507432542099300498159088350686607303113958931511735088794869010844651880090978699824780250080493178953147615000158956516294090129806471841021480961203502183935442604962860220247390769674812555149562829718703074292188785109579487494024783308612453135662435153708260684397479450267352321986990995413224589159344548449372315617724866841123118849040620875066388211754504283391797057512948508293454561733486148449082782351655428668392676781355818972664285564662515015926481194260159472570988298481363856006044111341837045709908118104866163773315292684299367625925031432098791126454646213600476191434755286578833755111330107016898656584810449925208714833190265675661806269822694369738874463674406878237167366738949402351951899295562167853838664007238024766034353657464470182452836168550464669274730854464903404617149541478565998701019954975455671615379655885507739489004089676959183724840048256264049866168246171302478481771192257707165392730672690547084145552101264039785699316762860046232369879283376676380291977434298003941191539928778546015179036437815324285516403984523132739270018803774999004489606922980997061101834496297904082913451073290092932292154764875141935751342732706998090698720638195658379031572088550675281138377287139116746859182318683953111104693677620433500231997456151525895381862788588117393504006687432886624855364267227554991394393318178591416547380695136859498322061538180113798949296955545024213451061444223877713023258276814429483866775763379001800096625186230157047342290330315037194990132047399425275446970634438737527424467294000466094390992981351951304847658056108232009378746094368020891703982226092464904905430586008214793207956895606207392419467170982642026759798299367099148388976571139369289569263389195633523146797328627805601645501193932161030095014694272910789861223943004820910315811205851133399716600158110541225109054412490444055630939289283320445963635944636653387393484823827567840981745621352318203049391344913153448976962629902791431955930706856567418570657082411743545975525501098557009345059006807745987697011152335883421271104528529529849641132259635799837002602876501094356384216630540096869249310078539518409872184508665246714934070279118595549700736227245824171751760364916758353858447473681604570578318057139021535026650939077769431434646035160873087416480718107474204158789954592970173010526148148584146300497469949029908841166519102277422495603340362884334696820958444547197589927897985980426572021051423990207951310178929365353064310786782846302443173764169730063709846080530380293823180593009927472219797355194596267214144489485812586777137833681409889912587056954952658435223122446111498192381786774622151991531930946688639645246581388095790457799770302016246341904623210877520340566709114126779227276832199268924692641036549921581289499748768415585507919858102316561650309722038400057897749633659631798953404369589103179539216783169332304158760809632737514238338313534202225429641593398276540674299246449520587059994283945080545048246715503870591579992103318715934541025331551360698511454801931711995674843426943207981693813570724847854683623533220560878023247516043475278546391009473708166357705067814987459567589780677177575730372321290252927013874927551472494083268430978319431481886662773845737553207872365329075682783837200495778153475007942365742554974209156201434364431592649205483381790753989569660317480272546130530305813882813747175649960357811900669357014962106330772224966262813511718445935869962760952127364266309023364630537080244893460532340292247954858825437764049925728960950009908279326025551489571597902835691387887259384374436959649203203373398283379341073559952411724366233156564091396035399063058401227344491674853674381336888156471394604950811706864243889528311931881923963582294079627945247406682470431298578118741932113483784407489982849614690973446691762242568782370252634395000396066875768011390984200705834850001520603944158890583041335437262180136233773948126230077228880900692082448214414143177836320574330432043814685979805488297550638451327450024750749642036952055681588871140053328383612661999048303316535409119393546504120626694237771277442475655573423424527710094845193154459327791083126784324009243395749218881141675729249371943457835124677438997751726449398381043079034814096523776516715690510273471174154134980974282351384316819923514385424352943406298962995075633062419476264001856673567339689284163456271741171349031041624670545736531383734616371470243765964952643252690273470123593219018504029827519624943244479953682750683777826726028599879070399317831328944475172004359524426356508538351601512785057098217671181289066600034415900211640548665447156640477900546408927407794738653683794735381974957479537585997238918873769540152404913455384614136291666713340137331326506870310306939052197889371577452615128991048795278953205100627951904458516459308295077610397064022125194592973272306971035795593156879413692128682899592419958576333483980768242544868948204656730973904494648489872663079893793176184074568289101674487970347531625700203184083652321785837873711735640651473117949847114073483391888604891560745873267807823688673999955129448421771312062390992440047294163257133447671508004214861000419819183004750586988869477584642010295804616159469709887429093611879845429086208496527968153480824922973890197534720211634051966427332904941386118387911339160860805596002967627667629576185495524145006348828904106772675748242886490273025153786216912106931421493960628022740624875667573939897327478295616476112831034877639104621624773882963441111575559945883156777844088231210571383587210180864375834844631488864796099338696892701912065043500983172623854604087314906529297719818254431871935521326148832427161127597382858508470445657413972292381092725216157605730729037352797949218767201659744504850379019380964129799905585305910602231284059649569800580253847086012288993972279185795707139333483120185809263391047654385074683370932317872519161273283853870376068567005708123401821078336884414439003699674956855423136348741091370169381159815406217038218093863978776605302210915800263973861245038511783216360030997169913721513831924648103782451744463691961662533179108540473633364547790614751066855987269067987078903798246199731236856029258305331738717736388475683489498516530140964503364043652700013915244607903196280503592816021959304535667102871649686128003931908295238174539470367762362533632450603907257783209704924957623010796605655465971498539478590201263753401065814434297732000249718068791754742997719584506562926211634873396624083740778407781864707009083511236820726658208830323835129252827428614883531536373063395102161254115720117484908145830209939501528140928400755530226516597239111713730142262483239966741772367731000020097040843415212756723331879751359874387108076387921233720657701631233140781602547854547475374406849553128117319451133241082868841642719640716384918498409427716885342259419467409213090402344035952966196741158781104623657927045774062930587023832411072105953569255414496976780378173534766475449796810923872036291133552077026632396474382538743519263432938969041773617722378807690175245474139043365228771362695039370439330873176706028906241740083840971496223273452756382431601725793644283203050945239988839469849285167813115833425733496815997962166650097228689129715917532175091951975104516616754195315020250378180401746448428959310995063816098083554330591083080405590344365863569687492686008043832212587320116007732687624863345216736063237190476851847186746582671808289654282078846369305286464637462893792436426429463168467281554164078702978071120426350758723456718707586952688142839671372043407280565416218710348150450960243990397032781696222968099527365640408930315235545895628149371425279474324031782892910281675283487581250921967205921084477014600198882380930896823340682962153378049335626274188779782745061929354774312218588916237883498363835433802748873158880646041410816795774180115074202659070531414301094871607382026361128623145799914062803162019142895750486607192660949275886777389374683733546644261139692060877422444926428171885336153226715865878166271287412034283662764175781228536721937755039801636281159988666425524050130595692420044043748428103346965406273522079266827073030966707986498041480351085677808183818888076449643358836352925611219798288312196398635327485680611593617074123067683049401505655206369956009252213428732464960301777746740652215987265338595834420439517656646424751397942322029288123218098200204340928144701225783170126103732245988502019896948096704111471002156981437981804834559292320284146926781783681746420823059842553032379157977092343313931681795374080970317978152489560577496707375922363444539625230265815983249562701858230905024387122279138871653669476832415769544710423956818653207095295390767233745496829880109876961349179733561510572516770905273098958374673670124634230889751078975455200287970652939946231418555990582525386292668316477945508636990478704732828985394784355276399802345099980052587454142244212413406122545839567411176045827418531639121655735755050321801262350825113514606627109442675000971789911802839374124713462084224559101433222521752131612933408330922838577947781679400062989465097097644809730882123275492234365646592592880536245212078641166053738433213408488130781842971665789955264320182124848700883872417512383706627898439268872855477886156953745019079092939051531813324622746708595778961871680652328601714079832891818205213475916799055716854240105787073202794620373122930347729984756089965045335196057410486600264064041209052134029325320706327221851362925241976268513793392857585188074608661393819775673465406131878381333133538150332624170958809340803223982436392065779726692860131868055167039248793498744044941022678128588588410956785621104089522727312634282527557106148155841158380026168105306758609041908061053745885483013451966106904735073573703350426393542102959349143347202853696479806946989521047352833822430760612810936236291968989479120933384257621035411965477850009777365140839806239670176754310847608067888002229155741407773796205221033763054343290593234600465039574015718298829232556696052498163307958711801313419359542111943394567396941897436440436682410627509821640448648312723566349504854616534264797038079251087315557987686022243157723574986374283578036982454023265286386976307805890526693699107991833398123327196176585896102762489445380639332624173391652635668876800042681145135850174976211204750980718571345435305368076189345958616886141990992877065933861257862127757782329101916542122984771028719136522787873020745502417334152469706706907259332963053613409664277040346226006041335731658359772671793662313406579886196784276641514952760784113402874786806015872400297342191664117021738650214715218708944045873072149799141193650438682787726844599122567659057975498345847474840247947975138576274302330000034840932407008731742882546686461664204677434418890391885142953727519103302978270298649215411484495806331542311407943322922418794653078742184500037986658267239628097145622581360683880362414199036246196243940295202457163323453019571264516241168995024318346346730194682161325979380369094954432946549531892556426081532567227916888571995317906510557970816468985184191320177692299053731892941839415351406754592721318634058298236517367186352381435759973249844647719404470897744202659061568509275300167157150858722939578257581533669568606605539386872443531493801876026024348181792269656719282285991740894185679604547242205215972948961712519122568492334365172027423782018740943688183718213753839744446735243128350356496173108208382678104507344686042158253412661890102352130556876188783657298751601033986004879233989768425449417235283307897843566175600101577241992128687602618989374038154263210371641510328587079542549798170535786317226485845575668544306017880094426220904862698255536210680657857936638925678214328104710497602870995522631994064608284039568967823026633687057675508884396824912174676419353389190986710509762064184355190187231068127712805569243985227059978859807959650522038134367458867643408037180375622882667429093028890038600799926921227987763159584954408729223422489352291855874944880580254748954071984680362837531176944126888143868049792266656124703801028365477585021188413824524430296214873588273976768272813341974216938219159176288191187272164084622924993178420767532191733045650661889129427137905209157980090729368232277769894623737514043545989795612224229447835166745374695407182897494127720993496780737337724339259470665351948897460286390523358458784017934440850008376761304638089814562443802648019760695010723840955342915358040812042451673388196981689734907859742193469612388399668029932022465369389138205735106397888708834694008550600458382168606311608853225462446402361053175957936402435526946356242099328600677314220186474555926293391946031570257946016157804449213924561806434886947502142457873198587973676048201833938360681114504390060920400456777533919026141515595192149945874019045814901176641062323448882386084716351387927431925126674768058641576544723255122215157849342454893806278564597699980985639924427802309449143285033647192151580629334733203171646795112924075284531373755686594984917398200791240574461751109408730275468492530945004330209444798688073949999256246487916926476873632256020168221386416823479994999044797163448037234249830351496425526490389874002024903164264399567652702172155185564751274731344897915784513144194115004306873270689753621050672524732567535788693111044645535380142440824546246329096925457577114799088723710967711965805400537865497795468393700838641538774581190703149904939273222562552277960815271733383921450092799313134401373196880044547868309644700184742571952167292300964108073046574915106212321777141565009154728641375848575477440184994723886071026219684147733587369422757483950566698194916783171269225036579279974732860472036417146832263330607691769214859836850520975681091825830165231467836896898555230961461199478934167707496940389439928249494851677848566537410153770436590731336533327051640936064763759485471915168598128341308001281799560708166648748469542682338148816384028356390224250846570339895047695783772497593442402113920936056192947680812858744108489589827305482376233545958879906742676091307678216116511517381807502211876925529855235482869056977889626540997468525289033158514690525018552241602341642451811295925133179379824671299702732669009719745100192814962593137543048208130317907431621381670814495270023375229675335974356756639256012766227412392500633833430953363461027116481367571279819910468389197071171198995348419732248151970309945909340105046064467883218000412935974223943509779515976632461489020563923360198847806829633627242408496872384511325880101734627356470954685943030472980618488108704364596300923654465809628133721011405535329112361271585684086882078644816978554228221181057631012875324505358774332256821555673075981830963917118484314600984363803139828155985166152812453059449519979967694121003846098883777463831538636746784114322681914638472146174887971788920688792387724788597895028148404806699917720564332226629669994483211307632753814487303522072172198462307566204492579865613268824880578320825564109785183720019950657498537421616391044287099294147993470623873325871117213120358680646498526809716090748548222721755451279044155424772804508822171461366622637595276636574064115704321363474060914745618103774220841960431037212256987018731512045053446530906567828229579118430980568985356464757521915625704781066037106206398866964269648930326690264730438104300529057570842248141045062409277985960275965574384575732805188617914876431407142770134952164327025381109345809173591036278183924687931168166170313419639340839193937672562221704957437019523238850249213587385187727264391470351052916219239091672454605609904445618692547607487117246441290840069937778047442285421613379288545688477551215539103970146825222014380587713216326719903835545545043518398043590463911658603843555666533091842142508271432902975941444740059449672150303556819315613965854622033314697352974959545837887354048149984767335850119552783402525596585658610074560754287233504862481566750897188840627004987806046237863583575290312422527541472980762392194807150577297770122219388933186788573115143021963680976437286914669102368760783666497392088832542904672762873521362854842579943843312274885584397471468886707310976055643288757477579048938639959776424433808401463712778174116631210820280637034682023554085309323067895292905345629044410575742393463503734024213328130735320291676679985819070875831504887604150048660367297755023696292455547795025823329014896658690313110813110571564660555036550758425672403634938960202443708575310486319782856801926345214674726169906085988535108039842086622135735926723057076839424953379832973987938342148572687865185223883621809618655460286642545161903723478632975383745897477831002993685602809405890407450168950982044582365406304375181424338881906645017270796540450726422263893746768586939233235395026413090216445545060574618873828851382822742374578564578100504201612581607633044212251768308724715889662470489833693987672689267545144512604524460920871997237900710063491374237949543640474711419110162611946457218324157841142650176508108466902254059625654690513607614878654072891183970091527437055751868194678928167756501693667144608030896129903184256871493026720657388132838018264942939084518623032272996502673675603833631361431312466093833811855833744064006231481626761280002699824384062725552235561286000508208270600817712655227637447456148067622196179642073180044925623467160106641082771008963664024905592732527391283486523268987243962152444099110306459434644970248854033116319111666784575383213729495898510839677183914604000333114626064564931868799683817679307266973359144111025071028036033272141076345204535979676052484872163425268997694664862511026377898142759374004804638631944100911635449004997521314620993501418056575154770892193896529873570199487082426630316283426607036881525471452768776827243704519696959353444919967821083050324299378874390968177419099791325320491215702972235945800889200191257832286076117534960282066486609778360279490563236767477403357032024356617177868190438823426851224340700813303535256186468085118038063308621963426530404731313442208231294273560302311043680797524120445277578690107238846304676898537555099804774267634960458547804768586024691105593663401603892184343151751185578019376799027633998173615692429308447455012462351735004285657870701259156533711866516649760199063469469704691773257922488772922045310940002533883666933047664740363200339451838571337819305835456879649100169305864968640885833189661809758657400064820040655012494720402312079717727826169592565087154607429203427781277364691181504126260010956264116252107372604008988934540008631826807338107677587930101500646296557797736411888493221309782278853579241420817094229720932892149257576130206858485672386429488267172171099232384053536854224716530299437738707647382550611244155835998246971664331991648688142365484225967333214251615795963786371997535945854048936174674086149335616042254000955207099876569303383139729721944359425038232706344718165680207504637040346567632810871782719371078638581276110800050934310004798098650474770139347700527524059538562961124264269876468413203794086225868852415809900422535697716822344902558199293138481813075133064997809833393688887494278124554853860876603429817907603272749844925187896458604648157685706429004885910517879240958275326284214522033686663146094121441333381589548206382598077092771265308172738376586616496615169268267919886909142301675564278179544727754487039024641187948836368586269783558968510659035145480375998153408368997817549214461077462449399704791205071311388756470930001646316571219809076092871972745476424865854533796152708370009468649127159415496492304428201972855830341103143751796637408949324631108728363918515697204747352488807705453650853157641721487921632418705934046257433274282873853226793732957116183149537767716057181901085027014027788119528740821794272771808057296869494854559084413400494175570253455685944480024083063714463371219161603280336980487491010871116663436321638392577600208859343607269783243383633510923194003140732929955798733201554961779719212298898672745051768155834101070094926997956751190676649427708641890560459679218395506881177464535485416320227409417020463998815794470104506207675158340611151304515932183138232340737378823525056947410563286053385297368294082065524092344920968177528098287190050220929198676184227886950823036033747721491524345281176968375784840444093245930032679256118309261103998706891765551433936912421027404765457085867583875115077312543693482394469385957902717662863017777168027138418109638187319526557438254995936902773314152750213451231334214719980928974112620784489500071822410504279655344137286716614639921832521326039085552265534702373179295321804413194196344300765315646059739046135519479193234183759671930922075294700437567962831103018247995511478669274656973009083677431132271062087349664021319250459030737927195467097323633411574823369539078044749630469831086564890795297842754696478929030155164187933810166877615722998570084736230100709384556333279316633833599110130125544860558604206309259040685268293022116283219766620574661479967976345027312027071736476527713031277675145615844091948852259234214805624944002446126968658917502275114205818622840166974434278923736759029605403959118538595972595449578664105933977583105669671097906951619364625426884733352096356591765530617716851626637373979331293193755943581981440804439198527675664504197064517256897277559298117180661900965949377385232263066355798938209162579182839292797361742259602452439371164222114391723373618717699323786890298786674507606115746726522169422945836719415878776157613715150014141479613126885159976978186039888301253741453479872576682592520351898858491956365453135144838130222924415128602912610425891467169644924112079258012570882284033463659365979506253270869550143527337276513526898073090689848106831845588044554523065010248748217881238861128736696543551681187406866183879182443017403250397033583736078988518246057815126258731671943621710825802519128190361010863374304700763103846597852176347564266879668109628967523251548993653021962155015409322827137400543659167717685961094327995841927756922040850958617166146043280454537024989490339368065140021307212346897038351264504902540688467971563457930876098520603348482516602784968651924337803785128077047164663121764051514926027740936732620346716629075477906427842443233074148700417517309447528322912182487624942016056469506468423169388696735300652095862980465740834384425454574746380591027366650649372985092009066224752315708750268599574601111510430640265386028574736633287473990099611635033854036302914714260501154707625797667736674220788125299807355158274220077064135508755097983362367389717488448745192440465862511748407244311937806539384988776241433660679974236707801896451013074992618949730367671499558637791591466609625728589431172993498108857586340619945684144774112251262538453613658502438830157889086653410202945362810538412042097311243957310092052636025653380029064478377170879265360243804983457143202493391465014121656255923311869918302961680721220970605069149034742905025077225379223457716982342480914917970245013249184822315298462028932257859933222176702405412587108999182382826526337330636697421345132347637037992638648705325866262502812950885889005625758110740689975525313982436719526334738887719296727517254338175139227982970651046386410420134425241944163905056511648599734887116153884537430659932756684698090980502404475820915970779178003396138416384295525807648045173671281001938800890100493121876932307668023753739284077002674813247722040911693959594124544908481733090229058170570551917007008696486250005182817949574106900804321259047080593750688212222234404498815668550179189704409929223025008701459626096858290467971953565677000033587022931267051522830299655503674540968581675603838239527091358612561274271634519495481744317271363312885925550463233141076321372741197167765255906476232119108240561040537392762217005829540901604010976690868741332439650046605590760491671125774880943919044893336633841479978331514456214902425875065510622914134780834427040041299455615009075568804062130399071006038648119732149541250386206258966089431597701542860198156362754340114424467130364083983519629078102996653504597801183518384123957564484786530337005279158978334546665071849517204456303593843363350479601277030481501450493110258301333291654284227159152621944111982948335274131619832496823695907605588169005790595823951232709127027250892243144107878585023051895749561814571824287340199370894712103317417475261364383300756510558470366557091787369536213313965895694729349944873360835177108798489788848071895601788932075358992395707086458178248905335322998574617851104618932508460521331928751601086819364335323597928048121376273819588752487699011105595620838099810408465622858176909676085244161246279565863807349217605841451871566431928269334343632773727196619115728850053437233575204598784252577687395419432745025168615861258227666464336510931779611075011408730735068703808027526417443239206071288989354390817580525394887154949823571039981270734553846611351443047772226179757894429574047476984200782339959412305856003159804427727324962301899152798700365212732729743004495006190257545447308771349809103525630648506052977849366065759521663948787298806753654838993471951463602418113989296062149628445807673823736323967601005115684241689161676072854544340312055503360397077647988043153912351415478792034323207570018733852827504362574108968811806910503579466508945284967669726681304679191804313348860567602509480271992901492976517683033739200482688809083208528113331938480669634903830267016932186136478852061971949467867133386189973908730011555188442978962945973570385188967354108655350759584142145106893322553729275554761943961174488269557177794541603173993677454934150561100848100977396710837613102593540108845394849814692889884371523617976911577030963192698646645014380829700419156664787242017853225334162479472391604453238357622101869720018723716486800914035840429403359647803578252325025729644010718229699663642013114622350451846419607268705188438498766043275833409555528767274964344671648340982609205944062983584996125890826058898616725152885545436625752972112862026526155763742860919495311726777829103688180138002207564928403576725150578618609040058975858255541399297646780001595751942754045970470570091565536384910888216629248427111227639544736898275238247606071594108569343969420938731328283458340107209476541958352913351501542853166240255515114103994909159001682739832016770392776444449243216499767125179080118888955111168355318203343113713225392347882418091091295476818242991027588376268744391969838623296186379283997819173819080634931089620170127050417753498611087613463640843103459095665549915446920981571308489094582676514244272715133993098242495143484742380348380967220858463321483498385069876585428803930226338612726095189419150540827668337957744519068663525484713414038173529036576440026125926899755477900047988234265709733051274375046705316984719650658456474823968761734810707279440711313168895150738927125243104493223740684776495440391299230366507312193322892282575750514493429862066283121726412656480159124391272836268237265177566201999851741919258813017713207842840190323259069641982899694015054071015531628703056971021081674235436160876641502508003793405793408207279281152089894571079998998001425226266808485087605862616420268959131845980910639084378102100364241457181704828832355172287977645589607581936791612555845612261349626574594716036434150298436088806369899233280128312232855715668889508984160409446087576264719493631141844866496374910897980378553923083166362981150860628635655196826473760708738221848490692029908756958529949393261579313458290767955996385183661676880733298143580916307237314363239677213296916092844978406521474475675957575503506291968731641330968712302563384308399456189908216991825433435431437856504325259571023814054158870466304904391775362957409207178643691282281531151276268148577876470908439594652489652348951881697087780374386620273335785336244702373071161507924273473894892776137871514520048786027607630613505372900095000337307109421623083056077533451971301888793036403922899698245998400889384580523429101044330981652333128435788345260444754054256916164114467296865033152697877253067338573936895157097378562374271893034145306562724738104608344947170308268700962365175601318614098169535924766445646140514991389448023177993552518962729971792533947116437470661737995730980266197273116969517835796778914157534935557454736993923042093984156458901228847622442198306326716537798431441914445274006082457816666840438114748841654659723928203398689558091939756310371217533033156070081742582201610512474645737166912872703075003977457382037887400628899498323845858975333289146742608900428606489283904453740571701435999623207148690689704352355201590182034989953656037502112220439432837044111695622120818334253266237131969007968150400518139286695151075802563790353305487719397773939792387045102109460421236481620649719369732490075112256621811885670930298863357244247445904863814334376104187080192674266058733569419637695482253359924791330584268406037748525745570601882748013687437269485376257689298912570696365452530554965828958191258259959268414251128566560143412085764141942049600923147695222088960870543702508195907552043791789693646061416935261174743610443575406137538162381560792299396742295217462072716960635498205925366373239671853033419595737368393007489718737231442017666456523478453857318709507648382063151750636180341144507319896979196229482376526428550897675695120339737567146275405431672044456591866736937927511313144592248450636457727007629270792617958923541319744824964343183809847522364370971746327265391265746335306448754727772106098877153736689708504629418910948792764227504453047971102371517070691668944187607210031109151977289451944261152546626794318841124933400310591084612537875746941525946925475782642794383621077271975890198388718994597423857811252386873499736751162341660820871558579711307154342225569973929895456219318759008146237010007437863759534793406829308657828183919989381683979464935099680980107613824287093592543690836765645901596923468018418613132953994735975967114778492387929257929872035371085057237163001327597778528589843096502085155329550264330298787925762073986834565572907309895303845202751987141994000830093285978297073294199720120854766197639500747412419813509615400862938284487191120111806495128070729026042765881064700021038463586608559892207005158011641091168833845385473162679201524217953002639644121805612730567417980332420259806372578888073613804551365632239282442622697269677799151838510760713432452725065874517835291927582624472832015582942459923886666585448171428731063752679431770555992639663048682436203398523625694240966300256733394289882069195657739733957611513737906567606926235598407092811341319576967345767682482419640490456906076510865076086466991057405811337572749617928685071295869652045816556293691373559449361766043737121381157384970405975800651423253436470758195192686557726079771473531706770770640924350469031642053689403526783445746242942167037691448330602139016034338730640949886223002638853756566863737943515484338740667872792484619105024101662373513132849828032829501187800525565124814726403616544768641494367256830104230900495620606888576287215077891248846592823033282385936690992642202488978937644693415264728090028442689773982317110953958541020378126601171661305117583474716928443747711522604822526763803993550524227043920378926085511423744844040006874678756293935928322404110081343510686607885972624178748926874779964244925658230388707552825115189204659530352616895638328061618779347237903603687511624492355066076271346289379201010917064373362093638332074032249844467599878843986898422075414411794322979695744521988919798911481044131299019326534819100014515293777668545206767395237669373327373191846899325204639446963585499918079651431811508574212455562210297559188195450296983813557898988044970493121581712082153071474414278228814775928689768902652317227264850622367927270185231977232192576476891511205806087368343179214209054262596780695134824419490009540435997390383352287148017159031300260226487103073347037355698627647321637724296099353278513588989872626189354847843776272950726984855146656525284317964938560669458564345069155530752675126476334818189790305823980709487941642336647446272585588105763371584815476858006026201296902294636773344215277202356382975081787650985698796765140965294951791574522430976258655128571729763748782455821736208569371076511018866567856022291343706885854091100135122160544136322359734871057110569333832934014989631372304437728092034194024815629052495262883752242886931132872532800183813588312680015780404321705080132759881966023585388270361666534279648870987056863275313115770031808462791955641895570975125035157487406428905163405789640760835466575569920491599886338989299418734812209015999525458331320474043730648325254683046847102261692326309837879930916551989676355026747678594690909842385659610979445989084900622857514791187322752588492183769511814623734227598686791270545409069859022288235679999521452888806594199529040888524922535196962166620697966925225964854823957148895095710780302458452496667054458590696436725605906660513914578614595813353048354159449128845557823425076239140355554743877142858745059508779870143306576201554220839366794752642198309276209608854525231502774128559421010917561951575911901830109256482840048303247781207829177021666388896469369383100274941773678688067948527721067086210406624130670953628099895012681228565908830142828668732842869111042499937743722983044132943251583368671410531901360845228799425467860726599258158104628976117439461316403242091751808005205199246151281261329628124029825234832051991969340877188752844694284709830838674398569468229402653299292537478141147626425068874478749832814717635095408060795982690838807573688115008546617173062792841090170884841707827713839467400620407751479070355765791423910910085099216839280212742155626765116469073904341004078103304573975351148668489977935045662153969049312545310050079420337572291847107761628693043963522067611674926604816977617951998185326297961003046869216561289420638504003257292703915454819026098074781730149232777690231558124425737928514937599435134514850776680794052591266870563267948853734478820894749982001486733897484241523130154893408620542134714419830023906957464197344127700403559865800708777246191576690768123783987398819675869166955998447702857540774955386581847790863862868839206897122649583347143414292858808268233810167531429206311467393392028011147743357587408441710631994375759888755590661349404102579331367424192392492999043853117190126041851779671296997992475570103440732046159392861883200441781396451378004599819778189287782303999076595476383839986833739448737614430024748532591911356222277772568846742339086789438545970676012598028283585198251268693682929923188089745550735119471997538327686989608848888351767771563722595659570274140334093577003011580563725633258207099172282777958834646719184641072788394440540423747798437887121699411723105999457567236241404793273978721441893132399696144603739861548714219388096201067319843512473416572199033658937408092174841448894918359413649721420048320091852113361613439694022630817126863522744614520950810504432816102915818183170776611220162600807608902427907825620372224484389683959614870592701810184853324176793783266037882967081768260786487188100295788349906021294576455448529191445484584077409425081007524479472173655951752262722680064996968860667939689433055762090302735357985233756729639407828086199996430501101650988351183436313611640561975532478700026647262644513983757517353648900086924291327343073045299063037886335451786014866654644066555406760760606740186649943346679469129922123112718675053822680389510530521911336522407093684757568120280129868142068947990278260151089447531068869948756327529066534795101179909262502588331153719059051526610919289378593388363473030101582621733172759901747933609484315695101241154552277391664054496413747187868626076725689466373890262041265360344692854788287316144301188894331839444702873736061009341442229601752416776534633761505813194342295674734102716417694196362978726970075916517038660383677357672560319784006285877419430346522364346561542469965078062251321535254206578477520598274149366168048374488876211182468502156201058732035888299741246831335721125450219112446259147492811533768190209009534828428777471292771487584753306920650975740152849629169165857868297244645607614968842788395457261782961840225533465293767026547938714692440978038524315388148272326967270777599447729137807923961849230581080992126896607903777723260493818478099965630188336362472072410850197010851092155256653553290001785292578859682417010255257375729495729340825662766882521607933472637269681173482060229342854767325810012126209544112339715742232959241331799799112702869807413052820034992554116298018061683723372019184752687255012086273705430537440207029569471900119626046031519726972052556107123462588926682461278011562729615801019808493320949630189050698345894588198221836424352404985054447716956743970117523249711163964327933351868653407170458897632321171406316260367425037201564804416825023032173389073746354192921504948066054769842933728900275570145545350343123436708413339510244690218444904488402257276941925975706687900337564444026519056803760888242644020253284870845429768296031550802964221021076304391252885952930892488625898306590280042997139117711148583502297866426768411301141738189276200119275934279278574537827249408377523224787012101805809763640383831252577406492442081832127556069139899670717064213589667421340760817130090355434382673559916591743833939683602392469334300712243698951143613658344866942406822658039799693084005887926188233843093550776109549052707206581294091793275630653683926187278425516231476296658558296841902262709325607444452893683858533561358918793891741719727469193907439528198554321725442780958027292772054727686981971491441049419406961280414504710079066317064996574655251568266200664700864339296405485382596109826328070137817977229986010426338212631913204685018415877476461034929447571997081566446300614545905694215704664888691433116432320880700934658664571533939841200055492899209992812008291216263502009149062785383364118219537050239936970164678364681333332123963407047998257271261879216191902479092730926604666296309944766845725128078419981096293681114005729644387841675890318646792411095713981137230743703476769656356078803392980241300303707365336732886255429431051829926858886308963907570276041515227729191520644079887491690318479944767976334411364608217225061090981714907801887142548865461911936504950835159398957245689312702646037431726916360389915793868480547558742575479167317066861496096840368679614526996280544043221410741007539013841529500484781259706335776959853119488454052411781544462961768294935313130907069672037125574384073540853618038227633906903370318948485037594609378704471925440573608083311330286795229463418393266571699343064489452908912314646965041639311303891257884198862021881309676252022429633198178479632795624345731027530977268705850097294456551836395624726634326794726885406998375082563217192268137108567971962601337101639452951697830628923157942665609446988603774798177527527361953333467979285462751224243736142089109952116956092994586358602765114643622835975148785012778244909756945485928131234972213223726655909228349538387923826846605919400805149824056412977960050637138955153395503978115877958298105083197123879568748251354984583672547202216344683584601348780503320640415752118463358189662853018039154738694134357229760565840787718293666547902606045314443304486662337788837897133383004747128789189911701471279091971516069564565161759210323840911642338785548058616825747342391242780902312202424398935010889089755102588539217771059053997087435430340427505026171662447785707962603133561083173790233572889590045663515913385870313342271731936680151956906476777417319837575827644166325409381829749212095594067049934736629640436362633472498685069246341915015233616929581002013268091751516543915521353668973549038685021137804002113566775836872706164922452408878978354302764184354014301686906030244479790188561767918771638238803616346001720806571979973504695495882534702625473750646508815142559033462712793772230092146821787060168609354781122916347923540130483217942651969019667814977096965829444589157609735860225827414943713909060263844271100626154667077809344964360959038748794877017218961378307701555767932020853641142910589987282812134110787006759425961852018843988470056862183923653680709855631912954756083214174693102258374782332785610091385251970764959901822377322831904811704247931955637708322152478751738723279488281160283153519507625057650073141131436061363590812384792416933478711539225558218383363688303171038818757063648468855690337754900704900346845040215473229351977366946610205720324503089719092044592314227367152726073005086560963100200959801580647291039467312073282321266312761156987785698441190979984114841247531710097692368724460952395712587329167801001235532216973596938307802028533499291917051979865816256480395323933802855814017037803486373351072061564402191686533827350393673110192993939785252508180910916482184709028122008343637098383766833227355206049718583161763452379019474891294743356415639643574492962126366638694232424824146862581467393876356829905632781477273383049729729340355620023442063683973266570875343141669810785740136020244543552906887492945874080672774636772357905773709640635707015155985389670082450289850930723802973099897597323129188933275202008987549620392701933089271476142128756197837409246124733700994233641189477216278886218923375240758204630896619048006483724102683383192568872020943996286531376997628415019603743166924182341312820435967469991012219098714057599061503763966862480074565828027379404755726512686887957625476120372873870593775887461215521695396450406650426057343369995487265118857177193152069469090061842933135427795126749567143912560031777283340266061563505425471977117005772957679282713670364879660614558023494162262633998565184332892536543584251701277787673340204582081287331661468131964526105835378139269869500431015693180917475407205946746985133938750823945243436752323107876060933994229357216747414479250251478795252192399804245657297838212849182520311881310767906422780912465316703289868412533332965570784592584305507964912992511582269172974086647197963960461657094013649962565557787325425793901975205070576911850362419092890686368574014134767516858622435487214226940108038205871026263276026579462898717587502568166728236695386440841642618719820398318953843231914346278113166974297385735941065617547894709345043606406580058573549384380301612462796225137337324763574880333082571925618191870644103150626138726261227417825391435964275822818365232403305277584821609658922586050575605686210001369072416082041359750550022039160220000190646451384628885746527454282114867156896093845919670874767673218252850566777820415428927387954573090555072266912633208670282664904035082845349838629812376053045870518211400555830458318422543350297320885469083876907556374046184046574552048979182857270802022921898345596401929241513409901237370760177927220540295556186558176751304017991092824239841599825140084929013618327403804794457099514429437166798749879510016644140333526761482253530424099993492765634756406229989557194233222807869736106383792487276908546670400265828479635274251054785953714231704152154649216551942990322811539782855325502418442432349888870107758606521212876251555036968084390114813691658710142753189303918170488838346681915868907574344300995917331164879834558796331322734567551431618065631116463350721523447758170397243746922698790301001791558082446613302949183435670341621839382073930143805309269927091676708848987741949570649550630263249497701811958035103439658734091900505818614220552525958603210376500771113455486879994818114218813444552623261707016547089848871971439448626450706346406568443765659877708813990710077366355585597228369950636902872829292646272375305166071170578611800460802660885317239281491191320480051820875620336321573754186866959654230374268654775048038325547037809593051363546723871101573677387823610107435159425292494545654824768381718404953100535992824453771845123747636072255953377763556031442200581368945707549273658130397965785088956971329199188873464610467538100644514453045788261545907192805933987169812314308277384770730962603683682564095304561892446204691925408706913485350998156179946270884710876993827002907520177797069348916203580998138474929626301559146112054775581047704598488617138259110182630521588482951936565125815957899212803312156276459960877311464932854820739143423280070152345215516423760738283512763482167630457601314432007296791588329359113700642508487633686262762709667412028573544224635523067555814056629907855089838414568237264263458128327547564467141608357100813463533029768390019694322555584641132787048481719221265835114679352617354545677002435588209682640362609982493638427254382268498551946900915795076311187894803461972255747641592291491665858179006762262214202218715924496155819145809318293793885527432709114279991978137736250557051286030798244749540641885575970039886752716414423623559090399167812688163355576760454645750270168005689561134701996190925249036250008252479129153087006784187415384995907301908753622190553783503620375406891706887489053133233654837356058695777243212167893683645997988922436573562509809770669534857665174804251775141367273294186864096301836335500826002869656581075595663745944424440506041617465885274965206030757324028079894586255930090884817995171634783135773744693471917428993192555745173902947612922166566807199721155650365133824435712104635661208676362008756150958431954631126434354778868147813655997688396402772735489755269053166013457173219624736866526558748730819591439765715054341751479471109819058406889116603307672123273775837691705888824253652561041606759754476837239873927291696596948346242722966696426576152688024894078747707717351788289271134683445637462511136865725157930646237629877125583343324468683403714917109961359634016608922806372293856363427871808123736457499654060461277749510457210342523662519213293147373589583883151435108271659259562976781094829154658858135950470561514717691417167948412167948238592630886713744437286331934516768217674276584802641484041261704816954094601025098483461446656799881701818195782401901615838454176727828796502382571449429952776817507672467502444151415614124931706981297091828326548482769225111515834276385676846002143636474998714949999670575515898338663932614480167046079463117452157791669801749304369505905436537595421049240888108189999625806707260843764932529035945391347737787349012357538516945881767365609240382484692318544548682715668839680906915289117613865103994622768135854622513868184322448815536380546835621137372847167250470449092553872653960642492130007745828612655674852148325813952590635268047286479954660666549360933192182983514057893367996217660958375159809345131444338226891981643909166102597311288960514386116231553519884113824819778956048595590740647582975235449051722217501486963241553268584180251149360732780855489595476336151481945598433976737983611615088011240908465831702794223642828929974742637832347924730733510174819899521114959331599536361596419817571907336166961517306760734635586744598844402440367827274157473594014960680851024955255481586501089686512789740948281659358848328704782574687608268577345421184564925899368391299580495300887663303914465535109214519431966223102894932881520688487526083158340296456852492482590846917118113417842086797226306904610646784200934383259719629731303836088802632087916817403352795520568988814876051334321885770190181705775434304798285673332577479103936069894862315782571729956080535204849223902552442900796170289698633293305995801775797705916281247410841077343362261200422379878164107967318809412337163492224366039825930027669055445344397040915136876930852203434993066924319854182931057138583230147750823675125265100456387764441253670876541004092281117615858310314264478493762321450652787849259497925740729530618337413538217227719334541641505712282821533238301506291739179230396143131962602354911407251650846691666414530955554717980006196381173816557702651930020088485929221655320900222684754448381761014370153227950964238387685166374388744720791664958383967434278188398298254233694335428872498077106412765513201486522361418005834505094590782644203535111522131220448167855235443688146905151250263960883751639749334601923808779143421603955450440641815387674979983894553672714620397311650458901402509654419490155533901382031857714035775339888098802044116023326040068049780690473943209927932989395415213044774493198754344312443595364008835342091076073951973541069428750051288088358725429336516721376988678490533941498185342861166289318204547759022150637585925735324549440855616717870291625703332860555604535468587140697602700196647578278907643936009760401734141787473149553971130103701842059451006239703920742755760522534181312232433039063821411411278182785764951738031156555869645559407698832313445305497077531231970623015293962987596697601506154802750009184176207900687328602899840723323970126047476892396355470140075129844798883262444554680248523044630279275848155139447542610127602689780235140891273600469183318165857640057704476410772976359848264397796434769532933950762008184143476419407591289496295282341794223814681420292217598597165216733174908611339178549907920697098848316988586434456540474785534803674330831382204711384116975172369861286165632194244235156550469964458157567962586867279708100665311201678687232661742962855506858576778944509761427089143586283335143007968602194229364525789103795490232019471089951094116722424174404746659085689094303417681502835996007907737452051764786872792484393021141884139622921975051410742447694840865268460224742004468230552681746167304582107650848955845346164559978083087667402614758934233024317593031665373219305861619996473533543823661166489004062203928346706476207396458759666555916794361700640800633961333834870526520089963263963208999286972323094580141164598840168894787828136113389679300723262730192016962726419399117376922649348009721270012273040792519291675145453533360701600028390537369539454390496553836433185467191295051222734619587102818273320684899903095260930131295748634339620573767802954008461554815831154958327300815900400350912469219019539663120184071437638732258190516843344651729863553657179284213377492750245498549317113029113114172760650378481984435064530050595066172968430347758045942880575466720021217804296374624856776803127516639378158359634230310042220220580799437128899283373705723311014434355244923020501337717359214605488987399591006753013045988656547304143187188972711267258310610682040891699066039630626552109307430247483994651381373312853573365059569499464274605343417969133996195683506528485829711399855076832008674256519814708495306662484932398836665536334026058348347615077815955575953560953036037950094632202046909310152214837805060229692073516737196692834417673173246506069848250160611291142000359661004816486943651922046846619348938567689800770603218903871890713103228847338754309732889507091464217735185412510028835532650898753387670434851794388909053526353333649139025068785487786098762151314854195162234579452235229633392460686890021509839305553973795635745371258306076894979754790423494172606243886029238752410866945997491168317322444979690901602958028703063981242154656855683689597524806458409049980719730012818092970750865675989862696057296525855623444153224415738843891601070861395102340786848137175215023288127963757512187275322175914994294392726289580793132619770739013322550704893953454415594892745695885152729071647033684615697482039231965496984349602857641217521300026139982790289660352306769470973745006883426323646142065458561582652604785804884304236081673578940652212498746542356886061203322340703024751419648294315692008979385840364537174391543820487960662991489271925694509811765675790171763421400518985256730680718908388157326257565540857405515439927202124895611812507017521786890685300513634685784457826011727438512673998356637033824038326458649262827725233442581234489515365448807401995603164387707943251298355176067107113122065171559974171909055505499929598177649138786100464422984133640150828107024188781197032695137499982977466238083275245625849383047002392526592919215042206889640679857608822651015034558768751821187995409354266266936264257016981648872262585641598744260714431232762718611952406395555560719049913825788743352748049808922334463735500467559004807213651567734159002254402118684159307671230430224395397114834040137614153461136000235522353287378665612511904275109049886227779466921298009156654637107490616218909153791612787149069041834326198398858293546880624278272160084388043827596937190556056607328368302332344118680799127150282160228415290173235808020492373027328532575970520168498555352459119978828282526074572754478825449008264926508964217913789232628676776893008908735494277597981399723619361934633853407267091910953666830294740983700665801564033657913667391382548199913782836147802636408796049594718355495560505354117174482846661593024003755576580129603442984295443876744131503750284699969513943288572241811216563049025206090453010397420354619504845661979826591654325759189213241850486426017172397497069122396533195512903183662640550274708943422772322007657244044393096812420969261978969412999080235342636695705940884486021584855860266422023437024757488499862072503054838588075354530262044930671129131480507945941746000482970781546228291897977395247603205297806309625348231802649964123392485970680018812003313015398619730398608958614141792985652470161072900893336139872267153969576601131792442372691091084280577016412224601947534600080129680273055210346501661470288209281473552147178379186864462287565279585106269045207865780894175516526416363848891348947060641412284542275194352565433013848341841450639885756055816190804397720616475482395452300845300080604474693111701925680707481053738637302028180337277619507025728151373796845464310997384410463714782141240571358137108279504496590448224772164221622633301122785226553734406388488387374901653700266746660956359267772813129720680605720157872266150378806092853009937286402848552006910684032680729862954943897676419617997980426221240967996892423222646066971835021368399544074701067096006050152202969173419551937722064527732907636651904569646864503585002901313328170185320463507294787642123291811406076518365335032981089040318257390521731408179939798901199005296006130448340074493295093850595618702277677341428628802857398034015960147010330926041729981448723162588026662193888929970354714332945054648954746345166497139513800377367190252306016513761966529996885209936256291837113538692233020763469341839286564210502989999787885104786641860573161487830732352602150354848260619320466438908392959987789094645693665360608978288782039804962928947882730083880155846040586440437281429262902549000753055009964563696454909164637291135634360506874817250411153888482987857670529725323136441510640771781833187779241551421109913301068114954037008204631603226845507568504884413268603866051235268312457615814818296514270871472407095171419942477428248790250639287453474028491496263140343645394762235955884897262737097261617778927493744588693078382770237659433957829592388201668466818027978374468318632113889632972504321414865301576505794022028892365979056926896276460633140049676292424005055321454538628142387937159608317299803098438491479373827193185901236823374141640678341142604022364455114175887224102813671683623923494752662296170191108866400354481908088636672146238787176001235199959258124779392986751429423040052189413897278762725914000225487331262286407208297140280133691596073023507268574817286057054076634874626746609467189048525998342655053667659261664045834525705120356708289129151681662077221005587828993442319667131411873078718948538577792543925986795218058950299991750778547831648020866688611656958218842293839527776687059083585161143284804565055361033698483978136233525373236228287305602069566926819917899602683526218411546229470497418733965174147185231761858855613508521195684279161807106198205007727509798177910940991854335309293430871111242307352481979951688776481419933708716736333528600840574578689518551883574712169651417652349387004028027166582462960231337486444025589752209253929305952804448620311673259839967550675108380150563850320176951191880192874736865216774601650882744792477326722568459864538094425300112575009456327560545991293549143559760315840162094738814954232365111109179071312254532282768858299020147239373993661965234317128559262355494743037427251364110636169493897619815414487162752957526044778833891363042472655892019488907693743579666092278555406966780829609034093758171602014742679397049906405050970913295439752298487252193651086451526787324597752859555155097054167454486882167557905358292962977308321122572115388080711450294277197557084770476567406310479820232075423993296930485066671706022966821836860535471421223322002796602808233132038204367703816350965874988844099865185250521097805779301365687417718056226519876306926297033424281652488461062698493561520215054924590540725305019346381878676602040478628594047411728285601962588711978791132285742838037550600555144082420527409962468372384495939836425271428266741965411545099910605415435313724789445070465811182791456452709308990603223845331957507971373555359133564948564236602689740670045814395043995902894625489019115588371623876463047970788073894786481481237178166503984784487206597188396434076070598355592617689598532932729429077349382685730920590859598785597388774724864801915161547505945185452481340052225228012102893350547744971790260676585133910014410847160737772222559696536928362245070230854340492059143200635825294667011275332938370795479798409464037197452821711703278425301707161066665933346249204971415291323628765134471447431499829835217364617646596787521106104541891327582103200947142180221799404019360862073676082185118426519258946394686153209627327360027294321061277337671802604115193846212207707250029695682794141732852396051477816990186723810197234598501025437808114316872182834159350788704471484520879287452273980864421835500938140502392753645823391233742952933739896450953307722398981941668663222347757652460640780843317011258860310944571463558474817354688685164163539112995734072894380440809259636913192577504041184667743743730671318556738600251131296775457784087102843126070115638658616485064305986109563685136422077819939395560795459153976558539798073206442782407578297533418640669160418728553057749925085935631954519401614243885673736840026072702390908045326983338577067646277415372989165073468385121782516555091412918268346003623895646704730056171681511152237997360026381364350875731544785042747499156358779691739405858535058806392674907805363050626360849329124713287383198904183419509599829431652315481879955152813671943667294241334596048574933957835329821472139360873633013251065122420821686843593246822127464428334947551104656634414779947724950069448445482793976888736664971606633905256594352738617710504027329686071819057366650973337762571251828341877002956263721704236401209631959868434898281823638073454847157625138908696605784543676160275621224551748952923473241927542316705332737322688970953790167083828760074969672352710746178320456478314344909797833935115400646802629217388076780278273335263411389538306477541590832021281991715268445464174525626015177960606094514264121671012129231147295916700180715301063375057778409872223577946237726930513453241387076125054904079015782931124728980948805990816241783781683348577019801024838694541802132710766013597279923068243672889792405000309526801487128169052183829967345599844137985690359730013383395944642966345123583281955152908477496153078582037325630152134556723331009661909701632838374001154804065868460516420572679417790232114114492227540842141029611308940744868179126603610628679228895450552219013417900719638944410722233919655544283973577059669536287957885570481699023398725173330007669914273707408673554684898602454734186581693870126908582554784207015479632069174751165228732440864112984316554335347518541698326115816200388621237298015596732357409041685983233496050944650065972156839579999895360054597399427884783945584455608381324987703783033107026646566173608359101543887840784888446877234056775889817177792168940007494243696732638479164577238775002513042635264418290232386603329033238705630687439041904879430522136754323906487897694508881553231897799892399452201672737363360313372731342832716267637607597981776464067564859929333264176720892184001734555806541438527332571511306184104428612246804376692343289796456336356301677354035694268562835246041488714440705739434033753128025385113442165232504404797009997897844678139475766515824051485999204068303863268688895183390445655010825307781515550087765020534462228764941692408347184371894696411005217412195164543838991392412750532217153497811392532854826925686773722354677623236851360103821052395500454006050339623231718043024090540550126395709684735033251505445430457911066361453589522819133145783194013223219063919854401799419542878138677409562181260428015257739846981159279830225923721705662867781196879724759230484054268168946706204821602005366727992320046745162043290936717077920895762079549005762588462233577518130614475601690743367436877470680513711938960456564825121955538007395610018986441254143753699635446170946650249948580923135397448398948694799840863310411064434830849496603512733934708291712795872516324155098392957197782106047573736327965504014577289218852522340838516727687061492528863764189267544428920662532426177798202173625017332148114294773411401306148688181383331169219852307669436724483833444028297916859380515059311425662386208493916853135277638381159562222579587867779751344540127077855866412356019109171161820500969795768523223237773102930172781040378353209202079062334618931825958554051849856150313389953506812098147391344281365822010741441503517419847408667888296186238155109727272272288797327655879689334002403656006037810345462873617063001094291311811082014183092553077127768570482639516058513357972582334043569739811695067150434299070135290018973872454076963228556187775542650345305078536115742060674419772027614499981553347042267767464624489081365919895507440976512062941552019788433351693557241825764003726240496235622223581813683161817254298350761566366274501397865362398485983859351438814568807906818272324963115576210872271253109505709798930726964270617084012229421915408423373308261342073236092413272190752832126612571358177641192605046568790122730275909299247536957064171657813177884529824652293168122755539195674427117558976788576343735028995194625541776215898223531671710043057322686387000544114226984171326565796043550418464950030203152356606137671059505234546454754454413318807290525478405001873875344228459867562876626567103186323561257331955659770392935680509137021150769621975140604004429383815525858245703322864550457325471041311415603854436423652481029388604619272427478932700612914418534589593138057832375357500748632771019006759181892115188026377856108822122365855695370528817882312297480098204062882556225793983430292239517055991716650198457162633931254635114316851154959576991501305693216203688216770150115452042088971564295299042797048274357537969321337692454447614379656524118161623848437160868536978924691820199386098222741000132528865555629020963483483160819630052757400034384222918835657929830817002279936185694223630733176101842574346475106766671709433502008300268959345907228093608752373336234828974039352812352143106397999283777667683408635242355350072505773629575833439830225444019535927280920494223474429318742789964185087678326296904024573440411970333981133226734796827121464232147446167766979506675504169791737511887460092399585479540282962181606825686767603445813579054490389010888241143423549490803759508195957573248595919714849259328657402569136479010595958718810805699098858826663482214864879930910178344190054191461928489745928121646652047083401313615040177172383318223662803884557223348890527184607404512823826428858549627269256101007453476501327259518080611057039145272213416388797636291298445522963879304922394107099382894747485387449006070746997374837357844141564618144419957490024450448852742821287697488522208265876968423153402540576081983129016895565334127917295504853125331247248703355160232324231957919605619121459086132998892269072402333881507701526599585230191735801220390601364389541151478626212563393091470001192504127581804373874982922293802923101213605788106843567622889190624188251101660094749588348740144412832879776345843575892899467064452571300763444203163892017632859002514285156108925978247707957457376381058744130858175599085998798376486241539533309688425948732297953298282027186303157170858573178140523608389330489022479127915385169995976309930346104793902999311848658449200132237858326414451252246733193243583046369305053052831834189337081560106003990381693590000459273077781221622078032671127797426450170106008059384079016545685028698904666201316496887104293150880081486004503121175063646808276432102622358259365255551880228663495548925387692708712664157917148430138906145093824709062560455544369224266801613085138892270126817141855032489434002730704141272743690927102242075019409239783317886817856808836799208245048874205140780926739358496666083300882656032331797273751315125519765902348882315656826615155774330778612363044548120248902628181904183272194410584049363099868263665753504803574113459447235559448645761384481322950225085262109301563047095832084982013350533100976901379334918136254802221718156516750827871720048851469902357862005290249849491458021580925977151940077289829810671260031516360194879966875395336997468944153668295990670463253002018450724635352932527072030626233342673837543864885176933585384014330263515294074666709480506658614261855471502698953854433960139491848660805630031065275703054699698786366173930835182612549817926052335990566993625196748136786306396704624759995735062835393198875367030974219009659165185000544359753581062562318316263625205850107051749999797502945248125684135015654203719495463153262478226071051846049861768995947125941657081825932005582784859140605475046223622850352721131757137277896325263040967212978972848607055373045246133826968103650821895154671161414811942012526095016114002961634386040174588265836138969076579912111386118297923250004358146532616064876102691105142616846569958545387515887247715260156796815895439042187117653492707066816421939181695740169817075996942773201716702661996389052003313559443318655550759708194977507396397843739583133709048654345762681578109788354930774006608312306863676880085001002050384121579620254578718801138382115701473243669866147844891260752975533327282793968661762543479031611361014463293742173927570365699921092305670400411474510455968716563583863614289407615360893009432446609994502840596124463715190610652259678681353858078963519678619721232531345696489836909905299439506969187053641297825280765649175421941148028736759615008538306251690736073461066271254801012954575888316746985534490035529347921535339641472937885306814067472060052130429668071245105007537321716851954017897371113128528495248535384422020937793939957676881711250990193343592308810419217564127057222904207243273390835303103522102041211764397983748999962544560453770042634579441008318892493074102775624044201760882323327159224729307610324034676205163946995117869980952675565500770033028215532769093637346030449541274999523887794534106873009688241298295362292463473464358330902274028854579081713845307841526908003539082574530726674240715377120869449100413006846702173226475583590649534292670197935918781817232505512826554073730481560810160218111348244659448438316597446223111630655263910840497526835122934635119283971769413439518146457252931559778034374587773771678678536985366160429588479492849341840223201439546279312849656373324820548459273807793676843560057053148811260096950481738954870426050563358999841382092492537280467495781534512511497155186177596100106078931656565727890969138574716225266521081482781705796711034171139451480833432562555263110782297280833333515404827960559314707644192664281312412968167666012277218855990238030751329135162902009183395577122682933597111788567250594669402749457900052666125879189621153112225647814901700976860129169183626862538517463406130015753839499010281031459654870735909558218440753440196786810433633896634510008390397423119531124769302293934351293821455658772981129325233058371925705027459224545898297750800281851393393368038938133736119106828014587270029053739554442898607974684590086919643909886576027338246828061916713661030494813033556406081608378184471591884087819137293705421968802324755652460282738716731878073015938640898720190495483719580816799324812235788185664963543276905115746439489784099825068469348140296519913855500963190113206959322323427767285769349009184401482294399198401219249825920649603779163211751974067592290165337180152608628940802509185395015731166278409533377725860932231759904642209323433252791242170283033414654365754381599736601792563777141753998979967811355577945812907566613795566547407185467166625774971847022268938004900794968491105055061073476430082598356061104375586447801785642007477963465570830348203886300408699058806220594311761429987391855401823952647755822373933051960317948486288884145169858126436764959430135422972012354270157001486305121463785575139859075011833825120681358018324835568170015146148153247309218161206970230285523324615238877758020198972461278471326600760296289744612164551651794562160566847873672499531987013333304761110507164771525173714711504448737387867722738457102531975072789879759358987100754442013564014999931918631422194725928244362912944681299576405204299233316938474075509862630814225077956360218554712550273266794230734931874464121715730705919390175438616415364216446577508663007776852929937801599199942163123151860914172466075162045202875704932793932802306417386404374523556299663161845366752885621025028927163487898116186580110453063765114673962787842388487337885291369753732569071148664246302191110504355877020504757246648057324481318188521484623984225352180115315387291892530281766796988537899443102189678048560268686257338360871398106647467024655968142782667900650931152166999174982273076516943841639300022201618207652085390905178789655295574413130648039467619206521666307369838357912874333995004994961968679317453874257345350964231510797975727510922319541644189286455189890122632247266297732958647132260216461548506297333422064581537390065384024594709665939913469475655388367767516280829110394737139673230936040941695964411032673147811249499118783385789906405153695334150146723480104208302546724011900190694155266552233586573406635572579902394771658679396796499569358057289821124084427267458233096956581210296273795462689430635906623276343741735543224954253054842852245529152896959296450613039182846160878009636295345097900958299757540631290296009898408022093375585108769845585663455431709994041024505631582049632677927740329126632931063312902747961474535327215745801167505081583619796386872536574021372827932311244234025785617629755358268167964420306842713434043628941878980806392473433713607618877819651384341359569074471203777223953139110207855679303493459315413366304769649735947391906629148843702015947959199396617841505643477910621181918919075062832165051795021260518034056083579558806619216798520804134047788653331755464873942562382591557161586870632877856663158344330407534890171125685706868969762524212066529557127569634715966031349586721402115171829396481742687666736630502226577739726355653857662661629677014425219996083414724115977304653955992107778405186209877955778054852932228804895829176206140565664216752994844123874633391015362709608314259828156003451249899562487417810874168812682921960084792639758104601388633718680832496433693037493390611282269693902875106622360096590887496793380266183455309850117622030666650020926293282075566348999121906094566307925364446972384698596884907807622360572454970067215344232719601945544393552816294299964077433950637814644512187779883759254053099179722867672540651736309074734361158996616908409134308687058303606252454887199238659712170866934885335062543415043528005089808081497619086452430272832887925920227215008639486774382423255142944832058975938306873714954294784817243202184578054213170861503417450194565298691197660798450607410493009596459801796149767674768829130898083708372408868636735545068430143665116533896635286499684904260377075098919810951594364195363750357384689418695650903804240162811146052042861033590468551822966621190784968975172549074914513249413886281631447300623621969440410241069013941781753601212123577000635102326594754579731203753160224726766361843130441163908377501509487641781148536573178637884669408059729834000995376702354068013089074381711145285288859825124374039786273352687011088482189432359236003251804564209160557714864585309587112337048789190893769455945904254944313836974781765290171118496682603775187853318671000004452817715362728073682981595714407542641390894616169584468896627242802656314847708789982192977906257858451037234398564171999272049562888931603954886632976291053021512819723789818646718874243393630113782754630615924888923524166912667616600090766071945621268434955882957840620426365035520495433593361151979972792958966718000024980878988780835805376973573913099417305042782291234657995134972377707822121189053270945612616442370553184086020061217704947452775793626705889939702982679687136613223018802890009229502737342955103775932035771283282867180628501879434540221396484300377233402392398927227837321053067509692818666786901897544596228151374022076798420960131662339356662489954742961423196321060361719198215752481731336704563184099200173965451054253936836851305262286562234510852145485564514147865613669768139367545343380518922319840519791285692457347412843565712482855667447551248632537095642309320276405118655583661489720431637769166311684094512637708687769202780258523597010461020330051351432125952809771684869884743270592996835862481936641708292274522312910354271791677809446422616332461203592289088754537603868936126848665761789461298726032063105715922895823386985528836145510806446133406044500110774726844647515597477878948769752960704200255305134441870977510719830548536666849841310409053419519776170330298744950430220500290349521209120597752778279329701423517708137437718239409658060945672873674274297939055464215508622027467985173053750539596527869491133115748967509643898429800773427896362633884848630945503586145130251130850653984133443815539934363949500765261818446257440543721208963827891839517728010799130121500798850109325156489374969306616249244840822494440916327205777551716773171535432188763697714748771145178866286091807279360643964410197606432861489183797306494870080391118680547726019300871091349649133207254981142551139520270512565608692210941318756800554667594559272706546164374397228131760823570122999063582070518040997357332201112684379116814981502336712135853033387355410210033523778952950267959256553751095989648330795914746148600023233593264924212354248504577644502263681601681928903931672875693725937520716595469335801914264625525136813472749894881843147223103003371442283290618553887712866624779656136197902812346415468686899725253382584567839068148771218798611470232359260472824533917866714260838997944256905411044108272776995431067080014713107909915860886705729660421809506134024826661884406694655594081705468274021566727660437802762182119868185640737430689593680650023971820339992723935366808901728496778283338706458208371015732355599861220309984334657989018296072224312642779859429626687336840668203607786320354631487487838750911115745098782451363760549000231974655003908146272361539458820360855323263562599301159639608579034491719266182320318625210287973127590983175409121472773916961994228257993873968166014518287635015338533913130302112360757443577564478774080400191740544484929363604620234422716761809102531092638258992023588901216316544711733943197178993488246778716954570994203970724059417202445266000016360787232083459976372946609703117563396848918128668568059149168293403831750310309541020001581517744634707881067278938947984513590561346027934102509797628281414041510311821853635206500846802532225505143858686617327856768204423362570581122437962878507684391098715700047968686469981228763241086529285421499304673391744280519599351237746438302545349669877425878483297298899996555636277664030232998109452597996912414017262867984057953317928095156020563131404105467383227412830720348457102203457688096494748464779406074777704144195735300665368121261411477893004448168742861858455023672489716115823884697596701090047995240003535427220302803083059110003341846502358994154487834272419297316185318858623773364591063107636027441550583488806391052007772564084712818097636253248556795328303198975793003108346976861468258673095432265191322231294993102753570287208497133387821364632543723220262232346885884370222153497731655344680564111613940358207353250755766788070288578803652776531424564046208379206582868179355859650448179426976286276727032492161967841616514805842909721751032586576925785825451017622137137482588020977950596114196284501884499016579447978497873070649906456427067885962507571096601461709049886217017806831039965360910275850847956897870630928399907089232839457089030869735040754588682854739702233142744396353932054558364318461494441643304107095808249950224167590061125144911613167596837037133802605600790923589019814184085766278369315031648678248425918848124503320211790690726607256865903693336543718006771463170609617609148039281944540014053370946390414289406646443348890809538487215902257107224620937465537372878649206477854718664512828053001477984412481330474054967375627211341814476423380724254066943988763437090753624256068996426916114717442743124126881527240018022946496699133913297743756052458461695596626368365849424689190722338675343407635210384730158825243628902137704052430079624190930503579575702423444993363199484631075908035704584957262060436247151545200210801177472690707115369428027806842398020208373429833875449109982003656671211523029983258563957958889948409240391359789677102600674991830546963298372726277489729621772404939183482684008091796573347931404234401740418427105816994305370960110549281483041278286894199737980104856251504400692211528213695039213819376727711496145377988580604118514955765998534142845909965048323055702082281009249556959992479962876312241237714413499566822410237471712614802936940855683201325572999600703695042069535801159216712890800651727408356556422151499795811927223422710823663623756229984629174819545908950919574509417665978905288808283502770755096979410202765599062122982968528229858273677560308285451422856261567686122671772200242742367940540309164118160823948982445977140599622242883815889594375185370995203950901735626043260358560821370925076444074300856696819143206011777350322973977359133612621326146823638344173654904301147942182893472515356375111954278469608651620710161305906697511573782965645687811200298166045240764800400559599686770157203372295150532514321453362479380287389870554507631368724408954914702869121792806584419453840769399123511085225985269044631928708519034971563616838570764169529818734362008174872369584020948433394611099523597816018345626602996898456697028012877393996331172080284304057429664629126230820501067956438725201509744934404961670964883948228723864273778711873519381807929093158460963960589120560540316903650570819192468219215861252836071429918916825748165621377850114087755684416950641060102210316545001354595379231933114415961679910480837334926356073331444118199845654599685672961822762654868169520724310051761682771904468782643190570058119558980885100238806283845595525274961301168946061996585733854202001832513847963065203415812924276821148211415944335817611280801753469250637294709850385091942790027604398022268886017162231704799377662583887124353134083053922746447410663622547019861892318840098673520094371681101791027989675440286125582471057468080094802849432354055816345927522561805796788475343468170385970994895838663219296826143597320983623124261757278466995169796004050036928269357450662397796429871201445332710496656754867632980778457526221285480097894020710936735108286499928047228377266781042242571549458071881692047051619741462843299397852721588515091361731035940759005707390384660399510446302621358567872592280022363221204930677464850027495121076430007248540241487254188465202547677138744468790795833759752159827988030242823813138731256269371013773597764371904183789217053582109917691911888525202941585174243069863785821484616318869828703135618104341707786615643401427179749667505688962342861047999280164689119240217052070420762683635611342792762153885516178243738876295421013425389702440968428758717682550996348978878119578738198295433441919583988165434586706895947485577192314021222389549389283483075649301027883859163721773290399730662607947550181690180517457885295238430342021825924995944697362663912830327605173239887505520175517056316806484591365727501037090112055054000448956432050029367354434974367929724095262233844836508514445629979118872111042746525599531111378655552575786438764628955702465666537531607253998738893288757984056327988277298174232270154429761618366793297222106525333079825259123430097360734879070733434609560744990076728484897521202717783523084889056816741050762128993269725804546792725204939573995705469732244653312186675663434383212386845867529546339544454305788849924288789448424163025072371453962830828308124714484331240271029089765189550755357259087429917871564586827204119555350061939729464751660689750873081012265995639037689892248296907556101494365220815987263615961844097553379839350899775608300512460843792489303384045994548348271111187439465446350776983664457205933984407636100135493710392647251093511305422584766690790086776348907187988664767603707028870133695704047655139878808814570504343505530194620871704405000856986062228378418903096561632022177441576682501831403012155342973757656594223422023258127066519854406635998905104735277180709126984760299240957535991146343374978138670914690209130605158151059540547723617117418108012900611546049245942753737104058428586047090279851990814731294598388596986103850003955808788181356219527627514880663514505907131165171175513875860170866491161334604453863861122493800437534416034948465328325578072947260293775342460986967529562774812581967260558563545197338027830517437848132916440284479463040146173490508852095717096620152282145640697051513732784927974327668989227519271780892651840292045691411292661751753634668771837507136811423060196916776676373027261856624834477541719108052602323766789415626839719863107381420764084979668981165913227614370204220895843451270551305689980127409906801339031767124850822677517346212491589189458138368468082539929122852519962117900266918997555541261591412287778901326804441314631553664280360690161087155957305992981372194256779576772169222246569251168573196590290613944450704821027739718741895028998866876776476455257744442869918375000424092471829704499312491481561335324336999786809693292466994694632240447402456470900663396738657803527588179831761395018169096784615218296811375744941986753940420308789644827243308231294181092953224030768252814796092476107153369109226561212255105146492360860387760180745846463689199846043738885698239572663093508862602066673646794865913914510759651634677069424318842734985214294643539266915007848430115971943593271826787391749696402380156189093648706686115373365261353972720992155222539418500484129885253878159221624931864229338168627360931434453178285882875601016071878813332699297901103094355852600987628134217502176650479995313016866721812739917808434416675346753161649228406261068793449322865405244291369953896043406686439073485827108519760186624323366916876578477362679721272856860358661529065260731797467753596365700576998106429023032486023696139768575039006686037571233795457856779652570362073014535424284522320276752138653073021270470884583588891178745046064488598339369653080365141476702296003763308673373642232642073957512739089198797509895471553327144974207241589045773747659269569693494764514360394755038564197494338810335933091508724326576223258864479224914430514004378090493429019122475141657939748559042283593028484686233677883735708243487045600313691246850238219752326612037977072150488733454607033120123381295733633443145227804096364161984231011988972836214546910097087082343797293950747357569344800833460641520819601838845883020847546439830957826063353741668698293005039594629274017611284731010402677032582703953095781294651888592797778783661051380771305939934517652825619885370451643591765171273967768100728868395948240636610792282679776044388377783919911994194808349177913236094978780646739644969231407550643632114300639164762744780664179395381321272913817675691675392703651510560094172450956915919147642340393931053518295219482654028422487422166032088475878081200012165859300610709150167764691029341665206507985256636299412358794327553737590778220819387632872294545273236068337997840839649149256858376621547605488603921007263645437291712957565738206760412959912748279180407649930928411153457075392213904532910191535811936136092842171369289491940596595090034847460004499101855521837828673345088362868776990360077400530218658680591137537786341864281510374975573048921534161023264712474687376797814641609017017653913224837477646733564699554690415254995561674862473110917057908011454334376512725424391355991936295337431350422608429713847938353904886830309261327780782869054914032966197214872267540795024270067010645836071847301112382435059125034222411013369844562573085332668804792220707718202960445379998021643852312071029495613048471821908568534360546310366659430508634619222251560452070470337873034431108836386901583154899327539887391612113994073885509949988250241340150886376094819520325627614944960416356577580736498935424120443594270956004828538295942613932136855527724996169787837922289778807485752769653495187432260689224979614444942845984987517681278898507214489651753632406373644124103139596753149169570634280120525633422091855101069205623574958201023727390828565071049217244588575081059771676353867098740357640420177465540446007632882424755901958515685414402779692667886246336356260886853517497526112724852849332969667946787657448157893518098631607424643633398247625208764206118385244525092825030886113026269280623844300971889804869236083137060222081842133654489671754917226779678677647246287149519950098194716058116222736737996750231780890157224401389113796278739552766619175875919500988388004121499192449260191389325456414853073324751483071756403121426241805410500924661540907608570198300128620349056596549531945967845422292756926271479778088696317028116174814566326308317998722737906907590700916820939717433260955442454396073529826883098748473926211985065894307299625366174194832884182706819732645704514658084458341705158313557654732588262904430302618527139611266777948671507683724493588441850480782892656821969717639872840248596009640472186549338107358691499867300890872700569941914600785310513758915208070431497820236640771010239233101687084729591556484136824214193536929214197286342845893280984861236737200964555829903296206993776397243641625855965434803965728152153083568400132083010080765522446356311224453053674977422038409781001318402685557196116123230707040180482901049726161825269212564258924887772049449953473287990814979422373532277581300434246992365116714000001143124218705659355916678432935687704681688003830748784191801884114311435248819812924056276348964049939993671085915073263779500026214561430774038359637451591354416676236365385160132174044930608169079277983302105534617243631105012114111258530453767602668051587691798911348588960453630405937684201501815497607307399266615638916371462366712144295213283769444113786133095170570246832811706257899383639707262646741419485726860125820785244353194334583447363220811771571666607857866685994005509127334202043447546724431519866811065469881824564549656890441068622975579420095214837961964004815620267561293855715305876249550146914054627561672114627422912012867370013563711964134784890701889867958925528793609446844860702454700632409076442524742481690694048682710123397656174476513478905798456214788352486177503303831316788368687225903418258856905085414764377563635780945414397300320949267349387695620901538915883718947864658099785697494329795429267741629228553651784541399405205305094904238176622600073895990812704907750855913522365537889762101760042618418454883361241357081081235101599648103357050009024071335027053309476196966662577260175064579760932707605486889505238381204388495243154358753734608162792516099089042390385657841496282809849706710256735271213413371555713335288633984009906216706448913680455088802004686623481100278101548235318004319765735167064770206983212068027598004993069407004964523786235383914527573234307437190014565224267510542170028301264323178607074636155088943950342185650061609450666637539569529843082395274651582448302478923593244826761834702395690128573745631548663405567838930382313341737322888484960707348317613583874520857605993913765843105545679815888402677566899441876975679266123202148926381131950370676424753022978762116438623648859583834655516402983407862022416933134534882653050213966920032100319999937219845893420046521378592031883557279659825372829550925558776209792514031350586280069990175283199327131936759381602716564191038636479565052967832987565181300933603982708946544629418519699908598585347665343922163673219933908740346540554783510878394306222425523670987576369272386237287892742134967281190519511435130706891639101228578758490315497578932447822724275751404526860727334639564776338547196676183872077148144574102143368991449539088230724344465830428959500119806402924568656134287485203738537109660191362859267431573397896290526267724808597441602748466174350144558735869127670419770056557411289725661502535683568170686733642791178067813799542701475256841162387362777855750241238356784376048224860115363108729068838753039672588112418450877257830328032596229694441398028554191405470740241758338974174327712693300297549867199880659897547709803192204875590159460017581918764952728588878883063516990750893735756485297025652952559856547240775605629498602314340976692660066173889144128719143244042096325055921409772246938270914241738395484369634548757534023086702414300003378029178875225806120814756543690198857725843217578082226449331041386010839379619931770349365812455330986558728969325666293738605462718647659904903116550358061261056663325537267275523477399779112782256390726335960320220718473690228925739100598492364431904542497319586306457430694899584246953602641615317639781931361569485794197591418412244088113958925979504447946385376189187965418721262778008037444669173982314168373981556514353408267546474634101942893505762398523650092866758436976554273801504811524062732328043760044300627731044525648312495282061845278028655832090399132753022411758779476828082157448117707909729996510444551118293477220184432547411256704419465892279140705982044421396908448296550401832350827615768931738353960599931175201952073573935672343816124497020496997969573040449661623023235047930587084761029464316321772439887010604513266038585034278552592607753471882899023619314750370649546075046015019607928614899466958506356477796084856122810114477434857989972277142560050899968964163051883286534762459370689192441308817294640084100827888106903507517482605566445869903280221742783659442072810001788524596613052717050347608650450284204911574710193923088718293478479443087645961527903479464620188631386855464144365627129915189270444546755811111072838025128647397301750219515324456790065801290931567261851875960518689498288313826492582842245190844348884322072576542083176528712977481936004151234911250907835467722054649043660268938694949065271725575050976320694984457171763778048567007261257770772840921384970264230430508073555580192809620058173063913310066686041057723290270773577002187354182873096974756753430302978631451430202312716846930938245962783106874717519501069870973281392279311463773511664637131651813883113483213469005924571601783876580593931851016865455306791682745212348802336259432653880713140470944204349117915999748915860009299067554360023514126692764985863657429796250426940420249088605342086870814285968496265485083367680716718968923968911096562717034539574732349840433360216917481689242168676115689862630461333653032300029840708040473323708111899694836295600654420507024332035206555439572410772387377604440957515176673500702504469930691799465699206967424159803326114787272062695038038271314096313627375114628493808948078620209391248781509089592657508661758683538932663964944250609700812243343673476965773260153501859994264544888145989054917555919826365971730575057859647574016164982569803899726130226595826760589670975815624833892187179242625490513718515026625180060232254371966862956611999233566306041097957002896621411530116225170175152620317164642106796763762170371742194827432919062207618163957519453876060368343006088612397263836560675969842873277191523661806882475640642619143720077248478458799903696647475050580579114876975862034770950494620942297145243043042444143572307286829340863348804848860937810192463302120387471042097187888782228192612533580392776074509609520863364582014755488109617933126170662175422660777795788899804822713423108334650269196584469430831812121536007017874091628627895607351036335983409458879459624948376654590447247610712226258890224385998216034815954572854577447144098973187443284714970395986305279292821306457255400266378064259167627199422071593750209800063909359807866490063530275499985696795031503998795946622932949775441082503305440525519968876058135400767179013945530604758506028923312356662094901764278582683632609543135781330982252797544004514637617791422453056641044969189098146487301239190058831082058361500390211344842505941663440513562515381186116025701893887733923748091747077521309244532786056077152215012453259174788489560795975670974363642103361210649423744092942350033472197481131077494601857078004798468290134531300447041712947018291865636112346379998964199911786856408458575543502275861067045203877512303278700274628082036677600267661984001855374343724018869160871396298751741921288388405441836524446012761829414907877207611383392885074969890398233878343588570925067133567060646954103249970235575496703420810739783387671433720491531326893339365440159441026659944470387724473914361117558133178893017229971436889149100738485089424448935563145702709441822856685200774942185856994169193766718585845345258533283083329241505712614739090488269055779864081704381992345160993709971455084288996711079120794941764738687462791205989007831141766574239870525882700586614296800789602706691742492935095220366806871130334294346047692744681397298840588146285522035230512086132277903392934450305337239063997149827215914144404466702601323842022984301639844369600296212706358771660003268283999262095207381239821693590210002689210973773806959233668569768995596179178769354023727708838763443399636207599484439004529492797478753291993051646731337039566016331304567384088109812224662740595766849725987609300793796302429467998058538784494609027732405563228222400385809319754333486084952189934831436749419945476478713009447012000142918744173609217503035425518344754204436783770449094836762231760777516568061406199118513953361128073694322693554356299546162841421993183463125926689492547049929407037061750580678107678369555434629753463897299218685622166046667880011655470149171966949949614705009603325686282263401223382068067706955341946844241266748805500237025816735401586697373643925389976693865888217595418737250707670500536163130207190118293091858498021056876594110821514767861120749492225955342968731689890242320968433928258125673439070149400704755827322673620548883356938978516971249875979494577830281313774702268312301523431229057267608449827908851741489180275131627082153222723294927537675444107841638154218144497520614872400864853231272743283843754686099082196754444308435036739582500015198501561210069235747060096098231850871614273596112794722858080220782049360448859755091800931810108182594340015780834197138135604747694221244822082097753954221674597055952649111905686607918871071829160377301937166273563108671481121750411379142278454111293156195251570681086237423481328385802589120806308090544635984868481871991542379848349287000502214356040965099930371817835338844434722773131778132964506188398400687754839794465608723905517140818601462282518933528582244082002685139205132184437160769426069656066269868146334240510526263648335134321272081474027049100152043307428102402462426899070092606408389446402173160714663503959495151952657340646054884468719551855308280325248200851001288662785297296282743392621839912515701541758087788937060327332046216365256009928965057561961151411161164918837222727221514735857024282760409883523435867793413863579926652381370495907591812001647910823212728728641468573630055751759321342180157373839909739208928538201493465512153255577296891431731303300039090710839116139110644750861599719551715442966378563310272037113196491732245581192218472392150342402453142496051318222135874219947199963982765194370176184209986181205098635662389098193725253161246028301192579477592628230998190023186191064500368216241848961627790111604434992504131535452090551576890375121303092988652073144663477156001965732461622987946144547841201123946421333572395148890666396972465749288415488096727901898003774947495659959129469315962466881343527281167049597487922518267914127849013857791033336787103443585752371031131474129730969658274555149420452791880067593105724077574346186151341597827308254014995647647651840425873457054518078951984868928689183503773546129758894878478279803408847753365850614362924253925022947471488804851532990113490096456130963348762313395351642364013292032372604579106293045858401313168625580839026355003476666188798439507921345995083100250359806678742288289267385756830523701150114253124487653538965383775683538633577620688379025518663976632774033910540970348811678128206021236635264709637140444828650848760387960494041488531778298354558266125324139507735231801989059273316671496622452742051089153056563133010651235946834271551044286888366704697743576968297983263774636279718723545407031018738524179736060006257413254393372184085595192374061101356504388180486395796748573481189410789450935041056757166131260977796379152314081173379326006860983169245098004318311597839925450369136337218969053473676131741080602355577318461344000554256449613670724621713848388470763395652527686743133732617423524292610272644844575040102415354727482092327003858027013638636144035190214887338263621492652380922186351398044236451755719995506998209704327755292290297062248917558748343486527668656796290974834997057851879207863125795146577581321696784320796146082999597294152728748000730509133879585463565823547169569661416802000736222283233913215474398564080262538810462826558234215363293113619703096996346385740277321049486893204341391865312231608500421941109783265665278574260807459364013567175912917637749236463262740199121166995629234529601549300470641788703858570353108201309366863910081268692167728351416953906097621413035295688875881983116569541110076579835576996537868216462827972685335407860569659198418991034105902524544198294141333236696001019976778983919830614432565755094512004540655164051951820875279024549106359531671261952074463367229316470247065391017585160771240928655392317945035294983194627371701675272496738025121510750636426717849604031049996175560446673022987653925486101606874536023290905355460255396742718446141191749298470732634660456598884815384808026546642851785109673037731556200165255030242524047314781604254152869584608575668307320304279695508092478819323956441805915191557565250288664979681562131486817281269371885163376593201689909365166996426491379533302150197751157075247171351078027315698639415759094414363559991898127987790504400160548244318577393085548070074363066005963992868876062676775418475778274913741126746579495060690430582927071146905049246617995790495206449770298598398243918286402135585421852437793223210881220141187585392835728882667743402840444178533444441585499133070528284877845928485993978998294072099969640447918108373234886270533487082735002917040564600993298467207055541369312087910168885557596648367472222423467614124707952904842307795639716095565075297264540542351834394394367103981805640207855788114389483934728345595369057612274284151703935906592503394982270921647345737331617838601522547441272921381548910978258469549672200863610781827301163040460517930980831221438092601766822422257142623202168009325619577875928987000827527204200076289379659387496158924599369243948618632484946618222287083841903964680419683330971540213041312888499657287763428189179496919537972178035257571929275083437642695947149244013981863937151348255658564127435847029315918490650069980068663959846873237791357651026204581684272859917866549561403705446936866599672663679151792939293790063228809287500745230696291276491013133619978067465766394498610954382846781272010579488042114422563731093412341626592797304309934146840902333871675585585982853565024362513325886375129676899062930338255810198763053903761504503503796928808576975588457223974232912858283657114879120207098701189537716868252714400541753168492657268493142310102815300849043980322379025254897354859433463249762470171178645365615033266658847264698938290169260014669226564420720132664995207311016113473070647610846335656982735813720452639238198773142429308852427630031004629650585395706003071532319978629898901260508499572776944484030504911910979500736648856098404754621095919247841997029970042296741481859062726904462320538088941018812701993358937792357146942709116699271405027018691127118850176507345472320927167540256565309014079050358607689518048263545123282281573655098194312907809847304663715980394105668604676951040063987370151703923719778818420846177375344014231023463727916217783840989236418014841589168495484166741449640301114511446137281680042811941327118039522925746898975812042156655516771650560026236180218182448680676156743508176024145582888026571393144478505437965876342571491861886918248426825049538415942940013662654186168798678359617478611447034110583157271454214890922749424007249695123565707787336458660277430607136436691288572189984953878059823445275354372895585308942048555229328328307006828626248142158530605540549777832666599707708635087954514552279004090127090626228928797830309394723015834322011146218866243968280648165081406641025811231815828037376143783167322183574870211645265548634097276516589354740426782506456168443290265938047564788993479424169638115096659780532422269529441619629184312415162057254141789679948094173311995472887540182607839625977346826353106778551642826909059126880892412333702004438849819117736591627764444381649450619044955178064945432592264228560813105400492946067832737528970753498626262697217224691096867248051098063886483730584944862926568621895330085182584986625780053931355969931906148074805244746920508430261145039899657269645583666688849966348756926268533460847678550712912605550965640648274029667645778492752259795901517760995588864885239050813268233476545793310123577369083788211234135901986947837385720620575408609552759352191206486357014856679930150025097408202617994521284152648508099599042839680653785818892317218918794076622134472071307068442543307165183546558178458912830335254713838976414538526811371027406741463623743200856322220641028049632270418780749808233315231421344130350379620309673530217724041188616022389028023344744320434136494157139119955963951291348437720247280536832602949617227841068312207975063285097987019487065074918266599117714435485652691999436257767291479827927837408407986161554030939528243710070538630969239952273298720532650168178982570719618505178976483684813920422957157545653836981352564547839962297042905207931318786783226821679609846026311347067159651074012461736845962414530274655788534593316029091219879204273655721062112191604792526581250502640623917268888650722673138882980401393604269876457171906013884554609325355995603934309810600549877128694863589019572548494996712152057914968420208314464086938315279540927666058792878505076549049163270028447145056740863635217732678277114545997555372553162931491256523750357600051187256110632753267581813599006425136886659062040666708850897004644341703837179319414057624149222102993274527368686744236526979592822996194791374571311611646503548984233685249007361411598968039756417992082612859445057889626902305863795767355214696221890834915697635846988671983157257619458520852108498213380662379514551780272306097834249720312235563886788495176081827327199071599978328049579205003140660560734089239602681944610292763089508066291341404613949129938477463352179571735086555939586428470917361936156909485571784161076943140082265109998055664642356615004317444413058312550237031170139087213283616999577576545434025236616875919932499805905093691261718840520836523171015810953495285406874133338363333845842499064203587696371330689104070268581467426945038270886724075836680692146131563030130995338799363497887577249495499038470979873051983804639523804366806942908011167739860099532958033397488147101235487590253308891534507635194675267616837398650839700204945057026035582331244943387748612825816685980994884563560497240056393402859981937461544652462825698955352996313834194621119129355891191291408325929211641564428471157664016778491174896797297368595580695498464639093196030230315848161441149180746613798295332610476644714234365314456260055249059923523572165793348447617349900279910221166536597783481253948646800146974163944968133168049662438574234020985093190845993012680060957573832537439436687960027058447826398123950283296563037115471707095654133690438302158587450449910261006140454926225254580265128048231521773221260254173621340285767401813955978627737914512063880057198561574708385130786552262753987484622318743905945430405539707124650549445265861771621299058481640186264922479497315099206251663339133522255142468106151171641002503087170871064062983560061874087674143293338148691436476306768520012512214951690059410350881518393591632870040347071230070448281869218416474151214367905031416612367868042722224013224039873520117654020587304501266373298895564912186077014226560330245254353784117170767156569835448047067315532485283012538455800794519387861643462501513527288706935935923805396497220600655555263859131782508943239350386047996326866719847527366342042167228498432038998058494590962186160369331706750896663395154142627397010234649465184928057994140049223128134376666148270130938778053782155840668593998721047030169648959047240542866878768120352866644691139914320420817278459674507655699447220227416334782018723897147199504154098635120770144931043606459247543898751171104725570781053667129189298122912020884223701374920668520164165030897732959031107917738676666239958373788702062969988429791230145361201153022832849855268958409070140568907606663927754892277331177630262668624490142292805501113270041298683822763552123043047917386984444999877400288701824616659394917018188222284620786307677839565458905217281896810491202855348756960107764598377811448378927285915918715633885405625173550625843826485008260662357558187040796537434897004795914390332454700169549050376225542060022651285678991297077097658998957110939370503391209756935994827558475498917302057429395293536937540946748439167310841546982893878536415122766697699278617232518729839990589219003260345088325522520833034764017547905965096857007384298715778144759961021018929230284550013632934160853350515053010759604615564726208621971072332131037827300701674212357781721811140027526306389435524242328935786829049631982313133718618298148874534003530222706683798234771215706884854352498800137950213400121786477929578002733383144974875888381545863693288166454393230513301228384828343199652456037303411783349572341820995479371199150072165621276551709476840464638124933756210243451811073082745410432641078305849426279042952220051411224426194808004201199398217669628612414445641159913777816188984335398951950867665054612191589630947193452700690415571718512891846356058663815954602369854883268625209706625145997667228704247588195420793336690326821170395747630314642934995289935664782262353045938011923066331960530557229508467674490937070689655793517114639903661297454606228779254667366908732189785992222518684678144450483061460690011580814798154257411570258578335162388041177724814945275083640853346467224026778768127087643271326288273505099774961822064266050344698197798604925061218572734473857171277629437086665740462560463504147251635537282979615133126239317330340984398622426010796370710891281097495796330163047312860665951522040721540295659027038951770238468107328749596707103962271274015328500472772488154018260673945641821637866947482512135212667858070287314854260188434266736744496280491958300109546232180385115167872881379107625257582373042880109173759873807897891753256447269291125666231004269657214882718958372952091693562054119488964660677050070000757179608209351745086216231152311021134990493268079232700416436192574347312392978648850359829597179973386750156847246357806325120828569046704271250082317535258952654754533563458639379957649053935245675012957176957655215091919373666253106961619905593639270354043745644354657651776892557052045281839708253535322871332471238113722019567245387041968305591421013430489822449215254149179920660914080914551524121489953666150218922430838338073272981477661475219264737805550704565221341606836907861149396755232356575523473625397437303429067263465501189663537022835147652190272181490889098400315968775921820500127758768601728780235929471672906216763645409575689013697023190379208599605170146428473890797268745090778003883579061891114131126115492552234486297023953365090866605153089704273663804542567937856563138909389758356127233878758401300710527365410352593263748335105946936926427962337499551280005069122086729125307577804520290357285009292101775186303021566557233873442787814644729230462474908385446168927959250553146136313117714536062711708045072000445909798837402065128058861791694233345004107980314221927924676356387405266714238024106538959298638236769679724834353483957607205322041120328022304271646178194206942121230122109756504900252138323953834297314998090194619880340731336645714185143814605532989328091455600055131897458789468314645350186171583670486013939275192894843349460741630170769902849369635402784839630796147396330534122529306240050903384327370671381185614554348745657755655460406328838419100127946691958861208771776992033151825367405907004630177950863861213880794319787186581612408185041666367556198019315025503324117633806248528600827403390644955909917130848027465688556676067129605975420287582995303694953795059079481381649254166459191354304026637220087013505520185796256065192866864586888323048252605530745188201614658931703681749984727333596795938672091041842617626934953797134706439039969939512368845966456382246140761499190407588909062093491904327330467501766247275954918825405658135513154735752469053944718670061799804943919047401809650992051744374077674596341522359381520288870282103486389197327195874473211144183189118991687431060330419237818141737576804976377270536900707787082979760916757279580769135950546066373951627670793590330303031035140523482019640345657156604523070425296175476172757282990664405145097743595084008297814377726471466373927577633676464101087809308436741035559480810515122882720950756333606364451397891189190352228140750653544469287729609248165961075098125330012090954841893356590749644131974546449967886497241842556554254666370879670273610018924772003398611236754500946493405158598830121364571464511591145019749668603360997887800163498385513575800230386744568332034870019225939921847213423294186483993741736425689464495228221444864243468121012279243966860624603281804702261369187296853417450824161141369562711911925076088883617246477264574913521509485537323336349535805778900029851034486535004629073990888325435073891491691276044651773658027626908151864698164716114966938570122569814617010925241486634047103845727702100627242936744035355459369489106192569489384185152688069511551568448343028086029767607641111427274532296325361515102571730007139887501011428659550223972220398585543768446274848081696802591703455442881492657726811714247644077991317261336204042989428974726788613947982175511025920274950261026498826912893336409011411078534057239589456568014421009384142155010683696154477895986721952265465442259033455148570562201067517264948321230528614521600039299802258755605786420751633209777268001608606957170747299373620876489375717988130602940177980313558166125781488462141064693120345312176310970913862002609934173363414877340476127949724627716688542685550397885168013140709233496542170219881972333800207760121534516828742723736241310779192780465887892573303332305137981575056090864086267529212472041249330547062821238472457196857916813583254081270179518634343966026907332052267419026915224853737678782810737431318741868447917964782993960364476310108061068643330033954859653299242105846608189214960697899669984324836768076407232688909001557262691767431799075463910753440782894474097405062562650763623173155011253373862200585263055924366838730385701504726897727997704233627788314737673424708947923873204111161581722663281604808590633505635613178857024242668999517871762155221369003284303831811263592060474551783248638604182077933135600751496653717310803706015944454653589734792543494759001400840932112659982882014781193251168489368149356684430478981629861027999882363455536474710631998731593474430763573961076370006181544335143094909534344370947235303249122942516159340748512389438158351475677219802149406003655941280468614441849931925102294768006501948507215622401939374542526521704936782004156371250417036993481116457373136013559725008419943943949453580268539584668444093378769077404187185764764292321395258042214609937189804592408256057494073541134482705662195112762775515402870915922438875196827892087791271099059186296896010107999541837627756575373609107172391261801958214742345657116846176176091326124550173502819655010587037672538014115357698946752615439313652267705372423121680988376355768790553023169740159387708817816904764805490914582528945503909398462911324286779058785256314312673552314182800540564081423757182902908418225283044516164115891053092767749663027737403936909632953076716467267439460583619412801926698757736512484589158933073359125346779673382548813186412843602237041226701299304757932239473480525311342452333268628062813676588758259293399338235373931986421472904890890604737841066898117631713445119102248202992738916853159190385682856034952580154954211325793692938843119715141589423974987448964200153853884039862526125096501483389952606937131602641637676844205268695068830284323123597592837380124382124234293716477909538927874952231842753622550382440649190175070218390348847447166250393569235323419314012348280438777151049795222974391711145022262757528459202132400520767126884064472343685156603193727893912287834169410379826378894385175515597466441709518476370216061082101220988229767137516509629878076618515546664525583350280698346444013375923570924469900128084470406770521062619766241954521899055680414934776563540226537176487500867832979814268336310212734715337924251285374078961531530984163247106693430567509960198753073514927353269517439564505971850946536151094786904445269838669328786480680762447408627788539570700439018201024834865345537190222410611346571990576901605340188025227133947728600177994257343112862129094053116596799307702314745041532718821022260509761802587172118941286906603216382231406103617530877325806057029548816651430988432064851948516497342895109070324557866161005421708114131284093026678431437791436940768399093561414009344804809471505371127081635248746149147708311013114285452042838936814577737861740162489461863454504654625719003090111842352702165205621080073549591332443345796128350446629351236862236942987004844513454550081387685793955874738505494287334040470465967335118495752554039028668300815952225557418356609364617738104284033894958156360038153712793552519785928923309979419143685907000462972044481166093296374740560170443951209321068636715573806669927728517798275918161218102244259798336341717359113034638451583564005643611130662654449565526856834386589046769443977612951920924889288627822182547245854734928098463132506703457003626323945018691178701368311257788693304638505758338574095816261197535526673779471446797289765800813885370744121148470807726002807856865298449288027151397644540057873581493953607196707089794971450866373224982389524360283712889597131750820478023169413806706183620328694409394409814576040073066140490736527151652660049930298476868623243099277918209211165189756967164316054558061109976112861402074552221734209638780070421063392561943613778355993415186191165359254682215824533473770825335820587647071262247557131261009372852975303977933141645996306183546240302981296980289782099754996861770813535076792418976992880887881450005332633504969394380076775517255070892222324729800295038415224925777464754931266667422995827994923557381054494452121652926296526476008344470080562835279534476671589721979627927520413969229264036865054601181418193325143542985997802655859485592552614521913807197178577573811566967298173264329525277148513792246750199067361009431879001517528134445815168395615776816975726450383560480108143688925334084116606983749928389083040808381924147295057354403288392274004177078474745769819399648694963614657223852819727233434246959843533012271356218420417432255969620118574289804545101279678012348232660082334561074604184715596584844091895143299953363829318691844193958400521334701997197415143908698441019964507038113802374395493179556887464928895084145238761831797868384036148523820504743769829118900479401732621259319860740888719316033047579891674394124878318347295177752692243560148794770177550344610317929109353103195426061077639076115661500293853692960829344587579442851468343110939180508161479213932636303757293853146773698127933246227248771593337494870077269263875429687538658168439866331697391097013598077178400158512662838516439929397229376142544323913262867679710625553622371094153821562347094338784758154176980620067734743699596823053154978877604975853879221231232914023641879035791152227142121187179052632192598369566329346451932365952081114960345468904151227249749091930892660746112033682757250310133837676188904839923761969729982261269055341774273608127860686215371148357635944076530807409344785466881835376507374967485832693251248883390377435090725710239219869034624907332147953412010736639775474619185173379903158595735825927051840744940340654762043563991178459293231158429895616433656398651036332477343932811801794049110479803537115040329459824880463438519739980578554398011820401629669286785205339838657925076514168880172974944413645282012750174183777319017633538589801755195671516263668896424821520676678684054278936913285621168535656487385717200601688606135453375519428375400158250944224850378777682497186725586926896483073927342531261751338919489263459578079624571899353909798581164346803047014863261596470944944348336842030098174150090955353910582260896760627591195122792355009207885340057094477675720866955717259219087644844603305372140912359905716738786833158125380903351245542417006699883637136445682653170194617360126955663331786878448687745602772985413691013717169247647624357443161957965601320630212241594147982891830151276912379060517988106732408948901466982544634263906997971424998520897223725036717303400116086316896112605144512182758952527601559076963116896957907140504322464371291591223100254085632711011433037944465802426545242771820374515906527089212784151707760817475122830412770415207627426209376715902125093278552447318823909219290074230294636069031231381231831403083245789748748423225005813817964770703247172524508464745688946285183654933594093888411960496908634883974261002034561584826408829364749558346191767269675450043051139809666322440461260963674630576995986951303988059136346221634629785723264851379274936878271179319050375592859124699488716699021923945147547806502543959185856402352256975221687733894247378695951355501963579860016701525443387497527078583083568527955557322294355328615705548039925352474884582211360842798201446183075256184257425022147789925716882922517292616296064520148131628403432712598086732170359330009158955080786958666877734985142025529440575352416669306560429344477794396163606387770357605181717847689671898958764061905677315910997254830883032236587076977790730634113172144148960658513455333964553004655962424942422256784667709453931223205063332861887264823563362772257936289880977607063170059958412148269249135538017169186961288980762807875878837483109920695417302576213301912132461720633437002775152507185869638740473740887244301065132643300464303873582780481667259973394543261233118880082504498156718195563234015102637797075962558182862554692326946715378989930737951954301677985700367014900771144028832448329626964108439593920194286949078577690234902693318597730309151549956524262895753571682980149909961110544302634346328816312756067486167383635752898710935524552900097929286542461196165114780965303983532957574024449744223301705265489978982372549147827049632464513936825950689368845340692768306094514536179683746750608568766958613720978887285818290614536578665775944630538948818055539466695166981365191618125919317457201901765191629140797764370264846338943968293597859277360031050653657120156164028498082730815211191380212417189582144368959077317883394129929596958683514401425726722540806323358461741217592587230059698738082407128067036351946025289236297438260416951859674706588911713993790191038177976646108984229937916879430572995565412427695417180641649399645710210888958019746227655941499636597966486463675596323304123063541025296570122887836354794604456402410655660795837625252804434409730782763739147651972961730300073395707781103498641517151523992999944590648344694817368714487962999475377870642003160064429247291177273859930604962489105842391746927286941354959589873566615654269124514061953036783577679412271191624871505045567226263045988561404898427927044287122790836304811729273937064262380840242642800251592247269772242640396393169870663009975533695329351715930266071636210013926544119340318784535880428444568774279179695548788463589967001752615476488006442709051755640075825038273285019272257440951676492134477630681217351047274598964068188271894425052268381175741643861677957573060984805032733101487574138185472889559247412991652796815909166472387808087367167543892687264806203496319094090945680508908312586291248940553018753593181278477183680906241686523053523132842317307297957123409618129090321497379888534974976730518990552458808002266492409677425014093031038510818425907281896477884835309588506742267955502623693908387353120737696478077875795792212187735176476558646043058600483885759754478712421535921850766403276914257934315202046663844391770532870758622252827416272104781482952171049249471895551197205845957983575454998658084970322582648760124710078181479481059850587267454889360903427483924533196517845313605722055872538888847294558159731866421255045543633949661692658516703890198472721840704387602869972316894726255205161271509755595941973679439826100847541938100501211872084486780131805530253503695669565286364579396458192498137379545566929722941838046909147700550172546743599432628354182744686351632253575241286039628166623442978613821227485386458379133915007724559531816915945666491169965152011469457490491932126493267831276254065251302155617145776161447051640530178033220944896996221896130446541672306977612541492501254114338781672359124838742368795379245008229656283067156093398054898754547291764627750579928358196685099604965586330025303799015995231933089173114782665598895968888940462407287262136002648767235309626815031100491464279333704989769450021597085455462867691125400323413667073100633020433637051680917556431474853528022841140675679700159196361474961901253680466773639900167663476738737725388155467301477915152563771628094694175937581852160615912927356117552732985069097676547715287390607533947131538636781231362209861660834988326432272328890199605599268406182990680517188062460282918843298993210233730099485912481877108436501582435323125932779804307755707132664554195736091649491531808689545990647315421097414006623829334649593934510559881402892922972706606567670026424639895024233033073879134820808811731822237912532391903987525962554401450559015818969032394590191252766464318452219833504237333958680129575948379045672199115139405663134921786339694113891109342783462782957775667755431891959601157076921311659130027807699023661687088320541499385347823598578504319088813947117923076266701542846590484221978250716174491371850333310165454401224054776408992572487239472079693647429486468581616014186005510786165767532977237751084032707003653299424794409897967001636466372132839020447771884831348787552173645527021113860715303673249423668673269310097313309170055830414279382206813883032237914872916081246340710174988712937188018697292317217358187466288395364588074567141558437511200902646068403625859919951845175244948201585735528347872306612586261331963916700199836889855176224315922375674010030698810723377232666194019212983777074902764667283561800037402478569528471684925680705060227724965752337868462249908897605802580954018259772775686704953679945972640433937294564916769264958720122286355810127515723438394215450996596398004168004925078546791274455980948294862980355943362254692853337910913507620463574856656002087200905692620536730353774003969103905579725877836444968889951480580580553286062027143760262014698732704711100760692371229419337826051762139256794294755999342909032241998370589442442438193518868489126307649682316371186159872718504418169786400348926925742288967721821650636556151163852563117552900071100261272711943575147425573812584821423354293028676695342696457311389980744692817186412556083048244863874663027913203030327850705073109125186664506538863901205271316479457871016325245334669888062735185588756829237874113050161686212813567183321387569290061423856205541174159943314993591288474824906263032235887211154578534425931925478579135157887770150453392380451271828175466384454079163884226374277219470737044583722966339851763892755119834142866444449142597964925204860006051238135279343109636976244667061202929203485621565072141424926342729634033770967323990339912775202933262833395718392262360080629322278747947750158297726986402282538835566553828361527341689567378956313255543725637161174304315393773573240058746076251197661386423923757559197102364491854399407295065837871286813471887481483345881351743188470480558833574037727140766447226022913424228032281758145112087616012319728378566219003564445715020333541499247792884381259463607136013003101449644811490103175118262489497969312137317010005326410347061851753996556683288383271902176378618968059613313944641146036168644348308655891248987630702594193090091038610212535141495758902275010495261769569561379983747429292035944565404225531265676852490095100403336453140272579655791410864176827472004629240843271656927576129447981824286477304540014251480102414251472295776324456758748285201026578853473706922326275957892575565578071564313553053017334318700853380731096582934394130351634966873020308147909742912408753005610347583291689838258727178147860543815712726785302107898572248891190476731102040065626847978696533768064101859947635902299172177535553348856649700080350793875996599280235764533075999627851475620226467832474094563994991176693801770168005333618149337313929084664751099486325031138201526916308194192706195019563055248612239240677944661874225996432758484579339341514500208074411645783777800063812075824466733242960188357097636514382815763591100555844542525400382573582154010315152646050687324850091648209920015052666718666137682337725214598368608333502706687530607122827658425319608231819841091809700454089126740212327141003249819728814849021719535053314010273048816413095282526678433926601757733005691633204684000405022418357118904948379561225275775320871920981444782429533660883165616571161541796914552976207939810108823329042409959058617226664277411986500310126742847339367085137004762820174019147147290371903498918380196229024015549794194375159294179276216896889362730583581681341847807642367109964857780779667763916984418728539418210380561020084805037687821753424471445728533544091115734716071970418111510820880250285986298895839296365499630051359432377422637484711753583928107119719892329833971924000007362917889656429038535613098921378693401072426206894341216023749400942461222488531353702587629914304705430705996818188546160902378828656666512486767962938113672075443776823454484490864061120820452312072673595931951069217666867271441791913437316732451621126742393322483012312966410254792804395791938126230907883482496352773421579940956636310262703631099813797631950610549994717699776257469033598982515791514410719560372467757062064352848022147533648108551036509276206774319588169405850091350779251677365217951235585798480114283509491710625547905170579390824440165683505420790124686280377043789182639559407961936122408197171005181804776440092623805914723250584370295286239796189954569177064043028416733860728567505683389353816712492842939596882667856385092432751407013365293367691682925843710974835859881572996676636511892256285195703981923359778529679758079778434455869539317461344498692657828797730164239672681111329186091912551049391503414711674849154390488507543107326024357806655828360070535252913313745070999056773512796779780038768272387485923907061191673343892262133803877694336839607587240910415398950696253354541676442463200590275826141763571843853305128436320885688307636809905960653638904828539436771741528783387970132712672518352399486005373603995068671704447467151274028722529745379920415978013320943416121352939302654119963874330913588779197229589958622339459305402330350782047119320826129547384969819311270605430751814282649430522483126724165499055111795316495026585841188180897849618459371144915602438445677319903966870640748612644821336869192980719712642777770033729668333481845012710038357044648001711232747703523367311464110967602612936232134133137253642681186156800320334830660759540528309838811184652324975271824818327480740911720585201038477361201908006144817218113331484189281486770423215259024538936026853434821275901902866423621547835062570057769583485043364932010736902944380281151758435621672293917064242092716305276861075639661003012581950888885312583550879484820875903150927991773549818535820550243830391810149576645589759518184604611939864669946332283201189241591829207015807785940604452031114398030324658596259998968487020721126653764535358447153736337976122725809677654655118860960296897234805139161903369631197593335434997258682442522491115996152201985830995274826411816655754237880801622036762222653932287431031938757340113519586650812760625769474487161330330744084479442932501768361027999309397927136182869350123462333575669732773825296591507239654922726422302595456597975818211405700322071398730171530499238875504847333520259569376638277667931813325069513764236219304363200428757282638968984423085023888363431821818316677832432049264832547420070576881430213960398204436271022000377011126154628264133068009389436180397926178933363589937468093852551003838668538452435797359033016683856966516199568544310411398529373814993437301625602092604509958561396488561566651367162649363860974445031629909828241256848404219251350761278570218850455973050955243840014084348400121307335793385581767655981626730111547267604049091424182946391239963142840728975114859272024906056841324513804487621746617829842193156211810544866581725692527334695923436162936048424010181572776071707696261160045592253662239932749550903283728948319272179390030178240541933988137969130213052622564964626739439968991013978059989945798044834401107771255905996076207851451099693297897045351295817103012906097881583511168271262575223835366830786975697776834551490631163379268702704937500119432090415348133406826928925580531370179763875802789162438245440774230365665297913569593844401960373367771432442149205245492320134905293664035400956525700228263189541454626138047472087859690514636911081874510371272889784684352138702556992695635693582962040628562827775681961364778570637401135651531442528822192566294137598120469794954717887011191537352679988593057044497131977591169517941849497410825608710170849854202768455839098392072935791321254450510312710045438510401671735877176725290020113648059235129272587417008723728555251723833750242401182926692074851256030779143513409699483625348000908682290936100415112963101050765071239140878806243602934244198954664818269122267496726093344399018541504231725082881173230281061344272323920205842192857896403958743906311728403735109723601859754492368410695748457332196053655470144690746398028270503059954612668766356939577923701147706220326067152617174817278334774773394936181504702396364356915584993343794689843804009132579045238572250903359494496035972079800933691259360271133892498406465382958797380189863730777738787010940495166655394848304031293103670634407796521532974480683844459215126844114967423663606217909229015557988636976919729472410404501282389662298642616271911545986537811981718296400092359000670213054564404731004860405257090267583595168613407783763189171072906686148894625465409988396618789745446958309373118873581965996971015996569704329146267434190267034047819759172767998220343031644183889347610111392392762795334144338993624145822529970951009256596513108808001479196255482128766597810616983054638408628339620501434802288597492025547239913445868671995750717280726271183797545077894510610532486972970542433526867394179997343861708063133663593888304781182814366175267316445318686500870026633842060257193867537766671682696116825662210466077353592629819563844149991750151417475021405387846015896871887636227007934163741399743397989597241759450441223974384441069405404560900994268270186063477430073890064610879119374455117533686546356502140625911261769131929988531589346911759000971946017701678004590727498540778292034669356584022942440294289128660523584437108895458316496954403353820419129629273196795427826802720771765410125206973542371451888353988688877538158807802977873984742142432769492480776185495949542254320195587797069765075160307485564745089970319587641710885998360167145094416651512151305474643204318982913393617040187170977603768364605377740798057861406047764988300022703723224243849745211976315718508650073596142666301030654170631942142332209197216739514694179450169078886653688803975921003038638657665192514586036171766908407410966300862180063573450906924617666414928435435441549325924869154387801442892282136241402930529108811619464878990141109368042455725695840128754383659408002200824389946622443227973114243081587342358196203186869633256358246242368988797404299382489903097329551773450605844366518064677727753376136625347280119343174179474190135507451782900602646173780571277257818553119030008159225667095666762615512423415034326317974258066455273958382324238494002869791226113442637268987605853495734617814851505718198773768608974927086350701585916064807758981634051605349637252323898051679712672770697095062196444664689393737008968340056122732597652213210823276627452611233522029767277767906856747992038704988123803281313405297175929653587563288263708976480144388773455513274645478591223020500774408389978561843767432758175762715663182045958435111756474526928206192394313949457808165993668760944468780703026176892319335092072248835801045619923954403403176567544392208023187084928893933940902378073001204280950152458761696083000666753344250966219453464822666528610679768153237899253419910072952417660287673063894436740852463360233072420010371366326762045680855898413793827252848387739923455109521530084630423614137008876181598306267266105330242859191282459511972679477039680161208421514206352231549107399557657535591108378659714670006480516501584400849349298983332949068554850227983907071668442649684197511025020639805074034754690752147641896010442423996085553929286328358928491953921158911457540811931117937999795385303679968272381612482332420232544813895927336953615295595305303165949276236908294345582025320081857159033275098969389595715844310547280675215824610382206448783684630614268704116553800107571618694097892680443594599180466012950998117610464772799030075559021836961022712135441803000237558351673812615757514763317890925327826555466612894779855144326697683169458140237737465436513406126985493816260656499135980539053865134501903139787546878571563465789533533122230137553600399713218768225760652025785609012951080563501173605695051766437811978596666075290663454104965851247330947860085165144398151186345561063185741925128400219963933114093144622210406962412455225220001780220476413823068233146758017035759000660877195822680410203302864585774589779672148722670086168416477906343555256333048141712109125428359473688050769726018516440729121262961117925860601528954315259874833265835947383511117637698607038298064102772716301256006304339478865198650761705602312328191857713330633493178481640159170851727636519046227112555295090913678355786176727793677280274604010252519084170092780757358155839271137859090471128906688571352358563872085622335390891177236721764115491911880332975604034136859683566081547182012440942743205424974101211275916505154911894945550749966068031388174686030212723140681435085095015706736882903486948926186190264936249456745151500213200404569477399752473402509301598183288927004853438507488781276994459407830259434000059184582960502269845538611207562736013233316371984388753674240976603582784732066809952409206044617880052760571209959612288157183526674497546650110943439444826636541870553120825404306537081085030741016836751990457015065227785312709777953219747715760756970829584630116267406761990472577509127592195329143694238170738501078280646983953219851071854170948454036302478531569148649169975971328555398298764793655407619633102013415266813402537887409485680057386892314382387609281823836171269642715926525260456103699051622323530207532045352286945728972300607076717193572882399135591640704664046393354620838004596429259806512295366947972126068983873751870960078717633352582986329286925027970469353753589741385948811317965940504616578941724547229890943249621590923204679356596300752647843989619353434722905086226249239487517665909925919320784970243468811210780246226311200513292483124898268314853780843506724851025404472829373497070635063423929043894671910183121983005660590051470136277153517571851398547861557239203472437093306772461510429207686171944915751332125771804786257251336665645354234057624486479539608792493808068830725872472260604146701315955023509049160929013163210958645918603746775971564028667310800596698837398689592092119592371910152036996031478524021054132582181794392710555745634600773381705940921941565484016173647239008715507624367465775961097781466944994079436670471336566100288044574106988382292996263567680246183468221667660328710773678638126833951366133414498232044467648155507022708542521896282179375074852346988813545863156968408019970166601593247271016726390280208523232395429752290831832907605030503209389567274663098175127844154664328425530158580493345028044408802968318939140436137151795140037307963705027706064980390584931589540315059638034200742611194658131763498353068155437254368673436961408054289110542483114378212574505388104440345922347271760415314473885326392680381269696093131407773542942995364461690701079716248943178921100623664467777553998800277793116433921777244186159589660841097403406782681972786658875319201986886734854409084153807493826239004339754077599135569039690686826961994198063066757754577139535485498353056995346211366378076256208907521894693227099077116957358935264336093095244141878641093219873472548932168313861618131782606274143003969754419132779814308869221085930599769111784589878620050662092686439478428982291313644551915897306398290251460597028175202773505138549448136750708039826847556082824815818068513550267851938792053746683869857570855811157654720690876741049991317060612641298209522478697704358635056641305503232979859515616880434769553515746891565493106533968453826222777628349151710040137211582093172031001280629583251530947452689732966080550226041166803534320691967176101997868590288647199979950846603530590273992010627682261619425603524569799524011691173260221189181271751775276565665324813057615355890119335719314154130067628472905102393066304531727907173140614188821224933599027110898178744990022119272444071671258597929845581392823328782898567172913191464305528623280735155797051825572378463854150889041001143945881459337443800511102334285987904025094068506278128134261223679245630755836168564081419760103287154497322136571684196786553000001292028652033221486461592672782292716056297149658992005128394499481105508992084500157358302006917383160413411938205862004870275577834255015108035496334290143275012180849265591763461838619663383879367131286523781489682450549277860732756399533924279614540345587514038254834660642337060172943794952035069590787721751365596325252616345597727122481364496396490726072990409956651861693959483560424923995672634700684723091799595641741004261828731627637075057905478111720009562779741465484724183319566383822797714567371515581710726884306888322323872100284073765016016907087925188379046548798947046442187307637381577212422008142498966343682393495461533933746397545253281447377773738105526885799440133151826869494553117043788161147633170270572376070677931277769491676546610400916930554756827181884011112825584958062012328138072600685524175242435580901034098413923514928698175910067353308314449559378087676628282522320804345667645121077181634792419137512400024054086011506121879563978549780867030995709350094550003704609125562365385266415679602209441391909196505809522795626382777684225461095862143291583269249079686518904855894942947558567605364992610221697016982442011948331700952188130123101027479206552727677030572817259752050159707875412215447371057038840384714593077100061663363571082314685248418495540840454879637353213088964609716190803695629122923764834773996837848936250975554780527088951988487898088689456560572872445675572940533167391240725232780178952507702206349693785485099738690320623099825385348926769363576062265225759903268832440824397863318281636009805509634043401787449135153697877054193430713491681922214117061118746428590255247170813162334460972419781733215014747748277754702308995856429685744557776337903972944974933685531025872774817824446765286625895443114667277081536351356690906801669948097051462691095694684659508429426208798326942412563410750083616082588055491579678675486944537601653480368255547458580918337388752724256307729345544515206713184829435111387110245068713963955324789545647108724698116142289565943201285764154260147635724446157651534236687953989212574533093984292412707938536310907399892378960377330874899900644432358328058376527073486767926584220474741998209819059022634395294711700187590304561737647279572150465782163104885392758903490175287817938295013716467516087473974861557801713248478488454102472398174915985620447173642751219771069130773430155743761355046903496925465996523344599545687277414651258705520223790205944207067523033891776148281163023339914771511866053498653227342509925328497045887873052436031155117071442084624557380880597166896960323684328672553918146829768848809355810730323840824823822732163248199916911459741541598476724814547526383129747081532579337682373247234867056842464739657082040288190109368346325238950767295160713440136540556286731002640083402652386897624795981425048689208151062383974035810698573324402019646987556459199500951290843398777452075230244159941329887699281696635161325806756231996194144445526400579950338235881951772113180220859162890309932293483559301290585967958945216917515471706752697523219986235635369823383456908501616205652357364489732175316114914068474425381946468799912880636396446322009489742511378620760055326647789539859799403039186267331389858216398729820243459189851215398608021202078311200729932263261972112570939563009245452126275484428510224973095996570453473086205378411153753781508523413954244306917976721366817679084160254264611052906877306108100114224003955796802836659419400653951318151427377024261665776164152364653354129567878497599782455795757760824714468040815577932467334532399255311734077926170484187546466079082724071061976761352093049077765381437553535143701605621912515622033226280456889586012634582626135744044970134723252004615828346695090276943931015670705098897675324962511860616340912778495672392129094681296225693091711468242358287786142499720041786565002544914071109382328115398826691274386294967512869532717327908362323722226936693695251606597267409562244531092015125099604970019936581808604226619131519373712682744388085440907146196546616535636174328799898335111493914008250247357326537287960646373116846871714178039806370952287384216266584515191529450463640332141091462730026666878345382333641309982749743376978470224329260509139500867781118654723675193636595060151081689966131708205994741557674979727117986615340996963096816412614977030426449322235359226642461359730104881737740050904542805797198414730733254122435841177254351630909495340933043368436441053797656993898573284209586977498739026476616080135236044968944220448873651301403227385140243193831448194669794723637434208478322783646207681520002772314898684217101395276438298598759084998026401385425716029729006693678746465240178908026610147665795527744235615438484462817529654238156056234490941222123940687488273946622275348509088065710231924598973948159751843023457459258646500016168332617328740942245875906469102553323505490859454880136741607223007187555910114555060160786562525292917060413605789288016875413776682049334834309020633719176369261845032342936435256123139982774138791553030399534480260180292757902009914358603928977374802686588626540509932449902904059355896474616918518275707446144777089351336881202798154544850610500549723211222737356627857925542985093716401366658365690426593468294429038752243218804901235155678288664899649550470275686851363692037421950835470888720409629053599848230570956352988940006011321709868602829176294078115115807145078082332233073024755793466453359836807433365418347213714125475083843118807640582141327351403307886843071413240639476421824404939439908767624055815152240634970030612843896350824444073935557602231675860821347972515799644293948875345261068316145900294006742815943118411169605713437212308357857711367618264976443455247708770305033002371086149369681234426830874046442954686140842901370926758870401836219463571255396823622423232153063528227978958703604283127645246398326639319420172691244037990392410440072305260863978418021942640789956369302971608534903888648134292029623236052234787461451070414104296110614738494550577493065153185632454247141931389986641360418771851957915160042254919169223482980535948140913468626760633228496805309830373701227439020601539827079616092691377921760853340764905634273235526221151976835209719239662171234102242729112743803069879464142048818908021506080170429503952212032933875542569768604688109052817678971920336833465165631487084060896676383965725520413428412989851471659904010547443963528606497282446766677758320412868126172252782633588094808513732678343119303041171355157755905530149777625707526457647177773737822530786429863121290532079883104104739358461650443870387161125388860012649205337714540968408103701734023923216541974804992952274289556170208045988570665895083299873674064549763136486655794301578895670052790179324771303791380960954776682343679445852636359102498565193169738811113379310948499227582646717304181630066027025660453083392694656925409912343682793714704641236238128496626089313903943176424957466154984242038414318338579289550183614252914878291062663697729772442529194492724891116607985538125989926133096966137099582490817130440311027470220671276582506157904701450131114693898681452292737751958194118082209089580581039089924297440092394081697686339188231882620198912568512973878109553546831256138984845524366439228550484066723221583568707188694303812653356886058321027337705140343159662147391619987042932758264299265995894094893805216470407919403281123848394930502702583836244269886338672541160376786085913091663450686708299319269590464582967420600468694043332545579020442356864981306941637292825793018146424798288123902694759547943269738291981784386596614056384730925793133619010603268119987978672839825733475025904823579022186788387036295760116651953066985978281271300641639419917879219466492772046806780705375775900941570582793379437818750201345561156856040672640656583718107591845833244834189357952898853864684016673655339251730390446688212261512317427224663417044316634580267399121021523188706393370586597551650707607184080061353987028195470986380937729356979686843867833500961384129025015800800257624170999137729920303573547038059618146065959513507939685677858496655989099760825032914985224679038877850805732828873345950351033129050690184568195891232089968358270924754797091747314805528099986075826821444752246815644568060313843326319888971665709388002017096660487905349012243707835675259315187958876431478075429355721028865668963067663014134615816064640489352487112519617597504728028109954962845851983779484890659612806304288127918969566706261312729712523720211773363594566261956349363713271111457561352173303584913168108566847413664727351333704693790782411282923738304190460440309177856805861538340405394443890235240506581274815880285013211498180249602197065734911600250783544039719422487823038869023542587674209050043937015455860110232896382662147602883826342978555515248849791608939464933619651157756883380966013339280129167379145067055651535442753235183148995015179475259359807907412220554652828611579741230135368719476050954957386518746891950165895320048639264918486246845089492107626443521693896250099246720201071914249510410368677390898022216232395996765913084335288122833374964325054592212157633290082100892092291165681204058896359605535059149130671631564717308022563648902037590573517178471284603642230354671028517960212862589192380675312529533945327769962468654642662340529802186683441454442493947168925864269719013591143151772820546685595220215330263422256042826383898189952273657580094678422085984049295820948176013446088996696288464027961474674151053347072579912406665516122021550686611154545728675976042885018712795416157626531312711498003740255273130680020063054197062046702335444031283943132250598294406775977146890309017561309622290577613661660975077889110609872174016851190070671001384410906353805696592635505144277636272656709723328089728245776866036811691269226396876917732549294242689174043776624988917495029665226864090788729189026321284015787456706578305777104717702793600656041198634574990158626019539394956028822869359470698982490971798348112736686701234885309463396363928808651481615759786593490886142100381634200201321050304403456909683865015191444965104507296646137595743838104793726531075724900005681678806310107814848471294808268494906718926620916761065132438634674906029067934888020407815770742290709647866613342485204968851022577278264519323259106854164547752339671571767663592457908878722500198989751105521141257344465411969703210800691463651819391514939582393593550557392613327327549808665282328151884722295519655929764774069774943806679708397677563319677091003499276382697060287191731531970435180849522075921541443121059268416638106528465567850598774895345339905410447290807455274771266862904595966032716763030748404624349421927854894600976813932369860930271732646128012291210853292271395860021533703212648990381911753185419347189182719494399588776506601603559206378520293052175478215797588846856359570437288436707214689406333471063951983821646791494818799591287197966813901290183570368709543851189018261283301195478181693800405057174530303691109459981816936793525761413319027409158008920745873020628303234475774637022167636681224326945396165844764479616851299660103428562127460280793488629932329953516439690189875882326851473846848554042929347436647346754637251368487935669332026077466529866441705339822219831509813364796798742122092882515865939174135018040861179326151951965032188979763280999495927069758833497708632322280437969166915626793047947716702806290150096352536108155826861238059789591073570140701369062594282499200423029557218102980692831902891979286858754039114801791664823427889153329111201663234311298128955033696492550793842476925933758319635685380694924290013524299633279150788097862145670930252461965529663485288165966003421107152502472473451774820983862346957939900781893894367055727964178363990169653484796875075608771755344611885738010972868329214096987430617117978186769987314922003937026964608698834071959264686900745954861495087168609107172846206195613911312272388494949097786162573133429122715242539306719779825429780373584385372544438398104137928059251142398906543075834289273791193445359143196019987638239851412381608829056305781821706361269641808256669526104796825286528347690248431751130526915920817255162799432749527382473136253544767922820418743062847427468196656121027331321213346381676687701598476768214047766695250858341619405413280636720044691098272908071871115463563020704772481366933076508700722459145029513879051301725592593524170517576058612644385853159691074873731709321581490322119345974304807652780491744692014137161204424230084545987468910783647890908964160278170680627238460159290024309704150387147256283443293287011629499716923013997169195391412131406252829434171075833237370115375126515372988092163368582778104374776668116779987601781584449659363310250094269123970550223102263694411420409243370983735925522787983981450789164965256502262866614829357278911664583341946449922733310988766783667891724534574495408094057253546888649812204904129455117551381529913801083089549730615667569010296365593149111792679639062388853865132213869784216625121734687258431034907006333211690563557649720517588198052116993790232628097239848620271447886307091589117532215472761691387399808428356567304186001803550185921248847845302395957133385161881264953002681516592405337225552579897989799954265909241101739239721100311288645779575603122154109496718123969901377475910761774971180526464372535082556576785320414162715317122249682534719198691075711122644968556073967095514119951991618649463418524621444223610536648121904700314599451208258887297548523114360368017865935357057628095066098726461247503437868786043870153526130057189023710391504049127503268599526391052484151549554277416565924342939141093993155818162333896172006191836862591551581116862274558344524534022450162595538298337214035582559728230462507797113115713751215489883851255625928030415024233218371219663850792916410824793308623044314531634799607245329877854170271892300030532145221574174666623128913840947308728125686836056475668648873424219632650983687225161425476637679091397155203878564023194849485890784336510540280545969392431707457654693619779217227247171415255036261949971101788163303145352038873009667036875169852224213521902011061391781704024931366338347413711272141787543574062463521016827826632977940413076461878560823354912552569236917183153688793233782995980587456353612325760391590724128325118516789379851735894906421528842894664532760259465020635243508879642574399607815141441114078935107431518326271572935742811250932622824659791157676215467699563964666805980102939335699638563577652173989976081627712586397020610161706167662170150870224003506874672865652333889894240477444475155681552868840035611530573678781284221769314928757139139347406376317693206020258924096826622425070709073592013245579143883606104153964645145410892559650092844386583649764781657928573359934992880967646868150375793146402160347827552789393183783805115596143305019937631471945826708990791168513548253602248082355276973507159737962934075203066652508162125529679283103710767332393539900811022831722987892607862059804676314499111212227889332541670957640959400125889694453111247702525719214953368148124311642280918934429122403195197157012042197768243527762115792809734140880389784556891622700664198687342026072862854193975485230041448509673984008937230386669825671961195948014193173661280020807710913254538453549737394985055729774061158955506749757532464014975592666352232853348061844701203419895244248736813327730822487606293673096687050563715957360536943101031414715235900494608886740900174142392711850497745166344468749814572587339982844643518265196310531917828108960536627903818685378796464654780241991962823736449815367401003343149897482596985873906419914216943032712035128869110943427791443014494574979482840453462247474614069413262578216491219442247425417110019829028078322229986754292916343734929938025730170247570094594140376880977717393228307925815448693248249196965780784741583905839478862276614122110026766749269670945314136892597493854804707142531423656043710327978607485385697735735864587382821870067233490194129827643481958763984308214540399448845080389324739888502292863365431041530216975082273533442149005798572881278596115192283067379233094592135147056070828442163255818405053570549283028087537169720966433915312102320448401382292936155873058157990867048209065968778070288200303979390589599606731358411436555580280928069488814116243535998065740356097627767658864610422401843035956598275190221854001984796850364496043362433005736161758952239402950639618122529626303212595948205123515671171137901100531468994755351581579226840689241095617062261149687972230550379337090657922612916271641231265733396749613223513690080664336420882274062611430340070870630198425707276979956130623029718365095543906826918902302393007703466854324327649967065603811178771482490288989175386782572100356074006105099223398350447820027229046645792039294962881698760453015193393186192029361981685839422806581233953533977383112729855439083941353366179852319350548485426599976513213870857884042649930591519246074721268469120100707171028705721618896118973434639697220413287808861255400392776104981639615030972280166340814943990092789950320879434469026540926155697839270946165814377198792070919074131376324449226383762865479277702343358350225581033608953621800232800724384744695017576043793298265453504079980299522568316359283472458153671902774197298411501143508178120098854738090909797111403124569146060194419764451721188468703611890069727502270721181149458260932948108857482764350269584288400456139905307738347077301688536369298781818046445308748941547715304345935701112100431779562246111825250256454509500777014533040800834455187546466128505538831112255337596438549747254598688386253514164734316759702805101250778899899027426111682485974544738307398678578385534207458403230372265806487824927611710855873255513071293530446178006906705228234430817522986339899271863198781198666357415035638996501061957973963533371270594551431403950671288302424882683995278283495173165171200606920481582636934817033585706283131550682617054652650178608614343818647631873865115011266078809356379683601867554604796744937759791120860853552535460548814387693708374118951498701330682509541980092966366099063096482661014332508860515775368947505119141393198158402509280974809460684293638045904887227780248959779274963060673907542304350782852493070304173227287227670106802013379182309922191724765409573699120456914513783721411706897190370380863831403103418390046580984394874579793633235122866137419406908763768522281624065666793720399777502671371869168776983801320728335499380617368087973983844943407946479150773679051656467477018804522821289808457504215766787733858908517936983910878115139801836611904179214617688957211860493262438261541248405417974803136501157770273181661199987336687600484731525476228560450619767037877287999463956950702803802621143234302827244586329698006744888518333017267609698627817416854952262892858612528264928160971886484519832235653640442462975060094067756193542105295833484896941720690377003899996300099166904893118356479329807848577655883080713405353946667429191807360873094859750995175385949762277422537603720863498616334720927099298208358829365976590688803934027395789014351636213936900427984948148141469615012929204105831433416808972620248718329223106290039132544354649720857651381267053378153183925250206843721300991685337525239393277488010107069664678301545172708376951768588536987546858503077537745469934900269309941470053735030944297562334493091536038752498350308300171484902756739304263279498067021497901906426626534716793599117004883403408714486048360858393776543860852544153897022642325659344537859470722271292202891616683592323173956340341570661348031072360879314719863067412398536861700925231982620694565011983102938936631237808585798484040184458674320579475951619076999804868029464960179855469183516531362957632466076861262342556401352139245389447399636176045259689324791181730042848384254147752742502716052284850784653339583885698779624802658023551896634621972964800629377596040729823368563354615878139043788828748966798263992020529586207514868905670368111586316498401457336101920513721309557888056459736393015123785924898899264437745539869056275664253304735718343352085621876647012000859592430877288215577401968546859849591739979174708828581973236918677820088573381939095649519962667403932447363677802972670615994221221264476723241929861613457296144618442430598400604508397901053350556275478177819558586831316884045542687419899633218411616920731175471389149640566595150433674202357032831041600137439913437040760150596598633886992490064231316907015154093939029960310429453584561067321576528149498731135931210365350499163234893876980643168770309475032602869745094798725057232432579577625168536638301964611719430369465924191952926776027029976285318259439832362143029941339394745287886502516237373303564200442818965468283205314294588798138253201424156083494660434224445982566618015011771405993245378479537766700075058370185894222226875096763115621062201872620191287901808313313537619051898439209003017274714708132696218670933594037358535664542082975490316495346683380029641161414638480669106837382355243693932649637571381080251859095496220531372654859483693327417732825786577874630638768145340904553021021345781461936609760580291669176611145692728158541437916826513766634408360730473323938763986626828833937227362608509270672377738727163908160694783016974469348880176421325814471353382942021948785084693282556462969430165631560595752708670633853225822272729794952465578784902970255062501035471008629774112783778158911554367887514182049849402302103829359410289692680869195439625708820581899320962419598561247158958621602541967635490803391634229745799663890954025788530112187790380252137727394544526737865202541812533371715821486811475235204130015365161637128552629339384764521390269303400996853970971701027208033464872957185838133979920832877486294769646117992624593516967270996562543747762108849054927130739402195651701661259368576572601726047209513656401144959937477216509817862294946389404052345801025585631323797686283658040525472283902109186132736251202796248627318970726083600597568982760753612584435448045508185710037376010737096716790868792971667174513189886181562865651857490826554669359528456722969831243268239356419129442060843324453825864867927617215828737731056123528707587136629510300830871670278607761796127476546318461145950573133314019604055731162342010675999819529201103359143617835635842464396250364757647764176144417868148014878256238652122363110763848481132293771392868719675732598215557525315701226042566481715262176570427490243794160262239812213237568724546743805044027719441323831007768749418148199229046985788330554532348329080423320159830972660545621359860905200333137387449116972697009048045693880977367749825102792620086996593889139801855399633591440994685012701340398654717607238089206616879106720848565388558038123146849378483696125617923343977413883707515191298378153615726542744431957526286583303817170116435999120859096782193587799914488155583707662869928725352558194296634871448777598042314982164987801555805656099505953582862086601093307366795334207389971067793971731500191976983255907176447134133273762197928711712151110528198231830036004903173965218560199791853270062320572687764846873677572034793905583084374555412079597663869495076275809306082786588900118831872892689184910350303196563624843659028327747217800835469994113641653687519099974019292793469255600262889244669115960466384572010111412150558658057551537833738608307978760704490673785630323276862195705109807326763935962328425398402564872631430566106223535360755241786870923290215678878493086101300574765793557973352902860922196901218957895102630682412001729904581271098216245994012372358550164784837503556409624539612348710713571287091074790985265480075406496907222880899655506797866154368945257504976549834538381714254962643184945392902570159516167097286786659224487521379027920399895321649214773515941235145228851665661215925837656577072582950836919992622360958727611435290200428965687096836976614872936336050093270911555324510293448402723399684481640272653725461878781737494071108329978954569606329207893011433704169284587241350516164967167456987079206474081013324891092290204030125736298969879940643862722022684072963537607467459517938859329185596206791707415695747610932936695097333561168254875722185120485253135819711985466335055696753720650983881481709719737776630059256515575118054614050121206221318531742105928918183862572275716454457648825463882754796094541951699093895081611176931754939062866921841073247327056220274883393650814834548657590993187862852218433468914003663934158272634542229285894562681807854713244918608246318127218364675330729930234189590703268826808504717911634873985286912139692659361201052129751035110883470186079153932152523948879910851506978299768910219279653542898459521980827758945917986392260508419495281489107209816203682227800502544546941137923079749173534192870093399290374538608315167029073493758145522297446263087323775196673839819305937236618992681331033302907051080104457302456341927763955008907921189365642561595967124605136522581990336244256613688255981070345442170688826564348340093820198547752136416380259894501132910565469798470211759317481093832484428277688421488060062241231411493897937832863708062227436663053226287231789245338383728168802200811058606758950138750325898783187714843887757346384398779729928905015799668789375839158879590099668137027737330466882729044584079811298637344540586740569125923052268912269974603780426465905035118393868843519217005413086318549535349989638033804082715074207269369646286703290720167516005824681749186865772164429975598601944575324791658544626165058791239361681523252863986971974001595491455688196090228693153730628408178342093204845380427301723715410213959082467034348675897731789868364841773700050020846927701671662305180757649265202218221553753948385655360366261237787658809838739857728649537512847347440699078757157854362860205514409550908941441576894173052913771386129760659554334319025132160565153436746217146884265628060053082191090800014532405393552838936854951361186651287495564672478338420836035323999744686547602769015691516423433062824296355597402339450914709426895280274475698740946828275096812189156155381121121422911532153206772067288942269184344363440804133164274034131118796140529610031056179600788491137320568203936533758634971297051545685221121220251378833138876842109612991772544925415365465022511957316668834316766041663355455673371346543386262373688002827060006332896551293525766166482216780736291475162322217723050399719300587101086426277933406149315995761150993518257196079939972077615239713796830424095045483514321227134952281919075254687558049577874702618403817965531950115368167060087081945417558500536683794458540312757043562464493188382129679823052591500439538547109227840689519977506084876218299381592811271748115621350761952805537256354146984612485374643356738790205955984306311954496603974852372192140941836596246561039305166842232121881200434995773715441181610002796426998044068753502514721392835774505128149212030470565457398311290746634147728067104469668022545925914766496215408321590309798246613141187132323218169184178044070338199929690638612681011041872818477675143036746254098755263344338496478600081518548169125180009019528271782854951048528622711123812606832285829824822676963504307089921963475417512987397415692769379663773915189772270386542247875559515261471385518148409768121465021673310930378246291118497490945403353078794617960129370973296533064491058880275591646432702100685637408333645988734547028861738513002347663802003750752427013882925518940458559182594714080758275918447814835332762416395026109140837122219073690116479011402534620777104680562544795396369775057752830445298614643934796845926985219186111879539162554255741868490101354766986514967236681261705044450026856119782625795005325580783305615850327391863085632168383775297613601805391174789713301779600365571385339995104829715970194508266005103430976217566815781373696169304283458926305165557173561816116651042870891536135645813276080200175214956740138321001628095479085440474694257612564198108541459642998862241265515345723874320179270560806881564737425195875461009462086766324339171237028582275216976464298128979137640510595014983045680012461505914958699131864793808652656225099836767124467431286337214939661619691948667238826254344964096424364031684117595063326561536449779861610510121014363847791693342636551669393320620827750393095544828869523262703717940846500577355190374643206805534875525339094141033751960617182062709904117895334817195988801807968219535583644252117310599957418777567094252090198719064403336486689896471184790260765316772572060328108081562591192950095517730167823843867467981935691647464954922955927011453765360119363211528087453445292679194224411754400866935743835378681199316018202476334036910120819255010787288827301551747717041352629891305485096453212773696665885501319898107920562555330109604507170423563835413125648224763059455291384511537123552924373457475834706964205141642747889648603633947891201666842108964471029741155003816496580734967580344819400060309704912810002784562253655473676254021990872217273538299605278190335888825661622566027225069391054643958697219119706882984410679738644162988665122144888428405037387050706668210882543266389853074594860237243151575143610296622998692498827633763264593862129767238533251767469443812332462133219317024228259371545294390497337548432100329549649418183534764254167046054282000969287903864837763646547021370441579301738393446801299997714888213313273271755847635087702006472156339245814595832611352549456169738399699563482166522222225973632250971148951353438487846541723802688957361277747678743072519073408119295517640726870707949557874567262796821732123575567288648947058377320009251368108423649555502829120859908172263045185498686763142100596214348746222710595505139683780846674577311436801756610288493920719092002448838008570635246226091520835794656943993832355361516053641905567093787205640952310287967049151465592847789350382091707427022349654495965097377500720378442689996688270203434094881627943336794423062880326403494938456372793304033589594031264473300166547869070522388781730247741057158272919081191020919145253919497902649750509565030833814104306776994449607667887050807886836688246884475313159697759293235503856204975275461745850415378427338369029072489586977883587010068291141559647508141393903063015065239062115209137742513154743448630494287659371891099014714313286631682605849481052653770621198274824024109956429745108431166473525560012400837619094669046338498735122332137295623973593333499447778075818982934354442400308627625627751696464282726165632236960551059611372479692172298875582388509232228693474736342750977668422992206029136381290699553759963913129738399706118404216618759579117473002454529322632936850737861633530369305983722404645695440670335891115155923159585047068923386842144584802812553776701883148475308142379425680197125147325286626867181396717261503217378869528252821760531114751618922442534005324635513846679442444301981253586352499985053344189567026269940381146828714530697161482753432703923809391739565018142182929692237986699709670000013601038632874202927455669207109473690901249289876571952855437918132618445735301473887477150873603011025439164947455370467533546889543819223246518597569754586647347128636280540259341834970251224361230711360235553286816988366603163799736592778440202969532633927968881387048013994892234962742509319837789063789869575707558329666370448129655960879029660513035131862902142116223102478360917836226507301876012107414165565816778825608155101910385013403721500335596640651007878951586869166635410258410263089201115807673058932101644462490100826668751366429795501428284173023868325743264239751407802196505326048320247773996423444560664526392120668130021071606121967006627774897568154530392181460678663979563083473505980720083388781786703277720559040373463571227043706591556153340659800217175186322123282030314173970526188595426771510210800782082236482385669149881006815202326216584628238884300158231876598338508286203375716190500965277017235270071199259128704450003323743730391934979814354220641763513158632327935906532350918914658909341907182285642260693565468721427556325867515520578394065086784553889481390464395264060953869859185461250207771550367233730432211326584834684784167387863921259205186972607744663511764342871478015069442103690638010377036617792741330714346084083048749496763706030415687359650505288840891950769720562565138881486256627418969653971722413522615599782530483355469356635238166135292327190173287689064512775147467514910395178980722350332507396906990180343699337817567237176309611253210342665753057005557984029501922689791604312849593846204861725372160495464385656299912565585931756626398793615533462229425456597600843884583811392737366681054548268698379184445644657769484479117827842880348935841460870157505433910236823760619131564343938087031477465684159841168338669084676856998643627635636182252454842628513866149575277549030694098610538697725970208634340236089034164736799032459217249793621836161361422418321573723749121542150564957390325518636339435746571944817469077008509785103425050914719710053849945762980255522959708136848533061706835753907128662814019103124969206148160571412836791585669667437683500560235089924017341400610306026729315891151536015533582544896724065814803566214635020733445805793255161793053939221551624084762557764035970653321135536973396812768454729117744667888662374038518305790396622364060463938306731913300357622104164903199559697438770081140345288067733869088182013695976233166034161685153925863337833026479411312571190772127133879966259594673786705229982259687711959358203087833032586817453424067739545262967184604362506332213207361034462016449785746644670216817181466812488560442945403363561713497936769809191582117384383321861634873454640764724051557778058908582222511254971375852078896693131876129001378547858390253224998695663197153181043060668038838833602649346150287588762169646096276606550847225805210722069901689234845938123775294492840950179459426687980454054067595198443333913755905431656083046036836981624098122386289781997747647805748361446151969919661284953945296076927450045787403709947200901227599082784355468064831894613253615386858926087741610913745633569704654704629744818135274726261387215385086895645997688553234463801611883142636230588417250693590292223435321797476446578449965435997704233596118576163566485343348390675008183444694009720997290203089342018578766241371422052684837413818921952023846653375477187923438447358601971720180343480130545722424593012328522391177159466440805158079106418838497340047864727133708978558108772913254732682255130831325947865118796206124571549845129324705438831966071911252961171816472110322072121996856927174399595302921793511513852769531669104979735277137219651163202591535287141879000209342953740905916838520230528609722740621694297225547616867548601570956293059031941390640149235243280691074393468456596588665830110469812566773000273344857396358513481980104442215926166302537586352570775988188511495284305148505316732690903046997826357610494635838765614107423607645768238072092334086299852312908375079376908428293319086620651366700718374566905044644236406229546276398722245384477420197507966550298081610779728512413552410228247125059663592938023423512634815585428949350130778926677940488245871933209693263228760449582864110110820662737171928907089600656424085376092252843433370109536634042815139880692186087343230557475773186640600137108754125187083351713577835334624024440056297871827060596710483274214210195855333411629482565940420455690289865509439447950536903310345807971318320836812865482361844590798136324174729337143849971835017344348546276128822575804218029373878323067727253492647658099895703763291957520639496905203817241320772844505204851498462914379640355997938636960389402687876414654705672119431548956972358009068473589936653087519243013997774980775595050008680993047187233006072676356340426124046236517407988850585007579864737434120359963052960238448053871035295953039429120091574156348564178288272324331597655063034158230435076564404688202510593458758665145868907268696442493178014036318057981875091342694910692024685562795996308198504865482551947142573264731249634215752506385803642412868051022229144671564368226098132531823039050229288578840346658085687076718491171641144804286446013114069524141326745548299555144340810594243073537285194899280542784392591510422699777181992556434469033532000065498153581923554955482723430631776212925115033498093454324466537891569724438208353402908319628033675735423438642854792003591191207448021973253038388210619382737609610667096793500604069311975987950746147694246914236291305524469886834123063563695490246942619517621370942459337278909297067135163283950602220618654151495532307742759294480194227086641760303326101662730831145041157506658994641052164142379261339780134695000610516571010059313463794670177460240422043518888433844489273519491139634208133896105937042509162971434033551213369575395085634735776631841275218392513782567686603167148297416633370644163164185095268013971079131143167968448272017763417865883640776073751355761478866374082977013383155920663595349023643439571237144238158018408982520612323173218098363000297113442615917701080767046843766056605376865623883949769866748454011317010335716268922063471775876781399382478372664367370057250567060190604171480824789223858481416230299237652763189018504694341308866698842168324082603927274619388063122232365629332904936560608271954170186177405868090821611263910218230270608423120841402870681553209668990188743671313978823890687586237980099126213611398738700339782677835587088604457998290002454188867815660029832946814142840371580948334075435032725235700140156074284862293511723962671697721309119981377289579742684953707013460590858175407225889472443576369706156985467918406050480822428143724308709331854825736754186144822494150308882926247675236598603514412813303792309825330790664978393644862189284346617934266069072620331021567102226489484299822057982642877689082178937097892290969513651695631474827439494151012247470151125558184211360523668712174249601631991819997878902484216105018482722402550287175800083712669768065905178537456355971435901323698396308090860811888913477715107645236428528985231372514812674330116714926019887230237140249595578394776188347504859879636922100533883346142186887201245763533697345889495016072254368036625091081797436777997477588711607086524029628978556795146707786302955195471190993656509014651772382426295333007228620440580627724881354475378806107735576806363006578381916913632900134633412091533438699391957750771286558138868609034162585232196386948666623326799912696321888732920318141987875116756666706685955725331558095726154082469984830728417027559907694795388742277586430473919391971850391477576386676216347418143691849231130586768067797885486525032138752635307026409606097043049486129262485483953146865297108937500196879759195660797134182163738884212747740214220504020914022248123410357194362175993153178437497332169197095373396132338115565184763989924482429707015737707649608706477392619439298493734882096676575340977519810785709776067109398793388710019466498587190978786529618047146793650520492273646720033864158672805708306657835057951941058098249296352509410549478865640115238787955402570713452159927359927870884581106874324470579410842345191833203967620806472081644009686490962468384933056525591282297933988362317114822661947570675722231400284555935102480458806900569398987196177473527135728058334506670984892285065368945429190046801065919925114209051027168053710768931383734851863844229989009694080292760281971343368825083648268183958725709541045486249437059373274783167742355543030157401736979850514914394362974674098756745739914154379237527352761499726781424097770459768541656473918848035128757236367168053222291639302144837117425564533657568517774291639716382028030649847923423782957361033849524071745478755402431932272946497872648361352077190037853159785680025359275515138349135732878455790206660968536310188181895907340693735677126657352326079385915273098035584198368552125282636515662292278305528178801701789715413371150230148461837581113949395762984401961459579089337364562255904765615544691242946685328724183742456767261506718879440373136356630528167499581822878270714151368229968073662480818021195045001870116673127608213281587124107007024956061095042174364450830572710748128419549007237007630703587430336721493834844138566813075613449528342959045070754138482223739548989024552097287181034110696010411517625975805471062588585830443912379009514165036040667561908442581776981696075025084782455713951443813820580347035383870772388241293444095444283070057666752885540986903455053250865420973464513088135789601676365585136951894632846840851001541685667611173147267867872179210726846098006217800169911325414556938065787749597641212142946899110898781294624465780514286776990483734263914943538096407311770319198776886510860477370596343617339113085401332563837972185890005619759320937002934795260098489456569487271606188799979039365554724162553639510017678735089912837674215422280880075845943807167488955294121729713673371597316265444431295493212870979220443359169346740808554322107126441495225171913738544118389921893511918059494521612754777084001695716963494284237733460199015438884028363818304713777176869895719575513143678495763970902608467518099831911715849983945726141816117213887017388961150609328870008515453135443736258699819635101679988495305966086336570117913513130516022635426652253342657884211687813424314953984791731463796930782114003870960546422804007381342603668535216610687669292936064508566921162996295268856991659351356449389727682533323854110311042206837409638752593525870670265432506499585562092013594839536484510733531296431116657346180167294410078485946731804399925911161214347565764307289611664345995864936779231005738317109412066513487297513328421122448745838779212902931583336555452795461062201526862996014370006200361654276325015258704262982008014506133543682139240751656226621167939985424811891415762843852695781237875403790341559390297897261231857453621343204125806626078841361335446504394097620312706280547284685602966729622394902895910309772828766766421810505706609392565300277882376627518527601058566515485987544138311194185156539620228134251955733614413050183192374527308585057229155378124679939720292454971802269914657303171847491831086934685043426992786209124805419097188428471676589887866866784222155753445488628686174778037785646145617266810213558983906604810667092017263638349577326986623861909904656145278685824884733056071617789455797683260461412520170985447062022520849688896868942646816303923907922108881921635120774742579262600773385473041141296523967141666202618057598372558386810830589182216244686532638447368403286847925200490779325617048732870801281918392428428692459964419316836941749103167738711660195589430380916599623965270307372975116905632949059255574467343660193051914144739082656100887878590279941230897742404609768912603287821118831749256530919039770714978443225248783051188385690758211481790553090821768732354835978341111257469275748978746360904929971004602806896685837344837818885264335016217864434014472289605955471919546243976805949922264617448813292904873190790013774963019744209731626301921926616350517455007476051726021538591664279098961838048902124961653095596613548428263109690704384528833054644725942860636358052461062299326185927105533971638444395941096981054823559782717088296066980415664791826889795413188648001684186270757705173137676442059115271394281755847380154837420101533401919902724090824868421967585081723454234905514309702130764664925174599974327138847906543066653608550602045613315061208222947002919204847901750181845110914881819336419304990387169899316035398168209367103945972229891632021779587686367399713436342409542215393213495920118631174523870321155945663386913315339695069808364301390284650006195515472554351489189815736113286158844142698457449034701207840871968688400535754932629173285354817643782103919102988230082646719968515285803515814926799510056467600217744090730816436136100848860714284609244351730647727828089256069784696342256812516283222694480256185356141896351270229194114013031036472584799428267719911857973322033762421746922066199595500591163993276780624275847566516732452848974783669367508868493766208422189111738057692254339853166954534335877239086837580830438390194212533794529054564416815880304027343053375158302636497344509127855030094308111681791809561856940143068944100161735764070650179932871500739537086766881693842223715286878404198152296132870435295250999183769459484639879695945668847068065784635835231358350635768033266543688564698264758628153914862566817034581261645746374547336240918676372864853935941688699643738389439742052838094939810646869434716206460697981104299774261602429720910508746872177954225308168235094282124900547548449355523226687214331976063035154459057204953681872264451388850434513077882962121290524757380383110390309427145520232047066664170158056381688217642263450718708246274696320735269059293001226521488216341313259539720653829222545010282722732668647838513546529200303653661884806302456382824569219036682033161568049082379934550770829452865749024580419729283312772379378917886001106981842166029980191130199198955558998265096352140710358432097128379343868527751624934750749048290695007469455147462213576817194615228605649632219790681753657953946050990084020935638540244248616380630092336964736364201166544040356945140746509688440057419566597194704698707337397983955555367789324584603729950928501747838781865897154145817987153273940501257040929498730498184599913239760783303443751309164480640102440119508725326213836719746915314631678893492227936558075965956643148927326831442217225320023116414614911145162658588628144211240506345063475535294102807212904867707247732999376929329363587167990593706025551887250502700814678379914889551885655099216961678606756302883685560196379955862782805537703206652174653134352273131400284307234477466894278329002845708074479838561004780231018290256021917934317002228808045042742579662247481160946613267260727382191513679556999605325207630696762283153554369345342045236748736350018317402620973842730864099772902004041274015456197259363105866823597781450844202841109208326014391486675261501256702234188242741692562611581698305247461519192441313778089869963730494426170203835014156158531973452768199343489264973395111214780956688249424040675575440005434945735096755199682850326848166795096348493846226060429625930337517889606448123354014911962709416969260781352687350890336679228059201144660603300111545682848842821498181631082655336108046082129789226878942777054450784253091344069493138672483148521494025207475684844929613927018088488366494620893712748782363461412801280443320890117191072460929280988320047546810831088706084297475746317410566454471751733832714612762559691895483441959086596117388584199201083110757463427922199850764637350057306636719619618898310037421081055881070091566646836282895010960598087926546024875942979376253626531857036018731556572422842971507895144902379665090167803414258440530444991060640379782564697800816087416959713306227849389095424021486213728923702731530164650101484934760964943006233199726746194741244417934163986889216749761934787064991291437571818266862782812720057555584879136584266105105448973310199126367132631638345124197275970151408662957333235556889478013068561716551148506465858907432737278036963059619711334149290028686462704995599631570463062063451902186056451245061005187237322515060957246324383572311173928406597556517412750564763684613087038787935463991983547401803827833633236605478749631391210003886196447944666072197906200182092093549084327105868891735676638399176319119874141379541153806166427921571448381868307248321251845850260207990014327010300855371937621708023226437889494637372025582486205800642049701339249569885311228445634919765147573023778399309597968421701150409244615924370894338432276527079849835903550681480175927912045864167645367933189322364946426548150828885636743712549309196468706767795110689102698855070883164366171869503855947426796930283822245704307810658707810996615297191327678202147663685916885728050504301776683664133495169077433211083757116572786624176431371175619321774870461001585709012027012858757337798386394412947829890076196255684461956774986877483361401829281934111498873536602544613779058164644268707895948452472562619747112737646500940586492621651149455828214674585924046970714605392776593650649966507696964350717558769455483562816667346226461912017091461047364393564756861623577434372194576611314690281045856263278465274092408120442243300290127857253198600768969001271662642239982304492128095832426304484433724394694122168515617271353435695428992509119132707691352512174342495654164426728067893439694714205780594167714782749828758463046413917427361006142101831515981375747346752176983779685925184764893153376128549933942985083468684903434275254818914287910277249349566154759305498773913063278091208475386262214274709242969906572781659830406448177858334754251638340843602124517616112291083144601589035281408590023668756411398837877274216487624493669560298386398174093417497035994033610746215015340150401072310274877252459199243203139787811401635219900779752358151961009705601305021065437108984917901619525148187365154000868458212224443426684911119355096102499002824636524891651865748586276881361400756709690884382433440964649464029960562595340138562923265607648792449352409552596114635116759624944991889474617169811762148376250228269669994985247948555024350906174336994089447592456364613251453527498171176223864034241726084434494398966839459078936141726725525489557316316790821922987255826097729575800598898604334624063095534912556518819572490907921165666162063492355413153981512292388842620364072928211280963447314623705028137453360303168585339666510469586387632997908593921896624683522640437244866935077169082139454082263691789984819537677936993789542314747749216441686309933269076488975457378186211399059036160422647606845268631533409241729939504188279870066727988063212101592412374056048226572705367082745461700756078182923917087652515693842991709233301910527891299464556773503677631082912234329376382285220636996206468073615460001709099365834256206219030199195250429070752211934274550800529074161698834826180414906078362092683187287057821930852197585051604635237715007301293204043229967155688367253222379977298119082336956411892238664727403994171774204621959444517327915181889990887439055991276522366786904781021657233539184513774598575563959064084678399991163176480484056641257044388377363659591593228504130838803404503995190989341483735940584885885310805064088764659986847072438944109454896419224686285310994880217685516354744534193262774718243220580808614781031697551208212657030282335148931320502457523691440607223493206038197878064945690832231076901312441329084602029792366760236189421976419366575224056497509215458181438570136999112399195709938299583271488153498320586930461406698525870870369628816521022349174073572260073805199807522047795353095619338951794904852478324449934410617305684637285724910442946353704223507034338525514345493109197506885498975119365034244200372514409179042631443187793232658631868940308634523888522161160841556445935774687406087009947150407862318542392204328697468022609515142408455240274496046615620658516773653437775610330916429672709067447627916962846894030751542636851320704137112002885597330866021124235905702956653243709480283418717023518706288221471144701774506485212634139510380672244086132713484041171042975664008036441067742238173956698367311708286355610325368462165227843327351636211692734249442010453264582410799981566229386137298982276673892523497766856884515318169330858175714869423084529034803485975610690485941683117598209650380698735590895576080094580221970350651468651767638738093716199963392353879234570268461167675800162869478008257681805705170120315740292197469315331286859966054458586069542145348203269920752480050131080716322736315484531893429884969216079406065489221763187567309818480088292230588662000042028740508089196461002698344026275197385668394552894804651821567523478494738590890930510067499584953550490647486203862717791465014139414508248992170181063411958547718841723934342920281889866881572624374336345260318444325041053123342546006203239741324923129593219840853579621029455830604055332508836545570567702074800880679969067915728505508760207999412762242528333826601616102668802074407001230536680880472871707297226219019045121215455101640779858978639289644003641369954104240223018143203483231799688681827344789003733620844251773960729934399970471658481614717982211722873723184167208431990751455988679214352887097094437048804366983419855746649984352356401008120309137750742539944606983064717901233370182444197098683370499940639504259374318510016195311333294102948216223665857611137561809401939451780891404831928128853956925616660033891933072489008723320880325731318394605786549791418379628297795930557832651591403131887849719411498214351795934558588181885421771328391173748380712445845832948812058460187536049349855403811668073576705420612052036383289916008666232073497755424110753096813379675464783790551052187699990695877041286890247445696230379472590082336575001047768995094875390723970972067099571539785797413963107205071079817695858981079093411779036834452912579330318939759527886721601648431676966731048581258722117623667796022423296201890350567524390703274636475045750487957283768986390526274180652409345900189672268455346516772796034606345559389019945049363012970813223594846849010671716289174191180799880943302365969168657983646366161221092467684524960237815401040222840115164873736681745153806062768500415253998591542178654787896828708922056503441575391615637642847327365656357091157903263612940237329646765590280926318424854206053864518479511758917713242370012901535110558468476642127165473410398026653861128687620980149522326848318876204352122201404690909488495895962555160293103893779059536928018538675020798745445731392790985511115545001210443476042869146637957778066553656168271544361220376901136089947241745110402569835137251543865697174380331419757764297318664440647129499660694633490047842372268458878943016538453523557171167034469944562374358472714232556614927372036670244157277141230733667783623456904655334916618468357617370225522527899663508238621766905717730333760052291992864148764654703260966220160100687428164564700690992688296990514247728016625078069956033330339334812545823094177037571278347500855692209145168219405328598455130841660895619781512645435126258317670510196043242892136835121934658458056436719355978766145089699089150208728449463038208942338475823776400563630251426905855156301964190806939805283336882180653882253063723333537163696983085481050045000576157894772897860537512539661509185720496671083628727490522768840234747753132586771598696494986938195873339700558243633664040416894451923045989157623215007407526816289383038340163511137327981580947174319102268959394611256316791249948405444860924767325579779479090102155474558993623392098658522433968243393063129340806089465814387036518674310120296757668509231922947677329423148861647503209966326521701060567888668700051268649656264892149947679994014511402478267354473003295551438058958933244026479267735251714577638575031549585168861130317055336909732701433027851469059243630350199467469979163563317155277466642044139773590416443425661171846226650326361950136397238070558767998647311003322732374290955790417727527545322306115821022527775333190065217493834192979897447502893518519083680994348345299678347410511588644199686089129157534064184002868727811738487173146796486256190887857868905794982938241048671707880669980346274731794346848940547206301845165702354264963899314879334403576927553131918459331566916395574786322284457786373417605204568075798003501082436605217092452819660429420306098155307943380203473046255724169168275485154953871301582949573206069944111683378877109267481665572350000008655483324790343954755852184981953495757474153747352427591310762881265919992968983570788135218430403199693664939244527261657091675521081501400454807182018750657588366236385608184181647197950792288233069976256820983624942615986589631250018620508006122759422138660063729236621592967087806100970342293234731839817671264424260278071031937827664507032513272077921023951686055859748431374832606202686528463866684537777343778015044839371761794592893819807625909581553234839172389158700567350527713664582602788193680233544170613279279964726425561701106790993555654937543283364179877211712049483646499044430704278517983384548674399280946654811734811172593566686437026375393652453224312579957790420068638539910823054858110952378203468499650015025025605330177125927176998336557182298951020692339054251053287284093633330932920328824526956779295928203735102002283762648779574968123477963953882480276335111760354245038593400389089103484949233930346907451683790731886432023878950481404350943230779987997656990023881586423066530943891603124531149929455584827491149313132509839252610847198068210220108814917137173521573330450645420832741832734655441415302524613964958248111180383517759347791158763640813509840841797718423566839406009620869097212155989283735134065142886024916629304694982346899900717829120033893193936546455334608491044925863413980234950895796030888174818586920284890947543074408439330101652720829101457332983040246836580196546604999842883990584761964750109143390714463764330303683347489883565456384766188426864310453447085749518301815172523239049504718576779502173214120480826153372581503485362905867981249953978458091672393140509237167025467369428629305265390609612267864623418822043386156670497738758068329081298009278629312230706819937734081079611282588211977744043232291484870538378714892017918106700231995960980312575240617352817546890514857914120005524009287712402066611845736360293926046044998205110467992226635103932240409265831106057953615081497696286547808310196677863609474890964171693837337921218405506002318778430872236169146701956663807310877997128601541503475378866290770058095381419071345363190401241977569216520247553222922280914977936567454542301525722092203493052913517690075814343978538237537890837950330503290658749847934954359032144530633681231161728922550003502936657639114804990355424079383465956157201989012292759915504747448505547984920188464922732017776845180985623627662778155459219443417801541828122871807347398092726896075360005123444098854835261007280740070048169232415955477924087082531728725278390887086931780303047369594046264915840033333165977811798019363847001300371355768648642238413777242017306513456191811066128647513931697113991650454071115702976601021368711110192426985176161268234849345849226447536860251709048556127751596858505836863715900531917488375655781590703038683168156642609642169497290609546940728680509981958068736493155250292435663386191720120813041888409401822214242538667518609820033953592743802134268741618497095733310217844161690473818088442577836518003352591492098442798434855495636135717334912272046354352680099446981256846046338664200949053316178063409733760937072747918003114978132566129444444446278961688493582050862554795046552404936415352283729160400932605244787650887502865919175469183985910388627482045983485604895560486841621090279599634667860692085911204948666232733265363527077705856931798855914812633657330721165811589361558355608749054536114452216518820529742034078333945994796964068575227793019807812233040092091379145155913156251088305296594503401077993264382499530967205599199646119235665345982259040952667597557301292423147318320276345220062007663787561598858978752597979584221232010572879177892101871502670078494658765841762653468110882109542813182158113366895801569066616216362281299725562894282164899727897574228753270330390085852146568918946614552181254761494761282185906874029617336760138535124624538486147243047327067201997059644935419080595788203528399701000726983223402354493852481971027160737505461854283790251197602959938776016111018861248646155605936487826175300366133046677281595065600432154876674249900094317633732312323234950681223669775592168329070975183151782389278887543205963428264480797701054591001199408611710934214544703185654266248766413886012416116823027111833980280499696861849250886925740873557394227550751775585484190179340663619398248646364082654817939705375369807986431030769143869069586865701703465430144427145380935266589171640739502815253063374250374249004436737837125735347119944882322930240986222021246347172371223115913646977578006416903174545281633482244915181540995127265401098081303702012458356711776370964394862381817076478750468100320320511367440448076443860526559673784398733367389135219741311864213758509553182483683165576645076793134912928572775292432480202456191317697226298180888916474385057149822674078126858023324968346883141895285040454719647968592012396762922282009652352807042218408138278043602511949916732177480078035139335444277923151308469446792986271912930845910386690230830638639862368418949014665462493230298739682904542497773718391867769983955886538685945224842879529912675970713459603237249470098281230403590069600410548526859516732203644545603462512797461627724662745513235936740201115852957631798183006908844382128533406452811164657709723844494280943573990424880292244707635938707422288369140202534382938492223674951120244794803199127433238214439708877228336667137027620099292802168242346754718399274333371116574433119577546409755316092081936429203408095988611906516858593185637514242453842345154013827172222557184141527516193934485489193842696289026536473085130317257790480706183523577213101594233479004008503975977878406350468711112877123487621559770024938488275129747804504606287526862382085726489834534617114388166056689130212125505210546209753253116977502767491116207042561713318295794165609286800693909424165984269778675707824661364731763776846714523823260271483697311753092484170646282335654136853575767363558157750421639008554192494382056214460483480282931495109432558389865405496301359147900185309999561736067485458249532556758044403261508707942607811455783738583289348013998411225366481078937486350809138325264523105922875057736252136315100285050391251349356063502938450163846204150537128582609735534668139023634087928882211264582185957307576608908313934939186288510880225984038809042614815146652131968147230139921066416107398126340590777491026168066272522773764306026590128121106479459563098330279059190114425596989776697278401929708286322650477750098493178891556723407885846494525842425482755241719789581262349697802361608781645408125726301611208531852086513363565527439219851588051724324217967942643727103468961908524660919477069395251618298406970654030264331380279001004970740151497541888085587740367755748210598191383285562067019400089312622461372617098134879296348256790145688737654435301682700862087971725731405228661432902201453833677156719032524570934210838223985078502622478421762606995464315892825453612477963810649274468686451627555739843278123178825008691285855486633605637316535109252162034463539624134499559866886648927271828218764406551811712258004617722346074698933380715980197958700209227109308096315165283948452078299145468102612112103268313203245147680719255760079202934280392083539711243143269493344638171795305214708300145683477966683306316628576947697403363951263800571349736005099443455319729332099188592597320854548345756475556201608632328586732145536801473221739629332963155205061434632710677013502527536685045085746856452449205329018259563115479562508826714122808785069759663639830339458402979519532805698425501819850077256584305123014492728822973700262357900481089730334428510376208049617513367486180095146522309850303070813360427040043368016985325706959002877115553029432261904865974039093533155461657984246418454935045715877191404848545476513347344762511386212623592453944807512319028432526401233615917336276099541473604413204326009965971780781656509554421400478288868523622385276164010756301287234871026659164934329425540336821727533748824694648125279085313392569336635980854970833223820679763952670183341441204737214829465041954900148495312729299735064965746571283301479349860700173885075117701275188565646431432252572557179444387868076033717031057121894328114173808969477391483365752883199889559296636946130936940445112437133671088043365942961055665530111022113326639000162207684517985629618906060226911070098215412706239521698493794501829263250445116763651164091343161569572891573678734599830261513090284950833484600155583421224994879464562679811908085951786665246241905552315390333445143178915282693766102203625595394529076829447199317568839869479097448121106391051451674986605586525553716864670584935198065469372660294738952761478485774734083884656639845174476917931260590318567487698422520942325078158002505592962661906755558763611910928965881945229736880193232919552501024320631714361035290105993327409272337271731512114682193567874698874943415064605251295233435458233374149107129888242907976095981979371489954392070844246063237878904558542807987270417049268468174287272772350729628931049831959911770766614611887729484977379925109943303917024890109212564519022430041359430579832525445412305960010975261840638543305980899103080061014818354097386454218362062616712336399958346257820125536204563036185941272009630139792835645222795905700973060632303682268710954984828733845801049818809051520634419869621547390526961377559308950621530334067641380869589538036704234160505534905855934464831593516945226805491952396560078448368754469120668060871193340986017114531212327682404959862603048735471054476897427026211683058227000291256179154669079141115111034101961749580018976406137096213978138351305383458574265528247704376269402147473433873876099953695890967756852126896594717557983886654853918556120319794720162499116880254993624530389349545739602027756757299153110859017768042391119369064932255860601063807854042998458543940556223025546257792169715370884464725980625544493719532068140480956058779363153281711107781648496034319733031996285423493163329783224825801562456060311734817864993514442064207763348745739885794438461889704361454068723257604213456941866532846536396569927197580009227008626284450617541284966281753320704084621520005833600791612483502034920919926195170157359761089930463568263367149323790847004622718771473213240341130856368826979944406848608788629193628703278798057185270471870140699300863741475616016272755152293589818336328836545270300716739499605115251386795066818976255261892994281503760693298835938466239154957469124311202653396987733301645243657213061633168800772567655885495683642746216825538688474190044759417572577050050602828754006331776899321919476089474286313496988460258193602649717866395341111886220343228410180630905784935747018852479180699828314450627120696113889745700129258585365758859627618846510225442746541983855652882242099142088524043547360231154191141506522399439304169281013379622542904386540404166206773276441689968745972744281396479181199487905767274155904007669932100963249714558496004138811043825638249956716108172712603844758093234288810923656134099436470594964177292770422105839206416942414219319144513201262477692533461963682605928536090483829717271253736779915866067945356670118751821618589487651452873432144404523029213279370415895304701176177704335105667009365267158436117503102482468225547564710606294697589506603664490710279657648561843440913614141902213793493264338626447091391965064374949742846798973170251558016478531723350105559677620924915845708271403122463831661897900802826375029145970353941957590095516224199864981818578306976564442157303664123572847042379676266476912757995187457209071723713827264852622153945625929410512902659178610422718579680332437192397619394142744814426972857935459332201300504506259796822016256155221228312954179733840175500688622090455067478964098639267569771391841453823713491541465273283715468554096583384850454159952339382656698591619226148368274146663659904447668148713239966396359335737705051933094254368419183175237790884106158295248339489014449060205907215909863469660947826857718015440213914170135129057337723843051676955815865817039637929174760078525291578203776887713690786853745001608918260843400532684927912688205790646251101880682891768156701494377527775860854339731232441832896566916258018313974153950394608502358857378615365674431374513228155871929649532912455187607683132507477072132394054220241638801515827475887776935566567580666378944544581298313190959049862021767114157315480511085244507632851322907518808991624837234658745141280274611694180665728441977914410142051977371903165348562021518079444500154422582732779916230127736255154485083768033515998570499148840455295606141333112715141347169896020752860552274650516627595907573026592452080921427685558121300922657936657789407416528774685144622908419031545201008647508707114557720821407011573506502007396943508340326057856473890628883551396697286793836391182368198479752629820563323078960112105943529566766933957178741190504742172244517723488559248320236586288881534767977036730588954875136577923477723069853610171111500228220502130132072208377209554562588203314939391845841950010287299913400086947940785837695625507295348837282452151512503199127146147803582211005032094707448018833433428347705998179748963118150258205030622104787780962676094967076195641430795271740181728493332958369774811171469933318827692456071983708610673243677812817552018317411033554809517204133217598578156498304142141252107824344461424608241453872148953804045043665335701492918127936729146416315304889425378035242028338973303632333882885676234351394242529238637357451597725315502702291636897948023561698743748332817685722439934220521753562329862438271719085928878743302086903593369359311961370390889936920517355407482809940849706333001640713137189685517941706918915327787561377283051766554933548852055259613741792170079682865990812110964073435578449977075135356061433778139959304493138366833913585983068970653364946798354071174256802497293749627479111678591226978028110339861758530891959015360526187709974963881979243064180520092799490536849259057537684737005817046593996007934887404127245043463622112341722003203136974232026794118947491600568208081891148239624297066035763541318742761040622965481129019334495099203368447806161255148918404840246675997596919572743593933398412170054335616223678813439995702880662906298301627738997926798975460566185823220188695300189544528398548480323429432824487983221487573163933855343471281008351428034892730417866124715956150837569561121022642797729485618911876268301503479476718375450725387693612411184102847576615503497232126439510021791951662887850961572710065024520677485605371961296045465190843778711515245303501583328981231043398662995345491313031582900088831110213647567991110723340799533959333902195457095833529462586868825450010934068578286457861402587206599272631880818802093834886748830865302627956013461933505766352312179101220965029016429516042913671081843442828495091209909164437710129173520606455495018159115747416892319485879281221292123473854629193393236313993751106533167083212124551881744415672862812419358578354622516447585243526124947888907209483951783951774842730684651271906519761208381438282813811412693788926168991673898769470370632348671642370869098530167991647041874663233276948122699168981210654207305810352146870138054569594747424761959425487498243425934409213225537266579992079721563559243672481468883850337345257398084953843155660073450811552691274901220558704241763015872483423775289121726033557108175699948608790694399389270051935374354311632801968920996634582977780236171840865294157896936434101866191040835410186585170433995384936082892976214312227040640205243486528407678318643063413800024503332426524111754130967062842014567475042836057373462892528857272814342470527770977142191239361568962722240338225815501703356861649910589167601458007181805321655283629671642227371404090128475981736359321601212051688308005691557677011070737891229717809061532433981720622337941155430685877461512387209953220773778985560352547490338677090094885038617045390908520765955919201929986466144642275707961542444664899692141066330227738404825919788082192913700257826188452670963456765257199212287601247552250303922907070653418179992324169669732158923113535900192169253633246257541940762219145837691255823455142753962692315620700761219101390540047430482480748849083008095812609300191089942371942480058845769005156414402624428343167352849490403746511783953273188659473357763243442422045132354296372023031193398687177601433972200688505130809551853178077899034824070192686891190918467580780624794443319793291080608710023105273189764399380351347241438638432279636549580565083996544933567497178305719224549052802334523839668475745658494304699741815640197094259407523007945774034453681579473745648106345633523320521604991303572203070372228036335420189065520737076734592194258720424314123442307123259038497081185991114189812392163700712249626473801680636183130273175347587353209861633086567748104073899661700986006630933486958549285929748070474851733914283383593189996173231665365845596550777114349393080968670587034687742393426039685718511182700292889476041383370301352827174792303391862637857427716666924797901833796776537094124737574266030145304859074988930986129912013916558102993828099806540937389130797584870640982562902196235429142480233511557097293575118650197700522874496950524841311393332532906825549650833474787690185933698402727038966283179203629558223870627084043103502304505929868125534386211267500718415690794061662916489403328228170557529191282934737328117165231748415822688189059485593612112106602831673295497135526127803702516784965036102876581277849411745929986781223383182645254176518342519671094593808052851262806993486389802200910086035508464477074695333246035531397187577724182581917069156847105918403279624424679923490227076284286893355302618914548534961447692885005245796871315611397050199592955120441299527381885944634923810753737168445007270442289212890508957989474318053589486681027725457320832155096341968970826126858741309076673772507715037807247623136998692167631668889663872223410174172261900747982330761040483978553073282430864513223708238804632480272292443208066194775944838634863242093868687275776523453910716922862876270356404371515638070775180016412317343216002698077517195652745280060356225195926622943146918717827064774326369963086983140542800726046640813476991630967582928630463893606278868810480433645962892161873712742442543961346517388160727636651163448936164525226097282436499370596132462040508209956328973548866204722594110952908386045579057764991262551271099645041956144845997167568034555697379582661256398796705101388133140858822515828805237558798439716486446416673425603295071314203438571234773897217443353360840659247564818692778478758076003190110450536009861166820110662431670895551879833684955781246837760606521750336503920599253649836242301791986866316548388186237154088032015524772896751419061395459427064039128088270567912787075672645186582530803310776042952104164969113018842176999827645228317383837073101896228187000707610093256479853681708623783436346449488927169339887958505015194156908177819399707257953060146092052254631248371020326798057764553767287941517119861987948514087641215965875038415910486168163209759833622732565068186097112555613364318435029552859448074264651105378984876871194923209466339276184189246022021022796653261947104851187207088688481668914592493898207811492156496819206235261943307472839173481761993510073532086070390377374922414863429858617887014829767101080119236390035590375514634698175375319433436796180990132290814816946327696048287044977049933617075226579548299017470777805883196762971134582528508805921499770411767691845590156301059879435370365857082988987610430134854871680534300114532898414590318563808696850003223751191386044779022387133778250393936014435193789928443668097027103324814977198628913702868865364654822798364904304663844150405145393782380868751953971322013159153428222486096655503837814133616843598373983924892870293326449143382188289234158821519596432539973216490399666766846078966450793192501675325435157360547989945708553195477137292296032695441852830060408430110267774111556478589970231437224737682888607717188527795811697197895252495404196400091148474812084914820701047719199337688043084552282267201085965041898183566186322843433051993633501693613161202187020851795458157948881129465359330062168160813408747723039523515468629079676086421831121845117730668628166877443012763323607365406717408019317329279221714373859750273769339727699809173845763263200032534039368929139520004598351594147089113740152067885741694356682720948500127237799125352397293819202127370249501634163929979983240827719368787443650530577287092065286635399571969415814586429447910127785990560016406186945939431780555972902023025987486184194530581431585199498469331620135053323584001463126949909072389309810005441675554484740794560093013102330010627944251152801023095345342278448195081044515727031015390516764119043783800694659223529280477435500802359109142222812687615094600777590665405879821742650412826533328040346190250101664969753298862888391050729237260148512009753903018085679503985895826906527241982018532589437590464120434877855824005322680065282811943570218506232045885094620213611150430642896891752380575160716613620562501304975153326194561950601857413505722695875996051016953452816639929797042613560923628125553088881278924123311140197102519486713065824956827572538222771573238787334313631204151923111138885697555167461968130624662344593681775219611795360007899948710948645556025895661303897398068724610877250192660845402074977827119708879102147901047591127515281363782552995554759700068595126739858136329325095622134635886632286538770370373467893964275925239302808329302936503941705929568276396045473060140787956167592503085115693035284299158891574620270871034500796634944773772194299068319928433885131987995890479265582576821402618834610198418679705335989562085900869347172912602937569823606240348698878802383813483204447553427052478959674493097808291512589185087312436589550308833792475753941438960535178198295390944414507185933653965201742325846907341717646721205650516962367370975464949605537440729195851738648442933201579329539614955531292977108531833119293212946828631818134803354794892426122796587293851460280324734723372403919395740233758696408140896575596891429821941456876967084832231171909476644630248270393379926991167541846210416030951802640746629703027746311015673494119911989806477777504355628996479780810756235977808872422382149876518306535482695135814476570417843045182291004871059397796660186910889702565578461452392608222031230794694623026638410936810276478145343728659447905611326950196507243325229634877173062638852553843053016607500775454975874514668127059103024502336420862196124892254751520395973814477008986985680556517208904373898831125611585923385355731029356293009930576971751262997866140707145103282107946289154656465361824392778845366197504657768240491382722990707223573255247582045384118931942657960347793427533000037920065131123191035530722145523076541967958769560378418650796086360929987250108792261527386115459896053528559277256684287198042056017558422567140527634878240245433409032578031656022323786731722642028647926424519503291157918579069776965686323496183573414602705523230430895317131674160527199651041920229425263632743145155492017489887288304791161770164462938125789633341449612696286309928989817010951781931969948467007131061470080806856346345076279375749820747979610511620179123699938841484574460065285682641793260472531319527595478494925578545953036851274682427258581242123820915267253027590082993145702478466011522356971458325472164184655313624143632183144911064243112136666012624779407399128552605555138801556544120833276433470268684997617266858679317693463607305384051556706721457163004762428385384394583076141147867229784443134287635097726830012880087910688622379804037842103811208838197575215552495439646859932554991364937407952491962848472762479318258188029046090416428894442008354251747162911310886773736841018205803502323654324598103407230440636306920821169274887969410372183156805059561300275991594452637480625875516131064232251729686348564758855108961514282819863935955241675559572562127886447426471376916484753531518391288658378123216453008227193273075536313321607320733167412982245389398210318442716694230829137919704929796089249465481807250686131204223912877996838449133495093247978509039694629741450470298339983715795607710965967707047597354640507315636305243749391044903756198931457008797461701101186689104874461120518974805206637740082253690234013156574685288461997248145579150902809767760920417217376009309334138309905124708123229960838866177011644586319667056647733937243237718732799399442988876683783234805141990157460895544437319154506769634119794498856111142876211207731146635802209400262315859187000732314308739884645938020659235374837265201312253803447693446468861771474807286613604270690515720974518647153803631531698079782677975613890110749989132651823446583345581806777927027383299989832382568432068999176706790563993387142850721727261998789783818820877361159056742291958240337677811887133644806661051670194890524251585572957447376066185873331506777476175686431393213974570996974984849588909322964215432003880051555947037225168836180788003823145062384481126114704777175439965070675362803815606416532984504270685842139400090086829557998560017665228340390358165131105597592861016404888432720632757609475469581592263073436105135579495819566118242103621859196513904773972037231543771168687985008300744238315248280331290826345099643598930771645443525144235439831868687979921982252486216320052964544443697762563736978685782465954314137818716597833495739430028529653340362428535874050452030283809922406360815630421473198046950527167653333624305019528423791168241842593115773159301969234314221384530368969785296450718690516807495828641821040074665696329024240168771314265691400393209690208602477371473630734821887884345798434812858760208217340880657602623666711461166112974860962028527033937980144660604864028044047509302394426999887899889835765949347329220707661405103021637954176786433017458138777426901200753778129837496227461269085205743827175256959399296769658441825626811118141289238299148225277389981657460994624406163531915756390470542495950997403267946636420683823030176691602063292390106686633913689444501663343350871127476501620619058859699604590437284620028568950918226216255696606930414800569279679617383903606926074623142593089039698552518411781155739698203087268237980715892109240746464564712972894915095018463013568643483672331978740945182793568607178168659241431334350235221925012802378444687839898153892930553496281628627859904552003135221945284020451649544215236787952087736154269945705887699464622554918432690492996031690351786717110282315181257699873338698827237898444621968425336631398951433419140389566881519977872957206961931779914587361052571774268510792775950451606477605545405442583423810141537895435780617485065164974510454272832541941126628645410451890185132611992789336881919698776041062991897350813400528511699826508030852698190634341235073959112065510871366834303426379805415510984883133518375433296395295847070771674952290064544361720168141898136292519455696276914573260305562286649423247903902166942482616785242752344910036843400064995467561029023177835722728283583417306462861654675415979439978337527162600177936753949890076303876546338611531211344874747510516349426439047057336165838519990760794852444148627742229092755170947790059949139375439985153662928420088858934976221349351777911604853476144451007378477384833343515068414878707391149516663624879694429650856630604913015274871276589964352357930856186443339289017875324377117897032227912335083395388226545024335165790612783879447062687237206068948621962849061620947919646146764099908597854157348029885222575385896646815350048920363372978668995020836303282424741507420111054230111618145174955210496666220262024686284041804492227885156854755108713875213653044948836564267949675293415344929115481722971037111451632347005691429555868552163503469970922420407544835349075089575654357136328174761010644699741064632906698815919934152583860238181867722972087178209489214332054764538475195818613971253704448403855614833990324720123696644323520110764653782941101934701674081964729465521063854010093110788343013242069612547938640035008808015427577284219819679542960740387112551341737715751180029286046901561230242869025394711743751930530286399783265153458052010014262059661459697996336307047014409222943629505626271820161779777125368460715858417181000282827478727205780951346508360372500920724008568711882991853408784824407315459278867005137211467820312883802349443663820715806219279170811856434826030155487151045470580997311313200721604895598416234227193446406822009246667982369697892201812187318175939121296125646700960205477421950914991069529684404077379248420494398775385047616830254121400193450064075007389470471947924934794281565615857832424371585537511903409840704356918816084345343584910369312692325250446609678098870570506912914878093248094544444793504496827268629943972208230062222414957778768458457042795643992041047672643008363115816235115504428496176046135109489708294181396011498014514122517509251317093600211541920727505359975947024021786759733642557256096221016854523996761705336110730987649675285058873802634728829554907983061170836373222039807701774255321964950681447895766748528594329065553090557196736417556720814449155962748315701065802522353030627197333342628162405800430383817451346081082221180807128424645243253768825679160381606888583057866982966145123858212196665395939559040484985102887364609657745001893660122347517157927531153968410884081535366110945906574888577651439034386095310360288580948003037706430600561334017945329961161140482852481616434459811268611149193411617491688007983654280121663558475594992805135430428042533981204838090687422249829649945226370680503832576968604206817950097259143659298176550918026157630100473824137736722502876310090363657748504791705233649643670375373037409131379359088017437081175420316919934391363494162225681110983871890189473108640978456091799177607934301840357630962276260206393200497366077291350906499453965738305473938215484289380460323187685648511907147010748064152202764533232457864012883828248654514749013342342388886363612577943262136995152420245627351033121398022848437494692315205022842571207388974227120395227181437960264779062993490026836775216950888243384392745788545503172608185326707229841984625464621648724879959216290426308243936068275889994662656354349757015961110017067645226768952498651034756789195941772125831153353709326796935378838885931135213173193643970891259044067061091406756089244195986910441393043670079636744044704916558207910721487944166060483373805595933774167299643087993016589851689863869529772864727036788129595269758724074803213133583126459519814326698302358069881757263738454309499823482280071101578486483300573302582497156700998052008459481640725248526460249019233057727101433094248727407846508061053784886152358904382807435194772712603600150398969117163785915923876394022701392192883509026358669318246580884397938254295768842193096906351541922575554168853242397977657549105237361426565771406756790358565768661945291447543376755633382249417898825818610766207652647988152210920083346331409168772681765378301470493036393582782615848999567851248627796798068663618440573535806713803649470375961117113537566362859603122662706421709121005512279869868722926779638694419408255133389003625075122956062863243012556995461995817995781328590257251143424873088672304165181191196770255665498969816853419587003563217356065957139604905507350236515268234655886249032837378874176214654324539836351983594055031771366957234202211253247327632806756978444830459241662519791333757735424839018643260248773181204376145657028932608487611435453682020361208546477283327308821655688077195351247468510030874520548591049653683727404491766938944015978394608245466608185857677482763831691363250404321964341955708288003977622694536551792491117563239872480633114719524274516731773441378165104902718774755289883692012686352534911613147620255767003908081491799668961092290813354890949754294793083832866372871756151273060527243190760498587838645750256976199739575182534707171720571352309099671232035933375345625885453479561910817437004413346037475013787840020996467790721505546009386252491865966749604747340726544838239096140973399768292740312689399307888951864993073058172522881904069478841981632218328430176943849587178015426417086151854770919297228149770733635515143062646191921439040473386263970905432538487198667932016461459450673292875296329964966315722773213745015961567899291919049571622915947236493242140642873615644677962599863749020666650127686489210785124889867375540103734124963440645222557917632772402753751109109593979074332763744534858230713780789922121383113392989879486936369393386859239840034094096428108804132218662514517531652110065032230507227844504836411341560034233995410523720232306772240810668508248752848704755228718174462003129424381807704877065665146396808009273136351368675407609223803761113314890264099543757448342676119586809265781373305536491854372109447658245164043364251788344208062761693076112340994937068669950502569238380164718706299246485402800452924543957574447621185396002149082619834663604001296610397748852425868877897537233352089646843522126806990915055584062542920236634219750348578452198797731479833511916052255962157493678863495909398372493303094900625838779178536845416052511817885976623599087709814042747624443364509029230076027216856744667486801278666423543556853203839460528983268224050161397034797864188032038938669371317537322396396306193890529880923244692346792170628106880385872427338971302075921765925523800419450485269118034301584574912762893588969987360081013321225575803465187178228315717104650114549518317401366724796321139624319808737109589305049741545881477743537829926692190239931117137972386430628516464651673425759852992008272655645826839148652738329114112725102265591319137893192911190867117881179797016248594595139514337848584263257451087511081589734479586255043743599024983518284185015208607464960812037623445911390706441875829293825725632580398358920411297004886022423801588947974871699793068833253924612315718021142539478189605594971658905513443242760575916242740794468519397666986348048576146296861806758099540336495943562064438134563656292332546571133842657651220993963607163291528002508138008240487522044673438808618840106108164590391845541501995922366358082824238123534385514366917464920655496248864712548937446547933548277894689627185943681622635985375281289364149995711379674610343389834827875595801754567362336221727618342703501627801453242239985555236925172394820849368987927823169970510732813179268783043625429472042942575033220439706290603503095002152320768017092242766692312853701795433839353342124644416585788691607760801570396064457733057620420197450204019622273090413640360146503153190374324364015875003681888001357555400808628611864954642643541386546081098891135963917481112882038156640768280860175810925867474838167587187203602339744932490319378551467116538134444834156563650141683912277915302803733283910514924603475976857291258298158739888958928443539579808507292204794189036325544943116736128408618647802927540649899834115230181571282496011113476748384052632859544076164515959193898948302183017255860141281057317308521156956794009759955183104869434894346523641079534432978024682253840824099924974185122944960241673696723521647734540217521895132203866512434276673508363391233954580172217710455055090119103918958650427549011736818878929672077685936926813500663903932564384488399325530761610806679019306997764220451433995766973663446413965866326267212955991225409447867981784082328123263867312639077144536060551871011080091512207919555711503454717478165948230129281600453076673982703015138068421413896022804010750137378258504785684426477723566867877760054439343484850230279590564900050339380778647087101546116128252962971970298908835507117429811478931858858965111879323094289506494329094245080390823659966328889263612830064410762836491128778419669322130383975180960081482893580855651419280978062334830203117477526284002570504452302287241736367764816426582542435822485589573114756302606021002250781520095757069605931310114992434968102485107920206132354156953182764808100155026605299222364836843034024770348281641204750096878433982909752344560503693358171820563812098884439169958417846076533524935600543654371024193925908574982327904438009720824950140242519878449724103568879810412600137319930192995814654244388127140695886271431462922952722013940995352278882709366811398815891329359939222212760533234749663461804879559985351711042944292963922031076434578550389003652576805351166049712756055030406332252394322379248509793922228484031452735429042207949227517346432652196210488493615430789721797596476321262764264234871264376257455968387858275477450219931143069845284734939050789224996970692957254119257246826473421390921472241930220550516997652227371484130799448852738514883847704901132022858252341911714880641193002545226953170301739345657224962106300272741523090513584610663832047716940941422796750053146271926169064714419865845446635369728322935813121837434211801435539835011010993068518948831666020716081605658494550435361490710096926473463114072347347120231184562260112833547153807105640987338111283147426206220204384538890660676159068769739985432300562348085883522217624573230233311494419665575041884642209131263227884913693976327648476357344185605692628171079196519319461797902134536900199428843928194146715848477041640268113064407431206319424679766074282949007061740278496216119832975194135109118081544142698463626816109195676201478985527713037782092404924890650786938619873008247091866280645188175517672508081402979632354150095744670356185996734909040198538746843127353777743221994615450510948961661102010706205225835049653082745177000565810874913542444917886554398034947282128989239935802415180658672773405907103351213613430060430234725669458760967663109238819579786224369099795785126967026684216727613932708576806490876124538450717935016585921625104246938817381315042945901987255961467353192985417636592241067752041696067914488408339488453612829238056220347624886488313917521965661051688508598595556187022540904347828666808302710305146696123219461130696074261479671495758586633405924046727770632355379891943954050472732506411948543982941854883141401341313712401460121417676753995727468591593811275023296780164620887807277847525134966481329137222930523832974322442165603279968390040921910366005067503992159945807190266881753147339566912345796139300466726848641986627972635233171982166331104085583435926541696280266045869901488855299616336476289467259593681698889616270179937454217879199579411753589725300544905887012443279280932748313745889682104280772951140194220866888027461217613021541153827484996322745027942025991454810365216435111495182750447034341259131196027175830907524490056886149492545930507045518693248162033566141878820819586287322834544042525503929393207099816031532659614485049345826690152716782092235689626100604351148641381441872298376750959146976864185497657877245326855249926912975597299383626908086724080984300343204283644588830633665267384263336882588643668843993977901489968023977782472542962935233631262782141679455741374985460720547274539127302895001607537833939023219511708561978128770502454962273433769719691893512945909929567998454991510468028334072927778528392851188236715824576820954099122841080245583104363641047799677863428294976352870356869975225142170210832411003138661174249738885640444722831355053391024355905898189336559266217959835117757088117302356787594979759256658308533517234170861075004996261324613907581417028994496682850293155421093708510866268314300984898895280218799371442275735292495018053638977210130498682590328604511866182638029379225683469606048875858178657158918237377043240897982334082550620691772901342980840682766115222296459197572122840946508445751287088662109392478932066172220079807707190778667267146227722519960717396026607384175076246848499759871738356660230409945617761220704122999603370498042044736392144266180116641921753319797024120915551751910311385843815453139023266451651781277529508314025654840931452613492522935635977979997055017909920145552321227360601673398513064579021897242605202304728322212545576756375010394369931078890984077163827620791608875674385403660978489989701471795570445820095201168680021516629336604609327931266822043084886079032761695578201531309028231492030627908343452640775099934388955946813381504878253896834306011451039124851261322035649886711014981018461268465402825592674028560426231219890441023925029513666382824782418643274640870336313847862457322154767259984518773361480765097542060501550425809651369403684698145398576762835478213434562641585038139330041520534631568890739535751147241603700751767314272315312024083780166069283226086298083211456757047767914832682723564316637840037553950391710355867458217300823297781399203940784649133341793287399265428815352994800784882948848630457134595600958776651394609569590780886523842639985388245787510219456821932661366958106907669630283629315601649572456885287995549422471426746065835568850819946005032652144883934443425985173574990308088233427335889173654357794288661854150634071628337925648267292080346544967740669157811206315014179696578502791983333549622291419599809900250068925343460197386705615641704846906880216803085687823566784594399488101382871718720439232682004033196296085526003501902752904325190382377884154527557945647788622459419321071519870598144212845905143380753786545421527471703169477816508892117565854258009451833921639670399584612791866094021584762424588730094644320512979657628781944511550731387245017767906184059912365466771206831848518854733872538571819807413503367195711435612140649872932451617524521368030328070122689204303875843022718317235180052216965960361120377611757713814407469185967337462370190295265606470814523726069106647899383135448451668885655622395019342799476472855007828092041169232708152142071682399854969181899100124835730978025533726091907101958578045704646238795863325590389713622117615091956880915026128848408014687584131782003259767772517190762412862385984520482312804910474302765844042615477781134576392652017408448915947799700559057537418883245789699534085097896871779604136190211552372335130659050489092674662758550152320195532162215751982284423327258800982003125474775133775100503371942210914074302155675069210601274862522389930321612542635469974404281488999738329890528720071383140195905526580197891199383519886568960958540684856185865856781798618360944291964350321979346797718404781035667156331623163855280294422613746677895426473335131321664347102257394553051735295931480001563396297136297240885534298895036198209368805438447172936234866556484037772112214151017841778613173003911571429530681508715233063885449103106902479118903745619810375293107049734477267968663955943652655854383838504616009592981809219510415761156489624459311167552186958114767736655856163612642470281566786618721832947689215619601407239992169270947904478786136190127189879074650779310962046302255066750781051848457630030359445163390432705977243549554979339367827637665992654728376804219385098855324042635120056117537809570293307917648271703456427874436387450096805659243473668618943997907811143928667392943448173706931289287264903202818623101223310906757463973151663914661322239492742883432570257286300318434848668314093681118710716464027596408594359071841125674118814296368507439112882842885998827858638781761011344160521241587212399222703709139845371045547396996165142784069026032275111528163137201300413219653185025250028028434522909890240315712284646667880279456673021966640436834935327077131991958517718454358210101813882302133957973995505886795283340091040462284519196487320055408150853177780886554665960068786814385010118027626603852308069179803881486550081698345430915148930039677179349111194756418678956602146596362354369123061758257387609029984278617021914454220235950057648751158647142505086465277000527023373597720672001172823242365322755431592400493151417481092295545573491994327429618442992785563543886149833968238152262009153099562195823195926362904960414063294296614131914420514541816844836999400669135063538913452583290266514067443051491577826602136077011994757574449522506615959947593538043452910698895183727513144834949678405183835084024523979801375551016831896005598294134355153407289826847626059748351401591677755725978500196130920935115267623180198971672995550945822378662246949083115743571664883571641740803660515291377139112221020417083386869970105145797644626634588201367954187785308650766393809529673319229142801243214288078746887605449379402782432136115986407495876537329296460168053032022335497205549227063130167655252866111833758477995428876857769843139311181788158624510465742339518484605061596912544414034203537777665130191760895586557547487128016641757700099204101725874621984788787930064930850800858862953001221035211645184472698575952193245159803672312768915420955633403419143571140158166959402127110037518361049314673245054320347363559355361888171206292904381402772256528978017766743397272986953503706696900389896383208195584075897161825744300353865400106558287839439112091699104599116429543519115448616609913270393618236462072818397608237373480359429370326227872913557362891752971007591004231255705937854321876112298434566676947137170253712673772970318812685378167968013340702263722125513229595515069186594621389363932836768576202153403005954251795540195047338105764178561198718913165646135723104374434680623126666116775480419762577212082410470214865713661879245597404915107399489766383084765004814999729281691614967060143846981556719498728663326675969836506643423934150543514248741413989313586069282008067759643076412322384524291977184882779334096346986475246123834180769480081031627695042689000952741112803134086432577949112397665197538905056839605914910914284279574933779873538565455955483816626866165028462396403946641148679058578038075024484887511004451514013290246034198438048584471883706214514937119950918655589295723069294781700841856620480857469800487141236912953047382637455551482615174943154157815847744463013461216196144361940118103597923902568719119715976552067522872361755974256637907476690567303021192826601266588798817072373324505285179107165268387436733914936238269723496007410381142867509040841137027797090199891903821997489150296363016138893173799775620612466659095469809661216421915221171608460440732674948187344170362495776988021311461806665066755748340687824285295132237281106339918074759027517273835140982206519769189354481157581425377033345526162217626554217323913120031297672821595501338447009858218508119691331807718274184731718729487262571329098647699677176619946822044295080799276995852804478217641126743949800154852489547290326736650721488088534329094075518136676403280795913999025403614895917961317900877118899022564483400662489218523177468847182980931131722386356216482143574010888874828390623700365548899943111919614494891508814734780422274557773730342553049408578018292684627365686175560986108165962782881875596131952163997797083925472077717131301492820629839814984125489813694470573797875782203842442473638510964814048455162814671022462617580797284323348479258663592799222425465475999256819797787831603382160249837124047167660083312538876793756282103438175268536608296004197388345716762992447871728527726615144600183858511236870789083743320022798691016670440268921285022881743396275033292631964253712972376154557243083569071883854153938724030889098749769433201498666207452294462805973413857903418624855124302032064103493643886581304483649540824538292525715203172021746549948197770913630323165130195187270688147772209641596676354536922925904412026902480133846477672844716286785655418417993377130290460849144289463068511516215215634065835142249444195357537650576433478979354067985646435709124151679611089475834311183964435858433015830172762639225377576345112513584851034782413494889169092250281637170539460188893045627210172242984906434662390253385667071729056960563356748124176468797269925418686389643528062084094339871205402939282298860583803407512924471389309006359290286029508130221645795347361134726839500977435878659573421855237115294825998328649417732858797768038531939811535644574439388989034922081275009803514920380114048465791670482781542967817800225412079469686099869578517119225280411753286042760285968250971932287923451597439567991999877836495355483598165381548406550075378659762570321669772498850783476270918579971007894717126319146211011719285097501810988417023382679622966663117735014518537735586429493062403660614011885376128023311339575916463880116504884543321491899663272466054411818729501137736311706198066869135167615851301080148979828286788208282893148981133289031412879401065359224025071730994355962148354777035341695218924101092604706523757719196394953296489050406290309042279016405513871483161360008564454739659349668267896563288435118733769174161531376910044719350329227263063274410254176792464008520689539272073531920975641597431830037398790148107541190067597548159511799870768416108653787698298233151476843637064908740581909382353541226311932258469618440846028775400499071020313768396528513343519536429498022451543739955522176884905391668085294568358160173846436545337432595143481804890305844895006874040907003797606989302592708181737008948925243439609424079028888460246764213705897450525082412693915690219909059126936114624722910926259009580028967735274583314818606824934464227291222288959824031482740138927705131492911497464956144822229719913745072034913445542066159813317995594117644673799112979065515899783131168883542779613914104372863017031809306716510962483768817924409938153494655278906662421632846939223009187550146020913832044607622423366365792362040158519433982202895087725791059259760948761594881099517970311696903009109358005505318857988992664647670220466281423246237358154222630512096193184761963308055939969021222224924642594311024883028437177361136156364516602305301840896923082575150818584210177505422291816898103967816029164342848109810196501528592289811837740969174588816604451813819884989513431633015680240467735345432980309323601882208898871186492162987506610343242398955124302059208001290734578157553166387888824505256917797638454203122304456766915112713279471254847582172721748290021145436437901377017727161586129140467409611978734573570791914450027730964840274482208138623272475884312733912918956935203934269687984511950786492370636383868820030562921702939345004956640395197961373720092454023140099399290774606588434979817225526906690128421460705792245058162274727909681554187021439847049511939666786694649433565591148893098412231409469072637325846159849470609381577268677172362937965558539096984655883277810504104641765246155242218553854598246129638467427174681893273470909751927418108579805956687003026156483537337061793698761102720822990805010225838315574695867413400560126606581413750868625318522295151836605602191469634576993710900011966725946913819836410954433993974498579937337213443850869323839800033348593653576518720040121777340679287079084546846857640543745504743742930995589060756411228483124027006367324778814844571328494759634607889156399690143305640938957839461258867411633439845908360154446377456033718266118319542451009946563219015107745968939888516469575665194584822856211870519420088672549313590551923910173169236992012281858504830930555794059020337388962067078818091722590234209135533231567814163906630980619550422020370444850683757124526544411299499704249267649495475062307324759396076280777318326459056372703504823653668615632644725361999549809588880861830701055218978838211344124956092128166638799708822143989871953240246674336794634022111583788994914200752772652940159823803085283516597492329897236501891326181869596494065087811152033255654468758693004945109813519885800350530603675020544232131636721099461984241271864520642419110256771164082681638227848249480221823872134368486739773078603986966070108222087599295950280125703186644143505416467804461780005079399786745330737371228280578853808970366334072023505644658338516730835476712691438367231164828091728484488520997828680341613485841354088793133588698440202195152860446219664170925613881490072657981692859526122441964695302881330515407305313395656537999572418665143065751185393984039032670230301817916605564731525808205757851308046909302140915828360763580384193936424152506182100070060457372997586032464106959806760608141194360416304134299640884936100770059853105955000451982553794926136229793198623205660890243476510956994333602473840050866066955971648305153668352236352894160374245787574678092950751823869772020164957714857071757217444096811653134756866698204453918504462629921308156130213626538337697649937629810762159152890389314561371742325708837293817022311379208048176277875818129754679260357433954716833641037684404881398195965720164924181075156680810578983570699486711279943020663895695545831774683644976074785077251005325383576424808901342318152850481503641533160330708686357014087578144628766046082791306808747058527812485469599092990551056211254909812678413017568678039007024468376654158303006149473481883578717044783808802470917671976548072899963937262223262134143337018797855779797499205894319916450590159964046683946264891160727590561148716760540682380368643329283927682562724262080826339295715025980977338454913423834830173858157472167848008307193410670880266650762874256957977566331186752522314561213634001800561282573451488339435247802975444895342668369049955355859749568623805345491414480079076421939653015847130403882303030872767166304747581776036306170923459127244622858215532220563200496738125182045159080410530186112320505044448576432881794647661995276938044603494746184742410956257728493974425289021619308422843707907032957301207736623179956229013825621863540756210386790202908215847791646863417074772543727457303817375660721981130432555883860681524428729523724096364550412386659849375866439252191455797155583403630859242623148177183758489538285499727907469609760759512871060165020387041188209821880699909907872311096916858845460868683145347799698091606737936592783327426764442073382044800629425263209895107095392394723680021108110171084859504250196804391284830472627916458184653244483171471307943564475230850426685684886639347958961552269804959043187633166831971425647735679889879806921966166055235697962798664136193762537403868379203593579134134112041858631142472441329356171791641420468743185504963301790367838023813363490824014391421765827800983600899693907176427319541834958187563040091321272825903987201662858780042632982378480992110860843672233906530841960807121400387043720712898181435096631698752557642315900073630746353950591491197597437131861807157129552914037517670976330992421960918562203513034988583655270586340165597981248151553485719635285468400391023076730060992811785702911589944624701408226789577839685339623046668871573416668686871055449759800858073619623517101776616789099417285928538055804402060181163036379862510733683783198786353005772535139557615231171176210525758170597488403565819132802531111418337205390383425397843279911308206104814862746828804671437975456464555297771213022102515169795319438450577852709358721510283789288694794011560375141023413050902114117997652485168343740397982012553257502866027988641986043745401453507950938457920028117482849038233530164764914153324235811133995715264738997041934718944429162598728317766389367149747602855802735752101555955961597429356942993841271292120626684108823456629900279816987864931825822357719121915338110379599600078565373499846902107087070829165618939729963399486406131221816561693395097218461319045372564854655852330041771462853060604519342143535663913199769210963502754941162506660453075518297226616742827179025186004999609108813820115984066022009769834413493728431452517079763951971108158953917489617826099041435812795749787654595064463852720072926760097238046360734170495961334437290042527992600489639830833271885273064026355298746158915474815168767551690123432103943630381683493824271123683770839905375504568915374709286121021084510936246439645632979510602856726102489034001525970291021578693539676458058910564588785928683496479097518371207868284404458788730339812451080352513210728340477451603490496406664036116416553537283810515807521256334348243624268528360968778018258677959883054664750477596104159210763426714915556998569275205508687374720927839947422428516458318770915516117835705463510154117506430264886319172281637788448726966634601340370463899831590173760608467317701132007408975172240306118396665085289692020337344679081087557341286828574506471012695751110398061151551207580966558833902124809248374057487259720614484086363137514876099698552223486130854958228922093784898812844522624036892811246670904985128366111060945793575718292099760954304381738670712126481921220234706309676383785509536663787112698066541457391730708455324481715155419186246352771434377614550090820612643332389103624048959977313462106783500577625162272396126229825676409324729356874047599178492159960604821100191809582158304028167445351958084584825438726196121034367189898486207941277405256503504407062359307741389692748962218877284664004373715400542353055326578169635223624091114901233329662384494704923279733661609164387943331837485050851948078385390304584584310963966524309717753406038279679075413455791193691605920922547601030515341077807314987539307061449322693477838450076908992285640359828233742039639285893277041736847236940539650949118999862502524706261062469668974978267890912659275691105602472202167541352769205944015104109448741566822539611487836210152755681922179631278953023514901544957071200281301686575551062793207263939631871521925382429361420048603347151597234254830837156348407804376516423155244189398952899891733265735296583130898268024385379448901942132704872917015754986038505455726132481336724454141438377165787633886158063715620487791747439583307006737158613262489240342300591040767289481467060376803557981108505365876336732198273336670726974818717452819041892993245472654988586318338058285001849254435629278598556529289690268307341596416072070725046981332253079409633366352284575257567655574894518782855764201984349805052307264607104301201978685129507339972082662412342449692831776001144449778611042143677108324928600909915741285160391665289972627191271840730372703367544340386046439508496376064643802832575906713519082233710457253366740332902754146599044621521604911690295829106523434436467673288771153520502528958614624657861136603112524790680925724602977074403016102951224751738403300443272947256125515505061742249952779994858679023152779354901277250857554709545838233911646792082958099682688243780150136485907701250489625240856067897014104469282501843187903514945928645737670804564209095543089868626348127887463184020078070425464990722092974514095430167690616432579659732536370930150203374285333221602682852259104564352553731764584550096273569330252275912832031657731776037881519462331566760932716430555202638382462398522626099356000371465900852264064610281290927675035845666116729559527382028699294633288157158862050225482156246661569611858514374494329243591693605799554266835287694645991974236432156678217283107880580138883875932937139408106960983425012434130065098958073790635570595340555952547905598589863930660646538840853700643047040082868370080555915775157260308501704900926675151190076192466316076103832204740149090558428656430160812740628090066531862668419052166440566636860630890381380748189069566356854774775676272483639373139124445425428963640474709078315987861716179528015391413957040671184014637615333081081630364561976829256396773807287450977390967303743372174165679303111373019734820749491548065710515830111666561030393453864049107047424703181286173425445670320038154902706494713021769780045649798118045987406442310296769405941876827506370645256637995841399097636453709156836382251547786955465214804955021154789274903177920760769592642731180028011743586258733584985182628425263248570427779235791503605872819859375404819641350896557316916846448072464605879590163744126998954010171093325392673539634517152781251441865270642070972081712261528471549458638701145718988733063474340075308662642798605833173718449797435210011198601484894285828501585128470387813176844923296878840456126483714847254991619769118702348218170844714116453013841916159100135441311675179347266870773167644405390354095948222361977520168724936255453839726470721282609471207626047330855090420201977557094915018523503230800721483784678894101507739104697848571180637885944314581544939815889950180063248997722982140973272997656289135248985649013254614551284989364512890769680426558011970137571015543222804128103240115660717624780852818171158819965827442895097963231800025927797471590335903896257158932184458299557690490784867578034238853476624134085186345065768203318778018978408440839883690835096869325240805254883189496241479365330268060991286778892439547792375186573263335402974872315845873337464818078643793862314219889197967911319825497213466408722976367220932545864556335720483708093494694642514040243187784529061241181464212509018842132311454876028763586979038223642285361711817131751343857079162995314089620072389440285552803645188467740434601413481924498353919944457149965646831586168371838662646836564488430314941027212220601734738582885436680590764395662424352538095645127964167449423053953698164287838891592306494797150023671371819265180071310186658429367268128523919989062238181484136173392573733630975015208867132092024397113603244005430043948046682565399181977567020105226420332217728235836879217088236275398984295632693632857922259090382300066443377840490525329818050978080747209452881472054516362016060410396906031116424120221830242991035302212520473977321679172042031957772860609814031907765938345105307239201497634781882287082213398420811520522858824781180505050964312970458249718461787157123377387555806641407861914555523420996879251267164438688093193941074822127951847650966282462300145170506147582874215141518590837510719820532457292897908294990605231937590111346189892970304568107640049286070383507482121124221911130216778324587512737691747441334063843636839385690471488869011493367126296941243383178989469726656096052240326960851032930111903641954906090645029743920358622777863907002419688396274830641743009507772008956387916315018659261038774599395718631063306917062106197875879471498347941667322453180839269315509356409888812878046705508002439194644161822440414319275363494262051512958331451817426119566301702681271800087418242320416444041721688490141475066025209679719803768697936839742502366424240071257224952282170105604572728666480135673828516836735480795901614853590200953414513430138685978560619342150292497491100109213272610691795156194610582734020452947276752333693657360511748225502850496838787882377440477200764895854529756116949943513381919669141452258226395484743834334240616385473677137721277361073934589754093304097642348791753370043405559609756850731563662630620788710337448645731792691829180438901676953385322991755785936608921689364716159494439425977263257637136109395516051446144940726586894235290115771411325128227367967623036237976091860380606128071271225099388355169062564849214325291509073850363046021052912745197238014360958569144331477914071778741143584390494086480622233045996414036836781344184559950258306582172019387366050203600969590657256515723049263052316796372734074424545274134627124314369553265053018751497279661856730427884062836020971083798475269910239969152522981919017787336755055119829635395336083311068127400784258225004799214206423793410980692225047331574240743180900472344275860160684772197013864767694266598922296669464861436273395564326278589407854007212534263703410592742215769414696321410033375559723432096632010756161609140837873017668940114878163033852188915676221513465424482644855364206439186612391657659601370781229436075521589860504281899388752596093136850252759632600025045993961041900562246628559991904972765580822238345645869474201494312531580539416781772098763614607797469443030911532415851996096485350201509483631066313669166679224172791319751969194914897766980180753482651626309586683823390293998016171479667687231449786078178591059219688370422842033919511652857261003281428803763795224968351826868634297989807086805032119367419206672147556684577001208515079549938979932722461020033214989015071438734448384688031094126657820920497200716144772157998276492112788487877744539309831612571257299357176419739047672864341319246045455619448964800829978098955930083050009995199738416999755826371293593070543523624947943770652738848433624113607093589449586249985664588810696521060362683779401325906265804135126785942319931854346879851117838345641471006191685767019164942796072959309720464931605887942194101741071765293426482301726423058009964191647812942377452507230027574131227223389540350645835766528720175993027890837300121145249963344786931538984242150372392550031234519337779169119925849787047971885781531598949935400880349969247536250844762398975961247363800635939468875236243525629999725316448563247128877760011644507867136447767716233154284189838157405633287719055331023493909987360444263210259193172408238647131767215052026613427202803225210200394496566694120264573232675205250826311724662874411922535342444317452717566517188650051227311957702020586974335553704609446475178255899111703851447505491903910737930082881097204532647664383958261818848214968727645484116116781608128483852593238714951964946876101715812762790377942096837574854910436577429798163832474977097641298877623816098307702056869933930542672216022700799289739835064930765681904412740741624320293733035262056702468406812738093506664932423313961206325243406380140937745903835213579877036037100802142752010307089900969507751797826684757821827481698927044524378145384570953612302507282801892685510539213309696800359579027583309362291568774576097929126827190593630434386775245744249069863146208187197701945134378263149670987841447663577466930465106161891555481827749776868466207386869702783589656334798795597815175630623956734695279493620554513131390753386927841659684427061639922388659864616049417464280129214708382111198201232326622825506504497512662612858325979591957505684855092855910508169623189616880831669662949040995476797748827825189318514828677058527983719119294874972135594874406331079244515097740957979134653342194032105819016539464592849093887329684535514920611928613380882469979015693575801251528186525027831975170186069714599424814701485576252731591264421787500368220158534241863764107344733392061093076917724339765570551392384742987766223581490253692425946766909057666243663217928041409961485083827261990863196975217995897076194187092694767881137826166084524897305992038251189949812218062276462283616711939785965129530420273273097979812049490220627181688028499299824429797869211662864948533645364585549712477468311247497753640535976790465789213164859846246094734782318317662662182203306427511978231839505682231712788089741783441938812422580468034499415957198948209385759011565498634462532023479588279798112776056714334998395114500433829257585622709100618939180697286298004958068777905785003825324488581028343593471635928403650026024395142274002854309548453949845768435835721062349129709933365598565906268587366301323253729869113193201470211945491035225666028033688846195337188845392586658413530528804256495521238612563124244068213340739313290652797867828552674081480484695974513616577717658224262182501463822599483915978025771542849186285951064755729527855391904016083622701718541926927744593121697383975330641387783726405312561909527799370644777897188748168157457806669794918142565799200724561087399997929020501130545066067934148847653077316695970624548577029417714660612152367739889844348215350871330704465427816804526655740178476923334096374862301432822340852920301257950096353444639552600177547474578515748927172027236670679848179409148451977832877693066952223290772370895670323507063707943336118970650479614189609006038220756441474467458561328253326886193892030777973137152388418251451560853870891245789371742466356184018446240727191824663410496927422505329286750506389344454908511226475618008230927595402347043809386931436156267322295479357297072049671291281854323157298978713224125192258349062509477360216385299528991355623805976425301688778108312882118137600427548468488967165369672160978204353296804069239143143860452430036110195375258891947346033016935652648038567655062340192229467780577726615947075668433978842726632531235429160716595566969654265605863448427626542838744572184082628521475594460350794027962297921841773082180418037916441084558296139478265383568034635031267817477126228041996031388277116235971662868954105781916589779711675844349426768988627622525839016740848498383863817601463431683208868839019405282369118856236271796636761099117726539813452107996924951853915289211854995964973160154795865449131229472157805600120137395818905814164759793154837170839145108806171698278369899983111593814144970255549906916385846936562338373141827108935521339191026989047443676552939165576464604444847911571853708586960054762325464181609388392045682040900135392590561978128453638411204874054456752168717161474980928860440081055643557524554506450158630583330477383160550393690602685555162219336024238029968136888277993559382126059210640263639341229150581982449198932439740412973534724481769019491659738298610443160718033612294385196106636264411412289022161658297649199101417166537492362305951100049236442690901115699584166007325072876992024362108189899775219623986240652019505948261868753042238046877178658481635420263472585683612472265033288810199810515404836614588857639470953610288136383608440233449180780213355910519569282754467972636642058373803821622477298244516979010790093737125129451613886511651091086064886571139644953165043953027897986987324289773136306061013540157401352802481239873478324227823027517815535580459063115823275933855504208458043908596626425730385272532927112441438079698039416243425003912664678751864451200909645331715460523472031111606995763914394621502880902209235053233885947718076083714465649110148798534102346417536822926421163341056180689863442105859864447168350458054545062261576173785666454047091989469938239761986066230731560260637840339289784277249956036907693897112694687128737963678862730470124318019864194417715938615963958280806945585928523289050540714467410290851471812033095337572496395710749771694152344773068117765893159030266454750356346146284171114036022798935274228249704614098084316719648602238071128597727641353384483809961251125997604778948613834651461297522379885883406757782124237369414966980824388110324817563942643857350985587160344058574114834101435581641447058772008555963139858291372883106716802307590204781138199547417858584254564506718444993978170323488595232503318787737354718478296519036657738842074389861060380201557118361527920389900854887829637954445137961902029203467055243257632688509678831688594740044248382354769609540930643994877563205777443885858525564614773969441533524581156637329076094049304658608173239494568039446537885270132160653472406578779018072005810824984333802416126322354145077164038116292964447149139967742273403397491536537739718290481672177088696959482104903338585335946175446897992497616131921430486655309642078684527558121412025988633444566932758237659623070084939662067711308274235553451635248514896769265129231339779863036374190587887394813634643919530410104187507802558472829491637570862723861305671316459620590230007658826992837280369283563782512533248983455599057334141445377471599596283945911593863163388456374070238752560325478540843201811135219430979875182734532644006431871251400078098441615019988510423356152772158465496842458899212793894875157751676761315904296126222685229303309461329287674981297707496865765496454581220343194851480697967742681365676693813278724347757374053044979708807999514595851158700217196109510167702442053217853835144522153096733380237167366639767800809839533943527079790669641533555301428421864988165908838820545664832080431312180651877272178940208368047614950763759846826500037629490052692388054458243717327201439347759743359642139139991033712357930396328948603220450462105305205080085753397542150590959459917084445404839693928849067219213235777549084587428972363520863958155268826850357659540114351732488691385988644809979891923047687209217369727684306020109468556350770825162732969584949404850805021012036306052669349031375014677615087546868086799016118520945190528528715022171590066572235977905551319714467177971528369133544727326803816786798024555332851423736051480479599585269058014737365228489952313268954360015532101086690688919190496386400392372536465336970017671895177665728954151168207088136846974103955543751865860147728557951003650736913386218448294754154869935671547522417131087313278645322852165117256203913004015404585128563172464446127208160745804829765457467092065139949082049067012204142584048781914880064074367287414678552349585663858721963036104821923826945353960895016219129397197958262763349213837814748307973373919217413458415927953363392116799416506685395308382024778618004137542548464456984446382078432032670314775130062565366230639337281580924565103159348153296003880575158850921088914157213633772418871784441133581990114829259944177311799823065452497566163083708463416255782060412324207307776950481785889203061352372463542766904021064176129708658413005234608204802092842340187423902177872479004265879909318533602627720630729706386085435310491419338147753129633752969408342271304283541942576058959202237019985714692057472778119789911265391432940484340418122385230457776085884141092837047518970193369753905368177666832938119246980052853279258389785279245193644723646812036965999117061555983724409509015276729603370079131359962886626636951345328553361332198953412324442099113329331086257495501207942845156992440815923873874950404178406985320688740918794628848649796814461856893849569832243096792752466551022555152656838482329142611690765802099364207330343506153870604932694649508327041882843641109789730719845743605593581930256220287977417688494900810875136089698483987921776777539903177776932093565719801634964356342683676897463388332752831539342783311251861667408358869777971824855072874470596132675367326381917826236556001602629443091940344106540969121889638799005117738201100896542344664390918822111846781997037424422303632658628319030543989587817878719705439165206857111995094979024537360103982601248729411449196455964771842883310646312631000092647045627230644909676502017366202472696840041304865575706926776730877511635540415870084779774571472313264173624939066918906144423062655737214416291747314073235333942235202476946461998142106417659757315281268265472638457653273150881614902785378179262050730337642571398666937829054634039386446381840940803334597684748058105448424682457666378804070124946762639945654623991886089910682356939193441127546480897956751785605194005914326719991015344257037160777471345952586172735528647687012116926978217333594863525265657473964850166126370668223307919114209596386932039208204224210107438138561572160999778309394126626016265409858610952646288379089507556212426751883420599443031584429376905757297166941015718815271124900724750470055827450901338385121847400995068137887583152233689724372070931175252454439629034041704442864145356975972099607226865810408886645621949862142570151076340944026278380512066884120574282736004819650653668515049860973816535001282349049576765158109069378740818137646360286800660610633228677665018422074326785026134824493069453333937090496330009744809306823569659995840875811312971287225031189661718972855203983365326582763315992743245734592077617636427034011504657996030968441691579820774331871200555632553875302586090193705238694999355419120432179335743819710618962225368863210918543166147765328995400068629911583157340870587509174265306423925745791197055246665193960350429568099774070719891678840206009669760376666312005728521868726000779746221139207728020321675972580064954528786850269660503135746872694682936091460135570923297364598483062262670696474245360651999666260877952925040172972182349566176884362566454506273068876621129976550236236578875466716107825427629771800387285816624045356304277846323213177925044639001335124609312526308279191306967070192857781002663758692253920918982145701156639071673797232091593627405778539238608619477090255488048592448914906098365329185043886401250799196869736082674084616639905056854283556241729307278243201449364295755400670869240901726905792782548028155539877081439776092755843607672576275747333958473003053774969577341360593525825920735561195963346740411033241483071554902638563707033505634786330506645573831547853083924157827939372091644118640620510630978486131184742931242209891170743628709207948757430150137831660183882864743211119374730288727011586962492821325843930136780104998000871723727459580825860441083461031166141505758400525838522853755483374587925980359066272399285467168777808774706814455421945448761090272952402645741592835931119868455267436727900342577053939066808519537265669937823458521745286333713454356984899465910720287366825310739322781472897016846235977896030321508272408206382759786625074475891323253376134887371658832121040859541161385565375345475367610031535174659580924784479032920641669614529055055501284104763231971328553109713944839131141412398124977515777850080891647617647776293744267858970953197583558503385063993891689841467312199552987971368654672211464183017484186943943199934576551061815426949018179822782456251802938460077619302596748113566617328835504322460927649724149363167826561999757513904272437108055081412477915554576666973302790852432689493318130369003689722872377685781341841784158013121356373882317370296539706976070238086705152210590290468191222005728898538508597985055379418957666351532901420764139887430032598345123973779073501042865990129948195833815425671988042961502285866660443916380757967300008449393399075669427936492047838431431906138920256150581121852345654212887226771936707082318078771332469180191929661645810310033798690971473314363963738126699088675569317205118222490023162606405544064663835482232237569410883871263033145375270011245889849523171641059918446370497237366424341153686295452352376918194000436097121035055190833924453394120714726746528324045595451424581874277016891283335209188993840872500954945564535751489980469727813408325949765430447871111270917167068922750211738412019484977219724392167674783010546594522621330583748304083164193723457161528120328319520209476170584510503066233816896311895638337404872678103176633553946907098663794641064731434855899113276902711557010753848314232902381707677798912804613542596923640800811218416634097489661975649414431975907013717336752243758807401986197639238033543993512943917984236356556421802937490849729374622397772124700109032984971523499097951443079638850474742701908173375323340597320471534410265118657473438983297049958616137845908513983392315994781240169891512305208634299068350141051406757821569104903366018308935733096335118942453045875223985039109023157248255009799639255613172700688263109964708142003293248077089836585841968413657115322131116258146352936616644115544283894005733152958985623534013076852800811962978814263673671262672862118873069704325125920772110155703974489744799187307262757386166410076980534026617632888358757358801438383448030603724641600371838827319143168452877689873952646969391153409718630661034434575641883239951460202621289754305632297049723494035537411592996019044678912812893769581432446937538818499359544245587848406373757334896904280834908148052440421478248866720111157617460226816304962319208013203224903176614869083041192341764015366588617664721678745862665482244910188884817294173050977124970213048248069144723922249518097107691919478610501744837968720233733211698440624175953046883281946162871113298045988621752382216586789128927561209361758885238154414329469460175355557360219482929248675494608897847520324110403438263891946364631011599782376889586076077441602607275390429066551049577715906955559711283020035384887209947991056197096342896622802137382490996047943472504619016252808812778744426976765572970739815597042335824298478971726098477680444714913148416162810240628528852326395333884375614777317723378972873294087739168059490810432052697341622941224078819062013026661107692636913785632637768220364744653032787999140173739862692588624408930494818407941775668670076542450518078333496301706667984037190374077049346727672803348853985908556070292094270950686950408567793549349893702356164386677768327207167351006844588976405838842274912480999693220155216166271643989521528589405870041980347088120181348939513977739199896864822209422992226840391329287420279926298554490538122801523473784941560780788249392092579538322187906546482560388147598767878325290182205970352430919932765577115605644712102195319974917923369857968782855930016052930204376885357911939390317175398676336861437066286393122059161300525936491623620362304409554088751630169418859587769679491993576348313125515653150766937407429969168804076181045971940157834691444702027367351364139590643355042885351594866917718149182410062517912598132428426300432416825057252895960970653605600485377319453603814537158977546210216424570823277866841375564399719760669446585326055786593257478571254218611419873876158208718444580048419103877584547107090998496436230214658707760309667721429990059728518629845386455434997124125661673083343373300410789216460003421233672458876324483321599338874709804723404425711212675088250189994565142014316741546222744958550972388188761557461137339440504652433891844536179064441788615904366712531982763298206328695583378213992286462861868208532902203606346424361570106625525103742837059292725081984009570182053500381625583426922954394232160229662029385336085602598092902711077580359348408182343879760514276369438672059177567846576915222373319149080873493687894190700317895123922643763595338412840640997101172705594272902307242254215121442681117876569506733340218133440514990818956906448004246708394851589353898084457043629482614490689353814642254097720128588495523505552701070687683053987460390957306179817890550447517505645527824209551644271463536828648624788036363494786389705859470755117173032663738536692292069816197230334269664966703320128011400814615206962549178680877726139023628792224199718015067693030238678106127850637374924780916045178076240537158838527142877619527984401466912632943761505946105523531104067028795818833734444635992171636563067165228286774808431730981045360827252993071737947592427281946009815391638412645557839501234129983650686841886670327411921487675619330668823947876024929267466571139062071634515702623625480447992602133466669959982564709393527672989484658039722936582336773018874717748727283856565441360445788411361264280826195233848898330061281002206802922318899595478489071339219669905504844759085778304637620040807991136424540456883240114568828639018901265032136010512780480171443145766523618119783520766240909973031252844175456397071087819422217484219824923309781080950957585034096948415259535023770844683095612305671001137516994164900858005826632565530829727323181792524124991118630486714509107535782017240155512038974386773204401501035404943082687995628447190143101779096934869593498488031170951652097975218969726736810132982900345034587683059236089432786825259736760296661011973155736320218750330241106932483300521524506095347239020485575466436493639407396433962593414016356605854906952155341881079887015117235255677283118682472614245200796841361276546268803829233220427259085700481969827603659440880246909604909062843792353818134553777040511973412423247953561352230502988886682202249039725380389159855383019565169282823588311830090906091055073128146546812794226585967892221864413716957688683047060445349658132424796466260832573746391148942846338629492387472216533274048442446460332477100896319825484712229535928795878809759055897852856343399656790080361892489205495438076765219892247898152142956687904635766730138449894645777315046676222557134247657246024033192726580775998980322524399671806287494850593432193678061175636647283988535164842482349338215843752445173756474439937561225356332974358504484729315164776375000021002146171579211623998060754715237263420177971204312203165432740644848300817788573061765248517567717547132700842637679811146441713340062232981391969384180408397778206609868342266142225070118786513253168779287195759451634241858896876666008677622713833486794191945149138692113411870170900638874654057706015856060307880202662198890815653240987745550085905736823652942302549774696908506184928397370641207416242674475013387873305371114419389563908327731180916262099769420082182705969819989127507362618543091397696177598038649302653656725699354408263629194358279024409465992915643493810807499890842536220092227227445023059203429928960490594447894992279370132555984853364738686954483079156182473289603881901867622845233172080445615848104759696921611772346241876038678638464544983684226414254934955919011961470980653477157189094246631651379192587142366590812614284250809753760254269833100160704465364645709856280317305491060623862423756299050480246122827827720288660334742218083558958076713208718850263800352278222751855296214350941926330054069918223555202365080693037477948155892521800646543851509892095339066358278368729340310758053735565774598971784208762870199220690327945877054962782277543596833801713548499253813125289945134081842727754310495384035949453153403353700010709967294004040660414218642942310823643492848559579876330045653638886462522465881734069889611101736186317769617475060012333794056815117984332878443357736786926279424910444944089902911256896175313446839481205842795434271909664455986689958187023927473779478196950162811773963638536255025662126379738493892470274921730555697296971918080388662880856647277788245810558887454841986096674096655015556845727147391597602737577045584030964746079529514532808045165126312741582774284324606075595725745728156882779996454172875188071033722272810298834487673020233718070745674333829707084767632882394932796494690646948875807656616022371566905255106489179700028470044423214927669691889596791203596453378643936789001287783231823031985969977346750612038601689834284573199102991075572762495066868936636237552375850749084623376844360906562485476288810320511166587082695025702117022004555708009988964094450617640597288444693382223203491896563733155237700863246411701295320649906239299144950659714569681944337601066570187600783941898228088487034918032485719621325204029545942654110679412966941759312189313284491545088888972179225194137156061092735557632046007937420854859176884429616808621775084432300896107091638515737067143007900969727698363790237781246417370010955806295255585635352570843014127684419793100547679117329193251745444227388806199800392150876897798129462960276230831522458945715368609585470209512164354636392532439214301211416862213840072155537830219562661555373961727675347949484590652335675659982063343744819436549327915967687631440903559360047907610755985318855533934790058672820175372528461248980286851215685966834222134261719145449940807241724743686844922047445306818681106283696089725284019976335932402761199630781526405128327262134135914087464144804589795319959762307492786603645323927961750049442166523751324180972636959171945307262693161149123719932688518449645819786550724960788493152958963384125827079825772495665752423981993587384182429856410411780255359188022710800917979307930964236495381061217280626829168035636771925082832356631761219960207001047834215594553507662758672507108036014864501462382444320343894009764506371330545476229966414554834438600838679870019980760904129452557008187201353446230580473846240742964397675282700555663190875986921835622650355528335216499877396366150767072928023734210019775266581482476917921024772513241456050740717861705450444704507629409734172794606143722142287708801381464580531007217299560813476976299183873502482152287394055022857041427353724069036078545123355936062877757583841621568813597556490977909819125467553172858821877051037183033693146501047013939867842877726331737244001892537889500753640402528893917938839409847003304300173473713988910462006335734031329504713229078832572256298537714923294746358668965287365782249663205802911106493078655981743490952342608508134129091466893704099438315372204415671263288098860014162512519139775695551098226101062738158768786875446421542996952431166114463894403686903170784372378647443578725889566909241218821685405956442795435070146300448815822739270383683760375002655545538499959092457606273868722579229129459828410437614077927898092184678789516999394922112220648048293701791018783996567601318052037417486684525065796858059237539869359689369942806239942175249225259618662502170234666655329740397731282102276809563057300119751232338674811572450406535335840616042221542745948494174335363996376476923766171249003627744405957831953039386315249157729641689056614824049385921477819376091790034013549059814630860614107389247112434576753261036712797401511994994224234574385220717911919316094167396029520729261954560260416343027920515493341501086380405244358344222063487614031729527616397378225885040861360919397309051776829693820880709921448523341447440658682438254718853281635719381974101700068028942727221048246249376984518642156657100875603354843799703838281877189839762552630895339327454041448907308719779222482168059725176884453133764882424973557803513525979071001852509345474188141672814634937319777773196792370267627811789449595267979182687627204072377692999140141623194007189275199186112800541414551966231215503959317690724265851380984820564952054913938491965218118468945143097975893211693009901324386021934487628086180869464062417659750897000604422794095467188550757667410769909060983933919830978401914147683919080267994620472393161436698850016961118241219232101650986340620689364855186331213021367101258432095216978244034861586025347317514623675614320601090169769400168973928770324301171912402236964778815473255484785614621354987148752930618699835880376922549537546560393355110261813377977239102679677238113463988667862973826541267517020269947434539325729043162817032299721767987842661563497542611738766956157752417001882631209335682040529136842880376298502710368722353676078307408331909757953948437780456905769473462448737688456807512514728120192335861383637306257700209740329557156008202702388592325839161074139417245074242642107491753612700023004431232660172967406724925638435098956737686491637230136816186510913738507762361303230752102704977682551966192756419867699215862077572945560744973420070260315725223054570061803419077718003150711312020329942267781352703231643761276395321747663494434155539665641448476408087767674676394674749399046404062689137815545424343810655252727248308226606784906805129691007908795284049415577057602738598621144608815814275603763719302373040760417900845139786108544214102524965022238444808480666418108105601977927925141259169553342812672805088691034559374373636690721090362778414576936752295327980092390541242548431629958052707260563701082824053749027126322007634396020789929540955346924019605020544718822708487138209195720740012397941835507303113820483279655879270985913838873206665894766219575145102593322234914604195521496041683004996847335691587287581153439063668879840008175878570318870435966315831862757128359688614373673718205877037544404111023672673854579048736666507978959580493171645956138786583771472822026436696149578073238887548194057920002997880646087013488556877205549308623471321454207529462547076786777202462780698691646225358078467489459766751941269113346540929391707188150151710949367735148602085988529727658059078305561576941365148935972960242326098064260512151806963454980043082502458670863554725964913443666364501704036345001132799537444902543785080465317863012492022274341105894220631305795332010751108061108147956850106268747764172145954700066718789319009051890982634670067876095151594815868740019825263466848909805498381176428450971119184464699835256277481796767555791787986372464537547006921768060219506381883253422776149541261788981006636572363168860722552070017931954687633874936652882597358425448755608286807896832435836377337309573300903611034725865508854922890346223035327652835287286931639227678308579603959126055055291560627552311906874078528164505575092865365424199830945270931760988844599545036412024105774239583033294435269332316107416749242147173625121624756711887561270180201400719686828028541253299878265877179211261105874718288316350781605456331726055334824755075947755491513563166221635789698020605750522685330538787370920469343047767630561101410741292981094808968679345818426658626926827739911683633348649010343225270665942000108338546479891797286305116798330364624861534392822650529200566747016728731678639155804177881262559007563837963696878602840864215519081411694291977360898424486825148363175724452703436850957741242272131168414429404228375289337594659473186598032299112372165659690317924421158121619521975806983674439005937580550936698204622641927541572916933821906869828966384275160867978734995348480864414592301906233581141564327590639977645198777044126046029202202590390017401635474469037940775016053523392390728714023447712307503451625384513646739894854085493457675005704623364346713454774844938583992650095127113160741107432699301392071302895159249192812923007576398048034015735383207769070165832621604197784660971209742567234974441749882904174334694730214290395008285812712958849215322697111575738065895855985350405060051522791532808258812567524081529957770311586943923306725677723532651985734548170651968904880251924361483479061861108691167199793066410556498745291547607130820532747543460336813305651748281870614434028231010002214855012131859419425749851902277351594088952192211134956191802078594734189570968932061789165997545691637160788245002397075027418700692110987284098872100811573217254529996476918622631716312503721487596478787165403523198273466009757884010939640446340617438908600206937467956727453354103117708720289909180383150996428868058750273583604300482482426806929505096059289889081236529683090158297644994724551534751094553520455585859933158226648896981918492523565225387321330369593504806909649279875003562566806032346514080202565652068707534922221390607806142690772843758030952033809247581893182989823493364550416846459457110009941167043338347916872907551085481082313224176804769442234629777504647123677690718943078574487179893700184757206100665758999765181676776666665998979830958097759479582576544342001443056425972296247924420229516666151653444869148549237874527356109000662746794707203774817477252795866884369609650799694694859323810569946637803909587812935890586618895792300687784368515766535906927937867994433391601850695324506835733309818622885888325375284214097640873097682165111773881290316807173281929056315637045979863871893125197899782329701614774525727236987823388404579380681967234001501773813096475837898932513595991904132882528559198568756364324545566915580046681431715938702059462115701247951091050423385362226637030674210687387048010636609091293569025057893072465280730210285288331028809907445354612470562889694639094972158544581304920420553556817620001139764420086899636736894728449744534368385456136230089924513335334483382015721466098020229761374183179103663949792154452987104766395041950087558799278002736615100581962404334991756438214503704481232599247030345877710046385265722349752156930370105780096422202690423421147724659286336388352719782890117212741163377203397158838413142393956100312123032707196411877939611564606244121178148818817622939474029394043179421182426334518462348699895408611786982957565558439203468319318198112150771478928736800165573785802318762253276625045581603846440987704673178163134220118290755243156490187198047278655163468245111434546116434122690511594830491413865098545635146327087777343927749969258976233569354023362676800781056682192528149657924691164264694652763085445218195832092202185257828110785056012657318617486386684955274176720593085961224588258928368467451509195892219756045889201322523713306914396221802276650481108598220551781375591621569020696855527894363180359765492085264456357770426979195929249923809979700435608476886613855587000123721401906426579089916774369955467499376590667969878961248110510841981434573667433282208819459491261097586464445753731908545854156332905997691660800579412985246276833299871314330129529515917118943878960408501160764951819364622974797862429331958905193551465649067253205142120286766245433491790375629601691634376848055965368980841602604349223432597156035576460974681396489811778916687482185467922281598363583910968340400512654695713754198283797079767736416363478372410419127727008160069742750040816305354507164244184209720216614146697106897536345749446898053560944163158991556068923718560023444363761372864865665077683718850146878492737915888088510065106913136917809398203562195658011552085894021657985451914284747090792035267779907748181017972996490895679882901937729251004251109719311412690743920675373782443258190785031732305828042767845112496365314865314271010835591117854823773297219260435126605449471893267000214239348221593516005043352252009963970286021134885916519955903139678261696887860381015748359203055371921306065774885787882982515364484430291682658920680327778051440167599630792258208189573836905788431630515823660298407570507325138484330853293052640884070282401357819927278438641546550201060217404473171306349196764428597114339339906501898357165128956166015964186354399678552925348593074863973629817330738652004820116406060806314964681672705688745582631301141735244853997771455239446575449767482805378963566149769736906075393866007612276336805891046661910169666539032791696818060216054264324432145211166823314219349115920306507952704795750334869935958504051477538924622749766139238754210261060656651009090020619101131846579375612954916269047434477061049106009152865080333357614210665195683322502976236501269439537830271950272043290602557192102030313154940189339567519245979842790773971280915469294043551750571106251390535768190581388532385771325143857723464906391586245661825927089341307759504100515625427660520506951946272006634768890045513815702313546788016104390653089738366872468470756899981150748686109218255219191136935765140168889512434601809935737627929439477572176574799435274012446864579102615628840612238099397894470938303936933105361526892541392618706605387432014535702936828499196930850557575216781102458655767231417696711899252192175511994484614062201508700426188822376354589504849778989641286526911564814258780944993728404703071180738468612426320963509380308640228600588683169341192823499510105015227393053136184106472987143920939176402873719306600383635513439730160351563562906302759989342581019641211092146773849508077388285986052081012894831659859852600314900303345448856573319343766049046824199849563418612438267993945077633105288145160668936392039075320151258609577283808169941004202868442303342726332104967275666698121772527837978564280691135666693541342775612403413225005731446068099564290758866510951282233391122512877917117297340552166231953759384793797232025628796256393507016958815409174528328447568082904256589516589542923175986424127581713639501304070890047234484233928055062880041898331953410657512225441905977706111590214704492334604370688063907369852107711394503127457203268863637508565374606095932305581460016137278344066425128044244242980101469271898797399044613162075333575109790750383531411401495102688574775771069775192488785153957524129681129401559253123128970709470051669612794289788877744914957713084638525593965790845230215122983681597491625551043641170327367296377128987435078472773731937949264935917693582623093538677165454052805455532221032203218604178228193191657157738031240297838785907078657356821908566425825981311802381304299140867988436652772032423134676873155775881884675885199685413982180750582432543890596198911842549231780515634712895147024201564351641997009858560420828525214680198629471978659463962724950799249686277992876980232458789769784271418018670647557546993892683607833366807612586649375053842881718458828717390872532100279220870229045856072777945726965771832023086235486664574234153039098646152974953255413191666561605448610045066590986654108935414502213540183166241794191959986743584291006535451143714251235436461221662132688470990933980694093529556182515472532340518178025132070590009069892403042754132386758559210880928407930671954932764159769516342523006538065506611369213265004072302822095473660315676066500394264378276077608233584612887216716152136589304141605929769996535271507614706109286909317604489527120609380800203074322261211685000584060735394851960672571902656729258713194529714310765905367843697464834665535525687669859398399530197943046339011671044490207422737647721051871821121986893438281465746758058341891009689189343783799957721175663427154515295751798546522508128585033947193990097846036705686301554961015191341059907615084245522503362385658725818957172930784203665622095447751458892746365783901887407393526341125469580687280551699523278026558672138664703136330713892149332661545375944520549792613404111021021326774572202326353448181652302893126070513610930324187159766990868951195282788874214009286521388852179601213362642780582153831874163555347444314239183937891947720962912263669985887371829358241977490963338516305234025180108201885079772581421179690495565060786413822729660297438104618138252648602890206836373208326813041156577975611990229744235604422138009691179547394652148212418810714257244259666943021702971025533002371239911693168285197918569673784717496881820351215528195022175252809362856150691461452894306484833119209399357257641683790626528524729044934417872864796799280938627011519776140924219561600234227826181819597487676517698537905864416235784731234850560000035528584453788577353691767186425691700756981272661086366479630385262021525643813003928400007739196925759649334051484329399408736674631382953071723699393285236943870815853840465311423908275541256936262482855913097244887470412900545270022732944706412935037437570051685385198971638068486904450477034230978840609173152416055053045571298324919351776211572034881221768462815416177409946156646485975586141135774137885761598194528743917358535910433037952372269740954105774623393520587570332655266738743491185681055891864658243072446165675209752015430558170936596563481465956996761425692716190700204018873203768323856614582493650985001462622676212833799902306187981366938178543484890913524524926968099962093418846245313028552996813536058361997764902867266223749778020445298986955255849683742070821569103002052140596723117490956075335843749128251364945084038157196438824737594208478607218840894175227988487756558956436387085964833845107612177673212350268398568777883487793660885336247214536843839135633645169901226417112715946932001045182175166073511560184945074723948925725035501848050245127879648010604557004000815178709488627941900078199300803066812685237688678239049851124938145856315124999182755273267600431995763270800152107501609852890885009286845982369688767572592308195601340767559575839282503470162607966577752012244916397803019068514025078586111233169865291154613829089123904686328127502529996596472778098893747638296910025049155302155431606783176181791392701266446680028075315596033091761001728085541351303749602581001869814398196365298023839272179937419304811205109305454574723693572888273169209642831566745043863465656199776731088833487530375893246655727692767746529849155542870376016223571693276547378150739107203694995142130032757342649039659174815978443822754566113168743507406566550578238878894624310558206780406571390663451941723169892438361047752515830450597967062734408363439781340861259736028641342288406934511126171130399845646701803786528073018293871972237976196370528697257503732370034030675096149716812776714284465286934414396517558328693525365582491712355272004730067786725162798583484295746451769608482712690951600460081308591925836719831345578679957001685618823924098464453546604096791815372618313826473501619391222764474754520938018316578662788158694459605784774268780705197402918568600712542366565358029681395773658093452851153176951572547170691929649609732495138474774511507061625080421451883870528169710196712676141748258167579679581249678653199783457981558628928335821121389988985589719360060217935020396574090194968072792208352269797830962403121074257639046891299037610407341885423017533347800980213858414273754241000436145851227329512631434770547326166135791246529186740112664263614313859805020982592568187459002811030517498179453814700085465156493888535412403913615143356125266445752804128475584615274085724249905405952463744205693911006689333691867097428305088964628191056233663415942212220676444433544859405838359367221728946576133110159633722383100350016272409902739018933023642293806139785809884055755982955553208073931928094473489264052328131211621036480489280212315459669550079804468072278031664936767670433515643292294145773014561580594121342929478645131260326545950663658090592849079791011193951610434852735730011574056143453868311101683602645038546331898593674120324967696104471451426882373187303855192285390802196325165440078435568646709974055358054859034828230394735255548384037913552395403130636431903806085580347924681220288974364577705971312900412896550470407350586062997818071537400260176690695052127585155807783222429494554047800749116040580174385650093221803611243553278639096951518957102041045794991978804176145781205531194081166984231672150380944743305049178596458704675273616786598516510213256964675433799978269130249629853966430669758990042806950143418544688146878641915228067097288350105056312728452251252165729560347842295557197073936963402742077264374048633848480478992611927311423560796473369019409065855645150688300436942948747425568394282870192606147685584635604264787635635187512018597606115270261806618084688518884901031477144920029095821012608355433622977933538966750552432188155294893006261889930009218468226731768765812481210122332631197759902771621266284959809720786927004122154121554907625703064438220523226896757695040465924687910438538734023303594641191053956840984864849685310996469889673608281901381937821045361964272784744439132463910069225192028436943072004655112455417623214643250291038198212448609416317196516995336148936812627391537326373096551290282301544212720207115885075754103965403546885809144732947162478377352460052835089193504138999391521157555360421451777458637223985695797901834675534264626745267916525860922267228640267237134697483283870641239226128367715255246433171676227779364140357056736533633518189473911861135307907947342479933833971113319368420547582566100345697657738310747397071539317464066225407537958988383675320097945765491227581692660404271715524197951050375105899060774611505763976353255276616261641542791651776131693693015482339174242215786054765681644805945442912595409900665408187747336583388982612829315331439964348556327391157226368130634874019287178318150476088341739712543591486286874211081257672183351144507487075061964126739451602359375910241411543773783163674586627735683449834366320670125260774454271516637012362961517684582894659050617329381386520333084591251489291300634761647532007797632844237445002196194828969863744609097931377536157962705514910246623805693384173389603579883207201520482286378592692580286997831102639135039590574230189992057548920334882266261921537078871432038359164488191926948426498426655312545977061731143512771661955550321759893079734207915054519173674332435887353644180274419881457556246662798702336450445364393957305516588708950976373925547604965651186126923153931344967028647412745199795501503713736219927832451432917725358903806492501817402742785290428777157250736270588590902964971923547399827918569248212772030015142057758300897757767447945252653291560356548208963151974538702561354152430668276679266516201314807320111745109361465277149066498180896456279751009257256310374446120818922060771706706290582672670514459604202908932512077202912754681841376473749180498669419336463662125954565789773755380006388837018087954189236982167011626780540240583004001765772959466442980326833483663359458021023670274830049317368394959998265248069258254625382999761051833715214973503865242164763581458877906499335397278163597228345991686766752856834845209733761506040227964377135090376113620563686209763554030443891329043602506667940388384761742446972757991906620224115393282081501232750827216572282562909210792086697437222711257764863448437933584167332275257226864913115687413476407047108941320937322100821316984095243636481231829113162459437051981095347262165976331174827743436643790646994291367418151681440679723945378798115235795826874956638410617178228782435598778346297446552582601833938300034580411033708411765138708185624119037312503242254969932482209163565945894724255024479816734106067182248108437609717379158710685518594665790403288782704704741979112153480101355430008216063243995970301698306099583594988211175090286857069567451786050734439360385917934760254493876341895762025928666778403059290553412826935361013651295341335250333635078864843103144011458679054313702499141816415398136012657446882583293738097606524555194112719277084788580027227616686058711026902553847775004468644439202870112587352592523878895989510308220157483172246901863285274441179267279800252636164008038964764599431293101068787971996486632359365349161173514778843858314477918039246015491967365838024063315705426842629419885057282596520813748287559189940722702999685413566351466744035363095386720072694461095854646018420639581511130435369342566812187115880438795276277939758099366978429172154354678917468231763352146211533377809235313246046101582972511570941893383467952002042004523432842501627687243787162882952021622458096641720145212830376653758499180056356623495842020972765413004227038226052232008816837890413840795036161134380682134091416193668630920778991608505602540640389143674448806907425219953171852773077243120467772791135664104373167596086730069447163607656796534177235616207203663916034509149013041014593583023929405912406611355799406879031961015417934016129074856716727366301809242526277966323827992191279598633519022763155480299367947179443180693096941811572889317936243706993734844540594556340058722055331927860316118817588035353327491792372485158744690360220693927480017507589019153029042824578120327095982806446331771563333021226011094953912306612858439172187953669378355001222319520277244435484896700044398413950863805913220081131839481407800393062657684746682313324073256099978216957151480843172755739805677564100123736228186882777614310962701015000734510022787015488675023135101218539106194041981192336094284912749550449662210845783798160478132847005594574064259321059777621992637987832782499921383063362210732470283053022702130792545428354012295815219103615241987424519975643358073390165803154237368786873410774466242357104865402890825939142012982890786438295327635023855029731398034606771353537406287620195138757664601530877587248479719075605831641513101403333024776006194203172043504530893610689185587486810929623174850789913827496225387179631692353652596762688040485463888817993186573111924524989834297550644387931743182166457915026394250634032543652397051124218439199970827713676133881011669621301795467433878325125707348144417060375279449904576023043569704661787959370508538136946676338074183566627578977032723464896978275894535545286005123808106709632777061765788837900422567639395713061934693490677896774775953998992305001556876285922023741436381921181836387516775701575216545260145857483142851869947060151293405517789586060702691894635714820775102618638163243285194378789681623494058147380521966115346981706599625829355762337949668038554619595215798943873906441372698815866295650023873000455891586275160898905354093846520475407512567529739687176901405131517575191140771125905128982948021824460214477048490176468272112070938434704370358902188683615692564898806924258046976164394161681894771823144105928225020969552973345731808037019707579076355457974972831281929683293388781052758447562866062882309684475471830329400215030381271427921626173319675867023067988160482952302358062858290525298496595912854487985747153291210835598935875778679085152837476908286986832222920815822778896495367756292497475309008878510649721350653955581925103628900040598249786946578951634378471428706340291018762995112836582458182774489874176519518231108208198502630270918698600534816986011341637137401914700705467533958716999203361779055405989774947156533668982515750094804801442669984919603473095263024064530405239250176436652617811412172762460185667140934722356058545757814779651346013407998576959042102444814634175238787504844291785263940518233813849572844834430887065821503758071715586242846393455679568296013739741636223650477940397728309585042855566181410448735044038474147265237476253155914537941278414715519172813998571274855253164991647367311217890844906066848622952386495198365122363382524819399847132785153922766254060402895500972473031514632343705727045833098813407934008140503687158402024789391768241319941562486964845538822845383004380010838334719960858818900792877841747468435083682792379161403563977740062370145833189729834526973752217128503022244830583777610424354491565738238747834901337322200908759555743977986244898887056179636908580448988449611492472597460620084432877464254138602120142162362936702640536395064012620677152143333307584669115837798907497628799925598501929710041958555853307749433904795582522215800221350805223953537983362289911714793272546249070365892582863955217942168040813623472285755536021865673007783054284307703872468894085591029810915395905478888529147502756798756735316133719185961360200283995042810931514907587909073344868016324682880595256429349459914821262658795005062029593795323490065549471370519217961812253206329866861660304592622357694607137721607321798173354132120265261800924122586579816304716241485465149641341136231933424734824420359220853863727679448061878643699748401368620771920643421222310744918339808011535530855547690234943710475367876844567124810867682494784183095194667474389483562004210128769059548627943472594923151312607058406604431991478427298149526413992649845379159605440704497594820122829038455488304054996101671231971224617404238552450216844201182363617327623895025876387902300797679617591634884921619451766216965385462659068277838766866434079510400438427612897667978240796482251331973845849628423030977523161185177276418084617601290453566075393860080029268025445431665877948657944976056186487012389818662967973194779323743255855986021116659000584375798753020673476704975999165672062350039304358916338238029099988390357577148093862543239131420835826234594020759721666314772245690644004074933277924959443064394122735678042456657188687559052469187725265369566119865460333014904469770893951745350908744945990900020662908702003283185921089548358437675448197913110444145505841963726797883087262661181274700443223527965773265408042457354661200739076465514882046909088119031613457084275913570384558724808659507679669627498479649776128123043029655081780265041842480934880148516602710368015861771245735305729832508443038721272124240586616888042701153807154442854828834345465760263172547310594085283307141015337610814844303027501686318238925834875437147077016300855521045785167047140708838496706642084633938680997036248517713417590027208396598793250470362599361399469947776312402102931798060083095037209785636601080425331319721119994137946826101707767911859477933495625514582039973225757607640285004627060308104866940880249533789383349430499761208043025666135518528288220886032150573051321690812726085065466143132285376471686277104720528388037101634008782853668648501873053360234743984898683915944030538451167917431875810912462720116691457775690082404624728746184945660719159276019049929214824186109833785315537712143290895634441129271378484932151844644936507656614470508927709625246584850559116479910116384903039597584640255062067905330158099898872122974119932892366339640715238059353690101370446071242114458982162285434850744412008582024711226122866732379798239855898735933045512331127727085468224510293129776480932292384006933822087447517270902343273340498189136714937651589012696330246293294226966039582818754980999621759292971011501865937881023308266244649907056865764669016119838198237904669165036335745280831353387922477952692279303689838090151226382868299225878630053894220087117175058541811964958756779887627214250251147607364600593646663449762360197600373068443884272137188231287399090417796201264995348682824788056670327013143751097550920861199362140511523070676440318949523618258523164884813258944103190628254850525614160749650870064933604195832142273496156794305228810049590457596072515022609916854204145882872774170786266155566190824732316557764260713211712556292733883855196290846989967213840528699269984976588020466222195206835119776316187440938032855500100398001483618570106342729433208644847765664572330344223123811064778546742505584242620581237854129373721682424885211341394374257351989640580240321672454209016195199583134616040376738996582254308627125252965493607621207122402443800484032568234685215376918370290601179416454947429394737546872596657515528815557197869003337557065291083485651339773669652251539220723372039769655138630500507911786397282458559294825083780390253824020044898084838876945769801083129247941728098643961187283169064991718537175033941184068511197359334468680348078591415109153080774732012428839522901079283928824577871413651264205916310464696456648287637018162147621121956627030252112725050521583595660543659334965056156771326258301820164840604637858701550979995180593615679113366306553082839536400392204154401789901698578664491494813859424278641131275929551435970800641534636312496486106316053148044503550770491385218400463325043339155439247267115644041202210952401445714547857981772393793330701991449416520364990977390681952735840245558248908327392544981350619711747497170153597671930726677426685709290524657276397331011054227953076626859160981161760044115843811145184805284843840877387735668925671517618162773022761597632765813094389934442143687813419141861200767527939062124425968897115343903600185359333776389003650327685457028800593988354028183831793254505134314326609879932056046124522360864440391034942360438721820313979378625887740058391846954042568642333421435023205270114125917367393375465549677221524986662512278444107915223200786528466758516268400789819846619517250842274178825668548958075291169968448318868281490289950831974454773291278901878788201813750918120940613623936120780985634188364794810683845888123727580032858818169793530139667484520976841606203766789522781282510958980080740484632893816619946204579616761075853269949071002928605830574371797692853187753872222632806954863271098483549746088748982951694049832512295525779295602626893633016751693139940921860018453730223911113074048370177901561971514943461598794492336328006583377998411774284923688515242512357886218470041883492374039150332021006958026529234304289806699033048333452881968744146359644545108559338498299536499129027137451588718553292969397438275096998163466362599961623078023818274368649925975508188689862436557420090694151488534086895086227240649427813028900717695895628602814538158563535195215255888214035570073665027182830249116242935975185399405941414783005968456933845840313222411025481325560106641890763344188160031126156773434351929417217630539858693949571665288161006176271038561627680559332535813623691546909647219439833856868108022645723668068455539405378757614119789868067519838443236844307910268881605067457471172108406791485589302770818111265819119055243548529222808696797708149979706857278703326191720902069731560603337806557935256735509959484011151433398689723561630278113094900967332068886884200153285515215619432504956410431321041244478602155228041055537323484115715955786850938197779853276555006326403796467605059802082644692294587734717521050343090586008148403945642712696794210357287197533814077508470741837504700893181641546103800988744131045906176539876396649216919118843893416747967486850610188488354418991184603092469177589966276701024089679307023597901999947476010818240344818301430352658440313517379020475248863586551830311161908736577496936459575455637925379481977690142307171943051883966435690663410372931510061401582369770916381571830760056782274445412397575308330321286698456392519682483616368644563571942927702621660608138447900145307730540165686189583738244395650158630908020528321062153417640275341576199788995013876165334428202568592782150671060671796187160591450945004644610855266245927871284222937937885217069336221109063160535705428819636486763226213166949635418465312297373316223292113090163199451172505434861256633544758630943693052265131509427518920804078192215895005781376083892249307344183159710611049212607058984832771370891781928382277731958086277684805874628804042505908672140780327260303261963720059974861977593067416555386303402947379929385528268767257933821103247846246162049691200340749298307183637362662528197185718995742392996901953362835842261139629344651910233299223980607056775146344508013231793349556291067105876696885895425087870882475946823878925076471024388763266046777316003622727707525455544657583117063039048965528669190725895846568790839003194647654914488367146180563327040151317468446611308591814246075735652290085205198972956810959472921419264348108925227721930806106948644864307813322693302211638650420685714257237362381455787479048051745854565010381726176688378814454514480022236895386247002981883276252773009782972596895480324235000685711088961041753707893239250983985532129459385016709909260201898142231429214469640864508355448364583252299144866567459819068735872458951748972898280430647311948872835602637419330413294037817053727098712847530346774792010380489017382866190662126095222739037698082210105693470051076725290372509868218949496683114342710272231232859757697131649475553393471837302816972843892543265134073061064867093507388018931264479590399556429683969372290545019432176330347318994864187732493620618533496759041627585387633800414535633876908435437358680791979197709441482649639135089774858874868516293718336726405984056406264958604407475197051441998179055802656931429722207943829049297735978725415568901584841715170651030713168472334944134980317018261956265995220459749832583619378644475131464152684380933616892390392739681789928620788305670329520839792179568989051180897743364402856686947948299952648310828777997141705153908108542699530857472475971409842163223558139813482735883278996297436444879387947413898701782335252966352948644011843611644909039286810074027817529354186723594159662434425802747001531165119260004458543362517973811474183675278803468977147812312522734449965800299941953703200353526836681753990953653862231826879193219524126596992633264598387776179964322201138942559038655986751024994869997367679493806998512525534910420434920153284072898481917126967060620467991837562302892777131201227503642074784931242447310940527318673002228166370561982064341642335955006761657482579588266546521028417752110921784024710847241528249947018276458857919354393202056594915351097594964113999113873042191263858984854085689625736049128373516695920205161921131422981443626021677824770305652990522660648934243680812364995251627603941105560494263550991950217611265144524910974993791860807741811192219806862018408557762990657505794016044198732562635751661418433201794021272043725788721571710810134464627575762454433683751785200217094774810147892047441363637283195819489378669191908105872506068165448956666671507657743261603475282214269682480898235213711085858899425793326677810369705199350929185133635287842623308657423517058330950146065189365380644263917619546842248723815985008693106485872148344105514336792858326153092877358175760731444127301797547490775158533773884092107069899669073054355960478938258006065060763556043848036113915893238609600432025168207850223698991554280055371502244874017162780415355883519841454801537103675335014214359302516442882962873467914703131750250543503307077268470726619328203765457787704941079313982938700411633286167672028311373243258517152539568041983491214991984995462901093974739593095468672575465180896390997537389339603852919578146340217945761141160603448201997687349515464230130548908471797996191950132201246167603607581047930549993517393052884618714103329891150802418404135006227526127086451227192018545355493111732079256589909396501798960705950122869257659249841052589260724503783075207433380183255677641033110004496815379392231656319484079747822183355050507375228265135520718412679664101320787773734822500062204945695880237998257671062143284219469185164031836019163988987917034396035747218620457910500081801405839741356718050311230262216338157779672965806784578633542698901789536819911961736479852024228203878583377251692057913301980708964674732515724607193326514814077654333897819088742774118135285405967939286926103409610843853769146395070263988122466515832618056141342465298169483739849086326459372783269251918347517660920974249198396713947221333436836521392079326244639308667197981609677947288996682221265599169136340989763237577552305391069009942697048957990173992433397883779464534102737271810108949972076710870612777190645455516317671054834579475152251168459303085591502734862888395184907003495622820647493159637694667382804666379886544349921987532322576868590702548961455391281255381712269809106511901565230492014390040371967459961192675723384440658497462235117797066966368587144999150010958249005281737451766742142074676141243848632816061183436025349141500447819305348461490123515818867324118927816692447155110613068818604101229896147082012288440581403718206955356380079768878290830186190615683027696547111569896150480438676119159658069514314593829159049737719381801747187739877833282731497936958840519384579075913890292804154351482458760728336978768060353703388322562425510696340527540262322143007460919559676129642632578716147060682128463018557187952549818337083150939647126503730358582493663643789616736893705231964649158546280480955811799743244495292824720280707051701715554492813156438004817614937736181744935378029840516091211440045432935707153883004079576486699330989007186498914899324406941768653196769274870615458594380417496882485322424761482543482378519939588989779136592413111395238926614189125573309751537827766271364646472538788200261007957513481242934548744537883634124050058952000883057738633848902891551588052462132271579347387070761694454818880531786467848084036372406442126946662281816909082567855147357126935379986431943880541436743518739759539907730114278236537736894965560096571503185653167503380433860419211629534244089075724972339078963160883246665864358983130180657791836348098309703282663090693406115934565151704874249943168483261607071072796496983397574083456735345762710498648677068563779823218997924377348909589871479977257601538667205160945607103599779686529983275791469618994528586853151549590562698250624427297763435904218784592748807732168255269296597233421963992654623632633451387029628425998512822686307324458979886828754880450667780466957870052270834050787220018447537147091987063237282249501369333383193125338835270245816706871442381662163989764079581656573791025081606811697528462557675571095075577081796451050526319768014437446259609137993509541622877664186222047088744145223270830135448512484397584848359871526087264016620474931702363370370977275825295600988069009091577827166544297697137397776528988823936253244563817766052054837732850542434023469495647022832852812384247020482734037943861446494638544160915653095158535800060633451304926639417057481664565425901164329927506030798529478342880766100378359128663653784380533121799182038273812102011833014780658138367372355141879245571662679884910853918414771061419813403804054726290501705381129719093798774136481432631773125950546222438640421237041230236808564580971457755507486731292568906982125250786250535452848777154159260436848447558490453261896698304971776301276540655405215846991350959672767073797230478381349548206062039933514813849521242665251080530205351656669069933951734266257817425162499402676862631898140552765508137284974560383483287392777986679058072336838329608221245380190904608897121089704242510240940809274283042449290912291604868547104208222651659060588181488433277512035708272695301968377738211416856538299817253457584928983240718248527585039862216691670186105655250839427790719758024995987186406862160661246696377711025573728179851110028236407816460695172347561476704477005990068457513356007779595602503211501137050195734153654848520754722572707348794321705743136336295624385766851865350118807786110125605729283826002049687044069608821996578750730291709334956008129724155614096055977005185422582241997553300722057806929481492889991654058674241711659973656643980362986404125797166508574222571999305359423996251930563878966765970796991434387176735666515753926967295190397829873756841786384020140472885900134736256239439836111309445135573563742655849752493098491704788309190328117612801726502995354629760060679479926294961470794810043406869455026830952338509250411046863006375091961370982577989620614644300902775768313519910949859620871277751166266452935984550518207207365463333566434242221254311346469363608871493677064068840871077612321906076901703090838096381553000608537606079550641343977723325206819699936799871101524932725484161543814260727529746406942720447753481774897513235136126804573596237447741540861537372638275914060552887605466597589662365754250434351187217789298727159588197850430640981790410373654394897266504416916555921753114810002126186862681924054533730319896033012052313411915442764921703267195357258525901480349621708007952393903849932489506396075712744248651500359905117770379769339960506138543857304567130210146149439473913407345482038569861726890676469013375447932138290137541498933209148708999982165105280246529233420568439201086507061790914946844154176646566762158512236957323563217746529205050084331939644467367040620854566687883111847652727989864015902540480035359477345620980007448815818073016156494581870260199774765353692615206820108840343555008252633656205874642767449096276486202065302087946153301537561785952114482991575983284247572881362902695507052396065861499054198559709361492350981077130255031005282346351929929620440846691169946225270633441217677659246231522070137478572675906363185886218042662415413016501859352831854894322618430294503414610581822675974199232064354681034723719292438665318283687976978373144115116707630812768096605188718440661496552100138208014801341372702646844046226615746423027792564547958945045359892306544319212522494700903441764201583942798790523843283439915630373347822949384367164759740137801435652938215265142406307229357941685790444590206227260340025015010345536558506271318191471173824178628837570192202534362773395503618037457902989703781397382050094592051411686100323772562360093705322470263796125990536584095789244027400687876429059846005000402369307208987927557716333921356978244143287953418981262521513033120711319708319949103557271083069386125260552192234263697114485203414776469428959284211716276928037094305023633412858682035424603638820814529748739842874026026454863567710712859552073541972590421664776459689374754275685108551449550675250911575126063170357627001083019238829449106211176923553302396957053807042235268432023663332072038731833442283421577870059152745828229345484161747033459429533336801738404104678555287713726969563490666602661319822228245529196097150957211832168451833993321884908035679492231458790638724235007862018603983154332557782588885549011896355586036174207103445052638533651615678070039686612992303488100988288324606491660546170202610456592491792621545581180102895946069285458345317029852700934520350242721718421773274857763162980870237802387688288073807168287659203237773831638370222093864494722489665432360777963872426561306504094246162593234921025676102808598769751157842946729325646172486184498175103413929838473205914412031264816839343659399781151261791034201380810581266331671002502145288469696536249611114274036315447392361301259234620960063661974346394419290656219796100581443246976199370177377122326116445882696777294948048936205142537708534242597871076251260502372076409658098757852246400783425267881718714087077050722929788489437949221343724653788901913119320197285600126949218929189301175738157571034446581985448125951843467122167776334794132741047356963204094503096185460542943195067787395208377860029815531933623470452608260572691862797071993754050730773833554186455784764176304100430685443109884922111620428435307710589309219977031691846104166944679034551115879274644675377632236854151251270393667128046295641599460180450567487992717892760294876671152161920103994434965669604623800858440666935845250922513888583323260248978548466640541922631974659199349846248982315691143095989017924444700809617455796072986575077255700076506725681021302414982056330867970124950160933917691671006096224817040727940104136261248409159318382094117976252336633754331292148697515037488317273739447157295544651760114682856647699781097759355360622292149371346843365229815590261150963152877513053019167543470221627848700497444058206093070752889027925599482749312038980963397926245253163888162887184030682161217243684680714069448835878876991125326041133192432448474800041904062115036010095112907674302517148555152330672220965284168562071924476331458680182470278278573546098273672238936721564041910609180712967091540890609791014393188924673962911527843289001724884866692149052230979461688977324935251854579263296672677131086982836576732996654397711461098857879616405329322347517928410967682344714555106591455455153530147850869303535106338753803019970506777170936556439918274058071818257926477736264513749903969691063687503155881616736909556937117859773645731202622449373336770764168679249813299179001893800731876122545292858667657458442233675840698815080519918514665552081684369697755096138827760124362281436485200807498490640369282973634159277488665188735428650917362615781271998376523082305396677767122517796615607055303598928525681177017164266893520006999805492264476194397147329800450387348948914847671199746658111842670359210049838249511458662935183753414892624338676169944970695110108932102422121491402603668209277882306632872846414571084584741892090964174900890662323909765614060308929973330425489060110784085427731438395839798961313415292134985438195446245540907178296321349731141058426864952689538620919258600883649557440270338362928726668396421642851245999730742325772566720461821733190164416752362717429804104087605738127091586429900062873507989069294586115780962745940176332268148328232130663835732516559166124866024090854548954237627461696231691155520165704464888405002346796780905275405115647949325117017571940355953901632397400416478207539082971847672666374031246307093361758815611783972488967333055585837170167709157225411078086221520249852843602837515621773588547615451045309361410774832807262074796400642160815966712988306482858329242561837881757613580023712891270668244637847425346715799351487429290239943268110959226240220781145625957950574210337334327788222680597024382100086316973249709606956230660192770305610037184658119907897801520359576415933050586914619614904719232848218479038367582441407374783652274331461360903200123281329076689493667864210980072620264202636671465093759345761575292708706117893093030512329579204141812094582910155701111873713272822778994843241119380185724698822968997497057265262138741782524076985670835758538971061308087557017253351949730323743914964410061162488669588724522468781377084025809403014274724914146774883354442341158165582404661372088762484667421944862215154935053750896714578416259254014063735954900649335666124729441136745153158937053604446933868650251771078616817640221202338511178413534636449252578264149201284031265951619484182700243629338731618783833842406942329223701893695776555769033142900462349713221179705248380394071496919531629111037942687260875425678492858087140266587284047304531077859979805671138381481987654969764967389351834612494620164148852356287534259630033352147950254541885869677597983080984681615946837194265540055393521517114060528028920095642472724613087703741001175538018650004223899706682945625346863253105708743966102540902182318590220440397624622340937825344697303501190751875432825107868117565530461840609680268667027992243031297954600374951599996207292327503050472152581537937973581438840793563302907243371669356926428030078439356120153026255510427286262435279099228669640595515348245918098778809292452809420575183612549334065589848595503223695693410334478010779508556224593544977013998145634651838742508953804003564923008441421416436745584011593815911885014330145374545906326633674223063627953980077215103395190038216108982271422904032281535085475018175486220984639341383802187752352578813561851126430971865270644786863471855078046912948283642804222483974559739597480777177745240780778911036826951349203121732967329494594804662404025363331782828602509078203150365253468932715548716196323370073065426776885522097478834734398514737618834530824546447164102237118085152502210726388022303875022280343439304226052948780620898989191591439880368981074525704648698277478934979719201135752503842762760904771661974728373764790453427192941241402630813733439039990776200995547039673935308398004063203712130719415692463007544234363755333221909211566170706408019637053210392968538149780310412275459421741105280808991898715268648633590509118423088007469484722716265547972126156234655858679609459455553611164960516908729766527673980211286854225263068775544005778392171562152922514345380035444145314563494660726343128898772365552186450908081557227096343318081426206521897478189204378647447347655872054535552208149200787387170099422065550548242577330267071140160766045210512888313719396591904412475747701043724119664891183134708697033566408780902505874468014223616887670648046996222997089248737060850791713077913908103842939329003432325298618217522946042304080010410692705495632219532089193574819282355125217054753722699589687008482089711150312610177289111671452016287049283632248461977964122362542548129679810620103811496546789242935051196011314960434170403336385169198908709771714485698320781660976106288289911437295488944471603029729458454122455210756739873196274819047834271709282188867438498422860691631021916348639116016476444040751696208686694866862376642755626600778419958892648970594122286537917224556296692521306327422840873735495562436737167350649555115231389845107609273287623322029742957694774228169150965702961632936933337380062046203166018755917178925549524598846218199183511842358915699996660998227332960039163623137378516081887285948036691852076328113123468524479502652575216676732656403270612136560087721221817394305428432440382073407196165762308475889119224492518145836085639367934447723458419339953931126916306737325155108286960081584092776966764670902335655068766155420912206228086634204262701050769406750743092529897989751582230071829463552270649646233739800769391443528000240567868592465681958623635103838050616230526980044024015999126049596050302539152213767838693752577596079970749992215899996023539244607350012973309803372793311323222428095503881367747273955010770168441373970166769442304302328413194645135505789189473862109083528213802713474548348070960557977521933522204619444085819094106750566423601476037486898273632476465940748366183902571035500373154115801161008561782747947614684103465419807621618178982606919475063933560550048775702097096288991366102084313247583345332933181267192671887884252156285909918250000101125604000309336790066938471195960338882191968600343798054026440032522698747346644862016464547626866767330169284032587200408042873872685921829352811894714451442847376577719296104677257780535651515865317668672077271434578681388805065065748044874933159944286232179159518780001174411750105508956324069482186301067145129606972005300484301509602009748479241377893857874491965756607926597036700188218855948679560212838741596599301718600098631117994817725072907089610947872230378543810295781427944493205361351282234895859095725774585268495411760683557880901099079741409123630935007650734818472186890882798523544252559324307431497914107252531527847099057709331511845936124040943460078559455193025981051472873503604827811387722932242316063601265291064125149922906713530683465250290525848335440876255989302757676705947520744312118691576429116438147973426073143849527649878349002299680604141287573366343921015025973106045262453019360377605940697239515992778033697283936549439723697947975005553006276703207816566306155445180557188972207186474147458188004672882660444392490177315384277986126905174241741718503875368251702263411572193412111096398891240126225852164528513434042234322545224317809825238080174464210604020222486202003005338382640005165292015279469115442640534864159989576375031948251385505934065388159831065220203373262435125441409999301215198445945279719679432199131487089673208544037355786942393566093707695329919569689734795383452035425853227806355312627312429275589011770706533013949982394907567768790291185709638094883458130964395735669346938298715090157628342088310405863836889436304528477221029855163016378212035699932857033128546547244736698285476250141707049654308976406872608312889801462989332643520029300312075823146050929042514356529234258650979183485375667559628137071191600869270385949549494842388962151270907937507587491054529978526092621399632273353298763255553359035578132067342206045698701744584807790451353623118213182466350405232337418037681853607385324056285949037170684324219478049429381811000802907515176877251866019311114145027640493397920947441117589153086532804221757855108951391830751273520005284511912847245773858998275571196527254284536444878039778787837737036287500929869055473570075754725979948046802506391590984162555652754550240693646700683531987856422369431170180551537366759199606817276417517864538957232055869281239842329177543259340601073984971678594435434651345568991243712976265016812604901883226021048549472720069098899534769757945879946049567077023305592646130527139570620599000897652377072294686261658584308229536419498587177800811706202234744470565464202154785265719901370230305150316237322694686408941392514043038883561803871871988523398805863843165205173167014804683834824917966497901699288495661190339681141183202922626109752542594813727762720718024990974399835582070588508883516058725224262489885103760017587271404493583768212113241032518307472430436491133288468184577790983408711194066825407921530582982621262463638740081701185402522621940368813641128898510223800853024204937141693596911960094507499036209878089040648388832009454790817975835424581753864908914910400671897639311836308703035198347464969365308122684389346602961687676308310407913713535165349744305203419924896357633607226938177542746029876799054126729136707557123708091082762348168856028245689315413320217630891553125889884423795519066514390382432783162239135449779823504380458068294593946053938293401660516983142278217716043399090363921727871801414024229985376061474245959412747609080002036991692107608320527585643001545173241120141489190888164519858061324256512914550555298248974353276196780245696709964537365422135211699728940713680773257767243542458367353865295075420255194309963218598964450618466062179422475297829898053620013323156867288827201933228391231228699487247602693405928705607595585047680295569928684099152753436809092257622933543725275739621412064194190011922455204159197052795600518084958312021502628573679203418751767096232310398973453927898287530456232309425429060443726483545209056437571760288116799681786851262208689759281724881628300868920271660718083220327435745609368365125427398261022505319213591335849816001652634579333329803302088550521297179700879497675536964090309089352533589714542774293807967494824162679837322218691253146202895960777788897587237139522876494558512234804475315827197725270217588390529171480814984768243444248471834802578845870533851155476550308348317311337196747501041817692312203037611410400931740109562176863207880333839254606881177256018416634612283678257386562552071327229204708692759845862955637561813142288545322888906969528345443378475723202468424249860505681334208578003172304017084559813442665630925845070380656746550007028115769426473493210313448344045068496869645046093115826892357822169651313465623353772985575413327434893039470774278934019531180086882626376948619833220101963684162500347026495849715696496553176229543691740738758356760335946632335695054288744465522777462962456604976927164779581733424766972235554069281757443661208461317558167376631822092275931599488129882544804090753356341999026022323445021380874030169925273223651682314279525045202932580481486830212441003583896084299511201220941963032573307111292891191959697822359194116785244452192555669124047333196458904855657673549212554159510304121612398922564595133009176620623471269801671101297470528128378652332167705979001902130297888331671167040279038397997227627828790988277034270115914985595586611733513684438222651641942774734038698321843115762161857433455036229202654391066875941440991527451190653313582057383386674954406340515265855488339843691221624314945646888225182037977507582192193275399906612792321996297752585241879865228263867482889266675362073599625164656516470967085314137962128009142396890968809290996190401013995397672471961135368205712293744457456213750418387730777000044790296712727036524375619371673232688579533948293011452379434860046508492337761495491543872691504077231105066536778845381346249056729639582980598357726438992211925442543179161456100568554210007852810873352258299822441044261257088483246665993572942178931336757095725000064277987340816033991309060130532629310288114755435918996787159039103934603184417107327215172309811894179154870409509770871996692459902239990852397439466665407755862740428126860134370858769327383556559932391751426861290761153380746848662096879686972747566425248413557782138025584011828247068414227734857813870280396440295826690505662043226452989410319201249341615619857943195939010334501216114005501616049425158244778893365575473778530137546262454906898842954144493544373760859024002833378626484797841223787507774168971046330625968306674273548537042662778491845787905239771362699412964004190123831628297222957264832141881599487986335365061290308053472094512921738081786547492767944138376216446853769023952134013965777553400284100485825366699324775554474051817127599057906470989645621624953385698724740936162148777529697316120729082005535728784902882337243976137716604036492734022144285924251942512011679206828897926621357185034913752769114416847138296985205451901848437463976714084338519719448010592802417858453114038685844468929575140437223769993171627017512625157808466301659420441137915557317346614745222701306299374140250228842522924678795007418992832825769947066649169393365004354852586407986721052764561107721682101631992843948074280806796873708155822492704778929256306045778695434843898457699882113375789213500971577087767552268883769159385255909314833334280829183504360467599834942659249313440293031358243722456571764209411812731557270031214773523934722702191828785109815541652985337716914064132237716467982496842610385679351962594582082003760473855647174140262085492873656966854064344589730754544728390213790273981007185547419346504111483792213980240989078893976910095028035472326101019139983903460581372150225819041457588878701752108566781324229624082215422718252547445981234114364485843511344558360706333734747010092419521318436521914378350997319176293291058428486882373825202531381338163357038320980396095737087149566665014667916580654244612733115878278268008893197836866411512382255152466155394598006320853193852226736499213054953380326138282841472147906336941155597731251367309692998993257786117696117107898333310456015779835629407010013807053655581381107416668619524552609562833325810496168265932672784738307075112087987230780764227130247078521659635699388642654047846587063265277759708622683893604946273739610715489307552935883301043945492173383178458070616202183794716238970779367115373717334527319912864667209266139739452623880995689513919269110391526167229469219026934365172962191032645881795011683322955770486217773782527385148271779230639396491832410114871910393661707047336407822688536212439737087212934711949075493728232002015862273629704741820303641040357790593333590790268372612889947274705931648062820352854167580695995954031905204444851196997008668831387478715741527540626056764646981461194985494352200062223712668675138060337163383787649393280970334486687116078631196938179560567793676145124970072773893111187693844124050197878904071666858427759868576190227035341196439144499251809119853731251173960545259222080137973986769297999781893010201555619159080155744613052479036852955912327984990148724649968797144090360151855405496680524566514227335463661608019249133718217032631958965060077090610949491117860544432333873230919131272345722608734583653566907142521351331913634540396151520591735676339356368703477842734083206631595212826802995603828284512033480649070141996922733628254628942342349794113405152146399631322719249475744456388047104082312167036905957005044175631135873025670669889491308396647416479370453542973590920373725249880656761434998931782024953165227437846065414579940715029556561946216579344048385842092539853805419565898890415083261584765435404839746089419108954673621389013730552222550923452808464770096958607254122740631230859931562581430221123581325764052095298964432443598816816624055596284092691032906699701509621058893938139021994977230053875049771694093388409501227803961914873911742372862016348699922660207290246485065519749921189130022596208337353826218206334487586380985915998249837013531526277135704287962924514009253490715656241516243348620510458203086421836549342341339365383958956667621425703184357197949563787155834123061446641462745090058246908791584311400232826384736507821819166910379756469266346538172175957413602672858466828070744453507507789004770113683420356287818840742985951407674599570513982877196743880007828102212205282779598397330920631548887518620785964797324166684149466687732420373834795364491669834225345290499068565692214792351791721546821651661445007405911136860904303020233603137601621714104869086059971663882099783082995351935712786041346191451688435272286244563431814403869025910633099249451153151037317632490383766993084848760673764075732817608118839868500488085273290877438513399836746763398332231097058630263082655519951151064122609243923844315749439885460474010139215350770985546809822511292984908562523345961162680219368958000111068803334795792174053329497325328065578378041272368868948201836412167321711489967516305792113058150300250639024551157286879601725426668563229742520412266313484780264778335539327549819606931573074823112148284483971188216755323190555566935292473673284404514792862282687295154659098256633582487641662519320090057656623008796124078162609049833751266731103160177926498949161085294086505323912461532095363655319417349728371305000320474620204126017239853864346155254113268474940804202511520175990702493834115789921753672236114872346746132449100970899920881160391389770265951749824646259963979696062237093725651226224140301923052166041853315424842055598230369117653980466799946593069950183729554432807817147183118473935387268535588613369717576865150233456221515586189007205026317317790185537829302933476497565603598726614777757152866819813439672137359594103315987560865578241838118546815214005299402486373378261437838543862473165718548841067181301799913266552780348846501474693344079737811474161443149569209128220284148314363094230321665255936991699735964996098917684639600245497793282773442324833585690977049486770137662464753425451765351329006387837265284291268626896314047681187506036444389190189910772582947880787523694444139890182856987935865594984059765915582562227957037229934671894819538092794095702682301695050040394730208472119165992046840123226970560730583688156503164540110098327951548417480778708957550774340557902274802575010424093911280478053594340859044837576235523584108163502596101553884284251452159440076265282777910501961001503430735506841129802516698797705282291652555225861482969452878869552999803316732313178765859582059558446122766413278856900452180776457293357911737616934896248234976518982900447934433092430753223774610760629132779963719211961673067259587147014885206264183296315293273557363043808504907723611755206648546172449105740865295553799485245382719496513094914539786100357658147764221557924900713877905075837460096486631726266713010553703720346668036665910525235517614776383334060450843047560602157402707517483863000121493230849747992943135879326927060188066781455578535943450740365627178363874333673154170730664206490717037314848984422997214111018110019727620388719503068595294236291239027904732769296230298497532719833467853323279890960493029757958462132062053790131909666361619623991941637239488775182985752354925285408993226639119344536290930248118436565344320976100733387561709856829321670855164162008478869495906817794408634522931997453447177446381696928005966292095927008886226081012867155998506908624778419014047274382868065262923171162281074354760041036276320731273092710296278280768780444972214923879953916946219928011614408652793082121041426377753156568131763770304969543798570242838955060030851579764986674577773251717625675494398255440044976065147214987575667668651287038343129877682756359769104820528101245600707506284663130114009692727552719532353554027241270825326841159035515491354010436722603801507962384784521240201076587289475882777903262496661087744895888014150281884817747201736695826459861849220088470606325334699290964752500444668539439541632845403094934992743307492454824488988267675588826405859461431590125306894390490028940162216976751890096279116000016780199422191877945802210306730064941622666064826903068722044210895680391693998112876868186780138394347713593712219373531124163325282177901974313091694719495654607164104892761507946221995426312187793379255740692258657637012334101364658574397916593802631956972166851307025785940569618786730225075480297013631838557592847344114806210797493704916889403278082209540296035897225931493079987071343213385548000433596428282819387184546290968087368689493877290608902211142959737599677988680108160110107003906257513309827463959301128479307630631169852521380424577526288314096713303258243075947976804950035556704249809923509889001192308542486065593993631946566485802716419072760930300304883575397519259399056625484148554222308861081646271191263767325773522789830218139621383680363532612149708096086791020793417438669536446559387811385907135888480831002658374979207843879583241588631883481818208737989425120426289540278915269677792675543224494774093194570365765728036601520480937941172310459230551883727332046703041272907204878494455320553723674815784849205960830128930788175702104414332234458430226083869826162953844443444505632080924809834521887408474224072015429005465077198994978112615219686803937187458036507707263583433537682024650440764774384982217048571256087843274757473204691346296694971034302941362724500364492567916247837692065686983587682525141597735938140676138987175064613636712704842744829194400470412193450322141590558849213230729805869601928138504779137759951318588903568796950901376683979591442126034066596908604452645048166824519831166928623128865136241942702106169921616307020815446606215830621454936572547873713972792051671108932608878716343151423986867347467374919028291905046787393764013397360844496971917324851351288790215362034792900474060528839344502405216965050636928814772722461866339348370107511585528897969010502330955302368312516276178826423212165566614356753165514096739797387982862799755644044743617823344908096895860500559579916615569118168419104888191083066308112759097896662858865858715571357484224506521519729539434567905898032251191955305966218531612701456892677691488575890947335930092095358572403825675712417102962454807260457657091277571786601126343673024473429668170314606120695356985995297843318171731219385327797275677293413084749597392436843858819776988629935290032632671415975224302768236939070902612998046271194444578066380179439843874987485951973017412706893157286959712583012545010923211358552029871820917091869582116643870304625852815675275104536012676222404695524345942356421048108538161104071658732119816778423872629364523101489622874790075273320941797989591130317512868098953979968382603999975280292581342205939287431262942849388104404157887351953306974513554905734348031668023517681984203510484942735161447051006735688157020682332751296047029973357967383892139932436184522977184901633997382561440011226687954846454952859318830886233285834904891016766349982947673799388361642977942785119634696375515513240944902665778601194146520660939432444423583702181774403350606103112644521629576693803757689523287670526873572086829366809720009963669068798076530910917400683625813499591135032818389118178317292408904379428538756904457941346595596899875902276911738351721649760481121043052240301947928229135059522793433962921938055401800542260113196341314063053465618362078620880928071175907408273872509928738682541455719096234013628915312472454154026324410286602932445473357912068779998301059240680842962017638418326472472606400221584109120381881555428285435203450357011399198573973706337788479106023148091918804857280922134134171251147200521912987235800585837652292795180885022825739130760925046333452397757269056377429801330884298933166571234369949411590795727366853238136167230575745551379074439791015586352653953435661569979347429948360720383678326805758319297736777366468363807479567480223388579771231231634224779287995122647600562350943003800424972600131812015141264357658870668624349516711899646412953617015384596991660027040327759710293138695537847566535891145668868090711458735309894337530900027198780554421883345597519270462715510602041091102991809340845331348307333643580951970976280600003434418359072588308358881943857142858083248718864251562133188366614676195245421967331203961102973552977341725670041494599153456239987192173113289686047524434646679649007364946298943650959257337995616358196861006752698579404068255796857751362540120341522808390035325877771998315529853546699185801414629253902471761046295934605195628555022533025787689414419695995246287471914874819851315593859524727832321239328984287785485621214426104563549888120217676177589005054228177291252413909105614606639960671497262522481723571504328167805955451078840343294201954142610445388181726079300100109997630469154431548985775199884114088733665484223320779115183902677258728746066588287101109327276030253243861897177087062822834122783577308641443006503465350951452573248999263836014921644025698417444504313049369699266048682361531646884432479172101997896775379484915552689240298146310443670711910741044046632078109348602164251504535547061871079819083191147651528166930805230049922174660766041133438275780050290319665782062732585344377255526910226638732729335440044944585110067511774998429008661969967855411230473630127685687348612929534584592945021107727358801908712380532817636990373566371693768358924076481927333107151273867321752094023952227994405150649998092710624459049120835312921206973615961406724193544582988286496093847232045712599835795701372903056997298119239260403565609382559036491326149263539243542655761268652384924838320341496846967539546997865711865956845387128113894257606375675545022161440719511978798921170485238688072246015033228757372109402345206061994878310522431161672998271195439857141881393786917665456348476853674615825986209045167654787569764831534215943106987046044309706074324548135382330390682191940359749041434893232246788527873669124621096931012064743791568114416635914686342258186781560341120266756875925675224812397648352653815626080566947459344769382039940955527717248018010461227831553955198678126433142240146433663530367866679501929925229460643506443378121633102756129849044822673948421959801265748900256327186153542423818200245677592418975283932469491081504293103376818133719525547648534200966966097222575507209517684197100601924168389961036419001947287725364001069429709290860273720998957572177900980703862569087471301002888407341921860459353618719093875179799985758837637465797967625995259615715243489256660658612471729232737468194013949666760482471244115543598753879429679650852194610238068648321867505853711401687949376466829928004091005490078325599140037972111717923749548904954078076666388700426169343459933606593089542178535851886911096375819932474753939012795424759563276574817999368950848654640189339766260039888062994302251139040533127056576961634348667062558621073052283737505097301122827290634178779698510586067007681775474991369316566689951359596124772250933799795253935325425566932514619068051727356706263228826473790076148551523868185170532110220977736800081181768351842964950263307914538242669017827578451628103791547438621732919858693071788786849485504460628643768517726797955131887937459515187287366692888277055056125267939966839485170973669985371358008127540042914933133429352881923526741842671764551791964228054983434018473965900263135128838776205570704128359206251193299151218667624529776893963786603540620701399111034915830426525015629402362405504937452508890110522484543983115913307189327171205837565369589742974242621856247126951117621493722389204491568894337075253489666460100949825755675410521755655979387989267658729071110951090976141879845623131496804351330748267772283891244230292151240123085138264316431802009523487055110260296249972818443530405029836645117192500097199774300254568621340177065271433463992401000819835462729286953728310946469622875760690747464698645366157251200222835889657111346560943715461933399887453403719518529310132550450056674808675366538594784185412504445217537191061310614918182135154442553632059668144808415837583539156857678049213348310518960503235250260203375303918566759820161211168841623273852525563799698930108127492902080866994546641116037222267872212973505351170817415994348515540341928251180118962593850674027848174100890287542043571290497917437414467139406997930502920353404740178330907287757108577874265029859932623072883708658946691135014493767265051539167706196935523497965367353896099285680097830433313538499552460304690292499744263314161761100430430729731750763251605310959181370204209541745015982525646090626544136476033827959166643051164629213290769879527462613904755016609861666213509435897487846206593721886757601923891215260309304982641620040663670678893162239265916488479654304674239298292349570466568238949401770927442485695378019042040691282384357067131921982410085805060490658246218078324299663118278280566153597976878050102260772608515130123220284314025688327380406778322796378067210656905205658046070865344665827197918180855567122997472549847047541275475183351347143127063443217772530706282801554564384392122093801359648631969276678318857837924571152993613718863982376124450879975818451216686391772455986275602743964345418742113773806492965048927909478368493724620135467300047927378908498536015745801418371458504578965977056372228890115621164312674827437072702093821162886787039588525219708967955974739948486612009405145026965964003226538427207775269115815670374044682044521861284994960509102540217385248356862937921787697562568766444995976905117192950956304072617055350490896443516601249877182409816471395466978628523274540149421603815583933204415107503585618210318839034538486304906425249728273999958518295121686419665194039077638189382470227641782448538290248836604454848280376733286865320126762200446423816659906947109319934053461350933643888761407483280231674885111830280435536335537493433446788785073545386528757688688778406953585980526472673538431467381996845761985214698932705504056240573226179304061753641424136966149793569006276587887386960230437031523686277240930062990170858060890624656104786716679540068798326765041117647385353876300227006213190246620986836535111727894649989335645441932880583676802300429693851682198264065110966648555185038234146799950359586147939168254126680175712081940455108838572834286828717382401274885220182695098401368167075045841475190082458242838220331930978811571245370515653129652860241485757078228075222401531272243047571950716262391467016761341600241987070242903440763752620912400696496781189977944838733794574353755020190302207914807368633256893167037209655236144547045743040932128854047903418922358504143141969365581952121568036656027445931708768977461902849895204455277375657845255699043089226093829207859845415406432634336463909745765593314797753691901303135824021011917458043901008958941264392148218447428090545324031705749561226118476202050772998750464088802597039575130872989618348238157674743094581159937558784918154427214489215665446252415642679520949516621791597322221757379488563354376505188230212203289930162449511992328910035307278298527834180227238401405157177098994361709456673296349487402877411137303863621863204280781975612038906777904704750031873349826118802649977917535387674814593331555777891177250258536213743210143228056261982388653712812557299171600247324496168855858298352737362129922452405769282333028588067422952212465814009285660598021047950855257085138659922206458519529527393720072213956386810307066618853799011858960067967713447996120188133988969497957136357647329127614781371253013360954670636008684039799207579815550465757549152915940541089933048959878818774980382455072717162759684435665198550586500801946482630277934263844394409988563033177687860023936408324182093174009086412342308678693059706644086167248694812689249346739951055024743732722988194453989219249595944831356712296893962192728530139933935911554319739707671781713596821358604360105943100577229987962734843575710938002406673916437079890888599372116184844545029759437668452354464504124285410283711542781811458911099085823086808838504002171351374314897087876516422216096222183113312868895736007163666593244724527094180749484348554393886943663150525889182444187850269272885008908771417203605198752474100707122010617046827708164078352146974853235535017478065675284232994327301814589136249848018508362061720612095668982766448647574259849627189587009208249173563091718131749959675283003889642723772655464212677566933711803762995055246060856826858028064862348572524299660881429758997005548173057291188512261214066991745805962473356849882687570055310764751833061605906920883463955698774300907673085934208230784973727901867483254808428157158581481261672942825670448653410022317833701695962281364078048756787987235179336261238938942226071387650496823142079107910818300258041504450051469591774350272655203714941321406212364624167431887064991478517469220809636853310781952788310622828397239498501415944138965543209128630187930761402366360420937047341928650189696370545512314004185299940530782596141687292387304051104337088588992569071202979461319421796456215023713902144778233680913089748178553959172160008073647860509493548823329404188882152289517008224844457847204505835081967802152116839385613902028640764863440946612446537639340446080933809056527738107980909373323390956870681285156898724990344207085684444483491641022299297244645228322319031175219103332910169778787024064159571771665842322356131513072759532827440461145194038404806706931153363898560722739003557275810495317146778276929456136879068548916079722072889995084047217942674145604960924516642986892246635877402476529315354216438217844534570052565060105623725587295812793938407018566117296577170457118409283578192909409828272520039605800128427925291560840812641289111205739430685904818835630689400568092139016013748303688929704672797825852429479943553572853059498078883821801603544837958482824030024040292820829401119779967338294541827470068962307849004523070663044846025642889853214901819157027388007429385341420707353594881366140720236362805420188739094287106186812274921462919157858983840416980446926626577291127951690275733715831448395100908765293891538771116023191128843128185592717158497296752173596168423594000318962584137222429415957787660795184836616709628408376024460178640299550402718506044400468260286890541122184634379407536944864388333469065566555802654355036834610378917473327488596883472503612442974090825428594672096939369604396672091338813936034872668015921174428327732331171695851570579950979157418799533559682107863493956901444274539462029365147932313297446721571515922128652200092249561407323318179750676546551174174629873975899197372455260313974305528079422656586838642073703250009821667595985596637751748162640368403144363996492881767226474207604989839392074256275897007142342499722079311697535266169721335147908057945239498068090180233722821889199693794446485761711181346228453013706925487406172805916319912367405190774168819097755857856459325424481785658217785924500421512417620055894795551143013897941310837218983832564292034798021679414077253565838356197957988473950078685785961033417050860861369591122718516594402239366214273902318271414502921621859622628606423949878793777695847688266964706239490038459127164496195489031795111519410005986087959340068256419152390280651177570211632401367711362017474484829807451842759659442658335688964417626836653897090214463456960870583456588204930850974762356498098807275781269099994983423407895246869132638971684811060961596695851803430499552200262723404207471972925692874780903373348403647378787666797380251094758313895727167309817944063804137832737113309061978773891094608684921257778107961002370429510346389304052017631769254642326055830519571327791482177047974584120155662896978150543928759829627703636600561491435932715155988029457609705760198470276771724403045071401523805408758554726118132510501732352242109823244457491866932426407071824553770909922549022740166050636001393216261776839349999149926136226792302873528449089621994316370455849425347329683984783946248556455068905414252878605400485774014441221579737928632951668843112793178552262296940426361485668700814168078014389117709507731098136610293498183926983472396413076259400268944265919644666102780183753190641832621702789888268677952620608213493545032376222618647038100475041651196664704600944901980740956865094486891529285598322009047967530779855339524499284664383858698283289017785079755070412652246180467136751036853565599613110597141504304047937736655467472256807028400885373363697779127931026828387907926148941809775139114765337205064451562441449962251035654164098295845883944494026683346527404278396913510561077421697976112500644348531430840617437699445276559807403555947048875131801531761760675249725638168685473212424825026121252793113872980294055965948375205243717128980860348505968078546616077933866500271064316908509468961580281030218902501234224820311958444680758615596908022704866165292047303588141002278406177061935937594498765202093308528951520018475647277949829003629081562329437709575286684319784735390404504431289953433268171298718290788287831752911910774846905697869940581630043415079126445447547614096322702261113967334320201527221464224901807311816114198303100155894091311865124482980963599691238052953827097405766665147800196103869648888314430484998146517285900988606375201971221484253873953541093173417914224173900619210788427880148603343692773953810874573807001663742888692566286323913221996123094859386825586480699006356558718821266389558513182376620880973590556462841606711285026084685781059416048942675135635844665571787480775415919674943757056234765097303125199698535121236089675710435362857001947755058020716658080374738441421638277556701756694360907902593428221661690281381383731662802883635129889847494846854199244831265132631380502135882908658241048976784773299946320460771597582741115544653876299626645050485960066744075370169285741379959658027127575454820587954873005102066758382365689909598160109840062374236428954751975881577335284854991734621992924859960955559268680821175836512805241303792640976673505424376295301884876443336038958495902363585305984444286329131947247985146122284997739916010607672874749041741346063435066207867246618415388419681708812277411997379336412360467506180243585666125583263589599338995600577341333014436227564869803213447085446498215279153084007447874277294605334268093672919643767420847946671327340659909690237121184430156595862088919356859465887533784584277243925552012599118718483669839213158202950615274826880088045581370074052748273080379420662692332714288506333485174874339254084088221384409960810927835765863396553876465289077980482351116865728628151267781639268976991374879628593307611841288586579849435171552335231604981192488867441989609059737949272704026162439845260477731541878391951143126733727855155442649175181970473380747405141015854524999589227788514356778915725911694330265555647128632512559858378121130195943792582598826885660471487331038398776866816144184707963542062279878893570691185226838641730679523796656983216250351948949883329291338634677374127482895627174234346565658863080861420319171337415843938082466645238702764140269795569741132221378389143063645478342744928513192301292266821845748629262942182241224301776354132877422997637753811586227115780702498918369586749878148785233818299661865523173527542092119539484418759730553454125379595291790735790877101339372106334757448710309965539243309100372915867761135515860810819797443251375157051500274885119488414407763398225629446369622921755428191475177582442103764769909418901304257231881461248618501080424160778580692569304035656997477172888801676147820703159998030754102573467698651034496269014318693511214838376008215428846756291137265479008118286442427204552458465366304360813721390391998254743722709157439428035939265910216576287689460437130622979196804448059378200330839769207192646469549142625802804400652934862514972316112974600902641406267641262206411573878603865282894524053129486199653947860649324975207394501795289614754515892116551832879305901635568549844511444634241780680605382361547320824774375795699717061945813274317857370164860459180373997907177907881458081957857872639459679978711586798307905109775096049040476587878877047891096685465061906214502064381119731895615007561643358655012397913863246918864291912779709482685568433036806814802066325354995095926360312476225245556602393025648932013349121412460932989580757959185178056064060674429171702579822760351163147247470069602338905235976376542274333836831290358271012136096729846761032396134693658175183698251662249486987936774539062796556033339833662418418858853681716077139420742429243418067764921998329178743863586130739980746185541727177724267774154805521320826367343246121813598093215382255016850463477738287615925763248186271585542077776220651194037345754276834572174901517618729556370720387415485043623663519594267520883033903852567163876251060358780584422499811599427574601807662312671813608709180838007366300428637665507168317663924762384680666058967215155899320672534144328087955533211547785680406887327849155865527838585549027630549289486106479098961632364476724206735142542117941073389993818108940905948005707496501168735068905584995309627343616281099282620434250704638863209229682792696792638290050730349663556414781145068801760384306359105480176282297787682807258673016147605569854757128300102949965146401378856598170829075712298636560634003738222379230293544792091967999214305791160519924470566040592774146589677373064471281762623549821117334406668156743262203982826295248312221633849642734735103658337800978011051609891647957891056411376917889325206611036446087583959250811732901965896774276504749968001240495701209420894091028203260445322036227792306337451292861130409179203361668767751726671759997293686601776421366434732327298696955821962037818632581815131872101716500344187279873727830685538304842177715082962626913653792421559284959943343928053261994881693348585926912903731365308984309786082439634366082582057206269720310641753218329290160227738098090755360945096975222692537665092615661765891427636405603323817725491630860164883406842228834828953458753845568032210064116564497094277936228762874672081103093295433466464763324025454767539567774104514719725610247615309668456762443129826613230009327491152191648990596656636932174220107019649688999071301783487963560981194281377042332035344705824916395196428580828008999041485046747204412151415759849801296292655599829269542238880290958719065258723239644731581879698101066520203988640744897031129683377813849838729228821360249206702222666449180293901265483965301362590625707340309810014352038460156865636130932126938127993210445036515039027332098029325344641987288330513825424011574626673143232169323222105133751339065469476490847146900160585891895777015051210650333760790538309153684968672299971000761412148788072408514467588182696660067940003516293661930908226617889123398134226758085780200669916800008794339887171996063538929807473207352216187088686553399714292564637167061181372001896343794811804512148077111595095422106532580823005571619038407390953195689075654581507958653700250486308387816765090847365462991291899756248670140112500334773613313642887316949827586404030502645151604216010231405834569453961795832179963271124566881958182656714044030740033987872286196715342757278275241647996792039957860391502103732061207641559898641038319225940353849915773098413413452588909145655059868372994082965650150754828503976962411244732200803961870992490034685752745531269367911142530746641761483555671326304262277985625166346582257729268551265970081547462065917141291303690741771109697337776110809650357907115606594544070213960481362105990779746979989544913907278582844111699481807512982369959619569814281420052479191557147943412318256235141250102287095262155206453753698322516132988930964521219233392134962953937121597283526786217848350358627288180533461922236841532739985980766118017514694170745625894247724160754727413483365774523519580613717515978320916027130904536953506535713543605826555636931648400033075985236498788648128767454424107581199208914642284719689447096266142225555822059758361019022875191013194485218214652549584769415573522933708750722703715057965509404198037321487589251466577649518432952863940139284949489066631519615625675972770077789067221474833032065390708512011719613050044901481992664933461039655239902567448525056428695828815742248596678896069320960281708284381956684179698663228203337404953643967802136222214413278576118866256887543292068017264896713488981950037828389852567802845162516373417783998864387769137003087895236070019472738921115239516911378239744157056826155331430821762546243996762213159274862920992824221826664809244853652279704525869570233412678008780353634919191608002442919624504361040667633619273636934319691977854984711246014567421010013919947900407706576245537343344224459178003942876596725101184567843960846652671567539597258585166217068203837783958487961181403860489045957885367277714158128254638507397973602112937516579041371805737411927800522941902402538627329671600426775096337879922885928342121614089072585186282880464551850507163217884093076299298973558823375471485840925976590890100759473461304828202006184947979321964399971628077160935889572796343483716832445209080324319335548364331440028514618856908027716146681121148050988741569934817791485595895639411574136415954840416652162164726196270995454711058781234597540469870622495002942699819802870831991943722185259126842603003832564800520771369930854059047764560642071152996468940191855834901328923183389372152359577358861345357252818254273514722462909273678356180856933601327586368637876698244610396648227486138916533989272155172483723371605473940044524339538734469121326208113959534683272559185352043219405245808170485941577996115823248066044104077036123136518737802098699527092783906615122737852280650336734646489470726780826021940218928771448636202220945785108332108443466459043933420412565473485926000042463601462686749483547110372345171021477269477125066596340452995046794475499810122558203042419757349580075426434947046738234713972648006972411079275184511341224341511409239450741910135664560479939521858219301521075722860704427487352834050078409104399204358042652950532998752594437179628041246764049337914445595842442571427698418735844554749995370231493256953540824891642807784417523219670546686185232809981551163895410549009382654140934205301985621941026917337662829761292364327244075021410478445694894001245121595442441445701657120687105327844802889653182226780333106358394514571723708501350813419925653317414918224595436876237862230079649686629074790939552081770485000376768025617664264601464083794985585758732786624725072882978777514826281608010882669786097641635140052071855197035056939510364052958484153156460676091034361966654090581120508236917352238867515629286776549498384797415791310484939166072062147875735014767125178918668612987721492804738952618369926418772396917935800238140665130829263778222654593011268960115828068367293036931227447626912650126737085861574885559594354426221452710724543899064707270473058629433232458312216684636441408354329252711757819339317652691508521751061303649437377455746193144450938125374519643707475113858032168688561203770491561128317883372490919752373692939081965031690349113938874143135897596501675822809947861463509116642179305520783778903371018758184949353243146376012279301174895087085986206236536808241493137838476852834051880021190767838612163539867762410622462644811310422615094486743728100322072529905573294636097743452062490564478671658543358287918099453206372851732782274912734115872159415708385519063644903474975514123974082119034977324326634953272977966056383142587361222448468281707826172640191641513239593151458383720361261666985922885919588853007774097245121529455933644178794039316663671265861559677787555184174649059600665393915773836258114705792421799280684685364798898791462146259340749358711344816964804732060139256539935320378735810396344962512734050777487432341690194344610314301905996398907991428880055699904359102728980498495810226443437714274137501692458131738624742388806856220172351742268488681493624743318646364001699876234650827306995010875016021334502734765215627523045360351707569680252984497428837676392872908376992228503842574018197824057897096652655581114814634550758486368425235115645605637187970898015134318579775692901604822895824538004345455825679945188690241142449848304041571301987007792434522103604479880823494417187544309137691065765222127573681933453983832842692298045781253558723860475221048331292975603053098030798125338446027411097210004230338845901544188424485086661756557547569856010974266828724384784804211735748547492975004869890343714929104677968603306886991708608958851686862502379941809226368234922718106514954377469983440983999951710300411730329634754648992004089077165184125025739192128744240093034572866964660608704585570679452717990422948109744436185333010749965756252109305365103608269810793084126268778576179364775799167600602749729288966776790853529698189684391659457657331017225489685354503759244169053712240586581744824063588043138683068480148890612647322386313988293589390577883092875179887998820981882446238995961880007865762330552854217653424555946776845471128028544955479487336112093837068649382814003090703494417975839749555877299968111005045957089268921032709136280926117336468489104257160090689962063454677478358460041292655423904402534492631698424962707501082827130075255908075588480924207538368252692768611963791702745738270253466587561899090382461252759680180003905129840973387465168829622392411625095665534951349057859167417447102334590589993536712885987932302795072730077015952755507536838914963773969586193488658084134922170125412002848562538345390458690978346585772959937364725078963849761491985068293409853525618689635276242870203988671989724491528366472537344371831694108878127668239271543843274688125780349665906738698946483355238355411721761513140561966515607033265401558770958932132959248426056784665467485013735513057386257268154846885014812344449937243418125552351096086694598458822390647327071725940521817248058354697315183068877183002523112456432626074504181550029725559517856350017151535529391661676804770737848092961463045676303590798028042126481496678710168524282243225593185149937237653136243037376741020478331433704436175298351164768332715291513871219599760289209516356438311338146421878990160896170014067366050992347406161579109235991355230973077325984571538717183617522475199514601336403655099284538673453072518303230539041147344057086693848337438414729191378942898678171420023946465892108872120007007856173999793494587717048409753813704407338704928265438230451475817371994940195758983368363188685820691118239041999810055506597602511885419032055355443370083422550711266172107137738438937659985679704176554883952313714424584814609504826710679782196169301538522730049479662692873450591980318788689657431622217510531785577192293507351062285974242270707925246364357130459215908046318899444620203995235255965825680204559236051473196522990415762975997021553287181160816332890739565463996366072961818710187823253092115554579201145241152171533288711672785385744236205802843384193073435921564211906320210361229236440311453116361238252896060418363500884316021822370402612635216097460321790136193049268321954651904918178826539839274494686388412458719980309694026913291947775932149572060099819960016483702691012046352463163966122421318663947122745886123890355682429775676274145791418243979411972785879143974061689150915036221683737928250329327334743325634248870114551543354493631576991195144049949159291060969772612513522885703196604499646079129811238366805223017322737279726434160738588696800605044748668232855330817794417364820434042960611459874430168420915912639436723009388422401115596624002216487754955856334335312507835713387208415326839802868634687271699959189572287319140015358308471451255127693980484981057569083338379317363682800367230395490276656309934825993014565812734352867019384202572081975172025054777288013807483965481893234857935609759635708684469342936700365490538918707673264900306865180527702236279550900369525989946313670317125010100442795876517048226213036677976288364911061704046194244206815806123294663145070591098523626143588653523403312450907336012876363904473471243603317540597503153084488103435596172126308654466928919364247926545417201232684373772743913788212932747610677620757566273830709513418401234670377998663265730163164128720928163187892776992636215329889696726592823888185080450995811451457655142171975153320211957324225569873869445762684591581940544938858903314885680783322641814572514334957698213906928238370836310407321474702759428466052290232086462551095962300668169947179444476401070907135786971700954027582625364296099235776945760818319105251578628553255180584350169271711811310591383014363220980337530796025051234486940821069090476117803973578970758372544227019939240167702878734678834337689527930287382813832046861355882338287713868890162961016771733036370598156483801377637665429862294921710843769880065326567126249585992370893800070082488092939794828034750141502609412254333841460166370121946935857267957044100401425205081709115007966647910570439444739558148344292915210602182539360251253918308782863095569456856157256794566826792511073363798811844216727072963204227610440557226763282161582606994582808192770475508026638690874177735874999723684605741166395127483608530793523369808467372058359603010684761020022913036484802406716559798666132085188526644381767474166420980612352264470426352808992182929889351771800748614504131388957301055249530164755171016299724051249622088754024909653198752084262612950487483695033270390972997002512768310742230857678142536690918305359209234731760648819843980584372597575184592459130214795861130628558241755377426842045828744147018534700643744573531388377271674438736704798721523717476500597061832626492739678298563256764763459298966331076728548865272492692521206287056058220374163064685004474566268130586323427626181209474144769905925990848138644081410137179119092411367432663081349416380554790618678991901678039484296762330642079863246602849782139888552884730732565855148763727575902447266030024286756879034426549631394061600644715733283615182113891760242208232169351949929882260918240954586120096792653647725568945789498449462341113441125066217123690141124065633482100507645882064242940139922789189487747820998848414385097105081414270375868933789174433238135323895240046150722393385088497878088081662466814844164415398395011111955147702553649419019028226111081131310656216421082120130498879459530930700244455622073302275171777221908934500025471285429496778654760808797278023113194122745772445346797353451611200390798018083611632774867652136345888477311818268645915846158994313667289999715053608585323292961540742657923869991201665574130153849984304259014619685475211137350579413832789565276241372122643924268949823952691098190492797057600280982398001688005319629406454183736065642858708063268642865818544175865600167291898114313056954003444753932781389268903986627746228943751447339345246045943201557722308224666562302918946221002968447854781592107001971091330562038658424787695241446664597278734435006711643622831646106410998065378843406422290087983079783089321787292144736619215419111800566998848382844870798225734501378678771393204705116417959525203244799815704279382266994990851788602696240795763957362325774310907850036432962135449106874525655858811714715450511672277296240803910087297814300706945836162761495998216755933725393330374991339626754156623504050653047048394071935261181214076116078574898984608070495314013651000972518711484271164909813980359715211752353425390111073065146027017984213565299977194676453245835920465192869564172692114870157607119816035402571009925303509056217006935553254899594556034399586914048671428376080980604442625280670153186535201735568085391699570351443908863308573951357952962850841316339870305670710156624916914302357693165812056694291898122584087789093852140107436029226865754900683183784661040806463654712249477512422839598244373500468720799474544699841028698113783722794979453654721373318496667209329644537350149857694730257881228914933718108646907582481190786176276563153166914900691753220604558901016478851227178903308702386312154131159015729177965839556113981643090375440031331021699996284783106933527273351112441897464303312841279286181584541306430146047471141555124202434273970189408849134740276336978602307465075781858486958906224280932007604893241138929183646372073097322892261607275565084348112943588062436893225037805072196538145248495178503237556121131950963591017803277169120495069309273713733194604854252874086017916521098962566588215907512483603368521451394870046251999305030834764910038309042300553827596775239991761479364991322095609018445490279962409073483909626436122391323567306869493638481121056418572138140087890635584533723835172408789405895184492857320068144697164910695558605628462370995919116403002402093422502065442954075498534762603212159816936308001546063755075349444901270659178039324708961659223495522453103089363717872860160328782273670623577606057540379445346931953629486324942848964180833954796335025623486230213867982783532206441813201791787662550427701203278796402402593769167274903688045370243276876348922300256770776841927987774892747933264054164953008334215008399179111237330735232901685418980079146947630310394216874293144327920888618807552374490494251532927680615678662179157228948506079236970660434209336311345331980361045982462016387056813234320740290559681323908840040415215398976912725621514193334254974056204227680144464319237567917854265839146527506192169876131337540018028044185293233365475593579514176000066529838175024227887948730094967076714114587141283930260669584499037697198485606246232536848033833434619292335268858255661870575394113700273074311553229183190053076885028014990214485800620413885060872066398658468600242589303691855520033469664789324984273142877763161968060902118902049723957970112888110496098344896378833179318232728891835364957578225554400414071387725169654014196506218473911674952333240595188678629396620675909383331568194598921211347296981828741150430211593211270313128129410583393844813652883728068525494118227408850271720292445658042069967177043839638218791334277219828876365777131413085356941675104063528521093486816286600134124400495669961679886358612362079845651545650681208508609842530302088803117236551201753687818722678355912549831206998439589090152729883724068450403501624960656631190187393145782498213052453503624033669752355012776085055120404531801244327466000877874693564005302594664150804405441467770467934742590300527358388153408614354247491110421764936875846936331358218516385469210933985312775428540707472031258178156129428026856955774874319634651094701998177534606823644492600142960485716841661484623306981227072115544345722349686470787142535257004801925218498740624637888212279620049150368737380205234782863172205474714498569791710630437417376145499731689059160361085049623118300908330328498700379901841769083402579336957267254815516386160076208152068036959724105409012636397505666914952803935314797529254100536241059366756944176569263125808294702120597696695610011069900409269662790224646590411664974287746086896679199795692311070771987647094444870446451725154280664719286579395413863202185697924269931996359386086502581382794707150782651974727570076156103417381455125936490371702620904239507733081972742321592633186836996422069348558174307668763893885000484605495847253427145450813487723033095568538109405312464714892646474693657657206454378597691025522891085867324103705898884741828219960123684838520917274804498430972817005637213628025132216226868014582343270295085129573679738277212415667185216990327873388834086275260333497306374085785231534582197488101858578574618362812680083258907229785872222280458475180187381544823202444645615203603290598848909024104302926131728748795292553881445622831957637372168524240636912997823200915478625311677566881681883958531704960998728818713397739541718355524456843550543899132136485068626260994828109498623692905447693411129730067211500878883051986000065416360411816960637571437286826860786184887005295447611413699383545042456233223921329678641543123469481595960584778299907385827842877913759327269153370439425532714327730325725136731168880748341409715679212295167668618022015310840898434248668588014472507090647517130551892040668597361319377547972906623118019865752978156810059785809696064923837933485949802587971367340151303773765230286506582461246219744276085842276584174563454295539163371667233302446413789708641882674427951514232623007967469150608808250204422534785041941106785136623594939090077578926838634247121688025596950730600460632585230164489202044952003021487353897009505340014482506293826900155835598525802512101451735977854842276340565573153636539720102049469620547907776029811239281496496839894110686132704975019999611491594969634522265740164553315871886790386740540775202147252867796652803597433496068428953601709943283475729976359317607582949822891486571344807614203793708984472076167798172769331585022576794178181269695726538762923241463886249005370472396280703815397778583968005250085660968051954050474411977079238012258935938745004271691301706895657631515309096075600802442721210594405495545979548891202116450822138038161522336499537263319932455760900579086819690514971984736598114400895078475661013896135653797259530540886833898765064831407522975499729086935141382795588939400034105473407530469478323532256507657174475660145494954534283971328699486441974061518438391006775918205463460599397159698377592310305725521155082151942407633883337596234454879679486237467196675565741279276596564369754521953221758690159351349605208086035876333471369407719986921511573029014553114097595587236392607826686898940184202361651556690312317184539420857548704732850422000601424722019069490530444928940126750716482494845248832494123079180541128948132274132345009718811672424111391221555181929847587379234390830330031059595206516598321056695604122755613598272728214150253609108499777472566796204504884963316705563898775945511810365379578246995126473544102917534781007610271889751030496842955083906669349859318109019733393552586388093064603949408170762186513077461597252155633501915020395013428291693383296784812654670653515841981292960373363331651538149778689106309715629798243534546597547259143070771741280931942579327266830706218574472393961243155555416580544490070135566967897738291423036207195635089566774606442934852063754211668603493196523052091549861905278832424198484053887651638723645694986923404756143975624137484113368824254786683964255517111488645692084577874598776982182037832837225057151428871738417574111025269180812117255974786816185349510446491367121167619773846034067465237652576586405208444164323938650515221518688477325891878734033973989106617049948916835196377998126749526330642604849283624810013278616184895539128828100840264253204633090059797725479131976168295589013939549059895934465254943659780069573194767233031975971265137152742421330197186447272820370699200707276733939026315103244085454925475499657197750642042527884760920678178202409054787638437210534950659069887178404248606793757133569087023121773000595389447101208608006772177033186408398932826084378509903530074483680595189432440681434750042490434521804810305113296721411480254985655337979366209062067614541265275215473670273700946166618646324732550449642943379222691316989410880943961728476688479924467493053647377853857893395467068150645672097619834910746643023498247777742761542149022188396802280613452350654341642958701050526526887173660656542395955761884547338308116989893597971972227975236545018656188350425856193027431812217699156100586706926258571589058111741069738888623818863957168974548861729558048699674044034526227077626448745114113859105071976128569711559881260530046379182241510711930476510205394786124704029663786998622396976925568636338412240404121735234572271715889417717182697680139171469270122898786528641382712938103344931217032871626397770415098665940174471598163275546542047992640251535787629611900652437611115346069748776356545160347619069059865822816552723625941960053483667003326391440592416738622509668080087551114708405378646006904802566430935688544101253307667660582483205359314637675176689764895321067195996201289083126117089173198377004244803677449426263501894319219039963078938072456746636190345499451607149468152134853615540700088894715512359471305610158573335016574458552192529019824126213533452605062243531148997420308299888040173679322350052271640164808768362707911836401090354452932336693426051458816731107863860722254596474157204075047810794288335717404831930244191188160345905391959547286890008106265828503173302104764916433875984403453057582823041564883318332640008074941656483853926085362164803333020093242766678193747309393119325574141792144189990771956029803071802770917054897789854352288454186817190412751646476002922582002920142995622151701869061451295286956893746882810816769099947432671809597213686243324128442746511694354409836262703594905060073512503393796403404509276295023234666988487968324975281028125618552774877109308720167416844114873535420024694597955855853984318073787429513305987269729447830849959301600116415540865167181823034744491993600604832035065953629055920201986161681008139237292340622358784027847053088967586721791877094997247573413731969930227986680836886105437258164257323967327322468541116398707042835433315057668138370159450092535546115495497257625980954834349117920226398996365163484017622997109499235696219057873107780153237100857423529382043371314162729302924039912599965445772038137284640987299648276493328067108880534241853003185654881962971373192918299464608101793448763910698188105967072102805927665033455614121205362768569426590067710332861556108943755877503230948625927493291920873644630411443003553513154191834776391006309527944072421281425320370201045217649274257562799340444237840324491833251903173404597472627530779624888219891656680212602080008808743536987536978800477092454708891146815379863831781263108005875109460033763942206178182548769034888650470649158468052532460693381896742724685216254908358424147598511532503328511211724578974080019650545286026628248434370331633478702608315652764534912944570700326372341158819385710474597719019178565034217347871256463666468139366769492963810957696439945142288335099238397279331668010824741217537285025426307223694737177986027513598938761296520078461430732089727736713531440530875578683004992244092008713524057112051466254399810226914061523323184443764115280056409537151627832697493448795936534545436821380136331189101620275125123307310298829764332815897987593768499127631358969551181801672521035035759192210377201157912297487057661180128600223713619377857277095847844739770906628950304583719755427545961121268510874331109227556640701932226547187271767443117016144537767303211071225783092878519011975698359925389075353716905800885347744348822649525867722991632745735503364596204320074131999746197343330448873981325418196307740867068840690156373175036223547510994027618728618883499899757816214001747530458179246836586676301387930254949113487181831051086264510154179693896522587384127151901864227112828375551106034992960814128147236493157118547745868060855088773704709947130033967031827357097673082835840546109604012048011081488148352703956676444794669588884396525062300535528689073995278283017250447702623146487604972345534084455604157298037267574872587578275913166922875725743767298417683868841168889772415646222341144829755369773538334135582832901354205895431393114588234289672374230805864739642010632946493169366193910374621706152477205357564153261060961961740233614575156074203682045781310795274251788521465138319744568995854041218453727340434777508852829765654616088969017126241061175146027724087072843922385714548708594271545763942936019446007955029767244554576764604215528349765269985125891104664237473031245313953484706398982304835177510936233123787908912963114198243917361731263428576575111614373078868544768208585644116892383024128567985619661166593919354557730051895470028665528292208223231704414172395308572737228436778519483562746969235944497341190237638565301348361281508795335684879614870337154389375075032952142715188536733327735489749315876402488755220410070020645841786330586734621214710499299495101688931167137660065159564716648058487117708176310473018230039288394648590497492884791346824445276383505381511093561160146897632783277387383500854330271217453479548261042693009514390298695383137985227413989262317487461145672657512643954907620740704664158478173676336011934999947337841485047118038904902563481057555045246591441226692584305368897175884347240148982976568188037594703931748841790399513734318897696497215878214852763875338278815513494082628316846874565655781041204785214697816146579207871195345880250043770029067236096961053444349202184813622025536755192641707581826828305501375104867768750105473377892628812992233996947122425380434378153175778061575428328289255669948106867231712229605869400768674369662451612295774528796489195922094820256521652280515106025754473327583585461683586143667545915070775734894084290500036151537915737526115052452353913742437309113552868456572530656002596353350024660489395611809562979781881509044169758280614478964019265739118261250022499602562811608302291493432573359664225581545180619115047703828330356985405456125992426844046792388796184262310668005176989143178717778447806029270560660467690605023453226328805380913243566363854763766423626699727356632981601342891232592068239766612824546092697898738225669079591717318998409617107388910024848508933379832149867507263741297053098719538144041664815908050897856762862236117704077348031383590894071556347234214439158057482809953486336498211804437247286531365793952509105616541959743480451752007164019045087484178641454536554920033962202502069268820161685268737336745274739241020164594178431183743238090931358142537573691721556483825463595994397047843624085846928604465642532319172953362631385502467102041832211788605086788640088690434437396641926731303518299394609861241491083745491920975437914970503906069180004581130764656231202200472272045440778811991289662836667188302643581360184735137714252667610584909163888118078910090416462119339656168336185478170248276574143274990553177278337168973669524553486150880824997293572858803151862477116586265990782727542525092263725315727798365013760421691568860233786096118303306729201338395693671625845492804020901757557774098263376961361442247538438534628528192186776818584871133617486498144139470641152632890268930407365613000662437875143767281128767833112262513331604547409710103824952757429887925956843568768282042970061400240816596290240060901356747032841110854047633349256475625741643675157580228975214667716370509228784192104803821335213896113634048227673771149235737232811003837864822150334883021634454640661099202911052050363503242154498489558861744809084988122548063256410785168675152866095938999109766106178981215056514461021521791686254246426445059742690557149161780533038672927062522481750393901346134476833783601685600251203336038365447413972900106864406101250176147996096872416721271993271925907805747084222892847631648340704744452008692087084301772780390015762690475719272357469807271898386320208932549579252154187853186503276182403069410092660791686165039298580703407734790750215939526287081195405911999576544958637011934805146751478248792143994309167768152686982012119992497367313342963942120403142140019517377506567602557664824250212414511858755600491207215897429426686054275781704490608571893959313867669629149296793063887848894378584150270867138802894604109727681024073542927625818573505715229669490721601460313088579978613731194612196336921641795135916213326939319726720249488280569872295212505598603163801089614486888046789228406724940948857939466514492369093862799893100466622503165158022212516617137265338743776390681554451714975028496909351626648314716927923573338912372716741099546850177708358038458152085484405456349032303473238940924843633470828314362008608760449063093007708341360733069777716993893754879607017677829682022171110638117347757156976105434200209396968824304727355696803403069895338253755734075351138758245479008541597409749928100321761630245958377134862851471911140226775205727324007328046818443171554323277796958517988217281664013046169623690969533607654666040411001045102630286465605191452046500549373190553282566839353725960576398663854199704715065950278639132701940063098904904027315972706753192655860433901511681872767236119135423121019141917253222586294121290589544984910151615148293023029553765683061837576317908932019991277874728323954901259988356287479554955622696053530052826898396910234873268798395169416917122690530107187253464900173117137323249930590709684869118536751036426151656220382562999595067022603730854794308609574060433295782293338349373454678829321981459854328969968659931747204349316809620492822387429489042709761909468875931752722696742997371213460424448836942988368403910764977222342829230464318238757259993230129393903488743540019147937781183297064593194055593378735283117451887372766372413107098102538014841191911857026450669811655459259605560663583404197917964084251729426101480253747510865631492967028617297262251212047827275112251263031088939486026278997998425089592676285019480997385107465712976328697228275514808598009354054152464272529882874721350409323904733553388004381537089646337327260180411480457405273370902154860470020798814944563627180836159238867372248215225813392531837418365491502064303109500011275516947893104272053760333548011048375796031836076295808482747163850492957426331410619874297542487901297599495734009242224548312537746019522820016868529010794540306589458524972691497187955714775576510388850178444766940707567531252192208900900763878533084059615528690085862844582058807637895966727941647429785354935946195963873309577977967194429032106240510385798768236485883768054905991042904621604500331681893164854225391356859184026651766124273630675831156293022166533717961214945181811730598778772657045064938947832773646287685586127602799828200394491615975027938967568312747550455897906235469608837247848432221067282402304227616474008903926792694698472823387147875623828746955533955359595133564865665538664371955772205456503241555540609161231607843333132503995314301073004849711793738427379835327212170426402113218138729649069886607664498190545827325809002801913428869320538586627195876809057934690397410422623738517113344299648211935352389905006115464575732126738707106818564135234507505081403677424180822760763618526792434475334838559747298379523338179947567443724370575249499943932121780084120193312913967073701182379568805160433800270305978148637578229358645558221245180822640446385800219960798554721749407233283888636691872032977804087418868519904677817942558124055482865024781562188907359479737862871742062549671238692368983011872881938818884459962256589033895403937961753226879735029884932434545188589609115945195317039652752713960080004379206306918863869554857959236258676459454422866043030443342731424510224131628607763201266740791716746956385450782055263207064262256933902730177785108524951378532498569054960691235284914199520406304153940775449950305530922204757912460010725998452340854051021672129621684689062414307765144699010544602835585183497024219007100877114700269920450602687026280049932888099367966408710487362226242102409898880088317059816728992219062568431598203548672708144696133159685925854811281861040348979527725269327773469982818210477031249001868774311648819844022204239081203056815461129328127073020591968686359976335925169807778231613575096139700821727780477762735623246429804823272293704511694801235342259476574273691009970458855181490333121792781838648832570524690819564236864000063941475458477827842053666169726404288105307280295112437378890425968926804466363734374807721318745896207738420111715960130693282352642819461145343148682253659246096748592815112374669426488332755232955616204369056459033353336573317558004468162973951706623883554133603836641317362420936712454327211378237363500116894879138034233513790513647559193850803371409260961694755850917087590423128610037856225867592503565707702083740898082805653553899653045177933198690821302665613854369229454854160829951527140858043314442823584905004736925283493327285586421662008810848367199593288406220784326154469199831279780590249861189909299708095605864802994313795354505572658124044275105181550302700425691245457673985999443954432374915976816977116381764192794089113138827567874994775826962769350177647212397164560895676929022590786055567879877601120059005330717607079714960167714580731686201667606458199398595467397443291977425873877731805566529464096452027067838555597227335158110528070589692904432508561754984476778413803256691091955569951099290230620369839057889928812339716393811453262460525141254400245037448520303550628839741316509142513748613411159992304017408333791359520008507968238357283838714053482312302024231946359946142542845072656598375995092228802139074484517909281676956182146390633232536749868800656062497008878328144750916110598869465712629931762351690626305684265529915821074030065025217010832096952730078059175559284519172344536677649970295304139057990926108971666904127646585306711053972016617454085341457281492853288734999746598766022683193675634213376718614654655230256787862066252897814838656325571017511191799424419831049308668366220832712027671201375772169263299450544847117043587610213723287091234639921820781491366683210415331768584960322178340909563460728062341993653280517456623903006049836366631050975479534241027366061976981550346532339677631766480468925397973811367363403827169858490001618943506439983322918465773616442262665183742220622993417521780371095810800649141476281155159257239785602231985352985384135382598368640177369581741042553290955906529122255054094786241530514820846708982883459056806398191297314787134157528020335752480263959514924267385448630573851169303570410869138429065727435122244561427052329411174055546617165051732102097042644512974449301015772925340451618614485462688441297121079914090266178190920963245377773040193333674434821407722721299178709742447958056238442910936374994648643443161657790839044137703702395916542448818490741710871182416460203253250011108539450822284571358696628091812316764237527412661373825965730605747221954873014759796460843966942534751154232029152543701783241302186785176351453152555591799413727176128982895149909803729892795473709393865846049544770876814908114863412772587650167722052556000444554333793912145583814380162218335765783028480565866965372266090279559801217580936368230093575607378907388286600090415965447411654262000477455716112614922686797067634606888217104790146716842309336512245652863787042343180206601525610349509553218003225245506891546449275149968441868432483715610937976120532898251500994159225111518250093084418843991970979872121974430575887358198971448873415084742096750734902823297476151501163727361142262646276750587505565030884649293015292874973864536918557848162691551003349926709817444395729267416806165847977867728588854514955909320483794732556068821223286886268371405601516071439239117144063421661914465180447089962284853677187852389210646283441986807072312385286446338058839596168236981007050137967872486940862833607463743982788926692480590090794916711951184032190179449396829058781244491649523579338305932457401341776625419296099436663178703596815621132700489801400395373565410065412300158815398059931639650419993501953831196729711632993158911744263231902596424413726087830414756926507199294408405900802748361893976546426172043010747867336535012379194098400635297688468230580209493014805301954379420347581597448108023383069330949004592878960048051232544622492826098266224564766191378975443188732970416493420909050755402567603175375054686108009683694615585627024022927006696188166543149000778918548712291651180456539953744739143892688744695560611179348974799899260863585860767621611684219424504105160688862287591530994733909997507520611380282366217838078651429051803369175565770800746824362721797529648700039910796924483433387201974469778096735885080956110256977021980223385834021922885964214280218539619889332517647733154333760719309777069890794221323926694056966259199496837712288740341285747149833717773897542103320916857711668848111798635685834705327661932985004091690457443373359654507123818305071850411278226592917400195211760876824949986877860604004704012963513027561168604015785108676652536015274796801976386218595267873610206743094093017005302455950877235243552220868558600183244169543826146411356478112763383074175854284459832335956212007035280293657040466227679199767137081572605398854237428579093481657975819948201737708457705266988686571486229851996036609318193966060389526198740123913302409047594959781876337033008202575039333795687285521309444345754902400046151923439228830096652421105405639495155023048584145398828464547408267036969158994908943865077173663140984398442779959414349901884216380665445951685995884626934717894538797076960456492606268094112489138915364112118447634446369609572863759793199467897431495783855461592387063585106768685984285358198173306662157312211399138283861570393687200321184719305337764879015429128987531735122711803288913636351414950636202060519267391916892565249783996726339380330993618021999207647591539268715594692271328309761176582193060638583884110912805686290365304204193696671472252610979114579192789574286949557930053420993240822998136850495464158461945103400585167095714194963779345851194790174969832382818061282549775029868025581152216007410228113699011700222575112640099871091860379825579890600999481809090662282448783420422883096424963587521494895729384223040802032455805089823034334988482512194482086893847975558323427919783820826736056447767840100316673920469687461424451438635694583250524944219462140833177545207056612046668789164568336094393792026604544980292223639835825097151928546190317944624054126706215631602587887131849661060903204084794783192057202741625758808974905894519824082890260907214424765839285926085096864100340880086107371587808598621446186230273703900676432245905836331919403617192208751733522930551498769407202755635900746130788293624929854572907642300569308895396378359978512542773104281691898427117038296852342862407431670550499751470317056583850552741624605458883373592758481836349775300911067940443598424488383058423033994902692752087242651678240423928999576713600051727134738544175585416166815849773257487944670237587160844118415775427504354074956122000392096888321183145769792642258486113928525931843859208226709796820753174617601260160764616174939093016653818958597909366111538453683637033922870596578369157374514114903640634710174420880937227231004940148388304093747914239383431022123069940491457153205886923240869454445333187876494685353490780659290907094691866278425866827900893341905495918530911705288618859598594521201329937914859692622420987779032213626301545881808906953770883371600115066838129702467414408522979931630698460055079650693490020216308944536457924414339686850691366150331091983861614545900974921438086739291811191191327689704703868126414278643988304542779223134083941804049554155025096032140359588051512306984633889550091358975875451992362648452787263174524525649327103762213626257779229108775804703175428362068312678724097564112308262941834132346818151232879075660762412095307538294748912415229451008845100576822944400570944620961529492587401006000258389821099704941361928053671849606067477267444164373145866605483423321327478451487363722654353882411971397764658051302265445753903805342004020405383319177000079687237832122799483616615108684092637331815235501629512012852901077625954682617429731774889573328404262511340350132735650896809727082187046002352959402070980559904681710597834783702072699098528883389904822930205835330994097204938418965214837319837272428409307380263289856633691810864619291571066207598090668823175908652692617903450677376575894949226534571761254713239852050050432352017628014156967912888779834437479059487001173691202436230027550150973063331740666259771517024370370002903843562186864539426322064257532439347405069474142172576930889464757487851956493600129017509651874170533999636039752285654614209394290425267650261296197364345727540598955713024028467285419170386333949474866074675313927231748479028242959629836372488728008556807226184139000672296453228212194901234884223809674769262641246282051039657866324760188044405949453342738228645716793708123764381580438257846754329912557690968447129873454020620093307517482740558881950682353993980928366621691186466345130813477179042578115142716770233284881235217073766395056099363280172762529013278246352069549064835533790394096538369769888594938329544026352232410142834500271877732511451080900733791607235163627242598928433233838372805649003071746129804019185973407967855627500782941003932134725619280225836204591499051787833427460281985334404126533315873264918349657696245817607146445950116777910140245962905962541958780487590600408294338988583999585789374451825164784426562967048248748398849402626902262210590947434670344809832803452083250027613692047509981054454020080436371564123824937157629752736351317723124921748796526925203461230744910097028022768575115490100436322558600625001038349074698983136531001149718782132663802267332567465843214664470027239104892233408830942376497424692840999284523753958776148758309342163245827920812720384163477584414775337537590756038180700053585311899709196715197750419364006949629134578797665263246040719286362285639253340223875975341217717484119541246287581301031384328102710768672294682750064697481309901269228941765524157548496610901708907998231462693312544249155693804492106004608000760790134358886985021191421101974994422735862104104182861684882886575243404671556137348972072658701717915588254094274514520913805814239239801105108625284472798479019748864343352480714494467013956533694224013766536318231059864616588804473888527235846279117737614529907437779190426299163699407831918551951727214583665558306953243401367858740254890709182609859783688933783588452178621124638899457336181044030574656096029470132431994001330458303973526494793441759534932418543438838227880176042984025086137987476858089686331169045996930762360825268574526665627814134382107326981468004266717917586546153594360649582806234247530542324000955600985329707796488585652567639193503557943151957438556273147397408993397179891626543979665348721201897128901620936441895341664424307985670547970296386047236767214510308558557139430259099745652974874279197945158634170168451146356684469136999402940265015224427420756085942341947246232214016231996967683802693498553242352209980614321011119667898296854426375631724745953698797515384056497370389470423429318441035360353683280431724884594719391626716611850656212093172397423629755891776916224392886654848581734253399771103471051120069730876521516704598407873321687449836703739129434800756256422571392993247642679883991996946276695868947613927058918119658349772176721978125615367095598739006878219018389118649473686788844399287160420641415662322478299901300411277379978283818152422439194632390305911664676513091088041685135933326948401476958295850072549111189552334998759974833954360198693630981908503953551328575253881065512112095370544397212110936338234679903242056664696981306555965612397426639430961466176446018513725679473303744521008128266213508584346358420574539527641482006169977988330248098635660864023097337650795162119003155400909771513459044273815687811273561305421152451682024433738326814603257686760459689006728294236781112128048898290197887668529793914355992692240305725108468711586864779184957347581513376768888866460997924961468175579910754775367723424860539066222893244441198648809345099753238495142530082537122993646219426487846486537532635167474444149576395427850685769579065738815895518465288386080826779178132195045344995525853612655111459111090045529687281999095519384077316405633380941625895255957015142184887481864363917067036027623283351585452827690183287781734345409387732098591085669912659045136080542421321618046008003751174515028507422414948504716303813671646275011231088537916898128895062914558501620832887295390702579086098942024021773534616724924696853970068861924848502643149175080926147329323116257845963282920145316056012364157580424026192223697005212929313670416343573819877331284634045747058258319313916520465896694444382245292619196341250983817177060933715895055931765211397107746698231856341245762320629722954079745410350525261092292271049965587403177624280120227259576865591789089976397640906213133912691311645861008220553723066349196675469171117855580506380226753815778854666427219172633003910481106140265932825701681733793277918138908781254802987866711568802776739024962514437380097393792536770045081294981945300301433112730586399544574521616246620993077233370034575364232045358357351857950072775299687784019886929251511822954383185552594185936255538954998778592889994573067289447635859697605877968156048217113844119860179229073398547550322090618631506570068970891229425758479833979255619052922719376001119182178060345294759197593664253180955533360598701402472146000023029801041608346124086574513507464088454947952687451876580979916901113609339210347333351938524915430866830255145127756971296383426776279836124184772674372753926757296347523631831117431743531982223049363876812116895008137167195545943590365586190711309808664547037666342570982685940842571092867262668711329671190046168871996635995720752654978777609340465142973688022029203485052404934698865038445048478038222599649135390316376264078877465534546061510808451209964759952963014987832641863876717717102768584700824172327595826761108438658715047846948420731693165228259688211765855135474604087162340653775108560603671822198283095105488479771965273382037307837318444803607395663381313672619618396339682868281783905897474921563919571788412374407800428997260002472660957713927411927764385160390971085925418445693891442676236184960332239222786978421708550966657941609144263718835015906765112907986566417933003569483954236276625539694204598936818755803491039446949988046511045355931061820057626550305635376177783633305035569852718143536740437149206840730665353029148421595828205529388791764546150792679051213324503103141179721571872492991169634970842616912099385570994748218281793682313800013758198629149654367894177311724968039396294667245980436213253253469199010949363356852852209701281717634239966795311932487138216712735230712636067614695927279747057200375705124761979681869807814013971246877961208547527737556353771612232479042099825578290142838254163896704931350866263001844876608638985492035775540996555180901551283305403968602718997712498481118390274940567392808398482342450494635037750148304140861903390635078505270458345593753351016719572408851876889329202218636618537895945618120858284401103670999451046192120750881442668903995427660248331408124352645013655196285618932570451254336296625542689913880385051115249050851839203752608941350477725639183618154201494267462663605314450996365486597471348616111037644001827767082843433188833369598847796016696586988520694711700843880250140696155788213427800847671072145276559903132953732600533653859200612232115929694662449042453006114438587048538625301500017484713516231022343315496441443610819023352202614921592205103730676155660924131383866045980456011903574458646677923225916456712269097945944320051387699472640830484692784659154142198581513170705320151107867510365919927824132000001396103921075302898322669204001517142142992651237317248200314208767554114828837722658343022350792647125281253849561013282544671052787438305740368365386243079029448991532038151991652091901028928069262511215103425200861959525640299649200431623702246968648608746011386876013925056265812487839468223431659016445965805940673725454064857283984431134888928004442198281477233238347151867749534590527384006688486623523714518248269148282917720216331410184168261539482961962238595354640040893185417789783223642506065872466683930734290804073225508883929987875646767830213392019065334337993246855183240212636218881630690350860170764926731560552885343670067027660832053598023031302663773984139859548017174886546165147251624678021022758691907722467122873754244239224012652618064387107493415569357814357822300670749997592407078948350071765665989323377462254351493748998381974836876639407052913523052906239844221189262121800873766114859359446968376587693927707484431100896628892925798034036364565077928676536626784836447797656450824180339424260931943688592716669967333084085309802513781284244160992590699309903884620862128126115662455849058038620550394859925666842623226138287907903887979989912065316109878441550749798289944459007581634882498144350789849981072929307887459849517631392296508224827883819460086625497424091754501162277704368502905845162356019554030972332909588481109455658747607315265124827804163981713312800567800278540127672915148143457271316949357949883442945764729186939093404524655596069823838657741227840847847473758795731176228345519532824627048062216875177298867654068951630232159021672257494080531277771544847239075601287642938868618369847542846817090526280098584683294503920508084647338489728946622008799450485896861195373790685244868408071360233033901807890431974558409582809868994227594243653667688808594661920387699079924353603997020409675891623605624955129296023054910119387421335851583422987708702401391653049837743914167527033294049600751318237434846142228205700386684381295200567589290228615136828087194068080866941377321976242090784075851041052748748562552950045496166208045952327081220319883713807586189930950853321562242361003716793041331694889387597798940694437460373198428059903161682523035068682392979009754929864048060203544595723292825311361723897252098523617670619443254222414714277306358123559316423162589433332251798875396804473243298792605971300850920565039295054311542149718333105656134385244383097444999093599260008656475608728722618750225202522364307980208608595019476607132514561594993675638929318993113272981371774650348188317760503081087291579541147554154323567119796788121858633014883525117246617961346382074608325564077554051756271847072050122732615086219890143140274119305306111672138130131973422825711777577685555916060098182045782191432587569684944565349234504749637075236597948259038215599775078622255290120932648511531144700789797070066995263818901254561668271834977933137426868788454938410936483237331255664712863558078872831440476274421454129792130457209922385049693274597601025809793374134564245685607557473513790330461636846505358760956869176605057151473250272602206669285674207475590798480785808845329115689988155315681411557840147992904394174226676503815926697094315239267145775811268267810015261931106461034067587711158936595859377349889399933170167509025775986340741379662894466622080888104394998242821767005389678391281223624647865698475166761468286025136936063577643958278893363363088280125409260791259365071988677093868320764058698963249888795085686512529723778740336679955416564692316969880202968556735059476824548855530037386440946483395709760911424170906917119738561864289632220607887115777153693742851622974436894192477989322394867807795187030321804939458349211085064408785539584323194029683098281823806079994882788360295137038748988394242160182678612598511101799328048377240388633698363983915470109166460648826837674311693969912128610914407442763943682719417295090355047284130054484844041136797776797724449070971062720015297093026714924074502732697755004098053972549319305126749760396982160521054807143384855002836693102289295529833919552657326775123847200798274819573097591041432182851792148619298276907363813560913936838799706789171013140683854313790881528856363420450772249071314095975611321414666120585415180646512398691978377726138799540253228429833211810675058068045776772131392901224546464720601651791496100440560678763609098234871535861873046351118678007749547564590342443840197375551601487138723930745948139810938812184941703662831567664537466148035540939369689842250821826950954505757470766773548099032009386805534571995744980440593422641676900635758546715220508741125070749967514554614071597212902340731419560860277418215034745857729973261982411772334667419636079559423946840083315405859340741032125465345666224825066403608510630910026510757440854395387785802960924308971896624449947558051793875254827990428977659512736268670542664984850106696646247389902053603335173617745708226000838076896769186467782178591870714921075799609580878441122574991692994081845969302220861464836790737848847628057832088736760847934111230302492219551545800049673506544234530475484339200763267842348518173730070092405398337147027252862430789728470250929522398842522495122296421545775212701850349522403663639715127456703706811375001842904272247966515011528583188987021718398591920895820155490242011269213539418189403946158062534412593507660981631197437998042265278126119089056473768266655693992090076418324845667191012159742290944546304438648080942439837358334959517423167453317666659182116792153903481147369712625997534266294929835010313915773252841565667666005717549757325708428264938124830355734246409499066469406726831178824728889081957435139319216476390976368743300089306623990641995228035411036988802373810534570211937600601509412282017881989435716875101070527809207952939071131728448413206787339169776333265844128063777003915236248587956289674394893408712895170731866253562287825327092496216299046020733699576951624867043039857342182231599684929753562868985284892173201834780610018220455730470397472532830388850439033626507520566782922287824617669691972526977319490750029882310906845485733821154519764613915976467316154293228267679908966007673404041762558591783092502550678862613585307787568844079904487511897525027100715760668052229818828256624460706648684960888755365458508091457324550727863178747656185412472485552829748944641036940454105070865514404018402513940843459161550905031667267952044148992977185973103299340599464734478324572631516567592154203009292235671569845560476781854446236493332480071007271762997619233006708032557706214566581243762204547946966144551389548628544514777786995654176786551742167361939039740996132911717877083259037451375036311809336221637757242915827506664296334428920481288440633260699049112570325246539326100697123717607285954765606908035343007921932644463650078098126024440719521080456185102795533088051561379133323202454892574996222319302856541002211238252039709414395574644019294697620753518497574608150817210000470206385642252935340738446873079080491129033708698865598387383717263912366096563213808103300829446409481706618774435410933011273951113416362050929549382451565228689516933341745232434949678559368471634510805050476612954919775491614396311154924571796003566038907742431974164030122332595433485680887149990617656313787619964270502661855360128624731207145798305828488746382503468117922005304264914694463208125868937050073748106458970615464425973114346974983608707601613271956479128219081731276661701147938757532825821270349691257584135145111432470267820437977454781878359934797832052579667898854771850211016483853030894416125377523901028674561218817173595607721010275362348753049012300009603676978022163253006298821094608364034630518014635336621387551340156442664097677936079353870474194432620387472612292178039480288524873528253205872497957505194721683380141979995721004888471320914117399919191817319381802448944810328719446357268700751056431711017535338234849539792940196337665852755519175315997825154752202921834891878791550225024011690091317716350989258684841519989603486922205995868800740864156618849107810330856501995685745052476147377930562906234755601050165819090214848199212638844139982315082932884928659793987110845229349611920425070286575484030398165289170782565247572030616584547268340675558968524195630050087724098562172804481809193580684448580054213008446219990311477813569000391460291335682340582477676079244370209477564102525112538417651894555371773960821519359545806114625673130736038187928562471766506454092840731312387725824515380280035338196428658644843425411263315573812563761962587130931764894622459973854218809759334930499256131019885709773643429336694948923446322184893765521076334006478075291996137692988493212064325570602013791549245275351745093417314427067455426838673815439164307924287135090390361242069185655583449203983879486490516926543208906327731971565403579112245137235833748974503789533457520992586918148531092445615119054472469368303939736968292911633527884675631119244082895884368461448876202742831873663158482263273988652868818198285975504589461749819013091948523888070465373643834312656080814582762848263374086976280805127778750141691544606311911590668758748977695537028029236019109844163007211492733085671059092107886338568953962797649737922307411535706000107336970395740763225404011964786682213770886179338278680293017716356593657120048816076482344561111750368110221506734239838654248217888612385996961778411735930441840806505401784053033301287402768723875600112353416785568451194047701636426349273259427893089346894001206633880915239596234210965585897349043129538950180430714945909771677573060381584258296250626247934275189549970500702279287226014858647041348826809422378571630379331502646272974604195701710054443184341443421229916325784553807949691811056397605789012927673724822136512461321079039882825744325559320445943380052665920299265682974812442583191326589490807694578042153982248932895206800422902085420546899107909793489363483480809503253250784092306248837472911094249298886090471869907738856286905967057413301715524963591891783283616846451290429342796915237709416052534800727271523843229468250371946917010144588765780806810758510940227274450504870228971470284393588285524799321274357784738247568800579508460239294921054632620236311455486818402342152620558113835722620672141241401884199855178126366913883261108901756189530682220611076580514853791048879647795980672248767634438634933172778367366936888145553189549213528034290114028858767878460786344385782786932302662707941725902678951699947852277278850987705606785412052403754517821796548217985335139555058901505404692781609144074849308614768313058060697947651183145730686950999706150830543184944584144988855202800436204581866760681367945704982282023754194697197813998134519306501424182263087950568802837636899528457344419503305200297529919630004674090376702434187630935862368801288765931730829674689073287273610952117812085891253060477289654411158571487735742235908279311309712252126900111634501274083682809706588776760244400354057144614658554937630695046840096980375622859434194091101234612316155179231947267501984467535505739810494889074377682633172019651030410056419512143581743466455807069090205122755342537224159604137860285070885536283937050750301550816882276592374984367071872636198487828290207191181001352660715942352619507191958322961357639912145793669605838869295169673040262556219889864467838009610254223549222695520686619487188277365665650157344064945860625596267692449533382296673800866487436903980950662923547289798169464321930649135185408847002195793053096836703394592371294167793609622349378019125991814731236794759894861414235388449805297808145322571600516437025974145275487132894651790183390947175275503758332247352809894598583073018202180942338792717374318957333206112006577271014135184841261996439356757546350849866469689641102915271323728325663104522724893114374164231305458867013252696217602970159867300591777934505568870568974722918345053403406262206015764501501901254833038672864278638926791321605605147737974659316906339498568753105083115238614453974077086403820103379817751145249742940269532967029333075839059457240116060840696968034896461817229760933112876872196921121233066125019652692798016265170813095870008061971004394417147348981471705975633450335518834871892658353350043492628002322443849892318564833746754513800328063265962643143549227153632688787659224333904169282704459882680927880199709200479715060863007546702075087362577421142420362484358101883255847963494641976531844349193421877727373778580918973280673758523983769255765541969458130157274356928137866562374321615421047865620745470264481102334995464539542080244256710163800589766738801189917330134043198476950993869622124213638557761220177785159631834486073092138550625384563137234740756245660365870685701575464277310743956446091918837495137534727314192013252210641402643868336282666651904468689680070598459645649605024945099770688611171761735699839023569398198536819516396234275620564829558605295728072114616456698575476777085451271352595800763211808195753714478192820929412562904307748443756582000773666310886025623758754081181752771700150693907617757370331222509778261639630573315816919880572964092755192618812369333298012808643166495058553770536275788454653912322717647098543644792771887522415745903761791324093740633446930373315881205737455345764192634491510423541491459190963576900359651231946904435731822702727856109061627408441815529401184603817467469918842278569361759797377345713942129311368067718650221586648498786348800757540021421760254019178702313567189488503643824298392577243783685313917072074287418143788005722419075697105110886002655755545973270585686477532707772971568289139885476222425789921851465127814057166577989250833201921828609781137721185616945372602064705708442084627616975515136077557129398619531699053364661993621386795917023668265013582632933620023890099021568933172929459171258085518732256554781948878808506290882275761796294575239589667962211512635869274167236142446826707640587288197795321393068067867192794616643114090673419551580366794199116649012649325982074247135246970488997838091854861574695064423124944913179981696970150714546989787061135234237489139548027610389460934944169515469775168693332743582401765606049109040625045459777262619801539791751184803970748576497504675333229252819097990832264478315463333001601096623228880740330793730796954012072882883918075986414925338151783642562944088462160903881707493509395944075454017957242181303158332154766416800202091300873772037630458640719424858126077297301330608762808664098702449065072917767808466612553098362926691701275674124824467777797121408364477608964046139368699923560615222758389601597655216730526144982108800996915442474810313663947630746841371351075966507191315091234400283351845352023421385165764053543918142457629693784778295916761990835433797970092907927312625520097811358952220251950444031654674754700366301759247121203093929761447353670525135864705123800854134740467030098207596227248065010363549494174648526392647102719066331026011289620742499009736990972360180188428861759753580134870407629256814613064821063036185728627045669376625867765979458335652390429064652450479699310815426381463526540555801881448056673732877501352286790967793578843296649153243051602391002796782431658567791227852929548562002307430919439798967904937222347143708865771292143421457980863281247599569894140853509153100411325569012467505811611163565330660214036212852223554076795264250011078331241526700725732518541151822682872137378485367511798756684329805247317051002388181136971684260933658151374645564368046821821276215561588109935740769847378481139904974118133355266471027236802801490288894495120496472321597935613051838292909946293025921830657788765315237704163004080675199787701080872784730077018726020660604453948906310501902352505800273566389166886035992792559937966017996897917245846566608544561553330866620611599526672183989384856313951196750847216584131169173857879336972176559934293875711789445908606242677776109910884944751741575028550129511899029134175411398458354326733199551283256802519407775307610428499742797165115694375858288111602981948504091639549225665563632389882981588693147115146793932068878454662303950404824894178897161163369917718544633167681517654736413382711208869075369797639561503267081223887420477121200264093505486734801573430374091382614096541156588527014668301915264604009251321613281445412898047771439928990313431579228026776591226092516799541478170084563446979384143471070829275672777349386405334013937064074269201734889257446132877028984597772795472796720563199732504874458849691708217967943020421809203584263086531265021739919452517248914993632514408477117022761921538425484468912922667873110473354941632266482775805982138930046667636163394852338133526047406202094421737281773258719506852573487513507760254126149685893079334727668937053446538260271794476848580030327258148530689776346898635233852553017879391648395503832241102582356757696812036424223190176382844680559968895921504165584490577689131447540297505651088493067993356751170324191478175127199235237910014430167462176915309653227382779588253744664818094779557197135613672171423506807709147792284386225881478240405094981896582351034820817972912896547994643607192722748526181238512108712556260427350669290698928569074280195806312833529692945033653858715824951519757510334851002494397611890025336538354934010841456332776721123679150776251419307627279608885420171169293090614102074696879918607263799965433593192248385952667143271818722062460054747824967849596625389935960371625416428495848569151266691145451213573641432555300813339250722944917806579483236165309286103347321158002377398069310920594864472799300727384237115285979298539361492572320576960903532904721968948076626559647837884111519449823723678246965238064427102760484148648036877237322002324928955473159647699525758031486366825599482441756617178978134489662727758621643448090999844246483633966617622353068468604299500234490735607976196991780788329298969978379389034662078928572996241806465623891213166379154920897160765756980946777840398446122835905208532511448353963050906898674597178394132220355059989828875003591483346653019881318743142949679115234547214986613351612797540844863620061725146530393078517764798083933214133732458981727919643618774743306524962311750394507650962577568690835490366020659125649436674982535762645773435046964563326024902130223939781610951956697844715028292497629470018147988708900269716119923877483137266048385431620545931220488147391537941992923088943710529403894580392482569921308261179135667038912635702864362368019208082975905008596774591227072326488938913423038110432673112454305191750406956241993887998683844055142980403664919327740159104114480120996083384154634660764001949153793867952579387567978818773209122800933059301959752906363733950971478982622350265997018890328401292567008353762897260150468941328101926963474861278323411939719894453441778858161313692284204623970246466772876474305376917630974366315525958972378414770933625270878163067369711502950749192353531578014120579356062389882311069646282290840346809400694656263305478767082920407563975770640027920226746373568246178362158423987805318924210466061673330942076621869908607590084477600133852907287023985203155370802757867804833385366968838081897821269501773664264252709508351308021576620107635089108091493062909734151263164855454608442541329035738941387106200833983894868363641064492123034521397407902679187693335101451293286303625676198103685979821300490861671330548286310210802274801684029121557429916460815721761395975416354389102679412025697048492246970259194433610793834433546461771353754360416938385419364886982355276792331011538090630027801760636004173144598179795907730476918487212568562718214904329950358727944639356413217033434418962403789270008122087172535736018694975914029827232073386127078277491353015641804458006045824107161189777334049340087935100604783449245490916164585489584673233197514411811867302656186780697160898449636693815435631487126922148538074386621663353190183999534942246837798732208839748431169572949309440785771976675167789801422633276218962434537960492566181042405486135605527501878454917791418633511906201577301147033209938175600787789960618422588068888698218552559839228750773528012800018168934395845281250727555053907630944087928634654524324952715695188731798533850849755809695672986362814050320361580449663476799612753686469769807940178395089267155852564724324581422348692578638931496891539629599778729793624385907031350475870682454067651106054020723682690318746697981190867436212254380076727427219948351488688379881510266946072371103208769667231090462443566046827808945191521353180111868664478902927341069867253533867558007730763467978988202742457735551240504531668115099485592346755656459764272342101281141271531901865545740225959185732322700220857532956580190738105858363229509082550694390000872886100531770364018750356431362725553185523770096920368396048553579116558855314239948944251151415048813531538273477802152722936699325459995592118263695273647682808343311082189192809466348819025645986994322323775449505590576857265397081262966429706960858423388726624290683216291553198227985973601830373384283419781743195356908463869853801151789955975088188574257364002142163012327075449323930725224363086648022917765329814596029565713008318934227465376461736726011614810352988109929328081236867402282056423190177503841120098100709963421009516112968130051115203754873388239532547508045622805911749051826815237696321407845036940286363213938929699127214430058344538643687460806149434543368205775847727206837768448764072851954112417250158267906903348345838056306823328069671621004185891932775845460292172299863794593344489053626900110935867347866061212341718989674853642319751460602671561159182610881215059174590878815917673445037060165239896877170987965058640997372451230290830660465796361037129703038082984453510610886823926705014650881182898765683645620544596199702408771782651026584657931902744786637723917548653956341010694094288375468478161056486414446483747251793419081604201119244820461607908128561248100474294445585867779509652411032016867876037537919637589422448076017828255344581827806259022655701926147158580813940430380062773468884503940646742662865195134932112899646769045268746207011659507514488622830299951458767944531516907124404527344897949857690529006774354203037517669507522905445758913859574052614409981603622652490084468379379815356280727631789572461182276910860295678097671426466543672436717435866738013380902553444640080040258057388601348352639953850995833735005171371020899492393619435454839074969767823116959570648133933076229621623206622734912770508036850643812020290188693825605451144238634893486581455601428328263014711170887089255102825748059102132231974075985541869834118225769463506044903996418278732604788225693628030738325591323168238834552961135529311061346385183911808444666120816483661645629115963055415734664182202001543478370519394427909146832792641230456362748120686190999446374533879112193721594401850695546275575062446202966423823431432353830756934218213277355304364824473532797317197124851975737388084330355933434537035523152272691695076935994199346811605268410239008763520466306273657935844352880622515254203183882452822470062190549432794897135587918261394822160408004681116139948006964775582216397539819603030191173099612237831606834656858678199562223689476566370158863689245916871935044923538354483090822589617812355636706912493328018995256066687292719568082914492547978556646020148305432915843289252144934062695621194179437215544431543872416207662486578836969309689680990523406770222344211803681560497713910636186787133072116739758640594345057314607528331807264871304360462824753169168564785228528307788074266695960818042719088509151770932323028510338316582301347001788361963865247642415764722999332771148292401924378466864846305837810965130250831261934919810046402366845993069300134965633914239020720473691085510256924427423635771716115056681485898977386465835654205206421427300473368880330770288557480652024022023578626164364985816401763354740806950459846260912747291803423381915750713672078374410652625134737424012392593989247595615548219631086861911880483020632180382755927696225636823460089826339995152032065214853988057363262659774607732921184101988536719588534980208590091763030218849538171505241581225275312972471848589568615563955724312051479270762153159862825640255291448417536541659450113295667682653565520134730529584669562818699030857080237025288739393109530963659313294968273601759657814868417545785547183700983451815362130106002866310798017407504155954724972532866742124408297376614399834262061403869518038532217359415627841701951404314985390439185179433964082822064317901899901010685104783118460776395878625460285805767047007102613260893291630521290802543856304969639207319808350509197838821220319146012377714686272041008829129988521579733293153455202352069377447855723156403764814600473089649947619299358057947880959121704549908790841699558419941249187829600194778375782962426670647147400873767408252756068406170417806037519270729004250888159516643378118957613825657572638516797533066222315241407665479420924088093870809850089091588718220632691331359932111751117146807041032383737097118569867503016978451559791348514581831694612492057819987175876440586809159495575901004411989386990469736668503224887476908978723155289194814657181051736926066910948963465951514917761180746877955413901529173845204470187059553642939879755751296972559964213372678346420531899345755210399573179135221372222567144734313908275019701351605430115122292737653910057200945426179488806028520846758053743679004982512260732556223352795996618293394505587920529080952917010857640806399913934008988290257801071474394529127991592809482142707484131868419879345914644984005735422014646333647786984880361081072469885711730363624330828589474711500126904786761577606881623606969417147669819033329486436186795305160775460829048153686080139133548593727901485486432316303541742193316559267878210743944132377532781492067058729591676880306849653404467110025068977136875818414347467501934951644360960520178617450352779812163665190477620810479694145704941972066395749935430899054112482630594527040737149795083890945374841212132444229703731135957383121150411246082164492048890337852608815057403499262279892302066906930924374521051504473061352985714696217317184071537232007328556478541090401554440005898190821983398693413872829407105105351615412971173114700017382957181428084343633666770503223818245133058848406518574146545687441305292400095242879728869633250028149294098581524584300623486597482170716836798963354755833172468040641725368589828261928247175855087797619174975179984195422806209433249652854619406533256341763796285198566220141250701928112818269201460427606383512072029754953193129569826575334351060636138589872747515138020836909406663838584686052541218510315886576483244516717179363565641842609901899250415289632459562991808948014511243472048815999766155507056320119767707201700252920371603515277086964157006245212646372519489190147377864376737527103733968187990648813802874680142368428780720557683779862266188687712544127962210426223008157447241310336023373242864998689995733482726846668742674932217084221984032657276442472319647857826300169197844614313347431846046437709732458957083794408525608873086200193593172963673205342938304482037294267772424881233639632406324981681666855293392311631925844722082701411405560812914833584950536694509201461450938964617734386562635285634499512717506635299850635214359046749607382616429085682813591180668685709933685010310906968514813181623163761148723551135827742537776151679934306540545117892857729108220736510216677941282196062977999315763922892796013417790724806581566736232578968455631576891179462219930113546100535768223817719961626905930515183690354176191433911336986379945950881563269052185978741299413560104179084633226074135230426573937648934077571358061083322196710586264907029696927876966706190503634397130219019589662568916501445208074666720910612965322142824079181113826878738380328286848046942840766369156492745550420861630156132153322758336262390460968622260280978936542354221825384467983199522338600431195036093361157498186743359409204648745231245845530320404985740807850896406562584729617297931573153900673866995574001451591859131864172521439344641730334632747169540092642999867210333954635703517350183890225848886951129878941207864975323064461195290656297336077812806158035748285022139194577247875138411261003964641807125488056240112863078635322667512273227207027496792552220405131226107602008635401267439511207960432475718683767463236614379426642478183427499622708198640962498561045039557213001631052908757795749914016422705286233911570570078824545891832905994336864934349963988464741217798456666174898602903461640850479288514280160017820107456117548736348886099821552976277424978717879552053228963322340025869596747051845433823744463256303608409985976244446671059742359516102272585585122014532753074165811123531056764316026802998404760557472729486324551589243194871643395530043556582567751476876448736578942961655901743029656954511459161731588056610805787262399761233494321709540282460392094646017320408196641627086523281924472238736758818236492427910240005407110130331826064044598288223794771423628117695884856573634749392291870756733433367396878097867121715588147624073711281818456234342696877947855383457177838687711068170971476697441660945612922794829109739040517782384276750213792035960069924307617997364099882073690512764285221756580176337974903797638106271973035059600895049406943188276481663044893480759809476281585894299266902625434818501907961888085404651877155465269364075707315038903521059740788160916131316499049707264815426984341596858803643049676009899487154018319534139840530079753655221834963496292681117864632737664057746789709842602256268095846746127939220860536846979898268110688186170752873805399345697694813507134985947531000422447845228417600196253357379577907485372853213389621209827279579463669858651917394198495495615455051199531215038987829358590241688774815351802968341655009602894525681102123986419258813024662005858911711375315725461023092586327470048533548223501898371424258874830410365776368056540033848316838896213189167394123812545900030866387563826986014353893885503753247293662870788990646776465268637586482698240971349052382370164801735320159662370927498795069802576852690041017887933681689342342639711302883100607286171465481412927999670057606231250595579662811409406814055394112327046936593570692328668308652774359273020251753802239270659270713278417777788605602161103283685826154398369182829639538668652892411645270175718401085960764982363576910598953267598790239402097954412354578591292086134194538222343039199957768453771724995722590597286931323425603179805256339071591837891703771772731741095880807293787429093632981763349447052753927582585749392157291507683505147514205738645852384251217174906648568135147063931570912194086636240552834040566304015389755896157110903968944927882050645776475601183535221474298271443030227460802013108539328802270180823480669914634966330575099083379053795106658126347288402606812542715270957798966787089458013723207171887908931075942553153249793580385859785492528709401889537176163163294064347486805267044864858262005980816494663434902927010033479732637696400438628851908758956062384972237628981341004027919934163280728846249692073973106211741506592155525926794491406755486884840057766130151939741333000223080672422355127530357929038786925101943355503826648157422757934498433398989687620353173387436900812466591611024076864408185634243053812575504747652917524192765741136793294269671614812811227722197314058364960983375248535044833406220721853338798155290424512650420056389202409601738319516216322282586051872384071189587434779797158444325226825324898356783889363991877083446904629233784078534558527322735805283223998747019840582360975727262819595781332337061227543457909213186914315829157309217274207553920715907609676938600958317882656540175144839367966870316642294405531482749190305549172557801733408179410986073972783874768582513755566949736536986697120636326646437471245339811847025200677271897457345400538393866827428784800074939379088341502243793368509026213702342033572275847914684815892598673719145978202275366275995964047421728430930927263950523311765465202298588283335912716972366758718219274740826669936877131053050525637375480924661751065996423180323167181054286216685639618214826543263280371135278170907096865988482438275114453820337070505423978517683054900605674668415326516434206680182604015420028111101565355228034797812714583342108909586722239375926166247682848469215230529180985425634945005566906603929105555654115174954015857740421886362453723609536072269115153622874875856029357664471502178820091226569491916485440451652143254879781999242230222979320425089698657946005153523591597746709237643528886013279531945123681237586022376812076710624034795754621455533708509373864371797040917096776499210326489446096668677351931085027410093674367534965355665451638133365794075487877118648154439237136891166428464360686267272749917244998204988276218322096255952711903674731592649521984719208723545334803931741559183040511923912261391947980528684509222241548598252501141965893983474209417608018070441087808565990045506969824741564929160436967923976096645531052764181641487055703551370848161465167486803588560747831018008569313127171407232417588295722054761488098567016230341871001758313488543594192831662765856104709024187069372006567451564199778042150674937947769302889283350167840683594526716066219052684651690784903410620975539116301833701976259516946265328498213436063212824868549397728606527921256120734315128381217537493396304021979107254822903770768968492588968230008560776653983448709334755315405693417656549006888261131579160490675870867514720494650779777991147873075873286025417497418658404237453061937526116628284528028017962931397608106809148607462983438479438994184617270581503226419729236805794219366284555461108799758911188211500839968758740194533557852551598437217209583151884532511826147217531861895970592962266896447820672448571908234295975652178973400657928178223008444037423061241958388531188106572138848704023325132906904248779867370206694626913121269566269917839199050515141887744759849769841331448374498018442625529510180732010795681036313651926047116362701594520099064490550513849708727444544158464034834091308561203585163443693300799436900478078336945448621196205594202952001582368317987993139483055444466755834808929674737812244968965013436365460232022917339094942331937825740945290122733100498570913054998129294959001092207221471214692620344356618540893286817215788282763584946229608244193789572954566938405442430132845010346697387976732505399020344161540078203234705907199579812318648542691054004665910370153490662392247682061823893586286361307483056977228555728014127594225689447265951710081498031341717874686153031268755809916515266625630943808381940609428623691819208767616448461841175983444406735403377607181395992472247607725041435389052559066916424659921197625286429301625820418327625213699189616172492505454146432707731540536679626106115412627715704023986954448826107206082708504524633007051414244956803054560156904574256537003372136804142481330870557000000058961885121448886278850711857643037219988434221114279166329838239818657593517275863073517895713153363202902761781966195491319276050904215560976077200753809335852534161010562825013541125567095550756878244778574800060226257104202384800224936591985288888389260311275024696057669982600202539000704193380956233753043033543300167922592849420775530185028638990854154692894538066405789803560646735854991410017316088234259344274091911460423618239840693082518143010029705096289690945898878846475334655198326125117806324273934903285640062670808927095886154240263203460072599690145827962682169203345566881876084088162986612543554421015206839652361636043520813554473789964687885050245860639434281186822798015799565149149147460536679981659644389867112234557266033759763770388346232629049980342708115877479155740248660995936582360855377245325096215110967934985297676591177925012868155077695999786769467509615423562685210006021268453674278923502864048414817705604059675521674822142137801410504890133333182478292624184927301055389785500554416304182506907949867875525691797819423438646378863876438366811234184030726257299946302763731393133601577928345723919793451058060668558103585344245841892663867239975519519137755445528649271173817242534730323412203603806670189658444920133471951734445256954012784451945809163178685942666978310027474324491573194094613579666307035563101906747085806126369740296752415655279897122230789937554769405583025694671591015902286904881206749406829122983880491747142390119538930474100229203959472215194589772078008585023887967645264344288696152778429709206777618489625576034759861341829305772826464678934970796239071936842988780261051626209983857456629168027087198208534122797627538475918726547937785470154454866987519614327348218373579793649130958151373916356032186948418254441447822357089121078780918977731982049539344959600215425133430972861048733005601671681082846998275860372741239845277865186684577692129736046235741004278011892327015084206334841541438723037307802830232923755604347437850734098178157332196712226755510039190359162282342047575461675766295492988876170930965372436165118817294709834786519547866267911715241651367668041744265426292874617824461818224552065490551785936434251317322672088257269159823419369031997553840741308708953192265222173375616631579760606064625954713372241756511241766767435853919217202991517228663942615088976214185357704343111543317360469399802882312396939741080378503411088515044008395959185261840087397788772746304013709122107560455833991137060672856269726733118753009626942692029885956590301358998254805712635449434284930128426866488418236236440055582877550468824690465683727080023291861173037982681918998101593214128275780825128109545398108632336151331630326708693726371868532384428360750555645736095223044224427309180371616755248289819777790116887961429616133330471422663880788016872064939604494618281048422797469529621573470847257131905971069301326018192009277212068228210508453639623096861774891636821136764001921216976407096815295377385829291344866013269406928021065879595778025334065805705988336793562898364374268595915315201205376816053272909283126122685597312631150622074749546087561382680558335743400474725240660247342561432019337719648407992424994221108667833606990334379597130343095609009547586556220322132507914468705432323886871375628088230048424308658281433987851644120756825876365051647534620024869102329230009580550944823909002101054958073251726689121718415391160541172329051209120154292210200827407668537197697658855559501829160837130722072634824507978363743451661398766530025815014973268086301257525089020268015423017409737690509573598882312711730331201257251183855134586016595553195385211269554091075759611165848674076903738384606645971213246280508459553463713861677051142472332215705079781319277268414778184904172531271744899978102426829495359709906947707334277305581797660683237784056298822143806040908150802075116283784375006260530380816559346652735428680660053047571384450452171274963248881753006758194336562879381416954408125400384191780208688052948083052420672786080666077698478926923384158368113245728520347652106060074765501657940000161430279289381201711629278208211026180343647795309689300494422498888870212588308629310006028816624823982411851009329421049662728185479411140400261778034298301108835734827207308713126265539782577158306271099333580615314324015685307592334033218814704372136205923067941687092787681316379471920652645270679148612935486067885587141578222905188020981504910213569377729848075651241798630289136090476304803788379673089724555755536307600478253034054072542209009962384842254658661878596796380584600961153985961730137357505874189269106291952636855936388128623111750984599045588739754516749399597896639296085195816355711822563700939320342196102312145083048931991798948749053818305976206598807164454267749134696223177810586890617192359864094907934273168091711798872539172129329643672129468683221577573736220211914331687658284849307639797983498540895962196441082378901512682790106038015330599681825180891771856167254979450821347765559444657296261773979690235594365097615136496566508923757948187039424742643511607181916268833561271593983103197765003910239065752488316361426010525402017291685923557452218337400817680441939830794255811711025978368487826417997446092518966806621553521011894663715571800509698471251123050269626024242707367919247691352065748106725821072177184093838103558241954054283330495362217860124495115627231927926446027943530438022271775777700075301726965138525837206606371145189387388495732375845318580060373809873720578768933191954024389271344329952571641118289280959483155222303423170550255065573042367201366013979422130441006080587897021352348143274409697984524402642173734134484738744368548248101808491879099052574958902549871446409844256823080210185978958000405790209412735460979720203670766476748044277636113999824162839568756426618921098257318222974381681955215221647358563816436251343486507810264485425052592286474175311463343395161799578414075765583327014213842460154107595750010372289670162177725573670499873998594683582379376762352955451684072673311702962870015386522456516346377110523266301788251706860024923912780462274517859829808067708887080568987524191076467662234582986809804753911663053160018132075752629832527472114945560507183012189733514889259220522210218854833816851272213580976772222774231281336521604797866672254900112722562889174032439090451940341462709296898056479749895220766056923216174230008580888302354674283331566873270452394452538895123291751376286065098956585684765367637189879903857490431032944689801548988114319165699682216830344977604965801010276977393732733790688836066144961540637582192679531419514797205770854845141712329695869639579417221239287954544286482702789532243372604877638679994032870476231198004168369253264826190123991309659545637804731659865061272872636083939553884308311332228092532268710648897890794920134786094143200239579867709729686752463736116483854414448493711919618762503041954606156732540994784747317166931501195285940083071594625667073986943102892449215814726698376556987546832397602014484730575417504574960649051727092583000540610836929359040175762990781153714504677016200464222696562088470728209191495504428887295913936545689294600452109269607016117622405695846000746965003003450710186460368091520750686266343609712635384046348728335636310869346520017784941873652580582446660291016595306965373771389318673767096352207517327435059698366935405828666370535826749911551344650161674556009162730453326208170443239942065334033580686508187921883723561014116936243485558438792898020304656311421788691338034017503736632103820259205018544295406577709527414477419197864888334447223246979865336736522040936472070064562696161604161823293163841896171598911995264779694322025123794587842158956648814243023990688431961048630323844368293427319757628049702507989039112926986072690414263607049349267325139803110292958051046152054302976049621448794192293046013521365942114282893095217033248841521667731573782671493620451046242965401691014267848932485680673476308632018264740732176955370653682854949849074582120358919626734832274059457888224081348953989623390099470495624979224361060684235756927643351267315423027513965757440664868639342371449295558458704450264241073204438838793559968267838088009088435556517559230634629286234685271290733313339525278862910513827372684641545331353001373969733806271552974846986400337239936579155451358900659040450320672802697414319243123855748077612322900480080642331188482792272242941797536012179335558890442355273812908476476509793237383661478317888223254640823870256067520377300457037837518573445479405858329051846141057325763602385526174394512765724793801242303400103253482787041016060266446589820946015124979191970250151097984262880294060741717908578592418604780729217921471046182048887355149805056751456046477630209461518177168165578325346976049550646519308288038091217241080566333699041377404849339949574630792160366136194595679035833066195363473957900328642434746007348621170065629925851950953917980357660413571556617803259679313364809068823623392653916740739788784468126203474392770339851613163619628895489779056110536861976771895198986624017627538940808160875400514399390873018220046216496886530061127603558075009866059744845830885619904461731009296096309902365010221121275533363159212351405021825518453787227230587986060732496655673687488944796099123672254124051862903019718481726635438864326184439157238212974948791735895015197243417089771978242060643745230064306468032295738298077787692444590730681471675994777619343275672579938397492985497561899535901536353045639625557056221932199937278473683817349985245389091854349772116575349110291022961384850070062905554410122840921371057474999686672505919615559729649921392693793448487632182827396322617793078001335059266259634909258209577694789035268748780326871676258649067592244724149348123769101672609851144507376105814109213369908588626668444709210256812137629842003235277103999844876611397864230841555735745792449797248787280648834231444986503420095260079374385529632884134506535946712315512891783487468026028936452959442974547817648403671717854113975960685965550021644197392487339466671569230656932070573635262806688414998944551357958537721672551326833344201020168368498665941773418028392964761225942194641739576491236363442043267127140743086104826949540785553300102628232097104635875461894081725079942599371552234292097515208073778596817457026960213210695716329365373820073355019028525907791166496914224140655710773348505405063497942007638238627140042997013579334795331246799293897435255441402297531267990520083591733591314948130847332668761726534761414162853292009788174439483099854086466791672462149929537614773746962689334833237738951980435380153061530511536156868079153699407755619529072654204161689439370818422546345060466807930086019558703221655791181116690471230069009993968825522742051068109755740117664691851680576574763082829112102421333186824290427859744538054665587670103349177356263478699696283246237138026407382929354783204633014759158716418912603915169781236255116229853592427430384291758052521813685942517467056714135848430552812524538848761648611824744097115668589395916298436109324350946540380543434696705276987856869337471677114369525915153658769793223799352744915343960962830081691335715249979799718402011902502796423122233090465297000567901205436518978449598654121529045902185320833848465594717948324790023331441506183655477295980315654281276117201034960729635615914777176313948093945107003247122016068573361171648280703144722542733367771708574936539546890458605406007042601771071896530750713317721532421345832340494768993023166434703511892197136534676714174678542593248753772170798431847512631245487457082989002616661647156133334083119506629110330634896910769197233154899043791235533796692552507314437656189794644711281959550851406842317613235396066866754745329362591430910709067584058199215166455218005849036131979974202305474334880216839886244335274427844739137742820185218516968243243886930958429997186028197580616514621086442259295691809700409913422981449516216929122009408707360762440132343808783576336584869139646012966219234652938740753389301664117598112677154107894295209407594126306440237999245842180282497376658985114675338099986274681387517410372459474762718092188695750225368019471836506701779376741862256368164697103869439845374674129260554641482173461262574650698785586875592235904995459719148763356504027645239540922442761205510240892841541688979597479962841178895088588928042954346501380221595871521157224797438251965111792885131055030146350252840725398574697103895915207165263613707941053669513327440608698091486222168457078386670071061258236417967555785203618447898795381348133487607199401942134930287203703709036273036692241796392139893235618590649391933503883079534193686327241345978466715691032481204590320801037805312819060876302656540976488440347330564642318541322207386823363363083208602754755205619902196322062963280610241203500359684526579506603169173347945577632524311498306361286219926605765829903006428798530965562709976989270076453640504276562055930892547897219165187019707121764129723386368324792741624140767117272758017824974036479683276173009301495461676462943756700043469258145965333743374430616970660368422439236248835931970981196589604531531604820582198368013106382221299425480107712716537050289443428656199290840988236417903546619363511068277447917353322747206571662934555934288443399335417630041834389042747745445096605433389451362443286134163872129328724493419620531388465402971792662085713768855073945039183877922487268396852552624608039517152531963599170777934150903075271803305074304562717279944540549362368212011068781415328381756548579867899377741693658403679615718022503631258322115535843872911160925081699932699840097364375137823345476504839037503343711197428329157323621091137783919264416714201215133597009287988124909492942564669770177803655354738987940511258458267011824280676841949029155830057152661087076608075930100791042319146702787529307099646494560775407185070808252564035296013859104875775301613372336719878711467684187480816407751305212535434359583178173856689239006801224723142350819725982694625429231375522423494143114803856368050808422209804707815754367828511501696303327586525047955978585639610962170723515152757432293305759788664158613513617837368941968109003722736431303826437753139375127492972973991871399056522011040789199567389339533685732207701096858701776301298695405069140776476224602401644470265190639079365120893353496496348267552783730027307960053027699628359223443765866568482581428321249534343496010551951473919523649105572947181580836237698695934508035566350293643732684392626928927363758829246664847405404296994995573819376709532364819560851243790947395896122022190488361314809703893133038587397862999066573887242947905629197438330341855966909297726654087162040410064464547424673862513844811238956766517957329484541964562763557283410994761004183169773050468858893322489103756070601325182276924240267349658047248997408738772557094512738961566051408877225034886808302539804810517154704277345680246219954030080308414551124687515567568114911930756644070356924960455906597896486976220973036931900211366979906344662817913916072327100063046332738731037818904766191310511010022949148375206037924614708621935223002812618068268809486378610508934236579676214229063456366282920617458263104765976463229476684653216720566402067473516418273394288864897530333892242944555151539067157469127863608893770434735280077452664480142383409335298079051130535780178272182157557005163676346722733107756049239835769619209744716645686247800330575090054475494494792524476786773017824345500918677029585335320665719905852749467493319013346691552927132880325674450628960384343637019724666096054514842016407191043604000908565161142921788895197116532055179155835221920038241878410608437455408017736330633334372425785402370007898050459100202899059860533989724306487638281596645058864128530593143544681558902508728110920125194756526676494001233287252442430720428851668930802846123191923369686678919814955098839047693464940312316522277760958330852648678401701281214760837680918236400872722871817052800660370313844962160064602731904691598442456422542823313016291976170152249992440589017332154868875082887397753902061296239536500766392949309024178683095765158562419245810281669840008291566337851164458157923746276098954801354578458797504497752097667160708302312623570276890777826927578906440363208084423303102507159444099083245964933568057135934013970280259333197194529414909750391557342013342596466750571016173496368302795055410999087041585085800658203597408039131748475879212814530804361986664563013652197096109499003868191147971182520205401858280116357677740800320027128511588483002237332802223324869118639516554117303874140353205075145809057232452254470187893387453453217095980871469599172824991422454646191733589035445718410969471888377783249646834798830800156931077851771228682146414839642719469019279328934392314552970005580081081063634903396021906276812519267493790000651354542828531914562110976993817177045408027005750811032851970262748444264748353634321669685988513972622342913681524736569585418355913306044740666925228250635942667034246517224797917165241301600962628625196208529016542202723390704161852661856122030608150232448866407407364562677180064301882669920713449313312580509001267485337635214922781316413822913368445016459051572672853450869131112073000619510724272383008393900743504411891387914304650705403738315919089121886404299757100899315217412440870082885674346225537079251813289933700102138613759292367248626117284655722150014054766028542919674789150689303096558294116399628794684244648057835528530369261602695938354510944954545250920180694668946092854288857466622232445160479775725485237722395382800885120447389015328325659973555418235732831015745707327753563669053779641842379731446923890059900525217925274460916483202495129272341054358513947538024496706068746219171013272303882678969066733189628109826166785085674160229150179363282655227161924758833950364216394238009547023958666224981814604919222025553970659457327778440536132804235503054377390048895631016788006509862839769298137938359625569307063286197221019561648262221461924109831479643836716880335436912983033548303749930057031483130098661569489350482154124920692688751486322386921231744636652685594146879723294274392840388286748555381783209423309663209916572239681081019080524783638997742783596582342721333675455902986332646407627416076187921331914972788722744588220262149756817871082395849994992664773920132242501553204438906901276063580623875055702807818129041005226327477443453938803817335217692140021814126663175533051259313723806214980906256468570643927623101208978108725802868173440382822338174334335137273726609936725584678055753895736134446788439381154168232430127527946129269824530532288954249511322401505840819008937255018093319036295867378223732793824691530065372039009500935381750596828423317400505536244279177523040138643264164230007496951782237134654501187300139549445128862519469748540555684184174666253196215345380194550552761426148378305176159071321372212499409646725651524247631527402757657549751279851797224940869002047861661906007271278635315013238640547754311130189577986872155856649730490347450165441617599142798781876564913917554591681866075158143254792152383735736314351006790401076633451942795555237849554093429193591024995765296792515791691819642855414797566556827367429673494020771524632879961747712252800226292599076942448691501757723554851336962910070081315732354044691579665904077231517756619865655869665049578005672601038283101935233478023600301235245144405450845404828627071741400264193822976027995505391990733186314700758788312930180615357270967025520102514318029695937044433926208935030344183750844154401126026639009155323734453312481905616416040583445074066998651977954286890862591725894594004811735677153066746944759363872372104339416396782316625477095758170670163572251675749996672481025046235729227350109508073965363518309732146525779280947987123870792061422759332816493627815431430149934512271368384131551766350009435342709493464101714095640657495323874259452382542705295412237912524799443882785111907040885975157300819161686535241815598655767551811629002637384397367462667596532768761066213852793459175710846466010622905477768600734196986823370082566825112119885856392477401545935823789919062499103887440193800054866744214524329539048282568531440430836278135306118655217465076842290815302553321113173445438185923593003564087718977787765060675939671708458544994165392283443305051607662905329868069158554757162143527306362559164311015796425188019116393777166311087563300490238280224208152125794783938903074263791425368560756513109982864194612204712022572246691800628820150048015877589051061768070814733057151817037870090320534955964700607286241406256671991817597279068506280157370985350125206941492612363351297908191026864297116230164985110407890915950129965502529513907321234535898819707837024055263361721536359435343786811290570569586359733206913035228259287762297713669649175931018223835638805594268084149851010772462486147416660860074045166127288418577111639086103246218185654672924589575706659332541833604415928713101219754214174609343536677500234282663276810880223126450940525129152018943935636550351126445876084707424565147495334787250628051783253236456063988266888205462174165365202199052471354441821509322696981673663192885583375708860894926277166952724274930616504657794339964166556401420105066295445390644921118510822376678523828371104618632996515827713625966293216050720206364843583076144212469870925769591620941177183796115326784914733835985556625457072985240141199061202731810624561213960497650290977205701657319588366803411265409407669181836792812345192610420929138491015904560112230743810856281122042406553278294315175364923125413443587265619460552971999154579806585223324949795885547538285157846273106228901881435081718786395770370696537370048887946982028066365991141822080555236845642618596007265353235335999664605810148849857372580612828890579813074381176446983285202509497056824214912028076910917881688146460075561437847374435482000225263289108717687772075411874266433501497062589282124075960442526434187509514089463350916382558741145503488992587444511544066946792861640880481103073934161814663407932618284433670451263225999903812799793581054135764864255954632215154955096072469153920887527842859903330268875463083675791539587273877215050354452314937056856714160323774198372863108005442852563764160993715977483786071936606686067187687195199478140925431252492409649864049234507916791589170934343493332195075643123747558318750686504510252666363164930194129805120606629857443913173852937683299392158352455218700007930751063093376453396007870551908828228564806925675120451094453465086243087865597774913926038719532972286119240324506142277119864125959714214612864538162944481981886331881154678004458099795271110638270734207731968630746473775592068351857150867650596478646001655431887139731830168166661247862329238957556548570707442740492318176968427149542889393158229912353649635400827176499704336927219432630036737724563610918286608131292996913944337771786853323286522917438126856419868452990521732539844076607829509497773172768305338650212120342521421636732046854564612367420769114395167742014751922179340845469489061867896405439613748094885098546380577375188592310412730373921311205822948245540731315079605103610584919768772854261216197928686135602929271503412726919335480779656341647938292847246014343081665666066796231413773443126111594149645198061106828948585168197729268221084928398806805298563391369965158935891928662812715865991473648780523707762643757087757674866619523063190151297640197985263360174746859301812271864659716495083931353134396657722284463279058848372411968903944820142076636712024675662358471039945481440603635326338581362527111446189164038123207775046151699740879678554169286035243310643330499662032919957646902186809347658287472059691220400076674045323625197390219403671470262727740834171162552411856365766911905013676014632086631619517369216656567056702384439978120914029241247910851245474814699430324484208352636719061531203819984550499179897253657054641208810879097811960163956148097298078175168675280207288374333814307527614003834604505953488908298424558461007354224807453269716492449927997889516594881337937615560498802405231205309956998761056545713438723024625308567140014482545112481923000337898708957175212738039949425106400810958337182254382712992927229824253298733526955296679371562696597145481163439300642677249508478208266452423875909665402619594967869177738233701469566698797772011955564905697273994258179757790771892758245120810170679942516162846326086828040630279864741587055369063610021782694711208598398771556246501213074855037781607696883543327035988910068113100342308163073150991665010862088471474226063991611017866589331563034947360317081256879039759105813387641722072017392430163851939378708220988146024356020097136473191488113393152396947178165907125673560238179880709486920073003223535843775610353747881008265967186076723132264841204350935497402816374585187745982218915041312030874946015730677220583884421013318042999892977644737343876917288242031968643611479049123354251093096983922799265469054933927565079599120314766429334020823199231448097477982539839674072315558391240135893129317356694345902258138180881191510119626085201035272039099560477889272453184221023447780985986872484270622474386924154298011062643555991379373837207180744788268613618699917947392943446369301942116197363176899733525559288667346599440267663211109668469373400784484276566050888939793446854726640185674421676533347674568270266756493646509475819069512428840458867453119870569817796005395188119075672968419617794266592894910857218863166655197525815194188600285700451237232897529677570112627016301207961423673945672388331601480811339100029074425829484951358130939472966135096188194233226435416616242781744919052294165623851641887652475711072186710593942622730421020314922257117567934063313109579678871387905174628838213488922196169153457405452991596316708363997640282191368974300249446784647084988207983646324420518957982526144295680287249608184320125118668103333824565243284992629276435282342377433900994314064214071314708994527868092506496748028584226978388926741217691615197322904446989902390379923475267715433307021365148404397827985391215516478125881740595717988647449835845714804859772991273191584021775837487001342887353960611976430824269333596687643205780962564485112091886689345078582622282013812861836032052030508513841263904491910950450318656411001153438484454248810611373610713066723816726200673041182100971501478522058132749587730453813453403360879041574832287342967927988901285995154477757150133301275078614592035527584072085073385498648372528713383289311972320027876066490491559443494372767390867801205657845784323942799149228394993888329381037992019523700413389371555099285088634305387764695533726960928702479045530907690391097266482116330012311095417933480299512603375057774372223784492188666777625930025772493482288602090356568302903541529402741180970372283564764576304568410874864554014573672103074788969620103407262836408239179413968222057470832722329657426674471584763035100783918440885952448011211614636508043973783252928212843598303561553756790311733672182772686488349863877065988707227497516833554308297891144805253359794254850084410529115770507890141065047305772095489662375592680489816470916084886051155671985799873640978261369436354188453915801298678486082859581189912804757110393792738563588168078579241714952790953957724681769441060354684902687862129159815977209459459440570669000744860152886190968234409252351259329702282660268688239640734031309810572549258578595382124953902620074807534684882771872051187849696776610726815749900335750097877915689773946841460065429433564990749179371239252996861821001754626242443246445072892729376598262330493316606336656318619781581488245096743411155678024573342616824573565409213812656421586382928229522346033857397209732637021487610092832383335367512979533149314308662165744910947530346908105428778340431897927366699057478771940687596660408113972027898262123790758344384922844487879154106281275022824214941431342095691010726848576777782674330700326215522381362100077490928621725839627478495121338067063508569041027612605905920708230274332512107710160920828464824134738525081949278169569181573619990704125640538432597687417353689111822815770443086406285258763748543059866464760784405808654693744575173653961070979297071127204610480934971620459911216513808040223968050637662690758729747722431254086310483217625320968920598128381183730196110595860426141770248443062712402658253364415575107697473199939950859307286370722872010938018494155867248720258434417764007864091120824588224548549362936757892883548328316998946213356983024676779328783959695865851781073486334990118522401245854562054793191010565105019453385127731721086444727678269044635669305562724630160029652094470567399775446812986752981491691018144345905633399827423087379471460073538306807041624247054374858703184940333744078435152859113806118901237783976588027775635487915835279075767617081104855194462156849438961553459756125364126075913243966140935604610057286736028077501999755514618165865829284102426078654446006485292288239164008350738708568654876864000265634016487390813068787492762107819822382094540634520544725374912194800867298154890593454982349723385910617233109245537257724408948778948320399627505785123321386813371444722566818969505539902895034911739708959206359258963829252088563018269139347160861218496752291647566458117795663258049171012301214553250101812181316131916296634091528302925118874173768161200288159704865359586436088425338509101295430680731559546764963252374904136513728861961852247752844733902671414919271359285978412776176136167100707641713465199273067651324572646470703680191391093990590729583241792620554008710809996982569078043928968153295506929357005004204216803974361589459593445986332108087654272500751702860747635470979910281467050089483521430401952958008840465037499111515920751038729194217945697208471293371070543824089520666409328203709975823247703313587694489702279592236497224275916681849719236805854536367765163091030370373165542102583907159104872658775840096128591060093710236680145099488469340248083868967472010550163544514113125776500497846814848891353751254885982679533275797881661443184368385973946749842773636557249293062519062286836837154562639588310209990575291373496397231211254611011707625334721675749698525351689430196791651738758901077069170761834993823522208182892436135461414236053718448030333030246527698986362962284863481585983463709266153433751530241859959611145815686490384816381209628603865166150926874938702965347853497184149127013254729649430333121425117511447283657772779745926028961604014228795795416154933968007158215381648572205579974864158346230781698675500339423143543609615411679849488932124010308776722789117242550293428680907076740578489059112545610855104188103738499056307263358903806923862540033339478312005809534903928056002230339356384052371435495595028923968838762138371543735330150265367517293742225833568698057200818565540287745104638343601125546677593648495917057368761108776202784272405820521774226998412423482020920108315562453856359241029749466072630052831779227289904968499271066324025647979353625675657725340291468246213957477444731992286963232586469650159495613000964533627197084290426483345672453470435276495452972421096417222885873126313690078874643966900151181998453180162287181706118603497739257798441441076618813296247738565632289416364456954999449568890727746576357675583540467002728590438233926393704130241284213124888140953111310768856316051913682005946082691778195231413767864604525041028794578850246642204104125500143959906593282368037417254408046993077250946867532189732644213823569843639342389227851701811812225805117603844485098171449895420507614924328476207593229836381114213275014978214681250648794439052174294631675414110736891328910180958180640432765622486859329098155304187961971771933682879382070853665440390145632504264123029475350006873140174510657708024195009340475553945424961047270644987746957712711574675157028787125155312483332040340004545436380416666968947894920004674959100171099273471865761589777084450097089852883525196303409451662352173598167894478963468781244350233735301924635364762049416227927764721806248024072982764300370969520521776728834607032618465969791678987891587482764820801124001519365214082192593050234481375657811097302605691473263734401043179717441184424329546985543282656972835565629794464135850611748316323528014716560081742891462046757851366405764201202693526624377085242902348927219771631180205574531670139555829976167966724376587156279671869495189122853609886935491541651886050504640114894450760543830856116691174108073829908399689654788089621857356600623622647216680838322921315231350076078742976330863152809421248048400576883674278149059608325087551322065696492145153950151567793540205107901778733733473082025913323781540958974987157727834215057215909300234590084845132545284063374369028829748111277497576662893553931110315223959711348967360092149149545836065899116346464773567219578656181746581981081482383167546179930514481937619090484364781342098773991189623582593168592364100155642063688706174487557218771102461096498664727923549471989039635550801058938901218583463834668220728558004847796252708195520493145972446651426884418203602994736069150836364339026467266283392022753361462276799486690425432870511009985022043082375628163345975326083804585042454347872807819626765307280869730702589795061518093692052495453585203748473701924561107707159636129899778109809325737400800402534769383615194657364320348870159770688171403178412836148473053091245630479102465701179859930083945760929592915514335650658456046579225642325013472139671004807056858511643061744322257713942510928891977030174117003911763465198273849104987978240369183636923843809976912317193696154603925895023294845760609943926883345720011760814454963607400114413246774435069966197679403651691993913084723729640309163572203837288937562949741461405406218037200758764245689262340330526627189421937072864716409151863344926895131969403291025799011676216444373485009314378332376779067162358227826371889772302823127201400225584823424223979036981855899880934145226254434554835748051553941935946369795311506448087481712089839319107700476342444712378430423545337246079573724956074587067979009894629078218748523714553694748773701500786338048724089445265534062125849029322902917972602445001190617128276926719659933238252158795221449592835604847366166636209741892626054959721922216715327357298955916274565996349125919966798288709858203157009169793892301961893481578723069721935045780022966379790959379010253386296397850286089510568521704922132295317202619955701670382967404635946757123031769277564817692823250829920285453608117035178484083010297271952756805560162428051096343144738814958859051293517415164199063057612391271628900938038588392909557336855002264679694335590331777713527499481391377102509309870438265149770064244492306688740118530050179077126283251030693784483489472492500518443887089458705805015348462552762655608742324353786180298671525449894379758667983877607363321570688345296925253223180300022230354100841433213167524789399214010470574918193444135943920398631686312009548101172558497313749449307122666513126196217715761719986560495745913324813333520800784544617075802724981011209048523445047320153882553946753604895410073256090421709288659507077951002961173592070194382047671089674245997559571920836733702236674572065260363980225586905416547658234025142762584848393222587125181521304593435457097032537223938324449475500076664124512286003220474742681420010926949633340952459528988534019407072451856755844110248436701809928392663750601027737606797983228954948600405203322438500982003983465296553299227733393571025632011387386116093750792223716389177853419873551640421067751190408567420335222273979373910298882800469792707273370478766682116395608829891055697861630990622523453415955036933745967176617595004562234637904698055157456910582093754316694860903436159801160088993061397020989361453188131299037334195921699514022919045616913530879770524990556795792992856825321514673043861062988244311009857631693846581104572624273515881443479701543446545918357734361662679170746794527434186237272700748916141200148195176871900235940287782317620040334029014676764514095080343922991879520504881331404967339597758894051045070129567260293909783137478983545955109532987800413931035905240717833475331121528785169670369852052375127726572762247825114805288838716891718711261428274013910518000562652379463132152389083861611328598084653659820645593923853579541069203952207495590051178188273578654122911986206011247407277721858761907284993483465714520759796037504360789846426497589428917336484371949244481784412900821783221974648945824977525622975558433303388442319860065235144289749475668443636036013974573029318620452879875257641363116628792188109628576918179576777117302338710502782389633171500241430496429798759433256332206298855479490347412736995323926739730636832031039354032228311594367473570568993341232104110146350610478935631814913211526906738088683638047641749231564629026247066806976899441488816935438840224919878399894582040904140275722257320981215366479667406210507522531470445417774024303457694659502574151800734550624041377001073739108539624105676605635606253093805475705812095463736861038644042534108880898942216915804260466800919080687247537092846582052898018442698285334583918483273510751130673293880555915850274373787511885325462274526702968560647239303655142959652323841380303243437636543738151828605784472043001154894001151271603427118587083489184791193102376520998198750440002179436537588096952815631530972285432812638726878483876602186608687377339791271120309179666192765007311704056494606408563655445926363070205616399283607491624775617000442210353684626418848358361053783678835304089465971473922784445485201224093901450914546918149066354801496836501869658922977292729065893899443677652988563870147951945221858875243532672120627329251383778326747615219819426895649011317290520539073316948450762927544733259937805598012368815557485862967314984114494065488834723019025695729106967960485693411154901455564066394073417960487844854379744991275330939187297262200018757631539245287828940839751191355482710101293528358543691590571202075457239911573129956282378273290939345514490801182302605646576937605364227908863512298476448305249193418718227132819014786398498553586890176059725914297731309347120383991898946706749553445824852304739339550315396640368075305271000237379857944445517230467502688961311212619779943298520179311772184501426939536576626135302743535397821566198132902011511308610123656156444817984388052407405246269708844162734088879535262962689401062383950389353572785740264522882405282912128829103061448452099202125789210484938524491880719499603970506974012661094610848884374529754659942065683247516342504022500957362684416879295957869622427933569576686554200368747324397566454339355797911613616118787312741393420546684019721326524149390441722893522906538962457641404520273296790356618306515524188290012442257281366803017794378401807418198038272943947769681878696913456247464039579139770765195221428052469723104358774582306844581919816349640594247974101387323335668130933628286667592094514117957412366187533925470276955398412904207346817339751149585590561828158426919979708364550968969457993110158805997351404899621498141911608610223395862906290133871794603518390092155337543705240646022151540870976898590636101553728566928762670767877303548186248960583039623060365784724766678385626633988508040324772456797265091215352305516191768557798231497885894852640260690999809963933345030442739288138844421349183512525912863480915874557132970483140326548547058965359736864507301088668441879851110740166653301134208298873820143893042652401414865266384934429667972568900623881688406477879535906830477598058703630106069415822364479588355798381549123687824663993761215140129341966106159886570655889222077144556126359836733170572541041521801061023897701996675206330720207168614282203388006392917577556776066428207887928721810871908349078053197450720116851570635426137215647686103475474733075879751632813363376949913209348643238258776188657400314783166210880946493464150213563693156021939806642209999174545987494388802453526026134524837846429862446176324530693498538818740061404400462486988935166274556727785220216907663678287625225069602140704998998141216971384115212785495706595965190056771649021234689722869162939569774809661864561335385310824835575208662867249200757774290943816616275174381128620588629379927296378922630392381940334966149894456403061203396411737226810752597226013363838756052464717038310126379633881120559728109731850024448503517910787534622706122134216387691339744981880978613140435939338887947548790378773434915258006105423828699415859585240659626674103243547048213754516434241853171188410264258266206451035161229362160374423644659806960847179349034506166416506088352214045437655145076232749603400193133562639511968957503076266640611018193297674907626818658292410814449938912945549956959915997655543306315446040999194111323552842363642265004119799464714366038538794193561218828465558974331069943382607109065004595406807648654708990853090129271403184407808994731939259199286508326351582573319649943953068050043138933957290279192813481359336969290506698292470557897945234798317248450906285784481872590312692601454727393839608472248218293811552696622872409513211176221568596492162480171802158698443525528511062872541342538383135113309256253898316580299690294402840213333954933369221097406394774143417752089662088722466205834217849037828834949030129349032607022098692871891822034999504328272829915682926728933235963678680054315865903887614595335331790594602820807095183205454829162486536647562998593923703120940970009778617743164034567204328021732479928191105407744885613224977204039133698381297186127586444992889652802067671744877063788783434337157550006556483210798829483986074324949065434207450776520916095744861720482266232386401213672700373901447663348528384650168838843702626151391569262326111863091834366144975313325885332118244874173083132397213493176194277913437121422226977036924538554804758124820277796433772242612682620974404415095583843799199310686559558520092815358633845475499691008741325968498080791656194988866520044978753319775975319758262268574399837858031179140777410213831723667979462316064210653520997969889873106637566769696410828574989239526626005252900635332472650446228246612655182112732577073682043618139905979522675731828028280356502679064540898970847888123059261963839108278743388343794747087596687530050454741290700626602036109240803060095889039168707800498491632581454140731523448452919785051424097008286034523605084640316774446486009049181264535778225760395459736571004431776042038508747742898144728908364371256789919098914054318799265217040351513863409647544398242327907278838504407168169346239785873095951961905806656831771534304179727075954290566953225029510350388749876740363084181233976678355753520304310651587341844227211394923538095102349316262929596025714896376253829479883875518830835840318758988173660153955286020733845036853117519403555210282377038121583348476629291956228378370338152020498130547006836718555666782019325100786563637516318177337385166491160046924582580193662392117729476730910702408076788144856216351816496696179500024025926688748084334700717735494396517568203122345029499195857687420588260708630806629106423608119431044250227762817751914307822516851337144062363620180091210857258459741184028322006757677895140558651261638222616979403437817863090833416749283573461379312182830650671698570667259812900819157121944727251342784223918332071733955829551241421819097614166112300107895825286783309047290306215435268961622500601129650061161859081324150769795427185616540821946382950363255164832763566781967984933797694889534718904320050876680425347784899033038120594748709451162584943593730365541348103670812402542189117642541912028020391475096359615435898132232739633810872241739809443211625885136473861508930265481604121957762580047017920999925481309028410887031825611944349072496894982502586659134902798819652612704766754685720588778199102324896647423655530539429586799769576884291801787004165392646590205560347785415639086749388491538335541045186587027990145225106650042040698337481016680071034488839642326984092912741081033528183899189978070614039322471441149443438763543343522070426352457615489717943748127340308327598835209709429661952535284822610952156221714868753902580239470500415555096453824143181909177047127809397687115616715970383976191855342796947663255461826586977542669187156687013213730954538909148289755503765831563719136935722298810367565241074439759121021243481086856955309980979795345093495017941869273038491407929126545480029002612286278683500034214660739861201568085606745190456477974830836980786493062600767144337015895249057021344616291655859986728598677483231573779103535464631896532574315591818968951650043792565847197346394359538338092327948910992491530675445398341397898535874648015486390572610301967297193410460284218722793516898351544864078481508855039886208259884689416000709760890637437932742941531634552209907102122911887162984305310905297102228926542273878508886583083690295969855249596801688862981544417664070836196856668157480826757055148435838480071742924706323340229103232044693006172600167256710960564028176589662886895200657070287816438798737007199167394913515051421142117768768013988397671035170980517193448319726667086367538722784654158330819910985418562144238920916848678043928672961794717883241225252256289269226885363128348425487070889772653093210513901774774084668798437474994462251775063606126645496675463459880262793935807545173747934215319033540013511315324981456127493441708456503498067341347767619115426641580786256207899062487375287694948210350292325029498425636066414227296790871086543512765535480720947818741596809245472976145095659022487012412213252901993963259018309376020010760956029380723353424891851258422724939623809350864302168237955104667003190628445076796115224690615284392571507253710306542640724869179389002108346406305815536969262194642997334769215035333700904236425316714596767811916687188927470024599251001411706587217862482637363101538582354326082692377735854296400688510402489959918611662233344079266011733736776574441433838545239522955425975191190629769307329163023408400025120494361054397520745414765619841286073605848754124985550871914247326102477154229973514160170336143001937758122342493987130644764085124645081373737863196119731659950358154166147085827958240086622380602912580123037565179131170724206476323330823105814162629727514514133074831910671288396866370976805840270804769054824039815351063364403944691873222436960336714289351061989650377449089204015777231669545048723467463895250958107141361988048149873544884055427949625789437454662776538305307338293908687985624826403555534641660838036763204396123094799253973952454395145019110118968915540353560973530279572323351813706224261927029989379267569611644630526033306708533260982639088267817618270081128577125239524338778639494443633318408110674766975094435774009699965404253942707395771981652817418123552311243421946251068252188947908178649316879288340138663342974493590723883493210937489581148984186667036797324647238304359359491977066019090373085568503492398320728917446393783770622039443776292235202893980894683172427931935160239522050648144709703540804862256097831986563638164392570643012724023545045809968769671532265530888406919544525671842347616820725145980200679220744423334475052533264784065952840303776758325680171143324965575754913234394298083354430675531843823138113712832063455973285966514496724909908455097482358675657391944758920292295255521169738416973911080586842973046296107899262443506436347050808129119801940488561425172376030811111432839125021028380411535778153215190105925865169506656262309706838674428555604040633952474008314424662855697398510449170003758829643080568237055303209051248394279391835676317231366961915365585747545360018002427304044960912093417740035047322683262768178558829784271588289420825577988799706940107086941261901907330471560420894911676466608980124188803578888150585008423476113803053787106848182957491998857140848267403410163278402394605708227294981074658816073476896172511856558811527276134121146971552164247084697366165047098523035768827079604951709887741767811108607427516835377782516315038035217084531743036016305834030220226381649360224015897020150959571285198378201239331871650104978271881904785592266930850301760688581816713947264461062544799339250135871191924815627795906790536390395901663505603890800345786468975263221719193809830059697552245470175144861565042410680129810821039864595788120238157573777778959963511243250319960700861443843570905986069909055719210754776478750895025461942376548218788276639566675434472171885929073729193491704477879437414754587055449764119349248286221572595354693829632792570180050021894739359561659264271902563544357986173564428418670079996741418788319116288440655682238212218923018870139620762946622039954300656832255237532209242991586433970128390976508168395752738098178009936042865574041062398389725360095780024175307982140600468278632949152947566606917512391476142940848482951375295791526403023148343940350311791954281081767687017777130166607483416288338814445744060783132297898364921727098258549662551122820376220620038015006885928012126155893334866271951788969476892262264397284422413899249200675001375183640078733144298766378150733795825862901233679996654171093698962754765226948020034841030344084191555223601917868463756460022022816506110052125569618813518157672545912921567176402862539567861434199096558504909213275769861979163750035639356350036442193129786971907259545658267891906305463848252328687523871417106273299186264459931455796211351350843798402285677061364328362169722308880054632524859961373529930077115663933456435296274455757067935995703245117082259965996903322029554279167341313381347617097064175586121859984295456796652916552741153965946890522867288744498274641479921868353442336293472621306309691997231524200883641943509283689235584216256272519236510985280526357171748748300175672726634498610843598090012969160396466497964844365716534865265531225231439196533111178812542383616909106712931884368461430152478416107023157741549087373966665439142807167669140641258782565917083406580854447203844723261245536056777815160436059192263621067526734758777171466202042001258436638340043337956934674461686694192946015249261970441824665616150966385431162964573963345013716566063902942635082262458017467348213955249280434559297784950771763344529200711135818697440014199622920682785924888198039469536453148468255600590262207244158845213947204679645931980634710016439858914310879874084129132840409543525650330912403002040976668780239708936018500039884233790187097635755122170368554172977148963304398626416406626941872593931271023109641409100219141821040801193984026956398102158085494660853119374269274376254002407953088016539965932811149368787979740341270540601641272055702701261493257968371853672791418455754773041936363047802221830623390458740547679625345831594883069491112791411695386048160651267758177714023670953350106137714022320314563430847616459745983380950184480461139449902390047416978514805120147902778619668165959303136234331212211105564943931939681831630786770786809928959448547339296392285086592572455085047548248726723427217965800911270362854783100376009256617914922771277930892896473180010180135917007180001197675815709332153635320186784430012864629348724249647454605996848448396692761148564831065482438960688227608121901349291229226205823336150910054331086748328667079788240318719047280787086600445465023198968266653289408307498506737582646677632990006076279087135274345426404905288257963987542813645136003527203038309363850689842996159565933095538937671773292673435685386932754131460993863512620591194687093573305178613350117271484396488368753555083088509068896386576705088295424933970371915190668765198277005670543774567751482494063592697029196661813249853019829802544100637576486668664502024039606520277842335020730765410004972414634600328542713704448652799163262838460184075473074330680040417477804923873162748080778062440558992513314287986847149890066941677546689106852815517115598671398662836678223765612329350241379815577168272981841911685575898404023868502251819635335049141341356194615962006153105979158567114549987916074308327887286562880457954086507733912485091527034205013754813137142254478132597126190586454294407640481964941079388430620789459608860331137463514808097812095783607389871299398932481402538672178776583505585267604379387353110333904006471280949092725130995007138483228768801250085385630807477022460769122673129133400179689195419241549799677496546782716330869862191624707544837463429856505466298629440769751744251128371023681487554869057048531163471751033329479018976487589267211005163988780531348756334043171945650341235286492467757814748134315631396482376390662298124520384300129912475398261531687659937283554603686220428402292003081871597683130474579496741105773460083105885212873506920094358779963506468199723075435484337820507000965305059181228993285244190378098870972776718031716993841551584332331483202514328455768551825708371277035226694487880513845083285632848656197530106117607717809075935151440078332872082541921623319167603963525481158383997747826090247389100191819662131556426512222707318780679760540062476124270458460620097081307928273347159048430000312778073168334774340710548950477997464711863189171642253086118247235155138862503672984834354501141226713079859954908679895759843475525986473621773443257330804972771523046774055785744249425792690015868273719632300677934933184542982597674715294424894932107949423439846631426826437149732332835702903938034336835993796161873041781521010153185774196841816656860035394821793852099063407419111810271093009735179994450532199874650796435479616957890344565357177195729970695512545433305165095427427257541250109468873703725193952487853000124738192855887477655587313708208700586898157593902317505834781484813577064424155790313311515476496656852908764426334615762617665735331163540254180248662894355342773540757693679743809604252490832524730266027481014185275859204913546523286380838486299470554123616336208494588257588444373163889590131337014908932827410538710606549937348974764056233438589826765878320555982323645245246674925831348715224591088638444163689390505093635822178836263441972757462534782358553559286876899151054648702923612840937950012486384056948402424371061621611914124877411118389800026987045686342207716268999162150838724907517290505207953732095423522712057035615065522248472846810910618426490704394989099140639876228080464826434536099859850267838594666015081248088161803575472081065392998386461489795048443694813012007664322138055832837965111332120559431466779964756811720577982064413962759946951421067744610665966905247616999800105501510954454592611305624491488438653423869189107400133924410248748917135399926948995164146082243052548174656311235971036275894401451290380764876834389999988758953504984596285403074329689909863443102708988167715545848513020389797639451085172161543610643758838181748532525721383768605288698945742333604016879839557462467018857983186329579466953607656193885309482530556523892698792306566785253579304594826357373695387676840127751209724691364620936081033635783379080642541022465423610024781812580279856581572787772332886418081089732464041907629900142416025612633932930864338607612560285137124742877384875831736450374210270750996482788979015290491995129841311792761153843691118911840496903709764503056066762460676538257267087358168069660471392240445625587524411608514980107051554158587646724644495016505806657447424675666723117883017294214182384967692676727686342265428825131737990570718835817584034349276884382702703251999833960805927508886766607342691401279638938275973309543346060517443911489788315532796198183820258182574952849395939230312000028010688100426246776156657035381293886180003081670954614054195963465847402071081053413579345408639617170446765977260344919512907723928091962649214664024579245380625853601939520597628707826215081721284061106325880067597108292378870076419763772196001133532958121238259743556035461157066150481902192058458454195914567303177085828222328621094976498723688507931014703469293150828051839175247852248999701654720006331628543528119886778077513524340831946244981362207779717361010359477569189341417487701484955890536325625550372995792370423701141539198170170309832465662184615939200032742650751179180303245104876141591551884325401528786799468557179057257990262765033946238358913032223749278284182432400650306777146137165022040843440543684883389089986147973043575216236880966760908392313906512596569972522758574826811244841397112648882608843735079796033786220865100031160606388502946487630343632598244855177677454178155366840689583821796761354319120103596134955864785658903007385614750154740214169010919638433184032955034250824122083831893224820001012659875190520378159074654258217889759903963704030032575897606874982363149020653091759177956449808656735850846117988229161180212684359228213822794138402943780529109856971797412999274798667080481910608178880286831524847148677690045366227541423100566723868128555388964747553155716473449766487312960486153320513709681301718499734345760762474247299999530358215504813515719380517796246690430819917044197367502945506740354630588059334322058077681883569188291739576613783755480216017165125706157292265796672971988364592282019984786232606665027087662855905402677216083341789396762004174176094710035079087753946356100626147087343224409881770116777216973816993975371963178150788924996590617060032942410382641263619533769760850381717651497669704367893127955220937875064448620682002498747023317094293479161003317221368555776126239711018529466329714445536417546277560823478365230051909484521880715210315142866664628680505316284015773793445126294764527741994406160107108230431904323008403352130532965480404898260692857712925419687804455210365119654793097337741996297442384650511320550046722883684026677192320835590509593360675720129283191301069734560904636871728628286794514303355181575523893781203913842455262532932569644508075204285473014908164983980708858332868542490971089688876582321597231755221147264686819095885146676185815394282043776726786433247532178384924040995343468555098372632446524595690431784165177918440732635367597419590557976028290991830390848767788265790084543406020796310146554070470281266890642673618097246528132121874699685137202721625770050123737854983119911210285112034456040676687684104026742514824266812281724707056393055993141439109656056271095121196303755302380059442145934359084391906771376484583895666797164015274755788538956878382724616062610111798019148707540966444225217981690973850069592617751481805793244399556512619793046518241789319311472645562290087096974274528129684734268805461572637161566845905197755140122116044696272653941893111974929378301569521963408291462287348527807545122435096677454560942678023509685020259991782620212372000955044064297981160518727991768962253571645844493569238933979256009562684053525536751978560030306093786551831857905306352330492970745661442027599358363828690036658206067223650462991543460185826486481036408754535729807255451970616592920979882934917757303468766511283616859100639969486366284504681339015802817717785746357819693880948025169335789592922442179005473474749953434193012263002254925378986243994559393521432831278690800479638972500428334929317546022726644417070320539439859578682423696579228161898682967542003405722967891482787534203227477449908009230197456011849624279413534438713809248957521042512129098111872837915181939442691536962594382154666836588819872725172923444696387559435781110887824083555631352619936446638670759913127034837910685617218724049146783283846535799286086234038978424504143142846750236998818809731451268897463509970722080379797413599060216739754217071767434413207191623536515572389643129213961563752753239543976357507451833149776727480405581992364675449502088448608589212078692583042620313370364259985090682631669570987185969132574340493224927424927547794098161632941176833222144892210406371186156909521938335420172945062805245619743836010685525936308994709529895799239140663423797190054095299005735029830476684540975045248779587533861271720421124043983824644136570434031956592122418674658740611538791769902667287906723626783581237248295230101197873506645064670822000674004973909140876689164318163368444631161413528760854124630029928671716965976246611809942086463469629051180328058179310497166931350029770242265789878912507437896385045079436503866548963853378686341129609087845465487615127333750895185517430695700580008593433527924326377725884778652800851720765354008510243566834081593610137882738646620939573170552971630419474437715594390996124983142480299580106191610317783311563321911912152237674808391476945955706420518248767262678000765959115396340380603775971157781798836309279006329810390322663099398026739914490788338401692581197873955328206226826699768167038146689115541158605448546522213992370987683635216106696206420973408461416376722772968889970347506905250540600731009665604092901475742804061944779617092961097244217400889111584626536577781755124324998113933276432774448033538525411618017798912383566544137027722572469809054645404686114731998467814124499875527142390025127538452671869523334082585124784453100735475125429708406891708105483635846830604393871774292960148151625231638360968143259518178098665542045484459541979010028967660853595754172893472942737458006104783745555011284872399811102078867372984328342163356288606115873898844816642585618915616585510932973541541875810640325069818425788077111451772308982646748777677625334553451366269757009238949121854938259444984442642190282240456994257469704071963147116454203685579412940043804653556892195801197369663220821889205988902410878075416157593634043628686561399914226868893852473605412607999549317847133265618434985408349008920006338680236967483308961487737920172276165236792160987150711669181511692738827968168600149588742677227371171225855416161927530182180384564091010175741007299545051677993397397952716825051274808604743166350916943434902532639911473325501542269004873355243897477934733982509329372225657084493092288542147123266185957516530268969903683453188565581515011308352940567714985806322968553302329153176379383504344745960989498875580697650934637958793194406761474925274901474027950701645051636885845406476885676874917718634801840280957556743759516862202261672539207938145304010976940687232030180076995113502405646093226907241955267516562288058678461760903328848093630845259647823662189123969508687022394462880013161124719224759806974843908687126951098859154185518416247542810445734999643593683373294627398961344619109905433811450429479348397365578781569339897811966329063128352197159837712349249793736598644757912124888447107844872894517158127012270279601871318430702324280725393749930816660148256526680890677034577723582919744964905018363926579030479486393429854124151022484419368388207132104800211369566244492257008761766706038868466339884535198877729234887197473264908316020093241841569343611133826068700514766702033267114475403752218024234235072452744427711411417290541772303073015262076404186135771543536620329952618330412705317809818176948053529796020519090504744770863066620500407282656514577767373187346093845355630966832302449232251685454961549448548596869786385738293539018483036478468242497413164611586593729283337498814833958438649235173347049477804192535318114368023024615980944591118574966633090075126342179757910558710520915616012797632935113709598736188807643873958619776185455930706935676054588361627709087786185244105384427408611957589364639899920414664663435672057774015122839311964733317651830807317589728210584904756176247605163912876836503695334920575459726060518081406507917183117576488502332235200064392903095281741917355700228240785621605837735059995536039066803128107321279641636965961216923985887966554972070682073681143028783589826396869339402875976486807604986376171488665935021411769283715415880086892940884618009400634948432346794809300733058908190565749318453153232822994185390602953395310392298948319574570587742491867371365539324027106827720223207468953405299780597689856775823290256894182044346348203492992770894952615988606482424513067606178719928422958342738799224246910079520766580896215710055741298680576570315158322675927016536655227472221898945011216418493023052894177602467043142980256501805393943353207417531201908548192067848555039712452282361896135200147664239092592845718472479819776628910807827202943911549921952173951251454232961828465873082231959299700319363917044560126801308260270336165992659705036455522283942782364510546437619470283259527674225151775681134242165934082309067836603449478558465714046468970902179454053585473236770981274117317512418873568166494502501019793362666581067090068719828803167828016714860825534076047457639063556102587226012243374168341766302601434587347686142110782829584322541827686589635481603519585907220080806470858712988838368818293211621442585648683906569453723367548379790604740313058912077602472497358505733039349327874660189706209642377442389414593445061763324008264001804829284014721154430151928526965358543819459803956031276887208549845985511015841506513953256193385215674779837224184983191984888953148329913573959148335869150742913330597413371751741953709492264516193414711014664467299871443049012784963811977984239907884768027369314655424778470728052592170672471562434828875855037412639376403024848711510032049503237863892097852803701518088557278649674356957019225289624486095008845276026363640828143559563815332574652216314931854738085603350050121145925156705419772214832275486063920474389100500624597041214705367189800428017448672567989229902875492289768162264363244644780102078533876131898835456495731434609612167138346292429997404906664942049179235981784185612353591326294956803997919794196632140557757848316205950548479939949961315285514281580235576889043223268391022323961310734642197979296118472934424218192825273861032883780414646273465008185955764094918729524213571525965751818795912512149223771689446967040453933159685868194633262989250368446196065652196891364765259272972537298796323510333109422135051074010799100393638658354074391222894707041749197119989619448781540935530796849467002747682981027343429066753980784765334539506563567421288356436422132014922050381246921815115833673592284676486863230684588171772474628742313508194753878169100259941177998924617919732739899447587822394376661573610446256975412884424811870033850663961987021055905203408795472764959785930825323824210310657171454634473845824446147003672404239264187523858079864596541745101709012224384735772060967459393055249790775204134860857262476466209045565586757874543635322287264484887296951383597702595125339361043083645948120718139920435896621199133153222072455706440769506637448271382382474336143548426299842403766570215256859232549055576820508058096674934831311424941131611915853535293614627715648741860011846720373121654225851324143543610915924537108428503609356859502285196803022859783747220842750403137013120433262828750551588853116759886101707549782437163066158883730407504301381108255367010426173461497709705891664253865925673923506100043843764492539027252827929786134267241450659881621575293806021166316007948341651391633929399457921220675322258608171639604906438380815908909256734597150484632845599190029437267264660948577027229398307727623129980705220851649399199023062916668743531202488050088318191019106679397955808201621608396275672480398578676863322730127901643447597465431949210865150377092154911801480996858168702081623452745189677502738198773520558311097699145897192171960138183681409479118247313015389984925752467352932915430183984858682206077972470022849614237810715164928561693195178544084333556266498794516878192481319520508261840553065952978121187278213936796543182216279975128068648025832161827117548158603959186317951297074623442732919931957715891600074405496226622839579191035149648021357916813099543994539145291800830548065856342749339408440194578660475074158990501064201640947608478026003830512070724605023226992799013111465223730262866453140286543287465108445652717886865250566339632744723183161515795484339033795107452055906869100098413236953575787380396570341604557560089977252457307277963688614464045920369169693112733694463275739242567364506885382122185654173525820580730752052763121554147107020940988136546898530788123985919379729201380659938772086146510184493145693154930671183607190249410551619483992163019889832772628048886153757499557984500512118300339673475939582854099112978239671532177938929842254434355346364723999083329069366080301480591945337993658431193530779929352109498419828898031986859061012331918201448264514133895834122371729386682689065526478356930974545691759949812756138813838139046502444753229646026041957289997503198091779604433796837379517460785953848879863295004944047020887745540673237287826898591188190001593914810716606374488982501961623426596919545541889517422158493997342660102770649548886232990559838916723488373097059746005768626770603186901000973817642843767331183055841917457571878740911206846022755101029455921303124429584975848360465477883951540454328206983754349225717004440606051634417517542841971277062139480306408096213820823532410632139056922667473050608871182547198502968234297237063377785021171172616987413559828664590136896849485756036810691404485401312217201703771408872888678147251987274474031959717424875639791779095515244978645782062993054275482931785520017242333585312773180522123742983275197004209374607792011566218331903650990894123916741660124401906582676991596253006478739567667390168042019863243784353297333697536761457595968054336033526120181817329812521906967175787035616194586513612228326767285544620891447411764675815470742115981449023049696553491276088500949436995841400537831391681396590818730918433038678324268239134049672538009916596121405483525376036746778122807917996949184893253051511267693171965842562016734593085719644154832804105177112279564048594138254348285579402307892394343297308042546020690824984296495635534696773013525243734837583600413087245806221758347405881265433057048615584547455477418153270387165583095881139096644821637283646097374168889631998586258566444098102667013647693196220409478280910757031515177667389420115775697179166879427837812880778941717074854066416405519965276924389259159260273941631600148237631167387044927525640744053919020800338689262140402658321463468520734173840284067096184948625155958319874832638546380893771440495558228752252939077033134444840597682905471872015418433100157994309092988492782305843399627618189482302572314050992996651472658903438381513263764756858856597914391613429049465876576004110084628783373311830619215190009245968393070817495585432813015798908872471313852457923152232010876053671025724014416319310660050824090663567202992043777938197452542707616635115041278806533510387746212153140348370251130888220856592313059521778015889658202817280364992460118879177815943587285402929411645441328836435593602210770363138423596026432546850685947734978209317174312807470284744610431478448822156556375720413674340383772236368519113026014004622828857914856239719064654558444174298396026024629980222146329536711181211837020888426534085024613027299994601583286108953459333310508371124442172665331518539246883117241609760538039572528087648102528937581336932400409121349934829316896409167153511728841311582675927340914960471388882669334531134310655410873713459899550089717217397920586631088111842912380165928267138983369564161785411627527757926306805792173150117682355267124606708538168348222625949978405054168859088121969865723247872626495519584053264411683766697893392081500915885482486705718140286045146152710309533308105681275888708363618211359942062177661196665329630473234960136043268126597005554657692921107347114832378611239310388639583787589787755246061148983303687615968039590586921279008144677624213809998020346486568308794882276378329691121800587898029302722467980111408460876013798568682560709396558288987554369039149252905331791488792954372570989967037641165354311195716228462840210510938252603837050311375160691656869079422652033184415143151941546716447357032041264997608916843474206203759740051063879601048087426584303967949711108866928061494413254786890401212413322784247292263338137869963323285586663485341398352277601049110086558411168011161097845066886548449526106672000144666416094830677898372254676800439306217492919828324901511782694071631449985890692189670204116603491841406416584499970996877904005113657568945970605569645624962549874724370779763779598496177411266806141001606430422780381372778087978321799017229849677836746267220526683315444185712566389913416560590547616851878000568183010856947393800048692095465666655082000072136544027538735922975136023067424542646654028184376582342480478653567195391976772559932415017067090176134815683269450742166954653368643040653364372189058010328448872810177134618423714586180711994684287622210163898948441877088531836460686290907344558452419816743047030272195112299053765411752687121774548363786022096852154584196100257360030914338068550514593402050927188331877648508277242409828197171961089458015434179765265088275611883592183495094680847592353094655080526900037344432542709347014410979330474582024445484181715338826955741490819364133052759447660034547247609025243652549704222331717773031977392084975313234884727109966997105516149515261602860468298080406968955095183175509611110335839918298413252424572104259850761942970044047427630458276259307057415489725564352406851427931147373354628969326219739310357421174352329590831376980450538681936339559017198422253607216702439783734926650991735100947191454641832723569822584191163263883025311786086746761753763276368509083388926751812856369353104466903932525604295440654456998515569664312128060205853029813157170806643495571831151473184548232873426459913468867447464663367563263478998894858336027302982634106805165457773668596271120146876518473972773947065308828415026043270140404404432092612520762795052215666041786624224825329412186759931975021300126966727868925995631318634825645630659243009945129212167901861780880727674022796052826567804793314019946581185571490387137481854640322099514967660182778596255751536350329948535333743525727550770654943056091073693923990952838723157454644362757480640006302027650861856367598532021995518851596584669423197282069007631568227637187064874830582633107557138316906372689294965691709206011446650100621123664817379335931237059512544936309579280063523149562210452647580903690330378361890511714767027166933188543139208087254886378801886642366862335306236041008040376492845996636884604225469143339688100028322786815084657940975645166931297727005536152408106254536080954075438686129103846482863363466584460032606766798254228528900074258837170378063508255884621501677086747443026492119768928579311615989855381465674334511091408746240215242217964676175374866425259895249108520845918300901112720942749826627563602984410826874358477470305195575020873207949399781289762690396829652901887418790733360287913417179958959869554798565398431770017638282425932990811101749831510964428500958663778956263536082703866820469439077017902065390293008542983907651220310719264328714275345293493417889236573691859455037469288635939548697101760508567101582576353474675461752816816689791614155415268534389074648206620020639148028850752664415116501207065304552558124664694314171550696843213682964040028751841914119601602793970806035999316334934604860691659744391646973459799966821363064046371092644576448519765704437664236224068941972099947235630309063489982793413891800212396000862792162481354760911032840341634693117964190029682006752336517654726730443318715770386958905124771820120408047180105956361507201611589793550722375136518895944345662188823188330675692960840585160504459263241094581350319492805441487898921631709621331875206849828197206439031813058386552715088581069741646516897718489507171188187239612226550974881556646854937834778952869394478186133952176484411760606286545797908763360067424003427151992467722695491204518133493476147693389857628532698773648059004809776895180366256953417331891645543495488962144792288655629637616710091029602456371491775756492842244208643971430421321239340089459386897934441291537791884446724557385317949594699145776949857758578054862977194727635717893105930616373489662019767367161397477815283570077136254996083797373402451500553757159053578982685210915177347175644565408328417411083653394160806988648710848742990284066834113171752512695890083565119294240180585479782085919860561004323704911292077419572546150553703475036423424654289674263721615620823883647091263607214111564569758215358317165926864239982236106575405583903940039936167021690446404653924808674619954451163384631212806318786764227247500339289630471208349467921111052519689850023283316619853577299752819133374088185832375522580379667468191777432110432290583612602590681242937072071249385871483358964465015152197909729501218630939547765805519562993678390798121599704039497572802624708917958669055697144332093870410683763300082227739059191630203713095072930049802488595059191869883856394658268255692613141658800485731432387033619206707611456103803627921894752414476499383410942057094578120577239231705144397122099631149748806989682428739141835220119906863077142584896317340833525385155625174651490340128294642493342942690138367195822879889526224254538183579951984725862089955392833051356546715473984289413120275108390832219089345314894719864765458488507378773078307143408663715199205442132008937513823317823515468053162024982197804536077649413934547210992501149961247891609294712791439727804097986045333685816428295953127433567100484800185809701074149862706644955169481964809682028540790256370251927352952890002382318493145255891079680861485007262134934544243956571607107015255583307236468706426516631648400806524163312390529824586757625044235011464697476733758489891612978183457633602890892070756264152966091593209290636861837455985698659584724133768256570602390005424648904599679150026762784435645859415997237303229043795420592260888772612381165619671763810602987016342277562364879372219285736321107883124777884976096513526368550245785084254464958442548600929870111999370349775452764774684427444660248261044328512277272291330940282619473533521825535180473919640138378015314245043771469816821344250324890669163982649120958288476684828353598844804366115551228878015295811967655416286652382606498746021583711990946999654788574957762276259412843621646461696574445216912119469409624944099329562137182608499491687185587311044890236421014823655872949400479247001093280452393504795958715483354758863268511784274282859170690400731624360243035577500649156316689050165462285408229372456786337395176537604969717947641372503518272349957963428042982554525447517004527865638089641190790871151458311557130671140736354445532475219160185656752312756208454553585747263608407095965321238513587247601009230725171320961221335684839282920796107064217470834998365917860596814625330185226213143852333037400379685178307254340895118357163020357239520621371217472203859971291106879954347190757204163257463708370432647191121009106098750595938709702848652868709116006431382979215766060450930448296300804144204958776468763648604919116350585362872530877218566659302243670761765763261432331512697175561591324172718991538885015213235399530714641357954786255205816617112101704582742210716798659412819377599168467899123613328559753124815670026116818495198864271175925645956781732190185099836321498259126417852600103563427291425513955954968527772011743366137932128191168676575725497952421744160764356878223397430897296390250485123685115880339020146611205094023256729168999747378398807186378421071689206761763525898201293664960158458046336215142838429149841938554315240063110618566017313316183738710906873315488030738659513699255927465763211664782975143602708604193740317015195470323844252823826100835204369369031859133164330725525583531302279825964665750872047720968553236835848756754183197106089852809214371937190797733839148239859411401041266704931180412735040461201247512947593968932501063174671161005970996191571583070239313821648351797896785861184015734259889920915002634326950343188142214776365298705480602213117073970102766545894469948120877052069352136030819642254782465076440962670126348306775395137744477273947080513811725324847819728589521810216410664113775548499751855383236762938104632595234649858235534976749996018798185163154011308821906619988923234876515541696457232226802171592523248213273200601508687689843299746233750058564192093237078398045550033351084453374899136401553444268985554130494948396575739867418790838007308908282298063082184121044664622821486023575552881364563654836029969275966397146913294962164474846324770955192169938782715854285280866285334500072735991236920115086465952882141729937602403196804229951510787549062551250444515918475149414889145312064279520359155023025794430076533061110464834655269070135255143608954061592330771697610566022653375708587373207896489575128741908799706804158826540192131906473244659609305237461969683582180313169081401134954952310968353221649134924043009075269506400264848610940918175288413819303548724193170349144740815725878752044258869955897106677303210313071506442132881513739429392554224643937851490739604209177989044796443322959026351800558645831215848211138758963421088279512455138206757653494284521270556970524526167677182297543591422289967985280366170075196852323028587136610285963736890770630379645897558406278826837317444143452994445487465646346234686429184789927224830122370293940574815362506727018923190872041133117864181198531773626447819409127369207842845325229918325659671987938190874465296989521307697938797408464671880283793672226925190927442443726197375296468608654227771000835649440718819796629264372868953139058822338081983008622335865526063123976920514498363900655943884732663003285196384170181137378489052711673272247082648210183604213898216448967250352568206364773852422454490534306514483855171547005269956772985608049533086479597888221566720913019908297937192970182114610470011916233237300688653533671734960896689090309807506477187208013058220749572386944231385991372107774520755993939442593497203516934929088703611231956592711796121767463831428649716071764957483092172834249743052160814109533448694174976625792402506062149269219710804776124393664349385099375313994854002206271246254576499983014855727334840510210215815749525090964477942087197081893631389128289578846897178127468814433417967290575717391779875490725113003690704628422973578634758936035459492708106556637849314810379040428847812892171955744505103950039243324628320394874440302662298893254042683627093568256101588039615895367714238764941503869155209195814310046953211724744573007047877175980493090315962887444965519534665943769194586776585992615443920506347449106537906065395564652256712805187456798208379143412797655651929678494024972985668965506494424214819871587303686861123073426152328995566506745202943570544084056898073069133819026391081440149528203267114513323827271458448228081050393201272119185972481448095077453888361916611426401092398427107627204671236374745224750739924935400855933276143619731922757272366977709159196068325755237032318826905791686838359226788907389600477517178627109152516902609917467166124102155436500438564211389406073956060218041252525404057841732856727826898867709564593970819674367266736664218988785826488074792718113525830021612543793665687987539497073473982364965662624676664000491513300571762486545665072136094865195602582539854181789542540192864412841471675391764640179896302406220940408137783333650383347696673566675724215903013003975898367024750642364311297978045718130589386063304763369891487097960966914391816448184307234218598630378017376583280672983103394131845503673261363360294693506826454061778857842534593694699655478511996386444911619353137520041545889476413304955942925899681879066851687595072552440374511729370560529677000284605711200063237955051866044240165878181047975883399819764744740092483471888144111132380761121500325958927742197910090306817289934403429282925655762985245412404183345170357811025714692186684864031474566724446862957661865113951685440628740236737276026943465911322754973854430565438154614843609043527231114050884357809066286909029058858221985935629045114913690899474184749501487222910909500828084703841269664490004516819347181762194386117921342113511798206590879580541761484129720490602808684801039417000314556911519985588410562689776396834296552835423640467065273224032839392463194353314553280118417049531688860679096175203936311640441601080911684294413555961274272544855465365658916692586611285851396647914848133798428708582889838097233189652521716987651367182976524156773452857664547697515919549938955238223277706998426875817850150983462693507063700770373198577399059694235559552072716303567624837240681921880908374642407328673368358497067925587809795373512199838562463848193488132181147777542700647614477791715479083674286798248570315230564944886769857108038044709801071486929896776593673489651769448186568166454942110396727081705718933946909316627546249118180155889169008284774732960532988819977644284275177234537753770863099335493085308548796104985317787321335929701605401745921422676881443523067122123560483042980812675252031616293897889356751136927867723371494962188152940918124592998091996340477307832698073531842352676754337395458700781711182539106616879220509495072724970480996924727970035969804342846236229275612506496468390162769024703022329636537956518412418099449169035402821076009421891323633286376306933163802952690401119547384461721043132262547141416038158737136008216579673937565807509541381996825656844220146507847950898729061550476763807083121949336359456803172957499535505419621357544229600656886144128519202765703781452980557037653496928604344963555562805458170444039205947742963014212172027541552881271903755655314374900212028142270855163184585388233174389636529831037259239479137896911879117889635487687037116457800585160079763709042880546830741099403762319572105044623487018035257614328969415526084690725098579515869088102576351034014049127516845915951219434347120908561440418838904151956025669270895811018203797796068567145037255992645589909362324420780071720138911718572530601925156706031158405605981883146665767564559290559801711166865820038417292363219632253124103907301888385493293141677304669547754289891244332590399917658810922915068747819671351250034697049275649578717219917556071171571126661139799204008457721556330787587190518331445851351175468192237846811068646186315290077828938359034386586741567994299421889810840161512526655246274214015149652818656477107505739952888425263953456564845354529964224552703205146173353725590060665047388176722110858390465705657370068846953216929459718475051032873268813662210151063442202523843713943272614747824704045408451610503299399935223900759930375252429180181383862915962738454195586251861766691606264382423530382668632317385138720079379312322592297733784257273430619357390573810267040266743146806583610450307632257857285280640704962354298931469802681412234529454242427877635293686918410464227691492365542875312436280212968374007164504131736919388134087335016220567596289393745847277515936570349342724113703888640471580246279947093298230088999070051554156518767855514003578457703346322899400080985696016048587675573345835501811027966673106011925493847067031635557469514663948999211368443132222813195170244566073465092632790651239382275612283587775516094525866293819180184032592368861099406316645734264666717698982564751990200472258625661899488413047308179087696342086153811851172059356629501593067971865117038682864119610391252507350850107667151048095623742655990631178386438775415435495097482449898843999325963844668829524323610686685458544839478684750297308203402871563205580489675532039009380255257850216106969202824988198771328233724639389240217863900280795975470674365568568354807203562890224392087308221202452403507193760095167491424821171030557754404285836035029316128084334282444402258480643152121409386066230559146860003007577033250238927341435135844307418558246149240799988643853482539431696708192340606183763786032828033927497337793017103529674265494334046230366191964078450581458023604177847289948681322966287726313310884289622926526107726442130952781364943234492116324647918157393306279685167137223834707042741426836442583988407263719551511559918475830468881616116902444531927517764410300925855754321406378360210711271662619074205303744922226779689091543013580829050725115103216371809386440565866544837697642455312840406693931244687816006916889331340770913055654950907781481845851145752653414570721036586113093241742619982069190090867003433325944998642846942511623127421067605801180675875400473739809200018167706647150549478220511502713073900625263003522011909501728464135900916623971538370756912277151252391606596964998832969513657215274190588473498187669140469232487615425713077341708628586095886468809198590743497153443746702512729119905354627282362143041926181714255967055511888938285074717949995156760148712956173480508403050579095501813204531335426400720702399899805751572004298984130120789722184324303656841752399139613182468061024259335773909362035617255261630874986675817977815280589886663506372641533677168104250473247212468765289219087910151605466183864178910615780240853523175521303457569920870607273856987792608410666139460505584279489465815862954851111312463232165737518230254332972259703308607438400397606699752494016202597008249731557678285833390136251110823774663657837986684501384616573287396910928085220799558472773848737840813536188837856445894830362104018614582944138778372025021748953784278927097326533958282522635684638369016752284121088629548550605847276309129069528040241374828121054519923397319571541909574288993571295604213126214936936009075914212133135323863962102829019767102169927747261300984540652004618437330334301009334386470107373141010887182686069314830566135175399748566093643783772866223873913070998805582832285808329821933355066236141166684080799308157207518389042212049838344403915888653019132314180855228032980591977924442572876862179090872814042124004443333064366402035678681398410517733603574967721081206926297133020635884476116466225314092991030622153013311329216756718973575188667612323980733379449493204602944895935483361303536145061075442707540594431446216555058428575276652810082885087711361469271368285497249102331978482081974307706518562079917135765379713112531229168070255632357888862432041179144216194031038254101256916143060109552727273196878564622792247579205099996467620979662504973585946648012943409421105668782853372617527729755820809352935851370827575302825147853755289639674349466322497527837475894150439822074185570511476257954623315910840444739358225020006728872643955053205418019595884884846034816937999323700013390548613693478866419933369748612692826575342188187323187200703215968013511105592243176666245087776564298143706062924059497100923762254469095014976329885916425316427711627695889758279911170065239194565947881335649987982478739029909957870401250113209759665709583966758789811578016705519154763653079879203284057071508453009778078575665960875520119251737248709346093368926222580129130596487309592242500587586626510552600624344064468876305536388299597871832823681691429070183809034312501489133868370957132465831733940610454242935546266693616167945714814998355885640676044488710379414243729330202861093979999948245190731477218158609386030883287898275506435903823758101612300306836550587750446450522733828888394569624705282069474500161375550372909199322043906389671337943173285976625544897630001568596339746293099673728693140087592801436488282063871812616057082440513094314526379376212989563218013895713909190959514670479686829793149863499630103891506844697694770408011969865394186362370809979793652930353257436096274252688808700347701235333824167500389278135923438892285714101760691036069682921097026889896055779087078933833140723119048224224830808727854804072892757735273117681984350509584404520788609068239073860049443281141212255014890186581962657507723254806607102709763159258961749193423276390346639780443543533903090282566893984102760574185373599411070723205956142447704884211651130788309614799417593618493913401582106463597744398922070722944147600096285706073386996227816209572442968331364331148030196771451391017011443398374655313702269228680151065259787952277369717426523370260113251820840741159575276636670233365194975012302998694824523496286630508204560520843580685643719996487527686305585369718212549571345468123122741830122313321744600589321049487875293015727389846081980761944426282505612705583484322191934484792438560435082657524435308115021915736343096450549070633133729562767987927850354014405316779400689748961757882855496141883893573908126824407228434379518176210643718425448554789529511196444267698625115726308232522479011296287845267608071181891158169535180081063751095499584443263303647238999903648954829529592664478339023802357671626905547553802671149253103510222280249012270790748676634535009057645782987329046870113690869846684183287632633023650835493330786856213143289241862730517881271551179890017116594271931923215495197773723965095718018276223037272624327853567668526828612158267223490392941964681309573058731011815588312879232113552946648674667617445596422025791220559031455667466662352198134324446710396370403605147898366651800430485322861514484882883604449576338602183278675638480125800791321395331967874739416726828044709434840227500187342114205055947529165225520698714622188843431084877973496871519667189136793917535518504351221249141670992697176309925731165961363367892169847175954947353298061899648311987341397917034941204068338405445295081958398985962987565228563681819875205127109127170944353748202363808439760492055811012293161501097990024699849167714287008269852184209244298613824308800742349304076643166812578620973701809138506340547483616482745405814933174140320800531828470639061508059464286038573779314900356891724492494293824989158584873603497274090242340509206482989158664643660915300929997946121826633593387445802523656677859092982966774648470668681594692963595686084434159118494899508754786811105555428038495225888160930733531362676081178441830139422678481955273421724374835143373608244604919225161248460007059417753444475171312609286056735741772410710037036904567990278970903555183357323441501008114732856731816330364810277434039801872868854564037499350079992005910382584415186680363253790507318796692736958666333235060746000432547156670437525718630409687913092697003042644264100555065167703360599664072758566411895654656027989106926059857110358330723105790821044425208336121718568601669155447398211923831172295944663520616888403715353263133506301519768073157360050646964606222625583948291751260750800519383203933702660312153910407837444611688598298523126990799233763048851468482059875498499854522479436894445810612130711977218533447104796200442537659599504118094325158702305387449495798112270869502785694195049484818627780495717162811424517609807761184069626286299475732164254759503747115007888765973354469222380261683749355022844421424418559438018105550648258594868586196442136950086408321186812066205004952300338778693145608070746941857388494080739123947544339391191597005335538667537447793846979282109742839306323706189884789885415807217541605977403654836830018807958388755537382300108331391387977824447395218900083904243453767930544725701160549213627014892796602305826843559255566799582711340463426221811686162690768338373667818210408105063246303378102589449775545794658085122574641038489952410155115894693395814378671713532995668361418279178863629756700990360646625621379020424082626122415179258726066931169496296961607882595313770679385564457206250843991476204990429472535479639460910156093082446129617389209482785592544196101172754307029379313942105067946364191849766587052249021947447261837418013150149312029686943028064156091643128746020235918868657217015649160514775000502154376329620281674025851180565345719673690749684805835886701275988289333223740324311657231770303784640306517148970623373514677647602123332843674136676302456367304383337724006337585570151601662528308220736484606675762495557155037852517179313835036776757911546502758076696902694471145541705187920682887148723765264629553617282211986586232614656683848728835465486079174322032905568365935484916143149668811395310840607962133485099384728234842414070536660048378508580895312065859665144982145242767193982937011931006541011290791977021188830132689800427331733456530828834081165518532784258531129136648079233561247351593616302236657100952928965376262418247633070948264458156802728142523840012774012775765938309324868807854670093707577022381137413581379083085428555997618899797963540620919745990078690572347288629681928329161670961161572696300670976541661031487445652965624730192076279160905162661199273984635004237517446984999451693307593667188991016116101064884292296909327573606647846825185300147676508152262445091690895596080077849411770564757051115387400316347628223406064145875904910051517864710971164266147003312872949463861353953547313817502109771860080923144496149859253205075500709625963890099324606057944712501094060145957977117597712337387611828962138025943478023162488673809207988069465111919041204322582641947401497354394222741418563642575796423452693604680719731574498624296727200091453969358934057795571923315429095173414092912311977493327466879252293870716971787383411132939593261089400957690045126906849641326523383022639991725015372731552964362113382392517905941751522476564222573091502882212420105537843951646788478193082049939991309337672371998891094170290718000610345730597374482818405977421167065402223671078823525231948897229571625575270997552006038102580601921419363909981628114055343993499825092277837741833143916603106614925343172487771549792538171955288575581532444631794285438977543877829807466552124249274222795303506793358582867016351400646598928696202030603145283881376890007132078637643512647270297285156623875238756504544668993119046667422486241683587037478319266569313563787703700612549388769484825378829854612427961395802146158117845992565687698513983698778613034081837064240661782218110088788572123018150047010618573113135284617780480653183615519209302722964133340831783297357330260828408884958028746778524453273764830850895315598670205494893363578948090344770431762746660849994542098015313983352721305178449288733644227636535909391978856503512070882206298289539351385721123779447527541783939766227865386141561492104914845726274088032029570957601672228314814654285506467027398296543604567736638991500675291264998534556500090780421786873163298051646102520839125722554883265740576765303545600229015336840560278614313783624162702861713582489792187117580469048553310407945777578603198274508679692958956935775576189452185290820543298238116683219833833631415219805969037163480653997809707995267479409966824693282765259830480561975153110906009058182494044628440045062763167655068548057305494911668754790050655487201013123172966393841785740564215124293807388417246080548271822017398299340350779266160432484500807164516513062591705263465440369524627739733312910625049896989052328285639087766821617377993738425940621455274979499149761688518575978590785839455660663257625612372892755888638339151576043625971410081876291519265189556242297683940770213640918469007555399696331213598048135780184441285030974134762852678625661712481612816513173193881451915578570981383072306100361081384673833883533495458763446038124832158141512508672249426559216992451017079279494848053155310614765250261562745451021401484323789185279899010428286558181654617272329069558428434428254471673768456218721506809872534759681511612354439386773448272748157576756653221897861587781721211165019832185119960685196860271207467591114590778359277868222021113247296215372100378622842426345036968527909463472944558886547470395506635218531665368695855977821221439232100980150005057184481672930762527549308903249632182930416635244736740578578893535671718801838372559761340752028363676344693951863852306531980082976251073886833889373034151518004337063213651739511608500205012460507235830335515278698893271498968783789289387397021328861669551294633917865475533908328403186181404488371169758936157980277885861895183506914390994744489178252831620758013495458870315512938137157170265608617595242380915648961692941432353778137681669500463212273497095788689305251199278465266594329712144497460011086546930141066032992609392482565666399791058198040586583515857386479215220948705318436150848328607620816614724485213060508591100215626721986469425906143527260998933269784621286505235451277631122056354502574214666189565324165561184965794784390899193770921930776171375716695890692216566284505065560641530446450577556705148583539912411695726431536580065675566450011989203245018115577397191300441433807333540837390652250026462725996187570585509018733621721483067456587598792646411546993505162768042093715723168648016962234082935000561055815923178541689001254956777219207066498021675999051969500414690144404842715188222187412958048637913943908079728469925845544541838281214094959600330035729606045705849956836743672967425081463106562511593236115510043367876329157932090551949212998176352283170834963819547813426661834104072052681780994893362803167146776505206593096100194091753305742514944464547971065389240268211339554849239501159535456304382241822520537890745947079413567993911200686589539046157233093732489297879287019294861309261511147324973098915337670091534760939982210396166376184807529577816356843088281853082778240771941513710669819934803035585933333599542237941497975963643405167748765451203724120557169686587320766032726894587091045602953437259198204842552599269001267474782056960918601517729785472960413287544172982184714994283680494446177855197012390424392707114098715929421553310589637868490610531830273444619156459319684027276584112951759451627409306086678034098321969832585235649460126235736788740859162754759054688137906622412180970163934889936426522239168313876399240370789716392927239393387333704605102893930237620273187316937988358350887321859710716622385185212687346961223029861543660002124717921906630328025213278726009909651432364166209065206420900713723876598959063230158984026766459529699997049391228143818228365637398058157106421551086842824492044848013110021882525484426564764276140173096615386238837880006075531025491172812981354888475619442387932708098617560265422368394769547859654224636486133339273320401944062368747565109786834198143080271275129566854443580472350228582221389668906466089693508576316590403099460281850400654590076091253980174561399411846106465643839045266687769021208204869533472977436531645983256272677842680285688145808210450104538283301484385842754431418719757738605836732909764258259696841139976974933058811220277094227676948906848951412272219091152737356627208365250253607335844103418948482446034039009608488246534103838323540890976101013776731675133755538685264973339538583813843754387846122529390841634361789086671617424322125165252283378291257560139341188857889959835628119687627093827488311535375774627412825105698956813571864239171484091719825313218367229657005335558760323998140280373564674318932160829270307111016891315124605178335440252895919036391433057553779425674516842156847920787347714559003187230021349818813369353489588868786206098569372676883814392010971949345489846213116654268258400878897125541390867022014750286489918120665356908048759216254231409350602022993219362648686881483776147355964254227292271393500127564457361989678280548603264747408838033297260576943015162447262756703363775711834260916954579140274377332828623996070749171723505935666459518653916313774846192340058688660249013323392440577809293582424859872560522028668811541611864809719621412178834738247282689446366680854874036076935865851199555021799632064961605309603416539425500303498215095098452652177550206798373199612552383830620776920079774572130525748046768522262884809523023199900219611190760622670526947087510789213284565120706608111945331335879650161266201194367861456884665457410599876009575994814876069513919303386132878846876658419472441584372750655719956760162934156872713439083880457859639511326216489096160333605105065524788524211371011920657913793365055730045597849992459247998327284911000837707219840784292566894067229757137113542325331056908572530174043898994901478511829908349848422011477975410911845370749509068661097500636330052837761956846505691588875741192574606157798829537999655543608213121471643247576668082683843580076888258335658400894545691939955669449534086689954941209459723644491007013629577845120304126282582486252804055367990698277702927413443559336486299101305154710144793653667526077195960315747130914441448130308064865207307708267012111876393074078892465585212238632911494032244682661258612621145792530384902814638729115273784423339932497350798409058206544889430187132044134442455537390003823634991713357834935215784580314435027893600961681115362382676144833135816891717562053793726018943644464978382880264508053755541383205361559472145717037272334537358896513559886493088852524264871711814433544452158395558219844803344323251828534086010174892065077099158231067411294961879883066437436042481270375718318941100823255787114101376076628944365736176439818616633992319096703478110400422275875492922294303203285511659573358248243103985657754589004898430902112552966659923318358889011418623690538676277405326301898116076591382980562022324284547401553780477739861749666549155538915214227141468868595707209652340475089393523675773075589501798409916187853779805417594407975713711898299020487197491375853787781601633599112435331646648034458467937336854282479631597324245120150497195863890720377403162943104874826094245587358088834483954549379553069692753349955983784488623241850530850178643679389481506338338264101962077173925476494930411856645358452203452819600644245394421119411107023657368083503086606383647133684463842573154575367967756642017194391482789120243886634596067886602895628191086133875483894131646086888595109140213665810117031868046195120212440188912716249382706410220261742442234544258712678569579030426976260651363497870481720643270770943886028325664911262131274334202053089867939360172791127727052017637045252492139604608009317899402696292310043442455171376298847699253414522854655297270432792097880726258173878448897114325340236908519421251660429839053425109033110012094008150417074668643324874990972079839043769075518667667618624815232548835261180925269890858953129945290685805848706758805592900743214409482921395141606523315957989886390744832859147743803228613872138262593352954819693848958176536627677568348394996721606794511323685222721875887469923757823644599390947521700195043221531258603284354871391273348757680679888312815658696290352959063294972633585131023051555913948040065329941175382694002738512381776759997314538700084922211338860865830946404127106031478892740557191100223143622629023890462802821421037708714671591735299291714102571450645255070222727328295454215411671567156777445212236333824984914051537328848443376951593108775817297307419780596034882304952154495767511465031520757371386030519338369664394762070794214691711019792946394323974468472030134578119531700494257442228531973050320155032794250063871323896947186947720943561796878019764835640012314134873265268151205583521422278671473740640998343568246594241254663513916797583527028115639673528435201971308026481745904778271289980844650771123325593347299787557858486630163474846196243621039893888402665346963537168171472435293147274297730214642594012348191287021517493161479402290598410948309276024847075324754485993367729055757251600243646793210912415143515811582743670956848225845313330911963377110265063865013432008071933294978923558779810337966830770134249578734914861579066784899991940516576464405461204192434668720512294620980466798631074596541355002146981182107933625478701462270925061122678074827630047647813615292243367865029250687005507114223656761036178787766107008002477605339657765179732256155652094417405697974042094146193417466186248084596637102247161600848523740723277687607482282881337279089858907791065014711304919443477162039483865665224968209195333433051442948991141715782216109529189722703113440436393393065019557394354253661297189731645032619925959305454013107044543859705164285938296986019281642072484062560779352072402762973235128438977666274403982699396525483455730235622072734240298613651855874627971321874417411516241445052267778106489322198503892130735684851297385749917456606588151623825396187018165540008683186092078809515011993266985827688246839069580548311472205121487371909572663498070466768753980959474966611149694084133919492511828560434375426225393238333104805670037941153406442988116850000537023846528901378188140973670955280686696258294733425777515404580335425371916736465344071510048024022353842370536156565210379320680577262229557890519926715582077546289569058473462717843172894679483634451384557069303922145180376316209627798864639035447726537154483407797278422246173980965943776638664996725267793961315487494796416935712914030852165526586345434290112077928929105813483757771591137086387704262015323088912337994777097689752377074889897971602066667729736076033964089204022805724682908086827768755351567578073987858300621772049422391525829941266358172033965233557598584611618236750886738694596668270892065528023702886746279235355264747033010418487288167615682202651068772219740505931623897885373301368059731382663477171834236567852536649579283131797297612584050627353455843844023690041368178151242727970239187743724346961244384565350580321804531495969547167270392133942339444576528633752283631107559331399201919881226417934837700138875285717133790078574938066771389358676840220384223163659263438661184546308089515221122214580239468729490841792777564741787264598757995037755017723576848449730737110099048309594516479269423587683495123951573783757594837291046093134625597576719870795355009979508422864183655951263449754770478425567213490346711802018772410655860865619654144206842163369108095437511214190098211753853459153713046734680919286268808008903276225247303391639728055498921399269660588334177118428051519013179610941389116847840457594283764408447443953200948238060432056541344760407232782847473952770780708538659138591206203298527617226473233312222193193962948344999820066549851050816232809482657919901418837241988548260927411691524145545124057253637220251684298124316972827292205034283830122909829459079342116748592376912869670634459780097376644635668129316266351981706005980506949747440680805350429188848899846801914535367069302679016989011799821626804006322048320650916952086209209203049021742004151878863334242602000271685916240614129971538154068976407433949508737117480545558922502292929726337462541207375531950317943751601996979015953932791899333145314293717858334175354303553274043501631651145110905729213776845336244890968513175204263323950929932357588329024724794357090092379096115058724964732064111083345847598866864468226236480840667162472309745511758023028226414213256264822787249177812462416022188819293983091522881964099791964057563996063478431023258236656379897597349108987429709087003185533004240819300180614058250526127616821830366411217655845102280970507982335237793260829797816651818422250364793307389209949773391364563344289676223669588813816641990113078399867922192290513177081943681038878842366187442759788285548415390090785063895489162167565986492425265166100978871285515963125459484749598077019510350548838513309631230349718332173176955431053918437459701831945153040207823755148476056295325849733948313273964024017684800779293281309360621254301305693129907452629416629661126796911747890373047632121491129652548877036534458390644346102751559001980164541479967509105723078187859449050926581905582430826803434384325505168535591321867444282768649706940487156055547904214929019896359654517512992922530457559604665564482080431553655837704670580510693519685004007296058859053758616006818017158495844584312787179279432105861899728360931815694570051570860497219741001262256223989572753193965192449224496330190379873023055082995604405672252684600376181381488734275977252444265285093476127476380786047359367703856822358158257892234663139803131543049121944437193134051859869306208532770288768135338643938123956082642710134632539182282345060195171443325461457753188286222426547059655782071627604821414482394020704795463357486981158579772183847419524111951093850838105914165730669471032812732100323334398839370682763756326020487150957191147875677384582666286789216005911110332334552893804609729762272100651907464070897747089108578584647919291861605707693533686640879401385896530052283861704108587178548305321274971509911523327534894390054717235659278278392925274694058264738382495856527876850011806404833147280447189981105331727044164510307753720866112168479410321188811220980245503371242817164798182927023011152073257221157576343195832781127382601341660044056516936573055406319780765063412123642558075544574266682729962263124717222152134837544045078740611561480512851555781318280452656427968633600573724873478900218346442459453226559902108243990334486354326533410092958597158797494979425956549240594871578684425928743839934597272290392176418783358519481221762079481990945199702817128193027337613578833929357839145271741942766877472341797071938173183601141248013358534650477056270612979588039685745928468364251892518374995375713179275425932521168868305526331200955282045097351673727871889923037786408905012958180189387883018649530093296221745434447058093678007751610802538202773947815061867088189077528300019376104750965200831942663413402683558928115981876318944938267856079041375167981637773555475726845419386450352502784810880811877353883564475172543696787277473352537660209091585378756587879390205438519434994080157323779341411655379471719739503920965593955799102783328500420826602500010122521529574554294660946202230389706873274787190143178523034936903342087652266812309909120076621197157665411359047728173815506800493556220059275255376312843896886570703239253796514253492141828461722726213348352548708193638673121596217002190514305332135234697976439839855489030699595951611024684821675210374496630653249427358485707628099487918320359627962716268263514151032700147142840961847031085315466146698681136505024091789730771944545888307929330073403647677344978302131637515479716893404935798547465652649340569039094996713488613017502682281371507147651915667838487283922950934118833498273192095589884412733939139962839079084847264219121199635613238122736780506010880569921873622334985748502214861493303980459333728324927965448606587626347062284358999322169522855870090619976073453246259870843537063541384808997765758141061913654391334100954410310931303471671102013420665664212206341121541103136741225461130201116801350865819703305306600702882297315259474694083099811473409127384309116283801258750730179708433597429011240594280128750768143886265158734621022871607363847513099475094333191307130707400785219968705966176694570142379340535666916974770172129426286803726166494180427349097091260146012984842904242312203067350447281091976181604053256973594443545799557262988358437141215989157353464542198514981973407784707191592915717090282208119858276097359025291377940998588171484291697107525687705450861118904432097035444367222934381811726296810167081989810544834587688489814068300410293780335243896143936919751510149626087899119391177648554058866084808788944318809366061178963795088839303754474280696320832681491656770422627206743916742335967075074014432043090478059362401454322760108805066795356583583385075048746292223251696619478058362848857445588106741233688217222250782045042606324977409473450299457843108988063033471161558764689335915544644220309049022498616924158765362872531771273968656268409327880470147624008653136816899099734351013299887736736090908643458627924414650919325386838810257739658593024789802991186931166154062320548931449582120644501468435447003406035138325912013207213371917761617367176856857740256422659046206892452382149052990450120842463940598191047713070107948658376163317017467631257197321540507808064451004473782427984306183810885544902078960951753783423586554320450230286797838840535570452296754585559042725477410459794663075603882790316820283836355900660897520372607307467366981027634878401646947534164119417358717197842837702467731039340646474760126773710865079280638808006690263872818052657849081500266299516102763737557482128281447796628918469770271590809216353196346218735460042956921956259187188926220590122512767173616383739296990397025605426883572283366325150102992325590526089276460110241621128428918641145625490887583356195571853353056367018058286755281910067202477647818842004790998384072647397514458839963145687574023434082047685992564271421433399262124447013923587872029428716237430737155100754917070240627018843510305342130717481795578979842334353410866722636135116064041265871418524464795694330648912797863550089909939254107678935506281254904390181470038326939080070975674156591887655106887694607582933056313638292746311927753036566762307153499995722736574288393589471460176365735762766087152163997198504848515730008738620918578754334615804943314846500051124140876693771499885289191564680643403057879946316392886003938389387741965840284969468677831664176694957733394037898643445603728765064682000374093033261520326044164582826216805976970127776441390919049073436590482985267779278592239673526525036496594332839081619874444362015466041288512774193123993115811496357495152980285758480075311643805251588198684562829562280131547556844944448613625052782782931307765094263892055883071392745256298161164855075416041496308056493592413180495727121508852020916643652418172956722299195568038588140399416313916013676660948265149718206442451014919364311658039874964932623005757080136068798946871855286227208038294588303424698525047254885421022845372834409673764139010215517295646233576856719578546022038099474366839950175982903779381441461680327668383234987088255060862062020170333582382736554308924473404218631610939206213833290552887329283551976083300061977510025039146386688290005844166501498318711888400421743549305680924966266694228561284585690956564818069144751212137155237387584951338112584315449586022787495359945890629882164037034305977756048072690665493419293149805381034571458396974547459624452454646293733757972109954096422975720526493125999570341914217182968685704866377211404383801685326817163723844495216360226927186259954850613836087768152067892921109057743902034153473242369297021026808323790438863205421830790774773872792793268414890535864219728040419289501335490050716871144853330304944914899955903686660923424938314481465515976555411793190661612215091365958628207497548924265772480482839404001812460622463099485634415138658357551604313455308014625171925008485820230762394658016455466005025374041261803172071579359274970476095379180117604327417150577663227017519188683277760611896673028506030179862068071831556833039055655130819897082362230387301416906919230124523461402566383177516620697089476343067132613038664171177819048162897455902627875858011778021612877532388476297100694446342999539989466184779419818032354983863234881986248022674879566163018779869518947250473915296773977145821263914048140362543802034328390971477207785606884153632155172026313074688513228560766071873189804546640047739564733147255616961116518249743032392991312394302528259100953430050604665689708139398196481351790108273980117552091351512860786669921203938575399704975551932897941403815348041327604585556317150373513381509045391766333747117593386374429128343632595399038755597098582894238640249127752495407324174604932285880299829229255315314515728013713261807394000972027699239071791186563489218631631490600759824428645749506110804736628450325934541656058060036666529810078502471896742303149054154081687952309574457571190512269811946999847043596428711791684250204943483633334650805979163950030447046868271052092204490343765518911025070872029382661201973428367883884013288615687052262541529334051147260240435035362678868965064981609958794826978655327136632952139858714191313305599932641474989264421099857642389246400619505127229357229525079322493488568726305010549410241839662867033654205933800819147749121131866766808647148025221986428109848301060328478679921051163917238848357488355020628368150756532047913070326034034083550581009325370478371719033842692833930105405675075330872711947356688953149534601815556364042232198689141946454639731029465534736237496653812995421462497037025339433467281338850053082040643609987917331834500244565679779968588355388714864196851580147560452925520362678958099196051702067216354275059048548578251592703751884451399585296317401000536042016027270020112334436037920195144194889853314402783244267203291917749131874475803201645749006631255990619588513981838128490124046096520570383077065224397731867003320827458137361274225454125922340597648552673720595088412120498951442966526199794181527748762580027297406127271017397097565241032607432071246438641592150921293200808172515579009775001242146649526585467460825710748778862873556548857777498350284431555367765955898139421561514355125766693984828450073546452767324163507280013895370711387476756234827059957651279629695665236520026584292504230188120205689395085847781639655241047524053463444342868738323498918762238393106260637116118642800823241835413109802112770713399662374471964352759432194341049122688875002978268354391340828641401319465818287139297305928171898677039881156822308239266975089510927172470952861665756046101816037162805233186225765291295031062486093406491613363728595596744410900990782672275203967894315187379805675279251447992700740595125163173832934293708255277771913939003170038682935569577005124595870446997592205136414939389115585150282180791503780388592094880572511578171570374689512897934775791565287969414348917180490541856474022391148774276945627432723618120333344474995810473675143878996596565112647940971827570707817467825899402003952733943672579613227657345804731456284427038738806093356556613983225726389508968639479894701476782014677349790506802925566236831137885683421470762855782918281043418437164622100994211691465633044791952856875596390088360732670663059121769326710228511625376378187136484313348502486688013961609213206573408579258557879229014897915478321799241787255801396749236829857538979179422791855240579808058213289366962338357562095598749717161696551707067650821294425080149607650625398272914823557662221260453276504106913877906417124402995804327215790157449397213520372327721302615289257591012759294104227996230336185395883826192965659099791315907226704353860032850326526439398707676320045718338307160727187964185106629918532630413037761975213494831065207123920643068439578319829453231734035677076563528609403536008973954736536126099002027199344204165909427996468544394417048210904626078431425722604555694086517754434776765673422499189315704761492016098904462131248897827848110192965480076347445824276808944298445729851756471699025333591921968996877313120314936306857186078714539641707290498543196507236333049824079973659165919245395957925922594140412579485417903454935321379575042117910508133112384677599114211337152633706213624940792273671014422983231445481846299519692074262374596330950273108645142567126863757018782383634751114230062384263632330358496127519241343171907168077912543692649666167930646614684690575510458368057137554298533404608608696143534216152913460024065251219334048778346372658855053711651048005900879433230931175115949213385214207106653611250616747999310557967784985803892719016158760993336496520850086547026603227636216104251123356754111892277706851174627428689099750621069190259107292838601998814011056575587919218480007606525596202751067133402170319148109548025881957588747281522314034905922021238841844854841260449493366304003188385028751967108204694691871656783732072790319613550697145992662379662982494914975167845290205000039922372723690488629787349513996274471183295807486086506720679963472913692413235472342533237554038735673312135761484362998116300909669807027750063815452337879234285922080869292614654197292525306824995272324906395809270572609480520495283240668542401381596324448967891466087633061955348727578622113888355429613194488579819812221166396176169154099584316290726119225755527846469575440480249507099190090895140016009019819911012378032913398116572568740460293244791910287593782966365427392554939025557021166194573990302045569420935296626584836842331761001549727732601285781907329762223900473581378678174412140448058170060937550830506434873241986436053129162653871390511277024325535032002161540947733291057402258961725309077241661085330217119168034065923141685965154857522119220615285698648726988349580465645815182596943663258988448775255897599743374060683140312615111903645586482440909568437078431828600368075146726441809526978211262891008040782974310411868074470942104035093870282350619329110630984352585222466787945241370713244513315816931259021904583503873423117300573018327582754513425319750963439484976802695771350395012218745042761343742470417110438967819310611446202266657515560371655046653557614105473259253429251446807521016141025417825439271976842397312920159383623721684911294329950779105741516358153209350086533567838277741240941260196278747753860741568586671199653493370938556362952983244723428922169861907918582750050059164520264719520469001072590092390925265393052614401362911438053173391138135603486471734980598427408250939533983060645283044516829697467272664358002509887695744741376358246362436395304530917293964694792876434076277197980474743238174868947188271760997995798488872479762736743899664943047468499227859902102579117863625710254386446536724819111932015835829143242833499485492422847153906738767650145918155138570371373952691030938413967677982204625322957531546059022021272373358994307640689003942606173824550368366514793395028740432224320410365721901834763793691791201025050191523257455483536432278917980737623848615877486306040347450797830195293305246735119491942922883105150291566496886878834013916364085158808425688844681966098927337423702838175081763668275487100218059078695846295969930510355545428126277643108844029383915055990911911050216194774161714491672102092613889740763388378172679634762216147117703723072737364634753690573313292334503162803313227084923117204055914051915896428755892821238525087681589796252747431023524315999089972490936633331406088317618121079145074315240025569065737880908808746765120180893467306606342692233003529742435423053697945918961056718252045853514246475288550430223576856934226716348566829106421535373231817766915630865002117108508975646300810813376597678707361451061057996553277407269204641657397772387764370395370021855759209915701364688769718249923060402062078142951795428931927758979579302768335984103346832670958602091171960644261259618955712942471219420680766664214958469432856391384733541305583079186407287486968896115779337513605936575459242847560217486415891614449003016038101913243345699584170732778014755853024162565932514453510837163855139859388390975144146858598063112860140727074628259094660721013375164754261055192197733428515347895784209962219915909317993405555502530222025056457028101256960476355643600505123632954302282851252135329375511991774233983992777667435235614153209502573266294637280505114580989286298981589709721274610266354003015577860261893656448337321418671561283791229417179438292055713173867839662769701891244643897353249287015566899383683021239951369418538159672955912799791858477828930289304160002401657207049094019166418305731702462353700650744793133952760580423327468833114628386822792884304169179227094150246256101029828589257634164896680727567676307177574680225112317591680295669890933661582970001557414080755298711382349765074420208185305784416023850484559655880953479262424920170800017236194149789149343918749107878329324485740628322651261529169719175323327942416225528234458896915556217353539946379635859645230664242099186436744178640949467569648746395798441361543893632892915704155311237706421667403236712694466088314285298272015463229352202204701616510628305349856413888220805310117307828124130025982081808177458586755963026276545186955651330280051029194679877694341894106667334486983118637334165688375450080872405329876253880646772572355636479608994479753060215419541076990493804850457835053746461490287711953890761620473081269602651355838358223573210126253486879774089005083020398272907910751819832558181426929022621101309036456146601992500217526193052076590181077124525536254896204600874174841283257913356461443731092648530574756890932681625424398102786622285111941274281724217364651495755563215077011710252476622767735148877421289330219015961921620530879024427246581292662703173000925587592332760293032373987579586634144180248008396876604385663803251828348871870600986652663785495766226189407083289278501147533947162173994873178561269220684139633105604390594706080239935101005508844540512326022607600308657198991564959492149132031283858194823595184043453582002671319695726389762975374325111134797668876223879086346804566658458203762836967842388827953560485294136085816976860136869353538025249067684722118033682275874058587138664037003923695812431817750200959262532631082377616460188640868420014125604906494384246878786213542122492786148174980362595300933245436738312946694692369150987535969317140336984083765229688959045639291239122657134815902865856758888186782046226233068894229962866295674041562144872835894349121565047539682308448637553449451911922831297079393738998775089051331740255282438519728867673364815728786554244031213658121993112064533696743204903053347830688547681734034610071977252763908866467648730556399157411460069469152457640932594187917479197837062374567446502526620271520008528243982148937213602032980900807476295431157128963531947717253807536609109502700537057724231518833390707395169993806511144853050861871937262708076184783278768837640113293438927472986761841012060908009710309480908761352178793735623972293038511159668765699031133397541195920703447819633090582892386976285473552757497771540560109956761990344593386950402718834650435624457865951608610639013087995775748577398924904179535860886651129264121207783288875374746026639993431304660446823917134517423492977181356733451450887227989176659872747777271281094307372167091342544158080880890140425972994733332432430855850685370416976528024801093850644545298273959797545493214416984325191377208215772569252066106960090094412065634572496819143113961561536289017755212044967417169343021022195634081965109444359154789079797699091183366546689495835913671613987407005515272373845746758870308647765063608462541600311714259790277622601989249583591491366728677636936577795105053937862649561002567593033311018453020866854810275724539739807470205876215755093879661757952481976178687772879853422009691395833981693039499855312188888023619626680862923174043362324257423063872141999631244572678925568550447853640695919494362418937509717175450364533680872701508373585855407651787875651827574531666985959039238839085470054079497461586331340325460024495128704760607021079734867046872556845277022064349830670087509145236233772008537791568891437383351389878545605283799047437109523696835190448586488456298163032672535769389379494255678384266224955829425989280042322379947810134812129333554269979723928783906211519211664755692239895055274256249743765633150966604379846790251891723135163038212008478490967948775757766524037894887469694360504984873342625819193146252719262172390646982721372673303186466528270342105832636187325930674634340110453966223693092591092278783192974998646740380636095502030723463798193842428702012868565463525814388906334704992525549353961672950398120889716547602793245965109852201928011397010236771050859195579118882963521470466933789826960504925869017687490905388123843891564350740971032282374610510694384651181906616670318613204432573081789596693806748793064630370373788541432026614233156470561202928674631916307940083058785809697304167629757240310804705439806998039631079270979592073226338356381657069897737184300389904856166211697178009276539537922483696723299016816835925431435724103270710118829412764240441302527530851967937871553919767148816535197666096788722896892327188581456531982292503998765900242273712275492496977060145927566063972995737178162706495235935080634490620838768917092839664267226767318282304493601139571508410358428581728428651576209897724833620467446636572803509934952403027756154735830384462816966624498317647043653174816312005147965894197947858109274017565461721044448586856533331396745289773422684683736360051827784011450764023680606356805779943119479422550778800759868464651093562271695903251090426906974863710817064979373501724253486102273307165413160893122308845142555267542080604864086293525304943135568354334950206272610984363460126434872243737390109089265965131820275359568871880075337880101962191259150601017532870131095785674019262465594843647187865166928890208270190766085926579659617078928364111697641649584545032825481455777857065058404263225944119636985698496697824881996411726887255650495043496162291233572029439249902700587487825554599366096225088541277659405985033821196518969987564348563045040493547066159677938799334090003404118273042807228947149563392237288159865198458431293761652976412528268239740712347526301027025692461225702897169385487323621850793994864892259559499986879695261508543266480586603979006185054821608937989652167278050618729556363444839197588871129382624933183816103330209310824192717336189803397765856617655773820588827815045661872212162842145757166213915219819030652830705233662269533957741281998902820399262776817688779577288840679210657321278872919221700313446794920330701331329594499910841132692296559188452935813230886659350761798364005697500910582687333147070940441835240279131937709124825229435893475493292656689835557618650874472514192005232262511248861498839185845278932367753605080238657019301874040788419996217226280576205102222838887447988383600042204533226928690183386708477648233977288900905614020907934351528924167747801847100741866722608116076396078071130378343195624410758175966487547077593918934019031843219849265547460040161536116716041681700201097709623699186038709432195867682272565002343672325611950300284243183418467465014230503400521612611407313913280695206312441952848558018431205980966842748321094796123846149510422404652724376122946174393869853104264295008818711528600100618892351542119864063419702640242514775501210241286878078388706626666204770049942076847698368783571107958532555103184960149680662986290875215557563844528967420015858715111868428343630394076749997919275793122915650881669903049047119117730037606776709613346068138057268111679077453068228871106956514690092885471391151748930192656139219633325920028459590954477419178802748714433150488695949424264881500257760082671931218474853587045081924471460329290153546956294484256438153543729995045814286106270857850430769680698518837976248343600059291414359787619013099098916983752513432891233069483831361659860317251253371862476672265009778850371639603193216185965762702490322154426071414947836319903570600741441964146452002906725771253824484189791382597341454882620507951419778533003024665421729995974666387589235671397630292571581892371113915787942571813073967493369980414228403168952286807442302601350871148948062843837045948700954725870551342375569664104303123219794820331394362616532693118304501417816420973501852812822092142358517259528861379702324838983375506941600366070847273336407262535270872059903998311507675146498090420818219876080152025515936753423075446556940948004478480485067993878725548866748045014561872710345598770060476123569715899183180703110724960703855026905759136083832820323012215609402059567799594221640424036416430905137735220954336897165646502279278301617783789091170735325687390938731367266789216363404655849396631765838663849958228464053734625662541718350481703331259937247198680511762213507209133953922963111044601407023503795390254422442730985615493755757814383380870312300789758290997865381537868024153570771745725852407762776668217813995876969560500645258487013638321259861069778556534882514703650580762970562364659432224296599886995904001325598125214292793774517339129852191773585794120091463414844526296365986638428731520052800952430560587051325869003367314444227989506191167960614977040660670200537184418101743552237203198130088532031276251157792761247408983487610735904298183433687331981515335382107508859632801359050165642788122567775449497770125411837975129351921674624951846248843569394400990110404180148850410414946682618643153924651923190411071382301482544725671499809416233483823827995367481721744671920048318966881423607059155057095906252704152690328099087356141658605329291252464363748387883636460450514905434635661744633870787294737133287094479769913538874574222384774323332204100354811763068708289061977217216768977686808413435439745039341481833092895130406460832442658235014175696094759376833757708449017413373674875613045877123335660465229751182199913212567469013203888753074113771065216634817164283325797413028564164675842037380231715352042859708621654202428856709426107273644212047585679147393864238170145400801421696304647919786674587917443538451887529170922120165034230205292464684662257481510682766272722273355296795690960768988713652661252471254215166577792006553538681592466893824998870019490706656914233775781887240725596744181396743451780269471582972235274241506449737521591846493300764151988275111091411103242660076466628428315052684219729935632094985276892662532409183976464906173312952846404617559453013936363542088386166644592764964772186091541002167665989769745061894305647890911685132544171708675528894366236677327159448267662439528418260084423705553717618655580033421291771119224659769680837731996787903974212108932007647587497375229459295501636898305202530526236908401099917270231420772960385541966718835499748788511977772169351226125179156327474516268392485733982939115889980783938992722796202669863003207293812249421960676385394038720025274225713538687727556184828096215747559889728118781946536078968973972153335373407449972220105257018846162052233051932609075141048324987207176889367064824925008347584991261023876495347079958405121383555966676477864967085769654819086589324341784477402202484807087355787893188610100481776051061974355199907401420065737556472324803063683120962848066225188702408332988234657193225647406896943531478713880229787770355375487593870110241423362648068256319438237324655335616818893558483020660767508209610909273661974253077458659517874871589873450030248782281493895324754265160610500706064032402623541437311658051699828173953218543796022713149783460868813144252740364225105802322278523218809567756725373993344022294384131177096264308636931842266440030845694313504289960506208808628721214690610458462256683485752065651051694237141912513303213810441554473579416794798011090149111581442248603798107676128978002411766913147938787209111706868379216448099578391322382077969844995879534349695496489504779511130396779782896070047770614555191116415732014251221486490480569048448906397695216228875735381646723156982382014109594229933780442735819214609332636767428822015723507292226655652510388618204590180173735703287294832475571333697683277547856373159862073533518978830604584795984735040990943428417879691515611247841104995180069395268116850333027791978605745161533963075095711118568760614742681657477281235716761804691825107191688807385565997767616947450785385085294658508294749922050289452090922552615465416520106626910187812590674464679644552602395701571009962655064494130638805456630891482418497175223635088887776768358393414142622236187972210992476956341938970385511326115507682660736466824751823920087107918981949369822449832285693504749636520937276156475636536545614140332331664451200789079143487134252141470346086642343607385236354557871295813940780793846515604353856198768357118349225308054636634591378202569330955747763120331391283897348382550738341579461305155031280613300929233286091363676655833349256193112359316957856121297369823209233337070677883808864041565114600884274657436677426431828781467474842363613946899362979181562938898410211550954472153892306627087904857515221322922656179633651279604917064034925281088983155410240702081429374791319383711972031552324937347548404339283989003046769870933890690283887971852196001953326364231544038465597963234669651781145659896028585964763841014639983690919199329087440723912254853674900737792682639361345424876687871707776563904889273410651834741782320609031174090453615779705308316345053178696531803140164740071170393725743515927757693095310727351905265877369445441024955848966792687130939642341069831226966595414374892875872314507206927648604886869405211158630108233249871732709413039447083322005550733328084999679248881571168765513708535770922425159950260723037305181319080742375084595075791926149210131164598374634941665536481429557646736640231166364579306599602952788886552290584733492665962651533316246068026716962440751271352779319407048665273643644908371406055820357684554553127473236397769827485397298134499109661792427236536407197367981404086745694730106631873900595357803508426963372087528920000442402402914135452609346194012355907060399695132134947181471726213500863080537628257725745306612504109573356233245123467778511967578744511041770734083607594137459275462769511958627212718280689240160941772793248477483933581232593003098482753262215253538093047661013075706754751367498604763630257648338585206955048389382364066178317249370001309527165085378012847795823540778789096439578384018786167978634346984120990860385030037113937493131105051179851929151619954757466495860167776732745937761753785965713675177716920983816388633154896119894398078819703719014380653923132522111337498225425599648316886927230555817570738781891175937817357294909061752848501259484223249352166714243419243390582454709223811609206051032182305052765537151040117723205831740531941423477840789693136442913265508679697359354725917565072789678311141562268958631966114658634039177794908586943661581894080644920031750172139798220493143321679390289759285957357466099248334704282468724588192493299301990418287092123712324654609319110189278087034735759014710766691953134482890361382063927299174531614647775086504509170532283212155331017112631794434241207001109085008675546831604835491164020158727180573189562297834322477084848273776096129267878426749907717253563605391951764759329153884622312045496507975856535910913203356986420910282655806382530814825053487459175311681714321867502678621577963080503054359897335285610113531925189827627787963704929200479537225323643912707946665294319209004241806034544585093148035829607037550003962145076482686406536213900568465905361786473288819566314453597971479441679370745809117906178314472584936516697103217798065366063693894002915217851540035011386648451610453999570198272990742408617961641792915459309497495327706933544596975356030635573966113362714348455212444118781454271586020015508675950545018893831772881857420703038368439696099279332492827681456267368737948200155921006028344201371961265869314830017223942593985095406014576305549043587023064323925788020897406209445401719103625131076560072377075975285458716927490842103368098887021249921441616419310529398688687820655878020483721362220903209031477508323846736323957751817917077315178903069958536626418029974708849092786085810933686888319519308096150446729178876630665418856031557864053875801768981866650268729514427829718292959230502264173099629445031926962180941071055964883089630024286084999855999500517582179188879647519413121996732864955968657454462357699712458085639993744994956935915327969438600815636632772369753911325799569439505536757114179193178948910426145726147934249848402814778510382938284773886028126085835029352652240065529735255131234399242457622757360473634408049617635290880994428515802041427252984000722789665124801230981723362700622125352230434884682297974414126030074130594569441460000104232848752195624375657899590188273809436705834438944011315286125222818206238330378516816841523721464851669758368739954907208441116686925255221439498275878957405414624459994404051130771926914081824212017603635002350269168339867494919913758544235137102725047181416760150069542265842054420593375156162996470659285431951704165485652793713666854951342998582839191859239883893697811900744614236154108768697302483512192355201823380482024027305124433697962320195286493839672468951361810343110916967262533475385460758918178724797429339333840272772912111132224849273044071092368340698191112455182969572674818594170538916675185836755304230585935579080158196723260311213263092323307081654325163827451892114013878295621156866736851375117783807423414246116739512136888121777112839803450428057603883797122585919702591944463568264671649389559270602028200724892198624413882202249139178265226481799520719205178070741776909007663114243090274795334264566197688921611008292858469880243378175471209391700885246284577060308559312063772417652852608157520223645932930681547611227354491996655630225208043123792764911089725250255426326577303570771422564115628913543078670679197725654766794958756485040115264410839503853001809476298334454911825788378205297901256319453284860166792869100764268375257469640724583963177607679787357687078319212311982642357258119706717425754234946195904151910206910684904370336958088013496527883346886341308094515632319273008820786944140759840896530335752886724587381704438911082534667255753516310892417491533441272010682309741417527195739545101912444669848197321176111927528227456421150501498472637930455927412582210690799131406061040541009941658801919734154794287080564707394680749602980684416677471447853275122060417230234468439838476613260551690120457456861440555917607248680127498189574577250091694135022738007352885674923577451926048619691776959993303025982695570150022713820953529334594189029029735330851084014704622444738238371531181207453865942639762803529266390690400505380637714143949258339613005722559237802472947323951639461061670813331530552778080069104726572441214535315918515909077395735881824592357151346862344021115511236165508568338945125667757043633826647653399235639108175702898443293245017560314450636910029876132293401981196414541773861956960747759485962198460489310653452410579222068996689027933538004856803072745929982159303929925509606310532656200268438419787134713699405011699834166657542280399471690669384955470868057913018839798918071855103407190175270500366295612606966654577675097255233365646239316826174874059121294967927172442583385820632637798065744492601092890853400049118363446944330729572416881790941388926407180202205233343514349875222436370579843769367269058967645434314935977027659313504623457366094740066479834748102523543362680890063175630612158141292447008231501484698375549278584059017659121517351485233102899597792977967808256434416275613721395279986078909369960417562672630262618365821375751587746250012131385448834563328273574542336064063524596942372005003504208706807212728776807149708044308393524364322986158676822651108820434352651780182051320373316269343767486916846911521157739836992513099615996704338301800577331406622380557253666311131617652404661694713322981912102391089954644433354405339642616813228889965783323628391155953266400742129255286965014091376471053804111939421373737570216363450955629719609287187611653460558798938770340829038296909058026292648506846086585607390611765423040610692949536062987187488659691021797072094220895391386048702634743284546107666242386510473958149951066833779722517025113484603658271821102993559013293123761042862345102019244911856487721356397250859866502323206740096589916133935925172317946840328285575254736408696679305697844318916202172803256494893213317116786733943838687112965551840740422929865443714483139352160109330693532165555679881041964869612905803830993054554754152350698458484653968676519140594361084094548536959392457537040118316252226161188618003112487188810479738900188197357516696973060170821774789898135498025199296446561951713552488895286863649087554874311350240974363325555431192200396961196348581889560314783092864998744192767038710980226347997139276882844387070884299111528819928606140102146480517973169186962788236160745751832118022492805550297771080027843209646234261534463846883606181645022031710753664676167460891909421539161662923770944044185935151083393534758493467347758301884497213098508272953330022162568232951580339369533022789028795401050250412092860680010145607482664540630620902013331669328112664740905098795914834979442671578223649773803587176473819718441432348305800180115677072576775300849237149884042393626604386746296645308808606439052332514961343853780636892579400434145144891543742395986283818783595007261883638801070655628058996879382934431025720095640890430989553966147528119465217949813415021192765147576729612132855838707880065751607054979775312926751454231787017784116493125024046425253250111165064902379904895720340617565290817811874038140359434754173493695841645284993157931830992053985001151570564529380360006816990527083379396256777029852057046640856109934034564622990613452310982514708696923095345502953553150613431582001039959905574186821885078853864065196129536032555439294778686524172159976645524095269274544192992467514846914711964157411215804196381001798532875525901677686754900688388466193071626170680910682565525818928005191222254774736213929534368880971569444898610824187598411268617099065608189046534858014507992753081344143314357403781150059739344809361386881475986981856578412979584432222843343654665601873230911037201867671394992642513477640572536366958786453737701333278739797348117913999605093286614097298232770866651986311411811289728316776420300431553099116412849428914134183354532900099971071982175008394208908545285469567941718610598366003211940311188893825187605323191588316178007585541884919764122465203915708676701926025077950418039986668656385014222018872319355522073595891545731318511470105116806042317574307165451626339230013470871475241602291935747572404214589989495954039740429674010341116375962418303942743958387992768157184941139808299902470799455453751080552445794434842197130746614484815776605826584197104937666511932313309334992216114765864112672820632925817489367338980451991305232277436361438183511374451484721824805878608889904046094826881848871811898641633115258675810358813271284270587485503273324240069538745632065935859080820363569174317417122721951244658176273698880844617745698437574299026245467369989160487569514702903878325998822690080728857882227282309385391842428935063108269814092347391771036343639202911619907402529705943634180037040358330027514419610436585433723986229745742703829421306181024331389554505082541272875376974598244253447268115582155750567793807053855191622610624358055438825262717233922929413474863106013514533642981640915396546549274220561457865893187400638280692345506264372396047569415363877629904555674770456535758331277631704210010272766541659590930001281835370272889303088564427350276440419338260137254819239397372905753601776050839069901889079575275882754017134326146831980236200772361624877742026572963667925036663716066500805138351097664133526009488719007747485301543790576709464826309815564441275278504861897150580650463817093562987758184598498693813305863818259606209825083577570116994016204739050773703209270651720232070929937674796212676277590183650961066821656888801911851321266413508283210663802515704654062400443172759115239095854811464563566711665957719479480438148523463948182019234862245984237384693648524107981790657124444051105572370530250428803070946102233154342333821427783576015827464234177102770522263377460285060679868541825090514605744896199171107252000205119588790971733747839058258771767090672480026619620851046195202529877638298067887210307863515288176630638814963751535032337589249117711776614731552462472790189811713653382220468172402764908211005787564139552088639898426044136637664909368501340789387125453015486493120672554304896147587157328511702687948525334181388174917727099156487903796444537445131552845512053185963679241505048818139094334869022323251860063780387514152778773802206232187884713920810216181402656532838853367515434114822012623454278262010060331211755993537485097817964158606766430557763984946348012522712076469964667256969050874478904588977062380068331126790302709197866095557997604098799184378122822869560279915283511320007735783455113457614745300032454296338758884154544941536093541643208009837585529212246434864510719447061682885151914088997550422852750358773552834373103144705958230117974959119627967231908812555932992823650765041800960371243509984662676944838211103718623482249709088400326401260302801996001821728847002334993871071186454293060383641928721847599950088364794125913062632041369284338746271518971774129506464556436744777983158674927420685972009208043937488940046811109747745456776483037614530215650524411585194989381601770578223907797879186877572488695279884227244910806214050439115034547360093594907708098722691137370086021888417164633542740456956960062924468396103954089653127432419983220522407458691002116847156496320068484809274142234329398688057492915330253609287927040077472393765986516000515002489140321058808171894701319622441533116188603369312407218600416641104458719210895575212248521051054511098550856187314607709900254296801337877622351177628263417156207924342771642124629018498224221111926561352115789410522633491218819478332218726137096360718188981376266388707704238538460969099977070251336898617970794985791857476662250751050094808558442356667843918514393344265582033406572585816008423600014403751297778997245438813532814217589315687079151988245280043138536902603851142838191666743394110042940819329119912056975426766131862470288770315492847536406199810781510082965626111598219739103916944817274004337659274339334709084611117851358703519609247157142850670078499741929828205987897136798158454978011348136754865922819187255230037982942314609416004087412075597593286905718380159198089632365175526838864171823291311439167982828997462927696497462020280449386254606972208859506604992726824988270812652419435344580107508105794057736989062931831775181623053062425142300500761022732874335011162637717536287229531187933685300942920293421041697618909329367010140968980579928302567928201163552374457261427789247789147454036635690893003518194040896105320928759234029713581036770800924951931583857308736745673329350709255092716250732101084626624930314788120931669305092985433033737239033088398316935313245892840166469225176929686321693468219448911107629755668092476191871924919401719090909746333900964912070904076288091696255471930428886579708597754558199747848603452265663690833277421388211107366337511265502564922688229957904385202580748023070183005185149183846372806075065356485425053692905457320226746469157574375241642613064017919531190612862770395225261350652813231674544812472838542668438978958812721158731697647660902596165787031457841870739201982252879779740480541355437868477632224290704781895387651902604133357413305403929935431902060659999787308062384316374516172121901428872292788447232274527715938595681327215593293552815196116422542661421571063034716073701239425132987355560464954659707929236877496766632952477024063311852147106490458121774217333813247624810729738526108448622253108976781565732052161891361597015942541079487060936979673961958266894654099161736533456731717659768027281405491508417252355234334289308318963077462628861506412601712519769789290183035567281363430688143666962195352213280593382433944947157627949130237181965265939523290426733697650449059629291714505656001785164682641453412038856364900684378938609627888931338756873351266624678828384646026684670473784087553065313003791198528611884148636439227765541464339556154493082792875407856017578173457821741429007977158511387108468978586733398600478733083219412266186756751873607548975798253479030172237574399778162828332715554211162222318633562977107762032167811173351176047293224832095673470357348557831607365436982809492901257508314904516468567607840079365190456346613981577060997538975628179782542872523073592019442045861160330798271250953717229410548012653410472585130957072887974126799242770124706684306638545743789318212865007357552363787142288826938782116415271597227918725325507365359570229574738246969351440828629502204017225325369685575034978496851826279269869106263598309973279827356030701306545942791739205800750754436175758311240498862431772170862317210389719612737989875613601084411620572001982135557332463579164545296653301111244891196609435943005387457155174098595125954481009681307539558311592426847069744615803070718655748324921725085816087442061168566976633363665711164009207135949046797737505753857649873865315726979820420706243570736644640419073807212457113841991954821871437769241280756313870824762008156834113916283185289908869141249400824326822038307526073697401168576493977235943256659044834258733552507664132258951105210316570476349378360604388694820478788115500521343481749063025336763190280654344721362707379550420839721330070155908945024252633747362613825591520825127168640286002148844287209368036198275604049898355600695447284369636852669147814694331475436447730526745311447574132475850230301708912767655408641293624426305633262634972798737477677297074972472088734166818604049394399953734018905640475452627280614295447266904520075280749651836544815139572164826570994815316256472893934291655645112343944935908328174972797922805172325030201161077386318625270673137338717595846048888343032375498610028395380968950477254861797399591157924984868928111624185281751733611504634339767893905079429109537057713270315495355699973709545894456890021766652916230533913307637321466461566944374161216813758721854713296600654695510173430882529651301472166186099458456444132808116935979270759682562659644674223270751866729075750117831695279422596358742226635727113762706098229330426856388822612065192448094062290253810752622581725851906034855854009755684578338168381987641282159178332502152203133225007399365428699810200455996658694207692435335841274930093353044180725708310458704585838340767894908544500017615552342003476534833500411418550786948241263279765182025547064091577828944376921203567108949129585582790118100106919494308687623095413704648199906903190956862849497827743215223239676362571527694292121808374291414096474816613113205122650513331391644858569316654323368060887775340215313111141264474140962034474798468141187406175645184415563999807527691130404235756844886046730574938442850712936773185615104576888072461129714055725275408314240168479702222757162767797429229677358921767541102910116500646203158337670235605929042088998708605379534509241259143247741554386107617044410656091620567850702458717156877907455144827549172025159506534999475621138843215957913494301657089997185700684000773411867568205504365836578187690438773082052078324975283772795251475610113752709213812385079342705119689328589243644386829794733696602517150004478213806341723379805963361863430448977962590881387540319861723550528636329532248662168445747172085996503695400286230885917502184746175906922884259650483048692948985654541939252979071624736423531864223092805405691225846847802982049943171964677456984082578282205971906650616833442786383030892483808468099635580867464329197145061793119130168125932513445917640601815609225387316654792485899343950846165021904193720003348248766088491997093837035165931275529521385733777673874625146595774706550264343985947368071270089623694319013990952283970246875555356300540850520802608807787389675303837258067710297803422092170423481913401722561748316438549989621955659569836937468942267546046166361389782056725234507656158500564380613894348309201459246509875961853862146937111176226246719722693803440319739662920230565052096226366383583985812954468090365586501847057938847460071193935958488333442849180359886602709879847645497810513061251472163909697546276945630892901347277290772154403457179679151864673759660931367821912286683009249706919380726106717408066901357748865631544567850244112467059185076161577418135894043852753958923681247299466398368776859582912998144936889625165246519297649267918277160640362677912655769872914126131168694973530233859479094730520381016860219799966967746825471049762996322023817323032902594416191224403566637990329411147521738980595082177208480967701544547116184992533219482165679101811405105732950470302905860293764365982663831264495190024279951591828789548585717355204993677873222287977463996030058587843764555882899501846990272175666819017058658753553600043917811849512868907722003081955741476093720024788512689037676578514894787549434141812611705902532382510409999190710869628563444127558061040488951881635113436898406688516136171260797372976378371446935845847351525340386286290581153541103315992830336326411424623129449048427182162244918943744928498579860056831177009161698409377422118670767998605561566726307802250287312155099053438951698426409860200967559697521239139144139322259709462530468490529715100680983920260396443512144462826305604396092284761417347619834377714655001012563738917108421048662492410225955756155736026912511986140543972458734297084517795264681236539172267994005110369077661007154253778256584979955570389478948090502602729480333096443117172848786433565092521339998900395077564644979601077943357220412896212562569861587286441252446929478267122891756553176366299387667591833174241388813563445172997382501831907384800567490254280095418166667523852795813716407064321215899613936847056292273109667960084033716005136999885400594366615284162129498500545159294729333789251600802200318903173000352079948119999695025497715134516472801702640818633176245478643577073873925934427554703368797974950285198857680681179103099933205815381255940946636997562472603553987059554285778043637488522544155451598680520482246060888305822921554556774021685759141813544610673461159391527175632579435141510619597147827931027923633560258959721630823577226232539890595079283248810298484977118749373513094616311102967798306221001625936793212562375249048015963003274407417289134300200551721753771939931862323951249647988520885030620317311270009920251242857966018701635075159875380126173066630781563139962486989201414979463592701973026201410535918662128940734696805016328481716176174989193929579051002221825780363657813083352738247354294272113199543847051813013227286095541015133373754894292121286414554958574476267590814298838968905134811750792169006567344681056415314295368864979377396103182399775096681409683108479198867364064168758445557788144201817255797633242051902056267056598121941873884330704529428894521103447790219298303518880006499697046216399177712274509508473535958231354067827475135231753504268921698798013501406758683921956504271506312277543204886828150374437311138121408661351897427786370524096105681656093712807600619900253833181727979807219623863100332998702661608339141458155491678609484327142425637285112610592153429662907758941358096695501426807056107074186633741690809530340928546146267273903024187224735287778421758881050115882098311372298157431877598464309026066868893222597669464388282185137385109548104102136551039272695075102315405429513990749666378215036895114361406636423443743519859076746573146642142129482123397324022228069207485775544356726023621196216456963758401429513629023243003585411403084936619120285894920565339353351613224255160906208067984776738498738692061477545672318898710661635944521920737675165303381599749438467464214169269512001405376401355966792088271746113775430352114124757463871533453449741386770920944345530231610503873961730691407393974557758711901214904371969322249098239831017741361368116543977884745612030630563964825102689253349251699144358585682746711465206176538460089668050846682799212295719699873879171509335848871691315725585954277541202728981327553961627516925836520117905883481912279316196617863552060023720745997165285638183274551798029346936708115359111929986368051716129197274259372139850120075901244574902028177473027685500279899861437126386005348071377480641035789642801527513194331014776499697489667830410997043273180337735786314309227358997756408168661165040713384981148535845279824556752636115010280019659911638856962259396866430786829456747357633231579618654779953820877818091289676390449516449098852536783115288081065103928163987498640810355060631423928197833061702689740402642891635968069010470110816587927383760526370461095773421555884758433785039720900712570831038383006206857841157666543362515898472129467909904201540817161319479301338193763348141685516764276836813746822811551094655466408641508542163405736009033192783763984379167923546480760381546537690934947044151793246833131315359906116280319062753711618096176849482801169650205726117908635755702533452654516497200579130047701691608404642235643691058437167083630985028583365479785453545150905966512102176425285301952583132211858073496814813839602090885811992693033196298573636033389974820250522550795619042431552890838556653512969682538783583114597468382440667796637407454374914903403973665554031699563111025960880232209697185942757753966429360900706898724748757589934935308536184259517136829996941063438215628098723245693253189249584191236679465918096415796671996690745615274375148972501487281096076723756824019486119837426275551318600739108660613288163437147800974313749540606915546513829018075467467299964325831230249462094306869557159011473752812759221504683930707742312051364296741498474979000580660519640181203298157680349330239967343105060124939306253663436867377069481708787202194352414416513235302743902456407379125904295135234065744880911408834173393329860261776292292965748619353372397026010139084865805747482518210514268821881454340446985130215416320354574711757058995302645679716981493703054943396170451699200324675035845611329680487860557528925831121365822077497065102461783135967165846416913144417253299387721640679760951871271010281825307820386679449677545670061670580874684294590083008220385794068458690052241811778930121492823544240686382667189541073975943955219441164599263353609121016971573887274668665276598606861049839500493991829803672140504695757935179925286683566234831886934043361566398516577268409426846513419485960548487999638509796233912943718376573214888215255750501818325824343155058022699206526571692585335477224125013921934121010964744443725074883034622957300262550194230228237077731446659803760032577066883769046523956055473949032256480295337502238272717378635432317932919271768204077512117421852679184587264017600124198371784486605716927373863282894369697384914482083053584361167163916549658744160632580891664768021520496430249754816016240610128970748555754408667228566842174542232945107586902471414083933588055278263734737456583139940494335796608517046287268760120067761094297478109656403042033360430015822902925242629939890170748363451126248547227190458069046908238863965284624478882047113449732325096094034390233156141749670717291637386771724536169233572202439327149620969685870732107117453746070271851741963978099670920381361646258611022165810831151860474537463051888524501017170587102316373393122420959759349861076835602825952344130072070456669475798726339961935231238394688930350031038913962844473395217576123574963612910690685877076584658071272096457190137777290421085653358275995912530780256302473190242075158646709651277183353106812939576385456082042034667203381317931689248189887507547919097576221833924050042456984943576274929828300346189648016778259693059095649577251901670152251066183831955728050424330488383259344764299214586639701863359180322205238098268360835907296769148564654255073268463112243333363592886259771415987925161323659080798304044612863866636331803128102065705407015831971311712544960558332225196083532378330148834071257662697535675857655265758213067037924661889810167121365740368489295099240376395834599059886343401138768673543136971804081816980179724234284485935922206788361316585675269968288590534712467533909755635914529038394767704384964175941867854586612084822745070260645224538491999687819204185381235517602586903207905531984301127374977284467949308772014004015682242806886312521786906868650371287550020025433685627108925823626325977126727830088280032077858257295064710837182679023966989041183668248851055709065728538977974512231166274069443856208296685284046727016762408262608715691803788514145571401769662432925086907666109354571674713994915458293018608866129298718976099359520676905263303164862039518860787450393199345295908952841706989607810739493741225115991336679642203299848824642136393323495967630241319112265893484411139952919141284352013990959978294430308922459184973293597389695331674141093248973375738434466602507897989237500109285801645752173725378419906858525113555718326049446588917357074902916688920325037032574340971587312929521018293928169333850016907196346429108616121546389917718493936747038938672072579659678884310657645569725720627395401761187825606280818661541539769570786124805456852135943344187537547221357611182607855171405642401809342646282383193430256148217944139564821025963694927104435947981795142073175797404254676590315291223778030107887921783047284552814722183775281119432036070205368431895365427722972375510904286757626381272312984880490517315267872526499906263423898084791115967757185313723325604175730759371601648088292654517817620184431178146776023189541032161556889841113845581307407504125314147448317232358294852710070573764879509257226292268024962747429621533586447728021549624991785623767458171040694648564077489054208362880036474918564250377625019209874833437571919525166119494036213562278802053278036353137571995332053610627530390252883657862681114361653636613439936726528653003076070702214275345890143924574231320158078098011135390386780116507647361544352606353503816079961707849833392356991916633560739304960810713565896888977614329310790485876008735831451430013271781468070449546869737988064954658267847971418531993079040573405020692697762675480579353235011541292967694322293709413431634615511228698741581799201278663593801043788932369222452325156888128389752174223783474416031851313341472664334273861121865328027917785225651497247514316170067726536050067988032481664453000168462860059254799607894292468356226693740331078644968781310952225654356372931917088177054396201565897075918456081385679058282112811805096839804421915588633948562522990810620808880218805117501822770658292734898630457144949409740308631170779301056885854132784572100902545947602157859580007027458648269414769875828588255369997046309069666451376217556805325858734568735930693629571576675095630207123930064359957151737437569096722048429749745247222819239526614747201775490410924852694512044291923119222312752551370863635684692494923337315184386014158567327088674394468671223965476793582682132275946352790174202039556304131510873674859905284516346854486637848177110806438194312029824583177009266336170697098297408838814071636060481149749898173867641381941870182801116359602938214772244670744143155812650994958730378200803142017092214558773203371895281232480546934100802917212272926861235783105309913909327529175046693218764020926470787706628193226573261615888253264451618037043188717597899550801428523338535913483025538640838362277591591699191926383204582610109638256659929581228716249535901865816193432837767762297214164674822983023291467471567729405458192250980161122858182029369460188767667023602717676556001254163208257121019987251788019781865776928750994443795207209136357539601182752187786681463092610970816074071309831773497765349531222851173881275620687990092669747528791155922569737362244260824945185582211890826522604021899370943461684341123819781962855608030616641529544820307817760363448215156464762927993659803443619119653426891755246632554073092811125299509243474558882861467703930432521399772961330175847447680723383619273959861647232131402267209373517584659271473164834899315208815856360030437739493444258980541693126618197710797835644263875769996371395162383096295981896612238780332204255940585544116700368505693935940902339479935275338241217358903297919314944274149246116884474636129708428295015266482589436998589873485168091710342612259890274416010103343943927645234108668207677544755665855868523264060120489177394389497144594398153556928022805506428575498208421474193737994040346743744218533057222843168612265583776625303222970514328364636645401997228383476534508728280029108724802589242464898038536611547099015822402712623605440968751457439593517879493784901898169138492025376121999061445777321467626164936441031179314272453669039822355802728567074563558256193034507384802500261598944814051015688196874044335104760988735996861714505497216019049098205029445714941269468405150340620857650403204538124162399363656069920635423584126507305816302201927056711756409786444161688997036371036909742768560664044472393350518684874463312948754656394648578199618704182544769891595942949827250629212756887717007839866529946785534162054112829168135062654808268622504971149664178788450750544312919853176558008138566859518907950480968400866768059436888914596950638306747920902494576498845272390974990695017382002502661722951147370729173967251624402459204014774798042276903863276774244862073187899195548847549168009837841428969804738520406430969127175701855923617039083310699314624237279453701024044567509770536557177810942803149878696441300447043315422927093371581798257030832210154725766432330526612311539831026975157675051327847869220724631784148925612971868535157860440037632285812952301979533099359063786051582321429381190284471762466159497241013642526322789065018858889758759833043239813143370413416775991249057741730450722541946767155838059312710360437093334591887036059521699882184780690074067416516761724600811968240983905368202348074703690440268287981093858082281441398044714250895502928119023258401865970811808809941058785707533938745708655746156140667677061471727839350508315515252705693143688370003656406275013159765990456275240712788335734918257783496979958574960188680926297965653458740925089385557740178487376884566290315016970413957655820104355012362859865315838727964379609098386870200771659260927590897805253148050190160741335847485484773707779523865479112932634282550808091546080176379407730718420747878985752044369889622972932315132806701647930813239352674718998595000657784143092672422419623434463040555658750312766608416877596624324012489085942939264992828204047269193824118554837365367288607531159821599506739643013818433632780734320734005844060302952879336291024648190169374019567787357604691674125954623937962700533461779344292215505046853080894905480478167336817496960840156733432364697975250836814820156698008992051700818995016467640100382628304877312733901024844839331127582367313721593007930501039623466645524929726975704531198468984638448869335782646339845708354930393203145699226789280363191188869976980026014479391052304526106448428767281474958092817133243091428016384531876445338134141331556042276069442761200795010557653796041076704073227451654816962419176149035160202400273046360553338557938510468644549302900657405166189431986790494569097839508030601652606690665192356101244468041339961570711929793154890216445151484791828853758067863225517983843906957934833512407091287981181258574124408490796286712638364218923728674835983462210201463703107273068038156446671221287506942470243343440801862959837628496923651604126007039496259300189768510390828481355544605829733801033599931924867297429982279631543068163038672829093150682804797383348335981699905542743023597186159428612134090431737573701357674839184168653917191663802167697891858118101177397660665441823983231258741076050419856524351351121257617248713222678534873014149735298682180498988061201543573789682719021410646770481526587688720211559148346783242603238851698536694820291180559155635471930677136956519218174190953906233203696159717100329152555623996880311559079897976808013084810961398160091437792948347617790552729761231149509687795777449141872597551706708121026184117397140118712939592872971298326639489095979779209765634711216153142411411095958275598515908491342417725798088844977562985856942018272801015782570659762172308270009176864697025241931395509504605294195734976039037723364336510933082836348000612520469602192932751733823096208744437205244206919137835850289222945533898999118693600944641817329625921087405323942864804393822201262260300922116481178229767922116585999141306382246826524392146124144757207951234291922794991904632086880105806275078378722082185369862572639875879074364390033550249028927979493278932704590874909877378062930788973285527449219245255166438447513024088033233983621013648483163068091324295092727163822005177294177273300335171869188158251764149362101147658491139749995447097265304911319471916399126624796269466361142116983356136271221825446157953079599274433155829082329536642560041814212633316664898381726599106697997379116659913000010488361041592313951530173783073860564589571975355133023531096354187818311008590873729312151068868040979785217645020152391643619934180420392834383239947561423897057691103272263654533848022569574641074878846373052495159856626614387012306308393976948503692817358918939430329248177049394808975547386148805833233812318476957359211807545941815171657274617867623963409069775981422927349245526508637200538322543111178264247069189787521915369172619366302374716732383018037803943977649832323260796102958775971089730848510796680858507179214782571977155200938529286322791582650094786298702632717364344646668049806696743346053619539181601884486410257089532006486796682059470908311432095451148913495650835183651832548862725178446418169102204781426286756433896479433708306604385872693644989382584435792224224094170448811862909497002848768429116002029262238083611997196554197388543302127344858502928463209817110670428083921140853617848375016852120619753667514231462155465060039907081034958460175521805048243568750254495090314767155052585246216859045237745743156514376131510955655170091132494852344871572487918624227653549043491183572914479959631747257555406136305696438067448687362306067361126813650478512455493282014498735842414287846202604302344710322181723726549594943550831845481124973119374836529142082429876848057478280737929602995387001754991068051733918105861199706082250573723504416258935792103677904755337549939032206311248415533125508297671201108952338920674700352126525834094013618500551904983670582993724401953589036311977575064527149408586518670479713923857685502949307386096918679477770454849424341122279048521725922196643509173063103096272373180628190458055123032392498066219834451786389509347665368125705073735417982983780176104358789120939522708695876210200596768477596985083876777646510114113466949782465132557740743919384053696472944563106149511124988264509405379847912836594730193451664879028291181097518927634113275936191066969545410981842941977362492756588210618383802556346586894317898620326611797850180591786674588520369343324709242846380776673465700320024020630957600324636178204317193640095421029402218414132189968759876341744035977491095311106679438557998846764464090290080510446406874017053914206869116450551493305360310684310449040141289864074316649499685329129722304596268444511286928939329906450046587385358729598203907455675924038222657700797508292022331152763348740487430800766126150704208515722172866186809963894792541498384312423261561520515742210953846157846104804131866295302904094193818852509700156584066060199545705152443892336735044232640756183224852142248432916699171398125211469217034963278926198094853350146684602682816162650349383369538147839448410087054309381549174258490894518663354471180651838279254429710211779595681803424758995443229020820578694192345442367304521421727951916155537132643264507063197536574707049251750690835767758201561899669616748173332430720505805501185783671514536638899627337306955248327458084272991218065751314996204602846680115657384704897931618001448370266614390685970908976954744630309885650822831362465559432723142405424573508634508150033479023455452564523739928065234070330838971982724886197385419904370523067275875291994406530548707229749200017181787945318915936444440394159216227621250000487141692382468263252212640902748106984137875544342845803151360807555867065822233630262847130682786186781136555046764849131213320341774703869868882934566629010459652676832023219521720478391672243117257350503715802374278756299166338574319962975235028116709318333990176595067991239446758809817811580254255859634811471142883769573601796242053039510487450395008092834551969809250743796329469157217448020125279362617427248625556258745619347879857559595146096449861070312123037727666897454409244822386265703837181440939053929487839243070190579045681897176440929524402402565698406105606872201124357976235034981389195905974461497915124418032806066972471313630891332269597671824452643875952839295295513763524095890660478761432947052509515663369768177047166500271395508791448797147847079841468893232590775623851015506614033356751604792207325693391542848440166625274244390561590794155337315788892203748405340598495490612522654625799912215119070340892256126894856202865694463595270111225038360105575585585508523114778014432872171619598524844754653503591479533758298120303490886741688159656991699151056291801014755926225159733770068951564508397151049250483256559068521883872520681032721419336216742634960009193546511119045632054041602763902653353918320242325926874893773841213742200194944934525739896685529335543831938713561880836717314986463669157285779036508709732693368906584304663764320598591091955329413233299478524705812801656033830754071163482329530692501379064967087619968669586740380298749744221685901100288242596525384240719608926050546867139484714683514126461548494169994655234606407999452712281981068883681251498646499932322577844824054446421787874318593722905704619677900965615021732564971670727488960242297118028975078072995510911925307851828144680021893070504110579256481161235440153189493504591285742155268048736596878663476471116483510056440551589746561003866114460668928884475433913125763531559375412905595631066835372382627201808218375888680386859504302552586625143794162573824442180268452709257265918033695323447280845012819070964465602651247557958429983152779255444325308999752244856922030831913242138601475718682589543660836803192771071997727165011362045479451897148460067999494687514383596507155862599886525594018418586947602429757804409450732623445697278924314610305837557499105115433975686180375804988224676085586387177736251253142167326127306959291353103815237387096723962029865969156921891809152186128547748356318126937575795367967204036570803207862117315243066753963522403777069669158892297555630128320702824048314708052235358158761528279187523117426657884234727349929880140918945938080423001737002779877290415591885445709109885488585848219006144561417511433696934629593503174518252796535071982772009591929748848438357915067320033252830567631854975741094039848323284223390400176415811279004051140722122558378020157107636504638170492339046962300651507308145587935123787224357483544478595860467193273734198740204502640413297892602507190581847347964522781114993744082099573988968782944845433877201785709962275048592114335648892204499773057105751061940870776555754738272197926786823889287178638098474839518566314688630685361175291576256898636434972685446157037571965441699256264230849026094712003253940550667858164351295043470370628294982798213757751460407903098695038756488990924571524799609568863747490901332339321389861698803085336894853937701460438401236406924608179598141488803290215920674690348189245510292364539529642755780181676992747267506171411036652750371330148496519399266616932889038257589210627694767997559983213520300356146942108959476957735892184659488400298649747320015509394354492060612721810789512620987910149482711167322485310209648635722694923448755693655025690681825939197551676264392474656933894582129734036416741520889495092936934156896022832908635048534110988888589977003375474188098217196010331848202336073874292716725274540730616685890255002012512090751209236211908189150729926320345125489578153238587265957293856047883995942128810928090650798327921905629900713687774145888393953276374219934266603259990336878359065476180730719122841990749234254232520104677640945004468393776434534745135325607044071721439734087176858464332660961254167418085645838702303331128669642012438386734200502573359274315441190730688027156833668274657539215502856818717263450271267753479472348489954809260685745194603004853312162612587974740787478501297430414840878429390359724704498192524440182776851405537639954875574370771087947565011751372426663877467915391443220449334436960461800480996931896142643561731756237352074469605060676938045553657388807806974697899086270116331497471072694124314957121734330031098651069727971045757448572376455737322901706251087707383732970121008737395964801510481470378228256305471248260639783529946896507322604341977633542727747281086555360590711950015170976834242136334527752982692466368245817977986729998733018555870326310830910429843744427455938213712295371223590207550648231703779213071675786188965292521558880864258731764632449261896808496526525675439574008667675092788410596121519841110103410832535291417724793320621449752460413200685136105915934718234605886520631870040249003467178070587768321199147763648048232592224848439223491404217123964850972405298486982094377051199636806751482316169272526957856992975875151599461395921176310205211809804279393956839237716252351423882428827418713626000326196728820004441927856799281663503335487951464716989167580932567762954413658200396081122933603319398018723152691528635262207440928040205491588677528763486382323933469438855349829751885082694573194592521359557884432756435240666706226230887046281094984697104176705502490621119282640783017900484334569906668152504868569618688268745887161843841499179485105061496431456222708302674183669712667081383216864364994381380836902583595848705692971484799879943989747574778484129206399768076364808289771306442198045130056183752921564014294919355065280770931934277740466389869311002064255488461420561299491909864698536440773435680217422762251900937790329780033615774507623072584821626246332854163347366879313003860328987669190204221595176634250105576487413133838970845817244929772661184247561465941612633278157172070745367044755132180632341644171227531596839409777752163357042973723961054910875345339513488138298860775895861125508321248795820862788977515854219106596792026345341335232322410165481900973824271201264754577786854451864545090243825629133361288525763246809336711630257051839191873849309870802384738059697465225510878694782756840109404692193704841195736947523509118364325455867309970220377809076847877750386014958733975446555168157448401080983095292267622705915009344933479870523563164207449392526523688691884555103504136883718419376191333323762804033257461435641965806324860999278523717991610162305889448638127688088554121643589181419482799020633511425128051557246975838918759455590686456437823419681036833162332860357346393798303532776805804323860067795378969762805026339984530822225209353457129868661484068725546415116918716061960858527593000664331201407180983059513375785054759975431256865387327669917862945878028484301373122096367865426288673288669263965772739005307762135104445349344767032530138597232869404564964103567021636205532167479257533810406541164273763558519642813458401486636620558225170093296607841053545267492770107955799661226476095607500320021156989386447732671355075225094646168790722375666395399350546749496255087662754059179519418631980432209767800658385037219684283470029498014804663331764236987538787744201750233625178080029256226419464586795535013347462987044309837864005774430126774246134932012160474823048016563932947392035486350927274889453300339166254658492979155483900166218492860516198243777653451364044997140605521813818099138869856976491859405529483714284491486522075199661421442559678885368501187100565686121377475984871165842080654265525604655394125345866656076698637169926548941698532499536938646728256889801912360784718625290405219246207997969216704015817921639245041564396303647480848498356083411139744726367660832717103012335109397892001257861199617055312655473949906956123498952345971267819917942496976516475337820003886224753002086606454072132788436024606164433158680647456756842090937580442743173500758262055339048951999885913844538261108112946700740656405496267505199802575704578269644367138252127113376485822889673159452894900422503473746072519359551411534473749576913180456980082462113824515619970988411369251119964095888675534993515146413377637989762274434961317940591785001733816699846889915474638640034635929979591956704131527083678448487746334057392743047747895684176936279339969703302706847458696603087736030383074903686069908257532182434510964790152547528439610614376279455165733641077139918031916689259111051518925366182605337103833338748778917388736663011873622753194010109055433670735677680552435508849153174901833213379249874027142002131956441032916869942261538613135253576289217740802096950166905645098494469573839875268130527876284639814085141568203853884376744228339265474435309699815807586905232476133055622800166627618271552642031384744739627172660905873936457539075483719051879428946960081148410191162921720127721131516402523230854568406288422490571504230161152878060243587765836585803698171243384296968116691289731840893242443546888631149390191841164919205891745908076898115915587050779874648140902843296691771713642437672407891741912818312710154804509975146812956944692902698766267310064883322061987336890704458672437566083539053574313909709901879850235896993238771115672275752128327655121219166884386248912970719741326483987619625174194229182139117414654701187845782482780930189028642801849844950999254448528064888950349474825956528823430694790534016058136429518279402487003731304109511260189497191050288965885553673098184151420165565371786045831948963931752414411021141797059932749095186574139518680526245052101017676498858638878427475161495451402727759989819322823220831536234586542223877016043853594367857217858587997328301520594576484976950210543019389404703421517208983442498781653128222959182074229929561871862757872553461205891453520420221046524970294552955394676128640901231041005858489449276350558492458396186407697666734714897645373370201001548457333944681468813054412196152994586354658706548389361452473906133268610852210858634457685076066461065577339198282734466317418745135190337326828862585543977889727458891685299219105410968930673157864627448853695749699292860988047984055311339037238639765765140783441929627293116578848273962393627629635866857485107312405206501865875484194882020912875519203215301856612059707514642190669836532841914549455903368594665901559395393888484187796370575132663546422955829069161577590851720230499328883440182836248056850268871076769300380394681107658280897933091643666953185279222579360494260172972832765880294047522778269715287921792420368139052920640694556868526295419060440004086122265751267677569639208306608873434553209770489297661282845286841345659814771364793494676852638614579424317693228775274302763111045574652570138182534443806272368609851332853983477949852147959514144221542395181571390095162775739133359444098820216948863161354260003179156170996538455607513705324442377773230063164534512492479508303945313091658879511553748948296814417627619207589170923745670270257623417752285290136247847443474712211293258397127550385240840714164925376219141277720905376269089067999122967744454680113155507066280038721706657145188087945479557822593129721638709616368697478912098343434060633188641454209394125196355131464433852928764829849715864179376489527377706061812306389891575672084051068290346844706375019070806380616192678600821221888893057062699548251769302324715538020958273207916092548946365134545625087788819626549954833377807958675288947041917577393580786791410193100813404870455232654329236863830585485100020441245103496755577716642494273940597552410469208716988354827558261463569613834378429212596862685877592833824327364763380604283403609825277512355968934314237414050288855522232573196179371809853940831225363704948622193639774703974366684952634554466197858868113999872300593916753973914432874373560389804871827591295248081675480125878721282612155425277505979572407610521964394842326572998612604373067256671035043372579541319353561803566011217798273099372567309923404425687600527781715929218450202713530325312631599076721335616301777783648272199976306136613514594419742873171325638531590528738773836094963304370474534395822512461651061275417814639134630868275937414830259047515234327738352504548415505783917417757700096408200316425970454650666059075015874914876922195838172519216140790633929018004401496192081531852295355839617410306811851769977618895501177643443281291329199449413663443006462512627312267342106364646706192936527152655963470927449320464364831655308078024402080388659533997710644848605068368812951188630441252568832163232579614745686273773349224489177279809532952758377635211226390467380254607095941813734734711602962087253497216060861875950911821023838687275353506141411580188020448846077281474961826659314970345167625992609754620345539893376466782693712154648834450583102343864563575035006193457988426110072451510298986016467775039319553284711395111463090210607416260663884093134921371624137813200105041881468747100907780888602481062739417284266256080724567222561162382743580444380710357417510596506369882731769427435462357367772437539037519819922785507570299041982718598803662152626760744381799969084664296149952551047802591476347786754641136629970132026411375712386957024370189806805426932922000501216716683349008583087583847737175464342166505437123987180610551385091388202591379990233539713466352700727624669466903662149051158765812558966992143578491174110864761292161746972131020230279579946849357248738126175082784969055418816159861724548424334391755674328050728465609556577306806229843678754972262621572855629777824981900743391000266832457193083072184978256208812354524391977468906194348063123196968713252959618836821906682743621129208500631331082895592520617746667111310280445844324964825250099716619585416415243418729870588858280068663223500038494174080396885409858613262811294036679819995760401289263429522084385373128502303267739482684194663197254745432609246425549305202940799862521489563382394610591188276834828120467385156078270940508355822763746442099408553138003282391785348434155697662305561297522458088037588978543523373245317805620698624138861664828891896174243888365519304551717472805390338722154710247696627935435938051477907398508018125249420503420812127352484587910416352773596314017078543206089482938940145945792104022580176359720228313844862592843662148509181420656899721839655309587732867279265049097460221219199964979372413173640727653518017817752355690169075159215434191635800517145970586300943255225000640262242575520129133786134806432604165498866246646741596836612458626143904771341000432976884685650857165689527602245563899452720127885991783334463826684591198242880776941256818493248790370924494684234837238646074437234658572256821369749093479923112746255407915413819421578761160780191185091704639519258121056614610191963916266089946261916963941815590137794609073550858218987943289901985818592917024963052436712041127872343097178976370187815246611882564556596607805194332728617056923752885630539661398065649527962425277132522598821365746603230430034033614149069810593137414866007261656864637434070058112838258187633600398049361635549946651502736445576047906697373557359168402040239735257626089023189538837760288857180601417964166967638083779923426042595691711186847500700436549039387624877300235558725222718611549977428008069121957723573824796417112635732048754914934100292021848877845494058843919527139904792391463491695320823099298973641777641264264446088633500398094920674743290226040408640351369810963076721200266409594623494470152640125514001718797368160552518253367283332523588460622061294748354651306969605818796410412845722614066943940265442320016613743443548885485845049473848552625939862959872057304239557615295874544197181027401802041266475658961236282721539939528382784630852626455907429080464726690351720214842149491802370357380237556832479756501341271420270988035332072944266999154430295797221845388417208008543656194949777820750550365404765500420976158504369641116785314262956587237407219829230107994794671402922378004135017106370142961796104361956027767698190287508759064810056471202585823106688941933848065628255067902336728809853593604895480115444628802308417653914541905737577753362190831016031295164629627510203061214415119316674884639249775763925329299145557508911002368214839620395332921182961757076340979129884104540888663641725413306390873970399353783476536754582287708489982774564884868177222455087488927358497269387657413819489398171259427169249928385320231548607225166461185077143815779588022001968271884990454416252380758957271092075615644849633633625876400975669964798760462952244589285982790761554883680030598497589077257533719093124571532836999614506597208489086012049289297339261596105069529444368966818970244630551669576948526740216413617955893830468343295240541230199965765125603554436644013879762131757553603510892560642783816949383063474155765237394964798199735217337063225070728110164292469995042972260065346650158322686699084322240563537271085383870838141801951272173225593870943640628661582744118936564968398252418018046755704789256445369004719319647585559869985056996516863955146978697346818695998662175162559796206216131455650755926892832371116438158091027572201264506081833312816977826293892453536779161404107470991188738051909069756624315746922806541512200724352234734866451800111710339397653243224315542670454101799556116897932974281591319237709782582794362808106292262395946029937341957490092389396353008603256373011299194019137801078090918253860032619100143954157328959369990972641403795460862646424936247736220402046167087173951681558848237765168129854473970522861386353494556460893606500626019189953123084198930461663828187340454427549762330318033690974267325028039617441536665697487095400814143973461671369275469905806359392852287364236306252332447021314786537838951180031673786132329388056835749390746445164431066264427693892997648561824275880089475060941214767587730687953301544374406249790727776575265556370531975463789377842998610707284581772037270301817353482071612694486674652901604750599534948145746930924656021078515133905752892910654960572665464064490043602480597963153705169371366350639892973441489829021401395895771692632147769710812758436474465978067375297348971217329318208182438790732884576721670167504031128767325761056592159798839665916681444611163742677156022842815170444134040725135773110498965346803968986441598682592751835514365432198250780239569873117360607263880176792068517963140919175500420655009578545805122226329552162679349432375565045525601938912251969591530220928493278656196095380814993325137071508583689417458959644602527965780074519627640191806527394085981031224693760956110930546649045275292765936622574597371745575163671626342628652890711158902568420997763289149745591426702088769213399609158915350049213552327645248052122721773494232385230547847920237275908244586231199057390421924072725456162031600714024910050171232008769960442111906662114249520303157038447809662143632950412072726373069728000862362218885729927209178629758076435663091286460934177871804863522026440251762243700648480591510042596648034608052563086442942298134960226397092999404346039616606169101707947586770335521176832436826196109934880758598118453895227946538540210019601550519739852721903812401053606409058004841146364661922177552554853022438611721621256285862699569131227445273686538851519862417328533404894892526237257521993659729149336568613078902296713459712649657468267250498453092799522586790048321498192608988100120517186344048920429577677544907544824104060747191347410643492366041025444692032523600124253994774192789574918972121187381503925674250060318981139222890235726650583580813464550863905143856684384657746242504803708617478771177767198826681522812143077157593687083275746842586184237964074640066856847263802863243027394017216293533970954921371377945082485545624160663924048241579712998597845065038178437367016142587440997920945834342329778555416112651356596124478628541485530761288323914695141055154569741997480995324686774638480455527402168507476789160027219852579338528949414378574090913805704163804382242937083111353074310628448076077606735148790716940861652364262371632478909705757783297731040197838238477152715679308465260347365114965587745251226944330133582277655193581721635454289766549620458293003519762524994135774362340654987557924049633542189048360268090815245985089102481088900164552288319502918772493950722438269467386160449679522625432403349580598668129927024605857972167868299781641501906937933394628324677077692856302502121332293133767780054031417994328804634990665787170273401201991010491672692785127784857963535617950760495349300199614419459708651437376923389877511227689469001135352893948162321523014457643183421806631694897128313317835817718092802931497679863624505552067266760684120255930854544193941273257715137799211599539350094180622196340277390362671616210267558423821292011549372028861247966118419104329513187155307699480565596008334207404626158684598460269870032397517294629087580919114284680250179865599932632890380230886092490433837201103352944890737138824984120645553591578434250359699440371655499752864129621364137349989753074469539044790552455153693259457802818536901096382163416946894433245967360831166567196453628789414707423431921027760530719290534187121202308308806444705441446548548290118929141480953710310641932025175830792356170710969714868920159147571104861605045748963978511607444143335312440081890458802678198411228259199988941748330053222471503567389148827502433485881044098150641224695854961708460564491659479620117817542418509059504955441622695283026117115246338311635473729149055904549617700423014296054616605737534166162363647748598479044476077042143859514381824327155443222056571849246933249363944248858059221587517470733128210734284381831238208535418422693258509919201766968937478595452624644277382953914576693157331264964984830359461396051329389660209373883118158537637381921194361397203287774354891712410663984071458724271596488472143420596186431757645356171999492542238209822606640764390422033004640518493273649680149207215850626549443773392708382179557652673211202041006892406417397394194520445496792030465455315509273564431775633995234256775500691215297821970292850990454530603297718779942353702463880932532828325885563064271163400783335572940484690502597660945448420186465521083760956064527050514088740427520946381429016276815780251110798584661981985077759193195792989505511754830414292223685377896092501088566096081916452662636992854664678064690150565365818044241614719743257449183861621233900320516435924575352749101157250605859690013590248775990168292407050590944846323587608059885908843073347827602402892919325489339201586885665931218638115406945753256464095675412300520055777310541197929408615193181894769923826011133155072096511988297135551066324088832644394164135504359835530974695888211272093776210533433243704488375915995890741375645599995024787493358572438652484354071522410618728579919224099087091165583379630466697854778405968491695171167714442367206676918875758134737489583126526120819058217531586257032424041270799844778056961113405443519344640365561449102922058705059211471643549312999000238321927939428749577934894854030439403962325210624910768091294813323266593275333396938512127611629864639343472451464133444510857668318616093936620776902024269431276531551522804456597098267645250485913252322862641628325615998220068834676753474079158966236080544039580453939184689144526484426642736084729108674680594252667066442127737225262303800156335660815138475953176649901680769366017487514861727258064546399223411551755475844718739448869310491135507925460233654521553624633575831608324626029893874102348193577297679321221414182971062345957378342331025303326887897423152352330477938491204878011059220123092446070007421778924494526017424627589532732055938512990002641898669531989601552642127843082943668772149561398591306826714311019329267005719340362835422665579396668684292049332914160181935435350610103893786785072943576228032148759531055609955912250944760892753897064628819208258677234579785756679038818766200448308337863604164034779244959283977480842577848689804269158028106483699859552482959895973693756265798087776334094935210329941541749950015597303419149117860371612498869837616567777346598179809908002532642144772432760054901770262737344562874095684478031940645054723009800431622719924938467938225767859352734467535869103747071754867695257464966884693729734592510751956750250528518067209066198153435922922763262423885176023186036497033764795291784150288449113717824367546117358667165268181641081803802786629869746121719642258346250312133238753550012361740777095875067226329740346638463675446681030170891438647048851430796976924675101647624573843294804723144240661645101098096525267824881143814122613781881024577509953056445924023149236525101067814048321365245361785493403594506866734532162133403334130381716107921732753940081973274992677796649619887935329966361786842062041083128988761286887898665989312153288323955745908186988410714739469151217242466124612680030571568986839791616800059387789396619908423908593986631037890013195115469717258644614608941898473167116441882802100578962351658473023742996167097562479183697898270472982784169328336892996823375501470013002800333447336960374865011092065690441713457603986799985400566721807214996612212816723553316917078394926668303768616071334644767120602746261160832490931690231849080304256910667319689849748313445796529464505179025989507222398285324038890105437120935942881190079201300528091551687930870125084702524037146676743576767863533510345757865754989177759994962368615879767047943719215159169909589471453545934867447532104419668936653486103037152465734549793309290982486850811288349376337211527895250225774986541216184125458215200898758530889058477670754940400962240960060341881462929453731400083818098215319318911750956168731453186816226720430065641865143262582565766319305547199521261022205555780439801575595020842091505974055813744770332334419995316457271074610059316031801136881036709389190851991126752591777595021528230927255518671771329304572422252638794444884556089316399470620875969980252215060021285065096970351275855362461326570272303741959721149140552432641241351813020017355429065012361151936052444193297708478074807268545594056956817074835788271856668878469950183760387059021402774793062870660946511177710511624256968447851365238602134080837790882264412077582732975494754468233153835296937198537760453250101624559950418680606489682757115850208608640612341957582166754299482801427901713630735053047922374446345884952258898835469153736064225603744244035786140293279385211638034537603314822500792524803566325028664109726558978767470361014316765549097395557629149080662758364655447109748779419365809170670693640085151327930380236209049927224881266558350398700368197670286157914324470833924291160340396492075320519642168734226367675359492879628024693036622240565889810583604425854438127977039133161654463681068995406460282882085377217930764904778062857971811714345229847404519403398501838330897008995134567561996092037407439328047585756769054727813225680044460897903402656243094782155659416142099653077947958241942124060449042876538662652075170675164938886194265579867725838368358683991839479043389159534480307011263361731378226809278162818725667897700032710326663018196117299517582213558744644868794277853110842587851381507922837307316320761459032621246147004328785758607680636910661535619567913140665199148968549538384718139550277455329895494388140775434174225095808011951753857978035509286987117823725480054546654466927426498435877750024779767338584463227138783461807662960822629990111596736387807161759197358334037086351305776960457772710216987021936055080289230089999841209698454641400335856556774321215299433109497473187376295492035538767837162146092985769558598150654003474773820146008995207013598358914841374527314134988773249058666314819798509580953052272566876821111400258311323376708676049392784705359715445706487073980623224167310829415566183772523441225608788265873352573572763896246198350925971713513143089691302177021217433486676050543228049082598870353499183209496698871402000365300311497078938154305027203236369582817014902353950376128866161490664881139036983229977755292554998140096780609272279069648784352184155031888228061892491360054442704781758611989490790260825440593011065529429858804585707553356417042420719102506270855382362064078693913387369355347181595538079082125075203634155015512183865435280573421189641788023433299555069408225011777196591643514851937119455252577852775027339192770425832553239736117517463151663832939496801348785665043823563814940649803051526462659028194467877200268109843876157634975651558302047409026164690777806128557987536609841717425170751813744571452304463092158165625232394453126727692593389001630519118549853599071058477701414219752256425754252452642197196041936818152786220820298506033392814401905395931299266398032689834559859244276481317156640390954357832835643746422740569766450198011207943695367714021270595449257480202755190145997625451614962628717070292543953643060816690388959274587395549581787453123808303110278839028732076767759862717806552912495437590868912601364946117734894840006580405267639685516078738986041044366659530314969349729596356734424216333867136550925630205520364075246734367756382887939888617989249021330262953788148314372536358275155748182609169191181447326920090155344585108899682889826938945510501741444288196638040008380120518290135480646736176448310036596834953016602395231809300831083070504449612496196063483593358971488643719290620012193021936078149828587140139062778362667964161687205117814505556497816516769341108575936438229717417371126321820194715564619126767144750546044354624158403979820144776420908640092905500456570742691644044060351080461768539292785013520411619669414107800131854464851794524986822958897769072054751891591184644089470199143253185759132940691536879983402890724517165437448973145565734882115371872109009218988611739552890863095098732006930882341733824486723235544819012922031754385722100034667802148846958528074962676586639617369778090287292770383853047470757998835399036905769270614971288433274648551670834504695384103217109357665347274109645997581950941674842327549045701573342488075779203908943880857677445218038686874100071414288085110079730733444804950386032076176988932632754401304244877260822463756525297729635227444351701972977593883160960449560025774106395208143667931167257283157062754038759634485700454236660943310300944526426387232276216452836623764437712420312224994927819715958580071955319245219302440551141139259322938505591955080381023899968162976569566882678761155127974989821420842479260045435486794342039825655417016133978863389741658009760676352779331243863913528068812245847123932070842117688889570871633486526463264787475536250069074344784789030805683060847389117552395156434658715581008468381911597014243811154983021179991181210034614820892210400106059906566120818475618743145885650623231343968936771118609348850312223984672896092409702047599805844402607372700353144802607372511765081062163258748266547678225917862853779589080783577492322216634574646512215722949927632341696654361914902370681048749510121396490511549997408403551964381372656216958372831164384903738816244366740348722014061846479347611996616435921605195416357847342220108173319442982508874719585508019102947453554960651853633003626315421326402550480740384947132149769450508121711546180421985118656975663310569813840304206436451659253664056875592296395706422236848804014024232107072792423733461942644369904497207076583587495854964047200984196446272302834580368205751795749046699339102884354440173841787511881790833619097858105660904500348293028612129584376310739506474970888350795762848562161028982932628987084031324729874557555619834631559932836961310627325313780574310473460186472271679132941857635823868715257726177825806699581493308205467548157028005311466897316892022625477380859832116906733903665341635733006049600818866552873917848982242237353450586151468465257619357338823293564806176104854576892046120015834296271075927881292761972385806907199231340917746427075590187700261513933066255958827340235312538106737024930422189418769611322415102213079781843546746012696645866526894722196133251154377953542111582974496190118873389917053383078051849848450368694010344702923525302096889835296718095365949536715804850877361251000929949969856999093768257292173745411874091502120170633277292894514868296412474637871007649116220818024530374213549162510761385977227554919446323775116059412577529530136206666783918116857490233611563769341798102127437395597723277014367941539848118923760846511912312885197143837267528359055745313174279945267933947861283319222470608861331630659014197371471290710324057864736021739233913922093555501984120394596402542406928967298832873232443630732544801432273201414118664916696488783629592202503928382052050225000542287082655518244350902725693766840899358321475319996166055059631159531210596527628920431571137974601084366917373129169938087851438585861199630894244372394834636365037137403436694855655374605688987918038378387132800699023810827228442194567075614566588055893583649625057440195662826835689014676694263816215958053315338138576494918440250544325202695371789530823399532643510858297129604966420519787186552171705874168005425786044624446107761507051217540658903661073838080262559923301497807128780484552315542298095688202508928899111599610168782098708356985438744628149622253993796976474625953585375968932114304519559965005360108447864452651527707748691828195682023804435199746698264910574895988190376670841329544473650119463920776937919326734374251400311018942311307268741723369738675527311142395051618671179331603910125441350661465763774745032521995182078882711508636129526884934948618187756810688760462786066130266600076169586694342729176202235201100586307032644499475189856144551431730390753050508796010951432627486271037316688218001195724208170436037403409218155983927536324874503587192101118113783387411448783296645970392458401996598876637283690382226055482177233924590996316203944224585713915939987011549553023923211915792879553962044972891666002308471690071431293054141885121614474737742441307813738627262397814464218929213208311313039789900352572990964549487008642658780209057365294036948666934678582977919231218120825313088147378928668477588598983972868720049712832075524909456645669100548236672380950685524459728376719406516683804310929422059983975557324519586746232839951193491287270292010428533630079201278821609969163089062583405880645735417046817988460493096004968236621560676267165071244508797600399736392737236382144234852214568782092456094697275443000812940989600059735198892446046068732404360717041553115580751424778512126648148317110266136387660132061622367876152209560249562015459950443930064762251879411017554169396878739944892759553219733074629216566248536234418906884749440401312390205540462244409977932195714348746812690245296262336629052759443250968374612660936712744583304748774590009305940534966988664523750436567479399494902724928228286084915755915131062196673079010294691954579501178061274100713116054791373766645180311041500224103345050545205873886551316298929981211515650217875753200868587639521311607325935860977280095950501848889145105393318502759698540416948728296311707887702779279495756551049264909507358382066186720211647904406626864394456864312500397956132420075315458103374659515523268598431506952010755545054893088685094718885248570315115482757675595876470384437935429275933994635938112913526705945786086817245563462348186407041998622426826936081645336225897568835441958214728144740285895428071805963134748297981242440445862089592045003593026582564541620415210081991684105437893058176305942940315804431339362469790630776102394230754191498557290700939876643780842786621411289029070315473266923480855759319481827534768488746403383979858987674629192030642708381504096796799729641360127867234946029297682232317768624600039022638606186253147176533963647767488119607234327673252280025018041844005492749493211810133076328632470079851593696431245775180378105479615947394646326470251701339911131622173063829024583558859764091389064473414339020555684316079167901956549862018356132914991870539971755739149164667156748417604914857848581877413104174123322293186939302043429663522895595174864143622653817501496690811443910747501386185284677119035530905295584663672276681292325327648299929582242745659393287476910438251203793445908731007843864835716077570815056625810998323529470571423243040761395863732555979076545247190151059002220744719952797628993027825165443722917244779826861699519216125751894877722053229378173877360923335301013783493866581748513662610121974888513176154167867200696704719663709003964354097665544654872549725197607474395653962996493332641919378717350782465392597284927678438101205569387247380239986742566925384736602691018416330377906792934015111404743866050766133458053145393921133621811957001243565865814600549501420316455871074219659667528368179664057166951086975655374289361934475438307766850445303417402549235161325218337321979394428906915873762344000828729050583268875864025351458386093264776025383614322926475473323703631335726201823636072866712012665830981304634646901046038182415038613227692125025720770135753952857807823204737385977021134684015447080500115884419806846774191481539351961146717210947835925329375805468157460903966322324657339107318110024686989668308829818900514277246396621625654493597259360201918940362833642101763269825529070856390861091465450254691694867098666124605708082053579365185553553802542718952613876649666695374373894247576397233546848363744075108014239388981466561955979655180758759758853901479324865148800444358477076129562971409113252827896317896586615025046114549109736396331227058142651969929800489027175905211135871373151638556790520858128249485349741454616863769699769078929411223943030609169071783952597196083912045561547137838227078038535422248970349537248708070737214136359666467339682008532803034274941169392553441390602351795521436478833653555197101700196155520986620037532653819207774520062372491870760540186211605526185681037846698627866187167112683874115898919243739642514827705385872745123089664493706590354917824910543754859668296220021028245445805757160999973713154654193424769803700957226964145707433799430451271461170165664117986371503713734852978519953613651361557453341466935507551054935349835999069188800485340066175094890990965840948072949937099661324211101017780437931487851041683945690375555577522095472503281496655084415607853716483408620993839980164737732704585328683355435363858605947050881938464132643623899764133341174299143344683915971762027814916280042194692055041300878250881804127716735288932457497607149019662976606916035240000797116298835632056552943617652254562663956381741061158882918796116254197498524360239038869342051540300287733969404681587256569866252314959809935469244409769005019500319699414193394303335840465405687487246621006650581661586166998218216689118863332025714394073945483902788138314272098743111172154094263306191743052962841525010358022755610272009769322859083883036965148000860564334001791915287470215968458244062573060115232888574342577646643459494078880261258993361121048477832482338193793728512386537743015385603231099776146148992934518439202264528625534071495639340290291789341209257945062932353310569493499188295769481818069662706622847295717108856741751928426320637974367155487612655078653696432447814050995427615808446429457051951297784200338890094723208745745438060367369313947382365910734189729784113718441160283418897544756220802066209915052743306041383992541308203968827001923557816136302795409891032337767272103672039233995705721764220030087404852309764326198131581881375854152793407495640329010129042629019229641354721503721690965107838008282595376288286667292017520718826988328177975439890066744632697402197158330893034626633957616041353019235953101667803804684392137948440157863554302131879233866999219008005683754347066845822228483770913862365792769124029666813792331491350542611219336843599983929187751004210048489024089232695885418546635954277007977814504281078892601333371311678568505834648064896366551896901372171503045338411183565575630198540544711942548771621925191270475600522494366261535943505673714506438184763153507455288132504440489968998308136554233465348702181632830423648637829292300380582425616905655352397827366417961802863057908082925428185593921073770049231742159806946322021344915853501728383545559231973480244944152723416249864919803805700750024208882705177858048397419166651179556070821169042962024512884098447260656434961860808512429842011627472541032976897948293611645445259667415919305032151593166650212181415005054539006980056205976450677808476288432286894384980520377645348783108238481214422149579473330493214166247636043942701927714751491066583788066213707932926812252740866781812371710990917183701575664292779902463339265684810897998536312987374633787686567758919735327940977073716989307274290255847472102430572926286873418045110909120033267577032530861057573656575793295866606985960821768849925666576871540061611125650271429272127226065910221596072562975922315393793410657171186051337746316120779605695642627957382797368967577629602205107570291135947449243531411625608867265492764487210777377436013589367679049998411964722493425717631068173455786293483763331331868291665557622680284533355753533150353538794261132303068599400309927093493811992642961016267936163403793076579376513658389556176988818331281475185788321685849292952602855340856545622445258871073277324439825629733419452442700401248219153674870745524059975452188795219577735185204347241913645644775861159312620247579265327881203170465978369238581489920206893733027862913028322993677408513023895811224068945790211798955849651663731690302448930257402467367016170075783981997019872616000385264411680706346488648086370031154149527890530093720192393793559189053522974872368579579309153762940642444802050558142779616978792687655910674451879823057717425789320174622572406703203109135450330179788308339202529161549851232208498950602129990379810590443720153629530199157372640412832549538412521570559761456032957980831294945559896487812721518028473330055999341215167243697655583344980865149608523818269080587364466402493025302130302369545402553386972855434542053009510453971111382119973042284508204609610869849232329702864977414239203226354026547666167746216914276183214599006208949302123234080425795567821248584993034392179522716647862367748945973775738998932932452953723854227560652787069968585677281654114562271690840078595666362662339547763998148602130123299388826112888408587453429323654570143653038232428596247047289880021679404682928279518495059519537872031834487439165700323063561077644222100659228573679915835959023736312648267536570423821492169569140930625141867922164141272821177145324081772924622498054592442721662054698071988193195995886118109201009685729572472851192595360749891465797733154247979329224682606337105618930101009666213542145962470600964317701590202637281588118694749030198517226082763920509933246309680676437725846915436634957551254324902649493294626120807538899987920625974797336069033355180013305944248112833894076949543572308318508412800856565722064042588490116825846737657866805538211269116794365899582130087459865014336865720949059922326863842558618212975886960919699821086670909677287277886907272366885461275263016436489927297045904822613613483406261039423127967832077343432396808805934218599809646595788046214881472374182502787007355646550590424036451225633986812670208876818611154458682448435654430514967320674847001877423825377403200996926705719712993849749220049401913559688476245746570379539170885324042170816836220312122850750559609465484449295769140281353595764870756488837384858555326909079857965499466569652548152619511925262960764300423806494861974783796151070477160765232385599107807097495187495179903091237608072538615350532855427099480272371181521605475830466835698969340020461078976409677975820393663263204827234449084242372254805991996131555372445979740974820908078972006497392850341304843235812142682098941990061764968187260720830987359825619905699204535076980665553997683582290399219293377302570980112274512953779284696885621887012477370493192059691930479152926700399586863884356242426558958435747077314406256866723382796405853891179375931185069414699950212984974579168946146016220850882247673707267261456152897971987478384303666390419281785694587505627178679065199107381542368420218552053922270573808993634951059954639244369862622592979559798898382625215084817341208307775279318796577537108290041532152801543006275740697349484172386628584307453050170590594450855987852376095757381347819243096624893278059176039167132393386301931822874734237134300522478316049042368293808927709779957697540289323451826905707860711545326527238192903722401497331040781272263999600286795780014486994350622315550492657374556199560886844089424237533447580123363801820136990155975585440371397527789374941034584359901210594630037811562846631526888632928902946376557478246829893163902568602015103422263771446757993117900302860440394176878420452627312329308015891092960952009038700194691551039111121098386700089534598506503064197493266809630317165137447135291328974126458212540944860024929888074188507629163193603279053671680354967582342830934197389378114685538944210265412491465684147536351984042694056716867101117151431948237629180229466595229841782804975150753587623782966759821432034107920610931872140743082580089736162212962968412164110956328004442584925942368859054588252895539281076471248919058758236638963711769986720190921197252009543153304941400549096250396303660864627102612696590850642839554708033478609744256391269552003508420366399975342533208095775229772783239835715225463128894024994755857049977564990240799053684662201007914026177450458862025867924243451490472001959730974479021928775536567186978510554710112176763084262223182662718214480131227465003538453216328197548621732944117471063655188434362854481417744816309722549095973672182914250675293395126007854001711779313000699044946474334979882276696260861837640912277559737804347760661700005914996230988803422320466766835871939930446022381320571963383642837583608218188516365130006920993638549195367277556516848132592864989714214474240334390955334884599741976183327341885672431455787634965893505169969442761756688284967941564400862820149146387474502083424736759455670613144140410222980516270423524817026481569100177898378178790421889099697464663412813083336060288756133052635066153570557881342996330451720058992081755364579227461828703348939990691937973962243223869246109917465798482916327625705263703111450057793573028268435723441249729490233308672887637595545738023455192862920225683574525485117230939416603703577084973793490276694812006739595041758539626827231196699892367050789669470163361376304682405981909359261985808124614516618557542500857418065481755638628036345746143597122192359664315385750120622304671679411785025683136414217040068925962709311583375706917102651964090623761039899941294897740660234403923155890469647995424369276502415175618447807947654773658845210624963310751610174383222822864890036526193933160958509712539703717358183025389428536641916162182979260135324426490742243756847189570448922479765524961712984501602725976944611148635123629118906536146899814199228887624200037550236563235667475083225470756378641827854935373270725720499448229141818742866695560567381481735369947980615268885792541948852749096221286880421867191493691797464560847169122538802894821945577763361423343212633749169841595056232754427330998353500293752878759835700424195087421537983456635436548806668202577613355003346463308435407235226962389797963059734803762650340728246713893073964004346165708909075233012379577041070451274294370362412876116585465951232148831786759934722756590463388349910000990819697568990121936329007140504515754274381589294816214448857167136278639252852858187066069904702691395942555726109292828650388581565641537940892864409909806787908681890753441698770186115414979029406170282080111579805794616815264017206042014963058554802635757850605077705983782348596070199437036590021674838072712546045078986279646966622588168194670682479563368266630352241590311823530106676367326280997591241645985943658537231023976910354115021934972826620602575710914496345974015314068953998462819597774088195704603732477596227800952279913686342315730906181526741681859700683311428467394124996642733828909677453505430696757185663405992640279322402023540697235982277507713965274706658082073909370317466207800960394181867774605805227445331122704324872385345327167415023146034673095619245937556351831281497049289363762934611644361897820592951478266597078000008392584182718213895251424490619993115464823011525570551748096087731081021111248414653406199524743864356874580687707832144273279051182366409208305244076822652955352006101539525776333566931648514087321734699457800331703932767323689860427987308410111680806635072440764620579524283794389630623893272998396804938964549565945484643643187565014117331881970120217329346905652007347847672678234274126880923518121383902116254421911464485021460612079558924154626724794655217912782799593723745566086793042514158867819794546727941025667433372244529719170089694525958361382483877555290581980309544499391715354879127697647730871820425440093894682196784552641229232777810607201522685520926152087133543158525357648303838461761042179349869512066070447500881825396631031040717503590478251840572872727131563217996039959640788044364667420381622248850548087434826541661941433375067563274701912840523484568673936587081167734058667977334820333959514883809533332468064295190336551107796607093431197445911577554312207703116588655939737786764109807258559959074863400063861632914540306902395499190170727068543668541775892178546704315460814080112177330893254210978983048173013958171499977162306844924731498294533124397792774281039447875966644043206560495156094295764621316068129443422258808058134824023582459367370719804102241185507504142872790724803878570258185335491697940336745658045107508433801389210377629589776049287736662519284928828389116482487947379753496746963771269296897549199118962739885223605339182933657941685205191075133935342882032732636531758811361630687167117298813991066584497149640853019653033435716930949992773080888379915913819537818291410863323929059283031637947108203267970581133691775697853218316420733493813588586766597252344120988937683793229794634761322331583232082792415278235184545969987440627291786009183871980877240177517336114120539378955002555984723910670193346683359503681906221204312996022069001757894804079738904744399021185558843168907306875913715481373402540021963692441882750872944076356573695733185976757603048060429548717716321911387461573304362413220666818806688973943678341667780971699826322303445530601871864150838671273810762726554496347672254923473937710105455522431026821815757062105941782041695283610406063938076629617065798382138718356041637171585382887010992314559170653802947352943727619833945739267586021693560542977056424481827321277372340733357006146241533467955939247298902807237418860369196439129583922735520531523473600297527763273753560737224261280588969362309019506025606255551198720102744709443841099042779198656237534829231319356131521437061086708674080378497492039621877427911936252518163167237944315419379242815795070254958566438375832163281404303494488885364939028704286026370199548053651007764185907163291435279407304857270805871102266954767215331367146155515099236226564522071621844061707889980223349814988442273178865304991302308333914879501945213784298306023599883183044113946509217614395866415011217672692817514598911654094641315409871391843754769350875368322134115493927879013015777282076262727752044161669865714191692202966826871770730472696372997825207061649498561330755858505932658098614061764354952346972068184668142898284401323216441599793389842894011715080502107763834146467341597241065251073320958108213722183874405357955817551174667118303773959603673329024826747404798481372819750929728720349402789038957925688365661884392102788067155678581957356363637820465099005377240742371543964853956542580627185887931316771865259471518726063503906532438412051192791853329716684409907538275550324358913141272420709009909109725519192388363139708326582183726587846132214733316718708753133151622982825207156863050149834449101544774950027509835789646218036773092264222339244389402102446915908624151074938807255367058536532549808940904242721133343667836663587061833926821053116663061517580442204464852615412180283760785908917099384516362592325396211713130342244702759077106361541813906357078914357664328988380105584300723062171913463403412020347947173836288609574152031956585727099180183067089214286303381651524895326882010137602731159215505778341364285853311956588895415655502989278186460644884447152584532845534561006760966170462592740640171715938837460761563300336977542028311338812654098939128856763767243617548357839497464447717734139623226309626656495664704821667144968322238250274779438029459693989077240525451990380083878774246848350634694224272386163616951021305007785977231719835676744699414506515255160731573985983028805948308333672466248120904088896053584621765713699822212483783320259124686462112137046598848254120530005348317040678314725912920402367466054422827486799217803381930016835743147433527918312288393322778112196426919441981787555408270184356730111538220164436084946130265832064339154072072823280482745858829298450286954395304720450793563558848957159011355190417563326855607187262246024244280565786284612267705313496897313689505636191857383686297212646628238471107373792294545222718837136302137559636846942951907599919696441796096099085493863057341004320465532587690184791642620699164862885836674361500892616095480442294637758832598104040481848186327603565723732819772797960324678153866866042720444719647512942829223126833783549541575624096562102202314438432375486747854004306229381203375660926978200729608051369202800381956991041695574084184624198345204342303036029263689743677659519457055075415466044988011077870203981464214824818771210861378808860087189203919338891747893005636705761471743394113054193965187048284867791342371247347293946633871551173644524064872698344503278973742745646224373343208510871188985548160103378841316903057442293172895690620880799729481962428027788487257182488804374708673118468758932097466248656254279921292051699029847129702887269140881342917960954172118227454496351686240042338994517582253119289349246965205283306665775330083216255856416151833021528664450169171802330375743358670499344851283729895910210216176235628259144849055522252910104173001838739035467757305078762297318112814584076947838788813825237863785847729508483740990724934380832137849603866982423962611015042439201938985794406441468574354269414490931831417450119659564696464319226687455980407226195198888263935053509169429112359676972565707854490361227040063542411900247003978503925281510324849549159544590021436089136410139521800068309271460260448931085085934320775891144740414810528420601215661456371410806819688855890489788741875842698707619076715928343015847457105043746261983794574543042524826606241077267833735168595025548077472009876553989427190501078725706039302190133120202653715297685728400544566962826651815801293450223065326322259594835559029655649787491994857503130203970242517035627618674214759558945014906949264356110251817103606492222496048718171608537467611430002643661528442434749404120550220682002550245072833350478145481567311018250817330390885619179917014784618481663291403611777865598080391952247956024994644415573162788546630262011600568834922098142448391146074688813474287526980142436485253141131455814809404629891613048539666495725574528220586872852057506704013868921959375545882665250057211100260735259806822461122180830815613752042641204310266530184073487688913133082081064503739109052974981200993177199127690054592450522726633059300275295428638356491178629068102865315850731549239349027513724370948528143761571586882788984258864235492396517083443237794786240775694000061081616709417451135100343264407150211949122089318022296696266486009763021176419181925258621308712703638837142530139490646067757564472886047478721707073831130163896242595747910005506170979506684989153973295010886382603463187276426470868496585536942750719124296736718536681415465608300145751005623572636328617098538469822785413156213668151416804764419550041263063969925271236112107553269919766477178040490957491022789608109356901345860668588313908704881891211392910014551100691924540528309202403211906999724883914240727771925217457110122308738266096750790873315018229960701571616622895554998776191760278065509624288161995463173132517946919361118188684307656011803261321789918532494930986704604308015092110630868265970081541983910918391260794864791074816592946890711805446810812531550000217486434208170213982722401223247972042392885645341771153782278043417021680088590611767688921932346120475921503144144744052734034295199356138966236336635254756845251374272527927675501089542222698231781318870151737200980560868174301317527209998138511034279571432419728514494642493813225100847689135791321624450665772048279376373777417912969227859642074203101969729167180791018623209065295115423054891036888334153656757623781000690511979152768363416605110588125783668671676137252798964184654343624818185698818890145765274373300646174129634299722049050681415029284524811108234059734134786954913070907331485844715001424579553469120002042557264500186858109713729928870172906057556436551843486726752011797989436939793921837719564718208694922754790727193025929218992013721503195149661408650655439032805201970253606337568095215857499592424062047849635674123720910813679630166247489906228439164562281865379356396722893345680908518184511522828754290412649505748643030260628614185942309486309292565248096687087099852102765683763824032461751645119963289117497727449285596479008617057508655445314644413173228099104642498673153594749719984306058763372214671726344500379643447259511407115531741456766460180639500583683187571226657411238706457276080837074962840450078820778989586570296118503850080726225755732067817688802202484387324111441001196754802886920429653050091191058448741590786570562076331882207405066631688314056448728754426894935636234094820129838804687689680650220080873795549944530429710046542434243968432288675340509102365499772290109841735584673448575914449923441577668879825544306958709168344695276752856866671540329282981842360251096232276864825661636586731561267627044861984637644287929487419652127613848337264990015658536738983361103632483867636829878323858190385185714791343123322607004452847793068767736775076735826626601528627924475706870109605862312708585130657742943971029481797642641217143421517282250645018350721463603793676554549737415406093561151081937406586056804864932963761515506749130264878863980869392646688207659696918390919638375141031155008212897579203563697573057283052379370256665049826474707538959759325632579479351907972038719309276715952761218199344645431908443254139553265945538374900072642990103883693754658049038942619940787326083809462811961358339590141755330300676665964594039268203180491348683361032447672338163315599169776256018374893585757402150762487576229236485710869048824364856568120077707305021051947600482987370413774508706961371302623052108663772314409763372790486891974383485416024870959126985707868517899445703754319329711414267416773510478860397958524968736174016648727455895801819428698698655510542657119641271145284464363959120591417866498135631398475950774994636538691662531343357573476472391842908614116577220699558487340340904744528856885592037251282470108330771193158243015424241553279412417440474464342458730875969935413156182013231613460630468918480685963322581777835144388950602889715812340946205449502162766504221944596817681553473367743125207280598218748601929506255929188379598520419552397441510110337649841434413124249887161781539230510024363029319575955780703441373587121864087296497950109192689302729954962308178568407917677230335023701223213777132961943675932145262146066255495392242144564186324156728431714292523444125004940083749112079846473280778577700718617340903235627715024435772694963938020507682618389023047448108395741518483622722614614365886264126233830292977023896435023848304048829791786600253022915610531599416741402019068877733518522413043798163044205447932101241687937093267390825479153985258930387492267938561811157501702874919358196064595137452114114910975490454688867189792759181876640349493994484840353520285960405089183690843393303185735970231369974744157075700628251638216676598073110787453155544082941676257588580520435280237347030266731603992764558180680175464835642369702798802427100535526747441663835505968155254191672807585235435721465073089719394510111854774725923915013348673200932979540866243077020483186435993042544775028698620534584872900693663599709688928000137142102879161520188568208389677209557943140237676024152231108632024870458172128936630470619086601579043416193241210962335585657632537194835492388962381722525771248958114457973893434429720312839145818497205938384929223838862971613297996638834346325835217570039842968195647457333139423002013012360505620651778821866254361832731690598013361013156879265515973725091665413825995194605590584656111036739461690862050412293454007010055223282691644476333110000374079293213966265005299576879124998456554825995026500965160800678437221255629746340402773675516205406374115362086735163985768548668715418037111252018040016234887845631693687081742105965924101213039230009813860898810736392900931382023583692855913023888417991165717161477393069234527805544264467517266891861926194239905926641847436740574557888167635585463224885071666817710499335420087384179209105876570278279166568673632859179994578431044369690002302391538955131060303624880742335847173376194539129478317832335222369768984893400251464183066101216906038863896401428894109244785060427032245434705619679237973244360548143677410129999480686158264338813832086299598966818349609844405882403898003324415591708944903466547921655931027435665222141765208811450323087071574378218248813741093258269168380186041076951260154271444042149922916159321384807468875862234885330116302908978990874115518668011716005932112692508902947213100056508283634744984621822620090672573192507911007147673143953491749983240752915220500782344616780822770974778579759232352982476384280071663250906110481991444570664967382197675050669438404012864643983479190921106165039612400874872774186927706859562677487535382960864855223634326877737312506904965899879742377868682196999172433862230716010432356649021243593563356007411608927464428064743599988515031600581102099872969303489759947372726426361772721454979686524525794453524476946207042619790526390840935267937297725004201939890495769841730092462917910867967953440501602746399393430795291916563425912506711099556026866474316109143033385735177864686917774264198741735900223078576164008871599324591923326163355084081472133925497407963483255788650731706762565744527696469686575364363775025934221979348621947972815795295450286094664999553999363872224218837291072335960377404560615200490361095195411265136222777416477994097605362365722236485070094796465311093903045779730626349499312300134455383594346941526473011012365286854938486512881094804985633447117896275294516196386611395973655407431572231718603830336128487641628274120083097774350055329809594918364849406088279365962817281060417315239583926566144348525831448177193698370668765858021171645203110081906289965825976683976396324316890177505753140245149808553174520723717617015888800311828206947024539899268131334880040254841697198800077609695417689623982599174535682606414067807603918602096849304216064329095991868424973537826167148346691382266897186306907711370780341655448149627242780294136970046724818108347757086470340853082403996386069128106795930680859466659389492402866997841042539588049693953276291544744793866619758377957458489347705334128539968414339351618002757168233336331060148556795434589039161524339324260241820253684144389275103011319186545907102238702691383696781268982856584203538142985621753909636368168256390001728936227629375264243636558690162889248369263864503293727727095830506349840572590327362880007231162329083211046422563889996855873374440915576632735382174010909637674991712217693414120397615617118976988760660299052994655813647297337522271473573821187629756309332302511147825884858520400397185621227134269860530581339977359199218980421672311409394696827431627875539293061708870232009784915984225482986549030823090744077068813756483399480011619856739861335833327276579289778402441607914269891203617352359060405470721369584116417492540260421819260279612475603498697252209826639110781889151591853014389392902939754568064317834165194235516339458877675547365656438530050899580665002929091982835410670580931890629353305076826371334708054753404640147101126693928342983411767422327763832359842628140506545337249889572478068452683350595971971294480729187855248147542946597736525330613127347225770445938544312139443086723702309772784744491199387625307010090596042988482180361988480964699478239344081011300713745765615810779507977398872114562205697427195482971990140628389359779673171590537644483499814096921645042575045843057152366513874263838455996687787001639146087337312304699842648533850226678520479163070080051017291671591879172071724024158429214208923390766177497608194101147162601662637534829578457085460763604443776418832701960897081447984521744926887181047425063686797731543597675553759711078152065721660168259304182139338041693161768525396383320098439883200674622753293997020490585728615907070019655603588413408446928585008380853943112949390759614699038698361190075500558655078175519766298646070400324469999672020132157648947670799160679672093306094592312200628301757567506530996426935760079399049908175293639510447118467776436211218023392110298388981568661779158411981350523913325971408272584422691235646847350881267219100459490300119537171825126444761151634878226226852335030197549786710904802948898875550682194391436341092288944507496892754046825590302917405316855574762314471315919691416492638827391152478617446161848278203775691674940026183552448001886263147339947511236034548241277683835284664523208422664378110757067972568550890942292528116962221526769164347061561155867547827803274850660428535456296838291297028170398751473804337890470163781308971488697928746677145450080192492019796934535810736328031424777255245251964201876320518930119221596164615061273785446584294186511594002904223820864512427182672453594718071034365713931578543110726975447768005179305718754538241613657588098852974089869811093206803086248679137216429932584598694263987819177867478898038123624700970842518020920646713673976685128548005749315643086099754393715603002677810865531096576005161521029337917402206602986367042121619771594433525981294001744731297154468928725654392466396148029187231942399802296794584211755252059193713959780705185688312728515684773612469328586320744688840894888245777866765455551549329195714905162742202961788629851585135500039404065375046251422242935104576893495380143230229403191493298808302929784678647951746278098185990970149622725817275602608534301088550418474995727879071952110446259475861451057834904133660902696063947168423649516242944273085333167982047847610231259998243673342984520946214282783167024023105898961762106991587819377133037363652545689041645400423004300059139195582365064788425643795647243637250436909240502456542503379900404221071567002943987136315936166725429841470657002005005234251359702605852870200317949447484652957528211379829676811430736906982751816214288227679429343025871755360124449165676950167659045003878357149752080466950694867421345154934066539320431424279562347439177075961512667790454434563422818120707758890020994438178649395861960690859108259052994808657046574230245757853000893482212971679014534510515178010950285314767863798663470357601168632903514204589275492349980447627496726661119983135838569615508619154730394939428440063140584280016508242283235118890739873729281515042116479063743820285750473711441798397834187464797303427329818666217884090900381394272515645136533848769205894015850998060391354327774274725972316103788007037822002280268688050859499494814540004624843973444178248168711089924317581879881084863099737969293504016075811250078931302054407350693010569720858319125847954514470321781637618718598578249985292333611537860077217172489955946941423153757469113204719692526747822104611346935917282694176338618904818766310511585884102138407149569813071087988438567696892923044472350222978888982002660752278108557678753876340484400008657518155821054338816041060463121117302225711416479469428198775938840531853529130750298201310210321561469105654114118169821688601421959462400074621641605164261306746501045937763619597789598388061309682354034137027796888109447895041217454662494384548349482583756529030995830374608884567924065487410122634383422333448952868303435024984088361434774212771421102003085561530897818773946763117586763947172342262888204022083518207836136977181387073237748007630810727935059065248639083887495844096776712432836575093054959619538074682785796891641447386081298339331277591283380918264474798324526024401580266181520087638540593010874132420339657785853246087206314764630102123388987326641763455774353232891680467815765484207208527030721559944167014665104637186673586076485862868570049903672823005459577508650884261547326620288959093649493675894363078766494926180340955613980258089550182632081739083395767997323061224363311460332347576840809608041679194991320296676193529841985420763315672234246162994692073722786234968754590882935880389657133887835514075505334441698374703697631836277975258946123632672747707079320735596663648614413043948635477424115077445758886517058889785345225595796721645279165610833936118828630711903692077116189244377519197725010739793652518710138401444437014394019252581613227469213236904679436894440491100406720282099471496270289316505456604241757602214808177292919483232209659333850206616598869179844636052996664747771320490546373611044783626859782641014440156289076030565779895129805029361081216313876734501186054902614730199404692162085366603549110781332353135145353207549347404645447654981267779051070877961277751111940383837117910910010640864749730139931658223728285207458677343381367862780239728197841260532288508029573527285583540041740183665075314220658139632829703470506423141484242153825547145970609831497819220394836980086065470538296171762455438210863696817509177008108739825138396029096753244511951102925383612093697408470792719182513255362851964240682710674741943347000138939712723736538617253373902403062980576057324834628981909104995497178044804192131651988188377288704289731338850147945399932117059259605449943001721978133442986701990528980482480721394668279952387696704472899138847912317102291099697912819089209375674055111236920591987015484552436909530401575417463049189197195773522287268737055243888834975574617635017989183902037275832100345705301957313099020346170142363198872357966908911717030368260132237888077672581451429017696450684074989671732420894790004770353894490187733884339169934057670841111804521124088669220801301216083307155443708858792671174856439998016903900593869403393890792439720421834214197492815879792579311531284444608787097551948677724700311944579639683472588102972034238959851853508503136761837100108001056439580222545116058381352834222087285614187246406745383244250642087791446540126108596718579952599756532306298061656263677086365756972407886503777234548456290272817787753965292382369651888605856585665427089358606669309336894026117715771826513484888080993782565353992617568185512175578063794764215357198208067617873454079171338475550010246742100744612400332932021422218404777524091088500369737275180955800682213670579026787985642110785831560715333834653435744823561558645212244592135444192043206955156041611968806998340091895931436164524571642697357292345861589451450172678392924788904045601864391163434926623250274535812282165111328676905000874669084217146284685551741221948909716569130330375761758983383300248012188598788958796505716342250198090474731239518019367288332738371652536984822609155926446115749818901201180627042252417454709642279895869946223698407716590830669936178832868806010561374636688506469277307859297575121993487536739103411619223186539389062546698472574405931426005036332280792156498362937545300507587002632989089282094978853311800498329055856612257451969331364045496449839192470733572404859736618532610536998546564652552289222151708475841497842810140823707122474358379890100696732366673529746605894497537224165634630068172143549378999780173334631894873621377408101813465957127167985797644405572390490838998406651618009860773438498622953981613388391914745557649347802846453705381906497772392883960151492496352686889635850392703708120486842486875762953168782452963316097451432446180348990859680235317750534085583859022650934409065303770385145200301274941675973171134634815638641746623486032895195225925448252567126477965088433669717724363803678213482386695917265153125818561891250388014101633027463617798251505065602924931451455491285984047699416702023842947592443394651869378093975451092469627827905132122096909361635175280783537940416063339307851996471716153738957080190590826186241027458640456489836727558955881958335821088037787013345162854619698503772202872249460627887367693053891524033027069474323946337280871194437419771063472765087510333147636231382475682740143083051235805198685959780166335613666105842156963779917805833016148876948830364356372271404235721817264693295997412802946698413363242524729921318520548028146410806099538019161192377807415114514975400403537838066065595724870732024792720259032081045361741743435209852805786727157989028786914636573330232716874225347437306257102981472708847528481336166196996698038916469730725210223459163735531170933256189553334009124374408401331740572202314331595766953888442785549721028700492672239611702433113346279457195805508950097417479323339366085759629918774652861773500951565831613583839617283322885773032858584580203248249338576335142632983659977690279890252219333941929629082561039733476717601230102128804321212352619696765313490972981657600259274076000571399789303481005867181128442902996142843634779771717172491412330792352855371300237819343529148203411674163502599290828011461874867316601331933674480257128648958553762511385652406785645744135752430391753470665568396160005782705979677460509414957155186018346334874073929122502511800559072036839784034899325977991698194441075311001446407968312976855246708692688894315355873910817956837279053725973258307369048800439006909720584019615233714876969511647974242714000579107934757777742536813636153821198796919691615936084342323888743691312238801004876956791665679455186310334221847439636927467940023803611260000982970587499191223174235695942730875040947692827247725791189015112096085038151082550339046119193631776218124868298489914610463825028531747608289335327219541382333302444368626087883007583376371378091343906822150008560382176153949929209115345853621162356666294770679315029206443679217281415776159626339525855906135859357623681316143551041706855756646890930532004874334359955843562267977595930459569164275676840887611160622442803930096809054454941145863374064929311503977261708273713320391482392383978302721133585206140033759850251469728236542783797158110761913869603885049239986703878867157761182351799935709928074339811689156427839160071858328673093204088841865215317328571358465202862789389079320205108161974186752655907435278571310727562190910991853634976525114391228096420464932016181215798123009433327798616445723617644271732924896381376123726869576199041143299084385698344253726260589454978108857038243515336807123598007504981414503478760192497150490782917478673299736120605053684884813295286459533928049537472536724950436912393979470091513676260874489306452778442714752525825271514893680127653722639980321899959550633286496996947046317410294411588541886436551241482287601775654801274285676044262427537774911128612639687997040034439017555951273322124112422797077451299388415026415226076543465821553803627799184545221167065777110184248816158480360869002960239525087277579444216404010784237828307078622092802639888019207100330880540450162575303610156366807202185178348218288343726954650336814557896924641282215320077413653037049103219983570419160021402623915496405395818443866506178828129462264201755747661746193907244681195744658081181523398642829726560918822962673610805853744277354570165395913072606836346728901124297842873448412068272712480653239311761425327890508964108324203761619374793154673899895237393671571635643853195100625796998904354436975206285625392235266167636822511203178030625419641628975840497370389139724254343561661788339032075211454720909368562556297441924891369847109137483980315221304347421147233432704688065837175551751905263337939371725654041576955427005279707942010688760623490154205751101894678095870959993065588608115558102301994206448894676229856705666700715084808889423639957645763228030696583076596559850286021830275889651150454464828603944717831589596888493136000245705210958429637335203295559427230145124458977047656662849426264814851066511493271365526956439169307969724764482578664458390008014031294027118094610228579203714432183990378361524619135440737193537482378546338353982047029358171248813160342378651082313163290576575652763410710537453081394521150350122349445805603387285675213549913104923679993429170948033459265720735592599144161261399942592615493353140056017588664325567641250106456403877596773338978891804114422504783214669933353560542332573490563215421987306900594442382484446173726095829469191684493247148260210710907425378081222602125528508049004044542427571882917673039092685562549798462115820055882396439333002646589179899056282292995933016104321088293140038019983083276567440463006111447985170503591848851457942663145898465971112742196503410758315938409795734035455909058875640391703315780902393652024787667075913965090214113897584582852451916226440971903789794130732544999380735882450480694044103722924435346156094916812369604105640221596391394782819628020175834501638801808223229174133367130938983164003699971737269487398313139200774186521564498732967138665441781211540988364364127664349676091044547963593386435085883218339395117667615542660909835916092363942634675204572937165948204422248558732208267769545176997493183853214540309234603473758238644144246061131323872429105863654293276087420482790408479501167617929677216399274385640179365809871896714599952620701160285074172025182240965873068982296333885712274321862059571307087533919032971845893145472724201994669868036308949367430819766034438018882047854735964667669571373701710867249609240370794515248565865074250913638265843337755096336778171794126539201605832359830802576703169298375834534679421060983131738144428363391207092176819412142045013684698159425386136059972614214745744893118499269865086720365479643566741558179751514978991270876900794983367684798680448901136534463484466821001803461036793193467696654354726209881688399305982086865529146557651038746982795124032996553250419418344908570067025470607306503201761375873345612411796866520727080381137445765945747583837000488464708360818903545229186143407812399793548815669162882797324962680129558762182904538406587364587989010900963296690213090507677928385598670748292305009961158968963807488599462301031355001618301788866791323826728005774661587085340385178713143021039842367928865797300952019813395425607819586109534462264171432668273465153957944087906235699538868754509744400927368157526398988076445862482291869530275323133356211741004844803902993008571857134224316181494964808075352880671956696102948752133409229944894160861272175411382743430275262093257519555824476910054104023223902989577237131887964929635776726253265910138265500381872672040349282781735701640589809925194676362305418027085420855533459146148942153236204667147104743262637016142673313055125925997124634843973441265984436615183395098236253389814451811988375883708434617533694247147113341908403218808161082684405859781177698381159677685477148576946497736205038730314825392212266350078267046481233910316235094411244210760595767432791066189569388086394039724786707698953764960736312351193512226336604928453560581079124693299821135963952373176370658615782902214643397620697564854669074141294086337079254909633869174476458730276459996986647759282290687854809025597363861033672561897274317722715348288204055803651734597807526300814830402524842304392033964502710130120172799285128505925083712810066771457125203638934379661866429431957875526831531717283944757257723468080215917427796484219416364826806085628230227174795951033899696748215530613710795267530447510720291096844618236684768555670848485455340214919583437284984411196492283983106737911060803535008749701802094271521604878060302257827673221957074705059813846250119963038762746269653085176991326974560063067649674017967775331354239009926912878172240060513180280621865270457677991131573353160781329794075716395700042278577182688870253164767226685249974801767947770934902280481708658960270891930205905594903957003055474320236811003863555115964937275011780783231433745937451075735580142668467824573201453900599943771826478277570201618233687113672976133795988969145572354106114903497433109928636712008486562102548327851222823534678128655667924647745363039425164138192605137408497508196771378479509114359885399713006959576283847606244170847929691981628665919456614564108215293002290335052195201602898552101740715112664967390478826389938935630888833131537515161226301112750301742392458558548018491058864138915299586692056339657113107246343764794475868572423758935536317469072950036731311737020373864256682848039059987267661415111595764567799713100803915717693504799397467172545067667336051285718193813474893302343152361664886755585432563129235455084360566446122983346255582968179195040625255390069338112463235007334358120744919753938396014334024268537156449068229869810565143363453002368844712237211437650224455017390973085858742564393022780570365779547326628983137503741867037926723078080290655198771706752908593260739662484927592910758720033970180061783212421535171865852439727811250740822652936590297152789205213695829545888479634302773439470072670655023447205612093748010329789496592773961052398092149772525280068123015099943149819518530942364320711710943427187789765847120054791642131586620101948700872671202277487050867858045608147540678308769161922723940673040930175864382129972863816082422411969457584830295435142326565136726305483464028344427351438237569556089732357469508982590187712073044881376267416435591383325752319753146125012410886012598069932187166363437900839395390155192475978207385434096920363637568982653583792132655675962922838691261208119738370753704884483522496780548688385531174600656183875826698660831271317439283742740226833972905409332058951388438335260292734767412335882329102999526711122247318268754194308718379956956202906397437023133196558323293229670627711660958922695519486633695097555975220426694396560461900295660248117345788466065741384716469802330572692415351333682883233009406440068550680151067579473281581480472231442513684606830654181068461114200796736712625257799959273291072110369588987590361497175467998776858518499819630776817714205823690395972897509360853799179655120887586141265359895849731435887442037337281781869446908951916860233080111370419735635654623736636308991479793396091686206032516158542142733267504708938776344224810395035691281195031332241874743050579661668360330364700280563156310683881047529711096549710883476324418202546581960597188773825097174873026255073373585812342641888614336844992475913952460028292802232064738315774090917497970634575716816125146804625268186258627866698267778958468076989348952468901640196614071740171815044492588610193647993662120770034616073021450230014067605492542443020606232736306927372088913015096095703639821081545161463509390956522483686520588335100709642843644544923567351619150031700069233165766109081416427618742401661050986865895294711312665423200451409076036337035936563912498665645151929987170181635030404667052367260176319087362783936292727521463334348945487724297885426767768165157301121649504873651020630077146576037393296057137362778684995100614448160438717463355215670947286490931241417597954504844549977027406303598458793042400167620725667361071567913379857975530527594944770404464547468526606342605210334896253471070015492966645534006939172009525804167542654104868636091637809124903897418433989408282301283965142933498226044296892676071251112557621375697069258860727990713633163330933486272036207356727820653019088834096083770282883915074163841161221161222366117425914305252306470249133349660376056985153563752331541141958091603417549670798003591581382138313501397873101231827243000649592631732739907453124351915379401909349343667771510648218458814720978316319256339447422599771402815388228981225829155318727347822938659853135973084134804639639846922583499756281154895182427688351848556073236616528018867209165923854606099127752346393394978660002530142277415406878754498312393147660225657305169075823076803665421383836455850517321842720593545501872410071303654259915057500333420682897602062589562527391030430742604515223541502294914404802274179733823302385322433595561098101577643666803367819833771394873452012272613460644840479187556639654566740376333562930551072795638022194044461884942194042592166009708092146669628770394054230420319120349586927418412239596330419015881903190293089197800349674929844410351573954721609316478311296448132556304960796206095318553366029326086564832123974562153503752414444764932665860015270706208487068560592727078478165958089700331712032927581223525085952714805915853984602895769237220406736890383502041579691841740349880515085856417277573908405568947436807707266696070309649469968543635165190578237287440103204401137232998869827011406745936922176247207090223444564406764625256708392105203431841476704207013009199098047204292507447276687775436816157938169487339333788551315952507649276043909353829665560183731948159977190045427285193528412361570977002957376553624868765957815363617650995469304993021494726837336825992341315593627340949857320448238398287781282293349504039955666271636804585182144936209500207948019949496248060391692476770114569602150563064849487074033343535607574901280638031169298548341484216918258250252493871808381710175863368340412186884330538278322050549256537953045508053121552971826329312239855619223037317728479235395243930702418222650434740413996776737968184311802060992082307270691335939089115512882653377676550200695652266990653471641131959184573255872052901111876043903713774878746630605737142417657870727233511027854819040178502008764547903831041784242018036334766450704172199115561415108188798268594113125493239197939351021045703596704396903766601371016915469638757669142484933672941671923275503377201075887202949655121592144282177387287014303635591783082826586998577104785311631994108932690775415399447939400383530818764905463886455985036354772973887196082172889694772149145195541073962412061082365552196843220895808652004635866445672860131721928886891283409902851084755552057508779438348676686804117532115809266336706967219660952268006670962465706614801781848448265864607147059112414593087991795921825130281384807933848601251177540802727184186009310778363086510071092288708674279424073079769694222633252565999346359537394296880007581346023214410425851532051889526530167650705332836972709288211403318395284478394351088327832024673805245947647240964949847506274511090130174776761688579981958574226904713399026110708280766385616362144274017958362493035901599622747412439546277556731472893690560547210405965737134376845123592818584215528908791416460120679746505680319794133858793688677563474777328691228014088323693827484931509625426591875043737720918644613479461153787135018911823151676915054184461013657825876922637335252140531617913745419662394080419211603341348516060696754722961490130849145451171926020962578276401931160007839107184547520367660248698977937371313569067672570565732436661031938802679278597391247814897775258081791602671304647963834730860087577953483107373860804055917422484239466442436312621852027746973657575473893838305101446115922169127091956784253759539898094362791037514558919217226208168521734045071624045766461353112227708042380673355285102306404438875427438885114983878756059698490074268212140656604354156831729228581367535484808126175357366733721157163502991718744693531159543659007511947398746597180898439464708912594353215071801155546196834349554010408930076540662937689301498082437031853065046065675665987767543003036050139039347887827753039275764466583793660226003948874667870691553470992484204535670098479913587420644737356370167071339798335592359279953264092395264966209249440268813047976961003969222286756823263593442283546305140509996194079912595150216538859042428226670697340053599337599160472800635022498594109708821319962786990639693833853693468165728260659989944006115708994806886191533538863654924827458905035160090785255822642652077388423158792783130900579726830832224072506118264347098761511319482375332910058271180510725567600789385855356447219171811618699220571143830280297611812202882822866033308537197960685963879453940020485539103532505856854700535471653795333267807939812911488212608459874358643485425994431896109683054016566038212832683813686939223633584123142913623236451746229784982632982075155413035233057474746097072031400998681820240691934595196319503158645252371671060384353410841618318096602420844127136944755656900752637571097437510837588295642948245737728845520658928354779774141904099411466106890377359411768997131102874132305333606034380313606890052736317126715564374240665410201815183346664345625252929976822607720525064193131826269116304974185375690656134842438950034274196414027035124813533138846414496350648685624680514580642437595723124673768737603032625698763595302024259777068378348077644125998197459772815408087117805780983130730829581860277874728164646457106455407220232434218360292668828114848515798704125737156278569872195575802229821845276491638212177007526877288359927288181951418593081832267504839841480674231669267756731155120763988759892777785547942708666710073374097166240824048596198001305030247043496801187793153629602592619198266119161529582691628737154066442032060450911236302901340677586834147186767520634065594232062333340784047507853773078614523553605344526778880333045152635882362015383272341804304652760447306381131212915620244164832238042312603849305566047752998642127996560181680214497587988030434643209635956161667120552548408925888488068673316251959907937889006720749523980083170822219815808100360441389229017706303073366823026910686242490597902398173097106793579848663171946745905102974409438130624786976117343227377532074040973096862650800232533993643390440067000954251553034683316639279740164047774728531539342085306378793273941716358813835622139902020370707017630288088416280508478792931787149206995142070423896245925728437085857181646868319347248676692122865507663059486917207932887787886445418894501612989764948906261795230264818626868728714824744872655633775083710749736544336018904074857079608000048197971382140317800986230485751401643336277904868235540079130133597348497152832172353985357250898444447994513715197864882908508981004823881243810652174960241953100468740424916127612396039885833354161181210530913817998234842577590896625017538880921569359697348430239236171681695747238733625220816143107866456686960284812457953036445238691281444771571610291026449898217393916689712060209139101270120224876173662687305967279637117762112892510764719003390209319966053402760228276767045914380304482146357122941133086516938405701817379394268066147655395519451569063263679882443509628624976804019811516825684019227958283670136235444580940662314183711586938737414621280839560316791228223183994665896658221737919211416586476520292024663196649891546497054321821873868636441902699626777185048444869672284308219701359932741833244125946380699423815765760900456126381493572851580573698654819359639827804461552427048225974505461661382772639879978915564474353906124218031611782304529888759690366273935070366011797281956550366092383440722908510095138465377918748933230782948757808899904825769112717137647165618039554483590910870804604467354885193188864255041962552076554937697294207625567272240838856939998519752539643646145710418888650088036353418824585873927161357773003072346819565664152471493637891227976298374331826213165004197242782260808721228652806310269060592660980378919873561228271875403481377249062299051836706659666376935063545085297582138781361847800415148353269351320277543588159968648080212562457729584355964206635626032816729586626554461941792007809389752841455892165308417785963650036469422935080450816156083813197032304033597775812566392166648051348944706161309868434355795177083502430488101995514823388159339546952927361311719141752543728444657756218987845138244621672450624109049452732552032535503584401166163312684229997396800961403659918978936064872764349347855659595531997110255596242656270912987931677651414740122241100075672178288584725682907471873250194484111938479851919323440206716012846374200966089747107993262185349593594553746601720023547759698352275903550522347584019983118714760976520750117343912561162874447567116516768993278403028512753977072298140041067942116664199376340101914169394713292788884606857473605393075567072868884843933593492839300840746558472965650664997307101444963877032114544576098968944473705241088505538728947188462179940662819279113670776106454890452646071881381592767513358432696045837860412782572879414132832254445215800474970389669113966364799355914269335748189761434527710200440900665241564554244506455886728894176347489466830016512402234571400415733269873738656122301921946089784632215485694295171053143160534769838059523450887957950022748287335775388942933556899479984851032310672100880607601573228924412276194826534258134072621777011135618038651131901938179864052187415161962071525942185413877739885794328215732225311081076605907076349031382751934970125166220804320047949064356855977688310009362322408532693065144750253084105052542736850801641767243244578692168353508578219724447284460682076077622820047555546974806115350963791804149972796924125247291800269620324713707571938260969098408030080668419878858873728326315825454506276907909791801139923948669801235763897427551359282317291594722345501322290749081013699695732250403392287794881616822951982672809840843746803264119790103533758317152728399656831710989054398056676983216917267523655948775581696703700401321375955262642982525809613146659095389609535138815873753324687938456291237112022104923259569612434136729703930178424539946865599218851978717601932914767859108271544804105816980036388644518722804980267987706861400513578136940889003320269871334981644289992646183914013395287634779374194713283663675883862936417945380436644716495772183493158475404388154677264747254569950710121892896080371168974271543867839867655067727779072401079842042463367344003886771741936507112048882907015558455139926171852973192405715223988893789978841380203902387539338830941705203144614143138434308302483083658365436068436675419049462853760871451539067129953468712665984406002770612169419271754870301500359060817617012915690659150004191201905860260754984957240360192767583957738996123462340810049633050335053494279807893721367189768882465322576834044419429602438262290577423608712367698150385513331044723532254156693908813844021515046955128406428987781685241908460911200202064976099233821348663042013162720152155290242810439380909673329650306215143529477347988129256404490542608166028566454598705920239214427867728751174952483579336674029141881848638270590072963550672435126889742309999797869045224356157141239512512335053241798471651559532078216223116263271771861993871589754806962580953506248847193944136643097062191057281537043032853091771139187391185420704431713760448120294344865443739497225012197329715951289790078302273460397736430603665253934918249252304941685618466861906658980221397122990349197088890988481176382947307171039882215256667102232696522785489438739979790960051025421257591629712597027245251467691062114440236866131803447170361545929855119967210538773793801978617667801267920980083675138711949524920836851142166257534893114995669699706008670200914499197965453538605517545285483710894095568345782842993028379679663817315403852864586347145834653509601262762223024274531729133357357616086050953994677840176227614293808644256725535385482671398401291225493888490545535482354302298684220264789334591957487673950617293819703002561148964604660920712381632431200175767070093074512674605874291287365024813431715368455256509215976723792033364531535747980676235786805402260203366177142544795380163732695232377754505834322973472782789529390142669475823114400881612343509619171044116110454714045992098033057932201140079465125234955356407628093523465592039084298500894120350098703371205744615846393313379351315441608770373662231429612176196485948292777205467126641362171789849985790562334288099647061262681378327077697963535492255720884129632693694467349434649993298622251585282032680121291646253582122068366659998468029401644009305291145046849642877363782891936488202751859676170310610571236650027568915226286543090060702677560129327314330896013551428203899636545944631387387869896407387739892676826114799914536813386971910114323557614609470391621331909365025896732764389891958428695977487112360773910762050939599336929696561972903837010829207202997434528495554802690129142494746245495981085673770155874149238009206428155777256178886734000670541739582723197992295848647290330397441595994009522445765662012013305898225977672477448991958020419343164287640398334576050911806973710068169709162419039253626850395740606408105697633719342053385248426621185959175768255179759134299474135781112014105611571253837722747066314679144560151297179205476128611239653554021756223885857996879879862330488659217369265830025722807877436736002175807506972637238225802273812387847760152623129934456143259696173749546258468732571487719401430890384894110821628160472717435772371767196363191573695284657047081583224499244006635553032663016244216436469474049588002507761087993253404597484388458013930637542573680332422013850143118374710537195282258222562774459865402511966940355971741678509846977131714845802528218235407784375702861660044853387715575662832001420912238639673229616099635955815148200401855116516086557208266073286296261672968092146556182694286994074772535569413873326200777076651477772057295518394298509234837779564825754738196755614493136946299615898698546745143652129924433435838046030882446484206120659491858243059719476740216970067146681480684646877608692927589177102406387644545422274962244060123126481287298776881304054978317979429403396860284792790851033844967697766128023254825008895657806482410026949391702002619722069934387966901485012637592946043097520615147795194870030384191350183131313321643154344627146791205825757292722276135624363996828446073821621883435653372805207210067574292783324258256189190230088611090422500702751834974825962380891473212157363577016802525297591491633134907808190300986796500193869565714407468288683524524239425194785420960454853642813347163795657515422474298351598137771855178438912128359648553037030566681575961489061854850781999132788982711947319944186437955352736146803486371581524282983399547808570275891464086546993705443834861637442742056906107886589309998288063382757527338941970582728288870425818718127847821199269701784763512083755403648047894814813771947712157728746133720256973727906392655371906938628902282071326397449025663002719652191984651118229604025060099340035708718777398406157804044263946822113143886742166142026682432982960727059442934805122614530088413005190129285090660745319862996719620135642574200899995237534931404370930177018714610114138439714874192704633813782204899293371147443804753623911697907349694629288374984378442376217947577811296278875122630711986875627974245498273613155247402944924278084748844040653626493022717098475480540892521393364916780515728458430272203350109474339978274383139895274721258388373120934407903551874201973752571368586097305532658846078769386829410549930234847046188773443532208869618589342189167565980306585184679901680223750419505321486120267349262863337981563327676056936919435276611470562850659813932285094987713648792448821921243039878678016509821396182810894331379125013226092013007054090990797422084358408719105794707087148479327242383267281903141304074577855267488515750392340036040895246763595842371053549572691484413011421209738552802628881985439342952286903703393450580888657073837400203568821124065831531305840339723573803179667373613400792223960948780523147143110479479691496600983347580769169588687865875422225045875166198832731528018447205340358870956293234917509584302516343090178993067402766146069635493853154474917310427853004065549649852572726569578401908944621445596314321230306667217081233620372326993107179265237350731275101198363788677504779120909914169142634485041415474091334192579242364829103676292587923144403828057001768100539116798735555180842332049830270179397359921260897356233538401653669493932528283072532096273934532936389695960729037019213758561470313370382145377977331111865194595941112172487287044219389607965957284503971209891267535744909791142617103260612472215789116878450780838289828127379909203323359695135634137811202873433136862781195311210248357808379774268870182008762280733612943524081712027766347383528196775587579542258115893097880416295375209147418949220741551873291538040082211060543659442014293215355309196644984993221043579379029713926190375128156927855218684033985039644011339662550274070530500822305962467035930764179959284241966298454871285788588368738334542951196963045678908327328992731844223264673192583323610173861724433002894671158765668311064058994653396432329578076925125389405141893217981582600568987857606878673755449887411494429883029144124923278216617819674389090528328326286941323276631349499315647332730662860294760407118072939699549679089590500052386603676353298833609258806638409021024896349573031651875693344502636541329520443586240079675621555833328249610218093873604516112245902487879439678997619077833002097966537655984581839161031877251153433188287184863494345107980848946292612749868870369990656141982916199261826478236810362332807943619998185752490774907010961166294614793856549219992161542975565489281202298910510106868237257993601218839108024948662781554792074859474515595731233870481485012450991305616518885578536033622391982278739487991510207414416810844990671036922355549162273052014421069877248885246751800430518706305676335102375499243611510115154877626426147392685706078776041385116717229749953686806798046378537342160925810570611804003907623236190523206989494244420550907606586092985567162801411174238804877744669528989291819816262440761370239334848161722927201660822690238205230194323335858521432248065493374321374400234922535822685078861444855758486966603536712780753359543596048692610534081720308240284167490424580391830660162243089472199948233449169607417363545416584128927796470893759455543289929778764605178948377942861310462222205491011473145158539398427708729001753195876092677294911994113586926805247040292192200759544343020708474422241368832759484401884682248289234479356695522706971270878403808541096085817140564550973482456295010864194408693776806095622932413140391685286469648664151679923562400981747835062433237110056171462482179631964206268227707094978062500946050785264568359045894347957749190325512734151312386977092525997975186650162787694392083932184300801907408284987250756535627689981253948446986410855770155343988957978049443614639043499268590011066758440769461881341485591061859619002499844756988309361036979701213463450334127812236151697254159656998562858303926514398468564963395954049275742582411487257326765798227818622194250282368786326449246646754263434119762730208240112032084898118704344789719422881176774720209160125860226531594902584202476117834318485978452993111988565401835041773483734347294912111181930651896118315520959906816371754207540634583549932086925165232464358168095342671263044721784206410578270656783188180042521947967991591723510863460777730439766000811360192112249565066887614120926202954708419948741035015616789780285096249231085914314172408865664361321632245203780128774159282848501128293238107277924388778492166778239949318869065079691089441372049769811382197625071488277675719993862944961748500227985480833509146661671414535919617352971846229888436068395713552751281747914018003658258707377177614265474182365660573885248083163477441297148268900544044518817107133910195797335824976370032033595764359821175740515097791373689020073333424630589747666542650740136804388058915119234082008984399691556136558841444707506185683237724731456839584537457838672272851151474673220059384084361691417830312133744880002096982647156726688901585667567742207625878021619266533990444836644006584941317939619650888480133906525927695718116454745181822634546974874494856293684919642882293112034975533647508486443714620368355288204822509738442349955192146188399501332052816704289869729875353412523324728409984101713879556676650744098764116802465373223578971339088850140028040897561593011566696894724349891634480554633914154973651089037751867722112101045555392315090152891072772782314120314023759276678853641640664271387409129148838847987947620039175781825343209673543292201423524011934399714434467963090644725472399734993748263508086665424879078671358327680423665534253421748429538363449687810821668042029904590437646383527074974372422224805789497416352617067814118895689247453545393829216162926903815209839100042929547487799156846800458308358583898099991456968970077666177028115196037753126238840598120210616304911095199919805465206858080246227028722603019567838152728043712938590056724097794180318544604631478448594624185394494747893533470634866234620571161710866940101525795277837749278374096371010422616631977822533382137033813527301747820619830196435250985875382040888779760356039797875880666898816645832724335999202937191860592373955780663403726702912788149644726517696427396665444383288060100063432333290928035645603303344556527391610959175849342639391200136442130456897522409341111085639114533142523300649156156408381349350965427472477408032676644138257147390074567533023103441994968276959547630925640826300233959930992736535465554585154215319367824976199282814764778391986822167978050498343330184939982145823724743679696897658669001491996902980382631831416811304168056933496275151752046898436614684415006950303386734599633495727080717023191954401102078398187892386488986106140839646272738454254450814235808494206613800816482640787252209320541937186735124007756570841335030703293320517189136343121803896189511441480659096060252121046660524763851198277710364477783366366918273059869651484573907597719394538729909097195662027624371527685209048583822998423916689693408962889650643425820536332816731136417404846743367269780641188553953664291261890841518782020236074234116881188656677908625667772729976140382649181096960170350614233783752161443853932121328807685407943811440382155862985447900990520420527050949798493171188200672947804699814082598422532302082051457445300773246998010154655568892061049793587749787158809673299619405978278908738747885355925537373188002758199854997681498877271852204274096552967322690088744945648108436898818643857808772070833805683020332704903773511186496910434846292861797848955777837680451796287305253093971775997044396516409979680129291531193486058638850269834344715873728154179927671071240252585184676501998912302547637174030642643479917663773375090559292618726349883729980167862477563945281387767838717671750827820594969984155587689597203581759214337752751598550417694403085354352545283446964214379911477047614787144194016909898774986045401837287963435895864973993261516630627322281955328077676244459790847910458749244154531622800908042940388061619108086330459169729695254483654458468297193457770531525212124939607586432954236686674720391862263876832668444041352267646073247674994111793919453981880460046614815676876642930768687627934565450615669287121480147970565753764458496199374897728252519547234023670905358683506376784252667429749496951503327473711262500828592143532949311654819221785436273145639176187728327714340556775249199010418614829535032852202937978142517518508520686054652934716432338420265846781325844290802027517598198634139491065487861464127912176301997266029600887404486625141130754976095830388305441575476551222512657421731979169797121453877373708498899268509458929118339904197659502945936925509988679235617167277517092126803486906340654273413622683745140794593519114167738847099424285831871868767732582129905202255028695765574778882544605752806362392310226596344810576090986281796284513744410518904629363578813166969372288471354367038302512971997904492026326916943042687890143577770367804802487385419377336745209927320808957011095925278058483409015819908760541610225779598838850697864387081564208674720525201302664683380927943058633979479512041610272629874199874756342401958860155754788119412214270483517951587798905427522504785868407075070058328393566279531459837658506396200477790597455593465967152450911818423929466737382658403671493684404735282764041901644501314101335298728690232173486502289321542107380024778409956609717970878569191442002166013266738411900615645010168714103478394159543613131573666835928469807672919686908645887857795920339306441010530580751700454071708544326200324496695573254134578243912231903542033597823781624877976893081633836189110917832643965926814294212978123093621903616812432047779861381226095504020753655379263096354047006384220858471919715544373766273115296193419968098550840693456934674034444043641025553374706080454882941651534520835331207701257628917842017212106835721467393193493465780273442847845906706812091947937717764764318094478142210596570630457579252776448840651795858495015204724423250163728439441040752568576868444554428446179243801020864801209764131193418112013647801701779231787039006908021324265785659538715188002204613342444700050638834321894134184981155161351839895790998603793949172172326189127418567305514454203630700423387298186704435904525969052419060813926935942918761883132792451295206702852701764700290263986987936508678671498191676966086036237033280451371060274267468910257654639616979340703568842620614896754494490133473988005017215523139052658926029328773260517883901324446237843818067726669688993855373205799916215262901107076791525064331420052393141133139158028660427848974666734399355751726095011045831549813708403679771304377462178690660830330123523453107397917097152806416095050905690076938192271617732372515725801608384760932139793987000918011337741967735037989228154501828735993917109252607491002866846374157728432309034344749841616365811513780918891234407803594173958675903024415447904468778715672806755868571548973785322890350011091178424458259580453135536624089321326930501987111282990686757840615429092798764603984285611059298570818445901669048634894463229993350964912411532771491175640881517910011020516189620820509559401619690479277042751476394556080984822644907812912430454788956252497987861756220439264767088901802178846617313441807736311104614660519498228178912920824546421980496642462027065969440282060387082850471591741163604628204309041456175498332860127605234575346034190421244599688387431578199799920214540966130472417817931873163003497870801080795688571410231733382150516073687476919073577926060973379934461562945663801566538669498128560908740647483014923137069304888476250955550145565142975316594469086653136338671701253617709341901619940592918599004000649139291314727354883435656527213851710673301726294100042042536490430933076866932458957712660641150269450488247559689687624842484742688499645977013588000405648091730936811152499335683060728788321949525467563933466042797777890941826828249803553214155445696084602044103822437581189279087307850137074920637731059985742655302303336149402955062059911902790629192718911595864029952243920154069123910216878462988658616056896976556518549567550112337255853424807432681690531202318065991567028717757693671603778157162748907275141497145563424580313661617078061492502419770621075990881714151060740542158228586219517489839160742358287522338103105995888442989913019406443705772545497272359265615154791651087227098751047708571796668944808362493315870486634352177735023680060070181369558007990799586729294145960748584304617505726918919024170165030145861602257364324341105403850372115142857505891618952309382583905814801615665566573746744546653891520470759228188407911529916436568270188059865661195839056461202356057535787049003868736998383196147080659737212438080567723263749284959607458650600623296023845324222082979362705498931780172130899911572383648539842993491184267350146667951288186317874641066826061636515840008948449515769564981574011071022590690404319606831183994385952231747308821335630405972600722801379919519956674685700709470616677520996594494571229090210754139034863681770184222113148722869496562820067981859958285784297056381519074984699785007177555564281050853399765451927471799565164164454097244313212789182560751901596158458046229737259986513769597839609534958536311058375027607818360505158489788290838223655255965283383235900580719281980271860496757441039200470839428678872897295018776926351126316630442503213961053179566489332786978027565314504085725134805536571469713948772137553972212244255073087862206354273696335861785094564550555785681867123687566849399816147887405859186235577292934959558255095544145630211769365824144467297869424020259160244867653947766597504577355306926635171926725814699913092918525946341689967612397220829729866625379816872794096725146196564225967112007960411775819818756021429981350145922652020400838604054574002268138579351415159137170894820164534571674277695199212792060479710316389369728243920273176168029828149732237433799233006870044034821440216619654945908441680177769923336384840969280129574133246106263314231328615470955402546297256379689853019113208344259391776776144229157144238190578007885419463307700435294084551080370778624113968510590564922644887741469043166850142346958622967396094626980783799257996964223204985615937241737876130155096059713963973397141299528373830803002903145565852143167847344154808240323022450119759053204093195542232471179956180813299746597803661411697639520358121773656063569901784717706216831676597841864969008798157545063685585862516058499293856743631013600953104345455961320533919132302273495508443830003168481470992140689499111236169996943887978569043434883194490002208129985102455331629651476946830464240274988560328856608793122860353475761677187013559880789239247525399766366210232353122446480109895110740819629882270235781292984536058147694592647203389095704383299580484561667163594913832503762350463954603800922882204214765630971795054231584123512243974026335573144553335666823812586751792573079392577971181119965050752397992746561796383766751504342803516958924255625777168596473415503855287092753875994877997350813138682928668709414290115529985867566079545086509727040071923766610101241507011937731100237204267229702303642999284277937501422773927353317793890513247050793089839892810132819617022156059964902233989773019082492718122672584787837227156528954142164371528098913034274559039014738808131019329941766049879532305864930699454747348644707087591452826391489149091966225175648656808472831552406647093727478665554235753870975464959631819708574996858044337721802350489510390761879295677765911993636479761613020913517962754098868978462098115370981443062267323289079571841645964684425851508444710830023126898586901511984547102096645123906315641014051554837210179763981380459613854301438290552199018240318673547320399047138539529632277955372887025406559016375754624399196627116132868681938877889653276366998192285582170058410239268018244604509637985987254504967384679134553118069200942260644101311589316555295905740371700167806143218441416463883292548524552063383073765843379280411763968093380077802620904480043453983336644680114169238555309223216360136207761820547531943043641795507864691442465476855558282394412083244395329371000128086051470500487722863378822996114463195854999258385460921760598749033833461595002582500578791069179177103014982837967393996147085198812327754175294621316049828062739043977801482923400193655852287866479287392816690239475331463913517582101256423800343975086939824452095126467555277890423537113991857344556609615423335552463779559015280098256229018989790416989068367964251164908397240506230308511156783334037747076089472140541593095356043404635991983891376318737822972153384621198116658981999182065312569131884898918943592072433600639234690262301825110479780187838837613433917552114464802119099992481950025777587187384409320775774648844539301313693630957936530034343735894694571395451718554133633658896529852005887005368026186540187709350642013893897895420711622624158230261406414764323064709546777169850436982972023464868464800253679442578231342580117702250523620221124631135983588116823426994601043147903779264868280836383362018136435754157595038035004234035085941667762700828892248065440608469183910294977618810384785285624235482194394791043996182456366846884728780499196437924934126508919373921795844553259124276962258648733947575931693879946741132511626933997694955256696628726694437932850360330127630882567312840562545244841228105495245676073220564319274082802873125334318390909398354068794892823059429696080132641133517991233803412188707335771547610483830533980898546382632799331600102266361416107902902457908052556832511352369685942066298479897497974049089039820183415774143169548421063623340482921570418497546619425934538424620755823841407098742398802240670198359742334114867860395015257778251104876213156771693686451431326095218605474193927561914558938875706062595147867242613277063176336597232443026041536376011612039893613985796083684235371114778603453165030243884324794574812648533047648440026673080214675747335776819800037610174115007847605703224951501837865285991568646191278983809203806913382233003565592039043462058408734437541455206756404145912296659151660088927424215816973525850649439525030724640077684064220308532675258985811985611817846280770673231796415326143843843739082383257130110199170938752911805666657029738218392903153594388940220960582911427046860171730224455732476791069084683621152060703829539138039086030917538284191353384440414455615727332713538158599960008025728710712200184092245776638169368712463786517871908278439808900302748479330395734251025920940783522689741015261476289352415573696170880817901736089692505039981358571809218191514692960507816799029537306522503399285174344224330610639007507814576652003561080391970065632009838741998306882845020055143438058943923082494557798913192036794035067109285651197511081668021178335018978043276641773085370754111341903626407257668889630586304873344250767247500987533384841670244080333015672617845521993918362745384654818763285035464371174210247603562626822944434422003693391753815061832684162035253941540542962593095852392272565757630417827896386248240249762201184917536465117132285402261791792664747683097468801522412438325584974180661513969019225124408320111185490520426810790970897032117787043376610845881707029483389714755197319145102914637624438861641798993831641628151977303089229389995628219120171921298504017734989289477961922010803084692167990020468616765184944356263447552022738490949205194763053249001410539066950278533541221934398241072421194778048103961053493649958354376003442394284061811648727560874997401931021123353693812059241828319340496840654513021483701190084262743726650032487714199769485314807899222480681165898217047982540458562718121087050887674478341230012462370149518088538047791120537721045274121876759005964604688762045462779900422340611970951534374401886527139754945793518979381879157212229080443406325594233636386535923660595560697075432116559608628582085390468061489758880878186905321681820445239210289261179819174347653069943706988570252919895351945875786411453221674932089092321130539259737238130345880047048360006336101118427160486111617218234060172866706516733872246383029112260294513989974769680664749650825941514143307484790234721668137624669169042282948239669174363332706972838888390709689660377653026636848150353701635730999351744001096513337314951159085221210415275817560375585034547909085176974807363621121381349049664338266389665333921755607163084887564598832079306533795435746129350679982486565710295535551653423693452391555350645902186913471582219963939235357117993028853188748953303971489398790367852168638334449291945768176051988510363253804799543651083219930769920015295146826547428202468523155816126497156091006936409763057102140306266755853557639482437872576481789908909104123568188937259797650386910222854291516656456183997188599226129359030604264738879231362035920202521291477790476513817720993098184002998886767835784326102671442931691396372847425795824873485543742132158391982799462954399201597437061138986570050773200663246173048884691229735337992904157766665915728342753715735242683830245759162613068452548324408989253279667688001220995824565967139183082076649384850963505800163529762772123138692279782255091376375044402301958034733085123409802634623639709765087936381012131745817087743830477072492323762227013834497820969050866568523363180990710891386549565866780241936411604065946098079552891649628605180867230400623157083268310637064459506656741557935554885896618035474679806416111977072683009500164773008636278699410663964053014693642859209987675937618011973891799690854277684000865083075665253464289325869755226563007783376028862094352927780693104282485388567843946843473777443214307729329542235868072522259989642325926056969640919037958964870071273126529520556708283578740693932538231563109875623029740871765197719716754062923432688418664009585549876930153938294924011074754274663401005547973570032578497620023016233455589537750056873958367176287278192285737441243459701575642903382205198422780558685934438575350251025457502075291114761931129247586803881313140728960378116080641923597029920257784649991783554739521996355049365227797240503790506537983715843518441802874243529777495122875372349913146163373952703644405428682507142887326583457853995419981304026258757654861444449176177078823466584860809935984480851640890532787687898134564686040626023177699508861743029329311336399486685391734679737817648093702740963777677102079696587564925036895896922767500198234917223655182543595215430826048877528883039774373633247171796952963752127314239689905003799908620302617363218519482682674670310574626449873009352111753398708925535488214961011199620402133158930902779590314269130360039055887015063351697569310798787339900551732505985683262574632127364926374807691974329405819647819539920474890215412692717438895806893265121706509192174314258977700185049666950794026707040249359136433626158108615172310857201659141715452179071253108943495938419553393438043801659232075812525713130599519245146316938223173214052816001419513147076807837645227916904851891849955019271085474417966254903569663600603683852063402196755431892174568031615627398175489089507348917984550778125222487643180064462303493838117668482765489493721833364484159663692571045928054736575206538395922634133698048394995519128186200820698393767351999396417413045108570490408935664386093297947603500973972336665746639819552399300813474491826105219263889103252434643370873961545719873196889740638211391610025177085589513513570403342432008624508782540039317222702494175083286303642715771620808233771994684539609031604961119528891154594630526699364829122950772385780011458641512050483504881555353565079256063690095619113224269793553565063002925700692745535121564810475561819282202554640529451303834463674889426433897400456310581486451521214316965683751883151447796704459841447848684950359075152454357591722555519114287798459721224226478188513298178015841822558250825788308431959206790752611783023997375036654079158793286801759464259696064783278909757649222456473881900579348547819470893919466221924188812182864280287108474920144377436476487947612032248100157646261877593809440816153618847764064669256293773716341010897017578984663198759473471024527422722866575347340207586838321865383955407958468235213704469677839440257177040644149561979983138272507407660627095286990812847303672345838755924671691362093637309256008773974271812591477573512528009650772098625837048317049188427333022639740527645472555099262264369317304609128411299296050621779744767893657674708283797418169382072573025692709652772401192263859242524640213450084754847372362628795513225829184248838362153448914505823826926725960626882450773244163836646514642001741394549057929358835566445860034873301370638786154462322177056626576629548896913194229311722621017970180860497527257544599084749272851539811614623161161944797971221411221472617431793311686968771822907126436784574486636430954792610575171401264064327061408181597268576800156958091905851675982665201213301862246544349821659839111241933195840194225855946914571481735125700829457381642663030868617129048782666276356897113692409904037249684098265012261727053205173534463096415903344574610939967290009553489409384705367512986588075271321289254509684554791816934127842816941632007426436852110573701705014507791468159008823594270367675215272044827690565365161285196350302247658786044768408068992061660944190667363008608260328534306855308730868739997174657144165306882919197182421031100219738911492809957999095334702910919343788365237364401092628829973939865792718108222530756671303391522776877202569877214040372039741953399415810892192660324193925575711266836694969077426764938110911889623867528221472680633479556502082306453025179940817017504001098842657054601163231961528844365196107647321039814613868426046829160142224505273864109111115463614540519466925901558448233098237097331904623387452834045729829603471723507728787558016375313723345463365449317385940664309139421225121379250780099487024650370462352424359105122179552472945217749392350511601299206474044383333705289251816125809531311678240303905443365390153234112358249443167022323753529655380575835811210010563595724208244253888529031053725632424292134266732720971167635200317052282684275621423374401483700827415544580113536662700922036364608404002034227623900528640164855435228627926017079466713590522041128468628757240278028270762457691505388847364258247971972452535921636527361701287460626892894172178829007932703200259452233532584445142248976864801579619220867562999279690077932797307760735825191666373717743519057912840290700706475853423347348383946612233953218939001890199207634180573934388464476592747137378221960522524182812471356536499542343965909852158313997203750223967647555359314454609893345188605167578941711078786345976701314295067998475198670713031378012493499904912120291355454938319925241972592400016485647087246703612977931365307226223550463486415992634195589070582634460899364114336475600156274253382093875282698654560266294484751599077387587828405588629686495888134380133704150008339821069263626282039204637808045431170567557085466791645319391479045089632274591485163680564773518832646888200510096783424277463472486069861420364918850264952900660968831230534667452351516743680358898622217915849037520001199413247981054372726845642959900688892597466781951817100168686242166325094181752439774821818639809076146367317384334577557490216823133177940808016521010592241553999887611790622406867724254694381099353105923415452347638958040917574089443452583407823929054564244037738379917869737198499690999367974105669747195146287605157174372949001053597540785499041085226294736585140229298738876456089137278031141090122473331866770482672523930224576922436982797567611995794356908158277603784192054912406707968023467646572744967406707359090614019355957158458754756378255664687122634844254037999040334145062171248804667695326288853944327487837429989955658573935408844299724584357061788244733838848075667603907526818597664234401977980771771188586521052741472756697076839695120691016343510236372519925356890270423175329175278353805253565419340728142819625111302593994495547126179275997619190520335644983507401617961097675478641007143015434275263426189087557098959071208294249108738931808250658052868294428323433354766993730426725299292118534367273064325959314417406759212163980209366620548202752431255842491108654598853203844678293105839734230214885127781092437491315786724544387817838708146661348783075400284076724187863745012098968940599719621977913329751882932393124784710038803610240403056263969216151700084180059866243035056375858979393019609576663673645041570992754984680912030106796222342206873925958515370430831522804006043209694010685097535729947040810376546923334562581084881645914660383788757821265398529583594958703526164341023250436441433835008731318056171502747847659169981498110571043680926528890694808184775474226044419146493215133339706616820308437474022317988724503502014935182983730214492885728035595669179816902120761724133332128747467652677292648931417209248887581961529530997613989800095752884315534632601257883604228607043030804926908474492804064305309833732248180117824707220574084221234398429120476525849866308410263127171649503986097087807616746310180043273649850884327782137181805486869941195490791565495068612161097799266493306804710628819802607569046919736727702589222293555904352714869817821464207130253487474274184682727690697990993350294823108162368275083003781655516965725347121341940755485212214010170982255601924397602447994533184325906324544430031880570237851433089955897827013289789078701326401682650125541374907587231671463809486429395642502328327790041232477658049166640915432955957839991270541334581583854473263686927907436464411049781467749423757760862828816562360955368008433316194761438292450083508068896815653712273731742371400262046464353050185665725492077671003494808553035177907827747274811108449334197642610291321465224518087101844371448315277907124913295657163838686272977877386664475407234037891624984817902748920453372499155421343714019909751966822156735738553722163447129651791441948971946769099226105156383072188098253796918014152094772044734329592304279248552051402310911971874137381060047375998394723557186431823669271727651341254710872280968787619481672460164902294599902231225632478293708305339199575846915555630703478757830881700134630158301366484310393350232705423272884208003620684777250250150389150377896649989699750420018862389738537116531866497121003531135730408735205751125895798868743115770866110511634144624656226623839247979999287565073117702425633955094792990239060521247887561825034300199683360630873500876938538125596095467787152074577682030114253956840617247573838126522208390806775930221840724970527469261730032675028864276172304066611221496049735678359252105248725806777765704778995117093194059565645134698432323253063100814584250084768727643884948740453959713488882675892535926159758962452217527408033672951074332891991628380265461310647041198933544565665744518320743464384262830139079589108895113031646477501484304656109313558726304421387375341339515122939160637638418648726578730427919005770736562211741232087266552858740078484149426153800881206540047851122816834760065327213316118055959837745456956270925669571654608425002720118439580151397454664136400571973995092974425442731391326557750392735078186615939982664991133189887195256354680149652159022608683917519709739206691389736196633116966033443567545541588657405234435691818406244587245922705572298037901109909853763473335973021961298333495200294511266893665018543913379186698754315054336581457608737829230746836543500689715723103604272711458735597348332998361684688392452859358959634000664125635898586305380699719903907690135472116974031552093010409757992978716536461514217393568727836825942206571819947667142754953988431263151710765334094797652706874131187907489190290714140521183853069329928106960988011905873269980698220157683669469662250305424329168159101535131196932324957789566330628359134639549607794203080325029587800525456039473589654500532467812113086783174212259299921681873946533549985816381134528319513559701077152433315999533057861243984954580275383528077937827025728523419279487804143888069288907540336888098213085451868382501010901613675843536630147953345561563853979978853368461254958353467490176588102857181155630952136789133318357043777644948966135509090250726665821829218037511346307891278299312791285004913575886190496909572529277395539300819688068702970506296243455450565621612754657522537544334410551056331391831307844182267069282117187795541367523825878283382291526345409311738699766411536359860815892830263938920980383021849500472797604731694165991334609828153104365501195769860520855826355731681776940678254834865557461459138568307380908871957851337932526001996979911473509435563242436447037956421096155250581913182552415226120194923532405506505671097822137834007246216082724851910588786205160019216859118630270707047597571229760857074848910684723808503620599060926678193656416997516104742841072770122737554357913464245828784647845437113124608916317863483387057372954661172245642852008021803193131329253182444969132321716942912034131566174185511373365846911318668046423821940012191314365727779550095568350621733500830009090292104316225343352400783620812606202571732403445973392853440931195426788192640536086287286533521770588135572097402047848967131355989119202349719439996273255768037351695232207282212170962988329941006348988270644116182233831122880617290108454188915081794063363859387606160060055982224641621844838890821250376155930461499865455579432613344802112763363086404276717345225149340126295359209232150927986593201689218009842408484367172669169005810272905006992796036529002468623512168407904435624225529611023201016606871794444241962341148290715024433770740033379957722302525629320818085777625253236458954779694649792094074780707888032641829854013783028444680291397222060793076484497799230460206377219265190535108086652560616156347313676021540089765762266162280328222221078622201911230825057158856701900382874869007613364886258854558767425456870183874610374643931681539930852687821338958758869484580409225378379920823754682095931553780393202391295077223277518500085744595705061020492394630421384153100785602860828613355167257562883237675880486157695042545463706736471969058111924618644321679821166100426845811564745702919748978203543681432633680709471570527185436719663811854118130089757259930430621812751277689724244243176668908834696127844069882209799350938376168865607373811417139293167731529909245584269721359127342845203771751116292732530808836047521516422883896074638180196621536337583153133618880987575674233067435088916596519185354500244190519332527178252212375467078821457440044656250668518253951853882288375305896065492058413539755032545836862933076983378451465443351392075631866492256204727814946250872908544487154603271559866534113268586027482765018733949017807700957760595531481993761991702600817257297988487480800679374929067210393578092557338948261327898876855821602724623887107486378852968638866288244825751031415136783227948576495914528293555947896451241506587786721532610332674230216905472351401349951082075675984816404776594277003199472289653599029816891353290027750608666001640245841032185689084313879153327680900191175304074656299600520347601931713757237976716113682714913117803040351581163304366111822600687429630512891162557980741279237806458426433168267434714061904936021447040066856608206786985028204783375622467366025301963591123134371229712602292010508688825619433882227952745339343746087804832973963827596401611765619161264605045032849726185951713899328007939839213755069093092200492456457727523336473414036195449135434060819628631204923390261687875002684234633173455572437349866123100580636757681097848690663675857354979630644597804519625552409134307066511604047499426906546827508672526093042776208108069322769625885632022585507805901335793404285107911625721764765881894949258479136226616280011284090809353150767972366069103248687026005854920660184466886302747763821536689262172133908137895443729273698167905493714996964114541457717482124010094557980286277856896886489017134132155014349807118284814147943927948489881961505671707390151140159773034717956576275862757485183333484023835469524845937635767637135216856345688738750903358964440990335919377034787981482673330245272896179393750291376927285434341374636298080313983022894073065505442899585335215143682992816003022878674002072886280484024567068054447841796556431005907436102915506601052376496285325823673459559489018178155420802984235366173829831767887138400239725400976238793345319239814542423812791512077852560484608804106297727437932814635001209008385098792926376818130821492351839165885970942061900078424608532727556699957730860091192760200040951371911385893605710870210289046049119024205107677254558302729341416351717005429195652612893086022258751298042456810693289037493157279517722122876845495676267694976151018424879565924113943421598037565928880359070645367833696826465294866280470231080639495832951566547748186393563777156052327883978780045880371172391970627964270744186061292949123404899578900551162253516980140614455143977304526752648012792905885401589288559670834484197813859433585154554782783527660948425320645152933286039054050644652063392749833758541024340278096362855945467961180514414736237922192182461741091082920694395971407339692996273264798209353865753116758595400233487516049009037066415720810681900670599636529592104397839306966965282731582677013035600462569604004782508435213411078869257194345423010849271505251608165172365085102608264135251664909597942324677256156590384737744453652705793229877927266312735315111735557068082886222111246752589418638854931286833487292982240193102296433810597696699266428462114828809352525265656423703622164683880296165217220524046827651193410467454766518270600352081177014141404150607108906971487173702810271989309897059974331011408328797077389827841512859199260122965053959249040961195613690311029423373295013441821502338981550986360093482148405624188211832115809044379680053600906493888750651945119538990126217431953019314771285316810265858912718847355321500382787274296629096307336323141224447117527652688412875752798430862165568940812502965318372274749328757031447442169205100389077305296299275836264290051693121236612512932427457879683748696309084362012504573487858011768943024785527516052620586810740825806418833730690391378516037261917116379306689161459576085713322969212572057928052648254038415593319867101153545023945325628549544553525971490796564419827985718238780348747018709112046060717755754557871789737445054018720245247140326343508933155657260648085141417756350208327711119694023051925461174545513446551665640712187946435109192573233095110237773483115959987544704507172550976829344366547912393790507193123140849021360142536898068383824760936143411938925334285630218292480270345480907363509101647217289905503257453003687992550416922544843042640585078115474214779604858602310596762808125063045579021642627779268435845358558097989427599827289124030438460977629532594465889248060497805578268088854555490917664799073446667451610821737302106285529365000547302552330467639306837986653881299666336495890406727402417399075792473116995764700220238073877239743367556697241312199663673892498356269818447764980306966326313654769377620739502110484318764557531516009740135979563299438971286273959666691800134583720798658118722300648909752791889166888692000247511876811494413677621873784917426197077707672209930031557534484756312127548497250391823111027461430357968897687273315617302023603656491561803216623383314138617088338645381439990953058507094848717707437746877493693105692942700037220804457019872946809498450402638610904679988930883659326445464300279008699067364255036177005180367486057712105848461223285943470323979195125016807280214752564871273922666548098928161603624963714499370867858308452977128887209661448268004032876882291409523972101882854949589123270755628548862101147688200522467220562920988184367069700913345890866243538002795388526746291353072853488030984176123323683747206691217699248474629078696022572944441082485707741398870072899742752139279265641662900030381588093285206731176299947205563929054730482978691467757948416850392261588656747590574234393456284145045155065205916383818942409959851648991708884549579664433531130512559447085137033286708492343686804361720891976125891844611362360345228644750776849288345440771674787773027622250651445686070026549747769189174455300138796258934569586010914742455207780567991145857211905495271642895845091494399319744435384519427992810272875984700395615003495598807300843439494585439209268286197093354722871233640535399151777425476440814057865268003650329600372408190673469747759511660670939193551247669084054112155067296318485006251842463010622698937798631912933814969424342693973522145251532986451510075645400233803948060991472962207325936591759108402880244535361664765794221673641564251963971224127976453408156294892600896983724833092665012879182319368464394582277243584778228530860385762974326788084105988927344252913724093017500020354270365182431235960901375048133312506401123851933978752540168279856452526807655673786964618229861921611483690137992922924158540267870164063605446920454189474531799526802654227423250425673196335525493639431717070296248066142321222018431456256146028437071681410542582682791087525003736343597127692142561105081798184544330641521792049059934646704052280792615369535454934000404838946094585507189648927277797871530931156221162254022138470366199211892140735159012910532873424983790343408613914313527327626474367112892061963157224517534848994669048380471218322715634166196351771317536494118858935657397552210197551266897129731392463171312622409675209735061840331332935184958364892473952967163662146177791084549828088203998389765699865380742805872451638356057044102805704878992412805429406793522991058350139579883052973098194429792381871155896874002927521893872644124975886698039739403774397739716307163740465999101383805217344916194500314225039401254692227018364823711932000463450225692409948668746492403857164829000904552777282082724722598599286402677036058337592157735948559009288673402537619050003304515026976585366259944294562258751634759497473694015891335212706186482011642365440231705747295642578135305877754012483068460993733106773417363831369671856736013376885761675178279315960675145633205060323349752984290528027632087285322548718819286014448675457481720378562305155066687465707632101239591099875435546120278753356013693745976307922978985119366194540367131421444579837888688556643822341093701560450419028278317734654877005125248466237934394867453890477900853446503595366827206972847949350774792460253049574633385386997533675126108786713010786235869770068416341004391504969686966865873698787495205529956905121105618331457100105849114424071946944742159550726403698982072870045937310865780296966372936358572299946478898229247453669724447717759694555655854901552936301251840204235115548516762411563755438337948994871742106595591175987520462355991544207823786871213585284643769140955271141500957237498756061213194216731911788562725612529844472600344357101452676884329798042904159273351419728050109413666281235530262760842317805807714452113973994541748677960655141909669646030321659153141503457668179844358002383098017791994671370740363256376520743868785749242685339203162149177486561394912875981037823037156191992936320595701995238842301260242512710663539686177572606310588725474416495619507484522895853512718870649328357980578057051824232630412910573194656909817939501762130429961916788223027722166406385496483709539825635560267598727017551498917909992874021240275220566988397417251018945609463237320176192806984459337679761696939641427975548752130084513960026060585024722426492560311411335231327414436030273970591029925724828578587124398265856324577107602979379742501084854521361074868456900431975192285495167305157532322243529637696600334653367204906168686322648804867597871521044711237324099071513186815965102168748932414929174672781685444572012081521632091414892025217991671486548900816175375576430620351199575873220476126768922819260569915768206104990826088685360487454757118229229129527368087362975894833263621117744267493297934127544119545015048757584598487261383797795820357089526713694073426190490642960758784887485215938669286553370671853373942256225356602962717443293258222101634463573755892375974533128245543855872825946735284365421172898248681533385190109404156381811722053439760273504387792157422350693049720193421137671806977791718845516873736361466847521520181102915308352327552041232736496088787989094353042270572955399531303505110239991273787742679039199415189834835863560407584542645522128034190022343901180541423771615611471605054381332437270643084463759706019503536225415439480070908243427255960502709243459724760826255052608899751322071402128032628184667038168857052493629051478098551819686604984486500465353201632809334129652068194581042272623070535672618553754116236361791614078966425638869689475977563403199109320156378468361583477871899146896861447302731359937296243109659312766611368668511236124567436378831459283572783086788727145352412053625308073558479536409538174240448585233190170391397290929813555352757733088876920499100327720596378996587852584461647980857669867640126910865385425084935184390693190760616287693633019591169748372335818883762609298292097605693087931079856423947844800567722177948856095921756464104450704886536310019417644283330634667508262306870866949619122115043597484618698312684264087931277851725971026491630589265206258720971131234906149938388752396577515612005305063806087960052818950819242305408691047817645908575852200698394877255744034406023790406152401040459438153781755010584831110450318583830357614737828882866145001395264997742111375579789909867541265954152278343657016097022952926946181071604001088657160640573853409734634765882907300304580521393692882780514095086921904183961106459587253548576528336908719737627484674523408997928205643289711131572825247380076089363477831103278888863450965597579953453739462102214669709998619929304548125355145021696162410068047673718946049508031489769540508846185274568631742077131374789150551882792453835067755586392086160297038297432586088476684172434777303015933328132557651154862518055782898990152757346362519584586993165004319150806219224409180326432822543082411140538406525387579269092214489480531745562022379662244741262524572890656939989312443917452473601805962478315885253163905071238423336827008935294650151209836296076962469306120973405267806621628038382310246973706752616625612241111415309963210146125793788162528588350111908302044664198088245312096965660455587534492211673352981612172198173492753135248844084066675814184691689961890136960796858242328417609981372656408684556706552283963780340776960711332660533181027345098457143135673229780251389460772202765426469633741515919928908279049304749188634001769358992437915826946295660223615049333150572995804817014545054067560692931378464233436144518539634215036094893715693364596723898161172441778331854907520372406482634842560857572523904061086408967161916299049091779333482250564040721315321582317145457301981226610469432891724131069366055283906775979382674161759936499846921783943055399915936203311220928257347599946235755128275389848708688960202013856078866139983120672549886511681483342577490382296438235885206282292601852496845199940810981732745763553716254152276841745949140240677872829054764120118352838657392575494738422474928977326613076805994761165120588975313200124525401742554510992173262564311139845203300542260859706185908956176379423234724674799802587299622923771933306907090492380191964584690048370556125499729219602476339536562213238180356748001430411451548837957373233997203924252616252528854277819248142291207165950667006324961053977601389986904279435307141136394340376576030318913726454765947529115196184378246660358358064109081678506879426189268106050313523295651625415130675294207331727430636481046508303435675643208884733558361698935438773920926269902123024739166727310329500710510930380114291169527312203858089375509432476164454207234264058496458243981636136765023683270106597284142263627722303789795128962170252257289201694354296732256541987092481677310231331471010461432632443039137917497626078950882132112358930492320644799690972093887987742776887582132282482964012723113740586683463626744158297109598393603334433980340629265267769014071700982011028719678934050011927232896704255918762594520311691222216013567134030498402631406279323830763906610801842819197526749181721226600093312073076383377085075575089720707294299714371815646127249155002900728183462656373840687807881086416044620085434534026724725693965755132139246186446035484909440043952233905927256122728389347358409023119250489059248029813599575673292331513120760337034514942804042652116626646760989670558744939907400216875417551966370822018376420401290036144530073730441574345419361353934983534119024457247833425644601520005417271024484719656218789851118396417594251364910474059000782009940005980272450292160561467669009606159482639219386933336593693281992779818326139904922073889940510420871393004994049001865782233767930500146103249070602717968253283480196197531658131147835409555176295566931360460869041250903075672852702862484629175185790560252838509843486297763287508916054003600987186760678794582377073422801544525650830658717002481070220783899499795290599133051707184725692628295478745293115303550604746993500002792485954389851984538712591804897958491230193837108922425457478153806875572838202610726727376788789896134817482661570969521901582605078298847053936314194069711662404405507853796983784689047284997562659513373684530602618832556697769212715682885159177815214975080636752552846227456036525836505059787483562071396158975799101675260634396270435837888177032613868163957397713002307756727813342352575048941453831268279061811909734936500984354610140966412356653706396002954064611879412605907941525797331467190345648805324241011645974750988459695080052439556328980126637281000606133939346383680323865855106251289324125576733417048599397053726957982038760024501924595260354567787968174591360941109534746719313412574433115937311777641371140040146731509914892990765671467445045461315635338463019413513594031104061950874177422318093352431221925173162730130462503195953007590270480186190079163956067308531445424352836599393000223977194448278275964424429193980462404485833420900186218172303429561027407748257824259643695563538523339817914985869360178749827834264812141756985254882004729306435430588834661697338295022861110825790366157815151325551886705404949908312916379714206659746755713440516915619347979929732476048165102271700673935144977411916757954672657674691869458533409155018055008078154038182803720556810362988838460081748294437558909155220441187717250745676797910802544755285757977970024555409581796645310427963770987483935210414032056443644034289221809933206105815528759074929574534348896173552077430975421901926132225229915577727455657135694623816762973922245089122634415058698557077368415944489757923672688791750589720113763743874042695702558050962074358767957333607937872805160114053173073857308997221565088808432606565457019161068100415321229811512165540967478840339677841156390343338606185101940327597195050338899608318528684442242654816286823733158900013610017194326693253807318301099359026015872655877833348945034134807383901509069961085852242691772819358011800981529512956812967276242578222913544051810948931368220178453777674725534427049215254345107287141395190000415278427158625222254300101897179470860563915236979550491120436977377055888935311343222672135278000895295188437135316484711016103610019603982641513500343310093757524217931385116141325289430573338395452459018607169239192418138548233440495267463285858606058624800083618323925017924334006783514526013826893920582299514720336737460306535622185211269110641868202707879956701794981635487101008923579505472673582589070359918595593082450917622722794945633416064390570144159860494918596279558443978639392763791429473999316167883323971764835386343670104616875378499696308746368630921796027390220869847386283850131903983762672779372079630194266064083738602287269180928947595128237386814754460154749145490189569449366710530677682817434435685236191341119684987850727624609351977833384420725373495678426685919535136158776035125175627922136833634824578304746327967342064255920039114680268371356885429040259198029469163681272382101667995652535448537076472473045083523363344229615882637588605323098150209161601815978181754874480590136959287819643965252564534808447217569865880558133244807278926589067746178144775435337602088074934280661045811176011243012177235767132489084992044480030372481618410206710549070518798133349200345214452143237264664150195365421220977546734940874425518404050965633174741422289597769220957517348674763070741259486513317595772732405884108275013168574167337354693813731806076729838942235008405138553649356331059426377706072507646850196930669168328970837097415803777113317930596742202833663765290677133077991684515009287801522476677580572205318244120145915449133085540359453527675958169986079673089706472236280233390901770622877856417266760940297023350340021613952352694135444739471888634856733238027040304937892680280366350919872173456771732966255020700938748486538784399328023626022405507327965269150483081766566581263096787223161642911717677244559127317601643241985428674524906787298108939694182246123088723507368198395409888499623656031755220472326586940382648386986898380220165900218747130480549864035578053361678232345421165884888681591117982003325385315132501639956379815483524892889125799107720325209608287193504412039976809912453914557336415082723250957525384360239366803117341854638727276659724697539603551629718766539275324245395660664783967735636810075739539981992282957380543342575182221056796238221071475621386752023911818078339966376673911249187372995489432409656515251680914881079620418481271827036111743699192494022253872295461138264943017513099001334856840959562500479417812216148748375539493601825198617373487587425056111364017936190160559161680051163432765213235975674886729699511431261866555990665697482762355126168922019453665431873451227901990858659291699151087070549549325984239571555872020340603843877900934517719795271451811236055986110614983879384071632379692028043245657142951750745015517154369417298442327979086395319029225929050815648994241805466210372695733990826876042594756115699092151471706056010300274134672376872165540982508165209676957448119891874730380489134265793333485551545094816534093562600692654771710825337193369266002689413382041334468366785130070905324254571610224433471524195016628135187161634526572490852748417654534557564740036076110468927612951001781973152377961501908421750100812420911649938282198514754709644636649906439640071759543272955224173018539940932277501300802472663412960887686762085387313725517899493878394548217372131348833724054810633308432582950343821413355791069055128916765344441022427799865140935779658129055433029322493259151056919742905701498644846188734546340196180616752469439422690988266918096734202933110147772581673917088314287520391327728144868662538345356629039782885604618400502897025372549956374546799428171108560684724805940408869069458767806927179793542469066250557626329746070251094890649376277381341637771225017090574512606804926657966349629441670050887405686002891029017109312319664103455871268581200274329414214564500966511368519629421434227541081363933429192674961361844355127190534572768723736572033624954810371852550430786208319184302002523599106430104165743644055286458863850092285424851188384171060044303152413460210898560797391448122596123947821347861169295705453934359374696818432014337238732285667873806949253146321452712917812521327812732413513240676606117803919146335267439985450653740376717315668364476970713425813484667105707514936960509790009975761938062791679396604122749505073581065929580262237106845556592049081199609670845016580009415581107053909168790101631167411369147749330360083380284373294755538030324102365712781064352923786816447924958119993012433740303484156347354351312895661728701793954135438422027867536275034656216931120208065070354214403287615990832700352096217414737914809976674394577849466551928126328586158808258156928588286082694481049306520372550746349114099646038812569463581463864881093413190552545764398398510081120110164868962424593546226124587183269496330216167002095547047831059005380432228924801267430192550311265947124090437485970213550861958545564099592948995741036707199918057893249084648673563152108471476775919716765415652691735621510342821552087601791481185919565493076727798804630889162431117436421091892550860099336221734946744136624463194074349204511272335269575775910654644835528059183746050699584708123610597567351015955511618690649832556802335980422523263690399332812753330862511097798913676888792825253707862858732830246152933349737297168426394050078156380107647604957917076087089969058270396215375977808154528834743584308358860593718000159205900872499551473058831857290089765115232034569802668865318997899574226341816048308680440085704937298655111647428455454612009418444295617278291067055087221331810810416782314477039866605695776562925507857290971837243334243031522412467541161653599626798740102476986587309876726123041148654689714245304351346087915943784229518444764270410607667126315372268514818894758621580903909120199831550457049000809848240082380077979149277793903665492583969371523086753371910203507164317117514519896862213055593120488788633546064403360729067222215547224374496450228543198882425103766421805363091850966334521051324366729340821983723572866755718765812968166143785955170144960646244543288401328899328392282691835282728677591847949113451923429631956636662908649371191772055446633766854615963568471944952489571317957707385322037187446406293520792046354206420309007307356108957468266301086551941846640670179349863657975322212389193787520589233149576210912221845038973610319070033623993227882314477717173985163504856466030844123291557707812390931877827935186337976793951044309818566337404774415835686027590717370400988484715591744676970075647819072438223351448534360533818134675993343883743804032456760968478817973329324418920440047060595478637294418459749592655171074536540697591957815265045493045957337945225563378364914332225847383393130963768796050236604275271023359180423969980322365862144514159209724897590531914946715744019429287770821101359770506424574525007015840102944388327818795029160297099904071278812711762700552599349747921111806604527670698004030766121414934199255857944085277898873206230731768424976615544098078880229295066803345557003901043052501378636216873460036990596177635435422899903964692419444207306007049712918957662252963594631478506878232613991923827827419949820324155583768938483586350537929331820768135382049879444907195779220457820200237561430650377497101897667920425692992788599137868968978714882084823799045818115987101924601907835199907588701808515630180863426597383715420602098184181778197099872537211959317171383034064277460269431594325358892127354191706369221433379025198333241741490220146360747427168348814643844918759725347366433589429477889378058759440132297942995131272365476992524386102488286030090370229525339479109602133384146831955455036195432636459534295498717730063859688085165621670583970161685953502037911049644937798988195499999965594592112077385725704558379485828685809174934515119814080969698865678093311255963415835814303277100970132132880905085245548294490900641375847500910842105616711491014639769033972499705668124894181553079378703197947875703895113090454158095608819659043699974517556880687606103788861635260291443155856824209167149786868311024529042059477312322533583553389315159763250972262441106208101854056882972280839655194947755024962843206212741818027668274635801764502422231115840446886191016973912784849817558767266786161159903186570119531716715410466247385070738376663900408885308589422766551404214998741303746867271872491019197838357015485130849770767526932901999592156177712809873984428589552262689416493535354570443034820209435962663800267586813716653089683442739231108142419689979327926806600593745261431047618224155639813310107332272882140574239249486621362663167602741616320433905531376848035930200822336719066489213246525891802404333497183810917862598585394400256389891167087462425394394628434225186371645014720931433263039376815794317903021312683742349297729736888454926155035593392179447449251899124393542747267900520097222201126353008692247423853700160862220597877895616884408818425595461542927500339408229579329759768086657524453092175446282047809191658809409762257320169928397674156314182004137217503604373557072019031417684281866355583140903517934687560043364495248437983128748609252023253185127777089951553582102501394279207747405790187411282710987211256199739234410310077077816879267765031564760793620101974292770205179747978717135859070800162734825807466339635750715514963865399901000831335752588426533950655755859138536310971760336101171753976085816936707280695202523867619309005352259205843583797985380731373318731622786744539767515339319052251031595335030657849014086553230006390715565703374606239521855053207240826534216057515185798971921632668570902251144280554636345245697063576976304600301023737238214045547998784638605625179473555407364557224840813567060772530390153917936625942763205222223485078134033111656938307782667820175908245163227091450273258566869808177004125157766088508766517278307317917367790638385154257914808165511402051070324249702542345554051418893884588552835191418080771562979846313592093946501568596017225632890289283465002022724883412477044776096803336112603770903678156420340906228412486718096284616629403540834616828730396110036569597419004930005579643774818544428511478581931807786342703392082695295873224382705390794983773098938806054470972089542136157689896580310778824756291862414228042147044178705383489623495348279312399856775458874826697069530177734461062440781852109544471092646775913626111458895191554341040750113545153926603128727207760284667765296750677052848327436490569880470988482922691424024982693036516632337573119590332252200813058806449476565318505440865394973016881513869452946044245547782446518178045869636899861206558246227635408407847811361896725602111104452839878847439386748127887331663445233183769527080122027701936801751107143063273863387227178856760254773495130391886206196292539138331305329568368321419221456327476695018330530554017748698255980929029762835618614320884010621627296641597998640326174461856643086141645687524128078760146123934720290358045139990375104158244539382992846743402354330860168770200692866510114229247935741580217623852429557149664447490255888054032031397635382893909418130414746805785586138491652198684603392572254210985673267450209027031220901830533580178367821622763999201816942656170821706297195434151281245881577793416084460423630991966449199593325868312831655631195157943167919014614228068963474530428911264005959887880026511490868139921720659029589992839393322997277222064769951217150378738416386607708979631338806015345266305873945444388883569507489817580576670537641706653206084319820001156497848560468154143588785876982624499697440707611575310282503125624035703101036134785999691220296880001185548550528117866137727080754102318354494996915387901132164541903583874367789962811581219921256223555699463692093144980992685877460411152062669241284339963208928929049335662895758695022722553404554291576774988266077143584535977196289831808927364270568596969598630690102696220904667891485883395186835190113590510363271670193930740677843979808395932367221906503786626235340579535498144341035623649952274242069719147898637886774894986728647732299593137789513856845668815669534439552165990759412834186278372454048578394023392168939501933663077236528862776351839796205838518905958724301960495032576015737724441958119596541089676236223851606330514404715063188779045967837687941530184218727332071919918815278758048058661745900421836284780556456973509435233289655507741273680213810928997103324166405534134562777454294366220944121734995509313152882220566419142512643826016571302184272826474928731095755565848701053114780967109343517006938451549946324377822892247468104341722576271670384335067867466920863175316685715853514246701893664467190026722529436870206514215498271545994278804694377604212396503674712222477674945053420995286056656014373738694265442611289305569426345788548569387389767979372627038195991309768306274857028430723471645204919312995341613883779875040656956048740861255523652216180411656074897697655768554973426476242037303810915972988622106837453683103359993433299125709740935087247793314516168591786474919915366614714726996761000062381181023801930237423111584075436012206570686532378610982803837299875665610726820252427901763003159215855381344480488259066989848780315723076934739163709948450670767692943381637100343586532518271666177126619123268949350369050069461365349181187639781586789832078525875475708311485936737581844467976606996815302596128635249982365051817518679147712190006980710454728175751295595863664381577427274165811456913596296815297901323844994793823074801715909289840326135813636636749070263929314100217479498793903777219594421246790904386483380563654677623175364799606805535632541505030936013282808241748377026249432088172562951971965892161280620646911699007068773056729146438886265942725572476601443943707861350258649696285913266190757309988850870065694554368926978920933841030005858750462736262291419553518023863528985519509667330019320419105796323572276347223824152604667250814379365984553287255982523581900051484920138008958999642030315855639176186645693196927936145893936911791926708648762785033641745710216681847933011444840869294213703213843517124010662398558577500788385203895872599806592946553681514505268605856975930238250887611610853998105281055973495828048832276614277957005975341862611307252679302270574845025716966577888463816278851718082848262512398312325252448507179791644323381352806012226931732328299495237670023730280010741533224941759602385204138187203454630479327014379228822235721535076314426012407562252655611005701560825208430083032296357156488606488207201901989899611902034717011579021236341881555227273140474824825009259138830893495023713362201807241452468321547646640110069756586827142859537502194526365543911882699909415277587999036581405897381805218685108591553946361091143764178407178913464444808653954996296011837174518548764675207344276418682102818514655364006146656412750761319254540671661019323340972978754830341719760955219440450315922105030659044727634697949805147225855341707569534610011291924174103132195698099623976016180105670273125479141188686271680891722986330461231470070748860963983842688813458854617687546662055312860066718072310789789811338413084472011236451985226740636498413410037706963013995354966237500214020108868901613022302106573883030505870557490303315819728819475697070090213209883245600001203983701292223529013262025669858996183797851158717834915768972559131806099005219713541226305523700128278427010634467073626331827703008342074684097353026293552915264982963103005842362844223537158801674965115344667834058971765898385347228421141334218694827229337568955837235195961864255688365827933160709077498561279843967474035502438402482846733302137863583159861058529272691581085170684320408177152576144107463325292217735334492522609777162136290250504068365362586657635955801849232596132126328685453300618326644158380635686273741674999777862146956566082814797061004757281122371128871373014612243963827432226695462654065446775834299922940764616914911135705234951024079202874195324907578258637981429331114032846426571058541710792095797114396333810927776249430943857928810580332699410635763278860350478496177423928135122660031142409529717050099949436468888840512422539476401605675979234444127654464700315703262057646569709980948053864690836394681733390381400926596331395392809591661301900509397804307498803812299486385726759908214568586298740769306974414333860893337395624102486647799524137284570432462434317694989244435573917358439288874254229699567336415632093139429000047761237610618167492340330808990778499662064933038064146584971491587545793954400407247187165310441186716332976400905419238867846188034683434927347081120006994140735828700339835822760793143978239406062244349006951525337617158836988050289676446028355750635750130010084448626228340488264130295758143580310952132087106447079536522341150664164825609157715468627845976935657054975675885999588654872245438944785881874663343927049505918415997961401020631886749261719199086932844060935159930406358497819553176016829274676422961117530143383150156653418988735326635915236389738358377684392413942193345631869468635436203018963246239281231901905430400999848059414760215869246734087100908438204263734780259643453198935123116129899961427187558466262569881409464220752459261107265637058671329691757463722726781672115918479407054987406118027840216681263045131986325669017986115693888887573707882876411046229816784449518989260940780242253224058007843676774876133199534355571222819608790174892983159100449821314012223016974567457679253368174357566733482901715475716487452332122106012535786205113794020802107466536627874187155150541739451344979010770644627816220046023627260669701869799093309529551357838435160348424196920737248528322368703257305532034832149378617768050868966481179165741267229891525946481536139560209869709837420665851152916096182391561088673670457966156790371020625193478378596507130512356695654978442777598721014517515169477532584875245057919661510922630433277519988716202250582383309989937265680445399444251060677887950409280916419757586621652645010880736369167631073385553407286301028384841543977956694751308502706989701965204038761715022713606604884303788226218587493086061183481070047276691948328716792941345064061604427079453850579679506214913649397792575007875761752369563333247272180586654498890285119369027401975066662782336122687086146942816246511862461610531961911693859485914185998146550376784424526347328171484718766896567555006946674536887751683234573653630805328482841516781492993185377525014584699808994738520335235258885767423345682220626741358014451062750646221613006884719957836714447299525151269906440258630395626443574323387929736904005875281793884480698942383168293582602217118946171282840952998221930345933470389430577722915750739549765247931081793768291401876747347530863373698493186934870913201330240955477232299911522229936295676046046534766857365646707124026687594929548196943847635669202122735002039446186976684239723005993933718831673606417880107363650207894567159297025686587180831364886103767334035505777631441385819975569339492289138914161848146035311397870966789135432451112046280536850829229003304079949881800409410074155869348629850844590308898979697870314979363684861534780951357804791025598906213868696397716308537211828862630359963482927669640669209490826217215093837999745809285325359090070548294818722648305922265043519018327716245344995462018072063058115547306055741108760135189298129116558410227804689737954446104649345445710966150978168376461850239686365588821302497165902675512672371453852875608333521181996703368308530248520842792053441356621627483635673983302093319124190528314448206112710423031404958144427295080360706477917970269309155565885192277150122743337426354403619159821336996715196193763647764651102858381079290684164600481313901471142157728022908119496078500633395780897782101491564717965810781713106618957323922620881583640299583901421073049356025471917029436996861151620570444091900493721347504815720295656727594041650621200209531603285554243604856192869286757185924431764749848183897828019448904153566006986902842783551480997018987810518261351153755066420380861999614521011530304499992371112481266878739034987122246188894786036284312359233743560030695464953356148584095558559743396772380256176606533408300191139518879289691456829121071105595035931024698463281970265561736876323417352859514046466428769221526062638614064682916860191053651416973109180976677675907045677716046895477267353134061281554519707490657517454947095681898815036039495006662455485309272119936911052927447208506487360586707011996589808882656788748676576166566720842266813013592219426746079375448013579623946192655967766088643075256204873419967919236690738407487360948191071635904758748763191870787376205140476966941539206911674172818330418217638694208212214033079624911857414439321803593905749711444535902182869046971868028710332001682722393494033937938275699176157412923761672944872838605538908573334582398606406542682544867371681266208348804335941678681193320929164633005812785169291274804916086192884877908644892229842931991773262933104103030096253359436932872627391455119723286329193441014117686903925730921837891922704488713176437622261307240982738200886047329364049208422060684963548155544410343030298697709595110359135117773427951468285490601884482050281350208093146278777053404495075611357765453096551963245619274558237242077519487914320493624401586146304753871432458160690458924722915039399562287864849311774383469780937876469543980342167861846849861815847904541293348535468974226679795139103594388359837944623648811435292821384189846403001409831398627264503702432808065660896103907845789045676793980622820779682168107087593361155373437339109607815478654336761918912199695194436076944529414224411501256573700474612094931410669182304449257171891632800703446261556931332161673652787777492007611352342536184240704778819846616876539525371241128448760824085785766717778447303184170236995952222890939126272154224052483858848986218465947748592089199290811724476316071971754174158851628943304276462574818995343479111291279529377548047082042745112372048137915342422559659195810255222567066893908099797508365292378540539836677578636647924669477844977952375990465478998117542789062758627597108990379986036626055861369984306237151140531468037765982285099461755750845026015715284294555422869120313506706694569215239403533234505432707135126421630429395957461784143291677629643689120965767064855841227718480623585277401697801175714455942123369971644593082690821847371221951675307288290648529911422013058229734304204620044496338837662159804695528473083598704304237934783703313276325278183420585210161398169418589212725514779909319693269742806236947672911699800626021340981932084476386017561067260379589204430598710541853877503538933212079723686609328312484508839864669949494167896261494450753154267890372147155783167706104378431458324329310269801333078899639782463734728434645765935835952357751383035694221736855069014378842655135448468610843626874929675414062666565027275773699099158757431014602944698184072172743878881023591384979352530258830227839634591213252021127485408263988419357484335772377313721611560322556407500029007421579868674251031493538510328367632169533559596906612394468663188504588966428596911845395245719591829493210440490064210694772865832779520712218272255840004872480243550198965248859060751220684926101328408579840262267097278090672710834031482315938261864705615029934425445701503879378009672892167820300942065201174323130154590575024756098504739702629491291167060765222855128798500975289050957012912598010741199851656834049139199173136197858398052430498256771955640009201208162162295605452644900221868005701985757360869543602873882456177302521075332204287321791245054422633773928417764533244238662019135655591054469707383254260191959905465824328839474867108454275236616780650834157234698324971204900156163202764289854863825776352470951385834565473313379270151128269654591808916914826928893024806199698184794059343551999174629571921138273275176101231642522177087055465728215917528425318071304092869754269074574175386274896586540179863215643114197168787818011723957305073627953888338185899646749592519282421243175615867148457716793286896422159365459907126537503918068208091972526013390314050215849579012193911374446695125640844461799634499017553269335224471719894887380042397236667512464928348962544419001078193006236756626662645386478110525102103458524408922087063671740024878588510475757906700350696869907479022583712699412858190097763197784072747160025654598521511663561703119378271614576407252854081924357794213407059685848036815575571176609161954208995766515248738898401834579068349877907386134760654888977331270425475279404996792236830970498136035556385328006118037743564161601194118529905710320727760222400368032644763230625512101973541898976583896002061442892101145637704390426911173152133296509750134601861941737484126282949875324030720941817891254853229478338225304658073555910556856027941362701008511448583135922365704487109712761206405464441142526616788867503616070211302328742393529931586813536697715462689769418999787210483371722857434199254774301142673881107235721151535719820819459800009901562130235538278004064586544562183486202447839411124652895623920512195859129181388553664148300485878085008978109928213096598308393689147136363729377244282735579817658377330111870158697723371194051254146501614259277739439828817135150983641700037865039900571307742135447341691580539019924739816416259628804889046174464641834174022361249020871566250546162631056893890253362825807905114721240723973514668609535208923379906117176071929095553343057402494478715884265733123720063262358599129590851763670022193382796888174267088799322693642057323054715277669347582629211207698621938044544165261951162700916193189068218516479678611825541552244298677072585704880079887340022433138728411328548075682224509663391568926223492807462484911711358458960165382853280558007887764380392069931083627891100258007842316317877909262265582977047431441874574490635059088400125644158727177052767225300144462227833197782888472800426629906872337173974282885474310176172632627159934016379716196430153033156137518158824450678669265765170600696288378561474059759622391329204211722159470950993838331874188663564771005296554492969313728323719699251735686992708502176762454459768052681153204137167605907018864775376812761617238124289565797167232366471951694558096989275587726849259783932384428529893806540046217125691627790665981161507099911467578362270661430902097802565963465299948764095599883274943675889005010786964956176484830219323553308367823944965690869150374477407858601302378840715676847962793732878357292412383383981300544807454213493352175885434181268738661581541634796358666537726912980458404113771621940752892588678519199085405172338950691026058759722068557688652515827238953641592747705411030820693019563444471865103962218685440075466585157242007150366026088612310881369365047369774495423913894002884084978656533962263820368872255610371939600507621552400133961540356455857549142479340536006556087652221613415949467102659125112809263909275730759776868232159018216054536848427709707114947126315472797094334062037689688320656449145722686910033534864525051999116139517072600412461744705169963688889271570377250541076002527389049585033588892769228610197942110220541095343623848202570473233461795445556495845108601871396469293214385908498392513879395199315709392693537627054922473105818111338665326357724377952790551882541073902698336981091449284232461641496958681854656101005024607593639716612137535064998835828668929088868483601588105709540078901800566300745854585067438182125656421980222785266994136408905068235883354693824588497909585876667212884503913364129994561447828608102574488987658814588605220727518536225831560007756818678309406308857326502614413649226443434468484206671751294763440211462461588885165739563300245559609420001864960972403192269064825137566676581165083869271542644103564951763487483758754363960567335408376172293687467028270813745056777347776856170451488395232012770098124564312004722951830830855203929390226122166759431957396234930500697077357831588408899246496949048379244140298424367414661152085577553027594576017598804447686436637744169582846035612170984166336666912989346937938055225375812120322352373194423058988507382957072282139708218948859784576516615121629387114425566078657458955701921257300182568289132295999105595304645143050698420656445425324596268096781546670817039258510083006363750171644826992185283136055940710696946801425683552072847709498896391327124800000437645817453366502946742381553457203621789970457497219969116653996553591877354818279576468664955148615370295625826543012704618973786173488788061736364911433435191823126650123586493975502207955724615154410023490041974190638832811777006955444603514990169362567637856960929987321948588360040314979205524529729036387824627147667868939206709594976971604732671562976793532014424532512524579074381270721763294297507439600999713382350591650965356461115111939364235712743296334470931607926861230033639807784607229809010917337678105406464259857672295195155790975555546293147462482989937124966077361689235724529797359407467218734584689324677067606464103221200510102958981903763395604929405697517292270988443073376385934404182176317992392284250490348881665650619666432479306870836076413678221938205474620208859400715299115213245649112793623215012656998474753630986995721381239088930962174245399546992999456066176029542391298046589627862533350224467499026581090218168722423378481509654605387171538844930033360737163812599943496424442964920638310018433380501879051757124536505313829395936585543926936931156476547645899003436304880559747640729961118871759387206574920640142396099480752762891080709608624150541983843049482202752335670029751086125884633575685340602300671268005845478634607872838938720268017533369382015714705373717540049390600087101377999506773559488059291134967326424580015875122372578289794628082664101299199428946462916549954083970882170550731382563251721475257147450535870127312422647721594683622536236630074845540927774168274638567909356943922834347731030128192372012976541700527795959886709859788783168020659405687929141491031351362597866054494081299240780951021003303704815176042368961353286960786168453159985702004699662194362740724936868741828753600608755669208258951740925429430002781470088089489308153800945516762129412502804847379835502573199163376094376308947475125107297225215173835006005963716758678985571185746796555754629976707953872948682158521508981213651640792847373896252418606384313610427958560790565282381372931057546740820080203275551576248761805467518851749469544039424283538607055351292528740835175408905033195771990654010117352013029421851485743676691751735317483945190511000638791495797767246353009400744066266010625750050301874009195748833511818672775339554616797808756105544401577630420492296311918019736167197093563337551557303040093915437169930016841057453497443496465081534540383851424504590700529645732050750226618327676311754714932780788463860914029585928608874519373231703132963056299488098326414308932342647745678117434998040991170058280683214387038865819968472177602228837398275573179517225681300768900975227383132466885171013044718748919300907813407844901335319303278295587310298125633576028677795192441128815817231364064606040927397886371790892454338457153296452980858137760352567841013673570805806294878689480382774098117571463688804054876220217647349146242909657068572608848593119931874320983997408219848028225804851098506062760351199890733494026637994639473869572669408555800231445239479114000579799996487076313887405586689036941095976496408133049016645566493579721163579500071965520838907639497321038084257953177141501423360023703320090237168319845673360040502723131705842364669336237008970586513833419893489700477231753639633785794017476835717984698859147893911496106726220316162354758833463375176246200657191405539394520646497313130243545934426711905182505068249832027648366233097949436725041860338918811881039750950853778062788356902889527554855971891366958282175779955289386912318037803619021627937734993366351635139914244753990251596895341144422888438669257669056038058727017321845442503957189691049405815507807379764871228327907566685121943891003047235148400175058483277397057317520803662761343707810480017449622790837192679224097809254605103923274206600676043847993900940557508388996601120777013225074207004480076591983032685766801791625760364023303708876294474653401283089008908215611769523401942982760659652872555868491249090047123277884679702855900952899462956067484013039459306782563643323546630334541057769859707716572219332617280003649880416980327698439149899094212466010300227885972279273444197963982469983304690612781706507557765101075968968144889517487179935278763585708727713271577827012056215591392460132209473186145859098512483931686859173638924780186556224952170319651414349854007570530888507303045375893062293809982178093409868865384616566035676931342003376656981522477429144840837115386613230874159636720298133847339824262955768173424196497438146506465503346352885161232173718810060906743060323952377569154692875583224223639149164350324662295185143876532485181804252619339054926837679994333994236406142469810814055948434071729050176151705191650817344203083975099480505592985354516801428399758623650443657343143661713935337064834103952955824683317288125437184582841471706062336987457417301107903026355791437870730851291176426767879648755783175885196287702965108311493451200656352612089530710788290971359237333159419197299585313673369865184625185633340668336948484697612290123065584009407356417339770991487884343966820902483697897345902681338714918650244525728958368481666019135455960761844143463395255388768203673881038918584834996419514368574992734377822399382387865914259918216192647012058407017656611564042972159517085370520290969662958035559709214763015918026366486304352668603444688189355498111904075571705665014620802277647875488140078339394310943029989833102508113900618347776734486854142513713269771175882979072629552257618623743062148106781862595888704684524934500227621941544018468741747902604853491763538772946953678929348969719631313964430679327957713580611036590009608163543753017943109410144356877391688134312181006875141604020634906544489183131401750112789849222201712065830826331867183622669841705916870966392616906673305469384190921887036896050998427472139912400165719465788331633434222763031381140347619057783531615495995749931041691979682494526196613307959054868758006576142758441772137554326129805501294591465491012937983304260990913600535357304265040213829496116480906517411210351234451101081293103827020699440402353912220744490000327023883012361373795237215670565154647371083999752745382187127533582141522421427857050805457893339620870681701302787300190144669783308827856170164445207688474487954666412755035728644371149092281780025918598323413999863557429137427447690928119709547589497336019546914280128340284003280014825741921621803924145478586223267425965018678780357799207138217253231372729191119976253608316509230792786022288290529078264776480508534220596349269695078497483124985815750138075373494406487634725116900203662169597723662203557266542419196508937934917369880311244930319677591537102972295794710698619924988773485828717331028246858426615487763659825080172148826611052114931836403245518482705898216277832883231152551046221779423940020069444564741426529536525597895630738705985883978390316064454119473924949277426351701392171119886069000007406628962377156842647364586162798445480180749495011600639994929022093775317480906326426443000477673736989267455385444386452749321179707534942621623264042759375774663045899909220150756620117294670394147580054868471841273608435327835430501039946835237812719339861353551876581700370382606511729111755709197726576831110590423722677467854129199317973137783183079262908028115164110472990316722472042785121273179806769603798453311397647862376045144099605592904558475416451492081388664246304655844678162038613314912070880473430048246526940793033942540129568650922277834349830943287733508601472449948648264702809953088192336860234197989501090977427765939000389793972526088156358819922035446546870775734878266619574927985030187214920634937337809395857814561806852294371457267955398557044326225341518764599810401054827889187181302240057583631585368202846106333735807010376045589131345234344339513567219141617762318237041738103298627704987856925990778768721034737898871172265343865562122104490388550038228564552193890955772968530508405322632893204806860292908460098564456004626148591368481929351155142169837801816842758691140797949649204775932874060809766509263796970809761193631490808811264032451336413229985412150219943068102098847607806229044488918609891524358815800886790009284257167684110909445786947523387690677398646142862221513606770864593138396870821642155369334878527729249371536778565211441388425847718539807844543178055459376885390661172916287494902764190565496334145397850080332505440012511990507562295786655371637776690642822009502543770317716183845306365453144834995127133119299401549510167841859350583817098282833373513536725696791211416164344022692444764247280462388962673375601878419900896721785129779707003358239388438973811479627441272286568211497587529466184438572673514404493310439775809095892485437801620493360970640197129669632493667511825635801123000242097260684642718824819993269598491133113032489496830642294985361626543606197571210673392725098652257965037899867233921009895502869735904973390384450580595654047391637814518799332737488091023484759191556709797908783641573015420352059860026046523083009470358471466827283916126005783727662242333393915272146472334844963708605614824645979896358102455885626984952592178545997392413979167645835310664383600344690816396718136853925859353670242451571119732631167661008507773484228290732650784642107519433660176976436693452041512435596422022612307257338527338449517121325729756776961862766163424295501107129013342087460233556701817757845229458487359042067149420971598432393058923330592748405733182577316567441102293539885063776017988260453205070204516477680027654664205033309772797701769865169548968835059679925858899564173268549094487368394643800545497196494579212517125187223056784252545487131520126815554806538252388377199741743687075461215056088625150160144184544832675908803099049972564167921479627025668965487611525580880530061233225909338338636988329878633481562355737952508081346518457766671448145111659721180525949267431367383871172757707335290997060961787886330869811321451547863411337546080833145210495127065790438174660479248551649599516454437159337547641379802693944908498895316772275761354965875430577969114962788876252438068271863283260945431600307453785923806707398692300809595123609093590543432105317110675592985388317641417183569851634688877229889310994662344149136462429380888779217464202980591617906001580842135397789822450736616892034363446811562271714919940275181499038016231955815306082877411173970729996973701835125282731061412793431701586076243166477557295926270330903216245081820149266345031996074856633595439821371471415307942293043621295931522948500187545053230791837074980826334360986621939980088645506895367302187348734592010130789285405482538511250000216115830549432334153702747699635776982221978184405302626791523822380610703375356890368409524127259521917085580131283355236620904622991317689875515716366933914421054172279294676465181217016757574136186238709492740894387922683863772916574564209966213977665149799204887212137771601143267978694554106738349128345352083937199405424164143230882416591580381818736607747537814475151170456979605674397640488101737737097438463988496611049712919886585988238440752299127688179957799779688007037901211653410167660463933094597783506520073570862317194262970666044053468732271123413226091359693040761491397517319876331167476716151812215511710337619223230866991286151596573715629716214844106692757532971600356609491779191997550663752118579631354654112741576048317029923963579394871153104394949060077017082956587595849226384526990603039495780378371079509568993750000881729614760801636708237441404943374260280807920501016576679876882038379376465889860133862725906189641041090427832680124888869964553047966981781671339960684627348497654052386288038754548635224377583220634030915078668814127382919872787927799471054768643874474072885896047299823663469711913286871890407363214466943096283582034950053373552856868198409567014940564850318827023827785954788068148379432691760202177447193525963895962832899396487965816689868700060858557643446128672542496201720652309121149981726366947557338392344011839445979853100530777348759593325520682035512236680515803610349325593056966918492311103188572690083951114988562080407477020062377008344852231883098361166969359696846023880092293966935440805670330145691689430878702682046497835327959504895603318652794992314192375765361513370189109761504483281529279627970876737736501205904459272246573235767570324345832282773030601582237551904614939822572121191513174192027200597118088575236178786177667040600556540409195163476510041631513404619768813700401382118990233486846353351756452534715526777716634422066466744181558430153864937658554278052413452522576076681252095047924052512509802733062910107172208253600248531710544420090095991721438950049966362394924899691919803120633557392498227007830440632244208664580875459403690392942494008843517977635521897619090602169644227293014084322349669403804153103610863185077289213882860897469849687368554590760344452124407827664743207763102510289953097723080339035764711152024393632835997089910862951663010368003167011452221309961132704358215088990518145684290897469518864208084804786636677212149384440305188409001351184562252872468563492489848761367689619395584452433972002463922920347297169139728868457138338498888864657517798954493220539690109386520406460832795736098083422173764287468512612165291540616134767554127829912022991219726832344757660328301745054408816819810400189029054509130846077963176821408726893641397903724835492692200091913145626723047125350866881959169383552376708351675978029826052662385678104851694985335679196005270548915258930039162756370603246127368608491739070951067825760176108114287478298406805618187112503246903215899333066453342997238652219178351524375147112726077349571582721504591418570667790279715965720013916343376667304301037248943589498125486118506787578792581496584044880800101022284395394441457241419969693375017895120676158718815979837771527131312979933548539716901032480798701129274200288719068755075917784165721104203891663822380869088007665192344151463966021555791446269324492598726714889399352120700191716207800140525511280220976398549238868489379418447890632944407146125517599888584092201671496554706945606109184200414476934666161261556572718958063162226776368430876865628351137562831384714416406732769587341019074641536716497480283469106304310213002491253902735815605421951870877931194568652427416781614967966970580805073106184063319104753970450401053184841809473339328477581648159775902150652785577610291234251162377268282403855706114618663584078852602304031777981330604257172688690625796148715727261996339033203786551441767796179436492120182877875707611855930987216731865382557138660707894258387295763708083673578201519399963326502808382343120186679757745967276012908258533412351250930786499356854906382300248109920085468122683047437075475900211238744233248450987632203840219135494017885308184034182529836277700476386339121763204313058853184468190298399666543009674750118308817797877986098189145552491056374169291877476027286612769119172220381785496232968542899511990020054800255673010965859268883182936515458900759771594087511933435809543929039946820809766874681387917788463585652023769173320503085067367066062047479851856343986556315554600800979969716074435285339830575964661982061255676924409629521848861186235809377039928308540613640441051410291089978067553440496090451414669247288254123792507371608285393814567463349969516832562042719953788704159363393325359886048283018706217801591453797084756337455676391078831108845889831189336652551433224479468789012791306190488756901560433646498691304027102577577708833406914386799873901111177684769379592974098613362506494743631908651514714980989895721020003001621845982630599180220798066421570115647706344936188536971748970122391083643293382676414584388515830774056455154821622160081899531560739615144953043481110388521934204213088024324507389095849395311114521762006206966869139268982452336100851107550922100691034930484186143452658876902110083899069547584068970583484339287259646371116922642160434287059624888857602723685911605105845549958832470626395260981210225467574868026789847009355056880452552905568473621910805792133607649075390312038832358393638656113891772285740401307746978119445463550738935196388660749120406433744212975962397412645332247545699245069471554662933780632521289528612793215701649153672930775215329895076796731254661043569089427105613558793858415910086001983652115460541792333145633233490726399336744099192217394307121770192356110797674038622151086078805773325030886185171601655336516789340238178076910406776951960740547544179459021072268357448719190716641192469920811996503875828156328975761653070225174957147470924520438499195571189998884153835616134340214734775184685693553382278951334224752332952943873702805884490649318226248989697778321423843552461548157646392980158698008643144109150249363832863840980723221850563664419954173187800219789454887475302055843267766272945757119920152183186450036360503731165622616971051012716747606290293319699409518825899147709055236636838794833826160315035865066056365960959056324928194200121005723849643758252000543368746771486832891236379873830724773594148723448667456727058159005850545925568484893804806803601591063881057185607110462196596895147536756196507255419815544364529625969228322317757636309968935137540469354686669592807488372783754404333885921293352699911617369643521025308641919318600994204729991746942495298311662514965105625672196177130119288958779735501735084610528194040224039260343033095943089585741328546607102884724039756465609231377908542601164871483066844451851123672346381912337596702435236280231402795317252729538205947105854731216098652585239899522974570292054530764561833038286109081662204631672597086119950966512876294618636062704301137816224375146366434355041883523800108053693990923197971905664709905420980457041944533908766838145231719925857336609353395973128986086127200434750735544551477666864831051472398262975733154605983398465415885848902439455244207999163090913488493000875869871329685528634881723011857657119776405985197085824099935784057854768026637452326795375980850689861391887771157330574468793024946108502835833990515577766696414498535644415111441330377825037393441079932461093063309013482911174660111991081418188351422942524316476244529103216600688604104250865822822461092397185819137316619637536095077394965749418911621014834314295983234596924292002113163957278059854667018104560078744065354401889805949618769605279580672119437373042692899801955172804647353355293455892568649758516770963078908174695988234072360161953021883674823900703697124096428652711386485500375325252828277283014934838361769577409398792878596787351717508601202286493519010504371769763268273061439088844805249840041440330057317083008902224291576342804179416439237498689738165886813019728657552648703182301569133312060500725958940407799523943419019151669688649876392947053592198684043072398932010257086842648122541693241071065924489621102334821728217239875362538994793888120260776271454218678962008582618583250584105197122579890288394602453450611984030402531469149346442295711822706781592161991740764273440997528047989429521969159356135093554260683787159110203759534989202509525098502756195884741625988013438356138703161166475914943104437146658331005470278836307845587702214970603393709288926200797309036108463989108979706994167036982836222686518096983086661271262265677351607332343422454668337176286679085839790578993188540705342568745513962038995207660059132902509470681115655658857276540199399576482382079169254216730402523742196216159619148498365231691381053428129004599635908018863992821779379213692147349187527524279112924046804049954660739304671200800646438982569474777221165749901658417412678031186686875340472008758421834218862197507444463105023580124674201446540269602052372655854874988587141065702211581971592012453141684842163904630066120556114561760503488602433658003900546346468741911678774884138262599769898307664786745208541426222395731133641097102443068147428076016780586390834411735958658224359064210653560371820837947608874137499892030228992283075148690496868458845518620242412588308625522892407269989259766698690898897423643974395092963233040652137669024707478531951520029888497859030096591558493404618130868439181516342123372469467274025458792064246016870265799465246467869121489339607210584133452327015724961343366074223649501885034922568684803586950847004473862363439047286584874867977677645259303726168897589649052411771216493204807492383605069997291371175561214617167639212630602053591003649534895155442884561682015326516316018544318860770773757785002306441906716998430624925020865358963009844530808210243742735968109638769179372456727416060038988296207206629986937437634652735049537162351925564930140345098181016612056609210348402699015589672234828695454494192601250211440212037327381968235547493317853058972341105522382609859395203581833066725501142542011681294078365448054082769594710511471644374611172388073735780502023443713790988496866101435441713697493437439551255862694557737421700696278820819088413088793228356121373086477866834222246514030920021843803685726163874310685092455048027012820170566566413961301020409068332038645572895376012511752503513054979838396623495220667216792871110164064554914891146046647116069995805609525134292209345996775376337359161812192411646415143481646098995613813690905800101862680868220705885020358113336010965684366222292718879665355206423169999013636953766820009522932539880751629407844330667717676809401199833235849250408365516772100087232651415530597224234623132674828194615287387381460320741646631610519196235428117067746525977005194911458888057240230905222321862049427239835945498379575269959707737292207465860537138293311818359678970945988303502068784932697123670309540774641932929279576095244875447278186137905742653871940884432785882887652314376528928053497080624916793247764029205898245255789441446024879279793372322671391827506517370059572092775079385169386483466457233969850365650644639967052706206241502655680664158629250634971718227678425642224735597939511628728987585681976734766739393510400352343076875128368750542634897702523783469168862087235942751625100136623556528248563574414196132708631683920590283157518322957438188869226377256234176766924750621651941939967781216293125937464925674091001928967294746100820353566833638835151324768162931997463327169590853819308010178096219030606794198399300581002690664573593241474154655202398064812789463982416836337111822633793622166318975503696665413549086872608505846679328642676952202372938491802704777851155738018067875268161431389083452461291148645342661344280492952525206915482939303615997267708336804179507443117882403256605207282688583729133325681735640634742117650908203508180177526459277987761796547569122774395180114153029274973305346215098859472093923629152426542007189349220924785959072602360624378235876153254887125889017962117231105565586909402835019786349939406492681252592541496395037387884363345713051629842389055228737282229865270934451967207444337927321843755659519264549686776458839118199780860100703029293052989144550330479882208447324647397968219736622265397530305527191809470430463012827983208121540226249719735136325250426393769015535473355464812187070698238257461298278873416003736130168237570314318473668290211973397236835434219468071439127485058846444244166849983849975028709629640729967462139427250155031685123596538121645918558335828750926605634666398263274960739896733892147289899864580296250339427449264301529061118881205074303691706999064915695360326183340345541149575440104072120019986043440633191419384458747022675039536525701573795340738627155355559566491984207713754159021237190620849159087510651404912682040036169528643149962962879843685365241081822711553872718339827917303001266849756516215378261394552906882066682023662308119452054460392547397811137544909703302435771578937121031032330692215865549700432029084681305869635978018014867821826190538398104866406530558464612469109229551757091267087985361111541474668599107647419228739021861106768828373259781691984471846589500971036230350682102506370238670949620973282545918690244771934503490420326892341587130246693042932110625016568726613561524893352011489231711747961093823661922087853777524263006166276065088442464278809183141826004395435723496220637098512998282318633183025070605939326364301591104491598017688515123774479617871297227929684759677127476284074614611005889909375171917672530762716579878055772869933639550386408662881575249138697102645957850886303665789554248509677492602652070707002715981164363813289128957950525020223323564993874564579990665619567031543555278182291400713136610214590714205862052249385990126243156334356938282659212861816283259578111832734413980340627011193008888198773713020886342069722010716898616518492898819460616436951419243677685110339640875872511551812140884855509049165468667090143815535775257675085484176974014547402918912039806879804243223531892778145662027419545273905533792250813382868904558760765836002865496754109088108926988986507105363715187839524896518835188190316030609468214158218319426568434214309912544753654693194951700329129397495018445764216742932228363687676420356390148628303551635350806134425660564214780665546991838213566617844653720414537734252477723098282286717343554847964241181253021354465905645341014117043760920006724515571091562661624218913133975963871556368172873955407585216508658374251106985143198568116213443558134424676863868898933974721036370297036667710203680968602428929056751176548636291902120564936350049052701270502495105501545989757110178074748572794626428632672010422023875442103598406167553015815844667775133789770120232560443550294869622132870304134827189406751424658905173062963009114477164542693813998028259972699794187690046368478140742021775325209507266645172016630722796266149000336351618039477578766405440836145767879388483965783175006735587151010407737352731347608538261682752740982157584690393453327219219607133045606320464276428063553483308913167537684385618633219633109160058297369772334444071513329518802672477274432050649179778337573221087849529175639472385952093851147088530221164556636306411476446238494403692510617776516243752259407028476544040285997881856080127067752594530317518264010740633230331025197798671117959365470751336483976508984609919320860874256348359359498396963528978902372908348863959659938064642461995453977716131512163942330928481384614049196333660114458143206649506256246049303534124304761924724381841327156640032548991536327620632459095048067483464298656696443445666951604044037138152660955864254734892351953200271366104027679076200205123302196791233007413831374154724790678912122445135691232261754087467567227095804588136253425127901546059492375994288723511011960395300017695260835750817436127230691383091498193357924825376091119952872956237756222300673796504243901119755787074919295361127943279426637363253083477486024987766006825647457864617319806465840646483211466258610208091981981000275872138057225244815885240167553248033765832365015950303745191001095546953244315685428148780747674695441964913555086851610347238810060873151593848766792764197900226368308212391431697989362322329437006650041804193056027193377013378531415267674470463970265928830529670511230155323981500857723184419619328463595295157847267281243106840234267899892300176094689689790360810919345253544073700351939164803865001711485557384271178536611261013012778278751838280525758991762728626160685807190483021537759830833453419695465730595253960795131742367704665395390225482773792199220525250430687363074475302835864686517257458432552455900782403944467835264443088418219163877288603937698993794097632167411897937452486941760177882475707540559085340538467112153335781633488986778546399302160838373650487912280081371652302304398897383876266948302597687770356843082453186427559424162710675639172762488652083282223586122062942483203364258524579439739554375079260629624142324403407724707105384832395807860494734899961853710649865307593752830440502298986140521291557901466112681503197219253178713916432766845695625440403544996062832041626478615724128724983342822470808904222036600533762617485180936285139426652272864419646763912511231346610679109972571354556636700901260030970659916934034425319008318260609469073594575884323136584890625544837358104764907660914741508886932033369839269210858614886315031799539019660518553810136829081695214965362626724948001851095351960648366998846345807122759289360321745996568528529471156314724865293850501362208818999213564486535546505474505561529406070467183623523501440315997070478222471489741354721234869921870844010042037305281055242768685956815232829172471890450604491101050369326987810317229203295078995787076281195510441412026744655874510340911987036894299166664496302123264673883096922806778709147032561927047945447571710514856910040278103627478757898601929727510600497062082569241204354806543691854558918895146637256253876417340483364799585954074516573258334135917503023259533975785848575884051056810977513025520040834682614183355480274711406290963190891543901680425897192713647691137193537442577579405062716170421567806690646343481183006623762623269443240418641170915521234505681095495747074824539017652629424197501334507365981357154895118665037571468208125512101298526774102692708528865721092968397489130317649139019886183649539592241783534084348717887472155384389403303859874027140315385419301542259197472627089521893902029267336877112070794211557803336220307263571543342006485779035630018557469693532689837697572311023377608502228485651337877380079021977754265916821111243633319576749136153076444221570974403085381390579654143654352599547287793193055051424582783774134574787609474326252598605822420149118289937153937220945661628583753244724166870092221773483465246488954319312058651420148766010813693040789628884930512473921893907077068699454105373682274051233359594369672111773958138613629188505694293812756181958187484590260099038581408516782858771631335786700726450557607759854347374392374766489008583698501021007077638090860028979269347364229369009715543853858918283712318561344056967265268965809373159777029076171168902275236668507496902495631132752585386413856773399559398888615222653888335497487928981861804535718368303383662472090175841437173283217861092253887277081021437054896407081755344652263249562414218771652734500232612060673562082472663700029068843757140276369700856618493025563213831444341123554640127787190928052869130102254839863590282052253573388430251105744090266013342086989626767871973449543730923912731010768165180685837958916685517080676593991293542462240531109422190195652949223696596120288167925998266934032928326975369304502641422297378135694554050422982818923081338125621727313765212194606909744119232676714224823007935858976033481798819385884225986449949161416293743834518575332186445754049360472016334263291757404058331685428354507671685521591705597375965193307790718279375427875985985371556223100516306476895245517337327271788307614056927215760974639470581634850736028007019109286572866003208163300425428719726723970756302801927965695187931157386484411879186230697397847298748445512439353255670994553337712910551821595348198798715691050392109726031905579108950594193039514434772031494292201602965302227493775069079900670518530049962270911492815742579032795046610972197296464654787203957123546862405781400831214565861940405867583180064312951481321451098804223408362526291402961095703833845485257953785359282202355064747841349183736888236976869210824758116269727556475680125081669544573284021708049193631889581811041838606111917269118746192511015935279988027477344768033581281269301464701140478257314814138542982170458584150427385080807612127423554459165422035011206842590040233805858673625212019831902094068919503850431060539799741154442898692095825442538471038126186389175963758196141011201357244444771904433693497285205842637597331813831909728467798809422906271021118278227638957048399843742188382487877835125264619631537820833322742530503083627984652620799028250376717212448187105414960412648796543172922167881437440797977582790525352003767382899448604055819823317500775962909252010737347976792298756226660918873705931115014454195044640414773857852139501906846764074048792104280333553165948997229397790654329801139289500632354771761844849348915838677809323326815425123639312371085531356500453507017374043111078582792650332961418454582379175842688030524528827349469862327121254691558520876925333206820630903139304514922901916356774553803494515167532272579422031505356788949762148997020939158053551559015195294009513874921274986582091787076337231149880247089839677985891555438785355208491244640560339622651737066994022037268608342318975171972934731363293139059390486983308990983365783401284497324525214532355856810424579817072768659095180689919339226719194230729908062826328676225648888645292881129669005767230036073856926808043501568408651852839714563320522875094980109130059051584902850952601762717444456227641006261304838260603987294254534428287540830094392512758334429365117055595264370067613645610610210938689673686694712914941571906164644909739217034400354362271337597219458735743021714566207012012251856704359329423858540787501264659099707594393080829057238454243786331262184014604076460793952987592473061897813077757671632283492012475397564496128591500510766748480604194740841364916639712914366266437755529684751718370107308418174320473705115272242288641184007780225399240833639494197943964371533899507171460360663376931149936101423865908186563578972845156743234101348018062251356215506180560450409683924664604999195353267694198452865025937361546613305236911058902893072103670523059895549557853904831567123673252115237706275240978469894856503466716370991883291856200512037540012304421129357616700481981887903923466213456663789434628009694617661212086729693426006349975948527578418886360720206709101935568131237486877242949359659247630378534329136393553507351408878949705568179631232726650436104634081345570563356666393454119404744174144389630999618430345240670974663523800400622046617518207847023819176750482151123986222211678662277118387456428935318834407089999916449003712384022585572219099448710028636530128427358375117645657566702983706514782246970441672299029259804453970824386075362946847388755443884577872832910426635091758843533933906636297235746276908313658916303189841274876403788116690362262770805772646479801004905511069344046155382466852408639308347608251759437518692956111523470818206036500604743880288894997386026025656975641154782826950975329799154393455246172611253074349623758117052028299658044453944061508952222716586379165151504056276729516797876508937915206787987099462640502050353062495817490158768979613764314293717354903322493687683077121417318482411022274721960441094878169163999095774494071670427026858183915526343214580756326857579672369768071733792398872890400141916148262994939129227796046657780149085921052552639607013911832780328688941782262559153020489513215557946804701960314646888174013838219114502577892710709873237660375640589731549224657629762848055408231059657690348257143998196000583793811663397362053179159628247414671609423839141197440053949515343713783356614525216204739628357278981132842955673855741560834659966433058283531625478601950885736729344963537787109009036842494484477696391303721388327499840546430455648716294363008334666510603264733455327276712290553330002415043908751070254728264755394487147176807317169269828375469975969393559926283049515231515178320468609657283420525938507091761718835201416467816771376468120537738356646609802938877348483989162510559593746203651802181044846733839038791935058077254105072923360945581622923966061243635853680398313383797131939014812096520606376457418072527510535093397966477884379450432446864811903124811081683053052724061701865359371679771001411840988414594217677170971400803325567056094905901977080424050087358959389122368661238215998729078905441221575845367234810789245141670158029232630081839200043926059010667468271198484672143302258289842061873611444492354510446920416321445520647527966225776338614869692111792555074625774365257979458726685495756702312969788550807382065632888717199563022453431908753713462543816031536754779555350824170240393687828061943628741012964970045352249431320991206841311257917773469759230607335756731554417383617603355490738057356159767390473490163594922573686923994309496942588096988044657524332791314841539830303438184666834003805071055285358514453010187852106598306081139473876434889470699999748716710794616918678429282264653169533944308220535290235171275866099358509644402688535060374542698888224541362256213532264639609751833568507638803663290371010934604025440839461927520914200140472837469605765397974309707681289688437126382897458995638605658480825891767739996441870615930283109088590526372239569377551707296587075903715965507293412531214457727361289998327354132676993304617759412645315516146065666866129428442306485741694760545955250585285545090870580067691073034357277741133671772430086868262081583290193061575756931766707848936588556191783222592098045168299340753675149544254041959322153376287348142019905023876189164602087571708771695623457820655550315231781486121291400735443598613253379128754182483074540826614200941839089202676417755520777095543495752649395140509311164720780859258718202021600268925068706728961763952454082337274473219194112623764915991657639500662678315416974843344528248254155182151627243289757907338025461009733408033055760892504250476073511316585635524331683492704695969496103852382926567242726667538943934262821067540941284740691642211755818205893119516436074282575981490999530916217085418691828097334018434943650078129274574743297926795265080280758969056571596387533553337453402799638440670660876368986455346578329022563053427448675580679625221884874955263591478450680913064124041645938580563635488342327370652461604577742523167535595921490971848898895627613934770801806854599103802493644792948099029039508333473321027230751152880026529532557561554954618962685191237658776680885551027172023781038485835148429643851469000955573563134770261400848593041115894617106102014353237971098125031080317997751217210322626212177568724420592175940386817753639883056689234853740211383393317292032561565760196439178170375527260709041263070170119686345880680280611688074682717476206492180044495161413171825116842840405854966616769354474416931441384969533653650055861627225558410833722890126321940239339231740315521998996307068698306298115869896256443912411371169664821372319736615434932926779612790975326737345896422497772075182824381822486942801605915335696896526524392684686052997192627451181359169083155769676177022212172307202001430075710163536130846726174845440306291744977728558585983455017428295884354156895021000328408126037566787203443651072849767298830735836284919780629900545936443705234822408113808323300858087686931100486022106859464927916747780904709940057242295626358981477654508726412358711887732134115000777174492864410526358454552458449493392180749622856467433761495422572245359051554385065974087540294064025798804412311462040411014913402079881508098555514188741218969821050744658189448664228090199397269520295563850748308992720046177681887015192450614626681066722967416944484994714954098443211001196294245483559524798701648114300088026557495681485504137756319907216998136817870137947592451741599606223336088581091634994541866920297352187860698350263150351954073041063138377780195224812001875068158794115550723318856614507834328532924047715684019179504842546590063179773506824886184996806741650448967539970875788767016247312708203164184248425254751192553642254513975941447483467249080970602603432606952028283612335632771140581749570740931638680382221215504147267241537257343514396695423250187998888020548445358519177218066041064967082918546113519445922729380523217265774117619165198451159168163610779769720004461279433243163932279632545426691135342111925691647418825778668702981859397012582047740337459833481567232163084046757834151268400144131686487291930060167665065570845864247567502413782250439115228831229813815873328253221073733788985401351327478650186865073844092822771725673195314350743045804477212758285890619408066280349065787129591405431253594833356095393652455153660084925551990610590847896380026079897284400799808167477601862185644587688376719299506667046226763037751052322813151242591160129222990668879762177441508223772379201372968169446530020400283654460179439796942140239408273230052242877713193680078500791592304855714459403429937474118004160592897375962919533998857045304105962302450514015658006230918622754503436332671237401254827831781870853512102042120895919161524796278838447992296626201899140478673036754967293423552871686881227818767738151844800638476242032830245010182849139709071588598691370918919565646080242943979445513349192828842162146228936682634305887188219191773860819382255381245728221096048610831423189134823176096539156424992436176757189861934175497351575906665503105931761239140694035315878542832758473379080940377225917302816227454942427161775864562139272351872408146388925405154914152194005994129136549481802473962322147848337578583022291283849403903469514562994243973488379463937472559244458623210041690741007649715820036537745332825815727733236837211816590031229851087648328451226592902295053500708402603314503949515736849886338195831846719152682917370465312266522045165628592605509321267856974814413504839596927043253063965817648744364739046371685615674654390902402079984520880320983992163317428794157439036352175665595342004339974921988688987392838832183730077444065091307927830501485695182200606176060795512227781705868385054587205973966958538754756955849842477789082919868774159274059118150723702189436869210082063007358087655768491053367890708712801857353550761845071610421052035859965891566079801084568077604669113912136454009545642139840961175443935473784706556094694472593218221898971273989160861553605260176365004928879095018057764792646685576054036343857966095818999164445542012083215773594397041087441199640278377198196320725908479858053981388204409960166769262794531931404949245964700200527010041076089402672288034662615000818800821517611911733915510983661138008510437534511209680247616245523917192692221635316809265581877596351559474382075613569531101699950169497938220923042561006658982252607072799471454699165414302321759616118698356236368726786467769647615778169400913790314298159294027387805017028210049519466481757742240282698346632131250267743371159562498707471801124045990487380884427708589983902238990873604112202191546690325408117294471332822585902553292514448422919034241178860322040874866374215144105737167839074550584857725487154112222887552266729959677530324885934159473642672264227503580468482857538238168946495572910905962319770478232774553760971797458009564783526697686227332543614611482797372479309782678612214845497559657896704602217163218142267297554600509700509177153139013232723207866269866266051150072347677694689835260620564209329757067506233411545420029211013461490423980353099265921505711313232499884962346043726110573758015227229606481788920738268590905237949260096990995487308676504087833930419411138111823191351482344700257303971492627365461997763962701031343411455537328288453307408784327122878574202306946876677632443634279513419044571532274040006239906644055740344325574485485275088774702735867958293106995168572786653548671761613485575893141488550814561009774862526553467351649206744865537076660250154681104458468842340892173553291064359935228816490821036092825452218914176032635594782984406997444569140054887146330609790798139180858615603240034222495106828021264978963388264560359675955035688599940731965289593971047340798173358954568563814760503864419673688690279435073308627162137378339541158490524389341452835011969507055831690300062735184701575017329000092998236757684504495628178129974113116727413971641367966539979900561169363785532284241714867734119910095452843788281455224768488956151033819437135973913438927839052111959038820633635775176196694383744584279077209396799997355437511995623851785936804240094255997091548745228640258817958931018560823391986919469430192378355387568237790451060145000051326573895425574483996415112762988547195895940370787118151116859519126146193822487421922116203317487086233941752619319068272260737608931127993267933541209430701325871287737309686819120392672603150973791636372510284585316794705119298086382284643253977453416070667765993325754151447862448079747459739175264415860360979330109763880836329201471157637385797007231025091970094160486767158700855853595782103302665515238909024921702481556752509080654979225875517734805549599289372395856618408843782338174900924243614996248000745246733564872969966720861952626267720648286654399924851592629497506031451761535801339026853190567008533869977944388864004567547060639068976842756989455867871703186453763049198480909633207875970316596522118441578336838314656258272342321464561035152814457390257702854761446939884216269778610029553822727703846738917516686091202119947934298625895522036988441683310339237053154475766776985185927270273884582896340476289755460703929567124555187434659779926374226081327258836111857875182827069186686308528009583622435739667930802876079427695273580195603808463877284001144992004851718702423891006861195567287119267741837442119478386547755165856555500919786054776397075531022777464372943788577932003188336629218982889799042140062811598478332161153835904736779214946823885288328367266186284339096026315648433069128192866920099250464570416734937250525844624443090285070784298000435304486184331046119519219200137428194896532319599060390679636167752423962073560891518672699005553519113460357412284652805068776042236595423836115188329541580371006062477130052145676895177811274625234684536572478752316421396176779205282343799103585546119888025931356571742799418355140811649008484760290447394212905389784512415134666646427947918265946873224265296767992300924812798925776953291159785838390457927058204814418051841500629717285444450448775985499271050345249088329528232345338774584597217682422731544377420877807133265226962870812586600029356157655287317331135036747258350236473602583669596509947915728061635144941060328523033185739723230891713774054381499052945684730696106398882227730123193979906352152707375678976500426601415509228996036780177613780071492352160724337867677267007938722673511551008219226535772677715356822893196195211092504570054092803429004866762625347338453539710670809881741507378422945869243252222309086267097370618605656138879135770535753876448311599489251150766117909489411153865864426552282078909330712734812953418396876515083533079601557894314905135947966278913538021512730231534825114174047805843679574701613194747831476635471574666639548820314304423184442535722288887215231664504089294941321442429366860018634176185565259268239156442312386586580668383929282364877952344474527796112318388982923186195368427871816799719897963877566401924152772608537361323647336705553876314682509252739163846575163968248264177189122232784203928305868117557462012488608155524618590674915232314644120868449160412542782783134396726912137341768706875847637377274052718614198771746313067701867617993964400538915200870687658700842073288138093771573566786358740722012768627247981429665207471758325651257234024708278803713634112504523732436642443719562168329959454160572153171479893052857473060044607760241557659523340065305351877544828745989176535600796361505296935053805610922163629877236909956884547284241040462459043296340057540889296366915246567807306876611504943554436688944694724272375957236923392246405878497070812534202117220537579466211302830987757096492452558983934083506292547340712579911516225156295023949915189532310828970686015342008823993498162653719954383707605136488942552333477132524478395621222608892300579620406754967148161105844393401648824491178467588023619599036922181883115275491999673354243926921133252876109139416314597147341629944569312981402195312725465276530519346290506548173874607204135536580591320012143193990146724626507798379468295043238370098918200832519866917972560245455598728481979170129771815763367458421033613140746578740248774860600221162399585842910390076464464082896836941514908866119817103826122603057426392561246522725116058150505768172975597947012449834754623374320481164772273490608802383443696982978832515442016241604873093283559621226211880976020411758745465067916634024857087237985719716053308437444273916336211148069787995615888272644400953738149212973421145203382563166762636708243600286244442193783269122023177572545753934104471693851205063496249845653447678400758336841522034266007010702719449450349975122500598583462805033227360099300239746394234037653757762509018620016808808510887436436128515712680938663959713560061520280431459072449088377567971928939503872280275819033419214028996970121963774414589806349838542092946699671514894295773985566955184306565027490139546163096029182780200957753357105241682888822288775883637797045372333881280556335828990174601105263118970103247556896315172602137509629415776208797116088522671209163065489467370798395313336077698707621484321965894848802855667093290093062933899537142835971040373518824526420539726056535905360532748729076802144883546856304964251738392731593954962152574501903597522100795240742407562665480618725403689142324754446759000230517147823656219846981595457750114152605026517149103890539188272871696055576626268842817796948259144021678117474824543051554424846011192941692261491593866331909342495092539404735882320185778703372776131935630070768605833079430641718131309721574945293323140280331931192619526246648457331553125487461880195648811054245553026186104158677108175175567869612230060721110081219346433130877103421757351739808239675797606288494037781252793841956847732577388918708424480236290922395065044914145830329752755432431869791362064138153266008249320820224542836519431160948951209793312350960304462094197129785325820231825711980240143416083012456150750192182022179506963779957207685360702669462601267647124521775649852374571398008437740535533638540213335165152751059774384866658966089734455505492392458486354845911539020902698394849540987383764204644333977671643581699315422924317355468292153408455543742310342079070977000280190932586071629429577593304998489085273630692799479105466269796061333388167360547133201156577363245240716059553948050178608399984899642011816414575727625726754845143314630885646604336769343111213781291737395254630114667891947967284165198738499350347163881942136703443636064944075472014438826825410314354988064134090037167629452350416178384872364294591373017838370680222717518313623984790605437970253056048634681971452118336425604454148988962296889024596386305899277201115219717710542919286720976763956640754033310045074203993840740752086450217773077037402901224183067370164490090248729073381019936672555257009804767180940914255538264680926403332835320063925325435746132198826096657817634786532854352999426115392838266877277922348709469332591992353780043600774620385303182014950680574421565796579090261572018518491393679017261949647113673628196127937775212747875875202098436062191604143477730008153459228348530123659688405054041539758833062882790337255351539637257371024038884185730751759511118720330769923086471875387577787537658403159180083237163006493716799588283199223535911938859217015034440872913903836931188631294986203978010912063060322757383305765437881270309502756067926234242604025606206653732904150093602599153132934005490822933344370047050120423036196719475387475002175030660907597286003957014028131873985507372444097502226222494013490140664173795662472939203554489865637032925183821295480102282585907736516749102800602756311043583971996903893727604150373041637583505571541267170010056494221079002755115702672656903065913108404075377742271985591633790508909288952125940462583857169336845806588916578762151259689754911581263862239233360047512307264110994436865489214680792536115743154219103663429846866858059819621021798753461544097550372902987620328522204632202714937798142878951531331469500531993271268683666907224150328857677907778983207513657268740416294707528047928311832272311810921903717928339163060582222280868746142728026881270303699697132956559959443939586793520282125689950193221736214153894226528529569368920860895611382928814969558020169832342828715715796596308937429774596957348549102872705614038943951727393727507360745939953866910267337651063250533833046917567944841619035627884480881379186032009886357629323013806350431391798356680157820389841652623862096792584616372424930398068896065621202990455986686692119920706718527947653052353604207884450429818451375700972804605114066794329944128178490936621785603597793964320977070089575788271919002536524105618825108928944745345207306054226842892497549593549814726660805569574891677702519193620602088093895030079485820221631253546176181090355603562862398025559834590794739078116966861168743677192215924275551335939337516709343429043629682087457629155010452631892135287620588922256549716710442055312953324448571137666250886406949585101496738562628402311255709670826282815483086522759588912933315588077682113691558024655252448893578333552973780948570625407043024742539991733651521116732748255412186702901480331311473860101664035267466371566356762621511453080594870706045757253402224006791366400486060069350225065235889644373760490359034898865383045044651645880037558944916049477310992729910441458956295839123567884050555122269505114867349026862252880164319743943495928178158623175222893635228220354824780929381681489665954540290111511773872046720672639341116502452023137355479630082019605004293342685461049751054457033274036933164623174473259913731978753395661637184605690754844448954047114236802061418986954459525965464161781622334141179055323408817848973989717331379756565223703129844462451542116985641960047339424512780054742264436988204131874246199932087028587906248617757584032616409132281766440264855260419886726745602652654795629559747695943599808891189327516007538676966791045913603207858794709661838777044196104999844132728530973513359297649714951409725474017116728672300202040375289182490876582225501384378126590252053307599027111217717182976110876737815659453405767108763412192285653453165249736345568902131883728906504860012051311911179405839471786411124347982210560221985345514134396133636438997956539587699430168318770734335808530717424972533665792717393328629371435845181582502618764247465997662940420123703470344377356556170706729377304205713543605204095150113448522223467673883524547653505581713693719261070004480825751007979290046363577419336608904119352952311891742745188357456256795315952630328797483587291555546325119285791370176680711181390896089942316728558545316240244935905738815651894066616629307282636076171495015127012929658620506773607372122397570170768893935577261932325709674980474818654536769223291930559269086158952121690442506805538139066653298158712131030997961342894135636318059663030999928637044722425523247060349808324078702614366374634444449794787131584429287528814093091973702591671783386992471840758940825939781285918187352054475592241284036745009120639519354302722008807196781941694254535105988429468263369120088958196585020665249339630541500838854360696701965679138172749993849598336539110761054217673503018100839199583386913150697877121582668101205370904484221534318730541519517958148027515339850088843612256600820010402479480031777202972050728823205448718332261521376512257906192548050180478109232115892980727756441272046966741075808629757147797318109612190124249194312070453826928005373284144366174221464858479179189432748871218659813187345276955011793454420373743983076266330653085053236390825130934411222866208344594541657128236888560688983866516175481685304386221141995240501541579162936493026588939518160807292453640932417384478250254344702534128775074686386282629300188507612016019787056742641153886526425830648700256823910848184808009071567109198105012335320595027524914089710165529248141601784464368213977152162205456841167080389909149895027987588484851839534429416631347411162008915231922770396884996087245357048517143661546930100981497496046748691766895917547270587055291984304394898649837562285752338380847145348136517161893321630492460429901638783085469862926688663272150842878612761936338565275327100576497627749852916908755684346900995564149549304592255708647510297177348846848086259603649339281418403818501349961469717839845474652457162184352052341228442559319817549215592011927443142274448178841608999696412120586347827447824975064173230412599368832226555284430283721039794727330531806384048830661069413970332697840877797734473271857034752872373633403764801086331480979439541563155774926430771547415447643329635544977340377638871422402772029476088768708946437015574916796475009244776649076228138707851161837216221375694846226129189970100820355974615764758004064295191053889590410606305791414895165960099775619317641126562260740738586866505524326727054164503425396552312768845636771556879310031327878854273830099705157765606248144370037316378420109329923569285741313818982639540221042928081608329102920277659595794260426265576895858339895177012378832754991938677896567240132215376342199383652771501533639836366964295363040550746065890919811600743647174662178582540641272009428828305169082928902227275524341140536844540072112839116708125713700947678545033351177693581256484760568797824360763957010518538652439013695251425673915253555083989822485908795109211830013963917650914577928372651077230698753671217788383880361584283084785656634074103447985945818490397090196562981423227886657211551334894769145713518168538763346737370230225552866220328158822089360778343482138122546477400880676157868508217883792933564847282340711309400946062671628070197755396960042005598352208994803017873559172362209775153619475711913117963845339722364539452728384512264036483443704725335913903105543327077250111448881227939047746942930034048249629544758931755318805446378732902978165095428757825746541681026484143843430378716753413222195644563625020622693052494006266153762750092662612906409730162702188678086571593110849717979503656138648657364544281467650738943355071021911019269948951024433763103623063751754614388453877595247812898391527521590045277492281794415688806394602089449096460719833606006736570538594901859669179063648867476213282006157365497874925348552421727671229489244250907611702470881952273535181737341613916438334381689260479981389613583019485814628778222746849272045082499145744930719626568841488135438479366917268783857426251823572949417920431982563154459356915072877794582174571899483442130029627574683897601693589179371007486442796036755631278461345276091617187104615099808209801981111605034607997855114358932857058858802253800069924219108520769002623223158038224654496830295475891356203119484022375955065416859537889817193937288914103245846314815805228389377534799158997262687081683164049319356428334278446124166778748312340116797114488183811489859346849120912907754755956707404915490642608685757977701190384112203448055962376783996966232226303859382612420654791983600376449955270366939984419851855274499300441602288495036490268699806349249466099429685133179667374116510428323350689488957215814112751284468892052411342160675130265240064650970804781972702793563766579486452455965044395378257515810809831379808168586713689161131304538979874631509471388434310114600768510288795726323479933577445512798184188192327878337517104554284799688389862405471073658293891722900278234154146648730669414056867641557095443730189370668112253216525280000581621926721593552492729711871386071551094545343842075842719185595651388303388470849285033458666680003166028580126623775741528304566205786548003548653437036286451998303646093428245855811283465826502495497125368448390957629345903575646931882474451331096950851725931429289902311003732246776906226602561840209893839551108221172952598296337384581634868699339814028067096995706203352363291652916009472949409651570532858661762134453604236700284855592549662070555089968460797505599519599203082127341751367295745060610102585284310373983307496511259507692328649480746950464970314347513129779793598887813578908161643826322523632006107884364245616154082538753479193425236723015600464895607129089242463656335028614808293037473181157671811016883672520097029471159048208697631970830038143856645025341505808611169515698017003729967354442426937782382957438459611733803868468796349337283182452146421766306822129495688773514097522510808262750671263972771331435551476800580734829169350444383794396147000028094387525438102766605276869789452540481308184512668417051540951796832930502452639270028392179925701983575009728514039893073687790247982523668077982630323299251420621585714664298139441082039881658572716817759317378077239531076733435812595278028254733186837458175402232551076336591049944837618497036813711614726221387489896646016363850066527049956538280307632678796530079033728769489212923321607288699171800141486593100113498647805531661527006438638036809886319099465843507503288914740089261248245547387168328424368007050909963464340994776493876745717923889624834490020696192195511849814699902768507314354830746185557727667379294150300149900537890441359702270808353929780714425482467066561244304378430905630926732195386134003046444757965431358075563130911663323862332723579980017634309835341641028019112917502580813654444857548723888995426162296164114374716183233559509473160858126432224757852021942769271686988655854014164901684728641708715198108337178723257653421897167977310005591473896072965974733497861135996744717095081020341849498023591938421159368612189155032900589363953790763719523290697395024270143332478465251803139074984798063790903522972237901447275348035221164933135450923704716970299678000959351286872909978391311162169032460708434644878548612399419731690179898068048047350533058284489008632633904162745094168722890561113078560040203933650860312757367889430801698407732825004802670624624003547537009877987561925088248538962236114330483315951135439456359419348877981578725172934747565020331149144220955859866669593106694737607602802950562674160804639236907984061842803883214622283275636443510514657789579348436703004602910288730658034113983530123879343765309686891594016334301909182052856522208602753552421871436245272446370392140255860837719873815926392035803160671206587921432410620701809325338492228464096847486935636237964123143292327389300140600673253159675123288719926287632734031139529097263937458674214475149208003678652755509541661555746796174413981369391507721846851325796675388162370555523780533818260619247324398324673052080500902653774748600122155851581956080762184585196673998175022639333761624056495470988951786719591207635305263103606657028720305796110156545758375164416176933871179838336238263122006465401019893499542705083963302098980514960126819648903814266968104235719994150794863321747999556978266417906213040459183687207992562890400983315889839493105773633874052799116053894389252360700841252991189773255564884528525451477998942878839074910690892638856882752364174856912545296898765794510308317454145353957234689925291318983402506303262523825948914091962937833606914775807934479223859943176329966196651443980073789195884925884298566439956378668445959705732689951838246286692014845537010466631406247275750419845465444396247290948547834806005013814262188340162972133524675317766171201488696088500138230628132375800570463378212192834827028242498819897089341183111822303256031267316195911712480347494429516378256867947648480498271150376812117543945982473690499962192646464570737212960087519413917481645824751279007660664740035400424740326455066503858406286735206413159009905651638953499631281319659204976184129587280847398720855918865084694617754142336744966852497735013510213413442983136129776038497696148704085594816505251778305270523104703642547223725978923458644481836397877070413633783219258549611703304854770217974294922353100443808124674818564224847654871288374584589028488574194870105007719231523470561636332885666699732345422008317784314164226537787890635334124366470390319533090412166798263154978427959085133333567744489527635543135615756019389094318401849060160177833037612415637016493050505055347714343312651787314290544198294357385060032538602173221454013591639262598915008843802469720285733382025930917885017958985937861773944039414319085774991660034118142743694202262215142517990762124052569075449694891366608464365348468021288517327822993641622575050010927025871463230306788714897774687450940839887626582027316188332275646852729108074703293736257477224048688197837424698878759066039475425077250181550336728160907294291853072264180747841896700788323060596783831178555021574380200942832509622115501076405321903769623790338984329921543010975865166991739491159341332258075230772444775636792627941398538534993683444066674690748401287165379819532870593230122135011709866412840710851979923089140762731370319580097133409247020286950107476739736886084458990684526046935471190891066258260928056201618929340773314925503265839465025642648763881471614327603486067230728598231709473643420160026239939353679844840984793998738099011373461679842843232182383206429930878934336161581572687462804328715586181578829445715794255184231565970200017788103706078438129660788118687424144105611450492960460231952661615803892040130168421972543844376869490883090138910785107459979000617568711286591201147477951647579926636618009698714372964459497909202399137273220648827805902202724112167758760583367039691276493739759393870748965629385667737679910893201446412210358549538001954403669363103237571621848686087334852876230538588375442530650483777057502513129276418117767404199406505392231030795037586642409510367201878115729304458611775359978428542386327042727511437460159298268330319834891125327923486673190612664678629686126822269435274167469177051441375115615895672158420054188643077543363706906847879434901787754087505984331340556087396754998221710386684433454907806442072538360073667193003873141290862272914691075443800802367420652999811799113833747802859361790307661246862466646005508004241063182336385205225969702195785546123430154777460355122160152571415363839917070922080007617008476520105963186598060085979336324839538270700718348231047829029958020847474092462106731168183792940836570090208567205173272718750674888231065832886695727395247348134325414129896558831182082690580173067733249698160062840570932850367426064959664914679659594314607556073121972067582010715212870662704095880942556042951268630780940397440105954612215724127054082852722180134960115337785977454357558310004313075753811276464913350697459740436463099239609293272644937034242040339730842218936821508314065203505752415675157663878062377115150806760813557192199319325856142222533899468235197947535129343171275587173281335435782399201934768387265656767705657778634645282255912001285410314972708186495776611953247284296686681779704398736597896638006116019223217018949696736454955281049696348619066491263600984757978344323623414937143256179428455623475524739069674973842986125272406227467002723473829733400126648470258293988018579133235070769094919429930221284768505215880499179673475400965004610857518769749696460527239757205060130881045805562839537307213459359903151208665952806546735204037802012336741701655416942564677924116126945233196261429840322176581395729632902082891282835801089752542544267208960141844488560028398869233228066973968395752267523845859901771030979940012836018671332436195130102179486202399666738918274248338794972715264644538532497410364452093047208242541401991149742560179342286785030129749663647383861731174494883316429047402334735136563566977227893990496848345235006193978052231328282944282971945506189184711311192135889362932778783881341008778947037956934628941729503776378039282404860833213990870364282134634074118187323944558334024521129033943411415185440499029722469816886240797871360966339085254846695351022835232285063636463877893770630179889320495531188838953739067591033794072418269342503023732328288068309194846412729415708145832187427785540625049204046729191094640348199124691156499428047732767193908503232313380240478667813062508032142329657624341171263901143384838986450051676600113850114508203499460686313591948546317198483539969399497494859682037007940224806013550750634351909447012607710939147790011541026555989768925696406878160198991555030297040667672527181866441541434135858631108793188443562555381762650056635139288132191566056930208949408349420943397870126118796163870180390118409340853239673117419766232313220792343843856871738951357110627165725512236939856668684233672501605489898658949916567253024209539418401556220653118585690835313062103078607216358931265384407476902603865729248916397442364801701811981008532343708178939131785546396595694499166595075306045682351097473398121992884235245116355031267977757333827049861803744641888834110895687004272398409120588162534891294566547523927797437062890762215442833932962464815110541001387567409608500116288344845699570757497414949794585741175872070195075510761171270730725975872378684074788497132145714112610905662262807622615039951815483033135088467791804471189518487172457208787919603707915824954706759955812154037978079475828085587195737299436933328607883291042433984207226251190420459560823370183364341749647706999881414423700091913262940646129110887679048923051679341272625213267497376764015638680278831099899372752409793412124600581934803301086670146516153501628933859482127723212178432317061475523319346505025477823002814854884024812221909338421140839205987609619173038124618068649278765940781439709727365034843988099922973072491551410737460574989009862697742633797018146825820823469575297358865536114294139088639429491021877603941312891978705936818979653256220049558938772981784716370654906796814023595564180573376972357103529770439794269070081880306752922613800947711183790493101808095723528834426680406507715302195227849628618509809918519279348856345972426244532223074848037526076452271266794652242621153779408270870916541646410172421418924466438832670259959903589547098169817937464688207027324229032187364035967408988744311945417490524655191880165516999541291030771264733441636111353162820086627668719351608558459549607563005189065463150619580680521487635916319427441052856790391785664131064423039077806173191120902637619975334507541683683247873032600286928120808069013801459156084012105357615613663051834940261049778608283101105254366900535718228711829613727441167754987352492569439967662135589579298063399375939676825061042843087408681344461086552876250652413864540323893447308019871094876242347428489796600976985607321207460328152683851317531501011156627099962988250780260638338544548395662036294792453117189532006703429034858037662338573815588080451632361587973001637323572991275309628678970876356741790905506554623030443936995995475570949784855667356338975824546737068665938310244707334637370032376261699553061265670078172417868021646520426328735369132435239157378536817287570475166398712216920823038505472875043497532460454031334653912695194661278686312792116288779234376785197949564667834157484125504195662344470597027070281506454713452064106581211263202698484047353689170257894891319585031870014873119961211750632522094599186106279962448155290021005109717584658382474301003866102974551608588198809015307942088091690691587075053181511513358731457668842036656735168419217940370745075876457557002100270389733074213175887355767349632326235006915400961721171974713194003545986668511504286217666808939014133258886340530883911120862842462193841780933247782575904517095352028712325846284792792622129650486701840484681149798697878698210552914717166395058101841963474332342569257908036654918001893813212962477511851096002121662726858930139115827704982300831084357263365919793955361667392360609705092183179648666780051194217231400721419823328884222323193684997048880504315379482793712072247792570648556884916008786129649438377502017203609323300770766973814481005159998465342655597757226646433721135796690294745934807455698683108556986830604205727971317982982050430967272809726367395631398177272216894915292691970592384869882333579416049969275627946983625043168579760901373088665184703657035248917517377432188025392411469609996805074089212515249084973527250912873150350571275770341292111772803487054253422490994218633036582539821582045720413725709559645169430975803378246860587880441195429571278287869342123038119624466316948373042554012443765596676197244329894836205568251147270820217015115969033904737359391963472622831756288530406048179345559710225415800820182955564872070082124768019151252857662013078059560133325555184720772370940701804779566083134947004763568270996858159274821319776365350351710184159911226006364021815759627811244056630889547302430948062113942477665415206463280680165531104253536606632746109111819723169459869459459139314370848556746502095764013178647453641285968707888865109716774155504853523701894727942225427508457765429782223038975447301571092537829389428286984446211159274704754366006415236596424078297448627270806733114727191040729149012501831666299903124307857018012192671500951006069991974779550140760729035530407086263459720215719799984485560945636544816369336449077012020572565444446334452318349408394851056460000177907063968608732837540806564338589161919730002286406424187449873155793796913242830041243030897140731859177034976329741248828472866281969016804560281095469073036684762511592322889248558882510539853731565490097880590981099383115154052038689571100019359082425456572042062211892905496250874874562411513637201926213488663930345530696276016330099324438187482135390699729989930938101113006274573073518875781266742760474441365074158153863540122873683410930338190654413038410629598429044381164020966994051288071406692881985339077919960742406883617130512294681455294768778911448830871995318535653260552271924158764300732118556708627317498222584060088394042244838798257638385112922908758143649432809947672381271189495718887633366051182191369407217687521903032572000369419006404041729059122467356923224637416485693528583467485131946021529122547329435028846810376538696933316458819789439061838022687577146768636420070280081513605371449375508657815742989644063438473330321519955195421607881352925322225426555134782958888718554969992748897065026536823355124267839114779378760341211746719276043744256216004955646477217433068073591143871022834094026862937483653561191904335792379692812217417753484646629074239427163180470515037715981000505216111297286175371652406477303699704174118371691255914705539646824374160199760464531584011508864961605044143707428919129418687648708034576621852602530230615916879077280076257616894924630860342804556182064525497877593126143990088244029743170227838579257195039430332258401570842793534660418232837303947796572660032678957845894033722192120457886143376299323812251092688631641512023784664792989267668553821511245343926891760701869554330825556194556530854394160579579910992409561040496844587936351536791432075736043084829807622515301445737609103674625595966334066823980440461792343765397503959911331086951796515833725729855328947571411069187396349026256826508651766990344843328708656686838299864104288591455631672118131501970526553384524219534515100432480706616245825364264859596893631368471394253524128910625634453199341938672341844388559193914904138411388367212867053112819602755500259727925940121462304912748924993865246005442825502982211634288375197739396880851454860890321860114295390264778027197821837238941985309938114100544729480400934620296967753741703315939184932838010822561737852392893420881408620203856897248883556560973500824726960543420938064360350848383083544482277548922794918872370206153708785788304535533341221714484857181384300355426516281024088508993280349980724933958985674264879676472646057146319165689818740054233725151468953930370652046366374939865603893253719448594740859988760456622060128837096911760592028543843366261378085643264334297057925755371407544150187146534710476690026691498478491841409056866686531231723999355266990818322918745072598999506983394151480603197850936398712163367173094908305457981114789207331686549290702049479405393458269442603753960177318200003905902364849561610694446908456542832074092238045252984449422201721067700587949491709142077011912166450869494785176157579567252692598294392542122840349061872559060460727998133619962923561772953841989969404602558768609269996648376048264438845236044102479490085022119843718353226891294868659404351601005326281623838322225926141046012844010591440772539463780992572386028718286146309146700599772449667881082673371960727717810724851723873788693224352876448537319512287171471517856346341681202768340343158664577347150076045711844976662355199701279996675661419977896127043969433529095776067331806927660178542760891955051444165883194109232520664589061185431639670150848254950161444737937188462721138535094093132909577561649032127481043343066442647612072711927141118075754785862360011039295450215313041877713415877359650452651309806859712839358242144886858905094678927123091560011758323273512673664406472310425458588683920282057227949724747058188038728731330049080233734638437311004424634995626012334801488964483411676137240971855904712418084278787481005081438661346522031651674187727464928798336642395625051461694049166305724107312953012207385394504573123874004993252640345133412304249577000310418416665058612020748714897175907153225637683236492699245378980530675478551485791715914414507590473909165828034851620182199445550358147930944107153983343312014351082593646500694858983087476423795020258834843834387322978212802130559067941704404545589168723331860740780478620366460989429277977527820324826916241328805762364842123524340694941990713514323980717088677427670134314318897199245077631582453432010463723761804189231318910622467669516889561826035903593857796099908431119459046583435655665990432431731374594323243354183204158065456437389200378043590285441714753154494763886291085944300761430363104334100256497671912496233335811801174150842568006933201542211913216908837762204361953330094189091732541087304746828726488698178944455131516307814829211019881291070715298033813950899515999943096494604931358298156878040890172678570925308569547073623912749849896315082028613478616997048396676355741362047363560512437838901948845915120595831939023910149664058288324922595536309399255180604347115356241520975293998687904034136846255663020024063755719424178430131753071753354228499948495536079513200403347344618916086669121861956932362512348230176957375160697178629960551820299019116263541310929352604131317039102074697680870136775368615544503729654899009407193181140094809272156331745393850513684459603176179440580775885028512535747568982014742797983255434198024842563338237160929271282827387293592202622513530955334402259803128315468156113849552252647844813056829891239644099217045398383317232021375670714092857801844595591536104107803908676468679707409986370597134044368292909232992005594021628288180862135088862377152664775476174425027756401053791895601328393178014358992499631550170869451702943983903394688526917568414974368227048732129712607790198034630776759301109416576238770940103824187466501493369848045486431492742879832946341330150139211018434897579040729203340104376310973009106869589997431575831752306066480328753688275119968760442882019839789118525924721121744723034844239118360533660802078880915083595441406988890336713733584346557010989410394558614425245363492297544073709157268947189325321926128995018331857534872495170787517871637843883026986732075812344838051601273754446750467159219046966100729551201425423876220638676695799296563695713072835275218391255976763543287413598504287468193916309992217100295756558891165955387171630023329329419403399338857643183643745288603873992172373297921059148673248721054985271358304520233065724059621027234391989026911412185875173085605997250421663276054015031872862201503242945786977553614816784697031405571778104475898261346445050277770954588721114091707308547518143827451723994940766408888227198058077598947408471030957538874354350071773370682460120597415510590609050587487925627523795353875383261888068252526709568771238811819520313310228550005997291478742933603368153298308274713463194843394040429580164738318705145872231577303942279576604432805390554430778940333262499406568497701750351451583827447965729815834106508192698538136265275131481920979957149338165970170657259802826827489414164828987129960911783053894625368740093204884616041758258671340870804909575382901777945281252655949873065043971171043746307192161890225010977909169696174218962332146115946716672461940534466138010046264395734650270250573211593243368427620982966266322146374391769504091282158457897356609053262813599492519048995040568750946093069784433325668802300027782089932336153456732278752566112062426102392439218448184041028854393251220671265801862081496889041089896900680607120514223411361249099688551035180270153401068809402122239500627598916343801454216115419568521638001121207492801334948297779329383674707337894590352059769193072914264127038422038886069571136480728098833522991518033050576531368571351036810330946104216622501024140713443489008284321439765410814202857791437635958299322445573927816559446702071618011564707470809483400838747471548457788747795304259317923546509613947370085329897625153831938372634661454524108940057944818234856910514178651370057124496543883001760901074299741303613471662550551402125257126751499984476148437258326246532311422585304632906912046448266134685551216455873931412063936186589743387910291295542173096343058484101213398776171632424078525476709008313307917421465580484605961743043358866188416062103455278643488584398543694383191012858197973688305724363405516507804576611822668107944505902861878072706369468880958199451631953448573355174311922019914803538435794434492250958610767809153849249384283687704575563609433438735998228434749755632426740689170238564218801370568841281043226952133184214893583113826862504885732929885250828681212479694292561725716421307931519923322002264964752814016180226881492512090825075408733021842585796372965073228318127603645653308331436856509933756680841765684341677043658534964614972188776554864759312610106791831836826941399609695730346581943920939544696072055584250574570360470646565269349911581742964590206867890777057017503640546456277795959056965958145901073702181741250982003644299657513702990496084242336213086599993463419708613818474156328980547676589529945021935538821052923975915380621343218557384557447184327832356809298331764305856119134063178797202733416341490246614678262993592912915526271307266612573396417395599967820489006884448986423585030622697915955981105264350075182580020723510075122962278575817382644913797406748486488010991624304273948051086761840133769100958540256829184111079159700854279556161323792433515489789748301026474875897596523282271722070045252904616622298407031754476166219049262274594732677571390429242489562381301383587434411759838151663538096542738702115874976646561699789307413360048380320693281807456216764967028848090177913231434443955788281000682425545702247886248904505717624620327694427059240112254314264527018748720202952339629506179904578542718343996590714940026164357212698978282488888966285643265304260768648447250495172138898852993401948955782099075269249111836878211044097102117864988765373596283974681581086208816893116386160198280313655472649557109718311824964470612483013160497166798918018114348189153099852531466642562347254713743316657961726711847524131925301471671261467648901492244732592615548370015760232870374553167875053852856877412622251243627998786342525635839744980449184559817153506910776718860259430344848013255862594017794666999662016516149438497523895421248880805272656657352823486234928124594859860665464982080105901011131359222399345760289596354285022944045919003043860724068374348899147728395423321831385118341706575238556571542273453979710505954488871456513899304653089523960219511855005539562924732653833392288183961527805080091314534915437807075061877569207975352161545371292627079037343981310131224138254402995251719395959215377582996625267116971121581607132333979138865484647527738457123827628741155311002875129897381791335632772960046005964012103392025150804788120461628277662797373810943521249554553202053709810185706951366079221834121772291708546947367533371238323338152805279435426272475745661235572557957601108754005620064591728793971391242138541812151402045423339873594948303250404116123082993794915156683469036534158705222089727186197348889091313619253614729828674651383670182167081538633152015150884658977153175597294744283354260317425404449879783218440585312062247984276552365479119985999726074364859392950331751134567861654131548438296617397780958572242321880755860129191841859462968700909793963512489683397739613337303447807597244788582733647886538267137950106745936505157477047133158684359057092885205491927419528820664324041225272252896779486457478057062624229667984274775107977135436882536317581872878984516599499981724887335041414429354626451668514391406852042719262102202685180892582413097725516111453055417739530943984316439619492798706553514825961620160422477417732877979951170821769359809935013287660038049708478783885304464998971298564938417859219407535735563007110752354605150148387823911473939771628637131578962233508634236940140303619039891941064562007812834323458317595139816996714127361603789254479970899314423987396490177620006807977981163862060790171897832085484305017768790635643477843913700082695394240747393822539879308566063794131927115959313525786759803853277812897776500814504901753930598392972268710921764835583766354480402115246072797756465968520339166874003068033797466442958245603729625477475468637522167179809497552024239110506947292381922818329986890622769906960558814507360969706254382840042692148788825901528696207255515491366799555020694848887945479241952351198871572287718890364715024025775021363555204557493160514910658629049406197943962072574432709406998292911592876829318941503965175399512820692931292173398939870426183590382977138944942696810998115119434514386655951141705933342848332015797158844746975659244573123850423617492145344191701976231875646511797779108525740916376659202651781256959722886166086498705157895184264757828191474150166579625343590380418960993066868708315672467190935969725363703158582065785462195105300897248234547305153876097123345579969382922784566463180558909491623121479830175824332169413555695316600142211788567281299525968547059549601638426619552385725364557347767501915601622935562522928338033425408562292660271590824018330028029652156421684850807633558587199548642326541981733792769407627865280321304376748373928241789032359026175365106618672027468906467980218230865861490709734303493615619165013546973544696133111723818242800227168700110171670331866604237679465765565938152876501930892235365959022630983778142762458350415754577524365830942334507459005209115246276626739874082164542881808596443369092774952030622431188094488837724941123327610319646405169603522751601539186162305861251456067921331959452427426824083448724798241440968134197673737532207758732779238003994005917626854419240145208975276162084634358806444577307737695636306252220925786221362155328421105879728148671344993107788899367248080552700236917887609706345913021297333471227100003547638943290727601339343490634105645860236038076329033734965808335369354799658522962646867365560274484863615487403496507859430519036260680353976778404131781574447393552110461881679587301890680815822372327570889404647801321547558475261272339991406875969352796230345062406585317932005561011586294491190703003010157958238972432131497976060720330975916942159011770341643977199010466932334101959302938579048738673394131462603132697370959406964115825724391112573145974036694396887935252494530915738016257934839713110016909698626503629433347663326901089404502189034650303208814294247023023559012214177717032273263016559402560943121650214939602414085804021638130070355293794709499997075042637808080036828037572475552684875317628678060928334740578607960902251748136832041522888333689172844538485093306571719127903500252137130731389488841658960224898655712080925910244736564026230002507318283727516882118840007961224682472163504239535010204657055146403947355299814088093442845556033331026318618028395045509004412169710814260686062836164362763058274035596601035685856103624127836093500808498875708915239317403683723140092169593804311037608385965071460169943231965825299660813200074115071977688552216873150616531170828502476761311043044855574279282159451476834248273687620708888419464119818039150278719058934562005131881185367175236368357005120064476526782122453777344314996703418466417069842078930043233744104085013330446287127923961813591721543917300614147815752334553329109553095562384551947386393094359646321089696768301891768933905218584200530966967589101363304586551232225431932291330023509937435180109309300217644688870740321770371916761260097574090811595340921214356362834784648906236327098789915533051890991129865905660624987843700830267545639324301391809108643186088788195979360839681411520319434605241464557758826969257366701432437425734691908664023691360577895142128113069899792671689487416757987358153812393943185593479669686192891838139615497366749588666450519568246508815409381776211612535314823526934144229546959161674136241249378758436428003319262736676811827070176931332860485558792667120783442570261082085082609922232661294176401912333444302957775757241741006045318127841263248721353485772834656714000780192511625422495498458808893029602113779992518953499004223383947182824619830510629022966070491798081512249013851257064207561918980609325342851798160584051802543985608943044713142180863847149101440389929899081320955382644342122098668219483583372282149153116103613532827659878060858653866807819522310863550652085327652631313467606456733039242503307777201295191733513203406276972811812524830017354353563293578288748798936685511048294601881923034822400323479789554301457508375690018575042022475836554078234256034510451903531321050922973942419386763243653731798886562618092796384813160512419176694196530450081736372916821876947788970882555455740041349448964627527525559344194890497859596560721358587268744942094624809716997771415774853684962995871819659900618562241605861714035503476053482524044192538136641821159367967923917234934948745005073017833674698335437217600556585977964562350925401725695270411658415954007235751078040726648667693817584914495043784819219364489421537725674018737301610060911716044275779161932936692505914935564605564851416264061947213161094666316727711843880183714029481698083126938581390000730628285616404417010299182556459422355945570112883133163021125031045118685765299615384806011698293843409238844697793570312738720701955972154966571445595417472525553207860254114825796535298982299315116353381016378847314138869363108709849681415120297974132612215972068574085451476148285143737432438169053295845238660548580639860252904857150316850283626442410345648558997210905762098961950694994493232953532396141444927757269919466626402998185082569705390738484187567916555165399980076791546655297357572944739540433547841932432290766646498334549722252858439562562566472171415183714860634680972189350407019189995605676546687894500660056176910965747173561800960899741783430012490306264736270371715253250707631683363008176004865292852012253677185117386222177041639976792934912894225407542165110216214136012151303299416046459268597666736815238962912506672035531599243502480566475173932118971854708668562810140442153965498809441345605540324937326732312112665572708804887073540082548572151715097229699715600397524793567558685676274709617545804888753872558197282039335753375944612694083082661498881264723362187448722648401581270143527463509737852422179885956888114140870610220012284345424203169153417382476533224397917805363894509672368298905826994628024130252284656067295675927963863544307446386838415934370048682815851727952824098512437968908632137424367566113350832175717803646249262326412953788341862110853877561711964014644735327911504145542013233349924514884363823855879664681199629036720209702893270862637859768543868560033996718977017578625468028766072769121036043633117999302321629241117752821008867523217049184792260739943995624770916218880469257246776811143349332703051146099485163408382601626686350559957454468926836480334841395798636332976332994586908508638011865533814683163492028228124055407252570936860908696367182982096893270453557781670503202875153469772142962182428022290898825125433160426978350102848286507346221345149361364353174674671054394855151244002023155525401966921999558604671147069872156437431800551801723065669544122663802120017636924671933227104502215149630446376274156384743444586309882180992333311545798525493589507360198520806632930975160749658152872795745147018762205655637883623232039794876979393807766444644553940162045193392178071158769558178381282635954334631480803154550619042362158662195925232639846735610207369378851204474018691093541073328344778257822650079130543993665910810814104277882503640808050144963280958974168150648234354867916569207261389544749963145151579759598867984805816614348398861872482377107233047183998696314870984015936581495900923432385306784579786041310194303933598232409807428246096418940685753813593632161718350015340667253693198581728647654928595580473018215410852769253586782533748514685676684598178326428368671032944580263760240060031030831636598648472219660041822815045193754855222174274513075701411205288571195662486168516656209163625830424811181947419734332823365859659724573085180304066834419753278739740420435433122794200310181388606344486156088813917627882870335910935514836447648203880428501138832234290655254474855947001698409295594012490343933840557332713688190840389174359905089932323606525725812899767889208079848995867681563274703567751233816255501576788998735393886934487015729111992257353307743972761600990849960891498556067437000727135952073791194774112735748510056928520918087095419983575211769075522948090352285900116974174296362494050424664883090109098449267550970909679807857125801152820562213587089970787178246568412523142060755591849408834844388194013714439446939932465162638260933150671822285140751337657819998976869376479388197343013979953522657268338722921435160763916417691791891701547134013656465285351110533015083071291877753953181791680660853889641596927393797317231281818526663363078749270877252980709860709276487690284790499280128582673248194496295673830240898547303662761552201692587098090123699141285553867486744966153427154994522907346368326920153363416222871150606764021113566506370849014197378926257996942813044411184903169033334820694539243919488632089738033403243121012154729664372886027847772392619854853830252941114083171230167154167633630845699213156572911821148425763721736332667397379805821165271499496431267738770243702602505773248071192376617438555332407905904911423526491369541424551847909176810368023350788697373756043270262841943768774160560624434956634903761166915130272707165032413433190795033484448616303269349740092983696152660749298853221150659293329196653929746541670516815387553804488466936022371559246370771738570146893052049863499150548432595023266589808362586684097399301190543925365059130129817062209219358272535253992339982995099501772239481539831397051040771892650364020897896068539821866995202161847198704928588800924284800715309159146743236341822752219919028413594933743809326151563595365075241890411099625876567563844988474164894089395990965166789669909847596868341724441307690284290927647383716813263390794200066429441722919650542416188325569918342569155053302353488515388937641277881204119752695456122324872055752864183642138553474646978991863006952936005059424909131326759246487463749174177211289437365571851249899431339678093121679462216943833199725953709991807154868308251314188384509412931005135149465908229664209961639223077779443347568436359799358731537947280132500214624846440753154573194944113088968392396694823368174472033814078950699443086545407918347014018875866956789071897999313730253671279276381326687166320504638201720073942913119359963386189456603932711938112843312399238356752679823312467870485687434290695725932244479170016555903184460068701892570691333383480577804294341102727885692484031945760559209752560129376050947303131884628184866336657766814129359386821292960384148567513206186098797874871214862126993890840690551053279454356101145041397168568719102148427123443457531902894784253883014849515288962389148806832043459941558636406049832366219987611380991676162279074838243033472670249254880874966936551709930578979746840453190889348870132315124036202131792852664722153699972315976561652341111785353626567382488443255264529122316484545414396877918682987025810458714966429176219467035450942542829857616147719383241817633399206448584631435264290572190281993131650757264463932717894983497464508941680774600326355214815319161366614684481694101320007357176165699348646151038079709912805648014199968832528054717944332099524381557029593511003933840154117800729741910843928614135761346799783388669138572105407962757811929661226231180227883153590074320394756006759433447779974112073019199542833303743999710130616600390305922026051957159662422197272140586588448735293579341194742341257631632498057658287820927266646931399982488438551368983278392548371256599179890787120187063164153759477208894518080658137265707036459357652477832446607180423108041011837945394504547979026879471322726004641254283025077327651473239503913456746893623752096387384956206605379767983060623082411530663950820275334081107030696477131786350893655679211460037840075343923438280284346034055629605128693526867712226349547646226245141158945967634295060412414146659533893842700625111646317791112473173239523216569999505889212561182103021403496500626107809335073366954270264464436165115432158215217987817925300064346953434688286516162818527546439085204472756347742885631226254673009398395558537599104213809672137562160739146216546913650921485818228790841369698162113364130482748824269136804326605684782572089503977632539922046358062035322562539750566134876518222421112449045481989770632719468012600477863285872389794743848079796879172282143881255795809958082973016852184370555458983008619053474077517033457212153777560937528319432896848243449068551458412305671738307529192934007510364524567756122865013495043634725503622653859677004216942042857772235619748892480000079063770647706492502667592793617805848626226408936586805904900499319071887822069815795291335606066956814769281710880980641085449421392994741703896016165921882381324586524245459457323844031402910321784279329762693598926165334921922467744649543043228593643358080190144106872845664243224765973945202893691840261867841774684832425565444158199967167887995537535635175812349144337259921850637189182437421044841412841096102920978049234084314372973093113263936099281369584761502431118163427107165870034156665091350580290837646938729472153238007631668638031370572019707771121140907021356100545876732025049974564285555573232052836301676881330418456593597579665234806382719893859054163628837009281796721767454943352301224167497343230951257129926611099360665512718747777774637660162006056910766790538157188936137554584069875289571166183063371371405985171939408813826948048140193202476074220669072093597087977952537186424278532563515464436752872392129837165317442937551428907636685824074181841143435809885805152111340861925521850524932387624327988228242156396978958531533253182828209111190739288525840176455380550749915450622240096734949650267297380353305157204918655206434817518269297344658590468317072953071942576736592016306397565659660983962267851396060764079996125514047542847728449128857032847265678382378516661022876655862532385338772725538732490205643581318911388622399810381613333270956283284788311107271544434892110986688355717092127545009325000065230262312097717008333276144014988155620538794638089549750022254280516028806103336630690967212361595232204662816584086657976226375574535824534126951675153587433136724116289562452382340592447394820095809704070625986264361270631762484626834999928764922179943273118630701424338695196351131901910039872024873935855032406137723617384526920684654112260601468453494907200738925532029409238634424837559116127159106793171995590019218899232819351737194841886119419621403101039019553886755185052272371324811729932774615666937932640909948289150413544288861793067081689547577546050214542707001138851758705984541535904237248037359272400920531507706818156916862272221892215547781290233121703642653446045110280345521468334678433263020214706829219309219740103840853810678958478365762633697717843417904571786771011353361435099372923005766688258045167691971452044826414616100605117825023658023320240799513601901342856880903612476188773237277263199131000325130675948817166047979333538422570113972758215954971215163325170875187770766680938197555087219359679356522400170618757856420419791191213792466729690889378355445283652146029381023394465785943645361154056425788267983267773264716607827406080669070678185335054548564572521345824447786055540519876366816640663186100731334492685069247529912056824402961127325793102096805023591479910435888878164309618033073782417323385895096288702726563285087926186162955084841830978262548157602833624885106911249428692879615978684810081203439725339284307345063861853427438599421847035630109211895446892906970962852560243048631917223794207944344992367680635088196509807220876061183975408163138850286282033659341643761381697164559219479270572093167476673838068029801623630123154684453681500877891313739030615346778129463436743742923563977969398982043711175088052503463325902380697419097121070634665527973049839748661965049513263249656875397869182484176650046388859271383970747946605845523233785019333592647574125796199494901471871878889841212288893453030345863427108532754458106009835915084389910165481538499278725718790082101818925076836753057547522354899112172646859595539028247719790969843155989877406109669677047642577985337601963652372218298051457809971296140456965323219581490527338819063438084840255413835007623125253972222912088865404506629287866000837908441143503182044174530007760541481907552369555450003148741382808809356766147266055388831418658519643030270348555489590518182062184165126593957477999080196768495291398676110888705119265945943640045908313016118904226928434336798383909537893333859421440006234650779916144943659590877864186994699801748638015439675672702409361980107653770687907585266194878847387091254001346414035599345773338560444142962821866073167625382007050977597651610561968595369456782715460266388198813491142336249654831882858508940094614442978752543305341077480546573540974364401995989787694831975838200288184305616741867104696567269942010641986480442233568797560308000154420732199515386861223204155886873951306184822947909011737019956266056172459312381685890377917227575828182927021677689547311661426154727293682105153447880063746803575227132690368377656338325915082425363078819549540828899973798808166682661040841513151693611844164633697370220937875112986185064257465188782857062541910893946600731089183539617350130177766059685983305875686283866601939975244384792613204298583572078162171235071096411748167887927759147922085313269431904924858788601220525420770048548362555675368951933307991330697792749826686105184385359296198110873466822595078524483204301773549698520642990304970347434982970993491996699680856062834621354653308285972258156373859917181619894032651305238102638737913136439120890405303300910695102263864238326952197621269148313766590955013597461476467807456656463088706560429647907077192560468753448010809507698985994689127747526508235973751764050661641159828965350310899880104997580510086022608325516492862227275188243049489743809598863137666192379152342399341080936794034847313415833608670341508661701359102275360828674531622613481302426116456777282089652079771303095228871711581262106110735787256542207713152356649447727252567521862182639779018875120341408031581934925689351860455743678312386046081856503382356175935484216985691019610237765450924491640306540236397033124113122285867086079046661320342971352625107890915294550032723364456098114320320019394402577562002512130501016186605830950673292711401713129223437234953116739254246536945120717398384801029018327510853416928208838585757067323752561501059070904558312269589035739189467629949208839141828614567768514700029481688974050372867237696918144474278327453031975827977760161698751441451165866107293115302732515045079363211724556235429748933515801982580867380496481288755632469769752699459427990543825767924742306567573264278609480690969343934970379091570865001056690754556768685810360740818693433005877154576820716927993923144786555464155152283561677398914684230663288698432103896108490130161165699141725816362081221259458832122621901585819765645588930890636821868811121665341474871463116439126183064123442114354546699438143886203812763619989266668262683013499845297883429539724983514818775096224017921759077783148763768973206752114461933792179223693071943846542701071899362023032682539617323928879919713623804035024065758067803472460298816227257583981247810212175129015938606774367802575521450403293653975739240758990790809687707227867555068942888538372925705731647010681793846136647493354668049604992867040225528641978676434281501516299171550912575117339959519908878910854380290026700816188617370202874925246338936046806903464079870106092149455194335718217323357065511832974477767905197886041672094091987411314699414909159693472577153361073735899918435554418763162532791977076349369533277384754262596282515603673624321049570893227592197270178074726352363326668063490760271398691561655274689862639527938030905889549263402404894905014922461056635874691896370237386323986805472609179173739449622902556322417590523820488374672229433842571463725864338104936644394422116966929885429762084186247229018644471824201451572991389224372969071926763033688569479247273381375947680012833719467425275593046656598473150520840046749316679173820344975114563835499035407003166456750734535737664514198160432429249016048410477190659653752844300491771757534285386502256499698721228584967364938702150170839904335910863784588362437163934984479431133211743223279287215606676050095232218102215646412557041225759875166436070567403069999884569192575258582946254769556070352483521665708715166267980842406347197439079303377474206796904676965467982788514524432960446278746309276611793299564005316078295902769919253211141051452848499294088701485914024712047503757804303055131981020456388356405007109150546593904590330036629078543777243279861012884979865189751067441236617448169035059457717305180638810524309419534457897708476400776704136105348825743830647452194084250175713155470420877641927581773143212552292517103826446652499750603739444778037932032962640461952377381892831955418583539396050730339663218416647949356738239713940750659582252938993446551260499065739033983147572303820578568069256497622981677783932930286220702870045422556544786443135740384366623340314508983237841870019525974601851838832051134889126701105897366714698067042443089969705828963142712478776511960364122856311131250446233553958553710751597178108994081601383181566268152120780173081664493295823267007078528596429671604912902575266314328304751259163551018001221213324958487702646940064649708777468967086676216077452570270287326850347995503029773694442191935393785424975504598126132008510651469852015242112378097174546760139055769226399547095165099136780278392984997102872896311285358823966064218872966422397667695129027241677732638178061585782267426700270503216531199686278268202093138073438095145008833007081562325453212058448980418475618480010459976923304995942101473635557413726037317075447060826393527594291963976440106993604299672706554949939962540977732579262758131258637162958459898365920903862466980234621928320563244312056232862187641225437769300095263366550061038953205754675038401355513670885116822530625099937280091046588797738198633110148717002368707520748135867267210016240532116550259363373957860115886853630256171239999917105829299507039507837428314122179665171211054634082539767687187538562278168301408115415876428273331375187279742547254261412119096184168582678125817976107908457844147355587672785706019151481846364699442451028170430307003164875736981055349802529441559361481701555819943991830591912121194946276296304377153687673857545237430202958020051845347531160611792501539381981544493685808826066133152149850050145647300651029880530926266431197315294776372023222638226006666197147015167643916320364476904238162886905368992890322184235857385867223403377954274591658765356496778283421046692174527177158549139122732104974832159980336811721070157561257217015796809391117353800665158033062499374015934534659396328744338516641434463613436493768110410160327952230026850184314585123440711195973240990131982454669388335125811949854794510943029249747928148250263973897449980435403308957008386207404894193475251832004637413549817497668004641442104205076927742863713042953087421808624867066166584915834480841755913229590603638045334607427433376564743132357586130833113351531365910332137363242759308315606124816589557976318718109349072079497378829874271517914528334407825916333695447431772523105308502043975959900991471996516046505622792705898804738356732390346232275482517035707813095367031404655108070691994670914053680891305819205549290537794873569272285951867374131829166395314773370688452079681783915460223747157918024667699005757088470841619595937103886686019555880838153984866345918723551492046336417264905832417460138623365680905366848265598795100257276905757792728778095998700715340820025009866467830070626297746315938035701364523621028989237273298080982942514283916547635500089153612305286739074971889318545764441494925436493926586152884635590617185993147223115570273307526270976543464753508593259643297193423926318629356494696985741438030264829673180715804471149420433466905581423608061210759820841225772922999715446581975479553994422888372808920685903394836566868566115373126649545872573945847732788891557059641514459482162481275010177010767428411390653128282775066175180541590128579080444133491989972203877452580639843233620017766021948021475415541089628367557878324962562892137364134043541870009392114642542092503098452817552893714736518094721864615515425614462820864349082758926734996048172864005993114516376111032051808551222015568003407290568909750959054275352032275412034866364447792320147026126474256216579590549128703965105200765724821053629221163953478426151652769588946189397640637221716396617621136014972750876267300048286065170499331724325633772948134409272538664479485418039158305568074277539102691151008899810526964805907308768925811624347652124165577126352007935356848088190520847219177978188712377751188923923886609541255370864413247501845536823267665576853252349693110771473688242880580214519217434064598869624607961264275397394528930310605149289257955820702861943551345402200495051390962147444828369230927986020067884639578572001066462622823228589291890908965723005202768886863469506876351162823327781410279112969408404196064329739520718091002290184699999204952014859512115205012062948369518346919960340540566509316441426995167456443310329633859806421674013059918986752021439921936453922677490367700087322832048259466068718533179636354903863664091469007701600301649045907042887014314843249734982949871922143151994324487338582126324939458524713565156260115202865869044459545836732777197934582005411935826878581101492234793581116230415831045470713799438318615049067197969094744863012634700546018381412393643811447667102442933624536415020528407859057195851742823745446051447953287970364940197340147925745084336352704986707703736170400598698562685714281099098709099209016721807328229309604858114567224140930031955157506584845343572413876070137206489798732589301367109093840827472142983052439596114154851470937768187755193844560992955611842709194213243588844389224421066784585734272737353821454661726751752802096873928829430391566196944752953378964284881374227683946794094880701013979476780097887452963722980331198369550979142836380302262045242739849025244660537690120792090175105589794537791281029104837078173175852311691078110175372004449985613485374483470155736139955995815225038283047025946823132130763421666814163328728281125379697753461879829103860689081759199006653430611527420965815186442381621521148575697984313072028179129556677898505945959937654658545013799939976646002754841804965391291052224956888056224107648486543922412990044880149762501229995899251615369176104619879687159651792156625397793630875716405125206585394927661566765524676091869404502941398777283484582426341444142919846407758054466571277528010161515722159782413119354203408085721147230010055394000114609144615799835915822721241947543302153226640445212347618627409454195254016464936452255657513766984498458979312860493106644910783415216747591200099025434090044375389454931742693693324679799370976582621558869388427361560785744907641420845025836173329675450372755774740159159115388358827620580476786530495678365223834629664703661355730055828383729417510338022775937403919715967893699594090909684849208125331236678126017121911246821836176122516757889323237867125828457059230230374219024508104813077569245098858081145699548558585684243011461761783531633366148213969702644465093561937576001200451542600581987292811482829462499253379796599384464439695372700814640276031466296607418385976481807186221042064608620434607235373018483184042645926992440786474910054245972337691318433881747781973480553521706522616086571963100740129334783789267317799859121481088584785207188923189649388457610213709134487793563854363211050151220970733972030552766641689368693444136661728328751853793207331714080087944883305575231349585688147240044133007557045346156268130214647240502783003777186277196627456007020661127547465331453307947293290886054904879750886998189181000380356546532614467193487463024233087846637566995671461006214419051328857999710073061223996850163767469054577489148993988566599976341058479552922634137184987785997685278193081703974136901869739058235792484340962136767063503056040517064228615206733258137580312708477868773965784766087423319777504017157055123183827831609879196322209116525609651878348220967020277286958047142609616605286627285240246539025870100212900810320401897715854645176601571913629570146893806300096922519461004401865342777780421545909711540162233342032369234161638532712592718301334982383128893393961534837844035449323386558399513836161657668604795204610762939155810680960356983352456881077682330070750785227242440888521880671775133994832566065461898583016545354967173029410496912839469004416214029087151208339959743996484582992272534533182540086676054213752960835869610011670474459786972126806877619970361020980730463462483716948827564472193971697798993789745973091517383792686323025578100557660008368968982814745888479312524960312810519929571229570869622481733326865600712655718281739876406624339730074340043372681644283712702084988993086365943949963087091557012170826077832505676797547847015063571942577053569957741354608206009337669046665073327246604325901051108731539707484329323446248671844821291617360312036798820271147340352336624150378645139288920766658061960605561530932094024517468340342461381868890668066275715138679839817704405668792585616999704957908686374272539500073163587877438229304577994472916023586058839201806431691962101369051448255233436058873249574318293713838600769687935120253178029961169009868897264773544109621817974766159267491830381840917700496709504057358323472594205038957604566058247660453270562020470371716970800941976545375942720961544883830513707301867530407567200169074380673044486774317084235138804734592210499599787758263470288213395114573194798715641629877669806400535707557603520640755194803422665870475747430216348719257691398255716982232774962856198779767072514925832728853174509506282673435582619137951214489519261019719476972581536157373823589722302854115479762835531089951533576631148737316797697061572338867292440756852500270567552876840699087389662276574156065486276271554291488439719027532119959443827081708748843319377334736689254168802455308579093459995063346498709495176370893135476219450838354621105007026180096872210615690305130375847504591326717107864908483466240581589421271860566634898720018626877901993002038307513838135447239081524207250070310056407747724833435797724977983855261156196709291264674981108085977473942971189570601614493107491663400191177976198798790389275625112538722776596913416280035752757392827742662074528431471540228215354158191036535233697071992060291836409283431634988846483271460063526898482125986181584044618105515609905243800250828942233742566458526054315326964659480597933092936830719382012114655343853114008729522935584490820269242779215898009777742510241651473388310113659020959194128443797940807406215664432083003793655366614709863276367642059841981881080916052351485572703210547154705148601889754247664930905587028844289982889385564826703259525548669391445560487970422971382985804996160164889503867078972273226688972561851210652515078202983468089276025226039114444817258878418125251064485505929525801232760026205880339969420468818511021539756004154376941661026082452501096948634933440814614344912348616943768839892543810460087942054226492137708706255149870085260276045884701857528025735732483386608846393664679807416985930533151549601293088266383707358111368102005220400734819335971769059229812939138957986821295158424449474605779805074113683668040064205766271282505910024092695977726515652061256780779082294983114607977759711106019410648379944010387610933292790660073679932026425136553655537169672197938578840635773002788387290232801751295141860358064610936995075638833317089346634120259879930206797004323425301527091343097010545458248418968015937193737902370176885393485378073338742463801716436248483556428582582372763879084644905068016286453100921410156981822561807999982653506001323212877654869370843499571727021673700542708803880595557926302975926320363189811175833619003295244483132536755139067129857152968412092185095137374963274950674296917874047673822425477152528978897687776307380772780747210235961814912641721506961890656588241754120909339989375471659758134825613489504325066712065385999209705175784827062966528125307915113441963448248332460396309880469275168184269280944081337551227217833991275565817098049535172600618177461182958465845443704372136254739308516353012659854469248785765161378816520011681053691998457871359706661170177015027931865132065070408607054513211592076248908865520529543508147932301401849995526302931074555888986484933347098488918365041594713043758682645049831088031271754830802390699376023896424210693084777115476162607945691236750539295000689781388243240994251429937526558410134322508486134647440357682380835396668224838598760467241742540843286184400176619631902768316976213470669943076500719551242421079048392246279025321212271703671940624554822597793308904187309423559332141355111939461235694843351976667577853319474751208699094223277884403989926122708207211933239909596612094665772985520569281342287972063913373876255400454664033804693696007770496248870058855091477757071695231425611869339481169190371796970406900356080735007011287154177202422301823162999926783586727567512016279652245378353432977369244636735241644330863616111646705389860680226566414953153214934519318991872459580662339861424396485805105048973166679414684680738658908007375824306544709385222724415820511473934668728541705499311906739821246103856383077024384013606179629474161889939840164353903705034251817811735377160337936423379596357035283133223927680557690454919004208966770419315248547343662339293769566981539044964012992033745487959801999268817592936539142663268171502198965033408306524918978436748892802546112817956914243297044786427654382755986317114361743784686112077745556791887253050020470991215015686528096434400958628781517682927597748242887718488940602018797572473410068404717913758651980898406790143057419020765145079420098188386004473823579606946819090412324631800440960256902786099208757336573304843861800536472805910007974098604805619576605949835470640429949994806167469221101505153539345602723751012504993276959414937810867509490089714010368770462941231071903965396946160909713260840008827394986891800897060089843621020953795462923548349171167039495500992683645155660644588700608841091472079893381665301029153264829815252050749806812790883552608111375374843615411954531431928457845159556067816110920455851284891560342585974769465827040455932114474950954770158526805870905066849948937864905884609807915178125555678315359318310170752229473728576800298930702365618480643954876929995016440838015411877557180448016688345509084553524254356054754296572125676974261514384574367515489358272806199371062741723421752389075526945595171983081265381466035231356403170884531742133393805985825276922687026041019892291301045851234039671780642513167034504055648788414941060906815499853450947166710989925248431270538481532854428872961399194784152720347360388214370445057838773700810879576547314496230099434977830799165667564438288334039573981560920566341106981932723603908990655888096347463018215961584046134476496611698742888693723502942252766019529585276249778455134754510682610897738864463673912904873165858182612052449254727985145977295298758003658324991072687609299665494876864427424306158060002530502211076568717323180447730966178598208996727270119033609534521995229281488728680007409070411395418361961502865776839451096197174499597035976178168387564230898361995950739991235181836812074072809046734603235585107059701287760286018624606019328589308037441860349559890553062757711072712031128085416105799886602123000078789471870957981027665708851227613723459708054493769406191499717083989796420119711805642138555651113414468935348175304800575738717591965759606341391839475765954045267433222538707871861974177395651840932194744632012796659348668044127883412413809007540780630059278835431404194418179499691223763502719469204347598596889488426541794418541808792343441673229981012029768362087586664881140127005381370208098250227145331880171353208786612575341631151864294063355420734236689803556685105101876793517929758417339184625236306630466133232455795311802218867736985245821039084566366478399541871380300353920285705749351797184087169743260698951575433991401754460039266597649954088745794446016771321495466513905993240109071036460334169878449901125669413823519460890486642706937084678410191607332825629033311925180046213940484036316169679440870409309888415713357846875953926846552936358665531907505155866230660703986274403994446867499532191654340948493147768202632214111171675059184556460761060270423006587159945243565281903187989070667291536354889146058655421411279912936918355582908097586609954035562963763205555252850167616984199475266331779674972033412558813021984648525853671892088011307413890233625255547284917789657680315370615212982910514048927022806266698275473922466879977679977837899072397323850100759511217678634158092851312433418462901183936731606724989570254680670206674604145620829939222277014355574380320771169149966178806603025737688336264317808296684207495898320681302759564334059255986351360843430915950049069287089906179715769338740413530650221873284714849722328661325478153291951128377917646292658909358222042867670195940313011187961639065661940604806958092328281242961521266280868824843157057285158401257198439702737516902254641423499856790565254537918861069912625524432651387175210571393189914897681127122024112430191881962597391133386081126885281761301363240329188889427391494932985934426836463197441091752859616594874917453928298421839849557668709904584536420189790502178440366372801241614761232936066543878697798977083472702561556451037356094907714690408094531353046122911765468778576148819229467970890445916355553859000074774189004046226362603105067097601543222556562994016740365813294549150462190513221056789598130071469816436884213398208349453608527392963504434165317546539881989196625499318375793422173767215492916166639210450757509316529511891231410693594018685075450119016110271704078690871398029011367856498164550685968627245949038325575274397782968341941851653651206693066650654959853709151508838435670296547384606467709068770371813265736158979938730298795266140652258604461580539015883771034843281395431958454144817432490439644175346736331849409627988221730849038374105493765468403020979484288060590704924092142126600404204910293940522564955276988825069923942336505969476794324939269091409196928625419518730870451009774691678129719183735084407579552442138412861886928628964781805666396839858316398899590154265939142334111729408607174053759364726892381797224809915384972275001687065801957636197989788307568459083259419137010753362930490652026437911156949325450205279406769949399271754215269672701594092648101802473481424694971706731020761834969451307269269490512463993135521313657649942010423431623417007892514887894248234716557600913122618915199860676036825469429928161802595365758965912753150712404950115060174502603754112195137041068178475258470126668477451854233889003051541951785833142363262246602207466491937502074986710129574635216282517744711685647627825247741116753512903441223567374193243347342465462266653270976412605516422567756985150123611237575987762705498652587706275283403723447481098665110250810331224665982471960301761224434381188901809851563838833570823783177744603669677825223286344933830993164567368587237058549746588402719417772102567352701014840286416561891012469704570810395147624742599122724296177972152523863718988639802254025912972252507241533036425321351610831873147818884396563612746357596128800628432200389135204776179790383013675212947059189126585324323533579259010716943269591607561845612131493694221807706907241399606385682676620853901021677853018303292388328245869014527228198751415004057592366129982445148084618798250071238480843993860488078552762754674270423777090403085874170679903653210291287783871059168110541442374893487655324173523282931146228864121934894613062573377125974814365498300049487540413900875831405991746263281354430865091503475579899100743880712193467461533300777108922207575450059185061977274458171624775879217936802115848948409677294527041860260653981084444745065075362002590441448092568566364642134221967179178271381332437272728132075522876185510252295888369757423421203776802066033093288428282550949590221279687295924398989859837230212098791174967905557617773085096973588413784342834984725290481858978744945937082154168490123761556377273837193881411437890534144040029607838033409377613221115370526855319042631811565920078433285189661617438948276695781524527515193779572216922794086306420879770204376244495574616616979976423348418454938796620892334805428279547573794071393178486039602132857805181128795689998179099769322286456743082616911434705959055558960281679049583354975539019887353815597620215745028358413782877031362466282722401763604679314989738085761923190174717692109482838457204773029985876391043374003603710914119081904056026120093591472876555309113966803379998004307918657376354445684818236856161313301796483850507006900332534920516813191008578256726229097296184557027398991154544691087953232514666607261099203273614456142300851619133162631979030244812067803504878487893294273422741850030287297922828899009843416317073667239994689398945046297671634837323469592152108392019164029523642892485611756446765138937907715635935631727255121632101274327893337427885008906883696977937937553690891589810680893950272332290661456037425414430807213077478285066979690452146477345685560271814739908332915456948451111450192949084165727879402443244124615357993317759823493610046125387598490225015512069762190822597960383401873315072521444821876348279218183425825473737290765640569920742545092269755138890325804483081918857888997359862358935809498660758537201355439793033572579372357329363899619940650055794631549184451594242256472314394703508376604585678784891489663475210645158888845163708990383396801136149313962932372567033919851166865907486150841819938402567278984921430998900942680329911642144662650612274775063061281871050378436564659828910483310166973380853330132283657577936006635938378043651584873006255850225753301497126967797828992712574084692405196001314540298724660180469204158368425924622703087101526702530165846079704014071429722647484627829798970081615938528293472796376954292027656490158603144381311637030620245290061654432013885648165008234791889513384581677379018129232947774792964570229790663945204669899330344008671094322817798805472575260605116829920781907606677542084734935492116436895620593823673448385613790185445288872424375261842665183326103739999462201945485534077547351755178163428264538964268409498955510595076797117894858939730099200666436839586625723759987748716880897885488500414064739651297784590272624920072427243000934807005763952450495444636814593565129885879678617831779021649937345231470577350965102330933997493048966479908611596609563652707614973569417676253798171188615025442530062802299315296145456499387643095888489983528535447219853960156854131656337820523659492909289214044115809893172627568294050925291327817753428679077186082182507972351515287494660276179384717101311332651218396136205171259688688444201354762280937775484066405492862169481671664198675517072070401019064935835021910822659196139230917252606852549440672969626533411386741542864946656788521592452835781763705658238300640045429313921281019429850911634965470285624512572984393865494190381780670273431681094780642359109793327595738626994506379505476391537844968725769309911082506888106962070223243009235274416576947247520592459355729704559316157020344769399423569148914654867748660288232723744380121810018038171451414046215450289808514214786773899157957416960750068919832707185509790046058490170597579982942880040547519250998889823435003231868879943190052577402571323955553217917889366283619017316044003533214496184771907937674420158698555108132584562999326850642702629794511624188125668291637270877056463482685851997841677086385014652557849869432589418839917237936714611349562593634782820145886854393150990088170959895947381953570723865370346243940871499227733445798704591424543242425418349047151709665468850644763483903196048812779630033538506495405678321150667795813333464303871241648090027764778129123508019812581014544478834233920033316942007847211796877540308376021977922351359256170569204454122548256322045637862040831352635417457619928742036277997227175253498230692616451415716840640407235120595749284565501517195993106458143687882230772565224581336160423359897052683130185271249701082787461129505153079324471523683331700535507557644411043663423013612824117165993278832729370642745514110505754608687009515246588670979542491409104744332358703955004757876525065484759978865510760391639722095785980799007617129739873106965719986840419871555723110711420409275971838920192261385650904579301384798426746440201698370028995145413277494554311323859918731096508679211983580445558189959926171822528394463994925180984234270467412041094534322013872250140999988532442820907392336620444584823297047786780110746659531627416198650447103816225394087637817952010311486789203252409327074916651907635215800599066651726299757443445581661320881705423333791317295805809124064169707801075448280882353369978677331868635823947885806821041739237653454267820832733873851499464416272509087914116714558414910573550229463212827508647853541498228408374550039155668361368175681460440803464867469782303562220566434450520402463363137813498708988405067663935180896241006002338899046511225193314557950342240171586709188057318084709382399250164865422119767241857357019012567707354741253191550968484235995156992272697706081785207292495473322041652317369192820844280520879750428083499476885999166150877275787055166252151491656547003986399089722192584155677334208331145795764802525189466944997871177519475288609415389079566115518539184214270078762484703572341978179394487775952352744339739790468043953822869489937263721530885671608553514296177610985440003734698641753078607529396901672239983853026408559173234117302783560284212755423227094603972918821545867572902930350135527877359421087559213917921032210379235976395738253172829623509430281634276925250725889361026561295604270597006764160728293452194316435041207242341774332314916285548302666735938955323107898295665767766847949604005560623515282147035693505365272805623313257718417602879589845677331829862992523328690265070545512067133818390418982178809715805411050075549302437027535500758817353647927536266201362648317204361865072129515078796245508063013610017248960893954131742681938893324564416134699986964296613122440450913667253344300848960825203444285062925620730194897392868422565017562224828511534081910434135511016526301296775839442782609822892882512684435121082712415522816234832047373811492749195049370919851280272858258773811774535702897230467263003116463211370938178698851283173071162159177627804097308290537367919709220648114924924440943649293347155221508428748604158600674660932326614284299591849945963280364911576204640575749519210562534943660794723381343041243183619015133905722648447296426763747471594918154340052546372827544295684281166542394589669752021526976862053228156929448658949119366295223773995668578333373924779407851755620288541093152716834130527767344363261102244374584806855142270880173041335760994034159156285267683544661703075927845973272952077556446862306221054597778859498444703574146575652471546229094347757842409034339268176743224986951853965832439874209578223608385464292442710380882594491217915583265470884791280225122850928963438869334009376014947844819727473333117340292215266062259488955496391300270474902580810704255318662901569092732929993885997540591823209763257912656485227909138478163167630015059105927000636770505072593045066717492809100531788237171829143860679329788320037997590757910600370845499036207208718843686013192258784053772932511526971670577822174011846938435349560192688526268595382901169177226091141983275104739959861446686789558653352470770599127399888202646306080104435109105466863844426579329060198882882596967416098977666511142149968009806847938335257693583960973268749084057167001891566053179936286497035957268000410036606305012007583733726562108926357429564452280273525697321188057166992734548393530330731245101584313215422359710598248274118881055012919268570295936246488303417341756412462606772226707801676837348232984039225603909488200456734390262055874838746260781620340096337504481199804606339226352633785856374611273655002791683915240859839690021107033954784132883781228511375138758522208782878364627282211527981902299814841178281002252402980503747614728292461225228608394819727326145601914911194255443706053783075186846190166832346710380374597908304612080581723055854349706831154325424392994578019520348186417526432319857547285099867330548829712010579556848103308118628988465000915554117892055010492303784111681980466772539312181302910356963219803518738514669125500255291387419276936483362830976072247296228336670468586956634856257280838471773224754280395850065714799354242517929348215279863922577627562054238898086130649002264296221016195423311463487819652319640603834453679613995550353222504783023120179375199207795670335090789304411657754637976054946056863052805203398975311774662681138015848808878472489911267260751717890799285699270480363251914078637360293318890148620772796644565830937768538513729068983957381026810268325687797367773943177702821420314922694285191479756472045425614986860535352104200834464698396665490186764067525899834186172878708225584472525129875206512835247400991794935072828072967265045699416946370864825975465248339527732312874408301303003299133511237326863343389790515730884371024604056494032166571493837979013222680612078094056080787640619393833891690847585850002873272792237554098093114076144933903772771322082297278647002316894833886026951676912449574660659603363079665536324533009028735615997942705190541309702249659491891671746290230700111123669568330159935449937271030007614151512686865345273106341976002994032031920068618065680769273837931628144758290084214078494571540446098818874354255516825512812548945480084691083435166555937566579191934108395831832426441912081558541522026240386465690919226071496037365682379762476549304623957232762348274259831743690104716978452908809814902964780172028205851996947854510658250104403171697829867656786158805784197724209753852793675146699617809147758153930427661717938799507091159502219706774834382324176016956665800130013122441849078178152968091172737002523733079661938706925646857645826204951456814040530146756312220435888213134636847522739838742118165245363887983769926126259997427826721228098383139757014817088444268885757010124452504439657821198264022079777650572558927919332956638122477817981171192648578013592315851910641384925415540682209385917738879786204781365168268231507308815070777411062869394810709065182497892509507947056848625664936093025916432287399375621004328569297232338576490945270934710469628917155719913603554487491112526853428270752109247787883591508294733165249420031630192083678150536559566255880383914235385693381274954550598832609798855765656168077279596259399268856820709556326858021828193595481488784325291464743989847305159659691655948147193772652766351234804162442309310554400244466783663168139629299663871748094661820687334011989863970742928311747924723335383132192434398996720303075781500611445853659059983016522896533649683715744769403653801671407717761264326116456296479498647634465548655002634635956366539361506818051465395361511322520083955443584964602776438039588505362752285461006464143909082502115453459434982996060687432733143971618264504851476849668986308583815406199056389960516795571730370698177666222351787635383644325411255643269960180502472006543404823953453503985633146949538766916518165440545203717115258952404769125977145897289137948957522454745359697485837508088902723666702583896397215828476394927745916750518799611059997416786212560287876978261553090145201051456553398180005216145740955291152740000846280815466755424749108950824393660474162365534141884108647234381187014858509189433432561328689823254297458938548207582549089169124835813204679095768361531922017130978368802425560607023307613107874717806559777577130417881255857200212014294984457122286091396659203136223847023006021637308450580105861794271428960976662416907172637450436373644469397337928297972492165136238645123836950933526008777922794894327866295078937080909009828716070753835346443652520383453819695072050113310988847120895566551784635645939995272289688754698687648665797822125894587912824882304198010084669291396193684508324749124933257075717181498485581851115140736772028225162619852271666885302127012720352901389519613711144280579382889271515386410408565154283927135180343992586225388294075347091449789206917764007859600870696087920544374893341800008498852665225844120446766703969786963121807063198810769913482125520319222297068486239636532797379459036501281801332946484999515546723294502057860126994729884454074867863940072274004029711086669196859144022530607520569034723801644516663421056585514202847914852028657108650667739990312405130742661430527002708898652178100101377605660767850723477177908450109679784545343561271519152961630956961154165864146096823298066873440628279353091005815523179283589460471613855400551273423415627079574366431325559257886451136894541018404144702395780459228255353347839261797491746701084486127093707668075785615724426463750547996698952280413446743286958795769547642333080963167627298839231527872405737567682178583825256799469744125579771844412510483323001641386845918561170880844961051660284507107945472285139870017990495936341753974550154305954037538581706181313979819545360308283627878843686968195822161137351934544803910997668521838607772770223617634548566171269276511000496197750265110092924748578901374182479154740098368908401621517251390209635310557234700545707466030405142051730261583060400292347706308924084720655489903350928169397417190777205547153296189399091213050898627938656605323555838643335792461779732536245322393672938776739571583672314940947616653406562577225455096719224426333772752236185064977994785953951502336517829106075772701707879485350669254279328303786719829314770566955269787192592161961116124381182583880589391748076097672963561732634405924540816475973154134849183490536698624403890188631460983043152112677320225343078059854925133337522162684831175877081451527000923519741846789416076503354329851362864413379593936516127795477151001015154771805909237835904514996368861130913254622454000981853906793486053566886499842765991321673517772085446103696797499398810551488584831913063451076675416115269972306647161689649067598487203346058606241781192376706594688663856472109869566184040315050901594742952684158436943138666304559671364497115312094508031716297231312884634002301192137189912122814119952254618136584821444647796529216129269231956139683978986546880229576311526519696319359313619045308540112397131570792283169609780515036037728282751134288226590459216822562077947158092207044857676520812344148895418494073873178566798031414062577358770133272711763053462914825027795996549491490919191361154472488304506036258445438115409420304897686454045097668553099179784431422215342831788290336301120338546959188339741318262586236674121546985984980371908330913632510071450524963188265887262695186875707347889148705433415031306062343725393820748236175528546767429007460782356331674580397630978901321045830482875601110836006544753149451202629127903518425945127428770821037032108348510774612125452393545463050913110178951879333464637905879244136649385319576330602176211983988994470192023904886411378255159446251309478492242689743008165077833330330896443655830845215646250317053987477602878634513576261497463681278290673103879505740995406562232489257198246213609023196667005777706907153222212083598126820438625442287480787150452356276243763340608987923403239362300137585171597596389973347816988319013242912771162408780281409440159991746765446137427170444359674844806945190554160924853363036178346792338715458481593972531567565980026163924008996099616799299634505195041660524515049409535965364920483596011392709951821992670474625301106157822083658627133737663096472566712958345254249574541938797011341568881794605066317741980612999097248453379640205952498802934868773376347763439682079148074678698254192186202139891984742041362676357450363392413163303353344499142688122991492374992442398999224966555092929017711770936836362602020770791393927637926080411874123884090498205520674457809876552207744146413406613965926824315251692502845553179456924177941209707234665310610665065793637931873921723029538792604344064561471931820457740994279329598084313976553919582596026584444277680800101438533045152507544738529718208984708547665567993858217039587273137306307704521172554170424441038113960221397747259698804834567709030459806397374229721364221711426268483668273742273965985024803510768173902624902639841113680018999495420718439018328813405200402709855580854828199416273543483685142566413452418491039373138106298740130226566948204233145844315672651261523795875416402439810726049374688779505919803640325210833682641751864450218613992715957716867161330776876552724493798061904885585956498783154254621860035590847904245137820149041561152339419181679100651383521671374747522761296477343193594595767664272552093457328561031068946465715741670277816831301463102548226286796035415685351466167197213023434241567858233963686306277312542602986182512173501236876173125306297818550401383000343034884888109065895967743968688974722217244792605422712800150456704318712778736226851177711882811184538350358257670062741153130768527789347429176723642887481169810171365525378652204083513218160225114942973798622505728348620827060273111912899982609693474518676364513034142719526853812587917557531262353402993828739451283165350237037508117023909279040849275744519168614248515620785820505918043562984552940061043108428291348978288513799835490174620907669787598607235079265887903935136693360406487793219562548570551573591273407575370759215879202513912913271152170007665968666705586487282128837213195752409021299887950291562226405830312946023385737122103265760818287384218774924883569760381671691399196710678865252670111953767033787096144089689095988205859536441082952540745209289480360744238219349438476472956249024532820348725605533006676511842507369177912676879494729428390342084169018947017168812914591800804355566756906665914624607832989021519913002384215369497502168281478341082484140514043827281161582566805538002928448367500152673383435297285485577842199781735651396021964242030875939237027922854706843446926862201732686641723417203051079660604667825754796423268315284415141173967097656031690270184119079682171006432140052935536628748827793591510458570842228278880524147974371893231267369959778605135498857198158607567183815792560300178747655554694288164693158270854762104424803318442513406900728498502961477804413731228575002715967723073676969118645146881236715181398686036503151510378672162436260450299029902768812802001715228666856612131326478925029106121885319564140331028474320916968719743823090949818509200425968424533023655356964706876326697102559991928174913388655551805664497498606237748418800388416687356090195344392603551810745515229961268572655093848444779317431008073284753001781470265062203770674688106166360529401030333015609804242640104838401230642849437122948008747987735283182108865974533568024851885668172215912062184007118446471357043970876919140174560841825926513760596333423443220805645593346615886324839959271479294298456754985774617754218277954869787638748269009666184329578852426873190907238486034066450861706510203877493083743392694434167150117523396543038716784064602626303993267974640149303546401729808491698472695577680217693477160201915260939959448297189509091622571913240017417707444304423291978415715341529912640631819042307945379962515797991928623744072635055003759964143432048377972546968734532421372811929110872803307747814009066377187869193469589441607087680123817931451351365448187857405322334666885607413370579666031562941747650293692617716117552950277316016693420344726024033172017503992851968663995015562851708956053011264061159928756040430166451440253130106891946006971045756493486299927683772215861936052151883661471835462339058841805467358219626618380875015142894964438705853790718993877069683669472763800097643588878535399719800276491676170445633819965281566864219060174591285516411970083260052844243775931248524682195563977645351951950360765544966427695229387832673802123077886234590440867523769552097113410660328325581159976636062884211891411336405340010955855425279419768639284316529610506353775030140273440187922676449007274167594447604642776495059892623619744134612322616991455872037961871531873273458813301389693256354155829328697880882137132499013229487293612521898220650495133307735979283172300950945762217944644304278166295392055886289064154595586798201941207179715284038025857093760882722695082115983101004812507510598476616102922312588804456580215063799385914193131450174607495672911400745342206825453923156641113802145187061861103960890940133082149802300340514083839655962599322345958663062778613196726547591499696902042253811661770662626790961669664068250286280127886269970147242055624440959155302197677140337235042889381533554447492939707491076794829934573933501146426613178147273670206182237365047410759883700477840659552049546221429085115291060947294167014160006486230451436691987679520657506919484907376608521191414255712197484286676744162684927650428228485989799179505776328514064147497134887758689329526870944351370311636621593299106805816987211525949834529523813297214431949122364367976102160067631472190923408431667493448840827962412239332689265543592754030665283817399753668240329237655342399711659783071863029277856143909269518240609916737951023201518550823182491961992049233052071991395751131166964872932888777337380502976066697571214130184841661261536781862987857560165871585810222530103811959608611396174195818400897204443141592107483191117601065285592209730828911962236299027362261342730817716614430373610546443853645631706872638844026039881599855727223020590865758731069186129172904249369539872968034929765943583090775580574645552999201268209741208532421389970928010735335472988625377734952229611493874409497290342801082751436035251789190773436108039955077444730610482389062140614894440853816309765740147900232629016416853195304404219507633929858820183199919306982715042727932564638909389848946895455450623401709082545319282659053556224106151398789804967885800938606581189304339231959857634374113947685821287140612867590160145730292645900257131087756784446690650594999414988143530475393757596347185521865550612457882466218219904009582644761347021194517041373641827724866720212436810201429245503902414511956740189656369699184391148478702854846498230872288658130412615340119136988485822195174991227922975492683306961531407195864647462790566304070144585121726752863321832289649681717090935578297247229865416445445532653496012435096301548376078657004035899562518857176652437078820344245905194471286660792650985735804951020645512534527128400244966363574636739476618155213230438638094371300784229186786697911591909620531206485847654201327846056790461368339152456380440426304524246019009354500485204342216030767849442263552596553561219134872962101561324107893036603400204829428585460159119591429505343860916255408855522751424107887345052156141161899254080983262397252903893267139177517078474353965879467490374300716643547214706387667651983581483231347384881310841568645829098023048176442990142159715280441331364383603333423373600477176672020311113066331372572494838770793938006151193587225421222684255391973531024537950872524240659408648989497429636145954589010494716392325694358518130081989390999325572713631869183340380144815406448669822889888563129163096624990058965548427553759315625483858198751575876253267553493267560920432311750315432526843814293549708359837983415352422834593983227933185881951516687945122865038591224309230219322946955465192203192969678622281966870911545690348843279770650556978632519075999086585632930081699584034516022099531565892372007562315993140731393350760848386080730346407937109788983688044779864996923470800750985025496129055492709520106495735180317860313053378910628277366425812187978606118535615202361870689112258796376037941897375148425782972260890734245888429941493245813527322753128211558111156093742436393605626787677991885709126398862164714942124427986973440663584760580028829928823098788018304142951319826534331964900520803395968384709483430873976699621557038577559461873728183334569818922013245636443934298489122202677942270475860618163737931232898977536561727305372295601173513910161880949463131745921856395953547135090397738354484027734726946598574304535823026588626734404469419350791873652928219043816104284016454246172392419614685190705520602534768288612938973660996044445727381663222854709371010072600397445968752016679336927641339049543657141605105906749770523698905384799445071931907283248791191387338127166276552479485714058833161872619961501187235230956410559245344479157951375684677697496161121904396718858060930840955210103872372657786766405857011089326541885163816981720016645559706857493618262379096144860086733078270566215146008602501282872941577792712195736797269942559058576911658534274584491706105156410340179230812232395764203545500159712062954300802560713793309956221399423071185873267063919427929744873044440285081317442480792551157759085897295566861733119391853446595730656363831109845586348210511677435998232275247370787508136830877667083900425008119839676828077716760506795665376376276013535826217908052865901469776983762151337244270743661624459270561806820988305691000327968877059959218651168673411077560659487693635634726749654923404987429147150226330542518821349863241997778589664805422266035645871193246932914352769416082471330333561956699526006885376242353520261658066118667566076029195065398762847725398580683276248003489191828624496473610058101340821311455706519450132463329793793366031542083353916458684048955945100023849580223233826470887099865146210982170047127645083856277244123199906636344916983506940843930895861999817342259969699038926555354666877035050540072542708004840911069105384731058492500562591548148491174309282983440157944350069597175100695538033883643671086866551974186951831548264096512720834298534898980928427465958332767953812775759186210327002843999702498838524706689475286194708405996546744021202596576245151964855431443832626061684637657256412606777363711349603180787730572328997062165832302836344885909038797893570573400598808357377814888870093524284932006071279367370112069718162488384384605530544779221095115780545285719838273305079302002322409102501001435013544909470161143294864505757853710359708718788779956280833406611359375416531084769291972167383831432341344010619649573930788953123498146961104248178763949579959913636521279486049199747292496095758754345370357447610513767763876215313350569319072780734504133976266378613752560023399274883365735313518624985977340358465796656125672428954245961268039107292061533804385245782860797794729720944096288973805435345089994823802683592018058406504837392594608161451246663215076656089157870407910880646752562170501357130490917583793159901448537111305008092169128847300228973803756906184137892762168805999522693867105667073953539852740423377585192151667524115154319978762477669185199337435944944915108948048537930261628029499921136376051721821918837221236469087306549322236638052426173765333030195087046201739643903081710863332293468695088498291668015638560824186014245620689782312297061671125972376037956053185321398706375899485257188539740947828227445538292388858893527819710210110883401365932158116961671463331368533769655899118918556674195293384900568271767656725570073448798611574492856455091498671211846972590039429812627111461680246255418976113845456990381020598483081010636837545559042738778814490084018906966061519181980618762307355209920854040871115481677476927221582031496945766201540237515282662323645703195459553175224040955706395062040272773644540143518970085556769657602177064875763934273886337862963583415294307983291248883138896395899850682967755134803783193249369567369889009322442483627269729275052132372617266649221690086896340542048757172996147547660113665014867791072805993142756610163155192679899937474827589720956837399151983878155331577424715187720019156408953307558861238118829384056997710830104597104825315458608383062911815253743943887504571294385248260953857492151855647219726357875053150278564434087241003381203787652571277737631234829727601678029214150292083825466413957429635126271863199432762769425106727435618779213056628042631831292557105818948872882601948954599129658255928222342859050550869803202747934831100142727374996177093813026719719994082038053192137497467326708734902592411319236596571375409711547425559235062184582528036393131836601414118840705701396847772212895105211355199146389308768042500432575013752100565559010316532733479366476477380606180228774443118235537483060641875815740676343372020769290159461751781766143537849215773081393554689527633061590652731974127701391480855183066431751521585397269826426053014829181403098987066364079712946158711225320158230028414364820669400938066379595687820577937857706592782809537995951343873072123427018182814811475519471362607327218104850125346166309950458854272016723307980349350463771031814219071882985760990773304161426532841021969141368766358385732085688699802995482759085761607359952834835113671838348275976893198706748109700494075659048757023313963317731607898207854407210333463643945462226900409305233990253250141335618208636855623678546598769934975751075034094229496266240814421480789036496503735250514441056212004552172032071705079212254441647138992861191540693566573632506942639760956110476260571173486581852015352026973560984771794359159615054548658132551871663841010323859567449282555811374412678310123743243277032495184906495239436348638759813551859769671577980431476467834448430910340257354139685502717031119716203171749533212270595423099791245812470977361378896287204968468213502749066591022624599411016422243794469876983664808370691706226801941473023701692976941627071406932105241410153793613901410980042566051021323826390898689147237289257936511219875113667988142298642938707466130044792445678292776055514882546125766223898306821102433923767716221417490161097960016468338922358272709049914945171451257222786790094140135010217701186286863795972211081712042822839948367365190459469855540684260750702944005588334545694112701441259862953762465268176184603029456368763295439669444675897622229159957032098908119958807259115714110598897947788519899545212468135925918213695468940963963957428281612251653082785595803889420285339971199151128069396528155819341041000129363896821177911908716033121524470581551053708342589897824559029424995690171000166025547166960064531784086628634141828934945150182664163654264643350708290159734873055078451530285419858710381982840994108110955572144202702038341293496953599267593436794234976657723548701052096194635273407909978837612550028106404074509083973488573111482906506464368500207737465909983282854728297426009846136873716268371268511846116595737768785655450947638712011658639671364264652260664532935659697013523928855948308890763299855097719195198723988076784848735574581908945841700055880546869960597398896709708609140444852244680377218852301268816557547185971760606924516712634145782284709469973747617434684047398749422918826846167237153636115315308255664226324943463189788016360048923271042409665470271004105827554996751063510335890074197734038027562835978431900534570483019672298351143911846164675386540537718775195605683345705189201873548238988851428404477342002855890090166526596950972116763558620704717478278979780086008734097329725270642119692660681402909011254693711374947372655385157003598842599764074028852579559699897207712675982466453392227374462292901875196473833377103761502046061933266895917954755191586312797934512441164080122908608688780351552810088165546584127345845397392275487145466163785415009400105028577756538673002416675252741593667593862809282179413551563154858585827936657765030659431252423343496826984168424824780425528513904536183124418128501049546470335149722461385048715288998700426090290056069367230903838267340386070223519974493616085609594798184165216005538590299890104533007124221781150286923223096091515887720381302118750575183454901184368812226547592473698423885596300499682352184596310301857599267325083195351529528663386920363513852599627293473094565876585838076913982067690309769941734643350471368177170090265462791943891089917631644222877444221549359012755582426476866832157004412707096753095612574989685587985743760277232606771694294119125636804878031332348705555128364346624398520386705837460326786074997532926667963387484407047235542507719305818906534776014165464512629501639095798427744309385476462716970082281080694887923148804108940914800879244291143805545184616687361141438596273878087842823163182670099201674031893077646115125800131801472669790492542644612169478977082554407250326853556011032118924583895055555617956044818767264080871032490536308010105266091975539065091707843550287392230064264717883313100997058798819341733972933177878190270460797733107480672226552735834131919580093112910142885737635157353893356390289048547162097487822944836496087476070093373211208292129164521002146788455626525788239906016947312727415377138860926929936119153532805855291056518730698450137849121674143794694984111068954805738074315009966186233354417437356667966660214475002420530731424567835810396913781484636562809645383299517815953708721808783502418139540776381536585386346357190666341024063370011271659650846093084467047936121668446097340643702737087562974218676321980523538570139554581493732730550046438459781672507595090591818881701609943606451062508169005934165091508062470096973759629765101407441576341062047172197076221052174512459468614936412432363112664317241717608190139796276404559657803630332815673632916743563739509096069912493884688517901619748948021880290606086114008788278207990214641502726729428228141868265722500851602196604526454049616362516493885784544332106143499337381089905388608832948792056266389142583689682200257317936457096232303665960058083376077162917695077839064968530546381955307774771966138230976115158994217476229888036939876485881400263286045940121591073478861241013616181712203005722366778801082074595754732987316092890547363591108110015753972488605253842914216059846591208665703383871619930721851089444870273639865908021063633885216715030533291195958159141155094617083793689365061597057379272794722364787557505302723163988177657827906841520679250246402052404919958269745266930640478391692595427783350974904740447087383867244953256232095936267537268360209402886761189252597697369889642699283599244327481084714730671590540416298795508627545783109719555441265268388968560111245924734333774192006775834000199074970429999198845534503086189360068690430985422956077095449982212148587276066151164900009405683677281519676455603032619862829304711069982986774810150760609232733501289023267137754731605744000698272554416014425440803518147600448443601850310604475610530529532503877262343800391735754290522077541651262208555562562747072035989095728914882237673261263731479537052670644537947166975051745130657934495136173141262174575114232415497855803682442016222605422170545426900491551094896577044120180485867698153549980704697691169908627696413853974093595350755432192725995811722969596712444930632431230907177795531323593839335304982398973107078112318419166203677342800573154085805405566081834684718448510611191644211108510090979853040482081104619802993510901663431388761704740927358195479098940222796705958074841187472079082014507613036453185070523684952837302247918318521859292154557193794052054255267778263508436684918818613827632187883401939274089683248692115922031699804390910472247707866998394275436579621878820256528509756290347291905341749911725877998874092176388438239725342168253564515523892014279496884696066029539510265225346023470203291199287600714299733177779068727725890482536680911099682299530887839154658337780772791242200018368521773683747824421863817581952910015872181846921792431665527029235709174608260044060439176256342591687862378208143430753162247026682837172123252684775609921492576228827852595141297261973911137489443350366622144160512876466301952336898728404907461949872295534498418104665974891161213465818397325010072707416085733928392955953818992301439211069689607121080977797360130754881852490660197704021371186246967207073826542361375834127593778156443882894877909544128201487619818016043941456731178144704655979734789802776505954427599715989924415150612038921302433588495637370903702687396191434127678280362949383027976808541845987088572148884598217513927216721913895001719448187059511742909856048450076140475463185258996192359376024948419660316562296297630149831611017079317271125558183755787628865289530256170887700563724797263874478449425203799839276024355379577677966503548933246330809857708747996925126123719546518640889161128097737287360344062865506331898025368623178804921817175999379835077732332928786014132355484576803636492203279667825614943395524736590600448035753107783541049931933920843503676118907550562398609566559205164116810735425113308583793245792624844879817545375391383198924719537258830834293955946082107862865084512931973148696729527290677713861349847814884209380193384427571154043389093330260901453021066888452735623256849122883817055549282770766373047448547203875490982526468990117739121903391037614397250498086238784332474177572423203594264890891562714426637500569799037706594142530902410503827623526425410251252153186091460552209624684986160387478939723569048371688393308032321676205164019755290912917950233066391538240332314106394689001698999078954663678091555508158920820350691626343792161216707034059584799343731530117532544764967793252986113323260970750115074620156977983081568642209760126203284389528513660350005205907177948924791124070081349446446982335517118842874625991382062170237304530240415653672208068520621031365769151821705404118819981445152629544818459443798539662893451604647518999117728169289016435804217540231795025023766304090690253263062117502659280842052618916967948490068874609857375422302520535627048816261875393439324261874394602076644750622031927705859555171270684569957510546450586431797499501421093225991867715847751176458703799656292679418979659815938774916245439430662377242147928280799782142014683596593499206393981901241000473280061015736082778377852309901904356028028267549981008518386355514863654909656342654329330338575608619929683139839738283689156058858306131503688934833117587982091505231019850340960023690964265186919823229676197359199264589317693326609143631878911684679211947969959116303887726325127604770515410448388205260670865775164543322184449046331615275690002221114514594101167236347333682944019619086051632176383789568094332496471194163819400585177136567479348813866040102843286266129712452061478811010129964336241505611276117183472075267191864895949587459693722453731836555558713096286113035043411536129304434121461086343138217874484982510566507101476446416939382319809665314315571223724619083907863796329954098194687634477004391912622306926068091487312108299283224574239605899188028883209846731904720399490127798414857150838178367855874111618650202559545195408238631113438054783541633838131577252353171769334460347287547958655798343982225916849079681135815957401796538469077698463674306360381842020149736842526618497376553591000880269520672804058863585566758365774807062980769520202680708709895040065518428696231319888222694890951450597780413863060461242864330185972835711581276557204306615262894706393759405883904897342017664811061202836149426455491028690173818019795361065954259272527798594799372990848287400371994569679137039390872277289147631889005471736450394339026158783843005122628747314892891538306614269381153264402566751590371487251448973894890989385971601256905621663177459957212077051105821309976621020346941114028076973480298244001167457476756099635394068785885825212053358787394163536598647836162413422264875479957605730798672309218720367199307140011831033732373877945272643072885807618751407785108803454741388320615460140536002051435359240682906946292551687012532157050330575494980057039314365404749878297255778240372471327755230668942989124189147986856266857985955804364616950115632496907311669577857747059675740493029945743460400271271709860957343305781466820501501787252057957588517896419741530993734117355281679295975121544396217635932735538493005037212636057788545527435310591175395881744879476644604179384377871063663558840242933314839229755519186822733408018774597412669537002841454784866091107725448042312832042280524034365380392316530070690375941110888318946279718469586444003993237485529441112407359944776812707967227258380587590956059920235687204862664589498032964847040151790834014150670643872878505363666737035695801980489336611080160346072514651670511615855200744683405163182346288608027377878253692061890805882358667787063584216752596064932273719925591330862287355262625093117806801621989145277302075202085493050455711352223254787881102550184976303552790961306254410644950230398694409241378940006002681349923704803785726052837819424192559932375478560885666772174900740184879184676390252641984881324262362122039709118240732036522236518646699592259938162428982945646942968503217299839886820047193743096927148552417235446731355082958953486678838897481636960004803243157122583661535325299093601556654224029738214433910635814898924942266163748717219102009072227274906349072213714442626125139643061200923185532521721517781005468081499346112480390398114294421401869188557198055314899813347156356788619712283635865872714533864459054831399734844735501589108855806825833105242398577753410704846986072738257920519093783468518928626187297247018274845794004400464989311865628348563388849774728713368929373012209613354463304071107264246397138026537100234226735283798575098394535842356093304223458650147694134530683210259956334655789945985273963981171575143153188671829392534871968150573274829270288256260717585376152087011730134369377697120385373332390393992342510601651466235338931021968615429801612815768772942313315782328530574227274927399806153440259231328898710278309113120300511899037178438327001937000161400807586930197506995713247790697558318456652884677137308094809285059938655895846849219045582363140320433048382500000336240639652427612696040651009817681578059270879361064817129419437624515098196844471071373511832299595172297717660617592767140118527284241472643225885825779061428622327654066017326782201190053344285448896598386493475848942634086507612344864819674934174862839552955492305442493413076553672516226983781101414800713186238325818739737691851345512479360651037199868079114226995571629024136858781976045079774778236323132960783796343223937175441733371740831776117441450869863218612318663253173000137387671202634575570724466785938392534721309724171867339056573971076986424850186438470770159513954489449977220008643586140195146180517544844323254133529938827969297903388640469977739518012141625052367946641560685815432891959477802587454136699041569609734293835793235916438844280898072723704856986096823255789253945160742061377636189429623449434246427592618909854064167663799111400420329802832137616835963980936301801545592723015281988360605518489169049914232297306029894415835655820364151379421808040187280081084377969911458256183784375251009079764369141790046608445981735135353071651625561598970864901043233265608541639351269286881130458320800458928895162717894233589455963505041728348256035486576314968830684723153978809539426382718891021388915628597918537741669813527166069775344476068238291256082495077941456341838441423815588190609509042316223235306156278088609960567814551370303083774785978718998214371317397918208239131130922760137526821347381534206553112070254437299439510329986794923684447002373019403906552265340099187117438367730731643630417172875269555991042734095759647769174621571410454696391153586662590200996384312293321110985395596033732855131725140523097083014081094264507180720768514040119832779636987004627691374120767110180502456455992781199581448586470004627896289549669822982363781511987301418031491342135624104243621010428889007532821703890030557930079174120128402905765815250283282890451246073587841575151573353714932193414564452301622895819767035605689717479961020906654613388516263000009793470109456049140607564186669500640908638660991817278671483832289637449591682549806656684277610019432092303996810752406014162772327950783235604843703090519735680282030270233357450063561908997045540065845124792709594551021643385896649534884545273609813433088811055136080151798448619250674010357289625834507524444764192013099231138094415246523775904430301115085596549815059717853783306678742696370405757368981709329567721643537996245877721256483703818710910643513229706682244508197291209546619456227049652130406401464217167534822263817270026266621599142254523442038790091882365401332372273249449525690913812638891494139238746386454287033034563372283303207894045490840872932374075537973538076244277849087133315751767458642783523477623999786601767797122981537843479995310585432229083548606703749359252438453571491227719351091767579171148558244820792944376601831410718744252982402766942228789865100514398054696378092181498674609988061634579397895452676506142237667826156526959005652094462723388406037968532990289289081635565672391135696138859948528328587722586592890383835395546168357171049433839460343244827646864134892409747002679169458355004583198793747636746303728029878199518048347942450062607478177280972567959398057932839292028625986661174300965191962648812601698506778786348679430124658062018744138632578404113788350281219428468830562231467219642649956462107379875175024669564153976152297356886588501830783231407321921597410944411025485466772470095115217592279144904121004298591292930541753329529037228070511711490982050653457018015737029386679343271964574564484471482908519095370717936951934358439462604556057913979059508726127213551871894215685959276078969851095168621948573977923540377042630645723990654248555635033199226146285783206029008675737965865894759173936090724408112517076303755947219376127243806591707166685367075070271110921492380075811217637668473740841757640929562338992145913849240882393647890857913135275797299653190729083250173635764895255458656236438365681734416375658162516375525505614481374097228704482803269350942236341825593920008301340288155726669040922090313145370719476542630560013739888085946463551759215080772325308134262360089867008386791600459019195524789350044458549461613649642888867344337526314864870362925660971541980692957421686979544963216890422294085837906896399611756761820839607155338597788598666566929357944763459793703167096218111680073737727645711238579183080610106177458055576785545908208367941837200223170686078116880610358008585230935076797560284617236570377619248751028783971318015033875539789700163620164117947752950823821469750616557531872188005570402926513588864941555077853620364081617599184036956286939985119704072839500284308166813772672015421042795369654600760323833435847324549653010847937680703561940993160431313771605155398716228041147931411557748521589670160857790191890088070412030005748981257692644956645500504594882604687853527057528761491472061451374198746638703705194335523378701586034126799229627424933294564751599221044787019328391576573195868392486525871694557412950523059380964116738230134858977173283123366612833578420194267949451296972465211904548057695947231803176936814908774986037265069095378431012577283610894110049157254120503598336511607974371442542206929347071915398229607563021809298240248850083915894613271741846108981489518826145830894881504218746948144219098813851388453429533000216424243701976566866010768076459363294271908191225966584185876646922741279219302052852670976044825324168741745921838613886789093022771869848479552279438631265484626813414223571551405620430105274641875761362436179263223745582916595665204780154663335487801189807521230249138090436605457985595793234266526601070017725923031044453421947997394182721905963658979068139661086218350036068334990579145718586522780428942839014358050340177866074554939523006350611104462449357331850049597550976701149043065886092985825279129468582446601177924315514216816132858029017165862959577509817660805503140908664047791766155095169589429521203851710426210447073434333082364768012683909996306149518558334853835458822113024993906690437866323399426207549193115359411995856849010956050852480734858364967081260823191520699188681109451247917359116035586625910229802002297895161118096151587023097299004536166995808846760152283831206559451128394067354326780680322058456987294743400946843762244366302625858234700036387359797568391307540664067610223514306803464450064095487330778597018060798403813512794000585924653900812221754596484589308274878735271359214249455138414441707187715742767179771852400082307997912980030717703835910213689114230322271794719381351384290112745961499350071834058618169855232210211571744893658354474739267692599933140323079421875189445176046516874465742870198783260729212703767438742240731893494339975844723254510556942016910991792231897730732865004174305375389637633721369783886927085304812875397685510644413647187842414659462256133989627810590328289476577285315032442759697483539325536311016967028168537750470482916053412016365402743464851454833278536701004080371017882681076782634112509987128466044847439879039250192656263604263415239250122947753137166021332368804258460344953048669967469971725586549776715388993957767569697759831497443667894018091336567627223294515645034159219965583359777371062932158344275292192228885919932261212163924181505024865059769742314223512461046547402619819340026539850079011963011817774344967387270683316833734660772056536682220985877855202625249927606324458186437200556727111865781931117272475690380683455715002768884902554818889083681943599655424743715310239895723158555407943241394945072477028048758484297815737927372204150790364674702427145949498731498505315098889349352182280864741514844499746956642309209087052144953958463507737061403455709515006864325964632964387365096861491037394911736316253016479014057566783135725466747961782944246542351394550751860264800039346800173190564871158657766073449854923793448751529474232427797167762446968149657117912765336827868916386629244817100382523936287772176289604984973347502391993403098897646282240743154866070609312768455780668390527841078897177908497455208398518732515608412723957974777503103238979772119539787793731798751339972796805346592286910491024973572753236249032129173779590064204839017587512798554458553114507467729195759512444257793253876059547511976042703914234583824944624022994326049929879301713917828862341652235113716979033050705145879694528147714833736447854755753569786736561598633302502719393993997072692351839120166037256965793156500090517508492165189748912935898265820034998635800003378222802829150001204061279333522028083618822775954679248022150878389567843574775098000452119220843523332446949543283704429067057844766250411953180280676545005094458308550525358181003138683442193949167614144718000225706356083912981373903196584752893282496174844069471973735366132493891154355585647945241046338738246211097882323539523956202505930807397604979586999231013725375163028529005280951733483179086215615632360942190033026814034773735744307227934170520171545062540958659522504825294450067262888500312708342100336931003601677950190355121871725010670815552797350538975321389811115983081890004077453715738308531604338729932612189658413357480536396483417018660662238144331799785667130391763718624307750812566164689155683770841635439406192988325019851935857882150406963548086604051843307328949696115960633172969551558776403126776748485743064340143217414702709223026751694615187859334992954690007615420190294020885102199431160174601225749468639075954633742707888908746427415394715774001937545478413738728554245040066160851273968695147988779624133074445266906964068380511964535726681287477635618005043195553812439479843683669626499948399655384972184664019919434174773691709117112578216778477356351434730197127775751167589001368647168101449706596432809464136753268690010618659167370645510910446974166107949537444876332671764754216728910465387955077105125557861657130067128628966767946339706479763304594487677413656294663582125347927884697914086104398575069705991915300039845349626776246818175772578162010159430131683237623063029407780200915738088894468314912892359535637706538834121457927418324751894922108324885084898553652262185995581359793894892649014987536241008620404553707744093071719662117140863881837957766916290374374917865609476940726394521227136459722754365414901231172424690843886780436163075987169057849431326351765627335743959443741237712457564788535850642190569801266369087010199810907449682407926475273551822910732540416492950281861216548986286287284871778724103744121268878074531841769836558381501254802803133117038162918418683358987300644056785498607645909905898829663089585458909183517878587002954051621131352309317187721707703520581434467431668885786789319638522840104761641753807461481108962644872650394988251949805958858281648224554943191995720186856348562069962690909623320336448933209609031543878313747689857342604968714485294392764203844155754757411449967107160513841829836305520751022957437410536505997167566307825672466906865355710840769607314130163191342219996139717755234675887099932898804024199902265634812243564975961859373329055342611972185540072945419472405337912276639863635468118210609998687579752646231999812001442910767594549404552708709345610182749762766189293549959575964400744536361927051770237662030373385590788139364431833234781043041165163378419524285737503242593394981414524159333219425270386469723141168366749670542234015607861526155821142396216977757911289097018029046891380205897857372759876323891679621106804720828249522999719792293662559959172372221628054150165308754592326382817649379297977508925384742659019094335244646217068970621899585047143052105561760381239675141770249748442156491301949470361538069888486436439044225730658150896702223813370801658309391405894876371076116264759402227107450680679875336889380292058448460824156777594083458025367664458507972619098337194020795475715556304412751429170821846325643331097193843616732064777182186374228729795645304977415513158799693373673619652481633006912335028243094867908605262085374962441993663211078461785962700605956127593375358596996764544550154684761174097651780821645504770012167197356497354054908586055761085290845194128620807201874031781037643069751772604920996359269644310505891666531914874067553701367197687955619380849863957841757735431863319309207896238938566774922630523066804086694761640943615754587868029427118676990910428416371101922215000183949453532066409151083141002238357500430468211412509878586173356472626906921457657131608931789161004303126847005845814088024544620238962401408799078833506402107299712843877580199245385088742048405487568531161082446153465212606982153653296645161220128856432954063118112156115679103388607326413988827148361029933453866438023245435315970062537718147133430907279520713054106698145113070749676085290006629796208286845106613896571924299816102387806113141090415480194976122531101358432843576049278914790477997935148255153416117428999427877023719603385232417100620222363962469217022586549666378201315772737945123953846669391720103140581909561344840832811204496531180659705906052673779222025294801151559004309808557661509493639413052438456920448966665667876146294849374868209558534287494647042349967556790892658923623955771385392252677859127774153833846459604352420018693475006211517427356750682201154073170760728757995951328160485326540162271906235897734746375372520229630104914219336158177575525816009707170411678450329006778105741230040841155474950518597523546118052713173844827532536694797608448877672473349168574856693130155438811138110613334056591403931293629943923374720862309381326665579010968273827600465919571631791401680390953837996022493314625758553542057860605012358037548778887802515657518699365259482880104714092752974067805498323887982694529979313817810461198416560262096443313970912788702323160633909599268275422038113137666744787403530371531992717502260222781765117511389745936132803348754740411728129266113359582449423615721671952588981910659093031248296974622877366260416695182426488223569835045582918968279745303566732330947836444134365878213400492258724835819874021129295626284472789767077918120760584623850658752092057508330249629032965531917360906077050174790177742712055205255974081128771692292279682276942240994258999688334377828003378950051150885209960258267436659081086849000229115345771419503360853584438312008288918871538641924452024542908580472089371418348003034847775582656550238382155850457629902547507664904567288582711720096819206467017977483905108487883201125546590792471916209564645163081758230246918894809671417661074189744836475971996790664103719072688904735445169914152859231698824455318196868087036647738277953515204096388688037856924074819920344813617664257938174596476354614952057019263188591818729080088499656641320653280518598172943156297775356146851660998025662821392089500283510478338619703974298190273651039610038357322133480390473814367888964889971160925221816563347782411083586893593942406345506922228531475689601683192584360425163079656535990909871738201736284105875258853787473641708334192857737446841866484385211855165337664293192285290740070235346397180680087696403845160543631467340461519190674732709263026529405381266866048791427594517641453221846456817611393129093069104059546163958081326716977286303157366106720082655046544838241347711072358404162646455029880481453218506522259469757857935615233602652948692783764394491069578504014798940100062974891125877348990910420555623820922121671569474480576318473363758449648201429625503320296548445613769969300418613854207989543349336275082531237942814370752353775513559094351691673166233657453283478676157614785533708629017977656145421443970089413959639075554421630094421724751357016870990178867251504481628206788910955119296966584952642696997933091064941816347006698353610566399415459952120130631044486811216955720781161518321137494407879638349104726063618984299597728608326413303568172880418154961501323807171355060823593469635933042097906630899275121868819472902127789399518209138929516775594440044584049139675550167053796580109881496618370926921137621549298554410529527084213970409032533528023775273140446241675787267019946739663816081472934730990228868110609920632237071505668887016476118372886103441862080733453583814493135749708014511816924813986666383260146805261255046063718984799231253811038478317820804619092502221152445684167562193023758915571648007847100229034823790608852636687553251565161407448637586771214787887044148534440239308093412021295764757754463874058409614335010138682764092389420564985862237355577402159652657967420970865641369679310642997620116228089478034058296195275625378930035475252656886635193880022050061996833355186168127741145458428934480132199593148844144125044606515783669517586718913105916312590594215532846472196017294856904111511116950318955488722153533267122446448615463847718196875575164666579780399944066262824399003664198491122346293300396914102291054964236809628424237900855655566899063163192296484761259841218947817270869746940173300462701640579914435339861637963756292862841908443164314236002954238478682985826109710029114992237323631676913474616251844247774055103385599594669212643070893412702438557685704403820147778488949945001764409439160126796149693090518713325212933427257061551937475463464445514715214141994736678719458839072185903132429651514740164848557249856570351620660791259180975059280445547833102360019571861249716844774900459096308001622422477876913974600251432158067106640218564546210363825027979558243236729747662322221224683481578822759217385441816749492056220275935459679310691140571855217150625906760367852320974272741192457979788100987661311094947164681748010437388651117146604591073748358950743208364065977756090279261235203755274222217532760822522937265461669287425149983399681363273200090562750454682060606703001123228185420247410473556491149294860728330382617137849696724044426274547401743352651591384519247620519372152589762544882096798161611533214652788967013995136960659689173673099115381956595007275370978624946069623191362499985355377609956669376580420963896186256637183340654310623403901999609720187526109465083591773530394907908664587618818471679094582980699541722110569022249233272008639147857131902861383894450756990521285365807771718953773490026200696818223876428958722566474614830797944832231201020141366815121588313023124896610493930109304878350628665740286820601265683743101758487739412117622750920926795154229410552126794502731081131780354430452074025575858446702350956504484740456653105911916939806755205278343700682400062270389590690718354376976486227085945805193378491867551477415330197742441282861761443732928234152805298131661196556589784281122023510257022694885086617630393467203661840869861976420459069147994716630046335487036697599040993154970663412273073028111309387845724511721413951413391019909826377984349184494618191415512197743599679482348857846398407463903334759892256244504311713145223108334796362439927156648376858251469399279914179132449283591805437517164293135131548870061267768982171253789164487921972219509272545579950180303550803205876830648494705780574065535757114654960817491941442538039863187054953583335481318787131999362901688443089270280804832565976346712598268023892272103589468600460319125325635016653252378596395606874218306721051635508438770385234695798094043263485096619446344853940471344246879361297370066813547233134426356573306775859486767456524221088584337029396447856908347011526781713198504209029512798572834455741624220570222413707265413301892549330255640814418097212642193009093146419049149499932608919937355263893290035455045337835117875315007764675571748744168017621044970011673196527503300689750744002126238281690004633203050883539457250043372669907399072103904151035566809886030645939470363550319414451126632913799792631147634727031557707700552198669310546958950247841148241996214585666839292693047262169785099000652067234648109808760312747290767077559761895799710017792467051454650757537800830468500388792602485390220311508196140371732074896451922175559712813533198388569918610612628083086728688661778796276882416417196370343772033521576542957088590109968594915652818712036893551433694830147030544506090960525628828912228821151079643339574709224331533835937421511137070994851864383366226110294259853292192381773367144663466534233536465959554417868091671935482202301855972422044766050387077727081729043537893816631237570475987215379061480410111540006388265678620594625123970383298231881105189017939694587621723266318911647283764342271031245870909133233032296127328285542840620490255937785644262918671581321002619669344792902488995126646686777151222524610645829198611739703325107672181769165658844959899183739632748210170653427433058584646006742798649341633079360399037066886605198698782919003805055671005995530450979558911263255185378588773006334846985358163362622491039673281457776883975693709597720972024364377011307773848532058073239034515394056702259507018602198897525449189410530358262985351628334146574942521436890990468961612477356281569223967075037146748074479313413499915109837784929017394928717412613156432578210986108437340628227192898198006799757101109121635713142182081512181110933139342328781458194396955663819043750299853451583610608178258157317359538438995372969362830028587529620643795467286668235492459309681223836868495920200737886601153674547532212278104658995453324307207703126351506339617948176498433091662986771697794874402896922197036301123503544472900886033036021999646874213907229057821612316487617265087647352907927559272583385796726495839891566516779096908765773940292139293477238067105254187096427490885380019256090999785685715477979563587137676185158122611745073749089045399691828707853789525495837519968693525303026501493154011789674947686662443688479563811556948918901581021856985395725174204381361469893602544456960932128632070715905643315653563444950727610410612198750807185489251738410964812074944215299165459438963717949415202184053027577608855238097429335219567502501566142056352871177514578225569051465754620976119330185913446306972081929292391991168018380737479638349649966382627204309354162669883270390466329974848777483982261277955074727843257437979469375613708388221857142969781372800219536879929424282922457455394920083979571996709079656239781857816883511737887220509970687301920878786216225196639712687637177272492964904823375560461864804951721347543870724217475034791813437748009366587372945624387432654546502493041858750788141991835341674220269037559756276610916880509754659584270106319609942821118537026155544899938513185167248971100182289881081217076308923213910377524303778266630505700833216886168932083141303707352408013899058941971595983679675140955148848236445504636351309793947106184310914451092484083492238138318804780569813151716948107721607008710726884092911991753659362820765925741564969774693375092592674001092637198018322017697001550497424472059297182552733797792489059106205005097983726500095522588146018500110894460911100228996824672446635187380470980107958328172011975077913792209088963173690612323779954645327514467851718094345210409782468380205563253162041362097136000050149509424143400346295448557223733120104413290784595556512127461139658924387177326526218768200225989166385676365395149100143902406909641733191601972841733762390421694771024381770564164560128561938823551459940333745983535818047818775858704774543419252321754469709248216017655202372501044918238182314592844392693038176163011379871494957513703125110581067842383822713254620857800623682435408473859894285985003905671362907268774274422438079158648849923985070710258813178291992638577388508462218117401000123272612048460083480681252797902893585820285775884438631850234144617528007261651250057236780242964360133977570520726743395237395477427557266165767499355155108998766055543891900995143658573216188886863754749396163845757188158722278882786747806496961836643731295727723337685217792606557028413100783591631916040848261588730817973327816907684218761464943495247514927344400441840428965426357838057429194643277949386211589262194509781547501010719721443175796122524515805009005947210528499824999161602416887680056054759925613569749153618854303329435009037889650470471466653268814465119939001213159215411205134592771112207472369252288512406266753772634920285056250810650488397067940090837559071274706782949650888985576463315981747071737876020012700539630280030199568160425855704977366973969201900695128213646784328951490319829252210353266311423354695626911904959809012575956832393813632913371778908771672956212124855701280774549989006187652936118358593858386827283975258263351901846740837200244184990615136241563643575641313108115298203159819518140233429540857608711808445756228156279264916710084435414486171192854896043440624764999252301845702120774922472717548282684113781948523461168257039778338967182676862569192679643580406429502271701412086232457166631364222362437282738801592535901659387514913577782493982282612393548620707567201828697127003361526096885255992083732265643658733013683715021323027216541637569138773720706683234111662202343528998146576978326305975986043143707159720092783794861573023091685550309235926234137294211438401116797292897570567747281944376137389257067266069171384848464453594318530933692380367575832310450334781335140138371745729232231737516202469546862307858031863680575348412900720685436313314760910955757610786922117261645022909497542330559175484441871720160271753857199789708370352117543626991181512201940383723825824758299064731870991208643132771974213764591791572103337871426154001930939335485252222155794259885834360507371978411138183056470581062106551945897146286323154562270091737245443761877629919816685040959474604859416824970776101565918521698564122380975196804881385662185354556176860259853349013845086651583247909913706639581860365953873142519572087145692661195882890626743826402221447364737038481067589997729782460044826464680283227233271797307434144689830075868937622869776901679828806070199654199975438875540031169194575220819649565701209332570903653093905106004885674212801712701204090922246184310988672062160387441404052287531758603343579563610420580584577466358068672921142753196214884523283958151110745631368792371258927351205489685998564349535466318244247943645571922340768740863269839332893688214205183764699701501327032373337214861585706751614786508759634927100694507674579065961467439509881123992639066740721969285803502683593618901936903054885858953895947181735411493295455173888270629424077596743255290751811309299239966984026323382793126406312139062279308468786222411496012984329034229083316714280379489486320830398927663441513909098287225055329931127504262905968044795575063624325609060716393697218497412793603492626579468404073762941703636247410835128032970228882279204605476039307891847243572415972220691007203197615312945455374111374010438099702091884412604488260428662000647376904537370650126061966497411595321591475375322874532948919336235490499582312545763597978138791427310880425129852351372479423608963645631955232718193051976339093978089146786978416114958648022594047904853609105191016934300414425230711494534199715067298162598626191754655352774667635447610660384571091380551005165337258426640700414038033862908335125524654231537627921622498737063768156441986666159836527720206065448550407119334852961138341557761624550424571346640703938334499924446804059510386540043645806539355302259207346537183072979873336143887343908571616992694413727591112338809144856124055787936643913064425608927492833448614760662124132805043446135916643729705869712438308134795986385905120486536790597580188832663822082847367033750256546038274162873757452282262837495835069191429347640926455063164258041036795457684448281106834771685337851143566304424160776634424725275769993937539805589303227686441666882473149964004266326042943378999969515479363072698640919160788494610528208828765286699516243064735027235715498294579938279319482770505550364080568547018179206977744675886942604398768717881368472608998714011297724195738551544298411907727397837073821111998397322751163355595109479699634196454124439200917083807002030583550672812831798579275078492852656551553655813397670885762898205722069443748083981164601794163495572326739552133303994796100988375653415224202510810222442986437948788111978775428406239706587154418845260987308654524812723804740336102585547602963452239793820521338633603589215928857282287272057418618896291061192711743998350362856694789332336382863958780882437980512702763604688650004918773783543543467470410464328593320194918980479502336586686341109808092356698825322573184252628425303795887530941157104928986717507464140879885575104945636915289127575547417744369038473156382341309111059875166031769552445388434317095981853459054813424918856300118267814871917091515700297766275321233974559201577156541618000112896472953503921399795457640195802206884120260208740838641427135990676523051263821903334080416983994652353208419359301847105656618681154369558024875942545153457562300840662676507669261161004492271932982007306162258751525923309799227287980756877769684702991424472583919886756725857640325144457452372171753219007006409295928068232807748433811127740880931433452871025790927087317180914832491440830535106674412943773855809703157706501949458673133904591534117234923997225681375567325935965713875601340348135868347261908290225259004309514188349699284213836905485215841980758088831754934912634834492668059105303924643869882606136742736264405044189928334955049765310344652637661767861580025044651986454200660622572951818724052263484817399358275708242994807916848350969703966574648318707383124299632911805425599833966767415049360241067371477412384542513193358101760050530387131081481897754520563779253569993043677647134388244540797705389355577900837368298914628753008766068504693829638433432412539584981426579892913287941150146066868192465055544834186125763656595977408640331775812588231124824296618939464031837054506851970522383976700108671016709759257705621698918599811716371095117509266293289829306169922448362340655588400875479010386576872123964234502575297038860319619009534455836227300849233719847949976704352640613915023086064179961116818005419322536073068675400905751128365554859347737163830957150474565862432511132484214620791579108176809658911372861488283580218154268953884160763225822600462289642729651889337188157081421282597613468037501164324797235911052678720033633847192109773331158945540996043000846949369629012403996972310353169292065237141238702971655466646378671096640939407313155868669398535508541790312470411803022421479436857810951884726951644431576234227420450289743992235694927033658904980291762101422142414172112185675914000351466939743750811652527716787369521792118345864576806039152689331138824611900544857483425005812988127803889894104990389365180889456457116459750129509671830946288211938572691992892211354664583088255648405237246116043030973583801660852827704447360728685091760219640709488894543161269904480102001628710448937926675956250767256579340988187282005786017003710755965811280504494884073494184628661275841721052446536534027308789598586868431849406861706704571738053908515191983473133651347881498128777908304156617190934271500707812756654613908320622613168233457905769336382601425297847537742334324312641826707483977774186384653125724324240658315606768154874872988082942078362229806866333064412485607527744306852515778864082437645055940897420493171426145838327454943314636120844448120066462070304641627105516274369330038322773923727667763733323508828782241443838610796974082278889845747714339276790834691452495840025852604258181381433692066811412842947922935004128013379017119027452571706351249538894580684242856713155885309693137730020977570138654267594115891842738471998780960878835425516043285018895082402378531023337367387331371520539132029211669439451797661738429165446151699313379576946364772512265425089293987897382182813819911484063317851926970724650911294622818451533769915755208258265950484593448128061201887154895142379910042146345460843387187850594822696223064277526528426012493928151272998040184598871712391272457078509541391774595007580542609274150894318298211592544914716294047297691364639252382592024485498553384249112127510967886368568206507306977707177530397257474921099568933539708768368130025763545163224229299557887922377376998206950826421054381441522254065936796133659242752563596766988982564977460601730201642209527121228237524021543995824631006908707976745296666276284555842414637675423264217496863567689757695895630043215135969427913258001903034651298393325563409646941049535728417637523582274051384496177070527854522979403800911970092495509368551906971539865251408284842859226555601133576577576553260815731329289026409191415464643709497238482802644491086387509981155739429431367393856913095264070128412367341414857079491764596542021652572028930002447377573685285363376363108109854799780017494715530918306873703555995856320122496235681862968620415013405876615744611572692610240117152922885210290007562605076304882044372182670563535536184522974191668414863058413133241790802077446126408746092542176560994879591236308528355873795765821696715805891653028129875450537262839139425344541609517602835025451442759314482736205042022537150929727403313621468162984871669240199721112848454386794576833030729200572652691993335187215826293607457416612109841785636384080890362883707285359852761923455453154742717085672049363501035497150358246646348221131095240915859962181152116644830729027461653352640911529438669604808888353135326910617477700251781742874090153851612107045424032843110200642541268607039036991682880643488248374567378111319202294593723317406125983906371732547366075705520397667650784128044389037821622604374783259566712642464846355547445271639649725040740550635927027941882239466780862538869728499472350981712550866999618969273730194017611777034953013672660946421553740371236868827072728336439793001054119202712276711194415366596547736165925103229100080768313643505396779579320032533516029270946171432774033623278930394858518217529717341463306583624807309354402157888492937822595749605075191911458799753105074422714527629494246129035782979555540978114384498182415221817498121774803478027290792047721772676248331975380630157734577538187414122992311561445068425346060821271185028990221083497292170735369384267619226672651499065266099842396158716274092150187701271763767876442122413836360132175106293668009312009942887458410683313174085151495128412841336446348427985923251873679665675273754646706217096511090883489705589965086710519181455994600678078122998010098491917682636641931369946518692130164672656586242518495996297303248203050604672928356876652604560692358146611775359591501407460798436991839823874869038702973170924733812718116953428812699893153953817963317277022976978028839898706540434749980881566311402207367559698549307612689131140504790140868031837849120109759301916140727158816024372675284875753972254475396246898777322563396486724718350475938043715285067653632429943314815567015060617177059634789057595732303652829652644339583342045816922595666669340630970979225961422485053145758026513953231859837634130720359638687025473265189974836600274816369490867602782461030535558920961939661033214829376775497831497154707116005341953640691745395822463452390189065621449674222492484796624045804846126572996251467020319276973083495858348399691979034560068759460810754546057211514748190160991913251519642076877260403702733890766927366094060824330689043255559882224337683769317041763250831521446776464745685934405841809246706576740256616779889419033000944920097261564329658276493735083572886720255011387527192580572305826349963795898055309392274039891224502193414870774093659482811284398320159516616617317952308288724263159165565645276558877788410806736318754610416425144880008819039537987698314170597234041057048183381144061046540937544935271530804724041987856096390257032272595642035280762366873600578590971427358810540046218016547738633728131612037857748667165758376950458726489905421482427982320771338019989067391439052474276596607115584527486211360241272740512794808342674931465291509390226315814181023666657323291795593915119079610638623528943171845900780383358498386317975806269218770015258513391388089264226489513694583168245139640071406899882456026404259856944339888721955861923397966044101086902532641702031741398494542439835928035237156031525058697119488254779249923470597172285034119983147372838475795797094481770634515501775032287645073895779769364821069421723554828874628562446429820706038791102999371262779356233786626487259785127622574017528411183444100222390765886770918065760169383767403896991863452641803413892072123902510203540285753550732809992795068259262822948691606499919359364932336061845866418301188238952668094495426178313734477298996065871967345486812896468367341580233168254549813372872054479736706892918876436314225952097875977183639300630928713550637065824752444089019407523586613578925808584571793295217837524189922579792755231297426299868712332143345089769162034590397019352463565810764341822342571306631158042927545497297314301964172050131294864317897732768389624426083321553609382145520386371623064562605034058955481722782020055196928628151775495214183408498218137677666449884590231730585764129011931954089772106544143764061074742425471800346191114838005857656654729826716742641818123832734585605990583175571931066849362751085166550052027575637890932139979777126022114798239823066278413127062718802786580878615825856369861640704739459853639962791608266443735372219127462554596752503506788234613540028661772998160968886669771020852744292729466584345348887921796491436092679883644143421800301199062218469114504381236846406080993368456711998482632072767476104721258898943650189622510354441918802957767146612711846103523606520040623557697854957780467418819351947219481435848203193260587617150075135238699552026318583039610996323398955769420387528031106577896688148611279311306689061984011487599982550064018422368392523262044063829956236959810232928577678743408158994958648160990339350613397179387153224826668285369981691900044164962075716833730963006045215700629419338425071543850809041371117243019036925692786942890530221304086816933106748806763834166199519018559428512800259499791604916323632199968553225466783541380854568050527132958119653703222627267654377134674294476099373925249858430646107229510057016945298873360779324900060127935805845313314532565158578685937187736599550664017004581176431976234916891178292985233906255973396786460146910944134850477027744086733869857663004888478151466955979128322491923060886232773663006201910144440320085945252781787872480699661026707443622902292264909422604304106366976829411982404298655626545775359152206823429458022506798676401917977472187997477189664610782660825225064542678884066168327268384837803232377669314906382343241955620066740905177580386176998006872105737195306876946934437118846297860400326494003879030472912817902726909115379485608715889922372648512883688813624084955340601154376994637080010012734391654083875602500117189929399524081618728096354825658818090751200285045914803441884476772766556011770954692522834430448085089535467207486903114089290297489236616986945848725307256367415290387331260635124682480898026206716803652303325987360768018978804493257175973070686038388911364187472817624115235685406251094576088440099026010831244109680717170531771996154553175015278113253268060508472571982016175745422910442108414594897392282986732653164161613178870568064210672178435177972363491505444707131287916649805498364070369548724834996762255828398800708442250085584896211542084485789062184676134348285761389276402965576253714936236289003883795201527885418689410901413198072450490048555105152355010996665189148949135087130075947751386052692879135028252200987058743156457800469614990317328752334019267026321886731173081176752405697135309932385583179041354793878951709826283244046619533372647224882746657119421604205017991561985952405814298763968195966271810235494579755743888109769481083917591823754552191778610187077266080037477683075285554264350421544619111293188503882597702295585338100873937143141639727421363840647160305466136411706658001343097077494559959424727696043280482092320929487480167513327009545359278170008223622851749676655984358814445084477804329453460073338081384007918110318074306903606454277133458179622332847383407271796066497482851693569309371246500441903019898865198253291327666069339806278734297670514543606653237055288484577058054211245907293601921195328365352158460788669071341404530771685611629192858484812536612702803701387308002913135517300675392230033036216578319527349279519637991357539962757316429368962532984561410837400202998235859099243504111312125513911022862777825814487753001602758120844053699510142508419739241414244760486170480255667762109182462669836483039190338912255328927763672901657122523156944099850858808650976935226696141378006898906611432095449137526893897101726199032416847667301788936792399012670915714047880294414937284303182729917749329880700193561734480661320945731743086342391134928499269957000400073907370018974756990616443096239063542325089893517769162689599252214107934456330939615129189594505342308505270174780084734540698573830244055488220904797860641359741028188879926396406159873669279693189606561511558621840990127112415831700155881007250277896370464626692543815695469056410174700720584457121132050185480430852853126253848942889439964990556405396684206048463898354291952344820973048155243795448230080860833343144906381032368452401753896190771817718003743955253073333020496484689235153665893527922482591030484480710891032948138006493448408074370547944470754119039823811124632043815576647156198431592944152655955276382020245172796975824837868280302436363449721500426035535100024371853354279101602989187162736797331806007501007781711404464905271258056464317423656308073189913144801230129776830545127149312408008858761499930176012803065419831552122752824640228648929053991554164917677408209663240466783606998614228092838245692193077248402081986985228836667146453344110856521929247274813694627418388484861598682622573427988588561643951872189511824666465591151506433798741962666641601244178736573413261691020031546519544068755463711861005945039183651294446809470518498638328336810388884990714922248884011003417202859504237772736507522414528610935042245760200596504454991934192256293634934916591372951498667142277163791643696698744287197684185989531149532071414739671797206414729723994395477440126933923340750732570699857608005110987181901586096702847683515852828304324630915182766992524208735604413350884522697450858883810194297460509452030232194330801985225899410797122428134086772833480145117355951821206414308965500901999279788808036739809765108182328511915616642248417722156522839904162842673514586329384021387517324949696118640638895704779388345266630792394892029687945833147399973769956637399169793525614635852549109290354766047527660811780296540444524496734442832331414301340252610915002014125703699527703856283883331799202637775548908572044169029903208430733791349666583044312299858230896410959876979340542566076033172176339182988268769343178377237830729089420508288144664799775154541006899962236223697050507532991339882949374615851140080697861497275504307441982949831543512710330123378401381958501995071052972523898434682875814102223511206992019014001070004190765190014583225562754430747876117400189416176681061216384403994347660678183811206102819450157804317342637639351723342782372148812619045190370782064459524752816185868735547013605245011886773585574889306545562628113821945409046076448845692690812834439703554649292752058708089180355547478107311835453086134469548628758094159756379152909261261448303094930176207285462482972694557743209991537273324055527770430780697501909889016717887820501750997987760456118574993622682986884419347133080772631217918312183565742774335475997757180453369064589885188669785652846860999738692666230895826271262618484285203101930899100331514356340403159387800705883565997549438070791445041711503159409811135773311575109593423607416370380018988584651491559644502177522966934886981632688106891035339368890492539134605086618011679507195112468853919623615138195397519622475415992309128701673144724381809714814506045555392365871021801920789803719387467389750733303255114155799412264396982692291225738701322768459035264785915506723760793945045194306468774168234074729320884666073796738679480874856041540855701309055686421241034173984322465834647991163677527113999971988641207415581516891032392897776442574726054555735252094682362749360306242455281217454557931403494027759613265184904247714086410929112634482159295005158842696256221145458859899484127888501203707170105582600946420435775964562345318545373580811342817838501505272310913759856621860859727826171851313155437241494618253511737947478379631202260094584135854168466038512796888809659183546531446766908866541844604475955267022118495011177473613027429916121529513823549207468325768527365995392424993119694843131002661820744172841621645459676908916676264258688340654388103834862230682126140607496879736314271581799964428656360503826252994577945678996676781837946892812496431497435613845718183297740031099648769388305354899724647170344678666135497469524015117978204826622611078612446756522847331089566767823335983407924917099899296135267840330857890160303687690189088009559765554768697758150311239811116031791944663960197810380824063977214162388422833835820755565162449594816459822277920499990053573762431611776327405270095709922074966730926979622365804513087015331347327508355390750381942882014953603181287336558137567297298425211012437466376826750674206423860146660951330767225471067534412502113567209877492813332294981949539656877417533179833679863206602817542749570866913399809062908400787783772948853310329396043387009607044560351738224953277841554008874439415161095426501659424329860573811553696575953523627517298511050537663754899750283316738060035403475897513378267630815322356951999085304172683096344186928127497805156588641307495791091546770997890051146138379294066138531262949916973588462960258959238268136836092301756797611787920239696724786321999308347908427306840131044116886789321885093249926429552081223605150372106257122696775917296522639111101507532850315515025805035750786600496852561617254504969235857294846225971841468365441418952362479465607985837597334298997517800795761711335089657551006075014742365333679523460811144091721637982245124911308502007594746359931999335643878780383154845416088203222917280046525843121444657327635875681621984999096435497183489533462294789973171290729287587366262327243205980519327955904512117782395589133021615371048569213477916094865654863094086315869980786138453074405985074369024873257158599325941312293472858814907073199135203969956594019132222391833842394841406850018801363279069011822060801045830388646908655831158464600798573280008303918132140532581340473105667127537016238044859203143744766365544748657239428122915214748681083494035267638884812198083426429418203076553909238564328713712828254224617993491069088663972087556685407125938128780920262871154462736980756785298300857617754888543487877111903421515789094137971085623240287378753006696937363156457969339933905402523844595639331643948214657086551152138406376930106876041021691599814349739086703250925628629858885748347324988889161933432276122110738997183919991233804074342433299477237060012140238915860888300621874299909641374102343847579432034381489875696525698975489549604520261140588975306009830163273793646266045754766359289557285647521814487904443892825704459300780536851893360742973933203275402108365159043754968168205794650833812731940928384414342505097694296362624835237928365238595899449669605921155139197125778927934611790236318035434130975922951306974574043251155003490322387052885295657972147703601044505235487158165935746049789841644628510385944511689748445750289918436406087592763486198913599361210423614222461111951327466047783240674633442882220883944931125992916150376133534877449198247678071950876859126860353592045014114693605614533415699513526549604062203894252655623747055453651277153151492889807016965010599444531096525794228793889804459034478759760807315362000541995970442773406229327549188879997297710123059877820046382838752054737477136917688654486535827867667120667186689765696724528976011113158874369280194610842825074301291075584831454628253561531409520345673397160714161261564266203486610857133435255999272088819563862661960969080843290873358072334395226024609322133543045634822080015288955439338407492382527450757798800587717981027391314136040422415696834506963977735412744241462590337527046086363411204516745502929340425849179304002442647175326475102825416054804558813583652441499986091138386354121111016480786747519219989817422868427054875602647541240856911296846511638719688032756613177446518694707954744492775820424168653290220735694227235249102200736083841832379321527098951870131358467601226514436727408142080055593686668041536509781157250255756819529647965673755089424341790744473817278125136614642435350817967031442465394679299882651497247409931584728284184689145465353627210235232832475559674835940551540784508759737636875109358216524876612500607560184639523602276838474783899152492015627498804385890449169786277582970363705906516816426392555574853031324600600957852054971200782142113616062845273186530893383180733151152609897505271991909471159627833090032469462458923557521813836772029309476908678241072688230969193110232932148211294922187215980483149331349408980346191304989855317856021161071091934396838090905692046008322924570854498913843079828697610986505816451082924457743731401378226239310720286108935322887847193556648171777082846406668053992209670996638551111225947087644106370941507871585043037257856558949393830655422730313812314096316894605719492902298525608945534662289918762067925732118296390472539162077149196685666781569530937255093787700356836583057961886665496628766878040514311888651005837914261914749870711207198025272362857876368323255599533931339520716900630974866919332506935777506735609158087599432041569387850259897031225306079389384812730499664468155687877486471263206069399680168597902826179038690727852446831317214087480989370894140934316468172136382735346015340200321170389078939364656024670252635455973945462611688997701978490977765811479170989543038063540897944345628717212768737517334100415179543688531003678273200126343174795431100055404562460851225775611237341378493352094704295586438226642884372287881661329067262160589656592814098189789693028190614303848921532093487958330103999907811250305242455620707389632635399965040101963783389160691204887843160886252687946657230761531257850426974471688968633512506207205290674634900665083551816283115099748414193670242790055900990524419815639738848866923402981150516270701007585322999353748778410342707186695452509143405327670895611373860562477914223955697034920412785362415691756465333521363882292220870360585686472885137908675825751164662998101340882328634839589052801819666121274561223815335644327816252365789549575317713089770661164763230711795298589951017437617690861751909288178417171610580620894387402692742139982637356822744792680676298846259749366723576267456549582279483967435997560405084746345590649433428782308941283879803546611809862879122941377730868990060591159682235855513152799228141806038797926091805294178658400289116246877737554273535139698882789450832535053678052219302210932221546116523233464832542649763133211247692389523529520858227982518048435418050079623574285781950299054511266221529042851369684686022715257749910851101287804947299075108159599991335781252994233015931541363951136308660267790434210641552487172974869216441613757972762513555127209610816793677145291099171737521249305577812955177834422443035147172316293565888226838576412080113601603805430143763012774573808316997463220645994341103601753529630936110586268358293370578020580338194423636069992271862339341948238312908253978095103758137196822582159838070218133877190838274061938256053147260414549955756477997122869528455546354239015271937731084915832330954482894682921414940746497763898113378291010002126638053816335155598969527405040758329250070029970130340343184447750265321403417705504461842390427167795702482486445334821456355851438149225726726549938056802994055416456280255551595044829583874055789408706666363787058534733700847023063931891778173159016482743187528504879166893288128717895977682572551682892351079649618301998731425716478608942946789430312027164956357560609677864494818267058445782028274274370797239591202302359371578940654500904558282365913291493715238451232776895041542131118707019803022158746640309412418472455882688570515270870115691374025801133740984081224645490362063149531926136565876528535669530591310908853746970819852588114128214615264930253647565085254192398905305341171910947732205987053412032878999949703652086959563943772993719242181104753639688189995643781439387397947228227972316430734104943151497572251739483530818024864635630555627831729622702180666694341168250851432036216929084448727284937482182431968377587601459504007996950407783577677704319046880372590254242369002251934826152847571768779284742061064573157716781388473025305845976591672261485363564982840405127162545906604747878886661026380662786530254372578828449076166867933601911910316073591138194516838503837009976650233037302506372993718123287384038084528432771954277031847146447684580179288515210373803516524227681263334996560297510614266832121374136697011520642041169319196707429257570684989276600334236251702929038549006536769453932884607592624246532808775040991789378453171496761586418146761658044920830229772254051865554196857589120306522049102110006064844691194687676148929125969658633141955461137192037537549945204455521387875730265003744683159024544514839895743832524074954293702153616785580825561973533234818499258044917862117086655179418372348125761993462735078558314205371355604507417649150696864101035170694543170050884343025043311839023679579330142025068037252774049300448542236428358371852800918986105605673467304629941740934504451108472587476665017753506705251151650625757159059529087521257502401521065893030661644871253164650234753696354192592983074421358786584244278047383621901496609633924209757740006052261441143145193316221716897991317823338998039481530548973488372496077568146066000179654136571877511528859037478140099559261546915400277502936462564486086563344312556600334852188518049796538257811958484935305433153358416048298723982072419665733157190025857066029802034912671043177924077006116080173314578794311009429974637363873429869869680288302390375298623005840702093484952227075956956252989747304619592027174160588829486142130557717480556462384962441380488642074980966968919079899194433213317194344161916830990886171827521817814609764499207741083308228737826797492147358435956215091835976408090494514819123074410018203165485038943768260666025377671302917826978299739282989705433712603998661889410280165399976419714400155667348707886484935798129799095075597466803572506471258555862766751321796240221338575013062804250712406776168341031801781911183048412616534714131443309369195778329214884167743401776222870991266927703342307879722774472693062244207871250650933788200293650905202875266071498516664505236841569822474902086723815670597981838775662174876415386207860128721174743660685805046829094188274548668268105857131861438185265712912386999565417892972264890492655591626125090210097900606326969276032707190053139484329758209808655568322592242680549135304575043450434596422149397557634927327710537713742175074701378811072080567355524675692086226656719869676757571768809894827914527725269478954590358357312246947161235258769565407992344199174253738000672674286912605417350456725269111687193805485350923758126323610293075522946410562111678168995331275476983366909969736839119371107422531022999721369472641367667720018510170700900288731134314102295152704366798494817237666686759487099728822702883311430376710260749900388107499352773276521730711773459589901588657321964343627979451200806278072018146012334322777369395464018339100299222691508354312745733626561788514555341990139273173541970319062386757914363878252969350554877578275418452253384537082952845071632725654416150630786388386504369837266616023631163709927537141748403186383811779397700336558347510572098969827677198212862791882830477197597513918580147588962158098772552024503035402646990328157703445642809593644115271634090095395689813862503250217891729672773071135659922072978860834197616339111541123508031800408810039093963633341082907524948680992330981715512028766764365408550926873452661421262771862105149271884183257425849678682829001391180903595187744992185575269092855539025562232423817091149369207795824933768112317377082257789584739775565626882658045201138957808280421382770166530776187376170122395101571467168344467822688728785162601695018052690952165388064699027976914145338758860470833309412303770604035385811775718389519794587078247582507531427598904842027507243663615902195929917278996256296481814478887176490171387909793537204314877618888312272391544060723209641449190718047922871327047203292750618735992898775581723329342453233781117190704965724843997572899963473414298924048548091456599087057647718899239513494446684747856853359827430663191081785019515933975248310332942078843355753613572367474298190501513395253824274219568121013943758726945074490350260595840047379382492645764464116437031990616123503513129759316711672867407716674215528741626336656916737228141888311078394602845052204174894190080359931756005223047490733159252718848726796121729804577959768412091084418935508809729711764392582212004486622556219284947544707374419801520116709812604416861240111358591685761597833192817999872655897105141298708554391339985248811108601132980737160498504252502894729734724499184746305599894674012265553790685479156257065656064315270657833941577671526615207994152809980275935034580510955216580470441679062127220392594138403190188394707636511215524294546194733158171227976928394208263163763265296383382736812010303640067998977967640791314971819280868533909522250964538841666611861998436888376081000706564799972411184727889601726171281169647112584568301327112494863631771932547962554705821903669641558391216061300982594563667915796906112116193165021285131018136874671515220268351943180596246671458813868148677388184401851862824887880132669783149817249051524245360519484893133389571548262224363015271637783785273468623432215734689740738160105001523192282276153415884760620406604307790988237143504497991427140378828142739146745749388757534414554601331996734342645207898292904636907522837467730478516095636484084852718101496292851131185091408724162008588758723576448314476500738496687135889174871739625066758399486285696732508355224479046815911915177867851836622993583058210699040473181659760933955523176964075686789365671460370152349156190094670006056894326261176460077708563182123665791992021479324258099843497032920285894929272233447228627302657248133559826889010595872945264657335828503655764345102856841065696556406119310686641543445428003979998698257337650461954744512591608824284491250437200579304764228574750173273515145700202631966341401391141494317601732523819230369553506716280211380362286613977724994939624226768639808647282149739069180700165458114401658143233706914329416094097871567297868865538674909827512863171554677105326776449588842013233196323522143007166724111008590005114274819740395860414310508952748560904886835664485264485008145575761054178151799276377420991330594091251801967211783518415601782989522639710098269640505903468011017110160421879131657324144282247664320955933920824707435444274358401173257302902685082203034724412651236389256616472564005224019266306725988217763335897195539791157973276015138184163382194244537027644559869956387727337229224589347204595587219817794665428430692881424594694693744874894924807197946951333336875613769765663904728487942532062298229472943305498676509754693008104607480579263254421682463790354839652596872985048975685854276734558513482632933725520270836552501170255841913749239520036123969907082431367637003815036081801437876940442116214041437041239740843305456965748275849346443346494131815526627872912893978273614166052697401116577162064264518428900127685371820121124433470344121073041140314274013731183868810884922817882983651741496162074749652693965744305149102966706464171193037180003436984896495884057383228071718089999590384321461620745896248587740605343866700661438541600490007798340808348246076357517999831356086492401660747735896106302115327737908174708277978755832328453481225697582528963361548067797029672468580166524030246898608429458572569565006969320629034369681385891970053912151306099127605223236483231171438347414285805556511108411554410939918139124911285764987608864590902811415330826051855804446227960903196078517956656688097693484989387674500263909134944894363296781040005497840235758975211941055116250494345629277136370972700059963475446181155762673389492483800149078823288415892654545950691706579612716331092039050716357589768663996384977230773734827227751284068561242184829974158761043787049215176855404413474347829761663592235431796073370257645273670610353294539103576180371650026957526870739223879138431604640608759662274150252973553879154391359707991361780088499315413286843058845797630526009847610129666673345459908991193986815699721143772658716257728209593037540916610979447387962275243471737348351117793964247327074454962372199974233860303751043044078374180509061300283498047225228046486395747365017392409346522628295015397890340492861254542186548596454461955685176474720193060980374234570145677235300150192789095811767290504840960314391932209738286268302861350776673729650779370069730102692403848218949642065458619307897394893247952575897924498141330017758045289255229320348350913314279576421790569695694700899699826421806481041239103950667395744973068371881187804875489708658308911248991684095034060440848491516465218088781507673504047803922389435768544266095578789432907362394775432554142489935763083623724602370419376861352153369639616993365003824624310656800088575461462200258329125693235447043225328203669950567481519708279301720021035639058159150310322348157176337469326402378914811439011740730614139375051080623212957506409668297832227441783729714413237080578634865401986582355082092689143460785903736323360000881934166992057806967467640923576908828164406204364556949826430605007650296851051048308288907729946667373000168930562517176541161424681935888528547637938417872738597714183780788061689860990107633946196341530674063050826601458534210886636698364328159544484651790802294154479577660513462254406515362551233175455447701207729161227981083927041652137711714329698831777021489108236682648111522123802201035629650241136409839267978029047680057852648346352623002158471094948488807445451696610227705320943932662411374332926200160612444818217518119171572379828256587218730119914890150855799235804922045136371582366951309174224785714822392441333409415388494210026558863245213039582978761121404672382353353679718974531858689390074214286837280845293249880005201923175251671058596904921242886076477074979675232956483913619264139020506203984147446349888826024103284108693910071703602801669093102691789196311563034968194558842051131714363263137973525419550138689235781799357262639361826025666267408057116002123883453606112735568002796023788123035311913783077170440376232363338170271775116022308143135022202257676040297360397839291859445127194307205159389433623308996033957858166326084316804518273042088979170177981652418272406784203907188197743393737804506748612750447510139968129736440399667124703716819171269611666268137460752526781683639904241593362871042101858778085659454886375581256945566669920105181729481269943842125299273644796988544743877616995837714648649528155676828025807217618130260425239208831872054011818029241909775988567556500922580904444766390649573558733714899807772283522189647342835543624145153013458327754624567556332825775262246358578941331389063032195384784685875046521662694169352823949134255398908427516118535659681996269315676500043714790511511031053121979773783792725355718497817920688309651896339720959058396139295808441065295442079962285855862031826913797674963495048880523480134900997931395085944298975563524786495513860163265262215369330412160412662117703253103732880689731179530194594493667893099919850938562984718479959378396474745301660889047263401790679753026233992282984667110985080916139645944491237175028410463163935845390890570398970730779384144366599000598768257815362159332164557612673462978410988312215411023181478813385591241296426978237888841087510848440792659284760673935312149762722648473073567455852154937160510307075863266529588815268344013656720626705240235793428016968697718276173573022813246141847053852949082178052093523415413691212536336546478375167220264896846967663735546450943621716581607293702325354605231063868122478518385813024898391445692696410558784872424399823659369159984348839873082665087285042912891968391234420711994295368895746757254250344646302207929556886237242652083347757985034793834982818074547063809258667693936551681137740854700477917975236100177255691619676443580198925047971637552636438662380286762197411128784480508894150948033636876557375138993278761867060150005883274858879822143766588281633388511201048615662241646036203675173095092441405377429955040926618793359964723055603154070499215528080441872403631346873611145839820497358586593130489829378051790517376200001125662695564985195181097386789222354551516411881148943868329300757210291001180561635231448658149602844630429866967917291117828968697956904029604691233502292193901395744754369325779931828826293932455861368684119372264975167847128533037817286159107681055782030984205399930206377964029873247382829497004711987233847509338897155809169111014178660096988455142326749160442272464726302407195549282679063856599724044353426766149581645066516255406881167500643015145693559299319874089753602011308092269209785930888723924766439719560721707888615365801853125955817028271976321705526953102479853680256197675901868958006066934257321693789293490357812942398156781065735854711495965195722308189962830359103751338325823280079127821516361387709332973800491032083738324979692457012354909110444419830373189915894537428820596887300424903530749327588544862307517419126065827700805775369293198640752703716214951841359042350652426357625176165459895272326199392175548963531716412269034949411815074608616835386501540402064125875604342295410191793582483710257723575182998527405811962749619393656204835317551818913023153966350194967244977254172727185797374177901853142045713014405530559054229022238541572680685164221996880963224376722030501024358425225658127327242090853485135048197183496676344816748278310676048477728691967360768192033442427753754346003881031354626819439786708168817306803061917619607247730894416528272337011096398554307507970292544136846975778977307093992826478188784049252872959768432321556884420977870312144476949948155045313257329305714927798126188302077936879681866636170108131961927353921433727610486316541428102460227858472676226462386263122334873697478313030284997968019529513422985731704607441848915523562239192382428154125165993592348024702543227885174316237709627622741853114366303198645471201987292417103484997975566250187634474291396742912354948361320413729045471998786630836973654074695621532472544425258348305701775627038848049951432849925415301174986248987622731677932195752223294830821490959073107749197168100932660168753663001880816148957324368366132412580767379133811603089741412573575865549103262185887153605395188458923028966798042545444180873003253849292842845752120826228736007558696840041931350708782409463292273466621778089090834405964956214944386008570645803800202185232216193514810938459318806279127740639558127230830340007176343303706671262969950465845920741992764461025950283591468330702419038649210330392322018098226786314035272155741760102435158821967518251513993218701373964149605482815959218935597568633617968215865991477763551886157427204652159438828515277806736180504670513022275867889089043234088665205898381633774621117909957208583207534420618102611385063685692159319303413183514113452631672502378944714577430489394063912179493164223626367343797707888312105786424684367126834907191837429495508882998558819896299667678241682914226765024472187630700118695948521614265506283452892841296050308361932128845220041397540045575814983765131216918677581751814785486096013597529442948383132413188504739269798504243434896839630685809903578347251444619309164385838387068842648174077529348618096287503577060556611073204741092836925974981313791893874997560524130862045009642609714693777753440916219621228901741032008890841738776368422136596518129356092110928814617736322181548487079060188202139933543593398349318355499569707908516177421787101818338278087357060263073751065532925981717025482611632564205759181727365719772354590914586465641251281872306526997020711034464253782002950468071076737818715106077458400799661661104012622185956523585688391527005815691309710021738924440765421773053654502870945510171820142284082518811862212241620407029218662881952150280677253349277353005055589081906072059913092094841563875097102858889675993793175072520980054029896179353215684463107913592247916923090151149558671491831970250884769241393286246501450495617770990898131304419426536488878661843715310403935280168551052920607855228928272371962785827330763015124080388110533423340609410236250090024656806790372680611781876518860572790067520225827895563271779798059251982705832918292611235402632800655939959413364459791535984211313764645667123119324365231380685804047712615622472759798059831736659973078068012364205404217984412628138582270477858672194544216254788197300326231111466647537175407641655678151423640996166918072325565531263520905546617213145844766979861032397377867263369870147584228921162522214328595720780687525012433133641685906055995577284228641949214004469268566738955390644763472600355099318709867467223445834489287102670654098391083437264898887790278870518480517329923401314929097533466292413170247735844924270747535853179635202096435446181254303043847437277004476312358581744825138011243755700599644863989098200676391183510809914686611678999407527518167316438703151201192387551089795678662844003116380252957326285239021838220053733409209693940843213375719531521671321935024888774978254671468742314416143290833331484574592582779998180744439658038095299485725903286981939279308735399054595914151349626795193682401412024610972202769723674039166657250583366645489813365906073672595841185978548665244277241377810681051066019333532868257627112031023757672900514339809479749287530032050053111919853361504686292258999703176553262082072151516222249172797845800776481478901386639137743844169273572532032882068492624964946379033343087220267047822021696164567297605373750329055789211977774766062986929930474801375436794626150162491351944096725845116758549123701414375931000700308230422363138153434160041468541629422197614214142040882784169833785122338793104850726545730507471849517095539961438028729876098730101799566471665671875595673513694852593012487598821083449364566110234249012282688714541567591421624231429348845578212702828353142288932012568609667861772816904287703231218393191945986156840941703830609943015480412513082066112403332735168903760195852529282048035257009176406584324980149037454633983883983709425036110223067024943644121388037593153490982392792445395409720315825042086408133639530376607311248683074571490185851249603735399165482736501495279785784990755560817740342811844606568554578421742751437010088370880453624301937304101842246722445428938529213289914294965709680565114585082735599141042760684219671208459190058678651957895966714011585730542294715450000126052867410482424184940834028428105675066447163487585409182799000711641060668873497818151994413467616686544357016674330409647754038488604559241625395865486018176522782991773785925360459396203305207260811316255977244018486183115889047316631566123251679060807437820938587245518253116031451650396278833741531708688010439470047289982169792554161562505038548537339298599125120481354930854128758253414367789076805795222642665107842422181209142761046266986923290902836463000692663723858429803586163116217688345857046566447489776563793908814911599012508617158084968386662208738423322165690346637948387496072780588684566366829842482308240090953161152498638840890027337515506975041317566133425554781211866426150625471272765016074088860500540538387635952699750504983806130330650216517485073982368352599028631234432164060541383475007052878250314317685823701887102106855307090116680611408187964794647287126076247480410392330262394175309451622523850267376720935249333331831956558705671549978066108129908301748972049619771777265265342235094846980727167410525709154289854275635979600044003183803456960886429000810313797873992967037999734193278921109721745774270929578575902242617134568005429463965913959616746648591741788604329066230112474946861598368114194568280330652023250832270650990967368208550919574417759442472525970995767218824262150006909864023227172321654338449495799602840132958265134237916913335455665072836714407860351341016268128051642786790890784517037316626430194530014262550336533250159274877281076457903602022150439315083210886048842919400025142298019370801968125648242739311409983626621324802161562421523185013891550733162743013782404796214031865025613483699118099395180469731519476269847990093978701408599009332388576412504547481166078901268557973013212473136111669080019378946808749625931357974781779768008821747177447910870778982737282984874643323489815986043767129762229024657606361042601364776997891261334867162788679818964527287011011199190399048289685874231605689507662488524015883254560111518574908221091500458950716803173478390672577038353831147838640916934638265180992681301762746144234507305123627035221637499028998940009022955629629013516832399966014874375726851979950452398475793073883829186842081039809018848949832378039394639473183133764851790141393085246107143723978864742854320052363949815796329080819777977558288373342278920457025993735132283159656151623723949844451621877321669664456289400247104652460526139653081600372877779135578605924621532072711516526606790023052082852760650709789329144770830477024906267183616953231053335193997026118944288546221497643735725222440921152114682378579138749830301765269885582141337975374104091080354928009180689836436468724850476009073857292828456628073473290588156609684842355394093521377765155060476026211754341251630453968618418142907507096306579127391839912762533614850714901782867992091018033419726470949545474224139797278181735662928823235329171099156692982015130883953623418990688603300181770123478133535862570556451702947933727164524703788793514239268027049865790472686571585422994506997619329975942480632512895022890614806193524783595754530460860881930944240003059621347425340038243166163471652859633263075285657753258306077593019537817156670095030060750942841986215972798980571352246410737956442352187268712222493489215882621622927547616040907154607794868616164939293604909765764442155478727061876425287950970314641518276202588113463381261723975087938100924470344395727148061073520211531786353726220645628613206224912522937907145990265259143284574872185253183943295175781662150012061159772222496606371568009675014573466638956471028050357582305277584986986456677185461992197283426441199009761693276035958521139634606238766790619005616966727846323757141231338722464806291597912194023890436120053828807878905470034114630159550741955242873868932955645193741436954174682578296742146893269987978322268387512467605886809565009127665533491943141556340868008913515270533239261799327482735938946525874789963150086286247861347271181063236294019708825141996555740458044308846622737716518307697114680620579273941111802114869721300928813763131883041151594112175129764052366684047390925418895258773064513391099823232521235717841239584387783702395604125452722414231327780297782174340667064058596645602179316525489041284748497714311141764929731865738144535768844865615659506531480705066367583266175714898431327624022740722336737639278431117515835926029475120980234619796872672291195336229943801992551592985012104077688473186733654565755567367497507581408972862801291210194935054826714607127785979272859359216019845431956676398615000364729584956958563302921215322636439961410700787483588704597239941794209013908357623617297104674887996133966501506821186154440938200741196548839070262794480330993600825583411971547494767479946065606265303474581927304454540459735601332810911442928044129409432891945191212788373703619485654508666273285687945965900781399203633319659181761144549686434376738929591418227827368094227014868327164352929853408655496839543526252453496114214386223080360063713015255201660241442095808006288285181931479870187201729981107614771547101742179970287022912493334287875146338530671710943503564224936952754996270149873471439092181551287602810716454560740426375200991304675610936467494303313050624565073808047417710434052099432232328062054633614432042857259948223915567507234479148537736253319907098820348470502541720310638390742291636070335175060036637244084366646725728548374196330488025641212813401324022578152714763612922788121159782779962233624583819660787511902520242132883390805388476569595164852964096542673328472967609947521254900091320604805664577687645714970881534153344617503286924449448263522563504892767729254646547275209133976186876316541542282073642618630571116606394712737228310280717015730978576936658654039283552786250811214313822717098111804781648423882580684036291982790770358873934040636078363250220604664666195554747743046181106482258591205611606371922554639283316562153244173827993919684948229450191467383096661929516176361201308590421057914632529979919404045266568142444762655534276219738501311460745560273569104335665706799999556862125655263896366824919696047272349867153629638052310557845561626465885451600563319649451390796774170404564285954142465334406178265644293431798117000529714296717682803596272534084235297739499024901423661490744067951968095115293947409028355118704420707999428047732914847189710637675190260774680137682168303394310400460207519841080308493118553632067041879582334034516576084999779603465082136362463504607713299262699932231887527266428962933308354766346273580356901328212649120251770219768325554044898070347854594354381475068095492286639541914713221511255839122252233117590872755828777639195843423926259618346264836208399570050689773729964459265406626559342510116296194390085892110763087406859018436601444028806547253578523876505925567792097964098078007413229234225019620923213385397506235103585209820529418122599423487406390997253401988431256008117992116367490734957615393545877999646892462842129321350791401001669561153089387539849861062323536869631129807474216023905676300447562218897140074658184710627280907673689585216680043103980809918259647422034351994434844825507507918022725323194931306691272370624213252138923805708886986020346786387745980530949858853462059891401446806292936614710151832403904528610792309749380010445960874727148255368019379071377957653293620721868219020940706130188847174117912511616364359877154176477470474163561546212493825847928426694336795608323032042490044929040024398138848872592026421507594362779462507649134767100945941063711641522321791506422995218890746877296108282016762187506100758326869447550736266343977320369898952414915427677930287823707053735878038925179636572142051736724538643923372004518817836203420320210026138924353865612054859397428239261439055409156992557151526039429265991377371579616708727043830861332648446200933698628231463783865775051673412608379290438541683410835331283814594875615188517162625905784918351273947240005653750901648085853802069711362950425674397464460752921537404609844253752839653914580118601872132162506307587613566216967170294115519480468726014448394328696277035701303910140925273114442227926092376724788151404627798324759970786680784343348395594790490739803440286068784685712770563635863576456771756685234085144821495269569737612391070577656085617051160317304007854417709625365837829215870723489948915918891042443233547387395037224400011838086379644498480868449389089078655999484341609110137335158142296847949158322496991326634152244283496697888789469652312170332000760196633645290504261805266393684086697361412455961362179233071986634070675410191819086407472384815416650709746414902880559972222807034817191124548555225065153425396125337520612782709670930870701680934458152722188015663488822524799858315986069298750893920527953537908983745529301167600547298364153089285922196101541874817951391726946230873363155091023338666301297682258778518372935488186478491498503414147862316580196569813294236291736846505653318491628889701618752915582297005862368047412018981459020953798531663977273701854977489773876919226101405176778714533798001769622032374772020529866593297502114313780241664013121905300931177309073784883940697381019040771559424495688109457769970319444960679795514450080361966092420690592106131126416743309528151209236657029979674146721756162608994243349611332593887717636985842099176342034674594722673885857113979015383451888514970170886491442628469951357920284814633737548605834153610063803984477115375924013209673986847686112359607522737087737542804155012457541405132743134271677346800888292359735382857746211869589974204508488690022826040891698569796711189499561395659872245394482960143538268712263589762635463399068415735494584939874437745396092671416693177790979583520904010126358777517073405416668201194306056718397969431931651978735296666040391766821025319509295607528337677184153356102268431604688697509552116291603193347461607460284700996070476172823257281402676373721593862264890167262182848588466695458525833430306294346477283387608019931535021824452946991612014801732294209605417631483157792113529556131782723090256021569347897103043394750456234183617169026265987668110135211794237797948347663065501454116115597960634107602898867180271061549077281694854689099785932916541313778428644898228329697323606371693653170373689997028854257947356383642025782086799360695186698144473629919028383334319152955876908892832216343856568862808834394626510147243115144719664679621473883714240434194300303256841588211622486404641226023961252734230559136867546870550763626197750855727663132879253410813959677462246662128756100099043773072812600074569256876581758216267492071347970485889272769720460712050349464563351346590197680422143666073791565315542845901408280394605824758731557051685655260013609446591208919890749329326176624215592864955924944787756221880569102813292787048507640994930250162412740054747375022932975068037183376447094174303411172259985527288706407641227864577994658027618448528648003688117037576184293654591538333102542057688846990872581316889980847929919501773518828241363647077363812942039180011126297500967362138768240867653348319343617289588082909570356608585670558624383016419477404691134260688357959886684632893185316562984476811856608071843961858389487786258545729443312699860899806129498764685088600211861914720320057530892039367114229218279785888812655200629288560079105586605208214140287705222518338868064481491729651916562651571065905621392467257526865917656427036347390695970036252621087045648769454961321837841976477801033178988594031886822996071792151534994262660265062551391180978324963097793561300150117944849239705426704665064300236057180243217438856837151385863157990597873430618510977297066910172420695949821148364206093883956515608336416339302486302820873990537718303503201708252548271282948258950461231188142054929817891694010310638822351166414203741016592370554873409732685104662004111792030383853680170736194102993479552927100671199074800103221866904283896908906189589426621916728064907705048321720242058923928252987317643401865576911395254395560656919635144782710419564668554747432370980981063397288369387429104052409831832381024209982637540983942877015702216636928533938990082904972898775238859122007090606181111424836794275470345109444672894631097216159871434569850247257954164607560890631521175273776091511622384676810028187817562739330429490763396373026909664753123074595140527183004966029313942088617254522754455545237366987140673446086539301270197187110769351757282604244333593089774369027213335884812062766412057933943578446541809796748013195022549145745328332254884998981043743967885731023055254722309634891424351574333853999604926407310870809185391198409274724137853662565438049916647149613061157244381266063330762185538866742369812891500626197360457421593342581308081376097271505218655874305405779204796994340017701910046404678038356487688256954968089392429161559871375505912789893047838099182661868469893908369824512031478773822687749920571508753244877193219193561184949609657984065250184583286187444985908241377248700469619336079540789087820090659235662607824351156426084947868384788456533612420599179272777227030086291072932254158206416972723831554896645885043939762318250861178754134627024875222320506514136826145865168335219259466056601296517149454064361633941102276736843398134192942102368986148064729446190176679867324994431010613081038372451960415686746294892213901387085022583995921099489237410461332434020026148768024998062429912905922385171205262061027415203365190292991435111200071457315183039382449320298260593945431508589191582269562015438184441794709518661947119777283986219878435292919785959217352453704405812065558810323037872343286128210750446663174504207474479016665069750495405746385727425146063968670799630115900745226297494744006124539656018157834610677343812295428911872513543222957132431396106582888642267974859681501294915438015187889907430194195992106064721219793073169436658647486570082504867306044532439473510380163081598761955596771517072110555783017549451892432183859836411599501283259448795700170860727729340081551361309318550280843329707629773519180974390732592988424902187874785812202350730069551319199246007563521374672610034134175711918895232161589088705347393593578566016705813650342258300753890372688686024430311246054067795842630842437460181726345616471756246251806037129574010883658455247210253264960743460357433516073903932392662363200688497926990357661050338302164544755641789265838045860937663494951043027693897511820657584057316252356931974180430746867392242228807457634575205315155503863347232272497584116954141170429480384605147348493068203200097217347529834237385564126912481453092437535615973769583032977808412119951747011578080343416213410966588025233224784520202652687984302668707182719752032988068888535340811009648100078767234609121529110278889469042156769162159330641432419857950093052726352376184748811631824607595995346449255477920541749225852492615985316066394889270404166012682802075682174016151133128407989331783636151151976902805902419177831310637309125358559490217321144011464350344134525145384938146367527332952128264944522263975050984474345887496272898914520468076724072391279964520597316553553157925190930803509861911207159082502756032658021636017251478746941053258125734715097312456834151874044177143167290194427692929391887074058979413184950593997527851051082369289399696043280002156289121642884060140128234030541947072610231145754550759055548423335762935996329723875154195336775412232827052095698431022592882854590965174114422320847497830262287986489195256107393989262368730719689434140610189139857160062464373353395067055997486493839215164538631543608933983071185105876863249247751877174754407983201088349989079109222850683370630009726765651432991887101373740013209781528551750831402217803313819688293189715856351950014770674078000171734381315779568154426282706540724081329986113549539792767993805207687252792439247670581020543788541493442706071973931248049829307091968288403400201813358758885120457372562944260450589534386319649169106256869458520365598478879926757725278907606086391794074858110153629728497560659633642297267611957408741244335142759944870366513338848895338277329155771545199491910594015271365463555851310380013372159491828904360894386708594623002947626571214379785070809990145985015474349084974061204522701174328218176800375030026238038158488126299928448689932830410766593427246522289091618948295078519176619442751023319437817020517885066367549879450538421584779111578487906139095897359268217158908271768015833398728295791845486831968684522739652757883914361977419801825451916817239721156680169403241961743947793987985226510973012337043459299412445133203018258773396693042848880629626613207987094966711139039724939742942238734058700120543497033863257833775235623071069572196801746498937115197608912584850354534502919593077735714655646381359310626572768150054003177801159148408686222293685465733691207391751288592112172620502829994870613814367517782770203617013798204734901421431973269714105045625943361435148212870240402023725490319817757469128392084649851087247533970360007560699041154562315210096044189604119664266308024119050275472726336623442095597759425716290899872382770904985974158666836618915698005079561362248185171713323951658908185194386825708587223076800050882820027931610402214847992301191106865540589886899701611788197665593386650657169566020139658095421325728077283607877454464051640189208738092981480932649328486559197931411193878472852044193442381598853589721049390227266379159803774792366298454029956441842334068506575179936147928330876213472624019006268362542564693328507529003363233828967082127548220882102620428532302958994770255500139678218344437271262843693666236979423523994353966424739037571283436248466741523677143683163472003162687325764636627534444754776955592794980942849392900708969287040355299022825381745236704499565983624510767610843831770536728773450567772065240706101660518916641078023432467971551681660150091220372387230214592257442891378775031514121253539233944682164768794074186915188762810487172724162552896165040222880851258824837712429537486850985238106067561787004848437066003975261879673194319896521315436467254780917685290402752590665891135745870913744799923730179386469883648935893922539497753526144702219869241429170296358828567428067610259866810042033854799772525376809266940813291008856687353276811176786322558143122278691685432133633476888140166602474439807593243898445591395574985710526349912703683862011940284023739295014560398405820373633122989264574161136379798800708437760101167990138577725503638915852648544387988823829476798327689342005865823072561560478682929130684144051150685573107003635835626344173147500982704013019762357533973638478156344459000318327514607972037811848542552161654796418279988626754156783277848304549069254639133639450009128788938740928333387331136644030877746936659411217335945051470360318547973036223240649717175279612385634722130831266925783478363992131933972434970048426358075678090069104807363518995587080490685754919841707563712924834826787515644065344650145941023287089283720874823777313563202744007971018695066778771392991919452675369985921310956556038290793057199942583817022114588046516218439942888438825236370966244093376972477271520628680447283154789657853966218523120623764815132550235722149105646449714390839639467197789930754646032989695492964546130108971359014895994886127108708871709459625758336621610994259834235683108751454380059574029919810822692443100383034422481535196993306778180853280402189727172590150360912069359946250554361807376572104021936096656462075472299134855417095090088722528625227105071719574773701481972607427875376502432311525105958006860357949518576931667856417248191280745402719424660209794048802498389546833892915912378394096096627188705170821506167311249933262240583749916951413869898445421854578634390275534408824254171868515221785788707957707056031121195537398327721348444821159289039736123688856634904781641762937335141273530242391623581324397012513232388698313193715959098705704577331144401134648409859261804181800853426432409184416243562923253179498156249013882578010520714735566600002120061717113151556286247433237055160829084183796883850472411096453344262870841103539389342236627145056655536320831214104213297998875314973062746523885353907297182889872655767939432628352538760460722164316742847485823015056720770448072503285432391602715955050131219403047081171171299282642318687797405450962800870590457076318332514745865887856107493265484818213657702383163740071488094445224179718957350519074136151246179527334611738214416820144776353337404171733777182028740657820644112723645908967560909258117608857267610012624476694234940670281339753431917634727170034077111211461932077768158277802629679292237852252749237984924381690041444612846816907621748245959695487577050574604268897516847863690901599466376753301276162924164055211710594860521713742696132368909945343066713715339155090532208889016955094572359738020760950075629768602007813024488175497146399342589720792418511303413047664232653191132824700603135394959071246979450153907286489015821473984116546270120333743788378706828221718323363245915462137654627046131523395265677417671943298304513967767082718895664128775164508196651756403039647779469120482158313910712314968382421040631152253498345818444277373815027554466858615140712963765715385880576615310505516950753615301359418983987845847473750855823321522410522660606052479326292075029212671955616990576343546088289332560217727950047461270479777430529812476977963899151556195600105839748682511853815131366521775105676854437858890364268343351352557369866311859549652904944836394022522105058390977602766604036215018502103463983119753708021157038175387476154650356406603168541532653744385141917456140929619393251014185721889413101231815502052259116994954540136813089270834716186847837465234689043059508039820063862833824767961882492720449633281182157153735896656582936943678071821514186827866558395530605602864368272322968033112823322788265029029582507052353243141746938977663358680094465890987451749675027077663884694386922836718347035252290595604672733774829344607089064425037637015788280839454326503711924291326509127899141509640953186549572325152427231104917944318943922848610318594703390410333319540008912055746406014649096027346946207027652946778087713258941134979071554858608097671279872463145436240589167921965219968462776857479392938878072765251592644261350672801987511309453845733659752751923500489471137128477352903513105973041113780464647729845448352871324228430783253489468617580560900735845979778552821315342344577574869765660841595983923558948729021627796565640146994100985889150925329352349428967458427299117423369181392515047255046717287218755250541868455671114762462582927200248370074643208020919181507708238336293980371651523047172110565412470197893273625220556879558726089876349531831518461980565684831307799655209217049149360793314270509887928154648250622973463369380459316395173905387832217568780064041350639604323816513564948145798555452145999966060097308649313537454191924383185818132699197851800640355629188601241712325145178897299625000152423590759194052404188722366730168941165011209321233254720903918991905800947370703122144928920707800860569694589533967306849000475496590900961775267523254119672944848526999001832680582081666629908944135478368446652375150844584156068444521267334724141139455335790756308016521056683610789186720823701696445341384347198796578761268479189076289089818526213826257892225275728034268518814353016863590587010518520967366452690635662390189765562083594824834330396394976632893453824960497372573619455981256769718939644438119953847037747642077220725575481092870752953843519086812969067859396389175903290052748580968644868953750227973022915030443854486999837200923923343036651341706790123741295514765123792380147748630390473096663537807919713480882334577521931962307440915152171051463995300589882228678646386745794138347325176506661849777315481922619537995486239594994065473160903173846055403943584431429966330314817519581962716747872548102916976570641209329179234133271733290844647105142127635272563055937983247344825828002708806734668443658609769610052171118016178952237429473686208755266458189549486229747684238777859295636681035560343162877031205718396190159524956009287317465729439774464846977361178508481169026981646071596651316437880315289937231278294542585388662121585684590933820206362542411077491832757123050497409908614957152910538654535212870254385721701024965817086571318868669810798481972697378822248805327185545676821529722037476973035405681011750229875467440023343479441033983417772504888379631930208315348730298746457000203719719895360152416886350123537203984791094607204055287103247423419565024489167201329203189385110355270998429013488843996314714489725468227209587675514041834907154362807900092232498230231838130076939716703015003705992342913734894140952998166224336706643220676293227410039987514030925261825649283251420320133045245741226330461668170329792975087700598666598520604956700283681386715640538015131498829151452443796773027175149687226417111372139847073309436165337967877271300926564600778750463491015931320059845904967661912929215363120889799325501594273831141220927023854109359407958565766287738414217982055125159743804711856127121981287400135611172948599987374606456739281897007407911091027103201565421312677359291499949016122435968691089093625741383539361997102762664626079137313458276947566875182984803893630408957982769960708449595274635078017219337177279604643122886011061311912777576203048897119734930376101644652533250948327501392536139737624426810253613319861862981064451639634974048458162156998800133453476422707006022200998308916039784317686801656342412594627881659395953433006802614325404192493218026054150138416035230900476082765828208979893281770765565288956228426598725413426284942119092121373985204417819821927538070925882309516221343568185721765347980321132567437243139113789793302024238204967823743229560018521588557870750889196649384327362519773194375457826087798538582939727345384464218003795589922273779825674020463754259929061390469867804464435050096205388266334643969866714407005631516125435037345029740148920164031670440983799697960943196495350712629821723894991619391731674723095963043517018326352776624361984619882552712306210392168966645398422565311715874663776125226566534206710615102527766467726758966019091965372943209476311401029740931184254679314261579101129847155261718056493147721581086509158384888672367831950454135875786321112822089021892400136467385808807489950937448950924834653351687979295233143753814768316693862888528043432973889585922972026936032296601191782572727126755930367316575673771281081237622787176717721377489674062425749112508976843946377770009449340685475599206039608640997829793516101935916415000614830953246426010534310800222327094309052883457087225309970798818156489034018724269398060191518052406929200895206023943500719688347889561879279765560863543274249441496328891768917172087737685756690874083895679489524195146204521782115239734496389669282899609385271652076459268712085556714056248281702079508476849967625780652128413933244263917435267909256212559348521715814880370631867599917269222813099960245489483718998400923735430800078386550112119422319288634621516363991422319934908500469138604589463222902247155337112296273884946916212016966308961569246281151778521064336438782502499734116974066933476523351868885791997546894150885034245687436337552875399860061497244276980689274004103553469656716972893460487655794008523296554836142498335578618818457606573855189494441484086906860190442839319364077663587377013084583437939060992962004277461866795390638078528766902124397298522602590765670422025269671057933504856768912362927782166268632164950244622803787982041554822453717424806182164382930178045184420563367984970729432866975896097387948884321455296282190526420883065018225311114233759275957021867828262031447284705623388449967989882896969608325585119682148245732041281510587344896058513368792160644450366125129503871104883406959901094728526373122399793198143580810779107689284597602265026310337951232365315256968244919742254766942927664697844867265815158591378419127850218051190582195277468878395108588280025172032602456188759130290701670402126943408533643838519625984438546597813787978441813583829310761877069456747883777756672952148871567049588761834704760237226895396826373293310797419499091836433806656295411787800475408795903273199612169758893073413154971369773277720830284666982932850391920856761771439460503221530913670530288457645108393228811657856334276083714935634248185166876277091421710950089774378254256525541690243930506724960525952076368489562121756822220586600765504092931706030906953953437079765687931057277945438476115518103180612983868091363137366511024712318688938105100787543810226714976112438541824682829837085694452119760747771198147828280489954623676704294442125757611252804037592458938325793490156109119407056291403214503355320652842311438966586165821469040575243805253031878084872582083603848512891971614085930682176588774460710139202136209269637542086035995375525669734342408309380250467871213255463139546252319768769442272293572632918000350923650986173148563224283299153196274059018367089809979769168781278011123513731394796615963493211896316054659056262790202257963804577533226461862609697216956001288882301239126839225581941366982623795894626733298228197503329602989343205040156241989057794874423348779884115769786555724235519679666045312922964812131191047058344293967406218098236566274699299468821309317205490806372221170021266842071735625098273607012693855685940996164511741506144791926272328610965074488930171978299715372194481431838592115371652922052418971071741240663286580044851830907698048922040993294610329323939159363224807705352048218748260202530617650117738749508440544189144901366475707986832393164073649366137516053086903193657039077092593058616742347132914825129011593062157947298803639993526519896241231107702936122450343454683717565169828405399306367958177649466876307840008263016597962551115633164490168745219483210885629975236087999249586779028236681082358382599830166132717236761789874352620372653367423253083896666368867953646404603964369029412089541921299327051109744148988930725776037435031322093149529001944861762441353049644060390097202364581920199335962261547316541822280410873102637373835460377740990062724426146576838893468574991060855930616222124636972068287571102729970550709643319265259868974550649002131816702965094585191309538469156081673112987895084067509004396047279094463497230519196826657595702417465006562155247802416309790625331838612736597759474745497264426245742736849705799822408560590645475711977219602692771771071299458587759672218426814215812087750319101523724366063777007694058338739258128252534012739929555914781963890995728411695302710788190830835253719214689433218967271515861899778972793459610407975330018555033226061841219788210793816311481412895385368172802982652971406861504143750968371015206097541353115212324782595827552859476651815667121070606196480189695444925429368774661164496879750341281778196106789512985949584426434082644354187718687586528728450992508838891041147915977065762520597233032393956252613341873061823203433598444049378034511902818549918728130489862282849856073401225760161484132179306135745686438886157995980229178143232188551422960196721670753660728364746317158779437816464348267670353829794807460796306611818904225969473160425792563240997638322576242591880572438604097005450300073389304442972741156034719325217670902799948708946583169440083048566046631081673378659481454403052926636293587717096364937098554157152768079069247747301612049980245552891515445113705637681523839456633572823778847247508350526636479761845172389422944156242566462881529320350792331645785326259325408391763826994400430736755676937541951367841330524365913948891571003086343454271741189868626066848976648110369553997180027637437906789806783671832632485023591419220758864995878448840011967824635890592597548254387934966906947131659798851713861694643472810203142822214209304257265223526319272581283551191617736814598540958430909815395832253654971959371773953150409254067986065340347045547734802046216744271203335434401297714458176966301797951007901123956768909981007978054029956829625277129464322731151207066446731364742291730041078464427325130448403811901512610156221224766720155943980992595900590433813034386183824244135954053378734855351297910137007014048754668073422797220773096249950350333878923599428967192445047848966395248421036732512372697993332929354191388879491797233761906800442994632999602024899531546545647705586783134461577063363119077033286935286219908406616194382472869587232497124629791889693609439345304610904796617743766486012086527496449470126302736126204741751908368661894927473272207877061863713052250895248015292821533354211062060387415451876138993903151634776398037521766588367832008415924856680456923620075736465401643587904928720577859939685355903889020785193866853501299652563278527040347599527618395506045988234591836281421756452179501547349461682726291136596732526451151802037485865992856140196825387142895991860766598702833921985586298032102141245447442600052772701733011368247426182073437858321053244949609155313227908447066603573634286272171547944544348870666700719704440689557708263397381559267015543373186020757079584762003876879477853879315093663461820769314146305568557871891503361904128518836114130422301202161649345046727761003158736315661514855450040128262231768523352181940315050341612143953520009898773638078749699260671320032922581756120376323136506637856468844912654637978251916677929587843546000268605824219434930943799588029806064769759229612357000033488625965280050674013510513656805986291243090813138914572434326213363964114950384558400941903156317255181544796041651663693591989986280974980158161482899436528754325965788143144408592705554387075001021225315170412488130623852613420545687143067877464146389009853060687078962939262787063504995259169839396249197201673355560291208768913035315399504038845175983861719951478820974281278947482112883917327641781173679127910561212499589460834334676135648180605941668513421063600199356652149152015097743123442661198378542105760890087051336542113821069892411870819589714134827008420824609692123550577469320474391387248545350374327922380210895955831504274647510607486581474561599307303098209982103133325819925816974410388020356409752801528734416922247288618690176288936594742188016961126722667379655394855191538279881357799982704943126585674295959019946370257906558984519639773506308170442837502549832587030219033855185623259759177669556105521924701888632211125751853583299399510385157747010706838920461657970205879983502639887961286177929301504984309040630608090649978787404667694540584597165636078545681887327446436315652894679870118255406233924388843923658948545520399349310047380368300270641465485705355493357366498326851001268377769902790077488997559407731364882292027277477957571781825020303956961178610760917827517837991663608859451574737663728810512971752362381200303081392147153500392551853408783963000758911907575421890375395864747998428712492997287232063006596926673344501555325075517632570988503389690857870886458479346698383268211582553948281389791845984021238534438293112420333842578059984209793123870508416496419223673442726012424123506366692562779466786257312349397514536779460439321334818631370283350873002230949087573730135594417987422942070350186801499139265939739576706446185921915518800831181404536635481226145517212611796078846722719050350950914705034658050784369166949130224150704682601552798478153145317237454749064847040009585358021430529160248919246953067469942696670898797311830300329733150103588932601274808522559754595747716254417632854281006050644475458039743892683593149681801274608158927739849337444791404856549820555782712045918313989976389253794831117448377755864133974676604113990689760012287592286972207480134917188340784765125441677193051068538034812428483164275330130237017210889979610084761813474273265143049858889102008990817377515824525664584119979621218446720505780952961440349575013237179100596763200991062231772082924276723999762717557998082481609563128050403837991387505494468915157725225486295342416227682567051038773648330377712515067478939110198632440165469394417860344843453187948551637138676101096920421166131505787727169298025045213159030681056069639815040058251115890744148917163241353614443012868281280421181060004051886064601792003733985091122846716397088127385234641242837911608447814831498658552940801122676784582301761879134638187868517525896225585748886037616551977568924571573893131550671210290864394269765180407553017236239400938357619850662126349857872729267206189816949129053574652746780747256358538465920242315365793838352120366925063316727994468498319510615104518069907217349255927000107182025362245345375785733953027370826990975900087283974102216896835836119598355075515845715349961673332650908553073625871058113069446639614360636467001105475925851990947071089951789966399300988788127947832847671758973806612478568682220472445569240695693982059078680600036791823672218205245006800055400038791757832424579686531803978345299466010599714283863386805838343204927559072375158621406137101112262355961039990471585864137442446808810212020112527954166884825956684430545390831403522702608156604964172670487258973931454231506362753268155445361074598017839780637721387646837762801831385922259285172217950087744876366178994082133111707325574363115658246822486102385239898363914027943004274495900795251001556381456746343107274041007297916799902657529834587690924797099148778464641125158701707883690012668847136336070470433083243322057677889442865789589214370070486291836591660845918647478192758994555872504844586703620889721043216622517501184543532160985444377747645822384795029242871762787558584231141743392987064520718240914853314813957608483875798995319209422578456958586271364926866731124417882859787325282678434543228984093823058477154441084482526938501974441308617542984579224631843637760451176826805714515642564606905765935634491689453075187742454212611628431294317963780329661235125739858889740789988878277223425989371065311000642086698369357435704186231588390889503525130628898322152983394292008698274517122012780374964840160860835979617330952674133420639409638253801645994976258032131018783327253014489848628909618047720971373260123898933862633536869702085758497023719855343539075992048708533377909568000290470896515396543625627755775208664224392071025473328614732014254836969958765656408338232953456083104261036377406427349368279783546890587595838561220242451741801767187690239605185415177008388882014389889358422776326480867686779257521160344374632885379362468008332898228262901834151044587609540871145548049829838289354558736300206947058425914511423866871284045447089713186829030959979912620755894057325218851947741100096264595910605316467538197409112519494438059011103675880222530617292270415467399480350980620258792296788401560468247998077610047903288334018756485972016865800089701422093117976748796091039760213046668143797650641115156551375379201509063956748526288751425400800132593234092345958882152944936388444715052291803513205899285206685145430804894863887127472039510316335313508268495078908790196182556380081210046670429113988806209931174538844395161669171200143182371950489119104391850797493722866489641679418262894815919806619443106723116677750351638806913156086285356691491282243115996956402877028752402190675764482101747068308908085825488541049751160302641076833946395533173527061919331443848541881131370095540061190669278519432368629478731208558835276807515502071775964232085959220153405015880561527169744437258915534762218596745205718350078727544484579493924929623303414193259697375628046028338250957810613942843888426074257153528468662645193927011228735942276902821566382635033377938764668384627871207249642038846859018700975867152376233970194052940130741412233011201997365310845955580657144474612182599775966477582302835764524173555926512815889025120750243310907114327129052921661058490416450562892275142207610864110881567406523049486075274709813785605218870573815957019372565622915988208336929347787485180202092111424279396215205796204411517929442887814329283629462020720962207848047342872527277390930576635171798563067588341751707356024418277529931061920108594623360645362896077257337939952770207384609185665545057539393017873365573704472522010177461227868517966474781392839095274631705031823528303795517536133144068002927732222568306461996917722650083142150410574079077590257954373744763815352414660136953912984805150116248571397552459861163223857198294539474496025906555549664531852521690181057526881606211353614290698434211255495184704577200277680438651197933842478584660941505828985319576535322878064940252829065454172158235927264207849361059866453182719900029733206396855619785393488880695988257150460310938499004187421623241286165408967957346915496766068474167392519862300296263705439176677677023228855354796114434624265072810597839499766322301388331634398062522653666452364661688297095834494719033461797618088790121569569790228232366311057718097247967082354567371354513019703989898082408918584377882694253024184360796379005848505934103678245851507847042313093796537745157699030291881740510341707525732035116546887526650628100345883682839209987129006613177647598968513545151366509122375088018263899591473426440607824932449977795822550300843642745672212016963903525178682163694866292033475949154194752917514190665774420689713604122196095619862216495148567956161249320484083850659233426761058865830697657406915904266819903073823040270830781300190192261033740231535234756593645397376806688841105391937671423228728949339206169475347237227790141497643857092946040829519519302878618561386126260141467745837573451203606762048398700489485450888042064770628810523753153380110124362391451161636499307253596322149424312503633285585471628900325102027055416858664762330266266832741950959922145613021465196089712766472048247205531441184028485509756626067974995254192973357375783518686347798159289958453170928885275321444985786917237722074157897380936097891114768610634590876226558505913122416065096378584622562914268384697643681047151767454548259841619757573293335618514147015270636350407719568754313859981086122648597220102027064777367412735689237266531662557338399572512441496854271338371145206362505933505500326921377744282056890942979386698181911854212992646441552372011856938257153170650324815566861383898424743700137628346540558785087064806759707861904617687455798667455352633744582384833263433506680720864821248173574908234387549209551894506962672155460292627910554282157357346507944663714945981427554268599210711744428224422956723629947020601824107729056481605417897739900370292355089419283504105554889421796458128240134018857130940421225863043535536872142624142014257860577663120627135243675577939446635209493123473103110892331209012587105373172132413503774375467883399137225772918982774775490051265766720272719050384353300874163067021521074184977646438477101284381731577612913110336128047954189560201766055588768302908148942560355620164529311642633754648884231927312343816995381556522500647338910911861218544544191681537580061525708307483865537104701331462640760140143419840218387780555812068145175397707704765979450814975699834436859194084698916054400257962960673200564882686653099352237549229640384622443227292426443041348119207976053959097734585955416997779774244900866467035903348344451474090037960082450357693974750081736508315272448520117081197505902260705812137327455319369597991096617806852755688070201265637302333689867975025600930395163373905722254582633076571736500621401259148978507848904368109392328475108978986991892584561890398874696793600820511325251478669344909452473511026149761299416351626747946487563405469923064185773281447678036167819897309402804595466837125542588352519829450640596624310223467617475912880397765524575268515333493163557688124511536989304836954612000504811537949569751416511704259380823367980167791459804290581894591884148317939532092403916059859182169698856332071982072919549942634438142147979110868123059119137298772282487771514249492404695664629306451503081359482199234653039685586717060573966461964032684498663614806400999082723350780603851246300767482958986241723316142646884902409049977876184388480413212006847418323627091051025655882557378364078929197697494555262891816432488465951418007666800210234833349113392881246823030712210140496036882181940944039743299855983463005758318774838531861504821579018152342547168415701196913435116941478351560310770031647695364990637997431745143188578249320718284185588889484415730168278054922696102434571690859928642545004397126733657161145455036509846911914417722602017221053861080187268669646629960038094366473165500637398849667875930300152603517016262489123470429804867348079621084043270527924973020006620240642776178123456455700079095591904480967874798335765714673582202531284637433453689047326865424642564566201343005103123636981615524997048680457467899275723993792811983951005355997299693058708017045245888835421060973435473438195028870362379769207251476233199198319840262719823796923873944967977800022566367546681115043786501913738560721956409057808190837392174769910123274666773530704236769094101090205381913454766358690558275714950615460069603424470856237584552019768070586229158103537355849145720413728360314709601663056603824079666667750897278739927111083947570237343644442657255362256345802636542388043355813142079320893830665597302406482407946115421481250331928501257531196851338446877606724366463560978846588254315151186509263649279443807480311780729180459283442121377154972285930695120020614595283840904308508822290643246550745025254371976619158099344031460657262007604346283940097224038997708402166090390145682550225649333523372862468892129908544814848536785358108985943824264194311787163968515247302248777254652976845254717692496032997151258911588141494095047260344831964510270997036775058322963276568511287713506420288584578811659405238206513393410107707571029049067123561367051569644055463611324715166393576112187315293338537265199029307425548945759010875244667261148932723865613855260754491291321574815277689917072977050804399512268986396554318609162214277957669327204170719502091178920189907038117471005743145015096642303526205831201561869724367617454942431303432289911806685650674022046947759207535273470259653271582489162861377493126812448990216635835087452830632662983844555292945811789612371806438114707876254285470917916592483839009521592528139516895609132270664922867445914790386280603133274546007110254683291235091058660523851430503079518925603640136563082322580642337549394382354833469436515350718279029117738962346711373760763330136442461413769256478217042326602501248324038231071323153989443120770078860225496761292855296142896339766560945556522365203601737242951334155943650587272450469810290609898509543662659369741677215330801836968940779969678582419855864525816114945429623091542447997651265900203785256820851732943941346194622769346910253991964185357747557997276055246361668489270832736468013818414069297412448411081056673377492379040246604642888428991700004063614939155982114898991622208297056263340421468484449199785363650545473303466357428304536598065948991271628669676632498816464885009203041942107518963234927542529225025993723232905789263522377453728294597624015392101281271589720366831841339674388127803088980932926058537294152545762677441831812853005625022290350336910791874499547383153525569363131152677612325857383171422420778291405819059468033682447308094212826523926189426920772637485063158672013748999130296197407581497960999950388396715019805268521732860613665221766911903331775004149812221542694528834756804916542020148342336124448422091264435784681142468206505502247900615561836578361178214985973721639828533224899349978732689681527931330213828975954526779048335764007994192244469660402686013413110990641828319851600667494439094236525586299190216842898269175101453757799169384497913465006136567385942577428217113828521976275469014747628147223380914273240422163404778294954031537418732220642652405398605261820917483918223767978496580943727347007802569534249488479451511283868240315905501200868405265464444534930078521285634927906996823423626533422922297998095126417128256036971598759626143532551793011259113709832439688159920258684349687575252751615366672144208371992214779598283950799228421865084704806563171848586905317451865512415858180565587067286261055488037780735649570989757209244110206913141387772030842972231393902457234785766048881759591699845994266451597615506545615244690776515795090547325089394295620185819650625294472651495068050084686393297558559284222939556050108555152765388052566349532979471403435005703668555315412388774919205879812022989493763106185370299175594203349844055144834427133311604082505464599198157391521639787111025677073011830171395741280082964388420548883885269817356461495944395020088061704365315034336089306667241552003402314255925244106934911333402659126926177485484477447274092821449676873831256213998498430924632442133156953679638902999089098316324661768226642556693977815569894666453708913108585967878010505925661536615828220596322683304990048375400394881916259975383790684209117629888558291854749770108839203441470905965110731402393927318726796581606332163921984279025959315022220372105910068917244852105422618201253278188466015436011112278733056857518810063078755919485865905309855140638510178076198923283325827060126532865860768156349300483437235161287706079573161638843352358243362662641299976234088541754664020779395901733636364838266767253755426538213625526792093956303554963027529844436043487076403605564591410363754018139180849465903732014123701542483178394103293291556678031913864211888922024452808033135978587322336512929698599831339380980992146929908003199009738537090481879823345679471607158898857999392130893177655771592658914458186052755852657131641043226801731000037757398802190174205853725221531317987589339710371528600104314856954486455142729512300261794916974469332516005326297368892601400651314222670201699110928775340770080705724179082264397916742803485413327601698721783937782897959756279712906846532029277326832751642291532661574587624150360675293116004521974878623583675274039966825381717355530025168743288189866264258892616258186840047091262856847620857705263071291895614202917433376737996064842522853611974031785106759345251422312321458668542302394767804065018866568548754747602848738755250931874227219744413199575259521006427797516577469374248256821137297601063030020516717013102686536334531825487508394271433448622654036683061084404643990962856643045708904908332272030919863429434283851418690126460608681072909374798088671992303792558808534673077968455281832787439294895475610219617262990347396097400698833464755405499574661772351483239170007121562644460625774986837984161685690311173688576471973814088350575940621652781182468939712474303589770996728476753693102711543818625784631844356183092490707202181167359021397857914991933959823184564851238483031504943594395712048153808915797305238659906406965745723290575452211083548657041622350687594246081032991358093953861962667494720846951185474076015657726598114907012702356753946547018189640354567829738319800008111275418282084627719538565314227774054274178744761354739252783681057875206365069079225584769634053492010595878024641439307256898309192861725875824745981309046466677030841426020220080051865108840808550633527503245397469224314209187937519721999668919711076935134532216039724911404782908126094224870243189822541917389706401235801663341176565719724419072807568931885478059739105855730132015949772094364119870214487295310595003299662173718362543176676253225876074754947398379491875253009150531637372766259013710833334070368835315316427188775382435896779304699882568181400388788343173639710904416468479905659706887736361240044305482669314296266213173857347355556416332171722932504519056629631867216304787183246000791613694797470030632748510749201098758795241040333442272290902657952095371748789018845743109065731633664390352707324041389049361379711223157457793984386003777032110713029330561461116976905763327515343377113414719587346623389357211707700291621915771155856834213120474407793569316881264927874864007413017437992721422575716128884349408231844069840393789091025591251450540042307328991859747608193123391812693937413027506510703163320913333838378785576471612822551089839513971712034130614239099331724992010151224441032900381719135378851004080292550765056517627430921498650234477171609706245790413080211992686778949797659378225601651549717293483809983125631267367634800441159876844034488337019013397549570352525319843812572434843921206845198309904916655237438570202983113133340189251281371360879294992801218089686101221129851926097925334857495302469675019093397928284303039806347092718579071262400772366146571508796343348281192377126563345766476759304536788993627560934839957564183041813830857771957826220884145826801261257920845341101566380017927463776301102744361643029135180888735936713255348533622170619847266055284474328041500623181341089101232756430077930396607499342047957527405792418876411853700221315706949406928421692056139169729691826719270163019867557739042474768186608484198441562308454479722148284506408328068530945907165360665397113675994622745119760354319772401128638864398342753959620007950983871129686388500231804420925051038089864119859191457056293018857578934092893882172808218186693642478950745326555717409204461786913582719557351029164743998239142087790892050955016739132227504752169099058033801810038128358551391472368814009293548034602318500131748662821946678645132203285420573272022359904792931247736516226860371497608722067489152516710134893013536168563545965874893468686173037135078408665050804081785346279086762361334216569738942240410542663118559241476853177958630466920354063355828186571041597123750425469910227142766443267565357396409247898919833069108956995510177942498817716409684787148602529926951786210221127124969285126117091117650371723952943051829756418742268968673180348605642010211658629504329208457414334048961269820598008452655720303174635680450534801307537200285382676436612140352461111485008181687502359323451508412068524657493044200785164210776088239112534079775036366453592461296393370596664602975161273062398964187948800143923975964828460478622356202783996161662366448648961719271279760959698905878097043273235668004178241876787820776924961216894682505668067489733903312206179570912765805841855219541781908250595687567496688544828233536860232611783120721831265078813521831104217324010875416467523693022318529720215554399890238577885735664085742919208118587394662993430931887600085533041028865043889302211005729626471240905800117641009759261503277549863343295090247276426800646901349505920113033094947665145736450115363013033211961297242320026862345124875429327916680741297907359284900127219593092392143503264717810019003687209279060714642806270914279512776375391074309377729806486131306083182560307455372908015759633509072098260559384146921314456386929917675796853092004154905091056060970861824635436288247222573066367386505706533579040714501389169180367445259784447789355655491210826943645531748078862397390906768203230359180192760264775653503936987306075624431472865446705624269093029563966410739883052942485370721652073106853538431765520581715164789622187347891186222999506703066201591487238480319480249484982673225662092582014702515929720912299795407225357360886707212003712668039607013423383613877962635099210641848537384700756276549813419094202752936301709036533263250324821517753870817733590617446799969120357397149469010761894509613745534979590509856623665943893170836783278160275860640768599151676759343655399922975809687435505075776832554371656972813790530904299399443354425690344643642398081646084643542307098820218601962339221280249554263817567213543722411638873730873161308170400354907384705277567515230539868787975464777790433320002184825501588223357067665271175278274439436329596835542605511692902383468513515397245763340914397718664709909261474076941449161353757359111411483000667445000384779433163884882962655775841501800598307461199459195553433881107110655120405757831364578667064104645531894504624933178808128837759079724091732702861037803796864140795201821193813922623202980485604541142640816141538037983884962214022045260445672102266007207379340474787499871636212112670319146587469766578862088985316801803448420545749056498737136738125266255005401395021261592014521025813049363574028153652769221952078599862178631083036703244664294013502313817212856378545109150693045992682025257133333969033564752861742726672416858998145519637047266965343902916310522603167443583609839188179590539968967557189712678544375581439117053628654237580091039120805453624723419373045403722535807903821949471917096202703821651331717812865325206653443551726829549973919993603189924570083166802324369265448564278672167458790512694543050344529559553049023546023472360342631290994312320505280820570145593198380758434203701770515207992291649507028929057779617045242861589827371187988377141803337056460408622092907953936220652731073802669533845404367446444269988655216208228606419540070704222130770650228759950302455216235271499353970159362435172525306679550026631375107163125538643386750965847897433552409537816165076794546976458001344995775652708909609179873204277564848430052833073824083261335918959251601291374284360602586943889184930775006838038587050848333898694783186894957893803164458494481626851936777152621597903937562675443784527292622350119905871071123993993527632681280034086768775470452026492496650911071131143289856471166687214745199852069143603336836006587759908212423804630528497289402240552213948102263747724969867973398909701437811490336369820584983752422090486755997543355057567720927987748312986133861368122203375757305865692785429152060557215725992813893315186348869550221744457043812850768853532566938604686573462901150432943831153829815090254624520196056867653394795595644446625140964671841210540878064339862120820040156707267918551706583758436517280407210259303326926562705430426357755265556006593689177407519610261048270128776275962615001009163821415241278860348181303867551773549124438598669397097519935701745395907041969509704588729693366541461345331897452648517422233331058019868273012579717164120577274130799309209229307717156327077359954529494110466786311300809095132359422525237688591758713866156884260132110743743942941707409083535213351858628842839418663006449556390172776242994447613793028984144823830069575132209286467490537377887967736828404720350160546677819524947732022807333421398385941909304763000931637186154403869806318575630602137224678267408328191381665672481335086579493817263269988999733599345269526254684596100860322363768898534208784707774650700262642487681670857616428776153251050930170600617391975260405646655788971191244179181536577690371806676635232171176693451350850485100088768398211497735504632133643575675977690459910515272450127592553885914244399519238808248975473962082588585787346670659081163740143943233285739460350938613926182014228832783205404517855810971444507759231631767137167665216454467420500352333277763433372338209595126887716669769872642209887505741811081762709544888102262013827991398736727317988656343803378118774516275484293093847752066046187551315820738413348022965018648828621066641783790938796042032007257416050624738777391014344621763648859184087254273883884151762906911214752660739683798222617857246007335535835627500440474296542804090188744760688974262322785997957765414993644873201114949371478614803323039406532527357809749194245821988121079143542334918829578802415149294541935499642362668899097322899161943072800157446370449648071156529354853768646535993138651622199163677604691102839794072967012484647823223673170106504146594017653726653093982412494739680913255306766675150448025562995083178543434494208724288024943314794893843074913531737965399968816708957269395420005998878198550646557636298995577039337267837129492675786838916446548798648793442370735590442876803004796131510911909429396942148770348362395002166438597870444014739344069472699881648054573488717619437591195708224730322714411976914938257947532662866641620491646868427851066524246831253678088620665466649592662242859313630520915646197203795115959698206650713720160235608509569753485363094338134167014280978112958080633385358957695083815365870325437524482993730398485158701134513951511335797428198912109834641871512956126182062976670678582632623870453953832267400324954494066962519624533090915003973363325601248491509511333551765437285889608829329450608621212184819776257781380749343660791828125267048712445125827032410513442021938264980120423516854443537143923063960588818659566412895559612166584677947252594408955738763919191632550347812989631213003640063865547388099478111701438233449736952792839442075319413691203240060744104212226825935685994458094191446473950908409651090839757337529175383212592132199369762950709600070141424578692227098452717186365259399114050313159444379332557088548026305342044237672531015542035724832397995406858712778554373127064032397090228678492127818751887486749350982055354381546770266478266311295077855512235556812340549724004254068096073243589275439824990580140255592575010454571239491070943303244975958980668286540447824559303067410051893594592422926780310267350158451394032234479329249631798088346806477777672718807726587442061375069216682598479909595848732288693104811791867587404276905732314243530186849625456235669648469037674745357886039350817695269195452701574463064332165468122830278895240272304114190224369039220020479200765064788644014209922907857285726049925140756486765969076784938243238469501137619696711368182853014108922649331004880832446384870894417962051368881283362307120886674209440632186310541835155333551916659048885818960207693267384535093711319471684206703271803589225548834468223791020434289878408982952055197692653350664382776735603090300633327392278520945901899272176009748315909851463358987020116864412540244551020472696667542468715949477805958795804246316564161553535173793499812450912743643734333683194939393280072770409032237439958608844323869447638449513250329133269096921512988897863826434269188208775067786761498840625135238624274486382166333243364601232601916169007517359235621523286496850201222565126423130963226414329309286799836127196295622811274030884669331954280383015324050649671815908368791679359037906062438643170539545738306576574232762488036080525707043036346254738061783339691252913961774332291637458452504878283635341349356185622832829545987470300443034906137883784290574488922507479062278991273257597855936869369751337400482887374752139914970742414906734037281446510511310482304937743568186933311034148455489817284458164421120643425994359843150334713620010518829862670109417325152729711284883136554857391199520414844544682679497316812787774062681085073172715723083924593589475904197392333389627034896827516779540571134212661433741130962895047162648657082903980332433043011747245398951258198284441493671236017185041118217772610258963542474988086777823658441966501839453109521613675278961635954948199048876186979825556171208302016134045583873043076352095837292114672168524772283799347708206496945702223268438740380571027573566404352481319588919968798026918457340101886493484149399997472189979064654917986329798381889727285477208245981366522568660389384809459072653720953846704918653664049953869901900085408232458295829618118844210189169846495206043910252353200974258311002458580125912065631224412428574437520314773106174419026212212685986214635059628436095058262260089970320705109871859578937169863990379764197275363475701870186049743656152430054942465917152675347643010334640730988888987740533101220177018188260013912363846538887969587611555774195875275788620055883279155998574419265729317976254795838897982991135189096297333718751615724452057335603885289451921703636683717067201826829558352196243098577560286509258893394309892925273541998942385259154583778084079646595097112153903384553434386348172501115515820429920201077123857959783908778438073586522187211425706034737444975160978254455838584354285728507025227012096311184859837903167692558070340635384516520953641921689327741329239783376495515715266432303359896611212659240909765384499835502604135907585600661434628181179884280935956685158602414373118757425447624878825682080105304863511862771454569422430725395329567334667048017166442095960553047759571347735530435783407487441614944844410898207205018814591454109646842404973257688893046703812763506053445314777885831123475844671861629618474704560191737710015552825552790604050307865406080661136570712849259906622880502452053573999421770283716771682399979914048158784315673485512970936214008319117111491065002306269850188199160808723615709028124869935252844329531364508773828071088959323701667441441500389015714538023667625642079768751303089419771328660222475759862721056488243895684630127550212095504279823560749942754803921038382829314838681916486854864423152184590091183958036211300606893700619890844420620534334982699143591462134211583490734039587797688929488465125111301687586244905735019663517332113023505950178619457781696798756985213506393183504322060485024796890884346114631363775071565115744217407139648221587681299803672306567178696339510806465565800718601130966419646352805831020766241865656135150167733722315843938003809618353264031132214673050544253776057705225387387777224602941982022351259099686062004579246933536345112066671624040932783622762467551369951435002439448848567045606114290299992326614016115357257247969048458252634183103685597914636365680595915578932898178918699852007828110044520634051993932878306540445637510296779319798784729007956930749853627061905508293563298510514581149035072912680101754536967517944264831523760901991414841759160083231133814443765670716642957155359729941564642232286659801445500694701563470461319579133624210313745457649977941728635912615048755998636639588515794586681407075429979031014253571270560586118622958068595020380609492673566943187988397765141714322763977699768176258195747139758888089707538134824553117142373696579344953236533124909141334583817995347552315432516345758960510700235339656771791619474787096230313335233497257903683592175880824454776270061115953879687551415529676536090888300344708081771110599943225336714785847614902190811452619080434434614776445821404132872316082072776289644291055505960530100441837049241117224351314988267053798905863331741232088261505295689198751167226982800598346721781618836976563011839750530137319110664688224110173996226715418116968247407975933434834610223071213695434467763766679402186729835657828890483029666383092685842344593139598064650455269156496117185108931302252314743622299488117194322978477533258802116901559462216436612837644122028764382132941817003465382754725190357619846225972275971182268473502139332209895416607162253747060448383936464726491000337190046367577068730208862817234382534793212128778495591714936756647219563512604621594739257646310032665896319494738003312013589602050558072436774970397446277484859671984954279107555558872032622826195127083872658417126248807113871106784142533927558199040974608374871456907202167477139521638622882728753295467593766085066386957521069762798847061314093728347408877098025468352355068971905863070726333492035880093158694370468893026561112539812461864501376426095690357862574248334856976206238660714221790975569345141628029517169458381596786886242844552849170433687413466471107492880127162127850326654017652160320577029358496523925406859796728865924710962594772427367090927916883047636902633993441547107558109286081923566761780925776177294443430403576114909242262313890019557735263500071834769031176868682421130050154268911588066416337395089793435659056433953224654149309159493763571748751827353009934815551749685794065091203450289344764886272596030136252874508399958348036903961057559960039564816430802130234111845395040024985501634340976591590202606366030002718118035698477252849961539454990011591317261939560954373008141346694591232479497358840898497669799526114882476198705670086383876622121893683260864310607661585132959678087801261111290302863145294703530380055419470442111398928442859836610101915347780165972267266208445996491688189318478617840997324578019149101264270080011316653378328443586204834871272950101413177377302628979523259355646652096847739046896467262590354432050154177267934211729353544251279215943625910584459032709376852938812553267763363413045296461323518984292280867495390899544159798555131652650415425204153071511676687728136669893198169614699713940123824208495018556965727120451837821412276522895935501327168681653373656879144041659399784112257930045182647814919041936754412078147894791984135449908139324043271412080503863942158230586151177666516014451338465857778402487624664466966856390518266728210928703386355811457440283762187291937835245633834101949176193809552360451570912910277092939243661492093580825366313317275569406745385470550806027368555167586045289822835778116831622118117117462629794773960087407842856908495791340329755299013878775935120094429332609020028713200361427691863447934069395476652457297787065392230714657658225520998513460715924963424154337315162800907706454749162437408438162305746054353601464070407604455847726986910343085422507014222661726766029563403346730852464478602226682705790917496287031408369555387201117072683563277561508005301590801867447233671079030010076573317386293272939892753190662550875881298293116589676454812259244989676967686247882681126838433905395529497430475982372559356816842864183459363048276101714468087536608934864269074408970778872100129894866672046088218232894936650280607648370573034364031783479999397088012901498843262775717757158695572900475375444795398491863108620760988861087146174518770349096061363461279656819211456252856931500149272272017201926057684384759896619475006089448250225502325222093367303467556213478653157876668725213599017527042858885729201069056235584489448626294239741402364504993004857005737269152458945114760418205923390609896496119904522998134208638297202824113418452614931021780555579327592827366823921295739499956690152098838432911618464736884605156948245794059906781558949300834733830055485102725034046283584337303483885414279291881076315769817175097757609570596602956305983572448058099368480345022479322977746363245431672766453682319402335460717522039307153302442800067709996127258399219026910657082968851710987891382779981342367115240781627005589125427650819442165898729320396167512137328376758663423929531666076050805819822129752750302805997698343701718857353451360963065929952838362350847949559233580853181041656505142833967781189942520673790370533434678241976933320998180337922735115679061736852584514025080537014156276919039381980849976448597728477325871573833791450823258450204589159978585948061140060044831067158820892019390264788837787649648105291361400632035590371935228827004782272283346440000879658723947120591937100335391072060393968592638182049269510423278177759015963733834931430291839976946420917296618586579503041769942429892819763200312589973369362664358277877886800871181898078734563060043630568771691225402432463709301784664493702584810336816136332502865588236737470351463449865111208245194984728015793880536137726065157966746414271460593669525879839606182050438256753214050469143245109222699908191734823211859761061904145042873973593742712736124115568557070642358376901210906904055256316378476998014032703724978498528460172267228852612349649771833824758320980343647163251515278423271311767398088656502004457037754471717990985036173099550990480811023931482681603181346375397833449539249868503237363940464780280287820378587022868368156327846030202191567295407861072409766512491682662741284606813760488954123166171540764208076766730863930097027840896916808567560040161382206594803481331003908588261804700432718346781804394708866543250682149216757700305317542472717196392476117202168895399891995202923072054464663222623495007093287520618553457939328188686183819906752768405327598457484718844931055075482820007894301971005365905190201620003023307804029151975242140973154300332454902731540976800363048877639352629989706172207261221468674549318289585502116501786207385656458855960293378554281994539276578086591717211891812301573324701599834222748810067626255898539299271448811655264288953511107396816235733189203033654455624211264686679771316107867934988379234746409531751286288951138220303708013514355932370698025736239211762049618309775484379625409785515961215091848096646335635596997661874110306514677796230107500748053333504833894153405883695981286511867398029347050460591798695010173731648954964627791831433940492691328094781151216626144458437216421941287730442459130784697269573054898697908321241059840890128771796990930824986995885023606527540407272068855174587827934338866610711558333020563543703626354893783889719747684696129603961896025951717314215610970427843538323269357560489185840689167305278615081925022479692966516186653170263677934752336976409243734240130919202544359777534175811473942277057861309045549683094565528633596513053118732080358606023943874846491225917941790801868108275600643516819898241028969269233670780620929849624952778792460432385426197437189137890594619027621754848278509568220832099702750368449619154728633209282876984086476629142402221377654467857909268418239899356346709337169101974692720338932760884825882951285094252307704320825114653825486514233565530694812201386031591766722441037550398144324747270088627072661676760476836431194104783220013475563428117059621650092732232540768935558234285665569146552651895619319645606091684696166497323748591890116253893935835762381186439580896293094257433738073260266596325632204711084057259600837936552044415179653461323198687549656883940296043226427765622244797207687108753614480599386884785494744406752990537187460055011478077526613361780483970268892736361666276635814298291125192562598391675278573167737625089228982123059634672427762349759448936213135666337291249574208818371235727642759106305664740851646462919491832327608151708077472041094191604669265926688494119477359805916054859829981982046374463348935231858539258642533684224453397395848012823232688606963808202240187195819076692778463483749148970487453110577213604560329631447458329646633945402494835965338470692555173852941891602342357172215458388356098079424181853060801238955373545865328126700907855911937160442546939027489244661275543594846333057913119038925075787082929372003570915056941795684979558741920491559234872608059943412751866292545790334720670862765482185717726901157024181594585704367605253342905578814362589816719246568427462490650661130746815494815443386782606574143422315364882684433704070549256564758424319057702702654170329406918990580631012374012619669560495699791232734119851660620762524913875458362872789817238718152339955871915167762220954077439244118585514971457671485221610163944609126432009264495208071671904487746074102573378726210001519412095255798754024961379907882480892474574573774585339512970688135866036077248930052135395153006818389906324230260905604233697578493446202675370274043881632447403280479024062946392638604301395248963267882443508885783209229628769662258390183928975242117011964361562996821960197353772174022036752465309956947348717939963012436999033052745650973264688133137781367434011693437483206361316181944408235023455000183155760883433730256569778894979082110644801018345165698208299961199057021732289855240282063958868148451145491798208109157012113095147326291008554056378662936473850303770120135637078008128375383433933497193651628753848752262575706794239478821546518038840202236307527086980551466945014686092167184561346081568430334450145142207335097159981290496973534850212750553964301883516656954965568264713821079871949176339399558770998178921619111911189712898146544621792690599283029971384903619854934374920161640349690480599253266151004432169289670226935833386407823606511734710689012711771717298487588056061972869943491410906465747366723724433750066029155001179116100709227426179229941012330128473199891422406220285338131665330533753198784494792182048767832094805145591684501316113749967694314560131474028227010787071950260153494153972878162283536978437646194921916976030545087566124573805303313744415644893641536190150524393337322640133054315568662462494415866816995436818111305728288887178652290972939274206427490219085788914927688904722555324167230664176471063170608094572871992551251972907780424038509004664094534444766272123150608686324601932975738383951392968505485684435337386205544083838161905632991995606623560562308390312237035285276056057705482295681654762759618355085129764138635614718235268204801296843527789219414417483539181789086743493808622311183213749456425012067729992201270061081650272521668951745936287095200673434922493852991735053173865612083853849685816150925133071382062666540912934199087508800692646259016061651322885729184687498973267664815437725728588747964185767090021885883495198423140438329006741715937856647456692145355823171762381913661818807850447937897304923532198578752021671440466312315762940638080589099586884726272816782556211196509770823494102253046071506061449945338253829780412292982093862497648003369848795899850671818237394705957475557523723150887067171801017052515661425750372473723709832494720256359971074697102957952785713616527432346605782208277173155785830786146245491889158488951369498722810820959239737858590111040361443340958299863169254044433720589198416278526300828837316266627079477530949720684968563043270604851777255316664228331873104377075199924187393787701366202691101996329337984646421543244109752258450157576280626956242142903950315381970773834863870658948599201410815669057363885169058298565182410760790710905439106998322450516741399080154598533414297958427910033963552773707956843317665752341369562784480466638277808785104928813095997048769294315595578988660328993811924543128867507923280111602623482601987555536240665976322478442005090327702127122205009865399505797509367742253554760048686957606937246976758017561908369109077705708963513661004706609467922938410093304697037693740857716650833486911913612666128799159487531737587582023404204631638874106841515094888541069981715991737891295892579280275617962328227628440963004877967490260485243028607352433002997616829566298543550592262298356965627310093101474872543223241772486734544605438758569780882482224872239274074368547130719577079378306428512259331717343327000883608056272057746122143088146597038100042002537380787781292709911332506535222541849427951923917352119530936294859548422074101513661609065853991700868192345851257789985044264571816193516798258319019447592334927658094093029025190719730287904399568047863305512641951728957971546360998236159196070488074800081639191030653646839007250698932469781144367837167051541437042864630790002020429587974708329602895100963182064882278171369768296550741906669959104001479613749285755171502143961111234631456277303474345134301186060904207161659061607946444883079264975622632769045917082569910588039732118186983238412781752011925631172582701094819660921732964218041552599116794356432580463366709932591319539319867325531036150857933932607152443146691870050830054302951621485487374236550696404427012648032118912354548703425812827344761153611112809793742691264315462373667458249234575243807170609000034411646938316405348583170743492779409074283364286858605744922377176696737400641610155391087949248177413805575342556546852750494620960909333278853071939346342629652318124074772896214214187257639705205006853360668919221956736297522404014728959060399187017626355708749299969134377329447669294407688867008224933056129984987363940337029508194235001662017505628417606653377235511685956883060743678254180255337851089231351605796128645460320368885507049124973236223349660101536601333883176334142309280479989868876968381455928877745714337446254732650956790915755688552481220268520157414999568380635621717135618179139204233676816456051919208293962879557266525477876765803060917011838810812019810960699919458466700929500196021663754697402613447052974814684915533854968662382465318614086555660117731427310068391325194385867463545883259186659315475413762273619930639066514158603663131399974589801187428596044455975852018659554648486478208510841858072313866410630535009174953994320655201229893168835865643839158187598952453925496555148954803350112122699332755017190984088231427679316432435378583908567609030306379250987858887971908040788212109335838216707437542149235115481091430462556534102155868382486778794644427412482098922536432676285029315405713396762814643786912525229071573509088209253602038598110608040558356226507440646049634692359577641507470159660205335577418188349612198228623382665073382947251417808820548691969703366275440473436760306864086841022626957581599934043582952855936896541834303691661737123986445893269034085275949945013997760012664537880700639589754264012613830724355517653553486860170104345242496468783064956974527311868979346679484630936818436756718534956807039794150051805373525248806613226161938499365658145915123614940450465723575309647693617294041678479478854030322786696459778361792432694665716698974556093370748503323805727753493608848177325987527743310999281430079264278121055132977927309600392641880092147543509796331667896166126266541131164461945495037547108549146266312286682721531233063193727836427385506124388229018439506532502824347656416710862755333343872035880606520558681418169631784222474896819006231462135195937497798359635280228231570590692472396712531707657675908806889998685301634188011818084043036598090854711850641425254409599343882944483043651361443292234694835137854784539446828619435358541794372915448919832765848730366754191481019332436811435265699167339075105853247877810351121963604555536828675376005390349900532464652521145737433555881001368323917666389634375882481206584040865392763383422477701027097600017494649840057701052360912579931944212440409081830490291765043539927220029160026432324033973325459522403555148992891116576191268318437364553669270645774865551955686518410224165611180590203391914289991032544092604569506497937254928638577368663988551541606057479360728403485417612843081450193976180943810900933795158485950766275445815928398056303159577549443790783887536036672336948829193278598322240997377252294249364006438946455979105557346560550569949641400330358542075097215263874843712513557908720421291170324351262395720898677044638364588473103882849080519295576233872843236204243228769213667823986930049538851750496397006491955575385892304295996650323462156068369303456669526472210045737718810510769678481117122492173000168492066925166440219291057760539872652084473944540729077465552767776157342034765966615509484126384984754528709391026695055914866140309271725816866635604316838376265225246826950770013543044152731790357775264942987523148101622024553812896727943408036047833499507070517608339754184965730199107039926352299319503549880488685241339222653874871265999253413985473565711069958414333443830370167277049810942356242888750573675142908904019127796899299393494381800573684983062313584440292511759122908649808344239536558143572154849118909288139174931021576370546293191927227712147703629048288922541296252051068557756058173737790722396225452262851107726991539995719013813142153683181099323479404435726379786772139186454987091864902941744126307975484390124561130561859550519907362020761072546724869519847726536481794526116858095215260125532143782506365689584337202266287211536699722579672728892737266779065802785296264300179346279708185772272598558139729397574179970034405287232257906182719573198298022303699102663293759806476279548994419440248902084932297733197248399659298032282922832073726547657713620318451090144786921019410103629859500863701819800712964568862261687185757976136428149734883728740767550269091976017201906586355348023686226639426504798951697044843769504681645641048008446550110677081176950108948143962467630318889165001870642753458948547768979302140794456017566119112841360431338439077334250098570589741798016740011851240276334634674730719633533676869608472195355464628576722388166391444773812979248295133526066724746341678158943917453779794467939174958395595916872239425509397393289858362654594223982815959267155080085243930295801360278405420019416302865559652440185445926796494629590257292787445876117819374701016404446113417666600084835961252576027113261866559547028670574697252710463882742863817496679121085627862895974652631050657733145062523310138630820198019246610596082199134014521192184102617374571612994961712527405646608347291861662804539271585799612743429825660526330694395520335180418087202975708504651605950008321116638390445879223410798807781617750249890888290250038959736787326203440355843312919263855253669298330749897800624928839018331421430132997677467429196936399745030707632774334435989222540861157140159737924284041527344719095249629341119759821817089336321005975660477130432078227995804171663043550408116000604255974281861917686098773213921767036988640211822567884853994443004578580987350982506311814232489579534944659034680387197852849082924711061778070984041965589233001728089139498540530130014646316711628255082256384179071221321639824435686563602129054235908276548214011894385327777009296775264136155713125397784502622705423985935627130123341186089494792033257642427901678473750086371204442588222622988018522817200123695406439255939973385753525375443656151548306555844104937364339600136474068826125692201908381617311677968031203668005655299228113706962067594187878581360198845246507947789514798828353276234626097416571904341450648354462582391193914762531557383353186593035989974199806647099852143100675577722241727771422768323063110176753971857011755372735813052737284264126847126674589157004105659999321148772149040705959546347834617458999160399350978210592129176010489819272756458163015400138277675781774993942839540651881305814108549160700028517787259417713390222804058056596672607904138863895582418951910597351892825721906507954314801113672743565188306731737099751655014653881105346500456537419615802007549330675061776003149424202087016639834814113965913334241989816341886323922754864485580866573993103947318134680118333514339226489751092414604159054378948902850258249365752105912409552380002870737090117071465866212958249744407107552114145329274073915564744797341601260631379216992509637603282610464530961594132449629253524122349825197568429403675248822570076257708239048467063685978456900376429816778527213849151266352819081469707678361861281006258760437177359437997380093953393441894627294028814084990058323763166576013726546630209604304435136508437635028851692305653695234216256145365387567463759355463134587926379334546551464361081732687844532033497115452288515867708328842578605687317610483246083932008302738999576289397727944669863459309351603601437595842152478480860348411294025878341623334226805036004841030129110908325805122039154773956696579459438449128966397599760372608361236138919314692846259136819074452808240288695157392780611739715093487975168066175684451479512494027650909368394502725605256395629578475977423014843701421842862816693918003959392582870511405711496064240481051428079248154265572060124671765212611480443050510753328617892247723585451662540165916703971735967577410316657232168098551817457446389948925159806256613453614984210201941905412060728459370545751399227987823070369794765706645575882336865149866110905609274259152850273243144862271856424203008336408297088403606795143742299995900101707967981893854288828486441875286229025460514398363424942961105522929109234969733408474215363835228099075692638899807421472921057379095614179462748801540586057093576679090445450559904042602908730226061907669036014882082854893364861983524826373832652004391651965910791941729732247836088208470654449573007846953493712427209921940483904181545708977649496930758202807049778196417098174781713453317187341283313600388222395701328049880890775457176960579533193290840397162046517947924295442249352699303262372599609283230149646928260476546192395968117802979074707211258489456495151478666016015517926726797353316092690519847384356477397962988100783077518518152156628657290720830969441043104516156340928435762431684920180484392258925526573534254109838392107053709113156509458098296051738599263569557189181291237787269827056018021576308229308908690300453799266164852507685976732302118277340552592885070680861215860413448210210000745862122725341185930988716610341677271444791658790045708108206123724018582472484792342071581250800527993700841453986252848486204177395706827304384727384180585277035544252659096638360409123302721950772264648332945137033317771052193776842029011476054877565633568952810828021449071168783710077547497756024077712245497399730811314254584658257055903511030612438499721116033057525582861067318518489760430423219619630806009049094440066938046681961196354208522042433575244525645870028948650879881692303129996085674296154020263020604044892734225685422128389320746832908589215278154375356271762155836095802084559139963435561948796095214807992790742928209503245895364916176005171924327778688836988606999840958661525257053003297786214523577105663977769242951394670024247968151198883052619273925697287651670221020923998393527558026431443885887435641306980920973792190099687508698996953490773170533571232000008021494434593199899142720732649800101706897278329558040760710446818972698648554645567667777534311144616057012894487787299098250766298212231098071825279042727867345880124252615689242065763430848434213338263908895826676682730840384646905275936863526621534038409163534641718908896420133985664571188988212770670682295793404897568455463009009876189365467368697638435083900076812100158918392510042883463131914359918532295374270612817115177529532526414852257539002707773332010378092568349272824016805294854362599421532917078922469338728682326264866156788533575871441460943458563514537933079643935947194146209823041158319729036112912338445030246350849033512485300214656060824750056075274534090891499962266990181203375092728888720900110929978753613958080041724880387474610643677896098991961059964971210268982098990988404054998248128889008361710752672318006814150987942373000410249082521486287212209173904160296137819626697036050139295146587980528828855350601495050526409383596422225315125051145373218262257723157235684150894115748619466339716267254401594245901312963889938853185519244336978492615443992146404081048780929992420907852016510467720230426721667637947785740555096186663936185173597626618472338086357031377518078299519064841471448087376839613340271215177826742560347214014240931147595190908700782916644227815903138917322425771278313807833643169689759597194009582700079345067476425369830665434711241925138420826232854246949078314976643504692446300748594539221353245265575104066929555056648285183430383530377524286614503195567248168473976101926381669992874487885382062790275631719088956118300686429130800240194368806552236797675666234801842181825043834722832407511933341449908595881175580725308530074536328891369653982673668447984757647200025428686775323469805584742737197272657147817373111543696832967004408130809596885296478720858265076154306135628154927707356328605066534080963786802114395547226337648465754465603436805009353665541669353493423003562805447617732207519618714641108807849448397258980954515136080359825969024886332778046857927702119162098079038772892949822761090785617843756450655171646118167492569067114132367009677743251102903397426603324531280256891838070974736910496779845183741166717555454441981463469675638235203306134709495482413727018076315924264288759568183833743883245084949967060269839127713819259963087412169649383302726406390532683700784570167618816501655232433576164622320041258440355050265523518864712409356125644034504576149373238864350785569215914977714108590736630542085980261827563893528268635003998346809614693427779381076091149668969041420457352901483514796955696101661748897189092841626895555163620236134134106602412229572233212006418823998244475769087454168120532554120093172017459108291572047458492784168926931092326520739751960362026680314445065546413590416712504255967222650874900526544191721637865552947683371337367454931799686102968359215488107763893799491433548731856648868518761123021740815714147998654936137961168687060809642487937905909478830396214910241590085784353531789310957001174516882296129803511124353052978510956325173194501848672430484302134752751634849911465312576269462591696859652480347899365514397026378163722699430429413969913128744464783110629953148030571518639509287292882539792194003222659181458014190705251472955712498309328154638635442007685043425853147781785952882147216860665226125698666569925602691200837268307309439535989420699853955829501282817601100999316485729235106993541495452006406977085621660877329442624676020215808311183072655077668249217319423718493404392003769969460032032647466344015336104399097925210707533370992925564910500089566234498774202493461196270237613700647375493659106879141589297094227350079146924903721916541932682646545085707856414570050604084841172134760697056219515300384300813049169574949253474214493977402188000582211452652406497702226300874665042143866463864868411803090295486285207437746636192099714427033554520819630082561259516437443573335470929637691665803151130903855534759628981025338462144724251569315924940697066666515156072534830111165718952516425298988369728543893255086941562001421954316478428520535512656530343549165162826075663383040690203125553782699297862712169935580117672818909484575904012943603306123962770098367576303123509592098763238358259931715486819957618896900008600708591207220652475660562644869928513754596825095140019290743986315596898599188537267892640211577961167176200828831925532697675411984872365491975273032064108790482083468290180768291199824390740263940981393503246799874641469560968542663800965947869181231849268345732896650638663431338729757331022377697973764910961313645313888656808213237863687108708716418289704861713657846714373311012714608696809101763136010151115916894079223121024972730460250310670296397435128047259460983557710438108173395112781369153438925920122400299833250780453956895533201539941706341661132878695422162641023241491353899840582420903612172613719970749030441158671558375595861394054837341213943767484750091131939901511125402543582979002416725759856789768862240917364898483947906712727485252563439000204651151168340042566660381878492220385411153175395475629535242278725544116515108057375133433035430825723534452036166473089274396437105727548994460762626902799285747985668570998317431450350880875842810116512206363370465921979136834745117215636381549346440910558718146732886366793802208641763884173249307354676630001527808040533173843395620024996987202113849739330738923899097872666973014060034747133234189364468296516040647106013130468261743162594542912722025236965785082754580538912274754286291632575541585497481077098609665500635165755917837460441365297541476704417839760926115966242922671738982181880097485937474626096518767669419050921310596753080118654588892720290206573335429185593812920211498089342890754596628064302326402555935468532906357162834723598205692819339273657062903806884789766996284708204857592076169055398491252981865222035126752532489268292777347839632595743969076592618231612005437895517080724051608446635856919285513450965865393263265103751898632068733793144158072491367747197415933029193364220502113015551214078296885834181090662158342384414776588117252197808632235460221178234925410681316967904757172189332569842671209240461787964026822640336887929943291252719556743514983652651636059657264844177219449679401900337275116343001883081700106828856250429985519798814308479527215892490177757824607203036954615914990580648122830424840519093477737775158908920799401543879139324463106755271898426265972847254125781909913383145797098664344134935198418010161399361111883316355326109010837498645546398222204527636685853705328088396210843044783532815356974571753772045653421258702189659211221398664802042062165856752769282117792154906576622193051223799646960231592244254317400473334625765270020249385481755898315202822931556321340240285243009764882139060637115430065214071999581621918026331495507100739490475703726149607905904892468331118534992092305770506114937289785045422103349233317103174451117398076890476090359565061307131564350485831381533435169192882875491221614632528827410617645510389389220743065858114393788751556987525969699482983234292642118022941685523880161276866658411393400366914184220790183631887872072826912662191647402973543356983873598865816955951164626148015215470273479258276407590435129508161530669536204798563502926187563756411893181595645820163643528876500119401671716054608421855288112169532414677787136280068619631261136080108255177712160469911332371830768110176327657271659899283810913619716759959333943128390695885253633904788552261815134167584239570909736823190070744097159141410872308706035360144212903458072266595181632908902668501298040332036153324756983273994505530554314083346118519213142596565054646167965818111136509409773833410195299794770564959460227524445065843239412613423240393696073952813898831518471603718259027236072481245833076971900870100390386969294213586466951806567230373394669711718548828934178538634490870675289110449781752714858951000855804877922513233347061791078420178402584827276465510616870530712605907134458365310330935115259948518522752515602389492346329462505718835041429491098626833234262601239210115793868915232590221928315918083747816178325669395048101022256660636774137584253762436664207470006561669642665805006512669916729702397864923598025025215020994524079521216049900995900432623510609444516473305454197838112177329075686906708770983271257568455541988080566374789836114327258026183108639291232606437816431285161045770102951544534287274454099884782601856138659631266736834071383632116681700483974839562078006034589745598080635363378166028120393862664454605979396298597440432665914269824734775286424900350548543798964938297210206011999795374000145199237482455888763212968158423121664015257760729709742440694752490134148847099062127802352206306124597686679880871192638039809924799832171552967362972264178954669163597065735817116247658171570116601918986436203021964212918321025622609339043984681110208049183303668643195584064866122960279248442903855810178977101496242195070919273227801313934427850189642360760308492945616941571515719505818530105529706928579898081938455840854619650412581725684195985113653840921000145370534551227632838031561763151515963099308886347756381591358114734801079696211954476336363066754018317640042733368826563407932764585387727111987573988465418023272250333187192394209859016653072799331823788013979760902070092569938691846252073306590284838591129915988325227190959524472679835878823957873746713943034503350713646480195495021754630864230796287286464803416884328607909015942871209363010850589155750064406757581455737788628727436029668306242296672245714152875614161617693759917053263513360381470822017437999131166076136705168774461582097386305610223733794940451848654818154368188148459786240882013807465864862755828785235354218201132285635641644752277229487495281166727930470152880283766448723277124687964699665527781896338202621227995102031101734505263641386950426122561991658422659744042355795276361582744089283333097943519726471988563449758074595289467931800184034390864531984310893861459607094446699636531284282011142613859438305149089236848557266567035022610772260715655286949137084976901676343135274697816506048511712786515062036099618657057687630273228606672437229620961729248871811467700555866402073729474194510332963023384123978304976977366258271357663038600871715022627224931874522623355067744942196992290877211583991630272823932762765688284245707345961918120468106739616657139105576798094506702931099646717524738023990845834496645713680047139396592652120896576729455718329979556126844275597955206074055630395687129477949529055510079064081092786219669949527563776322859612569740469151830790996237269294202690572964298140599283712694719169087563678205052226276573765749812828207361664422972274705661488756526886713371193005108424456077244812684362614106346692839993774729447390668027862742264968967563436284658351648361092741938886331905987896849264412823150524173998779523127058308339939577162478122634515630791580206211589928034916771147260352003957934784109687783795182910075077622138477602709502764586679537281458915693225993363640252639102748866664494205246946288693428827105837768200443442038358000935713390454192124948009978560111809883583975101296019338405164986260185523292790618637225567223945482280817126191334572079561410838465366927955171882332271579418599382695807313602611654652442847673526809609007142393188147676015397652901651202998025342648836981317465298934709452508430790367245066883193054147168470572923018702828300334437344972079644310817165735498051559752705742090908782111788801056273655778302311337160920198614803672136635957184464662955528339564018033693464114639432969915764942302393231290871151199353193904446129673238704246683942803602615324429569071286170506150732143344117895436678670378285955220961931794364532239540204869979297630683956451616858867873749467165125150287675756128902169755105643501882313871766928226891584927057731158622218077671839304695984814581698443842819120135712068424243741067207385088825398426175386614714478813525730311827742664548486282738530502608248282017595360427435682579161024960581165054668797514506193587069402603645217740119560953073860975477232918522996194463305977222445897344393681282491526002851973932258223198049004919087177589251628226880535620730800161464884006504146103078833862825042897768926066876517272001911589969283637013895655314310501743631781068659719513786748936283610944079383510125806674012069878344225816206209222578017862327205569254078245322315694229475488940773181213408255131218022703705337865465122031463660450132690401587879443758540816804561598733803128656797845597327805645408326216268619320212380055536979880424401856467515719896476749290239824908887082528806930560056096903892026974942986581493042301076570689401085978701201001256053594872594854200181779572372804030943657869862384895443829595267180479114588403353343939619791502273797637267152783656616826965939655049967799286516358940937673495611877768602204007524001737601037706932059722697394553724624064360743489680759043264952840456815656114163329308522884321851880503844115990774318221133413837488967318725873521775382633083281364126953209589662196925155583019766663760986433216756788157112228709477462525614768863098802144530741484437670554613671879253102899079897398620626818713082666717975730148033938428541665719459045571875354128271291886479413380327465264482660746245475091937001946647390519323753629788230620473557161880207500293233979940960509669396073171498718954631215572627791104976611414853792724297571080053298418486832987910971581245661481638642643921270629136751424453382851044684791146694814558763924627661113790558317454865940877037153315262427842611456943294159836222575778372945973516861755554117791129985164031040686843643856921117366398434224288544540820966494956880396833787103315848528853910873502878248778668246436973051779479091729668940967157653925908205488015639491250139242660185894529767993954323202070020278781141954250225474808216785080601691462705292755180307468755308778121102445174183272492179241354263423342132717473190622786364096920900240570465233308065695021001550237663590912509578947711106797082456229670519640443260776271156742812439389698085920609843036624381817383617107998093106910315738347934219380267610197963710432152534766039778793176687218133887209250881872076807777661470674258649350848353147031505803847537988401206401212236092172019830997389619656191818299501332404997049303109416769500899979258574143772998616192326054488399039195913492572253478031335480162171395537173470019668864153034626612645345844694589518622951092902659464620404647441146243324561124449609711903049759193009532232169222607698491385760834081208239898789748594820952732897212964053894648333333551503694190012117875217091251520370340182650954890606503705038032840463539312768129887621313001224674883645061858428709088037059149518677767120151440567180104110417454680891915865625909981637140264043629573786943863261957500122980623375307144865388726598775819710298264944401505265531496849542001467883027618980972706443684966451746235005830382267439295709485598655391327691332654622222840544608999546007752904446879778380193312317178225557686534519714070022968684542617260522911317618712387833943778113021186216451664159385525118189773060015687141767334485748061885624863373840404819023417450715818127401586493573097786591052596140630309618447140291293714235998382524330167921932196731939623678676372802188383202355554677073844754463758162279680988071637477617840155365934401016688867469061108038730472276652621114181784879497027930962137767642792258453114958149095791985321489540433320479988012712298922043455312046189368375867913438904758703247038317446220991452774725602156457631601762007268084632024010036496474846530884820271860162441786008965020762780676692285839418203492300187140217677083300892501441971654348841112733215963700591273333402431416692142891023267856284237955881266110421579975084216466344598865944716363054740180544767193540000676988270065088399729891761947334664204572896133446572596304708838059123336202798073531162202662358973926962342051441670894624035828675437870074801342128256782118328478868631813609303239481668982226405287698922396313909123215231427924232630667724795076452224816214636307954677282929734815738381051321513036621673084889930474879726718246272734055867898645754288412568678436790963918925859561141629638166016933054212412978192383673413974395891841951325343978356005555292829731009558478510297142580470056063562496348145524085961747983469970131032168456201857110025522590340895401752297960128243467055763384179094121883116695942415170047892509931351201201351183748928565543951682630168999441964384976703341927682887704496826233664317255608463232818717300796408511757946727387822956410204180173586379757364546427158075440310598223208753485853827215287610904087990607300339909228277515256504514249516377343031587108396210159400317946265328352109105423693457320715398265058845263134508390866071249398155906132806354834167561483038433690086844753939363769538647128951978912730876020440657466643442039384265994556688475451286127784015764503685367219449649180418581864259882540616745998424938380815038404321028802299778888275621441286773427972136921348307811935426200576028358132601694989095635263420647344231503495381935656997343194895674722885162443971518513869551405830912459215379524964506796311652997390199997413269993693209881984535127693433157601415450422433268029161186282837418686334827537572475065356057483103629689586584281670354615128039717575833858528935531190305027603446745678286206327238909469132575158462333663135235658492176025386673657876273947553408713104291904986342218937148053035247512510647364970716685306975900304487910672432387308533015603856959421002490198179959119064739921600945076477368373980053493870051294431598198501496136647861787666376089077598439437345209323493841060222834862968603510452768319243164159270283713164625660332075377475770088152614909265096185149980210266435390705172732096347148201149690449121795653497136555833353324730464820211294130824113267852078749918149091026109948223568517041729982583862326246558562859074532895390578714248972592924017626947766188133690021965338751597733138269154911793302483270558189335328348234079214085073770349130292460671890277274614668647774078961536543098134938000423002096711303734887298737439442163257859274539385594799517127612168493463966912603712657201112248639548847830082818869834841782705145827225492967166582751144995551081525916198857681753288411880424507118144619272622433218456103865094148670564044007698430632991382072744931980375304540138454801008756500959230705518009895038626196707910761112650083867601907578968447080263380264816021341856800086803292229434434263253443632808993910783585376461602581467202774419521872555473653881424745704223048659322154751497136080909955107703986369432303593164251228730184234494330480582864963255609079152665157449157824266358402858736898288140775466376315606516571292791852412057539979581569942393136780926784708099278164347234894524504516436930150092461025632450762039844105745316886175779922289399027429586041203608543990112573308651880206806285983132808433275068659908236637322838442787650592598397642759695386076372705813742996919909767951698469387359958629050974056591522474650874017272649214959447197793766009152567713455297942571415719932471133585077091349213094067217317969537529230510761892834696333056905699802533071771324113309380301066940333167790396542185633376055198281352359182199835690097295706964642798471151242268638744935038662710328147770366773789513226093328060219072726414743067846997842715519951716910587479520332971847174480083578932996057069013221305438505724145870006224803363512951834470262463657272566181697260070663830909907405213749861257999784405828151349690686177161665501892443038099426451471506140010072116862506353905119931804220914472683691246359724553149813059579092821333718659564848501365971183431587543938426621984562467314850320303670362217207995023562732826886573599819157511478651258329592368868885495238183535635486564297265650237705468729549906575097987472014770134198792006083020063684083407979575103058219293448475203738541232505594515996406609732649296642469721536967710318090313246482298665211183312828848453502598711053734415762840514314965252181205346395832278808174504767624519658896894624486827899058686537288779637331472279735941172662823810474717008394217596144449213961722051503081788198208860419795033539690781347543899823775526218100078219475243346215399667522825222317676356023254875536972091131537807287348479487142298559562201370977928124516052713168249444468291852184151385252379271069935417807370570756845995452348611260268775014028875342652856484699963562000514005870808762546110791445143765272064866883759139290215002675804304093502237358698852274179918229336651309654699401549586806670625352189449093722093963392172636128054625302935181220902522960498495476228123942032997477822306924651433680188733576390878241894555705872088577234050485623552668386176863218692766133742801791386441019027196044651988187229181421207575409681814343190488548258401345852537350125843077486259418210254841285024117995446260664389775251263383018253637073146747478886326832053666679853941051636531198251844907904946455916481641474050999983391903133535698111412080956492655846650913356533409713092073356649916375438336285418245607893850591633558384185628958441105784384407983128370316881012987622476563397698624179272106370450938486697504329825808878615816589419320971828472377594209517620841147391015449005836471612269158898947311925842497260775665455802985830439915026095576013933648840535228178821548448306655529508619413324642335019366477784142795563854319446138074382716619601138067232779446847447750557745891808363422404058520714803331225586503855188005288400861480429439428383529027110616803537222688105818617187370770517731759372304519045485779031898693492493075779501891874661945564003290505523313263524881859521086016031960071839863436353456838322935052094333181571851947158776609759536675676090758794650029395960744881395847467662551106853834598067490812049697438840962187606431732583982653306638632608963410479312197568956045209727481114521121386895352073125037404538949650811397473901587188289732956125221063739177958507562218478857052466727973542571309189329449640202594752433668947666747689050936362676305728735931505801462033695258741864286087505241792916477111855990847671205725996082782678519523990332542544473789531063823408563133475655159430026044985057046103751423611557161270551193380013782253973415539754777123087181262979223263208704741567414204604331328647580976635341029772933588593556579173788880924190112754684365514204927905904157688551993697803257368139117786256531996062372595176797970701345946765862923249377179290213725971626512893372870651901203985220900944808926633942029465907779663733631178042109785826733848713064537032937846931364909863496044891972775125787324820141906458367454195555494718910875838567367470306260650235957674137044784598614759655249372141206341218787011504942042133614712253796907147924893425292160949888763264160188624169854203555330155914818142845243002456163258976861705609549058941054099411450224983141228860782942329106739973306809662740491975202385535116598778684718598125703200433534016917562702093890440825977440918003585333539373840098342683602803126470991541433638737313984283729051808705742688062155844834487872379497050867796527378435991852090718537296842179943753964062673894241453726496529488580367397088902944552303101822131096307514560766699588662150939280516591808425635690446706020784411141135274963467044041425780085612507335216375119423469374810941253327476174058107262024817618716998385578223467938679909216886952338996500509791920308881668866458598907480405991113466636003762169422590304795723041475740007460702765313175614432270446883077697567777835666630811162454262569610474862050752934348821893578039351722950234594033472674607763503396034260830448175184302731625417444833270954620300644860907422501931678092806181897735629718378354418753648497029020104672302068406080773028250396600464392927417348909672711202551115400202164049512427489932298844031841206979874916489972913194292515077535556861987040696016074197846761223490891172604720015510500701544868318671850375378129968838314532246098930436481433509402989110838860982440959961461065801181481404206229169698487745990808345597209978145486011502676459780362597323802265298342179729796827898858185902839249813129665663248076046185692140546269083994431677151762431416811587811410030326858302844841680822346478632002652182558364536673745298156134363472933016176629984842444618067741574004382080998690383858500318972350947770427571060915302552476855453731090026368681139949636074895256592572828316708763821951254623559929015112491558819543205406324330509970785963479714094189390837304487482930305075763231351364299543015215210696335390271986659463814524134170195013966008585719641492833392606616251187351235442889088247971870474438941024264252387918564321265275788117198301491521277007614318919625222595821907021970247808708037939999861988740047020975692983438555704771264920734357850844575554817041387909594752038547995202304046873037619314648141526239429902198104931825977119295511258490353579793914224182383375458658461824469653289431735595012379700862514744794905277270668964174742909877213074592788921786447538783855036426152338794753047204225550433723452764225586425339067335855716028586414359732996844665862455428041682491690409607042549677963813810748549186597052826753730906336296131357430556391430636522901984105527862056193187885408242960020559184433628354624751915267520548287939658985362103500836831783656653388009624331450112308504342273305867441784945230258308213445179741125043403325872278451662541897211936967400997488508988190531564862094302168726375597867250068396763602714113256118711025882055081857258737912445770327717587969049215373229885351630727909467735990671629186440546398968215486638479169918844155428672878521732617676110973443924446755485947765518910235490263595508305817678588286143972141400947427844192215006431637345145705904751055397842511908300213912666954740922634511206912376307831923169018436713900477900251344756823656587751888898215572168534316042033899925072086312847067312126468024296148347456389564837062678388068711831480920797055750598167002402971258465085756966486064330207050336127047915881178700699257746386768457681382151407693637056548605377918602290823033284446622465096103924270114716083713729796130563359231279411026128147583596270733867008003059381794840043540617474074329607517474092663401885962357086539606403437577047756008898474982759588898707350664164919826097695736094838452894222179215595245824616194958233847303975968751527410991404367423483751082388606437598628471957213721737220421559744966071144894659653632073132709489515953567407326271819980772582980441974312287000012973263825757528659182625876747229540367277256143470783054504143218998392527019312215448108782255274670816927722101998703836203721119562863469680208445647149852894635477679527436218556724757120400151100113200537682517590568543149758381820256251671075258988705564116680490612859552083435134845393522563580134701962963732306504144254131341779936929854536196265093318939016557288067258118967089237056264169617286604259173400286173333307419513373468762504251458876005814206211744156931277292762580493931806086642822892874266098262780330843307780977446799492829253241869354426222820118343301244651007841595632401240904887423114898151018504648573837624987329714105180287057964919318531824214682108702531202178535893641829709061130782054225870434750385990368094612126300880213714543760678940239363530591545664614971110218638361471270839279499249393514358926995351290899440577848002938873960165532329870764725526961653380613766200331728639384292986047878335105836789417232626187994908041225919475327981889619786809823866200878271455369303424015129560420309930055593795105931906346402521813082763457692633079772247192158702148634639976044902284189074632825727773447358921400951222840931149271898227855537125354330204877505580328658534818363593058296425725733769701752431406612680205255556353836424746180078942227953524843721824630868117339047593755813004287786493638973458042393157580498532338868198522395913824048029506134163964883389039899280748662250128615184940440440997110650212652951513288686195708058761956928561196418133462944984940884873270501930234284302091197163272892268420528420376416446573159206120442810309453483491827579004650815940315616155347474067512409718367744074549323183821620189976465508530477712212312301976466886882664302661334363741568850287542759419630903534535973645927534042595895737207035449792368546603058494729678993694540213751369481109134735044059653676232758242566905808940518261331569003262823747477671383041752723705653687909182336600559181154483356124015520835748472283184454451960964313381654356097674196441846602301653395466807899701646700768168738610980785865678322533740720705232011277763817914109763408152799984912127548974172379537566211305159009557354583404075783807534252846363515904390111702859554714589110325030887593840341710987794574350968668579524724468274203410999632537168758765883425243564138310105022950067490745116668438025409587157428237133690041356964289052114717882728654556956790345223472757759012156197918756832089612766114116081509969461093325537411194130459790033594180025732086135252976065647192470241187559344536869269279100724489726707240985217604284041518075238393299616976920187027126666518302764549305255739571667258737440127985224358332471596060837773253353845973772337493128302085752598091081986317669064523008159218139451411053525051010402246957658178951159288424880889567054881313387162567146875311846116407330607880539274526248795450025803228882820326538824958185860084939780096143786456195288636125362725007000433855364482025127936644474572829628965217630436545032631375712353555692928693315852746387874861853450094300736337467124349399036705144084070002483880321944015673649546980795930590308748878181280242117414666105576137424944696817822446028384180836011701639524309793981732470027522532780082550795602959726257557825952057797205869583474096444001931178296648938202219508143603778933217158734803871433565471525725038017050123975437125334656884362168749391726020454966570220889881280452952864622846892299859469560809108716476963430390909137942011722431475034964820325272677777635862654915394591365717839885990900475550750707853149709815072381252286101154027094434655122705711812146234826946854525980924611413420775806960378780159374573036841563093841017338845833473373435681760759409201986097263163858523717913323802790912418127214657641767223190391186334628772043256308453379263111048255329266826092995030861605039020997771067555744741018849424488217405574366065324833505839777353295842435022397111821718447836394687863048868950965131462193708502775421253201646315014991007959536081912362347250442889577788985931220175526998097434225650300642075779705453074854098999782832137408294287182468627841809973119432432549153442123456232699725659269035812091826131915030068509233634337532301971857886482119262232295861973497181448793868887099475977172273921744375823365156256431210658450910680287537663029052355116650356024537673434415710578275732302493766571279626224819151027023905792758713984883745663193984917970006230577368187535216497178037261372126352869034980523840919985428480440144174421514814153465596112387575358454452959722428991908145573050597288818336091494065447644361467617588582658181122260910976056029629901187745816297281241076890182276014739576912945357522544180707474071727014964622659058234279821653832422794102168142955061111890216424256324107317655705583531750265376204737164489197425048099893157032592172555743266812836174341753194031641469681025213243454377458879751224016822418719282554069989703515284011870007008645630876997967857044887496604479580613526957524343891768344967967407252983383167580473613353604736705966988661199421891656986112188625549834504814533097753135853730999472274254859820751564789005456631515121954363760516967285236044996117303581408213789413139774404678128619522987780510217622232518602209123367124924484875626364064332955175076454084480111992360878036136916047556848203794455230435264277815974040774627737049996802683911634963017448234022845018855042243276623721851491844517136539383197839189593808182337974365184424819321132499978650407014236598310822785459100785024360237054341299789619945239072330781518352488717238597042413199219193643239216139383900578019324856694856110865843857413370462467299031340805727998177113182481805414126167084151020549096624731199293196435895403427207491691315069627978466749811948323579144557632848263477243913303771931730008841746522860923064722387611142024025924325575546915767115694368567399080192948632972622170567282221502466879964063811032558480654915993119552788471860550713372310675756699291541343061932990389127914007688744000399266418637840748653687959844471860933208718649148314063705280017721109721654065162908203631744910299121888848132333050215651848176052810761280173299573842689106677437674289224871995894950055822143387553895746775614975556821810634672761900587184965175262077852517633724083377971508323208745080710282801809852401657894147117556371211416497050263353321884516716153737037142073440913695146606014791399010861604052098034698246875334212673105096961949087501833510002351445841282222706104022505403596615191210460414744134295127054189453520245818121460135198963999012518877562205940806503526641503221258658356024120751222360435429807946860749455292515583646451758065838823068661936817066743173710430355993244032657688638982674671123959217977306649710480438402134896302281427765774771523927094908657510493140661285787449256054983109845897349198753515107067259299232484987729713798473497292924324444612211910194311284837639032955755754248594613957514308504596954380875759188572035122393105632008164203211948716094034972659249364529369984965136858865666287830740301989622114845227815065095080574746367341368061728218691392615582443005958818923117560862882150545945788602454870478247248967031661704464819141609380650975284129640942343235616029456017848871628215277836232445495140806284110590339598275017678483180220083211924340053327137745469408842770033475914357031569303152200443388348072913928876781009103898849960424210915399793445220514739145948712465828614455989745029854435463990132715664193434149731157863934021594769994103582817043165631862703427266589601622606884565023053410827541854187720889542156881792163626175281925993104632769862777748393162913883811067579607042662566729275584994280790521735937618763361263390388856504826016681237409631331438081579685781982876266184618445297923262086547321109331271934471850347664938782378844041508212209883492188461917229552142245223654218315981538092922389379072410829483303711829515232970803540115350516182746880034193391330765849701808082846500631802301404985862283221881495122244298944537425860313613029804453944462597013052696088713022996217588677794071401307379056670055039656445642349134464550589757047049964050033778742026218384946448201013144052433014522834980078495086894549501780118755522296715176448814848183700761121280595294234040023493085948055924166681058782390289064835486445603318288811818675472187540014522729211186996754283090992124638492357519674216158566526930121692367565415639469688541866123497058441835443430339914855281519980737052591361489547241425837624814184953836159432042215822742030721569302844279079104862970133675647074134639112107503561225477422178004597805590261726748928925924237685548161313067218579092652796794727557004791453473808708779027488245737224772716096031394643251024523040966047776523202876669141462316050694470063760033341574649448989582271446378030077827867661270301740167602284175133606776437604657382032663569877151371689841318937005114951096893291715100333953507612374096382280322032008828005326802981817309788786247649453302783207165275002774447806984783445775930121023725001505985135038210325886195888924755046995374875745324521326798403302762236142991179588491978723602723510657820205584348977891043420419109316439265397413596056394915064684404094237386241344767471183403755190297498674195248979462676940074629587467276410476863127076417956152885656768800822122881728819959661669535970747198803736547261358835184711014156797987333863243127780973893437730176260991143251668941228153727667994831092458339160119017776118398735864266785878590800334162704399804532795096815999705169320749699427894994234447261917481839259374058101176328486737479533808219592816963317552793192127235980196143612439937483808429545494055140478223635315045681651650336717800493351365897421056417552627691840682615902774740129764626508533211099541167829169595022331194612511568492644825045775671701003357997709065865286980694808880903788392833623184307231971210924536972867408787532031650321150909144555901298885380786849828407636556265141455838236200150295661455369808307568482119306956759897080891761154944406228980521892599090160297482482479551286467882854190293363278950955745167735767402471077808347813015575269480232455393566157975395904681844521935990715397017766285334407912167651149246279919536886622555792776738039656302245079172571580635891789472315396853560665423532342508399581127783028425034351268598509373683218602664853218218390317885027831179080904643217783404943412404781861294811122559043703691049125990252452086469566897651126501556232376927134660146450212099448632283986118264563334130016166445512728194790844076941253790522745157210324143976117665671365558125118370420989727952440545128061100964668315907900010334254293132137876337516935358351440876709664954290853088273159271545323899992643084947450034765236944008408239649660159712572442072265143867736723630755525836510032566847347884763408952164986278718442233388200056506064336507092440322365806866354025540686292265923163890802099035017482104069996158655980865236709071535090968773879200657927500994950405912949222733412140440934948489881687406407534526668813148123754520662841604548651199313966613544230613705437910040083648411719498816109918208619599161666448569989608458797028396249898834323108973397024459997603958573466340338133829959194381825238034501971487773078802143623031817273713484237652137782426170354888460104546879085987145648434185519162128830355160867555840163853881602591318625645635385014612646942779800237557097856109456161502831939278295297838841238983320315037394341404794929842432157332025551016397809516736130955640851144538066348493131119498799429809660753299276260269852385191458900331276711828730655531781365366331499726217316377540290955908694067392709232715396665948273721994159642318978907222365426453677224885941830540002825264133487246248112695072301818459981140960522355619624538520172193424488144062373787022134567472374331900320021647973044199079675450966551276700707889549078004996327848453142990284692244373218231222766808250670643229557945481170448043856160152593575881803065965383821122121539774501791728475193401131860043531152478876491190451330430076360577584174590204005470337244213214177421601698035846691478971559165474314230447493132498013014705064990624973141304395688539107263275428864704062428363399659916662451960566212661128631201029826833414831631685675126151748222245844245486916128394113774537482339233958305308975775378088543946794314200280901895338369222773501656480305769065299528678373084789408685913907287286514094585566610382279440576860570009314106378539935013076130228988108741583599307961105758437360273103983596280361705150763129853586049796872446927009820365105079068538843696497851848437489994189909659691143157820349930903305693010490932084794645008217025963983249367534314624314308021954784864713643840996743714839858893500507233414691401928952058483675891602056602968091780793119501509656398608503863706864571692248879642795961161094756487844780919179226677545379274237259349463832460991569679076008511668788019484824724694528169790843096042982510963110511608708556926335473330901239227476385281711375701683711328766205508930804974184917726075200795036504077247533638552850238764420100457796883511889411615045886545620767536786486497229013281663163573829542530404045420205282911201271262990864248060395766578145328795016963454570469625694508789386488056379513787246542553759911709770712118037617727793153370266572548552392338103424533317977072804400368858693814334904159468630298932128598791887524430521360158014119290966037190132965662240298026442256832657598880930844023526087929400154978427937697713947458966914375214849234201888735692405837395624337558766493876574083290716234523749167516416747692266557790294629999976882651379886949090168491791779809225238326270221742090023368503453788662614358236320048553923794156849830677586594264836523747282995064059301307375836986938834745872742434503096834443709145099886632109443466858501553064128928403246315302616188060374755627161589977052035055559693212989048628927322967844929733183466127492237182772330947441902554331350344756165927922783057202163444930146526388877594012861304247093756230431505698441853116794086639544269078684946058321882235861903443650652905061389754166462282256026583699821669429745969550849890098412899834238506542963077313935780575716038802499725552960229661522788314802799650233441020713632202665804047307068151329057787001406116069286605795629865285016750984371316331300764096392455110305147183802960905970668133012733793258778844335681000013462315480787106718654263590111768425909254775567373672306718307129479495826926526256561029210641682330006678430949619605384618904533346033736425876762822996532850423366313864886428342813196573503853411097083934678087147032106606644066807072041910035803277385310167249717095896197205353108468551851135328727096886596206139564542681417193448818813778973535610638979698746913879799529474691522509195508177279155823938687111784988098758487662725254746340503348806788243945763236758574362867655203968690459204162235177690053085991072525868717395293160599335067441698101672587840523710081670943527286229677529284208600498945143296069334558750474690282378833572223845395538810850904255576879822085744023673856782557485645654561672271789856279732394699522029947409696208855219091675980514289171397973776340162471351406859874563286016299210805824826294785539147314958963787154976857548531747023264720375568065901194243643818098675219399108513056413294438804154560370452729449488768800987851651885232641207591127909017414742474533867138958560995471017478212383056677361220233168311267699080793746557542519604763652633131116255545818519701463754096401559926429449536749108972215581848564304359373483606255861358609484676065352362104945244300736405062909951945453242441767628893285012633739911890274345248401904663532887285775049520205766624801937945424657233432155027967535113980014824291163683390434211195990794918241312025996119819251342796804761259507898908650690056825303917476645817957222519825021331066158321641241740877906503442301339455483305163880986892937508113782281769788308505313399409599487278117068754845505671646054933066149059135538897303576715585483447159482451116205942477454917863903730227250591235879795539316434011623443549666117952831970010160730105744056399270224523478112718931057398901911389845705944807614174627784216210331442546044622482548422124602338266379679624101604971850016861898612995149390375290190462534309879729938503711360266847830100251518322110256455868881608549077817767951098224673588899404379086627218637160918293434159835216822865538280018544449974351119327952867646060914342778289886899631607454619119609358474615750241434293718339193813240143365945181827430817379656740172550893821047284371680898976365553822444473002204408735569295399184706622666591773306662756530387620918800371782149702812522529166749771697282581204291997089612793576059871396638396731648699321557018800788021589822424858953352218626170937716950616467974670013483556845784417748896900661902219247648631214518099132378883361118334397300795195314780502201543301511406558140269517574649217985312302057316380843998756230848248804079910194672831863995331759078995021102415528620157837942365538215666082481638701847213769126687238219200748682414754072318222627422794354235988870112444566562173504409091924139328806749522125312535315703799826555318713052961564961684100414792773827226511519332826626950566902303815828509187831852535797530767729906801235955559559354734359126036445671379498364128189878784877139973172961441091716206328152020909425465673198351760511252930360219017526901020691598084053020869028968138825911562004436566292468787472703529916961141039093654048097328623077313666962013742794956261683625658713859789656989906828115571759799637928914474623115241440188974194669195730354028275890282147962252532036706903622238521102893572272224643067150656885220883649231525276615490898960060901028567973668546939712854550292739173419167558883504172951152765151717596700415627858131253960043353683555250068309463825760182109298332429334599262784739616099980039892407682533968772093683976289945142950855291594215990030054853318147458891356702311354986045030414176109424044272375487829044665661509758562902552923362730583270345913590941702342665104274890430381053757942446305781752930455449147295057258324780507798787076706902725847483281162979888143437958091383307123299969056351583257732366665093181938221265195367760793318720480946665018613772248372819376707650620021059211250806831899686532119559152875578907220722424461864510255486128397746641176846618621684676062451771669700840175949527213043738122004096694939769731097802558055094366353640480993518730475411905881159846908402269973407895221759903208470866841822269846620699495163530517555930708838386873786770588337151571618409415684681695006295031877679398699817173309561478214970457777551112306046834064866431838296904449468189643657507302304497752134792702252651130107322642109083231853970981298941378586877083851675849914540897323988607326922208258836748797404029957833519028128067938268316679995653502748106914831631405346521307721641393537825585353707176279043728803083949334701994132560800400305102912439301388270873115551306679699799107768154085542168386225528715961536366799563506620091279632278852556706334948972601567716131332265978482411082354505329190882308192304158136679274165656886359169606160885191479561837074229689191830835834703512548016127570148509881493616393740923165774193377332574381656677899386849102306419768780006112047101982855676124459441762220307550255740228660467913255311072995314194751004771457910235953097721718839945499707063315078108526591938220025945332094549068445839745842673145267206721063266874688407444981418992914853336554714863943814281910878495276413173384150159686662521837621849808489445318369129020614532291889938794846790129695043113166600432061360560338021803178254874955227763434835766952979978084028806881937938507350912431123245162708555963416102533976948852394952425573827928686548755810011168705898579107753821774345117263363417511091683482071698697130478263154744522061942178506972890256296228523187172918583283266630570128087680281057602915093063501774982691129769542031877704155758697257881144104295081355340627867337397808530847564091010349888332446763233482440984781992362437482681996540219666071517841310096618146479178374189146536676684401932492664448245415369980974862549376181627810147833017718439836021917241692500237899586689328562112906725384551688332652729218107421442810129390161900006862460824698574779869235976094887006455309911647965267402866309947862747753148678949251470998530611198575156585948753450337704584970988155478665396534614561735295034911569493492806624141096112846604956277146455903887926708328552739737010600706752113574949537342830171192519932576202332204441367590033031763287516889464988543112823548562226359978574092906516392103148381962742545294987369834036126562226207018678233984179800011024062944660006349353082587314982196992857368944735557775214053966086311474373824183773227396368008250966788637865106583055467486252800760546932424955245498236091521730413100399590171810587959620735814674692617704303289891883022103548121310932431305308041233089216256521874368358515579644115417807332442411821215370271355583773665578280890238582034851861412837277386774102396128616659198511229780516582071620225321164330867801792788698325433134914899574607778552484459185896753870027044282420824869273113997033330141649141397468687809241159470095571097704953680150162978749960239825903576416730196239209436987764466985395640976929682254465664167712485997664601393720244053827889346590737024132509561276706425488090638041710680798481575262872818942927819440819144926169445490972684150453582329313399901095957888443211501015577353322414188344225616719338758387277987662446553837764266411530328821532014262663597969367018340130050423776599316757224777884110065877480092578846512245483763895103376299192547419749363620368513737863173578232329851629362992939186768389112040890187242259852268050035518391664561744103842283141183580249914446564092445916946276109583455333021185827694307483571349218895787933938329545822479259212428849983862501936741901786104676694686639702554620782227910634783777199146335599380198661138330589554449340550187064972093990272056068506640503936465570339953809146349262902378018250061874441449364560405519346025563291440811364945573487218270302353999362339238945276306514046754580151846895377001789369690470435785930156226167435503825713258847704751365599241289378916246790240814371883773739670478527869581606916397762904327184290777777970436317157792274865323976416574081088124478792752656226089515787684640467267367234117463548340763142659950391607245056135366807680919403171951666861740820128754141720687031076376749020328723305809418227112461583174745337468090599315083241061760350084600521476922049322077360410220033931231067829414404512568348768642598096629357829672679043742616265268960517928635316321396252503022185793941260829778623422842715387996592597934992176103642412581504914226280642664533253515131047555525541805369128404531142738005610127544228244270270485280598510877211720612311359258513509173534785734124443152870406788442467433149218511650226216714855134191659397460300834159299304446485133154311669833700082819533878072127005410971098962031981458095648387837035744238671303616846601653092256048423315489382068918708459144413381653877901505283123786515682045703386041705200220719009500362130817048780290312096697399233147881980090001021206803747534732573623192479838288613032195282627160010157935199709916073865111732998347502415423427135604154207304044284119839641114091575223129196784262223917611174099099712226868001707312919436531133329095478263319061465903070035870666636529319317259357311258214886890355165575197431849225265351457025808318318003914716365992892037741626435994980884272125341293531516989783186102907498048950525278730545100114769075478433850459852556334179804545340132067650209399260314628013698393557422618778767570331037577814798931327458624808233677878213303356235990950225879644914265109856561878350729377909310387439357926209431413459489094523460585879756823886870722565825647136827376268544359895581614884091782498079644241475838722536554774359827743251137753693427546321059539192976624018702492454568176152759125508294906316639177196039968710743649671320131350836638725013890569306517132704230808129096549163342658962795847583088040399085165573420853323232133118455960559831022640541451099875902956274037683592404587792024775077895923455759543803555554567646050986813129111105120175408416572484551746530971916626167619101567192317623047301061000913010237570537183852104666780513266352312107165697187617977057840553637023328015218555521485794446253549202609217641701648693708615212256600468966229258030457108391746361686270818145250170822903407945488667150505590617138147572135736729111778229336892424312601589713619216504958100939853159003639797136761787404748727495339781459444418273136472683021634077241207840951213590169898304003980406003128684955195671734485640669478084071335629517424009490086420028742978391292730890195555035935698048205887254311312192206233768951224481678846726829414550806684141980819239831257062714816254305955506527854401419984690849900674058536928530492702687602939215304902294341663709472272027234042302871592096475112226538328958683088348731260297963547935749770785069038085925800283171995127049994794868945713237279854587816038666176946735883543745330414546470124062813396582043546210531455715949537486590296396016257601748158087849855334797257388973251950030572751383321538247359153278133220273653682955418846351282615119768676768034075644323696829018548510973461761370383797172660531238906145664637144225476203429820781544867263393396884840010615725239118295431354422664776038573366512531231364281592886915626585608934453356558482323516660951325045467076034102868719055053272326860702479738768318323451204091851747409612415391984591686173985521080628631145371458331374802211119537910972428327280717558171998820080242126468827413904554044876823262665768010708704249326323851142026094412189118083485831116850717887135857559030989883974197624365590227195865229896312040464820728227030289675414814390230781565637597428815997960705626378068444572192983730889034154717788384065562858678654717173446503072236348536927217067812511974791429874204538059969468606730628108733078989936476099274535402526516543792588074312535781080913000060653258249675611188240371179949582456325710227833793243659529222312053785829175657936642064836885971691296352072063022683163005956853677424742387049771602708310415142683380104046572292937141389613985877527708557589919416097734586065332329613848819297567175281093938717799480333235422364624920110391332340002682948910697339349576033133228690025953924477851836900464298632344177993806312134696501882406298717281026390478769172216526789896136881604885573015434499591048722054594906796750583129424761632148064829810406231815922445416072193703685077916967237138968343227171517674256380901011406824214351394187911590883702004687808488694069106147816403378318460945128296179203004497377565874193703977522316833214727676121236224676348887407064139379557046450310836258731352189384100532619591771446814863395920019748699573399973394982870882344455033951274514415896759354518401811668058588620810403190582881768943179763726345112612377782589162352105115795341207192909085410621691413435094432559953995073964408123748386571453554646033926195865049991612987578054002355568027249902557336837565170001431550647429377415147927403181226155337049351022707735260000670536504152675114658205244586897506676448940321841031193501879684233664677317609810250177468850575330561109114235159071964617038527811563042848444710699418188133099204836616798576561413383391421248963658599939130576469265242287468459219288943121707226425205740195215625786479375969710913120708520907056559662436436405552946798819757021907565300632339020764816927601011212435071732882093790462239728509334854635070683892390257287669349927816994323584830581355771997455022452874347403597317247552968031864604762980562568276589085809066478298195737228601315586425471397060735296760252405423715860873588776119220724357838009365798182686401783977461925567032027420112441853841315240418530958010065958301940588512150443058172780591262696653018478792448269227444986618399097750157308555817066442694051393801214586612615509033374150947905861847867563137712078338234170581452973404677749579365328450687201739386627168183652966519913537654207839454626064537507764815172741655484038039623899391636007318959055164219941596364687197660930548034323208522911259589370007829526671083571627915674444178688441258493396696139056583664989688888741631388386790700049701119891996176907717037613513115178766874803812343969398375173893858741038073712634078725186223502258115922246472505843837739995726574989894639007811352995265374968808957930319159239781325822675500874627360370158861554634528849494157836048877152891189954888730489142512279143438829365328967876254223413964229196881980092730389910504455635610542766557043948130526692780543841994421574620138190086544191334334897250544376759915227789168206441791191407960098809792582931289178500812597316759471971395171063173323911702271125158172909125016536085527043783559064544167906430044650351796670623993126005245162466773533317018845229298846832449067095404011344179830089599604743966869187952040145178481860673898410850064802809340016884788496650914053357295704563226567757523503812902546807097347292264013870132549779327371318319609192088324976246610927722954939160312512352704998828459975972252849801110640116211791508686321107818371255665114683797156076907969515782816388487290707936892181201859014523821888424473773769218317620267599296890805003928227114531072376834632988060644437481659621718739682109205065470999924963302931847096196432417416165605556753566689364081185270918044768101715215467147311369804366987555317736442019585395710422632365104771514313616275368065819115445257989648643612532380765776085563206061813885681773937041538432804678365740005758005689441224850397310874927169045162923882896356371459507397331676944886862399208778615702859616709295080364961585144591121718881692725164732079164739768447444024779047652750073228272465254266826521588443107244165024899208597585455850359752370010716040187600501197371139680728550648652943042164273245646078499485575122998918043094823628750772137451634954208685775713190615003660827155204512953729790781710303912136757782526067613442864152766892198643141301572228515943533926551671505086101368076927309650817335906950012170123422916645338487217530390779064749321579176422618014799876727550834982305756273188398659350210891357306333204118200517886851292580158498137191353806794442688271212316893910742243257312096717532037743257338905807874126907336615476458841987811577445944712671733278622366608566050614352221744757611346034469192144613258774497223677398886263293174119769792168635277869074181694232889936306179402536534708340656512292000303099939708856585407422094762498292227260436397420602781496741781132946200560419655116524717967315028519213371588568719915824801079461097701979040013211712514828214498446998813392917593596637966528218848549445479185425723798205147148529083126717507042087604996563516092793085696890497425428101149246213342024274568002550785864550330894323286382139165912224608266670132623156211466188034881739049406947479554922259230418498982914293285117240805555154732681802423255382390734034520973865213744244800387514582617790722645407057574248305776958503050587719318007271244400685682599797239024078652241282680510096673049263820128270066219167996862538293781183207355681259496540439878635321495544508872047149243300654893678403826427675387337335532984465255061907855127117727530773381423617218110812554128469703470677502093635173217779204576421151937645087899950990709576034611957914533353315999434958162313367175327141445530215074950849470740679553248865579535118288861409472039424800808406295161179669173133313861212611736122104627013373015817073901650299302177715716135456771493403125244196576343326122832852192973032608211002984302687525826202178551254877218582023772687980118893221094177835126673212424298754389667317705663840649811186673637597135836659387629323723583484192983890136040237221313162794605998031102075043330249751886753277013226109283158254236997498486222788115763178517857222817879508062875632744513813022767324225395686838409036850652439972487774823837812767720700318897715740539356089573883836256132979882662636771894438290518884893505923847678102222566229801609532970040862393747721912967340165838122970126849281365801847503256988823325344120177558640594342365347351200239081010380783748251830387646357996194383424186183594126988352724664048661026747379316180502600395926660042053884988248090041995225633129850263663157170377267511616588475357615925643905410241138106972224278564694794421440379121515790410851194931395852292939797131030245099005962739087591410362473473850421320797057583551510635971755672213105155822451295355078982330701798754109518302565934521987162785130913658283654602405834306541851775928710980242233948404410419221505898371888759089073003420676204920295257882827351336384627891722920466139416201305102528711683324319620812830227817157053771718573194905874792661715708021638498439795385284790314167801286550276257238167472174051222923434313620114072977734766539279542933013323696917463939831021180945456250184097918019092102671271583535916887959882285463636399139100225566046715141724630962044375720705065474149930644955411543172120269205368651859817961952937479048857576888177078853222048345126142505928586461660853678334540504592429107361509860486585138945832254991751246153882725399186738784664576529672133737893919179244078094749264749213631901739767147850633413221082738024352768897435371965568871222252801834548964638008425875613256617318667689258710808202444841959353987993703882413122831729631184258712303453048700481151620088709868551193291242263759947671477296231281088721414255321093145059745676190716237938193325811217203623354676298137536144816894397070761928659106164655225469980091139815881391105531832702297416764207444467972143823783316696884768936290604723797317431282051536340068666976719897717174539117425603738145520241298461004429307697244201907488214640515645696642335114312191125879743043983346480017268610476973391389257599451811467511499812691716163946065669764145385302914061050247554183132648958731152322351701866575840249780150646328985533781157027744793643558839777549797339115189987099281467880319097125829107479543800601521318262015986215537593082263327433726890780386707007533758291567615426476687266172340714420494120323148610608585290926401970276454418769019007251678775055323131327839812551428677594850229342433785394201729212695009342823446763904601278703053262018566129468112680658800155637911483456897804984828408490914806568791941159828688826071436242746172954151666077621620047450933985287825169415529042828916881645514396352455994656917660836398381336301389077799989672819220508721817742269178005711444420343288969354920867802598344264213192673932512716032329202363152861724906932579871441193238858879530429588010435314403302257384483031376860241377429318199774417350014887174599595449875918728260923311728724576292484230997757024001316707844859133808352215124512205543940345072677195418793545204708795210503055692970624923109792573233030435478287282414419761829659024682913287193231330177854935058081563860443202783902336231443607367941140805134422576052052817582497495987358995687765183225600149266839830308302447782892666454787833147455520143309649466825183538749779822062654438634588680855728253821664294972580017102274125805388735902249837163694708161194202199441898764264877924634756434296874452642116497946330813960950083719330208944117224588958475164792794024330011304868536130541038303971786386849873795591111330674504641690726799189241348672205744608584800149256454378460136506055412111526193332919189600786217275879086171411467800538278868392120165690590702744631843484473841639267074950868273829618409237731480821831804215454270238542663206833551833611506262547141702755051637078035198782036042798954869465178486080235671863499442896396930232960794016612886946837238572249488981915283699094491941953877130000278352934019636879342611410342066421049854757111880170848487314836550098118855567627317074989495961115083808431018764989066338824501555278893765369114763648393982753841014635955632230148552502899325314018445624634437903681334629781388814538592687302966224019079969635797089461651675834434890130137830740491322468211857310718399853422252508757193137387272319602283136857622323831003257818139817957046656996309727471750027232181173147532191789634403177277579587668604453150180416245225808223704926281974881615952142035770596995718448085449885062843023801394940971507406437878634761934744069544774690856873536217457357191155236281030637890872262298860426050401854076697711970533001536994090322701933362539527589240317826636907214038506763992192929844822051998441498755606163487521658439033645966313418753003745968636598075654579063225164991458566788532068277099551766300462372008162775656767962022066235743280680209962873349256942919448880939885337383069632918278871365572329558871916402425664320106932976235060508689801743109225499952214619651770111893884474932070989591863518582269825506320875129920886559205906659755101721376370086571160017273340431792570277881341928414441562643157725839014502243412887934161946688922141105059708503280532552960198653141943971358310001339762167945018569090587371482014266049241307851288656879483278021121297449310395657107977999381720972260099998175290015091904670428685318433614743055779974961143286579113563557991177388540276048389760993908252098968937351755169227290382738454732748825967213657710187976069752924835103843147045896727493192737111802563449076209763210566232010527824220542366480589875155421197044431767154898338288744587456581219361516334779022537616508991980965113416932159594167772031272358876212943891645069180857100874058718668488378486126636672552415855229272266301497881594217360721540217789759070308652033156474508386640503317815405785034751639739704851447766588926525237953137944321980828256453958282725360701475936345723931727958671725781570184469360737239976784967131543088054054563859043663933672539201886830208221634007983384927441834648039612297048561943563668026849126923602617862897618741914046406206449050708112806375234677674498606051379365022239276353665015153965406379213789435922807505828075612397569789945650270426844328250319739736422368771911224884113764253402065538157341103791244128559098044379518485052688588157773359316526307849562846686103655659381096989789853122168883588932297502200294009397924260698154084186012539782773622794465563130163698564434366632937900138541425458089060725961344093289248393900773888908378324901543153047588064738618151740757837911887317068721255958113361209347514757581446837568676000084266364264584628960626053387360191664484121779923995814643711360475106793559985417993407732812135541776213834749965256440349423543232026134847490842581810457371644147336965442358404510618605678521857994535919211370702990410435482984417783390593901067210384008617436166596630906392665947390513694557152523515480956811141396713783986215817007381638725174769191399643908174676076327486263889895728697923523606654643653530916837802205054642904867308374588689118922639897411161774410519282054917727318223504997658634193803280589912019496462562943226844735538711870558381949227388453765793255830426053433458640783067825163766429912605986127964587975872519364468305897663637038107776671538258637720578950225237078976457456005524403709114969085217249873418987179670086264134962006551232657709644976365032819447340290782224179686204026192581513779109945947997361201780489891424965966403901825045556862140226555638824089577700143844123117338806675875605718257500019971948410296276847413909968085576651139302295658639982835458361057757434022907529427157478500251074119646740588901330230998334160669278406480545684848445040983415109192714241004815260538482448560209351792127288213849993687112243051963703974682873150881663761545945496916222249427723416879752142107240573148843518343442405146972676899071498840230938732491283886946249228024108239894158170816102490706544549835451205953044245581206269091870422613044066069962727072889919306099091849280939537787301388364408225477502182441247998038762161220771191635539657758320772121069679201167301393075139721477741002978234402395756652122521786911304184240293321282082786871959829490753078438877678411564410268776912088332306393531903378264356180662641157065909647202573751648364151503865547723862363579727081319843408191749761570841808943137457984990775186286979453819635213559756017952646903579998099298559854488142645204489138638624718585312041363757298423121547415085039568113296924894877222911038732480342949944867338382430957167921318758427055981839442254963412669390708847521676035756447680506123832955618883739801055110310062331188344652003111338862159602545321530562880253896545994133696661812443682214223834468557724266721041316374857869445597399198290732239305486445123389640781573163124291318941156587553093443196365681171540952924344708087678757608802496460560210141469496190265913096500431590624580737740132677374457691656797915617823873539779018076212178118012864766929842521548490447982073130049963763025140501736893119296164343547023251278850132447946702821793643722011789850205335845084324982499944990779359207489004123669645794014103346829051146159268047681662520821242694999978820327925276037385883588779625216037354362101336947720306891976844816676151888281566640746332942661392791459982686854344765371020045420600651981797631207706298852811470362389181476803412509890207342984950793892341421266588191217465559528126020309206177244789428353510062550828804349948577432772941642917292789722207564353124066795684832185564339047738055278273884807442929395249143869185051039731463022559079750890393397940637782968858387666472828949879564483388221532662571918175694785746371277007240653677882777181649346250611178596587488822402610784579449673359530910925297973505745473747447251184580913475010243055753176103141751966017604939387433023993992744790804014513621843566813368335769980026664458941357094537031583686006354162997074391867503152371041200585446968359200205561111857536037134893227925299931857722364055172378931284054459417025286668627817227951264945049631793681851832081510717762423861251784906479918340284649018805557676998100904544021622788433633304583612243014009999853932911372450865325302330949794617443524666838997268260126876847538750909687580120861057578094776432609893049625984741432473244065040562846190989976921644112624569949361572423042053162103240780421686868231348291535955627177712714589253743726261836887502970139705433848924386571744602632736487891391916031000562425492370679218193430078793857600756171808966808723114337242853871707913757997542745090360436349677623601873492504182761129634035965201053170772904042612980223697937951517084384344360678671426107030990008266591928744921927232172852035192779938798122162563378193716534068066477053277748711497069232105604173193349499041337417085054648422905780730626922633951313706826661570994782365812351195513393008115177938430836253200434243326345526836249842674135750361612126895356678687916174714453816163552649880658920952167332098676289666063319213210762542808283662908475325486123040377294916656348495476365158990745682873711043411906387755517021248028240460071188820388218324371010867350816352806858897637589570511746732236482303630583030509190692752660778746325962591693375561578987816983758188433689981092588993701688914016675854511971596228733577257741369199545810518268873651273463858697236112644162587671600521816215444051253470030712210063638505670784801305803476557929980743878498148284134376931061718310440412625162149630194690671090762746294391335037599874635890838763698083510111364382643538532594934354902248931726970990713273417053230957375148765492151280362861424939887052742241239893514513653810084906285793968429577687014991469396317099332507289390994212012745159165298211026475484948576442805103283812799704811571174223832461583379274483258854641205337815587344330254333147345163911288409820531718635481437180634422807798719590094396496034125374495992617548800542607854032346370125550226623894564430817679654983665609691698391529962605010361701249481159601047023598625869945141974594485871920484688704079336963669482709752544824469106660830532351932165344740266308396119047463909164367117125264546951782404506600222894530605818239431868919419776935844968005641168192313445851078522920850464022598598611986969808325700720989838595793191789326468147241081353379394358251014486992618251009206420545704835845210934405704459356755752889490917999961814590756479306874621697494403786370360333240677014160424710488133498673814684934964182039388309236065826801924971856167334086166837758717769490295587967476131070251395666459816809203044701708322498801378425931034584720331597864018808997266987740420825839816914590415037248274377394060424931728080111631495354288092521195155926637584807616269112666251038304215320109219890680650962698861533950873340155116185414582768489758070896040009022912782872156996379307146945286357481070547205735924563468303354156589016123194567915289907944981335542786335745244618814464712644355154926569838283271082668268258653759302306618448686916512512690843077058306285634109977923383951871483784485809662765425869022320464488284481662495383892503651458515504470077175132240268052529631079905013336260577716959743929999594826786185970098520157409077454493995378684097248896244262447565800423414469189698326722096768995662270731755732477947529424046893985074394612779319648168074885186787770004974475910732410609814310492404786308025320035164268016208543933375737924198466927108209496860225588977698309301423293811226564468705892238736367185032103876938955853754408099605392435736173308516351180081480089270369181491620249651351054383788955521400937100835927999621268959877651396670776684892946160569173962645571775731193224430225858708408100411039894748581931103472308526856229323709372572659344558706589794719978576516296772665437460268176986353655297383343571144458645866778184332626492935917154656457128910037345910832940798197864058496222459929149682741654036553493800849783099325105386417838255004615216459321536766843993168389174828824008542746266653770567037256502485714433316699489561906922223677475364403392925878347295934992682259942219015011234143914531817598749640340907328103551162442786672188849621042054491445571003924655858395271787600903455908200228340270073728022797577940237674474516489652918458007362658527406666379930037403343785928272106141061182606936037288943706527632571807633231473518551098143923276528519379124432099403694713079026701128677417905016653457089129222029323088853846817124519505850243494906728964666885532106284461745320884763744966270632980253420515383724922617125089564374857000731711157095498480645659488574650004496914985589363021910299639738830547296564002005115495558174778447100347148761395799432370696141726270136526374116514938105817519065748166722326807151755723612413166997104951641540310070035378985291207369160459082620554730687689057462381564546044087643963269823373151012038078085645308802480232456954772424326912795263771187541425443200618287698199765864011763650411527474103934539005624762517720795381963562767083704162519707707732970837717468723345310803379658777869075822432629307707939111386292409181004478209776183928819381928579929816311440056321524816023629757415961135605810705285478230566404318942497852198879104701823415129047020743047435739811913766926110896891219326679254540190612658246629792646424334451373282392290455065247290624743657447990651916692326792577852476950005575870048895571403968004737676595452438348233478743170319979093795760659066662066535702873425917218320603846607208528959700281916224340727411491678338723244563093716029551963791926177237468859564620087674479974870380632834827017920011002985064063719283572787086767851077805892379010824201841475957510559252073772988752543959073177646308085341466010719964189466626446945532702883629646058766442722181251251261681923086470654365803857346115970436816872217753616141443385454088716727900091539664631586264149577057642732774364037625296835241128983686028508965064877521139120850540887796374341015859941888715524708286903331357628020445600402872389799169156227565527224005319393100318149178470876075134442144285618391175660418357835299200888788083301041980488814528010612725686440908885004971408767186132793910043320232138617923248516921603180552926287196476758108877795554393457568826961039069743107120089625822807699976731150514162505024263615792334612378989048012072600985310259078742324085293382656989048420165667170071851803919702983119612926963401299227340570006805529036087506013328640762644396615349750797933940199071784966161638214212430604357372367033797450490425679248848842893761188409148393011839469374125268799517812295526272196840770667074204135983864195901161786783171309157157447267535869426109781220826163493664597612961433373743705875261295437819238756998909195636565302759519738367618963692803838083733994877262332812306715001385946531625970741703701112660900540670796716848465322715778411208711954082773665357915777407133801619431347870384414361568499683894250271779434397941256240719619554620242881947963227932706555050478589662905339719933964502808299540930149498946673709425388701907647323583673472647978923068781481826989213014996462116836033891363093928762286101292408774338207230909548112548347189351860315983261301326748074337425726992494741083648337204812423451010299414936760199930482640250815579744509371631979931449555146636185763125148936482662553069517832200892168345134374582843163428696745842125954711114134243069711830389631246297643085652759278706691485531104580160216233754542467677934782063166807823457345938328898941257051290169755677290984826521588498467919200827907045206233693320594495812698390209376686568018112638847335971654177146770585417028135470237914791865530469974605448128941062975456797658358498925910309909404315256514959863574493739249866390506861056873721943118030090078254105340305582017014671498400928858045356789009704524999360667489867176306158231086806527141974136576734612628505718565767082974960892649620132784437131912535688759686264912853872155813879664772800454073098910835091952578260576964726985374384726704994985340332209633734255261339927511136516448917860887602570579317661412645315814041017984714905309031743490326015325115392909612864620626772955689728818062245135413361678095904219827104988664109785899559869971857770896197731709460771165719543096256208357401915160678260829012026474296120130139143976403128983626644031380478135622337135330400877221270233114749480040399536459590982719491111270372523901367696713470686605031404428230569175275883297962083838457089156794369590730134870579986769078470326619551516239604356578802432945421508618903247880936045309297835571652729690839461253510261239213785461439255040623434272055038709439279914935381272358645680784143023177616156165258048835824363215494092101968541409675529108538965388927409375586751122284563386740812708238368359857028041781436615559484690033961773532512308291555552910387812111356719793325738554256296184661247773014559714585795072335084716602852662011180591656902244503760681330292231105295350196173776180915558007326823366564294504392102937576409906233365692732760834659163978448201108364642008989743616156832944357243439245622514187980670139502523975211426145367233365053614617074846005064520089097811850701269298755409279142432739344507119587270350221232839832779612571222056106909010994563216083737760310345172603419912780589425505503057097734281966487851404437152632830097203344905674243998050362140401676948039938261943240603328309330234240425127294557207826824412215170882472124556902139486186631247507695299541348812773616370369568333437502043141913633298207219894451168861421379203603585288432052123127422448034639146649065826309217285627102221830025989720339545870943598574473353709480261432231040610922275028452376118060123700788278361014390170857989100069093560220375789798604633358468089736976415574120071270978586083025963725272493925763554253245856138956806030263451305545630902069030674735286379146364396475776038822860808744003892090457166010734416691715964118867626025229824773341295108410302473468973918577587016561634475881372987994958729017352281613225310406278897884818112124459703755552389382511851129898685985307256415534626725218698323494786924588301739122104443080335446952980594355175212175492928457971017398535946170525201967474205095130355200980776654394544040843437463437396694370439066719125056476059524983442436490300111867472787939876063820416900652628934371617680181585070054850100035843174801595270786527417907255850031564587503592861876038988732067010174525905307407399585196548950745413588413645277326604085037708287656122370099623634268890874859539947121957770164730680349740129711889305742799175029689418396660216543926460181482190623404804600432250659516085726678469711446662085003879528631958615245272516847736355217636188886694625878085241849333498391084481851137244639096394614282750773185800677392176106658544103777780188692338868927698967302040612897682680589277775935273808130088110382176821537073576040129866832999872523025308648007125638559459335219962782835497787078714669746498719251145736412975337080061979823749003777716797529055639059079300359273670383005042646665881663694521436688888695463935061617208627334952413794495135713026839204296174507011274114967426853817874002130927670630029144507885391749133677681710943059738716429432060589054326239208892889435920493989277574179594305811108844970110953480660009918268111860020216299217897481998976355978620490567580421360603854131967923542665784723570040793102476602461194366887731043912762207346342122423532439155640244675836656334882527260442163844475871063367946531988474814371177680332045977955106782127578349121872071992308356427309298838682800062061785646309499942152384522413893501164826363962241368501601865261879630625988962599163422669157154101587234186725580037353665728433879362539139803774312979893747360513090587648172115106100900425517840778125787937025399810613442260712162683226527778771270800885549056052303360267571783357743584356455471595113758557983653936901567214549751563146228949703110762428046248317451874879440718376109645672819691979353117249359466619204112655680858390093067646604304407601012742488005064868731767332376650021210734857542160408131998302507171582925182011186804022805370138446140005724051817285080068000770791083475458294457740502197252034767449135415486651256438638868031484317036362665402866899290147689998484301551835017881653838231529067114151920052332878068282207266000867848631374508505080390808011567398652333217012854242379190103770733884613647618759331607602636158927550769972174197906566872600824614565636679631247289601582046177671696627388628357619175233469915613187739144279541475307427174742138937567603314480182556845260963888535629129453805884613042807253494964510215194041451677268511377546465756729341011985498058462595442126025280194547237816354498642730043531633743861730533400669588776761959452455943977071776226729798810824359466160767565399646072669826946574747858435053422100899728391832142651950204110999088498521521300614041370596403143938347075829607602232210199614097278335210983342810141241536311365403913794596568549853503104511280701862115190953324799413821487750967965591423712775798832920620718176861217363860906593917070998188172834089522584260540353419418466763129124724713268684616541603401720244814311354202569565358163547638599629949739488724657324903273709036534557464831386712494724095461278640310452881243126387720654738919508307714151896717276787441124743538053921633683663353812699769859917196815003965607952012267665578968166736159311024633964275592725679638124313095151785605955403089548696221537482095584634657035317201863588433658920185075072290968325680370533918352748750120889760828510747594174419520916813391362447955375211734260421408979901053740016414709946150898050961433656018799735381658720757932965408365757269308164492683803017468917481302616131498273732371196199709959856076470081524827389176850207003508869161220206093404502354463608849204957074217922788842829835664586553159354325073581137834623424096376875448195901097732305694091264612702610886499800402529019705917498054865231743834053521636812060558546296172091558561349677494809000921144678448437581034270197427200667962074648997732728169683463136630963067468866354951739991932854116709735109626598112173229875878886267090087069397103770884923485906501706665253251238284841232775381984619568155877620670556720559439594926814935601459630587959433727914620575419737293154909579379110619776311755175071503770093144073194361773270943975470479524716746470853500653631428384646681596522371918849521914083039249703241928486224616443962641010959949564939204566833385271200271644188595686565273194934552841927990140878639237359286333393840679290546410284995563046259813636417962016556091763250104541095961250764575548836487615352798284245313678443542547953357483196207174151213358483408480485230980919506876133671527032751346764866288857134696680116383542737762039364668562512930588470874732246215888491849121288185153237131887387777271378399735568112721513409380167992655851682562024825436132913964331855433242330868335292468742666269447205700105381784472876995269836697486148915017957884796815260094397021195417142247055299318988891039614184634244596041552004563569132808927718349902323761786271553364605619711664526589916064114295976013050195175967784903454693671349695116392389097420340055270218181552413575744021289632282375751600969404168965029220949555705041442646902239734094058175051996163297066271227921179273056496365170664871366399193408336973009587814785627203488559778660634980203180398261734788660032906567645628111729723071842446070546304206418440601248835811421244263143179631260414098967478950853078410527454803854348852495303970939966441513460011988388177544794690141193817619484156425351544686406731806653593221068264761777971531451502192674356819859295356830254422589947854956700069429417947243656449885767148782960800593213738435522365411935985186162674837076449644042999174815801126317449410288558918343411180278894530528392736492873234608454771482466499551989872925361496831239401252079268849039585789742620127651781964513431529534544143680541118151817305675290514657645071783344023967848833225912587663273036050584200434827791689764810845438289370186454091749535549045906149225493092970152166196061777406964571578109576153124618048048103857821851930700145448888616795068100379503646064718050527330402328753030093293378717588812314372322736393512053841578926431152275353448818954256063382571570552590204816578035886361397650464736107121708916282128809453816223635946210970826539098527270994620157965288669455795123512289291199675208792330196025891394419534782686912821189072890726381007525070899369662220469476856145385776029329360365266775924956390618583370940663377543938771950786184777569447098699502665853426755952963991618452603074957875739554823717623056280186241649376803760535155789123860655033764420150489925094035907325271439149735850632609148221211203321921853497799561404606201722343271727973030610801089621298274460652017817979305101660771699703101057970767944998234597164121529726181032147892433252216482005178113560166073443490014683806640842730196913541246497537108001138247935686093511352445021229073359243808088110952933211501917485586322585638089396164918949196937011635839273851217609014532823072129344221712617228156715218514039919711572013591589485514785316620671683991501893495047761463119236547011517555131950014816384243487943637180785719841908293619075010484061461529674300620629181448083141617556994971795385924450427724497129483397600534733956389026274748453139059634183350170847445019194158927848832918076320463542604712231453004152041045508705272059176904297651249747320600307884147775520091151871856479686829650356420222525468741089742912398321543151264645506634607323406946092628874859118719823205314304416650963246246076987300331992163307476537823799974549569435912986989526249197150607412581602822183890795101680444934786161304361046546878455203420313301882066598561871801311624217131050596789338820607738184522825419991046080371943054573691346160914540952907766091688810327527143487229078434781303390303392444592698551174566028942276637991793316271953180714661247840726653028774595725928591193414883248164867276789577331586854202822620358120038084589168555273649216703870374654364852707012595007099264756415557459669069594294615738393485658744919190136568143522843120947970154711283851544466021797242734535294846162061047400432699394115575373838808248403798814721696888434906133900641233925279434366731934073087100069096446102196379744013411984507119030744455096409574422830097408882876271599298476229059336672322127781131810110026162823626271589931326318669214245130926438392740382202246578950683520279298060113765075889480917068784605323058347287258953960075023399877343359994207239744309820774677045141600590361916241680128641069618412175810371757527883273462093811185523701625851859059704536661461043509972238155114776353926611473428194191148563657560174827300610283093719522242361838368335521842706419359749693284794825275922897889131018966751627328967525488335511188667641249855598436067809984155997168519590822533834953727568648533261521685829398807185811942303263367759723473238281227923355546923252365230805891540318760049546803391868501838902582052154243216083756258040776372156333012391211176585451602322708889581056601013551106526041124192275461774516819624708885919683591996552251622089943857831419459420285133557524435080061812492614394933468477201594583154797395068753461258756709489965921549054454690207822930532186155024638940624523175182186567239395344222950888423343444351151091484832597193799342635268024650688354812023948160741384762771346027628466114940464655339000626577620689140463416232096556463156917768318672811030516533505044925882868123493672716546750301729677618634893076999191729073684462698044178056177064833869654489948309213469502187345333332662824632893547353180950026074947122945688122532253575531705738947471131125478549880128230921048794700265506116892487917204260946468521611594561142709841275514993543771742347768161274435889758902395494627831172357747018122307790031213511125080724553552165641566532389956821207015123017462973255721195166715606582050659347989190332890914694808427263682030306281039676333100122290267942230650355905071104881289642241061048735267780326046382013489777599394887911146517540252516802620962913438586881308401338115990324278404588065783739759024660245523009635393931530889975667324080088630474606163621648211608105261424001090198327175298458888124015145583349963657904324404869037521296135488292731083434970112418802861852911663589710640753079231348033574180828710353783139880287927776371843444651484606371695595179771322403627003413362658349111599353099193958958662587280745223117527985424056759038960659255934483810552005633151448395681054912068836324077632379574465683762362307860246817066354877993757012512212240542446316804488681912864681982881170652329076659684077875715025516496427039515124564153693878575318089370323331232119429431646640529271489588664900636164191702482053554887836680793091721150087158273945294498269390384928611267818341848976324667454222326008369029393436605625223503648307866198926649087158850932877130661633289827028120930991749770554714880962719309540321533563676498943839010779008138586353564200834772385768346604964798752632300456067070976402084775862100025106107547631683990498985242624066432935504268623006320990034730903611471032232464093581570582375399725038210126094686855710555380553907160872239924083662334337532022467513027157453210503345457859200898019951087640526301614809886200658183209942026600296238458327785618151847377511785820933900783658113449802766773925793846539718643260911659566860568363888729688847486261910619133544864913713538399723822514269048258065737470264198177150225838908176396559914624018158097809329094033216942154462402185847496175367837500596594059825008511078129704256279523462584888425685243942319932498266803023869038032385403127315798717605838624038208372171212273164334775874919130025522599917891862412145305268682843384724827658718481151963226616848446527351456483235159207396424512853212165705212286916585998198669902278057049760784054900496264837862636521253945152691774860392903359651875767063933061215887196190555716411336609895992552320734891888142832374452859811522698865040439484929511905709196677028387586150435008705267354067106799007884693377769841358290533847167801884913422434119611810782946765229957881242773975390095143737572221185412638960968065533463024578143572499985165889526023505995708444264877287545402947694050641734823063096379990119671080755733437328785556415451304264966278690802615025315146986338867336495619971351733268890981246092168791539655572904222992514489383473460338365157519622181440279212565880631601892324099649956416848793959514850979677783924317017962633966844778696301003394191829704278018665651447334460763482877547094864524284414187266226379512667758415657813571399984034471391430736050143766784059988901774216654499915770162691126509618944613599038588959151516166697156594782111090862562618216816108549135187343231025547424872748329784460448267495441543019793830102838020529208631141984261135431754832888598830235736765423551549703892883418667637383092528419603925897417631752905710391742037293318722060185721983112864223478100794496716581085584145748165222622772422165260086416164636354610847785566056036226969273613903634283445399043319467669086507178589428497478896287463085157035485990162824062884800341492525286896009415914645224659748946576048765139395501003628161895558712415377025047743224331258078827886237994602302888398646093700040990884024384328598284955162288964867516292662571068564953025862888661629664843334393619942847549262985423735716966529998031764933253571668270282175240119320828333008880091862207742844030627605363147731323373261540291818296909939624271198796774659383281866053618404654239129649443343547222325324146801178413435147042851339497590340861044158153561581085142466040826997803797391871377018893514477871524789629407210705919166095375521055487628903176661642887449699724627082085438552616885395979399385149649818579011524747981895770066837338704794542497401003043174152851303230145018063006904742900916538840340866625130158962708189157926543863774180469976209526144031341373430105851243034168825611431330016310165081789454365111838374908010365843736398473681823067632720647327105308643433154915592696514627147747322554232230548010437741503392406851882474090902290985307945230990946855246727760348596291839777333465651327531935862185151646212746763302942541285011782218274252921524540300272284487273340456869708275310591313829950866957783732061245677113691631830400076628068043244358099995387950520465512040965966542492798805171311914667487056198897739215773702444125278371944451494238171345348059236024562027262025727918824057808983379238577051732341323753431601745258991471706543071106116348263337051757606262102342346653507792448959656680266312926720061910754713029078147779205395996580950133301168930437515945723327473224591420562579408125815839668664068907166017117844796428649238276420952511876412381650102549691528730957505093427761010660548575464993224636624546445693346414269494566802660791030911241384305943910362895320888716661106454598676329905399084645080213765271674377138597821857700836940416851697413829568142403440418740833918056977210337868585791030449414985678629794693629717606903843427818807540462184354372211945123880965660727336739050539393028021071216111915688555671407340179711137578009111293510339283470103751694119616118049584145345145118011751757549457083072616072597922139528845759782973483279310767122590329307899512758125336211014488941660854259474511529043114782662041364077623674352895712581208337494901686779331031635134259063145808762103485698128212575324166505347752703469618406285605594807850084166741752946366721179161681550464577953093793333165220410254296449552991564922720700627733408229779812971637533214485403633341245286517291339053134948728621559956133265547862815635972076127016428187011158484380134250825941385049692499326964523212766928326490758807670617046407073558844073790519474502635699277832363365331021600676494937910562541449168987870756952342268755499531603229237317500424655378191690469608141889594206187826839247477992246535595367294717521781137405077177564876793928153185285812539488125200753143790232483637234373978478937820221944577137641742911885291799865190880488392090375772712100050356446947739634140059098108405772953238923166872263713626914323491672421242160701130980083287974130412295882143415390167257149907627617265237633022052254158069581695510898855880114190598954996272072729500603344062051702577748102150672317231016731458781713731179715428072302618539660411983375677936156590190864691231456837752087618622359282865731538044545408875542841395784757130238135966559145407727980160215533186155934436454820890784829566563595805832168554251241923549478442301649334907896757515181782269196988599220848758310120081812662430026619932675113471210436481186895854375438688002191407369550700826538369175311326673543483973943587750734303575174653609423192851937497462408243966717943629178134465053394078345028213926109764847024572727767499146625477530284035330355432217232705057236140851117100541027459641453540004216561892264667902194445707043736461228677467026649214116016510848857444063048517973133526667039906077963103703653106702953256280771510504129429061933073745339087332555741054462218702112014056056021565612572464310447508131353817346613944132677594566409916865489426274264446503384284178466146343353061008993142525632861108297744146334777120928092665698224876288239807733549852329758056987313146457857862703698514711711596359732483629170071307929047940047476149123962924859198454142628145483130123170097363938210994220696076562402201251660164519541313774418687395996199864574112728273484519783823403315068766622314995035084640306310604600850565681576531289771664336132497256441659823027121419659924882445971957593110623294821203463732092447462394801826921936307341866284397774057058782650829033917777095100192047115668266469152976682144519857300665692322142301325928234651849887946032935255046871596940996651349022903363324572645557269287271476999136188428231028846509923562737531640665803476407456231280408680579501100258993472452850429096723140327152833209309732549634918648203896683710019810836395641364117474331086502056774480263354649910108043780347976379135756266294162589059522733856019339918936090018097973789636910744951801424059993064434178727636196010187676988258132533493043119819509373141821236168999837240400009800428350921831501992048203575743027935972721156776803887690959957051940532910603505125441552464650615580707694899450621268636099383252245663943762104628028863101370248942924382513037157768313385598310624691642142461989121323338404365964466042293706324468230192283963586011914840964232559806932091976132777048887912541137743883592207692738554274921690026445490684489606665703764182320168654341970508012635963888737863859426384416926522624201095826306816760843068257646544688915839281319841636856152445392838526674694215007513535709784944497493231925718113909044592009587531899329630460384031834679679212346669204221744468172251978547192591571597233007336352958337584373112605443839893287141532092142063023564617222010483498710797801878784015850599452707707791865884956788711015257782770497161392262134724149333786706596135806015956284983386361850244743870052518039672338207065734793287058928875202765285378417227179993073580938614802016840008386151338964216248522909250040161225498573776682489273609916805625517232641321627421472138949606346015183945943869227388378845300454776897691312556851228301287695956770129563500396968088074711309422606182201622450937520030012483383471085964405688393244973380216205551041193597071814170783682312592357552254175387811805230253547430441259467037330134157458062914693188081944192350307879988597953660333391333064940007782450455028578925953019313146318392688389270979665369509169172571809708295317071134065006566658472241775117627688192524541685741097731859976429521862887662266365160558001748475275690435267779315017523847423227710465079469723871317476978947227905101982137002629825496104027286575613235634538038677971204422805437254860230782163424651242924234468387583205083890954300527459176387790149232840872143225310487683394047647431472523976321953499896667510155618285123832035790162202166031018933117457855639676771882558223741614431816229926013626390264122411888174729658038112903263498999529419549288252896067963455492029855127474245089886496353695017277833779375546220216642614027259915052725310025482735390909071123393817659291654055023936449460293415369844827134449028401392842651623460793294169672500859137503540262941142043933530356199834338285581518637151413980034117937047154534987191401535639343571914653676869177333513634239468494345725174849393390494502735410017668050362413427284109453742650725819773797618365213156171938436329236405961042570322428753568767963691558337546732664399822936054694012072628817051672053239892474372994931066713620786096154349287174590625152415695324438536315414590240898804544040863477552150942386818334204252225549884728221298937707280370185161281828770097555987980436243439494594976503711474705060779534380933397582107202866915392266653869123368413553354693778860122265223682518520418639333158720338286483805560790718164021408226105695953792551327071181802545243467816376818398966858194892678174365442065845626094726643668861589940261930161812568503645309197905983988814959713449100072289270112046966620039379555688678768568628854292393076402408379988524494457068269216440897112025487570728260717773381632580731947173969603091060081189083503268264625073555709821683059341064174649588924381906847587833448589807560671777817210519339506033274810048524691751969714041932868374831921336745440452517375589555225209578633868486101577972083157621273202080876007193660215385791828949708677638528219963328665642385496753218271837154626232303618617299283213260269973155751306534429209511485061749579567427134917062688687894558130790135377892153521649593418035808560680855735618407870804590553885143496792287725570722218489099073689247357878877278724009308125138218236095254936819064415345800573296437818165192172247206882912465369511681420153452369293880511640973388945211514660431079733637216318381567171785780868120302819548802024082573619125367144131259331742759206907286331776355208844179311938361096341591976966062329412665972610038999654164183890186191858571127989128854169262845737925431998759335041906734804277234269169298658909529768741678582754445253484953807063031256097546844722684216009199996268530402477133433766552850579627602469107996768822252371467025944600675471733433525808360593167784695939814809150725275969109080183189054127771419766793751714946698240336602656085446088602686252693643381392181175454388750470738835603230349267453277179727809261731235187180165893517619066731641583852930624811888744778261560608485878453974480590591040647082332603667706361029564082557047289980889507865965394456098392528606533829767212495156384005078833097702722612246901646845317673478051682613941442443729937720387956150718502629351773297084886226775168955167665638994502627356569627056567092444273810870941254392151875491617855752505202621883704990936026690586588783196868363187166188793452042490966450083276371070644541903316227407809722789983383043209563123508653821671656769547626200255320318380142430817902418679413777379206726740509210476371501718044167361488455693922481708701339343359792403499619532304019544260655012495277303049244959697159565085903585218509710463086660700564186044795906643844250909513760115573136230448664300917547981889932559855527656222608318733509108773008007876070486528647778942547668692055674467834276906007101246488250358122843111696297458786378518834988575209928249304556257282463359230004535070727157806735213297380314156843542953642166037415988955316589231077746445556384809566364607889904809135199158355209359993787073460273284449828396620366234659164812079563651835575167293997864166578024431391313815960406018935240433827159106245935358280782171978500882379592706888304063243544692014221764245961423562556487048788722431400027420064974751540916737754628641514871664997082335757270608528991836267566572307759283183844226523969941692135905204290948445601350279334250518032303473432572042643954880913723610004494809915798305309824562610562447716403313806042459954133668069051992430714250090916434092608335906755232022830689874467784799933092858208149692705354918278470398889603035862679237868920969169942189614260443412202469670611062807060135077915330807819074160819792458319230609387185807925143778648685048845931232611156417281183122584651690559265714482769672175371646263419144526236203587849436334388913553566342206037663301155139254043213779441861031124833014684920907342560322292539954218135213582676473042099051476813438201497604860961759919302752753494061598796347908786144612887704108850295096360702065258664343075396451688409822568614338275547143273318544405871379276421127126799346016724156767365386773329034578845340791596106109117010523935002615262417756042529597930387598231893882676693827033774954048823186674293170839339295101141550609629332241503812252120009719664666962554087737627322782011547608193160588769999043098969056595489286282894433968907469083950104183045117593643797739346859265900227646702480440426303416576457969843561045364136371104361296045311129628350713626501631119899183057685609212599905158239550381553087550624356485171301309915588012396852295374973577190537458754354871440762045648361346725377933158650294257230012281311296467702307969481491136303476622211321324640839865135244404221313433275783825889670107034998953502355675921816803071551612717642086140711089658804242234549851951074247090347779390667962957345393654016915199464542272408871202392818726072161182196359495327540249420404017056132414762755988318616086623152836745405885434540851406581879222229202868966073610010058375778032949242432045670651660070454931804701113412749364141603658673034558970353594985330542475574865256213881708290019401312808371302176038244010426849759184685992774610869009809319509023709215844207725060602513548459938695979518342120307594991599925757515764703572785843026336940798119292556308981321274092802920251039840852885233849754691777885138338153487156001736160509213250040724076769723727479236633491181101182288163718722160375445396156465094359261974375074702921964838068906396025171285063128584164426812784706979493433671447171559017512218190435509990991357593707861399758245022551524660433635974314527576753649037755567186678433788091264645974738831296055029085502227725971882894281669994709578510824152067012441072793121626981763064542221485834709544378313420177559811025785630842577089230000628218673253921346462033955864486033288040969173794378874382370626377327382139625085903465155676006742017984268384452670974682950736201143093525197841781408220032673465963308132460484611027476757708244967140323877397539728049318146080848604672041756773915584887322355729329250657386980618756785215287399845029128688932018892610652221205335480268023002744978687816034631320507077627214059487883163470221226950911194219405139696468079716832337883321559334156087472677607831398033666110838877681836892445607365628213350910763154880174338419107604541987435755382491459373213645264682977727229797024033405286137900322586796132391295530450259126177431561183247547165365799645144627898949335313838580452773566062459520035408129707232471461653590879561615143208352165534722309185210485640517023870393570070087391992715196753917611593076796784909684360797712226798681469096545614022300826590795160489431224291536140169990330684825998800065975605949595691698427613002381440499856154584132716647585858634276094825019008006796354524656879781805437852809559964500647094296816376040542940163284404600295482816486466117497470031927782607297643077321943339020233113262841411000313160362281326943710674222370991180041152650236732282720112989976468115373126243310741435847605366822701160181915512975442283569125557663344453637163426010735912776604513973635945099598335793431359481234796639430443950869770031183766907516389946121616754421927365267870928143450064754485512037736453965836962298747166312365969510323105880059962021391727152696850932554908029235271592161122925713303425444794248460714840563154944147779549271790291624836852387071380017362660919577958796111313537348961186800127782016673911154754946878960270539288702025979253842251243853256818047114577092312636826102732761883680947336652603211842347932428373444182577990623809896208703864111754211814417759611990321214562326948466590104877263914808621234670220284248852706853988201403656409588503585152921036852367306792622019279918560548069476960818971805843208117252952671885406481361313843090526562061255966848167670617221957610174645975342283833728775917609233698437432863584107538530048689065464415342671302461094231333981552692936670305376958102143563395131671473346823385986491747438440174049219735597225473371361767020713124095733461679571317396264928387987294115090444499633449496277911088130412297323478229210327488691753068347268837925209658151785685509390626523875342100582991877747596127367624407006628551831131558847228454572113122932481324505851279074277477317108977947854044911461749110582623210504910844115206622661845702147513089660935873241890058613626521834467075589729273116394687045030324030376342228063685809067142549275382557306518031272308078556049862768321784019875773096524440810941306747980269736462331250648643851493128054972199619842962335659850783092297162621047143465410108981339728676453980388347710715973077011093689655648218586432678760538179507157983726735324420854843978708285110779248914903670903562777507877985690497788879244412207519874927721060461179785246990811680092156617662913876160933778786639969512808071403166017681640725857285429427225038718001836911838961336938554430530156182850746983759596272557135867284283177334371649096152611906453275814888588413319805107618313512357372897447679556178930845025992588564113099396074503972960566199024196410038258177277476918096189230264496552480834319551657491754770813524372611802455855166563881522503052991764529924673804318012629575119182108809171429375015944404107269691314378782074260048524237829610325474091042660560180052131746105845910589185719902208476949415426368021746368130067779069993848376696736417401112301433403949057193031275433770492581628056083467517286925158927179820982946460745554393544967962716709761660108384531919530037086917346047109139536758389689194949664599345209162035585938004105227806951686726432731905714176353773367610730020875557858640330267560510946099408690754366052887871035447617954424535630965871836417435003618919348859133118571027248370787756455319945977449414197108508049306389414354344698835037013917743602396917948365487812956053632391625435289878862183911970729860402737812970822850642501561986705985119690990935750685028227904530554317017020154400064008909162172709037387650638121556938170499597873740922755659786428190633103333216946102118686024095417618515092538233209934130027821273474398971294292958601584408027678071276636811853021343549322391563978155304262966234145360342192069677504130597008560179578880242104247087394270256451630008053610225127730993156873944984886954155927688150821490583127123204174342003948461218674136977577921548641523554534111221159388032370243920022998178415997364403515273573245023981873030458979569580648709051227076957176748820312348368295784286165491608631238187592547759226139807459481582859577388386207973612525731401809658630929429280939484267530038528130491895965462930408816484642265305815660832691121888987213619521791570457572470919046290120215773516800781692171092987904955465185650648648442015853207040135022340792342449565499349370399234746915614937280858933558446301892019578690145478782849953088707486201634235416054366430571509188675914838772909605782360723859668781897614898749664862173370403587428638973512526389480607628673353868351840352502505457231297115300211109854697762813585331116503672839825472287100787593272521351215953859381830118931025277635542699715834199487587977501844033954664341855178006128680341863114517354043281120656568213130042014294189841429294570161334708063766887924151173293942902431141942159521985541046330874261200483467989158017138671358512207943139332251945712475403215440843607506285074815347309668672091622331871552919253010342112862972729236520019864193433268509003755932888779577062142654132481345711540832968690166071659434284597965393698015773874635694981565167619462814809604040697971660261142072000305043098444011142676767080571730969851709736872399883574227157872761981184876727244749177850949336494326307209275074217114970454035199271995459800734131948695581181576665025603311085865950575627093843071087891357061481166927431226947427254285733022113856182634493134135454883948869525462127833447584118213500496057629293672091306032564219648103780320920186297032029764655846718870171306131244711352065591717905513171745165717222426234753298307611552451813422724108234896214744274639965061485026360241700281197421158775856598090720370890611275247934013106885004176916517229679650025587495888005408492323977721104818840841611871526175475719992917845733029315289709169588422931549894036906118978652967430322976665723255679295211021498171180944257875209082652418750494804819722849812232995697699446916788229655523356880649131864511212110609334642757139259362922290875664272112653333953465519268880674340184858384955003953396695059457430716903502517830562032290892547937959498475665534505217447182709303562161438958810369477637558033966567490945894962761427600101126589276509492778175414408192942155555538847682937214388792647511841064187103487433792592831213857185709045400216090170896418104062452718575085585398749429275295266727021991962437381778564867737244177992083818215927182032740140767720726965554242189055912320783304837999449361078867431609016397304439404382612435574727833445168383230684881228089488498458822993973092200881078208906090755619598756937489632503561616304524813658682678583394806099856621812343290211863580002526039405685411734125933662855896848645059482346182284680642064359934007950772585859365634350262044605372506766080335528892461652866127539609788061010321287307448047751820844427011733081305779715781751712923459841823492974997549897402646065852710840972097075881618405518344851086048063097176279538073143219752149115368078266568666539877021367175762414210039734895120416658432115384187822971175589352830007965153333239163828068064800544020930570763250266009853938210689975339680150422469651994805294898098566126252154175719458837659235123398268592118179667056437155657437327657053906887601619813139796980048821997690746960459863267106865887881071610449051041707909837006215014636350414215646170288823791295919620775633130245188388541794909116378268975763905894452429739444411209192110895751249386738742163575612477836788364152411020970722531580260863200688429089629832753525625247066320206128987635644598532684483771638428308563725419697212608355915944716733720434558885514198010782181249223852726742667673008428186793007424194809065527042459299429768534429897588211449252382993732708203357906187233449295216042571154352561371528300438455713262239027292048496287374885272434138189138613889830669305472223847431992456250315682758915154211858489459633567303298723846003190150311209512988125099159971883744563627956368968576877391157745139651893636702085586177019313258043915145379062350140986251074436054563852060136492475227509816746502601376561988139851902836702439134800564509205220331684684426655938291533665569381762757564187935512188603752787899565862924244853172606745720439657643640638573419544971186895801932692158002126086559654715481877467325546721431606817282822718190206036347730097315155586605461058122038440975992706698598396636694151642401021561821284306419572379600043017734414718362356719972762621656380250175049593213323113532312576040831828202855819814075566270934223275557553086090251018681774658760415329615540427331184406206877028745864483800712206933736481775716834756868375763463501474211906667223472192632595854950186457142058943729375635245751853538173746496445005592428840278122148129713828118746371084435068024647681904564291229525705906766102996663764915607107252580050469480864431111651483077635444387856521573899135238581347355947214168470627641829696864262014930369615514233578157785875546084908309243693550773903418256075797115922662242038122172417867268066981677370663595568847207988989727891996462799204808130211019597290654722135775865161572677133820942413444350513466793815698555179745441703998677791886751078372628355631055045512228870607305807661168272719130245809148614191391367154276887370634519600223019750024024124255374141099538981049128961986644656305941444954048855363356911778496748496665342055162977498386100657726500984872763263585098817329585777784887962997790116495537370186196937803302875198893932629656930349573317275822021729121612925533696523381412270642462212957427171224958288120851992109881178942184674054188545959641599167007698137020046556466989773430511071959087881973352086532214136788576080653379422841396336850909309743821784050301592986221413795752235537459454307923495092544334695242936284025242208132714047604972055541035897200925153782960406088882577647824365062381335545277403170377835254304139227453101806269318434786117710690866294726331593143109149428210985820461421232703417348418522190578992906508037720645152086252846397515216590786625444331320181231711273398633511879070202091259103042009201974214649608477846596698139224671918204141488070227163138145533466577479924733796048990761280783535052421468593881943680838573710107111512692474542245984341457989679819756827543661649357611677055118273972183530511905243362478467058981525871199181491204813382990310052754442387361541734470590056891090630139091060015407906342286352450065777913786354881121633840947072722857295547371228014430963382484605739061957560655069234229038799255267154322839678250347690885791158566846468242427223889386997968689585883423759783041451598672988493190921383516821029843199166695201409427258859651194915103315234525632742038628222261232284966850303505801206045750723658439884574438572885854597175766851497800739830889763922328952081125215903754775853751640056048400948704015691582577312710693215520715634259895877175733652135059350695310870331601625336640879204095258009898938405217110646697069930472902771178210012229330380143163747967349478976191585559137470295084225618197890538319710243902946896673511048122899624361183561629066597120380819419144993002300264213430705902421750686861029063877239913468823789637343799869663041024432366274998958377447793569346746471769965892890421832858577325923106867699482299255891038207532400859935838131887473794539091696394048581584778965948080672141851101662588351282587552872459786771710136227016272598648668550858151864536063328199761542321752829572706050186856053917873581270955928837665920614609071125169681985613681089803186945259897335176410371208578355766035570425764961816367782220783229235546261539032018525080080618271334621520441644468108115286848156166943596714096112081859485761561051819926119474723418750634111652010159786331910484755360272089673576808180537407882750706843455160373640354930915278615812835895985582031629868005645268236958214935080218810397435116045980931802429093430299917505398609912864471057863626646553690660394039530035363122760445430336834478887997005213195738799461729346651209754993324696873613141180744217962574516376797155540277653201723701779128755067312421910770557539515836444157530451028215973888824924155503733099864983688342172726286226215553272018620962474487692463805334718365512476701193010017499108374086925344775773547029725629438160783752090317449029421464449647319874815336206327526111955739726046849492908740419130603941434046586319741907386023974914648242136647976654746503462432826427522185136826606904618276694414518985163492728819781345583334073532018569619364203329359902515540284242177305557475463038185453794544814784118950858596185160351950262138232529185714594008582539248752519668014548930419265514733744388507638204853182529449627212094704127405361351405451642550755289610779292434869673571606862307723716948599034323721436275293702581324516434341146481438751905143931474658563312948951915794470886926371311084071878186034755221136340587030554153695847881751111526289699101809105394429919013528427317185461217442374592248014222304060745085372161872530917704771197736997003400157111011142964244285994871246732811793872227204059845493055472480998931661161268105533539113815423273835243298186095016761236481249240511944283768270405556751006147282740204773977496571670722318911298553960165229992492676117679714447304369928251037169154104242035018372798655748169870434719236990987241680615734508379696627232588694576671633024196071436726209551455912149085794025548815602729912055763425391361285177842169003049068266562022625706324493666991342116283452630949516792987512609466177108433285004115185216370781933096792290454004889679884536290828071925270443162076237977021119564881070699970842447356394771348560975755990169523452302858235066033296782974411828950362376090182721893662531233349262853634216885298046103447564880771144349403716128634480696623075138793703963204400847584332091632850225892299735182235561318957091584963815365028292185997431687890421901208622326988928451037427048144338132265214709394611814179320946479569994685448423916549140041904703064960222557570642316796829872876031606258624941841782780404541593522896615413261781908835676948232724457586927730517636479438986680467755976365711627551691533661649515248662609927906296086939994662403584018608861518002608058145539021518925220243740130836523941329694497504140994616960251028916654193399349819422032345238924146420230750021958648430945940552518337393525529640440922501385118211035930248107713681340608571149937326290022234812527647899099477146755582199553621512456300805900644206636347025460940924973840634403453317313178649542749694875546489526925089544398678061676088951377051732903525568165038102157840907830632009152647232027003450579572049676554529884481847153922008437713228771560385231893130025864245339385704233438456140091244927578709182538659936936886755499914270936929194429533919884707912744415065707777047783525708651261850471070313785442019813281437705541124789836441537564262893924047863754618472860880063656917746712653650300046966878630998330651102541387757377636048938247124971116584953983570047014617195076520730976944046410199332905636936394339379015956659608980093005541403808618671981917838007953250872389420433748464265264947973950013074995275748410456348214002766336160767985370907437966283992524990770651787481111494055101569239191810699214131443565855528946835331846673836486932406682144024019041549037131908911967846630817659686826756703640822789888232796929526895063298740216323773557943229191280449539086165579008279224924024289917071181983012422728553144858310120217597435544941839592986723601334149037023293314332320343882559948239249892950281115280105210991419760710832098615253877832721130385235420321958922075336724723205702527683201864646263343648798523884282668365026837513198499031851590444733024015477502488061294532867022850869576516641067518414462947873119693467876321611415871835001661412148418286568671138016890839179239612216190208412121511360137179997300983528791481354023901422269653582496872335356624238410240988742874785157450592308086656144034250499846860836233422096858548453847841013362837036432922132643752111324736624665105753056224644426530281465367293780013833041189852692047925165719095833992444835049356975769508320643825077869689831499894589130517868538870769724184917983697964433708086232111393855853972889688219084250249103190806129963105830427558055989867822602417916146193676387560850975072452170555285281689425174262706554349334877394076105487973085186886557192219699349062770159024283344559624349633831033251354385306601863874705082480531617714291956622889915821041272253706349013364014183608615109275281293643857825801636338073543430331001711148580159228755676181398737816977389994890900870110061454065868864745614420078577634410832314291308071216273126973879824342875466320258847983366642851468348059662570869932747405164576167169408590447963867081851418860565918630082399418411547233250396515627865046494070205836376920144981602556143371130692482360598482168502923995634093561072770392046567111280058426932888895242126931690549743492063137886575042735897987338392057317793262005776131573175124488546741935072125839677373938570557098511572901956206502586174119435900485467576332492527622110595583227007110395500626531706768641350657264423131396139646711599113497587105894037167270608533055654358324318232449173986703705735796065855219952803621693320552463062631176346357890924757961648551021919693091696739516803298677528411403756308182799993283655259242012461497745041245587969915242665968668548820562255771691570147724188876693882148151221694041253307325502715019234527319738402941293312445066280895586316859975371044972636473902387824082227311530582336983638070295215092689454197135917169713985698570426396974703178576550487002422514453269300323820535142482173099975714922122175835519700948866866736505314397162660417206747216784782593898647821791186172264255340748570610799001219888546240811656204218578266818448332966073515151732448205935394131425101969436193394709569110441238815740739058820129771121489950920857992214010421717356570654624453372933593926045890214334634608843772500342008693943020605389245948372209159683378031260606193613678299032627238567747676631180125977990578550482540866974986239894581106155220746936242265135914421728097442326487147005393710179977891989756552753762571503679167417984276023502804862998842355583654556698011047686260977136960287622683708397025311405731382747464344672177965825408919726606155683975285478529893090888870253021170100476913919744925666246022163521357985355201349821193101491941787298345893099951479950184422919516608536011754741828196757832595398129570942932861581047982632902350431057068380057074735119834992583686640015166598146005904991653482372696329026454555011878734301671168451428539893169623803163590938877635524448487038670657948147847248382282101054618219739166307479157532552426394585508276790122540057000285093079545777214624844413878955318862089096861698333052769184718402943196247268332402671752615060140776220963423360780517693979691998801117898195901677590158676137824924026966389966002159711689035874892125446203262765336596366199392977945092971666439984206806060361036395758688138071246477145620960464474982366616114659470429499193282500734537946146483023026421929983526092075242420217158686768043127151565217526679456150944224426166749956024483001957761920823977191295815359612199273560546484411586165980036715282079687167285566766222939347148946947026467230100123933141593232722642211529299343536976722853695490524958720740369399371473113469699984174595418780030880710391298751257461787453384218016414483337269024982237413701935706124222384326865247068296685465721217223757442406476861913582050195390819550476672461363359324173241437156974498012490339377158945772325942885162194231036125782671681464089308388830626045295201236248254274660368165020302305092710998068843955941022858188628791072637705661272513600715593876826494273213218009957874807775889692435148162071068454312219778527399892845807586409915737498922470461168664901483991699100968770980676012213148718875384372291367008921915352246205576274956369787563535674768306837086039186163869392195337384577509290858646668980114646324107931585117543434384177189239140431905489599386831309433879370011335402465896681360483617495460076059463811610616012092446982818495026465101349069084622040902603390926579916791175753018639908078025212295551703038448991407961400781793619375318245071324009178349278082578167412440687036771927299510069321852122652964982714799803315911721934852503977912353618792777388035575260249037762693621549386988107775586848802027008997452134785923942171543414577757376299834521071531642271667370175728322143053350835766118509839490251675963602324240747290345335557263863316550529890290300040501311919203959147895482469447221343530575088707546597198476784401624790440720835519205262163650228437013183395256084006939629812998886963803213244515196589546367420942415074260725018423351064767232072933407665692614630135627375672479316406260547033510384152431587460747757692716573253270981254931177926445176684036416486496103866261510339370064012519256705215192127311039844287401281652749796133869980995068520151418865605837728431849603033384319880717315594856098152312217572404547937363158523291531562941054404417800393901802255138856598403935783108349679572886236412975541635422981116923049518845923110190905681151031734017492293521454820358439633800901418676429857065538962919387189050926368741533763892516619221125571679127119061884114043795768759230850943100560216003190680501541230907324445715608691687879814595045043371529100773081702034105263695244807332360133832021627571225877718308800464817654572225681311201363363034582856800389340644633760453901974551237942447821083323225423441796386491074781666875253440919273076057435168305191170942981347601975710006533219047027704575182799079628117098823863024749804115309062694842222449032321112377099986042819542796766318278602713755556619043114574543044921965745921368834744322032471622502611905030547911278293227411395471790959623377293024444414674490028654493858477298640735428768763164467711828209326535752097361811122887117159638340551162149787750887681978862613732662261734004047084937431442498177591498454456118984547827316701251599867765408174610591766177743031360065909726623007815265403784041322155033722423123868031546190785654591778046453428288909969790820506029763696065494226598124968861981915072421715967603063914822063111821258315787069159819903425251713499582010586886098653649336690000676741453365131341751117363194694409040030692883440180066457240525793165543461964979588049958130824012164031949994881947541874414329929561593707085288908507718969613074424471880982464295068424943152004023179220437527387567787064312533343065357024375355809252439248889035753060780463489538010668092434196605170016966149726015159522833055301718466816847367221853947706060932566755966911002897820222981147459712302680563929443076928300931618610634929238043167371528013807037802884176106845026135218553359776894693573256284420894972098094261138616405266921909369745138600368233004255024553063085930571859470096001161192306031473012167417091396909434478290802067435001646117017918679741266893307738774890371642235424260515712916008183387376828337726762041250894467487325768762116941864169339885436498853895697390612841429523084408422178288272008412719052303489640777058441142888811688896174258713083099045133535328501323502386645755827111012201810423910308591602349534305173861605650634744817325106014943432428728505263917103308200696471990251830071077406799203307842654988511194339465372440396684412298440411568247801000556976715795721489974015670024246035910196979317673507710671932438992729172956139544112278930370636934359818467366912335598707586260227482879802774394993499573144583758014820060025913176207875694514744878657550646575384613734608359473971901291616234001531127029751914365811547996809910167083304133312068996896442450680309058600307028406402683180307028392534750154593309699208479299925820372692334058060438514507493305457932827886311647579597803052849664421566659597860201649884304958517995280631778734773301849882869075058838921487667955302707156122681560477219330136331023352652522812478673880551984311708300767717546939878647406894190201051177365956942500618144364368814529761570001261473154194443281719785467601408630206069540941405535670113332081206254198875416578171412879809977858901283393176365874689928252268352207481884941783432050639120079468769748222386137691220460646534001045996678502957830158050290365493761518194377785076415062016256843831138116068763318225020093503590501458185872573798226187841525157938191964346178526327927835655497700982007586333220628347492901512978368331950436811430097782856346215600300659118849593178587060209310598948924963324441161693701073191241305465337309407854488859757520821116162793966840981922819824336082817181829883452296616804718217401656301284422369921644785764304761109559232049522482492989752735062519199468148754339777980949820602582366828666599527492169036648022818231212634285306301275230037957600629139368036410560422288228136331691920036200993419906325452862833091767257518385213870913100445926993194059537358210133747655385900089558126726088815054747603795578449884119955391164999122155375263148692332748242089237543373742914089512366483390262095588406355543076933314101902907013369646048793932443861233739901644583267450486728556645909362801595908398133730153734494658743205562247977550937758412629248150138134980505124958920238608788367191481124281311091017720582351449887140118348056946380389065631466662929207338306096790498207533875382350222762510980784373350404882225743566050996165488652525078338059119479556142513418803316537934473362291127947578003359900450741690379692652745281289160708115597250991310236968535261824591229699326863645328332804957297242635293852000321266267589768178348369605881191086159480451524967636401433024363584594929905946090035712727940524584453476128588182461642489764143697488059418626199275172090837199391137240547642603934292030013107671076431485636546393707459361854015334581998194608230134639241305198909811323886852655603790713591686881639706187201495923043256618121199040179799177815923186667535665248504465786466926094285613694180102194063368758497485498460900214418786616680131404474804970191345324406724628601007032243621781956280463579448641011058450397999152319666170831777487871015721646621223080340593902701927369328165531112020851157819747201422043581482482566389289013756591350059668213031374141512280128451772155940215697812179261556709861602794515237860410416985962121238449956971685725991386307781313961131169873740125542819311319541235372050564871725481637276987441158151863917385219537337213963313876385500953173236785919619141830475267115849575335918575043648161208823353054495289274786538494296488132033403658693316003851419349594533737528963324576692747291735232401976120652763603025208142460226127801056581055890427931611958265191813001434806844056735717700578733480798276758184580855965679098218694914236823022291825051742146342864214167354353792167042424562470647769636319857512859722602248471668928869528397309241550185272825709176991028864119113406136776279574333177504042137657992741418834128565310961344143266062287162647256976167893806989053076292800751215126530569009841226132053808650947180492666267855752980647212611811043292296362889389296069463472027965650846207735304657639320509156954068419806739008043450825746700952209637659679766550884898219735483072212178965020324045123473166439373675999472794291335564108331065470209242471368515546527028306886989573225393314333784767976590789490526926236046838003146160398427287443659245432613565262441952561082742798070738436090800980017216820641033714373374691635369795601990895334361667804063935340849559819841160258337358696324945774639791211362228697401160352020854068376866716603447783893444975853375432782414956730024419280781521604078400740380261250963964889635320938581432590290390998814706377400623004502825896107151501763073138209627741344861575849326975399384641692304901030397811108660137206548276367482762520249749841318724593180103857660865292518614927439653208672871053256710826623385954255998005891500345076808283250686006807890500126919421852506443757599292338901221255662621068857453352427631638958225302469993256582868388938521402650636744777808709469415082516557041878866800593069806710641089664020448731246258247684409216615359515847675791796241830126006412015629260608783893730173419446216611098211819338984955284806425086330806933400737566634886513222015355855580013307827972022165615628676851767764720660528431334464835300169484895221528878351458726101479329714166764689264865001625797088881540624623387879214063331800531238807094204183178166416182006230310211623782275819979032555446237012871274136790792641117775617295960549280995182563712492439872571813367556230163649367473008994782363240795224152436856004419693220933472092109653989160300416976441611714593201644784384296775062820385410637310858237725626748604813803296354599614696820082183092965447568581708051085299242321851034528493545095144731889847573365729217584155715979422092913793788723669557999232785559544015234627048961542256407961306436736728106677868331352611566231811828099888621267891207140454648512560089598586175247642762370313936605068264800482494744893748180021924255187002807911510426649235451194524390306591963267562100461740728461443573601207340740262673894105768955743777855668571562053435929281432770555263165363036116684116992677579905043050227458344248411642310135059498986228022646725423840651890051692082178097046649542776371088334803864038892350763195423002096328872364435895960544399872168569037022756832308619383525420243560508082718443685638844553854968794456647594633615846092568876505354666504420995967792216097329725326548190834275101639003312622946240787545927153257284715462929280683706236814399375819890688792664564156263128484233390261486828350333271999337819412630432860900173804820250212312763410424447062341618272442130314463742982204851381933106138548204883762661957600054879978491338233734060434835157288696529855070662437373220526430026694142304380636991586001087083802859399115108082460191598347090543601826176816558781287974289124109728976704705662912531718771619937889570884463795343468673497809650189719541307667419709662323797112683523567384938946521698751767151979917724548934019068752107299402768376490215848081797927110694489724784284810635921071126941294906828241323465857395728330040978961117739609910091140684989605687162917636996724809398344232871626075099479770208658611085233722759088312958470198954114672258493373397989050175039726020266044653668044005765020575348064858492433791544471598967413500322752067242203717462587790442961433244938375851350939614110844659155561536729229979676608444815672839012169802854000918418785911653399053731853060302962716231833962733541530522892909123950957224501071277029749000408585462566231025507253543648755156026353163902217458218703287732629029708639715475272754955987010449566835141948874493216186304612287248539034717114445066089922162319605300395659415977118806054821818239946800466959630759007651792135505137728771777725936708549663676357050396755309774745624243106435025617213361173355612429319661587196673873933446583018758817900636552660731500719497378357368643561839289478151296062118706850246901850421742919799771346891419711219817507896310273351191574590331152846695118881697280318297315359849700149246959678049399794706285007161872288094123533034010470103099336962857351210051737651122470379914857636405672491799267931813827420538151964360066998400216149380646684797596570865091041228293876971839424208090228640807160937523901660467105679248410922688231584680318307736401733995914876367336184469433934991492014045126904844639970170510968319791082833777129849353814156276930179508207794777575885779958677239309474150477255756562184600401030652187343050425500682540451414678798628173032132664017900737068368719941945002886698290267585151437897524339056989574188406467110752248653162200752817711746154320995762816947558809405801211205665278389374786578841721051993315912648424813588184465480799244540188785942842489973944068372823714499609590863472416813427669846847705439804785780100296285082444980396923952542719364976500665750185079601649549598208394314441929268203395995070949329231317577659733568803393446780393864858205350855941534869523333419776828158578753024593688289731693794545338135867099545135699169932245584925382788764909821058345212648785768160723540432941358226139021531503922376494196575638489818587741125004092689628804491088342979858550315792622075859425239367362932238999448465062085122601732194328192474948892798686817415720215436393338940573929625272792238026274788144968140357942672425560919164827421153701576728608706748152608072001559175264791908171075789180416389953571219130717167740354316757373376312169426351304762505634228553543126364533121121354166687586753210780178158798291755615936877946122573890460476744487393498981530015885899643515896292098300576559921439578410547965587050786289326456197309205289397595870991303446349305509499121023168570229705842389206149619436985641076352302411851935672841702046861213152419935925470657191659567336581196060558077520053724019829838422927205691262430094783310749535337159444643713272868852035682970489476940041742395469051789498935309881164485828598717595153980835228025489418429679592965510926378427574167762409579438379502077250566288083491688687685409162526343786421396059277897345292377035410213320475084583980836663440854320561935286469012071752244034890116957270785129913786200047438524252726523972090492281146257780590341087147059780946840346800763904655060347739469096676335573263713214423531802377235636125697366344966604219947383930122045341277273671827459558890931395996216226254584573174258242606054988974629712414093018990701443751474150984961058384788470260453224314500423243823813110265482079602215754251920067327016942361757117406006319686678162292368792067653286125294901215396622941918225494241858610710875969871868052112684991800607259793453354916905526649101258269147654558182362912007036666839956567233629723352908987595797360698954361275423210290560820183445734324160551929185145968781443959911423487246873946513871563226709652346504062095921406407064305247794970438083377678756608872338057401891961230016345351706312816300184768723790477134092278173662074087697577819945567277915587612675222063327786672390025669922717401378536563486856654417373521685939258157982945707003705058607366613316645367189143928119612977941883798435111854362807732330857172848644592670885133175311891879523976991127498574190768363002782277491039385618177442307456466837620703598428405643421274142742148868355973612040535502085333560272448427553039293425015943198296119003468706515095809246124096866070826381724493840889720131872704958241403513454001658326841808789551378932085486921581315331107035754601097109911197935376233744751805277738978298218210319961219355451089725637412752052053661407808123402832213579965816208872529254453652445648904896891413807966835822954555045701361332117134056594841157733040370232767518013063533786381373877904947960740343946428959540927781204109863028797140284760830912106592249284372771965193507455488604937520663132736410705315396908392692981331705471392991479552286904865527286169435160561578381852139151729397060910573937544623642443187685671105134209328313569599751420614357056632356026827167534039519194583011051004398525861082920350292542291727302160609993305682932131922722134538634867023319096942746317952405374358816361859533867700066849679938987157700692404035764824910264695178710443397644060793060415634100640463927877257825370805875327023462138330246209772986352667906166751919704363516097353381253871464512429187478333341945097645492371032617888481064058403322894160076724221708855100062098204783800224291555411012779648335035008048862381925370104534443697073750315304936549483223367766126560742515956691029349889962194472620062414509645317561601584585969406668149965980317847309036987376693782044098284240728903935925663925577885005304887532648088462536175422374876828816763348455775431493651014836862141800353127525416490664937742095870472372313694970341639042166577492148196528522677576232534312234767565091144097882884720772382488028156482765270190047097205447556879610120810580686204375228085114154245366818654771082343700609532096261949109213778831709790168097301565776530560708652962584118923204604192576473561244664252920454217237696086703739480675113131600889112644120123499734156676819977426689360300215669907149685505812901734543825369039149824375679353282056067355586363561121957035783086257462839551091223712761286091149977082928050356136147780470267816316081759331494126744678010537585218857494887931299620761682160518474326983822729592490772234409815586970744095741431482238881502221904853973278800194822121461980909372736066842617175810534802254647418351841129678887436302004725846024646457734257402123734993379351117288620738228691593816985362451475135314823056490941890626318074500524346067526416963375121280555238324027412476459352692398002326010449526920491323938782393810586093403593624934755883163148749771520732343401131247233484842083381834060457095877126190301202378941684980323595801590216586983029499712118775103573846199405020025797181266482692964711833236978107580929236461857028313603723989107947774096200267602349001979995257840619023877376156300329420954221667702812569635238814400923369601150438070017226094774919548801137093810100898770899762017010304084209914610099643109488656193867212610442737090069409297357951740257635680719593922039411382339591776208720941578815803467859131520566702680761782873816349029070881955583790663266304221308591703658862912540700852078536226409488646824538439014580546560184746600210773762505126278932697137734597910736473800866870334494155486572163598627067038302387942870295222542306813324557416955468201698998519638721752273622059802267969363273349402125982096605674994719161635301256390320052128459525608059527286828453619028030404694031731015568459943570369562001862655458206368159674656517178129709600201249908892746204255849101391636496727933393486871106683914849392214419077428532906684750474418942023089393008508675248798602698481982541696700637246323909545454423089446404060973617975075392591970247390848885006572376493841415740912917354154062870167659670542806489707817288323754586594013958978039491557162157187234439928640077651595422228789039539914643558423543043526846177673373843449743635198983275581041876988630627235364792052800564098785696232706364853827570282011303434055882973954294904547651528147914419848563013570379884269330981702854080544011519393853922577561948383126040534552882988319256468130218869761027284283072103264199553551306533034099361498706372878851401248688887342379969855518090425906416382084706122737673342338680661334295413274855123355736663361170592331065910309000082816646121919703042138703157413151810198215977646597075067605755395577233549918685433537731453557361866492772187613656080747042304308768592757739324020887077325983901112727604143403971666086088428212559952242090848143377376112426105604422002053516386546471800894497196261658750825389908984747278382146306991216230367490454497898805559079003133453627903238456964083702198083527155969938376318854680858376835569216529471283845826075838714607565301190560841557411407879837365662635744049840916387143749854216166871638979304979328104375512390104928388275512519581575086289783159852087598052356345259169476313983700422088276614241853922542704135843698439005350532316762779539895285768075986970585583744265666826655396077632166565971969406633023203724654054397751873754847716367102976502859861594534579955806401175997305449545696347886618107571495334314279411074526101178095585978598547098545185413707775871959080593759994195606079346272657680788862913463546378195897480654226647139860669816717365429089958103290825147799535567126281624164353512379417173798732559867927902595419874983741777560482386861448661028156280900570325092064626532956172799863287683076790234328507889276439143549594906415120660003897446945293068096821876831185879102111832292812194554813262247287127456921232614444169800653702011910610823790813196922292860806505964882767544153859502868998414924906041804709283401042611943259401595205065146434810410165818548219882352638010740243435929285879942590851019072661887829983282145642974832969840225129376725734590236507014454260843537009622799250122164586311334728752174769169167673048452512153432185437109769876393130263293296183615077998873676244735298852039064213085711905792195876964394410230730082230902982433273641672315992782355360856216677654812588361823823266955937508938832734063230052837156241261383131701466321676023022218039699678519536131499644615824427935266385996532691511603011444499027438548340351956288217980236164564993137635055960376238485857945677854864002740590630894284644023019519612870118167169919139720252852867617783890649494782644862371628682535095094282300636399293738642653818999920226118971258529759085484355575091303836384571982578030505342976697337613882658578640964890810646742288562617596459340710255687836596143886683290981264877069394528835939293421756399694311799652172322479370433180961421922788259047250895989139440816234585458502564373860915218752343951340421095785815373665403772294774441215737244490676086578309590733321839766854311142353087734410821123400385860777140867217191281598775365097154853542863346760316506876339588532082045529917616794078807275585545607268552440771967904163928864312740949732899682600293116651029794997074235845620876945241979018649943650599039913590231998795573300640101899732428196812909134118198456254955072360270167833541088692089138704055401082483706151972557058711761048614238956914581733966376657438289667720090615253897272430147538365280512902511058409933542366007963475284365399734673720029697236755671210384034946994172696816420396972631291801332170186259383298355484920551785464396683494134541265384763034266209298458854812829527832405848772273448814182347427620132872970760555864110111292804959246115550716861723106111214937897405078288592411873966974124392460756839529567289996511495971524152009920777491647332716771054069956934806142334639287953980369461789218182989441017928087379979551547390625834774136603680202999100379220235706059952610822656993863377266650253148636736760360285714199850301409989560620330012128261023140862881903216706840146738767167640482004948315584559403712931492227499420172778721469938862572208454912793889937187852139776467214408454108584055161170276892921776636517084599404277860990117773204937382600768347818379624976640997720074728513759614950259757965458517635063828599255268643790868508107536957710124099351128797280838470857020865092360249388778136147969897793183593715292228987974217236131076988970170742304677660313113196196483873244236522471358567273699191550740731310929044996611077827492116419422539369678794517463363232185675195121317015106571119477020180872195019611452225543837192058770480860331164897124012160378071764454864112948908783638033144975954564157691725754709173347420001539213467948835651270258560757646106618654724985116724521415093640455967502007520514305757361663368845987226927865218476993563140815267129022456673047231763313221319273190735523552854134876641213076505729278378050416569279967011734844301170314886222211817123731835554417919415375594788903414794687453555853504032896280765565407732409938404110870870057194758865268196123031961885264586632301731726949158327060910914527120618722937136024003201747376735062916944435516169432271487299121688353773284085836228756067713564650981374427677081596732254504548948912504071595366501018356844726838507446920576618787886775975331130432933955312820686034754455298753935856283930300631207139627879349401940807389979673480126381717474351277220555795636376820207930427434790233241709932495965571408466654988960575913743459083349216823090500580167994577470795005478494253913135886729222569392764193459742938829513910592827934294417528699210074872591098536342577218642116753604076220593527734471018423486853388550819453478726834138015416187335477310583677490327731711711834748162173641048634535692369086826085712335982424250130459234034260728719228778908934092255475041213386177861297241832390223214274135594617919290602325046924973148490743490384404512972780117786954943694007975220407866365296404502480362239382544600149451505129825746510809925603764910375670362742857396076702841718572039710015536314991168043788254919289855748276171295221481064364984167493875400792431383029102411197891179565050006476823123224084839456075212998986666290952084613807318118890108544705988794492633586690902317839092268840064416526396703539755312760422240220275296778162250853728130563322525537709875345746791645043509289472360342466300845879751763380609381345959742259209261745211591763606982751075126488582590451664011148456387207630740915706826679706388026670565558796375333215696732782464400289527599850196215008667855592537604597300331408267832023257798568418411290775398616193778005323792492847671362260078128749736998203644913704119137736657065724439982756726587861754357280264280767006881942927986760848078834149763941157863175175342886679749615460956775181312059458043052460700541760775863692717734500345946666723638831529523779948433705404758457550600808746826131566448820465076964414070877861780744734527408823801502480223810107913219376135600953414846681940830984581503987473880508636397755468208929798118657372138509180374777310526483194328383503807847078073640237565861523416072215217420005464008086199587216717524705830064258437832725226626516497755704997483021026370285854061443102063161864726244168570701405902676050746074079166816480295506284601893399379584331339229446299626986007785003664263077762672732485481641000828949689293294911173023660325980195984762430603309324137849711595332001442668868358526311155855789235721503522371928849552014427892490788939173304488924680865255876122747425314379942327964837468124268792938458874218197566813521417638426302916831826008531484736899673468374909311559066730279101778026556231096708663030602250075913025921734475020013517772413075964852226717294186071696723484169242672928783897980049036250634217239887674549575393985865694846538084730930773795035818843155318044777387885838432606914807799208340072893041111998688979085050801423877635357045183844772918557725128113478503873657310446166271155550399881945827650528914333724051728998519235405415056989870183087516109325735474409052000499338803251920819020087060407476254645090116717177698336537094512332163324601626171987086386892851663019052170087572963282701867270088884761207926819224831364199985981766913853141949440950015519680277507724303148098974355225382475017638355706760802491427109775061608863352910450463539238611741715801802865739301354875496923256622343656438520745104379192343478729804402190645278951277355379187984148858188865752917379265430522130617925101277916151196657688058859924200544549478225993935584420452972982514345106029140848944035985343291624292045609671633249422424472532648194123291502182059225737014149183905520099008569353279800747254324854792898603378122114278156418318788788110395719355545056437305998420192624460298488618395994117963737689844838925147379625915035258590438232476960818732878531521074828402455254136731243173302470504508600157204208888531275702763598267958337564231815250428063145748216142720570093591307877274221048015426636583500020026342646276855625768469929079072564786719066086038083465517922823567760840066070586434792140618569693372762908887902254606501217676891638579248133619563757381547823878247481354314100708849147585579065764726992013548236887104217772008118838432539703728215275407079267069097485009059893824632726561595624991391396656665618974726293539893686902597962110359886997465710525361216968948679490162359361951700149732428983437079748268983237196417554045847864345257511570670139468310794556895954327576175262590760964925451718084304349355996505269746990644600098630473525565762544784788859728043843985883442686966139167452336724818260886512172556205918853162529244483066656606635301048661285484590123187914790237674683839711531862971572086946987265899084461673047404575101870179239022523337261125990273768903776116592263206399474386907076040705306920632004704535611108029156343886380215442573527990177163871729895677966000994039843906289477620790862827959252190744125839590393660359450754134859017572457896406403756364671788048190686663049859948589534940016919171988676709819321228305043894804994683998632065396233583542015192787587883706702481032333100395266503184820050920741628852591175712950905457842393601386725499879827936968788811909741228337195620299182674361860686793750135713181565257279746854078502052780299305152880524895755428420230446881605634562938525888976436293377237648124677300307293430333641449360873260784851648096451297428651980487270823524888368478620835372416974365537293700773192715222243146806689284017484728706624545264352968502623396957472179215210076684169776510888199318610589666289963296395697420631362211957597163309760611421513583359441153721556473107570521436096922419863236674643958005439822301293073415986659044989152664666657575588281275418225495642024986587216336052866560152434205105725833002719058874060159030074820725683547190700255017819552427947312303497895428715049647834845534978111152630558552573152057947619871040673944212914428922378248040437504878055439152566813198563822644863635317812828577457083533392128163849892598979999246768589232302603061529121549731489579497293185148809288996263967259719619273249472544889813840779407513905216009667118002273050422741632301380263095910966048492803341079080788486529413061133855100419591514406496363755998786017797158249051053792822712738725772610256970978825045580581005775618037955053558760635152194139977024464321335421805967438583919345528258506020587246551411975861443673652948695264046680061373393508018800556957106789045247132904453348217064660509277406045219033617156512702884861418346253691719393995490137840356052200697161242100049328198259956594665337324713227565554290036572727140055235654157071539118818232143337818159702477001406007730194926308723037573380462494715239010561525759174047998730020032829183207836399982448475967304811919503787005803487610867152766048806439480523603834706374854348196269222605267209527475602509691218842594870250385801394125867800351051262370155506708023288431770204859675404838542730748730145380491314528831031548315846839845892402470225499587234136642839327258110269497682876174763231357014080916838205667937871510045110855820655123406160396478566275552154067114611160761060629837956316888096372298210506595707982512194099511324416946417968536578619781611292391218887023077009002609433848885044511980857666586037572329950533085058521248730833853917275722959242982677597059044091983122505187295659192349443121622061274275459865088835910801294235237513914766333836132028334900815469834556558328155102768550025122505013158715209378715406411187752700123183250974452104147908727815244903413010660742397240262950255149799360308818017972870532934410886003962348938007825437116962759560335249909078585478491784581078610546817624373492967216356760292542752890104002042224449984342241338663056117964575613163725087369611836082410033388175979995589534042967658330816558466094077436956566254787174691715060864520286155956667767541812409102328694756001568098572624322815902274557695722237654778856802017066579403717135075721244691868667915909500182402997564510661066392382772103801835857906546276166473305093118384974007900611265335540233114605958421349040229338471083682315149034001859087341725497111024113984484227765708860320084204887352203309827139328862192031816738230898555431423397042849212463116252141720191160977342599344152685746017395930365691100817104307291891609431459490711100355702721038791714294866913095027663159485018167251217265982248027720164669268635648806830703796399438979527321161650057298414004425861542282163354559687584202922529345386184195796590246348094226486440209387929330717722877719674489173886771521607697409720566794238729864349886167361105382011979089424530708298228378270897294555022061865289208415423297274628479928457220296041615068673183830365309956359768435880212473822706833526511683767735118326488175083846476407171374707493195284689811102295829265231261652623195928186236130802325135056496149839455200403824145468108381520909560916084320880814408609913496108582696337247876531131505327041482965956340009385629394873131065369447180326901083966451313905396842117705174053017185658564676440752693396864755023254799973160558617504427114105772047300160465773994903170306092378280817386339413791952936345956755208839072162393682247929876874415262325547954797206260036047664522587932188313469067828923359985811311534298945402736204791389149959503234730046229888077317525917470094553925034591168628264634039794429832279275166443827523963170139945343315127483834129946049591197879097500123996804342120044351088690068810756752397164550347883840248095228442115952699871633955528676951394209122626808335111961345830775229750283743648487633875852022181212354231524374938919477149042627255634386458579418636348024408171038512804198027038903865072315730464164514238083171615643582104329078551630768951357497036734618210355736159313792913116594077927919625444537979673386459071558183935132185660707207024221976841404498015699374275818431633867297686867344697955488856767317684936550709454799069207076820452368211907956573993724232615165609496100636886688555179525448110040896992986907927898596940685472187168497916614464746803214687815718668313156131900468058917535019650084301395498686006262974705763938193485824652626660204496606631013711321897364091469825187631095313672448026605991424230023163189430637170502012309387889297838912741495135434536328463350540022858518751585706091523319267644760575311724037289421801118196613382209230765433138878126471141727015138187915194269570645822556331811750539506568827390943221362511615817475355549474980186568810451233263616687030321539720726645047260204095029096721926347804050350953982224861165237852389950077803115747698022397210487877620177263513430806011574926213750176228346249017229079447064869210708327113748670363568877610117593083384296058240806840388867147498790912213110794177531309827569798772159775246132169897540058051676127674206772211110533660516778556592580394084160587781994699865119728203474502113371073057547146104115091658715389197324849714720924261243597354411750740376763791898097582622733483090662723751581438400655918446364808316483775908241880630180616359458393498317420162514206248225091738631334723476703747617764009506245055712593185630281825270477448147453293200776777112391867817469837174620194269089471777072413365987872735565037402968453788823487093696312843134662771678927214068343009882461745953669105954494940664176030683096941453982606793977299079748469542156370084274338008083787485378338876055527430945523399439535473530111095542990220212184061656996363737638724360743156577448780309585950552269322014504387039999378418883843919135026003545830597614972249089760226824984321884031008614834856492710251173571438259954737926543284347318984635697677798396984152134495736224940737770898475144989570157034276499702227944411978718778611630482960331017488774868647384833578017256667826283925879006573090863025660397957952992316628531285880431034498305222833382789975961610807488362367073202405510851735568938916707691040179233349923881492008079710865419244189372985462208360717538423733672157233742755778167849843012474521103379538393031564814357883044119152362538365344654579212640566590363463574704942567916581508730439032287207638321291080598183457833844129501813616670935758353142896794661551038877210492133949402326566992507695080437633785192788326089110976935575239182865669949320975942881036392453914431944711525157530925699671022824361465082148293399463364513109748040240094945379694975705531597795998188431213269552756073185974942132587648222539178711987389710770762634764326854449043838215919840578242975384920052606510764858590186713995733268762267653835735600727695797977625387392190017147864270741064582063375164769300971824739796383810499393739728127292068991980950548232538210335062088859946582645644288975833266370006471541246981577289487911809393078402929511895288791832006508971953827117640713664638259934673056203881123017821326621529760524630427039032982950326938262805891358632210733036863073873912816327188692431133731681596626812495051674225781306058894402283757585663985022940423100888218209967025582781860060624083241908868303582885461838421923608460416319230394238697037118127232920192399099582503730546085284427102831524386044717572401489584661725198140707354967165699276060397600836126717141880056932500203748621260284913961629160528523633628537607739583059683547264264018907733583215923302497148552653314613898189866102066857236995725549657680229117834151573327380669841006227615787352520007735441419523489262303512853979031785188229960037222979326054163266358788949679768699909385550267255529811066313015964694949719396781355766746126421362361230757410448218056056712362335706241008564869918842104566077040669141302346091751503974202056789563821657521396972354647559629577152380735713655483433468428740946815280498126307055450525441695486281867815827252748280942579615907374417657057969878987361598926880385411281604924137732942509772002639432176533194674675199616711526230500239059123582575291955011824673855921860718161711898136242865830239232728951325003531385244510159434250352694018937172027259071700083622743602628699865899845186446158702899721469012480888372586407130682641572740313774234616223308936225701199766150374981826632270141091566737313462102715552495679646554495121130225621761149510431538208959379689718331752835899504195248570463532453910612798186672508208566655149227990267737970303399464728804888926881262889437252269250137882631793304134770186156095363875070833539569043644747574652428346888478101685414116746861114015200722873620536233172345948806221036858588211992949866364278255872392154917251951452353154518935315249023389343867433848393840397964033586461356708656730762414810483744491295706748287971136133865013867480206890846789958296059029618310208276241884971356956262225122600547819611790267041037812171059672137300689270901966228664900694503363477553359755326301751626868036664514481700573284699943780276821810395915917709532504920753310700161655266381169460118230786817404344987734973815393262079821024357620434379826524018323640851764266413875421230940298491563027075414083885743838195974545441932522932388340683395814068144773393149503103726856905465697658633839422367493563005673668474736546799502786493247390125899218657344583769641473428759888568503723897470233591234657507668222461958047620844523311601344815430727807596312226318347676883681828838248249050651638018642357970558967367172968795903701204808734662732078116748437231770514630692194689493464055127789287838906026123048488215375060363672412652044290595219832277547447379084725065224723892944333449034816746967642294892424926962769258245792591050846139865461142734851214500345512914741196676619572449706728077479476736099143321448706172523507835451183517147428436538338886775939636912875743961493855087366755472160259587679246873816032365930031554626648541049737694468033761506248179087131007542457990721032841268458317499159491622125662437811864719399066647994701130496377785254838826650787920653324051546552757129878173825238545318232084155526682789654132031077412562574372305727347063934288872312031713687745414003179991935331452385675778381551245925396183192092712879515177086275391723332305298959926604790744609056834761797491545744655429767274145299235256504822184982347470518045991044879057759606570228205947244893155053725907696079861934162730724370118815233928033415540085743363040209884400102343768828903545997476426674124099361146503398870108726059477716643729222709884117671615722926688205330817976917751518786257011224252186796644420963926750719842439468770977705949666877248539890691213250477871167529450587561538809994971813057007522923589995469714082518092992830645094737604108967379502390220863873228891667990773544551560807491990016944443563503431325562047503445822963404089689822348180405602385944929571512446725548079835399667109799909735413911680361828143708616951902771171508103315768646105579341070585669382085891301417333136079970005224362594670231135543440613937293832267023755551762240558009557606967835140373885492854064124437685270912799466558167555534639874990560690296526220159467080501739704519329317082302758828233259621662769971643554547788304556611626339473367561513986165016755526048614386520038433966498709572101380910539983340451349679616643946331671125564781695250904617300316259856744014760021293218634529464003083196011121042054784262871488934493045867636321092089099538334743067925082583679351716303712009094024911799750586661716034171823524439553429203572593591071124567140171059037329873121396754132710727340191392729519151276559938337970821558886868509458421845603223170512965042148583395976893408554108359529355420646686574199364953873089300101105388743405890699658615199778538309351188120765612999962109778677795406595702070473958303905536900519787662740373094437262588796291689213221265911491317207785618041376930628015797688948222691091339469170557189469093120545671511410935580270029869212868475293768760408732873723294829953534521673300269164947690419519770377559620318407982051550427075263112597141645356452822010855927710794841925492974408037249857622872849147278037784518257110551664380664762540139537423702354477056227323381271714686487541161961802936020611652098729461168939094849211644456055964345433510344719155958921233521734205700846480647896663160204604005141525513085719322846825895201692335070589862263251856921609927820126329409353394085248075329604378053141610797636011465868778571810366026574346830853659088267899530078513263833524360031066783434247599138670910739163212000331012039125151382674898812100282145332437420016089665510805885479509843939674227489161178355839689248497804715826113256635260053405596316202398023392212394087425744560394066750869510881100651688538823615093848278311773500434314892052997393484050968983810217277915242394315032992347281956470273889763570468744876269933168121018458720833097256289611259078092449808443225215362969161130112593141352121743227337481756214087678979036253678420230407346360992158594327066135721043112209890987379159748615066440001595818239316938336453703715476177812614584008494211879665299176254123504151175838152992078740734957812508233612203683875482303485985510527435451648455786809466433398702146937943808674421487547851655885430399860739573800682757783339557277729511178544611368012024965002258031447724262572355328577434525203454732890331825989975060138107613627722658613828475164027082938472240215538422791188771038468198806048160815028154075348259923367748821574626473370336441700506930320696305605155322256025892337576831313973966314032665761602099893844185811395841262342665605475671213355260141161858966448330478489248565318408261719647199153880862064304931342794129073981633974942826391182814855232572645019523602694237998858992089833131445957811551942912051342335690108890254517342823419768860139267305904931321692159600122078946731548944313171331533759649876557608497359639097042117997663958257088759699398107650411645338736473976540037761042508596939653582250378091401009174447281000181009585985207563181787701734867851122649303286739442446758640933624662121369987341629209031882752346862544701126458164376927639993583878845792506849735109235941929066746885733140101827260344984307670807471008221816560080791205652516571521314727895807049798909376610329330760427162553698044166259291078183229155428311146764427618756917331597754206166993994502594789105720816600858443404886596149299329422152673952234810866522648810616526210616170381597816702939593548696231840686726008796537642567997471130178217668121486065436164862673031755542200552824966926327150268243925316133365732098290100158300752110847965640463200783534667500554806649939502144583863588241405003709414366564653337950293897701757408800283166674625785573108759222984784919909470232993050719751087088766988997596180256413457869053521329530465871368765332261884381322257317294135554524797439785275808592051392150524067945061224151624947261892048204765239562290660311981880419278808164780998623898253433682810070067541116522175560543818519965147278690966053279344672130036527144050098167630923442873618216851302823111039506359749123379451824245037033717792414500056051081736712256796107052847676897868735284506525772256197033325650928585288383747575580835022596590763665396180726084078708045393041789391563296879067632858675126889327449590463954340977527734763184154270923012251798908040566198954018506607383895703220282449875183788344825894407707558034680104704289751136902347207019884079313894033543403579725953862283992331605675673889876197018259267850084039880328723635737227089164414512398934410093464701769126718725649210412496381750777582701592931558287747768463886320760144964025481314200392416723710010592554442988740333491977667580377486607337480743291951896493562960328977921374664221382942585243388974280023285539144648485533208034477218080449172387253582046070644576415814129718116394819340637456337945710310821250562393964926611719168218089515727498200340385507504708105523259755663959456709279277083942217820098867402672506928167359673496696762338301009619924417319538956119262271701682300874466860140876029164478435562571861307340387100336858498363173139558611030238844895861860544303341343928703312725350713480344014394216269646743512650230896362793175056273497774100506649231863709375296784424751795376049103500947108681280381610288112901441694075296069059855330444940066364414582991608338434779658985296604699394404963407456900045901974897209157841338236997376611864602955627570568995652693836520460852941770063780862618756809655092763585373853905435973348126400073057301511042865715674621074807583428397854140632113918297913495671743819302791046874583099598989844602893249247234503221992168583705669519292898451327236421125091542089389410990365777952030690763105411019734118937703640423354630640762202635620595995468598723492033090516532769621547638442067830043366056984846156564039896988898185627642281918176289951145221008779632526620966171552565458176461200131820280905285702868434904148819536183555712276947283449250652908975806322094244198282592177148745281395249803981581349988469735223656016826240719624943739504539876301870074064880339676514350893595000765541991796354193614124320436966101953733468510589048884122825084385114388231751880015509497295173299586812707176177775588557221024381601055895077298469194926557026440131530922623843753505375286882628386743635050822839671231473708777523732142145360020862777099811509319793786085788252954974945281620167757464053056431583980738078992868853423491650352056652345754765239909578362313947401914986095010861177233722554823246562036494624550063558766033763705486272819620603910915908540299968702460946970302225058703864127603977576622361709721831005799921763234029012922819316797762162173175666822552561154416704798321172062538948686551397517643359955813715753206934152179045725666081537532335391418679235770154964491893277394421777024178964977847336595809141657327133456885328247942352185203609914464289470561490801327882371489454425107056742177921539359755880926112630658736898827871271447611178769905558414371555632056423676807296504906459785726291024019526518807927925439993321638062589419265701348202821754783911772029897258696211165909265916280457051548188529446122615735902200822257057693727149347218219524987945100915058853661227782682894612389080239243648017297257609540154178891528080564425792274495251231145812875712342139661489022797345570509262290529654117528495002849375450465931070703609872817829249261410582516193347675378782799209712706684076258750491443853950589067664299000331705023386701033642111773835640060385776395750397550794158630394964738253313625531812492014456841190765915606087890232504195968406537682962224534174102270016599539127255010355908369230123006349441706274033316676469237943455938712887572006272910812832034766181868965781483923446238112062359248425695685125674700607910989847788580141690662926593463134486401032922000609831158760725318632567927342013761915081885597979356134910465276479476920397151390996168149190884944125345887055163935305694061050567253066996662310539896329452862968181961474663823610087528344442830690826456986054674178887730972472129834666322132969230636980466030082059205552335806493924582568898159276009650307992028898172088444959467075297171177645756166984217700520476692567487252730186545991484056337600766869743339307468032358463195237211532319271784289538617678457014192440605537144675856392728875208973829407287955305289136607975943668997160256800909165724784140356704819122397351056114813343898100495803693974033762024891287654083063520795260101810428920309234276227802411739137237245318627404042104627475726284549998736238472597429150249890758499578860528637559266697103618763807627148259918332870778766639264610861434399833354131699708955764303564194833901268551173011378421950487890234514434053462820199541521872876795235810365193004453875037443547049934465412877026054406670274573159586942196122575332470716757625009223143652741632511837403759774536431769132436170573548127948265774013079874207607826529441087123283470480727402413726236185243173717018079895470134014661073975014029983399936868548394169377756070609501717249160145471266781721824945358841647902174011984429250701812559895726656503158582743360953590722352165021069382557190115869401444332255294610594932989225955784186426486189370730927567185973798883406858234212854777964379560976684743074698133401704127345343585520247779125647803882263024985803256540431449499405577053170935968619537663340036916481794103624369267464111352859369922273267694460829826456641446048285988008830718015484368739602051065683073102118695403816052542095531778827608411099666686954901014259821659621877699014232325164226841729537004014354752562463374845995666135746218028844896391675884315206716266230617639221634858585843859227361509018439918750520028279608313749235824527061680503659974694745797251438448530976062970873307467625285166148619948743182458266226649239392605438853661869040404084232734548960034805711650869944293654284185395378484158043789345031530605856224604227222230961756421458663035090473310262419747125700349298810505967728935299524905541056947109992438639692057122597874109372897457932381087468625434686455929616007803140139078969317534028937405047525263262082690425453895103237619490851593848739023418955417851298470335246710647990527520858277313660672198471083947181068373657877362205148518276076686388677155217123417637913263136065593027262023657212980918343255303429016633344130165768496074832683174665357256236037574145884932832671105422584312980601705155738232181812750883602330931297262886117465526935651788466739391371179383369578777112936464250999878170386447628782843633836305683177668821840631820950877039799331050647613973726128921202495386098824043878220670176077269266219938748126047704217430468337379833559449286893412410952596082288813223793518139400329426665978482449180483000423997376253622151715927319378353910816622663030118556487944714808547145826762707129841021635861735219573888228263740263099763554578956474998101695492230044538705131421855736240738515246053219133156427447671510693210607478576733389004342885032262508605144680091773065115252717933052772509112254337117766493808081624298059744322229253208842418395460171644602572152910599389801291420415840742005270996959854042344278600132986990154540914383093997556364191007334544613461381441574236404335538817297808003121159941026923408976819509038845679551908739410146559966907551229797630483915167860968812555242369302991512224987703721993773417775048023871987574638007844492642996144066611004196176048247238866320184788313378384675437660552478014166298337264661769604838393783640743530250934191274115425584953118089437591928592100868917198239852851157000981300268549501099125535949948515856053917127444123103255962805708085247871197478434186220822380189955030836405250131025557911547352460149373018883481855004928988087339137533596474261421414631003324130477815717634808132378473192975749421306199314119606229023103169385969200590563797304090039070894399726459524023223081518760982470669809201077197544886158444949035502504874493819297427735489033960833879272801713988414139328178526266187618788390453247944649289818897319441830150317978424512349697127541978742112692134011174394644359404820141766225372113148729865489449572015131310382937342818027511194592127777941003031978991730328437993804950274181856372729098854796088579598369034273357721874561659709411691579275121643164504457037037844967439230401940569823038603345146477616899410294917538216532565309123733217582814048442344301360307869834665885924781223328274141765214639687103168389918203709768403307193644784765079034756823819288400195993496695709159690557579327818025063695772503168140492502422819022448173808803260916977279221580698877731831646907831275131222732877213886398811664402037641651217292639251554548210886623793190114024725657881545790312698216739245654099427035869301665508774532392350930052489098743009153516401278180125029507648315561103684504625478508994441395198460498209359583300134961586323691864713010202583251478031066240279738115027690738811705004833129632356418073112722303747544705846012328561269112473813881699943244354908402773580998193473060487071160044809481070918348032466221508249851572583313392561668161244423052378891651536136559724862310249230547671090182078555392209548580372246807893924956265857509204743268118214282157849260143278663112061642183459878719564043115861459711457105149092817026449573737308450302404633083686087592046707205023732827153174304375155531831660539182979068942709535860324194419649023978514617608152321356865996858544195416493720342802357976915375723484063390349797212303937820908725151460716322132577678503910031358521990939190595771865442012927949224086003143570866797072199472701212349283239279007400528238417016872098317305588675738930822321470281714445723145314272469089092443363759572564084889828884676279428869007619443645430812709557787695995823972094303864084254608930547515797169472357207793145027506685705403785534907291317491138202040943493289437157711671843975313661085397584563697703355546645813225009615449270723875262932777415419165788168325261177748942794413739789511384916788388737878174129681390334623073093433427732486900887415926164308977953188232642487586482576076895694918514516414162052616837988553703846283238708960454682087496142575860206572678587571247656624706538338958392255235038092914347962706474542948850931853835987093409895857825585310483533673330658751741088031519968834297891147969473539378168357681157685122061392761007405222607042246015491196042031080902247324365323770290763638871920252219260663993497163845767940546514022288731913326136071881033392463168202200167333569427121406258277200958055796449264217282839787090698793484297677472225025053101191046392579301082641955039749660586625509212520075663867340426354623149577699900822799180101442523509056948863080594106111565305348087561871012572166795260282853419339774148450755055684272132809946883655853256286446846926048411599500288143273308751681392279616968582304732186570116084812033119440161700164280960241007575722494776782263133850957707750903679716364702924547633186288555426088798501581134005571758853550171911756956942336362334864440758372646332208402855866542630614153635156315025998621577269724763828161136913970166938571271311665999433131021091690484125119168457475057112790191557691332556130188736876719873410856557716535530910585624721538684526772856931883451260863483452708477398453541592972943078144416036529373501426521854773401552994928282954493801181744775592535252375325463914199646922520131614301850051686089137754915733704436119145153750602045819847734553181533513730087912558949654305674528177059829485258995334140208672865728406416823103823892795134574102012262022918560473354944092213857775067038780750836032096104503170142476671955923532959207727563243879474788238183867914164872637930409605525073087060858133886055622532095477375803938782953440039714926166936714465477291440698173314507181426556662459615850167122605115661240904606642345751438278726631570815688658907453892372423206091415277131778204310169805848233540159370774183936013424366737884502224512626322697255896555238244600759916206261612009158215040969708296074237168201083318377680980353901142493597577712334007517054037434403445355856896897328767162494727327245213195613470517693320832136558400874078932106876400592698416009871562130119867339069089696717802813909646534632729442053031268953121134687576136191746975709165325410230498582687520919612978534664100799463015253636257572286383046230039677651398808637512541578316984800371520247947496861303751148367734328613730265404360664366158087463315020313675048875165707034566607193844906607153208215131513018827200933426081648105280501600885819861295162827019226832890193548206395806740968884519869811740791521756063556486495451666055352640708065560688429500237244632502301832000582776212256055405776517959447239069842778357259723045284593931895268538672404219885387167786492906387907943047429397893990365913819718426034742194725821124615290204297338575141695298588518408391946636234369839625709647910204787301115249300565397455599709666436145808745332385391568948594718008963941789541644066672645469561252204170767683509285435166489700749378527398346543019623685001461106591189963318980290397335838297279319030923817710384369214261251737913094334337925051055073210933931540049387116257762617803768982892126880011538386892375813746202946802380532944769110160215322069506463273747664339712072330979893274369859281676996952094112041512203865597547740393332807595510707786182934840228467309792811300081954983292102095967085040741450850849314343268921099159253398955560655801037578491161110553280126900711477203414376604337657974487143231283767364590556676292651317780494688584430170741643420937990263677513254473077476609681392246268945695190004722868783173757231588820942082611672611172232661925479849322085104125878396106378037724651169923247357621754974773438475924299020151359846285572889316794162062589436272904686419251391921883880740730396213175093027003869153570830541136879890341593701314265935675863033319962678293419494767015885238369383734972633705808340788583257157625495723190796359237216958672312267117697812450668509796558405792577871756355035502727658778818194745854034977277889373708097522044079949111421466314754332189085006296106539933815461759449979432067692328915905539045297126033543731036128492307453073014092908363474366828928215472976567619295356956202440529110269265421302975621156967078917781683464779489835034469996169738138096778431557905132816589062933991045686812392180612617977655001450179781116046832253617928653512371307420927452941125615299269793893010588352715651199299169472865858539621576766152601323747902302074732890714231575956454010799349128632754559258757709148690158192313272020563359901708469499540041773156933645728464152786919742119299495742996028106918671116966355796783800527678522924718610347898452556348068076073146891266511430864401927941878517668015315445349999822007360974549855934720096723142210708003709545313934928404184244984326947832211938172885669479311408817446529027485334801871522098271635840648124862655853697424371301183957507062331951771409827051881984812411265424508002161540617924736508298924212338656232546310991766334056764402039229524807349240892253111642846494892270713161222759694078887011654543947730204876527144183503441222460898869091816356837074277562454414270760654846251491199044998939156223538412799081732977727645343760516091951607946964822723378807499162507485474165981837376038725903543557118462196323781739659310032651197808161345931529856424396363581063420663322314078948943075995996850330084192183071185320152892296430632129660872184138399860638816580729009555252663474282204707978006729088231782454093363273070879241295599972216515525483535056022860912501605333882863087210052746000315716274364975195622915546098342651214784142138868944170927603029835581035060396198776273263979070131741687912707269643052882693870815709748342221698169519561177232283436737305484179300266414100855353287048766626554739269824141701797643683624311225667304221563529821416453132356144414075192479246374593169796044326969306354553784010470144759053215944969168404915277168953010424912223293101977132167381224672253933265983568238818473663849911387776279403297488474720267122136425842304886995840719291410193587497396472557268230017782674146303662818931073355139426679212530868265247162763967620205009051163997404000154716897212088812734810621861935500214861143825495170731710477059745797331616611110815989984045561522047289867354576161720351253686180433496307880560101030849630352066720828434492027977384218122118231991844083386127806063038017271391317725973541077157038299862836822358274355865389554333472828812242720124808310268020980899373265350055358647968347673654507813111127933067305516422476288172185735226603039618277231418746478337349097308000667071805850966832859806421722780135182717473633792263988496776750201517844852349860118984247390217590544223990302280322201565494399744207338199653976352944869029910135643233299513249432164131309941714271510349927990757975946769826037289590314080994297896541443121474090337507641339541320459677690309636349579213385607166105473104882998786468516322466829554054711033267953170565196762013439423064351707528478181768775578734340246125426279095123910498643293698095565593712330380583213563153625409282536007326142233975007198308700642910701777645282471866646822023858404367110707201484250110117451885749049392480377964489679665360214584855826850938354854655991495603206421330240714699551345269850316972902147854207083584984856861774057476555792908912786164870751229694265608077381900474244580787333233586493732547314168882729028931524116784545370794607695277208682027122871711848102606527295725867437887025150330309486681381986015520460755743416506860176094330650808179934154017784771264111390466392764193584756212657829646736830979049788909348656551375801965090528760756410005812765102834686672881000055509285477037088828668427664179684827257655088626950463056810305025899312245446836463286065223863063160453854269309196612656911269000871339473939570678091467889253096904603837169689891742505792180070016615251502972446038968040199382752264130803140492688139784946111360805472361812148854174603282442963949277432727465750739674221485377591307589631174243361765931581464957603139943218636519570699160704174265544624090977025764027683426348241528819011679674501314363050080277856008438545865675298553426538742768626274838211595568261402413843959135014165730896294892436534674829783307569550478413801483967742287194649713340633927036991006995982208857550099523959119813091398053883249059007995295440346186294269313098144056832958465727784513575182547201441106584030952664356846121732721940773549366401432489494670982043431468659853030384366798746259849265982362852560554222330291295555694192762949922703196423876180845640453325570395328181714415007086839837198311758606345899037825380835633129489114574990275455200506907243407572641335005824413190476205216800195167038195154387005951425635044267501077488334371893229990366496515530300053226992051070105050891914230071714480169021116168103766211267304442493257540412957367193114985953975196292484161766458028639588286845777155761769410466866340189510036826040473429264376512708942962395966420049320630525485078834777813062901045950391593370445299133529648447427793121571825049944208589532551687806694838411102304883336386305713219103147206777693786604731568134349257232790802840623485860389191342356937664411969049104079535260040030983529294220311748389047469688330433438199288831741380356935436464894371645917839915501497996808189880820060952722823059628222003014854556235804036103900496727528066815653497736888021710498433297138789531727349511705504825818861049213730371508407085950291238065062648447930058556733029064988305596996156969909662969667372441820252238493265750383168049280742615169854874927686600473198327733812157196699325363423724609336268456787199033588780543899352929957706098872023600618907497745795344155242496788056746099218377137341573146809390012828982132244820504403006395171916468876184978997039611185215374415416556286532020826843340946148339436244712210166864002292951721524265968649528033804844605606923438487386304258977781856278895625627294338908533253751428244231076773793744067866754906369912247785719508314287870630298364258160925753562763514526352118016948458181762800387148826359402037399173264637379110056353122894476702170805056630504059628756702502997708750477845019300356216987801746900370468061595025846368913762837548638021413931001584236270477811758015532905148268570981331705820379464510345315857540452684408025206247727550371729635847168160599737503033735836234046418677755206728701807488940613282093339769742199703802949812934055949145783732940411244693325617743959438160258487618037116492552651560086459875995903082660256200975886766748837046791706923646187255062269168280556973661399799317805526381288139250638572685744760745625204064061448568336672642079534479438432449349687302758639995758744454467648049005653897458613006079707337471051349640722370085843094291860449124676609942033527861569895401780625694015261846303111230774219637742211779957026723660387054927181397993529142488660766806856068722572300042888716560257845071700238516354091833038433691872678814401035539674697775206597613936755593131602780451727519246671033747541701434231752710546165007031812128280571503656758462778538671334336386112544087131155099661569065658495135238350303950011711452027692134662398319889599289460374271373386482935601794639488004006661214719405024731477830947685266089881815166863895172132895867914888457432863724354076808096066933183403346972166219396131533139406189237551468647774233278223203141024249391886418994051164381296812143371977121159900420100623948695871117137887569446205762025701695795248351865078300812424222073579471882958208750565606797142805488841064023667646881515850834328666395339301370516421029387957311234897169014844192262367843644498559460895227142348554798538054524479243483738645369472123484294400066650485578400165363919243549762480205029614862240047258391655880471161596939701481718203602491753883596564763471103726436175615516754826395989104696975365992825030478126457749899646845166952047313551174393884806324937591505887907552684331912613027182479154283775224585553306815848736784956158040915582400932115522910216988412759170050054692730865104949206122302043474635327009700059965647219049408803002720165000275591024477465140261324456921523469771829915675316803426815381163256025221145715783007410347441547690631212100293503827416623819327352567480025525736141516380685343366982891854635677921456652696013884925673633401915654212294411741649201720978597230973329133800575679642318216498302286617658818652830054286049687223985004504421829716830313590058019694224322841172387179671245620520186473262685378181422373783708097000469695681571194707184526194264164499903675197401679211783102969735100807062758105691888638653165647645405407241497996335883434429319036498729841440077047926154567368754961713884459293486983665371565693849582635780932213452392564805183412675796170781994817632473929070262292752419044216442719098719251645850397204633573929014183856637151413093328447590028506896193145462596643307285017266468232375015407315889045886703538626115709524662661522317933436375465993131667803666097735521088085447745921103435965578166320347402624304825741280119788275209042511692074349047592851992782051297905548566503472147981876763546050904275000032990257813446272716271349030097575274772243889644053581164910417471739630049576573334409251620487070286331581462552518101992424055020616227894370881090568029261253958494186815729766010391145073680456533448447326214771966396942318073272264284170396487302057859240722833396513080252694080522909807494458907008579592845921741993591549362176574967001707076820418008745076076096623649669587601268370725520330909147845763250151863576626599480689185668455789934335220755777896464861337468396345327439584920674405428309366306402590938134312174739278646454409699732627533408030042333089342695600764746773055406971536149706047347895411152654751021514455785367786786751301219932485603378114549911757079499306876744264360256647370443068858854145361516077896340392475361725043848922612730534533650528048140766381164914445252132018258088374823707896322867614012728400447972682005106392525312567234365777760397351210171910031302894501314328891214541975748000606497734527804417834676793563465963868319721759832993577960844218412350294952017782378759673755602794339704946351299101647962519744418542152121615786634357591791914377573197536964431979389123801833497978101066178379963495467401344951118933037474630760454137385535113717737223157021035047149985783461662365615434225285465928526298873814937720542523507187702812239687191063247657384262356279195686199021928917605105481126331613315538681354865453171647679700240365567953067332483920717251128110996729946141347670736261586775957447371215004468920970724160541073800818586446575375117651931754717110127131655310530826509384907679941911978284811763414437011713540274341510108624843221082701220023059723265036085983949052048237418002153658097423351294348725931839886220633501088398260869710535927622272373035145174316977120204369281752789242604692003757693788360566101286316017680199904331839551543947560438229467071749593814464344149778967828743653970360479393202277201521023254044462175818503427674658082481590897181291310007107395099122475396749238733772603059810326443553510107390679025300729547448624432602840158294216146429972309271204119154522445647315931968100842193835427169813000402332215501334050553540110849874066519660729447183155807292035647426524625534942941006904444850389442677786856217015906282507720836052988404313388552011973151485737823807964944693433485152084699278276572578577554138558401494298859449069771218812003870400154436180745103942672211361027328881318241435774657917283467182611276329969486225274842970531237234825606451528471197914503044169054680322277352583939337637115545392752808784431150849541468517257809936752846489248879566138864228864167887684836930592216101084996780849957699200684386976232006218880765921547654174036117800470047920882407791587567255579893954754922570711551765500872120236131262503809432157721695782926839178710835375795571671269620256958027457217901361403876588477240423822472993113865751383472234498557981681814281080381141430000573442774476019658308711098917796143786950175366395082066788592868611428021684795277679109987413197013078728497246258712587458023910470005717858830331582314476176738358505960401714429555423408437828701890090434303876838426238200214116781552118091574326945703182710531713476636766282112903652697815986867210663528754588570349450571847995897590395984420209039091318315035746948376850616539416405385289131669039809931444250887268043997305004468805635198917662307124852965342790948526761373123821828859820506759798008287103080748036490332381240752760504432367757167938550345118646478933397910596595088946972223437632161827434789470968623210587295603451983341876430486356413356466639559166384922049647060540802915336697101204426315233483598972681188303167620280508374620131469704413667473629406976122049662944286341396847562735080297565848496513658956916583529044154836366017667226550202971972900423414516688164131627020643450681486805437678891862486249045132096475997740677114537554296703891063980450724070277940733381131585980989924436810019209594748522291265369771262102532933389784796255578401614735880503624909587048550017958484352039345563707083192849884797273883006928679133624403118050351520456544532273039685692125381951219512764909505795139574667669851705575780280410106339411784972831685309959001730410604405411637105342417543971923104573764635545326427610011852493403248396024178473727034729534397109176652292410915625220600361933225741285621551929201652753201177364754044644373714293637044773714566147200717845507799434949174069500358701595470472582517382492974560655435894700103037602529828155665892177337648271097916996185658803614289957231606616584139883940638419790916143470360293577290543614891746234962993765469933571460542683106156323038209236209605137951890481333938192291038884366166018726653191182234247979309845627394449126915400078183209820125478765585893809099961062092410739159444712535751085721204083192038692352632079247101577453842939616548745696412443598716521460601653593288022131067978961116383722795908095708613431541690597051481900316228211601789078798616853220894241626343269257168773919661133262710387998953594172226639967224812632850387974881157625044620014588846672674781467572004865638347002855361757598390524147475733762427400377778257253627718623057924560845772246573747671159542035943970977398520329554386499746555210946611630842600510709354843429750728995313516410373880934207176843510739681042766577326434409994363713333450483918265586459394575968103277703249255942892599838108848274479036954902961959699389010086655466239996778316316642865834091593816153799460006759993733229122804039371356818802331249061148558050202974885787816319584469303874053039926110837335190400661099285050684871630719050117992301038529511559805629154275723931305814730924997822671341656238804008299711234781508495702731832226896676602616212569755145923278072700237218406007628729243845034285902447470316527610077276589367351657920179860837465997468631957442416718552815980901301234058266449307444016448128664790754618101127421319388449728300158401575638488687301175313837522110897113166499799022001217345328115231020423748228841651503377315306068073458495588274167625585015908692037149307959550235992681717898399578387333752129421998575424924406397299789278973530237714748152600412705752239619476841747057204552166532054646740358003819889098923770509297591695639253636117804042817766232552118698759098225155158091947991962505955427556973347077959314426966446263325248070056313576152415552014787243725752186113476438058430880376331665919016785930261531441171284207741186569397346469901195988699266338854659502374748708971229189857585693497385725833776641102142037515125191268321196254482985015887499827575493486312685281357274131640052549425980783640787035297352757917106239282071429677866152535082421479402793921445600675232026987961747381386631979704718730105090958107204725419122571326346173772372533519913218171775726974937461373141832481379348554025493663776601971519307917849202486757837986829504320678684952864721964165246262485254642678057268359831594866100789246595848034404588343375423537302562393628991300726882983734085737784812838827134971256128330215592650543268112950868040643330474811561449696158951729270168839181663067060506545006673358770259098706883132530166924447205045761626698412916940531190358428273346836201880066458741078381018921683674085873558242790096709423806233720640122402949415679720322841051510683077684999302377836823463303620173483032167754118998141883253920061637327383117227620888020433881018721701609994152073816405979358465157659135431445605784349412094248537265447069668208263860125892962177125558663869207759713909217238698844745393366531725091060002865074388750533726014913949629658260862914942055691447347948969719597435845965825922916048998111905736831763284734045288004345740902257977134874566058546849194963009068790943729480305088831953509149378789277807147971935241374840434851448517526947832126836638711756320663398045153085475786739698406410271457324660477085808114266926522513029734242909750166921396553346554057015752682256368184270237530341490231564833071548190055712420654994528743680084523063974777914973360772783321336645100596325577192031921698093199656959116114796773380380165802504711206426153669081739636223468338457631899645173476801292026543156956071991218856252608799422077236322732662166258046943482793064342515395010634363884945557507730924006534113101248615790218337493845843945763873698205320950935607457992115254620944924708902566849316395759116720916099391889037156536260474043393967807762042083630327045063379420284121306018939088166754251039538120811618527157508418774361290971205969103319518418866616853317758561528827704612971347374594076999213327719983944648169192505763198098748810038394107888175127291876008098541224496682032929776401328834542387493485876131480100206170739299843339052762148103235584911492292757093899334021155367341499274200442672791188308927271841753455275209213710084488091103567551415271986391190324210288819640238175221772132335839390672961154591019701539418636646364638504881138239327809373928781803939393986142595530099486429024860942481314878700755808066361616393710737457569951921770140397748142779006465764846411923293265074201020311601512544093539509324433005767486497693649180337138655186446512786349945571317608909755998829870531843056218927996740424264701419454038181663433920820267785325730592166335646028678879546099828966036368589927679252878320884262987854136907185787573295864430470001769208291496815166965062109846926543719845693112327161055429583892233701737217396768693334318761882338371653048099417807562319603606478441096065027099085865246295340191343133399767464017270730891320969765614104941698453744525917059390065348320696300765557945793903162408837113002903108136988052755682355929717743689425045515151491053763389495633501178433330787063721677997779801472535111148418819804643177790390222285624489026733269851449552492952252673180582753852189458466009407465891466591505375347126711805611490476642503393681542255785127478740082650911274191917803657337992297375460454341400634010347459149979103699390744984772485980151014291581485330883394219769256896737150095489101035026648774795074557005814545816306991695852401940083033579047565070366429326443597552088197162591638037480450208536814672764994128619679405381479724656562642548661374943087324120380758907928072860663922760053156688751644361352161366439003111269445573348461369520609363473707084767600397599094987989835970511100769194485102838562014703289610871212527799530547329110944205825262178282806821848510112412526703623879651900030128098421395328695638754484027218306847923775203592913646867780886431324004133275925927590076618350904895372913898762440711120950438145707754178475617646760108329433787731166779153020191525872611865946996520973237824193625626203506260099855404456311484765403564291629684767158513163050017404432810861861484934400483948739503674569475983259899146081589484343039119468788446092775475096107842733390087764605144887204164826637280786852898834137761404076546788095017852469643584038311432280738571443627911047354170854475252552912262786919963618380220113130293851989264062753797834896567864828745814711472272080755179522805492498685438374259574918552549388456886373515961945501640094136718458470070908415535400017789625360587867445024103462065823043394876052287995230817480361479622587195259908044522933377477610771112765811627475286599370080152310085880514394437588631257018165527702491466296156761069638874067320774620676141116475541055036739002854933253089873502191991156467590007031158963244312850574948885052443280718754015033360170617719109439457075681657292232214344694018692407558050179054581250985383735079836946382287580241440736575185326403800825988741273681559909517221464628723808767961763235460214234419061236368264366536764129444383743846940150205439394445841765611680601109917214570660252833958254109882693722292491020237385125988171296593467004632587445191602722743763966438524096824194991289535060443678967861010068996567828031759585413301634938527147239263740997083656370846265839479397027895811528961419873086388833235428181978236283062969330683095861831409221785557392697212561628002804256062414936234546130374181384579283484708020329056244650229319603162959617151954387202717576631629994152167395785285189208044390224969708027847371806132153043370904224188750646169171391464585044220435144428376171107962006213167009167908590472783919040774760526577307099823848982487180231938932609817619171914224738424226312107733518073417819422246058857581949914943905937231080519126622163090123159062569790995807720238964384437158966114184151532067535051534364135693976842793365462975189185898924687687795620912868451268094132858919134518850058288930488250421315200352343994983256867483413435285306640814422004885502072262887710831854928485749071156270305367710054161139061803723348835563209059037510800545869754879515111901344455570434442137626012934206292074010805832078902554027816095800011109575678647786546065400241253459291398475693191678309527008932414388149504104280965613007085237276506594885302382255764447349336608536066179824541364112509537573062181592890566859518981864510204089995427900928742404263478243123424282412264802651379171556085310447554841106085843955660675627995916281271311564006390415553884882399279316788190345221851362802504705766297712641264410015547227877757920141540125002153840794815219561421490037874938508439882818841151744368825629101222659962930005370971238028855664808484119960752191738837319606299640123366784141189895264119005668043799055699972982642961842641228198835749312399122585653585243626117354191330602255800152406533096677622718292722133735844046072859627237517758160053349890152389806364608658199875447473527332535856563351270880226495757151793169729400546069886384455478764207834629786927608052893283553478023260620562901964377273011549372719841070634296061758414868154634078362456203714166091339236141719911377952272199323331265246477209036478403062280174397919134728662341422717303542965558878771331025683261960199881391089620019044820378354972922508880346288441510950344767722022069878771148595116027646624901008156153194619346416132064490036223821096979753784854782764535579911280085654773786460708216706731820755586809698655599251903422857361628835243192442577852954988265516290605734190060731893377105189794973045394525348668040698654159859677520585163020261881279083088393721193344257199754550784157503631916032064543608851529273398421331372519041992889422884273936677438633214573699391469231520286663770939586186892188697015873689452622771364548687092203272204159072598378032816762149280817367224097203121209780953455509851717524748150314510908509757438963308727165159896909470509609943648947551506964886400766669769345933403795181842434810693231513769280943489477937478292503050841544102956917790530658010736772505842498822699338608099186490661330882575586212763039532042783017514208843243432870951289410211825052662941763988366679180274686950082349031336910098876975833574894578568642458724376803228073716368936025910180845731253883060711579284865849914469912702176290943059709197075326848046751929832014197778108683203125471376808262568449473368720245080802616652967268324025819869071285395921145014421516324363153068441003586768983302365804961468198747202589923550697327810344481328355331714340783874940383434828014931676386535673143202246720160745437788298333490725177547588268338581204250950663067751074964135135715265080947114114922330260621484426635169385433524796566127213752046777510572367137973443456751187767521617262569659957241285313579835936839589411742668026841165124359647788902551945190004567593615579193344539987063174791883775632305682889142155577038104605820028899756620061651120011170546766446490235987153116767277455465212263103484274008894939786139968630390150739689523650055332958387058931716852788491253480793240380734661610493691874153703633675658931992565538340538764544956074774460715038842411385138572245800987058552927888608692304977742025108434448909198191439333852100916562385692100187503479951431722395144871741364931976682903300539294339662580209985278366041165458123706477219946198559452266189988199048514365391903942930925947560490677864206557804646586197403526741258884275482878841172369726752258843326487333322976833188443426911115776499853652269007190197074330823895379017701306051145345841472069180260384511186049701672677489551680611998235746940953803872575572087942498383758490709756243350100085629292357763535367525617350265009492029993348061203763787476947318104133788357853524372495590669293031992947479217933215005403789464426177497788439681006704359526291578514004419476022906572553772515407179766759774396705525809669398014738287710423802260430000265423825335872145024632286819662212837893642882839623316934781230145161163119118620715160761132628495585919732556246428633047855664226983311469004449655751238479533050442530621074660985673492358370250097202420421404748530631216482656485651948937075478480896964175574471305574194091493925716136211730618516979112794483040073791108305031053116471586165625081358397344253382126306234652195650742129190611396925029617838575852097171086717516973257019415569389552291134605037026405088956423843456316592294159953979905439092957261342350835158765600338374189669602383259695015927966304715532216034583447423091104875328499000006797475471611739703427887900581664131554645220571072509015468951488282713715543955825035286550939669169812765891352028794031366990787171659275437376528670478487944055278716090470847674748727467801200563027464532892698584234187562007872607252392351423183679505687995873091131267498142574501765757286553743707132825403422411663538059550418531910049028145627920382206362469987469377709937089470090815590584390860799788364598431145152456844042417787916414792683722233375362556617189751781230658249155299719716265894036550408272710856815278689116083018490198019730352186674550879535024449845751330268465634075588033794299128549107099597287458501822359092950965706551658136273902566533566614868394674054748764563192615241340221121962171958465161721878219945245261432863475015114003236150585016737320160514429400234648501892872348411387855222788374487859915390837396245309562919455777096813144772542743798585782959770422365315467796932202497499426572133991753206427178172230121038912418156238265786062536431482671177814773173651670520743911363375186455544890256032494412883924060139784105787375130757790334519357947976429860823412775791648370106239128591358222316411959811990985206539418440599619699034250915486426160716884550720860272826925114047203716322347340723101085901466811578345376804804737592457062120799949847636084681878996310108786730215137493082793655416865443818849942612102616516314336709233076778486568178706226268200754798289329946934919164945590265565982492027274880987871159210164357358617097810878169622978602289756417185402531785161687720970755472138846689802704984144020023724953285959624602834245716112631993122691161286067550311834479582125745337726490564483958501202040726183444266709386434242267787943336677940011880836769112942063711139712925381885764156627636514158190479651611230200978685776656465636685275777611997758863952255601680488576302193290436079555008818374619486177236208757604144096675062950515025285596360339209884181539888230469155103194338561219703918769602307761938355935524859904144271341519911424528595718001679907172167818857461539821061745061946121598306868921068807465601117632306410912100508728773569562091397315653045618252446901925266196936703222274388052822049057657074520277269506293223426289439516419095138132618915004905028239865630699210411043761551740348433685077091292491452793358571800308659638156192510226047705049688859416605961165970564140803369968755770113779748696998315789781521392506888367421973745473471091269270315963467744586643470847933631392029304359530487162110988422226283419170450928712742174542842418570860996436118104719418484140434131333141787345345666371297143742975202030331428845209132478402529261326809724297018293690071362214810204067430253544444109793559255155577749227100120523275394072169917829558595522644113600679234774209304575956065703850816022369978940642148706795418594563041752393539323994311708026277232366564578785205532444690975497983382073541183701749833470356781836977339427286597691508840178599135419564741332433820140698315139911618078843612423139177110644475634307503367062824740799023537540682015429226044614778527374892352154652625747321414049686829463372748072971436787347027875848787602137386002127129819769937872444652159092193465504282718004086906710998691569976734620916735083046974072176940369852770336688687962507543281686423971853224752267523107548360307413169454015751391649192478414809607386247479572893509854406102740368009031483285464097885030190703883708217704108509953178363568074847851345557846780682441085051157344460323719126220071007435932189400090244316855772270340181742721910268926605366045595341281285062731469218411651068693711049115230761689110734533155692171180824733253123757697579203227408504891438651001320491642265158953256706628694200341581461257425195055025939842213699973309085339227817999561961055681886434696631057091676499652960147328366148899565483992895676059485537629894784290808156601493065866676616553597721249944165026930942826315277835255260429716708200591281942968043669178437599025250829640996380071830495966278009107700089172517184940209682504336088602790623393168932513192794418768012219662116595625425671776933664718366620930788404548442521651495002064177421253000192704402370176433754412785425529164903248057691980005923582058373523941147313525650961772080961483460686472956168396087491155744580104100367468489513306956485288058527510507598567593073029133849253519675891450612150924924213320376247278618165833106996036780375497416149993462176261196885290311093785142753718101577612221581401129301591749348958446691449371106340908661665014070408809454824162874754878288487094100228909246479996251120416999449957893142282991960818753464874905524176618620216848084368388625989197157476042494509554609284878778420957287417981290461088010310172118722372736991633946307164361598041262859841416033670030960252318101519084386761318303805472299466016671983025794855440642417575416742116970329047170851440248750501672754680337583044770438758646692346392866463939328610303250949785410051789276882848576345776425556644558110335426625063080947205193200429679836424191955878636001494358701881894828591345468215283908223508335549956736585097214573096604775764818274251041806928523655910348337551670472070794012151251535739576138006688675461592304961274855771677057678615241327371483473748976757631186192174978787499212079341539821961582525692445361259422986005968980711191851343528360667428389851981460902987304982687560191006559632835779507735084246296842678580088790643927476288109851837904152167592575595638668988247700831509503728865140265153743576907899926804882383724670115073693722458622841368201654694182513551653287342777465202039681228065443250231280691414104974919695053914488407314426104613893352711252514942198982041064970390344938055609610423811177432879293430283649437464847785133535260434888918884762139487663002725705155834190436971141034653999162262781951967571559396138923558511828160148951427422324711238031789112175795908395141464374436369605241951466043922776997725395430647251511639723718437049503260444982185584181894819706059583913792899231476497751740413512762840461228104733612169169533347635051621987678256677846977407715016560847152997626437951134338363225375829410497802150882145308485434632593091183045698194665033977265463009249656164268453267954320329469021987478692517251864095058128287456330173081546627671053526267636102788154211953487225688307999072265067709490353037640099318499959805803381896921654886715027556464492171707864521072261583035449121729591920967872977161427706633604865766184666691255518917081410579543290812303137535349850183458845587106109193030722766006122279317653130684616888187955102391705150863043929826174491391872749279601247609703663625817600080777856838400854460216416482398772399457867782298249116532720198260342626558328780823069942531708089882103281778044986462087812019632522302579777550785158873185917235566364832406482487442242610812351378934972303182240828371143939246661517067125734062279547188959843121495841886833646532699910076733016575045816424113739126469952763685090524272850499992512921083579372907627115527141666242607976134857094331484294022321459540417449579553374782666960289497279416577532833009237064153904999360905035274013627840805391751313989277472662854761096446015093559869698388687132309658109710499395494686297539269329262458837364100797034014365594183872523300591647424451263704976930701239119896534895209361530841348577556802789492013208219355302417382801370667611135609560512496778018441616909223534952221125914354332391330114929560237405937522331959944139438811437966557082352757266067893500858995058523613511905153353316566616780419157976477674612211517366353873469795376821412448949493676067996789340218302934343815050553656695582409121606767609859602909392194699246964698944791684778764129832272564162119428207111173391293205034149481202551746037391111275820328541212716580745592101035007647696910627655582799085857774912872659750615274108707907141993125233317572638507729113573278278125636421301254070055866572420638807114393977825655206134321653152040426808692565610613133477207653655496588796521514475501008126232016523480787480511739979859546650623278983457887389865222186234328839669809327441149219863263723386190729129092859442412488241862146503098315254515966767411471292022204427673717231663973580961600875509430706314499138491252549120372920450894156694425675966195591966540307891297896335963046016742320296427101417597201491701863053155437850500857145693906422307519937408685347137169685140724222108780867020697281339908193098677446991642101336995608353756748835983306903731775333560572679757086006503783647209459299129687258103646607283031764130442301097346273727472604851587511955093838699907662584281165808009137407294521591050135090437758046363154067535241131858049307004093594887657341011087264173373950716414542925975027796601394710492290576625568438132331399642176726581974244692861826129667933515910689972471255167938640612859453665806150138195896588583348967272348407375584843341609231163265849782780219795375173897835364762677290055488771871603385032816501716804822257355088063595899938514210975918566930284858434555415146263542536684249838400045285779129991132849024629890423732619442482435502627580300362875831998318225901459428885959861859273663156025048063638508130058332726661326386891070789892359849186372515302090096128692687665847315569031660156889211583666662662165211778339082290098277618895459543464139417952720598987071187764639008334452909290387489964203630984250021698091396677641680727018920018029601167859790217242300292199118523376365649565267088283906967577890248761622557735900953048166544220584592567274135672005230686618696169809304012319349934136154314317675740484658961888982257022963659675003508896746193939426938380280732321019044409743815366057469724415130053682339274397705889040066082232839428361854010353867340511411062738237021149015440814654154010910764353671992073326873798574651156565698430139943177983829439926887695186246352289926004677430832055720861821336512774700964067778723829640640322756359195442250551105156112605224029589286251369881265691313182121446856291472989664021175625484037203704234953670950327030298709123900287964029510062349918060075198563707729269998875281331094747005157569080911590911944046712865914818309607660524532998682277031504660476279775662058960061243210875497008103675079738826294433791881216927305876961415861510588824887451245069767994898501502736233915940044358567673513989256599071538706037080314526476436635833480770997181426924696637959950478924149230995091018120274840764149857807866099921328824835859061711503506273467854155912542635469713055896228898363828158782029390054773429185458746345089740081585566714618440364599480396394674853897955247092875968209308516370632686836547438850132438978702265582868934137460630878740370182199948209220703438447214613522623817831371169506118267713813594105407006643552422058280749172355026630248948951060572584062803218913234953659136653618285234809589637715310417270444039641230303209719202735657733472838174744785186705045248817892686827457957685495417570331688756352153724445425540887177845245647274179664863641706105152167722285180977739306364636601837739207810371738526602961090662766135796350537021131904396614733918740835115767693347146825073251206445109669143187073892506097601883351310526367119915079324321574941567281698851405108288274744297197125910467109445851570736977811396382915063318342863270251224288494128540670556538047498301382927042140812666406973459071065286752357061918567404650146793852069052936967032393456576394793413617751179959125886564916307767479570868906531493933488541015579614452715702644625927226926028432709754366045293938695434688528398641632528484884665184996347138743467891373257464764286311459918815820348731845406592855599712995957100710158377947286431136935305400705537875748919601706310160265497775672244084801728605752446622462044497727844599575557747016301635151740519102876492893002107578761118085047602406549984612520880883251670318007144455896371045541702309717444909329187537892120630282176102155529970643214988839313060017435898330186080949018171319984531040058350662426505749406570825733101754049772050322914677475798565744162738084751211031913529475104108297344250041882609947118257291285634084092110703630363111942453140930789981193246294911811393356294911744163883861680104840584024149551205721274026625850721571859980925681732019675987815355243134013062909920891090762535420996010977830187828165736210495047098689510473085635856998716148129873104978172206621403501907277413903167170079404600062796648957572866468634094639520178510590446311862005320913285434885510978744591300073123950491354124768806325665997175408808306251515624940453328527008774743010243908302931006588324689222532594818572802972812550175661351479989573040714389905849487990656967762144899484816835193858332603232275229846463999705378064202639012675434073594390724539203746651021908092850130064832335871171674942507385348115450595071036642805691124159221149894948484400874252771036931006696764656703036045407026041611124126892489158615295947930927711753674799506865016299358661602087921877277057725530367829122303722337908349408446830842874184359804467113901066001840563358826053137592652850089677736378427548375012038665658086852373805836355435814596702156831764594871789001260440866716265691708444339799864826817740246443745777330302217687715262912777399216037614648399002600738677516183967278729746288065141146001602210344904541976021641449999190531562227184174756437454803411752031011495649782978789267350244283225754882660585801489945039264228684945927255913087233243438913667134229787206957790285112658808183900070767950904877250109796795334815738780738037059550743202818451552824500594116970809815227470919832013171974123207876471059767703577647498165044176968041168504434153392217224191198015400570651180628328424286710518206119384927708368284273639588371965223868877483257647116509578182935276258714602749656566397112112068782678958092854586790925796644080918538081193305953946865320000160831085452510816923630234281959698870028231586635317488282666197001619290064832911551600654361627972070936643437114579522250272247307936213358385488484314379264999120823468836903104525654748443239398837694445017815773176233246204915415022001920437327995430382342066441488135573180463690923674488451534739981920869620984373374055851704074065864927698886252114625521081203417484634086679510292555330401910185277175721135878196404465353094241567018892821480141389690341528537596248062547564283900303665360528579116231402602008221557407142191886117542427028216403269580119225891703253984717361199502856843853725372109493048734051050850498382373318940219884225102496646931822300501545284860554318204882878558039273697745781584536943979274821002845342743576387178585181942502989114305130707629793701454679780592261516608049462553777025980890759945168764438136994284071682823316766808967876993558895569548715326675397302798629825551861206237772572903250903409309158782667637407434733385332892202947232170118290911388937880827227316438841866113713213291636826360352642239376612594776201174655823401899341809717857966930827221388056261552047216914338692815558674460663451266838115631609396023191683109199603384806465041842983057529300920389337423159180711557203851428437114822455430260147141275068626440748486651481619155001820030178991907180655110440809539555298887593825650191180791706450635821576394901117899894310461670914089966176038556132745090729597406658740603537214875437636457606946795119218336513467223723331231726191613961424082574696385531190039756494116731111275952703213175964230582178563631401157004242544492109085248026496499881323398022954774493132340221814301878166520233451765987565973717247198324736600994997384503695238305724784017030615348286860309880105455890930080699391665624025374301423742530194023683637576626546174119587615926095942175448717986149900705785465116021687534366799191589354366217756534512767394182077764672281482397762714745693535021328437198500788584668670082541432966011798992903037630640652708142420771479118754183895922386823877469208895874019314923458345014900771978027469074648305225464339895198415214420136001163930547571619441909979238243172322953382053525128745486024437779337460046615568712692785726089420274198420498222007018486511297103518325913839126818171913706566146741894448192869940413888424045316000148446607519036807388381743570945379702649635079408009535407269934102774049442799366834888669041031856253576618267493794123084965717763781970054259225648391929779519458121877916778763433332639840192496888802702961741194260403613271557119977380584025153249204577329737440106463035855860185579045538541364155469160716216330630272545148909624009105348874322564714357469538489674594555409243895861288124903264001054216108488270764002535076422108712701167847207809839524079717740786818614019199768583961964803324435012009777915029574541177746533589805199499216809957111673204535352435462528294825121265242434762989578545118609953796405345047043096305695457304148038810140236996876036415363988189594563160327353105994494956229173258407618827154934554114064705028383102886021199564102715877076614758047054901115948576449877656932545812103363891582145762145544602371272575622544860077952321764677761878783315552738076659908913562782241897269589550366218370806832552881409635952289405202309179080577661978866791726651485785199009552561752217766872537521483706610349239386318083483127797786763016742885614284219573567693599609580891739108979311996165279558072302029305942035948807070266919163638388097407918459143212587274199855950958116631630289016144337551181402306131619664357488672556049674022382126443427870582374704505010078282616458203871581186823332821224052537269273308870619416751756704459289617069288704714308785215340353675720570904327471450580051396921081891154789963469604886232879694657057204110104647063949773008166911585905442594285667943579744742306643055656153558904953624172974259514615512025376341491482752542775057238593330167030310663174908059741594188130786921495818659815747426418113995843158294201871167116024991883472616220288891363888218784310776821663826027131035335457092184933671734323536140311796838276824287028702325221439088321094775156850425856342870276297557471121021333519073890064295573075076591789720147456946298418051518803935944674762150574257194614962237264467283810531770231460044329634696478270779406921563555727580349496288641045522539527274243726414334565518648962597824546048060655761672885295869623552447622413602891158279451972360059652690617076644042426809040643321436871060513354241614188259918127621260837832187977020891365436984265674050401757857574054482519128476585458136334279611788756655252695810048439439406013188250280777750983639949962773375124455226590324826732850331323777002918398775422954249361578485369700773642127731166715144511435623672306424233280038041274487958797289102320359960621903959751771946769326584624078972464678851713702729766023415967292766466359938565573782047212218831163367659599671294885521907509013101579853846190351751067512778298695054460242899767681289354117914692216204801702592708306062627361590681175849383635443895892918718186409666011720229514745095439642994104829109997678928411175358259163039883484389713541009652272275185362340537156246783949305935187561622314334102755830524211446947347522783607338791300372432176438662242581573124417926420423545470711962595988447300997861781567007632573014266863277670875669771468011942852280594756007531961378886870656378038865199478501627640731197202728797086085053329101138541298302091917131569132324354815494913150616591989240998382537972049722250938591884458102450660874832005275588980107647122337519366635870091982113786302694190843777537907686421146972883335916293872306129942478353257986267160164761171082234921697156288640154697871157002002479150349621442044816896125200019789744542784858657525279028726433682953788929187365369744821689119926152012213289439319521869169459895698097124175692112725283715020915512760541401512293548730872194988580216780405075662169498222331311695107235253896845669725548710043947016961003515641969680661700930805732085984464182711355715237556414817254482194413368242441301828354016617858685373857930037420972226563114344600523552487723679372238514993314070536919991374115109632147732420273728184254336474368599206183369444403307942429928767987087031796352141577153250395661871272270460327767671987957182350124870084959703656989096009730541623725818122138214213251732498656067749931077150137252579471143763208020779244214417416989161736552146913242883275148841010120272212247620075690565259442791710099767079852954706916676512192030332072825613264349596403323776109185970664150209509829514621262336284622145501010071658191063635810378795034970864196573007279097886306952095159906849688304490997338804084351531090072023529314795538622663742509271955690856082055340384443002239827357774100975953786767067569938624746164696028453948597878089264309298774842125571849706269443599336959260697757386985460790960825824923613179877999944695872772333764061070761891430269263533600164490939291756339825045197931692158829943058918571835992849468620649109242782886405175149961582213548592331579977727657921807917389298738734747363281164344386410986356082557176618701463736162040254556908122988470031249258494513965948499976178049722258874668524432969727210545462779802516666254810469833876178191037138138785006013792322354182727864873574259224315795292671593493983562900590086735419319093534696311503935407099310004668458199487397227755468625635087451655170174465545630362278418633063586419484957203899872560290917520913440501030442295481372891322363405039149203578284958314165575273745260066330676430040767759656853702687419835299389746029972191207640022480047774435566439180924986190622723727105769083326966984254454051883582837465030815507924776391909463548994550950619953381622567744988459012290761742084767161446566058689237945760944407282505509973678527256209682781146512408929769766982547261657095661745929940793286779015854429947465618114180649399517310131232569421014003612022120070191366930295029616377097350705607303427920555800037965693400828041500960942577171204022208289847522081462707056842509093814422639449618579432218713675348009390527104979156650167731811662778616835839254985190961401708083142598254137070227503833529308066959738610048939692028859971339536610339396080206390677356139975702994919379369494829101961668705960993973151554178038889329267805823046861633334147013854315437092155554771600485367223028727916336979839201271131855970396146002862690675531833013102008455226593453628580865762017061214114892259574700244645231489242336718874619882782143949911299887331898628287330802369492436479213832954345862488010505516033007807333050756562889666239044370290964925259351269886054807948212865105101306759735374564814054399856323195473256264165365163197132262172884010816424947583030488774408549038720673928673136640206875064013678361495812758658465530749659938331957784409725265419091508164141341592751157576723906464495662387744970891784627361582231864096076699587179366785442012976386710097440583123860393441649139248551453525572454611193437977842800295624798510165662898307246087514452957491134060884813399071242937663853618239311224059033099812056089405414320936341825770319634629997204386587042526563314272608121118613910798444430207343532017315389082272892067183255866214817299962275059333981817830982357354195525728052273639781989226462369045851082563667898135645823392653822962268282326908513123033526488604788343846595159748782039755442915923402521557044055309876678779841959419505466259564129796984965931844969078057638022296020136036396664097858075888373744188954277576784672554089143452843806220250490141114585334919701368121982176339931391097869012780665269255731504683959869290159084929975783097133375579163130893723936802009108238866283553419298779685735494888962453141588001355830799004943507232070114002643034115318418356426303976609028321140430808907945330150206481887795693737593659269006058676796391444301341356450685465187937690173540508194799416247912759775361052435870733762520636117078888276968286269258996095902534004845387658349587008154623083254066475441038105036888402372783643505459859235941846764983671683549950427262372904278692689265999824342042521744231192186111013989392489705245904232644145557291598655614090704288305912564404410127730063694502214502833229863085362964160629477651571898327387344624001842190510974643647018290081162156268311887819075776482101949707278585008614277304293405834530987675184358600114781515861422661613649964274496189221979040073163626202146545602730747269229220873643804655050071077699622395800574510460193303310687974036186161228858215555981085373799067771835986350123480850528037968005248613546064389456216974975320441456803070141238354801490120058433859373670996017308145721224262291893805094541410683982713591447164754798478726634513419066432487108420081190752111033837004730209283854876308223151169237313230596002169088440697891329787645470171031460825002444504867784775114163953436281442375132039491616184536611956379593764475402540946542447552357866939817326123094723338962942050187933341567993778821488072114890405918325563877417503634884368906722346751238407003465570007779489869031850422974528298680909708269409089890942545809221077192160666078492664261180817924867206640911889360421589311280260308882507927512485400796850178193663794388106391978521071149341641272783483519636108772449163419725620895972371044172395785594168426357836930589375936079989775609345461090076744617827797825890484909842624151795637759118511667086285920103441422430411175534143247719487217714105228935720539534083029549342033406389080568760421645226250378940297031766208097318699998203413955047622728713754916168894147910808753969608433716173502716052272544879090533100097817520962296931356928329096776056463562513687092412726217765294292103560557860984301106778271431254530141127119340986588789189562565902061805741908522775360718882827619610959890549666970473919501597696592126485736711158014501302934850504923211717824025248814096055281634211513086703190846845121499057097471389656648123324711729671859705978277719525759316154535777666673188521231709800768147908843257879872556890447553328620816851968362236481257163517282116474317164256698768937508631068722116608621159529619492981607577227202737583096787437516157560026286094952514405400002966878930061338340470969762739532181195447967801135168862756634718435571109396021173354229094783568766195647025785595945145262413454288540678615441289044188792416423261709349119564809131959120141632562232171640214965132103766043306696335347057392696976302805602626870226709156785439925827196642847190825151627042909808531828793248432516062556784319824654685969799562515351779611247130631048176050214259984413761584413561206571205953532037321305999845925616893236931204561012653323836867980249933240200435022736156940487242236790014931202595109731403855660373985853275091784176207202520588843099970426168294542205027416569398636614325138253380074793612320827040459384037611323456990047234088968999717980191750205007684787625794964258820749791736845060685945973876349415819629840777034938975863397637385391935665732556703845869117381327136993759686960155608847184757457368438425452390474343549473125709520259330045082364330671812740776564390194820455467064102174998072461524438399176324051681815655082877344215921575017316179602948704467947452448332354552306889917411513632731402470099167055181222917877341030577639932065198044403518614162184175075930668271181822198086070919970108475346127364517103840685227805286292584981528185171953068392141611195341081929131483819210640545478386447703991916231777942481255310785443320169987985894826147074411087934917439879941309662984911733412565870431388872585760980418232400552298480237257734051552851762161026249702106239280819417920692725493847846523930475255152095005068847477590402002819531983367896973989702895052715609825741645834366806261970448839838308491936780881929925879547827589694138191576061747533039693386725392549550382860074089931942998776038624681614557703030797881608862535837330213923200669458733663444574928127789362709165506236168124821571466502199134026688359862037945547390853762802182689816339316724235771018211274943075637694004107175778786029926572192312086868416867017888705604293290387384169616007294560190483877768719062740160374585167715206685050319031266955699690142716894122481487496602653541069745460351551250134787700761129676338879857135761617527284000382189653536894542359193324124419097726090809496472155527752122841634239449195097013469569784096283619317981561787093892342071432529026180204310180427021622582644902361025735970564655462971950947643844720237655206009943618497314809079829954211931267127365576112712157812330253186546698246367953794704297393003412424200072996188629964566406980254238248425972405415233973743625999097285295990202323683982707460846941012999260568265169085485841179852162016667885925856201523603986868269508325650155020820420536865071481349851581374443813263583275992485940846736634239456364340494839465485177755478724109163535359250359944664425721325218782442278807852756568488705135823261241261814952897236649169456323299382215951488111184870363992741160454265450449375616565507146069480073343735994328703622611502120031726241896851144881104891972357838294753386090806429410296518669426328967218254248837798741154015885471627332405808866812978305473824311188748739540477422983742869819652820799763183618997824281844675023270242971999755771625574459998923724602376429231788767493245261804026214676382018726594482860362351129263440023002339795725021675375997502414334028220858515593504505199160728413723832914139225094868454935305898617131626146929150553624053757929938527962708796976246938344387835681116093368181462547629266239860218176431509694095545252161993635140538507373782541456164218270024500731855696258419930478339997043771003792599262850755346618147625300828567075433018095732844170455439472086463194082142014658051877268161300983785026573321508600167031392127670005376484308015807358649356051629973408229717414055775818027314602433659981109388164681209770854477575372538688775251151814029052705538066261490904954234651627009362819491547105707025206682729129810372945832104679918509930271859022479409347274860550123919025751469555116534447889034595622810648263482047251031484969047985334365799385290013987008269912787965198883894720839643453646363679612592646211317233042121118877640242263164892647819625047675994774250064355466691355834941834952993961669178137693385998233210008944169624261277204690436180544179670370836180365511929446207109784878697732876030353281854946741760905807915112965032766254302569620935645588494167602806759031651456355544977288810363104248511540171528306021389653604778827627268886195979673827009292662477765493678334732434308428908469684414830436124239397205359591342569022058980630256145616613173911811692105926608582963570837161156555191773522066891267505767761903825183037447824460434071192526198410825231127998271871184815206159774303652577577073091392330519353035855028670565630204178081211868049442869590835812086084345143874829855762916859149488765058250694036347881221745696955987358935393804715912367936885080483025798154473115757748485704057441848285784369798096741258851783657139978660765748444729116278383473505984975174818815326748184606002805764498879683620791905753569630727511959784449949161205902870893529907524696669763371981951721971463008165423471479982265940062717965534570992974675820165403627530495532921987586820456887158148062279761194853463580472524983533522448219296884860666883485688817406962190361727414973385451269749438247388986142984285566538361758507107017273092868958732295953535408442736147437622965378487679835221836127890240015876720366842845424426203829573626636296435425901480181540299550511587036108323881544245749917344153995901859835236942268853056798079018091655866520648166157420809735530527995167069929267847761111846366334256629761449740779987359536832298872090316239602305151648647425257695923046979290809628776567946705234466440338728499260873636788902044402741218160685637096228124872613047828422821756696575247037205438940478038723204729460684617086814736867929183983226709439949500748221064682397534688836483783304172222613732404882085544158010048070284086637776043253566485568209450505701174755777194849482852996518478772182380462397087490712502080348354292763520929615229049092303021990311627645149508711656024589327445216380040035508802919655079816021178623732264605811541932313698438915600649269374481840780113443622992961320198383112721547827653634606460994320839004758477494134445343690602281714371726077408231739664952631525609310183013158028200893347278228128074831733050986784299524551030046627001115469319466018775463012034633939803644879113057769853973212628799958720255069732168093280317738542729278887809435565629043156462954064702413063494277797302296738725342669978266563684382663452025172455510486210616591411000148447377148610652307127823427816641222298107838237315604344073903703467680829422306031269256997324691156522332218537095722784654878250660027676204507417160702271159163103590372800695725873157908701534643079276248398220417856438216080998783793839803035714482499662551858946519041195843608613989151380489220908502938872730070082514009769173655226822209376745816841655932466012296395504244261921626031204645621210954574377744895097396922332551937408777346669601459588612795672164120262638203441040669697468305535353997740625262504034439816077825246214039343052162289911482092508565262540347139818215812726767573687255075054213071290889830543521020973490596326417995142372660712706704661435489522451750333028260403868511507103955822798133868242429426232611097055016088656714600649498482453228837944607676471788838810122790574220772136315979388523107701707902869152980003285579637744847072794683826331834377605992118412471850581336372928699951947347700715433442518968098924266725233083600937402081343757518059512586389270491036948178688648970955230461288306147085729417973834386889415526363725654777367634326931898919209945188490934737092261542334950247768881659774558347708021324273545350041912281940394314838227718653935759083296204055106381370813438129320222320626319108646581485435578680855861663647718211939988138100089234881057218260314837842303031450291234858605987897201116702974316669362760874683968022441765771804343764375902909554925289898659699919325043151203604398794099200279233224398426961264812943002589785368919646103366669361907287249547966584392213586687522957623352658861840874481306776168564771053295940906904854913289560238426810325952507262873823169863011007041427969675291610249391916576157084396481532590217184040481148429474291021429886832060820986203832720794537596299121650135881269234874453515940365982393205654366687509571032269366835964490748543508833488657952485857637667535191588719799223746698176502285888502766961696655478440951446273201156860308381179372523699545409453936312008412730924506904336863021785251646729568860674981280575492220844555488574329732099567168361077522428929782829570565124744483143947765311188747454512544148253732454054090124813814378903977686028017013178418806789551808604816153131884535528877265697193625165318760602998189134920326314314078729865257104925989673056301300351641535104747737757972531425819457580646546207251979514705825326304940316815827063676387713521819171432895401451723968337660465700541322984954157378308946054892980178513877827756525830509086599179981979440068841959189365339513059875149590185289636115670470484088272109350596374892961624715449325858650993316759348369187233872691070915207642821079769133557699042925220881218442993729698230696418069324110773900857578648962035715964804103628073914957576562682639710151131545178983961391581706123037394061323184459731232911342241415008182697251430001831386851792910034463411982743789417033330659385922949999655521006023725570757981290384039165064180017854855914854423294242567417779089264866994926487796940772050510078313618766236375706182824539167985822606684846550552915697022959114399280156296788790347492266922038637475102628088747200361087192107682099467831326341277933962584736482902340313705562840466363630506077782444740952388421406065003430404532957790841392529900464677470211788778400771238366376411748500096087477568910401885598661914055937947973886403406685802740407012375811949305564856655149208244793720598293557678116044156910982995824113108338438158290670391855298067199670774514720575507994199172268000024694609868021386492450035133076570734094714962700867068482721804599073035035238053230055717416231458372164396440483378225840060279632174333987521639903108190446032949034945328465685500295273243402799351890793062252418229196445128395181747609638435638096869108137683714667451041023574734467785505061898721249970665956667015057345652477629678357267056077197054666226140314188732730906225927914265412988829884479532145993681179068910916958032155402388840534738912736682567296144807881265239905790303992621547017702477751759784717138047032018394580514914245451141418609180377321264067885165262510704535668034979234369537951120446578764385310725028289171338739884854861890635421776935738196485566953171027460815887028743598007162076118048656200332505131842335486780520674663439728216961600567808494469040998719680223591892668236541803968017253458224049045016289682521308667739326052173787852327335624596105548013295723485978471058923925697513334054071909546496424065496447643265878794021617390748789190103294675159452534921487447911012568757832447419570428490399264393775539343786311740694889611148483101187847140165681313545042162805704532178730600820359940509985445741674191743690412871126566531492190539577605688875505467925706465997730591143470045476469359173638247168696908587263008167464774097103232553871749096098490666993599688549443605366543403728618375781902538052691415557556799307096221272414245414515958972761134373537040968762141716817312298104179700617085246458481145384305003388883704208140205494337137706775322033059089129327874602735387004718243242153812857935162437516818644325864963790971537795671509894271820328923593507728205756116856471004618270445492690408549375699392862857160026654685914212002546709354686321203813804927276445397331528301104980644296309850724218898364929226897042368633841523568426977191310598916090636221908176308856917921166415056140818869007375979336709103877360070810836800491275209996422201382136372380683593198272631940346428533974711506839496096421458877278800208391633636831106681221360004153186943343700254862583983900526960019537876865132453148955768524348876787361053321929381571355079763604275483887985314996635422551961431820630627375436721089307785931024108093541933475585030868560284543792398638509500283669877516944851559225304767094963488488068819333679869400838663891800715316559352079767261882465720226071547208267083626559114214129956269453674079812987059267676334034378518711184863125606374152204760324494712006279339177654326371334664519738912002238404003858429322353386528544264104057036659069766344733808138043480745801306815121769242678102524434722483315129095594928080629558433422709833696333877367802725588608223343723812570380116188055912808329331178385081505482374999464236073016478085072833494756054033799678882920964603835889250034666098085531802690021793612383222117252773851708146897573158820675380267225499608844813449564119849683543304480647307985299516294011361835337347173875971802249625030483592181656832880426941777779597459456490966281999611224435984454335093018313725909872102077671205706102554177464161492255215218436275329276896164826246144458953370908891178616303718398345743021137138646163629859279951530688716238946065412668952720540356768577868382654163428269074341722497785539901333499932451708205463159752748769592386982764741707296833382262405040308991278230236764717578733787381390369740928193601810745449556816829725582375443632716219012755879085569616463553550316995037589489824159857020101484540369234284872247682297502252300669995691201985788366863248952218365200990707508748271561944295046920216421351620868206494464697357056268139684968928189331611542891096719095944073755369986224233058514927242188955402921004675358012702681259067245771649235665378040939760129483575740862904224034935116109930285861903690021390343939193157146401790659495493577319002563647489628657279256251026409442215709245465092994496473194905204400098385549180078562721196789220947671557345169430066689300769872564990722705349498244632188591479771192744279308744741582090168132794097791028081370252161313850780454170913041482681302768941925882989051029601849295252051668622268062549823810109338879218327351737311739154045626020121712737449377428148034819025094586133151745983299264066828370678293776254756099726175917306305529425306873149848393652414052252412144970377656296944277983676317873605295961343586431103806310811784068464052346194955902339875049088681756141683157964264552884612512286943428565617501144489397644054034490403553299725080889833519572874197311808110763302075813714703587653707697908427235452863953962242504934391521851660211648453973820769387861931059941665578577026377644664714615933607054325812249211351672198344512197256604636593077131408994797386605818732367735739762794204867753265635230830975841099376944977988447520236459645869788219908244973668250606038265274324791287683144464790261231849589203443122802866457759881645948996135980571045955374181679085019447173371578010849520269412657618861116164636421309608336623687089805308438758147967139613624217699613581063550474176876430128792263079425680400307808247772676306697650202272626024416623170356434034799081960093731062431321686523458933785454455839241064695985519743854893128842494721959373031982777955275467138492040554765443521263880644119682925287131078939498748995495712811661168776840609127979532271728956943348814262847580111013975083936703913401531998485023445888129174842468258782531592803995712818465882263779068759243564713751900418209877812135196386350632400795068513852249585564573025458919963169204136375872691876052861208195757001629038770509768474100680593759291516035749107438790694096102338670219387315822268865594030709752644862985648331007965820736659907867284053476535610945740968930111634441148679670357160625782871510057201054391425358515817501560784021512999332103880002348078986655889614285381286303524195149631111831714201184732746831552725725702097477187171509780032540995360685915293102499617032480374049083287897167503173813458014720362313903307620139240087112181186767743484813991655646790994843479760924760492622303264487752957090858955536091753890177999548718749422413696602770519915325562996289706355613038173816813792274170768363840919265214067746404739880744127428273752113819934334844017422300297116653023907071061283956379812596794908863424775654035952886047699201053985828208734349572445892964611308259556024399515117213405878836250555674769864276100642738388514536476189254830971609847301235719106143427951598347575408956116337320922544334855318874625964836988906703761151802640163742602189431693984419286525382059337626945098938522867237471097892765318199928373807942041104108516968294989026948190430080586798096158709287971657121834229701206831938851707987010334429321722035111163502788008216142577652279296280286489889359815656673684406293112319074059939247093904695248678777657366527761621897071112011315539141333229267998555321056389155902629444018065643552989980652332809177248868057789483712864096779780514093179170583078886083842562737088147282008763829990684752971342542324703047688930534098702754513978602230508217137402444304905603121549236347647394288379364472728114709139458657613098487932381054413509293147071884133845678529176615684202047692816454437603744452190551889637668082118899026845854585495850895389765292297138708890356889981973900458630399779299311354778948490335523420517292995871226866053384573722747027449919133028807324843742858468716470221865392656187023381068592085144497316568281038875923862046710944749615217697936123312365827857963580161930231273506796196129280063847577782753057576880032428693638126508113754092600177675760239108693066542221045382359024785542979934221108095613488690573762751290157660383754379464598704510689361087503955591708231527143651556665324915492320833036850922230339563908470250857992058136398351706202776605933947287286733009750200131638085970109287631888935487255035551208504223374925818246001987895598542109275742769939215081434097718105264988010543545537762801115215822919607005685641516978099700701676758655390237283790243281325780012330554641700076372505416461827022245742959971435981297092100471383757182446390478625441650515445351130004168930032382522108384254229646086589134198173999806486697602659929199180349348349355136092060565492193818172925443217134401841860250959693245903057918956649820871572530519807513884525547090487772190520843293011248676217706022417406232250292887207387532629723741317125359210289537515121968603306075290136611756994695786510554604990787387928601555532664826040264042279778372830322075631453216308589795687293242848082983452603840689668498546424782821183936722174519904459397743151500978897795743301279806650153027426900873108692981701589480680804752426633433304113623057254981924570410195688937585764098135894466460942247454463473236967415930855847316579674295951435743486808925461574682068952100787711833522203214472874203378144293472871838047711475620135891476830258705997322948682882025830384487815934541741561321919686224097469742783299802588515448308417312331881995398369150922416046013694655433758929786286773793274746687172888142599315096304220408721198987671070210707993350068957293527818434685924751310360188428832954996250011895652047359162398936397965959442476994752914421330456139004167884869472192756135932547695997147201614027092685527327179014225733597899689780112239728905074538882051555368541959449759294132975721510632926144231307942568640735969192703619179877176261862260865785332431662343826516828612960784963208707941068802015483559453660665131860129381522210802080288878347094410937908914526345212070727003028486473432069952128502473768126415959932207999628564967862373435420644664238184933992683312397544957458330672371801286922811239148652075068293952602525695345585805922886434380353385758810777053659494468298345760742750193446538752228397414209110429076897481798601301980750917536920313468027184381757501711965922986377240222573849442633882871413799196353519144292192155765407760236882271839385824232467867688157737218262663991032389702392576520855339928793659092177679462397507591573277080384612649872592037062358962871331899693782062338275431695283707015863444748474329819055362675281559773951646149586855557317363037385712676438081771876976008567594414259477492913384265776646704983745760661072785710815793243925241747517833108415679802143865460394194808470910586533594607051036590246895503972305525231694317488953767094529014562319853354830659785301194693624595095061970520070740461358166770549619794222398802643129193918651001629648724582718237386319332842757894180465751591821935055415150140641852655298124976918714374899573142050267119915683375966268752826395980374158190867110522170676021808825531841136867641975768060084865598777461071861178761914442276449811825818900103622975615414262625417827746044284788730367756627867443003180915278290239801292602059468530455080375782150822448675665125565387905590955261179022486837676721212564964510742786410348208303278502948504835414433535230587357816798804496937667552145777660073841735756953526054972444803704716705165735272357268229456486202973787514283034875449271620744840621338648805893255991542329787303520544585500369698179212508395596206013821084602449024442321787804276012788729875259901531202851113730811589803006675323365613713815757397781327313562486137886700821096178688879754114598005738123650425436098916603725216493210932781292681027409829494393865530808802339061306682980676528746146851403394048037803932254350254633730405011912095536934786693813274095080338799511196001900997491981009259299371826925700636166619699225115565489025433968451111113714542194395041281477091162371916960672305070520693087270555513724155647888246354742983885371372576779006559097568982724420599692025460053812105690041530914045066633678348182055268993541179761386200173466848846462795453093470053666610315298275172088113068297559544214578626666771118837194249034016575589874685436517969849874576834690137632367397134551933640442543020582027129751551648473226011549510188410504828191842547552204902927662644977409074386388538330594196844103280915518938978750156489560965639627201939685572542863019067667381384111178413261361060304116419559151161013737620392240265779839618429250018733623220466160325935081805340643531201083317486061164315370962919013226436328512028001037474103099189901548485363675597687282346884434715732153370684925172619065028520771045222914826769174243773591362442016207500123990931667644958365496435829063838516990080878139127440141841301188955411374720246917517853858080675424596337224032433541414504894977252647167260346987203351867206585949486945354745350698970034196843746886526268579454503146496959298047693670903439243488693980281135948940998895146032190337098204083672077017665646783959974954467530531985012030951222593293260849071987851157625510544320461089958871172260642304017546815834956436983861707690775228910024564935797668136394625099918680024460426739574699843460928381925977843596839886314460029395060373912528608697072261617126364648792114280861962278959748327875392673573798970252452447539666400808927973076449138854913773980007351661301774711180856680247529756924812782468916184402977348684768262754260794733655686573284339144016282459311198496252801146679341312644843410708366250672846369577828101838015550998129254423218023077960482203566820252973653987428084410103626647083587854362403556441945753751194648804009251872329902066899592136441485825804984228401096430733794356469218142410987134678343365322055889417832884195316764166174094737662797249356835908636363157337447028576888802427406747416094335908278294402064687405919176638483975177332243979103496264343050346304930187195106416126811582198193159955306368653665211435494058532271348595149523188872187076025927185460459193770634781962004484155870781929592957685537488941865181482262684382151075985719794541126541447880087394898281149020725362842831459950303187452780891291144747336643803540693040992450655293041019356839538500575816436300869347408558555273955336890978389533148420309205472515013530142362699397741131070849927349260566098005832988531758652237121425640212346605513505783503222427678139153702865541602080454520708402241120456829035713078343029653792976613140003732196309677170803783295065412047158670315795357134649504436571255621390378617446632934592814067823681333237771416451425365895912433291062133624850017966796961097066826117055166471964290669550816933054144090472809699943843833147819682562236251042421727839611982158019114445998419914563211642823093710172628216024489988938898404893588530570054883547220514207055993263686871205302611387852397451200141461486794952492215465758539724565941013149072988341420285762998057700925620555679841241764074981399207922348092146504224663262100726490008453023209178663164869596031871803870016555244574373956271236102389270097667451063250071512820074174972801732775947876126233225180774494750161621454341812753346166549372461018126961728457020188047906218158655603430110097884759482563352776556637729390119329587846259242872990039224560072212883714082258106246293079609695093327408782007735160260904814524583431188592631290673155081250849813366653865790376482389529188874633434758997059509364296377405886579905921440612913626156480038386177945772164440929171243690298951068609616471598813546913185635729037047652103545221162701741113771181747530221595840566279558056858052367102105967841251782891202507146532707717205932971213312588914970022704067002880608072116687316248743601819180922845052753242070133361874776371814349748479485258704886562420853584234804012675439022145082334992502869281458327001364646923074727336339895682380042734662901533097168463799665835546766635932932208179700798158206587086843699307571646622460278714795321026796153707585245450527934771363188343365439204097384385850845901568348885868973114962450565573413983109086318905856776559817839878147671875773673994538278413934352006026469732797605930578086152024330723505281872440248619553478527198504875682000006915499697126063140791523237669386549996294287039172612932083576893757241023971738714291863798560822855997506857610901494830161186404578469211363928728370637090755426137213438932625595260819099242626944892303057287132157416540088640415619470600952786512029040030855133173703171499217045761116788664803031427586637892732170624126701611660354069624299927830007832263899224196247400874347937472307539759701012077411618774700209791493153682837575062827618802058421819849067765277702555699373164711468920425385173941802041523348596444227751484888897813554997508659516020443930476447604491075721307322701502518138826041215550836440821098851407579541348737797574352168692425697876485200223427473561280625817449479461157978941410175377809847481835920595203924807542841491931109501957540646465161909996332980917563162937865332218326932782578051432414619453949496710547496241888791514162825616469460308208769258553145910857986183057087878994912187280904264511408946143782274350232505461485516759382215209476985428414367619387628150488973618241156010500162397464656249860427284775068148645055486257612712762113297950348032329245444978408369670263736101575827309645702638172955209450151159267868944547219829597808747393643603192954920321778133165143585948049388573328842895929469742867059048790678522421491324211493200816210288785355759572819343271193912144442695575222965414178432175326086121934212056505492057421352531269025784165915347370085308943407907664954218061286710972387524627450674187764710697328513869771356351639210921652513207289566450536697077425763195268864353598768157175850883082312655221204012973394787186278668100969515287310455830339554601583055674042978852477091181590423120111603845944472053081782910863680906529061130346305696549947014689615292419632794548855420542055726876422151208760365055322978489330446068851497163340705591142705684391367423858308437845719148537263706482635699767261534569452044420066001934853519201723574329827313372363273564515181835523038426166458459049223184141939861726248884012761972968563730438612409394737865624485445302200639003242522475139983961074547825094539660421511405074027867275846156670949124914293548562116942803374235334338510907150979716380211219822115363237880406828728541048827416061713049849333073303354806756101266439833043996040651617927735904840644292944769808454470700479968798424463268307259804902679064106683925329982191940032860519475611357494564920157489071668681102793816470530205068638098834645960044523325909947776590819329422438401366402429140197384436353703491113197129882939585470206031901470937315062389240103816190032284058135872609216071110642305847629391198860467266063658378693176759872699687344879639209220314067294995991236851767112467386872765640203702023133977631346662024678024443306742096789967277441596818159772719424231868883130428664373970720086107647601823347618261659428973774588341841257660210520603660800787846524148735264137709156449018784528216522191062377358516410169629150112053497924507475661187829637487538458054029755408645918732419006869982422021966253217951403028752709813868930803863779429186849262371993338687804720093981793468323923841399460422549340758312834037299781104039977341440859587112872582875923177131512845313056758748254174058330976715205165158323048645363884469168471749463476479442744148375408590137826288273505200616510445512539874030113779227554974093796286062659821237469537404244834476230110695724905505576030099467883245121711546880678178019765441981345577757437347344595335681023424049704764278230804924372255783615068634676458292935380868283710755732732704021142866951953439033416832440635648232726195002524674018132382371888379259874610869150094284428712944638109275856335959676868257757780142892079645960224588442834643072020167463907071227887828252095717167907523307991019111996188613389029612471815713796806502258372826045386061977777197844999162830328034077295976371934744655507309793233022798106714199637724099525374456918533225845101511338285042778740843474132696851323162170639975374878178091285728217195003485547591322206149566161948066240110666793141359831035843282361165808530159332216673699066725965539109329365776113969312443486468345705437960563492624965831978661544709006950008969063387114511246628386142896883980203072572917889682379820987736044034582911938162965379377496289312949239674628829818315114571498054181320016142306054247461766316286616155781640430524658761836648704235174721345204431781106811926907824439398315717550725268236177011307407111261949186428031063939676949249852251059532630944260282516718694841218400666595057041785114511642538678919877087157690114384692993402134727658756149628667039876062917911058253366351683277851124952374839153525464457263574485481871591516254679013807353612598751632459786979752611265754951542094649618399822810166334770851462269200773202980275184530604062232722762329577722678472402524787191880768605860492712048633621693990956765834822766204245865647047569159715388547759464145592146583374407491435962534133264468517108456703934899834219329926135639306846988064491711161877976826716519566086340584913694911922695623040112111741037298743662890165327036116614581066974513161287114928995427022913502982812596991526694325752864726638134959881672688572571121729665024167451723797528186031356516518178403215964134653521614435233249629913404585386736561775310342885133258254613231851836076917088459268342759876646049198570097718195793693980106858304265432566223183691909563910668496759520134277641915881855854819368131568598284629305547387108103694383567094881356889364188676562085381162246371287760959394156803146446353506817248623951454132310510916917158881177785735819925954741880916295375245138108842865156386363929340948062240908966141076493082500636140447298478852048157018718203626734720453298999400293163302379012351924277080512070414571534209783428756755302470390255234643742271259314156900980795945342704422253513257020007929011571574930642963627401511906731923181442348366128790674808928471456921764577110541471865524483332299739700107769416909388363607719806799386700895606347262261629845926589300522384313735320748697341503999944581351183526066485065997294013642244554464009512959645193165413443750329412117377229220263974821585134380599887888969302952483529808403443523617966966778965923496648053957714179288223151241810291127703423378137558029154633536064538884178145131184872090793775964999710569624394678284602429424561115360985627869263223666218901981393733603941118925556750888998615004532701862277124918266364254667740151756715181956301913503221650197045520612885416861785556830000651240234219019222246388429837817512090393481965818380946516464052206494323147807833603060031188627992644442631145529953984572141578707363615781783107459132858469180156700173454132930523340794887020817274991020999776455788454757655140986656624164793334528325515660159556615723722894535407100426844722687856167653510740671171196353378821731172495436779545991867055080482506906189466434416273405018966021737117087234533392335515368377081111038586334684808060222628910617242956546692367016878807151649384408220243579277542751958506823894566440836103507097329955966925806645488118990260168847786476891635281648287018717961121557521368406199824286014968797553378914941784954073965799356397490576183755979073776170570703273639698539201139173794750384216624241337119095489480402570118920266990284002396930456978729848262420729285847066502863361771019235416917482309583340881469615205542780757785221300577094046137644550300848116933444227631204105996580336807158655807474940837272569858757709619461712286251917722498918299946177230101804879350849978778069349181512392638493066219888540247528780481886086015496566866926311472227243474731583049475260581227921123367175183536884508421463900396478780434702408735018838010731565171836952385677306497867779724335245568224337857730761801522791695468076393163682886474874213558434245420224573995322258665411186687459572651100854741639987191390806797529252712205799238340625200208882787492188233150197944643024248256408868934459150792908666175194296939373815942668302504929366517188012148488431231660915228570014716275771777259982101980912032276858130237125420422615779417553886819783156164884375317686159151846198986382591987807174801141564151181283996568441088577174755401189797697860916483123601973730239019732426907732508929349106290374297409003009850856334949768660065396002304313758259018722338954023197770263253417291778804718426408857108566803931377315961078663006063235290259299567425404451678349981005910787003569014928157378221629709182085487465073795848508671698611503261793650704764849374122350108029217933010993645373580399767092938339424731185327441178010694222390406930412755630875561433121112640915386237196976207436034269058068474127792190361070201178341709498957158348695095311592767632697685532456253715026178592977704369589814157709831566757335574920053077682778355012847591492399158581253387752972458145163772100165592788074142168958755401615333529217924825907649288720793533378110819269925638439070785506097804444868786880601889866051274780293877644624819288716302356471595829574561144519465422959292921146461680642107279224688873950269169891919446706121389134832149969599146955639455083889932429442623881608381387340266036253485963254200183237079447444569762559617972203668843227550247400704339610160989128854952765369060679535323702140268205289212479712071029748282991479864659805727968214468041688037752178953808181167564611631005742583409953991598519438057971760353367880787043176626324231685205753324316182181082500384078368371440545659882974205203169493710990824540031807259225383128695678336857527838485803267669911921251645811326486731244014956783468673845263362041307236069060246515123271453123204517311100669522369373470732287292120707561232047752965929766017871323839222118970679614152476049718466889307860147276132298335797464827460089045512260012836143966753294782307273242552979217786671809737381689057940109415870095014108374588059057310318663419139571074002001156168675790890032187950781313951316189138015475068301051802668331084235215157776607891455759638951713440791068946404849656344893681815731406167618821105642190748828479886165087671689889139998706062214300837745281330067388277556872071295798288616974835049545922043142801224331468223930004557632931417172555848564229350062261698051897145344572214213742972907308566422597417851747285504083593147878086165203309770619246970615475942922459121894590235337341136452324633036424457797174734956772569460743296817065322417330409388267788997816045556566090008014155929059290002580785703529847988610576253614198675753316598218619267265115979063718794807142436591389171252817077137344675443044344001629879317885762640470190562502326477439558889444938551093296234574771769296559617566322159144577206603987268534303154766704127314790857244575993725919548436268525390923624865695255099372135402650933664070270447283845519784285954527163325031402974522808032910470672469322980177451359677608505719696581510618591233498772744818757000625370705673973979164940856852492174768593355569067823292678837544559969449481894395504654232706177271058382279525613953428010777458244129174758963588424653925754910656350515382416668976939604132931647376016957685146393978094839134026761765647832764843752330570276596943742043861933627837350322921248907321079143311153527839272724292326883486204109142947229612804783432225763647398100970994606632038111398380286224613271690740174353287932784288035557466411887822360724707105779186556636102907516716244259828444786065362872112044492360697712112685723645228867365839621466134504609612449016091810295810508189520509371370313188204096593782924563859629282176863271271672349741588333568927486452359308847506306350660377840209767828550906113854606235453167888772108801571556271558669948564646946717501460018714274364166304052078052192447597675698228500451911680505394574822954575923425782821182660741697366896110416537642767682202191466449894524640583642247590582177216642810200549457706158376395511008548717710947548420805072922394923726753984859116633263115687443553837805668302888617241652323592357557163198169509265464962086575083206851444541356733865931004107704166768090027511072774533792056162159588062346528154378766113815701209959480599327287274799644807384179874465308547949808138666110835681306731157753358543759886203137673524995448784196340029401963904667141934966031256799123976428505824082609891217477929050366145310040770659655816588733868866788843825409537713960930576529002888323229089297941505899910717700476573942134030343922562290887527431922665217314115875250863604354739354504849814889699375527079319056777164192610757709627249451314715327518136628671588109636357386091287435394999621610997439986118452699613417603767546447989530257640863836518306084997596150480051904122908645957588599274320734551434587666472920564162450254466125263427708645555618318317316391688953782275130001940745434450673000101877255115842151188982504324176753033963525079619671955096476308952307165562654843918606943826954227557279532006068878332460779905656869425611304426593669923072116036308214131256132288633248864311745058325814581708908181120402585013853971765806610373258405022491246295467701840175937417369127767214584589343650059737997737219159723369193059740347004501410892211911005490408812769251475604936785398603228455745014652687617789625955186143518017690613506495938517949911213892964473685155691658965970167177536593263899296700974213768061419395794118654711303126364720392393366847636588728966832787684626358276411495913075171027697558460792144713541574162252411975058969099168078330441134618541210548731451599877702975660481398803034427198293968201622286690109464310466121558364509737823575249828176895870012168745235864060697349497370192049123059561648155495300358776365664389556306982548385847093369142700650424376537548366793423193312916563252018125826527357801175932115032583898830270119834215300646534474291379878050007330523048343927708912916949142081848667211282608663403839692005699841329734149813678951959756673021299093337457836919773513329013081721336848039962877112977706463358802453524709800161356603890884217416621726402598796643432492275797960291256035299657469673348039027042484284079606780162981951582301145660985620825581089008419950612753740535225289164314173525351537026693599185528370703886310237855823204725415908628744648914728162310518151473881810977983589526977348483224297117117428638681948194959992020526585391432317686142189808847546207744292598709719879785882501723846872869111178491983435750211200611127041661358822159736571700521323913001729487067640856139204977073295160651420392866151420199623688772100765128137731251260509538134241997429850785916359259657329837737737932173541834729746858580675105420806791454760614343550304491769579469355712692824512730802869503731844960154684692072628726565871250151246971096904088054623236006449872109935410091682268658518047162826003606134551206497032339894502024668849698017736993847984684619152120044298077398540583877289047153658556768019119579692133729387230007619938644797551791816878675840933778063129243264418699074201503813146634769843500655644275807563608035559436977884015513961419245980823877395843545925761709100514051784936690310520929591836901584126536036802843061881555776273215354402709511649153110537896214841409095671247605727879197275830774552138133711028666466653765011226133499016199662308012937407371606230301589980273678230237076822300190799761708868606834765316580406552577222210316170335636859835503909210210185398501190444803730098311370714822293883459980294540195705522634811047494001675036728966841282658207654563598078521652146189769754218810683976642286914719072449679693817128776278832248450790597270841760514795472451495874660419465052363600527733287733584712078213760931964529321160123755373661095086112195584933604909135135397652983091499091181359917324481613461399433514373062461706405243424645697704808847124291121787988262066569587049010850012961670153901423517592882720530741224279214457442824639737618952617832169143496469016757814579683604165180799890268031979948362917045971858586036857434346758286687691003341288649199626120583075201321370831044219480371585445050766444305162101827409122143189104424026271183185031700435513206543077039341377452058977701836529722562192779435579754562264167542277275362528146761548130475684674548561372980428159915449559520111763722862449212293494424220324230844711972542152277575372885455541506445905190847139281535213604886671442936006358568865831625903039528156600887617248782884153510300748605636573565160597902512055804104188948891249378033704884587692797366770850814439139840914515171873709219470152044775105763599386176819151791243963306665932566635209904243089672300616846010370604675052691359531231248009635354901612830091931280864635219558496573429939569638800888845403245830296197073668663834766834587392620064652082727699326732706790130671151203714276309380684401973263402355920133002699099442887668145287054856260461752766859658412584374764399029911245014094724756034980519596059849128332443183433252876406853523538892838404551363325489984061559178494527811576908707252391518958701429523272310284795945235449025947320277571872498276116494476025395673270134413325896475249097602630051542941963556648476282952260992587840019919400682079949660015881517470006372842741078095419918130629616567392612125618631921417253601678595459267194241469637964831046473259389578106076858979362340494789803887961572074124080091550947067647173626875640699922997907809508617372399515438300580887194786572575076691021106779342717642862083548658761658985637856203919883389034992862069943851852924584418620995505379419349304088443428493654557045316869359431782363446965086005465377690165379258616858635593820545635452373368013363107226704688108549452302331813633068993203745597775213775268141253085612881785862206655034635723717782315631010196044457309007861784846174524838200871323974120005749645609027840810243763681983937444450845133837614435189046077587526876544970776710156879260092346212713727696168597208468831584678341498000135410939909711499439575953953815422311669456115012973855397551336394279505961572147041283625549298590834141666483683260445519935213726491368397139350832211311230571444658385464874631017310470130224075179260128394179548239087417620854609757505724148792676730671247845952047746836611631914429287044614261393786846444136624389380215644266295322750220636660469782456034449088875920168430458170028877343189872031818631968790475413072483155465974416422077313097807336305624400720071971677886068226674373908064928087111749012619883864237279564226800687176330334917225359998679729256053945167134680283470872027805948987854471989941048572308397023636739738443139750629524522603688021293452008707095381655436902354832423776199002589509705941023662022937748639751102487059241047468814919663169140642244721800183507901380818776403819293746586691065227657930850104319121491343001203730186829699002647919961114796955566309751623417807752749952448916873909229017305092406107254093214126394945327281770838516099096996888111583703307650175885543113303038104422797781155313329012241336669065047244010273645246879763478924217230364303336132484333600324907777181484480650507837113852422195651990763001434525127384183395446276791977064820206051788648444172444836681887298101358463829491609134154209363624798525863741364850821990338066250653891797622716242464187074582491482188872844345150449047560247637550866914412136710994270538420216059192966675497123506418899428506482990670540185971835380253699318772297821993973535619103333497934972465815551913152886271581928286657737542734075509946324087378166879847234366231758454311635449252898327360579875599659955368089711712109993453974146050889888330764214737734072145927889303919628259996668168885970771552226342724986540263180167488705337777516769659425613582342407221624278048553798378957173266050927509177757564149917920533019441086657457986888433756893848248444742253654675736311694660301419954996392634604752993242413351210222863055357170022887387818387420171035026813160909658352412640312774488052257853067934589404010821195036454168333132400463168555685772454936362432621574604058747398931740894033921979880280400467412759878118486128329261859955543707581014065412077987892642987523002016475225814745711262037957783289565794838277066290978488219554584453012997068038059950092534510459348560157009973518576933569379544652808769687810070687649644554424145835224323898313983923031668702663288194064053012059960092089233853225625675358314561251608234303311416038473900580736109177305911293638160967764796191860359045058996822530070266791105958955415813384144842552299203932107430242398180735300863168231955380020290069511186185830227501990480113470818363893447656542710598546459845198323073758611372846947833320760736079305263936136015285890514132549426528914111918205866490496979572816467539371503903171697540595662195649057258170236278733194218472391241256641401722922275970258220388047551530971166784786982105366676518403406498691439285063302392162036437262138305803622238366524702623213056280438968257370144907602926296026729883433371513894285625484878936977089984683016004163448775014480492668287510080911278141613511598966704154541561607379278754190415807751388697106780159596647821586439399621059052741747598878557940246009947481811596967963363741070692919139940976168664431494331259134796713259173511730846389818104132114684353845164232572517586901986250055161822016642013791218039702602667576934386436972692459591075315935813955892629461369327534410870848418100267533496422982569059829952236490579989077933348983608863855058866892082311114773362299985592803855863278275474249310566417779873484507002906904942222382421532979943650107597039463101697456382422938550680850098507783040309096359509495350923700611705407173768879222749422583734049101589083371816586093377861443453117803575201877428024476564585568084970267924233624799374620644035076646993890798188095508242891701563732049587382572841369899455164542740793855718737931159419515268187328009912819688590809328373779107556172598222538449787313932656069908844940586934253009105528218251223399045486791448943423937293098899012514574537851282903598184587939721811242594826231150245262618397075492274284037681369324532794813343940376485286418605558416214407879069497448167221802295696752347982747827159070741670932050254272587295878714412954278865842645413373842405900761768121346771147458522968965980351288542716061199899833742696993301884024625216365592799591466825623179756037964338130050851365541029289426898632779419828443570352208488956852591889233321851355203355905911130801541656711660846362206647502419202040720625226439794957778809921953277830436657892595534905114471220018195414326553645241178675059567623392507256645165425086725879372895712095784307083732358612755488336896795595212899838870374007749025969507768952550467159140724477501796529540536547566813832726912084925908159902669709866868532189632894884922788244291962297771813911184385606554701719642683683647242505694355870513376619755312847357696511878124528239423523067102002380533808655157963990674352246141717233477937356059017176955260598379765760271463860547261373031353215739483886435263029950410418643717057980701859711627836441966533177914057013733619202112732220380931816525753077804604188593200764116441633674368124260310999542040216621753107831946304795481827868611686291202066246539928874023195928023995612581609855561601566287982608785187814026260497778998147560908617052977060821028273497043532067383568345846273052200102769157608791741203414350943777706876645287139500872925620164528661442610605113048572816608478965685292848508471263094510775416520193616060072125642775370509617746490514328418125986315913931353540138462155615102605900205837501329930577064947286274215486271959071265379058837628336248356518251935984332082129488484899748755118088641076230578813981988494541628328951382084663769150935751447700226880082973727273785262661826224470003606667545169021610829413672168294351933060963696053725789990515263745460270883487927716915868202850989354917663026886880039359520030569523633902422706949142544806977279557603497953931086022123919298615375899476473651634218069018334679751583852752405813595241019423535686164451891416217480613171026338636948651888843547323635492119997934410190037601768878974243671459602273811093802395902238658768482972503958094683927796412446513460013342933275140345798888976073578500177980141967734377733690808253887080988467792797929941374304714588250703392795700136493755413310488767341928797124108925810486724269324891067365166702355123127904320020084667846480818206963207389564657300923357115870547458440526023624952247567500236219607774119107702223938511877949180546699195177527593239548489990786110034779690731640466591423250558886882416333979733244767403221547873657191613023074675757755234333004389562338888992430522092796917170779834069332183382612957025831884988135076292974949913052355828920018324590127870500997234875776886840974723857087557866531091526519263301430978855379355790207170315687333631272508081574690849461545586067618961820400639403217732893607785156560257621792659704521259813611225005081664789817804219126726042700788315235619629101010545815030567837594599398458132326352892008665955605358476781669560801742303177085551403419205333373713426420447713244467812675307318402163278661869828829576418463110803850941044117271665612490889552437708207356600724015967319344469288112396339212689581293681195488647799290567857099045968916626368942804981454677543470290489787763982427755693103399009136140651020593370018517199907602431788106800782688651269151850342721965772405122855304778100473822433456807383120282408111899707165691515884470307439613406409470144484321058278504931233080732348461883462369546131218475773170048339453769872148478486148093350788617522936461356570467645659555968083381737898269002696261270244609711726175054328908247625187912516738772160417013179493587182651442943534234920142488662469856692376840252190048251281535181222551746535354209949211114411410257584880637718421011931796456456038251712734669376595054842429763959255758129528775263207686477957719634236122991157795279007057838077587162466391122002992456661430394005347955871695580268806798879802063299818939207625890083141182512046997511970156606337543927624550694813100780097958932933466344282337493963093217460451295181522361915430919536942098950968538693320139905010643031927834148220157800721650892534069079509632610917717908298227665249132305502375612590547071009359240716531870668323720252866678878143181237400294060459857358327806983545842759311555080359873307847615639367298050325318619667461132721924790048516199406502626830057625616919396668974714792545455069794843404700049874373327276025842574328570621588197958903072859578121670806502943030312931098547577915056486348158113118981596236931669658550961843187415380372131970009286946987481198816153620471299068918381648390027419627939546731538827535055487652419248170329788944879774308033952089824970983351383394337826285367911032305669777192478128854704271285273262848212358693317941364049887817564811867474687130570437179953289932087108290473766462065987865555468109051650172703116986308218518689769015851441125783969543386539634784636373437865005692535652679232368265576973705256154977915996693489001983139081399519556077764378489072571916574369622137873673400349839312533786472566101617870590725296587208274140587327671354547375505008163164172727572897381217375183991005112022726068761068741916199595050723618396880397881283766759457610259824552390888376382678485009173385118373759786283688781018318211313544111706852344803828846672441060937806252817821239289429062951941749588836798906700854061895769537290118619586646914174487575757845916372596500485146100301777040902615816349271694661321572504242597134756621513891504025410770823185645100668989720767242836251762402964827104826314071326123982352494174093941746043643945773251417095120365022306382839939869442476604300229130177603112096958749179075126004506067045165296016884527249745899973585659380249779343873739175905808948844440128707143510660676679232974405859994899192032923079629276881984926576939102361819317641745798474222414248895627146484920397152590441831231866337945723650142755882079635383128480924244494593745359116643063318926100086167156083471032618040782747439876712663084365964831924275810403765513482244947402780516184781580836038135839015998205747157121087029795535228860236020652516157857525398240430254704651181203621352768882387088542029142003863165122018917177974667939121528642821394972767177045669254647351932732822023616345641867390151668971031222228765056466461026672124107856134127293664443791242262879738967061020019108526137932929469816960904562855210147009151463034734299784830400067452062349751267182558606582202783040257103055886967883427271480186373245083315866278046018759723748911690658281418914989672113414401707644654861812382412515378387678556252675375337031054750428095356059470501320992840858960395114177100525125420051137479511321911250420713953031296914129530805571600823138328788156946522822155807838547749092656687704125833169880834360984341544457241070617102050095069277465780909956617441718953847583089127468969450632939964057851246948278281578605793955894728932246041178030789566529713785684028560942622634900311907885717058757722922931915478282114410356260685952668859702348022313435732210850963434908240839664379418548923721084336805365421230387977522321857652986276057978393604060047288324359719929690465229934578338966477852341027360856976949761605305840166115298480580569516246621613312152618878204841533149601557454016787358883725919140785513593962433811388306916876962970182609391593947171658595035097581740160361344507337526283151242799746234336423278802107658158870615823814432393636734056009443088520546374664004134587983618772010215226326295531060022604012777181292962986496956558055748491180175222507360990846938007733174752318317999907154432434747777182808753538029265116530258759528297900211718670853594307876087412775748250035536931921560981187231652184447794600088843408388842346515762240773551002989927448063666381984961555109450394037853236641892755989398306603326362671618526353604650712795701002145466347444398014100415797988297415237619189188324366010559631899651257298694842922811584273826171082396249881779902966444997092185940549469577540830835572862259456228143263945048258082207574904759107009198920511496883921678261235193196376709114378291845125625046600422156951641479149681958950987718329575493269725863074029666327255147055975571160614824427835564759813232631031489474145449057755523250801510741308005175944949449543593750727209679701640870681749953457360630903907364343358292860519245358858521623498850115406986286955672550063071262296461669212556382914386303959365334493456946439625634147232507344766444255815496484914702128529156757643782424796837791033882742635037247326454949991582849961181866393108493254800962815411143196432062714583295653572714886696271295365577030684719069048454277814444554308917069764360311935223634028022447483032317773845023275153092997532121041853742034883699496936278695751226896578200586785080689383771628087704653998947423595536044131054745110150974514147183591423702151574688377112668241990006932293257212654312868885829719593418096369698681072192180382340698560825843411712475304561950605391213535743501614763405816802528199631674495313597112224567410085580141566711997416083781133911276803942642083014987473162620400379721005954864528734132968956659161465164712926813353018816187975791282500831433822082119091434685896145139836726037201169862669866825631987335120432603723487417597081667569799890027330959324987284357759428089366141495649179488447271059694182243978549239359177256066983518776808109689824464056158094859831564462356980206751663701192548465930620779620240675249099352973974362398572002920429959296687054676598404935984232927648904284787747443551611720825511734889383181059505424189072259167450819605565494266167331194670750050338735818108574057241106802895475238542920739596016528293205650179043010278366296117979483611415706648790607164049154141807142337108031591034151568760085096357659450208777608600372193683090430471855205135500865775386655615283496180200880366046124989320578142063343642259083423008682640815109155482752048063833379652681631464305059368310283067473283468784118651132937877021688452832782179584804560713173719272588521874392543995414547357763297868697890682902722688167128787246003238248406418366135866800241031927822779636581098692275098940720983103684268664147407262205715010264652125013797279098735569755131197476058404652067652255415095194179131035297844254057400817923802026369803804365763708470642218874003092328144627333872312223331266127927776765696607982906691220608744670002387628962020619255713718814522393248190172894000917832725545321551899928042061823980674851208440335734555341651315954904702064432338695010230984080730257751571698129876141901860608178485537506138585548620800270050278672457979513235566560661262551705799297496236355291902322311546595997888079052126461525594267804773489923543861716867648985319359520888984264490667636015474961252729028291859765186589745496923198103275722011667999680307500943198680458594521524218860269928393593309009388950784222663953181734768967986849468572687608641877066226192601457167126116128126282810570613572689652765554650354493466793842704962885017848006368139121214095036558658722052635069705104929591787214237861986951716872005973900172885752545655125640354893290078582096610820449687936756612090046716586165953452826577350743623334588524339635879035391170984018725051456596964982265388068196939211031823304141532125434311005320294376998654551479218736931003735904711328266076133365032055805307283366688364814914452325369769087244682838835082212889850565779519048671008016080705495311240522536596455942773585887081019466307378480088707836386551419728927861591621144282750441831754513901051291450686489124217783935140092013670894454602974587021362123493488992872753566519467070854526955166089849842921927057284882160543748444980969179188476886908472592496950889773765513346958326971773240242715736262945062599312309835359492680058308654611637841890607683062388730198159670700352716862250323527589111978109037444581882034766420284641656236537297156225747225634791346180404252439396978605883255799974709665111138124641188223345771684052972448240592350415347152477054708594677944143936360386166597422497220239886831648900676274129085040930734304447312715831473489400193929037278706813494209968991518390516744795177532582276993787314803330730968358739754770353610989944714440345690921901369490575358206557318560004696693341854339856943013435088066419110148546049241361045049112392768301955166454468467379913351705533310283258143875543459090743735159585678654523403373537093765529788426726388903601929675780232344831250507490638086601121267683391221506685216725623994393819789135235211779116853506638440625272586767544172597365452637518550239893196670277654220431570090669419240859410348350950995609752198945569548323876291668884988333931441566865817357526752768251432453877060450087620178533955398581500723140586022523841840251661827510092615765363221697277777226455886581166984318723715335472059808254330094198071412989585003962336092332130190713174015086836833602800807859878326667202019019213642767231664541784683501352510019620120428992620310496051142419671324449952245635037931888177987489221971510594040793040384496183265845393200971856194811298085381627077460055491348372156805279802125794135451299308910890257247371925091315719930335523845508246383947955835532119480910939767123344818858102968152832866795521665345319082798503982720977998964665394971315776619291842986368169942292820131190744061931138243802589972249667729694259465147755824437402399091866651771211730626969666491251844435031312236122664441354299735006307465826886733040237014889288782221594190045537010973139078325588867858284291928650509408121916346401074829593124614214494619795902057568031375902055702829539721888764491580636404326635719767760358130844636707617028628377804798527195225374455905446752885311240475290835854723943856880662026683977082599378454933234188683415399284817585632930820989230197021604350541129035039605773500329008168787931292494055887876589324468528127153173150307930016119710872892666522617131019790965172120513217097868853735838300205760596352332250269747177024760003053437678617862557702347207922542736074104471691634085533279195763721003045895308696213205015203726415727500539737858483154478853672358661373805794727008015805378707219279450269890787179384541368528764144786850451216911986580898291720813356366448718223883581338528474802326943035033451529634519394037537217143192270409349558162148471593562623597173343024733379600653028361203185554252213966850244763991933262989970079006331470945445506806167094445131139958134413945952987756581646696376096110402814853411588114534598404441033304699965319014323422908946629590865913282845229341834537485740211863234723790892150213169519424490496937306696902367181528558304881090553712160289318875747464296446146161706738614590524629803403391273587174709132989350243383162963822605409506991586533309145887352286124307547132901102592506332873505110091278779373941101791012090790887214905490987743762657531413502180727083745428316253709813709234689738062287018098837490804459086527485274648038433692316787785844030115551113063268267002989933061883150390483999618846384119989355481784773663903534309204719821765186976688139704527441574377018198853536364858312598890179909548663023507964228526180400792177052399984257191472867478106416057851853241468319729352784920408221674596326934743286014038178906102206609936994545074180394331576726589402107722904733489461829529444672112050732094613420714152565411589270020953669552213952698582509774284970840436117550490187573350571646027095180058364713595064719487222001582172743707293985370238054202264303772737461457434203868478992379685065676754439286795647153604641296508877354896988820781338014193964995766146608408492798186187572228163641069013947675358078143712880596309640238747757496771083243502653880202198268055869232671006886975528990261281042060190752983690967669665351689228145726478682420726057782288000086750190498780470722531346270825481991416211326096357313282458601254625483148562914579130636113859508940537916981390482814198134500019104884005034353012117432774950879903192167915650737250498534734131638684035370095343281123359786415927771747416206624706422650973760554613101276605649891609746514948131366053015515572681976450428558876496474154269620238796917566176700529294257276951448924307879482577923626735285952470073362559445667237635376029876546204814674968107580344375903610661698773425749572828132340646081373718767555459797476977114252289303091198388072898118548107630129974862064963265144102325581758758461052018898891975005530979848635670243565340273334186567589284225872368044607628969111126799339930019668165133258106159043566774608188643383503399038008450562345610071860924534709612948516774268689807240821267800819295598653507811587343115389331813540528452011751415224278043054697715383371071647386076270412795570923730412471401056154617100054046886352181197166922315388501045313148150078686540058605081674141155520810660926810354583697472321348822558142299764322523975983510901818153041576080722021290387179578835969918938503437627058973118635054738505783713145427164110989102950346983094913374947963455635816026438125493412021856167083587560706692130598126125999186990079267047828607353097340036958352482880996560860950330716336459390862004189411321890460918723686236632098545588203508072930905429424197901964279094657154900091772096250012350232504319547973594300365359641522076141997065544266510055176372423596440285102628758995736745885464198845673622290457352914601887924255307194701022145499970638211887365353039856841378933970097154065807076286915894203421221619748587035013199449581774303881806566433405415016165757913778768158786822183403086271686715999090613099715077244655260218348753946260527322599110821905948168630628214538502016453366383200565404021198855903687612030805049114133629432785928966731888781997085749147003273144079568741193571768603101037460683488431908945860847551898166939769952088879516443191453548174813326309880365819834265878044182858515014651469623518317466054437768219174597296300620991045870767447739123398630241063303663124402859606083316203654719321941643113970321321143232799342400285848703004841577499415855212230210288357211264017391995819913180361102785437263150460884352112241204273157480735350666649446726169416416130603678841430346383693376986554268357342988360507782185964692735140789222955571994911944367793177898665201504638824864334302025214760501335901631338363268490030527710772898594150545453326865199913240144252990652930498638422002961320414942681559508733414093581332064427990021198035026687496886985882994447978276369058820563487044752383052112256078954456174207767561769947774806797134042814068470973417548921778684693970218561439248850970228569532133013348181113341591352890316162917962811139169236951329120250248359336641900076594285016447460400497193304607319905949601542308018857199547806554659632937330421970384317329924212784921587873289948301070337845429749600993939492229355271721776939212028948845108932463406121068076731885053165769174830551340266384085138611466838332978384759165006280371582889615444891276875381192771038367165926117447467168837981998481469036984279986670403404260286999485784025049628846563820147284950986353513527217426736487158308262033271463124826538872671912248667450951074806533978635228273741684410846813954902350211158125153175018642658267929384809171979435574831023099390174117435168772498460870018957412738053119354063181209956130897633962390202284042633354113232622549744584753132976590224505922774408632420462623526919721093477408729117619920602761398516794236253064295592104260454272328507894453255229727428173784208111096163688711758413622735391690174746134969957878974949628224322499789034442430967318172611844317582475306883090494488774766373766178085230670555217385453465570371394504901649342145137105029704014002332698955622223121016902264985553877224300939114544326933169205031392369721643170785817744594660406849653069326369215231435722812434049200795312196452854855338614922127123675482238137715840120782909870611245123320740961048085945227914472401017449209602177961386737383134697688689990868895062093643205598526618738307949654644497614594818585086396283429573233659568974609969718279928984030799338175613842393736532619785761262966819883281870333797608281223679667762636206156862206917056116342751296223848359610094414150748057434734175643452364557452259490624662108225668594140116903038188173528798052805052378816878305790186621752913603060526248055033457371630387727229325795929822718917240761123008505566946922930474568180388824934933629349745697067057790571526103210013806007693253205076036423181948824906192018675431912077879130713572345231345178513403074519778181052943334447693719437556537746392131830434896265489487278718384074788918624886158048160973768812412309797227609625678806932153009277154183419496758324594865596950737895126115575997410352358371109049117584841833650942724159293982648879356366912483244161491975133909966480703234081888283995901409737888428279594348520661152051066242811067191190266823591616243578326094840340966763477649921017321299388591345719027898212107395053654754302470729883034089274099805278635552824246460352055875210530118331484807416568577956097394793296663643934026594516929242205387327130862895509136574335397581366484586470806179308467048946582897734530493050556127850667736542698711484660700654903332949434935341883708073042658368286425448352823184959450125463614904792165422541596985814004425020744989856728408812160385989959336020068645166067542837571425195756251232902349211124308797221987968608700255958725211018383332815881680632367615950732625593710630611207880983989151333014285253071739933677408228750596601481445603951069038476326934498298173827037858844112018253760659856253312114386527138542196073392384057108416063265623501279351962716860274741972861225188512853110985593092500158957076156225621008031962157019760516038402888415773021219467654175985989373603260897492288878773163688766594412463449166251521286640586722025405787061872153067147278539636200878410853092245215765884897500737257448279789467102880328357648478733509474716745858657983919789550537250146641116780769420692304891666939728661884308219887194759223100158108266096015403060775208438844000682752026753247044649098518711411037446444215438224887050652664350309686539415214767259316224063172977866434627175359662448461187871736854535789785569775134367462744649344742430870196717009847081438332689800319367789709882937332570272763541626817847421161696086544380086819821012432478995930999438520959900082546831861097034407727408923955671792566529017273471908787705286864297969417775592148874995987886070195473957286039439364248417237639898728055539784484672366694464811863756950472098013876383806773207383854268965632038986820500118541879015614218402590450663354016450117213803522774344683142897524847469374350759521482978620183214356922288561387386470042773458727816621247562809731987051379534952086768165716226159859585688210575103178298126169563078051375763811784325821342696028214493887544885942495099299607555476321927086678041074604038641520293458102234516329166621512633581052039084349020984086141468305088530281415822136639416373768529316564890464195390972081959420766169738045867565670230185308200618963368116877309855899222987153927530268002921414504083224853121923545736733443549059505931185804092974616834129524540476628300323180339516814961865003734568336716863058751400260778813139144520315833855250206936496759048190529286195292840281342655205000582035075130360050007304113057231953629574537646129780385530654897719863489031588917440186099709241323349027121665166155169568385192539349175518779969993854686579832895653858412125712503308909807563149290884929352061709585328914156199648260924015799734561327833302440595465745543414823431059098397180277381324454594031037693611838358466569150453884801164268333536206503882739117431313395589688067573978899357168335656594192418958850078917512402276646184472550770273175843653256465368101556777039493283932721528370307465040501679413496622402550886544552679443254985899544985256505858668430824157687501764160477190110738697789635362441595040760483314718873121324915085490649853115823444093816520694261038148940828167555613425809938346821865663047555510769414843664065996122721773254670290624594794534500680990976849659783340141806587065885397005023472947204756919655640305807959320843512106894890716729829575280401648218231784393343682999541675666199342217791216407745855103324483195231656136689565010456046367528607961945174227192586162747007639550290494406990573113746066569263496886736478823155422395709852584553554265688162072179472800526535408594639916453514676312376548774610576742300695712114609452546553576994939310526020844304810632015495264786333390474990738436055442996924033444553890902755537314965243304127148208845888942246265864430190078611084030929254231285481586350799718015876777284146288131824833609655982234473516353113713268292593618933291780197884748942958312740324696319836821836940632193220763959519393507350874678889659820802374169458638177677271702328118022981163108569644795989539654662901182002031228427272529888091181804890421979021993631281487636893071750591279903715607623143609157922034605233021885664577735426065627070156916838612135814575841024234660414922552002991920999863972224829672532389485690858805924513750259992950103086091285594647123831776912497743628522903485456863160738164074849824285865394100396475167686971662057016874016819259381898780110168431796573096956013737525873683043240440720399227141455174416273820229299393564610296606675867457835319375439478232647167444057653028088106660564248406981592064874058740230832433906318348467268854067760635220784861466894854261016321939928022301379954769309683115855754461261790831339744157221240758375902569747600043536638292817672589452012113044616902922644982724381978153958861688415311994018968794495790625222853040137756821173176909646790201295141126329354066633615874182783220164097622573350870834352378176099398194976003610369797950802229023711279134857951939086991846130007872102387238208104254652667097077903547462545565770173093347583959927460244953126139955734437951414582401404884698173133656872668319437465869106771391817636601610522828084867397393316945131807356959709015243240513652874041053880618359587735778906332576880019265178446384584245639722521309192600710760785150475850775648342507492501834415386394168182150505196872225544866574419424852582134187844640069495533185902236260394624071573984507295839855215147672818476239042773323300767788790359621088075661215245670575746927482567772761717423587698438192998002953745007705739329166620018669885425992416497634628172560820903546967644767951584840264034741872300995378842641895231976004187133761484301366891047433625899675616295142857928633054603870654751355480457973548820114532843869426583850348408011656073158977709263487063898173675788233034874933878310691126708450919990138869244746125249731854965411996747887538178913229785933031158787577653579383403852031785878633357672619774552014751897812039941477278441415454800044217111560317699237323399930572659585178667960894770878808255600112126201010771999645600274326571852044293418220601024885165802891975631753445141007806887419284298100310242986235383967105499215560740471670799177728849951174316088979069628397484705271797774619208460676173298547260485432704613378748991352686350885068546261833214904218479952146617082325040112129351467619272245466659064842139459043985997444323594503307188548136353919726825685091134838713160713871907260706681982181505480379221591064260452520871405070575087319334576890974969778473893450337107086723570562747366169707601873374297367583667607791078428396255644968783914887067940165715668029824155843937484315104223132910232431754586866257639519801670435615743610296045972875763542208630665792680035190086466172279047253041511840928249304195685519433011213309546137328133716987553749898405182799048877017096099575754542103447778378167270882209456647586719316307087317182315465678514966168422545397019238146961001095322438290641933605454130042601014516925200683000634284740415264147105070684691000227652925340595908598383487399729036980162816455718933776147789935229303210704395235659706379306492478041708669224794542496809449845077825221246073981867938392191388734081254154992314911485467030500788924153592202996148889189569752036535368210318308877197358113235851249667548373886704372641961206112451232735364047771821339516342299945378144142215345202164662488300416097168615331714851217146933008585460368484938030739168746559472253606149531940120657592377203634444229138089011329398369667071881359007808426422944052964737895037643959774343175408607519694083846904718188427059076110665863898388185866183574252200336764355324680281443376334318304013270924741228580700408856454721104439984236641478325505552458445552801336029885266751576848173070692987590285433071023117820870581481062175680170759938542855810717256014277551305962835877427476483084981010361408877532700847918084636813115973595173146945881213954273852869320079060425859760854541694037885374537277562687694557717730808858991328243172652520594283392322909220560889661102617679821621431473040371233535331762699049942203123404605280995785687764937838112480103922471928347014021603989248919032450173509013334174738635428784770614307286092665897273766412781831264210963260812561686396013845058296718101426811557071466485110810570267195676751034345867349863833147375264173236711503072496285209481705719469802014972953629331949536941554158490960957437833709651330662745024477767757537641212135156834224769973446766308394555879383129428859277685714549225734656427311354009521648266537732771500623353014089840507336169250487501049957190119850914599224871647333403159948902225418863428775410113337011277937664293345465905225514893666728235925138489488671744107367544442449469694161194958936182618521836217185157998419865673865511230259756566263398089405863625012852419146109786532891098921580424766320134421616051834511622142789241120648606385760639558766312531291461371851689755755785578105516636126421466758071751510020167625616826844744705602557085382176398462871461437297045957716210945143416031675777658501176390269650723686810011241008936317640635981490862704699711465529257184726474897461773241744123134268814481437227838087467225297857932100675662935400020011748163233555532158053412018652567255358768430917058235923809937942005266037050075910640465821778514158925142144396184720920033835574486162905833846178351887554763691693324551364696154753450595638677704902410353592166041263007209481319375674016805173234905355690828719025133743505523084976430170312376018061225521547155884099763900220068015230912794865756690591368486824200005251031551986396385602823528871828327301303118817613212589061169415087675119177412088607576555402464556510576053686311785357356557602877785806203234175101147274299136069809290099164127937847411704031038790383460404380775315243220210594168444114171459936570500825810312884776724343386077636806037159798191139881844752972022908256778464773089603811811043087674063618132034131281346194235977453197647378444001662039605232640682291966040220672628381164684342955284474757938472121961790187364844509640702223494934946004207353763514889862259689133657736427148975925914773365369795699590210252608231741661068371215003784138791499388335533696577967233479443855109128274346087999693442142603569551963781110410801046263742300438655693365636991849567384786448652610858696436420637093360952100847758270406421689547344092491837601446238251156098225963669584867124746558169910093356605562606157628234818948667044379988681182370318265213400166433673470511775505238618350537179927039388436981381049933243993741508922647248036368327332426184021040319249737604872354187449954191771041235195590892665250546965528840458916203953059760110080772544410746821393363614012311798417977636598779699685492300860879073990931134497827936804334295824856815278060626138026388690609887062564398862274319146665408607801909430579038317253745854695171004345430423889736855718781014145684965329817897308534339312562657305329820915570363817765042250264586528630742978379882747695664117604143839220314605956135208068807712721196757688670117832802651554242155562092747258653995859693379263470561786521324756134576449996106507723078360882069690471655932247209531594430000398892092448239135522171981210675354827592987135492265860634042741245539729611276759670505634221862258003997592435077674054713625973264576552214923209478174684342291094495862517102315267070991866902279844030676959899865812731893517589041632421092056164273333693557897463342433959881859897776723251014292788556996231342337322401410056677384140343859928106807315371196480992519847087140840570529727007698119108136290233843650184856412991339750133656704099147874190100508900273794226886633149105671645503599810235204745664671568771273810626095087522475852315271466226052964125274348324286985219470071089671277499726788266481994099657999505316415692994366066049696695177158858332010333292744883009528402319084933691656277244574627152343014484203101485554171446728221634943673464558911735747813917986209672669355524657574844299197942416051428172469660244950559438552293162986682290158518519679074849021638483304328056737417729916555955732080087768860705286959268197366126124252953495412830429965978487160735736572062903730636271755679241902110688437191915097075647177504283664839499130059507445811281471686245921399507814529848027857540964806801912908901634157452142367719384365335197188815425506289679962570175977083076720398407864115464576881035720116979453269457097820129398454812234547008957233771801634786048240939973102395897591893111714648311927092032532300297828126172025813995039067737708132392779825628038252384948619160058697940601893082697356037897204310649682156344129688550954587010984360246895820145242880665645900972860618585667670865050489037841405112738269089601654045615783130918897963038816004417459243943957766263995587598335522039074332976742676839732244898527961652477311384006231011684907511074145630275220374933643052654563040174597271411046591287139124999709480272792763477995863164362846063567121840526685461808241044297295774511291191804652091245038252279398432756108871409677641524280640587157329800570964598649134962649040663771295775715098154124012928589350063345792948690003589411858657140012454879309032865112749520523581774197378565973998440728098504242714372684665959626444635190953669258609189796400694326989556588478151209059881639718631360175547625000380508879576261375293701188344969325327231421095511197980353974176695506813605055136534036526397132811482363297279278195832129852480193873042706808078240006145731991070881109543054161545372176986852422915707175427609211030808846133496646973487041091388386129083004788069415011740531687895328905215520364612518457519121084980745395794287902488877345934788782244722870970933652126812704387967949529065662331766942259892983341067701857076299778957571964725834058993515257053853046479311374723073641820693127462746659929128932558299127936834432895637679343664080917185071339400914005297048421500168439382677655714716547020462403748390213130555134855689488571858213222638408365631221974511191378676619195200635704222371825125856152504352118277047938922847593523807415381392295944834640248307551631292026807894138187301066690433744851939033440467146661141803277672580069545496443238941785466259142412434800499143507371158284459065305085094189448581722995087677255137399964698571994944378546438608389209201907286736801244944607667417348053414565758193592791961689227660058096692236516894220703837537663954875697679800640647247549645717024059539377873079124522829286159390597464287053185560907139738990650485952086455372638207212080801878954373760907308152691687920433052177691917026655218259729962162282357665836770611075941847765473046963398141749268414707319437150012881524629078322208440356274277838020481175375806758706981685163945685895822138395164289656355821486140368994599125038589300686497560200132519703309711600869188475266268573916573323447786505601353389360879822370422439108121560282733259226409306441174388564308539941049352115811059353870210994596140958880379698357922420134232403117204159027425474678254084981827505461054102031007086454881447458162143219023696937503735605488124000993731439678144321449476109269416385941105248271074140300405233631735347867556328088566887059944327847137696370259878796136379873921587650392248081917215524597852820605352114462910192619517163026450319764847810672378659831643921786153608076847160510260539936582675258850358768635184897556502002059649316934867991195534907523785106741265766854252122309633985760993753920524640555760744110489920927980740640264411620396709106304407087377458937612427894706503830641617449446174013264232679297916618888297767049221170071614671706151888715966849924671419388942004571092036839388048375058512096207735227857068338746441644792144100109243176612280977013703074804943208683179776211791086112588301688572030020683432255024314541793157277047073901414025266042325051393865145954116499086156544262589253107803571704325338476157128382205029413092493184151104746871456394272287815578069423931736098311277284205370100279505072858565346894659524781769470583923563547575052245125776774664848140411651456297040061828987523413892756219829293556286463660791050517068783524880391003402018268260911972611496702440176535317563159070285114559508169888593814351852512545883668121500482826566573245437894733695348259445313596830544178048858754565781000342985433978056681230263752397250429602308143491789522630199007708442091568065940195466995828341800430168267146605105245631681027904404692787684992929399683358008939453494010090084320803338760526890518498247450912567093936465072300706881075059556260081532215088000107054864533585452953564547944659553485693580730592853147648398773428477977836490199736415583080467259074199236804299205889607879018973216524479913251459050615720530875397989392719828527501595693676997838072158723649830182925256023874550560297328232571657982214223179772598784056919939996656794376756256739743947184737151111750055975748185543842134703376119686858176677955328405413207942095333344657084055323405495717838036419340782409437985612382122131278678816538019525313327467770068172854310038266144934952133920305938984830898517344259805590086845651484782393875355828192933627731315019119478088568826172874291779063781397291507925952393409805157726763946822909988124627198289127487256790362955390575580626001148679436324369424234940052536882708931956837508830762637024143933963096302250660132380027492928366996514447314336686522687132982854202941751873543017187029901164683447059474399658667264882600039148700225245039330288500469148907241440847541208589698646761127051598588679648037268513348301367373665077922298464889564983151589897515208031784495442692558998795160983384950271168012882701799510726855185151690831511696001362999381462673495958908470970256718727819124027993682598588730603006248788587348779235163810381360683017256663842246832783871275661074595864400506615119171608983716786716157272876451598618560865994355606118968645929799522445081459028272935819955310325946575941684275590591795419858152671601480853605195395780667608344767900920750104749215615322542739801977982453081534737366702055385495550805222216819411322141008136250978023490100175887958326145799663490718526758309058543010035808576517292431999281524931518490221989657845161868225037956352326875060899772769222317851939389809447305816067371255068182621890244384680851139671482759065921047393171712937358246896566930570535421041092162349406202275229128321062778504820938707454375112818649360363512442928458808505682730575733451566960833694496572337133605594336405726666922997122591817419182570328623251351152830375365163409272045478544480364751666742282664139031090700952816593326973997025468981681139907229878515711388148300583554590483541000445338427928929015272999511837338768705642468917618620570908711015942669413592088543349783808696454466388325653551058386687819003265143490794295497890085627977903358954357032843200087820667391624445685149709359674722633336051174034763644698898827935447563137482018278933831596946816292359926773951237571049960717682082910751475347940969576360779304367255452587990582340918209755418965401792649170378361219879274574208116129796688680385212801041530339875364591681713917966866590177759269951585175236558907699992696655687391471060194707973693803527695698079183911244152992498020157576562985074568065383074350066387910081011979757839428390298839238911667356530672582992973789857541933078028123555643021309691101035789303367758089939023091840441860685608430747667604323477760612271614187935616786851823252147473438311441447814107468383681290839341682862617824576781720055696821547822398132850410100626118776718281531280411360391334600353164198649586133616703580112568527347656962097518326710641979553801829053253488803033220616260058222804185444021403793978379288121262133197965312340660027763108963121328972672572265231527343124155645174574570458681991097688589220034286237260442626364035611542066065161474941255278671000988677964714242248224640024520695777499131029328226534520165394013151370127901416328243870330256066222467737084619527778270553993146214314908691576245473782390652852515280167512299151667652117492505593342868593870168539326578161621163475001006612122683554023366637002351743487362691339992922416304461851255721898997078516190661390467400721881568647313250272693489922073974402626694751545215892874508673280725865893146161996028189603383963732227580405548985266293150465571972956391338046957129962202276184593422343199244445928027230589247280712555944533452456554192310304626786250181184084671633751759037380454329252676658488046098726437109694173574217631912524231115327503971548065809884715622752938188134120138657038310578929779073034478929815041567122119252888384900693328386677621430136994049921327616276950110163944010852463537716380324588431241928066051319288998522445660426940546073295104750556340183755379235899257929936570663594378254379528948080290260695511040695655634729648093024901209952376519728292299709069612317069932907302601167064905271858469039865397517643970606403134141497035456601764264068638608361141517211269430240505092815939125705079150128348979536647986612014575139454237183819884624225892114646223620358658850721429397782963590283342822917212524187951202170198721209630849612105858988693496251013671650935483065901180888557133756703643615152231855898680414598966169988306004744195574123704859427163673284345848514662643266685613262048911951012778432380604576424447885801492277366921733925787636933111653162682030875933933631747741752933854873854343289767844673965368438370845919278610189797113395916826988620448288018281827655229129786182862895893162893472088803617985068453407843603616157744480663714494617672750006494703161287647561948133328467818168948334787067907045299764280683093212346465568518507525938399862790482005277566553672612050675324796499021797963616034403447899689233877927757125544580224343492093431452439630825019238385443726922276976982512057825148679665884080305969508257394613440631206810045981735144557999324087521602270208448320030970681283102836590513602865277033325012643063976107180549270423372415512202016470708194023224781649538112560119794849695344382830391547400802025638456527334918923215809322163010174273594610397279706672596409089375840011003736082051280544211136543806811936963887772663321311980677950819854686869852131915990119809793427763915950265613184140048967342324908839367496889512152514226624770087180586866157605942141636414061975046160376141460360422194217342523477047754619153656345238620447818715901877400510967918322719880652205252849571988163582874609805354726272362738357451266540987028204881293836403976765833507709948953765050037129295587825561990224748578467515873106239407990940895494534497280226428676503995834102471761804906339117245835060331946136965714085473134774592987761209002766676124479165968354855649182823679932986837274348762585743264972512364198063552800114708483835912803671011609455674484736564730815080449665625113134838393967307768783953463547567350093303632292613925792894586200012849525127973122160930669616090309992111973258406687269919275915697803399915153464136395121023849897146528789316265467874055507308199331044978963525093685534923152965360036476074160798184213862029535655485367732807918616898326118768456658810342159814722591897054977363460674256922235460831599603678365441828735416987444213625482872364602847456890645663797510819298697877788688893793271668542825418745055865673694746642385610288293625768587374944423484612297346468813417156676158168407256251723377885603513176941931347521111135512379579911525513920926297488434100826378460088385221921321617756743547246761885247473306901128252507190020391334460882016952038906967956372205555983826860471424919969989455166359644379493014377960170487277686420519475815648551703496053761847666020358967061373038899291918814964993036446012881919242475773901120677514698052943543932522945345089903770188344089233855571241668062733504306028558005445431224568616437971441757868772178434139151489281619246387921153993183932009963473585913784707807297832353436646709303989452060268493281311318400536012565951135704771390433360372154931020895452616833066383984845992932448123396662257600690069791850493499398208789528151453210269230876759845179407043623144370753849700045921807937980315941001126684757011379492048391032114987171275991982859803046822432643336014601905543758486869616916284859283552726591419990593504080713371805976070849050839737149372748502880730787567198795277994056176546186401231619216751275207923450342513187675135576426106380482131519442392587915631504542209746600383098897389192303290065965885950771736476761438801014716107761358681377697910653618351594168035954948697390228608624646336357561875217047157467847702160089633372765391192427923888331387644233835934978508988811967979497476223065709383399919424990600959762086514775720968263959424005869794669627104441654262209583301657619371838258887284536385392327899991158261429134339917577975708202172128436856162968533832904400774842093029315019139623757127519803637821010928546327687313492625039645972908442209782002519091336413227571191675060976888223454019328735502517323735613001885072770845607616010839659054556155623848910773931200334047640260220392626991676148148390135234739181013109138279771183417896017959649729298621299741630497138607152270215693525677694893327589631869200865786920608637514861264663276067607333077067934584811052007878390819984348895434719431119400202850869220115457163442782951069647450076119005670397896558978005857159386271178021228780840165217618897554736797690425186604507038311959521797977029069499541014111173075074728309181570019288305339238394514161696577444439747417155127072127012003099659911586110135722447958299524169140447265938011801785736404790820460628939654953681619795855488359907614845398202422080528017545495018905339075546937166879558532376108590803708212849071270431532734617738158092724005244093767611225378452727807125131596274648144792321518972962970732996485936107572573033952635610727333066820786434079157564973355214480793652499958072292041731407515277589380702917394681419427865083465841390304442947871587624248886189765756535773284322882095312206463309335234821280776597989274923085076624986863131426227799890649635216328229063430068574671072169154585022092382503253242735163987592987897268283379510514064850107852490507124035038874434537615170062766376341435118946717304512249186292423628149862127603081939908343058932775411940499236602500473636618276191228900170507636422736715757647474776265747798972067107457108180452999236864713589111001815804436859275237509408700773517910459835209972523135253282561259110305154583657302645582262456502952162858421607056525893161014190398495669659758534475045450470829167504661888102524142625719022330314278885997722932027945068634992616081287515566903133085796881683105016244274064914961992138732972562918194149969253258997069750191589937915821316630597499289837384642029224008540775703393806715200043124837844271545052726962754455146166404579005075222127461294898815416915393684455637940567365565700299155545417089753894143397648847611370257486782239773457705119335621517432543588570478782480517542740746403049859105449019963538897991443227484806589415652657032179755497386553540560003893689614272435680689765329850960228683838474147070283921248163891917488243537946637976553721783593916568740608352795989987212606319078114769884688701300189629063051276330673889919317524675419035039057591634788907801882383522500361769478543254472541280802279094340087733375021242548661806845134852470965562718721906348155013764021085561276788843090340187040806646630014869790704691818183677700604908683144880719752200167986799305734697307581758433180676957128018593698426676759142156689610283060155367272258903782211288714501510183908055039991389051270912008240273973530785779461302463427233191155038307059558439518140740594853209026944702756107308345323218084603614010520563534450665548007025606458148011104006824386759341489977845977443505518774112672770976910424938000716605008345586114051758830669004301677633987757625938765671887636629900587808220095344749009020527251894409495941972873133213340856648167434410279093294313056904930029056158581263614649711287971582394700342589653477222494299567035624106655901365385531778636714545474354430357856341873678663795078622499083644484137062768481085578056849529035486848704343466988091073124545121476398597961819271267302349112281590917387441956507125572470288378185211383281774308647541777146588384449128831690545265365606782455947589999319480388724701330157142047458826773096000282929281403284103849263675684882507797480416984260293376658333118067041069005214436271002423912803592743085959026949648269856349454253748879393899560447403916454831542195555954417832244285634489160461442575328440548427465465106858852165431741120781147121364760598845561609498100961590873980075574115706069979316676248161074776855843687402841261253271643968725536228708647230709150154170393860674960754003149380385757029228048980279401889259495897290685957198310550102854342610373585529189035232790964707606817774833127977400565928005331016787783363566954764164306066339756959878663166795641272962421270076413419270843516765408357722426523142214550604969682702110551903878709983762960248621359933565967609390284478675302606995699636507345418435856584453877561205516529612670579316397369780431513343317814855839715116480189507455640320073322876438507536024690162969195467296791432582694448624681936755047098208518019086999442767866770726906842224460451635505052111057138924361120245002536444786937234158646499853332905418295310324304482421885763045203455868778028368998256542773538418630040215207479920713316297371781060201878218421405190687802526685560294750265035417900425869974917665076205846515132022358958119060109367828396995422674410408514886482041585676441397682525283101284868698508666573594171841347015981917040007338217666912944788466076047451599158325335825451800421696403396814017262893018481569685582093069210761517972427996812991275707246566242970675630953060566734051918290282432283761324372475668354031347420649644917738461874534680836335505370071274498050118019576798945185630347828350708750251247421860664337656710938085914953712193531024325740296944008238287531851827267762628914755784253411367870734003728921826797493586639809025126779870516224995155681171509315965015344530582118036536102196564856039695313637421811244122167639014094794762678371993816204161289195495198355856479000509898355805493469245904106822857576781592634655151945316955411705680858658154294923359550843708532928008672853555794296452349204220842522740935299485516148025614021986433209309658330651366527873743142614449357241858056747218193894755290676917251896230299618445102636192282444100944468353630219232975382849172292242886959562806869580928593595296992300263263102399185440370140545046772845371075319773139880609679257483880717235235167261001700554939495534275530705735272958085644375580042706024095284848504102216919131703842466901342098560716811303796551830829593643500699082151269468445396600983838051539387038459557381956665443467694749966719755741450196006503010390288085103650259635805542666124436813879361360097532814120199950698887634813541466503006249862086078887038450459002569186297849598563512326121957382420966953243618715912572614412520565844524870491003800220515623617531482739535958481206264364868162700272192963256221739549539445145489129808805964553854670863614176467444398089586416297061513258207281756353182166181984573517517531262935308123683545924636848887237194935545466195279063608638773486614122790825030718977422721348030794933584198609322790210230580143130318680049402252004651226832158935276395087412193430590191343229286166786357032461325949998756185146439700775320029103422327627752495217788589147478788115947028642418455418525429942231776653118761381488482381375757948955021644004138257191663077902337295184487054661293336798234395763273983731439148988000260286467778245368936793591457901477816343989644819110650986765813433595280870601337658260811830604346809062768827153985271135648603867074947655930071644479083300707076210684131011100400709024368365079269447932660800236120244961245601453537504782639685267713819417119452917453619864481568234212845815764826866148346681645868562502255789526343971209532010040444805403364355857867711012250987540374885669069923899790333169713936370973796527405110616817660294901941323129530244261176325023114049545331833827832254045188840354308964256838813816615849761749759993505959043454345399231580770360102511131961891904816978454196111219257504598971821055783066120511582286952263588416074618780009590527867940200425050453062793096807505585797408680983991420126532150471547182991193896231647564475840801477506175215753947257022874270059522347211472520301125222123984509390601151066195908056989134978476319158140881627078462235581190150597402710345287237503004143975312080890840971781601785406838026036074465943178022950613200526593723177762733843912200660677662684227675172237302636649093250642753446579563941163758192899716151894407033104927906528069685642269704522358106776133920811283477704173007114966200727655774405692229957916872525900194921747469701164320546361261135131144041862436501149555624550397870451226824035383004540875070844703836100477722526983530511833135613004485752475513521735380986554496014293476002818019352958182119434773470880179955878842696356746678289005013920139231989639523520986716396046645271092107851829141464740606616318749603036461389668956023233151141567155861923760844280035523458259201258298049477023430696786476659118667330009937123099976980067237832662083791525928787137182228094865973364355005677280624572552913857579264942340003719155075273340768846794572111239459618941495896665298578054087958685545677238922243489545128202612022948230848473325172760540346912252865589743922511832100179344410921469315290207118892920060443242525431155855343544105758445271263185805388435854341757912197961420395722469495316511659419239552241931650863814082157128859098667790852641570919009824083894644249663950550029897367525260696096518566875372551719976998880471197069754801091223931047103508829788246077061690707885292365327600765211023959790309669166808063694914320034057623780372450506024425663703556577332347858385255601180878905030693765268765460827762534696212349331756658687240615296850178619105028873201795218311757365142235928150720173122883310258324734058501656244708223220072844097191783100516810087383442787414193492310326735700688416305401638829578622960416682997764990716059745386249365271920485227242118277323199586780206872659498026863264892834283719294937157995293037012161169839040160106843613995805027004143674301454800929854893469717369278705244128387588609632479911945428031452099092181204944903235449017838646164553927740696999095751419395960555167438115849043011867819374480690567412216782866446817326733813866119372366387439453757458551118305502602380810215576638550906498230424099722940131422124722597494115518383434031748137997340322504723315125795345519215462550725561688045893193567289846707546022077436471751229303003084037874387291137398816159332831947028399848727499162002817925637628587952783749760785678211188732995378861146974642854446233462293465257669027420564319531418298979183961440884609011871438038823935400367425090408421457015304635733905762526508688297295080637394842485619120371173448065341981132922142634673555471575297052819612717509294022512510577200603979944549784393236269555748023885209624796976279160934387021865250906068158834370301809297106863835854586082976247471759678517883351798056007447313584829408011693937722166599720038236550949128435868052442177122034701819843889971274760357731004325057220471636888330983229723941897765855573321149301514233665138157943107399629677613044091381500973079206190544809205648554566913516303456197072424037015435881517649383195589031788557578640090165529218672907826820543515089986466390201604984382344562495715468387673802643286020064328705271334501603541486211051064339566383570247733587577920312643947408075731587511761646597363115620782679885451946701472513765738133978061259552566389380617138665030975791082096176833783254970386942783320211004696273688262628002628066044702083285492478385292880009467812520825471838780689812834200780581065810236285068068485117780879023308617133163525737716740224739459765689579329286930852323104463403279872372758135575069107025705184325690276099045853505474225623734222419192078339623091002681842811336175072618923689025170029061023245789024333215462587516327154869295018989737366487844218593068371679553718717383723738825021061250149385839523239173563418882718548098052747084088843721049918249020986798008328524325200079173583359967004236431264323764086243051576158306564396964748241644540056864274972807773161990078418117629711545559448964542606736408518911908305161710542353909966935565133401616462814323266978674360642663257567890883768192222532993151336651018489879804586344840537362865492405966214276999596991521571600144774607852644564922168224133956734930452617984848073797985482125342685251346946418198704369421639962928650036587501226502827672875983086097830942447840947553662305350089417078478696409189919082800020515517482683681755019937663105513237700889392390793881683407856918636367492680669243777124702597232967873518177891779925611904586817321762070423733378047207071218625487878955772595819106267309453413848479879820471675873755773922205362206667078954717417143472361380407418995485397391293511521230151277937776929261655721757588806839505475890282991887145894148238799511610484446927910753171540951970014617212113824192100757734445102334259307230400817136015216900615670526838137670964752645047245086830176351465403545655083491947970446923305768550645985383863423436870200758991542559937158530910421224176611555248199452494735584456243824646775996765521034636200745606035037754420091678335666980957487489615840728715604467431033452790061496615423071341205205985137176047760391805419683212129706158583106981833972427285033234043543862925027283121187348975615797072020387178475201319883920126134814192347043840611603056538079726215772775934269268403712639540100678524490128278162485367290583958714900937011199387294327683641885779507271363088739023460092142772122333886952403548729818187502685638551202710140104306859378974523151908589295082273105688220911574905563479310941130958156145031698655777314535495839615981001108531783842947455172534083798156240281296477796181730520766317109095602000676281524853840157596116120428987727702647281307678937459997159409813343208920201439315918781021949893070619963258953834027500340416677775664878659117745471908110605954035293895580407783788976086528658458568986631141124369721110686761870650106855113998522637195336555390577961174146088146210280251303686598645949469660109333228137052292740915233080331510750275695346288035588688781967165468529792661464296129813743881300698829746023443933329168854890836664704561669605955380142002542928205840703424863340858307531768774476902137823882226261896935299208355461987204969843115635303138431219126070524689910892008917289539362426357098579362657517494908576735642739516675691773349109595540217198235260740280283205443221376617755927758093890392472031527415227595120643666887314405674529083057241691221928264440508530631703325137496866310538087403827951018693655949833928588803845828355437337926834928726799514289095987312117317268679875520331725857836198767777635945719161023257604411920402368403924205893017367966083281446236360418851756379149702700529771595081144038540412007712403221273630450168405894950994861215785825349143493483794646433277076234381787766123413284530975870293769404702250857829505323299399461158777669462734881285295065181743532231231366924188361815630142543836368226184787194798356345788856342725373360864380493440303238119286496634197280151530119955846129466847305149485672824197559216769238357479592583267765538821161392881253931951707241971965434565051487865304433243715921102042507657375561262438202618866537936350579157205471689060385759374132705587919705458645631661056627564733986672828977685358756889305227526141506472904954600178716624978360605276767797929054455588699261649859372232498246967347767529419579086327921881130665185059059876815897792016234979580813433990569666178097129188464763857331354365142683588939028691988963214425115329330909247784194650403498891036653055788152179423392994077429935877662504205958184674083153069916372234802676040633853017202260556634746001582846133705497680047680459332805151322424739349852264011000217912146816229230037996514072529607075154251262310669603494472111000595760663613257588703959996083034743649272357161901869195874994163799639458623148837428419707586427704650194612871095227152970527987793873330196501880384367336767817964896458208160347652781621540020774609645158628038605934524641372176493485502945419392504020033379922352606689311475388918157101851488406445735186605389403646130778326168982865119380288082874244327073552337581012829757336519231378802884289799400479061623920440934094075369374450585611693978692122748923848072396341188982464412114613755044123747180942989442469440023710661867151116017904999476493075572249737148080010386863404222914375761781408909077501133449934837898492463420828539680663952109272846852801535894879154011198690936975922232660753541422063307120058385899992499944108643079449227508229933514222720069789247848764664299904289355311882877122346564171005668248919153715726512818617035867813234527288972511896602090498579177139781513467956544575726506020128489022612431718969071016898090890847023096072526622832017787704045599075231616121659931695827133942472080515302089581514940304666524468247591816357046290938235313622353553182748167250320943399806800877559316223697334946918343130952341348680271925894303478554532672968850545007335959858099013653723359552569274401159707070955908139591314126835410758323127597575117313477624355546256018121073888982351724669406364885290544472268302140855211289988813116637606672623177630898627476973067556182556941804479761381819230829917562371705924180430588920001780561936395594784564115392917903870246535296418809139615377508478191376697410658653015255157637079379297225674060122448537028868839378288547983857833187138644042188089048332623247418812777366038135049638852954659198197776836000024831043241999641723109588253738590994210926408517009086412536830239513828216411601963806920676494073477406516625746930332142613461481962499033068297986286524451973656337138304174061802979822578748705615619191197718733149210859927251452830344335563648600595417184646401888887153731534295372591537928303200338598246626846309461966007158432697492196990052761605681811160317983526645284718669380862199020504600773971731876442187825000433445923902950938288569039041691329399261002418725297860719909268866968507195570775108813809278058462233846949840731359230463163637086633091348874377004362420492240297740380166629655801101098621354287240454191416154693837677409808082290112890035761085820432384287651972035366888288875696817407234870954042533399446247308450758013289998474396981392049319540072473597848491234860246436335752390134168815296221623399336564101642227101757008731700866919753212366420240954918138407755213199653117474987262556165057255704627793254440272706436719479615473894800038315092948950298920654037055600916350694390705519266756026702981070334178591905656563140104235275447534123599572047874268060066842516748028548879614408037969191487942793749289568140238225761968183230034333327002888804022222417448776061575469226806010605963675096701819381597568649354469048653850771371712684821993448663433198977542996227096595870513608166257195345013643755466491777222472512921247760333141493851761446931881055557274679474575663112622221235017994186320042244442594089452525530783690959759790525065694068892365783088659895402630955168380279162881148234441633944090752483781056195293832633564700132992098528167038935288647756562376089290216436295100494346648087499039680523098290971492482471486039742887585212485352607540952163879730614633939024192155397719426237766946700325586955293391092726945877169578171492009662821085379425212792816042133288705797512210319217602007858647599291691865768012605639743973321476390440203604689328723715433431764393889022305829436328996363722086674524964042604689659197329400258754169539225959983994035543497368585019139700195102442597830333024541716626731297492434992580808588289785783303757228203602294470694865156996046704804818868409815650523763010682390194764908299924047548676459004387678205291695996326274985264048052156523211965680253192995237923006644452443849546772807826001078136599553777151453514915791616465822185505506464419264770514794736147941178473833973245082199686221918523079457928375486852097324652274792232818263388769835122333758179399886391242485241934236481682959341751687452549789485213205707056938005324330406119122530279770209978580158831534338493978488224272935536328091837465494369131866147030452541964546143043392580922379899916236499798206136720356082098746220007390554426707006368917582355909185646819962847617102444130419652138092532199974742179767338408988743911111489808253978408320389891616547358367654044273855239973428116604434032008584055187923757781243306040449411646381288693529968526417955803017612937419149851029975868245157940896856118808789273560886895909938537945538511505547293090069715111850512481691636759405189314345689655507916429049025156990967016413486107151843723647566573010880604247035210534327736844329691160220648072453380072037914942446434935485077585417090852217078342433012024596341590188833723780857615085627219718121698917786972392257021846869108969807664146530065290420938148722838526508010060431002615046728716033077948999249354410517924798971419686922263563274900827539755602393179421317692093460771443852222587845805913355886308508197542562386250378930740777270104708280399329991884493074371676404024973218261862226028565487444344827082426021427181417403651713498565927336948739319101451382291666921458345074191153131756938773412940058879372933947000003876111710507865403918047018684111661332138779798180121486335458887659304119375121693917858485451723836254938530964018120085910076755014005075351882057403580679791764672361495559113708070012852567473677300613173506495358626947192663736169893165423344423539547498898009817643859128268740342117943749965908333075633646922960904859244120027309581984744848950335163416701821305966285559121818007031600047087764555428273899720641185533784606880472544216693843414752063168445713975399559513588301403514322700438878975150137466587118012077929643116492254820217222765726498188145863701718344887873849133939132781554890635197843148189059382462303874810387212720853747776716060782274563940324387198886899372089745511023218673269195554087725585273365297470080153317196502409709300843084730045536337545339758031616132074726220884681484977541877016117297377743011249897640333938863560573700910798610391118433545527954628480958032099290068702791178949838093642794974071363282964838435564582632373809880667166739528559353332797272358449835077065560566470370980685266739671556376618361099026615987094890312951442915945693985214579684603787221378695927052224925966689038617133311280603442262214377662161985251546358874142844195779485490695683310880433682182282606924045460889899521554385868574981437728533809135380488557608092695741238681831534187949159850608884439198802237533913838936510425942970735572283159925137379345024030592680474651146884204351913600164168320516891359246917861091446753975292673803362623325634489671604017525207798414411502434806811857741781703423943003331483813136024498381651331466543966336514195737352330883214103865748949562169798320126890171572642533662992692286089192690024357563511822739346934189419225687658297510713574994292929087054709514532085963301049706102519184570100198752888004497903106705973571190612222781687673691670396797968751284305619305753832361720337842008514052814103687841470951967458290466734887673020527038677469141293058802020139900936736352998086636848643203243364763557764675724828717449425899923385758058515598693960349216932434076594115740546129206540944352158905805677053452154671267337124899652827063113389124853646238589552531039105187441641923122439568006854785301813025609533167180386672426576412433224418430052595498685534464329527763774924099031764984128225098251500636305725602330196054464086029738336155031146932978199587774041280104311447406353458019622471908956017103010788081468121781471787700581887803495985074302203427278204603550398293780218038621147943553055399527285571149323607734054505281693194492049458838250282755131104421919632147959225639480625987534107116166036961089888058645516495082234343445821321016350372744626054515439317360869767299154461806210670439499437174146764281762569747249505960072292369331662131048690430050282296859866751861529685792195050350420664160691285407654055383272636735891487532967746513943320942089846889098082945152585476523886774271588748682545063759173201569274483472817259192676386469326642917827079770679789561315904312548767976995179300068759491894073221988249097942516643042268330579586095558059938802220660850160679019947887510737076790339341061620895098463619412904219471599451736183208388283483532594765476082424438232281070629070667747225916635647848387108872165745764702500063806915557046792945168545869638989306408978065335390632733634171762098601483979306927400289325292983421261277790256094236150131059174727091035200566932513996344857742869606333726306467255601882772857281170878319239200645617562428036991000477725129216141746244536655285135531615225201708547094777008770753033429432066937196357256301616570056966857303846883762399599117637812159348816303670366192332271302818762427920369765401523434931201985734858637537132439097953161746850542109770322189995963366915510610712570257211536206040955193496856323743938866850346421406202190412056122231920528677698463531513696948768991432809620539728715714900448400141385836778610221958758588658410441363604505559370884057073715590638796644127574838288876199101150233872485013796532329544813860252159846417994040409485988254558904591926070877476954201241640958113097967877727967841484181336858518109603174938430131915162080968558130742426376314783863700032599882695425378048196273045252328807091480775168981909176539862240126052838795237117269867069500060706367845305772541707194609725963031536769483466651434068285733403481302836130396134452888736690677907926763246310611706796650777846608998484946067693341709606124880811914151784878630547356298737955806102224526846390793427467738130400606074438367255038568718351695541058914046392282372155202667489970112489975059320188590234766444220700135544625168340883685179728462830890728264665020988179636551989614816343825215470942161340992214915584320379993284899939207371113132617661377826647135501639985512930751622170100281077672922175375913561671409255540760658617220700772213094475116295761743087064640762326654424964902654685004932641218036709920074283181822358301495998532920904178022678622551731029336971454573702785738438425295516289738942591180698801416068090425386666939503218305368996911826594196958468871173701513264542028036284468455189077510985938595613815250709490614605228499686404219573951965620241340446047435203326240654885601166357355449984248704360690898916776824852262783136495429258520416689528769175294652595819823843419512558515562107764733170219398946263851780502165629011918425955333855903595985950198135618835883565571143083698135675071714692046386967595083849366146009098016988554291773993228620972047659783753379878151900083782763949465200091410999386962402580576360307013639121651889291476195990758046701170304758234968277047698525986093093369776054512482875562934923528864946564166780443401382823864922321145854409413368454413831032413066789310374265923574294603509469052981767017452193528581139258871326943725442463540957121271339319713744047173620982591442780036410681001506061950414009853184650897554095170214314030064141809414795758323865339555272999027182536890786974598542162476106152061298526966074480410103089649379009683268339703055233460297664383312012894389671205382523426175508115820044568443105140324407829672688999205193599341924553345039647450601337244788713204788116947422756832748343048920332323936201263275941092060685573248185773689807190894699795486451438311107104213611080579968729388825312092790217766352403007681691432778201655556165667085145039247614545412587169018632616395713114349887888962939479525751128619188576996583524291968719431786312363817412750148334885818442569764463155838531141822059989268221682011260599569842617764039631167574702095255388174095834087755560479620520595769361066772784003425746001666410725182722566652669226475625014727037324190852359070570802176583020941243504426178771260256263747663528488224677520345723636748935976082347715216411801010436291790038094052442575420430578321262107252383812582830397627001635276031517729345415774665465526702971404658709384749259296031076992367767743044184024546954105534845607833274030519200347389207040583173150998181940016774992274801470762852172011456424350486437634158056085026753117548805389722402264760884574166086474982065722538084046445531922219909587921455554354939297120124679103518970833152774563344905713409537617745386031108835534933859971186835891243494624746682603312209520231123672395147021796987707221872361332227905573677489898881646287819368588074716420866812146030878780236388816633594906670928684813011258568063928490908814200488561186986791537015720147737081611468702733255337724719990902235745670623518942033318190941779916767029383938884852869611115674589288149208741629131168040730596536286063985340286531043502247339190557756707459806982708406189640051718239273520069989628253665751655259697817979287831304652753559480354337579533684841333983625825263156871154682642802789707958727407816401104472529741566071660907946907438701607721836878497562323702022808124041137496368212974442461133129091314327924663993753325904494675216398792987806798821024279107538593974046285782750209228518678910605505835124703730937829635464562459999522531731150392354121339411379184717641637513679621584499345741515212280761840506396930221899188194360897648951502800604922443551484953494251407040610569639763506823153894042495972484096704861496651932611351434766651922020604412042491908074860688736656138938088864272243226770661423927400465024987346358704133698476642938229794822963070758687279038330182343171764888299789159454584714922618960558686416864218032314430491825848092641356564078915937287302392385976818066922985726763839925523483638100341528740205193160846541064925745188116726665387497630611972289029212823780304869604959637248795811701133393393595559708262933881254996177893183113722697577916159552672966547173617659123180304543349131630198034834835028210465215340071736909137607004018637727184763901674287990981504537469222877935507310319651509793276743440917567220524375134512837755639627676080128455568736302700461118326600420988625346406218422221776694616730132310280794486673947501734247933425940196356277165151235799832981977776614240785853846282766058517233738335921151473993388262526099622874602434429174206851741451731975004116634810891450512029676249061680953306727620164570959931541636182013071270186260997308223424749867461329378764257897673289044512586060517843302173435797948559022259710435828561308293783911514885527873251932512816748857393919491285939958500815391709288189307059833112743764136076220980176495633399160413930303554706199233053857630164118906472736507227074329614379677532710136192421401094091268106676436922763087585808723278153258175618009171944293529830361770605970061622576096408853466536664140848927608935965981085363906828214221564392449382804287959833654156942365684154152747947977775931633254864869117055880316933957403727484294803620624839455819853108605607795304032516825145045310881315428992045043158106553776586180457603043306244937262040492830978312621275949725117602032503021002206075888425835209950328110480590770210435579335516586584055262256744204740981625801402108662153582994536970015288176092065054316922024420274241479769752096503880629515254597697907306871567528908304050621161217119692603240486576848025946715389377960101712484158939784835043105220902589857335265402424806619705370887597451881902708976050455942538559643569004087133171918821176848798428589029912868145754082425934120416484603548548460086387232655594519149296812986402237341239475890829465402865383476211143385721899867301704625014338961729990044548438041461309394377072741129530891170739485884189177661522459814317361019167042562957204747020128662175868945644162379066033652977250261945146118407821814882428069582091655033155302317876546207255771398797138529652725921001993113493312561247602685025732804944898261465374420932499168059607108027316013855612795128635489666389624641158367052794377228336999417964052119386720723022164853983998145288866714678475796318272794382895193577766404511276982932612667342436470006460763317152958755304684749982466796903253505728361393058862343938919363211969624090846006066662853486693390831993504314608431731310288871913954572769405888107592498717977808892627871582989833914588153776831982226060421938709906621791392228175917367467115953562487581530505014126195178488113961392995049583714512769112399620222376742598683778516124137734751926493911185971560741730554498091958951239142347142894327244183614988727887697144401842736251307754006096705388285753373254450967759966812784307231257937655446853315554793428808796907284646852725760492771895557495049485423890327832296651844765846689473777258145675478360820167741725414765813052596966988455333763308894720958522036302893839785410194140556705568264238883406987456124290546818422405042601048987636755209860182676743405174571375727333728918647806540537676973218561127662411587899947496840584835121755176418999909284609162485277498559112493103539807432981338088024221799133046137210986502379551730622605247445429126558101013509704913159138780789873281672389094367294492901084201024019294483271844129799479218730084671053455826246560044721506117316817139858019188722507621201438475074264766631977413734229949432319960363353237589224112291381709311443104598228395803961090479954857333420770377211319886346627380662814539240277634405391026489137228243559144546846302495754871811606618386894334678856478040113411514220825010111282692614519490603062511416330365617772109979551385269892011501992054485788196287253448586700270377773508713779736594196329913584829382423288320282694643471997933204438264947912077038125962872793059529013991030864941627737060346378544405932736762411879439407860652564103093710496602018451842559532840185049891728644924356173383436110975266978320664677873649951519021594957358791908391515160326829319675911150085861267231599758984397315105168249347931614140486484148644332629093720127727480526831439336588010094290909642978131960205592862702878195750307433569435625738073855171559044959147217912498978429876665189330809615106596715290796888924369246885189873595962334185520913580654853467955602308742667364324189543225731708642165603778829201750687461838039092264143472714811206369541524387912665601491606047575141563696850735004672238047980595266644998022110475833712419695267829900113053800351650441682988947876856884816948705415796312155260304888677556269669933614313435189541529673781517148291536349284756111077174382184823226222938234139515204153292958193971719505430694279106258270311449331553814179781450926436210543152438008546820382364341924531340739347316960071915006421856293434782277090114495252017553506865031953014229484320549155366769051509333425100200420859469955984901078484042602230504476924716335265644779703384582428684764664564075101144659983656059245176446070385960214467417335511640487642815516390265430750822720491258075452459712139529970266150769592606960708274934941946213216814630298609212745385220664241774114612954141825389152165341066873800341043189967274764464313798139971904372224817691915657667391285457352043503608884016239797727756008232257556112965629242744561428980789757095540223673448584976477545950302092417433007715260823126868146471282680645622167458887571070130678265281067862583888756727092236500087101926899898953564389968671790335439109487186884436130769701864154292324713659302678539073999678710063309878054217529817337487635590286754074213159926994858636082152019609598251457387871814700302318061777416089075344274161234897365561462502970650074708788324830791826273926408416018656016677556956144570058993727478103276726551558302042037777021104253655126125966026285735457504140801749021924699929167669657440483351234394952837777205084003416152095105032510614025670326578253202122532496518442358403380906583776959647350388805075291031044670503000878876990065340865820451497735573698273463249350592752619359745266514211929060601424739128219468087521224791148113528505977238417610304482772876615975906225538897658799756231733267369225915480980958770468513194815623171875038946046440494024747207956786160422686599673554267297687383589767187216963482592162386062825171710677737849130513808936278280984124973410262057793649287794723681147818712008915114496058338322183691985403097587823657088848054146851597662929111215813864254870536875598314517683808313282729261647890083324797429443022483105438445930186502415662921111751809245238744118030365303786183111245569692174852812327064043363421424464353849104348314524073301035152359683014335170813801136143163964455096132561091698627187862989388571194333156753549919614145613938711293485368350424516735870771275132177512359169483988827367342209821420551330936564622680685441024610010286628809525215130345821510946394914929387563623499254698182000579514085274372911766492405468496033237516072587436405172234498280201680882360807769743023541909706773680650329125599944633880940906278849420022550475018605188838020097143707269062423573296351340220264842609098591241534240597205629181653205924364554202535224693139487507082089139544690339616107402718231737393462108423068639964575407016106272447243609127022730018713098615573822442257832892045183522969555126207766555853227696847641703250215750062211023342661851797212903278972623126806926667210390404298192099831493636739076249739422748195915725364945808847753358109401950756076109228550616690538235819405931234251296524413127903071953710712536175314704071448429778046399689933850543056195537166614957815244989972170845825000812616959370271230618669405172642041871692058537068591440636983291056620559192224980985192089563406851536692232447290595157472643731561951167991813361780716765008699206494470300201516399399060800350665700572829639457501889573427375761082289727417493980172419562119591047161456278905640211602166207356223573317491619345558772839088836461123958753092081115329488019244591002205936022787900644791903515734284038308963325293086686904157030433813608788209041197383863979756471939262084304650943177071075247028538038791841943822085446610098966529093237136024328385090633109365431919285690337765772588264032559847220844982955536644658558561386193609725123826658261343654761792513515434887939585478918066139026723681031587026094442845124706340914249816074225827186999372514463854843940534695896456644404053144739892330448279298489783970103447139351262185614682268984183971933139318756476968071945697148439734945409423596328541551253748464965331774056476646375265296937173821832131229184584333471404752821577902493861307236816629423525558477312696104384375941861381445783098638442008143059063297909740424688983460078412763949938365156847014806413090290786741938671088700863274199832406555812305029811538081024002761654326273394426955096498632381323186202999226547100994874913218447744717687274601792137113237235858526833476855118266651238599414812989451322733634560843818859029245550462564944874038516039604270956445318160423558677670032515301578188901878277117933910686267514271926618887648693334106728122069287916824194113823093042885125279866313367891064976042032570257261699367534046286614590140145317604558362004692127539790948728046969996759126465656596098775322871301075891729179775958470567666632577861284030644076758497606195415699071443605418250149651626884175644271133731622652438554603931382670471336620569404252567840647448454968276235449013449300136670525023305915732255083992800168764441147743832624524422442290999700313178823484593046775145695165839886263460105288515941966515494403504602693582186279712488768740572001099528747690143685713519814186459317155147553821217543429674751117090655133135759612403839461149006009473728760286431218491762331347144889299269244569239374912667750869368398774457720455863815619215026034473256334442988370719247129807471338576740441919804462239626422076270064587090984475874393672246696429607686295596919982327168067536836555004596975608024595443902694397338211514180371150003515948330236421671856251912953006943647150541028218436237401560128283443683119813312058488749242358994088716209553711643158706172777461278578548606178559602267542519840965538572156517646207158353685998660780295295118340823720330120988366268718711854053087979658047962692712677185164227135567676845780741098196644039564838193742894045871547829450109400625949393037964725661989381420469159843786377318727255509959465497341271636635632875474238185293708506229743407911863112991271757744279801476705951468368186359076635701958007205264073569750405415762250058771706477705140393492270087002999646410076414850121354412086078780789004900288103699072637598259087679101974831974353416584974202390880672173116403853873296875106212570510690402150931876795427988727211915264546559849846200724650422116947777144709969418464104132205279783918069059997094515492276682986172577456926025541807989930434517525727619223016103289622056147555289661858388129165564375645624169974885764097447266418243073217045779024758783404127706950656577308390952391681079011366330754729683236793909491523414554130600119023887238834035948902392608638742459796270159249675575133652230218060505119679258005921340991277360799458334073953078910973998100026493170328793907924994288586814659905841967024671216223114498149187365468588085485304921259423119362596825210770682010345994841300933311564239811907732127440481975338185435421625781736725401002700200536164972637364055470594223370236740919254108677607310834702349398434434907846863155890999898243901769979719436672933605867861760323981254523123944803965987800169270579174356074144522194727426902315353798807311885983659926464719936832158948811544196781660805839330502611022607323576973016659907634470436719561656768294882379593801487514222904625287422279108039060112085833117423792205512695120568551359280906181644134058703169914786641633006413226487451228951489009739602455585490750758169131022739733028086396853338901277162869890246998738308876654283197053430830776748059844013294736090070842665677243291188098169757964868173602434326864177371436139533344953076411418568207635255239493732179242058496754007069207625674808506712756205695788724306910277350087090796785591317291783498018324877450658956509825512101642998708484697376289544567532659079801347217117065645764515678733677602884320208585158981174539471414982019268676899400480473639324895381307354492777072925370706289768410591158520853550510276094236886016175639339448179370892021988381558194626560228330136040016927171920450745600177949855572852391082945963431900613712989836384668211594575046489529965811215232054076623673495168618847449401393911583201531976215255705483423340627391221354356152749859299470395387088315137292483242871687563679417386617315051482870799669558311456685844560958716912857190717803721150057197231991888751360104544056409262683870412703863858338333341133591311082533370664665297792964557831825846785711589788662996108346921784871702835782770255827350086080655163282434332093536435652118969849270655623627064078373960380239394322176037867165655420157361188794673861902171846799193193246643297145902494196445434736981101153222738809379066383472499971435699299318107855580104802499762687630432875220239716675716696152352731938863365717963840811712750107537666177799867184462289640500052610410103569195430304537875682486187835086773129843435339429358806796056144121029785588907943002644181116895961329539285071140065703848460212563150250419480783710183611926227143854411758903367108140529551984799529562494312360396977813344558610943640863631097919057661364783448940238286982016682578797292586874622051733248964715609531038303630577868254197290905303955183282639567942909364812175235870997142897204495001071363477163465793161583350819594826470225268865214680218190082129889476464836911042578217512900355500890192399242447346129568772736294503250736892926629595272956555042169532720466123985328875887994719817928254575442680070908929070643479612591519025328207344710688900845995602945730577430987346902272738730821725086815395060892489534999872672050023474102844896157793652158945667416496316768939492519817814488298668870899779031761496379113040738510374150974716047523503648109644254764067721463666620146011806624192346396291171613930210387679519354822170385413961617838732134813636031648401301611064915367328902165940457141683617726518590736282618468803552509412850041684527027504708215030159403444270420211306405742782484965151270690338542096523803533544873437728406180025207679544562859499546993960992268859986005035272822344256175075846089296661704391043752475577138625777401643804194316153251524733846968477733182220101174784775597894113135664684473599248952856686932585973982525096038787408819751686932940235081979629791825913557583746709643096380079687128192836907582552103161356045835531148515303832316132565870256094678050619261061302384605684899382051282570156275158714858366547298597185411544678594039474102867038847384048088589709677324695454683556213176108169112121300057598903104272817085661438206390369965176941652804239165591314716852926483511968649350956248146523163488118844963035147532231874188530198751764437502507916008706390606029800013436957787223163650199319315243754624868464772352436297250054497432075959857111437294366733516828374204953139927556459309418664826561774701621039712186605161862020314691688139756365083902665415967053194334122615572126117911011350537489587224093221777174964984893414486416152111346048515457280001053233883555175896323085273403022158183873489076424505397513911062253489251090243040050653668747951800402730308983589064451895833417742800412462115166999830401398185275826002401919381641682893968265076564030721960842291625905617108926416385643548154931467062818656401832651980702455962819453921455594227966177270017761723474896855583838716695469435238390473041285832048832344736497210449472434544205189569389936169047938440384017829649635444895653178063031447391825441261381762939940827218956630791175991943159946020967038316730324913331045663022934692836395120297899018028968142873226233729801426936934711275535987419586829640269620421889199151179341279990050225919256931368065561090288241391494016102283880684332570599564343161449866538128583584271393439850542911898358750605297689075629602079158389303776807636322080580695665701607519444350180819571358894226494924557721239589923823781370342558068283940432090801272941388137464265988332395182933129825582137622908145975846087388124477965207693680061333628164484410590023070686553012064178442643665548171084363995198963034487909771685012229538487795150425703481991115134625427839012693797420861141165273310544335012360318405394527242066045069605369908525389807628597511424736436207719424002498196952848761981437850380576229035766136070456171236576519909612865157479250810742809632675450555735835909979561685527356518820798054303244549557789398070350087242515440436739490621968774669270096989869859428275894672047596755204717506900978505169789431699832254340069104669753369424591774687117499011453897570009486053562891759650296619018385684975745496932196346396598372811045765038133184141829509306540689573552228849567658474835440437699477786127076823367921454896007342070063808780746931013366361072583175025476700853157488690234474107945160565938126826217460572190295990547901552929586875055973574312322650389413224916361408229206714093769159725946116985897231959222984969377697938295876934702861925334441703151289114614988049242663595384495124841891385403707731762848902628296030906323498631786410505982368656118267827649548202238698619614188955205666708124167579576596809592752622740806435266372302217321891722221250380321923679690533252457878006813656238513780519541154147502298907110131808400867401856940922903921313396905407484953433530500246168400849485821006019653033632609476064268437918518967272461357153159480272026361974840395184145457985950863106291125992152073960146731523900583173706032482435903716828384902134357376562301648355000563116778368250294287085689132025660296870077672066912790211170576882881981095024867120619037340682455588415372272236185849216673341924186222759137255663953186910257805645701996898106403728245714229905779225136766158086022485217066605359854389374194273748298086179060592357028311261057762057753937577929186794334471331983248889754367162471662226003422573526531193363845689355944039183342628624404047250494498484926789281708203455935845047465236126823546863868005494005244964436593402870005987749960373976420133158504849710091229930208974080528913123597792349750884831155030578153189548348887512919835054737960424587508337984307018056914163782100516270705990163643697186101505215530992486940630987166095771100612110819512745527670016403718569742752371409914342848750018479715362771633429243267952958551225467680596613589903610565920751624112380154249688174085821671214909878854668170502979851736893446648511844228497899372611445514688308552267095668790523097249672494343545706229193919190738773829364827630971882279749107497925210239581441677261781524107882281609342636147687460434299496756752003665029577659360729770122417113649997557945845453750106709820765349015806657500726518011553183656857820735932898978970441969111724046129724736523380557184838327499178858899067953079559088496003293835452218478399171646501358260545360647056015076911076741941897869469855821138292276684130038048670026525086241353245875328761552904400206504487136319814346344447251659049737140354224520957942010138291815629587610601726061757569254297018831928159139770288487078087331473187539371263336146409611756821324437449598605441350608335149937919133287730982448336660039402407948550788522177813972503573518365545058918004008322420041542230027427199623478186571008022484596649700432648315898916738325150864619605889846345378754650919128807989571713764033708059641675759212679686831837159460543712453339861826225235942997007883456001953822350041600744086352404619734392218659615866119502180123317629303889087360405922929008475101432782924584636588558509134742625653936579911351044371844265028552346647807250548249055828251887097119714105425594820522084805480296495968595602033881034692093153940184599346310296618757347434131200576684784144486763305062694758726692477456384212852479584188612846694803650769931069342828436419486543926497175908185855796545674188142388512827163943779324368718708855626870424426508530952010892834575078475919882375264411877546779010069199582025458672546914431284926121482750486563652264878052611812105145133278656383605264623346755672593146454541740495792285642871729400138094974174315430168634176475958236017329027800722920337687705735378740374590447742613164665263310017710885183863528005295410637801520649484427802680934684889331054347796742135840587221737536516817165963799542352055556136464086833802909613357792086644439115632500889629342136837623369503853071578667419009918543865070293350305752001021476418786782851887527202382992510450781184258765910891332084553075531329012006534593980959791032152315066077210835759673669628663371955445815310562658897144028965589845286209139039415123180194136856021564047577901433091614324389248215322814950010266399581476760070766075889262069894628514464801872526370556163823758707705488652760554698948269365331892883419105082506320783075916301553523688932465976287034062071456465567830813305974996804982562638279900948029128618533541793137477773174899022188401866540414088209692864466363768525800579626577233879353549516760536039943942558227912194796520436294236303986093740517264654660267153699471627783505510498276620246451229374310613149139845254189866134686199158390438870829640596639935891417987940092423421433393794845899072583760126539601283526415496974950782081601401626287134793543522433015403290131899157844377091238410721156214724376416763054648575744496884770911785136024612476654178008811067829677862696412888147275333564402867225839526052031043786785360828409051935033988127609622228652266111617730901262944026665505208283977429352785228637857566019489679410321580624858605629533031132899978434234530135578568302371923834456285846912361444260524820938478788551340151333372609379056602691872065990588817287028778776544930539094548796788298690801929795293390915655749925119886947463519060256998144414485911414354326929338070333351338051527839470018868332699558711383518319284644708819073642252445592583203492765102295581948290260544997332783673128321948464175978230528085900649832488452076075226229967047040248185527713032291881968551794498226277070406603933328422414361246413056585951735847148346892310543912402360908920950219488794989760504957628708945490453299760229168450304405253099419974159679593278199149762532958643773966948603007843081522310782096853092187859286313749486661114094069462530134571532742857460620998425959021495279587858686603984204556891577834569818176978878208995219789451716005430781800832281370116208287566546839452775270710869732948856786044360847313391152436842297269146231855093028562355830080891984980117899758522747887900791110551217130825777541394882515068344997263824377136210259449638087258187217476544437967450974816782503883316737513415920641892516049724856746954466517130979514779521328418699813414079146432590345372205033490006170899434861187233362709782554007629071455376034856635205008823118314808433032703946479863717116418993090509004918540757218671219453761092197020188597675597690985131875233545068636832134949393112934913027411464759322514844110570545739554906580697151925995873930457593570207940260902603480974823254073770208133430611324396096619741619239670639430873788777056190451244500227322171469949582136321944304258839485809481454638984238938088336673332289162305918018797838131727718460237910467500331180088378047195119118245982252552461942938912858703226861726560486672416861003543554465265071462283681251638255458249391554732969238571533448570006368608464920717660287317317219298393828109592899419851775932830507754050846599855085136946845638912410275711746620271925375255847943058149396190102384454623978012222854037556723528597593878040934673007637994037722300636242199712037557186754391958731371925987196094220258637494780859046443108919194954128839832880163513390625343089313421764425907698795366128725477640633598177667939036405459015668225678016943565079259344897557790519220911412878678249042067289079695444643429679699681382040191472401964506073778917038106086138984521286133170102691837003279694025828831251519851202548821487314541850986134172252703323969208944173304568345929699976841119410799838770903387707820931045022058359039570794737438119920744310121428832753770775215702140240952520649487418504385497514242135468667222533488836483010067475720361258405211991522140694170955898590957312429397649531151309682065968276519580731691388064093525759292460605507856768761082205911764021972782875990738625925139325914409511320949196096800886565005850954360074014567798184163805905092196345906425420604492417648880657424824883223892814283349922435701689063078041758256164183479545615003433953870927144092832593221015720644469743994336374971902467973009326712361808954403956304403681504291233315191763723379726746566443587728066756573109007582273220231278488074490083325720020288426896874779833753847479418677036700053263461934868835301222311961758178988462141042341846230514161432900878256292312931591502748014510784850659551407578986108516265985114611830036723594006918289594021263669596220768327450414198886746877837227094457344528083571234813417493067011024658654165381218702813462040832985592454118791697846948839691859492244711427906834604049819141472811039181012832218657654899517050000216723996823458611294585878595123989353473166486604837378126237181977251099492554894093600045582660802315087834521040658169489425123343112653921722737500629817539895241997668538150607674315515656836590193568285022471708729270793843993361947541243547793514943161786115923874765378102215224780034594832569619583709649802341504468926837858839015720860776324766150277905724122144568635320016802490628881204300058412814262088109119894317258939825406795139486879474944176378912274858231945230092837451018151771493798704628817208684848951147561859395101405605113802735416989380726318584940111478711809142876517203765236147272633160232626983181546440476448905154178879578050332369071548275361977808524773335117079087484399806287646051009388828390710830988794064761074041930740641281099773639972265630399723954710756256974168300877927361044813256623623647122302228977936873626603723295730314115893360449162412973324076695624269814373034659561994723912114950905031236317797011972836258581551079384380872700583918344362070241924140178617336068870066317730267467875600546334306527102408687747024911648334143458691465256169671048308792017784646508570007139024614946997887098248205736574688110623537676215444498460339102812242021708749020654075885841532149292162616500314733194005103654020738857275003919288024732517865770433410085490686950367596363157297680155359772376834211449004923764747035729319248439863893810683607851152752825488869270374374972073360879581236174742573047110118480128807036791661547950495527693381119007972531221593973162490797990151773740387058546870796976314308739620576369747649060074426920863445517438474811312190186004736636376309018549109961014241274478612622829216617597389154845988443596562054129669653185564660995290340588770526904954508424803521445699845626673590735288108125149777865261827526080449449078188865491093069094394011535890174226973534440023502889685596017212230500757996525195111502374245314977799826588294683939792964986723226986707810970433720934767425340742310872896678529734977462063867286177151712415321924601254345795628851058841845002310571368037871949819608873848283522959425466532403091730862640012375198635282930454830344707794062831586785677874893012052612278507012460796279020386654964148713121071863892634279073052739723638026610087743951610291173539941714302989352139000159973976399367725713733714063665746512181839793211797707654409452164695337998890903272164788063509412322520711737339608342003778498649458624107970722686594581624762653146178132531361341317425327302791649743390084357110515860557322361966227648354082560839422911989916978253915260352258392943753476670204603821498107712289056835125567972142292925432986593783112450119218735501751485696317548791777718203793685387526332834933071574068318554626387205595017950123350365080338723740915564447370731486854519439347992271060172766013870278563082601103644914181128398570734218742778132860636582068149742325720493221270136114414583535762016220544757117975620103820895080586689156505802305193551885868144532293590953911047312105852207179074785092962336993861591689050464191131013574215790630948143801877739012886854907350635652327529714643832688970553159689010409393531891345108597182839130063213856721396330040747667446840002239132979007003397624755004939431290072202603162433331919798872354860875581987623998346884155532780882084592184690491329023490656138581762420893907197183731681334780121016884987244268208616892257161590616981940657878572000172285584330830488704094100972544785992841547082023883103283495415364941038299242840489315879853650613636677858633597962092307768670770745741954554119565723372580140280828208171645959374127536273472275835884321706837844230696914702729899415677954839660003031217273652187980822587881876388596748383508123121761413598449035055545507453466977164495495302591710079160710774273035507760513462337017555186675611444779809534214986620412642949946511870548400424481129534993124241990646384922843955146175333314973054182691276198245473337169933839180960662053889494240939252868020932494435069985946536785386762233590013062395786600484627869188620424792124504282248344228219030660827473006881370817729668060141238205239362560530742827290954535624523029855206959443140121079752394439817453452228201441802327302657922170641187963182807753511206011141301577040677957885492912822053502962905000986337340797378100484326709039741513062261777994829509283083752232698372776040205044491536213788970741461467402543102594677736590690963452386178466666649654225756645162687334196894029860232922952322770764728427379385491382284562148960469540994083541577655394183805320247284376977411708162286602074184682346559718275782813639872246149216336792904056537534172596309534197612132441955884959436025492519478887542547996098807134552070134910058622944385771385098909085493689689210365386122344655666548490849263255145797729543169623352520183820987479412453321353071651575691703738682098362106507400510770777551232382896048970870024550940713518082132950372375701443290083310164795660399874906975735239784279636407758082097890755833173639588269414600429736493633807014490700235304452627908231063056128295792670020336826247626240735031428516176981617361217165096401074215717407975988762367430627460721951032944041694968401687877594229695538255317946339757915797783159989591677074493174986596558695521815696246062843758189928007328237006190248403953602239968046315347767947642126002957303205829804134304168912044897747553888204537876395963438450916113847444202321220699644612950039214988844703644622600516138908409397367908032595866244518005641456276394006466775488228597695411338058817688620057792802224255143144591441208429275582619901886013726470040770346651763348957249153118071705491923458615147632436508767321608949703541891039961484160926573473942026890407862957919771533381946800767865070457614436950933748292060625545046563679515418484210417833921966226715820854724836870818372118638377554397589435451990605746702174535503202438478682282698179666614549478111253994173310603853243112458641422950806325060310716878443957051083714606076652302638777186448967192910617023003994964426185888842404400137410261355720659058432383643273025652712762841022237963223040545982341399046433142154676794664354717659754648625325622461919955060444255564642848483186689912618998460964235254833699600114269559167319784281982308863992927365624699861695522120890232619600564720079489395302174712750706644120755702304881395389419592231877914017757412203097513607840677527541439959471290298230268994141128072962148148930626339517513012352596551056491384405730916051001922315065829161428831747550264201291552467272121699025287246425800027851108306962881543697206324067552455542596475363562430670634197076375525347119751982708636495685886767474505797895788499520896408250671523773299860637323640438325376890598333644135812267818258259221330432735470723479048574647005955036464747508569834803426139212260749497627959387381949251310476421699716030589680333538711399881760524496980592384536018048523453922897033943982341214007766666679271440402818183656619978503044592981909759072718582992542612281382385411172349637737529892788473745211288031233460839546339891643540078483549484936713144249894994476468563208691275234273805039729208890689963020786005436945875032399999832479828471942522830416520610635199850657943517985620258402228832876999618717123703495461593484624760636036313963322327932666924301488658644767376185697274917757692865779697989591878804922636442211505483943384550346664614301463645927798781317727175995516097503760836233849256296733299709610502912150949666614805408824518288771643516877617703509306023072470058966233439290685537630128410534185744267099774909025097930289621103446677786349295989151064115974304565786631276110483645994208093530632355360058224960398027265754948122267554670842409452835620867228887885756378473118535786192781011720136100708637461228874250179332722744126705527293723127007612307623950322493053513075450266546000333715625388547068157282391560417710338793941911369145441910466730820747103633246515357300324694403655617666635851909793385345944181433929772860453857678849612634961501793312207570631385889825565486646227316142021911271973252460835655401239528549234995037506000187122268104225030130870385380890439830820583689461419263543273324908091408797619957453081796865711997162772869935298325014766020963228331864102580341558859505972663033972716329633437248884577592398246662987215945269023918305625887621448472475693769938502995580835627498394767835434597760974249666536349748265476958384979486617234596710725788045229238200409490784549864751094055945403188584228726395637428360942752825076793011047155475292733419903753148327279544245177878049293804948172041535814291000181516690750447276744401906553394860614275462913417225544085229259004065365099912101754586276025905765586863913211372596167720590924650140050257961795620923478853660643484648477039895609995963798790851816796165263813691567294945494190426824120572677856607510651891541265607642701921860609191404914775105539383107212421983691676136693155143944059235580178984100832070516106189768439582368322051253844458093021738172785352797292595893548513622274655993417571542349839282264513882274462884518410141885128242836937809507735628686351322091921541355592126139884990553086585318784023706474771631344172160508822371102698763595939059348069237249053358823007753487628495194753785541561059835843429673961033679902067052986173141578901727316218613019826119930252316207317720840273358582500242796521119848933585170868183008372981868707751415917600020557100353442288701581026466552021046407290873858333069609726375931427112507423438516319607997635509268719396364384443178827776570927407841415906629243339037961374400240921539020718307714408881136554157508426089913491428230928620431962149117316296015283826116857684228857584760537833279877529274222729578574868116489418816225085478490266504505526731366540012019219009496845451152975886451341215655348171226103694566251854302413159663981834214699564155087358492181877548496911695130550260524845003050611949090428152534214714236959606912378469569003714035481007668198050182795554369378172434547134521539389176000975514832795600769951119219716640329515295399384718005061001980533455721475993859214064956890984374145507889725017159548542113319384753180678332542237146983763302344183810631186861364986354816382455388676222241615806070215016001599602790511360087324269607162126346429002812765565033490157405420979155982811060661280737615535794381881815606806228445895913850270264732881585134471479007455520995645812777947618039459286049294668394922363423468716453982587899541943089593295568735573763700592157797070943312224267645542011163711487041800371491537250415216440349093569524731236446521613686221092309466799968192277838666641574110089106533752230311262481511246501178187910501289411255899893103892517243520865664759945671199095960429040544913449350308906200530743829795622572310667689491684029886992858864767910620394928908805942296029387584110507059222344798496062538021277713216999531456839975367498469461256764672681264819077400148997310742266697680761905784466433808199922084790619698408871387973026509889262735738759835043359270153387053611952044646740549238037892131866034989610509548603132264976500903378217961905877080753326081022759892629688120071864717581640927502377079825524262983997839253397705303786781186057457378590057357604316169516338317248817347085933796804483624091788293916626923951428256520814815503904493037987773960515287588897247452926368766436103768676411674754785659188364104932536819582706956794925697127843019466920841331413842289447685689164152136239979626043728965232248762220752653097847795107572883161763524437353851753735522631337965771738323478829268458813419313643329818406123140589918400755873130881895066525137343563183289989619528681800875755474672194023596331721216775053475977039442008656566182841484679395165108158772327200300373993999419894415347730451537241202388145204882348466562270568102925082172500067988712812224118602204552974814012480360551395560207391684633354735352287539774591233321894715156174616638153057945366305428355230745631677155577509395728483201384479997367293307013451007256088854359559678819926512411559788173361326888701771275043188186012191277900468343431673765942731974363957844510170920458685037786599479404621406984758203681999835507994010927031965574097128359765883967649771650548770834011416621673867923461955049827712817962114011203285070420126591018093183009637592642605089092907789609455617514740600973595140127445918289493301772302524935538427146617656983599090599297387108938582055812024963734917879675418247227901676360587191802522740367299726549975772697075687337558560777486890915217259121022307378405226714449957551679700297941623018853063488036298194359267901121823458245869555076569493792179915922295603716723262453662034495298694879082770905181533301418402842965074544660649779085007374530189307693607233692241712448815604633760313325908520944086479529615234898617671579216055627433396407081511700369972400265490822523947402819380056993944810601325901036014478857292105035852103585620553401108737395074700335430374709159954190819671480547190048206156435459354030527691961014485338070084872963961501644732564616067358216402112713419868527627160039006402276140717640178463969211835235535514519609963562329382527291560459747635277103050094200203209606588296291383973427952311534453116840635757365814119488329735773243044628060117546922951949695954189932852323054367202425544603254104539275192714358134358014777730575192866496557593601663571304317362248934970816430828492353139204074211099316913415171614446023151566227609847391043602195200442507800910640798196052614790216707840075283858993637350028790286588290432104680636317001188468056295665498679119190828800102259873638178668203797545563469205536455096934167722044815978498684592994640739686492447792520822646632775614311384541439705703946707997598641706986234208214280415472338239732934216155074222241094245901954892413568331758839176183437521754200753895385418516264855846955859573851293783791866895464629779842055633857014552046535892796439974993844896966531565517632953561508908079190742097414805486622024866547689478710568268683484305201582974776246930037136522120980526431796087682355130963072661606168114200580481078521375278597874671730890152563920865687082490110056966955835016824216559692359651509139024432780532207113134292231421711630779764980650646521034342425721140181930637235329532486298575906709061629935050332121916635389277682941235230759743324893412080199177681245507023619310739558394345087353578152568557696649216143479157435662555869648240092866166474108952794592311126903561194591219879302113445785842617696777414158492337599510460771142737767962686309646585425815404556281929048965395063389479701475522335901481213158922833702248026636722723228347555618395886793283674446748946598917672956967403718688867410885385022361939937394061492421690281927637790192898497270904882458553799830314803174798664202937227320337769534812809289074788719769679574307013259585802684364912857695785701027653053311811087534496170702616498249852248008601880632306325915493494595462341586818488217224582968665059254180197392162760602440275187190073522293126865707584431423015826310195722156414907301225336150095463484999114769514944133089977872021258812400471907674107630665636053407641842401946319450548147695432228713958895965396411996998447351587704418202087440648559051669048091362298173124165639327668865369470331046481951074766855820505398906289194682177676033854932538079696625968115419659568950413749866205576534608445330571758834588904425773293858818812438612501297508567908205274951796277900689057168352736273692471333075157539810194511661074147456819650467872039899046550231902276073751253325275535444398711891977026533736946061142725868257440262606348835854141252981103218386486074418657598208665602675122542204152849318791128665204202256007684881129117977502817841112064617233092655224328919122325801641551626589423719472521762172829201180055337482524607109181500084408783100879046058514161480173364147518769780606573981390698674214986483841806606361897461114318799613234026782912163536419501339052030766082937174454340167029933754534924820214219888116119454795333578773036476779580838581429105380347693706025321189056788208759248223601769354030722806355147136356831165989141066403830389659438660000742083348545116271616269787525233992310262987242960538049907488262532921714463922888760833071591598681010196677793264434588452093629897970885482962378721354232097475972632829881077533040577939021960907047861405988632012835464766386218652090639714572161840971292475925590643465725979546275330802934443759946710379576517027191593340014586724078876857057859930802418680513156295236178766189770068719721782735205306192313405389999237601318566315604989435510016697446111662068945602924852718514669224375487882006570143143874011129435588640200004013936214543161968181364671561363403856479820902700305611774618713352325899594580474223832584734507169811675956391362791617848699522164531032049720055552077486169395122615961560013144933811708363879008533687148970436446871217203415813653166539036942116646972958606436295124798966527135627497453569856246191377496005447504837597856378488334540716889982144295252246566480099257339032446539272827515329936533053535420229246848322261021594215419612357867098702210569409714951717011290322376456531123239639640771171405373145897856970456442391059520862277533827864932379827233776519660360354117970894110132319006606681556840569632895508834922203677128210687301669950875979277585947296841253214612906280114731222421740851769726550213879439435160839808200930231790076950066771034025923120115828356492833250162853748567642307281204603329404120508314597366767258305109928410635229107548139838355304728934182481507289514700534295970411940131736796046653728811723437658861325903666117383172300625121750148283670894018807773249633201115669460356014612120806345326341557219072831753906239082990086656827094395021865156268391586427848278321536808165892045689930210084302351690479318643596019985457577768391514119511223726701512217492760321058379885485232788787231201354314033451366756563150593543049142506358983106518774332653617104611964969920662739001297948965041818934043913140817065883883946717666285413277851239751926163722012381018124654318406652928656266662872985370960512884503781562184345199020382962224433843773330732319123349341151150854217966776421678422350940401564251373831821215429112791833203335680404438971301213285038615365710757005864579987563650583577892017771822968496344591379926298003383024421032632321585682337337338610693615773051978988778536299715112693955991333491541582556911546228804669747991755329976332284999549242081828385877487135753420895763556317647245596982658771019619754940937087150367703042620298838947623672462530018776403013847716610116884134482549890028555685762513283447316734157697566505299965019686172243553595601557330062807977616988264355764925856783956890195750807230134629117842192365746456305993421109963332205136872441114250246352500580548421942059858434491350680995664889993589378472117346888124951564325392452776865237465030152235657864806869345621441455654252621308293376540968387274516503538376661361866246470687024914707699156436067306731873393027508005701662255445404424266074434299786963820416919870578835421379885655307591087683929797804689770450170799396930524998822104386148318661610673932469522798847036500776646025247697014986417653266660741994885779566670074000629088526286431586838536880921756223745044574773390424774355366066780844987305771758174978480691610969158141081943783728335704506382855036332374683702451138904250016902773368596370392492582801317757931665510520314651798574286245112922060919963070673971389263604898364231086583386080780607226704022262920411158688564620296645555809540223542433699876189685914325960630282829095887392810924621549273407756656596329428800626050093044865456319435444939040116610125655625216325437316125563086744006667957553577392755167608359372475025707173569770216913894137378987780549474849437774021008105528970052096071067670674676401847163814076783799510699990845318047375187587970138925530030973111414064328001611150438407319401760189187380013084541183107176356493169753438256445828460276620582947415407288001438981454726815531495239337043426450396220773383733861894762724214822983191853600262928257940865623052786216739088637791156808147982367117622039359652036505575276006066142059547870447958383082751443408896125251557732608742825284349725556858525398825867403191875919889979110634546564947929663245972878507867399914104497455124533554903630293402669973832926181353692437935029128206020860323842270977593130975530764153815323481907478012436255418669188088689613476644124721750510807134507062967887412563325276863663183982025458405379488227139957318639691392918294042571168772270945095823027207266793855602053223682022974042477335301986114822830244369042371030695488759148689767099988277945154999178085124330138996591159742716695819404877067295157848643919860069671639836428395984679913267658491646660488760787096537369062523458450509592114361643445121880362814250261867679159724134393303813270277068500991361649701158924665554304072146460135263655624127448723600507653588854282303097884639030290394432627027131575883059103096947176344033042752800086568893758790516189430262200690968019978897476952306159143259387025098854812688829614013676514951766697679991377846171766020162178971161294426680772225639435596006335957859562426150286189844341023326557173339590027290359449059458183267909056304907313251583757378945006418762342572855403759636278787063682944478619717008803208152161672554251479726507982156399156532825066707087878250697922144913335335746093249559776254006338202518851242935005006162255721007939057600499979740797715090393323719412003592069642639809943883942468030366790687869491627217211295030156128450911021685657667433964186631021289480534585839616742346811104168581350209374881728582890606250771114616922240481652080623806189070158693689197501678987705838902580161304165019081204095424643396719138729135736707635159284219686107658844499722778561683512796418606996297238951942120424200031690171816720414859650159049102910546956517834893017766252051075791652780320133705818484756824846853572462273565041399594934832639271222043509888042474961404265944531147775202972155577600714062710205694422584780847548115245401162658048858188476986242933912145197486112174957244733573738012711084167073778212828999113925536109868293088907002188252711835374823431187842613330486154895054471858805800819146082922429834751904717036144016033296638621887467239189898078916532318367713715474997191548700573712011657213717756678972937116062672925777445972023913067271631498271017961809504517870266020017904978925459862908601632950165833928492172236170279245596989482494046565163142848031887899535974691149058200567989753820890245851813478360061458033183410759007843268409427747623772400419978126039185676978117822446517844753096624602136658835067622154055173079600555753394568392568626659629437433428707225290947672462772284745276429008895823712990208051698654239595221836690953477055121814731269512604473415485471576016253300714119732739412694380074791801790299018811985727699741483922130438597916402129429170968494478362598982821878075016683718249693725226664389207408072456675697243777565883139904772928975342530619521988552671062415579614513457935139181351420520106531192354812781651056817681859142446224630795377734136799114904554249257862159427891898918227447079594707786969273523770641633435949410967226426842584607874307807716759585627785621177064560544075970427573735504107976325433531646107929449424846481529942718672033952668532598319542146994427885453197581081028232561709094682824944445488572272921836785832505820074069624031914804224777347631497189017476192204949349090396298380360210940151600707075245941633603560523645220118154191314980007195944085507097409579447775748521863172738346340196940478248343403694905984536624072292240071120694360429205221342587251539806225229305942047518496813768998152019347168984664024874114040313688722526063066021268727285373797037145785419416258482850161933387694667731696375425292746694698394087201656866474478614854681492247947495440990974711329542557827751679194703379799865951871391757460213691656429238066275138579295395356168111372288036863411032643996956984024867674674393404702203843691713666447248838915293341040110400633603822130725293784439545223134954260613138488633477198661581775900034032312251856997722326439149677660013767917810245164077916226690875257729541410075110991166685344518216868274017365827085952299548757378944938226002585206772526062993639860215330494866543616120448490437570167943056943910074803690617456735860631928475820158542176465049907365706269772968817636264131361103943862521084149023535744817109643184869342450933652003492295692567154076286597719231259683452835117117407478753966023669914139907189216047437543049627115551793567561393972190011463567485222702770100745331705442236504869947759391408039029105786632463317741233859235818609469401371497275777766074426951718344708722647508272725920502470018636071300775862884940971567630490935826010906702446613346426815199738253113253470916424470684891436253926464773226692969247006021799595180213809085039661448509514223589170549934002354147388728532817293260694290927336269794361143848157366694445923402376649908323489842372304083359153422755569788780075706160821589272089546882440777543149417022385165955264419641470056958825771871182444708115850516044504025502300170439897933103792669345107654924368536087512590660626473190526587851514876811160134232558727670988315344188916631946932299304706606933193328921257272817844290936849279914347035592959330016404779477571797099033967760816451628306183280618217890965962218923159480848620012932641197885802194317892360917338758186460019172280847216937362048431325388628313890069131162870940260882451622426053779567532295799284539428434935963092746412417928100053698657216070171150604660215638628435654040360809625649812145004050433585002034690155039893276403351594921011796301634809519360082173735072805067716554273149697879137501748507042316343278851651709427761359777331419314657873252766164005844603499573373069517212540985491211450465568584815737149698675114622089978657103779079552266460078196606053586807061135416142213131368968179681440106370954471010085143925290572267296498302376942871051687531315210486659343363089715812613077475386248649968645517382335961170674742927275156645706390377355454083577004563777051093335324222522734802296839064364139851808616038014967055764078589137682133019438976788701058572391224162656771612938995799118540038853552802631978126635112119804554371720501704676742834147903225683104093361576392427795944403947737447810359558815778866471383152165903975006059823806250422020125905862136583964918617854896311109215927391741461483826585781753498214824820735897002074605208223023519301063823813501257256078920025153036893988256778800625264949919976093385355450185324064955786266177069819558563791514017175003207750076056915683241244821312054725801128516493743876849495080529640917424074412590795350781507689619569280022957217308643446784467823799049412464970082067632534606690811111601753376790431833690201324896982161486669617158332896203464548834351801001453787840221407355063048063041788582734832659778802857585082816045919524041573227951862431707007693998081973463381243039524442001440331230136037552696690229092547850832626090685897790608309952884862280922845716858478599312256515614113241427030780327193285682627846109354780050147329376017278395242703122558001095772405872852216878708499568672244814583835990011936184062940139773234923238593747171916872598157732513816288481093258136388381107531938047830497821451316082868884076424300553943966998079808162396468012490232959218281512203877514542642351090037425200098425922389086642351768243374942105574458823662134293974517513127250399267556484734568117190435394237188019437342067209283750190687973556677129877884527291296491885987799125296946082368295801502787733756464254041401012671644996635986542802876244552498355390547105011191673554279573806475320833007758481390952077636388605463741054390834112386263045223499207604093075883363284364317557711370599970408003798532403881783198235384432222547205242108506448054060926918533457784843122805709948307754237113923307566292532078230772576976688884817636894134007989007369194961406086620102479961711903961614138601685324451674223230969953697191808697357314376246080609894498645765262071312901208448592251846615445394447257370059581305912388584552666042503417614172525992552842238623007568206191950400467132087456118789391053311977671366624048435479164816141141406157562093446412331624317179939519835426232458264841092277172297424812143620083775343066195922129735465846608500023588087706547779907550586556533448351675764939894406456268884991552464194649326652051343292002764699676003776880615929549065254668466226000523356051335665185661236922128061984753658281277083461188448401530060343568959604189561559143466667039833084588418065615584539279907814179243941853807229134691027501639983031276589595904649871046246501907982834519263948746172770095639669608738232819979083720798939218932377445991249952017723444838536175414402313054485510328716750418187839118054343475978529713214702263511546016968922621815051572802951239032907998402458460424786515381174838200450024406638953084677528989955854003899302020126464977263145981450727296055847446367983875994736474198103510758636203524282555599396850162818733149636319145281231619305895028442661099013799036449519464400002541521946588690982476332919802887387230506295605579444735679616625068741509383108380364797005513311848602434294808358762286749431396745007521516466754335117056329400792986167537445135162156069246761846841478615289132869524485491686643864522669233007094400024510422723740882423020945746039007447743764784998909835275433923288598449808198919386391572756084621060262286792125001275842079940744814487942809843781230152106110931435051491352449387268247282141555888754480330849725676215216727362829603031609121278416625267767285456170988462746150793714960511039172614121908833578302765681372640976273397523516064444832971753607067710889553020322531796625659194765146097229717930027796613438904615087520572503635416479872670426472041229584143176121467756100632880567619747682838435750582077276409004582196986734160934334652755967330178924687201603005376281101325705700522190666655411185376160429779773585297505694174440373589436209622611201947732930404487218575059257613423901270181705839285095410326259454549969387038596674759797252502712259686285344443448545441113486829909141703983853202946438408704545231277381206095311359571299494167004418606760260431570657625383579779905934168843333872442644199769228372976158566128095436462101142964446290380182843453062143160910467540419379767241919639207865796987466369704818647386531672395720981738130336733675266431685344915851929832722494109060534312024067487056599346685790245339527882802009776394465005654793799249852580952981431753213901869304518914624908388230394566327072021840237217664109097861623055932311867006563657295337734195264374731648442897415883152378146129415100473366232585557925929266595232285273467750722515774908844170315656241754412605243222326678297626663622006164845437747129298764070634912169948836677694350926854359222264220888603444985605850555601533448343210201620573080594457069764727301389293964454986039646825338905797922593882334250158566206617909345625642610633572257819254950696253795002636317044204139070906440525300371917145985530902378337360357390852045859589890519635226738332345309056324789328815958419364904353702738739664811213187206567432151756061812525186883367380036075774651500391355597471920153097622528687218769744758692643766297284970699995897149410127202465341021593292209462067371656287213502810781900232568653327806499839037782685875243992004160435864948153009106716604236496290113074661361230198356064586317507190109267142799643126667307693311937589042410665750205705175740997523638553059982381253986182044089992421221950438267181698401625636277218797722371454342147733774363716141469740417917175262964118040002790288062755615290747710506865519874813054820060661594023488450993135438237913171234500328953098312500314163350144880186738832406851936364045348262936657284110729525594063644440605752011857464242919517596419260608461879848300947490657329942787428331457775066647502433316324518020689779833380531512980457122610961654488782985223267612250725172872754645115592534894104735210383143754496548197795252832306690304428695996053645423411352795358397027263517906297033112044987768798393679111359303395246514391372357292835481639940276200322758346665468658837340113694052029134322560909810786049689030045977306378703736948552747226324793381487948041755979341837022997988994464961810802727019982885905385065469012765927169787073488295309765871227890184092079742584519453799296805962550620415285325081963065841284345323683433896801737702368948723197825976757582685370695564604264000458280887104167544947838203429022901984669884289633646781590348417645873956357167682220530676185303795768850107003779317342898457751280984909576328845868223617993709291800619757244874952906659106879136100176089779200670653816921372731319333185129046166430891357851405979237469842581847815234818235119578168114005263606783213572712968913633201023435705217605935179839321476593636245374315764933478474472568580508019617358938710231008610121557717609061597695558676161150931826223260938725691854290794007667567454473754173025108814553088058613586134185304174781852390477961450202914347840087757135811749351305696034867762762115603181908741213687089548277587257267396908867586368894819321271447690298712227540064227698300506671957097294273162613361898718805084856241363415114018068473762713201539523497836555405170400358641623610041855622491558364536833045542827527620256414824683935097940067045630459200518245527703736529164310864918419489226726824527072743014519340973373214290978488685388173693462827901138921293658153374175749891981857513045298626054855808518462295369563327200585866465143628390908090926947660638745603513125883620881841101927580090344579414892631142190025166395759055248170643114172922896016473336241306490871643162246667935643371892693003662328579265032204706437839464721306282365041773684525861704028511968988061179765702480247083871333812647128833679484675653719657992330846233781118848280333842941487763253290283799726422139116449290933981912065472311942411605653741836691638193349514029843106890676119786764206874207149810650605228787915010130621231803438221634222976130657442167969791175980459559051215677009457260405095417744661653931155086393562803340408388746028554190199167945404127876154606860535215497655809126977944860598278539050761572015900849968509718637669941252611986665814126104289913943624748362646537861823486711164052940463622713280241132229939552178938000113608754157701037506067739347992241524926772358230989349329269142837094803599823189467286835878911460644554853189099045172956525260294066756853992849358024002926238584492559130106688012941663529646412015697196321351259536134681596042296839700327012989172448327040676006323923520047165655771727950780653091504200600516892167588951010742982717847874641953004595045237424066059846241928531554916518233694010607078710871038510714616106811105095052323638338150087418158929612370673913429592817958413569470102040339837240865185434467778635249004093708424336340376493654889077881593357435507732056454572237977419492778067045023489120630381245681694799055380357220045689757828202955129069129084831512277670770154716563744032944383604036964860496393660600146000583400916824179049419747464276333614759112478495780913659443285450867513898869939555328529431923858047606160647253788000204474302864243974623914953287024656334015824704389850245121148227795052568784175156200532183642060108242186203975282135993049521167484187962286374852093312044600917269894674852037710878027504892296420870082964420847909148304657830206492712514770612936312773202186928951195221825259949264208271508450414380494946912821192826064479871305722556730744204874974874339620755326229232693071330963555921706396107158229134905345020126286830854274872212121039570211294491842706120571529722111992016753035942541650662727713480686340262626850145209668693232353141735031649716627935313840512718343698345136409200666875021162382267413976182006126447200628151051752533527236202328715853182367369664259484175765974214931764122793963292475599640075265712564476294015864103782915645748399683841603535499191767365813129526565007689091697015989139352796613765496756413782606188846092303786750299943816754023702245236801264754107787702915521774208912003979040930305288029686869516193919532553470218048432079544568910341914465213174207414642686819320015253247577104782127133630004958192757639708351870751705637146826373807095814431052420718166851159333262703844262858623486507253794163796291764031128858676315766197179600181712845887162406829675383025664557830732277431935777979440631252682300535360116243728872384804855692325909881332971794460937942575415156537249035266324564943527290349143952133737907411967867916350135739675924387394038733225342633308473947180997009998840329038795249171210283694984813061421364347507134434678390667542476309758243525862311881254994442091868915636833745959382836883931413595255895586345271084103539350795251377454410007599880109536498977331872046274525651402207239167862307878798772167629530193644290546909449809539350273445471114145518752608874235296105874564148557576786820817400086579440766022856157409483698667366654682690830722375007040875477666912135180698523522499724381047389247484715696468236410177367571484532928623020907169316836600648487890819255966234369394626842140962173075835628948421186526258367288314752942815722490503513456484490858044222996809869943288957955189103097952070115907731888873789061092291932889743686714796723675984414375944485013383221982361968420791424846136401633273407660736030164390722351170513639093618905812823358715848820462976956643753812992957510168345063534594874353625606758005403113168001201246967411311598491884855996549352916374245690202179667758114531837632287917629332045126714783565647077951161769683675765286639662493591479636237541665575277988456343966660875971088993405078861946058128824090173047883617019862450792442469838569129186812440153558681080268489024707024084340747627751934201559158754933228371106033073498129673321499278355560004684044470578323200519650279444187263805687200655965235973599400387658863071751468139698229519275487261052706074498555047199319728257017260250214024394236816973146821397155224398460409386580123656438717634452829920505755011955411295768752088360842118886803129097883964281477060738680047324755536155161249157685614421206815298959760448919167709907083628556204861877780857869068303008426864296118313981071611379674895454826031590813506821786108559092381092016314182390472293981899203557318064932578970347176187884910321589248854517853900166811854760256190497814863738229974927464561128038485918719317695180685764096033968275792505837497871285164159282648027528044010982932930960216877717427466150319234742256199462216568533516046471449824901937306129532838798118753139769327075475400913151742889373046884536273693156326667155849300384524548709962220305216408388764129956277396414705611645639350421364295617062072635070143910791411994752438334310467095270846235179188336556101446454458314153636356113053042215756402539609169072942295832561689916152879751908410818289994857331225510878726437331969578397390483003308792831975439197842873915893883532541600249976434522101154390444807026071376532022791471230767572857067983250687045756618916572359918363274009426682723938422106124674934993295208300938078661513143075704114414328080198844163776243983424018066404496701211968653368823582618572312722727269190321024048679314551244277123955915321709720851521108276898369843347136224336864953897710523613022342950020361763058027685177263455533966485771397691954625703464084159062143719356865625167587955561817948069326277485594820074327737234396547510482837216170190793514686697930911197838015439639303876850250452574287399713943806914450091348271354723852794175226161429727120651368447919476088617389896338688840344664120296434628203100678454180512991243276907830598928266108369672587095887962073830622706220868478536309395113057292952934160162414293392884636936660430882906173120428236625706899168999871533288363521334612196286241372914742918103710008867889315603163706263046823269744274955760493203123085467607022514794896861875098528724960111087831090165092502405654719569972475384375170255734081423699920254751699149018797128961985031517431740953577499408441734425295581366985072151850784824029478533888525414600917365706295023120627548227035926629655321865204647383719719965485972191017936352838383624110856227411650034268250960800751223788736548793190846048773490497878502700156566484628822536377897384428626949205925188978951959628331124310879740883289406347186696423000136089136565669328276855179615273809297555149239749515218133174957817323719226834541964084530299798251973487413959393669173254486487892479090849430086971911038733741556479042576684094121602077564299374427870866677581300337400794490133582567873326220842637439246298789730104499381494056650245556028848166382487156464619757614162602285338233147229920171778417805179633938754360825840048769239442209435802389297643485288759982007498155328626309900929523315107568167309626597002287846398478719385774709151167116928306350911207083789652322026529674936979446000800457315021412095825412357644419479602708612831171636182995150605364828488826264332215629026874387889638049934261821359788686821473612208541955541818155652206972504857323417311687580759475466614216538290051355192025095322205893201887969808984481484278067529508561080140717295706777564441458402197889976067997032909088456375907652954068131046908517773406248763586563652297078360275031252510962871276647303822102347568131866962091101789291629925655456094236695881614902019826901365979878715283784506701580007157179977014431908686395977240341600217530875035171438373967918929415307391346822994822326734560602770693584680397557047690702264360098206134563035376089409454708729315084630619862943489524330214193556964562306705401611647133482477067250594454574739565630018024024442385718642990139439444499144189981595056357102735611046301906416002815633207395640338136333095118556442489145099551466747194647339359805460124254411478070145527262322361687720822334015187159273194104734527306676442469732716561817478134018687866428873914343010975455108260729432985485108669764951315142721196881208520856700981668229696417366199870619433751064111867915232964855219395164761701024251973159536161464082759996547231827962951351711148854196237126889888491053662175545431511339836867376672248773539571323229313205277530529184726346722038977776278898896532271157474191161052197973025765610446863615466835642668902071196095656264859331830243520347754308849086762974537660529506153882175684754805605256480174629624402108545317788865211473050259198354078778375863884781470946112835073300417044760869423878359840326515544459794282035620733145964476366420649399517511650870324691329196294653698749876471083382140141838501641954690672486415152853486813484657317617270399170356034366175434496574536814085664910301858894945566392178340756278838905603686820394852470239587300361576453495988320477269441187978880099031803305972155468205320711010146164603489173436553531295354304235223828827463855027602606556351890492160643628212012991047178266333934903211260365046498737175315724505202060199644746763281601247797559629296878407186227131448381878295987300126382279405682155337388483295533702446687822257200540451047347806959112422302948083266694477267203142289005120048915634315360861744093274093607382285471934095480653102938196766850500873769594628147674329448225103036654900770930972407224863003672118913958991015156063922570064803919080783281281907745756612872529728996071318620815812243675608388486768452885909603886454743229612946561529500409261155965491740540188974363987693225487806224223932396185093572126403961627446899519132941709501901053090291938990202364325343196947764616756561384722075081129649318927299286535035686995573071485764359697409077896978091456178921446299374122516325211298566264769494289226857057472391403417311519622301968792072216832009672025593191149837264592472790550173610964532698519871609303511827873600513120541899687280567962325542982077206772716222340784908747772672496738247812463200042962463519561424158274354202197342966953413020580549017490905307001180245996435109961207479864814975768201480334224909282626741469212311525198102584281342112855336946986719966246269993276730983470095954026824490010839038992593172257534616608676026676817401006527557761184990450027000204423296922051710119689354058855972227573419366324374875157196530231786077617022117531161376801162526560556188902168339423050009760641639785608136317309003518804059710465640650558499107422219682362063930165203201482021305348876453683184482781996261681243232347279346837728781603782299708200309202537850066500979888264343077761381072327291329218189612423761903273965072582754428953210149072513645066283372455413825756504857720197715785032983197408397744616996325022173581980011269276196424080205833262804999022458916641154364792553271969071331061025801366161028978713083302344411495202531440022334614113801791707675633187341957006861793418977187203418953264982079662029554410945231204708315972199121203003747314400895398890916998697158183231323040019653942329567999468625754603666337141190087917378261135569546187891068505761933853934349376855978029720363003891827288912980931954038253976872659231034085684619987701982591735036491955531166531182841592216659659835127295965053230140131467858551172295951975743917613994662301726309991227445325645561926983390068206059755830996393569166248829732553446569838120130496444727420322199560720306899112674205921262320350582312352731884135735083930676768499864615675809158653593844006932887323624261353962363409859850713177798483669727719155446058976336833385816982030519926872466993005819062021257657658442630395166646636597316551693374207019289636974362419121728974986537768592593710206809710615438264946541416010104937416529957938798807843645351555914642082087546775564560235458125508782771249028455685144528126868092964354214986754986952027142284057268637908541986584377771581665012493177973222655180874001158503211297932016374857265506824180987079580632177806622928245887749374429151395758871260532975115532201686012142936718616569678352327127767387253689195018315416998991216541322521384548792277861323878572803986333712184283174723643425594396024426071271067022912077307140900461207349691273790835666521580985671165843445573860791018299382667398815665729524283627445504419370148148343179089816036030838860677738653153054995421036538670240248831715613608701932110453626871288182685487827028196571569617420638387772454311475009760741982600378829608216926299352455959128215371534840083894161657303935692106842441937268885197852323217275315958009860297819717488519320364598469059100244666173814217786937438472077047109492792586002075647712768511895494878076621595921843144115510364658693795536890161517202764409919556317217878102995488299415475460245488340354655437538402964176819352796344791786283076573304920741481723345446198527192699656448847605359207875044467901355012273024454894824321247033296109627162045799666801529943460026716883584994419036574760111729631337481714736606455982393908049847122332547087809030907116088171415276388597567389114908027712921679072149798135276795165198130850833672173447765233519850643463317681315844924038329070461257167768278222843818736852166336968868066773513237322055797357966158033855249635578584046021797533239195314862051389329024371118292563839270965753928316876778822543678587315286829153386178179840945533607889111626414536418123875635409503293505711761679383070115785129867403448803108393674245515325573042067813700274066340938917759252823426454599146451680056525642781151675403798025741252135787383128324325791553663686800159248688630568301026874180064856952556690017042666663936497403540091916503090092653158882996469661573513042746904692265898227924830411046532082368957965701364183931793090386176787143798866880472057289517570647038809106517108656746698291759960403693464738086792500766598793445219500694102282113085765797447549157622006872694647101340962341616271686852260878499838872285175615560894219906467322369916459157657112052404372652886165902793966946142472071824591613988725088517584267049564697474376579670838753862937189606970734494807677877833890405431247506549684925742508965375994145144873801656588845067222243828451342223176466172234054273161480201734214449682360650539629357878846259059205220134173325667488727555914355542309390533297198261999962862539393386639148168187887380540207789933185977378092627760571301145617852370119161138679684041902043037905184280148502214320840440173550174008203458207011510122242934148538213087380759747405677609531181445393508019595250036919756641852780719266842553061174273771625048696057413992162335765767590720926388635110224160028390031342769346893894866976560561095636376870624843370722034764559367323188095115465608460310644636838508654155193197797063703141956948833146611805262528125575113841276932761526651726655508774707910559448177837097854006674586947855189634252059146782581712581459886703116228145990903563558688677362366346082471136213642566520582177785057233628972952940025042423790128341998293619024848736200159186944355353627137652282526978903250101602018128094082240512265215637724296369278371372418721554334263080928513575104341109141317963036283792857463129029583342089956594778350754824121581727877538672883789243963472115376310479668825036500547126542573634876058854750284392411356650557858201043492771794721737435721372566316884194362328512747037752747590962502525215144284606808250479954053535860751842648182687398948836624508658266477829489690299898250566121470899656546282014309496501615570030597162711438206907267829519675938152805688821926450746567559124612022701367906482552035250421905017262526371588188836633226547597707448389832005369930976507354019353035410460284832918724497370111214384133781995316413791153348069272742602976660625565228402061888545238258914757645985342612745159320980257343409748855072737519344660929330058211146909144552917443056013969088395641932916288881554019111810914885414314570653540265333504964705487852152109263740934017831134181696524015420179807377091000874074424657079862576502150812165390847130393701786084094118200684245024129778698813875350142859162669546933095570272693459588778813936248967837234968166519419170048133787086672541525883262964327846920197582057914273750015723474233322867151846434449664640805247895076163404812581551798114181031651027266046371304808418648288135470094353627900838796580311512519962347679242130890111901216644736002892661778266451094397239755956079729709734114105651384931593723249857920054394769890728936647993729638808843646333135331748802737916563022467462514365391916220472350955098983069214014607267846478070206665624166432321480502325935979329850246720373960027052086538169486525232287065739695119576074178354250227709893761786410155449451324740353495502779771353152337031112193950226625318258934946431877364593170053265067754052936469291086463445764576316952688879984697011494026100843563605206328441083540527639798728468009659547247878590213088047915932569391087191917464099941308270900287808024178476632642061856466449390104516260561116640668755368860264439514727760634776000123888334137849806824165169661882020295792106050615643937703860158274547132295741182591477693248311556063568857409757220767054575831175885965641659685234983333753613813230918010913499028866044429264195630722631075327415668891429872193831321034997160916526145339060749276782129539664646555889457665160495166199823108043614026006875913670252692991078058919776342386188453350899229746157937891629740358473360982968320002474514344830332548194641396018358351010533150158399827603081880135443494834786069955112195587154752212712438789518794814374264410104486476102350714603535901359304543352325512207277606772680743784617025684768029306345763026395395155473314024443752280071599642387884901623428867081412130642229715467363059762474427486139330426936769700309099116600498293396003114668735684235208194379588824593518010644572770971628102350113953028418334250174485511384894533962207166083363266841840053570468846365418086134998000937695941381360225017359224717247796772108114494085842050952655157038772360112465375288026432596579212467699683943032022505041409733753098766997963436519053545556182486356664095566667919202278982607873682060056081878966140219077847892151157314396444874764384355655442355383775763062261213377658748823848116644771314080462586860366858028802172592163399757166237901026050689074075432192378222590395032751166881196734005761752171373005020101521487491552146564795149906611234338902446179025548387802890634310235783141715115134985243628954629162531099675413019621459372411141602963257875903139442325154139823507357238742013578614917377109093108871320052841953132915914515545451026264689317161277852587291624532697580090916983001980772086475917524922768051397056812491173333313328322414470561602048115961899405542647602805111088116296350504722355197070231978303315903121049124652098895295998837817389933257962306324349319044462946201720813646772095588818538729445220680853061800254997969366504738962307687906709133887296242358528115421946298132322175119347828675922000190546531462200202890830314793267207071897986127398905205117664815944208621105189054701089109554509380639669547020697089296259448463502030017586086414637487610174921713580764378683738731133214891064405350691888188602798409406858426220718447995154750159086193413798066917491043582600635762801010445173849499561695765486091348272872292691128376095761495007934289436443724071618993097160146045606788711784348688403630729937344512968155831995057725342917881399138826228191494684453587954781898553547588519833869682266715012060751619929798830211037938102541562892153188072172580027044041860408555739326309912692321951237308606992272061202937146085680135009028578819084207484638004447301061419577419399118840574853546376944037593680433999158462999687480206001439178308483392495036444691696810931704183982179614174815504885817645231281127880814028426035707796597931926679743200358516268729645897362587990749250361961126304040447673496413929562723529664622479532227135429271988124308903191543893752638117744264459208486110700607116476201249315252677360205084589748982019646630996557626714639147892575334745398811743846972541479776844802824966201522723035922053991892823396897503396386774814111980941451067444502482633021980688422281099863852249558532616409513734165711400258913247818351007829877453057850025406935810603485882833474673822832405021206355456369035664419802770227038459412382946602850567723971210286062238793155862289154918910122528478001818517649903418334165688746033395317394079171179711862966252709107108397390588691423848168884802401998129243416454628029714814108884365788018961804682974529396130495468879847271885469888379195316784966941876707600904412535304846652435625442255390967233348370719086633515179529232649297640041423005173911442601969907111043922408271805830052087477003840087261865922123774035627641950239870211434323067141606875982079986162842616368500832169178334010999389197711626734772933386409846911359668808225497483966432151133790511496341115933221658920251984214396705482200835001780600442009558637544991639898702854239238424712649338477243381449618282643422991237384550006451387915532675309282919787816829929591293801627785135626549908308550018298299274524185644928699556011006010074576975217575382796451354593752802025065142597849175363312917842830938489750165562130316318407260139490420716445371964023417563581794262789961131613003577640774828179591746534742653809163185816224656739428836721047413528294931087246566554569791300141801208080385784224865487450912905456430675263893584525659421075349269479907199287978046262691131461416148362478429053304414959183532917069598360724642936094221428826658458383675032904574833885309410192849723367511709998211432256320089168384940655709919671771149993479668131965416331816597581154984843047154703258517737789294811131365491349865208354704235170170969671341094023602891577354539136747002929015644272542751504028713262496818976370971974810607371282828432149507274405910813660307239803983251672563745264201659191478595572723147133007127238081096312541566879594454865414657713123944037479659756978076369104099684635181152205608527429352115172436681504847378376379204217373436024987392641579102721248114220739816657553380942062236922492127826401580671818819819912683040357158230633294908675053493939970273733009946787658395967228221011536295906818462411063176397791624064578505945714838137027290765518503314713554977355939484167219027046842259204667238732909362705578524312723568708454156528872895714656107242334985053301377971658524009059970697321589667422123084424657434802613065687037470945714820643313299355892642797901808222603244516613642125301699476621737031115861341786998016634875104610865438811710815582297700537563183866503869077960671030288662628599910954700143128092821300304471294653683250011191341829604396867037539086314304849932884396176542959445344385352549941428911027001115678989149332811908000530033983156557921550924052437550862804593665300503647882405651843888938710386335245755522812674509584735301906141805142406010109071516746497439555795287165370855866185225140353209054043345117695431593478133419497749333191832135396518443009547048284116545967694299784537176972372861745644364128684882889055981919824903230850437536660824273438335578582290719186760829640586432212911435747781669554300999283388377019779846595026992568344953700401485435793300086169068251244613973567643241932939245001931444147317228520154724177726431231543110577638080052327585775230463002525705773040719631705305298492185827824566319135429515363807427583831838070477867881282206543009053101789290243004850527788823584913158907189448336595533993988971559222542357020765369732886528110487228123896443295140982341820591920576939852376259685433894303875801295455050437457094855540851834282743600230138363041453384817115960597107110698013834347986216715949477814972161858114508177749128742245784765714694078385251777005361602285889667762034462923010421074908966805277964841925888917282341716400118105581199977335098241880430077351886205904091645669798306121521697770285194449372766719171461324122132294293160542195917716039028913831147211762984550673094096350184788645877318045402014976433908660247401866678122582541614055992196130589985439469760396044822737563327529077632697086120173726981179951509557559140341938427515867672482978513046217234856222055806792135291155288146825714639152398595400371664244894752583121797408482217379299965785681132115921942661018865857207146223193755668747490330522584440631331763142794230809772942010409357042821457271608656673005420626378677899286645651811275443506179671983385422602035564792220376695355343775106995001168995865637345397763128783506913756146708461640759977026575785624716708632810735251623750117494999994024927411852726952586573224689562670843279665061883585016407025987405006079448486126979433261343796380311772802234626151193075611481534501662854530147363513600393237749383052552260679572118915473671466696242056732947069703576774694750057125130060671353623970529156271080895877592257934796668741435469039497903849288031993759823510324284835030877738792047440940731011454819364210690136516747112055203244212932030405534923888397242679617478325593618482290594543305278542876432807371869481351428056628690277636702273721523355816905321942193677075125696579031768618080803856606612010540625559839492870731170957320526796838807479577592214947625129644344204580564958040347991475003138661330313869218922998831388690455326778344431758581290587876348803622505415520323486660236994015681572602748779399271058702799610074334968876691814758110555155129511827326679394857393251270172647352587503371090823674684939698750562944361953672527084757461462664057330341643559544547843448724533816279414669993886440390329820451537064347279210751537883903727975429326905658270314968887952119669272204841340290499045786248070438504372547876981645955112674804650319089411781741475085474829225306791697839728590532668084053107671707201717459573779907206637036863979751794108608877019088109793562658329721890216498809375072117031879376687559197173908115542425457048590912827233396394995686158325967268493284181068159264916819113627514458398364106896525169648772606632364672272455691767124367383392065565635243423083087408867507561487670235093448997190904698257464092948294257733686313929016617565597482986146209428647430571106228554035099085805158521216149528196407285312672334020556428451213698498041409416320230827407368842142237990260487473079332953583853825392127489679839017619165940390501169850613343820426221822315686284782758177719177192016991413795964024293337767181872515232807725993695209484220209221615365221860088985235189224171278053441585008317109148143502217249830057120028765874097532373859969159419192098630152555404532155818281191081309181325928388568376404357644001705830170347232100819151968068415052745421884003813980520961712691849179029891963553180651168523602834280877483224298764762137813800082062968044825159053663311243574705805191380302160016282749275729973344161803953809274068967983785374150585821680489734933409623456179319652955740824053791425241826184395106160046732820246127950171828385300468286110997507487886767849762694487695018821177055452271474477980231972757733198386300141703151368697523663750703597292318604738300603386735508871448930871899279334054986511693000117477660582337250704029152722653302094078110828218173301117046379828121094992016169113627027613076033025816808049044547895956732174482340554131727929425539852654577694580065715970127596769780702277822463641767618313184741712298526763761547944473691917133082685379931504394337306791892828076276591213692052271130841228769826239557092237938669349293133593893105020783522011148947336237163960222435806067852412129097353819318267705308722259857611094086189203297484955219536118937893161802092880721381948350379170892382549373058502795612395460231887229011231973737034055590658808852062251932453378182577919941641833382292094618177937130993108841807920598395144961869597199123019785131215692324689807180620825635417232358586813374377008302223346314836976944743179279623334677934826080000507731027344001339903095290047995197178310855303433418819170661040281298339936659847296310426556194943821007281595137854627579619189462283981044094818043709271377305422245059352286121055846662534270051711912043126464248668625371066987323718837923568711301092965090379334595230416560482531926514992964084336760456655818224238161077874593807475281901724655093316734639220030607677708509877304499430796589252816082614730117746702507646384093421361862561044089825343307136593516400722802948476706501794433485770843082726907863940651386370624311255501137106001377650387867346534069168686406466444795248232539489536254525930879256726115312448823882126689781271286910774337211645296939542226258063519151570387912770181860162090549474569326494020497718059468228886842778939310770749587389101618403973152439152619977025245842560302242593547761727431287784897585830863366753374001796026648741387437721091927435088792549529839187958882968124100677718673994803290177362288926271957298077729499760815876550837812118871405859435063260011539523762688163269231900387022541898981327922359862289444665593297568496147612615063808892248219002366994268477398332499913051618778506574345465111945724231823964036358201847777250169857925409249773848761167094897838151784680649139484092969384748793933765239112542339023283165387515477849269743553248397235419347248178862725408546605936323536426105608092764868236732712499910443991208208632800794590153836371859421728580087219268440578535683027554329809927865950451227546577041868824924460600635655284113208145738811555333540105429946153271439759898883676078523217357374965898421526617995057586409225107942027635597255396369335045765718244396710830839337549168013722561152678164417170680590721019096455422402263335676596075869871147615664418792148767254762829878473167705225698530417763224315287692295678372465450615726692802210584487946497894289404795585588417891220387218495896790839745255991164396053341794553104146563712602664019852530490964822440681008928857274775472258677173583852565505000233575913162247218240929190332831257621870618453297391296281867948058613041657314987266730078070830878338086451912521348314462234400525958110041832748794526312112056645339535635999938837523768272260736172443912219689034996715542106072018968725321845609049790569657318353221852795425412502715178686521153596643303467703002508123547227230072276008046582700448191465108905054228783710576061562888083345485629179961696638544299469928118475250691645780405225342802771326061701060513775016148289362830631495803511239800300950173085427742876944924074637298227670923752551132306430660160365976255100901883930499157421739117604216566711003747964013438784973552027072476312294070466332886883849943246343277489603465703413096655429998164252588605926979928310431386415195314486457317897674514629568144651383705837447883881316282898224653337079406856559420300051634443852602026940451872152296317271796984676345490033519745441604782775472923783951280134928080923330742326535099947602859526013614206364712735738209439057123808840080484731287231021804487595184508760419662237891354405989251549545937227464137316172644876048691906821345127769398100303486222439286928672713542789529808801752009493271634954385461458809449112958675659247513200287165938873908282465580367189815410142705247942941187888522681245118279940227083499184731408829094386496431685283296988026370359601731022900183502892671639740308013489726386307521348962574160928473075892856487595619092859306384456045341497745115191733361895861588281855794413302915703297086094404168619671189813225437003553374141912174718876410525880156843599027306461286205072527856336642298433512903708675275164968702205562589705961518164019349058782682608059102059635790922700807235728805482254009760777629559428772341743479900006239141624352882881841911345962513930004990808332557712020766408915644652236953865366086603257013684323945751316486483656651041437802594659705523281272277704965156270660925881969633932151005268536362392960727763740979858298460080735158224020320852405080818899757097376104195000158450268588387876633279212190041620285561920814169159922373388244713814269354031488023579994464805155521169224938877395464379521961509248153695557797899868584910295512384733439024540152622008614141046478161287546706980904278101056901193195446717490583812620697460798452415186252290556119285201269831862609700310078135430442323433322303153647636180669538897826248012786534057726759574187505604200186838166212423446392751820125409268154989717159156991456819038427072965766073363858231324151861490731911930601720646200732914431573281819479540570273654374890486158540910372988577700412860314811041290744027204357525426429817080119092422852872091100535966939920537377534951694570435627273835649723892493505584102297324890485918648129887476920013346135887198560423849099841481773134933904345294018103997454378516376204840007613801608955433076015418525386030865772866601902695739692838363666720566400103871488764443464364874219263853614536301961773470988479843837168774214293276609572947678128501769063154605771046838814250465965251175899568051703224397674968454114961580243716395584541174491823975100301506314079154827818270579966639155086127549082530454104486082619082973830383142292367742322127739237447088140914431722416201858733102819700157195396613442375839452916867073682857148574615924316253693217245486274323844641593291551212034948844408333066011133603795031810532240779142691023095228647978668625363400397135826646587122643176496835490020723875981078043680361977989175446389299408070555317161855482457560911994590612664693583743960395780056856049334605772688604422879939133211505680351968022244652121848520263334613459810222651804843255420323624495179614481680498842426701557642060360225139498651775099706721728673869657357265835514395882706059932420480716448387794645487117920447397140401366094029475415089023971822576074406861762255105782445419229635356945232677745569926428289048967132696550361468444278576481091731184563202894346108877443863156174798738645964362494472500415162846670876691468447275193997958225334498754356803089211191880804629077461373575443465936286718634140419853793125384469860630997349029460752521923163867989506932715357679410399579302324981166076601220857827768539349143635527606697417143348392658172008499500780119118920363751606217903166915172215720561488819491947494573406056883809905940593593570649353089986850788420860289155780712045760285031517367843034371491502236193760366448298888589581447838717099894600503241033661271518391543290477406390139690441466942837492483153910160381216612935809841335158849561054933134914356475378257813121476137273421832107499979342990505965980420601787622142668110983106138088509255031174314864814846363223883491785386226687866095629639988689002756302476748520706508330104707743201432441061169164873515457165043309983949374203902476026483130688415385744338729656153343749278831826081838393343552951154283221002610766710944634765427808466268985336431598221084517250126645244604051923600736278324910332533841698612155251389849502797637255356298184681318600652326900066580366680248580062767707188283377013454771850432727402101103407981652027208723935068312986489025949808187796653901889965414193542370394085543645785358196137581206634598829353590157616374662132462118165680104132858242339341646958926843331552331950313598859138845402731020314557076773995088184734256610754713218076762325964595959306406845544805959345646911885867962974399495627040703336784640469622621402145804622655220088935872068721119732905417761559085989516038672617703574602734104753528981346611260665054394625208213080124463292804755585964364283900814020808844812182437326283026205369292166710670633178901651468292668686519366199659314725320867969228600077977833951932749270178259252986497192820301946935876447363416974703946266758018938982885966957489931592854062045818673668299549119522483919053805877233561798542750828533561727338075776190394332697878367921503574107216263993781712191913735278428841727795368649889214869455424423384804474491120652488112158673303889681460853149265876022543276520862183330758046282245092626213859601062107430670096780886037452109552123367829633847110783404759756466141261554432046782242258172599079177071938296409033855292543570022756068210535137808332631001073087365124797720060197950475979387725934348859923031070596371623169417013928197557266131586665062143975705980203041915406006458023544402526698142928388075763896925629661240099094526832175765479966184849200105689757784901908006198119456752312575299080417391314292373473621029143654606984018860351508877330319480350878298870273641899644055381160365872828566813469691494445609226984974448525968290388761490999395636334571055502365892024121828478226117499770369192451723172004035719836259856268848951719597124812704123496160013195504598887361565816499984058173291970979919072058362352136460834497498894302162004325153121146146882880610948438474308735127102649419132541774755052979877818054860532667057022815133423618169902644116480201275023968403396694031650935336255392039816747737339371927996320139701745395056282737836529204640277873215773732683549021441662933949120770836018788229269473335199932027700261075464315752328272359213383010660741372108509382250349403650008022761574086370006062912557227803948226825027924869468871886813223806374573160452344319889944331407987099544110519455985779801777193750400670296793507686457716464151715790754715610771356168194857963899157306435782354055747418090399754735390564565631143110650410958546079736984646578865252053680862610004673550351970985960131936365460754135027914214993786946641998351500553536347174588995934516550110291890196064570494024490657974168631465458787778214165778959583100603951666749412556749804586812490685211799985880018514774379593138257000641475444527572049519904222829980016967124489009726408574605342372924950653519147588281127844745680637435384921823883895447142548401924308091780777100463902929404918386014829370090750729623631353211169676018388930977919165751266781258882687757551666806425187044528080318615992153182063473960815333647588599059314453193682612613611190637848181327928514312350790353972400925511362238548198492567815451125873089642306610212916215286005288459997769870351076368117672298480953217330702075191739367514235848727650944601107454535773297643231954131796016913939854208364045655973960675025933071594511053389705679099812822323568641885505902966662052870121991696451747548690108411645410896302593143354519631804539125229500758974953700459885273199870636094949272869066752189164486472608433402615770090016288887803475841619668722618093903522307188490497289742911768098065295038466179884398812421512632113627264773294536415077870701007950401571486038848102631271825553200327815706440745582607767075506692940739338064591818099211652510745789868253431365405934781595416714453683945407053194017254906509138883577497613438926375737589846060021037695748648086274519916228827404703087694304790653071021718837408357184672770528770417894998539141587151768219946886699964471761628784409661671521011562385068828381409501037553268304993512943418709655998509090144791924820415690938884771927712795470967815619630016484728509932519859472150089159994237422673727957027982328016223588759281570310524667179109524899410839733139169689120333127889796534094826255875649169118230427920150862266207782806476518410474504665813890980150452634948445314156698521958574836712226501343558302630340394606360724582707618989285110304183001453617929160063050730781303077034161081414786042051926650971466066783666378960017969594491841583911009495826469602336400164687761459694850589117552710416857205736568170476862630331600426275599199289525852373088112000235294361071602026400236600756068259576276456493406194138303542967261764702753296116874029449644811964178452579465195556402127812142026875830548068131063148318724305266069894149310558325757620281137184782506230294811519059271841403509750279458966200358526933075501359043742993372510992076354586935072569476629010501803671542029999265343708441508137357816611665377086699247770355996399388829762500878440838267956612425868560595734810022846436935307558401040650507301201996549144993784362616203181606158441740098460906643817642504028580495351333854276333620930759718680046633800307435875552898729987895289311022862234520973627816366363462899022878592513105736938763602447482238696677439743791484324758168589166160579259182645998064730091654324827591570226491440999603029970911712425862971100316225518620377293443430624091552133089317182060490959778433313419795521195766784803398911545469697212748807858326577493537687343704018926281750994630711359869823456466962596049523571203551292108008020841919170773627083156040401265269250293437375664139634010083823796402387395340130018267826561381834843962725266417646873936725026406549385038265835064788377524201207670835619416909017614600882450613388862507426629184697397596058708030636983679275344391802013800312653859702390530999822240374631518940384731325397144214150001581920554195322422969120608998250668447914760810837502786418979110104837588242962002630998154667225697933910988001080703912713794372900036858267580837858824374700293764916044149213628964994282363712441540688490983311512487663346101850516848996915199078862171766565443369434372132351987252803085228200901410790695133630242073859774262479842200160190815840107169713288002816263673948293923284885029937757177937852555313074232403103775189183230658504634947257319798643384985100781758404415440724715147707262735053858340111061180957242625939867710105876417405182706914077139745293059504910082950390813969867043518841288643716712295666513683412593087721041932511001818174469886750864053030650866374558094479904083426551306393076227985232465072085190372503825293510879975874188379121848879429846728481793003964087861335434842961861132387571811536303337421122985319698346017204870320062533034125507914861008691939265977917232715524136361641836487959245855308977653821307500241515698492928105345643727765527752662072402481288571973912920119514277845569443768254228448363286947713581220147128799582743644753404993930169198088632643208286445604993425012264269052547280896962501529578334984137095888222662669193546536816336266821177890903311668654620530015908396771455985821195329585694551166479115151140003335929686803853219921678989977858495938126177672870075583954370570579265048724843036353948659515225749801532196563076250752970213303743517520757867092531480514954188291340547031835895369164306389540605070119824295215310378698598353457235806691080541105901509326457799906126157231236818643813478818401319413810080484530984153459594277620297152000809166950353785467846747026142844769238596449424512099910538163085918610176375526631279206811047811175503010744449980913307376271539110741752089681786219291129864053386553377480365288385402970809079587667347908616457735346385222606736905548295291123062759585211394475873861987098393513837754589434143129230989144112445235507274231371153497339039947439905893821462379526553642165203928178208576580850986560631962398872408408740115142427724890621814184481804871484427422489821699787972463110595005605276851979421908566520767726635297713288941363475215802172355516048430268664706360315921231813586971487373906834628852340541305229683518210883625706557097364528445792391980233111990216330690168595911060973671259780339188294029710887603053983203103426176916559487236033067214717413744399915645932279400396379302973199758579292452757410620530789369861156036619737281634720568332293489216271415317108299551775468283822905184193318552114081646464264128567692361685560506916250139775719767684753622274579439856114458703056377049214122552032701482986547300692188408292573408606149385308758060920143173051929412524296621082467462510958826749895365388635941015334112901112913134164577757225441295384010279462341388701698665138408117522250261596171896043941721800404099906986061398082900259194376922750997157195737995120949221168838403845652216213836715366076639226684182296722909979384549158325016424325455071543473742098160150034229237332137062970007043730712659426272968356071270892661260133669731532866949627053346168117738438782576907708096465934546323700205497068481129271173807210041474527598816680818791809143818491630785122428439970600786773943259214267002352009826369103958720801833138278366753431885971264629658889615086203373098167884886239679727733103546205381761877906832352243985176035269529426704335813419588015266694503169945251347269983031042550416811836849023871313185587013015945202316021947088469984907908305505945458911079519616676811193866231938513357433937441158739428574861536957937590094873106555016490155893352904923808492739084589962239344286000384997576994506295133571414884574670825941874730710065685923189898376100004509561901248336723893620820134724631129789200615076758315905114876736950788666348850026691688915332043054007209442036713886942642715048066397987534730622364176258152523808046149202343077383582759410686725913137205459776288911675615854754002188435956778856493252982161821824128225256718176909653955934981969005396906508240322588859888506945641908234107437853448478233810578838600163254313659161428886756911744206313998553201596253511357754588551465881479510854037132446896573268191713577589564416897326683766242552334093619053914595781798216781532313631092146383290535700521247165389399093779002697786284639666799574193047636973250147305339902379626228196105295721991594029596280016798918550932496717174827321748390608118293625385201868912389868686161290699961944129449958205596631887436442020173266396246691776918305187735997130359820769361615834581336449841710916082869027229632755499701137987935726154802842609264231147328030771383308934168906233743345925915553340679991103832560191814660117524293229339223896738018233410783605501836693119006069240633271115085588043526694524655969243743512225022403640862068809129252924357666277038774317044688320021027326857302359077631583951817916999150573597965775144917424581596998493724792407588562715568922365310097956854639939176468790866747219609195923857575714256190429954651241610379071203347248919726383287593836975464701672662430915917048938365961474597065477226959299788397041239588824886515877842238957224140673755547162851761519916367495895905569235832225730082763051943776263359943995566513129886383827372813983034513298862941445673067912425118780389155876122504646071296498300661641369388495342163080309412157994267186876695446028815343830474295300584128012630319139531865805585418259020758348124186417970477224233680575148640476442909923866467905377235695378045335323969838359571330240028363171588629372875353096755410791302843363119720602687786923636252333229498355944675032852477549501203965837832985364785045593573055974037455135621206779611202393397988958399427647174735916768371585780762667339127153580614758175785785574055733739173475585160836835444979219806883408710016730879866287289863408287161784357356561848166243865508315680193128590768716657815843616682471174971091642161246474250805792388879715527593767864264116980553076014708369203961801639361592730275827182638424685029328545266162570383878998944965652730895342053638254657935799888249195387615880729383881300098462964838039819500765236358709501818005599656993895789332108176864361950494136136589997548549154525227114050598326526967919566158355801578437956884369002013593731272840182512488824869022306655972806650325561958351677637152499168339384716682293562425939999941064019807260624393437698236891124656733698628246918148956580460222764530316881942586354019130696632965290648267477862355105164850937205004422022242234840982699306796371642001787639227342913285147664153083040040104340605627921790240174579242906717736547774915163571115812491187994571896938619193657969909546341594814387233779614370409216233594918899087676680798077708618213365642285894466188471154481495588533425846940672753234550311012094582441730130664473021971630390717024524319807004594204817664323377727233395931816602532317836541692865681280364937707110706160794991111910250603664688347064757688119367905919187479422309665574610334600757415529536171719615617478680242589468301248826363589583415387083550840436786543809327506898177280594325981178133671222820645913986254685908535460094394183344342682447064437251114807438826140179457223219508558552684539970614271544724922441440787704974550965407581427159995800274581859275412440782847795826921130489052739783421453187300941583235448144860068704509305602011702117679516028513035350524071999479417942695942178356791602368444574841624906945522530094323619613887441584485851522449341169525086506771753720674602230632978367848576388923519728306953943107446345254380238099624930983113069967096800336488466386222059059121096529344189272087438701726653345202331102514161555577607260692459047065694095155435194399354066550592572657878129809562198791313493715810197201493255873872233660918697612600336610448680102177714767422121220885678378138206474068636738180173912610270620329966335549172631234120272617177681274294786587667965529655903035936641425476159125988705824379786749986156432234016970077343304164337947851671596225698079996888575847717314373539854422532744667210874693605700347584063165147480681435890444723553598282019852787979164973603237500936330840857111029294953748546698137254495492519945708996676808962803561090432890147015230338946139419185424367945211221399694848884533778535603626595728668003722917352061436103743944425607051615414986435216762464426299183012802717435807360070853889579009919998499828375525620949817895677787332848278692899451544233106072923439657894657227286075772445713459283496420575072135207304358643799582089431571263102221894810138461817254763685437238028234838197793449896139565233578743693006987829497741103776299923738163872676369674556017007761499870008432666567997575572763804960815996350310389322240982201329865357670574486985695464047381052054154497800842209153452454318800757022052453434843378925873573526566407793577627665080058202145370482068502070905768809996868148893753128422497505617786227451012944057854184921528378300872200731440394519053734035984743893659727825380058138006426692766033885561093296419358853164018395552361458727263092947971296012165825563276647939570051645546564511207628740935549754064299530565320729826311898873999115815290664948152903837199715633871076552138239198824547162823659828483006469507246928105175195751497820244590362356374999337147295664924599547764936252497867996590214543561817210097859627832032376678990126689045731098460310834056286099622855747430660368820694060736546540711898708718174382221905061974508554332198542089556041511241562886850412766289153866893637242123850805256144601445798187448568736311312881956728056410177073215916058687301458654664083060741842668823371587486349226563236027336162136897452016643572329812013583601821906933974659742740488973792069557720681719679610466386420367140663849437130037028273230709283281423485500080814231839323841346063993276742847425219402737028378137850994949187723670590550389562025175711629412992908742786094917594488034538152999614528108339341831879884297142377618918491615038240739439686282754718400655091746010675480794371212960112445047052483954020862685259185764625637676261998028015443396616138338843254103264345156277277474252337178572006127405063845320751716087251127798528335053112264873820736108971447188698467318565736159655915993513402868074844306147700506104183083192853493120494135362787089348059482456271705530622371548055007823173002608290323155571146304315822303498733042250948192427108215525605931531199860248191499760099624030074082550068247329713940719719339188140843673178636422122193184268403575365764038417938134910897517654039122016485137999107870247905200431132389596139638429351167961752637564864614331633490138635195993433361839294658089447624134428892658277572496966545494512655006711292885256632641845247273376575404472232173677652143174575498258241013419421220746144515339124614067123994248058387962258327965400533079886356595011981925095416023238416768632319946585144774650724975266230188682020007950651161007304678906383240977088850606867606261739164264566856661769450791289308449925077980101459065009028144726663760670792666181966431206025880615898101520119626578226703142808029228587163915426142585175064693402843918899250820153862813534071003815167982569382905356793047302647843340146999566314198919607936086510896683305045845396274395122802398101276046648995800522545951018571152542528575492605072474112879478616008504604945893532554498041032982704278461421225554674371898998453801785494557511099660764250898810612801494629758111327296083128738982959938941474574719574513685629141157845663088491943497442673044253813509829973334820006878010809325688975013350995304415697020404260690611609142211088716175481545118484172417702994170595833524224876753709405984377357413419031184802056824230238103909955262572674537559503668536787138567087284986286344317472641217309443727327634169171656329969051744675346397750347352000296903762058264684838971694547610666410253849027250729959066770078855187989152834169903542275459766223618065330332660579566293498613999638609832646652451462146953316583253192813047220590515280549724773059755136423087886287316938429246153959719560254179357382204096436428870585538541291309556768965998891853519838867889496855957358689741344637446706622237391656868483213549973716082224876986897183413629976498598397361776796028178099598043863206606860690954335997830323958065890654028693064678941322019357901851317075099010690638852315797798296895782490853810489390762661904830454227309011429050017662789685479684483140476996143141482337722403378391374508760468323785527823578301952708610883406794471739274897913178642799918176967332572887422290698632986535822928419338359824060337284822799223450686691050138966694299731501529982547068635512213624671311933680730862326829138641271937124772994278311799930084645060148550390013427996901908796644872313705706748088929235382953642215009115721746177976674882153729462071119857695499534201460722676201013358896763774540752615565582805379100089917808609332152215121337634730132563989666865039970643812762980968231597482166071811801876630739960820623154457995934007247928983286224692318232032673319794691262903057102034427728265783212995984601734591380026638622505885837150286039563508872732636097136254814957452139575160240101268601120906388559619973454050785140965956756767021588821207188442788806465056126412038451267616004684995544064554923823901271351415428286526562135509919185854602762538644287795109103891581378028285709595896162288260462354342005885315242079482431204616447662366348136441814585605454141469811779514586655144849682333916532605683319865570916812939431434143911831217124906041204861634784655927768666127486574478969919310071247065377731792799707813423477308469486276300228027519978578792305267476904336152566218345339098230072527118868812431459123667108628679048394382355498214641949127476854215286780522537650424624233037273303552529969148463104177590697608018238857454184344587144746700534868364627802937652293003575853464648608354640826620269687585870006136898193670022345330394802998780148130885820076640553326154062354038175775382010384490101472770220171096912726057255938505968860819265432708377134615501405421987022446002936026877655774598085227211209665112329276954317589692485878995161352856087548589147707834615951368507249510048060961651963500786145429293338119675027952192165777897998058022192848651308942053142083448002458346077571984345705910558854960753174375188030608631209013195714470243603459735979871279869432779996329531900275878013680268457622829568805820651702994786523946149431179023226135902734503466350857680506701068223252639411337128521879509179968056848122960697437686441097950805827219871730273923520906505798902947807677243060298826799616508910531302749108172046183773628878035896536808501184109188570558414766031365504541690479061134301358859475105562467197204042414239057445434523447835333407363564496567830763787225002599599564456049337592083053062463388265054287014135045544289514345403937271942881334519840594120805939217766479267439774998877118544059861270232969355813021036033959915996659911095510387285922418017589086571061344644789671429436916443762323791300763919416543099325780276466652260652216716477687896997460101731263358057654554486987306494784091662778247131328180997547014522498012220614694981528965415847250641693873951583720803046304355030966758026507042978686654331686122179851704231244347562107021586804671660173219107326164363345754909599191108418471210460342525863500720583858010577422196684691847966146800588094596763609736073873097582262527904612914915913131390923305429632301382028980912514788728388195318726275075292228221983437907414165985432518351937056828769598887496398667660350127494423247601803656797926315314937767284034256577782051536396239772897126443584967110331060232609235911117970644513404295004749864072857329892923207984163517690029616299680043537077765489892893457814813440799151982698706380075232751598468004730635710130049048544031735836311645224705568886137020799523198063774657990415025576382033682406488161466071032956193356459456646203115897949812352015817379469206189256629089458495806137355277465461408163290422659215990902818415495263343472801178327814618821289350310257465772576363070599300095632638381396048284587074280146823869059549951595540205523746502612761621946492322692611784685743338527483935396029778676368827344884279415594262780157647275609676386890939159998374673170902890704932453407277766233734868705809961173598172014449857404376062814099414844495725836923553080501237051038041328145539987951330122905568673855602904069580870488020574087240845288660509444263443863146301537578964646249596510339932805461296833738314581822158206043936241194504866697010559534620967683299872636677289641313433461849877154151462032709758513132314698529262965698626625705740454422349137597400135264120014380919409589018237790920655857071144027644224476744595311212325388492103708622089964100538455809213839852774997974975880046363192749212734666715225445624842311643704665797162672923413031097566866333265616857072620589534611837269193524362928544775290999531537725729406281769047501206987335784809822237470582758969028824902916595344463713362576884160502541161088485289056554956369243106343858346121746296173019498444582242108916288056468015669853702045331099081451526850922842735651095163733670107445886091749116840146789500972814944566104233266087664467494766834557047458010833459800424809589999184533895398797496883593795629430355240013857733873567857092497440642307462304151341988486735383229269602912764178954285264558750101484710905914421686378585721149315327220459626587330123949598392144413999616273552241613084803386517235608062473771240515513322883486370411883785846316976299890992188209185020067988339191862168981861214399375382585722745126018042964294985627244174263704898120546171227592643972324300581385979637885699186620899483380524012625264092255596122444197940252977208369483637980010081284714047466352053316798811112684903054940116069858118108614700378668097160712422574275844346835059020599269569316094017796754406571113565329257652903108212408908585655126236834345564757963260070478577536290727976900727383960624578125454020883254010188045081988638370983096415009524490144345189809347837597981017923094495432570148078918880597979275400715556321258260328294350540744220489645881314565116516814175348450256620610211302079541840530342751614687255189713596503261725435147164464063420588637095441927429982535111681369876921666294406977221127654982045379621176073564142691953669779474793151793735388838264422206359796632376910102691061572944873618134756152542983961768925128880965243686030762376605909292147264380363426122733363852330468504786574767331484268200978288433970293375413375924981635074315524904357944098076141510583704254433679402290642804419410858460552581325058541322242524586620166342638868635192429613130572994582334111220008861595963080197908648539627719820933427277671821352623568476296687613226092905546595186951287430552074901493354641275430113216352834227266449297231315752091267566573236427633000003225006188819512406141879538711356721534321065246389116869146393464746421936565924107631101732617092576632921649536505225334804831571113289772540829717837267349166194973401314697663027923200076902325373536930015687910084522366538960988926047425468075587051951867983881649091010301190793541788872348214173970020396322033322520038563961425164055855671271541462643194332144842231962536595240287002228040592286282632198680949751123895821018994457649404621242720497543567633182344382777051262810708523174011037470185644240292807693625430768151672923080812367339424837150324743960725387335328012225291903530379113071313205104921066712258719446566938525563517315501858949249184369084127884868041812185617098546889870333697792528910993789929141391179749108299994772201824113206114768440173333409566684389213048492857787165075539849122631330645441522195577799562564354308715708602301037665437511520079720957048348176807099351326194588159150325247325090923485997337728570867025523700583125361401007202107008321088661197667541491183839157279403542397320592117678579468305793265799137713063694668345328416195111563601296519481616282635308871842910680585182570097502447287616425446763973115583276711572009972989353197195722460741270858799212209711759348481697753156590689444355553761500156046002040233752892001215139550658046816480568854932974135504239186508369245352265201384677485712653836156369681797684876508105179290029311951982917545234399940401748948650609241910567878159893714762548695519862106738806032545321558197922034370327403204697318009885890210988170809244574460102405779770401817140331200597814570596658719700393662758734043493853513260542605057118375202076474147728992877360281612034022386800832487532811770484391912715383967003178141019075535813115420215074328888031569735898656109761694485042323654845118268634230227597886252876479747165264049222307524567174295396760064429315587325475851143928897873862754387010739553012303390860849833037957376564447844689108736568382819485216002173347826752182985416510565830154224723342156948296139771950881616178691276822907737068779636710846842499283428971245045009025641296798904603687168742371477183720186017357372608419561117685378983579827864521267353792279899780225137495212649698190963617175178606883024714745895020966791507087947540154606858937277496334560861843330380565721400541272977603254085163948294101583354561393023145690054882214884132161638836578297854640033892437651130267239544951731387265605531695716230284430932857911793437323645413412071331575617838002146480134754996429903400948854692042491505942357946506031781883576225818794384960655927197711950023790251626136266719148613438271853813950475901785963267416416094379203741723521098636109204806424039094054219342960606698474523321302574663663134032470839823320969560465135202681676384285550451441261519798912303678796193033899551894973589204084616846997814281515627777407169133237079423914996534802492494038937244248693406445357698092311155931120218426087527849047275801497749245152973197285746105688738775608935533001612567222110314463720709430889525712312813515065314176972269736871514282739905611534185671318965242404531322793616811798312035965166737688204730775610618477895724862898950512484195455146441340898397808847424332732232967078022528913023453203317193941156609376883109922117248172501176584142245801884226872514388722439934203615462977815519962285480013003204382926020158662697189968435026370823889084198565860870978276260024188769534905032634897056150176908745150181965447076930748689920244257489319643421754985522134617418535835386058238591622308930912702824828242647284826198474332376478592800247067898249332210865332856867994691273256739719196494827106640607406073600802492613930184633454631323661532561787680136003763798838344649372550561382408348397481392148602698303000400575706597526212575931635382225586352236360367821630521507754467674538122725659719634984078197479466454534571856110638895337842923531715370775889814839299350949581943791528415954123799536031047982260278786668117450991117218557428101256446325405802889983585800388664381480436255534753230085542710159293755158681355654619052255773755077541694379935984768863352444037983090735287520723133937818582036768526037797741398186091102981761453667202022125150336873455869990333047256214066070889550920146219845787272327255010455975249224169793226976100697999159034278378480839368245722498641254832043264607827804725815028174850674561959944406084107839617994649455823215332244357040160256755181125643055153295547721900898529736229843906017618828177557326241714390884520767583025505261883823533438953409439565188606386679861181202724776605150428602832542995582924063132751323964661601365949805428201845692118227239592259234157243596380183845522313855666657404060861179592159943561281679317729715831888165037666041955963653910630261233815300602443127081653408761248072756299084170747309327599442617585671154307605641617144524169546513077564449293835430905821400916076749955286063834805516033572669385236230408940933812217698887468535403971704643719473943670924361496086363325409666156518255935897629097419420408641352793330100470729199364001982923455708873543372581089669450642515816690982826352685415493500168839332713873593711254460731982919097565038908842226953560790836830044825107231743071704425705968377721176302806573540449846677543310904902606527294900427769491571955194306754333250781447146210741377125137988090027866612573207923818281196277586483454660468761229931541527941021989369545832269193891765007870711361238015698425955949187728280008945390654742290404543126717562032189994086309730927961672030631017027477564329041118732749923906001845631127878926771347300982620037720240350309346162738922584584277307051090133748835332336304267213944628773947262096667718772177553956771945901882389487359409959360373465170409593113965069059779183808281070228428092194588942242386804580183855201661458109803041607173697161102754519989421591059314283067268722992340624703459766169498367995602952395613681931902209555702031237864032086910371077168887302679588649579632762956308846834885906029979462184500649852129114112861933925229007612599146857872576431077578140341265618151975221399456917458207841993034130536801831423626195978862702547793829096537935768845214518481478250008739162758147728754523615486211291706356498645966344155341077635372934858992173169249116204362112318716367004180079711515524137647127721863292301307511654254495764069759048083056845291156054074005201277603418670319413618069091357486282659432986072425065614252708292475101815026655298466313400987142115425201982983297820821420044820207054349382937521109429756316280394674860849359500773611098118544424743960192129575262748011998494067687762934097352182741683201607295956817280902662598998687878825173516982019349569030300448045153919669704040022160088655644160703726061055733968968792390308211740393970866716699186977149873467499945084621284011910018908581839744192795471120353751347277491961251478019755439989071483616636099482788389939682200772587060760622531102946026698990061996830177772276501656018914953644632134487974927633244573941019158037050402770955198382432146291438879089590771720872984772531664023017860905252438499526921034296899763464867560494268354066145777853060053454916944347580945306574342695630150024263554411989711348377528936550608765116938186065980650730107342636783292876584704786238142486982135896234691676155645305448373723462537641364300085600606025749136859883944682272857006051537356814198953899057321821216925134710985835739442918417231077594387573776604625918872901092595667715868265920964041118823822208542571093720828296613155022045976482293399709913532311749784683527128012984813575150349288705456668214251253300157646783083353438115716447256551219337969419319944736222585158271834076686922650707503208464696827171708958094180811025542168607867787716158087900320276488524391770830360682024092236032790492166857576973041469100219336026075468645338724746067406487929334472766363975279477536043280765972579506307578475761180184570578308206853739636439804904760157855080828285575216845449276477739647000112562615301614967450168832223495229274843974491693356382757699226831458473903608108591187822366894366501474640512072091134999327681513044578818414011466849168796795878075301700757750582386093502677514802111631559125265812282011381933323870764711199541832479081734737778165456711549048698171802077031055901577187051467500089314091739279824200715039538142844590388919383603935644045988746394074845468797142286388104692316416862675700130136022512803327416174014302936638587653027513096148423781975547618973745582161673621730624669981488371495843586394413408537134240151231482903885608079069940061255890799596072078103531306558026010480388829732078239972291782604368976320296038121144423633695817311732941540834733764202999692937656577214918265676870993444322123273829461679194248619689891442108031638634709860512277628089373595482001503493679906803464705878408815270965516026302108026471961665741294745714949709696034268030917785974470784666501827167072963177882108932526960630929396400858294076110134452931723677104724020222934712413183921122798307307768418699497035096575557119112831567084411243450268786535929092158131945042791487670225394211740967148942799443142810113545885672767428919695850767015113605564660584143774623162798383457831318304915978791613553400551577386213262497168373163920213048968390961273954032282126472661640920677042290672248917081952282065017775518077679106500064266479981385740403279860402507393904114641617753663186152319381376556905508886131079900413726232366974578277608756777456660700497331141690349367568440210139529737404656513945292199895635266136031718453278463746887752770793511351599748912824943706603844510705554729499799594274243790055141471149350411347544835947765521833540917733942026398271284085500354390958188753213040436215409558729369311780082503906928278026296235310156747558063372679888628901380599549668045795066082407760367812170435945452049842081405340433970330888702976976516566492673871989523016389443158626927472756166505481338814712712597746049908286793303707835313241736762203281010077801565740628225003941133171851975103003868419137058702077597840754732538556953476868360285490664710805750723998223817478567173722351486822397504305237003893891425601083522846847171205296052804861209616211771124355546090463849911798224477037274893767425140949987814565972322589193886487016614765204497038358631637071166163456163092110954448447979554138209087998431275219290432791644168713065560075071979925716047371964557920529727994887588725061788205020603712663830546790380283945969205380233708628289382276668770030258451834403074066842970746011152610692968573047692605649629869901123581019199628845008629437471650873928056292308410512750575917510675904741644869314200131922894279181286996991091626912793653612629720570008618815665132783679537253697163738717462375285940926439634548360540923899684760532320096821255424830384181047918536966583948572519459598583058124093455630771727584565198924016324949996389542708913784763074686022059938480818499571291654060252629731984651622039867547006230491154988620173348944239912463523453886155201787681060789922694681323005210127923576830332012877195457310485988042978829434923287581644320540898797439025272176752819636336269918414066633978008478637524297932452345578513573194260020843253621534361508424547318223490751281666490947891605706523808636998710472518555829007508347241444494742964646400428034731569781720769479201322539872338076979665844744677408794659616223015481652842403262805110244276758321136374843285915076067787553555823490916926638713260059065491308395632630815813780831197711543525852888924659371084755514060290066146426716223741363720947639957265135921550502153922586611923840036849571610004397552884235701294780322425501920589457781450285638475776824361434313370304096454191296999521803565262401439802986248918869107865311554573361192804454217079820738951045128295613314244263964361647186984983845745897606824635468777665732219768503617167560964869704353848077241603369255415001118150174353585617856757083687329088566034421628332523959216581059427775957600818143286173284300156067782599611558561611239804269088406836802615451120036331997307868724800064054181680055152422513407054658117377620997250481683385298913941332518717249239308840067046153630993365056655756351364454413812705894747157214922293209728612066550233895664766263010540557626119595349172829529081441140891477031968328368460618263422747117655400823270185278696571675264950939789217881406493592214231869562983777463014348807271333032183193014167324507763862314447626082905013269423292044798129459440631462333125699266903759783163402350351862904488367079041038532597410540033797149854058561743337549057435687986316443865738681209738408841855483832990665871266651424829629801542660567879194006039687196272870869034768174818792293310505232102352269364592940049840494151231726838884835498203175241881773646016491458986021544448809242984413494080534452130810364870898047483782320309030089322765392165089190138802585481035585642339934449787717539406609455852963277824179019971717177899536673875443682861093352270880709186399854808899232782211959958121119423599814154730890733508021674310459352748339616424194071648301528293288156737298771219412442762946075142459082749339404223843848570162802759213945200491835728233278843968136432159590849194327441828571409947953210301313332123904560206578260012211659509228959915839809587202394283027254099568883836411808760473324559668679199719114378356526170384607401849681087361969206939519885060049151192183117477079066157049468447201698708012118221997635365606086331464714238773421194460624252994782908123094118310751558247387298110046472227992723611125585795602640046592957314075171981216020950006312841439695968220859416613079766775116615142177306961302299443128434590709469721367284866996885643931710882669839842839383658913870190432190529358126901091363360753094658563804999778898699016464895883493196988077219762390535493315181168053689830931129137624482383102328630145299842770169961349460723872260636439925162931135873970185461981634384953022957937471104786212124516343274829901438709119072841124111729266666378870628552837480348855906305913935031343209633795517014540547521394173688886875362652531655377580822119581612067953331416002390760217625989506448710844750599299079332022098860563980308300884327131159523778707766747807027277589581625662460690469305425691862562956995630179987060560467478980087345931796807709901432651688002659848563906900542934086609935414947636312550070219898265594994508259820008090567714826432677357141192731901595455642845388262364100287970947049323978546332775975832285456360198128715374942796133208698730651617000590539261771276934882886620570431771766873337907558255981449168597580928365596228019778484558629956724245733497078594512347594862697235958745615924765185373676749329506359973346646718930052991611623331784701985958736938311176165535424457299476804128408034187937834254080947577233509657189744947572993092706932075663371674144381647736388224664085661242173435132889476558026257534363542116567857161465539791097265541437050844179768234385190758831033922094642034119671700415289674507246955517788651380419658488230908136585159625049559978261126154565503079117702782138365974919502752844192135208627089240610160535912011539753461483906348002773396563355945761375882684749433799335495415394563098846292413079658017545514258132867028320382229414108784542715163172388770838185738469958621069983628486389333671719921165999403870270264382211595065187513723232202347034320279069668124919067222255572836293517336232796322027480114185610505879378717530944481206930678919591420210158374220180367300416654421947676254173343034800250584856204201634105271113499343009578361893362308918233437330906517856651994109671119771393710082621719947799703789210231356028458597994319039292727417422904238007391226790671995144179646856929018849209029765146981995258695814734344839529974066382758962234482866643514071049583408012500246982078287394530014572665004379801645105284899271509070278424465567574004070417889701940991498130922669700020124627405549444364662862374177558636577180681015585451663473661109440978611561254043851304572822557751531881413614141856993239049031074308158675487560271272226464573423565530229896868296265422397667432269134930294496662954167707469719497554708298200059290028213784076870901840970138504548024285648369064234992369470293562303718909166647035876420665757730215141192967894297902500114642938343635704832409711073048628872919447927114234890932821952812439704170422441826625574342235073330380758768343592122627563639885575482762515589816526846336092120693377083115959930322742138039423561402548602575747130427936468646688499779762643542376295685198225581999145794927404015943807552803426619481551893430317145341567624677789661420718793289217971039610880160756066298327693271182961023883590896130582542854143317891694021160422601684902442585897787350513156703574688154750571265224770462017072787771563552836544478722167956849539879063650956738143982866244645195570097320716431292281178485170775584102826371203970044231411606646750489321803406519441401377232492622596626693262671337082847892949673039564512015670779749729673575045744025913247893239209415884538296858864519891803962409872917879445895455261143992661961970460986086509519485272034237670907922946710766435607980013329460214346007501314407603954295680654129146716455065899289112331541186880610469222517172271110436784019036476485705019387730017264469907160426880943747017791449788957597346623282438723853695225301333506174320530836704139364033725886554041540726412704181340033054221053494393161407556933459949826503336240863405443433069160144322645312960845791975763111452963583952949093365817972114841622331701514496360154133026165129603202123157642998301233628305198088210350141681529869403849897179105576280893138612690527993837615179602006423397566210943198859348715942795026875439504845491820755979141007634727846405677938470921400158595987775228479454442334694872717580765062481326639820553822643399545623898548542092531304568443193940454902080720702025306559183201679004861729211007809075294501092470335350770715774491228705005285222002716162517703228304544170815694938316088352705540219738526626546669328174919385883169539688892583226488083422205126732147066206698326482640316074265875536750992388721182359664417883411676244456107050399595963456135769268319096437632219663592445219483355457448258020037628691645194176810293969918579972019057683409513214731016605717204893807511755651020156248209142909361655949314041704980581206988477527017384054690425730450337976993275447873436090534797311621039861487728333971161366856592493447704669422645460496016008812391592545348273924714464347825741628382376878052912775360775730473274081317642610986756245493538758354611772507178858854327457039030360037528122570312173671528870994346742378858236303548986278897552846633173947514484030342199229402694637585659635558886645128353229638444045459394126757788374445295931377212747409300494644479366555526834919221404118163457694130441097453145554268245428791320324723821837226065456832381506831157655574050046889033126966165181376983829129325206948143192620941595406331315762906286974888424459648981358101109730168005885970736459066950387788375382188087767316230027790485314221550363693412197102295862593212052232581239503792686395821157522028413802788315465084610554502051815272291636094274766761293394573561863736029110818144021606123497914813659575897218383220876340331461619636987166784442183380997563011222434110012554059902419397428730784862301557075487972239509196842095314630347400908906289449555004276998005883175921762863072481521080660859092586278771573939174637687702831977867125664468453616355609618828515183093807490291724451810978257571058339029332235331036038661122619978062003926527790742914736225289692520864883396357318330082752408992218045297551551060729361059281746114205373402793525552573516331242516474968537973697777780112291740302879940329947863016926786061034591522199709703210830856378674566823106258352212928943421610029454323306159978182713503525705262133294840920961812066442576780965999801909324135023160780924750021782457280188443508906195607944752745397955936942656378909067503530035120698837594893498086349361447301014393028971120275523140959685351272124312116353974859715403899157540861859955060823883784351719317460742717753567663664628051951748737975754552472773786008054729496486349213413085573658928875703708424950395304082083860505981623677674847423484844639538900831299892990722607055029508849561586264153982314731414894045515763174516758628318445585476012722052431067450004106374555224683335951802541147727412001923487588291689296610425096633321133963753315986383195560616157971560145410247715443897997105561022164915568935598365251660292180328384690509813509764422933478258299287246350942644524655996652720367827398268389253626647256229880387932584424845992446200530462024258983524554683223909265310635774386753597028088397304282145659867329201293759856401348957059504523017025859824707900879566879618775492229961015838023717030404066545498179059502445754437797693550188005580763429641858264465447659464589379698459992152175794652913557063370390227323613183842340118260072119333156401414690427369260613033990773291094092972477762965386415063210713580090171096873619052854465903501054645444829109173438095750615364733392077251313659123248566640421638778584971228461477103916940733483715774386788332708619300775365892181819476953643391927922705619296079910000143255413282837364135771286007218421270463922172317250935500406961856590966351983237371345169962083334118214218485857774302674063574592517524363942183206574758089500527419274049421114742441190761724117555920194973789241971934935071281408141372129385716335915446841251245152765611831718162317393501612219221793468958896807722046559385645790607727976620644152696417584484663218236795719762257945125615085437837254047321877426398645830713776255547875244162410727034814794296831033077568998839912592886790711365886119076150575965086630973041647339301960619338967708492524007108941369871121144704204760946459572012156234049034565479438279133768898689914623971678959385945227152301433094670833606009582963422805442546015094340737338549505686832653375941313429233935946565229142480336000531855214397489282509313464269211800411295745988466514941378993566555003456967617200775290164731685163801018710638535247126213150196534539506845114670709009121843239708740357417844005090864826208963915529904272766300465544139064759190287517755425792255240758437247202175478667268262099156539770238754796235807273930948617646521696943295761759827091091895914270015792451687186834077365686473796897271158311114557332153404263253484528734556741363879499778721209900699584680451344865929328871618184602623072519121634362902563819395348986461741186989113368722844183739548228918622389189214938469595517128555290518393571076021698072722294648858253344474412210297613322555734070595464727168625260697908188752671386428310216846588596766593710714439322745891563560801280992514534361757292419389429323486390427587520929247027650440189358855418044168161028224443558178510804666482458869888779976058167623791210953921845052643347232201765442400631375189817582329403318110734911495316389733827439278498601995148687500374092421273447728599670177475180840281091666234802540210637050740352357169510459441715825064777877295292702020063921944486543249844690164768473554444697440042598103561446326740619441275074106873923773027808966897162059333555555457094802987684093589858815394662446608614229827400596194072407205772344047492937193521561005431862036185391039096322668633761171195240093821910367106939796999991721199185149332705176811425449825067349510515841306912704003506151372319801753582246538859237743689135756755889536343636697746145620530693610805416900772406336365228481174343794621167774280296307766321687739494861667183263338717208475282557207031275053086320549154462720422451378140879230258311266051490554852908702006513503492939785222237311505066012278021433310392784853870202948224716290551385352814781038087579465609626972163368393374490982308208272928324231027256155316390176285307978118640540026260632731237316127884412666556112011029050895579351440800567614305950685350172168720816749534419598382292538519399972786582558913220194473549598629160379888444060836966347028756490975376172031472207658061319743499846826975190265247645376004806251719906141962798439136817268988121281961019605678885185830815294930869811629378486818765459044127909942141720325748888373123268423140814205108526103189602101855103534801586581954427286084818552313106375465222884375088233464108129536385548075108053863502639879052742707372481714029496767214802120194986373981413476302372027904856059530662235371463332871853671831083796097365728929453325246553832300913446083842973374483586029023112762735574868519575640799878162415812398660914946979223570731112707387312315177888173602636009366003893285705894899171687995957451637342671556724710209454504335715172854067547884730094981587235114953658321693854535793844211859264418522130555806794380510908604169093764298982144957767294688183168639873746837811854001960535615628054674062660049229300266495135033553675981604750258707799328419163225941474520331776281055198387137394808550869068520839789030962338139046667817054547484480431874549674268839162238681493103259658682969448211934593766224401539688898736104628080967017105655880612596820106219000907084794732190486057632233103401684301793400136493223209572284928934436575842962196225176651140821376597981174839646239372815569833411817210192131728722945580094580565849637413477406967268070687872785936302701383030603659102233362211509511601034027038856651886236372265615379066610709134593488117005863974409717645195282702480332526265050333500895035938571881029022732069415669959757928186979206001078943432046976451667619327204128451362405231911509579981277521527382548622424927098742376545917336028336179218328403281124340719209072463952960016825577626180839121159874982860267917275750164816498082173496987539643349012414543350605083705215080382944653164356139602652463362982173117368409564881078229809745499598326606972538688129957515358700929144571114499630852837264113149464436636175954749683822067277023511225466631841634023548990521528614526278894468031401487963732352806569353394285808911087262313232609951883152724357668870345680390397159048022503122142784423729536741229229436026498199251450577439611592840063260990173785340724381630358818031515995404081831871406101446688585508009891234977296751189785062725369429302058942878037054296448092746087842534663786959032917913060987372966303167159340271373424861749449670085364260266518594412740784331652383419374319325267997380388493003140376284121652873924619475590767489947833116744734213949924482859773614099798540599333366943298473929259962394648119343988956524098115112242495440660224489903644053801706935573738714532975787775940384762644868772995559534493738746807667468085553181939533335041190683914781899814960900712160085611599507234557417112832394462398963955424109585108405203204879871558087755984375151883091207211160695803279368274802300174486475112380313773110802814895280745336973384158306715734503424891503748927311874161441350237616515611264158870193027959471251483420376303667510968993330735251033396005211762145236798896801336333820399512656524208092158929395976539941278906305030651725019758047085114923447715754026468495452289827996742712408287173676583231802105215054131819045555251013925202559197381119575360904305223619155792966394534665068138486417981110621507014303773230666514727511019978038465117244882995399162296757701913135467054366077160639519029522332133126420315513883128251996981981466263407892833164651885980032830351125470021592354373049757062627546106716872501857730636964847098452026928217659778398768498301521201561680729951425178694707032684593749368568201488729462476952562610014697380068225236696195210379563503983381316756951660684136004057303658399272715753458442566100362147832003838696268550914426310994421502463130137588804612496447702873460933677107626413916476611568169090890329216194265147104535258585412683072198598925597020168184747259267037117982489150380231678409173460472483527650343403329826544741619236780485680309381670368280951397491817441827880738503799132564145881240878143339768828476570173699977262322454843151758062208427152708162002588112645268559634856036985265423559136936389942293877597390590618363805971779673402386720836152434303167131032315558990154081216013355582723344288492311155352668545494582549517316259408430501554460032931032412219173933272477541966832212436471524794891250621236496202846508595775970826248695791583737166165591481920932709003757534799161242071329758892208691965639160185182473753222412915005711983971322605395503340515866402944504351121520241149532861533348375094294301402616865185080925981507522300716921179759853771901655743965382587772708351044454123423482887648276574674623077403433662340348764865827480013241866720184050748511759777442996078874431065936112980282808538542987618484998995323795996143781108425613438082278339814045930497121262935948242191630536083407008336975509637509191555039372514244786163614712317031079632039799165836927330409377383820536166787008035976023523412147282523067420678308565524403182572306872568881190693999141295245847626653098889947166317597705290624331876304906684063470769454443965495848068754686646256410549148621740046606044427491182471635578834437382399800897819076931093143366263581615180195969570990039509332322561891990333880971914412145464198099711871336377945764303172258274518598375069762095608436608437338134028899399482243400695127036945596038177724896934645147458966644958142171807748335547602285703375232299635712910363037655802795734814424385328237246199514107350344209256184285718838527134113280824152554109134141742533227629174256399522076211677132279683277064200482228772350664086262831605962706397001003346402271274998434466533801766679405031743613783700947644195676886114617490909985076101943687754396330235160069914254685682597984151670124981714077119030359742630489488690050022497287344295376771314262916022349522665710674302795373168319275596003544410222496690688346213170212927506696675907097025246906556387154686147680689539231729799907928839848797093488444834819788128723941478824142583203739798615106159987615853876457962582952029397151207274395704571590643799633824489029311490816296244606127648089401298025154139090333833801421753982496301470852918390957416453255071777662112135468365228917647860789905015415651249923127076264779387596562443627294649829610550150355210804547295599944480916275631363719136581992244839771626919518212667251763425225530304753703332991088067210745377911227078661627534113268282791755514401244013095252083775474164650125145196248373647354666120651571784410504343730710597724425283616698661762663486967769529817206322274407063134364248991000035447126864115114124583297761586021149168884748647999182600539693675079165730973608320184548171364171626293451240408786149867815199680522932244864068089865929602210714940067393159935234855923234291474023108532340800919796545914387885040814627842007713630924225774266036546436994206116911078288723128980415503415266589657409321393128459456256671680910357173684747371098440482249804003505765712574657962253839875596786383116041379328536633731240651260453595652418002545400077807556288420017825035619372978737533980023059035460178397458883512461174530887722065231199778791262215676568414457635718870700853574112232129936131897213243551936977201756732766325189288440148565766731913727845396714280475065833195766003472265546700783098978797777155095946936772876911431313816301351084446657807078799458712205678573623570862461693984486766840439100361119878212690540984939278201736689304143837868882236500126137181293327462657351760236634527904365124391791528665273362309650371754098006724989582153257091838651991657163592794541864100472772978091237335805085969008058818835777674285881278181169440537555308189172304864797593755978246219338153083405282487701258202618447490555126991513432704967474074414479823178682099904403131423885795779491069589678763511864846440702407546844587649587772939578508159489337274748713416655866604436772753790849329312600386164765486737180951703974294556427764799291498530000472774609527385606246701139936944561157830188569395170106083137344972456009399085679859228524308312450730068473561358359445036518594623842756878653711421501259765889792542941421250794132044890234058576633406149502618349439331666651904365134900149109879049868634140964915903378997000293090230216030326755134470497214879879276464812276484452831610412284334232364767514532099854463714345797885741619760148250520317941799027492964179941500253201302683584544792454153914285679282311049791893358729926572329746928647894662517820325909583179362086788872078233497420036325524117888451449456245450107495912111098146376841722594042956881873029613448611473223491724719431385211564495404921712032204950975044888061230600246386237455609817804560176896244424594807472175495168965451853298038005099729726634516134249896777014771661543307397246506807612905980466049656267813984067749097233981323122319487838257431860639596966982041898873534571912128610275982658150871294194370955245027811681262374197016821327473754164825414113485465874021391478732625448284696317372762820361410094106585775708806109941608867385813133185733280435408665922217054417777148465270838495897171413953918352765013331175467902004083595127056688554058203524829784645159879347247190233996291097556791565790170051494821554389207954138849535731907597801361488341816002846045265142972019682905584564371850921567951662470368424785693685396607002108034571325921534819728738490314116750799786844079774446798799291119194782555824213120446720274765672673310633607691637375465031230151818249362700338886325862932662919760230188031506601248842606200221842464149406555482716877730737675263777147223808864913704542613134398027712039732989048276035118959343578071227089411484262360746499002945111746911844277645479462004487525967335018788406858785788205101515466549288225386438786785652184396748565523000378478972323693402346565977548672389913224572687138280286908743923396975721283416011131663829609113896055321843946338011048546732456766019483432320442460700823566430797042461863539493799168882622989521930550591049462810180065543721593785694328610781154324722572463873562856445402464056546338664176675699165068688657039394860638019817330357332350566185917048129338179325667658518157261114284041333804556867939147926455245931358269720252111058250671612598964049977875634939393346556059313602798730229213606677061172296929050442794490608319142837096605698981807643110770294261386907682317085983742296950355166412737120641945120076279705824683152672893243716861418424787429234248630376907686559689809699154416619488857922836968802693646166438715259372588271135362905288138460234993421238107144814488624597207955658081963957857002017005393766874013159156455980243459201536168712844789620550150641506484634053593969174101234687443831103447573455679710346909587913086592230160989212392260184889415798986458773035287573710010928005548066531334320747068368894835071896827905056353052724596418964673415624091432107704652178106240453978009032123782456736324978755147529465692400942204256959625053537779438465094111780319400348803623723403218518630454656581525919437850745128495882857433186721361463953311611523781334442640151588663682695221206935660147172174532412670838882769764598545526988530500220306078859653508201908635772404116931782860284207599669345628969012288804787764950047725176942690306646317959401012329817230867498118747230669738803473429378718792808363110696430669569691290507177442987046968111763930515571280544331869976423515170615549567495281833203117451092975676771323888452915687596466854971934859952707042024287102566506199729610604209999286407300763336643740438641655685188669575563394644430284611809321892341853575683939549678641956587215582282356363283906242519251242530375043188074343345675395146609713885518573418387780078601334854934337022603225445211368428606820445778077158351894745907599954238701346575745252745258936983434552192614349488727907669866664945716778054109818602799755010308841250839668720469188574441393121907769533075970481695428578547685779430331115195528938960838457368501783968496410863475306697653695613153056655922100018229561699837465633558387418117892180071522943501946486641164011751399344091784552455911231441035385353203098076956930800526079204703071834032337050689054028966995018694444985809667631707225032695395606635218718231683898751219242734650291655462335547886528775924014404984079100979866428048231659281042083817511676330784992205361488059840414067114748391929108575693961747362056532974158028334656543380985846258206058063196545077318115948114010471408727373040150663930173277044281286626446081119361192961665643051063048128591314763793039360099324121208574032156046986882453094660249817309573806719799065881550100104830912593793061611301178079896212063956645517626353383791094637599752128260454949588263523647830284621039841522622137207199790031288841176990622221139775518169837707246280155543886384437548662570423595498623829136041941640948723991409947150332530344990203643304512928390172184257453616780613858048711644725805914005203397045856331032962047527911880427239360871233284177217328547782607769096605243703511261999274674461223834879389784287750756983914146744252477315788029413506347833054947428179867726033093113388506152017766115100258118267497651732077144479711979903239643620404038911987124019123323916530954253428561186052725055054814384267667496253555520895326226146808251603463474009768888059872897012868331395563564411308228345909884968898608165469364539066541873813204207734470665689798560812959252158023657354946068300904939734707032149153993143144785744668094095669104723391159605571242673476758749427322201539506667325126481846448380268202310059032490397101106210298727849971378758790944381493232000677209904714359394322371403194807608204703339561695571815391771361970049829458897526226888975894210562486490725742717579535707452392798356575906924060412946258651111243855984639136340421413412746229429050064617604970096118252758891781818758057717342626854682533281273198149530285607185678181323604449656768146749894329048686604081347892286401186564218552056618895931304903987885661649783002657675310942406986292041481050151738823003612607522706567509914534734784333814056515821720378898398407913977416945091636841251111554784948235707777607009984143785393122661520216693157542528208913409743104324513845653813318106801386268254622595415290460018803270093460778345080211632537077849693532348441182655078863425251801732358243999145877765292736380790666658474133390589263819713593366492694862475736372130599299633738860376017833698280628202640325592018707430855043947412412719402305615187964720133939708029749452900613568742338144558381734887285675376011853010425818239694664647935316941475329086115530401049594931560627222455402191764583546567986178338271869364385395942649995620190287893502140517533000536946666346053161747619504172596074935495153735458837818146894270804392375030705014899833005693047450509335375562548943891415840800189152280107785880683540299550573030115908858213876720716628577240152978974958151117420957042075206769943160675584933898011334804242223399365091634771013696854281398228229925490519848640130984815895456454534783868588346211133058291148453268652537142570675717690085911994547056989327188691212153462591293602382514250794785424291328479749679512576044351431408746665057902681797129720353025017853142882496430724362850074871997113452672859620604384537657355410834803005609765687761552281397274806353676419266898566229052027529341511539465288629255342682706042056181145994197995718108298134322303548448365866369837109175163824472159189352155817833956390208217004629830624146309776927795665075358966033881664611124111426048462542999564401108428478439388710104987402949166116645119315979806070890622407872506861076565271371835512698082044078734192291186771604007925222863534570891959303085812285595861043446013473192225087605169128667380800300294704509724479593851444730685552730095651352376487541732087559965178001788289510711178139626427218861152021377531147856645830152636055151684975044075329617703934050035368261624889049962813455269734236116394994387167460244670792343100459685693237145413225406785741470522758949600298888165204444915355309809920940870873548784542103865715677904626395863807764957078362697429797583791538208430538370672481815946827426034719206263538842974853802067892913462109403115230191082502046808195270580517023317657377154506876224399943771555245857289765782804171515034326274951743611402998462348345651843504844059327235630377228341407025257977708194656817269005616766615036687523123194443887061880611086826514444856258289394189683306135095999401195986763919438144875949121608032859791370670549165899710343641834254361860659348578514561705449532878529172986533582454284843924788626573800328008521796192897396918692499626527752149225989273678398236987817787059953704461379201927836975203435581254397436353148791492213977427617087062310177557527665721620521858560466807845361375292986111531845033366867111071769424509053506734078081006611444112472522537654543047854139986148643493015666896819695807236983093277474696968539225995789957666426779776112520018025023828254977213751932477721180160449277487529905766104818760737889434832078761992220351723908653864775434344586873534417586177931037081626400763481795480248854047457553306691383553697600912150745050014017658687634613941774400584110403717975479317666303803892012198731457159196262849429248425235290996166263405997852124205062670430708258883839575375903516568110550811355945390981871761045050918428953738499692805691003817832497004064580721058863051045566267879811249450884590362933267436269167594496720981749568518432825914057724211342374069163738267897874597319264310719232105304111514448411749991625718396625496788431208369291177366312293148720513282793608440346689967074048125459394783539422634190362221386635509014503277162891088291708277301280041070196663294945923210455458657527092822164969635918103547731803445093247209565569231915149782067118353988522307045611413676671854527730797279354513583415988018138421839604600251468996007083877614644219188691600227287937206128645051245108645912235963223398796226653770382188219316043299551937646800906986311544663055783568436852171831040460053420075300355694231872284929856167196166605068169768109189041395362372006096398749768149764009458233846022627498270095277748882309971440400703190198062806570215209206529817188489288823762709000231543766833872708483173467527479182093608461100436497707460272340024170110372762832980931277972074319258901197356783250546226696010451221150325048291293503164302297064506383940331838053863151473189246338531083715078341942729099950176217152075439711515302516367655419399833411656021134686519286378406291535138323265063923885182891778559732061392238150548232580807834094918595331783683898382352628736955729600040227120173994814591649342918190637631875016699749839181024146006177748862167165062894987676558203862385670880254293280962473209149967459021769730249762339917446086530921032743968685130326158410693672982218711215289924183451326397094300986227936625206392364626834408800703995993311995334914177056296291394451739946048732624063179220773661406198257027749497382314261017068077319682643270755401013089577609703686829006565906542978882330672813622492505649942770786542795642834803584195992499458757979296011409348414438781639300181622379161757577344688340314597494068714257549418367461329606572109180823376617425151054044524080811335257978946626506440345782745379480119271625693999139114732967879229805630609275223727339712758324007689815648327215291886118743363147793502728202298270404709945458508194984716526165806828367276626714395876949063808754816645201603068919337624179360253458584184262017519906201494054875049657819615304738493641302208268957546791235425774275557428321355341133395221057902781901868858756846746006206175374130400808119782765391063112462388507092938058343708449172298001640632788454024645419844039489793394063981508550785629326302843519046230833127428523279586397054055493584473707168760941057882217128460923173533724011754783500183706947366988254845086094126778352175385438860405958344646846958726283931056783270981749350268946612809824924792040840820887630358110077573913059537545962189531994745067219412424133320529682340157509553348043295787378055653229501726087723147844384838375344351160963208281573109426667438998299853313501671966540051620316368195473373248147955975256948783823815785378576387198788656978459740702011251907466436626060167973780663215878591095332675067904110287319088696976286802270161935339504047737822020765561425924500291559329839405702327787544826023330783495411683447477763139350487583404543319134390981980390955874996544854202097509558297704369080021505885746803103134360660697517373935004535850158965733351980688036926039701394876413563537095278359074486683843357409831820994756956785286010195808168345839277718746928592255138596424008486197584576699030928734396612164957224397602661904880114523798079653705410409123921284777688090870693790582405854564265900239622551496584291503317360477321443554562288429792928602792603929829848431521522605088308499717345219606212439725486508406433340208069880427359661059699259320603954692485252487410763031751698335311786610589258127961349306390984372457175886418596143360743484300399955673906026303998550708336713464238852138829926185189693806072052781914827013870454650933182372004412842131639379619898828561911535966281363980777409383749108290220826967673371537581175185869795033474826341532769219267189239158568649972548889088915225097244492513585719122175155049055293427599375152452821794672140036627309483195644227861441341123843248633498580979504492114899437633593271611750425725307357364641785562008905326839307076738013653617883383540576305325003293825768942013848746264078791192594804606259443998444425133667188128847496221933609888544809117635537146798456847982517794968975453784763078771685859033749431917005660197198420251175470233839641840469205172318295608571554431503113140465019624754588253385116405265187690890603639346313266894640266037770278452632384364485511333153616457388530347731301088923342640056824228938201138196877142749991122834863162150494527309458948858470039446915358667895125705883650676514926163226936940949769231573689943921821529268089682187392876776076104342812825629450308267003106958041795375268984926626544057310398299266626759980520388541993733684172777450502509897395177556022627649566519261923161250086051110564694606861472466649243034941413191390981167407632858962526535207233595850707503067954786129273906305795430625917065003458035458462649568920091588271443463872970827000604507174196483906237401425109989813556456922091515459165257254765551838464236223499178244685719502607673450265460599717529571131352595256614377669834129324983903338998779522893801894647708361412382775069882909565358071658393015288334063609103060743467323173541866103926142308954105816894339139101807401312579583037736451655965387747089148794629359577045565628130601663732622646853110214236451029300701593511568864116560590335817920421128210727473635503656511901649133664072607725589001326030560027331274597718165594898435667082311574942456370906441803566305638260211005899860543478094884797905625643094980807746812033640117118264780017620348234825041675951214664779522683886912959092351175370009307881729783766299658760513267859917192786956327146766771238853456666901152266544804069252083857190656281835771229678110039070997416258003397065010175752152139674360667511661162033667690332753110444796451341075383131622086134635588344762263239650433401948382380837672360679739428233747733670244828468058961624279079296891779322667066343652619143564433173099537791146345603696855866963946588029998821964980754410189117679782595940260822338660588934729167188175542834876047913130548219772691127447093245572212766305541716807277872620591615574197829193650173638613710798423481144957600075159023832782700904050816321674435323377416460849194523213724846294335746495295344143267040926999284768942912304772994119095845073747172605580881751707593969503849360234824852245779808398639583239292411987026382027192954309475532200615398413602727040460219643391431055358410303042778027645123527249165990224731729481092973487991984650394441131155897028345296745751010134033927138732117744236242293220278913232049731798416468855210350885621109332986630457464354333327322747361599930649605403336430115793126313149403467315311548703571345662468948409762110006313173767241320166961467691608772710303432999906643224619166342967720207060734688343758548134793481269515354603994987509361835555875623446634330916653130372542096944327830295927542527665669819497676240811482781672405922811107554124637101900036855853594111260924317310067774252138906986004546521437282832055228304656809796812535602300100151734685722543434178170663586156699941630018419093579854212052352870325949168339173929507269467789324405085327701628515848088497336880972315221551207771359137931941337949819992553858103840391457107965333707899989814092141985661388674053035214369398830548997382727488908463698247643035607854872531281248027098029575716265955922936267210765982236486740909242749977592684847077066489673153114568660107312405222924626261154503762499781395907789771782938543619903096388898176770740904231498189871189038106264105255784611466757672248052424052237582386379204591996899418580350013422072937422516411449099862142773757297266852096501862590850702172761699166137205898228476049929671420910874144779395519407417233250097079957836043979715205062452574629491088132309867257535816555092463453494671526996700407870159912135480977409934902152368038886337796890740427658484903218568228692823199203567045929485337292020684651157416011261493953815622572558155823405846338479342529878151987128617218837139519168204257898332250281132675080838560245124254462471709205246168222536702952381193560184769475022980177825493030789509492255542820086750880863029856659840851757792462941967788683474975965013554983929808270368140961921032817387193791645215464082213693952086874058015305719553472141058320174126799289864951404371810978078943498134352960847092824214716816957479946319184698122115484994278452892831864316626798576071674639421055933444685191041368665220587594483393052148695414118377128788275175588467485153812236385179361627348730889727036905800378790063811623355433536866819967370198415857952704069357090708538995086006631495407725242553375767535812599341908954780769904798962432641967369616617567952530262584612100407914310954129586798651823248279405828767424301026816670139703173909162604626875023626889181026670749850120425240407572721715597787639686907014307421299021518442445490188707529168007452481579493621215882322405711397642787083946211763487408075963766079967306246717979744005938469573755630807142603461526553857633599923002550479704979425311348747606412835757666490957644563555194764345370291862544822134440900014928952187241193528009045864908210735469991703952366823217564986949131902022277019330398652072398515889987562766889858570117763351984191002521638035879950723302287764343276479723173326303684538081274018932833644940745766246616862221205961016993175150759607306971037896557173983660351163144663362038089218868537043303617033974759062745515346362819214826346911851086645660372034376434812694370804076768861290884655171831631652554469066598438731452336216254132772835050440038963232565902657908749412553518987055426756219772465314669068722589934122736595912693886375907899341734861473689391103377488568963854997527622015227236031801837721273175669750957818443483251647998000382189627309546982284308462513434043981048139762057620138111427908605026821063340221423135699423524848703976071800647478050896082163425225116696884098631611453923929389548477490365736482661601706110870610165466553775107372256747644635596902562443947826282906507979118092348277012158863861527115822690006117336149890448333936911455420751986922875951701035243454335517167989622824788802632949681828703771268498829909630947825758655310001848051452926214786699575312450716509114001451600708703933139680238373950727077642171922055638598849500520115910115618796251807283953599679224955575178877200706391623761025889446578871042867518358734559430542013130363775087796865142734003843853218443037024366747397226898845816625930335494337575340286996597910159166365709238840057308997004999158301055059563483067644449397260920352212088606797728494868217131432532727676633372259208810845507695453198794206121643692269058128454472646791166885004515252307107049885045105444187160580681901692113824590696504352314321002075736411229828749922433119721122591129604828417008886826289037819022342746918850062580691104372430028372651964881456422898986217425182374139580262821911940994028588582592869871770765883940805746740260385342691503948598345721819067658211231092924895324832389031073877656494990372959422549102899235039835771800473533414949510567031096863298020589808872931077981575105919722891143764303156777393435070277484962575385236010767665760462226337472326836661392182992539862688997500955815446637867263045962760417591115060132039910516835718446523977701561054586594197418377154209384051015997701610433343858166236282193981142710063157103882375073455793916275663921814240109002653749583395370844775438237668782920948746242165641611007242473857228558531618035793411521793976749973671838657986073320223418286325995815582421188138245338233493618523503365561165464043102033221386011046417656594968192456413357131705625265678947276188365620432580999628392217964437607121401059274299604376396680039227069550120108975640301416372098401493988516421971708876528327986143638811708603943219564161945201165950770870968781986368816531690453422049366217011442398800131564115261891285562519588063347766298038348163151883137117147595678627638512970436369351926870498487010736269186551680294334891383370183615256240897619299360110792900979809708923426843889715901864545683637393630182223943671687512555854794088683675448447527641985536497826912356243544871114698423351949401434716549113234423027011448457232684656847938917658386035192625872210140474571870778644136816109749544501887567940308798000844947842756009223924168152293825549301471652929027158353942354622825132873236306991164104435849775514048863350996361468071614183458474307957173392616259269839106774335979391445725792879359706336657539286073041640178148129674723530467094981071299032372064396175673925958358272499259722070391437457531651228262167241660862103532805697328041546974077836805773475533144779358299284385328359097123396819028077250261968529532074983407760730382960579542610013677605321347222522750349715145877887210601444254655048030630879475595350979271051799621536800652719680749902894318722820500184861284799169286342052341887729904913621459450614290446858787813897669172135425666130360404089511109148502748627583906714775808562845454617076609124818105491009254364769880269427298484841346968538466699470214771938031981036260569622818671864862032351891905474602083024223196640338961684232022936527274214908569639742783988978060901629838959547770447593257121661747820813465564564547360168086005017149853007099263306755628756497648831289710487831841399962847341811430855018068390619586264172975272890817736946645576542916023850920647792902761193120769880411596566302118055667965047141902799046687520609205393954790614520947556442317173271186663410540763689479781873517123073490350851450664553830031772420839432142626164634494401519800819459312939320866102416988759492392627750943526912638133678964283469935453926788818645773545007249657717373171033388301593319292183026014435767437918900324807001140632865619667740596911493580337173060449110504223488771970282557091620466504245042406328700462640825875471708553674987920373804345751879827896422530877654348993967051763984859363435851284351388082326487321607134917218597174745148911638416017846947321725825020460943949319231755318777700714403831668199125544987879946806437961697344843863933118435139634726262610197510129193034585423609110427384159481332692212199134415308682630797394741754708114661603761040956499026775313635693303056974588453153499731816061449177378777326875551773959190843937526011871453370243454689941012810798562841850186849076178677429210938391524675767893518453925910793134481214152375861918130512422191029453453130580783629971583239816249485473010564665571210007387889688336393471220129132862261940525936802624647984136272547921088040599080643304452468188524491083502083111026676303880877735522094004225247600959008640581851103394672171793763850800074148986483873923586846128768088376317760944052317918000195219584819486943495892654821551554023491259802274770878762247739444973862070985526373693130973505000767820415828929441899100735555226839922182308704663112990405738266698092972779294597552475043091262327318799703223574410698175999595169222772743834780311270343139601292507553591028427597336364617402094494086781198006631144828658638408278274645020165667876358225301726460880337619982295159951442676675828589154141002336219635478967524008554665603654919006690702413921712170801372197867314643091668547077336283456943816711202680147069342530651347260050781645330720413044084239075788920514910409220895023308879782474652513510015598224632039215682359531063695851422793837293509812133858612506571158772753571269735651434168032012578407310195161120146486934698568845216544538027431283161781570458536994177533507495073187667862066323788320810864094150461281705966824686110853847815723891099619942160101883294923242361681315794942901064636200390357489789310568222361716297315318186325721250507236453491940049963443290204964620802292621542720770933088749859968226462024074152235623864178609263930135074808090836528295149005141744896535802319086742106065079772479977434407999644376171448191700566908104109110085336002558673251642243537799158714295271465667372141302394857134612807789982196406869389817581124087859989519483220559783569298763051716748166693270070943618045865715372132863352022790659119321767933184876124058277455656232501557650059788380196558782997616306898879688238280330958873367670646823189130347659391452044542049442008325806770355489676291244031707709455761962232280957390124411377310718020368321442515555175252625118753410059732534820315997153681227947648384259131380604791526932747581869434334383869245673769717772279645797095420543182433546771616556608400155954624236035132543833816022529456648852091105791432941228094585274957938047168690748269127553720948346952834685647615679880460482564613930286336624487461180318411277846772173352441516053493506729953604441501031321016722602220945704563143153883991857367392007461957603388305949842563599659334169264579121347134603416685859354658023828260515037277919410362775572055170736998751813009235879648769482140595300464958831730335259171641147858486275882644911045834062454691670651322951895422215132768951250629472461374017226463494466396787885973047252041857061161097229343969124285230118291526033933707705228533992312559509731144299370994368105919110980909281381560145527851565015503717554958863096161604164982871005685942570832911658595167509916465696340660518406029231144991533178728855382991596780622390914754276046813714992546986496591901064193425105674689757308949995031294423450446565991065737208235205667792208490799187805289770353540135350837956586087247032805413447921588497873568204835051243302291629990055616350553027851952538859074444638688025648303942172242304359638228303757979215461181857787142141162898152933331541845621728659140402604431097822068938414316684198496286981975475015748398716073759361260747608948715484685997326310991260750229021541238836365795428140652451741240371537242882900352019421332234078472184129248690408344356288916359336828716689732572374006857092158063173228302658715950951824050014204519290753415761132826930422463745343487910585871475369861782163362613933480697480990134699845662726984959097577120529434701877434671557491006939960769154290397814609172207796463412352018364473978630531663409417429544088684850628527839394337953275213865880240215431963310329771211593780359102261654958426708881644979709150181649806227826997582868412143841896829333166542766059332123024792765987336697313018437697045409709582311496865543497321844493518081329346636435640183099342446952540211446500167247694489740809883525164786979159671388939290637686351045643219807612829932531427274799861601754447204450920819481267685949480553663891595456547014660772013279986396306447497885800765871799705635160791168880843535313750274624158937009101266224557004829222239535042152768910246529741840753136932231933634863437386557945102501232886783360447202922694778528942017162839519880064762259431438758942223753371324333128902239238285996353400080668502057076266490236136888916690083431223298686114889031569701449207104765565496924415683213325199199549691031027014657372682404642802801358910607312504850405977595478078882498146228485714870476067285775550029874343704668029374226048954917425388528925497944804906087587496821287637145861749632561571835708745122386864527687789098004683251823546648707746327248133298705817536158459340503716657440778007969847170362228011047903195946662968472401737140176324581302888440398085790818881085477514930921169592212385904820679177584500045263048228864998392510750074826734449050806415965174109992739623397643225658303643770193676156926893551609801657864747488112149906529405241081196977548659316917443604823093896850450976807468487912586665241317312125509239440832711269246315071693451582614454835127923657584906278242107691181313245545600491510761385693113162929174665094405060204029900201953834263252912015215678962202342061710883745011844765277643548661639196380174752080249985664884096394569993250884024605128070915855507795652311840765848384892063152932168836771771245686327544719474848046755336589972311804471769322684450093481342599308127140207851894148967139865192697407450540710972449934590282104127099591446866623698808929003716008958125497821984092560612711740416472184026804484165867275069431407521113419804529117044522628541655699993358434157563344471893957664419133157114338080792421693242440039509012866861722059962732948471216946421430768844206095654991173550990037124328806439553736354012476809573032954983502071729546299075951131895106842475882746617163210436997007658777507232948271521946680649162227182944092421522837217897333921201728978966808427122989587132396618906813660230467248968350711792483243983217735145496603811021711314158874417152109377452715954999828086732269398931679095022809316538586662649965754700716357214416536189343363323620507019293097146532521318308692009628857496311550046129665784284351141781299288019258539539736164712457176704533159866482143248650666272046473929042441087327203975671940729840893072677585017698854618590724465496085626833334891063600133572376599976379580618804912274363989868956206664288021759966945712847168164107605978043137094328223657537683664830084166461034901155780060455434737200169388546957105561767085611937455715248084229858163407915072095688356411374722091861560180871544237170286107461679504592027538349907485540387007814024610240991301363674174220451860039696886023984332960291340498058241894602923823774156115570348966684767692409841476658029316578471704487030664866244634253746287969356729010827107253843336972692166860024736267877432681296636221683682690182999978507375610198137831936956244340669083570415751321561686928034045132895364311653979057060347035625804802066805622013894660561701722991163460652711863812103490078218446518936670943711663861548930439944435417972148992156790586296162408592319056639795101782254601744341757191367652452658292292854701907624816473646365483879487407471851874296111948691513333481531042258414383253013330952151617223528730564100923718604780787310933210562832662577229479019335920889277243750158102262354624418761561253629193957048108973181686426575195836836315277208763917886474564361756208998462346629539851777948192698168467294129409042172744396023750308653429848766857178500221971034141790037835932795165364454028449847273611284987627969965866172613180652242217268254670590504970888603272467080475895387329142865950601681626076889705166951013672012953149562016936467386722437606253729590367591344037022088873423128537578726767608570610570796690128881924331529362784322062283072117214515535419088797472191897657686149995755571171187186647441878477961241858521299574881872845882905320112695031431201190864825882692702161568552568848807630826643034058048900329566887580145522207181835692134292775372978891813140003124838873403602761481313405955634911134629427107736595831924206341018083182671320162148488496848193846359004585965348027022578525969944160534589198943500679564200274612390223153849444074933252679521642147133443555542959873105180723980545507647151358979253113870842676420290436562821462542485430157595494177276670043878646491797278487364340620458441026276980949081158668191149389773515374208521192755294420294390082705479296841003493875609538501048164905252958994821835872601868009308142235642088504655537854823983158781888030015243737604509363397377488697239045786091781240876195609514053268110368925548281463172761405620129808665444171111811525665966726489986124306908798064133212662493513255251896266839328922978023549432477667828830743973467321451715524302648813947603524566467816358373431469112059619435307329956739479090750840920674566143396904663258978126633802397839637324588990828293372156317000955300102365530224634990230072977093926670053656250057614675023894187351128959859793681893089762704796019500947438790421050434832755698912077400172926698304840666053685793581450461600382583922551955716994338350873009751379388777669146958196261310605292386801464332730744677214075175267133953650752061701182335145576949505270684632994662460970995968238717559380672275566634639827142825085995042155797902072635294959858125429172286763539387290399792935781215246973295657253839917311657210278423240444533335587841023933294682301324008343753304400442377208314700302527333333552856243778802273363369713230224880142887046969720205932487044238360871989069013270438952626124552047896344691877531079174693668394172121281500099481989861982302893248732524944187678533466959830463507084221480075249873754763209650387043256344611823362297417649940361610975444113728393084974355382638395871176768064537254519220886968012835203219020159941958830082317623356710083518807270624294165112707054547263264244587205819245054955365099357875463511589060812305783085769900149089385970827764849000686124729983446313740614998765987514951022699842398595399893166449649915284805475779624905084158616626836115244478829005630506601816501875652778251028906621685225218751397025413365795804818448314952816774552856084875039174734904773127076137018691964713030724820792735192424805541817605634712624587951719473725201208119627656903101546423354063350567578237894630963148794901441198776948091042147146230070907007899824018611614156928310979455685517135052987114407146820032652923573384538976050286098938960102827666940901700686484215852808447674024456922739536348840999572529637646130962347674934052822403811412462116416587034753023400356758402465257835876873456968102176365390217963889922882071690410623222373042245648512653722889457415743400878038042257059437956310797631920429074982258669523343756032223882730135047714692907459355851815893457599630461128413681606849691900070084834123023983457414117676372893533331114305154380757007784370058790732806077585113242488107126038136146061125972997961355907474803965421351237307518841244554006776069987082996545199966756672137477346313466361270819002838512631206018004098608264946878273194076421143259541396722369532145289752958288396301116944597176649527859467837424655595863842856202211999101246567119171049357266273610865519964949028887261457255279172499922083039182664995915893438978635270043455243647151636488488086283462313333282101423993951677340207404590999616114745926176836716274095912770484822678935871307019719763238830992096630555943803060635841594025793673533938066502033290479125825880329739289401372954737042657067808212667736415905158530505832370300462834584698581013768506704611728056450737613835629980503982607841282481928101177503135282364882744211272892500718322769747798537246524426652788939759584073466283687873731367926918197132731951208808003950285561487504319119369694485966946773073154976722203912534413626375577159128366486399707323833917531500275960809036667615405427637520098404199598941392036579894479290772243624015187281028643995204384501362561467012289769357343405397415645344104657453886140189793338948609706822389114444473471130247288898830210421031029642778290652432866825587339788688084714164790133108805884988644953825146565902963868394305590451632764489690691460248831983798136971369172356976890668853647601645012587913007715951970545138124431873324761261845445002671972523537377063159995116040648724157767352182639723877381165604003460050094782163433835692017279174162492450982623551599090368270123066733005233723559327248223124138405035187583692176320533497119363740318324991051798081323035926818327492132689731629808726205719475041834153008377928341367477569822753621595144050382341928306921310686489052476755484273698610964939893548196565634383028851932064511043922134990152735860655671996849145138017774703761613298750590301809442599522875575371138371119445406157401846563447537630369631738883003495453092313722864956723428266720157482029061210503549211089624861209714846334686522564022174792738539262864107135016803244540143822201044162671716691800840184222199922546344405615892086785121733015581476713204031403756095490398356179193229342700221273081731811535222882236466018159984389528359004022683932339274898000922513920831495170930228027159677696734878050168827881825738621237272896659842256385709209308596349104908778553358946376424559731273296237378054590673270884254091980085692351309593856292117240412604787015546152841403288477249967509290925559348325605897730486003404320973839966567687962086529064647711433723550715335361135190132663738834931875049302036597683594197761410885264488010497911169195427146778127300670134498419494257835932092182639479689665592631305066729493827628346986175536571914964972467325853296645571613461084650005210600429293889373601171074517365980174883292869447447443441568499915059142588480106929647017433388283472097535352806735803883121441966967553436812193557887495261224201916311517095479546714378532540642537482877312103022409441783687493936932832892545847976456243622410959403129761718665963171341890466784802963967921781259781008539085403167990469807062506804629264172924302197691740532919486464508859432909057409156142712284448533436864588255828536363206251044065682025513805998221977719032142808135070640998500244736703165235130381430862100445170666494787822070869337333479424033436222604963596102872693504243519803932117588767019183872171002837170507451683834133984798341889923672407664270402840708805217087103979994666334058598088516300702978428747155782269278820663470428344025471039456900767718063427376476396806391230709684416931674541738624663071526751560457246283972613567403295764166213659873094484226282096526992051336501684001745022402355084739302586588037325504874708522600580175518959387399903553331593594004794365375445357264677931419613953451675367598943268447215002725098921333451217691521467347020415206940005118344962712230995120411459049919759380723241832282187448339265273305033260936501562973245202515847012985924894959903876338103381874067461740581556089249698583772972468558919375925635910940986488624872922769483296233203115893781527662048325977896369471079968018530472729991825074891899330146413540916808805122791132184665909645347736278618715437371047210326478964357323042617753749923521140914443739727004321544080452323317374889546431713838442137895178237078928031328425042594823392109610702678791807222260950558714256219045690483755834576986222698037348974834657214128201473521057696132610090755561745067644800168246657545345695208571867240636459507772647711016700638051907317254557579966589326636622217325115766738269707194945934443385918303160376081437018934701556699589781234104958658249704400630405248483481837856321030439606381771158562598875813842403891868834284299367874757059567209706886550587877832665522726638936314625157101057589643789416344037739639160909710826852853860871663771348979111195121375542769434767427802675873635255987424429210168159735819732884326120027229138888059605604017752496719662219454394012006303507103209027630764518597628822652860813246361216258214608558119992377005279476504024803506328457177724732096166099100249059469229704405068108014647047313205362883311805044867208327138840083515417969308865025098941419933618436962505278694602272044484894773654967575935085862838383330522458448119551183011148284236355868276659449906177363652636461033313024094107782932966509990160660733038154790035761529119906715552818333591790310139886012867143361594834679715247279589222933342510066671105715336701135074327817401489261412993234682415424391694827992180729080993816369464439391434160167659884268196831576308551338528261160827968307221071247144222684933326449347431901383243208103741529388688467029495636179910463862992548910003706335772204920596308121175062053288614144356752760025794048917057395753851720557770938399922726177131277631151880393977732630789377191271971574208970731061605387102384776184246257033077134634549522321839401282530170443591624147361692109443531437799670763514451338274214390579539867775264483449430225188316947745323091341865538791215036028391643017708192039219357695116351482445554507816781533471373483256453988228813129800542442640392467627739575544573300901200095721965510252263698211059200974816850835054627965794634105237628286354046968399874053894195655377191852831264694033318057390998952450220494700447669926172713055528164111796424144084050138008419174951958127447549615966197912115816783022126846081923781461435631767896930846401785576575154683290775996173987963970274416347260057049488389188278046180250050051198670208628739652087693699125845447108493134879934767550195697961720451798158250479710230586040715104188144466556575523601893549924285236632753107007700818148092120785499457889001446234824882527979315006080714798576867560445448881538985956541473794513468396365357704800144032148149199172558691796140344790419345456575656658007291353808375901073950237368527403320975598952648898982666798296283776599490379099381218115654550037673873506447938380208639283669789525766671115182477491069627005246751314368958016702855375796616388725867192785395656079655830614996612842761027120767780823210170923739709847248747355937260884875207501895456584767450242387597727810207028937068965252889906733677410771695276741412757477577479259213393083776574569725448460890923555147851450072001180022063737525528502530078652924367299182341880382452792016141462353250525062126536422984462373178877705427448055381390787046882252999819507610296478346791971987963554649078922552754673065152693457626884464634271056159272474923138142368400944190519876766362405432465374360234473386014675534135467444314928775499089400193209674266769890714079088106245259890765501541166147973404904092076692874407494190365567029137186053656764140815019238530240478539621656599278367648339664149287316970650575579085076484581120036870516530414842209630283805683198395196339472470320760629768805053297567952167992336460316011386080685328202720870717944017780312318745308140801346601583579839853307835659369668705338244711236220582548779415826553399819352191599853875219064387602782746668078902381665185508248912393628983542327846373104526452051639623485234926327527749203405642100825605025825568591922123205834624506386425494930371934652935508273826582723892632034577158649304692907299055278112550605676431807683377229608638641138552523838972054838089501530131041903934137052481428769531996518639430667511597394847396576626924592114104473240188506533654539363932515769435476115447812287601755386374767971126195925945071749499719430443844216037705363397909876945425716620462229605045126189793953048822216617649063496228049324489752137705894896176166971633994983661212573064963993540075923072622441035609958582336628457097973559218258930661751874394601500843922397157389441054279722109438069841282448541254490974034124923094893790918045960846454599993131203088373654057400105534291007988690125884666977102273156972423492868180684471719717106732482184559161918409955853883932525510145381068400797821150257697164134600489280602845947970905301483472604424405113877514293216312538802025231124336792078632758724347342595952713747717863208138643618481495274344087937013803059129869061333170005916031287082031577965970509764663869988811016674077846676953985786877594851485414262789822433400715272110489308817847348925142589562732417280217924417954278116491990075550438574052643134245841059605330096803390989240294741020226968640326433094174408718245772614167444872652407584672157398149127915513656746736609096215280093420119841605706800307058380987467742187593131816065230649923109250468692717194646308600398666119455774739796852312577393361032182878225914275120851097040128203455790797958088488504832560096055163275516976427211085224024956591786818780946508771961318371714899485190500760334096832527906387247548347426113797693693201722736022417489777264887286397294798023407615111625261358128647541915809947768944191791380787683255305426514615734030661279879107494973713097633361915735243088298651954323045370891286564661410046309045132609443783296255876205641414594470615347910144159904123656466832099502364026696822334956723103157848911426415878160569004317355631332525769162276998762597203061155528249174348399623928906161089836999671966257261057368542965538944212916007522460489676215339244637215428483961692245955995955995662344517509567245661958354226503279564446370481193106977880089515139641969478217681664542205029799465754513964898952761583954056175792837275288523214032019812640625638420184809668984460287172949107314849052974322176175417841211199223316599961438722630331231383794906863172797071678769669588377340120298401269232557543648429704753836994328168857762539714910599195829448060409335289141410849421618139542378720009914504629954934803105142003961101870717247629914546568811629908518508582812081369599633305131973236193111203886898920700600003347989167397613659415480360987380080238490388790652609116384171518358356170719129505271195572593819410614185944833040732648368198354982799584817686623655516243354798469629092259939542678384174039988453787550575027659140613093419379161114486971417476192663462885072125876012840158137763690589361836647071631406734429089608614302475019994157758201274772537078674424506697367557726402451632789144895495454842157217009738438700321382956419181290283913528705263496261473912945244385893964692776538261656193719725592061087084948561424481781694643438820893628475602962666590582520016789412083542131102170372242508440743486531271446666105498135364830913744621788320642028027311992230258507970713001105934988940701295843491668196071102576245914258260361828084513774627986547191085314100264177834426050581648860902379818613778653501309302205118548058911740452437521514268623163101087359104694361693258185598647303699711888415051583230226919203792415169707365075638316154923791300381736669655439803396503347482492357242318252340830728136567665143330694465292261510234117693040714224146986619452944623497613619828933458751839503944543855924593383228554526022812383789374484404833551121548720415378410525468228310756372829067762136675046255319782561517709935566557077567105755223583909072994324969402188930023181410241672449921834896200912164440539776315264477117821642606903001373778331506315918326105762251402353903126882048695135953091496537832967050865177491720317334224160652621606181649349352157961489948596179022729376790715381438376567940853739180327819929313649226652508829258415247271183137596344141796187078781797485976275097156164545959296098744085830831257399360713025766908484421698146062648910070005147898106769790567782280886710872496841753800170972760244916858815848265207209751486812447951652506130573979179411588261786590055881369945144111912352496928827817801278615819444077078290547149530337310820176960612621245473719511762734521472657630875970972688547292063808625833670245824091423864944791116287547389034490361199711852413853474962079204829527504746147482529700712934153461331863330152638117881984910961995441112306598595281428435174758874189164750626806731754367875206374657958850319200027296194560378160625144767538135275767260356770064251681982718569454978199480509644426596568640302034219019530176614008725230098944200788761289227041847297866584536339142505370612632353086646825636127028010086256245106445957073852098338034581769438317276253864070755134599625753559089704180261039720090776910143794206258345154542474751693941579081897594114765700125984273633749695993625075247271816945977006617700994643705146688521657685220414784792203880076568438089692876562097401373758319279884931490462266496547894955596962946488319994797031172355205656386573935067090138376549460407228771543845277599648906452525228711596131769656216944982113190864029733259389417367137314364916830616974601542277102463325766225165374535986558098927567772030570778066203042593673230800725251583862488249512090757220853893426789384523582751686351864992919763442216313195638539794455922175379225563648241273799736962829605963742423333707343197537041325095206344675175325070526609129262366258599133945605761755902056784066973341643301255106420374808368496484055966288760112265396962744812359550198506249029664403146580976173541929458439840641520591295103869379634571552640209857136274626029286698546465763790917456495744079195549876899274251729246058708616971655353296821245414077202460732608562896935069337868504715789278431424527074185742320476318067004456732791697583944377077279010407825620905650024004669241262469823667713036961875378978649809324863422043608145165860410779313372488265068792855457975477507825323388320035518602170719439596865479104421183463484646803300152014664963491380975836862099369999088897611314040086649432517507450609694606947036065781231266125898346986716488212560745179910174213626416838599744617643443349039493626317630700461174104376630174951811246882692004439025329152817228768717414614597791869570162054653349996378176302950767249370281564366727596864578257474756202772343694887686518758252087658931314991978528154635908678427263306132589326243157101834253911784407179420734313840704130658228043863930526584408794683440856902429659693264783765722177178876006994652516971847262960501767422599261939759959672377772883755381809148111818850708590325167233963623030314326836920081616790704362758497341868574308948629941288012935538221734167866890373686829824393641873997079952246504594998845301396423398107228053714299603514322295892568166287477261511374128169664931117100579665554762823794648298583760456532612977413828127896109972373245004695513589168216134280952986698477700195069126779848681981111695533803664102379389291318998708254759578038334468172976403546307004032051050042252884908497819621715556459140791010892529529172306431418349356916406970582571708676901014547378258211017475121972613777433570125689877696090926572385306254201617996599783187789284855857934532451417597493706713680734265131707647093211303360568976200924103794935397892658225346518699586402359625314271287087398819162462892151969506306302272844347174054874339309550416108507893309408110150807445071026832761737103087451128936062278684530359580930061385310337605182887514151818455917829704115559635212562152973274211938653023661018358236051646549998317828443366113107502431034636849835811385501652937772059915134998351871761732559052600853412709714846344805622135452740869405151023997113196509741827680052736223767091342022776769823334454993410393027335589229874422432518896106801789187680583620124632183367037529615630570265976690150790493865023964686944147705923195534666536933404921161654718658068800925973947452889352857131311555982057209828379850816820915412507238731791564032337652297570111785884853926089010310486066620640280565358543117362572027067771507857172669515983012022906524572721813997271847361876904101211693751475219793261901049087773095508388135856057578547410158214985202042474828728743026584774167301846158372135932633969175191207477586579943071313964375593507363150780417237749935023247937355453658388441074423290936030541040063271893427278800362483392821117924736420479175386582720238104805851457564596105703595696426193868755542548382211032728648183584793160946092061213363498072960569758109270012788888822191695684564259923721976426553629619423167032779544125261622199070570188401814982161872462317597983487383916617860548808006568410607029361018683225842306008409667833686712494046609318145225478491964922329527290148755208824782779046928420248637746170459153933834899455795659732304200641109660464878865106124021794986881455920696764852780582501111864615885376473953586003121534837884776745062261299200416913991349580205773153683599668696207739033969344187279517022063770347299738522878556454630155211454754811926436665599748875523296619156113014361347093377928873399723075725049069666693831100464213903089205203334032589143406881306617576032304013832507083326680317436661960475300027211004609204795327359354715561890703091455639930808442115099201336361325816013311578141352972091490499524656858675453370318440828466993187622714795634890901922082624744455466125820423011959550708701627069438013924555578439928096594700200622353059005283230732535347141534811540934489956805842496549280495856619453114348553837302489302632474700903132895956431829941734947535628072401167149001669693398997372218950733087481663450605732051582759115985459376051719427907204397344499909659729891298350708183670000074070292966005702486608641439971039730595309569745784294120769190439398491202997385926424998730791992143905065790721793228405322372753395699871669791520082806756926681811807021618342796579292062515071234142630421482401123974660127120091869488886787274727736171386999800672054141061137740836178393339189748855306256710846164015123214820109487661718148612257038674668370079309324299316276296238801134629333784050358423643993535406839543049060283580913209689442456357367706153176700358638093283122289398564368448053286763303792955454942661444004454917533889563127903438609762819581655735994867609663924367457308363547238887432666145592795683575575160275755336429780672797169248992696728957486750090868641646672270395235184110733137632471138146421236805955652742221780498643625754223666557331261701742269541599070899554311515375927038995099549758354867573478005674957332747909779216886146523096885317311736629040832677752010801616837019509492369716038424150096220868826323981111316964644957054202661483840281544319124697450176060989500651716739599554604668573788690090582481030489727786469719866161291806270079674061024105056006587944739987046123097247492383419100643782369371227096904664471875150843425325858301698686923625328814997349042197833511495944617062271212017831207303572058730068535056311772782696819558828617908888982992854330706182472283181231279748608105113365258789616367578169057243481365252418806164523934329950849818144366678196693486191980640634816797906197429528379045104560514133527458192042179823746758518830086077378945996773853387860598747803489043871543223416422557265051241019137288718858924834159615805233703149928222849667387908841709248537389190650888808987348327984302541315647301339723512256713426249010886959493078886574793970501153983567561183605583245386689358235541477584369230345053407291082453285930438302354202153692758762560197806777106706427338146394104071083072960265779876719335224862439116941897923941854603029362215907238710385146337431630898248403865086234633678455140129852898397857564700044218097498330202716568604927274092189259127026479058552144749745929303500881986465751004444039290300263458369232984812384058967060041593597754172197638093838799654077720598594887561419982343614598929768843765608193114444600912681506646999648376899030410303382263310206024864581963265211245242743341827746946769271510350061301499639138515052086264914650679843551964975806566017931020021387870288213573834200044362658114949397909713179539546977164163402791663297059199778051355420120594075370601676791159961442203645040822663237633173308757888891906982289282211229366746388896896663556870323781993561883886570021841822739023251658258975678274598882764362657486170772963184937890925074396400199321580420995104991135584269850732928591496952723988160452329113605749664233236356882093867834628617915655060399778181576557666904603908055922531458456198542147931024411562837708583904030814986705353889832744939335331213671719473739158359582801049709321932419318925688121984539899182245654240783829410138674127727345928603291977719403413455050974167643813222599812540420467385066730023703386400753537977937838223257481529041094790988527583332493963309008275359488719602533904136676747597695823488930407394603182432258879398961249416620939687753856578529311225978070547939379696543303464730381315553647900162181353228432510302445600934846272020362734218367466112417726532838674864513578337883695361269692505606919020958860739921137306827203070329106534623172019442601321601325834543288560110827022457616730519690789081681907878946619154135494337073072704706940336324821870722200212516533877243181700497554590075836405072498394773851222023333321498986932678177427420533117433669487295239147403887862849327148326235720527647781313578732360513511464014416046673306973237139777053482971370274751851000033481169736030470881656034368449695447709384520955374385626455303088148112373975411266548880708526360713260423582312289465545669045238045261578425024980240732857402970779658121389945661051777877056532247881589681339496709222397627822309178327119850328450313145854815066247984495496413769267843900680171622045745818400082487126891925333282313868595219388712935980044239414064099468894159790063095991835511249959430325561275791597062528265833933300207432258950998561192730547208467796980624771930992873220551042153907205134808802969636836633452008471358934795867310260283918425377905478899449804784733274677258344970506563504046628834745103207014022053239164048996845460232923095920203652328615453033878564020277161958095133424747412326802280423897888319491478381571068540589650878114724148822720122569604836921240602769111243828709551923836966820598864573564967452276324213437367787511895638044350743050281004920048944773356752191098960586298733341094496217007036672677522291319092738455330352392216262151963340327819516188963662836545011979223525821024619552450435819656225855868741936226663195354752146019477906174807633539810556947517460033368371391158565397097571459693303511195485621030204257942098924558406189030154734388721665089791420505117306446515491118345302169634955451850575857460317490009234323485525836485550603099753402104543266647428837445551482719712563513870530016349093791650133571139009087273921682515477162497465426032401276879726773265989700310656058782852783817481354728873233596196845633251565014232074741673884242984957783845115352368757411686887906130028970530122105129846387585495867863403984581580846573042700354856597823860394561629307274739252401925704360517354452940106367707279277985019535853247248447182098424820979498467250947824585373715657259385615403437911019298450898742694971425441125103088645887584104275065262703469073077393919018066562258255921780361090130899660915965229649661214409909730348341165190847749561355829997094019597403532581677188781731395961916029849408711286751502570127021403137494142103230298754563221796505489230931228934831970794287220528989945084817216914403699964271491640728267197234773760206353070207279746107678538110868560551956990815189699148817881605152101121520178041039915299625338215820514420314108072618299984514793640855978455126119387133661733821000916632751460864845263556433905570508270130688441926255554088204767161179866796249569265456337626751167814439915372564320630508837892343108508543511444316283239156775265933863230856981442770721575756147844069191319379506512098846146759138886204935545887874415997252659722409047696703148758023753653095437453542730893991142883191671003830689907162304419784781018662412930655196128084390910532201489273071093846596335092573430793787784031343497287439692658119455431058671217611146921867657831862774683748888816054430669022558046576900920029109096199204938988648234596033692605251315006340591679628026182953426605163746282645819480850595974606395061951565993991389330133341989974619984486849576132104478187183249628992689251520152540484110360682730836278963496417466015980079954951905748814868621052748380965659996644129339941794051036264787420861181628852526529355433996979004040595678453064016193218954690784908367774180039351578999126391699018197448207096988183331456502054096254435628536593610840596035591348775951995682229993787524632947226858411736932187305634853110730142274137240268678659301025659308931977995995433684216077592905316739408172898383470476876100168852153977624568383157204567309665850715917299930392660781173095785669643863507289888917858471374939368301821243025823148263627681547521288567793365648102928809519208830701958626818516403584363359770302117249324495168869613059906382305398337470509859513779917572513403410374650606221816964116055314669520166179861815976028679993828156125244252259345451603649524443996242109320803810546335615482742929340695053702247654598137223653341316853720372329087265521549245910173179164708672128019173947125306518932503303808602567360318403831230668921532073828618675377691768906549539072596343582010774908732116116971505509831726774651034793170166465603094955751979193725630091825018220527720879543976856378682010344610076798604037510140541947101784566430822980323920300405480674885929095526854167916502775715526825657815085308433166064177017705265697868819494908916060644826939022349614635666248487793103843604845092569064726987446777701272799065288555054224623814407430219973351683169685677540488062473901890498872592525416482761593884007584239244009753089997091607634183308221002169340689488578565714485463097581079210349800655937983187247960973856941660969298273777594051445536196117380339645479485769442572140381729712317884972439944969442997950898547262839010987924052969203298151820754245323672945876889275153698555550489025303260113708300096572596674401910980553591867292847247498777839942796617539648979191318235215234998072182350854917602969702748764556145929621994505554252735406239448097194814432393895199532479264099852299351005512113245648262313605055765602703791894573113763773707597444801497300817294182119236417691551796338264843341494248334006935969696510993346878066901347776616224521397599111554429706916153006569954840050342069765916632243043371226826734408122458980399621158319430863446783291374040612716441730754630705471984329745070680746021717158773977553298575797797369516552338405407495647497416675715807109699668600285229675537868736549161583046806856420458579867221164678308372079793989901585925068699443965832290972051766241578661920192711669952228658540185760476911474241922553719565050361943538242189757710695165696490271702904090438697561473359815863022205245885468199772538865441685102298207184046072441225879055987645594987668557425551254011037198539438156911351828012792199746891381627150215604551077239286842677025364043241974298786319248267459361230667470127271269259243993522452321044611748339584335777401967813152875660829867252235425968926346224263708795498615348528750382365523461061143652323619254925016537866925589740149063181407787973472371405006576838091409037105799534609771136783698802608562127285308127844911696236389714800738773595174586056019399391220123825566670381076565688860782840923685866901058932503944470799505859938063049543380912816589099621675915996011740380416561489701040948418946683422912024247965865624685751129108921369023226398106506752103357848302239131080534395961594671846529161627313494307967036270312931680151609856300998019959172381456066895569529720969160144492417004781861353080097318621630180262310470906861865043332810223064818041035945126262028234271515060470633852807798977725718103855792512526187214813708394587033807587049251307075675342365346894200383015838814323932299366349416048488307500814293397149535571870518111654176303398799676153713269787443003933140197605252968669175842206742438875622674980200466551132427925081506036870222337055287105371593664545539441727438019298105600651485969845667241458076960237295423496663930680662428834431720292754075545089075711719035300062577365803047910853735377117280424753947294159518656416531694580575205824721024378360174321051662041247760186246034692889776467416813817154258475020254822979135677799202718222401202834279488322027118176328484939083888788560621346170361856088225983621947172578691880057842037707435701052060552044643246099747985118777888402478915561401156086716752211390370401948525519835124378730965844638182576177698561606509533678305340822946083682832839537706593498119032499932618211723859707596584667988058959263088318735593904070949242121582525816360875016859228083720181095912405420354545265389784784965357905427090486820906218883258618453292725858612176866263521800272364499311556429226477412214897216913912400943430658526828136216285138390741416955356368711499580243751160167394425446084267205055771363731361989138849578519086995990133748531917584334191069438162889180404240653887472220813105676728440102754296507018548744155356525861986414684472816743413555652723164898819320360274407134854528094782163257454345948491401305803000383382612725164769457465473668073706610513918375185148877552835419928818980776583004907434507065953054317281860892706019728702688672361876727549626177210348227532646550102285089552985939977775977595308878777187261574203877837623433195219431146182131356314460669962239195969120652895804898363895825444363081296382115985521607539949633143702418627750886729858453427059860838669247538330342787421580526813166321762984351071998344239159236591704121930884781035994878830136215636344418279587584767228438820038237676345911338541326811972264354131832677595318701052185092333166990149036499440852272800782011192461668360250892219427568015370293926725563140309988210185068012742658891998868745499817164456957709996086131757752108657112553401348223777378287338480427192760854267221370410718164107731816520746277699095395741858630737183022937451445859769861066192805834415363860620417923290680505798594673493887496602691708107295554158008512456514123352361961113489198421473621751476863600586255115787604147083995701020083303428788511516052337440924733536974391371047397624207768635399307515675250454758742824359347895771551964344788379705586398250305651221662021800084251729684436217335547565311304933685463327272892289182997681042572605270308945362896393183872525922875891232397418542273063320801319847896577423608282899458880219058757127313032959864378576940550254028071199877650426800271832449003030439651493495027600973861391645444836958124069124409542325186714142836271547272683576039845261038208904309397002263774044919150249710943108936391067302320667266483305212241188663925830802353980578046440917097380578106520211301538517738858696169103745789177361930163855656625987193668639746977561828626343308833149493685704892980738101123389068072628472375696998985163194425555370244753963340002830436026408527159122857490869271862839118963588169005218845474691582391757144135030218646490634596978440107661947249188781732387696299771212205208338392712282003908638490417430324752701947455030255217816487811303260521742616374609544011178814550350490773694750000531681128459131414611953782712871618417600218028834570614861579768833080735566495696728174278432857342531812741592609522537643685387660868719103485740517243025783503717009855402753730251937517491997617882759908000404880243962451789878265208575160860160242497226407651235399291965215065572619854125517103685520660796072187397047411841798307769428486497426888563151131499650294730712449539934800755386953212632265398580905914907912363908703925959589798710080215160247753975499818652864521555726894104700862650891510119012284004985559177462096520497552078209734591220237827726903384743616093405238592439249928232695822715347988344464680288780389543718510063083449341342285086975430397028155776156744599732539323181414335500435994385085070586964810384386781953631922032647654085987517987959764830360008748745633386829847665070697919643567731974437108319260920441635924870006650607015996981969345496951728974427262679258985530949639681381651256484720379423225682644691768226658284751014048088268729279148085904071840128404714471179702101051308597053517011407811855193630479755514370638912771471479138659327331115136666944507212048628188689194075291642878631819879825504957481607489380662244578961329491837902038808105496645954081831750295426831614565213375158822497365940598676206687221425126678536670569055418338901803050115750232304002567762780918577541228226101314242709395554386471691304675729475701599984624781848689806393495069612118508529619108273330483794575375714555051021635321529282079771711045829679847955473476750524553058929104444616592446182292334999240373565175277585895209174068690603970699749023236500021868790284467808908176000212146401970375847369988199134511629356918515294369978741380226266316184770539241608286480434015473963851961090110798841986391707388899983022240697799424524266093059731591910922962251061323654550911986851767058908287389891364268779834269391068356279274417842908778749589519757745167554556461980309489206875226161196059692810888554793682083902919789125979026741721524577731898685001141810951679504160069433406593842649131063156379863859341433748943319129876491772429647806048247832712805254059322377461203814591107710809101817641244795573537952413184668960086351407798929568995834775257450298709098216144197836447536279094411868068302968720203297978483906666602404172206265453799377390763689677556356927475837006977235704896513859899258647310892762522714687732669443662083068362330675410791684868474212888002704718888259826150249279737461669796933044504043625927353955084327662394960371879368061176266338628051035918454516890906539868213581681375719241816589605949761848173825501123079637992446673414567963969776530809112242757387132903458950425408301628990530143918952557500653002343367682102617417882364811532451998576091101438910354641889166254436907244192164530198938038462669088262991390787670256061233012069486623480215951230387645914123801514203661443329819836581877193557353487891678196709127367314557756365618270066462418397098008057268782155862326288985102514793839445740266668377737822355424315033036461291659255274658785022527195710620545357912484718263125502333498295257645662665717688197308519327982782977472600454371718656853392363616250984153639537579892306732573327378357034802849079607469833980711810472076756811777125715592131432419831596437268574941287099332798273780800287550359416345220450937987404932938099647745176040197841564326040612496383011194829689725752629862313268173105063430692793653526726183511349678592316064839843208620352260215797407591181876708228887219615358780559926832068294260815457844096436697046526923293371026484025303432591991443340881756399157540595717808559431659083019280521369524242517563704242452460536166412951817001617533687642317667284912939615575733575155109142481174912065104607455713182401666061766881072995520274908185757353827010910976753250157927106596783954094718578349230584749009195232361864566876652882885120422174873657959795253665503244556935581848588363277958729644816653532383279571049445735871293601965470387820034455574182116566557892883544559441326165902161722773613365710737382731782308214981882469885418695226410304012650356383317529453939258343585737472498431643800292720141194853696444356850507233809106326188315886769544469149019783382582200751064819904497532744260360677031091214989754542546589156570788253566134068370106379666559668336729724899535469353753078065493731019548145986261882388194086992828742920848039329901742887956070389847045118188606609297703596506038554727729031517551063375471624405648410380947141367709313077822189070108771816143102998017657638994450249331183065947842848054992456207546611665243187179189621634622877598379341291225052575634025337276588983402490563464625921543795091006030830370429013560134617689086518653653256623540624646354963977112879944399588532107356643359159721240940998260318349536738443904015677298750348249806493322879074979368364504061705030817654719902755587701809112993776523652565011659173956535269887681191932010099629209256301376777811231286808121219129153832765195739699680975749886329986773102603462160428925813536370952013230234300547668771496394686362390116268720516400944477880373566595446322726135750753055457333259285564271169987128201919781315451037936658430684743879525589242809141928113212217883397267561166446269044179354000962780749125921161223134369801068997618454512567183952590087512249116886807227133710981450130955346599901034656133411856800262306074439851796315353827420017724318564103923298574635768101249013550538600902864601408567547982497323273413718192285464383553784873953457746412971516873610257133633800986276657041650432993047991942274612401210195379661391002195074758879061528703261415693530942338886483328551830006206942718081715485723286754520848860497013584210451479785804650580065654055825030464056360336432263926907261198491466853735905753096977236400187682988863549421705055677167043013718680469284662181812937715712380820988744967368859137001048090177111901754182666412585575531020197558594451572646754250247973399245760911016680402486045039314770550702481197577539648097036879950060269256522972456990898677956622219683377823578187702006908823075774574891663622101203118430398175528584991014419400514779613006374785266747340643236130627069002284405169716877209917707067473068488830290762027456997348713971969113695131504954409827773515674252410479480421552297751537213993856342092105889536167931869786698671737666105926010849503859861173805764844686762842636814609689501520487506723954068598117740224564644926959618890914490149291078609390210833915706484089589977805492089180582549717314329997795596364022195234205329044607737313043177401187323225187597065178217377177212411327305362991541510650369377539469178021609732840184572225746842424211376914638720431926770653547154524245651828980010830421035710207410420731123717115460788669657528765604649789626217499759574404006964587444158366906583634082603469495869282647622123052302580512121594671000954349941572892000786526852463918784734856851801341989949032908277278385544092929691626203783876601428168478786369549648959337352675687903588735384800423162164553039692244374457727310942483193681631345287345351648281191797321276437984516390364913118749064269095171454347178728451382490315491170337644825829390844721778688321999797510769559251124555983714351024980920207441920985903667040207812380085796986144028116007783859229441272068393953832553878376408514973035768010278987284789673084647154105584914680020701476187996107606068991994065972297994239118074244944513257653663206520221618599420111977480847033579948271284150685032985750767655821633895219872902227910634961035099714350959202234445301900913525744069814293936999634204335371184981078628341260593339110313577720170017335024306670703056002699016047604880113678450562880716793473744711365153559677943116372100944265323572412122398964533948244127740025065296193279875634914723377837098754278356721937556883012964244955936016097491994979952222324264481899759297114011073396462762965180947272621592068378449705808792824902040958173238600984253296310060363200338528011822716030446626015835946832922629919108123937374291719788081614601394176760708929995580859621133901390678149540706899569475530449520737723119665360389001196629457181554260676194021267000881323415549652021724913627675346010743273476925857046919370574213768436880460683822522560142161349012624546586241598497382422267718646082303347430716925960253211909306239839492990776808191619113551036929615026034412888178453667983403758707983010079915190906650429602082487412530861692561033922200515146702895114301177189817492871847686138395542382041525966316286427624976489330648146886090705492010854270907351656148568049746806726524606324704393024476825249616216179779918188317518600340436150800576602331417552294916834158701538272062322272216594987693986179336718153633013345642215385018008655974259627078954312766743894856075524851250737519314134647737437165661756477033481398856103437170159303275790294696465253891668994967610581121035383226931561668810924636763402478276104796473698057567749551669866217573271159405182485635578726274487816298596147130179395957354252566043782043212862951731408050180745336356402856150002624775827920453908165802003597874297929229005794454838356078455150839871938383634409820610734539633646694745472108942903125844960132000875547124889041511837338685450143586733296302016006308843534501132167392530503570187491378323051010295338808157970511727312317861339942478324538603356666511162240618290701656499518913951665289124214589195519136038292891186699041864179832481621956686527947799519098212239589987785969322191652615238602434865855586869285434328910101434928804687956122624187753369348718620452183281887155314464798887931694622054326141161972960969521270212946676012619120099534142351714477278157670940148178711586156273622686368366911673259110805718513534847077221637362909175442401352503050920552588490994486243650988834186493413170108252442786295009395137783990132968922145017077833508266988411015978656677251766421230696457471046121596705930058330238146635487302303105530090994351965180147454051843897315634192279075814718913800163734879411130644827469228033431532980595276137860177943337899885450131882953999436945957125003529056696266595736801292207609911806882389814181967996831042037555346132987693010777923339592857954740827524354009178893339350632453180902330066683141483977618808571744620079328522648040853552351649186294516855415633611208521491197403739708829741985007577265111010692076190635656028298474993482100613830092939464354276733526036297065815865925939474797453051055768628624220886754257799244713962402427151335566165843374480090516779792919766034289590568575034837804527330554279389714003274570114938798806649852472728940194961458072525622384313244938180083269836038858931619196875857269328234175994575385121155010022800149089641832927962732330563072427722694930203766001747289252416894811566312673776439470902181292889763929679338856857766941244954936773303790944985790581289979524078673849721473144047378572331658926352962643418045342981517954425000259290115123659186594524382410559926595322162860431388290788542054682305755171860267503009222395909948996733957788564806781799260818636637478952429902939025522555549998702276288693377251799532088720030529587158579020582554522421067411466012249716647965827578246711127831498059805631914507071955360036940850965054526958723690775399552654321944849929573471023337931819317957331004956348842008356247022968906017631856674092249430524749274957860719306101787153993036915518025957278927860403904602881720620163767683198965596459336516965149714252376674916560799084625952097835480584256563343119274969416494708940778435875454168387665022395951875930974592258678164150335269949598083908308903411079289775553439315083654012963693398053993661697552651660484976181209080681085656101558755695513036862670839126286431701071631297993987879555734586448495922092004869712574242307826548853865281362486613607528557507605225652507199925049726699818386780765211219808510940166824545234059120712083922716603846678809504019671192769683452699661424503908510881333149536124343386398748254156070130619731051039520024003386624014733482916073997136321910746556120963162740331108904832501888067066469348310715646009799836732570284405002606418208872930002654603579122924433147779183726381303824157394395423098335744402282526874868648291179721409481583908074367689412471987692573863777313615909518892983622055788659993928395340457348270478421494773193814624379423815664933096948224096411102039657873873531718819715041647147348176143475116177072810408256167465375200098777770044728937702640275768302129783839126081849966733648437414802596994487352622212942615011740606731178039413296007054820248558248975282369552330477631018849536874386387140600814959412971581700348303779957838414248995421435884781924022419819220564439837846100846932497428929175862151417852597210192886728212150698359500572355411251225645792002308593047900363558781829993009201189647691522832066629686614325886410907419286558479104713350371036250670578009683476542517816967184945646295452413309516103784803289590913065173111059585633530329926877639381253785027880892624583382138016279751056894170496436041222416948717896559481421561954666941737643604196818458757621575215925868581139241586560286648915941223906448063816349703467724484180952334894002855025246386798845184573625434679085701390925217453649375720839259204509565200198605315273515911779406107298314281615871640760042946326524250837788736670263004427340294096725076162863605966493187931872027172987996450151615069910449671727488703689170566846894121191256925178357305342538376358670020544974621672077420392558604851027714732760604604613670024985742259043179824795285259165860237098635764184226107776340393221436308436633811518264829165134677794535908329918852102147161569639548430450880515394455020938243133236833713642080064643251006551702369719509190937153844331302574560791180494989478827501935522452589541639158947601400694004204379339375605398311183356992114600382449208382332321849373284894777858217494112671462343857906808965896333845697936595794237686740037974320790772373833158928835946525593323422365271504066710821011715196162988153240628535385646891727426295679353711100946663008162471141902069232405848597263897496194363719979110995226306678391586937609167622682114487065069343268085619541704709918858495165218662843119929182184464930052019607548713792343289410149394270119215947015162416981277567435942645856073087244859722143211376558039936906341874119430736020332357290448856792149534447734204594748179347242325853238882098327961812195944122425249936317731515956016127184464443977986618866468712406708532395068898843247688961908763137218237709885996867186489063372827235279166543471392899234566262949888059633214675123322231678161811732017368681735912130846117282705345181370915838287093746050779520810406875345965009434181958968915140869782020831906409704325894660734372561823669638153014887533941657240043435527673184284978173456919228900299121912252800545298667332473050516335909203240147843629156133894576917160599799653271215052264901653566549806639075248516211915829992741541001080044440399144549097845584818787454224902365421864821061968984812924463025209859763445125058992320952308781088574785422083882164701478587007866850280355714651352293351131125681277573895546813164875438514776754565429417744253522346150971312449509912316896425135413815890944789755216575564455534702254136183575854020862504225146086874238984769837176750444561058971535571992600763502974252556668272598674544114124550655984066785774577039369201436858101928282609578693767862034683470214226604672508104824554903769606817883669808829230934446117968635522690674455620266597122054186010631722062331034072584665591425659705425731278353063868009549647988740452562379482823754100975226078814724476465878704428765000178917609394532128926474787678335331658798766430037511745918658737222299647304748995544641599743761159636053751657838788388862026049916016570133452639848824761773344003049614834957849502462458524829079941186467589557136255053100602106752492448588765630905819947099128546097393431565309119164137333944502624645416510718238167634736672911279575188270958725377389510369055978961114174290515132753327668458477622665304665348373851923805263037000505421249703910228807342058906891193904010249172424738937050538240579710103208581826246335180354153563687632235350498199591060345089590396833790927595749536620926793585380681877909657593216380003881467971692492247686682277481190280103634522689859532672952120741649972640916138238695353417679732254107930300772870160296033952262991580987026561295346681990819515496392016729594297813292225614746002023915032087154060425122119405476193453904581717011544658753135578050089233016993940303603768288886893339757628887970567331809941890472259501183129363067013706459530609780063003623836268029585824191926053942962324675919458920940694156040508324210470236326658929904909775630297230616899482149007648858906628662588071585080385633667060710628892910563137745943411425265534361863561707825446076789005463388619218234017450611473033261108910932164412098948108033940755835883155444136876313788211448184398170102681410685905324051351363652577778360351110472786463719658603465494783604455879534697033213179894527789080445961631283508386010072057588884347247111710466840191045484587050163977092594760077716948787029027426606854913356700757492749654829521084433498215045211535382690189117048551289612589091493718905204360245757031560323305875190645510049952523839180968689913355892610970162772338470092729611242185165049265113242061134940474373401372908289464572125278998441967818358593202202966534774823551272940015399674406069443720328042872315279151752099521694898213965924936763883100459215444352121549778848597340508992889140760619311690686233820294567019206669367018876220746502903733447566809108419455044448345538301553539726883652451887164599113161305800104964052703530575924727077325648316962529853141799586674709135690716703432704625852404657707445065439554832364860897278581905076058102832029409487294108090180751224660565082176617893378630196263535473195693385836191921808491250457473319597109443797350129039125997970992254717282772141167606872802501547312293889409867486979202284284664691198120409382216730876114890347957414920458290982724622292263167774677794439578652045351733828796854482981123812803482304273278502214519807220507244050649955688327564254536570325419347462576919655337799492887084038139728912503248262700829724660651984358773102683736968738716933442561067495758805364786345754166847471688158206708989970091004105010219120621471487699847609243889554334266170824297928482236854379705717558020337170573173952728258375504879318839220856368437360594063789329091460824202692383341548012093030664273661040553289820600646247447879863447860224642373009657779275463824284983303160765594862212727018819378951245877727507643154378424686664645394061434018457730920714005686464157278887825134554136626820839927912780347560642288365346563904708222826263092348064267748078448186630820680870180503091635972960203497623695055554096874570636481438102824358114879196069705145120447189899695649336293363664971626017343298618764095006844523818256668999396433706458806165814949367793143832161583194998804473190746620586501069424103217687448342956320762873427646896940408640411180938030457302061302034473382843396449502477056537487693129512948199086391976583924563342964857013968598130536293215086893970027752705544430471102073270629705022691288223115727360676593503246224851958381891193451289292516942406675359914149903130199616150076749467607603322786914176898568681898088739860108760097789862080026133843895022127974928290226705424262910478943906292047730072538793432296721013635638174999864165528385142671026653415990550200718904706258355468019746076763043510983660790606384331287084866405692800748745182643603811640154779587577056192311926349358165177783103172579416392276931091311263607880708999413494534597562671081380017681167864316073845822161216948667767070458123817417878888816684993110407988244390772200721696614302608636299093625997797787748739272384016727677445128200193983001898855379754423712352474558217790597966777318197282705205485247056270020482486819692303110221670966856076275864931174633702721290382676287574817356836823948824270979603085559618834583537627539083022106274077349579812078065685402978657533070884641388382386286279264805221216993875475635249377443360176883968880429180982296487225826495868495310528227855775384768534572856114760657112094198347749406630169746365528198070340666024424874594002115922925507548308541788182769752216420500216527985653658131001234417685511581189667219569026214239817859478535772232700274686023881303886508113169356401584482446513829584631014322227485759263329074542820162421588960154652507096075528285344400958552903028820177209886934563172664126766673414504180082119274033243159401498051897098046724944741683981076877581413982682403898478289652824330389989637694295080380899733307169728678841582548630144091305834567183289420671251313567869340804049771793039094084908082608386772953360871233704932676322250085962573754526331515781316756502606488067438351966524162214484318064628376156150009818728730449729558634325957098942042598820504877961276335715756742627979435163334684909904395527482540737687013061052437111107472435344732467375822476920698534684367739783231213392651270485552089591121039671481630275516852458477257977545840985792726631794936578308616822017977464044911502184294045533111174362877509040381849685997227585515465147018078338955396825293254436271850143958604761840901087797293931512444027480351730756321901886264112951658379855580710859156467129892415948645458338902244745369664275036335551197047558597633348338277536666799818032799559557213746926812364385025279429953756937115944834111722847431707330141554437912583068703189095770362496370270011372277246484035277030041439834777558498310827069300666340068378219132319358502180971776230715714162854346580457834441586358219165851741549785285777377505132214402277153884451151123399907517351456899270275612388266153313160533310800321983731139014631071424903655629209319261360843480667186820706658393172928873380721350312321422868639504460149968902056895926530360430641108560992541078838186652516282121741381905562660566376053489748612868767693399604766484779947084429760705131384358103846322118819679990015697109608052508963329224961610198003332135789027556744713045640809856025988301596363423218379331833651553517369896026722506448409287619766448621093390402437509938346034219416473442238022174219930165839635360997590159485949076983732372868211851353858884208295308351855121939246223383172978343714051912232048985048988424090138492563072180944193250465936204152448918460496497683145650241166841001980979213170280142399710114214213333830265314746249321910542193269236274849501176687983276419216113465758764050354971083444031514476656016076643629737391380542521570308334630195935219048290251329121337729994435712537796231497749213710894399699631387518680073960809726506988740512360649039865773782179309299407665941142081010858580277857086307917533307823521315275074531859610131293877130114284543273714840874711298182596030710633495941965092331105100056844148191768942129177546056516309280806223236566462237383645645975776401688206521131519531445554799473995036659587113644849742918393034837473026922622959594649448009123729648753044396614385801532568330742868071539557640920724403352023805018609098453146649008389311978406430022894668178757962048669013411829708612898378540562910644287879877462992886189393039229267696806029084597320875513905517671468578985300178406162215532139982784617239546125612577534164422564059365777221870551811549805051993346831685508315150832900808835817711478555117348221639285000198161920720898139582479265197660550850139705128688618713609817388484242976115039931547378752064469099271572277418961444803477889058522448544314795600270282989779252357501573341945583258675297332610695493860765136726199816157545545589518324347453971078630182780068799549327760780529562653776652884485116310852586259454396939868743813326750252960950657953229136139905733603911397187531104646243610953781882233707634017231999360301369464321783937635717510951505328034124206941607940659198325302013651184086666530066717967231159683223119468725858580267792955229276625035066811063897746981131361349324477092998518254771755265063126370709839654105923951940008895883407538477051908381463446028722945627846808550493353511569278440188879554845273000757798169793874141133694477935191548285590211752161855811811474133213952817786416038301384534270972550063608761229470375918111676499868558644461930213003889637039520125505868043398295153000903914637537430702904142895766181219943494524819067573232285589875389128709249669529480863991600711465926597291502012108562413867070037670459920007274618087055316153450164830027920174358929757476552802168458330249230094772366728204976500650467529045384712107348320186942478625693649551984312552463465479617488235685815660845070180886013427407107866874929046337581311417631673703719536475043626679511855986160139335904936511430984658785287470306201647553307372882780759299096162274675201676117599289674964334879453024760800800944991777198288510354312227115322757825621099570704979850339017585081623848693263775237826066452718513986472437710231560046544238100618198396610223979425386157841463982848044582747256171317182803430322413525289310762442043529522430140777898263082678546272864855179895661022807828358763005934531051034724227888066208291314019249451249907773038737139862231585286212515532399864535457328720896733674136435401281437971203714900229802934100434181885219807624768028455732033447066756171038846472240779085967400104581318078244177114260047267162981584629344231030607041755908913203148294749651564063996198888534251207293786129239181379144258761197346724143870751765069309131205439648874267899296502417047641167277354445250205194409883009466508009497726486174981793724470017187581682646967915917628686738619385973495250639568836354973228143316041591511310064654343146012259349579955840027539229816405978294104466073377401700885853621154548567017850772560206363864196878412711317001705044994307699265248881533113619789228942519010022516696291942577590651099588069324807462721419618713300992123905650898848406424702569365983708027057249866427398047321498544143536920271775389984198188379779663300925892407942942694396192433330643045447766691736091406889141722238018375547690110472771797916383614596842389615101229115104365856029388361489709493610289164871987506058995102344328029058734859529949477030995670163494336786524747903717361959518633354117532431321171044320331231719972401185419623040773827584171341473155622133375298683777047322043529933781187170799183313880886183873036492283546229177541089854665213712542327482880606215740957791921426614935525464869550590123847857981034691389560529983210421480698267952333856118365527524510295768300228545243013564739358288126672326864924559934509505216650896556025796721671810474417395298115749118987041828915750583402368390016687264467289896822760388740876449104738585181831462341094970751223657194976486517973920889889489001812903969781218218411804491851979185971087175753241639806744473448788699955303149908031922674923342336888636948334083025699712614365495667799495895421100281266041666612868964552107964402787513106554312291315356679550706568508199075976428211698559499069875400862350115059320020501567337306717363614182321471934468808819628493648514296418594997585436324516104164527906647453453605200538595503143720290349987114435712296365718332141645356200022939933708472223312330167804979684706128378950914251039909198458195257763192573046295162750735781867998616774029484063340153583338221266250163172243860241645069345309901660661604875538950101647240715887502812593521147037329742973996897781810164339412223748029016349978675552473565190058898793461638173397732573738693690937069270002680086237346932167859009865633227803151460038423799505140876132863259453355193756123663509431245833748794431957020231300798150914178038265256726004950468199156121206843648062969216335622506692696145833263996427177659797418163061413664888010298439380217149444482556875626262638963404230734889926779103879581087639677493783383844158834810616976501938973302842279172660038562153047817321125403596207227215030791732460077888463042731458227898699291964647021147181149974002227519292946509573369797940845677027672023372963592398516677837051189193761878226499780243252193645018941584405653712853131340686283470553533539874720836579577544969230943756216599870169214279615984591330167379039246380779948013544082923344999736043475020400142115072312773769986433024903851219959357254770880701683110387580268520188802571544506733599664871577521548311573875600273157905989305444561393806824559316760249961764519162101023980709491437326118085867774190174525783666262686064362006696425727794339782261077026051930083969185403905111589767525927819654579540961928365581926680831787551210674764552413380805025569408171515145683229069694200542175690697621576576262465841147615124456010501632298506346313810328323469209130665009060449114895085082234930872762299728225374270421053933438575837007891886165776218984716009136176688274682722356495435889120569042749305248422543197222580211701796458533611347381692042496618380601318312494008482241076230553398692785805752965541440245688437675505859384057160168251626494604928807844288123550894137606848835153426853018115916501503264520702417735518470591043084797714593165018585887593855902296092442795758293474639670807672971659299795503556765723794908229696039858740462325636964917106296135075992229820006180432491758314814833726175703538128257511413770307618597781725557923283967245439032140146194445604039854699301729164321088246344316562950157028601226350659173689371411094698026566078645082219411305677129102744807583128193931056272059380788474465529567588843255775099991572829269510038233331191334746145644380779101267650607014326001269013393440842783384283577516443537183707476290916407789399270553812376295504190013564334392542874960493005943175199906758447090027751867960797966736845278954627175469794069666708631475412339271166491056096875288864405863165964957489667836242212249279193876898097518279258535864370119305468736295442422502651639881370533383494666413478394059956936171561508179747699148505113864167633135253235013702857535526119514455017236585974873844464029670030348422510030069287306984701127581462478718171392515211459716077996038724879992245491436490132250572031015548523320183572337460933525087017394975785332004296043587040409737007351102497426737874091958167270811864992550390700460712712108168839311243020545460762308869362303523818269154202821011080766187976673133395019162727779175969978541550165111294763964848029692916017249904737324411456581246916277748363991469213158652002148158116291278730444567678469357582894993246114018851911473881365509030971604031145402701549626868887746924293768112689939963410226096402150669904970726195252774503342454631636035575076408266188399351009593667617519960938861551622176238251129199303689677991685868618115907733916891161379639368628898832464213964309518718412253356068769899438524205236714808455505092405305690487015829123958432037942619662923423398446495893456416837179352430244573051066154025914282185322868675897960836262798223353368750048186607801345206187379571311236918881551393097400076654353074454558475005995753713776283140756833041706779314139542508091272186498753701214857462091038692726167499972645013253114527966705293926903527314579965250641898841471486551768940965656878043592335263602399876997832958346597694670272447397627060889818671939769748691318453219886962302685336654101154653969788302120762834037875987459205694877458669857579396572131729073355925222648182652929661895041684366198889458433746663473880999745562424654931300024129427597268085767878311829879050445717710599110744762922133955893802651062511938231131709584298161292151352958610106815226296206303559306531629199559009051277056146870479643642179024736775622945425288216484774866576025412916600021051241450012425129296951532592931251673119555596765528343913286945329750854001646487884038906999955209427711500870446660524756635697568524399148693880754847653910730113666568401067532404418351424281625542651200597061503430179117708411177397971497976613772689665860883650302154217710823129094561032539766568472526853889284400060900847638284152819598752287890816015477406041948998478438331998822009807923330107572506020112888423408757870525525443629882018026624101762447986614507702443333377682654318472360549425199809298751666872421125646716908599289108310094617081780578899789552687243206813028613315344485387609496500832008740069254299401531218929180458301280913228767666132623301309303388701419482159900872553315790421056891072416875346263847002158607957575997972916492950760570852580893745402195216866842782372180019913639220337251168042987875425479174899552427566488479985448762793320036878881128279034525776439815286656612472944236238867029506741040221420546923688389999110532745092417219822794195173977616779878291272709880234813675013865778704491879169350724616461021132959569462220855253053622965360693420405179468336299444884156723678337183225172379362748947323280106662690912532347394334385655513971066171365523534531134564180053776655934249623024011460378731044390456445312162266687859034867980899007991234333095407145245879995361477129281058397405079138953278230105611870528757451614763888196396561640146275785618516650763241464040030413907322402021088981228890676601003805320612828405125608393813244465897183769938974299588307867758618658787589399530780939228267315522770803994266235542746205199776088473842128882966073300805231881420889213523765153452451931411992373344376092879741254462701632737286883163407523674335401360141810394632312528803566410996799927821830839113208033605858362521545989737961562098665859166335769418317884863298035598044144665577065065640027082953153247247589859827238503677091483909399476214719251963185192042390494998978881575185948448844957988834546169917803349251533339864210501467465601940031884655584186181610598317780769905641634660629711288547577184603048299910508394286448957888658048058793930556133801453533025189091283830808609320553154809964887349310155875602809067770817610556837850045246719747188206932671207725483459273533816030290199303167933235971141201704026144826528787617740319829197534330251680351418998603853263796790714227232277491820938195563522696881962240381041245912904497625222730187244941880141937372633111509571183965855289281101577892636992214536115411781041326164309206923107136917850504052916370099334389252612268867609612170023857248098167394321843202646814896253391841867460451060657935345018050915146685005947472347614450868312512780224626965950252007110547018120418766740103205736118934040617956487788227408197537043848096199004041903977730557121864451342127888402311367411032302948486980996134862903105784991128264109702279563868000258494472970664508740968599232650592237408570614707404484973106779983907702765089689910351716111758794555883804917662217704303347031264564594567229792379011408939599469749027741818953012934938546448670273154252280677493327970454946729965187613278142960663155194678275579858000873658342600420167332946286480118815120103938780147545761972531153056645949120051312958310472185385066077568163968276743669586122318673735132430171903461037804448176785389067736973843042565632497069234530455745853727673671461312473217079218844635596751324587035618451743911727998041958378487576642721639031236586459402980897116980202285339754229451150309982037239138190257297893600777446640320390022470164422437464828393394369789332999518930582874499821149293516188188163344363859835481251256413431761852252228676148026565592624163862867160782131430621854212618118606485018811392595338759237517225462757722339596172449698326471356128830693088834247676559246435959513945582276451266735282995106893562504122202760642940151644444006389966626919659308955539993776283951517759188226250141264987700561638162109675148581933545153170077539481716417561108153361777368598400918119870892015667394107094663764320086759007150492873533393890033115474182241345080514479587501649159071642809228496926929469744873635035274515425602127084578846800678881420908614217895517595638558495157575122474021482330667485483094878000083177212099440442012498497784613629501916069338478566053141857861061922392466952070565904932659831366058814436679083336813292664446530166103113415584106675170180253015652617748118220390571696138141640171211291106665150809252187120489642162543438097568348733207367893976039184319649177895502413818750914013752651127606684078730640896409857012066254109964709579733419488344237374622126502927734274841838205857965433946201040406033477316969706260090052537262858946076506871419849916475338518830849051529394877465186603443188779756692513206862972035121119333185631005550639198380840037409992103159488707898790613486175703220497045668071186470391523068480670956795814823920261895741280265712963963406702684571949948363699116244226765509055718012905955407966418105771352426800105082989034657824723846596912478579759217239076101139811602410692165860289846717389592742615215185057949919465593210209974817787546418387359192945243178525745089420494532271012170991653246729876095374593623477545335880704141681592007020137056315750065939504375575944843898166962936156912628642161088036563364620034709620807452386378806301838210165838532464578812996865897948996656678558193553583562393931768469606195940104814530886851785364371636340482823956068039166207679667291861134561106277063251651227702379018562213294450009481294154673720541755158648988008902343274475598493597315333120597463037796050524369000581497618027571719165666945418072403966337934842416047367061885338913560627947128365975392689069072322178983974839157640428443637921998365369533397133345153074044552927560869952750983527480644801686481281449254046280303552474474112889825078726489267549322802542894311784708182723001353112295118091831707727929657549668764375790463579579263010558172406853846792804175715203335088175180542336356021483221594893773089524186398285780058785324957733925973569255544636303231819736539366517311318278153658693093027809730986631624822890623956302322951589785932793587328977518213986321573992712193891451212858906716484233053756847707351318438665020180750289902758656638415257315020458442349400433039443383561638745803349949854844267221845024637491191906007423054252643316053798858589513375229550391051000346744745136629036844299219523083235432898083975330861494373035853593633262538709565157915171697568321477165591055007075923377824513468032748590791803037605489317900397398031737939125632758882364798406010293687491695917616759186736649543729000833486294839551382669050345186708442983023424435622633823834930534625037649121320003317672868178352796375210886632207638639382308503817174191993402131629940964708816962623751072894787315904440090065179352797076152419676010309262580440744379639172373540084821521269489282056061076664367509473864661081286835778926575007428796096731740209732465398912564563204411962912842350343164406799955260919245300826774140157919821469800748108507913975759719679163032851237043085253184665758983223468704385872495231137163355590709894282558226248266719371799453546348504620485617908495097735915963040442659786008318299647785627833764385141380295638741675576200527077878971229329381959175953236123035927082635275472987019650991803509267828105534748923390100930285296457024694307853802039800898098488333180869280282976759759789499160850414412644456063173330444526169163649039557887469593243539611358638859306061114307240277970767633020882413426287164537871066738363363383183720724098424637091369195873282516759809686063089479568034918416789714858830852323513884768731939052990914520299284559880441154322777206354923196108455694985484582277932055491178913774248225031543708219314905977754875863999528977749697491406149759887278320386459966757891602944959083225481564741019689399577968433859869053209441424894732102794385045774624532804422117270214816932340491191087525381470946095837626846355286953466916785472353012495993383761240418510100157770865503956716796557270983587953553276281519014131074197685725084768181856385154238655078459465659317098552290768792461638190715969533229489092010988077249584811947158866489631278344188605866529999172657363511390912214831236004175927265621732933890365446621276732180316187187665352445026562434747438021312565064381969130718331249823246080031839457661780354359511271998865449674070593687596556803252411143634661680157400889610177088585565503576985980803144476151905408369322966293219317763366250494708413244841091652166779299539161986741539315885363766853330692699039892357504815081812506747233519642528314613833914091755468117460532925594733523310816563414474727537443369313911088109527720807028037400391184990949079632164553958320000100303463789695830934177445336307906849453167085044421206422015210424102078651335239943537726737330037271393930862050176452660819285651524505316071546695302182847820597518301720950804726989967793214650559223778000294400378396565259468567743094103670179113220205855806878615729386183253858192003279129366456439588925185472004030219521900495357366159426901365682125288127686132389864561875491288259200477844636986357005790777562338215153879515585651058174636969003807547544423289591245038986100310226704604028929270594376784283452496243105124751068593540701491420359307297615914498260977416825771101864719339379800870175809038866644477366835639739654031112322499225345002242870462547045394612210767710555602779227602860252092907217028854262065140989380422609763454903158950918314423216654063146837698617092664791644979313982754778267935624193718515468310449182291923068376402184817750198462153512632250221611418453315596343263879304504594220386791284930645447558833854951788261763959868197732061762601089707879878635101954399404297135520360213734751778328983588871518305066133694543282148652870929299629973549319773054706671710670265850526417779567233858357679560050841033309194783602572983678735265353738123587753858302439537748732793660959421686770645360086755114096647495793848173112890886501465004012096284074951427690853266462893895416651541409166282815434779990113290500881961567211798172138844919534499529908144325359150035205931938664797463735454370185222018086315108168563686470885341791999315742680943279898747940673940443558658537086292398366771453101571775272838182072297699017149601595225582710479098008537402212323125156991847883609226787168302142130524624625470954787102550369528938589245819247733251028147159306948194009174083520168839799097755446903406995224987133888070462888307507887172978179128161226202289092401297637617482293758794546656678005237011265396358224548674591422911769125397156701146122105004546728250903955596986684900886903527912499944601493811206754528702646995774250168818256867216750438328960313763110659177862119015973215745023933844551306948797326995381016484026289293946344461388347303176725810091738831064931378035446707172166576857091807853313832981889230792974242763335711327905704059902117655976435256742424410361315972666236343931001721747010850999280709117247792540627589435622610918367409126993603463855974348324135379786444250995172252520121909469810538462823946573757644207101994304459340521274355636986161811404353511884637675962014552030679656477647858980089504317633880713622199282503948958380055417029469956308665783417453246195952395079140352248083161624131346837386003197711390159022933056926314902272661383414377857542497454292860156039742767810860224222231162670852736997754983069059896473935620748276549522915578396347358836122185758593752338415607644971980763688694668586136619810522046718293074053042597208601301148160076790544761952451486239531682558828029722198419981567587672579540856707682917508124463705519449519671645161179137665018789593835116317843957977885037410137543331916824271567741399334224489910190825410513665892836880696656481074153106821553146555819174715006142839068951328964414467588342066680213670312523327074923773186345382798353184616228472139676376773783642197895064127245542958897135196341648282795327389159738288497539450025468559589299752992583131316559591958011905540756436159933468714510527102781416005032301110590598436861330425105246937078639857756025874440535373748364775843509132967284721831049385625517839745405362644406481988433945585713624829370427385165003919476323889553301154473590490241479606887879358510582084747203310877486886633463619894364908571446766866336738843457915887771839501188483677040282657108030492747801313864929408992434921991091715657309990899433232001760755903969806722703546238833829359130050899814099027808785332762014945197660278002859309892677990389089944702883768828088835030710320959063159537062161282515441597535172066820068671323820541411756045143881860373902556862119174840794067639096124848054087193009957529878640054925430083580741091354792416566291284105811301939056974838093335657544506872037081098979401545163578579566523880214193899752918155298296046051658634903263262799609211711220444515864861264796325221990962870216552028033088349277576650795469571449328485120311830895012998376356537378243045176968913831873623317846815863013662851209657696685560262720640434788009353953232605522366079713621042189185440268390550659360237128569319192702513322801629077896421617598556014283917760782709999680090508384641281683580559967288317894640373947775263972354299366824537715188401273367431676473485606445594163341293878250707835762448787875262372672673343020629276025796591655584745555347622599514294050544890364315497572067167898990423744927434052242623464320615762642893034453402130727105112209887554568850343143006149633250423855060271059753658906123223482961525735624013367926325816211197656571041408697119845574606541588407181098589217329833324716866689892757039772969107884732786676127155161154092459331213577855008995365601217611876440782328577257016352697688282215692920031452524637826406912007724006940376753721587946249975968761550368749291680797486200341212568864401312156921517093302499656128518837311710050504836365120166029116663992844552414197700202254231744203525747171152424307308316024424798448972907188658739527398699584998625890058852816552166569707530111737422773937813344461007434245764378381125672461020009074124714051135720034364023087776487818028630107198237665443566350250999003095929994924258155510240379163405368860751188881776235779315855146981633247625937772747899217807376019763263785006690839176413455010912524112519411441866255010003040646849864284059096043610904260988552801877863780269724261168816199958679989847782903682044444691592386192232751794397531562806837048068588726791089217360560118344016713305263567114855137176422706434904591939239015687962844202471071595659532423194699531325922843600780577304830907857595882774474259685892696126725379689593271442531891808271172020085873473972559026622953096272078054998182867141777989910802314388608495572686515062810940330352596180505961376712145921167813740326348251211655887402925831125989368600675141331286378894484400984534889552375309541531035625298959701105431807177363487195306672966443907177205387512955188324420909828183167268922373201423979235030661341107775943185585551185511227766486981603483074661135257899452395224148233527986715037122122077369113361628321474912625344645908400784046948969519182681968754726207326536825806295034198509194112692208917312037162212743240899113997069392628959576955198110450517811284951336506335643914119063389395828808628064098816762380917970897787582662347883784053416806244536941585930362901324147395109305285104036689963531977381466958680145190410345909174210169851679565646403881595322849983147550742117268369891109151245623404598512872645442618844712126277010330000275245919496399792699739775983896406693020343699330226066618508672874932994705536284576097603227599823886622319929785251922424192147815150092902977565769352718511636664819410118167404715763530403945281116782661439036172715737678219387108747951336757142648480343552634010565725484681104948997926380564051662775793424439754930315373622623551782392988626268812668038592047737288649636726839991373841109170495313019056838008282619602594084082102633657721189412886059882594126639944184555056728975942737585531988924998840380265800680711066473957801608040176629267230249286814357767404190945311063278634855274820544890840804771704113726223854829048952518435354717277021825843772745079309752071219461281074535133080778583236651113358194723532031563969254974499098108078681530974880007808137669828657306788020249294143632731883060943383541779208774628138481102276331304587531081257133218142108873551703632854563319390267928064867569708775034931971252640962304949375818836807921514491325391380015725716290320394202602902777412146540361145711580922309406581602476597815699314773735844060889214868411982244837389903100281441227781022112720472403161291236325826304954802531996419631112333278155128674467199804719080554490568778754562153684873219371613408302394806221806839506460233731401736362163011268521309345933442238569942425572464416624221815409252955421784343389468194985508333275699038189993600965049800726136918225225843309701000331293367686406285767644084114478121458426081186326213691023505828720197067633345383416957459172005852457375459405493145231143282949715232485766265163558205184443697898948470024323131356460584635993552468050951445807664442084615471774302993921646744824427262566931052661641206969650838942837047672658941599871402363948169209929407489128628731837375057031968355602613309406021960894929994841325284978268105670555412958221802960128799181882846642614379269284138009466890544610402189387567978576578585026340250156636819283643955029113613422608946384831124323752769846904297115521765247366741777774123993984587547071603267385048412138093961379612196555777069032148472775260898992138451010459172599105504846121506726256495530456238542247460333286206862982764728543992006694197016122438782445484890722402992282699422132183076767096580159063652971080767895924395827727503077150533723402496723899895589120388515920792113147059401123867865505986105963774835859017748749844492021593604279188193063558329235985105270915349192397142124405581868624435445360240096507036684533485788206393470006573326304679704740507741532542489910069936700847034794945055415683916049245597279600354505439101692856082201453776493728567297039551505556123882435540244123074493604664832682021991611270799824476177386521971577202435180211497458588334781655784313515229660698892867748717973486630038030684465161501474116053018554427350994155486095105082090450080171317165576211576425329842036432094121030914635273806421926094343923496700812282382356205072592060597628805969746843193485242624554229038344430534657848061466116783576942876786164309975782200070328793347333239281789173584796368918946399755173986801409491086200478057336004899883255755249382131794831626570932283383747180618731142842383511287197721441077585030610055663491606030562637436477556649156965144148981166240720825466520291906050188384210452816506435649406765204423172129564751472999214707705981773882687377166868314654104484409555051264427495072965691268654724132022016453774040293886268423545441500242567711544968934139950900154251508682891494497449405290087372583025704554719818934314056281855582162650538793365131627020780285838082874755962522141959804672165213921503461762931795681140354583973602748256995558306742820405723602482533743805478547189098818035521298060881789718460573987197611248630281022094792342664601345664973698224374259011375053949496977616006037138493949310019489095532346977624067625430124503860175536752239563422134394153186179289529844813600657515751371183780298106909166876127789723140445738228363235702235786074292550603191461692785487186402159140684176225309273148747412313222780743859798788932558331327406864798129273004326713065403697392024521001183150277988370712103480500422332003810761252172648453942887314232978848159805564091327679780549546325333442963504199834948903029094692968341672970955878330695538146737239503477594362784756426050032893501019224351320670116337450429290234798023906552601566787880064273560320768258733491112881558828878277983216665429094743664722741548727897116997116129004923183738297978674690767224090755284070167330513683180558022491388231896043826550359266041834742996481908611440272214674382776189488709154104178252353887349002974695821636218655028841240557739602988496723325955417162933750782347755410660990863464035888276972361992809583098590636814136105461117626839313699374167527018261755628892201430573175268083204094680562822011700266934718299139831250977672056402215471247208597726589639692710273386719820862757729971473960645484646489886072686683778625324712677787239499969948447802388925139221053315322244812386827398408853305978285359092868437201852803546659885340760416792574645934814775451151454486398812578471556520943062005973442126553759191678467324961804859825511424591670647189984358576560920086010728488356381698202832561104253856561948979118889560127350498446778493107565449972815699722413954489321931708657025801918286935649447105550208567276405415279383847510473576856324908838378098362287597062496265317321715973746141350214201347737721602755928469322864171259710184336143582032262648447438105611087181130378363099090067419371225795314744013747859413238235903290493537936753689122572748927306982991155156878271403841014895206530086248960018333126993020718962260819826814460506374757917840067952525745600384059023908257536404842053745247416681135907621424021077794878272678274804611740661585009929530808586112666243433494128831692934793502234137165444249257205874371223615421693416195434819918779125770914965548948513861058877426381263574465381769098415534261862085860599707381726244258900648821659354470640778828571868147039091740458717910909465834063626172981050842103775551071323688193641383173265522010884351219758245458529231067685059956082992460396197307947426754278175082166634275652171070043260471528659462697815588032858480196335058811424640105438217199690319148865770630258571895415351835938081757505328883981281784759566084682332761902084862232757036304037834918279170545099005314416030269689970149117181159069677299524137136401098943844324513792416964371766423986845720971714558668762820091954984858697467874542038106666704766862379909572972787636888884069715328534838931561774941421559336370595456562239888264374072508182057708782853083277498746372779891789840927103801327221581311893613945411985706125862484460851472016015441850485544006070186523466984409683854544905298053859394748173975483810024905929286163196390609296800552956641316240110894796575762711462849108356793315820171640042152432230372009265558555364497527168385950406319556431286615178929215931482992729763588873121400452938926091107340350495727457137937617468806973713354366590898418133788156038351164325230656092508805984010275096003094617690493982433924837266964128919071623245920751895212994238809123976600919422882816225812979170604219780672504428434100604791867820260191294450893627814946362727631427511637037206770479804106539867772177323718047017357840228780191541814570825595669782597617437182386736579364840907314324116726105440563532754928785725019856662869272184735510190363374229875134766451618201135468470785460619399543450543267469383663230697314007765503412255955866487123668473308391265526032129204981674325952469703724804599908051166829680268556280860529444454956991692641984795193104306600171644024951725943905891153230742171058268311722314852955574017515124090876533458188178160352548702198910846895404516888061206885129467465506668861290322626552299117880336873841305100043355050961127390870858268853118618022525205003892599853636884296640179132818364250640847332361912370471427821173928702758172789351362484407329647919516221088536902678769900853619676067903999682006116031140406886253866038917135029838004538816007903828795181342458702063460985587817319086548305915900238036804067746058897587224355729872826627621245396932965073022831815918749416258930155022711194377220916649129250791812507701658868100245675403363962957682370048398100725669942131438859588049931834938916609033488613668036320827950653313396078562744224645803882639107016803535613901291755412672556435462954811708855676764034092204283313035471855146133052232034059811042970064384893216691314889723185021162750377339706741966903724196863693475103924747162873455536368867873613950315486892610238408980788831024222361766635190255497311903278868107121166154288902684356575542517533086778028773626119594547325751323634431888600093625471913891634290512598666133461172403183549377406349753703072927318473625415795811512048502987062659479366710677607520485334157482088864046766772247522277788800778850312602187404584462554253838419503031212558684420108164278169581569196363316735615249616624932317908694926857969301249073335447411318236504492004358948453765078300510546234061839818080047466101991160867177733624815817543866728883205042772479443013802874446790674083988752521240595853379439686352682144284474483180786440756433249529958082790747002578448584263478456235847182809372887924075454364946818483353032391817691997145531362192832689082237936771149777203726499863206677041628747741605560530419098422912822589777411536990270843682664946394731911948971014263808640838755566963796145228635529337517025816439722873443772769380457054043886813037127141653322296489878780440666070307497134875373475337339798884140966644563736682030627689376143302067479481384982481510417216581901371715425949141779373037200358821854480578474362916604379348084590977109044675224432822385754657483709472517271419070651389277771190448409360973420428882741128930996256619371011598720570185103221849955331551988639288218540982909851181073820564245203757064778093492507866826655572307876307548123299478020250785849493822062295856839770188687531578559043387973071660449402226021784629174835435679728080776705835057531727974597722452516645914160745905931508877236858041774164728371504922665487666685257289705472259313133015799589293409999799002779176726265114748353382013677061907775402880468587028820715600909006048198983270393384024817756892869979068881351288330224768247284857017180638526949180785504437147778534017769839328593710888605477940460193960110279890998012636090125838031315726048465018272331563072421181373901144010270765914934973613792319471657478119492707213960784344950543586416043948676549444988214438511371823035530459779535416146156991842344170892243345097612692984749220111571914073894042136977074972497212786322739478582250094459266517108170815532192498457592685011155240902305427635909933508049081177084895164855113507383238172549014385314342233321033594346259821238963651449668901000120607361943023938464428424127436604703666249145655815755923853066948653377680742508536859495900377482879356717268051597686759169494329309472687185816635484240179630112565237707451351670066195071320094053947960863087140788472685376108113727107128871298869504389308663673251887400065237459611357992300751133033412115446926301449980804819164028548793398518214373743263134681604015463731445562321440181136719636963542682085049116632226024178929481006583201417917572209023266066953730847692318179516549297534920493435218385387295131866770316164471586814201683359699879676366845455274558955794005906352109001627882625800134348623167985991386940349327076899590660705551191379598474645070358285219915845159535518401139189602489345008066797365365035827642176607234317562193369587865002151039098040905513087218480222985622966991473437508122237214584146976740736143041328792158757507319968060666262577384780724631244982977019160895719062751565434355311832331937934469207091881556963828809787027250464506804803455910929591390059327082192176315523611410732622794557808329093283081243246916463232456827817502010953624400619384778703851548234334491152378238242155714858315436035070928098156274143547320850018545480598921637065690218860075118875609782961308675520897771186690250746219649738582232433397917733207989162521414334612293270278115914450775718158521479674243498851474257375044641344891411466034780106216485083776147634742009412325852535671000163596869081154742326822016429492083801158982397691792957582165420713974382220426064747966068786835463782508328780048390292953552632947545181834231092948312610376801445484962506193061416680686398480383697655383994222533355593947610399615415469228046523966140216433022848034258855950924551268287113874653104389900336550864310646700020477380035720437690147507262593920092292532296735491170170166466197479857678788266831529409213232912855530620959015520964600076894808608601815677811972800182442723246805862815409894783137625757710072260660041628491720016138215202689883977869146337637987237802771028755311738424199775533017081606749104965542374956574185498808236437798304081589897242668069250737451671789208880428182660986622538106124466166503311465023106684531751205724734098683830145903297829293108765030585562221513971336424402730160578502213762532318224287430725354947184606245420851804553972053080354909322421208838002530784737171595961270540039262072381562498589159491685939163681576248142798928869428695237879264973147445386846794439337219508249729552765587679660171727371064488369390976909153925631939099899303703350713289933666979590998275018261960333454800988671068927765421050110067170161872601515637322531432450753120237477971915775701236713556701384548749293605996877567610075542510071099708228784703109219299266072292440590976167442107527534501053173318477505821199684089353766018446043579547379741113621591136817316809279629348290886349240577756854983120497935036879568451694791340205940546545825639085521152784160314619012736038567550579194602006237648133274062064673367335530978643785266956528765999952757653824670173409525024176767283894464203422860916386952051582327189268780160458836531622850101071482796280810393384588174567521097120069868761527297234493450146037272419936312495042365920551262848072493221052558229584987844589477635920478100657228299912972784185431901586446764512962437049759692446599319065050684186296977979472886474566204477726893002433475634538215191874976079206585774633654500712580168059962300381324459088237039953854438792687962001695283405716291054999701123857326428488780035180309977845699572735162104840856202660557605094277459847153413829138314730261303823882368313469855279624454834958963762104601946369779724412306295338282271434748488192443489014283732706893511496161379376148477726216948009207395223168559548285269044267924155867909437997337389321210473039726331523296193275950672386758843699973998875818773130746259797059312201979644539351533477637432651543913969877667213341495801209132603980975357518904586736645809656124222314010057150773813448833921582774811987408848682855454723564500179689016820510952589652315086755443093964743694498618086694201781137818403118098453253582798631457516316413210845212264429158217465207110791191139633178605180012472374779681491138897921095915112227626767638931883895101318033003795667159318862585557880381809771449024800532983507137351695372640974105606582385618636956626720866407020468445963196233322704586616829906615621097859318875715933500587184783575189457583330016387664456488799304719627105352393798361367671242755549282693829998408843200806016410041636602484152083583199165220896275906236657789778115446661035029205091227662340048293935573443269146358767129910349091085850476507201345141315300031197527274902749718062290047407172197162495145505107191364725315472194886644130749372471064118912179721845043238909040749275947824786768348370998551959676031456289217510229875199726389112478791804146008202659369276972926543102577695045987465707051318023872773031554054686764273454221402397266500536537010699570610855590320508959822535179918148666307331788067577932987224123743231296220813923019659045251709254649213621044928558113214849710825947807066659488743678852600506638390417982273361317889138553870743803817956404669533412185959599877215914202051690308623575363443213920394008052789816880976219746177607239587735957298482160698542334939527717965944394857803488087688705565916348028671578639565669709387448096929402918955093014249497995002966727228855494968701845872027152916729537572067565934856946665534923924572658778367988402603830492306186104229730155665137855611768885826108756059599073231657008196504500304886296144242972309064451158328083805928065002039740752214722703867087789495140101489305846518824529738098049401560116729490528038343745565034003099899007854258807998780826733373954081764755106697552570084763248208076966990534192829546483072732623281538465300130217444875988527108127716086678247650773084086182889243244707730402559898816332214377986225552893891523973785628087701870976422979255807073569101139243717272888027352903783698917343063950733709383081131102750882549803443963090864999391774235415379405122758726554086146796190943729301457875402926514779741627331259766418469734359706497431516370840392743188792753292318414054738372442971231690142943374542269884679356387165023491691328673725448264778444500452352767994214760608154646979438567439599553496569350115529660699913237124528998953568373434144185047235094227206723424142759476791744888068122756365726677051010043658016209897390160493094711594674799889022377013285801276749416717470168803434862674080726051314977597013838258144764547450434820926006843675387967884688218527230922026805604830448492017883900395462146924941368160511079256242508707319701136406570814974275351502000476943303120412339745264759051073847797744998779339631964559158404086635673089208259078167428315737663799525933116881708885733616751808572489348630228623478963674910832336121275596271796465799120957093304379164477909479283033628904564641333980201232640060022823418039676770441739944514916261430648638263736638735254663550409564029483399756087360696144592955237971022422777066198302687961907340996329217203458728161341483909841374788361418088561908026713365408643188364078299532917545729984680192801539458427405414387211015699235849557489869335994303329445984557907330270442987364120549113823732260284411254315488205507757069733000409222395078434783939888019537917299380698446769000892427220735489756124490584665853791152814368550650152369635482279162810182514597559615238844180726141646339214297270227243314164320386263869006420005150734621964375514345045416149633703574472865792680490380927994718389235537423825248496270669510032481176815161857227700921960339428807982395902191458202259672984003889412893678853942060627283653714691925228536045245531820791347847842372360957661514333265017484862977907690403992672016526043275648564504154184492772677214467123095175143403404428778110085801929157801454871756042661039210189750802316620233735967166261169995545778088495674512200036901095933751116435240457522000440885786021832671647706630707819652011756432682420384577532915623533475847230712310560269562218558230660362825299756600327403996431920573771559562833096469155993335413390343227985270246143806516591069865431028762639592530984348272206580541550139929579697391193981929182808763411669610439605523307482480398163003587034227946792123463231411497014891526257108000734318551263018763176119608621899943602171430436325664022190078396371851721595091811263259030077952543328546101809532025284686886951565522279610742655258579478317994332056662079485420881039665098046977087567732675345304520259112335599470054046650165208028956345175882573440854270103163367463932120017500573417032463532980255353423729928177344288900743755751007055496648808969144281123750043841839001286869326336498726199901967612371682792172132351390164250970742331571252342107558186338807932683525524273501704022022465927921647280699997770229192807251750974730558039667356906246815830726945669659534191649457334463062179252196285095274048469480315338298574065942401012713068828910862444313682825718504491196472662638373292585444755200066011997512498975808875102359169159418655161552211680181312110637108145553414665325596889165748041295865661217906283606353957248874345948562872121535629854477105338471173762868546408996046198464048525826793466838126493822977411817328751024501126765865354818166078975424023349432228830608427055619267406561324141537139386778814258836747095223648020599747153337561308886326975748378649373563674451778669825153369394840399511703126743661536092380430978797247178112898065181055205267015957064133779947569883876360453103784256906237299027599082843924331828650539575101980896575071424883771522091446099526880989151020774268520783010418168093161675526451021489384459333299888233686994401241592475377179315593765753100019014302855979860469567847710174792950259471281999818101277058476532047856716691462257795489989508640180273259521928290956158060474553797720846244889274373234180347248696807859073759054609584670572307222332449335786839115631540312542895458857151363768413650342076529394619759481953700113240766335525014806252783032789688978436093865818609958498391008046408938732333763482156902519401783655995475650323055654692218600683116024076286576215188332124800779908400862314042376119611616904620378447100525302359074125759434265234452320129274452289484516638684311419404481271339868051312499909591456055862738995646249170775762704566184245546728895919952987846902167719999782254878747304268910572380197814160928867069968907297609589192454722717055434720666981140748009677849799395176945030636655818922225586594241821592785787576564272803551436846511873203776379670762447900603960812641931520069548721537589658480514970744529772573544549568413881034859549758810151847835600438321871777439348747560722958368251764417898354340835521174135869274536360392831390383291583603688878723982047793037054620344592225908534174683463935258145080454049677756438195875719500623227798705525419775115372569148291443831085378392127627867092094137759254502371480060216881423560657192608645230047839050501947617631049553019546246937975496889995697019412003109925988223931923831722943482609036015891351781642552222096558157564946334903409188085190134827557301777525555468187880118934358733940441435957993302945704618839272048440747016357505926664641988845035161084907764228783024932582057835005780582063271425747137261539576231468393456262783968700420728515505521014404609072521758556684336666683125962442230804940617249627310458027385589357656240417847530342128088035748162531842151149189592461083775065607181377527089214915068677134472086623375016876096935617838677776969828281652055722363626951893805241425347249187789485640915237884107879824806166533525237755980982138646022515235566334335893833177364662891933931756524982531049976354431721079129006110241002829959504257974960995916038657702185840825445328886331388344654456794550547829088838880485716755457052053577924033688265302415980009537694359038501319983686717095652597900596154465806432256906757058866720843838439560164010597317138456275530524342736693213301256576350107310420796320193100415058476252025061941539548683328369901171039768075369823624968686116784140751175232106485728008273099450818164735368447268768618614361676521515047693406225612595701528191441587575904289507252126784154850978335506675165972769937328481756209231012249513442172971016285780695949030657850508731461662693242029072418950421168746619975453104918797813146892158513280358035026318278032664922686351309761560056087340801327231109759789281448983315946320512912321789467049301460093555144569205594061652226572034220349794783555349475134158860575576286413887355892729810993460100758113635828359663470209492559804479131066274375940248271594633356751257565147862343046467704320868729839739283886268078296805182507165646537964332449916687018653221582759894407854484310904206541050589304928101034129236568590507668044440259869946199033486637090471867561667241479007542728489521934491931538449355286411367993894319009576231683124122404709839052034152247590260385639978450943686824525889874515327027100500028881440981702598944888786848916780804220869833200045927426487604916641719242568892349303692457474589782832661587527929783276808255488348505268621630188665800702861156702485820674741778582189507802558364776943064341876177526806442493592655680832551954077768534129114517620134069923207168371349511424235018918541582766978114616477930523288898058986936900825198598961313574608202349525843723443517751704176269238488194719111262030296177538272084213726031018895570286612558359101343237575608541000030063631085676895793534827458853233251927348995643185280380830461085076326256717510696173032444969185463669049955986392696966639765351133777187882123417602963265227099358523281329426601908078485248745548632251900740112076362051764393906762053194175114929667590343815594181798649655217910499645798568659219367866886634333806000132346589701794238488795779560733317843471829561052835348967154151066006642142101144781035308256920553748489470161019680553058904791944319900620876200892603106183437467220945614321596726269084657179031486769172802870398545860221378229646206443113253789081622417676340787067211122884871708324892475834695452311128451488021409691521598829034276304052214048558925119908361083701172720968543067041639352574437301472396330503643832864862282971438130349578560433987267317781936198717369829239496607117987921881633482254205404032737444468308632361528019284316551726944207080193306989050742523389745550363971094781229881150816404937032514896053041671694901498692466264740074923532533983895297192848073049399324951632711012461679304769711582668012055150527076160914771322579956540551359719152064277260060663976502511918851856548399258261187332584491065932283262301197752537759516143641384173794408187033565295313772638046869682118818000582362573679422880441503167988480168561982135211172052354565604608066489694704820909403787273377890306595962160559302374926270833276313427459535716887095658030538959616567637269435643306075485024928705432119904413490548152002861852798855072757764119530562262218999958448090649229145040404583857907527773656805767031094927434045689606576170081596340009583204079665786247361021263041278317177126439213160453526168006168183661318446405709774805710637524263902478720728869540500558933683096964240660129820366087163964787700261674403692828676863406529476597903916500183293751610399288568911073859434159958474756273373571003839155937440950641913302390791059645517927220930410573797344062802232466295088578485604048213779854981006331587030344929425783768450747013811702770760419844975105298427238286548154765051911708810209273887538456969732684195539922986486842814853302982340394769915847081238848145192784681398683722485444127811082520340924762762618048494181910555456798034573521785578086274836949210885206196034634158029401915408683096237347270787311208425196870587410924221534604640250757397601090709179264824947402218976288785011802319324042975324186919601158348516939318108477099954975085171233455365844603088080336895163503487806421724853888665013306232178572297874894362767307139053437841891178220054257217296024124366479417066081922198749011826349115404707781870619710000345995036896109774792086626707448079392843538358970649960479980946194916053412945811607827197017761888301771133584299835291448291407891334568709741788396908627026232394156274543157913556791744088119416604223359399162262157851220521435511831639057985724186376727818834491719173056073068037502854643301783430090121296511146698562181282239434751069609036643343608838142760864267926802143916515177301776025490753095629506353025169244454039252523900627533799945097582261134316692364114799075945872147758312543753712314183479202889256921869841719820877778420260203474919075537345897056458298165407713958601157268221863922374352725123628541375589331984108506198733631187837633207849165312285853820602378439699907962459842560336692944999480380102729045330393810802268468175051784798887787854982173841201558221387367044365400471313355453873181828192749063194805396118503410642541263602807011709142620899108171804492869624844313122398579463188398383859802606715387236111918244606930901089266262086188913096727980527799532075737924505574628798743872279899911918667172820517862646841761642829943268701333209304957507277372402662450805961214598001017311549171144934263294661833462699347031144909530600386220742917521934654493356275473736884596015323290769128189278352904084942195487656863226870396847285347561021534389034571428236045849619763547447338788869882388959047008238420201656582608047185038128080483592041927364422610679281063075329261869852893002611007619171479520241198284493071124527258017437300326113251313186675814752980089610265229950711954867558958771019773077686822698340286038110372945653187471393702982839550092044160239701144498134617458771147031042461170814615347686991874072111013565692589513473332367849212513411673447411904096340679642763999648897930644462998258921316961236175900933463178415756975366869880704548147883957093189037624709310069776854039328959512306838261110813344300492188737640376442557461259466950973360911510350413965840192871291705228049818430908504532901761402521522759736667934725595566093036604175416364532864589695605248385140125455419208165100617334758047892578170856484787198867437921236246729073896141371933078798891741638536927488543122240706540706946592798905492994677934436073674815319997839808966690263142713804042939206027512187794302688965192347453428679543146449148435432014854277657883549505766775708200416876584478995939799448226957707132012088767671255349320256481705628311928150066036139699396833368446827283022769299303390566498157275316276395253506650501874949401758325314531826289163448552605231495704346491753765304284431031068389835852471870137413560911619995876657800090408361282950563558535275604825831057186977258027706349386349940762949266283542191646229026341787352437002921024072687250880719380504799242712238095617989803517269479885457077481597153533949922637723580516417097617197244494276088073496262825573003098760813887967727555782889312050632929685002985375640191187061847171861443911827922010505809370139016445320843914742559855454217544221723792188857955412224097576021810411619175983623257179243283815496976846995137555532368905555482322886652864948702880860101675864491967907625846585606701908700474747579631864491679261603506341295201437470972221129243507589587642296247114594294665012960172734632672604539911519981127931664287501700653561433910706358488707399750908813708451973192635239904505270870031321089321218700162079542985577245087473652878129017048533333130564176728614423713424544834612311493299329879335952365532653045502128575535187814452084015360074189980798189838531501139698066243079227105075939433619136953721075563811458484188301433713365319791614350124010405414740821629840375184257076004696994402443187395814871991263965001565033478099476964612663765808068580068781975437258121630206283602360617344587922899071318989917631630172022940015104567061952578985145364977325750159541217909757559556242698930761767433055180248474555634031969872139021044292173680579968024655608424206677675403743816765928184301028389942655715646285018570957700025619783746538798848942734890204667058786545600177066321622352958232432004101550718685781788787917763122060630141409500315336306016998280070331311086559428068377390726498968209190977213589609433543342561225102260640523396855619193490499688839412336233920607920171076022466056003247821829011734639410998461794734636655324619216437189376998360599450472689670622476270359743436022478169962789476242005966911858786620714117815596684809020996538030326846270959356534291544227721758389920507680733120547366638293771370221700113064153407428703900982119073167561811347637296202538167081621278250795174934945142095159821634336228291087222855489512728516787253349779244885377911861137447283460129161085744149115469934374917096867101370084080702923773182571407321882837200155864144828295740554504324263659313199256185667566010109938306714599756374692748208487318454360687343133394679833010470089146678569437691260104633826533580418322112273876878062764189029278328971167098702124581502657859487545838000945491709593078630105915933009610697644407360702899358845690246293545941510751446094818576665080501342835078214072483157888789200971479719550935460350726914130969935179691528354698664566803628965145219155221644988472717686972805220877830049578588488205117240492867112187485028767259941576744961911817605219015577164226613387303342925483461305366072533161787572904815764639333693493697374328055973925690333765141577467477128363032635018310098432081933362506205119761187210439600597638384504677598026537694520827238602334982604110947724927593967521671651034469924657323963584264325537123302154222099918542145844391822282231679085885307216638990157214018016873507102048537855158125390043215379184472121690636054372814903955215248893111494016439129011119099402730812178298357224891166911505084251570313343645987846750174977842753943079373856022888706431741091149536083737460196194335268228308694126802135769550723916122959961138547851139208276420228845603147971004873659662127894407878324811058948675933752815388115950912322798001255991580195913742928242823918480156700537990587636471688492519280847375435161419887772311585356961975387718528975787697120359125414698697910343843020328640908099192471754029466157948103709366925242743098815796227963407139863819361864217634971877710215930981841225968208135242204345355147196753660643919167028525535726201646984015138453484606589426988389423825817300305140172213708252355193838867381381152232433553336548923337689291426714161582251901707594752125340058982033584342202759931850737381236210813957992364785533468424008872402543924689302480463645211247251800496780260172661271616522859775949559349442193115067240876210988181913023541770283504423464894421480619779150012467928933728136472470169808323140638783937818940311334318429525127066427312095074070262960894213566605144817596049877553942289224424978687899299424988445552508472655806619360968666098555055252040385323811312085746961307518106463372985026461149610343150776193659237982183427979156087962342110841243900898419612800873958547858939044822968150973415426046278186888345596854017616377320864216206658605174693690480737749917155590899558000274709097378598610255947516330897692193697177993123994669801937580362204179489085670302833514527065303955847773707848001070093675493096720322170683923666580615245807412177430708139259327752598240952371611720589249321501067727394636145584985277343788895853881842577354549703583315760638419716233077222363903647886366422498850817737310689001600867030078350708694201349263922871595959175415559850723958454572698724930650076852875024467677020887819323599144610838411239981866235289213615007142243222380606516776757091443283172355505199600476588373796205964571606056655371732710793060099608449976658352451862348071174594488348797943403418477526640515234364214506158265814493788162890331249186740511738588741734119334382894516250786896203436310463785038193170049139785176592455179596687269051241249686236943480994737923767324245080588398836823325317338290179903105145686741200863660835643939852792250284838774742650858915893195220103711424527590270284772912939385123492940533160836787662497956155253271244525488379643106496391711214935930293233168768644666478552185193783814333358020679475599712342007696611110314365951500963397329825914576664228602394276500869838358405191038003113837703494966018011137131124619251732600744461581623961186995526641884002177832585334354086661510162589004871982722254071256988489638983750911181282442558983524451762802022453931988116910841522446204701442445723889996022438979354943495464083086878318857813254547275696117934417256261570279110229258907303813502699460343831551259977538213826412661039385357877092589484450517589927035936866139668935232402395718369605637014348823376888326693333807998757544983267934859046500818437251664616229441940050685016258721282651369515675248893642349886200818993011714020799115296476319697644629965748688496685574607122006089770581072949934112991872484218770326689704159494616351262519101025433747119978930473690962872575034052238260983998382084364921466551863471730832320060881272047141415259003478716995320873751072348230117038179537989390305497662320661038578720085580758759549553901705860097473498070247081133199726881601621870944239623201783840218504915364387439051257659748738456714295469500695807564821437997651442066674695466451621838293982650789926559965025880049262027643433322850721301137295906114722548674837251402848022960854123577712802648765563354320790378112766825467280413504365874499251935852624123203809929927257305394729628920672173006271282534045495667562644481857781021804447602540884204485181963194137730962018851299934047901150256866931767261336021296586076234695553739411331685763266267696328649439866027682105233298788208797057629632470385042869554509609477623949989860834520418666224859827794486886628071924324837221217962507024125273290271251683486534707655714200071161092679230757233996895250076499053183218695858042655941240572722727631720242283611199517667996366572252054472530048178260957197598546196753602104375153935248872080931104610244164266952825550051895877889994229541016601631160065343550006613331507089399468296519114464073452058049141549976967668952455899071178789864772252601424466632240970048831343622580837801310484133129845528108264467493572886530536109811158239563391412412503388973374067926491073911180299157285384739881028029635623682613771299444093958614496233460473842928788004729292330692592622305627812496672089604857686728037360463607123575588318499184320147009387476969178349881742428717393531831676597470271761637510150536245725011141971052452681629029081591284341837098872255129996861103743755760529282343898958549235487823438581415794838147525905597207671599859567620616909286098392799960442153439633551370214441272567029062518026709978539798269745911949849803516622814438953295873448255233824505685798426720493061516912683014711708981311890177492841015767336084968195064910638794401130933793133021934878727285906346694152722150504580766874146300304822569443533178334203718724817315331351920118313295001139650564684592496903880543256891281070809130031913054506825829141328840422911643075341541484613056585997071114714426934622857004823961428947139878472043835515368087649796811995297386725929452099289666269435141044347246578983813606000545914921329685999974723091709725588372003264014011090470134183398389445586930483346663728004344385911797632071496696922677726239853461275484607460964652973617462875942478865062186570340325183751278445492366599883415143319083302400544858400563344387516866058121438960185436620331366598446503503721618531213657584620476102902394919682424985238003742056430998204630358190741199175352072757708862745583111316650888261402075074720167855872468579666159702319761496389751411560722238571417570537098887621330214100888867740070076068531464719348641569920251077883764189475695892915559351185203551417749929695882171284406041213821816549960432020290349178941931987488904534603758008740896416100790959801140382790340314840383263778004752225221399513310279358755071394926024705749586014019207939636704892871603785256043611349538628093992606645307822392454134948089949408348836254998562472772536719112743928707826814614528308815403174680945495436894498157850995151792521525587729485770275550251913323926174122401836760934163498018984065926972421495050444054091031679396178519330928626944386337387702762009858243007952046787657794842061569370528483187619013526179072086885710388702009236943145338181790155798305480988059141909714328415637032861012430257337220555209267912761578790254941361233560023078977792073494514933484630246872548407585137695167000403039292955698258678780956176096906564996920831343030065386279473013140360397302516511922730623407034486773534297786944149545739205185920380889931739748572483104184798944318772857047365647206727715468300325386652384877355270516571710135837047340220632490735377880407917131944393586403541211167674041405421373106207410551158964985905276110588554450151525999571797523724816542354435377040143945108397603399213778030563838237484694392149506629701783016928413840888677238230506985788993519077129164328492771904826947256055675455137040369430448332904316913677893798552592957457644182313278408539801737816213262928538272966605391247260643888873471730054126922438337934889276339354298736791560703656501222288456770800830795898666701496753701741215568249769368383571498020881974502476644388696096772283290012003069725512422219511237527123251950812928088014500756647923091893294552744880433308012810201563553833673602125701114449890981920657893605068511120803786085498047660952181803766573432552476254198383966980546971155677227132230094605242657890810773496342017697482014139796056654297913011208509724622662899517764893940100840590657165055395322341727908412103682481280719836081552009525203438154453598524569632731580682528353986589927828781447987145052259471894119600125844309290252583897523249574027083379540052312686447680032822635797048263496099284124581885471918494345063734442318715988430720001938802004717953602355210041441677020961463284726284281270790842448823554304534711261389154479997430772336869113985099836644674537671570797358825478396487674026534358009757924155424464462002578932459405639857010765672632292880702798303354920564760054792513402257824293430007748080612964393693706781201861306612137881330549161048600514821937498338240116336109838538393112189112613695607350883551034410079024866776504520724605360663301879171460175527190741901308703284016979782241489457041095895209670277478786845396872623844696510086114890024311706153273216657905722595636458270418296242280737083900724800010335525982637539667298357460049801837331185248604319472948509586318933103350414269720566586299447689080073248059236394645478944583795950772710265320384717074292790046276764966665922765769344390231740561781036869013137118102424207254899235671611477882419407985446383417874964012441480966074372201044915373889935158337563925776358652531319046390750262763787937105017970391120332598486850336935216137754279004178049011499178175836232819068593933781997991448196488064053288685213932385026940747790554133434928005325765757523289397754075076212615142575363955767959416341466553357333650674146621308804163582850630663302151788292992202291054533414425237102814321298908591519737203832451426576600939986906596297668686424528704586796055350043910847244657051386757238806653426828537108324193288845419251220352888902437164165835321646902442694734366281718069243586751329236951921531331820807087907464833221871476708737488359041254349902604997773252147228422809450576156467951535833060397042810707041988676968115404410768030223008438702226747976854075080465934754282068382396928427146920653125982783616510644676071572822728682939550355253997721856665967203067798133007457432557702942842123314440823171360805653190136775636929009639456091290456642190365975020821721459898321194466787339955047831450587036432322073349360716067466824972319575958708428617624688369314954728668375333340172947446820232202236355833439819102644091039152339107540860297744519711545819135822029279709187809479571668603538270711532726757559320476596636073855449039135629991846194782681961115414625401336788827114374864495406066153392049376288338232719878422544349570383759438177026721303468107272704303771199244263982947277104008212310116681600699234394049307913176774170968010628120967578848887088180509605987943409419530051199408401341338481651171082415496998075625962719136942633441317270076032428664151262355060434215976959862494047952927901268463502547838597102964098693304337091135293803717638657970398632405604112450784137247011846395136303086547320299866593487404758420794513048495909403170296956916667875346415166590919551178351817163327665668800917050324913202852440284852158207502028760373302620839677286033594457480468943848112704300258746656218094291726095101188630389222349485996154155671260378149178790511448052922850373501367111698660810611825526758481902031956207645028220883635158827319836671716315387160242933942151277180773340033328479357136283179270347156944722194434817146803141193544498882418667935084825378283097810504348865000122263690281056451153166546877093946840391414800758591323959572897719588610397274839246742889111128690420381941726799843485542243677107836673386556093507695311504588888744664992580123668455212667394694256453082897713742955697040372226801291327459568808149882780036594657531172757841799716031895290515345416415601357049551116053626018404511392266553631910778319060996704290480934325723775495976204877114532355991058834593038255768449159595814980752306990360379905397708005673230806986386336701604170540232588042987779539442886017456186491274456888007486269321697361467312838085387967086008786225732381783559272313235001892737662280425602351155703073497985471985681049695732269764060120036710082351394322272889740989474666515737597421397127097543298407765004030765496477782610989434219293484551730803252218033225076560100126248975260036856145136396313468812708948097343285971438184925833875383131528376979615911322330238810500506674755320310970778527007175650718748516441846583649573969190003083549718134383992140809986830884341677790270127231376920588365908498858741007904986459929504769314813167772298271573917726160934801684798110812002127284867841818331817509082999876109663490212627873404882515087246149935602430183869673251193951717635139716803401316610747598155647800313254475293093040647705692259672795837039292286960517226601906458199689876924039260599407273289737764435424319118600542643139841393236201842084010165677414710476468421666450717077671397768465953458092715921625524681764115047228453743285336885922456083658014522094050698737487889699015779077260488397487920515114671310338844054074817523263571079139416081359933659360874179133842993922715793821500812372652689514669705751627322930925194314785991857352332480798297259022522895017977475540819624466211667861553181812066722771322302567746481063946871191610122833132288095655164321183801147708930217972518606900769926163787424114002504450000254238582577214059887972660627972581803229147823717259851672331785262982339447690997331195893424981483880133195521680025264261386737998264104153390764822623377522340070711607338469980955121948531400941079004608621068355715763760477952900413967406086853794183010210657756571298442533385959371308530421699934692402441245978217117424348383206012179171080391831682004542892464139510686361598889907842359732404470618206948967200442782070159056754991909309805500970462011918595235865897483252075040292788542799372955015221721911611214129036859991032001837179050176633185741407583169430454963342432482095873177860725712377854532026867493724629102545648996720639614812050002693158283993838244913473813553519526698033211836279652951351686191839341910257239646594479617988892076562018881528634612558879968357672032702488179078577103998824376995813496067695581069804528798909304023525078606528424164378430184279572928149383131830516764358090274386770979400222900830066826882882685191506858807638109954950709127398798875586211225433862624195330028285183746918233867459250427302200178625989510687405878383838684872749766791521058512329122742763186873353523549915309013905045314171945060592278133135695844680254284468012467687065374511300511469618219229655971949192726139114183813483644606118684703125731096795605636955120461228313148174133253983538223138447550369332218216713304608909910548574242835069637096772908980580940382390189784394497623514751046403191907952533636541010751299763651908158691878347416974637415631248511287200927514729194064582765086678688313719424990212614816254164557382808627862927363521462850875621756754062611688704518478162480694229049451577791988458644454831703634545127653213838618873513583879743509114450026474804748854573205986082137318948519643529623089776053963143500615572043564203777262520307071211714002155034517047468059938519842072393023455923803053398335962014931678908869318847614844631821876142805481406586924600930693357940168266628070370815698812513606201739307765565096689710370849640067652514629543997848103681333096054960592656674558071588838047344676867020688908711361467952786567417328864646759589189167085773022720811976062732397622111809075736723520104722268436167744176813743760486955174185244933038789535335562595839864433603170291330896052813301067302250786473864328135908829113549344600492018218858393868554606954576243192154033903680733874392024516969381178556966132243855110424724797055183016094248568489280942541104902042260944921383802048360182490360406281747514699356126413376804622325088444395689301624143562494715013594692343978232378688331327321096334617832322132935273562917505834972622563742424941979335045735275308283781963825876777362059897728388885841347633776017373992747295614541256913601890544510575131749389709999885078359221574751961249937138779181311385840398145334341934420743695807354156702646777187708396372570127338365622107698390413006395948529797606646554640321619107497945684854208428205402540458555775664037153881038873866906784101853856485807377151270351568711923657413978995490729622448472652032891026707659399747481932011240284811377001601945063627006281659677935997971363810522292938999522193453689311158958543128745947769808314558094606028882107806308296528737467780172449493288758857079779945708258825842313004265682495674034362307616471659799649966822504882822795195864560320807809323470048383232787461212854383146259700435425469196423373883676167257009262628259354026179433681491435135999315037832581121420804444522814957231297681602742826418890863459385209789598865964570326934602038729661512992927739629357535886449216083987622048255308856390982379553820622629225721392235385317495134329041567728277829040305791667619030591086567825448707591927555869476367372647295317800280916254775399111249076703851585876353712944696983422476644441540218258701750966889818157048576957015026647045621547604472326469986671733097508727102144748645072630752124100350440042238492517884821377037256228360213726289890652710652567222493840135468490901234425017318081429224507325410220983475319368688207763060813901280691858869562248037006734097398826488183114124627436146166714061226656659513947737302962597925782665368196836942677360277921694878532489435693669598661379275292336743532946463078157363783588468286474811830783416228695149313165516816959141358680782673420605040752746413452733727725241831104594697790172527888731103147188285427943125236714733230602841396787785716440269967073440135244305413801821107709785485174130667465869699075995066955799055404608356537908164504584177075546386454467982835029503848307364584723837104028676792909163387430721562821125639949782846063487963278865097250240098585853689612389936399475291948236408335751106785657890274068882612081619271849026488405474766407663071892219116798316720240039990467614630962372237479955208710491995019229080929378951249070434745251543097342568074362137223931892098786578882257674210348038787497437661195101129056487537001693393421693674121711217754089978199287521627464628849210448737159351658694372816419803735675981955954402568911779060854665489470160108349571808871616653201447207240708119328831679410702895046930689436326776038715147451730976209198240657619945942192860575307643670669193851497371155850191629809457933142265099953129234822364831641962076092824585914339816844041041050864334780668669126120148852420164313977380430402506645263998792866895535261736546054366171907288502883414870076001479620747020905843678854188575134227359772315480570714447604175005985809548447182801314041688385479036607343354048538288155142265163634482773545520687108303815080805197213164601421174311572419298158962976032931894858249127504974754134194698188205630675471167799189350345738919095046700061117665731062350878483982549118566763983358763092291167809124688794324055970870768036811111629134181052878058262456251870828176784659711942470582516686741116228172484753551014133821407981033895538432917008476729930226698322675020979044887235746485391998829232577309083268862533325491633389444640684110630423304596824928178679173059016957056571952122356033977911344218661615955635396376676072244941536420127630920512965457680105316110827140690155437975140393525970065845640974713300721144818846233428736941025413134655973010033876865977958272285962964067923019783428515720246497570816452761201326421057419106163960263860410838398483754081352899925697755195444666874896751045002422196719667384725465055013584625432047939183239021618252587990891985174088523881367021383232652034019787233413171628211035702408197406780694518670906394580842063928359598509964166335187567746469220920538876378406046703337934023867952186549081118234178293716039412818116437582395834136739367114956341530238563162483892882071251609190565626818096921697498308905948280598125966513616941904113905489820777743319206074013067822835226972934612975707361373382562740219350872753448252879806329047675381627636702585819164596648931326714276103308277297810928608004221743061317007075425690715246711671885348065485200499297442480017142416612447565731018420483883939130309912430693887129226304553380472743008026186855817677045975657195243003673194950189959511921561820145888936842997846084408274228256588911766445302670395789308618084174313367106415740728573646746824522373226199920732676327587308184601737150447520562008526354902360952112180732139195310906258422489482536231224117033244137071763844939956533025187939623187922296210092910129357228857325158678527357038698258382667087425202788927298709860608915700693794903547438341232755924121552285583113094939505516091086633125115560821504037251503300348828220683998278305739173856512787362166633995331160319360093578486646765723301199254838620424334753700385022083728262542904697888194593121209320164334657571818348646300932684505838858763608180210292196603194311098540502964392041476241720471424651526128512986810177520693525006269537380963743555853391227220979208372572664953790881332794813457799985089479823367839004294331936484678443326089835727964098501497975727044543529522924534330081408209357812829699284236956493255409374854647293005642343763256103174320291773474121377561966007085549442826723783349473187024648377731439388391672704101137920425123839373482207713508209793424547394828186093916956528811508791911273358106552258133024039166456689113764894979295751757862046359492489722418711909970404745300742248212186361203916341606043850467048250833276164555168451750362672639830172323927479212683901185564188719927214652314886829883168123479742545547957717097997527106255510417574202287637994933679912520856103086462085650723443802198029797813448108551464850112882363332976290511734288601443635812068398368648569420583380568677491307377412876504366254424967358955503263711448957413910304264025315607362479750064349244000498574546359111028226488520818315242083068555676067725623973742594949330408427302591405615217925447477747847081179020172744757670641462646695890808080495583352028910358557702614665784703953877092632223477175677252574916026723880342888631708855643211598411689620745782071139162102898486198419779489647469846062933584457704058265130233594708020533392715741712574977244668347635106460331647026417739078159940748429938654237331567496001721882429151540711653765089526011653783759682224337745227692485058237782204623277560011558175738970112968268565662665511548745625296347200786063492520885157496439523172883576931267123664598219666233197482879254571965440414982663459866475445908162877445066513593537170965359048669288531656399236125619739082678808188211775768483694448007684250294008334829970555008352194070777776495154964787745932110123399936995107375855399574453179999777793238174426830278566505102985928807466645554835014022552266115760191446373012863696728993455737500545730519160127156836669031588986318898761597234497009858061070211409050846690616068125331339107567971261766677846992391983786637944023304633973588492775476095611237121369035545417268611354799309423425060055602326053272390219247080074075607697078146248491092084831811061378763581039823233941789910203131526425541353901033229724124451733966268242800877775668167580220907897114943546638015988715804312663111621161512228939955629330864402269354312122848388522555678064150098567800578828158612812903834449514017993040776128075871901656805153809064297840912936618365585678316761875258584011766817675249487492555478352980932119786649393445050203061244837827004037274147512199137147132376740808778035385498177485994929431557439405313794448154595580393867516716161339587457986659738846381776287464993276097398970806928373735758427901529756425682023455204866787318059669376658184112616176734728741898989002910393416700655462963095872480298762737603620815923131604300817051101313997683446714512239031436669359283277645822979476384412620765058444962857176548413806263487464715070390720239857307735300990752680881457618108647130373377528844380138134583393358040438222404074568830611920114611347050885245801423544814506955347104239174702248462134766221097743155964095557398213314033357378460471286301688700419658441928031121525877327925870901509372662911193305949826956429573063255791072815780101534080839911901445649375141164328641055991224376759612587752055207282351072026581260692994603297123021608629577508722878487605797802033005053780018932792092487255535920883202527638066765290505622004133782765335758937122302168691577158805696065823207592485290351589809235370247355248412973233344686444033110657314338532229216172899353882976040989855526679805414411630844145206800068810935761345268264318294718924239035590494628188099609511281716106714563427661793434251165794205575901324876124350986577702901273386736722412635220851349458597059706800034244725414503432956773948907876878629906081368527624020449307425667696295931964166782675139008473461517607730805100363473967111524180531789214744144472685540470632367616778339239920637374424199787144056087577873411082505171080555201032779264777707791635843427799022612194231532134948611432929421334984273784314028995541776905033502647555505310826036788281544480230143000799959338998582907819263931119630224080538396334986067843325589907211357424907091136630877660263170117302411846985600582817992199541299153143360492715651953394635596903855464013920324742702213344551646767909033328373057133024052855047445987320245190328861269712298779214132293800895275012336042223480651599952588159655621146810768677422573049141880357812325008764830297577092592873075021231826826396677663606162280189814398519488138520300184038910810043634066353245622872252097349204773767349793058044871353128821823987605233556985040202785161579680473330475673139657918464264724513266341961370117620568958482485531845822105710032964976096172967238316999103548460475596782590816261813528879915892601423813909908476905501577289100171662916186932422644489739026274743899067694690216261097785655479864384698091902619876940230339146612606347797132400738803142057545514806883988842103029831089212070593935823950137238928457899785609201323142162512926323910252017338971926188330674720693053686724555915384504965227621584799377630025688747904303616295533746478643951142846272396230771270871106658445786201907745668063695977772881372965823598950547141758839760312281625535377231287719230393715486181581213580401025979544741245938692815171972338945182213274446760465465131448480607565604490219957529565355448191887859347649377669353694865362630909551978016906749091820982583889850667991285005516782849767659966982185423445434447742586605075748235069514658471906981743041019911266095619505653449818724576156958262384799380576672113938940394838147568886249873928445991273716272294644630986179768653724580187399542045840257772517043078479485565385953376485493604309509270658888403738276937949783153207234643096121040542073364751155606874719581167861398620279939790403943459065960969819374406320341299373813581804871250868027559285026774894163532765426244725987050884601509200743000289142842741323790963033988540670988247568583871952242770420602768375223530129274878597126594164515704820317290111506330573202311503615300277308060720590944513299292847478838268951723943825218843598299523810569090711602561145308785351174791260461477287684946138234396544353298267621863874390805295736276279341329311537310502730984050565970546306529965502593568267578129287587061554977650035121630113606558850533745259571821872117819953757658705144961370022324255307454892215802023483972506335996991737086094862896626599674078378544820144512478790510280284237913557122908442508492703607628856163875553246740939194075170436800834124059613182694649365477862940372090965810948827519058231624938057001720666285842273802725560446091269967309255912826897269227637000685344958451203492423273843960943464832781438878825504214257383739374797669749876529930158528904903326749901533810573183970282410060895154765620730891207373998707775786657714481917839359413585019944480627441823564234604463889439805671043437820771279579294950947853436763006061032409075187973381883137620396202188018351219093109795302933467292544433817599151215373494017756584752277913533575426662692393403188201074411707662530849916253637692635329942258761818346540777090065913780079514789004647385861050235638650622414164256073819369165409616248418041515493066913415567596364804961802121240056619498552603928691956107779995130398989976326962088165469918561230030875947951169114079321120863272176307287862352342440197689107539748419605784718589731937512506135796287205237806280237219880711048752261950726799402189154043098485745740805454294880446978796955735169790833604273284495432667324462895639107951784891790368685872004537479102643896484366361332422019280091198297577539191262842628858478636817217553980066034716054587634682820820753051807474483481290134219160818762475732705431554970497723386157363805006612292227594231798344803949495372708240286360989121296380169200583284719057207721709278140360065838530315111565618154105584413799099117324068399472169962156942278964590156428931833556785664924204098434238310121878662918552160899824173033030643371559491438773590227886470338284417735856377594179342930819763395872209327747874629486655897319572464245510683692051951610915080053403533429206642947966688905800575843276897435730269976022646725770298207939637922199425574233949313124801816653626290502427804265653900847314099531313641363721643402097557960221170414978522206056259585495524727252726476165594411074612828877814875751851234735609837582188661323224704688234350652909529586103572505996736262551494900903659838433098098804167944630872950174157428363454515339140067700784261198228058754421555415875142039277181879175808934540756009674740399555591024677208468105265455580960949690407983063135853540125114487002982506799140268443688685291045096233016437267445932397110522487578677668804455500521022676416123402014115588532338851811228222935694359453222837233807512825770607111145564990027290067878133714106958214559884650521080264980304336029985502412671312708512151274041902779466152235765207811271645724105238375635592904005486203298979762889778492965080318377936932888975564687829885571546804903572584407857277295053536829420568393632520551673908568448198748039292842629355623798281541812073708796102321484457423657071884996572260754004329372733950633767871645126409383859688726751979288663306748925119896730195261806873266777149292422455056160110574968073132353917694444360575474935292750802502143248571469848047971942492508543758211694855304249713672602844044766934871972455300186559821954812651147465901762920583466536889502730293418854757415958073858665498025919092246753968456035330107236411764953665412799795341265750784112535583881861840966123332984771822578392088267621283236669690356005353629087262118758199539625000085443536940741992067924969078746408702660814215914844110807755172205937403595658529946301337806824868987618667051156280462201760603324349247237171351674792153886546572294875280229507649101748776055794421978173360610952003785793991364449919555895386819848205049070085109452404503241365534904724147577840475286637551570648767800251519091188210523842516773755398754288703032768349706437080076491999662345915310432629902662441449354909769325929245747290049984373064014944543867422727176293228878187724654196202648322986433422298197383339410916168051770643353226848637519783420350575133074611645266131037858888695057708015108450969058603340407795710840750123498631129833038144979003020216375038688256381260678048427527206852045996177241154596655587014392641827789106153157684233806708075579445698560510175136168724172017525141142250751867477263053492551028254368336699365776044041323918285820200898573536521959971401778478187307193932095724866610645330323462922370126985526120956628847955684781613290138529144568486028168007946225903973337133543890830129996331072736496329885835703460551174755879691604745050895198437060054679453476232871768570538495712054001395992698389315330683191556140470117815473372749980451696276299217176591256313794107962784572253763517222689743251097225880202771457408461346080813511884074461100046981295065433339414084906628898713225615601770739834152899606530821030612186855691598102509976494921060261884233564305711559570734260405756753935721592396306195435858453820915795326320261945976216804556452005808847784044600806821787459099048493107356669672408475193207640696183083741376683130312959379859361394929262919307817533995797972196671863063377364268359155125857168580921397190312114622225211531464952180245664555700446090195804005224261925691261970597587674349937884708586543160462617082548043700594858791419865619187101254837636361002494846272274598278780637725972100936332620494335868103977912840000202717128051297056343759336076867687151884215047996252777612842596222660612606174444085298295666457130672697500077937456587383400791738493358568990919054341171634361735780142670078937617614806396524544801365413642890445857780064105392180781042322925072788802766424770536360211910843499487769086330203234652989936599919748230675236867555975896060990664519014692802065081835816506028527270205157080569951235550208940326062994693714819479456868876078847448888674093748973712202387283664006675559716305518954751070634668710228512523516694798509895040607743311519109842662009282719227364924712364050090445270412291936030342730424947256751853807683259179008998055960519082340559543394797536182300987189145160258390029597533238490755174495305924654532840657370470664922035840182784928206552778073725703256563857654920070874166197188762745206948125332721818224767027674544043024898112290481534568659632671903095912972784221984769715052804213168784759463149780761782955382142977443514603520741747284491348088918795163552381268695407929469688597129884628054442200775824284527764362233186751179210802583263888901156794114909649582906253929350134858485253524450690637912303280948584415076062698351618147869448053695244891908271761535378952101962692395745151425897024608753316286143756026376677291320822599199030517834364680754988440939945812022639848670079176077881978771921408286836021144451698010849633424413129155157898457397841929452578787363185986730309530077401889763522743742323176238921797734874990875117257925872636039189376780526344595940795840440290183914906930631027024905128769983825768757894638500849100381580412708310693416484469440843162790967592419167260944486611377816210979768055970026468497146850480205315829463241813058113421397777759044178442898136521469285882702215366541811081046858962628688613237016607833590618010175693460189735128038674276015345737602852003492640427013473779807813431227729131496264082657454943548623480887407361688749086098914549822034982438446533444737525280430140150780403264056768538735348399949389975350286912940307918367097955687617796093700448927369929601844094907386666230209297210791571652760396516068637281825539923319938493024587464604988092249667064813702866290300232144760045122528431011014001847223884101839695785371065152703166374788850265076518449292150773524057064914111764211906917131748957055482036517417930458483058207610593285905921066673349843308374502526160045141787430322496102037308103692769943612143853535671470399956356225070822499622030239730592717637993784873787098406623950346935920498166659897016623457169840316046155103587746179397411218640778656293893927071680624024854977518457349988897165643974932369445754584906011925783025358078607649255031586639798775966301062353961768615577786280874861523564956661918779008390070635774480278110766135996441639595403985375663833710533892770845593191187458068842252789106564981002632138305615071928787064848937359780171179770897102559650533364318651968234441406418828075930903899062777035496741896707909100447944588612738247981346078829395467057458337348730449353156307532337653723577094941585437445551503719509395111613445666576425997643559382396516250353102409980565125747618739597093465178510071832540756991380023595080965868339415765822666597518388962715707286913229262516768794548058889081543811746829937028667660022678975716823013218596585342401937356670063610514234009210181600255294170494894906750782068964739460400915484839982977959531705597756387360241536369660599028543037926400569572955321114488058369716183220524739369864353637802888895722152645076114282944912846840438841389770856411393424094450973889666722256402100983080705701205730945899190954179614239569021855100857921111471836304322139877587872910364564728258804780932022532909143395417902893761078587563436845236334794883521155388675498010405514261425764982281095848691589273643674900060277172519751766358224917091318062234440893971076191172065339668411218896538983764608631456768658061874455595988789165568704237365124748728725351473757659189359835869326795646276419885927766656067034166863210399927936684144222912501338382701420864898641274044927687512989346399898249580239479181594383876478578381498318213526275255234575065929288481673743498639502745088480966152836675122647408161872775404573662355718965615642849697237701971242406764997930381765166358412813935351538937549105875693080037949557011155321645942190314322407586052010373767714731219243528361384092458734979941978713117164572234445201262861084003789189884709759916148201408724831120569463383742544347731859490073900627456838911066255190865463951032590766413050279203911995484445342540357337031169787078829093803094855378103922765770867172505151103870575343642309283431771114781875207210033161781676141462795477006831623356498752958629890235393969996791894814173844723545643715559512446153968592051561573062815946849583883737264033420487622082045948591279959552697609777313793494291202839951957077702830931839775983765303883716250216822840289281468568343662934045733140178293848170785899081429136059587771288697878403635902082633484366181371164378994030243972312563122122915234758704006515713710955185166603076732490693883830223739176139216112335711079554414434725619967930131311857033399008446912610735404980320902965685888779359141427398740540130398725999615305443022354719042963002827381918278734885692009432498377459334613525003263792228012002690482625713362774449806613026388195948336953276016686566422700307975222726723150735681185490392097491902447077293812718599634257157033826789072132707273289300806819482491713615087941388552586861490193663731972788127857261104853427677395463352467967970189968859850038972761474854200132924783457861859518178582775992500776279027261675250376513549175500617636934133134157758671804030551194873097450388883337869127841332626476551104074033561234937829148888862948086039982462481388613974032867238217131224634520205827786798837200413342222723794929788618090318909813474236464850821852064962086321269272996593877797908323967581487834374835788268135918158784319400843209436492459899780137141819043847419567035747154885993083839879388230127636489050419495016274686334305937647694878861239249804636965185113599311166613029964114074369572608755786145336752346035867383103028986791633764957831661037075437437295277508271302128903194769847527123142721639455105713046512838875707534078170652934137707684223661472766501036872765258993882524198007515816351304990446381804509326172713961243094351123298808841253015541968618184823611705353556982437427896567445462669813281830783417466291309328240351053410602999883539773003359426203224708482728283351057550164639469870911897130201413939728972813495787008926157604114248244373941272272482658409122964105087030510438236221177177332070204561769800907186535134424157812523912242265238111018525899790722209797127483651905126367468646295993328207656351178487046747350777497630637471232431656583845749280967193690723188608527485608556991016301101612225129238184237876205211778332487984393153485960470243559530916347600787738451628495666065579655300831429201037786195713825699540453645547082096507084107342970566129231426949411444428964912661591275154757475820620644240963842588256424138748923586137890730732786312392192897776164542870008830962142685189981041131529539095647313724700795099082553393360000327934551174862128410210002268901179869436238850591203334011477178036757883714457856951954466109079941464206830914606913076172208034235245744763601618976684122785690349504225013123852815399445824934274606773349980661217269571992396732584024502360225989666523418962355956208956762567086484643577466934572808116939241397558866291239049658234193367115113507427843910195148143758247409946708504916232150091069079448374858442599720731496314147767349320406658811899812096348182960952069260108226254145775785129094546942324002958279907996306341263615295066876440595890365328711272575406675463334345453185732692476643995673213749711159117864458529496363052133161599106621049450047229833015508235961243190391370572171675096285004404640814014054037872066503386333157575025705131831958618828499232514289638720062483955144697373326788071333078660206874518379178859066931401357457031252231246043886504550516993782302697287816434040340849758583399050415882720875371809404276864241604438091509359450701408670179084514354084656466889720185370098099946998940148274941999422615678162252676140800486426158182464041598743350732520427776814346912964179966223798684008327752058186154560390349252944296217936071866270473035707742401881298370556345801736506713619210734087920562413867011181662143861582866264769276865573467555310655110498671191379718505456641326340256243580242434503809093667202127402875342599860305887163528255094180117651491003236698370331430375870371781178596494248759550854191048180139632251002016803378773945162324511880352712560918278729402167798785070131127291321243595481729937010670981464746107032761942201405306453700995439293562121667054085930662093938146068756547395193617787139626279799157569685974690987280378703564845353978162621588864349023755841999645572273788081023833683012164883692955230909479853834756655580912050174763466023622690442586886162659445712845284694820314860027764100705346573572584954928652436544525790832249860121620020609220653117464324893667974982640536444224537880526543829627200325939670827254173417699985997078389546685812507016543409121149362791234479802626773211927504752245667578971234547896640587252419201137458207263675837218586451586772615822774213676150187096073542969237054807106977878712170155115117297234524825892639172690778328208883792105504976036296503430329784880027440596847905759748544360601854858413488188340601133535106556982483260237951639527377501324919865163262994142146583466632035671910805069465652950498368811408389425566983085225031607053199763614312760005560626775461140477892191326446478257279952224039211551579238187654819997978583547951443742985449801020418371691040204471388531702633155606748225861587188247750062865241607217661582628784432469117533964967734534254906663338840867687770398292284700363003413857920436397122271222401749275244517084077979707499444611878442999835491495793946745256840030482521273564938539563935354755429518846852816627827608647800041361591492972800107136948124099662622375367521962250329223330592665989004055791116669122178052050682443412029787756467886677626612608727842753117740467130273955378126653318810539061913277535531679419452058635533870969419127484859597886118386959334049354973240992451315084292287046905114134010179479236051132680487600894275748739879881564346147797247715487408521216144935805413479105343910619482015534836258152846260883609476877044750149630727446312874776077792141054138440376334692539506820196330975406562257008551578687447455146109434406421058950856666468798714814588883810142196024025904588299938417321184552758071698058486818135278211099205662379293772454413824086597743965717006565033322499344753805428075065816446467895487851363403300343017204312165736543073571395225974915835049523023477155776480819336532655055743558955455891253746967141188393802223015681386220678719765526421095950009041384203635570371053878898358529835662716113477103297236323790528132036709284779176415637413205300599629628312597421697736458579069562502308754635585518108811701021026147383977221541522472017940285228605699204927891544095137777059640664452886747192253635381067099663331863004272231838570156281316866711806946654361888433082698160618825939561843182265509847348461368077325481184829943957970052367787318243809431914878849320287267995365743795091373989723105949587251845470563149987453525261816241207580459818499666572485894296465599306278502799133448192481272011138472470510462988563394035445546887389616731533875746086076872183628691726766705820842024023408156161294627347200934663481389572734151503808769217809533919061279037120732582026050774177895006092267951976730653688559494763454285092204898373406935214562192386585781966544003824234760549252621432936019922642658317853997075417344150249988570891463323083559006677511870834555880791029282318030004684063037960357171397066145144653326145249415258136918179400941801799013576349648558509444425747185930629111247927339975712818618597540775104890259627018233467271191907887940801686240464448610369776972910160034331687133947873097885262510999918620858788376080351024275564043556302034154581373307766955361400862625274708840350255522948176522422662687946420669914853530730483043050582790925229591515200359214214783558933780808021088794108374687994151477357696123424359310771436793512466256763013449489718617028747190902213529879193438006132060144883621629107395320185623906212913920649151801624764232405591569542796630211875985420003488507877237385924242971459993707570492833587211880131169804272759680206902096674226094316088938305403228094901369844586674579833433058405941233470462348180559890005902963353437932253424396475890468059910690281353880489502495245232067862381623385235259204942080841350822981513392216755288732855091878455706654596523248205144615054218195571370654483471903479596400799075335489647958125159523467744367975488519040101888136562203530678534496018565589018190955688180926429193436143822315318541243992232867088607345011112164539880855778404744885244465308892349410327212012416035571309611906273680136746917878947341098275738291104333402154521988913077440140145180987794350036526108277829606078034095983910972097906336630905020499684520681344401056139962478780449034316092360686393809873844028558487282759948543188965626418086779550738677419748281265970742964387476766500381981512872020786582430343764883382702415900908726293847205017712505114362910915876846425480062016961575222573724136215381024292739937465352329395398837350726721496424899616719277396240795661129639442618517316112012595947890442011157410584552504970628709779852895340015138345537792565114659977371318881161342300738733271166351605735353201108804380331186688058809920313505884200846657258440220791194912728259236799420003842498353255153193675837435619582180335636453250580026416219562001873797778400814854164946938665537749483712133414969644459821106167643742106793016845782799293449876307458900103950110518740528821023136344285907744829532670022847800278498661071068617596077943758266687038672624339060436903422697477385849567176237282606246139064528802069119530921311714625974359205592221863108073069134409317067658652538277024644727355268005600055110530301683745935799077354796082756395727550624295894999711835040545013372300408473626531848510860184098032924498335706724185646935629741168297503305807812734134651918325909361036311601278376473294247648722501040782257654210491518412303941242860424500476648309677951429800270282607303186002471108786635481551114403640521854286023315974776566470897261394045699550314524040295387715038841282368645305254345666325451401531985509334594500398189398851104926335844673038007109739259076539338515863778101794650443407929302168024067434844355190822791570037287315145065870617458427782471383903296700664983097160989661506822762183505183768538721998158589075319467352307065780997911570726538509374565282151955660688005031439044516388484358077561968825274856105896381694708851018557209763690014112631483852076187077111893259220322912926652121775636485648361105301521462814449093099257603032839018699153424123432394194606180066242438522635751523415871559012599094826977837954400953778566822053062463689854776776394705616361766255186374475348236892509374444529176313981843155972546458964752169002039798897934737804046710654070036779068916216516202097170345625102308826416021801833024973349660201780964918433727950398526085547783669555058876264541962081831087672082138342526161346504216295786074932322560176414463675310524678590986077796566989670057701842353444546249548898050056858623683154355877097383004853543961740575111368572813447627073134671493963538460257262316999084852938954503190395843116142647836535968221328910383305950971176942332544679172811843711860385660312162349869365694869289193596591240294846400437824026221676006164045758271778513983863661899409869949216629317207516518868331997541894058301518679662371841801250782966332386939223442302389691297475796169319391767334511993563680015332407654894729729492629075110552408310017372567842717084578727231085448730811405630332522340214104277918665989849258134664739797362400071107507671693350134266447587460171429075849638900870383449484227523781639999445058105135246332263754920553767548097349050293389987571896701634857459202559489681454329666083488296774393465294419097788277909000369745954173837479587150727170304985274878515818596212570492079555370594591403384136030832420166029292364105209735714188097580864711184454184757042640537024676366590024563281354701664715801922189332142524604423206743101195529014286153565857750600618335004202331560039212364370498848345857939267720818692734069248480583226140370563927038331785270798024670136965549966762692417300469572730187412382366317756700245979596748271051398783411704817970863795645775383265544775535397086192580602202434612175380098637487982597566765810123255477222885243158321591046698902731084613295862252190963460378473540332055535338182413535736175452752497133489692612046027518771811558140994118531619645819427625234298566188616728974669991968972386277924091448564934629014324272281014448920182164005244714187313253325674898801955900570194375838857373167895628873267983691651338181989831138479219336248297629021488173977251270321647180901607580269688640690016917802961133638856968865974809485476542090911064869664763985275460974962927228177636065421145466378660907046426643525192298281192293747825141084622887573643992753285589756658867653444895370766231051862222296073466252917890223669584096762613309968972404038612356560851018065372978789336911594230075662990980061746038326212370650560787346057194743308846461983412795968608318825458369269726239800743946761004579900702197722568616548396354490419118930197837227983343426998789510194862804549558390185910047241747831569649406124089919606457921484805437306979930050712800090206683114861741161596781740862242269911240178832510047223296727273576383002321870374265502826839104825387879637800007272334132154857711789114663900279287217076878959175388621208763980606656724991230148398977853053052418719478085190024382181968019780853681238360444381889502706122081329006287460213103425932836024597936297324660310647557337126781498982339115260034074254194677590760360857017244897959924657018011725726182747497372645048990240625256422731808717730238294933498909533714907460290042931223706715098923870826648838467419507966664727086010350930017229892272724701781275862886332557492955820294252035631068553241608768535061923689170233280469303236693305823043607423910300598445271518302232478439826082090591836473288837823743645813579437902143462109082255800873781840148932866325274624306318673728930331959495632692463624111078234989874070119994194649192905962937897237246363379826218559333556081334093850882953387659535897349714220524856924674811937662392219430750154686120060671145007867933922193503659055993990382032805074966722964762120608382676215811213197820176144098435132868240889249392675144848804761815014816347862027692695158115541257107641292174225492795626715734447631618194894165586837448062099675817365895394456784191450037063671929861904268784776461326669774961095895011260774532356207927192877147072731898570822505428716172005795153522911077622024808782042279830864317712702464219859691423638805693990300387626679224044138303089057642258924967695810860691095667933913960280849907934741984547731628391613851729809628289649225085577742081471787985483361367028819854293025940012957950446422419375467689666218955332002921316683768480045170181814690714580343332647159172670008851135625623607361276345452617851477515562065447062047813418632356280280151020527278552537379777678639959886999195510063668216833001641066270976757213796807639341124601325080144319168747823546446339069525863907832359847337852098708256612047324803123606758011289745727700087553790265699678318783596144207235498881969314948423379219991950893068469911777830499528636736585140819994973858271976720360400791867003825446060205051590615022898945233632192532661664383268208470361117116797818608016015844718393035069766911336179823601113938564588751285003593782128574744255031423304786458082154776818495569667267202061858274348631115809700592820521800573976792872416280527692731694638646429070741256813772038616409604405377802748109695880928661399221936244165875342873344172692387595200764410940776732628033502223576442338432606033781823552128989795159611484829144194013405207226128390935409919307973446746397613131607788370544083775852323765696597758565269727874837763449600555729227588961327131600570111771252906945408706135148665610477775177816757766540323793113859753631134342888738844074254336148385746339534345370091728131703800826595288637648896099134134116656421170138564995798456732933066408058529792907893020092937041889142976166209020235449771729809174716694564431303040476846632024773972840521918948125896233187511790565082351047502531554958750680336582827931585267649160834509180253247939547252893438458007322913435719820355557662446402898653494141266109461892919587914037147767517035635849156877263039054475400641335238971380808405303086878492637567688825674631444756882228881469580715463335160350933394227342648322083220597196799181569736068584382142023446551472185433391829867243463172169893472272866577781678390715614977109885982784849199246294973608977880762278783117182084257569001353136320552666941110496394998928351100058505096681400153699997023322967762985336885054397765145886069104997769013477175267215989364268657454037426939236626253162407276690085088239138127292990325944438313569444045127337723814045574965023576679619074532024308894233839591822323575128078170996546569619081380806736142673745185200047049154402725070434478372574467802675366585156360084858348433203023944110296905367192112880277603739015677661492718616514177329518465749621216307243547620785047462334004535067348229659925529310630215351445728273140802050993098152282193358996556024952081589472563880673332778758538848304962115639923967748940978520984124288726842390725222392551509657502350880349569384452891288899903697792252255704081294668141468297937364469260173473423837201107574559378934619452211885590697223960393508285899538771288462471654773653493303228919917338180742127055724807591823100610863934098764976127155420350873511456892144064065110871065201338999804848656408623456312064048734177561009785953139558413230525162712964498695032524390932573832824585023342327405081903491603512685884754430197804047586979687893163563627895455471964406843719839123933386361215011774769932400981588146750219394039766398241500204981708613098088069462676183351753173197863107089191732009587965153559300491536540848239696133960098947717837999336561267444175618872072717659037860876456969968462213780352843955850009368938786996271588158301928127991245608002041011236051175325574956566894066460755009552566855554190702747515509502969962823032102423147793986445841202078155037460798462114215203628761848013471067197518244927566777049142134380595788880409026101292070780722994222373365262231203963118011158621118860129025780186461811599193653464722846973712641542585747772731022817295583629834770961240571397455088241528340097037668695481839118330658809068331596887970415828918087367778299416205800952210960399639079901651357938535984249088890295977478137685618479503336845658857374597812152369968578255614901503506566148431377271018991311752345680167279241448862987047934573519334249275677036977376749704071426140733225024805502506492441497400852522242674327741716193926554819219272973937234572663449408888587905226108164100926981978978580323641596079254180538873044772678850963816560078472545958158738749524737493573852981730206029193131263956150763132424922058312044506095052419560105368933082109904360426876024846005927938341729691727284114724329541134650681032552183241737147684915771264083358636040597013505512763349176575304600137109483449939603341694389603338846861871524915588309794202056511230223737135482502539211261932013411872271274812701881974140459147836147066303314674356241697427139957565757396872552509304762752860525565862389290877306013147445274050290335563787114886862696857280908476269117374407351886550714835577218899488848870699566818908309746458745424363148193200691986001145721048050775347999907383998582669923385123541262021481046547420846465484643404756929485609868343590493087099007593948669457167119688351996144377386670538829673135351560396524028234923298111137149820196873604131144711241501048271470758087122479482719890171652861669614206614012049335168135142035540617453515270617963523245073518431668393231014034112199430809753614703882228333161633746509160610493792111470866553098763620889559600162911574415395169589962951913504923000179203752440249017159115885921450130295511802346121479826455201710504547285232188531458070432107999734838253280687044336472824719151982090517979254919428962839520864840057770783916232231089393103031082392738864567031069498849704057717853278401562318478183470232728170077786165805350848187532839119238000610544675699684521669515881256898027590480641572390767387002686619461696210951424431158048722785969523889487719147078297094458800500733447842915233418853706038324262167993796818754296727536364707206155669153617225424668146944761488042726455073970983562478275232974470012018488641505417847832008433145256249770792199415120661639720501763716002005687276464917041197517851233732173773934737436696092530091400503611154382991464232788640728665973115726949773385684394183251903721843447598787340033992167143009940079214532789902114829116994283946781263678539230554651210914128543695982168594932098847070778422339598923984807395606050008357018245872617351279677553217555287661797467822467914537655415762772046671330199653115890819255995524278127975967719218888297365480649997214143592656486125679917717149852458824150066286932614878927349133252980500974645832335553397850818630554480022630770311386456816523885693208769690397056140867533665284563170040047159488386733426191805312172606564889491210215450564209659829872563908713857842560689048169963013545194350042183827192546011928283912270575705100206841910607785716147593511723648026028275813900573475166915211151363179265785956011039860979643081146684521436426203946450724151740571586751564007000593813992823356748349072215011455449017077236337243975740503358929911934164306405262720647096794708585785830543085753380349937530417020243556661966611688586833871940410729713702699193498565262062159476488296901636705875012861251676598193856159536057207011860965524526022665224899381920646971257211630081200485009088022590393680582861717979607725743929067719855152276580636372080558516232571629861467423051958548285591899204578072079878291055607470432507538864050807226017627075954473437490274710957953229344237798501800268249851806229726732749765848484812258154808068383319968896877627643103128209914952555983376169880632144071279206958953957532288391845840948226765094365291531483676840125551664095540744282117366635207390280612465992938049147471757450502753065099758324832085007972090504705840539189541432266586768052942834519290990694821160592274214580768838056720148160213627323531276973431905129480741646895125763278768523741315721981584507607338245525454850904558204522080138283580144980285453810396315219884239423540578840796098763175796748893617547224852201824932012839229256446775574569855552725198207843551611913730027887766863209307092993606410232392947371089534161569269175581830409259164582040496276119020302629030457010276651134131483250940102638755353196237297653763091098638295200140816487959211463627465278340663221845475565363377862937867989577839592137749225463765640891611976910588317456902902720100061102477633731191055456041432501291660276860013249589655796914581818641162836902134558696498026478866180262303306556520643038163202045045158253657593960209466806952071595279915792474952676540135475384716306526519293315881701535782104546235819197326409445364448305275081500925263907921565337715527630271226596273709746213379034839935502996477203021153414161358466284365582562836736509461740875559281018377544232469440069044510063848150954914247484767045480554009415244657263109071269867964704941629935198515854531778649734150634822499192674808861208227616986083121925972592635973882185287053101113845623155248671108222090066794826134038646202769564247566660662589232831844687955559099658804689638297820639797675663338433213929751149589797565618063477319189282808203561502471757191844926178743586890025640513937646397353017761599012206593033234589412974406671167527514578606647753753755679268399106405727143883656537416732813065921308179507118576370515324550032419596994744280859677176351107696984527200974235564262285123783272628399997574779174331807958349456423014081476333722788464386298062007604562172092336123444832304466552246161893096088917137115957374616026343245624474228781368053826135920484684275531956413595150955845326363422532529262473282063042677587781308878557964594743062149848736472330767111694547729993343717769902188631339764376928143579592618953459972315923868183020464384793572295097438041725222700060353301493598361932551925902484022688723566349975558236135896789422553914999978627163464113159783836954286438493499661956410664579338567604305088260220869496368601686403075727333398709438067184084304321855725927745869814347496691960717026447050111733255102628375681129102361115828850946577274549078708896173513476725928732918899324231324021907542415212594070695416435397600274948659774307719857303191914627315964461498313494432589695001436569549362341070835885276650652378462198413132945396184755569682120665352960471988614948137518212306841531384738707952531593472976207658551836132624019925409875439909037210214490220219549565790917294439867657537246037843981224205715108289136115775852201258067503146385970232852150306007073832453129029883274431024143695504375354230629686014830654918445492850981760501461187870859671323817731591349196152613960173244587608041386840892881836415798255804529824801813049887505541001986327860306233487645037530874378629945610477853393902504275237150033067410999068723303318419243483878787872191439190254080559552076253653622968955557545870797908821061899801126010131676804346452509437264775035290070579307508556593220634655389814331688713064898616906826385549554325526856095402983735407879434908597785671462196004682373317413516034368507276021940527653751021874938523107414174535030306114903695555232766075542175236372838466710753670154195504784294547083714858232130139294311235910080545310155071067649876023211324210607932925795938884997892798731505163530780954147808436827961178617814582334575108991069046918332112606981346473269585541945834754881941448292779345979979941261495334651044808684772914460838057458721300413856926062829545596137130515472535616119487278837925265243872968538219756281378720074269155709659466741264557990340986086550863370834731923268783854797355818145748752827562637141175905534002970391589677866781446262736467242522849088352655353846166201413525370816804778899951321518389091270578232434946973982965320633836188805690898998467379002181711749947510655701019047556751879563486874491788746253821819491745615131750645653488866645877461601002051188328680960621142049266072660764517125781823952135235326937126283452375297096444827271736620568579197793215998055502425606558721568053234347359738633457366212812571402588564051096303821298068469763353563209064633055321282302986187177721236298797513344101571776769367035351392825655021108414269571633946809599967505083185763833134323294201316389763260795506634176715374342872396046271888216140887092075428901701000129706490360054119033254489196743041690059226079133207680683792781636733841679174256146922392601746412233051344812334844345036222097349889666730732328103491470072996171713321515288367988852302194962909299944199339814870255190937909818645358313335634497637644698736321240330084201404131242384007307254914230054926482567327352734601608280351835858660678955830268293420874901031356160591646022337749151753745662269896242154118006978003070656327239980845506965699470585688583798332377994688287160759655817330125545058290576090001624687855394695126043209355189354635102578074035632812969181472986216702203134241181888348279226344793263471988120426595691144363010880084646594015899608262359646779052795524900078771803926838906959344457481943322880443839433986144651108261728595169615106159288891591442186744031204922038957662855193311788616604317515514444373686114097329370090540621491765836451814332690684129002007424089239836744071823546388932831585370677215752041375685405432456645533312466309764674610808047526351299032762285411231472920722314698983049481281942203626185832314861486451344720956338255356129745964926247626937741212353444447790005708868886817729782464780963969433812563423741995123663354929922143134003070025363747879257581293415353363385835275641836610220601458894902291170760057962072206383939921476913250728089136501222829917205099463412777969146433798985482144536663022097400746829556969310746578638038932360817688396963379836957543824684145934220311733836422831213627450414574465437006197082433935573201854940969348989213178746824006283575071539003301488647875184907938111336948326873685582064477673730131848598859128617045406569627016845137128003278501510190117875866170339178532244019798234229431299854238832907427297777710071195040815480300984442879580682210549300377382987658088633960107132075433433709217686386244817797086741453928061247076384591958000887017842989716935982672403439092569684958939127776101697846733962254326586656912025332058890508882463342769294010862761597371167672763773157121449219782982738179385049064884772553381625461778786952212737500753120384304375580659909427554898597589006333942570500807662385250175424730850248409335064603423213156137110989662980718607008792168113482022978379436024673199064548506920197449701673032760644735535929730949276513699963273027782709091352461016966275282642813780438065334473039863020363099758186729515966225450297502141643970704437466184842838377684172713753035685061079697317720609248705991898701438494301812087480740014799321899305552177252277106501219216896272144409568094108811666178812482925158107349782200425459218180465450087518032511894592034180379642222215152959091396146843904956487855087475868396964559367446079827463977878760095066720920207314708698763462031631946106579801574202988636579914579914786258244603962759931651119260738861905477452779548421888950756770136775753885689849793916477394530210228081662683349278783261519843808308468045048129544786676362303254731677720917739566894572397975188273181094481227919477927245476510690290027974473398494659536575925601627846471357126684927307748036725082020044791400337685326535905602573192579511159291147438769034962780485677396036807350639757238874255554298929742302854269425100428724094694829766685247054134629085601832638814171533116293085243194893046744345259945150381593898733691176959599595438200238205539198830216344161103793612740838665459226194758675596891448475002711472751306987222774036435871321736240771055028645260479645857220592227350149488235314339425931117330742433181876880412286383703354261806629757989921297186461371261716900618711968456295562693521073759923073601455263258372584431357811277823134178604726432927389684949680429855285868861243845751715711911733294034148433741360869286554815852629685074959904499861382690206200579684807593252528824270937309364490606008892248848263096886357076839264917367463327210183764934131510445278486843633118125561705561816693039048889936792277800388436983547534011397147052436745721946801941593610059468184457604521985008385990856569325889644889326254790387183510635650647642207588166282626256551914575041213992199282291557731067939038634390006473109041108714595911270630105958314176370596332407123469094755152708918603153466486946681020210813425187543823099232641340914900112605407757570693206327961349936092602869590675005385662286497559729438064425534681691697379295591228527893423620713161999823871297928625584310262505439961286506398126719762989303621950801832082807494922068421675981747949229425920228904224683221583178418060216615744448274525674861191235164552214794669174174964026273337264952480136386612310690656305656788711948814241246657124175239021394121355929676829114669351351255979247585807736170922380932535770964176137910199022304311363883920777920463932945727499930043705075019426091957854135615407183056212513111123406413814416216911922576051279819529747334265254350734194660242708504845968014831634130470080331835593356434278151501332763927302258393343909858530234142890390977079964661069437743717088040960990560182127525660161659668571780956340171414337544913863637674798689091606324611879618767528434304174617376302933476010823103209299601390323569245543013021804229530052782630456151882084127006575355302268855451529859506076316213881754288492340989993131820376283710603569249955019976053065693270113678689048355655436388482735778119897642632560279301239338110048024909047997235096823446158143661394318007020990540692888826372931619635551310517420576387119850852260785591853299838869863694395641439875491158064742009522544985808842366186772381832690280304958436521558906693369109523307928223222981311528836228167755764939518690378662700871440612095087856371857958517647216388548888851059915168493466902529654565224381502689119048171220995781215540458998514600899865066628245755159913257234866352266241275663484060886047749828563773034472470042372221749331924913468525239236837488996345908722613679318464576628827210161687222188419747913840934612127715550195189167166766639250773692440584532752927078268202704639273665072180078371725923872447847464796351652702639547770399147284221696651048035779252423381405361479942231850966498515108038544182409256903350081973295375982762581855626265263344653874748564711238318748985961101656282403588439065885433319019184095646506213056540061995105354720762182565277374390525807081189927691624037107851291466740514392058808133968949803760383363123137449136725000803535887045104930906970870745034624724087739978617371189309786567152549211341109451801229923577875023691136957992462175431501461618521861927803192127154382487607032851857189250592107529067359452051441453731223473931904712421960924437416721207704428514941541798800487546008903556203720682944811387886436047620440390614968791568738456953172278097858384079169351757751958677002857855323045413092499549405943591493088666235895830438187682267268190366342785898442858495963774225519645061715189275237352025063441311540502073398755652435153637429541265669601144609956952470003489101408635620971311745109152412044716492894852342337382166153789358126126323782032431912306570941320744340579412902083430141843693527859422365790440501093125061418466769830251876490975418689622657313749277706090061492516296320799959078050616083143251352620916242112880871689991029518000360048323299797536899962631413879454031780112966150766619837977462149808432995305464263493545457341378112402317428975328989818809948746057042397779618871118318410921768201620078256967594614604550283551963156376241171418767285708601536221717513541609162874624008455311608940075804964616585954989494128465574850261517806345925234339205357061235583608213519050729541496603743905758087585412177433123272237933176107756868348149324672059769711876890890319204098753657183481191722861791261387172691484008376923654438366233629180675849201656448438849917504654924868578184544130071855466898341751052455716180680105674201614244467982259280231794989225466605957937848036378072647222368442055500909426798899368885643679830081816349826322619207359916491134675135590065381825725580486310745594080708125516151704921253877800781197877984588015633141924212443287652791317839331369347818004643268591785533642454214103940109413576153334513748152765134787763297136980446574388472823896091459621532962331741590507976646967971684350760271899370286118650481922214540794407380920665910221961688770987253629517133577104658254601517263951628899601456524872437809250887637012656587400421871591688523049981461500180457932429509260216945218957782997293507003970900775263494271791769354840156416750785939133407582725792813756815496288208169602012119142094991177462946511391114449545252030279008330825110424743266055340530494468370221016781015190695118224185214006233207552350303256751021373618230730101814678440725185824665893794766447239941146310152884731386081271029749997883174546644773384755582402433845171696218728335012634435382693536273446032463274697184325678551757009445132735778638851908823445175222218258602928529483771112199200621758217537671193651530429902718619362260135535503101480633393427314796802571882678549567896032978854250524046089787239893575539404805831406699984925338439963332715887948778162320922544084218482575709824373257925345915773449954180182775478334270894908152586612084869181281625376336621486685488997932804081151837772518049380925165293898789454893007500139645893715091582185720305092411367908984896167249213135688405217809333507163298667809246445541440064459557435714405439621305246361957230465644118294286294527891511363001984425249938208880521181856790068048598659254517988193084751419179619947722935126004050624971068177441642879644186106963930530262636988465708782498663536573200496400990413030051541802331262440559248343825013708748335716277904620657395274835363872721057599140652917737773773665254161258176324443942836237912267216525987762714174164393052404091602155372877968120809244346983940356299829833829632594725828658238646303635729163644747218697076616124044374431123509653735433967010610940761193002425601899217487885694910544935458724654366523574905671513415624054715181753251424505426753977580960509071981992356707223551123616088950534651884137290942212981787973011002235155226498957697833217769107057922062042095772251023001602694532394705527259543972316765127983422647405262681610881654307238910648793747178372014853790873877297789375131500522139554980814521172917897539711153302001183297461782752205244812545967845945571910768903397833405493387110834364059260866142922719398370669615672366241973928725286910764673367232445564280670184999132732889933562864798335055810225925955760810453097827884838132752222764908632942520900016405016458499552897890129538700029598154785895423743426570079580956100623146411349724939967137580413863155573132693989849979729887323134755312485661719011617702310727942452671996512363546945094482223002327291227911582333112365234457913790153637834209627492881151245250262218504737310444276395376076707488090591610406906752542082717796148791219824200865394920501501196886378446751021733353428536613950713800303209952091589452455329366499473317821356334999358713062478461691099429266662998063320898569821109778923296391891873667234684428033004660710674894622660223765855070876426890607833357719338139908754706315381618573787628160828002341388943772142438474870270488125597320300311339363683201921167563383622144366696269458729333591841878965934550445544250048927360489200641607837566608559881120206058727666157518939885643699951154052152331533345716043755013864481959986862103983316785649867906160589876458152333221939034032799073097079124944276584275032749867002607595466483917980565415192235506488495931337652896069919368031651922197990313256473244373986603057598010941769385888444231699224776998359105657211823902814162587093966202275111023386057576135362983627509208429372667916510346193286349902851039829607065617174602254276141787411429449962544804726693046633111526946899974767297006675050885970142206067923256514554766666897695124162718645103691084698517120156092447810236380154037665827089927168843495890972772124362202449865537510635411757105048125428496378350460738475894335346854041975406422793672783543689370323324205771092451026581246180919287609887637990288106731455764319296113950571306508427214400260932232372148746533474525319344440522581419398707372792245699274737320603554113132691297986103541215282237703748435603436434320194176202529877883983002303320582078948678150110375132383790816444960816410937761953420909197979848085801617375685532197953860240120150926875502448291910657359967559208764193826294711102229327006683730943334004147002029690541501173015494942451164192569538503508092916690689558303966976746746101422962041388679208608127769768096956531977712957959695225547870193166080742369819899734926859653366196404630009781200977285279167754086434509789238339895512462449194885913380031425049890331818632503251195129255194514077233991062459261761839793614292799204166017075761495136927317796663293321642775579410001459437615517947350502553421953188672812062264999837533129739217542316834613947574273796652306711231028028567028902961169890182549137740867393396931120672466410940788622641445171140384672151702901687412783410229767667480091085364810269766990630628909777591698083397343008097909277966181508007937205899482956765386727385629641911079289676261327428698805400403417268807983338479989802444808939343858184778818714152296697106250307783050729549276589384690211740080705353429256691537988032414874632635384217164328935193206660328525118310331440415886726080589089422148873124634215544514963267152471502060014659028835236826156878712054334109748788120760871821573226389330499492244541216362404734706194306384464696375206909579425984858580290364640410759699584149436202354944086738362534569934070136881935440004764862974374819705442118742738848766404786581324074050800524900694446266935390700393945640144419244844721497124864658117682375092755672631721276257184292991194212563079713856680533234523379114861816948564760636646255175286789929213028069488296168299720995275350660457728416190176420527425871149422719699249503676415940976394679615415325699724700806402973764025467232880820418222061286853973113819519422243478686204835833980527454194786028151647453322415575375949361100626697911055704922144613607198176666873636299564456354117995936112490668331983839465520548176372304276401565971809392459018458051849012111158355897678219650176663633729018303429637430431706940071093673856065155666965480690729574465840699268852857581788882138125836598879602720208123968223836049644832339816561815636840995482928936435304745480249273449742069607863064600050330738873382837578861246512237125141439507660193290931017330144930519775864794184904353340117397425523411498875654776498921962850785989138088066489586402398180496928973853068033414226192550277239994345591018699612731518639436451587820079995207259466214882864314072149943353266383864991844024077699137536812253267866111251508470845872914428536759738360690530799402706648324787518402121383549239572337921318775503288071908332368191256125243350050489120953620618159723806682807061796874200446222634996377659519349635165378186920019361075242883350439697443569710794081408952245609320758382823160817781874018260121052799159834839758488352703728250498407266401801501885943538533429365522358284499225346298352618706916940830885754158622337743374627685175241317554372492824814497786032486194901767613491701136378224742053286778726475947822408876579756224157965650856043606282288456073122021894324377294094773868137954489966685849110072503259836002579151081759569855223904291365665293502634201138294475425635213454072769069061116604632255635356753294284768224704582930356855673605089575613743800745145401708303482395270279065690341542979473123548322045139046754799839423733826353481062737161463742767206546290823118136337235990290933610389683799088701956517412538967995899484599804994934113955478963635871867573924926985116937285510019085008630945690323313218124802061016128310467462999714119654699516207132884905471241227686788809559916848854056798426730809365421246795348391021681377304480613896734416527485890939770161175845077823915860386051021301471627897664462967272398765515791997455572803661613132634357600476791773175909919458438626596289883418296025981503755115910857796959077489435545379914437600650295141549183068141526625798046492017579560720933503825949872583354854368530467169545282796144634808699756823471896988327962078560091056972018803077219124667567480414770195672059789398232402533678594007037296176302301622159423442846456131131128422929555276340985314779734264644915391947159801857928341375735512006212256281539577774989038892589682087898823842821370686506785257231131950028723572184068757766875484909439847536481653237067937597174149713355321934434340768937081385828323706909151957274919534742488398187670504940748685826857582922615841468393405997748267430454113581947796969603386987697296569071180579599099841051621498709048457625788679144976145536460534406273591183567883764604750944371852450868354900223412272939871244147082929010740765193434985157135756321470955510725768566864173165660826565575796580967785962804380369310050470515421729580945400103398863300397215679454294582816144385287142560013335264801480631581458263586679942223787074543743988844269909495858226458315094470282949091409919333832375495410461646360703767773332953983073969534153762972961210906804231742912415482381295795428913705196786591221574028268075821362592766829478312150004789389257982638918227396199707845778408791553122581079722467992820824142685083035464548995981822811715826272240369375032779707617765254682075123501009588415758437969126864749319435811036484348230391089568189245310518228656033084045667246552547042123978392822933770991733277970868359860651506297300790810045745066134145080989733157535594571879103371373007898992251287826446629964427187034344161935345740077418206706633488896284886224358633888190624114888701846419250257950451271920399859665059788934693017553598925922088603543326717176067912822206821845086937357989901281230070488324651701705836078679746660291232258969163087432213980692483299896173712422580000632907634518982374769781161893046753607836557841009187188968448156625220160864106493996461396841701602138667234934488178502950511906085002538343594532158584039095652971372535935415633477768200592385138337680899854268372075036821136051821477942416715052290936185874459283300881287857617932696134259955317190104720660993643286491849385123255871151319965879915664473247743252892563144071501488084280491000806014351079343690503515832127697831633397721973220468384515130378104585837139740689591516437462201622048430092728543647939882877461518856811441785577334221843746711850658154264786583923284885522975323475046946160086225947462734253212779656886000499465194158871075549971606147510843620648894387088838871841998239834873321487338007065004698159914633451742607894827565688496002070705206788226136525686783918054141463535648868641894290054447790203675062484126854977213739377356412501931978218030841077905052751509234536233835349756835149749242752233557258858126872467281565006427677426556751107021308824139388488954004334618523484819828953784252555998270431241833200941776763223260602645997784738612104272551513935459036145535349687665244763489447212369768925725943328336082397592221655090393722052365464394588613727341515466911937094764203022194823441422971849312304735270595873704609570710294513607943688624830093545237183935968079123272901505017092156082392195047224135533738159870419397483887281907167183134410314980420640720959940250524930015809682577227963751412787157235251074996079766647792298660916518411560539794007591079260268675320831932353854817902392658814453728897644576642717697521760530839282786851677246457312054534417358073578937042162740887809690784245755100313568428140955560944274238401371102219475707038633651422425011194271813863263555536511517803709870628626511709185660387088245092808007731569983507218761148312218965660185457383473247521164200260727675409389617715031616374632715488290791064471371916552385053383756709383611753851886634058359011011073994242266939800617445917680559630417649238089111085689318628983489237807024275055734360797588999973691790035950922842392919985805037015752040290857334533626933047248077048052593296915960003893823341366675126842903804952618802799876484734718633275663881835309850993624076855038522926678049892341235095810417097941042000864507392582317709440716172358541952978156263551057295907649654755969970958010639601637095116755333809639779217710023772478546925687398452435774762844133428594432724035087075591437592583451937371750302579414156713604585286812888197718807774749808702584956703764978953068419744602711210525542805341856725072708029195584536547452465497093190812096980799753038471119156998054947607090015280244499025934651274431587527124749943412954167710091162502296783554270143801535834223447388640752588121316355110960572000523215623477274959369340220843264051874490336653289259581641801029738190751968076530028145577340663112823571252595123258032265937434838090108401085876812737099052690828254302322476019229041643734643599644923038435950871502038243170661150985159012602295053649900970245904403599379838824743756747993118828333189399765268323074125637063508476482239843912386874410894287490261133604624915223434045628821125871682199080031516891103643076932972798399533240418417372445095220759749889460087183745866295124470117303749524633597414942533970493754891011584351619244545106093591464638602983952594623070264697725144793837673600822590382759559801154079054548450360771637276892740414592831362284000550333013864397078527239951027584278169196988360685742232666777991590622954954250536261962801910715293306431351577674576904811183396007074175908237256998203024606807316876911723773408172453902161942684836961964708542557462432795465516988617986642955263790132474326507735937331367146372243188008195715106737497580134325246726025390232706632977071962989834030531061119856714506550962984795387113211582513534718363163499154177209398878805410573093988211575752951028328171212905848894475089976097838785448089402169195532549162287244264639457665196751591452966321469137093523275094375557425167951441474113079879450065586153263880962751921821014043051455816632055696218501764768068497579533320430637665490262280308439099712097027865936588371987930941126467990718768955251244400649878334216066836076287592514942286005892118141434753309106636612584095658107535778071889363996970624155704122982907112383657844572155240815012782136760048546311603432220338682136634129712200083379419572550304001953695911750657448670315861897620315593254250305287628924905410563777735156689091441078859545890898257798472285951902702473428632874214723591960741334270254606171869135670079364702768390693921686797281909387273998688664011954290862141553909766167286915087246929424548858072799431909561660061566051620810685068931064273138866941091146112445292385635602983210182465312766012338360851986048634303666816107111444745912381339698809707076252627697142428213264460845329341626656168832276908157135513786438292042180505985562125703952763068025504372302543614676758785350042990508010901434690619175523198598438458169702492485175062758022771445399325254870160549427794909454331670944563267193940290585717389356210103227821131194523805865282617187997503028916046106386229122014891053063247748472853251104620027839901496835378240718110596188541210130479897826179552946632052167732939498361494413429467228514484347699619770344078883110026344096363197075878089159039052020119336118923664931209421651372639445740808175968722393012914290176355476289156755238896308710587032299143185207701490750436936690619132575691857596829685955777156780466702891091666059055682117357480942390928351131154333509190293523080307859361087175916784715188228616861483325091950414265600537420743247889724464879616365053401311228258752051294071143968270904538651496602567127573555451934936605607261715220623369457930273662890384142172990857593864925445500262031932607590179771970458472074371020395411167362713684673240972952174107883983205551076519187772003900589100391915339674210499706156709091259424996806769002131344316983423528549920767044313777827467396657027005665637885408618210100720792684716583270099317843688067021009864818043705697235206644209037962454924838727125446459703834371081229466417081962862773109780444048383437146311893944532147643392955379014911072626054268240774675196416124543772287504947503205131541735324810049123942719446649105006167333819060993650762424606781469569248427036402669869519510257841322551699557455191998801568998169008418683105821955080640876772548489711938425969207055560939899963716609742997754767644978416294543120869825500512988793927688376286426963370168198248270756913182864800103097801489248425334916859499458679638489154365715224527533192097618628054566197306630146715537002400839392846891800869053242635580949868842575571170369757666055377939256785389012989585917554040189326103476891533287571518510703930318288828658531021391075179794362585161227562355025060958854106875341276781845001230286569470040263852721338586982082523423074191348995787928634331132734762543962947262742898263461948175207834669281852929325959384822869286256826513629459695967168312566326512942772725040885429974487925252939372533904696562935651075956858748681489117365985808782934746908018424240591147995844771429685693439273330095264635471101111252304423224934245189451152924826924487395375971888141301767542254818760604380087564462166583051698741311509921567460957986413802636076271168467835090897734941871492636184591145514277513734185757978972889165651673007730441572821681172557342303294439019587477442493474162983999828615891556497005378105220267661688279504394919949802037026495482192826912049412175404790798297120845134643006231310062238593163194685903790587321410145535763384810568596932416864718396805478763714530377389801686148951551045860151321225894251629397002071125868983351294752629551981302848427512012280067282100434858721757500696104326005021201547728033019841996766545368033841593783378690119452358777913945636638893199220513988177959355773757125167098936585553452984084904750214946447638729016998270274910787112592618642093615084142571949480104300352785218660228775424337454732568569808702268034711917055794176175315741668451036444381718417987652837215662066082261789996959553188659785722400327948707865539160047830375427742319317400096668819096204854492292340880400577696480865852894838744975935229103162643141514130635006021889395209215114404709675757183240819865504790045519964838353335428634292352626692804088888625891286249510004751035984930441578983966333777461722683300613108823964326886348110661978589342548316144913896975998029132963519283337198498372778932049649610900108075784687445715381160943087094961329814045135981679742133906227898733083478494965560445014851694395405468629110258722806836677556152683440168554887750004471125798136426325246151509972479747252127047357329490872795492245393092534393485352911990063184155579382326459923479808806823078291655637817168819665401228967163313660527133463350007014910207887083509831441763010677699136095908965492299708877253509560718244374383523892808677309339067107459972526207900556886435973044276100276792390992904363141098003580640980205392185787626893715504043205151094293111620925827126654483238058120496680042726616786631969838690359763245793549405304128113586761898106833860243122830820774433006281087742572271934628923304687130095252482369771626546873569272884901317005669139750556991799180223454200387007702588422679419045949896878271109487338263741283913798998382946817476724993226047827410449630067198455520263288598543281220434707441957241097390816336707087564683562896030624917950418869154906391113099257616737394169676217381981646690891705314523048894551511258196785229201069191279850146017431593292570552095791848661081441519592569028912079925220868018171059333231754875702378726434044780267639763758255586722031296365758918512244615542872105259124126758346295701712954176572688744379285242880971775415250701781400088779975961867308931082936918841239171372982506183080161846935966124513300522479570800944696588677112520805836849017997646885513999253591008015517962316486946729386711863937669132628701152233044731760068376051318016108119004439403280188520249798786286289577580536626980274843695311755271057492097887080789650497941940064441768101632849091618781086104770694592864595141119048655126903368199934367555974304436719173145841921406387317166532682572821171046840231847251002523533212165810375023671972919057025984352176005036823461262241738265742132708205846458197961334478879232307925221819733402463889926766027254790511402379788711178415533655839645123840029880395359616850812454295630300004797650270356951620202333921139304310259965763918182308554790620207128141319547473122841220029964281871603058063668975190763512283636004678074705610677982621779376958317072088785069615649769125339273020625724953593733395039566050251672888110383599325302902634265130084184553929433311693064013936442036391903836238000002487974309927683014510770425763028434251130055435150204212080819401906301219904413048354125183868866007180147685389163994536162036700207574304305182827930904460487827565429487883799049851218543038181901226470767567122489419234518553459584307615438255449135411153089303127745638316769793568287130130027159851787936712805348154499059130891315620438937621044159391585062881302522173528006696087557208732298456434631174370939886986888831894158697058916305201619623580370790400782868961014540703434364671674114015517455703919584674580163848868696929201256625388976693761841700953126065780482086374186802235776270914649348940215735667989307081932596747026391367650076434610260174456554637767497168336222536064388785038420223449374430915768384858445179180322349419980904269372658543302015661704441864684071545687735839722334920230929309730834472900160868556793369824663748919375017180737352942762077056149882304958800951277833239796870277589392483462101376445568396474209937975698629583669608843854495965466598450142081627978750480195461979098504321553193070232492582793456562551197306527647810020065926725257651074671373820756326804642707958237193662726840690863186874003856684336259073566020745186067041388750605436459244575981003167736925746725577606335202586851420532661302022290112988066361954639760292592830352068233720445337504750713156552674474763239287010458093912241848829551101252123445332682672434773394681573460102080792862130295507806630708805673207163169349957721319588227552646355718548975370098915040110148843456399498496970974937316112696693568415585254658454389065340283624553653923751178552910731391005416643584583926310245214355159559403822647848939923741973313597839115195964290777410586549028568278895119458283666412310863630040161871766417437375748384904881501295307778558957500119765591350612734571899271249002844007981026550303321878339483645427059003167464304355071547546302011238361079213973250646153961547790405548579414773439058309785663107257312674029021575397683225435658761939122156503955954957946009994056482256197638478609553232635608149901976315271794589900260826592945671563809252118191972269946704120065116068914863456413993210013140420116274010103404635879413899283120306506262549451604263554888824350918434389982944243883499942527704802228863439830976223377415881502480945409396934429162873249091773954348574668782391249613084984616146769926760608218043837460645944253476101303747508899227309580276894367989834312255263279063447320103802934401666620319408200824209472109187878574492964290157466743634079198427007911026074460641298852216598221545785566008893488793258243991268349723257028995272348044014337153899852404299402596680712134815006460412481278258604365318051589820078746927832521274702070776848557359803716268577446498085968315708587477790852022504019475897790476981398328625814927526602460783436895313623867836917460996539541552181328630645703632132888278851791879007294698794158497556176590895662092766833819838474099884026221058963368640801811412753525433038550318782223984881556568783793294346137409858579633828822744444965387045780881552002017179993233400200887239065796954926901990501649363180715149957735270011455906977012183421411107850585689539434297427788412002158712025427685135012461454600433507956587151529380034731461101047105961914066676232939994287100387659735197865396611602772167615738955745527291948896516104080680851237804428407906363944545872908945745776595003747596967123416428677298539340551774484386557235998735155752575539019385124067789755344391994976117367555468366638540284880441415964468109458592505866742073546876511856573427178862795388915354426923674407191725359934857972225346697731736200654255847819930871811226938230940185921294546080707763594275232658818006549730461818053514546245179441190363546444686216973474679922321343810584100065336432604687672093668606577014442194998991277155791195719999028969621217813705399634823501046948724697290161214902351458235399497667302430494550401547934194330230220439428891905773630958789353347396085373133370507687999587530818199086302798417124933791826453312807599326521095253979085811379102360728266131379739645569932606339674266851158490850116012604365582364089596215412331884686927403569692281392387623039042687561971416564502062299455592133797202543751901301937115920133275953680489677743089977345578383400516172982974667326201478068130217606259792503521020729814128336077207767076960790998189537338472745994466720181728061063376690931287306042095332700427333297519664660037767812038377944169419287840922968525712323996717533585708314927969265276636705215626226413375507661203812378523348364130927369896749889508004710641460904134330469218414123359721732422098195007178098566255877422445815035755079583095445640003520534049254096725895524228321131991971548467574026300766816516114980025521707768055932192535799839613403716773463028475736754054719406822905335384513852456146111916214526984980990681250795793881007623701121072938287984270383159611551602086414151903157608819966403651474097704580970997006320594466994170731827408253017852600028400976230780979411960221197771859216165265178819940188661126911119880714991322287126317694052615433092996686585904607165011991755718920141161356750736359663383019842244315430166304530043253523812395382353387628274301166589009050506577931053379258738468962429119862432085849485990929828506931729355563215250982865542754703386770251655109973363535016069063843595737874740992916721529023294731598885666387924155879608012699869280006815791166392002428068428543185745472968025861244508173855840547637290768128383710183697409693780608402808165462803117254542948860074335151305149537733901829019730910120925355515302755796006245663124707565266322562841020307922296828139787538595156662248036681692004271791435407371083109335335998508416172938890610412301314040383342457856585792278923455123591038142448052166083108803479047158950837446739336584514385841037198505136670350779556404616949362750642410599580073122795595012976570249902039923544449195386721946582897630449899610745420936367321298331225463226472975490029548041713947522201116485371330152233971701136350814735336712287121960014097398554656172176929432889891276765071869574771383543125767325620653018433540182179141727592703588812159525485274687048560095326821497995968252989297257856680717989794218773931491125925763475025548353436881723695550141157669914112062225632691451629707110054287729688155514619376334195760885442936930716920215966290120693243764190435352468350671722114501717548654819101306061700080668858939544000993358817481918361101555922339563595859322034248860280231607593411613137672688986813969835331684187112328671672421945573779798330533789858358363858228702433524893401890065623833953773857261704119293983557229958142532291937855583502419415578001201087622076704004145101466883285497134068957281348433666369710366621607366176460492246819583975707015431374940892431684591386733896266148911077730907363757455183970727763526830493345578412453802439859521050328050081506163971306086096673504374872547102443924826476051529251755565675071367093850239301397657790089035739982489085828549063595147258262673887673151046175282298447455328980159730519533616727463328008237188790791820396240645947156116189879468249194455953313894613397534048717570415297046223580214068997835425609215983241203681748989315651742937007848965341873291051861426231129711117610177977954861514812874885364062641763402065047187187111908879037968105316668047403863661187689438139503248629230411722568707016064371270919176873411989556682861518415168452168838128504202101720050400112494958350330828758969539434351613127925048093899325428838133803582115025562098489893355224667415737863943931620550428034265590649092982053698757881184974064063717735814798915737785962090228018904965428740389823027901082437240707699202605125854008977835649269584265283634362456991765098403435253846020428158495830107411343914975980397157754149501004549074227332627656939767306783889606756190119642604070142337858179360609408940162534136940941795523223586320926038323659360183383352184028550016989859848865168025865201236961555872057425509185216185359921639927820180524851554997567010354963889170195555322370338446174976431377073016139609851634280054904095087515781293730937933856132355793948536258966951399407444558813005771523070728268696536156738524810296085616165578415643320720677271025053929518220210601567059219086170625117082369177486447895748500722403894451004513427419159396078525735714589655404409642196670314530666419186118883406855973483454886002884672503412176427476344149629113545264174115288575736248266240645748070745496348066710080140792175441044871110907836856054430382927855230694923042214203977119733865370256337870985418414593063814688834639738861290605514330717276206206968900438323797337233791741192865932597105643272078102292735818927080301538595624491241245371742014774003966249023018378910868357697640551910938417005936794312952337151141812235536290613643227253121518650238953090897579077578230757730760103524025126894855912284827467928178036948676610040791296475750435329768632818463703312799981858302099967606773786974602210586344819187472714359182798260576463161256642297114351552267765638766995273271592613145362030720381972982636072469716940942632258075396679692812703912172025470084054495395778090859732034226850552865931023020987378569077698623437979266361938801373768094156711879851498721732785003136279131704449940648207233435803394465381446407425488101907157528389338160976303028355379912853066222528689434052569375673964873492848037962687304221820307865023943523177749628705956277576270310289643732550810761748678948441622435379991311651983604439711756045187695284014504105313578707162290235651651600592176440800466595992611305042476923830781662828156959760042817142898013966053342341930817070458726385114648031302664353030209971628089366664545857088846882661817765983795697954370373948815376099374326261176412668793913917357924682324108788749273248625281751190622346608927734556505707325631246787795122783924503499780614115839828301678854345027785869682502683573667036029612838682368176552071182985951986537529710539778722818332750273576157461893177027269645309067499721590112269061743340231617823270418050170479705936309846485908139313778109591610528263427842619883455816601321717228883674536511808427275498445547403312591957777592330362584748305335545051558727205605583766858942714352505239783387823760409591725609495325775530907964865746776035508428611898634814652438014657255711099554401404662512326337430042170224142781471133984799366957386430781855962804688947919693982778313739774800603957109176018052971664614576282955068381886448144277792033263966799294165426158558076151945248497942619484054385683447583086087666373726513219359907020264132737966039009886520159088534447950074107690155074337897830117960383494742345813869393783127941052851873945099607691794410962244568303809913401109440514375764236072677658935894353275474309846403712865327800351417545850421436240206880649259091969629778318011903337334818615648500213242643078232901467911183384475927847552887421727050275320882135377926593720739276142586062099520614878092408103069497017854851821214808578407251100143404305820139015487216743769905142040482449124361356491159386138665291467433045112938738275331458863133568853330587273715767804087704245595012425322821195741718984387326313865072250854804662956053537056933573373807141462821799144081364686085019139361715576487651526612896396418975667540773775074327884195771173384156927438542174845350055215355659191765324054283625127437425703620312309129714345032059580277811211685926996360320375261045753971207748568661865066491551107004156187182426188519719445830524247459573593991514414923137199671139390676921172580291689512253067074942710211385291481321298363436990299095713049685124602981771192020070695847500015072986460909493840125796887976091203604482693723132956436847895275123525886190764770239966792850480018151802986809228999081262713494568506212142981624926617994443680300256716102391992654247639158575327328141104694382472451609115068079989679630345021389229384089181604138438673918497955978213855332101028048452349801754015603319908271303964539452952392645480514849322198289397566617893458315596383942780380923108450282489093123426006375631522738469931683774970994166115426564851033430174865750506529278506513195835761769590923708189561981616744606662343373987675673508052542326133330530508020754452367100251296567714992828797024230878269415076546293102227167718617346595931593767609530294580241984074017260981805566030562181370378739102892294639359245722812137042037939017343786250015846894925846164793663028845368541985208194504433931171047087199489288533970643923060690695711391054846669773823561747265898942230611289413311195030797691596314031734205418743360719281082488547006327653813698498022007134601053284205379428423150453421695187657965373523301564467416004026450825283722734385614754707300927469856833871229389276658484261406175767003621930053279466020964109286885036903423587797215735054690040529566278791464236640523289305626434032620603201301973870842886035586567869649979980117311436016783194789184947503808840410148826636198917523364637595286615434629785790648068150333931765211707749490743713818580952313454868380465790902433695860727818359374876201228018996755059751731951259861208863676051142673807405137366543141445210031453597230818524786835500135860126665127612270050291167729458597540931219898091308113159095905782262508433120264263790591739995785873617982714162861783003834885023464808760255514329430643076649157161716014870989976040476437945802105004375350127176105357023306969645424574227435024006354262421921246053919154068041637666731746413559031144306550399938265302486701882039348372553593686339107322930575060237107829895597417123423692063085032455146199760000357761384940782154903245026883043780156353586108015274473028194203787536259022753007899847174284402843041228839653058731804748595060606167522337394196462998940795477630682243251383429018411917384996810457053893896131500890155866465707826035231400463608690089211882284786028021782134991821647335637429553900078764496961338739398422149856478486283876444399704149974426710201374374255875899116061953711632107827005948383180959099240089970897079407579498104432514804586839755497649448884367044194057550701365013032729493260405365852838192891242936556022611963854690576916893877603497783279187750291011671691265619882042606448079175941689569783418235183346186301056824342154528061936068460388929843834275384454077624368629253153903836667358965989090296282057272161370054334310031857733860234346049436539131578063305482453400506369196552055540019300174711560589097808077838245162072444568572220063230785538877506565609531195515229182046338137368169837739499021992283766405262710282000853343553970095938639137072323600814042865327282095605325001430208009666891564342060323389416105687736303594226045408330964802093271258728174898725836575600478710370842717981275215208201635142255326901076387088146932012589446329704470589907712688558669076566106697392813382617755704399964720502400515651680568465464290031752970711852535577743470640455779882569967637538813971350507630598053523607987859498734575461323386322974408559679952453278718148680704962676458586586263192213508600160458357887460758877985267903622927652711566008688136239094987460334297794837020168127565526497142194472420200477819355911831171056602858731169176659468011909551873398058609127634109051798910840256161606323003224870108554203940471248884148730504420121849743353948584686148058106373299122435477262987456967158764917454343520488734190180981541523478920050613030810083657148799268290834974640268772987267766524395449763259783342890608231762631215375928130429445019359488296556276959264715628961439894469827700430875804464875203770687364172380969503384256364576280606595425174949035287893854832802464457221679198987162993104268892116421273126305751440216005717482145070411058489333750309358396138548970479463606910447696092333242915422952289835119677953728237163807611319630191849123297654935933475290568198723703454341720134359194014041690288624291474349909944967237090237776939711673620538354882511348936732889529291860777184838319541554094974233470400466376116842057138069819049522511648154175529986310557879126889039776484553466826796087187632405495618065793612088716971192816037458869483459782200478757135110225304011100327256501695479973664879994675374317156671751471474616328840595558652076568596805441368505114708647256039936280989331534683261848053702214752485787219661415972035426072348593577558556480053308023384088922088244793827598435642443537142694521414767995322018371314472805462439963316318672015697648496665703065402788383351329211709679285775224894312326745207169256751460135225811086886489718269680888393393322505333653878905195826456929091570671046535525457820428332965501819082295423261452987034003184674452872926258345682323024391902684667993999780538494004165615940956969311378345806680783269363329392495011421143346632598767790719422084235531176841264331651222429231020505722391131505323675591919060520789931245570592738810630604565716518163221350005618568959245854184037574469353498115690662067838862698781000732491404748380457295575625687550077028690143097238281172663634611574239225338162313190766607852201861551753157127401755717511374986798576182231529288121344176316058446313507481791887582136645087514348132929421845625109809095720249810817034531939166880257545439090080127518073008903969580026508245628909616009659845881759934588905020932581222174833648108925014620360532449535634188260603141920303329186930838731401715969607355686907076954045813890859435542556813551651476835294549125122276616700249187349383592436477932620865579858558744577995103267494881448394384443098267754509142614281031755918306638490655262949402197892559103447806744387204040645951729474443459938851455825066660656051240757656750789143565095571437591892786097056789742652623329029319197890121696443436942419753589347129720681974518087926166967584260312221960532634176729117048040843916947337110102561694678553867185310720195918008812762352829111463898823987227665099621968518485447337588441805102935492113982326197133757146118612980742810260806501591845403678007855967538356993226199082087635231817780272847212567353868277410420814693300122950670786816487218962656636467143395995920350786732033423644683010745229280970368229310846189989728956196381792590224964071391705508190415194921562659402726578070094593199455788356987802830743635585917101191253846492689285128008591426298505906827760569095548919495581323468433965917895551357782938040748465538418054042061971356915564789381713366276392096479231551886387940600024341745852039636678980676836472694509437092245988973317483232296570721895260305961895827317815486670361567540674720755897478047106129659432522648459323785412766166303309292452403724394315243774149798512533647879411767015312261625769168256312844850905695146309583849059443639925694225193479035923426993303862793992268934380040184448545158540092975059766110257996588592433703777264530858950433057925830763129925183833814769322402527369495563410643762651714831212426353452026067416090631669554065695996559784950355712498122855774905114435728365476151026696187827777216284922310810945860227855347493137151384486203966468946558472840309699906772238218700304053168039258803951758359972180449913418697091151066251410222220873617627124330274105212212891725699639712337532484114987424492751368308340319943713270900354292986593183054922396909552988727016303634282928827978732811609355304274668142019777651601640853449984793897993976913979550466810402662640865387032567394537187206531642425874958955041618809465580112005753509615857358411628614698137462245583156370596404584454652637115151805775311096030027096422495802596219885434254805381346056792925760112116257846960559940648621878656048701311469795336180740119880128168706648124822994168677104514232416954633184474612251288851087264679049058711754577828494248537049094541294104402085966006604699684867995024134578447129354606692934993689249921616490773299548862825154446951642308210147174812568953108567671312180598115598705847778450235052712438030750659256539764659766758312399903179198759677309649052358302820339885221495011994393671114694189302441468292279782712774719533203816922293873535553920376788598601292148578053901409280694614427178920049062761977355775066197575774575792561099783623756299745879511570163832086499141227955790813674926856058306753042924445121149096010056174177437548204548332919415652691222811765145654737679300828783294073468731288070621317257250438453135733465376640008083707163938123797487530178454022506402610949719762674357743240028146953635878106499826592328022453030294845533115906442585528052125906913229340305486583184476266221300812551687950246776301093678887801073139568237231829674435776794242949089940207352445802121177917063168839527408021465442986389615081725538486211049663510212646762063003308196628194987364695649322671621672374561245687515867456911410948261363065104565731994213216575199491430460052407500574043278261405718812147979314224551535370780198123740877385667644348576383601988516004313552383047600608216808512919460970695526475597291808547187445934502762424735723001761242205802557825404811807590757969158784846687290026157990137887948090331204440936211036357600835580547074883248715320044342516306244966913599057829104211577137425033509253736557749345007211307668859866180521564799294609886639182506486461816353144821136155415571017462871367407912703565980449874080859556396277168041629396012299265595115742246798551040798313708726195163582329956533280328954816350770758370849148694804807157617952939832123197521646447309481638070704080121938239230101759373968641837853547364265265424667676431495855660140907710136452139370296216581250061695500794137271336298870193670435655231401338745396795878552697527884743797417113176018674651866536266556594656514653303769632172704707493975483644164751719473859073961968290426334960443104692145065742430478806550253156071273204231468896723856740794193308937697593191679500664442019024410219927439169343447638043182919275186700080817043970715150815000610692261480572771538780811769109858770481156215647919668671848975531806550918109575553584405515972502215296538597790489199541742243911096782588158438751349056654400293431944819728993540817535369151820714108513893852103349600767905794374664719061804190742136819261154004713011568332271897308494364886250130678758576864364388970807398454885749512795508831102495476534164698852308466196420652211895222366011939334000201362265687831605816914856136314179798967120631471125312926332825579632247077429474474119395715843747338983932151370857270598402105672361916960816688926738210454696157214121686094180194560369889549788749857764221641248382938953284848341933326084271886980429801866038815286994627471755821595957850133937409972009949740051462626904479669455414036977678405054212349285433049908748372297214100076875957626595951937695925085954010729068089295274862651316370124616206541442062277445949371882745464860625549717223806252446436475821363828081712658155727779377829580686773748407809789658975327689073237521354225832592321307705587155383830594220253817812992113329728972732367814975614282954237252767783268012817708467630326528776914684674512485283519733902863911202045912083627717845972025889893320430598430953335985589578192956516545971357207219494948738356993050923460653123662625166323611430282213000240327424589412252647013295276998196708648251246438918066558976252529980734648580114075316095156554275936529124287867746870017604519651881169645422653964162300980986390338558711446010557553053363635308127027211181180907155270506580838886371256227815668106607086933170709583279530800004701307990625205851261085793324677273867507974051013211481379714968168211125646330029887678868195350028380892663381763587359761746265427935816695161966441158218895622278974709531858830512483362050234090963121647076013389599369576839641844323140635926846091580983652495580173256631235216047948647954749809006894982119889432478505637454854505996805240702765490294567983977783004922433525099991366500612761001293621347985921973193181410987266582509329923587444574483416859150981114886044654509532876977324400837956097471781096126777565687790545977476556648333157538157984392779497877803510052540783564357318652115932912443781246917030133075258823801492317184117720751424174419876650778718702984973249919273557032764338771945196627584528458432418773861596722102478982534149367584866499924973848261506835200669392492003332644037694484369779968875171771324602773652253497911495674061929062405648691920205172168091966534006805790901917887034939297210720289692376194593094172508704288553485506881503886012321466803659932403623646645733330227754697684305138705432254988055419808766381716334579857695383705799869033656063960417504677004710218423245560632765888592663296490283133001038402889658373782342105369655694567477426417425875606695726348239207687634138417903131505471702880491822823874327963327807042410545524866561524199949342759170808093631842796793625602394719635546111956940418420543983063128821101235176344314531980038351722416680136893839780425001150529230793927648012975800895975647772843856121244638359226815896863952465936031894546626243916180026331322539282974381571570165121030338948320767978634461040108298968791464991453759026812305014476164998121353449165519020600184751813297795769365623811094650302158409559736514857327846484998009293258028114518401081953575770079265386892595667142007730023936325942857990112568087980565058040830081729043739021375265470216849205275227922753414046607160735347961528476592690357929287615678799419601319607072724909624925162894397976445544723517666802810141994251781155986864028975057645980718291953490443135495332470282705514766182549600268212318226757170015092310158723695479237856854785991331134221643230500784882651195999656543117368176150995193734706335597835729202763486613688713618065925060727296058485538226212852717233336301375504915584557926404104379591145335425902153456117364683500215054260544872667085770685463736243253758339033658395106125475207121493611573201399710707165891857927952673172803956386568796203714126066809577404264689252776560247005461144571315422319510861092861928035604961364198727767108145475028686021496284097353509111081631598195049604381431506293518248840517475427890133555390857398777297841093490128966644135400201075809318179649632115395857893362558018595859197314391776850903769535192606642842142868097870247284607235877608056879317523697696718657637988731373291452592477033202453735844472335737604013091902595966582000455934465428283456854500881696612726256134662157584459431470445450300922804798302547110829804838038010382657906740057681321919291205726689797963218815160165071550852938789418416022442248187302695401521277006667746259475691356100837511396957986528895688489147726215131711264917854761597009054340994151528498014151051081308779559362769064248604624389101566949022542176904632277071369423712385096029519085041203117515339145363486477342001578099878967978030695094052913970621299338294466425680537072987033250555692915646811699679186715032860547953471329997742582007314611021276713650296322611353165260212251698194957091836407548778930808553508136743196989500004959589782065530738008803147540905876244020086797233247696327722298374339746797011352557699720036556930205755131304409297562773004066425519354276088161888653269203747038365131288776521842184082068868507683536868337270311801167416012311224416849076262334075684558218518543817850876061830411895196524767354699165198143331888925759073716811528512730454376587188689062964104255500166857641044748074146376112388467292075339889180998875361383018631352875748941902446885466915596120569458217214179695481334517668335673226903792284594658542665849029343263392152595289943280617057293792112269437078023989804573265540693373674463189945341744271652019449247206670943179575622568530316973323520735364964501683469356347157024254743202678822233298576991675499640994777389269100274878361238944758212108822837756635801302269365983938992812597713638311122647440246107657841671833579245413880733076054000782180120428484732980192175649994371512883077509502198440813337124893036344817667770274786603364135723775771926862757856774368075828088581629291306087504596513362534256992176996245862896789945477474216339441290782789457474693368948237119520996853194913991811928474584101645654376374117686946603152896883139577014035163877314412148930236221299057017439644187766309686251722304117741634956663420119581793380014379266843583527958319616733811052876165582850367047969314925990452144599988499772716174455436067592413629685193594669464175597249706480877787806801069113730779909414630145849058305094856475824950784485647149882777297393050122626447916064611480298903118352452374095878434390276353495583143339336217605629289304141573299627722185498676934578887085084293546730100053264316412165671536019273291006778073867662448352152053390823901808159275266813025611360491588085704889239774678935432681410732862838858521764263610331109555449048327110476032793048078236312025155555422502953728324044596038497098211198365104505209191196834768936949454652499019778743240354027088682491574570706933319085799465578404876687704463942886164200026265198926053187567315902833317091624504408031806192541786942322210222390375567300373877509779705232770302277885836776434119932585252569417063928436304379300223767760918235324746296765938932736411119075259408543757832210843365184395514289051781816395182162517604975856265732893082628072360929023746016543792701063356043412377576108732480439768762252915944649767268720838256750812801739797430205277360805411506066122398104787744307132521087534652531953046846625577451069283040814649817545044058541315802352785463061648593533586303487572463965772277325573019937243231547642810807746075609599890134170064238896270377522910525636880443654011494254887343990796517410006882855080069629310041312287168737525773223068534396282390599413123662730449466237923917911697429159171559415379188454383153064203827373544364151615935747344133733680769006982231630521380198514719085017361067344108258730360424893461684151303830583119507959551626662419948874842575277121975156377538765968850734154031959262129654920150306660321032679658720088100514857154610995039495876322592796900934727398930566201111315930264574456540394807386965839603576635290841478672825629936670150483805103284342495446972512473599687417497661674343734323318748195162855270562630433007477415002961697132133018138409790399949494830690901240081155357140526699991445001993302920639296570267407148493802327550320733194522057163519929136488156987918945762125232791746852820634479823616400036580962185834841580790545955238020256487311837109289993236613932222296979956737459734538946735512136806249158290296932529719264980843836430863926678696081522103487472225475636303978974028058789560079040557228064234667858110923227346350876843427485323473600904793972829687594220601767933767016302475159356122868571583203087524687884792357788557445614284969262830207242426791101385477970290346789451131296066330946133811244011548877787725509640017598563451477372724463438521572462814871196779943720007685420727087370564584571916036919898594416531566554012646090620772110545833869031133857880208437404902367191512328102476918803735471756363536640216986226956311342694946716007699373607358292294945204430498663341880091420151465207291237986173275625751692233332376815262774611841636557756410373524885463068985365878598082280382101477077796587777354388493183133093482209272549426142512606078919901817602696599671796196625353607625765387114460271233112855693344798581664624540472903345004397778887644216721575308258515641573177642364622144967765883798472536365719782607875783487480619824746689381192175915650808226025532825939236045342763700018496100125263437818432772046508837215206906283270166216948218549053386874987835311171445645120393402003437163472768178936936115737159830300941948204867723110575488204015871278899962916009920762238868735005744600868780523722847830623087258772485941042665433242201270199422459207576625100632175567284115587774578506384160755197141373230382031376423966466763585179857831026675750436791388227691612172590526978519412841886780402469705884705906775789023998673626601004816625918051473584323853540549338871442812805018645823838767004515571061795553145004140115873365219882104301093581675367227049432469123972623337175485897227503162848893059514095877391821169360767707452356206312063209639899455710861680454433429699117776052021849800513789730356200936159603957375959474399997271048698155664446145788418739554738189689018653268802119453343375006808292859604176578008388868912940809736001882362459506281383540485010945344132832624759854162003277092740812575269586617372234091344079037257387314083910562863517255526788806478056089492771117412949274007384937182556519316262293970524862861050566698299336553809678196950559619573583517501142870672170275667178414528452053678606506055645751517574837764295184864605577236627975984695971060700125634984007314379626480249989322887344174738939920880967398264778234210958455682018953686079169971023780158794983266204029223011624783624680841579186893309479390388094104145534820361576642570918831532901001767228268342461169404171463052302116411148375669298935125363330306597693957629553422827512121028535660952487536870247382184374955340732505243168865532030171402658550925386547990104666888225176820948826178784786835400317934647536985567288938907099288342333399334816312483957339055398026877942723953441681116238286192796803043037227483913837523289168427739874092463091718155014848278299235173526655342181660027489265988531647159974283017410611049376613250541689880368784266958688309322308209588678113120204420027614103778539738652291422365592830992777173078789091833309737882505144821736109753470907939672781025334978546058680298178033541797297800158908017017299174769566662503235822796135714447161209674968862945537570310692130611924961541465458587641093994965714354293497886230986979590136279363736687859125569267094195851417542967648836682112311578677511982972174317681678995279604560944207184716393925568019475734590572059102595805631115855428560574502470859077041863845799574699289590373780853180453956055002386157712037806679484056889642814621847522825638097024196416314754947277049370977247493876020321288865214732246880328376019913032024763462293913437423757853846308905105657182319982636942619179025154696136945805167905230412501641213744270468881093731726245048195482737100810985859292349378795789174200419938151026621690282929149824069120904619935230771651740450334870772167834862653156702293811813228459538609741705220278223066423951485668368099208177060917908196316965685296677747790505019739597855378435492348749738341066270215041992008990986203698109834010611742998261972152508926396195599456852780396146062191320713556547917772785720532435796275018567376233088128855666005058926566928716810258030076271552122429153542835122884424484208383934900103100762000024082542503125068368982896499351964795394655009163802152661113007643470446803916619040536648708938874368029381385941452412846100364606170368344379486932324994020417623048320721471575005390429440491402900190813823732481778967325286635060936414616200905737174521497680745754495440301638776149681617434691773752512083800882485215612111110821324964789954285058022044448449673542977796306394017757853833908167559918142243695840686116311856692134644991063353036363087097291249331721108415797529982774087497280524874311657868604978343490842391763555166166037590270495980967131117852341123473727959009813712019389147113902529162150560964051168044165864176110744337467682730646503245584241249058046602067403422720921321813551456566479567517505584996715635173475538565916475088921428146007265197409469097677265094072286132212009151831587139705045563477018421117590297670058868359916802296073395244855747240492261901687048090661686278772614175892831764514508964576235890428044156736080330141036691174700573021083778867497071250223357215043691148292521280019479945467674888488644199535277636027447866838847496746022218162174976655787836282099642214721350126742334937562145634559563255854117396553602236010000177611390954439877460169849440370398099483033835158553503571465327122005649015041253003662954218264114742605820071168587482348767106978697950056613141287462878389002581912228468828649467502701050304367552775071913507927433278753372392368102812862540781385358698029342275766455518650959234386279119173004794682176157860310390829726934439574143208283303153278240611628605139028869974495612894891128034383028829955074039946230348402240481191664288246521938021797695395033471513593671113337061846510630254343861441445581919858336286196895443117729945447347684746945072610590278463416174040206831792309058542680118285321304876024218857268829936828797631080234389891663223383367013015089916810541780270020150789745931547435559442853022090802835764337550550798051398529424695412655906780400181994065814562131885624928932725133749084447475001843097774360701901351887356853622942362137983372894823993837902194211500100384379927234513172948205185090781963385301774230521481737691651618436376159909492925038038762418574428934603965792716338482827066272675269138324283496263893023794556750780082203348735241701386305372281826371776956851936408308648135414618607478139564711737982895682812941568976917538987767817164977685662234442207356597249176397842762269572907217108038829859472430036596061113818237560386161995349703080498227607199321807481051570204324601512678849326845937134557153009420957420067656241881710921622135716254259181687161415807593514659110421950411814949049593530663228991002492339399979012600692405997045404592334786089256586179385820109502134272481829076956702527155397335771498677325243095751417824196271891208649026742293913541694017856126253437358978760540136925668045708527543330022011636052431188342837541608455996690532486106119679941687535811662339283894986262518495028682131270793729067885513064958935932147691842677754386930228880005058832612971800906859335651973252399944873075842610431121598327088636775153690044749396191033145609504788579422864701215415739308591152765129883261606048597942717142034498346188729807699218478802452515233025029899923448255468258278437666721751044448431868715886783450462524048521648882351413709761805302362039938162046421427627486674590114434498284132567712589087394410846753167187984188077752787002531196402583557614554316219284985379467053593176121392218985459074920154411782282135513765360912338444865328555651334989637164398425915460699782158095549914409827611321291407640412071904025594021617857195565120201841973678442651892960200373939973646225282839081689041463895652208120949770153821921543610989034767263563995365631544021336662564386791927627141506059905688801666658701324940615092260908288569529416119430941279706820288433305845927051530044463927222384189003461274594065885591028527962352816955064606163354108001290554302529774521116334478130364410310189040633649319540301739123396798076016159032457087059738328108258396307925550989641308154717820652439909931170427272742056725302204837990422310101609566249019583599096656487214951613294698764885340948040573251934442213778053751218271226036619959944565286155166303870496208604832087893562107866460343223869093343313543242525293451565946636518977488044906718106190732303989790357559360995940742960504912563120136847027089564810643735840954439922134876088091715744117231707184697635733599312307089274300662353507982640119559412758096395125946433161818873774789284931193450855080649518278197940265825710880979929446178600937255084617182402541879877135125969471501007230598376567081206344387585792827777343393150637918893687133626115957580549178542870594602126445125014466646760183011399485172132805614832457906130278921216949147022554681801424807810655984560177210761178672710193575721018676620394063848781019098669047739099518146081461728103870473858192553376955953191228701830901004931051245163550285103739260176773861778995053367093252730980187490474000610359047859433827497398704644869963105902696795808798255609224430190107766008893541508029972574441072952750371034006802135645023505331710056222316571313591120666413137564030230935605205046223006429301064737428821439566092867593630424251636384055586656223044471354352509576418740040054525775963745946072263972681840914211705578276758863020552335091508073051487649977721738762149803295712957800837452619795401150588771867818041406325709749176310902616754754317113044663376876268476109082969178138100787777918160027118422441080227869752495063968676593107442885261846890725419580183709049883043079712013680275559105998790077398028595374741598203039173451757758256407860686456796042810019948114292575778829192936639604957698210988965899107872217483734913599345820383921980676187613788354830804928087447104467222490441826100691489575788882367424378936586799069837800628674591216162820723965855369783032766899088256501756348651522566299155483594663190110299869848662078639731627286171732884939530150739783873857853820392508825367994198538882885305226840479880873234554684431059382541869811433078719242339322910424301655717790463782724496805369873573835613150829531035603440342740830475603037921617552597479340693278931942179969947490895715248285018568513477931823943320275232146095618249525577632638168048357877120892926465017554297303792457171979838494789363783802934949668390909056629002279327108601239674519147592089965268214024127135413409469913129549085267747433088920617450885154491615634204538100029355403983561697635882152929415277085186317845717756140659748252872184119080549962499391975445277864917522378268613291944474606692992965771127008122766437272972738877686307144195107422955636016921125414084770457579305894078949522402781719113469116959315870138909862984385732339352770972225568099947459093829171877071288130994557279767701907069669241415594633313644548040468047117648966195308734528699681550598769590025378443974359477389318996518538225693961475983272399995347668849947029385509486839030629402147100843326584933543173206199434992347746504123364972830892113811749958350452715732156755522588217186300207775645784394742486115232807604727476387331996208818013563923227303590359407752800265299832494968203889732143527830644448087310696456692154423258196558572833571819944522354474276830777577391936432303567600293061189599471096985708711403941115949886685813895925369803894462083116629711634441192231973102235780150339958829066036271624613583598911680362101350734520203523749136503473262124724315943909567247370399670428840483840241062882756655576059723195111183640751696219334683759519237513661937034382938507717213589971066467780614059275005888203488448679646684214930411048187542801960046187876169498182719462887631654055118027203589708338391111089238395963774981674403586159479445220827232230448450189794254949119948052691655879150255048046531243941519003350458996303440828123497814242078870287960229115737895394237468322074515940695640216962794196638447582707292896827350284451671939013152721891826432802974560191000442833613658381393393871281168343970789890078201026105662545759154071030530450690408041209635379345001892167267787429890409853905365948270773037321054364616849728041533881325166301853229379652243498269883987689430484486472931806340707124732778550116169894211277965878631743383172455596582729770646868242465688329686254783980046267966385835391694699631141163597993007994143820609867692852422030129064757610858359316829549758458200385967798453413324386550062031121270621075782069086672368818957161927278396415969665082304301825332283827995844689782245628745150896666867411697104510838053304550376099254000850952070893718292726775601769038327485114688933717490388376981357961475745558504081620991631384540568744270420113907876437345605123235674672242475055809137444009096381560309164869268091439626103484340075673832781906882810513303436865152397949844437026042332542688018497340685846951889722439624480834996819042864342032808770087930537257578086695428341153695690736461290527840739877885394066139953538883012847913242397261383988200301515012452883372345239171726410107792384964279445044716781981295989251206710913659942174631461432788193259675349823367233650857042622452963254510435465690928653861551764433351091008196631109892098929859457414511115146931338447627755888804599994873829922952381653498550407502412156119385983456430785655265952053461168878924580281418124070672964187556036950995375782549895777360995022256886297303388068306357042617197671042232635047979860216998097253191221892242754002976071485930719270216898204684330520128627268520711385120654818700377646820650534606912088625313693120419381527392496156148751209466201711241552384487543549261451486735460367450939517731103217231540896708187759780636386361843600210688456443889854853960426733591340214303618666469276102151459516258697738042876085789859444503978644783951555373250130389349949770111476722342653896078780133575814987738423873836634719921029249621557666776117438252194925152505693011118099389908398918071236940546637799058297522571444550395126814507494032492100110848303187656020936735971476476321003130336883550059960674336121085698094471091683974459285755538516524840558112430131092974593518666230164321567319594326010228816401313620327652045891230782458262942138192056561785834770428048301184412612498527487379237574944924632713858572380515817345370507024386180339750834635235113364748423323096263542572404383574973622992876689984759304858897638884760548086985410829017943108176244183371477033568447470035168250242114098224220466678800808783453046021520700431041678551616383790739949315586533917575387943438196025781503925353728564360762442192845574937371266903805985602345058485735224312357798242526296209462501367251097072434042731565531214761826374928275361396783198736514395196048387982615357551334762250565398509459407663512838147084799959316462576139701897598764550964080196073616676065917014102399376826010944123303827737212210391634119111131779848476503010544078189277685543199635835221245296898012781507313364976258129163467065674837608124110821800000495013255419931593911346956336373659582477600899671599227571707658155019909984389289337768968126093270337077041669065418597747463301808422511689408160579651603149591534105259418394906132596888082722123448042640763143017421597786049424211591374445330060991954463735985230343463665237656140961849361162917882339825597726633417174508888542600884928886219605829059714783745219728807539408380896059326468122089951400950652055732384596008382436224651446804919911411477738623495802589557412527914479535393667022336089506104469016926943522939580454201206104503408617364433611387911381967734059465291381191036870415170809450519887458471913377426607451957016176454935800169158234120226993784617074190870646718735394886262156170900858672178766296079880362142721642522683418239406725089538387236514493354586316876972963943350214547133925547215112960863222719077390504263154760518652049911450488665756155837151599036574058403454552570326821424717380836776383522906377553646101974310722190237617328166790740193645745266218212192590602005362499157331246737602151815068250952113907451084127649802753677312634403569936120813750134542387830778423095056717694032069274454055666336437510986212884643331937154023765401877765699810236423120376705923746432127203696283353931940884095838860646954525496551566643784097447988655102010349117126691192507822125049237466258725539513467625782857014526937587192981142421408675730064811475517410963538883307581389160063330845922179201052279819975557572332394136531284254910263468610626233625702941810796470991145074332472285923989542549332901132258614060205169398119457700160538878077825072236909732102170326358446938987949387494128331616672304653489789730309702087886070640953720475275048904594171962589488446764569028922152393630942247903066094940199319074000027389896060534837700640520793528036145951842518413295693105092833033321663883915567261624032321365350722546585798398323766369601048962258672030657162048156802860247283521581982843328993774340219658597923681524033100042692471624019861312716648049418799506947013451241789236389505243268229184758782239197571783678139666490800894147347839352686843004238052129958420696904328687153510477998080617291514208545142289579334917976757740766509167003759708330636660669343428609147027727501338819332241069762534773360205636760155884402531715779293110167006406996866988706765219564359454092606074592515113484148554665477015057683347714105451303029758349337456572241434948543936150053327003244402150269034642941146725633388828161828931360398808044999914458363180943617722053608576925976514689387499959367634434763107102163834788130094599770636875161199155526189460516551237581218075651718865939303719317361025459588507932614397697769270620496564922239949267392211215991350721481868135037513584330540737298130445398989190249149786722433952801765786185655201271023908948678543482418303352418748787348325108730555336230181687383670308490539344631960300041265517301208115015548956084263940589461630849522898700179725451289648668302989840966506061286240372384895186137936869125530543520311179745197239760616005042024506861812409694268086256997039467828153649862369751720573393872812370810786529827216764664978100550782832689671467079277094267198278792760650788222765011834128555251586785991295828320048186563586769260544602786942212950359504572230462120837777177154282675648832035701876196892191019646709060568146595042218335139141713101863879820579867728518218424167712810164372690662598586187033890702515917478163698395733079273423369394782631298786585110641744318543770939760957480822937408156134539302184859827851079684921587393143427662973319155520701797058480800904966155272136292402575108638308518103551685532541127308355422037660101170389598209041739701647613821737043159184308162488992700721281803685497582096478678756557245830645587416185462130674673948851164539724260575581647935748957290988424903701256410304573144108815856795944671264064347583733459673888572922321731234993017188252432245007364065696524576333519136247485636662905109178913825912559144143265868437804539616016247049481915678313293391657645116159961349710704848222694176959966696665287191689612403315801718714613509204402760646611542471318419420273814994217015990965496318996024894296873727675737852160560288049994175547619350202136491975772530297974124186474383548194412444261196334753443759805267744222125309792046812694174350878136936309210633950878167352735084543280540455418758579710104300635249112857700062604144095244952423469891314193125896416892836355575411973982189769637168083607257658019825572121729079023284004563530554933133155912930331657259561710177454800680014418774139226470943315607302487539151390558216704990849137979487499920337283057092763405118921636453835359543295705791577449851688277602864998110241167986226211138001036326112579032424339694949105526431394482079743038652499442340092668469264280910235498605120080562376271591895582133129665445965453594287472951202765525413960938388202247748391349055258836485798688475134425972444209651497842499381621521927643174756944782087064928677908347923974924932447669123666847944433748521193858549908118627327725644670895089192249326557386856509621855036249413073373078576572741044816814884810629196787702831871124901835657880335475896572862977036332656814916090561628250231293765756814929762190569206620966772456023521662937511445033121261470262044029275004532141322053189283677428306616739727372196075594424046595197169524992267525510367598143898043190815257062908889544692160329348381660025574475437949064655826127243470382317623880223507254513751820677103673057842321744045731556311027397368234620163913947920537972646123739182594038910527183801122752079048154046461627622217209253510037895589260443352401422428095882352639217881590564888403268610174364834957733213750592542918798901104429516195370799616333759670406279259087463990826274850246936857002349357005586193843077723914096230413962391862716614369738561813021069967580033121866206205925411363138882448228832940268459783503437047498642854740691925031539681043347035851044790749468016896259851095979163143624068829227525909923177299495782721272908600570147736973916758856594951496299730536428052590546946674352076568962857694748083533948938368450371121033920277733440703810493322968773305906158370802437643957582248807741866425774502579679079750640698954192468911320369689579278776835640485669000030466691934125690192306525303086410720719864527531090687683916596619774444257158756142465545883400621120498429198988018003443386878329817982142708781677016421329843005757300005106744308811335616914635297221786586609434639291013240336921859847520235740034911097174443049380018322971987224947005200368550507817423021102931996057308364478547066191300161897511669266325636749124825140393059319110063126898159614565719040860979328924205709922334431104315662247973019071354007061021732661412885772312833458289870323322694378546338141787858842669446979054392850973945484675824131058469634933657047432223559688465417603443924010719689440367391368191543983921378614212764024041397785130484508229567640630425379435284499880926489047593267754915660390586307952037924069061579588628653245197885562879957841301949215858314667027291087767730969832382323905539869493896714263152906243737605370227286790812940295995665689259188238308740301167907194465195833644230144434254858398907752207572313152380808413196814835601166865857808765183759069067265197677066750144256701471955505106765422600075308042558316687410667056356933954916782712858101849158189265167849057382914163962761886323193175088560836174766748909580740668886609620274670473942299524257611703803528111960004463842461332754765000896361829632682784743349444970662585079355650279814412017945856233075207171987803633490276849202741600574996508899428576073653424989962194063226294024022901646025548053009844988951446177890309688032204665798015266295987017110855135781324237677760602725581862194832346276682932922847891564217746323529825053745639549741145001489467789708754684341215479190811357485501835051964889588381422513270866588527184013596606990628078757159427262482538134444029270228739983951492476665533422490531032292631124214103722858450973522544063953591278701073475427521672136831870811435515737091144569984309824848037305882511933803823974922007633772531351042807502834429717040834856755112804490446692816833156244103369861824528598421997389746820098323155691899993318387687821797065489431468211106377819005408511796987370482008404168140372798363797219170481263375485272438102707797602345862550970099330779361260771982515118799191738572763751564040213315786614451715011830501134153711220135800334570890072518670855716739498413037541381110972270981549540321153842210655891430019789502591067356240571793319399217844254349405776971411076717281541149325657537690964653433528222046628969359251775694959308260532765536880575869608294608325037313811167892091877149886974577431862106261352986837019420389027450610481901864615956511915461915036426959208494968114068767970214283925646968295013687191262696113763134569772774741387094734509485513137304976679029675493754289449651479329002785931036766979489679412455513557177461424473291410545175787946945873809397729677228066157264148905730845210423138248996985720352558389581713282835236068553509838702660781207095872716898306791890974981392514010670873345384581603748183850059543934793308630813791088166583301746512435666826459975170027606510664363571687918849039656709875259020318102313960477673531294362287284601850235131757214569814779393590858337807366680737453220868314187274845024020951837929806332101316047093302948256032570329404871031997567487215490661944211876572189534842867506838154376209605294671400008141850495213946635068464911147935317466036973552920099486637834184811346552836612345112303973549165405899072768236607874426561204131182509190937140467030028350784423486560271997736272310131769469724353713855250299990666188516507467786526294035860899669214568398067258199070612387951102164166030916846284548684193950367648413689750292083215075967109777501304382400392261063561714064651817181005756457165035022677018679589388360502004929669692147806183377091862629906044924026495940351763339620753845614885403421930064903158822835761417714180515138868614379396915602199870141756790398037545595998567659273290542447896568717612960885645777763610183757942953546348260088323348759869521066445168148198773021285040258886781947133150797788098318206315363355500042195645195535283302611077504782365872337338358475481524423487585457595517246091495332198812438359042566904462609536504872780842064042500961286546311737923995932397865061150788131932290504540103534328994193721583147539692615312377382931239363934923578902899884278636876705814550952697747095985512208428689539617907139205958357575287998531993608068100047325011568544738477921790939463281420788952291587894238378700272403043791728506616816377655301400582629744883772112447900700353010092721165926395838522242879832947888796100894566730885948759589168424256267101470157003518953527301762795821909774392201420039847579177467645682833198301581736288583249359440862164044727092545574137152638259385674008021235439708173613466522196885933548391534746983063557294351196314285244798850035939756822073764356551066534179466575521088048502574363325959108386093941023041489949981943202997281701703094939756970201861476426118720184212104388762399164076646487968699602387859676086742226876779375402951637115110300273975295300562554523870707867519606758122130901480407571223703505297962532663102238024568758675772743147741147645594846021492810171893053551099126604327088719515969927561049860207107626217932552310853984024578513897492009578321919177428023716872067710152931462554126009535590367422396556281829131665337315986735794163372439356354832605674371273297266853783624813938088843441163096506824207026465739109027347994526871121007706418754293521207810694428599901493178387395816734441880903000901741279782643954760832727692761362419109747332751259570322813537247047100351990630369124098396564600834932392753711328408117044546752417930176466180469872115509275989898769954521993562852903531581909484909179178568081661777226928359800131322910267802231636843746922305722334939198539390364508870795439544946285402350446402583948627574288687100955827359302712298769452295212011303563728899310072474087670227539376942623013169896441924885129613908051051137196436523620458564308908305817430055199229706227733409546728347717248323436055938378628594300035074738599075247255118416253499527230703152203015931336300647229385795451871110641479204820440161562029022970454737451497914245340334128737479160251420172428084314412809063846090520231453197485268809091837240064845326695388818679416377530744459056661938010545640260996885874818786346171984452352302552421682948291773352285366266447345980257494036064075107543159158525222682799366238003488383061281026097499364406436281259911926068829371270064198969248382957833598407980485328241754245030121220371232495689488857975170595787191200041778790508255300098214519894115557470589811744719151521627656610368675314661259052619769345465053083854977946706373536318801405037011787804674103739713829013210138181535295205342954749661934186711654026625104915925581548998544874788831404527731722680931194639819936125893905342613196118695501724627769563659840792530865517888450025081632776258110872554955097273860373871025453601839718239117275297965470800063563618645094133039404478524848761891307497072879029790848952603078535077154846840416037348373236317091553566920438009174509629337746968351887771735528824341968667005981199603562821621611606667521430683415605480870723510239681718104394451465659478377899823018621610705312593618656086107371612858627126300954991573008236639992718992884975235125052089560512127486379705483197443127177738685500665108921580899764329152924412909444225565453287003545125716045825459349380368728682827635032907466890968620882867879699956050116888573632922459415175371992605366178913340160189339717738539361141581954866475517993024311135846654529614316147859828707429928865201723359320866971062708641041733433426230951506714877670157113517472158189942084338420651654457516727725186261320840762297851742474194381733987896922450766985139414211280401847094947322020391913614776966249590501368831303836595499401025851691759088364954707194581353015639442586290507334023899286941357238150475679061754105444481771139863039823390759098839413901444218771445945437380762508464922255997021930737082850272148041192693031986993294715512466986163056783547341291776257666852893551618601642143251665264225793665250935942826177706588613784546999131137740439550209377257790314793143460801921343275791296034450433829260203463360804143704214311252042445159380449791762500007669383329095855170874266633552334529771246176002367410340409471875682421290601648228955782799359262441604984080856969968819053390267858769357261533775229387208899810323944509291587244505269597584097171946177533245499830032370511485297974016047443533098021114001585663029713183033904552592288230459890954661875874205443271728497654814925137567312875237527178383411645142698535686304242341609117694722765213589185330446346235489782671482109305117193859330281971314093482653678919523837582574863012498159554920053148885598562494723585639701919181695327670799785817468184090277702372178000690627327831805946806918134079701142658696682145632341713843622118039305826935999845994042149215977777404141020740160253216932372165624672746435656071434640975962106713096183070506516037226813186590046708606251008792727393543162333311787562810449876994872879861182816112262415219580667448564802408305789162080703261510607636358309394806460206697242148770304814311419673534678477276508256147255310700609093667749841963603015301388215175460372172627331351504494746402466734154067037481792108590396160593918806838481672996052192689681243675534600926882352714156018553665687858539420958594312312761774508626203978508013318544022638026557603197242377949497615298249652104217381170935534807372398330098553964176964247793020517648914734570969348920284222336244837058670863315848717475622411705866373098301714857172383303993107097105368661123469390087919403445880502936394539078495792888562560755832653855650378167553596163726643193061273300374601311612945397161604113779157395054347370844755083521505831258129238439082985239080342337548362506574224269219775286923780911462377541509252674991911813143192726016753028735763963759692873471130779852454450459249093444466659069631322061168704574237054621739861423139458207832361393005931422776356902815533072660319810391820793494504703115501148362986532341605912718876333235065178531899444393214717220869249744888107038226123226595791529414875715255058775638587524644699315263075805608032491724961121911429116513649254119528288437066532899708896552670313893239144468320472332158720573204005762086842231262224970742130604271978031903288738461215944625333627479597167520401362763951112239254857536167192038875010853107092190594149281252972612319695471095294178069655703494524102620662270050019354317121196069975481162150986428741886042683450531316835883194931044303043770926244754565532893080282019539924102734368849899631000776139958596554996571903079670563766258986380596403892288581367399775444230427651052780605262413920666955156291513715370678416384342323065065424728108812668361709352548581106380585941079106053032561114215211847690397461999639556495934956038869576859776922416613790523261922586636973454406892897852881152007132928343431289471587014971305209525130861017363943158357105626086796875378398403307843183104050299129299926007401842566621296569260148565921048512646020131240309384814100113893456309033162461744557830790169698673964630983183284174042553256037203619324459777905044615261448752499521372673515724340113359783402002330498170398826244923156204479639157933475110145698517375063293065823408703289121619194200182809978555081274685135230671256123884440192650128062135593143760842569178592251463697018454991112623023745716920400378454464467211515501661674693281186750669023482468269998774376258154383498554985148514737663329649105989062398916292643286324708796221363465723147731985005491040633217891920849415368645936650601162599370968325687162682076461780499867301291233315955039860986080209064228530578807401020247096011331392715094862074294415907043691843963285311198905047410678809853181701952343156151801946651743687540838639647602191410691821041153668112184476534562936361839802615553143857283692253098130288164217788864006214595147225706663271024873428700453534637049126142745409668981756728233169719348245751014277345594172693628104410154206223100388431691833862718364659277369124123804471571038749597468064560564118314090119319970708844161550001539700355169440538611211804406878088808851851706893612808024781354303857326791042455224028336223272727003434497039376585548995139852871498876093352943441097763843105837047385651892756669348932979593918516974339833559023430672383036386919634642972816752892998046917790393548813852974156511499227173110630653116823669724601549044795150638160767503053422243971204297924941066265630705789621083196308207472786902118768262900615772758839452470987184524426314849113907092991454232411982000258155573303584945701874027172233380391300850731014965255576138899057099927869685745438841868072993881236715086192522606329650298350188325287668799275598573107382602139823978376410275603268652080751961139900804363336970545577037829053446365431451412286390560197867098520403984232488886461119854362967841302827582843591026837829476971325346681487169731634839713909984189320772892218415269705196487573158365191485155382376868538637873257956988279577895152429456936538896108465526254701965599843223271564177851524231488164985049014075715678619964806478743293013323840518662330677948946486581335166746295875397465115590273361507486898671196866642345966357882411192491941123272649570148570921988267972990616602321328150381801252484508962187977346641203466228213056881328727390229972103065418711029340369331609078883798256645624153404425286293810307554553608216437804864443910858420925197852778245212362657041165290939651220101480521524981261388558629748830428577161290775020486054492683651863725085212131776403333213285567473001714222436801662891006116442595317257932184956807452402294993172878565825068762434915298196393551866326505051193934963449209235368297908159779959601152218305265242625830273987139217259137302565260777305123335094013542274631602413605968886948394200535803940456463183697776226818829389235873577856888828184274467623334187382113806265216395970699753354050372636903408495769581072003479538770756484426573104131934176322503874407987225632835374473094931869472672003125965258233291579604956205177191425278308506416833599199191082885642705587034988247674018373652469507200985432776282533876255661664140906891250040415035736650981214222956288553910655801999686743099336213650177866522416544677635528779624829250007151464924027399308369891303337063712267303279371483956263779163806369027524501780394029050846486878634417327500223177992582136428755530416047496540477065740524278164935482465451120056681232449985085673004052739914037590917861314517664637578055014500239012794535520192151831943377610227117676328093950395484082040723172018719392306460439488193210871791433647833349384693051860852400668605834181623215241954219732211655861822788853065060173615371753602605281426352386089315765046924487898427163813263513908021612244650983517438770923198344202385066883387055443665819949200801919979318662571681278835723675996859962828695797645867914444684644709861963822407007791946968520249123067885345946955464322305690500211628754593640365253826113009265978833364808947256351728730527435732388107546822135293839853499817866209953783762619164426132508710378338550215724128134698462263589108653041062290646005915039582533037111013001541343403778361940332785512769206653684455059590405784434327092434647433761641529664963967974999905785251550162148990204247070419947720283498198699793565845891812551035329144917841733491042967703342107271205849508795839103786330588668938526341978322594972438810890414351325780482506800203430674417744359889763650156021000399412414851211490068655350348727589105502894981242833141727093941653211468196683996193985011799969366648977838180486937888849391906213474087617750269023896292763531968228568638412317473362226693817453946542050668935214817077850993239079631919098479963175294478402207332267390095828909121737019891306855664970950092867541933378107985458026511414111298903146491838186276328557939837749144676680939259632330772815019858599989491286639758340214740738804292634377241242150994416417711345572697386576259175867643007959565105426916819197771962674372034402119230330400628872541653753129847262765065937851428338014493655737983991748639494387341760850306656727066890743344137654999433508399052300768142173182421198227333973279505801054838061981600628534013213355446783444403643533427109471391650351733639540140800582442844996713246658362900885462178918784531506559622150680977883461778058081260985384233837527002820478962633066127751775468014985930781202197217625071080653434470408011835247389559538597379189466429580562088625610946973649221254914215720411373795127190527486145099097654651620887098871558132460790892234121265193207265767723600989790338096402045479013877016423220297129824351602042246764147487684789587453136049310481279549859823282636700305822856118473440572962638117207861582964534228307304120800592069838698632025488143968291305880941908062627781203368234980462783991817848181432936288889421049910101583048997744832488677821872226220101003504229787827493064294193655095734389966796007967893903056145023576179635525764445931044839451694246267884063728560061665972159640021007278617118272224222287735133484179272052446215461938758983439198800118151908669441139378380488021915861908085401646160565806374392473625934727262398821112377751388941844425354983189914349245365097227981701388723515374599919779455664922624248469597369826926909995072064535148664504402243153544432399825185493913027013678786302397542375911084788471086436240521905070555601706989513853669474198771099486483933518302766775322171657985460973063770459061782601058496365855662860299329736744213105040401683696188024001092764133257594038084312629188005291087366203922982771892235373421769957188777600396462290672870433693055902566578276483501110329495187415294080500720289616896875785570821913027130614361970420946330773553152997078124741948635566117503158152546888474860430252986076056757250497806370856249698294851960704128776662859085442076375179558241810211407293802527189707829908630651713683414372840608089539460401534777309762379947575424934892294935830502061589108785030183337732845127986962281914711660388150960468272225451387709285359235947426614517121026466496567286097536641112488015388692728378299512878053004505792256598636940672762839564448626701957363586473432427358894933700597745300281888465299687918890794815095082293171242230047815134982699842875480806346002663548837169075276280696752185734523246587561858696966276108935867232565936694574059002796082156029820073121005536028764851679697912209370240245059899306974348881396963659913276291662616696460139617637708783629525219041962913206915204727362380454381791558446827257311546123645786696675758019887314166173900366828898130828787356267250086046893709547532585088553795769784506400809209312922156967617061422753954382001278443534680969700308718472523419422990895050258407444213553508983901299815452164191673168151742497403665891031252789671169506841594892216604349222871332878022814649473070022065364528522289467755187710892038271017725629855475341859703940302470858376761523064274640566598401528693724033719055024763247139377926332754537269548666215900953129286430975544005236950473899343422661356310506556529964898140591353169062112805897092135228111593399923379615317047770816561089999333629974684385692351250687503874859656139232854951516005928964501118120230631268731708448012466421401070880914243752550477491781713097349938959562062558426002055230831363043695568258421850779946310041420000963533478934446002618749605513857675591017372665048781759464295197073703655676811933183005019413226188956771315806463993530866757274192292927417010850647868649142382277867704143874065246261729940882273762381214336244844524257483291176033416394869820854444184185710491767519671226179095599192026294974695382841683998284175308187544078946397322505735128817746393510795689753211367456621348379474442755971346186815909077671320461686737533898006656931388643657775974380590671247362611465064387296595712013167583563605124216959580397111157678754264823826009152620962800385596680215421599380243928103378383506844304396305849712630815847455323504677057319823161552917532874338780207831609717507081299717750968612264102284904169120809432443467627128096526918943770340602860619549119895875928646020277314972863836630077720889460810536045263227585160112355449526387839518245486581801487986382170293324484275579260591163941236746239710943676383645448071901009008371890775990475128080294178069408109716287255337480465056915769007127125834299459869700442104890404053480290411324489360990121549156443326389690235039855595703863968667796167429562365314754717917145276522718125602559067417349506340970676409148681103387393351306040717179629352718449157076782150511454707216315224110640400759381619445531749714642431366014939490219080119614050864234189510743102243996421307529435168527188447800690758383018809659353585468652400146630416340555976394588911053071535449752678602923888616259151589301206922298497221983754976852335245953089081304266800757255174765021793733771036570560231370347619117121080755666954901500697277078651452143202511083111866811405570054548821698921745139767730177359834291673852574026490072191854854766443889211693891832065183011402406645741768045443685859448586596885282252823693136943281505279808642876724861969389015413470944796395253328697874049995860353749037383731449195330316275200593834325261801611545988619641900948852808275461976337630727890703024713911758475554242180591555852110858230144992344638772246956513170639674127166468490503570829171344554310192509053262275685387749404005805819331925213224136498310428218398349668153799470885166550958939671142527708466515148674871820844020753161046223128262440027032337048036505051393923367754045659310021291945708776296642001864910736077786760859413258407269426642383617524290529657398194686646462887528218500214488149106396877188100856833880400261065060694760426532996305073342363060238105422066321819337177917740774361217943153285447515165922666292472885845809418346895352306223273342889732075912732522238784798401949362540426677777139864407862704509219943291807482913491738473767291768625403768820084589849731085134666202608638840392124358387216834270253133774758497422971341924006287744690741020202141190540397743517302340716222916502999388641536400823493460899540985664815538823166337856220076075620481649988356591750204311223179635435942411080346485484869649505543290744253382727599057129780882758778318922771296755404954751065529672746520273310197465228640119672893419146543893197995496469327409249957507907585747139757365204206722703645894462201602849913763044653212796225357592812990777762303831139363182422197877532735198113995298353901372874322952954922726100477055503826983117200462039991867191915959364736458582833987872249758562959861700222698869375192354620213565022108415891541692450208698496840374427281687444905714729076780858641343851239490035070955056016074003708546756948408792206626977171495788560771045975167231451198471810743253195199690567954368887362298713427298148466351475873191142155675263722901311087916257926816515780514624214281606493863545811599112117593057389629427433547662720137211638752119226383045358634171788253672195412038773326726096131224867293199775647674319723061579552674653310556985662356835041248921879297313423836928719960305385066842828779800188246794458340757129157397989229248823159707468256367131574108775641949880223120126081324763436858313126819038022260875292034921526423844041236361578930726609670606854085459676228758283292922044260887751932086514628292521811316626189572963563279002166330893118005259813360763107182931931080432646532790674834221465383960898007537777482167891378336485150156437504635489865259582523733954124967600178548162130590808840929407168574865158512331882999357319902178403089258056251350940356797412168956680675748085264864877669075417089348773843714086056574972057764959997435438940549402590138836637366178491237319537123965046895091027444447916388175290053740810620964406701560977037830046391410453127640051462116437132273266290774911379997590468391109743308067513235402092590003289196127579086803725709731648588694714239967986172136053659422750173198950269227280220715867844247557534095670898783663817945027948290865662464741238511710019315910673282929969726921487846900308257600831809674099854556057507195736073288416479499637577032303546387327597117483521954488335557701605842958225722869810837882873874151421678397745234131307670069604104828197067283375849009951095522523737336083510959053665304989785310266185544558926325093574894712553737568734563411823961756561845621657331605968960462133438856646936014934994420607913273508941798195534917726218628925546745016199573522559510226009763305736085218804029087605416746045699949390262233075441034555880636243867809875033110387377312575378060674543100095706496348870762546664167583821312022863292490677939883109635504645558492213964909893702088237135052018338164692082964341565608708705271228760028280933992812640021832578462716185323818216016939713118791855493061378451205022533889334135597004652987646989098628992343908658629399268826436320570924619037674599509109203341532324420516807808732321111381925516648167026007481965610021040192316722242156070453196189661842841703700276752038702450266932486523604999302418289285830396063364634741059911720689059627708290430986484284089880048572732835362516433331566283893092259465670085281007071008344835503574734632075239817227241862632513821710501786395507866007326601148002802393946128546436941098554217359775315664243461915469355791522043325569961158436158234878246969761656602634495337116853359485222030285962443318309037199234102346727010854209074918046747438824247766533654200366071640406668607728146227988295035383346733687766723203671657099234160302628021666096540691051535348697694860916541264452858864006490797560866399246713587234653644359955293116773060033423507373007782475711628023807501258654084919472051173366240311373651716550414321667641773490866086745705458914454820617987869306900725582716393702499493158055082735231511378846634742023759738777948749739323780356939892678834500170889321954151233132468621256739305632420464713471421811300355557373493933070057320606279792221617545719781415885369771633999524560345336275541701982366742780718313432660856275938075345808382904694903116748754397955083545158674390937195947014721042383102335134405604282799516970685476404973089742717903892414592621463265273523520279410368549317538663720240942327374421065776411018266852189881322863373442477936693482109819234227686747821829626125672802331145627075406374002597423704487393445509884980336341020341622614020786978570492177621888198718822713452898573021755348926666305644905477976767524333104394648099621624696541927252936493630584451315253522779283733606136900771613046827644051967937261908998240878199537081309100775367601370459496515595173280870579309522969805672748831464710029856757366030802805901569125257530159228227784097391199306923492198803670669559435272391375451711270248088643859019703247801774755496723644425305868353896941697950515562579342500125952320581393318558353899643631999242899521625761132545884811105465586264551024871026128713186639198004066600779966702836206246847602534967539268169957193876884339015582339295303914288756827545193504215864693357829724278275995322966062131058519298410824228989622202608654585981984362944300547840544137743967936943723048894398252844486978002232898171906060543047675349285300444440762558720861000894128505303071911798732811646678754310482957859938507371114345978210392550155213749696918450986480928767476739949444792614516878656521593820991983815989610185944706164092212459544158341413324178150656413564268112645938972167044279803552139441346758704396618828960576841352142510864246481790769756387654783071497212444859229357470706307937294996575384440068916453093584875246634211086378835841246702700049723107347180975098321311513534594547030653662026641940013146926697968928783823876262159554218722597450281516887440817626372637694367497228340856251221785953422884371445138175000896123788385834154952370259185107185151496195982218354104888067821321181692735712309836751872896377033517642748322637674792069127194991237681923925919919783914292344030557774793497925681675803971657124329118236191450637587466073587494643693572335137811389077931647399614788383818950263167184122404284079756386836466492281313137764987715128234065606983390637511881443579104987644511185661336764455094759925619067001174691444934118447370810207797236052016964700876511079727996600315323865358543062472340917725660670176328770259572019523927898113718421041703092471112578576682809314870695993190832464594173183604726369489040955405293989827003553075964265285671769053148719693263207187432273567981212565478967573372700439909394408658110016598398545904157598472997369821214524084224247909880227446713182975358605077490668451616930509080495775021220151022626285601233420579479725719412702273441207974972055913629705778792410105693965353671943034242908409789997163506370212125443013979013100427119918458190999780543669357450701230190148447088543997747344458860908561947075855429480740886395195947858203462663559692429717667355778815160423434229238684694830665914796796153010545194110563678079379403794243836791852980509180058636376008527074174054044819056505835750263743289619069090478623071300903878022109064048119534853279951285577657888562166725667717117673568059452244127961729496834226479059322721064341561431480693067588223987748987294820089422135739680153187705439680610914129095435688526562986114016033768063096779964468242325817911203511832648257693962839212851565579385901269089454908471856338132147784824144149232383467726087889348171881863623730711791675065694454834470738267451551845689002957375343305650148762280500803301164817867566860913038923406062502566903216995596603275416993397621119515694595819530201948370643880894826148979511873041300065915861560086067002684892334285196781402985265590755315336552246387367349653202661460498660815970371737886799737992723235845115724417006366216195430513898332969850304467438788435175003080895970222004686416918230157316023151935182337737001259924310511183541261226285761991588673414252757565250399716510866746427855142017956482383690447257055971510786751982029760841829618026440019405974647512966383318637605855380160922883680471963274830389219853378651966828445592522296079313351952879230479592087753824136486828632380793893126920655476550064007286481746893001520629332059281616436383415845272357239998550732800467460423964766548451983075886806276525803645687200057108872646805734171686826365457232220888465144713338563451314181441795014479287491896770207826302592166194392552645124147697448759078678563573596815200611337102496826145789379037296278614561831161939258680817781676302877962401314693447606580032139399624831040920203661535343200298106073515528000161573777888117331352281127655846658466334957208812726158714559841752355762592667293035174264388402093056070027378379358254581580618566171297622637006981099783090873099099994970161763513287622958862900023054206688340819714580493969448263873426668342646634625833984405074264712793514719576539955015926961845466496025022953322378077280730614967484531060164843851705098896959861417459712534059439240940457632198367859018578035727689705981214826181056006726752366978776308463108303491952097484072289464145334993113649567829076531266357800118769000421190775580638260922165830979195288539460005856698968397639015552975002280013727287342523577070143596684449234110331272188939497117689017349896318559531137943571416299892126808124082564675985078904405786534297392742653380660850772681069061526826183868140651500791071842190353532977549095748363238228151803181155313864132187772269110944902597839802300554518824018577812068272144177698557275674532654729588637059195274056496916525123975000497010515735856141437414998586109921220309676001871115325990801922316414310334676752317784424020377901637242256371196839849502221155925185829047074442208683413963324139962965578804473008899489704283838292745997034387593950242175643802825324012297996816764396267990145673501609156955534541798694897953225984284330976757150374089351404662877051976249283286379946741925181946221317024154295080798790921147234130712986984318696798939207772853939335475185815666863240882313313744637620730589583485887875999044776816501503413312238892310580634382762664515273096843753592974129068487873892035064985613498635470157147989038408278209764328376910601652084729881576851011148088431270718894532484012547420039043020230390199865982777426316719196186536739099861398188436927528473304728957757846085626338025390945958237059909073104604199607938242496417444681417696561757772344174376781403726452612872844029705466068851177212774376283307864957173052233842218150229571384335529156235582432450890191258344457516769731731260728166304972246864827991649118862308600081001977732579128392357850702870729540388426402730067574372923983514398058623263612704779930314236496482384613675325600194271238204111114252729355579143496361203683008597143190131782302750917544917214450974386863965533269588354463213658658481499122719027266673238317259402157828387029967878895373189752333773737789626397959456381184179299749856173062142104290720853639335579205689370724387114796557228057750399332889036528961940506194629286502378715018725793617618839820448125515606881860679588016204525573498723791883063082095237484902139551195551136764823583071924401844121105891239015141346413895437656554740473416482887841749897953866972610558974709870177480277978850904607300484238395336569694120000512079488306985729263818967879160181742541058977391827646079269849822258882562657054428713832883829488074992586560055872392865196440600964342443025944422249154437733506836366117630483296793679183610362448454965485151937020467326361068142018242101744005809352110308507930174469999610128726585911135116495148209456093437815073834230470925092618223833363671258372821779355078653070717036411943431444405544869481159538255964155964166224383899712252122252035170569684588752815972790232403152641043525357438095473807943432477068989757992799367450546536736820822892034445594547780666633688056468792432145290031021889077174619242530900854388127644099268542943749624071077103783355410563870481892559792897163733923842091390161791482237126077756945800811124766739950540078854456581035035443730312040370982493974641876778447239178620736047972825337320395223029246239142911234390799641800412371649104367233049272588232744498752654864189291896360893505923363092239544774179331686901048829936557708744599870001654830529025817735867078064154262551860164226956751047661797491093070402654714910502494461978303298819184553811170595074020237904757419744329437830456461167238665093521392800818926724816881574458157673191044648092566206602709787549110303812146569749969725566752692170143282412395243775731118917150740695977171623107302112497912673207296240588236585414328998847511822784454134892550083395998665521404761171008837440317980240951731195220702621821150219711721667454861942194134313872511941052149398382121115596450242320780582747746424994041079093160879303781129143254575191121828880916317410581713982254750482789542796767715940759566487981991054861279745700551505134895290609147559723384409667254694328681994559481746718654023050773857384689998196739481552395989301314218696541654040025193674396899173481263863489996419714674593533773459154173610015837787856024111725374334997621372079699212921223978691220497894309112544214067906195915454755506925640358701741446720012484923277813780876683951936160586570226977828091953898632088401054156393300027444296273086668318731497258754274508269997057847412066986444519664777148972547315711193031649223267691589236417818828262489346400152963302728775141831219984552613482627922789135564674671382011263110293699509690305250938846698339184574641982300850847169104249005471620389727454141765330527010433261018072329163896012866002528796969494457228349674096577524443447022233771447106106438059546799474491965765171249668619344969542495062561513226033597415978279085275543187576459438568194726654748284976936279208193400213432539791928948658145590035037080875498954156445425445430440835933567402800765028275801268712523523399590644622260016778433373448753307369251105096541304424886592311432491523941261573391817946378410848901869305041984516330567869230516189336267620269370997238250978526742379106199020073125234011825571595795271834557817869736097970157387591618765039994145653552064583816781052681797379427771606514469960006378938749110295845754184028477948559105954897127065831864440907479816275198956325336434245771447537234169139042979826908888424484014212338021516875173225838406036076558178521855768637399048690672751155824822436167495104012833839020368175687458768237230102059345429404267046425370347842037474021765426980092556363789219884205111614532741190806515988852952345748990212945581482635945649523910651304345932226925232346315630709918607243151326039316213074999391583973662910863936312228956936138663629285922811120303837394052195914364555698015781811082147788664669626783261653606681674868642876224891393530322993964022667288325536642295556021094719192611889707318505217220947960767454504663405458921285621442786053991310182255008869078199738991236354098777337303541011547080845809978842836619623424269813239401815407186581401462125325055291024066926130531919267142482626898576438671966957675583820062052368790539646131300084490311694065131385553537927811843182758533773343354936011058098499705622560780813328330752319495646290325674734346362546046027169882233891427037156152093688465822627201937127294436475482048250543148567475834432345023982569017034946665566756400119170119063457975623879303829199744511622902352056909856785253419608492655097875471607337567411087768116903172483913336267818279553413330705990674489133172159795564294382473221708663125550268825740689355655248235514388791009477178432691607393159664088410059443910878862890944707287651941737009533218236664031857114906198397964953930866697521503613479352636157708532868600587222454508812643225628103203244645653222402429137164288270006800490314158823812910046391150498314574008377095919001420373156988632815109413464681617575650289792562759221532097988740771511267424013662748812351038807600871777258987265597837378401679591151531135005548300629844317802780152616360090520836347600262066683063565391667030316425740656704921605515956399111821528823302318423107477570375186465276690623577809898844409997687462499078440140689845002183672004067619248085797632101641009810745495321419307877238078348369202951071061351114537933542572285247972974870403220912739898263482607816757383717661605039909305956658492876013826011603433270178146482096423311523426879250156446823205713138476687160840558789001195693896727979590376847854553523397930716491073932566561389334054755542530556929437310718862815165422362291452825237076216355231734827629093882209760702196176349118745502673525104053860669834113185443460554579813608415818389568985467629665606485808518693736465780442117131183627789422974787693221282556671110276032796059586294649531809876414619546924198174843021246473106185233504598188084201468258405372705593913789910735173025939886722998666033002934217155764280660436008921502845573900055418077990602212597017545290291547321599904697186698867610057890578388401173304355936774360810347374702281243149010835678655143735463174107919521277417174398441585829122042238571382229791184547701409662357233960601928547154327133411192095008478952556834653384679606526605870860243682994585945657612621675799658855542330088732063881854144933876555447037489761962237394932201590216111036836811918216215473802518635317272158008826989198264580045022857895179987224009059462387095856974665506622296030505031684188586995824927612119292905515569783557784403706689159636213722565753066309901633521457852612355541688779135348787491167171502468836826984828595244300545589139365435483593152045946237137586727531036093082973191944489374028837237579762425302205129924221994310469617358452851689507008383068226169562175802197848334621685137577927388275469180864948974023049991566278301769882539754883669032559259671494211410986095825533422044113490344003505005928657858931225119021397037942914871862985035306238020114079756877046674166105570993989772840930634035861309938214618433957873290621734552959551919232758038115622128250362982261145771680264192746682301241368947146110212808205176826827984338126959109238331944900020084800987186966715106968866189983315651840012431594187482988351400500115080419026691325204113235948297210914098643254260829794225216442464648184052102369364048525642855248349522828108824458766567346149882175123733910570891880755046562128488491753942695091622330631959090437027693103562443808291355312241097774183543690606919913222495974679114776794025965218961185439940208318869727683625703686362784709046325042223716338997252795427868843715015709303428494205971225915317809602817211833796466403800979392668076968691603562600306106539171170931458188289742368878108471961972940424992769393260516225487798477600015943786479508796965296390126401440017609087751844033277740805549861666550585475127436019593474364796530522424306477162292571601666827572506612340896951394262312702804763202551038339329667765285243875411907201913472937178739256407442073243455107687614671279581096658517104692389621770212449042972181374312117974089622908043509778766581373743255366172513847220882498290332961029450460118027337066763917762466503748164904492017053517811741972517536328880620324801100431542459579302397398606775463871973114167211127282417433890998848775818322396121265335813859970971202271637829217226506214442383017691478248481903406155222077608448817906300136381134000354961665297170082813732257284049859203597164527311513494052822823200187638348945859999108164962523214163503888836840196221642556302547750210404382007597435759996964637048018289427339210002656620214766895739975548128400937155850239894246609566121087639240915350565962053199154765811077115769285910152137833524925073450740074142441247593773291717821706471151882806864108325198663191839564512541973707742238894499535626233828471340606014113593974849688785301937130827930808142679688932068233100283907772523779083505744409242816817124172246019567798148215362723782130738992129297869243408074210420390304976733692454519375724613671721829943851623192516607489450426173054626699611056563958637970109264555067859612817004598634129634642191141407301956750544960141723621711240669390794565517431166436165915390050647447880540198048937374993298988422584493283270181976731543214767422826711392695083209853476614487468323797178526447897368784898309227079638417761580411994267820631267397896792858523529962787877410281163750190149933486234212395161672443523662141762251625755553547772648828307351896596978685284876436888925835669159926986980140530172121015067281489752183101435584035278620079951653899829243643430815586152149799811985573855680657747418311157018664624642218592791737199252487934466335768024447007042931972385512782228351984742343391223065934934399101193375893256344744697520538195035051571730831167197803188074804744744710108474632723110682453275105045582708492368063220571267076886392481008550595768550472576477035269902116123399705587062477392918261014180821843711179670900633350240957171477960698563438648978937264667000751450858409326782869647948363643808235796770064523224818768368450305932243407462571216881551157956571692188015415657107321701109540167843656550052938735433497094488941662356700996059362809677404091444628037404978968079420360081094686487241289425965230375903076432011091421841007238781255714788656691127835060736821321858669964814596499825358807118732277502092450232259154043623461113404609277912341309782681172450936511913422075570731811870132610641025850533672727179156838067000860952255694388268665505928642648708400846059236359724214174235173194047728596915994750179305995884882310462233233542065143642044959391648461317663008566848725247896704779705254391672686564695445210712635082297052179521592538025987382767484545522980119603707199441156267588722192549743134258706686114657286015081281015713364673856986003621337357313650256846329752228093505495892864775732142802127557171815005674032238203507850324306106056997341903755298995730934220283146131684786728070330213015639972251854413521309200209216200387515142463552998064089233730856262149094882385996420540468967954319674932391000518919492483797555882661974280515088813478991254816263233898993511223023284958025329996715196456963260729144931290831422655501714167499043978082793590831603139396847490173970338424536912736579428610944918264016567669354302405895039303010737798311284233418795226574239746791174630418076645255458944009429156745546824708212403094814007561739984447766466262889920058557918616496746887476083393642049285019043619800414807631503191265557932647794209513603156469865890456539358435473098580678278141349967875035284845231805101594976235589884267784985720597857303798520902159956833184498700589487632075222602514373097786081393182339801475219237897684697361485519197743696610960354303462101898849245521844926394005634939163694699592124479931755455062319613421597316264304333747049212897855613458763948135908724893668583392261217374450363618984384254927361181040010987624888368632341497705455190515155345706030942286290603363766784763620993274118796960353523922636161105614446985175737064691903496129598197295232511740650251566390756163637455399263387087829108958520248155359970475271572391304632065220687982895194919592024385886811189989150645350932809648992440595218669436476306606840089007244639411582625411881833335696402318357839687599636851972433391836736546941017388385542611406154884108485066223456723729059010147667935423611513876704748239802725671212051240461233125614521428403415456080143027557902913210538244723440086444886009700237407218284547900360496165942562018613504012018749134573507118383229525652312380200860341471115787191865099770495683927339368921191091865045396385852100636077644712964201888222064995517725719334855886709989110048791229678028370502476482909592897944291616972154778073389803711637940591334160025794943454925139312754474118310048840262826863574280623608382572669154394986115974509949389289162125873517059733933691971412778359981062554183977601896143338869134244779187227544988536305347644900707834877322517495722240924389484509374384668797985966443028013233036186455220345119094480529773268755588813021755594623301875487575749310889157231012343706793836302556433165338778307783810032882323736706655203733397797024529287381853701677946602511063770889644270218633293002657931773340394249581805501030425192435553975220338652283133656911590586729027320984808899772149769347290406874975451303624913156687359282531679863193335991631291380092797854891665259868724852890286648308037157490040248109349482576819058040044934972632699101542207208290052456173654638772864459715817766260608924446536858105693153046750895085836399441149700801338371484650623668245684057973910315503883403606609430250505573953304794418136142972506187878975814388005103003992612850138082921915401519741431802022695522662886285838598394394851206488255791930204205712361524053775260364611776864984919711210872338906325548222739179161333688886516138094121969696949933829573280920622152726937638985398945922595730571862994934041140901607871343135610718676578778136674608589694567184910729605959647848533790937168122394329783010372708609057442901753186388886234163100807218981393837113865630731696558573534080812930444323122219658228346867245205452421732943738976009956983615890552394377667588529859756991382801844333671419445615693966084619724699254312155338509489472598848920356597663850785644613293638092346963714896583235938628173057320925981171804352407138639898209194640400265263572475984394415129452597268620791776889280984116142371770599349589652247626378176265386944382784072388868718593397578445252381714717637441680482900436977240100028918829417198959527073124820265512440628116947800175929812703179978815443321005489085214447304595929549202142825561720717796620107074052363067680016666726295564707981169978697468419007365321718075179856895723614334108030950204724556203752947050230140460819003420372185301681979234308217601681184242071505501335841455632779831681147757251780369974703681284228900582722768533045188069422521527968820356456390063389293555316543309908522111787534568999907017379348668426317734403543281508693573463024015859839462278769205347387590336595476419898747270039199307602789367898929877465838452993289284695380043592912908287079280732246228427507167059765000798330410191260028110423326819046873934595802769235096523790772340414291968015005579405129794462609740093099372465566302420131810935386241858121415995770252082496934761596597430167172641326219638198446486734386942144010207667718794262052895937952603624242966806290066791710427908250030891582776609454139620192061117564892506293303075930965236886909244301747407422528807284084811482111163892360021809990015196303959667193611392898123875135682182963578495137793828303611556887418864431873196558496191054870699719523673237447486600882598888938067855543597393289660427726821151356312350462471313446887242135742869583124884104528921975495160137908312274872180639526669692723332304227412544225144991159756358313294404177123657286154859317662696772061546278437283479583004918619313892417314877272936795862952510518356917680261110043865362327392866418654368783774555747057106776651370691386279022970405589102279728648993751128473818854861320395032096820212946220725173680088188613515477680908121916775405038058015062482881712784279174672455571640164634594202909511597635438588882230422849866680627062496559156769119861107638196867688867674634911082922329735012940200339417297554950682398400550145832283813406573208979758473745870701945670234962276628272211124773590963134151427641790960027643220011234000633002936426111321714931488490238657098878379876879613248648128754642101522595800261035140018282407048201188956548393639123207469308199286221778389841246222213524493588177234499822132014854172911458005151952440585082793120688665404226733128192784009837555982912091589059591320496528044771226738608677960484087406404873236783045426666294623002625383130295315999702583358570053276095758399785594197725693239811099174306217510249872749807428838748694282436670174974219243259573547933983199667002304925196157905284604756480047837121046522026901900709289846422811288413611956115291680634323400631556344139206599253218957052106471255317321593079194475234447546860338745457162901113215188583093439252138248266105205908773853165280861394616397935383016609856625264633558918986423808176139884949473431800937291014357873873934128421600922168225312717399067350075607534564095488327942622474114763942681919615194959426126379156589348873617308790830140941206405017134238094314823658483842579342632104466662664523003530887938463245906009114009719261609812496156568035277733383647154117170223218015654940639988366682554723288661086101614609655066235411864441001963756757184780891823195778910864223335000067971638073121740902729282525090377019861277206926151938820236363199297424505016678613268945239988881262688455256105146062414329868523070138032541733422970698902912652718616343838550839860999727523109319190922226565212152787720400038743468804339503875996605419785419237181993718485621127088106778102019194669189110826684766181822406249249926610324294161451789288944961827640675409091011759322541225151529225895985967607166364438917843975739216039400589262007711246290677874731343748382134071544961657963697045756220142849275250705698643066187277101858232022848097306626606392972726910153440851732793291552994545218719393389485046423655217300554494862389847235622162009053207962463417357891037221364778866195402350475363611214955465897963760479804689679231459441772105793149346557637288064670357784839255733984127556981859454053911723379727134305917200956444964839947114186264955513416136547887669173572098956834797211182115117111243188847173566555022918548959274329911834433667872072263363118057121212828005636481618411373779491803577378847819793341965477777069340801746857834505259789364504555523962980513620780298210224184565648258942478494441344072219725975485226066339528590210944724905652104451866325137125979210307031576140746296278974973673795813132060227834200419744084226502653301421858095486251198359148581762060927246925346056781109273693252792232245626007077972332913144650038718135917682663283791218852679136832778884660897017419556019996542549660106924378669026689810965123486701016284687441591174002343355320902387744024217822435935721770897657809983696501506345417973588250410235510116429742184682400110203295053594178597491777266930037218648868318138803352293362017897428555311138087745892684283372941708768042526723666841953973236602849913330205152933813842362223903156122613871644787377038580817482301016754745415201139183071988993410791367758577779454873376174992292340490389491731372488664194753584194424210668368574823362450128237406100176369477547082707317576208343894869803699786830178500235699952669980398552452665884663012089160979041239695456495863514895985570541638696452680123163414259354815228828040094203478055778237371456007852182437026199999727769870527992160888993102445295472150025913284365733366345222667377318098650637539711066908476417611755613092075719363536755466344913447726904902876636449360504638210152513193889253378813691585929792708290573436599361251967981013499709719481123017554460188798817104725439071596313075145899048428518177094453216513581373323703150187161331150572082131862355214987643208961789666971092523483310053689639283646455334027322681895914651606199418439800073876245845106791819548563138541694158796604699572276118344082262398753556264740241619602284535144776278373849520662927855109932743315711224472073688581913709150759790587021746194823455225460852819096324323074965671772871135779495695430350080161357853158276014658958043269442474629476192404833494550199366784566498947706964123696460156293591934438371446313949630597251156066018884573308455901811843399014752376597248664301649648402158107437365632379733372177646508286710968182156959208113843581000329842620292569661312889619000873309155324170436188476919809875254715926165493320838931244308263743248130587036053475983141060075424797305071028400985307386641747183085699540199224124810414598662011292913045172994444642774251273149525672923112748624842038151696561885757567346298002440614775278720835622384369671976840651951339051753115618523293495741268053759325946894162947935619038878531442315210267688739823167189257307435493210326644854050615578074226234615889603127548957269585891504673301869935370539532250295663941446682227860573039819442797749019461486014419338526196077787413811274532303655424501359843156113133773784579552476731542958388225912701694106486699568651914344857306846887328279014102883375031214977879078045697394853154902441626301447518275013209085312962216967446870940277701889906600655637413658363068421238557381698840308804372856244016201651959278677271433860824012186875579687866578448582830949602803206663414930259545255806944584398673147086762292865109626920594223464294510009168103500849013632675570209607941027383105660507826975564123906015056060009352623836819051021444154876433081849513025759579454586049066980212131236107995306743145222190345535384452541299885742384837451479562640845776307815171082687184302286987929972423335800329812447018873226518294579401964796486792613976584462497012077653698576822703650015014912847744703709496525665034013782908957454135872165624522587412891613525778927826637060843202115062987848026152318904926242268429687561712004128384676813114081276432255458871730701742895661967425040459772748359296840834149413375944967739604134244248373716281362559962598865626163818599710871787005448304206326468457064172505373108052783917793277372078359730537489236402050715083000948176152920816717371623221403565688756163826729531115525480623489872140225407210227184302994781328100680219029022334275426004362979592521033186307637345966101831585607184276684283147089279331647411068585938374380005121771738696472294064660365365213456162687942723524627389553531126050741482584312369211263109868142376870825678798221818572332217596665985350203338491823774479719357006557001266140795556216755902513197821738473194500368941836953167459982669292414333007766544911092505953923467444169667749326593352728687399780399887868713004986267426451397078629939681577078413289972205585458136990168865028053711003152888069993156569686606695066165065520545471165612899363783825797866402410160862215181930350747497069039073860285693293215275627761959471560709676429837428540330329454047196778184307245446169663381210350452188815372972113679269273336049700158164160088826601932557198052501341946533416287492630988524669892276610426084075717669492056422279833136308420637315612309541253888215752359851571383993005506495587647733981819238517159915512608666629523257203917078295684902427713359269299762459982852909248055005984369789219577630909738052145669387165652113703257299297847404923843826900490502279087003898100715041354262464223860121446931808488362488885377645634152147153144704726713261866769308377192026211337975514602904181447204792605731460774640049418095827416075681607816173454552710291490360247650263792451597407302736938940178967341608801464132438574552583527240560447728098987075613110947432040135628821950717768506229536435769745931920187166794017616968640064484652559096759240604785520804260940978256570303702369456612466705636421588143912744499421240133426748361380089067423654705481044081567438164229226169015689852119398140169846373563043728159708227211578803791431950892049231538546528881419957202000310045984667660448526586150417228435420081138550472071499331738307157339532739376268890408534143398067881076154800156650448104308320164041292311796917760738463758256310500290919440349238517993133651172048754261560829393434472725583271835422448008204523585583972549593135871184217097393098711450256606117419023549457854075195912593001968944559241863766565654806690468537159376379004240820604055102825279343131665984806316615598656525926853659577228869741593046192419959259603663919624729881308189780307200257906006506733794855070334867514318020031054422595162446241861497431273023616931582224399794264758315478589450086997621005847642428901444140797709151485373344079868434263758233659331326969635965510027994798381738415144515096708383358401147119511640762081993697619903444206106381394809520673439420424246469443202738881670337059919985785845894813867310538513869289160607399186321206475503778473132530416991587119077901326498379412664373678269379160339501914145976649370115236519714647338589831354449878408666621342455627288104669358758389114676342154778302447477103419717165267557102260493846861293492557141417713775188569671249171189886018541784134761569600259994319924156674232375126560960050269346686131794378450503595241772831883503081149778178151199317383359464156943631992606976541814505971723862264865261843169113798204365091829205046873742611911186246153606609453184897016041440981370685066944051757508014510899561270431067991305375245704414989428226954507209269415063383327595130834670250797736358187569577376412179751489560731073316038826085905822626461658232369744949185577264087891308612863712843304384094034711466932949335673048070663499038685677849036164510397735105960771855988335834244384197088099545184404022523115492228111060684985019379962575377564924868869688168386551186884023865111673061452552348246883787287184468063568048694122554833766362528568755694264698377318277614118637120002875069506959236144671874092476679632949516439806185838215123015385231792503605564199046825488533754994951175175094782717416998458340535911160866213110599676043170094370103688374417495607877878283619826136541111191048123735775632045323748529804197697882690561755093606461723282230939946066900283156783912706174263282764727004879433463001594328480440829508923332045608085094456132443540210240268142498924843008296294551483569844253794859417134702567262258187870625702908699937668853613809039948053008524970516705455879906710057636169541826760527965240608872272367372882632823672578111995273709505760555653976028734895839357098804163838131833167885358194665083518973454445527985740390421727523100809134853886773691696237545797829845480521948673369102776520654433086830706316652651034302117211292860872998532857551533226152564323959367643737699175007327755880694533846023939424922200951907155197882440838735563768695325051465092731553272714868143642380434194200998240107953946945685006645778389858654666766971268446170879317981233054671598819295952786848971911223985308939534774963563625774403654371498452917293901119917860427606544906425952837689928690822926325494905041925938194012831456499712214337454703746241452959990640829042803939028618622712144266729781358296062891007825990430066938898926032392003883814889664364919431371948392538902829628912151528171357725875135095191572207574295180239475455082343101818427057967822863259668752256290137628106018955140830057331267020014531949946144049850362057700055266680117544336836335981330534069120873427847744047038570886568875550251712693707906246154633154436849708268129142819112119826312867396511191316549289366046080021400155318752592607440642785374951286836502275389392580192518378375004058376548555446996136544661180684450665768259313451535362272228468368739818508259787775621185769886743299345079208529714858014531284323405634635424199249307962913572001650680198678176356631673366101064209598992087650802184108192625024888003558675190336546186519203472322955893765511244937522635265725473338825559153490276922206350835927816576261493303345772039537654262016817733378355238269702735173751692674474879502970669051090055653416253458424548697881976007643881381635550657863339547785217330177875279516021291055652193737154645968792416246542038147627669398183462710050735731293357567714434706823835424153974654510523165361477649851355958666475707062576337713576274391361656061264411257019446705954583904061245361348631466467571894603937575261637908021411229998979541858968736665760147318081416434721375227707585399926438904036551274484606674710421754534951354259262501900026105589214656295399166212123096621090412160773967658322540245617640402083266839874848356952155156314319169421137792818339944762675964055022707049866790796860280650469725041930155347257324687913686422665753930990580569547617169668140256601440068187413421987645761410887239701589856155745844270514073408647448332495847457039284705757522676641251815827743180764275923429836045688846686299730227373713776631711078395119636316316626047000984495307910022789613762132818509035557690007160538049111998034706653700438458327414398342361193701402173077767897624464545234974782042437614506785305264755370054864886163185179129331751574946066906431615492402038180660633548862395489944767105569731764653178644575995953511085465846672875895791321483982841277503837692929706558881483619593504799800510461650632496544728546461732601108700089950904945451322347627469816262695833418144502124322330876367998641613290336305621677979511049523972649105898071820292496988377251720475370110326788123571773089075904165828437632557433317925956363574893052685004593953466255318841013571807453757933376818026516156210030175032612583954711649096518653045322181660085798431215910546780711949376609983999333785787455483221877601892748104456254564787711773789619375400591544680837229388799471843754568685129742580067916443459646663719594589776546406418600197825392133055766699237236801620697329516665116427660704693641665094068455280490702674199651345567461241307622598993766311286321599129609708082525898653271163557454956553769515598037252266967032812979236559756218558022586220387981366600593578947491126649382377681545612313854574411732506553714729046082975114510144574588404806069322803026914081398521720150689215962488874350290710318996636174659274545228383710597805473728011555321404339786261286157471192865090352911644633804618851580049932577297778213692697600173527415141443909552997922376290633881458069085039882249679930429510321490335139263776658199739681906233330543946182950444528517465371082977451051359536205438762961906695203426591676431045498101176633174292031624354582240245471102788136143952482150041632723208727533943843273336646138678116625796132468177964181257690657134278987924543117100870245582414431159563553446599156928052083659234628821454226559685053686978663414995126875329960575899438190606331789874853465395856729840524563407152701110864556392866203898717955086531815751066213967869489792178490548056571782259320097144516078309473173016707919405585455590961957848436057367530849419239610863260153952352266076071744992525402979675657303697281945599506000709964619365066265883333530183423070507192240062583200905073771899140084026852744539647212215588555063894382212432373567846852471709785749899393100680514904488431478016310531336571259859723684336273781077369192823693727020817390621533869165818652971393079269156079604263388826773778061998326117435792340728176360599419495758356455480480574705533792372636169253329069777941541602370047443457284451890862102564022288260900313233395324291475724451974000588546608534884800287512687808408680784917603656808390658776119602933897595932142054597565682438927232800815860387569816090982450751829380193874263449220100337099068840474796501861957567355968230443172400857613686240980437679240785603392972746931135922694327240625915770742171969685395719537038229908960276057002902182179346660398907014137201161462075112398420315504083796955812506116445120845971716593283613663653987275515309012553741353078943948367845784498369000860182290618046061720743667122015448810388288409398310111689762083664736359573644170047056204577254689985840802329578264728781513992601390007472537617244793713957244808545753729340453871791499949655205770347196291711000313294728460482646188775679971864555635837643329992948010350313019591073788998347046344744870067336978627530974541328471794430613226064533720396433429709233118279376021024101953142579182895911342527295753797443105789626783361811222880417632529768327515564038872509663887195769692282609733841610841366614540669944262936748435648565028165681999999282585903844217239497774840832649621624827259863546012567118643733230858518681207244487868284757885458877865428603527755133797223867100181526984090971049318550962831788409629280700668038111640343055022308763750683523399138794947292100416569344817183622517576145354554451616753657953345421263546664089289476705022470069291792343651748792330482141713650177905523667904652047399382523012369597186488552947102050806338893645479700028863265768845600261394814609982075879414202132268624056646029572022059277543788453059866068158180124963021246600776128793066391741052527632842682539503524017377430891637072211402939956453406362161928492456331131842354965006033366471919415295975775951289118645045436222463038537097671508706324286757561196120429345872848589030238023982891725453049818018543808528547968829299636604279578207199060072870657965648627283459656554710604803064692929049570741540900210598009598511019196989239918343254370520728427560565650318258947497650648471233287488357098172318507427802452592125215720316004373206411868479708080362122261513633807757324109210578076674855066154591954188213618056722453486445442902505565835644967295815835820258213678514253580479447801223457414922010888920638126217270789779083725926075579594793825229130220712456663604406312958375342720459606375688109094207429723015108225082840374228842197102867115874723857180057097765010381734276207221234707095044134988003429978673820911592298134430647965894041412543062585745185873078064971722387691622604958728270005396836330470956346157523181870967904918765312388363333561635454832874864824241756273041003082816742465444686302636406720309527568251264879367587697836447016364174549420189021770598888867989865701182308857476929118351561147781583287692790993485820691823188277478199460280697623627002999373404190713549964200502841443699307892126386465113260196715693306449724500547224322954392453569736086767526640113060653395026536888904446806000332622310976873185990896739434920192176087240281215792527371654523808240217152529545929996069181774824002316196399967692068078412428145498812661154421772829056748646772920317333516509985061615850261068474332431387313806435915780151207644810810470822658514081896463213281852826132350321158481859794884725949157080814193829479214033782038554681964114595390128834317839699020312418657109137563811925922998781272890439795713553903006132369076177570766951794706136465428572202605976143282081752577010878974931996620249721496401746118570508879813244066864889051986108630268633453935201297872442268984582021671250933961233479779849234298527845203473091733062698869547171259841542352456914371507650372473691910966993825626737587322232944502534819068935489363499347209830341292231020902314585574926869954639213550433568176029244580969126278720024482393447985011793776273413040585855227366925475546241989937155328316102973250531560322326078276930931938693108207376955836558887226980978095824667813070579793291232639700461062105473755179641476243598494368973078681115588013252356373996916238753904824422196950641364719418262455649412062940392216379923767249002938637843288397410890019896910687734058559485896451243819811948440909386665175669613908979064739949748043723019045024654119354553811696213279702531677235342412396756722160958012777595090520509332800429537710261829620534658407689817965636219491414651267751709426078107833671146743542339794560236300171656701047771592526166799616688702574533392249742087984193967863927510784977829118584292118338612156940816177692062879748564368640502241034857515833313832560477332749263633937565767052899894140044198282174684137249397127336761095854488379420223527120658399937931228121841962352069487530964471215835779123264450381391782151278681500975058667272265812033754196334101983703002254055730755890501155282220932287423774759729916090942769438534881512397093715935094240997472695144650445289630501736705161310664028288868901573960071992135793876385687832167332927994942003125642866072227334009425754836371058604889069313235234813006842284513070254921887887362263211970111961705814979784650606085401797085646504921158113852999563249066835638659957077275727696972051165788323693117557998908755863531660087629259699097547462781215662426278055537965935271453168636551900578357720435204586950405110922248076460990235829612650713309076099045368173482966819978422919463884901342347885047661623132289764718897765539088582978830362057633843847053121697004145663697236429727815699149179327191544951723312960109135933963220605848627739309183676454819281075192218634574196362183531079540732605599398186755727813842241757828955750090852368776164307732785334877398589000940492570841366253587264448099292618296443962345568962207198480512635573207016809540341883123258799772230974304970623281688620371849193304618845360702511960357179758399509011101509015655267694079756410276387474912603500340536465054926108612084165709630240571292691880129022011387303238844976518030682694667379057954305302480166719539420472561563304587469928023804408062818124350958723808549437338522426132975389509839406291489394145844456210938844525077786282412008533646004472841845829125096767643502467523562463224666189035460850963152425653226143768014334973456723110550208240804894266479004069396312649519177013279599568388640094442551452932994453398778226639629537105382755281312145596578003181215871701885815935760168891947139752562293277779819878169873700588253551793487657808489569797428463315424360408066382940384619119490874597846892283768041205624993418375867401174375471836823345735097141045155035052365880034138018310672618308812687415909555976736142579673444554943513228910399595575349538764841438583433975257985673175654378250470932069459150353567212024010213813525169185472968314487663757887863621989290637590478770370578679125257711908954358584101903748576352756343148135467346979527964479138099183805485172624774332927784572557293020161026045416323774151166200494742790354078210930236069556855108658488203707825715514605498103164590814248919570189584571437255463629199444205312840604216103328474766401290589914104675572523454258819212552168369873081943013160391197087414250778683930221103510277403860216861581129925736761090862624245939977771587409653080825365341290272346902852875880459198051640807198743527452396382606236651308070346559162801551776699152164810208256828031740093802167947743114916129192223630238323858996489766295119600010856788360930751337688164579602623467915727754600646334185071756187128310705746845482549904271644474928144895395646920386559152746517662426290085639490587150703987761647610234446197488912121946240423888010393736185600633146798230913442781378622605576008571213888717167622514144505667442770534894807419395603593541765395908386983130699767488300471016228624896993840722967461408261226398033868114740224730322789185393112066575254327706494380736755454995200306565407582947114440848475366308053111566790074973715532170589363314873542937717422208782534675439030312223947987780051803720559224781749849914457434765037181957720675844859925369741587072809089922504088516362588644149043691373244108628949318080291623401640384372372065958243700322105534927014477892508237261288064348104008826358879805705958241521095517449077626876317131436579557964977857434658258225244675541262964767060669955667680107646069101663395187477508429575623913098169506156150306322524012498720039428188341182069076828751486807637842400873409599218814216321379794579425277182852721107869271618023281005873719423239605184365091919753157283215858203678457496918111101329823727955833374480110572581466802976771384896232196421393032180200755633744290899174796758614402672376958058267873540166980624196917312035750448059513871296708571815210669746974377995008933731769067431988551972508602227517215571499574550747172479709138225964702679747080875896177373674473210131993914071828553486282850028169250070025112268834696367483119718071392951040713356296994221639107495448082413491822004645644216620286564843941266026423464189964679723019987388977385054321005185848897609650831193393051229007037020421518079318455245904770886827041168347333816529301968022071892229718404248088264740982565841465306934761994698051649441777769284512482502111018808118446030973305411548814724042988057462183939322836284420588540349670217909251185495784741289986714781433807969969332693909441368623232876408092437695224974188105755227193595545240327059675071027089487016265245205967711674727562197161958844167499717993016932352580539121517717083238663923716888960758570341214301391106821139784959283842080413672154355100716135046684474542911765743895157636425543818892325621048540585458692572081233618433168455485572602635252074168946619505567757591663026105300366266708447781682470545185643919352642338776790667334655783206119400013683493458195714446813283916298193576270364017312734487729002848288670441898855302835461206766670934197039143030612230106234591517174253537279512868511710935229508960444855879609102069809681904206253788646950055922914392322211864752796059867012213652084981466436316979340821724212156453304500624119039657267202122423137840884815895350788770891794183456143287306580495902548012651430629626378313967530360194606241288253054416249195950610927933554382383006742663031105424632636431557018542566198773386201682993718559802013748886580576853643771188236580353304187812331380700924358577437699127467670612306069616098475172912849851319960723619240888932699540447205479632947751665444393935746023809376482698098948265210154527199004231779693513267275463078835823999048938510914301369506547578914005914739011335713215936717639549556648970342333318010913489376486692882646416412054575910122910844361138766726712607822293496391853315230671867238913100348736488308035275368783050387778650832124165891131541412123481226484857031086869132374169304693831105834895684191829381103021754023758523936427136491191040443948657854361696609562504365009161738090644490759701924940430020435533028406898325159709531080936415110543720130727682888914942338369549364775439103685856384502919701881313136410637972922876745960412007854483849770585352537889196962828186408571240374858600637523437760628516372105727954261956025574942459843958358471205912500603378560252547679085894814466616034999081407655719189800221608337385315758301109139935048903105999502107333024142822606352395319734000597844110725719740944001410606062442507786294519414592038859953761801319087995895994802113585677905002115769118844112888125764751752622725896808538547178034562151744964343816900628812091625058946573269657518041839521842080075882014361065230179068064671955573475898018834304062898946181233771771129174080980998153382942951971683820433808518606425782129618246237681748053850235703695352931839201710489442893200331709621743392645547790061470775323021576716358671535471274294100388246394395666018334697583181317677392713758172053846444289034690189303747583708259155211388804984083032427372272862564098199078002120166997544246201403835597526264416089588512459492589381969150922660586569821337738537286243024088875992917305451238870663383462189988586249024776728193713537657157459351113831423924272739354131728482503094956447424821704555856241725331398939687717879920743526090039322362628148364898214077746312120145221914326208125020888757675201297894159713925652590907637229372271398085641201800898522002738897594481015285243036650649229366056926100487897660559802127871485846183295056643311276105120367913475714477427499540013990464758664996727168264387867339439566676090752710855158913993645719984304548816215055893051281115422560991834819829614663271421194859766993123383728159403037227303211480405318472008965144614479907788750390434441436948907855707468135782633214579180641198391299255382391967870532209521198678601487277639911736995346583722105828403545163988805425188388275669780675189733756062322324082839967667323817800162885573925432867496604623194407463282445759197802783419690983459808725908357378981457143930632112193717606199230991549246493597252111290844192522201560791158970139384658327879815351192461283703100802227132014666032136524933209884069458051374320522270948979173764047483570825892506834624919605785680556818903446232558518554132435525672568356468347412255193936026236878692293461563611856617937902784377360530368017383228674083383728203162180298625969400916774655528010225898213123169561182041947330505528399325773234635190199458498832397796615017843686343311560660540452265831697418459778343864203841598759662439084791308004549379329307860305577201285059453746601768597000252739179643093843021766218266874839255075861132390703060388154974060279642324430114464211107139927750694162918970617034268068318888510164055022349313211712008948203798982031707368628635424970759623580197710817459349452344574820701992023200188417255881516733039170926168029555011562280111082320040047935802891809125560437395799109280623755207765955244553162440652233488516733021297351501459602316412104137258215012929132423404297226561286079922297998946548221895520209524511486022976746150233416144705644842398337081929556740431769170243807908815111524871386977594792266152629117821377973352174562814680508946898505935435448994679253665754960679914345224317953435441960909129163774629083735661034875471989350363388140875559714890002139136083066246997201045553544049754788613042920967633107917958143213414192649045506410047026356919166768094518780507395138648594647786927824056231449318056993891995978493450169167424988392766734611956693252015575187849334103233203627520710300690891452771906342582414620326498785917627267630702292519817144049911666675068347271126350916897749408247253982471643941499014410582101420039940580385414618402075458541295694269830426369772178321470660709459343653623402500794196711234995457803573053007250856985793817739082407486046218132632187606409311248171257251927779355597459201359358502603677979633475744699372289922234278407293664095041244365367406686540717162499744404124765289861003256986171670548349448439793532597192635442788192841567266885192998622342999164772504275691568868136972166251174337948996822292360466302364244241439798647359057057621344646691511946852433845572277464359016505558107272805259258367143893738007237437365712926229670636066426515172711886393863865222610554646658242559726590338366195605263917833286011117927461187163287417256527893444117710765526475564667450574350824852449781559600295289013777961008602530533996901485399752418661812040611365121324672445752723920976854504189065549979807588409235115431473427748176072862120778186671819037175592338656939292783622399341903117409541151033834438120187018989951193449289233284977722786836453943336114534972805532317868499410035293257239134417395323813043112966234398342835913740824974679844724128826848898662584468215797400511215013237194147397408621096484739561063599655690047331778781384931353555195360033077943941254412472389752087497044146093553603159052344550477133421551163910640032757547752315338557959327028034530221799032456103418237085220006439877422885559633426583634545761500629586629300461129557453652016734933036174239101183256496550276923262861475077562084975814582543921735412965029855189853807360949735749275764000440042196919978726312896774826226533261032768084239981716847083771828180919493638438036866194228982982846153938689205311409550623590074552347903828692318885153584010535095004744034480703271377757389792920658016482459737138299626473104960875341870018358409283433893621527531162458642710357013620030793945559177478289909779718581321540904726930337946492868458400966561663807970031697067489287425870459086743833626920068450245075099719239424869134658483256366493113779319220766607277938061875163749282075786403616937765763306472804569255207057564765707611160653631814187774802815304235533079680898968827251600674974984076263333230187500411689665264746293299868929564670761329745866526722999562204061116679775366770107413523776125074673759229021340231290865887713098484049460088165966205213091039501232924962869973500757671555404087574580512203103305658443496787009413036027285868776471469348070706224344599992963457757587216609266280349359041128391349463450902113073745011151971038566187353755065029145825245265357582504687396213603017191323803329955855529065878890413091507263125203946914028821646031363301731715119194797715565034400100151534871468086721904002064150688569872085059882984475361456979884663523164259752654218241456152896288442482072119754691436706515671497681060344651146832379853288018448672564540192646944691722563857622708340223653638593170292349145275014687478900607358510027894329722449577045706316636715328952322137285306873671307964694836382016563350913549073796204532572779010384444442669837997482034919105859736603004160903250923449639769382250940690255168245098679909539235553247451379231469560548256550101003868645404018731117289664543996421389877938602526923377909071923390107291291660419187579456744266466024569212527660772699364601651321562416704911440451516796681596918427443720575920500778429846761640776021836865494725308023008523698111158890340378233346868760946206116564982126047413829945073707471649033352760022496556939080894054040939902114187743453001640141867452322577166789269008205420467066948113007245908349396796507068905631681525043749708017595119752292561586747229018497794893791675219708161683380179463034600463144999982708951525916749372350022133436503786113061693523269735094147675767468825537660943000338471031845081005030049370701172472686032139668106940684309726164904699477540413362918336562403516557328921385199767317760937103554274634128360551787295743542237262716735466864909600130728535640546337924796016303527485159580089113372472992299883177237922047206939707005622605206819551889968972861765821657783564878611177791494965925793747471230336866986632854045943240203813959351190497574928030848097706259541660523763297748982289035522412259107475562532711202662652913973876794836551620149120903133044345358461932840808451522519827518107559872357376400270898656294344570589336946640573906345441773675118354614084008974062343812867903197968435808671043143983149926369863688194588384170138409914485695598517428799507360760909319281318462665211847194693345319134112849343739068338620580677870942439788150822930027515546613628306782810902753047017534755357000131985482053362747890556178421392347331762206157461018637442335395317153531447230339920257345826782763217884724857537838693358024082092481238229119465384031318695874276451479047043371313581715139127811288207409493179144059788846798666557436610067871351875036579285016776643126497551191842895147017564166376376896264573587939478057433941173066668812244219958895170788224727381850100838105769240825115058509896039609955948967956238043169577334004419428392650937248041350739557512326017151548188547732752048064511035333270434724745534863378355267173134274821914474222910956148389573263648056426123089557987165856436176167711370857431609974415636365510020521994617768568751063851819238420081082512702720145405956744070913675778859900769640424671589437926320024672763821150347303235013321420861764491543766992843392623124996093852326088376228981425012502439217610689387444715772479570273467528291865755871328442151759839309907897662646441648641160837968022716849671713097106838889990609265631530020332065070113327234629545918968113719197934241219274187803680028232659289267866764512936150492407959727376979457081352154563030817145035035746783631395041597316775586863908297675924383377010620885655189084288021880495804985340243321447734781533341780550311489424886144822682505319846733629155431625376764491743569336494534648126076604560574081373560208955523299885186563556131577578096593419140546524411293510528145347447458336455911576256343138336466450382794245321961384090082246404437477660293249712423767184083530460269393025852166571994191892578516642675664296909727484057066673150574703292568012092093784275604191261969358582685303545694790655110962045051530943588078302705756435312675264236085782360199593308933025300515624454771305859174015684243509055727436764680147763911130612345935219020071754840479112410302569490806298754552985937628025917644312567071929829860502714174113301709678916514680464564521902108516344960750223299749803417991697953156985570495472502594550374072996338291122333050045247669880144759542619396727007476798433095767466847318432097321498084496752144440390775435200447753364440377060827808417969788402631944660662560203179954617912495790029882031414259473163957384151697110884992104826811504816139811615246857410292799590118657985836121076349452582437330945754033820732103329000704243564301776499687537785105240536288725026711158005432269802030740890365525146259445426168410887007133817213194699936748407275672873382084177724245037808204235144436561248599157485378687384740835606968622448649765507087949691492002008903949981766508656344260386190649523728667634350976178170572388208262279188938330516675746535988274357785830952878265240051147015516227273989180123003278315842649680301568207968796258163701076246996186803909157568886711535308269661686643086137778250178915251465188969936005898713128683653067736293588978318880618770216609266772370440618882739315167734869531373419245161367170548239984172928435310343526696083805780977945536344030055664095418638704355083546411525354596714722922483812842260700925949605290594308429593764077529463684831956759595988132567513908068379528043296067178139038019248311658438634084377068524185887049391414555369006761198471731928939476929339008601270843548198472634471445572422053495721886893126027264110717400916331587134954843262280573171548025827021407014195047652074844772957883790440476524178873420151987544767811073087530010658665685463088418425160199352398462702876916077867703223577385785053331905324842621937434718382735323077903009865637976186342286491060146261373382210692876084791682484212967877995120262155816194734680987139213324614482575186762499794772378359670844686209790770348267312014346480207325851752505121763927774753990285135452105518447452823281810099039616619166860551324639283657457185805200496892877510480507863762505295977274031805818616958294711711645579977024478664569348275416347060760556198721132796473379886258705494134318495080598644829704874664943939868294489100380819460713570096950582348550614840862225027507374666047586102395689846702344591283425123406197185037856105431262894881860037954781907391964075378303322027331766074068658156655708834947816081194043805639749746564369075771484225210727423086648879549072520975223274943978136381236914087460982906762154014438887088702510516257652372872472591475582897801338651938316188601714310296255218731678280184931607617946459460397635882600672349955988600852558421395088033118224824274840603060782837791128670952794683252463775119187129967313492223421696086079096177015581932686174067579867094160003669979334128749052550297045553772159103691580514303318063563685553323301200915177362935833884156225011929829770927548967008082385645567280323084215562874152480600032933723706271831388609767389149021707966329799009799517856138267992338739174603261856333662420791280380283547972254796157514798195134467337276654744481449738716692166863307056009749852624997202649055531113920206190829753585437118983537851747530874181455413439617732714964539197602084734259772312817518076328482584558486041603003487677825513881109373481215020406146832346403308438799666832083279860277219181523665883226929489624661729458631660120607700998827267601755114550362683918847289427951958861695079168943138533170622009229311671964819266305076048865769694450504076414090728761170429778917104520485535606858094315339696630855316210032330356145657872409563778928471225858611659004425170948026637430548763310665585424368362373045160768751858660654438243014520189927180612855251315901721102209229415515499216815444662723368845924972492048281005057967471546950256616858091330781120216016449088709436295392424420545096925156038213468373134855572873502355894252690193308118720990770163285312916001014738420997681728040592333143526603342444993177753994446117056697273748624629978826302489598913413941096455028821983310725335173848257015284856399683999247122836013746012665805991877461141404700840021883579122289847574326234600297811727222974687905200804239590904778825002414488116238040471477084417200897762036754711501064371357743617540775317171158971784956816627218214191475567822085572474915065951899634382499351653720309692698413034170991047197492253621259501759415459605139064784243042719452145612786529151247070717531316894825127622635919879645364527035280998694548068091503461394833651306161034617462578294758017653207961022523634354258660722143252149650645410143802187377624520530344135567270455513916514419323589744165581116860921448908503431682240964342722786379882673513208478019549187527991256115902969341720257183608014812419911004976598809417419695235191937857973883712146940749247221401269553191615859088404245538587355455163652068932925760854420989271576677246837223199681889495005139551008532620202267015247522934593072876723836159527781665352463933758265461060357862116187817019023940558721708475278522065647447542947243970097938676031323243001457006908817083645161638846226383758754312874756667363368718276220530509197983703101012341205022228759379959799150975855368157237768559089089614773944588023692891187446177958009226294101135370602102199112188372536302952888590284421768072085113167408847921544361256868038847196227021893858808581013902343938781637567563923887257133558005249067443061052418196031550400045503485769641939573624306492318515162397071792907809456449730062432740859878342184764942391809267712724340625020028465157612180255631265848868626590868130337972799518326617443944612516866066180819352439843048000223696760284603817921135202300388121499954351832357574410050231981991379914285305672286795266021443392054380027261564373071890074182992621494982427716237828135933795550670177197765651167333106861158219038022763348081375139163661127366752908125032024203129682311964076938735381483156551548607201411357802395068015527626161713631247972213039274065589987321027897122175431371267187293739173604971685774475989897122221275273920984249016985169975946621223931131004696573796745323256838112344059767529111672398895363329713550091974674116812535760898937020572911549480522594254236812656817439245164890002187408873659393405355288178680621724806299574086624323038455606856308870323247235217300477276780549025790412285130444321320399414167573856864821135795162061822204503409056035528642966126551510603232961833843059001983656286822329961031861560563041289944136899138060588176515707161160978583908212681365114171311028076643141035478898955395561195357769372543337688740225452799186630089855606056970749664512159645108659191675415872011692747894652082844607214586588819222473053857846700993158672484909924696105291002594930024491854334973647597170816757844725081522487764954295128046302220842042484814090265497684163159759798215799800763525668862429773104299613192365517703637173895694933112152788929696764812464068996525314895523572191861918458734133937511407315033293138220337519454935514958653597341316626818354724468271239631707047202983464923652086193234007680999625333547541554328252171184581686996618627063083871811837632955231238080418752786010144933996534542952118697856601362547762834635597995211244992466787363619386114435501790676408338718711357266571880536060206505444977944719009883609877401982695657151948678021522483845495449744217140721605747532881446026994545152118262564038068485768194005293175909682227452266928459574948817042728510930835052149207187156061136881250774328404446272774495111406969395028700767821580506747958889649007286970576037369895270136219346378750201386638883980499321787156535543401215868571031473465616712646429003174135871597406051548236522347727920524880311576428665854134877411486588824314678972904664445205550949947972908680820241798916191267219219299843136605590134397231129073322169299042382597591822456877388710535426335450433819959144046658112630897246903891165729372341976412098740090277489862007693624144993825568943001190074572379669207494606385373857965880012704295766222199951355340344199362816299042947190141132486082607652101554772253342298849879417236209246013634102683696787354810404050836035760954578008149769556549684020081166555066961718272162070786369168148529660348099709314129544756710752536685886369841460479370341597043716589345225093796075884826089674865544550468166944454435324395227735013687811296349994810932948442964167949959269797332015019178683091724831781808139422810586080270233327362511007613688452509083856593919335039139322513375691773395757927574089557387134962145780891941132796976647982471789490343674136042744648735524609448329277686321238579120059037456339305296326989633303214893081792340213138091988810615749969439824125859282371343311249234804703115848726080334842970504068814461932244450869772020975143287477682298920570134485451046205087770510523647425293881965359960720972314536627554641903970638065419854207073306869208829670930159605978290896246451582829567630383722655022076704030062780178498964302785975101736308597729864956830100098869472744079376615295281071075591738136379033398447402514309801884820108222582469932737337130603553199099941490277332789334815122229685198812223602679775914736549053623305905029760733182311769781525450229562388336018532612756942474561602831891183795256519317926884969797247292521239397781110341137953387169082045756709123023355239949279428908459141705013260362285943548499154662427001880063992836328100739874429988093622414812584387520514676380354817326909735591819835829891573212046129619695548734764624096483697632311601150868753123848826698546129849253793784801203816538456049060437522756691708120153446408582301889930678375538333219564068407889407436861861189214103088431047269370935157122237235029112667084750469021204155420700239353271842794859386792838461763577300119470025589894436484630760257830689810080725287019679633808170552629235738745636797325540967644774494125462997323068462654822274938168366566523545135445344812269495816292689813881447694692814109417959769603738874961131470499176963344903265704799319149225509770170547931570645885590629561502885704049692525183392307447292215681653069212553389486634941512942406379408204455027607531709693351390111402886557134297535495152155140676542085115209412060795509458622882543843803877948065128084380259571854123445154018263241407215157323387918647704133094696892732713491251649933584569939147846975646837716921571946149291042843355177938906896784389866732199605105693819483065101896355432328302764545766428046537542533116540522604170574687999823951946013050555505085633427897337673773754531320392771218754858366013196149476610060140391021083978414293974711319050894605403378875458683243440946645395432040045050986116449351751287770584505477711380546164555421683153641404621903720912300898539326958284366727299582116777517746364272560021302923712475689050963737333761881549365558472299844106197980222880596092338814494520763103791875953492991343423211103012687076485748768375066052289738886990360740707348237385283717592335198983077070727535774548871229843862608505464290505684443677626723387070358820001977383646444322372841488032423777262293878272464601437542228130996222985837556407645870153274185971075701852488606413435224763304333850431600095878802438939783436989212385745105698997430821859906128906668300745358903944840203214086412922224880821545452310803970591850048930138369265954327443321602788789642893612610593435324272119351593893445936443928586700640330997138667976820177356546785403167921094970511601653204598366285882606919378275212747192975276332336215051890072756621439632069233977669016436337631906995851577108877990951059910596752647288407138717449721229971091714025357022976305657640725030055475177915317853122460731358395230981081475267151880538053432860315026556071886919960079029446496966797153015611789231539313431680651243066773113829330014386016349374251657385063840450802035497981010934770941309998324020306070196533982880309702486903987848691810230880678473820900816236817260833784613553127178082859657060000742535799805750991230230215204191324691431829577129093069716116491374154567982474605566188233742663892347860904241241421062864618874236336368163305300211291083778064147287114465856351551433849435335941413189136455469015712646987066314080961159002383698421538006415658007704558907295204732606491929313376708693135362073525828406873929789014890030757250626136300687377252116382538493469313187876123856578716677620494225716179500608116821112168178181162541774086662574954052822636080811274517558272198790292629558482683172740587565254401100094255644425429103820736810597528544257360809676782596507613053653989463459990498876420637428973180728173208496619220858965398961088608857171770731458055486084348847173417026929098061299399076830605749289077719378774277255961166109217099346432147035249540373784856237502597250330583246388342281966808686741119014566076434023477950377456986364367389041466202368022290008336604096085957360135205904941228532213537566855034960983855052198537611249923232127928144963827444600896009006108777001809844869523342753181094021759001590925279321895808187979167995996777002546968335872779847560225186033722682368849158042759242299883074573319041335986212266078047724172052933166265991411921283283405734667986497721902760273482468523626556973930979330140708649760841399221750748313443650074319101509571679199130210589122812268206177480708492545247317907828374591263713526716228398702551697395530422377774617192162669867731099979941587278251618109252637532404503492821723909553702555160487441137093561649581905553857303021483280672682016160127933095045245322966686393859888619610088801399787984772998501558238842197433715852782101468758193180258286225427284657622075157903248969324677738157128437626341662559783717388391389501650586171502187184663631733857160099511360487738495913617998316776713038494702497134470030097656449056370031700835624279334689117116172813895782958500309321456124404853947938629818036232304259717862940612626775348054478406274156140385053888096322977060303200816899003010087093053934524551590780349255731217743731933330277607840938756061763585794603417564770154539535708252836969961379421719224372035732797917494163902857024282693947489477621601829923880121549067540385438458976007974437041661109801574197088365474016860480989202431912946773583092528958038265527472410881413691184203071573442801927549019889821094788238828144442607414805455130236672095811239419634396278641649152862794499373816106564254147376065944205109273407046278713062242646411367983608195709135392573976173715838285863185866628929663929214906956320342217199050842770234836300383486786504097462521914590150752359530796793854627472981173482990476413424848459864230641415372114229835819206044084827690274509380608410721695483236888857585183934710479061557711788756018418044492047561070606594218732014334892247679592477185258449534663208911840456268574478746852457184010843879315941616615426625561474416297122804370490660649026615720946122602540596631947207157072525682663022441968084660521100491954513107027333409369703824675065004605898838177356663648052718644605137527857101684178569579675492611254421942783233491510706584731640038331745928133225257196337442906550252826344767195714116342681137819573139738748755452213375428849570594906355633582009233714290374262996177847887018974027008721184634209300753326967121354573111021148970840830315331870945807900564445720810931741947358779127037794176558429247107210648511228605169107181683066245261167578340684449795617623597467305528556259567834277897602938871849839779586279462318803338243504998251594219548312782311320342151562883077398181029332242468451735204035038199885083656671084707575510050930492255849768042444195062644924807726937321477100314519329877166498838741838809323410440834524174769595695548461697810009758220133650148126714766036495227616006230188787371975184190556276409581899658360382838466169969468131292916124930701822094502711469988595001855434402744362541461480557098947600778929762046260606282588776513551342301832692155639217434674748444564079246552904907855553412778475256338148533391281070855797118841539509168097042632226635092881017745554942434999672378304038697411183565164394918356433055782293511720550608511415277081478463571546119011929565334800093211509884982221273660943261244722537192449197829655961825754925892410615091507229449327590584266757862069578672883239083817384033828977878991168204779663142916848282810175515695922485631109731611861845555897761029761639166931504590744715512388363896134688842708976572367933377035057397831250561224203811053383954200455085268437266050338358879097972197185105250960129592914678453258058992368266512059171532654019153709731725208684502015156112810169790141120196490981381350470288374282286063791531945591409670715424363605837164740560665950057798978778023710091081453899190255895819467899215124752548515479961063204624705871855556491362505064017662935161251100700362660005301901497134115238171675309353706012846980908145527664676239538520748592026060700127101602202914832984448648862767280819070480969998726908624713349310179763191763672009823763291080996544646803505446515317284646356654487777459245156229595664953917110428702841527689762572395252554396443385691912070092718032174837585240634637565685842395286607449830229396404590196831260956815388691137249244997192220316410598066936058101982917941637397310069501281045044554905078944180281049379245460636344215378844272266117972333238906953785473664986624317386108981193735655236265888607932988252913830923412764827383279084486206630655311526393517170856692321504438872853052598716150225140974689193215951931930887494494751519460798075885185647764006584794630654069127786869528336348603462506566024701804123024401959565062887549602280770143463678858304531673370028183533720963196973234090969556524110603996149578243383748622596653671954175692004925539029309263843232297881766540275199892044144553387170102411725244504119296088166171640309996471627841506271085182049883864720326215356033392286012381836258627562035222074225144385458606556440805134060410332521180205144261066749847085307300469048539913275751665838484986307132627997161498094607475519229830657967682511807244608128071733776036501117372354964270686497130792408171029114372437293235254416907479362155668690406166307130173459084813225139654965070581198860919664769165669405014107378134474529923499710663381477975013006641098514764424257316134846210680246376520147283869316859969641907409961199655699937742730727791151194895696931155798135008924046781561136183727545211466564545636163689272211637368237627125840319017151386198562737752338368459835951522516235085865376417876314727464468260474930770621214197658373507654056833789308960096427494450344414829581676977647630449738421459823800817890280453957619576345517271722810341259285670678585320026351972250675130934159074357390721096765934541530892830492875177871652698137532284178135126891361881714104407599326323240824836727374584057048595598331870929882099395507603499536420898966761001869137262373936541500982728410414454982776138382276813089025140724812230770066045006652880035579027476531159495352464873853307073155010654223126636190800593295480690691737081606511496990938458699477717595891814248336858306995539919914594804342554509196934645521762715425817605781772089391652573342253317880675911852654945647129777659925413475136521876901505255065226949479091393194020874862208435784032110252047544860944159184201721561315378388045214650439342871413612760718857651814509750547520436278165451555245544573366652682834737294928393626966504376499611437573403890626404513950423031813823524406686326042648852677092854288241472819761667282647388140920881812068387997911806456152663680549780537101925396121351333510633137420094706170597156657945392826424389535006127248578965548609427117769029253172507028515888368649916121509189582696770746115431686875653112921700643619952634131804641360882332521395652666038723812491267006214842235865006287297857690278353695436409263720030727468885748906507984924412845748406684710346215268687092622811771911775664004137220763401358829581398398982514222496761122475330518158447988253046538348771439807543472692915364473580628347479017638844276494887975607414472841926960585250269194602600247076940996616697363896719087051686160162421268861067082235843639967364502777182510867825726560901519550857618293049000140413728330111082705803602824490937514724299237392382775985345065360098802507458701190784328874450936102345392547944243811521408662376519746606079417770013024212938795637547974193763654084413089975399636277522836605192811876345846231055376652763356806317361165861908648126449121767360885566984606456905863147001033007173732634505191188533650871315453498059737744294730204188414491290737831772954137871492009143690997479683663349410594575054086142721556729850925977783940877270472079407947080768091521862162923753369513949628025466935166130873389404931888133501813050730489214351911316677223117583707772366626585235041321606562241696365326931205441210666392412768392572159674257191467261105530196127400366305174037087060269674854068291343072332616636815136404857615495034472987066527950265386345881213459276810295237555000003686803423740074102870911147121013975573608875077052153119319981399123642152446608602907672285427180175846054997080364805280534206978276524681193790407653210435305983206754600886741519195573395446183827135431495313562350978889193244351923023404870670555729806865323625156236302783626499349058723238819756784111283308750969844978734726360107320140988888444352611877271941020878914056787381488865768328515885996900499750310411997285978127855663546562542645788146152521135628412827656601938321260465295334222542501772962388545663196935433187069438429804136076899661219112102019022314446192491044657575041775148011750529411381760670242656616506259263184771161097737341075974228107995300618638484126270329078699233957947536569642930784746408582024289661581374614979590669145663745024274628348896924680050050867140411846126047223342359908139245368449603918873797221552284884380467524779389100402744583796598867502998903424217478002156675845847525848000511723967102671668941562317455458111055281862176559436324877902603453406866115300318674306312448071279796042550545979431069437202138034214467823649924119911808326941313251524410588850791339514643040327449513200637298732733581297669180394902112734330777515802666852179445144004641022456184423855185751453978124908963040080379011687344400070551094172907245583113872271743546695686405520611201678869637234740326630024630710852593803044139683994484094033076040176735169895373279910222302923793804619052519040370193643306113857494194124347113354486241095372627353066586279013578269054180537405823494094644289545135061301153237102529698672503018403861923857879901137397227416157412796629458114726484265021986332202052630348143972520188695779157943541227648737887637541521648279147780659240869530520626470602158701523880693704257224264704380868377870292245443258678804836070951516178486847816670386797546362202383538296261786279126008901373378575841546393285828925069564920232283381171088937378067115913337664939198467230383878320913106133203378354597194724144261431503867359648179665435567442634333604241175074363233894529953608723711817360498269367210891110121206123831949393689850204195157102486029745154084729633217633814542611624344294783482469611205229192204407653266887980958143914717694164991089952167686302306578386136839664696915977666089801662061255333392758002868174929643125809394186668855399388254543529816559012517048193814964071020500235382418188735619157617666676964373614419889526226865766359598655041310792603989395631589233419857471938632322267730748075926709955148843672750166147372584580459167800780014749240487044378784280966730719086831528256062256455446441646734026655935795938258622454569259731024311920144741103053618596978373968015854728427673015302026378993484405306753949669214164332450222121293565810733064934041818189577867083035688367640992081683796865589708152171124669677635836162607318658565323957492435666432657456672244799011274801544378292601396510639201377064320653596630477963641218663038319729583078691416697707370271419460378887376363369562607364132891731339965826416956579054434526950077040546769795174403460453668534686925742819222224107607158565084700104244730572121239232725275610190036715051354594354924629385814492363382286704776523641182745935210224485871025479280521531172521619475683844529789725012673815568740849216072253392789027206517251805371685054375471093515383935577626048665489442091085821333656938286333716795798434610056130463578171604541755300499340146166978599227381938379172637981427339733588311993881321934230768889338472408657210744045677109727530492484403820786748932748275204803404208491953583083050942248348873889420448625221931296126666528158018637507004314482710647538187828332334764717542922965567289526677450275255862771395342103496942372492058281641643531742888636785600167712986768861021158162305145301513463952764193419299619161984979732809172727841451250452596990513547439621377214141152120618730226632713074868021727014952609959119915286225075655734401343320128458150580281211975092502004944121750279999993014384669791405939212948417420212748216950877855443975941676150145584211078202971627525738014851269809461281277473378729940034838713472798458299741037975457912998291506770728687067647791414589171223850248599697677627784031967441626450710143378858802283017605933038182717416100869629352634245562206993777313794665149207558425300491019951090178709635143233664829703572426948680627376799991649803511018792681483889849595217990873888468394116659501921786520294224971176683638871209169403128744823543711397262573786492006741147110727410404367360154981995456448257086857544917405037969283153709797052609120436280738331366671057446654557933008914517963841567509692935120059365787474728856019921201648875693269223664664251442974495817803368127155594743027794607041067697230501942712563123738640212128539444965537382150227045279160638875104762703709650769712956900066389515365201819903430263752338364913521331055409184508669831318664683555494614330386483976339649471108283962348403634453548014450095245294600416500612732944474998533065554517856227866751051466183265662914099598605914286959966581591006440691610839065567081008322150212136097679390104146483466991816938087629106644104866866984927032457352277176982953701789237132214796303397033633662834614291597218826888725349622368287972522461078529812566486202690368253920555900366767209214728973613651579732358141873211705074161240432027332256932916260931914909475376261758284531288076136621912133527069783770188928468522910678742891589479135810275911273615172529970200329934157392549212858316208391738326582108445081224108408133963521487583093834644762814002492936477023669579959221062947638436346120277251784917666375845615993650826031613007217692090494203498071092236320763499129946464534470127901296223258905987746567371113182118026206318877836629957509990486036251941444090887748226646197942876744867281741667282493237384979444337006021219398590473621818131529169823931115310967334620742960774587077855595483913179308496087279924746134756531508264660439996402141540148208349524016345644256143430919526347504728033552873149798173939613919290166911375268600362162849596981566806747414442243129005190072637003298856035134397948516853463456182136981271790363090295133523903830767184813338670710482439247085533961423395356164236780973367501488017273885009858602314208649744395086640286688567912688420216262348108421134022960038960798108149178536978626087701516192283167461823748306856277187603652703162244969667850091613861344201456262796161222444423244764028459551455396759119057195128273865519618097888705368088761743564098796025236096618471971156212738307046365867753872981327985837540562184753283391462190225034142046111817740210089388420472906378954720023284247477511058602957706854483332806862045114074545829999700208565654221063541191338205244733833947257261447848709225557583265935303498182460746980226621867109999645688451097072807960531842415732686282008898179642919662513596320468934157285901912563921076439029673132805111823501009601440508826517642169299746720937671781462723106040750352604628868693936534058645876300196209812224014539983752115393226263646590082261619413943276589964349213561634218205904900988350156464813646247746545216521307899749801027358476048023469604331930126994915968329378592734129100883906417832209701374245716831202829753097382682593863546783639531689851828062504470484581617239111997822889802519952179851921925855686251548751241546112201295211809101719844065490641485955934168255793471549787641118140565523956570251510833552018803675924804939536458343520577757788311782082722339649229764711726874649446171472267761017292593220200276624640654014755315220475324810905385397665435621499166831972197938411290604126085561431286727006507841073260044070555914735888944013170668316065528702849534312384523503281448834257680307534812167031695131571088095553940679533350425754310650159032933048177007911995226276649035064631354157063685516240944650355499842073348371626580583638049881209173612273998244586343314276353266108505416628701461921256400313817283140831832538843520167050909094460381350566290702558909488702312963659243914493139252975197098101367978300733391801525166933067736699702709945293788668226386753866872312464238872747146240775540056643016542806762557765722206238608576169579225512855969091290334175586151394474228505935019008490356240960947137727698766973294654288421193824967143421043248474227155803627430698382736385807648001539542763383470569698787109554321503131329019711696227853432041940501046840106797106455538232476302364925808137529150254342379231488112463982324534773020386190921081195970374336604475268661317930990316180138249204654096810568571238473631830234223285572834324499258798639700030330901210777808662160782677006203154461444884229977037763058653919929501355019437956941769981574121711309648623813219253546054915678979121932935683185380566388309108537567942443578130447856751583157432703697978870915363334669893660994031323842751429701981728851940017116662183284203481471777743821150446992480119820786264301623393343285433381092467802532723397030338154705429163678987338086245293874006933232385646573183377629905493444559772475408931817920835953733277689851563974698166695883895729061417443538071038484527001877337406314222246891715211317891012515368236993849428177838216246431184950662663961803287825336945512713945702373544460962330540155197486655229197738412926257190163940928363779978874215477743596055702097682195215258074434323958256852024063933771060855565832716098963439123759220088108334331554312827681719294108054526118721649558610300184497334825299967744668430647194283447284047509266964398393641916683008242702725236410112666963118417765733866660498120060920064323352955123867874700597453736225853228988805913159820210987475899403171828292596254617687651241990890337773051252257808880982887686098140591280650251556785823576434846508896138438259837867170173009080451157571625859096704726167790342013082309156366088513993905861715811699133478533222991742985338097918895652889180486045926905750368128685280086273940932359928584620717702519962727223844642331293030062904028114555087434502517912160740144733445867371040932893460930734919133042833233958118747026205753951976246630689073226252515970023636802248605633778374916939455293806163535980780903872330355941822089843567562372328386158804253054078179568539215767876014459448817080962175162740959461208011422793696543718088980695300691946664664204668779247539437534734610530166019565610706388731413205087915625910552458900380616165325332558418394929026367313808775160586616590051150833945380306845185338080342311364375964518731059744257025013632277940754742420839324199017440707488253968445587208439112033223072656747940299655069626155881154087727674609238385786996637938693332278421729529902990874311727203453194254763512076395353053914105454222162115432853238268544230229285895796622582111952821494374287581559079998037465371659151516553257935611903850389366885044913448665808603178540085887419169813342912007631346499742412371645701689157399532548997445559131656479741584296925271297465148793391078147610199356473622070593227336096246315605052735233355291915693098373108628394442973946201479335183172460616027869467118625203578778071012143064305498181257857542454266158138709945604895255822127282716651497382145006774836018702283058059546742681478595951295123831593302329218138709726393925424609796606108573190792217210512912059222290220884756288791291233483269668966140851239279657718862211799600271224347838372435177803750082498348327091180712850579206647376334284853262318520177199095051364663391541844764090807415551404602291390320368861024241625426677846602248507049437608549885079072526547307103661546435003924074060294155697243641115885181618630617419338399938510491987591967120391847749075279840003505176452116349535678373251640815955363138781302683886578096310170212976256770505717912263885198066067296216100120364091645544735710446824532433392163734595874921008999941527337004043271154490070558779265750811389669917460198901901550856192057293036445313036286157278210648248426668400772616285710877848094795596952671444362144558886432162233204757243262811288173624003275148858225626959504286390257452227802727995902465926310332022073793964318971663764592892594505247809755662109393745892645334541366670904646984026139184870711651616126682472038693545031051723827425173143806223321140890581072200007588201377989224623814433795987606626665781664196298562019047769534417987985885384623738004005915288726786338421012200659157995304598947118887329855930020137431653685987247416524074320969822002132390469627031323769958390736110277246380953103329645282161814504652492392643203139705193191635231288210094303767279185263583276316556311498961688641632197397179202835239881252232175938075620208049051056702008089238894197593901297588529613194427137672546277184955885272478517593756277931926629833757946559983937213580254228304878957084137173449920325194992249587425238849878937682563774750284669380399776223891735474568667227407706488278087883264950681209212302394538340222538217641718708696878056325897431753667054747720729388212840765415314454850498506559945324290270925130171654807055215654051075861548167329156616390519513450430090232926178548681663681455388265198404332880329661550036265730133673693479199250336692040518322796131686748437440307401359220583328609032275391895913214765652950519659372978301931291398538691532679944925915501312537579761505256791574195689890841716796881778886800899889671889191385579168240085234088499720294837983433163313269975112666435127825650613280206928561150275511788336873283194345831313123650999293290195519461775009950594222883241807485347123512305623482352530540386909788682515501654142514439162773314720321093404652507934539302591956098737426883726568312228466959607718157541053892634182048872806382303903670620530438276786294589659920415550202927168716228673001462513459951975316697313010263831028648715781385165792343256626067474937795257542620632438595313421353241087302592644261149621406800618186307023731944507786851186423347476263013320517275319541567973649904723480355956400432762132575232367715850962709350682464592294794724848966418954846661772633316239941616966620557633277753018561880100487692312344490921651169602133026423546429171533161050769949178239586576558472055083951145450203232136957504470581442903758672754411925064643286972924438972364274184765328977773452015145997521767133550687368016434310233121222860731118126785516123258955196673021962476343611050428976468785152546531248165148988614296926265278193336013420798911092968552758741521644841917828110380404212562637702630978551376089039863932848715373061856388367689350373415052686491944067508934413999492745474009297688935398703824403132181717629706390194271920219674684074319114211291094582014870290327213993699282532900178552630460885218107994165666279708095624233899271193716718637729973194183946164265673532905107498174468374548386590371963064481301360538099635347554430000848548674685452440679838323734011066419825772775165186897692534152023019871002734355587963311112084553999272116005806296342236358569283049748438732273999921148328463197346577511451612186724938211513246792136296962739222123690285187778740525731696154354181315357841998031502658595628207195581671882378026352823506519920295533521839232509512065331044936767249062883841778848838245274086173103981579678519008152463842338246433336243525699484047336684223822321029808607180842943742451702304457224596542376560878953081131214568059748168961318689109613949492421172225837926198944603853255437511195287474501698946789244382564183932498931391000515274964422549998522140212748943696344467255816848329895481225837613206859520363122137434344262115281646548529906405593400648335869597881832845250949524782528403497187818630075917325329086814144263271470608207612714221513069823681940826478452271342462809097046558157428355165411285910876642740150311552237374387174098725781780713432380465728532574048730052907955596042371110873558426845710435429863209904660337700999740907126087243931173222687217590045749596882607850603500925246274390130235469499510271901483091461616799283833279815919423313379504209774222200088557628809816437589165006265412198036075901391342189727193048427478718126568150679310110624357124410718862322474300014483417542687819049256017708576902783395878781557434428517746838202171955599060385890596248078534772864732884501634680239636988809558646821488579232648638564014161686183005310630591524325977594847722910478531602680361839413323691192181816459445797179250122027972466594398639618310440229043823318652924809575473602025261963546991800082189808513253744336071085452227491756074062245578638647290488607590235488635013747833303893752812395430525560114821136968339870862614981716239595578411397324174914787865081932328143296371098688948377551601082089997097066899671942805852630484432605009752285896668376303665545778935736863578980185384498881894788009386057501200915979853543098948306796194075997497551229380342054348209121096084186546782937123235596150707464426282275621550718923380959650258145245970607862952725902673081787355592054282540657901799166791377019388294918428280765200017233445431211219195081653743800533084173287426667817571083059749794528626045861580954159300474527829208097835397128642113037167905342156403357439252726752649080734967206611964728701108990952677439132630327008486249924819946023333703102156502302389709673854535432187659202005694001384363990053156542893956348041011796960206002185927463386865965082461472157022592912081723593601928986193729364757782870539038216252516789578616681796345526309140523865394844082525390931339813856061784053797064045338966174308373719876268710600600907092749790310460561208740414947377587827490439602082726417042672192702396241937122351454721498835309509920667616432434223764959176706946048002197729586230906016004523290088306277589046607023098766370623098006220956896320043776023312520051511579184657430179153723110463983221801499150479559222777693004503791553426847000297068797501769138061408138424840035208214042057242628292632233538154893096681199457887016369567836777345679537424551006683527185802074099466608425325584749046125515053981216383769099012709210959968935451920448503771766469579206567445218293308594915380476473105665760785463501023903413110071164373590666280562403704333511210110121984450184069365342907394653517130349447446352406277143912262069520374022838379249142059624769499560866355872603142334572980616328117669085386117057167828096004556476268316047572711761225355068622448764898589714340664514989620741098988546593788384255679331432929899049851833522243345576938008317775462034084755119591126730933966043489260705288284000328337750977542473020371170086468226796337031477262236685674945591518454624786212264370158741111369854548017550038251201397801005897919430832448454264748706963866522567875216594980962146051874400135206358400764407105343534224873821044563813095186038152166689456712005886318187921238588528701704481317105511541058163451536154395092819507146188211460973860933185804658655394175768676219748663148958632828132634229115511548450430639165755983352227028655985679041605759146529101216133199275029179553904405540834817391110859677103395863304632864304940318048776713795554390656182305810155596995987111192089305107662284407615551524562042201950630004425852737394950012639857701094840663058427363595308038324744762612294084587146800593111014372824002760131331316373380833111976650052926529847499627155067538420932571753604602140765733378513033013661423712651916253835027964532128287511403821156608991852980094134699222827753359339482616372499275491930555474727950241456662090970565375417806825473371292142848759960236898020662859174040711814846582632729349210763702575163766247397016346062781275182418402387095468398542133849958090394744432612995000968108660619586374346988593836124265255214775828329495187311660850078685247901804353853844433284784751835304253921499183769616143318601812544060386821343425598081859133978800208895194487283664913147919513450462447808196400498490949198866064941676273211489508452945882573570908878075707281945765183181894759550901224023719935139789056076983982672572917218719608458557781952417614305419281400245639505130482300968229953634853116539495176983493767287426091812527692431539975276112613347806405044845490722192614829163731771917140383712758768553491502354566723881805008578488076735934842758880209109134130788721098737182555765068152458830158745558065944027824955182373019145322658576023507391755050946305844208895288936171650690933760522617385183084815611094068955493624906969455907198720378007328937881400860210761053214974183319600625164977763754230116160720087606361244154489532760530290355900507882706291003743339937136985462550253095969617383698060260880182319254685846720082786570288933241436392247575797724454799143572937209294747155180968950801086713379873065821559952112919287694528907004842732795386160691444685086572313025701036696226407203946708559830234891661402508976277351694219956488316600642085854430959712508394674189850982379366862147077806813462918239746371877031547668618147760611579649940436087332244542411099038261032468778734974058938965068698199530270471900701874269238184411663362274601202333455126435066264656925806706648502047978742731664591977589317722543631849199631919701193995534575749260685884947217038241842102482292178597498231432165346726063720588272490642194949959592327639743042455746797433941790390417488871434518138046481165747877729638254951709267769303705501716699699872799920578170961949463285271375323497229593780613051199425595691749701393800372634231829150556942055206001620943839310927433335520167365930894048996861100427999247138010439293120604955428077368447697049671161982067213953697627528202904982201708050504070069585714461331209016123858258657490126452646715332172994775990751124578272842449332281240398898361069189731839483522698115257075353046427402872436277944208388417123130757409293827278404385228504159258902093627251949925993652208460527708691431654778102959632752290903199955463623415697828426311814896395972176381978348687531152944243380044935284252649540077760492073727115808405446639708593374224450952274808219507812673165198108937191338269206741140416956462375004476333375986900937205286730679554348253501941517456822824376464926764036140598755562422471229288554632621308041673080071400556039253449022300191108606109627385835989193963096933982557941189908291040815958462075511202432148026722052698416504136190040569369390155043177209583489784424525696377959772552640549981564780375702033232702713377797898100035086562009270087627625808451125936591363194201937091203312576927668354413383933135308105340731334273732887067587909953390980186055352938824977774740811805745676416508685670864173111240873970957727566923701036180172744490739617089412078311750312034424262261943165798203002235350912961766069002662840939691983862240093979468381800866637994803206116028219653932907017838863223445160619020185993681341313229930385127556839562520494440414307409084582271919713470992248961915691029830983835048313303903539742421172084553662576125191920660825412800372245670017410495928933241316535089060114308122617292592508036938565251426234012040661386428405611177676272613774750777750172043272213996144336152309422595099892980181193427321785313488895348316210769871008854407917439872743954840050971923298390790007720378885958086367977954525491022329763167969728770434230408572474192633017519780236022002346469365766815071862299523306236306670014442664363933477040924227408746087766069118076598120112697492399377747321963184317285286068309864263721820073757955154149063572443706526347168212004984167285212324830259605308133458537545288238380705103754820590236189062845496075893019350946674549178121109797675029401047932993115990846098016141186988532408652650917139109219307264851246504218496694694604132197720671654897188587182979564047616015361303842054627939833339569377055659387287081645366988460149977034193208228804865518366968427461834282951137538529998938612629859118113391126553351948066914964840678724218807440998741749692070529843410176878346544571499820614722274428999594720606307764961522657755808304824606637994886593842906303035108461102474462956976540150218592480454546117419465196296323808934086983118151773095359539866471531047944695128996153381586774138830661992467162560654521805580249127739326133989780986280752038959213426878491610658462976112798000546418581770352563571979267377207276988320803975815983629635922187619939832824102008938801975842375888659333399011946148268787059772870811699581396913863596978356251151612749127745201526158006987977624613210333654070498123811408216381164050143023026260948356295350554022239588983284313893995457288016137240592744254309741593047843234312231229816045075979034060796071825422963606062370575035522353430882327135212155675954906391238233405823406512320218114172155330360891854564482597709993159480962516829848352169626260616324460394479384257690546629391614258026574100194920583518274683890378007798781432974842751027391088461876881515083121826163006288023267982664427308498060694773540582387070953934011960916025777691519927346521635857575166989994209034165876402470427124247250197834685514741658815089387109274028135180109317791515207989462884614274254828945281918049555256404925215729501200921160036520112358774316331701795898158531097444825325631627949529609577989099601913377124258907284325983270310982926143908517281478456041903551652255682393838127760174374326591625729396964232622970785124318869253132865754816744344662641637858144607448137101557167892482029996590350540123840852543006930557280860785655477471819946930332396914597524123524977476937613132009870299126758862438327122736056216846674652284920335245933527092519493828541545613663047654472235480951875190221271262189985705350119735871196187592245253163674240470185127257589262975205426354717394029751982050191538040198317474072257503893311259100048002950779948158083461566984640747154950500152405097509726655054421633953453463441315714880916965381727571985002970681362303215063746755798688375100589092295115929132315009297226898138487005520918375454038911671906458030087708290880480473167533006329940242433788980408437941847575669140763670525646316940167041674398377156665429684928485205170059441206744437497822219765531340161953468950960729105515942451894866507249593954144662231453196061626312728521258089413288793985682685994956321800972920795957089416880189053819659234655712489082081191609321643076161395653486343781224812855195871354571312436768365200590492598269281742904497471755047528399466467765551654770641275645215459805710185575458862434840245470551713297020666387440035835533964950015569628085984695216203783970562147249926532934515491915434281500273462282229538186539043936904170842637065703960552639586621724253217342321130219401597796772483981506167114185962401321739250787180262393027032221372711504526001863814563080165100044434623385829879076165886824938708008141689418618973631681221794657368554692323986778622977555126551644464666889181120448061970023405818212397005391547099900075153964902593439373731278068006859305965185448072207854850166509335514690948063374695384173937864947814832881851493690560981030169021602907276663172252314650066846062296602855238176469728698305800781533258747797499472640456030807823743333334347140151487009827250061009006356549526985166759975976393258093666758348749253440041732508544785541417367386908649776805801235217059121227958923636690799129571388800515966280465353073740833387670677951120348362321667464987643774004561780094806363231024043325365250933214847390597613214895176111507217484314068134459694166887523792588473885865129319493033244032431654405705736842005253362172616810926503629034323232629991765645610556088485336216913060842136664904358297138283499063644883812394070626798558644992141350968556724074178100702883228951682536782775294681578417910053449948989804894393260548962832197280899398355789162621467149801684341431257577866176959219485103571068330142200847331451118697383365554643082152722337096682312319188321989308856862700531534633140686735166292273525720380122883293684950213460114930351666708078434825603525594690912294258368876671757419887059132448656297409847581013301060493445837168642164083380360067869696347448121506530167208828725443839235795365881491508203800402884061336023824019967778048194033129848382432870507364833548171914055929620762530458430432728658171331697943282120416868388456117331251828284926487745746116858039974079164685998529984267558157179149413168792889302841933116908943557447943823051840369717862810531897948304210739983662644054605794221951219094282422926901773487288151424465177200601773826616285094054823016678621719150028530498638983547777152752225152406375223985205471878961963302498120901550212265226636014911021477613149477144029046886656865994281595589353957068772527315867373819664982384125781920144571265172491214968285910350929010018869924377026523880081447259340307200479566087955841144630431995348422605247232999684141715464582480485985943343914942214022728525083927080538492401156334302067782896230936632616371864626355281800645739748725000999489790015509108730534242742040460560338911406481134028924494142917545723087844312737776963183593596726240615136950180496097699532187800995872174046738463360103309134722029713175318265426212202959252019109492291502179914109853882144378209565662654818665446409050991904926139938850523415313869854186909650922154447502278412182488731591781148355436802103395455224861236269954675876516837081151853445832987816161760792200366155947211258814950829990096022284521383883006604757595000731867341228582950592759271926105493040796150026633252961313479296819563040542281195723535608317334555163821787107433918882263081414081362952492321874021624148670978646149009911535944919090279323870153371923886469373492163669199087837129385299493828147136946473261177634050736218462022747119939067259800301936790131826439106205702021419148933748379329207045732185915276285572537721972217564850141143799291395339284454436456503101642205872472515233512209941446801491761425933173838765722568394444677706160773077709784041327389913934536232097102875535443356802327101759363351082712089358597333092986176724246062900388436065181021918995985960371312882481377168169980111169295663979451881754736002596015480976610769030607743247668331572119851132633024134738160494381656301501002136309862014681822064714040245606909787502226729428501534987273655584999653754006949501020131798092139403260744624600161532974848675996493177491857750019456297521507329094660368848332504832542244177288846229357013177861124398700471218453234025610472240221666986646310237369978830795573381476436415935859760970719634317022946162988576650834999581142565055196432973307591133271891526683503461048812371756081526922067255344069316593151187725356470984311112443221153753499068111305489483284917496200028106861716001284355645383918801939715158643210240674010728148673972098033584210611749160000473508752310181165648503406906702901392310667861434557911898003533272987595822862077103794178222093255826056670066966388881576091382502737806518327667214691149568885119919988307466855434682299033605816445787790953650642490280123508428769912241972577372880752787965137668843108751681130037208990089444327534385893715200002054359380515490385887413459484612742017034846917098352524673534088719943254986988997102317677515219497305490897075993755814570452188880492043488170409445319403663647107848469225531524676046635339048056343701622929411215140591132384160016585510913784579583346889743741795838514710628541563654568499600132056418140378991284746977576174113512152234772943080554290736521541740251836850358097288217176735123870787281255579206284762117573165474625581169263925698409701065045797624841448801200687632825054651156070546217847798974942504926683169330045938764281277603239000110950097581531463211293322786662970438262604396323370737682026577829503374369657171255736919453666292369099826499171270281533341400523460761878872071941572347856359936763692990197567290109637915623245633067281822142801318862623946882920372824452985123503689480343152128054826331460173239090899639334548275507888258370617158739072040216271400041676382113951584326915357029983114796130988385679343805526964159619483300751342794701045511282089488939704040740667541113201122371720328882297562126915621247022909561170489943426703095172467388729043481696974027767933291177982504198128983449100881343540898403704833735111160080111073185945987325718788129319150244041607656980181718635358523883730862579338516661210772324589656969931708413285359319080937494604124428905262564292324561605387073454343234717856862775838363764749134575162158904530394265420618084422957012015972396005736819089222698848822117030365993519138126592831268772864591129266869084991177368223062101370423785940853210059567219013501996725609848725395925265400270056804987288435081361297517957520836315883872954622195838555289072394471123966940795833124267416487423453621493175904373047783302692005824193459953972832928851256062405293448838185032103730820805486146863076308911381991252923141478829576440360995244693963833701209059048732333707905264840742510533638504670271266238591249991505833364539625423593779929382145316553634732182674000012358044761501331151593386617691133526368873498883772397181732832272043978314427888829512455347425475326587640831578639831148325367578742075164557709496526252643154990831443610822908678397942250835437119499707469304376131418814966524300298230069738498095856157550282124156866966494033491871764882502690074917877957151902510235330607554467585107776573016386815321881019895735282326994371152195360030180854982772364980595949328564165326040557518135121091072668176036341477615985813211132145375626267995876903055325233171560545434078429161161321224640227415980336728574781449368962261257311135073256578822069586210543534001326340081605820576479585744766659936595246211990013853241434774230668437595631748366919437197874695406640680283709871293476408417852380200715379630966400726091904009117567460009347853227249935441226956916758202573918886609443791641153150104094649235865513860991069156325540555438156470477401890778123951897173575541125135483533922441093354282417338666084215431865884191374889947470312429877835372302233813557018897122675859241818164580337114881487802916318351735814986790302181027277970281513662170493709875119217288535438164017846402942198750802380417718595593106748193330410203525373786362957082893907733608347541700865138713884739167961545654435891164035442675103748624742402769744273118025325525657256714738677093801103743420676932537922661679390236260306578252689525213709260879609463414310326518501916006056409492946946109892277374908046684392189719495154628138476332387148892540078887917351225872240761209218071288079503741359325219319619562292154813442190478546473780469346690082216731919503013433776231180288396231534073138434441500919628680997744270964469843882405032442177051605158177374479179689356856936013139263958728989276050293315099838373335089226854677435032190990825072623373724197669397684738536679021151790187494589948018124553510732081165808828220925301053448738770540582483833237231605676927199175246739481729014389695907553900403229995438150877279002671052067930013416126637754003384047652427131110426074167679304336468585304879452010133265477560232754583677540798278619307711043997553505218609836279644931941309171398482870711149750601336636435865205462743229966254118945125969380053755248605478963666959203937461193508390481168987681952991930099191606981221983376921369708204768831257115029375219180751052677124774540608436994063761974492183414814522270292703289734432262478920697318296755379931565512298895880105452238344098077928670282448569809804095066118108264841868792152534763013930269619355255219241559290642584115569479853270206618044344382458695114648805612718642889439941359334527874845858029078883768638173364671004727221184475616262992412478723099883876034524496803762133730360827861382219964428041091824133037253365175649188314413406558013927977732998689639431687608039618363149237656511569762467979340685058313661143415005687517135615821065055525338583093911792285819879899434964186798184776134685460967591660450979935466724978497398536131679103841447696188874949336913484263573211217368639216759093061219452476092966904616153870673431710205944338833988187834494251188257560082792405224871687984628476566122544681857488822232350187828936770465912325470978921471949185070027382186427285665467623748801363343146774647981322057673661512829675436372697936039505683918226489569011474375147836562725724689611863993881740436611354649443144330896619914047891808984494913022823393874302097516177253944511759161375260196587076834702157933732817164259807509902724747879688058052027468930777215414642463628164979195449691474145748637775511315341054046496320860916534665096545497549845170777936975096622662134201522650253469652410423327196454278027422652137495549404436865173907272077709511130624146320704304071044854836327841822286128354743741167507597047653529903883840021258351988271474650115804652200286822939440469274419529686962616196375014849114837616289662896669813565069030086960591668659013743128227045377827032463158841547594839868531925368665175884851505758944215668958531827716715068580336087449064282193948286259591704367201515307805718611196107211772896930189103470283064286925839532504833193488264433941783120979618563501430771915989908876862538169835201987681533954274948598324588186419136876969573402979112069234011022632643578637111991200468605257858405260621291327830529250090781387612993490452355701096875255069297829072839063579526417178856107309069880977078228658840966026824112965874514966288607767953106863980864117309682875729578732386943294438723064769231828618643598926293765834471873470620393640273023084615517219835223329580896606898698321934999302480640969959637521296913878725321871115679826504556166136012398580426090653244143272482732202181675040311244485737880970216478055897202936118932728256715010696390444744601630143742844162715023916896365507576844631425848317872789790065628687585053481599159982298133957383846555371765186756544300153659230921773353533956698550095840764233708166786511160863598077334799100896738183350435969529806926395052681231435810641251487743367057364243025534892765600065510174851893544159127863791285301649424257837877385070081003549242838996387708147822322301734462859637374982397685363927349666756959348922226506629499048275186262764828561878114493222064829188818790143397409945778668346927334823266854614250291329529207745902385873078422599293547197435046314796397931164706924990704000282833923398003493364197804710775590602858265144344183514093414599312895115673304501875133795793622679453811775913406390655324656597289404687779233799741584056213981094366779020159360651552168213358565497598451870074352827336266346280593427728910394721521410630698085581381079230689577156409603505096072322314478564733896546255199476473465193215422192353739758170229676506476483001696227539543913790270598534443107817725412305417607336077208186950159406012762720028473600845182531630226425891104872743495587509252396445637409197200004755277048371792641165073714387125267522857979359611292753518201597950891849745041415200946814197477069424790084744962410841280832431733399351284852203206440162789085878660620081792466806167744834233693093014701061260201435742381406703808408774116619245708811507657751472024473002286949197841642424568980723803563186353433513269223163314903777275943317921184639045724902485560937611389189402247120738272607536871833336215319357403494224483277151195242849518402617998157639023099762729773509202079944569436050725870433858214372215215616803082666780952547879494236407583296833255190931136146607508211769950380162843237576203863030600758427297606389994227957387953659843488191603542289235388549533841484152510201850076283134422734591493673445043716466487692331560421369711717305266084421407502379971820088513686140438913020648253404229695421253319725221115753150283682302893933489205223541681631217259173357287142303999603640445195015863407037718465692713234496789506921658291701805846720604253329595586398693484637052907779705902134905764646800846829011709114729295902642283056160210629040342769051154798817188000932871109141607989611686897584799750882299875221226381225623315174235536338131661199964136501040876656729178100570966510070444166930990015045729649360965500614076398321186040900772961231039964180019070741431483261808897953681326363696161080541632788549203771232954362955919914074277505254899875485130919967053357174590245830022093530223996503639630458798092438985085736307220280651143354827663556080091433392888838009977810494553612099762391567911816838122339544139226985785737268919610742677827631651514906267478334200603411018200769878445421629905026974418935755314042356409312363642009927202637313879604508267662269424424715743926394399884603766522566014298814729285241832050896493272742227155443390305138332684893472405623223537907914907415251653121069134341562973620725159826773410600590935276348882010382778634922921729915626697956758477948812836584537871835090701541734981990382931712372173917456808683897989723982308884450012835903107569571670168127907116345607045181132466678779164765589666678693052511521421512955925916026009753275212027365961675389585425257795807827338153833756833007816415678208547005398839408121758102415795045714039841583696989733613259815641319201478363213728167476437184773753644065198042985854938523864564822847371673137807444768476834285086156300069485705195075822197895291782580146327248389169705731063132098198592266373304594139780094480057939903303660592157752891528137171802962208029745965721298717329996558854805000170849109741180786456308340524024750260676869849511758118514194055301068011498558250581565453217687198042804350437865407462635253589210596238314227346830772669343142360774844684000803839855224376897687241565266431963101824479723977186779411145241089861822862857319566607319721187915143210867139772984489697791779555602139896350880730154908470615411802800684159671227349803187521514265090928651565552016075392999966327278982417330368074866327788681216945142846305747680735228772148339844626786690233676184434849722807373435193080729063412283392336987057411639093973431121565102977256200399009936757749280861370248719575072530622830124211971165180195950305726027375752115851526551327422621052160641940932938622221962663804174986772229567529642488472725244640106550374391106728515221775636267734294608830926544151731754992265345830683383641659621066174942954539411181583307698381039301031925486137583848297058557220832254987800929421348478944360580160791982434116566813795905945213780114488097426487202319689951316672966001253250961188078658980769982442640878874702174680091303328287788077938117138066533505827900318956915943314665682883768405657365691595610998695681896391993383674746368862219155550984669170689852043973799386246226047569695342497800037554205635287202100249706900237688448225747233971385324741139124789243514290074185098582345929775629954674761510636012302593781231575836341285815479893205762410440121926068119589718099317301927257692763989695524005165541473690981190013335275838976204284843216312274581552938120172526353319448136122567300128677868519421344212159655697614534474276907731992902285034202137735515428909873681839101145401336875074210189181224069307477820977303557013368709081966536184371494486754180955857499944955120065216263920626976191756069676173225028216415446558889432821121925270221678973211305303344744810791499915056905066084469005841127846913321830242329016532381973556273875144102124664993849356495152363999641995219267779995471136435350223949055765752873956976750175522112799391817536793131510384635502225375167305934200711629248186425732427665151984762072862085924424833399968135274139994426303620222518221477335031019951201890210720119414117400080645164821794722140251713162133484945502868358649525820910653076294077084087278447539453187282686904605269859960310923581612335508368840609484555276447831180436579223185279169687335138298953937026571907137063774794424512751952058981766683103975613586258563027157903127514826123110902293737755813754744677209758312973479994967978285602064256351495213631210034442253291068303219723029042502117649192868982921887433188032999246663752499155403621263105147664700925758337050493675591032473596648181178700520142410723691939958931089519747343952637166033009281163691674460554961476956333817580790930271370505513915725970975142712692977407388902141737341536544223821014798062457972329920691922209333615063180881471437181873111633172260227300043171825730293842584844438515457558297283234328975008681474034734346829744509723876563873701085650018714962464840067031226843890967382575233373678085471688350839422110133293874025707442431388349096519708609535609189700627491161651769218978717841132339502331236022101712712077412366169579101368215808850533865663434678943585621744385323994553408637508662652217706557643165650010082796412135344544370899161776418776570937703399742717532423619054327870908466086863790265765041069979436354018893842373151551075772322381846290212748508098970133673914005493900339011057004873422388733831292265856208087654423135937899598405097337828700753737900792807265837289356661653717437770204593384312340277533025044533165119300331980269324397306270330931535622437757645433218757014442207933228137648583977456966921937480778273912689456860080176514699517323278864485937652856389699796782006543276959289364536106658352248983226875382646221474236660194743858769013082229916482962702473878226015756301099802872489511735605360899333644441583479561907694823476353665469821529490643652750247574058700745022873683999492788694621267894995778065724812676225641882140568946093039280081355644907772775272895513427846425017704794131749561476213168903325001550069500253738117365817844238134122762108446618759664738063636966970646985350344716667042561268188697699329177749495421884777694627056499015949188621735771644314274415784958075672823193051490556721536689170955617071200825999660466185566279846028602677018723916194581502525778950742330731090439596984832679410815023989759373581697895304245294265552344067112519332410683797469013488581099211211475419704979824945988797634198448369666500640670876724756172336119459093091584375731572188679918623229090156905768621346556567085805710264736251242816124231127405719239337672841337714273793637490756015420400637974543587269559100595826290086989215870287640437416360864667093678240865512493021347902318543569334588195011303012625112068591668733834292895123524244817968419839939364676100880273635961096286335931081423181452189821019674080425993038072626114211657826708601484308595565775632401882069768555985147649802045345405054826219009835339014306434245462271953140664710673969908492489088002665159581188404684635706404347396405224287365440328628336143004382043795523183703510053408729713709070350036967966450797175193398347632434148911817952507643246338001362909660546202532712890296341566444018010706080412074656186370491281356994277748381226860072912266843739677285469757365841531643297156230351681510566898862145569034831702536349335718732624381313267664459897705100965518140037148888830139515400418855931283235999640302955543801828336607084572418162813091471811353466067347020578781678225139023465062790606475803458299978469516788025545117828921419537555519865371896677943143434633379650514733197330777165287343438272110748544002330736931377471923625900190915673260975895174432370588339149744584671619249116203329185121765086197125012057029924071316082741354683485887581943555079934046000319961845552037651034701102906003356381871706077718215125780056543597084778596994930083900719431756820097319131961449907412882539163417008086331899379552226962299030987645439869257044856892755416747102533161643266326890703272595431038346520409800850126556216280146343396763472195692857105986787329991000166023710016367550808248426735429980561646429018455419428127092152173077049701041148025492354486498876363410960522285325550135568282244946913878450310944291523175614838703067126296743234193617586571034499189690899300446036256712306525224841487332896209545200152457345549496680671253491689111864311514365541381591871102925653052897161557070704312645824805395085498713585177149275586812851622723992599113982269313734007620625404106503548558953997047860726555483514709770031939162635953784084072463613363447398414993860096647911131448827319697370220805203162876486448193614774884449278111813534305330008183595123147035185615048692476746781798858239210338945763410307010280767696587701602555100158522093240525319649125004440070984955685197979112547982810425945781824929517009261397780184566392424078482565224752161131496503541162619891872142655250376631777806742146540914578367637542367864083203878485395848483019408546030579244118347454308714551260362567129209853358866503378312872159816470635834337568033908788639327279863483069467670674463214780453893507568355234999129984516379373913815024884365535621076695950202847800773624405246044434097464717680511836039154575754764790465864367199967563135034309771723557241593190090323267111668612784039755294258874364457469103815570901986117466252171464391671175779259920909089810074309141895354617720759225355472294758542549805770455294217042336003972971468556650219399418503794659294335339080973186783073248061883014393292195469106645247183143830450159894715778471450788604007198777164008019374781935371998207132557771181265750037180201304364786245069849104379169417291376237560283189254591747520231352227167788609967309460485323099706204842531704491604374397527972686854414362206070854790693125331184343863478881938686996272826939310547124443141959034038470311758078219671303183163493378911954206351135864964394730414755711296254142600903788269798569075561404670531750829154794145194680249316992847593411609006717200480724779718655539014665784080143866343657430281400452131309368902882506765813900373477129443068295840304717466697304141921380831507780539398649558620947857708189569377953684550072314133856009777163817316524328800331240143429756647654765878825778177097789322661515407999931436995417988839161309171465379216838675495556135875846834679497459872328553192019249290021716065076302221938249013466133066940997937918762342892181076580609341168413320219158157584226654194071155744475471896312132807294754216996698027283419671845915898847560000906683576522982065400099360593232464769843785518446444300146268789565365494311138508065865840171582812658763888368680990511250376463861473144540217042331558863015049258885998938503569698162202780667717760080969363837131413817066613846972645841089804185903705746289964227879469596907032776293862029886375702844742669119658670858594270524499632781067581266907799270707580617703940002467237992350806252588240290273865352242966965277387950264906667770100286426264406366293053343023539159634806482893914120698419739775771926487094127391671315594300720200434996563698739132383463187722205966272307936794820986728465704511645879127913995468086635123325230499520255975729280557787282473476343845867633362213093210436893587759835151304588637652581120388249725061087140901799242729687055238192841181505712033803908910586666616917890454619778867434483945872923038868524768146827348325147610918030464885813497255156751039702594831830592926430171572874396359493295542481908916192725370721412019258261808540306462458914815656860562843642852101722854283893076579974469408609258099124148847450407143588530587878624783431900116857097217425927138722457823068005833236461436962965278393333758750950563755430311314644685661166144311239965760781387811628359040419982906480549158849955688765348590551325242859246830977671361099171748277875439681879113251496964281725485291096077946170377572499114029292034803193653305989314219617314089896142085178601251901010779890607268127609064096097656116511817532379681536419903001584173580333971099396357000531224951948617381458261966584682377133505821436947879488266239837425173079414229619486595552381017174140672283899556959191976050900070996661178443504176141141757586939297820295635425106576646087867059305912724959312580247248937380201734319449070074858507686284254304468420283837540501891838507316378816643789837840416335933987129297278807177639272080494323246239708323315123897695949774826736471471252405563877478007633689820934748015916855202887881700115739635413419885960081717726956617564803522484768946651056545592281332881027270344525047623914541427040166785899760616913703738497126371975562310673828182609937995089801949019670165280865292526950215479586616884919600032653919522616767315381015919327423619654522076010321790195631402745859821985113482921704664825814745587930445012299401158754679418772045786910082044352303834683713669381056690888488322059353934078700801427076645665990063628853646100431867532869771508008494080750520134433194932430311839026665512293837561549804290239161851825428571776047609943412215796623676820189896517141921265385617146792613826635333299776847019922693971502143416834953552461436341668497874411593258122270488679008579012084055666243454004822578643329563908678255866137444655968359737350655371118057982027298411003404999520185318873148920955030559981650048526232034475390519398315246324980279906180398396339874312786418300588297342110987660192201854300815709750310210953271469956989957375905319239063927580718235999267283798173938803899579411061485826923650712702583823605347676043206090639156867325607956792826278780593642685484830527437754219649268713572599456058639590869337446153235978537609114529943143197364560565135277398955945006465740487897935136744975898999552120962603941681891660675233140932628469254944558686473974491835458433131373917844679579505391820094726237516113778174772060001418496924901730510040466908853257993833390030364484271140097875995250005965335817524637200841047966332514780174397463013726158759864992245919605603760320398484600293554311947841993081574069617159340434510752456602989837904979715989345173409450682065205069476329591508445120111135299164256737587098529515420274002302785416042270068654379849424176761486548064345257558572976643326087657925060750137942602086490896440228643653894617048117534443616437719176392646481301853872316629938702427823783762661505704338192820451512846513159494931589597849840979582875494034494056560137817939477817490975665833855361474799064478447796416983327553842783153411888898401331316233419369463454604519930183260290612949380615007009367701671595297674671629407075314089603853709512944405940417206513868791996840932762151229393959389056961413521564369857008288108545725688590195637229099829649184675362767121844799303117689372441752793288966035538484666530763511057190086332776341508447539823412935303141807646709330154516275489316002037261272277639670835416132118089293093610475471916014350454825953205738308804688486272117977412566625109223077881785844620302330017038941979650924925842066448224777872184211488812351681673934605049110776106055746953640693840771922821729125847024520016139173111696193099627903695910818088028226689505030193300552703880090621158553345231487811352168859696374013768858377795461723596962237075836465808421708039652953993677576170986288122745453109278765676920649243820100895120215064869091357716707269300037909677078742736154573745173389809829015186077655355538519723456855168876334322209069227620715498487919975888791813214128812221557615818953042549414638237429886903826693740009892169921367157185223354485612179334517978373037393347382084693938280658967103434120769953747693814576514985439794226384167972382227825187742327742829424349743346287144839262041145628194795214596522846021750515212676656763935052732684974435514766868360684287564365381862647572496943571523117997681899114334505230709579858818504171223854259670251149754319026371872143513859864157324635215638159415969103356443443097240207905059359616793687666618825976432750427554735237927108526470874269332111611169062368821292587889168382009673385391997423672616549259644040921925535555536748017639917330676650645862058649025215197054479989930553005616116464513143255104089049821976078737421623141495786544180352062691000433308814811758976627184572722955953342738940137262649707429183600955081235800529882765716465362196820778924416359448712734769956490141577753933608521504417551493867940186851669618828236241400549134091258134624561348026085955116105025823269588080249399292875140664907109700303032288669699234620465166715322346754644594267197063003235243088873473845392036176837997418124984050909783235920088277527693733133695783784178007105500976972509684192128627259962772348461731737389037353398962501140071850054871746236950858296411695405193872572041948480897454652457812808651132239392195556806703060623443369085814385078788888268905765462483796142056806161246034956803426465720747930655366928319797390871823550690183227569771810408143921116364933627705368700910306619041901023333624424300820021636892783601376920986362235333905214077832195436647815763644679142800759589180253270035597195349655439415209209610810305480397454653454522425806990472741590448262785309061491337720234275922692684228467093899171772966197918603400070075698613149630920315489380825279678723574294827586052768118526169077891340149080981082362862862371228674353171996737246462147040398948878640256612698927271899546585564514385131485605764841757678628955068075564523123249807174524842911331608438641146077583057549848914844450214145438883046721037965625542937501804630532783808550289509933991452716016108021492766876721578378264656540147267897018574827334676481367091820807510715271526190930012567909322428322542595849464102020546872547444588307397946813159949677302105350401075678113798695492436078977715557083407423010805562362034730359001142491721045944951445046423454470027054391765376624705296186663992499749669157296165225293938819179744857673103052783535407934777980789421698487307531691090197861350122175432442844062728815185204223804218854585006283810894070046874503995685602718872570364686519470168986724922861951488668115143492340395263944843354106049901469407193294175550636675519373670985511961452812466995242806121826541176295488748900655494884155829912276593561450495599744878259482211212668621909689908212515781723286351038129302868048040905275739977770921367149150284223193207078966672633315260062871588526073384060058499788352933278453251669540174235264820496142306977100339869212991828409373451789695171396951950507326373450794040301970248990629971695581789101152718408686746460807444459421790035846973244899965399300401179205634170090704422219276695874431777793935694883532121427688893518935217767236074282546410452972856192248556952402004154805210174201139944038829955797409503560731023150986753645177818836344236986511189116749253089860939358992263750227317288142908365878144461738458610671660966140927160129443679060890925931238408734555912333620351015485723639695912775264017867617202967692518049715554983772608792514778926075639411968396577818298093125779530976576736429632938643560024723664621247945823182070675043264080220975050037230300368180308656996614902317233258069318647112647995760717608586638505011466751863615914940237341085664812941448852240872372718832715704560670614110565006767253089888066140466031948528908431577916384545655453240329503927694912507738539847989633510625807809943546362042756788047064689464440772529649105514378842773773289412273297675220199128488139559375762435817777454817747959874555945901689762474283650830618114459168249396369556492476864185064384405274889409514437768180083971367484170630369271584896625496503267087687585666378512521361109895052158321190973093614332105302345083774081716017550554782905169058767076130054520443725892205805430880867127335891232342955876765785223017719941239036814200677443456103136543242130959104344253402091466835544105725539416072312217269664815152974108052385461034148069091736412500828865617506852233650091458346448852136128747405280683420997976768164724197159066659524248956561219812272230629571172321835907644586070704822469582640851532538371014115229148600812288121798019576802342685408281624386503678716143391208917222623722726836898703960711164160389885883286572017558124532119321494524885129594626063499434021800667220927936643548360260190845235607366972773407695626020074863362333496198888718611500784420348170670762211785561748671001750368824187473277546111010152747292450062600852162840726527188266147547833328054643789058017090380508030085370359726136260377824689955136032262202315563920226725433271212748237405643298656915795208113360010702452825506956740396822785841861442447447340734511347851845791561792422541129352385208029604671812021201275344493786627151860845010645425270990872707503857158414048608689220993733615339768896465924355841663509340377553877650185125574849385037358124741881716930411935051431641720694954225153769311347439444877345416855452209692194588930084242060156578641348104366757023179470420151045745677415730952355397519422119008267357999765799090443127969384694641611145776823924949298481428308681491137652802502340821209325006578033058310170870621799881713793641084123571124022215584344204237036532701643328643429149011810956596342561738260076667315023552586606186070921118360297959133388657728391280485179429625953642645571826482930340350772957641120553808474747788434297186409207489336663081943480544707746839102646447436024776778901442378498720744248286833216865488979642993680850313240062260729131028072253412087287977481544208718269092479541038047802008217440655386082886607782955811784968055112964894558730871768199255055152434860356397813905727059551012097574760757426365076098843233399174424132637860333911946837826051382236311880592491625299886790056186311146605931292981720040104382834219515155294080529783357348594206186558815553883984261942448032325227108006577196123804997256822916435975416678966358244216618059779009595639402066350480192951879130180522097298294146772500505233857396869700314027817859656871125530233913138547645714414286835833893944148723599272074345708168106597677900651033614001122966869958408269111463438054474078343936316795555071579149933863619511658545032033877539331925194716533577557128581076599786643214902313734516812182993871147074738370654117954434529012340946298736378263807036618326256086294227123598723061059329790239151622398581569297990832804783708202449250831548036267919439977652856825182979114407701715806623722637677275485334176932187442017165187948645677488668518660506873449538516373940265689731308169575526640829271907194415516278601915033963127056514014875512857324931140617576060412757012287475266460749551717100202155216884651128427741191132156764883915813424512334554243528541883682511686032895724594644740704956618735473683207285864158279002265421791651157638525947425001309811118668903538579204516232170434812076914181040110642274471237262374062674903111121931385419161523003279179067929883185675233219247784340456958219289055126751643991796573411333368743539917069010592645696305139909294971805254515811924239938460318731834974605364476524870926861955985751770927335213850459459538932789033034584178610193386712855722851960503196113458404539199703425315112908008658125554493777250909346097835192516291027181124438180163113104959460041725620402856644451738325362429055587149555173377121719735274180761241712767586591588315657466112765645970436751797536169009296130842342218176403592844874491289398420401971632641703171803316987865154144491573302679889717272170847832387258306657799593956168054914031383323503180511377172897848235483585749752925877813902720099495931421666253967003593059976812755698214714346814538192239294466925828146665846297478274656700922337919148331316924147976457781285287872021252989793656974538735088483730662623110148023619534094862497734223007176964486421079127996076560820959118728381103954840428017574370918993272099454196080327873154890667631205080918633042084714549440328725742232292391512736022665047811304392474054354192064045744000997611117327828928229304556206935144366247484445605342795290858299243369869148865929192756641070681084208885470937888903523252534318656894378065791982840010585712628096289149087553187718290286828386645598564429978649324880896346591752338333588232070857454701583624492690815808375528543853478592764288175080351547682726289360901464886396011501446078225134525886519196143529370878648654109937762017062703952467525172812335646609130925304851428880260155691938922065896612731161310086287012101598784888492794722652923438620277668102659478175086780330431560422098130069224443294830505510016050661976497740510395693729121149376592859845055041292599909883890642110277880211804833016806828166433344146896128134635827087207106679960675796195789949867556304245843419141870033093782423432668907117377497000161068290011809847053087350114595246920959308827357818657391955736120802176122582833643221495891040438293844927083109995774246496292492764455401255835115719007205329461218151232294022264166358130216434311844184567974216753047659000790496028599936779720533062836502520755845401820527238696203026249419139889694999070661098069476858798165643868672501879805105682322310823378569476667461127785033667572111611958903549673056227698215754878980787096982189385460609408261461541296646526248845252805700047991605706345118635422327383579828994416052506530755669163250920452216208548905965599719642220707209150846209718586598735516611662160390774010494808993233384962249070072692955851947713947343084737881500290439868260507007847245542298261498264934051929221633662042739201671781351796776065901237230968720601362957091641057647781787022734535462582964139636019299454515441874140749601475305446249562044943800863735209852948417560635155971152154289430881218077512850060462394482949162824366327080616133351434488352372640457490137094018361808827878846502730344385899301399675198226060216622077853974477379953958464126716009613174077538282275328393847782688365218932340958231865951266533620638035774676682803357820354655331042770832825066337916453948966215574611495689374600420484812689612398217369123033108271240638019581645955204696186441837861617682089241606731959050146911881392041878249898933985571720327029166252535824171363261004656822427467117726055950427728106389153380751061450624064403286288974868165175194022090293865255921669444596100652755115840163161163768732298747289207778001472704872325344135080024748955288680285459231907901878081251263537987591638054536027268539694292984821242892387744916525175854796374847718085994807742665675682075860173022922355031447738108302238678967892062651067886294097190725564693551369967293219740058931245363186460023755442502209523859942052625013283273182425605799535241052422041079458292908468586173890599117481342433595988230228991599264302931900142835440509913530432970165004192073997523298634249502926705629810054068166013305586334022110682568318947824014593462675172744907135104421050892685109577977150176053196500180658119009953850087985803857810321173748458953360678851113145894745153181645407534029830026592728140093553649685848564440813476006147539986297828814811671178154010878099182631320951670211952461563549359047603822735139399328076077389097805029392085498179326540427237618471505460605735899101635049436250131210455089743346049053830523549041173884059815966312666751557901962365441514825098458811636319442693352175063056514923401716676233496709292179102006300467130079655242430917924247963979391522674893407857089296000795931901151197906509900622963533542668941258215283760726508415113797399029530494973155914100077423377874590391695412397679173966501810447031526704334972299973495278808306774560038414056214548041199490630722689243751211620031007254907202104334524690931077486002426921904164577041560824859970834290433019471162216279323568658725418958690076962604228160036605782635486811619577702909317259632936109256495143049754587210521595413375568377395157869805876687278916890989690304687291113800139019412777388871041493448316204323134976380474032738721863946577190141262834233972453210041967812594071362859217893379140307699691437161096507518324447033616700099151864804057402392180237878475578832340298624370471367281543276167120090799792222899007903739311763433482034321922192726520969929179395997408111936923407560068314841820276373476494495002125920895114416440050008997912782584060834345009346028203172638926979438749253070590064496654618431133958715399193993494253508658973229359213165861407450431339183165819985529401114704037252159649124426636114472240539255249263484107982821399775236660885939809940753876332220418093720857306783656714021460389477759870363050954282115908898833829847371053233729462822956101002093539875674387696415117955163446118970980205120732620141767384142267406109514011608669798976130470981653067482622441065470180562099724027995807489190731543956030651130556550617584866637402464171556859452595712525797394145744618283827174547204104800436433200864749536650264081060023942758671321440215255918750675540044351151170118788371569662577270739386321408279921563601934097331787372951709710444507864745052938747364783641178446043421077577462000704191668453675544718245484445490683488926146483720125041083538870002375653788831543481814596506661611437578224729555204203989519596562657147429541918389823190745632515195669795305146880592930837460973984674582779038754805157834130205853988194854870960192272290693346352544848826451924508705678523231600216807692092994300413553154036690880331906344182119830106828109454161442406195214249791314695099660004327536665339378950356102132284219250598490887420350603479988642996189532856406116174077892170107609129422194271150615350653258100142543422189708025097662838058058291129253353100288334670671599145641589703964870240956948703207121127183372423972533115526712102769673718964529360524135934020041797731268588181483032479874895535289210362680916931053541948511895696676142609813248092839870225477796179810186256043128675339407904367677747898236899611844716777622234544252700950439724708139125511571520903811520538311885958304530193134773869093509855825292091651807247101087154764283636778887035776675620540799260935987655466160104572938982420135572863116854041586552186651710318762386052015278747076685011826512465359539767057262778634423331725403495438940337619554865674507118313379193324715009924432470568645333998906411403136843697253918193600625839388602068585577790068515302414307627792911282895467742736964298981546607920718242186441435114226918637754365696623691728078982823331598250683243391040188171302759503613040657806513647636465706263859575647322886744319876796667562902165540394045638326477454088523167037681720624846600455338875575418161943489378214513266506380693902360708566157144883313083695706508777856795782018677852983413235569253245490663108819340789403608188494329135792958190834134094689594347374382415717053787102650857784183686328252827888719424766919518325471893986110323881328768220511796771646695452475943201077557419036127671518807402475481963890420170230295984037565313691199484616590133714589035454814471875832369118223027344752310193070074745483612148454006221253666213185510831106460661103726257525316028878598722443007363969516210896062009417541419585814831828716332226465214148308514078702117638064292783348652388871009730214720455047414872999163241830978253624843498616751812483243637243901108632343675905165176242823815208303558036568009042137762922215837482539317727002508378001944003674762822122834184025228429649533317045509705151788057343872584945474465197937478058411813217571206026459638033576527478893577694476226455798365979248279743296354219026491989775187662491713297794560835454472820167397321515213104131020005742503481856697150813337162533688306249598315768898809690404296158301247761316632257418292548940673460499649543096526322805945831303061458604782005625816507833494446315528843467140247706941283359042864177796528548691110839648490796993459560674827695952158258219058699159673458651772248378917412942382583741470444475401779119470592245458290221917454929138277721754008639033458106236610603654750351267666618546337540279675351718823834211542538580054587726167266574457952489131248126556605578809333694870812310576134398153815408996594870017305312503625215862701936006604156948459162396840373263700083534328623780519045953740851845662170982272740765080287852141715832588553936729222420123420968759774534675035797343959749615810124749208178284976426211818972789516643236979186415673662866295631477828142939532040534868835111660463085567793470442514334654002771566882919418267148853995080169254304805633733346356226933974129125492309307414305778070117143998526139567757166856038114168153062886705725102283603764240707061237092591375564591349668206970042375938944816267029968198489542135089505222579590706621075703612468912666190409763792360563969085233533933206872805069503433776753996951561720207806299424104924615577784146711043698510611887109385674650061729393388849991763565163027311304223496312163525966854791864928134045538501343006959681454393192621540418483156094455733428693780818211754384695071290190235371986238601181897984069406519125428864566743069830917830188941221200241250903403259640946956657983924424480496720315706543714767378727385067033989644064108130121030400436320745501047237925901389480394952001232298543000714053389989679168339276101930117924097142084807235256049318213713765423690038362888156140901785919906216354277703071200273748847970557468372155323722132802024209891104037721088898937204263434755749640693360690383980697485707428681750748297796801600773659802217517173199858815167777787356270917637475990421102052602818169042917174436622520226189344583050950740064368115929819495767624130673982855489605695282021932055230285221200446848408744620366661509047565830206585492929755251052465683519541826368509934293403583649948877086795357273417881981601390815635110429401999225271767162738144589483296342626920218486197519463170660985185168791067974937850794573720728385786169630056004223119622558445258544472355314558162376807433125754436795008083867074859969464019019591628524945531934462155699239835940103539386722866389657042374069502986694893772447635222084331622940749340852372844086369931760901527012908613289986541533296301674721227653951774322377047365983466977256973705116222577145364696754871338548902059072620975559224950125264767787725477721313290528603579227352057144755983779334299598533246891257525703576599129817876315697160819967246343611865829013365751640661102168310598967949752032123263978613087421474511387377450397659287157041144923685117494839499290000160579159319837011047659889936153809022290907373825009360474927570819138126293173101151820958742529738695831108379768147239644293923755014087206515490723359184354802686673191390484815741003402535944014451770236168776933122962268694897531963342670827040754120774428337576931055735101991148371305605198151801560337710526184874315264927392459239937008837691533954364989032624329186949667709611495704603540881654049474255571065781229422686659166901469590670793761038131336260429400937387926001946756113775371950334980275016660310770578236060911038151905825395331171545134094506633516652944280020783979847957670497908487001216668060605874359933328968439145733830830150161403277067955344235495530780455466359199770941902140277213610040294783828542878998669809542917544712079408969636401116056605767405868650118712781838589539879822724874031967662159989665302193499028377481623383284818030051661713343934262137043128184328885379412082959943961412695848751213158365578654646035863805984884060254213225111560871947905097439966042322465586047589374507667209942873738335200846172038598180873171884935364503896419941620454260577957550721590275660351806252056633447534196015130377903534015971351982046411777034918806885677377909434587170758541486097307462029046107674636122821967019771952186796320848175510838826192410505445314528691999337176327090822733306375641440986921920764708501508093134192366491631859844114889961954682224887088749716666948109837372137198945639944869101347955955663061321473894219990357946978871791071295222410993690988012844086722548904123216375459626887751434633754932304028547595019047326987343758958326891375241839805031310587039913855197931420457295116048664462339366554757935008873697732716048201692708096991951917099977543816995948582091528063823480082081536768008162640267121974839107144355490415055230967283398775766143222599871064365119356389800142571978786803762772490275827746599912597662953048545006001212385608254189538182199400110987090580516173457955532041672956883380065421076272114813280325448600326075714526495865159172577034114569799418120402931866198970050029163791331821820704097800135581301588564118507885806262026776690893593718939794159929420516659175733792745370727058840158212392771164746276808412855295880984920879728244896359534371661225863835678207548491199227860770941566642083001084737646776055196802996119059053345907310162553658243945774358780653423718246008217316662650657777401721886379712040948158717644810208638324977851154398796584583020563621739990904630263966301758891950501001297219920022906300718899737205709947440773274563488659225454409345412792124893500892962726039332674608184272647781168000031779747799799394411013551268909806675842415748648232119656447050372932776128857770158914760110729730253065150295959103989510276273417337265689764504861339519106980442851528986772674182173760996245626244939393557020827105038797345637443751592641180876178790760725897578427686864101949900280399962439246637213174009853109147688675270155537411827669892603054306627696799040172291754359928767626031030360964344959553755063016901510005835247588803463102219036789222670940825945232303634560737528686997462481838133919930503758226552297628844891080931254144576901074277702424587820179467711402573189909699646235732002213132198802649480764771775486905154474562104466244588929960263863657764764910062331469092805816989889387572283718168519638774150708528367731439141370818666139091246565097876288618891572920303358547244077687139439262728939684338725677357611675379933833718489634881699751898732663900060521444142049200787347509911946023476022392579358610680103390302910680636021418342358183543043199780862088197272715819353596971862971894106549694079362631209378717195431916028810698839908629195644376269609790307590513873130056560964439163024990562539911779249082914101055398895769754149310263475214995371784794821042947616958428483100856230830527785547959942118050052003692322486171862151167938810038159636232883872214870594952997917434308137551410033432960349301929223691295012211342649278035909110620769529379625534390058301696891964934352446645704330301126015384957914579821105028036757996897858487774812715748516043582919459499645984934826882191065586992577522659263921225426325676635569372210939964659579407789514543525313018035019983902187369600403120848510012528542567044892338746234243605051967631628149691221028858639939910355659346949832440789314078067108450076683209501932064390152322973766510524671584793136353017393882488882234764785542986985950270145462552730322687216452459427539004791809730888039763230731528228978678716439591767767394234744554356806873123369191258550260500494044761440537513222955903256603766060969726423499329420084886699165624818868621509305963624681241534027255792337205106636787819854682224648595437051048040187390448161350773371625557635999737970964370060498562301456083422745548038063330631279825646435829681155825546075274370285322534881294292948731233650582578492684781544978391893992530328339556772204714748277781514766228208982820364695553643896739085085874066811234393457079369187014659175712416641460105487021951656993304960959959341437821341165096508646600058804470301946887126874151985463688957089800119457410486042793413394885948170394416010125630373835109891943888109349241373617258568893832640430298990174534963339632216488895236104597743012554127364307254790456582093692929226671593288169683480766396665021051185942853630855637394205089625746032417828380037256674955003022043558912292612322542567177276618187275729322535167161593219200738273524677494515232162650580625547200754417528959391233353269043511226582840622658561324297134194177006564191537998020721721599428524870450670455665256504850899112972424816898013855201685239677948135851376534937007091377267510639168957241074073653310048248893192753035994453842825705889987268675590296292067890114569529012460014958160630451368465831207394392093976456108792352198952199659843044814239168605014835185170011690365413796959933046951161040769126406779374617778575403298278321134661131608590278767705811271970449066198907147679474354015062803852628690652414945818804895873733709285231494769513490877083820526818732818943528076173203518808776576362867076814011121658333820322275499818948568299903464526682070649320974066219378206821011115962937948483762390099027532904318128713011228039629992409643730149975493384079912800893780131359812242709001602671879129974295103622924096295046898902595817517113468637914683489769918142681606369157485686449366274995538915133254463477559528793433506112165235492212784060248650541586008933884950790214380863326465824677060068282816830185873467661193959515151029666884826330610599509467366841920914169902821409693483307183816398643208437529048759816480824952296269528893149967316238753951281209769156539534554078882290163233049748896347847456391570413398865204269847914155066613834822111148253029799447153415093136692573914630936814582347119955934314460408824647479937659333460201258736928428595551295556658425538738124508043257082721773081329819890422493564118870795373083685483040598576637638843469168228255154494087144636984632233441174695582229957909244363777012813751540426425589869503566841770873558960849944604359610749635268897782001381558954039820851757493499424491343973292591184900316261125909235938069279997676755246766622764795859399967233559565416250646423166563261376353413510710669023965933469362164737560674409620894617497512582645506840206470281119490943049590928936078827339809477963855908831917456745241579550281350761240206098270930734367328656191860345072010748904141842395505458012287538655175504231181006430668007151192985412754196100500936903454004711524598332068441864757692722125157635669425812258150469138193885560997007045792221163430024699281471951970261975350222209816457348917054428001270964093952355908335004249567563284020176104859451560973328002799425453325561199640280877517716597965426873747479394040163196981864687465895964608066751382939652713687802334755349587335850330652216739275471283326710249683995524739528578318171394720539014025641546495809173541900191133218155664777272985978298205352741620299119691829934020637044753669226370237066919341543137092440940836846260878423190930264361414192877004580045488523990256362306919102591344036856827402539791742351761410830828060192693885650509360247492321536508929194417127704310969460551965320237220926879469192687080409733506015863761202262026530153543167599106789591707003118280603958589726901694880314288151381845158398175706266965173473326304159179737326279291811532162715043895373447269424790305340297738668485687286500347682578386994262763602343555370803333148665023029924376420089195590997980753387604836922176750526437700407631635879237901563191496737090539603244381518243037598096835853145996348796507167935227575124828334048158644839644105698677787775723890005375120630311399503725117258479595460874942476210846437024518279543635109083528334334127335747850450184128222589637626154866382325277170972049976789367018130422382466615320940274172844282530909860875394559433254631663657638621374053403155250272848449263429406767094616199845286016416404325246645967188373005074953477518147320067361732147817394884110185018172060662775855601242753039273891058621615362810970826307422747248522637045321068446580630036098090039581933527783431161223874645321277837780034063515399410051103393115813257480452532351406227734667530533735241416702089719954271282829499944346868308399377304567166134709493639608802555444138539218170833628851033224959287803241006718793919960801715719495724439024387001804557429095142574799970804736335175643093571435951438485535849386733801570207328749122621806512782690852772622066208939936113214005592778595802329852307740243076951846874017936775457146980119994672689273023721752043794376677114722004000203079428782143315167441278319124212397784075398264699459166984811014431920267915580357062503002338831880358645703797654457565396705562606245490450772867148123705957848331812727316945196677148364279923402368504548382947231768221112792436730311195175092545928417229491934942366558120499639534975171702203222815106937622632577063223551714440656708238985103093855840504373646041538556147546221161089041431680026189386835982042693418279373899995662680697552834234292287700503602408696281538256582584295430947938534561483478230450873994240592604635871870144360727377942884853939132063366803825617381757002019890777578581068100796510139252796824812236185244230012754218615780853630924804672945554229753305880096460516061775905889245994574179628679218245234845365921161627721722323569009969921496223920053707083167078997691048418715367450199637376907379294926884300674107955239236567771537989566427092377309709007600123429421748526177371995880421015291919737204404898267171045734484584870421977541646490974887488355306074903077292201900045938580972615115953137253058408649453976326437178132619339781555255583337974343124560486650604652931417141878733251521879152793680206801610079186638578214880633383924859368060162216497888463589599617349812974663207124627957085543720453063993719601419582122849783920341469750045822345855320538209163649271149423755077607485752651026007982150623795593243725951928643908026982143864024756175165357443840082806550706015714697406864005416011002942934066404397515869455051840049993378777479137184359183721464168816788191434815535078519997391572209661279614367699891826373887648210028068052342199360418286718469855108111945997223213941482008092952450697482625358167535035995608614351157506328352507639290774211320163055478679711626075579546660172278240685006835889049792955474976611306079925775154580021711663859220555380309974801373222983615234101666716146157607300759433980103439633952704683476860929572142377052439975919421108442628226152234312123961409010899957614912747559372911728845487120127512237785082890006206004406091851665146399573873671176686159821509655179275709779094552445929157412846844447271709283060389303526935310087173511763033629156316565476202706059926303571443410168279816137523674675306282856935101793577964964981058278485399463306155712795119232336222225457974934869880582631886077380599790715228900562189988600465564940296557358560181619941707924438927061368408865004129165998588979468269194886906794883623948371155232176757260188425017296912703055018844919650713168556005331132890895379230643808080935266672525635789606813517294570182487113824468687550417522497753485551141330571577147228466041580481122784807889853802384860036046542470153167311032069595436363793032015384115041258003091521675903408991736363466407322803860832760103081367329513593986608367497573167036980408012537864550838900882617496112704469760530037825154052071418284596254913183251207494614859658562535427510505139661625357289736647168403460552070934660838947169391110785972653091756213814442675236454741976558739495030550737634896259704138651446085209263520291982633947900795232508744788140791854592912435789982313812035298609947012904728718712951923267286147047373540070364339799537220481083233332925598468646991449583483552136691394377048628580416883747490433687033436206049055001049926279027229439606141864534788898810632367933683271574740468630227269415696923361828963611817044839975674901973267493730723778271212847763238623630095064339404991552769416705861797295521899765943279446495890233712402584904049691692627326495744217340779515867767852571406161391612866877182344770328281686792020325812808767439304710747766765118729487762413833858385617761275122980357673400360770936419918730265669482543535914401528167091622359090119711284311647310933808276200189506745766264395658291035368595586482698321854752053363509836333067985101642699728354474492522407621115818963610964910652498931069142446589751642622548848707248467054275193087822579204692453402320430691246616961919556661410427574628055419964491140368245095070727203243426048464011332322855476080769621040235320496696584021765709649071005867195372314341035181840441366432458121995674729011913018940747746977408292498199334168634382908991390289280307443851104996359018301839305128055977767321950588488656872699146780422039488577845162237340920443533276566455251711210211636838562015656833288294949254055450750123272703507834966979412136944886461115887515234071351539880494020769233827785222890610650193322278804777100171226038980193900235503006837817819538750317794657241118815448328811468987614424686987829654991594231856686410445840264938594315427105327624439971632589168967113866025203698957540317570747395233849342995537342497522648480567841937380384045053274890807058878519086335988963440674621966206889862714736460170449504252617603383508731961864842906650149289186776688523213409113493652415426810019027660652601224524723878076184353500244529017665423701217016201013868637867142998801302238445034448614512993739716745933709534925582033997487293360519601769623947805203596440163254897245388708686904903228157381991517893081864662804452527903797706529297516300899832537551511103379266123075084938131925019169640123041498742100655029504209683021080616896121397296859830538164295528280038137744851644059943139589393946508180156885669018094455563606733866652258550552212620368131973464924897933618374304052082124448082879698807531356307650948963312981557927011908117776466282045307487880577707383116295384404285715303986708795209516756893805629068400803545042793588106676294571089893541032902204453797957202300079765190475492256420230598218867862392644361157182380769166485709446627278166147646926126567736460606963438669626867549553862376962958598569745827608259670194681657421428365000711036137983983264413519493167828788081443805132097638270939901841091506730174777978190651688717119021351231660177166805629500112015709269483367021298072087287060371404557963728774342814325256528296931350457713492442067991794628918831824004704083653770246304925700298955267975201236495037820346456377940470765100931172164546636128740764096239933256612046425096004842727371827562967847585780986395109760196542891623670904488832862616292913597502174757694450293737228673485891889124430143385728963775969470335207292590893183487698558860549692289643708247247171378771955968917015682600010442544918771382166558190622522604371372320553227356753796388442226241293604752359394714349459629606406463938558382070529690200501441043773161818825232224842929576327663129106074284468331707968255272139085002364590357143236644800586897456466233835548041023426357794568701201576387850885848810360478341528465976692143170106568099554159171667876619446524632987122671678915071706469390643668418190513436544129282692179128946960719707497111388918745521692618141562181541265046930084848763616661636553144483231701797881343588996409518515542719698024068797662562800790398293280524194986844183752758325084722549002728737898899063062863221096454110131254707682328719052023716340951768741564717149622860308859281108470948398617904161699151127906181653884085113457227967689246951918676724470531414408044460430570313501756340867943570167998570592485889759721962043069080267254198379363413445106431475410641915661638847446100878372724895982291798573852135835216384173178637537875348521962565176033201413165635011357255098327131512401292454795522704961259821109542828257697757484481721065033748058306783176541649781959873079100579608630287090144292684157334371879308363162508691257747417682882633614726125299959072910862982540236211311389725114205021964626821161509903652242034502547350556257521426130731024506412863037322659934651402865495767993537624681282319953040140773692802526082549349288856990081107607428620246168615582856176264165309485101205950596448919340081116848485934677961114875422075635759513293647319430902597460277242546027341432547182938195451413680575063281604681333167714634623831545819667064539194936436652041164730189367670777303674476702860379254347502800668396706870825655698588660739597274113102719314256992232469266436054545898414395020053710288898581059225856960942275949470490081320897865919741227407202059491093485518513353742887932161748306845727845277407489508677371528919550953761635959542218158896902469891659548641885903535014141727676790149280279596494073150160372274855099459565781571033672255236524322201976983867184350953381543604394670641021347830916139397119392534647916899946745828988354856283639610983121212728721894632068277886939556059235880381391036172016752237836448216061771216740467717614922210750037898472415926892580507793539697561585238042708330126287250875406567736015816147756633743703825490596552620352856685717287578430763201372069523340839425763429480456428864450158568733408646131235327309893324752379427821212703000576171700647385718730452746382491431897254053704429717631087986539354371813706889938288077504024310275497818482281392023188379303983603499495989050046244724598695580650001751414327030965819072400295649916249011842197356909977250468689071835380179189946594025023683353398041596208235637465111390091056225026697859161193236542688442311069540467881335967910849206998306226717265328485563241917625764954076055276931775597922258438036050691620464037580713763556493598692634004657625423348388114947007899881922052409940951268776244965370085575212843725328985672909516001783337337083168447202264467997889716047335892409947584656337874258030753822943623163520531751059318648316796151844384441392833244680482899082904253093104230197952584665728031906223699365933424108008590207426378168871743393750380709749454282539893235982795125502854096454613516706960567211811606469622328576821766333106988178428868044769941958963092529394769957048916908380069231369874788565842490971995151131128740035785844042832510837525616161948194888672200188720580329304188642652391693347561056483919194421859692351848122828948766053907436531706954770340355640628019825453677145313899588291953028899696771224692944448572295728481746549835206676308938599239967130823064842761991638655847313926207244098958313590577083315607549873927154702047967100058381668496480106699563475474158824198885967904607051971433582635164878410596236017236955691325432281356394700999799927712829606774954640869368970373895786592861817376005212683332903377387843661615967376624388298907041901454219061749466973723181349618730856989740724656939682529369060590922414229029877648956825961653882552416079197043748439188317055220851678091613320400444384036739432286644777016569648283791973501336028058584665611577471564314707606684534750758172827134422335533752616744249022101448897627724230355874661392806510816117763339586782731914886096803602301866884012932240976710034900684379968823826288620560581317779392912529892611320502747036947262438816691521000482624492839893069945285048929682868918644712917140867751642457968255195545284116442125269231677341999400643132993708670362425487881207816594943289378369117743126614099991537863198527581401845173046502265499541594855128962965533318702762765385247891590380913282716488448598574003033602978753212243813884469070868070067260459014525243286257529371577920121358735972777524767679421994853524960942694712847079236356572156622248304918111132513757928254144012492886047590206197232454534972097822377997900091901364250024721886287784441520873077653500028170480382247199456840815715137493338154930613159833987492633597746663553032236185778237201086996744547420649649832611837556114307664163815846516792454891999115058240898637738083354836765780517371477938361252370684556943662923604243840914734160537919639007281959348915096819191454610585592616028689036731230170336004037918757624179682883656868063982787333883390584970196434181869497979719119212390150880774245828104158780958468972285269071566975817721485436954506932408148124258753568596718319414500831785538799016462132632610768114043170211956882431504581891432026093220898126013132231295057042968862833954409936713536001519041709397766084543102134528259913704215945549491613998216087263544920275305032489770562580948823241588417845347682257241692008912452639487983070787175586041846972584479681209802493660063414498117153518960718192412908080104313897532763870753084769414955917238251041811198555786982455812180428639025506501431371120334894490851637943234830941768752668782366025566452411998193126202979078020056474418876626368495715725322608268788771885012172679659934672485672779216013833789136916833976002792694093884123394892003630340547434439474814433791906944575887686418994754091829915730348761034391803990845855794010807868415085000380585103289386916858071332711170847646652623021141144286220390053901660808506528424447427859533493061659864856140776690395121134492678333930036689269096182249776164815614626242865249314478479354192028392338500056989560563315726073830106071950904411401521277261815323971328570844642495338340832884882426294568124725798652993075409810557439347061073454793128910735035696987827649843637926476099059129440742180121728288108161084270090267410062811278485823956296753297125427278806861090328786960438297777213165368113006420923938594260010493570282353132125548133343071689386438454746560157744489939092766958852279613081084137920221177790354041321840395058680880296708794430392291921917570848886263854569847801480700078839729797959968382120173749020301303532316992483689985612375077068004015490361649707301454830622958703346622229174102026144238824254475866014267541541998867938964198008394013987122049657516616562483372971261492291064750726883558391359952363642905070392066796004661937016564044241914505059711508804616206908650143135472209682913387378242084353728571190019589778343011562396768704486253152943250294247466933789525123956871068193091510594195438362223689935351333936094817933115899328831000218403310518628216029651963615453917806545685493721318749864834499857365453076372976951430986164430446450350043231002611422115482064757510219649846541493185916119660397886356427003312706932012567899724726834402531683106111024914799903602692328082668020313034944159218396321142848349721031744383446335751178887980933627249566864297878385077631708531731857442847344705391845185306925120964769849445564678524115916092507460860354361644456594858373896963752930053826802681317473850408630225782486253021398432798337641676933289507411438619279033705873801036413622643500973310026831982404768364520542749554270963330919146941441352954995644610409404490130410691841948989202733926891644204668382931778685647815369488587151935932062822150204540528358254963514437567821713197527012945307783484773719633199726813688449970246897977619776794667969330532689811558602356024545778301745523500618381180351099307829258336092921252718487515831407731052436848894833298297533707728333939481776155545565024967449821968495453281300754482939798507556345429866263133972389809574988442264682905636063260777246476284767021770866731947449317521666402891675144759376390429420853245063298872126736820381671835484272779164130426834031115143150728123762535337061068470653362579477646881635893202846855388195549638389504006201798945970428033926317317296327847113825576222113500084520910717747518092516089776715235717042682544862225167701563926387743902018803766323786367553804401426838580730185627359179989887087618637756894191687624522620938877638609783290596423925148145588858809738305539066081645443195173815781015281738844487577505282125017213799814254511334819252611347921582790507174535971774831428992027086717971594573407133527690784095572620336825594881818735039727593491700455771044158738561482930725352528509128516435229909611609305680338576724715295823870728019864378596673811699432349086040984809635763376622029332330884734624446536401960760145014743524512339146119578746755474296404312833448593219886279287020766852195812073836916528702437256030000596105502913306745010783585382250002039828095938743826464175675989581643071061731148193924922514709604653335642321789001362475265660973251222934822591313185323403885350945571119594267778869944931913509438962429581616813675531702586086122168060049245457239592570050737079663908023578545646406911436341049686796583712859626311541838488623370188575400315449253178211342749699824101167539872263958780878074259596984663422679345754704858796981735427423403768935406503746486877263623844792054618991001325788465241940892090045663517497745747382049218733659339379655469189142958778146410903134461148092710427212775370528421459307416441028990194305784177473498410491462779944432270350829522181022505007931208451418485410405834886864719825563076663252148553306646594663776647129446444088778725305206164708034361800070745804679087001103012221347000731695414108035282076978695389882720248544418186995687127445956064387674966161766439836543471627089838591925039026212364397138607639413569800017107436560442729013750985950601545898919408980338435757277060135939061649519866127792367337047628636374004724876461443366230679729287158275269979984465588332452974688303305167539594285193135270870816833040250626031457667316474603308499409428614284472250768281578232827751967676126847354970709561089783461692221383186535693912183040555559336212206491794550025190117439304387104634351369999853255336635682579915779475605917994347857444848912843925282349538132080470415597979010788732113104832920803775990097361694262663084562049911338012094370862937070001396515417861714761099028143859928092615926089802558175088148143132894390989715105287875297040439100657560941842966611419661799454949398271160127893412962116149574409045758259893430627747382128768301632888011326776864054970249067021906027484322939794447795627818539867414109177357909463788993242794724575666114936277786754507795793246617351137791309936447924938485378619414507092320898959021928552013964124449994991862534670750737532369070063339256520534746355535524239524205322205569084886760171738565294126309059043112494579493086869399732289331130215927462114832563343058781548486013545077690803016857337594845009765793100359860987237483336257772737277687696340027195370432380762257281194747980043237128557167627071858100077349659651403771812245894230556436357149698757305515428282092218796274612525587169169016360334062207122579832277785615329920136125866536412572758082180483816796843753835822889189782416079992602821402737823107899218743738209487388576803178629107537176697955769348034909757229741129942799694145663870708462561172678777453284483345017538249661925964614524361975837353667692950528099519769036661667718867790873222582111284338256514061432263175474910408767658432656881547142104621636021897127306262406416271764933655684041960808543928649450037632685243628795995313422347561413131589969130660292055576423938383555305471429077291229154389293634874562167296553168332944615293414658763691995484948823417348959090280564772301396699738812999448016967036662255958607118190771472406549570080200936329843008783287652947891059928994026575724365256122430194764387320570274511607841060343149473456967387652817295438336380420055640940388607913847595908490721426770364284678592305494262091339755369502036886667404069691846035535016900205954138190460234474906968366100788778670100916608465930348988393674083596638488690436291842586117049040270652036837851529893455710157011050715714481487014174510243471838050023572848547573413890487952362707903061667397271664652996499494633525351017136454973271154601418843583417633446858411365835815017932643797302962054713279732191119315961936101725958790036647095016093693693373208412659513343172633900123618592942390290380025167648980700450461534342769206305344256054054726131233195309100564483416196830244771051222986400837712990805156099663324984477145894005095680088828484582206515486239675971994475873165023327857895962389253605469810246251817926779506021652807054162043362436417023128059901393068808398909489680934560578600167069853485814471697218280870051322526323408286285991242028708027017558030508848372501763672877645919791031743151603169459195700557292169505154268429951393440736878712945560615344439456947072083716948753234232638779535130437780756708774140996035797801633519591262050839629109553316625576489334483776124533715452576878967716796541096772511713399363249747535346543753304232724012454337515504315355613358052400639725816220914735318306156118663445154691352966415782893724868857435162039291343304082738485754110442933335667707173564506753624489364701673919307076957582076496546032298646796569669098084343113318768970179291553065187012642124021192246018407578136834866293346825813013151434597257031632470005639997937695116687749528393404720058187357439803150456459696338597797389941627393905970949951950864923885329765807264270002276697581405769471028864153942846563923258112882576380503563176416379516376450999285592622502582253579188791107220337239887163305939035295233687397272902530712669208708822852562658348880784405866329800685064136183099829889356121285412738022765506151409269591366936411967372713518114184613898389293818942708736846440962174526963082481563879533945953178882317417498890869587783625880626063951530596470000153392554932156023220824313302252690038127414304265998553987132595569134969779669577246932019396729943671223062849356685735290179714711825859939800390530719558870717040872574960330855040830675078382036572744714964775347540950630931865216891726679456627472526320032001860957886275143936489858041376304268840645256284757808092346429254938193290906156926683053051903231728401641880767911732274596979383524114422707152955367817250624503606269371349455007725437702825510279943688491233135057570653323839267073895082982814594815087714998535310944902913914278488836693310692977347300309151639659018930454836870277757543654627099470213425865313662720968728376267248007478083178488277381788441680718003269741823954800703822092300016294970647352284463784385022261051271274658301246429304940765470260585183904992530296321163289857322720725524478796169938158053409870505668902701943559207268778032393333527707068597948942450989990724264711122156431201081380611031914085276004009572829867828635768817081640948948510236900141599327008772754574099499190373651407563093255827702897848294843251481730868194012424736345160695697946798789103839417503435395872149161476669423735986488359485042118945636693966872604662714561219735542620364401464369047588589884899384262676819470207879556192000841535647575374219999074070691942521704386754116779598050235693806117706548844462155160866113576989278968619922336843241382131135779163097551136703539828830148606798236682882397431376676035372007739763434727273338200058388966497122483625421060421907533571160991572001439417260439182884918960009711331561545688074020041133533874480607636986501051404940653198590589023988368850246727654855749760055835810554892351841957416638110140359449222476532726475555184710969353844607297652377692491048298314937506818938138048121842279757298269522274245069916475139388357092459516916949383033125152327998639763038344064355039473608701511325007295620898328576715790636419621661096309279322212982747347412273865490744351636614041823166499950488747217958820830340111609278680299746283561277472280004432252474321101148641989044478383726639362441375347370371629942320118780764459270501456349675325364468466941227229515116277218286455067288290334488601805432693512372464289537203726343391809487840839318614660907363561025447011294607947762749151293374860514978179059491985160537841322519897349615857510909840471490269163370648732136392741542904830485488724250369056165269003249394411054059705269671782501478198571476822622422467684263236779967325110190662393741580660418472579221912490767954807070993911977788196218793864476104092492690040024297304767946336613803218048984413020878543071886378824057846337871419676724263518372576862214826281889681107084841505728362038432370436144407007826806586632935410184545127671143969830139263576341531635907393826029943057985552196902511913646200447717537954462026821630938501478839038865367309676743393499557045824940638788648660016146889204909217734002335251251141465683097188250952765706490564086426921228837763194590254683835502754866081544396377952837210692803908238704056053404633001731557801517939446705929111408297878228754932638407906783085081848753056073555068817347462864683178382883673889475420884367327133183539180451042314624716453557448670112381006880235944133395250986582572690561494488675402433597815143486121612413921664926371469123479085382405281485354975673835674040849304634973792504002728968192801671562185709857293431382821659612738753766995080384519542524415477090923517773614187310804025735708563674921960926616531610417062146198295127964416506724507771661411709430213142051612634209476109181505528417452401200195102135950308389666012755609756818431637381393736805192796954784819020470963336419647635972346666992853743597819533944889525582155813426054920040869294120741204498617418880691351799262191690410417812660085572528472555151493889436699934541907617554135402700256808071453235885843513852975102274337373782173647711999996274997944811740364595324644302962835937074290697863222460595499929849690568720434694875256447929217754931046960006529113589265193694742833279333644580166217107581451470269300625874516893641681917602770138673590681043510138415187131037552377231380993811688839224827421399542797349817954606293826478971227118228448586113787642200607531416233240683615772852728205546587244116675836222032389262290155685579181383584337621127548494695434917692597860642360212161578845209684529838033669166606176482371690641444545474607811509371111785507290224931077444438784333367880405238299862396820184499111630174875700601159700381871954517811699680137413181102358519049613552005289604318670008818505886854124334024080735214903159254482728091005595832332372452285348217513246787630827011486108958143343797905068081772177192531686745467973290119996725506850925110485049202669701207897424330126042187192292805546237434232467812450638676856581590924123078497111068520232210981250776578235549017053680074832156908653106776301733100133930766186967922806331889570456455708027953908521600958221420103091590218973114985866096213523377290618287188000186166947387834882235774376987992141819236026553775567947406129360464515089314841636810347428457418129360933889969428538641841431851494867486861986943442335946277691906486158479205607185854234108872261888761630339218076690621818924125660168647266897285511982064605743792585083373644653173617435090217128726096452646542607076671462978952915298914675773003923118149393921157065901115928687009691442559822734040179428293977278993661756230298322402333023579122093653162577852550926467707593789545247901324410311522556947325248969938016683570788980883191839488821566820257547324131648285157067320052203812022271761959568051451339818626729707745140982006341855107708154558682947688817462517951784819832165603311305598104618604066685863328508755220727556835231329700478677911377384201890240099916161742555428095320563976154859928400062015148174489316064973327488217654556805881417188180361167247480901037292177842367733137180251604338687189996999961421646755093042366714915947906636527476623115550279537622119353159532031710367103945392241235031808632458487236934409341469451589207557809256533044397077335578465013177997792974518403760054518112587730027843599920991083033568686339975707175143529410747174297759657455073544042675357683302112956091261088282328189067496416601172375253664682543708412320565791406557616530177258473465716143343181194285013918954340184121444089826233974833602071490566052222075330602774283730764157410285872342293363783222636918864779759354678833024843263643135299453056725627056106646104702192694004122767935782172477061954941427846518234195972965896496958140719708709087349427854289151738896199465082402329104285665031160178967050863292210475700365419996877095153943180816262171482559090140307846489157010606367659327057622210475167127065447970231190983264260436998466290481076411318179316307031446817250292089905251332161726278276908669190957012999518605831986488914376704077932172937730347978085232814720289552989202500899804783935231441069956182275297785366507484677092301377944128335124706506974631344466723432959783754717948117231805092557286269219147867419416430249510560098806303093323173566822971772761880047094371317303870014237606383521524900658330617824769926593720568468661217598560485757308778752812307049358524114319627107978313698690182019259829131955561018101452483271406511503024594903533341252607042839570575719176653358544199631397874066504000869428915719207793585427487881639356169452231809481007499985629409877970487784125319467371145610187319403942398493820141096226799937108054898260106483676438828997025934202824333830754537929352097228785458780274565529320349626741499060306276173129536470893492850519516653441552859628629424085025257593765763432675343866851831062687358743009519251093024807209522079662205030828952357286572097350948426129894553214829131724536411949821004287685742955351292642055600819912415557348907756730375336490001170920124239508079833438373104160169117633164500596276759019515198729596494000152316219552240143568185121725680767594241135076737786083632817265271122131392026023236592228950954651452162472214057374501584302684701502000975183375318049030799875017255180775182867612436034151575525093396084111531399357860593424259271538741965533413639812407923362044576467377243517225031645198052461908865402459734364028564193412711420538569828653982855936990207849575966539632960711273717543163945420186076100965360703412979091561749871906534663240203248111891559532743048965544298301712346022111560369512947765620429144073505863555926313076045874501326380854522388795919243254767538003840664844894498637890140734509003011325841952154438111441641208432419137040997298221050298964922706183341234192623549932153489519685980986767881000107902315199674352905251047286942477491703037698034303693021649417831559186175836538752321474484256187554727006477612117516657546312464216593233551820297816249692904329502242961387687089344786846282867519943134849818683976705205874735880006832376889540140748146666981015290552672914732956132154378532927161473639282434753358516701599431561570823836767383484434709312543547549715829285875407783423942287193522533966768306838052595296687617630870996349685245927858546832356811591707571349301723112216042514855422907278649138341618300375652397625686429162886416192935455791063437087006059809453596821961405618286562960165843739345047523616230694159511201800702381778293850361208961514349498589939019038400734182247180049565720779209939640418589187996740390323756871964201107030886596473933591543388916807445578274300027453884431153447740458897787881090203221183232324635865886378926969829564102295301361942447890343837424544779174406100987287615391940974078088166955794801010362050041667931685821327016798863255039318987984247574863520627941428884591116537065178278266535513775759351508409186698983039401230802137632902339774237043128452580305560215498472892370809260542435494019027511577482414163491644559940064218820631126926867189161982338678542429785339515014326469208513566908922795626074154342677725183043854380491005931527167875772201458746080716444077458663598575542946160580435766657572647914627591648047502533316365495289055943585065986912658455459505720538719810011952672074205278568962304059927057038493024456162285885760837107891793404094608446726204460226936077323499627953058168956402003872037178171290480275625707492826101785911004017578463218861057227423579722067919667847340010661110833076823831523425450872621279056230022896997443070165867379779668349920575231346856463420144502756497091026989816639505456826541953514423021861769120579347751089931019895502892534540850164840449763243064380357317813725042823649387879745336302660061569253829453602045713423725135160303762183238192000747338406309525864106194848068304748240561151674292766735553580848603928021031648347180865119160072153671253729986883075013202194295605603112933359359725159378737545829684653002308291319618653275741407608226801311712917934026669140908485686896139202520557388671993641343549534764939379047404990324890112841337007258164550390943320331372861867905810143003357181996571610909966874062086302558035828620022684728943125720718383205388767606836072995248323858277265221442434369524412133269459669874773524479167760875224069103609381050150122717236479330136890158641422707826418043095654362660959506385313783603942150134380045376320245072003187629045556476913178445926827923581336380639110179774688709477623913904025885890825386532119485967472241377541480149513470908588955471064853506377091712089154777248541705847024521918485992742880823400088212066653180110591154128741425813699575927462761830635558692126504268548327321698415670276771975024130282171999170892259672060111025980021378877794306196190104811093994898937722300762051549565873942976696741673337453721257880070054550470978578644944575872453651879487388546902389193447903476661043990848271285735673463790560578197509849864740842108337805458726720372986922890584936131945819245770060021928474675829552557827483411067483786089539500271658365969776935811737090874924673601239634403036318973104911813160530579379811178308088316167775764784937738123956456691944424982733152829523929570787586343246946117039136489063191709307341978058224681093902758958723883792101306622059860731446572846810260295344153457220004176611139943204890875067283271093978070273597020535159199825958974549760130692099251593406942053159038388216618289867516860880769268312239228789175629770553778863662190168894593530306177484297715224415558474432038783288738918508487848043441914572322470364336172463243257093891712300242419976312961206446640902023491402982086472770220613199896626745033563862882128588703332731058909865330796031842632461940496459444428778624473867212409053180854844337061452522936172040629468518179651962280847485291970666117224253709686938713253289676521491550704618891805886938088150614398947236267324054533477387724210593296090547665075032777816292197681643496048611089094284363853472501667582490796895081930452378890928683302470039339052630348122467496136018975193919648691374995529325304365825660145748433392705345857578965758716695876896409176762380222986208251201614408858493267418225010939160175103023324376744194219675325304308943322962384210759200409768070124493473342523886174867016783787926600543802523335592922657861273210105434580736279786970973450629404749974298097390039079791724950568126731762365328329978906740098689904424957867094761305155276751644833315859377884708946375555184797274686558277988849573826917220937579739385071226627416566122540546280580561355331575250753227740667945446659597788446052498838139840107766043434640537290352380938769183823413653307357285618468753830758371310404848925506919234503960011027164553638698467239304544341329268508188820894044494836082075122921478576442817995065898560815771765789871302967588882240261727980837233385260169758480830976135636307008394335916934164375212172885445588304798424572917872692572223539688143441521952465525367098754045016321522958618563867969219018446200799393420262622866681708722487337824827655329374640625160014928897522585957285240932691485918147056598013585907881953585242511446957704542785305961467670646047915176190443798442358983174398202715872908367616951307845303227797675504756692301660929522553598668593290270131145244733511349793426749152090649181288071396322042700275071092662989165389982750754099987006329129037317218307375258176572530792296754137528979363850574802008071735632526511867167020119704377310512774252722019772005579312876200459616930405579548837677117209543837049423984891445348408862834338409746288580550642624648399911532178200996820838604817500040294927719276314229539292264252290520598928160602648650841284417460946026754196897157470603065888004571104952948070456782311242836745681558081746694790145680030300927879093584589131627392159043217978226024377127136248236646582475976922315289073630494987588630853536576936512531239881629646381360255503637705515174513678917694527596555170463617329830663522582644907212008620560808362630704556772736175888030956912871778857070273228847577339600503371403967238118243812775071623071340470916426097083095911143446705726641111016453293021926237962170646875098606714287788829096152098452918070182442540268184492721114050083271646667744340083711259792502178129787055921176893534962495316247440025869965530334811252625385380313477447359641503876797164573175270338316801235520124649912318795755506963937906476001242004304989599490598712671417171100548707649986595974660078408182013471523988291244054303978898161674200116987599604316819755436259690082899762294964058265553393669979597909815432941019589565343020191447103712886821781617510315092059835364421037826698669278648995111360956306209859985783706795182769317308672046169894815618657613460653453594265840760670149461619015095094086506038800041410876710667561338194317879272874204847194859134708878966581209219496519652899862060407879418921056113589761955640433652278091247725237932013143815119175558508367056245794526546320878288829465243998404843773825294113290159571997353807951398564790435336669531140988893211170957625913807258514013012806728457280551680567449210488578851515325701505362467658041169684004428934444206303555040348361440914507040302552546959652937633895641972342609873601677647657579893909142117884510920365957545953932511161807565579080198549006842217348010593242992153944215620053081371762921342327774893940898231781180691762844476533032384634996767763270301758472404090065621507066189866122176312170529866168425455013119154593655209036764205263194926386590793075287071440019081796817963418319458281809308934599562956373780361866831224151836178542528575970157186051803062914663505484388794121080349209328207059980814050550871166878696530391913503729093865940943278860791545618679111008069339297056036353138228785292223384519150416059429069859198757458260135476548825329467916821411185008247989272017672537195634498487537438615236577746217856862012475513341239909807651917334480550033027156850063831621700030235246390088776900051610438529506186962741058733146931149186020201060562413463113322989323591310632556020250240292887265815409300759525319717358396941444525400420147423226391512048295856946835483266496740576890546332048712525098437032180138673260575470960497592512946281796079950978857166130402403601867003415195242634739045408494141017555110961118108968004721025642184781464050542747468758848091639981559600519766375797709542496095085141046651251673554814965006978445319720926611884363845316754042642209621606104965417643320329128020047794965816009464587749887685589426857420496344390399010061180146785283724952250791057728897307790660939426737639927700294991086979719460165443524061280082259167932983381233350825242124447567234722388862985815358961043651131958546377753863941367309739538613381153574604995044488446827766951618836813155479747603750682756503087648837380212061985807256426075640320963954100717407837461234748085001078332014829487446920826489792160179683808272728840781075093403679581433387670126659724436788530836766052015127082514721215816651780951246167460366955195268654414046559428100606779198476691714284596458566785508487395679603732874120364941250108950652669319929089565466802995204881856157647768527282841905985948798019401194315267234430383233756677373674555985923521521129435231904850781746233464850868402660278861167552857393357098135711547313107897202488598921311305053442816819643499735511891764310186261863225054642899945139877788047270850286725419193456991198964780092967438771215450567312410508309372166278427547041095293740787266707703207620925034094579245662652939055067064669713987606124766724042905293000095884686715047025915861672930759683437670201804141296576950707452823656485738366725699987075051379439250200357740259473641701876323255273104599073999926444557083689054461241502474095210499264834830237135097884319155243038664529210132247663163021931944717005597091536739576831935042140020627696535904214387546384649208017467050267498642619105587496044725914266482703341526137549692018736711425718346833517986797984976023934572726176281860966898054059353334469355366788173732694942227128684343036802219902414488605845593968249736302908910991636506994424158767113789948591025384402256029689145235557402334401381438517508614981278646947157128769372119015080132153753026374512111002816746328765305752682260993030098510890977849271867949804956406851684704395784501932160983040338388131446526994711010795202194802469085890348584990580061466867720281183767047168011844923596102299940737094625507597332635649117129955282360772982238869942493463248289894459151064889893842664989778580289447370464349626696820399275431728366800412443506068796310364260826451993137252889706916188451944940081784223050284313248258084487048302779756873814865534188434590356799218718892270224602238870509117627655743825750266193619943951747007922614825868552971383965503809801917424626020128441956117277015419847308452547967809605761227563146532122094318537929599307945460266121650038800207783073659827295970425699183662586874107343717345170955449078675432390799578218241904997454135806794721284787345936867396037413020766682888601098482965712496706312550644828682443028995036116711701353993958724451436768321898653832217783882824475045119037971842593664251602500292567009181681137485928391756741971272855898505396354029494070016439874027304280572710968643806352469916778875304149106066570182203112499765519178687741980800155722498954672765062079086235626808062253817514987860528127575056492346062501428268786836867956058957883299943090300246238991969512460768593361203681281650776939657708146618011914837341146978797043640039676501723547384286221353022803235977271974968436381079118837937806394438790752026839250527747437937478743225972634318700097262922701933128896590233419329759831281671682155904952735384624821785011657925972249242313545868985827222333471830490260148517154915734517645560919401145581758338759450213660226471500212466254766270669106940583825181834519713587086884856736310337110984143762590116909851767465679096768702266734736427489825495770209888407205663484608110374987176394814449710021120452044866942470755026956517740303053541898774016016947042786840946290443775813806355877530065219471244674558233846805340633661639545687545063197971305289916453378582257203000290296584759426110216974215673226811407702818494926789013877796118252817472863390063502584203832295029362287902285525246294693344282218895145132381413449860978152176990493233590053429873051396844696842823418223659648160154857830007152416756161836244813560562307013903181244856827190536148529415633371723198778943516639768792903657177025025404569540689348159457550249228679003225614141897492306073389621000181430367338802272527714873341745418649526206373682486301638352355562881122434131608069025643084192746022456805924431656303121568650294285349792425422860631542527570000208754166593231926797138440502724198743064881650091044958049252487601809989530460992468469270005615045751547745773457335839728140300167684654688115441760167820605661062253667156982302199698344899530839239747819520251877515337387516751545697843720445309915754007715751391081676438185841697935662884916228706366288138074086382954965275679984379070463336656317009149730262255160435855116406670416045994493154869185341552444807890354834720025376434629619143488976049152276360657963995228638838511133294661248571486992289156972939637654247757374765447673130631260299468347884436033067613813374193060174042691369874554569608370599805895823712252183644473532056289891741432610628412257978476850776112044231962510353357524705048795690875457991388675681058145312607493474721538198213231552802863736536555414014103813158861800828624803774740847498326886093423794413267017932262069772661847888690563210674387330645890891832180788213380324787342080862767858644761336827687072770673801889665031957557171999302464158536696693823072578296577489227189215672313784103572753196981661145672214915297599286433719108522430955727178382111659869159286703036034778839800596377084137595566762074689278744101901773915390059073098072934984245565878121826519012037472921525591116494253076722836701857832884092498560121922937259486833397595707639714141401943864161626138445130051489372145826827576180896591010497059103250231112811418363349909694783494345871323670383561714083762040830876247153798192435710848432072913554543382245106766545761935414603151562036063363290439034016912065410687953777355096108087297717279868144953729275579072924931748191692483059627707566334685433501229420721649353214843548529270685446483589343501337788577758291761569463477427659008633883875742795497411429228095719734179669151334684693717199719240209656502819814121755628947814510058389791708067013484311785637514467614734489781414529480886875505202721918414544482227179970224022931043947294938942281166878332379069994122897890273253872332303687697783199619656906910272913242515966349018023131102653824864477457749891567066232397725321733243139319063080069159168689415007097582916616795531926548071852140724104413312459697595788416068193479201725016685859864307857022985835253271006576081840138727398043039582477460632234009369249916098704131500057772179280039500933826738954734414955869611680627020912846929557323886742257538354198055007333826485755961944985894437711254933378200277385862716702168908954436247671695384558889694007387540381869036117652216452957568371058856765201645615168809429783570370188963658852851209258165261766985102866118893910369899370000595418829021733433048536014797617072693379202162498148775392562136163639112653807096325910558862815143286494356111821663111065570141317127253910675287247148022438660596069354253528137601517363739920511132180934514457158887071602094905195168836737039469228538237063223686740543670551502463992292919247564189392297309064947794725565506637114486298387958144578939160278648597789874887829350089835596560286342934187201264402540392046633835265017727763716575541470181743675504447296229052930513545781345450703714184253950268847243465804998525620784871293640903077436801726163307939700114044966064084219560706764156379043928002759838079916249956431563471027969953538613994849049709184602948962867533312736534225923860403347843847793294780560322193471375053114299432419173614042743507656284156402748782578976206714126504309354031299334746361307805167588474779911897120391334521474400767998877676728421616991871735022903259143378304603517733918014522022346373485512935472140191401513810776101377924706384180422733849138665918386832239529717541788948277152738662302393519150079283734362554593885446160513422147123807486215696405746112250308029349500475673088137590539458205412591645753317973759383963491008503935671868529177461221289480523008704063260185700491528529479485260559539108532788785087125426363332261904606353768665310680805233693433519655915951751126768326725164371651874609508671052060324971978158994278782354638372272018797818090312223769808253027730541252568620396538959011635513419196191927472930397940010378598576316473273713156746784330357154740991001722844350789258712990626814506329620268839324609788173190901462317215223700766142331444481513188424873749336093493351353931172752784286264653952634739647223260522800559368004187887003538454767955827478290448568278288389314057162457983191119830658398045756363439453081028198844750541954100557981534269140972531730587421810739418528242471070973765020312010534095546584440244592507891479362910708532732464962818465207794981033146139750023381614138671917392655582847957284051622502137292986148917153945288004420397157679727482491141634533784619890733685548543516372641424346160002391473786510688630292431865103856051222057724306177928502954607296275555765482019667788276795069014440063177252366250000415676915140466584724663488910874418080041120925732601088812303144246278957262294384065968985416140986186371152568317121742407375230461842217836054188487424016351427189601301495265873858973978572666324906742953271132507178341297308868220311898118334220939127555506193869722192709234021414370585432689548183011563928597621027827150976665992106710954668357686236732716389623078695030040051650447777266885108764193959510542355673937284474749730365857973079299218012756364427619364105860368326303343719885058874684068656026094664964042610526126474294916183574169335467904252101063476036166359876483234399212191707362434702696348201163538181854770273084532968343371107372078838374116324042049129781917144126884910191143383559764864553886309652675287836997301411712946495081279503833763841587721988853989011334068873367450363106208555868302035137395981525770953623539151076922341317707729594105151218130473938398582468613972065481012861956659968567240310663042459388418174473276203216335573603471414943991596682599455249320095461063178203854169407910088123917009568980187479894875708199124480803795029289493672432578618544172760308554004125746619487130437848882495496510747282416565614608588416936070904404414234640879016095303338959121119563005501675760970721355298677550732026502394107901522817082057302974447941883611297724630720252680412116611621080174771639539720210625809328856013326831404999855396484181877972468484203209766068009231410629643134450191754300656667532140103597107466483962639122789602157015111788700386920520987644348755093633911840041658330499397331736678128659082639915460939570234626985493433811242842347528832751894801107400771490050839008193404289336612879276538963306006453837704938567524285300621744609346013491444834155550789444633221347763042751409596477554198228896817757760544794678121310437775124714071624214295572215108635948218742098815964254000283506115713838771982239720829633681006803661906657166782364189879776151147405773962740737198567477579102379030982335380540074092682309923361242546854074605159240864204849372230625242894836033993607800881821220889812904558528779437285485258965921964012459576287449495744919030734807508269196097535371536120912586483583344761389170983676833081276760456578769176427968733111464920154356459259250727361305891576593150929426168340890061501762119102609574563777390668939058807831205952712171216117706030547043844073835515092531960029045452625422103978511242072455614637425463146617778750468983165905350667678911744944922555148480635802198933362907057039187804033589299052694295749075541660730157011597284758856307803376548080718077878996238038304939629268681859106833309699044957211363207343950140062556344085919163537930847414368083975616133520821432254474888341359802405517160327784219130308405436823558650603607320021051437432361006000686285894895230819948576008716548995482920955200735414445653192457885863861087957051781735182074863684653701755171795628298115478280033369503655906813427528964203992963741789498346706938636717863188974655567193849988744236831611823236690697678713207340142604540594717751608738251355717882266580198183621226800672328969851186918398690854774534365042453908172261691617217211163687433991211391601689378363654257657938635074483239256105299422493446266869412171252966539812339134540331105915543118851827941252478579230816571967581031366412455588755072671521319165804245196995465186778241818318955929538736881135938732424759426092107242667430484267934711661574154095329567806051778072479904615378111923926057510016048375070466386088135853763965752815804843920267346822302742118988560751811033765172500170464603501574233534753730286398982673445965963117408317973278328719688872848696421075128524046233926163450483518541111345097715792733620726777002024077955689826894939774684841577265464987334997095718693218618141854485628716191454834294462661162441187326984231649051286369205180831686918095637383067645546681482647908770375857137499180943097952103372520703852158545417862630034754212077065744186883707992212354490373774453958987427451347196737294621394189924717415695811836981995109018448621126764757571676901850855224730258662607327002400309746684497721054530432048110902002042984167844323597743688418857241059347703455879046429568191850862286861381284703694121797752443514937190257604531955557574115867054742159828406079711122320231984685623274370846848790968293006035861335448596939403735109406755413914257338910837946332571883513664938265663816462830853822384068940736953766806630668177216901593086666677727497159876200681927447498082814041628153561022181173845298716030675477412202254404463298349221478350222462299388425979468870041009259920706619723150226609481898408909189890976097771323117866317801623539797928551445822284076519672478654911913660221588537897462562454707940819235783197336439779360774955221060656073529338072673258553677978557762932962069440067727329038112645130094020966089682780922450225958546757058765437455959834160196340054693913619013048170080309202958601383393854656604660031915342374136435970350978536902742779907374222754130415501591412967080371271785932935477060209203739899565078481515849480707169352085076287394544740001840794727921057416382664601721995869603250248735814644583566756028004915775950622554338550323636487323040579727437045881365205895519878275266303161395540200748882164295541651543113679491896670351039797401253657048872386738871643016450074403658596211269725487180835679293766691624331693630759286024788175783046880653468637045519363868050026931443661216772688895370015045331053138086520670859026598548529381647604188288744722258301655918338245173890910022725759336706175239687137317552157705288354050729602727708597161294862925015230172768823752582797003662808216736144103288939446712176128152686766883021294279644770593957929226360016590549366839914700533847206102611278989471977769051694417180886112107246954603148562939710623839880115818251043293506609902282764298750597878340201698688464794727302754146521780118007684423399765412674820287063431225686563386734823749309758892283355129448068564150920676437260375523716863849021436682949509434752005153778213351190155662959318111832206050292716837772859131044694847699514994529039377532202363763904865897578076435411587556872329652561301973436787159056426220039562267272799351518851211445120983835654844278306434166565231899012791086379041902382136674586441479955870001736220464468365463895529738219917098451224666215607821915326100556941953840162986335286594777164806089245215594533184255937838279476115481272460301350633271959201108435957488447470516971927499764518356138142240327694253743326038607273226791294479258295164039639935842074451693746181721345147101017329044392925447762045896844375987120750310817664831435516276470320907136439836919006858179448555097909235542953208571577786957916110557673861587643172536769473445556299518147543610520131306709838393161319927095591627484558041280850198686375286413496628179168644199443331272094045756435218480276159701218444879460315758949797132865611990758993750163163103811104695304476865932055797682653488305262970750023192097628456084929945680079562443044417935146214792934879334764244108503096702265760676813021292953689359334285813178821079835958130004858825818301374536056380251384301692914459779278155061699729736238467189614058539865721882109566774582975260727231964712553816376925575373133184700687360482066672083432311708726651272722578723120376038136395973673051098193163642494605991668390246911928065877322250553766458667680655316789859765247520478845575997060754681208976465756433480040202153436390599683895077279257044821852918499772020614517506125598962792027893437065591001801630331111475083388214554642666785700993708018112382112044534030659011902542257707915332955008672924354869525399274538155390144763495275601598733914689102967439468499746429401091031345580180806782746124986820232328959296628608298045987297742676521869352693854166901542260114290181333001904779795647047926477767110679609281670993375227417187243203682287288368760022477051224655520030345982440354294468620889646397063216284658903402059149214675581899970421103385700766689975728972562053691045791327385264662853838752157311188679819156831994830428666280631648086220993964086906975775810718082788144133392434400839805827305474170408972559498138450125557789829354343638781367347054965026201923471873520185191848166623169071304627799481595141423014576219044437872259458738098572538271727107191908690003327995518690112965647405728063094748170528949091812466817593502612508642996369638323124297191388453079085718495213066327370609232780482342753888008130029035890956051866464526493081717645637260791327900953442509820478680929467922698215808784854667815006038048995176959929463860487754019558059446078444716021893788387381958212853402967967613963300009067243958124153151112759041538586104382291916019369426053675915679346228009292265286143905059438306060890225948324986748085394628491750656126138610618104541784408214164546392754129176864623578220702785586392377516711218907862438438738600339990326942227006059374775336661371160423162052912178703403800132637581434424094967412324871470179209176455845974808160548705305492106329570913576706827331025014319297884012115214678886814888684284312882773563459804964951879520877060987434972863073028073581428570496742841491260877546840111477727610775102443772517548714061249874532380395483037772774643239789556073666012141965955035429646088944109760269282321285213354332353607357423933007969937102138837179249416664444327937423934005067805208599594053608430275511447913640992792665243323523895457505338247039144552795938074724547949673734905031270049448939109043840929138840752090732512188230275867897935875511725199002619967079842893561464543187061294385885513296836047712656601301977884797189193698151597590828232951518019789961122875362528072347406333252874605216620096558838749496576119459917011575289881317029352738832223150089356191081147575411735693851445691553749996943487329012532873560913253871526970578066037960242567517965504747574629625106842730003519830519007421918381071665438677224535206920092914877026347932275376378361050822173357147232257957973373269467038504697544287905215735873245605853683951576536823565574101342477912319900062008657088960476464392200551158588304414679929360339545327474207071045290375734545414328968516206359037419488659419690495938033694154216564071914141165839150060261560653653077611678162540725980317893070989361805242996369376779531435612454004985103438551106585472573704548746754296540071113780438465613060914505993536259966402962856886750742941336716142449539371132256849332437361678485489654781771787083501942200193417348234560452056056964738269275360470401383956131382191984558599237910072183322655501998765413682927804798984869465169944304917252235964329972388942284386077362072631368611086617936440310951792971542459453679337025525394893708498328245791198484785733516585105660460029019923576431700610078945851179758079985314359173087800561321005529791019281119631837287235467347499403194742781110824320506210244914577581653258374411621450354517768637072554052607709829723171242722103360966758787239875139447760886211952139057802907726944516958016779580800965202115634505713315226420759685834491627704731963551279899536281479595615668366439461661340070763107459186371708232869671524839213999707113185482343091387360299748297540253050634435917558006852259556474675411200378218766584386740293555514786394774073758929649386732222925206359410830953294573361736315219042940921869589910104342229734249636380448696389119836778885306375648773664189260565555183252601073653291742071259495473910250765191276021036449997945954522316999465985542758151028959303883541779242904429887609355986474103207697764514148086509378825992794057915123175268878448976798069434920954772711188829139602496700951988165087711808132528596451898007704671677922655317644713107546241685965003532130454915941190808989894865919823917848831815792625453322390552703777866516975647815364703904122265786786356655641221493388443033761900033494248021888345901517436870119292968696212880426091185946262992256428973477625424733229888230328675389613253139999739855271508772130609287277680377404909188368178762218018736060434675329279918382062326349086437216708443036238231813228647376829182297670895700922216478678598645413159875468053682446377273958303343599169934795491881288748062666432003364824163031370500774016647668378813417136861160629616579795323453700399664288174880066076113137485957559805837031097101994502320992053769682118548647974262398746447989572729835489361032249035725326774972416370193667211247639563680421328026421151640675865330433232848269406170820725118244984486241182358409850177605437444227364236820836945296665667012400129460544800859225209838095022584805952762250830312742710807838055591585124592302257860359442515569714622365021524298981201630038162182060282287861369959246822021849349855001542865017981461178202255052507958794173151243164173656249398482345680281701567757397550220788452732265791517332026326500758118603057324373763906096000295130581806119906954454643033660530845333672551355808956324331002212722717210109504719810679283815375813254687824185902116009116429755968640818037644544818657037089418898856957937932632959257171931197705410998696246035161558365655009415700902660558344024393983383195361100854741512345617508148316640983460109406197447105707713214784912876155152850256363019785989813830827089790154547858769461033791835136535007593385402861199064354237395904762501207876473683411100994184228431297304518095087777665548227147695645907307878014136508944612028786909456888797958860411867709336690469699637839170142935100173630627753236624578910906893898932033942274323175296612226197170405597417051352714368612730093232325216970345962259667657138749458576055640129910306272177571606715073613238833664396080210535644977786612077199442216000447134044236300086002211945312458953781711862694522833651785610948049910493230432529692864639518384368757210549829675678242463388835804093808731799664935311057634310011449277158849749739742199965421394172538478108580694234469754725443204229160593248301808420173285493339405420330628827154703772494020480280122427372841310615890114694079712127818568143973044835734828097412595458178124629138646607781986616285478865405418897176451296396013756888664864153333282749853200501801187338812208440847714770068538285692837676668163599337302437294316571329483350647519935675060926232199314997991700550399294525959551434965968524932627472592527858445535587406618993538806779475735828715147773883941736214597525693606695092290658023852997574092836496963373132001426432840939324736498150742127238892674199767095161424854773396105533147186465469513442159569470830777879370319241734134790455888958949288853395675751706877616008506035774198845323975328403777786483866423031113657018833624720214236820727681011551228255891639604950836483657490775211705378289182728583851189781384385476792612442425667132311117996199367921915091180557235705798603138631158466148790611354207107454392436480382765897714939491217543468431263775649180451633089683396624511248480752241341642359790831446701016407712140450894453411980731156203977933313413592632264943460866230443853604990697447714126041377012097946930203484606241449278093625518881331350441210774359621023189554077026433376916823235181152767773230987852937769347163336573355161428938619673846764586743436024293326851933660351747008247160915226029475091229272089796472823094116828510332916706794694759939111744094748516383856060112457885721917642171562609796441013438148918142918892113579229918288102665861021110457551172717006448593424646170108411178157147689843268538886072589024811835835229033986324412368403133868692043890386200323436431956440430773700213420871318105472371417520286704093632410093113820527316382203531412773876449403535631749689278580416407613634605104541955986221127293504614578352217467352829191813602281112705166794397400949039630115855974369179020756748039835440369833820089496021247611637326240177209986852182299353846875663739434278995957453088471007014287615530980403914107847809304645487378154958961078798928865738036461904842477070532382097083668846652376063698879553907248509257637979733893707421787630423415128947478139490335402264700454307737143035478318826300988550493544161190063412383952834931363082148590992333998140083437621085791180037360762644295802029475738817207820823305259703195900887747869989796322428933785397662866981121018853860047110399771636867773617133496019192423489868368883724399425698845954647816122567936673045419389179028030605300111824849590315255638915496270491751020259706447119430542790025580832053339869029336317919710672276280210558109105362147080275257712578732620560526789258184904914027485065593235495437280188313425124911704978818801370184481571042830406115383117478931888928312793551324495859637020361510422490183745617913600231369068978540229075230888778836290330769532812456337541799677658300511460414991321087093935293205506611807493404629949514207958097403769958362013288989788035371870280659980925091709801765411942604414003602917782221757840331997013367508176721208886351521815047669193415065870472365117314634316186396435221156429581105898658051632338204345824810984399955420559278598687596891245176275296508932173803114842853869116400972272101144457842481741167272607846472102032991700256518684087673037906409755988724848920595187823261135278789102818255445015470356552607040300878473070348409667263777153580792268902329598238750234987577241818954909127034077160733099244144497932147040880240554607945483997917717994837932080733070466713983436978139306173672458685028625709176267581816833519718720236877666535984526167176104292713452101453581311729150128518268354967108441892809315608438150681677539947168815240320561909561369775877580230459105806900947810278455296782318347689617922228081213323623536884258571731459894534288849301688611713095197226294095792341805341754431488926521968352955496415190601157417875793054339791175344491104760124052016176957075689136717495607920868788976899241878813636556642528797001932965215890181025668789914472873192640085424172623317663862656642031096602024627496557361200559960925633245121662761287159399405893922220328496742097683972575687230140733712551594702533119420497003168263851268492093176049262521436228430313667484939821101848264390886300105543654321554034048571581093725389018434886283945172537037366845997606952715918753300189966553312290242485555476564232290988090929222355663212578516808684049058710397759085123318140925142217053549095437559582447158404351182342192954275497638147248703168922342863596431603886558896653197750994022323883444125132084272508882971097556198861641281090041386096156038907245437458402999583031906063784058518686867428414072693329338271802991341272101674059622650459312295917754804951980984526375739708174777893652303378999547805096952653569736224855006402787432273623374310149869720652065288082671838554668343996714253971693491687547784509067582922836904625416999929900618385665813424267091094644158180433949964199746592760669647328136682572294849319785750426966333424098898724277315160768900196976933220146301093776309018842965645069379430473239985712366694961464537934245929013459350143737977368406741878521449506700207576346127565046449405410031971333823086889030305341335777199920310437366471293108942653049964842857436742200849768646535775992471522606208840260152361919625402025762625559337782481333981831880119356338383527077621878065458973725142398713787797917577076916647903934912740221252045430732182449865008223395770943964897274060439693103962765005240469338716992188198024727834872507830938660265921783908495941086071340160963041676410058484908496678824418418513197374563890773139517368273388492491568993638526470710866075540510021818622082814872636868054224034321213036216765277147625867393426442090504919168952728776504323785392944077072809640465725415433003430207884644429484719572934740728300233944681377147693680055287449985631086392119708545075689622721876275359971440985799155252607849039288326013211431173720541222729102856433067106772673164577978857055596133933231899657418315691326806572040435291096621708857310446232878667349531163064817804880128801654671100148531074465877317825868645223066459269221107359523722692444952517675188277549857774033836260320258936163054375223312621949323246983792531720588318125918129874782475846489829434928938439480126010782999504011790826421298728550333549943176504594299249028116605923030398609874528423517095617453879348710003414173963875830869086372064596948983937540504663648899639118063095070740037217696165853029962818414361036340723612559534294599876248060191866870536588081713942042982079319661588548017600311460013130017866535808696168004340789593708676969351239518311945955915171392233816401576049941156434037778572176304239250723218446289860856406308372919619155485125899317001046053749099182790329786987775354329674625006954255708758278111476984544812327714143682973883861028805501239178804126140538481654786659143792858659422070193055181402783314888985113395143249242617274829321814728837012007487130069351745817795256510043901522941773792272026655551145607441672679578711612891954067537187292529319225717476224210146455480912570283243807134633726211013307105678173391388958355320381065783408644371951626649726759257594014665440689329128758766110474521397000756211174449464965297215932378903344693707040052779214382817564829216891912607139532322008863323537698347863558245608931617808706783060117282150898488346075759583829179180425877179738289110056407931580190488950647652752471735655972192715351183973546349248740028768713660210493890890503820814466976879099850457629302511156541371862902184026421437323322177266512231188268862045394449386714758695082964353303770622279312631994719946566735303316794286174745145436071066228447497707970737731009884833999433571811072152831476578580205319028072212567253469003290748524826730724457673928428971480243230916676153642398701648423140671086734510770067921071749214078992073301465976057095565716980911283485734624247389511539414335356534536641513657430268121927075229293393622969225267461892558167983402670732674566224616930019588533594585163344435481257607059555381778363866250656416414964519617444599322574831910308171420540462718323741476289486481354328542311012597691428878995752959877285701640819427896650219356253107353432286185563383112559351831802195019817870435721604890017681652120006144815679821262263354169672665052298254767744288229006354861364727485936363898133300643539960843537107337138922114223915592647242583933500024836113507283313989855195309615600922632076393237462853818321623913022439168775899052046647664570549175745596725214213863903798573066680236656100267473577378480402017170060249665571089495800485212650299686742071723469759923372736476269059031543244765144714970283395078611789777260513016601436211806677974448640931915778337732093127850577430474408413915888980825086826449463558173729977152190176879912254218840219994672965227686549410143294875744321508843824509729585055479437498057003273205189650534336068707105577904382636635780131250263105645107215154040542760582352106956676205212623643107273956275075316775518677140378588672013263657314583945869999981773859167432928644540605778166147901056453157978597324017918679185194911725502993018398725319745738727197604794002998165069054125084794605491894770542529633335060712976478006456597382081098263604908044948909840529417871103139218360307749839072762357328151619404013916196775970435015767440975168871595859325147397840096433510238745055882299228226298494833259985697449853823192433444626921460739338895356916023650638287280863148793485855196629059069424554976953344875691265718574193104820632438322295674246753315703854574369454519926472352202698779352117263623076236144529436106243824289676592666579736047761818811354805189067258426962369012960356205766265113567822002534686976279106376203152253149635113099452997124103974551835160449777406396696839630947981884440817495283791312681343445017081350824310396609945267097900137905236852786156723496673048129183927092506330444236437463839271870162980625181290591080073855081814868946401777920958251831328989134280777174867005459571349265846205257473580953203749354087918558009731467344023716418770939433784319847436953318084886571452904945709108748371204095633952027505491506895920580132964046616884013068324091230442346209215025200574814092684777597638458422015028020713119316231466311421482049724248291158176171151237583501790161276233327658186761799567540348997341453772331872757848585060497015114522643529548867820348620826331498437234989854754716749737995086448197596753721977948510651958170902926571497320197334263695527407915292862965926516877700004882092380275454701385183346289469531684768092596073709142661598024049222125614125686089711087422460612308941099419420377623358782312135387911317712404779036316713978339478600485646751462139416711642352876292600454917292212705703854696198379965224832174263775096772107889502566766763485453245759492940825588955211595883437557615725764854472449915766587584905362465403670286039512148810490745405086378107649840754301589796073334731307459779915059322993228029749401625213075142020005874121762912346114672519370796762273214467016450218346373222777805469427278408038700147490113304339051294786463985067891923001445392323866884001964471975347084020509534500731511610790458445338892889854556426172372432130916322779140746315613946910700077377471025817346486286715104512336570081115051946723796891131115232041899563771234104436217293176783767036713614125731682166405418072549174821780672375512240342137476341036981613204065783167230168699780525815359304262439353817481832922728842053912752159922618097215323041310590014379362675229200562586516623788825580529622556019721001659931654869536338285804459269009700695782860556642182934635457786028828282476276202715394046472162348288523399357379451091814595941949640939235616869188253436730640380834419598709861690572839663605026884383091430422250709829191400313283771052845387366463742986010120355078347043162403989003816589234090133772865174010352250748205526336944820815101734396137863082040397804369894286602301180856381611331067259325832140337929339895300221681982238112190861044259818404564629403081529393554056783562609876590534403907767055978035531566076189062115118850376648708589935262308466546737096789115965367536663590483218215390640312578685470327336291045993641822843511754701393852131842922185955602406702718650291138690346911319245782517371130168844806912772169024708482472457665279595268086164895363108890572949792895741206541827192660226254192979607432915201419907074612198247618164109751656403583377070775896077687205947849886330257575465562002109906634212882434977636086881994346923350905630308807656103039574401344879667867086707511593296707363684000429094474272156548325047555602537082517651780876442847661190353257155520900181609071891423782198633638508146910853530218111399757807539194351871877593160384582917649050289507222323760197395199138243913214054363757864490315621923112065765977865856469950856555693522666884442642271995541870066243541676250467339764285122121620231591324186497488119681257483594032563288749026778888501636525575609754423043798553942985441507597987913936304563016592411028639993800266069159367359900864746886181279155806598305382164425239652623879508612073246501575948152428845112747773844856168024365981178134980286348950684808798777008283591609724130015728257768747018473860355857654311000868680979563140055940002192209307232911782820720175327495987246848947234710523170228815183597167526899627627376713090924534884446574421060325900070772370262456543390770732237109646584146251689992640928167981687076477670853327405297278735058382299909209143044866987223774635170556440190787359747295808700662292168564981301575244365928750505867196207538252369868677869841906181634204633193849151264466359560245419623654604291879584598301447100730781923221097253770288298440690644951175416085332039672093433514941164981867903968242345097483836052592012101690148689342466802751845735254123704712931832293098134187043891476320067666275451353844496320277329548662051015864286819998444399305274591357611442467651819895965486070064291145557402471802870848695391553841346961290734496583766331492640766582021123917874020264475745238786676794046714358053702604103974334170119963431768982892537585927637679312506171869388633019060590138942178438094316935765852991245316712102478327319992063761623680440800823225832422936431916519587716024641811023070598942220645303448392175704030997978749695341414649815638298493724598838397622436154268267364220400582805230750691952826587492915271302715471475646689519875707558352393551129997712732856675147121265523685197569299447583198356484837370257890857081878093808756847332535558214434425530799441667979484159136719321804017750547169811354516869612675644460863567415324509082092752365432065080007548842972349809229431315171697958116042229726669540322134101757745344004353842097727796821635982317960133221049605098836985090846157181210065908337518265219268426182929589448547712709046623507600137360705086143806683277662950095740030340863608066713759715989475710745127539448696175606492397916488851109321860986177043863078931707798980930594714942905015828606670301349104087540792781596500086579469454480414702723484746101690026341436149020580122165978154255009794077825168624177703197194889577673325945632605747891131029716445389029166518422639523622064578559519611903678978489210433184476830331401055550170252347046954979260590484049475862293639704685439777763935468254676351693959071403765777385449173365660653627498895825667012966121475246960288629560762118982582572979187890204430026167638779881307481834033662238671378943371859021720643311777613607530846989241595884292377438762368806784604367508639698637772505954165608680834246105275808193987993072467856417562321244149085793248001975913555525189766384068046151733152192939887109303421885943111507703885025624450355374786255801205811697839919842050019904062950003454960565391564970566597337157276341834519033703335935714559363770322387509019134948474925790585509928642140720756240744890685263771565602815223258223809580344472565539529102819496611421479746176138091727458527520289916632869160785875823457839468974335831579538646420218657824644277511275169205812870071998250017322257046251466658801714643145957020340618996735544860169688173226192870855682209590688925009812169742397874146588824606793563868222863588674182911871076365446095076303653225807525529070173732553811632066879861316442634262931488915380599303738002979787710423033092455731056780388280478130625215093364818519614538756563831207520472727365865108853055393531000224870848292740499888229468569979062110700417046571233809399229958658510556759085902284496406626265167048746128067701917119463088616224773726874731422375841095821782635294255041289531527360308263330426705266640177794880493295667606536537882004613654651868383303425331523904607659119616538828603458162225894043161256418369460599263198134672063087992818949377087973082109248039634889308373977898885083847417360756650325158005617198288938445704418304273033810115509659270347648086272785260964425718301781168832395075764998634026939286752987560390369272246979464804712757749215043602257684386120432673957195750768118559460836950863436432463552330367955754643408599475706570094932891996493470733574920672828953936920663727167924556746965850013861457495096658879273657205062729034770978793093290961328769894978936207604664544415872118405707545530646703964300291042919766480767865407738573666675522708440707719105388900271398532152887896664304227837311680075595541495985850957555515120941648026385470006587461507676411762010763973524259523810891562147575609042769678928681825256315166222845171594105099123950336150921213751175394410070355897352583490624972126675165559570970934279468375769176608384826358164276947207301036614971550815671288257820613447764456539449396120005950983157607476664959030754531825108329221603944833843044061885738089962951010227427954867170464599816338929107117018859448848117369855787068115831360896048289350126001818430033181321931993654843537812160904490311210619284782539470646263939888537308523312506118102634313434252178010282281872395535480895341140669570678063301329366755881611892268457256506419914330646781907812909719520658287549642102139408155580280479640597874795796341521501528360224147672606937060102503813216398447379333869486464659604148298589343442550777002273266405959355043994325916676011313392790309299013421285023771725267095772361608029092782729355279100634967511780413931481274451243419050346255819065784274580281192260064367748804465025771594701294885391384657566603261682399724600356612530798144817076387362387408733924802541302773453898916647576618614265123495716248428156734342214560871733937295628422075793194624533524699915600662486088671316541347882810716637338032176930838201674941822647905504379274745870667201934790669923455807404313025569946492053653182784993251459490766806430035791107757650999961369344308070328000146581008528771188860820083073315984870795228936123355486654058186476291537823016080084198142029422641934248701112393942867517407126877201234053252431242564035414021922868788344176170489910674877420980672190441125407879633244523386856300686472032620695412957787259001144511445998939744650923013303106355992736600392237978984855995529128154835077873710444237690250653663074630572432542472268964791435278671000623653425403421229509979416464725880920034862816338774494111209248019125695247979988148929699840084844638163725139401585752428404729615677553653123362041120704814906126717759772565955766301587830672435544333380690602612891104380256805213361472472768609711656028741017072924385233064772192703121005258265443229452176333507490832365326488174405606348298249948462369177165401473097480821016684285450890510839285991130196707463636133226786206644581719054444842865612865251257511775192664758279491016693501471831676058126217944005136773934607785945246557966273283142450669441024790709576594800956873176367063797762463982449782098514826190576972307382440843312388515971764204802923866086379974667342801780128875018657912336733844572656472548864904549219795576243630481448061786890543080268621043013394744421720411117125937288585153459159297438156362556449797644731490600490053746830999638295922441070822044680073473610086827553209309997377456117901263278825631677101173455088085921422024021378702557071527048103655052382952965050481277247308511864050779679348187485530642675382501379564788580426942645900677018069112326574957835127373232099380544720244800787040412547743918368058488177965334634899595003121875527416358461867794372709271195743230159161139033550790384596632561880773200907754962820415862732103551220772628396273170271637646228447076681035651914118636889982280259204706403879104375670094647484443165167292439990367983853957336373154654953139103481370108890315387243315619291541338508684768149292229411400485054422269612523839326919808888956066420967437310756065444386196468911758534055379359517809649501400488552010974637429860811047385292590497031617714841977943627572314475526073399737130909172816244512050611311291565002900287246234340527726182518455562495849693195122705797550986429759276070372477343437102658396104601992623073563862363547438128480963803555749769209419573507003743665967633360790084527573315072509326246906983335296956143246606364390135978417314637395231807374192991465929102080411834444372230522455506377603079215118882995936113927853808284981564303364069862203445081682287866465280962645448539296037111734782464844760137384922034332678772125001442020778960976811864529286310856139286546426121063379556846282623503856638852097797674075744128103285262433172505755865861070558183692634114228444276436762735638626206437319808821038916738433502528087860483492767850293625408026674070892366647006575539473566712835929079756454634859611162980417833439056331118083912960851682330118056119801930150159770821979066523552988677787082193120114364229991050425845979213591223757465065929796526382527181776194074981558036701856152251715368088424592139760724250176465055867467783797596449258735799196338127652481400146136604064942120496118590192097378667544143071363804182296632668674895947805055136405211317442050825499374144951326203398387323829712098718785826584268142992231791799747434097608466598133619603172181793195625599110581258685772224371026360580646147705956677259162349673517557105170910474245239192409416724301183731924212937925110918383503064901613153270068996378827137860338731496132260919308473652913571748834287508891435767175654106151532926791925525570374475399204931005509496729339903671592615912591081265048172153276242377333133892086000500713941460769873872685900486184998938224989789063581603771485590392609912319506246238695621389559019816086986517363101155065383179809021446325451781514467121520857341418715055324565635544514316065549960137452169101729043515442730315528773196707746398190423314389769237466981651589107979212205191965597341511379323378580336702899280569610438368223968176227454039142660345114895143638900505516616250960748744989551310482375092093958537592114461755274060613287039329081279347792935843381962584834407855215931049422781554226693847724116464999386824893428590836753069979001961606915069067549863713390289104946217430738990651337610960000441737745896030984650659774467566496009015222801837177361604592474558191039684525147036363179879343989412477716203273403435838268913561657127334174173313120578841319488175808456872665920126219396947126042112016982024043454235883074570999337033428795740604307179283955781472657198607446161531294769551753285796603651971731631963753038772751659174283687013129233000698599775028101211129785117685997286434896292812780581639644235790323702145829603537580816885436272188055948626109129683155518258066700117916241906335080109865445403653056716399200123510302768497334446037058248327246515875163051628519687851711757671786397076450353064575380968481367451265704239659935152300101562765627590530751374593878468153525961685370854823435036338532997183567320066961271349993447057511587773629565479118102019970155256070420815088912404328425422245541130313619047340398808367119814161510774071171303479134024120562284897428218870758893959989827297089019080041202065684492556482559214777855920655768306732043325770160217917252608663442446489098626435779321701779200744622619389516829201550378386601329323065410894482523002673384192503478795700961369165490055544078042720099599459283490837047929874190122587313470643314747482666432430036207485489094809935924573372854526297964068113338047269291667067689803818508073075749528942992668129905602363503646623239058292582714727012316580461017692520203573556146168934008564717297685522677718250904043024122372220347792108461643884380353909100197858738354595294228032462262850062706012258990766359582898349460157797972902084146170442693218885224325893786417390593904304566488021422464032408663354878340918624657610756926829320579346710292090775052965689550982859254981018419875627553788530953578238307326124741911557497950809179863065105166737179712638095427542387375153226577439412977815429036492220154619536680748750386564198741486108027286898041767684676064602672943482111340906022073213509386920610138776368125693321323831491223113356987643864505574761181772199546603859279402401310275083025532609925588068861547496854024147555027210411977754229934350183214653626431592029672141334486886505460197828564538945331019805672243610138245428040206660317255869951085498125031231079003996537295762280211816356465019934338336466129311581543523126807519080430316020598133301099205280293731699203307524896744768775751939790716703231995717301980921874291100480770330785401693504521269165707968003627264654843633062612100498924830773729065959646736435231062022295511823775762064499431007398647652104496862686538871645596704218255923722315092884674149879264248204072031495198141460530514277217768655902990846431201579004892898117511830125847059685687376731079982743470429792084547922780306970921132677383879032367389291395824352282220914271906001884298012290132387479107245273465932635775927015251657607850884885360246604093383214097958826466965124763595148312085175345996425272418699367311586753805358025546177390169066422936700851707762361207155905348990348254518655518139825799316626856774962859483781390817082934242706567386844812059650315069183436145430434706497570579737894590371966058100022818156546963396028962614276672144645314070933868299343396222470406580162221700081433621904066256324508045765693347862760494086626947139728956284033312156184962778251632687987889472257052328849811596254200747188191214951145997773024250550833479475309317927733070585823696596283750739151216304786421328436075996016442314072234984587216747491326523716076010727340243332353845000113408739746905341796512980311033125163001616414132955398741272981222854517077175554910750485893051593446619636963969706934103904891368868402529862556729383994523363635111246832743942190880293625325535112772471654134687812247823639682930666769327751960920445699645570110981206944254909931939705737409069559341246143211998198026561546974579438943725364992421648689269717453118525473885959226798645400391477492932467393425301453407306747944879450326342726395253680892758244290337687702757969301409810491061951535773147632743600195331458764418025581542586650968069887031910913954959855127686392811344235548054698408332570822517055498366831996824982500765039348112741935685489145252852762987185195192514581830242027728759421161837996113356099861079771068518372842061015828839887232510620172251870046507626943072743365464867318746265333108244982090199472288620940915467084294532102377092137225014655893581069680247250608568455885426504197421486094671364573262655795038384317631378254936758501992019029523987256037751426198490522351343397797484217372624022149588500359034995155594674792707795810504014114768564684285661979274182858780763412789598377543920383223433878648347736857023860364583007600534399665396998986396790248142773469616886944134211942075903347959897577707050831336087217951760778560896688171671533451654704152753638352866932270725077234514088228222323029967598737492134550572918492139245860672866567038869495505650657296483078613097672243981896017065803314335860148813825386030752000888731778044235898166838331824667099613012139470238160708544548699749453221776176525437690860342527953848975894944676295935066504147743432187783690257499203805868103143802679786734324679683372926614994044094823290392897604290182153367260094631729197590771380465419667142434278998795408131285254390040303780594711445559224200187886920235633790651236373139878549103835645705714216145190856873708028785757327229171403521764746439264728491819422494451761121415397612943156139081088230860067883641524308983460307661144140622616789400199527989120129943207375910364094466648765881120716242126492635563156706849881783912333396740685650803792875450534169515923141834423803778152488852601859342154709222532720849416657656126808078290601856525606792047126211586134911692659902248554457084229950922776567823229465813776834538044730516547086381513879255822441083981456225197969606055127868889720413731243709081463575588262312441437713892791961509169024098326850298326542816920749228165249479339063773634164127203380312150835748485452236143733414186413440686731195043591971854709007593872438492051160249406543035367666518134711462130784474168994459083125270770759614473492024941885921829664273829915733257659076766220836986022312711349786441999314691719345017315077559900623247101422949959817159147625555438346105108687144924168372086593676517196645917769529493144819295783639764715745280380429299630306440543597201711827623165642035717576338888955378647910968645137551293806715441073318249429928672264291196048883050529522582598236422305307797749605767433038647756572371527108962828162288739380521575491637649434381642996379670359670410968248563935669667997797287289586202580413890280391524738998634656046879070664195013848296916657487979181694837247497296013112243678625661486286581126376669578976546871359027979184484613228014706765140410765274056763023350653553233927319290656676194735482345208418388705987329617453435528526997774653770924046783026070858513021741901598949249725746565179186259051248590508672856110674612873431837419699652515748432542373452055845511206356521458533100022320342630562808951761875646616956706947746046355493243532019237940423082147879377040492585259949352877393162299046694036774486148883988723262540792900745596153899027944501185287734021020487262176446560467911211262936570920268229090657168255817064257308086059460545279794711206030058016967291273208431338634413979298994067812040161362291759217299262527953269315424468742644117509256596664744340751682235353396869703922654661589836709109705021765122138213214758517855906464884199954376467908242065489686132222593443065807021198154994898954406523172439706127697281380155236153866750632829036089927266191728669473096893667170515170776103495250588876116891350538719076594225962540637145834038679955491339593660881899304293306667015898920943398272636017200952947764306363063778638140545020101580174361046109115811363606370035951513184529777368437441674570690463679874265337787998123323993960099953147185106225718176334220025225830580277825849383235630848972048925878100008553127997748136871238526981146072838223924946353146786687600681596070722704958852066463446518528098630595969754846680968817924227243978480302454861940150241727177357753333495947404943690894391336514826987493893704035586629818082965639558837895663038085609725624195707568385949225531359845462356134410372950198426911141359811530274935981447657802106646175810062838815235172137280395274358832174459298656702976309074229773869625256535653348359339085347594202040533777896580672009109180974619136368703585108827489585778364716522554636755817651982403821775763710049322479938349647134500736223019141504294796146370600117757088497109191303304955780406291155874765038892731730074046108251371241446341961365599397504520631459772966676710273997899982549259860875569620660739618023242362732422729263144728616712829946600588479513779466052915629528898500918514650564064987378362041113057495992127520509818033659428092536146884886889298973951362460578162367923927920314735559330929417283708286050811005445532402381280195016026016482646869551773350399919505365159076750137348913034907468497475567038172732705136838839659579396655744648145541069956400595406593860629683902745065601365777196517404793141688973882676509675231238428890451853862824212447756411399181998665788224189832685420426111166004092455520726096332686033591152067185064096782966436485606144602361960424956242757143209611941652216685369071191153987963704458934395544703455147726531456728570785423776114210283102217497944619152513784004350050501960424235610071763423620610108351865337335371050657036482427724652210752595312977324408952064428416208162096465113178703879686770082219661395643595678330447162747313027304316142983068292910850607840134839541415977710438146941384395956588370044583412114375702318279050994553873748658071516225320154277591182192603348522000446592596671187328177369441484828068628262012808265346468154706346395143859909664669638848372153907152280246399489821078619933288745897736977757900698059809722024202465530070908935211612411384839463326689191235585029794953251130472824503228155584975800359846846991897741370887508629009154980484136058547411098639396192062024061305610910309034412105161323195957897185791079333609790833965219776703228850422260317544484340317489008615335682287057862872935692856504485666087724177761736199200424266235581250599282287554130796587600823611518429307053121723870661079284616872091582936150522536306873369142775900271217406787040444199141831793899581425677581943541268157316982995299300708731079937786113900751756212002352591038494090099231869040303776957254394338440174616293751784438774709404667734339371750446267139018112733475120673503769810603528756676240146497491458945053884909587766245549651669068651117883459793221270913498647562170727057356587388193193415183510612206802500483203458120310997294469717133587832658366215133388777452828300831113392961572905095003555133936568583385887373312684776455828369142854624828215309997448426485699876840894659142828509955260897624449738668219358701663555574710356175552620117440505809118622088116896844942961767242095189526509689551975040731986799912213551662091428889584707814900678058504574807485210772820463852938587134619844789733703078896467462984146326303399266936257446380763797517074487771036485812672111305311960016645258320990427015363521690500329069773989300525624284344099840806444718590124536961229140314275594192517154691587995566852257167079878794295896998919143855448906832443551222110599612773918947942180193073952766115531476399710699959292735159758590223499041516213425871132126014575151855714186273588371151009458841137539241305541267209602344559755620933689333509177079109768962830032896441523738174744909482785820879850052555364870601995436084547017969865065460411923290454918679032506455534255284996459548507505408168893750790530138682514634483883828523860990634040450337435308763844177938853354394992173469914006911894846541489165213679020387214133402433898432210694361240490197703270703173183256676192160146857713648115081889879690828934399114331105772668308478740305196853934802605048236286817084227195538189461342471472114185796111193720035356513429919137647405910424733853428521201357592855684496395415332128186770538653590223638146847692411049433532790987418494505675907406953842665250055003681118540345591438148073759974975436310123239776987487373555937917759756465731373980061269357727877048582030216928901844187880072966527964378583650757648996320917589877239063103517532437123950214620970542418336732388199955692211475071286336324101630958655887095813780779312064683173208744482317722694279748526904468880947160350217427707331163068535099435697749841768958912579411539497810388706819460326235377729885029483330528330736142538005599946845348731364278848759175062732546998177022880156077875212771197522170652676860325966881936205086359886132545564459121838716202064377312373828302544544104022631941796439908973371854556901071027246943039039396241035298939886608788560645050498005547234194175784311788255934258132665248371605030208145326818096995855412799731623807263511671960578281474834932727164072972987234345170066515278370166118721559557342466904329317530078294994940049650563431111040384945799742283091742402337763339756447607302425335535284779558110703243236056700903023364078969831896170861617116232422545973044387200978217470923970507223785396080926942380668372901988509413679791718320705622398964922849013134777839944416535240919543566750685446584621328036610094786142970692417680138071401328680518645590828704564807969300549402858475023422872336317240096774588330491838108847925729662622914051823867484985288087224716052626051808876270984309133956440820198680141662990334786608447229909473120713843102532808954475106147663999514337558391182048933863517221645199239741683964370898550468118682760372648874098458132948720100029897419840308612434372977270240186603279358894069793483917407783605244251495063982780332694519588573512354835900073815306673298874521153613512725119269874636671513458772757250295671044050592611489340699461172072574036976540971205210654314506044986257529504221071559406741583087950360940606499554976445280837823256974481020946532389577549960117946663089378535139187537747287709107317681907255303061995648462881118701149520021058924187569937849401040482264169818918755442088248383940028874885808811684627296799596022073835100449377725799303244943865521698641893566123644897029283876033343828288906157285518075120136331273585251770776007161483249698672802569208447630809777373584366314976891229986412503199811747466518609360798791967215517277607363293356134317173172987414088980143171257432877397349678391297318352833868226626937325043734243073738955214831523459856715707203597124545603586468243193430450939328497448162121712650078075061406655678934087174960766750332364048811734982169226509936931274095240639700999626654930951312412053025393333342508217611657139068095254910705718037846185647354674023661124112327848080878194507983010433462942759709697811573823545843179562417353572634463414695561418686828819559668440721242780749542772050980633301302630715882990609148797165887034187182903418599776166012141688031115611171945889770233614596560955686375247671855664760163112822858416474439430910004186414429592824887545236980876445789827844976819460610531470032013279319206681747094736221836886428403828395804446510098533586836992647555705902923629322503403132514382535842796539531168523827958032387292674412406935394055718848795501197740440539767255648645835098912363492006497316380549035805331034403401261844893222428827939435261459842437214278524481704449585539294925692519579936844163930022176513990286066531864089383049411898333076311446576385769082247078214356319560233593182795613851468199335326435794878479087082021052907474079989197603435067644282065421846332827409878885187958897182922316528795018942800955208389608782327857695784294873732531777016810244304642387621718084667040098828582202952547938835141190985637605239809216550203572846196193748191781997962349411589948779142133801220478220825835780629104881294504041462860255838543043191740803062943272723920675165450947445778732210446749137258422964627988606646144957576317519183551205319687794182131209698798063752445779589011810597435238113338580579009871809498486657183171497833436848626727176610758435627357527167933185233653562877837297107278986720340788000615884172571014608718401659029997791504381546533554870179802241186710316583044364335244223817008066325236511970993668245570409551779650723587709548624347956208774162265433554569491053459900124814290409109067031195442887417111082427705544593058981787086804299191839112612916170049924457205034881397440808797199446347674592682730341636873138079174579483266484445584238735331962620095112084846274037382731601053466185908653203350240134898798446020400109690156225359229145742526434812809785740730398604373956326580539421027825577282353055523840923787999108701768705971945819239044306214124057521857405780651844124200840383953689954504802025775921809619714841201348405913671167087401528600666383850191177262672753530093796630845595064258079325335855374268241544255211413921227511481670294602594293000418056580215024246959732055744688946585452622167754837086742375555534737897564420570461514458400412547618421538460673415694219042083708260805879287600403762741634355720079003858751219695561712020778825137869979122379581399867723525439087824032692033588191448502546570545510073417407871603061256225935776719665684851531446528853743445346851053673893990399036709693528896760332598551740361242709907936564248743931848844650115122790617403612529488766179282960403505399383157656947928773954821454110276945092800547869610886930462369063335921762956799138782450908161086347237375138863851239631713763371887062842718207887765380430754758007737380077812729443639545962881130032404301478852421105549568403236755080367566814833723861571907772986279100596060367355087199404459369986554000152668334026627525449905692498774195081288788551954313893511718957361972728086330859111811882340913671992185217211758789177961705396829622010558487283205981220980197732649489391501011882499421762217488209801323035651569839256455947482496453537116212165338236554802343783582116441263031919553705967774502314168481721540445792763093449741132886307164668513964584668051727263933514779398410183709543879644012239075306183892836548037053116503928465765434959440930771968832481802511788847795172990483077567819844839611710099575288845116207379766595228236525100726245753731663842552768257632357791474004704291161072327246322388731350332260155427208190261619018631499265414354391691037873679698584235703283881009514043369392891668219165698414206615055904532269599242356933999866690111268167060392429535653962397814907745578459706439674415290770166516322258273363694523792030728889851182956008702914871709975695542265472411117087466763150868794774948666688374380398730834473977860727590328520655225407901674686829665333533190118369385050933350790663721296471895579143973170971923396737475012325315320822784476463254826942832765190652932680426133072096652953950655312256007008301185130341400337677743820920223105236741179533646431488597687979508371257597971096528220070200615086799353287936082520163394158311309618766798675471487603543204232796827686094600876163435199643803729807833694671506364261446172563191937711754263076572475109669692550301505311639545250419386658853488400382324603185531508072230332040197730189635602725620099568546926214494955838229447268842155864339937212456430177371768365870253854489191617529339497389975635870199354459074720584042273720153999515705067847596722802786710561482896993478001002400146890327573431724609416947493819194608873165759780658305505255220264651716409674541147425849701405892879902466641777787520850900960467887692548223079441155039591256322823948900208756412893380702999325928079907038801439528450908238345700682770539336909105754613915409399831517486533414088526792898593986635741319295666951880049079044334345342683042062496064199354839420720885860210175882888085767517458470835880226661210170552843955416756664330717636628091830480099329688290695124768241271082183760526838629776512702628207396425073600887677656389640082960215239568119225506615590006187932732021944566114845574006449515248544866484386937821054871362231623145884849516473858029146128342305612398525498957753029782093228596545416256627807332364942809459767949288466158513833963061793146682004298924128024509449569251489832710608978955396323614751271912522397794639475320460074886448810849345882580650005523381511869487699646168307896465573050073410935873605814140290901177275745505890719823201703333502357368143830595924939226995733156070923424255214486104345135932093307817508619560249212685313763583465587095386837235929921509259752048444329204199050470432108760905688209370591336808347914587756932098627467082002339199841843798763138112365650132460580239096264983680277305792124423456027442124525980114943776377466984601709626210774639426819397040271039419121801952952119346807958375277326896346022836637920283537774989055197415624887699383789277731729144026375065789136442350194376859324481562869914532987617211793961562991968094102689402978203609638848607833689371489573921825833912793774647870860493037155800174858431661636676337774197908406070803402193378234547729211041972497675201895464656585492664923276733857829969655039580619574481037219634128387515325193193011970872259353726270477906768337966402159089569299473464897320509194135809607701864035017342120367004690925314215926196532815853681180433924864106725808290478510195714406029495709454009873276827555915936056669465129908837798554961495432703333087364262779750528897794101244386381791798662940074987812048288359244369799431314011013416255937720704000296401802111975175936671878379357321375569810672778802245225567453682264814385721814395960870580778467378056680703748228373587414184466659259577114343711170298495941290115555816407715734829581591759445776339024598429764271221962138664985218720956868011703058857461711033050706436938503257419789485980522441245227711794246265927428360650035971101477064995325018500800167222621942260426027613997443244980138139819933101356658057925398071263651713353780734093644597501498834546423158063543415469929754146014944133592555700206823494867288000059968814299205484227689234887758657095229961737051574372563657251610664105446566480487600319922006515254603731423405586787575814186693738964757805216577553923968005017124922860885668253601366150573594293428337557916585137458527539517010786638479512343858331488002587700097565410360369506931780799350358297342582031603100054300573331332234440343806552663470888393978818663050693291051185970023464353881939753143355874700484678400365956600146102139672097473440542431214135218157271798972844261317952665309500121474296431135304291443592783347488765236312597696444743504902321128178369125825169995383101564352902142958460623969060523723705689608716762435865815923192592481633345931816520985934690817893401556186486100953148511712347541919721454183797979368098385197424490654527938989682568534819442531176818290973395160329340722210025064005266231156212880480085891196286037823574692388085332129302748502041018684656252211549462626257933343967957762575733229771191486059496921800975637800189812132628114019080808740131805206790165265687906498061102283603586007474367258879505395514215336693876481837859309247434782252702927560163069950793771886178356341193476932202108047677236726492321242184427164214991826699357066110085408572260710917211377320207194412700633976072288802836835039494707924304450570552489966153645992249059970180650979884194344290893074346851906802537327025473151694353297357920946737149907014833200518845656562723837918878861322262308594849161677644798274342400083431816401401566149465167100086322327837583645798356901547020438045994352865029726525405138510627028562229550690401037907836431811869226597617592149601035208651575602498366232986965877251008467730377860666881257448655119823863412128709682691148877898878574365603749920643721949859752346369799676212256661004690651635019116586491712895230142286906555571020240736988330741320170918398243107972082409472311409479989801752300204985845782000304064094622937389527548257165511230294304385529500350770331861622821209812027748450860830403671570140573944403502131222771302582392370746164785627286494958112626015745219049715800099495247666147094694181827438547955894531323614522179157244146314437466127190724218157771296253158527131887078188782089726323678271400906147356408365454554691928487501472512618496183694411062337433373774227000566807004021640469678878252813760930082001748660187000020458319809789167979054221487524759085339862832792153147093959323875887379076935274335383212590754817575139839953373448529854452828031949741497053496725857919442850558902087619823014968813082399108927230353545540511398165467507241649124400866968352457569005679946306886279889270513134711801515215248159260512036016100545008522519560362960192613363683837577388518376037931677799813194234679685297788419535295248460639193664217072474346113046976520402746409501147493189590067324500084013129685468163213755053762270606174890308739006237463164222471539210975575085571226968925300282545143013939194875559632599198858770821645384919432056895587469673560457332987464101151891983718553890100378575656360478416287128299367720497700911851292773583291857352215515335744999128761423439749313614348164007803327355194453276726928389157529359799949359263256022992003310902078390295878884832326912443542691630259310092965859801732552483997675737491515446456219413869405429201719410738139582605044109508476109314480819124701034292669083425581252447064877252530473759852294356298041831726138865812755717605223443720654866296754761146483285438588480988854988235590150648042583523088099340186998551428579038896427059224995744365091560068145418173030609704637070911791089768176836393897831753072934650079893092227945509345718760334473042923579033653260092998404935297475843039415850528077548713397991955677590277287376724541445402206823482384014627424392733876634957815391240294758150005620947923847867475037625015301706030153455566843269613727730873171943506902372078203898637931909677236371223261553588343660438617287145643486148853458119307345918260778451571486310944167893723082214630503464636849750715466013094650053771752568110014087461667746836136863666893457633410101972755126042273099517964338936427046620650512229699465771073361804282860718740481784314058901581566281699037685917694905065669899862563124697294315881452588524119193946691479972238602337763074928423594850088823167305788333425584674270280459747781497338440492680415901079638107742679676356964567482915955095988988950567890860435909443075437511988892232636957499421871292796871280845780919483608359869962688164093549594580681710237123240891213548594723967355696672938843302545265893169787764567196219933365481338459404852780209340864532608790476367411238820428637304306262104516085126981680982835446971426092913327845696431460720092496135799010313744748818512147431843045894505815452534381672535113485222817431474137338810853930079836538397957627749841216309571239741734882802604073341308282988198148770527292865814873504206521597885825079122270341804318151789186688545917478540252869923475299714624602374865147967052339086320128198212801741562385445738481358102742602628994551607738908859454065277325093870612786609726944631841378578417552837249393289551578277892784585846477336571675642589585695319324165514334721958301154314245143722845835874396288888254601154070369435036372617223741266728823709020775513940490544844312706752217099925096346116279146639410459209345335986155481191433328305062749043835521612180510941771406521109934159338736761596546766753662914157354928357941309263533658764702204471369455734722298520838921858538358075013148454303658207007082791387682338201048077332229657321546178426283107106853110132292598337436195848815661168047446496911496203767533925203400774753447640484589480958215153343881451687169159430992763132555177694692505648835872449701554666564565096990535763330620811246355756426522171768744103145387446420035800722344543672965335488881750512496041757161791073809650624813937611040429374043179384765827484217334084299183026699939004700533762108751022655668522070584515996235000540931337441751422013832466940581481854714320116990879573105084048573774467903178411602476616684649859017945655391982787321053860540679479720467865187278251405412217574679980148372885094914327598020309189681626356695974015769968180157953249279323351961567265681855614967370039701059742630667575661131654917044887566746455742203303232835851859889288932458551228018682206322046716873759641318281841038674147983295934985716274699883215168939865871772529981928441817391444759399911124954485323865720928806372428315363289646811046230300680914403132457162437274019639369159032446118822508646601257102146305269614714736507530167989432480958801769786396663267314919590559205687044570832415798798962023127801111436553234134561218947287317650043292119304618279749697271544239973421425363650626158423410239132224991286060352265758997507796948940384872775713375610810679985531364424563497022508335313060484602525276360309679831513295920805516070213981053694901826168430391872631838050019374385997030390719108360343154411259842080960809596900364650966096909849230002226618366650583191407483271503362380905470668646244220101396555722716366025412359563755845357326707402688114167976914778580007162499616552774925760387755322099039282364459102411721195842450076163969639460980945736338861997411824028459493947737618029106419587787018570144530853268773332264771224927700145983609463342348146358161790712673241032957185559880749492684417975510276926894227905052212566836328460966622592040950478909814388062236326510435741800955767724238876170158256792606311923665267010579324684968599450261755910251076407990783217121242755901015865312840644381352509870264234909571607378599494252042879173780496787026340544728244242097407599001664730358007213440745526050493986273991490195004380442883954009683123415232413881136288516683872119750842674403949533103246963555035861676690295909031579681539042645754417726075262809057041606688694749722011557389088449898683723911913374472532070861722004317528450338946440644569846130971246069008169147633156901012937283676316130801292851833102686898174288378927274973051669912488490818318536152774741088649691189566869166328625472415457961454981906993361754810619761578677859277400730228253866301098793580964669230060819908450674754796112249704338127050063434522978469049127257501435179456543879254881006174046683322180954439068605098880904489524182735030045146577596087450654245824531630522308423699462100985778228875010498520788453342211477633365138542235504296194358553165669389475323039017561424509974332139371502168972872875441360944963305937698543421634729831798244086242590723100348669569421252101601024786655684848484688505313654065947350382990984964344000537674957365147709214228973429107769185897542579405124297078948638173551877823953734382643976339648945552521259065603973093633635575502032656124579442301358325199294378229276933658458834051129166278783489500804318032429205676254812224837800211762216106829452386435768097688532567656356160818159679812820377064684023669503797436438002095536402541158961830189779397918112660663441450540265517947294687301514689700002046098686304548300442863311700777752426162314271513315615308967987340554394587303324252930714596148124517969868039481941620136378458181107447685455827005006481158456839513574802277631001957606600379051636388488038199510095241292633204134593563807251873761101821282916386581218158447633280263327272620547797146469457783982387354385924828942975236862851771493350128074169046360107794038243728618133861780179205733435453910172637429413021943927261385970534020103968544233425533053156192213765610719504360772154469602735241356141321497421701126415106751485788062596984662053849341299948436016971053443238907127311694940106128361917333289272020467031094643217621304936213117767004257248014072467669778691313334949920014457444099073925756848886452610812108911957724358683846301167789689581640114733870924063033031027111914660250361475953953592289984785212533311994466498413736411205954659500923532398194888046139084152055998113592527776946100452044179953467317260549290154123473103328536231974002318744730383097510444831673023702497065344566130007245118107151530574022073459547890894820344606424066832892900601044703182353211766998603894660453451081955830606835462444881373811900715788726874926535874836684560326071899208091677959342688388192790581823033918369401886125367128891008529888173183177103529219485785029963457262447498363476165705415350039241834645298967678198528461514590415519512799749848629226846125521761289903998274311024614594497993570214847422559143023272178469330549566197883062170957900428629051086806309906396295708743789767075548869583534579186498393554125817873438576432446368756327411010612324281193396622619230482978363917605498446989155488640516302036290214112595349350113603911863996764726467009006583343922204559891901113792450610950686331827503014749248051254001569913817536731484891379588082418861631419158326979455475549383705712778364751203283429357012023175227018447112629669099869934129234525390717987341378108923881604648901501527738212813933071623149255762069202695369416925652849994447587242599024552264709928393457018113969769636271461951446422697016062002730464461589051954174178664347790334025805281643931043901659705122447502859059711101409205013972479389136861663205002010368808509585519540452788957083280263881991601903377083494073640750912050995890325249914469945991948768446704222703008301246552598742564775338263249537871319655897906307131625972023005141162781107526977859696588466585845601795131046598029049661971818494395209180272604710351945385856499051212693167556411469708583981708945607893849982167548203559040075294434537238986061495232992089426398769072043449721393890143444735507667188927521423986880401683376901886962653775697958983835563670477044502935358170787803044169500105628610996292840198353307808268342921937179128242058387201209980181337292301951075476952744481643629732465779849382304673157745806807046640076482908769696096533510866984395914599538313232927172133532964956439580420183760968641422335033594080874162326255361388738858271494792051320341674806421419911602970277359503225726971753636912360337167840800458703278850753412599847252497948396000044263310069761727275501432883226432090790487012747592889199064548086192859865031012664699513679273848139535481604783110468954927213820248741955113111953354472725611671746181005004911780060362684430352721271919393325333104293533179320471995850160066612153074420911826426245835916968381487074529792630313686584998081068866317217954867754994159579056156115193472945612756096379828723327909265394026760455303903686103182610285618653597834498189773932126504515402717903128414504164161448774624477264201882724885014899003334029622519183953815359406977436519665301138264822634255902807625712250691984554483813810975541323738336073363039638692942242043948303035434042643662226548685900855297472705932750466096821516176199763581038169912948610008577616947530214667758688609047475507522403817134730320049745903193766643603622751996781498066060739754099338844575826684144580507262949013518494498908631326458272045579845815318596334753168149365152212951758132828822557974316743971904040808308620759673886120248095393210227034408554672908609576519201217663477886817482302204182688066932420680565973265062471948744311499447303622807806817886620569871927369058110777368695487095475328204650518243543521474709425997837093580543565797231093138247527252771068648791200160987350616637678107493469547535865227929055269836894565955712616787916682709574278642898343902668500375171624441858972812322841088477297718609646376808277171462548881755902836673565204459265792415438876789098265009017035647898197973486065043378385199134423098865876768594320557824091604708414580045594342393422648013796840545131954541869003609698592930314411238806436679303591825213685557978678268411101937869893054163258026405144877626215652043706383730664173174389106142624499575619225570151457122143806421764777628201694442765458436168465076448342487786936499859689634389197805440142430002521648603148191777133903909904229089955038750632095556393338098547492115265698955316320083567025290759767161625402413047387570963739585149745802138002434391841610848281581211438707475830614149790354067661709761861809554990778032681492118648783638140947412754967604408881892099340290798825163054450994293345388794128964970060723149550451166878979870907943229413771993006585007274104749617453600384786622563382361163082791092104125080305373554060800212366740032072162194065707269797010994988870557151860776123043696499314860955362523384029271035013860911162034756440461950423043622979870162457717211350638548053675092902215532930147876911921131145563029566414057936206010935826801283511868624326947951729466486912756815709911807515181619714452155109031238796450541821762062813910912658401790436970854797040416329896373680402956280493963236914615948757999870847760637191016416420223468687730852767812114933006892507009588630333201683232728773109731034301866263168159710055740784993256738837181148267506352206395258825018580223025909989912239802292614650074885088381653956986425116559098353548820084913946881580705907774333973380186723623412485286490223466665906688215233865834116199702442996061023491272394157817007679669126960134557043069626670356606605500949888949374509193392755935608145143105496200216704470882988564916825980022647058913038840320561575194502150229461237902212224608290295629496621299384931560473765365222072594499629105004917157624305908853766198081156560237047147728791053740675032250776970332232507266182668915104159365868621601790603545841429589783507741044900982517177343812240185273435290684774490885016955371213259178092236517534320025377419682608245190124648230776332141523507203093466872466999057499259115665399934618868882141293966914284976410642155479968617227027581639808524113141097011874432887709006657184300750686650777291801457654462522990182879449691910130715182690020721677747564875867796602315013593235141530085262669914097559484117117568002200523896416199036272906084909594806532878280736335491122317617173877327916175489937507199197031696985242768417065328361235372379410789551347871666769788577199952871791448777398332762298883244412387811801738757156540796298893914205654746224783072531554219613556644020127749105170068419862422066516803519751022775765205827026423429768082477154432009379513324604205650825421480303749086361390046995914276895771895815697873731299936441773280834004589146210468091132517148934417942896518045650517291861967307450362000508735093670095604834883879197711036382439580076001134024286756840722119879190707846199908351000655631848527064320213593255537992099639617203872248041982381084901565248109534575448024194093062022961628548035427917812405792376771204864270744190607078888845709877813809972297686444910677084754932433572324232286154729898608707089540822590975669127015293185901085679621489751663191603126870822094017910661721562081884436565700440113700949396171751995039136433513058229067756331109072373166618701684061916881430044733289139148958350620512135599101964820624083946233601418702273670141972543594591969593684204070968632197997673702847783496758607534387620411054045474947509015266483779958030775558562777085385117943513529318542032565711520636219737737488423672911074635071386653030297855127980904375732483631375370033697467149372136106538415435016192702838833744095867439345504787479949988583556441361682123394343291648758702596975041038319905754635242495243445751111497744063147376632037518105031667894408949770519251641812837949875526789702614480965697999768655605375830385982499342860977045375713160863691895996444000171681016738410837654634864047335086653634893309479447880106415903464214729107966691279621442737276664066299290917052676401697458916071336818542963883227254713070939458990869643054819295346789118168285368425715770675998726093490181038037315173524835382537101907157700806879424692838912795698101662045445436942454413966944410418407462985388326809378314094792365858529669152176152785185795211736259521672733267619251893286675051328896765038646565092267341755162788412054353285233259938792049451414580769767070527931280658617243330432853496559534378797003423818308202561940445488987178656676240760303962316051325833389050768867647668621744547339763926265331256973900374946595875427180420930582428570346003366405618746062770646559947532167275517252487587779269257736128682425910406416998640547612412423540683939415182562079050122696593640750331504355803356789523627622719131656475481330529762390790050385157283656279695365394280177934550333639214029915672579464918443220906606219777399002372733896270438734539085351396812091478805686050015422032677177736824765839009830570087532983949879373331198344706900401681995906122705723250210154599585001157541740148884404139584498131791786992562585840815775430781083423842053031656968883070539914553513931817796050538269552420896015482494738677767195777854990879314264111920143841454714626979611988917631425673001729188419723552677896122622755653587621621087980655099741099741147676435686328416287168732908223903563921307125982429999557792936746505076039207578471527271294970828746560519067416961214720785248362362730028413259340650455251723980205346269622289971840086523175953125823619245243552494442030671583462518990290913451986564512892524452462105461444393480498885155489381237025232822273607404497751358114207211467796884352008939432155086046752879493256854350755842602799133327632671752151125307612636356098720186694985790242043414246578574334982006903552236402599275514387644972111448942919681370492112780081469240640709471593783578160351993714031163870969872878596310481750126393267896800410836229663538214106852931287334442184654384156247311170216074660526802190289876153905407767342730648533224622943392649692354714372297834127236321749859404350999264619692908438035476358741885760308198962130305441131160756738757407572804403015085346238969590658020370940944631470767418306026731895212866797747185845681862874010354866737876094139815496763317135890727139728167056992851285548162046739581438230232078290927549727623604800778544318214675702911722468012595671349225933097559472823138649465678380643176402576903041767198824873406439117942197331210267049704768770379173965098078933190912781971360832550076131962312572270454323928226622971552613266646133625685108604102415951310849440903247471765831030598920308443608956897355193809557378425950319032627002466516014855296169382084416484579634735518171519721780898135074622309685279391138250931870991574910693600371461009629445362656442605617957500683253373274585058839581309928402484175031558585708942639531272237239293697116806596636784958282841091612129597646972231951559598413610893704300380686633118064506254800470104082420708978845850974008501313199128718846900716657137744181482921831191462009344242017010486558535899963066343804567098462097304558238474428411238758682939081956781827936932115839475331232120950975130715613545729015941123326818624534239633433311851661000959295935959384470472745252344825541499674972445866442103225283869174892196016261413568662413390742037178479604147656927707868668752396111199570455740793521314281542843973997929863148363330031138153847290404705009835986230391182196094386170793629168155982293184260931465617561235075947184641783317443110217326973718054318886484799951936462404058457573859127060605014298387834367520073148438555025120850937555413057245488680824665829204568580371219718245616940307735069911865338834635249531520121367949587166397292611930346499246758405813280767984218548993725203959205809586491727075159385106164857382579288671679563273297583036938319856003556871411171808583730900937501319676358440208050589339593520862293533457824786652846844640745042327599391046004130690556242017102857889685381197049787701126277443013171130136290801768766908764932169383812331647628985421848856595263476410784974207590272616443829967506547227963496632241865563286095380402335948356608559599837126209703826080811885119432044763299479193226177333233657462519358372715125348133565550325080155989096409925629923501733155622903865493257541426628387364087166983951816160358990568500201459092748851519159904609768673928534894429140372128608064769440686239521744897385378793981499382834460655454834030184879894359315289197261666432356306094884695734094547169341574092655638368636650392725339604440010303567476372903608221726119519331889999588609411584264740331217564461928991596942210640221840386727685842275843693253448701945005523940863597349316536635585703595613145047613709161995495112598008006423556602857442669334511694872866734926947093692563346941303059982408966681360748240687461088520238576647682753814732450724234966380458190628426461849907740567499219668869897016310550668633889730816646017065979053285779282759571050276710828066276982433696467374134910498309239296240104256711476702323762002159904672366713860530377949500031964878992359371912440321951035275560594758704974006590661056944596553284874819842552547012543500352611632430772649916826199868361037280772899340560010158400655684760300995845815851440928290436186255828951667516982040858005871625836182506459415367883701659441403948441485844133862196040234261666658122394061885321670208978818463976621110968459973606862122420836652886932871392506634965600924799973038491840056886472369443300492543805739993020695603207170241693308238306504244797384433046096868758587418691558809410286321499895259745178110312622725268662574789374089172316812560837982580443371774754996404938797706896258770959149723025862767095604460575539108516243275686670316441807264612117639096946736953788985976388803694151773080965269266946223846816078780408265433877262278632470358710289372266574676948703724237032098739093406841636262952780359660044390711726159062027803645978648411403779027650371579343584866462043880768419323255118711408635785740361795707348887919360469575098735568290596896638641129486985119994601861800033395319870921293424016362580519529924015575642321684509099530627128150069941994047896314825347699865472180003273007999712078798387209461482306740588102614317919406176705598031068317522835933750092166007703095612654817421295201128541244798728202480959256272618576353270058105176458654773751787357780081817145155366978123649174222209813799617627010675364227317558691422995550432805934428284266356679318239283143291389275203497163481849182268902705405386168869725561734339281448512913742107248244297687352715354023806761886405520412756530859859671975332665645056546125252657256030483220220064017538762052243172606911496449438142777407740760637941932072893972055837096471771616314760606780229429530772790112613783051557321880797276208374150841685952468055120119687405038160513186739706811393243762049702916903266427728266632914466250252952009997236392872099214768369043705052512082033186946422928139393167027753331139926747510150222089694889666229499453226192878458716859676681348227981694979468639882687837000200990272821999221696469547528829501054350816952434898828683553548924237031533054567042705495702890007380954070659538713495570820795247074275830720394083474535814139682357827364257868387457326774737637034210611044820378541771878902224802511847988257778618831223059470614652376524921700819224550302045458550219508788748460410068397082512739098216957886403450175271929629579440327257844399545777747144591868371066904651751312195919763817070863488215605473258139636625333497928872351060782633372071257864929020639624677298459390017983847434516194576036288509272699381014873208012029296045920862443202761872314908364641942354100264497479772671828837792518701836231959692488253723238320886917553336084523732919042150222986116193155650433391271706130985405119857967002112471454987103695957227469217346982686595221865411426942555479382245381324538739040009054790316233622140951812683049062158379075456373940408021320761956127168293637307366654425932753706056477388242040495421130479629231519969218878149367087807862023150742068106008008015667270853728822875054204580540864264268304125829338147614314164003109396093895710907870493636849842039986357491396647445321289069764350973511064337100799623406329619693570130946414240349477920356513800802189282471986350214083013704415914739131617713792085123454819310129345247468897510951309606718880067431917088448222333678735569391197445489314796213192658404047792479414208754964218538623749297300646773754168699555503864812386827361478477593781332686182435217843042112222707953341763261794173649943402159012256017435977151611488560407975994653280163195269965091478799484598515961750264257144220288851873926527231084924365709833900626934308141860028938754633017259465597199276461578241715384592747112828042616991197569661379927153188297027826917140314207619578665592860380885421613973672877719035725101113477180496284563945162718805573353917332359895374075391535627410791661064678767914048606382282665567960184567358046944166805766026079414026738698821850842362266649484855528056728465137385818540820877600888067551293192395471604190722024751896090589660626530068833106307795732219450573044821687843574746792431627224107762340117806138400060254075104787796450117960545920226840649348613463272161343124788398953359616006857415701592906044487504347078312850546070007505168685933497066511328342249022404145026566051734114697194572222884438457317210998138930134553343267808544255034631114086930609498114869179249416888309861454593551603958006343268372025934846177179734020455961928900872984504500276093543494504258869149360899758696614185208063435018156006838369295498496475208075693691756204677418186195363842557095178262055634328058606686555583065279731402287792694222913568246734009815390031594831157441534639363384679911865794472677719560756431927149166160519792122847567299569224672023129418023652997992446432305329755931790097467319283801029951353298218047196945892211504977672596454646504844536464036003867550539371364106667021894287484445099219968820839109594601066013922767991424174936906652820498653663334986667750002613840211714586821013744689542432475047396608088515489110231264034195633043475417966745808092323161779248210404533927289837236921399547438515765787698593440247750494541844174186431757803166299846790909785505857886023226875724408458866269956498028851432759000506027984151315268860457121118684731293200508825535205703947356035988416663770471851437942846521309082799306530393465382866425476493039617319567652137191978900594678108708020596532645811734065788151860412928358104321873052028092752894235464410990403169453151322002538049775789412900509015272238213250298868150497095545464878626709856081409460404567745412070553273744481980605296426335484127289355222794913173206198762684007441514605397674279131269289165006491628275518767950152178055414784649643781049848633249666810442476975181365701878320108906460082623057865001390866223823764202894598584119260776791041130530670174416881472946030882004024071969895189873624065063312142131101309043434546277599334888892820177214995836926457792470401740377591651570293858118503572958349450223302546171159335493448035583454343715690962209597576284808576810200447484866431534525166555834825481651130254897006772792383385852041374442664796977872971483460450056907158601700972731999270561403675643975986373672036921595548007021627592695680312094074785225398928670518156256593707776543458126971862478911936191530134923327516618971102594664028680867919912685978298632222114070681081495936646646116278795192481289435680035318316208155143106855535331434863195187905824006189484536256373565285187154106705787539501004022066366934133271279972567667944424853443653410904483700293022689840852697970266795468902002470992160049969665125091579029781137756160128540196728527398144829871353768911214054180001881757151743534156637517600097471223836549053178244320611198712542642225893298819156591145989441677655112447631584012143521757446211561126879548798225534706595341972711733863733969734737827991110023180961658769021542690403770803842142130246941642344812323096290467143839057904354590649664546228967427032750713308833644529121641895989456948444848439998262788603534387849739343123671291742095090087249950281220983423887512930669100732433003098695454455782658599304395351025273445152527368799746775731162334981396779513817114629585532652761054415377535209038062996453521939904616965764463517174221549878413688647497992342059476523923042336979281243828459203979640775163799601090855539735650999924788335266095772329814351732320703575980018675253566972112756475728864480239155660161846102588963339748548032515494790422973195261963640866945409892130638959546523510008298972825057809909284393865253302437664158745151742300736909000943791076182282296507325063689576129968351517286038317940316253659066871697638196934417617226795850452089773191269707874039988768874092641837640378776291543598781616333669095966710831454833443506993050673584618373070053993923248306641250743645089980554338778283484690389356182055586501378437902419167893932723156964471404266579319974704874210448926468577344729659955274682725351376309381186566450216318393931646404905457340592097793628955499952506907093469310665270870594618691394103921890084360005664784954239799633610699969862715239561902339214654144130918488314503904165707823041922293660477113573582040956516410690111560349574303714146303159912455317272853858907240644443119218348173216380234787393939593805636728698504431139565825376624858472875517467664787899747449137793717112615324996221196572883376952800522042686909931797889058809656768711509916692591776391889646602280862283744486775245776775415362566473880362407496651467576863789732917163987633361288001543517901812335653756042273248881897196582997182925568146707314325422044743518538043796566048238447614988076026554618154014295790272686508348839151507357931883799447981669814256349663337212793815929650187672937360926298735174724018603539809818778906033999390613050185703329054895876839107962971711049809928016330299195408702259649509232030142372186606167848602939194310663435884339191740544349722659383281339919608690855472920166475445323185381437873117299983881895190456996634573089364121836090462819561392286280614833161482786457910055777225721112214917438987342734781056340044933771059763634568536154088482593135633540714105653439892624058349355166923322230814838430638596897333890760519874533455600511984076414948079488305362049463504299569960428970107033343192137141485230900148032938737104059877993238475587479152720323156131595053441541610745139253612274060565683153377443432067117159210490686085400909886115033883272427316489653601364489902172323112241300257419446542721707342337194500655440621570130826882641276074332066043642660676813256508621633672986828637750711452326764652133090313615733899894376008947870628490992943674375301909769393944287717935470112377246237612961677676290467700938048712527582251230885553861161238861078804516591437532227295705935213035624470926679681263078242739089662081562418070252070221992335184757983551472600768432960626504291468066637238646571535111685635277848878149042569733757201514347067030484074053211799629952762715804324562819958562460884749244266469967179625530181205922648498768127514087041889695686945967168563104520073458987316225472493879537585299168925634634933658995586713848134236010982843714830369256327874530812804751555599061253758604644839559238554245489299484863355690174600378851412543852755028941765711827828373195530000635513104783037287478836658303347361266989064270732606107829211901801840909648945866625777519353166762775772154875441266300629711254616087564187978305538529294434797960660426957636419065835937527306468271980495984679567211603407792851699987609614419634202180519439650709601318371016859805655285253991068567513900150722586961223736069536617027030804091174913029583184439804612869582682504978796945466648929479391797752681902335297748289855293721892177668949525273380430162814147145613011251377046557113272153512547297587687966730059923331752935083267844140778427098644809975557158482939907827814314089020318810225275502449137163886899116626547769714990899848035041166814267858677165779959158113112244492143421644760643707987200389490081029548865428045315114247517104205133325357923446087001050460274507946729444784315669056902368513843253975560441642228658811502292645085523734290425966654612617635959045297899381954807108589825645793692084516476725443601270416636146975452754666701371794369548285608265531260419849273112776322577689093673747920117070620227460161013520075670774681095059448496279227178481506968430265677048607128157833482351882662315057436972765945903527648821116217320222914193388113706387786930607077699711568662746326754346345143104552319938084541354158487744814647098958126367470312046179951567334277694577043207702326915875350700114507390567298562771626609926175008859876299010596306196593666577635300583386386814942136304881265909090010303506904887249842354066230721742524745878304279933752918668359581012893965341518772124877414251113996707142728620032963836585866547104075201870578909729538692821864291815526947426461422451239383957625526499940523052610648357085830997971980023441903184001748751951283372725738012931206624979841073836361357942909106385431534161344768069759031985328849776148427472160910386246407335485855752720014786730870042090595066100032443736596751190419836232709625437985143658139246990538586275477746076266857375192922256406263385509540245730135490500519852891585548270480865777858571639342795503384041239833955056705361332032813808784916056014926884416757893164761790043476823783644350774714452795626983887024448607910955476889188119520344027228987717582180715501384044709940306888125426388219276306063918577859299540733078769188416065103944243096686573601666149751687714558488638039295723339476513123585410717785050570848205777786002342821932587558181025517770583775991738578549180490349853613772321607549985075239282598820094679341891040610688107477135944307667864556694536529295416718650243832783721275996175038481548532164793806207308377396962262191121075330204744889571214651622735023606002270164136584340123524550201049966812125713953210045201082376745582423472685366477709729932469807303396797250237797524286295930537880332414526561586192912180472451855584746016299944307135590067585478311785223585319917898470539958261333236255214246250987543753663224365852785594566963812092205105069747308200929965145659858533705266494300781844730493906075556404074774429384333712921058200258923828490181715062659471534112144598193377484155027277279556923375571010776352272019785387184118236223396522400504396900043050837631749238241239063674966167230095716380984610012657362367655053828299534840010323395372917303532741137156251406822962595737427716725791551957729402255108482569165385084462405885349282206676515241828290318864139747897954865946578617136434178070739841920855967258726430335975694147180341242864915093721186508573821286964357829709783183407939047874096153678420312605129633326921932080031703263763629276434152293192228650285738840272133004533316525055318268999840906492283484814280280060943927076633887670480076713459457174885835010616970566328122183450044306467606037584664080843524337542037107514891401720142762105980966784943081943004796034790674701637789145584838662366750688286873697474018844638876214603192282542348292054062994288457374681488062912012904593625653003045036374386421188000216358000523801487722248057202989275489891258453686241733550919798032004186084666633247021745575576890423539286431060429927549905299138367819029272240260307638911322759042876964682155979205492125101057223823404261588496160580443138434427743150415594377593087955645543085141386575431945854878739836014364126085582682384147886749042225462935115575883122256928776202320578552531038146368013724659998147844129559797008412243504622690215787972618750120795563808019408737268789202339776710988470728018785072678933602177197702989324514946476808590580295813644396203179458645226392070399094218516008551826381609788112381578987817656474408037637355536055531507605765538350670757928335298593881993014327017409691616761658059387362128740587295346196773939821873963143837760715416153312221089454987921861982000797891514157028861322758649563954986656455676961883613557620586083769459077551971983091911128611292025502373702117091258841747452325191528944222642837783306766164373294984530506038972041477461856452206867499217598928793919199335376535389744663793205499074897186370719891440731570307713809740365964676924071956677239139633727910627429001934972775862084529407019675231362517329785049437892621434633673780155247579921953917351446361811574721214980388031203287975206330111818020459894656448465469113415189710426741294751178671542727826516434178531880602230528416453284457270088133688053460502827947108592657820783287324976107838668056047743261228520908281195278162414363269804240016267633749518750666399483777728252181323641161839185216988504620600225817099888177027057549694544413851754423243538534977050556205192902211553238498948499336925992442868423457016783373381546255176701717201836199464693331674000749710080764554868097016551603922336523022958928607937244216246989001161892321528402346365078713388212013918226259947576263647109821485564347596144461145028698718068006645251501409541442183935563831874510585204344414467753490492092967954227971282135864240355242479915948907526454155422213186306994018895798074267505433776278288875989323138074321094881250283319808171863405637098210803895688093886352747456206563631963041098954780584732007876554232739187745308315254561909154250852364927149885210397538123508181400582179719983626642979475527856606079756520543207457165011255877745606267114750642222633544943231350310373560410048871304720449074494778908127467580196086680655573278901791653290999779120722430519319241922675350170799769372321491413457789168893320257360250111533730810600229782527954769329273590554698103651021728789267455509035036063888669120463269325958964676162350918275821038513953526347702277774607574123034703981864828963477669481697398640063791226882010130293706337409722662626518296957117170470187768477425244760920282686362712579432517010324434392613273011359536434664789881963165094674902563366493276954673267102977841787898015998997609293366074039751718626987189012028558540900743647021764739539142030585644926210280305854722504455216503423522150518251809980656067851939747371877671038588675008639585235449908745043888327318143920510142969058946965521361278799111411121883142095006127585649513295042419141700825751361696786427263685639107718885487431382501831190104569161546667150231970175695658940281088306795722262976720426389374067617676845238510415320239336928652241865495325231613757892436790129157286902991164584592759897332054008824527390179157397728350852182423791103458428828432243206168818033759371967126373268454316786071684073961285972045313958031136284929881220432419122153976186019708196545150592633821921842838600194453354486924163454109443366497287511573557673109975802807013267786977431496310807233702913254659469714487997078953559497833652594739292431228235937413958144700274172177198573951878064829473788449376124089703981022048367390313950781570153256637818853109313378960234219124196914582259527206000653004303025469676331144520434007335396202552811102228440182819034915556126014253490215577450087124037157535917820910771647061467468233883598593060513379628252000182326854866910379314631265399241345716669071334060758461186021578500461433688981687101309971409538694675938359042094545467330786355367206161930824109380920810716498675249961590858708361061867056361983633738987448685646492987724535038348333359786581697702607309834241979352831690861303814903494909419323818968426007979817752683974798692891882164964069820216112879676002037638123164072828329664063763894960518628713631747351948755290019142823815317283851372955060323961138114631744938568092548845524035195016922058880704176916745924861424753585195796829153237639995653060195705301114485646679639501450656018062634012633763674315316082021311684435174698705412795268294716323528267131813552208903877267236659966725565637037688461634887269705773531337349575703713834335539957477042846558631844535899688841195800508224780677531417514146532547260095626549057221652338923359063276936034114850329097704878547721587792556117964243027263511983674215386510176602669948089115475957523509169926261117997833778188995056338126073441363587547043146686955718263376309937540967234100566646093979479761549967266162508775007717107147876970150222139816436243625189701092544555857251949657762873565232310864690770226194315940337168643283446576008301408553073017743585932164575524036208985370018979299517233395784782493546886701388658894691236115502738831844479402331335385377636606088738373096773557999930534215043386627745947328871500338953872835703936628680512656489765617452907816315248638221220089516501897381433789079248288573857202931818718070237608416312237791049104146880532202919652512146911717382974207723100739384198383087484487630338950761492185984735250399550016882250594136767731227888039397716737274695627704148026351425296532374470609400280893270862187915008419695813480986167183545750843736393124952016100784029988947393426427100073694234564212672390812459375832350198055074931907952901948784533896941706211842017358162903841033743596604048216558549403292456634842551033562934806397338806755665098363284801145366723434468923591092008155378470584055637248261994595828814654965370488130975306453229511296069505987021136473061231075057735098738683311890258288191979855203419522793845545486399961723440347011769398996727100639322326769908885152585910793819180367453252516958114324785691466104186973341070051880583385670265143552443206669811819811417506819713457532227515663348993960892139629100406342984875692087737739987785306338614440868648924857205394318293798720029564883045818631027023464532554832507488478745077189064385350936746857303619505413842909306812841120610784925538850592987690184836314180976392975451780409243234908414625938685613284198830671960236816785714636581514216984236000582433187812725193469217764821981213166983444420104448914701543449509070047466841403556763848555538351839116842936228567020646293634149454001481853668851310324986189146438390018403183458849640588546000222960106291003064018624427846892503318697614507624985277227051373848186064669225603786952752335777315831488843175928098688572403521447808685651937908795361013322961825310216878836741076286623016751833533751952728933959983332416532051126915539472172018704960241719979876282849843630319985614307210229983358078018359796302115188375807031788802640430430809464414603093977920422007358143835739073809695846089977455649593443227669126088303530045311919848338244417714025286431245041869999597110939233075865155444601661410521428315472079557840470449168979698361202451469147992336694865374463006711896728970352758455267408909550217879624467110583931863462667837271140265218138743286757217262326415608803998689160858372207636846646480747769737725453016241724378143290983037095119854415301186611921674677743687000136710623988664756114434890430264409809500094069432776324983126143736004119451763211250139919044007302101685037654644108735751643537216398506414139830140842490319897725170983392112664728789834586347817403492502663496655796857411111420637778327532548100763335043217052919444735761358062741928869207940745057262951019787697908471749703049014843544683902174922988084866515322970962154211997193041105619905501182960869126488656220575709351188730304675215422623557563575644519049950451685499867214758720206443566608135956694118079539008012447627549321372676473756600046562908363093333759642197176269664886897133628184786217274448127287599417074146438686129477838381695308677711252325117998915654461813945533274303702871715064329258373847411106247504289390871199832388834818510144519085197250340977104474772863891371893920773014011603814994149105600407572630663885925985784351723596424914160074213817912998847632452895467685370578017738370040593529167742598748213247329695703450915602147270172042958510495870709405522558376768558384985574873238059378309818638477864780655972951785735144557521335029701567822185151015755735733391798602567036702883799015073026115981840757352382507724022174078102718447837815380568266934843943452848133160943791167300551296319967751696635605245836173186972997562499922672613330640361578683047042094896541843431201157900573855419756833726783271590419645775720673994378761145911690253076154884239367359244654032552367403504746506925948189973435781442364979693226435742203244117968920724926609407449130558125371703412241535890851254554309408954148096768378890792136585363594993693964833924541897693315227748735336300188189321812833395136111536257034689390854260904958714888089346884267173270608558178910190478514298032710416713650772466806400494627761439564027301652315388752631706406498243683842153494502808529568684442433819725076066965382770095694448691305144342610104404894821485695630295517930140991221533705408312705077228597654035408194594910659211016106017132297369702723349949431828992738000747959312886763912694508282549237663860476261675163462775057249341923414022586413073981897124091507559201238447047907762392582398011341212003522079137726519628690401545256674832129687383662544279139909247825079439608979902693366264808166970460419551320718396357847848072425620198040754335816236676398197805435112532922892506873169592189546380714188650014144597702350115600232397786716944703395536174081854372525063584090011150446994092356459193150071640556527438900630068787311420059661787132409735179283360412245578262021161950113087091059096061554435594522678460008640840998801674535570438325871770028499542217325182104734315353589326972822418166942292982370005780451235298795633208439547353016636654790303755233063298442938589318088933487302624736230891922797435907725842878620058542055951278118276089942829648380101465789059239816753741709697833214614161744004471078931905058995179630845079809533270448172314035820523350688390129355147419983739202897942411826807045575326131994555101613473181980736240459258005934387177906897032442172263328606054624535947406221447267217078376291260781369102746395951480970951967074551214362372429440642535213214156699694593400356489547782210391347699678193297375534021578999263539333982301076858362584384114721305471061667288990202872143220687425189718432070421685684084405890752486481713434718952208557360860298013275266619091739120109158850769313624747157650908576180687305925887008895880900544549465627991146293097543691616482517896832843274089175425918721285659403202651193667914209263076643978190072704493952845965928863736495769046009685077987430885411505358292775621631062867797557247847012966585359314526432481037756762589940820174619120991609860324089218153829481310618827963321480274681050500322234844039765940386504090366029697387812306545113832939732032560629690154877508562075683018246901391552901526781450361938719232046757527078111944884447457475702018658925875083852812424394917156074285039730396365759441878449372018033029065285298085042601823068874875049933594336353496668128720002705461137009285742428962245040437534338376473224554935791528577506138241445726258262962940125791793150354496446160629553394082865229906506590531803069200459232568804946419888566705684943126995259460832647277636127253195557199355163135393650863983615951858023259429684825718414608119163861893254878706969191053376083631686111018755243483025270820207498909165517154398301143978554948535542594003079102474229029738069788650164044376446593458908008828399169057216550569687372953812798730591157906850536354336951727126083579809408228673652878246780296723545218287483451504855288494754276477384477128429142006042284663781516285351189306192947007934609108833632199368742246358571620817357286818090978676432813140230913378329040558244766273819473357189939543269226251538071825036671670555822360092364160253844520197227416725444503184250002952982929929320294817563790139226836427846634502499384984332079201960025153982691259903129607738304399158886288243530102621822041995909114751528231200233801412050264946867938387528099786188590343046395293583911112185561691967587944654928898173090756377037910780853233439167991119160563021240293452121351712985716003195007593647305370393169498211652352219627091736421044502076048304035809540369547708313694316636541298483606703841624273505261789272077212731765502941826838185941025069650732139505761721126051613551001673251164684522617903403581871314471991559852148281226849701946503573798596226394345723648656468327927906931472546490510065141922092476684859547660999650148072077730654079606411569324442638982078732789861389802919572377879729577789302429657159706845222833281153813119195956083519464908498123416184617284743674194517631590406303504748866164017564836626450170617539678203258965874687122293910452558819382174050242881140405904085539433191028928324110277557426187823599017131515321842325807705565682588707442571643075087997175830957052525882340703659299476217090685643951930701644706960002397152413576148709207011737839772485911242648862833308457247340009678133122132477814741957147922851055812110694529477435677461793274462990747270802432950232302265565681530862295338612644800006149030911473855838439846974676962374598245425821085033999081693538031489173827252291962471440382053037351722530829253321351020640459519345316817360134025138588178979777162551706567865840527310776389595049254091158784865973130699748546010321422714544919649463906467090245571604166202206196383659924620788098930528366823430387202986667717943425479505611742192062289676081340392493786207565542348746204526990874221801984777883071267682655289521988633772124861122323767374492664159853439836377614269194247733682416485891059670168838535871117356846764496378161664368521828611729329516824662580794749573847652071590149934380482106706248887785465387956253311116801730606823601184163278484009239034035631260612413587385906820082425524777020786279486257155039872561860753489244151117881264756242512009047532958714606443624608804142945951896553045033441397587040089643833290160191912490997910783355116742972066111603419478906922259673475470313873015105733421059753459193084139947705619611846619133495750831891542306341854163903918940236750444750621708064064355178008143951010497834723863661477358028498369606549770788012734826625371795713783654066933340359370293781820022428382711365811135508880085630087712486338165056986237417181936524711406772423375976885767780800833721288940928135560522812200553151095977402144321123248121308748326599482941168516968705936660895327158452584958896192061672518944734854263229926890892041863466799530401992468048315363529849225774692472095334039940799078197174919109694759624014255936747070413755878451204853712728173587551183141037461395491878266837841599592253061273021370912004838187905392482619248296904403720897935220040091775532888833053676076024382773959577143888832607235606107858582868862936530955713337281318650527509913911292394272661914343514216917050100339698802322412825330671045599712009288779703647305797239418141731703440074001482026750806822962058087595616774931138825346281729692791142387664791134561470472341810134155673278087904235991593508930631515095787602240033544347284644861626634082212356881867928380794120802668899822593563069591405270809456442941932584324615377315395665571058423133327098038527526645604609799792849361707423410493443142213286689255905856585840026259453477020167968746727295862200854765963646626965555010457626628604675049234191958157594318610151508237707399237243482071660630325294257135292557775794167200236394472552481076287805289428154375289549977997433226196537341471943932664240492200081395981824445379144576201259919009926813124160043498020185241811302263338982105839356336149185481380140207802248275281870588907316618501708406234618101887131925635376129627270531089843175998212656179349269980569701386129713049593420965535909154025827016122645009500482891828556887994384276400649137160369749905817912248694212405220885558583955488037012176286321057635040746414030137779092138047436318837985858153516574856651484321454734956126295316139593371615441400822508847104350738518195664988840436821590279671965588078561934016797826026416925283968769529345133361636800492027869998639786608881622261902766712644752467487078970512023088265003390353162241494633888256485814730817860566316222591632934441717623774200142065163894615413741656825636599715737307259459698937145787002204048965538247668135095469363893675531266786281732959450203164573671602799519257749062541232555742036350186834611466385868104153800847629176393784537720536341431319111861247849353304917370287393945514786987099771535641500467033202682393194390642578475899023830489413992015873536455430188989665299548660548621043907285279813133786855434144097605278423454314098331220619976647335882869530425813377143511042652615587254475452547194193401896488726763271315213536362192306013232694881091420663023473001229328592491539345482590018914365434676214956243872300981473206138080483267754395085587274536321548979944266178225893875601805324358960992333640137861790424199338202080632930620121193190507827281214281117621926119270305545996300161418970732741930908434597355078604152456297813075828610092924958568315728881387177664692851612186411349344674570666407089019907142388457872004603987534594301314929049844128397364498532778197297512544155361394163958033126679426816813623628813318477980504042987772246872325399663081607349293475190581783428691151472593814455593645295366066278779403871471581184590200523782042903522213979495951155152066647524409864020361390384958504924481198116885923528973726779081208675675196331059003682562579680777289416802388407234901524803070385527342146818991397163017783139013768730731002709931100826088670481923318704159628116956651982993502101074087323800798950770900190753690772032767605290019694947564875633492936909443633203213199136727926274957542780114855117945914037022651599468592212972787397098772732026195896708447729707567724526635365425148456245888777457688228499827452339178768893100985201803176323570144455716383888308692571086958105388514376629755370161031314934161873468155456500044866923292410204508080536412989965167515487799728398054080494881114785662983640794739118005871129236921942254098472584265743605483714275577414279319208587901220871750513331960059697604017056280431282567864499413395177322757875736302204297688673336571155270239384946226182772651579370249716303914052561808988009076526528964400015586451423934604522931626945582956301078533773637187891076696447213961153875221105946547044901313366694214994984526817198420342011317576569369844078001749500034463516474727970933678230494793142811345460689540350472165517655676668627608708997294478342310060485157913364019324831573310042615492896615217980262751323212575652329576755374125566148722309207656675647545186580508931039092720378601979749259692794071679377177228386714718734863649287937099665750262749040278335783219115799241690415016554462642016708578487247044096527537104962450746023675144383332020136846510943330854440547018255609483107843778681135624002371702471863283703992441950907763398990795361560254321110821734141175299304566569980670586236655047277416074952226126558043944739822832602971308851162238710781348187899605285309923288090630602654139957985462388592099942383319844050107283076844248737215956791951886201892368088877054401634459018744915287780092695199215170664336830386257496636293514365991853309305829738072224136184392069618782494944735571279649169274912391831951050040601583577704310544648869003524154438131129058733900098434460093990019646369151928709982920655847235829446352052842768082005612336309438490068183979793526476151612117319913192929199706938401999017840160462775135485797392881984354417123356448141165444223496820105559484631677531241005476297272204198623117081479779272513320509950057989633302350617724079100107543744781715336480496598259655315673327786095386455855522215098723198899538560292449730657644781662115829827578777069968658146110377120273352317976579207650604825646322617076911956875734443807930806548799251124506779346099141868094617090910939385295391591255115715298454572430976790243415976567675188388215141369843697538526721928465645274580009350249572752962118919381056736670886216054065314461706637989030492100181127864529127442812755422428742033839931572149351363589386080486945577835668369965081037718531987503568102163537668565433309118399036859696513233073866245854992830942621343446876775708758901191029536847042293854418799878796019981501106953428130294844279932260444377872282238265787246189728607331958948745257831039350650790073319598083513745403912020721232059838299088823321732535347759594747896945512354128158410405600555079335797935952569944535134545063079759901781301703748116158511558933616472614759100101248553779938612457755187683164692237536506674240818982142409525082017990480217991573771810221408173648671035217893505888956836365758056478312099982803751294548571827478801766958674921136115533019708295100994967514300574352725693845280347426911630500165405597534420444646762447674164738463278547120563203997401590805053110109046615987542384762461803077601010513246730953992325190570777528168125613409146573994500344952384913310852569015380948545965131375904712560906528000236858628354935246458878301970572670840690935684755111990321766431296288918651239898991008022448816197849807448160829516316585389205888695323694396693101059302850967127597985236894107208503053844230627958731853919450972272825499545896593227418124397532225661280617571598576150404955085504055528688947355267378197384158656508857598962564109999008220624808361244795970981174306406093050727707710698857104095793889293394568628376106917920303119722452975413498064509595148373833472995789672687053158932832540861165839626633295252268372538024000934857369073372887357293999387602470162768055565004266880809498840165021738080110192119247834864576150945912904140147314040012999613214840054623391369497724221577342099239768221827543146930631843625186585020736864150794361628983785278592266935325532983333408806798414396768800598251740986746761332686964873470320935835451265599636647333807082985577466994311169996207622860010903593005786677630209599622763837824380586985772673847609592619981936703851291444896093217518839159761276043884662126064700563821479343024469442533613789040310258985290122401280737132149625956948274744135157401770147289955215417724521307861138601239312098237599786176030891566012608546925761566819795416035611233058126402147711801885907415443023883311388526057879195863333143699579600535828385522147978870190090812320789531450648745352164681164423991922626437917524251354788052372603008053730522203813494450818264796570474199765048508036324663921592749616678493333829163919821785527441321244616946411092241757111219663003586903023318700563799610612660513797277374088313209329178045088066722188797209303129440513855907624579505657597004443725926698890626745977954381474804370735009651878702285740479932078494365547327916348651000595198436823833044203892335837676145365247421570456638731834240157803010407619629736765634593050909765977658737529981454512334463465571903494433029951394450445893371276618105423808163198885438970759655378830281765936610455078104165053673973798285983831155438508189501160133880909335663283891250061841821802525096033239748169561398366928819904957580792452468959261245444180280030178491749741257872424740683469496292867155291715024128687008759244146598535798372116799210119442791197042849902393980867045017229210061038045461671385794125422903856418950259504662710148274539065948480912930101099640937336388742465056208210678976570951263670100749483501222217871600398936880836988936329944282439414502205395371863179346002098489823888335076829767656087097245060458672753848063869795832874591563009554884263719587762908097895015403746698979027656271563079819107943922659817777448519419608859111296382695217700105678877380252587894915549355048847102231151131342785691046477933517664195080044570605389888034971312976943755287023720995053184501458628689326401530133451637829664389213766795819037451359185282899345722726205804751084117822121034683825108498683645915136208492214497657431622742133516531166738697737585651437777511675952337654545789676782239695442189253405307729146112064849704539121054927257227716383380294724106306755225515942122623018310301783679811335188021021412474210447881296043928836806209107019654618658083133961828088542125282203331614655537081287937175181805606033695896519413809579340589988447538849626087465553485163698118629279888576034858904352465718978424723712332813437571954862400620904561811496516113035452106046086905438519893940856799720962340365988894064900698546634449133247096240726264369775694198857357018696499510287830802779688675751073331304397767020989391785795850074139706720734820635259178466890129739189684342881445154010266942236189017643385008507423160353667187280129004879458405615225301112421419478468838122841769372891070020997478752656770430538929688651083383362429420539031845638676353061327827692273252620883731061461669880209158475596033445740469021249467309921241133559354457850537668159552843162143316006993047184625002249232168134234553487955949761021420091626513065079632082146692800191795891576466007806083513634711086203380320120422137435380246398499473253654981476713634074250807826296968151143086827619293292227616712419908133725418997569510013748942571173362923440296721578745910731445041582597190515570561663932407811607357347307224905159316441929011408580745879922464233368287700798913495651925323319603623986541918564892832450133608853929925292678837610710504998208372986083338560669437568608115176031903776193636439548102114182116672779875089284401318880321618067923041218911014463257557993002220516564952154073129273441334719554023200411924598710259511064985333035790192835193073636639207522783390239933498958882838663350476874400731156539413416450157340707349112811746972678249459237782585204051448233879476578426903152462037562541881034915068383310752669511668815089754009587857316769051320835781695662558798245558023691587393329402562361145464478128223565909633352272191435607549437554064777409036983063934633183457940904999413935071156497553391594644207016963273314170061477032974975489936507435694252742241849217315522584166989952001838761920235629678652297291012660150568789320991180473103680656930026135589633886231960155809681617787760852949923058566034537838534019914752517384965669698840273933154447205881884680354466884705498011517863122836220536140815773127470086493218628752019962850231803989953090580729517532039193122731347919108507852544199574514645954019123155467021140878622696176486591917397758596672455964204138750305230334956677984533226842662013136803202807896618462950791788423009736673455181562175681740104791685148506201759817075846919679633382119195504564040246941106275513186833304320236224490389330120956275280041809101205799288018528238009492463603527275288789029704576200595277953316166264633123862626979672202569417337954625132982541204292274296381987063785006713732520846656025431513677166949690405313791126819178617527816130728930398144959319258923365714376266619662667470569109452357379607147684253826846808868647695346507764453647767620444579135460001804290532680293688406009478907407283068140636581186828228713036777151905405020371896330957941105129566280394421143941922655400245050922729408432660076387815830738200562484042117548717651408310252783486099385824127026331204599917885161739270574189654257065195789910169571901424379304234858993285439467120744284855061352458363346827435498656583133428817708508957654720657491426099684557303649001596022508321433984241904056063279547160718520644072748403112197172157609757514070189199261933254311935522663158334929662602282076634618774483310810661375386173984762126970620958559214963789940157808911570515721756806004776073933813890291806792777204762658704988643160541381818952320205781222491038485440825781764827937565462774623237421014700166865400127865837173734906219446323005688524214911552951300854058298009348484668023977606048562268591421152044544904568375362219560493104795733050629700523788762437743251650918412532260280070917309303786632306367637958243120045798559094953494239886610115821614347096988283040400326391858025371563315360725691865313404487926097381844698288234273457748205820864931621676884777736094950799908149848773658269150118261112224860529462903417517932779645536918699457401058542691758439438144127523986940906208434502419874842943668718099558772150054666663384187035073313778307969803218047937192908077409112075171732693864563598391328721399823077542556341628837170034589161649599363924318189414829244583068034848463754281334344838970866623690899280669283739697724429757089346943554914199727334107012443469791151189564226458451136811579623003848616015801811166545089706335827079413203513393799714652647264280869252257648726442351135009552098944887997303343461258183525709287282239323781999427236337755712477915536197202976279394800675106120992887038545410008352217592404412934399307889712561898805258195183430731524580820226260183131624112931281468626123566222651822518689211304153433816854359857917359555086446790518593484467690492078466429618027440890853803308356928612204160022945680790226722574544682790907705355491989017931509679181483749723971020430523330825078827328021050715207650490592711538364547328741428897110162504930107098128188756058408175077698148237442247521074662749790353032254049431787815961871060647488162141949597294614019116271013377527099212066883538895352265563547986490914523729571719795002742684813372478034982905566865066162885898311404378841477964304956586685080258756173326162891657325620315764539644527124931979859468503610673457059090322336646875523296407412773112211225711756643094861759896322786818324320601219707640955424005259425263912997992041618654709126766954748221659524458509439429465090261237468890742205955398550587960320510940340109498330594550959132043309904353401975706439872921758921889500173749863064733834846984197411087015936758990728464223080706212590959723328148696380222257833586665716687931425291133549444089108789504353699963991534594514186793135076867652303916384064927191792547145429847846635370499652514232701792208240316430523418426308377022488036629734100304758241157165612131335416192890729187909516936701189684990479932016645499681522052053500966573285015879039754578549005449903538401914566709163774635238540498918326963298008923927053199390259062574039643621280822355017393029666359553889515659624313885294016611871507951773625109908559816838330448809469242472455675120837834333313255000775162003360503910351034843787394409654477575494182822245770112643803086040041576482286049583193782914887088335161752136605652319119154954426063328449046788232906855946162142808664780665885751637487564841370899260875217225526858454386803146632669522993246587809737093978153900792108421522968557522277303412830060520188452590385662087070392026724259825743273822185079768334941029942293780187547551219119039190647031486952152138220655915595833659186308439894883989245251014895974339037078960728414778679004821481079361658347895321624891082228873408657579360639929994609876368889528821790676641417237272299679534514629190123896217461550400715906411085486533582728250366321922728088964371591224303296456590620400912621601627090505801593145112832851963148795909342795520445438940815697343374385938234081358731236950828238350101790460785366970705986712721893104844961190214780900980069462863665857134436741578353626217443768415539183894257841548246056983333385236022393582966422959959074315925864608098194151795929921583268572247147008313443705865874740589151915577806369751677683178951030550655939171150163225941716001069957859860377464863181766490081561259698498000528412541237447037190687299782916033444894442169212093035386711204812386337212150480470710990377103784105992835347816057157375581285965698066513167122482352402277493243487447834620177832012471556219082179656350146528585581234026766617418442471414245430075388157709818373892370860598518601247446933406484598315497126259907028453625599261459397427495164956605550183516237652058479621030407891179836002066667642606349142855260574426158088053421553036733707654566665408566704733167059271424906406764021188618531759934910913482735893499604046732069215259919278529925521186542047614042232972245276791005153008950694778456765324583776224501476172585766408528918710053438653520547375716387152100116595118437367777218724221144184186596738896776667823307243715985105278035956164730060555742431831891111078128839793624374639587226606628154532973351521352972551161876571124911966617156628028347857406893692535085629136320260416027666318228136133368663398258464155284683740862148389712301596590667203954594249560626802623509278898463664356737828511321866988126737980264531000066854480382569925508980038973283841701228365239920977268845682885183112291945937691288695758058483693883188106758477351830661048168536473787069097158011722983495775982218224984894831518384189064454842538224850148452426873406214781229327965319112183990882295711876116433077126071183183893837050851661571333807086739126625608652926537928630136693745923014023579707451714761494227534233694406758462093865339191472128468555304969100493208744096616884000202191284861151395254664528957041648627481235315733478338363584843205073921466880851698258780430637042762412014848061731945296765669652945938372528026520424190418355942782206783449028344418252495920079303538922709018080510357518311028054147596029101682745199064486700104497592414822827467246190184083097827636681237145682732151675500344290493945170763504363024048935882360980317101803538550070376785325908982992010431986787800859176154367002599938930888802658689004851530901237832977804338677515384660830381374895314909431159506207971731146482724593795295734164795123040129550248976623999659336288495136901121169941186094319392495800553377240736284164594882816533832391193183623549186765226187241045691162088158096898902582955801430750214412028428482315955880647639034628714320375883259773656967959844354091108222778675569702178529636303225646035747926936802671156449015097802667921930970126932545467854715231357738480449194555970329254119398941173900708751210936373672208250661143662643473942008396828656213503150939007532247435527023372547868924438233639649450034194921727413259723883149239343253804045363319965459358041066320335737370916472226749074068054083812994111515385129382140257932839915609022213355238145252235053686734053974838454314349636153436699593506660338106130021742208109528921894330399859848439708580391136429268803097206224031571243731931702381612497963186293458651618069179287711562703440158377782742041975319714780953470847873948504262983013944351846253172318575943463037047055229511530847625712204184249653637698850706301574771972004729133882074196258087798178186416905175939567460132906909792316435628735579580288267863236245376622618534750962306368896633361554908136169444837319476967259131850864499454177062204537377737859296003368182111841352558918632343879290428527929847285219054842022291664102689070007560211243106889908374565395644400491756646653782034224335391803915773457841917374973450759882266930176590421777711580083841136936870154554686972376095483561315592241649696698536673903304988365730298818195057143901340527291923032573966191831242016590256664729939065411493245385166784674440665694139892207040927510781464301678288361418876622070890355877089623818843825834531285873747271461785020177238190724059180039085608888033190212887038495004118174105662278886263787956818832642034549923770656728476163933964654646275895878779991099209694051012192621390736798378706143096281336324309217292271558802583609118993394268004080466198019926128505781399181303409239219468255645914049721208873801680576510584508003903475186104173017640729732986054775423935764037533334350736377605323501013072772012267667288931739487465897147905487091632442392100134522063358866595997019389526462402926483551469276437297430636959349083682749642041718074322447138787785972064231018108133761868078743383847954505877522088360659601087047469915733183604326061284026913020503661910081728565780588788749940168305584048265977499343179498004079826704925950100744313995282550205039522241002123606686461966788590252716198514382533701012785692701935379264254034124279782756850651697458228377922625803067328049819237537493804970963168175109104709917002731642213082412986626140763789424599881656877760368286376498918904346064367334532031551119161029740884808486661854947903453115944521813286239727956771068675392338036751073572562588064059201630943006264838255568769006300234291859480520273563534381366278568543924664308562626413380905273216256670473135084737364897219814519391882603497225850570883048471675231216529023945197561233525336345365933687903225310413571288973662057126310111811582489276340733823242575286238662470662536756645240366016431503625730955264120483224598604711442918188665497653890376693140824632091043890620299750044384258982053166082594037051275195229466643792581035307748927887049612278031315296194596481611029863977013175086410258350240232569330591053789178691018034584366816101478986059677475923362013678325963428492777402072041012722546835734547392775793389242722712961863873228906591979729979856713428800661637516080175334399535541707563101646201763351206412067752407886091481156704545780055100876771930967689161357367009525300337202891815911032389762727708084746383027865859124367464379659979077493298481799463477870006014505187710610384109479828978184618753784355075795293086851694451822278949581548643204284953431593967727644834650946451718421161769908869710293053781007245287576039055450124981599352334020766777596750986241930784406148079387426522874522252099330092071741192774600912733045533737939141466497820164417312127063355953424981092839445116389151278204929212188767534211587719306906416508625720061292212025410874444725801441659641929034963965240870865992872319202149568730753066630727543115236505501733986957795776924976828633727957111142186238355399270664798456962938019125143062623312051991505492834662658829485663343488315456496399486252868489268750887449944953674018733812113247787058876932649270334502431379337551634748028684006148645813596135675684296160873938794870646027485798098036665938168587862236572837320997596428283952416845148153862984943251750995779847170760218032195768608474629996182646264041505030338763640449543138455933868889017655006681696260084302557849323228576989129584413988546961798942685444048890870356949117936873753824888106748584574664984644325168925287687374808303108327445562798980903507777691564150733146378761217527159704163399438261393740089276906873699903071137672099533181049921535660745099422075316328802039142471449534201595987090368072254734698867803834125609194606884290582546833691085451113655383405796459049511528948078738106928815143482704124243035903408262118141498158614782442289485328957731351119622537595348707539410774724180120324981056441121543336948216079094553560996826189963189808574583395754956710571695483221324882760222128793809514471499144124990722262881035329677419522023449856415721548394186449829760344174515556786140659509609297509791898432563511540185822175089094494309468709267674531714093803466588979986396699210247118953064570192895443135940043823098080938796606937111901309685888532287112334510476488588065207914429125349989781629128346431770531432317827256348816080164551992057341979806463464080043494264416775452252451156105723080029562269621450614177089528903282417681603192794411231030783307878315878618796877790336255941905360976412354037779032063250551258249833235385154972370453073912362896406268709894583739610277080132331779462614282795102207359238547844752853705398610861210950776609739094115559101296969726888286363921048554116134443337545127794986551695120800245561239576371542885083779925623737599723901712581383266374192037535197491502387603561565181745653959486410707668351522197398665744201468365994288408326800689910094570295210629229461669224764712538427901638757202521593009409551115019842997487399581964171492274822062491110107182938045153976826379411538176062884553698794956745295685043877750307982627626989991104820471742261024942740781134554239140975782574507858313670921002280620261083592515910979046670385591330763684226881620949239423894220097799860311762473567811005181534467265039840993915611809753717888506928861756807261793249475664182004336349240201790764287264834513884637405583755882514469695884588346392759634935150928010513067332985391955712084048226348288117850187097310766999082267244143788856480706628554894869542870295081520726626860681285351253641389264449532292237402598039345134348006747375050884734594546335098615847557597394914307027558217886428446261814371136703771877941929265819150629910113064744283660580910879293760472055898890876846946605173892929989798161889857851659798568952419448181682263682329930910935625314154142508563023195651822651791440749606691953024292751819126931844143936438271391351225760327282191585077238373439395147057820501606867155078641287772459363811541041111053918636325015652007337536213174631760206581838876433228786110732654792056322005025196838795407477022039264455173236198795601629630413414782928461209660548242814422405143521051792349583311489916544958036485784678828470131600361092155494123789936744373606866469544026336904974956943964767674346460779378958608091800165286538080437006193462059194283454939727798466360973668247906295532467245583225054566743101102047759294010270244064670734040125417420149105776679755109892797134429439536901821158742085635566718169030856956442747267817172461545853946690276482798078396020422731473073331050017885303827690512443931506563464687883855385914320613208000674044922632484524504137859845546209304380135988340796194098112179174443144254487658062527134591113139811745466896997870952713958249278460465693277377184956414797456485122933211946586262711983855007258090065498806605509183849518665926782707553698324621974455830831113336320970132267146476436597330340308344246806987253383084179226214402396027684807114850391563278618412735543197423608887637117855007703647823490599902026549745625066044520521557228001044841260153022295896567142236236642997195392383806473783996904747021914738978293865474767959470087817611699805739629609236989722681327770232563932964563414198200290087535862431042965028717966244155468208437274248784934777275790486125137315335764570968548990905322547392186639449972757068320019631561600459971310716068267738755034179295147154211228960178236790094419328473733860246374417682233305754166254555972841360727750676537621654485679516926901947201080502995885579671906005383222486627161686479185840629115052110671196923765587845269579380517442406181069404951929386165375477276038159982307660398876584478580463071380428019258103093837207385891962729086897072979079823701932207313406689757315574817568600748308234548118874047654126519566293034757400136019800933074261237861560984103640285985806855834130609144122410957549112216297455483053772462559377745346593141235090318915392116897412760290525668482158238962747623743281716500269088208788058414599785798289692970628646222952367770784515959942333395555485657878717701199971531078963702984448404845575927053297655020240550490147319867793554453988778430767534088443761695703759845889037673939530481002270303462465035858098096353016434834667130960599379408266430854456487189762581780538432177051973339282721009898126956080669205845978798382902552127015811046193182419103829808278276329741618500320783704573411003321901124627382930835354241303817871177901663329465911184776647053562880637336177360552937459743580185606160582409261214786964989680588465389018202335221926629493699618986297903107928396698239881443750038333595139121196942407819763381438614913144017519413114143291281748269117277789678399399632965452324432369409922100113604532571676972182718714177953963750306942689579768869884560127912456171579743273035529192876198642811946372988178529006580313624609745085598561717942782360159092430639499017110724850853411143464929163168216447172026257721101508783389175677000334479549209668911987905689498778488502512606417961393451485063330491699190667165312511291369268352548256597525201451271186924945909744786435684836628862225666842986710565193912007760714628149279033559373012141875770639950682023949403271192684871739542883270213429896222030119896483889838833437459170519414522720055352295115816937916420019203486650661187203690338141079860705554699599965794041194997464169100901244144838534163209862828543913745603338298171386271603345483456523623109052197689664309939911600786034100636441183053225464099568330425179867613897789031284634737035111310165778169561494967610641615506843707181492701400480814122205839112202782578423919350298676798144373974776839440441183579663551828415569120488506728206133070057522827968135312497323885122777100273463903157922988894016522421029434708595727119131813843371765109703235279405587731985834700248836939629045538549295705407151459701127892652099056552686691489595374520404682170623239430987961944817906168424275223338637922448752735020732314516063931103904532743553193850258981434658748902372440293081365471776639038791348139808438662166521236703191546488718417735251064806331793306156035731289820248872476601948077812555941823114137228411214884811110222912386125237447709129523074010151472465606223134235141820666099160656886360900112815100941991750654084784274727812798731678213055532829038061606437564156755654924192556219501212699907219670872648033777143588247710986458379860619300474672044527211089515039331302872013945092341988807427491101506300904069072694318594833852243471130269688720225796159464612901562613352407998540799644357636758254485671094384412649470623314315376947356612995825722826011637968689652326140588944639514785632535068695343401501666770399327436108850078575963564893189968812294714225502985878590958183928286908783429500505187611405491892359633102283454364819120235960016598440113802645508094036309795714265120722904728334528737363960892069191320176238754500343010228710719233004499737329636501106048282703092457403143789034608412383123769652050596713597232958644613554269469940460875989110305891196319565794718933602905072636702034344648581222364302830945760552768262917622461342552613327804988708117283857924163272724226989868838725879262672190493964137117991960234417464513177162108554953660609429196834886141055030908623325996714134478031712356469062461125336810357818458035050960212801152975238965886286401932780448508270248338035897689519159901334829362106657978997076259971250087195664963977388988649985830203801796041544703290906602270610243468703613404929418870522728789705544979387641269799235338096423019508403369681136290738337564389175150407181472419655500987072320925418442744640094816963352860848769981119078822454279400225425838094066975300321071762119260054942053793244999642380410674727501797880811857620151204811076728188298642742745111852720259218453563010016557489411369206437304727189183008209788562452743657253583902375056392800024660008691196856247360375803034176549157707466352688778546783130721859578753376131989125760906805839179895326805640405268256265589146334102480683541109058468415909483651921016798098838866291919502029649225494601518282042312992323534106218486646667445975692737820726553454798085767386436141140165665508766035804305365862833670400043965445354118845682610160081048878049179605474897125659015786570001868265114713102747439013871110523642372625241236441697279430900169927251865615673860746013052765166632128237338036993749471225618132389248217184581248864302498598631600050913441013203839710759808495735248347286789387847641104089700387633675161687059513325804207327062591380157075058542109747865430697241850658234396236119825869432663301699965824645640954351472774809021242457427851017817780032660941080149596789871924781595249915527728757883613283369095897116545590208913331305171439830709495776323631708958694957928898158240332087217699891192657362424167137570928573502877395914957119797939007915032626068474215636511803722334495726138416424554385291073865205994552831435506264209897618690333288273812889963038964463611516815408574651057318272566846252972857786046260369899334240373030850015622760663758038287606027012624802426307281020992885350901280640041128062451308188185460733828751181187908725561127718314187688594982936725144970284671558579566634925891011915912130445758708829036380840286519299794081532125612784377988326458152258800032713855271283865606451306398597204246117887139829532148626995882816906128095766837699913660695911154758098368553436675056616268002827427199438445553237368768006322693955707825614691152331659413662312252970348500314835399472400191455584291183608253401918455829524339593167474571333627129469320588034206989700729552336030314233349781512655985189835331699870803681155138918456880811864565519076493781616445385495950382112307448697227274721429373061257077920681094692382526811278879358988199096607102163836987343491126484161486670303854395234521966557624242764246810906743962595393379337726739386102832565465922369228602613953303027532273182904966385988532899575078887868772322879182716615114264940779225954888814650246724953940493144528393389976670857200094830801816541212777226543148871180664068256080206969738499053473850035229208385724116611343947996348953762138966221933395768469892197637610094625993084544894578746674757584523364725282712350697175464420614688799646731072979054310052851818899379799140398703362959101850747852242441813146894296310644390917189860398649954514156197626050262273225949375843572124563887592960733580194434602277571385756407253434163367336544192760744914889876805146279796664045457104576607877560891398839226728450018684199861922324789050917580461505140553716990971161910275527699728069271214319632607886623548720656165523008887555022201745300066845845903755471000782116583442204913570590871755747342115194051494339489198605861333172257757979830680664491770155073912833789650025034711967676659946286559319845455763641512977155981464294835658342613726068090010696319422175864519143808462415042400596915115211999273026946981979267145501868079606288977723652481388064459088234982820076755301322974975197253324684895592492793822605479104210089166503106956175629170863849283714358493567421855798647913229741068725969528566163116758540982660455820888429513620143501091144173225416348706469587262186661750518864797763347382393350856472348670007479190408052754626385821126662006363471299617213644235994101849336325821678934728008272624387889988300803645883040727120073635022148561053643189753788408893268282176462424747393325771288867325774975786930810166391564496363083516884782094660232266005660382124823334734445867492001239623709979098280232917749997586245292009151918091785832718071622979463988558986594965834709821010963841928186203290603891388104545372416785658798877500385828116438493046989752016734026169047095006890471694847547392509853516407983295088630532244843712423363709103281597448816456346706648038673972215511678763678168519562797951800339765198136814903230612208799825150772399379252682068271877514732547800530114624268800153997087672837986648206441616642155851367735997506168076685165149959186047882391451433591987907167773949233644592258737544607809046882990240619699995573855370982384632996949782690864200370891579018605648824556036963132718614020874711094205784454288319610593943517737616484379528885388162310276248491061455628076686306671037859411876070912943895116046635196187925787472729587512811389000918957004776653976131106288753553590695361809174720074178322112572678378324020008045285639659736488203230834470174953924177302412797255140455915315706506524897988957423921787120797680688696261017676385831481857214264433977689514808816316450863927374930299412522476244908402182517315066551429660511997416275057498077075007294017868009630686042921898901550031133419583252074137715147805757248249918296387865232611459296098778190462555268243461266982553802150543075292664101871593041008608925162284418055766942934481596925038926288777228779136669179754464001144719562523837229763531133876775121328597478762792557894353838617717329104518020211557371160822341520098874251561443140144371681062026946690679116943236677694858590181380001920519056470797794473843456647295981018402137139491704397764908533343214641285953594334919627298526580126732860075407566435805660429465609800518286363847526530875468613218279335234045292279756390116938631944790041117941027306387147451621289438690422710403990525226395453937152106384878136119370641854898273005712484195145869069033571682748568338611460306406532614500220961971133947782797041582985457264894949301673346530573373324490399225102661456707072595899037415178635678616913839722200622690703778894291401540180990552397245237769784827542612874926702675285935088731215520796896254878611000658123776603596568275004062893118025825466024680573185321198332581843774652960930277013907635134729717968092996498208140973868404915739728960612630392665605680137099331436818620542691348667017447990350158219690697398689865877524795986945977433619543773102346392497176558192432331198330013413712006685550923796416371033497552415171902951565132757134172645872023594941429217243440758956979715136506381916033583540158139176970784245855737000587114701460341509884096136657841604501648035920109283955980362164894446929106894088528646037121170856458123063429911095500360014915211259316515251668014786905473231641531967931420007755315238231831165135549368367014056928907093747433476095668729771014980580075012148782547501397972562928481681324105152171352935479999349890288971095786647589506821791299336158994581854155075948281392044922195823083118459743797663180506230415805707554772638918264828458917738263492114143500557191068815269449237096861169267242244438303024031105680562858785147084669337494097104800478738377158520617469622007455185608150852665495218475176203105155429551150532954524915545645657037181550546141289086492993701060438866772491341846214796202042056876500227357721500993932211863615720306095138379793171676299122868940345115822167497276392441880008651174469773460662532842379757608450987796763855799613876126896676039407076627873757269387404626638089399137221538466708139564372367885069273044240216266676784010374006564026514446019725015841689585737114623086070850181557385175948316473512695329393090080477948770261902928617881857084453626397849672144869421100212785698530730588740804358222897858051870225152239422857568885015451533021358929506935236392129610184645250222666929206331074380625867047027342486432721730055737141483045754432521127639643841008659254249992135448648775361083612217241401015896729485084769542080535152393141479360215442643566415703850185372661284336858592946453835707150441632298880147727106621916890410030504827847925075064550198065960665081588455149793850733423476948559946177569351961273901234899357421303472464554753181370307830325789649664431871194861591017005007262055518653603824910702931760802449712156767500267395790028946294171498502420046644105507679889081870082186620602707831601372676724454861930555655470565785631889036615186321399434629991137289768268059428220301624808473399498900931523548919258366084698021581673639386981263063003855045024732946973916258939471046869339311665477481760831142691087384124919980349077084687320338130861405306079978165815186797103326284092741571068856705386152089992081903307457595433516056142411370011875106193033397203204072718863213465696121953295670263988215998997900288129631231324024106815120119098544209703899427273851001043616552315477395738186829305455156363927644339507297214940772049832222531894513457944960235845260108888538944445649225489264061698962942024651929187286594350709347379318664705999477829753174277543531289419554770368922752794652453220633191619692478325419946663903612137828181286995542169882966006922754230817621078658338511846525245579320874287315314173494352945480074492104315562522690711563690731122709171517646906875945347104697157885650005850521175530437007631165847891880694902709412019805024711403941688576083437819838464035327448828969014886981414225132882648682742025300691239605443194229660812755919062106754818627444243325051626403655983602886850200241481589263154760422490510400318678785706922095845882507184851571787134062525069069437786104108318922297924650760992196203020324539113403076196009690847273906252378560872614592366019944095845881442551571370651178576847744507306885136500975646871389374255458809719276123278687607511128585090484527363236828049558301561499769603685263653052714669023832260147563069960029389713896574825031242688672300375183502639792948147913792668490605809724048475163352031975469552966540044218648282148313166928735484250431191573320591350218977537848089937753127646863016641762643068890367087434940325865913109616364129121271696109009855272906418035416745683868125722437784418038953738795592051450147238116955946348313748727132068930413769623952440153250450278407319802777696600920698529334542170523851326490803901872063618387164786477724332921628622911244569371547993108836509761888945308483042014377083045979163255691420982374018717565980435081262073293659858214447222347424473164857422727759051874684705145923011558929074090483890463866433081379574228839637296699214740527367971535514999324588049992734037185035926095349369182754369889370627070121798091166619137973275474833152267541094991886533975902252969789905705663099004606967395708618382661341655607414517669110905335244776730095387292171240004470345242061454991857461307498216584730623205775739472661686312859724856139493802689631384274197034587876798029302245971988620684370202688983326036083599916652338556113036471363560172746529358575154114630556327731484136999103573945595626750652932789444398783025769909878100843312626354474429463123612541998708950271637914662156356099095439720523303559687775122654078511631591810454628115956094347303825381249983531916573542218815425203426935938009888260530160162330091695106776394453609390429321772043469189581637393748462476413054125416085789482563664281351763412583792216011388752018719878912529084033167774869115965184457260871175594360128824394132187358193939041043552167677484624368513901294067725454948017848367532039481392529402024285205697769102584253580597442846671793896719688009976285763557101892533883001828551271001909367390830714862918798613347820236723830713198999938222513890889756538748801090891756343026002954017492939912028817289253196544057311911970681710645857464388928482122929393508226417269554029972734987892791105235678877615679432007382695803735614490680167817580670467650774680050934043894342017894319351318340269206654858712143397695956439582640488918894549398232588683201593460708827203622087545040025268873882230959182857760543755902815828335265379469443616021645388514843265637980977595760835836358529374570050909990893733073290761990395184558417653072758198859179764857876625423115098873534090757801008321304388144134471974149709821834442577824054113749812317180026654050609888205824804522760175689157492248881446948815875440328299952461348427456574646031391476764302220603823533724857333945379373880854982716511389662204673081300841609736219560855024317436299261578236277225566065732357624833739805526466290519617945276772505444795232416285997037301589671602407014578648146142499308104344663229320239353111338945030714275714595758584707476653813188897254829266867899653268897429648286513468007222236182547643565355471562491222087250310374936281794794446442751857447712127417005867123858770093993831899153050933120200161754972100011936181038741921461737504693057967417101375400026790867678152246752752733851955938935461243295655435813940449519776562442633450788129629160481585924756319849724650096804700833867389193786186488605326224059351509726608515745594009047923878551849140205251160248925905595729166074991274428114827679355895844599693192314975164251367104658800144897809510349761131425658427409143904081742572392782522077129371069308972230789193193306902488834769486425657356128613151520960534517479640462004271996514584395898148654573280370394223019649361819371226433062118929954080025734540427778026767025206753056285532138958178605590002093016560083285622172413321419693492117903946991291945853223225198025495629203004238773676228008792055932060752320934779029743911228226322738877327819088073363587381603586233781794699389825330985941421990334733779466492478866707503813058585877553294994367236996769312461428620255804548749049432353431309198186950448732572068648578807077365766987264813193949559945771683336839609373877377613179741296759930966032447578964572023741297506942118493562189212288590050833577234616067145729683072040799864858694728040001075043014795141669184668777797142642875093387118343968551376090878899696542010179025994150652820954312237183644743199120761941747374794597867977383391205536290053120169055985431233341888967056929902697743410140917110244328066879564685884071540075357823839886095777865525138061465376151157269412325608717362213771239406520808239034414695756149354269282313602401592534870523915044141988936432799470346273534397967073066602722566811604714241381244127973091129386881677011127972626761823470443285307640274187811496352000947816661425563574016807018913642270878784470876429464220112347621216774158525415085889356327513332261421744467437592257662798422673726629955656831989036162673137866293979514301721926542135161354323637920415837035945731295519841653041006319574322041719425398504137336760973844332168205817674665573903432808838467224804192049006131254784860586265135856516843684084868124620961164441577443477758736716350641442910012962689384605693077657559074522224283815541650270746345177012441899914240881043606729202478177272669102542729508321330979500735634196232295012538788336904446199312868705030382054231072291645738724905180705479149652812232660422422951986043775501465457997125412016062815697930504058809562761599422471611877777924737356170114500168953431108512345392278807917115186901292053476984700339690757878913532721017338652783173246057724332123827404667750455280590570984108741498258823406840636935196110198595163937693048575625786602739096144711912741212428494233593015791967581700844768795029079502106216225936215117413597110617456421210548627994715301621721909975321132117019241525385392738402376978448978034121647396446358077181181723176952384059036261590072292546586000016348597179923413614607058440403616596403817561418181571803950806472491684503956414425225384032813226534590489146108947522985597348921736749515519163843900282603317571298838283277364374502253053824638403267356498784222614205279175160770695993456202227261248857807987358709868449976037476535661497248567885666418716295134862419904274106078582000331478027936071439436224354064524323175774478970303538036001110915317093645029389107063403248365247530365362156094066388660139990656055375642170244651354802162107841810912067214670994466650084323638016375690034410829083245649393225624609042620687684978791990945525142521047560886315916448297762881648934195945319137717587278587499557301683559941025721246223475932056798040975809172173594214349015473283337246021840925593328736764766673257737904358097348511219559850539262511312982194908492555103963854571702628850428753887626966370404173534208687485991956743225835357605940374772025642857287263425009883713289535776009928421787395540125956108463627857979906555138763997300058622384677026048092348439251131322902595954019963734681233120286999481213983326377669833501921991675016153957100807088114263602393132465420189692632740510800333453615393156123996517385093499665308998191286200108545260203141715783184782192387424035412073212638926068245355755656830335352760367381283291137392134281566150151356083820440054910709239645936141279401914147313795826071939877421910371580885416897858688736689522866658439851428674546326533722837406206061957651410822167512996314097894769467329666949618237719073494830585573719919445152104207518287401594143682119780370848313905756763394064175306451658224174290055629871061441576507561345903599791128243164892169090340313099598386727187140439108702421833682536090522633477716068491403531069300789388281756524412052033769349210428948997063337320374787357325623639843162647934206631824663795570568564548761032363500579927194433612207931999339428790060457666470572747198360683347934278959395256452278212656361520860996635555054077814812393176356805001688799498859577655879533787793161947179302391105569109603538204405550738091680401063497492527275671853277892962634302631371089033184866022073111299365212679809045840706587440728306793576495491944466084897837155747042373033488477623757519026994408706778452516552641653526130950783693711260641465718550385338752009024940897634109124225804185441263412878566634986981054999584662828143140343821130937421541535333653437168784566494183864517472432277559592799951250293699598646030569383635133199037713075137253623218056382864623095325110030423396887603758434175968953178471422447956491986611601666214708404789035985670175636254398328559034056091324821539943539020010386500285070480515518765629006137495955564981229850857854686160892800392264154698746255535011091812478838896308705973307686537850408558610191451043409370177670312835394986849787682242717945766028323112662189374142722833538460039631250414229683223700126975930825822958141260636840689527757017777969893545745371160850905098925526298270837400239250193810380037815452411983712701900265473556471945475119822705361295001350945977316123117421332893479431687932695195945418242164960586071948092739442022437447346088459665053165706322758166375813936716854879073680520875482773025745348047375175206523878675375340389966346387490569218888561823370385383580728574426970195461316726844276230703405793588407220112492342696585770819331856562968995915969649545037614993568679268197960981172453310427640418142789963834368160675881293568218513362851205069053895609144578410423566804210423539649557253587850620539122646582572412617594563623831857379688232547772413574945379354469305665993513304138963895881326314793237910339910364917200305858966541525281241894592403862276335020554158674378854916180678132414535273760026130425396349644084341794583625970761910590311182500994913206109271309490023219996076413276726842536889907708461120393695261830700110746778528126081596052344450623854538416193215275710901639091281747959774879576254802530951650883000702778812052066073896472541349699909159729129832267886531119274583463035572471526353125943148033575205419000880731449779365756801363896658242639725847225921081819982909010460354738744114506542805901014987642372347337813369063719795575737881332135822953293573300394970014464934869654525310367274682811049066830512260949301313093252064551184481748549877978228685575307205955218238289202616699450300813630830367694015248570531652708052619083317486077708665404933427502683703509437615872977022063899321865821406955914009662718264279532407092182595950961779134917694794282297493610926440918422909921647759989021217890573870925635961052086226826146355154338349608795780346730117403416749951650298171820838119637872202055994058761968953857343873412924375875303214181838759274424454523804895552511767064639798560963755925424491891653282096310634272899684987292968538527439714523785499216536314385292060247322730216669479814749218620108847022586345911914945960676930103841617266481365819565582242325975507213010102517636427847995442851401729890495624162311254822102114272383553833909791404118841525665783343632427741433140447566842075917961590985448232925249523511443960190080536106484007553869808899006609725123694700444239358974712332985938907565249457591937702595907730061800273886649692195792503956236508608571659895293504137684139132509752732054421671729725639104903871408531086713708879612698946646685304121080359930788944929263960796865431155816705035233988790296497488110981044421140236190085725312988849298129801156442544108295263528062404656724381426563224425815806670675698533294181806267520419953620628322601376464163529774692670970489232127593361155257920376501201666446969872377270418535680210308666390156462027149964432325132520984835594714824776403308811875335127405334206562397453884445606899400179720825179536796499868362786152604909317871270541074848064666816760547296492142208766441099325434295522192302757728897006016461499740112972960128946228192373304741032500298281284356787639042483548699884098991215571694581832673861932217574548329986456733163112811325528567267493626130165104744644742052749775077349820542161666771596602529138628719154146858051070438963895963081228536507334729180790951754664524908515142923399912045519044524815538924891868582610895841476888343223133223845712471841981880769229673436220812934190780931192846797051703774820994870509301130128842792042800058640270842954504769226192927181302062642386100967310956685992995965462983442022039660169093373581212702289299408149768736371239227451064817254813114879039740174847494524425458040835811793310635873160762499554139002985269255597038005972661760947023487764645376999714613190334686248857278133012952594640312824201112950943042405785244554133264205867362993121673902124833675396920034136491141585509806377172664407492935319268416831775041958690087626807547697595113795948313086508802051727913654844237373686791657283740083581199508036307972404932119739306414438491061257930391756437833289973868626192092497282368024885863524417211040983653331972911764727041853534212890814177531230154116315842951644535435703917578422761090817949171637940694676452455206692892855749857628043817709636414791556731021271316506747301105823178452526410711676196182195141213116996650882179431488397722326000011577999014994609072578524713166823896151109164664317506741668925666644975170492755551634114998007383009470481110014213084721637772292521923504778362387600587807846727112369920247072950479472210837705159838879571827642745233424920335196361595969261076650263861799504734809606791042688223236247030006209580268148550624085576319769911815519000482226249059408111539360829782526771755558602002784063189607795182787165455395421286950998302483914201224621163963032334134647395107352684078970723668223063496012861632547851666563082836708384752628107678544948785230265412555790234770307532278222730770791433191541131106805394405695459693460373363647766736672525834900035251213128585897308682313528278149547154191211560614235781463270781590117917693430445211972182087217135818876047383451519676591417251403938114207057033092110397689053187995260644710269962140743840017195176737371210151525083077743854830824077946697131180995683005802926637561732996772361727457484479247227662156114288089636767363340603197893650657112405851882932535743100198707607932372058045059825038573635851079718963840519307098022695471820700950348278155208641480979874451215152496146041291540765362599336220102435118222770960299368134092872572847995018563216685223136850922784496535529728881613488068170448018157300787241603134008911156413361206142476057605552859967892910948160533155428892721804238105368709614290056677998083934712383078675820262963799447026168159291370490507928752909246098097556068505053328828631333522846342169786689596333510734419356416719130284542231351086782468081163530382352939556085926787510347877446328128903785078164235178276705941001552589643194749116020359429252677639870859281391828758054480257103271427986920835620073016887842506630802963503997152334110669412560739188425651711266172665725938239630632959216970608981130661610073459892796343727793614136482738324508100116093040930104403494985122422007590551356276657728966420844715306277077265169218528446866452171204023637496696869132042324820696456261846830011043226255566997488895278165477809747269367222307040268110432070895059512272105474184838561431693081628709779562316211675366552525813302867645555957244876416637662787497378854875040305750765289210618565478314807665091098053642964836089261198074828835665206353193662222025037421578643190276398410218650022976434405331704319566172170016149125287154569879201332511554168650021642067937202833306274058454084980623885336936943808441515514666422799772076870252014072693725466107118274615112200880060925330842340680267139705794977958660542301981637042457248831066944889495258070225773607759688851799097830313240993102987887957777813792300591584689038771052733861351355402545663550959915985969944668855363397986803458845852343172309193872939808199461578366177212496881336322844251184420973556933174282205627290713897572504977591565589477726856224738684827887191502648147910515757844501524314516186585607380648064740228489417485009016913337080751811991039633912516743371784367004640558372010313916050656668542524415209350718618263578911355395924495742766325991303551907323416823794683891647236818168035456314688317051676911260855664329609497532377777389300716605825018551666534754670285665946032416577063403803184828112179791792628142965863937952846658621162024202776751567566439401358133392517024607400378223851750941309462465141110154700946863230327272335660322591807486356542297266740512305548063271458711474556907260643852916766832764029801669551510500683688055584967096317687704592018840652201010563878942259339941575060179237324636770642294056508219336987991157997414594662393147959351135543369901214153594876228703107104619094265828203205509560897751215307121063269088904428205344185404776080827673714758585445568084297848721992339687331371564784596497367775282492314383976302269232600146549886216842521557276702152871050734169989269496550363524306132650101144454569087440556774926480134759727786153895035308482219930801391701212849212516823272560006831753641975489253463807199398302521518520347742813748560300054111858398760181929843595994532707528850223061713640311493890223789922563250268127583746819437624732371444884608175686231203858907499510012180169877344255028389594189507690016916587053534884043479431252738213319281192350564877354292324867696499703587947843205289214249257854113238764892292677528300778954673609807291414670794966962623687370258759228207166289885759078447051428234427856879970522779226804893252245580905144139909558032528288011423779427111527450090863585094553983951618810058598242141851170027356825438146977054236891463581414078920312025921952286840253949407996156875992332089008428695704352613655410696636235587698362794572782480070848806683346326497512920300265305550354300904547199983196296214348444545523997988098305931606039613109363123490659693591367574121338413674360730252771308772310173030821179599995038380432710428125905066902756264569743683372714919803372923206789925592110049655800381282092202322897439682800953986098604656190639132866797532140906105092485624654313332678988856671917692878575155008036970994942764544884039821485132953038235196395775375028163209584308377696784225020574128602311649936017087182308139762589345207018045992687682198070723110751096748197317353777928332062955412271954329311216789782630156075018002368605090502439490088415599742479015889734235916990258788175746724002513190767343332073241561954607419772248377756378273820759723987684169784958036125838847677463496002311811289343237838470129954353354755854022491226918556182430718538161599054542489645413599669341341354487106833336762435056592917887808573140829007184870248484421656032042737301629999692678014333342080776848505823431196287159468348160157847000039385815636564071377333540153049247033864265392785017373368447534742114808178762004080145231766811245574112301596599179411144921986908099858896771985180986544533424160243601591762466211398102557409507659881914924035822165279452479991848548939144679733570416705209220301026643885981529479810854415004816352708803604725175420374179675987477941534145179156253230692313537784620185193664986202879937436635969796736067684513727411173871766522263581586018652452791446522843241382728996119504858364313971628109814303650731159409867791012377429609155489875922283334348483089942827909541839863714682058927893895328813044566837947765606696622746497513536002785687954316849509230642219438729036536264030329847200728488991573433828483011475345046059380308629883139572620889863517249302052848686308287634934831466104750563764908937099979099449273638823104173620217204728422418172051981361599657564248804177151170336536287158826080647970617869805233021760702388591533086394635704482613588941447870227193615118756978804362486425422570460069856370804307312317171340202316524481517532750487483181766601754381501166293142349246648116531130061636231863565227475848927224853984567023092188561399426425795475719497764722516988216167565145287283952609556136272834527282919880023088710744659594695235332989083076067146667647054802483484925982929099383991031636450714555903796793569710807141651658434892085159022816668317202349295087731574744772125415361553500987322060564584159044211249227848679447218431988648195223367888991680928853162578441730035895717212277697654776777716346905344710934195868779227694821916594610087600734619605345356164286268660328890313208121724137993612187043519407106967585709814861226562052310733071041102762603336511541239243911312464283198946149682692844921231881440949036631151787391192015798395378181471921329150199293320365861620800082122787044726261608716173106824145279009299236612584437734232051982144902249853240311471224454093082550652319098330677299421729867639767428021960274558785382476198876079296065230257175704150466412094332191675382079900535792132106426729325704328578794643584499083576524233444917032603348509851460567080218992127834427727228064975885268488092557694241001003425031173403257133270939143790563008930572028390382504137372585829629375322642411647649409847010286154305499797199173904777054249352792970786143008913123606099544113778571432230291750932081805636175951944510240728700223839620255607156770669683369406589603006863544007103212257772368749110869627167698882714159715472717529764125080954473381066154384884985361995608330766617661095691273913526244328392993444590128478074566238831036811364044408758303249246638789972316907866124459110130981815962168073146307661305805922503707991190648203595329354530637565372979081785058954644208369308114796273139555009504495243499910886938944043081845110602667828350718681479310898573800456419458886501365325799576082498266425685340281817644904495159544064680889848272916404265548238454589705378622338745652264868149889702873333178526590577321201332905486557922698967819296455667442625943026658122010881797099864865993158405029258183085753011530646812537274488230024014068834248985447160326830703265445402088182713241733696519887634625533895501776054188162888177200860567421470428974877191555779685371213031763621702842836940121639553299641228855243466700448322380559376132323412075414581914695899811083003506438739247259618308317332359647513390985381483708694881179467507704694083734985219885685853890921292834141059368108911065437381116821673332132024361565193128990748878699239067535244309419624164713193818439510972139269562586302167326412316914450570886742172587945735442169929689590971946004967276333578229202171458963900095387653994892489374253529813548106744448930098150582689662920527488019733889458562898717847712131306747398870151920217529704136175062466359213440213756185147279639076632400167861224888037398937906714021627603669687177038660178612077218187210743838562335991993667631042332502870961041900467753272817547324915268485175889380373660567453729017918781413025984151450191441416053085558562355731493647582969751997537243777799816970160016914237020315667924289114947353762632544015696296481679091616224711029303842764700940457813407603250627439548571035507251084585808589355062446349075739778041492169449220415371428042383124915927841474591151738929271248524464436352523142326610507270951133427051460430440168709211000334395660488329915824797415234895481095484873664811078997090554536417160752500113504011727681734331563402315325676274399423736753346907402836860833835322644693011071543118238628349792931644080196236311917388328272295369340455308144351613733313979193436733417539715942853108926943866528468979412407886310814189979326106806551439875037023984631646932743719624234417115801964761728788901461215643385115436353186948555600954200207892857780062149368247345216628181566489726461817551091341971775751773818524987081374681529556307116103553125150217935847676958816700318671285359366698427448014847691081371506472522778131381420035173039894762691037050008157966896652440512909215049168686040647368856925304175980102338805036255489774460592598494334575839950135207355485472763142148588217941279636734427527577750544100814357859041714755180188259361033326259489636759890380929532871454770162188583371115445920598099772237026577102919130057854002016806794107272949259547322044701316627447752347004277245151037617836818294739983968280742198444731623262148052612355416616479243523013823269140634080698598567784464794709373059881122017292375547265614242224216272336396726728704941915128310789857359966945349896622589831618607202568603450579572022693850918513973718078308153038793258904192333490795935518148677435211054435365409848363673462499882743065257721112770816612821952239108100932269053879836268239135001501340610599482726337778578583754304591689171831636093300103343213558489790301378842480710558530930538038223941447617666432549669037178715880304757218150808327044349934147077556045640575592021065048629097396668328478570343439565764657999347003308112823525710631705668530667079608620734473407169200656744085676907931944124522817933474305676028191298513835866675380765639823379480531776633326785333830758930839838372131513409106481489214373462531639735561226082730043405051259152656943708277400760348242225587350819562126130227108655565581036920376128363096006010666226432865446067847711234673984574391806984946736299329116279496693216650062550943300582539413672455937835838220479821413064280852935849882730371287306980812473934729449232681694046994009067586261962316768083712243671582756709709777074695012417802690492787523079096598770461303378207927651543489027022163420630405623941134190772873209448871187297898141909227184904476958081384360896356258648866906560235338323573805932239678973608887555847109109716408057326398436022697153752274878689667400446809597307933474927511274924084283642739474227512058490844179013299190193753778667375160429172625008425953779400098458739392403445784446723766458207713502427371276655555055181506833593722802154831519779380561313046236950121449687131758300764188411462350644989442044532225251637060482736979886545052105697645978553796387729683243420201101371825539424112184838981197264066150113049211319659023706240843944623420690320632818788238099552232889823095873502948435670885245997186002731138941326531085902103239145868515168679774506894994042104470705064824156599772966326250013490954447050333365921359325145794106674594829666477638641379220316492163145024783069571058966188976965559210529645344601619609404489198072524592450057148969601382420238223424829328652129849832103690215422278100329174728379840647839243632310617872190321871403953215606524140624860111393109180636302093820620490571570006589653486517553696623741732238972746527566908590925857915468237446362630517068367404279822659542891755938945671377262679897384242421649785031621383079465370243426913935940237576281712333136133319952192815143658902598557176744371926692814954251437823299737175369585404341267633477151170902169678843138873274932949362132047759133707027697143002691178421432920933446697612204230130142816398793791248220746518295616146516752484766661848987050369339306426705527416383969703808720674224134923608995520376849727637812312811328983607476322515526237438464289471998257483022697804906881475596944552254528389632369225465738747613503737822366337057882014188888400035697754383487764891417249669718282012109805153355712809642179451243988245292628666089480216155271420836977537362903481728804739396414019293284089842830526928892176948562525388310189059020560835902092127162656307901307658244916004388148989117930988625948858194760355604916230896096695225189994886278109472591951256588958055353258499588126067426370676315197268450358136333052436142278329953225948822059920054750863261702219513994329150032086432857376215966937350416109078617063637308375301687065721071215139416402057554950414094916418697597807558874311177836689107245342509580701918546766702722170190939290578754642140354666790878759816857652382395160089091466001907410744213748784234561413786465677464251705286476490285212300486293247412591503916322707423227471499629196085699720949123402334312884446089337036743451299886690812647530594566841001238023676249741276389860833593602103453978907770840161753830192656708919395497196582193840313580155070730649596130876847419616129421630384405497240792780842987269981604934983143642330735688485971412972533450614717603767493252095514876133333335545808065983647554137060276953587026684723275401442071651265595568289053354096882443062617646200774450715892286975405076036364188918871612271805050760657497676923830498225516823592442382512544342057269573018114093414228825679016470037698748010011095715870118634464442026810798155591052349474177205688217068697979041173375422721578334420731682384051494524240584674073217360162449980650476249151451516324271256604012116930830164019186753109914647914864972920782311552345620260386329877729198043928618502011807317746886734603878666524213840427171351550410978141409977738974417733068377808065298988339912406030424550428171597714550338816415118015493210930944009172989607199932294941385268191604159388926200031768310303157968493664432524789213375828333704253627293613926835416645248441275277978625154183280649132856466177533875133052954501051793357120763144199781349282904287993592888405849382466872990862687725923395909294501391501546256694789905220182306541180617553831150129073457951549413848657244550599159441637590410964179273918779406634053750378761037156514155038683516603336260900698257396094057265024788108901147299196443206702669093844123381936888855617739041506651481576039880563784483402254000347712411636104112327807369964690686570788349048858765947600396805493495036529096708107608566236234166019756831975911244759455838889786074173733986704484352703735441777375150928992716468494584063560974098731958422763882291528030267367526228362325282966114261981781515919007476411224779206119946422310197332313578715865407324994629481351504690248202372107489220152849964061915390638072700209896452679402938714294852390301596742850487867717458192274929374398429872409911214177728248949755372975756436405970381539450676821409486147163104480902917998494060187161912469287761619908264865360969432544478383435819697155374014590101821041309421266769507684570268456715386757646049506420307731518015706505858204378547007091940424992346950787643803128068244388668719087696034531478596290085388688227752988551217640947411304073369112037605984025647686207030346176644114231599561986717947374437370727891909298021666756151976493477595283654382542272903513530065557173115644449331704285336588180246204193824738509547023147736021660776367626326860302693957658415952790575834022619319853229619784401486997758722558532801414283637685393144594760050399639517079781663025834068679955387067890960222689961166477928835641769559726666427765155443168431325381748471976676903810823796998278989500099329308171079946724271075359628655768717127225988551506491818715993961571176968501875238254636169922039348962857435352787707939663635888982534168576492685061049436104697371642357025834108646857151341450085137040767557680148957000142066730660833318775901622502643556813623778209347115035048004574306863137227895874262796620508469892478826109989014447262567651905622524411261362647125837997362206583677607743089996840177360997548252996674948986263650508266422476096395142057558944507267637242405869389927482228389204543875594704630032155806008396735335222450884595420094773193614141921219284812592176769265655752971800622809275449651396414041885527934060774812400000926280378240060096448933306964538371795209889390460587267709959270421751691180644347011858120353236014385297673111955280335498117945622912474956473799934320582971299755748402490821520431361907170648361666082117057350246352940136349791489530117464155139657665506174117546414311301419116525912432908220443062729408065617237476965961243954714736734836156485536319244000724812477016523264045461846393440409006727083513552965152174426921619077201640441370799366067175058574262792883192071770290280740609819825248917942746361996348686002973389354389159383501330556059231975182521943630313888940112128907673015622979349906627117259414232699323214590508056320267314820490217734916103028844333920106498701069994878960062074717419051075796039253335153156821553188968837376309538692615206464318798224193450741768856988281661980473794573506772665476757096710094475140169899094114521468372847823914989752201149156655503588802048928314814643456324915030333804766837869114250098483429991969177164788098729106782625132599830451775307572963378260271144274785596409251708820792650050092336168942910418128346520507633268042135262620785055689667538290496465710150350414108972099972383135776628822648666579548786657588761329171100987290698035135033225411732023653185976684401366364206606978523957410319196625295267675741579367141293892874512502457802261596130432496909450620451459698392304117085326448917013124763757321672438949543737823866767866752113354513427488706955821172772458298472602578657621938118894725664871625526132301072046338191060302753098671122121467152211892543773812610744588226899195946284050074565236004614788834794737156407157443803078919598129264720228455122890921045703357216213808336792394005982847174646241157938779906507851406725394185308407903788619134005250941078032017379759496833301096882892834227759904980776392797128441547358542543922321097178119959443329235517662541170114112558295198474480555521448860968293515828610469719416324460632439475058225746693045008937725070340648507356687093901579671100341747006449580443947108974337964470229153123397884636122658561088994602222838566798725461807751048644057115255194789312129519026554023449131599899232919045811782356183294480930870761526728358046542713077325838239230839360113017616811229350739950239930271496313086396571361088146889783627117365798816992085607465244116639519082235480202661450420037600057437555304530346342096438879628359320582907829854544672612668026524086300103288612768181048191549152612886040568171015326283828222306870122326201030218397361369390273199092574930664762562467949059816026875758707771187202320028239378981599062692840939992325149300230067869458986612931918778174807015723317615778578400918147607301391082942809247126256381534125707655645237180654274937304552111176763396051835239508085219625489631819817788572007477400567232086913785203424361758350086275619509709115643702372008846741798846348861790440297094296534751048269648900677062591864025267174717688846664567315446750091652497804941201085597674959708695345323367900729790295733002245329321661978793445678412801769986648023629333685873268582932521882886463447186656612979334796510288079719968641331357197611848308387360368970814103716335923319806908654794535932368625211120227097066189229037529107567306799903387281676994703564625637846897393318186854301308085306092444365640069940388334095125466510539174095676170548153810227543270485482173895617151384821580427278906308676931507115463592834401417782891003451656153684794791413344406613359833831857361273865228438358071562534794395462571905252232385141477047729797599546999701612833840434252054280890484428959586959925575875423226124508065612799884903568435438903721955777643243248468534088264417344237753940154689714534492596566804455901809384734101912558658945452307335637406017706109985330439152392289790899564912690837819282332267653292358979296831668314809563264569620187028534186741475514364490948696093287099260800851194321695987947999893810591764622196722882646472091620654873950816588065940866473479006163202414786427069184882937375113559384907909349995165824111605331069716788401273906491881982217568493331276078400817570336988007716868453508605650586138956619587982764284232838345314090264702631290652050207304718760013833097632393683810925234812321872604391610797286582438679046907140869082794116991914860160127645664570878428822398264778456100117997644607571339543789024021267764888209332427970532079761406968557658758979996026243900008302145044969199055352240661504910712860474793920188803099135275475842825964502871046002420388310872020715935731512351553734150604940351760700986485310763692206575385663942005735009484832646260176131986953758501197015914489870996430830373058941905947003439048763668376871904266861163977882641534830238634476629510554517144101889730558420698990776154612551279800479843832367239370899635000295580771046519671361684575794209708869390017793472818423781106733083047591081481474706691138436912963118539447255317819963295594152833868260451195437427557896399766518662338048795310695253528271791001163874033399254592316908865331444826990016609141630727039112375208563521220152633163950537487011013975571952429043951210243516045435578795187513173200837259241097771068239352925284541913630319074895150198156229819966306709692347835058513750836699662999251939431087084898368548545182868884732647563828699752339452525372773368880225998508203491372974329109517630045315196958207665002416958325344911944893060317162471859018776454076548356012081356360459749670609605394500617813840664422970643681332514451805633814653531616357721885090882336215908282936175441569020633993797544904774854765721636514357780414333163807032991642264052736636344126001230131936712979937825684778843238677557573850976319539845338476430379748242393183738641312251809112355203598073471687376285220848050512009443482773233616632724666331727711140757020503846799153194420136042035759884671333297855926195712628480262369320255835119148842362852277585528410979449091602491835270724554483259862270389606680639365464960532073527517989642016856239637318110971116257330901483672957971710710717100634859541448831449174492863633784992897340278368394218442514159046122322216531453533928405836546536082200059713006977067547517224529727173091153877626212394958798563466657693003143833923436153116666458351058257396897589218910226917076594507426858146371663487826085186543174517130674805874171630042105069300396495520165493503922765301311593191868595896607080706909969116013589416200107265046639310741499096474156278442579455583049234537727685373500967066110220697330582321236846898124914208463375673338205608800290092844102824468680162259335839057545133924117143696978208202547626729444098152043790997647939832945939225902607451099149782935860875934625184920384775120170252768137097128993559195384776341853580507896717942763370083132519135453697013159439901540698052037060985525715125829157690981789979334421486303566764316758738807404553749658716439243362839599930779323422204974268443292498165112996683494383405284434495504611438599390879827906416442589599955489153574084906874188473849842523175768698138887690108487785943181200493821517768921809489571362086232377340320428821032241536212534418201048602833306217283141771093254049994030647861160204604174747062139437517055538708852651138342513271438815573617754287457825350126525327459934252624354989194785632845394568920218243317862600832498808730096869044535487765695079459240029366221901417485021803654089985162018465332697768951034069083233958146967834872345802381029962989077496781754933862529780522414111737055967892562904258538972535534768484034165110687336605579692242637128732769837413335475387171122744244544871738803714572308968854132137930337872418137473298613576334779749811797874989283429379414772689050513000830689838364560244308240482698910697397105662890935701581166509111855292266115447935306957204202986730286235943822328533734193636544222020896427767362131436128456875392145055544520752432494255571297692486730691968518676299395249723283481358603124421585213978025681902419001970761951697107777395065741425417402025440083077375204715278936625955105559324718150899598989296930584922793047759804286400552311721183907070825857786879298836694451836160913030327951291614346559171770055572419003644669687953277416130353239618013469678780243860864987576976827464802901687444315673232869341652775295044427405781480577239354008461530457974461090552214010048823049589600566053247114035412984010132035389192602509445426438522371210225568647873109924662778010620730952364693116283918358000659484890318489523235519775289929999554153452215173193636505674019381685741434982408460388550831767321117298804040973819475892505262750004614554847181019047580819179082965072519556910712290585978004432568285418725263865557298152705951901820635081207895476904618349950858478362060781513293945389587974020015522059597303678233020941940586831924865273887964156106251519927480998570819928043703742945280014261842614010953181667188111280446055196125138086438631309088520755942528509679985392204268814521053676212025060274622460595138092756349172034935001537535176535281317240138893899639985797529172246710282260893287691095053976419764453384668424804103881375538511012436306039303971015335468161779574283504624947185020350310568856974079601443461584458625891497579600690408154849980600892341160903786167474715988266671994840803609630525064152475229243557814034534406530090076241651688561896893616366730911362288294620137857093972424533352095719701423381871456596517302230459246143270435905767177275194971029118037247273834103916971701061865233226408581376887525004865454222300291219691300022222005826427179776272379139300865464387536011126812999452193032538953566789330847679581808547229233857347013306478811817889845706508481634607824113420006609957159383314879689299576162250658406158644130137570919159762202439579223037331091158196685802730004630141045838160914681472838659038851217529543080523608714870009703882486043202342051434453596123587955575062368263388214829100546885422304120922485153862888945670679003393991493695559208998682025864971453749522402225947133910731383282830057580959773383005788818773624094435377479891056717539424861500509233823601664010327044632936878639847253011613200914222906055960007180096493215862234613858853992614013241407344597724607172332614124749020693675105697874493067385812318525359516143338375922945848818260512474933976589438086272473893705436357660089960793317312752748261439018792705900989707227333310956250168286467069647630044473556014359510238730059147735369018405472476307272790371547600608266010719029697371974598154845982307902587959911853933447174594314177186618613530629990186621139421968885618513763675984581654664320139415728750417985127887325558385152915911990960944469729385611516885050256899117554451109682190617615682101519495817873689015750716074234829184571076938955616041311165324637018247525547033071457807217381026912744970471935670222647127570478332895794329391565446184085084657008216801762662149579049569622085379485216508470138595506235015674020214814652095236486025518502930490061205014686017398720517330652531750621408862331148462426191006854974738306234714285967264884264830931734748503610453002264433670146155976210310065460130340932329056252157870189639735708894401594920736879194165890264344336653331700221025465151253451371593603099667395705495381646627400320175462589493040848527617225436497508963460429358898369993540116021642053708724001535951852950529484250360275244416640009444008960642327570849885877196128223100356755321220817625756252995535605036361812560921106532703954767863399159283304273813673907846702823799563708786600387013369362941506723974073922401999718889462833867605749257973107123240516305762345321716943628789482305017752610446695669910418859517821035811222831174431805849394230347309248083881086427786234931100824032364854375760159753015883207453997138569140267516484209939659923589203574724833162980812356673580939834710885764040250040368617341481976151807544218948013494695133331091476361191565964058935688296878217511416401339132423598828590464866933866847786096879279349539283692844065363398821121776217287755356459429408185753091295256900029449082237418014858311020136992516497540302550016475317171640789726343625076861429277729017350582127830758351695847741594594829909771730202358492515070522513295858167396829879013160420565381040294355534704522073082470669374658083301147733807795926053565037718944376596686466287310957280761542855426281770789704285582940057788886351920264756435703653477863387686488246631696727584678382627398827755042514484536646366613998385732800312161445464445302315450911155970282455187231208255608297487726012332923584855175141462665006436136155171444361208713358646613845446816657774223989058279683306499986689660361812200787312546862129820471849670215980440614615696390291327217375854798822368610856267875979976385513096366971688395658689595907023619023332271055213860169976700085145796295091217867072173166619520495622545441083053606802215207063681691357010567141500576374557706971542925009409205877075131281032380849036141124481212543822557174728964009001895646669698476694952710801476561709889777348118344735834879861148446741113484294087913507472642693455677602738096564888435603037406413620139840641636100189512158276021980874754891222942803192486980183309526162398746093549345258084694068905809615908597833017203547966972196747075491927442622370056436728239212767627063027889761057057413475957812154306199837823355743193904987189528755290597406576800441452454702871981006802650354122470496522937559165210608206491633045330631127901861060255700913018317170269037776041359447174088185772020588118889185719436918024347592389986089443621240489496298255590376031088872469843897430003960592522165142954414134741621810732351333563841762096548719855937360971098663357989528642683115676171036822717741515656443494299623117531377027633377316330486383444508058571375585342469720765800617943973427589792296859069462045952218169025891077045240545521233625746041329546546437892703277593166341196291927951374588510323629044906377744912867335638057713532680667862279973192349682417939698981165221675665533023301668582406426670638985614705562472585590546327662131783800580963917133947252729639510721300688195038370618003123704158689084651237661893691814845200515984570093884284603665792309323182828437136304975198657264952524569526668175401310013938486735835581432099220500646610162930005650325745429148678709935782940082490227228345448017719662507027951281693644396661425897223692392818372581299021995874014528093531155331943321103918236143531875495653274867419101278013444115228880538606376366806508953038893735857096471248964368748846941054478354149691769802813420913850523810999109327688105511486924553913739870031649698232181177959691136897444667923397921906222885061088362055508839310019128122264311608229800953211240771379217741179738252945833239434744106395493835335157111963961713428275699433007968871228478192244033270763851890540718706117291592728448549214084287410792374043208881378994706032542852883441984049132626873337309907515373184930753599678797519104795504605949902106711540585794571172959116690723942822459419825965893844364927812827166551881315618960772129273414648414597642612771453620971669276089528517217796154441549023955130018631573193378788953939508628732616577732374386059774645563661184196271388971578638570894702783489362037988926905074242586901692629665842651753758491077279077759242044188674722838347504886304880888887045556894850265330260165263468778390017394997359640482259427220524555200100880688148942346526506720661297132915408609200196780006653353755419506758115305670093215347092082066928902730379722567166916414354223639341671606210568042276003558424148935013479992868870925105265403920840270949646539813124386724316346279592848672812753627445688440911548742722542508844280349836560813487938437794823508379497683622200386018242820779161494978728482780941326618079670748013302698067578474130604638721502424776779617224518658169661663087728876655394491637161530317049561878897531514330911747740098947312788405352423142559951138227947179834046133664898154367294615967721947043384152806856509237116042384160371418816317986993281618528851200430216834858427817365203637970397381855874921804387722522204124318680577535476735146152553167951996716874871819517145244854839347363252142099913437284185938954282265946552443969902101921933140482731566261734414995633500923737147954374678189688455631603256908784123492064228597832774610652879702327065266378684535460845540567506232350244422593143282177214434585649372499789092268888199461571416185558494574636522540825853828948317653042004741791581363891413658463028462159086334656992714883062914696222083722874779775962963954326221781874650721961049882403349294971020508181009599989234348200364772710022277655061560390279308375624501304580639079771914936014379960426758732555547483557726395449202264898977733514568719772612324451372625614985951822040136419442035736290333742608308682504634084795205880482833921982925524988330268801794285587836076254756689105709444439858681185528868173761976162777321271940080121252292377513496643859011532881090954755958415305247779290049071949706824086324171190513616997398950381231225820591872610992274213971390341769689724107331882077035193524963975670742952118326208077841933847803009457028707136334722338416999377455839333024747059078527327649081754503807779931542663206179660313110432095074011835667814056326474829137248926412042787814401516521166906005376215255049593646602080061999695267950482350242561526923154538600167130954422830461373860688500877773791295369182050901120799897327068682191770113645946603086077315658277138326918610055442145178729360232628946120416769603680654548028464507411749172010852787617919449824731136650342193677853251784494712196473722272852692164627613493658945283367334628597432812144211358954087259789057117670224909575386860497521733884255982832761417780781976685061550718218445194630980832425799017359770232369035374522849250106028352403993904185469531100230095190054257460756852240739968536179949507080418138381532587631634093497427036345661305992415860384430590953859247626775697270953335813361676551396726524690153298260484550311270701533384098658436443530948987198912802991310037038894993229367612792052841218806280374638367381798719368994533397211868106965210160954615533581811280246114156768165059419231905481784208811202344830324676083112855803483388086818742351876389575650194901681960108718554266661429983194791206808692229484436235508714417116820882460454899064380138937966883340809440677842013688270751441895783917778520322183355414299187373537121310370158357696675501790782895099453568474002607728165124037327304290740767467683640009662606674630583300276562041367740086800828044438920566919076774096609786841592192208768705146509107473154325160894765399170074877440112770273488999875104024366007732205359949157803998877662443882987666086365683858253104452114324345291662343730488352679117162094492814342105810053802347462846176918537864320488348858350897101799682957312679680100041364589142785720905035870380585414747995839999542309206811682979881820254029281570342041484509481836231371877903289297734503513865698521988287141571238414340292583663464239578073447150168511495806124371602094165214840453508210810185438802421834534498222624022250034537958496024764989133461824170450786066291198804446100982743062749037313754972369576711226762006728060672688159971113421033996952755405150409824150751610568807033800791034399188114937155676182139648698590401499063635305043562695785855629378649567415032732312991764667948163392499575648156652420664627029799930332428392490437135359760049729560826720369211803942488049959572136353218076704607859163183393069269592873342564664320250972712551773887597401555528933248134626409957379961315097833499362649285580539727734594478240596369441413398713155095480439035671252068387822997124710807891853883181242496439808265943636326183349448672476851346274232079013175665496462235982605218166704185866774496424934930609967151704959802159440321852312983161886030292028744319789319767274020705702277557769926514647637938034416652683331344635264750327124962502928467428925562279344841279707207235672556256368756649836434767980247151548171076396938785328861783057557996280386850491080288109943537334376525552660172409677785675347833540528908697809575063228908501121935076865580135914145885659454213008233527933120223218480414201826690497858683148815962415534271182368109966573616208662359294406952428590698902169059201971453929012146455055755247245918553990925363188749015563804316231185450516725410537499421301451657562641780350804597389260441392055685172957377554566257532254235364471019237166827711127081934637704920301497128992252332557831512556513092631986514121137933495269925499434550944677914215474575781612834986876318343152725934153303864789913145734050169575250512190211132759386936791238532051056060381556545122040231709504353273520556369416071279931610615868026767205811751023725179978212070749908734473700928369385648788553424418753242615184476925128487536193016789202263992160499671511962146050298381407694666830299310898969546695090317297247756035301560584560756319336154375754987109641654288353841651470427192667224829994221468226354103426338859848684024364640216735576324980061384488701924135153704783438945159993026400750778063023801166560768705905801354313303457990594427827221539757646220026969801806582808242272015773890201783818562549786273432084913420532372982238863285584997499453241532068216967910471365200735872462791630406234350049258189264904116234447059182769932838050592261317184057384907103991347766177865345702169449401280613100316008556497484940671146645308466397739780226058736123506083612713753731221803493804705216777841041958525014291946159760064711255758629348015062576746349851421548113619175974848131529195255993532366498709972269650847104335905014844454212637448385079831528310285344785351781944448798009613184561719834134912128379983763242511074087782853541141948742310818924793809566306643317427066713420211093815455883801331430004306822282951413794289092565763683286817050425101384734562487005389880374771370858435530157460532444064040070699141262106842505472690230544888170999821261433596009129549837102310257062825904205691328871976543031175163661947964999090572228795646723108616426303936978773848084437893926513601986415455949461101119089782900977318759401249072137198917874689152459284907940686852632043883867801679109605102197297619822875234569574328298095639590716894207617805358822989842194517696984485698790692923003018601180770716569083164023513301694117976680882404817766211045647868111073318636270637799481688860840979493023144011791793974244224366518981633656608063516501444262922757801372119568825821966786773447998202757791816497280236012082712218873558275258259607437073414407998947230515053232484100379453295586596703713529490834297234414249645556739576541402101288281221855965586552952010973148539767425005120524336561978660379925758955748324731023652667445250733713601338877023102921690750284125899972620828884016349512965808787357578803382901329302710618363500215536714016358812328138457970088257684644395831029360946359252632433246692778828711225385713559040395613395902518914899121527786189224019093708681475412524758472127464061461087370636120305597836298493053621496905485986154072212736846524441923907020690650041665062006527841327058437410459312015571339292927100452332772419388547797687774074379896390833148998281974610180071112119418305104834410228377665604082458333299162575830020142594209939770515456818514365660617338680064888358953132619114735462608214914216263224182089651284865528157546905366587216784779990018180996930861548553447190142485929962463562748306473025342473197788053674957531003691395747312131344554242952177771903975338924282946588128717437014329649152736978113244912630548057200425725761766247856794431423910384443771118647466296334816933970693503914587886015263964389397598751869884962517887862898621574882902407196284294337942162629394329116718692064788050118743972576490086665327732413265383213224583900759217358287503741849478405179460474159942988103658828360361084899326710944849652576405064715980029406279556495922348542998291780485217768373856268468885306775603178074502993973250230479724142665884834913960869984686480076641720860979963249468366718220496426157609761913346509549728889010153832086531858103589725278903756085247197191058331184352875709446690088747656086284603483809214843401589973532921148291019968382528058400555290689363893877850358735982471336099393450118956294982615574724398884344189684238845773232616141661524320108323075769722303632557422387302517737559277405132974269550514015899948634873689533335616018768970959199479730399681350330484086476216618812067727275295740046875060043771135251266404448041639680735783141565035405198598720439312546783564869134701659031017097054523071404479386768459076356415113293026416154507462269672162130247957887212700364738475713943724669386670653941432676449482506187493835383231058654626101609178920687341506388618748913511349031799989487602013478522218371306992351006929799148774616978711417545102837929585319925010003783929342414719471712312634319935215256675926303952609315377409422687265592665034471594738732910773175378400610474316105682592784573426656353458050474214869071681792793636094987592797246294168845613435421435792567798309439532507464488568662812320995849475288374190460342536868200009903214633139131465018578036147539155182724391465879648971182606220122667812606825388686578517333911251284464777057997122063857914111811152090518300636197957776138224420920627827571498198680942986554410893303091217622514733121335448131645522412045022984969955969924603975664356980167418351543982666618626844514817853287591486351470229239280183053595002890740594453835144234562713146917409852095886574480110271497585886914621428402191325033781158432729519139872298106439219288954959195348922117427766330814302876710249897822276899556161522417584116743737351815895002089744015567525176077205539651462398646829300146561967173324268746243905079626367894463328523041462631889620103246623183081070356855697022070328358882869354066258243506160030821460122789738440653173804283905870636889441443429544012540254465634160330660001133736993299706344463581257843969111956428296994888885994854735412635826904246501567341570945848195205968212236564413771724889321326921385855388105167111981612468976166298259519550332488444219919792421995612244984990114268897002558811220783998319831252419379110626831479225243015570893132771635379550598177691355026163933415547535665991105466594490941423672324411425074459873122013365813927194184720786339353708115350592002954846141765648291610924953511208455990398860256142711476613062024194685099120466842781711843176811649644440393633254886501598373033559477194583985886660835003484875931532287157594410256543171017458117636880730273552271796718364015873934198802852974861751091437025646372040137956081006601697511500124530422605387779320798084254734951582892605666116264390452178550837933916233363466859946363884083589394784728013090685544213859675179176614788843858382093126631238773390389028416048775148426821028896065665463861209960365294745403030257690473121497398714619561455061475269671114006611166990246749842480542084381972379914025110471476545253044478808578595534531111206546812147027673949093732103645290017225571168454196719454938599090059113175592386302751522497463092008531405713231134984503644374653355582527856727476097287889567354524928871997235472013881544657731707317939808145297453417676829462777664401042526678462068800552670425333344658120084701936520503304581274756145390145477420774621823877506147760828820497773168112582461464547128232295944670066613123357901067943525925404483140778325369400946386410312162965357601509116600756365868920198007887669422507354131339891681974704980128039028157950164485160867578261110925420704484810868338848016473872772422994103500650926052342601458274735411691698748685033953794476487952929871826308395544654512339400192717886089924299478459333408609428559925388554892290949893075975056762912017204807546606850106535496389788122385733726549525641444373090146147266071265206076878296834579502809767420530831480167544053833396485930840312865289346613221836146162971186967033233666092977360558348014786529784093284848275291690291127208882339033794306360396591109873298545182901872441791133293172595937517372001565168918301982777798520514507571430959758773338959882929991448530552685536216685077855128485942356920156174380896734855773920890053064216560889527073656841948647552615252768809606040751161761322609613458981998681768445781405280617318678236235776288323248279559697421044154356166816590724482327829203246818314793330053642236215684224473312195955061019597477055062460525213704637373226958035473175002751276339094335120840710540899952674082374718158798480265315456034677460965781742774477364321892082838922733831495161396665689024659569664733274554989586238688962299445344797364493534349077475444426829174256591446108084758320148545327741686017570592797933964162880140159280324177753948290447463733120373514523791237801474861373360228182826011386884121678861735324613972271224850824472627525185305129638624350908773761803116652022752210488350053832320326065070388622085680062583307531505933432369550820124375189545388913281155714002672341323935390899844982392277857680652658006490267571403856263012489386373587255932749219850977558492313433310816329670450617622703596502922346453625341043941636026389806162889123110234277095954988827348912520080599141938862452963699446260355576744992985980525562237683434666729537910649381972264410969645668694356337883188483516907857354591208115874279463187196597503909503903092492832933076537750135139698496309180327526054195330388008202665844963356147086409153181128456253700438470136705326282565102941733685442437632555827010159979063899687549380775251964499389877160738726990809820576298144342814091726549864050408427673752199850159597277291262671584784323112124462280279639763664934961116447377228447275964358522671644882040772677181266027188784208164398492392781910482254282411896130779252272296992932349665285332626973849508490379064598401665029609739219104578376880905973663624946131592645257371417757357391025892899407383815625613506963756482822457553068939165062070142706968512300000506972528705576228758646614047378600250076348398156492928618996358035693167913804839084113585341851290364475902551834421213547177321812557865926615006342090104663187118160563003719941402246789505438674858200678066287955939035501330633198539245021884989353159323965379652052257387367995325873714101132096344132625692490574059529384835962227339426311834315068447136437515631210610978707888027070002522234230908229634672201880087117066691989707595235413266598037076614254104593400093375917941399502646440299501706952507759512432502883245920897876280625914903173026214187919184964578939932283374311295042237063973248429344740928117457462260713103662061587546940782942262232018879295987596094447481135151878890503634915745256607571843430910231779215730093701835004073312438010872909865950243483906798812208206607791295476935008867921948410361822749020091451769610115376483319715490469136534784526624493900955688583552898597287429386483461780559887315892564070807672098089292309746999983225252112035954674304824674674241931391939422153578089635548587196606562638173580713696728167016070548426938909264205910871088740568782755520486227980522631262495203168328446917767068277183835176823216113562655065170995240100800587554685531295566653701449416932397073462374774609423815734921875859330788704170438713478550797028506246807832300248670755062983739884880259427435542726336649195354019182648463703392473929339924055264226494269979096518488654893046786796627990583242187052782763024730322126629258377808527776016598453812152539808718754013016533798110207510287835865196560044621746017574820139553152602843455002580500135424493947123571105116327975686046210848956480061405435303993537234605318575678497598522910647067990585935886640678076784968304273290166996140916306510177828119198961286297822897118078583266809446017905298951513020029286219201488739701975285374392414682772612412614183212263196356606089005371084339392524819160620318708239965009256130666629093099753297517247199106497421550531072905038276005718058821213140695548482741887510951529773831710673072821343427476426996909712211092338204029378153821831457142047474258058127613900296387902880708722617970941004104320382589952951649366161561151103231142834170940955231810918705948060467294292009875548263526562893483394276181991056317856584189196069841173567778239529709543996764769302871580048232561118685310539056085394049827649393901959283871204238930858300352737935881086044140557789099815165683523698573642193396995068614380798942223404382498791793342483372562658081415169802597083656325728547814930202754573439243027866161313667174942826684428823727090990495185176437037189982216874278780859273910215593838525318349291855687113777919911861173723545957701797681436367116340453355641342543766247125268677837188213341884348596793348186200454930764231728153107558263359790559359465673239461021412351766084246596183067843312685445959487430882963737611536679939101972731251405145687632278798272560397504351842238107505474054231429464258670183486169294777702764439957703347194264687818568275977831996680327320746040996574637324710078590550309275467120854491105877614915018730012847528352760636677980928946561522764282668761950962549250620743719486716614529026340604018357411778599689318490508613593237008670929751944116766075298528357495609978287807661546787830121216726553733644290711095809316701780135669676952765613052468881650307843800358402806579642208245512559017327090213134793329105755019564704814545388001732377309943284139098577568374964469974717225461596427690687340602412685681255083797810391689873536090237182941840751992800799882851143650416139903285737988520968616825327615422858571809960470134699874642667997265405504159593184892767953614785187001925802595102262589975503977990553029301876908771453613652332302862081716024702044477971796636758631697258919271738752776234435162314139752695195246838352941896507151947074060465186599031066853467442731711160569506350631944970214991847468271183636958609290066727367889572141997032432886100437000493002698610658479856660999659805882125201813683661943095209982343034188670374514867031794991328553049049656128457543635878932184833776470186433125862104493310057341104995237286295671208203008425516396096053941664390236071403528114077477346143318911245623200053724855211555709409234190145890123058186576550498255579857400430707725968806863097454161969662346588686197893847385866450746971877689758221693237752587863388676216675635072901737881904125822223510428720225134921664318692637515623100667294810289012932452582575132503276426956561770276783470148597521313644183127329054396622114413487335510986792066747302736284647747757262744793881696881888978883910520280132773058395921742458395611473409947196762190622204719237793092939037027571898810371173851537545102445869637766786824853057208855915078318692744545086327880537672486784684464689914131750497125149497533870708416094724885166781560261351634842807341327053490814658920007634117442194372976153299758610390813617087327381605562791648808756602513530274155371074728769614886074658404426904966432099908178288188504541453635767257158074100347269327644148552019337994145122234212793323131821956133831506137614012293082846860660980023501126479127766975469676072690573982160027399417757128735655777672904656017975413961166110005265835271064753465181134679875364716804428876223562235087887726480455771462276239142936016726993227156371132028140731582947078806569471043939831305411056262083872146678184844319781493291812266132043462577022010435177636416018831230571690618193376915691599301601794352194576426241358677732063771014136673244008131053594926724792316544940161360964761349593409040985242167046033342603235448071655086772821529109216400106435099587875972476669532044700562035378691992240322128889725677965700015216953821845360588604486298396879292743839695911586850507485096039981154698481660258948804807240881404538367211942510895552512074223211429772290454208319202661636656179755312221200790811669800328581173954148470914604348887503394882086769335932696394678133536371202923748983776828249720630287893402636853504126729232136486744069038278243305629160431849358709115321468741583087173099419003860563304947237633357448327130280514313085174362437185648764966146384423609019162406195295582837408078668140801292742275748312895415316633032544524197036873114550047565730096400145927243354760239112068493478351391742642489436284838176250218600787941889779815408456670449311933753269591997418350080194481137131320926015683824707044588858243777698234021473526375106613428447971322983007759148931461671804573764605600991162856704546570620784887545347000847261769373721299073503372155349669362089476095509632067539946388645561369152726165575018948631795043818807376829214559181027660946188995570607137621235593286673733395275183417127581953332506828743963890158397956504395492053870236289457952276586953236942468636494466151978769853583381724927699485954981221144610145731079909555574748582570863012569742458538529375642338824263072586327896379036976687230327466581260032023710966170808614643939859078694595515842118957180351261427015159615586711686476102383784407802678144711973987881057358961605377308624594393239935796709567660678171953775244904241477197762048698669255924379376586330128826972094653348642951054353012452501217833048451676508403533122696740436199158956061081660380722249803808423446824471727737163518606720068693689589206937251878917725101013255906866525566950528141487505002902513753997697346163497491725512774727917996830315064433301947395218847606066609167632393110869429644720771668385580243527534733391143648936243941295092473179097038448314506550758546820819756189927462658474243224072028774184815925810888068476901693033186030935292211175971288082173147074162367539229550648816819417681645928574606837344478337429192823210935949779947064163144876457962146701778168122823172156388526302901827069025569165760102737487259204995851993935241384043582888733830698088451026797963635942298923894751762592198246232803576806151888669399105915730692000971470579711037341839850018771451117368674762688112915741657537512063029691937815015193269463882810144394144718707855060307707736752133931415478954901984807903551238112446828659494532543634843074026495779667448259486091833952404288745215369402739724802278868796570408517030546587506407003146147652445075623944611886191191081111377824163187061059624618507767269877007555360002342104792013953869300870094889272122553489564353040611959119998461419213276136342778851534201868354434974495565426230135158944504375411526213932881499180961372553514649531529914182112023479765313621436372027582238949083822575604524970421334729607504154557308161125893919290192969265278681888876691679334070807519785114970920152965704023568337645730112253845388763881750540882200928988619993751477954377573995535827977989324040477498174248568196650610976434191613839952431436691302799723972931840697855047115910084514600646862160440232046666350514054881755023537041984432544400796326905414326388481797279156948180587729444889857610315631774178985215070132515910098189038826515663421431918451740237747518925685743095601743223237794471794690978919778870729605481628362513253907648895641898638892723943287211698488614513446632869682069980459672011377904640564782278306694032757354256092732380625641484066548183471051480713600040613459423147733972922282499617910163861848003411723467801060747644344007898032475496591177871555943572317160666615806102188333337645561876146030077137270042240186194140995700109160212615682623682516460751585495665865737693977056015390862745617789473844524277699240082694152350890720783947045081593666267777823584285951399880413592084175378568706988130931641044285621590024963134779329187323927516746234180614413793551460866857134584903029195369119986398066943225389964088119239199207894206425116052869944979543209012881323368121445313850367168986295145375554100394235819724469892650960002419257578984727389996548970426143221343769864957716636707116159455942994665644690688733567715791842008943305685041647560343789325299875109545352389592861398593750924515867370162054888008353616726016035613847556799672812360972574219171547680474601081087204967483973468397018388404689964653574685876508167799632327399725951213611908467143122582884486899614918987511430596988937903118459093978494723835423660569913595612262989611277112711327426035958232037480259672637528575935449162013517966421810446456234267101963257434140782575208967189491360630771627019583404956458934696901843136217562218787247868377681657992094459754276561961173069052857166327113257309255196948090694753988253985330771135280597285472903873124470391268188704150094788335671863622862475561218181315787223419433190045654769310800610440869434082282913179315385849716317516707788992600341362584336137985171744254135431158300293994740829943905831253247734599240884284145873920336452104882486553405344273539755352793331773770312971244050858618869781187438250695668389338129276318146577659183139619838526457865312737913918111272352840708255617950138756814829653817460748788336349827373931359740807912753235910714181197656974541254146075586883092697420003995892454449281893506117833784416100277503546252816678265399775567229250452757101785714008803092724817559746834349241318910053722405079292097187313130873561918005349828095183617226679679033534761460374113837917089346550642186677805262868669094103992178719641169557259822271519788212685203932236684729882497848456734845087954640161076576175769658969254251771089608205027055814584376532627304205811635085702700900117505000553720369264033644870514361641596218845023839210675114170611489086212815743356555428593431314161774447884223393085555615034182327867768136884518865547578093125517264164552038007005966281060347984449126381243181655479996233705596243696843781268245622936034055758092358942239355305497262023360399647765823452320173270969689050707614413014507143744937304219820616200198968697620580588431526778387983773841264306890521698836492010571750243090315938506734606569829899369415675014415718981065278001262534518561107326511409024182065850844697828355641177914914634320108128875653873567983743390112046914868319205665441555979108567679533232107896470088279239328369402865637843704708647934757410149903776267876768298299640019398670838890425731463010984921546330167891010143716068000022244988151540911557400665652637993742347252159392750640817670174953350725901575400767442304243880030478180679019978499057029744802438834291278982371676752185748543071772826353208634151468205008459974667555247034745095724943581135691493504955477618963963026358667395771976084896933064117781873840449009286530775486748479680948697101607520877999671430730595388986070707275800895142128411734314223780654604642073605230948322189612939199420363258951351830097627734649550133003486042419991476355920429475744298281360200705921325029700883920431200383080529411790863968831808577337694278571893029198790563363520452134509187315480350619521713951383100456869707205239478907394180548610744386798684541871906615422822711370251780195576112522890041076739311625541283557732763804649259258797340225132422020467274859755663449736386839971166253633397455494251217056222912057043693660440145858819502682276813473387595229236391923760851858183569371864188484876489199788417103611757905151473644864132952756923764843810223605066384725276529534483098122117379553020299272669079731878839494670106086760709782606386329974331784060139853349160255787622325354816013643797267505552024321993170994254813212484688598815993354065726242756862899387466908994811763101322696772264008453053139472242301956963929216791042984206150647003755427011555899115495906357391757504684704152006374736289493708467843157581931069297957382808480832250375868127512468885140302698161624091368720276158824416139457887026383340447153863770934237789008602087723586425514952724603241193418961640867795260579054169095910358199346379829471067860006431015983983399392532741911171994363720836478010618349105371971777571948549136662629431580392376816121734221632948882994715972288733792406280299939386072132513003670206782913863288832904575873280060985410078310963890606175877683510334148712879175909614211183061580756063359412695649891848649266680580387538404523309256536544623077207929717737113039420975729532058861298626989767917573003900930778892183441951315493910299348914724989073464369212864683724242494038922271563129216373882496098796315657062265407534061739753916366013369537875824428504854929660283296379105653564871458938150486047867902375944103630596986296760215802953352739672345726668769220796487133765350993316428691692649347083966807098137525085728974783027500763925200567083444833014786254164181669982930459719485227689985570015073848334557653567069617050888230459974567436118511669552929830593288104817212472161079084182658135865224208477812245945267969544234652183888366507227497157210650753096400681201437255454215679313176733807370489887777236448323940939888871119362916974934375879445313792991270316922546505632131563468852250400554592470032369627080083022386921207511170420124144903154541230899707847818423607443612736358193154712055477762685165633276221418877623513885334903482023365274632123137241027951438145360016980695214062896311941214028086515154268600650852860989678921880204588685970606020982375222782035921054536356708107473427319845633323592997587873208253025702032266691008851237847526903680604507956699850298569527058710404774027036955937349789515198992395783347343532913478618061783611858838128332556144778889414643189263723865299790588358448537735531443692820862104221732034646641776731647298757576078040761840870627639935675347727026091866120527573126166966733635578827592233343518607512006488114186729512505819542894788293412946319914982963334692424902366244466191131787982316916599070058514356876368528013402984666250849434504461800531631379462296974741384291121913514357048120367288201595178221235504449580617670236877777247890328525681476924035830928754640329199956224824503844433969399024764837891822734165734671104689181855622332906028455395891504929611316541192609164568267215377802851073499682924914877074483495408644927087395189956495613270175267999522531146246560690662858358431875893340608997347849622771524191791313402009219703537025078855442010876083001929741168334913683237853020586391885154639848090423071053345855867028637125879353711713385395852854771771377899271312466084450673888610114716466746491312823536817971328590452825942776422338133703088295854254963630955484947046722151847544647738907471419262974176696821847927745870009294846320749279592428497457420849222751354948439421050155220633342519413215064021874867293474134468934979386656913535739225976268212486386993730356645150260332729063783455100752454506042725680135430731794327953963833524213143245324103510748076255267343726247199393922739976344418936602487733669197876302669600246308986937184228041288812065886376863645945863961845884137539760520581847778045714931428344520264847190360480507306869886715933773367232684134678013170683647859232910754633892457638924841842222870224421639537140525715129888798649930403287787453673743823150966334449460937032401230949124023219571598103543177974769575674691913124548923999512867062774338209097817734281204225451048346496624156755462662492729086662472783368970651196534608937409762607053031565811502625399828731600429642960109567555200788844083606683260555226307578402974289982092242704562346749739451936525239879518174884896914294824742652684923679527694394652468231436384433902996905264398863384163175543953915268218551641416981074010749630623879308597722848337445290778963319944085212123673790910436567467001436984158002469413666431945255067074773693903165708996229310838968127046549050581271358154593601352215067526492103795020365360234830308617909561523855791469756991558510819294375515282145157854128307286846716775506885092910063013469140141343626680054942969565211562896128133283440365351245652777945586971271957920113594705689529531561627604715651747499180114665564980156223361054348134173501568699364612406776298839666276697329879494331968905604142567833788910432854897273522101210736054539593987661575767009531366267323432517466703995208291272027683415298450037101257146032485227721854029739568112567487903788226284036255696111884165825231395993078870762790335668239043932042514116506527854899750081490458090654546879766638380731035035082974614076232916937758565247035455256210621690527997389321341364591260818460340328941801371907913863998938059065803469719071120112484778653603757547847262165242950809356613502642499500242521944975209722391709300978900682788056805249531067419781547082458400807210536107446867007222271396953990295189881001341165800388676754255567236504703474843565817601695619599289260659369208743993971786582021657834154770452179169036509060363327025706593173144601395609790171496541064182601950966085112524813102152644150962876298687405688917562705852692520318935502784923911226144132029128463054888305166101906972527731929805332806695454719965321984265770811919752070928879269112221782325379139523470084451689027621467506487146216991720671635732718943370493748708168330376009879349882119731395171814637867268800356880524097335140742656683527146670665397085950912240238068989636180385237746417629297240731154193085818133419871631285512640650498874357097397971578155954044306549587125961050330694657584334519455415466933138606199018362676280387162593431806407533817138918200722218101405228763337732787835835867995471933149344792971379062077946036068305827575458009316786867594655327360782866973170530044406459270211008252251719650110981696631753969077047794598171670763611641897572958426526924332676741446664093230367071386392611507408284373077731557028365117990110993476148168917923365700396400715817920541597379251734313072490557568791005635163248744447359346140767283008123322209471566154055758501450693192280307611768611174036189629825231796402716287075064759439732026898209275611205705799924134213109007558610854371145587018175409434208732265832705515276511262533584745852997487394917464320141200142055932549270343467894084350904128446009881183560057380981276434085970893667822512650209011517305317828793425643672113543034287493648802778845187530505955567074308136878277524273188941269161615040821989227768965567872376127296937141025810225647009062697237735740016404101009636519248429420585857518029329256811162266816008123002712653805075911377696762812042810424570446094530193949724937151380867762067603395490065576168064787407918988635000344019655890629118303562616213376208764912825537264635154000653916237459578577304013925957758252173388251519642193896518029990802153419377388083533590754266012806094661118052620325086622376872503639720463793630469317186733591742131684218596734208823195123136780134336460060524195168002772593710119533567652598512655688046784874227863334676833163543301619482076888979417509342527351599008006257218315412092755504983889644678621591522242933171592245678027897938018065650949958936442747171406940784072416701301887464569167863225912203159276346819811722470080644971728143229192161685074676195173640126015444119366798747805423475037218317604808233412940164651242523875767993359879837876474383749626761468537417915710838799946673761644814972437425667337513371240503433343033785909869348216255647576753647217405146489578976920091521520068214215236648743012891715576536545434481137363170541169182191292840008254025601555431397977997853469880831070319274977773996977740933750017600285097378690817731614333173396821070356997840326732134393176918574596320672212389665304029476517174041411926505025631155401250017280196670309974263075688527126793133000245378848495455214336439825172429032603067811410954118840839204066848572317798437573373246654832482935475101243893321911414021000709502174889505150291151659694518171648118453000697672277411176377889472571520401847502036374140487944551602701442552192930793448646490185280392117306963611282378279453677053171338393255527319867081445495854307953937445110986162431614554774226254825602131484448259120009486567551026017662596900263980887416461791377051458320928342784541550865361136094129892579864189968066329947381645216542509657744162626114054481837642892502398448062987744587383049945871972822347197543801077998492875742161504009184765595929423300177816814846552015901526144361132524997794318369836364245839706345701862774512899429957001362114345047596311872828791794229827451688763065495429390983037597782105925006782903404158841445071440392929549204775380139721846584507436605573865195701466540951729218300311462039228109705040944139037757672280791668488541865795788373769455407479188310386469603085688111736871367313819598444658747551084876290487825746035840426876139896717264806551729418371815580210844328236541610900915246546024559899728337237379550552524173979235856996331382630612219723848316984777025033767989325903360290700336194364325344494110106903878352661437531547026422717285702479618587516700707150860838213876235045581171749912805887739179074241121058679850595416272450701231689317843639053927077448978723117328096778636336421668679984916812193487468594176068758284527833262607119701552944236426047094135140381663126972792398669746501459697268264714346862372247470963595101791358402261168137228152078046641259531023887293062945606288197834653572681904383551011019439109282543240931290965010433687609779912286000553818241035164184173578102122868862094086272626848716482268224596690403364870833307604392299463083359676945960171054576198198599709259975275955808727162046043991780303063013328354905336210040802047190848791197838716849353387206740177890640624109006235242219161004555460738737346382685513177529521823208188430977866966378745884404518509128965135390967037813093764539880426587153715735521934022532817602421670166543337199020988738491592320323735387605811220394116641906630146978139065049254455192595453529499344449614859964705051041633307732673606059920259530162497037970864972626721989118050513878548734023887699506116389326532284753041577869779040015808208495097305513774786045808104012224300837206449319921551561756523234070406745674479476887348229877898997115334730139379802696525961383393837686338422752852615331418583399609198190592674790746976387655203362073629314313017475479892944094175232186839063836905083584545404783275681976855569025374326740010437916677070883603738969307910769989025082411062644496291825056250087128935555311193287862539538090815488845481413259106699734671592431055181691717593283259924539191625620117146902328504517475946827468522837206451248756441604351244820689850074493281703168865410977927801629195039473728255068415037352794898870414689401981881291227716634342131589278439354948043075071002445221513651853586137176059926304324266228242113578259727145451813284896617558847401851352858983926937639347363570735258262568314427091939199299194862688677296913013437869046542812296623210632748473380898039465265379004646600638281875102723315250287799924389366285224826665936454793444304886239431343010083192496591302893731990313761915905188060204495538151418864498755598247505797466788372874313398242406535578109081019058288412564005567167880400139634575923914085303286134733940336219494605442848965782415770738769278316848725464867823727784836822303673062192139346671350661393856007008647650607270285920789055211270440310609154977016486639214521962511779056549506640088745361726022140938482072392833210044358903752915646445097629570111255393190904449622720466028504026021684276306489842233519994150292548093442141927494462408993295309103518244017013929064081804107032874090008782456411747462842924425810924930584231404252267434607425041107763376296752354151345900457354313371942462357401986735888539611568631245767592875256928686905309433225109590211905767174474093609043119441118900098536377000466348996389108974749991663085942225895132494238086084102326834633076153106440781022912916605137303037738723251858312266151663080910523854830301436353330499222484973658210407398793009393563896315177633851708922453311187359225400381693958962855817019500429627791209572617660964726566845239140414065202365210057422801973046102630090285684841730053759187412348013757692269558725059280276994464647082230007347817881381705693463683369508804097760620307746099798548089705777127579466476585496775506190763312759718284242389769783284990843376633534507389883367545608289573674473893335489585431660910958149816796534192315613649812857586747511684915537911554021604529396633456247545045762716189794197775384451853962856898161104422470196281559871734102037885106080176733406071340295114712821799083369974861658224629118917665186256766756189446944254913644374722091210879844150316884049895419036223035976530563491371709305293630293198228178588205186077023990681976175175262699622774429833383088124257495642664059633171919768590393914267687680118878161819054189945018655729110530131064884379516333746128901947796274420436929985312841873293601750520608058477588464095214837790652881462975251183513735067704619981470405733191792017993253967614783362146427994507857890181482517853912718212583077266429962230388116506402822325479823713045480516074715485056221311927490465596773039034231580146900037301336422582521468842202258695777315544796043021445884469201608441351782197724152647120309375269341114705741431104227036509304976791645393752141083468148264802246574083096171812563384006651105621032476950862830232819210694215803037761371517012671763306331836166335659599662511292856800489997326023196845501912197342107259610195151649794479613060504430511539041442009224652744068865213931967430488439479523399970003021367886536218669468265788478421762626223703845291912200392750243826727019156357571063370379192097822496214206962444645055143869729830282112159594040487570919536618924324061382577844972568962818140141663522200605752759116955171534050498372186818232206414674434500272590573643843101543136984371561985795209766626147238794484630357601696205944860735520529142558184293704447603609689270479791680894037639301037531859839627760186715176660111189544748697588335948327320035980266351115749123968486359712212436508016903492090676086696222603499164188244653050254049667279846264622359626751685593121624154189149243740237799753120989814405979730689961535508850745790896142488693023671609815878772962034348070100989105645842940001504901054497103388748455070065630417135232584176296491416004339001661921050073972620059498211935794864225257181000748772897830188046523654039020490274372267991745982559060964692249092801979297422927324742228583498168779560642719081438018574491936885864833147612212158595837619263356131258112525868367329232401120033450439578904048651279766116252205990974847071712878239266703954950715693177823141659317237674881279780822570528892056381372229152312699525673536725481986512064984414529082250161941734005338679953869965073999549102813116399133436078176125055357823964139900852223983733961572403529281175183445907197869666902283637338191882531859141440435146412234608756773340337422055122999222498770050562365043394857943031600028823974887293994922190308114343984036391624151222925564925554732689609837882539832830180146243371367688116885733255232089825762754984968854445853083943412107266181442517402305811262585284704382803913623630213090368710274844162411664270661621441819811760115601534808525895544348041497521139109511349031298090302935880010608104958239535606648655795721439176938815522300150186254521407456173329222549851665231413991146225185328703449626555838186344104240159253939823656901650752024405822792844731565811616927030947743831559971463504193612359817544020471792661647134830652417116531362711061238998604407430947191886586645801256001778859976812150453415913346488081382165495446703753765718036211932823172985197470428074930800732897522171813435201631520661884311324262060196455733769940622731737478593040609726836530707891419327411237602439650496971701619298135775367971151563115587273261723627304812575897757413602486015935262136681472213570077339683784101718964273108680762320846383824554127144136603381012483843909030081949892200550670657062243541121864965087103254456318880332815644931811823507792725299976028241385480676675711644205206700164482499454159951070767762318835202900635752552413225833414156199775017599343556370679080433745893755259902460165497399100979559305716329441685995455475849184587556256992704913800276529440726483148611175696327309267374370860031935757996006134514596383684732876271510661764974577740367821667563353660067079602571311743156917209683539516190843576294787038390156440289182228938984214484929287158805302002143938956382485749434299703145485488886216482365902582828404272417054898368763076187265594247578002861719609370435594051519221669297003004994583474163978312904016550045473180506829015651692492205022673645682040928571599559077045469184393859407144410241044995151260681969047212325897988888271669452331009630501291261635197164714836582289203138784460893543177454030454761221961585900127286015153939130286075373682075218929135356245630155012353102066413315331659192697235353356637585619621511609192225038336399929618983560155838928015208644001147281411392484137885771395348263081472583739575626022102583766701175252565076765708642125608043281688576991327902430806725947881309073560818423029645283053784927219935115390442446756287804442086806365537992197100782979395748848207987264068846296506974456526130002658054480584938661239045280534940421831455654870039663402977032930284458078367689635320006266997072012238989142060711927406437984644380274935589678664228834716352334118953299334096385611870207717763597407836203800478310216698784673858860060636039192360922763167952183891981605423713722476927032032343095924662486909388374112162759375652120737874482420187089066730980375265285585502510653048297890812298245043740559084423588100382067808610894113649115246859404944419534757475977646581268105134594699165656456347329533285719201790312929925721942544496049692003664242891861445015113463554162992860403438779953895004737094416081953266030020363832727549043712607465518247515521942687154094505597371963275188787875978691157517415252229783294078722446938227559454777494231443626974357238620947332358601111312203092136056622910292027407468069509485491177807592321933697493029225824605945282039949574321405026783131973705749361334274565268520617739835774753902458943219596884570797295216553954428791704275744853693016787604296692056583580968045106405431413144613393872618046840912319606745148951660220679157431952902341833714715870027576020130839124441104187293245279859167995180710305481488215157523519736453809569781577459349300997600253169775015044377949968451585539068071284945023733513306613321766619647313986936750146493642396765274337593524163780709175726284115797928153888888356111489463796410394637472018704422522075472976688797550457163045698478406288923477545784407867542149690248121225381021088341117577513148103938783182558957489574040642141642555210417072387904308836365051620268409267289757750577233710107993294000076814500346513677574448798274715709411535495239165762959326198728701616971005296799485984715146418153586232570309954024939407701137760068418414164953756494454774587616894052525878158962065344521136878507484997894994623273324887195679642029588714445651841973064534239717686469678991354548316710267443950339004557877813589977075699005563601888512243940330329505045933999649215537577780711891344030677348689223227939755915929303145565673665590632295320136942622214117606319133091547401455956985767882569930721235049127535997654248125672019141076296771065987644349343483574078323634231949834381907972024855985790323635398133223872653822456291144087599106009551849973070643011592208158325598510388112162424534193094252629825127192931226958111145053413050476517663112463656754300231256017221167400589627639961321741878170900230654549992631180446497890347768650802430009152320848347527730193555423732322615705434068199389017421876501741723683183491709516245361006998416307960628141086411469621759411632309212872436486916672064560754318616276703389673348732473163229249915371473985574513292039089531879729416066478131608601963843996665796138304049067226101828160147285342994431215007582462709548990930681492561826378041229469842634134450534112647775840335149065961479574338080161965013228336248671486028195732706997522884591766204101385952787068897899920166147576646469080846379329557161241972091357091021853180843778575005429458790848161661524413286066291696997575956711022901640085820307309052196393943842034578733421518438045649558315533603450276309753573106344342669072935870209317643483987543278279339298221453318973308931675694162716997336961347580891608607826675514165964986354241573686410082194290628539178664502714267432011686573141301549674547239864347001761200971867456270847000069296612686133537183674534810176203388349769140112107287490789744748423735122317906784878193881469724119997624749174195073409892825765935011551519335101321369510185305638526941955846479242795417603042893194452658281365640116285144959320542701099280152379444472919148522378997002250487412963055956315592330371136100706817963517986141202962976086439713622481075853858568064859716171455668624333094697015019849278286994610516078661331984849677594179484388450394749004057797559004260959428902891006277803577453749163265371944285534247978180996681290960925578478281477298926260926178374888501510064339870451810981988342555279129666204634748294971598415725031197496891208545721607328547651500823137093769729161255227027411279749687905665784829078986944338943618489330881035506300587759942617487269826743567263438325928920559333736422976650839401117525988257568092918176569308137620193928276571011660495930187145670583105331597094993650869563131760456019277378937489265865237094835018051993074814084903371901530343426802720589197995788996441672364804004176211280505039799836662423882746198123328509176825326653190374887403929357093930611616601374548653151210997381843397566580048792319585331119564221042822404583665935050783164709338685423249356565339843654935601079315978728296219160183104696023305369830282677622916997746223597896203189880364056179431228650134283790845053034084918273240097040459433534403959728050228547381069935253163378931257950040807775027966141213557299864142925960520964405211466545908448114150276835938632385569546705594549004464058958490097540878611196112084394389946870503845823584054684356612102553005223801314947017044447978873835993918539716947430164287077935575876474132462590516780249036134236517656150886814609801204068007956172586263173052976161978660840720459159551502258035765434103842932599763406639172141433357386556063222348119927875197987741345279441199707642392774690210153104426381555466149330340586847958625347536141544662683164618182180309978631718193109239601333546300096095943455959984884868514994733339029872991764812341724842860365251431145913352584020097734373877894436481180392241396917929222129612212621176823711629040637502708440042184635585198196288217569847752826647962137913297834426299840028947330858468503953852195833629873806905497646254871350329221696735064426923094914527164205926345650229239538080256121444732883491016584419428123426020383008625343069677497190487043318452462822329599197928105265077890790790715288636952837349938977900297499833854937014531651119253454029476640514039254243970852852510867481131774784319122316723113610899529125632315333924781885663785791302921626926294642068254943618114895104290928385346131411766422036288307561301553611458915274363518653326194568663652679472925171651361777881542002676873722858952889836577009474430967088688273868583845966267677099790732126303340098108321726720941171321781857677793487616002996834115902290355296806862538800395570070711337157235091901013361585506093143169610019066496775253354514587839938905987077016118580347654387643506029033219048190757470619204435761928092446214300712039334710241355527621781232115909952206651460567551150724021813401063137515127485418330170755702114307128435608156092986645016422629207797304005832022329621510188754999309245908060117196824898774314030860747557970474877741657443963671202422902825534190763348249357228894159704440628496817321302556935243325166585382872886529358394830720368327621404518739467514152021841731693366450527475392822570602908522780328437784020237059788076521939294805592706653893089178751933972159235607154051667828170038412374922318059587534832030704486672698186119112873439981258034792840416584098949775927705122540680784965197512553308529353920772547000852990079643068430451600046233207701385511452400137559454544396132270610162787406569420560001713348601245653339017143482637427868367035789840694987036519286654376492254449729275533776767854398816477785361193564609857155627914579453806159217416408253071899776162208341856505456950777605182004915782239904079691313447068447792539592505529719387738225876424997272680944832892653170363244077033228186062787687637171173342185029336095587592706921795953210900333605347216679399430559841862455146880756306216749802495109595201610858345311539184144668731621356913345526150445965872993049937607111543216428290899255872129794365364853746318680026104006358813379406476599228665170131606542373147136695111096860057105790906431385569990369614252323338178482950643598421554559053463465931113096200666667312130180015686849444448919916110456340690754316446098707112887492618523793182603269418645935405514825378335590232710643709381462455898370598537022544448635965988535595106102053783954414020275590794708565718182477539669768194732634309306696700397565037830891267571434475956372458856582375844740398232400471660084487965012997900678214347387341040744666276853866123743163792785127151780581090124759410939807187684824540875482179208292205717988352509272915850667966914770413162084789157732597378473379820464515049509787188849562474972704125756099115656946012933071935596914479651945921154534903447101753755288847148971921865424348895659780655458121515164486354560595965713076163883942251067071196122586041907269733310442931730659839000951748431932694017416926768712442720632962796297167802192615569655697536112970958239650010864710883978092473940433219906020373655786789272764723440242307326476066520494376328203186013312901432334448275218010259982251774979764337429684433257390171327522201502012729895658528775471295526156584518588264017960085573687516711901588647614874400679378030045847706394375561677484034270078538605727980929275531593542652975536452742545040156880806533550303872904167515629511115554964922632852834872760580821315592958779989835836615311569429983304577693193137601825022520667928072145849196276280347489154922580326290348264676354095012286610997626085286335461310002444766247622778845318524420290299670272481970122445180343318250435222725771438998805763136114775757085932811837434653361705473707068058036047067040828554843324519185331761446782500756770631537127767063898417006004892157873937819840825642221786049018599255836898667501459095251798800264913632092863150020554475046780665101441835953914035252097192515214453226482903226390945521440679012490131906029552219877496877054427927787170765501287328754639497412112534531176234561868752888203953660465538346141512404691826206147565957774122322693998978339712525787526866442507717371981287443991327541407424798981921522416125615077301800595337149190203843407070800329787080917013468218284179310478416247782970855235488976255288033666303849852987385122955432620482762435213414328401401118368999058387417370761567061222441382352435143698554577652670483567300897234596916576937707204138422211863575821687296036347539663911723520084753496400564963639653586160750179479449247693256055224744743336526125561001345837872016411679917995874638557576372304676036719235343386731018064185201115098625543168151789699473786464316182662849550701409725511802100938914640281468336794611822189264264815645728077000265640804885004847818287071216033378661866359587757111573296796391971895081249664058984196698435068682181148218852976678917319647264544121539787302320729504706548620579500513187642397652331274381034177124715717221750273186148236043241032558072969881671509664162735011401958942446880066656242912946026314374239872278755936685590578821984442692878271525513952643423059644484520085492329765673822628767578169323184644138935440939468386224766833558434233627641047640477475854841594410209673698545255489157465697747906325398722491519398473745905023611863768464976308538861828912815886827005697852929031865998661746534982765813942107950403386310182204136150040318854387997260455173127026053916348822567892729306186320605911150332906135913037037252074372616853744754692591398138395978308226520005752219387334618452395285912417589158981367732950208566445817398575606072568423553829899543760426797513364746743562245174931947894830012902934086758574919169314911717530893421412368264711656947082732568582015084192066142283921296983771527158743181002874868256529659569229882558093598121077958768208835362485532381094257477482798700698430976613147134430143824052509788292742842902768850178676485035540453467439111106982712205042365540463171534828190390550045705837809084365779403135679258882217168560777219880546640532817618820326363361693417352362158279532335055635769520042313218283397577748120420514338401335813131866927641454842943298595774823764341840583520314431396807194828516468749469502406243113850953456282525136213662451315997908363770434224871427124156965735403119868390795864773756832927036728389761995930823305032233748398452253025579650348539765803908839571064379359063988613948124854984967593877810909580107113762367448833065795305429870216859172054912496109872559432715796950965318764427005826577151582413648578321308188093771845516887415957315770623048334166594957251493467184165094851165320038459408615208172512361370689318635018865027931212541067868442310667956479854366265924187824707060260365012815480885706809370128743122595249089221246848359881596930175013030345612651561691950289916692638371873224654992119549425166371158150936462839813195597721241012823557344839427851935292812821832659848632473009163504645875921243989887234272190614713817995949944176949148650271246311877770569792647816967760117654605731771717356501902515135009932344185324168531433826111051296203456116833417701635684217300158388964682900702110135964204102440115399050487690696099207960074543144455439434739757753754484563443394731617336780238102717757488634967217729204448481001330174425383529122843103551278685914240800911224294508096470546501723575051014909136432102783282566449887138944811821515913116440754372138832821812124747253655179742091392974542677576798204151109153886365965481624435728022411390038238937195695934375461035781781727899528215653345127322643078409938693533829390195078377675454569040012639409807706287306323686787867755627633090767660755820149073442615658059014550423996362795203794154423421420670844816826454899082175724424059972431428413113740821433068126347352986353782819637574796785730536975405262484667984326309836841576398169757637310774269298873829851368234803981416412973276992948267897743014777785785205112724006356072079611126363494204799149324412327410730454399529760945778386108591198221744389701813681923508206936226063896602131750093760969427556947118498334943965850924689983555582431498638858025658104581074420080035739611718159077126295478074578522884597156466430213754335640653150048159764578292942397925789203081135581769618943639621259816693422044294593382930521450857936838615336977206195275967629603681168549093655975705006340314618949428600264318392949637820115166384823913351190013892760567327367991914455820600980071178863860212038509145665380437191244425233411499910709616815890132905391448516298921229383573334533753996368181854891965198135576625519505398601393570159296885811409214668150722796237186031093869877715556221549387123085412906611367116055238802536404167290014515996320429142290526293696738548361537640188623383491421872587454124719804654687101459263890153506108230422152130812627162952110769713318579937626586764866068403179278308525439491470968112404431192335105138070829133724412808220259329839236255719522226684127452744785939930904319540907430106624086949478251460595983351001835011907118460696305357062197799233205665267969378872625882770798892066005475882350472798272409523405321057708757634999916932965094111337479874495746278272645974525086340723548962891756422559368413231620596289172733230704400650899814710633511738280852358848209498846929983678380483853961680258061194776341207695038403253802771920759775634569148318481866810326803543335243084644098890436132054247011618324902180112785424240545491571400215303858439859111864591560860658742914456118390595140960672253258303574728809953320621454715857283672720671048182957694456558811821046832063366658161587038739579519682077768770773645559815636051510602196081967983513117759873485614896501729205608948027625479827553821834118566967143557941171041145312715654026382060554481330215222040613995152095742602794163265799119728322630775321154768414351596718047671861090793405166329764022296488789493348746904405214686861821248553098124169473005451531524260296982613898110455269815508296616819816744103170050202073913398530389014161559738511155783975529815073027370182996296448350820588128064398012167040662378705890023078435574295702226786788852139827628308224247110648790905440500104990148401260155751070656812313473290807403720407296327865754301896909684443437165029752355358264218775180863060870478937383624461578305344480217087243386562512754409659598724127849174695768274462672399113454842357023563553471602464032782901463424494166990824645876133448459131409245072227373301958660913882369710292254075644983192031928106018970543670286134145614435823182794429345216746286856134025383567503949119415876380367588647748664419950571271810298848261223874291267793600521302891498786757899833755164850463214649239776113312002961507222587939133655969474555645721926399562766341676258198203490414838492554007108950682328965365978773941627607771008127387865922451592537745131115597414485505988583665120487557302717974275703120024932077741588234166198798314174022137877769295552381186820507114239805518540715869929386573888216864610884635899471112272604296088478056176636831879844630246755447680757568474943108396279053449061458941239146422412916072039479572630823759189193011554848915398993555350976370317581367666928266657116761437601895101777550209830383771230159874605418737638562986137705161289121932313568669958915030547940746808671673933961166807085073301974076390941053549513394648859131191644151672673966695745611489228920604659195132473085196992722866187191229494536936731110735981796219303883270214982683208572367913615517580117452195056482504311548595533468217627199011279972466493942900118573385154167804472211509678804295801398424944483689547778027346427579169697349427180651369599180442193001960702472916575846257405891713179047776904066737853474955139234884287768586392144840278910737278607395027360228365958142637357087803477574839481051413135458766950016154932541883058897273395784912504878411282699083227842999656908966851915661538526450772911548165900227053266824363830461831333203910161833108428790045133554027507429607170191957538404834233420837564950690250707451433050698764872667663407055534848176703505792057525468727075404919304181486798388196819253574307286726750424842755159155083822900475110370538093679591391906950824863342045349805149739340393638746132809104593284771321316813157246300482819257015305145205042561773246826717589163735978641950256433404542497266971707809739070711580369262855988151710421240766780136212829239679742721693056636311499033343316457063256502598455560049657790667976614939776666519966231523291732539524024451246922307108838845307695615451297014129124868551187150696356515157340724425537850581274480635905255461867066018480502134891002927695246436760013184774859139290629973853286218893718428653072621313993344278617687487989423791712648456545681019675718292327960847550938817896191860811510770340056940467438114444113483355772211597128529336931452200492206920483743513527388585309433894721608179204132116394389058149367963820829978464175453524481337642933351192076492634543964966488509418788436198682744676672097436295377300072812522982566650185240343505335435565285149280007388319742053292449069577016352945394568323823647639440610239083710213189786243857952625804165741174685087211846349009222701317197060102571962128468605810037753270774546505013613272953442870584803270366624268046198088964415385702411926635316543963533698430892336487405782742953848201148439456420641490529479296803358831974065526494159633014667837745976348440235985689039616282832424071066119428192303204881625767269929694234244749043843872106496263434333682472226816301763906372675139866866229971596507129105826160320030968931342930225510563425165243949199935539091299177811300902386099126870550363859702776822173486968459473611151390995934492928457586079587600676607282138248599353497581405294056243909357879167841265278162676669051438417989763190443139557658825208457281200636376567522227601927307206716563742854105762289197676039416870165355419680959878162483892005134947530231611543226762830449747967206193328740976702112537575515981780965348888602023150308143054509629501474924093356741692287110558668651501516283494801551971954673363413733003874215107057512768001611166036937364978808646927529879126107750398227215960904356687456557012771330305996881771048894979844230184920015230051789780028841823880695219396033062509385807939723515268057403627223363430147098436149290202239240838399632044275671315789184222032534658098924066866146232312913988320178804029145131604732046513585695470121804377905148694500757440522386477480613793724406571776391037911914189891050718063700545421756477707499998096167156383829888160138049599220331110808041783860429934911954643772385194997898117365522568897101225605226624966719871948204050005672968991021754919845149549943899527897056210372641728022047187896292417814888436320236501792058570972984250342958275658413763509722288785816871076997677663110871525931136808377446265041042313503781422207297981333757913738943622662383565179579896456515546179958447181538021227333959916310089268875204631413238095574269088897915216590365951671127915319456470995661192499312974446118729402581448796968108355714860129691305501254546286684551143534661736067571432758840209485890574208055491015077954647385182122464462365460195910815674104316768420450356064015295666063304974610419948531812570659128845183964721343798195680272514877104917631478929827820758692984963313187563382725871757150179007592285288757378505116233777044932007249433126983049412687709613126084083598863776533034062069278709244373835297864843447180942633200563402322498974919371117666463303331114764287275971868067568800972729088826940454125265262998823787396315693701351427871763316492929233853527771502314394388837755753458086825625234561296084474664093287093879926828728591655977238946471094767477935007406644056291153189936572743393793747397589476052689930338495134857140359888484160617998098155310323937555761889867101785471904578107971539549944165328889936579125981015896793322609464711867364138104590289767469471110053367753431792320538442116726419983200877466369248203194864891316700039931962252523335505966443307986977472063946250582709958914898802781068236341780605786968994920201044791371120868459443091016330752977015660622533639277732340048582829979689517712458084292233133678744557421858562379403240341908486416231373518216699722813460726472184130418211194966590317229238869273485217624910157289510321642057131711432775072643826846445590067253969086381276491931832194462074876346560717197241849122241730746072031373388502862505364375732516375460831448255980411131074839198797804040871532201303489273375258252655376844435032555709601370054905281416730867060001077646272535469785731919455620055127765249216291856375615418305294950860295330014385374084891882988854008078390884430615257083313006495757146077334482068499707795137404569474915457737042201962922622474652177031161018253472848098536671504217382123582499565089020303337680351971221535897814969673868582835192506396595634387752928014861022350897178348883001765677904717570843472682001478441410204839269113715626585788450724290545974505876204938829012924252819446751125622251827825925268190053085364432446978798626398987739586993317647433208660503221708921693888609938435904455968232584829578261099519021820398618495610376622056406910968882235631613758972089417274187310699998248894933831711762343981092535443690009915622493799101035586442827005771032114722857839801293679499470441106895335750781836893290745120178213341435539029534706055016804087394088955910989884349130798990236971208743481242379567978144499340259093173288192662114487220376961994695854317904153922487482256048102644577185168656112673386990786826963882479823328109159486403164878779335367139127412821991494896297164741825845036777676985955794982098738210148879600840681418208112404755753147082546196121310846155579376090117208692827203643187840100937345962180245540788859707148519777397148862700460074038745628926249638130858544119219736028425030482901778665619987711886287741932713819658958430236906154585037614359047101978366724443446643557971044717577119566124021747539344544846589632476608920797225470819874298399527549771463577138043831054245850667174120533110182059259159780054386609805534645913853392784462274443551223003132692991409034817947971721501123363110440148272238101797908295449845019521574127830574241563469126421740585578149314081503527282992106634110981787497211600025727498074474883695477026810820890592055731942765966709476091935645286835091551825787318557818258319338905227396546097705742333422704878924575478465425288502495686603867178597517505796012679969812600941882318469354498468124249942458214674845793372538180191356314580175052992265282968574673069115620251181730527540034857249010737387395143796524209057077996204313631747850022051829090291975608104740746038360120169550448636479582529326498927396288817631481996329128397323435766628934322175883758327502225994232395671871831395396582278764629779382593260570710865336707074698563294550378159237452241623600370721136777042176348326633351675221300922688730551955184237522431601909607476961331296278388609149464311205809653922871217273080892817077068476035597542392257764115509927236779915389139152311047258713028184522138071989618073563073371272584180982551487640189210039261015845507604336942847839886252652154401220499047476582167902225272850332240650918114360749280620331936020807228888302782489009492469416989639881847540216915580953225501564353391478025519569464503797230898510982857506779807550782205719103818001959340902590006756434669857455828616530292671106988487110484076628148829445639144095960005797300353333568618090025835087864116162571852623064954100376324803260065621898486038662459988212859027200663679072845914070269611816798547209762103447664154321101482635897146496931472945125773737685194339071517920045897305192066200534371503913035534749893845557993901352919023014085366798535192972182339756012395301875897592040644989975455608417525158181386872596497114203285325239038463134456715336422048474888979540524110211390190950721576313030174441960434181554075054712927451969638340777975864840166991155263685313927351876649666092735037967811899174287532073500685659177817446903453631136904089732864319395788461434885563521879754049705598150466752327445922175375735252729753158787675472928718436894955204118410363357601730294700019515661234971307655051908533481649999669980112980032304477444296724932713899654763751992793280863728844887162652923539764289659511406892203057806204620269579231672478916789047341747532035158459718535777613437093207723765189825526806341207820182444909490029380181751992288888862589097182704651311391509970553293245110902116673396434070123717219065656021357662815335453270328210097349853996065177932231107441250616728521944467615454027859097115329244178744564489835955638897741340916098856327091476119422721564192466613950725506130855979172232225888856648245923242734622407667661827861475618992720686971226670242470627690120149855262795292292308433848358941288786077440604502304264269252098344704055034926298493856720831737260735204544611950531264185153348714115463642414810482270417773397419800364438002278385885905990884857550786040249772202799489659248059547663169515467007268448242914484903159849920191951756804246930792715378882748173511732138107079376155695727485511856601881364869031239943498794422521373011874496045155554795181562938373830954742558374350702608781769300102219473401131292839337060631233829231345454991376320044672223984557692734689255412946487061203207284276053579300623584548959975542049904141753023593610634790774887748338982640582124398448614507869308745605036348359633015148483932105440997287864101447516405812314032757011489067057771699192085444857592053770007196707121426773834618093294337144425326104040110857778175495487808219964815311067002014754917932809056549408366520826765314381319878198168457852765285417204859503358223703549523660185162172925969525868710064420674654098884507070488923427238612591598697548851328504781215069253025691207039584471375780958101687162820246426188277727945056688076372055737689778651713231411284387853062527481674402786355329882095508765234238537725611667907045433987885327894717471149455508469711257229895721790144515056465656990207367672300946469050749403404881712053548439668511719325228649477870790959321330214696899699029466720695559746500002826637694515768295224024341001978047817306183855787410671211989523545726567228469310675372731494004152078600117479379548075878294459489891410442830514715929694990047224317464832513745358202714581361359115361652929077738927342872533586462429955316081774231485960856146320072205415413661614174768890766633534921708999720980667756534203523984587219765656916682374050764575095902766048374549699987877562870540205645727191048891592896889130741166373410273920270910439069932935336381876830433168408709189378417637538468224700955079436496462572434066117624146047147935673979385260236908129252666665402911697508859023513372146922573638846466908869697188107948698491047722405466547640316913079032535912669606924219463909300655043322290950319972564412399491604070650746828872604524822892789571585444571469556335821773612742077710265367766856739975879539865505685025509560456293969737631031435896467983509686056812740542705446447108777825420093150902293656830252845111720093469284593451843208033827916230173133196862470633970676918771481061452253826427422700432131323469911703588970749842235414933331450296959922921046164371243280704852002275889162736345371917942698770465525487406400421229664000998785510487706533562791919204743019594905922963466883910727523343821663718512148223198810178961455195415948694008727961848983306352921780471272964626601504958005933534975299077773743667150160184481026416652384675241165634985527036253481452285685452825023772981522606312571123707898484960579224566424050395827657275857978595108203724056464313959568974562418560505881467576635498303562356913911339596097313277003541101503032681026185078668154328892739914252049672195722119374595132182814072226090213599581879976127894911436146670321513013730745719733116925864060006583390899831877277959612970650346454475997469842041724747142052396215693148730419335781623996966327210569398666788904121756366667241437348558849149587701508017485216185793084729071696207004976636373717008955849547510349330234718615777384730881094987499338249254619112948805796221285761689416686044081042596331551621747030297366981390325364755827619991179880000559508690202911625404841605740432198938621325937255393760242992740059973274357782109121442765950810568312261351755092358331078002768353645202852255110633662467682843187967830801457817289850918549976293190295632012938575118240127103129242463985482574294011235510142190853075073473881079376185035566967489221693952889387366236481752366239273731818382573359897682538844657740588181303824421343596672265715260699721491088741635794781224966548282603340442355737963636236080616282199993735170033855224262879333868632931568060549421120725915138675204480455026796774869416883005839120435428230031904941001200771428015107472417822353032903151109599199789589950509771803954909473510691198620613826439478601050436593314406946134407719506451451254458235646947796722647148668374134008518509491612442753803743126210816095090887584514580721234902199309152747927626678743316965737175997747149044756423135741600858025709352198999134005429226966368591487875836872183465660844366675892583170895565139705950773560749616277715252223586186055795173639600452428338878404629764685044534040599371051528686802559798142693875112824439906255566306765613543851655452385862193662824211999406177186750778403164426474899371439366035285555242990124282897063172322772087622256930309632947327255675915506416324282710771432489150535519711400573276691651648578602985830885872074519137800195062727536063421209036542817806486586479271922522690216031180216365522083767878528345686284491160915247799713101959811096173386688089992875137686192830902171893686840363216727603118168929282079808435948539615438518140940662451732518895166489844204903948843045996123558908405120976657166916672496023389196841284359956360106039304718632992749185363603324280789985538389349205897142684203712287598758425279881076733858823323687404023897316969797121034098205772522749968491400435110224787646839599419724749787733222090561250504717002952458331887580540595095261710144110481157208088492209655941522227553198042664234921662541283778521683107296383940779939570139238016771176745886401034892695279838414166347170513268847042174681234261767922930055564230465579962028675838180524486564599814725622373265867598408343038558980919518126900949885416475015414652013157551695208138412117682506580533188520345412560696528932921179389353288109949550313013594128640900289447927275700731579967711183847633916141278578072501286207859337858365386442636950206884404099690813456014265143520742291238899994673772882403047264676950116262440109126927333344319832746409118779709196677242141912906773907886415455455648025576235429489169733640687091520786886905739734814382634008498901670814392003991309276146856793454141295302000701168780809004402970088067084173617186270308911515110907945590048919270448186871891006776389355437477057861092536980029959840863054930025012222567623124060796591259685849320393575825133808996928439257925863729297181296281103988562472802373175580997441907407464948111327360405223871427583807264981740140652826037898815134854255226964132715042002106100777906772567335571729874276295758632271590965005104358801810767533540799086664194166505664795847808051621587817949858558130130209010249364448148794060109655415242474821372325081484474037659141453818692802389456375532549342123518333799668991788010773368827413924159336401232494352808868343728365201108828573606397549352510340521669064688211443021395173124633642343365541714797595774221377750941732407500066005175454548953929472237756944874783652380217297699972266899912899142251120136476521601650457930409617240151912527775920836232646816253454364107276908474842699449034438502287406445963487260066105925693600629352027381158219010686794417790291424927580517389065105647906897886119697448187707190430687085971151594744244627525966612731516248490823337352639190728065600584961130662234404333544930027404520862215348319542422593247917054028707203038209682892915689043356685821252793236011014474642704325857257629490051495764936265906904639779851884321051015134680108989990670652530538188142022253892197540482301092372441882478222288862680278979947710949207294916964560428651482716177276666977336167977202411961213413097200051004874006469601090237270385880706792295220657477255033151591403139818518005310838699356616603481688200974204503623420390813214597862013218511134316345665385773159362211685157350131761545012819068165717794161436918895084152659717627316204634773004380987761920594124563875289168687176586062015819488201251812915671933463607576861523143770470862341251583786104171208030989717249940152561092492048288874990408729008347046257561513374729059047164895714028122147668511992577088517824495341206672109419215103992113824972738716071900701562725542948756965658694669227209150070657379040761557361663155741829842695184393211258458643949140344881437272146903149228570935600528090906827946522717835931611786403951914029091082531735846455928306411953341568913855880340181658190344251131635728754770447446736664713546417102528714073612287396733886293470605951772717708399690341424743099774789936242827353853450422690416607896339480663932648974559872285924487132957726378507842655713915513986534949549809949585798476970276153949946203401908822163568272334336442736608649648691220619481137577671592661339345049095819616517037228392407177766243408196787030332642866415259890424933453234651648250835100202612504545206536803175302750997453135906649497000339392030518726517956436164177270248646131157090592983436740624855431530679853866323638253556372010569954166936733745320964144579783273799724065921532253756453803360206508342519084034381678229447703318848736211227559174325925962343964308442487828523824478664064464616022468509744472065736021791226732054323451778865946362224462956295727802689422947658853917572873391747009250630220254352126198540099932527676186968483211567344016135841199672738327320861494477174660363691545387059568935528705819001997393822393021990820689135948770244530915335824008749663477554234861605262630112297679895506968402477511122960343399507983350413260611150164337651333683849858905378744807091948726856379239533055950431713887200348934242428868503843798123345989200660448740324101201498767803075900520965554531678456719257210675457875569895959005650496865385101539754855285929504957892384415518467449802304831200497401029170929849937825409618252220929710203223707488927412460952187870196392126470304776087417268522544081946539402188084726656680738305416350641051861094941694100621526004072271367980312183884638426276493293226371005116473270909295547729971708601537315739936941548949648546727246131551937312646140660765574086104914805657477385885633630686832681415579612234405757189363384934499015820187989372069901859426535561005684041523781380030546076365428549657802116514999596504978452929481635310865672679717299491728198331160915421222187146432691522169769689159543032008154671456033107631751938976801006005747324170141441129107415014288682407952267345283194439326586082076582154587473263051234751764800437307227417462698910788926189891807485928745356033683624517988240099817462820990176706232856837036311738122207147972904644078414985919460024827644258627063579347951640175944833212500305225522533627004355946977012490151330989548544332750819706634005209163980908383182750346794778145314842309066860899848831743582241244918873583479898768297291653940154392913044372083362107111402501556822638679491023604769778439814917974769996529974249104134167458336135858230428799117429703369135905679709146044175984845776432821171352328029091994181963605999927530506872250972384217093805334891630166936327357937836011839410169012255439032623816732053780552900846296444542384029673300446337006571150751855380163296405118861053992004747580303414701122549853527567303978300247551914361416942481676367645746280662551858671789248993528454507301621185219423394458252241996532417976838986233403048113216803513406444968201498011541883916727365349759459521455702175377744780516510315731491588804333725501866849177646760082813992169353307945054489298456655303079789815098802340896742136230999104210448527214540049888578485822648925731130277922752006672513005892107142358259209504927976853386930556557752157166556112791338403483631729226243051685002167565362141431232449599493617494153976673580008593333281301592728201104308947949811967143273124349312248662199572271008708311188192559870519439585556215441961736029248572959775487613066543877411627779979194805499882374049526906639825683541382659342752578511921829695843829514868296485362035638625104237153644666441556299237506603520892177052764578051979452099907687800290514293628792115193156679395317166730188160953192464543489136574833596083754496399265523972075980193193506783743231053989930681531267978427278130188137245710786679255617053275471640604558163905100679391137907197348288236872437367060641113988165638731197736595661199755847379896455266171814688927423296904602208452212189528624181896277379236678174934632746080141795187639098752898899633694793163455212594363049561710193559826044068745865526393670994274254344542943365729102541166484736868484735327765641259151232867494327275078239326849467466673327817493404672341869259520158795001547160659556546164792293680724868552913876286096581547697807651837736747192699003411206442702438875318384790114990336807114042434958641936849423605380121252032855633316532933225799793188001474875512005338396123050967988656854965852992654970063299458081650582356667487182624209056088067307130015780144389394003384549479666054313132719773079665101030277847047355887579199473302181261707041211013141170751633448535743284938360850136000547602344676035055816410417337523378514793404428039764835856988995542223011120796697560111787141847633045588792153733011153182618431113233602377967603746828001769411257365268274981938600437592073305328351274453860498357302359445023600182776325594442820044035484364396990232469709063044782962046403782622867520422188722041558649197636227963328702176706075374391411167102234481909706092096098592639002627100401224365612401116334705589722659965456039623621982744734710858202497565546847042302667053992767100997175881326041358132784114839682640931948557852411091650223710349181303515685962526792627484330837657793196851087724689369656855411236083168859624229469264818115847273521053466130098127535538900950888338711505283917603111462100128117486941020143596068404872593599087475457360598135642769847283338646171950961102555670915887638318265292812090506528999535496805397921626510314788357840865409268702079842839080666075801402466927124411540296715906084936307962902371125604968528819400168486921242908972975224298765777740452209258513579081648995210009230798563266718224962182370241158870289419640345493343321751455071281085865669375958439989487113839530300794632207892950060309878237957931669672782568116899923596064376997451768259771181859544185721353913462178662142636720111242717175260435683755781874519515005542800210818489376233042666912085331038007817536396599798885137416883241703013545185236341330179732652458947419353280474144561302915117416627643962219643369590593824332644781231521887000965683130659670679676126450877371942294106944144449037088952841995448010786798618827663678031974287361524250396274537098494204367484115927558222331032001539530637582409060219126599562956499543752019243503457871582816186192868597480738395810673799136537295730027663064339115441970587788158730556145531889310770836623131352532364715254442747616323544827421975656145789092133409398221577012202249798779017501230772379566533593563549655377628027163201101521162493452779262677490436408062044553124123854500782303933934688190973132002922785118173881247616513520402381462802799230619365116076377999251667055360766617869632441420006574717135996921499182529072777681024826881703977487089692550275237557630749625993977689764669094545845409722894163686820015666819214040257193903623779157891831559633254291345313166040851673815111387975377495044620645879180202631117816948551662645685655852018347022895530483313329997265566705534005066713477498674048918115215916724836618202425662011709797776589115668110001274252511247610529759962061090290749233558130571272890899209594976977943246712425257798967016355724314777300335373263905255763830086829221556272851920322586563176415256819377983995964577245758912631033154105575869183018225709708256177622457576755453043502135898576717870072073728351129332168992064143877854617870935409037488368567342827957537191599108768498704487049730381478864347013680681539728736209147993077235051236286543930511095489581500812273353371579641502843734364918707072445643729285231099786967134742331871784570471948595713087982274029918655280239443960442108936650296802233283147281242953175276207495839814808430558863214356118780777187509549542959688189852733793268823358519682644332357046006800105853039839709902777531864855979271278082958526565174826044341086278933846559238403612197929769076190407195841117529195951705933081858645656299795866276870574326010608282740754162971642466100420939362305325190611115969319585781283819939183790054220955829507163969542569213878324936250301756269954516246789681775315832232167342885287887103367866873430501202653547634005465569367512812974764436593156731310563299798526923731895929634030740827355081132368847728435454199456357414305131929610435511013903301340120959813806288866957887931169134139643161589114420118466717443495180955608280548083003003734135959134903348428184182453357368472827410784725077216262760105745294566196737261327670842912146190880303146885331768448577521901862723566961236456965830826641485934188680963413318106740006754125148360615929747760588100550241893147195695483693032191581472039710146831029719555371983254046179831374200611123743324616216395823517726438949041550973926430109870510072468155728401233459315492473539544493154278589244693183713042653813239141944765196549587196051228897929976181271393671154413316375447293928017535643228322304418173375260088344303945085485595042439790665398231771951332040576519545543734082922387914190994162205998034820287132734550393425321648167063052718213581256138015420969308219510539419833480575921858367937615668296935354815258738331497232372671236055783088739441139796804804294344105806163284172494683543307452844659831435101184152120241295019242364029451324291321417842115550775876505468403344206376723636356708077797037260871540602970476411312320010956402869856999121933325808404624236134734622412103249508149122040614277004357735670194362208139053758815763667556651437899537226642863044811020098656642412466167648905142282319329530378853566216532576856942652333678852018960002877207080185270654506256050168807054821692493089642268037221057440660916023322997386490299608187754527090417923270863575644318191191670902393249964604436516461983524888226693851776463943831275520172554211243539654905288651194596302913121357283832821058066188481010884803374676792329843527099780065999074881811598675677098639445182252868627178258537985953178514204416441177218237237609571374706316272023322193032135922305725024631873557238609380900401202163110089275827692662702344612178860292835770562402629766708957464060973144796208689870396347893576738653313940802591438616353934267328698576482248345090873246093198970983654902771060346890286281839759633531593545193975270622520158844260049904368963458809033774629722606871771360272922361821883954711472157391955800993327416001198844573081600269490842577990372718743561525902769059444442322599775860264151210401206209143801900487788795842626402597291611270334814533060715605579221987889863511440576767962716858629676951711051541269702161140419017162109639410770477699683967843601801621602617285477879959691097388337184884549733100458285439722708517867636901553273272736889030833998240159688990028636002227098581438261464580199792454456956462982288919069262195585778347918014041454388594270185913932788817698904440438445222547903264796137197788579472011825957868035908937526643978463112006677140786712455814700582349573608892122825861782358853900941753579243330097224483221687088194837324719992427927461614615950607326220965362080330602830557765111711074671630420778575658827586521764349977553333811111257874541735582008092837860379949978152089557114841190578602484621393653255461334907171221965807585995666885521652003817355146730061670529123969712494864707772801336869607675276897159349141630333690167344030210464016913579345733504827860572345768103126414017449512453220563010612660496330789785683008893673502655179955779664953741079827222134466782259605999827006978532379173440407100896294133752542623935821401466467668981777454499185671088855189593983644543210767135945302616594843982615044104072012299592234153326536907954305611253847611540088191086251699451028332057852990989313879081695176073349294301370094401997661556808808062990393637956923549748823287932802328888545400380160151447713680357554839051471445533603590194710635120097079484236006380114043735072872958498188816920838030028482495876892238090994518721797132989946743767776672176621831476059514997845069417531368409752282740317529196184715425992109040463763113853842535893458692091152470694566742552114326038709141905616726661852391916027950767123447683441244574155233671388742767706510539032620844115341869339230305445382270822646531322919574765980207181179849406644609922149677650507624074522946165765255958996884092505578513951502148553863355648531176131682615436617642924238601980528790655829239007268337102872695188743175820987384771243211525405895833948899998490198641646123159629991795140119032043549635244360780177324255679343378647622945410373815435698177528331857756131202656236058174965606798739473569893033236288733869252200808145055063713388537672312905626210786425429975724376224949641511056749645256987000923362639090256805381554729687514722116150701736274576498043343368399578959265967134383475526429834630819196495499769116535090663278815968703338456730532511391306754491958212853902649252367844582764549694455989082826308615744077326946959648814581344483261966173008575614181755501845862114817501357080199525387897038014831787420870914855433743807047481476945275025731328487932427619429403053375742905682895185630876898238256376295778958785275906753598127647315787338768216795339836581162659073089032912581617359631046782681155385144362604107637268520552335851055153163646710416281441271346476402832585250626031729545205903875956492264963020545579727072513815169378127935533425890641770359438429949987535711411863656248417648629026492850204571317336056953141023211426093820226323146801903772794454297373597610760973923614165888011964406925613035362299510703351756508794285745318407714277689494085274165591182404103561002011283865867148442233940422045061445258819200620677759504987840973862017949083378578509122125327748437520845333061196160833431207864512427707905379280259716956200167955220926298063390455448948111142592434390286430566641134620039631559266853581549516217605996700328729892799854865837869647699623873519934495039767078530121779525179304327612239215723861059308911666147493860546243260048835411500441801297572383083644159469089473313615044403609738464778324477961344597223240885704785443668210909390516030386335967877704636258947580873583823175798035217013499388233599540196665545929579505421441632755529179196792949212661809629187592335243212628287149321031004421895379547009251703575160509031945425098848775787430760444111968417729126075090422589758096406784523803746171344169606540228033362777178381915109942165791474146788802319824423763513957414956526108275998216631194187054406295763126962647724500544857532853970214199124682779294842580330687709950822193791492942350455963715110542671182403948583160937523208348927107377517750060176248357406541895051567619234151087052767425287929106886992233573750329585768154252043067181833313748448037316755637278369734375500699737855816858590845628894304365857341093082442368974130610380137681569597709800107322454470838979529687877186987859318254744067106210693275223520114086706731148693766446915675210394465765678221822566680562255410306996178492326704226344559354153354950385430679498405154904162031923151618562772090083527313420245070176729381539057747691060264846801203755553730875613790485127377400051266498932851391771181099737364018984773755227304984335957506789495192659495833690767390584752397702411092931289134916585749893582035811593220931697180167199290972312078419996094057302003568365328889902339396038230322006092915245213437852085763982955488406910972009937162868403060342797991808559299283184814488688788757294544323092379200119964557154513271603577387744604003238656965935605075617001574821420820098821483803916415945495242598920549265154448679841000297150263649115092617771495863452799130523895491323436680287421098874711002987778722403224493105430076084874362008618612023140844025702442800830128809181066712175889714856391299555318585778996268403755333051899546382128053347369531579030647564413023555960355254285509067999124254698222354980669658284575766625001515817957192686111934669525476071247802207635389564031038964152018027720575430052475534470713567387065203880166749258316734288860417989985179008533060739581818198053778146121721456221979673286806431882216833242991227094415201974877883876744132233845179020631260537126107194547767382209382146870253358203077511232356777586089268227112132758076443474242671880015100937036416678836644080678867763338101777325884661508947474015101325110660611696279076105138673552523988074360245112366860391394882304264679721678051509963654068091004890131004914176231761553868098493604456230726874010281176147822807299644316244171098745170631373620468628263639739132662936227340750045325789730009777954734379561570735223671096308754358467892149629901785288341041796084572669256996668474233958436155387141692014641105228935994527796623346462752886392568574674890341626653824560296673830064806260464626739863998015509881615294283385272662497457717287843640943790804613123382333372857021129009816298760119179118826530144532856601928242522793250270831490107933155751569542030908306607968378874669052677707962474689886013497065558266541370432997695037340443687150826331560413043984014764548790151209767009813925406359936006593443481145569735852479422221067185005502777577599681698617976730704187254525883045122241827463279585883431351470738192032693941900070735077131021192498560428534812442691079415786827363754736615514252823153133010213174205986750158369317645222269688830306723111779100598341867560683388430063497250340646157021991680858696567353421443158178828959990470945795081606481333905209526587280128332217498206924139901444550839963121261689469093191439857851477901159444910513166600028123787064785347613733954610949499613031840624873232987707527469016377395149937949728993530201926226388352565090494604197612812073748153338364590796245660769709742221821402904697403934704042704157805843224956576073596139947585884156278553377040090567493642380458729454248737282897362124003451880286123498756593336354350703164042840736038381609206804382726509720906695921072419087291859989994650324612419676122758683142074905000840092299626466250430148336675637091861287987518440883907809635627592601505151512042967450920474244579710633699380043055000740045031740663595179975652047222460874840800516681633427655968447731141317142397497298162668643106005723331055462448372921846893916636474581433429805714226092703449380065861580908581367958825404188736515124412818449644725189177962600861402184966545506050662838010158186395133140037617563408407394240490251449084170923105428135529986837632670502714447918106855932161330618307788844391517108983304326996687897573044086287702961628908624623849224392776144752620848006922063553612610333077993002525867042708133709159438192054618146575625429118206776163570152688274264474719958100236380593890258440201390316063360827004368250230312077011810887863043239442619887801555343779715588480893550113398841297910245633966882549298826616724730558665450770249365502855631269396330458160571644937314042756853327869041717742276548451877718122950972030112505070967410036308906916344136954385454697870431215842432268552942783411921117405208924653778339296017261552899921539022917942480412834189595190516998891441441284712715968033787225061227481712943195800224439859583937650457709305891353570172034319832178623519300715442544266131788931445537892041101843821677320625567593829287379685582534913800820812144093593504070998781684035869205859374921899754680694020935367256978373836409461824230177907253875640426487646422108419545865004314261297516771915586715839755436826196877915966539614119857377885141483832495732631164251595216085496161146349797218331301070686594291392579080631524810157266042381754033363914425715665605352202460464141901466847770532853240496967236794785261941359291926733546825970070166376427130742062428427026327677650523301304427767354774573929845045560467124316971093122010119727267570855203160693953001910476235194446851827744745093642705564990887445440498164958332289771128801651321969358015938455373356644814718272939011782285895290877767195860503458088818250961235861360597305620307574930561961259161608317110354977712750376071314640573333127479448155157922556096998297326472608745713927600417176607640457694758164852572816041999273727971448665819419810568622354179093789860212364604155786971368122202950367619085460424846452809580378566849860388664796022262979138286484545083512208875220714949773088005257167632630331757147029191045192284358512423969530587146103962825449684834681771915109435743896784155239239639269374096263992456887878901060415674899958827401693105478350023142684987592388331749790766478400470712955020974836179444272019504981832953440908508169217187772579874004226769958870702448251955007476795660836952153120801891577117595172742544636643132754125970723216222491400290226515939006863808220523168058882204503019807207339671588899512404576699676939664219082767566469057659698634344850947440666032901413581038942687003276357045997546605267902059603851663166814896463037701731598332596496089697761573255356540418719615934215021051587834884355172783636763555501478638842339280110089390630478238158942826154084510117386270558761596089525324899076859816491626067130609639276629203992938940491838320737322156167250437113525090234153528135140834722075033678021833836033296085301334345387506805192084954566916343366289736069120255364846702320019654156458481139388684257866193577125279909499382573227061734248206537616434426241421912739214157309386133035063132528298257488532376604082072358026336187578400677644528693613271481145980316714124145968911161281974267052867780633436320896594871397329087949995569525233007451515236821262492358466341079248167183079109703412959995137303890280488338302745779875481997352219939855583916173275581349640969380607258059668040551378221638696639421201189821526422614728336729976589948261763024583500144654846605073445836715675969717759075632956673996904749644710123766892936793937513561758200168958226832009976581582017491828254259218988127542484931455203208563322231961523169250466242105018626242522682149909987520123610893830897855810923674961453868688932313125045324504847559463642747120527995495433596867295316061621013439234014492894181385016487081857642281904109074440239355304161437591260151381103173782962862247681249967885065900295668117116943575276251947385851985387435946262345700480513584966893205310011966882806170922641093715626308487475404141879428090353763087175133696413507725507715970535888143204673256563808247172261211586002722931788676781460148786749871630142721303679023715443940007788580220594115933666484560883154906685518667737608527633502305984768930706996767308192287716767052732300610480485558999950483773813972722015234377691533240234778870736858424238772545070860392587278894439048985987567619860555320590770313553267893113604645336526166718592592487391035111415915350908423831420029111901670690091883058331667977323868740365893253860724028479443482779251191551810936287072041553586823364157082100208177519083263251145060591188419187910445857226380901379882065020299574606913314622243728826905818298516966461452278348011865957265212658642742710043679387208912042049251880243787759538871579768151009964977087636307916894383341891800499359816517034472010946860451552502765047900806611254328580139198939318524151271540818154761156241131863661704140753499924025847618240123950633858824293698309750357904184288376997602301756009520967684404253590703027272023338723474102978914856262913127865435651111239301355411144000988721852290534057198306022552546873900775613212216263309514982526466733917012477250427509025600690542034946079711556419172698410356929269453840769438394786662817648695898070981904249604336639029750785110639353740199602490049024434677484406779209847447368297920344142857355936592086539485415453903345974133841147208283738828515405438383318768475214886651025020160055814948060772517566630460621186897592150542427726390490682685960792039781625384017206599975314950260480139644276542378878680690548234569112908301443735849168225907668910518945603600316207940861832703301181959146717526556105273939872325724298321770893384371029701072341573812868613422605523567342017565150715490921178772825526108353491949528353247227711357519096656205670919713653731832194837090323356797996473768977358094440447370346230825828760535907692535762996192147907849805651482022920733041899725633751512932296429090316778258783083921847259658620423033203033476004435451628947566490079105877052079648894270357155716158082738648370690522126266298908016347935236583352210067603355911523409701588135099411345762612311862533231802168402882656038948581647438279651306387416421541448900373989599198431449286671860059404562186864514619736233252645287183916954568653762580325354230580469571232053991917881610883527828378939595948405560887639060985227210777933853615138956412476373577499628639342716829008624875934922393499084750068250252450835280869190808872169307905523929253982955319572937685253654807092648293400786449317668768052811620577410056539205799478984821513221456349228027479339062279309925025871333579924952948405995826774500754772842298056625505387296109501630086533379524550155628239615357997922403417758487686432451857929183573337513925154118936563573431366378695319790328647335072137136639238657617477987019200643347255867886885037788934531694884452513485609226789140287892405939253914252833826849093368528679467340135156144909698199954274773685527187772926642527481696352369384739114911160476370963236124898155276749617156182706593823678924268649663518365204639292129515859629142250026299038133860925781348008395712211718865141357088003843037755909938924141558190310286548233290340214058010156639514107491262385572344121018067842175366304800775054376151741849661345669032720914824411321452146548096876084783172416884282299668843571733636361004739351292458312084584330621335407369343929637594786496956491258845964437719741455819299154644604235537127994678277830933149308122848484475701338319679345708167867095189520036473072076566046574602223920752038069749234913105345654651389765138287006180166718438661908805122770299929422180360593572539402830870055232345559291179934974398291419044583782466385513306721436382854480430047087399763469306146065179239933152788438167274146023796079306342512085225844315197127229629536993874065293075696886902073377642993135082379472624281674198047542790305559577125428450871081250792205585480814328352593812391535517856403498519185297840025233610519259399606515247570663990914407374081990822370703010493737310517620064692226120537598075366023426110420396099846001943745061311708718499078262259650725756371806592284040076371279799807533453659214241957954067030148210892183599691847074879800432952139460436898650570191044389329850081479146687731427996405839537967580572467727976198448909368761498844244968157818457576482694851335624983995483533590572594874287903134064071174375637183579299200770975384068618027026467428995881267426498571294074945188650874299416663013612291990664682402133918045928032553279633204397829680408059034068704458729115123091965073888793367422030791233153085769410393025931391430354955962949111018850421007622577315960792689511440846567509051922210824264029466960053151561410499209889452992941873037564555608209985211064098530127938410588297557363804629136494541791048972104495142192696829906727692053060506864987058640086965543048526069729296894375546572159714341224586914348489358919561091203893982145602850303672668409681419853272041503672029857383387604133595594372945660189135554794294009763147807662900978564081406002556774511413947885456887758863172405792104839824247799002435076468171415094173988588095238255261081047513412541973911105830344835119918138879342384520666132365345959338624889882929208138008631172221119728840086888666916723303263332456595660456630792061468619265141914444670724757315173777826696215488707147193260499066539493312733141927393156112392393964380084235985063307300093817028972944062241794311484083708387635030234152441011816513926381306618368483511461602198890560479998300080765155203091110663099618360312677154417742707974865324556155020498674284993442652739563039506328371811347028294313870613607229576322625086321485844653825268155639060223739787835049843519301780631056321671581897493353720381744029879711001421041920479128843102933531736883855694697503472065940823600263783536890463808878396002268090277764390753024519368925594633252763856802897508379503786876304933101899377311800251158198142490468192775848776968609899124729085070062776868532894282014810966364909322616025401622769253420592983057925996555432451970784141120046534036038642320437207824928769317204491375467320519604858712926905114284832297336567487611272809451899740651283272729397199373424899455121102718228706548096796916053548081890941988322540717561933395477122268662783808106370624567081222094593068008293059773209742145236126347493965239676592360610789359091937681970954440890472061128576089387991324754724618496866223343312276516563927721524170300165633718138172781871331606422599239316288482321313671611120705784890292487526456001343529537998142553349150669302990409487662002851922680011403961513967635632305949266497517958184929602577282540813537475575897654470953650840567587505625476343285259850546248351261001272908028387067960164106180020692498759402841606491914846572115900259402310753122424349050212776708794945180291027189842184698627780597180814391561894089228129262963150190270923463116615922103332233752880881337977033977913864828797639622493731692008028350233043452501757591814280846417759818107845115007362939275346050576158731793975354700802289123035455512732949176127494244050328747271441631731688982020551641171556340382720361457921589445561242646422158351673728639682483084390824532837545338015777847148334871935117911508031685243296553845532293964573194684029790779991568614760548942022688272718236920592882388335548031791815188561215299160464775014211762364800606799268209465864180406722130450198656289315754528432441885566225476872414072843902349385801778444939149311057738194753938438299880982172123293490913959124232623512357855523554604834719007290114055423477117358833379627659151879213991124667327874061136045090107680189116419081958032226860744522186091030171698641413705559893421515618849964239924636385471523699936744057536399509658846647208529088593098503040247687446977606038974493227879059956854443717050935001826086165441513725330605193011056350969082332345269841333681037129904956068538463736745190729327291938607798931084136065123765466305370852453785604980831713068142514844251096614377515350731135450245973397985503775626756964596066038422790555661249513651271308699720716600048357383739698941402009305932095050948110567004136456228725577350973888501187998784123010721960014993281576327743084680813361977618057665198939706989230470091242274318377238138399381587330866437475323109686287891537914385163295907351330546461709093306381423931848978386985179055568866121435117632845894867544335894971370557578095996169978560631548281436600229053610569066404184233457911089029651320584447412512099951774643144174011350037399550550759788650243518686231819560175141004119611097355703650389912649269254240923164128591871476341283134937281703525956535435719934862847283193147838863910627547943266560802437233854192830813012914649601549994463464596319337785104513665424990129599817061414691848949782522796983229810594328324744359836513717231770252424939794800883979182366215689797453733530394406271366112437622004427585617296251401743803435983215305872471279337062057031140444116013327225800254450798508283688145794158134949985519224511848680887903372478541290457661233191761141317839889671904965587824525276100815407503660119460055386517263241593625526808791940612748874850142558975635492175616609008177109503591902844708512249706927596335573432060205467414288649444436394054747014480863334036279272453427048576058980632385910043009740436346296943992201306905948133239660287868094847170406986479498477595424040375506786975375341481513012255584009423901951384926740790587135212849810226428551382703228385372101372521498836365401159604950397405469310146271750085709717159211681457530121121625712376785725918668706160395358018347332694833256786530717976431049323730670493934674707453756175765568049760614381143566838516991089323547049062650568884934834510611106026180291663233378036181966048744412871174178091519251148943362381657898047091187920971313020574252454678593349700132154370200256699056680653220449060695784845344790780692837805559386904754885507528741865558897182006902377174774474584856941118336280831073667755798696084790435425633303721091058325525693791542660861794705149363134690608586621715701300591007255856556267712954536776598239759736677975005018542770639476610658559618960419577402967806420912268128986493239087448049574035973922588243856339590295767585486028477853750509247558494143956928597810710389820595090068394437495712644070406020421650164233997094714667505314952762933761463940089821327981251125932603361460304509325635504548629799781995116185404389427122263946845254127600860319106290715858980103670409868773614001083315251947390515218787488093998871075724270189496023213866438614654062153214445953883153883683828784737637474682449405942788810074779927108642037660758154397759652709586871500648715200669536074342187339864876463021623642054861651383014925681794436571459558224509751370118671166088402502432207632556401399246004596885588338821150436664982924518973576361414431835597075339479253958921208638563743135115262202601448968690780819577905642393083846851812822740617150566581593064798431235833591252909188841507060970311353311995565747373836060997489859427250148415181115026698687945379824439563085199308354788972015013229004535758218507470943412144094312167048100100142317735170781364028139519469394547708484938474415109004194369502455905914768153977844501742359280653436985522331740107978571260865851904694578413272491949715761603739511681896262829706511909329167226786065232668719084676852570843601256867495383405550284618365912117836531407819574655914337163159749080005829056638886858180004466907352670329096368990394914285626748753174842125067925467909191614846272323825521478786205080233721971808427057270847545718991163036590681774603063617480445795421912050133980027069072296284135774860083261455796835543502205342975225790501629851591479926062167966180919640863497601243844511337926707675746645194278704203540638850881568387224934157795165649234585544205276577039931612054474718823563099078563766106572706571894304731229306175193685609573965949953989048850577319652640455919115040629745154029929001713852155238480429435385924246685339025089052690464623925153531270481369671291485365920701402042868243471972576803338999476571956561369459999283349714690118022698047193286511790696955894615944055523829042289947599183588288747564897215209596724253501951664534564440669897608163833939779541664827689129582079079793121178892636568431726960011557106125672353667790039615505639833322160019611582786355024130088336431666056748995905812539927881801068691628050939404126138339654658765654708170912890367039265173167769915123030918183149856892946691546206132584660358171722788944372806442834689183100620492791642913751134195266149403454152163652342199846178781979772944251222172729154291835087820250364075576663848654041347256663576411822828349266314551398529241363876954268331489430135656074843521697324806474848389394569779090992534782014697792807588680264948580981497092575492768454810226381230584548840466942585095031547517639565897867426256264319903895983303135610960171996456989981450207613593044951506359293007112881911178256273918080564914222920820646662032050639185693247450166345510408761567444224058439297444881548717801074452223895055797323061388359571730206865586545126711451723709300469323728652361987358246977631462064050107587654401305332714166013036170509651277336826093601880780282969883747468076121650705561457715327962971650443641431163501375222758971355163137490305131420776045548933028157823001593306175769978454580144864376497309511999686931121799347173884352618971480832595765458507651151491956390420814964134552572322509751876889158484030160577658596057255025621737557205750828134803488440919313745352225251358287198315033925829189434820086863679788192891670637715444866959658206033642225201536081539526475009564317976886454578591319828045306860255589150970731026637200804804334783703294593632920354142015324623618414556829948245756712436621302100622508475466419564050345402091219775869809838414948338835342118912560623842747572256421054635015492631216283161474333709674840537658556349173274038589858641038984201611456164275773621132239512603340857175134618123563805599961532207533460043968960693137460800447028772055874653400556478458200644419326071955514761045589057604304884501487448928662875153580923444323326545774131675451890891178784716888276589387877218258508212371915179443346740052064455044802550544763729948308495141612782022037643492419505730375825464983391544747287757869188381965302138033876215718273359961420853362663015579103205042126149753617587494835242388141258336864838652121226578060880904922208582810366101605355379369805617867612429788993133044492446976030309358185371243736204058863419256623794561612497987730797729509100646937280553498365561472124234148106520179342963122812163725968691519624741214177961717865597150301661440170744644960487615785876222448529954724653603388293496392836799188425313831068806193989729567389153629529171814424417739714905176698865259804319881635408256303377862617671261828350009840652050141223481839863088742111801674871841510365441600778452261892631637763901473696371036113069075332087478353816378597392647498958309094634621005568028648054772608665238755392650441524604528245052324366048946507299126049813370708095169863931175180784302035523963123295460013378587055874933620514233887024209465334787209576759281426034742659481329062505266680074839880210921491308275207847404558559844586032592529628564137969972794921620517644749458475055600777914825701666783124561176817053220811950436282452542524565729276690276295297673795069689856553462738144616184027180488402327383403036765258238720002005692805248256592173448195855255191938611878665177010870905684203917100355136258583302779190174212564950365880895707649897852931099038496355873515198802719095219558328191380769422761731543649258254731647410481378236184612762823127245912698484275237188637766631700767654654244379364717928630784353625258740266190762875310566080218287481345073731622738656731751466125842266502147073518173798785193697188769341532132824823473917761371254869036613551517905049719844730644782270891486324383460298291925912375677534344854117544741213548972844013182732141081255986597846888832495911651108672904041885222559989796862980169069540154931900139035552674285580561664696407433482029243314765654130266396924441386216690895564696692531444156739412023733469055542986377247041285178775648027320298776139798250829853245223055298577975432254313659279925765568462023169257680768275628697057915085724230678353053433263471788456795071651869815928949433941502206925171793216769154265453998132468343401886703599759191560718538676175562444230748635890111232096655335929777816102839452785582502569766844005489321516309223736412859190980760769790615739959840089575010899983755286068330871621922693322527375608573517201603265316714590088604597885907583695799593633574506245195007469548874641334953235951486340714635059526206922843994665002703705908552500603183052909823296869496381132164748027331472984372837760548741368541768921820490460492104069098843171947163088431719137301792063966151492301225442340998491098871757655141263411841189963690648608779166316199454702099205120468493176915597485722795119205202951591683885257812417442776278054771802762974723567805875550175293764062283108610052513659410104014354965831349359901110810328226406566255468973839110932672627366712397253129872967022942796399010878508247554180922672509689797109699566461783953735458612799096450437658465329562626412762210452905120064143988854685471418039745677962049280670660649247888167069233928859755813833506857621938952743256516314184615353993979200764211940754842180369818969746295237253441713717351398212916299363756083183695239306871074582253294525240709837114355475902965851056599471552450529315896478297109503211564797283823345919746846397545409129718637536740037469766108477777907222785145170450438089306388332493079594184085323237994246504369084413231647186586051608842495273366012244702689076401673936259985538458774134399535725498830776967822184613511202086580373768229520357901598413645317144683539985847410624149068681841719646570897165602183148679095439514703611893312907907544633485050140190365231881444208316377255855221489908144746959026058598149632065014711403407768910636970560038829873309533207885424976835047082466962057710423077656524911054751647402542501050729594902211289572189426161075380240409172100114353394578057378586900246524443950462167244839824086965385496724911336487276676495230640136899388122721024278672495164273641673322172766182621696856372593506415970840436410141412948510851546705646250412442129996624465630123256309376010209798309187889455598202848705691555214004084743189029799009552147539347594456198450976622489205705213429012084642172216191301090430909954009789560589648893318784481022328793837284426303995435082260926883645011563577090862826661243519580512480075945534106383875592077109125873155606461574792781738866008687454154422728441484368213236787997709343703157484714342297844736617989432456069375125067776475655653346548274608394899125472443268786436117062199734418408440685213683587409901814992862901423260300060739431400816126867440424944862108571491841772178563031102485620761440117582152178591701705097259327760671585455788207716863605066208083678135527486403173572604964616401471800159316689457593430079118734211126362902322926325375566268228024138573131774696055602156954108788325443647244840536291323667434759464686407307453071048069040315632123105186228981757131248532916249528083720628846295823448795605590762547789927622026180232793603178077242169857854619482333716586758059194072861580340398743950097371713718689957468642284309338762482582381045483718908773130127679715326085439823774792484710580241127584055995957665317171226370873112234497038657105756980878653110426826944529550638285791814020905683149656442643059027314385757434003330889989548039497224857303558266546763990009440595702266293911483167092986659301328205327983451098244613356956431676017554236151277127669144574261972983726039205599069026149200597878655948853341711880386984600633209815126624542143709956699601940044508248106909059567020490420989050522811296607110268935254001256229499373024047657271808816289077249202821921255297472305081169518916574377176632144647202029319841850225397184544578092820132385590423708613424071879388121023244770577814875928849013049261540738673454970613462402497727486713301713219926306275440233084557332888206218066104450041497238920879608222082648661823228315404120387860130425425767867230711261735216576617824714940034267993684287781487166476793782633833244203865995348484574823276215605966793824774215986365444998458112554735721325374460074764117573148014404202820462264371664414492372792952328201942238336534728659187906773029454341833585218433058941132325697498396560180773777216979575946302727663939586335234482141499021505634104696955369444440017861407532809966412636686334856832776193131210045023392093229990321548588104620219865608295545972847769236090709730766347957570122119829193419911574241560104063910496822529696563333974446753312359700181199160228657135677639703160486229058841578829792116376425497671997604178109834998666487309209998330701015402386380049553441546091065403244931536956040624132130380935938252087021420409917288602073735023557767263664466172874239108531632360364315470261757108049941382305582208965185771296912483820349796920397879335698227497034221748125862946193186431216930622579370698144433734624839936358795480836327319741626445438590669829970894290840566517533324616469125328392170667230727229606947568815910866271071749796341146587133615705469880171171869134567330909106374103514770965732328487661968579979006738570009625069807156056694295807000037761829432512366653830318646189102589560041685675141143833390110963462344443477565406737496601173364515456252178824596451329511291500233770102191037176281234693661480903623061316467290645152980254095858108880034229965404192740779182666444412544862078511016731259204529152579521448883116725511515864653171005831804322258743249295619177789905762998996455989242112485257469698418000190533234133229940872312937502951277553598990775710155739036187204660291903395871105841601048368623032993955669916632023507076193922498384229480556944914402354926513570126800835731367105191041169261653324168653556487274512431854023179091041705070290374240355500411699024858203839730734337906341402600362988398050405106267152215865973893446909892667466536378302914579191860999735847027268763636971896419393680996688297499275115064439526220862453902801949601095319309410294887270784629116173416736159752475727079085078058281362766050783842555914840154272813547402370465607260689129807825569270749194210227916152841669649219592174952629304033085017632206372568219558538688320091661106386282499316968447866857504072165150426402098906401410189872530151023343037778641374042486618842787734497150770750418545068654240883247161083210002370894417576105407731450403981179984425338584039107929252428489277590274844425967530754256527414697892599054128516545876508490082419608869555839774015874728216294467851171670680667585687552871890584664428992441402854002669264702044745371210871380254670279022650062144164160425764869209533305419106047762632075833236269348287075996098047779578193448925148593756794906506588126586731367421485148808188962767157569427641978461622478443914805651185917320197575189231023100387141213392900228658460719493019905389035049523477643373403709654866719008823233484737296777437538637060887061577804319683043385789782581074020607244184187958076079144676835377899630902109612958784501319489572734744806800448774162063997260794609553850663907429055143977615848828450931096720667635159907314235041555354142285916592101426690986798059036326023567227633468471277806006324453881196257442350227103875957947688737307233671061500940630010160401202940333957620917191887883236202265412302124008395971503952135556567505131062991995880474459587130944245452265794543238852104114630865584051157923810344413125054500984357312366164668755553390712490976885792971718876427073556736383673477185770163741584004908897254626842707270249047802269248342183098048684935401943720209294712903069863914051818021687904007833732672203207653169872489410960014813979429915461524769439482048852288848080433350595900896445647076499596328844280157577456885560306852547427916648251905885757190050689400604702723140536669084468414618196953503939328264955179665246809796674451633504515460244041528974734847822074742906777059070863637130007789040763103047610117612827426978440382289006180102440262253296215243004824807459332815359415003780391926991302376967324248436444451170381738326430482975252712122929510011462900980523742924147646042836751855398911750873004050411099697822998748903354281707623679398056826986760398342675030966473671388246854381845217629451459265407345386507284645580453417009127458869239753523212519569540802394410778737612769609085899425187175022110013854435504445264235197431129002626289136213070744630182026052416376969657863273213147930312228182673923879821001704150262990578597074657621840035675909335620935268367155719724456606991333614915498731404559113570152885062154469444288428527884869055977527407352095818447844263734202796547996342380032526814051966166800351755853735089645073027398056738330501412536883816999627272226676859645692741705816461176715752629291730067968528530321753308703257850754050376403891412088670710427988615226580161011998268991627126084398369042767303251277867312628564891809975644859906635898365667343453333210487047578020047815633064785576831962772374449103264583501175959446937922670678558963685220040717556932206961153324159141425373105301736385527455341686922412891361515630893409621684194944697081645319925449733206381183478561538302176305859298056728465611176145805118150159134121808971260093890308990632549616915023025333400958138283330502918432122342300867103650815231885600168858997909492112741990425626007713640271129263230160906103663723048838426761792661730312960779569002598351998487774087676246017066158163852246331879127393076093335215789249297671258218820966309599156904904495014744216797689850807253588299305875042739936368927888588908093264425764646052616635023426152573182450753893470522754991231793183710968109338499106818204199301265854837963115529435847088048408048038578913521973780575413485076625984388059451947046082499239716555302248718196158731894065406895605959028397298819420815753624803293913926208393461313014480123080966644049607881452644792366478230851209728584766076262509080723257753242980409146400525335183484576784609231340705659781086690844982951228041489113949875085698867118291576333212008860795360437067030749928400013069448105326103799559897490947840232460609739917356467872677197306908074355865516005796063235699665368198570179320679230788027224330546240164329504736980089209357136443946327021850867450639743201757728668242354117497465675669619308139325339977918017831055228599111736477280493525947609654716458619478393165396830374614810122197517109490780072198887681583475392027320780415638813989154375630901417270294847372205874087684466558139349441423766651624866993176707270381592283171528274389877776020135105666789316296231876307702565001093361331306719620003780603494736514467040550610693515387535014142955704353819005017682549928864992502908981850701395065535237625432578098587110867147281865595383913645054528522993797854944090926677814178449518990030255629682348545765413713015330643401678290524711583610196943227751965080913059547944200536780211497421868247102893701714738134779821078720786494133712781066856533235203485458404656243333429342939811930054133100214013744663228239171647885837817199487133834940117439407024900561515796527413535599472041093580345409342499317045811439034263378814784713499524026380151998174970647908235373459558420534132253500237486228627588607624406257229970879520536167944134946091319274685841792048984817313913190855967009306828351679456828324122521417194494306268342536010036964596068066165287136788525741975504646718715514796256324746827777737787778925695485783808778474869876674957331123993817857340890746795443750072345915974878619371176840177753077198881747427101694893037894223559770273001412153170745609958116951335026514252474604096625126262084817989318078150950816327725686015051067491469827038254493591592803335662306858523937039562748776638887158223962519259767709975762147559054125371765680747075426733153555369283151104466984257211919254098994239672973806131239911067793307955711679093979149886351607758253486122663799735463268052103433231516163223815220312211212111330032168618615775319986646911874300534041351204772823360281165009582366319613478246383582293047946268960779089939543821237930751598206419948080529047160748067057173020504198018070684508341104019088541823791942942606152441072752462638829361982779110913835800314699022443077934850821180274871463935192516146784162829809782648198481946550602236988743950051918010874758520456633770914581894760574410677759770796864306665992939074841824850962590710916110209450695691133540940495479395129058524291539838161035755461757882629301650125761355407287364957737079496950672943896495538146782624645982907219843503526933972420438134943956749280360537205142084641861587070353515659172972843764709981504411609189187477967249065958424730891204348203824370273395961523584659373917671478289949852208778668127308958115908454989911951144320745505432952940850520144462546581474403468723897725597429194635641416705624093991370269933166679552960230695027705652802181713213967387986591469994146339581728019901844380153798219222147837456541583318129788849601255603446018975246568288080961145870631397128455497614318960001089384712114127793377661650581041335690243550300199913156783461251821936969480713233366830436718109822546732497599706808895477512999019310977219723566841329679491896968781877703297225326109150929730715912730187935352096475948458893622442196747704754194239862455468232610876935272586697985408505331089920474125521196735078262942509488041322081085957637429830722090122487858679276769411963590367229114725916164452654330757645145116231875955657271266266110625234900712155866239757935014718670306323307622864455995966924847755533617560673335411693179041706669589622992481847653991242889705182651157997299552418536007781163078425129922177723698347203481747757305097670095973602107276239744332456283807293991038292617572495626771760439423815415114620707342264842092034189636145163575577548271362041113342300874904585623514784283140359050762829179399753640470853005563138242978872773353167789841920321480097886396091195624785062125650406317630348854857672933504449431887283696085058567149180501596630190296341775229704765406405665227815762092483761492636288963706625868555365027051724137784708658474172108242054497662995245158367964795957344020404710626043002742633330359730933854535001875986660903552190586138412060858124130567294295927667731739466481841381667056891088193308549231212528450247593981605615593682122659747068789282558954137109846678229159790474779521633087082714973291260198106354646164187873037117460142231541978341547036118052419673338406217614228905661793014531057789786904797309728913355051607079560782555782823722485164761378363889040380218120994516271926882526091388192350378851538221138505271865122588297051479617201439230478023940250668276194225295479343620054545835474744914207053884782519002937198161036105557583227193286653432594003470176512098845274168091919491113560950935232875545422535843385910429697337064924410174809064483857986785353710082765102708635305250779045849426235278834263338006854683895674648112514844026950281444601089997090127818890572224884978691520518366737377098449623284247630769351042302311739425257746860137857094220432357915632402454315813118716662956954997655306748232846393769826013032619636333948945237583708543723135607476992460484839453202626491592782184048424393630640813311173167944435434724318140851461718989904361423202443302259702468913248193323691077395420914469702432916039309551064335995337201142016215589135758955726298642352717036856173638718339529915960540627534984631358887611031180956962019161736242345925679768729394726355000951569398700154181516648953722029998205370359844811060719378189555270192900125603371381198828753347471919064319389681216548893242696995900059196592554233322374629086328625530893378230354529899551479180065587986301249967060217840223175998673329295735783453117198163250395896675268448248439986456211816631149479250325066197577944530769075909268852439782592439804145250781097084362060320351517813416688402665184673604120520606120692183148174068937899928608902106901736334663915711615353456776858585458260550895166796224161663722969231571014577465223563630917395974998203338055204920119088411171282872569455401395809616486584427877427730479664758990694411031634129986173772795147952242333188660223113651497640914718641409924507132677481262472235306479048082047169961385337491535258166720859437157991663249420024652844614944729143840259769167458974224859537799402999150205858672817742569343764381334494913310540246892380364370685203071965647876507456392852086513356881104335043741747834809223658704263823996487717794536584270425674084489630417986933360931710343824451592324220214173875255325404308584218416402034328225453995926348818606087019630859901413483834799360495343160983044592358081305344926273783446285253452333298585321987211084078263128943564424848490764701136382199743987637274611521653486667270808601583298995455905740290521631544533739473195935512970342789315529680393631660436773861101711386827767985602390287600014148059435177697168198981605651400477296158173268454974229285577963837044803089592115513062869179943911552570623051609765285211068890791954999522407206582035243076386884812856728802596656869722644427828683076021132251780351917379776955394340554283251288639907110887476885130795148278882045978603167695477562569559384169190181693857263042475628929266200059333186422372543048250404377490827066692295669415673394070724182403946362646433287290871964741402993369131915758081008012726324221477495347169507566010961945705840006034698328524123186926884032075727897186605848718314803637191298579850225496043575709458752388270292983561421699902963895180937046447221842875247419553729088028728243712489226134741802929466237932059229206601640599166517509382593765925791571502069835545676422140745131418408387284657622214587862908806052553503577167700647332946966043816041793326925270809238780582321297234194788533138572706249515632340031408478295205137394312046212205467114929580638842243891390142743169106279105816515845998556796697994114149445881827437757134940214653104536980488810004862900268719013791139194159899293608997642949454584630322662703321630139111066164743400488840597482106772179889363485091300386434697060417131690062849082710546792372827082919573029782507769444161847296881912615937612145821341605349253846269456450511112292343202975517046718623320781858032732628072365261026718786342601319944978241979367860609830306751697258523216964532632096712785564265125824262012710957640663825213730467024012908435305307605766686255052054711892431789213498510249630694186509779022635696859474616744926125204500954300253758076521259779303770111439141618838125906411291373490606980242338575449211258140980342596125273153650315718716447212576100004200847631877563803549129533346356681987362814491047232346592299932453819687754407706958956143507151458893731846925810385422080408989587142117516592731052052201959585001010549905335863418280457561688682550547079104605479420904890408945341675828653526801698206290181540780887286071280016382984724235323475604595493334948700888285184910607603870092169068575455337420794381747395282934742204346568357302942363240886456741758764508228775387253954482516247064293208770740011054166817650113263743043666058223787545423106826802439483082506474088182450758357993644881272115674859409280583411961523040799569070461745939990081005228808800174192285688871185655304428727411273211811774808567515496765897192136162227807041237715326909299964202588358820467922957954246415090804566131140968534557521138447281799105522440830243963354726590069892496703759586344843636362852607397418523115354850601488128622004903193268628420783539292774405724273170505741874628844075347343703060861850097219803209999391013222211580924309622576749174109222209442745299197267154652080261170194639156135999370425603254044064827930241418681867995018801328118787766269887673126764260451454460466994017350894394730478416410070573675686470160726092090032089054115826348644286091845901653920086068921899001513815032280781735217349454415584819424013592517387557181297578720961544914743297768873270236319376115858775756637263186968995148889218812031619619713512350141712071408964272145598849367106522479652017345120817953693653272065664319345836724015031194319747578712536810943330843192455669052460987318151496799894132503795100624191988380333885037136994371779550493868004339594342352933477991843401552476558694555726360443486469206919452091557936588515646208859787327060048333690660388854677615928882870928236705020975265449509598526118912555837906458142750854775809844040805702349122841514254444144844672968086242570501601874743556777081551269148901968861411440844826127789142046698208419251025739935684998486609134579900689808783118330009206881078681896415405246608190578235876956184296884915227812487100928317143320391303778807440469531098522265699868804886318000340728406893305015318257473656543887336449546297608481939636137853938803490670168042716862262404736448739952455168651869839215491522679963394318688958207225065170193525986923907073117690856030795613901967266274874232439933271575909196922689289587510557883447814709723327403329764277081424818727792665574952436307073825812768026962617979919939065853352435852215506799416429390600945381541119034760852380196830859453703065990939041921980377833448539058925106312589670964274594692125201706875046634159503743343897746386961559657952449628529245141159815001667906821754878931276649123072775213034101428214172618067690166516090330542210580356053517251040398716444704359722223908714101919584456753914695936245574385863800566341882119595929548803252710510878699187619265807085675862782209051935087227249411881389227282368411915014696728377080693014537854154776602403810559893702435105826149558095792089019783507858428778312430824496419193610414474510703251060311963056922508296920624999482851767394472122779372362215402840467555384858855452882042278987734638633610580057420888723083235461608619033083593659281946982513731121262227940926409888149566379763762940464655038978607184607083088290018290571995904540858386196072929738978944761534713202404543022980230412185476014653053818503622485467749388535697329315009329439464681411679330412274298594137634136219706047764244656050163786767533258053725470418605449927092411011050537992114076324397237043293814958763171308835784594718140340787975044786829396254680280332693783003441938049502878407119774266825603354327600344550673274245046363393293367629608979927319352658379607673187973098181656212804997028631254439656312871300399049400043452910616982674449813627592502280072919727857124511640928275397957629763259924293039729673444135855671946957757029522015497270787483922671736503586951678382865090438390349963486660793964485275346545474932250729359812019745860377494938942112058049334131161799136518006387365021812620809129146872853480328016893191594336297351758386665484592065252448509705604672828681590553621269895499680362035032576809137870988193960141240339086010634770237781936136051921685796205014833117530471601727054204562212327666538899466461768113205972908554182958928659130440101977407647520342074147285676268345258229232791782474507883724695481120175777792012917690396499735148283462876785312675028726147002063588780767166154910834959329934001682173503895696804630997725297002325728013161507124701071429777086920330117730126907287031883820706258680140157571267363964286501711075391368523280829467210029513851251833426859012330530713026739444905371981266533267671242234461630108158730895576238343763458035213335537391343565953569551843400978025681206834799414424629442446954563742170526938577574561086320177467061397034299430696552596723898379102831287534521542457931808153290080493259428131311346197613759508960682321838225302134876223142163505684045958002365771978768925792305160328746645520875842496233212868153425384856974277734287381680742985200518757440219075120245270703995060939302928686726156809194723211731983351188334885270389698697865372602785767753749721488528646038123471648751532827187037558875686507021687490305494944147173099611400436178150340741976047065634444818963518159240074212729389104866201561392465983791174399793045454696675133653083518582785981234294755885648383004738427100117681134232935602199812912113384527100017968133144942977804632540014469295446392154024921591272032478834914573180362706740556223442734959152746951765785043201782331017222430370158524954994348201474670959092671423744511589130546643471956196884773365764137761049746298922549776258604372926597623294129386249790548965817545802064233697322057899896891627047517833983491519649674957881632198026382938326138495159343552288755398038430155405821610153483529882290945176051113784694704290830315471823242511506493187858314420118134523328079313654226061950625177254107823905688966259417673414565027129608231989898167745962719007924238482002186800845966780734701741501078620058216945073145010150440512703275430634013586674276829289240954973886952778199072873513675990374978141117077460718736344987731950998593763501614715394255026546756641566319565363059804748404856443078203098832649543642513995892322504521065413181486647615074814030776654615073222873452780626100343136255855334383479528269732241966902957864606406991185245003642458059663380049727484470526594099369091008470692228850366839997336080154060745869118151423987575320469479653536723913088747884897568983625020454752710642371355518161665663604768553479947396208720685951461946111536259646458507762772054012356180243770726850579242317190571937339714661725601436007649182451791011859235520787343382909507725205848682811832250488034019037096827955682946412995307202343201676999666212837699791801364878360293146027350967378756180397704507859739583973289756883166574749997455976852207256760906633812823740063223760911675303803507344295853466234247143022200426484058583189971431569152193350168140551724703903406375707288353514745667726521224871002822138776818232713844077647171261381377906438040582565272782664947013619065506590243679182336408404553043165318152345241982606988419623537571326275026199396597752229531897417342849526811269403613090018994725166494039301133698624525212444925032363311995533833495974538178956397533863118543206042391243726693606353593435617728050306263938566143794582382157179635415688518369097143634055434952273878298323352360509975678425830069767568965180806504802142615896267902212511148647229101450374891630654460270491752725960532729881825049826652384084590302458795440554207030172393071012509638845040010752573406072079747170653282860069071773086135647478013732979185696685253298007421165161531784469762807679290805424320527807339507933930958757503568133626545630123469335956430242403334043948551324717445004590431906832747508904568312858389557313431894969056068384488447749881917527867915155678575231292780296072893380168319455945504494505224430121136758930468041236133747711010943775349553945737732989521876774930763365917110406343757356782475821460652001204229477578717148580520670234195499646253990600316513483198546277885424528692729484542962718232214124259488517892117114273444662014385767704651371013170339607228930013954909256232062506928084820077268472274466324452306846413615469704201398267932153204299639480256111447701843701299364457863187016504627568019136492781162151154541752123009659034652690872706332015184705671248795596880152388631257794001328238603181225397623893238766196034415931159986775226725402793114783386506369507199703629959357619533774331438291652781094913058868741103037042667034228869429292818831343502628082296579027716930893830710233857039036694365888169174665649592805259882083183036456817975638246037214263540586313757845014348053009651628868906092444842300313338840886917542265805733579082064326840628517979676424310288359104358069042402538796221921656607497070277468714452388379951208550449232847325028587047296678843514469893427972402576561661888177828332716012565835982667577163405409970346844226613512707779531026835198545267277579338023268249151440633628412986745489808385539958366538122279252253489008879396018439996428552344205101717670124939490232039530724937969975065695236449813605132866511262205821955404611604965646345979705869076991803417826800102563386752125176256376658178597585905551149792591936320509140616257485633376558585386176313202950033644732010339214618422196029701711721075141259810592058167036861048778041848356580217648615852778258818763467644584238096208173001391192059583933858091425415868645724832075377883178277167165291281045131447223568788718402091409635817683198189072682175590189323534187235319821438503525952097789943769282439884617860538385488104802157592191038657409610131329866433901793970976841990557347431838269726427068820841789588617831036854827824729391956890616226824385569255223248111063841683838007033219864603117938319329712416198817994561002395369276967955816497635249326086327163595421111391376796025915267569711750511071825365079773897126085020692787431924983674563295513222283454744804400116373503629652794039207185581651250663291133827838893492714129142122244155850140550368412836340802929743219600701943225822613879514059313635383164050168283260376538041327722281310706830784116572085684192211005657100255254294339400322236532866535775919419739478435037334280982337958387490566556340701777416793263954480740426837513800960166090306052234474371952798693761549683384674452082064378629357491009281703377474358775328267248696127697831948307856817176174055379669045929532744353841846289740153241128515673937838485519808867605594727059745165133220467904573953785541265319238688829448005206402360452866148862281135716842695106811107037362644662817686675306169781203949455354412499798882436462295609820344717227005465571051353613445910147408926845755857748351261047278866564065975754559151816539390417061820084912579050948395904243767117861316962379376579150465508587671750778529443571997878488237583948561028860680482611690949083394664395374633471176919856524664072979091700757062995899666176520150315413302566951832553173207810676763162513500991645964190345992122119710660399482045085179775424359824682396428169861245126770124268728439183028425758004391739058622717017280414817526333780683937179694120754848816343057432107550832237883425328448547777985226001345402191288014832909965481072050173010934699892174446384437887069446806256708697995629681469079769964397120424117868000070690591002675375541475838232238712835546059374291664870053583829702753747403420917806523579627365242956409783828015612489564185833095348605038195258902515909027636457577433034976088535140259496210444205175904759618104891640035871818476998671178214251106680014308967309021440729262974669714059143121866483332693408404088211802450319949634000588976682095718788538996880989257109883246755891014021464290940706431256020147309019866384898862744661005652684428775915383195402984114601768512794716753127999007567963894627076012508862803040912615308035563043684950097252653582527068928181165327610719330427312021759540388273412246362575456443434291370153274040253502414677267467661637346669392477492890733564696788335391661275929607540279787748132621966827673375830196294544022436211619358141137420339605410615598637973951956202232770737302562420918326932223955492693605732006118378208018210256873088908438096916830047967837999269039879051361768109766718884715215830193713442555857479853765415775365870930336779910026896116856387200616896067865170129938136745883614521931995136320545472918307254348344550361870608191945076067407541625829164820001324290433260368380603086912736566185009359620684795454384464400942328101421891483149976780623278001663670471206203050874105158244274924283304243638625479086392320500415432388216179058858381995861989656900021838288862988632521218583388125438857307777915308834064707488738544128160386538174173217047271567756157983782338127616370228265876509695883300688213490172142076591874620254208106475896717379438827836208076490356230008663188588196447858023606544900658164789912003885881464632485067385928035758517369313940681188083873347068722591360319411498820736280558498619957129259154713605875052118847741044840528630112951551870281387189582198090337922260494158348920906836901336544970176873492129533489608670217387072772536029205276323055085118036774245755991471948480157933557895560959453875423794528802216272198472356662649923455710640189472960320538910921016203800207548145440456207012308699975695206206376653778976830197556059237219219200236041461308924872616141182590700031162450293480759155226975235914789743310218824550314023170662227553335536176317323721018857914794024709544870993430772641791753054527877258983630559765193270246052106409184394711408623208945258328179993084611461125254424691422762376974719466228858164142798272372127582980614871618126027234064429004465359891207431012193507155714144808209305246329133477327961584961215666736488614214859020478840674857262944635796017854430003898234368319959186338387562132657254929852447722630800884568202963890080890399667750979145064057267186115400756794997185782259840881405907408301266158279567217820240390679999023645399428171980370588301620710058028848542705819823586734937558412692988322438947725409023796091417436675044764220880916219512778475138166342857533361823900533659839069305772202145269523908584029351562560304623335827697799173716788249822730615093483300668539663978095402646239981253171214379581360858583954498807361793418599964722896579495430272007928221586001896647698473015872269777134912739748418192277347685334659641988638266003440994092973218412165947122697163022521105771133005315523087507815069405236876487797920347469216167294003941690174430506648805999993796619715953328555915876565502830751027462769950677534514168125650962544178439380364064296157256795152950616880604603020336319474312024118246608448687459324255221856428646560657254905636322440778555389608637685330659763299928646532201698914075259266934025234393333323751215322375245421117540474911720986949303220777052486568074151221866626306207053474765996611544170367126208530329488262975672962324659157598283641047856664633335633310991249541302937552787357536290925288795067360613761718649886068873682393667370017130258520659490854825881421954896958392449963206704624822139265686107636534450992847104640130225990479377165739399117501232528384373083767335929181948326426736345853526535887020622841691010713071644379631083322040064950192514178802852779648177172146599772996727402260891287202507953105978763674252997945719735389409461370720828378522230355678346718460914113032743917647774856273317517821321429856727199906110605378361650513239133314485275632321133334435823906949135760565608231387589231218046503052412702163878187474064272869689397309480659345980420979950941953775564267097250924050806776481583100822393784907066587660268793539924842797075073238669549318863771832197657710806421471188949314050175815882478733258972864377747554744329103644119976319698080353210043677327840963682175781874545970567400927289836130527579898773856517046826239042585773720713039696996013889008444251869973139154385276817328351698215902735016494853338959197234035967018047798941315863308297150390426794938629428272620760322126344909450095725478090954703511347390898762435673450197310154614501393957368818366665978860860089838888638670279874447550654375954118010820121571132292926617220526417557522002836098727169860838753671782344582870192171033887344908693266088235704864271982431658278120969454821342101193032343019690248888286201478046398331818746746983520538385147619746695112909539137544499082780651650697802358560012174936726647334690931305429216539378526962194398892366298430923008020679024785845205962736143687380115762088564711533562059490930388679757721321844536922507188838423986533084926929489673610092609729010580825682792311457364688697801876067836209226434062380412546365077444743024978706416863461037911836574837866520085316782179819172168902143854383009377010702382011643191812329451053233950101633123509118949541388052018545177249300288124270558037211272294667393889433539005608741483111087285698621738279467760327517518476549480613166663072989027992230071427436313495869732861458189351196372786670625091390894191181462079086893495330400118220058149354190592063497783043043678349185062353792350713766724017154040676427549071363001023546501783022875887991103874599341039033309807075983563286507762549626273066640433058087968113386251907462488913718607018005659445366562305428331434464340936305285999825912473430369185648344894668027953106650880567161944625190830518031814715340927200955625883693964098049629758696262082252299876681638558147510364481499261329779832073179292882401788302166954947378618063559329822077706870679662945396363384924191266877440997819482838798951075172979553445071282236731471874275106196405498111756405601137304626187260990595035455151888024385568035508730679606151335841203940004944818911784366510348561651033896517584812469126738535697462257859325481249102571938445767654389895838839628005088203149786323750683800051946450257263544089386685412192086307653181712606657954966426068036263281106616171417722838777758502771697997163758343942879539512803009676569078540943566044603589062946106600169269173568545215433476507832022146219855033880407302845829261992933101237455835711655491614020916371203540666745818333599185115509568014026580280157301319311588608281905257355534899295085420232411694542762092084449322641690329135541900809000575201300088306211382760232593941921432383372336734945899346204382851757824855882377044663796705905364303766076515228936108725921162187290420522122332811598715175585733709378876642731781032249081312140984906684563625031669103928913244344147159542426278231454313153856701702766968079217868129925644921195304066648989445817194957315629279078201958265742556359592390552825637955018326893773919790541486044418875882889854653058222361432585305591774867661225178679042468674626199884091464217684252839977529645227386823606412706881518864475623294175098439429492865238634205365052985515096160408218845184270314706169310526430110869329767445822983050055496488545031716146765035876770694801184223336310178481523530099500807241841127190244045900972428637078186972395560706986034964511191588263464883316519829974531812460263358256956357969366598197483413766986977352342472701146387466189617766147056925912929801713110750730184044530687448528040450909877896699840878046647708908818253117374969609533927277195167378683318884850631039945569966675920294374848393020196599370958168538586918510088395016867863637836717332626192500510243368853737398449617140909117713084089855045551704655475848330039462707288246458051498131940081818010365532696980744370755452102360605890475048518064126021764551391171944401726744081100442942859385723810678491475913263993773207152437850806976955281420028829584973595410762450042395057418289481074603237671155204877234047009242766094787919529693708586144550046781661419684921984389110533977631062668073391430792799929157891233854963209072588477147984925442579149827809874160523687520463263271412716894183139298628221953655045839224645528495973991263360411021004752791114515227481613107133370989033468371502295696928350195052746028256024958257272872211543461654308797019735257706389255196431440154183359633395249078577476202438347214465330711347218232714727925067418462630417327217866791102447620520066168170207590181643875182866704585782110781363902672136683778488015717264620157715097166622993996080763133969012124975812035140422135083840866979888734709798031262957771732631391525145468746206957463671705665087449121731251712921815279642279611972721632213629185812397413005731280494488321214788521493775087616119551092591250036783595910255214589095472229175301485796743576852000044547064500640276375079453659528167934379969672727850057514618010510658192320715236035237392419819708152749946034446756701959754697010169550419736671562684644340342813314711554338404539044925598300836144646151299575245574189876424770068893167123601576417299903229527638355793229047230757562125286731434295354028560802359910053020236902786670847080936497926218570616595990173426859783077662407675643121185272791339444360635336393818448129382810308516087781813749196806580842983641897828785565642831800943519022545771530219324762881621926656282380204082535151561108045659150328276755130027656078534111090198535846196791029240289444119677720401856374936478072780798966856617340470952911662485142150778148362518949984226930787276538004607124371819875774907932806109382270584387937319556255656259689062486178978582715890918589829319798900455387833984583236533674169636510666747752676638742182112059858040391166147395365141896921699423710471271815768339632391480697445819082769263261723792090276945431298134170068308913108296035682164387628684428956437838889475963278014048546279596433872591277448945420825325208224722533474875204373051105136913411699192141957368734006704912524818333912390037913726391679931444207667737515262805027734281455834085426548503505930853995504548316450524272259106520072833375513567024194054040591073765098179481507756113683990055639056491370751633587188844743973826535063292024936846730913071776911455066453872019547752224778727054867529159308822268980247424981857731813760089406869945584414907034858965889410970543195023167750399162450368768163630814399877820873947166970724702374644592593504015219601922965072449172103334808317149696731558519702276342336998526024807440734256757506124696545037289480574244660672280820385419524041822728701973690551873900962402333280321654242281751486316469100703148386496757528127156207953378371424560695177107054703747410198354222243047167723764053615034513791575359825497104592815179779430381781867007219160306203732534538966153534923413929530187898051687220651276010953426614131560826673178932604862035154412891553153535147946131654967109334328569611824754452401582191470035229509110007956253632060708870118034835880117906003398464582466936120069328271282045913615626046886074764055860467833448916929010362356427416820362030247973599888274309834433315826989189140833959645923438745528920162311899505935970237632088091763463751511262122312462761569140311550357692428895494820221690141585669345847461995500315870441044769226699163073288479963890632690581542312549581792777475527155005781465931151245782931044343554491656699534927211006240060442961439654570918204217190993631851198429286206481385985125223507517119565660170768002199011760494737450293891455145072105830616540964290668672350497541168161792405625366064767577622021834762215863936538046444317653052236666754844039434785131666852838679756529786255747261516194667878315578686995379334187291584780641090197317085059345812290126774101555182987253334766585437900870432416658205316584516525289044581108024706113017164744183030001476641609857626073246686179402349057921608411254171804407960978979196317414709210114296887900622054674669751554491931999877181631222822530610030122256379474947720569828511268738979421380222963362598348626267686749110392377107466887852869666546226596065351897557030293886566087844477615592359778243929183165844773194491885945817586202692670479320011514192256389454275067004647225394259958848382015208133324323801050063626402427321907696949390667585103830961841498728762593580342524978690736989365906615484767932791527265348852866560683070255722921864834862174266164947109588358241228927304296213341232457866832141445073166422799100691723824403559361480223685619984900710675514443549023612925055566078810430171715211912053015039617364836867237436922391003713111779462415580042598290069349292883602796103035895203658099136239977212289124084961123096999174047152757772276630566731958726323159470040375779133674029976824640753379932766765148411133381790437476451740501014121767075115302749090007096242129069642417631473209192343392351120330472988717300272671827748447314461714383947955435175195185245333545995384198658315635383995270313411091515299012285490664463811561742150920839037836072873762922208257953320316336382473152762136563921146576706796867604574083174357039718262741321523935486013631932051615941390858897774341774473412217120460345519885318105707953931370456021602000256913623467823544320253279303790008987390352766759328550162969229577470070134794359108541510225127617293858529673560314620525662610534867892421250268109802581369051595680733415727864066481354207026579516259536935045223140711363860232616374841345991598220513222250620786783818210838118468814808947838556314252725054532825268687843409958610301518516655270351851469213147568174882731929996863769709364684727759078632505645126581801278498677414567266158296286485412220178012702002613186491380089883878798231747014223175118131719570567437687265416072887550388758730577435081170666684724650513185148016322334512993340150224289579546433798917831564982198251318734991979541459386338154315991625647021023700703664089687210851296850828171759411790640610549352208503796773584193760288868794820918168301682309200245507161531331677023707432965353839147616904323084979394533907708471752064210704501044747923455703330687140361021293313544034022965544517654423493859512640167685349565799050813358991738152724728230485953149260096994285937592899542407629882232723259025439943323186163956939595486547026564943359563545006214672048979256990081734246861091035220169177396696560401201712001375387873621760875240163789689771834731317226293591504071263111882063036188951194138647093105365012238380804787104657427091425421199395775977622488752792371524881162697102780763819676238775069879015549381493567162054171554014459233988439211979742008941219812825989398407366571787304415463657968457302878429225331000994264738536986101916467272832894753540694370859537582880624737202747650668573959169247797395872998536298171820091816692133560958466653624654293758854853342421147909993499267375222730678245623556427774335473466805831859553615170261154524180737035870727390781058537651317698126621024846608648962289864432875345436116671539239746769712237643644992292621235390102117733194932943669408427935227636137004424795728401441637650749830904967694620076503558319782183303205423527117449322613691848152915825826980977037241996310347594680395399042986644763886317792216531882291220974662128967168685217098076054946286838209685762163615881336337528151783357494630445988865873705302693088336910084355477984946901447165706324246791535726674729646627125818052625687059181210367045555576307852797159796918963320400427107876388749815268927149430785446090237155303268745875359431047008868037271195491388372080717064087236849337161339990825803571412347458791528494599962214218946325039714119743556162450890567332189473652875708140336247729477396969447971294558176881824164218433264248719248604739493312682142971502445069704556275172875993769470458791518009578417244003555746626278701994164752106315209153528597420761287778394402899288747398649632706477592148453222306613365848758283382426605615893218159251627345614674521900184591827959407724296894599488685220031853291598784789659797407560998525683169984779735687205275745340825463830951196220612599076269999773124273496136693653622434164377203094045826413256804030553606381502670265576438637690602571754773387334707827086943066299986344564229359292661260055709257226864596801901481849270661264922087312747557475430115477217082983574586160916816972803528737753102830443882034797834299474238869527671098798465602404059172092570694053238112303017574359599452374131137390458575376873655473277769843050285232813197374434244966490616123275605959549756759145243179512201121870741712359401569605671630686781592146586522432317512981690883600828508957370900272335370713195079716039224415891737547831158879772163125109503430974619303545895170814570007708465365489001157531284177698408205809955325149415944893498755222144805138954671474237533507457877797002644820585262630251117774653419929230696139195996751255034885276778708420407058421197661324856743613783734457654296569659810761272789030980521531483371213105544053852478786581796044110506539444905658949720463213789832007872608911233333840654841658362220068829774453588322875797395343931794688970840743822080454229145367552756228486540916703884950856794873804969019438071016962764423571339907711414234259394481495280424524136110222173958573702749060744429759441235463459449083744100900707920845456364210048616907735487238474395070894588511964677580491073617194034588617113673976962820957794937440615778426365211170165334742100558746854893693726036568872570330537959464890691201465050055108771352887879210540478505891397897155827508572688483904102401869712146454232457335238648920877438814926807937565861967836528020123560252545380593842654981616430164580016759683822885284872641925950900229016369107005275710196979705084446687393450927904084078568226294005979043467064277859734840257808244934950148190811490697220568100062685458258269636800132845931038174850029480913637436495732489041918815474945662057195707108185457307342471757480141204815318640251598452840292985760051725509565285415324757432911714877197609184118893890032980740151869016605606167084236786045400620414397735034496339005292285373135550097041405966423844798480088528688958194951871736104962139706131192905787404734965776654143524841057372126621442582216748987301503163668826331400637238757373190531409054917640850835596375696231254441369972138513916087101008060658241151345095908258471003805585010308171479547095498156546728127293422790074995602809693073703966995891018881093573341269853366833046287843718032480490314880149162743570426684279550063739253371419139407542513259578731053951223086497655009875208937023514567993838602363997467004253832459523643300059198814660026799331162131501584753623625917431557312177778652698342157352443298937681902386171842576566636833864365125325893545675225939956428315049965540019619821184433200171403217369375722158811301225897131940529858043183783529692118584872202687372946269115946434654247020683092095604552993000713401697401855606495371320613309851099620073773329346636620673321056622950750204259687540538223153384717387403977925127136216481731212456918750230002186850044080557429082139301292034888498594780464406116183856400162605306711232689207053209506058925736331026261781637068342609523900525640480492128630892362422731665096367743696599650317557122881366486517113545101181485603911479111704092227521519772433597971285602895004987479803547658860359876490562620203727368185722975285519591902036183955563332765277831714417521855384738729690693734698105564123844956872890792358269069713605995236590105968449234382016835241869504912930642033455722505617750435101863505921255268183799859168696784511764609159946813642796812607810943767275899490454806625716867709274623394729342825870632461539412203001777325762492198550376968633670968887197507959053654479241859867693354525293539281143937680306577184945825855222699546895615772615731340002339030364224517087529034100166399889327569546043264008762710465277767209883407985719746569639102221265983600872537509181474174660890513901463809443530668405093528345296038858089922534520403535443397241111468866924444483315503176077242028907890404299127112080281497450428057553612208676518245089165886369659494035882390945086071962875249443557103595277279395670888930341384671756626462336263636779242621743843216839214347678774735076091602368713200305930880174468610935801020078308189583450976134717876988225873137653856060755661273419357850321109990324526003284523524856114457780527647431357871479313499786123827757122993643576118317562601403437315175535456160694302756011397258659585477599865787652242708024001557631593106360177630308654114250897961251877246272943519923543099902492954672367940476965258905855847080795053549572684637214538807856898393800050481862157324138187531177757725138582149785064221276746412745056345442109767712923353733069762465693154187419257294384120548962816009145626664118646164293550275402511517903415126953119488589635746515810141586280505497650944226945451211185988240501005545201643815649584173595983280335892180006295016570027818433424166688917723813579400165256235692352347262023973577922169278154432380176676852915797492031130775789299792988311849180399571831837835251142111907962563060323389982825763727038095360599150021709993346148914567015274251309620101543094266696660600773228139248282710970653225427499169621569681746639839732811402118213502044520023849066349514943693326336881777462138530563833877504886520286011317841285939348400267927894349742645725432980026380872845278272536285296112979655177555460745805020450399710953743837124322929241260108198561264185035434590354179673647760103962102347765946403894340839147312433736912016953009406836840096367597417701909464744772043493009390598342917666359062148383671917466461900949850008255638549027453184381562120183375702944408027055549136500098292751963661329847108569444551526927175750375975456504515879990189098501509148912870971934490863691691927096048118463743899531258413934471841628948186694105837021845854962142814332503862250972089258562892333033903561840710427812870611932326588071490707620374392810141545403606354542624200355671531427304817503088694389960650949602352026443797443789203467434520938627473306724426808766606068887522449799580413086690758047660237853799570622151114668384946744316919498533496980459685975439530063106244721859680019082102775637500451110238042637011522932353153083571986480093152032202044178178947894229225048947540594213966236260764763185513922080108790278146768530293504358256384647918900361588226939484442536360350182156548732485422083839319309892815799906391697430779317456521233458401226204128668264197616191159094301642198640405216315880028589816262999711068969260765848824092641269429472530542781489818251060737541156404754870446568484782525467668223184756999411746186057017011696462534157233356470639749880298487203487441406322252395086061589012809447327375964145009998062722106619631572687506220121420475811760090197522144216908278702027098757404276848930528003015929518382281987284884473628210312658162360684589762986216082453053060039641516685034334596140559966033297705026873503786669272220123275919481771351955869798628233694960014720154910061178793593757720322843606296602212417869031994256643723070430410774581749612972066752435625422862181232941169070575002715551252153333045601095454865437117274889252930547908940412445514817715763461801562913411477975831992323459650544935201177981264498403884551966286269047535302084374008144217137820017212972346212924681568460422904404104925880920312359697742633866963397652699065781431174702154429950322572463359320533132638012512216803476158666597107295511464925044613749671291497314743683006702739721360272797327783739349569156857986505905106545701492159762027726066264656570979971842599675381611781530390882105247925268434942674126501937288524054145397588472686241374235574634998071970196206090631959440336955952294018561042111767905946160042929436171563911860981112399829855106621270535527535616938219725118117419986692988392383783500715058479220511087534661248337486615524568965081623780010289668238104909355178519871107004821514862017669910436557140961543539547414842663899606583748966636576170941475447183778712832344442322677083102358317721536311513736705447071998548628549928465672557336785305061352205543939302334386259705712042272644163205383677598748511189664809987225708019227300206894402834652976241099691386827314508804204333410526555630234143101456398306142552999983164110759347020480196527155486654411919788672647266615670306270726561000469019982752066739130109387402198570215677807191398730343824459058009355505431190161081513821332926003944358788213753661461250684715248058608925414712397437058284344765910573441238621282027627602303807005255434455400353783992915524943440848751786928605866289402774211840752266096592709382889053336813194089517828989957526215651063073716043692873686382050088917147149993076313081121211423544550588756599305551555979221033840791222967086064878953311733590887273446165777729972916172016161531421722133793529956283142764849256375050866153427907718812145914669293921134016305078473140202870930914845071658097961225155972333097022509994073282663992758284953695709188246626712816198966113832733817557597618650415994651740524557092984256263670518922440259496105180896840193931878637356572514615404828375689924324055694822019542104368126127476199102015142568556261369998353361555012566353356328802204725811712349027767149741912331816457562712591919089757347719190878943207341908717646663406724498180213949139954009870559160037502185638960034439418478069996654320097740537261493322050484223740350600084523591434536058788040535102911556409029868790446237457262362955495572251391029023812934836192261256360193704477812118893218556271888895711708685351691395652249985893521067937632946317059115357145772670760464232299150212067977724103040461377767848979418078239244205472879650575244540004651750815282187414493937066253207172784651074977339199630532400723769986037046754132692511068422055387522095357499862363967069735935495950001446303675055337519057259972815042956269351739996185537913530664920520947287465655426436057354041712968929165795280371574866102895423428318486166775302809735053515424578554408408780923217270064045215835312665453918253228146906474766488607029405872048103058176711443622818704387542560203418827172526745083978345843469910538387430160368996919345104800767566103446731269560934024707640940289795186681645574386465374646415689889576277140995673634915246444821305039043270321537894284468448111862917019425269164587290984242814194884178262713380139736080266524250260723921498584287292831661969169526329863523972550040684945348099706083037655213982942744118311874189087962041037168381808697003549549692173422135824783662075265624954390407389933052895977160641769577511900533071401910871600040926494787660388991121543037650539727924720990642126345149865780467691987396690746635796807882718932763201256529145532423158913270016352620024820498811222255434232953971919853286666333244507575096623099181614725372392688511196097158151109087891676611365692476876354156501302254371063046330904628458154655356439732783722630494818937520546094516601802397197400984087559790897060074403771787496896633291227788999177165324151627901339827244574177780817095053185986166953883814428649512356608454872554250811979318565426072410221269696168837567284029484963625280762580003523527666924453607855291739447101516069864855499455123098838860477841117664882068220137209123922714854934077011708992318235918882817394361002176909698455688698264538674473911658982190108155009670484729618063059375397904287687252055307211779633104331698494925153564102005725482634207707280670429242334458019177949578402245652712398912683260983569981788619908370753529546378235770144900137885822686041026752503062780488053758156454178264382519247819822980619066942227774006484358956431578451255722450417272937590878032904824762589399480544166357034200885950387509118787899776473908419096025243603481589146880798176404431464323383204205683406398224451800403272684526496456137104028014560123180428818884688945001379482434336466263504267431746651894234153088660155950101958818771178599050478351614550697083212675173195842141756935402000404831761031193007569451933593427603156950220089648256336584267815229816071697814981761782188460586183929759723434645341317854600534317213916905248915853530872989804404493509407288189976362667276686575942844476742029700589388380387396912188793391794423519470587103172815478835928563947034192213464548491717337378905056394697329050929903366369480516867032052332220171472471410856580863419388531329148487332396031270296592033689966653708549537549375260066401155813576026838235649188127947161381273771484668909543022716143809944402104163947842689836252353983637460163173106323212025516358973596604827382422426274545547986713117559617067932220079485132533306776026694312700026200827882044372698806489324053267959653254668308128785998443195607521725448283395540368492808738526353733329111994767348443878451362337948375406631135992794022576669271696707049237403533829964405208272293201557303557832698623833677860008643143437780309294933316562599533565919587806536562202722759121476447493377544579780064017624855597457911438000567552384932610144342633201976901685811860817223980495571405331403419361099144634132266943258429843416961969146169485060134837623080409568114514005069844879719858760956587395327440946221509947855477171361069685981707596657118079368883177076597661395612178578036029835820018597533503968392840651642150892268161761756845419528123583411739275414801932697776037453147379092943747567794703459235919126386008319528727805736064137752509656542400854874933315921780315762551645746961295077112570049593196195839537902091448306732334223938719984107593262758713414778926867860732672701293750524465324254663278554599684408447446683722041806740789062987161326101184799931051801230069035161663209950458079987574266352650523960276899332459313992483622928952401576936113000211846584011266838492181919725903217737451770363699410288680992852764670369316868498128763053977108626520513609761064102074694527111293626666390133225621471890352024765658135017505276456257534650884554813421795412600920900528552895946588248498526586829131247195719492075187060008099653638369847500539073995031495887681030013693820264309858152707695861490253902986186970025709923905376575052306991411931059876618812248598839771634679031336920791443984711775440118722948602453066308313300680629598239875737947178849853817101205481374537053279478325166261634150360777952552677507639337275980996289918898351407062601291019799303579569843823844227605029335678053788532613351223298579271338223323431540968236133145073793344139167474525943943005096438952266435922493025192272660175546058049307497890912273429879860635575852711268885727768492891027281349544256661317345133359351266395268175940138220968696795695167231967162062490549345321074564264658194155429524512245365312622447057629692262365678025187506178867350575377529745347676272221447079507575869779961218262928506555650294913677715758079420183564701439689950081986650920559204750810449057078469365380197054359700902235958468125681805375767017271313500326517798957729004143318173692887524441484638641341910737675706810896795382023315756190529300186669524155973363751663686835230873349846823038399351336488009294548515952490119070671150338917587722701821442173903094815849721322670021621780085082372065691985815440633694294340730617492535507859092498163273086641919666019656474662855069384756807278167490487503487581160926253593132527316184567727525638996303142081099434025506014120355100857417500588812604590845608027221567044320856836443153759402960580696053476349396411510495678628477465677040395202263467484930702854800511515311253444544236068663051856477250956307397558827157868586480394459821102518768324228954576252576753265953688794039102829895085723831467808267269043120476106701534486652126058753375594953343889522133909533121120950577672221154478702367140708277915061146575796396198568206655806896148748397277219910259863274925206533821622297365698338476536618913797367777806391862094331720944745934783429288724463449791979314351646859679927188854575617200765983862189565224470477395199276893429152065098587283367105621044128621337889597411380409439303438174287150828629505437404409322491665491174364705062779548805141219730130262635960168131270637383531487061162009786426737135945530794007671635666694267195070460178108746847320070803971633880939415635554560094769666898799245464692465036420031455648761269763589304800588410225667257698001870178230074349051173517858352129707548155980285062835250729687101631825042738171112591748335896333387066343596219154116119840087305578232704589944114536110659046568153304057452462582485110688221407557048407114538170901527128553000042265457797014196450326775572417136492896760879019625208001257524602779316979378019203625695541134440081915315693631146089783513354716289180057674176344309273608033313819446173399267551713351570865110014106001048692907296637701876125950483881852010116647305654216581949016718699142917743334469104525953856685171942788932599747413921810734562613043097111646449580119502757992393285358008906993512947034601041127313525197177527426943114404110458139095298995894024810257985406241675572827748108113275151789380453532568061500432262009514763802318121634936102585772114998355994397402242181549915853823558695814311855916319443305674755512705115641214621351556172573475509758906893745683535010472206635572036651423135775339948326171117983902309920738938566682088121758901834124949387521907274807165128985885687157511362507439797220174497677467738675306973090303361571576102573297408771251292722815805171036394474651111758191305321977817798437154151275710044998673593003879596820508530143914927096397035009874884269761538084691599306284716231362834429797494253913486416111118978972119994018773455598406493949273636000713498544362958703457460268336201494731374249158771397327403772122513670655787048173526691277748174863999076669342644484844131429785188476233483720527354086389054804604145747229403142564771033622789456493162775922097951493144510966984015627298853283431664908304158474705670413608708816360981231716187738411829935490933475071283070830087495552702242128403245929677161891382429052098747068309645916713064012005958012758527411555899850063802382187701440819603604000564505664536748186935146474697633370538169964808829653876554977886335986562883438502543647718298573348126674217105307563970027634645662649126394402548281338560639556707718183995989693730785133234448333192360542962388538844853120794661923975314572708797461953076745305204718760592737992431751520283635282296220469982821450821931082461641400861391762249547620123889191069269082867775482607089998689990504311214490866285600953566210026130416629643647508940487867638029332127731679737985323799191187836550358239128374903287487417676434672852204024368251331224870182325911284588398482213000816297761406046188242905295096271079389687338830418133651536533601297459579735007129655199530852930159947549565775157497300133856549148661908239942163132405934993941563561079384969192044549686634486158239448221123477261114707042647642664016786520487263789627866307618995547652318457442717874279535685347142994241116790867061362803786087782321044296093776229925071899825727927749879097634173305885167764932075749134112898443548393142355487506849163383076962769277828899623446721990058935059016553877000113424846727245214841612717543694797816037300961795264067268881440759401150626148849139690419296290412688450329062818405063409307574901299729987611555842648708068969046231633893433962132236904750488913317031035115319456696769648070229246585388800093482313969427878067632767273266356618057271493382732575367554089381916212352814331137995910090970333458705315408240933756263879451536482911087812328823012438676304797527120157649142924620298993036439918034012127181792996447435290634980566713256628848328337888662134904288334217794905862273384441316835380154516225619952711543048940101231557685507326483954001723686231564754248874037559093528499101272517752636879440313875574283193894479945871797310743532553099752631503781935746545845003939750661116321665747899735839559421114368214404377093093131719258712360972246661625591699301084846408157206018190151776756295412823989733356701335900662039147187654499644107223670923512172747739803309267136825351243190328483959730342446134964164431534833710259371540740089015774887607482080000712059461722573592789962012399951350848453349831867102415767818684997409747554876445476791664720785911553306877747462452026587311672106149660711673549694850354454470478030186340722595911066167884472773751912263506278245214933602327520227730578175120124771202894949780778116578974450106717213310065598681458503990944390121038870329878232008860255426286082760423991266134853549622826748905047026584617942420768500378934690035183185944563000917717544048939056748713245493105474820318304400717624855528048546657762041185731632698087855365662372851496880880325382911870657960158167446546397744829029485914612848048121445925098582963393000158515461135937235572902259898689181911290588966270814278231514273978586427865716146410712250146939196360452728787532623644254940481637191227431602304531699009431417034347156994141026850415388910065868623650869628157096697341029486211210015693345009282979908582832878825726821621506141707352400489773069842084395797368665939777810156009870060891834996592028739447952540956773799805917552061315182135776583718161334564270495044576629202325419341879150268040632371992075924295791726204297616348528866550288888593390776757511754562973797529368546728975042681961357921161269141971611678345553318778256703637827628972020176398017818486711579630029027155888518486143733980268991678145782537066232821051589502849987344101574991930589061551343017632186747987266725787950276423258325235313302725028491867713872189793559027013265544815643678601377567042058724391504710555602111523002282237570710681026363133308024148681070327843997969736312742465882993938715241724444060535879801530436766452498637123181368148675164737185159229765465783510929920402140187670781829316462519010921619525069722257871976040282085519232782668046467525010744856892969277309854150139640339284996781680078158717188037207443480001015238298484197154708158366736802810971460921687822871426905758745248798839683216373977268067785201340592135960683014734749373461668640522767312991779001366385392645557986395779978942154520633750244830006638272845107058463191187267571573166832329475590480779138605257373628040344999651501172587616106377031377640669459106843376843321554689732374161347217765390978337692584518907576827585134318049957945251387312440697019411845721449446488248616479175356560614516629280372750051257031105022157743200952666423184039786439937145110442729581270376792361893577998426992612237268656032070078444319249683650870745679388723010840042506033912691476378275551711665510483162974085115721104602107688892784253634683868186362198371906490557265283625776560699769727608919234121931613212494278850191652499575233355980520628591118178182781494785370319247230510795131712300961272992419335448296428443133340177443162263451497290092499306750710242504357404882735521702566358664202354567453472306686873962318287415316213887971824118223418576075695371578579842843623157343900431724893365030862126031227933105289636491411258047408108151973637780586320258537283333494461356426460199289007107826128803675044175018559120339505740479644582681147162085081281221297825150414389987520335294751415000602605252723450156980280064325919119525491142209959514912672399735730999255895184556107251142021518280646618061804371647544987098978858010588895064805311604385103651022306391630689334474321972635073251701273032860864228725394175683528687431290352341060441805726568062546845384116596069400705378389441174377546997420857816402709046958406537702311913892442978401837131208366583618177730776451346844763816903484588977654679622144256963955449356857994537500480573003726319801636248650707561577052785006668986973825675983074227247538593356451308277893354163309863206772493319369011988085858646819211353069475039883106053483142415402890339462196881141441899520018760322726076246093036726205259725605111326546072829324991092350198111475952788384550412991627112910507917224623096018842647692804783492762031522022126397952956230216974474219841966247864791439091335387333731069981880018566426806643714827479830327856218086065881025567079085642158070604702403126876288028233778119301415812881761804959320002126610054568880538012182173574367905640742713948734728903845514359221179886789529630728497701124551156784211684736970006258255988866324177986626695079885172789308608047618762002546913462012673435446616622028786262798073954501412626209302162298222362705350228393801891079746645488529458098701066039326437794445225863317193660988698988610382601221752942307926506064014196095074335671652090549066399330193115434431986751925525192381680475106218840545339453458059261013906483508735819863638506610865959238516818240899815403441994214348069320883918510017492976609331009430147141755368346728456876848645045084499502299001625390047375635631655861620225980457001439632560692056952862169661134660807092283180918988498967199780093329512580143619715941089199622686536233896031045531286087929899313278807524260830124893683152577530385288607546552417872935916045828710998208556618039252934370611735496726475430944088748849849884416285434801706655306701921069277630935104391246997391088258010230905910693452308704647035920563780206446369294574217331608473757902555261926386145353121007839678543283187173707881060869355921760329508457718403181617288685141995780066971997608889487474232242344198388046536530630111270686910966567842292352103955199454985789375127239400623460687733435189337741411745549624017847998177372403416861757211850526728867722111788975064644849470830590696146204467503248583565974310748361233430793292438844228431873195306870340239884625900227394585872705686786366651270287443199006566471103262444566268194618686849686782973129364459059259431304662941196442500324390247068974659118000459166521794645204712158199257846402891091567212553468181185670703299236762648847544982190701378749032155465472199817389344665702273707120481851653339956547343186579323158781308326761016193427606852138730169772171955480521773026993856049763207030005467133214103368963375260580607924054907492683996928379344039764424602668615777507961002830859865629475386753580303842863370089867678766072425013333865049311377067974315281072635669287414557817382811825304500597497771135033345770569778124767150773777618508779815925176109936651531233312894235335837538935912224907467804853761097706262019159980971635602761949626287899933608496079207102690733386399578905643332656184947831285460176219142317878950089928385101867281239793079003879831784093138619538053654860285032263741379446378919825760579343988998318538839484415908448829428353333910648128024528371279382542360379004233296939811214204232716536364395084996557506974443053288670559242619104226101605510716615896814052254994718379749785874321405848841119571008582354872684243849794662028476958610235053515448573813293199509571360295957342600912265436157471749861961262332438394445328251803661664569539550921225030312690376277581393881371858793314519161311986629574694389285322490948653106225646163945502138831596951085951796171906289745136077323477329718613450168753613998642931916999412969888749872965763932323979482483159303332713629478463802182036549382715334953800142076228573432117766760890246820192175315817080112558389611254663131742126230388051350814786977575923625967724789144703578022872419495988814255501698290716557655369791807233568077557705043452091009944749051506547297226762226838758390842240666313713228571054881319970832883538367593755952798040734737495084661194224850266919112944796883342445364796667560881101728815188055688221447140714877643659810013364001099662457334817054066717462796061207575095635298981830734016012900099449879993150709972394629296239944638725671434716844327491819230371946637265275578476436255748513838340325304040349937829588161368329148433025294328695512471179472077010525530118352910284647960168506810145839331670653554574992524154942045172383171192388439541914433329242033591534392466692081206059307081988031253716952359678082807753148551743440647564707561482209167729480723514209001714599497559474185398661504509199185462044044704034462403031206945580440693460402917862781095675106073041640200705549544692970848591999437510517150882508717189168626859078858204683036752293394886470359290342772106132002674014731869882674575792533540256070356115868556281332821608947858567777860983255895247848233822460488242946559038532136652661095317020476274111750246910073043353535340241980807722694280827808358726436243682357155221658963732963967672709900018615564307578752839515894529076329605032346063845414508046312813211247559579408648609169782495167248342949386994291099316190162308604577335741298985331447992353772367833448304192825616328036538600307731029732851690473246227936560213524473690356220760543935278552192841583520705884961474779498390773091745560946377639724826979068088933262984603316161731495637013382382966496477289684457123318514803833754369733861992380414521360324663420351901032660197568880478383704315612074373715447759076291323241046520550083469695175555912375293187736324842301481822242048762191494277590035777113286433198962774789060527859354899110005898787362841207968484773069601249520648540564992151189622708378895081594138571929825030082715307971502642440818103233700301990593030833564008332827058046883263566977030232401716832612602938656615764737284872232372222456471960382824231789596158268537734404768546764721190036619352777244860872663050078703350950360096740151928048565445626862917905355416716466193504287187012547781692439730610928190502864907518912034745050832800034413279711135236843687527735495593864320646850942674210788000065131985859778435260738791708022599417775931565716620864723164405930027047028858365832635707290033724836052551030081810640040321461506103384668311091563619818956519634522285731887970064706880338990356369612862955211031170871565832486453637096715560786052204714173662081205378342448991219999190362164012415754391223452969366718100592305373949560235132742698212852159274660132744844387200886522584111500802655088435914707041789785457610352838028879296993867164199062956966843808628242186230394752778065711700356221245716667971187212828583325875313911959677573055400355435796966695156340005829918348595413121213107599706429806180458774634732446918344589750344225939932958669312941179012384743346064472945903492446069234200472972469880154933250205298060698498158500640545786502213087522640041150711704116869900682336805100042499984915332335799627344380408501612369255655392723387873267854421895438094825466101583254988982054792863989433316849812912165267044712107956051486611733187426913433700939613192730215708233005941403958551289257197131219348285445300260856536947450879492919091470733167115585014971455683130144475395304703084402513501742881097138427182263796941230664673022920247515714633076202104933019361328193633956012725199507222431793046862779250124379347790454089295505550845038781432864213339625320094674248220676028750916026843290392054380522381492851353971433517194276658823299864899872904711052634334951284994446834829193955872417424080956568694667889279951241530218680163252617713688437381654823408600593923875784406798293805049607549434447003870011927050912633996499603063893228936453581823788013399406938922839560681329534854007990640779283735620578985062545747467201640459525351888738600617534918667726711870559577939462986928299321700254844812789869284623194720094895019852985171071487717181727765708655171368343156563428260986793508142132713918631057011625643949403040753603531517150618037771515673406072152363708340088550013277780213343182365746851695474283410089378227630782983786896602451026608156364354306826254237684335338452562865215361847124771788356037232187095903034559274513841724532270724411406357823957940147494043287948573905084558682153957705572238178741340364380493539367934776293887003145047902864433755535153519851901005619809973264700476675294598429127377900784589832869810181211909261438605267377974191562881314904468987054424555751303285289620207134954526594276640054713024651203141790681229204280346370747950974635690410022242950555919066778495609042474754148222871823982728924862552168496673698922682026196677220175129115130794058238127566042350123229043339441456328512095810872212590574139486653647367820975349492003919057025457803654680104756905318582758752573232326934054721252570737385264817684973977540124872526975847174600653334222678087479481873575682845731845016329399100452007308904179369567579013981449294689224315041996605689635436439786650590716774739730265240188707181943671215104849492847718893692913626957202286871240845290742834845933458190318271252285366850985648417510216715593686714638723247965524242067085096857283801812314693994582945086187915028856255613584989409596955393461487318471702474787970695717350269376326641616711031080774213123571141382412490294245142366099441015751050233019789098295444656983859557548378656562245832669870290616701113294144562149603780907149189531102155951233001058632721122110889511839926524005087950622085972164984671313589665454343276111569911766599882024061882517055123402365884973552340585482968198451059035503561323594875020925067963621157092070125884815519933776138032577515279313982298694204116942687229373393105604522445244411375697641088867673286460437638064763454848719381296021621413874428918696474975481820215815286248043743376060891662345062417081502616651161337960101540480881865541023532592373188337824505352022869433535280364628581086436603257391236703459690326246372739710899014932675461371601770901023884427412718462575454330017315224916329700223172045523993040410682435498631811629952075934207154052402780041609558224488058395460882812674773482885665478083350991025007339112561796477597728123790219084689951607126690315920116291954597311188641188064353702920583961650557225468549470605034673530670286952035231112760241480979566517509130147836215944453668325003384681249267874151671634487930886238722625989236096191625469580172893139478821758066646547491114548696402999018537808294399329945281667415446221347691328848996866136136620302956112936979877208103291761526916674597660417284320732450948358671344302391084630070637349901639030871220876990781391242537727907600428029011384519655041478981689093631021534834297895607620186445776198728890280286811304162620838783418356963239270353512083936521777781436612023389033004911314207405812484931339231376100329710289804668183190308756069168807385235207800898019335250299813046536129703713652149096627991352393497535007497916905418529959661822002934201535992870213049108324406033397480025622954910738955346005377698701392267005135752388946546674723894949104707098841789907494942882387652980494186365987870025050439349322524787085109875761852419238291060231260048584938830249742985541304317918568682436988164247709843645528282928940189357587864313920218166638926846036183365368705081980129977417040072367101865863213954632149998935332467336866549872875995501817497120171402254140089342576779898003650986341603780531979402285652523680388331544277357729895069870334834924520348326293105626518778928562350730237047500924383432314139921923788439369070321992712610587695434779165545399508352032223964143567907273580602148306863564696270368229421263514615716153397915266370649941815856892757537725940479745584131375380064023602776504790996529045419645351944025061159676792916957185413673921475969032500268165785649572701959570786073936753311073539353315310629346840228258877569196395973327465990928005726680311454848794831121206093971207113140403558610616617974459778842414090702448348374463045067929033020818159939442374498240155312990323985058728800620351733268111296195555781620876413481928030124280242867959162476775106145818928125517601939313048206955000529330522358899900690829918608344324462083145855484354493563860116162507405269968689354480125694066433562651908373592997154997878290049728396215528398101292689686718328045162898766724826466486385350988200713070390574626119661431219546946924916298764215044912940579043587336831522357812442167958292755652367541065334194598506632933064843554909340610766916567859335594392168998380107681720600543656300705044849210356254034842476351723942829974362074725482723453044365620377399442073039074446868611193989778215983083284940391377065927310277537363200435033905081201806545369033524285463891463399989965734008355928914398975416060287854537179870335874432678653059073738184809810106196978378595806888749655466245607157313666246621352039886377327713812503498250265374691052354928547708354630107319147632845561826372492977808548727204424734294532582960846066751183295297481659759130957906367092040538493663978511766308652124538361942475145137579781737838151215060499780238345893511152951770997696414605184289648273252015891251391961665511060339847923910505193869899205048120966278644545735754349571240647784843796088023124618185348309860894540940795787622408896465848856963848593657685133843680741842750316096347645677715987702031221289852154210288623245534433299909015311238578234206810448568344656707292829359135961922431630033417081715855188784623163874095857785015067752062731127896737745459929576308980078483306569751701847730183958538611497068825195216985992980775737906499560040326154858715236913675028966893128415672420517081766601353236022216630795633777297751231110948973255295991701661708271388569298961091910546080594597632297270823017521868585607909746767702095765174793506710391924469092967551053340334132855035816417185115368249565995057017947875208342755398575028519256306131463492535564549996608191987444169161051605498362832850231123944615000278962431706898426158562198977547639742818851380742354139378981995012322449144184249812208431533780343688475066708780696659924924096887858017239486290571993949986308010706319904562845184660613122072088541087381108449178643016040829138205419289906140770862457497426679473066336352018386255003534830125216864286105537175758978410056228595921208152222956058086914758720870976964952498677788865023933169826779965232008100042679779459813836010783781655410895246428984854796758648896798112148277562747336157681054484685491010431779534281976779654482656258820017946646899649389434580699450511764999640772715731871539856346636912761283725952980070941694698649526828764251917241512257917407893845005031118887835338319771681924727141393042256192071610335930561354973732527817132522451383477067916069616008846299704107410136690599628838334732724517596154289884045571059274062074093397137705043937257199223256554283121385771394345237765279198508237258480671052821494353968724825666200561947799057912302531871491995982080150664896204119152818308570939910836242739792150391177803719826497273146573352104057667725709338465220191842550634545509393483481552254508891969541187113998853152336223294749739673445431769098020129891202799917962984980506083333576169738040553339709046387998268036972597222779374896905851967025294726552060184987540111341526016990448850732799464622206967584122348262348373213732043468711300912756682611959021675584013119885074725823589947384296208694907206320800965476492967772375499530725857648925354493292851042547893765082381191579046856009242435216621865344501894532711588581775802358469985330162347837032266691141516776951812404623985141548769837145537584489400408571029666255361172970821030875123281074843159849387962199956943769194979077105099727973103119581728834437081442292683672719049527711753288624152976203766589182025300796605199995516984956244361400114428174008020426976615377082386078257519624782885843952280654999288266024048272110931278131636842715415124409672266077393208138645457244318161003798065240767117752787745311686474922855725829929003571663342558958028370617944377815233626401147577892321356593668390099380587266425642328804444221438268395157595637472566388430323719557868824241309574437319761371249473765273476690867499393826094862975180305100121564841085252720980544990435637336125943703182342386959210254840903376663714072451386486586423020520591480630791360125189318868851084233986786687112568704851130639000573146727915216404286541233931586615905685448034041547367995834343033341439041185090154389933881952711009778099560136309245679797161402492352091296473455441645256457247443073651902670499284839078242411253151492653036688224783898232819764510550669930436771707525117080452627364734769767070057250585718420509413286699669832881790519884237919378207282710832817378911063851225327143539179454655593099869459034118648234340130380963587545033110603761160870648098172212891930225830450569977638013400057236032419756200332919250142561554237218262839046537142400716285902392002643413623258695700242118211233005345609151625771897309131499297726430781794673259130101377202064295252796526599054288587264746241140506147721941911801221491625261712622808291255741732892600077032557795382822239827082521744526032075444576618737029532009097868787487435144515581097259495149954197211760409028048482804670860096561198217460743888283967819716753867453260293576680288266945732375246179762910998988253428450322934393725852138500933995489204797416644484729727659252535856919270985280091095392893352171874928537137613508889028522186086739450130135966413507921446361050891510949203701843852232492640536952458101789976988483387072212980937129995137236083345588952394181432860643911694392875040380259171182385930677826554454284186017835940054546471334475192673519756856291360278191148173233302672741299140712960049831958374801679377780617133659468041570457113042676015370845116326013182511110975133381710873406104031887050661943200185170524862516447433562805624564120491624110496554359723881021400102532268212666565508241118662036498726377453064359147792543066936997561568842061247121106072449378007214945757889378875656057085964223745399738927227163715668079175610070606091356820411940336352420744035500550758736410906292227476376363594738327725353161480851544555159842748655165597708530597030148975341865273485630815613081756174426610094955833379501337680570170235661954515103440812845277980974551016549053158094913698639598567531051310761581445124755691427383359151835986686530680938703346901474547303641879560828022804008134156102361335043377798978214209399600880210426852243437370865505107486019976300560003570869882220077014616645358037776061815199234326973757921891393068446131684353949366119963935210490366896136213412509801270422373024906959040831410288066266012941325849502921798275947978670583379711320381755473710704585386284984360592590405751213078430679340999127821561980955828929195677082996688905446148612706448962794510063953108267295087799952545662791171954761768275637189761100354998516759155955003294274703925142342611613644446890861194637311099843080642408886306190423787393168204225096995186081756298175335026797925001474855549758978852659590078572201749994298269531277888303676810877417881344986111540683750081050632838920700660650498503880046340200509533708498926940862216726702325874523291590535700790245395991437141020696453878201401846462440596927012263510679211382643053662694320656494097802163213919903874048999733840952116870330191297158874898559018224249229297928007085163474637538939177825680083590881538543869579723112848413390240003463679397713280106832829072401351185024270151430325001815614355785765919810150478186611562448777430812916759846773315687956682393386631681805445930939748790092897056130654198544720952975301131673215632306867657685019268700428904980420092121587955205357403698286646598520804670341685327041814899031325461712618859497089988964787412682007899479414605442608496587876780684652257875338040570941184839451426878213096156431514437494235380808932964731025144928290140650207121766729712788403407315054453057072868853795654637354512042684080958100658369452522819820013058894867268602928911396004405199981529411785522381456016947094298513292512412332039665440495774156404796968009584244086728367951173131187722357610306920458105434423591050646951998138563044021967668317942071280205427867691987780713613949336686264807203635460693104153653619164051637106169635036229381085390343158076986288897795118282700153192744540383443469995311271200726537602443838173449234483842426297958057418006660307997573005600983463057938159629802070451832062481702535403419606629510077170420155826705797323416648844307864058339740797198646487444567303468567418252650808114648831625842184574779376479416530923343925221697272845184123318945344780359899671819944138996467142045046971097354691288071225020168538741631507475146570667948833256594923456376997738384926189663538843834617030642081500184299414418997995205268917404463438348592518137468606474412908398375826384400127984527812013662737855198310305924834191407452492018346044896843543190340876239829115300427558835369254994276986783953686358607224231039669459110508608164616750993607418073520801566956647414131156038427697794643232411161055413702774328636473167237529545853150798415408802238570724723980898348064754872610798145004400722433351411597273339154084511550695698549983577390413789867364921303673936314256964025796312015261414186309739605859372477308603844082859306138153928922844451675626739136658856610405534835301810947754654402384976735361550955913652971533696680715672826256652128404529208088488199194753655640865603495023513608407834715768847145438839907276348450121476899254977943470033261470635395916532365406166732698331801768465154471334155576701750370963214932443992317889681827096081799534642976709078465276761214736940265376368500543252132084152421289538208581822162179624967094850602793228187183512438155763715102601087643685981995436622802360597374380611455660825682026685416408596407791288383813840557707089701859463611523060634060257714568090724528360280273968117221796175580753855238394950179826807944950948683310249146788636065264081803779856587888508951391658483394594085237090535974318738149977609240591973130122187121502467298908397884301840835462959907677957034055698824429582570739408683783775443280694930353576751597300448571661889018436753271167843126352401741703260434557799890758632633481630598403216374462660925999151583510123943209804932368131981012862466132169259255615192834715250098308312760567573031459441728311617509040515684642151908968907502103379637643218427469039326257493699422412449930354568595732322613303408854747200752968018217912268214860275370308805732866930479540924412402407446956552882296266712606469191462618591910911076550499611949362116000445138947755949962957081171298941533190956206166522703850651148720705329094769155641970228381618596122422966119534759627234146154728457565970155304895009761188249181706720327776485668063582949593759794866270582510898844654809344847686703361781478343873623983543698567425039890438758154538680591663020270625760596501099342904539742377624159350428551018381950542977000446788198132211380004300384484387490462979906410406703654998307965299468868067054458007459719362474076224505992706983621805570977967645904015584880556955612238687998236204086193816098608026793291738188753750009130074788578234256651961915400864791651099724345760509481674799582484813518930404702713053961049568991784368546965124469112395227641252051015906295778267949146988447717008473907456402081613990945018056275441030170082689644210317610905111169618229589536572574223665080530313399391703682052240271214219764079739621450786959623748908579111515138916915935319731171397910423605002323418831152937855537986363753507039478830207646124542537606281586494790030733024883162273658444264376121105882647240099676330008030132711262761060440326902619158982414823153365116026426892562370294420232452295474273321694680167337787463614779690996955667484505346176642891410422509855933656424206684642261140205780172969764254879105736929156638236043830673787378081470002573447991435279119871088136114481767319033313072068040450551981822201040400616611913446114301231953340731997149970628276673539746476484527211651393802639582385221194234258029531897670155087108445304098093573208418298478435089180909276515736999036467681182580772822451498738635297244968083589165235063686968791966106268289704044030274147538874250742693556876568467118572248327240786251911907152389771676751856357345061187290697375250489460267047188920509766515067163560904748663840976033561510201149009016448543036559186057588427668402412603197542879247452531570920792122098307573954647847266810151988542419927474253860935706031319806087506107438936005258717170021014197303392788802768972571599674343052644586202908715658964952766565952969917666048004739786261975761311829607671191148418567482891311726910370044196295647417247778999934778756904060283814580888491640275543406394148241461724959847410978403268255362179954975184484143284963853002952691261515924511156552662909622643758725962972153099282155248716092686515328075636562192108209837141715942457707025371753349924536775808046850223908312332771888232475685342281482337314280476726911340133148052646913426874723276896000705443156216716507400076916917067462196028011045742857593901267919063592418994102661772740506013285761613157439545668362706309859187566119589078285218768579270516006721149240798511672901728113707821476305990932068402515782187824023697695719155024008780416949649583353869240911231272485152539376991290429795165356062151908884928949899944153326894346578713611385672656937865035801573856578810183440733245550495775682154441375184744901769264647180050458655419423925545553797486320697269225088855056474887817689275590648199334696294684785704071456102512434869887411983056817988537616587025514212963260440423431463880291971883437680636318480028429045724429415931074975421519645138925366149381250723122422693671451379640596548911366601775936081676814960627546014022159722468962941203292264767342869885775336682327606506386830415274718116418536476236366618416514880028249381992164158882755115627117776572418661395147812277093917902864026383635983698235928425401227204274177209822873634485976095660055932069046660227834447990722988818659182200445305852686879722240104847210901316318205437345515216428041643810669502199784475371911258294742992345921053237544328815347719076119446449611327879571196026640853133550559542876792929871983572085216396901265962620768008271757488545941196313523896729390392242544673839389320686690702274280361392307271590779433428520471598931419696550362250908259838549374306686866895442975568514772287769684136771053495489177397801768185989216534822966889738882745808833293220855417423236370089174825341125087553941135113242720441135540827330205626941085087831662359004655586601981916147945535588829028875659190722794908557440546841112301584295994876065431578077170190584830436530100858106578883688110101956628214374954589577854922041277407340850329787878731737712029692600452288890199467204304903374370291775597917395403457991560161552708607361739264034618123144658463865278022310312833993578721489393885134911561399963423928826888345725098009395983514278966751201487182763314474401303964994383286053318867553124670785832292900447042537952994352818922402982762808377504099435319708714266093651358150861861291887344892027722041023328506059326350598631854650977432356462556823791209582283367618551049689265294833732084612418409346637846145824470164915169897955743773621710054507469158980778800852344826041408717358962949805646681009330523271061336449991394752470892005502475665507705146933126303571983119858855461546266612920907153200345454914086584431038573691333828965469826891403697034325920341960890704194557250875450414201423117355152624110899315882829090338850797602947540796540848065381350227510725571447227304513980836640396025818794052220083133495780346319472702274970193158350688030221497106549811791804108925265231378321678065497774399408252628337457161975363238314896604397795976206892044578284841293694111608781494338078642625740601717204924316545335001328972920933381153446565790027096700662708735392767351517258244516271780938679974904281232442804958942797013439914982796619864329942013994803281947331296793619555853968956118043557710326626005568788568379529527176066673112387762090245914240560723002900142183018861321974150877956182878944196026862851802072619942145358477304297725862441544126061366604913776325780542429937320482971299956837379653693140369289729659991029330211232336696482572023327352357924163828762042994283494459103284338327196761646726311771595594539687797558380822249689224801403699973521013233209127062986998735387700558134262875155806248101023670038678067512657004255025019093305584036572662565216582402784362608927481994417551260506887288363078947478053904710853051031739718142379067367320140512450210538608582111696127996905764954476756697925258000594008921611672560813715994461520354312313676450990353938633397014653310166331554484304947322307507082363715870046900615136822915230426689116542556761807622879978299092602595824417394148074504960770977718596506747030908957424202674850279184448388162069222526414847228182917624130860603830784474184095266741707615717921567611892890947599325770015978658727200080363721419044263354152354685989890544313001300416598747196297621471356331448523840405818959597440186732689945753982965756516543868064639285557791717518024151010442294478953274092848481222845683125869060978417457879764181682422602897242507120855664412226802143025357808436810402082711725804812829382858978889482703329413526453655800038093726819321815030237898054695328974715486576089044833607732133232845263291650650964477709765211037113582346673142386447224364657691898051060058168980783965555494607606941135930261418180633200406227021140546225303175431038280684609050624438238591223205489399889253816219624707517852258932509678835429211753641556371156241211422726074424980996158866883885223018900021319789002635540187476218350338109468901259313386895972762770465406093110275780263937461964122450313092293314985370871471580455800706033372961137077974333821008104626565383424280973720103428625025790743034929305167066494129262930981393282366608324264097884387072803472305350773838213045105310283871287398292379973270251504597486726253400385381028737638909901765526511279006373249529593244375673463064081384825547507144473404074730287550935540775166413757248611577237027536872154396629204552490915381280766306754635737038485635461262056056663924806690766788681722333105598914587565158509233299877695671376880103665854364130097793602213702352990739376247583089839674260563459746837917729605124035073331075128385332984460883123111724310068096440123885669067375174652138153868531509090454445634589440078159585728911003666108686052003457981734386068840523397014743596656805940401691720762089836224449038168955480859316902559223567372941723724820093910571064348436133376691045709565103268253026409678124758541839284138727380993404737865114508477194421500544470961349081265014601601987020189464910987673775379439735958955311077246458439591432839441443039247021114571733315468949808932899671461627774414012743524967965415433182339694671766414769092118518708163846404683876682879582584529016781063053886548872721413207022927272771289457794689976876638743413015522581204374507456328223864636346100413074789963910060399870420303225355420007069665700764771547386594960402758807648227006370949899444914045084666200223136046606852081404292561428857380441298716978969529216587145907087653909343663825261048447718901383461805142318333144537077376968680281288548140223163075491339912947774981030778443774021022145553022659274950561527127288637787584268086873466093187699194479025586005660739883556281523279488401905696376261352185301668557483119782801889117191128957358893546770983999590767998418974128211881396171792737609471665197831559167459975318186868012962435946367029236513101280483376854250000429272813848403787342753204205954282421443826194864669649317440937937979193255272020558991233315780825675300406118325707805700161629875424493016855793601996559500636208607283536406635672845761850003672646021998777788926952145541250792016337784556288303239360204909733713917450965581907391939841356103454259907177271416751473051562236853352984102807713020122593706918073332582438267578881141257341911951932723384503984937781782260684066636725024299193455617511036352269656767224604736482702135521582033365903241342329785748125495121886490855787989179687789231767753305804731132504612884265366830551005012602947659723048706861197030115308962287103837002634841936427801036980487785893327378213963659721948626831167279954758573790816042948272718754451990007919911291435449164114076546676704052692665373753689389526518475394455151489897241057905897914049128165576653308070726671409546594803168107160310858442670346495214570435298109164002869529210331706591010420863594837777058667017531903648722735903185163954714621390610825270075978193482944247485214773161041188274934760365190848242636285499383913046938215335050910386806707994209197178203724148560827771831236336186901443336704723168377205715973427178237516709515015175948821361984166239819947196976220770544506355746948977752352906620002726944119252785605837966976494824709331320859528855823652930500595265949280486715981402959463131915522955865080389522182675109000056828224936648070356183414178560233438647027950536117410713475806508129325023076015915889912714560266102064367993412772117231827745166472469597703770496738983440694431234672063551547893750129005019336069880243092360463326323415717024428662156586287231548891650414906164356152868506619009120389654050456596126670520487686077088669706243429228047892079296471772786031112737705028265539234185798974173995020825817568617348353750169776427896181198866939861285919522008826827710663607600079923633992535550210286188027405274205679219148492527290108118638756637168535522661806117611713722977315451481691984649620150742070486551105215958852651024486873743811758019341667123437872067643004796969458912948953525732749903713137262510336253159170612693388027232257012879945707437422691071960759951394812846583722390385866050885990477134613452101827386400639426212419873621699180043119505790136065755471995494869372636184328934883317286048347764242421390315895623323989862825397753283123005821419165925433571768571545164735216087767299790026146796398452260254845573153458755681944003453785656889786244774591514932027682186392304355341654160267708707340611031906975286287251925811061389173481646354986789370623665100803687207202629941861258088358153895034618360900379830883355191340582546931034304202218655595946329060915963444928799628663615729113316797679090816004718177225188243214313956444731370701882777320686549508206737969252748080340691620703049462800031167313261491053496246072529829013345712575676803520444325459169591160029998888066548991475656006861617664813661706187563407272763494958392888043823344217003135577459774991076491894315650406086201935651689942766490971536140668320032828989744453604023967413257877780972882884144551819509825503925285359371091990437456768608167512005297552097017246397102829076775376976241639801506413088127093082058100983872119231991145327000507563671168887886948895320557044202439567628687935472523916897514513884449519888199373273087220117860065323874726408823504976107102152070288312199082253089664677249880147244077847620215646536643317239962600832396251127169663918725849961578444593131604091013464826596771233458454274773904982661122409364606536654978195051855747281557114298624330877191964897961691475974535029394082139416407517949151112033240003711207216620250660958288048404080849034342226204401994854833421080584448718401155089447101102267351702079424140413882996141600175834971723123053753104133031180697159141429043260361822086040886468885547025037501574825690486881316017360976076046500831910752536182547351065691010507377947792637689951276946250416522806034455340691353455599789028241090515636756716198410684163176927290280634519121103405803439308605985014201054488362924571079781427875585948149235826159151670555393373354852295873161390279530051448487230823770333172991120581821707640541010890259828269947393452673024529953335987660000720945338286733909492534583644484226425645524796593584405914971453459207171747885811428825815816209433523393888947755006554239722113068571019666920472058547140478063588270610393722795945890124557859998573233667537454490372444009790647861974782078638240270676976090463510712771456459527157036560011152407950877895233456414963990012479439098992515944077833348290443640993288572647580017104266581308877750001304444554730291264419668466640811590032686381319327565569302183544121570232934401584435479863834660589642561740650382321042056799407537872767459636357405002782647099098124977545894673201127754456242176222544520557451963607881408860154291226340680475180049759240065453870984434675025254848912115595396030963360382069032135340298026173924435528616724710189901211721161656255725948442716612874405722313356796766759185249346103549687771192033762831760916751437238764705804197512381271136985106207123133394010449997421855320317286167808689191554952358554545462423231238816952079515770517479612648953976139116826764888742192554603365723330780290390988898373286493467594610266917455484386105767265359812837450221561869650023180480773816998065619182842476875483348236640782435901453140407720749659612963765186832773172968181982642700940833571865100702194636908330792052081063952855175622635339467918085783472807918089454069761910639610243930006212274409726273499169240173247582704553451711031439186882145007306724119796515271373224564187428174350316109217463249987684614713287235149718915166788667278160088417874808830803433933975413296978080383902830326504339622556949135798005229854218316289053517160754381382405265210487160417427448398352544630093411633904779436277088296386193685071336834229355958379110046669325332861882834269073969191643070275034640177739545042161988957414424718367573607190077325465820740842359067687220670345461450417896818714093007703455653046025121548853408540170882230083367432713082782119074523404271198458290707892508063494572447804178991715005322528814990152706533384352974767756939778262701958190246310709916836163405705983584765862637216274382262151447914297075239080705186055908543790603275487674086250751185717309527177851988837615324706507426705712307959598068970655942573418480037661685541991413697015951923902631188549010232001901015071282463606673591008887190261291888089897399936639364676526757152025722585708018959880945143284524502217384590807376582332629997423122108594119514321163312395282496100311298744662687064377393030683276859851044015691127565104109379953996203269610520371933331858082747018463120661276704260495610593703455214986465382306145099956071049408109817583792585111441501479917803236805313963864881372575595531304564519053081116468464379842888915588114697212917837063106406051680973549089816420125923905514184370545272882062251281841077985916538450682170746848208122781694810737289520577229582075148969904490087281251069561897653264744237464811217110232941413020107296886926358975874474538733303491171269767873664132097224643787614431443094138934607375995347522795897344568090022924397254067748093288557510940276981086103060159742437909175540103228525509097475998252555539966779956549072446859048018231445246633713819361142892595906756584483923301680402109796869887400426623623375236202833605832057984554786949303879277940011707331835542130587522665067263237837743087873715715501595971398528333942073883671070498207247205370811325698749924627539504776174622344374422961757919123178925486326053004175637176331206274963489856595718391575455573401989957344442816998994118514997333711936850721411401445897821222401570837410487351482640877654049674856255766094877929313977543341557329445416745711036138081243381936788973620215755862550629035256208313970609009347036494493236484143146551135192066802511419622394122029231680389997631996480285010338366819629276613738943292580085864237952031510044723192101088161564353522523055626966491953969626723998664411247809508030825197593608770304252056979973874648089874675961434794681924716632430324627150819482722480556763705173447821421583787604011935673169270289777269844441632664450505846711527172501889566414156650795423484427152084247468344099897915509404666962105414788809826458941656050136329284212648030766211903785880133179284281565673027414788095442097678865468289709361464494732249407795099729643251534425694788264980156626607218067226726097964598614021648464023667660184842232764768747350922188936531239976095701014394110396662588840067143065942185792729800799301394158472294375562981739317087468249990677408962190564753917401017244228571006262979954557269470385946398743469011381165594063150167227836017768797449646205953169760957456938570412339622693796338449515189822994910543057172742523201109235674798351972206263695139240003066235397994630975276752581009306513904547707656287359401779201868973243056178951309505117796923084869716506792208464183499822928816023169777948951765402162602959544714848748986598697883112920151022559509673840732024807063922231247707995472800946609416189572564702185371145308277391830766315064537838448681024163952949835137564923869727941853705439042305576394649518918139568968397689701401637286387455437116087583429596526356806390064095158008259338885795661441414028708140432552764307136766232488937806292455022008963009071197315407007995312717091839607257206607317631262539504773826812469159178342233025659321735623645204966395580780288842283565853468802231794223426342881143635023715625309522350621493060836632940139595752870533924332506578457869927327418553725727174371362484789318956343491185765825879877438390511923288105111580494691838962099087293964844905125350153092554363512671106522918640044592329574722185193138206611064758976727681214939470699755097627868386074000932776996596744436919062070865427284811543091363157444882858313814575542796889151598414402732922890988923014951403153684186366503397346731565287440296527459105386495196576642486640105195853022943417521499298520130889865637848354789999107427283700848560483575898010012184788153942896577522971443259801875152547177962669306562077806391297021519015782947940811850974180919787674609343184975270500894532498565558857843514054737380843922287037445704066030802442676978792925839100659052045932604387044052952033207714541146715700222536374791311844380815874668736098265184685297238744539331337343033659782118750037293387425330069110736749781965349422564880894893921673998026818072327523386077683077921731449521334228216283811290290033021730050058252950670684024134070668550623883271275856627573634024063680772407220108683416362308424583330046399244584797822787317875429497159896674301339449809985483388565568050643185866017938987412906941184227785133743575289563568438340170785951105698288372040766243064319996552796498648603653764380086996998303233115513229177785538081161503774238974401888375992118248510775567237124544380135594414035603115282092611576231188745631776512035036651030165333119574025162624076631868129430254919292833689007984517169043329401586978198009846127245397508013811002237975585110045827009976087367356929119039487005602880965239161921353896156213776536395186434331634715472815125442065871808525411834911762352076446306057345486886375255832639657108069422055194855713130387660275500742360715367428913449537473262185205382281804584130835635682984514502160236830278275258243014447985246532334582684891543026227211762305239752381706112422595024859735232481611064729493148767696093498993206222751367727564777438056279870274127316582814975503970151491755359636205940027536651225878903861398727509454331760435486701917584541612776133392623916414717364737642565716954550841945798995898485157925655865047725524285078904896835707471843754315425155970924266800099905651109818884549638893115690746759948689160201233435048263515720150659444830719868588067795839911092340747364281058079011004633398642886699734219777818663037571022078616845279266474690994116394788999023822270843328548408599471965766231062277679813766603217362027457280606356518493759303248996072905800307803515236114215331510042753435908995209935151359537397790210168247936379581261370676763824283585406906498519364147193728485739465748047022456879128406218829179440982437690068619994945026125221673592117773055361044664868495192158960702360055840439647844658154574439403478895253669285449616135730920311954842491444459469884549330676611408618180378936169897316125261093992003010344105665220432371152700873538318003440126129814338263601020392314080835474428602458199004919474097125376854066285540120425501879377462397389415503308084583792193235446713035921231394680157201040879553500416333290860138724084815225723063367460966760382593601282397933998267402029550728125323807647858250492137194773203012506906803300931051957078351904972593441955882713875449990164097361158222511436279520127031229098654270909691311225648186180708880844539152644328079325764940772584655114729372357854846748594146298307265972427941061726463260000729389846236555803459690869882961039886222739424984417849518042044596352935282429142838712501688639707316823036656343214382073661815270587819402722274786744715007942442943738247457850537352618455540948886149575977237806343113595272455457972777573602926457753056526520953182895546804656217856080302310167033962092836550815723726489930405758254626774648287865666820708387195034926983951964268144526442233397865983004416041287233234948490098283138736654221327505586007414103181554460168555978608522733008117437310485716485123755710696771683133070990129453025000505344192427013650152437687572155354184254415996338775343709246697458642617581472987839026053762080371708961049203665329038599367055118651180938553892098409439652155423273823423290192704454552574908416328280333214778389194404669021034094628151036632725689894820905519981619377300222552238028225194907674242260699019019501267142880351284120692455214913248670148610144185999363952359641578438834162219284581851483054243450358841554059208923771212183817499552238819422255142441312895418672721660917752504728029617163328809847217956924870637873620369678035986595245931133209764313103954019657611863940568901178918449825680491734213950692899123072781674212851338940126181218141108618071490031570088628978721120386073096152804509211577326122796102876195333697660316739667785346206622871356628480893748257941598496782698187503122830895076326048238874231858081627908111929898222990791060511187743145402943903089643773235221197172542872218634446342855829048985777955943512523834387257050554194624276919558623609307844763942588501376363880827972926075356265519888783825072436123878654972560784844246413004850424255594665222455754861402578833755512797590743494314981728997745659361214258258752342348964028205911379427526170917407706299296588154418685129006849312250045061541123912881168024599596355813145704526117390501203464740056613902045359083291865499507655046396283044396579520332794779672790623689837746830041889881929489118529381712495538408361776284088472220924159190704559857395414840984421523981454663157139826664865907098543178866875533114774803640560834152485181385749543870783544528684747046021301659710005062391636302859374828188375148708989943213490768309245451753901298515737277315237242706712183479224454526371900389683136655281885324213214957725942501924696929218586522578187259781563773074964888578732864082174461156654699025974821751268173453151387806472560799309354868809238165084539173975847650967062966165870617308544999017832908470504301058548636686040567673972735136297559307785680263877271103014435017298139676200051186870489965035432841851395612658913960969491311989225177034647603187910994778370158870048062412584791512874812816382690359416306219240143746847170805790487480523629270159474248047042955783591521780547924555882891969213164227055652171194549130521653765029690221827308439549112403872521742641153811244791544797340282268345186826499088525406753071233959597365830916337817600997220915490094545398792446912026102028564158902928152774087959390090049682661057590018664917076706529696977834970785021608994694683091228136077443002197026412003111576087759214559712601052229148581299067932127435602387027590786179372998323693134779867294144580683485650512165560100556070497925956890303987041989767272214266089329733436725364245877290808006166805049435058821930926049593848772865056491524761544280047995863521593540096878432284022207871020207074345485319928333493906036005636833437493133216661368208671291171776122834519112086882956584398941891251173117096941839881896294836284093014228087999800157014756418396885818943120411645895338529211585706108788654909111763177480594557093064117782812254581433590083023188867549026402788606965816070782965603773475528286358561362451445860039787222162211773378515660760757008336846286696034301533941797020646160911279544088275948657805710711373257062503292369675299286875650463510572364993828402414863482151287748326852573297833465453778533446535254665564813068393875438021940959153679154205102535554533604039013922297509949352063438258850375438406103194383583434848792198442559688648799408740742907449538637999329065917715920660823299572817965622747137396090545903747804342624525322530398125471674601915963741605921884400191445641154636288245717958485317452587554400572350973331569834298486529086482800484368444285867765049868617810384923238388248287411050275002296469226744175337534798113300109423448207661937133798134442075577355845095998646219973079911215515018782986602985054524361241038771061938920898871030163718635961466742387395463321617798809112749996552640516302077596856784578000925671168451580378288210247083907011562847485733352933979029131228765487842613449018182293985559423257332882974736213635542193451288154582024719216228657003449578953208613530607844576349054119003499981946252674846908750083413946708259143616483396298135323350129805793120894434221924900920632113916487126861873555700861050743952425812932001867903310413604362213419983244209323780566057240224138147126356489789300877700448276193248464555617530427269855967858901947501113757689581629618607770680701588029436037044658572573452381157154666132717470413578585610740583888809563431447628272466016897777451572577291354591371694079311745306434115081896556968841712051481563913267373156313953758873009148676386313343132805312815812680394556822468621037712011829443924936438012674874156701097137102076707672881779279305421137823151876865199076439665648812842942901832091095446268319796103367085837686568302445632899714464419944016060572452769147064720632693408078859332803392524922455110602301147072854588066292771749592289828361240094367252014281351452678681533485811207782177780956148048056941539065228994989264482185403159316612995524841064600874738251765277820925721942627634080267991583002388125621020778744376761836973418004982318694540060745318034731319037226958218411163205959237634894194866441701292925505126593632413909604896193293634522972626446754333354194371892680292423339568814598437453606282109153092548765476108809501039427208426945256794697179228477206218005248312065437154160703310930583665082018534559479269191173044017296069386687757309364798869762876242841456878379969945979172038570295344248791690209919981616873717059730915583088384449598067672404825468202327035267802080629081124795803354690114974628551063628877793498005798250960468955678881299487726701962414496833293538514721198649878152341122021367786703477717533916541408732111521571628093858017365086564494810195132807523700025356608489972054493236708361797445960152290358939520551190943421950613349327420023948082982731412102973125249189227405277686273472051830281888196925796766374157442594671504233052427104357227638462384299812977696303117109152357527020607834940031381532090017571593430919025512520642559880196170898928981123970221451333659972906184904935691772561840392486861447616221149979908799320239113077794338367590803957130133508736649169833230634332639686608109554971331573519508117450798559890203311499759693736238093379753710120048200861406781045337029650175034945114777414735017164973701322308906415255001895713566284617751359435257123719457820656905385356457630371601297021325984730356743278127178874657817043389413483071322227572085749457791227376806773704893890110902537443000579218209133859800351537042114161081951350792155765633712301400225759507604335700330984605130247206185695256849412093951051102917935357548601361808249716482529326639814836813159040759559553506632137775677657837007687762646278634256926116020600559043599062234279475252772658798797803383633458599959779561704157393034749002070705676848351816182789960517705775029451929308980013564930017120075868787859596830153307206258467920716841615157624957427694116084271254780379758586885983263550120453287752741775689298828732822684184375790312421993022284614702730338609978299750948821971303808002672229568976058047275700966760653310916386277550268972904175314930977249969748176110839425477375170183127882117534599782766680781576913276697493015845903969448911909798865681728357088813935888616782455088360825482461849288017644008431195216658550530624261969751942620189246605913809952939971483138051199446238716106763096897393450447476196203376183927748153843752797692039982538339585880212592119372657781305584350538299325989277445864135771466536538912248652107104586749757112834727653764746608001224792136422948015470234596864293718572841955679254640873021302303738598700463388912227300829283011887906255388701636352648827383622773222953608020569219528943740651102045229202023658489437155594832478856466814483545384258800217643855670917251611615679232300738608373332719327958409582406189131209746625122372133628279068213037693817755458893110936509065582733117034607294782675650802782620256314119224586738591591721699094897166257615136743739553963103138414508196202259511022875142966800401031369417433519411954242259567816527227489905872857817888582563753018247470281572254425762724427698341542217125031237206118960400808784555082095910766102190464334729378278116843398752548248585017963776572808387198188677531823313859029656110552962318435527078315406072560389729411531219551329064814378560649072256831597074066038633811212736209202120301397318964318705616951807456499346393161694361120659089348715146947310947483160605572056584304859080958624717418402699019939054205997952069116907876550680070596130448040544248762202923780806061184021080787128393956808677268095485604062666490335609693548428024833208814650943826297314896522408458249802996381454563301694942602865417878990071172288935881093022643733782365400097752744335520395905020396390811076483273301902426280750627972886363877285145497937706514528792924159522327567186411924533483823864290378026545578547855566138676179234736866299603356239840936227864920734268630287091041396339705237790251262793728914428983309714430343507383048804118034386859881157520744851032458461439331095674446354733523169943171090478730758788821440144964031994862561187408263801992290954278668844065449548890291867149109727223369158759088721724062563650596639841706011835269333091383535374422302434732572489068453672706180221925023674494680205231818949616738977359257769236637398178689937676608123191509527767461274910157471466047666055505689392749224734765546466465675453605983351116718070598333820751491352487869115278354599698926427618131736103145268173507908141009776684977175434301032874274067194808064200926303984076019982658978788091598294590814237362088385710479161673996683216166100791203355573138753219914885513659181721216256589777679088085972164738530115340380979156884910393482713017010088812346747072692004300664984790420386264694914442235346482964609571736802361568287171403573287245694138341061490653772213022749911664393823653428880846350724739388696581010748030233289456962718314944852853241773935774486970741889578922439293939706917453976404791557030676250515601278146268502241933092074488910088467640082556828595407314734573538108795368317840453585454503410973223948155259701974440548524221151303023621367169839999999174712784735771084894614047755643875548764125673942765860599775227481856379695812287022316936304518246211561748440822568735118756976400853331043198293188871320620263336992277740562720554964550626224664279025717525685315450310300124825293850954943022047589324555989039548690142225734916335384111967978948350444758317846645470321197338948841461828965800015543040516849117086527756086150014663557935891193090360448341287495497480637835055936309142141957461425226725021866840199811505275173613491412074023326406235348868186094590869812603163255045191150347692478297454497523049267451579198666483028519418893372321657283936562330481718399982763297206678999102724868273123310460251932918289249562347458379649534809422307310239680490710614137967429232041109740098972480708834507272430138209461128279015522176643667899321227379883422904087661086031849292189508850693901084658024135730001491259819324115256538337846728477878173331670039680969575901686376938681802756872405872587968623214020547918782437627680412624131957271098175152882495694509464077279080137449070494240830279453347226891954001595668892217053515673596951780853435142559743706873865591654314009132023419505066244046552786990419736302782683196017686283362429987104432489470638654859419170365250501295767221650715760843836096118696722213661124711418261890462222158038233646050290645270944986797394403757008390555829993808670667859406617224484009297709788656140212406571321560964822335669942833635616760393453777826980629687817707426991301799897170366384403698915100561584320226733978069872989692974407210273596479164384930512268409847185390754975775972333477704538579602870485305485293273516071831863308476759755190205037826608718578139076898455929728653775696765372278055715584869592240920826984959356930635540632083772841129440610371937512232081998168522590626467577056194190746431008834759049106451688086277327569336148159316785053245879370531644772913008147110779231051719028737068224941182199637553293249691887622022085761572245751393843902646080107492169679459847798279290997723161042378729345112689862885816325741885669474049840753909101053342695383001906016991165651076899018781328357518450533629627199988382342549812918308790599974879925904618019868266594412793062023341289115403407436335734394815750718369832000197512984421540171351428162433128367127536764469255800662743951356369034270481123785610234109381955974996502164918282468903071020278476778392377472364570147748555741466846597850608648748087971883582245443876935055864114761361684137239915847498654017521701697323361414891271626548414001384341934911721234868860528231130189723129942447504078134697522176336265440585099596396297856842233069582124169152923854166471115079761768780917915931305984175604940176048326034993523997209213732370200221168080889993911671591167600519180898767941517226075964990631695158402280184966758683228837968156512770321925394448237572707436664759942296078696505834609990407307046764434552527164440265966443307023495451704156462716208545010815684934898958646519213701350782763851941551237906375758979692099433022272334691336394267670786807477598680210027930148690679913076977352926608454450919621151968494642392375172156982251638714700726714169603699469388797381153563923720546161570610097624606320621691098325385727839463160211303991614044788758996166889697866943071006249569583667790829593745175625331347976371855158512044720633412345163976564115752013694795701921975980425406162899269230993655837763077080109311535802408125544603546845561756503825203525459172598475641171124438322258755766198131734595163360686734772404841379100213271668705227147530779142810802838886482454538259404518787165919121046055014278321025998932601302333318769969924805147570619775692942786838847347183838642423614199115420251438548418662100861472927531761764110233906836400181502187543411663480227229690241562319176113375540890976786607970090121749818414790322769801717177951860454145873636810359199392203885954129101922211931643548074984603902123382714592527013863098570189454698121713692539081617331604409839986591998757147213922920302388770276690714692997863499065433785082226765020007721274257770654718884706435077727659297476091703060997952515390462073271988126369769158257190081160373840205246741061649535248698517397629371206096182671593186296897930180745542636788902447806812271288674256731389624534525327744151023744954568676909316584018110371238133999654666363866006657602641351618190125129911264991481884575321767592288594073417920551544265761700283566235376858776476973875556557457174522388794364434851815956938045613712975510173584589523741271893698424099556175977916757356948355306839754350843993974889581894046123770154250656233836615965351091022454602728546404411251190961994204533931755808135910067753776587411525177350523302754446960153190067803436912422799344490026422000175968616455868049435094539033616061060003173037460193843940407241826386279796234385158740448143175198447403175992077486888536785053791842824688591534653593972572778256624163928530655932650385117885126345463818907884257926687814587272148555082073705673040302292384180755995375669918375973085765832974981966518232262496127642947450758479438985121284412507308204990945394660057705628507295909301443414472267440649269382133203848890180441661785963047559629424889754704964679188334953328106544735829553073961010861390400234888183519963628151197021677816739722298142160885965380539836402246715002683678467319701507429233965516057875252037695645886817760419518336828159046507777250118967775641709295746989142236917187240140045545845147775114295172320808783986800389728400628890775751533599740196574754592771235581901956930181208298505379328635077296781530474281845760564532099490502443159949578412345756201353090768741594491183224191564383823438401072661258436737991234013702935859927438729870487384684259819763261338154855995912562090670035521876883350623593973811730386297887117087941299064633559392615722077930421470731548158521991924502500440937400207411666780113082247192610109697206265349108719077789824756760800949934408500620219475734935626056378256611286757938726965046591932073423838621633481276814200395416237740592284475217429517081527393316899338122435253468537466158401313402176174384088060488408133929671957778493257773603944971089646688078796653388502521980687020060707722187842191233465038125934350639242887732083268576316475617128546410678613665821072896392957274209093404966715765205487822816565912053723907530033802768948836397543718997499459381556992045459055599605901835798732111938122475159430487152950039969230376050826562873671004012133206883235239833232845836978192500489849370237224665668088240020492850737863487085234316167762101958182587769673196568763230834554212118201287173933768971120390668291029637581904560964820478880157576861269636806142444215082438973459207545919840097030289888742217840384227396490008118519196221900492704238574149845471699906083346450890893119278234845937325528181912901349504850185308132931249957987038079842837046819850379842988454911788269041354694263340764737973254129852159112811413843150207969022639599433463833301965554905676391726916616985525760119431185994864131575922617822395835789164211572236373426253313931398024921673667794035216079531903331054087239100060503658451527655134574311080854781756537067266402172165829489027561324530680424120258376831742778487296121018015278742258868841643285629562886025712705099731967843859396537120437384443821293278989156987874517403258761158360748073015506933095721539977351042267681821616896699402110769998246874901634726186105036961193749395229773143727660371726809340868779256177009681545890293989285143818781814501050511798627732582700856677789995257269106408627258965398370949602001268095183858256200641406480949524983894954011532960319702322386947335531853805677979544708535082647804621596899460645892895152048770428482329031757531391064553918324219091285881410797064630126804742167244493336621552792853229720673247309100399446843638887774593047697872687297196607732071205494624711020819272619942097225098459777581307461850528989451602380803102231300503806846707925809032073363851124795315081697892445885865188650412479202186530643513123405484879619935279330176465102970247672485910727963704318973902047915361228765063601705406716394436618126984289541842639862669555209232942415052808090416139908839058754276627855026780838546449825875777195137341292452215772207934339229297704176558361169669182989396896664383727992383222435019729224637998389545743033892857651765608321812991186910067899138053541826841878726146608527359804757713262099275717971061718687322140591592313391760394577704174022481698432816862296334851331567632082318818756945329242954445774485952430024799005236728915691372160752761755466689172234395144392108587326569748049872430963403136067835442648585276050927636096513921401011673539539011631443505692642715027043258790306046618846035703799316780372986644473127422591284613318382112126865274517692188181455445457435443142495181305205043625183648695473486441337194134578353445954853754383839770167178987693456213264879830725442219528769458422399313528136216199924824155229149828420862174601030836555050478633659479889884140210845789914156680400434716425292576928066212549748271631285041918165648055308323448720602086634653565102225122341127497305728034930470501305592094246648057388298791606349413348268234715951546534603594917892841670418645284711869531888527179645884660209843127442170856683483027081176956128299290127212526029475334554553675316694910842314049302480897319987125058826637715842656806411003537635376188816512102917211380645270288881916979632305453591380812074435665850657569313538764063564108413757152416979429574352151363714053657245585854559154887375393601208453216835385348921485984584086265903118123756573471189665228102427203794242036784541054706481870026944537316292914922571739830191005634561370209795770413938908286406281438681811074192707877093987943011217359391933584675057265767242080596866014784956476486214617273590969336945866482672626858025783598281915902691803108409964263932266109665762701610128012584565012413430508448071481731659276026742371208357492078018865637451514750663374187025990568029455539506563466419370057431210694614074650626369950145127027866183532161177261826776769214298873412650278770273182018663586617031558330810485684924925601394577238859092182539975048983943642060889565594127487004681829628359601170765461371492739626628905115685927075504965756183576725410871301413856705652030556014584481581609110960475526675734260371162272400829162796682645521873943590254200166864440885314083826619220667708520846371036904215880766529875019176439747757599357409422618123239450303799618637244659611005021058070174837586962912266368039286878299070813386293899468609558070774925793654322953016554461100963340550325877239303567564539372237298560154627655472130988956494024667969231363703138161813102878293308691500077112142628226338223404291245764466067773344903573505023866280157596198672076935133874382839865448296532729286135770242948790072302564455752254965114900040650855858785930259916189984484004790978031961288564907450825809152428844042203480555814135843517260727191567640999092060489021657802074312601913942766447165858163478666372665411987481392278998502373608846537493826106394690747437272866257186074400343382888088743136269716329504143658028315354073118971862043405417567202593428387268489014008343012974037164776214707961067070170909318999586045542915241352887530750349791777051228170185165142274516955939448188437768759243367903863841968090584466786311869909096699994871815186934093498969332406584600851912749027901068474825973315537825088796658103580869782657509637449492245999589827790544658662099044681039115820080199458421472050190511935865570148894320139998608202385949431712361750129406490119580053891359399736144146975380447128696345334535274872361102028136569883533126229298040256821039526220140118549087026472448838919169614739724760300706389189323332185666194964645416838196374443199209578935376388634304489596869281135346759839176606551007022710246400457130170964816603889767294547630332943622085120550765058705933860275653888220998711729949300714448266500319640199691182093884481226917170618282112163109357757325300468312111841143781059722157967335902328523068804877025289837042735699425087823577712122107263304939219508950219026673618859400990524015329501810507502858968837337610106093089963685378822441878887443346909922221731311906957255689777913532639941076443745228011480251016637994449455821713537810730254138296301753061905294677276375930579118638689968299801873619712093588967095148466783551682663882483024128732077772444240924873886740616626467845241273532676691822365883716221767147552718359959149640664802611687344706129082448240495867688693374545131250393516978108385583302303225237732625254358922360809881841359926665683996792151029811394677424296511934740951617354086896330803635142464936710269792860857627307456835860278639835952799395792917579378364110122338469545870674421447721792607983482450041551144977474815037926356004573013579383354942606902676801906857632223765345337663427650984429682371162119573853965249595031607410987158503536559760621859547821290644607599424244298920529870248096500631648331450412898437299070064649174965792572535026125131613600826699262466101440775365446034388150533529417044084269769586484678419883394352538511833487187932625601359778685178204214177044125932452573116587790629578255094314418918204676547837052700501389618250144411320719851169547914510799518102489541470044320195740236701928406311829564400141364196266618523243086685777119605200397899978331567597336089378703490152834726910415550954624321020500834038092968421012162917204418157968752634729100077971711657663313824663771290643086757050604666729586744068931791364059792014194028516523816981938626501993940877296257871937228975310763534197436569648803766071908551216233401990849721701123933295257966304133008637219924834545577185116472585475420570681237723360520230466579310320263854842983658293418844871106163704847871693452528259160399912465685746479220771302549169178015101398850309881578271032933935187146653850458829320121888727352131200947245782141161404874781412270590444695898665298675969804513348971218740481936438300287311011552588997762181248891959857427812769949671176796523184344615426289630334101181394434505918869063549639915150488331225431034693332168930462894115503308878536137220558749641246839677570154772739378210842207667991944986683233890500695116100891010796786110942601800192905909580924412633093887775580367421588049726217235833498761982991225805340103700381084542273329864543718735104770798071704089504465461837577228888682241925836936682843240194647776160554322524224000822377516038531747781083245838512447161471118736772759129107541979092247861009537010872677578765776368526182800667842655923993508530321107133677194202001074579584051948792157116005331841633185600237464879513832351891555853061068602415516773614523693435890004876577167044132843905103124593116791473923841820604999612872405551354385576660506537990721039837066876973198660173105610883877002498703071615067758929047588125459191376069169356163626181719529136096421904368756247611807409236296672233550167827055302564714988983321519697466717722621723254075742273573462804753912667197597534367130428468890204452793481521735519445624769641792597274915511773263971193364520847947614434805608135669615885332571296234893116557411848137822154032721685628340709426176779541674257328501205444531127727312221018082744586457947686401467227042516505165576543174214051914271920656061160541734984032721657351095509850269316463682555767984559197911567906712841905379676002328257250777832450663361644206953976877827942672513557256087204972751867473220021386385733014130995885013268052241605207203328338425586001824349700978192296933918416197989000553000966599958009064580068337923752267915491039018591028237339529615452034831806509670680536852209467448056579325697442824129853837075958811654551912393792413199299149695128135137221299598638348986881180896626982208019445134350359831514648728831387581082843723059808165930977374718990863205314640366781442344145064793807720185706948921634166656522860888894885611786870858538114015075507728163628896434715300196575626581196811367098387751695686731066944926013010207823598802140738758818964159258075911201939637708312898445045191593523704391493192154651487109226739934582931004450928594537140927097464293389623341254881017495114898348209231470318662424691140483722855644080593855944617503287994229692115400976270427180872285060925753596410844141027569529615027766038469265512432507325346941477703138949265740865433058137436232552149567839177713946782363144161262803896084210544583997373970743381492608981083027352286299153132899600969510955110779291335774682847160950534608625824566858386927695051479647506424865284890602213494975694600023989729552639230837419412218460032633493284353485347248198339858073425146520624330968476364923727040370729860977821320863773695955655535684470258278833190903286714569602680542631304023480806857060448119496272526480185458027041143595125612899623534198563679004329821753629018653549678426005752316447515230806678893716654245938560917785215153355509307691411675455092516948184799636997391773406940448403440325241912594043106212980034711596668195391122731901640956714592556581321020432017829751545181274296511796560919366214027193502845586232116251368198776896024531333454157930211510374886543345675779251981973174504638645226505519729379487370374180380695086261731314354473160117267432838052688200186209634004496193787733941466785035733635167871805899870731607715571053334809302960565908893554114053055970842122500105611620383040177920647607016471448317267445618994433252607402859518781043735438569018080727611886891186467813866834309757918755466855784304920029829451986020842459085974123177916612956531238206195937267173820469189592806204868201564757551329046820762111900478774225089435418259382132902506235859662901296729890700388907174961478177212097779313472851535630431255330401853663914819494454411689807954745231090776282434004790211015683674945613522715072437496853944646347116009436623262465485318865438077528558977779409479096616059787659439294178537727606264629987453959765707481598858776785763931322383072290837857207187040881696037461242684104330507404619073946163312282742551451690273889504488837508995484909748396432925531993657591970014426634485069499867608369753921804313949730614488141410379781862263123695789747761447444786300996115495360666989860511473122918393949418646808957442299852421812859532728302645922211977288241219095837632095391717429996035691321068386846344077949621491730926324289270751650630031912315675676893329978702123556124537585583904524014630457597159614733626190890654475707822931623849824051025819444651742857474553007766387323707738435004486694361159645088412023318884497690090320612616659580699579859964132385691968956468521199116610738454799554203983830120778305265662755316711758085669093161931503648283548715750563544060620107578736766392403443743231857539078297820205106130230309384574143537064075397447293523641728061147826069278020221937035131961933614019403419863063349959310194847450052544517916814410159758391617427435892988369735404249831747872670042890046998099951846343237844905820672473714793236219093320228977178066756722745186829865178163509504142354365228888518483458609645621889625468559622959584539432278686205956469515137631651624145288962808915898756594933478937836188170720565825038494864167573066698912218060417797406015208548872831912872965711407823865949582260412641110323903697499706819645431005140925609228995412385740453577662951562420721726237000508200316175118828068691522336198471746535628001506841534983158596735926805006790459283761343109443259349551112657183499246978881893179207121273016931012568309600584886141498273783194107725307644220441234038413752050602271518555079647612524935090264826369121533224500950392117531421731313103007228930954093729295164721753443970551871979452678429084728752054440830551962143872616790659353329147990968908116984347102189118710167669215156641694365359347903682453219922754196872324408442472285336373536853299261380454750678561438202723487810556311461833121119664500436752075674574874015068958800660597050936632964300905191298828739931264424390412109282851626456924106668795148000033979890633959626885923229052652721493405739265330608715300511923338548409190581917993204589977725621397232953395006635031240206466890723610046780359614421543797365338787161824735999578795265464132309193082594387650434382174013868532891891500343700206586006493669862720918133164399983359923592693660525275215303571695588276672778324617707899404544360636444422509265873258575775939908437529993708701910439657208451656299747139062550642844205624865500148242073873852346328876237172067260130612858501145227225318901510739000270988386560369265377737921649232118106359278425619371768391412418544966761671984762286630822550737936499474468425827135012529555671040125313763273289269257592306736118590081829335867466172763085580486155570538777942935998674726677375425995127298545196349084572460783352253256297119160215426799800199325392315614809102648943199661965706197464761590561816521614085814009719708443953290376158053414304060820992558803462899303383228945596839687652854835847823056035722935162889810511870227592222609444225222340750787731537518001775156403698676785822343110821159300137730296596070587262047224288325973701855941962687488359840472285226562313830989863104368036702469678517633654629460790192022672175753418910446177223169019716072780849755160870760606025427060327618908445733224966863107857454799962557308287721135756563920789032582572455273975252196612874539984852707311724153468115684042061356381636685572669993705923936122921839440397811710388001644438659879094795004426033452811691996962156894882549441923575166665381175182017183307537947734197994308880846658688952833434962849012868453059553705950328560257952943462101731906910403218956880583562663455265918626181071257725067299165557491967609959744936228313805850375010399461255073303482683009711862415674356919728436658411031236934571531611423577756744108358200572952753632133642419698686416856742300162447564583983464844752698075344691262490481500656311583204758326638196905584512117439096618642492722406473110790162390512448050206690621618067020540398848115842232272493108705695695145850303757038053395291294651709219013915620765255557837356446174482767986729437743436667243377843870185607746492365016366138397194438554125248267843753425856040980678923365495158740736888596434486652482102008485292085665769291627455083158958336363386351726379317307187766814686952901541463435259430225989390173625202713566725405757924200499498522517402007875909466650874949154559706882910857836285414313492934502889378792756764586401775891003701522842563288079163323567638060757537099416224365041080446815417927086351029202301230081542010036189042248291372645353501581013411039856171349814790325654039852250037839492353433366096500580728238985505208432133554422160845986567587836622207586361023488271175632292140589983711794884875826152917576894636422630546469926457655132098016834891848099219555915378681332455273204117291667009291163997477892113465798872748077441782848334617284775192250299951605487117503244470170146299500064110586509064530485829037459388886865855396290069768971493732740717106598760058232089070697326152142368927495724623197165698235087960247038090543289465547585118903881512712852012713719659750645690031155569490499448989671595809893064595708881117568688669326627882410550039339415605457572235382502602482314509680837188928537663447550651723571067258544216955367423288984464477884067392488024770035624249977424783590942578152207390843244187836600863226284736445657808997838265466530068644603172637679420030572430843299386817115047353618969359761595558097353107862155776683827259416618698764873052564217399887566913173529085765394063603660659160094440622763575180867594848255055502295152090823571210613348018583880629262923838176662912732597172456834584336846437425302683711414844282072818915001433138340632120608097637778259869090911532397988480114829160466786659016889223682884911100608390617366545376929186331552844204252689215443375067669503657952801626752362180862060266367173852819739461605668775496574582819789875029078298884302991867812848518863023679031079757730668779029213475866861888500861267243247699154372296512920720388523500732645986207666180965470025990000833097998228894867325000452853490390363933046590743322928508225835008017664010161460948798114910780120075667618583888827939238374535267987669772735503897064723750384435330467522918155428193367460535079856356514914794102175598578671571492448326860702410192849258407781869142427316785369992542287733256794741571392583732901639335300178566391500010037404698334657483348582468311102750011726388904237470700548480615319396948293721108001919999890708348187895966349382545889183432120777782348860201786967252887176442108506622175227004515597379014344289888184405509022781850195223415653337487339740938291611381731700081020433428102592838141934957129829101845171422769204332329008136113692057463841837600071478377429122198298504997404847730906070304861655189853656564612588437403788315273054782239528752610451121850787475413059239530726254333799968631258591737911101307981140922727983339435596971462247462091982800339433073631851866816357034599363024832036156807417124884918365285632755420845931090823962659651612975509428529565868946498441873889993234997126805231196684328066881090468003510438823834575955354429904704051688010441218458234589558430380505502109998348051881619563120087249440646241937027053895890713463896323500816929012190626677504393822908345769876426121332523883764333017777982362355854013100536002194868075412198882158402496933616052250015419376320812856284444783790929277589237596174561235465981164896121780822863314885860805500146240183186715754762731859001033571695090923063063206643003590456360659677738043577168514116396898599502617366108333062201972115945317344378672669823446274321285604765498361593169176128400825432738739338774690791958592853939843118194674640349988759361614349639211556681522357752584751019969500983736445984325778114728442336565582765065334456339321015680987916041340534449759984210602357060822530008850440140764149326386702033899140658329386411602527925331198035171927767296549728561584208241058481341157242745685347393233420053508261613904686445002786609174197160248683058674685778311852975836052591483760416442749627186684698361543357482966433406047744991073230456652481711486357690943052420035415500647733420078319906166183711175798980083798172006582645752155859002367195494322174739561254345888213893875152713485516248038070435633426400279011660564034034529791854446478973140519912341873761936768157947501025019572334783235201702377314252712992946910856522959366656010666898040271228995320938594102220107243794907715800810854220129769019966693122982188282416632036669283911753756303986691647345316808619329316696120551719962156769772654385206069452645313895464293982278014583770703700826972611437892295082709495230171596437819165121570667945385827226765893749049925088504096456531280148961074138588579684473077625863213459448950986881064597191373702298285083570604369004929602169937709050623151926095359708526643884434304517920337773037181859220684238306334192386307575229038794337497711876839491117378567466389186142718062371094642045627610056999908406686832399216517191222450413464853252489631395493245651103404728791252230754379601791267948651748774445306054044104348207228308450834548179115649842839249385888625850421721275466953109123697925579680635645815376515911377379902779250158053787470162721252085716591794565881059958839672635509974726915914904696743444655893902313310665460351816674875973899000090539442008701795122117154458357009659799555077203949592917465085399600737531002019290672710074914981770205657078383307338487942529690203472466408217379256104092523824646995650145550999272905981220204024408285454956830947902970469392094420120600938867895849202705003190392957949672958618043889378634288887874342798364344632362934642229840681253567275329858877717894114799344718595105057851742034339148063529689426395363864786795914468858867164177019494527902115029570319722714904479753458443357427351983924990909499523473548025489318314093239423359494104323256666512282911170671379181581694533817174881285194626102315596431719467326055420221136454684766512456376267003549838874033552806641407289790858033572156053338323707266634486880092126645964800354098940820168466190921475588053943018847560735501195598667022307994891305710055723084956923093241398218099843296958542844258841928734273389214040683871086306436835673844746387535494676685483581050330512889497410981998759217169286886060751841593983368211076606290417079361580079895642386111094119588020379198156197096276790615119837077321607558531143413191451199657109428105769453183061067192116104145241442034588323598428368581073132582990166454323557476760751351713817761071141990757208415046268632003809366187200154660542572508638631454982966228994744645821917054236393234264608323911978101236888051269021478569065722842098773339599328545785796261043284882959461889528720545051775924325191808643633867651824474452379662306463899539220107322841034788745180377449124961037615724089699413922902224340273144167621065024523688974270086490545759188233417574765421871134824119500268979749970011213164892015800295760915342111091169359880611542426337098187774334852315354589207287027471496893955229278214127522628587747663441938447220587804291348582662003533268493781569989735148799948016640589061284390464524944744160587416373028631913609687105444815544363553088979929958257020533447401817105299958382762655453445672400066630087318426272981391297456633916368261820193395685737393271729124689461645126330592843915615033891840302465684426369737439549494201363358823353481470814189487268999516081593184951075201614006913430748693264358691503988173884985538772006181344762172776190106098903868087946507553235794755054213061526218259932961218439673757168902155583231614908061923444192586548721723679916244461488113724650488036203197695788292232828592120919258882840056750719180636730520218604446782659393187103463718656076504204314428039103093516863028339442618304802042053819804314274404930261429594118686289911348436319640242453342367971850541763326321787457032147061852991091850447564036142478333641290256964811403942689636565830093753421771258095714500485920510397920691932211319029318941838167879122736992985586598167302292297815730965112306431149096488629354060170828431458564267079187961245442674555115450527664651828406107869733561365651313007044900060897438432951501752169870848333918079312925732751209025358764633971096336564372295397089683416977147819370174961259179750348477109533010463678567577118194275918144903046697769003885520912850752150680036111577595343768093118261847642071185046301767718455470068100951127925734233381545329511860060550387316134876222186660034474676735158844868707026312614634417752316716372222655455431471133845840745960783962212555295080295334220558379761065457440355984075211238725668695508751819313135737068985376801260509261574938961705936987897913267670825494541180030246863164033640410454727540348335897234384162711086389868948583721521370890315280706676388080504560289020577678789360622518797099049605342118674106864711952785990272750395505197030801596453502199321985631526165207265257827792671976196106381648046480911791794096346528997780037224761033057343256711755557294145158585895636010504917328409543933370892173073540143986884700216967356287675311832556923907798054035913339301487406829160484550411280657655219223174291665285209571536282595385665239602625183389579937383333745675243133193128961865563475691143537909821785527495885596236986319377969165860994674312240654009510676553335317570367593657445473408714526456529759033337090468664444809287947549200342337590783935917513462586313739451709897979161006117873673408596988072954824678334671956021544723695898646213888765650346087806635570175248832488285904289427696608342697397736149968988348974515905532634518097411397564174674899489048600047848956062866454440652927514732502450992526108082060773048427079516216694672960813378607107547337036772407993296986768022663045496982853768802208870869316919506606048397893415540839550747599949342603041430946949716433505466637864843878531524937084413023432894762256492802698272679177461788901173219413814254611940602540933956959672547760287796899596655405090179520332208020308918902041593796124911105446411961402632792715352594866038813792437479479270146843305583466488596133835051137109710991025046670904567524064096471041418155877471296318200030204526293694752484758063170999826636918947041117049563404336075486310496811225926261116838587055648474390196408520337501456484484965250818960281247418824374953774996283232522256320526793589817231316272397897081054704726595293120302191090908364926878276271181035368789847635205491938858312391344776129628415472875931297776694763555858371320656492372524141809237799598635140291957487798556949757566259523714459436030736990246481182838553969433074371059537981292702401931427345645629179860242164290761628570219075766057220024094045301561316674643832684117035332567999256292824160744553109380042098325386658040092471967176855023210418745585286245093245023358254088419276915232094018716207294456423537311902120040832621167459822709356105151088974537421273572792956852973432493571436264884890157022868028537541526320551785166686018724421281481266115340430542987430863315500294239286851470282934472290845439881921284048083660307476190771866610528818795590035635919050672458107960196669414928837503898814255316370907667044930863849365826416381202005587914583244237647956856362769705040946879682523449483374820094267574225162323539988505618852900247599665943239224351151331053187836448413375387150824511090905213640237536749596113585974433372235946618038572935132598866537592809770212866405291492282032633118039828229473776989515929786316571099318625933695920046019592903666251589874278401455429674847494434203745575474031334055882582176070518909770813143782516334577681930132736382941356197462724481281418312491825357228476147108927901559684785224073533812007066640545743421562253178836034538226327577127110196409199026855305534942521205052609988783555614810394848041938282474569919009075028805096947237647137384239064821829587575450322004975519558775277689657846101325911287338200874087293339260367318018045274839103369135876546632976826399750152965828809357244624968396377525873957195146692141015573861102176350398909543443792661996391149949261866497179015142556035163791232216823014629485035852106069894305031239963352821505894238970911169423024370072766409409500279740101989377376440744917018191312439006100820446783871041559615815698815612533391909635405186667561130209341686988769161860344432655266074813855884124381729700526202483950634690123480302207173214132041645855242955091336545402688548242709946824885595095285329053616718482442227802068696997260558790004295616303933215194938252465228715791507644955172982813349587155423219866453629376835147046403992946573614177588106921674114098796233163909126927233422456593595607750627539076659832414247341789971747671537336686135455788427702209092522144549500163413727658856201825067013372272733047013926212815238504636097822389218951479008666034823504166112029712718589101558080424508710129769797226827434664438240339768187084150144431762947253256287800130391042582430910993125077990772703151564093903006274784029287953517480059182474552981523239333722000101034834234870969743702725478369816115650627027904636102220897303457621981727497317230665075816964512377075848462825082630322495783117173231182554802133511171491461332083540139371743082199879848059924783589643323856257541046207577515464723242438713306011918020110723101197488021278586875061843583442143247312172260726670173367436855034895860169825410005949037064903214842047135801890896777717186706495990320688657498808233319065455236631842699334752707461567713759315967183442419909555667553454554975076719492224802692074473809423596908955558907490892970913722645692907590828742014325997214231375982393251745582104719922994400500977463360629565476276419709244907418243629864231787324165628427912199840240056276710576075304688433396801740341308147294885199260031241543626198534347307842734784994479790382838607398755926496860638067802459574620010271300144836222508532085300986333121102018630342979642940789046225527524756312277284647089295205560322632591143090075303830453310587265354383430465405164785335675582011500651769703583030776554466273279572986619243087018747136636997613114386305164460799393493544644159443503715084166862839820871798448181713182250502124581056361675039094249499847472042366151678608992328477185347891637845884315374634371781586705500901259767774377984769963734608861829499273280930758747910389479658730882421712453760386011426730094269092407790341973997481805651253778312532660143641009518245799992235254078764127248423127739740337780209342881488862828877076605534134279642496346097138141809176513416206217804813813506013422099881172664496936538364047623486127786243544680034899107352245239849536887288022880417865042047841068261302675932369339212105937345283178878577511885616646680434989023643335982781824974250693144976642148539951957016598164052749930382185891071145385454562657456026471228730584177808943126068074050484000261973426434949138160869604625983138322222543134386057657246198271715958931515431087102410104588974949612835916149980498293981338960233923780682846069686405386821285515164926651684670029782836715741961725908338227709759787578488992988995794495477771933190391673453754665386009549579359813358479760125204634832956183154672318784310167812036094597589003356458470049785188153895153796979122634417124578649008651940092660663624278090563258191625474368546662477334414619694687586784340008085029192784395866941919007343047143522801978261677002691762455622473996943434267886476803962258166795141571847058541719487097924232451786834204641967183826717123538838416663717389268634200976986187302200805670032735434764894933456734492264043667130628097181264804720385664389911954363040728149814620013172166151386834462829307749431645420735584533816359830091082076423638097193348194722954454911531980693452067393482180359130230812033130246166176174873173562200203423734997148513185241776666412336265382098570694953886624149989956920072629268729419016455165988446818123398199736438592981760285925968347775111932739717940296868797666223444397179556961413748105762230518211362549552309572256748520037508918637566260683815007129551324884114541508368854955955400875054981364177514439455364266783304237995301051088683545587095564606527276365058098882910383054187381200644805919692046999595132064676959871155969641200658615466681383974523480205077064230584443225577447622827954512787893351614231903735696505208109335166295628127786425242050080388940192357271639810543471367624330062375035685711908905835236508468370276783091092399902804325811387591627852390080324390684561276051337359418019852410312687690570833911563761104724831958472510259329879289800430319860463847061679456427155449696485515313142432031791042165269758646808739352312867844391831853641685045245616782930849175855447175948898737585710404655320214366952076648134993115943993581247119997005445117762151014453186783676740334943363133906180980110614760253105632104033811133477693075465178781126414740126470099343643493680404138475331668588315234040759276748989245859412270079571755165835851369453964486563942998657317849142377266891208199595166620373409227873642564786662159193620666014328729113826177687379516832444870617636228337653983122247503350483538080195595611244996774776590022193550989478827982561090502739707084797158134483376810073416232781012369041534173876123197615732065593107903674083276886162893518023974388967603930672216260327583743680765541335351090745257584417074573036925499952605812993715363317209009122996553463034798988698052133605380912394145151070733974718336552148699043175274819420022047811340703580428867607227352104612190309912808360303258402852514934135436628669402081089210736517768229430050448136926949011786981878901328852666581355091275938740179915911007481898074017381344875168344205016991812201168575388479191959586985311017815382955569856666354654762717294468372133384160780508383303989040250034020249596215469299534395275468190594204211335424948593836482007081198418696965893613879442039220251717570993430163141974801558986212443718207694638188736706252383732435242076085392480490929349725607044772674666298886671485764531311405508300259563432008177709846096696148922774869406035094333994177404699467531094466380540373743612158127577422169992074705070157527872548537613702662119567908638433063260046277378531428657041647525440040950026445939709414311679685684934634253459502474211131244136254653040269492478033518495413023450192898848400616736138389158996325191773314320265384405887102682341639591896183378876655320261483417123948407815009135085189154340122509524805405467276785275269999945238803750865517898883566799608321068006994948287332037057498746729636351435179380010543000332326378175780442918761346010408116467132429438820133778213137779301868060651643844392598138102880888088645257628215980509652066728032117118468226735169649649857510801155089135123164374006090165734330030999793711546275963962366234232668163383677364264820697966206093934611843336856983983146339694175333002780800838104652685990530832308090350992142058163644445392714790550083883203997142920465205359238926187458711014054487376656948341611471726731603529611259544609545944825049037820235815690017556792820523725054227167428959757167576304836787560736771301988009360762616376301072276867772852085925391055711324749169641537152577954875918442657540604163132045776485884549565140120871203148755872548569107909803899841027148974040761351545861241631162025688614269038971486906165973205867981987856664719917102494139032194269940953955230680097918284698798971164857480096142432314571122612893174030944044021790884644557117589655586585673136131359618720664641366760616043087706831128190656779952468198629578499973858192828392492939625193644829354451386331694810019225851306038299616792432303173341385898611475820354805172236949575291073676562397153365557294449531645169835033792690879758507772142407285240221214482734972616222547051264235268658747274716242872695557544144522391250267961614062513102140889534503668667235290981292264333840270548005994467744107497692504905320439717507976391926023541713323746313604877327628268427401275561655866084235888918724835676134268839793083644104468286561750758972051846135150656444030594423813034976458238481644005426944120384712012119314750992685317648722114228859458905566792332596743895111351899416655624711054988058617566715768016825742573936662585746893148772494537208611195912426327060821822167840997046653572912125644362043462323361978397752278562118861208574621981446997418447837551569781739210451412492616021783637608361506761813467663313413523692561302404265738825508933460167022406718297903478479470870075891262655457356840564640044998797238923384476011894506569975956069056399219241018399376481675670052519247790169996497583480923084041881317543078987187162161418914007533422547619956624697229635349325643389527886310896926727683102365578090453692315649900978882018053178442335043645796349825302350172119564100746206096338723018285007219879272489809704488919073020234777590523135475862837977607211004147925600060238185806283955283014807629376928982921724859787398847290659633861198535198809514180604205912722431086677379304777303104131421526698458506298716431133686405348037431053970585480133878085372051247665128187373820613663669334279993046799590752246332625917056074739282124128941483890727529786461986564469102874658836094266578499950737095225496107707345369776258971623307850678867435402115280485103298415267438803007707258970327366971289480390797419129815338198355618050224350075948150038506915353595834557428496972798936362668621882373951462709326083775580809543794472257420751086089847034876375096625991826599890280733058105521869173913305278839137171364753909489662835526554082048641407848693344164758973439241373439157463510194036397495895316831985103586439748544162807946364923247259059854159790761073460444855793116060123162279809590945313281885724565673076609384226041520580792328160374629665688084144513761184331464198285649307626353473892473408491547018086805342130136665752102227229931973488624444016901972110700186801622537819911911044813083701489106877986758758742071764148539405410341118070190977201041703779059114004286007596993283125699012582158105675108378059539736703888380121765089142166111458894693876286153425884348964342500021819736330606147958651294576266027235154493161922367867569068620955919454274338549062722276412839453585300992678082594630056647631874515663268595196641313874591352268099209282750859736604699015995177473783658679936766499676600971347956402442376529690939475459952682439544772465639767192903479603698420154132441601398275838361542713322413651816380588487287454569059021749854869798311634824907992437511795182085433625535038024345220422232648925277667731136829522494019902720341958823141103820170563728274985504397928643595186670284476617148305723259017716675839274049018398553111120464881184699282868729993112055554992594386108512158771480054052684372168432048549179604010768267564201307697521284416605186863154026235320130419073423181197014774986897478844512980582554189416918012359803230424195574706601376727164314709393793873654262100386469729777743396990886667052858540782835287620296873577409390663163625646832660847302570822367867935732601617831950895308614269239861299708518143704067692878409176495928647162595597404144805113869067046919872709446557654768445259264838716728823892260956058876519385499305204424575754005671678339914413822656504055596042771972706914659497144518999498831881751393636918406969732036134678093491261233863129620403938741639376193969862275452065944306842224979058267291664188201230560419684823655497199826161079132420263393857842523707146463991281087705339373146538516071586895507176902244303479415478637216720713794713029819916880175092272286478679614498123310491565502726668808339115569945661224667208705754075834840304242913652991235134602797082479201270957206917506028730681048852646362459511730026222117441421974068067923685069271133773908713269351414296855574643790213414722491211359931198340134637327268062645061126653854218768588509286769039256412040645678614092605545496816528919537195263972318500276108852057589843864107869339811926299179021096268504969945008967711471769571496484334838652885339618991245797905261068441250523672230544501297518877311682676216254676121139380991549689115732020827556299052832238864114157803178173780828664945839644738039370772935823894544970365353404702924798815848299789675688581579308177638165883828557579888993392556139694856181409263891296780013884905872967888675820045985188825883367795615379544195997123476589012915317942572219083394082139743963295358322287279488897378652264227421046340699513716627768679249490924843978165800469053911577008977753925721770598481771615317563352577178304120808113676787888136589968012803116907732782177483856069053209011099461438894605787903484696802533667089795310484298514423340852530185922754098601269035053065492292540836527741198568321177257849808441662427774047427165012055613927156138092969145462103735018579248267274613796719093919369041960447885256430723797739504152738616908103605956689921221666535300524719771086739098744068320031640834362041661774754548883097785104797049507751362774747789914200520812189127537807177369245805347777580014396257732771856880062933434702399896558151023385319978490169232794248316953003067827999159752615706087361106411255602686888566770411623772327390082756491436056113974770085046908883368747481155598206009275836172052809407880001521816543500243352022597270938359345811786084627887595548789175951588708556503449832119149378058576572840766750095775536103914689705013709027133849625260138226774344038926510533347569834575014299978315168935222962631997069248373727747655960682349322942618073873560568519319208224937919812100971059139237352710042913969217890617182287355748458690286236026045262547463783468971608784107858810252406039649205283134084021970216423261121023588490939963296840359318450545212607041168849973932381239037026809883572613237651861002975210618044143280791300206569909560660008430413117033544141097808156677156219903760785970086390576378758354617527014757424046116326052593990314787955673626345472421801093832603120602372930793542052940908879807341308657008894945277483167607318556050189724634455815181174432680481574927888049368991058179937465873818464294244641839117304740646573460011490282845649854115720796666223719193883303086080773057199202580366613404541086857481738294336575744833269312544987489448502107516579115762733667139958780899996861418752285776569808922942951593051737945541316549432608185911563834734002996418948517600094519527784425465512147420609915046980747401975123023871920686979238999108149898162607429680380604853650140716973839733111183514043068998411719120730361440027584782817672166593743031595552422803338925730054611281022890737764729881746781369715940051428430715417821081280807492477692944390675944239522964525037512428881265169455290358130916364139202802472916338118650482145177394367236703009688575411892137242345214529241902763661861316538282467936604744117469289830392762422260940999259942445527889909647025305550777841020503980969336299827693483463177855611651491417885441038356072749811194661599202199491988622005289157827446720950449674612131268765517860135119025506069919959585300694756376618773198435175896264315216899473600291152679716431286622334421966044750162479298862896058883621296901573471159896606451501832333529686597077819933665058668701933608075675136005562245127106507803197369899678763086477312743531665047788571117718650362657982228591051324649728592380533493139433128145364578456050160217222920572899821057301165910359581796995291656477098195709579071652983837412067348960335479934048594319638702304300341118980147180080212753293080127319480966950666289693518035881194047849227670291017744491670087989470403834669491084023838076218504257892772738081666526203255881291779477903013585423561369534112131343746908538295405418991791827695254735223201865448452680966701390011613725983341341021873806311907972005425201114415324642763833807998805564668299968286670695572742017956923283571866344930159641787979224963441002633481865177021497828100793296554702741469993263699270059738217927003740496329394408337080526728355498332332955088649454382994963402506028890112329166794136648999104994520092687962983272171278375138731552832807521734080183194585104174062430190004431574965720938271403584693915757738655319254873797942579923025994423479705295883699329329208573109896020963756432068933952343239533125066289893440624477166417866885310331439216146758739776011426350227266374225108850158275642970841115683170842588999275449417595877127422148649627732027642973618610678989428560775700765668019197751755036259997679358751683159414804314756978032391105336937715776086701331391316092602996050726231123064973028937675204745311739817400083896005879786428484035603739591725036140369490453706382354919771952079698444001689301128346534512798775494897929809931256419323215684954721940404464532547540321167208715980746431790843190840107420424224937024513069742197061668107465688060179665135805555714163248927718752704611012336528315444451293787446920653458947192163727995122630566298562030241624321639759548899358242323614993608305237536625727476604582258022892616514535605235440627853064461082474929767797227303410207681205341192515810895591867282266246538070257611992687249679200992059313337659542941711630022230913702452589087638419087927936130536781705530524572886613074881010656688358951261280142566299106958276920552765185927607528118881417688641724959015465570990646317886530768159807303573623146435896296731812011722839533889484934643283408409723391057090386091589285961558691558523764967627612505117640053860850146177316683568462322691047499253692452292348375575329809451803125499125631099036434395261124331280513753124672292356689683670714812327980084442469896230444675712373851273979981741520638648117892697836514455187318956598981370280292500185487773116940414193751409496361657992652818826684171651653550717578186075697279671197703869709738720160721457098340271583766002281137726405351107356658988340149252753120278668296288134775366537496614632856605501673238055377521747860382853264185624411777920924634932745381140569992215377004297773914700438134475756583286531972494506249055274266576133099965164348955366851951308732030753244533539557055069153648844841423059597946987715750066257366119680068080610796888505842340979137851118445887976664770119305048457281982543080793348001958082283209339955297361509203382731508733413169384669339770154263228279175233061682026650538719835487688260360319556638196094766886999843376450896367208805840016662400534611077835992709610635867312749270987876405529416043286924658236237877067922194022548771145047197433901501557088564955054714606297404709159345981827747735620822450997769723747379627900966820496881971951723150492439053865272802399480245992233790782361300917557827466659282496856503768383170391940219469910798763662574410625912961137999024613459033059965585879711949461455058857697115980687492785588875160619702402558272957011942086328538539805016553255869623580527704237943958363120190070765885893426692462994208589367836951335819224116298066670696153325169309862832133520433170684460577085961215153482637561871084240082022156678825811761132032840585650864583256854744454551753316778745691764893849588321950041690535786715657593395411002624136101620113094957810070450225658167884599355172560562738286082330773808357796688583488043064661606361974708266307066136212962898826553133230900389402659739878834679815288924713013405735147459527934488400886366191611278031172012256177954856933218507073903611317910704191578678825652065095709196491827335826594607475738046388423022828548269417066263827178334109342797047950683307472491684218479413953125132330513437549275194877293010406393116608457668850557506747756687729478142652363921343049652752419614530113955346742818851835704591354231244330273945671088468973360205981962913120514939997473441971295193164121368644913891592799702883085721423371906252968565569264519437048653104607355281529714128528677421713775064339865111817179387707183765860621982261122742833276299504114927624782417044093154171018625758345092189435711063603407374704612348644835317355093601973019158571078739012453612219248318228198076244289766251851091662319168998448963434804026240705492691464008201440936144147297289422555848782043524225919232710288074119836767253959315002882435879623497537501062490979807614736292114919639908342199688542930045079639715850594213770640654278529591036275270239991080656684161592939698208133195762638402817108159556273903811199629226417306773864419310912493219344586829383672522048049567977428919346586321920045918626220737279763668190789932625867593528815306231872087034683779378112126711935808434196140836377144483928701265295021730822845073872847444624016145820111110469337696057700042965789453944078448135674541986353987129177814013854023971397378431664517235619408501037701782651863466568170103881203018712274055933887355796186763546912338036674418309226177621130250004356685578585611918543163118208648114676295970468170128735378108004797183553718332279525868455228768430488395692720099963324935390158040674666527561916248837823455260721233778600178987647755776880897752653951338697025755942562554314111010821094551704080794922795399559326437912837027159555053671280242051768114216680034947738605108174183613878495100610394204172396163075928187846740616526358505327449224942973112565786421947064489615334498012502598053580708777028458791138408776234246222272946739438100333860162138750209423795864349594777993480359162613366033933156101260467912943865982813105085608995070874219355061120276757183654290690081364299824391046452721598944747727795823334357603031853504294120006099196325747994799098801349711404816411948859767060327736383718123663152959762299646256314766619000915838972123018778991797616514925968068401022422143423274501258897087449635086237676902745799709163247698682577704249346494493134075373595891184141090546485792398147228127468787085105371456275907966753165899732876804353387385519083133424869225907171106325447662576852050158246204517962607970144227050483384194692797071253495260828652227570489348498550677534818787573607097458717727534156642567484221533836355751516639197400270480953378647941720845110642572873967154470884613155164932520790429631084701368673928355927270737145654649381523667384315614139403301780794410044097553548752173314221484109917152606156913161733304976966875276664386336228127029417413190108990070277948163238334630672031575159529206213542719439356038278748897913793153641642446591074902972434836690971164365698534251196312509193240853530452733196837045936273108136684918705881169948360292466261509695850233830845950445778991159223558031926507599207672326204205431980766742649681908652130709756391218547621773975145594338703622712451329296704899236279040079358820132959807026567962151254417864676906490891096366737731397215375073142031181418912255205468437301516672515142008145343168255298105864877678098157117826538404231207822071658645271342098580073108542513098232532624580775513963468809763286710630653332933377642111425955840576036895381249118631241138147375518421228519844440245917435049295599598316649938629412768456413012811642337720564007626497468564223253179591004435023284529871206547685638251875620863147832800282016053111618551965858306015524036626625380668030590630831328131527700476835700475427730363174769519799802616472222645697581226389045944047900816573544681115981492271552871699728889109757417335735826371096063182291301240372143999992484933285701007617062147807973222997363892938458494909188443578932264187388499027723561484580869424176048573594155326578110634008094273535084566885312096511227839105759378804673501681525506903508028558142595774166063016847523276041266229908550337274589510587540367613753669415709286997194499080771767828691622835461243055317635638601564287193262484084874323031949631583510062879952533679893045743986531008915611676758020753931521991972859529986388680590902438482619361879639158760636685856509170783749407370501773336613098056903313271293646191843537980303607318071192943289299358484055320456742671187006996155562430196793838255140266449405252093812082157069712587268826602676359125612272480082170987032405428549444900277203994233271964550800831971170735718350863467176944585824892023384087771075660949141246190107134235036089393639187376506830540802335947939211874052790743767743267838650389821973573208215946605895605177324541379869981926646323840294612283506403403825793495673368038219731760202921552712758123020381500217623975716127503962074834383947177106366237449447690905982474102028198754890775050726396804408850536218629835178074746555877968059290829160162920557840887489917713304458794948679080844809557250646444502177241091862754037642874943573117505914462151154015279851408659604812023870458630319013933709283384120084071272761626042330785842160604600215906482526676368433021474575100264616323033716312011051244237096902795752691096017006523440059864158080748473592356961609451923364713704477115045017909026028012061871041072735921740774108767563905168909539911351067308122760245419635586034777406528584636617278435781183070015520388640597427879350689888236347530895299031667564993526614648289238939119269035534802411302944122131343575706300033942487152076793149985967110465876189072084096283865606118699350654404916059422429515818600024289390472259968439746127658941476049437261818687867580907783635957489537395253037608579687494445805353628159817295289956063859308646725878264803294360419514949670728304365554152554871370743214576907941660437670102527215392162183936748011009962183341747790769368616011667307850887338224098370180139559453192985478496345759286954353616319148754088423323254691896060237850931037790772778173848599220904542794688055218458642458257288539973445548322872303089957345645076697022179124076994217444690468992993675425183327668688240734873044854367949259119011523225968420662629890432743024629342623209308233039006702883818358258669729545111574566157262160851080229147997530994425431701386600130276560479477964429932388934581784994046400959668111199009138291061666752687256563158293086103616510856175114331360572432901139231621744081544168430733068534044598100119903232736387835956859032752737275052459698576124221615347592389853320221953685669756490207808895607030560983370993929409170912121800350768393116666297483557437792078179557948131783498001783133073676067408191729813097105781935387423857701712795495232610526961563856543858666310730504948295205403349567664250553402215489307028172333118244701336816480934732935530464918566579859831305551663301600722726075665478790340662388567107727315159437310362051916311043828919328528639551120875833364111378937993939446419158747245706169061952498359525446551400104098081166358186168190234144582689820971206800725354485693329944867458480272965372755869487050742381910235198482062407462286241550492274621475151214602255031514670095608323670109710319926954721629901633404508241238457596814257416123573752241095907488868915362491006429219217565306862105510676885483673425188094851105050088432194632704177442986066813678865890876526388026050072546792576068576367931021533419110544395939193078309304828915635178087834024296029419527180790645551276189113985471457903978237195445780330124194402401450450803290612106963442230183006398558408622160183961572008800765707712116248394526916390168045689015648140202152878932651839156151394529928417191489695350779773357717270828536914753652835100092895326864151484656342709674881368951607670742637127565043382374076976733283346987874914122520279693701319724312692798434624542978154419281431502024957432194253615624997079193813276093437101142164089533791281484928441158437633240358304282582217563017894181433685759831086491999190913442092278570687312318182365316536819343649054927295393808954975609443404491758287565248234829622335367177370026867460631240829385651992394694402801955122596337053438843162277230285410316589799240472432195275429324137437153430145350704509320379445063566841854324649326446590839376083854301150563012721957986303522570894338933135789717771997603932053104653801602642554477224166423861600953135626165849364969891061825847470808532843661053178907190333918212289445357113762870489789910316075650412851293777932886244991491280937409291688742676491435903314843572942681393807436001301057992799303200145113088537591938881992024864502746900756027654039823939391543551493629635941377653925400001990227937719630145861334139304020622462445419698204853185500487070286336335230326784682295765945444712081332831749331551980186721374461143039425049706265306347229043585893135514660941768427052484629812713499387886931473273338655386232818784128640531563518876596058910001547497909076754693645898267424425719248285129911583581611544851844990482745684492341028324761405422486840897410291740503802615661210057733852800752104336096435193251911152629908206844950296641073018653244884649731803371257657486014841251138353716779791069173833152734440311228843703741447616668130315696682104279763030480077713658553614627691723578192485422625661492223733368587892291781050800262247235343846677111458279123757153584608895366711820548936819292946148616027703671892690380397536096188252827022293177247790031930394082099064202212975919578859230622753669581738793564543516722721294542456881613823406647974624145962239083215356698791443010676674619375238177804552851398098368413442742795252143191626979234703158223245936548269720942007633185411796319134819167149966904743405032592330492766564037624253392953402451293640215788054784865080035455857217061057412649310408347545783259291791858990733732008716881911252107875827751070351623448451839276690375820329811384535567410362760928871265054594749936501135860260674749305916289551248835342669732885924392245955244088371615102816435558478785742209227213890925426009155600470186088921121942058881483893734321792621679574668783367683644359698638514527148449484571712964204509088287318884951893323989238138559662338821495858202447700742021645709750487565201036897841400781501535965680259950455071630229409750084249566255876517629502705752102425768812216376847894531540414103782719731561394665376537652857054462910230189495581967266434019666520880667852478765764099829109595839298368821357283849415878913014237600192611868220321945573912176348720421550172730148337743274732098741809766452866641676322711989406858781987320873608831015862171254321162333038176605328124178367975817922792016606225145992390618020362394920814434547854802862608860356005448677567807527195733852045144348029196567229055259307839371742310974136927168909281534429523294677900718809080509845270351472598269063696966323771993611829216954355832519109299774364832351852125547968224815544008990984176960855866635041430812233367850444583428733014303853441697039797713529232019995933823963562919909379951427910838724686698367316304144187424636523665120366549349499246033318671090331857922506795821924669138665075978386471526105910252646782184982779249908818016043616546653067136947937315346290181281813487409121667014150691293161853845264976175202629431540248100581813648699487804104660064955777579084982122738601915826444993145814347724398015973027242939007287329247674390360616980405831767883368306455504057005523041101129143614311328346218030047579098557103017508475931535949770111228626691467675644940922458803602097647816916457522500470832993075026318829790071429094258993341565776488307665242385402806319872515913305797183530219903789933735357011449148924025532653160460002174655203646745202880284476500186821288501903970757481416998378566443311304569508639069062557670169050794123644279311504598084320725002255265520145560767662011412808864482865365127163306088422319856111938497266344715656461629850186653879541891347845426781211252724712276218500108634534869341211682199512729385384453266515405852881734788608185425663875896680174274218905647285607252498070704804255322008565997811438311195474848837388747173567005348133353538995574870847677803750265909819370733006340280676144825065789570717480433379772950903439752502829981444932655510886624238023864423619991709953398151416365806753895745670577449555230249067410738684805279102534909457601996406078235246431597010126882313412721183194323234381558529368169941873001607871415343244175196871484524426103054856266767217853378222327225486759101568302298503881206238236750217869561871870662400883891867904972355877434629956717215014895574192941741995846480133595572514644878245234629016685914352375260482228766912310769610406786281396915623948906484275489439014527037565828145486999173361203624885248620595881055964756106575584525242784506983326502182823242048990483456522221070090440588766278311621618523015553082700053700819390703625400861962381961500763932871858804820145816143785565920224147238871053199614086093963193481194662014408607561434349368935526290670443412517586911567277053686872086161489502165228460974063808686216334564332189888761596125302527915515674759667649654343513908079086367160080767944226900825393214011886496841470058466701949256745157767993319845651517428060777859212252039111118437705746265607600439694047552519795728377626176944705865618619009101441896796057989689357420218644343509426475430929127675421418216036360172406911875081202065575131055349349088284671147388589230909836570401343646821882686241338716043403430435220372931491154166364079009557031518897378316611957793543917386835714617974071995305338824956027459943638574610646916889040998977672758905095515688157106425946599353542056785830531300901303759011225119670090018415371602256684582951600303809437012069634006233774014760180300590144455899405461202817430262465943411350565988077593135796417043841851961565764971071536753266482623646693347821210113323153840626859858859079211737381953677484108107714520735898249338656205030439889840045497327273812707995938980745924411574682723340202814543170228954712329190431604219346065740710687428830410286808419832719920291774722232465683591859863377780247704039327363639841962406085103977598185056637116714233559858716830292555910366057892263393006649866167601010590474832581313526786876262433494625668380144903148376605503257897888558140751475995448367312008643960745202887067455843579217720327711845373999617950455256582027533483599364999896434084330311822697235984916435330928695952666688021723981912309599686733855883360350040487048726834972803526027325614518524161610494147829021487425001587393280754112439935410587525076899983578875382203541350283042664150369347635926631036511950937995406293296930118073365626185614818007552150503376678084262859031368974783059801613487640857277148532080967694833796633966507834403891735281247458485811662493945749738729274844659361515402133528414217164205893469591604687284933457009205686081663282712988338085131240038940695941848559335173703807037096647612469653213080903979048842312564848274080289092340470436112316582461322803531079712928094851331863598748667998762561752358722987238419355932786109378266466757323644641588069220352744737004882239587470989561720370696108025212046091071699268104059325790034570922135023993988189912215467172870723037319768263132080834700365987642236850049024659978485499094574766902978650739960166132212931098615959590228512049914916111023081390554166637907783561205102329285099977669063931532778538487615961239100889337080022638478630190226358924721575822059806429155453454654538309592566986155477156294231011858125871128649483577280179126883438399373234196178643651495244071737311739232596745820566011263810453978451373697444319278728713048598564247793635453225336544017549265315605848415043834005502303530612467791271155926253589812533780031882572927121366159711385716314804627606700143967608070722046527895308972999687517721007363711493784353875752628181286666308672095195038601100470115742196639354670178397920175309797738102988375802308778274310613793522830592916868626988941238510044957231746948925093167922803647115714139290404666084071004274259609502215035360189644198962000570156541098093777107970810678748573782471771748999144557794261294451700620086843322409441409935553116420098300170273491505429025990975989450871884881096343988618591582354767268559943355936789984303540037070543014089772177126487600608291291783299741357519219867303516799445070588934001334635937087610744718685496243398992110124343071488710036532228865308082930640909962567855230347845086217808807918200543919279933383516824488658222296985084408732983418107532200880467686934509743136499215922821943087236507963915635116072616457970385219956602350983373705674872574128620223393900402302621551393787230186185661988918466629017125692065982429479997418046921159370893179582432119039980772266591176062989400865854222320300366112155217357781849723266047307062275974986430883615509767340751920325508328915666491599681487620016212295049552998402255774983665292827660591105010165204013162895287604245868125158742602314431225205112362422088189427801618929723539401694336353359716428025423215138642611466282834522617514048150880838624278923376893349163637816655642927068939792550495867513993311734290409262319262351299747495008157842661715438825616535966163083613205522469671395317177448818939566879326689333622178197498490525816969397524079981106358321131383494610512701705195652968497305725239193513456655656612935247605235642869280997078495626354524104832346716764816671433739464625126869587151041366092637502620366150116445418713612380305959704493258124397195077607400208197325073673528627382011250991951906786749413685457772812504701362519682687442954731486543830076489229210418915056883995051407445889755423383059449271971728871056735342256760050870229473541237278508779384683832770603407785222297570388599815253548509327172795737658552777115343314112078421542619629528011521028037415790711749953227241718158851906570098673907912035055680610283711531530314117118189315011647802499207920105976156169099618857222557987831545712645968625521441371772486498132239980567709935005559137883679945205594603514385324404462676568714900909271452366518373250672287450526124991299987256378370403371811664687829532308483959692385542119260263598649885789183717550844765578432495619890287493559866384009161209787018520689091596920827188157232335543272519025755886994303353024688000724225400654047415315304919730658193707618331052863782902870648208468473236315324275047829709917207953536865751060912260139415418458836815942654261054522306132592207685901767502142991619349039001556004973112658985985613442434363183791183922658172579623500590783626268597574679885526499310983489318764732698504353262006258122916442342696486447075354776921282903062353830522824855448742678477444023306577817914392356404812442249245254848753538713692686597789919445136689473130235203100348051164162076630327549680215624249250806403596687976212153040949007609180186066266670111715868630757020356284613446226036796356190536711717193461982115299827458388934897325840818178787163232689722633565182539968731714420729444333872784856392331787542280688795444574546879736440071972236388630767452959832676021020172472652900349072965309188846978003097506941925757720966969961279208578442244918052629129105534645480995470836152173812183663733705155127553192001778230683239127582517718052044280390346483235233527716090025770922916282054170119419828870491751904624286122425352755046896094437442843175772917287489555320939061110447709553526512808063547308340316796079706910335204313127849723715511718878545605219465580094614582796827518581639738843881355553141579811290173869015228090809147002901209679972323800533436887693781954415215077656874375248328084788638293529853593094059750958334814562336675268967060522242368438639750800532979887424759210964128884453006576321226688800345016119366011141834221692881759310508255319125165805689648274348782284762336635418208023652117183652970537036074285271790425401000011601099696221789371598812544294746509719669486082064485148261999159232613182553215093935222133996351252357326809146940374564896900883764198078343985943102736542798994216232896076278013910687341160182422862726310529122908861107159915816275743307251097388660946821393413325616853584580695135802944610861189043555184359355773839744003961602737657490780187500083793479494070907003924674528943394669663663878629851954013303762392290189642102167971749048997899597686252315908455907556465808895810351495852768068439771435484771411285362155237859880656059687780671912054533336807686689975716929968378028226410212476908112436996818788418714357236900310870401588705434248873676542025861042701178600679002046223585342389250218517391495381074617166263728636819122331853109644698109546466371517883248801457036939364719747453862268562312531608391230407511879984332792632086567758509076466192683585309279689243561013191686081712680700729674793437732704589720039905063475905033228000259358562936115930269244726532445168313592560075365664192634454114440938299566695458569157454610481707569703082886807412080790344737787636937163150418727600182301221929821560459486995884296075821147462391444253131461230660634786839616292193167506911856324171289475640985449373916269115920986073160186355937740597531062130825023624776408336373725488120932088153607819346540602160618320009662713781550472445330159511490436664085452603974738890328957262832878612359680802905643663031002969263730041784860358325869636537030578389455119809322041717440682006445203569040283389701826382142996371190762624216053686684243668575185921583106447186784543680467628093232528381119197711562472672206942271024803389138824320924172623157897183432223755150442593970000010722444778196373006366340770430691521544604974911840928479293588072899507544388488374372211501440072967272902058841122020952954059026410545150095447702701167921249139856826563013911249216812077128958195038493309358292327585436522379055760004022583407972926494288875309285045104369418079007297772672857628804254779400986825859954405233751853508690493015365507585682658312801711718517455385499673616118596775406992596076752262269469295689948292129833203802785794573600558401445290697780425397464753798724073702774021486387967108239070037655148971289836093693921905800410946213640862740565301729323859922626313026547818170931086739709845534910917078716498694739388952538968929571341777479595767851883122830616010709947276255762584399591163587440194642791842840603642878762466862849605219002773081747137330953768132012624098186346836658237586129109519669359510928327861778233064660666245520019832436013519045311935175707948026827171664817806612451610807900667355553815961556346729908176700598233748284085713500735406537261857960956130335874815825296145737935302504191592543717365193852463416679070901988426000560214499623350109873111238502662944926067669341774263354691845802999944257563832113112570323124456879022614528005126196773279545530471946928108042746443592297875549741477524919124513844462613087866802984989939659521440314274343877213253021412210150683867366198222899446080671625342097616958991818149814581596481694815217883540636138289592437222234778393065283635376823730036402787179477578533415381976569115590839348292701254751195540775826756783881264115085139160645436546584058863881392427118395095603430029826292034897477392120257499234007195489891467747551856601832961212722045023379955790502810182625045600077535421492181352280628392138465360997216508663966145755941807588926634878439572321967005603170344675179224690353669646032961505964788125188642408695587569893359232037687376939550294827614632161069087380422158311747964953034322744570564367568220680073356369326016999263555737944222344591585699782547799583997404366955631289468366507148994863670182370442637142845918416736155748217317512219697081138490774687458500936529860689978815300444044218060103680182274133960482082886477338207840438682403275152045128895304084641094066359365044482445937994617994646194008233307585211894522892613118827675119383953767650398232443503502054885465077120903148715665962022244944903296794617773228963934278701859916511145444761103114861440668723132064426316555335546195899158522446024444025369093145891800631099899244988976296468314552955140942092435744913520875639955053272323247595951368628265200971708260074351638834822132669046305214675875867048076410360593185932330390041971791867599431907341573691077580723695029567439733075483952278695856280882753181623150881384113486645363075557070049302478047105499484286410558735175180842262504507176985551374089583885206811359311070780129742822467747144880595996051439525829694707904123942598404021645338384356128338978736490310704692241301958400402564151504808695803649362824061669852910501512085868453451773907623842374835137978446689702429730178823908382889377909073034589557564776851580840161441387604777252600687203756315999824429657497530341846633314504722508089696600079135976078038472166715480149218627647985964298760714868087292291335312243704582537577138451654372917320120342383001374505196848737316949966659025340530073435912146296635768168246224081414146875948424703522159820159782218011720760658768063552084557152683218914411328955415525300008633501830439436463587510346608758174234132347161545630274530544280775553137771936592095273864460665166320742384023520477190819670549343399289970367313715384573713757291440245984164336232484121470446571233926423588695215162939774466840415774787394057646334476170597472541474215729577369034947469932123639311060192835081270629370666594535325502552928630095717728976598709468583217979735608017922940609855356601941070378781224189670275664084711563009142979806300945579634074278823640237037365988137895923646293930919442100734088519349133223622555547569640032080067043667958589674553846404225136497322492272943516308188850294972471302045554998634617934616562748968835066851184569774045663356722652410079762310970581046826145278136902956919856497228498495785435937235479400188902870563724655117288943191611588159276706868547592809089283150196811066089253927118454137199606634913174571679663641720071731550310153949701669891805904065110389326261057607801785939035502385057904357519905174404671824415664534216180542817680419360131627380523359484128967235147966919572669135095094130252564682495598176833631793924066541244595932921469202568504537210443034145252405269139604663945899439235313836251688165624754007653478291437577428989428604113148595353398829375007019070898884088018001974394714018964795696678134333109592443389690900632206973926868481918718519003477991068620977601715520970826457092478809659193509963058209131648321668995295139260718163889677388164524758163593355419901752738141426351227464086278765845602161633536164051919247638619047677990935503947632195759260885357918650992504755163082777427572970582304507939950410122288806345941962110074379540123846117503338367751968941401086785811451915335283921402512495954157608725870339076461134834412081190247687624681209086704098650580576290569217658578874284486985595678711039765173321432527591662411445925623439303227688768889269471461485074340839217776871595171499548982538021808683375018971469959450791508844367990186742309627828310203733127146761773082385515737146862757024368087846351349745913675875917033343316280568642421822913888120824578369387114831704083643644029324273758115405337195531429649689109932621519903962555274869894681880449087265169299953331078612329380220263221068665187245001524010665766823732068973548359695191456349778918319222231841884933635827175563280849889793800775967371814981014071896179140679873872870267363242969529868663792254217511865594821656747323541145568891722074865685878874550513257026031013912851687724271950954891163932207061515371368319407022510420366507683762363764487178209901046200328802326116230381608538544204622416117320175741032604054259043708862627092106698496409704091060204169592063733673139971091548317241256981954824622414927282030431052475286876115606162117391276217112951155984071436862203839099643784006196236307121843430662593397978904078566922930863561277569679867684330462476024839817731387535950281602377026543249326763145623277008827106463202590115130041533054252291654102830560518216158859819761193527143200821124405318012274983249216610672144981245484725482246701001786984417171618831705590269821877345819148899290379732271912713836490916745524895918695522932760747062664580403898906784918696818923392950307384328668649485841651869244617714144010591905663073350689977293785616892517247301029611153068332195471168078520681522117388903535583766280809417560179574700242381324597067498368910172474460770309804416927969731008165408785156909306500975814325988127279333799938591849880022254095613339857666324851635710987825433314529152237284337261968152904835383753276190952280632617495811596610756738964646268661705013338448593662393328279565040155393371913025314435556296110277895343496790878988844659698620132222640783014291820282865930646222580151145045016891877958818041573134979381634586752604271684390688225087993088219653293142482673738717225126474269849592390312110704490962714652977988086029512657802158510542141335583906182019726429982985488074003908536239729513438610643366148926916264892389125067895049677899669964062732924941045737497782189570617823810995365546115444334417939549027583040736069376552434240618034092882912675755901159129430187121645313599587662630103157279556789935870249688594368340965758843732436711540292173559301056431349409997643349460580416378812108163883964081712862668021038869364439166639346362467124208829907120128694102870291885313746082921878415800465325898213647086358951925565960849199604708207775584059712569705627209484811041218497422986200771080387213378271795847955155271021571834730463652199523201794595304521047755146461338343939793138558191378221304929178580141786121232132527739290214702432266178618056395202046575091457955261333884289165696645035082562512004159381460844671365880254422628878815017263705332454709927352782918834584524946370623643438713237763371931576200651153787109609351017577796764514299774401496885733120360734341539803009095968086139976663059292859112058058231844842909501314993044807498533403533406714155773437171257610359238535696884332038205812250129927385684964430112076483830027938553872648669991659462997105997434660767898166542838927618202011380073022149142326061793744163299373855518426009078956142305228465283513042460209314411746451439459613305919121242027137392790206481547800159560366406350084620946373393174668586109189427577627685758547645410665874247329870041309499784535068582953120324477578364985512749740212829419273880672066227926029345860479835136639513802960447691314097359382576592407655005359478831117941827233197282980816611189688100843915071819591359600644713572671275423353798151503182127200599728476050577264640860738280161460784598174677733235576606264407866433190384405329357008183799363053987655324606479213809665555802530229970069232263048447010665296583195463162560389953097998081809469243029402862433688435215979213745903086705296185635424195466584436895268490148287653135759977847498036315303261401075281845834996436772410355302273619962816106005785395489713997879679771904242521532908598319351210324700897091433045584679761592018392075663443994899257376721214056102571025743123598734242573748710177790440811127112859141625612829147814798280703273506154952595207369744606019292423697781736645717392547834207462715924585399720692670909120895428842076503314647676137576333555192245193639795988131271993039098608618887992629138890278302051928664489686712659364185651681014282003869742901038585414661756437273477286507817687281794129930197264198275988848305369865928031886210844990528926061772348517437653205847244600874540320045491817895587097659173653030322439229587083770757794917857820622220745501228407744156656788820893924731795975613363667874038101838938515337228209398962180160543105884736326953690909838500860999825647341977260843929169912626967376278507074247976245426923799593991194076498340703270597606630578244283406355210548579500640431000071974127830024373352706040788761042175452921509411019250741822971682777353625946650566585341769679241675074295953186468397275805609072505271340322928602338267886536403666840816273756954108471387705884082408841489763494490958652180586781489946006308788284141950176884544706160091055650193791272709078088931889225004741998311875744559961351817966059049022663934245391654992522220650384726149475318699691683318971989894442081797534002073153997044125187932919073904296956639916312325678950970815828071373413296646618331106723308323444265826608189229573017373062708709132349637203375040443347913989131684266543949939816022016331250745951216890052558856460949661922116576773985385570577941000763871158025964926505784688960442968299127861545686460457144676780281812815530462852676575611096647153606752215488530226989468238778373854205206776580178630482400715485976774075527924009778423487152795891285722084479059911584084453431078453330837645776698075305538274810476227630662629867496528073777567975988349128977644106413239830473485724320313862063876607527413053123654548852275506731058349074871587605726529285206498214976708247011660702147122071662262186733506813463801849104362128173118465284447276324389906952141150552381906420033481792780076907174620142550127660507024104040835291632666942335338922789830481986357004741477201919707557484731831754914311120071471050802981310479641182996793759149949893361710650546073543920708514940395769825264063191409212262641017407586985645006520534468716754740208215467542314902586881751456947682531619503961515882795477195378850228716198988093573357785603488978777450849393284159669112023119994606701210443984691271445576764171295995709817213608748597011423375651556326836276585681462612787713488024966263688672448574142774562754029250348313557150999793991577066870150820939502398248044286212834688347136221425585747009280008429968411908107053293836592562074757223004579458397280528431838283669604130592622807956422276293603084310877453150114460370317780511112895702909453008123555769340375820605737152190179608029870611390438474023110648025102337813609816176466876456966524488157384881277610251248689384034515223451627010536447783557281760290904048749622414971695959103815175878803569038434021316554460388582648480057092573818167856731907976559768223853040988723881258257359741331171598807319956073022832639640356487294115407119232575907107910310101088545889956474734491974470684240793114693367033202905267420016006777671076805071320908776945176112132691058639471023510357845338895067829252717151475598890840070503278549125754779213571092971832008830829775744461098171110638145252501449046114872609628383137020289975818893447531743513051086913119772295072973879779522238555021757719969695926234544417029023968170510365990556170885883826976412245409837887556775589294836734622434307303322701564056766620243960494071989465358800921218819744845185690691813226310734916737250648474251022557530139860707737757462332187674618630803081876533019318092304575336716047149952770155911495964520087051014247044908261355222180663433970767834705685618049876054673061555822021647492828568544091737702433084110565208706861070909177663591419704217756888495346614141763586771308717136259539489309392521577940451923623335010153524220198994412498698326713575502093559780635738608271188020021152887936132964224975823542045977283275026608524881134104969660005200579943026394611947014341277967671828387837211590763974321962449160928419533266155121193141293542236954114776813066501622427836594989614125870021993328920292588223639254292658094769578995459067179463800279021970378802348596317847879348516950374227290116480186043664588500127998516269889337178645971714042407483056140655073980835388171661319286605312968089117223762662330485535311071701352492568624737582675773286835388345674527324814549513795658185778918126810116994774493194882496192082350578329189386792875097572202824280282802258999756215965065079617428519974508994320861770281550146439716511612250737485704102152316540607708913707273688065048020496076605908922787812415709242636449234466369591931701002575905416681048286516211268472400158786353204452257492340733574201956548164827127260089871030077900788906325029527500329931871453183136419522858797904829414631594014977075099783189472780078714527027779217902238244863904311153334420553751121264362161649256524737707451801501188981462252335104296680168369928250203668132056363035630233923424707715161774427863198865166712681109350649161848755538126556709159534997705690871362347467765834346289626153913451369978696389622564146349368215496496617321168313262845264497131476658035182592330820185781418463580960460230481020005148044273434597145002186458438637830831614770177974298873947784431627789076535822406202089187066689306555088118779565385587502878588910918403612283018619721518659629397918312304036268670474601895520898113878375740802606231420123291549505073046217223986544976193705505345840377747498056144006226906343565113920184420635671226768687457090585136478179806436877264403985327645280185258699307120526686203701436393751922581765728013549234760399304877795979518528408557089394288659423551198680017996389488045485744624430724854177141131892206482500629185432987157335445425258681854463985871133586148788982932257940597528157602976181748258792438732380257498687305499110496835215288549023516570354977240631896821216483849385470826619955642407969212686921049885899236581374550120842620767491159721039861847953619760931541069512641470698414618836935252533171385046379914866725614097540726316561263479191746073871147133684188725275018503694792548709525201253360254487982287229277321167409235710389128802393638903684493528356992516649405409796982344686621034865416596029394458680896081662628859878317998149009292220624943970573446373837432053403011535489690871842693288631633128579214600189460974965753358881459052575522444736137080427209504145000726248296342121364858853878165159920296402349773152169015034705321526184571742870044812312871629604381850601950093771562756682654967464377400765183628021695373499017685680809620157301348014371837368474838666341993932675917070975895570512208469385342471291950931919918167216391098379261324566759402661858998448770985555992435942179840976407394804273850112758104361641350128372452474956829426670690815118797430539822020490862681875759076888289707924434537697788857146288195699875856981542717278155714263357740992000065582353808596500772474701798375805449326115340126758026275080272783326035503660974496463892008628362403161156355995247653552359229367642838385950593816654488205470843995469011394756859575237729586484905822540630659254950198298253043924726821101649792483336792341114197905952629570088267613627902142403495120281564113973328977893505505437154382164808066590955536003746232663787319730835885145746865460310894341685664452133101377371624732720886164648998483034195634099832747247532001321978766351972143710985085514998687429626035978978422090028776896116306581112974399188845518156263893564604177224687229472034191973955910369802028861373947058303309808199650652185772453683151096041891735744498052924451167028508513640897369937556683132369964162319629092909552685269276757177436102710525552050764559329469162924274428815131925969436677524907610189705239650362611320652947664036930569517925800429185579876963938080163508429895116955576099210004799865090342987333875272353638940788146335257105363244046581744732443093804120861003858397263335950506418177008225337805318864231836454864863495914702662559396360635810393580351405657880481589408973662887380099218711897766084414513846944210167526387850651713699092093470864620619333975612370919575013263562833166171371696453409566381014855052973901390331982708581596228205592908311008493094602962980180702761091402643179715182528824207535799159704366111317260431585926965933494484758111940891833074042765310216934306836289042129223157251251210107205133838103264557687001243786047361981559873699540736488598284098404322551751494261960905302492080277243885611832378677541213536659766286583797814342245008976062644912137817066916057112062785808779370950730318392821563063105375140165440169354233185493699031319574187676422746931468042702262409395384504080212744950898474611918183179129755221852808141096450224838071821779401089480561941759255859013621276573599833694935453715688872594963785448011262657407742196805269716987148977707592675552904434298796318867219370186167449979092418647195535596887441174916573058001482440348378330674702143438630620373881778616135085013316841388393880196433099633008986933696706308125173585064493940424311245136975911306464511251401436581371818458729987812630231982620821230266231131165549292452307173830277074806743884115651620951785887329721824218034212072453357249986315434882173943679400685597813689948421764704799576427050072080320966399105452664870659898975867600178188122062647268289545957315594882029146599858990222679782429913208105893448436455058522981289682136747923756935712951335294766302804735222233357682089850929335041573248961105382900460916573401185438214781065017832157126961768447670824288659068971168583705617322931270788089541286302754675489145848793434904466930182227233483977010536029453317743505680204637736767164319920314392987367026835118364985367890090740383450030802373456264339133869651227467705342616672343128315525913129841229830443229770060544980718720064167048773345343112365150907503117196046779764076446949804754185675450729387021220371633569923980669150457130987063515924653126723788202583598877272535675422326428527512791473892707459620244049111959120209354148606962697938024802074579512089198253008389201461057171182518713737209271158573053809802923284127952247852540409769643466828075328506044834849322016603630754184433979059902314036432954822096838759665899193966703918906551221132381537252318849759178984329190376561435396942113610749979910026959148257190174500413491322517952783972929210411303637483389638726821379961862193232240403736055877068432720616941357144500808197289494314871160284004420642216721422041874174948680853165231511572887793690051569952141799863760903904551632289993327311985947683679667980986412422810922393861041531350762001517873424699175411434901742585908541089238098393671432166257199455143591775277015932417600344753748199526138318736689971225162130562964123156703870653540570814239189589387613373334286202647352720783450370603606818121230348325810529576988355696186127495127843607412902432624548831358851702805119324008281940576842154813610533599308091648405323305544655244481144923222120524570896762715586139102998136857254267369674186996625382135287946211651559649579193332470125365929695209640339079791733059564829711752876982161248244902509989207360986878168544029053796687229594157814002590986089443012817690860462275931763366905119698680901034668129568530078539467907919508024816472418734480697368898170875265350418408165518259298832488754375638757990616624067568733391961904184525771759397008312569918619366977224952226985649199926118955123730372137988502132915793785538757602258634835460116705823395852865065976594511505206181535279179662658940097273737601215393549220340875005862456865698504781083392399630970069177455009048412165236134396449611091127663899268294188245138857924354006908270386578396321074269334415032004321214021591246540713494467868207611436375774347370523471965894257063179639207353483689383816227719039459832449778307056768990206394901970949981425254970769870637305646453895072433123504800310107852576988746922776628503976833781213544020583603743128538186805074790745372416011224702171129840103727754185248656203791453221905150624044067281163914197359433817380404469172171468797340710352520956687839489386015650812772535086335005163880276332091795196566684180771985359397878394701753800360185831542153356700672087928627562027063546996062001479596885638172032111231268242803146970092312109750713463105010864873472037086104124102047833909994209092197700352624059879582670315537181819285642426665738784698421501445079451390741341766691486756728615430693829791153105437510948910408354789440054091961144628852733741696094567623122231965284153366058257352486829540804511238942860612843248841962926359937992385002077883238167349114902231598342788794668770730041608456018506046657895417674558204608257749061464821380234926283029773713559849387874760165064901802304891613968033631380001631961375379759282556255439258446749564051182296280903888570666874917126933053143232676426377841910483536603271943748884169557949821691175886545356681524720246593888112476399151665855997389023975699891488740772204498325988390154620393063034920833429204651449493631279561538474097563789686530170500549482991839428548730073240622663323008100997793353107079449382261846437296176157783078506013729626683983403899272091027760971079749477267246048220987104418981299085061948475249758920842833606420207395417912793815179579875697463650470183085112948664445869163922063385861585570993490062868548532623368215623953994726201856137750947709089333791111093030618338378631226028241155088870148936675672857389639511083952816851965352756511658952134365168243351369074850246499782501645485778456523826664678218870922654065947359472460343806947620449096592191583201093539978323183462714281370827282886214515334032000217767116994339365825717538604135703566503848042730498736202369858225970833089170917918078694669571303828714182087809690492276380490569456355847610743798318182059908959207349263076613522944204100693239603645612461168525917316300402189328131211581045278083820000949870318664145839724625668219530593936000817787836156079626839453151995612006497947776664014652599200478534557278694900007589830326033481257607575663522090172348225860844330847171295817645802268404507459456648713376035240767609034232925207548497110744264126619582185924474648190813404541883126625425816760487603807347203395343958448225312006637803209207325462944007874041765775028853722991138009634692261796290004419961350156570852295031710183045511186956104050695728295031020862088640952252881323362909256964274935785669753244018631238171798643456415333959037142953931840575302552314834660966724043570431574586680236033065695771527745541651943485688087408380522638132561733362585341843936440569512421017559762058114513292441568528179512250555383883998264048427518328366266871777576652056558342832932080390550737162407722592024187679702473134251032348306484129967486148318631970699040449683101506227870226439623835380640502177812616598293447840940601168049639221088233260663363861928335387249514496733093046299230551332039571595944216854429099630263650685472585720562055992190304998393153308439562338621191849830600649428775832341476285697218995924578843924838666734792948694727056243881469823850764260064393560594996226093243996357884979724547049808079862875669553006509505190294381447977062963291741293048396692961754135836532686309557420370154147793102148935721309379843311793763014653527398453561293389580346569586516754616241848566560218997732626393570310308942743252767686567898871699397797357953541356594334449070956309989737066927966785026020247176906560219519824260177237286947999397716126017275928074246402393699983641674290296843345564964476456778183466011018072924120470566768217398598270415620906219909494870764608517183277097833643306171673420826099353385334062290378724536446602286989133314146842944760846234582897707722106846038609600699810285534945491432561019946527779494495448231062994579243569612085290807982681847694713062713766983518659273559981398540046298826659807494013831932890483485585083676119635302897289894462087953981588872945061505892533336808571657410232454864645232641082584650106067920042920120903672733140451784740815162687918574653887497302199471965346951539409994566048825335211886016093294835236686027970721142734174926237351577560805277878767935219587324248295830184534112076941408308362689944121478166956609601099750399374611801294355907418283416695096344972434967715301683769516890388909529959540626378842569418065821117050566952502693830171570960716493482973259968697155689571344832248112571154927518286712480037433911263245878266841862343238337612328781324249480720234011938648541811983100206525244342897306050441969433061195351614275015754720211004835416466248932561500973970225240829804333749052555661327719185446659151985844633600509319194334020700980955609098138484286300295571258768386379549659702250685765797427339702443378154108565014361832877787212436171507014474316022851999573010200342741204812300521512424342095413577006662539562134777717770059502758017172304907768457825453153539784732774107706390385664693466767322899478076516944542911428212095077852980578874331284735795723986172317287948169420375202570937695594077519372064159637426850870316730211339605892189315763055922453781421361808152139643725337712001454306467740814324410897545955165654258768820534899180092894465636578441131045655711110305445662583359716784615315117040926508029765581561238320924123703284849431572653289090965478352397713417997912625928983989492283448957215703251217048593045612772892036910098230185082656526600293621284624800751107699979470969529355536478622440197636487285514947268061671099665126579475411006484785552061867934769722957879939277020549316942330792000330111448191349045437522209870766601109977014598843753906830343600619718440017475045094702863976047928379467012435406659872465747551228002271180943743527026346833384038803223114097321684681305679173266035164660145280220048673713546754000918664489788230562514739894355332184912711488627782866661134926517586817793337820939159000197161177361439911636076398483800991930400546561587324111011198838464327640088569426450685011846821916346264268291072702952736075047459934323232702206278133709938294141250379831566696271018312362507293143089781938280732754216834454113491666949309159557344964633561958917000426570504662422464164022198033324301960686578653396154852247184777121971042606722687711292704992438877217032064166743479621818988508611860536654103307366697291820302221427863407694975499380594888501424895632793100698762781293136842317408031680852764595316422725830728128519802024054027099261976118708426736054481795727306572043844154275344762097933187464964595577262483530531003650325222147370050754093204829708357474801432095713852853665433936559060333997964140781822674612341700072436028385211729500394982484216265560620581551091031092806323624715761939178602960779836571891594398560033702839917762642849627323136523962743635003928218536535256635763600369721696918818448488036095394244901116764349221085696564049196752564474270234352848095827318702043345121492698765444671706504030209112384698031338361479400373155513229491973887384632004631495847492600869646647010616523528362702877871802391503978989536332665752956014283059816219176994610656128611803323482364317494832580078700062045462109808663825636335718646849473004182393422516732015593284820452193600233660814903319949925847701037448595549403611066668712981809887706338553964632450264332705708207532333764310071785831318680235963217716306063467034147154569536612779432575764257451748651792117083811165419742420522034686584644215620635402841234454630918730478520803759612948546633666667202321768774918495559382300299498588086831851872123520557196801590707453871134971662982232498614892573119907817042226688092980903044493828667855313592956176600047676716837505563143331926333010825789263466005211192049667557083024136922571341288010930699711605227390741634972025937401694908887999427548646845533621320581242715426958983516635685330553219088433781240247978286654624953416218034206256186255296300289246407477764467694712109514763426816105768376114632805099326873689941391275457148375966777945635604368990837699292424844478707906746019928483390869464068386742424375648724232591817230821627347253458778378174470060200132680513181378103459479948391772168304927268521463517750041830567036506491657537283599694521792556999488766999536889174545432117755338941513514188534086743470542129249763772211415729391969137560049603062718631966258494984875515325681111757487632691263338737086485368440975989204018170631051261372942955809613852570771042095856649609592978264703577465169813515779963565461271283483766448028473700486018382908279196732788298783086298346567362207288953203640798872500488653903801731486371259148175859580761680368637413086634707541216148985152418229217300701305895467498334963713666797323025194081337006001571361651675741338679936222495717172779450617396836166539341549259909065942899220387884101750275541768377342112263877533018210375845981925255106992001654347972358587927810038540714583410855016227828272624354502419226706881204228342015096327650333420612557691262989589182117267750994758437158611555185453752732035673263963665783764887056383600889795773420568801649844049969531502172147805716681909852854710565667602767516325800293507104339657099482179275242002165457368961643282631200526173755610573596966208684987533351317694061462518881562517436499602752609089685574547394383616352006859174849517304228373429205869304634303286742113089857909888047547803997055280355983784689474760530652740646049427208102144592703128008103456121033608826789017420796422746414449087293091804849059963546752862399755255372153276628497589702653742418750086060480638603149797123657396967631705556185942949772263586394990419608891254731451886713861353345032360301150553933666808319749380325765716224527700775611633212797197126080306922754083341154247007328671447471795833270403099155886803815424860429530194044370038975791500049095552237001480744412952467672463262369681709863718782799263078060780842326081227269203621135601056985657996981829542716133728515923737956751709002650541602419514041423304687443963836345026519690846700140772738326937885447093725751831075185409123492749352101248339440958092246824959456148400040010280233227541418668432202729166213499322882426415294041125795626497572681737844532697378739536804829990735353699974023125990385325388970831149555691498827098396214851741687521411220100255863414431883915011248626518614073957163534735813122217488974140248931233984961682326162283188799537418918013000416981412995834707145707905882359344917130176196539810923744310900568896223424448269359420415143020794094231222502131693891028597542704540503186814222939969373324342740068832242696603775699973378523245797852600009232561383228548453461437833968053862176053263917400793242176134693588895542433059136565089072629595659125409916995863150564586447389314727300605105118548780159137940337993901225563807162158104417367834437836042072013019706613888735008465881397535275630415932640990611899870474966969412269211884511552879511622386576285718285201485332350644460062248443279460888628782102548042165368388110245004933130054612530305898232311746060216404631088186290864647218243843051924043268607703876136608958825722758187081295189236683614930931260677349495594547427594123993008661603142867951066461487348738131465527955008284165372641253565755426978546983608775927559425606988361741129165924264280287709206038287724681256927751126333793559169972601189737189571117542892627774976693869976471315858530374659627009277843747048401582896419232654833487873403202771204029006267812270995527328912377065407301352416711560913188331737091692458275189905105252208498451471609056533612419334469358444108045699160824839442859172657242761255144193576033356567184844644622231758147905829736799443780184009461634511762637016181971324094175469355483759489598012412760766663485870137380529651900953619156048406134579429050456443173863571267577594074460890601189108617719234128153005906626722752060394172078955525707357363527676629557486619885219326906426913407163172226736281028786177200398632694926241822695026855603216783582188330421051135154914526379046608010543231773335149076139946085415355105499901683245923390969110371315763203881594184052274254112486592933850217857382707696406009075347539159521506140428986840986100558489160164670771211522103251543572973026298854414334695252061068060267741412060769065750185280242736569917915698297218468582939037365678318237413747084507457045029379110504852891684311026036689128880189451303470289001832460949579698400363018267411288318554225759428586794702674089217463957102692933430519107070094378220784003988552002403253598073902148571741901563558157089771248425107761835054277601518043222828068269287901853973806251813747779174258429420613264224846008316249664073608213903687940891278011552492409553531101395965206397633473088888229874771478792787996607391779723489287306099585274460669521363062684505338302410276104773399856976606351586401582083874330779997093450214478380239988848204657797082722764597495542828741516213587791818143402592469602989507313934145016828225594418212378891703705353756005505683242352424944629758540740634002449739068434766932513008764726625897708353031631915816234643095804159038788783551824535379820929239564941928921624065123071650585899064350536555538034950803029239069132004535072479611769415856272976095241889468428204072791499062796467418976164081364135830968318642799958332003653476589732251533780581912526159480319188952655885922969673247827321480160917792790463596962208669089175996995369121701656728410673333254218533094472241374306768722987702792807294829950856018140996763173925047980944750092315715198259485190994415634433774468372701364962970175468672298761806240112610294941576663436491465850190565504111616928964253689141863220177123637204737218378792740900123601237516819383812263930063371642311497729502720921862755541636412840556321317293709395287077441735221028033430444782120996723757895488373733538981095445431386412456622240298459519257158717213184193112545480409039956918565443041630462558649061361513132282184959831022616683708008274098578266629981259889365235871080563266921386862239284937680973550601311129493071338870341578032039580135512231913318775141302823021619592426093599723359350066756023328822452554984437268155844537505073526164663625728785390017606887165357479597372993642570215480811428646344306992223661338748467359963390317870322836977471936315694355918788781486799271110351210190042734927547861104530713690995811819195499751860395787616545791382459716894627335677724283000895805070005156922776005571557627019407761417203722308924765951147077143823990447066527546772799626678558516397455784113554645804039165034234547843848882993512842974036449153236883668653068381965514360129434784813985278126174309469760775939683020971214167992570766052145154503229586272902625303586286220397836512825853662940457237079646549872628739187795565517186256967232178267393461223141566327370133384734429228516348766823253417301747747627973248463706543059777306351128541471826567874781379388417972216566815141444766768765114665257610480706733655767401997493715677389660337334703542690249549011356109676884491638573048844219906255991981107126658280486414453565810232961032912536811759798957289139436126952488293546358389178926203890320998533928473698902397661989530462263089183071843240592493625646907915103463638727870438581011478975684281172907892125271659543696827504692394469125647164452352912304615316180934626758273972504943830693103099783417496775603009459304060475877526178329234491356261533985995947708914445661251564630142833805850671958868174592263419793981682337392622543155196914657083466930008580164543115192062749206492015080723866326123814503987049149352893682212479694095063586646785340371839771826534927088123764713689721158723269184786149393714132148489806435819637996758259371888905072997582935610704944812069261663432048690842511272951819174432451391940280934193234707547662814849674971380983209573492725829758859068830239978821146603492467987313212216664415696339548703783213896222576691737201144495256553016648694447316070679031292152398195033017606500504021955628292459105812598888240166701804454344861701355303986167773208092003615894199901202269000115735409205888044437963112506129534627204958256865636457400825940273906845380846188201835584067433331104930630904611624316287240638412822538123287861820521715799753784516533766137405359066024873873968356583543633057742898840954446304681791047345150897805808329515056102820902812362466117907378172484651309982202996731071882459439585954442720902340751238165390421510758809689645295122632325648422987176420798538102053190287581081970042773721170470470784005305080644759186696851724856354688543380831668317527795203114103237943577716876265628669647091596079806214777833834729448474051943538185610445946744040113481032748130014864069604117189114435904628080729310987598088124886215366524560127434151791281929373427454628141493922705183582056181728883463783591847078574435543931301612131009036510632643176464199032714603739647532821985251531756297065681482489241459786532205480230688706905614005112940141078399714298908601829348237007229695600177715610477926337260138233237417621821699316842702235570072829270044612272465560471200547488355224321064721576562923796660538772636856867579142964787259421464002221123950266015929692897806217814106058093354242430056721620787362048152364205851929140082165998050470096928984408523264355304227174609254138647004828191763366306829810004242325314386361679737623395055454896385230470072014860476791859416811320341405960973247629864571661729132403546217219276366149257538078767653380640305876885570912397049513153325632384962991903174919918737453431943426090881716289657960905223867758859262312370242969859347430435621571802295968371613151916005777892203310611020235825866943131321204732097589503224370406816915993068795150621416133309882568926435642139648757750832289156381006060216837869908999072686609560739659454796609023921766670545799396862211793419843612523952389328550017967901444474308853045770532922205101664543142185474085485543048094043859919750621731153387295333965196358438028904582299419247065501884423205501175652936820030496090084788844806838604748899273421118338249117860088410794926241686935556500375991157948519701720048458233787328299484709299406709309610189726847154536338723037300594571009511799858477781125739631804696704536626268816141334556619326602002373270790140844949785743804209526078893558008466637997604879090886036681425434034274015538684300451239845836468646866758674701498750338148643117968319225366157634708484334414674216912223859944215146211318595366527725600536983851016605184645353154172176723640353480954438021157068901438776122776723284524782509992835274681842454163770280672457324610552049256788424895645069797183522717706855889601140430488698356038263070079282983375111327305482891697124205853836077190692584458734420625772369912021425825580302796821741888928827935598864274362710336762166351647392339893124714617065097222947850074921674392909187349209776412486229247533433223969711315482768201096095331083690632025452346944901596295940919088064436303526768190509939947936985728297421393787043076034284471231250643783657012417886810777804761807002858491072451450018792910130362027280727164560775237755256132282414452060498021082101000274944188312470975644732338830057363100661195497154473371197505299385395816373140016913436159039416255337684723784230442236154039785298768667362446616929391355790958141563677796939426379453811308557433866729741716790500039609908612795039282325782920386030561729968756517342855766043550299683659899344746665137818351331625308950567753247156655286110100769511926213010996104564637665165886876404340427158268197162548831651032042847572155037728317748375726321577131999546305744314801352815808503518752815939970849972202393967940377442923047677805662439642788381216448514765248379488206232159628198971431525091237238422612750552647548588223603752061714477683225301902329443287409469254582993293678360601532160810875792445195800040993479293105614774128777243525631626469926081882126742670091567090079397239708204434676282151288697483564545520963747799552435815425872061235987690749067007248488612822935351929518160877693883109695444802319268153750921877751705003341369222713666047055263480278450563748800637376889089573562557339850512337527592604599525888730574645186522108018673673734206808569556765647365827695140705904543793647589003300824041627554737090924039225924016768443814813829767209010018883235941764702186783638477006634999770115725464733224378110308846594052951416632421922647122396131037592853435540154254492749468305668156463948659803917566661577795839278862901767435332105627613770526842546595332683924687178960894136210845172437743668667577228769632307831693901571964195283535175314642120386032688039126136861511584864300922395677276367258042124137639841922987602036380250213100579861246350579558017956789508316732825785198269386525368581209162250998775248633671595196837384109696955165170605346733821023569885888379328128455988396776368105586081285433050082693334208280840223187522421947591093813776185933478335409874110228935030935036731779384993495316817819059199963123103164976372204383436416748600878181960645911698499712241116487162646996459172520542144819695464032190286933565515257818516071828147661457461664109724638929753930574543396777370897281109988653365065522637476143827698324285391712609517470918870523064492018340685762497519832624239917440002239671619613975693085581355108044965344826105304579931142712266202739543152619558218646848151884496967899683401503646161479748630253995769719087248188871499395766800081081995026801365038838810081381911514490872622200208858954210777959100725379915750161907369329700667617814492859601341224701875147895892343488989949610960806925596999532144290191316497609325543531746934624199840313168941626117898958667943781183562916659276901200399733907940455198001590764406971517899221300472055202534291125062404130271948329497266408710054814701282368562110231365533352494252751255624905021590019286932382520959386102591465214570904810092770185402337029726995883136435620650939371106834403550818559280421227064942021515242982744775849322524061540267360368771373867705882150676378723170475379895810823377343089626289577298863659722709525355370885762073144517592011537546907777771439755948961481833934214792893555871610089402450338592398194652839487590240986253515003957091747517858349645355537900636447464312898502978968006192390215612921060062136858321821214610089261208790523954101005972981690479166835968858102001167006387725005550879193298659414074515436792484361415438110399366030412036586252801063697572125548427400830282116297059284735934717235227285420261554892506087907872537017647846299353366591563643545436931321257956847147020885401576532382081215019508266764744149184458662967354469047844740798362812416411534373751353837990315451518444108036793468205676737700402742456280392349347780745027062735708569932601800223129502454721457439234030655861041569684269068524499508572238021047780135054521608965318170884081396889442728881276194675368912237167397448865144457708011704475423519182541778778086173632032001388168604915259462550787322874072014996913013616366089791434178088904186978175663856055862717498126820217574203272878630891143586020511454208567694777412235008311321340711162191173101609077544393442330542087177317843976667261914935702465343410053529703257329565306147362824460460984646077878563197803793311285486100710776211508068686043104913955082363937159984291236555715348425877325730681517015110451248153480148828549536779987491474735648225942443697281100506167416097263393783317951057839842914303026635686176061221573954760979511062734119553040534980961709100072191924012029747323179485116203989455414148911685902297730168309630812831625615137686952115297022330901466642610377214739014173479876814700083710177436568738025622959165999297058593140000849074618624058565843453241517719217188877490805490987561702384374270102634672661347600367798758028690754941562044691130902001951580359390709698761855103774075079751125693801089699764046512717284070509594950517334116621471784274542164634179599484773048293615570663888353503513813249208099016840973596694464580677440921544635795695440049236211217550395201768505040935361960112187266487939514122496034384161155317982118470575083777134111401140710483776514586225282069290946154464233821669012883520157456662677446479957991362594408104018748142862058661315007101416431017905911568327401158503958816617933585077598419470071468489935090331288742551781609818745678740359492298411055307664820763939347428913048232756636085531831456776898297216511298607782216300265500880602216159742529886471596863902075278701277566344779378197482401337182936043135366081207247231218690165079762429822033840900823769664666740792494768391209325255735900994014474640337900600729498711458810120595520158196216327098971843560345848358525980068012987658886414525035940179598428947856818681956438356055417911430900378018162822815850798371664906372941468743422038047098839648955604144413462630163959737950466934879199969829820955676443891398707415250814278728669313320805554283337925937536623295168533525814232990419239827371837747599915840407036840096159508160242913182021590731745058830150716743285614025737466707993896740376349406840297302850325277428540080404975868553541431254890392751224055752297748825575080859013839883550447237619987928521326009429963806019143705907413628854246621356359896301816911233253569223842972080714525960907653904664119389305879357476602271928523188896940487696028982124268282076804362594065101003879566828831695115875846375290664421006408668102012619154480494815707075442766711836753015464357729345923207569059072674892260451852993723405359453618774751814478863886248638861932661695058399358829564713144862961680712731890852455019595275705162997099544914978645292701465847918507806519764328837140717713422348635384511499678084515546508429222750418893901208923796870614216832266968241671352644056480643204681943746141694372320351104973503975311160652125674645338598649916618605785888465554349491054469690810862417436918698292038167641933386605021108626528229420900894453032874636800287690311552885661253837452691049419041987988858195978386189510359208063107859942180996171404765101728433159197495820069181149555822190578645166215997447205590224024954815225889285198520563048248652629844214967692538861622553041819176153511911840486237429272077709788944614599039711369599506867977925784534096919582455911334513668907279568696048266791009106692441641804683468424350007731186219075295894424510745940001388363177283043297358284601964074409011346666612490012607566943600905847549137227626329799069065265238177432584641721482155055006547226268080271115836604566158721055423867789185522157437965984703100129504438513003323868912054894131380141634835616616664020906310819527729231361569831198036594392127161761678047236332176123720815884874424755868307937925607519068584762021666371728654708830389967025113928273563523685584050468305649080020045798007888608848609930151632610658619711214973686480666425168279352369420341473204390345858879772467455648934811470895865324529563459312211643776691312759934645962180678709040987929847247368871336037073989533362822253314967011672423861705951052009527009926747449466416594891838730984292627670666292264991844935060591082228279677161384911830313623374802463795153864066281439176077276724507060834386944404650859566087558291438696970339428825785081890942546487085349670111916024813015949757228785929756160082072702005673628541996805466452376961874817423678913761850827664713547727955201319542909393515848871441529312761059856894987504339348239810578648144368722721560203211731157723762824933525322948148743841141222728441810306286116244780080120155881736183127963787884924619298250040084903510512798989339864398590975828827462625038800447111674600380965601110310110804537478001284750281147259348508269966666079235261234652811393920789765747682635303489448409949168427548828498175524657843735317446927425951327817009340311113441424692867794650509520286938787033462432984001726726606425828834886396690851758982730074503956181155483213746504237954254691961360418050894374144816620080774090497391262818594870717050200849681048208630870028423779353330984323990863165092975000473632945962495237039252152304248558282327105374889016960128929773603157441066770347590844964616647521078280398439581567380511793859610884016863120342528701129393625503677779157261446020279634559804515530284998254020499922673378960351824197995321593825139098950951028306848926190074453534467341607985790901880414609407108081610980098771024419447202926885056501852798739991336507642445240217359831555323747273679483847494207446159067285296427965533520121014709809610260970100934457650753220826389158574670481151510817236694752848679116194212592175218982011734118485823677512243124452605022055066388381153838108292165619358050037962394663094284653712534710360131561135152405338619718671746520751340972698031973466406489397199666659979634465260311727903417826119117930993752846294282329325270704624687430728763186218429406123652822705629338104499091626680989265212027581748679323208897693565640707073114263778336027403347005385272974114430203085802211567050582811945185593788769462531364893974305558373060657508570465221129208759873662796930628562496566999373296286560498103976208093573754599347998076945087862964121303669752834951250946746395337965052134383417452574532083337587702951445202158897549579542650153905766934780285335265805971008440554044953139614718967362388674424976766572328295173470329393849230891584442303985371574910853625166914678588960989120419623212898694269413558064260356007549682119360407845469186075743358871370908782300079849715578952551820569189068077154761681399066556141209091609301578820059674369600168084981977939550954740213721544534997734480998078262493757959853212875874334120665523986436421188896116568303761102193860551386555925135774567523922649506793636637369621866886156236508096418165648740361102670360013401445766159321832032629469677073312282789038852992096685273154415609101061149515691187185863106358953136397119036763740904918291247064825695848927437671164319490101269458728516921568378658456486020179675256411203374372076094639068135458485764301150840534536487500664324022318168734813808025371902967258875851827779396802486138354745269699346495606275808604248438171477460901510217768698885958710055248519880645383036019846234740345393117801994661554183842749389679952506146290161736489930546367784858564568208772291146002843693505458904656785076150698320272276051374790449241696999410062399687529650411285159553707410900746689656169687916430337681215727843368063357089573778573386022203592107530014994681314180980598539650865354139503335708228303414864565694149265259399362002729113928990175592082645374700522912137162157956022047795101480399055102668823221948466043382924590457850167129602354694086024279636329409132890158577710805411729957936826678931461011522172094812794691891616912658557226457935894130138053157888997061065872174047377866520454088903331855780339838989217968584842263877353405650406906589524067144313200367627562762205684512860570329829231014277343236433153720598280985571133623191363052413517195708308422573473411780989640268493254670745908732858507008173226595861103075440524912734988568710658141993217403522849371963153431206234255265190178217121531016328699211249056582560834031856438990964139107129599255577852022575555961900659111596931964204144737344752612906973899348724711164481208393978279347234371769985212435771527298890244868057122400656188243450531546884687897288932164355168843324620915503027054545106380017250404270010140734686577925287376425613805377876838768355655043715143756901777984889148962738993807219288950108377797621801820449104133891694179405658540001806105831430917719088533372090496314588634420194798180873715736874399338276609052824198455091625664662059321779984085368352858443650327887729054301822029033288792692686993960348923186972145848571040154528797259798676590586188506604277107980570492431101900034721330125041601850000976862285683079676440391171250962414294490673073501949247090330875289207828658133422761696563510289587421082984038703661494577343340428953862549291811229504019063303306884128398724371941075376599751014517666610519333887839381046920001293728900398877495517321421936247563514074898021826854947260246820239681417443019894772149685198223646484403445930917197095904997212828941070996184479625127999744613035315583440649493027145950794086107945016340095819136649922930155818265548094442825920206481573813865191779520755997650023510989391299360769759501836783890480536395337984821237805942317839578013560750339885586539488714768276371143767243888470212610399221855980724758998939386359347300282453814715109910391723407802613910689010674460209100828407879813508009119488836608698303234411996570605824365112354951956827382944805577612839150374628705884098019411577778049458419601981148277810173543314476074310227539060970094748377588664509495079442838673002496846398376948749972330627184884355563923488916697298908810321606165370435276466542090374203206778044725422850732687246201772801676605232115638646589402090734399922430687624657707952095841929560595170601286321179588879584136567257839421829229410858239828076768201187596831094665697274049144760259437894667120992024884847271675600548379578583184802020413148597797111096554263353185574055556764228488411710145467132809016243685824821300443231465671808188234753818754469821772848494197656547447877949797081230169469238530521859314971331631278477152759327428686592562053923102744247654114844146761716002905998370821957048887310331118615153616505556424144518348603666588060495271923148248393928951404914054516757323397628130153892524169681960937015446552180262992798071853709065653962631607869229931501922328090647056478748852541202755116429736180596086105894361826214383355768272677313210440288164831130289746668410133682069925254984715615586934087103436492327417142603961417206036922425053339916694870674859783238807982486125659886525671448867531656451433016869564226015135421377839675363401186536693131834563986720931716239033015355209248024778306111656437322633511682608511431136970975279522736462634578921210893300570035398828359830693226812996294827200563344531490724458420970946109272985877481581186591270095136466732094028168536473128726636474843915575406157393601375464620231535700103344741554177890704551832008409460896427487297119946653428533199444493225464066471379034184972636363305020671409637333411205103095998940458009472490005425908970208553537174676659876065933488573595164982595057184134293449946226435305201025161312252765032429207454630993805367982419448352338743687564085604465356369649261210035391012104421678290510467165198042784747162470697471206078612906968643465506785881520606356925428828688442395851756466474705441174232007615713008601586901114919825318784003044334714329067809271348366252999061033550886527080660589764536717554050882719629605433149717840722673241911028936495165632621465400664158888212956312797795485147393895729126383903087620190930550283220135193478102297979023659366505072760417379415519469138341860603290571173960143059142354898980255943555702612863935722649970123444449438062629938845709056301124655386521891800354360740095378904100369963229263114959061439588587386107790241874365987302390542110841555905160963837441950200365544647275174299147903198567924466841503709879637222446489079316936715267396005834983299606788215515548607217039551430994263412321206730606477755511238106921852660412683003761070317854372461280577232747251515304010685147069595910129557733880346739381770485645672897251477341306964496735298501976226574791830092545258610693708819480596630728611440634068061396512009140632774980963938831310364366100316555019251517224201137738112293245771753743432127559138188493911982357453896874594748094737259741082256103727397526167189629535862076035250881414788254392691892508958370189376312827262674369043446656120883680774486702495013151490820508668738776975957812523958887497065307425929554106627328551368216884388295877835801815185982560429743278341711519025978646088737300165749690709136262066724461774433058361963285835670851260392875375431840848655139767716414246236379748836540237559202657290522433196315002777244074456341276625846660436729395709536798600229866646491609427406257374111463169604305055337290253923478203799904981645057907853871572135433320452772682795393068318138306212523211183542267855796181455027490214076120216812394555725812129312983247156924219068282960899008987965755267155451411957275251328523520067723402695337714751916160523877369553476877650438326831702638591412433764784898715200216938828341690229740717496930376355873296204354783902016896937673541928677814503845830541286250938129285276434560224881475801557777220515231032616879307783594539626478712042344591862532159956031899646912098682593077101119021456601668776263855659602928707252524745718174483996711961443739604421660564093788256519099940475528066716240064089697867439425326723366139617805906222481806619632251280103088915177354716343451998105252622674961972328333608419748938303312595124157846397181835281181512006898357142497556171038544308365965741552450871792018590634237329276714756654731364838171537726791891336255478550578162171846779993134242752499357699422807390734360326802931737493577057564036278265113577512079228136302570897771705944228093309209403943285566373784882218696338712975316666505511209218583454105003698766554531566986038610054691784260811666298230359198835749807305743744341873931300536094576668883980416869908085732952413404133009910145155510419597925646681579746674294883819253064058988762828025871937454262800706835631247821150267210844831586313311311617825950718284475300893834999161224588801321307115456142196507735050834339161485916594623473472806270924540646757146222274658805598639669520931155160327488760512370965785668962786082346983156539171580556269360577854517128321659969434411988913051527688546127930141645465233197651592019813626649174808740570978700050580418257286919628073278303272878345724464767675577832048357000119411237895179567874459662598759844303286346863210970291582714636232533668687350611730158392612406409359672387091582395629520589015150411486174542347511267432903895104314098547195037536992144055403870272676166015015921836925718758424036942283953538478212312952135736578813957575188589174356671808969716738392924059512720351270550609227393221566551899975208525869975192773483777129215861059550925421827369857772331418429339163946559526798128674212897444254568211350580582385906998158330177941285866031200311753819229519783736441940941604645518654094781606884892383399450687434385887270160818793919261637263907597628570692174524473879818125974648564162808024122824940366739819293015334867342582926813933764310417485125208451654063561103018502053603673787285015930440109119290171817261241366729900466948706454138721289491691466928362565865847144236824487763013695861791765749759761780766145787634280789854160418616391950095501858386673907833444430627017082844042409631990233035564416673449764559587757388369090460150343758351040310004077944824951099441270240003758637405256767895249062878617767381721722126398863411709309281752820390278001139267085352403554524122154754797787691582417423572180980066843836667918521992985143545257478237232455605743157416246125651031062985177604246753294463686568097094703482806242550997186692051952676957710373537497802190438484051927391109023067169896752250767855110378565092998079630692552693358362856868562210542228513981720179536545157096700628587493186421616040515340861015530088356660064122077548440543584734661696509467235182668175838817060093680280108969064498158742146889688074909760737055253719705610737254480779306865739530180591192125554552963831716854514957040676798162675728689187013577679964206262077038512913131184347574621926430747987549889842351410156105103697590520808474304630307339789347157268561012961092510291081263099612358248697544162867042574307324301228124213747696165090106019109920627863210277860756796213929113134554507674638843684977965325175127710588990006246855085786561751976205289091063514819127309852526365572064710330042350468086522386172703173282146354390412485927432911116582687811412621106081635648752652324799623966450156637644654546914953098454659686383771996249050567443896326406553658230569886677351018660287683038810810041730763772113236297803394923241084932593326578857227400900624198271339905358065092318923905163918559537817558685784236734299537812957877198431220514348410745157253243447018420341134265442397975672554890189903077139620036487348858529006399103744032269977691523766281353150693502021352984252577623600042394868802464192609625408834918323382292093319888741079360028203785966548265413746086229204061565234140860142620433391974409772596468782395742546587313516030210567740568411659016655145039881547501561991399634578972069127171166953524615248720003331749761954441276988254897984337101603272397281873924853810359978139172108156731775820569761730134269352495170639760110873185118274475144161703045759904151051977153572758004934977428662727085008660859521407387662328764488495700562072775602555973381993069956775360122524870207695011721920140855618956940380491429666977902972191398815143336324060499247648913350212165650229351934946184621781263664577104172881431992576004016369348835218003990571041476273884471038594488587788982742128262722654236368861915676843894368571922913933013805907547962975549026596160072801873086199046474389759468684530860241299375413920090232241083437640546598651944294088622260142335651743274858656973863698678056018624353762670621966842712304299028306976831964212560161920084517291002361955681743448585003217409670809317472103759082499267611555248598994834146841543994773441954327597526005240632842013538461041137961011201415742028652902888636582747750087753855379988557536326749120485500958772137576817776223582138448579006884711520063759160918021264991684513319484904510580646373183241222317388803805484896050810238465802366065629389910049816433731121391227541589476435122785564100349096882341252772552177737457745905176239960870366641432215035429430766074640581838243362840040977373839321724850628378971264361620094332180522074452588753331625684831150285843946796952820540392310894708789050823900316218316697375897648434787758313512469318148892848033860379560974835203839520715149619746655688743776597896355556457935954213337319369452389539353493452654251724846652577257545289586799575661288313783923112513566506601720985385720238122131205396123420712445356222572764506333893559868896922516880559185415888690154416629471152512187121940757780690816594630944505042053548435333612047400235858608618736804623953746284854243109274964941673414839275096531429432190476822305498047694050393326602071754856971388617780546981700170101855261474031778182032790704999055969269608503923488389728626084064956455074814834863903528062337079246130087659006465230392036255174235740912245687388002089149340782924938544918971350255959383638877903804952789925633321820724538246826847874256640336522994503240299432382946482281005431706062402193037810401494423584551885321664748650237075286981483769569354050572062219743726493032665686625802121194190836598767162761301966177440849379538991763261476609158931550897303339730347594526585216433583480948877494936044384450352654036969710090024355346150454517042072563185188204896059278064245164328436279307050809901379306368396725893656828379519400018987260043078085131819906712886543266641115975489694646941279152685545580241503666421239022379803124274946431887626872951988515625360965133022707529458076941927835368662453602855539464227333153701727584530368967665649270624184811628206688704099643642453442159782472888667353371976031166854181700408208447032383639023336972210454014754762452710512901757515156011102829098004890304579914247984598705487104082554975543382076685632356748971656539365637671913387052199347936607832794159884365447544272158103986690486566987522173467676055280997325046475225707681358562625949067365754129474199078108559829279029000635206604330633237330634894535135830739712407625885305573734345636373413081253942325756449039964166815446691741407744131026719782268525655735054030814344797293070340202030046824831435088582015090099079526929623043169447571494733355344296146888957127867626422660651317036616157507732130417230737540696887048797480349795676756571761254966051589520330463435115930759968954789665682731347457834954691889198542077720978708080761941134115514812074735854726442091659027313865898983188223403396322042301137387134637670381850595346535981117835337222764301255889988821458806512145972300112846785266862395182787608163451982856950177722695478834885199886684274716642016718864118076583036584553144033170316369110054660615688589406361050841811052300474806115907522321988235515793848398512043001710177501564295011578888584798902544947694707374461491424679756080429269487808404455252726654705797326528212352577341826267178777245078224485762408776580302239724225327698938296780671071183169003209051971697021279482563992023652712112382413021100241992453522271546145806600875411851300085727690583272694166656565484980663139746247864904711908423509272818718706749395480993308636035293355712840485237673407798145352927524026295233217504574050678685694431841564822655264379659795171845132505062875971693393539663884017304127205299860725425164796938215644091003284242053803904144395976507363263492957715208013120613216730474217644538217955261029550025540121533763820289022975425995318104597918797277019323114023106034259225053515268458279409823933278156869332648613102112308916264274901323737194125724047475714319204101258320200200876081030292101143386475257429329774833911765368014678304595019073517333093567006066352344991043840310417352979887909106582984961163306293493582640849622627702406534387155138197688336963195229533809796816773139359051299016472546745224709378233757416671571059949063378118114791094291899122352184983044543994066098509872295270606749878212687113010752359755517037433899478830179485149541001778432272275429212564887080218481660589647543559750270422375235627335171865976038804321047830278969870527816962093327781163978506829461214838696603465968283001853980417937530085754196945170119195308951985099209690883708824258392651682934837249399897486462228948307706549729857273472418340582379966756950136312653842157671938129500771432853387318426984546206561106972408422833224556607201764752357373877038746305995193686430284802745898681964294823941815263108740275471224445719470130988538575112316731850489980004710709239851895694874317915243665026542890528273716031505312127696798748533970936264542459497704600892662969513582294304018475620097185819781810421749545873315641451376449949206123589776608406827479793292866286782496892241494734454635502983176834803528462564107086967266022611900217633114589437492657489073531525040028613793838445459045062658751192699264201888327147646450189717020667641072071050814608265906515990311240296543974805370943997762475456657934696832981023854193918844519981865324012613231901792564456253829613676280260623613534727791838281453781701393467952351959390792919358820442750006138596935733754188975170517716866941973335851726438038266847354452750685120691346828363666470962673384151104278579167899229001474753120607644173666152507486923998572159762362658751909565904320756723017878475484786930794989484426934109445711977845892445731636384468061340396044699243231017660379626017967733758319193937265884026229446315704423025222839851354300903773228120115350299651997671981310432762997970670812699806879932390253611999774788930187887104168906111855291890877464064784054004632414480847910015187026274052771814954819870179740688487420989987115502794884549072776174197942823569110677985182270865127556321285656065706034069430700168937018427529118882527909878997851540374669639070326927033305503051599981079985382631358470174304214610581204325673831167260321185633317169345276534251578811737304033753316974617673342863643928823362697331791314380915161837577092779868836695717014049280612289037831995564037943293853681328252809170066287156609406930717170428344447509117800497793363287327178577351342827730911677934822074842812235771116987727835344558387171748686637326161101425173641906488766380003140649837209626062256331593149346531331787582878388571069486947260317116648910212723380688799702731525465194782482110514242208603589662912477035796261751444031157245909023674935201032258975711194424758041031067489234141611738084838388743456051130125520972748778112865519559500043139905457939039204035017772820317420683115975927678868669542600291317953101259353994651105831412035289952115346658077515311772061013626978208584579834733599276551346035706895781334411762352337594207966336008276002395322455769798071035212083626863299289362948705351672284931671498600668984907184269209685828605737431889035452354439833574719064420429416569000932084692599195217566967143524131815791780853039217971618173133038306389808185761945649336192505801928215715355719771453377208816907526907131841658930320167374039979463853544129376561595699117717921037661866552507656700186111035873660554696548984999716948120135674850820180064068518369088895066385682808292884955262454690528125371125742926041875955815820926869798870343779000301327652451882291917568300134609190281616751618644403541307634490346618291969845281587035381024525602798550193625392288000154567490117887998706206963879838481462533457854154838518164660161582944120516168596763888312879440046374993712025153017040766228599600796430026133768995731701612253947434695537189099883217979836674552112921428056414664161305682148759194789581071477082807945859908544272537867621061697550503498787592993979436868630544399416412501676281533774146908614816103970314949965793926104044430369516148270244564391253770142801008305106643468030909730186394269068124611839306506694692507971303332751273501541241928287468367042513847746706694445062050789873535909645773670998741280036040062577837030073585558783786940680392506850980179963721936188766512758255276974939923480810722099194941040416467214370984067458307497490081995627623650656038856695138222917090900791970813047217944415014503251209348143241478098186930905120841754137582947328266854287127970563866514931500968689674806918136810991159112984445351940704752423209216904358238792888564372012633136108189096437410932827421304278044662758735945680714528075991749217012665057268964532459866539294877732585356587687044694769161314587030059189627129460883314123516657727826696588039491816501414830873428459147381046062446484456613687711660935498644483105146761838691226587259214459483556354794700429230678378100083839898618735534054959016365777437175826399359277671992439552394539164950962826944362020533261312893477157566290853661347437853818851721686638058359469273384985194075064384335520148168694476854751541236752815095576589842623065268435647229228062388624986300461806508071599116370350537215176838211645826696395405491858929274583352861280250492099291457452640164070886391689980257661615579418595507293899683331246328617740798282250702362193408330283510128078585881003995921938834976541253494806487960570150683884061751034485368136301777801232462684944482860279698163558972759035875929652442302705630021889609974227288789254266446187740342271713296439129332976080429519243199220329140088272160152706858450774506628684247145910518101624833418814900571178390661721113105887827969529296406237463265131465596123008660340748510124973567474232626040198304562437590026627362916515031983105983833409811576983546090520291554773786227960195396431755291066753579090532889918321431067637124604985450986879934830234202424047721469359940929015451487802453001116187369750841382860209469148777658136898637096324526702756423555371888821832568750973490832666159966606137291546968737746764070369249059829324804657681157139514807122683343095565101713916503705848801337678332510217306146029583954204054536752428203931890934104678132781549323677520404196851685481012904626145073868361471795799560248516075807160577104447535625466728159188648665676946489101685329655237623688822361021033026205753363756321249188336488034824812734916278647525061198022259318225682807961316253223837771740484510080637879477900807717855269306258903903850897826037085769078277463344094449074826787358016848461814488811830662719942175150713681269309443968512856938975164924261498751270690289669250553883724769337640025181145449275199920508802260241194080514147450771656626413514173367067578016863291066479089318213940101903598934400052389451743403131651650689963421482161154893930727378575881578674525544881834083244198817141285686212375622697147071382445316679123324676237343842012004627624826890688753687005918250673887794232565178856820733060461308390602137187296136645251566340650135360150828301962741142253017345265539937830609164843961471217288066686305524880734540300711190625601582592422651325607939796864021399601240672679637583960812407869014817083221264091973589278354343377144932436119038831839113580517203018753156526794394822671066262625813067571580400775930132535622401741507421811392060883202946847940701844327966044076069814324297302134865983523615162063083237583663900746523968744020539592590682897240462764465923907586393181224729763047179914268214142807486062705161742877148045268832295540375469048292684791664002826238999910660734784188444443375331057045620204494765282092826483398110890642690139996958994582944858720712124541446440195479572566372698134326942489900213938782016742296398824336770582216144429545964801149066746388912356579021682793232211426065263515697552433657856034337359412804144166615075237760925957593905469726424018246589649001482566228692401461505223392397795773396775480586670681043311801563443454575822771941710188849897873291129838890970705566893856307467681782973550815103094147080206708504229358993686294295438755017648961496996915768323861689391122820081804291524175129059422347899217754213133037773600232978841966953884424584181929174361462014393723003942666323767220901494862886857758083186709913595995550700660147519079919523663355771379652105043172460414502004652023244014500595261894794023892372495492499229337023187079783370343741700060853332294459639426335568640436754485436085188188380291676965711610411818123757263216176289608449749078945612348363986768772427192755938307364006757988056179260892243379967559115473175685875029568121169688538275127553032587350084423835982670582369236886996604482924762450653982315140833086356063390114663170122561118091977798077503198199478967159266728579985697878456357184203077070170292617074879739440096526079397252312514484479734453097209902816965718088642382632834104256768948016864152419073517974017045462816310625760454590049515522706334228287657423509822692167470609797395751614371267844576543436850835736944016089143272514996394294934731947193500222549089406195461254905460310612631051771656619009077389031250730512923516414010982209549497013727101987131136977663143715966545168886623593595196201473029030914869028180114876825664505509411399813087999893820842523094634885454530394580923372014320712456312394062040703357959657806601426402142702833804645011736122203156449172133636588957519350887267849015888915122762863434484636484416807434003312364453273249059858538931804392001673115176743492050681977873464155343756775596963267605386524185387668237469429527762535442773053093995325048540291355779273580157331269877335838866769659847002338556817855637341438870426555064471775105783418870212958555782376242678377205327151742374025239298434355925669351268485668213106348690563168463160087735422554904130770249507309363905823908945062434763492844242916086744700692927461213257790570730759429208635063107982548761459180786433338318700875219571613331364415034466035010855540074699974139880702118182864147679877390952094574814983017440824323896076208228393184892871678669428595690433100110089484952387344422227874103903425628294868881134375274476437204781192117558008009970112641345157601515485258538424802523994306423733793765672195083227838542795019131009877415879760688677200452426106088927046037097351673200328055776604802510609825914971355588506545862710870961597551282490738450017278502222143291019575327241404954482549570481026078818919390616956927340358954712839119851554296553305453935657117606100605618841477464878118085235709284149431441722386447054044111764630351200719258979037343692649438692527200638637955424432230006830397738122365196451968023096445209537367660457721799715994941654323203439175745426498956174207463694370135309062348668942233744946698652922190040064897217895621326301737265950144563357076480922530469021500430100371965604739626760868760175081331444226645275362544084116987239570949813834989981279226718555306404157755728988367719614532953882073215642143046318031041605049439412847350074358835076511980436796188100609281697057673996760131549531992804391936345685282562656198185573639294743276593244054122535809529371233994908363936488954381073189249037721830297251049098472338727047733268885656901230241032663718405332806522868934544333166916284869914533912561356931473802296914928265562605107975001376007844153966930535347579679633221308320216554630066588475162470533030123102786323244322136917814834127115400310234079849534786609095512280479902571615093956140149689595299778484604908483690940271246290145125007343949582647977246781446539842854746730695236624346280513974892076168058259371592104635937267437326066626966983144386911789163580769275916291486018748650746602330763426090928957561911096961346248927223488542795336194806009342695686036949243330775840416843878410788374637279083677139592681668998974623352007736897159437848969588829324628552876918988246122231183330889639685721931819789008483702536949974988887476054208902209997452654506112135750795359356449459300734283994478614971884156694206461548204548120662109865623304202844870675053728246735200146659102325477664214882862116063643351656685805508443484647481945676639904168133473218243761111415165519805891639546807488305901486608185879476047896572261077533669184058813132955243086224884336865122862178484147856254191853854507917894469974005830330286810849165945142867887585289100566100948137635463580548931870989955928098064578052365246961158729970497066698946147758605162239646679766459200143603877499033519967277305587062340742056437158891064548234348577629928795825316074159220929326375410399909692657784044310919887992842914257393698158499300509015351238500638112696913962089072698468218503077862885173592580385390778602407760938591555518377759828333266253853777885400068923344288285336276129571557180040335980122517444788185630025351220082961652826568359378929617386010900625452454468381698658051473908482992865484045109461309840485437097669002067965395064813435754987420906051461137924506585495452410450322437645060580315871719511026392503793110477531974199969166641588949667702572099329444108444954265234767051274762579983426317286754580700370959793298201055030985843042180610882371836891722645158050696807699472813185100762882742564538868222883215813692735667200455209092735994259697470817957080415853230716108652000538073286639568248303515928119543823517925761569586001893127050047633596057692866733827461834006091985176291860691707721955754660874091241292342386674886326551087742210227701397485181395100595797447529723464090306337031666831916639733570052630096749543204017976405370640150954841189835780098880356589460510299978766688287587625276637836313053086461832350703572922291889990415451051395817332818569025271148137781950113445777445497258009868412600314022774528081833298160568474859455171579255317269004174157896660678450555946136687614278856980437055143652997883201076528966671465997365903699079073701268769977803076699932724765218628425911259710915979559553974211003998166015217124186831158223809706895690170837219628106988159120039164227036551586421032165330271682773283352543159580012429290066681746397976316227351464176737272439097938300144778636143413276864016220051940984157276313982513329138720425201114975272571409769310271801809192870436459613014401505497092131794670712500907654126191158340293510608691589620640669341261640652003266394780180970603060266320033918316668338251609539868688137502933418802708427651453656912128433912102089293665219899976330628244317859465842112305528256865313703928893842727960321891318509816473046748390874700847226424991659040157712420274535459323838379534038725568732473852260878837953347319994987652322655502954393777774202395399156414327158554914496020488354374115135434678485461305490521037507373533177313777778997984011169556322261281311139924572332579050297825365352865541209211660215570933358429844251962208868688932141835063073082311268905261060432673578672359012347187845540423242091511991006731296948763125047932922701310868316106548200117929654009527375971107659227232358130217080808753370279901568231977077313675351130794560525952641954569349675902662360725633075763540854379540812759565041719053508633198873148891267989647413508265341417010269883917876151647785006261993022230299629850218381415986327688344925023524392492740078945437500119685000786823604087635385411563485221206203960294873478815777660346721326833022967829665618915915095832618087616839362804857994339335599012463312106967929661286179264836739412178389353878641883818768715980254145542717208312501298281742026616229719784053727859091674540406869218331930312032786346049371212506492228366886753748237611482616291255927086836583655359163422449802836690105431528738448225159829330118962122100052135633671940041692499641620368418632655840704582731019433421460143477480478673355055569427242019969233063009825009397598295796142076862473653744596873376712645249836470005276079793307437806995046438338657448905816580370380016049426119316191151989699777285438688969141718624357188855113818563751022559577841174243794429305106555247011152099607347833760079529760624836034332614595727816221953364527565872910541202936313942167382943183257707671100741966159634346328180375940455477295625767690868513995406657311283875213189674010848366889384550975112665631053733420189156634437496424329865448682343116083385246106541093638555139317073243018201995712298973638745336836269795531689325879793577916315968995160536217800677060765618321129665655714645894174671440820237297059819963432153650354035621041989244349406179867351721827040567173837985257938237767214685203887106926423064867900966612787712903804871651912199986578612775539199916900099769450365660947095727717978626139232045728185785993613964959884857758221201007307354722818061893421405724330052733713335604541789907941518375710515855806640540251837897031887630184248889534113530172082878227301479654258030116167909942476953001416557161259132315791365690512881261527910833051994533213955900314072832160469550219221662474081363145639251675844778847776834124887221894688718630974343634821842726637306016494841450793936040957703269909621943878913671409402860673820061632436388216512113500716773957142260510625794963328756729871286866846113774982714686559956193768738274174626884889622345546426466105650548717106729730543611694433702469422377113310042434611132155003959681393763368973794467878908983175709920492092258863422855371764947396408625874102871453306768379975399780428770910713919142048705530558714077504937485041186957968762528065018086516667287323866290611155183810491692007156799632000487690071374471160708133747249161328066576006313127271362217226430971595668557878417904423140944837395616033144970944411273895941807820927288560464129028566793357221835854280837753165879161774764746292358975372448739752555376484917548250328661006429975820006512204619957133554381083712770486482595699272150812255052353252240213906788091141153832983892236781330702275972512410202324456557752289257032805550451980580261475892036461156055259113258105932611657165780994414343424275395135338833705654777470484958906709647336825772674462803668186514079387706478716799640895505257378761101538173885217772267832806117471566505055730817771460261314527016666676004303528161344658510874961739914792040212228333154535536692379776095102226737314529557643773474443626215318450667213752752074832650552186029609131356828650417300797561064374791414806614077332068917052693754777064551157972805826387664111658388179333053142163313440974935375721068440889600841802744519853205536799443759768132037033701532391380357791811954355247548193888676154215501527197537019292411999772416512032427202197648326653908072783405320682801165792155157987205314723421860788388469156523801679993691687455594791669051302063922353123119150528546706272585616772108307960171646602997236370524988125601762692866116851039831045112939627409348315134988374727763537563348807070250034583759887464382448729132930938796898976052536193392410967793903111276760443475026096506942129337085705973218465513713885902269729255626708559881573251040749263348511933109020340272630341952549429065483365955307922300284412185738679757452733349642224693893792329436690376585428080710997741563056775929389247653191107288501811360601828658930070511891654829282359064487838469304710603980710970761042112466544570511733122629564992047902027409328097142985526211257048961509716911249859928743020377205601959820129097500258614696135697671354118012258957703742202041716735939624942372793984014025119959067181891562565762485763063554750932302402480797827674283681685004277491173564647389917982558148624308612560952319938410882202177896384700612600237505813392940198637524694094783679790703727291896162024013785523912475077601604546255886677549215390461077571250111373715318962605487742464072843427818782666536978437289851604339377738032113903372642901999011803769943428586623110494913313868514676811118765117215589715195994412160247663907343901224752493631024153558606315481585211689665751064279293450092228441607197185743904899366115384353185373418785591959536002794797950756703223827558777575457526356215263635630394826280908539406301314413179866153644176056280240383313568758611538883072040954769720996105591834093481348443709112790608187154830917294644099299821893996542967842404817539200634201533911635936609392529625716275087926382671692898173983100326937549549478557810274436330615882297940723216586011244570281776163413427866775975001504834827248423651366864405574177696039980486771702130705118690929723116018699991100537924148629814513439570641691386874734089810202857244971150332302864576688643505189709499391125745590048619085294764081435863612024111056488523430107249793589079491558271010579798621579385134444297914869896699587497319040969687651007404497180708107856439186320816019757126132827205030643392303245721304763123421696004083285193903643246214375841376543574566379970157897828074278239299638774788997449126650809931291209408899274217273321330592394614167112900730899400289295265927640797237007892215466155959975284903647854742740101480077892330368655920570808746453756944443327016454666520351013434924470221801845155115719563405716829276942995883417890982135815300639637190847367607926496090767593111935504455162349254343000470070400697375762177995443464061630318367592664030995655319352345816086517564928108992531642789272318576202202305293322142863363582189928755732332245666695150877654957848357085578118502237992900356315972368681405952063942791153946063264555519775161499210693943970244783768992342654642116522554671518671498521954829979207659649109893054360349475498346440847415555828519156912127946182562869361875933810022604018459796664315653900076332801462256245552392473527216347715327263721258815986192493563567170032879719892148607110121693961787216510003017882847650113819186270779464912199983639264673204225388424783214844086093001576423344153169694924759056598586186145195685969556078071422235297342390099975524607739528862261772015181105961372723729263583091482164349765389242763220591600995326739296017237930468468197259937435306401014776013452023076070854379221872963053731706680448782654827963746988471352669414962854627641748602958030677398348533941635941987487212200482092355677257206255893792058332140212818460661236024626616033296334893773449889750362667859714463116945897519073716171947611062344593798551947877872266809745090511371235415104443165984987028321046537670285814201389413565361558998906697924476935451858574444920052545092271128510997145788554841828523684850763489813137540188291457768058104292495539344651643347198212471862489018361381642642196057868164062599689789653018323882041260630305859229635304551955519143652619127152577000254079767239387450823867468942457193502918649786590153542652662293435749901838266170631707904375609539415794449172602601790653708652463218298090605826456876078159302144558410928872419347049641051718035238876850726308838224946232665262991011028681840021156360331345726988505500252406958268650427964508734041524242506948276654666659053255749677553377944700571477628268583949210125458735560424008817885502593521964747470585594163553376877681524793140523640414436396779992783715610776643315857800631809860797200568989971813736166739366717453451951989765890026940952758434418431232978826399157355015794661010506086663776036577476491916528681673663662212914945935273515397442383919983457131412049220996329663437924948978017218811002056245026863854868216524899448117222154187301430356888903868413140070000607604684131423318390875064277736877715867853277449777128334864896297857701350384341270792059699661007942335794160179978270037157517837389354825192748092228469730970460123148934767620510023071185842146321627161753543554512678832661513987205802968405129176440434561776951850597890116273153456050200466156302375555531546804218094135552320669492573553155032177668841632594936527920823969428484312010035013475812479201754844196343046937881718398168118268010307824677704317136508396752904032075449000489370205259657243516693754620072099172066753488082636891003181065807462680728462450449239766981240074479734415616587651699602964680589379310086618768362648751795920277423358447581247975551213654748551710425531619206319792451135769230836893977145544294733702812540391203888071761195892676720146333049880724551863769258756119200700958729352703554308795288198515600805268934259721614510669222945006860855447274041013437575889887600101037702395016935367291787986015155763553448760996843390823711570931589953328922207605658382561574916624831709792902979508807010038784788862878226116606509648020294423149595591492474143102251679802176665280640046418277079517503867921620144310210578810023389104407524020203255563675656527958356163393488703769267846660317953968302293922852587400912308728647223471676513470372208270985220319015817270223241106697115540316844492478286696078227615657455344212868143821697500641933078691260222563543859281255856007447297908947094577480147106191831009708943258222369422084538928431327027381188216745454519501031937757055225734003830602188731493932527726881709590063794450483921213216028653828186050740919557649248162410131307647416062763324604780662320799696403581044984284131643022136980565604014660103801740299366694285525147830253768373337306429066744932985378443707236304798183040369621741390758144275814601633091718371987640521645279478104958782489911817323470649123231645374038202944446930222190324450255033932831545273457217346542860773039692056753351467908916285879186093129401392884496278898979752333767311980795278788394686176996908358740267025229744984103236844447996999777853252944747906032174806727383048176182272635151340551398016203805969237203365869276038034013919207932017419414453679131476292884406638932012603682461949803082329378871954120318373270010843722382674184702747458462110879677009853578196209878328945993429102904458101760471312634884087460590936628985240667272908648667407419750599064404225753780447152422774418768708692215359061960069437021913256914863746737785403110401121738379781253233492071067049393312917121080100462885398154748527801960164557494883997870172723214281253312598643963445299215720470101493039548781302949651844811120979637536542873436399288386510595349024267212501293193728156506567806060002244996062064198872260117386487125866864508365191979665745683984022971030795019320864845700427205999526015461546153549390996331192343481067973944803074217643130850032898197339806621020531091950360361608754218868189796958993264868144249524027816063434532100447675964247958551214981742625869821614902617353831844423027789130324218974527926726076095461367051556008938143821418049907540854402811994186825121413397036149452373278336404035837041408594676439239642316611846312183185196766786078863046194021530658207594598337261081497964790385188796147787424104085513031926936803578088017436800907970191138014324308521240360466320739609317819555978375319131470237876957791139085368566661186970440335689348759250796496576114575319728385791395419900905084489749026742032021121069991344926824268569334797189149915020823365027085520619670602642174876718833213815983630389331846975414578958970732699862560336542767761989988557371247245048496544233924038122749305451487784535877909970604518855885542686208313230176197901375346460165035377697430613538380457389514723613163651256420469986735023633426246933557907991233348190152194065241416016881025356903362313801984093117696939548571482158833284953473799535095946814189452084690392137162604656574573273689299704046429085013414468428950480586815689709549995247558847130032722332986275068108400207087493850829970488420463116130859996760178583496928766038845178018662808582267456157294832689497879271507980080975190051827721036698230771431097064039757872640897099644223968785008751556941754712778096654115454736382130805293094333386941325204225972718413364497910173507042894748877075263446562276079600450803408436546474365137793722126396709511968540115764377932461799099602981578142281753799663596514009986592090904956453932355922467792695588425910676820289399729177336049425622058960210453376935144046265584127552623418215457722520502412635000786425917921282323184751685613405968682463636308756394481782148636342370235343247233219538088254072333888821748933639170269631021985390239818084181139455795139478471089808287408398336416621152433593128849469008411388998958550323326612172434155321247075205678133992095043218420723235080197219096890426071073288552671298320866764081115082010155365574725558110666476068487843653211202338169255866053931035584159988580505213998572351551632792505995218247245041942364727732944028759803350743858298867386578426427929675629956757305025666134004754220926071815210013948022666814041860133766204192741652757062239284436102211265612730623540682626831516275173928992174515069280914819500056335079537636433775552023263775741558392104385167711061630094682650913202657935881860915362409234668629278253302611390501466681366135440727840590530156502211459807888533465425163012383411016465559336930324155119128696582542254921138032186024132488677600090390392115201582260790303587236982150783760996814916313135004278879619550569594373743424628680698460091892999196367414769531971813324530588236672419408241995496100583132048516803882098094561146015986190084359034776947803250439913872505278825700475013314882487187372940683982341857587442418889880521735833733882369286182996677124928315468121933128105649795610594531734902495364051118225213446933110514250786198690037780896865779127846277028142308827303375712740774493384968642937016626669494542946834729389116536159614027268563613212643084026709517848179080593626540927045935957974247764579186210439381847804366626603281523153464884711349964238409750442792110618037772935923953598862308362475874777781951674413725473933891308402828848352510129740791179727944016395746539256371110857205114145493132609333151048265434005937379583215203304860982052680279724809386457318470518756722652967156465532569161056860549867295101452033792699761759968002517561820389243739698572908085645527702729934066557353592151716832410543193016827462182157204533378676114645266698643495540245174714733858195461968647227090281251759046320893013703023262040908114826619313571947088728693007563742665247894822762949207004128883024104440790080897503518039054361044510338594599806627422175221793139671365011747045876536990155949197626553615413508907944021008001743283054244089235215811909458661635600020048228704949291381818464990697087827796427514001459818865602671543842936070229490731199459156180636076462013413005562250395297625716307538273047874789428073469936479250306514822403266478488727470604021523872684800997620583611965751345481373187448040430881438275984128823130244656342140645251755993291721053588990127848978401121478315156462585395559963615561901873462347943209505087746853861816778846035457076715395598683879947758772158425274182901470757271635507595984275770633875885423571699398923988377190805701021806556108641418974488827886514096608728366105603460541011615353817194492670524798135784263750595004011382811927118009816508236612546771296006380902341851353033052657727002033967776353393341576714626247599651817215075684219469830678638544832037439002564978222408064401970645297973609860843735394280362673055514925387546636986006996701001346882295114641308486686433315223520062753831942038312265656577760197890345459681871641095751188543196089701240685440607339883839292996333548182267700204838594208480520529690106164637903637318513196046894407726668551650446213244055611451081448678870523042162097384774696323697999404400363687452596153894387088952752724957474797956066708425035518847755865117843189217336214843999535074841045662157114483878825691343720413722896379221541385868086263809529092242126370012127413672678711033368600505863956828731507738087110339835090200937539633862164719917257597808898326350584960671636013273787672057655473809689477939404222882695555516715849978352556013399402497473057471367236217295974359196958813649121541893137243891985550458612128181615395092213201742561207290847821097537167625486977460138601557725510928180431942696889351041786877168560634883586990663365566635655698944161610647597663498037146557886609693315984522588152660520515715876227001189385180572933449928794992971322025605196473148212046933463928051283233690673846709222217672603575753995111237669955106172357667669434948781609759538518248303355778439192392265183786538228097112630947582543572942971445111832964019344872215115234023673427183921832252411079780960240100094544076389203118245438816703377014848216597620502484125645658645563221241063854462762924817083230503599066405255995382619173031083094865557891486604084498549515534241874137287929034223999292917042506239369590809843269605112184853412819766972608443440930528309982743660214074606930448604636039846739064335997128601674950573502601904425292092820999004222976605619828576887361955337384650087338516430917329707487381695366126636775719080791959996799438633135089422338196488089738579916384305128198251741091789253585065515752818801879398393972938906263443792732856577197142641506624446071231062936174882430235520707331964706032178704031563641210117152797531843274516510581877102496413182897961857548709023531589898817560995524235395452091465566875160315838719015034548723926839036249815115381052503929065925007604044283429181327663670462921022059453615169560925700411049268010197588207356393957915321129755539889147521394547435476854290201499514731375269396653710720152952025793394008536880256613630738284038531875071617800968643876495660118958597159299182171602819119833492550096376200477265961819475611598594958724322095371948336237696815737215169012383772415182879346010249290438331826115024659786194385111506806194863607722568289935703474060310589207382398756589546591068242687354968245745321047933929206543169177170650292494437528007231495258853431984557395228671164342648718682764725269430140786116770570257398143081842563896375556443128568277075777194361046041954108236335286952499639440957067274143787386705718830094158596292358629158514335336295577554675492856688405903637424196305931298446756038986263471747989073887935858625174516804511943071985034783342623298401221967132955958570285376082404055180626810687387109242648319080822996064152434212620609584076530156486069659644982673189198660526706883061609856734525435822619089043104124833200985052130080326335655470455940530583933943513489324461429959779297721873005423649748247176446692577087822924326155825731389364306049563712840317568580359068017903342669462977625549014284917439697411337727522517197305430576358934292452928161177660100053405610917566212251850048589575280832472776087096930616131874909313570565001767280328493151199038454131210782798728420375654159634230198831292650061232278015263864300807992429952509482148097275615831503773738430582882218751918609115151412694773175927270261864548724677885837031575748673808011635953194689217610534059948433970438412971963080845529835949772365108586461706684208331503143982912887534673120238486019992560210223346945892943952560119642619839177964259305183060415670472779381348363413574218482692850043385526565210787367708234579251550025286533069213056391453700517975138637298619050917253839370999646114950622226687016211130759111074256281392942160973950718180311082556246679062321833269717812462317989720686666494910676735598419638832353280532977390277665930389422023413727527834399158874933082407238864568118431265303751268557908163952129885636200010556673495495672082025162637434525238008384483837310025171463051584330659027862562877924343849792087039360807339385396695331633303179267604851552041150027462692103277391208842100910858715236034589246733838520430903594309158875212092971748833340891526998166051137490779021502368354746760035356641514156453710243960194054588267283973529237336070173736847844969691807463874941915395655920710421005005175783034298980270653456739413925828556056764911297184269381857896883046039506103459072895911242323407623369221368780100086460906267776372345152013970871583778575944808382179558688665649217281923984619423617957285789584803020547264603686357597125120829189907839270864092537051210699347887626897649275065055909368685041809461589345954069836178419950538297111953788163245138492398630272068482766803230171811271230931118397388922744146521836069831905349202400982754769012204679621988774127193981643581169568695451087869850365275832813491532193315538021623104607628226279005150395447243818677388678015286954939613330487174389329912373479094742300672579225219817530939839208876016624117052177262988700597510524970429777030401746133244333678464283618211445219237358060319606105499131242186363080088372210749521307175343343406755109457975035424200525871675661338017908157588673482056694824585819462557585154774911953718570210577639386845011527697138303403452639326117010831536938134893592994747992841969918666839588632152989245205496047980338490871843203082211707090945641762999157662437775921357458172017649828535142003989530334613110358546745534983407770471822040046817342649308161461446708031160649379880571208901451746711656404527770505668096871192934610868599833687945749520990994235480179023174820083480495071296703965600389212205863062995191080521779109641765199881313543688257489206405723981190532490436081953880316885855725517416552968641525963659323770802053376750416902755688775292972969104512487120102276700030026394378557887549169530183114497980087209011241224266026019918792931028572573708474450414869041136500362003986415171403144020345466576031023180638176906589670632071278858442398041890690150896231727097465487058575670064415303520268032547234771301426694522893116299278882953418525321229041192158695190154827149758717762910628947608513448932043157795679806663030306624860193691828633001486219458547720871760727459913479914854892416582786040387306602288912546355529336076006469904978234194164903340947602318274369521322380229650441872830566218086538001128769221155311051839451042805744195781324318231035477965919516130695061282687892766492618251123766064135260105543487218670416744624624189265288245942344378179909926594224295024708820420460069261347851331796702357566895043006709396351468748774373453978040399371531289796585314920379676971110128778236605394115220799501508170511576939291226707636912775943432898219425670300585304110136082359115871287224381149942611706983154890454995103656505839273858338436346948179643227060179204585294486855205309040065076877034358640835565345149415896678335624304840049598714109025412740625016659325377673226466522049043580125548529981656601198869475691672242257055554351990939443435338758298829567728158329647491689105291251251900908724643874080963141399445900192970917298065618725082406906843003856741747149809822631949298488944439639449281620389923158512034911595484489546674434771881340854257292349633604811932780812251366702792089592822062071902745773357634607260818742174466814272562027353046332613614547200043705971268314029191756291076658918384005290794278736289696497412267009930579127514525953940167516993609028262559476062658673016637580101073864751828117280999322065041488330143095406450527387329493364094768823879679065935971845962677255206392196884703059805009259406359892509023799585326236812411100677905481137754194630562493262852248394160920419096018648005338527252035129941793504428051512359272929343578428871874314994773594416323929156172526861108901061041453294584393850005602177777744399526003801704952187256557656792291329101988163656783246632225871674829784188199929495687294393285241924745300364994989161279283832005160141688732082273357723565170905865023981126085224808357822099766757762798895687317770669069198894949923137279477862124476183830669617165084373371321030521254824452914152439052438263687380553543897666363902023974820124868697382906025118025126627834671614730965783992637920545514132983547064663086891631595021178505604882479351970971351465583025312788078325665775439686657132401645820324118758558230241946008482724067544530533991906868613316791373448979566106900602097453628339226776301142816953056054084355968817253203475063876231436780455676734835339078876020633226209186256817204913736266385536141019136801168147967891723709880843407723545746007847798011734172675782880168894510001217352487296274707410713718245385640537544300391465265014848697072598267955822974531118959995551765078170075645286795832558095197990453115193965150231101597715571518231773787918996038420979463144673911917254681243551170814514316276421165896914810328360284445289413901512416730184306675619568497421316486013701406529697806343029800930883784841172952982202032743841044021736065685517840705359493863196392749769345879680344513963667751954990557067787586732821232711129913864106727700776081330312893048448527081376935609701428543120245051908662066258727417899740798536808172131068320545111561593087612084474351528973565816271933542922597877203096945524994057118005615301409386090181026716800203045851703147178924488053493893600228300374810271324754892778393399857265852748395374647592811870484462045335685958993847176109328554504938380068277714884435353857319059985111587851702221236245762616974265341020296673891331830909036435037696079832978474238571237810246990821592311551771571827581997603280774047756229549728238047639352228436441171074499640936292508721698375228647983170696998863192234590271532726508597789455494712928034800332347185316490382542642682374315696536767935840408343103140116770827087859091181498988487633126041282484165270498337276841921775005615310829350263145398043151849749019158991301383666826358571536454370102981909113886467151529736913575486334388337140964520014508141140101197792056632541303350890537133933417884825958553917488949123349546808922684949673103144293769693310751898777466186549554244519853569861270676575649784543906373289972449950770072912847441034305049410791514497328649991992759978335117798606225396543099422756361331394705595752631692188276945659972862678330483505534052080641023583580216675217246373150915607153467984168392054903713374576226974822230704591683074435781066218517294181955260230954648574663645570983605608837538235740120295392441389069684666826267442008432651698342635001536727525803530439115890267694780261720345851946415886556131994406358511251403760198647420728473387554144488733603967774504898089068420801006765398343404915113922454946718265515420881939399682146963222629209020077012584379012561360352455451484988540879876839869934835542800206255588297746201107308387599416842026281501024844666764918107017849349349560358962009826978347987350510986438003820210387548061605669047949471768564074487989070980681688585932243549019440012629602991227509484301819083964131199228118871862487870580017400724932439035672734279154631266728020348663773573561609799177701667833896215353058964759639066653126327687822190058273695373834487770586745342547731011136585247762747318300657991644762699653547022610342016079250869570865784889114714625562409586519523243858515276413488547183415504318011083564507063647826601221358689293076658557922294898384981572422228387963372556936135450859454476704189281643657180575566347728847154556657449730696799519146227638291658182819831428042083552962665383405113035136732387346159222337157825629303315180962797167162756407826649109809347415103609857008345234494535292592435029048465769985454282040693503377004618282877737265109495074829816499447755393891785072044095481258830834852822486469838020327555605678858688134272204690352446387637366548520939575603108260845339237872857064525525227009145696544754934232027350084938529569961015692812184177768885260050047914857413816018826290605583222890969718366535124066102244659993896654331558874081685562647959420698156836542949490767454795875969838938041157555951094609239026785105349734609830583781079750323708649778661760433114659389480469590207016689503614631422911828620354055743098164519805120257083620135214522093564866806778332499980624677156153113586500915113983066994845583207283155651871787599663763729498629530012006498721218837708180675990085678646725528253636657912406244507577642589085987197488425571559551492316551456604429176356862554829967782847044861714218188821297072628129454318077590606817221584256154547129868574454017450374667678158989270728539898515258402295388691652208518960419026566770021177106353835816198669030410927432784660351000653118058281436752230748518265052673712273290883416281869508947490219853355723587803410463623591160953167962282286179623782738716702523136098924191121805146255340752293049488796018321069764878555234852847603214923157451505239803796039422135592912038650792355980129547191177034873570818790626835893958356668993148574873004694388221177374357938314966330227035360289519386752053346237969355230222271254042055644343538703357053671712393492919983055879053177102245670820796029308988222591203187680302788233329343098539864231292011805255013707163668842911706054279284443037777115519094240018426490106726904569932214988845696045410185478072907402074203314877383326297882019725212402161345254367118750856470171808644077926514344620715983547729141204815867032303976202145385501336273499222238756332793801425678334106375518982475651123194665622680330098030520108312022858163972965390288637968007989868748888288739945826376846788836456553883004047235767214184344247320936452350443061972185572605114548810797583776257500517884950644024060347112231700429784196977892563907327988284836911297369075818385947779210300647257534174313824964185447754609025971165627052030499112268338293223617248106015431856144348485401933528949628283957297966928052305899025555747449742838818901428837825370071887977507274974310376955336628265978944403401854872991349383820140408873747803060851575014332342477440457802376916098468241807595584570762132751526075194163066940547062229239702852890055615058948205647920854125176732096244320610300579621134710880742635663394361529974721419446699473868480687559687060978644615404739671752001331470212302322748259982940731698868535869609354207749356436347679650985320426723186898582957878293859452986026064600127735766445178155131507842760488321473054088126334994481827625891631033340487054987124380365985992121268432086824518714310911736035700931449927802508190144868073023458487411802144727509230724380890714210557680396029222273207884196657863800252724586764660506525299842725427008173354273860930521665124163199009102087992846696699141623679158450107540157023657960758489377796957809274227206451037081795933602828168355783387608062669513757261007063128502625204090416103655960186404980505843143309717876874547176309515878681844298029457680264389419883455398134123913184935109349045402702519484564639135960403101734888152243967603824129738529899002518284198563049622240997601338654358122332850987254039593561781537232641357777102189386930786207231679936972754758330241060889064811957985208748448841909252986515250326679874251734215587289161119914246338741462610845765874194385129740194724767038339907747905643673075710679578490977685009500312017262464067557991427809608540537660585207356315432929720970577856301402410768060664312215891905025057262901745470557570848829223907464381152599198457063257429503443733078195534647862652433696027498480017885193155804208087860404214187878526951472263860078318832593685312742506534457246075418070009697203759239808968632173136368307172479087894703614915530278621149373121972235280694713230211445266232015597807144639725246406514780291951162712017363646857860415050069828645327224386037281501106494578244594753585493635873181950442152730079944928561458457669946681747721127350153495569781286525053910893069014272919875558866305534221918788069045763125842708248732839617884800089783522145969491058032515300572929371053624410933311386953054024546026169651624265523079477408400395472302588176331133940431083282378506557351736877972355817165002095766951141822717613124963208813737799897898763014336806639020300277461721895793170771311199682637117875054238803568022991638400533406607355589307824022845354819697973603957408307161884591306117016630394105082229208113190090804959149798624764080306427160371430682133349147006593440168926489405128697810396371158786336235402866005391891560720001564200225599020870600559150560568926167035425542263878958118571920196943387627549185932666865853351510177959992978510507982461231078075553209407976758065387368591754943350219943104076760498519750593415067056029688964381827035608120462344562880239300231967139691170088833858339536782657444801352302094451013174887816740584524781861820288253510301470483438666970015745827359322843624158657196902366131582277684041991160425082212847298281049867766229246047483331957793222719587895005409978385249540717834008416362504651816709536553981466653439988605134552452268459369248111355810130702261822544900770029442386238584946688779141130504441354995567376400916103156758969755155090044618140410907013052080058938874758338846298023543814506926994496972824170545839405299520871982982966134506202442661408030480461344782862031414737699180330486886922592701889950257813080883400386042066283935383952381000111233511438727794842823395982508035995509077246356148985535066734144363552977036961852411375885248406456643893370028775509344220302680158863758954850407472014631468087140123105922835229068955882143707373429781036083847308450644706717214037202519868870522447847905565760632391934717486042593709237014858344719754607914653654281680764771370461906404788223762403937514935674390817888910652313592070064314984356651115389657541777555298141298628157820935109127377521400463599698616752023396596662370360547813951252371972699125001163706959101327714392576222835614308943938034995397628427300946430310977844001824620599261181622814167676855888328884719540126153948781737808535080131759999819124724619744211974924740602889175108492271063848417277707813182163893004041214329003822337420886645048719258952724301998900312634808538166470817226086727929297416262254819474594398845500342070776893553917919857574337891178989879951525536800641926685372452864542614044564244787774671561376292801123631575435567741435913552812917321538919718374700983007704835645477284689652844208190893274769432851887602369323353512594892800892581983993316737346200769940789750128249844495286618880781115510234141363470049015740886530425054621558155943892052692705782962035687862552874796665469070340111143441773733067858500666865240882429302737400613421011608118278030828962587177940711335088568239383388714951840033771398162270543743720325643025457219533640466343443584843210953645408433203484514381498533018279937798502711080097766390026443521957873663169641646543711086641890585562646856986747596980251839927501950503426959558116478738357622934054318825155824125044370684001813429598224120347247272571775932397512532614553331708871965380901950903874713072147939271098068801960824172804716837888884452468321267566254597083492050525477604403175287311883572830426730381513881325139310404935145693988652216405463509002334245185661089211879245933758320387752563592252685212653642284925702252904652767618848762705958787271704613671477749133955436475217322402939395717436388787200185087091111894332069740149083988504206578497899816431805379706324606104931700022435511547795313524974675020005790231414772112813516886755022154748827231683557857296575704681587676215919413794100140124499834247056578083309098994350557527986626044795461725696506313536668958396302561164082828289270969931925611535254602457605749361646116981200108554840180013408688189474729497447852369025293689405646395538814672101154300755447053915123411554105515406255053817215352229229336193702595287566199217748279744117831660156305211015404191853943391388672684118520281572182287054244384495089819045944029879971231470852884762270348731450669480386357320050861509940127903878101096008235761265924357434796688527191051176040578915301398262275780744297504050757261784678375822760054124243732278692777991868386376615146756066355765623646261118942979086871441900590294476460227107345180849124555638258376787772080669107360596401394427526066480277520888182480883104058307139196853269924987453824128880096201608775543370243606633182219388240685374527767940708982068327320308437954835728392196029811853757615785703689319100337268370164877682861476899292399060093767145456157694100272341760211615400581810696341887170055762854478769212327899874819785683348290511755623504486450394875973317025329069548486381418398328937773828188095078124192393206401278974762815487045615285764489263660026218911881198139245046640065286425992540469076939268212152229216724568411907433008045074845604917543558596127235620409969855293924657400010243008295956760858785265092353809713033028903874312752749354413175700854759130618854860495063058998974454514399725352188794836996628047451889937504455706258425735501258251809694695411158611403159940255161162592378500451809294233125077271028844911104587188461193016330019977226866446817782865251533266749106928915106119741364197042615110351586877427739965733381968829459250866689257218253979785717132454921492527867595437889740848290961636954597828459360122951030075215989931150759237926741194169818494407299371610989504507338385240922397752853565111546214567566481792376555745773132843477989709677266388558713562459934453438224010040339130216874898254241323203429276238584102382502962532366998997929733593207452949797429837337515186714198261656415418099184760649972491155869180255424165544675553142073993456572553800351380724207807362680428394854887751970596212474337783310183451838010953719754548627877432700032682478311201460846057840637740399244870089193063071931856259630744634354985112605077115894480927477511354680849841537796112338305476469243700560882588961178284087698029253811701215025340431076095464318943650370154128249536127828587032643937000027385189535761822394731817508617499530220160494873925508077874370579958782648290238662500208714510171961211158807812166449804196388568815886202933917538127055293454411892873869346465941653003120478877977085369765216242621534662632741541836281268545582982260000848303751008264434832605575677061991294532366906462181779570428822684645461463923741682092111992977889254523878996654641895905830721973260458817707122992515799046386991338117095975677752466818999081906851655947545561986235204762138997599274204971717439823932829655704160379245119522970000560753479976705759139484705710242127080358901592906061006457568344940449039303210491569480788021294122112833973060653317931561758160794844302128647012917956570507059758845885932102866498154422220296696592171430302599653374051713618368691466795219304612983646648317909682691121477107422934447817190282270773543311784432051287267099222962607758855998958271073780872472541823195121720577923023118493352309462741260455393171695042483224814160668783722477143493904049678046023133427098264136424797029034677267513363675449423704371934452434574138355337191974310068420581194706231357163822856005081039708712054286603842546027035168249342811277395170288836308699852419294892286678908494641118509449783284236579274970112439215511969467035705902149591741584186783097444766764578261031267096308625625429329777058542069923203076580133254131869326724415052627142205569819961818631874033470355279181150684479117302177753990345707843797500942152111535977264627703416536564593336561300254811590714650118389112865301221110893521382447138259346602890756658437535091106657259039096142437528020573208842693906204845404858167582562098381850108109050889656598832053495734673961369507354064675844499326158179045076675766169546861216322167700179473624615169545768193154349255496923673118259684839142863854270120474276240929025875959194831690339744763474627313242073045426998777000111929131603398914198327463899707498125595208175922512031808439123256608873901945035069916319865508066413890235028773700835171977020687279197007063388803432675981982482175141430705031121590076242894706189478610479067457804720627242940282757904047487796972585058700141099899728604802420048381474759771541137654026530521985154454431980052391171756019571253471748264450518560749481526342139429566992160349035599588078619959026194316395463857181809614719058699447731535533151960783757741403290695425931061360953579029463855396884934410332848970553654574448632288165666235872300191593961215210757983623414496341810904306234380847167567840465377086876743499613114514490841337901896372412254046703437218684963557833231471017977608471961039734633782670869925286198381192753536544606705840418157936540369164344503399427274414085157202381934035103841477093138230782743662554386252821276293735904880771457717338560927581789645261217179005218159323862594331372877434130326242563859720831374202981379869720136997776685765018221672508580353350783436909641875310303502732064114439463984944101844006863932673920421854172153172103851899498842764287357751015263343736222260014025362088068894645756767849923085787199036882303924658063700728375872689937597602551883312203920486593620316696234227202553142987040991363938318561701610657393737803825275416290698919405097362958359611408050133406491131997751224997228259269110193535159905134443080510481807146399968310753288590108040399343080771653506167674249891270403298130473026141420579260640214175442771221037933721323141524970521392304096837234843774486447043738325695417594288607871361988158952957300863218503713816599625620757953455074167664911232304657484047558677586712573768319441421041257565770249720450921399478195828057126698547137796470834923493066670326106023958384264166882779079437165557057404682453407449353013587811115797026433253361783374636767314169757247131719262531745593950400907994252563200416292754818080261064889954587903695414627689176478690046091125209537242587830818735894729331796498390445733872224772571887492745653206256682166432037642483538297051251090535310720780810205962848951814113772952436424272616579202340609359408492114205543904731357097524804368933339634072506211212420453897027909820202548375758666659527164721048143545997385496956204008709532866007020196551868491041547555454922887545901831815019882296259376165743309065044425068125824217855887592400320353450180390703579181742103993391741834798307636224998534413122730261310264401815087320337044149275176549867833020542619292770857579667952485493386286433439595903343886716152316394301088177658597059600293984366753263340912536550965912924489352475655716608425807253422731474727968238754102284350548889905729208874285350863009686615915796960316257776360548416441455964824086344770664005484138807515331455325070505829347422088952669302501393667705223510797833764323894006112946789398207959729187201904156886031200481877265844221169953687368892642356101511545845381886899010714760721057322985700748424158541577303261105308176542559287676488152829790807504755325880883985390920716388094159732348408612907234885226577920397585570585796332378046465088535663089590924404969003484890560555475282253982861760869057552158818710047078875882696676798674133053818544646460827968828385334059751460862041802440801786698766093132871093244794120208752887431729816304208871441650915941209157519689068014781262746384249523823619960143875092255745745570584827102291622224442703000627417015028915085351814391514440639275091138593596906760506708947511485585232375845055301814607337677773836155337761549800635293137960247044118458870122282622619411697028402518942486892217925969349628585705944848332660602594485414828400240249849214924731352672651532359353554605091729049295127818370341515640265636867526982059047029047476656327855552140130788177742282577937298664185408138037519883349060083789189114978122670351301062466864472504911627255992713285674698402567371239467555337927712288799740918517477356545020711794885855189179217777147508406972224516883865647421898381215974626540289345853580566931951470301550779196579148136780506614031104761222195388667248299506213276648265344976264660568073557913410450440355967396283199094661702928220518855475115178139558330846238719413146332437558727102235825820738692703973019959577734708001765643597706218523712563410535252270951485051243997106192055706725595752182964992140311485749106948574830975250132577571529220598318506256822184801224796088955088697161722982983520360956463429408645200178943676983634301365597167567822618745627224554555026120485097032211798238836937090143920003127920548870633971544005851508973465248723115791842201934802757572557435399340331783446219062383630718552611238394378851066041946134128578531993627182143931000564781832059602379169366590494749504489411017177113681234267149613959036334812507505446148045074054190880504983274461269760353856248554498317240998597951218994201654188999223226602077115799691552876646795192662311572895512839970993825108364291245929524950034849723294123740775826984117979472464300462315654322378975710372450725280074167487139324900829710741726812752332000380330662758554488444007286091194061747528444504791819950393364268599862380163667953997828539395362637951634911410331361285496411622252300897897115766235979460833144871555963330553373349413981418748425797661466050025911806368025875916510137741351795607056767100940071601959746656420419033012980169775760271858557411571828639375083898467758017422901497591271742292460910025433774120769898711053146035404447584842940563235526237989236982145214660454558600186332420497487236753337770488236562716157992895948081314965305632171887255314576523894915275682901057454930125179599364893488925836545907264057346460133872749739161953106730169944952262806740568129933572116503395321177731281566280310956358252044226464539068040534269164176620035213167375828267387579960108849071333831402867322482324793898350282133853043858044105581098694542079898825624693257383819222886758848842397148494343733621285907499855478917221098100733588471420032833480988761645448822637604988043816286703565366167419639994462409258772762034921951812948333967795242965635284558527322626755852228305995591293583705673206501318721543718014563825648474770614226838219903555963701472014283080378822923647753396748456338453742931964103203929641265826580503937102130260293430004425125279585577453215268264493765878228542432526082785418842350586427329034931103385075023056830535017448067386173708853764844400862858731823766770773035842774426636337269469157084666017124313657451860030353854570224707902346480309305305383605212960358347496236424504444640023583847430988355362553316865321589431974347139947270505952493844715525651444432178259325887388912066675422940232034250815093080575204232583646311126230288344498380054555688595483135640822658425590036622622198433431568071274559140569273624844604048718401806012017388718523179762338023825944917208359253835409622900996406081750237838722054721945744192891600799530293907706752148916455596235990820342078657714292634091281324170905908046583506702507935903117951092901290099982939494080012775480867595532426057288575767142667575573708867023207147378721528868837905633421367355826298689436168291190288351927005713889813830116309379326268624044283765905807852438058346341533511923057889334104395852858149254587984423718323474033530135397153945178227225426895955881418690076887251173199365443745636662999489100197307381460663467804640490803689948917489812526641206163556468886152623141486255007987497816796131690448385344887213312710777782551736553849235331504231257434033284097897563434750686112584827073339337409408113892878795057128929488082624418274246540692385536907604246093255841351376016275079797247577017559438129371279397735480644604796908125662333951923068843764280618752808111866663095050261847671915524467917179197795155733331645483673298868898386551292888747471707992322277257183309121706308408480851423341052749155415846507054423064561276793450592207382598570696902796584912561120987532117947687474190908082699872709498804244193455333561249424641182687933701053119305879564960893180242077660444438739197495298486592369520216191129663271755154209565795531089173188351394323895212734436736248398017740507775276433057227921631470031372422391216664233876020180696697180522243389899523745351915593956998918663177559027724299685865408927397182673339429368722466228730760086918544001937657448537787963004246885626392442743204157652690450694109908026180910200395933389461090758154709227902210956477788155061172441596398165873542914783803379021348206654196695715965168231659363647959103915109907471615894786077951167239473852281447554443482746064090102559792117556979495377149950770685989522489788470068542978259124052809155533118025158583891031372760369118962377329158519383549389796249228984623199423781685632727869802246679438155702030241850849552406647146225848951611814404656879612647597649546055502842496917783775613836971376528622722952177587222424059209419407251280919942012856383784339688587159761962459696523351795063962111647022792783906048754895059694186433548958526971407848966300308163401345713404848833571890379221244041868776998326131212380393815399898136756449228459944899288518884452884596518531666670416726198268684073602470215971590266267888134178392008888706311978796150534016290048990045306110884186288335722529224173183148919940931187582871742864959126882947206340657461971097366546265736302733462973348627336845978618710404581922762239344364281548487497286710747053270570620832610340859597613246802985668203049720370514486608513900060317246310444131199288305789618285555804314514664231153230275386454335978928573938611303814316317596079285450841026094402325539168038078015227056521953170379868318367856842891701062975199441782283995226113065199817939960979256896319787941424081654789109706144757235262727338921378822070905747497689821874446941649036866188824910603159524555847936237661769012025158913070642704824829060701708588752871967611096235933781503413397585709414391440243473669932343210574349260788343007095982569256635341730310336280537577779439301382148259690635488720489537801161155100074921770433250529565925647035511012257815741434509812587337414667611239531687546372609504566653786417583570172750689347750891438765120724346217643629861065765581875649201154979809364051477075816419750887995737417105714177089125727275121032498766132716108629489848041044963786617636147974112713243707301254478458908128962823519188606231126956492855556564511155397699613442940644182273446448577144495437933416076697161460846239029142405616913715919303727130295083618507368426665882819925750231065919504414833852206707265146791569522055501087442655041540369962632376191726013784185721618666693477097522388342396986405613215594205409222129055939746885019584759540524380197560227896119128746602374906836806527159363027622451778561226784802402974737309308690754859076319987369156520691936136766242615776969998924945297119890341190403435591799974240820135048045403405066883015623194193053628847973028038906352158722426583461401271428568062749836158110951313162775214255483561953609521256200955090584525226244748020901664281321928962915053249688595116569384006636484195638218193628739670150301979010982993648494160415218871001166234831832873128233220539433431956838736966816169597402524863822535862261309222886420263610434646400269040062276305438516384539814394809719012575095764335710087855436132165988665573582995089356004336950687121970968784027972009629373629714238752314993548283177807172210667191455253779502279586286681116038541654291659532388413630722277731605124523797054816153466164784739721817674821875093538279962315515926946561511893910263178797475022397965907285228631431403926768809051080521076721794809607851979250250491981341264579498877276044355295334998855323461269030826584667702485918945524671308061027344505158048910003211326196787784640367039172038135606448920112784329051571882883463657430456505219782315155421534273772233236677096953087742467339119252788529816383289656572489657525890962680087447792509144055387740724397832521776107005602562746546776007740795675166980400102400264159278685263333714937672550905382573633538598180228962484709757497348020414031904414056629180293529091817087553122552401016199554923914984866769203717772007256191232852162207676403305818662995233327834506026115089581172227599695348281367907226131530234075424417786897297898592943780043486932441817308830005617341789086165451024946671897260822217662121053449991505522012487738550324858566696988252959239246481592859868960593096115599653132321784942045650582295476960272668151841295988315495096351152621957975020001903142550336013240472740425947699379754966013831732081909188016635004074639529111619927640677752205530431552457756969506354304106558143972048806593220987628038768327515375738273250600178208190654418482601188639603427537251557164494772795184192381712447783258344152312702006640917643627158269119400949527475763556816471727795891007555941914211674976704876757943561719146481290807325127222611571108183630054916229419706126879814261327692026862295454832820802741777595957475170668518844865950313522055627889784588698263709600412155056746130151621966837449980381589923849048515982909010116985603719459112775778161358712897420187955546275146301958722888214277394457159818898395614248184973447474757916245851892541244128670126919699404332914811139496263141048592855526847811950421393277150050294004375740615040627398959648602505279103340047962264247487307058704654893143552458191396587367946516321873953141423951730635417863832109902580795834181060134017935084225705227314467796310472992547781164832777458843037220014710053130567221606835871355497163650195824371821866899943938677076572161436929469250898460476954772236899483639912402063880996245613077715749542895090384511772539966558295154283769974880283290415211753868315977445282313789217961659336200814817413403889066866750657448795811305151011296853592648638149657929160830844538211367346944027268375458753131671103739026292065702443581663246986562087149643842217151798341171898215619412908417279940037291614329379135059838559047658782196525239501602427846103128327030156849221819270273762735324484605273282407610905784617480995743377330628159684027895637344026654987813698489498324182192371336237718109052967608199872431167095410534877499993276545424537919613670963523101566684039700457826080300503685210369546165589297245085582838892950205448681274403468763153532843343340652681436703751532982854614704135859039026648418204315217747396244088847730303052681420317640943055366933209890976383644594637996958729623475828344856608129944868967403033693133927004858946825254963560901341134717033822853183671198589936468526828202309568896030548307449645548406688244899779260377810517451045196975539725910156750503024597332765915155200206487253711815678956693024192301874295377296573533194844132402308532601176285188397682491785298621233511012677490050338043146993240961262223474682167278489436923119390231640704080435835288294106988628789298823762265064757451436935613608414337605279527442516207441393104897255910099297246605854655513106621454731071261334640599446761029453693133729721124767870114544881771257332594318703307155396951675078361565781283450540517775227092758449659686029532900693777454360294785555483904273003394226585722127735628284642613218741716309696372368935107197492689806171758959352843048410825900315901255559200397390664259612529193805118606746658304253592821457164751435186251704471043834662131523359383105904285191296505723165946805591269149395532596734464689328722741310370481004173808364622410397967588084744418016547249228519909382480370645699363474195718806142009705821336075624268197189808573274067892199457386539233640201206591787266191993932364392941228476780715755177376619427870152246452531022314554651926902717718908350153886967527836138592287507596806634719722944424247494995964337576161665405607781690089760447337415777127595938754149305386711961934125224609383528431871932570231224510053981630034899258415178695045701673066352896057200407579319824520783421787195178771546624279124726975807784857357922667345629980879452486004424029424139805575843597525961537708040554355543026850873415410378668949562899353728880870310065288555682173113434665144257065764962668201182387392439747585733516319151941114058669233018585908015634567151645961838881516224205515756809338584466650236875773912808510586831008631489289912244179187195969899668373921551858843206827653438560169446134706280202879558935302350711543871467245952622917683959608379980700275749871379504231590154501461079321514161273498103626446816760666234230387223465625689426115810435234871512547578769330787246258323228046624139824730447975419490087296359995259227884115702246757948561645100976006957090093501420725099825525938624694156248860814240097117847836330417178043300055319259952874419900147892542260730669552704913088917088990233957378318506900148071324548694369516601472441432271230929178647014952338798415554565089484226637432649454678514193089022241490877060606427814775261876520773037282862382787185944870959784569753417392826249785780893539757722738730426490304462827681965043541985711608279238260301391933888158849798057562945539128863620253829455946805863939799115845208725751471859138543171298232042623773676569579735515193597329815799619556825564293185708236537343660961358477615070506852199167222608093651461335782588797780601050078255217299536042466881192011739254472167464554437348805683894521268317711102029081077482636966469501854011670489574288097946013194045704992401426124233075635111526381182979257188481125772393626953763044669761985870951363533447259188294959657943252621982857469987079699443957955734733005606515447062884334153406205148453379947443791508229833820985954674141966698784322757839266033280713893437117169562650013152590057611295993259279251991862686279438469953203212218910504040127099427672682912613912929371924911750135235963575649734999414350272062645107902980224594616868941580542496332778371243579383181077276788073007328628363937212382912016699095944558566757134134045302012661893881580414570046285524083900721170768206615098659809613986469202018133540338835490810977330796724984081870684354653342483293219538851003435675336968249427633576000636952950849118485246804401863802578507706576896339713431412067227031760517401987891328812747389352036264088240734619122884561232677157289359604341720271580931797103641299741441427322569550255791837393620276926995091778468005223661088200240811265761217077594750725146904154758801773074038979801879384522479528133643895628167518130565019831273211096452151065839449755407862514716905019416069392538192912397587618417444227327980609382510994231050159269178923671490612267296890000312526032506807568236426968489220958306934149650275005381006849134603918607510378486631313706665544200905048745651219487943542763879174251656908733884471767764294694420793751900098162737602177212312791772015536924952637736543765303386531942184565201575931097958358688384729984977536839981597492646445012347907276022315784846601505584260085380583767606586722918048930925877218027686899830688093342118710639021454242190993627858734288848610595918053411900104457768277037493732611124023876049363940386295071883524270427114266970048646634751828693194297623243536472255520727588847872400425555181321994018629279564056457077518879039631533879434282536158459346323034018302824151129175479715285133449563232797847726500485576042713348939096312076025201276910772929317316408515294164145972059312910533402429320197130501828531930011066380889371047728500492137275480976811777226321519467030197605202221126709158506788927894491291893142788722429084743437263172477269450835308618448662493206981468427869934125108355335487251887724802369597488592931684306755729646515378625188957631883225846418599499921099287064229657755597415562295697350618565143971564306580214489666677642936023216112475456490520799592376295366265662700236264829727993400700721682832042194147663419859472073013153982602567465279651843328435498826539376364299355417299969237650189673249247242997372217506478898776759793251950428947248756073970065570760822635878790147962982942967747343990544181097254751615559374169039048168047791891529580571237107731126275345002041584273184183017729130051348356654541934580321264175213842920053881031187386708379180204405964219144036845660489244126830170261777071167798239541527856522249093244001347048165221879132872441100681613624532430199561849715983347800376084309802792918887336768261326680614041300797847000829602898725201910453485084295519729242934656473039196296532039744023513176956878555374642044772225442838302045393885656252822060948224357479108062657482977402757951009084653224577482764614915889099569787419007871151938406646147341342978042966350323306127181806476070374781795764100450679889710651585190893162332852674841051571345942200512324372203171592567866917096642464366545119032259442161032828808337919221335071753342743410019069893014919820837938252630242897000178392152410492845447475010542858041177057413237556561684103636807392031482362364451877010661312140513176412701263544361223128037215027968507538508192704202976014048956577136499184944754941068602793149055458981123454229482389246310212458726051504958663044207562994507706630610362972277254376631034124471441530140628466139322284345428631141085613138862003486220205234063200290970876591646795261753865031509894483806987481819010667626176424011705238711889285477896260751883201401763151772809913304186569916886500785317822013232429762491211574115673864807717817254680475629075378487092615351386138718496587506345028850532479409937136522844781920876611000207712081540058238987949061941227752610126859758066527448510790361018866255831140670706171525519485176186108452939461203928189226558752961187970226867072608950166000925935137683844136912059684835747611549800657969855175085881359509948042093973229438478805508876107027684341880627847043739252236495944909254803303525334522933294995350611209472479632387233767974615703785806154861254442758952527717289342557620441891108188599496920731926026315522293588480283310026521562690360537985007635989151499983641230700503829630967125809491239100015649506657237214661502635022383380617329190829135969448743935766194265610692766863926461185285537719982123686886858858681984217265103531755460037069116888603043786428345761732713266511010243713246762436732526413221261946860050418694249842344451304344620568167961508922461227725863926288444322274243339399509362872775381999645486435702801499722179471783322901076312455955808666991352097958947327884937906449105171789096997675025986766578821939774029272775792746936221414891020664698796758363728588193512552289570236717699990621111874768736518794874488692547048277671244684294091888671457764975181520915177220719788134930663076501550793224963076992348514395655998469041255708993363615717386902385899079304733652955456924634075414799688637131895392633647869986463319643029160632568921357960472992034415189372100242258827473585542774202373411394704879390281604753067209879581687058118361839153164088322835468267596137811012027675336943279757022045941616754145167605742261242835242353380235535560452598143105633611730288266247681388354626666535161623107365146216607733106366211797894014565209664227207650411805300484332679610391434413097857904880196625822599790565325546844805742315158063667266484869714061330729181017905404044965752515562786574352884723486022272388020389849800041793495383669598660930195751614247909779295563015768588391640846652349849098508246429572290067139304016673931076235372148981822873001293178686201898957919339342449086475626025352431126999473683360309846150848998281937091319073568129954640288535802923977561790031494425775135250406667449771284911154971991725469849594128846474644077158494869299281134952358807914506037189662959628001169403645346024094824340698366592647273625570771442962461173573471817823593235219391392745522358821402409491976016302013919069468623661082209082066255259481639132733065464683398711881634858047589109496905455754590534020868550205499975914790649941998427253558094384407480324442156232892942968972718519623305704898505886955024793603069054497044094035262451648349537366526298734900312307529096115366574608357605512935086762094364463940705905961075809255840925307390859929644545014779487884754866229722385082913822997855639816369223102710450112872979793575959522798094022431814211013704026218322988766935368533397031830170140975480417141241591637281450858018225135788301213782216794137838656070685403581664385662078370517406361755826097129848629519556746612438876352909684646069090274061703709118718500447097706598172578938392307969023445587049645643449945637385191008203239504678011702257641853515463211520744578549996325060834151939704899591244178033201742800973421030995690823280801970540543521084267360169567289292693731047939703233510026024713481601246464198407825130555150797204831865286417571998563558631317263100849044382630285963405497757657225849788351714308971082429073160667549611462038552768229606276420250374603332982481355803564535680020944135932131714051426014088682475258659125828710996576105981118028165378996756505054596616301712139678924550645407419224633686655786205422187020302049880884458012262537787175836105797274666950383226625971931633057042685930503478770676256843815398136499473702253040123412568252709086225974526376288826229024330062936959682371903913342462485862154194985579480182776113811290739391055492819301165228508222473915510859774542811600206919012615002702814247211025070094167942526030689819540782204045841657740643225176112576432145134620321221376650540923684790564105612277866441262568825319647024290617764464299098287197216487712716733104336776127585392945113876040612074057439687829915230861578433116965813317080842802179497898555721881933251913594219873372336318163386757015690369345904320306748697530251930598799222116507510643988676772485185346151302166000918288191265333079354527102353236740160354869681355739209143401871707755696204666445430778768942356280048342940663783059939374595646369493344175871817292914076014557802460888605092423685002807482820445949725062891339993702146841795145617970943209710724239239147388051628901157562113169779270674366867557057832426883562074403778709396009147300823058759183246597503561193260106377025052175863687582979778874459735275481629014022329494776237491174698220218591364693155280272326860376241560344900064273782852893232520907191712680681567130170706939108948487491374863209087247448153631223641850652730467311602478764010564094638630990356374278618983670673152700386384493765103811623963097629193582395456472569788746395329440784728700024194291449408549396113562058305298235274932531847108422241125227133431844093330026230406815705431719552117400211349540564730362583100117423130189931408797300361615662653993903618886985386578671867175230073883704657361352810009460603355863161748368874551952143999817125827432455977232616663243858385423724904243357253141226943232841187688328139913981109531361074335666597986166701913418535468491991334000046564601113481509502141578274354613107673906930038676517120526898965252441290581649651888961250967422851346662997161529829522444001320568826033530648146754353961946015532541560396659620833658711270975343465306887387136457358467137466174051164535548250373397193825396955742768020171030167703578963542519315934175908732010554235445583805345955386828459139151987116222334926986414829497961954499772756764074595054628407342661920197229536405547764866167057871928053994525302378041509277355277852912298996238925483463142780662673025830675764112592934154576725501648053857069741818859446536121815001382903083889245602837043009058326745768683612343426614874871827351895123111837817272397516217881210474044292275637638919098583445100183592159932177568029077443085915986977214589388138215928951239224935037014650707044655772139322950056005527002924968466007959662510657207413480338066639894946130511830795499510622329666458987300188701074027981433112051142569053280539997787960388006988405931343369503259490274814526910711675887443083642161262282026732962610355417605647797463162339267379304566277430875545771004088501454218595319005820082846756020400844632397733212342174524047213190399208079887710205229482280727511890882777782795557307138598911877890790946703573866705173618157931369033098289641594009627333660875961554262984892866239881115815443358443041993677566541249539767759757756233532395420711294824219231447044076828424861466860180672623718354052868083438230905542113615533103176024321280571523814020162832355955133959328839663495045016419978134335077982073710061794517816486018932690213776181269068728508727339281079343790307549164464572601211358260321134386398589949901026084425746544255878789012828348788699500406098330030804618210203201113125749469861620024774106547122939418540341611841683769464100751235432135255119750904585452135035631958458547073789878665829423185414161297100111695651547703625781654907026167630908616734907505617713545889644251220948510302462868529123635395106039290090483208127754771291876019352449530886847675856973788631956493828172012229730548605943959832945840172611542745429836596168443496232073654148027318502217292965692588594662818627623200615601030103763761584078867619279691896891694625158499954182841475257667319564483219378876456581504083971869257071325088894959187066600568845688842044077242028901750270784751054568629669666288684268050515489426401566037094258168880456370113833221051911561445350546151264094900952618183238352298656025135276457254597705273326597714585995228502432809169984152604395658278268146251382240927934134667692618839723617451354614671682636861467819285385433608199668131730449397387692903548162332446911190289822588675716393521619669963951924776649461497399770548343956563695049175315620924600872056778756517181237034330329292778450207965672724296030805396072283834288449360390808537539684042343505909793175895049694907328340949598343308701584283285751464480519342266656566648569543789449878340698838570554803054430434466067764476787183676184113293152841346000854989471955926906365982957243897490899401729633028315168803344915478966692178510856042517419439434492680022111673985056337486412320089605752265082268935543637954515976227879348643297657575600726447324615171316967520135427764418130153260882802268497251966957316294697193568773050472108844901923425641472686152955876072313918425657904980425407609852915497449259742403253555168127642365110852894907630820432222564714035965439455340985633630139795122445223848018218703878718337211752904930254969151897730356706386051455999416725199731257442379674708723881090430704668623165505753694129013831077130907863071599675036649054462810545045913464158524555806379339941956556175810970621756901377787696447134417526480053344003874929993923679170849347633860568941083676963532703383660009417550112572594372260408465846051105901141502346557605051598835504692670575290469368237072708391574654357961447680849216663410097669022653753594695069836619626081516800791255515332723115741309260373064788180239386026137685306302503965878432295946614013270115757092540685882855554886998600961811482753456194383374977358039891932885141867172174052747541680635578727029230231299950148325302951491337273573253147202085649636893765629900411486015541721026243313877355609046013491786994942924657202995857994166807328354059531413160263714160380001391827665767050027981205475885251334467406795894364737279929150057143702238996837708081751967667830529604901586435007444873646499557124258959663828157907238169101906838594238206891670098862534162262672888576005679572395856349218008222851908735550418609957297831735175895772391683006482994210409032547125106118251697114437980157654328816861009326598708744669697717524043787999846450336255156461632454614568947374049920500893422329254211978575713300756168994493385351071534020748886188597800159930200098087159766043941712366270229122063317215912963454346752620962777323571514381175949688605342935876445304741611959954764629530849744561730291219001038192383000845084547198251778187808246904549259600295800742366492470571163761315043029911241092300950401368906126331312364911354060411590065665182700221325031112349720552670551783712645963959059840254780425982233955442130180293755866283155538901841089287997405828055361256655634665207658579493455563743467274701651360002773369215002655569016222268998104633077389892856110822140052935491290201969123145137176907535083708455976293485889415666954925935623019226476539339349074634838243519184490093109278402512149690806160988275348935722881807517157197957048054547447808202132431675492056455717159640538043305329921091531667784338011097629290611944007970330144731799234102372731194646663965189058976421583396616031656931699623721750304272654052508016837168723099807481934735142366972486192154444350408816273575305155422206787251525848731990978201490211432750232337222469788650083249517029621742733315435113030420690073149035858755212764192631449571162312255472999071266575598650882700522455484910510479430229635356472277077524345282834127462458554098046485381405156844314814338907838676812138354917845242540760273318777753382803513218274249448403201969679421751639268378821904500487912263667214363797275169690181557588991041543488001720556888966332028874713339881216185323781963563408550243002946302778710127893554085867874589810223604066859610492182446677635444228509001270092447614968082293219112314282351987482411987646960316859376927659677129667197528683447210776198040079580697751285544766758899723847610680116385563961064599201563065777025577797170794172172718710287910915722472063822914732607137086273458466658644760149067310861259554905132366841166967454324030231525210761750026106079628637971826047025937227334120648204970695919855906656076011272467428462612202541901898364200517494628969484447825173959448435494166118523752761600478979008317107877272378936339887306806569917157636981424991503030050934031174437760193849471934686058217934522787591795566139017442097557957643147927733980492297374512369494781928878120700585698121342865112197126447996719115460313028805325919484375562336840443292101000697680314035081816780833220604757776450353390261858276871025702322422574332521233793599435615095870554603299783302190332114404637148617665162147776346803859420109204079512118414549739910175954937118071797958941217036854500811283328505922315701964659252004495250419869160675398346776028405729195377953039660103411743591675932116576755945657981387214355480839856903130348398344619607832864179268949708906057734185544336820808524612983284360308465650996897540047736337306218460186828018027100717012368708322730853092472476965874369336332652619622368240347613366921346377916937726764427045150052309363627651650232895131263477108202266169719620835217934807118366428844195467737341315597792088352628334712308571013448340391769869020936577334064445047814518869430270339300202813028928275749951601865090586278663854142047323004265788406188043509458026802087498905109430176910921572924585951099599323584319374977174778010116825588347624810157357558159003494050546750578034017545534774357237188801773978705561701778881351366815843673030171958222272942577518466533535826700193338812525166020606879746272586193909222409767785360035967978105295317485494671852795778422717493048320368894773771648602499865565185027875590959700105001306885476192166289080668379712013251961383430031495729943396635577268968820270550797848229672554709282450728929437215273259153140368403565488763155795020484952020999905201283056624902062055624932584764270997649329662004704582476000591807060260972561161218804666728299828572577712556192834869167159900922863651022021411014519918858360916924479078900108269167289140779857633011085162087168023046113919834298020407363028216871747178743277167284214419761875269779594773473688934410346894592819006166556902286291378202690600362494494276812596127633460724437318612643477245417668036525496231158842303253162714737121563996481609574042762535965436767258401581429129139935565971331124354553284884920421925345917411179541870997173363923445984424635242107734087579979824960148558185800111942239199315892372742205634684484325857143475320228906184186803042113651573083501660683279124014607157425535454011596525912450146547318596916432512702667028438589082625734965470908903319072391276561281439029578263475559477554673840274586227120074361791825062670876143741651900842288659734730516596929988913539443202502701311331129402361495581550456003054802924756934166869685048403686782921140595597877353804657485579976267767470762176309116110890545653395768266533843274510800002104683079885007135473197490704126883072912042917685518541206662702607578929079838752049302128920809540148515088711068519885771533610833989020361056051281094263452944552932456413494435924525559147662380346504366444693993661725683603503071612339702094012568781235496425994747982339332569413925705977560325397101999484342643662922799773314229374461101146414314681900691688105509256149457109038324479369651097386658368316295592606264891734377761268248680777556945354633208481094295550962607142118834613648588546224773626228261049066964753081357529135917113377833980432456876824625390615166606626924886088879013745157108312960754523305944317112116669807194471737472374117132849288448115362920198018473914353312458957667952962702941553439820797872994900480740124316532004670301522998466905470474916195692873576690132849844041747076043757993173394645909912160154792278356325359637119854152030189582138423904122625957580183644254768372257699807850394827332808569473289264805289161630341281407901456648941832083753420337180903576190134784769745742046311156318321072873914266779615162817941983536922802940553892181848625048975117687547025714717337363782721647708355913895438293954103655695165038521423848409321800500472704445406421243111151206448917843135616305330100672685555988246585899414289890606879060732433120349002017204021297890228916724784856317178422450785230888948538966490412210833857511733475357749413609152184727258461140507899838569041607130564212101054944095494079976985396815260464193034624734376703460369685624917437537567625789894511590507919430883918851599700063233087677769872080597223910522972388761285215930777665149264614022718497493978266279728221337512497244252603283639165508833169261600338137086738421620754558642317491600078015999909911675470738111692290816886308303833877135228153201466699800641544070103692978067470890889847139773345767111105140748894285109196013014268946801150385656079347348222012414392436235911990717441735892204762815715324840832952952255587743964936003968406399284191538993152203769135483297886987657179698193056861974964444736436139847450210021115846443872258796943594421877291240508279125356336465341237815460502905473633949265827491079972698341788895080897200180895014887475225505533784131590209348687978956887106201644685297329286662164615497491919364107144613830992592710331523298468737385163848447609470897799977133235177243211563984983113028198347374210470355412249124225072943828650091701317003934452099391358403613579056082544926212176902945693889115754330208558239075020380392692317205615038269188605772849960773301994458033831550853653409079170943869918095555892163983632580701905292024130954296658541908492041179206217729237955108215739202130170168240949752173159336868333492136277743125488171477278577075995623980807040333160057563270339070097602454421859049659395966788278047406861306904258167238233501939420808479964934029381746387667228982544298064016334247289796410164124331290408696433297793233453737289840746570164555299895148886957887776116003122482742180946591553032496716207288434505241969387665513403135142493580117266641857097321222582646352441560118084328129330435152244120896926569733877982543632008817704726261468883710558619231240021613090171231262350920334321389376367281027003912691362079116385416466213552896627358570818102439581902887090315489851450603743126500073140576517880920360534592312341241013390524603987944642735979311725591218603920555057960151140291890162604388793273578841221477649745309445959913316043601529644589961173850749519398806868215708748616385613007628283538843832444766447210576990028047167182689969504823150005462256334504205429180380417668551893570601430511647922422881426098115983444540230092426044030643605971858546253213718862770871321671153185222650018417684710796008437863981939579335865342084541380867772737382427541238999333208552936970702534159433999983172905080127325734388469145078759082723972922287395873936760248897967918523144922322150813234882490808524062316382261781729143286417194279808271127042936025573666723705815644215400851744300207190787396173188698413746497713633524458820151274400957225020813098738812843174261759555031784132859600709702135978260964620024675655965394290950300634417491381780682438323755992371396723288413539985205504637383569674431067125587947107185766407980845761395978994784085251733740358545341814538653405853280354498918134510257736456298571312718837939473907345680681901401837175030439528105315655606230644105050166059728049706559744103552557708775079249318405172165469850085231059463053550071057207140826804893236014338269349788931073828799011158010403112704356109121823303465059940232605749921069835801833751630298185460007229726864679451374244101690516034464813721703981245029441352980758546271007272103970325828431250563569869766706359690032668345782881365076802313061189338569491952964251448398537344545838918029460550643119161280160720280061649590248526690526385552361590814613451901958288035079691562607761130608146506397668221697267872579866976644647789553320871396120077952108187705205126435128969088285803017223503999945198236792127070204332737463744742467287043948339418590434990699136447380078216975425093630478963196198963777346284859944510672841307741025321449602456111593583204082407823144767948670646721027292009894000565965285231120118121664233466238442556448118179317415462161264310739251865458607247769422521856935426977987797317600903590261567660367838494690741259321959980063446148093048099905156415958041797657469991974845438778376397337399290309410823210842587173829639806933727748513478724536692373216182115044971068506560697057082593108951983026979426586596428624814148027553379490927534429352646311964673642430010866448012564545983953202460529589918696746180693380215927480012967517195302519015511295223285940058231311147576052396432377266842276786094982375434554871658132920331724845594817328019590821898238696165302355314228196799586138590454780708296271438954407203680675233266253641754729910824195625394075604391025493468716183663001439069938339663641413981996274929274374881325139994045630936574235726246303994838599427913007004881807790244366782301311458505256050800407087370081210723430306158624498877042140725671893089880859364084165130170376794153384337344830853810547804652335367356284425552461963022149175209291922730533616031733711781586994425756110177054311694712549386940109033822698327740222787875529829411272360114944954661249158799971651575581969039633670323935477744344815883151745486435540969735297570769534235867268887545081619323718532600715117843689322332585749236959152389192830661137591469095406942895996499240154008767576645669907322786126018006996293089744428192012956552359074795780323827044885552013662614917372636319261800248435315090715259103230480593276630264559433585096089281541330570168207441847103006200696122038603392518926395974784992383118965121707536243168305688271728935890772243114009080739036215625590449024940370450589493562473386685125783595624759538380453792988163357039144788589158603781593902681373756032645230701552636263331062516103650523713878308601403719182153571144248548207526907509616637022222553161834519243743863875831158067446340955311577393054008762603246872030629161974579556629139345250702108536139881364086607436400897464420176192502312947908848798510443944766625843011147064545479439243517756007928132410968593687582299560734427176728664944513072461078952402897398855422858106119735864898616693488169477203188348365053665744557191307537705643581051842389174904310435240205163619128607571527302638664925670920259354153128238082313017496240512818706290097382222255797162305085784833155461020744489880549244978688281202005795550918003422318811196049151791329781627047343373896677535334194892201941817844573444387539016255199324521914277097144480083212089844284039929895695079235803395099887817271147567380571874195503864026100029110054665094204928356943677060644133794547674616927719484134324058389819927194718414783621324093922121920014637647231504601204838909538999849737195087850053796216875743841984650614586363924386851811158948117393069300351259485721558002056264485655694979914553847353669180848451868011275589479231400205897460772326646047381647948509310758036067572661990121846667362917173379651472122016040252971606774144662886152650925585244045428175986402819891103874912154208853609451672176652772989312707490982027399101868239610182207110065718691851509470265234853687164718061339770402733098781986582758417949650459122440120369653359589543498371989312866760471168380520458556472683481572226933257760603557917574256459405517460000156303239717972075528998804673579416110737553056042628998872412605177334673744992195434858017406675854074626086007772647896774998689032191125194605944797287663639078769270488864888773463759062530671100368814132370028944944222047891808155507863733160702647415079570900862109671692689369943966064706084389669648850817857489567423805763262203497819628577600270705628781674033626674731805077668639465125886535061439664922357078927242316153982713390757898448302022622086957829784155579687865985226270207843331060322340317609849961184226709694383831941658273891582957348683224295061105140966952435419407234805150129142287718848151968720293266398561334148707472219249003143100962948722339705249989331689783367131292152753010818610121083308397358125943221248486001519957636511312743343742564890109180969685100170337095421159355758715475967102130390005793759086166042320424345080666819527336371968625301928841379388107040278434704332260273145140727477197580613157315424745867368436682194409105622973751747262593776042475103941725357101548583372828651315802774952387180712263728333699019730868823447368208583580115877351152312212963342638001125655501298196519850285728726297496526145863091602059862920534630885072785374134806325412660337955531926989974626432636532191155259383931302115850054783094204739733100994725248412662325660215118940171653435189846399143288659414745980569254168906505974988119648486230602176105676703665936286239269834166455341302675107716192941401511918667353664148687453721378419559523945302299335605162291862994676457540229756195919053917679402511549029521422887361088113164376543161962957383151808347556683642772923529820434676012501908767878476132862255857216241671681660267137988184393630466364548939725906563198967872742451108648977567180583308535772672304190405613266057184699370206161919280479651291307734175773260653610582710297515584985011713094031999989809910665345840201446486650910440876061447624884657991115405364803560907355249992520088528621069001356264948548557620999031154365268547684796935194071594732186910833629799991672169708350756115307832661013990328715718871511928189860607184692107122251676191934440974950966599881772819056134466200623681899869862589662313351610339436749041505729969418557142111892372031101972289573209724963741978860747671669989003117134705059797062131181328358323196585574674749004851540392054590554360106919523781210546548671918577876428625433088451433541471106344561399400799542606108673913549296873512117313964450659085434485455380280060003578328084401840225847430736821046726710011778998482956566409102614440602266718015372376978193734186413417783905694274828083742603953059867974687521309362009575584655042375072442900942008587826502057943776234627557046811046840330883157373959009841331354471431244092278046096320777554589627698882096817354209100961371340123757694677328748092716072324568408638491561083249602229721596011773076648401449811676193258612145869178170732224217236208605961757245402891385885083483005043145544911598166110038354590507846424831949594080456949558132599566974123345156264055325759297230974283573178156417705012081959463561303938766597046360323548773084697507243194313178501492780693066785487765106726309286205016217348674352669219844792869603220347533036561525830505268030651482224401392028952426917590825486409615024825704168597253898330482624597084480784031075273656789120891863784886538857348666172503651392486432149625520523234826267402024585794373150923393942216312732393680429851260468542707984016716127533727842341496253030733595347253261242297169173082221589284620565170917714405796913314359463931111334614028469037951898905931431611588034441430376631860103403384749147880234507264547565463999183139726295431618041345746887611480232930799523895118051873289426612670197286055482641872718679855106307660686685719245527071891596430539651422024374627958544299201468781824041770647051447217833978091578840222870899023927597474656693240139489321573657027711569084508905222624720841841514274629374702176284320614340105669917706955515208180327339208690542389997309315378212248651772783502424956669702195570052518661298282339277697295329287047494433586784935208118835921323827252824108904691665730036743788349830759046779924837300345522244311591273603332603224226006814157693206146672941323855761230400670595221291883645539354702774152079045194581789678805566873127450729868570237059145150510133081210573183244702285778867415389557830666835489574310586264829692984621725419210911717090370727761566059057678247049068625347300100611380452160053920676856368169670268152213836306786177494198233659562434951265173193450907209786066576119950236994311752315283411193486014326289142269800387480054916958183947094666951198156091467014276460891953383027290699436457689401306104272184602632967462040637171205335631231119716929342481896158063403012043114884732504678881183439111029508449272285388987812122526237038101080133197671043919357131336425002893021447608657388973466904794508593370491098038219878943760053260600072701592914375206530461440052223360506949504663556090911773258258691818940203556759760275374941814798938928548799132537578118707278200285154206836762884316953309919178982295045428035913327428658020697030826648221478663156911067639528580852733513194198166849303180336580068166562065147467107409829299272975757606856173799348252449489118343789648908016258030873606493731443626358087262510495668936826766354693908886942072529395587339949001782045668088988574770429881956371909492479447628965070711696769448669423726801611324174351793430330284188778439384409259145639580715031949421577186422566171712355174058328124064822137816949370425469873010823809588007088248809790162766197441261057907960426736326784297572012567644199256585381215707667536727716070255814703260501264817961526265507072791460158530002511518636532921829439072512691387182461591456822941484832413268422536807430411968091067024945764602172753643331983776672457781523911242530011246977461427155914431527144713148528608676996302478576906567150401570547168010390710343108186446115197226324159670437202136869395423626387386304265905009294666466120229808969964461028917879787495716763009217551796649312195215725492961415495700893025470046849088892804735911763544927592433026397039022424603863314759340672488714834393377960195705267139694690330060318818759089096367420494459932944592262287239445527886358827506709327158001121393645235255022304507158668644407673296398894528941268751995643346126894309799838440477312766856857919115363348730742104274563495300711848230616498767162503935799856912782223011369514580212699852102127283868608965290447510669343837779470619879363180073275533354094624587646786774562006923469879336359599956037312337259947637042613515914532443175345560699611441946081378375399057663821631947380057738505559998372272102387747628325026103407326119839580540851283965352587820090974180869906301644206391469245772115709246624340639570737681490954390863373781741910845419286411114940025481366320678434144950130268822712999250700277898643220355247899653427145763577412825368904222707063258547308714476012033245687683689854601009486911088549259219128039640287601595011333544959531578078043808443873348274603580221381920595319559108296329642182285649154915553295815014348283815744530144832708991218862103572103945147797353246749251990522849916428373945140567476817988582098457030234705292138207020167848749384491364106846607821182921844051887573754808940017394406069785208377222952756123668288071666514135923120621473161761214120119039947293684828921994526465397100457316326078248493729142767820068135106083602999347207726729160293204056782101456559139948592253517454568288959599172037479355565252513689275701959705146697023325531715484571920410071403053988843318352971754622909787889734130644441665101266766827829696904617660101004258559096833587207751697991937084667642318440519030277104775398270846181285639434828690005197907653462550665669355216105001803659428214612499770416623490411374236035303878188920288451874952396760327100830294237705341521418861375438072808553125938605305725428099926935393137770876891511651948732357656059220570327069772417509784690098689050745775454994072603166077054069258404064624617883399370630531374122214253633015687216360704567735963382917670643898477763342799467440266320070249092003880328684888384527685234015940823852885817724993359149635078059944040332340772660504991878749914109832888038650372943625292759286787930711321005242096928520999277858398624596047619839407469695814674547779445237657963035019943734202431573162710918342420931071631519331884595962945756735214287857219228675300866405827343816617897888855878303425409350859931008470131346761478519224127214064135761230462539246252320182058074335877670703611516587042435007610423850480658848752724746225745956044414903524136997599596924638356189970227342798144868176355027674548537926091942587850025212433658492802163584662921257855248158758783502404877285717086393721589358933021905099671417063422071635014189621241175698453529079729021170388572033926216152888628135127558117491884666324593627706277226840453947290353510856764398331940672097010667583641145314604622896680788581585390690445985524562791109488322113885458667091010408281526257747736691615753427856039974171132912371388197772404374988101635236848962556326862488271847584958886242832362323588759404557411696086460303116494188009986123276362379686061496899968313222692831544463764883769491936057534928349870789728959811456431822741838840544887244119975160147987997051818487799925133304343422292530824000560829844238328533868173076781280483928787100424950136247397187758005255322874007888403346651571895885320893669203635798951539740850139885750418470990985378262030175160389766197281658765566080917398281867176655060801201449313830306775925183208672520723826115498538820885947265627991990079429618992198105461159587395753547741089457314922301903082210322643967260826575460121288091602555612486622105780955491823563054434493768264682634378941073492489247543908535026211909516915172134061351164164419972788972457177872635167919405109318285854134560085216136441283954567820851660814818293899327254086463461916997153902970554523097356510466042405305247224983547447830626683987400553544516973424874055831279688307381554644258618167422406456914829004063560600827269429350852674009117082994824910686271069871569156651627372234739507304527001162646079651024070299873020348914386131252697322997592019923875582387227718086791012851899709806732226223185156682751300574652145010574896728664315989934752374563730913974909429496027055865464515181776024313882232065168315934423159242477948819410385985096777156426134863750680085330412921343899845752590186583673829030999000722776318633222064867830885434982785652864069367087473043977060746289915843535591168128828735784134132723697013055848963714386180509260694802415226652246402017468371848882906771382428686311950853894189690719116435357070021589725086501489056146469588414484331479009552048140645183650813506501590241639847096041554700174807832686713764857326233762831021422857513180724362592441241016323311989781805137008770275553822791842582327759655144867719882674605722762764971632861952534910383493439640193920186658262420707079690087841186240140392301390427013630867409348950601297990891845599444198920333640070216340389029105185820287849504946177183434414300598369032317841547245303153342775882772233852490713514925536048108229443313111201221810889047342704195023677386219646499944476941888965538721132411730392575714081328934479695658878425063131877760114354137468961329810948933156769735865612221885958314390132261330070122107535321954560229886089323273941633131429226778630846696268351397020400901997586552513605651259434116362175202782768847704927749661874336957607488509091090807750270256597383953476215975516023720948859129247389423136877472946371586849167368500799573736344117621304396502691475986421796087446975559956178796185097314093207140368459194758645345948748703167978724047133319920269261875687131811687139122549537267895974025568992505188099918973219312138616833500631748635718871687949685678581272761961369621315979207761765118536604957412130561181916191917314108801884043469205505926498389810850087901753642310123854514781867185066555179099290189675806403708534495922712211776385733430102435862768780729569327972457783546315983428959537898812553649327029263228066152801531912606476496027939020743524374862687513153558276017870230957227657135218281627898268384339509118000258352529878971749288374873655156386791560454436649088404250357541411527691020205970878070395066986156657571452405597136337838986607255335844080765360626937183127456918981984567196502117012307878093972080137346596455826493660073785452431593431346296046777007381180423278841639411580777321033861343471564607343328416383193780258071461108397532080938466627534302641408180938507172802106967676016176120736323331003091884054244800317075759846192423504860256199455381915648926818560901055762367409182289954793376778699233823450975800312718383877583587319413259767473435682841992992296774185818277242507256527751157000503937210804341781119479682013103999988559326628798060625730764002048852784618517732868336736139407818913450076107543220159604924790912583563061756842668051144509918359437242275852521466985566540180890516005873720275483345446929753223590640592692184886182359502461511296780847037307652099013584281224892349083127966839657107399709377972480063171598566997465129185190158030584507507953744560822942153265082301022766519876172852113618876382494241057292453026164630018238929156851665047000565483473167864355846607193899039415073389920281589908120310146015044143083699657476460902578413737390004487487227511326620853993585391261119166790402372788843140472448223311536393645742839466758762069880974148726938754669160459238980487698497978392436868977746649685392822998103098279384098109948860201342944402942559047620263001144385589108727863517034236129079030107217400963936445427807485077405675649571963431321591860567525790153587357373124315211046272763692581261951073091026062660605943148103496838352233497584019805638375831322663414712781850145129459992983934377503152165073206779735349302942477604299606346804229932437819396850727204334229383603217937487220162844579985494387753474692623818806410906171237876096180789414604119970879416167659082337043041696226670197969115376835540350634654488843209757796884768069728325150054068441680162086135863979279884019972960989183917380271784225156269440683860453579650840676081334945995220353002539255833495095989862640730673656354134927616003733773296759192422881652028439255047327762637367622777832100431308293971079626177254214279002617814831948192655846733318480888532348832175689469278572514021340221157019423737336066001900813968641595586309533573105313256823855627366644723847174201757208239398035968073538391374256188345695373622205267037573216517819693899717073288308464369710314167103293033728453613231416853766870371421398361339717455020021941086512261092391708556622621021068889886533500968707172437315385610888721367709996271241909579070748759945190002255421297898466842624787114718214618293647234266184949198801847739680766567517837205668712134796101699777050739059845933038911630805738508522443964950145331332855900993379077657569917817832429510149901686546879993392761663424740162866924366337870655461647857689313545594747884152920676181298499141853327665480967647967550376580232096759617922617581388827695691504530893995374388562499088127564700156565058467580095837196147562204966946619573003323552417926650008108355666761643981090898358968220330690909802337016729333268789028634449720216590100248496443005236039496340255242175278017261796357272964048701029312520231669414175598788223495948396903016875786038448284855103126026550793253928905225045446073571985355581939468929402350043730173255965089635235392749968460934183823245314652987439956180319593890025674851380040072197796365955201917093882905132031720339189511978262715282601609480131471808128472460148316651849852677089622977382997471124275218425936636381071143944063187681718121030230343972954043143780561936158812917076549906008141120366469947189453187491817634125251725212655067298419648038017838124199844833234573152029967327766007931068717345977306764386793760590136124607280429092520816236662488941025301843318940982277932323955528304427263452853013243218825946079552173478260805548856013630427955978410628227747995979168927325614389342886657370810767440636264297711087358502650251842257846641549287999520122319813614350056746894471598679317042129748476303608679597668143273562465122192625631578521606886687143580065682812046818939757998251090064480011290087090601328687402076751775870562565507822191493164482899838520552468643163769650354917927468670450926318497290210909639732301899728566543141683910017515892934319193223000695807379917896328232869093671291969437411400387694490992697021249715650299183656762529757572244101738317056247601699642671541843832143737940805192920414796654058019810965508483856621303119494212443318330902031588236466242549367811018143911672686565437899145904549684752657093781705062012163033370553836812002991571159642104346608874002002650066198829275334583206692990381809143406524670639376778719872716135048011134666086100919934721327991535560350253229983691425908453032989028300583753890958750603099132344783904749644592434831735634852236532856046662716600503580811312882810901483069886439441071765375762052007794576623477003668123415088676031041980519205910219843103146615218666093485157715926041045732854992458369498046159747469538739902070562967260822185174041869996302668248128161537685928635944217195034553544439699659715310555138616391386785267900511829148976168437929116145664775722179029457349899624158924185186465123028490159760500220621870995691939111098685342619365923728905384691805775589607946425913829183550129646677550438282913542847036855478128747940187625654365251198355170530480238034674705876759146184985959941858733880482376819891375455426692746973598191905216285484804457959734135572270926253515439502845523563632266338996886096933521336863520332812213520423394349976824737687217010804275943885358923255300907735111793565756940312419113363836441700671740401157843218753477404277962396203023381725243218012081352921782877894524442854962167731453410538149141564955422236502931697911123675742524402854286205392093390343916283352880393735542703716420993022720611775643278022405484976268231965929489458070920559401830786437732031114349814200857674461078646122143206361364625691327780216984668055240173531419062058915066184859422599953052537767204991641927515687016613872597277448140245359265126760379572800509573452948906791529368780299851346239635047533251192740870151915410057236429222820365965604078349201213614907567503141426176750430668216748646652518020995065221535314697453342552379472750141855033691663107958137363694549562434831859096864619237916476753119016866169367857974361083653698585793741317590089864877772420003856383158226045548440810562447282004946425760510677147887652926925187228373079744147374610408717250188008112518353626309464800043345714177456555914204064930798553738682583444837580757860003701668553233220629942701774241833822220935450601722102910450267225729119723918820448346862589693317223602756181246056639592151244739318928072841941644866549982462321765992461473854541497010893677308224257215701713059495128387707291426481450488859461946324658464129806145180224838186302535524140798572801636368239367092735334929571916670638346690197300781181088713103688431211322959328436045982913202738699752070450939013775942059727035852173447366188517761529660588880370038279408012615358012452463946012422893038918811767904235377470915118813995371111942818094579545224062112786215478480045793421739783710491447087223051244297079068588895639716274650493388149215309406415516103337931822420539511698141460544076413072381265531301906508745253276129078773706935562639842109119436222080956768947917723562197981134004813150195091630629339496690977828294264615287223301318673977829550542676902424533949246453147339523960461382285040308694723586521905405910786970619108668783031690291112437161460904925326114496472506995309928273092175045072447612527007749782755336965584731011690974486931851044543660740365412184762790927815390358226198927377663425497547333491248148440131862081271224886070260633447851651496723128503631293582268613891220513466440307707205900109757398994756992782800511642858260193287065952227727301604871687530901015581521738953608145444367357575795647925804885898458004748648458084828829606715412348467945137234258491660018916104138425212788839766549875704229411094468260818676996731617454612035871180922608708872389552016429019907627911249060029455941737263515393859147145250197891673102333443280390131221398911383711326409049435802823211180317331251536809956855000290775914662872166198326923840190760109223009312568531357729222212253483275187163128840878934164353053447890168321307293687992242257591574880762205882822307361795041518445953599980080217431870598676672030577001196843340974557321470237229055863613789443430902141698894073231322024708593230825368930789694093760938952838862639413972660905408759345629327139617127394377701905642995917260806461498263428856666600392838556761075707550921341528954634546389758469512372712412522052292745932252850390329547844643572580606840118340929507069016351681524125540795349962289627316663135736958786097338905634428373137755937211026267732088057396862975313656136282578739190390093763888098333275209205320761439015098471211493778171866892155857635846902400063589446965479151428994516368749626744411165942993447245604256880893084929035232581362619401912775565762321363889215174032040727885278742894975716024963918888444907027210977675386743709560560678120743616738462963235147653203237965029293315296129639240978061859612106390758941832793429651508420269056698041299490602783067122157696396508430552437082870167410152677924400095471022289767205687568489951336949873419852544731627473953034185431659773071975289821667141512255746459577023944947680011682923637761761106975527761555647918632169550157175007903913803745246892049422707435498268010572540438563855487451328111540402596565240040691548226349288994031726321494421173227575249119490478358467137117727973695194955423842595819835572855715367283003222942924002750830593445887440415536033613109815086256901999097258183283091543472049872770472217114813701540344624523686962558709387292224126514249227996519269396478018753591424399387555475882777736440984145292626443118172513800234590418256097038078393283908289983364174254192116999429177576717818654500394659507267402651325618987317620409742764310663623639176694035756071476386212104775535297192749051852314425819816894012773506359206582338541044826640629988892285888407862149616055867222462111967644294572625678394309552774454883204823954224030117465121337804762109919160294934867787732534199493492454479093528470846849622071033671799095856285750188325622256993485482774612639565275533311323299262983813494615127899148215044867830156700069647545393176399889201818986777826875461213157720372316878858165223564521998258055863474526066077334240245954395856854196521385731529264302011811037920255201282214434016120021652337950019564610093405910298244338373233516340207413507139361419193599789631568644659578664434607519114745324173024786443732655568586077166232875845787514698577654959491973898544498389529400431515455966422680644764329451112081919810413341666160471370927875128961752503764995383774395272391517398428602881280551927791346775474118576050714785540035787781983626425799666511002612649699161448810298711868725570850576321176043108904236740481986096027137431255636808642583125283870404091213780148772807152576228054160471515475714485055004019131821238136288488975858255175188891928984279711842111255344405055713143263209651074668198586229182512010054436750679312379389895934498391104121217077124341550287208724428645013764361261007523796154316622713245737274984132454117734485828909950616965790556244346298671131396546037268758542054895273952239234315751584772965540955919010252361191982956329705595321527773800189352846932805791814993141812743340533567052564070570952986641152439445186617448769645155395704336936936363010020376094406189979172005593152968061990317687956974952637108501078268305126628798459428601536390639202484753227696250855312703999040200443615826358914768670786762338071367816630512226295267645240070825495915023901638441779856849253128390294812174626899043262016488472720202669222891521074726233546041893441061633023925612220494734514502735353679077790503805550797274069337489985550018553380519376353879945040818030297355059806147028789913204656889893907630057952528662320541828127502876811229970333788581034432779681478777877379540714346247634879922628728289157109487986260241501779164861175765619133339985317467993521979318757044726695565885976985881440287119139254660910247617920690411371291248518634627136574802797289162178668536425033213886168604424942793518493272328813437080781407891457943229071155971875919800524420871850789032027438580890417582079177064674547798001304630536262233140225330499466737637834051594500443041006254365048294250566694906985041561020030334062237990490768530505381729316604312263698404418143773835145436915528435067591635813088905196330360456431463972622464253510602052932675627148649952678196142891928413721988303633629073432896595316579603635122027191710380034014649513420519879469950529005300727947706853834962250047590337675821063083164965032889769870377672144309509295252462182909376918631881873637741958739790843239104358199536474391523329848995135715710809249081864243666197218869073301699879394375730875050828600001585620487012061572523149888992276391857529975716765031961765522072313725060352886189977777239841892910558727432496319733176891511693031666060087998942927591068654582646997922250564071660103810890656712683065862212769922748003784572200088134631223093181196955290446021819935518383407129074711976681197091481974975854067803118985303490385082244304192051569802160906994239560163185751772700117852008988957119135609195738155014155041601046996660694205318859625375824102371791179765547215843396802692376505061465774768261415315060599330379866492520801723876418518501541476948832513905579801984468129685677926235511162331276515957644511066823120380033681216969813519284951800364641620231808925031624108324546559480777888676680896184375574416512430497538752381608782375271555381789555758972367865629361766467295461385734330219307328644890374992213768561588591198021428243658071270725596420513021907167341285496097609574219092402081505585192830930088164452841637204351293110632956641106548269967715743118950051596826049371382915989426846632115221279524519181025487897320802059818891169570342647448413096182949544754494542217984761649076271882255461182659553824730809487267208357153181767786750012990999215950629614555555367279156224613271342504475868572776792933958758155098594074228191998847156686157140332949895025392144996854267001906111022595090224790085790474184284988295813492798233370917789005824189366321447328801244151115061596744292376436386382689175970688382690812621645815464021314882681298764211993742562492827787792310784779048471188682839732806712143650249477297754451745816933335472540109033147350735789809795984302326307685606425620241795428034350893782271824706216113673466482628457897158555528127180524601406832976157833656547982794227075979213936349086626399643282785882123784672023683581093079157860998180752646897564836256608728299562665639563240836531584736303630532362082610021211799538341211912634875636966054656246337204971973583161168777792934503196459802018722359068489441598221730221512768369220070068562184880575298645164805334215294855106984622730309385921626573382306479555218344369442785844803820138576096373773493321228454592863897226154102087810010565002114809115489860941849090922821017995174621961034090074693861761680078785528120236780237348073000916729000920926622026209292154163051130274742663112949024785343072529136053716080804960968382592896402514802472889926681298364470905224995009861319195597982773131916278133993430291199562283846142879411261218738044843194566357393508685234984145548460893982291470104325473571593785883815508410680774040772972705856041103799744304119922889962618427266714079052926843935214173810770600126952679207496346262819727144761856676277909102686199907065076579401092214590284716332504767893140449650533420866517899940482332542713728479525418699589691125729754579441064255971511517227688767609587444488302581082917147706034543082880492475510997291124748799203802623259169887802966553750607447819693467835423561008144985618810973805950867390821832410852757834951603855100612005815510008933731542371699507879661358072306156183685954602031302863186168964233297018230751751119411334686689603015434551841601227651540484302066295750238413665978859603283141436288459847388831952220798031502681023230337687095456686939679621803777987089896812632627219529238984763184990035528492195362530054999607351893977290637249526225025839129127637112866683802057898021156474277771808236424524162874424039946697055612528814501683302919964889757199933368510317884246471828293829235276308818313647074547799694910968094901311633031047816233205793271445641240713978110984266854076120318498520722696097860919557712246914482501630154313352213075097680620096818835990692534584665787809815894484769025268329992729175691896111123058401898253921972162622440399906332579785220085105959681274799617387973371277787925300476958850074181111897005351050854884607484943728651098288632847776024146184063077210503415930389983611931916702642310979230709932511733991332416287160089995606610959809346054113040554674884780283544348310453411442213669808816800585408918758563114253880773889034843251191505811814928279760440658880872047575490768444042926748515655536835143993988281978729183684124981189551498393263558184304008591660982947801683802646391413006747264622877706102881184673718526087474942107035151814102634199097808386086166019980837637588866158216451609459244771924703163763333394188030982410467369751251953995318770241192058899517415659058709117221971045674385004226018674908691158902374791680604264593791823038170210934843127566312173927600470406445404216775938473388974675012858150626887640026742867918508984874567824125368794511911922817741732846193682799618511506969373935023238613596958037502717064554193083262193471211801545779847568706729413747115345144809199595082866530238691770892676369949330940030442133433583880424330655840399571389569829911630900564382948547081333346400513931949818275093221170796617335224057991199422440542619327353904220802049360085867387587917412494699873265123494382088798378966103868777533392804864159856298889270133100960014522141387525073612706269775482084587575962745018169883773375100147311749866073738633824991993796834318496112126850269495970091707065166535343388229470136795342942189526993483826854159131569771351696268208418697716146495311054930816919361507171535411725264216773249233329990100840258395736796483355054572788078186528562870354637971921477803872002131197678771146696314464640427558682107657442952102480037595329393838004621636334433680052689413971436261082750474427005968797135218498308589793526373039124256106624007138531839554975448921436177292649459208636138616255530530110787590022213415951543949526745914923772482371145051266281090758141571144149458765847155459391260562774775154954407445742905112211233150485293173264926637991550931380606644738709538982765110031485742315480204969918470153313865454816194645437398651910923282758100137678112039685635136036931527692371452818144980313518847296219955183543413231121700126567215759002647163199611527003270724060171879895070262796861026064668964901015955506068402765948470176524979385766706266294965166407814900629386665642214861802675808515017276691858640358307676372906546448885654950837566779722234203598001609255508124466382500307578585441799098729662876392810527054713929424587640045913332816337389096653944654282494188684791244057769230413232944768850086923575664711036612237627601979038919461211492034872930730752879606741108658503283584703191719051408826703347401732343332383548527212993001278295682417281261507862340813589853503854703278656012517496800895029434666971686195324957068189170593835008126052017070707752746677376359595409219646814011874695967415745445547285571727366766049019720995753308853882022279031328839790416575995760337222236634571409381600253047118742909053559899087942009543236089428287796331225422924974921619342067894723703076229287683522996986680740836510239120845318387605714013635907476625391296398580518983077926603755809838092781644051314249201557915427701723604925504108308964643026842622396972170660193665187445225487771277971623850024316169616869540325820330740623928183884883310711410850686265382560281006304049361472143014316619148873620005130066717346723334797940268689596648469798754769473717066436349493901701880658732596079943483549821435099092835037109595008409697098651565469142606002765064262270294818116550324114590059377124021402373196913219651997456622506746595234775517949265960851803545424957259528238025013966400050415102675006515122525246629865385343582872838028453697590334288242655850446973733378057642833532978271658010349371262387301395183698755150252329119912157292643293075384588106138114651778166694962092080550754492663523589819791559472250350751477711717107272317283191320635685243712823825712203790838751729314952669494036555602558269277905318056004819082938385577496503305405731832222063275748633519901010548726735260921643536768221120714387011182477596523812519363336412814993182367525692254215403752396962164164357926259835654748114247236924751904487403170710069110271670497623316610381351148078485505796645179068506079759623452723200742775833439195169750293657031475092156495707871553577463505428659484359452568791728738158923236397455632885105979810170049853122150366294087385983338288886274701198205030416887264766839281176388385845972057544950024355827868222948278434535134407587575030040356171225850836576549946230105538046499474158532269636387537041435469986620583613139663956018505063217126704977987002885052433170713803801337228123783844731024976371570921124275348484437619373153915330545931429568736695523438392264181726646131036801196155324735154102235699668379695286149400175312420287691479313116338653119135670499551781015724238902145924987986143606139734988027581119062381465151964621436523638136122755480672304077057563218484859533316603811482845945068112153007850850228479840113919101572669788588305907879824332187093468250760969018826775293552375488084456918410089412468294851193277957405099735239606540005914140632163307818554565042907761919948564183883603206666408694088966080906382138098299758209223007555242901784580417960238300692609419267718709409402656453670298058277225738317125398344817251561190791158964383108770896811050346379435595677810147114370968859991524058575653082509747364289918285775941219586217414731064276050612617180314887955892438813181791764362948865374489579993734370041386429138456213918952988271962041247018961583970910863408331577658667098048233689337364294519540883665680604328030615110091649231532178805995453808744111896149000698123500505713489984425103699694266549728141933542167861019950977288247477438052949731571469561449349639108951264101426787713695648518066976889175303958791359241023489169563172522803442372314756962798186195905843279194377221505055592828734562454046889887392105525065735512025651782519760939536369880165253055076039960054241641085361447404192484769334247400274946473144522344676467211636368881342575554553141557362408475797980311249849424995287031309984300764505828050716530848993396789025234762355059084131559778530015623572850177587273755803305661423687189174302088234046951479068105875462051624092119912321158117186179653031641874226685756479809684952149203991996124992289373670064117351723794789596239296639593821450341244315068897370616705644893540456300245735274320227438572200791182608777588513216101823428513301624616095461336223929818697504505582192700107758811856877431106228966076182245706037264843140241607784493778322885311520543396380636725226228945059606148058173074424018363111124227214153145195469247051580808073084610339120755434683301389141109493338951789656082448334499571051978096806548059788935708519564980719064054633284216298104356371417893128909754147383548301291420906120611951226143986123941266361895365973325373508983080757915439472019329626431027745365156606972162101381758321995570082195962514558210056438350611482084455434025854612955522390079940812001838885491603210303288554743977917604397496933832699964789680788597234725417126346492098458250612630931261722749032588822906444502118197674899931289256412582154759545364462046662745270903521816657221978387601188886396236122097458062803697231960401649038315788997304334085145520858484712801359717832230192314178694595993587605316410847899345417353992290686606673486571464627149391451500295770150883587575446720971075340992562730936552250455143663666249741458232957177615415118759741418467527147274532179619697050574279172305258418729000674048784164477064315352612508618144393799207981152733755116866925678788699002120842838614705366615606535590240605581886489889647016574475155698319368028720965414675439025331672341645397290798218306329571477837166234486515668105248277493645118703834240699314190846580160746340508617202610925748990043159398786365798871289948727914888673389616802235132704062253143066791214165119987356260876209614778103715642399649999990160418706576598998301786069441920750243149853390114386933829446967535819461876712793112723890864177922122134904094071904012305217395670669186357136635105637547632216836482827961887281047573425237965805791007639581722015443368431158240656816059847847597155327083053792612862023131226131683193467215807947388861283771004674657771324782897747851643166862907564953994569833070785656673430023072144328753684526386987281130741488139695488198000285460349782681392476966823323526582524151829007819222796601366779727790033818129339195311487814722736479069435155186644891742499738915119500109271620018696126259922762426744061135219193475578581524721819837544144019299753900762040694049420544524900224095832985950078543763996551072056654463906683159331587398159156418061403931351723954737156615257909846765954890779571110708830957779197060855933889176339471126504791340091423880968386658717669551307556565565451430880559660893300878020690983031856430524773387710608210839648023871018160843232721736005875427401272301173102242532589435728728195385591443980358724787004681397214293785028065070590814500684634556551330389765667271511258213622861535882121448402451924403363301479156475299002990569249123177122118174902362386454413065411288189371203679439134113459443323815352078535734140037875581548366871988838508707469913167849712393247200051061141971495445268605265409461089448604447058916458272068800470406567079101133317454202307894706813499992038720565509890041178120620630066907919722467141762709577980598891127562148134296573976994055271020407074847589010335803000356975516891455481865862136764517239442273849814520391000228356782131646179118805076245506366843371164796899834027443227647353033164087904135331875688783464859136554060116042541153634272561756651561615712445170224471435046119757921329896891487589356116329983869147551541696461858626852274276952830747964308711918747071854896257755785145802232754274723309256337736818946872828141064729258216372135765279555639770902022521602928953354945184484945025049405526680118656563212446072856059217452503677685170159506504122021121963247874665110548932859644292080837049670885903221104147733786972785300199753620840619714401007122872603371592940370534736906427572037276392122882019240717354867716082838380540712228688794166772387454817415661261867577215590522680484427361610555826349238025396479936670376084064455189854980333650590243980019525599714293416232895224957668384650944481419851756645119743314980425308633168786207575170433330479055508334188627976453334034818491085682229507135518069170617671103426630393322567768647420234978593940152998827994097299508242704906143658397405599394483251474287635372328883321696452009434362002666538300214357513071336047441345097238776644315809129637097358889950182452081945348200034593287818485866313923536497762025159149827260510983143980550091582382645901085222499743352793045412405140888499273163878895049163220776201482969031897831943154657112086349919012411350528856622968180452973509536077396135410078661484115845847178252371501621268210028458001307088478168368211068892584393749418962177191907899812951180370521925505649950543554088589199955048465550913776806084638641571551884738568453706458833072227790686924668919991400001151384136129974905672820398100644453892318449852908418629077353182229798399631132973628146206248110784215005511172899915523099974247532545218926567103162742348859475039873103853475425346372644490750511025013777127726574658955132857121891810830550112728552630253437281183624741962379954323929645619836669566277301753846909586835521317262820430018029843964970285544530885585770776784637944220377213100666099976055901963497246417176844010002358502587680546121141087545647438947910464962359519652255595662096893757090357228754506128432883184102038874714873376082945771798177832234962080170967095318068850873105146772624140378032551276073819098143476294269376072134199502377391206892884066765339515318877429137400089997487137816333968533863381968859607515687907793765403412755117692614868958095168274418712521558983021298114084547327966909012085261253580806568469809297433064197436804255467900958456533023097369323188787956558922631642271946755922561012899698824824392494825607140898731384354394447144133683295726981074953224308913270108504287051559845607892615250539794861754739027982340515405820486526686804494940930365331194719988768579407089963797454976844224910504697732614007852600464556337197357536219602751204448381145672227009940773333083880921146061613260206610698531277333031402002674418764165761443253469184895958302842510644353235045504273887640234692407274239072451616016958942728881783160032477944597538702369873765578274139774525812807485300228698528314459326446703612013408484110312303994292174493310291722827649575844851866854888666103731417885026398484663918692898586981028606943552381830503644445845952290737705223076212431763388054156049996694380829101664665958939765586209503450503632881398555395786028884746341078485939115907344555954575751246021620871324613219083671259314002246652458010065527791343017246774497678531507730371768948053764816781400267219657856249355787829690313076534493944899996641308275656428760461452773272941896170979383041225758944713049235819304519968231082135679631470218039062443354202230192179922112324734883877117624427608276295222724348177454010260268217697057720964654116737319289004793809858584602708753227003117512866156036783156615947500382210901102994925480797311933556462517136768040071118060654961868488547804741859697214806129244775955740798002479341482316708895797476962143046178065277688163226147419395090810679944457242198007389153321241407967960549034511314739622287756965911435675972532646966159788558696721636628439469062978920479583887471577129313119872557231187619449660086337121803412708806519007294786947105067719559072300867239985275721418038801363964836451377837428444021109835041844732231651623256567674092371850318340190924001639586584372215410271764452748517339964758503915641114109328870364371525503839410600009609817929801137705963911543600983230475083270463791111711081825460951641109441730601776776265419494170974032007382047470714139456792089280864019840332974765566867132454685759559176934177849521389506083396152237583272946498520473831360512592058383669104928346396219023036254944446364554350368046097608794339161609826812803762433246052306425102673329161459073924717649268900751890385600844504013480216641252452748150144828012502636189234721326207182617592909631245710194850194406752293861677323420697087788576789335121236080009017668459865015753860483500767444892621593080932705698803220423460581061951511842722540519097465783892792593255202043537726236149067439600736972280570474474497994025989426045239427166774966758605096526495077252493320564614374783576879673295138124077308891513037201203410395411336060170364248113213286701595834327661953205988562564120100259364401257621255149755786580493417064854954467044999333267067905919276550456847788466838053269876193290377227748408751546437206276439916899852705600099889069082301236086806157400956036527548943039027698583923534879289924302219992955493652771961768958825467228451446166781510386382427273624341519107258068573547761868179131526688136088028549012149111418077617967512596536673503046920990996704463536382141008373980130667216092460797982392202023917231443442323785000645718621236982846330047932475990059016003793741363354387145241287768344314552631799982418076907048138392650612153585762659354811013288775979798929346849204324651449518125574127160647249516382471404900218524806528509541571048136697307201633130900669788619386027291525426032664207710905234232607123010915799633029441808383513947080364876089664646339882084739610384843041111530466358204164890104340972802719896676706767153454478083701735354108654382483749319079717614218844125046742979196332047598027141758532672828970770983611893121304888402279689766524044006510863227780378502554889244941964786123747447678487274588528741661243645315805001034348214118136680516301923148310392496548390906923655886082890682398827581671079391146695119414439755335480921718341925491830920766380775114046433515700328472897782353625117593670628588635575057636734246892133682155758471914991671749556498809441776170359465467764713700710101289956620129299523935373942745124280221809371208189910100358581704748110157342570105641879770929659118605873298920203088904893685855885467276629175608336335570036422758119503594391593223789683678020026263785714728100663150924070345428315797235252123913566802209319255335893245583468507302139866431109310644085075542241542400231580903449709338370163605208259354620776375343365880680207533068901991715872985369070170904181085096051603486964614147957557580566019599960777786949466255749315427438280797767535055048521001986144542339807156431485259060402309889325371029545885777341964374130747401257145596647134311381785108515905011838127776027609161005226410092205555745030276146657728425475159601922097935796790391275655467135774031484678211030034333029676023863086556433096534649733724656751815115639347285170427608193128885223101862911040555379123256868732890285298371955772670248534577094856566350411944537555618675180500401828992428277839965540017077278015912204930098144266630389376343462102340653782164036788091072566655000024376137695385872654493812682418763357357011753379095530451119216904446211481874494569004500656675869440043201816010376374066059100241125848571804269075601303415971185284942567856073347511818418345222188008913227491405963380050394171521595111511620693820472893408373044456616132184040427253979644025196654204408189910120238915854662700020530934421156651702721161721786666006122953768678054903654493493043283785492112801220525557068940051025900984569945785384440432040621412132670888444845731278854274185996998934061051375545067564724424948147838219145216959404747589476078167294733153789631526790798107401793706307700118573498909474003608797859084254952558388549162964144658451822626978670605314108848560932299797908984850485735298655150423528191418899242132066162123205294959633812379131333259043893954114475794956338257036324089986875790970954079591177295254439668345009016371289912512584015807378606629633887454994105066494294592695631905702926944192962834860503258940494927439720072960642121098853606393142515906246331727904235556166998891932208810339524663538728421340898169491948857984098118577898442500701130012627246210232053386415290752861863473230284366465910704797592005924671065233109308325599622375217599902016476934327412387916782163914873630807698459537586828323422448258894179472094389317292896110149607300454256027267842595266222836744846687527982281765320925763899971929011639314901446760572268432193783489054747958467943875744852567236023112856888043647710514728493314716486479468767125385121618973701657892264117095917502756854448389302196940736530557522535165107746040112335473565230345847328335390476297254131240450708796395188481422863822547650709987219617376670429827148687524034946985357583515462922273972055720241080187945897942782251399663437995320565034099767487977740132467304774160475749791794887281942773843651035820517975589690922467529301886912740974664764235567886150994827003708357532621483059233888562829698451290228642868018449679781011363986022958102026839057359172791989898257461467383560915054026808015383118193751730849600876829477933168876073465235144062788768314752922794738221894469615214867693790600824920352174778791689165008183929485454651535641315853914965472551837117169071321333123862840587448993965227617978046556223675352696987098412380934305562198000973095294416772026178526087707734585808018542260118712873117801638652473162803330238215953541918198735110806923843681046740807846198888721298159886840892112841469668004884340632093743354009937608503721964119113594025699732074717266858313278128154511665094721359992265886198800893052677886657602543760847146376679547293205446657050596144987147035836065043029216303234744923800159061219749627205633603885750077942354227389049026045749792732482362330870528088738842073224921089961311614155290245180431227941111455984701561433491099865766829848529419349168602869097519094257298289361299116725937944544040239590834255131309931963215631144501570351950847425871599907059044731447330817227279972293452636572146117994196777488734617978863882647113738189326975946930178182634648578717597627611252936658455070427915875211603171955951514581773856940798090980436916640464840080032400607746372958279378878043809534855273256556598059680198283547088671412944156702094376510322522785711691294295054908748217543663860529335402779338576177841273578961851228089767973270706532400586279978557371177736049908704869165095241312843837869515208233759190629364536308711476678165225880510079450920410494461010341826874833459862545761858144218567640245516853433613254095400861276291292202574076806809772875523446801204617423795299431123845343154503988059540032296200811844628638774633192507723398349865415104514431445344523542445395562245743649652031224769684756968089377169055282021055559785728391270606237580929291248516530408242333564209857038425785955670478029868800911158384948204600028056835142701683663123749795234032423056988758959240477387166523616116308088850992106274997602212810625759218266848986027888314808007030363810181207338635099065653261920580434518519998320916220450080050679104061803350999855303036893817613492718126470683849263844622492180454327663553011807398590308186717274486880679814319481501402720565404392774189912710280706434266147679081517969419408046564793967377761519015837280336558270045686560329719964344203788620346607102487802564638957236150227475011468580481895464909517272192117810001705857068850775362704180952704072353148818785305625419510829396003918738854485569038099821345085029075891470463411436640394036438549561877432417754365837217704722952424684775488815989062412435222621076512922921372641106390757143171946288869123972650393712654360235842697361871906797163689412308117705400140639202880165748360006670393103535320878659594388913179845707154797378902879146526597886643267653184249972755306224734884951860266943784550299238516660546660719646250900755226882521942227551146762707192140859838609523420071934542284269336011525558988649513743090575710331396375879851667319461569844781851685696205763393977286281308858337949166185930438021567067305956649797554659922659474044023388813721298065329859132760873646284441373161487131530771459717736379644446100228575118108283099563601721598858688657876422109000623357505035995271884204660426131673928045041967707223402113768277544049397546297805322015870529765605028586684815386990055847612401392400123106596519940665516177655149933155210894892208064469051914674202139830223283196606550633602678317957372148557699712410994665061991626814850893725097750019006483367518269946939710926077966662019321792265962633394529894445070229135878429479260889873734157342991650884875954231555906140354163144167133628769385208336336665985709467975837319077152986094363530134305427487006747864255384369649170605610462882015491634951993658216263048887259830896140401100259167235850999941998597055108623864409762842886973112748412616679390439442869131427855114018482559872165804033057262235918759890582457783930143469903145710545125084074450176898053108764373924248850923168168064373411642545673399542261192875633836559046287209177323232495491117044588022912308145569260606419086464254789485407090636168397383848568163325164503918614152410806669178491954302619663521570769093078999487377830429197654550414908967023181803197051316667696540542610073642602344364198447063787849347583674518294270520519584907724155390528117870263191470124991139747628758773420385373908499257423738224805593802677060810404235178075176401062016858605556953256691309825864370858811078609531291443799782518503638524094533155665203012085608329677877580643619422055149733701054400864165533048134031359947951839874939478117313044820652950378334507814524986358338256006568118032083058040237496556200078014264975490573945299191317203224639931579552683202071219977790320275081537829518294912252432948764141690617411834489070932208168473557469400685459086133874184144813515199266523746836921202910985139231939612022242083657215028667784529890619348536304606582079937966252113359414671428468620785808212924168710722701751542113430675841798921758776450501880353197419917035167585303562322623834644196696886626750697144782418533505808954333373016991645511070012926239053356370693169455814819975911356322721501772388629485746954420252169225444597377148118082014061094940582606178779831439121854777498617066827535237709872288664777528788712347445230026781380577556343454355250186741611023820470414652524476869281760621038480767933189532875873423877760960242782295962574843718627318309052883414768168587494021871665977371168818636843039900963773155696844682270961525698302506690573276484503088394515063554348445443865421398964117129946827832296272015175949526239643467446739257264216899525913949207152721752530255629751082571955138860866345982781354472479265940289303294673786660191743467677415591222030170895802502331644271190649935622497566991524866208167179624148222570005321540176765001229339118503513379813479356688283228514059202097650001991157983045179232955187736355215038504110962762505622152929345638501636203250410785660429317882007837851417912284377970702293088510811704866953532894384411447712482923799164941395168678575467636527543301699741512252621989860076279294817887532710698296259119100127289163438182451763541979340356359216408376441847381171222651336115409070263240749770365793266935155684403800987513500852224753004287449577421187271516206190469334800303072354748922646045362682795961272808277202121368254109786561696494616191987447096491592948642169434397357606518580301644641563560988403546268926675855854466817363625491327475637092746006802470901579724392412153356323169348983425308730434818535440382410708109073928486799472505252993407088835294030445733452002793697053692433131137044375744316744537519994814896996985401747032005562095918443041110857128009630308210139953329731535515878263047049945481329688570804200912398720351223470619661070388365354607344830522308982037440280402037046453048670620002674189933405681417652777960907720543291892148387126910567486637392667867347905094446052072620438595000820770071322787683973118992210439213277265621925244106714805823906833911491319944963719815546312315971761348908405864105317704116350053676102272071509511507943429775247509495714859217200328514281054511321737816324997700090575674379101754286935239041788792402191815464056423237729414300720439903277969640688691131824295041832783619752624209021741509800191160066922076103971033211792239006554026196555659233742173991995816632622890861522623268116004980059340814049255410624010281358883294830752251060893423329503999813884342550119374465436202416366835677009921701382436124196375406230934066706654908579080725615650578526330068533321702089273151115732610416812831992379898002287561843429686872297880091683891507301326884065033628294841650660344151594008712867235400123423559869555013981367251880263536506805412139029520529912375887824763699122763201034100911262238979321195128867744240944621498968487212695577038766154708781816480169550035402040779005294370604099235193622104502572151910497635380460972466960941433318191023938348393219000316215118922447675243604502149455046823715609376722151670883013134241081807049352074516274740139775119297266061580509644087716376895349662333443124857840237685819903561670975994368676524396981583180337912324809038078062245258889616001254122136640373401927755658012836609740963640443281428211802003210988680814695319324557097925919426894529395717289867840154243868575050393448792608306545977013195952611106475730677223872635906127260212744840690018870461313223978402255198208019620454564824645243405186396617832596180345934722253654703038895942737853917876406663555977897263389331375614626884891108306376704602788075715941539310981659421497014921608568882965990750198103466142233440491609851068177959178666004080197174273386002227851374426825063086968515618881371174723377531587795546358544311100657692874059659196659788077615400290019561398495508959250189759546601488221048433375742581334779360507856521588935763322376490395931822107779827027872758743996478031164069230138172822515202562843862274701526904837935584141230853400941548746387804833701195880463099316447646910317538360583763397799427443207507148402786627701179729746363080988833670751973373034563734331958158499927495377979594641466716751924577426933052286066147254699747418997422158858983924557172150738908960947401201579406062086110757354302826366489215088054237220206517052015796926790865483462711836435201094656157551372220778673709132977093878843944286714638552037924408231556372871307546302683632235272915543586982060435775962722510574912646266722891673299012032239172973367530716481953819266062949958041161501376995729121628626168631095064296136485021222028080847023505334348965911221820601549777367034405791077192311974742360808536672154370202243641350558373165124897183800437623013813206200090959406933772202511437887776388072122888961944843602497750733683657582641254988813815929462234743004195165373791143557635247310749255403189838909885974234278223300442453198380822282036334818315900608078648525019540710826885327589320227293713778665612736824751209085922311678464860867164056505094720645142293866723575809040931905553892851383454285157487632774023317088147623523899610061552468335399747360877878504943675886125364860238297440027190671287323587900072722251210862603952896782770780617006462492038082726767619598115045170964534113395564602934548279030442691056160028765695343352191179457127034038839080663448761357285655574570602735888000635305632374374747412278535846755959610523569407450409711509492917316932474606524367608184435314671846707134152020435155678597650232301365602068733419984288385013555190886829498765407651008630694047061775703370872676414454163828362979888002396642625815355309695857504483830737800314224370593858865521045300798617447194478455946540601003984376565830658129750673525657047815738885878974598594443748957761248568110766432385946870561521855889568271308104691908869510496421162015227925344328191514628975096774524999156560123665115818209927603427124095407038650833889536628317333305958387785378616999303466447638447982038609129119032127469291444280038710827546372621078876019359295895349387123267051272148094298247853749485174370920290471997258339562124826369099590133579344911672123056795107452047923878945281933602560306685865390082025823620391481139406845064263305983882021658378511239641230892402489075496976110137989814124451604984697763734591849494821307625671580091035063101648710320019542640662825249783943447014030842176969597297127949262706279682185406013745876231251530888166886975022088892940449605839107058011164497570539570919819227303942534656960671100456682115388901452473651951435424474341635191121333231420661399836311156299684048732248865055790160404577050443680165531781209480064733583688113110316616420329090597364779123444538687989914374365426237900573341751790027315638262727674279870868509990248913857916636694847295736601798419887741022005853062903996045375549864444740432111453349910937260396868068227426178452813551785209265446148133139755986003051566125314189122609348106720954759540489776827516154325152576427016793737386490382934469293941942658266236620657299330262880916329683201619474624838452765882476517698589851859094946511831148835094526171116323825859453417173432324828311362245845250026404283292345108606838952874929268268812256605627136940185664381141846199252641523891155602137488134276852176135385078859783031952040138369468615860715478802894620497230267035020714938686307528459135896249002235520385701205391952768359332072719063968548486437319684938038697030736590315537717603826591002959663805678348823130299904599227804955310939609128629688308152241220443833475859663293759482210832203110158002281180731214826324056771971162074919648551211388731195359702728308161943334313802126592493137999832856164032473692397806121253179428081433626602258854416436998383421250014436716527732126031362605422440174653787442891373212595324317574128167896970072631985335307848538360953785959459665599759944216861106501964767601915564413837075677228885775343812839712427544965360412996252484953006483595676050675743510590294745884749187490998438749536359825231984299899787938269764769171679154458803743476450070821224503233564574378318870448804221332593545272255135773242951960823872449390280719939893025564984040529047216987565432286400286599596677051570145178817830728743741749527008920724746120641686067944581493527875020096942034387002732402910943137904850037418312267266135300327402163730910927247069249089007377836731011502277144508411473888806321259299742256452105056398876348333265449097050734203139664040016919541522170329892707218260150059093255543076830827195629267439256674658454933025147454385707192959653516923884794569734563617085803743990043245742292988113523584961416185512976365151502465124869240235701607798620356000243826221907716434830584865842922373287392345495428691169006582835423774723212971117019056650201403316381657380174860717220597378895235265268462737556742708201327370833901081354004957781138346581190936740351117013814051100689547661689480239128117981483073277796232200034171643448612787539867514203904614424260807613307339505144778465696941566056415396104505480216173473148841216542659034985529495209331226861984472477614661985786199573807161118383888957278941401259019966850349851724013948893261724094148608817573134465057871030832786673771889145438050533162187070288754063447031501692055466865512594174396551464131507168063998553973925009565741769771889361129967168480473879559998064463286159367210081210019573801662748811295642331666498766988637785707956787305624105703338584533333496031399642619230816512649502053568087708970940533363337533330657051822931081070546027706641461369847531188924701959226403644993878350913239577157993821350387768867078457062677444436813584484056922559864314609335692036628246015606277321868622268579311046403910684324313730417034273742517081837147240030463998333351144708488484780800394244127455666353680496405816401635330667025101531067630937817139174714331748717082361102932293591649825660845758235256998365695000659268574672780941555838408436949647361005945301975519120440949130705677938460430574329098524395929912069827782289718334699387274412392471441330486540812850469843346516586420486939861332792489995201805901449049828128790162314505421684676829686853503074112288263603755754315430901294054872066956713655561450282944839783447312890251655320074695663195682665878669470028942389843548317681759616422406172104496842637771793867971980015622691656930472790170895156955797352110987188921677602515175783689779565806150312685672725692760998625029237835163001588410093716093607067096413503595703742702559925975646189380441012498892036733050550882509248136465819657741683328833258989917712499519077654276424035291277271359030733632259068385855539274853285611152100804886237645488840641429830956185473341739745430289133501975458690271526163339213128585291746074540561312901077290769467470862355287327581347138782862607633087788074365218642997291260990411649276423422272762116591298844742030822455420277630082781258442662277403270276266929744820182622974682455744910031543957419862619346386177098219689434550362163690485532816963605146774386095971814190252928312135071183772222942995189644193769336182755582577390520585915284968706158234400481251224001666402914643421560207203927743236354358213705828999518784476284808148765349320934711513388262615376803102560832556259060389190207262332554040340666873745266372775307695605248569645636903507118312769779521490068022460239297598703135216781515322608941995152588018218316574035997803694972974348193718749992010834714552637612526760545903338768212348370137176672740529490208623311253127353079126974477872475694271756765591518359941699879538374534593300025621379418716073579690741031702304533307196854913448401877511459146743921665716983616748842124261436611864146327080195605689992595845568593905646916736963440886111108597885689650655376160306666324784388145454140073884527584900920110664603300115496684322121195546799828915290395595837219745776718174966105689135595824832749568581503675193594212145263933555863541129047254344621268731847430273717460349928030084775046814872099195243356820645789574821274649823800813530946933438781541403678897678499993788029074135259682932398208232499284692824588297111010801395328158283494726685931107502922420169994371786131308012225701922952267795201574229935206840070740914110964487935174762129623513249867441573661957437689197671439896279211115155945055712585305254554879583143012258859534332441289269879468501403982342388164382165832803909536286771945045047274998509331750731522158212129482891570020423384872108187396567419752687207983597577035036839276495439977670108401634204385414966253913438857908873532261170188831219602155015572554110281284234206838957065954116111024428544194006526562089278786425729304155163758438811091753821987595573637343159380579799771254915400603706545208052994910653460442391036516755272063620393197878925034990510225983271992112235107895720409046833848349445869270199025587690178281600219215414546951441013398518950724738238783420975702970875357247103601787861760701443339915695381612541216128350664679360892671679008298270045209229467399775688979465497454705765223601687611767554863763340734604473184939615326199863915598464181696601714018338083575156264512136898576331477676456678885091261763812748659099744412203044650832382819472910319218984329929565598162615014509790657789951466429382702174789713005262838186845440485040429362740875473754225189739701948654809184473205178198443006448825874766285930652210629047594513235810526512686305699328764015150466488497283190394315145026671972245407561469664247419286006285553790020523658813698866887216962718587525364711237240270535340505491222164922937567497352868696672930329189840382945243340719113087917522525384960076856494826605286227646275961283032309571300988078808449483138277162567932992848309266747921802357047955054484881891203933793546940696283990101352498987480874516000561498690296747389023714190444444736449635707297131192395304301516604297920809444140093447269130406871531882151036740185602292038449777059185895158169481532292589716978680719546208349896129168487102923521922129338694081537137988618742526671362347616397112017582449866871315784946973486170329631433299448890693782340532942225242345899921807148114749756573511519527807808482507337718507577732453466294910412901704791739706911367714709976040805024531219509610036125182713073481860523970176638113178418434620918224357224979349657027402882320158137825667344595106391321494280287642128702211849694369381946091295711500318822819880399258758180403521933309824831655533884289557824693296587672081736133602054245207668002335960036334204797257987784013934596171306135243817509799168334964157204035313274398480516740015460223509114967195932493399427308196369360225081151091802279515855372832931631449650281233970787728607210508402494852286067983803117053820485095422826356240069077328017256139234420741640621772686571570554618932242030559387881102712997047347366584951479605581989405916325432862984734173359605131748110697025564002710588281920935879189250874232229411919921891237307178030523928223409007216999139287013363336110370276668442642620537542085666690034167572951108368184477097864807938413457296104184072199377948719716904470436331739654861854256664313867731187895952780561399377225106429972422736534107952878007024403241387755013809224295380032062653657842943513033069498386327601738406835488559975288553510649414063552296633151776324760939364677085077863174584904361347574272558097912338104546199115753270604627787860935035517148386212554131620825715631613080766192009204628277117865652337740779850659561567227470671732309703318677645029968719294511207013381039556826565364067556754835737485568948549634120949206971084592504900751787691601307733622162038544510638943487510049727978157429830764606184792485295401867677685999825681827198201121780893402925963730762234899994250355575197742856189749682953851416819305710311930436276014040031786909886566449663028500867489036450222839312641928823624858521885841763382287021316883510225552182589768689039296086152702218090756698319371264949103197287752729418934291411373702866641225799546310661188317832308008242989746174032325611353147469629106122304392543435723093517580730131491914179938788564454979961864208713576590439905754004513280585685899312707474451929026479248930819024534790733463387384463795175604643321036891783424149051742401857151387994945472755972464519576546143079758840915192331103817608900125940242492054105743472425775688274905869390713218108416878808159273997775913561208979787655190894401055860426682208260437587881358429507746728989121911139461110375065945545244688152810134217786883762501479143730503161887958885995781914224409102712348429661980993126924194659174848952619146375494028631180392897513639979140451651911838818089224018226548720183663399334261673609982670885376355700729268023219412988425174940254095804663588674532699106672702697039894187412066786533224715143542219095982192812713538168569570843083655885815190480368624450984304719332601106740571817710741096301139399222253876144032889660987714680460518738328455594217856212894574136538138891378377683738828300308604783363257824408974042325595541883840495342151119629235523258468318137781325423091054921818638206834236228022849610799426104232461122602530484519794326160703165899626899570516837635468373422268126462744147542127784413707417696610066502587101863938517337985314134628706001996244782692910251352808693891115287190109747726413676496070649844983903022567838046677049077750994193435329896658138681706535874084477050338910471777431047781895425139888720812799581339352191699291823777669943520720522219099904100907154652714374641495185456464102383735763691872601318626356895527300565292348621575839871064826726069618106328756510820343656464678525325135201147254289758103623724671300438843169754946701836585314264010238462150851393804025080789117980772478304278362276026497867670344748791527927431336835288339919982467646577677741545493803058869977825271694162555151168152501766009574931476646770646134458144648623987882752615608232877441281439386024225415147857945571302900985701714774062895642307879434132781168390238904951121758386938367805828886957185749180946568280845590502656585044251558333646969747011208564612079469050779677537400390780748256435400447016532807156281396762857521251595596534700262650598567884695847835206152546194141878400696814419484269379541447053337433229114084190027543463358338582525239719363941533302387974806479115828729997951081730455374039853906302421236565266852513542209785972431281548012656936307543209552774583115737087714415684580874180230781551693187963417898836044259689152297100597065468170730498366588722586217549165554765064339302654345803908455722527760941697981006338806614762608428304912824149639804727085701270710260327702956285609623210653529451649877237256908579280897536891258447268200936864945210699067798375256886788919396171851963215987319931716412019193102760494649559944843890244516673457619557462115528559590262636311503706980455260556195212603724569280780491522546251063112111861520315587349103108481868512176072706498405436426941098759733812735403146854558618222147494269311924140139405629491501320667933424083507346388940421323412959183267670575755345402360572832051246347112271264663150949747666023291409469824337297594354007121705360159688425366607036765303350669507561922603812706834201618410117657247871922365771782057621540004750657318691813760524587642378130549926636359929659612158421045993395514842215468154767510562251466487769868434012643368431348653924387423722238311106004220930817404260541564558056788778410933638462881143392961608536134376437785626053464034305061896148265688689456382126739190376203451411088532392037500321939447355667871926544079201312591899145072488908405549855398805047430824144874043716870307459388970617625086259272708870734346496420556279908396926815688185047211717929020759245967430614756086083890154615251136015012092772099267364491735696822648413611752172363308047933469438308964777366937093752546473529306544861690901492180769832612940605720903883824641518530052134739527267124560667511406209899601659216530660539593875897673251323167775226555092852926299886274664465067616396755502659329158467813684888024484853440394500666724622918791757263478021434499266602681715350887148160036121439144777921031515795169016738885427373871430827360722846274176792295896407512604960485095961772443056503329351324555853988770281986091374358722000362435330339369765838601373671528761214697306049778378533425178640192634207253002028207942292757784084849491152408623795754427594258228082681814442933041510943371905201860734200447138719635772382228117465410741293573101296974370444017380700568294159463177863497201441114238532862775286745940868045287085544950238066910408607990074682163429099914156542748539282943727664467893796903851680637507174015781946268173880204344267012117189491475777845633003916861599188987988091015475530164401209631914401906789260755623359097202780827603144804988922867402590025113317598496882898405878227093258627347365958869215391969599543172739189191385506967945218125621190246422990175145837515857844862999531630987381631618330771261211299792097683588711396098617174135423803539839936562008129202384208496396139001699954074691222006658962548162999475587051183438846315860490162581509216066431881409481411478883836652887501555775762744665544320836694797736023423087045709985798043784889195090925275424594717956274491432709930140304594487578661701499100774715776181079638251679111050415385346742702565767569612480100396945148070348423796254074026164163188127558688756701390786616595528985551093717475182342465539088738849348711364566022833610832460527277955326434585335351318226603275803547701281080560092618876929810317791084311034719933201329426842363415655621768874556937645145265982385180943487034456574657831677548969231014894915410903133290236331060158562469625327623272866512396611172336270073929021480615807573483290876004579763971347294836671324509813320032063992163119164727315073831133106188776680451309402609287210343977663544778286279275689332412423372440566446711909653001531780943131625896611424807846234287336746052401896125935115375606243899694342684428573264140135986337093524323103782384569125724448869488365612481568463849526373219661419235369680502234357591587113091193658975810539354875802373338722883830662096720078287861635119045788407160385445099659055279572943202268521026339086945347812570201165982801646238658264269365802847963687829161146367326623921730345078238378663341546878070448436720765330921538935727168661615176216766101391034676444560090025492981851314597982665768519955474877155734166637112621971472961531968751468525656456618265764546295421030039925958376808277102081798801469402160079453120944011089843284510002400783109503422673455551304657807931719043577282875159140124505820201238861288046055851958555269083386642457941417361144309556166294683246151607014090404349657279417345561607476228543800762793480709222679237609838676999617342774144080941400831364423114939689012902419864116982621169216206762499480297494572957111300403318215101457024748108388451795651607582576675906543925030738615127819529120302254547526651397575957267784996691528011100620675445106798737116293071026961344653170417536931668621735428274091185667283785804290672617592316920460621885794837017425883713297561979438868313276827595513800058474776093019491327262374095062823965632268891603775720724046884178971443118912473646967507654572932987161313147815193475628874900309077188644907759022825567186136942030823669862614259910401724375741153191821914054921582992843526071200605092196102594246746726177341826824472710224435353279689187948400910637631415881937938987817836861697957829847631696242141025958986394948114793240450416875836029887288812644147388533422411640495515075020821197095657303261539204227477179711788738552007407924172268779164124283728675330811817954709304417644610148529380980733366845488631512558694690624148930310410061109802146131349927904834084457258893221030827433047824344914371056954037829208399413785211836629593676432025493130659793448422740612682061052212428701607824503437246038375108080769789722633779570856256098282666553087489368743301987238923631691031416882723837900489076587750518572321257557804107888623175929987218297066264750476328729878705008150175257728212786900644558682919823454540630002913975000612352014293939358628713194452297134482209208266447050147622310630742338212245654036731529076638409883745692409764088720312403302485348646459847844404170634417732002144449933039616060847481175466338683084127136971020955329096461107280991893227173712488735581765743981971641833283653306044689117746231509095242304139307515361745517112657026191930867089509648054085019275329669595931406775884701550880986725224418771733049044332138974225854390401696009778267155025208561168714955247718709738317219059595695910096063354790504007047528275626305598845933613772779406353465258109809238947543408609911834188641175576334332834735334683967210744291572518100800887263573284913353130183789449606692548123196681126024808197788112664553584562658980165737075263953230983231276106177391132901716563392824793158968368395252310992705779430268651766415243793316051992929723874698267490906584779727889308096168432079782184074137517348373042734110181061926077425970661032519908001652012392091419534060618081725446271664348284890188418434668339366971042934505077065925830214428379227449071138376308770132336729182291913408726621167540659135400638732472155112275716254613963500748405979447733040324916740608600980164612986628785263764335972261195299626579250330622673788164668875301320431757509466497682146664898932311757456803561846497502277266874925255813457768690274887204462631445048204854564188002373171891904649407474143056746364082230670575571856229635552245181987798530220882297188272373649490303454861623284510372597869401109334240308899242172549767341795509689943631600695881943076524391223912095744461365554107051203131133940309972159590172115864812593409676726657552908397649748234963423330961473505141033030279387420078544335089464709184852955410579970436076692339050883830662785983504848308565059226652323252459627575409788566387040467470059572517392588466433152314712431383673032654482482302292419871595931521084401421396691764027592506292950016569911610397943704041833289293139860945158030466988794468500038304869795262326451791096870717079274525019381023488480214340217172374895119654246572456009695017494724351246710755168756140741770742513488095549838952653766893532139870642130119128811793772064132111740974744985262021356432657689938573031927091257942687170226110032379908352371554928551464069661834645786935235409120991721647362648854191974495912176817461238680430267196986814779776835218425708950568595975318464991385691992944408699370854767098594931511396023692755359129976318903149816805624872132895586450266886390590610008733919730157383345783935657972781332841416552097083075274352227893033255728013489955322357982361632757299863294174711991791424896252942471920841812234004835787712696074975867547077621214867503834753507266350775287499995156013364593743773613395102237865808363144525950199708602229654789841736190049956122434008179147998899027063977576250186332895889550364305374262521061360213530496855790191792908616648875380380637371696029258357248022141933326975329046790946708420173498215895552301440363069826895890391696503218795245785468077808482668042982030342390542780576753803955502885419309899356025957545855734857013962724793273584143761009672747528619006465777367233817502561031706631988521454135207251386229130213693391454381391518349621892910619424595951492992129286018034186454289823987271813467170747855760649185029109133080014381041926994571271552749154872892563396565951606669399631095472690326975739847588186074773373449371326224653534690904301641649154105960863405917906498951202158033469232964854403768473632009866818390645125721254846247265183464117486389474115445054521367917844960456420946966396733926521393043583043729880074384648289759461966702502090500833081252587626950458771604885706721951483284149565673137178806386914930115906072779179247148974792810226485754728101343063260074662616231074722397527679748964683581387869342287272281878583432386178832211693488046098450287093701554080736047010569609989299680734888195739668363955783518769407682779745189164601858576203145845646172657151916444449469616553522307033142155569134799403631349244141500950454514240041919937538936509796640427815506745550647647689977261203247618639924330775529766267165611603763609064709908082393358768746854517994095040385465747491476930740964158753756769297887807618185934313093965656112697903737969692824304348333102014736449151888326519153060411507777922070878757020778720122715806229995880417587442935425749150954621524122863252137217843366426744986824584072980713080157163690651089982483072325457574045803672362859764927937150371718805689884081247338345859080846767639375031093511166533419079626910315069878712713191636145254981348183631378310553147634873796660160092260730229423331289684978017399556316128816953913591207485875711493105639116173385147633139558250569269938323887260128780255256581081341492930075472606099592560359222474736035197180414058973571431857047342117006123732224761734513293858697406790327763708039803862495452484219616299507558936599723490459599752849235710449907427470484969330868513511552564048354235189131493586068723188673822077597099897591028150742862845086259130238392986417696364042913325662746891964358591577002206530399659797787357835984495802337975286807427059058602892451295443948417940179278042027872493261643973460232209831919193543282464550224992465272816482505828501818509199467161125309070776997766733690757813588633815717241421055543968543320545079012436722536446857856087249834148665134812567932153730483207492913775202744694318727014266569903128129833757297541955346209576484787448415765109082406392247667386094041864699916415542541243078793483107768045703684005699863466938115560642635424541194424153325597674185450894271835085774457308792005573062025090229494740089883986054629034483744338252615013882038420137695193362745533868449520068668884979126090670692802808655383571818781261080236321489821259623870440452737189734595864424658857138402892499545628165802465132844438433792551025711517363481019299153753483189857787872618823541470340363355434705703406756474092291104007331024354646225159754947655888722986404930353626770013877614863582188746201861819660915870297478784750098209192804127963697485351617747825400162447157873270864260366650520628403611022050118175712664297059626454299847161209526553055378960383522484503281503364320664178270468799294486123645939039126062094701223408744956263680123221648086559054064904432234322331743420409829010344982216626572732541862288087924481886599608093732263921592616620495051508019789321161284883673737297779002447458394127882996415147035742054996685659709369882627141370121701318179880844920275772732784166260450145419355179197796545350467672989862107868833656799564060112593275919535907500650266890583260372063012178020639305279501203458378515855144274561066308596241508931865081484531767139230891767398942314664083714610389254129270265576006555683259020429099020638627241682022704717646054670479196320734304677590264282642044228242283245775216827980161239718493509516716636146473654835019927193319473480187941602074455671065912917790541623005461406129316916058729466598679648081297955299175795735001484420516071577957265246416718753173752123618081469083977774654024528815324714083007240883351221330766021207716749889035745601525999371173659759348250757453337694123523943668367619519778785806871148610943146016321152163675625924075368978904062624832771192072878154444191383334509264043921300233486381299494554568008174701878660178804715665787773264886542189821454739929187352358555151168136089203345400865936698765290557890053613534477905495997923569964747885618968524002656171995248686528987039821832037363321037502160995287362157192317332648042100873393914505611574735739230975486553293521636024460257393142502247357287312877995384643517306757936851439498757986098709201308699696005669365933276915785125278372727077451977781222216823845342390319686225059254320331716814460462690433861603372991688394327132368100175362387690578833354867374400930570755976339854539368079633021853354987358743381739736027263600832188175898961700974937915686932879838103840181917454321254967855840485096001849889013384920663488300952200145286806423252010557357850168952990045320476838632340318061072515549461440708110829369784895594497994409842797475100438395544947804683370969154723260393211378898925450944732058814121990808838380440817227288714081912446211614433777120205855746368502868243455188693568174671817592051385003407210393953762329548886630749480889551682884657085964017238249739421763836773846517634185484279534419488166336033905013045743699095372023349906083540345695086417733400766840072250175659161789625667652773575337748561810372192873948146556780252745253553225347058094474652960172596379245013832722289065176348356723203985320442051311849581159049466012949790578610129140835403306303808679448902821905828060873649216755775925105354795738282739897181219452738564380433960641513119794646845191504760870848167677256474773948658212722317734980579416702108933261469482744458808891111604008778756180093416868759336189132517761572292001541364567542207759918695763847842693123626343571071886456941948511343615898612063245845574921433023207589393495777965188076222271808281410824020285531168513781462469064900010675812497029760170300372231068965352832543570404833116097739938793094148963858131336303384395464752466876888210131069537534609666757168039864625707470890089671192690063507356249992519563640164496947628573351522779593283288507164465051558744275472035254989326977286926807223110464771409999079334486148425765455736118465107619357971562429828070327177182332997917601880893935841478725956234699433545438574638399147697028978944048995181852517847545722447024155944459376758197109376136839883592853260210314654919275398715968599373644697923986225781041261727543845203911099523072067499363894159015381823010521348821959210632311861959722451903072872751778688653630963931624151150549469362163283063458087793903886356314378976320213915271841176009497684957613111457235246801513171302606938544629209819441809208886290820180627026220911043410531809295653652662420950329563392482226836820333072158015097504899223211957072794032883345286098236128777706980985985444892710687307634212337678307588226160825067177779545124731118639648866118413573051726129305689859900445449705341969316453086536705733236934860433247262523362081891602200050319568381523151870838590528187438148469665956120250931289413272332751657327509666345663874888877065031962947271622250496352904482480155561832522493463761859568223531409520831848123418701846140483308372320380068753778408955079566241079893250545562851765341385093595824973066230734068437922689439489451136216696941481421079204189431047117139704500345190581895846032193084366630821983859841715776933423367989768878824883855613132898815042317239808194423838820646278065153162156904953730501338526353981325692044221343808299545809091074909710953655609393562908767741548780855927264761493744645529828585449184385448187367812045650688279986022840191119267758033663963090354787878012092857832908179632705877689093667889766215622309878338419029771335212148402602346218044455075827668574267899037307935855214040332329524038608052951150563567513016657294247575994288363952385459348185156989408518678930162096896392816751929597439300420301912873974571388448813035577361483947276966485840766525576805181243527019031962015462968935317168783093267518051151203744080611796860575405451001289294426117700992410118977913030262360866159892846277208530217936914317866671044829720006172210064473554085939645665141109233322977288756079169215131720886668131813529258074366209159584345348711274767597853565213770886407320317944706584554584863159636459017259882308716282914592285866869400678503868079016177160864261420312148690006173117813276495170975688617925590790338139578564653962217050270995847157217136972015471417996987245371337009404630932963681034363113258587272140318454451391594925345982485912096987003368122561580909344363998473240072880888579527105514747528283035931247629801026656252871501149838034489432746228044040137560576955056589430040127616777509227216401628362749058082094792186146107661489951921304105956040180820677813286028444878072806659883718491123154018971572336167383826883317669699566780695335486707521096043253530874437816720190475635910476511249175733160978281647707393418855604479911506081301672617157579885459028955151877654571124405642860792610308662124753245188285501966892340901845651727783464727767458062116204680423368048975978848806591365315859182605334105229279940568711587812286511283805980824986381495374164397121664721035338143473576121539701855789358553023451118311494701504946837133245337572984451941824756278807819045366188948481811006393463719809379399152653205804963428959684433716823950889421662265365405424692767598640212966403395043476991032051883275311010895575101495547324673552740471921164187144329730190155600872748140120112625293258627469950275780026200010926589359445796120550082729437171574234491819169818884373617403014849766720319988497556428750357686481211913502315593453530027708201549256961368041114083174025159567604220897867122937754628531248399977936593329708264502993228872135363556752178728279280097026901871010498409520162115703146348813814387576489028168366679460046794486158035424964209052759125650211722427162184636794334137226249302992086495737559161552995917840263741507936329503863339457524001619634748508908929643296329423879270461925773994428343623848218787276125560011142829411989397363590159332739142366748070039040526848401679482909722835378350860246526824787165709140916590183601656671680078623539371395924504507690437116985163016959225155398441120783976113130671178674724605189774319309728377375990232271621254466022449549954534130656720854004534318443582620212703845595744219874645857610386045175152202058615939138991329549740936220587583437763891185168669165081056188879554447901654906540250197490410076687880274821239986355667312806035864034284665554036232311454581938953443776765170258443456032271101017008632618976874846174268341766523762361672654009157310450971416058026381524186244022245757045468592347251617966828723325871972991997659848804329584692387273522085051187988905371124040385676618243947412242909304157111722005143972336694224111232213705002242738205677295565646493961556101715960900945656406343890570994222664264515134290592729995286861944772065833416610126231951880070849768736505060129433513451849207447051020124265683220886127116199303508676801809268413265207950125248347208742763316283101626527534376678010516375940385039824053462251926334997025197684637863581695832601491651498443527745972989542477365723291666348366440704762810365012513698661805902106153704759956070578358199649093059035339121627104069498153894998301729454910145987295842553662255319708691960572196881447305902701407309779035996215636087662919507199921087237506557646320039389577081711668723667312281470482994064675212974347930675711845753292596728246221221263969091649736032190715297510907504020400007572298412514347947366526242256667858091795922750789802432797472554925292937321220273233255042261028985755529006191023821074431863424523742864669946458517399910891185996541459098380845316131967981338772755979248458025519471039790524511681563750295111222225935242698211608032000432032058851984826410665385927137864134538851561487227583135336041952310265228210040503369624654415267424895322995757115686839582479382316075953283288582910531790658775650255053259726796127728468548554236950126877539169056551823706537445561640424037712021342596161768024162238156686630523137455745471533737975703671820843211199282702258483862421212955918546089520156788447843819175777712201033851362641857003723837773909256350119638752119512754923793993606713363737432653659670706572892837989128352044810611550592659042530358761010010049469241129061409727318503103224214742389617430368618698609975519629487857945143762989198914725838272365522386353411725543425994476269700386841553317918219196804906789631847917808081419324838338222706206587230712705599116025144091350982254824264988498991794362852427402136663454126117497386450308988275577038384648420564707115169433705305020372486372228672236545632034942770237420701033030146558844449465685046699767723987074179897277667452220441434321860246925417974115110176566722458922256036861767570001391647858531394719380963651522139276245182794643969537858068346759846084953602051317035866064722897636468724845701562881066766871752416121430896730259106339770333602560686094402215726111197115340703174596164009966833601745601500970277375203260796667528346129662423585944002364414333504178845777825054186646498197178199669397704695276654164357278341093031890743278600411123042163755918606146726975867106304893791887389263314004043348179790677928016051648059765931015028882949209309044696329728564024164057742208696730582195875310711220399087722623037139902764826145729298697640833868457147470959610768082990844202984959751109348311688869913905510399488467114178850812464197384748108920422048136423979037379755754447758239914172973133364947960941212008003300528838592825145882246036478572876166252528160233961153490672792309512970637421192867746985209271387452928144148269056697163101419156098480145080701664406517432718655513193908132673542314746409880401001780855998448430957092221048052400796824976069315480400674990602363429668019363073433978320633009318243500089745317321553160209224150339324019453078422546000089298516723058542322081182956924976584758848148113649392170103176885645812964017427155274539412882843001274049304933416304345840762053537195048119964657521752119305204171219161987460925071817652421252022491413109222434273387031449651806426489114954170230119268541148134829350210771378024239436021245078742955271723173486253039101495746060547115349989889949370357492766366027557570791637008743659687678516447766358061659857505792312666006712584245126497790480197207611395767424370896940906275709447302271195850064336692046410168697421234275839935834689401291879811921381266157208158434616847526431975806345658369217396675090051413086011912197839498582607380469031621178061638883061822683407059897940216113445491519819264386381437855159672181404254539990659659448426445312083974871349845062954405119409599804241786929779123447583575732128093127119198725823339104963732145288790517053961530237803003786538654859650310809963883155032225807827124608641293513713635416998712265776515609933883689572589010786702266297381467829729349813286226182572309709305881722082216743789285217955727636854819517403676399458968888046251079334546004099426442677497000802271056844324904618101364024817696782791135938000204272371714177995940715142764884080112303860833361628191173710590828323777721212484191400401193500658927498326825356336545211608160021470264825980356975833995657144187343780282537355579642973665639205259768388744927422783876468079150537163432283474779391158845711185398300848097403787083480395863476855302337255012940784964119647319844201823800859739355082160661445760798520369586122510384352732272025873606426045793516084097073575605468022370803660304738640262147301588272388419632545674172222985315038815747305938232995391483412225891248144978156820058540123381493617836058062098550805676661228245854451564894477649168626355097583572200364570802134130571566505175256265335217279536261997444394691975338151792424675579853455881930438861125718171451530751427994702293195815571815173418606948810779426545152309721467315578128305608988815144643710209859051560339404165944630167362789786192184028094173331082082567734609938851818062651776875642902670088479125939498738281785726083856614050354651202762659880766520310012109077526639832920124649861950096691123993809302146222554352565371155050155959414099617904157502923353407727094661439084226267832157790643380150885385674601781762771723338826265553159441197892759977604722786091572567713090322137761678189319966525495762986309740687419664238843456287255778964133462317558548612273016278507284725189785445538205252008500990741584399036356601487323122534907025659420157816321587290448799381541955669413868143411943926205018266355626339805701306955255906292241181473727531080627950858123199041855170906466576231464619756048385095438910029806531735133259770517995328799917401413848382184325517568043463769716297908378947498546462835267786179961659564234078155060333889776037839285522094138424319545841295324361716025365633152424355264139828937056433281996025118065601763058651899889746379746281275394111492100589411692590601710833540714240581632138750193492052684578202486895509668323243268738244134966421239523820920178763790743148913212636880023347968495665695003487734259442449690701943259876509281277992262693581972155326939888736485306306670672638595122390717733766040945465189366746513547417765777643002028866462131009796130953008065433433610496939482537734646088811720699277769942575378825650801294049964173290356529659381666577726409764718082199660231414843427486139041733255362223753782296866297875728475370225598862448251003838816408344023496531485502804366996072041503072910406663756185411577760879337301102714703550473673778763866953148833617035318461266986362558053157846767062101227040649142326649490368152315400176190625755185487479251604234853994834087578300024120873009440537518762903466739942860190621334256790508502616992087082133476326816735948343642707721687224298522209196922858321805393769163230389151707575770447158222012760096832445048772851426453239010608271730932051971225806626447430632376565906651664763495798717184871199987949287617400119398033663202602926864145215166482358791338447661263551868094360074385049045983057071756737490458803927370328217606112652350260940658347664745743504095196511635705604094966575697984080458270052284519197260153025854496067464381243397710929613272580753938750691782828065911536631068387998128147514844568948089574551739966421979383765030129834823089584846801032439339735557572454369832462857245880792690180126305462973997227374339653266353578166556765287306558294905521521708254860373192787041583497564892226728364299849345915923577129596779755355743050500607756661144544721422478522590301972437670339027510105298856675954023626938263800243021308430180599460088201277108627937944620732695018489748521914420515001651248133101897036697848857226531543592249434064900710719938760946227267266384099975292690108494164080062490302241693975832002835866738337712326644602890339809691480012783080625670147667401867828553023919541811123514344970997757578660586974780926808931904192618936054749761327846793800315078944059422959800344195412894680945946457923886670675740550644131260449532112794453297591739601377228005807496945821697780270297325806739516801701892530900829580247944480626920522597980986627038027539779948924859691049309079773531239400820926154129423972313102874287757975758941074597592284304738174211508294687503041697485115165644078455226426641105608550415602105257492278853549154017518925161701843384695947615996766113696914616403939087714092358197186685594498753123516619116814184029918760245290424294057885485724628904991791736449941491279376981610968399119719209831381145990489489803184043547537719804607778860133421333524815138155202834217042368411608343476817354145060041822274572579441553934077220365999642826979985908611000432805102915569416539472757940164891467319489172740197412024848066139433766903334729693247054384452863300510695536053024766419659724849642240906218575185080847898002905469676269813451514387907180091126559736580328468767900155402751114053518580396005212214010757630466274869873237724310163280051069448532158905588343341240921516820925189882268816653194086985214461903548523436105155555211082849163660048661311611600585060123619385242071578006268539146121665844592637529833047415333613322341045828899547873575907370551305798901520933833613714094462163189724074169547621358597870226609119689544652924572978404583728269539916257535011248268217920346780711652124490627949719419828719825584385152308128679036338308785230703146187681721618557684275780569747778215459725645090596819559489027153812372168748720869303034624179127760200953103484994000353944284492722237051515944086988634854973594363239339491193202059513014530913746937662457841234410947565233457843409167735759852301838293093513742657976184852824754893196015524567628257827184701827499430651181227442101034432384793084342211705224542854666208096776733157568203566510776753151724369719312107696833046758187146505419945807484174551556313804975825213562520814515287768440639309819026057741351623796435227100707242020633298677141655010625043747463420632631219991574044733987452265661100442428105616371990074363667203848173394157453947201000534071274113660641279432793148197308672084566746455984649449782012273451280096227533208806197937375431792334791776555647138733158324786508215120023527077568331597949546029945832177707747839981729515832726179837040183979093259818798210373584904326942176201702822936197881409378484354001473962822960434585987465799961502460060488774460220534066730246834770760636211046418804488888057584301487324796783441684305471757625581756378010833084230550339588280948591452794560437425054914017136711576857732398134317339964600531112418786701465869217599331439877291316645184271650351708466496071401534206379601033384332098747136069457392735001470070993070692374881935291707663918115957572392701416985137681527904977509220413841173491282375259519610789768072250288439746809707141632759469211405161888648074583933831893168730649226212485972109399720261733406625868074116593859265113428397181949288884570253541846501633029864999727036999605876358087928037308985556618785862966823713696654504034768427546318608240934800682343965482247589702174307900878831502866849712484595409188019484283053367987914236509863026388418476100539761556056613521552047278937063702672215747745111163313222070059584286571021352054337007962742577296506338735660037570595881010150965036538268938248100593660505543056192471288140155519307618152151602974381871230571328944569999459730054851826401196896124196035856631849748353375043115366565630204527194852449792619649266652810344371255584761518164126160074803102563770161545101425533068834314759047866856329342653351080272404888342482362395399488735453106697996992744774446381858450105972742282631912199778816043720811394836371967175136968189823491040250021117864068933994705920321738792686084277664662907134694617777961314095558013557448713658154637760107436082461993480108226562798754234301997319693780837697026503631824112087045220036663334740037162553844266977727151207799112985446100741883836483733359304689590730176439646062766941031329696083470616576731563316623398155369629743844855423039121080267309831959954048022529943087322316136234930427430153299220698890784291680619889608667215077283692605057543796336290959014743360261297158346143769176511074440709678712855117694939589179962240380181767601428138736109439930789265045285049936715481269072376875604552886909087735653435894342152834056714912258689614850828531564708143898920964315821686033415596297318979291511080375004653317334961933025530727708935289904918610576612889359104962027741024393184970490753276103627615205455918844752880381915486204065430406051361408760120052025664920577327711813962374432861420108447539586931638578850872470659039221111700517024245339467651787133369456638889991194348716811889396420439303084687116207323668384281548928021665901151549093705289807444644262077957892172172337785533651581793187895176291763168090570333398379326950489870028751584078670084783576369946294535390335846827213120607103570842288192080132642034355270731312834169361603705505305603483525242800291587327803121492835699034986634769068697003194913122926160055392730609347924196971752580502486648314696272696121191611134534156193221351219979665570465614052490604750251091128181799415378185733685656302342557414743881785249392804525497478950802058929039297394087432623384612420367655521605250077613706871733045265539840901073428951952322236862496229048574291361561651595299057360668118602084414356897305147521672915092236506968957246664305611510012304810911225764849227402812098004264636917975618237112416490940282877233932162332095926048422419040835548799633191711986568589242226911619427717309369625037064433683109883990418884274542013305683676859787622583933149064588792343563465065389944596407292676692341137883904950335196421317402012682630344811157630249772059111595359889704324747208595681756506212946525757814477658090283410416532838353367363652016166577420242369096775357952004656684207478737216385720244833916778935085302874510886688742080160716727774916557609349479973235300804358047202563809967002069782650898492588875005273544213079794621973143579365755009464328358558596071631139424080519552721662534798434832365392335788616061907694435994370229913425391058122951501566709554584745550711972094446407873971782077613453463818243088175070868525361299468271544734928398240572398776362097970338229590434680294340153978457759557981860377245745072575981512885586927158075087146039471151173532634742750683222088119650902142930807048256504836169718814676006241354996947939996824603007878903419585317286954481089932031814814834227492378050537298291934922049474141347267128105253563384813524819659941625661949204177202381765386031559988013196843922677420811634717455626336583262330224558172967657994462787058645994705727517788703707959361178071383833874370714780022492091401730432633015694409212456129551649822512600069058638987961004134297428415931367184569487275508986408894959227469228665245456027680508472322465985740111959392868142469696715374394680414918369012949444825684167170727898455260251935486312214824676902379938861508491050674046177501041454698199128338981800441509636763921740477297334448119099954214516677805044168664697903842615403799499778853601706925647418298424791282158977412957779141294154378255794894420241689554164373792109154074255534255067851282122479592749717759220068748305366863812039816943444849627308920084682419340549291104424940802932281215481681021997327739743544568075043720019356100393525183999237245360433204437780690048890231118716561204525733770444722806714721096835024354792001421308736059548534537006791091981822643674955908922356838655720346390550591393655304254987598207676318676038319053848618643228714434192130994356781389206342469924399757327853276676496282143163093483740868406244709464102011937839197140740269495258927220585565669971042497940972123851888523503284072727894372048773332326005481323364148457240561926041565082164847129702583714173491895898098828616158853046509263341096404774589536786479908704430122151808469455785152262819017269384733924948623123258185634224545014576481245925830908835240626356582766818659390895432431119818393870775741009587828739128253537101469646557151367206160892001670426651406269699517222173963277535686245997115375400549039824038030362249140560071173223867946967054650432601249192536771984074511931657898377827978248098594744058486439729747384503011182078300154956117437264024207176948476985280211902766945162436275089344862897291530740090265456108862915202356424577098975555971510424870347376390115920915929004007138845263581304213528480326875916968674443685369900498982583641657379499230341755830065338462116402611510736594572219366933910181292337749341621829611529935999989986090066763255247433558457813662436383007515604028869713897361616859502791962511705234150127372913262938914357281714824099194960254850142771824449931094745166559671506895689560272139311595830662878027671955832442946548164741672523950988872455932694029376501772351519368210567008874040182513907041681908970997223187707998445004579076655054181610921102471417843184512957691819188355171166683964820534379920705725125649998322734251438534800830743320060925687279219937860278533911732775214141182384837216072392634825999863891621086805483531916595595137223796815866525839494052452507120592277237699023664326586352307742691811156904269634041113780781540859286058513585498060281868219796953950250137036971798901883987062097477925303459618848224701147966661359745089766695942349456265602459674080494780277687357421613359208750295946996136707897371903959311432829958177555270664399715310008935565907178796818011823921848932506045244978573497472802057030987155393378220460290456864336246316741905783076882925677291165869460852175443364209094968722550967433591512512845176430221593715341302171513589042611575463987996597286521664725559344075734908186389006521210295574965247048458127557188639745597654333756964615784114459698546773702134785846336198841344224524087426228888042830858214430609754502180743421480689290703811401230985111639346636430704325800799187076240977190075102978306555470882615420431025679968065224864255156166705455917795370115993321284765397189279966938380598734481504816002559607802397209018748989449365281138740706407862670404652451668862179912697403277145988109081991602232373398831783485406880499530204409547298106588630612778932465558050240492911803482272392254307007483502785323211233623862914058421568627950005190377359535671692181819881519415958149798102586178864602598120103403895820759957320204909969782893369247589317552619232333408631640438075878906880278116248190224558562175528078515708503630371114890180566947533597707203904625845343718970770857465583065563738121535959423452349289662717130887693963421536823372778079983640777147721974994651000545135520533523474283117559000681188822418038126911043988758455168244990191718802952206087001321676994359453042491916864064102461301428168859590843863330328015542098840632570644435836977949014791059088472444950904745686017782553067159413134136787970128674649179895194680175997595501849799465631860758685564131110547939327858567526278877737000905570881665722701214498128425692972344537723879286570255636011071329932517930517047441806904312722048996779349649567845478898906914086016546305960288544150436748502714112860799761538184923711911634525272585038139938703832996711891862933450402301395113232300006262601011916427528973289367741442272187184879858524514776350184967384572320606225430181301239198309768169281147458852321497314330666865982845083138490739131352608348949295860777594187325999764185319107926643278159784020845516106610466526145260780270801540524248795137515940503731952671773405093093506449988396147640386588001925658591353222763635550875506170830379481264162379434669241302838938562996973325338959753193502825648982702739293693330119490285914066900774684811548475576672482579119706663814535570010671895099462171160539846140756171474011469336649381012956400413593122683954999364844183489547937654574473542774188655257975914716519725031737010671621513976597678776973119615155448609159933953692480023677591501099479028036538649905000545462128474871696400139932454739825637995438628520157609722566839658749712296102253180877648175205926151539072023326663594843319728466419032983954290617970457222712196285948206418136269752280541058635882934491629712655447714943848407750155257013724662814564113514263567352919207142485060811642866650212557061534982118118088014964693027386910981223215739067352144754562601344600361526238011956705371382355342820535118609341914809833544317398116071681902330470585269417881839991952032389506757832030947265808886630343332199780281696708886954083139996663946812310414976089191184260498281392279234029160175936890796814512363648201104677154303497265613163551976762817466691456064964753367611287007951846484662696869797289907896800500832536237759081246533681308500213583699327510808034760009380219481349491822932775261525737941220616577214991593315233503065633259507782352255289717393115134113782509559469922855081490509422969711099235616731710313466669787516449652270136308118860166184863159379020050820628432792638408542819149133668104040690931578500992291924783841193128392793808948705903504826968843727041622174541783612191917875246490085185579527878845615247561464640068618949232737453225628465586041336888711942778239357763906310268736480850301361463835982764035743893764750578128854928402308444488710110086905942780918617593486697671952167120783690348509410484747793945009595719047671560850267683588547074491798939069468650558167946642086603482382893109167599444554025900572657822665758274924822803749552854574662220475524132161455066894071136661214612345409900166793925359891370722158979755305420257698112834965942947755565044646994450216939068494816907699824625374826437281805552591550245469166899803415286343315232705181009206853246309133613455754082383289595852959960189681738816307608838268432435839175849287382207338406392766521925654705665415018370912527155093058700847857408683972425549198888476062713702247230443946844652530845154287815761980969330612893457446672831251581055430944054201285594958706478125043383029684776979715421560093423665616798115621528270691903005287033969467911239270972586967260464505160090316787403539013849739142912264337601853621240917461520903588860558182674906745188148070080106385750025956344695567719813981747791141340799832668734456850490845928080320746226742639874286279300084572540816605532233766504477876363280276464888242675913418386924825069785623095076169645652155108069106329485750385730329884861008024657003284159591391546954039242365400711242472642801972388350513090647188165607456313399193357294928307802969364548736496285923725884305437797182784054795400496671117425071454275557371329061714824657555317346408456943862128358013714333298338119618658225678581322294939169391871879454871253325436938963614517061673718433511748308901747400322843172293111814808214901033352476172202892248905219529091028632515258737726208065929023806843701820337227782219906363458988868443613071248066804878631379533951550474860972503950616632035605105208630035343055714405160136206060915468647819996167063514224987514619983231230831173476774577437146012198033731977402643453053821510657966756374949153794127845543480899072098296582815884037178027978661095761115581615434667378902887951884940399509620312910968319152197855801552450976018954462479443924492198024343033456253411635122732697239528495635660498501258086158455659250268879138980579969311505439861450468016888222945548682812532730757841254986388845693564370536912350871062875865423699620358219316777471529710445276229809722469470694697629266537549465037087731597432862534287944040335740683676933598447724268855459245345077903084643568727622800088517123451302809247755385452922662710594583766428954461292789612097030245623347529771365036785012478401679372089547253754550405837200813038454009043976987733432551917957092184967304451600083992342610823405803955761788396906481802163286404656017261748925787078074994046162373402462185390540840622698837102710670798256391120326832315146416104064610183472029785675179713930865386173634617758888473672371622929352194026301489807723727991820348193548310727143174955544609249078673216826347865982178457581703625715139808107484643656567788062890733329680328588732342960962775383900090625751381122988345690562928306597916931537471013874095879472235992847954097874067340590705059179333047292182597759450048329463677460115489908051252335981751459068233078006682033909264576941527747744236063413306355395006052609104061476712531807002358463445944790235401609217955853325022616581635641303666942856484428114830761772147017394056657912344032583783056655891047246186338043622781863392284990257071141830159580996862019836519710014184886055872325390188618533649301352333552930764584272432390934725669561051850267978330909146984776210708746471176469461851400390254503635296935154532131912905895150051641137562847894346354531827053098790438772466788852372440745739215505587142922726802979575895243323727119165858206610360706357109637173435042183052922198260641316064874846641673446916573883183303519907252615971973131932955192859253460515763592052804072003678435188866650099009592799709513435238790339037815457406119577801871747849778274749727810943986867960573493220542144968875623697599394395958080186833419307479539713378280023826463360242117420482004672881447709439099969332818516871817870297175265682542206006402136450136006965400401122418714536749894003849533907270735723487488037314919365455179402775550057812599881079150257438303725836589629814006566736477611515771215343838880834246294801184613920217133715749293088639238289336862734250309810645195768848911611954350736664194201429016303000021161924513571344231715847127375858760245909530903727800984280610463435233174863731058893971822852544034821191973279707573384828041569908224554587666001408058660081732130655388739181470123192446757511680451279640449893904725161523491908366688809427791520599989863701522948876926995515157525309587426219725088366212746852241584016859414980686358346370486150434575611093739409705298976322122992054018005935691804777478506500520159386727379781296901295698179778685486433062849173000818732108959151598219525047737959350878042977530647350822172971563595722738834022243284017301586048210826704799933572164201990720234656797210981778727805330475886430284377023626282263249968556389837982368517029050609523028094404071638736347296234574660431506938869623481582899919322790664014751669249557432680418325977812273660309478809969778258153752245374648059509535971538112309317533871521870385242821834310837996731995981407285810501268580167112484119446353875006706717172697196434707638088618973859439628098373422676754589520581045613429999667380727449288520413426255417979394777382013304627277412466720386608165036627441413167618872260112421902821405424882800162388702933142845829453059967295990228026197400836871379111159195227741477841563266953116448113172396459445616679786971220901531376385575035186883796655107546867185404651423931757276383771711664186389206113209519280393930774999130548470273490731347463387402004263814343971588438030816608693886850595508919246883554159494434894764262615927502203109888716129715296244844548468690082506608109614493973535949137529325438642062848900160570305903178092517165841215381779388620563211415833449047880181233309091558873700975017664023705137379698752870945892306676914773088145289855111997778704171663679362619976398000081378536565936880637846237879383378623324795731524737501882923990868906138002120668549754683958357245971662237136919868643401757672275356494532082084065591412538384568872928240418167465993143311151963515862779253259017219457823389586394535623835892290109695995715919964584869749506350653604681191103835909723236999122255436351934713028889772157186278997365141867429812363249951848095786018688536801556929557216947696545460737322214967590718582351218574474454520768250224638938843151504475849665859462848198657433276824164099042840444878274528136436179085645242957017979445004114504370386018513718305726309950958552138246760363008063360648153393715832793137578272894241097508586818898968285921172577028161157239500805376947757236796162683928539248373419701566049880267331387716905980112796437427469751540757995863954671636400263289316243751852391885121117954843070735278561672106290292670936067039644870906352299863196306650753163520398401711800482833691741430173585906046148386870736958157218456304219585510577499802594415660119772052235400980515139230154272717766871501234473765047215046684886949633343236478684339970633397895266163998026217220200524289767244501556376039414870173975026187903752638257574458752721683964717306759526598160506846050205566052269562409280080067980566923022281258644984252474470785776316132446429800272950000079180589420282423142301928239264807367197210555437939710660383307108434102968551263703988412459779276934472400393568335284416733021503324464539369206349557656626940272527027163269288898904338546763284796622085405890527791255600213839232988183108379982264954382116233223844990317707357257197431162936597247284827056056665685631039153026178715150405201858359235034482761360516120321493130558067124599304185131904821782570831719149077452158534574808528239509792317464509586190860076779319811880067120061199595959883875712358189809309350356579754356497903286711518173798223683811512041789845039935854836920495534164176549125004480990282612161038827974337402986345377287363440976569173892899737634265818240170599496477666155015802907758033044211866805373893098760045960011489495509990332485510577082410063565866517427236228593026625236072236013624298443053159503596154664617318134350938821173402552035489885383656163168993635676495461934926551351699495219313935876091200275432565247990221353870125093496230490433798795570521585510274380120955666739806129219487747403659951545531351855882931939597022110480165556699280662545373216050433705200133395418232856422545665542186381663513132109065423629732799526419737195109689677811662561080544299638924433710379489956326387732033056930458020703642700192385783796394643080670655653239745577085841103606752172836994659360671043504446786805781774150225940441921724924775482119570898859402422203541903644931461637679827074740500720579896354481052299706040049526540742118876797347111544497394561274755490992906239258088420306804876087852518803174554892725816353478212719380445492101226131536748186520097751587736381496507950203937335412718983082261902926664364551985996911694172501105548001797280095896881521078593969199760568643675884917659143041388238751818381265713608430772445845083966785580352614824860145674389562408251225638123256254302439644497628832966216580110352362932509754517190543888147796079569326400399398053507205930232139915143961047862245455452230392531104160123764792688254532295983383115146192816401096810704332441918235879328476467180608577080662777435631984392611917389800699823092379594383297022953496309163007600152797898686130468778570935739024379791070519731424610837663597902571452808792900402657452334327394289498479361813972221966043047523643506579844974635308480286211100489452946989539298756638838011888633582923123252123182338031086628711758314603966479995263281786131410016836755918324292960497837959188863051121260559115242580506493082555112937286898428098574294801113199311866764066250159418499407720440890922619639657134244049310557371244086282059581768314276836173174759067905398387038079383941943473883142916691171446697786277589788835231512214333518401396286563144505210108896758684775870615374840680657247248454553517501466391836619271144824305157806131687879402821464918139091767199748491788164639075138814349068207661168468957392011748478151994011492879268277064030993819624115228515674473234812669300985135648006823844775841828011643911963957664984557303769522879304584844726839378657397825957291477649121856048814335567410128760362142846361122245814365941141396814644853706202163976675040175339816300015995721637618373849920588867020565295247570990320447002717703518472162349409436301583351496684277046781160694135887934511811080455049964884488046821581398102372694610564415519698305637178518474591550521281726228028918523638057167057485060494805171204456604841445722072802692668952669602926747332403713266278808138155470237129185054896563498562484426307161076112130317680274467521828260176827918491162793996755355228051214722119014430500494750120337884566279009965265184850072849039908948576419027034745923178116740669548448411644625948367338496137115198317651091189363960503369454947690820077766453966147975399093656044005421315070618990785421610353188140082466210477421215402163016934447089921200103524198889960095844387241883768117870519542551469637418684085503496103355749185166921315152082864017215865104394258099679277045582209282450609565123035365499766045695455674457947425969820573172198830395277696716106848574103592620491196973398691035266122876025539462284820912498766256369369618916183072060950614769261769933631164229645293562315176366011294106982993826512551937689851911847335439413919269339229876772589111682137019080089118976105819584377047182970763312127040755765664660666512571168629509264194353818941333176706619739497224849263348589017438507102891986422930616578270387701055515815509533349741942219823393786395186436528556167043655406505551915087701790008922840123937261197192031994700572028902863064316147421026802098119043252044704905148656016113627661105499738690544290347044540940220869404709650852264803768199711554555739745747248405710708871452928775178246578324399866784470264173524502032030703610124437730049262004432282382373301683392958658884491189710289603230644113685553967277210721720986391170039515272676406682486060423505411551419349489408522466711168874594556767302086515131439302462227531615232468606909306448060283419587035310709103201472377399269941676918057750047097621576536842050473330187325203741980689425403097845317091898186011040616767742806863618288141349790406858237457034521109985531004770372588613001697065628548135536907197057673404264232774868006053705001002164508107630800691627860310834453192906534825399696468229842773463200743157739042571460451541765928478519321834154524637142063898045149240494403171323502694962591043334482065228258960111775438244861689950071412407217631932554382436829322405289045948726561189457986775731320793592335821917890310712510441396215774184007390395765794124531725045925372489555377567091349078953279434812322990453916458023063389879063721591637836429437015035224254906766851272145510203639093087803681810428292344682684623999755762850093424977138477455406544018441528749363395833742266340207072778961355230883915189906262446441576062278453036259921684818797380960293877847067544254494395994344447501054947297554878184906088743205145950627767416209437356930393642651213012645232946984871914742428068992495492768507735320704864204824208503919869744357657023712655388995919029308350590245589557096013037852474300112506093344446572446942238936532561069807985081160994247877045189930795420547795415039150499995562346813037363388005195259114248090171819375999122787811913791481657765512998666182616244905896202546394586121948852871670518196912175671779649601905353939473093144086507512733116151482444112060221070379007632053879943998196458317664298861002989509877820025280140472272215538504622726540233711339652726100124776985415239475316127619616242498932316159551988002036366401347909429029167184241035537254196468283641183900376982550075189418104394490630925071016944751834325378677899571058299470354014807579738459729792975090588665988981366706294673670632632800055818575354019431005562955313772549520393659374020350628330621784723678596447328764046894053604880658301434475178587696838490791570125214350893464904830382228452470702150975312677382274496529143398993980065480339472322004495206989884275441083690023197293379242715765216976391792718594572005905416855220836630445508500595484371685622648490549452198194488896736337699103257545811744693830358163808723376383499388489689825553774457465184368890072576578721478833893156581591916029998117501567240262219941645240239648182879100225157991402501219930311165807285616362838803773748386426805336306835664888405753501369651323403847811764532511423707806459382544094309664763636688694737614555180588560893748609561211312456074193921853124860149616933312900638141818117312980638980733794822869047385728699893473936791756060523208312474815358099583846523290978105001178314577034297488074742165272358212839769047380839656615353507328955980315727144274835386573377773886229872462610860895368228605716571464183207206830431525187838600029953867391886550587508993937678352476576640920181387889025391304913084313729329360839764859288406242459917963088105293492319497071663681443301793028197035715096013407012523319419609387518713858901669227853621842323992858060379281444374435379186440522497344378225876989570236955659497397955136719631026446946372203761850232539527086938762949351448340788738551032075455420330490857734075732848209768231472000868414621617900875727251851600684069831198057686445009609571487969225879975210466012831426002730520510612831171027608465534364989548533505607117875286552771286230219163165545719838605868308658526027461225570855868367053780370454943598441780578003861192754000992717273540698114063143555236335969852768116715162961784768805713802047199222699116761197507959154675400519366659621260426240582531790747290273426868850267876433306207087547077669541921278139195590293765340883539657401998717642782891739526885795953320019297656269113377639148816449214099038388429814733857106502608172544186350262699157287080734465668209910482442231461813296373951074032899311631090343566363887838106055197384109112958990683548165927601172913819585350969403340234303503471536313827439580421566180374728633104968696900514462022106893574509151322633851520678522563672652622821879571168562309607335336986951548217126756956306779130059861772522085446596050509623508178050015619348507601267635370018631012657845586291114755488687407084433020925047495834179738351107778511473052869024328978259311380572987334087958342369919937403964728648159503947234390394354475190592999659300975632416335386054437705843728551757701914128474577680476056580326875274333837347194928619232737226005199727168671063124247118204175533301105271062997617317416504957068890458839734344114471024190036254015641292366578122583173445223233291886983123056926918443562359751697373045879608793819073626580234417510784925147479743713178609920674217762293526156534535650614000413095349258330630200180615785429778992735950457565350177495736416007493429769769269305569094405821791095210178313310237928046899439283445347362419536507545624399303869594186886885539334070995224388689923801286464271163892577822941356871391812259799531152505888064424414769204754152097253432667592816789322092691951428923204159455632870595906668158628899270809978532423601671864304432264612496508082159740385790637852421026451281787980628644503905440815565824113223719749002571983200250296106376535401794863600311608806866178949443610558576055866982917142905081086093928473907871321165876152946312816669989028838705928567319770297222322528209918224421170647824545985287039028578721001222930346418771382204791492181647041142218631356029436469046247140370985776582808681429755341945398509056422346692617361101980503242351412006685932985947665939718933697420496664244562644345049178414755889141357107855285326951151121828523191657613240043691427999385942698577531923051732577910128965119077380520360770772656539859975445879157934272817370926653683589851488200414354247442510569524313661497604948680598402171868809599651871082902037807171959011892083637209613878627631639071381679422111680000953279958616696338516646422240930876263137157719897570455326223114370532657239938558355509835453745120748552575220760187860537689213387311941095626616843823782985715208958868499723357731562830248013488175823928619089990314581001856259216161241133999292329956974587586690133806101514461594659174667046542529033024389882671561149430797100098681279244976981720253067938833641729046515738208622041141097870965264102296661079386114866662882307673035491661204925391066725357446860853285965321249399327730360735176493158032928122159838638185974074640096171415760038217441173141207509027153521863065789703901112311045516830147546732434678540744993339538850867081941874088771903482091871686167295617111205651200760280703286033169306384533001902768222648580601401329051778430983889864718941296297480038728990154113806602686715383681662414179300116781657521573092266668837496947518129380761841513976934463161948692384372947959961078981456750563955955061001153395739683373870151442046912274775570842616454653615273362622730361804536399920145115232287476254244195717138234950172571450784518539201523745062029202291994527588054834285910608444046337610692066809924542687002914317566996887205514740606909173472153322681309101934954744804168141839299121083777411898422547045285165798253661903675898370447591283215702230681841443756780959052295366903906984417127933566149224288797764088150097804146887774054553115590243735620873258472071328380613661221696046799270487136863248087146813078360544681497854936932072833132528769475643735015273709561429720236873380775833968055449725554436288951553141225477413645448255581261079339422897108788113272232560493917000536631228082442441526249425046603984259286480551130530045162636224546646158074311868559161006519444111019560384959095747667126810795873681234679458782218004304089864168703105556330285685930729142279227744735408906542924886102904605263040296499053005988896371313213893781671504064855744442871789282941667599677134007200301231673380322683950778540654639732502872453331263341885669427221539628552932098662124292126548226681506473808262232457650926021486598969131546483671334293940376317165035861294518761871565228434366053701317478485360553047065237376686964889216251239396039969703132485071015184427385330458592955934525278245277997133541557890619883892481576389040946261198672957388886596265922122027994320459161215503171285246875867820692637129956434350431949663375270657895746992424173739090279487347293195623766889670623876451720455086096789548381085961567928811800636134740811246951923610446691051873064979627610512538941165027147418454280505963616638251466429206641095465547997370920382368646806546095163820482312944265973455940793659479486837615782567795441674437774197793148263548479264794116515744551961394638202057722546098570692109519060798594177865808865177463479053112630031304037999455752774823303086044446696929183685660017367561423037626048136656215129174764826276933902155479176401847040977578029698681295703538192848919574549691075582134502357092883716617879113695433271872054117706326415169334362509414635669803478791934407394813727002584154132869398559553900916444279442783839957585501000340051130256557871470094884045489229199522779487115441859684890869734961200772701778059223054199255648862993641897770239866452705113413284184180264620510905139898584309738772660565884072820451695469132901034454191683720425821983411810552071013084306472326244571477413100927568501495797379417531863978278791270439357181035547593381517287888132902303188574303308552742581026192576318451880217657744581936479353343778522281389251536614732708334907717711401817690915945701825758360068436337267242366944948566076574992499605998368541869761340308284796003165988394642108485355763555736016647042490956593814718464725545095023435836470792202866823564130812356336855175099022018523498480126191317268039606566053188391776166660308646407129276117116650482796142242846562724626808800091662292827625091976765268145655352268518000708557053615460161465499996242257445170186663192100946429600338557439116313380615803129132413328123175808381230505765310954180448260282535387102503956387525379174499069066433844519454561736125461529236043675340495874816598556700568260029936335615181549697014559338309819586598679083544081860312007520243323928211568686632267416743549038284874089885610169156634215072215370686771197225798112344361740510131083493097078566880740859278772955732448282350097768714235391608315553767594347218795773044489294678082058468728602736143795118851819641656288436646550238256477555391724951315406770046415157708866290501603584507112827187593899159789576013364315871848116829761343322238636995338465994490018326156013536261005289965269094624930803056230323973449599600861807821310784102018875470654156330052432252877611345872307850413042825644707261752213914171293184723557003797823492171228556903090588773764150454081533612290311916321810478955450770855267196883853552335977308629143474630652033891086631079756591931597197753264389659243995136190904891754204269839624578161408543000386116405602265242128699527005085036737257355170732939108637793390128759049715822036375234359421750057763324603771538508305073146641507155786879964383891367270585396986747194635518772434282256426898658182258243962347977728881369703892373740394577080328474305689715987835300195635047837536914166788441869479288705523832420374032112795107618315261641606103774633201139722793908105137046167856779158624386559361545997656514641055077184689809138412063002343446504607411977378763240247177015903026653588790948604221332019413256963218575540311281579998497505301680410334662671053002567778200025570994694604306325979436048809039138832257046047103632377782920123502753410741267571585511781362133544898733983743102810841652196333917498677034806903458373411778459015960911711229259783344363599376736033159082685191104821922607058987427879760058402925648555913957418311974202669517170056672727881529971685991223870029898934590642786211306685598703299279473891576356051374820682221179862538881383732745977466888725899379073924003640308279448734724709500145060970719425434379853954422938517685176000701703489596179782133371732657635794236826030082717197814406107300373075171813674559479560632029219892937837148537195539560256783011716216921794353381512257970489933430407166088961537348364485102835063671641169494018790306466163698049341145768131865536160508574948305504986118987064002782699063456639864620551617188286131849819392524228712664676262111139565117109853830407898083212958656543175151683635129706122310760379405969099705686263122952714059287132145840037490951789557066465120786198610152712407138160067382735585281114071623416661693973516818758141986314601668885821990033869347080040643614224692894187001665717266005408410849251532765485249830296816494692407650771712127732123287761898053603077801770032117663377727052615829395212231605863570343121499072872478647598623351132902236802930663657391525327498114973974151860694266542119239678779157003777848572969405405632382151120475961780775767529211063254050769658639695387207397238366298024289558273782492532947689097673358728008111942044406113407648115360971245796788558994780793547566391909436567889249204193675535988822790788176024588430702622508834934165576334008822220546798477746125013278782020433500377330292751439228793651891610687313964333092283148081243479962796717896940836376375022336767569094373199447371002414337144985743212069514493516377028134859153507463835495874335519949803635072320148823886371162053898634071714946782851519105039690275852891991603257340358284154500370796167448707212015367097800723942472514912762808841790320645710781741077186138934119358129515980905342407546478069305052566538299142569433704247161818669966579065279873782123871742700237658120100127847880040526428203263326362188550857758646351559234149513518238596021390121987773471827425444629389387990817201125352155816328090564387785315949789836638354037175171302655549477317046453011987625744644412191118875673228167663021867101320035810224493494119397551938493988118142036244320942467981764839358648701605747027418527641599785388213286183890240749447986405305365904311810881048849761475538149138729954041214217559402673836975561970279909152745506981373606062660073052273744143642266479947872088163602717471563623162394114038595315823916067174324436827385102152448491407375783246297800009362347820240256465242811907075226016795891666982383789357698736812438118681067279384086232310908945869706014051696454280301685772349353142580909657029164688903962880777781671545690260464667922729034698772034710706555900426084432705668768491702320039248985895625534583593490957763091068559044633104954671791594415090886373068919961262953221443344275101839810906077811952356299935548049082346061350209618650528825693099003149138416261671448757525096233423687706353201194166646008480586720523462142960434192733574119033303915471421583918088269520987776153107034286382415200994918364935316354306667200024429705568068258061304146881020882358088841904168164564245847830312996020937141958428768067288061852223953063772315409563483491484101972191271372590057154993018528258403369733287182129463180929101967373440112832681628219736546722393280667798283612518386876260736904296753702248357709262558565700611928679044324040814656000208185444224264959514265913369760517566534970971808706761535122242176633058348722846350855226671413778726542777628136255944015436813851890647840978185164506784070226521672593506606794223464079419881474444628546557076538526594642550819159117873343804156909139938274234561901551441456478384631038762149971883514132209383429988327858215777510441470244753068738321083041677804771834988655994982723691838244903195044310877601549296023137741173682855135079459180962102438917237910680095496650692328945471322463044168356916515617692038380534302390672256054649152081494278738113546460560374927485967931286218600967120366229410568893324436250186191984652521981982379626653378440662017150301908152364367575491182524160665194319420498381335612927088012265890674018461367434294600249173932009841710364100742378475000200767349344049300712319411148615295728405294328741459182606073659146805147031805434034405644104800871346739419129169975625415451628811161410360870091672163389178820411692701697633710652849887974627015222192390647454579437072380757751830169215636598780292412017757103855262246009272829706302781259076750418829972365317850214640541474362308983222171778423083680452176667341182304627808500897506188070720825645223953491546949846082498560350371240294831970095773933974175369198731552887005884598077598960587815141673968832496728428125859861378336447005714361250467001829989968945557731288169560400403928163135405392912940047000586156031249387227062035459796222052460365204110505951445176959877364368254996856550065875393249522011467864013130472306680466694711194316735773935224223823585410970596545518565240118163312965323402841666392564389966863884081199879578306851011767829376720317256850160497354976634341253847256640596691756281164343906132661904035568797056812698124435542461661242879455921642772824473138301561469809751564691004761139320735395450394260641226563777161903080619483998844640265171277625619005324190581945238136703446165912570247437166338371628424220451530922421863954898058389615945501501905962904465201754862564344030267569168437553613726120215882890242386150148516338236570692059055478960031605988172340758753923259414833991973219350517910738469776776874695072366917271725591439230623383875593617371978032476676384373114449082692847477376061981145715137096124516041333072182170877756486459770781636122540241923673266701072465749732268479426629081003053063665650190966743108625034728658167209036558917372533921403695158296217465246190990978961814928562125586503584127304877126767882093205969862229944711899291090449562468427053141190299008800071034747108824463998303200814882859767769534569662620961383407909259411914094478660998786359749482549284157810302384267548078877679133468040076553342475958972062328393091992209975674861014538042298966212824845969788891777268698073470451692523678040830151348415168895930371296308639320200119007068461378988789576923319281962229701667841161540046088348907754389699244898258802004688558498423861666864715036939354207724049126131011781615763587978543101236090886427395586966669948723058204168380989690039142598585837781491110379559994852315640326850083955807248422736271066864464700702250591731497066089452775230148595956605702099226133096927807104619808031679651761997259950686844387313861448636922943250770897917019171484176394805030178702724975143657413385770810035968742763176009146018462662658737328958090332170486762888997685760356564988282931057553630884527190051180740773678438082407837338731674028099341314224319994395835174349721376339951699597299299214697513705219345837370490771794173877443884125543338024213756860704089538983196154877116372982436520657658270090710119145560812667057957777589420429226244645424244680610059399963111198745824394701858644433426680664683609988605293841949561622681000357284833840945348110989845273088074475701857907936029408342340308697649525780703362373421892430527497419966027001197486090258428538339995811239823242095813331231844260955848797345055649492890853974151898667485592681076971794777649124715436121686891530226063453434288067665344105422937524107002702849668535489115658104026444671788938857924814861657766298120558824319666289461714679673441095627266900086440458627526464388479380126697941165314019875243343301047276750772580558266580422982580759870407786574604618072134712933440112462069759815555485998672495421193522599745323812623675895903864282404711481107757600248448235996439091245370887329801333013256470343418683874976232438726203132184173820170218413451526989473146044878541617775954299908430866437092620784140259551883097611475896477429590493577829399979519328325993935216027562988791576066469899728704277972567984056076284332565339161741416947803996975169763904712323218241635348842077055635938286609353818102525242172397089730359459551905297131380634344348900687244405751066427872587013270459294844101225356495397824102939566476976649371236629243903754076929515042216011986956128290630348506858774911888444605816502276649443923676173524985020393446040062254355189200221074816144181174074937196053837021642109510514942178799257033536799394266163271356554333151506593565991362086913373902989041516564894170472149070760293415391797695221509646923678974229582182610934061241634898358132214616545312395570823593895610468499410041904820851816524595665581014954658301686204580067182292063012121855274800224040940734802849781070898320328101098807326925913770427983194822097484852600536059443313565961014144603028038257110434039407596752275564894136065155358683531066116705322009816772613866941380970502310256678067045861685803161100819868127439775060515494743419890931547141708894707924899984343470728296489601389684126003479485516602217877365647088780798274086542018672169669138520017226918771574350882410137248644498044754158416796815790605998868061829517151891260948505491713413698932045312338077390720183764552763498970490366211967177965340874386464017096025227010246969986731635554229403789025798562633417926456981152665997389091638025910314212916363487943928915865641965103066298087732299455062342564464312129534092536213588758884052646318586399907274425433458583487323706024204664078400330357481196539369732256086725884342762275670100973034364568228487110754751936461951745667130055338283585525187639391591643043276540418858218530822787288216232578928224412349865571798200493945993119599860451424088254791551179702699193273651216464090595806763552960403624318040721656595149412347458523647476373974580483002180670818050018565785819133822853108038862471477420250776110436594305051112559286395803791314053258730451864861231633536313659259926218871827343776115351612920438732900031176466486096028154022975040521344277260918411179013409207573699389369270146162469431982901312779668232609837192572971524965015265303366052169927047703965481091210060916654513470471445275514833547066394315925928627405554929544127601560953673286587323390674101195904863987580962428173933490845788755301278635575240403796085940819802915944989743918182982333943134231821429196999276504331068988310919834986632051117505414552183500735615265978129113379422956168889692530299101782363184983910273887148736815121596625176997942561885033019302400235470909242463450147389190320602958754472387869366769428348330160793607693027863193815286677014923180361801646235397542715623474701936672139653307668446407675808502469539605024596474681624499634554402154001541623143644599992767062375378342109522274931435506854649669243998318577156759807781563429004962720045811088611445306014364301254593582064283904510774933687704943874187548957909353780428716389948639758773320696904513073963492772591697047928152546172477979034163478619612287741735394670003623620375020200707720999434914364724538951606693441238058442993273233242698942172646586006398545833564630641085455769379928084410652664160997255401836075219731116823258987993199085179662266074276123448950515024197091570324141524279873712190428853271523327074452910180814795255203506321108867380109531862788229779259236562184190928187409064778042610651133060835276607637907840508667445198820576445141103665503483769331405242717903009286465310038781965816258720525345046963151189115917006356588248662170799643332755264007587963334173601572266585340375671113162860641196643772170154142889510772248507993077368331472256888122487112572331896644784418423206201597148319158039525995590362207698299447969386506767002210225748582204112580819746559942036847206449728576978923064295137222162252833231114221305027601690121346989505577134215716196150316248546120727134873776926802429414054511058800280171198429521178523422195732101175440391627466413937985364379102133631587240101975684581650542404086799285635200537160078410517596611146509797702630498630738048735097887184949128637575908507334884587509165753307287579382243116726595495685071054182259016936198665121824782755064942554556493132547208804518838030546783503271064021979790376260123716365002057553566338855470211551002829467520392356325109283715486122407538092236993025746602967686953568334967582340350751050633686788565319964650184966666084517268753864410212476405513450212254496824453636783006231544846528194598697575423880120046666422026198677583742018116796879868694352437704300343998604871928773992800274367386721411123202879750025764152060372272985789664705094648313794475967158834578803677162470953577048880282523815006434948518091279239946224161248603314775291176742225840566991224416833255773578128795320056230808867590443454117940691131433935436778356925064348884868941937391654780293058642900063301482065868708056003875647810595748369372755223248055782110210456541385595390360739050265777060335432068822324088407130971154441883968561206518500850691930706052654700119726430481927847108287129562868292813834430551323936222943204066667078945012827005272905433177997353153594164692336854010776220199509421149370536946356896969089560056047340335646055255668863822301534493209178735956301484275653111266323384438247210602127120824311334237968289884710320200649281349932269412451409287440339138729246555096020256500294932046159997810380092633584549715500442928458532211792375150287216489176080701515695377477662568126213342261421833695014922666790935110405651976177125595865507202983579159501046260236245882567305976312128985511319394625376193855405756412016486306316050492604192688882055368821520574185242780143979856187248409785229433959755086734431970180736493059200435088534351628739257039843269926857476215177981692382852673039784001212104212098715848149922153453207953106682628283292897544506570277515041351904978811446757798448286541652931462456017797321175042751926205036821167465409009940475530573681828384101180831253689487540914367991118895720099582858536998271631280186168044428332453455053358454868633898921285771188200076975501089665949037764280190868576223277254823928568920374055530098300833009317690717161856918732041870004237697048015870033250493141757674462719879943170905105576885589399511735348786965147000287547140249296515983636941243890201286699417273645012716665854776970507907281103932006471765330876196351529090103135943295403311534152365819458883008421434997587936042531598674553009177374625316463919695605360397497637030570047940351642686977111045797776956680384855797931852930547342293149498548645008911420042860228006116392734139591255829859716455382653565344654157340283327600078234392913847657164997732681418578795991197025014442082672634787375133910229870672518288685909348208711222854809057156857803488028241150020218708163790645056233823399030978608849703615670934147416786678835008566593567929555272664984406495101423003305206310747323287746827208105425104816110099664692034947233820234174064398009084958602571755073071059369037956504902442009684662223385341256210120828964310263308634589503371565896982161415988787155195940749637748177837219503307583082747089793023227829024217390191729878595882045366689982188955086987532338348038216354169629495021891508265496334350223000603735912033943736825722409750354855774881697486912760938574980394422110555051192243867765413640317300993971995921514610362126006801612039371638238503143289560894053889062705407755868181177809933033249137225904341000782082851806918949529300754826844552116277362001058609702808072897815563064968433524093274026443178595829523011634768459890824295662003523559102850255154659920581660063233200277264556959316592838923028561228278386545163978187908473101896114106755752916802248479834196057664813703636941364183728174353686144060671851806966184158151443821386001584202845189673411142326107172311515009389392859096410980351742244349404471500195791970187147594176788067112860301502197037865796311953499756617868173977266462312696878156301326952958937594229743986075142422367638884630510237454019203623548415282417114767277563003373840225731171408394031983489028756589457572623328079716862952852036300883462757136388120631597405266682575943691523817453618749009414454794533844647366603348692001603494990960409103500515458553692192663483343843699233290688602492500079604773543794844096738495343515047005878061528256984645526852545853162488378702434143241129643402081431883559365995262365720562969832025964984966479973555618355528997728806322725814090399537750009761583045621241949967309865326543221517853713397771298750272235446225214686340767257721814613456364476331836341093088998168132555832890811602644887513643462287535535756309049382724164644478176884021070585028892625659562807967018220617814312514720424082721873591814971516659137496743088865128025562936594230908791202341291598566501788890896111186354767319925251258813037171727253369957822801084654031285911231902701473110407458933022346738177511092746362988062834378501441096132071553931676813970717256635147788609501661440873908212202700294378923295539401112703511878452306381539018884121376702363876604241086087941474033326978984167077336659329561247266832524413513206948682283936249546512227376113092130700585764887246428401869076793955115318019074137101860512654048974303398700220296343594746770609229391868159871470798687529427637135242496531988493423881654928897444712349637964978545958405461049067901391555008039035276100259825681472133226994688797325121343795290092810534812846103052044006986728146505080342953587425420517641751475447913942971378747889734219926895843167164014827791290429724964274560369006454964054794670176432034370142609477322698357855339199700878683266309075774093612508151105171363118903622409110607788400061426591344330044722209036120943375645464578547073898006931638715819844305338596902945381866295769557636771619224269295958411698414594468886406193153976448576482779327214792190107407217905766846577836964047676758790702992600173906064694418592869899553984345347509094791138972568458908929307777240563373657542891043335150501503494328533961425482391482163068061024247448992481435790701355580768680328239963949539888067563991693784576698738159770043229124295727630837691054279304506615671056257519365038927077535751550981352652673442446384708912144148237479422905504595329375027127109869143040523619589363218379814033716283263874498087654117310173673315725057254900572720208533177563412697743049357588414471154929852887612365636197443701428751382000237529029878441045044216802535020711867676929476942116490355750799268651957465158193438073797458407181150494948306696337531181460301011766858974168927090578618765771452292700314793614079855075573448525526248855595658998516279115768776540587575577074549906044588319838362554770012465866111257847203260475654891527513493761837170917135375793040916416004434115885882275610188225256661934948277724743236273256634969752991917388878501165792448615263003250848669166960108631284198803501777886352560248382952109689973723773144232243169870623224845484697804511861897567858467867863276685417023763078932415497372366807563091648663975042629731694123906936294412159326078549495251236919783611755952455466568475202725816178186956169412807096165376321568031218984292003742957834886587416697714170682941057978833724710541386257535829498000524235563241034364138233313060359614223254989549842767195038160800747712071685844297991598658978671943989387693136892722161742212716974243922844445433293254299490662440550813022783294673389306067966425014367527440138861088991356274163363861570183672289461712115173514965753839888817329185540753380002675815640783375075732063843037260345750315293703639712778703403317064741167101686347292542713045721631885552965196549114269958605331830292914765146511785730065279387929316912034383308210781860098050314868978406562055550892882635612010654828307042959050839805521055047438416534686813743080509878440564548366275799400129127639719723553496995881307970646216819083851037629712362283426395755408692009483024517907339558653873496272016538801733092651564234647365751752226523017648141000253875373698109349704634622331059278739096724149628092416921447208361994416064379270581593554433593715246603938665523558273074036777141008629437699834178208495239927308481520711590137380056320525332771423779002228263233997120755400248490519375807052576106738637893222682601146470244824954008138830058499095179276058974286091327868198886772387414209199484820906797360995423529226047464321472105667697841977345689781974547886087304805502813944381626682381078872331690524656239567683692833612545738424648045004642049104316708094463696637063625967947754487285263368626945895829139386272663260682638423183241465869376350645540351382369638176542312863724499838360695081145438202806921040229323962951222624845868682334211787791461070328540848769856427759494571607304842187250875221707932134790538348683236058270390452430698719043731253707249197390448545901526525838742427042324687843862614426107554531681874457007190683405381985254881887699787570368939051576846597068517744654796063250110063398416641075271228332791925632706380344333429605944678148000442145936407829010240539174151719677051448233644875628625979324779282524315569358191326474409870137310101695787193118719548872832228729349467199570129635519964470696298274165735578159566366378167435696769014358025039157044283577196747263687461446904534272832361339075756290758920888751376793845804053749673290355722096695234373139103664738808277081646782617007853154061780364522016096009035213064130947756058738942885928275557295346381146524534487107857830332017975355287943256942590591253803276107447194888787966608529779548434464226232422791072172519629362359272363107895516948323972877763879922490369792888838892354183987362474924587845082177105220642891684295977588550225337995808407759503594501846963997948315370581724108962772592384336716668014795663679113815327564490906704663720097298309874843365099223009390438749923264396880497275108275695608779023654894288128816223294228919313304574966709875641238892027424758308501100123707789774307347505098402003445710346219656321490542621004382504725093685979043098578426089968131306640672056280584916221428060162721615769374739627488877261124366824070578005672632952491545225086586714615034786957656130745676375544061931255160129367401183646849066219093002204106319936035870477715469983991348968778067501776500861442075608102100398497028336317971152499823093826473917397603126995984602251180320117618584397736230740222204312160035951568450123375132613113421762038123162822435251658976139693214309014255821224011173735862957256235929764192103340518863429666802529519297993037243893953255846564437025229323411613689442916374327951059426683425729353699297719889924497073635403505574222454234731670427620705384782326168023063191847386986705968727332966256371765163548437589186705073257451667686771733011919440406608881596800470271755801441361079135141557457274407363578464978789874420256389289037009454317839787093735998503621840087270178309431767393822571252880197376671804127141842877147500055592124961007786105105148220650182039932685191933779257143780956982143620983685080431218293701047307308505155160195632676878535761995295825647664852676055577190522636855578910021385904274356341327813045783859080499786071259977392325312962794080801305386115568049156463493432870319810940853386527625896430940133919813441478502968486698990184718763420311694284132672581380366230359378416680083373264543579906102271497406017527528688985979994971419469144261982124262345461022792354068359482469171680163394757894020711041233441422886935989417124891800148552209255217075209514074413719880933748335407290835041774504928890414298693419221317204705477562147106216480391243158375275786785995888419684190749303012383057940153043413412637476368592923925495710577463847966475307215013451565721549123143535264837506128597204438574664815883214647946565009963103977503454457835893916655796669076043646228329583712301001002586682015558994856723483645108279642177543528473593678742497100053503820486022464841301114277751450730692932957272316700243172357323211015349302003041662206911543456740483179563406049081550581347961464589359867814507856018837852247107520839779048387407102807451991471459811831233182752532885484220079677947894475812157271539860767302508691780489417914049383189604218564412652693780420536766400545084055781154545964912618890076061727143810530985487432778473067465475626558284887193678383926208910014091109511688284692672105952466104876850852973595152928128998841856771429271602908805243795761002806402595364677046918438758957244988870833564182654824981131924076755805558224935385584186561066309510199346837357071345493055557865343946118901645857215143346081158763537192502505433306490630541601864915940164813998172737729736891684333705430667824441402548703460543749282233237643892993575891088271206752705123266756929839100872241114948545679006185447543326519641687419493429342625160381642302583654145055747510953563043336260636380100164965275119299184410874127307125686775176185127502581503128267234774244622537190109065170733533263020378282875663900408780826006180968511067434936176687731722535453686340208377595497964895865114688414571290473088571727374037296024888926711393203007515351590179732120273708990472495389609491827143715700254980458815148287961827020764798233511231437008950859854609596493645910151844289455803467649650417747328401354818167221973782313006682770321321789174411025446516176879085554475051337126377387333616598439760908776331892833847547458647514588692560483007869750315094617154950687946603301119665187091274393018239782142435713396637218854048435155554130585030604621044933495467368382554442380998972066969516562748809586471049642776907132202300125849860947965383991985547397984873593925324343120716204153063494829053670849987812485382942833700899502310803019181807637156631650148721894411617179392838176190402711481642667940917275364770336011595885484915734609464613821621961296037862610197369964750113476433894591356734712479091436431531544883804639832904252472683935917140854086529361462183394772980215531358089092711830245236034747017641876213974426777188552098719025080923389050558202384158086376923361786347004146601380983950047821068527090924167638371751928203151221652213250425524987596534489536626759899693400717150041412732983823363256572343594257863692039443304690137843897451327488109316786012310269756125674364270325728311487022466920002238052750376298440102953084042568460539759027770753235571764427346638741012397698818842909459453986147629600215261647341894656513891418332610182869764384214729882655271519329083878328297581406030402854603987885250433690165296738993948919898620599162586550705467338296095512115526317173943862581624279888606074616361635118652705846274496732448875778280555450280865727297973297344106133043732187628663982354510665579035535919230545569517155052866019027383960660981342102523848907095801072157838986365470744490468444881533912208377007848712893461241522798212519160270003625017819656505480759778998870277093185942908186868957701257311215176138964579442439326099784484655396872685660273195876692366265103982652875951227178233075591400718124325003421676705266280846606256115964742088618275715641392971234741525311991285708011261073174230603858828990694289437732497204893021792587612956027696761713879248766047069147090733443298193685873556056194112058473402010900728907962038403698707767784841117440364429309374947432691699300637961301660006249800971168508816174444808091830128513689747055541444164346687366918671463596496321597915800238216042678172220298079991974886932992382739850163132256191308822378636551361337919798305435350377024117319310841596648434439198239259797460273531178856620450463261132429721104176567923460889024208990558244279104531643191755442172482567010193275278830286325185603042043017411523789577703458178894221642541488504007961357845440846912986957042847362319563002162274621415115015760019893135980813547554545779474049510106158252399814369602939669643229847930238866284430064739792591962826222321751827149214207094248356567825861896862023396839720842675692632897187909154746516676186185869718247751189501106548372319110637925886242783446908840720993768453216779452728818056705579910944794949311945509024830143340413854003550384953827968378755951256561906968544617838003046492373639088042404304387779712980915763875400918284405096933918167308343265913343333917160154241049418972209115896915830148931607185202353418997181327444947033317578674150446687090535674769880533306233287891910098821679173567934954356829719770341815921582354998884692596119167616625193081242040014182252718821562713112865556901352558437616774363643413933488607709677706434072090875908686814101801927202285372877330610443500440941466909002562477838702804914694723045328377682760753121517005360123774937917075947477833830598760167532372275535224454833801808237800897664940563510499984624936167276336589962943770183278936172986209182070144140728996033056534078697835885949858651622487884340840701500143006005542375988115971629768393988752888357692872720323918578616562654062938059440514933847317526403111701263624807097256663799036352904715648282056104898762660799504670003220122582792649573306708930857256457525304246198572397808295559967823920505655672637461376875903077127807098980277848951884374532407059071355103264350336237503129780190292340789192639962145828946355852329131558676779803021670816272735398938267880637095010867345209667654139960341205209768437425455033752893596329571377859633695628734501273951890233482604984943343032628334531594890276843472582690284801807377679899877153218822626383908585142947715881678830282282985742585419552745723635130011452482725542934039519915253792355371067369851313645993245027903694772231782971959482067106946023353785134471387186346966975847894393508383465902659234038647582161427836245749222097088124920189239150259126049417422637016575346260943343852820970714953823363734246062567249378071446803183358686238865314379130753881935033532106296844559831276662014837800951170899281678103483296711974803209374386941700312811937638976006920703579354905257599551905100985156961681321099486333947277632500124816278135061524839061877276509453061311492854091880024615910475417265708212265515778247962610352223106095622972609598573686764659854796453405483829720507123152903000483775159184493734358675332698120858708021959621870581835473961650771343062944763912658954117979579826702720591364383691766383315693249759430986176166628833986989910339075389220666340864182797259205783054278505288293001383437906499451535626388979231482604713178241415805838492395050017908492211337033023710379435626271920702668219642526786179317195091857894836335567700057358587149496827806656431306308889396258938783823213183265731810094823065628028628046541708157742049374424449770511038370093849919435977113916661788431451404959873061389049026083064698066581016950013002530329032573637077548440966504594975524680698022141472139834069045816389230608349035884830990969929185036186373974038149845587806235559031817103583848199688769744920899782116596392097518540595116537299656839273966296006852112418143301755421888344484130003202997181241435628888925217264799720991364878510487402909210845057963516076055855615109009409253629884623823029129280300284657276677822431762275289607400907479379719471166005689257289392555379187625355926348782730043459746881767499229534383684622431286813601038013874853270655355828946078429381583244084469080383137348991055991098944479008769138135759543303248400280377385781520973539704578472000907866970284205417754900463750974899976129818249179987360990954029070123060274413489171960547540453594568078329655448819140970179707712672091471984190324655386941025064575857288408109773048428658683098324493341765717344350043130627280721802361887243260633363637318966325029964234253833242284834071337689169143943889379763273128056431998922019152535876679685113322965343161668577744657790849336740791982207554808347860106546208767366083570633118208508764413556600124487995204657523540168893642507279369698586624903806504440214545539439818935341670837997676022674391242981184484566552089270030691122634546166599332909971013520565318308357593415941827216820129691512812445759846962782413596513231473833705059397041086189405998470552781752897295543587258871581216414213215767279919907017551454163817510414937467946528215702051737402953262402620264919927157676167175951705411224466977556652811076161529074347212279791586076056191629012285749611401892258798362019135994761461945499761398956676695423901448300068316804179135988012117509343249439412362279428757925929403678109481433862898652641690256241963926388668264385407970801391776623414467097570021813163144054918234219880020126546330024302577391311039501139132922889332551236332895075136424722186411443769259879355124033758429008919469939454216655755123518791316402729049054058008854989396321769194899516504267873060581957646864903932362197961062743324526986476442328248357623279050399375815325266891924884447270224727022050502874938423824100677108654904711086736389561169792978822324634111145524251846307519540033903483249847202203874451766243421886298162898029986388661506907350768370045209277345483548310149162131929667529052159763462496593971546146126455134473986221213324293784688216010981516631341589860828115241625211043095004036919139457449052057643386201403675594276779169636439838386442626991901682722759379139907616822966889126396718819260081034134161331683213764344851461096773229955018064922243501922874539356477399822590135403941564699275828251040934052164703538038945768982686162260847880748155953118131045652767606893396973358678787292957249616967642009316578368622378528174739348574443439665935720136302549304454414944980306046013766846593228204522802363641248811387200382588390554798535727852799633565919209324433401642872947100095221706846108672818440317323725351646263181491235768001270678408135276706618836966556691686502332139284961217586579311269420783992701543386861823262142418476420412654830980867455253474702864184328020663198995998953197668008515035968684936595681022451790177122496835791101745563635853916011586162754580862308596297230377122089201151742384076892966266854737860343367205737524136695756557510783986069962659888129089839623673951358310787527218445433803862860854947067262851123218195816132598682254862404486236531321738593146764558319977360553292286268630132446830255692307142070463699326815874143813235988889275341400647196827710087361429033057738040976170807525230820301865442852090617947955684550814585711531703261038707665482354434139421627493202340898938131686250214370661958921060514105709688818835004221599530466187833849099261037753619744692424227801464373703535089353535496309577398203180224194655038056197655743761768991304046890878044456133498747329893931490091240965038343101892955416146681955670860573669005763516762805613869483826115127433037962281568757842426388342345584050066133072801594544047173544140724628544438044130710456012572355764412911686681187473086903924511777468771720564474088030048757560087134144400295188280230785281024403544170639483107601023439493684085343670337870431678615836237692034628512928592752569960622052984010356135188833395905341918425160053963846766258118915680207888591793853604745116195509815530646172288732282249392587152199696403451402332532055268123813611257892222496998053264740685091346205771178432375214703606327014902083314839396833682581845770641599235954743826098439534012579680679879586313485996756050381493738457367848491182078565866656907648636696449553808156754923265652372916676545454416373743046745338658366971250329197826875915221676718928087328177129676465605253188989654198447932504505644374397916832144265108424756392074956085083479493773188624963577507083078309203340547086745282468939402474708555523509191924301443224742043562406882546791835954044738353570182092919041561259465260336373398502336678716903377478579106891386056748442218496856753255517233565892340279608433887788832458294607688883869498338237363943401415011243099945490146427400882194002438352703816013815298630873307124274215904599096897164538895403783372962839357784808721839265805841104060138351505699724381626823418952119283372104855323971236534523356079087969382644206459503744844563451715405831150170044998014122675501986488749982539840476652232266345352039672051956274532619043403586539360189272382694428919715224741610616398235917174672613028862755710419543292566367652495048246913305200119923008018070692223416279128444110352392963481401648763146364196857354749139872227035455720360525745020824449405142082544066174665249153565764359991993563954260118237537556879870495341193221822002518800873860912053757974613740949725610844378613081287360066210178257260217484898252388945318755733083953075686448076627443898379920807553103182175089956908187994936521923531462084049792607423138276769000100073046535035555268776061458908364170873392781131712865404437076656308325931875917616459450077892162732244157092436360193624267691342512969400577680977333595730233870638833802193853783455422932921050992587897960632653119354085519425673573999706594061764009632145955307796814184301340226026552916322866184231027767761196012661150671611606886311739074590816870556067460556376643496417667806969562964968690487874047476175952004335885054952713839571276709701557005412910564613774015616519786008620931787152182803708637262250366767711574154104904252287064898794160901880054204282033782967792778546723512639749662358336227025228843635083683015436119729993362752750658782118758733216305086162407651309136619681871693732997172147115404907931347971817807797015680099561963801669170991195131484694264834837289510902059897556491724189232474790166453525892064856860142658778138960941571296971877562159232109975422894365422397123474756453515771466210797785487110695880149712950409236546687531050764559019967758627147976001707947779465802669186171485705533381751019836941005260611968170264300778629248499244383359338699624548380263149816297601463126698037367848229363819512694037473096737552053289822878165095572915759395209533224105518949297791854044939120463960059764134739843369377564909611912449952202534138985607874988443580083318590628454041128592459568518499750254224315661722229825912633474263004417683072225478259531407517799286546851034995729211920754172940310409050769744268160800902602145211643582947715077599821344593526274461333847606357645493627735511873947295085212885077684481870686047360298266874495661030067397335431620249103357568997204862418441220867895391734948813572497828737325910005939136314189156275431899852952376140142042745813719169280791285625024252057105604439151435052294989664854005169881354632482859900700547417921410592023801256556162885507991590885957731091056194023099695433797613777909420341858437961304519747724547702878389611512642036084819973459602520847125924056141439841984437039189894405343146241658281757969169398861943018842284427282891060427997349827779239373276178891895279355555133934523089491443474872716637979363900110565087309590177357880310808570993953308147856811025895792291001313046350152423356880255495684980757129050659365009489751969587732869044446096935047233769250860865234561535570127336965771377438863458042672328286060347951027833021942808799988575362264049405807209037263495704348640972791435015069579649874842378924630551267573963874676070431486401249360926332504008754921729155898618641541059723072276002674862176542300241177608948131202815827119375411581622728303361285407251143898441446217545160739291956510845562384766576556931208621825132074901514549263133353096583280729744953446866313388924739589724690973626111447703928123884392543687147537284589427704109609367152884107853644147154375196541915859497985554552831218194504034053318389086985480394864928779180106424301811498900709390577715337334688111816493627074604233118907425233733238817903561484131393718055754488235451486661651959709730338017689567028969672558928253840588413789699438003718822711659024017224372983851435963744066684564777238274595976891665187717739797858241550750506049674682535711504252977723999594711842014890896766895376786575298466225209610200625891349613320377509624512750281619128679930060279871055796121469301157213087705437421831812406792389497173452744400229866423540743102003952061413615510761956984279973317297612512698418763270262355319056192299753738229294534564003840833520303452642355662296633055626950185837363877455550934519173748628544117993309550271191448324014412936796726262816676048604364901537016028653513584029138699061650169533239941387067900596714257926101448705059867920004405827850721459363240803008773261299524660880838558751667490871186957363817193284645705290801791764510601788478058993833924986045052749464350681635399846516756090512075031321619551309381594664379671189557674160211588212846293752766837870733739592572768918183162921412686086059564858178634928908359507487573304859248597488061187905231995710783482089454901971684052994462882909483259183451645455383631341497197635712905309852803426273817736577388433993941407092249467326597283671335193382504471820004016496080753763484964797919036204773309543388527484877663600905321756205643068420937252075426276491943977699829186135026698371394557418006618750848853759831278084829751394028575316952679963087905055542598160456431887576915514281047058988874150024164240130470578442090309480087071103855649647134730876927448916053295547463104612770921865215437348580751136239266973101461802714339979009479763919763936438314633322371657467041968241377262717078026792592930723483849195748730440878351670127846118567877134346933444279750336699622491629373403290028556118591695233165321637617206169872165444523753805618054525654446247404204682259918778975583837487367156246605277104914675979127575362296355995162228318202434448114205375111652902350279233223528936278613032465981488247157109256037155948225398809347518721195429329904180938173658648991509698518532428151378922512490769608023078852925086986328292204980910373558592070485739200424242730369579331503907458451769749181422702456306959430529548490638204911016072517574890798217999953432254419732062071507881820755205665601506356069890498825006874582943040997722064962172446878955658129461802710888051661801597199916079712169169188558794952863857176046504232325230414419294010700382350910981990334896672643312525822692174370520092524791380917567788316918416927552514972704451502036245001930030803707173238595840822478200169382330913932389792059456505146099781092372056586775540153594162046891844008256443098403945874109058934807477454666903651965592282781334134692582543627959897993884571634315432399845363214702137924224669309235306235173274168696583223914603736781223564594480686529588769880143930098962122445357474269361304966244464664835229349150143962535905089225831272803509293019316701592306642499607267399804406448383774034589226668340350313149121012728134064733479316152748181659078404552264676339375002681844749248473586977807085845582908418253965555354551318584121164091185930370516679996421399948832165473305051037109802657089533668680128435409577022864967712656132125694109967974298656403491260645194107950205371194057265707289100220089093845366510854923546924323580190228893087232829847909069108197105357729917684605632553579671574739537816293561996387556072849217312502628869689825252139115947970561104116586217361871007317899616857971231298042212869411096650016895482339162630970130383574635335842784699353085696964883866818485144881479755993929035735584596147216235824745581975277909654330070501893443638690339830984692677978275048597694532016863924250535428637989420119673238616864665920806969064778251591788957158859503125724998995309850472599899037026634509106613947632978938421587825660484598943493034640592921649913922199655669589878641055541827076258795899724493776553230215400533969975024265871215968039327400150746822984665686619267246592075213068106579924642770317773864075112531499122678118918432668565305551416661096756625011507415294772278132545714415001451982889267259836177823631077901404117120974282921039612354965890816093136861678584772822200490104787949178379851670575160493245442560330873866029598996427315173899285366678629165923584298394010438997108873129199961860369612746328032087711065438684316249109112638573555654595810436660408812913538458488038953918075522160099352495241835494729119748122467840288808565875364449899379376697156661490517977538755259430677832425584417338695917877056919115329027965202971646315973727082790493449615703818770910688438547466569053668466984490921712055290217500457505004398750064228937295683237072075620771242617105284173995626778435968821710906736420008517901300993196116588532984435708003924112570425216708231947755206312586188543368667172750013301415185259865726736550565009590337323096738929998289525427124694407994014801473391108371370059545511831960886258463219694240770078991368020946960427230769597416980557200480821993676021146024147772515401782026958786694402718860268536364940048457501699823539991890562687261953187986675756893574675194447392296608840851189368213441553694985373642205928856714263509401414527673444591097179798521380163880116435072727221895958084358538172507552912705397156083878499025285186918825422939814825823024448695287107988768089910019808685320352546245632511627498547631861252571776715202589247761917276651124315022215770909531029349593791121384955530328355730060657498050135857552962178931076489393252514718439645076139429170057460050228852429330416383700068479791487124534228968728829243517001356886072468954117095314482964605830752790282975722352954364520507102168479625478621080100672386065973785452632509852931250087006910477081925184290437281673151430798139091215681206286528162113944911964690143080248465107154393688480850058812911785858024466445954627248968462489242831595360255711196166593123545519850863701956288573497987422316583865265777245522534000221456518905221615475143001240639691488744622379881369447108346663603287498746527907327525170171517790590272916180883827856701868946817926142604834089631116778853272219944033124602010522437460329810692999106768234667246360822690047437315834471412435575104346127845135769795747322889331267989966243275388167761002154293619472224646062794613700222394782450167970252325230735999205756729022545127085479904399800232546112556408676715013392643383374308100841918764561975269103734956222545915965657839895963281544416588500291494053100202046648137359185214593615450560860154210315503889400188911498788922413638542599377117424812826452332513326570958421032840738389334080496602189054424846049548357235462414668992449870131934566878143942807425545063316358966743731990242229086809805928075421906063838193097041261303202613038469517394236828493735210587035996557831365301006642034478365409818722153911859553751501179909142616749041643072562390693169307197103677516869205229709996439468871466844107666126090973253581737938119274617777678414429668681558938703991726878133364261646094063652288167958029705407290539599851473300114113101076585392438775869210705798346902857167710811290223764292214151197501260777888432674458145931709921894254996156135718079872874180751311161544897268302087463590827917602273060357125331905883841976749307535973976106936131446709975049311658750320144438326447964489988829845063747550109717947035262713680437176044555333065019556077613522290309901593062211230618341350426525651985483183607720249466940222100723808295933061621573380140294905640751402694314816696083015993414724258143652458167851889271454068486099076120671999388554142902793131995747129078886858005118133615416184027088146068464482943422751038098978318718725508600601653986333444822722148246066505663662370420640870130901460380590668959437131596184713351024024065027115992729383634746813658809107805561828204795107517123320907651379032723902879108452877288432705585674363893145628801085669310047230208164170578229055395422799527071398679343670024986398414454360056863933712681248440945562788731714842733930725954326939977617803668945630782907033363710578886894433981014924642183567686935584070802163866630268280595793701155818424460860600694945953306733903817113573973054059653803791991865665565850882259564204046404109202991275575349850516780129739848917324870209413628407510104737668874955528388458146522303154991716102373949404352075858198213404934405358621593355539101393361037942732909981994484499688598698523001260573446204511582939882892500846587388407511662287865704454180463794170021807698093264386798762088294187013384061804301163083823839185151074187556983957409110708766656375825316666916621211365836048651825139611790485638577485825404709728858779590944723846314834738568907099972654001982267276331899322048960800843906364035953232082340870611090763193304369361295385721134141263120286633331149941946175353359702352340470496135944109514537086459158005040978427377306596937587972321846564771386103292906214402535907506085703305721525463443282764999905391926926637319553419469022438635500095265931802377134184531446288665111440869698084138261382576015337346713354527972807472988848913532450225983954812382090735346274760403831479552414106180130403532587516942078661415775714388654852638635602532934949651205507938772895420322678856184773446077706593701722561106580211850538327455361402955718887922815344915995963928690673488756109572686378738577673624389230601551955811531007540679855351610473404358299058707080892440771666399772192282776286726110106014828622668736090867478097917637917414397844610590271374820422690217635018532075896662503335035487448510219536538707784215579011491244632029866545844573521821841211128562005774711473126555605305542393097330698735371171903112994554183807376483987924254549544215348766408562118667109130706725382136108468966955499037291571503302159751879722438217729518651287359915598220165796617762830893154344129010389015994394299048849581782485027209701500524249698850185638953506788538363079227690402647231138935355075560049239421012554379870531888112055737579796697685066949555236724006379334162609401129325895719576209186128524046346903334876018277175446128821312712870794592360085136737597780644315162979813801815709767831336211247358355598254747827605866433951405117866452872174982698256688975812765051440365417792222041989220655179447102507129324704653769339762930619002838370081362918618287371526176591027002154129036216436459474317440183889705958089449936021692317254959419214713223631083512661504710881724858022963507274469581433723035259731766525352063326098687436565689782098266993933138232473636435424360815690306990013513665140553259717463708569482234228883019847063783420975043106088288792861060624220547924908320221993309726206862767369682438703677684128869107290133994286436224125996701967667434091233593902241217633533742392146723759450090493268693280714692889882145532207306639077650775734538335809008535042752436362611645802265189072371051298171657986055840876061346268839677211060397462157828390166703662376651662032473751564688304993607095480345212300438682345635710826923603487729797522052902079931051100883687798553859914189572324326120300515483296239886390451452437000471779286833084106712507702780023422253566000262049223469099733870680330165244613441802153528257043413485510117187520010714153133110873498962619258469721732564604205768359664012870839171309335726402750743821353982211059750660620157423244168602585311082442429558359112446127583213535370726081405120601803471529587559062312968235339550051519933095328189051981348891949574963021795845040247429147237870769098969680555943885864175043180430057457069378782919092896914724865032860219899937786357810827466546291479229029256426485455449837400912367086813020349567728732133410910052998109675199135259043245287876377223311401013545245794168313900453567224305204553954344864564716731754821206135147397359743771186580756145363339766835063475921058017235987814697871798261443782698729098593875910794473270500575414456908827903768168943645768194087837037110391901474657731807820256261431563362797305629256607144323754891857597305779047795476101134354712223494957919784748502913007048772362906556956041029646557254456908660532865110811290242211618043082738005758175797656995597973467352051267748355066495583027052841225219638073184447121646828757564243094819597011196773961522653819340437811306305491143145543264560933671711132059188730760231793741919381886639462434301494077050996174977290598419792130975817751732463027874874589682482682829189235077496550448947206503227051157474476577857355217439862172967313830944495607942939315536767388159073395193380500231240968619861422762253925893015497168517296999172180475896850979136040322489167022568651112265020997127169848104243026524682343389394467156146768810762543598320006464690505906771511254517813105984942780621193951017670744795846634197812811741381575411648160600688400551690336119417400421147932333722922695936650150791510816124260313165181560834831029815145913426981453466322849260691260742531407794908367352852930737955868172466255420572862177002792323422820304936921637807469690797778016636953705830640496643941749435740359618688114631934494230833745520566702912669123034931617878510177984123806527932522024339870811694509251283872395125455942239851772652616488721666838124549421379985740359026610824643942496416559955610750672417724150679991973914771049866895001579077224835722126516389363167906370327949104294449762852606793090956895871307644141372450353171472427593661945670932664722951939922611425644847237174994199309622402059245333945304502304091921561716644900269008455993811537144128565920420488252506390755666962389237898783590990805987757874548643509142165069476129574843989018054531683126514001903750535887644564599029569579623186247226913748609329385029949864900143149594720422248572787198971042821351976317466614321630561147763768352291852797174439419220047436567147721347601817752891094920532499660235518703866667712060778149919590305655335612077987135345534103952894291076966195654646844186074628684676739814787516252126552448645708239182132626393220334663276086791525386064393208135383707018916175301585157390599434516730419282731248712105874811098065442708736201604405927227525617696419967429435817611312729541310740482452643999611451063827451007415441026264877650570383355950794002345870611634783604697701108412913418125783230394430503130900014400614074132451811793796848121993837925798798451584354913199741155267876578523797279802037577682115869054650021560557480004892969975097380539685023005967855684929020078417888813620138486578923601440816255328407426126112887260103222086835121243246231438182754344100439565733257649125910106724049086831307877775547664109450574497856833039375888512930779051139834518042032113092606326339338514573821558127378750361998653513101697680940449718388577904692904501026969867055132106964988788328268957050410855670740401802117653618087201401486840351403683798118167544645870124988159474121687010517008209577430875743243930708251071671105025649518253813319327310461077286250074487126585188148273460900212781814694945099113444333393970510548303494754136451441679561485783593168775561651797637261815623007672101651550394284863779600619145418243495350981587065492786133732459472231383857060697238966029768387551331194824086052746994572689004369091855490043038465924509539310908680232840407025487547716241308454614105824806589332425811762833041339753437661788245476922116293548981168753227310675330015215525512690818628593263413562688127052862308723313962620419296714946933514663519255446249682304372002588895641750826483155872068100742585747075938487806645464640073536842241701532972157170816564812015797517255577625140836723251603549421747988205273899833455118453342919741862339946207675401893222391037628962794162381666824066479325060601994115581323778667053619370703525416126353545015375512849880515317072735415072042909742291918226782026810980258715424423277270994269254153619373865537622956684206723715739181088533371615061465270713979697403515980372349723222930440517285152583666481157345256292955370565307164025555066981412315260644396574852990414007878674306338333852986900159130855376667921898748326793042235804819978914552876492833474474448901087005202403245849500921874082398999420088828963302322036766719468862361246317628176660848749224676949840405984376264260036907780059966983849442321123964461431731549604301654861942642033510046815906315786418922357428040791051190870001557181626101806878345227227061073740083805168616439585194800309268873954269379823241258129035067802832234157080961616255934189612959609844324900018029160052880227754720107526819647822929055109743123232001282052305340753204790790875147450430909240427151527468675425590422614489008971875614944719076178846386644312363422128454396896268293527060460282241025175270649172616892279165032568933235725685001558799379378228498873695443290982711740142596426882624029221979486350727896266753980572577784554770682397419273111013218210128040354604360065724436403052184742494409300477570366566536378764321458550006213535260881608535911007443691551206760736316860909491887405927382094496750333210805738814197518308201349057195451174394864630670420792024870390206092945113235732724263293326682912187581819704373131947610592169618030887529460072700687923619724668739437508966483064120304414422442509352651578614150873560608095181807956074669633639756706460429893719518546219176268980346011130659652315798809321910589224444987247133160951180711515158500660456817937549638654563610705561901928804757552357149725167875009395193652330069918059461473751029401789149890790607342676978730020499248421062514754957284441319066271867437333796316240274516331266533214403607395289028420095212470085444680871192686274889146927891834604541211821086022632563804476315084087612291391847000143451637061457325535208546725530776853710232812877768263102435315237795310582120641398989467433428045057678906642342845648090566374536179589248396072863867359839386688390995648863283155870592834628680355325784607778342100062755322511245452195858511902865587760604447649443492209090321975943217064557489801782707542673504297785450883603145017727304770471250752820202904024763515452702850355278374501419180083163554649133041507827779041439176085880116371308914055659726772626147938142743848588727929468206541598383375020592444395438498874124103462621640221694585768255385625812008091490109385805036859359213448420528142408303035482889084326017242508603735708633859837878840432216996351063425496594961323912501924919648575621826220921560172333500834384926491539993461382258402658256371841925475767591899591230727355145110848252367450611507998494880928315737623339319260497036503603532809177749711720945305165197492336558784529340661639624818228114857272379246996313543765474075265943936170980160893267347454863889402011259300147841878942144921898485536828979857691217540422418841168389410963800801918762168915866672620004451552503993184482595575146196137393396794614188711957446844596487565383932648701939636724413338479587416593491635534102102444970155067219957471353878295962736808301740365013524975122391790079237248523051652327267379061157578150056489624581229386864719190051736958218889848498400360266147844558266305378789453566606331781553808467381105295290810982600638216808938903465437329173292861933168748801715633066560590716970287990636788160081989662022913439440392205428313863947254943950291115494408963265943976324539189705075515939778698945050951325747335171887428679630001318703405425834002897878856572270691297234936759584606279154065768467400408003839360303370061937228475328766347829297646334276623350286375855109743581011381462776044762349359536611365380168854855552829353286837885552773237463352664450852083030343591911444901211384837984095759039832076705262639214877345032060644089702747689782814688126750793922509491509618954988545087952398271943930340504643006035149882225243467133742883572451501539721162822714385136994749786047916506212076363722643311199594501644126617902975965421402300373343934269672854810807627087578528444734692271056022377017077759520726659747587197693473460469977959672958820320594607233077870284057190311417166458695768424890432497076746966706001212006752192205654138335242381662780941724778293516493175966327879203185930529978829051053559239642114160954135623567503979986789018361256035974404342588279041960819293349632580508414572905362029699054819125490392482724507158275764182419393649878850374451636709625239747482495455262055109922216027165738674645930667180644479612752730845206931777830505814634585433855049740100409603605442941981664942338940280159641960656619538657078634904106958349777880368383521680131719792100635776856236954732089066360084791410883638470397278131125323762051957102188154912595198362800035849699892998047757045500704938189487464043221056503357336934808741809222193176601413683384740319640287151201001803267449383623288676561821013705733084083014740793302089399710572926908312931229034867208211854714970684581890018003416977561465111962628169963225313521199080091297043367411086116909454166995384963027969172292101138582435369428721875755524397061829538725576438424033935537539764851910453807342898366667847577985911088116135757915291140823021954957007835300183148385030369190782445595766646761803277774482717797581686696101889198371292900551609183093455424727056796713903747904124623400328652389830093619729263502038527450603098898660272769232050521162373508896124506384563237777845761114939243648488007580098942753782603740826981420241999390519823007581251661950972329721147486199594588150325252919833899231026467361581147037514568840716282542693152614208555011809522902714396230781403435236378682953907743004691648631853120770885142646436187338700864994652074793659290944142492266464435812325735813420752374735213353464950412034716511296664987275504454939125408201453236532307141364099424892883697984023450746663212072041219942098051052781298157824009207987339387084495485520441720383256132636168347194086061674101749967937120665509806756095014647135293422827063076575413861162897505574916793516878724538108782785024982419298718462316172275434096938863136284295933120616544496236997797152120562510650997251443142383214009277102806634210990088542473023566707686878833831764115775579341324638810840806689953327123916944560953286748890463109517162813501501639584164040213093284322317722888486218278201562641561930852893932217808841705489569727714343579793488216226868734737218776299097174710326244912330499241109728665512740550867375513117252413923697708674140361195265895837128995967215661374363001326990018332433349075727405036257819992124670846288113723074984069757840625614326628000592041278650557034571513894217674832014326427650741980129337189255194792278546276160351482397526797650388288724555929372496309698768035886524787392399782143817639294480758116876349684106458125036929260258621916816326477395756325586217038351040921210127618378383238053778904172576753815391565931911410834190779079506963679209037719693978972085154980034030932050620499877370274152279306292904225231382780232375795665883870777325449655256665046779513387186054030996693913309862875724057038896497590340400458002328416912180420488240450140924666972491168618541571003443998072194054358812993882481075220095766403802530605619878956470944232103488007239793173281745142832872559904648706596244077004589599371131111858677841997920490195391070821454972938741372933017435197998919691607770899964214489703682871087642300126859745978751235311801517635918478858438161703032684714983776568426782805187873600654290098739615520358453612411589872738296018683618649999668589018880420118470046101759944234785718971065724669836182822997083517274193651566395402224614898181674068664668090089341953717197349417834052590458746774846052366437558845919337211148207891771558298231035503187713044366687048643836698767991714558891616800131189430984708196053354847001210624378504015213130113417885431681355243498047046026660055649765725795661583123048851670062509512221537603435097184648431058478202665853972006520257665275759034408068765325667649997399038027987292119386415979107739064826615743648272958674222664136436134776847229042680232341540926435528119220025108600539095848022115133368115082163170871155609244261729327900982148085995300087946991453741934832964074684309531874364269467645227712849732581727269937794823353298938104588008165501905574437053364970845030104735184740435649541714086705646322825948161379823067733352531820509404681895514310663317964585125016307743701646157362423387635345289378137801619622839525859917576463950212442898571134316136169041940056387210430290951304080582327296676672881730734017925716240890233165912121477942584081273977089962428907407126287963205244468490644459884471839525086972042266221846288332046786232184075701128469237907175122953253830345548078898129282619675621311903415171421508194323201563189957746959191732658038111791383557091648948759366959198568973857063823010711391479782586530190798817786906413799837759059367960839523769508822482423261920708058439273983274367451380464712923515112985997128618106791994049853145820387039464410620429567914683162522192673321870827642376036600061862811058937943149057017224889086914099289507095392129438064847015421442590640435679194348475065733375602722818675336241457964326235179411977989145730433958195159694950650257949402085400606019497854901761855028776799689043498423315829114267589167638948433959871272922628059374759696672043565420169155893289556802282255227749351672292229647791644975549525725483791577128161197708764427592985407743153234526029330883992048356805547618310504151647266966513902301359079804086052460131651635336291867328068635263762734514368710282263462998699014874449936906031990026828742969525145876124931094076335319927346198415391188531531208744444873873436919127337658195653095103364652531769207876704273032999598511588605278405767522219441535857519897955833084401349271899733961542944567042699558452635634450853610930424380307386557464093627117172479332587394265242187570804694421267162397458410845049434783812325333799950942476773972575294976762128600675098842023179854949915075926710498611786269182289675049640318420388718013005167132475903695990979144429450342344534973291339232333698585148186962993511008887676621400733876099243015102912792571255802760827198316355663381819096141280335921250961933811914984860937772455307815019446013078052504547089489751885386175894872544896477296664601015248748839806987470275603131723442718204010731661307625405625620712102255266177849387082027740229762032554356753826784406035595546737597628518294376460145861056973884788068676817186033327240069083963431422735838876814263115491996248638104901547006560076713694350752623060534529950474076910686376623361968388741384935989632472578505649940309820025974702970492472718647631261971798683292497942372928242032321623323932611389251376933047903649110662322369810633460899992478284788971188164684650314585157791473176625807822133024227180064883673343268305735144363211438967254569742732891096733292574106606105908597128528407715113541792341965872117992971439110290687705027176864684345645335121967006400296453245960229734239429408431585546341231962056003224548007142875596100068654565406086273263420147890646467752318680697489864689089411933522662561358181431891059896079965481519481844883535150219531699007938002042332003731932007714916736554586698051275416501420903345171558436635112076466557108603869757956746500492012395554725108922221726459990899473199100082670359596571867710783981964778959576303831725752835668533635212145066646852807114074925040138000748930336282914093287272015660342443930086958717635412852296820699892553336374008406402371841803165582688064908741826535037688401929978478508475965279664397739258991174644802151774084092747813185030599166183288992420328536685706185194424325094782194897593207356297134674346981889113331293278533907915168601923686948528400475239335718101642620639562300884460229379429455746553473456284412775673278715105558631157246805189840934752843518557128096159670430109077050517782060709736841546343089718944574757971119863934406438964399682267415789115529143058558656150607412763028605894334006171256901996710898815059467194082422920546222075168833819414955246799852728089344928491959861424520714670035178807733850048125655754996956036402673649848308707677545523939220967937246884185138893070055651621842269490857071087372305308906104644600016067462979732780699426703436008087651092589002864232934941057766996527502609829526610401247093774413895387979045028219475996565122992387375513871747530455830786004362652182909305258171820694919652206640664342447070518364669450816893545669615127935189009545857502260139248432592162606014420476387955260879576036111041102396318375907411024140126086007571493472145408343920082321497886831847983751447127619952864307536616188718760160007914163340983804856776480735932847014231257272114850917808227057402803918760465792314726821436505736273153321965008248813302015769811507201197447137608887869522070964269561679247072916320428264360041563272710174049709184368068400004334500849387870668799064577294013555149966742785754703588344309596677818888647431159635890901031284784221790928726527158731929323293039340261505365246148138912408398852408076535757017562554200792914674672133161919520847514035659418101342265800192760993247930030687229571145863149708715609813810691494799387561798135541639520203576424787208114552935502343790997480830661357133448574076529512596936855165522829217080044279078703658820151773497374495372918872393588116613621122788725245103241500409753929620220508081418209706114963330163143162444631444371507146828477581037297232437750231201589990647518320112123085665721836487121004965045564837081552223320224619972319198931974026932060893101991627387175244256907200554405575013722920214017159198753234005655334748863042748452347308532380434876595150175051424500571746863248236101875452370177343803673588143863664745516111845922210985421401542688548445159454268177145784903040828976430384195588566356441088420503701560643565976245691472791943553261201106857771765145300458799069187926019925202402617556190074644320090605527881984340249969317221925950102454110316976678929954119961822171396785037073087786794105551404214190353455821360727238407712216856364340784042407768492760027246890667742333407526171854376703863750389639829238244982594166835974170503892961570845622496745709733133695123442677549340230073898706005070905092257582306376789613181629143426561362321235161476831935799945038369966778601700929727201052367537689255601189740198910181260444058029591063975050580523049257441978137665062356109054537500795441325255862808306726677876582866324977150578130168310121057748108725663524163674882448678811602716978840829285045165951489547253605390961105352572240123093264549750435649008353683065840099470446891869011805959508292013748252007925170975844670999700864791066784564499214102930779851435923150933589345290409379405166354259575866328647033498546928017003087864007473536616836352473404891282596669269437617132233582982561826558798106805203700154326413112841014595555089629314360230283489703318054080242246706798786274819556699266695900285257858280661145215895885547267995256081406028026296351013599925868328782821201934117616667755005101549624635233153211829554137129495491430474263082146188389283048859948352182238935456352665282391409640022231276682229016643826002206442772840808636992519337635614490997568731392876295212349736033136838661158312349105467364626068277886824949718538122937460397736219709828528681325674565934568011246736572351837511343769668459444008060283877319070384254835327634271820209375671903982916364432247829554290813103495739332500638334149025553574961000446798818036196180345800923701153238601137957619585761936863691370483166483783610121824817295862895268644988928082695723836825456615804098731204325760957813969388679107910085614206195883462351946794844278354913817846131875472829302878261641272003356093369755684310539942675331738542583819531487483156718731962352110581197198484141300308682593030501500951728031722684544343097501778243341280333213107767522922540966007065869114863907202689221899937408838106678395352923012938002158140274030235125909979904060517317132479560717716816195040367271891114816849005883080242713686530382742854347815286380013530929706511231821961923969222887400162548696746805634948434461220704983556134271328033992409852482298442900462064879299620608746364133425554143681852024743255980263031957925327673436749707700911627643246051651378287454422690451724141446690318933070675066173643786066498915870133848175738165800049386987712503652375100236658946357156198267720735681595938938703769600119737281060800026129399707726657716278762423677680158726864396678744766719214086664444446430759210412752715298764405156050084021937860226409920546168998220784564508293630644680003660870452829512535531346695326585986148771275649691824372574795949768688318555898207379184157740864209225477736128185920708491712179822645579533852560671838545456387801872541358309119633933297402914523686441803062732033350699982617504770586709516384774394874645092194972925630377423306119427768066315887418121484053124899355733203892465246940966239064666074866145381243016036905194335655900671407895914223370242867821757031762034659019673484178835861076422781613970380636303117028664507270160905687187290045192049110340301187860103093069997973369567827402038215703000634530391322690981405372900878840223884201121300501414012810121755830771817895947790532889834744099099606151300064702182478869345701855008946113983560714360906535639766061269916985062723074165429492319166330875155849748367634098873035947846053163944281813770377270185994348252899512025977017829274444438355211117514478220723063339473624374402830442812530083495958426731000267304958911896127911599895339817840623964040518817102445049263395315996987163708712435323088396740231442273489701041630128146564224918296502786596945168012867243257997532468072486309128916637967874185885060835846509894424207888161603594885354496588901769408202540446604414103212953486335595612587205455051266211587913755512106440596672474588828231307122181165492601620402920083388328422910989339721290662523487450300238838206308618832824770328253401127459105724156224919534889752316034543538473507148823650971230227142686602585600662157051999777673561890651688687445752901915779318260823332450775812907777206720261689065022914061452408913935435859200900332404278255560167189700704372266522014300079588337078585079871428065150501211200274053148247661541207039848162685144721931518563686362485533032271085623019716953892376478943469581360186099053332730369861320103093005963683264848576738840287851698037823624263848244599580462113775314243676921300926233232293287414489647176640456756646866637817254548948099467426470980268677511290846168911969276112011680634992079529334801861673570196585869630503276549545813913730231163468448137334364607601643037450090147798411571735960477581273049492359712412832112667907539184442472293632881446219668502683266348815369138650763962802109229043612746547846369141994162825863555123577029309826409014433133840836339161191609319181557112179084989310226372145615539968430402631772754644081002711525944348308169461722702308724824692427853687301361465531151987231258109024459027980032388383756522577975486753030074968213972172788917169801488944109827173832287133493402947955429852189999769181605330974488731420893986039964466573561528672712352236037772215543131460349959101043471132901447933598868199525035137749502364373591491570026575532241701383282950857814933163582760378572219862943022651700190422402947737934855798184361858576963792403065261519102318049506989912364405699387928115214731163933398682066402621866161714279004623306512976498960555574703380109028206122235284308698792172135175727290362031940628861616398209562477346365232788932789739002192452851986070308447595287451662023525994099270162128540131335882275446199828866969918549743283203598976816645489353071597634399972197767848177355158100340932106251975176979053529665314734504948718954709570188702874152248491585405891638864399796664282823747362029878914807596361319861085208308143782974164753223557168876378731621684734394224508278967867181630581872510549237917571277661363548402786440665188563643556055713347990484043040506934770692655808343838314371281547985841501469529234477999829041323173711364970072982149532794160004740621124369332853946393148509304321696930701586638615925390013590971556349482466014046146349593179597332156414540327954555771216130809640385828596988364985868952782623799313135943598267328117453861876693766065004531845780416277345845217411980139678227383594358831265102286892450242658411596179805964937925722949866466315938651575380711255792237950129085593778357044975471766250423634238498924172383891075940631194550262096817924942927228290791831752970224457491168010445391734619826011148851044717256707920352473670890895131604757341891303972132628574737987834926214308396739482863008154756293841636056361648083439957483346933788504566761022237491063691800504211488160646173323888843737160030056201795333858450370681819935155328227577014382996471772099768467162051613932726494546331190752796042608878116721008732778978444815518146479046597543767639163317785556465227832998651094907137945030181216517530760568507084291913042646078118147563201059906449243754206860123854564264682930727114969456104608886798530683778436953929412297079179376293452901963692466367220042514775744158727881720560129477748635258521440122719406426868830961872109903041804103796076694467362638152244401733466331771192059673646204521238520717281025269304119813166517504604779549109081142984472050302163482862248499058531342991812357504393006345535727174764198465591924430369993621226705760118606946798698327224289322489862349236166638590733351583641098186404866453501633684204245030976787378764083160060290101857797143412858510552575843002003714727585279667943249848989200356636753580236341341792971465804255717756182359129864663876381789216143345940140399976120287005606814874085450542128535175503737400583849301835331560605793871663622323681365491019472634319436027938356374379162873555689318651867232410321753889910350007079910411573999301638598996574055505472357417455574805122834026088071078105379809241339839236564442460710685046994395779352616579415718930061205225078393617929777353763808671341482613733625445478412928377343815224408019225015689780809448347803410091413198934497136777728617992113104972422285455677497295910121797627789472961426799793711092272808576401641929847401969304792403079610377918892621668666000193325011336031879719901921466164327598350716161114075335179127227999573230335149758089102163194263935136054857285981642151148399174459958531733567112287600479906404666512161260848209912039808554905736031956165589776818014260026723525751162977810898069980211454159105933597945587091001941499613635119067033954098874590657980195037629676222254307363461571892318338652742211605148025280865032780576784893449727755458514874975970175397973025282239674281980412097521913518146972353093875972209943011780071906134767718042272623723746863351369087800833995382216957668837042980497600058143029849785465191600674397409206017603588284307917419385886836219696388341125861684962056441914072825207892539131944307025071133133168484857668083523423811535049744954105343544113651174341948004431758956793360900555177157236294430673485967978197982342972449092257083892552582401625495055326442121463655784160458731963790202604709982443195058965562526403105225949913692181061712872563696859757826074809903195981347639049349742017606631488621384896944419970404803955727559238012934978381912198055800084921727980968284816890012955125181999829725179039569650169095006230637224568074684796849598873108748383457421587334805087676091079216477548566449119255789883677837064009008095784268350832175416294080351749871551266689909661911613308581005390889502798598868048325188965684920225625005674069304862662356405529156542201625216382746386404186901482225895814404454507952784735706326965784348424921277598068124175444305061815756325267388284370095884345828780968430955235398098839927115930630564573395411654696722102411962016889433471328190896236518688097005776219180770229005495292373887428029093294014254938430068805425937324128330564572679641740823844737995028116528314591564837495894561936692458833542949326811948674710947886896301030230650811557598051752073948838596248269291467658210832270039597517212403425446558472353961751534905597355272703658524823750687059152202487987348505324294536901008288309159037007402180518817205734836281877985168884051660793936756983756076732950951183257974678948946648645508654532042126502082837081557145961901557244528038143921264398106634723242163320714433488421763612996882550955820486190646945801139521099818830157261708368677949135612873480301304198525592647053885552335488593008268071019500780238349861236376302536988135175299403884915872484959386186125747462624908584957317013893816378080601842593182737072217793460074543563856274849831586982391834470730491824623221428761565078999012101783521471376356107125093852744039449366455833320313503680978650436806583923471269806745749513983072457419817834851796863839586578901747544680930573500375524504881816315395729943738926528659232216354786472236523986110490202555747199444634780139846789687405662439896030390813888054524378751750375541907649303230764975896494840719284202474071077258003648419658715504493242141554331198050067825343976454918684360208172243866262982284945222586990802076336399242094609345285014073625061586633405261793791987979801660936215799160064481086352740225178168729328607568204845977059131047257735630065057342971212178320174386720927178825581459609657628048094567089340499478109518675416188003624694298224395154984156232594619077760231499958089316208357649229278381456225909237805691722257399556240998836364781343050115009875367778593860587802564882479234978795003316141762236140992873775239644621819164187015756239550337966272576798699224222178691061122102247786161697300256931024240453573203379714168640122414668540372192899525300031503129979099933956886983377552295641284045983923844125494791243754910975485277196238899961557521297989001287716247438823735743361180331487127291232171391258915945499622855097243367466627970699527030508986149624617335031565775962485056715950705057647216939564913603044094591691953736595049690408917752009774034690062372419670187586822297173758680366688076885662580880270756467731264618558490516484647301229206037468326822354560505760768190403205607441463581399832274473712263344591369565870454912577508461555435417705291412151228420174294746317703901091792767535046759258006568882090352956753675949812477901211157402139218642025731449291197147450482153983446253883616138320599164252391251212032272543887848958126503481969816755635702176138031006204969714730992130173557321610880023937504239971862891513785985317099062123900672451605491067657250392308871907672764397551038141508987112472745439379347472996257981739636196138142775497665018634095358626562991658337262242731751384718433334372174469736805090305997890684900573819903703728228689532858008323193337047756001660915999530882056592497153370817118316921971263122991695671941146743753119970677378276891026250391837143422334887670984289505406512687296104685901104902252936556111670406897459850260237547476018144804740268527668586295418562466370817123264706254813081840453088623308515963398190879000645204695841059133279852515543100660141862285906585440583019609811437556942648891753363698058405259049248701792330765332582812194153865059373648349188892199621789571949397392864301728521263874030979177630269714803869550582712384612326251000297320878567698322561293957541679601275134254951270478721916213266679897196283477926608942896639820868585846866592355217811180272510399505818136903498127615351825696722084405700419868863696598477689249873874080660805132595265910012568853072484853526135546586168202458704230499260919487142848022921435935569142120992594121347818926168836388817741416994033343182249617970894070843086590666648456478451500985754334419648792361796751594082583396571763712062564984449045368541183497357360667905395510382566477363404873313828349915545038645694535638285276054083126137962369634808707708625348910089995859916121919131669281180123842872769286813799976640881349313266128494462788637075374673916470654465043487484584085401111617639554089047217917536132806303956151356744518635182011823202708206714792835969492033780774366733779493307857383052614623575809611857380168327311964359247593558496705440370295808681903614029423537161385265353216839498003388724960233777569568880010603279081839131441861752000081139445342481052638033151866838881044303055383084643639248243630598012796761397006364522190783547467173051091620531709323996354246419366347927002904123443777614328270514849832299051624832552035346212654902359333144397401153290173826559078315732496762818218796403926020677747033669377812855601760640683685896441849624745879111394491199794774481573665936912802303245779576151971814246653192635731539227737902156464555641292282802256622266040841652863832973700777588457895137020790374022369525092901421757408507005838535310898277085646159080541521420783574868440927510807864284316055116211800405113261733785804133823438555678029332268148533232841746692648004245670926943238971531969871827859116310526256073141584527893932762167290832932473777132592612682394015492140320592255392953308021544204621260211730389573696511150641564411182968533390054659673169241160014236510480441915021644250839704713268688342552588736352746820152171080118126108544248420278368869821643596670334257979119490828726621389134159612694636645377793527453864851454536645067912948967533836965615952127862221188607815708297870321908688088762509259369228656748219366598293523125420819848515709768133190286542276847835651845489543996542818926258664684956929473924541172306333415039263900678184144013668863871977798265297021831043139300415416621288053078040157332539536232309177737343406351789592901241501603174826467359207460189301111652835274693101349497113354976416933198918226822290038371252788987462284946133589876114731574554311137887226202302680994469727444670393144341010557415719595516676059678446160527479032593121680852487681580836723347475033215991676904853604451074951942086188234434999090487105039374273509486144477849368325308724316699350065258258531195996425094268186933198282895754893677630706559094254546664363017320624336767952289679267288183481847734423448569602654319825173718023576884133481444937274210518801831050909708372119846778789865164398353253861115438696720762576523667157342429701057964375170361968532648914302080163558405880289431647182580673133004194973490656438758976068932554246613869416482442685813278516290564074776662578279908307541681575306346756621331951316376482560286944952103976425191964350751617883145882171665121298497451621427051465975057335196035037804433045028205997388014517595806681350262488097435772990513300735808091071782618228891728359660303609374506229621907636559620478094790831905713268079476278304831933794270077599091768829594529895486200316282853520334001004240083296802243017689245589475670771469150128138694790418858357661154287634550611754641648078274621385762956334822527715877067893501927087894456650141169390050364722712744245543008455492757890475917826884300787938285241950014092146914175605192075626975006203825094096383175122267777490588564814273872777497520573922902295555930444194157979193754789782086423245782404391692591612813767405706538018487555225940987094990245023153006895253285583703814501828263176300647111383765387721776138718551330986177937455749823797883839378573035148303435853014097790691137053884184216372066351755885131243291853266631632383406662494281002582736305785964043174528735556046595892840129451647568058070104651030277568380636851236170403051305101623329584471269278616124424817031259924146878877768906880584134791961898810089342960174507341210695451110381129777683221196543200524030032366131314265222186163199221839545623822174799433889605926138264964655710079561844456270798275745903732144925256240131385004252932336234125397952136619469619817574285856665741902761641686913388829301860365154056657007183823356721765645105666680936255024060901626778932939571992458528918416280843900611846846057512232018623308868945837208776883782960617068213119446810647895635819847312503660178302571558877099091836453094484997763854609482951537606410467892056268832268126853832671658406403240424779345848483791747452259368132430278093809254867355294026060158273314951164225262448812563474585916888558919902973426700289263895952079311526580821038146929312283601069510515969322388917322021988715095707634525367454628667031797953113340974667587033677053513487944251029983656488206904670084649830618033221679975924387155635334118261983789128637040178790406813394196875205165382405506292572895563133226163837708989271690344307707734277485553009753293222694109506308828148478947298721241737958308829570594385797591416206993326629376997668300986681043536312585003266068243292736640627589771403896860170656759200101935235906545013484542935697233951042384482754988978772727009614416203921062883018770541157006152716519278374253880966751872568097813264397991859332582156144967975943631650415163260911942273993821252091178811452669458420432233909945872589893466711899063495053476567309278505884806215726860401139673589581439482935341614510968424256132520727099839142953687812087697140063252415531628917785527490473019473354531123627129663202595523809108570659758186077573755135427824502566554900816313562126471884784226126490035200557699843718305637928053015723691050873917657378235423292016387755836764568236226109176875057257217886860432621190124662145169402672419241312237074256723734877653541488316988423429689229297582425231899466419694023585686959893573134543859920688508281568375920244653186142731547694610825712061151487686680675358460267052714852142352263734556488299929614431465454659148610270155385318430927575921807140313923360509861866437795050351829815065372151592833320174899281210777055284113794562227620676579644507864805521357203469405371059062222524687942478695550167469391217407453080930196157577957298299050235553855529958403370471583726442484643777942297661061671357389209545283119460106726719423751995569348011919607711061002654346445622647676826924845441946463303949056647448955735104459039538822607057002778824281187137176015496037562988141872401847002162653863349375743596480478194558666381467184313602896357328001480711624786074100768964323906053275170049230878691625949326300623825581925937192587735904260521820844872595362618566332256210245477166372948697131390453759449698499609035592582421612756592716654976464092912873588633169229045175819040550508809076375832504669562277638713003315113925162835006587620091549240194621542878818729046631908508649307523265984607506670290115132919893999112587731380935581503166639792842999039713802110548766507860249363469089559295373631761884547103924055303595021827117977679099466826289262619131557640179911537747140372764997342187912855936314067725334000462707614680848202261349297862116936329773967412097458070970006226093598351169126094901547374034875458150916265132805915606561499299416937796173914066161051050269398608891436717628180747961616183984488279764942295772206943074993913997440015041580097776655783952362995659940392653907887581996933153688693708175846183105606391308476476986633091893397023553973063939569694137098588768039209587775924299915568898801316141070408478418766710592791611336222882153720040582192189702640215316086946395966346198589411671842118838957295391166958971545313533219290317815577458353330215185035640485927983169103351088259183654293208276801914303734725202882832638195921448672308383906521624456407696787723186452605942198184273424390407732812736598693286102315316702867463312453303397820529476353380299018379521381700030290992354392335434801442799173110115419219811776282031658028805973869303683870518645054222301562053137443220840694671418439354102690247410323561888497720253058581928658423241332815685580883100385588057721238537475782806152957914940677696478356412933419479188277501472306064998315955754767459944809073067896815236002431503603400169289895365770855422013811008805739205476457309318225754429152937336005023427678078675757940434643853429248243771575498675416955437379038681473548738731227548420889712460126065342550553600996286449397756775421972285329323233239341284088316489832046404507184925537339642292622947457303101598430822244265999960429814157901932465274967608574097048099172051538794150915386651771160231429292843758989574638705726638040643175275572321736670852384020023647936489214015301775707274359597326813350465422648617149639892391168210775915050396782563587590004261450050513985727491937357280334790441686605602290560661915840889123592755216998813537374319229097671931761414500820515386275784204858436728111773375524798892664788573660201218741816346229428141535003691545132725043488449795094156502270027664983101511272387664792616957821782932540725645811832466549554660118083458479205428842895137709749141439241281895842935906084347535017739955192795288847483884214362491575073609790511688902433516223706977251699634515364795386679282574800862852303994308010805700933869572108453235649147916748436406872894848626711700203230579188940473610328315746651602890993295686832795996805893612601468611482448607875100315433726371113416859850478229957958282305876996279716887935644752500792878435296379388824834627166172120893079120163797889512054284226054860915416788727758710857587329850425609057613372795323861090686423366690960096553128193083756381178186167717751833486704503841713034092495097193006176759298468677667827878977762497139012820343815319276604827737962894698199015289540779504724707201162926479597136434058772588191459842359912605056201224553292278146577356223499471920211684430695211781454575138419405496310515242192082015900541972788071074234440810591357773578915779441179476439915947907457848861176437201792317814360661786880837557579391112575042613584558541217315195201230952871294946264855163192831664134888031590920379333410070715909658922224367033266842766391165442395817846681959795094272243951765585560782324236749227178893654733078969089415152705276624045735047560571695732859687114890311619828893788329208252944923508795824580966592796198805905610092671420960950975472944046557443309930472202826385534940754892175815395512774296327488929661323438632788646107469480890958759918047282952773022338410112116353941409879453434670122059482802234133076230062345373651830089191386074291869694158185668481386986109486616352499587665811104338035056877708678334483984062740240750090147584742179866807025861563021552598268238277530911716099575385339928901665030693880737083993725613294570941906693264722643850708805715079806163793278946414867034739443923998711315822507256406965168304432057266904139642926298352718030902511131149119961181078346303970310752196350478676762255532691851216192491150958853988784005492407512106639454430604747782988852638415904852475265143200951758577607428930713164062770606989205797174010091798255851540145773702407141810767580319212294677648915816312916703186426954326756938021179747800577581528908005767090165189050736112526355090761443761798780163514098808705890941246099627181924832542631473102366360736291006450872262901842756102458011880210536074709013109162563810786571899562603129326255071221151998759130053223839421992247842927887007329954450468905325923332375030472313603510940885715277653650305053887652156077145231219974941701737674405157472467414262886029706860119886095380069197477373549384345882572214798151426347600084327205335196124838409917697626585622364538130846295734342746479623335258668383143798446490683666643705545008185293144115068320235053957371333615697170563540992619861808192188828458838483795104506176572104709239929372464665159942660349514908168880583532464107057875776921697621942432122242535991201851764444271235699957241375702668454999655848769579045876803697700699420662880849071072784894153333730970844620172854178249246563273590266059837414019823391497618452419509169594760017335139223011454469738856093733997411803526148769721076788161080076328103113592938409829770536980769164887689104929970142128144467281864348066327805280723762231352128061597728164123615658424482427743726843553002008059457408364015466816206766707481394567953954615610934240832958992726120894442407155715620709225466429845565423579516004260409233978686302055254115240785169343628262686739821296854977660148108887880647042243042571692248047337215954463437855230975942948562299949823768433299870647982553516113392954242406291216378151326566027438716576786495187149560757304004004644730878468370836075452750763214658247636347441942448742911280003080065446654229702843774391342091897148390436284592517698564357260003299511901346478579861365680175542172472549077900605931265012563853354058499301443042758482544653807193829126371794261307707583857379404061985912160926481572347337828090590808871028720075780957958902639321681984382217179590736222685719665077512493269220206276941688273999252104987777778822749546426166643353098305937212869995218482456593604688214485478968388950609837318283724794650140231065680344256267544141145993049554232122529838880726245127429201378023800607201529385830096177943629758027370984644893137952783974360636455026433231765655211749018339607459320425955225542541831681895526248862050983947143076541510003856141215981974158997618640904519845852795261104113479584340066573854024337420809408500982588037004830723954953565266129864043318756399038208987291166028797927069187856889382970611329649547315381761586088575491497502884113193256106003447364119982912599862945415740441797991667697535870694762219975816159225147171710381092982783176638810066212438576543136285920256791096534500392134718994531189556856238571314481349642072893626456475014507673112148458203274186767028911802650198015928959888937824198206876809044632662311782155773488843705445264084012038414812985015454841878110124676790458162876545040000932956224630468401359666106112770348516941168348960113414610794446964765105303410366875507205530778665265345774436711622054164647314416595377603859090141151153927929056359574420422922790697247271168652938001025072891033005236441412428026820617713373910299251614040211289448329350103408342062322375986681693419949845787063147333669619137432498780585106961576494434504416377364998113593640348837145355545270822388985123542028546197209536065158879354272655108233707159712920374888271958181577937520827127916907000173390982495313423249651915597312553073172301845395094344893891024227985260148239628147346196774012401920164831275256686533160026275624607237373241085872313413544389946704960413790275944220658251202986170803830058296316806023372603148150446620288828008154066252491602540063396188607152701322061914004535164014626156240397668725917742047286659900937632322721368252903701507945808528202389803464780099754715439724468300955125915172516098811871856068069402916010967553438678071738355203555539105046552182140571481221795995560560050956384346386610735734060806462300465238190328993117835816037904956096355721070266700633083510455308312858863220004740899572376516572067917860922502260318341274365733833371718775348399068976807697621349007362821827475056419863539289625260479743669919489877871213741341321346212251871318542391988533257031017404124557936856813248807366535623040727865139396858318226237817960680540837643411029674717061756849665004173601355575561165684392277478151420055163350773455106678069967513589726598139054209138033339904667011977950732583141457878643325396199103720877235880329512563627272039252914227160137533475875553848407768193912696365569499588287409887388053286350771911406196345503165964318006826714898731848708946834715474964094094558152754624056064387241975358587304261053331378373536415390435430142871095435022474366855719287788799611757782857384173387796874163180227025337980904012879641875264761360904385692213509752268497895378180139134930717055502396699299336307685368857875936232358576121144570060798639585923502164360980503012986080780951233329497983090511824383731713165765545567199265829696943663764606732046198020702726546425155721106523238021252535167573593239099759020571483035656024773947818295497481769077465063689408107591785875209182076880397972998778208956497355132420425623620622475599376010439455404224379952436659328135920155036124003440590072313977885253170148247401714814864621882716336982555122973387546473391184534057160454003394502749692019807104008495065265044508302852997055237888908024597205116280510196784120287623146530969419859429250593844454571020153524137248949944644608585935320111252343220398000998550374647361615941260948408330644342597153528854972607141413260672562800971585714157939731229126919240039135677924812598823624978230460538474702610317723902278699489471767964383241724165049339720645379054470437592575190309106972943915692569314832832743060116319363249051377978950065620529997721940508052306499331369027030433883933271226551411150514519945240980685150540145163773723094981134972289119696638503999353872328296649728831148017869606573276772036487891615036518843498720740493492490549833529827364560768925241084568199297215736345580545303480614517715581041918604179849721278570530556248415952321578592161632395320054994779418175279783819785775775765232526822869388807701839934956829840459430018134948199329654208494536777737123246094916609931716214022855485003874059388709354541511963176882677074105449629419593134094040196576436659293442648771756070257611235952567565262199589164188499183959999272600825846738690047803811722768393226704245442234667347466327575835259901380867807928420755555173665570563240479879464122443687747492609003069579408910454626286590909491579522886724058946037626224901960469524032583029750232929710635416132248676032976004420688706919777618249780063675536574294318332951281991667613788262891580586319587602982659976885023975141435691774242151895206941864972364615184435518639416703402940197392241529943026880480751293908797061260702848798966042769163600585619280527519381306713413260345074157037903052764818507278806135208726953789377790312387306203016671770848036236216207036675112743606424133417316770908739076098496374720424100650471388728195992182660551484804527723622703632403840366753059681331447241875604667999990768430071385841770046351388113017058260962212942202980739980576351411010589531926665455423407332681918094134138116517258240690738634051762719272616218598538320505362866846778348062159765390791733687551917423638653744533092850339138113383414642096204489087013905825899166004953660898748837151988519253471522274682103208819685254590368030411068411631932831781614674707062308650793558119382540315145003711571975313888961291327636018213887755837269677491296239523487320075330773148984304804770510158442907242597380000712224493679743892123560253863649221090957347827650219055889945559851688398270338154759348333211695501760380272790679494050453688341909723287161476153376268179917592885502452257863819493352611264874053353651441543199233525428738426422323694631861741485036946366723944410245185375335683231227213014706227656605429377234470863617877450604147413078507965939018572154523236880234679905507505469213616734076181276046513572535138865136356169287300307913676849182151613097249319490973914606271558366954372014804521245530564344832784942772655451905626540895352369032886434168291179230653017984781392202015620559097259563119483400511336765156957924280422756515606920795721053141047386113194396478185961847399264895643340170070759579773902625626737799366354270950590733985558760009171879103216176752542402681251093805295362332190384991791895353659435692931428354419901597698634698042822102618688182856543650262132015012788911918685313264300017619444203832686440550041247431590566704634004468661728424450597263399768731341758041118023387428229000960827562221116551003105015977518131278141969328007141216045758212747006768102122978005049656137072356580097818342500368771435225959616355533610749250447720955908667697287829101301329163912977307973209426934813168036173941557726394693921516678518792443423707716040861747164843960319984318916702628281628875908586740014245529541479950084629104713221717006385839393309046923494128931528376477020863247660058742762988867175599065433243311896541430048352124938636452182221697745061346390695101487173983689274629653326511293596431726394907077882808439157966417473931574766270370250971994915010813043597638368508381000697247427385496608866219464640704697706595401707418691532514101689798892258348198546383078468341301302435958898601502440709400601779595359221621279318363272998770299727493876258542592770272191723869737898025634815904218388640867520871771766575612520289914139658561511419761373056267781633074275333651670893020295859638033765896761654855496193297326837731250180831411900059318615763427535830757455868202434297588580020353616810799090718533895907951323321375484736888228695819186949815092242030540665130649123195871846230825532835109173855255477609307388468791839240979803862873221605440824467654987056664402188874329412327051052100848525153147167867405450447639621835091822813199906787169618179261326876516329369404623874644041136886321647826666841887162023762563830218407348461548738790424035993187301810062755477018767929850509039346939372926468291425352042349495334475222168690514687687332088491084010324995585059600644776437820192419317125996508080716297466058416588335658589531741211371554371605328773549001535159494709705349597189827645796973263209146608831762524578463955889068197899423773431463822577082820621296898632765939415568140627061646531739433914622098840823868140718988806015058843283463944160472699874795458317942088924688435473757167483794913265978824571739075336426148157573569398433252284262669955721435895622198925221389479964769005183304791461025464861488633946724401359697765121536697691115648365783089443728594759824626094619605259931841339325063950020211392019538688290468090124165090569182877954405479561761102025941156830232488679658978417430977188622274586356618920925508091147107722296750647679873238493031574516293437945818193625040098787562052817027326011259085719579258387168255593802375615727299881290540433260864173079310305904228800301055157089842145150126092312304591735303854966646638986592035633453697262206804364565375363957856652071191754355722414959131056326622033722786246450313800035758488979774244157133106397574002744138405986705576608611941812840676177806350609902229237989380799165466293948006634134211931871205351565247923842116417007522353293690280464281833737823079651093937040074843462961797183379066379113419313878809081060339664487439055354256630934393450899648860170779847522717046056728814685849009644205694951355720808669897896360623513767267716292603762334607810670644595175558029475751262347937512283875221088293285334363997454118699595631823622628486425506955677017575448583682000559725278856454049235147639123250045017928715345712307200273353261477099690812101982103577584227422497247186220148519680597625932564980113921539045405048138168642335869480816948341762531601644401735924538638780886598824451218081660554960101582118348856256957611389953816148394225614111673932598648353786531367486295298605628123469536591030243181484706484586506388116051093466878600692917608075268492675441421567990356923948209822167456451542647684017288713706346342143083479013634898210531176228002238424726098277053934791828676298438522038651806601259549448782030599225686466280377189127574085283570554536103873903578726559877186687722882732209562866338067293041279206957627662173577131330881178176500998689579884151508317989792450847285216585123837041707870731978881036013085091653389365629138229511039360093139855668979861668188050698969325181344959758115611648382404480091027046936490347167715260040260049680545120198377898261628995747295204281080042445830732445031364714481741913064425703843190592069154364712606745412238190151405699363876979695280784859921125644594655533151595851869893973341487680020552774028942341619174919069336715186318461165760644082577798585091241377684017127005340459785064523767609264398170294337930179914848333852154459111052061003183439060622816697053308926700676119362165948374227891324155442251181018360603338190381217270186474372851739710384551273596011012435125089243136199752848998179352045010335281304603741705109293868932003850063724205393749726444623032511113407232406208016890997783336890141890760378678821449108257388752526306821168361649376126838331320836648831909283920740711122335195331692275050745299558283315663178316531113237665154665707194686937767137812982536969263953095779062509334422018863704649288779795672789773563560427829821337161203950890598642152637254458621961788615581936723876660831954759231717770823001490378752738598714365512160184864320305276490949016443978902256721267585281966552177695995013779752714150761021995842379072201489613624378194615002982276830444328746586641894841218484748423854995165784474284594221342545916658805405057163284433612764886651610926344521894730547442729840288284917299384482942517417422631961729492513568828855985871806790432944488639840282047064988609317024439306199934769970098233917408751667651142545538604052552615937884852192923110329681124788097499988066203360419077713129276503424025961543167534985828971631096213680192341211782435747291214395575861159015311761951855217544885811574767974952680681033196199606322532182077758184345656390420568937035923076323992533706668375732162168046018601519691876267516492280008979127989701612891738285158495651104042062066425580632721145691813518480224780465771256922876982340263200074041080265890844440154997188201982898536156325034430230826379958925157977374593620284728559623200319187671607300568781378254169654603706547653712725465230665779029030152468316072151541200045477704680152965748748505773045610624333378226198880671273460346236318635028030455078363611763501518264395971930467315394730730698043587613117610255543713547124442475552870394103491032548545119500698415267019583974563224776076667906015664898207499450411085893333396871972343050307711799030380884573339515034666006212379270162844087628189008200841685686105831894458691503264642667183153006834411146873083160518147748922608864315050096726003301165067754528218508670089067627055556886355603970311255922052953792712082872912982232094431832657160639346671132777122795118757115865467342274852981211587568609811333712026538060467470251867920271821182611066762282343830753727362057234476329436211612250585119808718490429892909007523338093091730967297058994852240574015113946028695234970309901024750867119769073994496037802422816136213613819823959378017253714452989809759031672393652878563165210024259527107276126099524600537659975028780158559174420845468743188715024266162776080800641379792416215031340177105396171811756400682850643385699099090058574258862664595882563744192682241863933547738734449478129999207430074905296554931881434905191497462700625226263491051087942123298833182612891261620500451815945557252105429162383896460233060450214471865148669785980468745914405532477910433502187576778068302948718105100513006984479245993533694838450301188073270573218500044177087834317101720145459937016598366730919158254337508745915669894410642107830946082474513919069982982577618188004568319643338318472943574581750470073748872515101132397786464366309534289747958099216828500895715280889539608859083423489419750908947696682625835703162985043172066905085884169873824018109802325484009334978156713033569433668221381790598325766503689906765698678847107004553872016894944012243346972068582859720676085104519927839266454265266691617359958156418027311157514023188101109895984087629494866490673191016996424001598101247296154063863069071119330728816030439298438428077330814140891158539720467104273253530138516309976672733336163864313079920916375768921023491641824312435075697967282255301055882660238755974481262491204158092395894922384045375448050141661246054252317614815476807370556922017595396882659590494719187654375350228131251080564113207508792224768634118953072735205747082566319348699683206147818872143735843488726437118028209014622562051915061818916549488481145563229060383238889290179899474767409471726744192943038229330521437420895928865722320635250738264949383798825566610693722690281968779360136783134973920248068181195101462405658888399553321363191948525294094994193603152674648946771505958781126762325948642226226970267470498287781294319273561027901574668724098509463587386240164522064324215047044439948337781523984393909484377781364929660847918848644787325650805067203847869001542313706204397399289536005976148516831854308849548669223239125832192534856099869516599106969245630401201797540431073840317224426748794492190196003146508725297115067545002497777900406885067706920378987290915827785366490606875505723919795086953333170463035016540599028944380301763076753161794628099194606648982375426112754618164088556143136796067564376049265997912597764524483190232079674474652191414870474636876616800108957774731856877925388864255154049023373128464470470956646265252812455092176305087064119839901254582933658961780462843758797241310474507754737745796518342440561095731530951587477603438057335728881463580443677355072907667287382842696173088009946255197066574824767297229488501352789311456403441019741812261781950265760824700614245458599995468205617758222866491948947505419990208881457131340346766883661599064447688180276363239079791672405857696327940050395858629611283862019551353374375021060169471981105381350586676672984556579013389790023704672253057704109287557307765825531385924393976332053203742960426506582586728360677917058672217953141553727378331598009660310241891891052617813550298005136806392008924139817589176912359818697237348551010653740119432810016594928023633591849010753918628187695953099191397450718470115206267971156964020275658630332090870602849288796194714064938019162707270617270529730441934101799912898280506145556877653209406650601910207907418869993045183357972413839554584643467285704282856089215166340051408094389257032641036260476726136717148745133623695367743186322722432359567672320645528031527022622237423020836958312955357344372925440689024877962061455940493587020104264284148982566767905316945975297598853521584458635294722880704502369423366299234799978348156744083509922497393437205136471873304013998643720585954591113463240884760496238707189873049931275415235182898308248044729233685436610782892861962356255897585852127904880884432497692237056546026968796998117276320878695204110694264283046407699282816151623191904152968869741917837018718143224129022915537240298622920277615015961035693431876992881150468371659938907104991323864637975276707010204298758005076910075438008658282311624999015118018740456900541424882176739202252440874485646530912719165835685200433575876164253326550845080737922020595779477842709818376270367750110870874328610233761076917302098761650600409237113075071742287526921268951948248294478190854961915049694306344768972999746697532155036855670546279748537456467893694660292860289371324166981826378595017034479424418960052325776759074104128778748566338953779893944892887663928560499318881868932906885207667481560849883268528096771676066801224065085021187757863563829007164871413601814370576165057297265561847672296077610085485374208465925499027030276899824049749002666136505988856606801194252140174700349007778002299857061545332424890353562254730026656359171184715868026929562746537784968532424689977202090766349338946267319038033199042179603781093235769787293004320972269896965632111088214980497266849341649761916030426266440154529718366496632987644006498800827827294803970740397344253457526037294852093749665748933372030151180712446916588285989179016639229558609666245794444132850561134592509738250489602484111327350084383374207244296112592367357155620333304085080917864818894216691940591553132209553531364672848127571880295283597510688156819626856301205407539403199274977986955450306298180731684402997526616417688548753665142195018359636732895563716512418800889953625622183026020474531153644135607896813316160382805686953175478575242233776318584119148645967917076570427985537914010392480017594758455169560272638986495124659699780122523932942699539966733125033655820840249136719394434778867257274863686710940742779121091178102613928361118882723904380826386703043321488545993162944200913795616754022806795028566197996733229080202486745837508574508900772824334602998972209317055068102735104496628506963317145446540602024540257173552572949523561373788138570125037192744193975170869494162790695127691316935495340152925609366154260107674975930718965413302183372615571377134554355327425441889262075571166021140484892072714859455609814443052242975126153444785497277801789329415051033657361201986469837450527779600441476898579462329740303173106687547494529944863215506309705301373063145270649850809534411672859948122397706018485102045928779241032843387763363322157448741185506256125102965535538157132703777284846400162526417793910044652410279071762349348610316232557987686932518215606181100018068568504732035641682308591218573378113773350711155670775967073204932739943207039895836439547264461119136390845039151149380655377151913165142099162296157469549716105663820778408414844018827774368676197145952643556935806528484590181767730948117432608210900938668582087245332904999084390500190850088977121983494092093905931147279595190522859554219760792399258608327078837196773139591641285902554470864395354622132513190474005532353678013430115630223594437126889322745619529256982993581343652931636682825157330140870942739065406547559726326231630721502324469636061804481396962671700736586201306357102736274490614391927936830147722381549509778803016110686114812824357025473647276547537474923923773328594764519674974576912099237841912185146177204460505296618616913172351721172750844044997489798912220803540001712508264153370795720058783490647193203727136821606302565304013153346935828038478396980744468847706123721214326065631343553353014028453601920321129397210974495440734569340582453009461417959678171963868386668752206678306099811083311612328680542319831311863501287391362142611864484239763117295077545526338274939672239853780098269955676735775915260561641034256196968790200732508648232689343856252272184103937592748715198865627999303347325264175481571539376830867956887058523113993743101235881712136620475017276466503406805298931636488918762514913054852298373171339024294836443539499043868096755136561146595749291128061316453950179881094726587423445974195039169351654807072567626153937074398977710137694018008144045667933850579506071744889340530367802749940217805159414188089493701335043070639488108298053336330442544325745400236130313548901804226811351981258782651473490961798343883476099392677290937702042539477974550883935413214238509616589068107581783633632490946561038705471577878294143971192588711176230312685060023935951916961176915730793421246478600054880433912599228481309472340782207647363931417931633681202983704021979166444326876094730917019439485014807800929176601292704429324512667819168322499639618394441314590165471427289281807775647767788844583297672425957922026886249903772126753444015684729326429649505812489693547818172053971215446873261491203607156518006369276193330433126268808521785207478262560970018780907430387208507503449858407952863698937193281415969168557308376992513071576646707874909629532011934094245831413140688348247129681580080797635641179762450279576915422001524605169772336307577403657131923084101396214283306675615382104111926641689736873638820457236477309389236384621617082017521864830756060622428856456952724798583849691741083051934706751649582891169402194083589984191573369635555974501926911835727028861864100356049995374248399799375554361275575487910540739959677929748566421998853967673917975615785070306452089678068493971351335439021261981825424058960213399240258595381832312287455924620669952522335525464038734321224856954420956863828137188771357913325540970401783260707613933866625260677148714747816959182041069853619045833991130440817509851926244285102229917297894398571252008074388691146170905617099101970770378095395632473880911878502612417798719977070392848514952706525502224767764508866066348081336546183110000112964876375815701367092695894568292569685909886291625979018368608910727226351311794794002101326241893530788651341713612574636508111460647423869118388019964858025429907855504862306061561793109715696941380622078417554841398343881182483445081299546290411107317614111990973088073672016107449853154815327053898208016399089542769281395163950547873022440357603038761847483552446867965235168647196738472799839228668568081205396856105378578634293243382888279380545077307859751586727627030247248714338596655315146255011883472505095666130608020069462491747800561756381812672285468366699749444348070412552921284512893321094238438635691923807521366095195592679676860701872670075832412300072346322909365180550765329933646053061146144264865514073449411754896677342191172880883128783686312280277614424447045686829566707038456361162089556955176799112936621756184326005117022059515823094635618873061507201951991114139990265698709631969889927448987074710813986621976681275157033923195272106505989412153999791855697530039635573350750229783509233749938543600058177387296445630105268151082831933676307965846717426963122327594683047020528970835896388137815030868819527720776332872461033982185742633010401959693897340113324912092504009280702268233726654594690198028316550508140176733602400196946097494825586348366920935707148693673298407768580061249453522679622181680413360250937564673241580734137354805814288526148305765053939794196913084291602164054862513068002842224892623876856020922295567484294664465636684485931943544179643873573346334269823988833507329665629857828483629280598245186708169841856560170400350394237257608766237846342280194713110117357276964198519185445762797531615265019217455450747737863564777082151502540850570717646994832201290344340035325477519218999827190939267466627861276418149166519089075421732853045623589882444130953392284561907617591308229909582212597625112245459177849636206514425257542488148200818880579405729625274389667386925460219337996306559045203576165437823515179973575838227448331968565544925430543059345074490235623807475747383583651636435886871865625811621554001961678560570304425149094849175741863672162640125981820304151888063323444894115031497732689396719746557931002987102022147269070262412667094346640040991928738441882549977614615435888017633768071737351968962110349384530197625899652123378734542975930672639190888194937444288638152671556404153593137277035820253174077080797279261650206002141232162346525130966892591719694139033790642553485500827987236226419731083098076246811103195288969644113129116987139807598072091310408307616623287967186548390602097616505385933267512459610014947109192390707867939328179036401129703714950624657057105703414801991053354633288680001917128780065817289987039190585970189036444122860008676070473570399332728459210165630731171765756475611552138324712072960505822689440361618502428527108411393853900804366341466902091177661042832730777927299312908011809228594208336527901897584197222802025861408388486860706533747172838416377783957168949245742898182629703999812560294483303072447058100914860262523192618966956216992882676642798723856185811577332078140291909096600835294990550102416749547806161388445413718406687874397616167750168799311141528426344556071093086261574228113296840673504113555431347545816509603311763907069554612741898067371155569722502288582916975222753668807001192247534593911758994015233112387132033891102365855210346630846595101566159785478599129775843026247118549873926658608403369020906769123591787057114774426145326575697894350590025090865947259853544178402863969443635454577231785769392183150110960106317660821770802182420244542680500317261864538353027602157172188993422862096851684164854132652949014235119664278380908079596231371751386246736643054900382208457997890002992772868785177205310548571720419132205387764689420584920628856758501788781919968034938937859892552146876299316224451620729272699044700122471501219693834041795935778134992072450334172281095403434602474288177494882600463763071293219131355738027361015579115435050319240799517712980639729866601503153939281616370706547475876981274877902370570812195092532676496877859607908718026898448916641414019805369680866967760119801942112756266111310321855013153174858401017036567292829105993316116773972667825179539847952098044230879910552535754241980023496903309982271634450084719004911288363512046126506450441190398565513199604303872425201382359713249073509801950600737808486979224065288001582946682517927957676265637873289096692282775991373958897855819107430705391714889630034409745418421453920246130978847760602032889590347263862038939945304388719471289934323195295619095239893008585626403249578557378568208055369377146270445007246046254231526149863080137493396459689006388837345470531380067617819074401094855250409043098202932873493464611438805858927109631156688434306865823704802795041558878029649876547823134197440746215656283000360920225690984761001204127439648871498493474120528746358615605617784021932155141042025775225696442678718926903581278420626832862449695118540454672070290891569027508617100082059246579972041532058218859158412324501812149454617126422795846512627495038522785961778406220434650155189389569705178554531477688517698845304907856277094326565221116759713704139155853481071828928704766344753904652766193785086322411023368337801004578609646809402370721426032935950300651586954082970233500776878272316891157546319363447843373009761999313412828976075360355387208283960851323304034112189088199723680328682170896562910616603903303668912195041253674778735628318477116616274040358796806411622054158704892677441853425970264206190784895339444841046856518746515602299993467697858697868609218060117736381431293405306662862933373192019278082876792778985200038894220835719888434529449127097866858494395661279055986571204234992169585324315092202370536927147515238648146010168009375375346521858621945996387982654261945212120535842223496425176031715515375964051520881568979905432921192819906171846458774520432305949149567747176498655968331771761900278163506425853524948637793738155487229774530365386193488269639005816147320634983330084824973035276618143648722079922804524423792823200180654881970702874199282226979719791337149183018208453434595372347399770799012592495277638797583249648483977304969338165528734898609193290460403150387013529922011143097152064763873334711001188210913977731314368558383719053717859294684546329073103363225582934355128221389852643886778147898966419409423216736490860113908691613574137097790008660797075597327321259507573015178203493060951411128245197128422119927306187883182347307261257860052501736028646790756466993843053556136574582692744784358830166560818165561258876955806436148924482156316955822950257276575187850045048061477785733354955611271847536269346157143201982807254675123121645283108689711688891144746333910565126190057115735225704946292614645349402041132160192721026658150983226547248081972532190595843003296320978406338395256008405330934506227086636136869061781483090633500314723351144718127185077919369741795832296204121061915083188857678882347405576328941314844582090938249870876367529499606387134877076592009319897782315889434914907935147952103579702732327578634954389594993932900944959424322057551095350123254414771448036642619558083625224582865313879656195456110628204552960174055323245333719090681743892392567470387178886267329676516098673902732098448755499363410894255471161458274210064542533096981262379776941387417417187455401602874710225623165768220472721584726387253453795243434566884978287601969674243148985840550251915714378665612595017603791120646055216928057959490177364661438889015394049415400831496631671066861583754346482771239261522548920451340303104847190320733127955683602950257010746079692827394793208267620283544771283344566786979306001786668463307087386472175640539747203106684828925540762443046176780393292229542624897838253495025009877131412503090946205031932632794255080992786537040616452063570367132819980728802762246085651704984745278003526833601969532958649767979307941746676226280768564096414445874469451285538664389676649645199160819708225861479904841161823684504618033136246599752661735279269514015172109524199349820893855791088667924912794665490177912747275064012799724854109620173525856949008201979197920464946180437244784346145177984896301769898542860946092552249675314214930080203434411707828541702005308863999723064634961236919090078489746415325241648460676438410466404308122167476547465283390396150409299033805791161694705612693612635873398020185140115541501798640544376923154611378554600148520200941164314269612323530355676798620001738631667260187196510748505530815500957397024908908457145261365684229835319813118315669469093427107628801375115441376486643586999140451115365049306068228583148258631308133984523676687631613719611979018875364419082381588490975322838522887194539164625999518100420527847816628866364216294001958501948754686963648580140647922625361367195125025110271066178392002162494865951848076675440715081608255401011502334415345367672575774803605146092762460712093423858907391667760051814144271498593766437875895590996663459354954355465759949693586240772578028627289371773296452183669643175586792480415224884627353626245509059609168450753898319796979480688415542011368541285846512342593940488401414560803927608510617086102945330633885134141711000901408638619125647078943250103665613553475734830717219017380265514048981653244007635267105979676660881772309208073555373764262824837914663645890668024995636400211968171892127855033965227755309876516595300925829186144540136408920550869163787041891124011371362409824715754282270084526555136723273743821936293468023974334327142408030816365318537130490812083290259569187976854104178688993974563943474497156111564458202406323532914766370883835100467458420596640044878110591889050876556560354368266551663979802915214366939063036377557223461295022780875455254610440914834573275402392059371626127605323206920394844553475947853662155878216085193116500757170203796128611309441703606717585875579423731388443801378331054570365201183980765159867349036838841434640961539975770383937026326323780643246078720355993809620408849691362030377082824190962145432701368695133434800906660679811598522051926154525806530196090344137400206008294067975520041791343084942672046399584082650666028467231790202266481538614049404796899519028072073892600773027278882902101667235585396647612063254042928677729836318729122048034980929461579225622601676652849434386714237906556746486381908601152363220193415127212357943919268834577633648613190653035070046278383502764999761145064178071681704155133618366720077567844744719754193822887544643410172028593579057679542387190192598649609311416681284218617850326146479655149098893222125754164170506390533769662467868517271452682267988834506572035898881119334996508248119780546900784053675321610438248462425107287312534025370395748458880575823249897766145275787773069909713355855027435636419219836477800568851985519385784086245427959616005445597303896535307277707186423577388983334311729418015328751475383919820448321309557103827532526707278733766400812395921867959534699957250301028696179324816725293644262650170411724412018914254315335151333386825518909356905150839749640490922390313240779352667724009544533168667431779571152491570850652309922017591927345581760590193495805733900808932293476015499871328383070035692018328138386497608455525124593598004099701820048894232092941607650928082320676068004279531987830935924799242505558255466556094701233136429823314263431894388261948319260060834376395694861701182216854875368015345552711545045491325107145531606910614140773623576166148143206191412807393371665530078486459922968193425460316168505640065574500238251664684717915085443294349552642653012178529742510846960534380828352527711676213703110039107913885013966397059164461697491737083011173875844653448556408570069244186510184981689648593347718658167081774844492785538812886376193074585235085165456428574781025049826029788667777814078646947156202581768632602409894214714946330027316071645792133732690276998154012768159030239483802050273836028152646065698961495646614698886053737426732991528563144933676821385925315448491775620263371361869566928499362283468280428712267442520333270629431779165939682024438564801281709602979394040947970425330499319570242981202076729969453253864467763359458839815147747951065173307940785007649097234244147072901935654256220589160809809035509594864379734897266846892969733854616733457167883682256314391168904891261580793100365590852578802473700021037071309713350911043336433324510164590567699966436900996127375844107600174451278861868707366224774157309725349129261634862627607233802419719607440965463413433987939664736380979061487045340237311856681984550140668032659246323091307978362524337667974191128243565673511069524708585571485537724099048819023262760487645809826351007538211994298458305014744185319241782003083093858341784230475266076994156623959998705198941401985861933990950376671187672096652958634345768896613407056858654264802807483269931292411212104134968873883887496584778317132841295723569723518103740510205334632153184217252195637681272813718158144986114811357733221553173524750601374427598870572662946795915083908681303989884733550683985915041055590922695296418284804224384116138209675954134926506890641023365827989867860604171046892456823041829737666249775297137244530957419871197197767515125618703748547452959904659177510863941274665890678722010416070028896095155460154327277769825428358696949375064153755972093904766265156764674951038653839069988645438227402345312128443997031735626012732190576362070903340492924345113369631567152827802135380416176952810100847487765930018585361841891994262064443699468227719282084259344514063361766733948708401196254205466649630106953721599705340097611582280333833195354061181226083528668338652425596553049988923502858969417197381470524981011162595795392214169799443881082527253201177685296048226564559328867872054776964107906302414368317355980741761653151630680670771096458888937691262034218107897803534990165676743241736525753850104103926724210508215238725957413083288780435667346254699932825079938431307843283315957488299056506310268790789777334817265184607582542091830627371955097025245803415870765155005210304796748438702408595316267068100575936454231113736271608532856331851742180810655850365263580916362692832362969589252861776894906183278843864592032928087076091674299701230413930039622088292191004026424962699602735881975927733426600939623594802327232745985589793088961217601903483191150048390429691678687524176583804620298132589698631884926047377861343730893656725946997455849243126718537927566046729682162941293478630954454486383638201059177085726552220662983255705374685573365186602927908781890368781531038874860606862263538312772046149380352265756400139616016344837258133832759139857921330374748561300256395903667462062416065439041214994224220493567513181919607069606414157700756261661449802587410541453603981196990326288839478011567765414102550474167297465258920924038044374808687970396822168160304608445727627359098328369768836373391781281305725934885965139678869569949361396315796771489250756504189171582510770106039507999973371717796624900185152983352887165057189638229806679622988121055566617366231043011534136755267178821359623518432540136474133278633783026287417967263636050846307685253080275454737925801476184193293551954520258700252373862468492732404240030522241255418023657361278022237922431693058498854798280940814507978868973825426406421985351982522276308695547481381883557150246779934674239487073277003850543964610682029996724169865899590064696999377727913041271994581889576944042339305379794817824723498203305702356267460061212349215750465099402942736781896606752989873356780594990929795904591325286252164830057231528478586321724883475277862100342241941856916666944696570844230892087995421448855729442133547541285448341936375499107772971155748457999866040551527364157142337403622724899421513429916092059674746218633661631302199216966431821000957394824557964754330065815209531055203420092596539735633955517498295493749537325270451868340661573390448731262634660176538033997555730931274167303032417286886485609407551577356562166625756807828014495898126678920244947518651158278990354390188915991128246005455269705356010227435830749245702597423424200313061592669778778738250480959816454924515840699349890523763384662221000040880579443977385844214816364554775282513050732121572630444876234577160972978048589661203189890917428758970910203314877473055328887683153922148778761486167735881836063840918001101088680190537112271652258790914033900887462554318527945948429499765916459945210396668419394609105154377362511565645210384237326428843408330571830474621611046605187069716068554288629213007990699812462301904063839385289843761902003005492875312553268557850712814335024658575731205494024150594736953048447895176566417052117858168826416635036918410002962534702332577089818534085358833641892817007522232874781874853952693108240155073703386794992684158274491089007664970126711070471765295432662102104026781936607521961747688132850235633475718455120644558182535544522136501431471255106797245940245201191111811141867083659641378634811159298371233455239309582405077321283213397902564074109385531126374362966930189914951787167134024204574419779591011881985515525980482160883956208901912739300822865071709991563231788327482001992916915315656288753425509562571784810610811735792223582382600227675234133262915766789901114737623101669850436265517452058245673412996345185569818725816894040189782372171478028774537465078056100193933045078682929644597674230112446692569458983589942827190577026280410462074192555396169005606255268293811584622500793681899971716360879407928047835941761398611371805652371013647323666649258816793191458714366956171872246490291109072467014268839665608417365113491260190097361638369664536490713214207765230308963046598647214651724999557384715310643702239914663279998216034916335024046127169680637452005900452801655888806540062552694777215049299891031528111980259385347228912578882767715867198258337306266186367138504908834129821692435575830465198306262303512077415019455661109362619203017825616036502449496718676114587910979218139683586692414189010992874704482522023644487252766159151875366642231338304544396132841439254394252966255945203205019986634257375626977101285774434813159510818156070670617779218696774789530951803986868054407111522123657323623156069163440196338572232894143768534787119742413218701350448527108235754588240754630973960035001608269479869183694688734830660888642183568008250840182917325217191775826392355034750601345825014408850647524137845484410625184396490611802151499090159345621279699562349247741489813967467939181379391246160074161005139080933899497265680262724595290028062564935826085552769082301913514034082995492460743636432703582909436246398045944096002620830052828639244676219127765315546796111255785157140926517262615021086450020163974029275659499473612896384371070444041375526170492692208921641372358459188698611544501158586819695561951588125576561370499549531643177845628702861284933561408924483533979984908589614456228732236160034942889564279038176240327422193738957707487832405572873445353112089437460085083268113412745175244177151745010014963067346705571073827041865694053914843845775103206788284136784972773440684350628820958545864779546391554232324412074890122694577013872276334531812004572042881024840239710008151229331679427146619689934869958121482718107806009615591816581835200153292319515140273136272182531900845201603579188428848160260762103237608442118947170426934567293201137284153967074918748067841660123170772522457862751991819031702247918746121266874555027712220232096923919890264077982609074244365123030187786857045945301593754616987995803450904475329696540535061747854891213108863907384961022945126879751679163824561786050589190729432928964622522688984644271317530870850108178015540888974938945951435455924961870889788622534690151384899416076542441994533660222796857262690419497652625224292857705101842611632804739664024753939672942283017283763102175590576371060135001375029458763008102051521623486038479800151498905211583125800150838223853138907115817780995468760017168866214405189204951433100133599020219457181810917395936726890990697687857772385624201588078872512624801920646431731487245031592391015064654196239911702002662173614527883396510164896915121402057152147118390152112729891339636219144923590922927114086988561411525160450081269335400453967231098534223317238723057979750928307891520852581832378221778951263451328690502388817928943562343617801724398687339021254528181938223533590420833242680423026224289069083518754079508349611837921049745183744138399704998586687136853003959409950982029916997672577358675418691297758150748378532989720418341057625404444656291686688003663891669575386451098668386683665429607986917358091946596117678996508242002988123761503168494391659379374261796897800795817380843503477499526351160419780112954516803031373130861849138705068982652978276378582155376477010080016973558229383320004194942298876945572476283169534162440152368616765260545982380613634951097255864686426303965219925354543389541413413107553529717595142656935499432990115934453929046244612977718259294650992809583136956808646401740304445891017760567318062426334214138174040675835955875334674748247689982807268115272408371973440967176928403930412966762808749386706513354458772291392097327671404754755320364167592876576543193181015287077840968098529875037659030688758006478828421573071285065861814342956325584806506678430378144693118173899729027454916015392623385101354306904862268798986569966538480226735281600767749604475552422271717412407706956113840511687001990915976642453218309037984234570757146125950831042779510669295268763287422572781357185951995729396037056747660978997079717619252092905197459883665360904385823003621299153597407234624361702343205717863348834978747530791499330667502389826505962027118341040788520839707438053636475887254138284828438326808244247496105462391382349602953711411532335693012228416381207207049313723481970632739611865632331274119773204473647301013196289745958515891072199575174006487347223447613730495879738297603245910796299507664563826740207558327583941469821120344889078416357558211053659228522599664538517551951800378293295832320966053289981815283861610132999136616277044839638534479841891254327634033028177283933935897741861494120333312764384254236821839591060126988870047823359586010800594093153502184604977184579257053141706348007437666116593849253111630884851960669754570244144213657977753494514195475516970145383497911375470330985194629972763020211101653817049270320641323162313815883354951735145306582938008935165776970432075940910903927421258006032171071208908713547864800206292391121299957876157502590253998141249360100898008918464995720026577852014986816586839401973016369237440676477251443876688189506983305224640551177442691173974837645859115583460222118891691205373676282718805525197173898697246123665132528843746308127510855248320867147529344783129678225452911834210636965180626575483304199238503362825178978935412192883085211352563960006843948904814137791377065780065518079718184125292317119571967848158327793536704042810941459775013607381121300860739200939623820935647857013922611869094177873162583104069025406437038723291475216741531931729972401802224096054277165907582446844303732615564410852992037144352712617271545083665818288486779729432099903401472053549789986526116623107580433210267819010449532576830954555943109211588596482688839875693609906903978317705714554639236708984935099000374752775507646215021707829982047018631338847129915622110013975266118340342757116040100998352595921536461488088249543898418697080339629099207266550650395296171903609836080380004626970755370925465788039245400372746270854250930599479672814458817066671988000217244388862778379730938210084022963283932082564429005744101222792781404353097008860606849566821226929852593479996836762428738786046155561885744532148280972892183950348418199015657249108675209720083355767340232248615206185130957681164578495768779374047089315599199058912830415669853668044281633415449210235697075360640236941159303978207705268403808841275725564642827278509623474362832285316233875652980992424981614334158969402418780777721290534724537694219993408477584524399712111605086435936758818691289089380979922028024702197394628564278986089483519868352681458577621912320932217991241261255064170240148058185018134173786523210927591487856681753889866538847093651542617011225958604062078728616467266824239386551596415258456836512987197293241452437893506424064652887811275563587335256348440781726267698538651751964875628888452032847500773374813447804627826178498992244143663131273095192756384542541208125842194004151002231365875247349512989656584654752285061135872157036052564106064300294221021013569028681949649874611910147739615594046470724292844628473991042030457223935736388831540689096167808439700145698182565358042988564114175263723207412235668625762886994606734551797802538942064939810723846357094858093009565153547272655249481664771040030181677105324115333464863176522366845285983243944319632973887997661395292886539078141889483786002070119955123489336478462983772423855210487791163210414787424282810654667906029610870312084318127716466534635241948671974329043843972747826771517094316021378528670173642703141830862344162223935577202955385959982228266461576484844130275504605437977331355951610388416119754559293900563751017814101771613016126088196382149004245268541001373150908872332293031253919470835629341466347275389568409134437292106523668409887986238910791081419312422660970150944673329086770712481859430483418660593457489317368265578261719039251860093719548426271008478307320858229245847657373650917518744477277006049193620701247607009240037194295845176056278121536880352723197739529014986246705236117570194747962306910990453885180804142073404498302128523077238787199742411318172396494893161510478857736352007438254981731690856290663798103939402170001414447532831107061910339500294562804340634241648868965834772335539932415744953570038601980307067558966265722320700358601050436590665975673027282180384180378628428858298809065404155532728611684783375946992633426059630295297835697340368686847325649185033013463793605303627801181006911017376979596268338921890977754058069690352172046705769199689679057491089028027120786623741236523554357700541292406336139863051098016545330394071301835556628730182468735414665805551364538771318705636702742251630986315356867017306310037145445860176474275143373618122888929427421940083660629317601990938488389602130100748260675727975807520703150815779726799022346690120551687286000135832821952511638444630783428048680457097677158695201863350320935956114072710124792792858532322529873360890104580070591713190693246421135282859876418005379629109862638936397194441551722740227091457510017874148938737253851254234178509665306499799643109741454137977642159580210632776944472998152066803349838864977523089394940399175978423935533349495683146725032013298644543706600438394265199549938835424372852415557645770263924839545953347666521310508062154764424558403365078269545768260670623144197922256095231737259000771068156193616678036524123437788673860049023882295388502193582453302012235480551910414620905335345320024263853326552472211297874646568786458014513584965193047905758994514605667058473233421153032436292373911754302026104186668633996792722498431539269005919630461908637176720520342781450323735626076105615871615849802596504052674026684942963006508694820904408510561049611082151322496137054786390221615632068800012250972366901151152650807835211283131434655872891111626218881838164277082911478990774031318064304505400369430559351763861043623015250808699682173251607371620303817494893443919135683047598264388503805560233434231920981685458548485269343166166304902569975696302251578543040664109893069859208462721562479433259151078904379043733511884329902612882021677494355573511010969345192819317279335618173881898193891635556736595539126183169976562144447033018665186936272134599385461320094021790866270925023864800180302288733899875930230029515714355185108464137522701736994232380931492574510619924828991295236043317918641953320603714607255825667431171011170327520239807194142952285175874064113334073799300169931967545608936807493653991831515132268659616809609863536139601673357911803340690589582326969434764241322160099338791618287834258117748590599378007906265483485522874114800726586943815493003608353992952010411615209686250404547660939558903681531869241178279927982335512414461739783579423549370710934154333443272545515566641879184435552429627646286155052608522652845361535166960460243582290940630661209294797905425717703017736886477959852115835038644131332843932897921007716569202851515618980507736304856408532682290891731772175128571103860003469932318912635689104212561713157490216937903379294945267317241303376785636926929490159130487451791386492422208662815115147929841075261209375690064927924978293530871183820951161994744793695461882802572589097566270497306826624546909019487046994558490058058448206375442349455308437891240818021836248579988119357625428429804217405118490765160164496301615172097986481855547364746902133029376169508762060636260137126108179571870359800225652930455748780573498696344643432715473450877972777300937796446379044641026124386027044917842092872036262631337017559392190066458005259615807912448652545395931662062669852181640347609057557710218863409808860412394591060514762434503245180014486922911918627022742698395577397929048834904769290737033910357467785121379930020697890182262064419871972679189349266026778436235288402905941831592190498178629692140311186594799552063275496329114234551480541220918554874288394324024704269420429545333551323238942632761487973114177128082548212191917535343956514606927313216397031602996936464109662937569753423875113998380280053924924267563247706090952847645710001174208841984459483992977578605361104671142881717654794382230048085085687824230387040179636088222811743525074887797437811446271568979749801545436731154053049593171671985168012365508125024783140404609718795662067775879120938160429992700628284915675900193281525220238893891120064732078854879543792012945621796954941762041593134667249163204478608140591881879561281289480778679664221752437217858676526041335206775722160450034809897113390250708028863963831822023760885653757829169556222029869652111300622285633358960783695688956685957306529057962052775335691565597368965200483848549584617771619789629433645966507644621245995841877225097430485950482500496332572084637799745896076158725676610440812552505575041695731034808378631205279648255389838303155031072713312650406489713389193524756928329756930940378096747173719918950112687751895684334035923813672564771897786869677453365304204464523898207800103132134514135034194450026275724424583187636308558546879680284015082938285453562736697575629241071032472004536090786828409034726320605473335856916693575088302138292642207858709342397681800208989507425779368542773986300833614764639432742535074688970109122084929288287044767662966135819035478577634887169278573566180283177677820400911214207068020684365407443730118422842873109940776765837718082422367103382999324540374486162919962548774482119985597991065226492013300973304402157860710473739551142497867529828830504913439335328038230328772403867732288256040131378447395136719816468223217607929953624201282197389405603731810769700795814905803776745279593109391657539014683800859463024757677732729668599898807601279377667290693491571498369625603693473820873676190146898804612223421525359070580318243272869499766370598339559458498550102403320077223397047895431637472561950492740385061455970405085223391163934337769890648618345897775849544047433934319576901218119543737946456368467574350486375716266702977582373495829140832630083832308913504854222214651335753946957784095006398525039349925232724553843748231126331864534163771565694549405835713199586254719385198496841534460583765181817608674611065132087254547850377936404360533867150781842236927927736476648901742595729929943332175699039735690763779227165221824367435332767072068048725005050820669578518101077670003167016914190220221048489772514115926056325170503881384104659124084096909090133079630496582155914539047332385898296632730979898097260090919493056844891212876712535446819427174985106935637276497221577601991569708411852425641011387586088689645740171783292946308651167691734545098141317195506838545649549224691233793434406950463593568268935203813032240702209966011810211975586388651884175173841604202748441619297276099609484991149298761223324345361944956576962085809559754829421132469975005173753331839122443590835134378470862241293337785471126632611504391829992712392298328262432432318757900905153867695887048901689779227222080293082360711223276264926808600956973229544471571729217534953574274815043418414782057801174117265990916194786972088196166882505282313448935289652570488470456354964458556981058203214163682240855044358968156855428063831866773316722474125647265367955843245020569983654633249104572378758607547153596427806120504991195697366596372735743356231902117259508434189310290444363203468170179364928655722112776986091613082776129722956367097526731067550141893638320898917544442644138279311354534030511299833268245963641368487393122783427171802794401754638154679640519188208299159120315757692854998760359849404999057293560835025621261259311526895674429853966440556916361306670310488741293836562186141070437032579132882843367076699956289847745676640466583927084408678475102616733708166899800316165867427572062447030275672802219884073916755893500028850690923354729776215147285263431105807997637172068857155834227635994569613450676381886959962263399234418407599672489410434606000812727866989991167395272655708722545464310820073567964852879518428374426531340137368849115427598325600047534609472084097839879965217332120371955671417252818739206671925720794335182035951361871056367976825474919277594155058895134379017379076064637032446413355629935230814703953339843672690179057008788370463351942537675754055809066491021145035223251051246674732199218705811644943255093446673407932991328354615797687582674230268921544307274812955323879757190503051558860603593444316317925697142165868148752534737292866354315451346872989670801599517368957023861745576772052269026410445651161490744763630032120403551363097876582912211700764354251547696702574433822149871073132363979488975431167940709053996041789594515152496189553517485619127770189401449263618767149987951541583922229745310776290833501849288404840791999606360711394462948144248562978159492056178058073620705837119254349591650193194819896603998311120048664122497846698603397733697449103331635233976579386403475640871249585756287701468435887714386973847781563767674921330617791571341043594377721707187933803675903695953166863606305435393820036005164683677417817005026400244302023590772462190203686870265654403305840880973433289048772749388817568709754331678407631432552311520475473020415998841488650701846332658195504000861522865433517582393606624953940531073701009849767279841914742375552553681588917151425060706985741023798107776049354530744739826352487061993494985714624073324541951422978447275718611524971809074685687447362519811100946474167203802398875765672729230531376967388577510542792284860461454023570582151580558907998204937667248404156309485114973923449050900058948236442758117254395468445908402781516748373875200932160116193195409959414123101312994870670047607184162586697014590224156213019630701263480509818325837208532023863343618646388364791032578027847837153761480206422127123833252272773648790942309832205832182138950872903834310138246530748033027278148350757904726521584529340354262424738196163475460852134033399339931040407430930446360048554459038428667245837134161875634475672660421861309972068252289640287380986424890458749356231852044331631333030026074882696716368698621363772818902147891706241641758161537856423854514863908536682688166916324661844452057417586380359493566994289847919952113789257479748123945416749533765270539488321644336373381782928930058520882928111095969618231561392209971547213336641231961833670986952396206767093919433365784193360979077290929130856436329688125958183013650821201395087798079330897487025512187707877340199612058901848063977024266404681569894577619763086973042820168824085964980732064152930639748478688845073389286193304499102735931820884129724537359324599609981733906746083680666175962821581624276871425261931594775789085345283932818452487651478080483275369609031373451684706626940585601559603222230789880248404226781712412772150625201624772765488107517112399477662560592652468239138805594058600942702677425097411287628190839351987380983161754800477260449955196597281393459005501891481071926254045474317243942059036830234956258368856192809035761310509864975229735842298892883018105267582544925210377306152566660819751390664643141718051563865746348245392831890532733050993149747837050324051054661597944456106493108660308281366483023036135523534002287429716262059930560132664727034082460196376834881383626212534917761351592486206091711534310155724497294446640718498028414027290418835507897137429900348664670202473807706847614076812288223675815802881374084456257824469187643580130583985810135259705106299263791923812542794113451344275736311739760380443651781897767404812212501134981217058010638718966976965539962182252508064839281168229322368668777760622226727729439278143694933739523688335660813733406135473944728190253143253076507045213741355700881270454464724513352247431267152816786272599167804331380056019546007142474861553490526248783275653888653330333159254113971741599479691305445712951667031597231007130362299566745065441815371557325483874629131093674362291890621377440656274062743241895650356422713636380340326127373004551481498501619741870573035257847886403163231926722761653689459648461333613817013633685638973867455730272974404229649934515445295066349945940100058110131577051966628413834727810336320644281507826302268473483688203941004027732979131572516625675043241543435506386483371438664810875676476241746313318890936046910790406468386869057747470116215718663241277812854196201900032236212277170503154056448435256498506556093388185701274695494405711462934786250402361067392865692199838571943391039946309920964147915810293090780157340545876750551792694621862624951255705411477987718394690053191255267194827268536263046931952591871104824645030623540855665466645344485128696470361489541659412974225619622340122485423717499968624206446017887981330186195853746822333205826745703599362661973232165462254360714659767550529643947758872958694719355586683004849689381950527165399443624985697183503996118859314115565456510952509512094229272367411909472843242369563739741179306081028698830689574954093982082461809478317292427661785847100092411644366720422655648794259333073030795242970967551789006267345165181301796831057864413950117544863347082568201748917228926261004311312554926672618762799760506443735922094408749429747776926109011043111145218341146503933569060029153292669394758633376568199421166986982393293930302055172138028360259739840386736466410106356453172700388087473160685461182180348066520671505531222791513713279832377890169066288854148219167719990036575199962505481974221455396021718113033473588237307393888490214126664600547943681852291913723165870564300563955555327244110648061261908914459680495526027193999919154553760463105457720357499974739968256755555102376932554719712282444174894323851801308635411164101969024776862637949954147621562615256802276637185569533969879153256210221245613171736044653679619848021795027815626090372989834282329568784934430730037305081798927215605087928190736641020326757744228450549751598248146828780720636794810559052669939586122761461709355449466243911946299352482317977692294442787662030624722653207636924270064894033491927860296846776747400279992112181287520630339439584854696016797071120165389559440080336855540819308522009007936120964705344088975077833952215130000307290360434109352130508502203124800233988319264914541199812800516125708271230979034099008642426444941896295828870813511002122814789276651299354702677281090750474350144819895039242614822436978694361835231612931934591324446334252766872856594970432973707617616365503934228135958676382510613956638477359550636811663727309910086332768832466043572834953658145500927486467378436698691884450791698502473593328761117728951393449232474988440810145489020054890967743949029078647655874923221012327168943695627520157728172341554250739841952391122675389442557080438260715271393562166272786433223525586805227384251671265300949600610490560521328539426335615150299551784548561902171968900145399305437310811222650155980914078406477463535805003457280835367349114827695981597795084990993209225011430625312690868799061509342949139425662839738115913871998551561799142483454524358736211849799835870895739720386849442596937611222561090313550248045912675122213624916719037931894659549513164259814995397756944529405134199055514830338388392078900551781836574523944411709079792351933022196665735893771041354435373959706715878288979436248861988105381386689248993672575048990431035842005029371188752593215608302234194158122521775137870619291965505960366984508233188024859206919559296947027456918959017284352161969992731509346474350944760477473510016734716329786660531370963767433645426036379657259506255320177803204898399048675223973878621538534426845850871230531087408057987923305183488069876778741109489410338234423013538691688035233868151816219009569822454735036752488599354617935457527207226772398901038103860933671324840210316418499631207620287491268086410452209352384945985948020738538790936592685911285616135666450273880902051210759633638134568220114024183222800448682719769851392716145461279821272553147268736160312239741336487872848347890285253237128270100668645681483031408172252498910172776600000789243691782801398912918061532527611962929916784333980741691007320156062380752869755093033908226220398233621860683258922116806485111521416398035895094811243165077349351061745459559422089947302717468096884768155810612614248383318452833031619411893133170568376549833847515299931835569869169787189501123102819920743878224169273254108324256087216272119785994192632081137542274227466111177462848494678744562475364122841028847947005726416179421628462143781644674546677013078100613586826962495141672369708303773390222373464176027798065034952397821454588413342174385812788217000609145801375778386043031900952507514100985983090707195748516680284858277533758569434249499383161564537353249284773535905377911268688271272423737668765142307388338647687957223531684446072007487303455792190996175430540506935545980082573172362320326631605894816286544626853822745422014995689464746423954691261689223093556039001477359157317311618974281161557471841918012563166509258290004366389177852751269139006017086299760756063079554606322197134749284798258002586258920661887941154931266143409877421229133175198818253064705249164261048688603821632228961053846496778850728797626864243242979605102490011761515724951178298215440551342105363578293456302421685227566996757802602871062379959593811369235597569075195456273215791310371815300195046274111228940769734294782503148733588033716643183683260522388721495856282098169338273385470958349392824114259936245475794815296794358113965785414101583760952705158655284045650894645050442624695206795659683987448980302180503399884345765499222279468464208336232671509902088565402296556534814284298747371680782652426749012243734386442315573464152893337810267536676605800496154885774490751879212536191983422323133171774921822056436111648749207457259894686830007904111929042199893026785938588405550301709676368496878567913042839522660028991049088529603301863998652022112176275230487635959946137799075937841477523431942516346878327627442041547650366898870679160264060878507071409754827941185389766509077453107030058346777742755126216115502306073124463583732365461899433243277021834220338548047331102121783465893275291019226364633029117639548804504796503022141095481234980997658271314481073691655558899081174082905663772515759419254351601145249473639882240010934016154106263906935129858873249052482558475500890880057427199578636097459438264639857159790256767958018916984453872118437446490294035008262870984026093853260754101978147063649741209748037120685937076417587609368672270402104441851026646201903482069795958456591653375363850960982447327831073588083742870424213528551551841946340841390743891556898309121092545417551459414315713559393640555807155666099222314120740114056734164008028783880745099710598193714361099881106948924150741555622331245212810754622889717824133940739492567536729037076875437796581826422598101847697448740773200675849249034617438356487154480834192233863544963997529705256123402767407831515096420635305993144989331046429069641271577206849434470778184709132601860338430265548199067438248299828199349641771472079039513915264587026251262895803456769992637636294049372616243574273671420774539526265829881686114684116695362405743946033854681663386775529791446231573081364500096927715666681943777843925050061662061329028391363724748916285673885082059869767777999590602066220337478929444258576448819969732290753340394978559219996794225765653753404198712351195461836430341479454926917991011777261678912904308276973417771584163204795362621802190738174424035765543253485870905868293268727832306919053241581725291711419573647269984740242213144842265679640441585109356799106422719628076625326565943943600818324451238289904757721349759410776057462998015104039281954924690990670613264172379273053980363243009498271832552936973579656779582650880455495378857296866758735092024286226220454483487671076254629470008146124364419107131404043660128703534959711134965543850182244289523005794427697873660835276080027892105511660541473180919852546285989530053780320314998057201783860838660111630373678201596519648086394813635161957417087529132854441756564682793844890092859070351111108847732583281405429855918039218528570651726661043337202566343654434516251935762771679445155091374080570786079964268500344243479564387567725886806886464495041649644464700301147730719687333956797011348790505766821058860259193024665442705837917656642445590037033036353921496287636080915715994977783689104976501258748628934629742116690065002985417860604550046857241804118813901566887506003758109233398020471270184440022624302752390192177274352397463821018841896622812508512339901120550733910817538689398323803965352512308747775668519409462012077464465617424274776722348495083648623883901623143476695910451826050338283158057881517291174447859232678864750821543370645670375587839930187766924390857107447989921415636398102237454706614570766218862637365909653341746869479422671360450312828056162190659257375680091342543287824669464646123268165737445538348271975250315332882286623086163005948734276021104554319294878135014214651113563326610267826436065141871484193179502692394371113619189182200367713521498252161811635193232766089736794075163281775411170669836380951953921813735283238550937458035940559424381057171635641921703247869619397908861506903757454446469203422564545028763137071831134970644282580622572806024214848209949802830762834684599966472531855210205060023173696505308473242668213104755199306743917855412250153223357130332779742368212211864019055002088199277843986639864096041287434608512241132387199860267008304261916112359194906960198554737255862967837452801740274920367981358979855999133236058146037166273228678155234749781406670273915451294312186783375027854684650662212971504151374421645336562424692520527334823207223332759868760140307390427437071428398941390833723136614627645067159280411729566037551841596833767771302961667343129031036490236920485036842650032844821978129286580244378575655940372289247275380583202277344159458457013247660044288375274311517450752402330994545231737624842748383376183883122140535110290491516381960364429019436521371269401198592173011413557145281203905533170222173190838620205647665757357134240522454132666521160111166128884522534914025803395660092488399923331436004005410775005166822114725529400178759044573266819454688617455937625396631551917578825261879429698081257976646198546427689476363015344695134777165657785546274108321021525759476131656600399303510446030424516486513813174536288914716951819919140832879011440828095719000337654882766998821650921463770827648743362841523452695554056060614373860237314732525897954210529323505791365816699989023727255308495425301883379442560530941839589869302619885701888285199546899185882231087686632290278055527269671027370365098318806922703479957770373159621387423525366819804659840524979548259971064411735139269449104070158182695090907012809971580784790960458116568168953120201173946937126392155087527880420723742692580002161449063563895437793813248660654831880059112288630381680523966777451301508239615763703224622793420644363255795464088030420984563362805020423622908363772993830612691289475317529050330176401463280152971044465774154963021771464644167606248057465058263944347422647842280065570690332590533698841347895560321823880974001271802437070016452814804738876058810103371496732040666968382565330883865677450298764796693719505065146098467705772377856530043339486199429454404016569734546451550795550565953014158227573131980189629376186759079019745696371451459454428587099356922134280059433243124922310857574416103355507042088666496209372480547206324508165763703765730910254837947125529585013420116630743159464661658812202011099846257526418029974021090029089337233501367067240300080062643310005353427792630757934380679688757961213605752800166114876277880979363959347094947645567282147494927747237836854421161927303154633811174773231876807973764925855384056663177696123569204389006868258043665449281885002167267160719655115930106853259819559873740075225344428526624338279961212272857287686750710737034125862025109110059500877410534330341120608352979716859519251584808509559475933280265178358582864197126711982816361650078468733653672565310419675047925325937072947889987160153195203011076471915107778695682946494893608682545636447954748439715013211513834525384706257608448085215026361477798137566468923369508119200235120872820172028859188811779663981555198860795084511061707526717862982224184020152496780873484339561604560737691977110872456854670684181880305650626366526122632858080502820892673205067378565282055434400338743437711552456150287731855259396982849407407466589112779235239781879932625412971492069286694494798820147121631789567473052973090053067372001574179758056507451120389017082350620799259464527839902586345159681790866326684990442003496184658668104291586058181643496070351005786113887876623123743048981028673029158477013900555649232182141881797258144290210082101080066135068506545823273459148598518730757415629579234459352512534498663145623180521292312019107564004951331515036104188082214490723338979658523873598695932319570978066200993565997600221667675501616058483226931164306297672318113868690786639653373583842135358998630993250176314246584571333845683513514728649259849947114338763832930988937560228760323635240823224792962697378613757379230629343240791941264880975235169439932184784202871122318671500396743924255214203940979900496971423678197230504762794058014277025185043875276314782660665623181738108527513039645661786602314140294665250722640601848400156478754461494429350480766987210027317161842583681617985100607102929814776137855341388838827812712341023337692581584654195064740066424833422921975229318876999946955711491406708241248368621756081485019441237856704442139397399840852621326059515003107948393981525583245142575066202259966886098786716912497424136538720234782495524169683495637646211208851694196571555301950749778772711067629452674257188110737065324208161628770969575102388203120057576484150918009671640845547404604044547473585338912745706772414601668041430207431924646593451342747971896242238304605762344405746380562938790281852344599614341056610541941938317844623487265515337955366880702219304223243509046940340576388520434288204990934108561959861032962586371958120841486086361336726069107561995027456017149227435221859920822928451857822893364527988347337699591411446497716519877289076112253014115427741316526962031650207805685277853271526270842193242499306452480895773865708810718484537952600766788993178724191571872435175686708893246553041670933047867347418370429596804226021018276157576914994307274027102070084538860141841839314238250833434060415342036903140287625035707322857088673942303589100454941016433074420496896558549904686301672790162351312546482165472882983928742089253616922423755158397998890660889388982646177207176790789404730774895591394519702748205014254075578734121558575390578400044902237937774093282880355386653768557011084896214396717647548222391646626767787764852687642134934062462831299611921264882695920691378062304510244572863963409516214933600974732957485285653197758960534733534680963644059259315134152400849938436142673682026036162813771330239192126831252662160127321758845760191630580984651007974238259505305083039951599779247065021877173159900164426256300062711229599270142407932105107081796041877939627818447147116858377415563117998930500671816559116302261210164866053212222838167728109204111658879843738691095373402452507072052597957484792434012363582678990811191031298410007576864342549674554972314996000602190946982649887917311928385499385376451320137934920150734839392056064874994463026659575120928518970287022715243768922309187684051496061037893988359779295535538107123630849566142987414776302011699535500646489360126245892036181039609196261442676892006639911609663467928498256501108083672505224994910447759900182835472288343937034578108869656935641914506193593755712172229856879642872282055036353581177007528634959180621622988592044760098984392470022835621630367543114828224576703542807644052905729344460416689749372338762573856692508201038231341962637866916023047554374125184041856667343971724390833760492801588740504546828628571156161287384996463691363027862670144475901044158795686391858331558781500899900503291364556111446492885592753829259338718648716086311394464487386669935792651766767258797615919257634566236001408149793231969900533506298675644346472872202267408175789351032910292250289708239436102352867201121971871094977189411518702083080027970199159503832837242914636791572107714528840610145941052491435857211858635144959539322259116298718796043641525414506710910705283748141307282627180095273671623619937587517341405539603791105439870558150389298058681912539603349401671739837067927866299642875791936911361195127100831757783046789225438100635529241558266556618993618881911063831250463567816477871088116166255184576009033323915026966336714274856364393215446314062314477199243956307310578989960202266882643517945566634624086328837771270483126914086996042385944743827008352514853406062479716451829097123967048804043768307891996149024854434063328856590751285907579897034343565996728783556009900776127420356298742876543495422746153961185485616237008176053385710056667187611510162070563949716725111957986540290710763529631383448990857943027062085639815364938462033018461282455199436671600621266730891886863828090180801620091744413723859997405802213859558758464924218930939496186402625127743350515439252065227300830033105777996246851144362257832514420913741454179984135164376343747208283039790504697399081642712743937905319518984713326887420862655485227941462537567754634038602400873720728119108020757059056086092321653043605400625266802137256775451052118054886990520298976474511816573441002060292607629104536189056406505380993037358493816242468237121586762318727950785948118052731342940177654168692664209853176560908815163208079510324013797868518023260390434256140879401712780096530149045652345439112509882355757985203046528450800873967828051834139305958954569178395601192832720608275834180326749483380859643027002092371015101378564596178029687528504408875740363023115530753062736396542621856877555726475110588461981236542349721997693845036112008062985679872007237030097482951671124387379127916307691060140210925836980457779279756570527739848611445143496730295821992579358371277771311410546401023767881007785677163055743404353883867122802610465527714244354273833510138846426109492801853027455196032452068641927234313101295139926999305288262342866230613238865355809084107794360359298878957277017755575963034909797822061221695253196228058211778520081211609947134671838133237515670198751593145444530465279783423054046943146754251704182358095908014167795058273112458416652990782989790476751555287260438037604331526112553531142632469359754379756105779832707696741765845794163702489935079626402137319998232687100295704300125764542215313878031893935389960081404390175712353054370654235823816541079566969258873547889967972016369561602989932495886532200746349297067744662690393604573256513227096629423142089067713205105744971345287100509209253228285592254573119812852482122345076474646936145666003463946204536123331194817366061083054429989222186273865642467814348957199849896519755300343948491704360278650704841995596262773962729414874028257505750212758484118287274774371808439599250533370523215146899015051254168585918266333423757519545894134511164019823056800942473356839747899942923439151265889252026366280075231718721266761639968545183880087567102227973254690375018031866132022064468694259167882672434229694523826781928609623599901355770743142177733496351956263087249786549874907484891352024235129713054642228785740482596903675904500603474907598979124523158595042121557310672715544492159009580053589719100520703857457673254761407111427738296153327495926336217510592237810731791735339337826908509479353592333473445864332370982765253759352212232613868766591567969291179025074153656655954062688139368883566904011020862442674439605423958406838572251782335116835508882426752842591776810575639082424530565269850508336036954860965650202873321592006772291498902161893133865570513460638966409529150792715496788812948107581913465975843690955344345813642674671158870038417415572596625833818765202147144366017716388895798215896262483852600843428474883069911009741080070608424360432573958489683876772026383284301515330290318069806265242743207279631699111304289546058328179863951536320445751741349878846899933630560428205092691036153181465202121348222184811436493628387049069924271302336030779776833402369310498814783250088535473274130481226753485063708604590574973049274595675235883828326460888810594309779662925242935862859039924437272040861240740892813192138178777040830078320991674485522372530433547322902443291240456433980464436560880131022992927079538230284454851715990526336742204588739316369519602038532382882251879916780092312208056676604774096580772516979694396796401769905304046452848539293515775430059050832421779014094343703214392633455108488231353560620232953609819014369652287369654976239108834486040142781990826666916052564013695769101152520978165377305410239976739367837352157499542216801222294299897106819544254568897575715073997213770131723695463752575485269261191613569666612583140918762745793114677785074457686781982082434544643585584965416042046851486476578105737777720726736196935889627814426652391303165303981371386598545661472516067327538886703800820477062268481582046085442652409275312361175910689891336668055223076558155099050073323403740078650739312834204583636778125066593555535522937007006052373053745098437047260695373920303181944565048308588870492737316903238272892130291793761661059434757562469348376202579470494113857338064178301216072625357201895467110817747717159797488086936296444537748348091499447209681546014383295930932555434624458045863539248002135164543199343969017696182499835758761739277863975421608477757534469553864488355391352462829042818393704208279319532871171854655036034494224516785969161947319242082247496485511068574854751724135878501134661178837979736539573548643962543181711486188120620735472076221173542738950487891026293960304099072162376431122542623636435929278546055908576725042204894154461990103776755052918459096860781043986356587611588713567853145418372191292689632329332729656966241368768426144792954632108538030715721975834706166529438578267150289753097283595134001989795419089422444463622598164024228774166897929632910740952355625204825934244914936032159442375647740797548534401356625788506292241937278010760673245634243667272380634641651871549491315539701955106021147925135739063531849134502214013787334471313327147416196358755858928245024036691149980295861268312455281534379437510814264659130003751268970606968713511587680183846649962833504123526271500831010839238420437908512259844626265914332314381761898237707805054055723449978633810216869852638906317040997608664989172306856860855125280835585527931219140111164203950971428983589616953500948913362329835824617804695542552212721566005808079296306386054353884991593817347417231609635239849698478484552261103572426681212158480420143317356665662971683586956497099957934747581918482958129576399154657093570684544842082197855095281474424998384348151589220393706293919150838938855056087524376775535094928568488870099380376020379107170276529782782594684592688190180494158087955029233814960436142628317735590667935776088118264163978443903174447002651790477235865489221734318861812346225468589030351213646341757811712005812684034715193661975651995508005857060090233738946347168890251605464196880424968414329038482044965045416819524137342743849915374184361998603851122704744635959921150776667882732177444760991257773404089943314789772950373972489848882765957460550872996555120189238355431819303304769941908872072102687414501250442114691140401669376092854714295150594139124447841754852250209704380252739819065192829184661169271127866918622898423544083819901121815603449647997774840409210874750932858154243405606240301896784405649904923270146240549700671228466325280099000256285667632634412318913050356233414398808904864112816733469651992925310695077589609257860074526286278369424786556552761044741029299996593893989835383243502031381173918288754038906881513959566146345514559081587494301569501683458625040942893550482924553858750363856182836149264181552757874102320861355528738503744943286559040152466527052756506981963744431755169865666514410670542687530617176503076210448198774524601284739243440909653607413074396740366011327134353740046748384967234639593132579133351435805532922628801010508089405611233518544774257872232321597363862282976477364545893875287606795381049855736253520613542047557420866709354537416803313320383219322487034398653721391329477540553195565094532737530003495460538407215228668061297880375182194540591062220860947729297823776984342455502798749232745602631811850252641236795638059183473017381131951771926516171423590649888298323317664941749945661708375104691916632526584679586124088103525901936697106266851741945485061391450070328661523089747369554756629149845848132993414232611867721247348354109569166894524572611974789235520839708019647786242036516263352937037343014033693029010842888833023959517614347570355463785660282517009448871069393914243409420862226163130341090842944696748551620446718863472098055283269375307139648344119524381352702033315008951708630039718222375899276621040825760852625411973088676061381914617775113703377978885364091555385754975880050385015418765654753580952182107972674729725422413643838266854414822690601726549270609476286039359140034539505435761276405165971657873700742646329925636311770060976470819535075333481291265394465597966372237602196982300053801231261464187760318045200797196477887039911728768995831809768615513642545053382465960682343728400954711517498101042108504957473508766413421635789373845290404797308365287862501746630437442518938816820787515589145435727041022480924923429808845534020282668664820456833415753797980105862527299781460508604576504306122406216260462895066777762701782607442312802763564590815718778389308106845471663636631818963268054936686934414206025605374313953675313300486626824459973626906219359775974561112034711749273429233314807333670474997345180902617434259118773505048972202750195995338713694175391418703407121283881335869034726581320033701434785076049186702471841769182202608988382789585763981456124492358218684960528229481768010945869283223161080316235682023046772304066853608649278839887260224978435548133771517010964505763810928132532550196599142347098305427703051763877822579093845245948479210415331555315561975302948875746838375939913849306790197250129535111213880488765689775233058507655096376219574887911216593845687901677780742428413696567955333862801330414113979188656466081591200474029166622043132371622994606614677623490021300583261578284667768922262748067757529091791043887815409445202268985477428757657153083875790241976704258365249384416635423249299929415949727552045928984054094705238759063761088666523225554485463891188473763054246623496348806041434278013703075840570822469636457665721910425190882731306301664183069091746605744983842143100187134312068063853592772752633746764215617174331946590661471825610153403033112654526621153367311299449202753963344877858238962873478915126236336304394258807653257053603766743716434724590202022589902244034258122330500126079240485070875731999721764547619549032203805897924671808174344965273171526854067383397310669860235605646018172152448849747650591907711664581174421975427440811837613134156315835104744781298145703354754527621625321459500299126287095544704981101096903917908703230858889125567457560112957573556790351163113028763458109773677672718612697654898498327989392652790909850663405950861526029553588061666592747504108580883489037496410572660121016499559005422359503759361152210380171759720513261345603806565584797765496051433138811143325355676519303202062814699269493015443978977563183001322049223659647934258159550102969584556262361525681903325195562763586638710033702210826834212394305399671680602051969060960278948820986803862054180092388707018264985400305483547364391436451389557707297655488104037678332408755346979951541471809216985988377064380125201750621591131438900914752033225830112324322119813255290374923074400720792575756204705916054293513420228576539048507330441213257623432115576694471356110680876087966334348814518920248098488521344353836630212747167220559064348974061633390938785373152726877655553655727540003098527431624132373308517252492416152925098157382539969969983268523506796652300005341066257223416356792849066788634550770639044463293353629581747694386680466249607096659438203394383305589627185059299139829931705387519845087581519606808865005252864457253933643249325520755606318898520812973915083157455141210718486136323757660528558212426345935180552709727833457783717897058142961875939456238175306466312375864186683883777352661405193150430381767053146226044208513455129556035556392286927123561386111421858416047970476464910841014799851004429522111967797406641253145807818756300871875128300156318299515030784434042420366001949104522487131808450484028355751260876662152760982585418350582806445384115433736981728263409428557398152979242448889474205977141295416704459272093056179899743181050339775006593494798126006549072675114041307676189845884045635324597213712755397950712381071113091454662550154736508465954470107779878485010677534617563615016272738968199114736085532052673158185820405685913728231154765592287939270547958493524484236173989385066412885482767194466764828874462113461724291978151820066690867146723579203598145282906695499279131075822321252504043209422626620368004979359377131671195008021923671443943254827083522239473965373471017673042744954325656213076035007310489722193168308349781657077816318573716937671104648835996900014703664552789506654035370746462649388119415919754706837397413388245339142291332263643921643130927225285540744122480755710076271616960667552947847968022518895080139518394712809570155900652597717250657155081628829918680225774124911349646547221194715297919072685966899325904548310897993472205197437159427583381564636338288976378457577760538717672152044358727028384271500722393333021351694692799840523710909121847654710527617011840496965951290833335810202886669114687764553666374120142376790980762883569933075512011208039489694616845859327325017552991445835012196677375779903510444944712909032204418112578522030806966220677644343849323110514089023509045428529486955632572076263727957533126542251885644231682864531223259656963750695031574899371202762270229056001585384879319939587234049374663807212429647369422720728271857482304474775851966526804277546379158649523094586295307324894434499670063276283153695100676841674584311153306812887793634677209955472758038205887626018408304956155905027031785800756206974279194818306554311100716077794463357649170031032564364896981670722147612715717213141865797913216588232461920611379251051747017975113181211294472252101638197466747599634960907871606807382491219547970650645365938693511590242663832564085828812284114764987996197978345129411287511388161739397010307345665317904055638092812770167720785060996486987565885314803002845368652358015099664265581274248752295823458615963987366543029512315572900713897836589276222164331569196137296193807155102198575858858402438300561508953886009433132079550000137266678900094127335500327139994938245638900401643118191436305116445118903641202921125503935955946032678190873026775362457584050631235668139551510416866604840276972581088923234535927787052138916272518223983739697861319448631888101691101020731861930610855632023407473717359222207035856623067921407232193317208108271646815821257663159242431669121835676688837940152289217611126056427445964330471181209382563208687857726596069918892352701666768731141055461577558116179864307470762555197880353852231037780991322264223307831848025694402483468850461153224865800404652309233696156143743221615117715268705828364847736606186472443835158853726223632791242599193187979628407331986142614686172900388407004956857851064851850542265804042428684184779365129681555365545964894152856683885735328860990822008728609940908768507087521094692368244265076243520375671943842192881500301595008682690826317240961202101578768814065751670281736711131858621289395405261750935178112489161639897770369829663751111508720417658127486028247036600976188726369974692264816317001495655095803222811890667649679606160254475794576160700913277453308175136931836752791045247960435907689115132438331658443042389213879206773206125466004393875761751379714640822819234509238865149663604419819081535825226539043275187785174797127744546884872528208794211715589362898387323821267425260749735882194770786984948306764566461125808853635114048139835435205288612536319980287561253697278601868115113160756481776658042002432072434917101126678145285201753246318159825934971532650538801690773275605800257064645613326227156334850586378905871975714006891814466688978527665408389140423992726965552586575673769255155097476713185863233279763658316202252520102478784141007528534857200622733128112893214313819764604940430805709926267743765619285476384962839064867551252705788409048159975902542948610638689836181826476072135270279210302668946119160083310780775739154989545252894034907704321492698642773620527385999783336498346739785384397546217415398058109996494927491087827731202363789979437792341330203632866320729406646684247856141074348444121937304165864058844444941584136667030265143491075521150153580992474142559709114522601043433110780869883906010894737410802024698732222120420039651206586755758555311774930199615914697878576244401222705274664386147045233127670087099518304670973605873245429061071550478249010213298723098548878785976775636080558331404588756555731122562656261611293278961182416074075942652857742110257405744937573439018393872590484865730316390088024277985028601296529068135520833098861101983601892908877530930682446589868712587445092620535372659831930358749148964980787863314924007851563450322921073186744148036822545729016032823725096973255484309047945017439311650132232813445523437291293701613565018275785580376665248329632921546640136811213493267145008730830881552390267108091868590363960784974604039743253227423450749311192901346636643937260066753992297512478502751999912244364578390899629988611318822327408696313574308253684763281631913801183573932906326236704277598387421744376184201748971826713457826687270013850312288629813049943194523529103686540222023184170101812405894092663306965350894816875738611696215233662219573316769218414835949583329351164363537593832770138149762781709337804843037341341837958410295298241727065026206040573271918029261225792641543699455145539735980623554268475469110210782714230551773892698873498248702497563504558019889478342641423753149530223006212172177005736737040257577081454797172343386376918133545790503619630518229924728789748681363421932788141459553654705157129034952368805196737942920627989412894160012235765053345036883945626007194638006551959194538197259557306036605275625088888354914958727619652121989345390336400013122691181937489299729623287619924294480858229523268320859715548273823016997953186477303056992458705753925562436804107027233326295890041146093237686764803760654523814618188428115800464466021741948281699686787284151830459754953607511908075744988427791637718810441416193334357623938437906325850928965872155994310690994481911184678847240190675129624976049452311503033164028378307002727583173196583602869686292836562661992401767585530251785877763342256375999453278267748446429598423318802749093817043784715725686082202774803749372194542370883803308526060775461861304266513453519446291431438335648237495601791155442896460281066541546204593619405468165261380526208913852599221853887457444646345860395280411238178503119503060680287864145307187387167164829465914332599408284764232778927876209511249349594251780043554767099976890447715915289480145190735816397494421479744622521246387465667878369932341270103459691618232473320585597489720037156662176595805327750478657593529425285918684786298929185742377639056785535930527774107766181549596138037130834160058520447687028813063994740971075649124376366784205098408619261899633659281019749095072164154244991584378736388852096850223973572305059195142831551718852704361999970717184245318758578999271169249598049826514912537758310455970134002298929874011149060520084203557766571050693676904649943764517510992691864942846400451747508188883826597420427983302019158901047673118532286878747750911219154010618124750072586032830484769988573784178296489074069604657951969940007176237894051612114834338703281026545156491975848397529887115685031218342272322029105717709380307547943173501450355706105122400003009931849590878455379357828574430176110431575190891238372583906718228727943915544777760721140754499216547317058735368803413810361868041721848837137985603598556695572414865118477036348483825149823959688730019775573294868800721183674983742746441960100299259521365702863689878865760923201863439112441669888047418819370452869098299755359930557014821162865112151175343816252503619404308208139069961020598262555315999768108810704731588987847795168424637957817961397057942806042773317830483672057189689376518755826024618323686999057992554424972519237347184393579355298874188507206190111633852316218064874284747462165000448950036218776392856384784477721503814249922033470126202505115124154552570279232259912893576676023979384600670282063924070514939643873006137673227262110938523916306165487809374161363827170400139359184331438342610566244427215573913738279638490557026429405348866123418974756799212896518608455090293793579707240443641020473924348296360203281152823732482443417949999445198394639618645705457459635745846450862441870309124907449834913753614341120014385706034928304208937875681156839379798867245064588091280214372938856827238431835995806669499857111650287456456815773911633887763650276597548724042117824391490722876554670020159026234859535395239810063858295830254892319569787292151382605474093684745617581095238191459936968922402478343743836780625104233573126722387576046186982041857783577706385226055562388001564085543022225846380812939643723445223529589268970015609669377244579216623892262651297021889541179865356756768811143848333734353763245596256285751344539023784488570808400785746329176783523440089362721032565006297827520961821580743488975913938856638340942862575800067140341516594531744040237360060624376116226438689987777390599381389733701676977640482618743240175802553774759349687619508220874372961848642893634988993394429274861186755497638358055937035864399018479413450017581035363699698012522595141134696593512921105697825676611144208355316210256315866851137477817614820280533870395699243218640166534825156308060427348750939775064261069322517175254653367516272430482102599057070678303348480761164902600570664590414987907249639017179704717340366261200395680602635756140213987766935220512219934822049038729542744760901682809071126132453157740450711857260482117786870157723538599295207246894448462388411237696348617087736618920105725412056288955393540580564750978826699199419171343108067820923990010881731302922483648084998303608589782430237970365784276606230386944065823605032471717623068682804742294824706391339510841740415565933674193611869751091625184770122657290118326965781041008492671263200552078587342116412937771726597472212478495470725932667545410256645485637320796380546382394369981375360877387272160774630638905365527064305030402446232596586744249995196650251958887677770429565017779069928205957378263672746060377312728435885639036477783331413966451810434410679494423830149035779040259168665536617399664624917129143318187898907821613412949110861566827341292955973023506761107316892731037309130643991232681762355172388193496439187890033919175905252360353106986772109726704341450089503504651950237543097067668142801665937245878313789304635896698337116772524067097114533085995655576826527612353212865447053520531228644851792237625812705943751881963601626172234278791198301450705323897581440194094810283545482294522790967617793914702534290211755054575361774028438003008741614922324132757825168660001794213184810783069216514910568002837035958062264185534707453587677444816739091134574795695040123482468799520618026241713737618822498560226986912228168578535847434031424082217971911027200122667344831473048009841056636650053518542265324594541181159308471612368053021495989397727884059151585299784371400522475000706625702215571273106095073220860860766742839679257476699246518495436434924989828815872064571347639374960762625011001991340655036693118336407959264700135367548406213925572332114299029490127613580673956218844682181318832142457923055824998943449734536498319087846026447736769950617649028271079336466350237493916199053205801007778281706596834896296314358147685617411694522377519689263585773673036121944455312562853122319990907655871125704999263039355512225805466208407472953463257196885294757762017623706212435307460621265307806064137380444390619846427490950529113127673234265689365282801669769625872548869734069928644206712729928134622413108616994094624991614643866440608979074971681424940639167118245134454644081229397976614849260511129707099500102683923906238552691979339582472857386164785850207199819239144016486890224562932548345400333347701555505022930384257679947731055559497482606254274510381003197556697138728679210479876071278757076621460543448433238186444248825005940319249883946424352340445664166119690198047829442966116344466547622691415196744183060241450167404599754202485626045884738480813335463795557862707236265039639204138886733407411423865313510627916991600677788877736375412680741882787457432866644483021136228487962379120402415386445124550082740388200543390730847094557663584267445657766870227752009575838142234623246987086332593213104764617675980270936111002215090653631051007627725648787890453445490643481451787536440817589424138580549581891686615729230121908664156016455485342139620882093021085719562143784903851666675891527806443268921105712973820732419997407920708551115622161527855786303109939276761397505637388366720052123077222230694052860421206961717289069663096558684605317160913733277542092792324904401348370847695468171124393724032512566514536397274004243940702438989230990070726584309693681629408364620174112874072819599152197441709616823025837783012087068824346338818198605269847929378622581209189271154544475117619581970127549183215238369306239328846482662842966554931863975491504110388112591165437896592595848114471226865728929714033912110993207458173261269434760456195268700448046073904974244195592900723403700928643302923253705545725903236146195889812229097967548431251426173968017116284820963660445066014267953393075156785618876152868246672248181560864714170947146934080135270324644216704961756931340762562570499100922978365541488313184289515013685669498642015588287895045155769788666934351022281086300674327962367684426699884694008533956635290418608438924220935436521102008274826851272650543597048314782774467966304797805658519135622645083338025604597555084485970038835152767910294406065565506582078374149660664447713226867574301687511258589506620393535560651111956722302622273297440004921881104938035618189997124378125494840488362695111745884514537415414159833527858851326605710221527927681793109443968913852730666714515892640573585909536777842520560146186924882969945168054961658161383416156801662174391979676767749004016206123781185354425850398980021000528366057720812893648205675209571751928579943118658622781538809709981607136453232243593862274408529368104283238279149077621849919300235951370930475158503900094741756204377754014831523512657865567766821465381757276702487023485171129052158578038550250376883041891358225779845769703210839915693189837813674144912729760608568015444755320920969693949296230429297226117582172113988839361260436591016905211672767449148366767622533649402706322343481283703254895274885187073066469905075211060620962126790152758242406833744996672438634003800303833977028567098025743875650365864078174401464043251506016647751979834857370708384946071066635847115641431947090551275150540396565363249017562544050966074763289783840056459073355748874119689104572100858345184066324950249429307582106868459112231626883760044988903957890774781850236554909305956946502764683976040941253424735034780068962365181106386998107270917261873366489054597156838780159665012333280942649291063479485142496303975579368076367153892839524147505478638421871882790460892108671726202371088677650021774640259512664098712873925486960845629518787884830565861396682607021390625337075732370039666305156937269396816445919408308388201783855518389615913656165158750742532807804453258784316846409901028600290424379382048114542540051467391035801712656732159344043014364820906390519414178173685480636040703568025655788181643727480240835212417582794428785587397553297547206805820016616718254053728134101206563054379883558592290575153766008310972918377352132901116376145109305881717299970655387477240580239034443957686390593288442808503997242044774615458909101275243438546257886303856764917831591012380623911644470522557135913360855327009014258797930414788122327220361319548435632812863247064456558126608352728473975203141698223404785885177557258928109721369672994590343736459887040792258298460241501332858127774973931198669751085001043888545147370973119642159902516542283320401263575684659573730158440747231281219223059616722525226084411571477249416564085309628098179750946249415256391426443526705362020057113841440783299504293448441464107499906417705674471152163341871478107030887584580952941008089554766773171156605273550946034043302158679992808117182029840497576018361539686167934554259806816098896902375644149067572261405975222810110134213628347623675210141388440637044165048109251604872387925456630181425984924639600903992936937159518613882617349288001039373508314794102716307802176636978139471733978863929929257798038533909272182834016025004142220466578355164370540690243740672217316970639212084126725698690594795432106863871378642185477586882928917533828369099857991109778633789445662972946519085919453366613350391701330455444117383028343375860500533107869100534015581476623805922761098883156405646214464026061125604452118024369606122139364491762205188715228371270518529448858193991838471853829844291747547491351437034645207357431939716627313564742279254558521294512864273582111204152320996646682667208551414200015774391861176240482937388552855158911563672157459537533871615806681542882136203507847641787236415241205914520198121356728108039244651664311785136758135226942014112029441423260095852321073965474850212941997579483427708270364219609377473435756215437254838287359565651209175817105349745567260373090278994745436091789610657495983339014288773014927085749153837481972662444240170427662295621500292929967492096819516149856904892866291748277523900555763576543385095619375211030619655040665002331363351632374166306436289653274830395948696950700172687113726196686077494963408632348256402358014667020688874077147793479691417576126989699617528468231848410801393242129993653164920869494931974579891129341105508662442982750021831489197355481134735959873996321610586022591636491028401154770147179878733596302337265599276563645010952889980973194275486980751208842166806872263111505441573986368104740963328933739181726928636717691673904475903891747753104267252026518912118370708123095599961812984578585930418747920779148877919120699320985384331447352127387727011626146633371712707561415352813896172008022783045670861539111536771802202437539376890128541018843824064503672696259201614043714719488865935144328124776119898068917517222667017647651032232538927661870997191073744428136496393629506669943286425423276581433318732689073201187878006269562868025536470408985191401804896347984142088554700671923462462598961952324895639988841121538613494639279035608378188525204773512609590708099237010439223045551581352689295422813593871978620544209291020069057740277184839834661376607544106764170794384098194845997970041682370681244858330094269114975567534029924665760674100538918628620070489505503930186050325650174562397333839931363710223185975652813076376663852387406166757954808770649060751434539105286437305088442817748372017918940793936475280222208108919884693716840803360207410574963651829803366110273001525509343493765876542292443655646274955225121051872952791889593429576910818966040043234689176160232328003118835092655145687980207753642362588534478340702297306979489050698026394409970049995600982695534803174968893826382027378521420436684349129036228313667155497836223709236957407985354198435259704364013469995350401524308574078300089796754274787504253106406259921334264140147307182527958253190346206019567811893745038226025176790032204952719681332024139115614466232978804650629594565766584415429085525446551594478132370841933890145473064593855912619296945454658124351641097107140898009724414540792174405325271705222218602377842703198075041114475346024838521951374657909953760434386900314346583060579598395524382728072816683861862326155581016547915889941929653460729562269544445151690120942002722424289206190177294485283486571627111121848284248494181638526615263841590660758826420654529342216035095926438839371536161234139578279840781748826882124351206431663307324229265577641466934234659594189159875743246422993764105255760136606520514148015662365935605466600165024117528746598059621786334635226095444263736486124528246617921065698888063985750516344987588569394050420182267613820000445496132290777174802314030181112917302225897207232855175003435590608475183581877234181084633950031546580213154926405922004368493516290087297014172398890254334609219472110186935558431407379380387557953357083860190236751667055555407793389316755335844825050098311378251591188395937299653873206213886989450648489916098845601047673801425326800401992970855754953296861357237657837864397560777348072971406544928318766877757180521257206137927351467309830657405583185701644268166917420502382698300507019666323141707092058705722468373340379837293799244998858295483674544619005904838634221606040601703435074038784065733364028342046694071008876119346440684485148753604433589218717616575679567845041994923175714957116626427566297735081295725411462430812731622663329683916368165898708957540734688097560277037056312131849184206444365248206665663360616706514905039133517095916674291690135503154895924406430031693994529506034727998234831642736975763713304406895992471480759715551896586866090095889148327611704276570817847939983101929605014224857037676088564656799733582993560285227477810906185040324581539826209894396135683257387288496081236080698507209289119254993816405707150819679707387128165138661444364710430100053793926438991048206367281596193503767123036086482247352645333593300734886026446500811644162181352082345820575660030294691767833347616080959907709682251043864296005462132297935060927440778594814599087134860250771162504674716512823209042174053552710654595095765647108422258185871133323723226626957946874437177367160690872349517251940524786395729511758329909554827349300832543784532176962366693992729612096439612094321531847578223367680349578774211650911714728605444816301978868942099758812243761842765843953282300583682658318912335165833203773939336828537713488699448690816565156193669193943648846731066196044498033375416097748751500984439078881814959762600770923537471052889914041147135964930517461314412087883797469577788057681244070199801134025871450097621224376590652619269440513745868314966771998351089794735300339306296238509115620728701224001523641220865404547249978945808474782341081159542627216783927224970857273703747586021631393893107870042856916829916116234763058688674076136343677050355083781624190875825064553877585471194167262559887200530977818511030577590077976980005490315656666311512134759908070037203472700823723323541100430914495070215841800859312842968274958681131569600052778702468000989254896768187195089470181179337231449370799428299273767434775766203926349229541237732631814437648631658062326096935080518799445159764849899301933275959926618883673265639733568130098657855882467496986089082542376489790762084305006763632517261657840687994954054513821847675015844923177073039085560277913891292032225144727196722184549605640695635196405922585998961887960140201862415686672709630650524832612770723879318004392460006787343440411266900756229104095360028215408274317358793832989498922644236617565842772762902782336669156884568034439181493457615583658115348914454776038971162353678384728208816698369826363876121508296951109108757670690807931546765911111373004176582168860085422794876713744809994224172455323815859236431040099229023177857736289717455201507191385948416125604478908054116383080778484200137303524443043418371815033873434957953015910246868465955755162416356911723837669689468802241658770090151004355799348562918599072603232849426775775587322847404071138625712207699422701138481182972194593020435444759896689369194101455632385402120573318117006056624706914521327234037425766808588531048164756817467136805570768367830569503525752268957701287482095351452618488558226942749371417560472419891244445052611486250616581988434927471722011437273649280106089589462167020206052373253637786056043706282739857483572164970426532851469171424116777511004273301902072386180609522451798978165518121059214819480668079069432748684606162190332305392473271284423249702192841273771643434658599401284978701502646736398537311799743930642809024736375759962291904199351302525525423619148284602389581309534907754538961798963868065638479362810890784609727862671273398611990192885018772706662730219519125886710860069807329645713540028611447424751362792412221424173617516310155282244957449422872350498616477126429938551285285513578895480742158824661870396665955841221412517760112852784332645564283402785594197096459232698047856708241534059591421272670848268039143675452950036408251952742086640185178090458022302299605456626623270753504466217001385258200263824741967832012018901916485910736214273807086444128535955347093259572298275457206325133841089714626631467632262388790860948888070003795050728862920289043432342246327970041171052965053382206704057525520098960834904147492593068138430073121756898951442191174585669088233927607453410124950211753342090014863224290764700174072293075132300310089426550453810966702438278354099973498373252778189748253785403631210662737029265481989675336328870454748995035035151649818375982116277176950737161861209409142982436197352195063715366375248732424462620142354828555202229954762750814558857956850318763293129992469022172327642791835405738079173371727161030205410024140597050185453487529208597433599121663692617837681478514256676059225066080411277374403585442629657072666459303483577170448504649993785103355045929396889994282381036588899599489077159729283431399817670282130907847959847993042893775020461652195712177507900815088763996199515721190935185923761731279260023457352426915562455000606081814913372376653867289131563538502985399381840075754184625076404687054988068346464804917753380214343029624486913515502173100004913272375724432013710307424016175010549423599869079487952173572046208817713317366122619117464488822826130594829930784373243005105135365210613117295587403010603553893000760420663296779463916803557700314825088588963101785942523896477371824415168954701025050609909561185704735525774394862752116124458571700202548767256388234951637876358147893813955446375488092567808242762051339838059722748051143239783042543790342970235146359845618825110631375127555811114926452987338435508050635349834862918375654327631872333740129645660823855257685763050374242645063301038501431581944320849238502101018018424493681973134563622992195166630690611189091671925957263364321465935092132720671247910263239127591902068066661649049423987601351958027104084456199559756824725044480833700769616958302817400224595530634139209781586742582302900287937149645628167493966432116290056011398645078011172470086458192955705170365601191298816857801229934528079861210620288154506084823030848396137475962104890138390441055288541565839720512994175088158940376033586192167027783911955427820797282911507316795099903667523105070105019676676673636650120865101719321760193520261552357857701411088819802540088728673493430168070655918988251935207626930308357595916521966699318001212008929278633866868709801184442628744855819670497122599797880308588573375495678083385677406570344217811944371130164195013270255073362458495319245466271680140906711490395950540530088697296212605029793846969601033862950223037181490050423849984675790450873282062316540052279289855277996230540749432056010162892305531927682917832893336108972992887067704863285901290085205712710637979017941812041611839427263195149769454020269259435651642371441208159712437934677843091245666998734096219059365790671821771586161962586292526100303890030504021458991595574812342936709046780489807932590479526929881551143953094708511845750629139232595965531441097195431581742760112229525304935683003280836298330356737658518329692888248197477695836171070462158745466191360748067471370554218976178368491710772689881394182657066964262822677200865765733992190019097806365417294459491903392152163503404930815789199725195257465038357710783650926208838988242051712311789060207666993508213313981454460430697469933608526553724690392732659903928998968006094098700000969159518401402679695146606867098385223684248854712175987397572685933788619482850076704774840903871618300767300040747096946809802062098667119274303990200012050250239857303455659434290857276952360635558915733287169150056369118013899953267799798864451744769230397317257365978032770572450821115599533998316735428645630737402087780347312538189730945891815127470452767027922082610134704744115333183025658781814472968076515425179046893780251275336383848199536986462045757637275297052996610036132198876134013277051875554781835441748767566310180107286703982609392005111830130651351950202561669171541959418351530603144979608663411528920670878306386550366908239744627634327770175031929466461013550709849479325120470774275203168153941888672774253185596111628018610145220753964520635210619563827504664664778546088321810502185992711637114327950950839579024354221870422954184085031304722969891563177968969134594042064062933688507888576537911475899251468328288697780973384958243157584360564928822808587925818698532402553195507707786419082557612076481414140823331664414870090436661721389639378080069875989562695458295559278305995425170361224031613710980650462863546359380174806431399007354828291804677024478730616132852897770563199092418254800935786149501453859243048090908962369870258747116838041818683488227028707842445385535762046498109826854433423351557923648352740897955482539684246704062748407269520278609356417626385824671241479672358087649662854558080651042726288595200011444763675457120054185277962672286448978461703446213418032669822790218978842239133924961659885565172573153590906850827945518508286237416009115031230661504152466915816321498464474272458632448053706186221420359120201298144487714625766680325794187470045531620306271249522720249908186432041508895279229379418963484000681378756296118710317222663701672787471764319995965545545154409327947204573107356430966637876543965840435075654418304375745147238606435035080567635739254282213597624746911903622306409374836987144075137441764027029407731126968379533814181353071318707969548131111689986149514802024355586400082463649472040205702780256873749716889706260825583419462184587970057846694831244487998214734932367878064718619218560127366738386726436909890754382288135005955298415924653911950002753554478416214365555207993017750155402501252147443964177941031626246284494692687819874013233791333246873685222181869279267786832038926177064256330952926937449833920471877719055588143516727010375860202153954033715828081704535926176908068787735922254291465706992750793118771795684958301919532492213745978106751713678258149228826423365240082989593780847791284543095234482895193940829394710275417716195147011673669089623323609389641863673165143179969948699043505290855560656186749681512372461848102494951642962824513296629022104955295171837412428994345872499859706306130002730002017016838919755374406914631968466303430974876511974390933661692646089934321889126967684802661700743062145649146846972104165559867602769769789836727831023602217326977958034110273503991845385778197308444773853771826725412127174900199567859606120567309651718035216183903901454755632469161949101692066818595749670171178043476099829457290434671005885376310493883032234466157551858495578737496904937930711733892661740226663048675343338448366242362307744184594829711060301656550162856663080208916803663814803218583987827300851617768964486317927563579411014076000370217255368792767905206756012142590527773452369036421845546477503221038954922709269932814586468537776148323921799483414922853604347563076922621036927538262909671564484729884986892503447849824749716931026238441535697181187240755069372330094249380923426813515190120844968449974766672800704029262431780019970397491835493626171083597484378094717432732533375102242674297077355944466226736407924410937499814732246265633327522861206082639173125559251699580794811385000937070437778441144938705710341076969505470391041870993084116782294401969707932110721062538561400186763204035137286238337746126646675924506177520257124837429500916605129915714440180433231255194647608195395045928911864179978073802119805866366934323779639961572913648910863868178169697604158578802479758261010132801037987242714042494794020486693705616420648417827026581389040016481126471972802759868428774970718625076429640697315715130080887604339509592565187169125703955821058617222129738701788938815874154721497242433682899886377312877006626743139965607224275231822675749038045465090401919273874845144933949039841450283313499533436391968707834555311870091104660979731554891963401667937478970543972587081887256553524827693310962546468245959879038931063692750069289596807150502012239882717611058684623873220388784776329345425569196773704313720852897425262243399160677745381456850211691814897082809944868064022753986918563372133670534841860468759989506774107409797344790361422020633759766791191380487703194155435064482369860568152027188712580590092158435030064465058545414111561815365959436321997217124251678158096794596750210016878437398185146817016862044015606144870004006270228283821583355036880366145370154412072922155487700358050169590325404195451768868820585922322748669303966905523348500223063538059711495369688264738544372731445758014520204643372892083205337463265659386290760265918146023291906756304016346982432548423749118848058447127238267099907759611481957641837704065189107772109838154170369797610412396546618907750708379944047615224764103820708069160886856884394407578802295668812441244664125172051752741566287897638177804100019919363585953812937936561803976758472921388873413836170578342899102700005475585018926491288631107521462558498846257152561822457443679764355545849516633880256686885166466885564777819008256647759222322632422003831864643626431115606780439101846730923356242408165923748162316011745665965248895307564435106043377971690907234864865742946874697891284247755378388893743596342868403399772119848527417761883584304783533734302788461785481797043088921194878073765903558979509384078231829719927425762241083952793705890628539335428779903969838660713165757975538117091889646825508179896946857995102270991804069663987131836854585660290779531791556893239918381002990212817921251398399665892100818676675359086356341234346918056634117291446825285437648884886169932704978376546031388575521477449415639685828827697838086310183846996012259374716404686132773104389282268488066350892146238147511321605407675056809586454228701944431098326192828571869164973283337749617969993724116186002859504601842193482747460135080347055602380808566258133769756979819835399379204642655827841193007589583981149122510648832159678474556526590052082969993265232455445506852507276177660711845542892504026166769079212906753233296244760382613656745954018109005363292671820449374787865596959666550377210927241982708041889602648491034045756035317541356277273788337910147347290741895226176122125942419525570274649136699610840794026766131708184948791989269793224540935247128940219682692451361212348935908138115190851166195443226269903280146968532797792103258064972693105627234390816678271600729905348378038946546139104649352840819415924088431226079854527369873111543198925501548910426519520882549311339808347211816141565590485118098760733842018087542288260953736166679247037165575508903571319378634207783097769273660328439844815016451625737694387651915935603128465453705858860562877538612310231295386709488457771081966781351907685201816601260301928643004266958603941606882478568834765092826326197273369919130632865645695150975359640236758763961748251979885342575888630511186953834238243322249733647794112939403230068914597423025614161737506415528387313656108926586882898420732389701209598312883190032008544262987179014986877382475661088775781834808781263618209293272704956520739356740952718300404201135098817615090875922832003874955809871394023836163314488436150625572155853377412145860411906338284707360618140919911476831143903581143256823898376260281663255893816830531116242518184629654948349148696903206278054202936665291482069300128150025577476845088122466098988393776869486885739531677645000442923780710360725585346686576522607072094329252992832845031718175168659349803368723555231605065006969540231129844702444195271853490907031272235700902856343736040138246596618511366285110849515686316522321074871122566789594612852731195041113114904893845884510383652907844837085002994939983860611810954851432444832795331634166805079531542041400683385102416572121962532148586982838863531931518891104280915831252615614673922534676226502439885374529046241124575562353400654474085532134332641798354145513347998259745571949709313447846346050409698075932678974477863593461615522910646804936793440921363809826549944833829254736019162706613408767761888120102336728012650348012150728037136668400732044080411099783522676391564467697425349350624760109853494185252315016196068805547679513933527863181575920278582746545182091005903935705081465072281095735968286315884585074446002127697029823113760920251895959392375306004128457045964197450703670421497939033318509686745342309029172299038924889910133388233992356023399075990684893243482348572061537558506358042647002033252164847005823006136728635675383309169663304890508530695483999261384941576161114806943129914823081688324226966968303626223131631077515074647220790887485777815802677468676426447644379551787137318623669518416235309446304734353946061115431120916098511990319552211920270326077238903346268027520110988008317302601374104553394856726722669358274975506342114009685387816995433844634098023774434551157853549363093515278926518873482354733106666473942732190091437873321175528352518565598395613954012561916730698084623268234928416357548623383591791648882221099826002767776677433683608586800600163756609679055056059212331963037332998007393782202106370139339669922635550768558939121181649291856260551603715259772283131636364939872812056735417540042410988143509860543891633128459333864191207360679187715619809788297467843542137833931883136479896500680672787254139567053274852340567669527333187684639242827369778538110820189039832689803514515392378464923835123417974285181396583638114765774415049022292845177958304976648450918126269469775695386992322620562238831702157231972126008304058191230076727345178064703967592324314600174073862677820339880254711584739273466217182144826948334095418269247113466265428437019493114423334721959328448101006375181019642041998188549450119434712104645593722753931268284328174422759608019022591958579456647316371873063927456064413585931047282363877392491562056235253336308440084575586169497280577155391216450439360661892998482150022289971066540004347118463214364343287502285186843102735905438238188766470083048855311054909857107368498253384905390517251020107807610596252422985830731784078417489608636556206531507223557039259467529070543336801790699914436773273405104666311841786548037825854769415916452766765933941225316456138691465130133207397435199436715768948732962876578762682337732778630798328057766783709099819514140804330719915695474925124147350285416773047404203555091637949621839108643720241341667525641115006338519126584990577398984888838124041200576534782254385584954234659037725304814705169875358693376576330989293053903802948185847652149433273156993509490524099517358110196233852898590341512979502075212098792661821802617922535400105348413394237161467738391893681765265310876383439382513615448218144187546795478798663408643182236887624529669230727451679710995028726401283068782093138319953836492096384703593829194143278307284782458701132289026441264836611750322332845857130801690811335478379007091713303139314111710062445405339910872020750024780131514521562082699103606967087366710644325835054564535351932271456593483632011681837676616863199829742554678606485489269863168529106085988000720718473788726726133816213646040995693783243148060512049509144545635477685329840689573289709574112354480642413040595539899394260565920674191773494056394572499282447266809767261925912179097782263927441350901463767713598878123890044983126753243376417556365451309781405554651496800252515391721335244410968389169261414515291914336560422708905328747205108005058045652078168692116577378937347964052040394154598925872168916608599262281360978613187118385470089236079319223275945428397299074428455738009554699925070356404583225563383613816928152296832193704200463676197940529464255283112284453167425024072731292733701439036517426674588651608070606427787059846660591823874538931875223988735466047741345799529030765104250328175139360813701546067144122273809687783833890508552113089581563561325013752266632474081083338624838122515079244509352408456342165347993313313077324682634956661288799325771543371208735039407332005226933165880568646361812766963332265820369685176028504775574960067950782841540716076162027068063646144630355266359577305934943491122372342777567740356869076353707089680943773850417367267993054928848316462250121118146622061053206476837253943489033352598352979656326830190672801774362316489770015694924398551815857341100728462869084603758669699255809367856151332443303022726247509262332527011113213754319442882691796211331185959767800105297722854351647723288273815052978252380340383960886137913912012260864229754256891282466692194779736064262220198394309155408686054402697449128742776934999540900367833908870902635465889037746085212986445356630603992560897136137095559462269126248059960690188864649010173053654985689354928688953420130652014814737391912237732174956345408517858549068382868935420015181046780572971877333858524236801019667178583181799305368639412023218671089497266260810714770832733903913131908202594862798266263620264492029909103554406290224607147331301686577751515745510163812502710463435923217093455152263088580978061134536019504616353986821139159167603643890075649602330873226328574563521007419829288525302536944376034312222762559469658576900233301935244647915211054710625110360612160898979763420283974515077887588713992510282767756625635098277541192417723844959699885094723945920341031271371468520218749291048958450577765103426739749974867350670040283918330819177053720340702560046953161747091666460144863772983650562173067011519098333098337929180584713999072640627819875776531991607089929273861974623739655166219083189447793905591137584515205011725701088615191618536753587206647817038028606124754881973090706362737227208816731437505530045025140535705373375637178281835632461150040950929119069604378307514747957140223461986929686760129004671132189735269035528078822364682725253567473067000244965764000770320240474178523098857828072694286264759521813800653246631596041710596788133583231535095421861176239928229355989430334759248354738689502129331115296528164124549737003197269223529504369674856755079036171253637440476529408932692881191445011911534480576356492292347220632357408687879767060973353654202999511925406758369939053959639672179798427165729588267411952275662017393201084116106689166477097807866775118207075204712339239992936779628943881204621860345505098939282046429666182643756319757507865829236856572685831254123762957856891223862008479313204827532886849790521477751666836328349713237137537594763480956795020134386120010122499023934180877448107962810092763224270691838764350506424042410108217665532508547017328609786305090410950564228645368217537716052075670302196560860886666594442101912973435281500743176620107818078352089620622350906159185582603389648488334680931051152898327175394851418236625183048274943464506149582657509423540536425722327963970255561891204820970057740044051151365308074807892087967667343475225887383430129196426343764474809368141299293354752883356336321511381865868499017292069801516448536845247555866598466847704593047717486889019090667067931897507650337543102015832596942281403578545039956767995805704600435429979735609255211219734406711997876863957532107275152090546474477347730705439618060520981028876707708766278338122470760333057527580620211092386006557942602763010056412481048002204669042296707514552615045801761490762796676935847074838231856846449801854204538078407874748866988994779171781306371060475578327876782373767582085607559726584117133557085916453063998093427288203776759261304575020406945258446592536895616223290471441249259913734776013430204978797283859883519617383371215637888158043533116201614352794042466199726419327160441717043856487661648878512753864126965623233113883611283223416915481576165479898052340505692239563808921170964539809957257985592795189572805660831111189856866252788591517175944685482611137703598811902956968895469186913494062144278825909925079356000434459994879225128480465826179169305867260286141815025396312175909003179468741371936398456665291464361928964031951056515199731784407917792181486692437624788099025780710747335184284841772614045182206011131710141675678352466109274359220577365221156369120632638482430986613811436940408424582621965171777833310054423586620415952824386618563049689598330980897308758538362081322318191479839991889700842047572875733405415718297008401423137925422618804825299869974737794769851521475106110027326092102069632541745797187760439181721423024485563985701607970607902038716313758424745445876900859966484399940285260152168820847192260695493163992108151993227032392421577690515987473684374535662166168479522116827544877146883982251990202858503535586568318521027399949207044742938609978670935732746836690631647304636792595917947891219856229041769935630558597256346009844719742697309188312811617782750254104692552936726456412052613718470209471134149896173539384724537834616365858462976409567620448226672080004006598963406628219075690008653886464809831639413975441046940803621464164400360977179779937561896789157774606318850764956208215114732689987178952403965316357041193383655618082799602657818185340689839923110088947189827542029637641195487924447575326298894391931016661554666748155017072886162068019974131444723284362148208943319329055334244077074112088954255129400030161320420786298368810460974247171823155239006300395720498946710588439559215180732671457924633765042643419164595944161657002922899004887448961014427318601845343043691349607672785206299127977608953270234622792047081122886183156315648040339427295560314882316508176864275630317163266589680796785038916466228764490254289142522351670443133514485023590011622065080953633897090134717685371720231441897949910389340705582324028815689003435012499563326133294710828448671822745645815392415861668865132880875053730622128004773814693056731240756826738157842012963331552699925540927330369873694707531685990318748017705690082385519407805377715831137543780073641056792907500528961248582710622934267788947053915871990298283776747119875362668173242993079191413725128180041244528600844899231549422223673660193956283499506214487608030237378301843552553994862098475881162238983356213420079271023921697302875785809944349769011400769235372205518071618618244387862297619693677087578682080647501606041583788686669093823773043069504831254143998379351018413162154241749133804050287156287897584071649643613925981103653500079745381507642836850279947028132273125447297088552678902728430112317898822443018791676242875439638239415479187830024719954688067708680585439913427801944312559255604796780741465285951748453682973519902118328109688089169257517454583361169568943381828326205857931349906704880856070961900290846177511961174676035747210183467988365158815189201553328375220007145653590695383398244864157152109463384799856033421862943777908612598810187532617952413521360624123498219552625519575390820542378940291281511009412474448989016532523404698956677705650554868273807266140334474605369787944150708641750605896728744622410993051448358215591324935474754704073113748380441775031777376011430146721129046024357079436465402845118683181430361987626029116877176678291960019615854463279215339182593841086938954171064760703292887948127649830047994156771581375036070261987904148947140572716425759801959084441028672452860860159679840304163613957793978886816667490442508372190908328830415078032504395811927930877782577335898756398151033025122413210333174981701993906738816041232637524368656522219392472843756084744729453841742045776236166008590803409026361094445435470554297244063095833476105070387999741360356811249331063051630422785255459909358405015774749664245351044670247378379941520119396332224571770323608790001675784286598198677180332435540591589962164430633745946357145586928878794172767952432075709895167665601328583365266590271012246961574997941602130995810666407808215666115853147165661317502121468297470613212286970390404728231676941134115337386567383518198200493430040097741999990522217222759301538061627236975115883744049568955207478759154559764579572390547440824956857132985672871255414756162674668328223570836535867396479754337747749770165942958367262888026068637221701365233389494217127715941852997252422435919086252417268994640368425193581824850714404239523152931695809492534742632828933762520966820612929033828313196998259557334485097060342192973683816454561823622674974331048343398478852761813463959007512698793216551395258819120083993802904280034421366307755089046256831024139194693510823606837358956500533293845787780949739534506758669837519424151796895094622853701576908520657897229138998643556058787248277388433867297667063864966419289174556402340286206378485780409478029578287073619719381281156597742364767114498531068123986007328046991302038993229018239674386192703973661532649152232577727928088163223964401283633847359088158518369360793918909191366270019865226408431141566754198190367665591278177728052383928026697190465564132688061084253929102186941102105421615948400260865966338972943973185327152848887935919010108333369620762688910205530638990289979089091434487253689879937165939859624557950705964060680691030730848927950316654340047475536735784867770121663300817844922798828935595696323324839097419224360884459169845327138461803318323315211237399335237705033600908568970339293499983305953364516665548309993878480546292359870062494573835947912386376738543627299482891932284613836441283708921011659531847615572867544249837067832754950994225309164658344959381699483188569327594987175158370535563698305452402232320714032304068465869922226667829666373528998694221663065846002584710000572897040604632786680634244819026924398664648271628893423123075029170553222819892840736745430070040269950771536013884398453187309790199292867120541552062414340529302681151738299117233676826933433771704289062875967132290515062870666148639300385456440929625709493351226775034620584001890355198699650293857146489015648214386339598639441900191884154764982909192522498589673565653741745347613886791192529906686117184348035087570536467469276951753898597474412427407381744498943642057296558185590410501537481777739871434685545580611876659491448841940349727584780076954443026369508049629183514804708291317728885874560670624749103721021250908094324887473629915283878091078233398196981893506736240009139916136001243995615940066127357023465625753085093707896907143696663210571637087979670013998182201875701387593745352771850211189000071098733815806211513578350762919719143479003853782710580095507901112446759050971037746715225850092144639177755471419491905872460684375615200934832222776999833962037208334493454299042750261211764664228968775806408828020060420833809518815274965024167067181992622259672032907926322007184308932970069331082251644124801188366133510344103935038618840637167198887848361349306151566083697210836735300204126819831711644734161997602095571637260227706400586378622757217730920087710116570384278675776426057654414029186645112017025769245097273552876556387514729854160328547889454910975285453180302528719833324459837322605739104023299654556617656051670940544786055892424535794810188812243560189196589332153232566735314278926770098826683891928765425112832537556460196720160024827760852622778546502093851659651278933729330129908711967959816790840228520054126882135921563976786278029640150013163150867243819753981903717124314714989199513568932272228306464407867493820609708316499939744368592032095649125504647065271007127767915808383992142455822379572856743632135122865985984575147259397702995625611260205283469637489815498618990096467207651046729099338378804081631818580109906068022719819999256941374481793019387391914849181803868992466086713642785739702499184413494584153575622469909816501392950644678505188481899659768484233553988670631259952522385212588340698330273671932648213103883142555749408184067302542820382136260670474561122528693842057254269238601022449603529764817682428599160771491546986425947388103047594070729101007855275928941741935740917400211341250809481119046086714795618458923118159429043693347650676229776539998692625611530175505177233677574925635339026711134737036316205349436764808924517305146898911098419054362530775543423966978738149211333804272161083197415716569268606884251227647031356033854547053811776590376681315850635710603208198182062613734911958118503805992986426509569644911993330557771462950482517489263878084586211152728584555167499703086476199680220536003478046342598679480976742698671360930577107277326879953021802245295837540678789329006629398868116008523345374387896594392595007492339402871815055267700770393368161150542426224534539441174255653504285709135891582401286909373847239697832579305896509138088006156501796459048381046271365612708144416867487580321850029317763216195642132985053049566969228208312984112806916468682663164283751526036119173196363723178359486234882134645718015318887020446985392424395783993638578456315547885052163813831074302512287164616334670825989728774141552239643960343895826032957865125029461264160858295319872472456942620973472799520124985131551209739241447963911362548891728550073063722997167484710689200705710101829981029726622964301440255807041221258789565894409898334477246339588702001792710041068703360577312060523392639058871498158241579142975879389443088500698702758331976754781557850733113965437709489361488669121112854447436477818117277646338019040470048251535801229689664622774736391755437940229321409421941915786603255277390034203828472394253629985254476112370274673807732740449654948136472567044752035599732390970865996889192917048952336585800238371109077785759783359664465184468471611229621239426926924489094533800033794345975292181140304939083389254126804449524289800705825812027922140030374592098692735005083848753022651589307187139899482961587807664631192773037096241118651631393294765477261577100557328865267212156483882430011464187370702396218031286423859105861245020424381321892141240075962811571841028134955655341192591833130518188845808117807339418638881030595723927872199574847889946377212429480187486707819535370403626747684986757195072840839733526650380628878369184578995997670860419157736738347778224337353725582296890170104253176000961541536749279836973679997744242540107024441726361538383711360055653650745934557750836504654542353450831030519075180131803873875379670769696336333324155563839330782266196618355293887663265445257175589943020241905199536664246624342459994577680945228097702386329291245866340878918162941698825021253276137780605896165952849175107057892217729884869846942244631783199181619586710717199077005688357689811917295749994305330758028160017940374982507910140350105281734547483320160314455190604446543238176682579649660224468909374362498699242001577928230478533091956500226764859558927745799358593444360043509265452726814318435902829238044506949359479390454573737840965651638424026217690436779192100314754474038029017085362126548502736959450928816639002292142451508162635641684242247252552987412225750442366760382261712508246914739309913400827234666807269131353063871434637655199170001567192974298900808049945465228522790048832228938549512059590855105983167325063548871468075147160886721633783245605430079961678809045586915530089885945895091413158941611881004434117391224941396961206677349339145742099842684828168096181861909197686274053453493302501145588333998920737567164247353256054582904111865751464728413978109065052421213005347447283782795469636660667056137210193046827749010960347135371700823967361146731557962067124625372879382467807185022185724865229115986015830186926151090328180190476125247190171524614025596044588387176590398043769568774777026257679166910376618098681550073663175430132312664055021242642730272338235514571321733077553903212463593893740843762397145675976118618502079819975533608875228800952260041353381610424444084916020727247112335647368100178981433081463752743977344044379947243621420347542475733239915934743471726011698837662612730193525570694025919614505575803922728016218091789764560469587813723328519621184242185791381349489187825738571778915682123435538401034228032077337617152186740381008630858963012385366184843766983796848995365130303926636737475450537167959000820556209472500275747869686205850548156837400265096760242497211341866305215321978293549831907440858143822541885078340324426070062762777943136464510285477543496238872765383954565226389988232875408288300194561899404007293441779549614739216344951095149289077303303949173116342281912852767682309808807815329566010067912540431178682639197194152704829493581938300633940708096014865206847819427745198965052185896625653442867115285670429240892955294676998407860092868759245962283732582323555970486241812007089663258025678339164682376754252602333650196253615735201713856197313442910855197500389642692538963539549196006171678267261123559839887527495618971062071943250482017185864029285369200637173206530576572345349167783286024774243965135595288469456313537744518858487694747524654532761010277463115046692965425629073562017429806291807427034387456531839661053703677693447361492859173608374975448510961338461813618886692829045886042830704268988885808350534506252997497960536633691533332915278737881281239751808519214351919069574673961881035081163497332688208906933233628122697580644171885314820262769158388228546705107547545210439071952143179829712358492862230602638416865206121983845812776876041651382454286582685653610008359438219887240005683570216440086321517369558572199573113860333533889348985753149510776404315460436232015063614215276514747574381903625878332658400244029216669805821542990972543317905158667897905051139219992004793445090133117478593594468284712996545105485770843168725520239131128097520719326991747962189175822398646023743887437250127796346679759384584096715381192903165620748588193122678809128849790520352226673018057766823761457120027041338837564609920348411939484562582519989755754399401677580302376879278417930625766847545052866700842706628121769475731335753378249686071064959037885856914647658780476235875502220120415956133545894560218803370042094443182493766142913555771776283500020681354051569839217508901261429955606960039010479092477321249710546744015573846419051358726856713937054921702877366429542170002304697890068991764646444493426967236177026731983214108362697148592490816072202436646863826137587717960984186175683201141478742363693355336199253016053157620080851463372679627685009926229455774331039264380580470089978025751839626834097139500131521608641658934077613584455805519923712483970737934430614986460449084475741700398690419549856731939368043053968061247143903650212521327988789230356954337594930061333775096418451047415696571301276302867241852372134837074049269347811234400487427356172618014971636696367611650759544568374896049045126345234433140389372700075313550079958671393332092767233783576118523215226990201697171137555872666204853427841601598429677904807859039628407361873329719840799412905982575193121406004077697129186296430198172339022735269248097207721772398118803085233421208800091064806896070792433875249386047919983427104045806687901260776066067108660014091826865616703059964109953827923241978039155370993433180655320438676192380203183659875873049368634512084519159359871512372740660091473397524824333385885164348431810259946735776682596319559600601878800834266732080138978301407150452600673675430132753422355222581847989330631468205632965483787181487207799974991242555688812752547740902523188445785263649116465007426215826530150476283150923484491184786369747347088133525039598794702218632723224806751854757417214881098199903530632668502223209149637967303773321841231636323890852118969681571939966964163664330286857095586644618259744099843080256799773274231436927813065154528888825633439333826403925198699068035863734730689668624097047796147837282842568431893384292699900043732455141874544007011645827126840634370584800173543528477648428064644922193952805876820690342644945716972484518298393746576634415944156483147186828689752120786274374030275742003871985109092554043098086353912478154277835199728982813573517464242586060052149593820333520087865492912349409567003514490956618059410862303854076710344437492920741986033837823676936814666740106403761648044430627533221400522080326310405527521963053543659531649776244125144405905192295692059944343803214406118583471236083053249435385046567818459807892074349018960798413871499755446998217366462169929261662736088663763549645851074004250791719040264954898316438268754676045936908071164128616662777933847501400983028813828399172142142882018056112716420120018533862131106822480559388506202113938242099847866029413974952550429031648119015834235488207095982586239441953993998297700471792074910502491013683092033094568056819530542060478430784206597584885742804656570534420316642316136240245996710697578666238984155923404080566089320397653251608717592940558652577898292274360448822082022260954139552267455044063921738893287273290134090316362418179680854559249660326596117089841486154904912300038988668929469187016287001910207574557470054641629055493499594182187563104534550349159464481800633950073994004849236001279874634430264683057711113265856770045200663928281950978523756061917296157756012003702829001336414861494848882923824531100280836336451263949265940367667726707037122490466839588486318462289314361746887369958639441505023155215845018612960010503468320837036418232931891981478583623880653724128601200343436930281680029498103020479235584175556773287292533250625467274988551505726335134384606257688039354832327698237532058245272214486030014914058089169507755177219160707804989171825882969609374560140848811725361742446388698294489175095987417027603086668760174474811397379794525738935404426573303754975762210441299653710651771627556678589663752455828635432897145204899823355447452916611790024710409402344292761566979378909427051717786904687787281252661682774309106804742288861102275956514717411995442301523201951951332902039917105879729731660977405317527106096999905459460912484106039801878391433341199505288551223318876891596121008917820508289312485722226786932814443398536140281932605258299377168780832734741613649485403553519233537144491532624936488206189471980043286610167279517141523516557509160517299947249098694488206450851597236409643143722465847692023101490728910980650328498369667247123045089264135358937509623806585438429198800542196147503091649120488298511262694291037815727486484228019966334414888648417250971850953277229307400138959678377513543174929373792015659500721382252194056890043063581991712256525972132082939791687308661048682960761985578979031088623436645104370431503947878306158575293568203205721293842756739246802583093022296343928872552955745737359751341185916060433892688079241509014463807715989855302932201635484747964871455749844807551520453480212640517696842004017042626320919091424183453791598980659007531730963929917646735415242248600446482183827681025333942116921764647102407099675510404257190632043763858312897625712214112398438806199176464058029624499203406469325042481742888638926506621266936968634471504281687176712411523516999094724655735277096777034217703327110055735749534649254354046723894773032600720249107603171679215503485654986866528198791739494049438900434834917075473818366662145427168471188748029390369554159572989960644456921999539138089071754009713117805595801740505772008735984490547230456588282070025286838340210836022429335730999958452746115118624821680221946474767021295771615240946334707757395671174353766473737004496326525999777607292756336835879879601228253315088418150819665129033182890136542803573648733310462351910725567836103751345632741828022137440094369056812900131777319716124502549816682285765485819605468641504113608441416806595436928141017850423857428836350192908147424417707727933760771631755278603011416626290451612979503751214042613227845649858976557170988495044382436863592432821408690065980107782671695672333776861067620321251303497827325897217975552181352412379596318449499791489499486445989761364399863866524229800008312714493381342023413153872779214080229037238994531972053811927716738210876102581907408600174198099280456052157107608678537883261469976640650012889240193951389156213251566653227774025094147071887494752620981208414425128772133658029801398139825695842196970242262015794286900325084096175951186223612965856736590757985488558158378968848218153578911902758434409545928022468128163366586243095892870061541303617461679054425211498145697331777737413426869004799575236758466379496292611632214026804907516570654249256553076315220810805295332902573818280427093095207344734669966959640644192697952845933021075231507079263228107845801374586391715409589030436609895106748948923086097724091106508165519540945561256733688896220443276360800826360237408641536823270548303732019035147290777293813278351582728411631067102744469816926056506268501921156189387392230647231778956724682252994221703071163266663358549422451655876668857981650065850497697784805907608557713113348125436988560697026440366983747446558151739232967001344649832330371099385537801753693212371275489297167946688642122215648842840696853842966807493147688806399983646583856274341696940520180527645456938001064314667028816586598478110063518966572006987962071185761484110861357781993892838564262226626137965110173294190038187420107889582896817206391613926770705504352693536646380726147353010799194744347483874403690921992080157513127755461951347974860795931923756540066366849934428497967161097768518025353395276894175610432394218260843277220787335600966571875512556881447085412711853378757804886506377226463597860977984666551798657532369474519714451393831330375543056682524417268192533505639988329940099413540136107629443942719509344119676454779936139641184516111454080163078916759369731854325558561621759191809417446519859483401977284336752414687116940594330799530529182968784537540258272276630521841491242211471565339544125562105779614348498438162585090771146426986659286793239145484119783473364939186127977150791483581011155922975829764530244100388441834860170311201361211275671181951084485934322940649857536001979313624527198878427452855593079992505023361069604357243817168790741460830291867819892802687203662694654566962765313892414614251158473066238073370913511863533802143425383700603832181698965864180355774789354630248891066814565622766334170770574960350908240237264320364066701303359119968484418433740955008197210217066475049728033952303594648632508921665851350535740857160735563042572399060583946063335099650149181962329665203471116209256213598247951473973274384208806077568359426719995167248120238001848853863998848748009855068688253518993835774926238609032935772028185022611870837976198941836869150314328973445054294239232222795380801364770283861083439302915052093420802228846472041335867518387185178293235664647849720520528422040332555779201069811573223468868366519639602088481404777504731643905319530480539684116688352712819364887105003623039800932374003209359231650030413646639202389818197023257547768076683224946141672905662934020495076205786972001908534829267759180997354884607798275495650061920540118200761589717454039309671584724385106944706552110520241540181181326324163876098518306637927932812943875868135259713133102238488495609171355480998096445664178937893369053211412856084140632347739583655359672546263645649115209230372796823075340593889757332646255878651027946450330156152228610705827944300698775646760011583611856221457416443420067046387782241192084795387697005788255980942200883551658752491186004522655754032073346579818949580919595355228698331629186383156103970134348132039380406821254754241270866809452850855384771909763425108197549067189554567724439479387704873588395344157515609796618096378905317470816568534411699055908432478899037411597520691267144539247174495231996510698848564306958779619792700517440406460526706803961630159294346524128937918383340177304029012109265175430550061551546442916852385409313641158428941951698581554704885904072858820493463740186388105249556267903450787446191791087313615740521154336145439082981699363847906737009963940675462503939632656534059806916390782175900494030359449278868974064808258062878984078642898107538334216132998359099462693079553324730114202056225896366740459405733843911979506060043383579595002794429205961355689295153616957873577282454777926887768638025068972825247464304372561638498577296966131419859891630431586604359173865693314520610802506193965065117250628442869166013920653523458725774290847341233788197644872402238152933974646745454203212838870918364389952592880983187310105890505156618857963993392375971966877427984981293206920842985890120562335218984929865418792112508396234803880899157801330909475148875269661705253448042215298288458040899868810716298916417249728969928712672023946313793621338978457314816644568985899003371926046156620335201802740089634820564415300844183717413748067418140821420290413514149400597745796379230902302553217907230567795518881773012040677503747308297932203174499351715649244421711765459140383073936300097289675289107947078355655011348214404902764522133979586736694934216385171263747993170470998712642786935000766782387420705022746869545207237371810878758384881926450214004436406616835476223540767325819567518961649487834443734773844585506862933073189671311121098137373874088253596489513344962615352724991325206769970642392979885547442669544999656562636463764118731223978941869643126639173035620552018482585428274897802332407315428030049366255255613215943669027354522243376950631070190155428748502517888731153628300511378538436246372789487332129052838727369629820294382719751854446545678844822695207174398123056289604261679570195285886988219647683800526329692481947159051425025780826906875705325285455356141431699375706834379306940676794355118533034348573384454190373660269750295112186215265094352929728182058517887205897800844737022223110933505498433110173491887140247707312778249139042000576388333759438296312963594002305126493005339279499158940195840462312793125167994528905721524437507189239389404815168284570844752176725356907290771477948201479430006503156689975061964480541398518851411549626357610649917881202439628836148340597815626922674428758167603812882033871121190042377279974891191198068421011639292767925983343214859144295601340874642420198618275185610384191604564126014559747725438928615794163214396387149963175554350587092674869612712928669171745085352223628901054704890133692025771079337112561275104940207757398862571000514491069660345855349747942471103673335025758223666453482662202985972868540759183846561447863029011597954875736321664895720433714833598490412717219837051875273235363421194378734938097146495705731242323065769953257677192352886458741925661628406114898232590156913817168276722046088873849080642653775389953265143589898577655143217517564801881401117228222410253296323535063193686909086544929760284603233951066864874779735405969937561799049406753488079808008085742971659369663832301708736663323053077502834515716664887726338436457135062360208223258204097778668457352183893438373214778320278855059278161708642212901105575541199829283322374973660917033895082777884753989863626380136533514668398296704500872623420486068889228045057616788409048972591395190757746752307392264588102029094939592366401896510573085462052129501612024439436847726512648566952110214981791634075228760065745016748517730295168416505398450823397817784585148509841824069084694345080762542141212279451223662433160781759604187401921637947146467688651135836222079924097504906366068013473013385473659621522085731678657443473585309675347938683212073369899043722287258757413890912802348617964781749043956869244099716564472776140814428882460823268018603719491597963336253305261698578593998180596079454399169230831781918101138113953822259792138978305653602020588020663650216605087494613682379217799281708056907121930601271963427684356802260713905306043884586915672326619252769781971981417267051225884904394274250707856660954556975799659133895418436816034283435988385177690698801800017071586396560018252591175684725688787352730748816842297321074409506875043796442602957984930231004411477654725478860743670992960030367706779882519212920937923026821265022900344055655865257951973405535133907539341067837855676871488534399451546498527386924593712310161984962515350064705047366327802801873281845153917385078818830475131860819365919137164516200925482915161297684033246831928863492727499356442636805260018449408305572477372190069806258021354976499592589612784202914409374281213597352011002663124756457447267592068857451724853859998970053972822434567388765987770742324272770497969585828803359217166509102037418689449503039952329290261061354240151169509147995624998817260371281283035742442616382518553848457506491545736781749259345973596702908355156641007520443713156613355306025415389713132209712276766676371104659027481020373557961976543634740861665645253843322875567575969889404805528274892276762809518667259432871782805747951454488365778229331895474661414643836366224095349389049894726687442177874418839664134205388856646376065218633887718361095212855767615673210305947987422476509864134460206175913121436726150154783324820000877373763943103688934561347700474473376623353321623418134590145337256374485567890033763950903937346217973294688583496632528738310789387339935655217422272426907430827210790893158952974649819913505796145326380616415460952013180679108495499011004689474806345485658069517432318374198575088242744847991065737089694492646446546176938878438778088846539444339189717333573750815322487591118669512039653093435484302624927795569638574437017131800667056053187226561093804238559935279153506418624653197960014756443527071774780786729223872825181616316740019953220382703204273374097252263041546030105338960883565235691823452815942466703098111361069242117460380598496267263085184441268452068986289994365352723774603623698241996216134280925908879907178586711307445469211820680813394561426048456276900337273935895619501857350485398919411738315297190130123684374214833017228139981877034106729327086597444083174600600052055762959432866986644858082884611942007458233325228354206225307189840781910677077781086900510041244167649199178728128150129697929634450824603685613426202864694959705053045350844411870065381004305724089454322736233758918603596349101630118209756045971913214932786580044776857825173388376027745321166367742581194952672787002685118910483925047150101819377527569135613083518248583146191967389459210712028048515022089649695518977502317582931416500263858695265078029127442716170118336897211509318023124800883709632947500525498898389789287970526124385057426731980200273391165417332878552042219274902896384180095367030370077032080949182917887510715730754925995871013116067910819392066996292803233545630824211444860214608928055133871515389356678326270430842164588381141461629603227696082746844034741246034273642525032225724707821936554821449356538046159010995521886520104545286933854006263890454084932911639590307735959576736092396036515351357601709142634823358572239993184290018050695612087957257062181655542477021157939717663291146193173876591441999265838999191587168704890438353641957434562762594503727070647111557314257078661489191615731293628219386189172279117614873049779587400362186709842728009126146780698766690197214793145801232556613037938409108968623114999173346583604959174890681427982224921745789590366870144794145234038519371194269016946416325746466809399666467182124692924681391763728926904579775297437002102668962584088277044579058437829429875767140112187735624999554709673486662036338419673015731370964363066427740712298116683285449671747007853067971600343883433138455501397994217947327804033476382209592992824973356849714074941627718971235944246606238288562755329477634656841916137920210940915213944642787535835820741490537488629769542497112180775387594038039554053263115241825845568295082679930460407877868086717698246962643935035820914706183436228488421531544591057788193805622484380559783944594927458623784948387760385210673559355564367909605308512308777136743770267591164408134191416192246287762304290754012545017915320168394877654420745353597794795529085798626461898028997754297737278303843566054987998692254674595666627626692919867498150852455594375114993864550470346519279068353234714114837129296399576943061267639031197946926087258149489819817264811339993537210098297967878370933327441180547306451788008813816951523655639170186159490489742860062655124719272901399191263074160361884680038921475950737465630021975640106416736746200563784171636540133080537548766718717478034173754248546074084065378285609345604107977812511651151169685792065169423138067221089334777395758973856578530787076616061239850955776798933119164055693654097519889118540462207889477180482632463390930706103045645309923322524096983453167649759602587529561690065162949603836124103168411182121795430993645155333232160775318660792670484143166637941090791055971194092037579623747122701061668736007473521626073065212051942318683521952187302552768006751590064149305630973203606044551921996448200564721744245795105939244378914469366022742560969719570024427358366048024961008269703311869682173538071062638546115076396716049164241434951351246342808342387574373469395994191565231607084601991571142387707378988836049267361477048049441476108741019292635700524255132589922408523731317593765031145610241127833939560163997183111206993314552783291161169881124618727471249368153414174042338390646044578293498805872070061978698666862841786342649053322488469417792860709860482516349437413013532320801036777259689973166455885292213317386152371977638838586466908230158785136471729799692447063110418974144905831181804051148803261742320588704921015568795301097804080505897819129465381679284941034957041620511441687917820629349970168356605625939481617516058227999263874279977232149158394367055669701973920202392323915968301083245076079787784433660105689628314820151274227720618731691257052723055719564201577010477885081485433182793625010418394950872126767639422783077316462733641582836123586156450979867577586882682081553077608422851031044967494794074466105399533350632232708188350027064252190939961421493619795839846308083854632810898374369051947359315831378567581610421883005578495136207141829264307005858099523506897995830979339454034651332592607918059336997220624512989104482386506967535898137544086408060338989463384086377756763920359781938458351356906963326483924627190353410012439186812834521559581398571111694712236005462873115871031342548838737768005719196377458811427230836158803198387420479330460925682182948069717365866723348343021772268585787797573443295094360667889845002791226283115411097448086508848539827126938471686805699315541237979336912988753724882475258147949315790116662200369844802547973785672826819288241222547853415418243028274923376562167389381715285972382453907325246896236926767345932368172298712441631022544794161975801399094987046874252752091806262402719664830509156433775858400640075051319175061904394467161905592093894542407202216979821437902328164394409928194426791554009776591351648462783823111014694037166553574728405972044151557990363933969700112680275050083033695603071190861815406361546020553627276294679701663489970041687932465573755186879973235940725949496245876464232755687065421866365746014398085440744762227348720679114143190228749556669469437090306281820809663955420245523621184820826959954812856070448447420100190841109341602513301265347869071586219671816201506737751251984380299887868702893350888156620692909759566804924831699351261726537385898973148977766879266535578167041142660741656057387972428637964919989048374324554162976013770073601216201237914565119111442256106229352079308983556990473431844616122032144839041605764924107464292560127617094828488946444861338360449794656989620016977862551263661076326455031599861414052796579918034920384317526167752111136648518828831804138634352960782462024183828377393639172133129142592691371147489743843556318617391728942140560234099400951316636397194051408554555709512064206553574244460372138860460984345474999058830117667037150186180194114836238672718157241025205156864130236487003410182539923657804128102185475310820430217500549473454941607378128833111349411512196046680748325836530072805745446664244701414512100222344291446577502607114438956567457279611034810371482832856557591022350499796002072941466030046525593960514270892605483354839992248721786816497283226525166997776222399113376206665789349898712673894881096550953654387581360386278756679105308992148563418033447638603589607400454436600068296532357877024308099014613364330349859915024930673380768922985488719797627120307054107339995190265224969621836904181735311695053506431695030147747769491327681708283510955483952235883492777453205474390435654953353592553050029274736863863216283600171250128969109769656824859323330128660788128831527528234551673474991158574922000310492422405758835216082247483345853542916074658409703390079305289135874929372829596413495920047580227805005318004324365154574116850404754401300639607644598302144779890843819961550922361867592167264205513788602762081343799676157588800729909701069555120158896648790061195603104114342213861150905889852387523916531602895553665422356825284707647990298318444720989127032180337741375689087273091250240815217579496143039132847283302997284654566738884863907950369190339422882764260078505297710614105773950875004295551280700665751051817625256779934872037987615384800769305339848271158223846619488333950944986376261692734092024365837811054073110417668477272736596667910071990817620144619146755039993844678266140429701456779137297343629813616613470674784998278383524906921830122070387870813118933737207273558495368448724142940351690960616974232380688061722895133133853092507360296252913994874975261331186883235219466776786909015843711202722908457336053369059802388039306130673757921969600163508236258322741645138365144358766842000675920348494576239000413813525434065843602119512437070432504876094252402189859489278470915769651000893683664960475990220133525263957972512545710647924745635636753497131222347826663799671358628114911475529659471757692399867664621465176359577151188400195413154066107197037842942211659711116485012178733153428492341420672291966259888922206719316925213710136261183486661458700858172175870312041252453574395130447010278706576972950471210354638681520573523366798792571489083470365411615985345527601462784556655569312234183068002169801491033191584177896036568650568888550263700344125486346536756851656248564034774130506942752607395052102604845207107019966364517868102770599175254096745405175634078646730147969774682043231639618891808860820896898803623937117008787731845600473762706516769223487782530468264905646493780663243646042830646500768817166779649084235042455866846628018908762495577564414695156501591485400986249204007796828223909168831170736970223415761755144649242408956362363461267055356823772390608116701286078128800384634235930078525561923575703685562107871932553505749410373281100875621552913122820206613845154800278639883950302294003064339119567274614741721768158587185852880483505231978389692435461135133976413698202802718531585760771678743099545914677500822358837196575754727394537012044020965882146281614733580990378689648891411885382663621262495909135332979766161865384263455446216241586882535534818719960506338059082507930911594961093598958260063567738422441583863602368820036664607428394700542870769094504936132727054473720272548251846932862723656900534089511989149681723398254596871745863522189647419670234809724714381539202511083605594452950599074561078807864494455834754153257710792917599745645487431675770346956628620859260523074992622725465768462129894760930936737515446764459898286104574631607803198749255177691664769948030986362856589327362493228316845313356385043662910383563575337453346425381138150549848405442610545116488083421255291369546336130553462160346929102505090013444360124026296197031014829964600206794212793641117981308714225588529609152503581839790243423357357398053109165140849731222865105673652139362071907873952175924021076909559834469303893907978920586615187236446110207446874818620763876940542346113690479370019086015532114434084448358853681797297408602891001505011355558209127197951273700867734620361870860963247871371855413590723177580089516812348716010646476812832668794871499794079085178541759290955861133553120128581282422119038161333940518244634617622602243865882679067156261819485141721070996650748996238192750483618643112918517989029011627751714961551800801912401044870078205231535558141466053841312843833333785519329785420165132513917901829527056959208221005175775693296926258781532131332152148041598979789469731829283703964592209247372144285551188638212423895130671079779377344657542772044995412208906339952743919165801732623347354770555377436952527993075709033508578643954697252045724007023895380334717374732647540812235607651609485210108151320505606450999661019266367366091059279558370616795161686766496469759722248822985360949635424774211853609527320848192338217419340339154231266982227839176768767003960620926323368668310161571702392167492613749026694064894685057064692397912321415157876470931382654499761286615928425683330082490241880808786818314287067951887880429115872515645325725344236423965184511519262671932505719378036496542498940023129114713897296342974929877864486829800675050100972830391573318271418555166679105780667636981520556593864342674209745628796183209549090734412753370851384773980181689308102712041754188515568158896089617942946527714159226597306485096093956713289378463000663664638756551912579874424925010146381659702369177669964665139175482611447645616106133660588295086111343944937298357273246703807706238726746777499744969592902862045359807552874165890052829412863840284196863666053592860399504307766779861874720251995034347701747176075831145785297290426694843955610464038484226950692849300934857653432464244655399085211738593429634799541281794745392005107263749016124130019502259346128724103141343434510474191411497199180845557837631091186956299045806252638258728629126646523332530055503999134516352323081358830158880675055671982182428901815611859641920238412040810829343931727857512925979735348964888347166824212054274252059340372008292643826597233767816637046045523245447766400687989850361125176992966450832623730064249023154494474769385840355421511659133639185098334469839201080469807394212516953265788202608232806562820049061231978620377966890966933506052903751504992363257012748640110873407171063810649021800280398454344010805170677575861778265808347877635732141777856787783141307605042708637165761221448328404335089991488238723476341753377475421842602777507834323203813480432541887974192931904315157151437626732993858230124814591467747251628433595189282287655924732405477968346103831792437217228857716903831328660501681578893324897958687713643669871727532565319477678576295693919832674207562160530333453883568035449576234174246618631474920453897044736604125920904856086687967990742436225383009883302254352577668216139142073497002174048572553568374891892986508369724773652495579255892225589064451215605792539028860901056141498130296373317907808132495536138958206034608569790456816904941901397286109873217114041923279720613584437660034429554459019497105496294326722944754230706834008210689074571467601025946839798785111942340134419309155858455770089990734720675812001609412770796182992901098599078606494584553303352684853740110567006007341363505172416470519292036777719672365107962309675148249104410502610271918506622930249924005876316585858116873243300929780485972169316373840283157198023814668460198869112512453487515344738965784657276329564310663354427305818047999206686996972152156414921359351040157023373228277860761776070685331612327659866130992055553597886380639116983153834749934239316780910625543103410902147668407514648128567596520313454528776528560179662722713852433255260265254927942241231065294241280878670654108805436817682468852854511070052657545820243757965428531799672201542403689269079369067198546321192567116672657973875094064515769983086337269735703056215882756564832573601634201461632848231039889122645472318545613256192457862328138807800558146211311025358712070055915558880557195885677143777207627953451275753696928567544886750813480595369764083112553325446658173362534258937027783807438507413206744981125860718195781105904387671497134621321281299479167537943959157360924843047867628728148138364258194510605973391011930343916677633697457619339703884415412471556191851779548270541548739265286162674017721604309907661109448486714414561808418447643390988632183497547149172898448029948019421425977319666443499595122482733710904314267047045294588486422825682668623179242240454206582442336276557700435442909645965105579542708356418055531205109860460709127311685220530696096888581445710724517318928416096002489675305104290443771138000299210752386210464692307884770237434214480846007361265139525520503899647235637264081038189149572329801929265859284382607746152063856671408942674774269536001438076567066953452534057783972107516541537988172748843849594747266380741860896968273945524758253725656457671726283294836506579848656918284493119174248329883301727050349316694516246533657596205417186143393724515371236439051239360224693306915075191243436801091047434451622900114278690326712924844308754641862353773580035934812102846265704223215358531466555085908713198649773875733978563658833675022814225924121942700118648844057497006141734170563923902734912258524363058796657762697152905653550820056100718660417128060462627124954209355772511382837962741170461974520664990623205559712924029072112975295506188257730468408996993863361533829374555236256886306699111140908332638155635544123378604089399843865746749579308182705682299714574140908127509125981571986673825016837608986696524460351157411206411255196634971851910499671702640473994089671711564860438361755774015866141352573849315195811754618569629564041312308095159648847221816571203000218044435993765916510616330311865618088827469181291588260064819602502205475110711615132049622261986107392062207453618929696431949577947646391044642551733904346846617134924271074555130558092067165079804415706426053889425183378098799104676477252632496245770975710400736841838851377769219558654155070008203963896757532367010339815422250374569811477645033034885415810437514691409639030028130481712044984488938175050756884091998611813756613074733569011919811554503084251449421145537653809821764615187243435799120628665237594345146165137653502549400442019045078742538590223880019938838131346450694311927435909350282543772643709497204556100656874629299185236322094891489047662232093384758910013320254009562080509206048617832616081977658452654130629585178113205800409767469238278445322710305312051392732157795962533808394911307943602943377784857468502743341635614437449865135706524082556292474383872766875666401648864614135710450026764282251981644885041485661610399399553085923192647436071048550791314483996129405044380022045433423062615100464199818222295862922682821490999935795610015068200883912049870740775904050629036829782001607274046884551542386016565098753722266816447088582091460832513621141192763916549823557131252232434390835765749632861706966470744742101564308826946579766921170920764309065844753266583149014730366307235282896223144180488874404617774599146218358989311266410542125547296448242411921968939950262403035624684340633027004045932300229415247144381263201968252482216450980385033996474598883305033824049376753266551986344074046492350987441967865333914238531531225637381196332163108108167684621486324280674493414688505546003949417838748779250350764806305526828612815309853489219661155576046730644361932248296074441683665770783581774418053835828582777658051816357717591787225427121493793040968690593049638894822770078917056158901385098699359541643178364448033658445705151877418649233162985013081237795198433380557331157614211293718905902259569335967754647589641335106794442177534589944421470246012584098786429935002624328072677250667834252334220214954831534119845779605541023502555161245040544397071120791998470293072970888809609725596305012816501639935412392368979656662010165822792537808844831131173691330695114471321611666013907020927017726693266249151344203668259792656785187826859803562853631068164357378298136322472400748625944098949934335128426032594566702647946032717154095703704690824823749758587793627603094192024252983592271907913791763520283535249517196673240459699988775331070919953397631469999128227118513126942511009160016345569445853341297535832733026684856207424149151065320430545493993262473331543391844025665135049989363033858865902682443400983894192364936513908573011348456213338800193678590027132428425082174686320156526088419209644526501988908156231287030322298455460322017247419728068019710056658882743006381332886532198777968867592985746665908971240513484429764617904194926815338971829658191314343563334051018623528113329958273421521232585660805032186927474098832085940000136902838615632595862447577937800882522934675063329478703187098358401541675619510467078723505065258829588025143356354920286217363294705718484723178817658733648530467932700678587240889432636999354988614959221514728134646015029324115068297032820485281123725368910479726726179751868659656377636605429243298857302853445804241726641681892412126707716955038667212234767981327270117112453264066806671181209304366948103989994916761505334169035105294056467012164518897325490291621505188508337105368489514372275733093937181414495447745268877055321070030805597039595415823195327340742272433886678259420468786281560328876230456328741518523654063448107119099761833512559000173405120720081231346318162970896485656801454805523087878096802001566711176412326858701520964526527694581957563402336028769762729655802551007282925548028642890060565937729725732611879085937066748606588457908162660518863568561365368324721173876975579230388417656926869128572811870506840884541757784170559821341753536711308587641525065413719230683485875368990860408666334289510790245694914852214875249430581654833572113217444581837076004690272807520169726382678343277665769085674969984301050659029430784843168708035795745510911202284339739608309708460218123733682471219114874415408805407601868980403362880663916359598854294843187885674514652962931505314602554537973177709740018835363362175862692767589275901370396037232787858116627542756715945219454190337405687080862588850400724105448073441459436715291371964715170871390260562774062695606017991048950440822930514123407707676185648555479147466262198119349591899348209396320223439714232926680382592962900633206019111936776860768024327039516338502384131849996285112205774578404447229838076145179327035513005001313426026644292114562534854113097221451137949010651617561353188685799347417634186011296878147130863003490722403331016687064415919162993144635819676241339281076539517200968671411503280495028286206167349980209266991284585120966569022453043622754705461349374401660086918166413386429302988185644698255400659098308795886576781657448590439545761080248201911133819610665139021847153921760226835170409941975286932194683487697667143570319926279626410957043000086085285206520015702524698263935989405997105577882085071053531760580681795743609117502778013922180323275598096273557358358405509717982857519675641168569994208764909461747840951491026050056065044712809435352524128247122067289042980845451438608500220607038002147001029613771131578013788260846480831961009661510895575580891336309103016187768421959919868351062486395563921168772047842148749031202584725393589022446864178731261785409571763213924724366322999465609141576815976536008154579853338519148320968153628052080875278404406445086223503755048450885107494650418843309160034520694355886514305995800993788661620059517821980835309863067376445574783979344681823640910347740398701691251362972496717138042369849584038251268459787466242758560588158392958030299539865997051172959003802338091343082469364251154100887870915872250974960820166972105069896350232880977022165797948136138003414100139695043637190256235136049502272648164521409208896014899161802792706341150696079555368154575848461755585119877127584848825633121084692412076743713703027153032154785590914917781128189120346179235308944091984339468227945674226745519466955541137014265680946997313528035856097845080117566994731244575976561219881201340619678531529685742893967037438239051800897236640061560767078712605057475236621524351974558128459874928422763991197889552185310198674512143025104859521490903166587272440804213994848108591428897747700226551956283240890593039845590669335102262669834712967091034603128925437015237287046479518164037884048510240909109584797361821994111651152268051910118652264296936217283530314180644357648249866091594394895972534445442565481519705852106715135004227705270269724072504846088528292787074667474460613957675399796818463550083703093399649823901182066944977306549902156833550248794562608781100569674181232729957135506808318392209711823800474492476175977118121540285459730604696619790459297239541522875203641167855128240234337828424712648342182245452279767708260224164169961695098484863296051261716854922600671017317080698669779314101571278072914885131241403517917180106105862977306047016849441143774967316287978982012321975792262571788809834626207335761222243027906342750691135716954116520208117492291697671543700840797449017205210238715921129076945733855312308900329141716785616070934779124553522881999851638788398528963606080663994923661679152377967428455409797719686277482088506535304917796768329561840193694657029508260252813294410879145100544826558275965903552915903374531631793194994017960688320811920134999313667631460007952633748952735465989910702470909893037276728863148240816212145103607888560179185569910586803102809213439435836132530707960278464500452961786047067024000995332729871160155496389823932210796081631971625065234392114453451879646032233710830650281338455531047958729658690153893356462248332789222324975628597162333803034500704630938147002310460653875927878386172884231717821942584334134980373082187946659454655677662150756663483058881130519400817800242673442536278107316030110683135945898129900699371224719230616287319268542751256149604993756733174833261919442760593300301513614504500455813916554677349010045971922144204891703241937557035993455614752113761416629396560899941325378535815427756477190194088501311575442345443921974726096902821494844344493988117164039203873617243947935001054349465763750744889934355882902852384570725651535736122411302394765093726374202312293959137493000020625334791417505803333484729350573595201560717357430323986369899535226078560046572636989014642195804331424025694594288331057641847699757434742475869917784105924219581311557530239758687490886136599296273367139183692807641618272200645639544197299832519367052023190071667069877421975750301167565305910121215136695635837532116446556326954406303306867332792063955473562596726303300120611710124740086266726919583435502238076486440831615256930852709554394442924422811433304698918191907337457055804156234850104717036850469981581907159390348288350786118127609122367138602563117829106791291799619157307047672327077473370491169268955063208355063805632178202562918861313045025503453382257492505179873934466553694703699950547805556353491862462629605367195797472658189490146902599486699044965790747964747672635171602844622424752908623633812147358018283125204479857538503636676562438636043422300447075805315819145913571211711505793238154239926414585993795320150870129046222444250679722383206986026287711230380611592149832118994900267933767870895035850443802393044648937217417089491644584864199994456787227801834828981283840168395664995428064322307196395688967306533017618434298353840495942095064509022233916913059518183573271628885668200976154173037844115503207088575790723992865468373105742265402071577345469146409807029662763879587812768364907656403857137649619959617717726047199389033253939421558661994275292886624343836550843922704436430581088991270735939028763402736213444788609208856825982462590515565587415240450384346881925478016569646903528422264567603959415128396932549690260230179025050055389223164473145280172288266683565145599400719515990181753242010446962135994136643600379535041416471299118892430145706812302227696025735489867463184325623164781497782495558878011001809418744681830700111575984583506174229444551397625375212027339899360089295611137119551117131215613060265838237161336103848759048348437091587031418252077695357098276947408262641418705737543986449868293447812061377508442629721195066489068955588039916481856720605162403834671047810853693967197821343102242317366767640983181266311333226288929242778925429917769757037201226979131781745268596962811394111043840453975441918838480106428379310811314519762235101354562779800179472489302515196437340983418012167122544553560277226558203976293645555295528165118251890551310519188038923094252310898378121382543120230024604493929875355359202800801113307179189523848255086140500805250601245003947779861283285185501160342340883280994631806406166978959911905295220768632018923445978938967952259752394823426910802914801352638019170196078142684103064334197630851774747835420608318675118487094699843533480199958369860348492672208803077215920251961528974367550657200967928866926059966666137758107079191590013443149537205663582564728800319455307658866697965884084029372430195883825706103858906265068344487370221905513637944424146905690949544524294561780886935204553887045846769201166996179707967898718255701034038540629752910492253121096354120406937432622743950592261762647373371768648434846457066087951511244170896942130287877807778622710299325178837811449524503765262679978193362449557091932517108966343867939281665186315790725369879236227474563003592101368860162649702272521511547915830419284156846173447823899156604702307452304887131525256022600895307874327410007322717447535949038773193880836776964268323495290766371815332935386738222412358679492418724694132167621987262770794666201605982113167845168985465548722742675573110652790619022635290514379206933395324157926475609857457494465402436765483106815256360026140527305944659465097993788328326552261846156939940632413926762029644533648686792537875585234779990023333233052452918673890694115097596945778992684161810439373211516258171464913878579092907439255589653885715649922753736320495606550063029955848007365286524672161458858343230241497690943109510621919764843125049741371164504958552286821585177126621458333566100366208242194012214239479173750846955982836922668211824793755280800693111932168638698598685943623819185087807980997787982462391834918177715510185767389255613525660984254226658508695295604965016052193518186755219752654689954503668939498345658081275245032512873449374832623093966505693744578730603966184851276169925487629627113787356683720279280543115135940116347757088994979188071903891682666081081927721982623076485199384172645416729961882478870481702042964749735887866634037381578151885364765604307044492358902915063420689445202028325650978547643806480678070900174049106883694802884552734540417630057446497982683575906985404938408938991917042397473520104944792963270064909156090305104720833446989956743825695169177490226650070175382989575418700545348014903885396488981219635409793964938992688943822640117150407995119771645382264796291695771333766277927264577260653022196867452112822688735107678834075096641418700904947028836171743182799606074545214182783464380928434913228962554799174748640006745385619214812925867325011563762806453223322958824644755235071904760654970149554301995585061817952695766962172552662486696581270335974638067120054751671115831094250619119793058345074237973296649456635070830637035985358760685721241515004204900828748565308060530227951497508454010957762121290538088293760671388987036182384758425123688486527400005204780303797768426247040247990623040477201808504100961190605351921383034394258109544226665759899697731186375018232544672608896913851516629028160976590569297091942977872909393165027036103267374328326126785659412360550152580594804350149152182932291885314242925352831917929863972712041057905160889445734919664530079904089402608269391487387420713662578834187420056176025771699592512958821010373302087917306639987360775551698075114916332927825771499882198635186600732521429613699481019890970813224236497462883517714721985803683306132360311347305770877034331297408146457535233068410386920700452304278586303294632973718092944119580280036312323979559875899847115898748319656423430319771352859002619581153759428478872230827076877628755837069533756906230909066675527531168948009142778918718376541687342377906841977737311138137295642816306180157495281479593081743312797858562594715542724870649051723405894426453156217717302742608405079047000261413142257128639100743349908434005891203838860358266423091855553990036362403595509818564555593580628218451447263817873700360358268384678211681543699010275622743236330464334405736623367121150758078432846732200817917340306436943189305205675306125008876638790520552216721640671473093841187602361636727860924048179685528825333328745109364951346043717530204811200816026989550907876695696869689856802211679883397225262016072461373162770146598039577601080764255149077508666209762595369016284279415724197392025663132745018385296504822079459516471083313141156599696274881375124255925393757017303112839567537960506696091525948976404951644085958746273415946547572177455507866885150788133182557055342301015029139474137691438464974691568674911473597794335660343010784103481217193988022062139463022327826676838684075485662764457372075923524878443855723568263685465078545352437713720693468811395930143000627042175323561604089952767226532082473827000839115424424230285984257773141252286310606619909045879596975537163845321105325796117617216579225010538669163715061099260210901238011030903213044405946954614745411164202943785854424235647668956461293335851013748200995733025894440050201541853928653316437075731471767952585227062421611989810088304202349605864625289927400549203441640183595568918789949267672583630690699939839505244116249277843617482828549502989059787030593107592087548827356824697244699845600832557710352338990206912240851624675034962804433323505087311854498823198597308592760868669880294414204096222499991558452072678808281640835598940490454566110352816521581748259931082474280501735422992556678559563070646239731977572287093222256396907781642313980980704674618311645894562559031833852948564028684103470872211759149560119113883051396154456045647470301961522708234279205999589870285730501868550267318559374515183415561696157731460288139875775950550974169612271521093402262486982320468756235961367688221630176131726760013468414892969484325166620198878788000397723743901984499920390870390329387008447421604220784089257901063404568780156220183499718600301752612805776063367195704429881950819030827433192937803393194365390478055670877276109191067998249027765606662415973512252324409591117469945055232356177957609172414616037275923393410059021650418606353489799790956564144488752416199167405030097176388984848795661114468284236849394083349461194695247864962204027789748600481615984311722023890994064136313542534699389503383361446028239803808310636756205619551042205813806278973555361693824557167591751544169810494759524550470561629512169578301295809779632809874643863038236817243507026172033305902784231153874770899736816316170668231516601533881198880426863989238928523939778522056548571377982330517771730224838767749324933470759457620527899139630790160027809753420563860785933910529083765194297389105561951646074144209988779156711161804812217650488356230773128579303007962332075855873573515915245127376380214648474879204667414555485593683407068149215732070353530760443990025026031181537812522484282497049876633839159312750077817984399387801169289207815446925524873305365778661921286788105720492082913615787921879283490758909827632649627792229799162391572294888606434155526000281650045198118356097856016669541254507867004372148843636411291728561066552649568486890597497094747445965265623184371551642697309855966532792861303815981958179050170705017952119231399168541576257247270186141867229583079735177821993807632108762011634375671516910331469327267871232818302676419399166230777871095295658790742422890042670213956018266096066020040685386875743858595670818452620996629729277396786641707873329033538432544062339736715523032822848557096231403745870069782886621602121061278786217966531933741468397511355438283531354377311134790325964014834562930626414810581504081824355545978277248084203919866666217509654435336519093212735603725226143196840182572670933821522212800516982907119267182929004701480393819256444748025540394053160702137167832191502011135867715947362662823614060218272803483891731887654758528135158960641651286312997226396992692957619380829721947867300530613280284904026882116090782210009208820263399893728934477645856840279191355452052753487223021725073894847913807879709256921396975102995746445839518488132677369707955089023386900118070658983183254292288844376130249461061411816475302540196002827802856959837534162860601523539291697940082502696576741901880237720084482022425307801623714520338707479472755564863764980801967597143241596278081068683776641147667834283621318828034996727792576989713290769968619583702899987888817250066766829639816791331217781902605097761982807948883153033092940785358005918203342605098763996513646640415714630187544095578295387913539284217318128017630546222565493007371471382628911915900459337231125788972509638377094156855979061111508932677201510554350037617720284596291246242962519215429213501965531096006669761396882703899037992802382159147608170313033448366640970541696022568514059412503372195663289721023787851057184966025939552293268979628818106711401432899823913295656365295137917391572744846421399042693415554460133382890062589625196432775865732340245817520335088184107199399799962040867606130317021039307081548711301268407061368515261125428049252525261702766478106493913873003579578017253408520576351313492354695601330263255765242245123981639508401111894041144514391811438365447807465183901592719809708280524346897836892173616678175405238975041772913516965525154965881748765782649099044976672925773360740552734412222701365028083670894921080803770001410308499450756771210741979801814325069428904467668708530694011549765829454518412542493935191862042079360037402345282796430731282913638007684690755004677741147586863033106599556589882906097875015737421431939911622087657841070404798952519041661587826704613487520359313029067733268405980376667644388524256395893742838877732033696364164027854761839760796140349767221697070803368382137203235300305571473071772447566387719756249674361668361398925576819203100709152626252441360964289308295396993100858238547557131958140666119907066598658682917173614814256857401609039825171811082392433582621438380237509113294927868251171417714340115763257197260722644615671844606719624628128076067452949378832245017046325481490148765482309086339986423168709482122998905324648031680205453107020451973620696781236382290889489331047908281126553190383958281122700099535946650665945466032135204453828045799882690562539827373016310522284566071942751542590240477291241834509009807761793099375149681295737364636810805907313254335418525089847490203277318434412597923628362745704176935117184250319793064520908504832424787338697506134489382007783975351081913266908128039493971517959819210830127295137180783148916355650118767459665519468548740103116115459050047525566218513245134283576531453904728191819982083878085749026542373561106089462048204111215105680002302561749148165465790680690489909654940174273562348955220538128346454238475764582439210439725103282369184446608006371370959484261566103563657442065772409231741920370596947537916714546495621183757822793822306477838644306750789541336458349317569950234237149033614465972825228615543540850289241724385136684105786145916575696623403596766375885887196279658142889828977091471403965677917127205829387078051350866255423765074772221235898395271560671333903029488571959848117506181696029031922706609458246237522898993120533342892229199306551751887404798124308552437906904059538486023288416023431914074216390237416351287532145458440065227172434633084020237560338920489350334010016223264420900302095528878290631685248718104483027335163014187258208400564613829129286951356606841296559137716886453433954621921613979077061887178054414815250522162953679061381886046497761048832719368458677969643943081632426428516738386258564826624799360787160337747456845174953554446987976746758225365012878106317581494761026981800909554527444039897856368036515082009381480324407846700368797214727180718814620410730124388840167393408270078162591797541593171453314163299058183377952530166076169479447434148789256379757482372467854181561878980982187950033266471038500543424822306464989138609159530300121407987452891787408117868415110029818002530815605115527746680288446117111928626774183229523244491632962154094932270675021766979053477132049377553892347612013010007615338339620589164513608349607309338649404202266916560272345801240134917456328893989552861417318083275000893051404831320743042121596518030887339470019382347367318076067553081715266458856186217883388894951133194796091876658354444985562260981259034959403029464444500978251728529864521102323796361748418192807856683880533428236825433597512563925040766609003883378389446129430652408992262147006154344001642016527613194742672930103724287861736114056705051924451280463550792791198571254568900359556619259479658348849769836159373790726411458314946790108318797420859158679494736368170159842204656769000291374342850628789849126293164765396311048137309438853276091465485078308455741940940710876039647170740350831532503418215448464282595517333619656316861053804550681745206304768401464003790764021513082609000202532963959969718185979569293626246083772888026330270160915476387667660453490477016773415735237782199599312849496095902301886201023281034243484131411703450560501425810711093341410725931402712268035400099768311619952517325582461071702548144941352988731095247224677608784239110854030210346976251464290558769034237151487413505461509248833923419342634936626925458667313618216965920965219517607141701490169737384323155789665275365141493939995176035157870507820859689108461280406275659935651285714729833174374412652297234866433179860937189320259945293064510482969331841300170433354130145019499568459236062827161508611828035248558700314444607928685987170132469126771571704648891820876935515412847464312469386802149487364121272827507495832790264561832244662779948009091073558240934473352939843253059316339809522197327832632175235045793763727774915950445035613549103743659534972441836459369037212440574824534515558338307227145805839385985519384832263403018443275889317790385743090543809581489745855559057902338749443852108024775958626915680848659385655900752629233809742923692839237273178103184595983612835265716391864383643519491812938621626429056263498322087067601713836182554060620463269832083019378874767205161096114713241755127222880127295975147572026061039966840482372431746569747030198374381611131472876938321144586169307159215534790834715835424480468738973659437748591320110959431845302342922630348981398763186838342880684830983239684571973273384574188034073135002489026694770239997181494988881395049092979216446752347886511075805384153159814079614057152130868680131450774344519527580208024071614063259870916338374646927095951198057346022542324870005938955240537961551017920222262764173285463547704223671214138838000426076573679873362435460403721323327081005491049045213933469387956745991785850556892789897666833168907680995613641550457298330848996269117633112454923688655904837927706565538910741654637568707328266784224645607906978826814833516459476154599259057130067537817583981651592903209066946435132115649160836336284558409551913800490895058251062073308728762585705810349702268335029748854292014976858035050341244345311786926705790487979805198285255886172971811852876876844841491472474519893667151782937402124583528734298896525376032315773323604290061185270468649986792163294147418679866611412978612861814892873902024513439328232796896248224385479358139226293465977066285600028974615960521790171194765707052874216176094459396285253511596177642208042936001919217377954395059064766966879062474708942686046675072598754969283165377118000210525086253914963782961044414706576633588537570293265292661123756729022468193326108305469705971526405160747667522819887289177341103880450657550501044912009692255107541842146524621252354333274895001262291189145768155277206204469728764414035886281835247503240947190168144663669078667882787113224834814191854007802031743671355115617832468806438068027935648354268222861303904065871425927316137966532260270777505652020605214825837880221841558661321888136182371860197091212509643696356818866787055092234781486868777381390679855457633726723720033891493445165730509663004966083343610113272951620715261328624046972112640506817586453416163516822809072925655801583032141660562987059712753311347740017077586679139217778523814619648297941406637992553689794215267196495280574790360053498224118698616112251657496955582384868453020327419413535904736702453639169743277555179586612461288138241540316544712305469723883315945309133768397686057038195003064514406455408486490193545943416274362563739288848607093138930467294732095953221831587239875726521000133928361381393385387083676347950390456184442555725573301417569153929100897424168369616640981817289721057622712710721911179772532307511336188768315680126523149346960639737827603482936139055446445757522536709717597238422136367411035784314948590543192326409426215661566016184405475614971584991623704800230891566206889215328749677088968178750539625815912481468398874080807885065821656106964099787693799063504573653097485788191100309287718682631465319963659818248707033261634270522704995088166996819000462872131814572541704549076050160463170925094549431999800911291523332960377028542026576401501684254598448150506160551922237713882469649944880601877080942679679245802651282368096449451854730933315597517276290151301237686444018910007661821114586804735184882374654766166554506502115136009296751319740345807711743507862297229563378731826069618957867601093723950182889679550939961500924150429539679550090315090987233427382315421959977712327898366334266445524699192472877030866590747275224218171977110064100824402201168762202860123548161360404934979045037426474132921607432881633347627460760956239935925394162301056291060629615170117636743578303647844924960248734270738699724900493791220348371343139945166256240711210793741227729525096083801407150229209602567329652778201327739608301219761864690997727332878561505676569795523463719724377109912157319804144452247982870564947115694447483525042918565668719076666362523902310484304224899040613349998675183021812473947051942546043919725262353168967348452256255290736286172789542400428383732437143646250682587676520062568775671394758694195508794022163626967931680422363885521355785572212690128384917305754738166888484162993156925986185038861467548637659536865052507107065651811698958123573335856054251665784907834233311399748889302446332434998746153700128885214951553774366508659595379137316340446433257223517344800932651930568908312432260807855453393127644853586255007010535107766719022520634530768834623579493829820752176616711826505133931955239582412061280431475537999170390265389583059626125126112532055490650044953551462883948763587337316773907696976437310094904783216773183853287557931565411206366006488084702886704672499794535931295460289845087906105992976746083919229793224803658100285188053779998414825473228232699412193151045210999715129289960821093261961095436466562871713295397158801314546493266966954640497544590087152925239106513375306763969174082704014449242118129812411085556153638208665773363673228995442000470236601133984734503753991686823438602107262829794033381726764040874977261245706897969992354304238929639991537917990850099008650735260021515168583196846451505652017796195883111645705973893563115844033249224896969448441613163542973810912868371632231281844150345253347136603339593590051276484778220998138397526547770771113415595173172360840707133456515258024887095743971268091660872524966625798383322945408914690775767110431673879995119537004057311816439908993292640712470061583510361162918973072441371948765577121921872248955940824380294437153972753746688524812840612244907486235242254418727689739528633507664963007964085154737267243984895937381904599565065213475535454095329332649137232783318619157406084119898043830144032527926229424223759809430836977765002889077321516331437712040165550540709860401029686096496239109372831412750902193671533650127893556053696171470683856645105718786992299553832495626770798390252925258723809377141821147570449726067627238177261403585321495701392335248426893695663637134819406269746150796558797879619576975554822520127200313364249257893176279866453172744192252279662834891094560696682569581754907288345266952294881662353433096825619879960742875690454357518163666515080272371155920856387255113321255500722446805153554037846281084739511280847796859614929919866822213294653508404426454099944303168027526224436331718761741816542330997296939131813610656658398564415350062352335856513943834318837265892682884798457397644994918741475158211775225270773627589874379177656728467267410119327675894292646278296651997341809260048740909741154977869838480701624683356003384247544435046068729657350615535358784400393581084654749878802821627747766212102593725865619002772265133030759148548846656283454921505704835733526186126180281602611401265609119504396749279888722635891073795801178081491367193027742983099617861760786923052580031734791602466337623881371496077666847837432002865741266113425337340195209946893465956858371003164848092284129614215261603217568829670917356505652728600815139816253043525769521290119793012044503336823810422951935139097206745710745122937596819414333009336652132928340772958584685930287312497423893189171764683161851924627597135225147270871787449401357884297267972775695002873270098786768998433563348826982149181713187685461765047650564257865191812078355859863891563633412838803536123622943405831331571214576590367734665098352283651240475004907589653961744236561728559501316260321461287325645940399643266566388098099050929037746797175601793360951179025277484715983744832807356053870665591378708493426416276507527180359712079813831255804728166106904290525973756002239125378425344976234823938112152852478359930445522525797779778798103472586214565557574564738189985164905308183201369370052646441873663540873509524520264113822169375245492236287528903433856830114001821541755225485881943294997706126584045474220076578639750457953998758873916823106197969819647827634692112098893529570887302820117416545372594834273381447572637259960253358318743595610869524519081758365816869536383218733713529316112091533139451274125146943570590620959222458436414950208708829753139288690620740101954238158406040681974527537542349366432421669199419570800894848909960530384221582828543452091294250995257573275409988727607271920911180445305049174527155862722340032744431621756594720546221813477968752800986033252700163205479370323314850760743574444436585377211486547128065282652336514804832411528140575267208558438502716390133373132628133793852252069295674232899180198865071972698526824765473850899197637840537974204196578973148794946330776898694534841380154529926991649389451252569516422890461443011949088794139831889858133874928256574311854126368275706233272817806510012069817106360187497987201499095790079466111750325203940868316669722359877643567722910533572922331490991794077836711958502958574792708653195751445461867499373883760577462023597732875195325306099137261803840547158388825347603988797848740186499307372623065402854797762319760911192724613838899451258827190768824033501693936080875785514423832589030860991668826871180303874825055796747454931333404785811176836237386414373560119366946184868577312564036720751657309709484016612718596771297409109602196153939620147870090990403285201528603074704740987995863295188499993498115567015090264479364257288873203477177934291330066273642161229945910704307594643227059512657073383831957331348527180819257610513877637478228886762810843596970271784307273415676417705206171837298512451825706470140061788621186756448164829641011764236212688210484115626695158105477047289014434761596510212919406658717072191609251754069482260482255946422145425923449061116281439331055047444058802163476070169330779968201741385297904245191690654286679497811386324148352049345327175112888231140007934510838867969371703563492317418319080751925527629159491383011555789097879883252620775914954811766773598089331477157053215225956492926802033886077724802570392501323163721088795104582283763818095982889213039383915382227269466332016605669743160378497917307468732702805397037003743008624794691666772299208996645288723072935003703457776994319418392871081076033173044422031677601716736244577878452299149292350949092083915279135038476675641701481829327673453598679042041173414073694603125014429182650432771730436823262629952252378382980760624764284220360209463513438516134086894826972944103928197240985332008175258937190268722793032282234747022125266364631815691884747761105354749428827865768829943917556956556463951707137555082255980171426081512190306280744558793726799085062824635459018820584022206674418650729438721983727910744348021930514818031466464314216767674964810353052894906417624271085762711302887379213411328835398643666269662985889207746687846652167373715744484106188667688553482548148679755174312094317097600312719853055430072101390455270732571410523201041530364743270261899721831162378044262854436217097145666877024200693761325183001020336586822975888102020734750645484208424504597978438852470588533656366471684128749676414971371157419777540272417706267360148087265813072242619049549631031853600746057950114454576705117595369378071858707192485144679204493026735393608798371876194899810498351484075746070094220780468447139549178663358269891230056184621611061453057740194058392427648399476015311481004167290051098385923116082100533779440097222085381927266575904060713178656258540385710826433887463729352535072040786634286138597522022260188912029222567711311073082503430367897135411112650815954299936152456120420539096666497862108362444211235493189350559452045745754616290058596165946184796976462299011828814804134609808470248952622315446530306236737403622632181303221599487845070646011621784242699317523073222044313700429658839577538698275645696839516120585091754974839975360883588515904297452668263257852446562347401039023848999806861327041943988839021138827592467644661521355166954895177832342268424176703917811924835122537201572296463354816837945790779189298423842478004434141511420840981810267491622546111374071880241707047085215855531982439311609159795932170920841562084021630547459930831436705170074806908609033556159361984620350913118183589294302276357880363718074597005029325830688342346872903103302140671727599631512730049695894045198497511069428901496632412005689952765748852129693221019316848279476526224500646979101994334456002109777235740323694402077488009669286333252445128269288557101919421889098529583097449598457797539034581123130207740373747507948621998943020002463627161144833252127309105799447321309402293541979927197227243922562239905508012596178055361954830627793751746297820016990781317922265155530591851168546775148922369080937799326176180096874192284342698955837064437076364447460258535911252785797897404846811803894986610035116238423409599656663400342419421981026545360261828716937674082205661662326452429242966850187383038538267482264099370102597739484889906523066877991992882883103071455268441548762350455106305329583560052110456070037893515316196864568064492508403989026776216648607856014118262293531229802059275189502298833203137575449569114157452583143801126370329792892632082943116413275494101492240785020286702854193584360015351782679025296128298435405489548833548004051869888983300720586978822610652905476184165392242556295537395225885262220596247722878996119903080430077511832469316866202387771879693636406062851150515518293905894177890214119969931525899984703007237088627640117596277444788880319837332914206028084583624384573628418388175489214704506743446097517091840350252905991513975683366513508775633922124122235244605407172175057860773471100929491490970052868762290632675832154729179593357410480575451319433501967084014547831694132488383590047465221542592337993636367030034061488925580931553063948379048936172047937223925442862820201992934993681995986963267734874100667963566078860738299848492182355679589874957193935879091248105823947994522425827452976522892075775637695500580166879923841485814949653781036818012751171079887186996373582612776523838581804526147201856160635498415811214953139141620272997246913755687448179955419691098476999190726014964733892627426448596393365830389941439082317329717373876215588247677509095660391607287999805393179892076998209947888913950061766240952946173119741013672965880903950903993133099820071250365354339742064983093512065522302951598861618774118969913523910765725470503924463155052365438151373086972904390622159931048799058667160983097335573317405175501381689308671898118276945014664496057684863012066462180571777396936404643795182915016819127715580640092621939736170551518735531043995236433159964869948146204115807141231976248170968754722119187924241829169704809452427050173594880785968436837595830586955281428647004106813452851248871016486544269700934149780710853502453517512863851864315172818115819039482987954104199707256518792453810445434816663233745980073022543705546848019201597792787228897805336261617338013672854905714282598252140594402211207120488412026580242333664014895192399824677266294239215108096711510600030324415781163185173672762874198861890786949606330160534046345276781753578400030182726386098660558725477818949080276504119838134083147207688323249180013098448184886819916780684654683693419255013593741990342255679198526130660801109917113827195954229749261211112263150474624239996864680723929760989621084363475913071035193234792508851407447036017554345270262425693199716989840916111289517641751034650253045872758127178911816403387895797405875984909943588077480526376966010272443961806190056967710471810682132622663647672357611078449819398753643657800073155630417471278382055102723154973171043253328301374602390929166223816229355239175016214596353935829759335169053103995967324835446188298316636497372426566354391597214443506776872763565447143984839802166792449436347786474987060502253565816635776453213768044421980149078801118061453240414326410670824274668548949824193775663519770283272980591476895846593420805836360167876029806684994845770049412864234951805902421287037978663491163696848447252323014129693550864155538910968037024677075841950277070101686644440326444848983329910739204621312392014079979898949502120024587549450438648932105452785059622157141319259827358797184413070904721828915592847987311359842657665317528041542340518423451161815880560759964313057863322593879268419863993914923903962448785673918104160741897656158463149217635540121264647570837362393205023417834998535900602058182903026615729002736493744112779873347627621727034708229738161240695128091005999671980772615886158693030206346189979726765165848114453858288846090996213781782402501910941716798009129053290367104063200020926309398253123931334319446936696875864515276939193119901028615137596767506187805629153491890148206174480440997868333958572456145996876736470137894098437274435275944762545818623217007527893581933952969415848610089102086151774516627224876633218131611821089219243198441647120367709813071049015210027951958025780581463601080775609599624888696550962919517563262882859038401069933358431289486164565394071191234456258814258581609213312605079752970426826069974276710457049947205223636535441363302172591394711478632283984539691204370701951507092702195736229123782246540021471257943575211359944442426851147160187057816859165007905788053405008939356496452196895287706610133372298166936385324708199649565124172150010596169656536434781294786448330260861719594154901547686500228073961447004108627542933394146821044657307973955614953668792886934523828743061543419186424988835673368370538697709560050782066024278600043082682084389930137024010956162530755469449931176664100744330860766112858533996995030278723067068049527041618474989736538275245443664424615562223730402753747877234306064702803126608737351086766311960535216273519243063575209245743290008229427261527616663166381856984143052173480150495226318841462379120883957745521606974840372915911883754595526696007087616259400352045196521137149759993877144450534893894129621822139321065077275155567779030781896572857000321340619920092776238630917947457321133852813712268445998564800441275527165255074629726338768947370116508800599165856852046538242179270273397803197441614456498858508813660723085391198784210936072706008352333106520773727327832520402683412050260878134456233142286044173257580266248061574722215627458000510552059188725531083590910297497829359167442786623783039858437062036196989494845818798980761993818106362478063097514125049869441484916116391381860915720874840375838773287870303917820198737320869374512333726119909559767317584400432669471725820994965278660795253753645649101043749875145337016068003695666502274935090487217416065455438728403506027373577948126257506442780521379546617129954942981645232510867973655747710619940057674532101122864095362263933306200451959696802429016459885275395589581072587509577454695696981575179306525478088882062603420543897791549023197628175431897026798210646522853235100250459866001254150958312895787916620171122334090098926132475530614540816147440132662609378589425754161203523498919762985911630539814998637243485220658741533170372144991958730196595931567817045906141124700821833692883946312887627265842565938437462283138809351338766620622925932450605054030131994498086147063514430209263837728913425182718049549257610701355022853407505218766041243549108309699187441218680531664825088212818609628329837201516549308015426820345564839877258003825140582034044177511691492574878503100031353929945648281468220986122932597182088931193422675607021170172438336812864765079998162271098823290300692179161419686302659630784500111357483405083231025248210206379847240407946781282605988687568527839566668628069038768463607682118706994118465277954921713918707657236418683086481157692774769143713155905857629342835224265101895790679349756268406261626111637112801670105710157955503402825498110335924007004620591614998404767497504477577003653952023014046908811743836100138975294722752296691786197183813156364298591994760497877835714383833381738903767454851845324584232144514014004057553524155676020201584195699855547623273497163893914145072414635009298600791879862125978849036874734106518905537001907523890306278850780026077787369372926180691151532239021109608300617758240454602878711059097897657257018995828252464013556721647378565374977116895698482970475043510807096827814064038389364565099203870759901938409551231515634412660413864725538808102452259814408828876460434783554014834283273168263573435066120712728112125161013485225767490161615720143113379874796204010531867796064464374252789115418020096076938370244500549281518012574725609105101471399812132735240709307103012860058400788949413888817168255675548881980508277945683551933311403475962003407612778552365624019099162498118980662110717214545249565374308091830446159105358140946077989888989609604893688971516460926014721693796997496916380583917841844829071460973658233569102354292783628706440951047643362410651128547373353828275303094977799828657128498519103848429912898161851352614346453209194938662219043094113053668247259028976100797391349087715665790753246627983262179421234134245464565994540194738267396178707360068210583974344958218540290165916340522174096079481923591232072568985833697885877100636863316371614930406200351564120013025388937134185451029891313303639077041202272760029048464127644457233821640416505261354090011627782114822481764891143929894855164370551341713197205117840506277835449515968985378871039963003072251660415181818464890195671414431343916929739842313459970009242074179975708329302797492531271724148683722734908485117643863689722625068694782732146366069020258798853326443283908837061195457213787755166468692071700697898370384633104223924033542165250290965389509431001578026314449299446072649031001852602992298983063450803295201604305639241105682335689329593556905615956499907418148108224555393936260984433176241154515369853676125805714068399266882711304926390527396717117018690662598769569202509269274771778204609430990679980483715364195801330869491275037328451873767909277500281639253401483082564725349726819240336362242693343105102123216629233006733918210430459088310994450607633661734173751436628880472654093543297544682518802534123030817110382832191315185136978181552255755823292157172607481314046943381545856880312835651455364739695678542942825979913685237444935428476511504715602219252043767229904842404338244061116287556707474283179831231332852398801693843106038010915375212721503003975191514381954821752754628524571545279651626477581383169542962035709991656606401247137914597679412460775347854834739472250043418781381711835011009055710543226633864567184349084435660029631760067530594197992011811950539384934036047699008580837942915701871307035826329833916611556659429416493722740855222424745754909220269223904318930907245158931636567276835044093630487391394111882364979541511739576653621428670489054048441383817098013342233429436637162441127227960171915929974262647296135077291724242003638016561100305465340284372518396362099710739826906247112777752268568003403301763647107597964028045703587218147835084986923086575254079101766125483086034809582010082330699163734456816601737449739773245343172511638563416823264086274345806701276972381388161042392429560696061729068169466105024076530223823040931394701418055851083871478895064393067779138867799877627046052324896401346608219008921373380965878604627812904030141924430706388511930858952830993211575568861127893593896136031854558832352631584245241522306754138821157353776638720939482858498174006668454921412429187569599395070127871968972943237549992961171817880364530596123133968092900132961210045435604715105142924647053138327237923193493972369949168925389900592911528997921991877714361059815045107455949819236284090328837771454358560366585594122180660014562338726249452938636934272518043973648590190206497940168480726442342585996715722540517121982829897151398648182700537510038791015781829172752992645424730190246314942185001863696355791504727540816096407618805304943498546919578123689538251927414970720418022616458613717163485835848193175276083410603711439256815883776112089029541321537253727510483212380456673749081378633471360683102483592903382084965836659569955548071255252994009068207513796422511570063325401231666472469732437063301337033390553740708052962931696026693636413228805162608608393681496342968929544125691338780525303793052126820822231867822798934129227790071597571283677561201937009684842163710585766810828097470301451189174113181779709892530719088868803299719220134552747449438881941100158307093587798953040193667740510734412163590247145542691288426453748035900385705675354265849669012259140364171955174300031080146399204419235653152758123111517922964641246918812928794033191119468913380555347508237062246427119268027450495409159212356852983740840248246322010178093395467824747495527253342371824065926640318016505871845055367658781545628129440580096618930146829740475819875027374570014796456397660088428574655973650651933798632648568736985093275116459494890802272664043619596944531820137954779977757835402320109329838527125538823701636800481615453609937246886920040805116002164067001113878003380005088231877500037056876636045773755810315412137651871345244489309638090943183800254771395414086209872935461371743089918509854755922584264921321870429981269713453911374679275346554340765833586097347410071476791542811829032224857271225798322411344512067564886641524361193762800364794552427070667970126468651182941440330221473286135154460722600151448323365108556481459298436637574043047136779820676640610829624391670088300352093862654918265658724143378846170628991843519017750817711951468231391587486531960478825848720248173983584636628661949802334139123337960298218057552570497591292483103062048843470582208396805231821684554425629227922239470884944868260054698308863566662262469840779346465179084909300480405038000318429108488266597068924828507412681479783572334632301224098604424868355658447569172498489633237676291724672890445402992738447473945918506994758783487607071807171143830296841928959255100506689631143573255404770673422773970796338203964456049767509626789958412624756342928708015890939642152858972096096801921766783525546892025835568190958151394017887746640710130565259978006853494984856537381875205791768270047390022543871457132645417065447872545021391610804302669990720068141125486810259695147073653716652747000394210775470284184932811543015332041160839928720702983808473831272063297923281761193503045567081997105532633240455247511248642280798696313735083883124143560268699574850238110855170923938756026585279086527677734314544044104078759572194421061166462488807242263664834281899975935701412035724895222840312412122278688163619534255719217231341543573519019162737548771001947343435167171860191691328109373896690804926655519796343330626957526319742395958340345302134480531371869519469212590175791092063715281675254968888360019492201312988157351107770263037915701369525541163666770683211278870058823382108997449346693051588849387395926648020415290086342483142019221489714346898817888223166045921877271245004150049194365780988126404005295370515316230576272306053244507536257920681188924819935694887996655617213057660206130004298717146113563189707489907705098388573686569368698311410132849324128656059840662454952848392729793031867169458900644347389091338030554089424772926112765526241277294058186361946561733060565448166114438697201777069100394156228292451818977430481461657882327364448962224614919284811603751799130905761486352962123886466952237739316735573386566463731695753680777757025123176595727242905218984070483323031182005476693630298033729279837471497713544468171634709377172003830304764869125947072125091163854928694936324887269936969512616396245368270623149149482217232279549963313673640516434639042953209074472609333762134885966566109018293164376468499978350042456917759840894646251299718093037552808728757750742412297956009074103388546069148857145078898046854849360472440282151991924336356374368864806583175542717685843782040166563559138713420290908243286376350055510904629873487754099123893273702780292711406941186840406115902642935044584277112457202492694510997187143100022332845771658536242849085832081138132750660342278571743784498605338687610589915611330325681536839146491241972704488542960702726419463265769813438807946573311634662689148756238173519845090981541189500229497937039100835470399196842270521639220617585075960025910830495325376974553455388306199889702092398512602426613286229788147522183654493018723098899691176701094795540553143146696126251163674479769909583535930195402400268964890374200425250374113872081775414651489845521786061328730281743756263237044634481078798150216441085634203356757244545379249154222126418047504981141277583298097239782246431365227877690228607341057659728233932351122873168751147264965256498744788113659701677924225889611727964573099794796118407826217305510717146171471441390999885104153332199145280107721367864419118644368114796858948783108004630963500353182689002122658801923281965216818530359574231031033308626590842706215605126509576112735460428279222093234494764572256148188560801307046754260107488159631281884514147554173087410143292255195537184551025330704469182159055819908512520429135436990121628347277290779300239027066819867457011722080014674612787213316824176547579060863672240922358387066133919564796436883568269377003004784883019201504446143355601898925118248795143695079259390635430935534969788374743960755497434366101107695128795099076642822950578284965937751127400325878158520186401541932283869920642437482098586246344982476045725659907783863940434947542529515538210725955524676129934477206549946171366265743323188498690108528904041648792866324143380769027832334632546366700733716255435820291866931541064503703505324153423108649461299804450219354817903727342565453528114286909716121990779660641854152584537803240299669167273598561455175082477832490377360032940268874631147982597430911954934057612610480326882697169922324613342412623083272462348760563726247480937515218223357514148800673760677260395923080445203745077947215192481949241075985973008557094765569550529371791736081369357717630383949666955598392021470294491220197453836022383947906095825532765140583272235016585813046680144061246128935417582722945946757533857296482431908464514736101121076173662416836491183911301269561225767529849489753296212015784799686851725523343862190547075356666497207309048139878227940565044484532033602316129163645801920366738565845037784218944174735208905247754798836771180508378405192600554198183840770442486943456275975521889926467985836237250986851325152332618991831441775217659800956701493873219729150944033175156599925421726311035011786312452470485685792675780373688742668527131574580545315543759816166825782495192125111387219018177847986016652073131224781354515625709532848765008285052629336737888113516822341798733495758697933561228104944212639316537755216756518383904262869595545598769837613239432799635992557889136718964860603698128397333524097579365361326538327134117441812063404143238466425296829627483626487605334510107447205284798403069043793630252201309679773483700732423930063597946042472677730101987085456994126575377053290507343116613673539473407345980001745738706986491460495696017871520634136482714804192607263136901873821788165454532438181475753779016504494991951966911288626054441188517319836632684508459671060700198930861856596864613654929909645722286679610815423830554122960739749483823886386296443936882949807754006263942000280888488949535543738420037332211907416187550543834096886736751433301897459875443975046513882619076651512647169795443591014981004292358892491605466440969419868169928887734313351259185804733469773044091472672484303581159326841005489081463290536354280062285753143329737025350438755873185157638463895678985884246114064699950651343972761097170884070592421812696539201894987930231143601190413630094295914549498099115580050396549314683124099283477593288665698058295559812056464219287495735754932737363104613252988138086422853942731893391817390436030355761521356690999930420814850460053284617262761135066178000160299744073355685928962573805323495970663791871327095953971508997682299805590497885670910033375363896614578746223592210071629650075978162705013780267538674328201697719729258742349584516392823833141534039967806449133801504916858328992826195732479807003738107555768789532200260700974455020684146424732815758802831975265271834558956458649394885910845654390075228558121366242375112582702064004907600175010471848199335526667168745610087651730403173314334441414309164533290792305007688462943117860806855880761312858000572495365367349690041579897451001750691672913300217247389182147985037929600908745448239285913964000254627754676000573539556548852561140159254982368148603369284514051104713732189680691664744461724989646414531628445504678373393271158538444672521044457160149681077839298620172634779340204926708722327139616483721003229506246015234815183231303957952392603011489048717214006690763327079320997632225278590608350728289331993550957053394153541667860314659293243181989011674962920026436728676920237805916396754841886655582131378466835378023786184063954447237312946930330596777630227965541929015911692454388414080954419848482227135925410487706786110466959537799272543639247812051802856765329452712872690051361366097322616016277245360787729656425793330393699274414357404504197850158330367294790349608777227314163340300580201444877011918149254092930302774092565427927470508699174837960927044628595475866230377989137640900690077712825612534294089706696255510881459725224221994209638555035239716483424489750553491952203336149973130152137425227380364715016572772795349652140663387854455177986851676581534307324096099169771540620258744339077711842320900325230053214360178503705240702577128223211462843111710319741697289778098006520491042399729411584692084186737967610174258895005586184855402425455681706126007873170325940119505013039955341577269921045585395694584123396146030210215651564001259456909973544072438805725285883963028737477122435765129696257622570321591308369943596090963851320040009406029715697993061333674927208006473850944447523463458543097104273891824276137927191173841898249336431699404449954545367399874966709449539882004424846004277651134578271134492654481118694383949987073252001640482265582856813746867684055456040159979722835893235347077674563295370622587472548919877745425301205205464805616527667756507111033500089729004996190533428537505408844010298495539229559975416165191029846311071273658036385975473516905512599074365201406521390213822342971237518020408689426903738051210093299654639300067433195076422699539327690555927673954119124376723718487589949241363282548870723259196814278364239298241278631073168035189456696749272838595851171119659526477558889882600125560676937490874569580309517806747941849466162324774694545976049791121406763618511138916900577924932450416199617239192805962146731156203646179361885387884536907605291210286146582719293067299002023666383550653009882241240911035296142359586116927186718854174935756770815654188483388147892863799548912824057154894900425919425479126696670124430120677593973937574492847365422287419585432262913228231472561683442019438771731044161996426171840889574059814777153846463566939872130354786490055651122129352014130035900128672879221739074979054497726827314420178543378905509408396411419859467479138427825460773960214613179946037644169771905259446758124145599084810541854680227983796738732529100461822514213664197454658036400249701003315242789137520081849649790540988612836942820210790333130199975667858516618022582083261706630085352972222896800214486258016812240473081697249857154573107340826333974719918664252471266004712091898658984177640669899603912365182931879549598398515035788427197518459288134603531376615476599948246015135808758355349148775697686327563069270857260231069633305122365911327827464170029155298507615516350670307119827978848837576942312300367157716872671130908195509417980108750158417482093345217741091544268648275822910639287323467757591300081829305028741738037363990375511745685018374276096081886772340396999120613399250768858509573503226990600322017091153355748778111883901835841605431848605908752082850930949042817810481508130319630232368876124924741362099753004421701621481582302664479355747667484906563447054808369045762782586928127501852588083693294656704299012464333135502702465958666270558526372415195858944377228020961574306225354698170368428256096396543326131357717005370042522046576257338441191069360305820419488891833299709414602363873720670785346356433719592439258161539031267971359073286739257642231544338179141982286871077088470831078617613472592564206461023361953215725162352562625543724837367336396360288600143629726645382657972795161408742713079751495731988036078627557967692766245243390136804522739519139876604171661581865905368361187036317985918486001781306889472639163232199829285823255628984191362913445387745581658951131501061497728587036116859153438832862946872512385574568369001471903724051194059482082598288984868325402600815722639044965813120748318369855004269280231874914565740971802366330434936173360109271269429174634284096304143251516214518303686545928714792996551229434076970435777964855841659486657449008184437031412065908899350773213090059539760326710638918243949829191744462660920883702847526433367241002880313699956712830651528818969643469762961243064623280361806378305695981244530488395475944289550783162983940528738626447912518745329372296134717475264770603029284630492911213583569711130932561200902243922101774493498059206390610870279836499099229406556278051663233482675519694652027004395502391291271584785869600428164922769589516697491184119604695582041930104985983269046055114427219353300015249154449761004481084574190214203634013176553552228070353083980144993604924263281931159540004285821177692073934315184057653385430737192469406069938191832992063044021501116221311513635964932414631124947272711238309967346546665521585466659875808189062405187832261864034008270977118029544840843207250841638822367421854894614531412666752502997682904238405161823118853313619268919778504260460206894693524592457532950575073632111840502289735668115872011376885770010254769623779653885797249743061642270547838673390189025029810339376539900634640432589219637721461913387734485637562905257201709098168372563864642920041206407105978475085796463801540607957608911048447601945538726069183451067379006352584403178141746969515723992340280472920623375267202896510664897593684465484960983404306492440749637042897295701244423623059326918308030145910992106998598834558610845075472502215379458815163757123326057578595660278987202495099809797064798409835917352754859557835153357071092048457904376601757244392601443401779180399264409512883202553244707246056429232648548596002522265974489654216870918387274182791433361005859833450655340527643697278671291971451065396169273524021573070224010466679534195696903849377841841544742710012215759314608021640216440567935700897780596791924961905468130981909000287831818029093725067779256892142098134367999355749548006924592080295975171091436543518126562418280939554338045820821162305776532744889762154403983285551489164337633805480161476626790467338194491142880636989428398555470832977937400072504950468772818870185585017969555134993388482659902019504183187063536322816383530061337493102879055863457841191616525284312140456593597072214852158298634303398243385331520720414789931021584028181435317792870853184636498180037953026430972786697366416448401347286563400600063241000357048701812482242908264849636554781454726009601704910650116672123806260233397839138301592750414950628764801319422563168200456481131085297120291131571733820706490266468429459853846260091898401730318358878785494560863970545206463871914965355084002180574131061195090477253256723049861184872526730626017900369202379315437273407480471828405296756384342704487352501605084280258894415221601494609905273823879567317850397878026819277865134720304314742361761371856781940400249736494496897393274955219097461712324801372035572583643223296448808811387793785293312742342641104781511218045746777688239909872396344823050492327301657954289468396481007154781069963498867872902682063076351699293530700691272805936355949065047554115665955307967903493483741649198138093742922089421842152388906547251012602196187974842928839028966376624794040134466881969713205307816102107654679370698846436547349921394193116365950373158398337512250518307709240157018492309448104353563853018259934819743070054557957199863151559357534027398659125645665534311591727403073414507328201526794822108037711332949693739799261732221184559995899282590729534709069066780650661645907634991982225135114795665377776063148131528199125474037842251211034115854085679763889706772155584498395214069917197758500015020729985832174733187310055243437898734177862925405852267217131260641567472584854712434738755714621926455725568577030870260178774771018306990553541140034571270556525840616392943263345303320313261058264229559420746183734326561906783783722479661597839930884968555967618362587673164969259283434622930646026990656811982382960350717904789286400230170314212415510114304057454422845090768037422526918406749512262253343602723990649850780752419418518433418363681152921201861852039525294719515476438866840173585685945232533203994046192723807282475057395920711252513130119285028513285594042995154050543290446696555070573600754731347665178596847808476911390970002124321357322533681239436787032393522914344193619600305592226078342366194899372203778371695108723435174398280886518300528560877424650447563080549892613281104396099547052130330869556074962326225465941990220180001098310302828642527277411602142044164265170017608420391746818919389805595040183336438479812302561225529019723811950746287387443562456219369756680273189987359712808731415389623350753236107961137680546895640888876869949543724604083792981822214571262428701748133670700374861658660281245014142199936464878946129202225853852798773719048625571380744918025829002530430490762418659691252946793732500500858560624099872504075137374723556918204676370609756728028334256454579470563129884829342004966310112214055416584444679847788086634188195418900962530088888665386583783795709679957836840728692781624442860956011774184267741839751226541088737647611168947951706961234021350391888351938177103867090116729679868948602740976785713600330724993355081012334571870849874413512674943489147996553066516261649188047652278947858349781725649167225145987131837593363071272241257322933192174881422892383920828321803110837412777545863266669078257049594300587228229668490181767598955751183916794829562669084055052543312340152847968015015607397320755160398344992792785806254856040702683304983155817152380485998957870849687035429318719703281910932441352575034542851644362813329485698098716169119892686390793992309348410612364551953757977466128220927244554959561870270609693013038317463124136236052023832098373954054536412136810344228776611328892525605068053466047239712750721016391931968547466318712802395756313280156175147541625489004206433501848725583267685712383040654582815462227760663832319731583722104571267918382350640875824058985680169666130139420869912977799966343935429880255002674472468234931461469508868009608269009598865738403225573697186193213952297552237367994710356036148262691927256521010647352987239073572739125490478833486917600172399976634020930284971177512660090067031904405477906653971900217289645122500857478489683466546450831531434480815965610316426185199619219275749650506098717321227146730137222449036950194091618955512108777923698742740096115217361991194755099340109086978734351841014578087618850604896912772979326508024513958517851832451019066370275584964626510686556802964437308236645789484737266708070229717863435216321955347291967685611625825561963627686452831337787105474676028918913000880418306420977018652662084444017082617214796343270071276617217710722529453720098463731860322484012138598610292058586096610955403882842839064338895802235748754706006214702863399918278641512669682287685581438761413060181477540959640982030223412846217745364837827603123018922846660789936191611874424035597056624155826775904022604283357676440346941574419285507393794506651606669220900949832400253480290107174171424617562405000932189250512146126730922385545683130184718746981546006851275837153390119099082752597192758107223559829163145596679275159580869291542481866717818292548941209807066925255405650057164260331921120728700598691681595593570681524776258668458844948217021536446485171233314632956664605182514862141095753399254556646943648647676931707046775338316808150764297757493539828154688816867099829603744953721178723655525986298377146500919343213683103512927972422061204897780995617946738039559016341309225202856949061857952178893345398826286973273436884064918893952310152655764585977693586949223633659544176628723846616138879631189556968218494298827863037639689471493577507094267566985330416267405624443782224899843507459223327206028264255842495268459187723222476129017975943127813066132783833935145246686869321707509878077775263402521060441311693197457511672994998661515788104179195601549951856068727533731826654640810707563333262135434143291676170827966383356345573465246990282231675301816797473663154306481617840145975411009679716486486674723289663636191216138839369288468663699227251850040008145426584977162540231973122315944723413590006112569555796624378363952635994874141038060606394243938064228511149641001955420948181482908721292465796313580646871317473434615264193150115631881655037120339254052767768848865349504861648586679503530001461180789796987165735223111507837016824790987034825660145102220716948630754190137176761092749229107848217523354428210968804943564300755507825690499500512030595394421733496912099718603830313766181227314282857559578064702596753263938002408390534256441036250892117261323045645422054835377547368589702514384249605982495183207554184417503615873738195121876923874107260492614501419812738084590415564676625506206577633492010526390529457589136078677911682130946320234592967796787297933295978757517496667265506098686784684039271880112736366666092142210314145566657768257147065969669682230275338652496745026129037194454277356565706840666554268771766402493027831251748738716694582260961816858062968190741000296430206171485870695720926540641506730213214925896500860334357939647307463905514046210062980304979925296387795865778745120738018986254793769238881797905111242913343871078290406406035311737322125726205452976930009855438359622342970742803023710447483201887344877235816888336779303435162643470468524628479140957028808173003139404583368269592942831884469344847410721163957086490542800094990299529115683471034391436509638992779278202254757403315709119107485774466848026050265755325030578666854453770992746998964691054201655577960242414818549569725367001931547986039280660229354454753653617415436986452160427684879905035254061563373919060872283519784270342638975928481149789163583175288891921687363975143259148098063740198315587806377595328205669320403696308979306482528423613590268806428138728179228363095533857035943273572461690289878241856537077061527576550123974552770796420638703641980572749664919185208769367214197054797650356087582746902573558074206019506058492708255497289082614970390828787003341645180686274604841437720276501852256360581967447228641342515735920527883126198252768935173652985084145072097257130443615887804272029184034823475207115418648704720875320713091573931910319269999605057174438853901880889950174729869008147255827108041102179896276308394895005973766710488662150595233155187520701318176319085555860540039996753717116044015840295606386725784462624736079369796782896108731578720684788546880052453034305516448394836953707666570262432279647888509754161998603627629630668573451764152525628965259985903679261731402384160246011056182441061025854556918152915746640564243461378415835572867540565549236271582091615763233171230950931395690784124204698602657738959488827381193368078452626859962602910832645546781615248860163083675518877119229610107740172525111904071952062357275587010095460106603473080693197650252172215799281556228094924251280208504027812281730448550375467996963543351010596926655875694849337570230257330971016434053486513869578981107514834425705135778059308815783730927863123657422218689391911853781022414903680049113906699331721815520380344533296939453804294881555461251023102251428768786745120415088340972281365419526737800237893589578451236221469463438409170327057157364517437804784236895068500328559136756414872680905111848189805439621018573208902624181997323964548204898884148624840187563216082642590966114840041361760530842086093505880178243365452127628203669131550128655508071676175011088576015461310870783079158318738301861304276449469855097397162157052133967711127514267091533004935217224471139548793639172738698126698074334196267465712538973909819350537707614702120533890285246424605730744082127517053727083092423758708610705155972671922167270712854533385913136205612852799596178922053788219430831215834286911830149930209158282094753234158725566421234977411482871339122552824919969410318284201340145653368415260530979620315225604227761877405491430668839634416673222826928886297056823525853407099905553802685832672315483495165062609845312331719456842870029548610563714292693379044635288041078741094027459632201835246368368056063232190717544056407875660810110186180464642549136659453051482990938032602540126914862902781048640579607077661855131571387195674199343843500049016501969061491652734745060963914975927379754894410096935460228776341993070558120711028851109631781958705835828255698858640928914015694070297497202745525858653908110746060064939275324248520627851981392517570349329698861444670988132272035645039878572794928157393299708039585066193464794439003914868884943183820079378666966311108713722917836218842911998713757762974826763114057393296856848112038225959608578639720936343422954543493541503340150717772645193682795523016674256100398099770948981797537099009707114651303067974337198866870907726295130603005720220510505755522367684674843357894862884393871443433008290980279942874260663264437963543915920114220598742181651140584967542751581686857484050160792109336485945699572019854105571100803944826311578580602275697611295964157847158128782007619037354800872424128608680432976710415603374173053274697923990754140480273675978381521832595781990450625885020900288796597649501955744391522280989959078630608003330027861852763825960744277714286593607887071231120029326313894170251289554617329005527509709470723797544571821518312770972439471325588558440886790604086542623346158831742827939664024049814477993359549293358325515754736883370326710501271642882471272648182151531492066651686337920818712869523848245939562263102475629531376780385093516063171451006599784831547199883708476420778586053131170443013663333842763535251890189464908116790779899406179203649367780518384284015225462596647344380915404037181463305884048448426084459788349983973832499024613084062118996018122935191445641325883176218818405174024191799360155627729487256520695206781705670582129594385904519253573350686379896144235483112070809926667137588443654477140620427048030689523430647880158347002575231101517882744584143311008346826647269177354283308018649045547433298846068771976706068180141450415853554446299935674886777722019589243885946346383497045585367263415143051403171577495514083662382403986022465216989454410574197341840312508178226361041660246676650489508138040621378001670042557184878356617494323126886472756100486924423023095768287477109442701311229328768382196650435260054945808507672992298120593421117753203504528910464186936298724691258219576324296295623067277988649615988604706673328531984757778753088583627216174643608059376050481227788867346467222585908048876775577295789701119014232165911623695512881779036077155906028701382234590955572759597833765526706840319921784485939803248715150859749722682772170963287554251136813883508145967655088287810128242261601216848829978104074542806509472823664067446483715476935276826978235056728739877664214193396280487596244110904288880704547266649077676488401488930248960945976912425561969533787054068000905955988378626090361697751198557672969039735859356204374816385823710298157416530035838188587665162713287774466272146018565739661388293694060976982151485300114253672694695368478198209372030904151008909537250547667501885668333998669714752532845153858547601203928840350977056242054149336542026940169004347794951055820098585763531139798743536759454909894587565830128465813927580085063911660868246507604918726960185214172677754945185743740225152064145633270133472922972470857870570186121965156956525718760065918509314300041944782290479108354236251308386345981420649067061091271282507029978288471722160259119626018188574356269571973552137538778111929506887457216268664296506582035623871760659362740110880397405664832432003491429157558099053893245443869856461720616756801162186962096111913749924645210761949309994893087061890097287051168620430952482969765470310079728773593680855697912381466805537913724308573946262215848661723946285047681348411185971465618810612737016830092674448401876047516200050294071263053213767999311861721224907045313720160419308658383432651350712762817092574201397058073848817299299614465407313767420517272366196608134352942110155686918635800463941109800539574978250321190488727326130653360372340540692316299102306118395013792000428918626482817208738011612083717027298706653617502455872352459999972033216896560755582878325750385399428086521828150724916102778541083638034896527277071219778514574612754690576484043619015346066979272365869435467069566091120382235550149426818091763648259564756615760806133038815414721719069138277553105762071873866134553433771786039303998954930467358310142192241451482509276084301529663048782288004403055399160184544094977066404262845546375430954331021480202010104462125246039986630334373980524424576023047061417202889121560117079979356492214366908530896647567198264694156614757984881081014147875285510172478224593996446555982649328709092359549919009733274420191542927419295749863881499914052592572301258699723234806633125100817042395604119159904478991878494232563892523276166670060985562466718112802831938569913440774529502505469775297911122843281458797495084166341385208595157502501630277532629689817869740186667176059470944177396512843123819380408065125860769459561237833085990142716595861149879987855573505421534420921199307454165077728985604175990412359641244411705089553921907846222430276407892795442533467103165848902660580605457520491710192695933524293735740494141773209471607925463027679132722886495622397648352299950418448401264396690392107977850263744836446861501931641753975335507029909220166443519176771823410131869898437392605883942037347165677106293136619601952191621115571935283651376689243199344243764920170974619783818082028909915180117648646730224593536026596391946715780221446490895878378765129207882073021806367253919263896011641698068242896571193833331033909840081351467930799666776367070576339412719996130792230942544217082689653604915441517018580510454040140178210315604508015477722142080379756957302430037047781191003583707315868398765684526119763307115876396731954481377223828957837027404641756207630909597774195887197960413127240447558063828034472095668634589014121813636428778855492293151415457087265058207772569291456503292353169759634470114964143055828039371526179777428263974791365708074934153608759376664372687232631709493641586987101940666313264191445739857697835822458571964569237374573396326565707041105844828452597338682379459018653176062308159329939603411642239584292004964253188152259836623927976242339135703987465864964383325117694903730778039295431167644386556863668376289239650468889190854028108078128594783886101410836333648121572865545131932787063411955081071705395020285574830976412382649828240513610241549738147961902178457800737921056210531999084790038297865122854237283949179149637793311376450418525636625600475897170446715132515650118241487674719611237863953104394469853903402247007759529068879404929908319301023503966530114583399328087869923221205162037616147270160412715767392262477977369512755814153262381432368860609169405872601531623181155082766669573592400866816346276537659163060253328161332120468079478762063753160067742713276842469729374358313812984327195551211822888090717642732273733473126260693256508787759879732102566897055852982752500523750843668382202458924592311936596633992466604206970014007880347493406581814473234324677326040063290728658056294121762028653152105719434216203676478536823355885700356206565395401701771176151159208631372021678864345593813809487742309331869372183220544950459212392180248568286952136566400005040493772739395099225093281144958728022880130201550608228167668000919936960595006692357583035583912092605347192110536866338812789928893477830995973183638194141757690995544955395328984822871079750600471295709949305944977774646723179248265921075272662627467924306190405550353017851163611751108638404408980676220195204271312530491350156265737337492502246592486002542560001066088547669906220637623976662647300467062407065830500513780893244587055059199891486233785978071732170289511599443399260374691672612837734414759071139715285902428537935684215279674408170109584963923192646988013775003146727452042562950362897016454465755232389891044235821466574351322953010855139541276655802594941904725468226608584576020360247906797212551493918858522912845865271111186720369655368167828766095061223396608847419237945098203123598810927935674894772088497222009891061074068774850825163997636492233858866108842656018494502254686407311316574119230260854544280590841953532532313531602031886326089553203744012142880662154701854453409303712185231041631647525439894308974777578742234548024297727368501897219460752906720018575053925683168302737443516630441443059030849524195886570887464830171190674286536546582563136684165332386672379334481435229676849754046444830919576460247923283552982332345968732805512823852393680391940835717290309557648170935517561063067434408959809585516718929903550027964681531759678748389682386796354312839278089185685895131583039652297653374267426040891195928865533425357707452947052555209216056296262255139213335034338530764165768088792184163234574976174202721846667114950340637729824374132071295222591320398501258451979465459850597808736962260015254643501750807256334831679599515268016872324048589325732988888863044747545548823053758702755293322924857406608681762864715854037357306640126027080908470920400226732627632199729033972501478815793312214824174370592466074413237551365516890097382996423232187650070444556086964752363241779712202881772978859397018086492970528546433653277915517894447400978498619083216928002128666273363588810185153057252090606458171948418059181245464726400396587058647890892814260355506700102354828966696822171758501969171244269599728712505609652271255429160971217491714004304741080607395534912220179848547571123153054843126523499104573394015431126658557035608203073343875554383911335997254386746079515570952595028585938775607243222701928464655117718702896594910345372471389527740534734354924478646166290708671969991646392605810952438870204533518273102308653383392641773792162617622287259178660732539581848524648155477980808691796895630179248094456068509227609479614175375318628597605141178251466259016065135719044586903374058659047476100042282085871039521121919452650263400927527746484380046333024930200750261227035579014446991069854857826308540969400069898335067819296141606687057503326666310915130561548295585183236865148417692084525929886925120370911212589465014443461613875144743385291145206065065096891314552361659700063881793578768759000774806677189833785588044721610490184807105413922139630696335208821323034188213154014512652014133988019413900111907783286185769625669961144957647317040470212634271014150640998752232303880583761783421093838009098919314141768918016165869338250042244806732006741956402047067804365313497722817482680606509712604534734981799594089239396496485544866759071499210700668951179172567108719251137537382501553330060562661799114842587103572399180814071700848850283753941852178688174679645795160676592881374967808275975705971937409887552656386813199107956760301630698022855002513899713730671393206053268665515750438828537150632670786214846364814579612825099283258173300733446522032358823415638544886552340282095358982281545611538600449333326953988789838996825451142512198145016344152059783252680452380351604093848677594210498488987713290454594912578145457730635961106107283595554255737041538047040861591787668613352488094224868072596269338083846079700799196822089876896032111021349644119603582052791624364747305044572597366506014826671577927629682222696890547944852927154845169868153141986815484801938018930032151044760452951667525055608718492318905989080090015280363451421209224343071625702841471169035340504044231667298664087284838680781007593230228367105688041464211528704957456924586327811344051663630351235412360517873085126774415167943578432932111653574823558520833606926500807201816393660937062966062814521666440111772679913448140612789714852267824478320080530423087020743081406932960906871562902808029011413720117910952487014029650003825250746621351576363260788095915623604390069887656989951862811534307913237455554584012175408626597282204512934461567225890406978510578870031272262429280271411455947896158086653542242540703902533424203190177272842894560914828078041085435456857173459869780865772886831644735530344013682183076671483031909029922858826993239408147750520715284094088595206795970022801395673066907052001491757343042353849205738006635694645986766041307451940919861212853401823231756576249751957899035563793023810967729137554160961994965933344821200641865333951660359725447352359007935275411748906148719861405790136336910745451710068151395299142799235406094383590743499990681342388803215065509655452001898780614113362737856535822832638624043702242887019315292505016280725331182436374043314231480153914160479157502433104932787414343501114753387419585738838702054930324816224577857132408433584358131285393774048421017316204866843126266758399905687736438522001010439795364671509477351432531203571876153346806502718177512674899312820997452775370961101564264029619720553676545292021247348256238170142872089906596650118526593400254435365968815698384713662096261607877838140741163115873786004884792818193787079623225049638155278333425350586596951487393821949750091400090811317584214906475611653829181269108597760477103090880412902989144379779903211277793133476868852240731393162253880451795525586412559244469869296390733544073635817349852664320708441099701405997003964684619093015488070066035811696354136617480260884662072261291218947302986669460566037447145675700428947312962636866033263205119115150964523078852982729379355327259673703813761451206793384854500886807829443121777028622126501583670498262334165073155549742215718304417536570366891463246415037382670663523028771713167440029498544342584694753808463447097376414846965149235466101271960502148374308369290014738081394650671699784423275783940191798269576689795586311883492553420423171507104053307561081109589002000495189598473076075019240762631407297935279187606773423655316573757258332539704993687545537636147624304906068213282021935565566028378773552171873100577335784639501471523700981637945240605970852898675934070301627947035475453545333523791135266325510381389058000873451579544848905210840538406981960076189670967336688329871840586663163473946351356843121477394106166810154913442115390125834803808864671446018234414181623974778109402900599183775873474976927870030913731481266032558658515258337088466817558053541429538397455967728008613366033289753734618158945327290388084994442683733085607847100719664845232994533726837366224193116194658658803986909643070117192670540367352821561065606895335690592361446427107247502863721438379649781018194488492918972808960217107723601942822933934091702243519547203527423596264856004343871022338078538807511067347830516128433687016530390420651065030290612253350339146570278687078605260330866999251962693433695914732115772543998348747824732659174659079589897049316475874905448176412294419644190133084420970765718355938000406445613260380293397268143212707311725755526175532769360606532816779697322485860439323695558713691098348450593783474389998427363168286339718019358200387884184662507410807219415081503609423720843158187133020844078396114176197305657982592557543288887126813273102802351796709218626187854370658965264260435030577274350071155999858641289011706217655076535559564550092463287044395043678677139620443098988782229197681527831842594278936588829655622652866835495348740956900111737769558430238408646682319040775905313590608014536485689326160764090961515916726904162758701432408747660109271987743253599963644826029667864886950674033003451655651593617402350205034502820840600881959985172738511904113003503587173093383724227223785977675759745868853763715364962521313467672683243448923338504595789994508000975208121093923983182258132669473445272616521140960538143841414790094911625847869337654597287755077949673889730812563217695961043419863038543362906356530809385255793169153291140540389275132362076723393106502593280674738475776239242272141001742497152809300784845483754540035677706962985271575599081156856486713412715167180220240745207926049814069068449523767180944510978518857517836401549301666747663092302624424110785341658752936729724149310389348158787428400515331587216916638965192236404508779017256284754470434519475075657334331156414922895514457041665536639065475129426996667884931169179480403491029993388208749823807525510088307923786392829084859009641419404568622205240309555985335893619490244597479787210128919147988227929109830579978897270232449761737144126544165138017728114260848952271137650198236350035237195370200030753817764881593417331941514136771920435759556601067538086176519300049791314264435981668262654172932006988565503214671981633906039074363009512594525144576831591416195897530975066550527061593373757620867486464317939933589034751508647146869483590836963122530078354777014350162756115503510866708401023842810888139394870219944588360178643914355544972595274216334675319886016110078873565260736712388649840304453931104085990642773321263974295740729622649985816659706266508579866285486689215663172971220429266107997278975923402157480055550899285355901627141405335811860937849085640963433979034187072503213284326419483057523465175560658543748993324623500393570602638641905019996084628777590045397467907932394434835852819912843681026476476382899594972640125472466132623066254651862036646838441771235901428823164996922412654179110794157437282258820041140755298242148004257835778967710470940780062224911722314494150271306259347585185930466477356167131397752116005063629760966020128572689392904716823626080086677398581692812127929103551531698667125862147545724795667202114184094744691742652380500621271303269033790875800015267466141968809777022589344987091184191867143455551871128393756874223918934584672037619087488528227811692219630943244099004813160491356861098840379047375869568671702075340458733930953813027731425039424181392743522139601965613675405641595160328144628268859117240312158794923946400499748959443041281735506136645402378729728488812420562061351064610834415141183132047813574178939114472859726075946365949054272391152296174667713987294285069245633006460779450963657444610175934450286947160331298975923898936109763477620821450114207249287714588670853404703447254613572541346973998788927049828444238621515002270273068765449710542713701056347008996121446439784269450165414570412433467018287359307916005070270388196536431223170196550521186030434942152347981490852893541935332725595658309810003796712474138645891625641916627631713858891933097632692896105187726510857911086556346392016220730206966572238810031083843436195216582806928288490046664955416041920861525038376638948326994256248742997211986000355090951020304450470131650160137085489505903643516914101858892301745575665346547074719010614453363062400373562231096517660896133252943306986068427066445720852590261332785046414611020192704510252166166124517887378492790743200696716715588847637155303476288379092037773244758393944759838659622714905705354521886006711809890037937015234953100768044935177609977516965666641190619113220865634927405492846950200867970202183036789245812612936359103676190152590108351928258094704673316244818310263805064427948840632017963182879526918049352165833667989539763531582542192589617280276582819605040747059875750758360031496150706976885377182213552571702177321622453533335792635853506636286546029126037911465023982427322650368527209044550607933859026840756651811120710098034972189767557496597593857624144774599493901661269314810436887187848807971378862759769419667403582662963015336504284408399908696292737581242668447700891417664967737269966422586882484100734063708750937917950351183543207582302820859924001497843274958455104121834201538637532490732112604343298637391150722743967613754712053543216188641904775751901211677311878918298203005445106249867165761431189699166691907224138467641624650765388694787749327337806754958563798537668447059282465483902485252073749668672586375024655989889547422816683042736092567417575061952551945369305435633975464682446060166168721621348982982065634012913609895768700367129611894442080579382802219483179912765365016432428592234505451771160879878984597863569666832523003376989113084467520032211358289910798555105246691358125050583042076657099397972512744560415940458020814141393121227452496211844062002993440428513031412618784968741185448590911941732264457466201278245792711268973316199815820520404928188102606456192297945228065252093027965440576062626622844540387645254120499865424930734038152399885502732700992617408073705558378340454736522324170188072438771388511862922562183888897779871916320359166643110973134689900447052672626426827093093983991163905457136149423890879325029470803670209457410848194318442058836481851616110706996259989697157007057849932741195982215782071970315665684260205686416149305569733856434515611240397207093555588821592716404474776636371126447567484491374105154438295960297826917516300448713897914943981411358560133380029760747848012695544465472125358310007027533772858079424888463755758550114326887471474004840149794387927809611312363467865270677071380987486244513426828700526496829391091577028379536793924638124242529947611373849430622411709629697023662442518950212482714651942763371463817169790177325573798322649660623906142565952514865042672124753995241761231321262519503635224147244937096750075993741127828601717967794298771744027006440760546911600112906496323874897687386221750639570265095376813887506774401409786171447716653225178154736370968619250006615674649205992236700026453975324666440671133660688519874406717200050972924482684192873227024967866246594231609708917924514530963375364926584388603470683827221705344162698586737802551843908984424480646848424319290486594087145767077862516629792929816921370782518150249224530040998652453683551538620275520395076758647606219914318005353505791137682438917163916028679617667428802853700287952146229143126690319022490013663086238417214626139356419604976558682415810715311265011532272419058170630594239675992870733364072604505808104648177265964222119764758428969185504479655645922706473457310141498489857142646532504471665951326965806398871287839296770225123486121071767759106956654212065897225192342110664854542058198079667015011111963854876495462968022880186072171611289432963409630517169292713410945015381758268908543144144570570670511642686663882995916091666772874518727785719209973529828430538792488793763092427078026043453046106161236481704480228791629522079415075640651633725561907169025854038494064411581055128347651459959252453804557499861372511966503092171561049281365720976712730046060772379560148155444122051244923284555923410285478583537247007795659058714466812321898266881648111745263609121380347694909898776072761279783481089519754169919651220380461812865775780082653989547118753405874227339148569016800304582503012459044342749969356266769737121938052648454761430187493434201721760999882316040644055136884603247270216760734435439649118025113656442900483125995255430802080522321218969944413060426164202640729964416093439975745356774476998863097004576628877114222187046852727606268512900947452828464970368182365565606364405660211908253059826404083947348132590452625479938695006364180642002782091015532051678367211853034708932890549716878495451527089619360911733219850349483404495205994175736790940338091371471532028534101030280874077497176438333377555785986225308076483028980477322522317188849448178408670057708604931860216489274384006044374677336236775128598248567459846616817915165427359902792506556185047104457821871651355417835429656019054536781191507972107576123988169336345516828470964685536565980713488604116577945979974509164589324807302925435603033395717526605613636549994079555303785973098032228229153793743497095544656362299766355089470714962543080869121622290142318998445750925560169077413378837874184005996758476248049004636483785517693970229231709422891719450797270570325141097056923440250697044668401494242788320014327505449935033321464307189921208568301188496332151557022642190029542699074256287931930424095812369889664521185897453835118773244206883153526574761480262216108861792398626989138743938214637478635729456661656887013733641378769533226599546100866593888134623469921661333548106724709521420074184768812077914834381498989111653956781344024591330425567689279059555178665035892266287457053125233983695082460856870300853340944343711485756164809720993278986188040948436211111790646048678473827893514409062301178175132046205175180847895831890894088871255039996421897255838470087760707836065215537049078143953890503326413752728565976827751956386889458241964571003481541526328553139954403195945149853150071092829075745659845752255336295915977064387641603858561168327180903788932202905378713257221928799921667691175173429977697671148810481941648103182958256367548576063125893652439924944084970622014931007118103713366432018313494086833305673452485677291954365089573564699680306810830285618622107997823009258132739692514535433420973081068805225694474553171419459875495478521263663203005820514910711819852386242431325797372337692623200191749296456108628940110563229981626664844397090391999371623880102602898824759615446187114516430654899965622834170242429168057151927078998478819778615413338783748171384191627352078249117496621068535571442770584852557157009365202848239907085447167660295005904857701264312030086306346087845268126319183033051890635870892754038479483592044519492055866186985416485037311076329431334697283226297343597160613367798317815619803887232821665276607487223944222378579634114221881577080019398715055473155457441796168346092524612197523129106992548511432337858961327367077145839344475040593634679998147779356105965718586066365358882675920496100790562242062890236718204590077922552838127137480940260107632533666291284388314950836443787557536273016302617857986263667645903235888291566094992837354985042405665736232387775106048771575048059085760791399844824724401372558646104794474721354604581646226705979383530600212843441146282855756200688744071638460803142193604803796699033840110306087717264042726400573566528028174316718201167648971412954114362852621005108006563397014482548926495271735526691624335907030141414363936005602250551231313883641832305654182302735672051177060195406969914623516931171842151426873642643043405577926715196126459033166309720727683791068082405416379031919463199664983638462108274507797893731782715635963017275971837521285294275392798422089101851557416924946425577222988757738497661480422590710920681484413815018020702085984936720643716398189908849529246888030224455577349110869463856843338042893761605845879670193154835082343297999869843589850784786617369324714445088909148657486328903862121754595028298938224476250845919834172407350375782197143829231636736715428203953351885276955815712892170004324405402260913963397310824976425281978357443912724892535459080824475756621953199899348398901290705724820714747706489045737471902509301277019344617747751819869968898723687631997248564246994182780661461540001107035928283523020995899583217071707298684201364621020348860299147121566884532458414149017541988205270951043691111504686809936943019762492166613936588105368841764469839464550723850386183084053004613316482784780967657863691151467442546508760980514338190772317721538132813293381175193613839035645458713934482281553954875142749236359218252651568696522675840373542319424134743165913475396591459560828284593889863097358778346512705262288632467583975485070044969167826620792555965188673319775580808336721061588573319108599947553213355991086205722029808038954694452849532092405500672921226910289425385943540790859726901166263769850709574057039371459991141787712117713485757027967434689655422515516258833300588697697378136131356020565033360545060265116378367345732082441479560017567528383045199612188957324665870263803738599710024785565737678737173400123292723831510493120756797684814694117806146787732855802793868914202359681880572633168123734706961418565664046348071314059421841589334663498155089218600467347843211740314812199090070825252427513235152748487396860389366120358249275456965053008725153530252502982579653210864803182850142149932192719481441698492662601950558048216343298569695000798494004398065517445270520758562031544513886365626746953634516555169615787161768863160030111675555914859393669531256505533366302967860988499677884363222647998318592405036075006772266249760256914426146673915496518219795648348705771874126470865234615394419766676128117545306725932361265165576822817914331009281868632901319458362640377610112393786040783787568390948928121453412727821594935819098264254779321519915109001716295687667010934824257726067423612202419223702975647144677729436298812476376320821293640536793515109523843557900511428809243592197704879214881706476039320423325045438140932675991387505980312254492639071007443277563948540445955479169792031660995693912084793890020828160762367386381807802248754952466647184129387575558363413653117926113714086043172480142476425712817123776615647915034830771709039093126730899968846376191542133936717227468428068119594821620101613051273853921555639922643903388956063400424884853119302155706390668842221586920507995029396797950917429599821871058866583220219642032175897609595582178191457812504999045545750966709426083886643379419236528891313213120764904395413049779785590366457580643194175682753158130597104107403072544874810395244657650637260090252000891874311261793501618600680526247820515457638973750661720121203621902206818001228900791680655003345399967506752898214642510623359443431716073973986284320777018271941937591072536308402525904955796263175093599160012438693246914548566493033604585857746969639959286101313260031688593788361787913379902162532516904034271326799171769371078062797316201952147593923768308473062282376764805841881844787232022240717507976735161316028596115980310985508098024325506060469034905215995242982480829440772184988547783020584599103030088164813742950805331625836874960423880816428467453326593724023529290477659783198173778026584464832142396892681069299434825817421567339169567022939232076671035194146176536459350041926169652437752291606053418117626664751428413187484277656965957241078615355585056468379625029431177768285221184315961865294247662272185535778281726272397217241871707808332978903352766797969530734292368658174732026865728879252652793809403707859345343687685920943738145052285403881765403047447423957127781919941672700016955318089954666736482651915198753844145948184565793106992881495347472117097137905155465826513799890338682424666814024314949398605541739028660714058508362884730532308967979228056493000178912840224392483351812662664523053256099993228712878852381379702155081929975067846356346900217570578881419903357866249262928635951470417301996087600047174425377804922849315139313012140560103943362110215674256637881852331925913521992730615531323210526994278769926807866960629965738744349240027239470657979175837588665546510322071550812104908413825021930358609246972630532012368031055534150911615394368693975109565749124058621856388788178117308077403450040822240152349414437433497976274373911106966627327042598160315551259779570084557096730601382901389505123692795975399438238996274993694509472560236419761023278721095951551755814293188647999147358645161265288291479384239930636716444599613267448685797424965545616192753229450981947279536114266011037628864013877394881330865048942934380190246985363404580132630999479142367330204084980539946736121297074911700159237005252490737680361870576039831258673774214786150066813057030289901951665830983514232919650266352480481863863175001160119030579806372770490971539574535719785724276005236853360581051506546065939645946648143928223280848161520118771564789181576324573663592155684622510880357311793080224689237049930189965033598210467013870638266949944544988235838537557841821208009798226759893074622937843482976837780630342031047143340349864424661744371278370679984224946805832243066900618830083449640805783442814286791765299619634749526680536683406054889887598324743747764995589535398405218741445308801392367715683625100331896490904219563419511322630129331881445269035078567299093460452888125953322057186685392035769695263943849909012583071048927490607959100489025050334850748036378642220572650909921998750966150243082517057686280383864845313922254010851226400666607760902945153727146149432595122904738751812625357250343158024378813309790590470807648830814510634611386009964879753762388927803300072153031460468890030874078727822443767874274352750172605904805187902271041631792994151246664380471465560815699272797618702840937105689114607916116692995690171325265922623684549112013385137583810394808949077518702849981260260951856449445423921350970774820304290088509806599021479841643686155204322708799633524622221417415848361818222069667726446431386025454386813051225551151281959348429819909121009422978297849603416751781918204736451699469076004706597186713962967058630060483682524751574540569112043743436122428930094028092987179990969882372523843213082232896076859713558780422016385629413370239646895293928962829258999969963227124695918679220936428826769536434495138192363952172252458534292677833490532375973121207192549095495924991308919771615939526452568619661892202971970299896989450232200649089921573006987935281650361788841807798293488691715331785024301865396229749545841335477138796276056442892311678390834395895335139991215601490312264960783432761944725219578259590357222478965156718660401464962783678368753963598841766721769154695490251762380129602685915660669007736096530351366980970033791025841656970782030742861402646543840172145408783050571988280541005559824493107530449829851191952463067864449959657899125549186764614158335568177868064189269352825530994803363607637909764908461726783833724361186557891142826740309392040825280975399672282578157408130340890168899009178213637464602370587297626142987534322518219036122910395734970587894952659286533457378393593825458891823469101169314153134589639017005936892860743914338022264613745773572346924751459033619273512452768696959434992465407274910774417944709347515870822796535762767824943656408781577976165321515609139628441974003948500002487521308125869763849783181369651818031059273999428439983245644166687007672716227321235334883057867612868936762540286434833588579619864099688653235764450600652163947465773545345681400235653755116610685451690418299394980047666554567085431604857404785234199680495104860891630053374931167016175991420426080418937428284784580938319332929644925841349372654621987784562927383019567102843370741265164248271234998195801884015976304301361832819588309638528597439358950748500508990489707787859511913938753129249582465503030888656167018147163789446624513754297149752743186699022902169696835692686062222423478552393118670134041637796057751401090807606927141653424669382205554710122680673114227818432690444385933667350749312100407072831983968604167646525918668757485538399859248477812616811646294337622224478165379156534729293047101487867866380073956148094437715963159672420568878916700933112968356110200911856912233317471012298627881561396322109125159346931572545959236650297019030406772760276968549034391202957311413250612118979104480784371940628195110501765833710010575274382842704086225144466138891748648099595222541794823023302661179855654069290682654217131904465151118257514197401190398011969413670671695270503778797970874806146018491692726834331305432951407319846743774099337825342635123035459563614352978048890273960282770318487323657584339470669913553561359610303949456302593385574634118662789543139671513102605096406172681084137239546116362441334525615080456334968894768396108049972126795963084017111070004734414897499288069992758408650600362821455378177865188172627155397237654315970545386727958706997860828764959509050881177713161354511424259723272980550281625133532672844097198817474900368596890003673193971183539591640024196017650209411697208881110132674082692519256412163572044403365295393524115512222224956685888806813823001863057822269548585299456868981025377558292658558538777815879354921219420346615778922666415820943033516369173995551440732868363209182985805910261273865214125283429728490171686677503446563764716273567294782470199160624948226970734849119839337122754613968683847708511813410733720228709773074874279934649218614501569760990421965888649406153683415733209647284703761084108947906900379152437753367714651835663499119809845002539764850549522532445777563463776520933832831722537341648856483340649052146752642355194800116451128390413970191900683019781365085481573658357432343120698717648066410708553549088919812540709203642313503748602494499704371211833145946641230134969926839069926387080388963630166898488584560057803344343409903995590213762883759317581604792085139769594063015025418964054033958135779429407053493150969783909560378385209114668040118449439939706755870088439381825479970771647289243679081334380913887763127469482837183969893879957772785313063467167317956616933656511705729292573550859322709849638957863073459885342700202150308399858490018296711046428926412475558617323135403607241522253894322127994868069450783089633295678022964545091467462551008454822302668286218061706616688996030516567751517175975793646427063737731272279552084511638409522789093565753669997967523365665984326053882979335534753559903639613684488735518266412551194606195245827425854841252985557264932163302499152726231941192346292066254778059969046557271557320142176832188940669580649833880944804194034042271158578782364916072735338670797775534571927409786662527051391645620225717704736780771886548738998203249762957494605499521785505313569241432655840604776097544537813776548177603313208684245491479886852832633259700909836907750885718655277434440432586812944935463613530716866066589615357035948146603928274118865340182898907143689435575990537632211471863773243402749228217324807437224128891192222220442278391689868681936516324811591112082927690276622950696112494056780659750375777043954813315624524733733588793764507930578739024865303898283940393375185337198916446024509685850400390722533061467610621043434879684533069086497990323992226307141565847074272456583096892873458755327509625458509189894101089757388932417182122048999942407320903657660907218381455928232023278827948399765738344100646548365236823629027470594919525941445704128131982324023913401234624837057795762272200226427005187326065374423235267129315319475121701079573071577642375592193053826423457663971221805833294544343757888735530252031541977367103359521377333235211401543495162905114431932399973537859386163711564723307017947766077106300578402705258847124637964379351802271321470645211450072742107497591150691489260338708526134247658906490740506563138664175316299030261657650326868333734968959694154734981815280635572778972057874647448548257037248268362905309953166542676710512350191601054000453415329039492343103074752339635850057884433044028494364181699614798956159898074625733958435303533139994654215541527573765648552010624522581799433302062365911245378417872545638731719323568756506852771624129716348655759919432721650240539559330938600603117704909134604798140923290235512024340442309671088501017855846704802762008736465507215432029349453129254274306469801255976676345000818236817054593150317261330524170747317936831475524832225237474200469697970476618713919697728101679684403469256925802910721430852207354808167464809097709323983266387073718549625543047953366833303517478657293775553762847790392957776196132457533040307298181104114702052208472072198621377417892810645261950704437086036809688765835512416552415536378109883244821124256760129670336687122438225237305924543047528555690987978039158588094889467118438520062895653990569652315592337289548655609368198783515400576899876724380157129723478132175824627383479377678243690764845838454707950564715212938164492909931630452692630863945520929845990852343470269307268373953187389880157856637405274793345123575493677649923807766693300162969559055771608349904037610798975059056248232832417196502585684306330984627076199070448881637912281707374431951510642186115100166531895866716839834045169015005719895317340189895794473749716888181650364708782221966724812907371380180142700211086635627647479901769286293669613611592174216521203950116213810265769316112072033877147302550836765042449139645761338731108240315481775562887737780027365899090167561060836471884113364087331990579035487428295363453027412697691547475518667645550624528666489576013880593226955804667795976639231970018970528795322777059515040997623117203758889640400642327125770789264272713541754126346622216431754848509343665465457472396567385209818618212494341264644237578358176893145285506992649366127040990458089899391266409449488451617640558361122770783303760018669065193826478343522511621384070542552944432701673646443540134793514882050511671400203201059556144354540104282604115830200583748585666102419607909469515571676670859796963658329595185563714011521098988028024022714370896128897222893476809745890574618651782226243207088368739508306138706581122403785182949493644591793427924754317111614190490324023865058351051755828764298013855709706864760995397408575918862545129106574288165898005570604446940311385178931167594860292204335118746329363389605986750843264521449991899186607499588207628349198362536577094512196837424914076668721652929251069532773704819340291747487958171993508604215539879196760200329362905853972664524935648454057836237263409082408023692247807298849428174669715511985325745483027137671694745481814858319613074064330035174986272572060622849446228189736273500683908845236210651356137038504297040568757536046233832790876074886090610823879360352345559165790402827040350725950635007281468378070400043959452590360930788167839676203830367148974325770032302390124225534460285067629132274530652930661899103134116057109661063364829652537600922229105182636276818468242237507228530010341843247008128180870045824359632326437058919791549134941310467119288903462750740484409155189088561974909478156897063901744655907437669658658451595973857272869606482954123265916763424897444047079651692892897172372693070661453063984563833802258757338542120389054908894148922992678301724671089313633744260104138683307430724109290236753119587933545687832555292551106587730972193302789194123780478243937220949367354099578608731843160065960778367177614092580445137059028864295339237317531458445370247659241542705733852107302768493905955856512370105414889716891107368426615609697800654761485951253175218589973382311993985382181378675526030984635356930716089494312095874583038430622971973076448406345634979411870825095713273628593357617469960271125357153750241410828211121707841272601072287771576273358755487041172488770723729647104021805330502270327127225914276981484400343480217644094565067271000941966274988423965063729599823386562730421942746096814019638763236279921214692535658615324734570363763483731656048283224121220047927235008261358381775601297092051745503907994108437137879157668619532018617848430129739570907473766671025492137078690413913552148496862539523265941400173448553213951190763230057015946445787636575880771045927833956591406907317205823597791981579109179336558171068332642360242056807972630753143145253786499784853997541432597770604122420858254677528492222456603913729279367857359189059185963195387638570879170070886444462725809453371344157963094626377486115617338351115938525942149881976615089765511368404540285490180260461266473887926834434101712776116089629066858782878985425593618595319289743363288890581711553103268317780650103384772216415204181668463136478897614112053148245809496597598257990825236466760246793056536481061784333957461464167044148640242926793478083975265647090102831776886482736363922849381938067732253314430541539958074706553822745642465421500128629716252395787904930362469820193124863457009919750942590615837638438971111987777063452558962356559012506763634444700080303356935563826014099806288495154077778067336711066636256533674268657337061851669285907708031192473248973449591188160363896039017459413219768952777546982760557694777045386017398803119356064071483459585165519560652810648646898991612053372105940192519627718008848376442919955641898026332587931782066397719039812701939819995378195438720478826324820361671873921717441361038478900600344728994969423580829153697993189048273995048073232605503552481115274389682525816665247380398272278108527625474107911992987023691327340548234795257934055414494601695720814633894906485878730812765177874651870994409223999930671118553939467838486389455581424113311823511192817501913686266412064378714219922260864908849611685856676182007562758950105085462049146053175378592205920230949405070373906510673647187074196000000040251983058894516912628955491873618656002542352341815923948439105750459941703377370458383751706843452310723466899015600693165020660674756023280536574219852633488803060371982970518067639768937348959931217946465768099340289525791320935658996571163827460661513994523473664905362374955674100881540021163946921656761493090726640012714479804402407591472892525334616197791276271730906574267673061248125777687656905856648295747866951410784023316851497448008405068298803545730517920270630932250273315773056504454051600473049621330812052478884709118578397972696002329811448561615136719242038066665550089768321589961067145403857427408539111904729322346617020712581462630380510741648787921150192645942097626729481164772352875951500602781069836495223294508395657121750964849828223040081954260050599137297003134316311773604607200213330274171755366549577351436829992893061057470594262805494860827829084614966682019193274897440478034750345033625238056039722537080708523224916470331411669829559855858891379782718043418817717861654218927192768139698587506643858544122494084472869937157461256276009644715071071800691945209234828795189869397023110335852606707439381241490570621839920009826070729417665455829059451925854451333648494287160725233031075677912060591083827174657785744096354079664794078160670211004735587322689060364481203110652302240312100330829206836722259624427723023699996438243152736698403245401531758684587784808184145815369174294688927622023452775329436480295903260070335746873631887097482890068149370706787097726462079310166343498034554303183749068228057254596732912765383929344628548146300417848934072652569307079626474266189682104974317595928881317001123331281902325899128392803367045091956245263169177814450231149227024509163845387344920458752920275171885986949891140926247517225380872872998365982525392519550589351774047724617204764966760524838254647373955465612058800750668104594749893919950666815111244872630797834275651221489441003158041980965356622306956050822213332272228652341788184450107106327977580331429151821425687570347851558037527352288837363670685239863501279777164205082838013649653790085748381032670285910751922556685963939313770912024763934861565325874009293286557497381296071633594287273750374890952501415808136791753012404970158541588554170617930031299170218140676934188267451736503396483859582835032733359925426082704993859493535387881473692429140231699879622465976769463332725299113827550054095190496042215045409882413631242220958028998719548400097242662942073338785656111374125500706429672156560115437868150747796780214408050817058445214795627204234423404327006253721892194733793653255298729403531199693784877088270643234178850284806515685133999482261582042650372754896728052417957021210806407487689670800276234135204300270140518480135191224610780885344214197585582645220274777417558054571640180120254462775591555702985961864765409497962279167775639759249475255647678367611634688319206205970369634465571298744700138388795935089196071097803679418262883897642791743840038979927053176788593565029778970244526384393459327614166265993299307276660510081846954516853085592015562330028119981611251361656420270833830548578211977090120346344626055669564934402554355343845027728355960187222084259814377290648413425387530874489775368835617938874809486783671726494090126197491168383019371687792386333728621617377716574497498152675023168087329046215832863314803945537556955068381295051775484784874785980854642585400450572180036318863208124283533272713786404520167396149068444591037832568058573445942005199968006694472417265042239185252521040204842796364277680148303490585273270234272484051523674365939386349484201667090274023929671976425246901619282819952687486727228334351648331202688168051001883761563161747823356309369428637505340074734651688923842421519429028071915155276396540458855471368027882814694351274198248298079790236578637578758646500062712102018226657157465722745694470992846911647715677227959139097323077601430044853843288723473231866846014603461852995408050016426793579469889833954561603503884134817434312921354768875277865724861619464596370172084586656440964959722734719565453741036969792952396218867442357044477802078567425331546619197693255351313148081644250361850817708245175234912219706082660441701423128864771947843323571885129256387436615741152809474444144486500678952114667207899427785394248374558271576760006034554553669799716532302230608496704305066407696015014279006607845828252336362589875590380794085564366407111619567931402407151809386217927116946088904947767590565397624050409181804941314265368394463164075792432304931563609255782058939184061292076592748893754541499928603075217544646749531759229588998842075953014367327269583632986163952634545202539630620085813966786631261064830088868648474646762998849450939854575782394054842406518282689284752755891696035144691098745980063485201659803356251254731817865656795011217620302462402171991186551142626971424518233365655708342372862888279391575722370205127529009400525018807891349421010306687767781673865001329263252678085434203448969635302366557843283082628501627947417940015912138200650925057448055267134915129499187288114057606162304946860971734944512943088735153111469412888050612549597705893248288134389646980634911532111303292708901434007118494875284479146315698553911936655069088427736187152626071207131925793264476885106121008294637359190697920989388906173388602930548960514242157920892251654583305540967294650630098236241179542523593128455352029623901710410352589398223339875392704992786726940887214822957937257518660532513142170589547123436215347735170863339822739309928892619293498111875483622844095754949641197978637081949161239463015106087818299545876645783256845588122045770791501917716375261542111046336234520162838858664289357467725895162450806511098187659499653109955458355039920792249013264188907321596527301897732142243244750026970114385229064578219033151302752384745208244154961219753272920399309294829181150632923932911433167541116820602737125880799649071240158367820765850681727858123577160776456733510167610372851367688174374791114774089105356924878895809772531247787773846670808831626785137592882892012588562488417386790557769728753282550671089265201250189648572144533425556484684500483858510617352888585204383040703342557363827482289904395415004388944766662417830536088930660143360502640363417228913223541050573038081439074490696791361530555676869306663152711341160759802242673502182056803213265019452297224188296076452182608332840479887375779349486917132126872490112040503844194294740107928483850434206614819857352692839845077356377670084756956527004409438316180871602630109203283226225674325229184924381564097216804584678925039769884908189232580252458099131063145689847468216576256548534386437431515204493704337397978217507634914766801743169693840243102183922268272381414224293782939415068930135811157705114539519980727100155024960613022848845177649562576960221661079679546040170593976203956858184080205172603465043468447759501731503894919498274938651752418283586089755514308714082293466414378010084118024971263836264321762076210715784356683062064062199464314188105533107473917714130016871114839247451293742592026771789443364257391806919867137647087550177243523500050139449447658916654896492161227058161938168786015580273978629937990928518582678529480202584525013703323987350060616023544976233203998014028338483241604354312897426216941139233547553860845983736353485625449221134461541737386874110230721651608726884629200756486886032871976815586597996186227323861220983622072883992756774346479134139370479055353856623688203040698366800301489833380962926000188731617720159811309371815812116052275685692017347509066061928623129366287927998256050997660557958013945200930870378141631384438334786069257759116198485425488976916201664072760428198308950396941015150521553277172746633512660793130854433031507229554162531132183578126556747235938559841233575038549767913095013548495907409540261788411223370268339627042836821359533228414650259241645647307669947904018716371890754246474476896534464553184221604904726855237818133465388572670472319397946391134969523615609186645541552059550887187359032985117404589984869956070186965402294949149172329792587040125340068517661257334746965128543132021610374054398193417067690218665255575531171565984899992909932206835820245007069916065152040789530290335549065917053449379253766543390288831760364379163116173590969571055006066599858737073282245739440185951403697471937343543506827902872394817526896257138276947502812323721140138626899060890174757968546686083106685949485654363865918044987569527994203062830343003559513256540033289072377589653506050562945175638113051523191444012440568553147261834373210923150876014740609444970537865566762210584063013035287330306718544205544343248203408991041025300174359798850871866615975044953577365100569011237565007687124365381966932236285742109641922393484249341229491883993795583259931876697447694808462997015785689468213422203311994498885832647220199271980571250599732876180565070780046436646254412085057092313901334555520618716570053926826416573094097310646498487899842725222759977560474514098704547798932472746552986277850599317275292124184841175508588808647329471293536450137051690060022892822346771192046600759430802160786451164806913159041688833182697973606555591636137429873525247072308993566160321972887629337915407559199027187523498103668831470396156593932991133127204620669012356980055581828045093541306792933426918951105684829694923257159200607681650299339704361165646997717966203650752344660463614840788195191915507031016721110595038918120793738834582911023983034547868995459672734771412165366153776884022415638432439692198743053375425105799005671490910808892566741746530868479199737457914475331426997527443764286540884575760128172049767915488103771985195412226818069581961087633043014150920880276665260172817698146429191784765373004224408933388764444460944302268948573734687285394140178966007406862105294457596331425268923296682524151056189368410495005446519555824731731037751643745390943011074394059486485933179859516193734888503754670670928397350984313673902571174970513492451572722442372967200039563360868096189098029197633342900491394569083738107135255811139293307583351284492363101136407231299454293735119283472134965839829369220708687068051466051884596255060334245776178196383529610242889307688122345339259823095400353237797169031154708008407775811688623384563141372426167640738062572477034400091707197237814353717538834253237488000269104202662785384386287738632883689927615512131679250025911070240409432815935135205641101356279543586532585578896725345865288033256578282802402199860114325264141415900112544342240330072958837256425243399523511459613870690090750463276766686691910410167081143447818492140703097587301586559771705477928135082561822470390623002119848213424526418347253239499594219599613901326966907495593292750823536251883324577336241933230957388509784024758610004145479093184178073465715481655623147656593540671894406758987007174928243962727748682532076553898706988571516477852672266028135184162147111877635548878134982817549111574732663553486657623740984267093814919500753139796496322776781260001835917292833054410394522708343779052407268944313975098111544786138381002611778783281544359444373667680357452577463980754517039209474944207861058302193746831984103507478652357240179339517737930891415889383009429620306218904824564172658294057048034773398950154690694027229831515542220289590789604443306860622546477081305100429861503748084263018933743649584652185158787651712813441445011858853238674540882170000565787850488945622019671801760601458360295692887528630242614830160948809001875934974108952080652152999367856770175711570466825728712755804823255530067725087533447758869825266097061572252078446629971611849827682677491974237605651588533208434876121199498656539669873140530941458995053961459003116662584731726755617668583543936625282492789130845726809403986869919896815012416591243910302134468878470155949869901174160150831162333220965947314422177274412986255421558076823894484073243993386396631982156420014423087668173338786476104880185224550216085193098460802551364085077672223654790271649724846678211573373725075965806746857199558903924860244071688064375119301393652826770342631870475464903768120229101941458000976759502771082164527051954509487587265052651670526578647868780484629352288994164373581774448184726295301309099853885699744044826794971856023523887213204575406369072759931122477367515389670916770415991499676538794684362273885549146349286951970757293859733111048325530358275423057741876872796789013528809710776466304967307106524206806278287992793169524455461224793121495812138699991821770535731892017537722158998449598676198608325362531032025836547092726823437464754464925964126804238361944311229692302864759862290184295112931929288837211424613362720788357926740320702450475859232091759537751670304993118677061256006750632640664863096113039319243083998207120392047077483177897496597959880289069522711023718570959899950556175359522192748682994972589352037082214273294333663002290316146145459566238863471862798182134074657496545101124470577616791815620160349642638415265023744217886108432940928239793465018580217804839053494160243246136495965145186984026334138994469044732453363859260868003521226904658769977555972474339761055202694475424735580523377138669322482280843491243522980528269181470301044307691634151704537706129555551790531823532105741762782241908539056471371570976515240565673483765364395388271665136475221382758738430895700322228719525948206331984008116826327475407079327859011661546781098290671405357619847139309573298107259819805236709667255873839917924922400121307440063730996379600194722799622052810761620602514468307728889201323512270754531172988850405441386008029918317543182997600112814518284994432702856106612614327986940095647634959587365006255958859257690191780911598932004338750574748458105081997873541223802748358557289132706381434542729911188039011271449769621964040317255666279302367597228596138194638431780662903414964672531451278261973144829589195229975259455066610449838988320432578932700593912035816653270685720972635649358373105501401882641601984947173929535175537495308152780178358030164954022732011068120940896409357411399558911871806887415617164606696074891569630794804238562066636571252495180964910038232358412003501404349151594273457946075983025374864011293560181550639669799610795086704426708629434611702917797561876846501471245706746400670684438435138691259014917693376640131460607161309215171621847986446728103322058195315430246464042564599831943800717113665567676720656884963177034051746723115700404282141927861468278284013412473621091805566467132974421969767573234536295806889571917959946072113709546697238962171245874593578274316370621323752403259253669662396395079656491082748776252624452233378276482164313151570720171750679366540085836144026702028485679353850802533976652620661964369696470621161500868323638995601644042328886128043040960284499657759842404805226826708512785861352833484811140996900720258706160819196312308941999040448280611493847382184230031223147381055266776357266679791771750966223029028713117148416249178985686452132210177979907490587322196430711305207853039471940374055220140596036820795419206242755559411919708049506423952475765657085481302985403052167611178344065925432153497197317229094180456056941040376714450839654331596717015069787789538177691559909304960151171045368850467523252147451818358041775795699808348794673280693850138145374533699784181886408705187448481564967644958460023597907391184634082401217736970435809157761093913365876620949597533792623560012123533310273797957769703448666459388665330969179446482454497025836225892663173866084383610949651827856535726369238938568693884993281791236132510136151422946277805975015204595492344925125184686431973935856075235781104525272398699704872560868699585938363279835256226619710867628467530990676887449716592327088228067522970702079052204236667689858054054711604310016383471381133208897513757330102981803333500811395851781197391548261488202586468702411650109975704980671631826612150574184361007771194863154512773730096211918036851861414928197129364379518196542006698641814908983465482599675250765029260753669835904411603918678656283288891192891259185260274732049467606958469473339480829013309180842321654729301925231442811544732897347885090196039875683517036359060515891414158700768847860598500365471695920252040779658513444427995962500023088557023633239010297928169276370375212723474252180783720128333528013577621872217747758291606993891326855790063073348957555843660669584534048992085584344592319485476991727132285538762481153228084723957513739882591554762068887076981223422948355483371869406628942796619245906044905877895528132631493340225089230117398453952199888922594279641145569711289329359152409650600611190784604906080795308614320256620939291579839154697952775204520267799725824649161164109712624149841901742804333125884318160890691542080081175535159753043544768700456267954764100789559455449195430477559073143470062478875699209005769021518484426780639736942950531032319531207685543245793263313588830047630756684597678202229081355869441167802546539492474406807830398534944031676638773145486049981616458380348218601579237285369517087868822327822301048505316880596080109150935813492177773964722629505222666333078961594575315530469427669875677718556344314562700908843693189393818232358751407981311990198641375848657178294614079059700570144372163186629442215869516091383379042872892462848939458664266267869922344195124731952975481010211431747976625052708412221252715454245675421816361760242064421091620123090502035763845689987940352234720654422557704724276833667895021342704963434353020599834861888143413776657998060664094693607993153273371552538528527595345519380745490041426556626469022363361193824328778162713432084073424437859440583174534581754387591546926857568390137671179538355252998202395631009365171195684600949040310368097925531132203707203218786474835563495826177574103488808915432122415772373893553061629785530747199731594413767193644108019233332449457333760852582707309342215762979511240734157172984718524080979598378140552243364599130185837432474140065807156360708502789286357596925396233731992416984350861732216166042818445720267181950475572103764664081203693144170251332562916379199853653154707482691344653983960682623608385234896319505699261190423759199641371449866730705546201524528208873637124387688491261144931794851356147880239300689543329543304589098165297019794056803676095751970832804934526648636902744701987970894803232093612274548468863333657926128018241035853545891196543544117414453930211341641611723673146968682591511539250566438469413333047230178469641920257899603220527420196673593045002883599859886799923703504491603178298249970924804053763932627176723081642557908806296424503870908640417480628647787988437646147194123649098952615447338486441205397551769669503903955141458820983427557978798131499521925888204497242203141280320178656712927428364990244606459196636375902356468046548611727643486103326131982639984870667181135897761471270826081026870349523327805146390629380344997498027859001095155903347693207155223722086909237739362550248773710456246942048128150195889996492117007655886023286872757378317681628940564584917897280364698533590971584628893007894863582989824758068907812888509914092713478635342520673373150525028361186824229887301917916421370706346888700122476022424763489244784912007698655492337898811739775095264219729758266739603878296770403880694086405682561059450464817514365009720434058032183364928022842927519228185528799725273330813817773183801777614368644014969930008607736099332317960659516346373018900121479198521872598305281066192528939343812333020510165968894551276900989211859250654796019314222783671498670607160231968723159517464477327596873764231109887598686857470412791168294055074809064249164261411978399968657280640819976779652668370853002415159004298898802990416355872565568478217521894731182969764259511252881157219109900805891544481560984039978773371069481687076577085848670711040601222362098457835819336350699599393967763434806235081370859982935948717524727112075876663641773496523503287214898291073694376841512493898851854154784028706738663432906972854613714301242117318728814200624442641824921645815302267891604559741157911682961820511273747862906926240993474571111249120643402524760446281771188375077019514916579292133316124082930158968001026520331931758958035206790354959495330128104848120331454256787870803282281448473595577624366276034740538920568103691027045817358296517009962941056536425474863080289709057853845961924345158840496764069872469509399547294548082576981002266905530145416964502570677750652396635941274741570288082215711673725074802254454683009895360972304898601224605800726840282171333236260584360697965637674846962230314410470298216681775754478524726227774219799088809658317757633027473688510030987539225709509851273285755965834262262168086322719411983055826618876323719363742116289410254276380362319245656344347315874156272359256539357726750903489595775452432187807655890251914879217997805917991198168407075654050620272909806081386889476480224747584190617444319489481850808829827632066066821054347636799845230406406388626077793214635772244950831914073822810885529479280744817180882706179633903353527589794929985490193386638479948520266422278984125135844035418180599801632070370964007866015182080951177056253651417473580495012238217095106073140398278732232810325024361809878791186178676916935956876362038561113347672310573839372685595413392509707896116109150801591313494532872706934694578461268850853951553558640307015027659005557864038081717756058165345506568797397665989321725597181643661556385968058876160670050692821702046189750288693033120001992016068336293169603116957072999333475524937814576636644833527752770827279454893680563694753798632301431346673168251565571618144912939318763798061182013835123023041755321016909419897069037849016497689541118731880445664972411321853497694404496481306614485609169335291214764448065204894531224869818359446045090125027455183196175030745348376021176721787505682969999773314990426015103940643434463527507851683748803973040263242461970274676859583226552277636637127860481287774697069066240900829529849994619700798351275769095105792406287151518231860560954022302221467143378243571266547859536164706364554505274542865463182779116685466577664454500890327726837727980134286899599260174503901913562569199280527400441123626061904630997162230212248850757015577219856833565726722533818174903265161198249564369664238205864079671530138998088048590062669003522510176304686739450498293798893910319006036541364000939079364966526030855543992529770038742800391513710033209674461352147634762757016742141255146667959287475539335367848167676186108468231818108316897559229453922363606094669398142168223589946523850601006409519071009118139898541704261369764232120483133424002863380642378774685418780784659953912389405200946986962698034244486902959191785921482683860482468177653367579957324920591740127377131143148472328061006548627364247479966526233098147974193883836950450607016917480835420308660309911893333143443941511516391570637580408355597096133556735487403037716684368611084938486479533973587404612545274255634614889074256199216803895109429093898238911541639203669446148226448668727139464162929463471805774490623054626586247915991874299068756345968516530162320625637725899200852240304482283698888742755161018768355908911427708731819601013446635953349286807406047050744934714909091298774032211708153078954870017830554418835376593407644045722041900808137226910767962507908713015292291827694224681967843372604861973113550681840455188925431416783926919248103009049860865902713909597119857003816352642015368510548106006742673720538709372900907728535823713951297378200224344628305828756001326523917655022149686219602666131973443016740804298439446298031559207446274255010971301222945705534765491038895099288218584284924672687572032467219901768552091826693973486384652863799373056136181364065387944222305590304910393799703625826155583099289411392077986527706074820415283134810903962487901163036103158203997587208993175395366737837675721182021604899809530144530821556349740587507278602464710408800115720735964505621755753786447702077034315541241775375467620153121992456920261726625297376987363708657221248082477686534839052631296700072043560783739210076949590032225989618558620314156826248031988848198542588627256452857729243693268349279145244553125929207637193178042570854399161911804342753393583839531513600078010954817436897951946793795936412748330979942392849456676026726175146045207740922539891316879997377703833758044170882963446318006000059464766118184186513768580184938852640350094946774227014878284668320411239318439028405210906335653048621113160762945376684126869094193740534041557501485893841436490408354860418491969417373319729797451114065501238846046860447805801592235412467803915922495714979326931625563350957561593219131213587547449283130854277959426342143960505390891621473560830443409812067651504996050419948819436570093616329108892436926702459506063184791941049566877322675279470164959427086202866743081094907171478249609198344140762320063860245944927411381791098439224633293922858113492287347880451342881959336736936212206106103029903867407938664650250269633904739318365011070516811708514332944801981156675765895550175743925852189403819715292016803840530217708091663988409044231236936723207537909861524389766327561721240776856152924678400236036660352111716734526010848066928621927083364862723573254923916662583665265079786514871119427254883292255941897852300048404296593293752762462620625535827861070241208192093448066858390347961517797862496730794263134901711577447392732078133044345704437884569090209596961626745982576714033760963798507187182866896157985109270340703252206721809639308867345407991795830350686981371823123732225148866969704181481883315544039589294927935932379373125363825946895660522011965413386616373229380025542410879083306795575399046930742302584922190016374741784342512255701761270462996703881588224501784515190651724509505458130986156248671182908010430781999581229190570714731501355482775762243001028774119922387192982048873809711948113729764289520948141693796367300622979046496638696380467896321628305338320726834592289828459938963014107922245063000154684582711681913653113718294593510584433208453282408139140139254494629217802960510142728385063848950513648176082824078336945851496864785840795848183675590695390189175368613685446582779244041192902576027320061863476247368192817177081137202484210565416096678609029008071988854485243677794086720269472766714276569608198699981189494864916716976550475817413685076307820629465570372526988871001040360526659731596423051840124803096673128494188753723945653520668178367343085847132541208181988214961844862976761719764319002876186563572866866106270798856505232558870667156626522437801817948163664795328980089704813445774736909971928346891429906035445588661888676361615495744584680660034260349526958560613912230644749517062607296661526443901627124765681850680966109858804782394541721231876124917934436703203314535701646926435840554039098053224455192425816276674614069786471761133433323286850501327849437812205449154978779378466146858133995700558952960253701858878068671093122786401169049816328012462584835460620004071838792476093676863214046483705780371211129981891797538737744743280885706056344264547584960517454466596931673470468297138764110704754673499753108133233674316051272118602668974484792296323640250598576760564448199692714613388304242808494236158683839875747573697755314713757731930413011052530492954671543486798225828873635023804904444044421299188813580500958193578305834821614153137731950275484304095778287774645905101187989440132633408037157651887971542593239319438006367301708722010596937824298223624728931598496474778758965811004869814295248696888300302574378001428662948287216486781320334649356921633320117831444532873360587169339893769553740030544264976529623028077964953701144751059912238054808614588548491742366159177258497839032414869060647078363300439988228139223588310843116231702372512908548192089308155553785855657636181542392690404605760554121915923633042424402425710551826392851920584479469041114943402002901701927633701548236804460278197094152203546613985518022197055963952833365887497406679893568372700784389677842174553164265232854524970364585292210563476315959370980407464189028225281915400400161749558243017856808466222741642420564311078735326630283903092899659521291333497487689123405891379393742729185979669342606381321156872131152335422567578848655848249980235192385727926440319534770378353046564392591300630261380532195556233263760480684090099407818540278334117452454470388879247363513764491418445204821529669379274109663634850946678787883502231138266365362096637390865314192355828340769455686514347017833174242286199805849066003485060861319480036478876167975614160797667525981384430832519064537882656762704648237053218043734803668358231886874867805328807648021206823332835782045303537724266415185158266338327460102788007663567055212182078304732860208500593315045621899568111756360829585268660665868376942350832380640419296875981873526106143682513211308706731585455761868784116864709350844881858915391274152422060355323277827994791985247715044682295861594296774468761199514293045447495482077582107333444636044102949905718751375550424367878329782917568531471199279794476359166921501521609204929833951294996698488579813731401893655851170844873458391887735735946881976757297643916426172832152009321641984587944956752208934277708360003430809016197903169501682284027624358365979946830251771808292087214859285194999714586799928149339309465505742331926573194309188558519597429541013530654504736884719462190561770587286420427472218976092490731343403868495312342079094678033950214722826386262972205767952986397852582377111882332130686542118205927094961528067820640554556607289985267356219723301415099852786697133514525850705357882398700151432209571650786924710595838176130411091076058046484833373340716334498641617715301564083338882480846061857698011868624792095836409578312157005938038361037374410515995242987220537885413214160605490934728503358985843638217676577690107907369022343679122726009521756932339123640623974438772697722733512770074547311298426395251935907239158085026395890262606980496713139976824052228489791311886001405662934873257309364755555300862108330998071679029917302979535851540827970414591992954674607056811499881758160635630138438398968437633889848706508620908764962273691169285356838186573657250541261367770359223974888204235904753590913873037443499014281122722613241016200303139619166083849910105467237250850280031699579831137155360308475670311180520911210103898341801291012617656898419914608721713732658836629971185806336615903033337102661609788831762312414054205312508191908875952253352913895401847823381294457900276790679464907863853129278679365194276406764147359716936283235888980460494980215470208096090512919287628657389428416282342244955184071158421708315780923269314050158267446215131109734799786691544990781189424252837393810790664991447675652576819400611958394975687577498394338531909844409020160665215581480039814097852838479926836197275540776860688262484992958758182298863268721456173696685103552104872177519331570476230300967717966048530915246724528986980516840127248507914605432423827828971083687611020796282032476100347559927445544911309492876529060542035553476911915689005913101883984958066627522933578193772252960872554686343581454057279608247821065146761163559162785439298409934210254697690839379156362351476833477837339901923512645858835190438311832981548158107492509188070096097698158131390172387435026665049727384900577719653988818454050462503494199683368346585661899060045528341047962971227518689096233159914714239811811753792901259896183773365449964769151940033096252953074909252953285785465573626849527539320588388986097163968083547983864112956943674498962899096225275780815059237493487885216016871746776746689560233281721044567569782160480950781458754114640724709409854340976759945701947282407145233294972850689700003768244117990952058460619368718859566421440476414993980537421297702279584919462138874124148882806241662522139821623790142213756993628060913336620298621701374124669944951556808139081662928525345831340349088395357881856750488356524389530092317514926166586254636359854153214830731212750932667057850643593857647764002055154911472123851594538886711853342386086251793003515270847598429506774483190961687019829920539516385698727364822931994439190922227950261883244225771488184435463392779783334162700036821419198667291169526824675547544675319648648631570350187152243186388935285867155032575868902833089618661661160182694714708065680882583253278324652792890685716100087092771003057065851098832847210825808559544730481457295336960645226827080188726979348765679343062153943460997027421130800889695390340605522485132467440167040311123267015270942806161240725078981170351124000872407378660809250874461976306754818620141589651393855064983317790423510354246016073292407605864957680619116747853643344413855953065016293858239838894336773153854960114952896756380697297217219660386308850928938787496906998352393349902669017722501035544135113454969042971195619485401521312773102308779365102497365822122325223604305064247971114709120454786152232057108096112260242067193632128267216728693530857593286956057414728521930306242556149044502637983781391304488199004302750372048317955305521668505079143815464935157504195627334595337782602749545270076715104997980275713930225751576066114648980656515583934923555654847731077642623350868541909373880437424100895758168732499014476326538385070989278023481767201809032645456080495849042416405336008451807842453332872970797167775301177836119585148626311280879338329509575849823714740825231498615494344352323886382670952023869338991855570378123646932681748091771340433240071678993166098081412559369002552728538832052244996628251527272027073730804499004158641606273501650515463994026822023503030472184120932669372177704419155126998060067397157190147441431397138198970229417523449459424826966499136213204917043822552214904934869747484541864457032911272467875995345493866989764745650723845906560159636920573900715219087581572026336606233012765856704580909916220750906957629863940557184991658050569196585646249656352380888103862421183154975406071550292374705519629886342262800551124732554752090919544013996348268139540776869838433469042990505409186870481093556674039039462435632660088502640047859681973335964459707239207650972408575165702165046701988368042968809247047086051569373533357345050839176203461419956683664317910674832901869875896600339304155466046000999064865227289627482387958928277199742119744350023448878543949249797228286512110039590523318954966942601869371152716575173749700029931314266563845462733947961745978215784773228683524576907290943685958557140167468900753693029067123263244888278682727490668769383389881361970760573488671675995412072664078279783588805876648922713433653119415291599717349688879236056506699649273502188939087291121304878950008733839442459337512322463126928519151282728170187372173928607647895816767396801399878249494786958626649319962070667623351965585737421354111509775687354662059728542737324018594899531981347932442893014479644498740645946537627599653516633631825927058878842380363631378889099519344168444597224883269359405165774240241137249865006838820068633418233883032575480115041847565065036136427471770566653272221304928883911303163893202996567052002481289908003587967944951717981273175535017032873844732409819100690682312483736769767393175898112935719840619224301778249506251996754612831839835910294493428535199036854839292434304256994535175522544319212048829169008883615161575547961322811764835264142322620509556213791558765972619371251628817919308367233722582599720767365888533590957241423361592012530666215323256906474901358665217918705072207885915274601344629810511405421026406971753069589316844381715399184405508809877295966273977543817307459400841535672803295304643680395976981987977275370095191391589808168371933241605777788827858197243822228158626747805519424048535400171105990420003519047822515895787064981651225852932103161114847027318417432540239847446305698849542519354180836307330471005063137868827426831537164039817491017362158995401243880345261766240834247134313332760532641162697033417156970522893577357011260614349581623805998290269528669380857699091240010684720593511538441615991749346202814670087141736450073512597380492063084688097017123560881981938643095934479136318850514150684200574193732412562286199507774772828059901757456408460249005090625292183665705765591912401405238628345028206336869649311126384016785033006601389369047504988949070643022999434308142247095032085036507036470325448613832720860676252874551607295622786798896008785600386013633671927532831905038059648094193816152576146366216366776713218093449125880324754346659043007657131987644183207222202304534737518042324067524300067106678099230600040328159583293744509819770182629311691358168488414840756350653688263088543829783589559651251982036461062552752559639726255010471886215665238300628043753791984975993429590858361327301453329493171111293231657908103934377729421381530429897441009117443005732565441007332900507052442041101835248584175961493201573615119885140727752670696072068516051237449505353490950001040360551256417584578242667379754433599705278102726912593833762569302678002017193081670655919073220484639714227600829359208425527825154089397014274737003341240638577574435880745132666354763408466309124061361455492870096373606964224074873134471792856387156302609044307938918975267960875898909741471018303155088908380424123381720187116452281236998398834211369221948137085820221775577080277344121921210047697617202115942685742503830162193854073474790987733489913001199667970724247483429518387190346472029357967481110882824705966923420875355385847399992828906560841025957355114543838213899946486467556509275438232394625554325176631606389577732788375301115443115671974280786643588503285726303717564009041939756730626392862680877452562423260010012495265818573720283209114324835022538228823824525730636830851520262791746133509729889366685279006597640391530163244131221503202723359690161476454365803951515483835115311770889221347384029373391070944343176042110814381219227869088721622605376474166915552302167654511509678405928561909029193065424115482955449727536291060636203590024892564527126121495435233565427371623757311109552769008224838237618869745231053900623407360281158848546077148001199449083928532086779216972060356877875635122889820905632151695788376638786155167575671096782764245875879630425634769775677777287866907940224020367025354130782070949711422865193163143185723787061862794952180599696922604553293203018534044936315267839400299899209472976323269218055865397400250864249771736599513044944996263144328090461224815830691483767271101967572754661613024660545209958114508405038316880327185635510758505042574529724737037962161955992766945637195114294469192082302765742414155406199585326006245300629747062202974649364318910904162188126460230050459946576145455554605516210922863631494760202065974422362852049715402226563761505921532175873895522834913362775012112004069733325564109994579990733423931655006883693078776231007584462416068039638522173093750578047928247634380669810860754539994600630701003971358169948511987101198474647087581337020762329335950059080547864670731789219677031967371935890020639583403368770945272893820689706878915792241157155326284306293215215471327167767154177707846909775587087321695238847648169035677154573368083543462994529056325222321993135101822710023622463044552117374927084688315268797107944777744766585288808884254674490668931814345533815027663039845568818025213818462905343025776494734514728111376048421903343379899573013476941708825999279381122519538490998285668006969755267866021569016781407659050858091673524106672464627081287836888293254751095982077078167728181477699229362043123919631109704391613987065518021337236103734769108109231302096756519856122907583450565674433501600525904088832187190470381487485083945334256897989505888324262292268358028865069475492128931634964292105532652189295926818108683118511154817915078957096759725220760536254047595122760295485912886974286596960430203880063180836374594590523789216290889008493451575602827041478122626372364839424269147016438971750233133604378034849322521952877710593231102054429305086865851951376212888607032208493733914738271654076740571207213548001378112889662900083859179197318452000698926880469658805450780278491222547157714481122486931926843201921052148929039160409649852069385466576689552339680842012730531912437013853645454995093029414972648592035067586038794817648399671495017300504979698632109178223687936649641918818601582039372550562294375936608677229722680854145959251204882753466620825301864705147520683919824300713678373812275139213498609399061595692380192204668760336173880104622767654894154287148100593653774556073249861173710931104673621687529877753560499077430901736503996664955978008351513833779822579959654256887824562353744468172906441118532922717086380829153551677959593734634127374767854234000372746832198145893895066895136896929379908922085030530488745806023752808356514199848872999086958755893516635384539105893675573034463530788854967942926816487178970276002296975255568479021123141377632936998062294204458289854014663355476739197346030015342120902410532432593126043124565752898641525224604927602007735545458544130337262565667358176615723173047373482494862001707232508976933704350193964662823803850228766111527299163820219029750738803784723116289959950744226283715299990059186563907148321430069904269261230395966703336157182432985503826360179455485727091327013281488855373893699786578799688022190235199726677571593241278715825216913060286930799870666407360613757739805397160785413141313118781239667843273361705507373033586038690533828971270487426459447915061358670446615566826571151836546888648764658895401494848611215287620054773322577193717330091588147478157333610662535481944947730922926174571813840795198614169249868031407419549974563079204258458002643285157764003219131123179629814730198718210962761374425210908528178760970301779617523024753471173951698406582737221565955242419642271049074788729787906724223987321107001420214532569105671121782490622268867903938335757472392126050711404960246958297867927574763326131285245816218302604076236541290498331852119971262179129692943747387003731332704884415272998865802503355473786242310066067238472616847766090140578210709104592946448146132092732189402098561962538271409464114637861731591938043217938403300869129839207839868573163044107427512031762480601121553532263355584673607554328272108884593798627490162543696145100562105783488624072565765591791957664725299264013716512689996248321806669164398861389649660119991242484666325870649965750047100116116737511477192409291862350262854136998240441029679342120379132131955733037399750771784446204799262337618036053761529259500882662939062224153690121491692698488078709484210799222179703911111724248634752444249147426344397381134931085085655827978376205555240389268241548089852119080249920101465305289391006670115868707774376382424811310789494179248047721342972835157255923479381491235708191421505948796144219447153132778556582432662575364295661783573286197116702156192688711035619025776636873508587592529333325073558283785409993455454895203325023891612143537091421967248376072778444419256457095433500998297881232075127382924006289425011568121082165856748353560654642703049015402450294117188297057705713979291582359815498811052030456866983789855698898443060084637863605495189011381327200617454648041757123345175266285516326577238242810449889632205133766916931778095794116206219235685026386295445912796639706211106212551873977230363410519521437017591861298483614400583978562968380496485502654265445303033371451978743848933584594223792367329465101391675081338623090234690875585695094860014413523473461573341267750733316499052342304074373334159585113740515205665344656401534357540407867364861871993529180657886787744054515041677715842279649640732270104462648345029439218411386764987182949585790451106724992776568724324736326440155737058457971505948823736875068441890768353419749311234444723466869999056962987572941330571101287821162332108503637936122366495312885328287279420102533023329960881964955614503332613629891028711819046776484512800147925979221763818788034276548887089129128103855353270809217978668312609631775827866833178377206023373509370543309867774993495170688701184328812798146274563911964434561478718291091262608099266547717711600350909580377109587436965035088420747893798239595107219937295214867767420196869670667330118969034891106689602492793763094412531092225120877975314768475044355885494070387987371002992470346093482810329416692136878403274284380528455504134148102539748527648035764210577752712301368325986384824366304253901110934178460150276882664977925801373838530160173956297030884495269501279753082180213031499504007859281355341194277362168931693125052408567843474752158780689534753070076910195292391202387118006042869831463222566741274809786345607104725031767653530626246522419987179920206346547507184768744946405419958038930138226096535317571295137941326680181383045271513066475968931346742602820967300559612626665917669562375866520768495025700030324035626269182228091754489875356651464285544007956734474118742603088147364130575524359265322650236105310051193345280766617554185539628806803143829567796337157728990098822330519568613372126989065368489236113521155962081643384965837028392746806968733380510809362226266096990173282282624034979205414463691710467956975421647648605033849421713074384139980060037559102091949783534107487644946714100190092576349420269471451856698707306594551358326110823533757889446673486915685335666283552911590605215055784036986793875814526228136591123384480784521192006760824633362174178738667062942890467590995660413729921364155388795253935512665191356437878107892903427598107151436379258923781338535029524642909932835207450531441272432056504388914799646271343294898858992399258800337794406026696700623578417873183695322613456965436467923466333004456374296654117502301617377277210705636455211020667842638699708304052708696543880092625316205037555830685777567600789709074368634318408561253402153961050040620834802986532198778144080858873570707792735733289173184279323115330417922534432484749139423737457740414069858683099611624389123697443966268586868902865579338183199585131817254720324832080602778246854211979651283742946319533218735689423813718925732943495816529640505996904484746304436046877555365963232654896478494213868468107303768525236748072366967259754074116829468421958271825574280751752612951852914973349141112144855025394530876429686328623285214249761922347297987542584512955057785778899998560544311368127257935459428213015018270570012358405722219904617909016299052123482697426732302342203232258000880291792938480997212939102923155792107661930339113802759830067140273471663025034778008777281375206234121913303120166977174526341735687158955951795487850107365668894318612559617667902406349507187788137553918505261791839427545793928761795168158199875353781495764908471247112080618219282693032404836873635101308571356251932587968659486719494288197087796043828970658605366215379477107388316657264400901168792557878210151756015271597503622221176357939744164373135951526007598851367889013663466109300507354419310938268466553584298926368742524790719434462517272204747458915460652355688649378348644836631225433589271837841882560053748826688510992124165152763971333302468621265528474772053567896199938086056168338954261057130495216951219292955460555400729041808923060205708976210442803262166539529527075105910756922360258190016905128471741692243067555095746878389684215677038727831482299728467448038166650530477452682972609243113115847495290542308793373455864265243668208123598929077821733453989109212068052832340028973589129913020260543043413982770741909899464765341811339272899380652133336396831245589739101184821978522130594829459242555638266455500702276035780772748555012486429463253290066222068017363804729084971101742222343429636995041041334150644264061257754274658293389784942840655181291260516152910076784947247687876476760515787755075751287191482615566746114779844143224524696474696616909515600407802817487020473746130334235693201068169724640455228655232061506002338943287129254734092099939898486743862404252263234359326568264593978547194162677799347537825219334079136903090224047795978369768102350914903741314423037491468221784478443207571232751049128867610206606907970462268482781151858771830583307078735192357186403406468768288072245645568019839869019793036452868903970407393506079538172790185875860800211357971912257811167980567894670210661439729510802959037820192703259659362274677278674018686159053896657001681407616529827526617271237179702744676686389630937382861175429990517173952391533076249863941881198024680660433826403020908224104097046742080524829559813176586340774582351038634081835853369096943981989569736216112743415005823607799278135106433026255700782811603339548902148472278357768003172345672078011622955676055700260414717438137173210905669367957383212415119779205951974838252779746610653985409392111925387051011490499379631064522447140902390740911665380798807252940590678152190742440957263265469804058424848578064101281175714162299295028821940115003926584554391814520245534956168883721523926095308565185947949099784212682605527582627237519835737918500109583060001368930218066628022101339811867993082348645018671911923937405599780879146803545247169648943960150962920378780143040448144318006817658939616125556957246809867460950872572462218579449816759533893693160717648584515624760806673178981682267194135368940790693499106624391131671944190146553622190102899873960989312055715539375298820729435981185087467155467579966555999746242400609981608148277155253828458118989303474394812464389487905107583216397008081905992953266958901693301017640507204319110412808121460663956140800794905931078406281294003035686970383047794546628287417572255750344856387141634234410301656654373137556180039574826182978276936132941488159435223935414783152521071973980096588906895695769045231064057671277140499914841220508241499990290107092816487648708177991779890482655204612765931418903367669965154299858070210866485367107692237715453211677006401060793043705751464923984397128123359848846932464567314575954595483899914453442436874857863691299719099048215827459081160908265368943061013164323468380458564901321322888343868018137188288075124995837170205376509220411828025237153187931920251033116078717591724037607979408385889183666954493836599147132591580188257253284158050564984550547430795232102932777508193994437232949167112215477005962237285909529507597935883363158629915027005454918052599630080408805995958736061679401255478664923821758872339603688492159249022654855822283210182564262224601595429281334615640394660922369375768346424173941344223877913596870534275187315893921833836619605592178290596057687151578089745594024623512205789489863627969399858256608248095675739379636794390957553517589293510936716046114658785927747593326683952772208110389174202684056791730272198108926421962030721156079127552118209611699146336351853471311107661269231920471482818753713662884244273282959334429977704273464010910353752634597021648316475328302657120703727768636780000154475937809349959433496889281221396657686065313659700884446262682380369278629159160467107546641626295682100017747232897084794580940167189409211339656085107834308278136557189606530554709277415434137041280164949606549204507923494900475141141328040395928255339063150688268008787800383971909699393534573336935288043188853488581509104406200865064325536635120414898258155167145855610036092419110013558290000802190812839631875856886190028394133141070202196928002307228383909961346231718014624628872582064998829912005587781837281662381936799310161000724215273872423475457226539621936136455638501605517492534476707021254050852936540252242302648182064359061400229615806319465108978022796508228809298698383583725384700848272015364405166691821339519695508340049697755351197281112150658637664680225305350088336664433679115394586852544756556845060028041161682477591301726515454530059431605179962015738243562974082493258070930925859129082053816456677040203687285953496193469059747487585121113035239516285261363248549012903728423287472060151795141062693019624422631787035640907064429887366012897353395445187636574104740328909818263188390674578358186571265417677483847591149764459562756543196619132626014423591572990331628234446768127735734132191710908906023170456121902979339757980638801311707138680938101713761729345404273606813713453858768502973779611863107496767986367153947765615516004159337884757533629172705319368101269813327949045124069105657179977734999442968469823418797396523823652760591466535916250537427221294085759667466564781600448799443817724442073390140882652326339650741878751332767027587966156013217453105749569220793088265685927884533552260699031545523362291255006416014513328510099830893708889430775443372996119924147520604885776015577874448030181024572292751686900776016025989692972072759918544343150444258283040609833093061097485040657999343492546429732766222505753034283865635825764893456480995573610871939401950684224850561123736910286357830869960097378175049112414175819479940898263683971222057684271294279733378135533555151868318945262893485858469092392402778590800502913193864365889223006573313538842134945624885336990390038632392777334404141387376093773147587734778601323517853939899437118498021219645984153845606992231798984837551072620637768230993828625478293039315225270884684320734997351099509745235539208124055468150628217054717456426118626864953342758995343586693134825249933668206368459684712225121707982069166744455582859668021090727862968496252105870252093562642520797982238063878536738573776658800785621750232212368798724191950213805719006202195795086404612906223142447073007484729590119055088290294593043476347461034047243009780874407028986418564138706023908638962793262637783884229729683971594812233402383451265616790200540899028072365701394994436228541740917811385435823055402911481234574804268552189568481398133937490824273873765065862509756779238804700214656454706918858168433882976017283298144853026363047549899840657997398443910652078802274048695349072416585672990718603858941722512436841361762843467240309805818119406398946871089628837503428055360084925246706407693500276213441477402577774058043805948130405583604608525051590097148829339025362411962844051669905394119851526541872692484838515254149321416600952913081916656275207030702108422422140383491292829961443026069383425079421126682729679268701962952169505748172487497190503673525914947126743094631732960503603060360045488566141706493446277893486440807832948663142903069346995728005713249980959667361557644631910328128513854720445971366840081329306272466333492734314729922696696598025839213238701163260056584772594570482148959352721541367496616421453807527243903499352008671054677727865053421609239223071645241776833581722075513765982943816988093476394415221763829776448362878706696705585669396009459532005352094216017945733672306378909375422687603022567313867683102357330381819943908387282730880551649380754104340503888730029039488738661301431587573843171155716434609581838471286148994644355795609946253937095028551034788517308776671367870882939762978176007528304926219136701878973907445904371631368460225542272160927791179759973147848087122784688142461825949182913288126661424238599475366568340373434525115620295340885280774827032510260690998488664949674890549368435920127147007758208839125610527605015456270252436604705816792237402915283288658367450486374502522723264543520786109675590255862322082435815863104646028606905378317033148678196569958089874703416018163576595677713625144031376345269538973815436648987477074273781165850310843788730287384093169648495317404702989182449807614936750216989920485344569611048648640369010134863015546562043670490416150434963169527653510915515942339995456446564614795645426765402855969142380001891432655587651065853061137514953596361010578317831896399174927281526895128765989304023786399920095850491735733662974949489070577105990706080596363580845071742033269921223760091091328959757381262227968688944416944316539580321539591972466787777926258104375913873794506511880885766449949875408569941744514068278838307283805178281702108779834538862139392048375012677213858206377113863167460303095516029067770091948295745290696371369563047786519153646429860819250883932900784988852869399649581217427125270895234435809077292289595497367340039686990893964374976676685982058604924104530053196712477200997358885394645788171501498707708387903175562220841035216217599923808938989069454030855350955695418959405340727794516969810946411096437766109623654723332074622158716692521613973837834783662268147373499918946876083069139199552341065209561444794677431047199590432558672962075005712575345945202914564055504869916592101968687254943942762703810530796895411241358989635527064703568681905864960077746183723173112403223536858468935728681195715015272352276998923921176634136507781387810635816685412254799482025600096598579445044061200651572193743356610103900797779608895127823212070071012159043872010807023349243219463241737516840871229929822545842802519226078542975152754486550686147291909637115831825681219709577870654927645137042631820946528978195896776917422911660428381240691067438468246583535210669116177782969859031671013809165978014394195767188964817278123160757405545708663134326696532340053743763417765123153422228383381888008936634057213175016545130146439350205311680415945416269012586885332151589914646438362144721914965337163889318440753933001524905191097399237673250682629807314441471824514286242789661914431453912300024551894639769809356131293645505130333194500444850596834948467080678275008159714383288285385156079407474473072843296307708993351982790038243974150213180757441655153206513490981196285823279994114046393912807500319129664790675823390409604009563874534029471795509279846387115934840411073571606294890581897987309749672624855184009833319374193327925444449176784248150376082897736558486118726568766446939886009612918994282052388400458063566518283638109559555338091845533165664482501534517476184572238523464598306635323287807653322576412398778936194327936496625914319455804020259173362363666847859047867994559506615155296963756732310957362899225913864374691731445100687484394257483313207028707245793620309698061299787325001857999553327620173812923300176375923986639979826765420568999192545965232458671730265795473686458697085067800254668827247894270338794310847879678576481268335966345248028988047617371414465571197271005757373692156365453029683038404345971119160766824693157315955597583156771531476503492149098612040421255616525138724085501340133012303968698713369493515651005602434285753509735497115586091700469598024585965871074963208396881746649503444518703002638863505884717662608783142565272446251693701598709459433224313949025290797839671473911540585029235609174715191106581055969317960859589074500988452836553244428371613533094988702732765740451233509630572903598114436825498168262651633226425011267571227633786310831912249771352498111010893195387337457313990470800650755847314375788235974733725182944378571125392367086455669031384649274111712430005181407420409715034323789651352255167449242891128538756605690206233110462773317626024677539518122844029697823573079616176495046056686285943120518856868743742230795568864973066744411272516763603972766889766626179149748803351071432949652924349908034618650003861873662043336098797151253952520459489110377508566695971186316627424194416174207316120053714026763402504955830841489452296124329305450975492996163094077211605712609101767757054943970572980647509478393615161579747504335688973088748179507264972014724616189455213328581452395154415121044025015688179290961046995366143709434892885436120399421693663609199290185403224953553214368389938503001447909474739950725877236678083085883825400111764605362284376588599381646141669214541960996052054067034041351242586305390896826008554933724866834720243273914659622137037143891439860909902456926914716431564608169015198746860472622560716696993800254537158008318545281857715282674178657521162341606253453151392015845237719409575561144880954457731377158011881123605817423876549107317873661083731461426959839569936294478688546066676550743526976655940198245060934721951255733238974660992815725536378603957612990131269973452589516826245683484284100170265750720266043205721229209294515975540046122862623469995610016865975018586612956358185696553622633540079368782830561059510018785361214609748130059695438783203161004298458427044999066305089825848583198482432971321350925617732942003487763849805934669342933758295035940251906777767935268806293972762574257795261272695892181008980350508125042225663831175374992346119146795425910640286388035817127986196935530315773238003476515540269571505561829469397200469268204428158534920238558188011408362279812335521536244467465809727903114448572834722688588726201597651070044579456188838224240262557110092165215924700551047730239006617720879051181373206345764448182331875989378987633226508595911107954542217029795379179823889462758772850690358353318569264403467980423509772938988438427812144089417297138318237237311659438907395232427096962522834226206215935216281469882917509429244668909167068005621091891976454521958330348530672458303872906355565532221451020614217596539215635568641158065010564198931228204921193501507374562899385468775218776677975264667312476389591632588289234219814047020289318374031655537071821561760916848128646396264957906750409008249515455906086709600962576266012193659551628429013115024309713048511937463396164175699898065587193901212417631199229039774026209800204190635322210302287784162987850842324355126275791817826102382636016450597672904560414678411618190954579436971869980071272634271755575130488437954803751812264410511721097261029012686163168460133637447212477968798588956800844511492922794748068051598796649349612056130259818079407085370885170383456440986462124827693040043675000275585795004537659690997831229171289558096866200120431453280936865973381647551243731892786356429958763370297855394314541780230769095395678705343684710185443884906872953875843637724618923526041751044334565196218998952469291876860490557589993264034229304811881434127820195250659679180942020033290450645530276365504921838768334162667305284738789585626229747284625575465754019184986368955927837161514880975259418376483738627627172155160273136530861687487127121835514778279382960262881732155784697137846603338721309867577361012638018535029258350276951979796324874225657318331091456540540603349462291191395920620576505633321907609039629752673453300376388461698413923735467348368196072549926526425582181440448080982626185255082291818283100954646929093781873172210298986887391382168135016194342804986978303751565481700988333561743377415672973308573104120347738223303956126822877585516699405302537126121122014315345069123680317913441439591190953534025470726595092398249595799371070650364955104410627051792562113774863545980177352154808326067423297437563867632099687187476862197769007163667389234902496573955582821129947249544078235582920839078801703538072547308172808548391322634243138442942449712167387065446606260963647683292578451620268575875950945813141602813841831424033556480750580916596093949670817557995759621018971820761228426908143781420483436213213648548705113530425002709689566053888268862865790525003168200052691641866019783728156736844418159284371719722706109283608838807737867009955292975817246583350787710062991094088268888762344243150491540002504433868137650794583344372767550537376295880161204534869999441312126976798475173946662321410320199558159678928546511574095718894235607985680475358087253515481973146121928727453318318467798112401755855189926378080977219693518661148330371684689104228192762345365758121583549152049028511328664906081760156175701401579918339893788533445168682221118648214957713068672986047788680114440967014908007979258711773072044630069562783055957409977837562983760656444575339853352784968634953350557453517127050862780765083338624377410656305189767921474658192919919895330660095736782127065550223365910749181757248898942408976305374412386691069779904802743781183641714368805493610954011918112744434892073499165914196791099385702705950861930952052333670816134645366260347524679583308786537707795458960982454865451279202616639466503624350047995802240339612314966500540770801381810511828247350735894319128397115223656592237268582479261454595636416645707462974819070046879252364968482525335282521078460511248454974692187277915794741586092595850523411194662470383809446954050779576520922837245172743941482951026541892716949093057237717472222506608057351598838397663013171356821556207943579687928464273467899565027769698889836333902743158662641454118999587290916788091341356647605072335528449880381579673860394669321688921356611038488256522327974882426849002940730043661574909558576835587253411430021241149735389763227255991665316191327753228929464624314383319306035476464150406977262054333465328337087481739221913038818038804446395287404273339360008058526813340704134445678085586493015471951079105328659207778519318020801654229677332893154537329905865314967975922717846235169994642547567813164801897838516974107790875645317842754561983468045202263868851634294136919163650803182144543290527054511115626955468734073922464622328312999915638155251870783364385870093804401009030743756006017914622175042180082195672764110419766336397381081149283209276492945935277573952307794303251782032370353371036266399698279526080770112274926805458372586913575300718868642277908490278473614580308287880974044071900580685048078571087628088448165544086037338208001605783341909805131760578257123459522464172617133925317173912382543823118124054662135221717692107639740281980364829604141066623822960466348353848761371859626107035181601191037014709216956365760892371863663032350810732623128810626965569875273654881600788471048639944474394771874095722168844050177177111820698000030785639106429423497069445267078471262501575279276215278023085463162331728629426184016620733180236123734012748339403729582623111312284442670336459550151227144336789829899297922960973810471158225456315373157381446521706698583806695187116471346406062669160111461971053815388636309139860953154437620717210020283781805345206164764097223377447568735189144614438225483311811652762170024783908402234003181564701220777513994060292560680133196346516572076518504175029549596592022371341787275954443377737329317141379162430005407474129942525655352461781389131291451818743700531843105294939288578533572880088675334436827165814628882019972533159086928225055421911816253175776176017905338370894962252386717682993572167929110250203084348523987664390179608700168149940689421682219965209604031679991686690904287213810758537675220992659472305999012699698138431234439093185309943584935660011256884322099740289522377152318848773974798414735318892516500655858423329341073090228813231329318613638067030430852527397559198018274501976568763897160245610939721974008394826410537273254349358944937615774854077217420999928015025766639305813988463962499942501326778976791534079052370863736268433040731116793774206747645351041844254000979319038428181346012900220077224406461057119757477170176998009839766945182233705507681333161389870498403380543821186631063556670475538093738781679160871705081767520996670863380613060266575218063624719766052856730374316686610239106191347848022402896259896113114923976136695385384880032439938264664003539023850802989437518551136594070813315642283083009363758414857666213310870264280631789473850562206740626140067610093526453591990185538007059438073791479838009308809068055551002422746335432766089599782150855816072943309121308541092164658417786130239086059961052669300740402525190048356587744744261331204850786601292731857152047472059317259244947321025795681060975164447863243412489188350114756320950487756896890583713958979437093177579939624580676694838770495286674660614269419452590383848693785944956235247797783981276977591249080209504089850332869582272208480265708325353030948730178051514565747737981202487142778887570309306253131363463702174088471700275123389358759053646113543654934494505136134007267087134040602116649682319404568647789318325758222822707270779592773873153821245281151714014900266974384257900810225887225619875676914706460216045517798595637873779843392083596787135700354528878278112015685332544165466557904381400726233751248627130986442596853710784900222018187269698795212468865343293729261913618227243141677101687351338763396979622982394871896491849816975092523952580976246844717800516762794091593141533203613025476158274613125175534913665257560208851501272365524135439328243834771491889046433572274411154806929999293957655650151980678445804381258097825933367732942975909187478193920360230795859880597777549375210347211842305622092272880993978465517252415710927500506686253818593816441331693149142238962664159152029545839498068332323638252004335158397947906395627184987381860951852988457844758067849543501377814350986530694425380816339755877841411411606402123480940084363538649675691416561037040010616941500069377057405385925764320729832032226340943479483924494329086071683392083108055505978154793518146063941220423622813864060504936173860865927146123862551955088953405173733684507721503542581271436322181614168423996106244304235668880440399905879808620286785659640530914462528715917718778621697649021554729451333203468203473210780779298112333460014401908919943150806486506100975893898075797497800323092233171276496300909793904152202213425846520274824787837312237630282377916595263434043365176537422123279918718636307852429102252170186170379086698987879642710740516587611937553456898644529375371927208817311173687725932336884787747620749533387186197898479509387225327365991167597683588371014579185564151383648023295802954264229492592365019668665618525128957341633126742517175759656082661034201528675953920969178455448752356927205603940237966462692779133425395572457718140898370616698579600473026598022802841947344536403903598174221726719471135539734139321666530009493628699606819083353561717978070102320373299943097189826205992532490034705918787226344637306454267899118534885710655481573280970694479500205133720760845078394706415934685324584250039781491213813797889216895309565327558135657940608833309979958862141642379413678926812532075279547853238284724448612483910030903035095574075741708881636124517051157090927784085837886380081906588378706778631696057425876644840952534181678672252561536694560330323147437879523134859357746426545407479319055587925837064350912622472953046779102675093416840805313207820288557077848704462040793251672702276938661091806387791695961362992777979318672406722948922847948269102604543166265139270837440401553854897916418973664272045470246578404341836990645987467548521709561410255952588597251691283654070409064464910337680863962933510782949165422249556494158805452373698417066947697166081946167540240137570151041321167542855756114275144012748991432924654356084733828428991105899553487280556966021615017740336804026195854536476354125291059933789586213244594369103116656534268634900980750987949640431408647691410985684917146026767018802593907979425466584703000699060247472481972342999368860232338214569598075176826515168170429163215483716136255286667214552351178710982792136493508021615701743044576104265459792642597496690312384090107763241146730100882174783966139932669632984604160086502460357379867153775404104336749505692279142526453523335092330695822990807705111006936646738864085616722630351312152633769803574327011290544013559124013329839887614373801511191587814881346554517565851920506821647849774663142739419890781075904338116622302871499141949113376587358266676796100681567396736845400154523230189122917666402111686964414921112120488643741689593670050554003939178406283703587926009473118396466084934620054460432618682435306968525737339547526622708019678901802143209169345142827633229407399957752998222750710654239949881725669879485075468018576853630259671924837367228071959734553432966060032975342844430478771741993052160664879065169768041454853795633818132119530032438068413165342472412759735393293492926253235425155469712122970932022323312522683728501957727129648769307017878120441732496019559915322935730094045697202417979187026991772943859378114528300805704707583711655853084805523667399389660088180400572358040041777808940482651285271849373270697162879176799814273901567615803075717047709667493099267464803523805361961642545173810623287091391697579982364701948608141354288809631662116390041831963088329025434852184407414406201712414522959271921228919047705772635182060909409469475175628325949046596652972490751815011022007586715878926013514148248742869269191825617622769295069686192346237066437985818028119701667475768830232168902360391453072870658543282476674572241191862294408508634175084692724488709078406769873762161662279731047870005129778759002409860832054694505609104927128120208496053098386399336097386478354082668508647069492912951916555230917197325039763956883415291854995170205912926690494195974891723258091830195897319762431903840847735212403662142045630192303507896453462765714152475604208173714732063623707301908096845791113896857249148819927271525823072804054159672003823577880448090517202638705267377519205348997231537726083676341179222312048872375948890843984015041858331710633383848364860657083534182434943748899192839688130091650930138415771701562028522996814185474183795228229416530453196693092357554212239009775967750817922486658032753621756139888639826910409031065470750180393477141778870748138733290427386113235784324964641310902417406256719256198897635316070533637777517942789775271420441880578498871280801846021458286345904250662680918600127223845791545007030428956143664425259066081752912889837333234216202009158424433935506218031036233726538531275984388366664974760096532086743030900636488521228204656794660907755005005589778194387301245007071270593590451102711052613558236572409915169458010945897659834918050658082147611427503580361878826728065763402275573535254301678996666217315608981278136520460409387539281736060457376298170034996887449425586963133326928895241460630655641891970603176608931371839147273372056169683505656570072715932900819920299479509131271242867582311737903474222112311428702253273548302897244796005478301508335803897945944287159929115208494593862659416661144906013592878763991613582216419017398674523094441978217589177213100184426419482973108052193303430957012926066732741098911673074094773614343452189774435691329195195828701490046644726406100757307473794294505055271325866543455164125655219292785555841488675468661672056147518512635032910207759836177378763041633316722750506904176850014506344422549398182008672595018401248194652893923284658325081268167794793225535927503992782323884308934291876319231762044174683385215448589683044110140425704638682045525816532733854365514621625852571849684918905682047026837737572600679486911683704248969061617352463766169065323892755476873705502982811568375509832867181967393442525316185054283492753776822128351708343107874072800091745820526173808697310140475698098335039675196261617456046824375237252036860027365988490587632154011341972643825573421191872104393584756333138523152363472322352191766841865683255371997863466005124856867725306250995214195265229006302399255790685426637428467418384513946951196244480634025231039076830799709516728600071829032738567692692439497516326332249829906860050853541641805596972793238154152221051448698119103996867319593423862430755909025750677859086670574723737601830849833386988169885351399529407350075856711019152088712957165145737744118076101676804123062636826686747479205484959649449907691312183806497537923236848073309980662280779162135550629899814182193714620038810033818463192992327044609500934467803055693549451282162588295937029867471526779250203164580035450480301136978032136430293692101172257823407154937675498982936103143177776677527256210399460269512903349876234378772063941145733825847677282291089657283646397743623491330600266249310188654932638207860930185027919659748185647140188078465452020797767376712628223045144021716625722492565570015978787517378388351525422426533151164537547493239445531755031390098200050562344622818287869130991856766586453454163928272953768444755803433424007807567272800766939851087569386546966782082179039155266109601233176815862658599556770454777955028302400306376776843016023140946750113704291601031253089976267957578627691470471608559200621162408946257677459781711611576650743784705900195697044700649681000117787881625722520640820779367088552508275274346484328292838548201887453725346319598640804480544766217034588825505980055414050828707323951280584509500313188220607795373445006388440964930145714592138802473713234759864586664796677460150543963881760047874309124144453113320971517115293237496073589530109342131303450647568986760328419176199719295269196888931519108999321979109835689485723063086513652022722717848095645952232815406812214746521025252068865349023539735532718418661905984268112499275267706207854385090859425268014820092710728815050451357013542729412695807350913724507721193122786442678906216001051071666496306785913434221430231761312574191451066825675839652259101201504758532286611103692906540021451202468375447611343922864673490583892352924668265586542970263776208725340644682179739911854294421356231069556772413710014070443056103705568237436674384198470346365796381949200983927846073092631521724876972170057719057693301348176241727194556518827339671530053897063328700327571350009626504172643366027033172965443388102753558036073127676559106151837064570456955715491124364647259271342559672246787396460892668546234253072633641118836938623872496540808836830901633155020557716562197246194040482517020035596415643386188724649778726633426880689731372957464630901495586409134521110855471384130927998434077492628494658291030385817263628866649377741004661948188135843359168361273369520114214878948136868514661188997426989809873785484603086073416890635589400926945441885895874808140324100433924746378068920019928781526875207260432966038107758865960818206493928285241835559572415003321798116165585065486382166073684519010966571680250007818304990252358442242003361579519141742495669399689061894258914003123143022495524338135712200929422869734084456415477762690792375956178410350743728056488474939863261872497488661612138254344203768489472416655546070462694137771129234300509677516604452403793682910731608540264816935199073694237135117265851529232019822314731024387077232629588400904126782259686616963004462399071682957164392686767991666325414036285929050226065593177097597256473878297809730380907775235654567789873539208160492620811265119881322040066176421536042053141630427614324519482930878047392658452024485546604751789898842114718523058847452569332145955910474848707794102547585645217985819985729944013370233913986923497612847694390342932969148626751801437642076790341445289241781550260441652604877031905072537452809389719330202747983685920765539927217205384455547500828475704260866779840550060205075201685603880296522308970052956650239004390453686355119339389312766446172040093823861232446213248225686637637686334823159964978822833997858243135642269998371741882109285441278635459701482493318422377371721474049501211491160317939609300245562488747380971132401172484017488005248198029848481567862814911197024880563147217487640468641080677864250148229416229267081934557870017346304933059216677152222642905539514240466501307127272720409218800032850758068974352949034045197485881630192400063283765438161696361192471804710666955507448940184107585733969620589682696812060107905550916525776553687445406288744808206935577631964899547131511514501454451071190041517498413347986409585118563616901436458915261702513682692961392199350663825704439905670535691559499717463709553123773749136465657949996360649910580035427504544357158076784560425697358361667809997234816330093466168897388322978142025229229341001944515394895451292843101840348261421908413035111646951365552400349776033598732130359382804363549402294360142731353188453253400512521523880315755505658940280852338706934446532787894177454595482586353708893687979763038248665185730930495202314190782619666931038800566307896985326880419577982824572848397147081272027131762295403385253365741051085634375701198825462197044247630062747220924089907125971525065044723520779794272550192184999645727441262124168145402341655966040994549264478469454743163358082294626675911476015051782837816049650027024051252204014929311732149917003325821805388731997886795373996718431263849040959643773608184329370138493462007092589986004559389866154753720466573383817350317251784720983178372822552995862353391363374647481857879248667792272002645312474288488141571744912887820496165631919332985208328525436765834213325547969333562185739417968493837169667851371977189821859374348103729026197227818425503792787197899301172407707104854674960452702298392476303354231351755153548543297826030479453342875949647510209440756866806362501403659756325692540344234932203392071537921099407132355781956416773012964401802189383945263186073813238722008768127768264546160308442704376902768615176359081529669529560505671331157760808915032551874729905366068099396120705083400955068839650567919658429687724268491685519284581791837947599561803603005115920948274802724397314815365634949870344826278456141682224436468328176511311703606725946293514066993635268363991988017096158182745913103277791216472640171928605240559809466392688225861893841554570604487499487337522679288731901552663394602776128064846260207416849706211075273725318029337645894595529155603422991763382800777568778795261909852787014808162055797007910951255085434070614360709093266355814483830773546324857245668861882075448338434910168714257953148714920694672723649522355499628340160604841529304132326765661730995699320345455576466667393957555763078789126068883482263332927629391957699691776970370765222688213293384606311193211551728496608200089680313813494399663801857497269485692159573071281156501607152264101322459426049230217414787629030128206282102171450547480579534118793678379685509621891883884726524627970564591659014942267740198912056538072903674175285327168306984995362101723367246967817932162601016918302083872785719837442853969946996055383478632905225949548289577246234011180896315455286539873920032793829707371151228341003779400176764689448636348901568061293248944103256435976336203198563264794522937937699270924418963043607295142730328359212652993092492280064488643826997381373346878018400028603449752824629381915873496235317912054809264095721240793019756491557759859476015019449286476191472301825217907211684435062957197942192837712170943299630725519384335125892126019865451489377015459819067937900355871493641380330909839326922399330997840846477104633905156436389915149978000840496720078690426692436323588847226747090159572483289158596200693113048381640332493114484482385592928486895183064239237860688481446612768023602687148370454419594888358134047600679783962088628091806380395529086546915998092366755830255581031906252950996606519315547576454834900798626555706429515330823136676122483933951025719369639010880800541881371140077659713069601506544710686089412123776526666810923204719354544146233171766273892351500692752016856724737200874669393800613612173934948831315945698006342384531780249738305338237254444856558898865179416807430566458151872580632424388716378456981646677846566755293704642615040080880039866677249804206556800746469290212994689526205604228248707945592595939238255668253493808327494327726841160426233527833215745440050406804663327887371807605770938888668705799730517799865842182093238034697527210968575896877551618060850395988777208800499801708208372923187246969365957684430529586788640777625612646578630615444455088980817271607632814602452707808077292638685187760225075644851585636012989411149068923048843411202675778355280350879698400863197467141948114342440971011980788979538986850798507701833487129434392147964710459287745584955031952269951898205303577248546013520058394864904145793578384271276280119271509089961663147393865213921382212756008018909928299710969081193755595999562702309231437218289922380805733695986153572124696704717494850277048333108163841008175357292046628331708842828138702046383196501407630099528442815671805328988220161661984617440233422665955588781205156389714913559143192667290543761539290681744849365605567600402342218726499227956058082374570767101117168922113901155305405442747381516504750259802742255177581667359939772095064103724828229166712578498974745500048909147521078501366420721564889012476284366233724842970723174824651932972792886601638436502816288044119747593085789016226621544836203900715008101569055464817859170829440876485015530731849342210035044837609466100765650636696308040520411772646473719839411311818067539831732576641837171137342016190167190259746634707185214608203750081150292505680763314129289513633351686055484922857110501285095557999043765259448884064284540425156265422848661815657381655650868645870755424629027833875880242697967910296812721087796318925761787806215859201182260032718986208548838924182162228041278993394065421726418576609561133183555562953501856620967833192915483702929006645850790015053794582286877204494723560819936581378475849184773124368520432653130528577276549009187562968729682949986150590584703052597227805979503263746230408637735301874603532899392602505433713454627948073720031648633544763460013586171944849436220838192635826851411521968854810300591994592399442427514435563254907359143479910745723803364892928467634180189618406867270115304301343182621422396187165802396341730356784787429114076496692047613637893883623534545132694139851372654704442384163319518013711339534435874818973001127119839491432970700875967498122891023145492576571193520778518144462145542116677424251854103138873299573220329048438966216763679019529837038379601826206978664249080270933874070476569079589049630076770116262344470512218448705609154802183664126108296215243493928931635598772214706717476445596629827080125283301587920622574921077196434829995406911957337542598099246648231301408454951859041915865461642051823701657545472218455004995556172495021245742772982752221104378006486391899039159896287898181569931080646558399623982098165191825326906648165551476452407522358758185884349217282240457649437994894744527619458439642965180196297798791904781162856625592951881061913852365857304221836932220935513654312627001398106907431021248095847048723161633109679728900326430930116442982726460625960314553214853203790420666578731847464089267400027687940408555356160002773784825827187241784702808404400362738498889414527876339451347067510070246130760547313590645430240665377994565218049241952467726291692866097654207493384777244130197530443521998959630344272089452552363978918907002009133779077399079879945022843029313015570909658623597580420043024259691095802329922958876167147810282932853067109806544000760137005325514878071479136073392142358122648956640561690769715738243757457364555917280938171647606913071067886187736131781529224563759284325939971576441533966735726093683999648168758845299333570124138181420825508807197331361498105345168912024843535961662978160629302900094004870480467251866446455667972695863624107711309763930569291190784513383322271362095498632302550569080745954539040983029420478702941571357837742869951124776300585615172352155964401075373912818251599626888302346439629025352427849123619893609982350740772057278517419697203686452895075261300973639599211554634695557187245533712052002893286443878353969151654942238497996177766315379838550104083310592001336229983860167867715508141439179072409175494910437820634149617308635344996118371591174505443452731932493727647320841030231965736671106752202260199515547970077130701101456166595147849132464921279991027128914473082269892285705033917545656332106141527071611185718382052422686973889176490626826323239993850539636681378212765276712397599815660284470676079980554011634187047982613730426547364064723409546938719250915626728386779208893191244914629952049785545620427928752805595498776117370439229408325951689726207465204810424833175545398071074316286364028255001498626162288933805438860369002338173462761261721681765422850513770566650796150943553743774093923993888780560737483942647197482080467036882796306791712297226114286805245845863494498161442860363506255963748080524115316083942973880925586760905074970625957393038588150666365637548540057188983068796601449291367325624968881772822946615279562721132873242668053111227626449768248856386105259244220458966382693718545655672852698582661840487398524990047305931361692612353085277193920183901428399754118498923119730930873497265288708631355914227026020422465512502520225356956638913484251948637919087860870520366705296654284755144876731527796724685211333604091702674382410274945176300291064971316368077295307115324078486160459373838340338306074793919310095615859921951516793911887189468149319970406710386549406065291941914801626365716712704833713908410963109914537580608572534197532125587191512908411812389038753539888818687367222394254634128326267848363878307989149790898354575920335141261428868768344985026462237047015288030796051191596822452169565078216048306165188578980303526390814471483911454494739125129981826754987685417259474905589663415175097746127572047081684212294307531402901533181399341900988249421043264434451150750115089400618546709502097585604414057676921862209808297825484048320726116329090189652431847357954706773988348970156234558521120565764597699197588759675250810339894426177927868035503351959430223835870193896950636015538632212813030558053830564843941267655883155403463372000955373617878505464939256664138155698326591043159522180482666406626395570075554934553788850399538644462145287037124953208360281203064394033843012378728306489806566878671273672620806162948031393600919640920237234525972322137445542859690905740885098840013517575076689667275893221744744773443236347595550811314984696721683494393732543426755075785529831953375729761723738805864666164780206781805300836448668749938364565162161479287732282631168107580591988775099836025500699658713128053647467638276375464425067946692194148448553789910259459242221911336733381066441599990399934616026376970676859067229421364181657418838963814788800678107480678894843472616208492818224452264245722058588532408725720656221435275540349010203395305989689215181922492793724999769363107059372365972212698924287131288431172905654779963955370183804745359166995137896920761640063741119584687273126267969693078261424865373702115267367808929557932940849299082253299881912187362068045144768474796617444133563128013414552273579605903293974447562793370503043651797620424557584304063111548456233793195085887325721369911461637729985480298677401251558181854247370212886304237907129129505219123208099031492353103236471738247202975495374418828362099403040761162941388758747854403595383889061587714610121251005906534137529248669547557414712525048719700248824655341425328712407330308882562735761893421524383600032398583369209812443179687543904069061533272697420171067805414577077984902998537279324368039411837343395904100057972638746810677544226326704055027869455212565893323410567786465931354903338204022773500710325636052864981437510378548277005509000083458901486319636951410473117354868439449737122561468196963109914825211317273880199578098507400807455281759257077478250680740644882208807760465653135688255718757675477676331344497643404614701692840158195605335102117529147145491415078121746249163923478717423312064865724968338388768431666947162961548065872203879943836948549504941110884961307714147847898199499187161127131611255458770803812212257677585864049108335160978335030612268237296368214493700477767353391838086211677771368320625501553819075650697782104160816632678467538167690792690508727021370723664321339060540912767110721536333429573696255075516203299168585977885757910513613612465830634387921274798032299802705351909183693785921986587229752218452956420111807806489636882231997667365758898926365420562411264830791687163949646423375310380294482590854052689227351418558598343199482930654855675576153923007202888733728571294518800022718439434742419286338318047923585284005339369358902291117969122069416151721422058332396492258881919108638126322833797121377931659340811397541858830439940415168962333144938323702490119330922276857681088498070410591720904698060785432434081643363753283311775802074236195253660343835061143717840723362777362557058522741479072161910550333735450797539883396617947174670957192997180678525417569212203319071504979559371951309057759639986548268036627693438192872196896099981308464239746596374810806177038141097136049922899899970572675961035527323762998000903953024820969294147155465314659481198213181599185062986014718527467577015219458986757850735696796714941724496916847759679720005759075757322235606139391478593557412231931277653470047397332491904932904465808551703528549035909956541948992612154156081614103540271790207120600200621037231939665145271029577408430465567076951799866419088544365717440618017340667701750069079174477398171299213664441648636562852752950331931261058713230935830364579382016174278184751220000318861171356796057678742581228889462733887367256267006274219026720883936625126004580096776704756486490865675314030883069153951843533952242627504848479386604536252696307561008842076420611595718403024805368205158774912208334862973789878808487399143894187649601996926854330467667628434050494636039832924006506155524266728709492153095266904898241393792229457358984355953064189205513717561004846785201500452296263342580294128006831991446199097401521391644664844309504358326289455332035103168793009117339564899589959977396709754303381333014630543551617492184329156568306773000920527738588936794277960106926143647407017239894902813727619385233445517134166511699822926402267023116838033874395181917864415688387843513294111115494203887676985714556239310189648551327240438221404504614788766741219096552893139943043658381355310860938500507537500378568032723657029708473843103502787637556970143904037433506401666598746010052748981806873687255028623880031033461335677667343398871434009293612577817044396534251428381278889363286388136891350635025686517335848175015742743684205530277067772720651324166030542715774275410868934063983995941610551212639103117220962424952658183770168956489636543777482449068526991760529745390388925066899625898872798525488983710937093790366535884669719373807299292372739502528231890822165617140849150497102751914233562707425603568520540925185985351333028526998481540065052840314880048265176523820628750387888443499222273336661365678297018153020776736249394375032774697782718887633866828864714863214214373395026635384515381522169685528031623627070363565845416647543865959661162194771287705718057244540572756079763601567988635682568065471372080366675711379559873784749087008354794030857151640215136317734113147478253429437992224489305981745490515804630366012541182438800940044687907492522285798365281017700727464893050616377200400698278421668944729523597200664528657753769379104065161873649095385131313372260442418083889885171399542627262082686178671270368684791444503049119850696889473355481105187490492087615980552718497429973676585675715688619744283198215618494967961890372295811966326731175835617936791236464074154644635540158170347798195318787713742449147530914772426832208965257115385911273585023716767036583176844816630231389678404428078353621112462557802863203346212833691094998037296895784130486655922963247955707556854664344879820269557910282136715060727161766203898600124611239110406690366734806775692000843504778566007026090932448879653945857016241236658562244490484646125389771939619118612034982501318356358032327215067183527230946626184205818491011313217176647374390460628112978839327010323695659332724696932721591017357855057718368853771519028574559539475437091839991310589871844357089205850381587317836887089460525385289684423430231078824820210722409667697521228656377328529652807229816151247410548251166997835442267147805873259027532250173658179855223704356388420069665550747083580196393345309503897959020612583049140243385164531247277372041668962602943155065410753985243963861746359314873410347843663745990795008778392274270201750474662199831193214994262988192390150758685652904888681228351826107192801024743460132422040814639968473314461067606736220384543337095361712322753316339153336094102996491160337481871320720832406547328434356176822713208274591071240886648820061978783295097004110904937270331249234451863158561899091883602559227172052678296621888785036319558362655544605149839644244283599747776345373732592159612495502511462400863826601924544643519249938944498297454629764129567578129477379515070458798671526969148476781169269008510539526938667339461270858934092451563828300378003452531851449140412623528761702379035631915698632255535745421505612241555924166758170950810756724514388285348602524719721697104804020573711266856354580730432674406459581525521017880106352462669078033365098625498889623859920767590344937102188326169985413702957578235935140596518758513229403421038987794823752485268547983223693540000601510689495053533079526562552121955759722203985406738727677261900765873799507338414565224967415333359642072243178528560844480327289676008910202876649712005140848686199230675217508945322975666958161035318304787778497907009439654568508234005412718978546374860331464663189301560407329048153081384312660041877251933112785071439169125603927353330581268135563352387188956784275086046772019142847068844198811234621641032282734715530465511666976682224838481215502397866069820043994065651224372905246208848339141063258385264429281103915056977379271851111950008964961644183032551922345527168768805714499471934224331262365459403340070608421671966225580850093230949308932375207834261540715139528468621828842499302311986151562140280504092257235922091730969642023580559162947103069270831205986339591735024633167585942324775497060044926181654293164112672529632921341616634781516038231850166747926636170402811227075114771239751780649091999793486569616493759412893479795636374087891164769163903023489972614355117621584703368266848539038541388735525474352491877264538148595319908629208582717396622760965792068996982403509105089303602578745765005721747556237608968692178780410850297909379363941137519368476574503668559079348763165258447488871004898711202134928307086975543472816759336208967449048209526016547442087027965380684128639956086133049944743160521608270924077870755705325097251682391948479079443798249442494392034388357691620831907518342527503013284182823250373222119087754197619707127337888298749810110255435627597497381947630775835233708512755427173741566876519772613904802959056486902107639480307617752029884506800769610341665966993091600294578965200505958844416604627342472362046627075990150319891591675853313064804667112473327014540306018612776241252499320420173015281314600289166482389742482983638898106360245515597966292026959609230264757168164821081021096886121384022039830987230469618196517862421538164372439055984423164851662626307067509979302699869347421625141684836332290969236894590457514583902237546453378597660134654418213620074489909229078230042446258217667405767555082686643054803616136710632684022339949483316903652469932091549364316193972898535614622090286370115130871698607061805988423225442535021278843007670463425718745009717489468058781201164789522653233608075947428665339807275116030859310785516450281877944330913151118902058668048725592363563679544289787137394394319871203226909765011334956429912808412499832349670083748548689952052684777523660309319908300578111619730045730245545810589875731624551993901952055217194118807463674170251920237164245243048840540786106959755244545812752183774722189337206049918074060170323985496433557131986659265779987007533833362328194469973452627864320617783537720829967766532090110814728058594774414979470892933720823849319920733791878181267476383564169091978800419168981937399696629983985442245810932777875988887549267866584257936538510995014399251875814324793069806680617919475426889020686968990547481480937655173532192214369894738094402725193725946884176097593492524974776410403375789039799280887962976115975082438436675903653225075321842376611056490592100276987509751044061983549683301119144905640324336234556965618615659503311236723969712947281005678771992973945889761252843767290756189103188788017319815451101270803779424144330457975404250326438795755183426628239025554989444747300248173238214174578541059040117418862814544072946797101862876326209656623957295684349564971645555041157246705109866997101709539280024276484405867822407574746011019209684544178103666465572776516109076077133487926062178209413154037560286948539763849955588244671419970002747783253912505046561024531556826328621561073367813756201914316109585904195904022600480615428048608154318420858546577966020902341850876596469240654394266913832951122314116138271874252675410374030468834316557245449007902744360973687212098625142101558988771018970162955727432016617376722458758611525529758280266663598959194105272183794925131473073040738749738656583807696319888223132883683861173066153857950769936341997485026890000929908218703854974024105504682046732045848893340671664504568960231337726204563251893197673265325904426972866005360079647653329412347257721227668919471239337540216223666896680183989577474894010044089897352126288001176621168785659935666605733556100069828998170713691747437158130581477417780809018512655663992584402761767018856249389407586565310224765752113703761033475941089757460388384300849516615576599278780222609533002832864783244566414171972166136132593165736281258796644279495550050362324329652703396207564223606333505935723065562243003607810219234938716616384608573643550390610348836133325405296006594456248839291749529321693337098904513571550659398101515767720717539091780957214689372237869067399317552244772884212702333180739694468288512149680203327546446290830029068786916720405077254596010807182359988213487460731756132229434803102386612290828106533424733730496728339777496324436532746731593758345992450148187059805788259948577587929431491103297895733965566000318161208111217199577790151262569283670649313375702206335159184653803093575507595524628435845579405904308055470210001347156258481405027962175857372762858294048168621612262904202008808970766381609336271285837004659752302491465015378207326704466300751303657475042763230954804711839962274922197608109594269043205964682280178449840805641034971439566897077743720818797975673060155403627831013749212834908386042844714932900218612203615015460941322621299557174062843992585440579127826846878365831693804163054279945714692775645771802471400101410962006398790223648018613298527829472143813093496001814008802913017647550100053269851701361411354552095120180499886271630267326645770315966720665522984205237414376121588974997505816045250470015492041943568943939182042608817265187596717034537438597455601548465978983611832720958906513979014810752415882944785665817148151782852812353944283907585407866595625472484244353499491440531777052290908529522597238974387444057802081030810569377081955066635222084437339238967850241926828710743371653693459502228035999618593739243605600693020716784857950362481956615072323097466990720086279033637121288272222779143792146599732903160886325652835518474026609749820494186379783316986409575398831270387327833840072968790440871405943162241146279624428144345009620080200067027975206034519541684212089348739102517406390905906135794790145986377561169593053059690640431657588822272345964344300461805606084967416422066319506372070018633060440238766391817192231786141068990498252414016126248362118770889378609035378960111242325802931143824354877576174534052385099555275978946701828834075635280933830767344109323425833749534795798066596000759205312385374796183209262601200692202325395249065667617460835900352924301464957484575477840066975104976026804657649786493015604088437898955446052535769055959282995169893490132740120302023687587551211933812664602599114773485838392440443381855851152720641894953632158540354376320558786331860875835141313782343003752983599463253421045626320645655961134458442530392451636401858471891016008195423602256861504018931080499324207329976927641077593928506977250042508864004229320078304033559689114657549588833210710941510543846271674966202761385682804767220647738324858002091899440135708554203488572085538379389908744188401721294231712162253198060061852397894338640633475723604043480231139124853498310495957399538274646574920108231779476239019194017304525474882072427217896578896633345989524159033174031717728275864187539684405275091494987888794467628917065498465347569273335336206109670485978384554782104575711229205102283952091720193668273530936397395144524048371539618565968600332157464757434810435059191400578686732542765054775001820931177768588178474814489680114986572601880230176316958155186979337826996660692418549585700305251164312637443329120657964815969900320936860828536994375045611014797335759024159838256323904779417152999447909402013976415729427837129268461966686855276475699813676790803747715510219087905064769932297280222811464541689980820446511325058337523673182055209922464494533148367537932660515771976031720957518457724775342110514223219413091751236436625092378674954527980710124356134654423229373927665347788064854041548118797797463314049263380941489879893239792022090549404833039595726368545503743090834660925451907840521840108179385873136040829299382367048309362915044919689054203992087908432305652375310945264169697529762275995674901558894067748854192691654660234382259758521989242629888855231841725168608187457599032197113754071198178665520516027511917894565629763255213385801418566110996905119880989779594256911031652232628132438064494527142566093282249299103660521633926819544525358961121878554952564907306545583190270319776396837004370512853270562147225513908164259384001414073759908824691294125173238265291854575571789645325708835550513920131596756654350735355487300469453995353285694376266296657413063603639156660566053824080733522709349734056647180516437622172843778411620959135620963108890869050468275841139688370176357345252292217092100868856893780269602789473677441821430907966309051990561012317116440839358830503033200406863162398305088893253365545442845664526377889536745810736429554872825075232325520175011259473224252861785390736115167407879543732895430655853577285247447406405990576685702786103708578352737357583037721383491964560910514167691679121761647607149471134068319203870173818547579945871352323200669193180532061682216617726646402982393197963771721360616949602965271050600260497082403904319880554050972927560709467193074262260690749982892408373406721713242896092554557846910468864897425238468341220323606141504091147033494923771911934875617847159305604817083363188059084556479445645764718403594932552917064752197812104957408118241719269525004986615287182176806723044670211909939023179447877765891544132293281846479030362305999908279510383176668002048872607583004504778077361866276559407319683998270933267549841379330611880577379728508174980979196939845053304979306226855416633668539083725865550104692944111955441637480131957538325079216219466313845596353970338423952464626595180543370931184293758362557386313863646831915589159028315358131225110571144511299586150174115110326500902798706450233230419882560924947103581004947986917132858595473262061139665774615965894711080056751995897719312278609770884978884692877813643981675346357989029280609236969819758149788782534803082764128385361910107788665636229761496253802946501798201535628114001414376890242870068165002365725150592324662809540400379217584404456497772578255077526020103731682475803449897673873269085959230646737381055870635293777453429333932729562944878707143617701297714259258952584609404035941416781986642698529577156924124434938336371673109482582400351722619687028536701034685894854938483515242577501047112479602397003869046735673805107939086936685495098992544110021008773450543813903066978934766045860858143418991574316555331768566258749582664746565584638170403920746510201762747277562883647388483913772108897853800632273403858984251652792675428359360463310538533352964264195949872123315399224865842378624027956380220663333862303437523393275381482542142244047175889446852307800638720666645772582945788458323231028834028323280524369978469451398864578057809673614328295992474413126655389801903547794224982749670627161085110441828407415771708590917794207848171472898138569850926989979379635425352368140385362002891009307568724535361011712534663159757635783274066016922204391212197795896485120572103291606233931312238143266199767088713817159195868535633259455631254157560013657216294696355520424580322103933471617662936076782029771185521401936765769898976824519881879004331004821513739747625503840671152526629997607336286743506539907789067593729307751343253067538272431763930220065612974099307043237672164211846225538484747071264952498212876790228926856016724060971636729782638115573814737481150510342990923396350181568573186296849171089333114304814776532909728733975929169437826502378873663221723313243484383999662189098981292358048812475132158531925111125728012026768081574072802785349568825251008089097409898021196098384999565279009605490122862399268630843756654342982802284082686583952843078154818923803943405810959396880988124990772796578887540601151322395397939135019726438441401670720106483134326964676093947607699943596049025214056461663048844050531833079547043919432920226116721431587887951036455047539719256106134175428856613637931785166090518393343997823024269711039680915860962251397465729729938237196734030961080331586810129718288632945298339086032962283424000328523971456152116861029372977096587746457721801230619042726677747982593870013090944366124720719273885480337796610652310096251709185244419308270422113531350441539119530901268852393932602626192680840847435598740035406360160570052179662902631737284315165408961514296538635963469733028298466960740742876466933396371139403546309094144960548445958097630094984830750552649665227332848943782408767267620769201512330973665024641773102628141200568976579045890091428204705529163115076029674905170188426782549395725666859522628404156465302417553405175890458317489434548316788090882997770129397711178359791078692193374062451144927567321574294617626569916836776092131998756049087830025635669385727342560564382011380608473758139661402528518175137593966552228004530137597496596124559093698948919073574690165407562794867008128250349909200215069935184055878579515696729103141355842275504985867294972972746012233928981853625799528505555747328067413015899765369857754073713809041140029714670830907594888076098239259511335850614277953411612662459533093422844721954286383473581252809969078021309158308440082601976483708675128126865387101999093029925609777808349256579833166500504887069462765473694624833064081159151321701479803254500852772197201354462254756461666351060614605553045559258642066054749604344586218232419165417945007953179200140374488770660520926540900012664002738453951322631272352307742760267859656186521391118743864744140659243007878184557319633713384698767190003231948823576146404911656304291025030571653327170171005509956913202283536088048514690584321353491486919779095476312098360790888509789177944981389415620881624318328184587735649516257245030616122556004016412903114306441718999255659091286417195784045136703788451844829672121100656710281085651190283733031217950153310560560581159445564722973458588467480995480757596591532035292075772773256299951929899302352555669966618765424414480225232214897777505150463645425205728070881449629512817111806730925326904438744570311704597735951597612770036835649999439579208456987108952840257256600038395056843452432699251882503392480614151778266879735201871862812535023989474659871086132026828427207835521160200080384896139804599412658335266562781914069323563578428907826760172372113079477943666671292788811298808317214445939078368762012073224963487339202833631828977348496324897328227916140387966754304002114813441200658413636969505350006513319763420770799386462932620970164905921074530188174854737545484934907200708446699780187418917662047932121138583428871980505512463424897602678796372289588968734906679877218372799219671487707429431468734340633946302019952147826421036536714260151770253158955311436552081833396042983085670844699435542282140044835439137314182754784826092973918025934112346125765843418811133968246323952738109787392732173391391465676563525741111669367012718215890642730836653032897033347057232908677988321806893022469828383696811215879544551124493082804581274064903924331548801957106704930029772260203258041786558370260748948635401712007973937516544577176492263685238235567442784643787858904931959728786544295126603348651447875349952594159866832241065586398974846377561104694764259478712276353176758336760363913900738454140524326637222566064762354277351241649906876949561859828072303736095735635641581516674424340716239453347378897085038223810533506154516148145586544961189646281495138563058347647196060540427843121430712978071997121921126799032904343108390483610543032148274108268286395674420636384764790137075096099237578520319163221974329951703981916634809829713565956829115780773297040234804019940673277449132300221126104897648542633811532899182673342029342741593533362788098183184007170942370830112580814732630093523185025925038365330790183829295734390157823387202519706990812155843483649355959292970647658954101010721198842723734347631740063963618484403277147613150743916651682277805349560250626642444641685650113041685377963194199306548309774092917563309744790183972477895101268739327524319804985300508661137948345945024335016532664093375407868238439046655167195023791981121921367224251716342968944420529526652134195694208088459151944983240813075208930309736499456281265602795834261586545371578116876482432602205083796042189548765429208725977749702207435752140204438245063157017746194788245173897085680434654317013151651607572277761419661047975332209452233746471819724789128052988563247112027101891500902622295241320763358270109745281465548127063707966785127792038619843691341097373943833173546151884183837828812249441128618651293924607424424929463303936247106218609733402752459449793733258653779792903370820346485796653786540736093640925359825337904872078670645066831078519306457971576699959214099470148722725189613164687741421926991052203404219747138445208454599728904224763842482122352940958972592942011181847846317967973813019817458383762270357306263522639725410853871802437308864266839936014856951437719801312930759782609906125631904763925566702155902727244805672982447630747027658459345396612403399660516114337669808247561083917372996996862324351042290159528064002565235864445471239521169821899745946977763819125649287596719335395529533486336445830005430742322381057974182858666351845507077501880776999602571435964525633323034715335805841946778414000053758695250889119211962932878172519692874858019097781010514046788177873566112776524198370996233846530270538640743111045500299987991193124963433533601299087443672684074052123626561866426789365083832667676050927926705341607665222631523564317133115858640932015555010224493971780788942388136131019518819897051140947959419933479152745502992789319334868221573080227106221746987719228458868867304435727088927081464743075763867058597015669492210350842919035627689537847462596908117280249809766247891535308736616448701164813397089748243447915263201293092474458538845244998874672363059926458307540057808927544044894768173976391074348433807940509087301617739982932511670332551089877326741686229037676027331712069602976488280009338542376381841086155657459187469005701118614103106301419281145939888783261985314909966947809853780286735903623131572595028355596625437453859258539575445251454464068222173198258540988967762915463440174790514285261687874444591596193440941919472978039796171497168608922558267711641716453874106541877603074537236061375593620219252161275174041311911863018587186208200512843492448306117698748140875834433342803696949840347518929769584336291986089842105243771740075840595802285197095739221781585918069487766215382644135352738132703108860168164865919084517486638597732988825026974250510336692538466504653229409409469553714998382158183143904346720578026179738266639840242176837915578091553450848721893844474733245603214714593552932007288278552925396399278943385588429944874047166446161278183301401896627483855396690508601377099263242351251333180233119885586946921897886673783058839795965593813037704261439178076717636062598772420421100083347610731803426447672444817886798972449702777455178200721907412941933811655453922366156624442801759770027598393399293350511678943168636877759293085850624244451244045396962110490242063055847975268321931743125318665731989663998188545524721702724226060202295232748348527126593109038451745302338913374335238520675527142769975566820431884275185469227262622887967179311693840376090421303064344221570077911991493633323217758643074401194851041658010774546892791834641979195002441658004281474453429309340227634365677891129224652456272422222820496092969450174769906187687335548755064015113089978973744030388760314191206012838144858290170969724700853426676226730166591661502837299649061057694925558544328028737065698743470217486097561794120427976647767013198543380934563749357695944738405719118963306029810193371890061358563615027070611932533309120473514752668374465942830473908343233552013541572297703053260117345265647649208735304179638212983126170131150299239103203682396697909228442688259384600701334001377157951811510088262539154971888841369894612582621763546246566679329479427982952567071131908069584839456715029390793805606004480337797904270237653707011587336738599839997986820918902001258228610960641944948222223778956460824114529224184965288181315113339635434337479845211632537589536896929623362813450521299135090243434187094593442769403382878234395501468839783584303862107482363779239051567888334681499451120131557488063566291110751529090588736687782273559867950977268006805348122776834741516453079407252819350109537931191606163575886300872978983998248038966172294568365359706953703431049003316524315405643178436982427042590307611301807426752937772265723259627141270614473913421045008783673143878884257914810849203678914029296949352921000462088497567021195756152401857360068613877255308752726838219668420489046516118765671523566404363870240745809825659177704494853108892765310967725950959635157822908778573137904586825763701175956622484255007661465262551337031453754761216325933871596695241443901253111284321075428120423374065428342235470694609337711901902146397641512177972658119273834527998326047942995065211301305259127467306104560333194281161987852034029302628865312679827367197466081166109033611416632120038664067854817984232885926989760563627848858425946470719449166924497649823210483610851789949119244927613747723486562033629888936427004438596129041708746486082298105555791647732404691877990196004566120995004724798170711116332522179381611620016956884263757777580568992983629477065683774448730541487777592668622346853351910359075592050298403410358828863469551090843601187073994291499108790463928123538989907197144543654016900838242399878591076790065252516646182836104760632203408443975178389395075692466948556408999103973511451811937817577093315057124143704018867931151108498069325477443577875771155697283384169214332960126410498923576210037436786442638033484535111247733997397005224238636199445421249534319511917697764411487992109254338882405596851700960563041475331737962874065889400556482979465743066519496693557990496998005959466520712487205541261897791963240950892558659368784444819127781498014254779149660981634581161036169593497968981343120039365958919516190680876589267801292537197695076788232786151633558199814979074440265547307861878544969644937171343940566681692834088744950320480827267260460258725917632688574927976124628033139741170262049039199622355455423969894923870378485185827898192392775533645263541074331853923586597046995768248796789037358312473621870113255294987275340867042651411477828525154885604627258962788316718735464626448171011606820192364185020804684228586005725272495020837541596118782763270013104454228225669077824643937530314456535031856377509201117138541850568802842657270223397502026074808645265306756935846720103788041843692728139063748782208024944881137220077821931810826030904880035855649190546364405630351870752060612408412247711394839027526781654256663517690755284095111514201382319812304655214045392954045265926477043301500969381602587388484119718103904210672676973323448367282706290099770302718805864606648643905908197021017119894618202638041219369045973299905736361491111874336103015738432599165608820158980223787607688632968718201595617869992636858970703004401988581671252073326097688815719872446064111448183925054083547610900076436521121775230572111325241075666325086338039063914216663494472413362668816287407235307030824118258211780688808512789180262521134485635442221106639737526903488010366483178789248111829592092179201382628386008950818811358377745165247233425282353504098494551484392341997354659770485192880537195994324026774801243505180565770032083748052176788740201585320618237106099869210863974387876799424115717760206332517571194979589122276791835653437612648961722599509300921728330654903955789356770161877875763978934397947045773413368122611277489625960182784853819590833226653980330981901823948113555012320785130482033167559398629773245372274379743695408139974638412076888625290294057631272461996970598405882608436588843760051889010035424068021461407170780502795300422755133497446802738842266572361380192998667704483161084265178046255044297662364121682385718570668315667230876728616954983259615600494692612082188176638089702656511205800934060714399674377426832419135708709211613335401337494243882237267634583510469756553803845428048506288307675806684782458331260960429107693189529600958653611900045071291457136126291856329104830894924676858664356090492092169696749739873845162915811630068164502165558731173518668039788774684631189563559689628236870695641587003232554982324105417526761043909169209226229118829698615202022732413355537620879645507807008142536438776764994621428085291689823119136487742284082195798569891127396688752048841806546172229343295268907066862691948476713524530975760324598720312597187711304672238345920857155460720005438002883094258809631671699820141635546746339401632383357427347914329160236079431056723408571418794776751108985533156798675268557428842789561984409654748355903188280030922710241097939846599879353487358341217181169082590877794047454555331543120332936757708637494100997246864018150098881928485834243289085279404861200536026893069008242693101034124759337307797898007099534499154778087795667042811789774504105957879877472290592638030226792581423508213375385977833027634190899315429436088403525835319288472926228739692889966863493907992172871852427405343743325125172669617438843799716085495390873292512162994065256310478817482787112205698144019936721991825014079739590623411125203795203360828637599819324473759860132286212590648998598885654587325146489658122713784091021341397293477404368366233424564488599529299750458872409302236453800526019897784659995765148854206962806695938460327494798502717285638074953950332670943336292657646803737901246266171062866174477856940429703370440785132735083298622646424638144019732951019039116164394870544050004260761523127030024967373462324907843347398740619368758133517693395194689889987677347094173875191699209936946963205835789333104272028522460385478816070990989065396350999275392854633065589095407250645023941152472657775378971250589381400761954025748395375526306107296783213045051631827816375710169410405119915204709890709057883365109976561246845038935678434590084273110198574703438142967281554206165190515856450034350897627845476977769753117840477190638416772173113073312268774550590740164458621301292364420598866445377229715067583419669924672570421537149817005852396140488882870831262543782973778193079422370121958931381026512261210156780198221497957851550783133548815164864848223945771374506567709481560245359528743799583180092002472425368828182096961357266158641455907471328609189929362878085014301392661603251551966932532207749944752814616917409292761860405887583610217924426825650667648180716958843220086926557301050983230637564361450879133901004657904683562130893421062669560157127583836980716516484397912227368936045980557928232079443170530949337822610852604460102866558108093689275644512642327849759967127271822594019739674435551066507229725544940724527180372036862491062723725033613992391332410570170975102366296129525993917857943030579819978127693806318707425242336915155905686276041568484496404225045720257481911247799033593590203301235730151600020690700287567338025015277725752826640052004666925789799562184582242291512046364875787347318166780722629097635596522260128362152763420035237996495353996216086373068445703474049063654746051558057863303635640610700951434505026150780774159373463102220059552512262548655668314413165877192951267603446167008987788604176275783658721581295586699606450928405774047050805254964954273859607862065272352371198744565980995747639944575491402705229099198590537688633950924530690525139253434840710893080718028262722924202705750881303267380050459634894300882046758088809317867480913974835691778346991684531753255383712255754292688264543586373600966983948719542160022377319809534296082954194627457660614815969862291516452489355998414480145246226430099662207131333272636663998630332396640120226281512632064423595828132708122563874506755318396892044855833382589360551794766056994464809940561564484319822925902774197356954892445463313915734452735794258797055297532125186854724286639295080896761421079915737055609584806798671705669523298502155078421184468520280504394480159820741201151661315877470697570500113949945008282697461214061675515010876982465401397975908660726682929160169766161306342835335449644792745363289726842990957834497563731900108654128684087023205118630290498674210240873624062799399391453152635401341485358472455750724272237112397553033449920551481713924567290632789966794588509815660024642046426079460333404502622812032637218067060008688978010237985609087277279429639269858333119669339055317121456578690450740615255381674355529084063712262860489336967157127377179610601843647812325510886192938583746214931958165855829241565072462605400312638432092130137662625460193805942838966413279241617844818051513049567159136182496442152100727856918922123641975076851645721017583398600709310772321273923999472124524391672666360578502081554147425198004695875738476507517198651375107973968677483316558016438548344096954650655044213112791118799934231166948387817466466561416093994151749586969313379290788973967573978003761167248841006423649321716823670441851959859560803601385222213457572238973226086396180686006535122341165893215068854161743635541334573032832578725471225692545612238766997765229846182646698914830336660620718813268984618850423213798180248001222817087341688043813623393498422385042154579118335496033376994071786558941431836763068471171895702069287402149446864355201675758184614999044277198596335461646794943943021118349035558799892122323704966357442689120875577191355716504608237442667055842947510790202652391433053572763944021768834505525968107325346569745510327613470829120498855824890401540488904476261822134703850848909319029311201208238667371643811152843117418842646369310822286098945092125705947862476941760450459823663897990807166757437247868895730165342266177148683479051217173194601532178822295594292943838055137821660337444359550162820809490703232089656307660893952350315382434484916519633326344708977698117898081568298969138988096827512558285291460364502315985916766143605172122564250429223518141850535565421534856857250216957428795873368715776840406993582892003399294262642288403851131676577922763592756108753808795667138043910263300504489303371847140285215008558062349528525504618353654966892112381664185947928555175041819165553311132452639808370830848753412830196720443517137453272402551759627430099758840489620685451347345650071090757196834528514729792577612441393154143924513285047256223991692106643903156192674546439974658089527373030744486299717402055576350555638544575602284297967675985362882358436168946994845854031977072430917888938724248114067472365394004533931566957291840677057522766198546744788261949628190052207621286292449196786197282280059231175823471570370600180319231996289213054705558939640206400582203865732890854166099876347711034061835209588032210391305287827281548229144647993855308481209841788794353730964069349639530841696466163715890198662056557451818496833227552159542046253420497044818965097549196883438083320518393037494234031285111790891916162012831935076043572256786736186465447790130251018406848003804699993852635065237733650428504491668375677882573037770274984024343856419392926262719162354330195227844546702039168627059645038867446179634264053890797051124660029820051501337947429407897250695012138109675223811008475471261314671136824169525525227785139507189963543408167531075622482388553436522765339309513989833350979938521626557905337203861123056267949149030365392073024253493993046789225547923125718887352317193824751151443355610442405674289351661155403928900861525500745379074165422488039407755356851562386376018552270050918347660567760287139937320772645976080715366590950125612166053849385286412641076611305643093638900933558072303049620387411651840323279744859780162901777535425756570022430563520401309140815764897710970392549012453278808665764059683120782758315027215891996429470645021949648561418459386011342300675795059926572688328022374553406304257480874553170716504133792024547338186877970853667650378038811981645887120087097020842970641476268790472112213555790795587006099057768828032187668786928579411505275871785139134618846967469389541673940457465236473512064548153373046986548741272930164313725185258902012090355763280743035063957629194408790868810162225584165744314289125206899782082647117015943846341026483873387571696006059715318968618954519872377109218459213226831379337394148315276353482228548297915950958878807067757359442726744284940591133597845186550963257597042226771924297918835871912379910477500961562101076528833177667476178082522617252821544498589765925964558801724169443822708015991449856548743989098179329255689064166418380506522052210055178503613765676957176828610751168274114708211223635398104098554444808548533202931855254559983392813084328274075645708913417422802599775329184386068284252547232585761900040671941846555855209468197240102680121035343642724273753240659130057885456145255210707372278695854427251163470011305329941776138893324605703678682486279426005412053351111501864539396943208032406915131129321486116621945813991292617084690365309678769993147446458088034927758808859193944075390633809727691028157231030344223123634812621789050025725244773952915785839399780000981596045103209502885077608296243996603520974823748374772485535881123327609324222479605545021989756818547933683949951259732911587238282181233407921737025543098167965419721691081208211176557294774900247223462962191951113688467794183803006522783403322182323236394102842957847668168369775269105199856643106588669968554078514012226688362914903190698694960512108602554347106339371331398083819997522089254496916586840293044583904757574377715254400811036861583189932953509905516730049463528118433904795042340578077474199309819116306893995708510248158570579704425179808107411105086262195694672388619678794049951695268554365069739025886527953132908360047962684403076052917247487070684572806438619555489682463084285831133993276144387291993861703420554706204046386998927025919290340451256262121889621059024930504339645201327693680784043641038437057753046392295378646991780334497393314435551958837317498765316409901026395171896533489808570989455533811510847516750544238901300248946936958574283942142159261580771527047945057766722370764508565301639409593051916905220996959503758904657682401529799141985530745039355858785167174030200211521575713213638526756373282868575123520317049169786807125688450130907385222988528237835198085588658296451012585577993431096397334629764532069943324468142541125413801081651986958522757559352717211261847645897967079569247236980982803693765323110191219634895917638049138743184819288781112413991904973027439210328278353644739544491380508491279713362590920298467929997644866583913578831390306139687035503950848117169426026328956760168508581993828552715116146938304023445362581879520586032618511849962761155641742921485764121097417289108249565506607378191332255679878126984604245183863039655471476574800421050572370387893663802145042360324366266942466264009478363707649412173178581175460316070376020224460289408936837490700378086900279561536906118171060482491783568790327634334405150792826627800903206236790664983981909259177872595894121264651918138495675075077107090177157618462748929727034259422624389716420018236224580585026370286329983341259075699377831748102310649192887505633739108072411919938532787344597308149474012993929782604441936249335785020713297459791912546025796469849660079140426477008514462328202296555258492382406500556036180356476185749947689755268048740372032441836772831809489019342236732990490072505758556917799313617105578267385097794164045105462885642574146574917511888754427914384323605272091531520393335457403645738490461798939231995303577101457604624195956157198828724440797092206727483523676107106038789327366074028139130325358806547695163667562882473652381647909209104705341633452504373616221099933828891171438249434303298424503346767014125023288281152121284491332221652594628614215120857491589439976888611560409519392987389760873670496183888672849333476212661976977923858219238698970065260117952843426290742207010228770414393724892718063152215927949957464487410530717702224269265462569459620252884740464101382897472918202466217572667350283083356721645905272489601598868417040213400425302868358416481865327960980478116898932372234854532993646238672924111560442988043150711130412364677637839496186953581559749509022661171753510100320101260078891450388899817406455814386665872029167347263117299940727251117326919386192272473081136306692584441168460358238877240826374933008506165744890727713526734526554201352381912663603573636959278550695083418790843654779400991311575931616629017672332736574920226902280759822704757091227112107340429652228061225638984644537875731891628001687369523852258677006640580678968153239405501585638099313625388880091537287010011614011146867366303947729979952320048509283424777644034473103216187522294161624782851950211228699600109053329965816638391170952053279790048304206435709478454189566023131434702871801491036592684601929401073513647697948645342883842675942602709635146043786982835894382414711673413991963440727701902338015376050999213820750428968385300106278414316902719019811808100248381613634809847513199288687516694511862147659387891024980288524332510551674856346999169010827460365831730139367269529234158875972989327555866350614721944814321706528913289190325559362035759283736466288519294786684685584070536872303701268784983488557769254944414926715719413969274839775903459108761159089419863422929684488576392627209952619976987561207475041018880184160689108079057251098802945223239084352323505497270728008341494230451583898983088071753427289660701408759816782232198032287266571210149830719968721953095070875070528394621655910401476806371636585445550687524499092401288929475761016090051519606749448753508574384413968193842627002866784490567435744944057911701732777104772392129634424393043712496564513486533395516013682158604866530340017392184067962172548732673048074268953599401555590490910981174131167928180946219976876678559013577570113799891755777346530944773918306365782971622887343767946831866949248120876559809524152354445621232582796370502209425803068306480241778703086300048232083168816156387371227402579875212302168331393133637005065329577585639808364291492483582664203432639286336286559306873875393812786867887579211605264323390027096417481969411177055489823311987366903737116244783179366997449406911592243622982878265705168936889030061859685125383566073943670703180266541905073917027988957052478163180699058631267120558548790426784428843717908694637840949391742803710333432005688950832366793143302084007028753365922250965521432614238156721162334004032347057685817250527629003376299463223218234615849788228362517489933788340381641761450580764335722829269023189376261676557951976837380690187592602891308128015528609700222893252928208412960624726945432881769639370703344763481642839408515371860252495214775087582225946382843662970233432606352681541769520263559818176161546018553750964353485045653809570205970459840210093164831729485214376144831006018855143370955515381729476146208683541012376644385205081544957180308488996239764398024201335201526525031307713018194599898824688281419910649663830053774799920473946277697913827313767789537806591358619153497599078432749061890684354268902019948727916833196311050165376771985392383522238053363496592429147333134692729774938616426013802321182896032572121437749763358390718794183419555091053743884365415376556144067148478779731948775468062697692758749826479519010342280424307394349700928726901834455345010885460650149708888313206958906473916128420112339207336061861687256131963563884913063612791720700871711036492111327001453418413247709622495651179190137647275416584903129872194886260483896777372335582900394627090695418510789359789916359535116227112111623994918982498294604623700806102199735951872258084460591727208398774513545175596848838537753891527913792806088499050500175382919232509358139636925864197243800835758923305742408794587018368175017727743580607246195885506687090182355874151009054289867593252624943066253290013982661715609412995517528436400342794529952458721114822387179730887169815825191170926860749317056776824637446079726106577616034179640239704579214378969629350148087279850549393417478360173592929644006238567321916222111364252157339065613400832896225351995014527034581537423414271849926159739228014539026239614756375072353761610343449105380283817649169094246279557842963720689541273883679669422734828366745076058478495279280601576247106418602778203459171414394560342859551700956822433439549609689247678655639898938734111221650525038395230041700159329521637144058348558163744746222228814060206052440070980875270655393200075926978547311388287126733261937016332573186407115567826618674040514148057429142335834143853925978834701144425437963801697962102772667031617849065879782725822382521944853044644518373723542249404691966790044290801794512190485287087961514243614439026419802320142773800935862403795753297606467624250174014007709306581129647478951976442241873046747928366966366916454623565209461680992341596501051022853167815936059408101632774780262889419483790658478584613060631691312085796050762299016378091607491368799366421488892087440056494985403652040606742571841289624076798848945299922737192420219770749136291853481759482769270439581255224479425280147903982589298980528298841208065611865310052638042808751535812645972588365232605530610443161213039007110385414432910084042506871774364036318895668619627691285455840064042203840999499535117312211836942286331451921189450924869675698073690588932128934510375019289972620800417532284993389944538857744972560982774376832849103207658430386558848252037764482365284635609297077886970365364519607393128200095705193288656191878981354089304630977761357698599678060708293389147254214598813706141400856889098601513135655197329047033145034109045262096347189777726310461516088385022990645047725538578850784835641308037160508594272611589757604561369993680766610491118000784272062275455921160816850761616457212204620432870032613890638171864749644254564052059455449673283483507841223828440140539672983974648103266251479619228645202644110396430372848878337934646825796641220562389677621183100928939858103552599019312358648838687354268070597780893776248496398119640065303549846607880110816441178478010646455376150366587832512466244045642188018732026822658227539330457127596779978563784391503414815571625830811891664214866877894913167932865625687553773432749613656025119666643441207236415897654494362949643598895697519080378230323585620023403319136592430241621544846301229319204710907327808576860186637902261397932610736674646732438573091882412962600258138554693961574151584339185680209760901348932070824353651764821083412010727383497630722155935920679131993330764324740989975116677053800840288850912200004516942234398844847782076850076211773428767488501282558223603087134625623267548855216874636365933586178519346188250142000486446485766119934203453668136900680941723833609397030512399928226484623928442016809630939039759918159934009872823619159561116381600283264000782921727325221998347519120669002988111060535529810451988353955492002356170827236475848665209602096468540759213812245170267334125728427056465654447542573387694598533551241997116663386254160682660630797181357523838283853611187628131898813617425032260140045610626762651673014395230577101321430916005332773335957984893200873769927207010128260830966692221205016731698825515326393306605540311824717896899632099224365807427882572611231370407404831941607423824010311268771141212857889113839971108291202437996460404242165436932509834258465158981128746696447658856582464898699869383499700836744466972512537242566954589279330025434089689867074919899722274507437670462101824046501156495461961044198822980923593616505296811869078807116449584393998664788704440933664583759506212500374179841151486815031449897229642967670268686725967331665740401864722688880751594231008306157769981032772605378315935482964645139567356385320946281197235697109824187072507529532837221736356008681577126288085757242123516873894299952475424664792815977972404013823304117627607897992426010614375703993284259520045551779399320558258848051174737619243374712471931711419779680656027718281695069883976202378223872956363572528474211872179871610766389393979859737231023548969657809515598817976171163699735906508645345161206923094791432957851328882999452537255980101884980747119288128722766993254001451772822901824681432249276523930672918124101891516370473163247839401192546151188537892499855416377277879909285937609542947981429180873389284628115680719475963527709730506502071777312363615857110501612624027888018170700881781251004009107104039356209487372422378524034025480222389748710111032575121679699066132999616607879756898077881612402417419146886343254259612236686605191347824395154429854547304867026336507692237260866582360349926123998040540706529676112006632627753991105680020909735963495134861633693752327703981471111801796809664351761816196177854232062870753521569651182505948146465745417205814004416910653978024800839048730340400521244934270762888559641896682101932975174852558637422946642994075722170517108285131128511151774176948738135369454532069071098344167759737575341312531929035191880509404029795171031204768980540357002866979324083579869479476138485488647844863393710775887437408966411147962342419543125931711480977419895382313132601699978689204747401904610701976092997213329257049932299275942768683960647931680542774999711390208316526282340712979298740539073369784758425931423273448476526527613752247433324677169467667754470940360959540335189196395488233699251058605939918124862378825004648473554985345692596796854174113922089283340856017197047878442041878841605151795413278430313055374851563224712234945851171841477302779135203670449746689736458659826544481296539871289685949284195707946649818314438034310096197924406520232418546592458823194086726788346983219836332210029911660399327375215833309237409084641085817609937899932025671168086664884920687312190017595723326040040717369153233364395036154030318634355617312194665526289974262517367517330933457959032631512005693589280868345369284047578045462594429903772247597271808028365876791608958791934193008442204270862484471768219702213018756457911391113014013394032600507295952662217408698549639153401721912885098053750387345765444194946445079668454867248836714679992263378704764624045435050014121661406564234344824366144223950684129742715860782196205975314678090424194410445377272084785244189404379931802054808850789589319229568936839607345328291091644850587576198111067544397621789743995713071433186825703351544573321443923292197419315583574243951599336763348204782160038932805210221833577711167687971643782967271420757224582578244850040402028305422567633945573348278217734170019186070560649064827202936015969753183856190771218888268341402298533398334256897308423197394191363342282918346637912129554014326637512645653906218161705332403325113513212743685473861922173385576985637725168008649330887334299309945519763484144506057219639617344591357964291049245849195394899448474494504949635437460881305065335349210829224034705282946485339140090801398412534310725202564609465414227621705938034018691724385075532080110718718644100456903686664137566108561510709849297416072395741603135778511773018386435807423125352640547644015268229826326424831264708079733054563953344484756201046051226930284575998582716228892013560292423810349274469448721532837106648432324786824363971171178872454938035388220492781687687702892281316699463770465193523709383310373096479486303079027617742718131374877187965447597941543315788469616954336316184598255008181074245713852892772941045595427443903224990006203218398837694949924711480267562561214719582817795915821225045866334934799464362781309460774113230163880064293068301502706532880945129799422977109038191341161731408556269319221530445888482878472405474326510175835648501872154278390591075350074578635846708194435026436889482787772620639831947530659264566943817105083257398978941039545499804015358542242123514854275091160360395296175501965945366914488961970154542909047516242700600974761151671350569201402866240100483076688732203778773690349728236599197430407198737027254111383908846211854951125841686095012472422656283597531508910044246231682457007377876393416318360557673112167821303469716463503905109588893624964401580129758192988216620812651277876483157916237323232859414066936608173619023130839899510304958992705545520967662274650121097053629390253212440725364614598649098513534420291960280346117180024557149422823898451383459505529769148118199230317819448007227693370951278541467018816811148050678945585889877782481489438392959415349328209266945600458669131795187939084674114851221666746973613240786076522016953025024776059814190071327513983087172280307954542698880948455389217864917335825181168469178236414924940920633676036229893909863012473763964879174919954319617509708072237564346442053835378474490792223889853669655409065667352427582470915853877410233813167555601694779105631165293926099098953771545229879475884583697670644370175888012418957778240935853063119256951311427971860887122546379777314738240910340994136839385058497128813969918522863966369137263827356213317859441119324310649544675431566997228788198275921263132398592082901804860940217790553900362043693762024945703935615788789803544109207701792763897364006880215306256460448560225629907525250039645442593604758634222689923451629300154391291292183921906346384144468584943471153012257776063944880019022873648497936392890511558146240110841872275567256158998859099687190922233527554334022709422565923729804115310733228963210649737087150422073298037204334460392160091969181223813904972971239384147664469934240793892043124278882482574638237377320626342616409965815586679484992945993114437472689401989963504681407166922076333397900576180297641165042622203497673872917347950737399621242073915529453768209985198982792015057315471327125718461919331448927503351160144290717521750581766122268595244394474506352900123638831026497564994950626555553420632320724970581402932716806840220731600078123508488640212374808402333984975653165632246473514767134127888740067327694585768782290247176299482210465795396147644635814859498070607255032749920519521480020499814778323580738355251297697510558067946302526414617380595815074370785564755467504713145995311020034714740575301731018071893934905433594090425131617795210759849162476188016068126073571488971858444131183439332632653093434309819603911918688303479514484212244298071398045835499861313875905495738293146586541268525948418903270746302218948557673874007031152582078219917169282559453059465681781610880711038734460603350412115794596598367739516597760357728396381976607708542253958495730985637524274448201006532885944591997621456379519346663784235607394983927032935738044884590783081538841262469770683630684804421196587932482669386706318355623153838052077074096506792820717006415376507989049596477314594818953749438648229636733171025819111651668127888417163756469880450549142784301685986829092009415388147196344530084790668969126258863230480422131100013042337015061615126170383712082722104359583391269481477423102754026456982192564692847298270489432458598622855798843458288134380203083472756897674098638042773122707319275720702395235503895635623512404739497462266406517187968843813992979613657102020167744186467834102283955071973430637889317026885059608742870649719816466934782682557742872422823827755244346533238557701960628935624022772821065334726994095427821956014392895182894610496514612124360416762774557220492336272591644930408598150078133778774959302195622985899906892960250889811443916897026870063339719135576222065992461570822899904031577394820623912895807523397383332482977715649073029213333155740532285254956699237185734536796999535992147806326919680255523076063499676107800126745339135328984559112863401023125798483086933389605804695336677952680396012023026377334973047646306979125252305036313141822635715146136294748320440027827441322380438155552873717562825715403542337349400291111082268712411415195614876471267404676359925418428234260336778193859015815926977027378818210569322515907213852702648031847101543591908802985398672490191820458157773279074134991764899623752796966544590623824231295885571772866793205857808359746714374972384946172276976204020181667800783449413131205629287247694962319780523355066235787464516539016227438851729324336452119329698128619979376432093967254510378231472171176077444261493921067336280189505048699540058316521562115237357913370308986614632955601180306561409301330271915120798661041110038330723750402937813617490278145242381650005187195753088754387584453680169613106944809768958975085686345980542422767405194691665179447864843967912134151686694046740820822427776457267258354969207189959851902820020832842886812766935230348664564887333663462446290824518455310680692352876436247053954314939414108147026672438872551506230934078089492094873850652075314623116045573437911175546184020075765768655594505258844665079826578993873007407855176707916030825002838481091867043932539730430886716946740470090864948913608726900665803972007427285813236285079599035157592826490749306244770752768502105425035102298159898085249814173528693265342925433754657084049085958478955497128163666536570128707034205099541796779630523894028911761664059083750435705220489063372561844198206685542107720027087674240070172815237917856450273534947292677404711702518362651404985184067683577126994038289902945789330318843873077626497972166502514551541925806579233397634710719876845155220838297841252036541736776274360646059135965962429510887413209821003334383044349038263724503139380452726515334637411406413597704435418810571418405950845023384000123345487955705567407715441991670123434138279928256967490073865713335950097559025860548422244335165026333063627745439801435074879511072348565605128215694203587323481355809382093097436329969360827652407506691018978863108468434497222618001963476680910564918554586389753546309216522258497624471385643130018909557491660215901669994110199072469309236191489328216310411117922999979344758529300638118667175561009755195254040368548253577920497245705968840762658999919734080728586121664154137146323385576549699372343729699635748401795346961494713333834650588397119183254098719494601876936792480143671407534955480579790577856874020388544992402948095282663193732450824970441354338051388690786049028673364169799452801479848857292356461276440708351976571391203122013520304889209300379778259354191272359952459034644398511162608548803550090634866396113942217381255270310783004353719277937773201059666282429573646267740571397154295993689560248681351340515849684318292164597942641438596898070398315374525136248050997021441649525373350058271035754995758338397257174354140877616670941716102058627082455055595619880874837818913101404085875319163116525020236870609938849998843148993290698862433736422146211876271189323576125127576100576607251983702345015024628782412396063175866463314266054735222306411913093086947487751530279870391308937847074063911192371754752144237498872011277124995203551755247463824524799446266850920015122545753577624243978744834294468901497911950733539200371423970750044908504750396981187456228252285127668393293804510162386114826857724240462645901136806368904429068607873550376035886044380330532860648949281863593536970092427208122134122281299087551589218067505031645466036580825537941631408129874331226900888244230896308919626874334367778441212303793193067378903372020024501582857177497909208276374724199620127015773333945643239717871858945273080542636815005113253194519318693622110731625460846903216433110001944575156753974804875454118682360663600786071107889146402843620495447373662859478509204217792782239469413318951742760929563811830097349077401917768693143544045531467907718481939848304803319705693728452248282631246933496703437245679254648478315381498109983921436684592816396500450878346837115066752899954854070120260603329821910543866765904771167310573199028934331105254618051459213997167956612802071875895566079919987334519548588710735713343759449403673180014961712807262336869677759710191511309630570888120435785345870691830922901410827020024248555624551802820212759526651731736851204748911167726348069944286708296412557476812994666873424651930472561932239098509767090667783620667240128013446399889175890402843328410229612663326204682625699803581935480977372950308950775015494423465503280255114550701387374856168989543483548179235428784679869548698355207642321831977581748027293808079962031312572880524741995107528977949061172037770664672661505235982771288525143920560814669181241026255218404706705571694275777824943280227277066153090745133507172984872850953356810611498605042248685323657004978046655732552287768267600573379138201629803930957820950822393936428165389718081105366738563486779871421169932346408254253783072473425309108156432062145257163373636512506744444170052636295453074732180372688535350773436445617801409244525271129001510909901668456865610600314854036393045899747584792605975840104483187741090609630700794906035397627380950177883173906231617873059185163229481742732845468182428414433786139966113640551858173044667861470432696984881900794565144283203060272463555034620957918621798821593609440452126975402780957416564534870153248927090216286506165320563707844175079378828268220544219652329354644479880420630787766793590337598520444177162275045638990425999200293053861382539581117369182272274841329733952552232879068531537098260794173347205661922270960972785457317154663098644772675480664094531512275232937459559455925068855327854232300057053024832956998107685470397217715009965132560225911863788406911085167242390240830637458690019476140958541349668924544657588047126900350886870895358312868445111862650322392264335909845052465028942021107839071224165537252157352837196388801388277899140729906068202743523852862270745425643868118957432873529630927693709635629518653153293788959791416295937210552022390576080795150254532755754808706581551269987380517618991139403659709493526547415544893161544355848456370542277772356433119916001386227098326186389723414914014708443269452396146160401736000364706508836683891793572638371416863249357329786705102755888545504281755470789413756162654625998242470557756733236960491540877588474024029913241857241694490497059494724090307225147004034525032797426582187684490204737934523592924093189339730967989344774553734666051928973800687851914093854463387818573274368966383344590512396963615822082394573298929076955540509455713743480279182764191716606819988349640933548689808945709962803103854930726134320673477602022843518947162123597307098272593888296380640427397304789687921207551649043572221439420528756682562250690584107732361611305342440908293763398318364784575022404417469466052773411018539665537353236618197791659057809890360084785391988246674343267864246596668914686248677533652872383806091314975778120260625280884133911996038421753371587994578141489713066288649124211101824774712199616010397073754137065367827224379387224011674583051300531320702504455589440755041975971795502846401076479560377379178956944414610338581248728690484077135495604928453199167554296000566557925030245345205660208833427964612027688129473310866653645798403613224728656370762549069810580659903030568622016861077712468003355207092163691999617628230035596750788021672135787780787417370512563478506892017935025460575457578841381608651140260357338501648173039606380475558302299848199929983087158742282884771992759024103997796340876711500002032455746883760478950041114497596320038877371825091385184560824043104917815549282307952188505658907417416106421286451781949327069666026629887565412774015277794975289528136278778796374927925408040267764725779835059006754419247536625832214698565110106058618245652956397510381307225911175399554387373388809444973171502061036804662330403901429933782252583279955850624259902776208675186701069535001415287468629926799408519273488569553423141854766514799289569581896817171536919868407503859161612000549681361960662379053983808668799141448596382243030215648669942757419479296849150536597020263381704728537954469896549615705713698980605944056725264321844600725825149462414312235885691644006184466435934693663513928733434520040742448171880265066645333815639025078702288919952538625406085970554849061724646779638661021713262275336115101586634374446339857106350892453708651335253649928674201270284705865775068059979797006037465108233416277661644673386394707235254780232868084812799061784549147322049592655448184178778836366995476458791873076771420395650796205750719191556981694084077923699151779958960310328660822067380706104332406356831586174214187076549048705075329840751023514191391815647138174071559047142226634798518883716043570771206626638576424093201211364691857770156581395209132050214541411537458103448007919986748743564680675813877164438468705641321171875651628033884115030859714375425171411736721901769584624243792116588987021764410376828019797789500959416913543278340434719187934533551094575009414131022615954000196278288027839943357201971390934925266983224391460231420598270439114901854806239895384134992564459278591500610291980896858081675637526263173407324620269593830484723742534474448731859130507057908563864438859429155798772249730552104633283495526253954067467371381665037195989418175083395099976539582962649401024310125316336250491968201436474212546534925210833348138478001477625004603304470872229363040028108296688586341675972503118871652062596890752775772065947031291864203852232959255344907431981674756091286347733375198753808054893977944450081454762854342347189115510629810852473414821626867119996555310829623392090408916037460337821749370872237331321312283225230490293785405398133884100071202751481396159830169014594654120721662360386790468979852602276586759671783663774584547954842439541856379910131723164386632750964893263451405453347183557715476789183111891520533008995897788045586941382193502278321053790832970953535669389456933798659668970705223510702056876610143315607876398735844785875745312641055562379439909405727076298668799640056633888107568903502012689203026343724066748007416063841147407548185420445673359106482548705823034961745088723151136915218024290178472447467774232457119299118674699580628386992364272446404343918821525158430055395654844280625112155344578346003026706122537894739746760941525789647382070729294065901037275323056868719118264695160308611754415208713956405246291257767397401290718008562197093663400999788753280415995688450734502303319006029169890830208844090733433056149684865778603375144002071119111644343720374114781501278667374586721886869581659194077920107630821581878259753477853383667466374280437480224420843398793264343861039217721765948720539335401608116281176798559092675043104893048531833657184232179311691420552132635057442795830637738208060313952146079680493517769513815133840811823165572906525221611756351974758484336800321334521092794907182479494372608936429432942967431538655988119273153783342719350154044700221882067704720538938029180281915654355565958789188742381365094893146967916795434679704833288434698941185259703661198633802766069928937419166584882341393597446038610220156457886141172731390261701268528901226359320237781876270185256271683823343015731361645000153047179118125099075886590649323193485114275956869702323432353937596539312361739529454131811021544334735075775799049473641804132306104033688489176212063972807607827121092044684546108037655099229628706096013921427893153987380930942713586540013329886462134526460278492741422698369538679739052702676124560409332845949145456486982728229178785062126103821156596572770196899789367881070961029321658475846607861877229398331327130957037447314774924248536196714297652201234139773302472676656962400019216008895708748643378182679890206110223403535816287569600377048882512784170070846165498740251360370576783960648092003120709739276132623103973550121108718976599185451620571114750157741648452459615512581319896395105184893285700711460562901705940799738436954887118948307243540821390009628426456131172111524728166161238802410858005438881275009472593492537939770256257254784757904292435722377895043138653028012888900324529256984004547623260216725575764420319978204191936279373294571495014650900580095174124947395475571766774185374657918670446655640833466972882910409845414507693515200376674883959483970209170915181694964614905270750750446271266356357505059366903887249916234427001496153041165832116913803228476464314092993919075887742340591697535491378019875439576830300209721060363028364788617025939335908513160946789850344938038907807742041586817910013461902744187676172898311226368702791977842527344937447399062543964107375902845710227451593560599053506569131302404598165922470802454572849110687407073077226129572158550000704649235018922529890404445625651918210914745957173152089534620275974202832450905253057333504580228759896957110139716538674904589114260625903583857600740887692126256765610957128323886359274915707824489543654065331289071887869647054580906615662767290267907194489721533728215741760898759943820900157979267218285892620288734964132245483478981959660898553382659999588642432226022210720560461539694520483605185749948869193204607942313253273059663326430204432951653581474944020196083400718787931544659580968630696918066890318495811526822366582448698061583103784085909214743547127687310309786862893053967099053241105262888672893112011039178554675810654835601055254182201524790798838029216180638190212290392973718467832116263280346399770962674224820583984297507555595768961772306509591462697578434175411514430475255544029085549952309128377176566618650567657804079282004425363224914161092919353723822909487860588819363435446520081098721991519653156961135499381977871290888496826630086137824484458004946238838880839963794321898877592520987190700444737186703196775419166587599993435992176518948320025126431796562257091451355816253915739149602767425478269180475665479800486312399907196804493592268486041786426676496061622049545687311921090500483538714893801784229512796750792870042198863099224218398576678872764286749205614512225907395944167677604935971539342664721861884250879307556027585983427938123087483086952891746122668261311728902827837546925789335339597813103897438581138199403029546803931424593564192686320947910614549847559437349760501826714737823407454581536134403059545645260220827387677014593375994936737743266734173918274604874467059734473779688677812010914308633261780024157076380841962724723912865120653987176703547217008283702140945625515417829392148460316386626814567520629510152558916952047973386391062237420676680546460219503552610249892818628709306504039775664322437168799164280055007079709155625948298697267251844769684224279839583385133706093002158692311721646028485181312533459788815669071628593651626171084572076891362272387167143265441040655561359923293774815593958197519739750210884869353680185780856170495673538251826418910474932712530818632630185629044333525695429230341013518337897856111406009416879894502501271893802781132058818440236816461794983931891947992049572013352050747685017878354495778614671714623001293631784398781872253505866477915608134988615723199675523543498756558875519219700837471858199002281416266974574406367822959511915429932022782106295429032354463234356845980256119014422040844539859182286446847612595921902979471491555769002729537694421131629679851096582005399554706331931859864208389568273666007271159261167131639059367692069912376561662738330992821012010193727912215276029714193839433111314797333148888130016579878297794980887664144768274045488608106307775783548012469297935909795975286082611953452835347225453961361293218269244243684133194336899926686070894250138545087313958603129499353108021199696322550651565549641230483330211223725737259513479226902892523620275804098846236981115056154319239014631499964649921571583227542741380994427318136364753323505839060383235297695846615880265012303717571860522817496591804336215488902343221295000963184183277645266106563607457576705873804219285504978322780493325908816817826294383829075460122071580391574145712430582340015672282205598595643188210683613718770354301291300877453111582715774413654943250779801292668341947466405579634717599762713470542637073809813074576274693966812591222754001319513941106919442315840787281893345306802288055090191925587966878628650923781779809058435751113912411926274070865942205388513412567905369213407228038226212390501745981920330668588532401484508017441541285537135438974423337767853096706142685207456654261367963042214166525730222608213036826866296315161573034671570166607867647071624007713292456456290570171471236219926034499478780037105045583968143463299114272270166608551410560599882798045111736673039657051389768932926186175632278206334214212973835870583256198105636442314767662123532695576669444180952427976750550621772563076879197397036877466442680639101643280699965340125416973396859466519161140795958655749829305685568643973632005954873968964847024081686866291669388761490440016569942768294510654420659290042730187150696879836913800589262318912695492536663884235826638234751991014623332049352956149175854576682703356412428784895176409901651691852989041765458379976139847750371902783276625865710050220713594520609711033508671320282731100902687835383879421736539019144002122672702149461039419691537742005204887287474119467375319239116373183020083810704326541305635986360806013809274972686314989481409878475562105054372229272933862572414616078239113947260842903833710173894927859937606639291414092541495101519096083972810096227325246390707443194741718444354020889816776083802477649879137517690082730556032090349026813132452585279569282989640275508048252340332861239856011803019490693475484177438301492917790704618984029412722610494590046271619419354517255964802672337448231783928469763420618772891061974328192211196314838906646846445861507401260719025205765611146050434162986027331924746534288223309437480950766595014108324818207187840620998588572940524053072965228103760890477568847926851917667866126304486572614167092545245132147039789861082671711160825845573521169655842670382205679880799852300257663736246827327969374026277104210164967908682780219800273234811676759552329251869123976316194476071445661365960254728052675514130301902396499640320051067331520541281248258222026882463608872867222271944028934181918373283393191595243347950379081219591560675226687507585892605617156195175432165157894202617207738546881793050411827628574574995972456702270527145473191601867853636217317837800286915681866979973370448532657189473544412295296814149827153541355808171564366397579371744036077861308658504123057346604465818342613120575039904198414839029030705135784176472108675870250389557966448912433177195269065055351109909574589413439625226787859683018247286839376595322245062109677044152755933588041374446298133664889122844548875310801186931507030010612621643772522064788946076549781231187866577061694583678588182374474046149181138406161241594420897650649144675858542166771477031244973542171693446722358498087929931211525559857232222461320796959952932703682469750926503891784398214559399007872152056551774668378138675258393588732052317046280857526837584570481828877418223530538813630435456069007242090745767435750361941117692897974622594896852275532911070021240785131106666974544239021230732527064504505750843598797300758368388776499526709116026907210662369759491067333384064893169633023792907712275503405393472291116224552455706153306754632011790507028889720278226306777431479434235521083263489694061302017629557275631643210466058326954710719757478952973299064776582734172845521055351079374344624907883463654689730695920532621883819912365168488187419863044025302934545493228861617629323384284252904792075473346293816586921311763649329831065811788338381869623496877012053351681690362435928058955373964825030802397679612650201903675272230548881108680013816402032973927592564537396769884839951750627409839624629121087857280192848955512009832417600581778674147996635101648243667736092450796563425064293517526714591033334779803803223789669459624630580574507333488284601516978449922499884666256656736945138067591290479371612498891292019674008656624105521451941957288880462190259843236289000274344745053664473443146659794332990302247386433216876048518368298013962075565177143569488567197006755279982087295336867630047878695495408388073601559773365802482556246018668471064881887560721474408756390511800201761458818707713742918059161522279523915498546015745949354243226971219951102560334737804000994789779788057738215328446755463489127405119838229012740683276584549122273931452915616585413839662291475977723159820816088432989554862207152418649484203101464488281753300289710049189846658277304077677843331192617952442652017484555514727372494626089721216122661079458917626776339797819079489590641929192480717079278794912850738791929236128048997111846577925422496626703110739206731820499264798661839577741717520885519889383239343777090913694642701254109593207312430864930729560346736017543849417350669181171638329577027402390495932904111404528086994485660042131779273046379369230642526889061471194043860464668915627082024725289651101280345179667563079027957861902325666170042411531929720440899294643019598643824150671152356662317884272699928525522668824386727424018899793287840862318044367542403352413213873956283686557086560036486500185922490009720132174515848276448766898941968288866189928868236203948870241603678089861632181958694507421371858903035045414296406479268655680151336479800627374641366803102223512895817881181543583956718860808647060062490044156766165703524375980075910481799369338831232338286923870796936829341175794677967764013220782023647892375131667417870440632710485936282150892634074857339775572555133877816594114368129805100319683567775145830415914711291804653663792450889473226824718192839473787545986095096958159283169704832616617305885921912797966445384534720496367849417045618902519531723149149944424097760956317969477964229993285330870956154683812967190640743893325274087393665254680911451617988895611814415418852382971961041847924704471434959118853291653808788794816990062940707559724418117380334805086079142511842700188598022606542501591809178560485618960459103408893337516454327000705690924463836040748447927532108213863617574577864903647276771856008628727280926860919831718091955664330504467151126935039772617984505100605859711093048147990877741966174334744217376111109532840823193533193460511093627231494015657702210064494502384962622216508376137109170779889239403623979279005090586516616987407393573319019242297197661411380814043476037190680762602373002368136933524816229547246271624400157670506743268238167624257846472104190822193006276006125948859443035750170274880911172441844586120428743066742749298025143188576164292918642008357790798846531272133024622449702479363427560047723601446454600421097589368018355222360057347451721955357887895431055017366070915955123241481639032120475934568505061887846516064458026870568303298307907623617299727546343832699594814934335712915978748692995478973153224408165540961116308416898366671632456719729876504687340677586943490578599365316630427428941362450624817477644518443795664185002421954243330236631375982821023624097160963484774577808151654686705814214159076459946491748008657369491603381379616966387226738704479419634338934828986844334810862277014394536477906183454745169580806574830842745981226851085838303457809441782328537185431063632089417222630196928884672985381996528983078042574191626791371754566523294123415184271792582694553001789368810345931560025643986347142810652134075604970999005229621680008531600925739585872101900862878023089618622768264120636647762484607700722087454122618911636530638740419240608495780889069100469758032347268153203961170366912294598069683224196677351784778256489107816259455939953954331726360794219239306534754530277719459610001275091452564904827765711278086446164620235861978999703408303234398525086269655086284610961796657284031717769513532581293283479500397749137613608766488449015861551204739820610210098203243660927742832881429193026966440924851681934948316148733796458286614834632442679528613449128093871406182327938722776245646099196830069677797523991044387977338473703636722908018978606532883022933802088049014518160965649006179760795453879464101099932822261941445638789193437683499976201944648722372230566065850560685072408051654683214749737741153125475731325151260605420998900366339885803239899246566980825148788216218883857858070810065190791467426131186863763247511710892866288557795831907991747612551329531849302098055002441188155620101792438741262979353499652393287261799398335314797409223399138151894801692369309841343705393061755220157688018397112093228755677640806114046876704637091401354939107730744401813059731753918240475440696684240343408423413296667570408274042275173570768168050988839312386797531434743412844168355781830208041190790867755395559738047333798746402181921146084737405131048795975472731978156915578367394791387681400637352793562089607529332333658457814169105777601506959006777905340725077110890770931951481760231708036186224506227765026066126745314567645884106921990899049813752045959461847476955978112676312225492952449096481840565144382859417737006226537841876576695471789553055881838537862687242133486182284644368917662944219926944764194836329635652095635198579630565327891573550420186986185067578111608114499821528332415517093799635112799004375517493460506740005592567607825930380398565930950762005117745773881560119986079984586162067955365977564321876823500415410114094008467040855731117958170697855645656903111145045402688854534154510923622891249985371155905186586790582902123271499808110809467137780991927747061623588490031815443531029407858211720763662327942786027861663636332103481022910779486472755440284361534977670871737769091584409743094370887375922733089971824200545924737320605159835997262857233800831884611709904196523902152936773442241280948638126379753549931999365766357744504128204190943596870391885540265418667315880406922243939739654797861171088231222866654854433860573346396698932319054354001857148693635691251851074451254825140545253441133709034088778733839468232975653820911721779620518999785515200799494483964009174902262310547476516094936856528753413492335832824899735502681176467833488790435598641189532231715041321440222478035311868678934555976277056952421679651400036391070824731118626985162538655742543755583055723833838315723369257064188476312001500549069513831417611776264995850075014154777107344195099297348340268142912500628592029937014159835819014415898250404232108056303996994875000446258397845229040689868679281491868782349535866876513483403738857450748145213403269579317258974827300126782930460887150569863356779376354080961342967817432948693513564402029432901831211009721084165420752662365958586252539660932429200911185951189491379931963714103211551936642575503509166109204354378901306558388950084875477313749804179997195521080629891005490158972343377913375263822724728607739263794168447400006593401833995110581983138334402478832111295620497384916675351286035716716976227452601657789771748947971754748672291323140186378816616526468648203322851388896122879422310199764324465400726782990692345016772066132763794233140276948140401412681233518591797337514995106004235050980257448218464812171584729038964333200515442021854726637850938714448566692815173834131843976138877178897068984240333128031390591125981254691189938116370097340023286121886379660216681144586598386663595889717119739811959602484940603368486220888514266123918153204294648102334780963840068640992001164305795939891646541339484299756217309556653649977314067503901148236669997457442678576030073750331319175685018580126274449978054760833418232336421306095578573481038486991100891618861395785610077815931463003064689067751633158826980778040541458530951039606255747527564703761011239415134797488953356856539208811361406502881686222816636457769823513098731951624263409820418597726435033706519592620654229581528438533720573322606131955220924617099563319582111731615736122876044161108584919472787881652176247579312593677160410173253722671800290893853752362778468543547924974552139861745513716263076388480726639180549899082789308156627402838471394150064877153551118276162586832776350180656120527153047701722205066581375070620123562067979864305543107510175378513493546097177762180979990972588762038756648942346293621014548506174433239733933425543162718276598776070265175444854319729715473236256262208753347953477784244710822123443031611824293979546210362103692781736831459548518629507756564594929058203682443861209598990233917674968842551490613244419694681163548116991951412964438114207005503818262753661715126054109619746969275593958018100497682682211090605446069654561041757275150129079458319007073072817361571137601151847354369722297416676083362458506132849834774905429456502273689207052907895591839323903022806898627335748530809812960927954659431851112229691516032758029771456231845972600340527179036642752019046532439247701168923811740497842547407887389816255006013600537999931705324949338011178061129573616862793940384352062669343585254061488167632614020414906831202810654029826752166091784766394517517059912849195110274465796785541094190169639982334487420992953413047766067534337467743737577785831741863514150066746387694603196016505728110845627994339917480446158671691857853632222908550184074046008757955002264224198004588626029589033158483399963543187592100240933119652363089372123320138408181154886612756725436253072592769347048646278289186393313807004852770283544524136255162336605455178201923199438599066051774640594311433851073587731417011163963473399295449724613657471500752920576387701970338570183249360204084201576640727379956255912739214373317112171220032324197284920374666186535413860126808724989104939620347557862175450499122290057219782186836695983410765073518552792791884201617027525190139911616851522557277399292985400550957442830377803840545950891111178366451320123858525406306207659954439098333777977221650874215794312602421091718534182791635568902984527034583280984032130358655565784357246181649412133706953596283566576573204571910102304589276782964044481649046859300510009451327793986622941147199044032085392500525457487806285203413078937524252794380501094398938881773155745722273925271553006401517995584454350676024634080095254548610157638556062956670841383956368140829089519308521313046636060467736478814731374736131835424539125499547319099327427606046420350818819541503313581274322859923859013451407565272881403007307635964763714725120277503499689124434332201511847441812465818861428422899457720372250739915574969469765752012428551915307778994608495005339375698200967120931735682279147266546693020242842521883221056649052262281118668494854382675230698549716717507177509098480210076093630579310078302324168839288595396553889316488853232044490211892803738034167732856634848760693536037839418962989729639060288067568972900846836095580133326434927239361409602687679851518548164485964057466518038872394994435381362844845447835468550915155755021687207729688719975989665442774024965871967107607948778009251420293375816030336575249867219972897666601317324328057484492621374281522035663389357765504246239319250849559638360391572203704941369219041952097207552738383810218890977601995240776963711075595846953471505615894097936421239632878555366734752888761404597325814770493230702933247771207977752011825694857266832517884681314771007424541719414382133668050491531146878854574629736430533421754524284621446403929756131925952816935480260955242849902592605493702795207404250206042735316702391995430459614535449352528351733501359031210542616354467610849368712470440856079790548021413483030399463185619013301129854851569407970149533439769676228197745605551607603790697188164477993774076387489261477176819661372140746269751557376752243598792963191678505061959218254991242337392692004639790401603276928378175292235684591691232443941361587212499334769674702930142912105170526556189060823619561563549371078612128365995314435865162722316597188937080495315323234606175504447240502160279746254962387880742594400617599616204521576304675367982271819659991230757764306752793297337731328001331024927390607151549740789048921869503318009443781798191122963594420359602518171263505510470069594546979674912231733082081261420566476643459320764072886951621989327491870602609015741853532913444345355945291867012906618742937051840391927656458387084888179635346431681423096042957498385740504878666948676915939674442419326778167866524113227466988590098627549871755080300503877695730013224630638565267116435113248962397274661832198570007352569515110610512514006392548713206368951204194261966926213331619411823068918315596346599656920478877681115567927564963865752677954970916573046450175052066047625456015411726791356365132667821494007500622395460904431164084458086451253777729283424991746528393989153390975924440199735920576455575702504380243923966622599180028574189971756792063766663324512415971410754477005759045160735154666518076640880819772791770352158338552030484100723085177610525621359935954155646483513355829246842671778492630326085692253986828522637703018253792005859929744822598247622863983018074549989146646930205565688199153724051907698618525751147608035864849282284343112638326293040574121649716685719010535192785658878818865964768173760525968198830445263826928351315839188456602157882238286877120281624998849733779558706983744019442601807891357132279627756483501409914375516083613877821144460879284890822604647083845866830336408161730693207089813279153000003186649366075664236647978742277928498258733447902319508012896461490336377242870949637557057594856389431606906520138110818818094941784051585819248804904864039630971956277809250110431426287832192780198700728077767091214287458965197824015959999075522304008769760174556317353002440558355396960658684639168826551182381112564337744008311427876058657099894758642959704194515382409611830794997706941165414866313553587130941264488813388240167548915235031307327105729062567453052790958544044098348232587410404362639862833031982761161043787559983854807871245841413988747285462936938834610087806997963785559175879322050190528602558154687542612228926290788004436864003005008385637272786389414770537406789458389018736168889839758266024432845947287152622167690869585537672704323387824403494093837626943768067114860395830311885267703120024241542599561562176835213267160341709999496517335219800052115995298085157847250452284114957119808088942052285918440817724259955705122249555068079463249306483129124621877399995573593327895650138111555173979974172894779380590288446159538690886615086521477030400875134796102415309001985074301176413180815983891840078123743036610723408419000348442862471985597300979030260591806264401951960694471235679042325915392497891384784746527435961619621760063877675774633866573436938280869105172575076295897847327077142036030783390693032460704501786966507915417143992602020072697889681410032508706301007513534833120045276542132463218949656570151059254054919545910931075880701726741519978965627732797623505533141702691724108952646733557167569803746919810990782873904393916019104570949477487768258616092289462796021836877286379246190875938703041167894159756840730132229291356817452822589688056546898133449763263031878242056470577758056595103814142566318901256359560491171734156316844641608927720262166218870439532017526537775992916044598311817208523000495298850187345832817408077929581572255433572431174458866171597038905366805922504302634645284517441819980507973740703066077893481745391047854596389834372424806682389471295104043293544002004086008530813485071156893629349228447361140320347274907879349893471192404063213492529585313711930334209120671049107336670505092380858461645963980960316916243761987738190080441482896565634819841790111803832972843445406769191844493113117911501189455157494858792914438867869905823671000371733120430141976755306611430727513895283548521512472022784723365331199456420699342019159046907400126685616135654195256123762220753931391533358277632402663355686139406421875097618412768998668150930171201498329530420767110802844451132863991954210328263635395385487680235211478972962647639695253450534042133779470403673580944301388945055232437696036207634120263791855912454552880857030105914329038861632690832147603383927485738142098457084299371088458859335618012804053114966169388839303392100286432034502953669589243199821646867709575928495808017801840013029015089268430739048633975904279383667547301564507783207487238771149495577377786063237328502157796326612379161223339335721421617878726007186117600603393840648416039440791567788149538058261241155052225542916830721199324003992215998912304853698775095311180501025711125998466266916236140550156056029043142160180139057380631460941580265248065179640600122462298874676135120671661926591212372430061327264136543642290297656193858997514246516315887736045035610005811970044546050201810554433000734744991109746876482968074488805449991009161358537961225487115187939475868402233649377223622759733456670428719503544121168722897364323541470643852190246866199375443097053225020666554443458142925504981686121304669045000765644992132938093433477856178803254239983279716496917818967931531885664250735021637402907516994081899492999639791146340030832622066083253439239635678280637101775842389795866213994350580133898779025693254412868775987206155016095232791341590725741074713656611672552533243366658965326706464152793777704182055111824094806441826292178213481874174669945303024199011477089600206376560485797698743775330988237853303239498777917962166376204056505640571694765336420342792187817384126027572580558401541570050134444955036632661385760856177697328110813570090904225848612875240418959238260888770898092497052288322456016880786632032579098981316817573056365788267144557981357275075209393788460512435657070149303569512507407411741358245210103156674966342939639336389624867807032334594209332221292130389742479301758688432310549937441919609722395634302717523542164316408352820505749359133919223497152250023979019737320598075564540645587999993933382216011241915674318930631459960165660582845299865455544861677195905151998699443671640771643782390587026645724049547277354264489688602751098574784591137336236961520952679406993020049902417395016066892064689124019247740814090321080841126655975244079465111467234210959861372502251163879454977350132501647502742745334499472108633118831676404083982374082271639465253579726736581722910469650186044384863658373082564572674041011862790043451051357348664071914598968461618679193443203318802392084280985856272579901628265579662403117061374848311559346079112266462795519914019843974711958062556836558929381261866108042401081505347815793802087123953940710874548901780940783670907703283432363287348459116887819804084991039478212207900996080743176430545767793562475934544391407665054595918874052459212793137856980145859770610686120245750726302193439449095098963486829438256169780366796646083360186572660200821392069250700598348098770589440328473589862257431365236032682435197514537415625304446511185642711111113613146510495040620605940230005562627142354176247818904372107798902206107091994385798116465488685373162107307368015502165336659563924111901978171143900187362856432125922506189462222786253296450884548242447707748340929119411001617285272984851670890217865969249197406625341450863960051159669330334711924176663673414382174467771289993730818388928111216228175950143350071811847048976240094570039779491210139638120216551894439016996087576708072360935733120775630819865553835751642059478581740623331048675334557866278078831687884474521019165995427817059921843353057317175930492600502544259427668427014489146127851116468810648689042576724520798773269743948916840167440760833069107530705385470556963350907774569711982713737858892774646268952903519791279278614344379805288043055640074675729067011874176159148404992003866127945153307762573521202331402229300330101929639980421608701967419546570414595697266007667103479519712692110384103405572960792405496423484608937062676209429741594954471589934884144167786035514066710473097850443082942192264859865574625797622368805280169852292466861350404687374778003208044840415966914317119351353569900238700165376385523375072997362691636347583218368655393180083824505689244329853101818604627753092528307102763448745082022000079766194914306602550918609204694223427450711202046975621399069246124663744477711097444471042284138073481695501510237972480921536319901577744196065084104359926699167050188819283098357316629561169727028316719478928913157935024644929655795076205967082164978779881032740455524764577083566615052964860597182530921160195589462916043933744162135285853027120320552799948224277076959434850594621645043194741455704741579462005603697145574426973433254215689647258931766458258586360646229939884079327896690661219005240887421066229714035210165613434271122551630974521413130670640133492689588079648029482459597212506804432756271839027039528996980926925577284560481110872792789419376849221740748636506347855972193491776817673193938477042527950941536629283090242741950787051073667028869719077443178498999430680163655205980221313256394502742847680355514735975219448204248566911088113943698301543930608250626501868644138352964086448571737963346610290052475604946971582324466336376451040633460951556556548185694509336974575120462719503287897303012542533640549896598138580531488396246567989762785182936724628760966484773095161486398892682562745286695578845195610501846083302785410906874735324164850485598731782214550351098423411305670480052866258620119997780069565885522936112007336011911718520049757203468424778813744946926998240058544684857967611161146437299821696454330764410404099917552950245528639142253607081010512727540128391340731066490431655570007682627025615352260697191402346171891796758155085211911119241407775823432406753309214545291643678107521537982334943888579991406432876006522776130225846862598518603866464921518417191116172334718526416086232695077139830768070819833445761190642500755244127768557831973875159656853303352294695646155837214096324077831840377340489951555240923771376339467555425665990975304793834173846551407742169538875677973889308734962763799507133691088167472911738290087166712309990765365762737266694361579244438226838587848234562444975390039031522108216449912494185071789472462701340958954832856136464211195398824759363474078353256316861154004011656555069210655055765683080975559934931667763199317301681961367774567907431704616303639904621471788694608950438469274343471149961509215226344204236218884131344138868774684892586533901649973519934629306897492621906038296117180774376735633758643891845253264584775855592644440297521621333639941904368006084506798871896677266728421021700015108292946601428329850411425179121555689869048012779842961529723570402429670747832186102840310979099698280437964065397107910626915818243099424413397552623124368100221431025238751605613645146925867575355626657009401595908186231676456863625926158151695751073370140264986865069669996561960673263958583094126904182226404338752232094890526027755329262486307160460034727326084109258904006012635254857176612444971217379519811839974796621407290815439037148235339664063520327987994978938329739086426653627494180919035925680419382459876028574952591016683927270482923531414850723358201563468915860000511804014579069025903681500620916011566923154265088500896876915116095832770039571709379725279615643582496012725605573066423164705342752345124964649868135362756462224286138768972316667229707279176099497759737981991108381914869558686647114013080532988883589014240626245271796883235606440216801566129876740971525502498426242255814678223557286248557700669082153638737857364802122922551165432803775202037839494621450187916715903263479308410893850968149920099519243281692325143288629486560741081047112217450562229346765550265278304919333664057252962576090962157204169039810416053660557224722944707781641498780224177941136034122933121070006599186429397322373399586712359507979642072595355715457262458558363802446574321679353249348073142414851741177538318241907331231181978310317402229280744446645922333162130515714721677635853781619818903407744404237342967328140238387610734447429779561204035080503477886266119111677450298387499688085522638317604847933466459662692445275543079919122813690281252352186086400763684793525959643760144387406752863964666983925027610472676527978380748848361299201312688151740516200456958843581071521253898180915431577686982389947622755911864698264665390408558797259231623953643203926911716593320868018507670217663282018733595914506942952962670629557631288931122356878793612189998570263923080226023324666125111257522324184053454667572681556437283255623860831782466832600743699728603918022228658320865731972376511312749522781927574461122256783456579331505604959255585501620645549772929461579953762965015099664470400964066474218724842849514153730045623595571638443095492953162899256729497474467104295671490409391626966481024994942836557550686872391158154301666401332040885035059529992643152283540400133120722517837632973225443690398493280110591308306144618499409620813939250015495144484482575699316802350564551564951609952102874266393514565994817505846965879903533031383130849686165286856736030872610297584547079584570027985651769293331760902544212886814662667165246308517996560451406107264357934475146162472494143853665260440932698948703331082993702537339926137403383533782037596781090523192800467300234663051536632787782766141447274921566907421021461274196742585442148044221375534894876503287313068749861804561142761756734750473987037275242948840511537490563968858882726680305042993275359073080382335629953848069532724357036103218415234180277005199389133481137758670534563381582423819078947043079885383353996834601052917596064678619572598380765400714650553275875848400446938551340425527472087691615134559038495921073607162844132459756593564717946811459922746148657540833934595074817746537782243410474309087184781007820899783178952232480850036744162081305494729709780069323212325739356937333995984872288340502375961494331541399135775985239223715107362399376738258273990915945126851030819793172955970036758059266458155652547022089041547598322857353971216098882321268988993546398008248688256617418934499916393300009559403940513479476030278008815854592303104714562520464839121515057826506173155728636405211373095572656992721730232436679317111024898869267923712355392789582736324757505387514606832773605667299978062540951575472396877784332230656342204519906219862489976290326029752046555302946938080061095058935430599940024857334723239773879154262347890418130979513456178549544654197075716515469280567430539295615692255053067815559072660509327109791023594800296878558163193869161094204320783712495986828083047870065330444242423245053620078331697475902667589635961566039068112122773619806994569598484175868685242423316750413569220562380489002250815908551274227953798004273075108944259559010177426344309781726337053483539793594552410251819771048055857285403421261893295582983142640434609664258499973841287365907979717681961928659232714340371516544736928936769303704643906889110665667497788042194678507962282300221805207565404244761116552346501347392765309739851658355402750957968454877633720600382614567290077086221119969085423685895220357443478570269212239938473480950771724227134043592747094675405388742608163386105886729813660077314120962789150817957989347841557712732126720897812260433956152610767522605668297329518445396896757131381704827425326550255914755783958747340973303608623263082898413849327164763367525368310858067231028288926221961082203412816857404990850002766892130713963030478622411997811943505281000388221840908352940126180235005413405910346584797267142131002780703722545688811627666312133540766571711336506032063347845860809844284215547267662500075722134238713067248819943757819658918738236599455818747533636302936542134147181164192687834258132766767954975194168098256175180562845582309105583141419525442201852093761518290130647296999549047703194110535640760758991898832863907677379792485434055991077360807496811935912587782123330883042635652557811721213528819281983960195988043475345504114825742065866511695911130384676079438534307337122892323350614909239424771212133550681595821291347988598192679219771036898046618240083744322547565121402839364899160471203803638534846186208645195186884502234621018815601808236237078223360726058024427218665583495567112129335666870959930619321961580416926829000765589253792727054794349522913144794333395448435719062247642928642377060469111746326245379643655507382838307466345650982611268551437577734086904674558652216445760852388808895451735965630382007180324712886466543806149677301803942901838326670930926031793364324706847753157556875829845900091548818538444134783679837593450230586931336557437918957525176504908440884944007068224544980483940926489743235090952462532044271510108621431356121993826253627996447276407273842671421964352928953058529936942648316130806990670054205296164939391179752986067508940947582095845539659604107640309706853775090172839653482404688911087968592751057230091368721392139536658783062817247568258584553626488329506379515979201853851663151362036971313365988928931277085024755236791348942324753041143701744281332176348412626372372084908643003751063903207740258693747738317671473230922835481736489457310375209871733445853930538653589689956749835821508471736400265277891222354692995837682302890761474680326535209244092452999725365105559644666274603092165439489495178236980203443830191609909286428578817885448161502480147541002381711546100833384981629480665128873232787540579989291489448926009889027886255005144846106659156639458284440563949006651422485206720248807532433109563056292734044261567101219628766536268384597537745004480591304780813628305190655446256108673972884041992566716682298165776065016329213247596534047712773937016516587561525338534705004171665826823157389790820188045027015159570806490323147442848719986531119664667877539223523321652467430674769817003559526703679237835646224958987011828795455772480935834854738485876161450241556157345125571399108575089446983448665094503341447731653235178940700307763140037888187893703295612213857218469396237130616828918863286860598240778182106299373179586680309201103827487649650451977256589993007921594414459282231859012099431471047005283406617723962597083181518989085139497816097168183654313510256292284958298845400278017037791818336388840725866851663046999378079868835291715251486517085957483590603766881209839742384356041131391702126569311700755098163406742399498980228784810535155469245119025182881076039485359791376029465551438577450827147851100172951769449508774552541358005676326564749838705268994492926750128112665358449280307688398200065906081528281452195992234126589886630183132467232965282583134148737437056995761466867936519545700658357153066003661297758757976093763702753573660903319563721464009064642312365472724302732622771317648478854953925324805246202468509026021965837457045386392382173809269411526738486601484111688078703258979420715493573774389050775254843868156107247346536314806368408476917451518919979304092463853671970147113510553955507305181317518911557907872899335235857276015600264742947765441817486302233297186005611932103633368282526145679891339151345187029608763875738750977943655695892598418811376670127186253535932377085457405944015610783365620773248313307181793586011409588313539157318129686663129138633235212291408996306050332741439091360062065428703228791236058638580579753825338431964383825332663877036081083408118044822036940554092675207526216717082306107543125137108907426638328377919733306837938520052669400952918831923476683033734765159543493883757413651895198902052301329953397022018658567475788936437716572061293699690542361033194745780917042954336125271507973793173074952312410655518063264137047179114856819320533117797762517835555323056060877053531270393304915627897821514176658717865229878313373704407445907692019669688479370466887773627442094059021245437843892640593084172643556764983818284108067878498643079540437117296491879991900811841834859895860713943316578927704603807843033661625879934806834323377286762728743757214145181434853518761974477092721743702402328009203132168418626115469548726969086656673647425338983086730349360481301287234491503918209544030163641862991389781492055665739696340680402351326418669097151481394357683301620977805728528208413619638502386122950420904191593468984475701977866680245676606169549633294566785556722248158857570162036372402105528317111885085142705115364361819215088940579452788640400317355180340639088431507478006344760160013161448511366552363205514480949579762867083614131566039819955644913361721858599164604425089334019585586521440736278543904661349961902564552401923878009833979205561745370444179313988460010818930354866299732494728637332536387922721784513721841307277099881124216655606075336359915065553105517588468648681331053805521327995309777223949417178406190517489094896724580868836150512131665829384265912273754705402798460268758865163853859104241696299677547906751919224055639336361913152625536486557577766129692939534894696379648543434340657489476469474326029801237028765829793803325304051439302336372694561953055764355356872107361598568734404778974493087767276826823275546145868910163873708851467486158405634332846775327635799728340273073879857157125871777034726018413375478598976623092580724556149187910304358333408425161978335533194593676700925657146050097873687952269615447535003351278908017096194099567941260913826811079826518269810415450321369038152024651222152753650989704595149515471006366287082204595227107830709179648536224628026170865606246609285675500761273291998877294886641135330450319484798727421781118633326399492095060785161016274767719211590758053087489468575270886628436116541292036890860613423871206788581063544269132194337544846479393035514973221966428127284165442443484807770783776986994596504876828650101482756626217221444387050278678209012337320189742114998154087330668788477196396530764684998313338323400284253061117559231947779963185429921518896650014383041718403758612545753111001334053916614516560185039284529818984836766894447611176551433075082411092626164740890921122542446219889204575778244563257774491540880929480824913521810527252466588775162868011504146773869124117396101626305271988690341264010795159972713029705055858861037977252828689656370683728805660057379493521599950869821328227962740426469363795615576611684625383324248739122766217715864128997421990702110544158825330178794713946331976171262378467234237004468528505736134333883630823000632622536604973716135290363877540570560143103022086808757149600714806773489748668630617288602499507633711395703268210672312866295048084499054977003634992364831551337100951848618098178180268751962574683006297029299949297533220855465491444832135905910267070131030606498379724883162787648866793399055860543109906341293422646292118021215684134466101322118469589587720401674814233754055603283026124909932156930301763649047263914631250824606505254081168056037428258098166540289291670081623204272910187098557427953936953275609657544768828043442632423953821149611581783361109620860152251090672641688301309460549645250850378509314453040415382497704026913918531259613296864930870230549146283773461502529539958352330985781501074530941280046681994155941274042534017116958179172047690215470275740685370173492951125518018578206721512525094152935948489172774357303148198438303762207512237498034212349353394164498324047765408444464919736860486997384724931565545852983087454588539106502900159515832060874349111766081326797552438134375992173096095493386309192179620968588306172049857210821104824482617716374706796898973175146054349228780533688650800350406300935093946686449185158204904165470815488226911940859054031218610628813514886477302207459362161109737745595973826512255684041562982501745615702538680146491738769359863078767077575245917450444971101484952170870367117538901129754432909347555120113214321769616349016345589151849021736569001427832198195667992151215237839432756703540170773655760589745305755964457449925518012068604533522972915968946525115630825779613192400213354076972792379165440201480938959721169196880346322421754869659330764189222860916708221467977797272459879718257419075711449308634177053873939780036673377256574014226745153756112157643680001223066098095660177891713337737772654476873528666483548160959975954614187468885736600245481608283513628465815326208181539904802062263350655700816559141476363747033409136810935571100464280758934442646709819695709157107155106193778383338672954295133841262479531591644669082377997568497415802794926177812261753100436354058976588314990260328577089250980989192029113788185488256925619876020122657881385829058995240317420217036795123594875735908660595874619627164265091460960072367215282256920285703432533507456340792087304478529245236658086523464156024090821143683735361185040116619741244737402394051724679948086155828242035098941517076084798590926399925422010267347898747191056357084577781495284430146158792648788521707119503604439392045224130134468128995990695800178462757580750675013022491898725315605533399536804515492121853053976220843628149877316456611329418089490369250691623208256544275017210551983165979176148118461941402784378114770667638137952329695598580166108241200960583180212350849995032975908876675475919873530783547560472092095233096682777458390121227353115023260172030646679502609603581308440191784721747283853586950188084909088989230206228857891200534254084930509464213959504607528282935801957831643600698852304314638923308215262916672286288023472629246216322345096295087040088050529438551004593278462304421177435736367475283944026302104429115029843907797543559775478019761757570288039545332621569790580056899377033868721014207254410060044187167441080850440501731839069620103789434071883795052294802112609928429997717489145510030826376513408478524189554563126919190099464793922040324995645377213719657382705321207936120541061484915374126143254103034877980320489787802404529854842405733447077286713133005253346361033944492243825409069417281659938773475851530348714199884924350587217051652171068019120526093392075317812122868915019269311550828215282345389195390370397379715356065422168265729426031301839668508662478332515125441506446510725418706178293082714422777469456616522460311225858908271025788601847782686333923942270905712650158371926641533435187285634721735023855574550404828963658286019719937152465579886375862120474222972826991161656163531161774463545145762294970604818118298123623021168931259336845319590978995761632107279844168371124852607639095469812914195516664188218180919018278981572975630272217179951450888356742361647046224946613884486242662471492043028786709152310212331841003202076626412297548556134420699257335154256222111391251839231413040459047273824364514658305083500535607776281532332893035484688346248793162681820167871915350164086486592484573359187167977275382433856212550279001642260154360352523004707258026729244589348060354881227432958578535017778538445234155168597354394667396818758037486197113718270818774298233029485341967927076007278055322116212127014741153436310298737316510593832824527472833376391673777866736496671848908390329841805090914363219159393262551907844285756221781462701060774705534668462928210863591663142617783607130890401470010098033070947305297221755821045746332270261156706599252754082609654498906288611172648326180520952967988306864104953002993844347017204341263816638958218615757397931798710925293680787550928913592928376849189499449373818867860580862759122820730820910453682461899278268405955596052490636917552937778319843805178646510898113652188203504888181392214138747112820810226958942331838514036540633281428614526240284188188851453703954238377585417077831924987843491838299410714458212071710193865507949010808033558000300143897845106798364945650711299925964530248967457445641584578040212186750844459796274266142341095441111644516657572428724182909508961420430580854707272713843529039230539997720903485940402748898296070110227418372253367472551746218768189563603522679282797566766162254173771181484310980890783834477361814015673686541172135271758742399497036650417193541093105599380985177648226842225011357308899288805394306177717524441958202089163998066145845362882815508919490650877386684313249586142246549993637035071629901899688915152849019185078560797880454025918742762570287009681630382082548697735293367503886323415937642347701071573975150692194478557650435150292576216285663788423573562783539173159298982126113508123066277315453783335806068898233751647865130281301656961653403679121520943988490789142026479133489671967182691503084139784235149225658595508186504391217593940017678069488202210472108728213219511510596419770529932052471910615305618354681295941541191562722478092811895941139117870368587216546061848600441664759942591576192735941337947007926305479259959831513155478810343116133576048948554452042588186647687480579457645451137847439441387578465555382435485014298142036554414974480417119157298105403159666109447808008631601985109075223384415047845867374929336298894867445994881099034964259812031087214890790608087120197811450305412170610104371342844607636466097065365372483972844509274106754085571399332148690022241208373187408964011095741604665457467749190058372765987361615655290296672214290242404313381459754978619908059458949522770241887624145839200013930060603658181034248957974887341200337954143603890412535347393412957744771892884150908721274799536484252984744433852325587235593284067440090672519803238043787535676628539202897066449554938749428209600690995116205638237355363759027410264180908806946304128782024004242625715674789385274699952429848766834157592470839046891475767363486613553808825032680381005563928934275521994932184451243077146621910966554218362490690038161635661282666008627195812627310334589779200469858490195255757969312050804900558530062852646853376510136140434190112698409848438043125458183552604131022880479170280277379799993418356387857106738594920366252986356787434764746612506324818322173447047411194824981526895240346101911352359866024217661616413071422310870541007980547384242142283151143005706247372191319090934019998014877337682838843683990076596504335910007958846340735043631774653724780610412771492188016499840138189050743357604971047555485046390933018881456966257303753638518006922557882299601844589238089961426377443993775436327571615781244865902312052251700919975787224138284981014402203365769577745549219336702569275755962229835355641270884957407730306683275939368794278773596582926271984685142694678864320947316914409751494178722445580938951682108897614954475293354892595370672924194928407455080510984174233604207676595259556924649787361819822451872494474273190942796570820968136435793748878656372445116823294506242885762317141898788898805398050310101497211856118496186831066474021954712325767934323350607946576109083890863761456501947516870989991398306121519021199172093840550252174294849233751142572792959855476555031408669721884817997476517354326899893463093078278729350693348201065896562150610565728904591747069462272180958573327688441602683418816209250024458339279903038868675106750944626895459400645075654001294049585265764356053344909595398885377135887497497710474357370942542283261271713217975410652805917835070265900958149773575216012875218471745466383370146892031832223374069353588705194195162942515407842319895590024169447553798482479674647645243880022738351186243638633317725080200350349905414768302512907351388417735439058409099318179439673996506785130045692005539139917720993994098202473903430484471882166301665313436499269594300837070134939100315702846604400988885568748091317782069023780398240580062816988562987249493917492055308073819587161717168330423213184151785239898272341794874324448452925354856425235708879111108874146578168998405856987425651973480244116733742689771069917337784765847621265520252038228073697895789722237502084526090686569407141690855368296828568056353907875567490762880423900619834924566783228363236144175301145194263303465785027329830385248320203272231191815056188419577111723855172391690342616285518629652281856779224000200219599727366641016433911145124658913467218712329371807951607134486536721185978196090018789566944389957218553803166824408076016371489701660405265528916179577966456577701373777160777519068936005843773825240322280448874256055747564779013467985152351176346356730127287484802353516014451996783225164134916930344877643175840917511098779952062369066840438550696551835394811787149770441931076079703736871073752442190789438855793639454744229365574662150691562605038944051192891446750884452056904233392848549691980601555605731577109293901405901146317261799773830824464289025612496830935315305644916984120475237881463424574681470272126590708317825174449091121282728900256702282193958301738763512861607367861395156676739123406005771181647890912014331425319421394116660224147177089207695237940687443428399079200109929044115586613381390803407377595361730800329413013488814401644031988881706992572744826237778826375172627242996602350287425236667281887093670748293710892268220927176179064745392358594882734390558265457736517918988215924900937798352717129068912991117350959884231811857740008246653986259302189968104348426472620325362597538803000499307126200970014185687175561235214645791615306205347714108226715357789967359754216419018986527990879655158480380054274475086533621575611657735188846076153060581773813323474434211471289360226875219104605539148809061535709964779552747814977290795470584022771025974241657280103746866615417830330521409338839794199564719146450974275394404865165225690119043853895686424455975121864204760018837503056712983640997082623018329894943238386969328630855860622680287237879132903531841462272964517598048602579614296350292311992200023096299766960418218165673271268624904827742860037231587892336893288745272562362376703167770446502381068509372090861709918023802018684643640492032308857356456714706115366068773681840469422413769241791429222067949918239570336129254517938956953058695139841854779495274393712509861606919943970066919409562901966560252364677008502033018501642103257685515179334483111629009669576885339758895243670316193858136521528527920124240932785845660614232767177180808096857020452352951543798183557640031553892429580595023956684641912629124886696638213709706232900716882121910322036223541490496711801191069408054371842945661939221921044412922886824128767838215519285516708629575371902705441364573976041482598719699449606144399869985374677900072046626633223573980137751074261844567758527334011299030998983417372207464419977984301151082961440307902878042228882086146242319584479218775634134577537801525347555445225729819107234083873682244914223604594987727983665195494714425091140803514145828417973628992317315601261372039505319572235564018358368380969158945640143429268806528163192006958731159863137751911475685420272661770011623499217571890395200723058876393062421112636140004553283589356491706417305964765210628722304318250652842721171362423735314829233835618276704311801960753178786760182681706907044629495812741947345463721163340924369943505831785029845363188653448062299293421837055169496935143649926279860374603564842612738637845398879238322503224318831190066241575386198227552856356055039309942146448440977614592141811035915093999595224522688735942040006210613870230285334002136773247427546282737146327035155305507447894846516893424227966802352802142146203244256363891128925936075244297277931727363310296617889970880683305250343766286455816225644144998166977987970003011182263306116753570929133427136888654371174263073295921484703091283152959782416449663848669991897986015313187749902268390669265718976300890191788996763200241696705876936869982616485331883855257626492641887778920847490362545724516801064138823377262088530890927419078610451691528858266790255145767557329123282560877420354487119852858681539311381250948172989582403519612994982433861828227279722963520649789225700896721843811713570536270088900030187327249193098995462448003099254583299014863249763188379969818513615668888776546036532059178759814681296787219809152417728496631995028217294149658996773131248548688160182174287512903704772036745533790814098920205193958238001014620693242312800596978516514520396123539471500995689620034477207913070462979990704064377761840760110230177262810058536694235623509489271828142182471868737689480048663278126098375947977500807045955956028612866110097395464947652242972027367340038593217149815758796158357595709342366075184870404114549401833151481004260414950705346398077922992139471784634522739672782791463983844480472205238075914525963556369077604276863863648044210037017061259808741660967411258100579671209021103387591157643361386594837886398756477549144172255080958863324817820070173562718712612556047026714242732455059138020619227172004133290264118046367567108840181673575576794065098506307368044947976814746816572397321643822875266454196747738471646385484138190649352422669673284751492576272669902235587228881071832485854676860482900221386166162349415774098633959722808777329876159901886574922877081275401320982144404022273391939204256864247942819612166316227477005427170638173629489253353080720009744288058823791973975039932982668702279133215878496821937901657469017164749768149642518040092323512054549959830597706499079967427832543515602041469332143847921511033124195964821780281878516399713458413713838723252423498678768287445961821488266221357697558792229739323283832301500707768512505055554734585176823314577672681665105177269822900862726474642182406768012151045834734937178694214192828618648702039128363945861305722170507882519794391682151941781767905437844752649577186275230023148549279680701342063337362359762359056867654556382532603066878611675322078759226565287859807634429214562206756372287272370458919827947294628973811900099892684333328997521767857979012348184739710659724049554327754997363791728931730129884412429380681306314885763849632599915367770856579184561761721288555964180252960471680091597028502168646693502313515677519784267284862641947802330347344523562906197320692176272534943835587965610135549084166466852325768095347269035731660760389314833379072100649787237185810393847666810945014943054014338602748261849197694764196811686205164672156926528033115802143210428666357709762366369390095944820085365876147117692917715827998749648900279323573383849880187315087253651023401400393541121927451427137361668160095710786432291246399519584301165136111793461495011183761552056109873218014612180135193813926392082283107912039075817253299839748844204109104646976668814818650391732766191446253516100263939175847031390604569693547213388819687625164654651033563972936168719896245524460473380402527339891537901562987341861102272237792175378699836513796699727690659981892773049827864084643547642027935833155846777347793985408592420553367882538634841502851761370947088937206734789257437166746171926609084628381118552127331082430274478908012964687819318435450728532979872501996998262372050093646699460601438121406211263317862826598895528483138676737908255722443459835698132240308510567227850447134443066218977216957207691551606656833646256967328789055146126229780566630249302433257182592612472443146644259125345454808489528091516883721944924598723503622608846105734222348892025059408350049915862443667157740399412614435614967261738920428687399373268377456827371097790211565779298103007214872582089488037558275921544589209966245079599367218784165025294316046247427333393783948997723942574851674430388982662958546613001020816792439199325198150065897825803112830630571746736503447899236730806547036547208216200713465498934861467550703661178638142006031081944574954155535678420391055343709484756308114957307829023563114360520730122277359925769165466111137406456278129938565720539353387912428834600892836145130669932264639874667307852651730951480857767247894582094927623760175195763726052319238567681703738993560333499207126723936540727664250812966319251303151654699459793336174239522654030655499012903596944039852381593254576594954414306441486244292787838852623459874516771536881994591499564153519666887791791010283937943817758278442087064782135965522906570696696221304773732649821150196506836530982020696573563404946971308661479990319254952525522516830961494167019155028494985803624977852943749893052324152631697835878820611680860595999460907426100624969344378858250394861042333931371941394753522275245152993893803056584099321954796130163111157025059348741290846250654496975380182122477888960905264687991101334753753670483508367235779189678655593295410213024587987025262966619984450086120614562098399021623487012160958184534962472828517362465490274147133276390694627336076789713519854218766521749764756708577932086014325823638102580647405455175986280637502597826702515429688381456164991707163341972402076624116745996237223914675163550457677743085814758324135517035898328264081260640006661434578657885260497495507072131604632893076961479952741179065949304248408391991687086630320218073473117109550508807791868322135009185589070960060488545760611257679931177929293576439401646280698080477091182247141618341893775186915542397366773907332458610580512212306409545300654922545686644396367533272040277172639434666541189516111239581012187200444541958158554128576784409291070349108962997204081691057048761714996081485633684750687603544854982404653893814668025534770855520997218115109729601792737511404090472376048899222763263841333990578037189286003457662241030463694089714011066118130087962930385724896805527458232736427137603875512610679224309160781420212909065564880197925208530300757312727222163396187503864431889725248033218318426910050826293767859319705669042266190861858458352075021915124310977769163358536949198894021325799573817083179042162762816338188627911853770259017939094342946768585988633548772572588213898613504624074694264026293303447347321643734201686744728255935774458032427366219856899176256191549106450959127088089330948871262306445171510874449654880668523421590441373653150757997392759229620539178318535198003717619734634274604311843404432344505510663555451873511327594958959144880416660617162758265534591931597636203441874791342382362045543676763688666608195270833033549495542030659699501378862309497997245547775334967451818968812208748879684246670562315177270209562190878778449471535079579277374820457686305819219999403372316694438529801754998635693545936906772491236395388457477570532405329157858080194010758549993803198730733501923392874567582163397324228828131516765678974383917561212401323917670654731746398705342898009913527300984074337271963125574878733352440936815550814362171207690356780773631185046367375979193044228855365562927921380918743685454542222092524162272965119079339286648026531471903064457519392633554200299626172868200118940150178248045575394852055733014016835447686716644084979662726478866078665625806895791144331118316633513452465543941654660216397265503327507781824234561468141915617538732428636737011379777794515980120131386934549794834409593328296066759452584996944452972648043997667818926202389411997548506322288576867949716216284663124815132139958543127595547847083524656353151715459989935192511118939508496676704164045079281479216319264371345817886154652515662353379950292905225543635500403938929932321136681319861809832880716182921890817933849893459024685633804167656134020021471555352217658003528450340032449348626118089251744915219292813596839543479578678833477102282037889952359331132805935182035857793293339812452122651327375379175628012541627004450115879837604241950534931779678689533105875669127736041908459442289047578970926426660137813380952255457923498436948787057964300181611740714603831158190461700623740005799500023653163459092558510602102669693776160382410270723699696868737795408378474090512585605800761918102376428511266215493564867077959337208602164226002825604365119310389488897337214236978857640664146905943664338593048767326446389880826144159605097050091355289797917999341129404298646968527506020415447812752996897128111630724084693731483456640912021102108516078962869837836140218664112870569802585390706156500352790635590194955259481084425396187174791573588100546192225436930899073509082989648717023406224090517082721345077920196029541656471701960408950358705152977531277140716387889417624920459733424195855475932064384501572721565855830032350833411401276795140636676124293023224476076115700487872164351050557130167160218511154940463456448884444416640466327148245638578034468138625716451072711893013892872471839375938464644644435446592694106539826898730277133143965568671541887898235128909539722841504877595423974997834492261233979456727189849949686407602451034082110292646600843144406016930592055941922776089019063433246972198044669426796537423712648476572502425941276736337298943554357876184230069192946606575209969425733791688106956659984632827649293300838562410868119943909211504358185323206003894861604089089906795970702911388141171030051482840595900896099963609674705153393357163867818743114376359944464360964420136262489090182600479499718317746836801607707917946814575611649127521825346908650099989850964498570974970581624119849757356775499205694896304901271496570891637221440178588008553787824196935038362368434755216009018991841172370381083549430736847586554126437540978377447784359780959278515334723930975712609336919343833673561795368918433920739744275853205267193854871690767738876510190191503286440088490872253686884909753902570089402341752283949751537638737144196444975147536155731336244432336706056179026730823146338455538679210492386371154242970722366104261933591721461657211848920247382582189743596806024969582866754370237647624250015846189747985418981338301977855974898219229158887604146555538250800585588945906311123334459128433286307982082000645881614913945490684475263511763645439433310675435093763126784964091820835559584643632332954325582438149870188536391174031678689259563945268940752617574946447072347837430555442556037590077394979404277031642873466805739190548018453980432068838631609418739339259109703330996987437741189163850347383245808633863635485378610238223420324119986442344940658697623819084048395685272718970338976191947184845441982789020920013954855395203790970874272105391010091757429886512530824053409146602419519025823570846646265229800678859223608989912405833864544883455714011483965781356914274111510723592733307309779654976315108102865263002615533447477342379075650787879686897706454113143837943255567558954142323997062776489309878286372544899539485750021301447872935330970468612989720795653471236497169214372757818661110509051263202609638823771319371870407290671572439725376785047374708561959610747410555634883595089785542731093863837007632575145683046485368556537289448548460878292744441292628888164987742863553388484108807471797985395110731603489279196434876278196100253456048661647734510654702033752729118226127965801631004177520933967925342139286428138234529635067783561380995280599853917872798700277260508303284987280102327605658532077903485837437389684822080152095633036862788751213299447160651788255640309085976526352333993259360682589219901658511761667108023969617458002051223341014724449821086941443525464507887488142466314286632793059664583296761741138675918641648093996447612532011201569882310295274300546838743334809104897558705682471887351663459538817180660166961973416671459638732706121322066557631282195822938219268419767895554250773640310965599907102940960161857702573451143550456004688015775230017045142875630751949547001710181318806132608140600447293476401400601529410836678486034297075799810922546602687424443348239939524147075482659852305520662548697911513850222492526319634987873152210475029675857097024801400275335587590103488956876269854078617913177322098449684388668259139288760290906061996582290157248653023165554818018080520383734173545825199208883133028894714494962528242306740749246048725538676862879578104690184174138696304537094041466312237232488638701073078960718262108391697173549542942020540153200751596790950004528548002879047973786979476140864778848724298527888151502775888700012068707772996668803486812056700336589648836629152179484168985866969263304878297815705507400281351139626527486845573132595683866493901045472141051448064968761027932531663365485339511164832816237787941118296684793584765645847418846795388581782918860396965090543547979338110000756076719719481640754900777649897774352805407380516477649455046068310969168840515501239796141348405131350460684641846410276685029080369577161842438395887225439242672450433659918202938236319592389957509621765051785535938488870956056485242953072849781863879101712108595269372150963200259770501670493437451551385797261906922450183476144300012842995351361657699794652662202511649272382880218353871629619884059797096418905224058469719598356402401958976987229388015831403599681686146659459924880679834331236836269171562921884422243508086173002667137818350709302431458284469299076457870768501940562290194861328669625546609667446558851418010293474270633191348543548716317459190807630929822591722788591678826970995436868745684053220597097613770235389273262396445731156248500601501287138238058760279773701730945608929737851164468712385814111566516996835280995188407276226473401947690211065386435070495744143966212014250954129085217790438736520885565265071786459454013031352759828862456544683300963624855637086506361767293803357290242636271063220894302604907590216335319152646606920414306238909493157254074583075010033460406665136591873830265243602479464123010328477193687326278754569254691609912694195890970011562488971140224410089860089567523168710084657802833100075684744728583278177789609241347159343540633639082889557679797502151576711379727384007146731842429571504465317492041189929792104784942872774788803698630097873944567371413698329478031561859698586853407025727926790574101103376621355792671530365492225972093846128598279571303059654669222576714548079358078375690494463678027919861573872785032064436634158735827434710527710662191334602024201601375449404828194190381931780386864404262160594408175857336547150310559058698238300028628509883458618669942992917296746797714288821648491153974491798984813838058428129578675570664598343465091966300966337413664924256733023119348214130767023677292710439407113089888202177123901247321008466836328161645819660062841592696966235316472671869317738898525158005476398651945546919708832270750419468307419486291321937324676343426720861217802062347771713688643851612075795209246883830391735482857704801577113839199791771507553922078077785552820289206289244895802660897360669289336165986803144258258959995871742248393915814240571378986890687047311525901984723520730418006723838337956830924543861242177595619237046122550851196822695144143514399917806004129076385791243615930785846323834845191196655704105045028184687221033748868106426135733832933666374434772129460985426715372437446936147448431341617289709490329426384169151954204676276622440222594418550520727016700538015320049268970270425946835852872848921047888694220385452026477534537807845522278621755999544437881502136945232480325324010693700217966141448854306067570654670591940304565958241355820831478332743578242001460188189620737603289251241841351293647414000149007658362138801903375616438191658775675197322164759377093998684484244911730140245564366310533198764596593488637120908003865714896108993460536076603947321745039416929733288569831274439239629893272358008385090225620141474293447367010924237034157324539746671726408339314670237751441258220511295144267687703790950134159597633981659121926489810564172211618957188894855047393873811105702713281841163742673749778727109659768797930941653467387292199721021288669561518860958461137265883314435587738076836594794537420018868913589962443674321930073172868802137314794374978722189029782408986732338767841700036906064712462366402771090823637532474735312911446087567726775916056871436071069492093813365244095859718510719447206161318730467889471785063647967318463543024028463542413160095606716046831058585696184739856696349608992526052082554782244105702639777552324506412370193643067876105450090112813533989118530478097796405890855806948667726883236085846094504267692652995693029235798924251304084224788008387681839174241238143325020105503736655980194729559138486834126806595000126326446108574315740778181963507821869330984553818601326167261821183443227982954590444077386998150215167949453354304209820694219692095202296155900303929448807905279294559613402764980956841537039509426729321834257645537113998138352270770134380677777854740471468651359849386583233073473854399651163549007618388015818958024048319274996613866635486362114085845100166075776172611330878587277747886604359039577144307174775660895196120893367895850772751945366796772189704314611409139659345141372871741072952424917239810364248838776610585966509392049476665769394813262357672547076818206031013103559915765571227809623856146954211422875460293580154418625748440386415915719359121217570671596702747027757686063489537533272493475762737650708110339989219084377517339734315028693166137591892844565912024082400529228006227536057821647650818173306911039403799914702160527692665662850199864740344061917899031457661745195320997418842186649550965717002604288316115845877770816109530157640869284569661361379675343726899048470320087715070530585047120186167971036286393839911385605747484653794283790719409084722827494089583283127063433692024556279527680660123188696312743104844065840090978926515267782189656293068671167599009496331025840420165764629914576794925224057304864123023731104003052368320197689569602857098413768410926820282048084112226007722356543302631622591477448896921861711181858432467043499853929324672732454040440891092053426745468772637932568084209322487620405569605633764781643694951041246823165307780578319086779845414431683530586114409307308191728860086744724877072869523636202492700623040581806224023913819172884941503481372183641257330539420527727723003936706911412423095090926173597184112821728078400753364998648629015374380182969363033162147372479101132822160442508448984748472177239986319673344972997923859830134841947458578448859739659791434875577066447833561896386183464075418388292838751745722239365470196139291128712400772353398123989473184716288507166856854375114004517748155114729007879451338982090164129983381660810818988331305819140026649405610568658582020338870605546090088352673178196180503779692322588085040935639153841222745671227378159194783242144300284123675293731607326291753733903938094159533949070715470082195124128935116970200718031048329926431654484598400144638665669235030226594519939686186709520321924142899323463230548384654701066621046134927586006249787948704260146913784254238157216245421447030284432648434157821222447218832219794167747540938745904184944804983279106648834203744959974182013168813215146071024863511604819683352867243574020147455446672270465496038348806278662114024979106627268169355450126104647174721956610769557122434206248713693772031838879592962688370477117347301969376418705149778179674241486203673658882290076081438869421018993745170382192225173718636642655871724235521588752526495841183845070743910474347667123373860381401855001310177961150291968384523195816372337063928956541534014453651537800758239934643897877302094316251010073916521561489377175240905099251534988576878672905808033406073426949774119920873977685968009263313503303281122861182026948375989096310589232617955749760182452133222051359822595419945657359552369440889693038451559039126635301525605741056819874887241484473371317270573950608338427832720090532042594865679964706904982999880072801936759761576254988716376305636680750138297459236819792117552265415227821412854507907550327250141960301940630166179464534048288872243497871819237533972245033012109589508299423537135539165131445383539311060762894204406610284621448309599332056964929218983557462029547076670922301873493989686075304906706223096243416604544278808759777478309183313940101018268807699916111712180667542291373636643628012600451666194353033157344361297598982875535302846939057326543702748816230846076214659670414459005442711386296305085263541369639714325667467153082904936533983670805277600580538510567670760124477799266682680555792114670755208674838087606323364168666885102974424447906681056105255967378998809926970771003884916115689915956744256991859583144130982163450508391965605514046485358450960360324306444006102185559288149869645605846503151509750190986317699169826791984874999805238125897395688668787593321823273205418091361593984728752554515816402663740906579828740630834323126793762576704653194783614823444943133547546678933649547096306513521632724756451586573533290601149625039306465110309050353873295863489304794255348968682710107883176050673573287020697279327502080784751825240951995552537262858626265004181618348471359526075848512785562436514769200204680031536630088221712248509947475804904029213728194927945707553350167394241298021413856222568658387664951576004377970634802133595720479387481668541281603791993759276179132570575014377652532459655027661505706778648774072530327497608049273962050997667993161551767052734866089594022368167715626083708564556594932092059054926472157574932539220305855121069594436628105835457988290707633483961260649425587141431522913855961202836370198684644376865726732045919333471909565835764592299131483475812724225918181400313814487066635949609398182671408478695775649465495354250610092086012629037087161646544330202467738005132258474300775752383895320530861982412134605975940954194249906059430439324514396312907507756911236901839557691248595366164635810217812943355743939353231650759713769699673223421888908840165610444675763210891750071819463445592196855089512488351448271863080458816637455871094477645614955351634403907022076166126712196164650508720161027008050927747503331290533815577632399490367333409879670531373720633595863133190699384412238698867871834333139391478353220800701528148482604554211620253748876880718168281190534741267535426366077581112516649998963289303527049021498443588671482907021492405650191864174642727538790023297802140123281941109833467505567515687434526475081840070240017875813480755263976515449911564679241540183039805943018666060533799314620168436645150898003417217051298265585925383147609067230661407703295033270646808594191315217929246925727387027750367601542071459034695953593412762653536207935023272910801041148244285043136419978416952197997078563880116661555914573691723549112250035834359913803391145760578697144434753295683155596637484537375400343879202996793267371128664497368666622769599655558365265051918203780449088098683804789160851406954853440424319428462339739882537826164912822776486419521514758803659291544814613260081112200499428386885971477968843166752492228959649451530447713308203062159220466319554666736007490316860490908318823509875727197503796305085609580528028777151817135448839073580182962788104257760135987783166911855553557206364668852311527334260394893760944409370578810917587320830474371894721621780537962103516383731721144845208806196744039182525662717349896654895208694195843897753719587311996584027595712158620287279486976094807607365468448014426958346552642236988297081995739775745415160859398434668618199831384947744660476306726391298584054166542187596553997371684615700000338844717314244240010445247788694697696064023499908133164410155035090004447744639487525697062107515251133344090658288683857393308729797076920803421018998968210397603685214562126050357636144679098368204322379866838706417432120447548534606983641861535051373448013006612109350341744956418626378375266554101021656566816835709969312190700178970014556911023386994599415493915203186154149911803674426632265176484023223516826467775385316108727810514798644501161773551604927972025958858071181594869980761104266980108135524409924793870878421384331567659249942641630832134750373335079246535659345551346924432809278625584889706451485022626723707278020815639849019612892416855861625874517777968602581270193677519698718754595958143286273623584338029770089682028999856518457042083401822648306202854287935551461750414510012604840878377053536192167956142728091212621246079760032522945369809227895494292520947782620192295535505831827398610342065630053625169450186084267073622467467714509879637156342608644716695254291090972511345221059914661833013268690501974380181796391373750870761555637374344029553470080017358466410315360576560897454370534909294648320308758363344074223051711364906179094752328855285191439074706724307346338966746480507803297078786304865982789779075536745776490097513690083608784544701062834174549523743837204248701992008951422930464507402892775538567724440396166427200617872683004597688916972987988466781187397534985194489777254485082206305103954335498879384198897156396088751844579176289239518080866908628476998539315934569039398420538165080737297156441424180587214289171586487626833514395567968523275372034593040279095856852988687811032138712829718460291295989878484167923717075218437983367875737332577352582916787450460687093352335857668072311594584444996299341085147973143130863926527194252524145789510329688901741077019746778326060552034768466819117209998933196688543429722889788476853256041311124691172904624152163094612081526390801627306354879087746564080136433528697781936590991537591614017696666818430151603464894722806226591860289449674822621260135869362387272003944401562085716102315619400761874558129436850846565155695674632672814920368846062138015663469382264706899381500702493916064944251567568305145681928861976643405909787315300228822022805086716563975309099509055765317012116021637371126405442444333621682331068215391978132288392252627849827075846551741227674398926542357368456593942042150685427441698669375229846055318357111244885211747401979972401707753376455147769959077878407135520160531740025559454935651210426014765709504261521091192882215772160550802524230739749952332717306811915558335368818777659563000701062069687100075414608853440560650193074381368083999328629321515253529295786195435163205419975441890039976739990050186281688039001060492937029662497085186317837415820453873534458880325122990969463743484942287713633116400112401708871374514292992282649658525758140428565828115546641375560557192346664182094886262699512446151663574606563103187972781833886937899831553731717196375666135111868175261542295446946731214762628022440643738196547596004769694488729546423659938620233219949912506188860727001682410550573203729439450396468318488721768339301237276049266350128906525696438740058791826366771004334262936955861934861977427890817568659262647979191497538168794065536794821393700601495481003605728250803607074480102448875272145528617772242325906771244213577974838356300111602774158867716372058530374128177778052027817181549627469383465506462599414300999511656906139139144341716113234880190676588793398040632009012229966541899107538559146401826580592095744918284772638649140558314854162368585336493877671388927660643344339031455515991190330522915740403562518689869481452214488464101455682515208605028188149752918804000402646012916925544889407894748194443866883975359931337299728718259986441878777244481578107679188493782962994495016139005810087294822413396537357933095185034246765769807646369123979074934672021585561169972696512690116722390433058417222678054300835519436375081861279077796753554861913554237621366276736931584724069060964055532784088623499405231006090691754981462883665591362335177436521789729659042943569106641586447857303651255707031481259973666016998785736185745782239203198635424485049551920833266744659571795140249412819889281237646483550550266169302318172313063655586982513748713625310253870610556542566866545274313912564708049586506191185416681979898554669131114293342493701909818742607982241777723825754337791344013792770252956197853477015047515196213635401959635763447401549798139644529881174128491054893493088003455625480934710336710051151914063760211883307302152327312671964089155010458945986935278030460408072982429149969921818791948976850246184744521971729491477830443973360261433129790599970201075115848869063416576867330767282736486374926435863783986115238714170799457810253964368112915427772843690318315624370377610351970828617005805795209068001063019869804802467235195022277959496101409022018924978427908777457259836402205128619606682117400488574653393321673738124884519408815125930570431873513476833104516116613611920241387230718077867318782146156274644095597933584659996756464938196882988722174442732938579514404360620698429247650365554250972220303143854240072864544149184102525162882321954825899610762213085967001888417570572751566206702279171964493669440115944616891685197090066303232101269076055542758619137174539818895819032477685138087005453787093139925764338842933637519054234431123882361405273428546280331534578362484309456003934854363469307910576438731558679961391441444537456662773057871608072158744133386553790306293167014513566119837770404344797193053674619081093010054335677182388694072489539846571016399530856203482592086936879947205676683255105809429756453657878058181632462077778864820677757739130520180104514914495985748533917096572702585650647883199478254389091442207253527867339743261854303759756795517053474459883359221508062422179963153077761917517709716996628374447794315697313875316196424014468564760140923363380841897347365873108898882017728112741473749472408326685212496141047443127565801413342583661539074508639755611907696980821430705890901935044740408729494392515247131384503619244208711888133994611724917407794562980147358590500119459747682845994622383236451537703938682197328936910060832664562831732969927409391305374002740488000048534048122510800331010381899925573063770128548762908803532536871417575085772424972146692071557603149252473396786722482757736639116029697261208931339278035261909436152872265133030499049609353819156615073400124757764601342913556062293069203842678680926680103460417232722352509460482420886764826941726948001046153721771856005880109460525135717676717059053280242593749595506505547052486986317374825368417152040898640146238150950576573541426836946786427920921163260648687707509864426871784283847067757998370943368552647625785357349259324603560227975003276866050206338474167631281679070516749408212034460778898466906429442783767544717600919581147633260498330803025070236636109633826461757071929431033291801334764509354491119807127241104146691050297606215729123794905711939235580343604985518249682270765897786253755525707603689261210989746543549758853440180791797904792287712933781451335047800828896697686904949678881634517135011831476140934417775407279879360197837919037495811390258848770539674350470448156117221061756501937777283308791792773874833279336725444017585787009929613600343438325139717543405157741874641586192638851679086250321653726984674032660358345770667713945278425404090384085220007102051060122772690466943560958443095048019008469718867601177052096504131489366651683594480795291998630907137250146315502680177066719510139139785030032819415496033479524284400982978004968354117816593387412770034101705119586312974338371714276365891238668859033147935045547420951191885052271839505851361305923595506378125959617655330035235817673206659999404980824787302385579211944916277227989324412113793715757642566918182446263077626761804975049112141407410208169306800946818318958832100782330298591855621296421743174792186017615812977217220281608061927801154565055421300323664284366926175465258100266631258340358909782274299315167517550829628431130083838498852082441049016337549404915852914683452025322138151563333350010076034503092786130107892271158995775951691093472026599660949955189483549671605313332562940620068151285910303613565119593345211900334571388286742831659545852670224564946570272459775099483887715122836546917912869666673901592931613750070352458422068703250088428019788009230005755742810308968153390174325275554268367296022878212605462378231703974072406775269963522007929722945048549070106177058317634634395075334715659142035577690095105496694018960204066503881444070876206808712058488161641018432661187136109939204889230984702348159315757434973612670519292983630714710375333353539131688222188385566405584546258027189809075608069059503254767729587745065034330013407895058641189245035196469361244728098401278667326147736798738466669590186232110121431958696572395729482761219041153490648150922419849711530596486893112649739666168649629479485885530406361736498481121906335767750435496892836072899623739222303882253180133337999208707402619456927988795761632660330106702676195422990308251440845323932688527424067678815685571496864481303300022074352591350604303178796748270361135283500616612691962194027260323932283663053586268935972344873514077824238860336439850857065061402288918274115207151285163465411824957675190535190063258687682284763140431051527592795202693232771191220068066365483355822485863098911298906469482912880869321376187827581417256126393865572845347315423064818537232700071176981825610314887561539553496020529230168535888196019676373783257269456505334631976189036284023070390663091798015377852972029905513736562511007343025054198998176049948169702813494635759869292213466994367188115929473913325604320397485106141241670110822635945307547511869765858616591990677178170844598294580003962847250224885764047176046341839161504032002403154787941856642155084963898196444299824215330508752045212086458514529196173523948368040767957236098660842946205156538595925445451932728223222178254865951517881757453094564006320223274546798081895897708092308306930828384308378610962132771051071604152059637621696579859843878960360082160858720957364476318585296270338912740664993193856587912677728881127200443679195077478793080487886635603997771831517327880262518662703473131794813606883098868254020449683963496417630094077202458405182293663246441489288466477455200144647965700069723037215094939079237170288558800215945751454116593178509170738260545742989946118536817321074727230888500860577771708107199180028429201245745729565985561089149856195773016781578857336150385383337556753926518788900332730797529477910602685553883450739793496271056136051826644401103946494070522693530817023193504419787529123684868343444688384711678803152025863549111457546212807007157170555808150966268446418028824039368370699584672852890040180003622188230503631852987112641391773100901983085654431552830994794722162509421710579958650902607165729340809032027575854401224572098088873227439323540882799399899046945138560286489586296043971296668554596858302162385990192179501270796921229752855298504351755231881400726653865784876793689381425754161341781000143106327304949878200431697794137470665457120813049439051838567136750706871746061584081005850595458612014736919033797752742650514764969127305667583376808831255615263412878527222151599743973752417930943630556924756787038990422398059788343669164010880124778337602722967818940233700123239950550619118844091869863392754808683446751910389104725795784274811950146150501621863526039908787926553683521530344677024520732513707089167338053487894796170196107803542534498533806146916915949376399095151058696384838825653952941685430628254230325543347206595140063931022817736739539197699566141791749069887454265793476486924310660356090390766424182563060420906333668362787678265649710784005395936286900551532607214949617667686013113852056857453999657219817064035551765822816072136882403767033766128167977403908897424746510848924595542567340368983268006352468847091906120648486496214638842908586582783731010601914964389065039468716866542914490252471962433656223351314099324634759956921257494473204258781109608011576936544332563819570338567342396725282785296684210859203698505424556135626698913833614075287181775417138907940748182578954913416049217230015191974299929854029537273182417926608973958837861689085588990810278211424379674337264273895432995474801385614823358750521705928679867273475880588053091841986218282705439597403357200037132974289418805255497392687716288544124748544972850530910472032988695719755507578411994665355494788995440478578353235413750650525936461933444100591526736073681011662378501486176808030305304953429371202134755607851049505939167497853789964033608216084030613830630550514972849921720267295720513935112549914266805038786204507879124378728295918740479501140936770546905561120244789228777013080171010923014283766209115961244632456149583566349877478368214878092612480317454671489058413578536903070749421654517017580123857875064239964042150645518037946163910269867447501661379124830442430211325519615115708691117510069407451849453680803307146580432420474311301446979284477324954069143968739557442229023761150470659379848069645493804030680584627457629778681502204116862446959240448390664546574958966414546569885331928933069628623229605043110527844111886251159763094409219983501921680677776628743175425033734966504415629349603700273804850438401335992098427291480144653568540690549494512370695826616553436955328243974129624387995222780372749903368178672264493233619595752672783745211808987772768843360692279106090759340970671839479210452505512275275936064274113786292911100807730598095750063300959551992382252869751296337575381391064821442642706485016863601882958511215505868999104243676193700355518676024913230736735497023163643128962703782694372912910996796532611121700812718319513543439018052590063118029524497561922987209059172798984281431164685953702080262799239005140856365298994805091666499249435687066929693112842901413019898159294449732210396023635292559056387009505748303125546929527311697434578057862973174589414068716527187668473424361365770665537690532062885008132006688191830878085461219138456495551340764393252929194843641014707986115539139002141510105770131149005043357427390576554461193040821847305034309194805620705272651891582315508050587656992009563636702320903624302300212127039898898077155440172020333789647531300401321904861277298088753325424062034146799264378930074079463660226729169368236149688579601386238178050867223679110593266649933331959781668773746963443749657335653917548831856771434094564172434383994006738012461575382105571007446560357488312126414753847013072770278472919615614612522865941106409892675007894518848711516469212227977317953479651638376916428476133935212015857633609391508417248112607277781108889108588584903346778545102622910207752651768628818237403852823741363575372322468866931868648089880582032302921137171941756002377425828037446784118248709267578722541904440297012399391331556807980643467986184631429556697848141877828130335826954239427991710226800032016390157317081594933704210344575638804954131381722312658000901079892822134735659530000748991619394352817031143559295006846146444086827007451999365250672986270547349506144036958674272057785346219054601104061847612311100418274743930873571497314372211885850917260352239204056810067154605088942698677927263047199964105443823305802701180891992947468841487235426852302095002057053091924022138575759023595141325886225375065830652444853549688541403745227613197216136055991321498858451915077265902383156082328459648090649302384907935946947735269337455438006221070804063015426788329338191448903957508158734232218886575633452101135118163449006551155517041277840216107985585839319005926946795123584786083965569206245273249967258491962039727666972042527899373240513837756211974759169987156232438523971571273001542762998460179024272386299449700748253066436669141609056519426179014582778543177507426644921291602197344897598133318389840274502995111917018123213024847162981316256993211853679742372628838862415227106360862648224138508878195388760474929860250617511900028830293296294176552087981510616465446757074350012034733477288978235679003738137415842671656491147018877049058302707481072911015670183150604078523250604347926891528995539639975060480301147132767634597002277256627585696713146426882024163243133605190504450107336997751444962991691442904561137663347292438531011425446490020969543457448885363836749833470453670025158783581805893723206993189497367356030333011527924859060969074728512093865572998209263202135751381876647142164485583938162586312216877918849510761009029870812554980392047342516213767040381928247105083711361914685517875080384586178110456377706901889978888923306864096368884838538641374643349070224849487225289330101030293874443064133723269024496262638435585793276100685624350789572242722665172544807091511458781116374547336220037302500769936716893578794521796091147443401305091582299088290486675900750520486509437492472705670273129485298969846079336412692715297138726918966012374435003328353401772984347029046438904536022280308464079474173480689080859676279851457273662496125928289718955518950968143647438298926223347932096463705658430268998084729691871396793339195339885026735254920772622141021536711478957521273980668851452255492643927115110590280159876523637943451398602032026223696058437667100740405975901635777258297272638658636644678044722875240608262791717743842952784796985719872684396871499266482222879628286220800256625421966778807793523266171713171138454183861003312688636484387588754160352758110137377052193518930619963227738840015138830887286541188520172758636018497839739774003011471691280735318214649356633823973117411191576152172049819744180174935700304627273926475774999088606226533877795046331521481581166486368026031569485605408015092643096458596318342905363376907617361545267061617359974189361878964673093610974105033091673405088806506029636664546413955330689844449745130677576996744474713558685753415273215865874347741433372803995923266042038353202255913102889886219420610159551867695100234593278852153804923864652303042862968388387468272516959544680439288614022143827822872952419988801092133036933341772269643074352964956365331864742692858695731471438042355782990827981318964404024728871813524394362115780876579625251832573659548981438595139489370635544405643448494100937495121036908788275027085963199051610573958428275630268601226030310098599604474339958948563459976279037412319275961789809819678250093931155275774999828333691857365491941233578557492131866297735629495000386775156717827272293270599359659161356502464368858216895037856060088989493895090718265465158867186323820086313791865614126471821132953095329516749559049682427613443214020327259003452148524165237804312694652959757611016204247558059608976382685378001366422798602450581214637541724531274745337582729682235999073085922684630876484276280136446972080425320589784552287779212462389451206589399747084254055215455506291492491066793026971969100658198214380023864171504890952472199793949199105460147346258303565515626743374877596044837327035139697897095293755192647472735880383051033776201302338595843921683821207814967487975479520306747842862960716818798215663177089195740050120255783112028616042815021038934751701574099621757316328101944549087749771485064785386985827603406055230403135149550965145823003682050766799973081629140076709086651008768121648708950969927148129189602760546521781519714636376631676288617972190406297688932917629423474711894692844151217316781239120936080481103505593207493842174940122542934428919347676068132625394971731478933262643884043161694601809062305281394254241140789346249691084827244713995821361141727852678746218391818197901116718305861865838980246024545290574071701171216624774529994685818498805583224141849224197076751282638057273328108697030834911755360698674230146067926661891390233588300204887881880527254909665952786312338802131593346168642013825400812740465997303988215135487235499600814910380574021879963724406306654595027756884849026778097654766101262260492973589486637751703701810161232391789977577657111411158582065731690715281540376664370363373458352659560282202742510612724238241756686518575549033323598914381487092216047679670175478631208484125617225503939744349554879197061713421384619040673703581622710448165268826957148598835826908960665896118052729433484079151317180197031576372178919181928788612447444394567085561721092965778633670440651173234284445624138950718130097290822807366478756539065639340153887951844747597526291206241723567895088944648148266739781039647688428750061390345120440018095490732964916519988396252736105645471642589481340673816998486275573088787064656899750219427731337381216487672030837870865383529217723097407804749155496456070577054363715646054688914862771246818541671747552748937233312464623554161036731992587021050263488918097702606135613414119816198342752854139013339194962485188425821081959861714839044233275936211606025686141131963948176516753819484936020005740738816695971098802581543381460565669001404350756235407374286124007569907388998658330538363998890509754031962469946483333063824220602222271871050256544651313426792012445403384682838203142951568667152515417985978633996657080166130948506226011151974385137750169179247814273518002791548574333252833153820872324194728267581963740555224949195361017328949885163359963675801497869218527202315918183515014030911015929441062554304783922578785891501749991423097830979289798841526199861056290513985395217830190390408459134814632325266525624518224718257679365950352083459827974798630338608760416067727418605736694501717174273362054422070737645764166748981874571105026139292617768809455276377695924914685312374392249265721119907559534085427856637535411981675575891991917990398418470861676584005357464808741433514955219190194004951239809822582797350067456290619603631072078615479736358903772611821140012680394089919134611195701750906331352668889406941654203441438149860394880263529173398467184347076825994172805350272305920774596161126247211463947736735715995485907315561738384575370994964456529921838288389825579467621204157645323883661600668245121821009717499611556359511105519022674931904087138683569476943913791821780925532666748554132127543182923833670530971679883794882680072461712301132527911288491788781197661969683391824651923047235423243746094275608446482760363519687937821026444848966873511100616756843321570322715761885497788784756619589344917919186321428586671874270240806490274526852672844654152476404107942533943509657026875553419835034289214401701008701993320558870287123147253168854507103437105823867226767383029129739171951304696515611785418772906503836536368890104694259006337680216553841343088192913099803612454852480409572797013908859648731342124042169653554789177305768309706618426311172843784295780659105301789587944839554610148968709468584279565165646853379750334010811450757953840802518301370442665990809557525072120719058341845171149666201654216181655101943953178227157104784044793863216863677230857434906247005328934691737980335072239951495654482280377970017013261822579778469333708296891946144240650262882076983209713993357235077631376907817811167981074876035952271629210403473317768739588087792932993248982702081514527518396491348294713415212826882128037440900080434976025079205177325382109688149601244618631364985169930980044409996475432286385764116909157662793787202748154273208671936080917493684274970807606072922009253341935144438367862613396164123295685360128600456660250205239702470241317520161115085285971730083238166490448949478073134565886065790568831677714751311225076036664309922305925453451766584268674381878800140893545851955926456107363977508752699051053201105665984248396774770784321282961867919472357599760128301043358891687579226861176845771527689299733339005914016257302534682965706069074541889585500531390933992721997511745570057011750663965649602412096658965394843931457265690444961833938775122444926916099029007258733830666138019479631188314922335415757596029071763656404539567221733827676494443068449771194733591313547294715348102211022345216329633716606028093808945134431030445619600778556696970434987139734769402067812055221052163195428828692125509954445126179973505622303518960385120310169269525620649285203684534953152132870471811749550392411075116546331514138756431803587189387275963149367303974360667245537071475242929587433947422446334052260629739410297677478399240024447060099031920066272061370900822239884362488999801520910656549412053398174661341912584758901738789312783789985828187352716234229307950043577478294460491466532159302481930949836279011986450166643487659640516537704836530437958592332187030869382434855325249056737747015749967015533235363763881692236178609651716812216290984949134503327694997525999891222791559819924067361973853698208043580340955291129779726468604062432134559259030158455644289257174726286205014270665538155628421188169545929547224422760806577536818725027987266218122327292074590285602794453705207064011902373283406086126053440611520971985126338961047964129661982836006453239867530456902802931475376442492116970425110867263035823275494475785790984325463029510275402138817282068146097571282614465721193185931532154595477956115561595297914918674972328227416624736649564529189964811769993629023008981152636626887028058287213103808135410279740461814478049295894847420278173577475833684866169690539650494277799050785301597936603824713187529121431903969111381138247924376665739303207352986002115282923914139241844116658219386057569852464271602422428956655757776110911832705225125415211691050016508339855692048430224310011575718655770857498810575335081128314716074246473512059484960983016200317278516573075623963718328619698750626736931633160032198718402878840345376234744516220592249720229356617621789531194895833162524451023596454415679805368934443225743719976282544598084854637425175287042757141820921740606705323209871430732069774000117029314261677797161629477125772058523368208045412383159447763096942516169123758767039521181966323008299768559919806959798826526770251184857415729628782185052759163295462661770112778965448200247671479024900863140359762746850652207105883587298435395373720036428702510821444650143197218027582754489849628487480787202504812243040117468250546716921179457009628803941290951188103504290672966129953118077331820643708445285279939595123400089589264643538398582595542742494809266960223679713617090227607596717204708309013585457946847443857702717204896673905397006171852692627904960882398292418852144734933335191103409255523780627119482396727360578490167652200550518481548343054491933750746956567043874775697308802177503445199854478910454253949754847843311817565694207443536804729092732881158286376080983468942564851013477709379357003028583801709293388980977774843093748093027692844508971920584759838058282574768658751292794505932629612022466366500789298972220094869337977663758458792938681203416422437581772220524848923590909009984792959259740696814913617346967209209773838764255814469193899999738569009678532481351898828907070280915001544544257947092248523985581342290122887547529507197431747094871471492895053739078579493958714546431045973856186665853483778255650523832102753354497395895200411673103882854189402278751809059048330773760673419600810284253505305544785113220763662183039546195821823157373856238948559637882712473832761573022864334940843251190486776543001933972937068695850497351169596817097707630886432857980178828427915867733550828670172674435142680106332877868240335580257102332648082110903879987817446844326737171944390689904746462239799956715216353530632570887935563951935209181501800725632773702287397357947232078540043619801432990040570264663444043083962406631187325013948723701204281119599885604420242002509264298294823821984277254200609584250893239873969925532431657173761023388699165319817942957883493319624280189758705924190327104740447520992183154949781930148855741896465983554422104624487469576722358268294264495041211245169375600029938548563985141224293197530101422015147900242103027548556592885180025500381924514131729780424441995739185809949109506229402427115044745093114821733266452417676314308459371415826891263437050726254974649106151341454950304411181940374397731436994680695813963727327432087586249754052283487222704525510686480606824819464318390210453417216795469490661456229725940500055312866878458179600221438403718545642116168066806064294580252761253396346659061581639089747733248307046287078980225138978725525398031421849848165350477305723035982774356063986525852493845121138221985234874009207928808796298817787040088984796914084510479764528753238310498362269272104141596548834516860328295400061704848115679542328461464713610002805566638869468564573991188894601851387162950949663841756042458349597764219722659990211883082862687345569721718195309527067021421652258886396633305111435092624198377498108363626960244753057895902506857283421340081169071438342834598818336398522052767271414972026621963150368211388093311274080161266184471766917923838527575240834373957766399607192520841966856560485755241151111094763451321970477306459031014697383836683115066570840291311576342529246527272607270110944973516716349579424275182150676864067278577078271308542150571920673543844596495039775719990550416237546436259631747690829547948401548330491516427549081944450592655071160180130225843605480062323482900235495147941057840672196507280931070822763205161735636245511418186090809801580391770825390545866865799282832421884610363382239219479934105602673739311450164895727471808218214488613381658155927068208316826236483252378953062022040133378151652905433642957885264162462951750896195439039086695304586948544505260980511793791604117582841621398171335054067053924193811913781052502262662084727207559244968508494007571601896702952321415378658375220745749242068576722211676757630486381703115656280020170073116246374108732205083954013893531170561780032553775291368450168612102402050116834780480458641847268463365519709477047358261666499297772853465535742616575617103188957876178548937165110216294931718916955922021942234720979977996713452435943980068922284391346132520112335451449407218582411432001246190016149847972797191672025383810243880675997706846680734132540394178690496884114082626908321944341866402017787074603892745803886465932757822078743918511540716983015316066925543996175968081790746281621179994269854564654498178107517660674460095446026881256913955898689540998895366783597862225377512162733516984605663344153230719947004843783222621998745411356682189602868130584881849283137710426178548968690945811133061643264460958512352567504551090538078484211333726999711560031108052112816930208054598032599265442246285245962205518795539597904228365699010531221026972867920836585466916891885862357656926696333854160907166248034625822822423400007670500988466516431072795007393772485912570411613348832582236283029211110225988524244488459994084194977003808636909238477908785438179013005918389017518052618899437701884568173626976824050640285678785070158759059414167152385622377735961443934637576751828063426587089457277102126006772577464687645778771108193260847812633118068023481414924607620866137023792471931693265942230961303872449841481524640794168420428725226573427251461530051375842556580091930470156108202584401422525118042781917950075820029931959266068074556912987427631998585000762913745850836838608079537034045713424566883469769537077188021593333165635299174147548019518433936649158007261319008969573470812126092551254360517404452700635731692453230419578779843225431265743896402805882739893365914374838908161111064508197747552091548841363731056282460915346587910665370095673522718466547156074522108472717651270137609764500903927255704364653075597197570809364523611503335617245807457649662420380954003964324106095503974964150680106713792937845805323086372739162506978519736670532878014463296678050102107495267679853889795929599955754964848170254616956920263608244380041101700262941249800398438435365493512772212014280258699080947934669120005321156398248267511097109665517075389234690401521947232161683790316522670556683274770993819678029801731920913261200779851805789655471864253955711876563150282658574034298409812761491076681360230303224182489045450330883901669867091961353893857996991772884525982887723779601690250152410332052181374508584029948567917484874806964035847428633823398009908107387834715217202595305262597467584836774934468668756653134675038690788392794699720538199963788785594274180029372287284006251338957903396166985370467126959843524705423334560557805402857670685948302236898157481923846841786536523822763669628972146675430610207991220852135023328360298738368013970066667348823818013255857688318218369249919834259268201902546360100632831987745580213997057934245650192758109152795816693647723024879979407963608778226766351542009076162218189507785322725291277675477860786576620037988289690814859218703879589811147840296518205752124515901033529540054546719266159547422517441022664747407826447991761073532341151163286403414881553427038560679582119744565619289474590003373930041525151364891363243119025312125591995102415253009258448195792064209874041831633488267414319335193870834374033640753266390680117007600826401756780124269346124781315429463453106478641426794026466066647075676432798713174325738279560186633795995624145568391565008924721048054409829166435390276931315518475001075283177053039271016826924553872112862826868489548567542207366923081700193605049713421249539315693076914726278985015017787356106252058126661633715145066945402992440838690824848575057444982849389279923281874418767089315042708327410440004614242061734020495049113161495186596442751174092778044713610545585460134030028798007359649057280724355996898052760847378107838495165253591899184330191376156220822144609073855390329432463309930969165521370753688896385724504375932456338935285331965943435338105775918440163856235518574766190119100606396111424030623823837595600292436693066660877012711118125605092912859324352839268933212213519336001838283222987690230197340160188555928099919872033301085883005191173475464851494604897357132901626623818425476563845739827482111349786471346174051083551178848533205101141704311584979385595779739680573088469382010499796224857591735727220569367817911995713576112765472625877792940452739847674733333499036718126989234528158553271190759207496235554440354441621018258330045001461969126983546458095142814791119365438199437942910172329541780181963476613613652794783018941122744896989069907631228326722688906591563901557504441193386824959501194248866367718338218596830425153714991424563386100401802150654261569602359404861339742925771436154806397461640086118046898676877019972166892974197115836244402316456555075044976320761676253277255235727317771638891527949176993768439174996003666852997265104446653719893077007619189517124788903888938939302979395007739676596626047901028287651165390929759114459397386139405706259028525941679829377633562215948956647553648756186638776292434458032757572871132747254652209936559859133835840270708802557369335830042717860675380547229755499206952194413830609821269383001076539419784467454860283504451147984632841693841659140515133036987582686882831113707858619863311272506422896643603929211702312939471086915345366108366499120673320906019852528307976099777888779425863193523415234424124123303634344044879977126667443609470608598173476194250094133441512237435335588575952770727616000526965256415369197116833613712475319679091540378014920899338334144864497697281578480872765403194275386553681967362351483914626044974326548374196061103887106991744507662899446622728430779382600748787604397627225630356235763520946242817117664332108662488028580604870932741027477910268018014610851025301125203482693925142175972885231283458935421112039588226409430379129959524245929670145371019945658455020987320500959818651745567692946036432074797904521463290690260691805048314188776467348509724924457809534142192464428407604309302046227623418706905858885670774475390569779544049458558539675870077675550768813553194671565264498502829161111020055041468508444288781883052132728305077097174763534568021321749427734277942773329720208130900025228600738797284311814921934002208720801321754510632788504111183930704936254804022624707398504363452147409949279586795898703276738990379389015616330138448628457269448151864388557549895371855700811098388116670116035462597257855733488771074653211036342136071585413669701261311818155262462972613379786242791615554041038634210619235892499404527645023308340165837118244803916358963966624718734351784349019386057127702160921857395544272836083160154708002729095739551630901095296901476717424131293519798179857726621479570532983612286453835543689862375006190504242067328168630374600099856613866613947285351750820194494322291932543035124806594594511730721182387952281141288400278925822999032654652730398668116472561034023716646248496697291435302788187489081893627122500768854862388845150674603711285863920764388921303058169829598363419967764213795360191020682893200595596118770424110860922840079477090249486395143967841369631923885906536375872988745206699813973657860404154001638349885320014698232495318193826213220579786327973247551556015790026261939953589717943294320359340096736776088041845219271212728102347316910255954225525728827055053652815371059736095737587572855393012427329722746356012920552905038547973721180277025903765160147673509198657958419835257257434749941334477918566370783047703028788395593756427396831348802923145119767677310923989316753126506773868734347871495646681772555172191111983351341051116414451237827985801865863049504827325978445458142568884534694698332073245511423397157101298525679421746134596940913690057346668769421118185434521967636370873000601096317990230828688573961344138819778485574843360099248117599049108805876110313447804975552316224050732863795606515120901077447783615514950796323430658145264413501533429004650787956643388684158665094826913815033779204048626235443285109824208816599726266438382077718796304260108942189890126376824958426083019720786879965509701818948521440302257864368036258121184471247223020519106977140794001595285464175157917670626699384258508628661837938485994044268886201100308122319527867786564989276273312291274990707417585123393474117875934774429863107307387298364554170178565655998089996093003282874565432637309694205098719697704461753054091024509778839662603365495404125925630344908362369951334029830829377816150779241055522008467030548882639416468446816499971720079767101476761875427786045639971511621903999763928108220559666330089761560529781764703413223672087054339551620614081239531218618318658356320632058149417134346307379012458646166698593459248972853128098984130958606819119921206936259534049345460881984630394787286164207793823034979902915957537609536016894649632133368984559104625298453587548032136847944261257776155228976652386700745261659755719289609250909139558995319273432349876814127917511159381322946338516249823538462992729348628004109413241217652837738231624876735791249203870223566778446898905949347259395271378141092960913645107690152013231211918224680177372371721414399916664648537072196972018345745313822500345170033068360700830456006277307238585166909066825499537912904554357866729468522314373813443360511147694677092073965440663574226870853474081769059959154298270063203261310755903512000852259513229549435832435198021186100963812935391167833290834805729863888640943446521389163313683039223820071725826090794352137509365383314961630222130601643355269001031815754142512829318816951388864221107150466179902961343422425736455247722278598665515128383450843044107607556448760809133063919612701011106846029107465739412117214238459627249315173458989270179961589067918566260993034803593495493370765228529005904155454633233358307964087743854919054525435389319698108442654356810229962460966833797689720134941036787947254555791975001589130104616758706653811412768041567829759557124907824216663196822415719179657274173574243751239447285332885199143838820710149622402198859110380383884240905637108329154051534851684728541515206702929945144456265205454934840239884085027796552984260604178769801161810099050094682426663657824638090797370543673323574258772842636870145801895700923085735004121384774542560738889566077507724142429101132451865237897704745886139017177099767298581529810117077862196430274923771395272041107305172527226834661044910127006189924273324335924970979689807067822972672049357617482821264610485331410912416151992586640960857038257868386136296238048373000921739509799998432236054827481588224538170468478316731149467561110519545905369933002799034006010979630882355423011562750860588700643556673933315983445469117446408900944517202750438076272325775753811610711840722767206607081342514019994830138952300222090156523991518934962944514358279024843475564606082861070666577753420914338408614282959863580633195558120570872269192156864862890099363929727650706186627285878279522266920226620545260254134389134359916028998247587268169241104157665909333870697162658837440502866756842817111770190025068233447920722082939210645585396432283537566868718923665426815316786647878446468434566155171226048598760711544376257281249190385221816617857636317457213855408527044214648490000830139149632377179098167945254203595739096618011764675747365540510878743919487924770802037128160835211980985313041249821369131623442812710397953180396730283629916466150849174682424733398591604445941136806752437818755859494116854606001141697250512387357430414939588785759213492805303972098938380306272886272877483059122793929188340577237633960797280468070720281316203392595595308788263377969160993548345345944680515128735716762583752910352945097279763776912286328603523450606072385994131726061814807432432879986452887757019919686445035852874937278651709447598461822967016327795620834405390196930180675169406875305238839581459532512079785240937498356698488085595368773972332210435911079593798501490939249888125964335071084012427201466475425601202870876507994312141601336818781384171270507509044034923381921132493303395012707062705804971920757133950478787566590167220586535432839359568722254355748364507654265604295761401465158223570901597876555494284830388092437735383248101586742510738266032050399830210634504895759650149785939232537978061463992574133733984144673725991706255455887996880846879761053093500388255932080753245404829100347932489875038123451158347324158917951238205220179635181058650427618474870492325183859950576575909790799206921013152732902927143490611398132162687839331685926743368263319626498268342397250580222797292971985421997500987920759919764361068403731558431888938576281086080497525882960039637115661564819736192950226653792905593895140921263268490818312370048875548081821667218307375998432202188712826148594560217442183577104700424708523953324984254999031881649085924276496823274853813075165594484708225246335238024010705672592338971329026459932698981936980074147620567178045799263867820150167171521362365177544193468950574238768546801696650691148177277606468813392065648694782422567359211971171006156230389515737761736444150206687233889019810043830103299097156675774984813288130252946685742182150127624939687910524890312422631242439110133725926067176169136997264967232583201933798095148806960831094270080433747400109657795000947754983757897670523907186419738630752114897308473614158320903640103298645023233040514770298415089047478214780034868473492558630145313904239664798948893762384201999221927797293666636426548015957821451278519299024120711816646432141135731841358784915819008058588005844787154757776109722391445131334435369346483142505128189509452458184652990599808017281831777028136801709800449142739262488038737336100526950491072329308188737121932998408420789123226341617603541788337887855122286486277237880767631029287157236127904607680124821162078463815067034718754255018577136464403085956830997246733607798706488938033790478074787881025613181038313226158639617261613223503901733398445132919416039609664680365518807748974245876175210493080789286752223111050353743030517255504660193346832157194688592600836076219478381404779318485377941319763463687000391400755429520148670724981028391370630194680155925555512941426819254150081417175084506816511587005235439984757632231670828853023586223300127843224676754557396214731610806492652929763352751436433858448957357607760447903868472611927200606070735499168520400477507124689467518385928067335988906317360768884367165215138020045993782631316625745779879619009008947668825250059774491940191868393934438875016132988787116254705037104378613784372332649273426140826070992993363097877956407070132563549837482229077218313872568868403359139764321708077291990813935412993918629089758753437443556562627129299121532554078311862826536294081049974672292800274801765866893523189593423520746487467345618500663489511348372511277385794855302030417823944769165546024546352799372038017990035161026761009489741734812773134080649289602186202181722189220104156219311338288970415427794111601151125809083032993048036846343684492689414090099862342210232706217239476291459842521695528710946913122668666510143946252436420308249263701886783495328191880756461411355750518514714071939071743389827201274915355633293291482074780979206739203722941941766694014264690353873633384962454945188175196442257234189500342224158874578565784254382362893791497643602632516927668092866623996080790731699359044243914719149154658148452882960887433395344142079531557308347795691335384177333057250185102254371309424212296367267136988600622170560195917888245542539654395510573757693345198781949765386060201570020025181715278111600028176314810927350894841099699095838824117458992069315435181815275852626462906789128961511694678159646803323204889713045728156239994886250204318884446438672571207779658220562660724090999860165621532802341087846456124620783981330408756742324581629703441558918856065869330087635403691793749109347630666358095611585397519540536806525733170364410498326181043816073157947788898155159532362322227784245944435583462403642904576806313431711500140548551664351507916827145913490019176114791014253410928205183439326139159916352763821874440945018283823207486392078760254441185039306836110412356926971946216391232571776508584272389177407520700845697319620293341014823282374921312815564120829382979053222222708244223395599611127648923662875789436077713703829824987700051840561566186199041774357941019439443056817601206354086757034398138711605381634683213847319636149472020847586870511258617153442313302107617157220180994378354959344053961642059008831826428262819536219996109029012520072671012671590880344127903727084029863693658624512962502647296821269075499225716667567536317624126446637985818442653197249186964424940756292905691067572937290603758965576765899892858803603854897780812501666500415401133823837242666699971706644093608007094858259745444257401771688187643994404282041460453222594712971925193981028143441408919519508182784918735266892888884254005395908910797566074491878879102073598214269330789028362931012258750772883322039819248576656313237161258779912877430236864242634524520271105653540173761767280945354491462585830161822344080156818576339626434716158545945721723281978097448029097624588807220157913486450913865278271895181901011297921375776828833775052966138195747547014770887738749009536764503596984417957024347011735379044346176799461699125997650869600325151555755016602242421067649684605253572527317535840639473089740469779996234060311370999229541760419683591915411803280633185221434762873332660852439899788317229459710422570445909549345536892061225851692896886956008984499670002500229275711739835385360444317606074313940699073752425284436789109375026572983192765503164861809727683054873050115717638112681158683700918438868377790141709727624029219094240565803701311973442704524945317675100655543011584041577816134477726007894642031014910098537240018936100909136815425739886407416057272034626191747516234017590648897964413174229531858549685452628045862841445076505615143059013356063553931223938242951086045321779539917258893030322066954202278927183653418537104975601947208996364760221499317456058563343555999202456577659717738956359499277374815252867041069384921759698521508875637746245107700680158230748026162787484844192799100720820644061553691584747965421764654853609595906304116953153239216099530998461759406518512733290381971106756366621705065976949857927023227941040968892503375705440681831892138375812570420340383904736202928170680729818734372460252938720563719577408344026316674868865978187913824882548483519646568908120180395855862830864290291781873251308514269952207456622689990585928558714157494092505587734098209906685163217758845690700570366369521662176896798447388831278983867409838150828671273552003116567967051761907200760922908846384674785778794438817582611393857243725965382434572014309691776736235890752844705801343763478977291186106477859731243467264928541739890381767614018362787629217860513184161031884590537152541986467859010580541237250957012007187973836359552791953832851994949453852854417770628946514694206029813134603217595989240496203814173901252715940681586925192969133441590332997915408648439087251285641655217615281974842160746641402391902713788076757181583691520446684268166592560390632102215887119175958717754948515736751286989632545552996804734112071202843941307289078867053719595240218102695870716797111239153287875496020734087413377175995142779076681166598463322105554058617292928530990902140315514652582011630147206263439114492942552377437188219127949695740669328450908950443171556256284718933925816625973330768738101526288656147416718995539696965773974868162525195428700938452579403154711264518592750450322494624905504379555678486706835441164714668671085853737338558541331295149059153013505428582029172167503239637549056271249407103958700589709277587291212875660268704564515327847857092410094732935208594339417016320273383792621408939434018034486654061786530353873186873870567699563640557039554307524127211313180183547811279281567066994482088109160403286196272906016439544071048836002676169045003997539189006184694300992144488050821606752480780746887259176902058157957627814155148235337386786526909407708915767767716441627385785801244034205474795206113667955743687954935608927774345594063067628675831012309193979426191991538978256858722218560222391310975532742728939303400866816503993208640798406337735040500440577969743470664258975073433300160250831375056381986271717696043657551656990130169115416020109578789435255669468696695581633018274026008788395530421851003616919976660193505113496561147797958589059843742143923440899025212322528138690419470724747446377380758171708290642696356334292911214764492870004994391254173953887638086888773944483708699594295502133882902795293985090834125114762497432094352930267421152558122974822021053272577553646247593815753511789614491706017789261933746350403606572842702725491768654058054746445332985744013531441918465629476171510287049024730972041538483504565044025471719428507293636270132395159388053268091946054762323777266688975701751384599848461043124220261685117250810020767650624086534310122411996490048920872644388893485547260390163348686078516205976781187962669918160252892332651543576649155159514034814567215631621802166121842624145047918059683572349233278353432596430787914477237649118806604649992365781991754017712790820541530009865588212066257920177679586174995970216203934407919587228556426013868681973329447734994147265477727622058451249889693217007224341736989253019749649570953499335170102854665078148288773201080988596183112835129189454121045949809007739245451407906729510583760920252663562916842958834324821052890121367946865019509771806777353089521043142027104252880336991260551027755778588174789894659505985539351478552796302907045479758231263574331652593761052918053390120580507728631684185210681312187222969161100975204519835374783693177552947767857893994876926708533089936978968231230413621866290354629713452314128184425635561628174506260616550257711753159891630070610734198150543289681590634395321852080858217121387944028369802763841322044477404262680792563800559093988036458671932406470971649541601820490908664271123109179420857035513318254128524123442102144413467455596531640081701123931648552360580621007883967155926082222632411284679961992748347202353956436555730871891354598890603019776452134081627235909771741980426254332746987631332074865790634344896248931517908923647675760221536481086157629058303240858216747743081073831491333676006018559616647411718630856078021202463221561587116896590996301661793615756250791645525103276126201292478982707385614051641845037932471489466823271928699441539789225033521002975989885833490617643290022553518222799515358541664620363680145926200920327839348355582591546616358617661595173643731820895903786233141781965647527304001727274250450198256180555760852230400329236370626210914893804092413164044592681986342221986238287475077901529165285862254983913433841502400539579831270283313658789743380884300080754002634394006734949370900093848393070237237293262191515533584391126145185721022094618042405199573440768134108932125408793090272588791396258177664251174419386326054429802726186502496051189555803557389210386257215928799671949696396531924223544892733767716832734665890264927155593517246296185986644135202259841755295019222339493168579916962528419099275185528830132369082551924988864825506228158564840842991719332827207158902929473406366854192374730067931045919981541071415372325758251778814072781758689950751662861591182294375273617157481508187713650071120737468454794331645852933702342512371604263187907873295774499905734008792801291610744844869698036745087308189685103059861861449195386352550530971567789530727361463865666858982233535190510498778830513497379233233132567307490598616182283399695971314421658002792568558382189009829480622483031577288894920357484101756523656162857336563931416655611349038270601659032178085434452320359371891023912431157965301874790357976025763949448371128892246203108063404173073264678061730782103955473582493475066330164044716725523628585624613705140926762959243815433656203130634774526646362882622217455121588837485656554484466837279201496069596719007473243901930538820665555950825404102260472911748759380871754553516804447144736199094366877013742080072345844642934829425309714483038581462549548475121995289443327101278205598096646980684441509209737489022118811784626185380719353311692266838354327711298677362858678433448697235087206110646965816208296145148045214173187991372688814899772759815735950073609558987946890428495024965475735127441154495480740636994261039292797169843333654284795375449816147428016326722894729468837303430046840030805568361794924874557142491759384891736639893586721098935155031040245589737528861139224812524304804568826475815972703292692774985077022358657460088707027029858489578502222875774556310326577613146937129370933899612575280076590161453322829122866057461171827579089711236404742247706926862235018183557994536090750681069544642992089785413696065460955490396350278901482829111145384687982845328637824281976478215591944958776605390670127604610578661625623218723000043581117195031924429602601827082918216086253786735149957711181552980937304218014375640020066274062226802898865789634297496736524629119930765152366726906018343170665895048193062671178428465019390580430359118748508742677185898060435855249752430653471212899510202392272433452609376208834655186951150159270083214430406559089496980965177416869888022837646620287067380044837317067485671764014253281964577369301731964632230230564662825192922598743111579301226213113759572862803130584722272139718617955020643178939608602125587748027546746890425303445793801057111871887042230704285367199025872414392624744816665837586253907279703737894212672853955622964982190140374732716794349363077470844081879396901592779938798594662803194159454575998377987481828587489374673614244143021890246743118068099623567818823920588943800886278650143829052235981274269005133271442614913267425888532308096292733920638129108029591676797708357397235394046047875135615876854889282661300906506140709255488000953673241883669365777940830779697294334965582578286708228436320623358013531159486838201141214756475619999092070106711607650846752954572309903849163311297622808042203756111576071901163086841781446990923038448531810030143779276045103721065943276563432942687425181276585024118633559093125119475877961505209666787216979422220045831332134153146621574284672675024875157921006551429844941316954713381680910201077690121117472081212299717198879852298128235088392542942713135426353912951163596763109827281823939490306427339156870798968570394712795682462266088623417082991389124623364380171302694782562954538065757834659173536341656750771726473851571723501998632003263616120497195513439681614318016698546683657306495239623247228334565724750721946160390411026888839584729614663957216038061395501720489824214630130496637175337150188815410244516907423649332983292714993843082425075284358636820872972460125900729485852137766546325744303994062994117136873694088196605870444265636234487534685049514868171874808160893118780017216039534782930478050301728280337294920836021048559921161945128095648723713400171875252935487675209241537417018098320724946394811054452008978334641906789030619675401566825241183737011843875329900053284794792089503007884095995759079617376543274115373422065936295737919494707803186761805476750970606301169987900403109537323974490709589001260016074135327588400162662994451682099008273853051865038051108540072679427116907675137550406524378018890039413272565233809864196109841966957472693911587528557850748657686411608191508314564129146862690328050386414795655263709560493139168572876604202684816943390622991479495932149967213425292082891083452924558673112762739247624945469358223354769933758765192482909170532282703861246422313350750212298943229089963477380110644672902198324338109129447113707976426157921991137675005280163659708728202062282066000925507426192667266285568556202558588648973552424004620001106004937242209212451199468163256168079601913838181749568101545161659577748550035534377268842693135883160685149922029888635416395008658356926218834398108292540849015082083367439176695966647496108233910537441619489630416457038534426488192224519962388327456791146622663105011395172335498218183869002258711566304448842065843416873539773641276528953275399116989019271752295733052925867768713278027993006111872261855487509037049770888892765219563581012445413496454351212548255929082991463405997651905460638798692415680935022848965385932437846233710948072912200503492471035901183977964919706219525046640240970117586115896454800130594819445697032277215835624489813849273871597229253373016943629389234417285147978091579224350076347984833771820674073440084438114423937593648515477315551230930431842139715014366943392211792612311390467293118269738604352575302345308080532570140320662630435354150544658836115545820568082539508351131476789685028650568654911726073920907772179731558866184930719503360356504362543813623362573162377792276294722869651315770335926532638633068991726553391191014216429834476895018571465806751261365509007107251206892675255246700559829739409259290418248045644305264138828732590932801830949684283314786739060689289446554664845637647866552445373911887865690536744913139493747318546000642467547972323889954971976625175629282612588149496728870002308416079351603478988319127133405859824805786685041064096400413886112493900596285786943752356320824911214118120707394121639271748230147376201921474895323607365759052103204318634445221655336245160260212972201513525071488436769353441675462821753092435175931628468595186341124619680436982510997903880244399920603691466637344571502647932483197516541858106578017406871009185861063069062847802894760884393087989339140103001323945477150268206275423465140383870756349007963277352875100076821751916513315832820583511844480688231544313839126523215463364343046829741191957335742425460935794371829108165457663050064192961179338964935437846787470728131316040133168634022087382989640565954493654472285832532701239196504921039722596601584504911087614804011061971992033382466630399822454965033662709589643631305069948257725611416449137781737858899388551024749644028319923018206856023591163766938186962426062961623655360767748907031965923462019230798857115144695558899722347044181276064315061839546010050014421611027168508931114637089824920825939741027097419660511260934742869442691500169036272942034374356517220608280707012379988629239681069291631885336450966712951734000273822334460110818289258526557090478005718119105909919842788173055884322204899020841637549009753674631110448413016895686206413083774834085972097116217581505722080766288403283983228748758728573194161371817121345727336941179188440628186871906515662797740810495219267396352717826365076734055797195603911706042797387572197764549063626011235944179177341517484416495587904817453312014780905824937014729321720210499321527231427569816606779018148927274144149721151978872938988781552253655481940148715230673263359441925965919245876561123153892025256069423891496937734453863777127752971239787610967383816581748560715426443682157435534461698267717499931850886779428344353204940412538231352411088090569698947322318765243013386353492104986855739779681654130551934454988403758822888754528227882472068447062812892323513545123351776881486824365474427436838544567848779759751390358253908830262401084923296137460261954298109049626852069292627262873883627527799703116207841239008694204100129290509837767035728154956721618143527197870081833600946350919204768759945201734245157186812227605083254231446950055052715045469384966776732138987285491738665180454915778025456388323125570145582689815931348667425759711258293509835446479600575924008459488562936327674298641550166082295706687921988704137445737359649409934635195323168201027904125401135589678374169622898489310386718565852390595995861816048541097993736115400858850426950417418082757510873201680629035711411962944481050580398432424370815090669175755955670924398759408518130233563078257677323009164025204828236909535404321374342141109229994428735083086569819772366395506810664089562704558779080681806046979856155241279303448144893759490548173968602018801585830359785448444485334719756057755818852888007009675444935810110577740466770051488891729089810561708673847848860927330336125873677586836445515797317929589321968623381687107313219806307435510253769035828458143272679567403153128897931416319413785712646076085940486083094296174560916676627626586857276143669113980651132033240651805580626694855348545623690218425673063060649823958632041318350376937466831185589438456354351648100847668652847086723185436236802404701128863825204951266998135538170916041005679416381076769560320465655361189657646257056017224254144530652517382699674095044340705704705834819771065451090099840966861273014342897153078666096185019182941245299691356589831792409802747432184988301327001052294012045435454433549157894629868291375342586243725805416802737149925669327463901622528586480129274120568994255058828857678158893254950034850118341749211149159986458388665814943766803080823157411347255650833131456552845965425679420987431919897352367703333850463419453417960879250722645203154295992940892200799631240849014931785885891547200777168184160619019458554936673037025010077885106463588435973646925797844865148459022312361344128502865306946022532237153473423217976704840902185684964885556408628888484297171785310311636342895749413303148948347760390632658754645508766360421621897566951300593345492840304987749102817724451431321104647983471051148427135699862907766270154406235781546976602388026292635165055733865265737648201555340390950474019720730843349455995231173955298627114412452790029411027057380904341634212848402572551441685789751216547139493660391941487216253171513112014232164415152043054781250511455977022753722826990075702981618340436484231264506532371268474949585159264599377670119530917511940332872145544934202240570662989416990492264582096540961947705584824459203978115149291303822618416852117188101690698752495720625279164785632938791734888203299938107205281963922843008017284361869268597607035294069576606028992050791572032625408055452134110595570037233545009105299819956143142278430451951773147134684450975241029085552079977870442017453590366486622106076270445690265920665611269619550075578304774810628999640740229336947566757256362588392840067897142425073148271688173264258048115860625134660943027908817830896978786794476039689857682322738560219691224931941739923007295979256131634336321426434587629389084758341606741305869336193727859702293250309038631156230791774271817318485387436445317612810049197343964352428739013841600804501217915029794554318498166060701363231084942407846736321665602708106964417893255298190938931668633654337593407268482197152663881438043070631787857003507935489002104669655968934093287213369429603197608257035671159159685781324639563986505044020417813023552292320590691926074947269433218327771719549940515839356962976861287267304294598926077710383786817808120887720095222578352558386694839239783869550506701100685401058896903947843658995209326567912190310955140769233415853588788246546196648119163444812094306459965796393859857007666381842456970071114566281092465973563380183285727517774030676764210761899423765055799745673399834695246619666110104193791738397202889449010327508075162020265766658679317244774559115041775995273632055768166524622335964594212069169468854365338104323662050271511042635518400850747309002700707528097890969618738009043795734318845023291614850650992757155757713865881342118398845165549831125052377575782030081066892861150855586877189165860562593985709152180736278243592826041625719464212942286772824562185613673199394902484831054192389021478225362924865216742046020949052377783716396395196394085454836263619415996329919074725000272664248785167950797046384949695053473213751640406946785131869211845814299566905526329611870426450405130397517610499381891505851848502995614205013536921681194292705698647175745593634358601935986834827160572963014315016590003275767036556621482387114415485848129643077218118564910663660435304053483926217672512435965705962809968772488331228486833255709693645569962356453086595787985223456486802243916650346798675663018229902238442652810979623792952072223485718440909945570152959684491486092529416277732959365029267906859836751534136300177903390309742237776136787637995365088872674670373098598796266791663088857828245084123794464320597418791005414239880676380578186120889044240364434840640922067182179068946583614430914179465306891992932583130638278439003213622709627997917720996867231212706144548717430132186795295308682246285857231489184150348991451744762730470282740236136395466431891065625754926447128717064612377143151088315589916761457416792649906511415212974578684759032315270304808563676077363749480245228976999857672465842809819255846814982635802320871006042715200623105452585781993128633430759533534467193775971209368443139548205739222160598590618310571833795994606108661383982975671409852489355049773067565600403013123857770457311314994165443852401557716488197727457494404626994540872442991034146057422801294823244791478832135442834159131018240361923756820434749767490232394449698002702897086519421110015902124261722318274387949591155612304940897391217954719052425889132330320815495611628065429787505181656865685281246318196046237741805539696793349209722265622754088446493740179985192954131111393097994952743079651567096569894874841596984603471563580033586998226262620000273733251723954540750268373407755508083173626586536002440972212647129658348619930849917824218501800596698342869503520270312858657921276849994959502541688411937544041748401518715237648087631512741831982733414042942124823966397686291211352602505502200069100718899769265697173903070055843793815363313445692279815313541311888008435787380008607578194404565741863415148554586276779685700301198275946977522538296688414279114120110783798318055367057996587435388847875586048134533085869105736734280640050058123258905322102085711501463025498166281852323509025076209015281643778366809680222904549999119416188337245447969740074771859884265810579230468571831312019998754457415008080735639891107456850456988628202455156005453370696079511442579298577000473641198663926008336980557779630180319364513366178820461900041127680161410727007399650332654158663738721137313188932732430716072025704007528730251001938082564392456087717624884267706475030013209527946687184740133863980247320228355099842098268286715131398749352386926033805689564144968478879342514344722151400339189771104600334591874463270140514944825417227245593755195716466295138793669333396877772807790799432932330690630530323519776965601580432899729768669345910232150641870866458463460367068001660450269466895483697999494725910858071624530173410557435142676382555915510566691076954459262582264934342649906464423933826034575440399678102398661263174576706865323446500706523587989350420366964773721820591906739996908315681233754456354395492731504525918371994960810704888634809662651906107145643881873716595863161441359908743814113256732938186346170296342189743444427917503441933212957536613967527324154438178677260852345909458138272919713341857981388286119622406086785608576694134829987729298763222631248266619640141824823452316126419290460431092822298821564486725431153937104323222308060058527404855608144489853751481296720417318390931153702761156080116990678852453037582495284741678210501082026562180814518605989691857542617855863903238271434281245481785568790582994715969167374618671422501854905357431589993293786417706356008426726848831476703483144802226210860720828644208455698518523145486216081781801509988372848895794552409815607718000210486050237530992378084520887263563630845140059648833634655717423360971087557169029911423701559369571342709372979826705141870742911080257547415008170564198160388989474422519520889485893740968976066676486995117571914430927835535496480969529802113471664307775938949024433760963392324743410003580261276279943719199261453818196585649449304282486121843707038189719193102981275090906681735841503352808721986470837443052893633342403291963605888291632135363532913884801221351904831457077673978502877438178437412149119472350290472542526047066115953685417888785525618158142623137193527065353717395687663182005310181971000148345813735110317633039301151534607332834086605482137312929027606249146134247543317806142085683188888860413114844566728387427195287622061494622438799536957033888724087340488002053542303515257441019568228377593570753961545646427168433697946779598332180125640498129971897825778772475786822707458157314654785291546052343921367122752351500652840092230915064837093733027725757042484417438246729059774311186067184665950058198980478835030266263375606983305190089744912800811489306433791482950560139683749673643981377034001215678720669384645586932523318025762138930450719296677867974084909447925801844368706154663295007183621839404733016671899483764183492497897566438776021417137113577771643229837787750434745750367122826387198827127722617975655526361408694246349785914416600087574455166276620301387184042289380740363878236725531603554992246648736027859613479710895024162362422181860061658624263311520739282932171234531906338493172557734234542181455967077231184993810981219963760413121873990423079683218564832073840823865614712731599518806453669431650100509409073292553335645967700798171251980190523623590729954919318074161534139256986635561769132549370003316828995009529186374690341859071195525773190867398446548089267217802601515228752502394450296308382959955155792837724449370511952602598177321532544296074155494622765660854547283417910814776672134361488198894160856007394641044042549541828485627316460590600740826843297745910033711660106664812852966612620096260828040329014772235982275996829865709180882024649255626972050400326348287572968839260758921606138801248573030026129415415117437981087288922493219735067448639140958154670244427083059586142020100217089525064316833409055284306430456046982845637278409170564931704320236097462559255700364522412565030360718504471222281119830494379835845993867694223568528230575727538472349156660344097900644595792576098687750317566483747315531403589311707990043069732096118065332311438089090004625063255602495995217407681282768149683776296227930110225170160388778354028114153876387998619240435514955848233965453962654383427411470875449606934755479893497883591882217440447350171905399300493403713535405904403811348632622596016276682461369652588429440273786820606212524765204647165859880391011128283779008899301887313374743328275067633904437730625399828888171095920714972445054015676335566375739462244048114091884801124857319575498268695768177748183219675391453468267202450341647254577138417789262974600961583639084383677431796972204843860494488247846902341214392619185750423318332051966985776223418740312967476708646226241845655995600138120983231569682717010935752174514045718232298849204842665426875337877303396622955381150755388062316599876423896570198062615356528828237373612300435482888596976953929766025567829034186488226396050397320412533475349274295344744006610437185560060173152341564880106195815999367405768228625719542000743680324667278127487773413265368210170669543249142760844477751485776955088825916438333480176936337713422823808690568433821419975859041116396489719176219740814467613647872928952471309455353274724936673047439068247727402791263640845171896611855789121697658053677533098880042692445523946094115923585892871169989507536732864490655414033339368627773889542071814493224225867746245983946192095399990279165251357801941374618275859489138810267650233399280976713907311423760850795323840919589573101620193349455020709144744965241779196081717060838111077081238623010050143346609211611428988678099228174138182177722725892013920187865363074068050718736934771433136769183138524616929667579423505129592296119332100264319930602079931446264583615731287045661307115328151584237281170913540915353882638586355891749187954126785218181282681354984776540149219631871732598315293610774166991647031278971731011852676399692319228692471481049742282205204244389848891643108055006673457873282290625790143205583358223736131272529041877554026703146435691206558457971356815807010165461801055153244281669132213102921636796987720643350326785295271367614604811178309229148939525985955106064456368587371035750486475602912042213601180592137195806183171180372251002598122097344752179873020912579697070237878210105019466521172747480271759329371560140112430346607752954742991856839318590173367704813668331625914294717221947825514051031403422671115325242988750928444399274373123328781628751199229667749347136950972175951524518637815404639684420549642723089979846424091257196194817154966220996782002823301573409924751423489461431597936201052726751655879139730313177233528770388366842580705716091791012067950062189932363553346026800723429813979954339151227295090640253419728823345112183981834709152651098014072691853670960634113920363447028995398201178803773247251620823156385312135561568223322923358581051341188778521728685292154143981184948063024630915459691057936962003788784206300117490307044128839078056567558563109974061795806334259806006714000154613425518562797363921846041662774033843997961311262453377294059500927343239264039524156841995393492619676417470811334981123303515070631323009474819808835580238008922166505478470069709209918381527642533922546021288888606672948668519559473222260204290450610614972827596184561448782825967772917479646765415902424815041391202148923281839442921026617913763790447515384712369598656919252465603355375282201445233578846078235500957000394478511827791880772710697507202101100761851376348748940786298281766397968054537546360754052890727613309935407439460238084366554887498000593055860640479405406584553114382704703241125336513993803788956056208735757018268892086095499981139078542467569737657581390889833450553327742596072498697596819847397843562959651081765085899562982548761012033333724207707101648286923812789290097867789555397769545230969867415663646538326918066612583934420176608483807727358860823881943536262616880972895773062413586950835204983313860191815706845327190763527948403977710220100383156715057800422613700511242843044008407475766859020558400134042209238757865647507885739936877129088388804511958763875820022030981579906539273039181721988853303908543710021166323646187241179773855000990947179385647777653607153143374266527846269118245172347111847933817750859632546177959356616282628970885886745040463825833204457790490356624694862151253017983636444029870128487799407182810969288635513512024525536091237451737362638120242317161555875768669365701852450385675019167166646072540430778661704758921572931838590568864717329813308314231350013187294597601417167092127475450682277687365582130427466321350640308397952148755578959934996345223729396763473751558218769570167052259927946110199596264180380116925565406213078258392538561579278909190108663211290144237802947644903817081620622041724415798348741519471183114207016907878270539583975878715725760440339287597330903200748030847590596207581163662443732822695416315477183786641221481958172218066025616737871434158678843325749025361805264997773472487729309241779244159243152206379611299191627980901465800062213566489471918905768548364811185472409497779793363750205598296217424996890940900602859432064030360351847406034298476933767139487463218261337033341996880548904132711664085526369991426504727168610216246265834593610967777081191612553974798531759714916497178207315569850522347681584543899567726304910493986595138996619228333131804911803380972941688051075587566287803275195549837756833501827957819557473590175655922928331363454602155403249729996506542705449756621226286464528272677914881991654119222121968176891250674326763475633685570389644158215118631513548822087947017804422717381026416479834167800279168516488150801229280114412502831503978884346307062964121018619240985639825699410448386571606993757407085454867872679047848465702118551202085154975365710937168559915620798398437404198154324235497919604836382332966221305090000563509988690089417800436516218619334009569726275784745731511257267260663424701651920710076577053092594209684586303298864403189053476346172146332498547204151620217449730329211146560259246671727989963839445813404573827726527273810604961145228560903196901508998959423562582498001594816235831037930354665525764880074842243787495252667327844221433876361943755219273786222547375942146411591130434066695177305870420918832600236387371040688553828516849486406977779107828931573018059313071831794849650863662823620132063343519401134435720723703042230160133809185192065542883133507096196815586012356883235577649855468087526796687903731976233487950945928971053314120675741187139394479292364950150966465284019983543217868068455801028033042532990950289871962157526441096102784242458242620125505588971449589854124516394014723394496530419811520447566779254448545404666028380489031101719025369865192752221434396872821707200879540950153220338682454645412615249885828439560523585857538386445817976709372899110578791771770219994907368217978504511980925641580223492919124634989408582109042835185060721555149048983779478036186761272984383067089339536299239014209590555433178536337640833690574445131770970956829837374432700086465581518915149549171672448036472063369160494000270933040274067180954094750245899357749402188698991983429036426019787827571419856034911807569040815679035732443971252145885869164133662765866090364054064926477290673992125070532333398359967864197068202964312476948340323389915784313845985570078138442045744873864437577013342672686410552498320765572642303822519190273115961372023534621723965573059482703872910150975090984224278116871056126727291370877496234454087560850722121154254085139352308607252391043211346101040949890622131308924747522106789732753536390791899231247658188801368989190781491916860913959035979529311306129957389119996100130933234490286034855570387467220517748605834002602765376364260559215197059684295554451049062025889582469733154706027496585432616902633820831943207361864974474154797969891551896129162294582857340927556279044964038881124330510908950228485161383296642168684651172237664870182635793642031415225487065387465137502143252840502402374205475889891470309354914627227174214966561716073068712263924141120290118167644511437188870140707465211314737309429350052388864102782417254542048385849169724703663102457765684678392107850583256080726269450742366954584313962694983945161979061416534603056848793478757658097956097383520138324404215202351999612904161194394994186527073502647979568840223378213021067342627608170132402185444347654062128014642918248622369566284014925653034414334280281818938584913126505976628406025602966191274300399433833676714132008506733965219319867827385675527948224007717093360886153651665259197734004953744213704621511477705427119299973095100266907511641252292653681078355811797188148589291022677918941849721975488784929881990736305471659858785973713622926947742528502722159467323501661953702452359213967136809294989660304030956663487282232843659104238529442080290690139517862835474090649395838543640038047547012293725883196284390600377588681984076540656909325780156091745469140687896876425317617540448107721508325862713701124737924097050296643162004592673697948409672235675205130407345069111476797325690142031943487931608863753513664932378471869414511257353375403869405975479892647554598097852989529478474406962570695975342727251118163899345861116896707181798766923942724608730509618283780419295456866801453384570168063595136816043328696221907032340382580737563685329640180975705473632491647201209656464953351411858042818488473305908210705018965142223141098080225724805596495618864598238137382627922449761438068069508756274510080626828891596240841100915382032488431088007383905207716611763831585300983673775647314040721182753003333746534564836048451691605555862134685191581760273718716341626975603999306827849900031292932014677719176194479775904252327611867189326075057250743216910938272939744018283924122853449981339977089332081065267415387717164096705420581246760407946188466876804736593631411268900899501525407087727933521275413607680354144544391174999524806505933266521521135415873896700856248034505057162730498447492663610128656625716552121030564195579467243323865569408890436328244203831292644177709068992377545068909664997679842153651344597238398779002034298210801298775906188435851576970758359553866543965261773749811180571689065120481782640444064625295093796899878133725373220132540025981658758329963189668435580962485328613335279264006325865313062741949945250430494901741497228790220121384710375030419924387651158792676177894243973539247986887483779185824453727087633365299851959499757722636457898971786745290140187945506715319523354149207772654177430071105909434014558513376069353853335641768781603995845610666102371286242300419203726384525759620788174733403830449182728734191287096060119640748298602983288914155521600069947827568659337805651684104055520581061234519428622531568309635917790915491868474018819163332434347016671560620168631816622279019490742489838179801869623696476734653875329559210530792120019856940572103961033547127993815353799644420060935634478930364630071757807805742934116051040608789912248387888157607162475545539843784565008738598737032817473064697000280570970603081873022289644757187771775624029962033837900123128610360881020763596469501034249863321143187220200207034217570650212741188111883177161187222350262094672416789629630914365974532715753135348144951699247438916241453883789478650994963766287305887398549837709306962409786385553598713821214529929355150363140192754733383316620293293813876086389506946444348514876414236234827615101654643077304573650112440908444457095267315967064556809352105461570801802864279327871494003430666587876374795965187805891395862950531017980685830274875304948378697228274350825980894445871999865499579165340702985336219041077090762611159178797642128257780020173294018273425084435725769705526356189996926316889883065232915687202289107869087553883216876555192923343381064901506379453435365751255259993411156558703414223978663172632273578384138611123061849374191671780061647707613737610833701747654178761392624396453819035445082287332881059386088272939464924772051464339411289615718960919360849418101081757751750848790138102113233257680218527430296074889601509348812427855548839152138082797452616900328047935599739118033858541211893829841862365684228952730425778317914175465666377820803563831322537793322891463490332118511950131107735524484713850664196050813408877579274510931152707629771156623273613265609087512105391976373612718039253658259325937221812272867598481226337122808982794386145090578149863624352203227638338528882800346085126847339847360513257870512711954887645444155355566395709277800202048825811840558894402647365980649244466097926773281410761098676097355537333822571522413650035132627255226206806175053708108453393494859027131174997591032352179889195025311379394384246035557196547903951185430971737229090063583640610848484248946113216504957307415422437876051174896404944597653167569972596179620549126766327776552749058363435636038234928805226873505415156498925123828310530094856534356963632402093069360167684129801244575575164479112427499468245431719244595141669585563684409770148625741973710623464003632480582343896816657401413097628278767859738462824371576624652768237752611730993331404807151796508417085612146080096812437073943783121943271681200857759982382969118311408757267721376934826409292683453473621728004644779287038042706775842281513691980642071728209224296169256176808325150947735932412868283294413101939148746159762454034215546668046331625713522977217906450733481064030046754060748122380894789913021758912423125029178489037810799018723918340412721220672778293226255511235084224449039564886505993581851793927292076899220968990607127662948500602853228286204343365042418560163637565021025926050778803578549232719253420593377068357756622518003738189180726000389849243690358895158516412641683955307976737433658931188825649378867892054199644855002816521601137398089098184905024164452028276244423523509470222744613260779799382985328386228826426984435534702075106020220959841341399874583303839595770356684619980242466185693369771262614758501774129598667370262866495178960642818711622457649100517214708706324398809113816947454186893298936019821534190855304394013438011958542246960433584903018178045774753437396060543742774877859565560839571658203373042425944991761205043696286712721476967150325039658694923271889164296923835105107143533004884590877084477684857410321455279902126275165365619335388014742689772570848797291237865930160595156257481579654508024243979164098411367699074564680697273260147159052384001516255008415146224509366676316056699909812999605756323821215495776823256212079699436250574309995962343711504489215844724504999906143098091815982913587274969832793818310822095837719869632960736344940245140715058367524177342333217683882487734080859997116009954892960626579192677358769896335125859442925318009377078452201196428627054142427442521772559260881054235927903143464410232364410562460643050495791031991009265025917125054726520067758504877744104182181883289462348163371050776153720694203591179739920145135203104061593062947914657289646250825412761545949127779865541017363791354029112408200823719620734859104041791045501402696065660984462870068758824788623872373642438949509298957178982121617651055660924557918595917115540626400511935596020027544774977254358496081922899167006191300291102774244456942523830722049798115060547818346799788119751567695952430589421736510958490897117209977560811932195982481308290494274051132192826826232477609435538654932941574666172482304593727263343793533555451845614778236909143733467444696655808168622922918760367480591390671866849300847829882061851741713692937654961058856205163522679552725272293728239837615509188976748292229252730864260881814263896511692220377566795127219084860295271479596323078764585889152391616403822683455748886789768471837486624370714997496090315731947807695568893526079816528336593749199846500998609405926979408717845133453725427300276601207492070846333662912610629107409619189574901126705631376978302515238492731567197571856287664549390302012333429559871752358202241403071306558858146052273275432179144321606256071321388981919212495247063958572404538487803605774007426991260731336302431422812850049224506242802157626394912171566000181548134361889216671390330819621056818516961767849769428463477813192374793838175840675834280284996496571687863487006392089877595097003825528726486243871900505081707516039103271907376071658196566817427057177049864503049955147352064633927494119416748035250880043264548783815481424499038082891562146819872932072513151497696658990467272049887926389871401404713768851179189588240335585933597521272364183115976129109720900956725032361509324813652727700163197421612578117346362446503439625571420015976743727802841963080077036886522629723379033061047526607897368463256025697245383074496772657729541811690765568938453522517287195516984779021391282930846956403886843085148926526838282525369645150319984548613127566630350697880143984906687744856056113319712460991974274747046023176554961038609814668636305658438806673121345649904551707416030060378495766980787571788084896006770177942904647881484487376445347651885424720357217078071363147319626366144344653521394118421604084879441711339694510332359984312756001574098963985413866416164235756693380416895257778581523339191192390207255986085692704198888758518496365492542545664776287604205283731626489105495032297673085902020278156953092658424611941845979867475741473716013490910104027512406357806344160006663247345482959909766122531060107120546768431735615018210556481344248304367847231307892988701871812262733286749966147744861387737878788437363597674475085630002303427828430225996723105937748941881178658716397281883880639472790756009334511867973123431120387827538452139549963786280130437538382159425928415761583060169074296087193776542443479506361196751922592205624652146915200637803449008144277581280925010612568271665933725689355531852057266700952048300594139619636256337289043069072561906870354843518719538598270255827879226570886315645572075373665718457417030586969982708885873807832222053571420392579629803632183665337510124678764413090835291080682214085204772296327710013956460521757771707230359354309064831063910343926361629500936765440597199057867322088206390773004620864699440017725846793903148001723369426981659867057403043962967680921125036704717752124508411319667161978352923588630271876321721103661662910181762304296409840487893331223506472466955758820586530121439822004938401630291139277466154795634605351524632069545667309179879688372212923900274736676778290225356074889067681848599653178469351544546686360491547042367750977510126342798308988069353443145592316571090556852673763423182221594530689320555760930186322654432181603931873292971675825567136391618287479508707122095125662257861951418569114443963694752622045506225199693135054808215050336502445330037723417211907148086684977398129370638994558812413838138185160046513184939477287869492425087023800736047918741128303915597889022192508724305236155889809952592962468712317761520040098413850280322662085190497286598908574879855094188569274965770849167091264209792988186186164443333490173486619654822509870874972289835957541898591182449586328681758608650490400363363431559246118138751085865709433986818769114244087050315798223599715568546032929115036971065176143974265789822802571878183586054344171679434542172336666767421285208076147977330539849693027275233431850984294776402441152090736574053677303753391055768010650826500518544146890501315746795834690275683299915212732334904740787933635953234325085102806209744504920811543463769414742918619462669569402755238097543095813209162621928077483383343545325543092240747405069146722738494171974863855451401134447957937855297949109364077296232570965868040877973103822870138376371707739591001562618890371929069799822834746147045310446887271194804300828222487343085740864078056892457346673388787426160029147125960135733432502554055135896911340967294467680494999610156573748174547974037130859010921269693784151184243783984870036856639572286643659127904875841519889333204508409532230237907811105187353799600772272362191773465526597872590774239254068053686607442463646795677379437319069626359203286224800783557548525375038899827645941344990399463534113025962535320499335899425789904340490561147560635263770344636087920494486522038945226582036596499367864852399611510408304170072746340335962736419375951224250276898412185812729277624105169998181811197988488279563454553492802786884328317566018376490875456073878961107840004130268412865546308670449706994950265750964102026720900817257936364563766770409150946834750962832788468388250858361717194850341923957962444711669709804593543021493688264697225923676106806175540154344370295669675260054178588538738835824695274665526739531590249194456691161409445486961556652181731351165635682118190187948490704792357214904548224457783617287171222781483526617910584528412635611966887756815987244893295239671856394955798705738650554116575412882990225839224057626124755553011271781076847646805655087039922472616307344706512197187089980807220713612803937214093695315672771674980373821910269960806424439895361931688710690694590121994129286853233774046322776250464963671508653928524592764713687913864476347265336709195839755029649764245669005756866623299630110075878454268053326414884374313899553585507720811034157073572135133623456767663062546863076747114550921700251252125123340416098611225298829684690764874326992512077162559604909839657586570320083171374580815993929799943328172180674373685299834136784501456106884825396238281678281201777131826835022727645193311632278343170184504942669743668599131527460785760235318326362952954391992908761460730488351068711217863036882600991720829248813391783051955692920907969419131663306466509230116687507225256425323793218748304276088988428927603673934550376408238532542802864572239988213203806487354199335874492456553692380338339758272916198658833987864467015830043243861281034307255139995201427511854669978063709832870738506358520996900775974296245960782700899671743765989006168160992169215523871398270369149181022399992362891526507642000320167763546148178211838786556674533710156705634547094435374262713531805818318925471941997894626173360725124752067827574423498015711663472765280028536058208304053553104958982636831041134252645169608205101881311017097044610408164641529460822425354994822842373541262608028321719807618585909241626034741156746513467387876269408198375089957868843672649840263997993055311838973458466459090528426099135564534511540642734239953416764623797041100778853085071514652069846762421022075739468616780977772774148429717263900105391543490891064910806193933478850975370161948836228555508894663347310961073674234678519710262163052936961297791385998708230632528014810634972857714679610214507614873100118881854181675994711150463959743221764300525914466508600401517379084302354717407893731372931965534060428120895320010849135209914049588217900298626498945471606774729208618520599936489011989249023003284839327192419082117205600247374996597389163091044208801223618852118468619298507141310963736883972448346731696709905882652312809855787003472322527679125095753227383948053172586394642986211268355023479538362888700339983489810490256941549506631549758831797603608612691895594502895970496454208759904375217872821518961662053194174313697851957512618137306883572527850253699192931732789103895534885375610008395263148974989275556265461105581789104182709157907270937956912285600167982869532003491476360612043866261379134468201756886950753982226634303015646303689533188563394466250923163158393518945993813259426312500665790250542434830007486536547616959011915182334953391427899018004925923232968004614943812247990299870994614582041542862763692736364377711950854872752492607232747733890026461744328234211026827234417415272570232037789599552337844795698500593040987253049722067513841616976203010128825415938027982564854971362563406721670564664013494286840064070139731147878016887917932986170258863787796321360968835123085370901288742014485917591627144794316484368850682165606872058094779036117631827677984919769951014103297902174528304306585229694494920988905830953429860575129266720527077664009203102427775700243707037938738205856364984181306984678470097625401030033874763674027673653111718529298131269328178035153750680139292061537831689311620967109682344562796947871040029094977757754602893458047313786672036720227395663587824585680014679087338669896468548233806340359673413731630141908690050889643556104774700279501157808775080464172757251676842173031951822500758325774779408960646108398377010827131334378348302121970368418512393975151068290709013930363471025834411808688366886312945457312198354905464792079013174971477658760343950721615902055111635679935503561584266358326356015662882850732571687069598025680066089889689139802154312296103442125563069479299123960121082417846955728376733274143321433468542830841791446145901766116195702151510623627515282568105755563347584375549320536222049182389662757565804433857425508947318769700161738622620435796967371979473208453222394505765817988921011853858601943267040758374225312133882426298483804732966394501278204040479291917192278892088009542645339534097459520319706824580663180037839728798355735240998055372988160412729684231715833533110669191916004503916645707902920778836142695354915691853406833715345035121490902264448730401133169823721928291405096719385230221019462402452349931981280788526074661438703532301285213743982990485854087709729222995868918914632509587600874109072546785015259931391545883461055033445158935570940345292202753143122768776705994691170799430124793719867604918634266183190765469006501500394564258708649144743621215026283085055321706129087680353336065293514964151591095169783711218353764124904000236628491431297378099191511123299441390226662472203458894674705363698510163466413364444650232543008358080433904976743336761942798930029706048927017655093549156189371775236342894092219541098547414210638194210114346585611224885134323379928069183318532755949834831918261773961812517961361608332728340381791388194074115513768146476074797863989251364125999158172274432022481621203763432639647541435437585755004240869008922220936478402987765486237876785168951332758216809264229118561732793912969106253699416384165483753484335936963068074336902864962675773587242346335408237707808069988509453802990947155506073512291833715361785407391909493470608198556822684111364139208948766159073327818367506097339784888260417845972932805927779266965448147620785331095339630811221650509183294747617421025925824964514584755948316040378915311370176403230870834203536528213926402311286523949208741139931074981687047635369872814789643841403217107941364822811068354207753545727835231680850795383238037197740837293407886552043432880931023679359343440698401962836792048084872518103149218388339846615315522774194903888632619458325536796204078307280787778254876582496363460470882262436043970959443931814746572687023478305536534723356531823935817496116365170345819744319782634740819127944992426295277911340622028726923500206268161010575369243374394506136647589259707083484818167515292999399385091939260052158972275662863602290213799211982754249131453383010159485965049085002480560672286767853653419379174340117023947301642674214021955289157018862934405888767556531530468100927575964258430629399844112892711767423960604786925956343042487617721182713390657892551489898583131848829693666018729008558651419183223443397660882196498008233882028586722022225974788940331328159781690091078422592076923527782891846829012627314753419798533357076721954534547673419036088234429965790731500959895143621832954455351389878275851779267361547147130557217064265929227629870753467488226693386785315989506081273215854810507821251670998340523839429914977113871395321909207149198673444428371113703066958010033688408905490111083215050697310718042632204146572610259416018303965653864668617463486082750110979706748490467812550211069704027830550510516083643681627592621466582840945162690301823555113591999945335006068740692307623588485129860940325515734221324318981593543794527455583757004099067350955810537844799157616693385134270489562296634576432504786756297165825335351855440913025979572378941967333246447606394934555752710337933217768195300054216474226578427619276622508640623094994009261476051010344972669022330344328553470743154401726835421959800081891169200161845978620143665733617801957019346053407764848934300771244102292274010040891717653361468120346455637387823099794986808950511858998882844083917674334200213936736652612209626178731510088929206533473889113496788299678300707202382892577445188119401269973604072438943832872882436111573126162357801376339550666278901799966249957066498558983505644267737653797568906873138404329099559761095849443981462348169107605041821341497777847094886108378323731150913757956649690837106753058615406443833216250678035436181174438386748833923462739744117452691427363631139309492016004475177758863247300665413300553669201156707069189756943691054504381085401831989690975045182412684007467976775640232034771337284297950897318710879701179209821553604688396392038646955122246558420630850173698260021443456438907984043828222514246355742218195025308238982475904796536107090263140631566574713315279817506320972166785049331996680279700492301754258892285537077966945682254075873067682877690038570475619285917840629566456376497246587349711680008070492560061254869245228197450092382628625971518123896979061549191989327798818842827869680845703382175718584757223343613606816084238455939578022393121885790280541272906197656211152259169731517692725423110228299823760509924726040493434306653858812073298453766740538434660364716773141740773688926394254485113898999582273761943110025026851861617670131072128405961398103219824997644008484958552105706026679924812217551786739973500479104360117845476530605107511065210279092147644816024242842177313842301543170996793997619607404236082213019462938462619188544868682078340769110314915422878048380431837592399251861828881869414687683341730979867111299668812686502608577415807741065538342427151637798174768562559162282862913970140502613876117258820319253864299718690343220557651211517104460919366327959385676090861650153893693199953485353523647505558651896557880331953862057415796930825896196466938072981331390646562305289309284657429311818092267106920010515050243513186986296746038202798075025494884445742111047618579483944887914624537517489430064002230929014314871253565654435078306304321702344473754799091612314446410968474682803534078483761242749173827409287264899433826334086406997427443232365251810941211536628168021500627690744971181818540432026421401736786605034459848840568255434137466530917561245179721758232969036646485318760963668510284575470418370519807260778598972100157633498381410441069055108804974990768589412761003578398426668543904571444433304850012393466602876254967202521794525826734576643252637505642232736484069662765848860187009009679499622114737909323105809451635870662682922738574818541300671827483089838513586970810152557417563443496221428088826506662416675321397357738108508758259726751944753719026327716744462867540718601979751512246107211622001544469698714767786597872894602840235007651983900827306371234228648140177159270837359795122929998523001214994989354159946444169533131332290927095522993420946251196238292723518568450487904679292063505867911529647665404347158330039757485943127342292121681646037527059460006302766434736198858271939792546474618048031687967364722665060081754374005406442968713146854725723025704816868406756461448597949063901313294086912971028245690421389581037456631256877450000214255078257360845209981779746737006491500877998641058574381335311943276010523221234828416090454220839769536004932349010070574831854629347580583081833209814954265679357671933153293989089087986079525171595557198053408484186454059723350877541817039431744396590279462152694906387906368629951397410941337298544016573776661711469657434353671238294912960714407048128383020541363372325458605156815116266786899369544573664534963827216464859074957357868786096758104915702605857497539775340758603963037999371719020779758901576642355322476126266390917190943254042504538743040287481397542615797183167421339891600679938102937375439348523029495323082750513698478710404580634327155337282995226044074336360706266753465509816584161556581419453662613267771846126362186165507197410515710986734440895002405945350928167855456027444054588775743006416700139856158542727173537155461922587005406536420991262967786505251248752282453562989530467367677999560200053321082019629289323610651176416568689219166121240175211824459350187836130213893780653639655696784763267230326693641631417095531191084409252608922036528777405808258569804497494191077582175069854355111649346982873985730083384466841392218395770701429993878999040235308621700673414782666728525974395479175057573974583830646543503112048580024838034510764009932847471329970379852790920934949205425256628234883604097739688678781821458863342750646235231176080279686416969230045891428112424398119512966906371527500603310005226478750356791113546928008425470048424379547186580908737141951993752349879529276058200872966563255631108341356761947909560639985308471996534832197144399608454555280035242987532371940643518423696189397886742573303841188507774561463009753433492679101805915099379325631207570907229203434961110955602701094700041832220738616141669664393021752773174513325623076531924037281988327158623687787545159764702891842206689482196970090043981568691200196726022121293297961119794463710679405190470032889172974108549856296883775856226589937966707951107262392635691124650400108257513729091003441092124823970838597966359935802279372851762297794821003845291795321436293885078079325430892754020448576180315312435796026152532152609217236358055847962852504721120651084616293252949744026362669330050956878996803936309808439651014526746619816193361285175642698142236218957084591882094635767226350623926410040226283244521594385122109624590199447100494582224942670752581765479772085473843123331107315321031672409065159695582817828124592971229813451000949124295479511345089292861087878379125020915528462533369177173228579731828063221986483387832619126540084483131458348386806741931055357803542020441802802439657829724325206960010426140183434171858406294742770383889036548009672741528415479042436750183193212625009788877867778792929030698974213652628405659302465610696331749115695142661708466699292208290081416221718574046381048688137352523647273903072305175963240627600617260435958608632826211473240571424370893045187041517368723923072700009048293412278690773414056606385839592588396395850911969326406049028744329702649070998936061388487188072128682723978428574869763193740064873115960348729374979996206451156084635060938050031674089560427874154815640577803654823263412456936083268689593687664197616237625522410693750411303988365714402884987604677532127608866448704788319620735985609959122134411259265234073847281943503709344267664055705917185576792372910399870390911809034248671531317027886243007961068198402122976672242493660434610886899892473921219468601477167428589025214308487759786928208470207968409782205305135809229555740356489218059710521697896604942217043648404838435465044305040942419030317232128105156813247909045196768884710906906265567795250907059640709602703822332656430347151524922893862782169499481036081617898010007597330681768707348061201055480999216898777273869745003943138497947289439129064576694851810269509022096988843629817774876851260218416851963644525313560097529979018704734769927846391115285203686135755847815115254195289127911835773126684408084823176332693479430694308610487628830711311030507293616898718417234420207323016351516940303218829286476092293527648832708023921540476571041386220807118957720791992104686858285201226182721206198459336158874950497704204634962049856716769315264477878599880637025208148347020334432038396952239117094506503689595410410014365947437754623455433772400982105483969007691247134870932826621144137304696090026533362541320814251802860857178789118802547090941010011801067619894737228156332917475431393966300768358147313398925337398840575634262180882196918588124244612684877877129262859905866640671387352811745234468906526676521513184922816393849032640447708921942990285305977633955888135602334562754703256329848363897212137528060949914394553265258987847400625731456458736072570114136040472542428451450986928063695802695596257821639541392365378433948205798597431906890730680711215304944611446050503107180525122073833134468687659626784797379830474340144874487901605336377244398926895418800262025680638222982515276152420608937158075979756884177963032379249361858612519028212698033552152815403154185249561619896465609881248871469035893820917203192776123635634850850932082149900336085693511546499708620706863117593737768682224487002990730639050521997194926667163134094530826628463179439764073516860921920301584901147367627145632397156345205998567735812688933698925379491592776154487210685508675285415137019448719890978867563544056326696513908021691905094977540109020639788569823363689144897614822837208812203350291975063912428486478250528609348825630925325996285749321840072345328935332737535477708245506727325237032127480327724953288402126606180398622666848224244141410537425662332870610319100072637668520540113397259611960486451190270448138074621198010366980647889579022652804382929882283343281441358142967960733103075895438125266648376629011902311621356165808650060119509598375515585750774004262270130159969528301986108458550154055255032225931146467909179085707272117499846833480630385377749244766444917699338574997775102311505944375716029733085150395680168128760568476313402326329614416767292621632515174254747990935537505463394267262501668459346864168564232539121454622853253719527496949394435417912635090590589308320388544758377277483341936843844708153560385322437545347784679014218090391147747710724662138553033985025800485306942781441438631916135856433561705460047965589765817306557406277282965059731256131485719208826291953386180420604967128888801352518388219883668410781628725729710530944780282380768951216675837336870493039597111156180243201869594758181434901364571075771259989809318455836332300772028515571615873525291012621388938446995088132945796906487219797135488992758635143751925217471340729506472085776042007503193507816941746000152957857624551175974091953330217003339225428616128427168654136165423797445001776764505369173840081538114710311245738716831142068409898975554849850795877378544169087152495192370147459969860758719388431397636466761198614953957174450562693432657251692235503183500896437098637338038176117419986353118770126131073809897946292638276154701130044877888870302624584086102679059574956873711660962394961996921390871149789711458138624704479115717866626577800079787620957735050280977771584109665736613682764597634959630263837249424772225782090986329671543631473026629917226513781979872488363890977143539220021177266853133880835602985403298847398442351661568436137764589060159944908643739181870004331840468415630824709787137020762451533662781001612520901749453403074160348543242252174410698354701055376014371725652754213636523116662890346990736254451281312775697701788436891507511388257784750447808037072092736907786143861733312212513101671213131015535542339248800574179287296665358844108429487978301914850013696089648842054228494538217333156746171001860022697769518997002109032632336561751778862092369583037251855606989479735426175059021870300281178859312842210942769497810175581935641192142122395356241003081332167204124228480419324529893411299886789218222762521944551712231413419244346653936365152196107732424163850708968362378442294158783347149953684396192935635413872176411260223112285997597347733250395789995167768923986018171493554737460630530519547998203482322087030263788351581206163042955844333827973504522773491451577319227301183166112341825875454628952073826765624771431024441353845409448770328287412515563704706643187825636715124061111666320945252399373875485004033576646935915958846001853923994115368208319878047473727387382248110214997463021999989305387560187219972038142485163084840654764378917076795607990984501003461710814592816004916459172028063149383510659541959559638008334686769834482964332844921322971392251261657940006187617215097402721022271262218535935655476363646053500105753206564158204960845436980860632872634146409521843529393667992572394104403394687601192595528150175176373050325915212713640391672907446726827829541120559333486998027118530181892521830452451367549340128785184513478435277558947766676475073080933419595386786338005016010282906459700313390148526725412564466191926587937100887052291030158997395737820374823493581584349469792609403982040778050587578403209671032200547559424923128616732803572618663553903388275143680020422085102801760747291149876503990129993048145028922378056794954849899006275364929560982521919031378458511978509818286752979371236150421786426768284388475767318041203937737739503061345574033711268210320947991936076018378841284706996641198907973572038408700525372045528713759795270359103934750538459977648876739498946163867185183288371688167812627602154331098288946113717444646064041917152814420751224947496249712817427988892546075559286319802941009202529563789912441271422584129379735536498618071299581128953907944443279248743607356973600161268307293905306540956029036907902301819575938455291914898457287376959505292221891515748235947141964337131236737753312527600138964864969394151575584532853222378023199027545836705874192189061326783145658104353568641463125148366187501817569163376236494154936981798473040785554558785677703559426605827443944125060517821484197967311147817552923309202999756039494578614866993207219170111323107829887907893000051497373690996426687287047643233675016515564649948189965714106660960491598933396937727049555165430796261976474264862059233415162360133903726865544591829466528344574893262861681605955299289824678160223645394001496721949564893216618035450171412490210259501133079966188082289449241244524085111801540810711416890710152902830209107687737489677965705094831325434853539049864784595194451805366563696422942631386334288279937657320037168518252266734448054153558570333410967461205224421055168637535283205781354318040629343709908643196652218796407220826361576452417048303774575040695351660112976479734477974617311032168130799813205354038771503756270661023172727867921658022021986245103061381837501550719412532782688172541788393773007839428996482878391777008366156130033508404755474475163210966315095814789123020444497426718326426314078059303760727246390740600875034115590214958900268880122516058788687911206846833558484658291680074024321348894529452147479452992796681654421516193439461685894436450626324024078043025739430243999919581337395997013154150698608436162820926433436560540840788144401270202551539747098756222324208161648455004227057217346309665262150724733343042580691546629301066750263483734128447528270860813513461651027317263974024360210057138600009241931916773583616926798652515690101037568509809759831566861792227029660827049310318151208465574094202582699502443216914607724196138686150818192279496027360431172539102211081650958171199955762535425869916483368322203163563588689847815486689259407748919792863248113389909039116984910345221635724375012093291721875012460299707911819391864700192953667320243232542143161064055440975226761216705339828596901496967456103115512310876352655417355116742591465457891157008203137071891927710525033249453776335040179372042978566935642126491451301410932236916138445254394482053516850904516855743677023937414219770698470031312289006944092035800874574527501012538189047232928160467860272292725798540546359766710129891125240228477671197548182438765650572371613949550194640149473492360741438382702101791057093076164077570415484656345217194137041132367645627338420523046693523084159801965443128539758327731919280995942655275849931402609077048081060229144010398342768369238685588718341548927678671655846322188178481424299961617043436868341543873303310135127957194937194344954773108110140629543592516450717422655234475263502544058837574851644148976633145461415360287637817747923052818903574263357444968877452900717247579909308754065690209632028343560469188729908580988083478957707772443696129605695733877214362369098119117263641568441231403611994736518156858997505449572032234942853928180967410753650479024670208709818120054708651230780986333134755760899577727760616739535412416453633438899391630230705740683184060540463578595483263322182790247624852789302897410502247791714175037755703973500154202181203350349975642801541379052306429364308864541257914514898295466049155839822890812064226739937310937231314360678969686538466505509856699802705420919469442523235976157973153528300716892554916019166425223697426651035150999253233438385663870392123430002472418627573358223547455550723487183693127791120961399571392758321624516869188625087711608163292139044752385143786323887308521321777497871727150041382282201537558877194584775903995586729206054766244053216319135378943173116496186079930255523606273591763388478614324173576785574700048367868908595754219990648282494695725073725281311379940020354333040448443137454328027801646914364729537484160718532775481327522030825319725563739692551965501501986129665303158246674549752574894678509461194217932775517755731782244324101342928275598699198900393571976070148689795180570954716634676172992580764892209864572284178086012088335497519638910080868560036894172226108477105102014212612999215251444008813432199495522693588458425312519927718825522426346136758487033565672157815854893511539462724525705429009318231369037294534331814002111958486900984582067815690613781889183290815111611221299720759867630903074778684887775616173466139718024804018399447142992140809491967875612840963546979169541909582650362780938032528762894498536606848100661453292634673780777756043704900939027692015804454221630668654243658565856766145838645400502537817671000147421435373434345775892703565291149694439987937367212547767345153858449999780192244754725571289583579017383642752063008409395954611824710571401944374284459930433251077947450054644904244792987592930917872736233740238895321408049904603715235096724905188400141392604766747548215851454017713634651314895549010842108406364993706674337846964999121248041095616915207783635716402701542945406089363419174946557070425480989779051169705222060383128927914148978011620270879248189581058890539881026256594306660584147326354362212256516461312313292189361532328321897709659530559625233841430829049648134927464511437481200581020227635093076381782789271815235075652711547990987786207565562631337679262282921981793251949443043361302774413403447345648134622412425534190603939173478046396486823988841043080687134585255418669734391014137526439987045370936754102696101640687306108795947633085517684870903613749848186589789386020360696407776003311085760152892578034535400617344294165318346089594317111082416895683602839886389933156706948086097532694632929035943319392159741315771134814501541904219546316932265453421739934442435464265508280337101506962375910595299797542421938799945031912590127523158995588079785525100842828642171296627386150558232284626787245323846400792863066114597999228231178620643092259285420592670891593641170948591713867572337102361528188996114944891918861692588876824343116226620572331620913121883770346737455121362891782030411028220383991191602051278518303766949967255381159020177060093283805366336144384817599411782649002677494693326616555820270956165923576833427017561349281681364580523668761297824013945335917968789545865906871085776445892812709067669302769941353824448546628915234992678910744161543213865910277815408489789295202601753820012869702375400106101104330960516844641007332803466665971457926899547608897454861346576727174613293694717881257761788994362256959834951284816623955532785086795756499990836220187142400193481003488875839851984881408919205469666112988242119702415590859183081807433076967349134200477027194275215210756037807462653356051581355643374792550509452903621265568930916579849638785229920966978447591136468793981351722179895474164704208598312908795891637004103935404216932585283231861531034915467417476797578285830930677621448116580563678827334259991539197422572158483676853809183306208145273427884069962311374817415457038015785288037191402973006601544417012830735974505661791291576318072273350501259084041802759858184749513678466658908090071255066327330765265247780656254027314569363902276403422463173873606049462589088656674560744401840124710065590177600346974127460549298989569488155059684411602910120487333549667186959678398835545393499477941106573729809218888651375024243494094796317625448349337131374238389653584477830031343235455057619199375938233513629613781411304218763796470381456118346827550623864118066162219546040215686840378658046856596520864804088010403798820829049034980775714600429180680443152122025941591694932180829568003510582614267531112895161089920664565752059667284061444391610499024598756584003800640135250106589125007045082132007935184340483187717497436682460473227813252400879215932832335912435673078202827912529738587322588157787633478820010831766683251998954251288980018996995457377028936683496579644187678526064051043969493222161258706355665370473765067322335821520526342035963215398459587461508508616078205383922726946638506772941196303901895174002725527375404327820175246797747307002545490278998228018766300376691648194157347076722320444979951968073043782087743503355662977468372940059958199779645129101493352099433396878397268518738949738720157439259304060404350717634305001330631234182201278775999622320353502655329611178160789615105378406465442391572858370166043700035604188749472756203739090874134071823249503695227766226546799103657494625820409486313536287018186205331979552209604610444761301263093702948314823920224606195836030998467922307984077426567300702481098704245714335343166111479508235962927098448889955198387392911137573440614085735767275778499353178698750556433112981476184397123275250198509127725456225412769442753357668510991961385647865830089907705172723895787388740035421001786198286595722315474533497077277406884243555234705441576671479692675085981235379331842514603629723514238580047961101396552731996128480698333406382147083102942045523591211648559794770281087122604163465856179748997817686969591918399596545551323663048603874680416324908851941190007318484548916059396112833998351620766721313567449175729709746267171773379958689114546997183982379166691995217687506694736511373167283013889921134607058087636155360597614474653009507404110886946426118905797649379035247087672399339373572857534172542247454997888859147361544820636430908153909363798676726935764571217516371318078891590634761146008565661384224276781706040473186509123877221017782083765788627102220908941636899038963024357594685602232636656684353563879375691954412894497287960236359687482300219021315963248063536531221679185545922618509024103440277527094470789526389596316402005870678527589926321640040446234220886496750292385467832744834764971941262046273230751808468529827209149986396409743216750405232175341375311176874612650028555848172570566866540674512294778480012515997119139955569180766176640230372050475278239238768443426460846971819962577692133254069047613356546215744372589453272937200372733682547056682092055037433020498319761366100277366891695814003401768094008741965762668679144070581977802235709133307303518156418908075096079059982772177430335759443461173346309932574497847240810410641137725493851937594094374641093486287368277853678943284045402809458470704906454208319779283833294684680316453145316382239981458752221143802951691146052421155246333294338255823511878673656352761682380445303440945499260492192745544250331627930416686847385077814227360215313362509582516466947906704719906564056202763283776222562912000364607351359397659055824881693610209436696838653461182436784303662202373378338285875249289277952818905436194043760137862277070205211604433331131968297525163456850530068297350556262273517129340747174227976733082532476192241629548647592151358903226837631649998669821737810229241025702112008951140791663435444687220606718521807062346739014872405743173144439072762274110108757498009755148312412255258202705138357144328317979960053240281477694029393340836053651774617886304516302705346796923009684808363280731212672587756708581930057790747400172553671513020798670313426299851652385072111972140871879405706473673452934000318492708735835078472441333886102823738309853097812847773707938750138193394415505524537917802666881012819659311277834345939473109648384001363060176186620972468774728806380119791621335556147552608475931415986444922955609976843164728595399341006110896851968382931014911656616990497660640900841007743604433412480040041075912101122059787473370657264192114583749318985707380110535863747082753361647940254853409758693774367385929908176816521604509476380385332216777160248550130158188499752951294245569401614416775211493913229791218932032526444437075918125335408225956779447432751614727108150354264301236436514055986022146864174951130012110242136584112024603549449894974817997846457266694602820657128947672297190312046246934071104894825756724947046552346160102307142078792980325823469855009737002206133702000027343323636458882205428528706226659864712694157848332973363748531716055411382976311001696027660924588914919387928167192089515144013092037359295711388618462956184568158783652389715832049414803950675211580224817337645358711047444253513441033119793304593766543383794275453851055166930943968101074459551103305837598766057848319433331217182446572605292159766435674558894751288777153874156204466776930192367038283647785902476408766499132182975550748433348490372992876932387441494803134942699277726808958681136339288441342333984551186421121823913316324550590233977750392117236514718970137869132339119555917793347057270848539167512008747996921417371445672018491791295275265835967871708790125786187551470960944069096773438445395192192636325002845168828807430738009008385673751542277254315504485756240364608287372202277705619483928840277579804315050546757765804698697834373467918034098548422470269274865238975340942720406128237840992717818512896486299516271842723939798126898507550659751719113256061078638414174508216305341760468554184318719624335085485075417064939831082754667196453716146797814378400238510114729423049140471392381827318690913167785214734805758881110814977718209046112102656333775708188922065581848004457058896157367355635919581775310837420524544933914796143332470072326799539619892556483501639299307394605889496132448278376727047131896012780873773781725315871800156940604407025323824062020182455407090618822052533960045707918359649555130530967751117089052140022436122477206111539292717967557186516984981332607763878147844197559760621834588428668584017385076703725908228251367302493068303444836403426872891136564532331953016624767036929326205610480545255322212203728294126159782836621727123185232888044303679708804888077951655511931058603400475593781487216609650725452554322376144393587388447129328347361761240540202573819458002990685905647262637351789563073695577702017670140001961179305587951433391916898876787550406684674633516466865595923624787658532462839668432168244027612419540484414229367807251709191844128001215876363124076086742149649550758399009857028188830666609374722387486710791293244521645036311368897185103338527274341117777674309739899405052484350372820969325440083042349218578642321366789606553292898701877489169935237794157345972072215209616701271958552020617796793285173735407379475925367014442767452768115448582906573638141829125238719836251169983321369458631887965502374486006226809213354642723689135725505415507536371540021884827572778051161732130532505611828695286496115525178208693275519502809685697698243338467930538304741101382673119140759017529615535988470770419575786895609130683434126419142765705658583133567791075528886365917264514970519341011033989692140512781874673468791139555102980519395825391123150136989681738123135337356906479209185069368890230878231005283018050934907242419079431364963534317317345155617386479765970245521254211110230780744900632983752831204015510910667534541391077156588589051760294479749505189055975095599313703362058021033631275839909948359450788011062310727659004157618764190634085267659270485906485104865141729311249029834815194456275400324749064073320246428415541162795531903337931854905122685598625237715932593244962529036825130024702767452367197488761827117309089022746488828593806785415481803982286172068117943271484138045376812056881008504708199400174262945877458975513151138590394149498515081382423606629453314375196262948423337744658582783215198054485250016019388394482891411906426651058268876988197209063207299639848816449902381016231435520732526710769795151429173396370602824556070440905561442320985079078212412439030456681637289573346022278038887587341650457127972410774331160234116986474873817496715984301768326014768760841283746359715158367559866391517504591710804399900394895980933681144721776451496152005901242684992384002458697929295764779291626293347989402567641375259978226158253774232586136514119410684161014640820406626217067427127874002709398474219165201721172530369412781809609608624249177426306948867881731753147334254517270122290562730427257601477001262633341500281629101978205000833571767389013499327079339242500784039799730342082939627262816351346595003693687377313466676166804965147079494689363656134422993452683381138835849029435715566873668500094397057729690428902492998520137437505898233795107769080284354652602445816628784050737478372002074563592336553622577843421996389172472698026785184337191420518337784992455448800726671880041673896878531627757670045669385955129476241290589529059163576727344366711466860018460200956559524240647879814644410347484378085794149949059047599765181334526241996271841638191872015702290769449432160587903809021427921045377469459138544679966859379818608712917461533230614113721841734951613665354650626188302266999095676178896286583498256887030194416340458489499181628639934976798671958964186274267689706942435940416474141960688739356326973392308338208756630863522458569744147743726102922754909139573850472496954255624940711466468927948264878837607720042749378012494062855630494941066018985992566753165188838407096783093354524067953108319206929650897766595265143019705365619012490535976921687365163479793904325982164027608164431510848953582809583037952445170863607199957987739799021758147672097413554332196056091675010565491159796580263955411135108785992452976839372116696107086505168704707201913607231716481586569496862247161651963174079018537278114086960507263388976641655042541967029016679585995670223877412488661414286307384505847506955436223852804978185729099020673450335387552047868100849996037613017896481843818545435837498373559375713290510406548186953917678596859493790164549855372303648172944523427698627466230367172349424792838807581152056501564441009865318712959318126048496864915361784601699659857863470292549840213322204462316300613756741327302328273770841149945280241718806693010385706999459717862050772985074645122416908286228224097058023864599703416001036684639846731842326973692523617970792230527699232295046384736226716175081777085756504275976059840823413209850017356722023488092450232604733568077286303931724645806152684693779580463960733229873077886159633318863996015744485647883916546571287746205650419765708254247681409749349660215814208988326237971196463064633791974573997983944756359871641905785777437809911844367219536703645264817049886681193495829848253188681005477183650385805931939780955061355469555620102719200398043939659443540315477585350169490463061173353219546045346089832282970058598278721273352874387532421225170489060801578583011523263955341641016897621649116989164912713519983597711352199954598071389384735978244282718987490058362275692341925170042268017623710141693037282479398742600487289045206128883225143200070505919356563874882993319569841052642953120287484712877668237383022939981121655049700900744614359506930434189311678898171830916996886479735868526978791187568794960358282676549305523192312542259033272461433786038726926308068007839869603760811427510736876720214038744099205377284651608091364316882854043844910849262638601567345008707422944148858756367346596714262411979074194073618468288253701228118272020098377935959501652966513333400216996212959047352656488664231751967425053478707565765704602913652697795546307870294557048995916505559648150038970605017559386732877702158599955750340429340289397810177969218943599453713906467340682280897624778100076406691152089083810684873451552882804612694171615432299098241166397455419753239415433960166044101350700154750869436052058572329017460401338841009493202015289544588242649690272527186488804361006900477398890876294909454244107129538335807175680795228564317084673323817859065475638226724808652507508129533367943410484902047818819569664460837656637736465310214219939951138229629685663239728461731387283827392064758323643141956063050799820563287578074161333408961403874609337609960015396624376579115788850579491573156938555634548613344365732649273895475918035596605214854570787315347516231019128493498560779548149828099674621889693017704297807494451507274554495347624581287258250869833902258627476810798154385476331975774742971048263899904408137138240942134387132312174823100705151748634981826767743509984501761336161775542338535489010196930337607314586460959986862438652618298170035250536801486885611237014917645405630495105562348275289920160500863941496276780857681441977843142563678969412948930364054755100603880703024109423192546162871355746533393579681612292052152515051027940350933920958134447665456384448873209805212585566526156392910728672904485226991592643563200226731656978319370077945556089050356681475001915283113826129707426096604227049842962011171368902085892502893507230064773712323055623424776789365381013761882683393910684116859633260999560979707843943870791607547716553170716459418556165949440106799811751668569142180499097786120042211017207534211140202721830819384281241005542777661235227183711673126286776216176895642353059130149157521034143850339613528135986925323505013087290515017991071767064281360309500328159976429415126077450880442067714609601570544156673814402110123170306587061975654069932898247089931514221791354840767213727443647904044744452033949797739069877709166418116488419858450874542421970510005883705013539621019293332750874497279669220209829961064250832182923635231672674513001706851539888759488801895659374312230682220806364214163857888329446925261063156258764140835485510355727373634776789183143093618154878552196228624502396556980773314358791599289249934662696384297625552276342057530595100158098334689306250952874325980078282729693276412820610180474806439214497408468143130052558663661144497731877731104025505533568187555731047471362856234046980660170373960155078838486029092029273336496549021937248798631901492792581236280234702849651305316512831581391891885722504767981134511620889860507174982233418417059971974501425620174090119276631139577555458781307661056528555381089895187191782117203476537103792170116150196361108762080794093820633419193674600844729079797097280443912314388965281995722051997931931143935239010581715676564776944580828682841352890254020623677082453346589776649318935767180976470927924416925414605927765554763248188034373302068786533528954829662226862405506252832231700576071597880279682787545797445817237786911670318238865408344174135678064772429221817115914416644414497318617393754088038929900176500882737542889730718896875845761890368794933335515380939796055992416270659445766680232988506658808086899909065211860777931425782910543677591899065054595325458488265186078618196142372709710788572631110175392076531452030745991970847077030826182054378229032671504970769536962593614976152085273253340224404565956394965985040352143971769939650016219608596379847201555208024138778197037244604301488833012532638170447962898511589087119232724645056062749661371504785948104182755415391452823894638100926013385685514401556885307417533918683196380117004926588230315374867033296496729838268988357080923996928529662763707648947225962987179539186738437088129437687383652320377314088211751576753051456761200444955497925576231245976660993240617808132328671618764902209095637962980495101913555616249786681273498603895684117216512944627764879043087363497276169541736242055325160442478543531514329865049278243795505233304603732563220130265446082486386299673878650469734434396988360273040966510744098228445372494394298879447568653750205359806949373717603289330289428454841567047364146531679193397897537844155552636132862457017584596209597952598238801402109138812334874992843909375077164993667104326787834214024529799467045635447614287069328161304382317132238677853913983320871497385600938906258972075130958026984461906005763021174473306481855707549253870239965714385247128832478467210842374303655464496753798676639516534662762486144388057687866654954324111342386334872098196516461128558979965840907020877606859421970706049112331663041155389420981838016913601158600479604021455260482725431444063638712152003613511993269140500086376927579259618621828010407293426981613111782663177211369992361874916192264307811395883729970738528138803184667152191784147306938838233303541535450117998035589065123877697233354200574589860117073955216980211571779382459710843048918065724896414635079591822520315814474067218704047861239423831955408998930020915655814048805623961313173304210845064386235945938618104616863732159857758470676839099011089925438982094549251892287701133925160550564555128898178641865577573458541351236175814812328530547556812416820512465451765516972850109361749626993996278653112078354671165016297018465123664623452017495613656777850821760764422986188343235888563407103587822675902536588197269339985340333732409731586484680650218503630678162671685772259159936852606570554276215661814758916416066443579687684590448777324484782645080918038672566735510829270955378584089510192893307255432198887986927522935602377547758964966613623409901487052244933767899438927746657936252856359840986147933026797989882034262657028022232446396898425640464019604130175126594816591652173252461664012631795241119848792431940627530074953354453921409403714227292783746618325793118612102739249703979806728193564778840927271363394592744762392527771963487767431930977813718073762737134536213857310825308564782284800216802764348978401363564436700085555625870443434843795421993772106390397133313985056399163004968666371638989117188452410963197426561764871237563242768379083858534328630564092302381588764931703342250551688374753894858738278301261281967356198196271361870205062290525970771552999883179577396737541698840720153604461524669459927886966720568510565356099068859994806693249227992854546529353973238812913118238056641015717253536607632269045726274063591059742723066408804237404773661873736274699501923628065421370099611950981515566697146396823223567402358765348283421295328021333579269393912773441889032928091390948305716013192021707687132370511282785163410259602503737144968436599157531882425181643452169026738294730509337984788914552819456358584508668560643933987016048275603476630936835993269785058486966970718912575008822074865562437431062600200158158200695760821665004507394718972043899681554669303181510775517752450702628831529040203164196659977732327699332123782302999991834934904654627274846115931985299967495276806413840887637802293610771505948812254889720964550321483760333940139632584572914120356219017360699396722111555259668072343115395712018655631748707250012272907666476364286110871011665456291189595281913253534633733434654161277213636003454397458787228999240928654095102541347268097479052679773637931920203878658602010188130447413351849761758950129562483893163811084297427684979853825091301004407139085749828121478816862287852005953685674718006887418129881708848979481031937065670986355381177741481591465046468578833021838865073669319387146431145704613888496771392255141088810622693246575828166302622490714932312580121842033062160818167314916543318937336819255163063209743112603936390936251104841744513164139935682843690463629807912398325867866935539613619627725584950465955053277502168017996012911553217790694803022984701704198827624231349008046671988125033952078746625697939523632211880505051296197293964457177748103141351033993149451661204319997723811444591083766743303165985293269363229194695535578532115834829533220978646486118411959482053529746104740629242236141212439923398042543529436726714608013382849501887079011476817563654609142378180665458820748388175266710968318415824046137958947659755937386469965993047543109817981122993188679043224718640337200928739211753789286879589170873725261813945171459895926465533447078404308087386495621713419794254808243581735133412525693837562603113004550436140549285601872971809986854797414233245168693515148544166632162793362828531417702819581774959733926182462100996436174065582330232178140680148356333800214604629676338921700593224655199698053299987649865472186466804443327079967502341457732941697138121880005049696043714308915267914770718449078275907832809585113417310553243620351369006271050225266438619256065908415547720099944648926932179633036779127258412476203537240586237892210120687089232460218857290142423771231466091835288742690485601187103822340405174056195219687808974163143901894663369348272934658843447881214151607703368020910373128051967456213284785864640580443419516432435068311580896360449646176123160416284893094278358740551656835975706902655530162540085617431820186995968190086218309699814277810251033993018315709250733064084478414313013767861756191930233708688398960846271035210168445688182476357072821819843737406301184334856862954876236435770943138768390513814037952118971519246224386498411471021367404285411475128575004156224615077264871178613624434528400861218264578369310427087729282902734377989917584114325427928702616477187911707370439659547406516727426954521762639882660893921646610272721833471297014998221247132629576441206521050552417605046564643794047066924743864217381829192006696258771141463399231103233194212571235063929048941665058085879422481348578936093997884755173821751513796263462273607468629484712379888610940932567509110529589509712988457817783154076472868927061248156311053741457276117072060227726483510815473938116288318825086163473019997977791006783794527446039556349055429749074424276534634271732583738090014063083024865025264939879865427749577384530962384536270055525655006190699045815445660402862788456659742667181265265667673903994392044566182434058525599894635494539074023034251480210296707828611528026026308854547008821115963147918130408245784614333887782097685558539707047986362257572472186841275797077986622927931091856219853183690261935308649165740054106480337546800212246590622495425182403506855940115201475537350606379589097019945112903577082462600939214488088447312336583684388604008853043369625567667074276261683124591580670856007293053310947354027480076292956592824584619781777226171726639029923338492733563365853326869506607618005555939462847077844532771762855417783079469996055121015620569205854317597031127978402953679720505945899915332802982029229699788575294144596181741501903762079613329798774094397348682719212088858829184576905797355293084818737784742714369655527107882362940168013644989857349426761476942336248735694302000469065142309534303567806512740411257674580453131327372769257159730199250060405755131316652027723474480571896722831092253366399244810741893223989707357649514637018384877315691947856104430571216141390081608649109172628876274837022202481778570044466220308767161073716221692513860030159379887321909099287154771344056897909536811187096734840851711974105327300893902818132098926438506031103202104047563517130427340100485951960682276559992205178280336626184063454017422026322246839874580108390218925099889490234672871378167295219358776685979608680909249358025734866416140717674879091060432869710032952203748501356759747942256232080782476756206338527930127575808341485466474270145266406402962730326621713300915263065791027414021526968143954023666836405009057943528436418921895168372598947892411815489875855525741827235375706061835542537065231297152868379147348527495103430587189089475723363994863377754249852527557642483227441940527553226555100194674349902764808677628692596084358405720642457401548276664023857914644547457913030127688991067280869016562071217667684736060570036886679410177208227729562084864248727821126198459528555132068154691559962394345156213193888831815483273585561437113578482513693513469370267345470012328195752941686936342880648389650716148586338833616079590314162540294941313144644676170199991378226766640917816013023552014003271268267951261187826219916317705675168154227407227974652017598473768977144109795969307674493927129167297759176614319307582779188031914810399330215139362943969319207481206876595647879443515570467560690611108437623849246078817752192981987342931810515149105488304931527323515854413724606413751392584004079092140045349506817233451570714317407009947107602614876251316541730112841267912338067940517218680527394199651057966382132055609435865859992666895699546970035566059826710669189223359456816403715033158699820200755549921240911274093009302411743347316505196590259247330468150485438445617924452389194969410205966637118907194201285722768581626176495724878318593255761492717983801585357969244249098172715874286887132605336075137822378283819816603190848296717690861613925124639533609440354458844345920936113208657847530264233385751619802423084328645415120746695943594404034914940812819673544580184231961613594760036725204792412738738972342611844800995468332471556207090894400070352390342047602448195837046053326429607346680250051893108173801114701799607286485416315924434455152001425285073550697499777642790883597261189252814094947983918329665132694845413336778651898159697891359850638204133576335510116028824096561891829601025336664017276027815006632703044507694302387670729559877902189996614367107941392177332979486540037950851148374240871526757778900609488623031892114845443000525321459057507128697610167206694906913869617955272836314577219448051145006668146584634535092701943082430566046376167114197370959211154056699136082895780597759887281284874061905503702164024244427394573884810523378673020530962169887902118907936202366170206465732290201472030032668995917674836266627673448206302717261386856634838055122951648604499317863384042068867079697161685500984579067420887703977770188280104280868745955206663923786458977929391278128800927528852785022008318137884352239901022251626544161024322261178959750624026860825308019280789338541811192988245282791460084649639445722638913728813233275377242217155688282540786120258343901841080547664180506348602496362066670893264663463605590243069524885877352799314294596959379845155928218915581059145783311140470273733398614688118464021366464027809956931412222398594400484916625099738239027107256838963382164215046413689797655199223550243068666148479963970610459112874220648762110169129182585466441727207448455723681133750195222374698161706285423958761063498037409601944833631388949096164566865585640867447807111657859737278576373045658145536869700489392043444436536040304101333353053973278397622560172509406373923249311144237369060963144652957724967932475783287226203779911492302739831843156286900503803004938629471321531830463306474397900248235861153218583178481296294041909997919126327846689089577971907125110416381572752502005053353299835131940952424110249064541810460189802602856072166176140338110291278766809239323208201332815421311060362564080935299614435983395485862359204785237736412030127879434067688202059095067127769760344172333662691118845713647756930632259906743703964578833461917166861140292669788768526450895444396856884357419749004368341692038866060983785687531795402705051286021834104888110159730797674867253616716036747333906794760501423608416767884101968246385635558815295403895906316761860240384713704758197961846649614603422357856279625532329171854877949799252427901760158009830763840020714448247975209908104630283805106162650160715787979209611642813849122728343095374602800179368527848547425442983907043891646970704151135332252751376877612323441167210570992801435928570860715657652102516200447055872777558476612178555826314661706174310767674742020679682923683850255502313483079873837462998010617645178820601733409455867960999119414733116941547568952927965414330150393280431417045446681308894503940214103247786556284304725075144243109967810132194475310234311354125760169929581417200363998389610431454123613291291955794245074138540366417390063025179612839329247600865123732421886937013421188001250858986757038314657523149585221190244523581494796757865774457681899712177704840426851863127880204335359358292549105192336211654545501691699219730732599132968338139674911259025962491192588167636162316724465776605523631382610190425758724599154505211730909517273763510338941494185255067196852522207812089669419177940538236560809506536992957456210618916958065225245602042315510690501869485599087191710411189013092517651933548373718903545769122780525220808703421191706022554703937862408967316082316039142528806399352867424113882935407850385563380284601777649231338146763297406056421308562166626049211932309073746474973545947209165304220757512565307893931911328800899947072561036409211520286800799135782770348966517801793042389080320996770733703957471277211925880581376382832349515478516474969998278125523568757781764025561897124764454189524103008853540783437430959289092413079676833330146444675093116993129697221552459529644083191617728690828588362408055657610105957547877964143420022790678245660048874246168837407715392409759083455688475977863143723133765987984952241863251178620430525780189268981874066677116496945916322851996762508066571189953978988583816837548034047571760865540923018905105415644280350454043119330655025145926537569542809391720089629581443656285388553247938259372498196746485442207243493269432500590586143672480268973005081856827622870659157335426204166495321253327065508697997829661043689556561055332712212771045603506737373237463174632439984695851270269974145985065603196210497332100373089503069844289806866493361681491465342118030123870150549572805556115255083699598873348783432190655949764577352075102401522342781607667491746033679964324040513916144392308623929266292530213168532437927249507147717217586508089331033288887793402906004374505913896850350620330391013015230505170330491158026947777409516139485886556189300876979414581444414875741605876423061109047801619214312375358837057191178826450728320176919276615591641908547244744509125975125792930309887671843235891183547011563430648506611012890763469899668852856749193306574556019632628920356870631746678781681702216277629823013248501937891400695896093222882041354817850352952727921143725011689856679692946644320834315939521235735460666733715135577237712225861726935712919731929100476628908482284980333846407169625622755236743799277442920580954747169647346557928135751725917813700559016702499324718071767906392326919475445398697463314430125372636893604381779705954075884450980390185278357768473249113297580244902052788739114037202246377873004795123803906155112781430985906604554622648910646968905329865902273215993529233020624804558485312106456068307734215843597754184244757633303493505851660048889638897212746492654914545405353822728767031311430620713692777016112708882563455510369361086703821268845147665126952413670564807854502614538124312354726760420519741832068667569184563036776549792492462965997440475022010981952376569425939446126148777117990605576590469622548749787225723911347508147513380753213767645350748687850553361820664204303535824168268194331658048043464662049634076855331337899364948302210522122336888015211538172703234002115257725628366284942338242061963849468216099730354488398287475212226244260647558702098082177605664388269540320860401529867848542552077107651663329879104220938507796042049710125212849276016939043731315977374461771361975272691385724940142896626012973316687801785902785002696318392095927131751584050420581441566205473021708653030410073537272791981487112111912187332037701593879915142647075548794687915378104554995431913940294601033140171766235957082761569734638385419088210443484906039358991944523062862208523693145450497850667714333651680782322753521692263538610572316877380370552024747835936151763016694445394707378293364072864133406637657506615928149329525196595779319543675953417282523308552443891361543540727385540900343795087516713346552503306712839245465202936964871034050503511870893151242704691460147614502275500646661626234805461097592328086391683716394622938724310839884958608779875468682732479001612540603793169620135806663160582446249791684275407256217569845476165203933816089341747452693098379802496844732968163688087818328646767149854479881250867345447322755481928075694829785071501376877596232224752895069706205549401505114808974804854443662844535938404370744698906373353155360644385867947277010999775176368669814443968613979836247604662379907021070157352507547740540552969043028949062901644685454658164160114649109674585990343504859316288030995405786483462856727149013151564581110072630493529472669418523814863363495418173036183305369261890484819983346833160562755966482028354867596022193608862621114105650053247101121566658408355095960674045062275702388398549149682012974762783718507873104232046722148962793267137423229461732082638892043531458725324546805503474858888225991188083150107984835543109093074991760019953372496066175904591484612053799416622911313485194979431829660807813593562528020324245687240518316140099548870947823098110046735450303775115310569574653118157087843414116024495701091637728619543681429326630840875573545883279069384998225106583047670001094083749903657376891173023068976542139867616430445613955936663646293206561369719429254533333228446914688354916234594043784827909777812899334429090199359841009816205377149118594025429146574396420779668813228787243152651637493037282105575466877227446805845305750012175006065453743519158688160413512006862073605832621424042668988308585353115635872496776566478945687474457089546004139680342502484901433872999112924585853819301487361742681540562620287888013623683902871369108926771796292456448674643164637550159332567017189117483658879185511060591532204440152555333243911245300879842562204830218383264881644524014738093304302203396974508673290007994248143410795360283210575405831267161394298859814475647483777436871448431326070652680367050499134159467642521776397722579240212261817625999385805418935774188017014809070541201408393876055198089998022272751186027101305632697865581943214894579419841031465547079357246769041128941530249525061064230846628990262607934856101959102662518261836768375466345877562514910100486705431468660207265373127350624697206099889806482447069175030297986341560740962490277679993675008548994096495731296945243834112307546857485796154289669987997529491055973916523146226906479746081725238703675796403699069933846159012040206497746143181819888637519414721927426444495707587781504230271793446931994797039797107098214589634561652320726569498521009674820677094702590920577092350458419866756766686955387387452180064206840918612789040009200136815860257257049545269136019635523823260355376737933536649316698603554522720722332835165108020509588075251146919203955825768686478841714457763327843991232243342051069826796567625507195911353848224615225943700786814298052776129757861815894023339545133635306872290035339873328553795270033016331866018995421496798444479128594568381331964656231881305651094993568551486271870520763162542339777447075205826963167067345163141080637685859048359368324451154780858160720066559079829238581007849061705049048174133665032544792659297830185980184620065633619330799126650959943670800721526694796982304539495146351292337262894060430864221997837734314089903600898941862964552677229248154223138896196508766293579295405579299512575917131637775872044434932350511358789916369258168896955290868769761160423505063092461799150965860275610395094962476523939861329584681924130848360072430952042837792832580101822911895047257753488684188109069552028872472620117186169250963016436751920384273459068439585864511507114214906427711083617561227201311293445808130561594957609269854797315144171705629191343648668103421227619209918481175679859150413469662632447115338675044354701037238449900670013833628881866112528620189094521175929314362297778853380459392036570762036468110628474613103482546695030936688084020416848543783322934616751961537917134489018483335846438365459870282598071330549511683432310280363474345815978962630563923926640879691991395925115844769582586762019105543922155078322244619436556070753472042943026252141797021094504942429372944356329445772274759729325892716735465752772444112951215683470645248262417975640947921041188421123696492192414386050753409646851838591193185949823077966717534550138508812765698481062996422059513155668694848058880314058443188003822314497078569123341350859663772677289342530184213134070754356264140002810123773182618371117118646972242702341225678673677887519948795229473030431970711209255709921569487665593979925443375465760774928783212788640232463636130286738962905110906473469560838543639965176082889723359416250740573306370748466537612863244397699259495771632032331170315847247450960578299717889878771771333507047732108946879056475484232546485789874227842677883201726031962996534105013467263908254454145012429358595128040431868665015650014580471186532314881936731296003657955058654501294971250325800517197889106823921436506791773348646187859651504475183959563699272501716537495557360499294233508714590702674101142007214863804731995380282498019915514799329570023225294493409294860841026499909552857420155519943502136275531114677842413699399928600110197014557925756894558763554586636339594243838378517341127518941380954207854501457022519900781778800636208852421002356334103338168572688131079394319037383379792491455443676246964894199821094450476617906078967263954876210432205883825990787394261980274256539576608027736662443441517986036129356612715780803532142096477246937810252700805154683340029512915613537259131930229757722699904312731988595344108928625055025055566136096528261400418420111734604823506708299204022855261616767165662188167108947783519611937391204104485512426210884603570078208346201414579551216886134874700379387227503207372382074658776128468987439864672670214305721933576609957767254804221229250105577043786202007846047920813683835106296620449731320590954062164124815622871903394616996137683660910284173214434955368352149719367361279328587193186879180157533322063368139993330636987371131750686410519966363222700428076125034755206771300046859485161551187672021298658535563895089199693451581179275996711809546880846853729548612107940860678395780420012527153105627384833547210252963620075895932388067191367883497057159998206344325261875825826623400271613600639557405044099171438420644087009506046885808339485620003283031004201645004102687676841051061116210324293147130014485726569599659003899256808948690014765807387011505435415197865954079946180249592373651680837209071691521677544094190043208191716218423530687661672592226955074272305500754320883180188097255414932498303305956400624963674876926706665525120035124579047323537993051918323865173215794243599656453925079610718536766699792963793799408958275265505344427157132309183272237345580815162466668592484694597288667288436540533749561395565276798028842046885617798007873235007499400655045454570055314749660442217864193974992393471102381359762002004677505401013185651301704515670283802674562463228117773102136982640471589109573651318237206290431032472671715781197575606513251580082358552338819835674056583539291239988696665494424029773820424742372150692039234209632126778206464051321451780437244151586170993323854841160348093618146584665003588393303771922535626517816756327660279978104558596536669110069953923749324183189591352337902762909368642153568081008844542769782805177734833867395895785504903089080536905405357744948482394314110395833924130879230290131422275196147459200014802968154408383974774404982595526245251538655652865054534316251664310384544545404864497744713235913721628099882413256648612099739553836885098715547587087183082086799150691555980056365477863580533738405692465230884011574303860871151303333683418848397653678774708242844904229856647229688602865585105042525478125167533253495007329556765988673469252816786511073246385270022935622176139176739510019865218376514681617459283418385925702225977251938074194624169618222453128388533125556399269669982043408969201028997232162590342189565459070886654536063139292590450599906706344850218797945750396680710206078978765926842644715365672451748811687934831294698096251635115102552865433514246266828694797175015981267804946366257875624186981880393221882931897116072074488357546875058186606133834457403618504911342197017947134374066103178960608339832277279747118764707590485796612775653396665613213666335887253434541020411470551997015331747075648053117906750708004584720656218033419686214488995434908601900061992340754199780450343914608774339991382999473325353935063469811395969555062114007873753483376972969874583525962441601922656009952621931756456365059915895355514745208794199825751085152894942214818493473458045205905903215276315978165667279350115073687120111860693392158851058916618323558924353020754316615182729711562617732920712573980686231089483509720509529899173559675542790237054601402483092082966417349136076922171807334293724979975245517468394995730281415258046103096710250974624495652045784522682124061534155040783169706851083116995258288433507888426348692545982223804360916155435600264821266061116629291289964510030872095577258587090056549995085655345042686963711583437968236970782567995779703645937147762942627227861291907607594669938020281237278234032919942646089063389700775278806679021515108611780620029138128134157883785435479790583745315793546110629813913448694655637379891151713656512693865686757629882394516736210288646682685970473929449331383661522054286305401294173908860907663430332220754946540917287608740463865536656700705535124706956913554961883946183465061737825559504176335963919859272392300939345730456567225427023984891598923833731848008663403708736068981339186374393139851237613338878241159072324679124905216576717271496141321834677749084551377068885538923243991583399440294080212343553364134447662258575571991342724331919097718160917522729741909199656334443566817519195233469811691616376883798445643563228693855964141020009480860260624483900096763349216361553411920741327023853544201042561698880371453811336399448989156104278073583385509794912906910431333326789178547783326636316915672068398181590806277883104066400426747174551274123040418067490800444919181639274123211782612308180658852247678505267528178983346004611595468319875142066879785984436092326125568674567563071043308532658511937009686791979434843164149190793731842276178307106143080476199378764276007691603557863566177807595941888636402087251018874174038856706965822392152739067055304651789608893976215532114900854093106898996981588926534121800139739810874642282491250563347301166103201323919401134186530223489705868638625719071320090920679689163016882187472190185940191376891310487515976620885487276897116564816928896120280937001575078236719018991830292349629533739686447675463676845283063068585697726840267078066459784624565954735293120659035069157224790121308993503706845047840758947788183300360117314955190721820196583862952783795743203697866483698689560032625964858515938057421667049091550288016956542495190818992310738759061579114825876584022300904683935847879616499911284590813846564427540038361799154864684426263715554027418046164978266980718042063953566486971541228997142289317384566296003533691048698474322478109102365389590585471343459210159951335063820556361826589428709027960966532183109385933167952458015631750346745635987809551704589923020173861325735624419447407776459717222248022635143588787941287530159150236564958527316033201883581666806919971162298866215696318696365711542968495335366389383285344724547211790850856104002276939516026966443875622058366733467236433038214367766471725197839908750829621233757083625752089864051745854449050861264180815292242829927174603610759425382373238295608416215040529526197514043334130520719558463880509174893171119968893758103079330057890155321927498462392982658685055341455829423264768514703279049599259331859867450072542859109854556925257192874286040700998331142944207889812510751433112748900999852633980422174692870400906324932948997971590688194635932956041693844586777186472576862524720566742585051629105035832619020674232703474772897053125463956971188270482849385694675896535478921601418967276457851106860271431771738685874623341421702381415651771654821636019036720517385822599594867245847556125008721297353243622719169774749737520235170863309228956265040171826623412567661751574570257846307546311908476643094388410945409188399566642819418294696194458525187117310339702579267106915115181898097955061365769000079837791164671282382720469357484444168604403638992404445364945370786111951529296768181178030692756347435471335610555726975499363204843237228687506669186149206398435197074516357123445005567883049745442441836126172421345230968975030564309521907367451829155711142716192650658697956114767426044188483112964919066199403552775477185414069425985272009575736769711580114019621183978398431045664352256411785733959085608820807048384683676622006908919488073742847512872672854023153196782714724161139570511488123786158893696371076804942180119527771249788912071263411198569988594049474217878002782211053168515801279888362512629572689226522686585782212705061806665962206554451500906308333276868160356934745488142350636251434942484619207187802428832277984231185224268256760677334706424420984504350196443087252573998946646117541537145433662411038118025410045750091129359996184778153883294063700572682096685809763357263095287729229829391221290723373282990757954605413860518829943586322983966000698460189853242861080069737815722136778868555251766265977370870583196804493900880643796893374409621338261108849301076418010886963141176246836633385573482405142040309817111608039962256097253076515064966627127923013082929991911943558953379326033343872072497748318663419295305966967854396083911138044865705469517766694891483822939996448011577060102409528146800344074464197316616405458797275929870987080814172881952798640580138178464077672284845011044860377183570620894552610887826941151340106863367493651366955005417342145143261238603776145981129674223581446162193190048972611955258791005881141192849991421830060434589024245095336549126798782108278671549651892554520468869959758880929140767953461356751991550689161186848475916551888914583393415816685087136645322718144499192311070173983958858822729511305156305825731716109379643231978919846634879705909139261259526234378486105821875122422448680884669146772507979352902390480296917447480255543508763934459171959787404713738887256633549398045599148979661895546130830924139514370589414887151802886666959162116416133684247334141624375139617757045806256656617367777122305040488735786811202422669703968534758902752255643833644497515805785325377836784950395073653986974419545145313782113149143025870294154852047992942776651531815528357011826845744252961389859126340621029650970464976956843325924113669204884110220991309883768466273782729519014278433006347289512572188321945230630240554086467697843793836858514277912374236551701567821101741755694476603476618140015421313887494429132306008920046042732033728533409878881340745698500428355996938389431374316868836640719423174218246335610088612125450025877808638191113241240481480030786794384523775486728250150288585470807290087685515889320896585322879825977952350780687072846089749696001982752314354263843798837821671730674405853559504170635114977547423706657608787191349128959243136612299847919554085384752884144212466150884133259091207899486992388219306680288562708587171176688195591427091251505931209741256682487527936152434235714428294083561267663898829058344662229977961412975538205902527124439876125563375646326764301925195688576746804110813625672017595354016677379810318399892505253126172097758194620866019238385095395517779356790978364287580983774516263259714905313955549242560574635372147828806533547580530746608578634158411760813725244271022856265019589763118235568888940216418895149153950032193270094229903756155597234175670495909095408853502090871088001068072600072324622417586069815839660560858846792093193633997539022864907982734147972538030617821034540598440865923120294671312998191667392466799485579046304265073762837108474684331416360660673354749032491897667708040667860292212055676056999446721633560280640999268991773112790545622870428901860248544551804373224588253447060277621173158805044624259960888319907487120564931030355817251307864325810785172627859313435428453245018020657704890916641233244802106171858689948807838826589474666899672747898436099895246343947709182395487793552925445402943431250957261519528456339981878612777536017807929133870039454122152765038002545319006165440912883902305485102530444599857317743178900536910190271462533743607872691786912565888158712883409400431394961247626659466382764617824247941772233889629558021938959078231213001956691946552441146311624837740310545342431402433677289947736073629813885087395521633589246838994702394245959920058006700042241369852353124928118971089200255711181537443900648700509249994345034314609118621145340378003835769192870621493541213704838911096894758207627867620766684281728781821025351374418199635645332914404642827243689320289346751989010717350996748894576539177421122884523434368204699532552821496370158689938422656233396374248648506475689492592227167437046602817072848995330655827278764653617881664114764977510936649689666382528421432143370127202616676896941268548182190445106017558329248673547511344448176048375420750199229973339912042800465591799651671654598404496672338939917149955625226257135226523239038654328211172738795983492922095980144303276525884036721570469270304724433478736317617264550268409298204264281249796598189736290730604110428266369427020146100652880915797367207337064802160135329583222917921476085726001909870420264985457440161226400575993024984231087150296908507452985960204956085220319509185615059060758225615206429739268800435993629308084178166815786765428813958872906032118746684904148947726871784924734889980313445293380425594726514898118323369215825269829802575822695026327099448117855546945323648151118447821660244998571696806907666519834702306601150081473058487315122888827971858188581647004249724494523467294762284867794369768083421211928945231659359261688950231349798708284649392164744984841186565534725027216972195843004037986928816029541601436929225796344831500285300476656767990307295087068357076249260184385172536247368511283727305658871082347043406794278455682867045987048575027883824185729899783588051158795796265776082657490030671084555930826458142595503197627317574101792741548009769784117065218588391146608786657567560377529835448645607047667559293069692520675999941585138606720331041149306748774608426992680425557286082456398065609282367564376507673918048416853409094747415773166174259711778237288729455858669281575118508928333102615124715287104501678226373530956905198362988848688402997314044051025383536169977119346486872410929249959211116204321869659060773163970242497421082733733047428528123858569724959434113558052028812230605758611281196650002939863983096874569905017460618428351689898423111901977678552772767461011018441336038577751472267633380366280332212014467276544998303241933715152222566600803729259564565418342990914828823712535891688898009343033107568813009856312404109118541801037070196164839514798164424443233944661781723423335235617849496138883107025697569448065387811144534436573027617471386277715784664989031413720094908366363782806320846149671240503965977396235240681013406411421996246686821782675507609331219608380042342443406977983378676907582928044500005616310120122643002132877162585270882665827411807741847072412770062775628471297610648738038204073443716573863520932259472525830667397149769494414158152623748069420016223471191985707216690196660272743598967822592791711079425320800058948988647469584791261701441783609709296705281497035729444974923993279965781515182332573296117020339799941553676197990611206292824583155457977431069475015395737382559286291197100219735529696601994200592386121353914560812664614435983773519409535931790520675795933788734618561077953024293078802813650602795693672682629430845940830570079249973387881867807616436468729161896862723133173061219692142865846906120209836155434507662908737569028893713164361054111488912023621356215429281637756192984165947786009972545026310402922977128096290139400772428607430684136728909634699433041165234999258794295049573163278488860219364786369870248657965921675028410140756600505728654230565749332512657551826246242411864044531707936449757530680527765822249381629189240649812195080733334884402215521965644278830963411104711124383818140241383774629410144878308251611346961459062182433938194014126506433214484472944952310415292472183734830707933807662535722641423206263162060333742275543698609186882699582950348772848077893316844919476899567122247532827186781679069253826758374191462498114311599328568327316773221265155283747872898116207754072282275342581708966572661474244489396843830212794983158884940416097577727343557339217149464192882228638326679909477112999639099239838454448780670933770946571318985892809441360892939481048601869321757738649921935074796233006041490660586935741650483921537090755756622754201872976946492549209817909005049505583695151223876033320504072658694157117736415008860827653641964940770427471795524802546793461136949730632845016459850344235128663943147889851933783986012473830532617972627477386136413220887015026036339949232267109771323524254939378347730875319809123021389332486525051818094103286573636958236679300509356007844177124700055616526783434280476734351922096936375508438018014852162041099377120936712792324988646036757547064929741008745612064939121195543813323638445265115382009241858991298995627772633197181907872164372021314273507134066214593096638832824732458992670373881565511713809508682170791128602953307866769829603907504159818548439554388661647662817022795849835498689891742400705636364732256937705825160760645832110848275778945815207830316544772595775248487755884034691761590440942062829835519462084125561132860261701333312646846326927544194713887048950573281217190125053819872985128514713554781647377901089878631005463438697761557570278987107100011940695773859904294835229451908333082782518352426252940836108267939729456719884918832726296374977459010031577449304229134536671478088632845335547852414993645500406348143016623379696898658959841202512343115435475098530092180385616795061889407201192786624692547923434584612248331519873950014789846269263729081662981438568862836763653202340249377347419076158448426934203562444141836972166263007945573145573010989350770944488677289346293558118817484372171520815135995681695802717508734723752022038122474685431151917828450379799341699395371611274170441134118670643760470749164831089087018855936760895045651414034991892188162732406664269335532609850852195742760555356959592784887923797937789271180261183285888700516985364282866006063372770264044999469267932242892542522053079431730677918004493094343948327287473655162398432569574919990067586020743562247263206556955415754038506021894607696382904467641306811970333076081414292428238775393439947049304432664752793055530931229330592105076912195425605499322049643380001063347849970858596869023247315649581528133460182189430140254679289536490632304896066446823540001305538010689109374770648766493791153685524906932724611059067276542564119683984947326877470653355713044654779534528244294703318492887835841367485875012106353125054526570814429997565091111103602113943125444595647026332028663461480303985466037639312069603850418210686597411890051014596489072791794205881352309025188893917479050618542794912042410946270932619332135920091457999089237478843681210758624972515821967404767079135739501821572101214358071457164140122069784717427550384420840450615130884952321264469865425471037879009551511999750772417772156000511462957991808136234147624423704601540068381069180031589119240486446479969093021095332087815368064826885401012550751557183049936109331484924561931209149789641664225232434094647342411832184360667307046908111039851011654381751022358146482639255798537522767046323806092928139645677778493583262480511088577098614867262687160959232990998296441010828465623976488073748155749326916728167688842425548983125302226312293232102588533533929408310535789603216994295185822031440093041734977432860966034768928689757629824289519248256645184528407393888463256429252371361872064699373244953976836747219943437537977988503418154940766000123940865743329252672545754263952908759269904725886924890999983581043805841431202304031830332660243249393397962668481685975126400935716474635036855892106163791090283856957042086356988909351182465354846285950919961536571469070048376500601579065013031482682324196913739801109591504291327403125710330082203276293306675631951631843564241050652304515767587322040646360250162941877039919979044268794240838148699256621026452836052399708934269751129734536360241618046379340471009015231285290262441156844114208145231320130642879484143914767775101384252023566109682580652301042632203750990018864177895142579569486815514811722008788625830718330939547809692246110365052470374055002264295013480575606372090019290431808765199776722842502912690172205183261287997936440992078691771537166165560147050431280733429455184482000456143014104688974063702117550512231611061065064592815569852074126301238759454040705915003982525052545570326877636085389494723274823486632284081823395492522685094716266928855994208329753623527030320679129129545661130208164537008104455147739086935494642084572617912532879353329028298487353672760597246521054572610942108127986853880752535308872156253907492842753438384007986358002190165548582037977545346873376107682759458692621516090227978327430166823644139276379289495219942521770400902220959726712522523738744797776352157209185589811225666228830135360892456107130790424262485036403688539752538636432333553181565261138752732410745728587915395164839752289473750819129045674599346188753639899936170450083343074806644459914780754381253716506894246954177459986240695883117230137655904572913413795172233081222387164721870632425180402753685184531611732637617986666835135987456463582867856561238606679700846410010506367067196335244169113085728121419548966034393073479521258805921000729686504658736611026146047123759583228127827108962577590161458959304893869384285854173938204978603974561328283221985339990280203494571099067418720646297870344002245600303535803158736353798082886692927429040553274950840255831700578029360412347261876058181053428855554976871097852623520820196540222209086736016833221320988429774722020341665726451548979232564767715738787519074834545863112869078424339636374744486369153511648534502454713015299950883226310912699462633716180009109465645492451350008502109235243992538681113470524195978582320338212535255912916700186286631006294835950221346492162009574167613443603488891233387458066190435694754935090756445608639682921385193324209851870360503708666154855561772159279673418732640498085501485521169458109608453244786661014071000916273973489831146588428466246532340607758152801239837705594423028438888775308245108020372983986098047879162611250999862976801420984397721512173632603501673590654683593421528000183149135750429145021760751169767450088299589000072642027095082210753612284237935935601248855741480466573200896703523059805145242779156886125111793503404966941194676175169472403868444641660347986274319220811697462556984326435930536996542978025285131070043839478255774594889754846111717836214584359654454213418033256365727571577688905696515143710738149519609344272866527463403756502222906685358737709074460847455665697919451701025892819946207697820808011091608523382985594008500024972318546952614601575237231081093470724174739241786152082792008522304383560993896249893620596530691872231076370323308944672552457173751953743313304707959421848829948905267956306110199363046928036729143553103676544132957730680094844901870597557871059543774118591596202434831107497281099033443894782052674011030114465908101386283860129213571725682471690780430244057077093481546816922683036579949008798556440654869137951535574817269829192294256248031913472868401160547915780074700643473605041768043506755882887997141713615848383870375217274521913988270205152264995539185820312812343564021002197632674867211019276253675656473252916929494628157127755029737942367190488885803998989418301731315381270771724843365860069139921194217635002802879342975281133741804952791473229563955756950670567532510184559901000132002609576341385003160529094341843579884667480623921941676211822700860077012305843316801851078606902986602871717729816264597319628565875906222492865762237457634083696635194467675169784894761246249579065312450559720172611816855328565360096368644598670560565587054988757083571555025680237034003335202014753431499256958059317978802089496383051693670258473426104041434387782733842851355541765167069333353730569942900114186459885349249642274932342755998885617195902491806301656891426527793810467586290658190797579810075680954291806673669580479482328308652618934067668227426578672563107579354556746619112663980202375003221517040665066899122342677374483369685063468473959457918676459426237937819150877057392013891940350214207694809961726719609205969722700438797251797593402845842844026384910542773916310974241614803806050567959977995114847518935341298977854115814413909174782185860267692168246958940811766285304372469646133578563037107397120978143539939155361599058149587748220562687242766729041347859025209870100461859573184389210915175446102282165376056856122896382765805528419836899470118968100320153737321787054831013251401175972860737000700925627374376172680532372238788425623716845402879543766323971721355257634312414710202563912644462857029756096513769572431046511074764143300737276361132380181516481289889747613269928409010229290891712396078051725469917973192576695185370661956781702407861784498061392080978468098653174063630556409558153459512321868674844527864122976728676392298060894703562507378469032066980846980403546538087943757303597395174488325425987258992361882340059604872652771900108733186199686220064468262685545706240646003749192049332653710185367515927856613708391482427542007043892552009544881269801959278779483244425911876482294389806063476627319809147709762530958800316448235093801934348902901735957366865928184520259072585095512074838832211084169670589192020575737720930086817611652658722161958921675886393870789933066115123427266852015591769705748686888907737083720804579761368773579931210079456695125145586037342561428587523625296095464339790501059434153635061862643959654953377465381585955252027245830878891950539918377952754138184253027072747980744968551875244761399323121870840407544481555683243401547099388110093682954526553973035921917364042143017959770575807464035943569658612991734594958291310366811894747977835432184142347883801888425143524042098602721716788686524618661375631856953746845240898568527706347487107163345026926840814358182834912805872062188788739202407618202415838831169681925508690565339323234348131240398337117158603832874110228062174907421363133709525168255874674210540597702343979712548390817868903053362402562937425387556458495387119630438613132617605988944584278815590199558344219797011117336650573080644976408537553335689445975252117938411945488060378094680396187587239150609598531405638299773983430836397221111364797259840952578089675992274380242680797178138501986602090651905780270863206663245837733130011793734238369203213097019701591664330017335806910751848358832964238813558621744564726242537091024302844249673790305634829352469006982916962146868739710284791565080915597574858193176150400950039717980793272188777640360676356876850829503203636282324426935149364055196736191844400180453994537537236729516745150006467998118661904894871545846414000599794522429640371293898181400333293454657216965868779385199741136563807883709898615017542954573313998410351246183739010987460817589004346015385536853419414007572080309688965628267432284910483544079733091300458176233607839252446778783361642625042316352838630313292698416069899869453131056234777033532022204712269993660192706531425010545284040263466123874557502162334477398589584777998587192065347576574277327705330126489707550027089502472744413363433295635661481241913959927562907129797734876564976911585132609015144948881313841198101386028713337456081896479659783835705878395435351707832090570142033076474199498914818420279381488650892874272058634484942836827416392356298038143864310927409745544649627127304430847789359509246066539063943987675880753033539461972974438548554866234135271119460662628844487927554756362481340652655605824572958894842227607267439528549022954464539526384454877566185527618903551475710908269548281045391738541922363908545486357475752273236543326202520374598314979852301499040454397021963208473461887936689932188231489821949456940809019379391636471595607259948572409473297433260086987021883378161666650009941119154273367354369537086455521499132025025907143932633186459393646277988235222350070670147529532172637509755336765494960505159845251663427694567215087686178702553900795615081020652924314892493882395657216382424226384819462565569349691429879115374831737313818646902320666927073428655049191650931872950948361967011511630588909774843236934342808493437177144787206541896863717413928484209805833554341764754407110077631990720767240970603076383438699150961625656272760033774197476125734212392187088450309204329407446648517211152707588450504321353652910924612200004921102781652870280981435394770985829935614141451628979392955003198819504815326086193449237827585643981247457579912602077758624223310587763862011427351704280249238560269025515819279775172321366561505713142863511102836777333906257374618584272541353794061339483944593322525271396898203163605533098162868904110473882105926142562460683608825170681939876768878418720338253561924863949495363457677412195228243238130089486889482386149728993272989121021358100499412275526129301968710755934960683292312088964526757224480222225984158261371057918094600773207974800061477709461627941322997926635238313765438646012253327932268226477692776969539973359728798680200379798387349092980879289940452200904127640297392198050919954356810141783700063445041428330147878968195804700923172281718962615329523953310042914078895042875549715035813481881245976939370223440037083478073777328806659415486300559645806410982167666614544366524834605299460733437571999318839491313544258777224142247671694746049491083499525994572775789370208684465923850022399388331583338297387216643236534995945101692187843060567812903639730358269110500338463354396184734245356822271055789287668398805517984876958567731077998942453127616418385854763199035517379889188695659206133072842358601722940848480155507025339910393762087431262262805488803633461118307579123005948020667655663001387595021959572749414939794347597495477440767072194724286044830381211684595358236953712415541699091977968865256280825741803236847801507731163127432178292194269505889117733624307416798125414244969679968074013382141666043103777061631743372834228940718792778669367735300901377222223356523658660877556753561075765922942688771538186452702136396489876807757787117089606399425608292337319351766410421061289971382581849244288044746697603279856790210058017515832702107196679581713124561333970299178040306741734820367509700250296949899193182926574976822147646699505044394193840838122502613918066965315710148564107784027101620940546035443938960996881460140475923566884298072715816400910538143778140028338691848342533435702306137483447288082288957884546467913974430386194813115037828056467536459247875055394406128139584333586735820282849339202345884039131262395499378692106799092354267222748900743716652555669005587520735249551112853155172646514711992284803001040976872354492520413033213943142185968010111877173601931151307207894862405136800385957722903824038814193621405388639202409938958873858453101068483859297916064284581423585546257571928903607492524264576712607186516842658481319785823129982671509787558993163145780950272912840591283366685723721977331137403392017280353058798423444455897325637115268375387139920384379158449906094442471887144593684934620472285206596715726994663856551562292110965665570687520943423818794513917350957333725350389533715324327804560440003661145216599701236111112057380285423005272091380847697690398571548759304024954951430356152686667314655692002592092383804388952067136338336621340730200727704462160064959654433457661905565106065090441813860078190178308117166542570430255762082497148053022466426188033349609234697652683461777003553084224213599326013868885551807679824421887352740725697172107022086976339383971343776353698001700249880829571987290216208155435549636739912917920056746823607779383224087535916923021588961564832336247546569208953446439101736289685599580112030778326548592526163365298669250413664306886170787771813492902182668401662326588033612361899727100705628594426259398095437197315949319575104132791381024922478050442136121901902032360436295840716684700834967712753186352940696451575493489756395922655698675986675259911311658355224896961013000647733350678382992252747919531105593658082943258052628747217977558147633511821578663195137323244866027973644635705056708082419442033389862640661212541748641678143137217243021769301847957936874687466203670521433019667830054010169742291894401788500407621748121308053710383313257039821041593280289503604779569619579800035482144197238338893624666607938459884506263902090142387051926179741778090890879947105342801905792487586092006954926122580461424063684022936870336627220885611159465584465100459923460201883414400458850953090589448959146018993360051970286221892562063102474721248762566185612392766500274641095942065114395666514920023232263110447931054347204502242794392936395351099305092692269421109245570883354253216476652853598812232055217721185550573015459636761496637982027555728867085169868337425073870809503408710459740322066770998647556600114126601750098198606368968362542039527886394435676810533797093385015758462104429303001775646714096355567931143419783517428145149193514915338457128351357095262080603871157048486651750055802047118298232325487453303349801486510574358829397674584442663860619032647624997658440046933996934788127723126713803065386038943069517253390382811877403406929484479212242985180723712535224070123629908428035333928633327145979377320601055764125547584622994720386526982871899040084286769611162529561227260498596720101784898947157035624100265226207345243159569414032972886103654757159462093572469785374980724469238077460569698500177469794101949396644484311235188009462731426524007388059995968335741462933219174386079064152921386975599587931505166561061466653747240740663773673848718953711627481142726666281619282109965358073651153222154571004686894035607801661667732619612961693144845403565068705070267733936734244956922398033874347198570304593977449856280688572898455475819373609414774831629379901543974056699138789327679424506692910183014968164894115799765483566067033551974943786929527187681457971816130591426164201058025400522304297472285453462068342984168540325408552762493740906384027645383144442502962458179407535761456004081839519560067640190566205188172983983239235794422570055034035638955683525654041978332557360472886426072124718748521750038468860952921201359249954359169427549745865736151151339925304740035839160776217480622197093833077193787825084540774479354947598315137115600950959762721821291429219519791974626886831615486383184671145900411306170259732232050656811122337853187352714840544583313794981663989595408872627771878049547970137955117042317499724993927899461622778403221949281898436910551909586625334045943133340785738255022392981994316025762205272235756793239916964156561037763855209410056264699338909108314698576888850934849308221951643277894500071871949450109392164069529075919708216106752334936525465971690310822959211248029829914865113116359022409369163922526443163674223877524698898950252591006189458463884634423392812486780179651765585182264293936274882039085433315522287794609287129975025081483557563281130008492164299212382255060327773802308010816971944345625394923235509525423301003951538791141483617417064770891116083429241177100129415535458727341983806599012398161764830995295922486140113667837995383471675680832912041647212478811218657487746989359972680708179608614698996045717293011875598922433651929799406738923046881198761301083881682985857485523755215514059497317327873369416852406791343283244398044675310151567466965504279990581286839911737181160676434838975571302244059840830950455599220999748347059956460997523486052126742804017464044027239660146146739691393749319679304512416587240769985489235866997437614088909873978318033343236041467307332239339497629660001492254227742713847064173840454558186593692419565460115576529627577286837854975768280379147136082813904216363510045162524257667006642915451013600920239553648056203758560174511290819591198689203764949738698876509629010676818123348579882265457837336371985875409423018411682754172299859491723431276904635669349097471179714615287927644792179704654978135762865629975155205141415305520496232846655389287118146669216664706052872682813427267597558018348092092171211630442143449999451626653454621560062220539668018996388847946103423275931878606551176360526769942073056666155897736467163101256716551263567224063898738906003176526293228595091683688063118620239340534312346244165482201004113743254058805995175621290326208804017366911805637986381580068918087848575894065418758986027538408092039220736145629520166895066860967701059251303890910899304756184117066374641485469656369370297953790417694813274526949934149986831211429712617502446535968508983840696908508398673778838250529161836641207274107245552459451220149257517802289191734719200949687797519799527027408497775953437253310678838837965520998494204678124537196433730711334476236412444565944299003237055097063491875804397812333877847726041970541314023368064811589051896097385232345711627441852164210881952664952838813338328688171104591538088522359290231987485393073695244202082492064645695846745361019222083100697199255888999841492632117295024450517884411133326628384525839830139010744128358189150425178517042653910474601856981938286572966241814591799281397186832094345028603743745817995258250545915876344915447888929417879618183889297878780694726097907534882971353571975312529381077423824854683082454429107386124778014081994871273970633048103085550634762591729814434620643516151988093010071721720285266864876219956637292354999736525270915202437580172082121333000677671589208808204209211778588101070578738315636692917916950535946837386148908930369499787508367197046626945525978599882750787176157571865885334721308014022966955083949281573954704109818673915493907648897383053901112451388047206319195956456571672115426512816084876531740587859444552612034962651196563577162869341036117491640948742014101416689701311342546281116892549999938302737256061219667249935839439267320721842721197405175206773876727889453833411827171789071160745597014232985353750399675779131577187892738372917960210543359600773193683305963793370152869793931212972498723102113550899033327071803126021617254331501330515369358838848636250109233065657388328954394514141100900390517215533946078599503538765014293086623318942938651870694019497079918285092149590970300135589812512942495996135414609645869069796921524431354714660434859704093371329134739955135545775622071008970132167352962393693223957745321979899574712845818201374897334207806251981470032175240804881685755753931907035423296154039569064214646855125613845955728311305365253699533878852332450454698042104616474247324723413536203814291896180116483761820617906725330755769510107390105308977335807705480151252074355974536945334986716910105942673482436594491406048611083610228911562522345997872379096394757890937922632324471451889988627518340552836802829466359275511499796055559769021032565649892255732504385716264150934415538537565859556074607991164967357189273430118554227510999995486697617861727594844351428902131001318098852130976097723616957224417289546347887692743755271005280160753703479961572952610486631675011756879533041648969473428416736852709821957544629677218201942008979758120548263993414974564081578485204952576856189269264266006553943113052677970805251978461039662472740320302182426239019297971296449162701084047477919264923171949636844795255352117084066401253424219620144530359294587997526030174890937500854506987520715563877088685856467992291910214542995909732434778274870289922742404830253944574543096099463193246625796074329444555685972083805019214895934866740442660200482507519881697846683940125863154816423963881870578274139629085202876350501912444485169934631906177719237091758774091220892638324306106975612044217549589193570044085521893643890236187875756317432027513768890003560988456862727511895379776235168623100928707385903862344748400147779123785125827577531859961281009260820259341375441175836966887704566758410007948903827740120032728317630983291296007986537941946627120359911315357265951889023459273610438060929844060558145633847104240754499227443912917950950626515900704923954149393841488911363158481495220821039616574971049792672005441276146638454227959463610842402783190033155621489975973733264072420682414946458069830076469151641896409810631800566919374740709968528099260354262973424384950396848501941813024370293207089307053733204383307680163413691048207465560338672382609661785437902324752182784890695043000705196541083096959800640848243184163277396678964591800491035424172636214243504000200967699604751528573490986658545168031394354295771891942844913273601443551885768245019296937973562369202232701623345799542737245214055146210993001621657359764481270727740247643083790371239945966965809254845280848397090415080144277152562679841306581794750270115438682432050273298339193111054465097531887087614956088764781765062586311248151381795766331264919079040388525074049828692507937966840518925676910627470697656868924183004184521885394363907931550768729923135570908422486482402941397465100077741267132580042080219579383388864123930173027677795274075712065326971639303144243061711904777488299397891707168693943840251694979745343625160234196411148999293667180797613941637693892716096040844535350559917943831294046288676834915878242243428877614112579282826628449424474246119286637635798885355993911729614408038393825832503780596064562226086136912091877634472253901126868757366958013947200862934046869497738323691975441334107506818685822578181417219036384212127785444212646786632165423728036926432433876577121374618313402318596242643515520152110559828705673482409322407969121808356068278081567676900334873854606703682876048875352406310730349425386798008550476528984488049655846752699724883737880242055309772234511376481971997135660273665363918050527566519218768593756835063944902161938418439158694108583600589808920163877013553377175600339377667213950345413242237373286658967912752473360746877247860609244906579206231533145082144823387037746317148535108659586003374241401523639446151272591262430102147372343958801770896132944649752864389655533789222823345577712114241899470764001312230150225559898061135100209747932795525169784879719425181416148387849528784343443145658741260880081189065263314485536615577912016008236252334134322098494030889369147606481545163430088266819097201642924381716922937684239969317025279518181905926754678556658506118309161793884557116079623814791267176521427637667473097003589541725334005503028697986972743461757384405636180203254233906350171690060428361822460216034690801525656277186983374166088370013403671374585108615198529654504920017442004523338463730364783678990531733433951322191798864724178107676682892007036417574176217734328380150776259000097840599447535946393247212180698621892315308383673800829928247685260868575790110973173895581739232543906126468258055718720660244164109802474322804524403129955740458183386684823778821794491110789996504675651578879071538370371905760068871447257318530366512752402897534706349550106558456998697330198621231536113789718749352895585386615731890559618854934167836837957964946611887784955594391049528302610678608279710993830459213026719386595055920712760471643824602043370056551155171100817340523030558688889765391784200414926858768402108382573694030335235344530823736382793805151078600911264749918274707723796041541497406843714902841565757839238598282879541409486306625115973214212911010393302425580799187529565421740505580243994302800730928672910585341130026777516182325855532797796129007789931211102479310015245639667780068871252731983215405209456389219331506506578481459299974227011309545644536590652899390821998885294679241892251793150765265144317765163746052907885913219286585905694421122572322045428783042378679009706556758735093998301897127862512504901433693840855070124866639728543686005547979780321220117389227470774639131882917011097107530730930435162629525007154312318514309308398072571087102353942875316494280275273589737009340032250426244241717461457791756694180820175841416603970778222731405952668539565788562466160864872791641482712144639428934380430088014470669427753411173305994987790490250291248723860901194551976106020227687572473114400485156165467668630897844322145773058087243961004103194333720183079603515356899843163197802819570825189851659417336837966879699537099363660664054694326465579855881239096348330861927608094230186388928012143919729799954796950500798209855398261905470837919393571635508795134880162473258491876192876139602146100017033730731326803772559733608401206772540360133547692619941850186814406198333914004314481252169712826289026537266998477860980018094683459708558697214154271746841228798957198936202085471074926828209871967465837668693077723411079207336141244822408618767142750838643095519894795073046676212228769820333158429720973207162754272900242052303037521858354417365735974015184588176225165005829741500885308344162660945895109446386431714947888970671975197682867613102990511751334273941856189426297321653075359535442230213082286343763698020199790640598630016606130466142283004478463682605259531158624517427511489023920675584380327707066660277940282504656138635205479382055945614137372945662471609776504058194449926887728933307029960424204107396288901294183882647689461467882563158090665554699806280646187491354295505517866021181656525028947582930820239807495007675652442621007543128394860326778213534049871639001619383966007102202599541029530074125573680964745158983972611091487636583291536420399704589621115400568292879394297242311087925561144829038048570036747485425000005106069685311877503594424433663831418950483487905341885852321284633130269446245548735319507631313929655814808248174886017202176816810252785947345244076046496840805544111391082777593132292842749019810430226218855960568567657892180809513111072538508388179790517823859365355616697990572244154247892089507756816915754115475831204304278543598396906054712657864465249313304818529493989457818758202922783851242436309635222792652447459377808529741910132219811216458244062378423327940070835671443629429729586719591958167920865325868949630078048643380767884337967463977205950066748754689562519111414720770885774343371342972712814412023045971972550976001236831366151578976301218382339399599729555007993245236168648609793446056323419191709165859703230064883482266228444050604592389345904493150564055863672560144479287416020158668343741309262628811687106512135134003879943421523072778202602864669431294212325589742835815174265207052790852092265863650467448506876285725632418164087462373505044147092955354368679008913860284419531349972140239953790408916921769513010170927137165178516319191328468042150890816159408646231099157494083165334945443654524028816851045018757315731067309682137317643664738656575368921014758962100991347259759519692060897839488210634088389231852315462865260609838172748921239875971923837810722147076765086482290838689146796259893597143202231050691045582030610953131111777568682295375472735019855783165559242868384844625332900908535187180505109496904340597564106585684613611178004663601164340822970859204727081692204920693456428480202125724079082610482453031172650822469521163210037464992413289901639588339838545152223157330396191502548696825345672785029910150763315538624648979636290686002467911708304824528622283881264369780791704211717511871524977904092987677411670553543535990990546896490662424579544260059731694830550086992912824260346741573747522715841453709424409630906750006273638341072423285003282144352912765619729911579447372647922849231047981120813814625379805330495062561741091172085097848284912032958553698505768434522611589543176843413528412249259210528745878971251844258735682966449422456695582205814069752290798127935707940621585893345244839797783095433336974181163610778671358515053099419189283672488473910865560731252891922643857812244955391206462610378506837890109699497976882777758299329638583947876852365135159530387919801941783308685734866412380663529190525530133408241866447067947685822465342391474275175768924496204073612141581773078184919935740331072669826392170542080040389451958639948673026582118817963740968023199432239403350382391630940344549708924255046109537869745682598544982714714717003294078180771082438820996101381422299725478079732949267038376084260232242520084201566115941163048128568737781357899434177547212935670676350296950102364130594233563671677567610658665337357764924445794353648963874616056671946992230183996767622796975430538295941962293676428616374042433762491008178511842193011668771873386127622867682222336393674921619550444525094170114701025995613823678827628948689239078527646788673504972478772869075782688182754276324494904607527093248795332743160067057312590050761989487059714960470526305813452342504664389001414514799689770898528822083212930846624178813281534133471062485849702889768783917465238587289554156215147950495342594772682274599217444178219788035574480386526428548395448902067531736017915346073508712228750131740495378670780458513284801568479710034412601528598053791191681861172466112669357131381130970216327870622574796781333419453891398094953214294954299256109734544991105224629556774507114813552458319228378718176623503788903289778494657946403509159255240683324918307701747122593321225596580074049233205456759896186402777782280184275881821610501507776762356589175046949571504005040415520276310197138303075173471010471641305416834490972896511686776166658610997574711640496139863068038702277627753464351819304192888811891026879810091596344501145065624224127950901136839824848194461173154173099981506552182567910863576270031835355057660365642864923079281203472956812820809564954179580283570212700350633242090968561309597519786509359824667018172571118473255388409577643060558333374710946907319227442120074603442918854970863759819860325501896150114255887295989273926555334890575732819383235816417948304892936507305380408653128228536569581863032540722244281655165253010906100544866278777599538428995480410929089888734629230840445309684331524931958093742883658320215157637232290508176075120565475626818975897634737125905929533133879886529481096212092551573510613304503286944820696566509012792314303308806903682772825237737089792604609783891983738139874102242032045038248223292217929823191063650836155283421984142652603663126208549421715682153149257316423292256489091708407607383694826982507987000145968539610508248667657034227388134309310626060169042140497321845790351366843043599862904492542237881034752343851913103701309079885820136886050521883752670017767954199736422836619928099414475937109008590310839424851818301291049701157599878005707406435705145897446106974087051078946536488161819415985785621143561220275271421878791079841678114531424475206344451175708595711940872055219464127809523286755633084797288927090947552834324725699977410914623132221996288540425380600973754338993857014386594825223375862740056379712521882278248535975380343790106408481512361168502397961998618589211420302851375550290664498077052223338410942385115280895115487021840792615754114236573864430061513419454647187304980742288648220637711562886771614457627488355827979475026665347325949885753188264379778660893981592257550471655980075771166846929546638966902315200621385568478272475094173618479614028238299965193881472090305361732940409558826727604656041334464574297037869040415068145740755945390477774767354517420537514788022520062575463563395384098473177484776213437033811783427722280545607507994565503951525126854506014626200207767773213696511678061910074865687280167416704930408589392398070458451013520249101019743515189041365650131694208133903230861244550263712162430591006442751946797934907192545883003836767514614660346141985744069019272038047870528189210464468018397512513929500838114822493452218153491196957156721148265596956583458662736862639273785701406816526739876266331853114598981102756105365727170460084913200634158813162687911890997773988676120568748320960920103411898721261482924245644234055122919078561093725704401397794745735384451564810318824981157225624564380174854512826292474251807398949711443979268877545909329564434510266582854306474758753975765198137151576368146544641086182451069796306117338706604865445760113084614980928617294922997263465817845399119795765683823303280961976989798518876387524523277768569514820302582061707919989600967015728447950649147988792332441777269869729534105535345186455058411329298629812466786340258821610550836882040564713504767144531214932206439248701300083887074527501079514084090449835483440372196485377010062636199156649499424507478000846536181363847498723684185079312701396694313676761436814272335776285071135892652434431149998336608604376651898105381780066417750577079714830270564448051079866050995283228028523949157899858310548015612482789583810500480838630717174463701440705204242170420279024582262584363338452113621262817631486949075364342034907740095642923877194652135290252837734405938799294070243433634379627988678110715939761547351750283061953444961541744690699996852462655492516888884419376602827798579021566052623818968861925607360074571512728714692676374375165902687212573770372570137240752762966907853828549633708635029654106358113795318459758765664217051637676636151265671291887966236437131889005992463803043006669989729008815730168847924872639747887887514381977957184857876743368099724703917182261843486099446243424421838167436876182340014724268897783554098891754047040757918434995369754691821725590803012491856534209842566470668826437384494925404271350153729656031252402126871104244596073936700959929354655749835623973439402454924577403492468324363865107102823092404418713901240963508782241819885931850924765148368071891825644941181199706004678428129576518582809075509753683985791273640675921728340299426681692758799949512429305273232129478793947245090290484381490881830431875890705376497230934527141228404049311811508896229476746436191753390323925064718000778094544279439773960626732514834525930557392555253112185354054016700207535852393763793400333833573800004239173131547073133050315517313673368570617183244704553276397604699378812321711882327360230024201098682032801755204822799007477642044186322489762481366218143657764542269286277529141384396798282578055394833200909283954697363314257949877070406415326152894099020692891210709481273644521199716856617644805523537644171128457815478761186290399330073669521533568771558332245638089969917477888908049338587527107295241197454976261405045738270555797007643933896547672347826771146915017458601775829017745278085351836654489090704891917555957837589295638610641174528561789673033456836972838436400323866065441192870324903859873718035147226455150309609664395075645036279734740445436060276356649648922522713382689088823799675340211852705061746060061785031531804730501592090037076042907943470415405389876965706272407614286945840669544820296393798226471943846116133744010990579323230221241176373267197135670979676021232198002883167349584009961928908349504943512046861104863250872042714108192910637747687832102761070332501486680560888343547730259633387667854463829312135964981364251833629087523368504802144035269221034102908030780186122358237306582000257281506128643469635756840458520710229721370432427669262153762336760610636254388325186310003534078116903270116503391859726423840185274579808930588145737121100853831321434188979286710261897978203763341840111853872265076180301244402919465415061280072840202083024914503125552829638689140159847106107823145229101559960466998917737071237414059655617426347880117265602217283924779860595368720452150901938206717360677581049268848099120142366810292288297079967777467337163649383351085693859698417273919155672774364118861816904390589547855397166344203441346138696432175784567142427248406718420704788054992694704477604676233326182633633735445635601578221181203970547649430851576730347807034237440487924902873336689744720392116827970835710168642323496350784959192780620770372312787040862668527260839851484011231975484606074524827065420806426734204502293609433692508369651022878475028942614569197846726150208869435850398208676610024831161774469364238914624306618507173583014915134297208052807368641632607592479013831288183252935299619146755813089294073870334156958752014499651203320782139210987405882124424869625417866776348486876079410818301896963735440557682792003924014801564722058184513505557935681317607206936403082693976648601438199444474643501218098920130350706353273063158578342349020378504477352919330322588189076295577538376398175240814379794780867089436804185821574861729194108739002013009721295889190030470974330218795264593157831070136211270489112916206530195155516696739581560464049286599855920123644112704305213858431347730174769867657608622464763329667453568303095324342263941297307770255096101066859670509331112046138038393733632821540433832925648281654998225669220421555592495109625981463440788977465005480730354634013227217954300914119174938178423825790009457699697961844677546681385014683210856611085289555220630500692166725143244205510333736191526943603121945238734305355772080368615320033938859778727384933598596852073497465498580452844336491897198518625494710246394700530140497642222839328349401849257034734041408478640632608411343346022996287542972902185002884352952195060425644762258965821472230354155120223388028340525094960778717328841268703305396372345634635938039283382501076630428618550767402109115815523214868703632232256191320648526752363151876268178646989814113767458368748086077493042580163424633638988432421493932912223466755488307428389801208718607409206122760954132702376474153197176022332094229248712584930052264308321529782152614616329725328837246907704180993539132309105481717667690938799698171832137611021656875050329216819331174548454159553898852607832236797602879898517900816981329421418639057299504248262083952263332112555420110993322853046125627555657031042895103960961742238674694197299550267955925680164766973892305828551101384850406999666330433280335725437160294224099817508383096706764927730077262190756370678811780594269566528798652762568610992617990172530806250829375741858310255452566410105745414391326610940315362551696543323474930716026697006361565496931214183794096471223189659528563501514238096801294452649856972140430629960223530217154254833639099003421104293671903728098850774243294334608781447497408144809114965208667456219013602883921849863100307984717574515101968231679924959584907055673073498106681109984707556799496411191295637812094679591319297136485712257597639503573137327853362194031195124260685185546627977179089880273715500823020007278277423001314665286018697774507778128699785353353777861554817402803367223320572351198850133688515935113240475131574836637152368633402600201709908040409998791120292839875325772473840290614098116248865033320824876897802884510857657545169321087913273401453265477329847621227363385400839933573538067263398068646999903599253066247479716241498149394169759337390461995562098548086587659615364479070121604785874079333690475205106556278646313747234772370345509517701141674470645288843887914130756052841098741688814333444999736891865700830654014932133529875446992234695419789496572892868362888677429161721252316153183314963722819209127472961579282524591242572167202295628667237678362340827211829669432060856926422479776381533815399707464583206955385485913218607118809159956218740377905790107424944730569715612213317088284169263617410531966553965205623126136921324422874095321862121169142461516715833633468447800911285287299303958733996297615486150082503937599693729614292014832567711675657516691074136438178160085651121225639735117529331401522961065968623138361888223522698040571201534445889249604553479404227386711398018468829807774008245292533564518756069093948969171955705973238074977038396217245909899202680468943243080081255281539394225714691398120691756524450606498343385944306300052891449889650201701889189243745244242057665835922157820282525332327716522402268099359634556938663376835672457364763938381446409718095886430999540646304741499276051752368226808716365134437254341868791270326973525642609590776476868579563864055259711714501291671973777624134196057028048313881796629212117194866878247937427816674634832039361197930981709685623147075450016429710618572153485338625377591193941120620866453785502524739538358316064344298279952277135697813442375960203338955045149577620459033251181582912260244495919649690628598484319069231798436657436373722400008288789629741899852506122431682377126418286914803701793774924994413309466382468201686604597177511131622866638479144504980964251050407559163487334042377702918527973295896871207537713427894871873984620335410255978162058075962700206705260681371920169911362423078822560692633065853371784175288189860533264495556289069863864326836185740646134665814169663821046904418311912427853649848140478727324488935135011611765148225785715127916092384965656231317788589609811262048720022732645998622349166441163286427209372312649511621462894476035401461199041810947447614496532256757907693219449683425331667749604629284298503435935141108699006148054784691247855118336581067499633970968675881152012074560707396459956563775368898207413760233128182810521545377912336450059894725354600028521610454117224353207294513230354068023742694351239824173718733014685783047852683891761382236379867077162641528416143916590429991927683050122634749343311320237342138241288346354961584696273220096038135154591994865477831665792817929043325760546972724967745723636850785199082631682823759686805612386297157379493439032062023827889512253813964058265513475236199127108733090929954639416412522392266828352924169040306474092084072715950801253854934178760285725056429992577560664481850512767768953543633025244838053664232148844114556208720738397532803087587615514686238673611055262294692645137953661075195845486734968742764498817395074078883084298862726235218453247276238758574128232017750807639906224981206753648745710744054084557027714575795844490557753559040524567140269670861082344394698532477436327871302595703707055109613620874748876002466905632909839770199203611528657990293953692159979633761214574850409727939042497409174732108435042352042089378807133616563961933218960136982407691552594987324124351007393971150420335116610821882020069349270466738163122893918483150326962738297461165924033635035324598261750716908110505374409848388232041956613688657971024141637226550699762312228644272672011020336116563080109029855167003123819354493404492148594430846586190409166988741159865621572202576665276553824982118105027481280875103293964249436748890496286443008165722625513776088821241325412457284779150618365930863962648981103086243806987689124376752570250997847164389618528298484857241199711627703743803051852947355137071867004416997562110974033095166612491019213735591459924619300965296251985626013387837297323936638562862392854059496050143853478277329519510634811672442474758165076015186641523227219143819191249914843291315286211286082378162521186525571512909420821988693191860700641389410202030441396250097061535517903981923871816483587693282869855877265440504815927730779889000549947545472455941660773896081498099241391644094564326388171117493680809255092070738682599443091001205069806270942813808985005528093689935626159806293054406075957716008912695464971568439599216861748925266089142829601196893251879351621191918942373997056210770618236381274791373985990515685410237591045249236462420261073500462649972988508791545718727476230799487628363009799732840599542340256930663348320744588772346408677523259439669940193351666950359319366268968135588264286421227784044826669861490302939216305258154709387932601447005584450771491209963805343017141629832999947287536262122624240334521397163015720064096014639514259019041731806689044770317398542185509556606576369034875927274049209971503847509095183332259567118979220917944326710425792586254507225778378826551018805410054825749645290414840334828308315954030131358720376389032715860107958830713047840157940294562506937993572756879702622227272652837289522502867787493191881413100968229722329244934729509151123648842822012983267518119210906649604309724562131585888784993762926739425773101495543711343716619375284929047656863681881347326707187047854943863773067638695597436527816302076880681230494226334301577518721206558548825055449909975572606217419606581028216815302860310027485220719999557568554231829131384020828255984703901239665227637496212540267835664470816983732774511508129326641404630715329258594957210528013180769429171904130976073057666637490006581095598484246941383511099958059959264076717043003773682463421344039100868188649139525671699933235611300890156779802309674064652507533711576531553376713446988558559786902973969325156976450906668567136402245826132347978791622385994413848933601073833101480390937033350961903182839676239132898402829043439426384263405668014779508556106483716284746612263400647266153919137299555927867874152621862699574392374795759737135695897336876996934861481501549767310062860545913394546391750566483249987640468636457754498364505290299992464493764149566618913767292993047162336430350109324245678419331281115682087057883289615379034495706536551200533846747851569549533903623690388903747217765359272232628726419346605270238401594288723707420861076768613669483115641122670757812403837244166669476647072821236189952933611711874397964635311394801553989371433953317437764681744240552110815665001537388429339391912399690878260070768219495613961617219458998881515512245304360489245531381641040372321193351478949127521310493532084837650517436386334983115158004309049899061692132017903977081131889213305270767864855128342561448344469954853150787457972232112771009760163668871604621481476835698289804071223753925404537261045399752572474538296424862512087204110486835062899534000876346610241851548414551722404566846028837888270796824280946260096992352003791534763967842961205221129028421140614600513910415396741972784693652528415531372420477777004715395653285228797593719334638637089854271556629354022375154590979404684164797665248788206600775412116783546571862332164258537349128326872426844967061929389711033395403432443655530606245755144400774986424772934014646357871993647597677512702411089461874635941215862156807397180547167768150294058212310171138631854674555635825356478936249865027880468035612600106889038490794724755090226331293079417233675298754807205324952343198692832706070612194737900072889679998125450505022202264416851020874394405911151822099910695711554547151676013210926215229665786520338571855827602330698158467406673427996720491817220905858182039279740344750839516136379851228960881418207448541020976129737577502603106520773795554614210328231095193373399476906137845349683937400364233237371372891078567028160738152853483725351091022246358105184873961888503742025535731981401110620929400392297310781354184579668389504192983446432361500687778547076510140047002635301108481747519588211066920900448030531911330402639118018308132050273558500858561238983554470498113019497966908817827148701761089112877988861587754781919983998698913009980083892436736235612682018902539224353726924705932899473601656018892054535283337746687784403687880388778648581191176377222746795119736075809982481788685939332977560383224543538013087075158381394321201630063427897496879266178804259524723105166822537690124297082986197241399729923032414377652243607700640597405832001388938791936581925672778188327421574994242098374330161136472046404794273880024739492675980676687235133191379415885026631861336620749408821072095714753969623005965536976272331140644604791589947584035029341106229172692877786397901516231203825343433025398293191139142445322058651855885317342497804905650470227796275439271134204417027372065113123734397897712832357049440116880676894995352775836053962479168308049403697204154667063940643963669675673308674647701313365423520240373471136243783119513450762792139006968956566638566587243717070603276872185155135004551654879249757053186413821995332438873883132229624319908977004058524654474846034226070339010874062178111331067418286641805849615875597119154393417385282671019051277697425052890194748361007342430685426838989733365938422970266904167707518484562611983888226750087814699494479371795083220598407737185983244694779759073307961410354206204141884903001056639303076179193935110664470803933238146925983486114710865046342923104946711224842100313522822210042360215456327511463410444769379644754987017991571915805642185388103391908140488930651520434347628972086501644669870385141647245016540841814231931114434067909361643087902455469442614362900161989949777774798133645597758943817370802457360036507617180239204284386290888265652065297754256112698517895462865562403355719903940377822184990428330596059876297057227552793016358819422288960554237623702516285894964328012727532693895017674960647144552399858624695246446767635074981134916727809754386828850705130872045614990959865353940099469736146805031153893960928232111309081595307652667735346402922372990614505432300813931050649426195895329797241635939225326361659130844693986308914735243606161200230779221036895647156812829358456643416815447210205077335228866409885957119544107612109852348742529453895325268667686345935867808962113556353979116174001839279483512268815827939681091003894540306748488783537185215389794313346575392085437213004490734577431155896444779340667007840553553841149827539108624472797289858494676926861654761569462981833561707882438659744106023923001254759120017274562321202491752106026661417992026633421073959548746550964512007289621061983673158239111323894765332508020061740895303790700395586812765487828160708964621713512942275519770407731932110905635846189190074958393298595990024651407994819004772240443095575465296309093553552316833086821157060769675289142659838624173296440441798382596557023777062051408178296937854218449312614685100210608906344419301538777795027620886884581787528278605511105514752800684129140122144911072787180078299019507616978675444302626158526312267824032018980689494059397189815264752307536612810113505001233348083694928413676057933712052519980497493786166377862966088738055664943014075722152355159796387427965563798434395543933412071714488818648911075887996795660160046659265994346436868241186657626676329182883435229897535525697311511224764480176227255998588763027982412555365439933355804644568113938943561804865935553478280484663442108578448095688908712625634596196847111599431495092883918490239385043181706936268927470079414960993294343446678890657911063858029277940930139022172097753808682787825742226782595281185504826392675536530071379283435235217014696890175320872456835847108155933851717533236950566209659579654702117983323809463839189413384502161708031749262856086367368496916358437026680287737675423335331901132288007268097086976775473509283010691675818974468960597368538000424381609749511714415646586851268435749206917750519340812028121281305253089731288167629278972214166404370288390360040809810363656001743523599003556023650710507212121288330903432845590803135230543447265977222388600680150350469369169922828087527807789281043691394320057985198800255173381107656569551179192461445045611377803993944474650411883275845527155464097310388842624460485551595000991906771059999465699624929643129948368734324056620015887536137301092338760504425264117381216570399902600470552207861505801411493829478825879391962621854204035099212275771410205664970535887122741094199552935865157404088203723327157683217994760300851720090307325301188895629274710384669368233512025553916610049360812637485748283140372487672114775491937356288122671659575796064086284582022692112739441112145277235807434128078730959315001413628321520993705235962887367036948651623800005408132451125425876534278860846124482464375043986220120927219759707121921075285678629826333113510504255419223763653796761618470401299133519616804033256943629850112595104240278499607268185569708495087701490160065305556056055515267296904304984595811041549363163496875447722518712023708546332988965696109687246258236862897583797767250703392560626245014366100425461440052022810399685286173852610113425634182717989265789073789234316856596001269991626162227391301504714576789742339544408006177787181879483176501277373638975169263206573182099122894322500043232762727882612795986658326459629558892588955225036978542800261561009517987305802022793071198126982950027607999857856221488762678739683228963614599636933030527677916955974882022412852624139136420514444505113342024649988370794447477205676212863774607323961261275895415616202010078576816486278207197361721898998569085691420909436608127150017864580909554480938057153565842891207892878839375653102785669424540893607601536073270834066954716056790608991389581713217060928514584535419663466891363824341221285123613941582892708749213047002813811825926066319146221126300141438952511745503455758307445262207691002450811482303075899515040764121647077409137233219212173643713261192178975170639383824499531185536394855786635370477165889859872220355739790097006864163549014986982187957290915974672120400682022919030755130071984376762756730329866354055773579541910033030070637860388385680371834591263257085631255708883956482235164214677974314851736691757352562392529230356157024772155872523100765512514055795843338566746238971025840328738840806978373430622402600363995596446973953261008541338764941144815605315688861095913311568069076582320652413191910164142464713111340307782374984826401061599897301854049455834927574076027954340994266772006760407386889980671805604256352970848514336155356279436199223783216822985310358133574664668970789296780588305391430729462347236488080751007169634502736365295246807074753773249577621948862206919376949517630705302519144958317127329434145424410871888679943839431920166989114516814521720537502153420835002423163860952457194776690478356552153951058593773137290081307112834866510165970818690672444706745159891711482298708695594775386369215812654900371157951035456961498045868367192397998912736366148551769943443826324391323030503998845229196791627295692676323228262082990068593119018970255657877021538054324010973424840430033839238822059909220454465253080664008731643853274229756312584238452667874353548504074418413733712426153410662666720811343889452043369948128140240438520540221007842235611024911290035591316684447157180905440366620234492644473792339073474557072795075696682297980918201493376994380385647528799946050105185586970632835230819385820867978841013414356057438272587486723115914632831543659759482805985530887707481931336814466494777593384858082520484238138124195989978834935990583641224736881505207832058844263227995865873887263041601976918038868336144452679119236648214038103434465320218471746340195422209944634619248465875790643796376179378398823042408428220170340199674972276648830134130532537247447973983280610101047162333847346346690307646638490854456755335162152860553326233811383005436983835146788652797023831268654538364004818542815152125664574965449679100829877506317209863180937059514362431103819482332769684030831680904164551590686308749215920765739045740625871377928085805165660094904250963807263279644147074844755710239096222489212564795945602513989688060602570567762627855968596515864942299571228889716922941543918079070598903627993198852890313050140353831128986068198806732223879542334553967385091711577931035660365527924693914831492194063062360633376645623106531721306148508614338711799475156186631698192839681089289987785079719784481430110772952328650524455264035427439797450820163338003193044728927423472515457601501063279701310958206205070472086925833185358302095828191438728555263507826160671638742539040814309626986089726354689347978840623096368149755350391179023267442182756241805784283031101212621964414597689662288460274874550245339948468454386641624601060782781209595925135795399542050176753759519030355882259541243050024447091470578274430114524722910919102356314042606059809781670004908150353187936031230692154281916100108788467737821580081908703294781350263741114564903688546645113688291758541261306473856505709668154809814495788875171221521187868333256578117507178304565076640473872438136951461708459019736610168313218854929357366956637929449737370987078446910735782266781355129181018838731303377340104959260085267178942216402230589878838186510910212463874053363161846124374650945879386914304722783090295420718811873413996917563604094457778923068746284849849353738225160741742432617967275049340054536498882698811824974987689473089057878169715316787364843612012442355898933590012788680987552063533721615381545345301326230149161164440775925581176488413618965655843953481585440325849340263242435550499805538705323509691052896813132492054181651917354650489882286610918647991071874139497798901748567148009449362711858562647950683985014658116751394784913990251016747636717253797417683729278510420355094764104371590510232480057809825984121735814117390413478602963012323311076755598818660662449065379569911580691319258116590864667143668595797050854802724605501686592766774774000954709593403956655046727653938090164107383244532803322690142751892808126310685852675080514654688760034819674100114765980570313149605380983844002207249234048009892874708056241206323418849143626622835937184882545564307314914353678232927859685869643879729282826586640892124936288696417901617963664617311812535246004618973017890388880504699231096193793978247697331107285581550548883947756876042307013948430661190382424157293853602187550838991569575589296977251255555837522885344166578174102744293030904201033598234151992740886513885851327813756126881492253267268653483634163862872612952844277573337345176320949238711220725508289004534891180523115602896172560198479071065331990036557665053574569302181012015205058938654131767027846548891989108876715474441637714239190174859488928236215252041320066654969654388055955344372700047573988290045192453107987328737381027075843699452496457682970619136745053885786003575559971354020260160602307888868166734757911375682425750642667505002853364280621704740541435634444430815578101551168948929744290554849934451871146261291035853439852172400980527296431483076644903833517921602393827742858922145123845057475248184751571657969984670200389919714435900017296848439820160020377028663980580029386324294281186941832508329192991291008331973286606055286618257294551025165647606521221230973276386951415078443291049274833367227730903142707690702443837657606328458110571416044456489464331174891099259473117114952411027439247421696593624348743607693513792067624728573801569080357477535353866967222149106152154244799205744483465067313895706973638690345046632478514239518382254934752532948397247408237837528959135995949508482594827119865281556572146034071301742628450640294866174428916333955951416680275135057222765248774668113273189431229547283458978282775039016026888748654738230206927984338427763429094348288767993124885677472472647026606609849771398261600561572055216379865008138152472478092091839900795004270137113727901255241976854426737684830317882366762740617620366519643089966274699442074500993014778051395108669647784866510589922304201558006358224144331052592096989299388693071015625297341131005435493979955064686890550135580983538726256031935552454710548842244520168439461050136237682341484876711189176964176283768606595453318146740793056609983081370139323079519434638386910222322585728554163854093070591392548244990181614953917311652891216825382787117634613976354389899486541533773354950020220144741050542620432895193654144444564118309846695541094912125959181250522486216201335057353568802166971649053259342823693713327826499817657851780308686010443123293122237134847718789129986668814857849241778114400454516802007372969199335948311095612196703154294341061178544834402319442277072703859134734813031621353055130731305664141026202539605639876841698671231336946876654589469011889566940827641519997674671532113658799615308633142582997321808985704971449560572803235466773471362979228164927130527703542348174662680347108556403159354731489188184523246945063259449420711486641354518017518977194091799580091493815119094645032210978764497820833890975002096194335927280039773131300942242885730580440635131718398546275774289980549422703521734157046609036646725794537783717724717454340159058629243005690860138397204968297840515535140973982847326346007985025636385642907911933423766188151419521385428877230918831584680199662165576046557409790317968963847603697265143677830757941208286611651985416745719939043914279673540175716774564003104648887130837626639146750027473467377661382610827554774543199375895226483788794873499138612100356689658197867792936581897146290611342576051712100304468326579835352198252485949364857914499400514629348099696444554295205916813213211169715577474902514671277104546244166522420449315027798946113641164472691164059308445301126723181451146499457869010459359322793948187020902004963904492564850927490904787090288758861843951624589190556495943951862769163100257636250814011997771127091652487449523611342343584669068057429626115441540382358485905753815547620311602765999821887003029646248115996890604973349183475491516430315056075721937348512468235128260504812542475489525262888199817272499342897164540433398939524608052451368905379196958798145560039852091090574722681802967196777498946810682944413316081021813098026790892179168668988882999506479531552022970377863395556592656730795064348559041718840821282612040276083323254039091722709078775211739573221295486528552202088205959429406114179086426198958083219198737396964725831466135215211424163344710816494599979702531209340690717740278306433378206311263030588262598999726121913478956106016595221763749319611372615211502885313281606554928763398155162001544534081143168892017441742403640940542789047672140280932840343361045479568648834453720057753854932906632950742270747380256151909555207155271988017464165372918553731775109407474499880975061431962252278261498428363556898960579962688937083770460682922893655455039889555199017597582107498767719720851408243374728409312765604989057622572006353975449791591951617338734073453522511199568376797744252056680808678125536453174859119863002459316723216444786722351969685583481380231213994557466926678881448261770393113505097678661976017400825251768567126250561956437166918178881345360638120176907097550647864269890271649037593845392019766441216576207538668878137397483415406731849167514489658097792754033651314802350809203997211606220009532511805859065654894520454421013718381715337606195158185316518273907093141108269387150032073985881919461743920619790138797786241607277827838989976284301688267576811057529340278181678600363689737599597777693650594926474118994412873150411837898227731615807710617900193619618975979132722210534853368750538078963092887302170815843790532627581940029906239311632553671069006519694327718437980003576474115176499074143306606539038549483206048685224314463144612296505296081040366238466194860178959006027011835371522312393222548603578954945234644875287193243278178137078330987745212800780303814948692536099645779748614186078444086604376168607367612677248407683947530067081041388961309906227703197845917740502437823602776910132776693812011967284322934626695586551780390498931095544220219860923793388771578001890466174119757487332036762452740552607361238986570496873084589431297645083622575672440219955006078949032413430308870561721016600828380361349510237908704441079089889375694898101572394928968908163992890691302616110821548500769136102299985234487786591302688779112301324320479380465887951795492997225478445268100342350462496212383576000820264231727897600827051367613704982424371177153696569013466705654431791905030527138112056800919855304208734001645187265513176709129571634324542942862054296045433704936532883515377871878463611804291546217750519595867302892358688607332042548310809242142438133421911609802925150130576981406989370817136987637074235822261999088915583076820746760534280861595970974869937050942076786468345280662017536643149178196444888041473302551591853766837366229621850525746853715969595180498460788098765768394187661755486055206878162212224473480760553386846806633918149377869321858830336731882691364195563620824031313051272848910478175155363238042654380600228997683592048575624144373189727245947819052239937495017977184293009307402091243752729039703530473900040092766484869526078166966185626169508501123947120518948770779593783459292164547251533904907102121085356651446476167806580366114619051387209601239974506820264802468963241987510754956441084849242057530033687543981552806522951408803428590825732770345164672929728018169319773757136589485756166873037558644625190842311365125962249143080420065418429493683955106891113996645805262757756111234436667413756463248973626829088999186295065292993493505288636643603155408140989962357006387256625227965816407255906198416573401214075835169629835422711528649667793285646870947053808702053948917741586349918239286578698178996278115245490626354949365246416411825421264051295195367465963470318493310833159010932345414766305014992102816265465560034781257916117679540017924595512342582779621091438900733294749242477835662903648334797535821850495227763063024538119950127734947864354664960552719365985128813532837575843631717686182967299060067816356385014768938416973799633480490418810606947781505627603888320820301760908254913053983812237502203386944987403022391640000677278519142762309972845082278508529964437337270876681595541161721433004936195422432093071660282276902408239473884750448459078275531201372740017045105441669850048722529450491163036550161859931758638455525179216194381230443881322003663393485527484476221178896016568361838901348853660432080654310256745833853403211410817160227350210643885668196551602630520208725629457307930195738669879078032742125381537594826515502731654467990660884290349794137991810537584409499318701850201615372867710968214092848363970915015078517942735600714575218037489383791931466710555259230410593055133899102842269352177114488242000082247804130261216638669991168834980126411852657584826500301928663928200993493374026294457482734018651697087094396321490843722979553500726218232624945406769717316196402999051978568424121890869255677455220043527766504065850965250426612922064932825013128172309546653435946586652301363970756685730986200618825530576794099206832954349440576038362710219121817470041691681270909463037912907396636602988546752107194620015729361886053320852978733971564047873397226695056113347564224578019810411006125564971283757610945262974205751562646532324240746944977406725129361768188084866322659560675054413375475113779136603809686999415579723376200176004643174846286463537626883729546497657374628363577314905033487156803753099246688928301895547156600197851291290422774735995119272752562274500508460387291978117682303036571559748722029009477022689943648428230702732572634251582005479070118440405503127210176635168298177240484448183030221293324704775610410599214362348292844164311390482363292353341241390889661726962594360269082385626016371592607880146519717703504143469084536860791966724900670098061380842745505706814478015871892590207466761798487775195873254310743586544905198209986503752704450356641750465686655626839307530802125631313482062633454756392189031934415096401158752308333307675940201616526544794116239486716054977251708057216568515082324478511142205179341662328292576650478450017061890230008281439469223523409373947741978307758965726130767791197067788434761888820225464090767286640149942882312649202182487323837132417445103101372859749159676971891262895700791577151794852006359309971965850637148732860389414269922123219662141975687859503506741709715467931229712012196887901447530649469509231643786240624248861300364412994677835597904746198001768053455989567591524567256570822554622814223634054489536437749940597759371854251996294290177209199983676705316994298081717055603664932711366537310695764657817739142294485644853243690545601665865862201097294017337495646996167378545203361221668802458261760920379634890778565898740227997507333591992165727937438698517172706264461137850749758553331067521259725354351833487190017604183309786996364372287971849385085028030021280599850684780701314558538368327085805865253045213158396943745080843844199721004411763862094730509184477734563444102252024250507870602008000598476124618968778108062576937398778751456367286507077794969101424708086282590585414490024169479776939762624195391155320093521710881077698640836537192335715963500902786995416573805791033692086438545434805322546065478513305561081235274767476027727598806403946348766772046444966678799049074221772098153781866636468639691504363198967278980590208814824829909463633707396100496650934062314858397573893359506269463428048034311121486825403958665786588863594418200338717781157081026129637173510223551729160378505731981106262500160671773584038227202100069219871866677751759646663989070974610870365644861620667770246348261893183753133573676617636506728800330844574644003120323328371638005707926803347172339191744535412693504050431632484355816233054079136055403052373450379571076595215174313416947628776569893753976784710079740143868075462313863447239841279087111382993131135576203234295448026597906724847835102140801698878284749350557795743961490018795691418540878093085569305987734125866049134638007920275542973165294431233328639734568610993368266067168761862521995489114077656600409434515436050722149197362255558091274925574200791083790251094346691082008642586272104333591099868685637552528036541035876406959065821746424233849013658006654013727177483396728737209226287595047539401496411093631059399810188664432012206678526153374656280257261279349769332165705424839341607555108060353957105826499518487352991010850807175127597739264657582215967904488386066927540249308412131734684242462525064600892006823735843939529867938638828065113160625634214363430953542506092041603699680039526193203618840155436894662817037288386136449185375030409315801671242780087475044539300169665142926350034736293366469352584010093187932277742442683723504168214112510695017650089856583449262772933024178477823156404348731738830436510411250322005617398599325942219691383046875080401756741864198975319606432466799857052377681891012141288958629052794043817606635085885148782249970442067213690600577707766879397416008458558694466170750412241034107836650321465674376634592004545596558992334738721085048974673884979986322680129948598373048869283589084845515758481126119779081128374684616125653626039424106340315516220582115730896932282424709215273662345911058289634395222688147668189332596721528874493815165005494375084286748705734543008211333437233945046493563280638705990870444621497594631325294215959001975944999012777296691669922549305767705160221684361987004535484136240768950828234326549108802960451826651659990745001773553599421953257549934789251078414229795035868961536273636139116765242805897051956424310280106241060184457786408704021518668154492836816782447131200671140278331251218411632631090751067471167793665939468910428098606175032498192900879544266147088913295744388523144400574134907621269816017456694232694510510692885304889145291155615442897321049705825173144357280474393916014969854555967132067837333258585886513068798770409002289307558381957714134513952644428615415933293867133660301030956211158713899125119884449834645524035854110880692582485030361226272011801998975990816989263278922452580198642824978319813283756416515357862697227168907777557351207370621911714349633302153446043531922482618797528933807355388330406953112137670502671705225213704145646563948251128315801008491116165297780076431473302175551574252667901364095994002513278573687331741356378211558815412026021357853068534629097077212873706896127739190802907209862983025596426988715141064817466004650722897029050738332440296087109723152592883743180078334461690051627430102930887229600272385118235098968366544806000364215745829491653251113030015532778344094910459972234142698593462157379175864848118917902734765696031607166049397469198859431680875407412007624577410563654543036317029989086087800336666459089827682839421501029831047043284097256351837164982987641093821412424549290092816429856067794815420273524730412339454541378307758068166492926642601664253885318954500016123643951660401073749547988498703548066215089845099403326647766414800766672113213937024073306329763980980771816657870752337372903148793058014295436673318071619779802431027216801954247861378267384532071052036796622449959505558106099438074056769341698875592858163268708280392707299125028888306158793908437991118082461998009355124519862461918979259802656459501445960720056635323146506343682754623416088968450093268747698854004005934250711416493370326981391880142974839825746600379058397221857693785141775673574613738606571794320631954930275320320434754513713014215916297306465387523754961805373086180998976663173802164999610909854344758255099748878198538787490306450074949040346468026723127235715075660788102567884244459466899272687156029245351594470442321522293379785318627993598317582350725667279676066358367678441951259630295345168765318372244851815625743041636696693000562348707627610131501000994032741200571839904174322830829202597742346770306522688700507579700114266713940230124034925024625996168697286793664911038248765259325190271552465559753434603283720783266074834532947235685956722566433537500944961423032174726375527699174614534974321426492791254794047523899487322819152059554132167311046957112014154041692102327792388597358911989322192722261620185833892965808109470847731510849923880642704732744020382867045826369585942560490512906863959077943843759640854895345769782744747885653444613663589295007037496960053789888588940916830569778938766272393669527946002179256936656516372894926100983986760346699492812382798987683606597369043271831690414733037751064843399296810670041244701491436382677256381529613903833985888676649414377685353155363824759452815955453540587538544382844045635728144499242184545637620941793198937035535072308940161385308074262931786196708497456722344464955580668003325280746423036836354283316901595551712408086211866769873612087033985710381661671629537666275944573870946456272834670078906699388517949050171999465987766910503711692169635169035021849609981357600659470929525621572765660493476435773329533134370496902571616730401665904210782487164585083819854491467026338306628893717080319336796864417682262692939634227710856240688581131769625081861188150277330973105270879065235314053246648662466000805395075104759611320051197632110530277306417840435845356063495736797550214413693029469309598060914291516617842677070152835181153913488234964817382020096368583284634334228374434529471591733878898642782183782691464221728801782663362819127212246109597108285890552138209995546794888019090945671527907278268670385259473984161419115583808848511746479588005512424172314287936913238749289209143406176829632630582940831120576834891866142895407322560225362992272665655301768257277829362125596198118924769274816136897517264295590092972679577569644765225645197590883510960915074455385591027790983909970949243468128661807394787324156520143964274083967800259360334177808343284653416588372650451845915048127827202370562313866699600849321539001989428598847456497603625185999016813419820393620541409964256963731189669738828859771038774214719842437602193627758553407205989190255145876472888347073277664849380116416542339631589358201781513709252551075104489396421831425939550840939488234159029782008679750685854288312654734823273360645607206659015827890016224424284648589197215939467765163193768796910967125788400915166302803061928308870647694769225026882842494710229608516663640827930622345869529288735708588162164879474938761248631057074452077745028275078774959568396223047518272650777060968745392388129497079645102587001931709201496855780621691397427653177477436179874622713660410816982141433563066301979988074827558241861263272131137239643270437244991288510445502418538061650337409317492499448300604678514339675575668367131658415671361670777278078187319785929724898251013869087267526874620049678693145793168039373010014579421935895425570796445941412776434709797005949881219453970824481136258880913188045338627960147949068876879305503933000561044256446772785027732522994923822373465153643078415092081876762801423941373181447299020181147630280307778923916306274624639695046280718913727997027386347579160206517665829035712437139172257702763526341053317338381227306717083678237559213703650749528959258880785558726786609431588862944493908239195202927443868138937159065457876355143389136252297388964139788453909452779847242203301329286294355433940569349020597901175055963220174780759459332822494375231962317425865467044258247135801890782404898832343203336223514912207528378719438304456597929901984411854402198028310252709559653856049265328857889966906511487196694415870730996360600272943419094678571011944313873569522278738485891328098490682874412329064998034024967893091048111679537412425674689159973295372422930167763454393873102407823230718384812487488556563502612969063742148906108887847205132121511491766536243447181524943724329502082581295854060297832537076942953057467037208733909202802763436678803026917495168578522760493683831079036717300143536468772936459930792918206983122729375588476727625626961483300511507118339569067917665017636164518875322480615489730519882535980616268859003791427934133530368672875231119417922608365376514180737207489842822683750686490900885484835014867164206044829447677648174443730670013275413512565599861801941858921629064008465801622416567854523488474013078866432792580873495092310588499468698171271248178812519717515369254601338766666216888543016932214785416224200015855774492915847136541183132756585295896789831357846332557922968865730896231423683660578773927426447580484013302401124485968314667002997417980592631396471022129088275839263628799573181176126004796557795971921729015567443019973798483106316087090196825079387821926259711231024719091709065984522722342955691479052906304655329819626709917888819766852026938944450987884575445375594692348976745380461849187230016271201087608940949701177736768173601518942158298066996710811212398551559149642045608348704100693406466300607707336041851635311302443396337303336556744654835534131752559031189851845458529142329299395739924813257716463698490902628859417651781627912068486287489557382282549748402268189390692793902129420692490586043078005555715881380380883055589008940866576386564700745612781343811923827390444011912638645945924541698265890454979537679874466923471496113489029012229250989151242546042782760320330839931811794547018357271558699474468491883502290269783181168520804896319880789375089784695060697167743582811832223880580479567388611270092583343639559042824542867164405552864987741864073617104744373178838273711582107280648268387380122620498942039489114638481376357247102481619499120857344165594130136664510222377863920807043929273930151343500778239921015480893056319826934567156827579329431161241357450951491912783804639387816594414139353197132203798716681372374901589265513947166372137744295559330965850155664221796936537887044626586179945821313276200555895763481520816947537067395776959948258611612613230596119431590576610043841094600428542588604662046698365836470205994064718030280859789669339631053546654181529047746551466996748245092752274910063980645756295119327707232705269687842330688908121097009735135546590349089957009330840371917493511825485809104977591706716933694895746631482442704157136548886128988848640957481313470321876388483098428936218714467197006482960422188762607268564908391032444811930559778721359314293157851935891918664048563545386425590720860467523619359513217288027343271905601874970115007913168653513725895046939420506276963962824083837734972918646900023579828082908674592542171470990040241362927114942553253973590420804265433400115049808778541340197255040824363121523840622077744769669776458101991123094083897579124443619805516441593617254456532045887623277842264388513655639617732996507351285428586388602634397922862309466884202811606951152841500041008109345301967438541520074874770083493222074706334082973012687824167581204129744029452029881897995841354880230633079393690632230806122080716103792966616276012421959181197244622258711244104251393665238033806050212968751821649798974306350576805161381032529696941973392097177613585170685551175929263264375441532106356690855517666251250494427066529854650091358676260449106113580795983570225123770805954996073841427297424606088480664819599539755992851938156699135667013647334164319947523833356922895728024683769000582331686106123199902181614710663632859086706048221039454440790211468419261751839227380421620640859276264792726704371555103008901795929958509757375570789339587760470645370601910956102614880586402741897968759686613353836689615229808317961370411228288793997120574245100767297012373943882502014939659569545426588717050915861915604364245443749062196071049488185241636576007843173039270330807489086309338142672526731563337880117621149850490977628199267522858720155594921949264225206577790068110136291184332505403280678934763064814907088127583043676990964418716314213894836198111559311361801918479090965211191288740808118938214291336740237336673511361982447026053877793191165437322207669729500668295220768018894105228981756363087794839399066780333222339976949064364828146379530403767512129979128357166751536767037745469369733377304182133059692851514156518012889051288241284955307850122055592517637012214888522553014303325758211566169427137914774180459701812771906321175702657995373654335714134205667689272575801025944872876701653907788321727084006393892000841883820924124930062509605828787663992667540628041894220112394205522241290836598178976889901055982207598833491527983838792160157135771744600621353985402441761887761243237753066798749496661556258959979679515622818167583002060980839632514722139295092353933906663418316965851536979302365846450690795868616754043569731392220027341538474018953243147358524866987045622670747957757899118219969295895683089747766229648437330247230469470529504095076931778364024179002277227822430198339823127641984493658156370893152303237100217345033713788464658742073310672302243643895438520135189444616138143287993847175890398973354365945553848238829858387023497060481641968734164945102143429902933785536593458748311967287154651220292969041419149753436648906809006352358658108758576191492516179984710273943289781512794332073326775206344463602059003112158800222464943876999402224464162425070639395215125181870377923342859968036815543209315786710088290948148007769839178103376756602492214163806129667558532060938100491328293101406052147957720459538867054951008122078448952406906137201365271360183373618340343498519940899737454322133305455056146137034813850238340885629389688492253936673030103787667697738192141988942188345999151306333644958854698397926614729472382395978377651623428811639940370513787365102241840605175797414231927459702893972823144954111855985466867230776023144889111351359877289435200433357589928791195130417161310478710838328231377103937382035289781690863145138674827677756373986992625359554254413836279871738605903254978069316974211885872928674884581977982884704959530706323226546255978980033515904317488898255103443616451561306300069040081075594610575808785136300324720276259007231247200955872612492148471579604201787991553022559709528231564586304051574560037599498594560492147646573394074950766196339462163909866772701562430637927376679405306636538558028509457699421541999403356502647194321987628372638663143722569236701914531593007945097546980457431112767722525194356979176321831513264449252788949253734333896852502312350351207255220309495120074355553703072797347176283053138242987392021923812500995601006923279918015259610919174485639074152599345653342337885627129039321525188296944575968648359372329255260376697961329176974657955574128584563043769949907977120445482996084755954873876901945354981192748530177468326980262143708652081092962004653922325316750270606028638247466556131203491538534455416938482886285432365574889386983656080376655726403942525259774297018713564986185065078911136616324020470010766219355210482295926464605612563497081262974697187436561364952128629563078935194605455421649572359021545063829195075989005142604933527683517121476378889360756547900097951587885311103539641636595418986092141275637760193719737844150399145920659823597081134208659059576158887364408236460117296562236049552950785621575733784729471101171287398492152910702927856285616620028819359960105524216013555751208581532955069676027723248751663689791541197043952491868633611136334252968163900598142698876456211572500180749396080505950469409453642204912798613465541307072404088571841090866892063693274022335394556875711255578343720662466418136137295379799026795449255987282285379762771839273465170087736671999290373050798332053281963149088686948554386718089715044391613940439741089506073030139603735702374830594915264643914288973407446718229454069640400248018581372075875798049891838248506126654418572985657261745384775349707777960661019406110083521591269007520640245294429208862822066626408083887263446893996374570631472231284861720133179256734776572334066024017510196770983603921592926123531715746028121614943471371403884532185171406578086715521361374000224560510511179716688825587461018615789456746867319909322104887814643027520923532847459186445884471102630346944033788881874110570939623834842858532898946427716235846887956598132766730013955142481173566502335777403995590861499678208088529301395526045658475991124841054163913113730194207853485816846326819092609548536395145168793701611928000644583582530480097039322607823958806127824528607871399770619115314452844958341811102962163168391410593605053002646457892164628898643830298231088517122186711918907624303714949413419064740387516946009322830385573502096983972155907846220383000042785822605167318488665384504888596002241418215601862174510168016596128410749998498056027151799466848547910379803075822326943880732281835045920156411713342705426126386374942144404977393930929439498049881453915720688284904826231775451922553985595170249159436696385642453128319300390869062863625645930202083219607306796837459532480286564658885019671524562011900638821069258818577710125190818413344183923039317214963236342029537778743920179655200618690518929823727098946903401279039572221768193746137777520215384603857800429908161976555733087191857980724159040558914156993243771631403168966354671877080624447130075234328612518843618312047626545623994082162207240461844153016035388620418257660592802125121073465640801748087125606657852938236462721618149279034918461674490017372036446532929604921242019063616473613169889892010314084282384863651554310245853450802516476352032106919345611185802662941663965770777890432849159369647856808064004913799932813041195103137962282421807997581795220487532726115796420431601588355514537981527789476750399935747399516357822074354708032603293197608250253707342683896383010771216117394462528539840585127491490981961938501019493876241693641958788118384844624600625293669269523342236816122309462319636189472999842560917025535623018038343114892660658697150936121994083643500217572800871161453309585347955197130327104229350292592647100935935741100071090210398156219097800546945856914246297352209778810226231329187705157147529762841622381323878746738340596961483671053334186091851730176640284892046585563877843246472320278035318230633172815812314888248017115909829146451261815168750694705252994829039166854540095006060666982547358865884117262427299161385577445140135580593620141333063660387613761057253094858643474195622198404320003872715188515569025903485549718547542804754438281416547151394918103292188443387022473824433049190482134762275976131396919693027595266486961524162826334254279317636348940967032525858309273189471166452460331276040795129632289347683622739320128373220698361464906638476672096935474436338704423734898731746815101106383894945657593044545816227291261578580519147676849130272509062493997279483549154513623526084677939072673347367756839175215976773217714798666677224052054431181241573723261285727330052491687547115688445757221321455398907975130843559194923518740998871217029463394711074236456474847920928381023213228398082350378128277688748275580155266674638085929721816928371074092939533919532582288469559884499442731212651980268915823094980545421690485379992555095322119902283213186260999964126234603305372739711391723358184343402789282993193599500090879904619096980045993938258649819333819986986934961031791293220502336178925912565844574383816381421832982713406747561759104347009477252662444746896016227514254258936453853046467178945568577369948861512371091594183880387353945897773746400984748379034282823165279190090947481014563483127411421906727113143824468393864117623031330476507995676773400938334239574541582399998188692273998793898368557368351741023847233685584485054090715822996244191760241331896451981255620058401908511080152114837283434755956404343431561635885980745686914769148818140339537965065738541027317739687425241837487893041063413040521412294694936458071639980573060283960380118649303665376051194606823207423918430226924426718061111849061085162826716929448927164218243708915986539815522871322769797194113764076901718663399563844341667014238227583384664816115942751261842423856025057795830242551401224027821477645455107674297105267235678055726777053052504966036196512530992680259891311518560062514289444555534370161607895348901448085696778478525675598806013963162329796796673663212472346146904820727497094049350264839466899829596755424446314264997115172124525942398241399575979374165339689736174868576522402858089258197333545844654757927486967466401786863507753104420170156178612848100977411648201347012075263637310035971118409062631841938182578697998343383022524525386702878785070243535271707753044775633457650230939462374095761484758678479486059320780401093072265252114177581842631759750523750246886080444703473532112420741006633244025678798291009288620574895812933926323742504458196970909601440186376845123320278376264944548478190601294364151198191879603530755858853503691211924708668143957412807450599716316107201904035788097410736498754393609489226210356466299069617768833010297500278748701653965055031142289250553497742404446037780390343267089463064321496617245913246988743327859652845200868600479126602726907572946075751203606892853835482020601604277408297001912741060114675246920616717945460395934479577390468132462598021652120865255209239385062183995049921240272413964671346950982306429262009970198964862183879597274840279236393139896040016743847812345752516898336118475615658817466526769957490963280825206224113298283181854681440922163326313598036301252062736066782871739883385119122978943899164776315105857445768968762557610701863753667313519274682121951002652905167719682196066964631372583883104691715839329418985534904350673279105330056323473676153942731735561331155929514798196736204202979566349748704592006104256931431498777008882315822973944948259601303622933961388956243040725737575605087330573477565622869141869620549155260353752332996285336820769826732555879799583170708945366214168581481799809974141999523152270260502357901412193432378992872058694190482129581584540323972412452942166433035583631665981053307082368285426344072635934806122082577651867773144551890531416114529656881574889213070793864875475972926376758481066729378654126962024500137492363908291081834901048324638490248061749474259185349885873435167884174502162557499926337262459994978411779111275160423382065428250283715299075213582108754608227758861524239874867214461448436518254755792580211905963710920168307090273228802651683533149495044337639507750786821822705078460476451317028877863056163193150452407804124617882927650862445729464344260552124610967659292572148382834766094736487928515784497367359566180060629915181445292951821486795701048473173472761094670963706768495628286695486905140627605218280130502643934192849508401358001710787537295020897047859090672131594415021308011730691220596017213697773811246442359716789908704465373575898007175632623411398025232008390039145802630563689478443819801097812147380572522383924302110939033613906080136552789689580129518421540559968284529792785270806259985002559832752391927012484630163749939763144485324316626552924720028137786258050998309341739383662987267560280697178576836342103582971320150049863502997131808588389800892608637602899882625639820578842673760404147122872188140646432492157261463979381180725678735310775822462438705155222310981291059435446454680778721601179381677745350282757524999301372333669036629735560437934580966889853437433232016700934825265704851839283857598879719687274632277512518135419408802738126913335805842447554049723151791065281653871284336754118851574143791704127372338100344504804822614627509354966958103060401349984451031999208980815839856665982934383768090991666856079079104910417865300594612928501386725930129458613930371792889300013124305013224483576641568237044993510143287998434216640692875010993997894857805722928448839634740846555539613314089138624293585259172859673000351360377374964742015954553358657439327347661783263018392465011778753255503446781195619781956082252750395617367489241689279111208112357273564748431487855595872618185236543529732475088442828662259975294041195783544088281467725562029556697941702117110595205680169841464232746815084405614987466169639731083755549583825196981771667271992685195488108353686703727796345489350383795644404970339391958862443363083839341527408586954453669769795732425258319144155183705176951601289669852664570519124721427962046992524593922259675952880105355380247150047495070486022790981183637000857627712941842113566377387242278322662468614846088812142613026180450244203717699042447098455478901094113143288889267310120442532566196733480067457843076239977302301037979211429061874577510172548538983428937590990651920413640937802019759786408639293682606887046138358514229782977143148514221860223255289028967874940812682543798247960541725435569070264783202910368937580832305220209000626176336953266645170243059995220676165543308783070500412427695847525014302507703178801556679604975569848454356005827986529842890346701405834791060654262894180375454782233380852842130471066004426448703427400298342149296395678534766207680755198256703063415184594090366347817858130313568122687826307792580666916529179561475451341983274332745682717228785879219502784662151698640678620895531667404849130784286697404788253370572809110407370498121142392356986387924131264832426213774247518900374858589418030219344996918092460905243268316086926408166780184913943303296263326517019703945701478267000140625109309536783752118420483897100151721345997271757000124608477486496640330057303738374666491485072190768796102835066473770883072899646443950837930441016607946378490949441500865049410972908298924874391991262591213314784668136936073754366835417717957381078167884203317911985925356931770619111415537038625404050017043888135192253737914945492654379456307949309768772593035192788663279475107703468572311150395822772676996639264133308860873188370253221140519310216254008708229736287337350862870899340204744974577873644510461949589047065895047539793204459941149886075703766546810784450723129575947663211396277214776983965988712102638737502873975883430712992428778376308281831826296247443994872731592871144305914193796198635170458204957161934464500863200499189639203417249591899337174471402455281441999746441511326428206608760465854641420819279968739508840626773753758872172210358807430356923555494317170270562216998427069631251779824221300381929185432233426455614308690965477466038558317274337058255240532691335156866077847339779302634428311428884588519632681931012424788385370110021950647386842260732565679566270066680099874820013856509730908986217875744859163369814160562260239728637959007424869618738613073568630258575477348542804671640239528626486119940266841948345321652537441186635685713549093199016433411536116015018617145039305392282843711222289262179345669026986163438283208145144722393660956921700790873200268844549542946229268918405004282375194645197686488187638458726455591909254308210768151119899780139678506110639723688981705256004264946027057068445405841701973699156523555300465051899138506841506835827830276940097435261204150413464744480576241848621244798181020984705706090508393105587220466336873094513942126944689057646232791733394888644771916843366914349796803094768471774929746085202932309451565125294086522482731416048786554998293928251125768603337908380664152540596313195760186416341382677036208279598052698172637998735514647948942328286364517865809359760309101903854245478231518937642911335190705587009505157795258851020747702776847906464963093874162133785034043781951159573132046367571436599237248639310581491578622724601771184760957562715330172833708561708975575054971856114834850784518671410431286714925323944525041174366157069261837518529073118528065530067463341311416011124162283751223912337841074022366489722238971286993798621599554252026414358316024938255206305121946418350232601607020213065075646843517019189990292295160456785981702501436881594194030672817603826834369863243345901940593327103789848238625609335156679933115958044514948049480573648297395466235687720410246438824160009564762659720116528182373136981252122468899216966986336395746450632415067015617202452423057908091036577508655392502235464051293155071693426919842969501761374537839678726057631136513677802239189576528462764734949985792898874659097991225046301748068568924101241838663519936203277684462514309874919970615812634934037097442676389617926622380914612918583765803055692958144466743994922034415388171032770652731684913727669291261057109688799910163996084998839070778192012510458675790726677531508384319677014847966937215234006135379174416536085947565383771789119137202627410020730460159212600277991324666590786786882344997001253796157502675953491911077937416793947179750257349375890793733496357482319836454972691843625751825834060942992103656672549785452196516992263079553419128600896609701211233016150797415298752088052063453409808693468982394280001663851487994499036109299925480799366982009072595660615380682370146394238300876122209231066346313223914010484227843306099197373500167134621201976464087727270705119058090021156359470368729304376092583572266985426987881731752362450134184987690153186599838083420334828202161623765181389931354135173162215611499336069797260526592176861366083939609159196420979085940174733891223662606949747754802703808518426483762538292902342671216763305116205539249688146542980424391376106536008377222855980995380341158122174766555414821727731843221089813504566977817355614772741906317423820338044101142205059757567621093817215961394642959305876204589861565917986745659653273823868859880438399717912902522639927289368881591055475242584042655551074579934837657821202336458420328361228424697488753472060104928643649457708752370373230215425410450160025261822346170071091651954559110193918021236897462047521851591248604693662985492877677053981489320662252012396862983599439554926521777039672159517013432613007902388357680095119537463063438748192142651879608268118038176342310050738207519181642452842963377282564281073499783493426951581042735152669562851751548846316440709902337315432434170921199615080343010630974330812515351198012556347068190656836890044817656123551802512381946117879298180525137793331621158453137439417266508708097502290041320696307693593043549041665633304859780724093923486406832322271675492183079427882241467165147585609560843742391632847118751694891807741250342190381519232028003717949439662910545679839662727911877181690166279602914390687757028040782927076123283829054571772096410393351595897067516331852334262900609959549278138923987159043704423555300544957248316500506032075569061728560259103443226403459107535830553208477590840826927701655740916994619646514567729135893615849279466613934210803217430153660580215606994824151101307459656314052517347859695183486439095154187014077714184999877589197481755355244102076798332087567236680208267432487074100105882722129593460931752285011408799388922916319253377725902146357983275545005097329956046407039353756529155413793814279220558663332834764041066283365772103738459836426656653131551767934106374722355452739083618118229044174408813526304830105366472871286033492894031718012281902180008714137159290973936084388071051930750454568881180369566608454698022113972424326586255921170526908398948996447906826398583489065402401097756718834427627805737700880048162387415835692780455977761183458794106799721365795507764755855597790531533515316936541210371507887532413258473773275235258811414206581232300238121107630346781774899152708173725161051783622710093599259270272398833584827811172946102130318932693081830676241141860990379517904664784779411930166289490466916691261256619047150183284921877746642675595089008150374124934289897948022506019153748002684467911083597381173550341954088376620567679293136415968721701370602233497681339556884480315750576450280522872301427262729631099392696553418946276023234890392918937036163550502189362188254869632414912556239819413606727431968668866169356724482125845195067381359322974110004215438247797544734296850000420479994573775839182888558316704331726230091685681699175957508774741314674106473007307164825174879409186676226529766884213667531208170816573996053142179197524867645801434574098540631768628259761597664449269733141814406463315810084915055480174713719835718156156454002780240858197551176917336248838656869113574292000669589011159240767969163290067950574935846440302138584869260332273944039732412600049701406308515109547219689733156363784208005322784062828870570567771309645928351699435411445351566883163167683928755913408966388703233022840507724741290084926824317031180045387161014784325288632201567986220391727622353519582716287083040831057150236676979667050720508867796703583225408796834515536528883584342937521688615309353322178591188521447227805278479854948537179269428436523897017275109825898096890895741101116597776398677474961387931925114993271255391748738990879864530806976094230189456875299246431568587750448369775374533388299730286755891467444806259353468856336760800797509445197145727471814106517026451415704705527825441225716823264094393306828244244797163502383819988276621646724316215938989193644521774771537406949731374451499278419349026244999015590670608751424025440306109220794944538624398149370807704727723633977206040188595566129515099814886527944670462078762096357791457733907223504839331809755587785596764134508132826821544863485828336259315952734456467006674306782310286867801659621166286699006203972237022695614639904726871548905028500565754957937646221320608682678241323016073443728075100492047895949360832545065007410705979095207009356092041518119914914167125577936816627562733503130195445842759743861608989582296949012778378935858987369633653986623340359036631944874536695228446164067750355137834367761657407588252363853363047913233712696195477746077503537238389626137613897235869276981025942739455940107866081605035946088054369972275350708655457145209929430065839094027875290824366516254438213173900231370011810568378668714657858801312658983897521041129285914253851680068277933089627685566693223500956908314815455110073097943916918187278087254953413693075908870245359079122922555147246817479749935692616319435659561922390784072674143240585901118380581291444461864977575701275126611204891071205047009862171095942549661681924180418695130902266905865159165722923435978226965323269887709401086646886707216924168249063319972112216580363398524106303083976705606350815314940645330748362765645904526418732648460603558968022677828463531785897021493224321843659634742714724546360194318776861160908442101464857168490879110493288600854331037833057058560611290691537839961805558155479129173745600165416154476984326137176041278617365735304894193203052113916943696719939269395244224375361655089694695059215629760361629823087129978308929432294290435150605651476486488024864456487694348535787715649179270758336214714839939952918642797307574478729962356883578130723941793072755062513780774430098228185116777182637203345770260825004696508249560349250811859518796580218092727981699578230826997141269071592173896678404183692318448921487444099555772148997754341500874656761715329815618077590853686330864858298893955786682777554299398489767533307058909142635399966897615147814121909611427541871530152082053599307476971014843769190832317121416926099380732784308923030469693663001165965813084712138299598058818646042980659390993604940438209865695161096632909033663669060683580017849662912719972140694630893633155633382362724729146203824429348841616253071714741970874597276599064299308563778270513233024891829070025884168717399351776406180438652681373124183550696968257776404227523063657548214650123136561127525491903073130983544456680543862838599075894142116880282393288520670012945010511683658967883823050155749000096940052943922514014258768656994220575969588282471047649000481063556511686969535323798512035761909862150993847438453915345565284599434683227047735072707398632605054557130035870125963164605817176035440835612823350742841012540687127861212212996584226176338825884076785267144359319582335580738386453245841709086544373765272943430404969561408467066360046529337617626709527950261277153439314915649576504099906575421958324719906883032240166646515481763068670635008963114142932946298121125697090146452449915720307169850672365462944256631188936194887213057264095087817548721886817155011432634724256915691068228941890182075485312167908979142534513134216731349327256117272114091312026238584482011439725424051791110838882528758424269492253451648912753385021463956780116007558929397650259560642496615791146995121305875331343198468911962914522359497532431828137182372964552071843313199755133533945630913990069689151015000147273658364633850113598002197512668648535520856038508436368968914406854890086103022143311677161744832608070464915779705477362174832735172533820026164470045036132070254769911706839945165409382079945064227310265063525512278051063788862870783052340477563305579912778694935358011524392381347871468117618707340742655070627846448325941410312683210684642317084559350013094569148736961446268919797975416974258926409564562790311348331570315522323904946194081511775486880312572417465328691375359011408090378192734137386762502422929753644212519266999963569496782231166135473990503484966897286513097515777680537295425367345330704830168610498747299053715473279566640332206597795953427704678193838350865433811160606578302327022610352690778471668244012484346269339797063803284029787401588127657244303888455797508534616393535735273699815073760966609642094079293273680451974677906218512631170595193052892222420075765100201667876304954165260658943407572329241856426047275871880985574799468003215933001545340882782704209507891009477199177770143277460164460038214958041855564685731268719482178260797417181413600142958426849248286792928720175769669880638040972218483522082146324970924005519741987744098254507580377947227545052414953635543155014394438005168280411577535181623181752691833115725816189459427354804649902025273999486779751696048560889639671463752061564390197962217694251807788579859770734106131167519014986358267138914863593118212311834866588056151922663146950364099160819579306643434986019146668157185735968562431697001567077820030539916642670148783877895994649773115089748381350265085847824041837798334090598076463316428554189659034060975677838000064887155485224406481210784151478492480099945045229849110197873909787086516926203539347451258698444514760746162134980080463406745516461464636762364821995508825067208757744129643941241843522789221274534489986450261722653326364985105716535185951296891171673609008376936349535697733628008609778074887457729120063530315883595743330043437075559411652034127862503967182371591980751530933480236588714553314804510166342763389345283657619337532392314492397646241212684810682285263470807551830528958654705163145671410893792343830789801329802278154916270348373077740810927421127869334848816546238886366920458173705979883270073332261022895313085450105098574509103836234310557304738419330030344637985124104954548801347590151682180434688504281024941479799634334019106326397989703810485832305861875799254982502910575979613527212215543805830025262997189366750394975428849386833079673412963211808207235166681001146314716114670006835120578412432328154122859392994555669409070843849827942851111521275771072985528709996886816992106852035241815415143338331180315336799796577989854447573337030105073573918437559810380993894782648929840404374038956447096975205480573347641703779132940478508628473643996326142269492469086036266246034824832957429738738344428687310316516722115611313397285852531192819582338743065562794985241252132083045386219760515315953347766885583082219748496366067246117439266213958032509530211541611474706486701862957549627742378031335466530860495813091132113579855096495300464567299290115719674747280183932194193248868496718861494943258184133867440353046052786601115368872264480072321989588807078402507495042759421012169403362686099620685865827352406068278132281381662940883546898556590887129257988323204572385542838237063156006127945682559238911605952758685488314330210974828859814788666978927269092540662050037623743219232456322794143834514321575766849569371349675432555344240702781345996982610832437736709037610116182814315636205356795956590304541720372091426212927184000227429916514132398733043950021456327693324026638849684580394917549190690740421054592794842605536733201399425438145414668233962724453722820248268867842545609395105086605513566251121008895319704016124995579349068806218868825413790961682309149487183173381251983635316309036136852714099560163431250289857073722821899500027285074179642483694320975548629798886361209655785221050950853777776850285874101902424877864252716687493073812742110787164624930801801658633026682542196660201812468805865290995543178965649046140386544098324401727805904847613652682934087269243247257680569553006094875101673496647064889955981409630181322731144787247420610730381641341889065087501152208134602422625750906106965694428467349344840693298749135183786222058955539556043476195300308277108496204309211199241067425325149011489179645894969853504091033034457010462222530876824206607840646036136785308400410395462700452834413868241871400503836697063466302619807669689708387807580465087758179734868098245289149043199283918892296320129773732837544759285229964658765760633310601543926365696274514205990166883022305696784617244292136048221697194204767769079081631804790361935891416120220869254518597144846929592468458301855119789649966764763224692180331487757790398587851248360788763420498866225308164178741735597100310612789523626817562697313504187940557017835187410374455876097765597624664020666965772012274742243326903524691129403808810894835275481917037816073881207371735027931342170418238340689565126788538466657387466093945299269851032730231870082976106735224173070665932597875722850548317590020940018803155292246605203940581917450951112000925852762136035516694435686762501441753329320612992685289394738199811974711028991211016211512690632082838994197410007547178434744125578393676320536679075195224501913217892522826647248256815479348519811523087802304498114824444887231666578115658950856426561841876170549411190202370851717594319597222318134653446434850524236450018452177570686883310618133902975683824352021493854485505356237976509305509754519376358293289207340213455994416497717101964551140140945844494696871508530935257417686519351118865705602810642301371786987835348301501771688332763073875296324333505111669675001649785869902539256071591472259981063139822575903609947630153700981227967765651591571704507410954628885711782242785027407019397400551895835259398449897253342540573898941169458832041171674930564826985303749926154884200423685171752237426616150314246126193219400713912113026575273907485015392776305981178798886277900283912669662342477749521854173070589033333742180735381988514262160869953103026303718078452050577733724819866034433680232152302311607707941526374570062935510409678428126531808951181532264204954489754888806185109813441272814283577139409611998661172720370200362866365061278030955497827560813417015959280465586911491428430550675389243764078504707176990638664050718902604529773802076166538647349269541905082664957287280387080967867213315761880023213458999018475385482540073321185082059468633646501717220975422583379608176252128211435114029369175378600240871886002840075641529106907490141748115631881215435970878457995674605371261536027019109042031805534831474372345288929635046877029522783968395660213265257126435674162347663237845120742643703320347818816556814223445966226218688482206903053297427448264307466055523108787792967983468944275948716549814812444673886954055400035953536475119742323090856158072303248103008142850407297650902662710480119956273371878474316468546565373377884551607396257240429891111324775434433116290636406263708183143373164458689867266279276526199853085988809373624147367315874694152207600004416867696441576856585595121526426836595205832802203459806353412005036052926641974955679873156866726059011190187588400773363504372448351739603630070784595190167659354264729783209791773533601936537671234884445529477945414412717143761156297907738199725533994217482980962990703885445131999736109669118323181687632891073641036072031930981113695584050510331549278502596769533331480775161777416613093353831916315082577942762911265801567406886474346015995023755068732764447758335624822589682976890037829794013491212200718796913235569816965324565292091167708065380268641228705282711954400728630478649055025683662265675476725943325101872117403022883456110962314394172234890221296053504469072781494732106123202243062735554984355151674072731686642423030002687634339758184597080261527406808770057611632446583303728004536564714150129888113683578962696919158165740616863503023194907213623657229840389506376553748097226146940451973987754304897143939690392528996769942407031142640240225781449553391529700104420748130291715687384084562468059277359098673385581809240745802103943648168051269422117181132410148166604911227091468118232630807162327401676211591219825144134332932100799271606212746468245335271770531066226512237679482630551464610044613061532663812019799993475385256554754500097850190701650366202742357171523879391579871724228559040906076066451441209875726359084068954556664974573837992200701102120415952016272195811268479956547392683828328525832218273654503346513921607157746852523236142415613697635806148766302379011709364051301645438980054362001865039392482797319017831560378447357682469856512291034351631092752489564364553521154125844134261552353054663905848654594737497051047522318011255090284383041041946525254774964637150625063027542368903990213952476466576140223766154614681681990572375752595948248669628832181877959085759199394703068817527653660184251765662257000452309025147354864290270050263865410244089922079486880430727382935030358462700504331557114566776285410602290686525716374014852945837363952352939772239018776087858917158003249273082037056062764693501626447569914550593572280717293763236564290994739081012348111258313135147126306448952330000315138211788824271191126085251933606137915005329322215135227873498482732919480241752300910798700673161209421957047607870055089798923627559281274928919127733095281117000497761511896572798632644737141610145425570136983040639865838931021228188073767161484676216600813790386691698556919795018158257025574796522897188047035849583443762488910869129555397969325635854930813927301324255356204533844626019591658134959867031656468154682375222214003801358197233556248591503899932464095523550241609618032176389650515480695185219138523924184863708621423054346972909086962114459642007694067701823459878984912617915022905150026579588826725414426616861326122113636517512368605955083135942927557548288875352818175867508081284952074372552182156379679033254579058335363210272517645171544237601137964214847951847072120588607408054911418228105203840237467804388490889584169756129146495157990389428094889211383327745901174624050782207053311688069264610620261484478431278180171094310338649507387529295281710643469659816163983174819535854709211508718616713312222870121687535724676894081700108983748481992059968412280273499325874623832312080319996932837340463425409926601344859014357300700523406371963425439241983450312604396030757632546506931260438941556888334271513783913035428200929705175615677213061538137574882954257181509836471636560507258702616875007807044981530479467890326471171116948364945371146732777726982561799032308801201296596249537958834785345826566369833427107444461204588821345079121498673054725892283899230180436698907460006891540557584976376337400911227871368743170019257702748421331001585640339098881159211236009026484316614229044315415045172922373884317467501383782422168334085766429877651635615505746312324107674045018085205375293309932386964569103960375002105904010804930407056142303553339610709272994932605141559879012436568779787383379429357075808193016152383469232277603340737769206552543298733897731958574131826295802960641182065164979380628606663786069427537432059549501543722919256626977855087002952768036740419730733762302968879880223094435439428773511044666252055792351111192541450638626118834303151755683711802964074530395767762456515820151562880468484584123863107188000430957391322794165227066850484802962735411407865408336287365851013902893227911435813571211338358375111801548824080725882836395163874167294370413577990072011617867167073028573930083899160380778672009609222610446433420312810319702563426576246043993998019330577359982824551511472196021809527807792352383798222446395512377133244621164744746594448177565156288696797321787961751290107338900139332926237980185322066511911024801830122741957058630679704646684947187880955173110019087309020018512958958226995487295619864861598692145963768869817204445538686255469411659351749476658635583734522041498122580637568443401408383659407928101944765211580748370166055506396159204764371176101254366504356543362891697670367779813808851770023186794892698412718271069579777429403685055920806811843590250417408442534243556444991209751369038643374800427450452513138050525999980237258755290871890077846284923919863156921538840427692362525934704447164653869209581199919412121352794814306207946232888297097956963461324153822637982363044701924143275699271702614208103527902090521788274156783404841956528494961010810062382541872978920911244868199408693475987112547188546059188365443433961074933792363244519145079452053306789610956820682262134268092519612691581536195620687189548476096892637447284036790815829712371876082248234839363187824428071356099166021942570531069782261945758606684634964612703859195510989852717285720412972059201198266557606179217447598645974281148143649693762988078114254892210843436065743996110491134111499454864075601575787193215992892717991784229094879691524160382599861138467127107426608183465457188836709569289811187263908176917899726464382934580936993491348061449526480767317958887003363820951460192651541073426223642169617965623021439360387781683930089585100595310659569839559243449807439597068927747816496916192689823176644738392545352377272098425589418238020638939062558650761046090081523684521514551100276969666833103625801704484166919769585208643931506130468072431911554694734837714589402839441579364567411739316372316195901398251602179679636801927005269476848872875492538609228390348787474014427141556395686602389662598004365865027641373589180260226910161548345965417511021566955936734238244790928397501212040383576007263575939277303792021090700210791828603559553328208997309001132865339409190249384780927506269658021215465996847459104623480795858655564512430986738962980503335025739078596669768456665569486156895417674873892702355378326219559810882564970826188989875052651566815796980431032811570295990686065211464953437724823272998167090521105072072566850008902088302565577833195057342880200060405978112976476161849063311782656810167690758158559006925199156565195082557563402071890196820411253393641032364191972096992300002005245679215301336939562954183490422203086152211481424351119322773002917424121936015779346075106410745330661390073444256785079354998662950888243538202802798212275098343368798180672710912355830656099074698605797922813592190151911764001775366592026200659650040121447610589632435554536094510829399309391663059403232862241261404904843215627266120878755059882659339199436682841896738154545239568878267596739465803447457197653309542127627637077991986337022632041116983538888593083878762692558909884171557534319533143014522647457059192861842936502676220553504366111403841200278681572465211075692620052695396446848594909465186280358999091627396444733564585779399484338248107248548163680149045001995956904408681729849791061879131826365656087627282556067624507727872285928426956965931365734308422646512183079886944151657273410206573790100791796377938634073794982979284698413132236791945913635449452034304577681704345586881568933663973984848011439539752883162201840998231943143454217515781146192912436483244292722940484263799937007472398678266560864009820855474406180901812999425932787278666080962024672948221704592850811708999024532420596120695783044624166078745308634924980569423672879765854058378531352020305045058542410576784236079535984538225425750489748658777220316706937072109465139460412915248870373199378094912987792593298291858273577855447528432679030507696212668959437337953398771856272892704538066389539697151038049112765254431693284077753271785950188017443704810564967403494488429796638177421494719326792572645437595089997180896424392683659037845220350883980911574300169343680661412281242389395695166898121071494725982591211726048102458476137099539766738639285574879479673100357726037012349983292779744707585580318179077665711749510740168379359778007979355672807649481532217360736207752143555231871475259648398429555131155895962001629678073603467830359208959508386797011594088900132281853945164110176430617323518370209212909054388192775107702376416144452981881138149201337076436036468933200830229934445902689204519075721438269027250487373795870397030153991081310939148035875035280615965201375021293285507848062488028499988745198891764082262180855978249953377975572291998918059104470927068575196317037667064108874487390466154879947908131541982591979142957353869757020534635914125525455100843097875960935800125230867068701193268661217257927216348051119059754881480669163948119145750806774125160752351505198218260498841109716609702879777657941363813221597033254240933679955702796708088407819390501055506421250540124615443858557362555077115612841120274602152605892012659637225250971255624654310629786245978937516167801152131311186290403904437441734600110121199404354637700648973407535796171707253972445653909693225132639636022777168948435922902070553336117146255292061668810135425790197648545324931852035654699923362804118154132977261054581642303435021412756587334907651870984385029681057365900802861429717369065452347704060869291005617875049334655334122127206472399427977927262087024935224294211872553721282261767442711238000885509282047920648385858522314431586381225713725345725763850851713432333559716594358710268172399217608339961439091158192251907618648480372857441620004750013483963552296850976606988877095617903509868109727046288421535379990913137241367800534292090498100230171764551111601289486633683200242653894708739440494898690443309272947269267878552243937458541008489980995307910158587205291521765681640652897416659932528769957606498820733099069070084794378242449887667956557565436151585962289399852869775119927114493892157850509030343327056930780305595805309808896343135068713892062444504501979357585713772706561051379136812884123089182107466810393829312906429574777990335366931519564823625600077670439839836569991735537391268561073661842432294166678636633618314823345390542732926132836809952758586035273287172456730109094775133809367597258929108215520321438653144059884571408554017928506878179934967326478735499300691420373469219907550694571225728785192102551658631788337222553347178136698181100997178815619618222918408906472602948080650683491933421963506423876702021868197725035527086532289496797995025729811786235114245168836115294423125710809202996031068059794651044756180502398333597392712321436568732168593520144261397718946166293524104918834717753592495971536434930190732817034740408559918916222584630820121736198963024827697060179920732793438376003899575818453305227378661690516471006113666450411271899606388866004022961849641457108431289549433015738654308064486242879808014973136501759329572963667884331695642771496216735872524239186328433694294453829433752851572709000043946310762066349313173307637841745212473099701147287106043522163281188275078954146799002448463769298448044129413447775370628143391159496977260405916215281522375595745431388570254088230120514516193178407814274918475214207942753444670774492789709337735491284344015637310240719540544140445205867858059199638100086464639733209856141673714160519651053369907852039700602152195092709165608741708879544890354177285908392754435829915457652704703574161773901319668588512123896918608935489272399371990502166429663370715190334330110046445590080694372446748608515577422875802507654775301659409003278826666874693271601423683801341884052014222488102502326999453144736387004616806192215199110920795353954737362351600593135888585677630139724379438616884602963402241877245024287010966051264665204761667892774970291845098230132990407736191485338547538579184902243849366824982709692233102159436338439685906159002179989489891441395074702629204610177709832948461585141224780785599581444285111894441026157172682238724157681954970010454474930702593306332691016320650756907170559582496260006047609496472929963931129343252693009557315840596098493178419219010537612718930561249044188868696290518904560821858492818365668230673767061961723503803314512962018455002119805696248675571570870029947386123232200001697894543085257630310044785028915841928388500901437360940319355730677045976610848318113249982871289707694739898395922453436529682009676776989920231844869984080192286151306059143613113589991583512046080099403383192008792333635359592355846011797079850343067773272006871752043278841192840643934766898073106008341825484589739371592399277547770929158678081042751269741235837326121489246294393168847926024411213182098684948074575733988496457789384895548161467321811261483871300948192676563185980180927856076690487326346470075432882088144917642350527448312976761551133550986550311695659231446829735025044706398088137863272419902720970577918664552282833163376264809582145011773247908112592412750106264350622648864045645593334601031995075476561672615877259840649754118958020162624508778797798737337347256897456316537116106335674028707908792873554137325887248822350760999712135965211349691723502200814076071645934562920851699074942162124381242820548432669813739273033915457289250986633691273822002053798795593011095652342722905882713358810061004550267114043088135789866196078895830999959547089584362207966730131302067684318410587616618578758098797644881207270210115229895951389110563455909023472325815934931340930472272418951845357189235995278313925339272854324713091766279640644163128761405720124668573499113944024255472952171067160677049274144710737110252278126355966912602308200086821058394064115515467830686213768959904781562031199142242598941298155655294677287304775611138462872495775807710665565237907584135665311360969992985273098219158363790831008594634149634640924268456725091386246073444897122424493049865491706596408737010316670263033692714305506609227198836830652411442694909304694684732025695828249533823068169096200441124916457316505464080477397166484263931530565847699948644667954263933524799025151422651008444256873461353961548841587961896336830590547532395558796090901785189084906140717052674826222685373126181851724312129649901863084971358529387206406953842261399769988102530893601795603486780651993595385720482685414011517478387620696347273482435780579925051929805945858220593512757635825015953621946637814897291310676611722142722008646005774192316126052216992796095393682297769356881658989437817700073007381043473980010340112758507476495320416016837416742933911554720616920150292732562364031454186329205731312972571224862679467106193881032501361774811146235656499792634705125850847339295657275488888447082573722624395332507989201991925004364514337799085103319695617293178019955248790873628574992295714786218180637788653499472128704292357736212684926892794187180665867378782138062773388646067809012225279824943064968004630817634413135435817368302038528910391584996578505182450899735354520939423544049838538283102438125616138346818626299341231070668708527596555843220107023587796835162559265744788856269521299695911851428328537450688236512936940883155371652895968177795958815013478404026247487059568217956185222483939381706257401918656211835847561743486450550298175446212564337646505815980843444808338770266633294371461110161626802363270444467675412078475555802050304072088550076702393465368206347053968779583159535043005520778884723761295034768245910421162440633475397363473943478443983049924326663957784900550537547619021829811257953626797837918758870405121849072665425324076773328018960304493058397197426636088796896297901261447589407868034837892139023613250994737532413551918472598137973897196294761437587397055998459553350151555848025634119109144958944993117240574441283332248096795526974322181361134299118263221085849496647446728174552684632393248145092239392869712002670287840058164510976555442384019672778996911128820783849363309454339502816671979920888539772312690803337723116404846532443770983460531837957746122447609290540921453978270575633871138225558033857988904839557001179425883810884291782235161645762426394430399727535050416745779277135857978807231893980374061505654401028000875338650709144053582320565376652741012163952509931307865687207411953352509711304357226237597794580665468046006064035730743326537347417297694236559843609474850632574290715116052527958689075340201797200494783231674253849351445486656404453205778052080682533018569635893015602710023979673279050066827388943321158583515632206212878545213919791578084285251377830202183157769345209298453659538082061109416985546096930878914381073610822560533842493735568839782919908229249284937320622249743270053387763315356579747817170029796948713897072604629066212812865325822428021178265660968793664958221262454179843312446187767841559456597820823872313717900755545145868421080856489885641376877700158765210825458768770373357024556643097497423711883454735702367975212769722416306772692174737706840017105535236862074776274811275063982071136334767513727751445318557134808275930456076347104677227315658116593983978864832468599372135213439575422403306647236610201481848759788981103633322376059868622993522329591692754741156887200827400304606387820407566705172855673252968632884862401292815248173315216457749133070735405064541544619294036865249201539730602611611603131968654799556343681965369026984460066368132759890548153067857296263375507246430279344652196270070198368918874934146645523072530811445401037745562950971378364870301128294636434726174737476284262960044193557246263024437489306067306402737705010651849329469971695070605251087442419053360583275693696955360436207561375217645658934395431319906239428714150089227960210428885080790333589314254629377006978791935399240223152330572478505463243516025479913500977343521658335276408536500528444738918333037669692108265830648572041297688613838152590183693256996589901076932701749092254914961638403920475768126077318018981633512289630344279111225324562949978088844402668089334624313003418049540686164878007833511447829960212256844291831341073484947150909581244130340987748067659356476029627028679504356504221985793694136485033300026799442974090070124274702301776464087079015479310446521324232479016704286078848085306781762033277084566311152532506619379433093147827432444160620588190637516636926762458756132745354903058004269567707695544497143263610098572375149300100586432261394582635213364405938264831135248093492232083673219301628635599024903961659749267192628543996141047851795367811082742892367641314027641837375612982012530517367123122282504680159108351357209667478119539096964140918753705368708041437745552918984111299214251480865573900550328129038137073119116639846753635192472159291053635546090135425386024129275618760297319348855021287887265585547190255867054820105425299100554173939738054782893594934304637195628142685597293416108949996716687087283882237857951182800475935301855032007049476163691748708105868180220134104977395771055626223334827558347389110779310556681704513218310956875855411133011310651418774234330344535441119169986802474158443434239326634163269780621725191653887983843227540644215054754567021685976604701073344869994503472366987082668512131004699935104236797234533277170848603689600177453916130110000681372011854925752945962017906383524536893809668532751147398560685286980413536759902608445352733433135722872737710165779899376140086380098860501807592602084751641856240765700371220614062416017486907460805607894173689221642394529530088317734400139768085509706563232066982210134211359060802898098072524255992931717041070762555683583650503028057073395374798746323777241947133400798018102364247380660323523953307145284028087014847037830719900067038276530692347959833190622161321922736842092741993821904841030017551743922293906931350316567293227598545013035586034641803375697206965201647926972257210443885362850476993149127752197220599793092121696963143173610656310882089781460718961540124791384670298352724929274172031926457005400288417296083692454301840433740890091034720604026144545243793582544263056158540014874192641230885289483633989044822613221179963240324970902129493507875224874095297250061675213009368382682779040600698128208304047601277221713536368929199926230752193580662257035469610022382236499402976312808434209708790569137483735814952178948304828623687155460877913213150118318893777609224188536802027760420421114641983362160893317370877163748107885028700757173741019448451629522989832764704927543515486942547048264578301714439433403143701015420050386404848310202473580813769531809504912689202308759196433788762495841698771474702228319655312195520324734101387122744313642361238066992276061202398839581989644517143187606984229525958109675166164321053678561548297731270697663710794713444206126697546104503590262481218335383006771611820948546742567178331012602506964165719569389233831352700956450010053395895036301976716583295599384000684152068489980783684965561155335678763945375388785992660127098834690509818327009849973173439271193918054066687616610719884261255265585581296346194355029877958499948746859803303900423419489217931427379795301230706493270236280221134525923744508024636070859045980445100392439563208045773364103337224307557491280436201234943699355091732343973546220102792065758292306219404969615702009833026897015011428651674735994346812812644670528015681934812171914703116843933416614907416479557938505062367386046136987806822772747011947729312129244221028421571197529170148781072714718503827823145400023662932693455578241703195047229260660884958178402574058909108679334205608500275613578624881680416550917793987891083247541593959833843150577262744671292682124133619966186477612210147564528339698563672940664604731814189022402016290068723250435952183528563538195741016373066845151610216196620638717874940156655111603650779060235322584869982216228975201265712399965454788609728442526158594234776807197413678307461889964624665048745849928678169498328038105444142247288813010855691780461283189227275460207411291840416265335869083417456558273998314541894782350704317082503333828811927487725549540408368467340258363513791758432890657458617790451189445803570790330333512289033122710679657332802009544536240860972271416902445754025239328789209478097040262683747170675422467024144579856758303234770874354596410754693317385387868477380824705099945431928986015098571242916575029430367329891822960062358946222258650017236107772647240119211780002757608831554371605417124225905407330735671132331498529101472202901717943810962606832173145533492881432023213008211688531902707444290221187627207411665775959059666874693406769800598444376976690646739205339405928138872019720106083175215945619973371917559710336713898837892559947599090006849895223071754926048318802274589357413549305644277143078287788556725112037420912474417179220710507464677963925084578436273276071889571559845552716696383951584155395511933002093965977090431665598178969649406449778538453910397456484137523130885669771117951787572230939121520699029016029385966186469632777033022328963129035941728477197692137354307890314350230217318043948018243462522028541746647090928240122069363270612631790386290751074959461768004703044566187614533678793993278479854216593676042051756318169053047725044350160425827961364506669184918725322180898567778244772047368926448255430876667582767631148002153579480704140078829494563023410073352740248001450775428079356588063174251135253787240720447912424480480221485904311544025875976036737163044989120516352837866808329981855911281946114267121167018743336097254318239319564292773798358191181771969373157231954803259194399401725672723325552684991936129412961599955747793961725884878366766004929956275352137583846517482245072771095268644954892747385512317773740171555177456854404695564528389616833898423217474077415280008789087011679374025568068715923786753811365888700516012068891287674425005284238325144886658719962886296579507958479433011585141620920470675569027767756544275960156204441154484042164437723077295954171920498028656067383246788031984301512397323363765317877340907579352595772346850854300566846844788783936005977168453948471642916707746576814940952606594261694926922619350373042702917214592522359227089513279741690888896930153020855635311690300222477379569180132921887574345741921124040019140934057040758299242417524979323541343122501715125117934687980272476570018981816402262767218549103569718810438704570495219739723535177444644519806455944286878563459957063493851878766256936376477174531329372253319890588398009020527722231494314960596904931243008204791178169805394050884528051314071628140620116451410768109663384489988829835009723738228302773520144034765276001677568838518473556388495185185774696529220200706239522772164315086104172485911536478646214046111461128939797416529358647826152692398497361466874982664393848568476550989839615520202736239127608991771918851581547045943068901727458585579505090097368002537294222838517403377612308934516954323767103590532333328685830379558902493277907740054596961721787925862895934220697243768622244477880690562034964945074953926940904489464787805609568259514545102529332085810415166777962068699169621644142512931897034735263089172463036444236934625392182246196696571614610707240363286607004734325480778510844812433524012804636722770258280263562109063906319696955822286203372181355699479153495117250065744601703248088386568474871597668574453067899525760688557353968036865015108308381536018673552756548555570509787641049629165110390621301064459187626141230162272598338491816920890897835816819735511038726292834998456455565909286391570375926230186716032691797161945879660645100862419174491867069999796915800944430440339676104111145926732970544674331548677937946559368719139175164490980919514192012379917784385985108639875374085956419399222465519237055449232269571597528633139199802589331482120856099565020553449168626209988043697641430825887890696038379406841425907418032344176732210059201154582000459212888309964476441896949324493046451442117158603889718455261570124507449349981081533592813639895176609539881373892121094484736964010084588169973157256487153233258095397895842970674322996177665216283797714267673789656702878758312260514452947178459257181000135692341975957453850366602657647020349575892675341102915184418507364332411985255847401594719794935401091486331455213324971940361290282761839139709591505347385818468859457460135113071008107573294664076450825785857839701368031164297526207379729353539879150866907966952225527373144403320731746433663132870121793248100677914165864940895686725988172576426123438424040375215071148982782971963489116369200115957936372916709641688065588161442725217889252319682804767101775770892423492262020665448565167250758196747054878212241008058474908559028546010956078036558946831847053423418123268913308836412837590706117246016754888400942385435797119841565931054215823463939129693630895807117082370402760823200174479584133627453752172997852758502162038074670003233155139610615266338582891601853798107090055733460489340256494573817695178112326436021199936724787573365414057976999149150261515360485005840175742076708174701990324037871333944139595480778195186052140523794672021701043190187793768817256985011000184494451528982703809675707014202112583453558872677830027972173825380013408034887141492961649559132407711104845568409404896512232334965243876606220801829086251144824452040531580563146294916521611779229021570960591517931843894065006773997176134891806713791753651657054006048424135171603918445938544951293776256674404857329983369273783533494383661668459962080278456079443695759670621575011866880492579208638349114261218230219367938020776701522272229158728631286158625996040148104125958610403897661500856644451001114404500770450603784994442293966870807814705269659217107768266957999527451631925826377780431166168810869974609348264402574683798289699277398933486852789018236982561768334626789320519900163208647942817489620440478182997001693355274125746263959087737553218442180569170365047219137797634434182573709636894739863054164427011562574883027130540840174444800690001718876542437327868584097547297475280478883508496600588793738522488942823236807503302692111666755494745633263083035674341945732427767431143521343685997104699455548448581095819007664323917142639262120275555819550791097974295545853525939338936021475232967638643721046848466335094314932856862215730182753811590481561054997940988441840139889853482231554212231752654441332129330452550233209764160037828033774915055084769896779828893568165472048207834127052043132025890053495986758772489610976152342220241337102767542423750472552711197952163317348003440274773752965798371861960887120474405344525213861523917366496558102303271582731638462331702603574769854748498148396696574744407063456453314887404352245070021932967923054772786794329298774057487574925508848277461598820770168582845352318962803861107123407794491225302095237686643956234593274822061844335558967427320482557219378969509109754753678399046110869308422968573628302318378914892924437176659613335697660902422532853920693919521764762283080511839359897603632509386568499846874112804216421935991225958570477894636599157659236724869028528862114056544480524334610595514593082197943547178661028498001054977501109113889772159742462206992792941982248426106433527248520687094585534115815973104097196504608045510247000208541874447086102451109617419707103190375637875876734796164785780298718821549603019990061317329340122221472101528859395811672945698625999525191847011442199678696718886461998517858185545058329003298492775521385560208806279399684363258908563615753751569249749042145524857925694820561743547325095030182174550039232229636029669206042139107705881115258614906300062792290408472373681580227789997035531844326032024564424939674969697786278072042916786995886969191331897164678571255646505067526827416538175450497057746606646289417734456012679456023385397329758329611799922749940985699863207775640239311390953817737863825044039908824310631116121989585245021856498033888291502669151821107051405303400489897067143022612508410722553021564442550727930473636276960689161166221125540399155098270179532657461728250690345539253431898478069040880060429877457414794292446919844809608389429530470062605040842056577116372834697854431815292231847561870994020285138093577159375403822326646944954882313316269282682526194500087919211754201807641863394980763297000654741743094085843003797398527718047513858724874243323041792340061801321383796571043989027460192567720035351057501034981921981896660220907554762353727481777910096002374487765913709358842189919084431016353711302977315033685749404256672222435126326379294722362009114957798701178172468000854669422413670861333576811705910219796288945472414444870516078685612174055058982842228879643298845133140373592480666816741829826318346222855905044927003749120361701622825494791101271896990759146973810320333429876893636371304453964716854147834083439437096302999737114016117995558785968478464876770907419756674125082293820247940562487813105064532574122553638491299220612978690012824902059356758156943241042368611614474261042534449850103809740450083930977954974041596150975573185350194416422216261635559231955171062183370450055224693679268532950564146074854756181583393033856730895461782199361439025247028533850766879782988804805815482639243331323227071356493512260120236542794038300846732288066754465666926124019435818129145717813036094763819132321380620015527385439125065456830114483599786153374313700899537824850518856110326640862716256023193548527147152306918372025394463076871527098426443992740838642252466004891606038665769633884697329493830481230848183887335675518260517694899274712820682538288714049822374716298200516187095040013515651185617730967294965629484247061593225857468706603835023775133985472511499266067197656722629189840051803848625321395780730314640048729180564524638369217891611513301061608534039424606797015539286879351296234777949951554879536673081407909488930969311772779253083429938075448265288613160352550029247410949301251519227988923944655013192226893440009814422643494060617126004367172973931608682626816408347962017558612039125430013226457129378214912423906375513080290388087456010297734099411501831372848135144019726182012477728927284547260863521184340753220096136185405063535057146093650209765728944171224024392686665840529976703750609195528479111390685432508989801138601826999225450429367893172920722417994777158276764448950548466779594557247946686350214979582787354176693640899115069214774529178223113110431918828280627234070522732477997179831592001904168329685918523853211321748715766754832944683567454453103244775484875288739514486683722017646174961337394206554520722498592666551167015290316130797415683964424045522049394373240833467393208321088733767671437380275525255843567542180708561811059159905199253208900186507826886067282267239621114210657428190610768962788125768152372172616912526918512083177706940618078973900229452176097512976708657262131986391425496504018802166569446499455107620930524433371484815246760651942270657928038865625148134782953550212467344930196961589592008496173818335135151030934171399310698939450521330758526249401921498708973041770374157244121122112709572848505684879668191986886925736765182364626503553945076159125777165859630227393066980467756593536917413586881651603057558912974198250449755418442857050529465205230780087728406343980688994994771733227506030289483315723670316658775119944745607109106283165356168833493077790678307323462830149001923910802427710901830818865015897157108748688199902235709969965469146773006479892166659857404642805353641267847410651522273464032628563134898110508443738538472316602948155222658949463379955093987345691115578156762116758588202455490321310976504639410619445344709484564359373180189407704277168726512019242473347724873370321308867168291657396114949646916971488004338887635628646986485998377335853031026832869001989361510505803226742967101018442690296572845851208114696860779043973897791918355160679506324236713360236343282331597131584338874189107573656797387032025045918987516791916524233201056451368948278920432543153476563557048333727078400720512356712205237096477201563898408123652260442710119503935205140540092353289451796538124974631916304739107264188218712265395700973973899670803437976457135618692871880967522907456013146748511129676743088616460094471916366700510705163969067902058291415160027090068768593894018266870083750346904315396504914991570781679741542064620041086520260951177850029944408928616648638338437627489209114225971667669102353815226994679070801371291674757488554537560445983804956964422104979930835805938098051665422692174325359238576905699436504200453438685751039214879296957180172755675014446158417625951013354049325232635882786587741866158724421138964886679213909556958418802516171845174312895819918925450375835342619267801179409412046198317926518111098003767208782682678980649098303065091310549620699599369252946912513035233566648254074325411964728540448924375987992581855714789693008123577633660529595838827069905335736043802418133519679029078688792748837665493982404278576742480675221252888058063382043495274583372215746720132299075612923903524097881201370362247545233008306713234936992449264202766523234247597818915244849576727993660446174479661640418385689516330018428350813633554804209726481048974360398459258165098468517426082872368063240674678770642091602949338958968222242841749328411826180544858160837475479907726062312644375720099467609736840616057966749612631452116430010443151196337798097191751103316391416846431158528681780937883674871246078394135597087079926085133485579465760825649073777195552967852610137467958870036903669794393862890689825282588852563475659053486917145925414034747229668118199886741821304515585541510511320430804742270554464843714400675121949740215339007762151468135454237029821314657056879973539353953548841645436068988823916899432773069183844500502395645989217046019802005747456074760541346555397927061736153546560949328934011410065566001362076582493428797614202189527485846142475679386434303293133221462746284649923567447011136322785833614985363497915872349887702141700803762919232862564505503030555828777718553708450018342193243819443945101242662419455930491644303413690910919986441661766708837103181043028660474855247664188373362226903793106470184163981913995468098346964508876418109322194813422188208153266151047726549240433403988635790554315831328818368542255320232592184540072374390099005280229412651609472123741300431585018725716207594957999083860867726477370595271354099925254412512209626369916023224696229454982812570441496305127216291663378446953024573129812836354794875699922598189612680814844401938563354824048737884984424044850762468791684267936857809772251056189440023434568153333675058148854651740355793604954685527520204061598647880710874011868560256260666010184265717040719234944187629107639652144588397087585191015037718463732067963677515659518772710942866395862134864438229626525190925308559186993474119676801050683095502997011642663545346140804152693655813927978684271673273577148074614519164247213903226796526735398353356678117359642621944185333042986820418463169516682081703480974763712537946830241368445809777331891181636355116733749736711433080979838545312388953918611097060840396971514403284510901627392051392545476846078280907133849522738338675777345346247160242897605832253404374401842909412019237314965923755355373636246034596170420285000758601049348583703027509785154000903761604013696093858046243770954548567701931373225871614033308319213707772747686536354865366373048465703965555300239930431312674464018546831336562946960103746287273006223043293847497118362211757353819898211164189818111802799749318941368358096373824856081536101676489191576322604691642036961533197193429162623406030351382214435161055621137105838522995640994906946933261472664875484876365135332075837807621605855547552553673841569915061509071056008743202102792857933665909261957480805337366738118940244694506567960983555342633993790094771571116137316060850257513261343060664007199545986978171653985684583220180946558912396273067718396828545745857334264820839589852574368253114471379357423018774152504087650922330261579429472584686228681634950206285059359593840975365516877731920633562392565410974648176992515439153701831035159985731155606213004019230363090738048509811754391028995578540751028910944607922437958326573855093830339789966988094321407362417580007946232825415748790379433905493058023578379666298040675258700982991797002214883095299272616963208229871757924019531979168570514605784418395086254276784685848401659869069255478008509520091079229085189412582525209671812831498381291745435993100679403415916734063063508188504000690257009886876826134404912110562901260021539764216613408345177450843885800295333399471532336499050415403268278311437326041396491853428996525747075837284664288244975879130392381902247436470387058426309150529622189789121991253228068954537241467714908549512894435106927688476739603766468100096142557329048826309840450139185276726312542833269850146498688776650455257166785766032790396726293051738241536848128270932203873215478819675164389631400779241800784114375977333172602175458333065564682727216789621799313483668521163818051095888913246421842925228119732383741155969345281176888796629675757920367277026704495820917682633212543784143790622240160844461317919839568499163201986661756195214045294234948178060166519487378353276704393286738582282225328360789210717992049213678080210500146825719410937784613839247574334388049263875970239551159515170304680548267050225386287091546906383719763171226327553965754922652327589305370569845249175743111571619643881846388197780694845565267762433654202585256132555610398336779596329194582613482209038560972076128996864010786732658273890078890302395613868460632104754442228404100340293543259957409646387215871933621510219295892397494245982942897258070284087731305168870022976962400738081675955292959848272910507070771625357766742016781977686768630986380052426867435799083864081615623696843355305823492256477931795962018727850828961934273337733098479041279933905250079897229268830864263595229777031449927987128998993325805844107292728610592342924861799853071354784911986951796079072975099887849506203944820346065524418491275220605335473997422939940930344630170068665975797514576423042816483783022284267039090850508392993736948222828270202060686850628550001368310300484681478457897347066095924939030180301745184478985345689633105532279005045996499420190327013754735702384813605160894864033986559961137539715858439737848983046960766670590945490701556685861997447448500770173974946338202762991237551770973631008101847903936329842969377518923654817877457044461029420027215052181930933589739957312033080984568478862589439699387555458804064601679760113944860555531691514307967547210197871490658633982286465342041542744040189451031320394883412383037028546059141256823258470737847838855020997126359325123947894736242441089442880010748309306999576624771268877331367055780020971643804057343698840246300973286731010622629014012792247836734340170415244672778608148298138749255521144335687717411879139461125380769993301919303272378216759104481458109708311260711169433179803906329946295095451596137640372901793202468145790174527662422740189298059673518788881283942970371916909592855133336092575390871248135009205679295200065261044646002349762944335947824703320204528593430303138256745743132195460694145758065834458396982220722218826947388435131952777453815400712358210019028623044762089602745739975803489224717643070864660398377311608677697967212710047772672936666095505389059982590363741803437802894944488271513722066700143305451627029366241746185904057429723629402941895927424224285405862154270460240783923154432012406809338607712720777641856510326423683821173451439780209256002590817591137916996722675927858248854438313454887487633822996614752557419491156604754516253415799005879600765289052501866414199626892215277821198890504307351149492084161537996538089821944943898124304096840439043833093742934318642586159687826958480295472297243347948358491128586311918588478896175934395945937333708048704789988701290499274406986139472033756793121727817436849784774209396465950828379898191012853785938659072189132813204652688601291944483768990811946522566678173259744099702855979589975580606948619225181849628836888360022791765064115112817204831537296791007660945334369741741537873945098704372856787127403085805902950644717342565779341549367193207709951272783288041273768815954083575206812202797762608788008599361052805652567010344434714207227117873272529396017498344708478430503863626036762217410919449766172605022442094739476440775173805871573687264552388549279445158755589541109713166415711845057843404379434945690786669953308108294924455733568059992623995328128308501386045552343531090415193874683899518293065976437214488427936512899005694865043028442546427654624679885331588508466425829425421201105963390210142498958925674866320807233556641462549121216316550833753886293642059930702828571986042879962802415307293912143371452772645628663156243940517141536832212374406122375508869992754029250377779312997377428366525650101082160607147968604029307243589306350153210642433691482175614221555637477462212315446982639217675041128627273141060949402378283944471869162124948443826100901649058142850581544571011782742200332654307877872721155787677384220474798602148385250507106906602183395500777495592948199449263923424800622449234848890632745473431329795025852861589815914944246696399688615994987770463561998389045775492837022220503610611236715909970169473223157490297681518125412423557457196014437762572424735502971042949145060561499405591531570439148476827025645750907076730015671115672507564635887118614853689863450667059612021815697557193830614325534616949276981827182526195148569536153021018344154091531401062312491575584535285547303539194572912237294157484193690788706052922897116356373078458678231512692264607777472333757534209094719159306705556709553720136952077373763926912094291398264184231963241333617844601858023891385366890165731598913261297857226510626872138653194654183092095024574613327143885672153051477909582766585959184907590198287765342440325138078492198217892588187577704246800039465845642851648957818260401520352768689381880687053831213835367035101609864837115457063647367374578602358147165272374369649341626673555773474894189507215289746433688444103232150012471264357320940695145737676496022153868399902851471651390283061955648770497498457757248692767798977584450131480272572144848053317866475512914334412777907167097765425636459133086126958212140700902920240300572529230799789064750102443241081304248138806670870397218562140845923662860917068917087647690015925582741557232514545387096467770875611923045285709853000396570667742202386493315256647573606073772892823139380035830184642974475337966521948321550807889757553953981032740821441686250990199888090113948525607338265489250113826296981699532936792739788871263419717440030859420166829714133345485171766714994051263859768824891048558894303557082572519411532494562503297498044934284257351114412512931577782848255447514753371437094770650330807942551499057476763426650666137282692736232181919250721828307198204529189227324474034813544304190181387528499107880673614281692986025838917259510751364863519448094764705009423932546437193841110538789239620453184077573304986952647994691179029856876903511310540046433223420887914011211003456764212410234358275675633766600111655149720018268897398472825259659871516409799223920775348982174368047777585410075396967860153679957684350405698808882298975798345886442892307726898929185516638772771680807036438432721373545471237696911516157118315757763289839797992940561504903757654179485951763841741373289217155672286934999684146539527039529840902885503052185080029902012557850469765299054192069320045674421977115845711477069514238242690181282731468277197467291205763299745761493757459597903001102496625841205384673866741937587207955319982103318094955798692150197670390720426556095413706265341461978435646267286287166359478571671262724700992138269619698296287573541459263379905824099917055247079354805174896103634681815750694749709985050129008375793428228538824566707750922358463265846658843258860601568460443185531127091786601336273001029233117662563010871917173908540531582565774674085366930931235873959130424128838660768250065339824701697149542152972365496288976739581195532450686224523252409284382486099602037386364514468322272538057159053694763457779603284688503888118611952660732460481612540550260130723732506081092751178606841640638878661056693635791010556830500476343435204556316793799501551827401938697871395492230498598029227130200459084803037997654197140355789064149132562423735119649212274016609653343528362646408369644442541178606681610217298029900217023513523344284059075109787167034549603600501481820093443129839158440792538072223539821165372280716214047486158836577360695391717928580435145836484167436117429070793425263976447329021379051666329194405339301432202007623696717112774731473152327578605721342412564944328547580388561149136785547963919107437739235846509894528183756556349313370569941499514040239728376448510626402121008598020052476105177047943299374108383031349264298401303134420798004926078167925450581391593458779501898065955295516230457043556473969615502305423906592960223529769175225005473727004297265426854817791774927898393684480007603312963963910725211699852161492326927325314892661755386831276654664534075430345008103585295442852525722753674675946067342016324317402691827635552048063857237755826766074045076234440764865494560634224279208854982534049975720406088875556753020378061352772439794252374261062440278508742361242881697048777686553828106160751409871940501825073644457763420067288503667500552513250089071723523548449155716911714321580865658451663240802871434289941042763608871982609904643843807545419281129540326683722177528145387828484824985807366922356866303517226160577136091632048643869121290752405358355573398270471538481908366660577109402368396659743615489852713620299931883788614699734372809754029436524432709474713009179164302999294613260608472322982369116523047228948884304351127294848837674778179559242014341935265370826723635556516199027135183297203927015921637795433461184765780294669355305050687872630288845425167980433460542751611328022767198247753238080839305067854127951932936560358926727774997602081548854598124828863431087635035025930380132966104164972302984477853349646407521787813144059391658511544920255896467895255315043770683896670862843430845980162732330942960528905899103133498581558932592813069282381326908623521972063203194862781446361043095549345341398149829203822636342384081939167983772590677314683998760155888974143515682839115602508377718872693608253242898431430392542592044143160542945096909956244797815095619008537291157809081509027774983409330993022718786687851903104380152941581231236889370102748573462425044952130855863890729208464605317073765344231264783579986531366932890873854890833467421613507824986037474958857994884042215365294980951487567392084488884188918576295674364561311851091079738762790822022561615790275716087879797380807741306117306976007669800472971377156888731344183223302840316232641169623392965870067615502986308465570824726658733052637890439912689613483114155949749155570696599335509030013517174413882805308155948033230477884162001438765943582485723764057932486245766860406261292069467711165827953194614002386978625681197925268961072544744523148804026918172708950634965949443325835282738017022106984927247798725676544173754050271863109869404946260825308371704185037871378034692277468236185553010883254266289153184833386562984032831494588212638952182957538282696779620195607936036415604476475592047576092926713556595879553694064234438568990830488765879382335196790492784829912599024680445818359721659074957142724057481657212422803394445373552093626478746541103093732128184564529793235322690513636810203810342828957408067314246691459212922083370667733765333585392536424969844260452384249521393478424412319590470197374767027480259612093204217238516433766998810258219383684552916669617316371167803410084943748235394891366734390961165968648905602375070291981325810329012540965260423257541914267598756224612098274279525472049204235636377987841074786625522581585505315404982509583641195404287140596572501587179227442158481692025006559985031443148724094893563284706793988824416835879118309403768125106043123223860668745825380623907738187344019147705408820548428959068607232994180732110660684923776730861691315108283178018344013666019779901264761690517696282023464463813839527673354534939391878754673595466587603432164447558242315247193231199575660968548366905569912647150323418790023798964769477937462340658496238980981694761029631339477292712339305885252248445069542393164917324929551125468467182161868093780935022816370272648056257912363449987158539489762546643265095641360478148026439840990917165258032384364851596335383831985105589075177029054715930889764767816976381591621905117323687881177314884008096613588062191884239960665102416162011339257879479070395376273682861820546688196220617522114938635316467139835384194468163107677103292615294572149205182392168339375696455583365404830030425724446475853605033093135325638566555396261332824018600638797753527327040221198373642369180208148107260363149991359864799855307202897649413580585603292737506182267758355363787981628061531913871025474355578080086081990644272117668035788590558306645069009178640334771418229067594921800922769882307714655967602206636020802822750057733354919544148886248252511436048251463836537782427306392668294820128680867006003177604565816523241790442505785392099765664432956264296732611356743883042015790071030149797642313322506818020159829260031565665556467263102852662755550683840296396400807028736265599818470779039210259970145395788392881164857885563058246133761710638359583786723024354387049550370818079017929449955248367445857790673835028720669360037707241201502201008121113198499211473281535443999372235826588018892256425338449686730218433298849478634854618033834030003899651256353827609518647112047174206779860673456547146752668215886080026050539993423648613139107418540848662885194543947194627183873186082690198119852510045592844537230045593195410780639964468627896916120863574676304895188568101667032530366957757524397120123944707708346499187176532303425775928919754773936097461222943390749492225938101783640155133576772371587474672413121627994332288311203497173066955847170563714785733556206930830778026287424495014126412783477081117488509680477692834146559280183215570427832910109870994576664166356848309163976679338116922199320478480415113826107931801442667347811318384395495456935761578759322588747790165721153700137894034017585027034669326395143522415003131902466351577001003509108411463862088352996706296275046871093112174739495757071799329097762340139377349442371999776510040350250133625409446204112874086709795182988128329286655801002479594440670697515330611700097015207274567687255280146063759936638438478542449401391382978357318820860886109840799577602299863623726153356438352325712051034016659786398151431462061905555333693446943273737740763778176351700326581799145942948056441816245757263975771408348198728870221397401583399686185687638969422252385707863074522262734144529959655778592502894209897453481487758185156411145454542679730174519299463132041476003229389575157476719716620113124663234177566919400084744387186462472996313533219316351895709920981096745134619819170684662442923385519552187927089111837519703222260486407919592136989528443354601300290374862656932416708590018209610914141717587562953816142103420187315217097739404243552174081410285685177979632414690019539359466421245775406815695679563664432057741830933324219499683163470396306609943643775830696672477994876676762601064163726765552434298204436743926644132128764906257011172107506351102965591557546597616742602010850357541334145742824611238476723530502437913273890280570840484339688064338538264829097715733818992485425276471988882189095617526886687210027276039813499970530097316312585932047637823481593748867908902204841928882983370789277632212535161752997168569675148815741490757528035030651709205784298456663241092696315851731265269187426459380098679962324514475011250784379035126877359490416026875807797211115514372861480133455498316284107362626300512269013369352367304723003945127661389802318424671350592374868660327034560309942170266038347936515935611315157185170983351005182309556073784978754244144051249991936271084906578383847972057128645902390107806035615186802109713192719324940423392943202184357173813189564782397684579324068473832925923077718419870902930696681897751088881800796699579850253597340089960164329736738804657774242627707203013024466736140477895413866147257902513093464888850335940828289986838995447645416084202929136635330269439382379295067180951590010655456545533322228101452698590907222526746449044851039395479649916741527449254692471952703801242183971507590231936923535499681491513344232660624289036290668890586533829952795772740301816808534411393764074160538781978470377407165124512778770363813428261532288741121758377193180328057608028731895247463984307524832700887484628658136034344650655889728725570520422307916651605623740187118337276181607976616338704754632691845786244411638649558819868211027413353801424170005278098803110201491926580198705779412680511354339202586126138769231770556354211979202853060503220372021020126954365673382826823626452819282098601780680078109716054181939050903645594504677893598883192863971967502252500459405606374892659105069032614823472492390343582030356757234026495451103205816735815720611626859527804603637977057769119045031258049007681884299120105046207548713054734952060092597230444720374750864761971387836653572874235477046537992694824876528616588400915955869099517276454182755378969944029571496063955247707584496070740137591558063015476494947801198611758172368528674298339609019759086941967366218153941087347554759563593046131694831268994553362880034953576626783167378634695208514599775984490370033037383054115518269367505207687992675624616237919206375210243928018081731497328151071267489430039268338513287871902440884294122222037036623687698237263672013321043955713776297359267581928074351955362405276798003003730195563760664525377422481688261055517959529503209023021197481774248235983253904363132429760677781895130143206191700303459831016647332285350362407435337999946961067083538450528964660174574339759881430283613492233949061813106293641240957569424949410542801911582566885180378650372228429720538009548525629101992048922993998058952569909175841553314953271748988989583429025091675665061126744109827329161598138270089961659618396155361796248210158555066807883225683366713381230071136533312430479615373516278665175064079217416993997008731970816927090043407440230121246914715792055412995807860733744521437520067019073312317003510029970826837440625643836365958931547063434996751885229051407668514228130906933803033520370045807817761796154768208209007684070833945237579674166533038166862548939452490279349548139018651079442695683453574278251569107433657409593792128334824636729113458740475641285508654858602219088220112666896594245702423596606388463249782544914909539091196327266640865147462679781192712678252784550619382616645592720457051547689082989935844321601896403074770546769439469196411766448735559687777764984450367870610423545022279392639760768669531208044440350345465439548806327112915713423954953487279865063123524404168579571215102490898162982779134840365866274108167267314548549858181687105574095504608441893953621173042021761278188155116001609322457152345076133682520226226402661872738302717469434864623046458923923833594476501833451977463619442170388019444530410633173896187297151983172019265716797364189305914910912073351147479894334720406125966964956222768306576113346162167490057065911451365864214185090578721838802013151834145585680809926207926727294358859258277039784548288463405990381500959948162184956824213061599523908456663457687342478732134623632515824252410413803417516019494649018108323250670234826051389199654265006628909835594977587469315249817915273112052618069875466159023392886289069185299430840973374235273383787135987829783937743042744637643574343436152437159486757819511079947201710076812306601034539842144799588086725289873219528932617578118348492745196563100625322515691550764384540704384190646844967149638162302250025063067936286307206452717872475025745502527731581659207887605129570950577129607550969633614593564371185990523156623508135038590101005595697160865252545055694164189742825301084403830242345604813347686595394909716543972493494182093529057482192514529006351440793738087841946790164400031716698050672773290860343222879425161366668422679259990518548503117366694576059453005024308586937837728012780912776214180862924305734769389495901354601519953126221362461682847608970704755451288484355076131861324621031770174579623135045095621198777714415839856322547760318606257539294596222054567146952370188458985117201257422886950806979583557093784085510444975190437237980904816881905263431328665210909835480044656282915455548967247892952795462099036172380783471106282168532879252392885258705275666666061324066036472871010259535144048520112218054004332722356006682554307734503208715136324725106434856395800443924819691415875252597911872552080373578729682180037688469300181440414319373277793416700028988919341913545522721852932317452222979203501435760886917807076464749704049839863608282315287382490984447867543786336080829529939790049456823841102666386636260043533736160684645261039689799914295478180341310841648908161786368479778095956609036784303645102785208919959757347677619600902350596806214479814649394763028650303173209642285183787602045186560147184540207647410109634229207281803790491757834796860497775405178485726593436090367067290774906153690363575652527847565352125989380069375714954309109854645968513757345882598919934709685650504410984936800962446229321607171914670530551829314481002032077305610623610550306251736850660737038599787853496765243910543823336794118579577365950085670115701654917950127659047397329468403808145683412333595900432954739615803325466385280982009634876397835850609983865123636761226868988314089461188457447988912059429466335290410677747032496986529717781274322500968652958999961411138286840318164308252664215143558394377673545157195692467008878276798088697115049963393091619523893068717524108730772579882289602159065979420526805778325815839094140809153972582940002427336101564910676932389870954415485350360744546318536492719056149503840648121089647292006285447134829088621293710454367976575009292391179200265128258578998870670076209132563515649393294433172286372056912119963308727662498415608658369123935351985801706846475698403568035572761234881968461115118613579389524836884097046060310029109919766196583848047190322930168139455098238305829741335624900964561822936302404591899362912187127117613072007316719085695368622872499416656067657946084029385193436270027762474905021566189337616868282144756080586757481336764855828110238882449667139087815446205534361885016260517469993942463250840622204435316535596637638198269002832371261095991547937616265794708209619677150840188031762988144406910707177126793174190795908707533285316935466368703009504462906051231501871775396657249633683581850389578056515650459725103280808274146276900143771721657918494605040313814148898997266241738737585824871599903533464262747952406368976739913947377108987860068281220333057715226853154670673323098820707450941628447935926967690329223608294216060122181133109011913243042643913312509259096902890498184609955219154608443203336094230246043228498410728242919531973832545898445327235994538241329777225352978316578530909956952639733966083117985719131068202230763358884471181842978423358234663495805443171944056713482500291815395498113925695254047073106666602563199655024761828475711347681793018233477233176602632072952864286062253903168717618483206546526819473000315571465459243779080199770495120690965376979777437061470098822119693129479805720335953910523647995046116593723628824843166330041334324658584253267689289834975216760206267954260249614913511103049728962978832853665334974221794107463880739584903687563273456942107788634312869273906411101036048617363934700309382075214055517629189728089215479312043896316637530166186233797756227375709664692157881748245910550955240458556008627984185337105190717258642475549334389326320370811783502285773102959775519420583247810781809720548314439755994975858859217392726311291505787519348950297159502601919881569995903589748888795676376069549321789172608399252861449381855580995860697760263395810050017261828302030547408378694177919457808887524804688352692560440882268208103184172962091185301445517316228305082505377327185671753972692558806219215073746080059691725727198116416442088565309700464986973392605461919716606978742529460944956634671339169436862967534922617863866630235641216038028237769677242934797271307085951611248493386429963194091573315924383814317264917824214661385179645459416598200372949808080993830294310306874911343954996911532676947163081032557906436886578295255785677749629085813084745699970236475767959345545639071925006388896204051199733370776403299294707914243830050757785739744556760770068422824801728438703891461227730047480574243166474688942488158428005850379237327397924699634720847994979038462974010791378131511913778804052947739536880651745512787455262672398087483485856199857123937858177884412735229173724057551607100165933768316814592369468133875786408105178070328918523379340575525439343628533822843074987071709630823247221085221680554001020951484497561750324459115972167161307872258732692975276616337099578774758479497221241790162292864821567687502242793651709228720052375542382592423533399664795484933494777776091349073157874146159404232115706755464781314724108414645144933729593248182309527371243590964388974568537094227506360715554737086877664335280629718201866699779520016966284388073379472165800050901539116894300189790335135920030696072523911721492071019294321701811165611370837881636394301150568105983638827401667021757768870107063438650521383726921050421980318999563493126811214718713493892254730074540885766495892535114992988495733038907290759334066548117396809131834584048359705436520557181170681517246217967154305959858106941315766319844529293345512152772050387340663813916374851424102563077819880549782816634253187645916221264063694889545749531598374976753138120284355823441786227460547964128641562067211438740225120972328616782033799096812307490846161998206492712941160226661223864975013869451576779146362583924631054608766855384485198056057388478866124919616636326331730847825131064946007671781610908248826827176371220864806341127064166198127898612343055324517686969182679905323072156007207058142393180678763442199211159508057048764232195836425645090831501652103879289982584943323256737910146087180241758095559580821051179991904411156514854148133703848742010900446765144348234011920033964935261039175341145073675167633186540630809899419128703882273491829282921259810618505053112527391038296209495678464869037411247725267481709144846739260329540082959406343237314108908170370839380970020035865834318207560720073412655728331742661584712055026814880609117082053157113564484615462429796594584499542291238828486829991786433334640184398937657354705384579040989272429791565013974025455292132714860246553480043357658852970764605859169567330710844325094034389506981171384629638421427584705030246110525972900042002079155110241617062896159588311596436884333200891931131337597836017850224034257475411970673445929814908563809292000940409264642907170182440558900989945153709276746460108067702989458559258628719123428024022723797284111922225088862745745266090815240980784210111839703507471361582903505990304396156094969962388897139889202305977495689108890646650386844125642194439828505353873117778929748313863847635420438720783235828543147837843987384927315405926249427049593259478646811966026605963077036468245653438230529792836534232286512110392253122423533672773797061002069399660033195327787340673569240848658729125088095691975634456153808039899398185983903002428584611191596447655132641833036559571547527267202135077148870686298983377179914754721211281713707054324888784137499223570091736635014780969886457109609365113971772388813964111905460392088976103369917482594196625876522939759465491660268565892613505948015725782734339318550914530616098454862023575451417687281149468711042844896792515165336190289684731090630124129837210781009274238400970449453424910777248275355675195912879987743608864574299042899139333999250437865785219053939314327887745809893225353442249299359849691963945066947715736107926531771608967890758284140139753417343902174843247767507460292223882790241785222607306309509133950470844542933422001006796237696978384952838562899518904101718095392228258162406113419111350516758606728012401665625987640202238053076453515488225797712858699564793128634662874024426821015877219701177168314315068393216977508422573436227928381027930866571794361103411466608305210705137777132442953232891382795241934985723633756905184567024082500718462416830790810393682993367458527975228605001640076911926435030544411946712483850465416606734541007628036495367526822404329864665801096117448265621407842297387771120956275613694588144426671757073173154905925362565235100574084769146475339165621758616883349589589595772049015655393233875788650143932458785692609549619298988398138617391446484860971299526550788205285883450627248099392419862830098029805959443765892650141247331058957517142884777254051717529665835578004041990305548457660904177279036226487481075569625889181788965844543141399657250079609743130257019584591432378834763711835569104675751507468605482635142478775757352035320170492640182378908205212035988872684314005232916012665199505260596621806762177189531603458999189924955869840960060006394329459032215995621732186891821731414949800832553723140083801470031435181075995306948163332191357066613228012315909819201254682196002163618383764680902154416620860715683239409424504528717307022060379333914610773497501623735917955047754972339682855596196766712706689679549608146541973710405906885402357006077213033357374407168294988581265455516119011659668830671124571591181803884155165535369411592948701668308777412739049267565797895683625183677247050346739045849238933060486539503461499224138193607652098788097227729006519529588851297820250464234323437674323278077676920239732787503018708624977397717298881948502315197525022543144260353182512997113350988732170181443943990343728475609817406503703714904242094109287582129585020504968790785366273841531573155890442152840116420026092254382314397842577536396641835515114524541933780685152703775140284092173357116650041152079547678994564609885823359517165891042210453159600915724320267113932489273284643569447980553926207398504005538924657514814490448626712334193252146637986458296955761071289251706802650996527060970294430606779766565095400470453543293398550981447348001508929558691701355844001064995371199265612909303365867262452748389645323273589510039447047500999336691717021073371364775847548026058729440344827036306327019315613116982238265157880033021981735136336566913982940278270197242896905174331257719409346509887555844520025080021937875048106568467154018892388499928300145803233309349988393030546228956459734584710804521193156076506983760801266570154785562657068066223004493026511940254007944605911253743189990920998588951167095409263129419218927333006857970031708448442329449844311207599201004057833368704842734157107132136419728217135883143914734480911632887588879812401773567500252023042461083257834456362330073017548166136048880565179461520154779711855714467921765534540950132580367513974624770552374821516549322022065136403115640142716477974186104187012106747236633465817025879730915449217192172213393468354702576051979828561262577853961636745811554199988755442306731307205269383756868679397275575010795356413158979293456816022778921457898157553322723425775216134163176279429925530873942121889870787885815415326945648952515956359404738928599953759389131174569005486435151044059794423722314897579422370471432420805709208412797772889699285106511964380412069081190379589826416005676051045335463828327974961088199433878906834227056238853180707978784411319514981078917943008917137364463871957126644440763750156428914653608250645935268131128092686112707042789565746740835201672590767733335728610391168990727754774495217717347212301123412301068270035467382879734689002240209750394258497910914529075534912411488186317576656254003222600402414134954093082695509273580932400589218353848478634155606660142612381501811145348790044429560839662438821837083526561572969797320101538786236745743894991605851160293000800818673685847746771557246174345227624730429070857375347078353230488229155452730402827508685311278189472859875218401637003937535221746551124250612134148296027373028605409105766270545812265965168157517595666403049823145656529548347846834373386094486530965773349165645440242771746777802642178515502715094497551126199831387598384839793092016976507590739886076738002888603120798489668151826481593788578858674941086836846450963018232542146177157189059139105705804173383435312034135058348056972863802501162991042886000368387206404659133333939631357400785915428865389945970960622416345312820497257234159493388165302938171418430381307533979722480318887643106284306264545289804243660183269500177760978313080741667409499083492736337508046392765022125292660561165611690849124376497889859199124289931633278378387768187299957435786025146942422906727489512812080165917696456972396750661349779593313631090787326462299181247142659011599062970007293824357158863475150462921291266283680873632398975105243099578182999658863641229150970981965072227939248529801002627632068912777728006755728182634865835133945680235981978122891414190159072433195117010367867925666620706263208412934010999847118923232241072443306417099674708611295397948503345838235189882703331345862570383970737353298402043180135247838811571371632900907234649712975185989327108948436979063245203166271754297706626956871341997179836769325127422951158064860820988454529748854201078641868016901017821032700989700287835118545213482830699715022971234365433654059087540441881606455888041751416943399455023136872304679150153257348243728496169550670993354367501338584671397417076311675560993696764608690093650264924549903754657152974916086236847004509177782360211085602846730186947807904995388545237815044127538403150213952539183600598215887855258204990349739236845621804078064175958638955952031425151512281409531392173229596072411444623881125562048415302842587171834253149736829505783661344617971279557828725436124781895879320003537440364656986090606318158933504593917036814944728254359166116765418226616684062948278472348514903649453076331097532786405395866331631924135952786704679715954125724557323287976800557314676328749254190685656138756099708143769751691683117010268109433915262578526486539891071582014716805571667530511675650613972305067098502933801791948670973823910291400158210243832445284479643731477421416499341665234274615811840063502777116476943314365357211745386328623450460444481872966703417623270320993622909871292201014392926730301989349410251145828850087547677182905405991407129973858700218884527778419433520684701157205876580693717735753532909373974128635733102579846190698361474958602240363017842546476524542661463301913164906772833081685935565053545669806757944845573987108251334190454182444269333480708678367168603029556867165173440293924996732054738885612462689420963554230018869288121721451731909843311443722994171521532591645699705900014814712868244875965410053153482114897847754028083637228755495311451645013335123701925832644359200557852573163788726722054900125520268222620120728007291621348729837601773603070533505020674771766841255570114473426948006160498657040106340846871505305485893221553554032601143521217461764693135975561362411012684371827588546256243175913293563638016042979183808240142376730462532351218673644338688586488426712779026872443411529618461475655280391351125294156066698953127134315670793698762104573098863267486121439398500979307091712003614284169944092020090155844094371759101640027398974839461450299221135382955932493521360416418193057629086019626879980053541170666005958354764259223656556597082563053275412048810595943402976409631804449411283626309155933844414027101064488365210072860412955123929457731719168090600392335737557449888901482541925471813075303327434098865363607907930474384104393870063631506916768756299194363180778333962858205485164833230305347182122098505282695308314569401074758695906454435558313359335544169887935844332800803365471404692463760791217630191291293139146871973624389320119430196318289353489736289019025539501934583129977786977303968345050531604696476770641738932600213841508942823445628338433275323724780171510176130141764159815630662430610248303347278593979770342405682859253691124108003045350336740404544879350330753849599766016087960811589599227081219425043638643324823977444858213512646273999419866673163633467713048956422137252839754704801901753360849025108158238986859173650061382046176489587316696011238411501160878336569027225571928643875344122445104701268791368188726705662390764774760360283771630156746772509078144457813222467621918440339141131932036707317839895219863544075173376929452906094310903819464925623839744311331432193971820812691182230308427572026135151753871173513218025892074941493690973205491687282266721112661430276723559304485787926465481052505704567620497856297807943081861137832456013504906300815632670199943336744726950365008833363623419783038117152898932704343084941509075761964287302240977503973025906190879232747966049818421016567382904814074948953023620992496760842176312138198980876821232388227361742693823104552822918210932550698398764253951158793313893774076869495918568175782909613928123232771555213514418730921704288070682883438404769036273994004835895523627820662274015179049287007488095258791339410726157139024386046183381501305149195180748792178162703914618460491743723308898084190217120728007629060289972727937895418843038550627489261258644632252681700887957628398730693567495512253858038457222885034442899021550847544905904518061294779422032055518848657168530239757846165092225982120122409108872159358544881501138265721884523642197567949973283320496571773096861382376582135424734643485429223307943117238897225765851976690861939337004990314430940225549927944228206002149017306721913586027345984874793395856895596575435772386824655945019689732885407088721346925914554040743807643759825006029237642721521280355872116066656867069432500742889160043211190469628277926380283546808214000050693396683586734389197633718145188790205647863644276321032017465317453003471530319019329079758683842151598830245204986521094344593594949793206916357952568772074323951310488555225787749081086937371775194502487222927706920018018566142912012631135487153381956153715592562339921388929247492891623874688742474044593902767970417479168776448592183392565867693590913907460721610258744453776691217879505236222716184218489658177679729407689232471838277951943033624044096214039771680625143253029878206007077387929244142665958876903163061048751179844246711691339500267238510075008335380195646960079691482598897327573247243240972093648144036234291015227039185713839855958800012938959377653791082977772856551638992324757939861736720395151794756590144462984395811149811183366531787995534376997345080266261772981243335613115300430013478475771227898073400014144533938710498507921021058616281812390928345743132803909404676335301601908955466946408589570364948481531800818786965132732627247678298111710406878872959482958486176882778854576577089134035395137175190287979132346966121992977530279738697134945936969577261696980581237941415151757181732893796746543726270662252866389876446097897629037046191070968965373173602911037627314656110302422894720687112790759327004697691261819346564423501501639534925042669843615209855264131630596176127132147411773522873865150342636289232849579945730461756329114306430204017555695661803195119664570047737555249162563310182701784073819821576776418090228543577650983126993389807697661777831872399749564756154173044001110950062813169523582380422721866986478974200547140166255087400192876975146877494966085644061561093639932300647742591459102816688281339699793327409487090771095381470643407052693858565733976923297466132233326937601818320447372695720734922221293654401038567752508241309315679566158788516952739714562409571643569458598723841347522732622009535635617874246464206399521269864772001143646280219491371275146616064468653078067462839651047722226016301157780584829662728368869096832735021172941920375038031285850992348144768503611042101514861948329818011129885020410653644035743352554968850012063367390831194554073665537973344531897548098483366969039719930734099623293881835264818164503334649002837697666189946960439763050532739910003127830703419420990238473998999087966731287536759696358114986492599318383939193433398702812812027671155487852067180912069265955112735167623904298194097868428506657361052300286786877079225885289740120979999119328714875055301789686530490122743257652518443803195298330917654467141925479809328912583637558833636298107698157962003102832921491178502990864049115565886775828204286014257653871844306049726569882409632281486192613114642909555034661377967907342999193208032994101517735043917284167520164104891489733348689956432878458666179264130299934052123775567845796605999856552818536819697046900051437689330853600075554719114010858644206984500975357900203492117420613937430030669122435187947004831594295032290231437350523298419719774122411740032261331666041744670872998722130670145683184916272682754194139000617039759547332450334229155516069086328925263210634754448654729053115305003181480196405691979647205121884605205120186220798319340520820799158573691398846096207441354027564561768238309699966238562044168731836949817857069721103296012872158418367329403766032364620708972472043645308008214493349821033384870029092862528814895370952842523035966220883512583731869225624818050714189624260448048796511559671380845022995597492384687978375371291338151210545183576273824648011457326423681747006102947585497316226054757416784522072357506583223283310204652093460052373307432489611845923448886796020368142089551668573566449392763312525303760835694138673945352234663581138793371647568496699118098711421711667218989752116632681148177766466244137725355035736454032852817026948135233394215069083137070847802963384784673497000492747361090125289525009870029988105294171256038027233213611371600613058522270323387466252953953039327086097547836616454804781493499139126363256608795693965545748752326712237206315995584954600719446308463584966105168492113327091701795156716756629814597580582653137627039628489212181978765915943229193630615603276867993835513468075963146789056008278298611948843145025174346465648567720973180874529618508731302157647901113135601204490627970044033387130181914831870227759853270307123294472125590144866794599381802405512767828956076820819931468272006940629956753031591044276672218266256420185301418644512843756331271134048672314638297033400106422755637889068291990612955980034355884014742715372456828377840087526509232842561583413447171230340228681776396011304762034991080507699956350989778695391346104864704920427397889514590663840168498676671746993908507409797585904275840787232186396307203470598238718461575708193742026988781712496138726545525988839700593966615736649945975235959923060189458063675142762375382144338865020689085705353879924162678220390328350915416643340779695703893619662992986858954070959137978713483295707336736546232418201919112248506135929867387603953118904104367526787253139281905383642302200083476483770740734925498422737702907954273948963142640115667356829926560591955659275263790873350220177165914404021583051447208244963022773796782949954555826958874813389760008241690571877379586821141191430042766400708144650567337542076161879900977210308201707217118354701558988856179518476138096336080831648576557192818576255025998576701687188151137788115072835260079685572048947817794275902037404116674903341585079793869748803861482997579831758210611651502017657166363804884794440633163965357681126721664027813827009599148697475602253314719138904699729152964153079745293332322723313264453123674288399510196406383008511955097240436227273064395355096640698294840744463303293241179920335809838606470487840295669065231906701543282920967467596846105745609425310362822364037809984862139239481567773864471714048383407843860088518827072539100078960536522276460422240667755020368712634054274577504168459644563628540056025309438480121030504948206114435255625136504112858483706777095636905812538463072146337921325870117529946635073028722518384258389073767873803164529047084587562475563292382554536528206101093009476080124022658221542979901928318343293927937304582188616599468796042618529115125406856274786210062389964961198207617752705268710691959903178735773604172534507352172194274335271802394817417879614564505256153102093850601590215375995087016768047637098184452211149318092632232897437387803153786167415579171411778777479338273811961982481344960253855092340915718576439660150466356783939777474575269750426770508339872537174148799184260624347160175728322498416387310673221818587423521792835843744476059602170901800217913350592472857478795802224177641780674689208922295269158292886653996365438306555203693828280418415974157316410855297284923579802546280768306532191487347661467160564065932592215853366968441953045735610098196950700223181880392205360893119024398490997630650504718744310971109263493104579853349190608478058124253741928456668670432734782876469227275175699787319075973761061125038766952162566532267662859233125819777927497036704927721305942184660192100440230987231959022677423760625488404629412733698475624059930950390675360113774840956440359431354173546595573921021721390049235298770251681124593399769353929440180379873264237321679912860496175511583179970907641470271474247225417167281269359239851049157171054561803160655417948559886129517000563936187556553105853282925490209634662614547825638189162848643369798704521739106413721496861779835496824729489450710379554429025494542022305111128327600576292001619452212475402683289786515008776107179798511753655146286440464545123744037175892757902305282955985138287575662776888361864365083102524971485780819067994959374719369622118936594416570214276541590158544161598230401814367629246679071401941048270763387954692933124404813094509190960123159653973335087046465796353852390515955593611555697936040184162157714102677497879507207668521514226416006157379325712165449732204558580576096107620279836103856520795488171055509581679687539575917081870507786776812140870666966948863653639466638425161513837136984675820733210499233558870602114503226726640905975804525842790820761845715951787974424954702450583672055781567309954437382907824438605090943795061307990760523384693946730958859411664446565222341265379661149813669640768375376522415622770684624039255568036740914722592867338978032015606154450916184907138210722343997780190407251530906639258676708604060023679673622821491345523266117945966408257182909758867423731598813958846231191220570881705895691369438956966097601671327282359813959149962302634089595356713343545228285983147695231753747891952379226139401199299942053414868750978284416244468383051873467021934875876080625646070009567750151899400780254647246953375069098582313852280629918253872183164946771633681357353040426781934052271628766383417915307279186657183845939018879137068452653733658502123189329154769430395997686875635163287745009920850872326735126059008551100772879215915917033221667923490647979872180132175702439356083918905243449354589876300755871892107149623632783590467304935693966352908887105444059244306564144368370869383023764819152714671293250363602658112104324277924674969589818151558478953694599630199818064176772251508560356841493915994698143839744615735491832668670531965938252301753282822533954837400177797648247009842866818222400049253601125771105940701701572799100498931160668549089173257421650146159412121789688504434577808936199035880428179858166193932227554209509481440486207089386186147222818079668672287299989055102183504579876382480384625439429262263500295036729386829856841470092439370110916650105062065867370242637044773714844430381408978044156165464322394112350428165603222590905809079721167812200290906721019940538815629969142569970042585322744648087009160258209982481520947079424390671429066814715932567126443327937722219712652315243880532015202660885559699712964349970195960449771136097929549771730384638693337169052353944729744773213029442170071191408451117000458845236743165089038257826872067355326357305574108300178393033626937285306560876898931188314213435662087492574168864276156600136918007575391226152029209908308786336551681891075948377790579357713799528047490114323385112304862546677948695044929333669840011672735486695844986563355980275679446289500258909280659419550075699279458486064688823693480202065594374043976421342263690130817494177955622723141948613125867160752728994983917646377077100910912028997430398931967836074038128315671733425992996363202049714192108252618965855285345504338068852909699758222275354424032826295414438258208097081245147635462978479490612354538696359012114933208392822173008599132256661172512992240464005706033566124405805190035627098818905335408237700408515843093953327885483600213204055653662991330923824741947830428788470392867944058550292508778941695646552359773446192922963586802134294484293279203225025437841191142548660707433215004706952481331320874697090876886623735721267471168045178482158680808480169238430215977801992984302711452479084029378318038611532821553266649393349386557528406696237051151874644387457579356806154621113155547221476858726279675547860157259836340553185809491892738675453939679651247803040913904603963886183192164091038009805737318678716644880140292786125930796271953025974376740935960254749557985777059041720820458585603153176142093674253758328875252642929874330537932212416568392986663650726238707784497560756666937408116951098473436520103988606594536901027047833439721013619278032180131771849593984447610485738611410484580844555036600648948878653569707346142707816758778669502031566617723979231119749796363840134302889531462770756292825897081349153986557555630801041537614333410109208811430409256664496506004058253419560189871450446198863698828144401215801858717555503480304943086669325340542506274743121911076946401922223934412962945687684911256003061087517135765250319223632852076309426666460554773856511285827231962418233258171603915933754767279741914670867208029653972558100768974879947288811928964681511909666868665514151206364101202932475392539505124142289709771623027160983282594410929036989003294708595482130862086775095583652744130557614890952188268621749011731754938803363435161651479634817706107321918647107188520917211386708779783152798970851967155452655767797859476081365712006273367731227230668007807008142897435549492834490271358636096182106900672119158234479800208086565792033839913998634826078574468415346752876895721332973448385139533801836175238997154163185696485765860369186578452469130347778014986931489845035210605492807439302713675346685710643746800383653622532467540252706656998952304879840519602066018016155559904563771846941604207695842082943844568183040341098471516235326865949134056004729836639999480878035602857046396959808320017523486706598494603268075337118695172024022042658195846142937222233662559432442991852000099183576647498371190173419656099130589878277227703018054761031120462488091224884848910314078449477185390174981246242417037339229421431380740903662580482241108694683752157207019750852720742104419130090698974216738315198272542507008824673644437836457814475681445354904017649958366478664544124117280576464214996926654314141923107824496901959924329753816182438034244807730716604191270307523155044025608905761026229699650838290256309107894243987802467857036168684084806846643544957804831247824401584233320093722786136362578365567210950380228174155499923268021580697956064395346660000175617577138692918158588576664394403797018144036414273977034701522329358684366890361861863388813787589010666695975672152709175668452485935517817199365160957343837716648684212850672147742832851997812101971520720944917368824224020469552641427440757232494300919818441346445206612505320438465073623055308715349539487540458038894249615291997592333083647324198271058054489996403012243441132278075928340430114552686191878154016402059073154268376831368878373407915587690061828976709411430728265727338851004915587557424398648612795723738678724200820929345599492714456825619138782820312350686914135244791037605337845417868532184820946549141061068168603463302503944029368965360302211290047741982116042803520833631998748330720912384328356849151730128352591104655682377482026375136369688541002617015321444079361497772362673100789525526500908387308075378620373184770778605816614809608130713451667310334506606951292928544901797299006230953181267478177495623495632974301717610266039604728090737019090641827318578177616455933483081318114805851628624018696256554917348896617750621491000114556473906248129884816916187599518943980076392054541567453484323136031730060861321962086655441883070936824336651302322061269670994950312927562142485285322243103522743199213043043107815768021727710515909460582346372547884273016260130344742087541602740767811571655254902448262651042704878580474604006086661686588443660950995869687015666120401688537587283613118965001389390398193363997409116080192122430445160282152643003100896399331240617656545032073817607301703354984209042820187923410465715750747068982702044943958051044631824021895503914062899756384642697120767212423809997205254236257269428599052500328666118899692527851793454159874178685613995384564907935344119054931045587678107470300083070842620558227267393240049189382681071699400008789089171500327823887933730865290062113930627093569033206229207735397626370439018777952048643029063692145673130179269506607878296837783609778462808129203480751591232942989298862810356315510062648436470012905155460034005654758986041829976979200574411202801618865211544209731306232404752498303976954561009094129229329017406088149037645387487639896853182324933598975860540259119865073137695883559150861225544761720228836751073583232203068278269787816054559491467314606385161521415809080128872056322633997909889048506005913221664344636645575057313911387816559022102784407012738247483230531535791905986799258785667065049648222336199032960906034843423988054470427608878911571560262858908612014126324596073006768837973967479145448833473722927514799102039897645747748802376628587048203507412782080546377995806561837046024906767024811449170441222540822871051595631736628422881742385381320110371949763018533644873172194330612353682587159240693595529105211932323477865345421805782270989912912891116380145650918241387427827213843766194639617948613883997588632581913679676023693713640761450666346059327260408768833152890388931952433823666208808305574734214823486151637522141937363709765482702564520876047096121316969791453599182127576120013086707771520074602244526919410214441144540369522619672890034098015750225439627064250257664732056044998428296689323272157192360512788550339875982743090894809955588806530281416985751541594936766011983058888506293100794678730460556524212666884020249921025562062887900869732766654068966883295081695793147350771066681304991079633063620617931955884732230122256958696671447309506994594657117964862673463885092307712331073961220427563314868164650999236009081988973922649082068799353319373144505504507903708758057174946718823216800551941196986750900670678086677389467040002747386409964663407069403804909991259452440741650854023448211503370994161373465003686589254865911350038971744369457239755360640689991252269536410462705712088867036674138110140213104953659123506348514946927769104552486151260125732634667291927117383466990278838259379190181710435148028255580922471763567322419334949030949458700605322770831558447304416097050727875793255902642520877877459324309040148387984637220979176185924219774513618893087063781621360622156159449895511905231612542080397241724768102422362473785664223737063921800126860293133504698973463210590533520341465403200484533894988625271497036213608141632363982762299072054742377770386870404167414034123299551686286129029456617651111821596204654980027052931845340722891723976602704711570722330912121327486188640256573395831873583830293498561917022820353223934569044512236635710871109487837155205399350583434966887687289610338352801415515347886500613648187601007727124357846171321881885025568064428506992811261581846717849805099175046945621041346395071582319372443016726725254188628812914596521249022627600116983271673317402594684461286015215606843052005916913506451252633098244417491333021015601383372776988416837083638690098832982980730270123488649337813039216525031976773906928640581317990093032477222968400146798402079458252498706792345221794015022322544496318300975034158398648298542442181313528314079143830392794942950903931503683630894203043589994608654371027894945757881325285045895184504956008949949147237614654150788423449657332689386597656120726468625536476655082107068867401702869399878367500589008348814918886916377206664368280608094309455102822136198168573805678173926681065297263905826552883709111502221432897679032809374114097817592509851243332013753332279939268150908888093602065775769124160720418664933803743961266559317019809220664147988813269791585351657716813242337945982541048058672908513242768885676857055980574167258515564945337364006050436789064088009039965771064093118317418987710870213538391793027075419933017342410261527486051177191421419875573732147546431409382449557652409301114098947605585767381624362009440984045487193633658065118468113617304411245505385026366722868505739031933964110452523654226981193454085672861466672204126889146265734275821253027592734478224825289317835363075081966505042630421688519991323630991108064863227595630329185799186078855495928367230944712442711794692855285227380990568430068768759733161772139655235439292006711467159885564136715780325259201067613284975383552782940376089383566146947205374173192955317130036120804352955346119602401951916011482020806395243525911605389772388807964814373686894396450159904507139217733091168679237954756812855870900151022492338314293449667642145481916662935076605428995344717025545931470116557636920942122077719004578165726391545324845102085034477661645931994022814343042743083611428896944211706881557952834133363618102843112073681979692527020066081907887511704072537139599522903631037814235713138543418903911458153557880121248086760551143990604945360174021235588291161009659732874291227779813387621874326782094822606023747267817754345334278097127291770056317560231674361591718055037657404118997342904682669109583066948365430983546534826542890019093341589430691100478003043747044612267623200421170646351312508802754042026462566986651804336234640252266104023723009274161210350595405352798774242232846041880121001354238198794732421225208534370504626252826935389809317521974226417931455459972483754699969493222428111074523189182543247670841341952556544340695386874215107861372764184319393914677365655739552956350058371324740115756843766027598339123515090535147096603965705228363758764260533350078278076154862383827895672404553239950577905816331972513003860332099333238876822691620648443451484698549588626722524297234960458882698690679985699930423789680143252469692247613134820035226795614986888499691712979733793462536681074883202311408687865988456163186304380821739562532512232579760586282284850356518420922558465218063714465477523007461615566191668240287453021107772978509983375648152061658838849896574334811079936719204317685702205509915178116702842673831237989420673344658053879886313313038368580552145363173028010581398796110762695081219863755634277343918349422987751946569030641880553414103319031169519138039333691909514140120554504006433760071732845064841152007740595953872602942507041908290347411532271833758597296909080121922752756437729458649685534370143821646439514267836723099709167495371005993644753509944813492118846928907742650033609648543441882770676897019882155379232686995372191886651674137139768083031443118587310553676897233945365910346784578092238988369729046736520660129453317503765808714070057020496717723371332344121293456655076317306367843731437086413557185574780346005391042772799141125171654023722546653026237958732736264722968604156577740631042964969638610459843704866567142030271056646169269014479346838933454910407366849919612696540504810871443420331754402660288237385778190535669801907345175424109889331946237530073794235457372852511694138980811392605097675115445428538069416898845705218551139054890071390599248071272047952775606103666998752243864414338567588678871865508098053101862389242603149794753149647782843472230076856548757100475148096546565584441894618783024629412764024789403412543075902423141869985048908067690551598594753916646859643895837934509291439641629742934032746330006368675743695291529433441357949507789806961777453585816667392015647586835806405594563446101073541527465548927923196809821067154107772583712060225622073918584261033140665201007579870480189684438286804444759594113994097264434288147866274201476984210359697046214110899059503713784537467242748593520164945635863671319239545936599249683985547932864087031715431842619113925356075595221150194216820212394077513375565548654233915163343564426868576872204122779652458441399415380174621202745368647480429108227113070324592459939684701223079501492353887657872496071264047788907310963897210821675714597537218467419403542388583827630510799677855856530364021086941040904713428882610073340408117673148175464827721412049784976240600623936008889040190465116542276208475046329193555042210687156911113066824508564135588047942391802891872455697834718753011105347083782519672340350139225920970661706648902450303265563533901270776615173431293430035085842029734497869632418592891025612330524871093019302151770229730894685869443136401512740845440458726865763390305577245236461937817638966932086367686367596384887005168841839797140870692436258709596641838844210257882552407196030859468977459713024367632589309582527925073355370716806160073993278103857183209164043528199494414292776454131240923914534199545940814173359526473798264535318842569170544685830712344821993051146923174862726148765005383728627815022948021101769567922616095786984997000042842585406961053346689386571816534923340248553023092062083897053319281299762466184044955932407954736346518440643646774998963163307923902769893888839674413767162828378978612771005824694777751802434795449807661364990858520687960047957035259309036627757433529892372356535840480000334908261580320947851279349419396645303319698626036281073265829635912604189807026471080103464479531124515633180165601480167926627098824740904255430693785247422437266488731411371228434222250652918423220365895458879527618217699354056856872579186823462347667052898185799362410918214026951690609575079043544127022249193517677233635186171643479910610811798491663955483424963767859305265805560257010899523726951159293802969270699849527502858788124174480659844085012768641585846966575195447448987331715132112748857196962418932983207822282929998863496513520431370953467159303778322283093464321445483471407005718724359212224068061126487516169526613518450846216481760768205058921934027107671646911260898276342961058149863985806039358883760945974340579202110961224295727142775399507839892705430468396927095220832511863854794754802738129715005953659291262632649830071715867012240505453955811174419895533495989147916444001063771804306855342786337236466901563872807624258064800298834306849822116982459710563126455712123753408354153716402111991765551590648863155967955254938023550194121823859715355854410824148566560287926176100058485454098335716589933428538091483741821896993108752069291970281822590539173625837177782550934760411565997020498424614350980458500120635697078840802569747572802380493412071227864890412470185324198808698060056682032245726052620958135661352395999635059201777626239933689607177864429207535368588122244913983580096084626886013813413348233558381181027445453511145471740173810681763145103878605687967931211142042666531957533022048587793118583281641960719728250839986264042418094966453207478013904885396625813446459324483877164728488012661372841597826163484231723847204386786137618214955600930573585040324110957013879557237957815485506468337987656124305423965087350452773623251560630425730643197228841131918820010818658395233736129381239563737146827319617673097843023847179684604969770037905249948801058945742550904032326085586129756881313894685260338983653681892690174855072625046177627936922069400210764119884877806772248108588618430789047205625074377819261550035552572312370644323761211405256653144721229213370001207996745593346741672974757532541204473734714428367000268593563558814854515399997203951534912696074077107605107821519141097071795227340501267900563669174311805171878252144816724215698117804431921009858388010239116456714166714563382625785719469614917731412626245654681046767278014824534233236386666211969863536352108995996217718111478410627033075328720394514123524441497175556304432141821042164892647718280893354339487933201745447846394725514885490370698598159682611911694037299188306578882655906634786969457715491885080901370975221171560521335300224924874836889787954341077284672796277531998063841645181709010163567632596172923671566076934424932285408212378794547951614890232437609651679484551252898345816714621875013133345443528971667477168808057773104248717335371246446443697800388604911852276423672015510967757023477189412116610426057394102395511146498759166842714480163650091192527948297894297736091706717574770215438263233219162661902491164051237360210658353996903484761596976151990108230016002345553796924863768250546096992328914510853578920621961845142845433766619845446003005738637573861500288895241436547382151206404458145203675736871233820598500043367237355070081325930417613959677177751718783891831026378331478642193532645740777744144134010311648102887384622069768174539119573451298768288404870210374773484758731091247377010587499978329945264733876620622556261097301451554780550117861725930943279960033326533391744013413773533607418043556002651230133792583191546366820629617286012310756702438768086506052816850645309518550570550821259799508788068120800568411078695433097239591501510361778310257431078219221987249153986262413537156699038350354602992716861030025329603022532341980993229091658502653485599233623338881223682559291452653200978686957108507363477783769705556157864578300140391196711953511664576453347539115311788796341315287244915805075021764239283439885912145010409239937854898299702015410496562354794112131316017396312170658433991108264192873944526361343354160528246931516982488158166880369876303721034079999012154097124469913702389638367081372345966113275357847058639103686258481896667855938052063203187922568854543705683089623383049223734419766331274493564733964951319436673353764314223281364636734296074738402142848014897476837525369499946310294556915140844249889284032514590408530123447685934376008025591094774145523016629070767780756520593324805021803962899272731497196472736906593297622353085639072505979900618665319965037829630001225104165910556157663305394091836781976459209924127750536580198236918483598568771619528073671071945745115870792700670705012519257896194780904511260300683184642984344416624080666920813180439957119628652211034099071699112249764769111422856167731072953231715924195804417205924502202680614666045111444842560998583299701520775530896528807499525099397531029458776849857090460314577554080443625350980398760471878623001678778482583866491246117498851055550087440965115478787376843937608857082412477736989518000767297283488596908593180589805560621997939099405433551501264675652649234668917848738834726525550039601140465861844061933750919146813657048354737831224976973303784397646137452242678478980007980881083538169332369611374889555197838190552297318711058471739332552364295097991609036465151977142509854715606649868553165906566691567060047962630586322184622519222559162549251114656221433392915244403586331851358563833192391170450331880220111180217732049067771397901990738821029661597010586725889104495309372099395719583166603758955703621189863329823280637841819825585280160647419843464254482615438300161988241363480696402635350827376902824059324185254127156851193737420345517406580104776297795226294486193663871670847316790320879525948044355134829177706532355809964385987734365236220385951647140088432539075993225098198203176302560841185166630114670972074238586989762694320000168912392531118307290051229393883250050298739354159732293833077992562129117364755200183852552623912726300268844218136139264832218583233062798542121154723320272043869845211439696344916721270323323060417605192155999009108270435621745455999122852670866014074486541880244176905069905697761337037099935466223598054328694811543578345238514666064662737885044156872389870126417898360512345308623293437240503635892023664931691622016859819366857881194091549615805183240268437771854898643886255977505958970463334300728307576399912367730046298411606700119795022000530078062663967807934703972297879308255037354538116201593280481467199887238379250884675355481654510002892216073981029985205048118182251821411953063416719029421671326354661556366236207525694021239761727115125208099360767348536894414552208612069842155393608401191169747943852902151263278107043348481121709292732058637396625705222716016152985722596990208052666168084586945526130198141712940111631057840589452589033433509427597025287511656696094546233876601077065487609723291358892158598956686284537855510594908695272049224982628726829365154677613133875063231716925577703706683074587217773862998046816257975648648027741340849063491302143504540056708795032919743325181595483424454145561300681153703527263663463524138019460791558095444586700676147630365534711647042770837546495110180813703627102646742028480440134931965166324536680710878258643787267780455507933230480090759571697547927813679750476548740075366315550742637849010864548020085088642751128389152283115436888259749777860757638065368725132884362661341712932234841751696442976850248286580272688942451092632817446551991585468765310877353330863930309707065919049727357548362431228316680543517182257759157369556922741208737495246936005747266391383593760249965939965673400872999893380969018192816130054744383813769113165691678683452365518509055171029821812858201178591811662483727818063144916687834669918612687093332162777284401327351588890988130168729181094843643288746513278560989045200240466362983383193507443880214415476391917535680864453908795379094298732324477205169775355708477602409853652538316124304588206042276772282014475079936115654903449503475743761089687368511715530664712996013734873287447090077755509634781269234769313618755458632051107513363981082532264660723253560192045454592401014175956665529849878962114276152256737495297783149526939018056184438462262431070216173848082012638235202382310679520279608359680458050984079841350384077991079135135823843754918151685207637814730620673465001343039884400931428485933881581173078087114791066334869452709201666810110398053550871892745269135689162817812013501809158993367543277822586101892570273907104705697066966263876117507371305463395956664196361716408168583409667470010030674147831742525236194816778752903529386133140197047579920684221175042215749916718497346489371934694944063772117668376462314193397663005942143996661346600445003224480353417169839819316573979051197732996368248339069977166084164082420724989249037828109493338295646471076794638930510842128228310618678315252717107385015994332477559800227033455876572863254417018061478651398078531661763408911044353741235351590113852148711691972582550478310773227244679736535809215867882395829467771016441198707695523450866565599217074003822535800837535089207898181470114902038689795957741910505098065304312557119563171166338125602503956683251209437376705473964247630754981023580504943408046488668702449889727441826419903657643399995820158218939931118882442792063376451600116692065088077996364175736971694101002242233168742456766936190798250150266495480333801555490981849835886802589613243226166877275698092024545023015273877183175812704574691668707157419311963575286239040423872645897120566401643361294871438851689380718888557589815182350197151496274768172554927445283339952839930406575265528772959460233725506822416907810694420742483650142756555100330407294445652137928634323214858645898848689326786718462549213208356998688271072954312717341070385833454738601404336664477174705171321693448003103932262546863536286659773584091347298542727348988000798379953306909158607318239178838514291698765603122767845447334276683262393333601946628594610704529049716650149344579860033667346498546030556757026482439189893444789295272766585214282573661171039275771108466885460357117017073300813927164849664425490501903115352532536738886521056090862454355093038629095912465495121277593227983588345477987616061943501193717368322168562244094646276566343098382106194116092915766654599374753299681428829073002351610378667046618837465487183418037957344206429762939610465300064388683527304278320705735151379621895980268669859653937798298529674950935019699053788406871616785191538003439074600806164070351512787262867283825763752108939893829425190869648519996628687498662746585459711828452866745838644229123725000868892867676784028472593953088698169030364045964961362860927665371476645920883852412821084225332522689414555007365102368220089711535610469650667855514240643501974933392761259693513788464560823988164344823643399752014736370129470609505693992929285492054455710216808879407596053626620626650627066449259531702956713641758436710065332044268755113582034429314005455266140276909763089111193930783858026363849778601479731013253489278433896661713795118964810258431151892582500085416673743525520918588864738345493796672239913778270705904968630811253816476486048080281799506127850821562962370163462155638113829344826895397299499626041188039561356266866158867012453569902856673410787577937076223516321415015003465146183486489608845164853079669845081856531305416218911211590054971323288687096346026263131515206787603893513910938573417494974213443853708931169943238184237831342145022865844558235919525332891284633642205927488645948459517545027846516784678819949029750562270076185183401224505876098150380034244472706957320838257498265324669282203203870839333931220040478717223419015407673729197121131333747081470052778000012175453733496037630571943881040116985687445003425180024987739176011206949211364130886827333337504219289297489241526192359327930835147829708377109697232062447036817398283457170389580847396476738639954519794209425577482842284547515390918430597604147273397775327117828462521672651119762576278436266921364304003160653397357172376151434883776626311792387977765234218791855068787412205830065881069541981902370787713770545308279114429050989044587957812376756500283136193320404863870687570114639629814468318788431029688751398867720566710184321181686892512488542162459342997560714324666596398840458703968963829074302935949799189495104904978629345438511200709723321449862209656938969820343491945582002484901416795142983980037904205967009846429012149577670438622984504545498156323820431443784933984388989898187466428008461731565515944080831767618825815258807689888262240350762100818336158219770439199589862605694409527406525556654469058192015054520998045157365301013791954745147843837858781082392392190121607836699030656839520392097471169366054770699944561451209956800094216539656849886422442608298141541742717830516330387964312854033324591372281433761047485744555496233767114296098914154949182864051205251406081280623338997882768716103157912520907038729502762873790865466047906758728446228198738913457558226237669203110096546602468073575939611156004818415106327762042982899381113990123724972423817393749779866420610972321548454550934624536580818172931423117434592796695645949421251082155976839515692616170861048026864179307836083074559755657415718372735606249086733874316135384024156450647700564958113785775817913027421387707190208790521562230090435768876196786104814764335851919762470123883417921011274790404293965819969765248785349607346399663975271966788501705130876072183107573431449024184270643588171317812316297972390630167359056284079643364054129155028355651134334533473050901586615571756162345060726618059892351740663082974525850623079748507301630470348129235010735454418835034707035232827050291710097252230053531588205092797865044425236522106727376942282453107011938537078342392367962545570211481431058384824885326416330476865108445887176416885248701256065078961695941750082405682790447141754003014343335397896981843795459846076435011554630835810951154587996638833929413483374222542315918939668717872179363422457008482358839425943471149638910093719399256504345300202449832153033268118181063381219256383473049631068541009687699461279235974157129252382902005103895499614808937291580353590163801574594455576075136683225311096430778916391807564640928553494255355761259221031416693398344776646180561047144132065093842226139517093042007455724383387841560313534997715835533864935283375726504491041047783973490584527810829168295059644600521369151483928013694158948797726124981889420360269650477218447897072094091565931118486192942890258985171712859940110971041588072744608224616328087219681706842422233573707725585893917417463615728554628106845030537544306389148413829780424449358757334010190643574570258328889440641798242796575346245150215550189905287042820755115404750411825033610656320755254440980764676437200192756086558162036325366765666828331745295561855176804743394021765615246182658261126094616758510094100133067891683654529415509475060448639837026404677518556218467445588872315471773010461825680720431262041587513853254176221040938325259989709235117497152162451725726458439414624740225091540878322405999017635803021129392171283671619904697339240462770436622811448899834686322468934129146590600694126193059101600623758712304198669493345220154055484046499469927775029531870765281173402681813214096004395311389376916380148025607467650537740418785516268830667018297539215761872084446414388811373802771338294451058758110104637023107272508970795898720462942875871953360596870118537153598265314252632066626332745610940977106105851714366100965630842144273076665661147269704220551065975583122829433464563394603266552668246973985510170332642005511161572730516633791779935089890433940327441886609582776682669109764822762436993798252945554390813400746659476387198362326758355756568907202808495515036213850946468768534237515080060061138506882123246275951504944847425356872773186660119826964805363821578566555942194065085663646832471483158111651369078487094625095557077129750057588056673138928975959678085099395124133427917468804931427176359585551483878067891422167514206067766158988379151923464254756262016366399580352523337745187933065009389660949868282007256685391756515617526652812322774066446979592000213377768413366827767236416252239682540122786895602965578522160111015739648580963963832009699942847742165655537938848012580836573407034335943608580356134798909494028861980583072192805722196768294650875808776731748183667315061712217697575650272216254410782546209629353118852216167221120523067773254818582147051591345309039550860340404052753214581945704285130282750737075048916674547690612846219076415782741915769952170743313313300653382973135946759613484974487490810124946176925539754600653546914587148976627691400415469246462283604760763966762790709217943330524980067932881075570681359402198546444081570665259994717593657072219136165582344589630137718107736665015697577581952359423216527383213269268086197276403094437742765039177609655836910918078347027619238596459512585702587629035651128561552325741348684622298953667595843799289146786575356363606252300433372319214585137795196426466650150843301689521551413424130363937746067543713867384799983316702091199209012014876705820625116724797966509535585682437766378583811722423662063979074251091391609786568556359499390342113397915466641820547053745003818557879116357010042797429525616295801897978173467215402399478407009136736823194952984526323382104709005509859840823175623403642058091543646111520500392086748607630659783032695940101800747051769873416058497865076546396430826472476101567191713265512659663923776256494743474354833663685763417841226511791731499663304509807537557257803585473666427461961796980575834236616296457045626308360312696794231251567695968426997111780701317248422618397700423828887109907206757139046415011149171797030027147473203734028314249846732900967184953093020087733476056620460662314676821083277095286482744213496336910737187106716101790386252619569391064758733207215293474493283690498115159498075313304044092663024728490913489957145080814017092176830446513547885225278332301142850614347178865094921903817295376265847270167397057962443337711247933278808764735925702014518698856229663367995378595169147103298263028546751857074840089332709461215018497821316736816789384581454527827670169620420388986289254902214286421300781762610547539618185988222727785978276333232061642996737030838369588497615024839885737782066566130300423414548030321564103747043049859828002785230491391236942643080078093762090844093172334132838408717431583975377213544169202095816614031582063404371197513873189781863139065624045675481511992187646349527493990175413018856885767113162734333219106323010471617597004058567818232429617327524573768199817416027281566818828642629461549808170829257324778132987328177369298877489668558210903887085041693949452549850224004580822039207816826687892191707571603101493979628738050806509198064276954366527491449809551103200379041690014271756039370810363840991633600804952357277411236224634768102357092584507393609271832421716519649384558668059942611112408393361018881373997789473838030679249215989309539981547809073357060917182692700159529574079328584677289609722337832077449441225309745483505285911459123938795662533325166899636538720128802192914678347596868111500580844439015657000555314646716045745763279167872195934349211550091929484436937034393936832273319674302766702768930563159312628508928793315841241686969153709754079845641235078641169544769548898352893094255676213836676805698751032550173452937722872501036036948613444084283101050930904345230266140093381195675820879731546142431543369759513286739637235001214356078266357644432724748944900514806667173508685255852044334474569206043885209911302335727978364556472145094116572737664753142717973846857920533304198047272055433737994770389872532677824994120252871574769936556655540603164973216986567177944928510192918828200748167155224077938160162293980405324925257997649465966453467182376128009527944208284739537607221560559799821948806555573222534575438184339935121852773610715414185395962266633141270761988108354602730164100930635271368164561912908898057267094553191404031054433831711967800309378942922230435083981849967278189086462862439520979293440653740497111514648521083789463188125072703963484152493066431947146128426096319146239830329216925811768416732176692783353997940269356141573266615086691405279746692044280329473947453227076331700449088957424351389352913220022968085058608205147359998341415620543432847440885242754568351281073871434914492288191272723938784888037184542146247509824316533029128105461458249859061628294351232759386977037515283464071299003947715446582093851666454506396744416224108961503571937458576575445438933512403797289068753324723092889562041357565514792404309264368420883331083851405591177028918004796652721913406965737950346269979990463533525110687103470669631292522703365562244027484834812957892613456327645685386877775667908468809947344258951626077124643932391295505771548009773103389175194762753339567836663992314301552062641072249138829819413704237492084838018239911719550072188333225105586013565548599625958584544828706902577678345689520020047769180084158077273750432000616694869300181386272865223121121897432435073960713103913622015837038450188153184890083692389869358659898064379995690696857646908704405484685177666854029963451927682565449924211084641153949067975604505083859719714700823388032287640945445336948668202188387021611647205055867476787753447569980321938723506366648507081421131161712024580422607994988554761975036343965295704214457085186149223218400406220432926910609740059409478600057620566024707877078361693809922282535058486510410429649788711457835017852683012646783813666757634090969043241140224087646505875495463678658214699045990285519698699680623325663222625092813787846880194504320065336249815576376111561195156715619858943455360583866103776266377882079571657191833078239839406802383213483552833598587551132399869231853819803671908061435258239774742917131791647670807943703088192037935703442561248288473465613697120370895479824290117414608590320990493414886489713169173668809211027371881375484209656550474543565989567011314857342205208415243567180279247422678887295038293668837828637450431145978507788913335272777849432268615359598557630606090186132651534265036492847139907289901101696614317607284085254362797903280744558326814566068838841452453602463809487740772075371543829185870394518012551555988111067251906030223200768144151935109677279464696630313060947837669245581889799753648314827708075821434120423393121411956991510927209166245200752091165065710833729081011009007290645564963511989227818918503854404198491923321100996421322972409137750359964330516306277388489385642894606098269676518306535688904232688093644908682708292242051813189379987497966148025101967971453664849507275022990019015605427943026108092323145486438359214173946933037188564157083836707220384259953751493502606309531074252515031841434617749564581792397641249202736836252185742667546171681899928765046347574997629630534918994255641614138067303541221005616023461360196097230012462591579253665800441558262401497561734147998579631566778365192489065934980169450702425430004212235314416974809913865444148038201799465463423950751032917415754708164096208808757997354543608753922069272167045782677527555806077893198950132807457848204749767407548553882813521796909306132891174346458206043252229915174830733941704708878052814544170936130640112640848121356468362590310221723344830896266444369054264188229808938847097878178869448408122004787626896494818468137052386241595766706211446496991098180282101365377967944189556157122699294853253050677610651291105248865405260751064284788024269581496798718510347154691313252626101058669734014338188356739893018655239387454770908010436499932921885266415557293354163124004257376787351993861830037009795385846790792751123501173347787773321446218754983776282947990886902566100674240915316458798653293816621572871514605769722238784900509481082695668070121594220314491635169740272230173554390389372821264973710497858335373214857785582153385524912081361647461080080452597950229549586482219396175762562796665494078801635584706889668366306665096821324751411650399598931833697948045943297874101249976431780540652311764259487808217206110501358700793256642277129192579425419940847160809665747603518952988423003355856556922408965232917831273209221156720832813796184020414178053284845211209307979439862135891600667171968588308672672308173180682895872702265183583953761686596384175059262066701294485402679197798823502420486761236037213225372244212535814356525123743882382775510108740177357656936682946707990393173964953038759183703401062735479698880645855224079205327452514391540535151631338172332492933616365899587002275586134674774841584153932858917676387274357962807743485970747725561523197523665435203071107331276670874642871443593205816844747968837060638139671211115121957356381350850829752174311419964545862965907290994264948976027423759400937920664075992135842722970889468914152890986606062079209890444230568469761292738265697426945594785559660164025462546577508485936928027742505205348927744674332162024393853702392157690107008553852691506138462826418306885593386079663412146798034981399690142498161205292788995466556569965890651876581617173807190740337799427872440906214705028433581696262443082322703627254727416774777228103447823440284160963329111524169358797465679072761146163855137533828246351682449908577179262353696784240821066179439014316973966573652341213848680058507601336374565649200440861133670568945291956952676010885687831224742112482748912169648391684650090858720113162352550274381380593717788840750361242960476076540088867044075021646653360959204959488665305519256869514892278915831428089421366288999392619262385242647665149537363666062013526675340776743988624189986484513921082068865264568607601090553518795716767909335602416688957399952341763025535298644913942920108666125483815594592881708520389592262439045589775192063494141937185427584259003419519979564878860842675198325249769877155723887331273741824913174855741625763707372063375409696788655948881239410083836968306734188085628812539989819392789648430834101765420928625591353808271766978225881752234829067489250227188648121078941141400584274191151019740963036098317007116341170118453229312513153953706482794927981918845966690332161630851360822408874738261512328836886742498049856109326742577790810259262951605783018401760217425721088260736720958135961205263000298982824095008454186916672951771101767280551837482807903378353061266545301961412001408731767636684278852219477204633057577755225393458478074757525931597404085375804069271847629138112341649394974083685551698813760983156863949200000013951093902726613415450958030128826912655524148867905229168184880056851510140686861163055480675107187189992832786171284623729740349360277063497536480634372276257450886698517223368828493735423751922508987088766973418509924403923575480804957850005299841732743291239489015974581731168932750285849086219504557373209569290628525745398206423448093887272292616307721580594195280479552088099776219714030975044902999741564869454022094119132117097617975274375301932367384038884450922617729587327257360958958888524582288950863232425080471772456628440358869027060683822372773527891048471740222452479306932496796515867173247777051719214092695604264826969512939955458043135718871598239901678583888189684979290063501219154219092975931505735843534821845352088981797320263795627188774025197850551972709778397655069784446261606895613995544052695982014400830494474069011248275258611906542876965271059567137054564571745680945072560054054159038426856028601287444655052427982768505686146247473308834547086101505638823286026711028687503421117182116449330845539796516081389655105177480040095760114614686313120813813026851262429909886475465474015251229453486162001207598188805968494790327152239958036702303973353052756268548232619981343414368757082385157753387729697222396182324073873771525085730940561334578439400739123571878852754058851084996020761753667769554056881312340378756490605921032414735111785505217055700996111807116268844439706642386637155138513768418176860558248034629907925065278019666228487434235521960412544246918613056372817895662637383397499172402695554293689529391404426518275828837564379926589411367801010309765937732153479737556731626450580996985577305460159380777536284065920484406113055803045416497326377075736314224649618853795135468639873972188469684396855681803947826872892792963350582056678393813907710716841134261824979220119553691950613257878945519962631981275544567143701104042413410949188418700349513986729795317196617449848399240979387243869826357594897677207888927998374367547143270204545784951788508667566547459292676025131668110612293243700198017029376931020694793034633952525074063491019956568114322794792002318365038302236144531133391930533250859645042388711378164765689049206877275908584982460057633622929129673848462864707801662857645636248557545703418977884405119425381581020893425334209484687953057446965050427998039022887780538271432052640964841651822059793264999326193242242094788770265617467846225452740294014354869395009232628404506283901401770326952462668663319987324057048359395786503306426776831346413994955044770654014662444560897721039670434618459193265661189530928336032207181698374853682278358371861680244850320933227837413630193702871652857882013262217163386486113517915073018069123697901204478686614226473695776597743856320246036028923057126733390944922796685891143106125844853732011571953991930737237046880205194528629737203628619749619130877016377058779759879906177672514483149447755381064182216424964285140323294764283667990700884750673559533774895450607501790890616601043211038332001494658563388908103086424714080217652315106779097850040736974727829133208633285613082435123941933235718692109370190592658431828379615516253108926866101256477341953287397972431677010092481937871926016072941849724074328238374150393037971744108031978368476631742361309059804311852035767286190786256181594183499189324017183359621732841494237226265158575250166996287335317485746153527892953240476989649695669993540770285892264119911234501343179002229095527834576621884300624240850267143687130007193838075453678847950442801894192909698531244996493930432212910139332187387497386495503527106964632768355130273111398989624113536853125910990327424296231635103663579847340489477416664550394037313093864857831503438667997794050826038638900463106786766087445451162538415938060918533034783074555626826018489818640845411859781248263587239090719626827133038116411466982864777882870344090892127136413472297820921823585993014178920866758818667875285848035107689365742653794430341081256284157383859290259206534496114175765152354426677845851877566801047167219431492697962432755652979896306773407317824846800228126353964364054196473006588886719630781611308305419445031456011598381037215919619789302383764371940464363929026682038784363084765296724424202220355216416370216964435511716635514455422583116373931857630476771089922958136507938839799204833029255181916338857317859623369219566332707985485732915474532962983599338960295860402957978629443751540346165745171165491292397985843169123653489243086162587039494491593319032200321623115049404679628992013426521169607049805606257871907230681848316384269832870112119271063920619653773864159294302627152880754548115302977098321301757270942523105307335544825062735977216009631907340101755515742649054332925212363661879969799376161378567310640337113493050339797551868488230270918987784790571652478173801439716041151703169488586375964388244328967049987555025619286029544027846095834991265285067117968620834659229741768910175192730753377172166721325446482724685154985197024308249905933906573085306362691550169811756294231537754264220234321970842071131550694794411796703900646794490242172948440018514405958444310627308844321601497661640573987589705895778838399199510177398670165101364669490508418199174021010494746505992297153949791629538053746757919616173865971587581920137461963952573343725156209394697923838530638215863004316197535902928452818902770004393644363356334269980259155681938498169405440975130488502416777729568428400593146504942708484894003758821535448239083614353541349801976022811980016246921488377353792600020801956371633816699423330214146288937060195485293375274730687226059694624441053618485606764950924688582720465667073777435191008615768818484259849127624334769682678735532193075067774415687915349340567298374967357398346751034197033344662729988929839699078904386859977886466480417227257781244523304973723247264597733517514004853394083929779188013642345290831589838197175337101736552087535781423718709730652555946183357690953722152552239328150013278859826960209648670711980839465016589609500402229148880647008936695082127847339871418265675032124939408067590441343204366853320574228589170450966873830170547768645400907230049338974749441879496386072450865359727347593436301051292938316189971108351838147895318920172891423800895638550052098385220036243899565749999792474760782166950788670500573763029301452658905758592659183281780303248770787338996514223123990614613752651840048341514404497763592626905735243611618057366360415250030896627921140889907407786965425393750332935269013686805715649651117748786643944286340384729330878577705106206292750880028952201094242917520878058113163421661477454773723556598082063555708448339262704557857311295969102973277540799571119240206149663286152562153711101196352278046061336766488219590770685858789870893096796972994394631135377486180322565384242952662606791637057893997916652384829919016359648717956229208378384233535344930863905421387993975658057939067220344878080969948443052775955403491490484991649269804667383232780022192549324752767076667550360036957702549221606234026652903969005771179342237250023280569244118804089727651427322812526256614374355120707415965800625946250263727773017294733995679642566322540987564329541937210962327236532487792796135145904313380262910945472628241913498114253350772665854412550302254886603305093561718816523064046687117086978192332650845928268783821733131337383787745170255709972070276725238680221228741047399779004399612214610685842759631517331276002103008638108961390529395319579341782795987315748884053019889965465353588451052872722485584693673622413859819119546762781466766927252550153235374251156715095680630557530934236492979241839773498573151918982409026878706796879237315069437039210064377704546304506407173720070077210165946453475108460497349171757853926858073937330717517420201358891149962831949974274244652130762294224016844048692635288153481722123464935026395717313081949610923088912081707437448792948288715012303578095988252887227298584690040403462099251292190294546979863072965346157509143143631021587999186054780557622799541101786894782508296560304421851672884638965970782042062639642998961577003518806379859559369954692204418896069088855990543431251242995991592456076395220324958697229984150619731591488881610991927677123304158889608471029369716378438574861800695742660648998244550968945992458513076706462754003563525392092812188110155291593948669138855025065242801296588098113981159547323429060021914306632580638407834086251615986774731072688403432271368254499178973572988335560198799688934477582014146998097120758878996607815415780862830424949012288303238676563079287287821189169869460091663761668155862406717340645898017396012135006544492618184153131102877820102542445545180477706603117350431207018557049857508363541536285668680414222771073426090493836899558818152555435164233065803492993198487283175792989802571481146031946062577632885781776470330483363742455627397436671463267909662907780431750167705328746665004712438508926254087372641654048199393096294979658098611759341372672008524730601373267684213532211715538705410392511032809096612392328099650992901896907993132061297113210635968121189161045522190699631465724371083687159267670359607345397529284868949317457885167348437128082061974673890609697533207943031552670236424745758386306769519250712786723740003207965233189121788212269170656325773253144295491081994142661595302806396492480959335106767852932920935319654014559916996371139295801851068346228199496563393304464907834498108484297316969132958696552302934647082783713072544742727551673481770877888071204562317538115602027233765874621404729825841170064743698758606358824914449057362185879606072809766819956140930665661316161057343540070880609553357426594414431344783957937430379590937692766536230731326184700558891346532032651628371524782647671086647978006344579458745499650564535102109444904388535309700211727644348191339281903441310263506303177839822921788786886536462378949952642182647240315952273997199498417576697078722926911503931273967152564353610450526695096020855489902378462754549367157477104078290550593743688675601077547593246452582946597847288485190040980124129355926525932162777278097365441126233613166915530545467128234796148696197105753541633610544080958374101946837639263505151017682918611423066937688343905828391796333953659591531097400435991282762158494798325927963257003268679678777584187870836164054376866980195908929227112582968540569969203708189995172170960739001069446092060811998710142816203625439394408112330483028204326969834182759289777148519783881399106763587032287661657797000716104942745558669227764225329465722849244656304925898358550087071453098442237353963232759499578580633096747177762488228623335217353216225931247896448431051937304037928955271753336123408169789878298021578767949008242391268228318891831401747696045857349883256881813429189353350081068357264299772591196524009420673939968948275212748827840388723276068394071555553402353822354169315537419820417386517727029861425527896117121482294164256927573056451930735429991243054848413527303447616357411305157920588806383210821145542874108125428038758019795491621803174541019420205347317339843031727948357811731321817122555128246621815426938199238080732937363788730039160572430332842483170611036551554253062630085919660201010204760979877720702908420679871872402602336130255224131927860432888551142845346087331210703129417013063406606928108583879178818452849530985652519148599522703360046785580834275362795740234257848264169312332962194010423381487158265361837478117757445718130358535511288008581446963169816980123982843017215913289956877404348371895298766084666236937619586543914838834594205708380570686802062778511726224511189488969604448234930735466352006646933270557521436797126372672298991222126475690418147143429695525679058774154759126538017565969676538489830110379966332324604333649527727255527504011253997762420967661887100400049033743170214216007622578979675931929422165318967516834796324824453588304438731977032066528103154930704434014375460801688885308737971063056537646257376076986209379957561386323840582262062749405757725281397545201001430327849432378198232698929731841784808880089043396712618336190770871007194707172024501785804129736519318396703048926251715338176950592079334756420036571416070900531618313853797248798451444716446443441128834384405050368428330905059067311691782618996793849436148704141682838691919208251862028191498944683674547569707491254497916440587828855921546012616282010254722182524831118242628332236405095636989563646570102145534688262374127563922544849807788388071449794618802373865312155750739654328399885047248892452634986216334308661802350129273648952180727166592095202634935705363669425877576223456046832006846467123177958663431173490400897781745648096443123730420135131777714914271796955077388829861620014989683665812355469087482383350131063920803694358486265924261492763583877884440988292981841169323070931128400033273553388151244554645673922176453541494097981231312541380369858789187375903464682583390660660806385890419716360676539212435228040417062960300702365011727299674098231719665742949062015631262818494830531665338690451996948163990009768761556531837483361734169162758158731668842975520629533805178608059785251327931369182616151960106728771698985449745048090681795998673032315123926108275343684226261022249763345424559555856393127622886873557970343107627826692113635574777480170631124799901112488110134823817257094698934802174863117819902098107180464022476171245739810599025454762220925276377453065775420076675063404273177034035590180822280109915843137407712045708932223018219732127042482370880757201219945376601914535248197271209513318612893544719881115136966329726943323026631495606125488633683144897702314443772279596280759304071931447614328635192163244270785821669373160207769322159892441237105408517458659196778118848350398762379884093735213814689015284252550995859588702951442179742720946320891991117305590506971839876314803278879346204729811605157722784128038287993577900854658410746876476265257853465990864084742023893583262569675873605906824767820719749401347882278278202746335613543299816501481184363768735218620493613623020595983124684605728672222058564350305847845717731047501752058576790938363515510688323617761798850726152588255225941671816468615334934469440089284816027562045725835495592875649183314241581596869396956219308354974900152814849290993656845266071433550809492707385249373198601465554585204604775509325393982465557998686875973155411421762458923136134490923299963019217907697999988740111379774598716035710171841588773640012181760568577232910251774302566151369969674459831684346701312411201587619714758714931405403123815330029811931883322004673567230371679776907847523299204371405529069807925261318548232254728486937209485038098102760988405032609462219387720387926351711232784674883000899998285412922296633316441826352153591143148129688454708323604854399734106424538430468287818049490048543641727002777051524136959075066666624725301583642858625143649326601817395238049675125424270933408431864390131453489588387832982314743165507702983528264094137919294731980222541718980784404026258850836319087585109996322396727988864181051871210880021981926364955871776241667756607834689120544952282139241871288578226914907648447293495475011045842152570753010553321602044241583406907873164711975433396987355962559045616058412819439963190244547096072394516407469956097135319171668752981684365547048289624252069879721006845690899518183837189550250054388039551585276550742188127483424427099834515279512182849411218973415174842585504945139958804696483287233491947909919881006841106511950176171077735832557891416918700461140729245833959514517007231339982253558770332302167392234501682528947129648571627694005989285949383307268198240403781600214087514053504101024529811855648289148521317199249716963806808251542815093416695518266083099975252547184302099030240801587988590439055615181626524595475988715264445367598344939125864689562770770766492578229337128786189124565223555917699304777413002313422970316471368513865590461783895170781420316116454558285412412029822718647910932047855893069581497311587392781128598287529418990480014337603067055852019304707576572292233091481985351162781806248585101772806319101135362867866210084118242262763003439284652338207718166775326077224399016280729391807295824059480129796707059806347811163510693743145037481534004876356803018510800576265154834190150148866590380605734778369045721989239517658455125436658969706847590723616236912528065365848028106481216502730044250361963461705211987891128569082324880044822921458929316610757970611463574022027549383950340089736172396110956585235433159857845281513516666604861510997033687535272515201134662316717078735634993384027972489158622506977139900620137593661029550612253817219959438159044334553935794294000899737937332354040549456125559008477816004232251667297644791035374890506349444239358501134336602952844863488113615871289102738531539528307838000861372763220275366566039848241370280981981302417510625881280715829848172528304615071534368274051958848587287982194923552627720363477847315750359333560790144276324195698434579227849756279002659098391681269679976688744543093998074474857445010551871979517208803528682048894828540311184558307256035429024335158274252752876538430706663440707217175985801850462189679798393855141629156805154178576182781554112103994870379082244399646817518967370548621874313576057833116675715968761310015050785716667830492911693541455696330986953061974894495662662830019597760501485683080178551419978978757037882210995720409592288768593607421551344287747629775030440253088625830542332033283096522953105726086777146676114813239499322481873508707832971977615706080247452386124775615123552583844963307041087192113863346681521732071573962640878880778193806409012138850634324354307794497561193985056592565452385918736651626613996699262732988339592473315480071364508680237037011250626849875497157042711190629673214676244887489922694382647857472260409200201694657569629863060543628656497038158856644291391457049260780454064536164864451274662950243067717218215254381002014909679431449753422337512754668127474416977359604863124946038011783908102150349962261682631738834898556725280223803560617406667286691705118914817090427456807555070586774404054542832966413162508312624402332127761234273512158637115068245586770806087278942012095571793475968672611088388025135967432995618641220484706919497863614230609021055963579187556818922599419221636083911592951206800939857686814345496993814557772088963665328229492940132265321138731415685375403726163518265610310856851512134084679355833311751814963637219582973031653621339890058830238512498306104087120635154202613024187712622833200894935275597676170181296412588618959697961156755926117214629869988710506306298948083495907673207952794962919729289502612935903662381413143633507004786271099055420378009604164210081287421118244867083287391461170728100733708676409497774663866466206987779320342627401174659813583222879403329150504326194981527199096535967726102229415549379133664478080721055771686737865079263857199325110539332439988119550392158921672385847014098184439534451868251818074514167982545482048972323676041417856695791410584899454577114144669825597820731269940933917945405901603415767742871109804652664520639413764140272699670428532424380339702132667938693767484460174709803027404843189629763553048140210261998296080549691345855095515652620126425422157039950988834382753884384213391808130683360723748112287075682652469227568749001339627956984356673713509162998302139221192797138689446470814161821296316702241622271033896660687769506081417503942185024249696792989902005148554302812349396079878290192203118313912462553618656630021209085772195070928334049470654408355136565344541674327994394845560666747369681173585862062694636366971128018659956319685837195833387664657704717746795974602146085965755949647643155271937427108135462287515020440889664844116578191539618642640246238566423087865123527917079760608112985840595907830237926528207811238893454222385584680402533970426779243059686815540183247474269439961346937370984876543059721283587108294286373478266994691681318763326525519360702964145791580161308316402990084990151206163279304724299308183391164001909927388739274250721956727363113303386333492782062010054085915685912463719675015382575403069484247790503488706606566624248130023469659764162305413987514743037732783734484371976634273136529849059332185793372228205235282642492873695379511558741923573759138824893568204320089895546702632242161222760509743802584907327306528100720578775092926688072854912321808009531737761682274878456183945428217582639327907100466491089055203383797654325716482107378732588386117991850287781855751913050820778385739111120897837285892091065737482092722044887888743422645912038747104763903437624953876632992325804405454027053015739742540838588954162137175152971085892663759844113135553665302272753824634637459596463107966395633970979655961397260688684334503144311588421768188336834710765040260595649813032514511435089565739307710834083477474873490673128718726835618893444342106588058915954413599244626882662268116105932722092203007841973612140017094098311109568518510794150200382976537201300779781568392817115016998253952083447793216534477867905884002154195679597351378634184572244955803068247247120960032508766647149738064558761763573644012376046938311062727792552197155819677058420120363783263671110467257413210219529461384052208459207303358682441013987060069792332434944883887348775814472700022830636290037653613823169146892868558839681439481867358803058131981828617760161246976813450374624307367950782037875555205079698068460847296513103825997082234904798529391279019146212462360876959764720215465181582806274589371054243607044851575500179067354581202042530182683514817137003162663132751414505065952648070146417429907343989548952867338405571935161605206183213339506511323694654035413011760251660754621526629387941275465636054194938669651428432214117161368993488366314215777351266530844111221089438415513727531411960999226657241966825798846688510538549526796473499369339690718778099728197624372985670605993524804100912246141645971621977209458262478558807033935032192122604461676502668380916887486591956954705375809380012803768435305953378411011780448895072693230711459554946220829110257906104072652222232701795040746001850607044681821908167827555415932722383559219420395374712414609337230369660341667172029071944267871664618134258434523014987463447949772102900264991115458728932932032603650371893014973719309714258036725394074046628464222685409899450311635978187145540682666492545659064192843517911765601363054032134268958879212874686194024612255283268104412022376872529828222083763185201581155782473700253692478740242973290229741055196212200331434105609744602759061179878496343529226140434856090088437804364107992716257065402911864108607353055100478674433522479565558906391999857973451766929154161843443949130750570913517838426752132129481350794978356091386145736617497580089400938971092766558388554679036734344443015328268273719257194711213221315652831626826256326606871066205329703015169939492814807641051230064990339387088227916710170122237012359615821221635515189292061413846442862021257736265277680661227121362509792459790772479899107777294459891264897177488252133685862274034673952429148967193210226936363224481328346168216373794333795448466420436061845830624882180065005751804492956022403997178359330813650673649488523840007378447129522123022823222796044537009490740290442635302933126130937202972715586741630009846785435963446987434479771613761860258793272744004449007840275997534434800845329734033744252735758124532160179072234425705833784064025351879903512279206543208835678663610969865111171439153827303923787311011012453243926410212072061947903137713126098830482387077520055535633561128283984774248718674695530887053508612181369804369949997681604780217317386977499574081485356858340384604511913438068267858318558604037934434291338254850094344872299719872780189636034846380565321984760852371068411966786762850419769849116643969091802088045153908426079415891743295387766508754648191067702908738889448873846419864412025559795607403101332414472092565841246678093423735828266353582753838682284787094352212029642140550835880091364668864417403866252940048927665708333046812642413999261098564489268955827626921324041458316913170351895500501798526211825574169503159357781589475409256799308227106307611970668180992068983440762533798681721813502286898927711557729498708482417382802241561649477858732763291539791646766370353395658289130423351532065495877714049537820204848360558737195115363733601553770395299042956990689616167182122234119219390393818325271799640217754720575023112500434981597359343744771507187395628676231640128189682254490695237253333111769060246860317656656220503421190952114760559735524943108326120752638396494139939476667036295406187932476069241551239241655403952220399576755183557990699288326462533773610878590646672399350855863410772074104374830365430527629477092448440334341594294687591815071359182884709768804689189457299852984252440850614355963704408197830124140472969079393248165318555666512208194889230043991875401685355193482692517218068856334008640507245288077620620436734570321028857229119387258272258483686292515328875381001550742976623678198528474276187298229124467908509596950948178844082357419434399762374576994576098545465788413147433070200670874516385764704605126655986736421202335158677424562499239497259345744177674250632560972166676217817728933608834052682057814820617160778472981975908801981664203685890322880117738298814135987834560062411052678349350965406893782280405545463007651023353654751445873490465442143060086443363477909504922174742260545063350825907179582529634755533088754276031667793887024812629650518657126603349440772416034048510940825323915951323630763621827317240040589708496737891401823268210909187319732290226932552796525922147464068951736984541803995621438174259786914737711704437658661374438149850095530641966918716816922180409522796609761529743151448794833651090700464008466193116855854709759494834358584021997479474565588847363526355011961123873078804895185085381066653176620486074502223430136366656889431155653283021205984061964629575588853657799140114284189500680954207065293462718405878701067455268017520344325845398720295687016588922430787592450730074925018160440936293631760095275705426546349859945847310834929349013477504522386185056130355704611724726984744323480483497202294387263251157889521679232456984245371564470411130482681216720270378778701544095690461759955210116375593666150625749901250228966227696723874456174695732420021844405777852119362914036814017565353836934137036973908190816996205967942367163131496396708146242178423346396612292429497538887108716450470820649504251190439184197548390630691798435072926807105482802914409178547580120271923612123290581214580803825655265577911172355108476737198667692439882455948967868242548218054898081722464910267544575796321535914622653864075954417204485533237179122276563592518438399617278031960781033859211098578800341865414311500304631702906536416260823363134963314901722272552101744331832063192942446560462542735458640398000832698764368351706726957431290049071077735408108827658818018969621411118798401069600931246100677997286827035998954144238855086742171469491660625370150518465521117345131500618519117659013854029149442238949593907396698091889519588537855879069922488237466932217343310100838793019055385927528616639501774074761765381689019156243813379052405950343755922129727043885344061482485414079233085812687811880971505385522182198729224354228273711665424370578409458903273333931323673840523666876862717327947604736313204479941653331669549199209436231007966528905503295561614964343444971811364769734399325959451854294258491541607726494514595690811770597464026486717994188304233018211728759472650499695324363159098445047626840703776035420678697934595690240076823966167742538239646947404443238663746722342158339617734281432765053053715731352118789495698079000292117474170558333430866337942708798517847003608925947729080581249480158808041766069061846204896880999446119666185681259352332233478201576583836939888550865655741384451336010353054029154590859381162801913780924407594632441308046534589785016463107395465617149400751871000333749145025364161827484424266818527757982511829011504273484187824958324959166574040757396824952188441045377765029451179115318329885556156789055790126300297247560419702310716958510177422025484221054788684859164173396181759985850550189164549772266592375455064496213839428414304856500864320699393062949735286686502342716134720624305498382175883440011772956009788450611131463550717633337669838638108557523079516955823473455910891115496971910506346378996341543633290664199282156307525432645350967509046313571017372403753862227025895184792049580412512457356495054270941907431952441558669043554949203890281568404554518139801053195955490771271577444362792048184932885850986111674573076661899170278355654780596616928761083032557765115941425521477804303339429106780930567982530340966691441215445133812216360431088635299833130570105153559978841875381091739383197770181204349836152939189721592872489508544102561176681309519267244712076423585038578377633674083266780602331572962566676204331242880363987947800749310917451052600437645888096621561852350447709276213874858355521534338285648638526100454487043788176304520783356223626265153976901628201744507699703192125158900759210153232811006821376413330301017911063366264153517026714902291093377222700920807420304037927603529131969637543018151880045221704049173290603431452824996815325645868119375835004615868100161126600692803078582054879595871998138851222159659440068138007447767745133121578228716876597335446312599693659176134001744532485748482447364467338838356322975160740758255444234278441782442704148056692331738498227634521347385244404152559625857120934460136488635121253488549779772350764742351924285935876742979776220073541680204835857338029116616076372299370243613061247916425105927306153083286849807636261266759202408193715607919172144112851571597843005598144814474605264071606051114569101371045321962216420676542552364689733661858364776115681929563644014205373033211516600118667100704600088218195928876597251591455232058355220716113428968698595826751472474212914026048906557888662056403016401742859134511210123789599852133238533587452758456958208912077543119337156660498571536567939975148053225106450867141469608467670214062028350796269028167265120785808965336706594201206235968069767720062304243417714701198437405292076557150609502894221581214314435564916054825659825239706999998424306158980383977672658621356396525026037590336950242010811778392460793107935796591650348741207922335788574605426019717699694993732515870361471741468221562919891968336158311723122731681166796843146326156408196742384875877010439485005703300379876586052909992290212046055861117508783226072450761372654824435117098972263416512920389310176710953623099554392944723775749279067417002327981271770730625049439293919767792720750281068949160637395028514025351611304265632977184239630402040959013839054094073130845351489593376686517097528706277241749334742358671854604704627528867678301379519063382217773519735076424096353950908556009554691716818984646180631627489313373366954731526636184149130476751407603982655553722968566194439982358865215479990947254143041667131690455044031862270048762463033992468412931417368092763918023143554932754252308944699267180550250851158332406280590687031990499919973000560435060190232807040761632190416867911716703360755431534277443531679560693464254297963108707751453830917950888001946032464452172941944391093015649827995952702613576035430187321944311591172712711220336612589823359920936207541984292407525640027111233630553315308253723224050578648765461304834023940207261400573586233479735599692750148051916633800005362159746599650374700193602381259881016410344490683261038773409525808983938078743872712667960584445460602353733291416366613783932723590971696178692058738992718114268477854125445649720971769033340251750534562674432210218913346222544715231841150636304507183141107833905678379574716303480811938626899349740889739407550357898385240758680170945318682214248960980123363883427070977158647485020115349422812590500618779424887763322174195002826696393199035498264878594533431784475128965983085997866192121743370192182124390836466162766507005259978083465501802658346784306170481158189177109608100461421864591234755480957858644092522572459877955187882950490850872934284115307103163742589043887898818796515208405154026558272929211535770982449443053412249561441652535709710140347674414783483095623194993061794683749809648554089061849153932314323094167515533497218898810860933553472644808382256205263405193496401990233390268092177731467512151731755075090570619179222961260480799614794036312704444698246677723198219673426690849698839917413926758446932983064987935343254865093654957660920674010055156117670473744291695407563637078421446660046955629850749834893914015225850458850565894525446959055656500690424015205553397413482931409581427530966127199512820872187267201303863046217425017746255032485944519457391526998637712688146542883436786618997641793351799526607356771537571681035651280158481786296755816792465678124303753376864074000650827169321303362771946702726750893300136471918878869941877669763943803897367328221446763798567672072289309614419699748308249355827529088154237501038172075198192608021946013444459755884118501243954149730162331393200986417813264072899711807322740243910941456129248789346372547118770028466175273565821888900854513543392964145354428612151124653104506106411544682005735599461087092772621494877595783050107652036627034732690048869121606416383231679281431653542670821313230246047670057183715738463213249701972983032782090616602413204992475527064821490135424783302901005633059332542118373658894623400689235221291543446504298478554685753265685709745605503248579971772424698552960088317837879207451317134136598535365293437147660775966747123596374088556661368492088516436186933931833749211827882935985084655325114759165988791928441926067487024804123762099870065158893229958249971771967631206009702374373566575041155334449076769131869104833129957040034071806456664250344276436726229533285725711530476411695927832592916472570188409905094680225396536462553325775548806519629723697989186364711502703064483237321193769301226108226801858585788888162682319646434955471018935281623919905914060416560152389295883126255433088732121935168814847701513364465335174819208494114691030623302747944582758463924854641104523829533460548226016514412124824527799080234295139269755093719961249554795052733429286740846435441391382523339425924475983615278270243508297049050165107557898282797705598056790619030960827234948995785148003235231730731765855353024470726323087279846616023903488026211730473417004813566490923688731746468110033932099149071637411369562497474628715876944017228061007748062055038756999861645033450573056889843761077697151677684921542238514948771765387500438594157751602413931598491371671659697850416027089211227077918840556083096229193733249735516236298576838660932940995985812564369678360148743721112032905880295042882332368674441614653174393058140872804162150468159895102335894265494972811838812673640944314898350075301652422784323878395311124059320513383962718801900839441064608061234891485281557146271116056006067236400288246961360978878034648681681711973334621997668417593096732513283301186387783499633185324388318491013195085561563515871183726942644408146826037669029102396653057668002182647536753215599896771501935382966641275609392143796290627682397511684161617539145245184548881324820185519379965526737376008792950404174627047613279348390376415406222591311685799866281974891526754192844927292321824360619444049516892521153044731098093644293684362404583366024268955598008934571338457858081359101622403022623379653026712630444567976388579092484648330484655200133810077158366006177437191528921888841443001892254122185906972736856991985882391844282141146671320214309971471729408713402206926073729672901549134808285766835931709741170690189832120851982860093367843325653215098183239658328486431857128008115952097365110028486495678689537482390292527243406834883936524725010567686551008442391960218378524035933922128337201125416841317350971359012636636758152242050098204436514158783825407279556247147946839142163158095892121758576175006017329708525816002289600989529778083910670767048825593080830239472851678967775540116413911594111968715716318805814771240787016096686434916105502159928706603852884913459270404381874457832994753004154416949741415566536497156782102179551450902491533672564122286399279847013518205397562380720652173112834602024361055386462932217268243707503144611891427350732547416641287124095333855429209950859205264742063331342103916451893993580211495791504106435785401988541108642096569386650668557209591046533495808159729612828958423377416415918906551421276444565946531390867130829459697464246242560980448871502431831076354358352934785632173850847567452114212988756049822333163412013863632256346620278500539118383745992217713191895091066505436435264732692719121696206095533041810989120192835113095338703437252957235073401404818293435420569902980632383077222381457035205838424040500199791964548186518772439351415809320501130417957123163896967454052622067852814443672876662080801611119001362736529296228508743145635553824504089918031932323901647371460669922535929831330468471824062295138900118948087082176624810272161432209082490193185366649897800829185785875311818151826789651774427072652607537076550081911974510531407142971106801622346707575650240667997613610866193207442534167750055807898871249354679893386588819152875074661207526841552895466505937349546783046895782862166889654280560025750887130472608763821313952711906060857392063395355968395585328745457894114962416898585306543524380150367179551656017410334739048051295350213836628734714659925377271991571337453158130089280358875166967327372722549056361041474349576204565583832796545869493391016723129218950625674290907412384526087419775621264479142439540396413711038062406792808899949936589505522414154893307778538111914314602996274788453190315301803181660799269034214214158692600009388899578604216990863720603377496644792502211583026663799211986974208349287962330579254840855806747738590345489717230473169247338029868598301180208500193919379216559356973964535253826727603094076935371309107794177872767929449012461842000297951098244648748071405607529490305838092156390154461399782840700955637543700273654189131911425419703666171168507663402810456152565114959097652078407762800605187675092508815813639861247115059197442261219720920745887735686049512231674818077695304693866219294019726868811626191638060860613137462083479918889224269670145946616090793474349414119480115702700970036535175215709269963725862090293622090747197430700269466921046248659002292293701989741082139643781077794360773323781061492549388843641641066552347632693731607279879074167170283867073428321055204346388899737611240689404599306424082325493027305132457687924694907487465517193189153021472259094968900435014791816017598912034626022132020274447160291347849266087209687870575582057744991200297083347027953300778851829326562640714084802013332298287730865273510500841889556927988102640300760186425115687667481627118455399135910723113840234451841402141632752134707227773625692356240860967921349723046052780561773586188229353968227870651330990808382408805156203406845722737060220848608937012387138144249630758789637137102398346744221450506416366431565258245010937662444410218421685285329909685641008245557601411118612148617486236214317925845801315646975283739354209255366153144362479362117335290740358182971624458655162998894316317954746105585266769653628731599895689980135776592534304565710426470187943560670144735797111084999557068381398923442137618208804489777442023910615740053841167386431239206131031604736876969064532344313994825139243529457600967930640243926725181032545258510317878104844669503415493819686441833393007184175950618109006713301993102583760177190455052368067099522617512746286160283543100462476452622326750555741978850077734036305434377922423489895036788449225821023234364089342094028440020336732962805983648663415964966190289064805237059362425269655050613725783719221319194190655009144790474222118964476800310746811397637913495949270670747341528782867297507319254557770499987608571069882528224737414104054236017972713375656369426341844745904115044764918607185462904102911054187654406551454645047161418403719237856475576368161829560916468699292840314498935248877611594524839300607630582740674337434611831971499173480447216041588980474068633895801700464866518801193153914803080843798693726185759880044681584032620124133782660938088484201025808711944986546232898264953347684187732016845093837430131502666453760777414601944083592192537249052515331501327995082022902236804562428779329149943284424147216535870502624936043973602401367772237752109058562689353451888619369742145245359928449152721567685371790842281039946950807244536805779040895756813639903979966323501455953261485698369802815048312468759138609964979239094162602105391557861741476098086705707681524254037360944064997035973236848959978338645681557482984233680032421978278546834719834431273873516596683145215785530293613796116494742197492520456448801449087564710673622690007710528373378137612764921898175862002669593921836390850579463981459498315159324167051737557369323858004035774066365167764202424984668376026874574035297630724284854892500827522819548919146755659302752857750176191266218137130573049670127279705426902584031335544885277345847139969432746072076143805631809684963389997271176418253996743780592257270415362947737815428247346846419025029755537847800811753255833469259268842593715285433086608418226825841794289128714604670332533273316407858314985852214965503012615831374602215913575595133366513878639883914454690640271961332866204019870463757001463018998863981828005722940184297155580638504441146901219888904726776555609781344066524190453335442414001774042400973107265286800908284122840280200442850774456886261610800410165270905150259208175367863883934188396349734723185268581054165287981263306883205306037551379344209639196252878771245895617718911158687071647201916797195282832499394331835323714060002831476518202572876386057489639149042646138550116671488067654541073945955463028834369830626278491977003112840361982978965031649299597126784507796338332928953387452498971494211975176740835218247231036496148118822351325233718891442458445457711340298550586021066009103271094134675093519446401386377040578007109252723058211729241681301648788155447168038155513923364341787913346658070087593191863600310858583744368448279540543592511008741401861911877844192048781464253676773299619532186066978623503677749491441043077748425210421683983009447488468011861609031836206939365979369068396945716637797962751508644416709462763258023958714460460797977121156944004184697963056330537625596166646021253089026650379371915527644400035584478393824893401877662000962610593690283280485555770296713868343181772439153863750877815390385896151650022301448307899578037851892372707773905650761367854469969590227789988296819128967289474350865765389120258757389754242231473044871932754450436813741049634185910430259051332103757365870097121056507958457968531555644295674070769902264318369192887612516439350501785844144626273311140509341002051344352508552166957554901722539256030103680616184675296674233239354241917890310768284028335846309883931005211476154802462497549304579019045157595547650305153983805362051522867837927201666279736559031672953716345869382479312866062697180028339784594965614317373358958037080079842870130218133813596968609839703019578363516160326865312409018174742771888019177300064117493543865538384765877624927665738897501777189176625076776155299269264812451987631623460618409856656592805345324812848956834524939818331120434306175184997586748334692669175874483961900311154972464904517442372407862230780031174071631767523826687526944669877837817752008510053197332854826750823382319748269379040075823262821656869470713805816229062666771201222025233241755826629435968078764125603320827573711600121389943758947555670956699574168284766455592872002343419310390209370381376947897657643529475914501862905119022705965524369861092259451242191114820186459119186950813775095339487085954140676968723700180962657170990069947732506432515117281794281648813160943541696729118552090928452233672600230486677053735313657259918374736481947776950917054216389210920940317613865014609432413616065670938803867374942483100957474632264900562904048401640316781110557256546698233934583935632736778716498289080809442706285236494528874396534731481130667889952169703770059724421029327190857933404401435660211596420561148887123229910234648093969481637823731057631970720401804569318292140393935911275255008962298009812629959890597896048889088099338210072079620542326353457825103561781341724286036249088443794808082356269432678707160252038309082916003425276772499405576448277281710325157809260496756482823123732067843776103809358310892088379496871190176539028201272598492694767446666439000490866164484379105779876866087401710705519677797724782281374821089363800810934048445645633709223817852134467502697202100780652707011549567074163133543539411729301540141151957094898512295665700133834555823740789440237863170873413552680630876707101909630942283696245293569635876525297434858194779429731457018024884181731097902673325022924944632233589901691614841709994474070089113147544235304207327491693009359876187212533072263834605725676400740081366797255724611555410806410364657697090211892652368134320717238008784503010177851181312569963661313622367864019471610508106172845429353359247293354383675904366755737994660660049933863863890126862837701087976694973909232071455504415158505651593312674104718572511672737996601938316925764609355606030804208906821415149600702741964368853931290310021454623384744118889063222034293561156526347137573259282154476105877390754553064952360210032644001872996533447599780703328989938290393244187960786997084074018817348618939467743124428276226441736807822829659704976757027744865735838085452126853290351319361781975000238439151603513390855471201052703840007458351280016893855778040248717524901552797039108022146418298958518023652827276689829724606219659430489911628386679912568804503178441919910662344731698660041164398883058247049389382992991192882260106286296596704346639246557239488175039697901805205377466539920042700268712228612588708407365156951866979371927931130745180849840359774389875515158781462245414211786179601850219065980024761713047487239908524965816842568611419210129095617805241819875579739326810036771942700000338907611052027790933360436055871255150974942802663969669766209979208546933207404386497624611436591522888390591677893947145072583164060163114020590009007933851093075776000931772303356947730966815658636578407583978488590405046536559498839847931168656244249174331712944618523305662557899192387276247986714725233362592841013859451460153375512470062696070162668147854553440060592385188098145730068210031037282327520120195266531676607408424474205849335679158452514537267557558214129642468192509225834562901709772120536840504776069087595150833356820518518044031077198893988008798372453475396251874201662004052904415652332466672209614695164415821130912572968726046328049975316306305872751125686711528035160027032097151925067453804610505121641586684795897091921220634123457287287530897063319663198637968487587166265446987419815311148763170985929467407495391927223580830664894985430061504474514721877487857526951610133810370057423628269472136069200810461300492448837345170662440155027833903134055410953308811956615087039848941957646244990384124355984400222041948016887950842463977398647523756022175683474903805869941037950108999418959956100871718632827071011098262165323285542151570209769231473492000696258777038208665814885557013273736803732487345239534230580567021146541460540102288905401880064477024680951903830190785793521512994234486708782216030322095272781992128425683033026327104619551539372642183066871392099120050772362043531871841858183118384514714913785114562646630943937721682851975771218427084994594251410213761384431145336622523932908401610334797410107300893388519469298285440758969565081172261681409482093252477767999778253784113867232198326842534750010985446208393143579114556317846430569648604915337772121806424137816993190636320837144919221231943436135433814939732462027408798697298865835760237648289825024492834416637313335590878559248718992850464541107574827439546848862313613691995066437250815704222045683890987721838824590116244974800403381686592127053553874624466451728419710256985939770650223856949952420105538275445048401418118431487206362387877556913588580643397821494794996105898700996304454129245849864241470604214062200130157099297025903253378965507732088328748703703837433907485709323490773247663159415936358427818636424161278342478718142817610020182584323132811811274055493114817876244458939276212357779275548968977046887166455595216441206073814408044912965531096105045182040944063820882553838028989251315097452283610452536038635314829332824228286577666791530665783864222665845977976766569742711407117488682268677815291442314509735051487758350876345615834401076020689055947059910586083519752114262258983821313952922233378728198292469382503250763470507564190554948017323645935629067559218765954451694094627002504976464594306096523902582819963880216419823516906602175306300217421023088158300493229086856418195757835896256618702133314454102624097693124998000393951934511002647193008962428566425041805826574206163400796811946161627567683229508233617695368984778525079242566454125499523196634597073551999218426536325864213541023654780722311045735603217617726162052182265874129960443321663957116293354388135658052740780893031818264895750280942108885116695585110739815197844218690805387038419437854653138674638498476842076410576177755121159725799070331832437364767008262374491127525330472753693590737664798910464255942890235948438902772968056826707128427442587524136807936806824251905616646037220349822611627307082727117775493725708736128355585053001738002367410903024263018086147087490330989185698766823018260528436966140020037469175891890059972790030577689296916094701481559192516144324022799402683350909427202785313999628103744455182743799245282710653195198827363560834862631586284233578225986316093815238709442006422071000025568431568016225852093281564965509390915120365508083825722984357349166699231064096281504920031655464113490442623924318891499547841819763209571000898496781552188334148955158927081221040314234010533287369251346392304956973893039505652084260540586501102798693989572330846208112003371855785538104514678971349924347714786197429623521538709703772155902427675268228002588048587886043097890042035590378656545846635729325464620134049604245489193511810541685974473498297111955213251203426005727749554480072419137304832158148913649757732343023401849929398876350760688858767861728906678428251701382646732987476789797923385184378144368918550858773932985762104852026211404492657802995710024953637236969623187663438704156722019315366237715661093048667493246487967523849159393776254792007534165391391903644373594951916710347953663625387198065493970106476317152458244721985810569513322209141621642164879535848744343507903429073826261595767539044213254524832641043576762073333798286131193207531720945997910334277348993614832149562862131770236373449527386510639636346144013173110190442524262731137319201414221997483931975023954072563368759615545690610234379184310074020011033339991178899904661734199408709163118656803243725691799104911053659119091879454835473838172781485878783940390567962129101606876034768836444790616038329327500500492108494776696614380630858617188794869799762112971261356369498366327337723428958421467095441595782898528387273297628483172786814338130014466633462406889337147966793877620887865020352013818420155638268215553057880209911913822917045601397594374623772878991016754411692823415095469484935016766554279409829014328127858583648500056412886924557149169602810417446116778821379153025857257803474672007880145147960429248239950280271530095455163470502697986962983879762756805681823230553873507846149701137750894131506447071751646770183995099771474902676332248732412517015122285394540770579747734124631792849892946223574638617633244876801238477920783865367482453484584266009268329531613128391563091994282235469158566760931300323503529788412317116821067700679601297406664350692172175033608365424841665098101814226475011500629891724419786332417398244125564684884584307502268464727824326859270106669966685683512880110068547953250392245980753607496194603680930100292821543797298268398985388408915409027324557169721592437884235247422766554161379616957774973749881691533789243527636078052804393287111821817792659878797897081648643601480318288723261529847522552852806163861362810756659512086339425576994759587123738534158644709165510399760715282228062973647890757529209932305506833880801742514225502470000431489939302717255290664975711235157308160628726946233712926181347592798315657455863122626213096465500804574303403807470774322192665488189572131851798863867342767891168060428012243202563294160405559519272989102692520012178178143006629119848524285367742344417141543585191426899427184685909654027257375518950174784193840103663139454687201953378047868951462524274520189719484687228554125766991233476737521779914843770905807159392118462215756596054869141098906442750827651869497652438644579336040852401488926338797550550983864397687392479990547147824780904812392278364144332973930533331704506840451524222054984099902020387929341613482796201177510669260698186965851872482209275055733806363285228830778915168500408965907010934615993533045043964337794887460834792322968848364256304065867418335760891977586008301490576831906145979540547940157954877068876503935863729971727059637918691064983871847442239034469843742834202796018107481174638117504636766328816455525237811787352450060980666984477847754542759793756199411708644706521610316945832906590761575830580576874126048222278338470882524919312949844599617404650218511836603521632715072130028998443713399088615113329215255361417284248325982091791311874650690758762797345313959948623105481774355724442949705291011510978821595584999137685422728091966893921175655496252573132512489766723086336764958157026023123586793805822351223270269417860413860651231498613725739178914540125671663632891244654139817517757517303672884372625393687157453875719734498568376265513371959357323623581340135988229233905043867050154955388549087858404282585664059577391253929045666056097789163315474319843956446699955238907594745377274969565931391579851846915354777089447284257729460597987856368638496915380910423498749963877191083050642691718661174829157726854552687199572351790280429368283404872418923837982786033261446792385216690658863477036560157213143801760797665606328344394877864088091623847532055132910031362280557635127084138328123794243694422468547141781158592718073590843652400475283497456126665891618531427054992421840556633599160106517645010438810105720603309394700382545749468686029869895503806179416896405249833717321870973714347879964222182892016734930784613511550551555568725826602379568306527546668861622507355703680893462354831324329448848872043705620126253013633335059434203221644223625534550932278047819363878275341297804092486336518914841750749045454121989116403322060286698090480420406828060423778801016637581359694617520076373162154998181517339830531801257229994535683552281633686623272364144652636872872890507220348717027190023572689035362688280148022253330845249889757067634336747241166333974891215656558977568214533601753942953396230018010927922684672641602917533047158977625122791573002008010171994706478868199202660303362031632536770064166704418669188596384049827708895555855852117598521672682828462981164263530277407532698670515063465890765505651499355228081318682531808673810010000431024709777924458188995076539105937049256883429331293040200150331988428116858088222952057130764268693772674709951238974807916983632548164236857279794930023628464552666382416320766172011896642736195136028059214658371789663825394402480801708160747100534804933113606090080806794342666855432601983042314680831863531254077976952863162570208493483746280208166349355456671285145760588177779666193216200122398252280309969233580719027980946841865928836859312460234388168785245463683464081642187341504595050069954288950515532341009093548977593528336432823289556363284701218630810941241581780916449625028715941462811040004680425192325869243046233355980177902719889307986129190316374290130476202102981612557638801389640631903895863048962419220752783829611659755449599484816408926109473672251734054727961214418994769755526709143064652714400605228828566851434717564603746389530812875294328335130807124064537599606831860112654736697216825986443169335481747871477769565865220939277688063383961431755604572714352389070729883211813605557174332022842991673688782289403550709963983628401257298239848247915628266477039648083242358246904086703149908037147717719776736689884136177101637182402145480712753950193769209883835373369324018551553793825138435851272362446968148702295408529103164191561600972334776601906672335446756099025102432806343120140784437715075435286797258334056555654880590842919815264888903898885698319360818139583500436840560770349004487974708482250196447836452702302342877922923447226506451247631475213745354967265142987894732574682861596979293547202050577348382840941079908844576647478579090882464644552746470008086674790264119894952429323792046615013031297629542609489736648094131959164678869099349559754018961554989262731137563119895740092378760522052706100175392705540495677040157939990617190959593997153832566726203520931070835363132853943075026974887300100115342587338653343833829935065318229818109577698196042988757588587009983086087432890483577639534368754272448235924089571615730711910300168578492626103269593583745907361141915667416605102419276093230051249600523510755784584729679277805987248097094196332744207706786024981225270861996755575929991093002373046115281769714793364589288025489422976520293930031086977433355587620267961547388954001539808203180284696144588235977963867415006963538329172704187604327354805512686769546261580627151925177296426771691971847010771037538526713900194367824275712179574091793948294975255585417740767524158062766865541350409192851048443144511636005823859062456682410039073053881208200585258829827316149108035179303847004115143730849875578162109597990688089789334418418948850427589237893349686288016575936223700892074177569880304967476665287192198230844500144046219258488701082050189757729964354045306531753435534850649149276703388573865714801141757867769839425644417167015435820434913788712831751887275314245409482460364972697886506066828871282975808270102077467219778069740468698690583828109150957269461418614497374304203057632432552701535936549408723221499216043597715464868502690423639955072898903453262355394076949311282108715707295456557670613806854820084196305170671217312139714879986580731761641503901251960296437216872492970492694050258452484083761648752209965546064678508656927134333996767552368608657118391132096517927341096718609908496655235904741027665015505362505996871153369960440718656499941625137828984428998360221550180091505585669550527082588787156062819567120282430382372205309898231586449797363540760834329960389692071896054052627360063874347053532245125799147425522162422606561695895932581004605907870712537159503759314867095451095356295990121143649506609946753979251936300347312779038520039580776552003967890770151817801935135035196892323245634221759788777915895371440634496322839952810923833934855179301995114471958769374702989850783006667338252881582223293867888297803459563339020068555718028890457620341229717437628354067607823701659081898400150496954160086492652686985467966967186770089225787073100122894105139284700480453564481186960667905316700971156481822016584615045713514301656323007342425331064126641820499217981485518087672405863150128729535704895803322577725210170140607371510648458045478282211668785541111496978426133125227705926657616921118458811985354329423501029624122048500324019031372235432190040929960356989505793269880434757174461832597274131454562380616687403595270965398347379620087361317780489082883017599301071267122498915973483697428408348719074339878600669112503419487516423483760949431378115245968532310161612598166022116943045978640455726542932027535172678371209792846111500170235930148253168147032416716767548142997411854525617583157194350302671869595206538679969157113343940933069679688464467431303509664892439627758160815328297241808334267288862019821375863371482007061537850308419869632839116879726054146086321208358874297963195800028317115935236398609131190606911690958565940171147826626075304021521815719302643501141655668216307954370753363842341200851926017448612137082311945562744622442245753655819804182727711710895712341269332429174927185786773379109609219810117237698581935230665542295834170493631166939105715503427875563365433490937351800148207953779483127636837830569909527065687042722241316222609767595790512890184594942162903872037746277708367686600208789141003520519564850862773111354969534937241468001230904412960257461086019528981512138897474074616933962378526256569487034120744319634716937018938691559634566870644574955381636861789663005115534378228920153246828534419070382649786205356212747939159212200946975103726697938135733392055149836252012495932793827478139350943078239881136699677165556337852175263710837181089737668988202093623908760733888738757693966702463320901662529102900338841176454499334570060920179360446671109328587597565623731546967367758886652159293896556123277989767899812970574334210550270666233643366758625597205451450062373651762767737521983163974522128128924150664404577665914855925450269931657373969313472946217213506848458257079485852791363149703420679398605498858772486270495608622106549132389756499576695782906434471025103043206727073008668716933736648667005572117141085395628723269764280490472128178758313853495696093219635915139157139576727340730641604280821180439663059941741002767202911111687881762927174960338840474231818073200308724042373801474751086923484790361617975751649982618206042911103842784641283952612753584515474171826470463783298863072149381454636015197551928303115278132938961720225961634134840383346014070039030890850041099539217001717867545778557319694240555078240965346721830870137515660163096585699200628994960809321474196401377775426890387450857661073817078478500581929870888951715457818454866056032990403602737232916218132688291455445471166932391827033951837066498673154749358959385550296117135350514275037671650889929712057930745910524994044864652625591325926007915868872098069425455203822361609429812079837845724816464040919606435431098916532897405952012298857877787691683225306763874785358075546565417273624980351825704872642786999784335992300851722299676880745680122462232841434058393120634795130080473880257863928289559116062952976190719526869662228572232065488045625071347396345905825795592363436800187473705829893567114773160909119108442762054518820715515601603548122973840842874776608364257309020425789664894845132022748750921788223359178273961383543983207363814549992227744710484435450612289631316929729099400164560415890494980714297493513761373310586319659726732652352104309737004912784332560967191348105833668417116457129133489319283475301057034267551960483041104235192871139561740776075647358212444753932641901983761935609061006401497019612988042064339097289806581197441595016675561299249164557413417839482007396469832581885543362676952742353180698374570436098012279208298837831178727438528011919619832464361944260626235037581529584545221239672946902747060351957852739937836060439538135723458207292293814110382841778909103610195735766196595874828304370525345749004824929590841878445916218875099606219105326966183258434880312531063729803857319706104328690442095712799195349724302810058139184258257135260783101273513194362449676915138199514342210542718535659814079158321755537428580031764194992881166045359994314857089765446522329837367933364177486371227797155617012890896543479257500838948986056326517071539473242044492445272032787163904331138933268431676053053784057369890321596410482587259986499447448583039299319789924003367294545613002171667604976048679655124373602834183671383585385126534788110951885637602308377760128582806931023544856683797861862561405503543773968338666184841536053582086359175215300311887517237340613725362491878054947263610314391361270968482188193794647449138752387376188939205922269803905431728124704991219957810919623426235457453432934145307907273696403207801265029678790953549577982534026851802189365569656202462757606223603436679632172022551652298684868135142534614653386789057780096299853179719618335813123507278870249946958031099320936236786109383357734633736187826373458780105840183660145418331779549776801666635024973487564454676787363829424733433362274355271257658811316179067059905708686045677549250432030334027920120560637910849547290019819965264171835511471465560926214446637146637875065245285627082680095753688517464363920258901044865131227498577477506833209806296978616107678705957741690706061889681622850171582878272314692691961756420253960336712872171783279698754999223062763751514690337365072658826167147441174440266201987646984622538767527503229629518355655323104010412662646843806204880375410391347641580705278954643564689839008768975668165524108388055596233118543999753279526969897407571813121971832349956978330572198224247592837363569361166620470650154579121824892883962290315425049998460436056274265608164056194337920495965281057997528290819641390763438089595280556642192443030583542981691702295025801568209613682723460958023214178203155806814230395869837666096522294421601887358159753464882496200946274813978540424196670528772051965371469296894871510399041943524800026443795211491782017775077646756470062536518662132740798940706793370391582696669710504012568748962674632416120221267544299909764703993819944284280718663458371567997149760256969571615322431714115158904455020309420102559164868430185468830956919853971781432159965990654265609164330763127695879089084459948192846792898902319331901090147003438167025277065644512673115980262927568927341012404664605804291664399270583057328715991230077064699437370892327534859623141432519054502907645406957278438825713985349064789664821881897387698218209639558013804079001052112991485653409828802126771309508742543388660841143156572888554541460235514091706532682567401818888504424613650168510823107212187207701362761463968100485018116056846579176502139879746390712018806177831179589110181408826492120103082774903910815117893490652052133560325539162903011826639593499391838747431866282015622948651740295620104168087793630158339251490261880308522315681173954984932996029342020165128106091489740021321616116574132062503280111711174864677135753549306163196681158730499873624770189436019457067064329208279464950934700275010838070140622026629988059428002181715011628561271919474127292688486742303943913290714978565927664251359123825121169592698265360745077430609251346165053476632566058299450792613499955357337024006669537767758388428125294492538120760136411366039162707632226677185628177421260968438786163348254586319362514577058864364220714332396642644048973016198917096796706914135317462861219547478500561347948905325671860482025700850080156420392535169808557481949441559839120544564745161129267185896566999914891376010835055582182862616042389647273002543894798180954934634600327669217287829214574342687789037647851260698771793127221561403616574707318166895840052111137140705676004899798257895541052505621808386360817952813257246628617722641597762071747170602719284481043835640405717633577107869967082632183763083090939701828106207371937286742353787500671088495865074493263664870677509465723397224044546056817865944661874413628931563364891454830320860550989059112079570080625651333639294101548586133534605361537154714572223284640174839534787852307253277953446383417804291189776960214561124257797763181663464536685785620270580188483075679694566574297065236136971668300111201250813244508419436556443131582829387222072297306256223229543446395871106632038705509462251557475471813916451426658932793474707636007766318716593225958528787453483459188977875059637935710988587355987607155042299079328096243028589613924293897374953671464617268737538002638850407722019844830464339347838594076219405137985580757111179846602655172530883978097130642458485089490401168236152150874430808996892017448041798816869326426424410953320789919160969046572271535064560828437748994043705215126736578918889007611611546466559887184494990553023809289724075599426784925870975979424126986769196606005246321482061644395115622728358750303364188362675447614182120484880095564189801915725006406347164318735931577580164098492450646110739024718842637393746429954455645724380725391635004408203130878941895717692572994205764835368714045776468289213584726098582561542867611418963107494560120668240022699255005576305242193760485638360708765671466183698253032563177817220312895988687716367137505726000280382164912273936823291351190208658157965240197100561206746570665313093302372561478941832180210729640905326445464075434930807775385395462567716671776759161255847185314252332526590219135146335117804301627806829139635657650929843045190989237888319355358734021256010672770550893578329261267901434985396243355164245431669293112468863602424883390591148285150616464204125349297567049407534594722913305216022558659443904614196732398969052791886264279004177744950585200477638919732962343234299736005190718946435891317228716634849808513273913740578199990468936084443463677713433949370071321237142835936679613559681541103426994628003398295593572660577516981063533853728053362115695644598109469030391630778444472358332544536718393354642148578493411776407697993975853926268061619615652278746575030685633632747854013366682807770755184611309059108087689362730493217092078242775908122335943692259026997863690417051524376590003459616082927371440564715529565233767896489036416851875225935917671482988174984623901938691351811056619587724963442092708601991403842721980355199099821039647293948610278442583602190108880920543357564674096277816038102456052481644578020715405556815969522262879504391306374533877291295917179812722269517355360680459856765660535448039165015579667348397817048465838424097318118484020856960483507076768773052024002590574267238753591935238522432938232123511510643283974509792587586796230138362962930740862893165811883405168608122190009176222296340957601107423393026497837425418098788817426947660590017013679888806984424227481054323887083836848998792940829538204693398717761358477917088651147187022143869269091050619182763513804919583083978978882118012470538755760116535351585738831560586733507051248654134610681599954305096822140791107209290584655470604209323790750481900213032298478658768442584720226353082904460485877707428347713072475642031491857366307714250983025790301494148271433317710592313249673324425665952343216455461026933157154230354798364152051875841846318429292260542917184632951620787070948782442008907057988428613552861034383341754716610722432369084617385809017485614266867592503096056603838106829393282970155397278222010860593547748439421128581489610053970508046188560070310552325128209808396715948038976315679179648459981243848865185370542445854558622305102063465874538844298991541987588274750317999618389354206936793966527789631165273161194030233564450446779478528287771259995677960417443985041089358734357385010253208196848314724317933860155136355474209804027440966512525985240652858395935706650528106784863705435126790265847529800897722326903924645749897383689265275881575028748801233811237959837238624118927649008303196989577434198846469625093582574803547820042426166535030262698971116495422527324910283456924258191680848729941497904929897179703830116843168952047279999226957990458646199149042849323569304064349519029344257974443085987483415381629162641351299859681318373546538152142649447378503573967954465206037085087372830029127140575101343324840460153628287935482731216338539301535565387727935465771051027336446654633790604168290883966514027928953649064354517361599004803723265422860964917072918389740641251877233326703743668787689997149612847296654691348942031308113410272253761488107598289660040574345263855754052573551962153946327923535274772755207093916096678745497206842514950692562323867519320836760007512562273940024320955166033801713455505012173736458788672445638170766665546691723785589516184872469385822630229315740069645651416970865356132654500030112784468994206675157854387213761312724407663525759892594114829363472115204252288994198411738319371700130795986730528820251911720181919020872533947060423794972927257858640670932148771345865197375034426993763058286317610482839484346674588147981202071742067285228275966065974817564849481483085616948336525317925424335321857627284306097821676191806293210741749079805536221681598365625219225722027247302775007330483558599151365768412981760607912278920948359102829492457768424629610726745057640844996755243846113474920393081318596441450792526583767871695506996751966424513855598980308075202900135565723331007311259813980400283100873196767024247766872921513084743830134943634370442698568149724161795650396125095747610257781095179831680030939097575187303322988127278677155571186286815773153648941270297532688387077015078252449552482095777112921785343449488921620304486029858287490108181634738691353826131092702719813734253745760675157096359451169696092470279921560521757900285750923751280409412498350099034554789488963277320580099269591950793128227209239122492607854484791560143399080735365584585286581534273709024970886911912276538954757422573190232684346784828922181329825327852267949395274153798077612901513101040077757440228988659299159039220044525108999595970038861262575464509384578634774886197562202549838339789144147283349159032625182479743617444409743625135749506062598161531492270700421861444164094652654393429087294738689570684868177643862828676463677673489759326220830215383221058343257289755313342323564069168094379421304897587521302611925447745136758241022488660093458996425766866926283700907214748137423806816205279027876750536807859529694943439430078572551407435982366587270684397071521126599352595240853441627307852904112769379879518096103836959798010208372603552578234212418095712681617717019695043393423982463400640103512866104742170652121478745892380436574025348386519114663388713189511911254823194855747952086914081739298080916122899441839448113798390922191364726960391025489653014932132030997968658676655416355724695530901137804321566090699433453562810301784561587848307294889086739237034716098499320200391504996680043792109943733651715839374306309218758630924831916037875829759808659499853667165074012192773078832227819653448180341947996906048796109171902363498306116526854131402553734254516211971643007165545331876432115026273662972189869576203965713964135949189744758384285445666819978822876053310821606515243981254513038793900192753582103502752861465493155993135920878396315997618534326733570413793425126202805350303163653764480468723364842228219723594309199500891743695737127351307816184163705774200701872030310474280833837092958903945415845589009293690701628127685924535719180790765203086594207757465016636530022649992947228864030125352645547641895230738647668732543683464446838128859187290176876742693469351157128103658885642918628141842458983538399044064830061726451611040715741490214400027752520908324615575773827897294455400264286548831820188596612558532021431866797536847156057498556924099823959677713760138305570366167182878628617367217880448816739462028292479867562395107060600005877121974044434528542261845004787775585003023189901243227034866819277739168067091974896141368921976021760968689897523099986540971803430367345238640985454335872584995283800544771678733578456440431369722042378910777453475201605201204789858655469586451923776256841138483307531607945828182810850305524126806717426941658775296558593095241703789502869210203675647304392794426835648420638858560088561842747861063219341358622526846311187928025489433207766848781080553556457961439967536019617318077895147773065760775483802911210076948946954562070010218998663400749028841672820452973285921249628537618914053492896876236890965407736953286415221119031365603748553215095699157862948569038745681621739379596732968056878413408230253706495409450739196575914015372495051402007002974507936103890186478224847996368663924884863093010122341441381289548337587645361798357599712372051984950177719182245732240414099026629823518381256222892165210587209404611461124127679197209232049433754191786572794441874435929169760743480586358336255480264616132512352385036924112581393814817202981817009132014894554127763258109931868763410610066481932091128448756109560708069032133357919701078913255010017781160561810569773487339529675961954778122460571929564838664502539658721270506613768974464035853442762009984084557018486384538960047596389830406041749657319095018844372714942655395345455077716246011567744415597179711860409838754156622889362722781399150788693378979649569036558046263544219315753697135316221178883382441639806830861209671446631528306572146008381388186086473912567309334603479767071803399136297077436765944231516461008832899579179779933694440363904980556627883871990856262653802904120173573625666091916462729185735227169704926495937245631380552836942727893525353911752380643453357762401716004322862504061597715927714127820091946642664807888146103481968222479338427346458125950310545665454384197049817867591912209328249067542861336294663565201012480107990689963648606812742582088253628463171434864203553272091757140649801167977895826588106177556768250295428446044567836998706807273167044430806302922157364481152826402112397125078026032549071053794789403869871573068203912642724489869329485837615132451040652309952705538763259875742652063076805785531534256842982573049229146655990439883198568297564247829494007250805254878613743006440321038432390541318864161750429164176481810304055744127564899607932770737971817762284692601768692874424647707824100379917035690728460134478835420458026583432373559216231903842276197341093829113656804883154937386744369456984523379492383868581789928388832499969121873452580340954367803281348685568593190837246894868704676300844080004581128835074560379130984322793769547165311271850311978726899172791369670562433944845480635033451122047560700443184974969415414928156197405010896612323256156935625734522089959807982312688650671916861188300282287190627836026579155473984691299801571911323789706577962508467601618831939405755157925392305442442329763372659862482639064762582710568260475547401862860173642758754915605472476092204103861195895442889816852645912380798617529604776294922195222934555977458324183615842301534667788398101811098815956188821734388873245356404510777173460851404949090219111064125370146467799800377269370917057362837576161131880740197839875515719940952543927645164968322278505392908796877599968103974499229981311771880777177161299505367758600386491228215112955261455783446746202099655646133784531372969905006890922735471810584692907954244635605469741834912524700336864232500952387307753440149200019370163793061053366670145576519568818348025926029119718497722492323816555364839731647535150621536336433966054632342001402222609983020542651608829065916499232994880997185974626901438453601712991900848456276383828873973768425825020462647483737902277655832512006806023406697596797932277653346529425439041095043161933722808899467720050158017808787296029021748328017255245550857265565389899805669713650643695772693620991297186802816430606993935812290134967247371526329101236742468156105773121807860875932494742346652254876569518030184224373363583533619143496904629778715588657496425802551568548495520036900498837303134307813878733616365403304179800285585418068134650443650070109447130312582334375905726496531826230742017039529849180105974125682030127300229516270146803738919749000936793949479424335499484159876966556701520204365000514567930944064781950943861678807434432272703538355314360833107738480767052304973304325012433304019157919568439326430696073885038972560505953746483266971184723737339224097143543578895283606571021608351772651536734806346934785957774363527658582839409836608050329973534098378353280484938578154088804877148752397039940920183646682840246885623904255142695142289352677224557519671148911910023528046919141602624530435994221753415050151295839433536680016117552790165921193147674184560751436960209444822760035756116135140547946956530770443348775887387078938666669155670839518782592390534130137060567806131715273376213302936978086493140159301843087099171099973532697031946701360593116225585823604471404932658858678543906625882944977443436202580648471340726743380434699867769729242258835158180772301387783153810942092308691792652357479647002397348390257063050703296590156524293265404465181035026141914426760864377675721094662274171629248935491748623197201862997067910729370524468447519747631796101565033947200245696602508225357314580401512205571401402716005126756605278170562182736394985353827106843738008787385311686247023402786880762965173763504009960032843453354244999116419466813002643511671795372811185872118018402554441245911782217690547895663359275645802829338917225638132219304495173651686526503767157955534055686773474295405547401369850004390826560073689628699553695393931769460458919911388037792226509647864149079843403056035240471661103792268936794103317832267075539010572332377847666088597210414354987446586417404254178309134338309996464335578604701702078064145647019249680276295505640449749447513128708880206089805575552673436782362301974880672464375588225716265736897217062062374640660660561859011051523585598073932577275754500181511063115215309110703307519693892773384892936980671429925760170223722892101433103531725679032735327426919094051699492658770722968891272005412965921103469992663833572934784655643542989022812277805703613034120481663503994001973526697177587683961626182808630658219777485423826035666124698839501589217200677485637595734093176729110150882988718459327862331988495145313660131137710603545037463561207618919390836284087904266407711666598172979284779693842185433430645353610439879216442069608972213417102568670366478968659326959688820831226837170165622689628378148644381392465198435655717892485439326539789198558415998351737476455687229062156939184328169408967385212940240595757416442238946052106018399077751428492058793696073957937635493265650948652173335422254030452868018331110866204691339518862033518056418657986880993094060124118465643740781067571178742621843852788815529923030731493484199157409896963888085768792140142169698551972020442994386345727374794421220837172526041017453560473352577397258027249074021145861151804048338608060662839989683766489680281019744887495592282717034177302217663305642272972163658670939115255347460117165076470697402330638265797783177212126259974912099525440458319906153749208517813013325011660671130524583409024513855512556262106185438397131060745731427982398531283840568455861854816618237347887343539713480840865740352661659424930598298565118797115467491956211912643680573855910631336127851796932944676166677747531260274586583782905016101060986831831298422895193833511699877156182452003554513229252067878791298688615553078756624424000434250489762526380771068944112894497670593274799189408018169675498383183973239646678155318811840399921985625595352663619866660682951918809039412757288470931388518926622445070336514071741139571196813246084108456334853813183418432450016820747813094860104343417470824997849491329602293334849302265703358440719181912260164480919225367743743677116886767509268256586051540377723396394372949757743007290079604770771914622125245477578608707813883882624401903256036505794440767950150791656731806785161669237034001711123378321627598700299696825149328964178907554344783023854570870819044631680272315116292776058651946586520865692221078929345789928478305075973368893512838764341050926187904121242634818869400584851940880784855891123732755764862890388910922077499068778096852161259888993576573005832976242784581014772264919183995840803739399698984491580496364224554999618332646123624341759992521345119502703557269408269286258211608410041528245892386882681434100657200665533967278812645355712427197912796722378151586322756361062457593577278148804910743725581049617912766187241292330393297940854696249224012505967962497165234489893651339279713614082757504570663017575002381400196310532533680133473395811429877474252242411756204958470519893738166815029484462499390999158253302913192306799611886172137704482824552208595853185810978381077383631224162836878860570978678157662182414896685412458137064566409981049439446187387786567512428729278716111140767678055807511231356707424581212621321197648225062327026864813545079463682910449441320998132836217165355730842737457295810884226483768126452504676989787158773525161721159508048498388589667876477970844947441896120583045197603896114075779385116415698321020794411307011074786335183117321106867562289585812719788266150649370196772559203672715669924904049861336153282715708294970088321513951245829956234889437967775237814979338850547480976914013875753550414019842141260360892625287594183816176788771524910251297029477972192749515338590173383162708564784129775334831724407034904683687558316181398467664390554679730902138297699354611742195340780482595522744009065408920483300562264854083810716820802451587066010548801160908354930753790675873232978886431718169178742894519395214303191383550187380326039581838978159897483500253580386971929994249878039092964422661262060460291590909699292843352605621608847868120415784147567238488705913137839980167792884407571328947883441622817240683202421956628859942665849990976637566336053766518617277790324701933438705554684211173654721352861268300213872571225585530648574380571832198341540634521169768254618901553671743261740059849046349467778406457640236087693537667294284777800211780462553589231895763598342783883531056271697550239755947046143503269976836915928961971195769700556896026708730042760157198366742865504908410132859952976537072677311290382175282515002883366751124670441305998398599606213854317479802538444591409422997570555587619027795686829664670263326568705583235882149163793289254027560156004508989966047292401359425210962749527838084505257860708320189261311483991788404325161888186498872396139215144348769324388476305226372747710303969426648544512029952621998003483296480846658463763072636931388580824270102437750765988191201488743150537666738469313074962711822334223504878166407246239117661180101500739290986963451149576668972477588371716107664240684351803516029102848171310440185655554123290153151685251083409572615812557304301150322441334216324703058375639235632384445518431640104462694467641481871930949272442442552711830734859571965183421977479879652010060400577827200433333773579692447622989814888847613555048650452949222719279352690278546302005780386162870429862868869657292299930866526578621256006242005053334848462590886144410431165225383355465847857103160344291485568609623591974192679178551429285564252639641370851096484280475086449587333049624903709584791784978697780560103169842608286252718104894350594316976991885052431443991511599997294669290241845805441235871764282001589660108128932895667021080813173371518487055276003515985361080150063974930919899132683740869510211619385358264123433954200998594813656178655628282961520048864757283456573608286799244017166085084473155738801878654390427239544817285009877060497514817600258413619614316130245866297193663082882614346303405672868848244900002313447078400310623956679695785459151629986015849366344970854469688277971686699499544398823637837504261729737332434084418994630629107061232067089656505546298693962517291373203180498443283346768551038521856510265013500323249669354370844626774215079523016905169574236337964288627587426472735905398703562053044261558757056882999516776276755573195742967855397758869289468681071329265883234107812105635349817909556869617398491766578728074750870675202125556181229661568046344158293976959090220564926082416847130546143619247846007836974951295912943039378526754386203924320438482970524975119792955866414532469820203809640718327194201344717091120404109019120201037267428566493500273690677418752925600213474417042646477584843782809084198614729156286383812904767993037216616821946565089860852274648455479292307697077022625400462358963943426790506089710843852999978406628913396711092067091867146865878973538201128103512020224565475837735467291305624010040853159237964674386435821438967823982790785987083065693624657956756400255282951698717757004363098441320232698984301505337656632905149147955321363441364522281610274870816340123724929358860539794727717198742938577880181488056365229613203322686150174376677732240824845883250505346396145714939639934340285067050060519438964205717341900236718755044450118146540611499150075550945372317365263490864136955710136532370255201083771549498826464298731019095430651118072697610860375825898108605734889634511704439464709008137599905330085974328404566092424812536981190446677381658070021893534158108992705839014911592620631390895555136186565465797948003020722908155228465841380626028914658794088495374315031840742381661792014794400323447408374897779936572325814871375662778528634864122265824060387303209725069745380134262405075334975478561190324359485532714705617923036809292348367131300450711695114129690055148254930593908446323883439195527025032504824781827767936373289949196702795443396639216812541658143104468151237250668628504549756857417294478525069785372349969177301630674677555344994040625855244936675846909309411774765985131502430126415236755572736312828048697963891148043033681863452082370360781318774435590154358556645524529095539328516644924349059543724125976568709248120174549884745343736437908636715974922037099869171037808309640222908546883678610732937144609635876630411487609178580335528047854543664999844555897627938219004933876857059881477968912757737549084881195026013652141128687123248595296739301428145287615666341678194565997002301432228651679850072033404293759181667444665627972274499918417289698989084165607111851695885087978973255521917525759208104420221221719009986029107060530291049061857171589990241361117382717887789421005066071211072537200182680404279228738451847254537253866185951370363791186036999255454448204996318012167036146664292405704726568442737187714194376865718786379210801229131107539145559169050821527676574087960337831249246124641619013929651792299555296300440797530059735521634292912944945391157415485658462221551565423348353737558830287089980667479113741937497196104573280404216480781847157829124716746977197431830270025832940524512295478530775306315126265729385776586010716539391397078198543712276413251819656909227729480881122940023718956688836460807970941399230458430662845763322454277277923520665337686196973843427793632903245218372651492771438765233257899879306722580579968780379110689875193686694542836116438520838974504831109050502000466764481560896927166813392771492701363080808001392219482565886652600460881658543726304947208686733250858587496406242647343575540332628937632022627604316987406216493575796818604984918113497841927360097480871664017432295364142879165368125270877182914071798927545112563646813327428202537706124601755164608891734655461847710606635590053807115088598258925613775255436289698324070983249352463726418448620016521872827730144020746259687834875559489629739262962119582890168504918863073805186019164226934089788987776737838025831143577203510974677383609199124775040478870332485464248879823202187770949519668945325931889340120449993084287101202033525605179039006288876468635233072851251426070090471883663568083675542225101881910516081707605475424473032666693560162781635636050403776364844010466871207484403639152639640903441889140816976922224888994918867763317275906944698847104552438958479073568085728986439208067289141100265125608806368132133074291854811003967525541073860678643057074259304748649254663908747978032738823272464933779431845950142346016345089925825606339893790158982903451913615942405350040663092176046450100097528182814731204852506671748950454732797054857218889114578891459029397037321201481960687609493071361540096229917940659197150197737982554647830560780082355850797081755976726382672362973708373351898302445941368475428202606349338305842612101669544179259784900773092164886791319140930241603890189352843110613870582294363897359474965225326471549959576378938870752564825305343526167608493164571861175027202942097370725249023741188190135333507806244191091193309304997181544188525080030574991398692347786637568470980515260358436357506801208306609615004327112162105505337450854443064567229587421581721094045770641984327162548539469333849549984871157268456940379059706668004969959129557076933092038897831183320263065575807271806738944883555678149051319951042980703804543261617597350194465554049811792696929255609911284467117114481483274668407565604909774177863604035185560200435060622578739516523215137855939530893228842050846813409788750708781410180642697674712700561245921897412047620356447696292997506323751061414329566630764935563398532672719713618675864659288666440760003039468156996890095211914413901167802758424282862414795501606754678799664520211336634489545279337671902321112757605339979212872874674065864947681637507310284846186852637414112036019093065236912134284707583162958410642762925311558787204299013622894993165137757468132494734360802936885515726026603723852035300732315057446819095021013067043201587314192099450055481940936207596312151125981818213628020613985752796188467121120911395764542330161513270329638829471453650994726350967774872384839258932457357380497408740711488591451296816920695244478318923768841428758037854984727960926730341474701705467624519545065631055282489493106161845197619050198480091426893267797816913882283028156768172765323468599517824139286317464642414036071965160172545685691269108020035170451511510408418705024603234771406571913468838786679204425487100352056467422668865137467859146366657185415502113646635222743088367559583138150656514926444924670201916975010256622363419487128024690208751530405354563091381534605342742907339322689250834294880448503083966548746578481238842641237886192174218117999407680446765027340023393781492301411683396762627656237378759102591387570683202257648757549068183248922001881267134759057522433277779288220162622225442636681800383462900409424069406436858749430107873081600953548147136274742388778418846022680599620614081776333446705867618813613807297954940597488432046285510882666546669279917367252721530278447610274854315755304882138210893702788131113020292151085852393408008666526515087672733437821221537144987606912104086041150796050239186089473929653916351580593424160774198374186675183707047640912073481638519015502998266971861140619560768110867378924940647207070254739728260342905689156762841071975262640087387864633784669195990837061356893828169084892006149482065909427380263789376575724806929584342475666219440483843129635273670145516975513813315589000745528797310734200918986179569401245603074878477517825319125384852844827256146196771757753261021818665842085192695707990804650846568397621804294320881576980162664378852483570529631014533625986675703177346318885452733359751708714585754689852647795848526570841207172635593455919516177782432602600351103309361348739959334497725657193143470159811372393000534428990321895347059957955216851823562225262326481687099654905570891181291315536099161397065957528054176657043642219543296741957570973063265788102253903022819048389833675331395894238443781259820608531628642032906686923463303900361532237239954854204840371393291407524123686068710194300015257321670942758548516840990800029298823750451338185949156123828578589557507358358142430130123314204898879494399534947155280562921201388276005762744877811757261575543656774709398218602917765347397459822726101821393919088121158363057269161078306032393964941466922039497750641481143218900957366870832122078762707900110933035732460911029211497130551926162372372914155012716809615241395713967942608636870374559741236369953436733478146733722096209993058324253970318296862081686077112779260872383497465015684345982110081437863361924207327602982213760676107703401862972512034423104231771398108066855094817578183533671353756600511999561797634554706113758797091531007124971048235259170485888331034392606725161082037907510742517624420948310915318632416834026327841860955307590917270900013512453902534440964417300073043825249844050331669873320259389149560244577070775694823756007551495812296519247057390281708319929104862091509740574655381894649986032653838663081676911407168303213358321281570843112087275833060074281744169814885396579122396430048479478122997207160829203015926845425448061094009392019482269586592560875972992274137297963341755334108406694237139052392130589105159227506766586849292234894761105236545169764264201136876864729920472886113140313466844317599262825782346523672901575167428771984951941498561474736309049330781838231010063506548427127301861408278610760665327888887600379691507132500377776712583490378498991160083074843941080392218813616554691349969688659987050444804828830393460123493821390408940803463605534949592908786078476280457996524546768205135680464954349711264405780796819123570423910818857940340180453051866117883619177560662387365747029343472209810916802950895908236322250741787904362815694265297109473336563318676820287426385804664151852173286049217042530111545782714629158924104401828625576534089136142373233678867879827457803779489060369765446125977686698614374365238390261618368314551843409567477877403649000348257746658501976710594871997609048343758491772369713745425194294467581542755295856814473740912670518362647785675890975706959434532292146927760058973394850805263100047984764822862678817779462077869227656703222125094710835982721773314120403302075794363598022333409146733322148821965106593281004183108350199384702709719036287572154534267615637580592217643129430651831444686519670931687776007929576522341180009328883929457373325150222948606129916994812220626241540637703998185308217831219766839132969192684335203051563816566118983490959582333456400007486728285271097512799717062991051475801538656837209274414491117817166978095363356679787906854712574447042564156715180658640869926198702302436738841800514642084468846142254733380080279712281416146610440497381587232592130412283447204153123742088557715542313643003254934521103716476984626132857358402114089710316626419300673136612298759183508245817864974657740926298418800623782773688167638535463556081142707494170868840058827398334678260028749856538568816083168311213308583020141551200162272962948465722525054573465963731055407708546788331955823510001777192499910721161561176531249266226102082500456513282560349595390531232100664366162493186489410045032206095541457439138129772150631350002115811860663009010592077853024329144672799807865470650865027623945022220817056802785249342417492233460069829301247426592144732888356252502910486064510339066506174941017683276283429151663144305539339698553007429210162365646583957780648225055457487386121505594331601469779787169697608388646189630878858808907209644720137187399409321887289506371726002538310145575118143817185017323918778325073174690302514100337824322489534516407211740808191347002602100889497237093710234253801646814254090273683057990709642886395278169589689346048641104127673231500857674711486313444689663809184756615602922253914925846786189613024805902546653184129567153543922126383201379516123542974215105826188855400846757219471837484639606232297509942631289217714170075781710848342852163879658494787787429606283253939287808116770585459943712448711169341803971671293021277798226142088440223330295815297149444646373153690826572175896180649746823886509099813655367290777550452824512722742263160936086379669674542239279374503645991620572495765397674443331275585419978761863148976364500817273101739676167581432076447451664540584514368155465607358358617373821681839946332620017894950984437824100300804119187653611048599421309920076708145729359883045410142881150317919536186293654421009151096970163422278722770528842639779218438171301015558805603276900027313474613812961068611858158319748226863319806392302211868987685819128673620859206684842516711547290798265002366624242242895175532993023524234021169127042674988752772930087182656219289004564329138178068841487592491154670195774046225134523846068240836446116895856244012712285115522918713222738149324005590300936005326048663193013709915997834218863363421655012572362416229112711626832727098392043119286302400858417655878159840488795773021468722078751707836599931511898919483890404357729841102653490690568095657740415709967231852876773483073573334557599373182230602513646691804106102986345637960439731120267565148423161413072172266661320472271980476217643858544753880480654482731495737026973042660845266675821713383434282929198831517426903253690713404656486754853999930373730204362554043048061451385687497795304372913284865323106986299922352403182868117885774538165240805013827269128979697454517071588293346877170626189722210496068873671954855714080153742198510684454598097191530005087886657739831084209794334677136897044242472435114403842044969969635544641388785233151342082114656931280009785566348515635228942269260795527710586195566000194275971435094614225832610711289151648770115822835093638320079368965047696273959415722596684079917665326361557584499594784243306719581934518334857546127618892309542641452530036559451728341173815097274807034912969219084526914057232445146873544260896514038035413766330326812210884940853317902856673669974793055519186980736743056880463198405587396845802863213709115421627690970217160129918801133760858629568479782741133282121965218720080196580473281694526498795588050560628796639501879762893888610852840755700633784717149301693658682762452159447204829424380135021458462430411074704622076741589324164624869111857768180679091992594837123271607445866031889958644789816717795554319132487795116869455713646973146242446194360358953691725446577013259983200428603274978368267282482168468844853019290023077374277849831829193259311010345854958224482271313776333001252990616868593696635246579082526231160797485759344841440053093203629682242177555346699979285828875313778978511900558767575000662084507766175780682516102011772964104865750974942898375467815024566022591277304918164503346633142467282057496499973321777174345520995958167559371873260532178442129702624535045528573052588810215357912641597952348415991932939936713202791743288309062264071764757411425160290970614072488393500394206303263710086704889227880025176495817487510876999510173463931142368074427224383838109119001131667416798253554265775887127173290651524739787532421067195145809276410665486613002599284162337572534749437001154317401174796834157401872908041144819486090005813066164513918284970746509839406983037041363881060180372776072033039516875830557207720011952107831164313461216370894507325079220924998802881267365730529596620526155715685986301647619224776253117687813827452704018977920028222677378859903922470803960714424206485740178293834382951513431448611058397248303932409328120478786644279708490272247897434340756913734672456499664981242390668841310188539185582211569931153700135449783953212545479145214964813309468250309233087657377714368103590948996463792012391152672267813690063992714277013945062324594457084810957216950036821165527417397841998422373511885861168417701267118497001443726742146744204567150064822907505937472888434400005665975148685090534615036306909051823614963868408831976221994939566327446438479146212038746072906553494259311105030571175800605815225222178489498164192937716734785134227102270774849527237772993274785465244881525285468794447395367369484127490545738589443722118275148686630546147979712217003347985499659121689725979279984492620331081769013073318269199918970170257739030108969462149161714204636451685596109995117625363306240064199867528780430867164468662606662456723954415496944263958464631112780055278284041044998459436068938889592085146454033045285180881430149255492237205606777157427298947477904090538005963352775031370383731769390381525565797191064087361933204880802521078109062998882412097657358629231750179824410371738493537007482265470350409809057306898130248122863065162490307907194149273181003000108338216942917046146576983561310101889029028650354130150757518917051488649553349132708327603476541145600190694274201097325889756494648215910045439585672826841102675815813209865885248665412655608148438087406486254605368746052103757735519313420801988245946398442097661874101696329230481546577079303542230735288999114872961110138721227696823839641585362851479169504414809207477301222146239717113054635797232237205639451025208112234262133529054909996204567447211885817447444241197310799013065091374975642355151067760708358950475889435577873522469947302158197088138150396415606548908998604270888436445274911679655914499952167456413793651712227013273709195653307959367688340023344454296197658136187534190691025466294925301193814563116274094143707691218657468083191132553359204041381864838128777414017017711189787759664168567530910478708120676219051598206985562142448063295195866231190411733798607371319118749187586910173450366621197325352838501562261813807598152643804920750882298973379592146992028953769839383697817570640660473101661721697309345340618790841794899565958018469758811589033719977424753115157473896909037388579799391207701223493626837136995989814145728363196484231372986300356015028049648376792571395561280114091421530709560713767670287737231329922309080146701985285829400091025977436929051352298293421583437242413105401526409222075054461436393307517503260146001989233167843276755953813475079773521233292825815512237051052615848730115480799058067939417408369458704300396622593432827020435181110192252038053855338531058980007292818575307067514745948113591319948151066319596988826567467635268221810206136620181797088010155315685707759471295160853739530207361371374876415897576394461060149135866232498263974524890360709921074681325558063768820828144939957066139088506427194207384762104602494078140349723111581781422011067735561473297554047551058311142896594359012556140781857272233367078234775129110461690560023218337248553174801311797257269564356547318808287833179655359638774473532175876630155417291181772101648418103807969693405707873577753657772480925114342357449074625891303848113511040577511760805698579659256099210596319171267547461612575594144373195713183064035529804283986643627380531632343993111193682418973798295769878674417322922817580157494227400168891206218543752930904653492939899769952151736335110242455948498687106580238129034620533762989497488752743526521065500555473102631685526961996432731023261254604206003108617485575055439929371083870791483886538631030768634945039376291059585382493912687825291899990857237369313603473047598490859116513421685270447476229091638427685388566884187044925482810227351535534745522664597002590862624487289080022247780264827737936868956180105591015979980670051054249072848260741972574836267182175856971975034204053860115887525978437753144166134976109525128630384418559599764158911591351769177375913050204793298800229282955801932774542423812937666963115617269847835806625556815420456949729551803159201584986767259395195123398319639666911857634330799006498110258872518834338197484985188814802238891757155956108153444227027542521291753149972840905814594877068441075266608018955227573962197706521953726069974935180222372258053100415750606315659839074768941508079441316849597423166535145333899490908620434693422092203693627824692183981930897580240772583801302610356004921787053472999648494731341053281357394928306857366036329616546819954509081691852574125722889361045238044313634996719243030864144730592797870656497767704642962365251493879778775343260830938102167864127847389004046021021925637209898089668343250336212939649683312991226777829403735464349916274443400106679049931664342401132374865874553577919821354681611397760522611777437656044408099468257803708115761408402015548641227371388208280090240489362358116646026953933719433238613536626884112519075927442195724285223348795066085298705002621876475956305911294431789756767955660818480028390285562650602494240904431128829216673631889699088227622842605020025254267188123246647795160968658889117033510260742125282307227991897793184404558769941769849032968134608086462717795109878233949967924045978306313310398637695221346461895843591493629326124773455638934580955071802628914855946402144087291356546225657242837594994592886830451497077409368878906355510330730227697350109762585983777226762483211888783086610919914025717043399696316984900129815264456037108901965898279723781211372349338818377881929399084505455079662467242565239503540716018804107076775009722199572195005521378312220867369364048329997875799729175305118180887893917058983387837275624308061840114461800217028571686058683444943313196934870905569174579590100274831417349990021928921141686773301019014678466522178312430524374323599079067829305951663557231102115270101293053060459700986532233336175696459304855489025651828605430718036484804681211440136942998328328483870654664427403109532498307864459997919345595691590629006978653428434002210509616241322164738466004487938917618965875065926159662919348613662411782963174995369704267364844256815864256766466122283060690154522493942904296793860318132947494173161597996220840998535098527297908820591919120267235573735549231085550629724652049281627691719223138470910039711296586533743913585687791191559229868501841596847202705115026759553266242668625909975542109700778935034825386379259650760101505767215224291322238196267909493762736296353784388260494255509026668222508967402190793859265285762150540181860985168177116845025365854888966388753101196195048545657333683194410316344686320867173387649302506280964499703119643911247014919765607019732854265845352431097860378265377530794895440648468714405989942596832761154650878420002480978761797511903598744380501318861028491119180513713677213438438920645147854570020764645176355965243153317391894904032427111778287007125240454105559858952102948769341687020251833767637203937207451642247902600587043532788451788104827463251450188252372581677166324305420804497915039631827385360983693618118066890536934131896743327210882378791293876819734545293462804382070101760496570664496965772516983651925902303581299150709309648768490282157999167973930572309972413516987421234642893382937508223001254577498850873131046017340434529467733361443498106838304430333071838054308358694078792789959133511702047657267277001510233322958663417847451364790105559227592999211204587090163287234113250994224913966904539847887061713914550725373653087028603174710321378038730435443394041010523195588287509848626735899744563584330598576688054811711095428359208082207591615100989185064931355624521796609551315405660083461870736646839121127806798676914108058334362002860167873967507759307343031845742998134002675212643208817432619532413594091858491568431816335033478586953381353365996384662853721451477639767422688339605987980554985608460933377831584599346319009769668518829808881049099766982171648791873216632221601825733077562490627436245146759789090834803851363771620583235025681892724884818140917621004665555532490961897252305111239751225850224447211128384909475510298332892360266677293028784206642455485723575796103839688399154313274420634676454750914423054995010420649883640459808452329835637761617787089687817213334840735309903952727340645163844992548566976375024862953973932379975643233197525285898942786695058570783260252582532638468618144318517987894765768785603987652329977515638689189421492304005566718463770132764519667480515499698792507142314762798277912176476566524805239433485679715544997135826549586765904738721590654670538898157098990863049018593229392169212807784088379048278225672785164789745024353407597977442909540203951073099946947275797349979051458104929593462685035004453488435774736739681197573488261665674825393812190581717281575312728731092899319278414314054659441163654242447856188945266117247790605564958952405474900023359487167688754580016831584408973280042661071850185510641360517703749079763937846351023005603518410723780513508516199754365597613194192970421326069739599089566433082710452873793511328793866669244467654649926549002926735265820114264075522505555274626159949646018150129100010741084481264843372342251403650795344280183555790293330732683627855393088651332892897986439855150303628873285224340579840667049614270291889782138350092505741738245878824296663707400026087753150476939622958049591491476188483343919620954013372126991028502962501728671651290511704626334242054313389332397968935271548452986999965285631575856882002356749059856694288743008032566704387651849751124984119303274994090455947097815205902114344219436875703963407127673810113006182182153645525051529629512401271637301973577068733312377122532798853624759116885608098288295981025001881268361704026486785004599664523982885447929227500024728472826071374703431642895091138747454365426028143262730690662272185043980543228368429610335326794132065455161456671822340937257838858193136957090986840328055676669736814278180752467995893423511411294122123384694291187508313768302635862308285976043292187244047670418325751668073906343964089274322987947608272909863810450999058444437931742206574424954774127815253240332141607200482622027575568810693525891620123004277639694583248238935436612283206170184996401235067892792152296617358035431912507378915216506404648646540211956393158107458600229591996214387012584330494655821038332771985338542315555739225146070739543591997663214417552889482180448696603277784279332131237359299594851104539734098040449812085140691183464846161984231934019398536478680947267214902346214703277508884659820872995459925647350871300423962101941442761607011283385209657700736016045830562113879017699514450451416036200727740158076775257575904486439587429204021162537407658123667060456228278130224879795565598291547251979326466389774409224893380859659291286835166257684253365808641217275840683214878867431696601051635735325477337125280063188885455398096364327356780286293372636829046854255547617556292557490707511312558762857262126196247092904486789795962488366705634658102914745089668784670437074898965431322782186282785643061478993614887185211003723154264064794870885389423906157446109353559684418338031729069639039981430144526101278204394616478832424686959352836400049426965271904921893008310984894558143649642730825084154209151670052196856591320772182310593829635581345234639024598268686781912632344723492063953882897398463563898874828128964580801230519795100963874380059258297316272980408784405402317635486019338315279624230272384003063558601206218656133479052662571271504441594109554667635423887285378733064327534912024588804830055695539591991659356117093534249030394319815155342933344322122780515084071534784683021509674235894319633858075260389287714290172502768659371710399881367704548561899637578818553466055641557686007944185542646066403880054706728270200134603450844779116202842958993914520878020100887857260454467604965347203860135222501415695351764256870269227163653986415283107499255000653253988662823852097759025981984504947011759292589976729630930683812598018532191412483640008849629320894300649228452302079617375904719333065186706753644584565192417588037451954766481755968632673406933357150560016178395361966798115564631220175652290399125091359870593835251534303585222533798814563912950003893684423792893532696875251918559886764195234258621665468278978258017337759304427148657389313272383236001400290141514416288679784558814544159843755532623268566642937570049316919647992221809557293307296748934489992461379515928252762839357739842377631933985669984358127606648956584697011102534325310078635027232731549280552750482099490837316796882917864660722514399105749859951948798408440104640328865994655458929888550558780350419469830915054845983177878091528345719452637484051941122809410751058097649095505308421106545027561368124665502493785552866930984936571904991986228063634812076633124203219420735788444212781103398800102605520181120157028136633505265374793831764769630330682344888247588576243420266908014916923496258881823723464311159409739553644531232711582915119998988128491564815425215421531426719494102054576090535907710028968758178637462744046857311908082638561678789999831247858854361082747779826952430450294298872638756067404863979237319635050315897385657299811110377270604123136374053577009117076397280783235825797734643012262598861378969790266305352809320642298576510377042508264432800112840465998236809969901702723919045915289101061894463753120787856631876549533706474690578140810302872222638568771169411098808536628968846045281290670683694515835034751805258424383211690553493125614546471671529344874159696210732372049497656465834546831989636195047793394689641299592603829396271388248819408321555640625758651418504966285575428544069779092712940732508345464359445671846466699427777772677446794568918243970202632047642028123312096086372285865914135425830226588208069064422647527602036649724733470073668223033891374201522355633321336818366373527585492021459256211431738553471685879601009980124643851073144949285240656213732283267344811497908799334706051307876362385594723211290370597535132964559943832194508095661445023910540846458130513675027250214372010517034927085367931460691326073568137022955768545240729606215016674689604782373500323586354191132540050178128939350220947906088647038136901886421990729691166237843758477303557032469034153946073220484960980782660932967875225325174129095948301024494597942873973857232901578540615178885179273517932965478930152544714295172107862671493249058638179314639988875604379243596361067961108151948653952867723762197997614632379629988674692733699695945242455976567870842052906228794484936360998012578100389814607974379966030552529602217461487615826605433351089355877621242576046515810584325041748324931149031661427141453675650506371520361494620192855613840831002532092782441411645096447677532810786818564829253457526521259879765585347423993247652632652952180006173483446170369922518587095133147449089341023041582047219519313995634238274364803284743697011393615900086856147885163490625167577294857813523031959250797462894905980228283967717648819034400089984099294801311621126757012156060192725719522722326925631204644793517003957373117504078300577743177414745206673357966946353512698513664215791264258144630671546935995643095674965391640704104561212309089882017438676777164162758180359835746533101271237274476669377933321063647887400642455448160544304746095801542191868009640156780902414759101167335561619143343264292206736275278819418104849790161355991804141160211084566250048932799221496111472174297863326879339381434848861383905584081901189056053519681111503294851988579784737155470928556052147867897874682022412572402663531847359742453416749931718099790555164443404604955367763775335292356875844796903970687044377921760963081804609776927245672577081036724994649010700788415592353463363540323114210888880585241617309340914762175108030092341534161778379045327475669038214159910188194583998473434686203485298210450406230970557581459218826168474025016654460620228182202832039093704274284460496359669356367950372582357078127776236675410874796537716251096020792164429653965656072197913857538125268627256429258670726970391622147254395968119350702174789189076460907355341928056736392384551461399906325625598181981565764209094197897195128233632316708081874549531766673055672808024780231837660514631589645896166325535691410574774290574257699429156726741442473133407288535256569294939410009311404737036443716223121833645457233404464986862726321411648097083882911631251075620279175523132891375845311331497955162286418633353349184043518964117571460257128579042776550867159840794335791358279615034678286741420797872446357745059232201668650207006108714871576447137500660257921796656256075619006473005839585924354114227858977283465557007214804483652227866724351759437328877435008234840734454885787033358690515994764883963374314258705373968072733172182911881007203172249874659094311352993047827564375301267272878559931302898499689272442734213506372944333015996062535200199025089988093488345995734835778681937111521570413451978429111920349646729380334503558723928392115274670953323628516402041948058981605536370518232921725629591836595263128712301929828159169941823876704812778354615304405596097764451278805032590610588888002070679289148093405120182678550836240309019175321241160126866740055146110413433190085838294436939652114493104015314494913846871800178655514630208268336438145444622652770013948389937033894529504309699553081620869914998604375849572005533379211134266245182924557142778428139481956838923138130852408804682479201852211218084206079060815436281573695065770394033372655019076097706571960205285736473474758361008450550503164795195627957395905142441001902255888700877470143382155747306613216780548879657350352251402535516270839573733933442506968745428386212563514487317587522963901356409565911106784493033591436585877622183504002288746697857963429623019590199576747740788594108652360011453129448156937109335094770136241447465832322491381628301024856940636280296419400043243038831466179358232638455990050674312727886007642520492593793511558167445478561461326810064343688131606684920922193376360611853073148732436235597951449689075019631199120101606383159844505245463553879078578523192855311781173922060648195074639659815437806380565364962586842220378495759053938271756253154781760693429912252327404380352412191117878054981152480764815079837086561111771097433231956011087989065231303667224702326279671155627389957899548252404689969986899237363859895406755508123910792688171555054217681280588315888400566876451577732677543252344287388609286477952252424038892358609900854557163038851685653214258685728224054476168134891703312825344558733547575441218887170277589754649518026721784511237234815592223787567881942094628227595942520683404826925310879865762532155371385870558633018445616021831074734116449750334173049729670165977913117407488704629776488278417265808640658850313906517452303934838927457195759892431679975870866996287190516018715155253013494846407505035603842424073126936840802106881975706111019519675849672666222692078217320094023904998548339486250285118773331099016533592901421040936724312087823389634513474921243957936130301292761447687025244357058120498715189533427550631946267168216347411281359667252474808878503818035114152014148870130514979872845292097985476920246307813634968414576681697535689613858400212893044583595211483989715522417582478906024564818657411422126254414182066279872638237003349271236435401749774276090962501572746403212796579118909093680501404094691865883364411119364075606445323092342319233086501930721802315122875431326375126219971857640856920462780300462709176832221470592582279399127907513581180669744899142510424820355899144402261327918573188903438146206050424207736927142563901671892617598108184756009357367478208595937491806415188895118311489701664173843198800831227916574049549201735885759735950290719084972991207817603407156581624670020464308630052007767258965566562046009697487325386415091559289471944769340187607381600493393739712290249050074107491392563015115881979771846594225999515772914392939401808634366191916809996962201778957445426560582596412105843952741247174217825003453289988558828221404756622627980962809541486709581783787776208992948230147707263776558376027909448948718816435316967065375107081814214705477169725313072473360409036476852849285084164681117688925883847483663425375754875448685984417185559212202905299343772005197487862055207302221916470154959687843337921979429851140484672258428850891025437532945067844393349097439903725261097672112468577969611081069770373911693830014506270647362508189580775323717566078050872197237470162754402649377730641030749900380590081213839433524023899214888520130690562010266529055477830725553673164282500134176671618510431180403859302274824683687826639329184617133312794854092572975972046459928373469576362537763141743803506440463734317041872328019845221579372223843596297594995745922328607837349777197018461971099162056805899165188321781829948550432508551804116482324361111161374897501301536194561117542143874883562836986375963543089821991575957012370975285906220114244358874540010629381186819030186886966976964068241146294235233576184645510810182262461302859336110098803573984640713893278697639387396477279126416458107717768203758654940203463767550303828481373383483348797676440071616676897639519115410771273752460209562260787898462380768930484763811907682962552793377865805830915631057836773160856486206203663614776857279230356438297371093878574146648544619537069307853123523682821043878247827900813008157520484452578302476792522866619770148459529656048271732279200663888133821446620353203751176751507691175435953906553240126225211200175123408345210647976399164003044044240659912268779780469319706279796887428828417902887307748322167936499888587339211958991064584462363489106956622163197086537211479373825445908193356283902645742658865463783524040226365836921258592758184458879206369257062071102792701583376395040393981289375206339498305775552903071830724066147399479672837041094315747871120336639855212125652637487619247168806513369627460995827900545419793527569729482728235118028839297904432656771905342340362514656762663593808209069820222403888675368400644911137753465810725953233069592182441347921606049263803557613876107515869027477128340043108905610016178317458673649689508563940118033813416012087631386306764903067309002850720635976264950193408501320253663485641202338633566541710551271632737551258203887607946771491228199930891697396698594440749649113208225505830598101443113466113629481027289508549482799312678934050182796465956430030602118960764098054683180366293373105603150024802774881239845639609354047926576061834457359553568378322963260467450184623906713655864792715853399667818022586902059699693113199671116281134634357524178345038391438948217263712900919890838943540743493379881478345461562335509110422940853541701319810916567972334005926497979302715804121319337739384799668007785432084081561040501203340810229608502552252084329356735520823028316456334435014729457243998363558664155298993577333982117388221413262639693324184966867147459463344134394387314440151933730117402342366271612816628469393452623414457480777057406181152473599558052888890066826648254371678065522591150599057639746075654125393994207871775366759175208467692737926971066607702954246483563653144888542917600559127660691595180633397095260587064184144464934248524048243284156199374598204693956787539899687692497384630519749280808158042428685572667758435225241623643367137934273614647177628125676455952899829038165637900532047382876114901034697385564806585077586337767150579293518585931146516236539995479478413543682534558668202360048562750193757798746918802591409771335619836209636297147121051499326475696910180354422854501636053455035788963883554055530944780564871603906487397186164746540200127806284146399384524805713290024887628731096922159032112625286497255780599391367762721366140172888749557335320725475820226307218375654276920563625819228290639962929450106299322542614189991284052442072516803432727331550973550513518753207494164655724139161031816587053119298600705740870461803544637918260609437329774705820620004384501205676899184951531283449548191985644453442648060979569207657244209410393334245133073803603622949515625505145427438529211874573836422323040828796160779679047612358832767809252858688230343202526027668573826536863394267532847057512780673485073164305321445539291265328269060386375054104894838852232851423027960125452926607533350910309502602986086680675958644295880741106884646974994834655887792744283537605167331123712634575541323413794057708745895685878398317715098109100663604740417043358057548458624246979823519567227798440279674991305195551619517376900403523789872599209755096457188142624948714552590264847282271812906379778375923925602669770990452711882154820958541096045350500030434608818008848352814925674186217363303037261876262307341859023871586150123993043497884641952242625961286481707591379107064646120563904894066165995227806501586589113228329283496515627745913924789188594857762689739584198165550615388174821669493382448967522399783569339909778514507468613668573797400632208572420668924083803486328601324203297950497742191061689799627827663612773795076590803272002901487000529055057670537666279369869111900246041730987481810923175196583456016028355798719537620605485591931386479563026744076240631063613797789583316922700168405980091522550374405857577347836313266530158841557330849513877319516113794418533132184552123493812450864327215674035883012247971549687557535621387072131166613889668099790078336887332307069570116792988783047403283244689339740858921458739682231584239860157349716394247185355504433674390292055996913878909660313457564106620979230990823046208223221293050763127244092008015505323012346193204004079964661170203475029374233903954898350553399822215616933751100401700169221694765378956271811718270389653402328489042416140113822510512319508328998372831007770103862767828708539957568899045360643631527792269988776590497057989422278215740776041634824550965759033208787363094927607361205595605055849346476167819290778007595722367627562970782635710169539046764851162242347887930352506511728184516187582193926554235054504537543547344628397715145631477332688160044849092553166998138726665009641502357802105529636472351843162141678063830476143014082843900300857523455373217511181076769165163776262191036272941645100347072236114539246388934297461304532392087476446001236828433578548773248733561379897844429653176793931134209239376374002231617171838333173528538932868727257523351909462724952545524600824835359571801831810514142747172260546159707973827381526405584202192454839034714913369902611233245301402240125602199067350920437285424030651264992211204754925163590991097599498068800330064197104787933274026824749693771379550504949673351829035605737322812710535629694767653140615270214521645679340462664776985906654467390714659113377553378258502124440323657622247823483804463215209145130277700740582420742451683850264480479844431149085986838101780194227383963809653488623764321922426286097695478804160391185406322133171921425028298052724422000109785197285194813331886064113058495619188520878831203484101723719952932678401991838170147869541879602497037012292153970595202503610714639827659205867837662691738901552873036615935730276409438544113500712080788306394297895430407424630886190329766514564178519441244130622485620684048981530142277799499119172270876295292729556135236270881509445443531449661823233198805534554773118675642573176620125980300404038735395184158244080392088489445039369946244809308118136248938467965686420002793839341089863156320841981503348050280055978299399129972148294636450359929568192924175225847986196386500472888337906053948495234350423299533130263765900683573542407105017420439805728411132525887907602649249937498646444727488038438500553077838985272341075881494025878854767044400921284673756411323615111379998145854951318625193150918244454027284281256071887841266038724398153798922059323054405024747207590018307780909680390415089543514059451872006760211169388914424649065447015393974566012666863848717364180942438626703191547963424713047063756133189212025474849587702454065422183051609797245442930573626206844080403853677730909797175507024997233231754699704532282967267560604684687297769009556544054688209421357037917205211052600104906315194351712724244171622428185836017661708584466303901951857561009061638384015364835847079965737666107249907361864835461220942860789046694506779177639094720810485856241161673171515100780524576391939505030978561643903976197342304692216963751577795219617196807519243051607229041821922721403806651039500043478458009597260595890961337276839519417757253837328884336203355211065608542627234788880544928385610701708132059184688994175201040200799682338922802470095877127266450776115163037778358089947675125596349139594596045493179713856633182938463375160096486453693154936155695898125593969330467611791092016966149855327325282429732367441395370871913645480788750089405427470449447761589046028099833717181026186507758722635939466753983106855241832343409554235360841839216643749569537373485384694567594187014060163875299803481323528394536828692604776280591135833579897018843842137805474912954003194742435439371681061470130887864668879519409840021453138905157057063441450945708027975958098777248133852724519986844029951016388901504665263090982537484260771204204900942315440164386511215274952674142913360336199451433816956660984148188261238278254842008044087003115861276300398685696545923929550721935411077171814571246730084659774880212985118611360787271482268595629217890996738330676329002277394566231319403595265827442992070635580062359494347958549703272933644556755165676413241063727283255305655677607402637107309203906736136528993961971517312977511075850564322773113192614874623840412259186448882270862956245445312785785306419558997438698705751790162670914029562436931313619358833474746787133639282874378450703577462369443360251407166627853917585960508572828993691614904759592894690688031503997654999856373517502836206154544123187792120377593925066885380251203239194495087156231868468728591203703825898752288136215725772670691581263594826244384091928943222087634328958968231104992925218689316764861030662159648985870030072800212872773426799044133061425489099698885594829668005313249649784513277108749892284777749326839793199341319492707480045953264475456236164796609057613066328188336751495992712283616225028403531305671008620304417749262773895624271653528770035154809869694353299328174578640721069100067390452579942113267062331893446689778030834572644097065139087095050970044397768887816254473043976101851772626486680218993899615936893463068931895100978271403453218964045977198024937812417768796839932741154127703335894443572143141789958045978109850180630348015112210711048032556642417328170616281384907712516729097534521544641058731095043680131374261820509673464827772642305791777612993165681695584371879054590150041908335334532805756888178478634685063007602330825285507602160937181904711476930778220522456376747064308845219893158480890693506635548958260542740060178106752366547103524173763088796290084719833988606946206323530229510240507223578024305385006926263025963408644490145916982215742674139792869090286346122478677586553147410761892330893045549217024931601427216588019497404648652584810256753857302499823591553648922688342200797835668710168432164098347169820398556891143177449225312276471186587889500364588903705336910031833558405280540337119831671743825798181237458527623225573968639379809447788012245878177914000881046395066746065797741006651299734486275872140278926506744771533134235833747204313981391898236962030683742894631196813196627313961016841868239980362546722155310804939031152891068997932346917196362324529945160873345390419026277348653759861670610150688482611345839474836728348865742097513058330688478521059240085837132493207814994294635223293747420902012506099763551049347349922245048647117736260595104752531300063649130305787510995961731190088035061115492067111595937710964564735094530408240982037794243875655919885792691309352209256922941162359993342695097852024272813338725790297225451918220007311007650088879160898457478280446088658412273131858529549733667598872918001101207314012546412967528540161934527657705356702557907158750369118465812959167973567873821185258499446286577161175282783735341091527488454121038041630726550129696693862529853092847937193177329794047346048739454875035224319630821761204899346283981711248912969367183119248962732949981823282965446244476834987744656228246509535414594889784855524735032520665201136974723274482497282205779131932203582411943392710262142993438487971350276991237015748069862150336500932574485512409682990335138730993942454091847480490130758221193059878388127628786888568891018752544514109728952789327992325796241030128826112218651702556909790976335337692880616172579278358885077258027356701030198793589661893199207815870227264117357011940184335605085672461622677824847527531353512129889582425315646288055088417794053970204892781584892137491364673811835159976586402920902922617679670092866592614439366854071505185247867675060888884952361111040518344687942585767882537364574939730713914447067385558581553969430552628469440865889016658123999716225706271298549665102083461160028059406067952387511549232011085207202841673513854823189427653451448263053175527137355327658351826410189769346850064481785404412424425333800473095059254687604488226564210101135638182120197952020294940957436412198739819877452810168276832491701113111025558584200204405433424405892935797062661324348770351282922056591778733091041774767219975307040520019934103903871515607305189485798138252783097863986441166729062825030631744177416352538852782803852323520837515414869151192894788176020768149997356795623994916072987141923560584478363445512133971798438312200270077290474599021577031007580264860263116715091589946843740920331757661819090838780872257457628109417653066720010297113197464571266540211360967888488207629096577334263707824259530374403553620993616679621531487242135470797866791996460900041200549329840376753891856344575058342357517483329476736623903229044933904875979662700266977593032511812256102575807286998355277386045732732103413286743176042980571234519501432468828241229828277025564614361047006105118279072768331561148285620041815707608557104718064396841845740127708194984403568914006686934444916170595058682368266230519834040786685473369956129544421033493202010076930031097803714001386597842630286478312235458630518045078638806713548800438768256713199185452370269396521673183298390718357742591402171610671603787569691549022063016844833039041868468042473828347060726333413615441205414886275566809117263225080974707434636748979755605252263619578627961784310769038984181104624077806034631049263531961764174517849664675077953701663808191906075915451104563211354668037197740056584715544390192209999796772705784205409792100691274096544445054554418531472875858136530507742992968104191182540427160694756000062127042931445686061250504113378534678577668966492950604426278179056439177813901549112350378256499488082701904840172661733677696064774187918634628617752379913114771958738941847582061266916703191605573621291281715614731369794504168213239846579440292426379895751273922571212627479222516903935165431619197727580247772087857790722791242013466982186552391553895615699038261541828802136125141624227073566312314564176602444122630743952320867758443648927431748924417983925738605438267396674457220834371353953442418318724758027860259262232798692289923803672475934066547032113357815325406171713615040712831993881636368089189145714385771717592197987476320453515533829473730562412065160050382507268703096095607285310955512166665104534992125521683589783288994832385038905773086590324908695644051646758965293015175728217916086121010628747821639052469268499961694001642845547970729097416740845938001869676702487647846174515605164834839794788661601966134359450483704884152926416247604621400788596639425188504135983441497920308426422919527378430442275267972840179684487121262569477877763777588055397561196800273060506636072630252204599320902588327872790368934329127467848679492670056947014280371818401091927993134056040918730243367996448982830876732619765982073187196217257491583234163926647125194603362253150312103731438533541298704403506633041387970759026594002953473375722544469664814383552684815247474311749167893505892095379180279831302674008790706380016283528927798331200982008977682690884208329065389225885584582025150908208106483537644659558414587342585980854250074832801670941573845910391193093212618478999343539345475233146237235124535567805731715488461198508554002741278643314293153162760068135889650102929136454193194868738802269137102440898148431128764052276338238911808482522484675140811052659546600837367074080245826337777789705818092179442757878689051935201606899347992980454788401054954294844801377578522327316359306901747383188289040478965848568112620825300798535194153381977115009242434612119727318886245947052158677973454172715387854626689505147580876805535917087411374419372440601557556970462533552079275449386542479156688329555865631050382449345824704081655392294695937754328338439640734036474945688446776318422826695840477329537448164304071614843715710824610036778438665843986600842802228090670752061793018370625087058489128861325187361731165587867563885333874230723330419089664121725946429561368319850137690877965226686185248141808640630424022901177580157179325822046124336437205095809166734413513264380372208461450229421879412524584351286927506943219697938285031746124599672635916308846475763929620222238593684904312183414895265208739616987531979257031044712860630604596133556601431487381758997748865000427758035183164065945594972389658709231048768778530160079362984714281432662915608529304089360311842525232920087888414106948634376308713500984239724370966962066311605728737689801756071499171270539776158708146943324710923367802390225702918155035369273144843164193628239760815820320009705288532480374446514736656333118402131746433659515433175847128742627521370751093026767507524534490246475438552622115488257758120603605926081685713452613693836883959613348529758326366610060283328924326367622609507591680691678595171601185811178127902422054342173329931258978526328871585076532322576779645989759609029823140274175726812194081291073125346677964057861247428362487827519832389815833067573697509898195138719246129737580379016112539748638933557539528392293931104340687002076707311091290517406731224322811614319311868692466504912700188033616630555573226352296152812906038510992473391747455982810857067331695263588023379068523843206121640101093167958279808572961910715642291849648602401264812771805165782495275161087006532418273338150765506834553811587504583733479994195031663030143541241709838473108067123965872037583895169272189604695467848311518068111053119362537568491173771797577777261623499854360414951266505399115562512190006373643416743961247297637501022921224917851793495039282702017494655202572467161476967696907866310128192097880094835278140698242968479671093861022352744465544847481367533377541733372846305058942778578504959411953141325974262364102034150167952188549145150726958418709903205392139210120905196084967138827777593445281718432672132190596019274998600165919580290800186099914584366155176478495356984301112552259227503041074698882012887319768962962183356297778598748831655320399738603033328950432366905123495692940763677584695995187354018342202876953465524533843796739221667828012680536526033677756412844120366479530236898322735437325112054277759497185131227819891167867746325902386288969983853333591102278649497993676799631296716760241359667678937101114831303898454372979047909371353520937170543049188888208848276933747226863921345497168645921266356047630771702684616753443095479592461156404809490596141349375624973631501027747068598098167500325966167983281984526189318359145584172786231929093286247880669754394482773279143221689549161806933292923847588281785156946557954922432484988033612977157658877195848231029690821342203645426852957424277553468366177534543904762245663895860827349881873829759548374158136163470045931276144512914942152017803152597452239168453702349556531781405929162196820157012166204549817535697324215022761229611843146954572718450330519748350218381301535265382053867112623662409585685303288258593351093833999418296197010480110799730063186990477433546836041153282304368424537881032970542212147260379261647757705893373768580577294710954128270272040970048375515047600854606265030013697133327268598699998009485894535428830237503997998746235468313853644362479522941560096193032207894885077591526020149751144632012558581117743742357307998852296001449712814070807077190183032323400113113772924640620591320776968457816811489162824443851376350514460337229326007628206650394775803531286029429111893640956451934270551397654596255132487845674435212871280976062584141965071785680890374435660523498542243052263677463318756763236492194113533525373246572399390001431464215060653640927308794149458316837586038924783270522833564969272995216130093045682334256305742210483348357220918073972845310881039771582460322765694979181251204284276644193958563089385356786070798340572973008175966428279713538000971756103040250550746474047358123221857251405602424100320337133035847296830181000892401159812889951817829436895760946056021554760079707508208832280602371158986410496541217291890433618367168241554525035937798135082378057390875837759870489177086956124864529487829993376005814690728940348718576219776797859830208457693288045509917232057884497126211158933001241768409097594171529452595806698861636751217893513914872805838543009759793014177620731138916130506472945684243708624758042324080995946919015214039027743133848231950987509321286019725670785223332540486783062963606523093343169700458258955757187655520432900860665448372769920191251481334119488565790384128971517328903419493650039143202083906818217597625196378243891905502104963937568999224256525855604640115743230039920590365155838861735187352456743749498267037832697781287024053436939665637477912606561936818159299010661068408656304773328880254828796715697862367053777501336233519673010980238040412607711214718953776304921142601798339257005681031729335684255998587168991412282074218046565775253452231364937992686322284365092658944540581881801736912395524288926101381143343034194595182203419133107114432943888095031049567456602538691422314122499392439552784170699788250256114537645632347156420620383553594879031156960414166190886899237626954385940110176466601445025476386484031962072551686081994725109274126009620766606294283986298598562448452489303858576579076390772911055848695369168684248040500762243521880371855596720539633212058339104590189826306748009603921697055462757840376902804826352134034540526776950522960302993720172456929211309586241848906003333213291373367243175743547358104220979991298847717678530427903580303740786716702711422519607139734102058035273690560269751984679733010872324335441544072306634527648206565265734298712639305020033615692151690432338751030262847406368132065715287923132419864206461178401885490995056979378470447292024438131372519215697455386370910640659323524509100971146432190071620483224893226655280229468457485722664943638045713842513469320646774654508848975454327379710894063876492261281527425940722109207372468434590107270803089027888149179495246291949658843348559748186551669017530419974018754518177320471056131034716765071449591326338075436990840670861682786767320429066836586446683207994280759225532249703702149118779741070459407789373733374836746443858406584168532912622385975885624868400772517700708021466879033927772239236422569954864825302441753743530297197265303438902697526250170497388865226424403786582239204103257746125054613948767444417303623026589002178179301020716853003946660205971515512602512687474436131621667619526884769420571194433639857166197960423508757758453347272703097877387988830322791869368167717511449147781962692106661320974707473527247852439724853461255065499468008891899410252160658755256991788592243388473034286736970974843732263076868817668750826776291547784301821834676852685282825491386616344754655406044130220609467817902205943125764143282656381999369479486167880958296315192959795728718371237624686132624029742730067031858566980066202675780761805127876480764114449491874533789325954374802352376394407558215576556129557306742488357470959138763142606343843900810341662347784337165642706163367954575245508799113794475418335558814286822368106484055251505793187711986309857630517659413761750079470683639626746171789245866869468669632285417607798300861855573867388597703280069243262680784894941950935172786670353121144617018620517901345893140401344097622147737426326572155319984551114425794590206734714301065711522948030958495396433559763406178547054370903905334337540699237190320445689314645938015523606213547982740744908508415001707994873594307294782763093467047553934304374766665624279937982401079906959074596092931509764100738258433861751259183665987085076302909945243596323268401277758057452013336428040852492809590097817303758686908126206972927006046131405485733169583076239095832186864752981769158719285321150730702971010905007899382983765634598485597856916490998144286072088205421814164745875882317585439893926609350142539424101737937463331352603249883744353253634926734656967955527696762698409267017336997790605029038509956315128912727382806300935623552136931723526438977024847706405210853117064475355423370954502994474428760977639565401799670792666520008473338849016504704666450343408047220246090615931436211923384853498705276753986911236312131711104960828113423527273980054087775354238239946672821232401686279261292384978966847236267135168272495941255096746651985119066283508782629906540560504449001306397637340198722849715966606511978203942235593133548698135673412302748208936291067753930754363814749185434169579633410130056549080381311720025276929504030140919091448862336243528265488396013425916618459839641332877136456415734875346956964717254045140320678055836095035942074275580608693334831975426700140007285492480672094036494131209570652649006564964020485151288404751539402009272726750778733225987999145330779591519177982308776729227495445130452874911132931797585827510983495862051262329516403116208293578584353130911539925390074677768982464370000319653264353692914300760623143006759694997492555235429432894991874248935743971182298656792822341476655670671470277934541249389501069650459263023131410625414235787706826468276483564975480479123413992682583908618124830230509844318408574109112151138753640192195611989980765904146602051456165084172081900762613503725428382343603269327904769447514660949476079596233584237421699878643552271720843570467969019767328164848636952225458155348718461738000410956469388379417723986208995363489691361656615226917384135734191072525827116123206960280552933746069351145880757493502116597159091989672649922599699547070288054039248193997563544417386732169626308588183275116363262389018495010459776832751828877967889744385875426957186753144631109811698347025708528654999986099044278395386671900815436488208984037396007108943408527196513596853863566496290258212902855986599051605245512840002731916999141442344871247082350366455885366280125278532127944284186830209238509222187658329988676249487086115301223549254558150563127649494079532996285938699096199258403289612282390591103693003986229360799051045248289010388524703175916406632488335206266452729936335188471333576043974374698625814037942155353365629095282190597357804932925882202420228649233576557162784990047664390008299117614831770057006120985184430015935091649450966419857223396368959713152794998379550650315890236305878842569971799026871598109047778876550642622279958217375839131520843644376625434385152675060061502658780398011696308000716590750630510203171682366063828379263065143827908871923973816566370602908139265959255371592671568510991731832020397743872365760354505924639521712105348635559193512302909784919521092859375757241173008902195848688685267228730005031158832851109232507057708027285528384323511720933330672140000015929220586537997006022431678995288071071067536258506075282332705746383098773655691534896356094168952264441807491583344804710900278128279190697334316616204935775628003779918413681424853621361262489991745431597987146842912607211552172211029722208886005734513865144169695545288885644607037046341007646517958836791753413404622087005102318184352917568166232871522507134862296493671626688484168328427585407689858260454193937643149022628214305316259920644069512598263328145023986531181104320252938001387132233635428463759695408679794305028460790124385990111280240124674690660969659554100268303456125024709237887407548108362655408533557259422726652671010755918265225253587577011978956008422326377570169602409616516696217026553693219281973646151396443895922156983600260174255813905997347301348846656964045797237580208363634524293542151144123506964066093283982374052631446031181342840474049972656580476359807639847362629782688164868968715966865740831808958120185237398502239278693935433562746471747403074611395872887843058525714604159150129678659945651036873745553319393048793641790901158214316739204914181472390057534603061033770156526607231656591491433616883410728022133460677891976026682726855852612930657534458291033788969643369046742894099990175338148226261978443893539534731638749287073633822488871255569882460038683848297396548539058951998510342105680990584226481476237662319666488159465228560114815944685696096429433120142403829934385804245558940366295957881667429666961732402933036328455362743150664272824818366198588479516743384791772066020676587258088713026623124310362356156681761941682604933702960614458573113445971134973383230458371538841920204373844390064016129521063997189289982452916910408629063196778180143362370309182401326808202986032349470486551779206299124817786681664768747852633334691738184313258003952103760473537873338670375641544740500332066233855904041232674251828337595938963529390095964258352915580883520236071050781511335723358268788099259684530569208451432686559680915916812022149228409716844563159320684287118672855048486769727660315429363718975402320770005788156977755049602982452863769949565783398748840890049969196752374321431193719193035888942760072818050725656014960293573594305144315113747733989349212448538707524186520109910907375518754786905276568340765521567431465304318241757999956564635749341404924436399322688884438628141981776131360491162645356817609661557519910615293742320110218676897665967854602337340486369335425471134326318524934263541063518258821547179201233877236662437537299269143540204592674492763773572961958017672212771675017900728726175172011195137683708418475657376261020265430469922589817160759117405399103897446290164459206992650752464178730420968842529785008542257244046543355537391928565421468594857240769756037705942190473716873469857264176766984329204954041061477492242730605652053236419430037793577902672621154494395465731014023460821180031599877148117063721164059609975749044997859263534387847904275323696380317225147584125392020964000414073100009340453486751804492148662526200458784499451838775608290752809261473483205586119146647403246387548795447069625298926053913824660329080518196871000390334618019868870070223782372396962990884872711122190495418617928990385697704373769018932419974801697583769807988743847084079767462923036238040494884713265693741857237646193723131592179926272314381568082599391297509613436653551740777390356422863599252546271775511281920423938561079702777540733575710119493319837250722403629300283214913636238124938116733347809648725448000932378445195249899869520127992168813427049466767385132213186524098123706589219912786873966346636329296682773570371475980241618722785337304182384985756498076392771817181298038075531450388057502971862686911343647872673222132166799906609158918253894814743607235072660184029596109616002929950665737116003539843092692571341297097328834517112097245817602435709139344941235138431959430277121038209303408278844852004665864690572921462321133564947356132768115571617936876056658245965801360313153912345112898219477913874731342757420168404291048259895365274840274263943398268494301710098329421712927683728063321104463283240729884242855669697591504206979974402140754278818326841740213478811290689704081363702669685327648743867265167753475544778345764629704871847156771517280956266467859678839015402135796090828183487197356985547155759524638145284220575797359013129888538420998937473375745679694608206258487703576574480173312309549724396763110968604922166233279064133588702199491850736030096423136822043916599198544321645497998615053008811205870064486672090795642260345137075749212591132223277639209479656532593350939393301640042076375504906895886253436533382409053538729089337571281176652347685132540957467660739547998086481786601476284016951899469163966272150996712336825557635425039129683708392582751419899117826825830498199721557404788110686319920052475518557518891364941990499129556681609837318246231744701201230043076955662733236926063951811605431965987543723129563880620226222254376087799317142847322320401094476172194296929458195010840606454035155766431902642145852889140546298376919081131116414917465250987327327568549990134256262388813390959371978630502033812923084184477595166451013576717134349377463797065171326457686003066219253258971363545953813959673867499484240041055652120683281765369917760870846442755954016942862417926508467861362657492239200532294598774387709735087083225588522333084677339031129367274853970262484511769197580289440752352108336706666159115690349220373366426545360967901282373083684879803754798390282489603364290340831153558435599689934439140139218376936758596054864137438539837518975236142943516270347143205096593141862376366401458680958888918180416773772621515915326073556931552980168416685204816558646346379989733940195648437974427899640840052262841312421029867872516060832537771187353257703164414310279844200537940430124895407306852358030751608224964736721928188470457420862929684249378060259898466942080133838829623880994383537288091587635467699500325151997520114389135352615765220128331800524738539079432631472696119308817084811833231384736503526494827448828380041056550424316364366129092234263306217579039242985349196157983693280751383645418704317532064270033901828535592280035343034790408629709792169050853101084311182742192507795392359044330925996496580327376687233425216994363405945694203826747450243598412243654035132419754458835112466785611008451176714554425094022308074026481972779948943388924255146499496813615241406527141326693465431502264387228114538420375233919147971469146258718022971476350930846810203423387214172650120950137107376862038839001337432713645201104437790040815073953440153273451960987418000077885941963317999389908213184981763410617562005973357985013372984912368238737476720577843617514312337032286779443696947340648917202897022249124516294978430853329450295176350229219772210982632853992629436523853750730375617811204056485690345726392813220082723632278966392405806810551372537697035404105644696370163604699292138922102955169651624264942975747530309871707470138515789080849792456907290874384391579369758456052278751128263628826475223301880541665862870000185687935446246610432636700809654508516948340538342370361164802183590413787555071341608176154887003618885478252786411805988139221110921309755353641206606246128777897204070462476199506136035230029799386008609820894762044181965254841217766114375140860695845652771081927676025580727550256584848170238905204203398574708659001417531273868974888123624989202269459265850012285596732509376006635218549901868063603638406174963173777537948820064594565281953588544154225978200722820328353047018980089755101348314298568019979400262205110513499034922144840559952154536291255240596207827946769391282529217809779056981973680331818549933380679342191934482731530539182949184256222017859511660883950605344966130338712085544915610167487658245497070036081051461904589973073100885462675073342107718898596559830553798782105815101931502794490062101567428568899376207693566203997315354874528272164722750635799291300260841639254478809701077816164304823466291213528258036755799082423982860695646555296509756983429616672152228599049373234533839552194477171093302986038464790604324030046022820925233366336172005873505446326419800455245075370852947830526461867785691694236974514034756323630544858751139231918849184526400126277305463471625154382842537850267448721249049515640942492978143450868895437576644832870479428988738045268293291611899095121587171000348688404440649891451285631576477896879223608867341300790118854694572710380485528915800663376899245990719074484556336636560340998604787854614154101703694949123286780684645692167338874700383880586247056426047959626037124809974409626325644061543176024342193235358124756203280928036778427838263297038108518713606749512317221787536962672299301683003212238542137360958487900558608500453644527483357379720851079164636598297579874268968064572735550113881774417522154319751527804161754560928941993183189167002520977394858750299944480488076559917958089292972499761118013647695008410840920327850090377414542723182693726633493414271634378453091453732262273528095049124386761098333663313598767776508182689395422694944581851143407024578094507872011828771528807559274778453159813317141549045264229020028756364163729126572642743055529967051388668542044749396055798380156374683104447163385676601601779150354874446551568171690138593931995729598294273437940563261584038980916920512956643019652247461873952921178083506875069138202406897988990691336150224178961444906180188077835807956143851976033819253214161864207180655445812511564357071196037847241856250450416029478066423785893206955868837531169359850224262434743597732906569194412752544143445712222497982599601508679096287909955560813108419095819804571525371090295317107109006319108896528008031290568384910669342430472116425573388448888504622657543548292781527591053589393280159863176927367824873885555404545662220505613780212847025469763594343596068008204150380214449284530371960614957804522893840544192914666314879509556229674275036527032448586864935544873536184513695206743072449836581498573551469758998305736572682245027076319096572103697498954983744868117423493714500357772076273232391089680870252993268960766052141052798086462681526904456574732005959630394106585727683447555093937349891977807980617132153067557542958973326580587533319240308785963104333450718462416093288919526701579719288868222502128855266211988993290040232191456382549637395783834974080165196323563189254853509462948573773618402063505869012011440690612657944803530950110948848974299575874268752066845586854682080121027771510714495568853636624501320626296680676719562308724752255680405326192376371228425733443218624302987984590640672253561834664796759384522798198866281253975687450470490444139632821431097670767585788157409823186164804009139317859035652114700268126004343879649903804958429348855520681717589583755763435947427113863636245658255319841681909410591041136783478385760246905588656428824737320263115883919262795578448607224802665681836382987931141909759581897308506715344491891870654329744817413324089504702027611574904503596379479629007823016220894160312886476072160967532080316248549371375960418357613640646670508592913639407000693477950930089711411980193431374324252726087642200395605611176552129136479283093770058970541552577702720282359379870198033388260963207240062477390778337150182410500699265283629621943639181946884406929715036312253294758662462423547916432133539780870009463487528785878272796798639240194701166040231932333888914465498406471199578083402149083163939533721222604424418332283793671519361830753429845532323632151907007450178279173382361644473264889970641820981248926828989843374701202299269746983406917620117914386369438935319139441732920037702717423257387080733192714788877183651299173095317157504610257509595871498548971187152210131469815664204408184736358392600984638481353963538543180281883004832204629073153354465465275006801428140860373776548416532492050683271466706182499818946782750791454320497582675888042221668154749952558030140970314059150962119308316241859693024685104640994445110194255390955574021264605256010547134913065031997044570516206418451415956046782394328151268179629165719053676424159758046626504373099115790989896032708400219910459693398849333590825639289109415367071920233026774951798101018793960084799250151202771895470382174695109702535425098923879675766660046878243155392168538561589965674593934639137016214135821665065928986410912737049301669988861822884837765543795671150783091797229223711638980263846286112315911788253649048550366172819198857427745908269549295452780355745875074881622613806060868205356994749422124368410203510136302585141058513976221098516773114473859417197221915011293903958624636864887868247034772262059586336127037741238649404696279839606300520273314194939783992725157256218965451047568319280511252953948892073659300070897004701792810647691653884027477108374390619150524277436810994049547768780038022458673776158256330331404788126488092946609060382060538102359171125192578925592094936876792542655388583544518164639364014604826129975591141316770973572530797582382350900897155236733165582186541759330567538694773019881198802201583569527581465125265049394592322776527472673570062956721191736130184657526722761711431573466306241933430391457388708580892025906291904829831452772933711391210284420804636609130164887936001502049038129500978002718959184694283344566402753504050956955308423792233936115826850977445597525034875153263578036150776043864646225087754644592887452791037753579081013656755671315942879492736411766743110629025816744827694751599366419863297739773999870886612754497632969575788945734413997502372792455877251588188169133604025991038549010547665522529997299972596730351973048469779971361760166624204328579341958340964565189547523955996749088099975019981719727609841921519538875501723796750786935255139053542481135412894939155727745379270517675027411828274893325341901271433143658120100079343242044679984407330754494776922892222033504538186790299002467907881691420122564891846760165736637316075114231558576491478168714391784307627184824659386580771190655990316325700659586098641527802621857739966468478980166327880105030242146199318034998854149976034671798708692510359957289305948892285109310609279547821200640427286792287783021401876389011446471679481954131413099873483090419915517645206011025657830280007928555896194321907064802833541086797449694055153901061979158222043897754082725768010085938503822607656203377761492685761062761823331782654301336952679223440952604579128702927621509185963235439717308827964777771406769896253935596436458500001574184987884605533470138640007296450917600942185244016818749560990200273462612531000268934858203911624290593138075513662490241732089845795235093022706441727906864990626502988848733252993738007791603373432568491348174616600596049539131481526890026044221217913697243673528437782162468175294541132913164145155325829879814375594225914702608334820322022522407769778950766810646388066988961017401364075219330934574089526472180057735913682430919297490314858442484952777959381054803391779297932589033855957162880178552137971625734264549801391713647154638384701231649572075784745603238334968492919269744027431309421245579609802723496779163634112736459306326496665321136212143895726223733707703617014980962934972315105101570176658392141618980508600256327655079005188208210030243189778813413298889145878652953469808524579033303636221179384869870820843903139959921156810902865955500494663424403314535632424714915015944164845849806138959737802041703783018987424152914579560007105410845580176794593312845135751229304771466081457030547233773723608768014050708634830467109883256599887475805561329304686824637848904431142258261011152630473336439321227781690989058867123590588809072641859838468325830988529310231236477125581103038778313007393797748503819208683864665597420933650505933056519685826295238237037928687131289765287435981379069218559846710805607396007362205688033612710111172511086798125242235852327762719844899491410368586110251769218363295170661022114626889800327556579679940858193743395290138882840822445345404139143911341961319066782938842369318563702845613262611390835777479961524514095227485754709333285993122184520557729013602535535230729609945374139004174979381265765002032023699416934820697228203390656235367937853047746349791690006342805978182717542451586662014684784187702622503382064203394271300195972193302719129244486769889841417707778757945951044724557258135055362811743062379786023508595962773380702758569778485256810782627861197906039861893158052130345034656844955811911150519946373527344162965663856237405647290546848045774574519860078471486900842155779137627515887376807773408560773632037214853837020697536927900907296624046518834011978424854360520245799496381771048889985136607762832634432601914467672565912000308657854892089042801563866526188052288090921922851577904361155860522106833769540746359182529664518500281970691629131668227224249365149762235464672708199007629896658959258481231409162934571157675871178864953853185593448161631833425045566201127525337757489666177190574031361648879376497070890595149566106368745214238565432136696388709888526942780293787512136598262142105372064752818622688718793172982622364733538696290904048586949432727659525664091673076338686980979179296102671585844997851291588983872611608716301875647393711160713004260470401361092429752162652256560229122072448436022426501149248321882755636906119071383336077548665273454080293038931449125894777803297499755369681259867179251448848475161023146234054302800329448881582251748029348165304752184697656806758687091123701979562560535448609778910266032340672660339671020011461089291188767912331503087837520057899579508791748248607323553905421707625242637192058634661181030054143914779601199881889392129333612543074304603735803641913647914300930338309494076459617583692078557009792875102122114103307953093622200264413670699030649824388425993658474766066888633540356061370876359399214060411232709409751736329093102480800290858064795136073490646080446250472318074288900972239126325587467863322724192572649921776073410971671297300213118968410787421874499264954202370105123978487308260227656509194986161896881171559026449168596906148173383209062655378651960825088086396012351991739957716246309210859735364974309595083387357827562765809157210493424957504980933502471580334902275679329766247274472300210944218247670608098524346124781807896459579789017938454985636974702293866350835890110072983504635558848202931109264590739829005064644804238390495019561196839752546372281485036024902369646784537401632040094821757513596872008144731171382684676580767594980557784304091652081877121116972288268962991737954358940646267612931766110141019121291815356665303226716486896292402497453303688145532198007000766206867367122273223833871459164603233982058233089894868970010829625110515174587046197639609414633142696162022365278989115226145762176994517899555042239415715855515418057389907269786209962908437280847760239320425292911778341532620398416378170888764245450844114462409266549981586543399026362732171383948263314105811857899799502919336994219726699124314964216197125159644200726486129643702453322489041855402222444272560193681598754286199399704432534330132597615740268993989193739346425848107615751081467097926362722187283917457104251979455193105933795734225194809590006630276962479671091126140011004238936996628277418352023832333563793764467558720849912742986577073901114650517669099462029953806815773375712606142495320062881287124294636290390332916381673387325503806466185799981802844696065746883985696065090911196586558470483499512954514313189017359411317308455951137766681372759643198464666827965457765846891670086605952329574588679333666890100606841965723428183242861000940349336357187758005440341375591426753160172473056854297317267539510954363881430270287860216241504489188103632632513876554601619081666605134619941068768170022994226984165158523289386283640474638254196852344994369957657844030872539842483699221992176909261521358307027037475793818627701182507396591991535463334102862873013061632794215073947426065542535034219569178867953000520112449850089094156461159866682448557216861106322198728645581024007283882110580393017416188318501136787178328901449384000464284706719861739622018361499464523477028180507184379843218614934460466009778857567029214199064901955468961677179969913243858799249719085518822473917189059410512116436376295291858107539955708209355097846004730420665438702954728179252113693351417763550757641391438719314218807415276037129960301265615672191610549880341614280416801694065456278494636280077411049573629566831324819301713520273572800607275747459443077272845410351476538117961767673740428308629345176224497526678804543305558786827644417945340742609221499329135362743186356188438118299619627671034852040769533471564720321289744602106101927482239065756829195701408327022590662976097131198182977533534814080894378948266918499755445558183085786830821534895317285039251507762243001373575538734872032295372538512373623851545568609258530760020990042717212283311020397575953985446064102932917160561820667691680467433238441490024963752572532495368043103835210175169066553970043740818318105310950236967637045993288872606882244855564947393759269606656248383720004881941668670646347633787193801932151619373670917091931649767898012631312183250224591261145552701382081095263714830724824746705625999514436693134526286605481257013680756350596714228229137199010479919699816501575717570269799496195055732598046946085945983751963131660930752463951590834172904847157249483794806522745958623706594265596138923381622614604327013900357343216773447492963629285530755542102398663654451538917248661552752019639636006279477396199554072476550369144635690329688535339596565324155765826869629478461010209675099647568116485233374794043239728737392685881827698794345693557717258204657857344188985106587362224760270178700276937468450933687380396761496820078089381376077039998321103155607398344476108276229016813757555179270060468201178883683825796240012302536390796549121739008924891631825246845545609606894519614428428128775859516392971800512510277253656628486539791116401537784329037525390483170063749508128835428156543992636729604274676098625300249416600806312674660703774307289185285657218132201058260231342308125616346036265183628872672172645273785071413597289035901007309282597613256052612500506922165145695314206286456296842719137942768735927494753939922873103699870677992717013477405295700122813912425684264383328129346008764592259391263665466049223782272110268331209884363620103716061925904753176220314197663688778692689815620971837637046887023296214550995299540176742314642477886288643543677746986288583911377043741206509335040276696724472653181851311658794315850123624130176158014020073845719125199732838814170944718273392078131697011030577092280816297475563355656097317558203725313797519993724774738039950994159420409552243836562783407443990351427485684931246057835820644548709686956895768931756987036433795949451020946217111516999199101473771771830874345915699288729588355101483733268474500861447400640582343750420898459455438594196085874783150274731902080137849811684522954207779651452393487014756600365326986392610793442364786652302442868111854041693805333205952827020474653018971314072068217978089175536825113473387992136696934876036253615063897956624638468958799304317427317199255382433766208449341400169509116527260284148023476932060074579671061854195152927562708847405618980599065724505726324265634473338850584123481422834553381936044676328932132195554337405132954189743826165664070926919527400643898869705970923360939117640754699703812045334614624624140457676884072171395800935106349905121050464250850861980324985113509198142144663902145206329481272637256858481135598739362639509852649679676012285435913609555294238923543471108101369354255959682726740469804134638503822420879530731354553159936766757928175638383617080247611935904315010981594733470755678154467668750461552655300075121717436517873562020899465402169063397825385096231118338791882590581667912286526439453325227726804137116242299846345862120153509504235062122092966599718578881407675447511889674754301949457647815336799231374686370325187601070065074490049424313875104162598891998001290579200794659166227181401841106127248641453672251931114951455825949040954451184047952545683918597463408876373396217197652733448349047062501070329683501035083992969529219196584523959174903184654148180809954678456030099089198476146867118898694445496101262558657296285070978241026297930187158785886152394750408035524093278030092479318698380583233148038727865211660903548806988955352492675093746268930771517969662479189707467634438445592513983289335238514695979459855761461176211306345520485575882262147749423503308698120877530718926726244815286708329570232409328440408831383101082375245855572927996674031211319477966363379001652469189614998492413823924955699939283418198275338823338476149331668025435669606983830150650852403467518739736973779909775384117482825957427478980893895455145361503207492376327999102940476535717328370887967362211858504043436284908279172539438240982592684818484438097169488384036577649311575003347422303172482808655165966485755445778726227738759510897320178466332451197656942229795151080158094924877631231512633244914573383196732050903543182799062785881522179394440028572769787723094034253543695254109704476370038411119269685100049299828258412037893829529804864296361002873029304019908248825339802711406649216824289629292228927888732838963404986469021304898446692987175965068766416566761141327228913298838200989006395438755162347037517704003962524887637005562932311022171631896896338143277278361033322482079908844869867385849250719499165433284491761597929902704527858499269032627221137790614670820335134013099470831003810792891481265766580548071594933232513898670786198019116883377664073606705103216491241244524581158825655636198844616294681664490710420394318450755872815415420185944170484540567106376474579825168395748656568228803302074551517687391693270108786244330791559953102836970617627180212866848106293269896917353090947781329684753066820245849826300103861095377170862893291240675288894183713535124855639182770371089954367031299140198927448545998321701145970040005453310485309478348154592545106375385970641092657458139133793546301333008870459551575347420760175610341440385762580554170811568024853338978653214121157779001993658274403380794171694160659441437544193197007863015623663550244058764091596178714325604381974967860046439424205336727565020782164600792481213376191773415684777151716276987676108367948403679365763596726526413206484306187098024437138917823934747906618995823140742500684698421307544862579134669205223805896907719624289202580386074532200434680860857110091438895184353434079350981627371636083330810058010097820196933278952546153637359823501717335620720633714677187566147112513231910260143938011896457293700675466180078530761859637758168205410979138674932439269589732707685474323512394493677009776331768040915829244871609719914710903782248433113204595775709753233079983913921610602707250402301983089904348240387374619557686777906160647356646814734632146836525999129066166132577256915543636859233303368314267358918778041388333779265254404657597251269587285879041381955205260534122053864302568807014577639572837961800080055008205818856379606688818512946780265482780131460789037174626435331772959245288711400634747699979875471412107891779781471387913059479374634899364247122354101936376599589580406897878511437238879535640946632709273913533917979938458714852427219416180776249495519504789911908918733490271576375117088697599284745499257297714242148213364071725866752582374123898994705959925719275941387224862766042706598106810021339777609982382632787951440218386637459800478930490292232997299312670169338210210303527960465466336069564903750824803992343382145879856264611044481990667495682637808176826893344711107698204915673310831052302465377750844862609185177161151710795976038363313208847346730161997799902222758947378272747732800593830167586836580173778090245005932157174155373029088022602123202114917403689943509637635821247344200770382980626151030992079107180677223817258895703925954076538660212615505222252221931633332009455344455836588293924609400333097986364696476036240214929863011966329008479615628806449611777065060600581213387805506158487179832931779674884759431807358923936561710787545888828465478614817870312830758561355585622724458963598986746432577061043347940270523377574282389651769053246220982321418598647495991710213149968507660370122957527225801571600790570566972710804168417242425431383040930878591236657674731561884233562377478288777825625151549319172021585909744874032272150407530347206852039279430382352523470369187840439552185839202326025208637381335562554903029616311028615652600074383911095353228291171052231325999074231725469599393815863082886221851600735197181334398000482759410323682814556648485855921813400872293000567533796263901223753023089520834984316160011941817674148992584956283733847038230573942109697204572008799352146812498805960379486162121214518243480306014614545739556859554823657355834856574580141599770726063527081432831761772663287026602681647579288669244764442430934849497423550416446832128775963871426293832749054017744359190009382307685923652376810971231848932323215846505641717299149698726404487317185635952066753791843121562876160512834121791946804192707011080287407702202925236900602274098167415302532523748329904264051497186971426764833808351358020770038849609570946164309519279994592117446428346754163778414519958948616968300080399307717031852671420818338751114016132881361168281224713155644399117111191358260674285088572535263341577849697499450433036329754739346319996285268267336065091064160499400628630454952445161914946668930706456403470802423218200627057634926615623493213599962172904977048382499643875615979270557294316114120509121527535612226111806253787667589526966550221401607954288343904709625886675973160869395234499392350340203195993027931693101209237315301353463729015580049789703509707506105858421858972577537430706043650576278622611107478618636756151499712156194391731779551707173584383177664687952496132374939668571632257287144101279700256815335485635473245025838549456944472507627928058370569162958113716786495072503618908903630740011149935073337280444329129497198939314616389685433359538467316146997927870953956765580971306016088882675606536740247104986978465892797663504565143606662216073072132611864871147836889964733907916135010619484314568692040012280907342428727914604187458161227523365667082438190063675359775902944010617043687443466812215639043328379998495433686670112159420255724504800046904694786254873791978405882404279040461873898366629971359726840025811143179464376571505516877091978262645605744642076793117895145903420837278609482740801238976797955412548143682048166256974382712066110762383002036770013765765915498822740298255992463916680128469660373672928823437295346574393133512241152302370032000831302803068331263397795454897656686259844590493201566880261663453163711533997672782154600461914576154837030074667467320744473257640164697451309540597366421734879458102326469629604814805188257417732147727197391459172125259554620114311032475339649307329005352453845935697760204152790998057125646613375930997392613844177414903572278952639500745229663838482640234360156618428772624734416560167388885639737895593348493089451993921279790040698814384149208107361849411407454945723047285227462330466453787398629791036979825194267963980847664432186879568096751766494377804116854625101726740256520013379523475750409402119104771902884898666079284460760676704881407166538905810041599764712193911740977442294013883899567850991013884616199788879693636107090653541717359921129109248717395230700484729782402213731095989086942671311694891505232351106491663739457227024529883125011036750261401766822793381654379674890943498702310995192752081470641038245037374939997619236236066600573133375427190490765725371979833578650048684415567921685512618435734338474135873713790716297762840399087824485704789960363568202909725200895018032222842921284191810169602858975165149981960131304476427739122628127383267867683718785233892755706136409843009157569632885874392646734545151893123295968494142675380459608326451143867483731697948530405007195134411066097932636534358729141178802607063299551794988389079092804114698862983260515080756537308927411349653167434503288912677289083985782425732469900951462527438638482748777291278678536376558006052613154053043672799103434583361752605669870206855208532473596446914582466338303942892470871929141185577520166372844562354179132611284341401756754559212619957101390152867690863165647073729850012986931898335703097122677665358191189387600387281279298585112182268391961552310334822949555113913873160026289341715662520786473319359210999461012477950581723549483693437333146764525917991099519333063735186595896209347607390986112601386698583612144708814795662280271374433373330523205291610945930125234148364936844822989598169752284048930062579383322715244105630263796385895611100171609191641649508726678951436259883504121332082612872256476871093670337865729944443283903445641220693421572896816012884450711153081324688858913012102927367157455251113396992676919137490327426181065804655358406443502783231209977276570485886532181877513711234480966157508876070736371650750370642913719425418491069535618969224166940622927279500724333122770252467275939225031192796287504250736559456147981001328300861829141949421680397434687138917722259467912145222047743826108828364262525821728170422031619819372232617693082330351115831055017225463633075840468115498656358071446301639292955054866527431597734569653371526815690860313948635140981896199128605129606848761482634469893580954462932374489793591067994897249279422787772286483081982726353673840891469631077690117385222119643431592343013130811945717180028501403623718113513772776428796039554724625973919212098379250605491116745559164250720733759060491829867745762463674387824035361121872033867906891622753138149709556314003260315643941096584349075773687474162244192858083895706893096963795264511362917288781156917008651054752515211828621805689838154798488375892030073462548359019361324434583266610574893646613756911480134581578332289224401681036511834148299843015512338432582142696981735769863187934553264816764077826714052984138415536636680956744412282016183174257079062351663496871623217101228728525761750132543167794149801886481904742868182948936412266311851418732358059676117496082011414496290624811644483253295136323129615332792752108936086035272253452127488075846973814263125571487780511969416581892383749613099620722498768281940792346908702364209994429596170711179511699863411061706283613704953219000702555755231610641351114316498086773596242256535012366055103533463417136177627368912836077763135046661394071356220077988406264288551698549261830701183664119788350055220896956318018959400348160239608776583336659982351088925027573013380036850837736274703848002539280115914648967552480587364106592915875956948444879979153371523738556699157364464981182904370821478325214347940771724263765074145294432747216156235465449036825263991472093780182204110896329763064522192758662970562941665354805848762013442253215744002074544501264867064026722483849880888999854019250016026258772141879533807679070413419814280320764402608086719653476059949292212626260776892806221000578822385055750734798013309632211922363121315123738505199653352454414536243613219597143440954238739884561045768884733766110325790511165129371923403323140712247872612181495040279745721188965808639668759988561913143412323428287037967951560564487731505198682800022073093107503357495942800285841305115133132221453492330206599141793450524339481610330875187155661419192594431693493395109940403188873574874305805873214795035641522922809586495415951110878595322213848081892536664498137041393997421513469437519646519227872289076656378029704246363172858721770401163006829327874322981440491783282524696638598792657798866959377164534332179500670931457161579345955150839222700595317709807291740018770882867671936095012380223580854060374654603481047541373639227426980709920560341576311828770364980248979082331018022527661105700803954617233763867538186245493815165762129793702985297739462068882365310414488257528545598594973283792670934704182584502227822378230103775187192960173149220660418235419379768638746770804111225970952290988549204189139382998378405963846520715873080919908436984829181523182488726334044448891547450741320999955039781070750301866774521011879777705374545916748972519214656961403888945325010427198653511138804526570194236645216157690675891982146218674981771892084094782374199120890213614408041494923506245106654518014776767267687448295402148458883628051901851714302651357551572115563720680968850990835730068485751393744355834429849028709114681109773552073815443338229606874630229160567213903392581127469582184895009248740589232843902075757089797952043487580395443086502507941536102462907775324686400631287881802039810587164757158951130183470223844811534936304417931170145355881393036466575687856516189504416951123859479404647875839426300599092677504756361898153682902583629274174333669215912126086276524816768623452497366070542310885275584518683995989801396856511677279485844200229872759343645933812220926258325474268569881388846268146820447883777134063014853054203289720756040435156421456222058088666569137387569035137429752988824541352528322170721970419914199772762202204975209841867335500736343803715362574712007810863670378195018395119374788870361672033382882668561368254770488200293488317099829646909290088964414461319122284071270870610803170972152474255435176958027469819549876037067917121612902120454361566678623845681898054087209641320870979411954628252675176990135188236153062478658157383212719699395288467445658161332831673115865621173529339550064657305930749359593375046230408928676270537773877596854394882503885020215438367839779621746456771594112870256437525229467092571364711033950198250693360482248235533947799562893949918574177321108069003089498131538575827475423934846222251190038742588366118877207777257710720858269609780397840684880621920617967088469257787645243049900360457244869977376070994803056257579516710929810623398449451976641823376209016187810314114453233026574775010762581089528199010990360523823027160605490332238063896113803270185912241125154539654959885144875052153070854461660556096818373979994089920301389631866815683147243503637370823814887075955815743530983650673164480387403937431234414293212472231163618438388467506599008511785031013696662327555784428496681731367086991605298959691398097060616859140045664438784110988813448096331328511315144253512594501608361078172587056689786017738152950121035268374610854283904182509394254636666794448397133096474893744483549097191542438540012336955344196181934971926623033502917479511817612013912862494024930354679942297710086699531999013511021359767346519224522592760913507022689826095731112490003706654744672115360024616142154309222673818818315795952113380459135715444758091012801263610267525716038018041196761621001214156786786508188475173109524906696900691496312432296394836307413861329324941801372353998222471986443660532683551265070857188021194930705271492357518388834466000097215464687205155310539352321892937581829543575065341306967908892565289951237344659105126597972993310682837351232426168883061967233424659164877343337721817860885526518772749090465840537337991601501733338465563892885653810906595065691499315112695028387009580796563678649619466710559072779944751440458335030181254892474605457138773365455694193425236816625861761658872366608485116425459813762878766810161204266467353704427498603895143695306852676752695379443148395608520552943124006298540931313608457407985284329159209848813051321189823942833933168580382594270501047090783213377842531560760186461879718279109468994087582249646690361657937814618585637616821020460116137194168443117355951320731814401299565469549822804559325148548301034322220095953536084838066764830618860784043494919140264378748390794075181309493799176957324495789434614339642796288685760919499674305453948820106891019015853983841988675776398904026567328369564869625364760689344611620353579013956643218850590753372289294365301859665075543796171768208270890466560926754601192626017668790238393943851619751179716752884329628343569716086710981062217667226839784328470036869727495791854891668147274952581096360725284844226579581872477059709862764568640886269089714537641780021935338292973508332654375046906559741048020752588792976189249742221158942762057647892160005552793827847434880784095650650376208231857525654170266257367521757760467943995139120810257651525443430341122407607965962954346332598172661434257056447740192347018421656605710539887444421729864659353033562226728014467666631720981152156077278433934411539785375987455110016826942861980085345668435753148640465928256540404641890017356781309636965939228974560747034641319260413118656439214104904762273717514590269779122738258941911778301379960519507979601615939816434049555416136621515916878189963672768960404524412209484781074972521225301091103476474585453598427076675128448604716646898877786294754840887919710709024479301075197972817852680641761337037250864349932260385722502803730791969482687876623137660229838038284498328421283160258776132153549843780769100246227157737292277498699498806788736354936862150896516423708776913565448255937274541047420926651816289703045661388059730991030871915591857067608102568475449347952643246873257531746234772123558448908897088274500503992864255933539560332073040445755714833853885391855571002911192750529177785634542902011474033190301190725089922753313900658719988740972981012309996610666053163896576384000790768246027256574480934615087159649449904311717711703278106606190020283030236867242801166623077028024791014210693762715011072477662818959204588431036307004894895419722470171457914307254829422714245205250572309583925634277222740522417311047622867172210959768956614441305429101341903651278554592517702252770422001104932069303880116381569476462462593661837642147784571006298263763316752973606889185298904643277701715878301810214068876938784244606463500834938771518452323878695826943583029050836633842641524982864062354222124415154331755117486248709881796215486832257032323764095158095491007569201584755443155936174854843475467525335088741178467229724635525367832314593922253018401884054625335554624841541388891772597122698064939312371991864764851036884230335146779183875679421781601269824711825751470374495593033486521073021952967372808411704843173208349320659604942457741587430465164180928553972646859886471882260375722388919358342802573364178756565386958987712795914150810196136528124458598375162831611295352342516608336384199678346351225921990110089901023715837202141628730592923728441332584156682701776269761381087541689316454945921869580079739344826016890521096612863479751775794709143048268604443076139350474187766587721964996364218523236154637622199069211623581917186627254914387307022753055808938251218237774372336787590470100015138828034934906599967584991134081718382017850832754066052054215343489521518946275380485304102685444238306358130924866756781446700553787885768069772983533945750847828553605702342039511353563274702638566959034134747803467537246633482574153624769792868638459626672587262293928222771769452426833161687897867727105109368389184577216363524516378552367703984705332183006733002387285403852022918091383247859380023160648891488512244730607144376292305049547784053343901350264512998528202994589917702884984185610804401609685190031870952636919223942107122016745210796533103160571630974356019513149333066432060782262029711305141893429366125262234089538302237320489084554325113721375907175882712600724841446696532611512739618467872964456187842391708232275816285300295019886062516767008739709008240071405312637972348376806157927078443469255043879605267405566390668273300063363747853159471345125710165437447006430503570360248842930050079482843894354283978211900995939307209891654024960217964347506816240770774327206774016590079862778584537292119562042450904779252887093954539571092745269119675312544908794683000581009770853133004116150356426665945978608974633105334808810434713459461923851647473300230892117830703841270659603632117484126061190442736101813859227419305449238522681075003768922721092516540894975559069248159683419114968053245834701660351387268628053223554073397491888102923223675271147196729033565444710111931556648826490252355895658934273701672712997189200946830375998379417102528886445922526495937045611694377786414682178860531357244830183892844670741871867305830453448801399205811332554767238377998615224253536806048669266043865639522284419950371193170576336371421153362235177841234354635990478993600430355128964204207252917863817726328757955478687487199402934146618457337504618314382372944932373687666229795936005172417096516841487646057027878613259988976944653764017190850452365607651735848340154514835453074549372604197186189525217146104933834589184827853223940762788337136810455522767821520817245370323023318010750969940983089460784239582770360970604141614687982115070312087973509909242925495268575788415443565181966761378740439462827321965251439739575927860136292282715496029526337072038214436829087628464595256091627239265255427249779705714562080192445034626563262018248848782379254062741133128363803274240100761485579279969171893800174303301763633772328922420564988006677057994676799300662218166809588423624831439105736625463430018203784689325330360029954827612288370998823654257283571296254809801249259392938475466618844933485551540671255025283023996438700760071080487048272749243829212574927669395449666583177917635767568200195648228648004690620205286704934263190758507703593370344644290349038374414487530630150114112666986462528643279731148620878323944887649833680697011288261549098419958961705711373044640249607461257617073255310786930906710920363601195728040873648662568546110847791263706556724456979748934259290206948475204719206783887478494498629623543946629260534751168731421367109712876123684720368128530629761623127514277744705364278101605807788112670203515823370367558525213792109810582420819667222681029364540358281397444044164901818817131374308436539225065389345840470538728085324201502704056371985753652283413798543065649290097419467230952224082189366272304536673726440411601449983046309417295595859349552771456702425736416929195835654670046811044561102848467381424338534438583880742201490398097682571186808809965547416050573380245665186441040633658630374203632233480553999381866193914629491060436661095745672954346004151339671124747496441832788782744010729600698763095290516913538389537781050531106351724918486272922507901385415011489522158458044463758440229240687710083117297449952440616229274234020777643495656458861734587216211003621881231472496769254208769413999897406181275000657030759651563336112659961910217528146578472814136052576920161222493250425301929486660528042443678499151532217087379717048302634038360558363659256042521870083755473188534625118447472385897640825033888387700231812900366474082203799594291008231682349458369375409182435513219925459023488015847428587539079455464037220126243380391801314912175012717919009384154392433387161529700089882865326710969388115130953544475497004586016788486676122024148026256232027843970667589698643540993565918653017816420954170931987089778609467322057593685626626715309563944251266411895143078901063614024278779817742754468899693045205621045734502034702602558002283360506764211883291265954665975607435632258111639871110997591663053700759461955709357392322236507697252339627119562511008273085341051256675418451056259964586739431623774129422374188940039381694062488609221211192365068834095677603084008721797087767488219444151672351263528990738091015004824792467747942483594086334110371377583905834973125101837802829032676909218995933262325513118136861162634732007921529228118477049854493219240268379660859022083691388346005186464801122503719563508369717810389716123246665273508440157354313250257197089776399913302711801046503630521167853397860420760737011649222164596337741503866594235083866043069414855169073607424873667547556731802187043679971097633112722685070710428842668829939516050102063108689602610244630224252739318123203225283106963903113827025723212012320118704531203739681261257029895760799644755113216925222571224151416363099550875307041971429292100787863072007020515484675073138158311517727704150400727685251802329018818643393985566502162749063711641149151868302236879925123749159616942058074132111224775104959424263157885998635811917052162623285696280367023863700061340037915572342390467148248816907130485115691471503289647249422641141331225800863545360519850395979648992098288913145491701515218748378436159601778659102385390381962432999139135144513491181983448575471632066369992201076815329625164847355228797126817896637238803408092606466384736340132295458242864373417270938859632799802805752828101656422745136394857156001253600820196990633836197791181697120244654592951643599298642530854411152347347612261723676489987436632379767980061430366478518121713287348051233466888240292460284148810517501072732601696373317123111257471858649439724478215759798674180109568164390001423729601975792456500706138860216718951890303307070345405834049477291352409734574559120037475371677748730750306567722625059140566754976454630490099510075931191657330775140964487198655680432275621536880093358276428941014653189628009621989102590697484611576434015160452818725748693068662594429552324608995243782882294421315701149412515224285716240782441843104234047545667929622715846411742699471717476087749231755668633940994845963614732886783483885265789469073958862388189217010622928081432379533747811234514186255538350840865415236828725464933552248046163605191965502059396183411558858600565793802294835926247170706994504488606411065983536099820106578561542309496746636436115694563207035797132773162474103937949999011670200366351682757284478539598758829889282457297301454793528335344658966620834692672827278845644752600683782210475034817437409367743740587173292923252859461086373563141383073539924548081779143070788474198295448626040474198626251460451390821290653302362174510141292633741080142854219841660278628394676625399580645369477527284333363745601380077292082272994832181905769762899965172650360645252645857847913586577658907720603005712847397083793547199213428237886235946577113446182338277946160150770665847695186901007846141848496884902778838819254806500080416536945577428218848882268478926281171705025690638922267283884873420250557458802987607467196897209090214352850890920172505469199644127376628085821651366247912192548335991385281683933951044339697495761342794056143394368704798202747857637984897861718739194902622604020792183677093498932691055827683891387991766409774197927424746911216002868676361535943442587477866164808251290677862630900798804072933425680619482681770325947385020323856199259431537115838440514910075373809988372931022053637558342501024303450711794410887629569732683907477752332595738866934041205914196089925277983338939879043034293095042973245824774535246385239970284597208364418763489349221359864786020877772426082667837262836321568911179049110006983721750117643757568216077675285076810911239840977837219401142664752708280040683893204968423416233713395630773704902919601900193015975633869463210094236272622928368572703466567605614950462113741495845720165082230543427144633352010389193998587846421698084897030983894748062300134639611756188772157413239521354643990740266933506054100491192943422769981406706778397749707884564877943152635544419149951287129603320929390404024667819333263950954691207427079393407168463920093915835880302642396437151079906358553994107802305331570400703232526442516298275366343814226054740104915141170394919683324010802726354704022610318342956709306394707955722658450999816585389107273263077933005440589139589233556473330153254390506054332969746146786145755456824437433547545826748816393966527655565199970132209549010219118598205936471917301254976322574216494141004021676362283084665670420825859273982583145060742610352471758716939633182052072499525607309076551480254300866610204022020013776424894989700171258882964618282715690422667100364857399075811603950250185461914487949933311881719443286196132815122774976349513923050397879271555792952670218937506541767605757666036910299297625374465497180717441508765307183946385609665424547256154740553224839453349079641067058009273208578490275903623817950860863612437075792747691220416713553010889453871209110299827431004634681794396569435191111414205189369482387354300812454844653982708711921001222157176027677822270360656696932177984020737588387658365956883584133395966691260525831595113474926023790960962075320581532994975881544044371172610873518085794561755765703462492594439694197271217167222734612926656058661617358827939359000796205234716750601266934505901893352812269246347341867611178649898442297245115623893394868949569627517895674159082643078621232291494078385295208549226077105474209483657159990644909915776083606518318803341914833803679250822112552769323229982579601909068780478565975863645513424407998527196585867181256836056795181383643204563550294662584766108565391277619972252598931766572336226549666002719303325758671514502531702177580596835448156059938115561398138236693623684339627251843820548398968534742038406699339154686364010458036190933070450495394660210937622686658683763566777552744915053396409847313398876396312201420519038582145001947531234602248686062574663035941882238061951842833554651440111585621565641651474079468975593315411009555501442084323461281895670551465351276061264361009815141344642899319732607424925613016638284839300204705133226874176283401143230809447487688043999315568093417584900357323885721511232328427626948380448550943085130050156084832363990186426959040737969570581727061756308797348277403029975900852828230635403542496330816184964190424232350613899993522703953569790386738092027282624073404137076613168194311944952210017322490656245793018788958792982891567608008557429264860741373200138369483262120208945602489202760347405540377462476040444353863047353345695339411489866784767333733494449149922776533341752708489602470705638116725878076115427611008012947099658660845201973050503962545097430374683258242106931548612786324058483387001900114154234217679935800693055464628257561518963782995228511813032728431765016254861660322554755164964832245919901954455353746873160099226285851179946816350665208829014594161204584857408858194483913943034043735212949991439575235928259413870032221314354867331373662997416078714987306355876244093809263822104620639637791753373570513834528157555151756951126017303753387553855828834869762594036144478144912762641281752727837649556771579259513418710926331532709404923698798159162617509014898494850738126427488136013118369777628520820066948946539885583138437976917518900725654556758209512888090526403392661818012877920711207291530973090293784380634047256024157207930966294780361847908616067490718052070258805612355457978167696943579407932063312766787880251949449732487685724580287063287569007133146073948029281841369344564489191280587222171865943586822948754533080522843677539340717825794341745904697392481207429374684758513333198745303025113236650991117694203114677754070447023883123373003836172995982135157790873413732611686828027376993048057086613201701185083420827811225936242187030385399580379723849723319706663456925075860726093854734474172684040177088335523475824631985980980390361721389159923615389860039958075507764793851449033971907822488810488965022476846661237178364490342792563629688884030928166868703035912975721996298735178146904270588999121479097278992732094075727426393229167589099891295683287491739121487440695635968292766429420823823819200610676867424817964075677927211821068228297227387685663128600046279954972423168978252739159428547823841634127431170482280568126893532264146799479076928011311846663956670102380437940129929438043286220452106818125033652796809417311331367453379933019604298118939938443816951270279680353331900675045833813422700021203766692736306958403137737336067431819148576080169501774200389510513070216386031737951504494028517084717768178789124970938916670474578898097011826101790210785981600408742369101249780441353918755321724587062665426048957136087637454452560529612900678549097135599519519566434329205385851760819632837719631406055647097446524799056848610908750292144908713894386819218168961019894312992625672333505176901824128465997693402673173563176592805675822851963388301101855725377532415597572660022385684961618463186992175069507118721672557799641241499714938217805511077954147501883395324294483315455219575962535623481309082290677830189288771131588790606456966802549317536450408876113683783570082017600367701116280548476798555375071954921323663294119949544759024088441172621571522303732098743990507673034637769150911811598976434331551591052683869663628692444797740441305497857901993453147679987294418078292541661375086459209423192303879527160678933713866035087506705714198064723021473266223884934092685172883581514464722450951640677284949358275717959303394843357877230246898885688759469753982693592059825337664025318586041290226650611488300874416319165814673032143996970690172440091428026213575670574982245248145388382440402553607929018307818859570509079243576936477582255526874548422110751890923554256359372746454465424140890034297775202338808254802055139521866675566971450372616081577976392491077193611638950303202811427953259849556658811658711406669585303748613727584511289708373670649490276009745326025411517867087607140984529098626911779277607120164378723906532437697427345259185342723175987296292108966267852642512319479262016000464895849882354167667110737514854789365275662877180084866012273818780703680309500303761771079608350382641328499580460029406135693348137187699050810516689796796521305807962365778660624521822434746593338878365098943642644180525522126614457561966250894372510391169614437480792589400623191231158264356603376797086926038865155883108964717772538850430800729027721454628010957137220351909080233829975265906016646199814768137360610168246661520381838343698845033076096129339090099288098946299955546800646478680702075133349464665585227246363310037545113085174564078327301967494499133926988561942249315375658197367734702424387983321683256708920993304364047856410217018536426377232950713274010315363508503232912517923237045519496367606546269528597923010564804081034274236682951750640766692053536119106093443040006104434776612980616470029636444648786168544838611005626386709724308052852783156417263275774697333425570466677196472117991942402678794847750208683634434498615723308037291564187703906416424234619146604753205913702686890389649407691085012109312650597634034155114924755240090133682423840989963589087888997110107953705741810514624830310724571820635938909361322704621295730756307871325129840893309630978542005249642035305790330544935688352983041787661770728255530701215088076430836937552556780678181413882615122274161186116511800252563877395788022680334306992943030951119314192014071796298638649737707700969194140691557467419806037081377771735494652087434021513894864088427312782962511872462089262365211012376533734008913334274005589796092913134494503606673983931048097871743377338078052243071945455978252196247139411247886825562287965242429833798637261267278710799988397454707562172815083173380723149695177748515689646381515664672418581142567139557486298139407429534069891554148250614170268816713926648455540917706633310800177041180601504757718065680987695715116811152782513788078248859112226611837499371071148054204564849450981226446050129092969397595049432952352434175549918162254797965745136335821055399242998031077313743405877971347165993484121390915000161891341526429041041585388034658898852403065697343057921978012258677586184884122586556901156757846533236601936812017886472528891602849791232680502870060201817961947530407292072823092153749258310218575658692925015903174697021807539168675789837102923724257629039129907706036563103695308370864598182425431725532699614570591163427180847097319933309246301427509954587179930243756665680823171573258404035299364841756878558613913974663991445252400330406950960324141117038294593811473593316234242944890332681428384361667303597384857864313825228778491488304961523623845100354965050839418721474725317374125960357128636719419151377938901190514347407836520742163614109081048288059509571065210260706618930883838730167281942201710057057786213749122658408790867087727494548664303009930642417675919684381985094516537324673951507047564162113906745027225224209784579250233597581791819892119331518270258482012447211691814464958302660813102339139430822067827508549870376514075511215574142651805531949453181421497463231366381614429672373874801485088585373860823548615989571179339948507550205171035579854993917534760505969354163889818460989459927960071384719021189400578863097207845920920921950277176879773548846529210403956896659050709241709718747724272560841388029155326299654591711748967257442290832936022320396989068772063310289163445599278488380383877094201843544780818523856441892672932583522501925028193280410172126193625161846757819631658572521059522816436032191277479312625505681421892283635258643212528433270592326224218592746058744167363741341615174017658900396072709409461936427413589436986788386503278476388871620330113375000173027522247100640509820917057768124076489556559449806537011485292918179057227968713572195568657082522533194535616864582350616179468071336024260827829268846759167149774201389761218341471780609247858757191309325370980291772859628226465486335915529278769899026250210777095704507213736614471024584125648331499331277959479555700542440776790297838446013933682439525930460562791797817448424815760298558381706531446188669437132974690240945442499095698947426636419607095124214824153852120505643470623401282096476755968614115960101839473892196653633229542017974351422912852561848580968490009443851606727174677243821458447201462357243135775511811582906719755151615977981068152363070801573781102751064831775909020033912349466930817143744257216368767042498089506754500258171362375113976600629986811479531386812518001794400183669117824303163540080023281957517604007381419776806314641252011310232537225783796908187467133008921758108563853781019645369799294072266070105263401422952085155512602292774270496965264823553793462904373957216599061533839975649866140935622754010939243442733216471524933917017638579869038352064124123519969963713762728995072170576663752710978425813473086259925460350846801640492389436751528548815568426063713492694166627746319851658753634595909887694771893545241426782414103788844127505188961964599343206601496332320460932564327239039728704818726548699915707085891316917350175187917380974026353752019015748685906040821339043210417480024700100513825915442030510836452384181162263272411354873916913195207317027624755805855681494106268008296262297979614572803976909480442235142774133259781315539910142319498408585716859391431419756747818797971428557581400964611507029851978551852562042725905280318519186503872148320275393240677488174201779296123343879871485293452435059146228270760437237515870490178313879736229024637187804008280712471873170116413949915242321821148081023729342508482343303992148267224507469538552248151215026801198249646739700513507903171766124117068754949059485774599528739516580234296094463129758974808257882652701709131416177170432493471104773384524365561573731763500402492949384126014202620561097483494361865477215732595278671385296843283912577065857501871333698698328810242865477002554065202560390446830160907027019687279843228472521900453197591271436563223140522330847463980422389636387612033338977207434945740574395755931579463672524395563171849128705889724217259446001173766142684639802230534792669150270541257116016191177985659465003563395183812701977155876412340395840136553175748661362974646241102726666593826131604375288099929949570459902701806034462647826012660220905317676155610581947384800391153625303458502486675495112796378644278059262170710248191629699175788125672954992956672750745363649317657486134265600909822363286523868363277615296098175908843490328472028613267875460319183509005225092135859948286585437207774912588525915670595668752074099704141751416658901708365493437667046560372681991070936660309151869241074987878847334780626020891693787608153282165953465632329001900095110354174797062074667311857162957773995177606968100952538132417624319167714241900555221421635245716944150093769801865456770077551119687791077426680076109253414172276774009086629038606343874487858642644030805633674867113386025264090921979124948217347970952628318340390783915335093957780079270916866562325264265400218819555949093605099645305165525410549131611042136806417977441718306173026439391036446288977783964274615473029291233297051765752257214063491099446060687473447658065701265492391613376617806796469843969417189912458222596893530487864952855154166113979304328856781906004225186012568061587246389449366363715815075308145456114140211972669818480662214312383505580075368072858919784191060267148911753833175135405632794659775828870254048026474486306168560459923856361882975278964818772248020285145008157683391595060542616085511970021232199539804575120130236946251377441993713994912014124874040869981722891802851261466227289231314506941095838467805463008246252573390038507029332806340877567550728344981327296074050649252043352549694908691066184815218319314968748243520460547051017222395107100845447637964254389211027429012813302273370865045479507776031577872145664224004528767853751003004769225401304868282961965669854411137187184926129619742711164598752753992944068195017625544892841612677077863101708253935638190485580499544437885573349971196974317558942147764099340282878991002544211114148957061357783480573256025602043428043436038032209747174232996243082100322371793058751350392977088558520740470379521893736178236843925435761900814430681701314507844274247769253133338760094560082116545505696453603750635058964257022202293766763114262599242048732603114771132921677072064768695657230129986039597869431587934445896782340833013546381586498654130709541108948368096988745167136311706254420375084279787778942836741047985035270675175181076014283597382592526017114507509512620686637952387371784768235290821488980009178331408431523795065637284894109075460568080901306177804693349448072296129197502901928069248044540034738557027282768613698069736998113127355956754083973750765839205526038672825408849827480522195641295523842755053700438458300362712113542964653774660672575783079601004242992400626884753825501597659769728385827234868955261302341212982697923690195241975102150115765160270854744503008315014004010874440939419280736968877189725501670926195332837504052216803538921519478090626091763409134382176068352814034976608460471424261516277618162479024905059244029241749353120883367853351164437998053231494655132553018573741945539101143115163446413499700525166337242978461297844873123287149528944894315213864347042842394787341055222822783379509713721110410358302595213145053104621008989330041116688674581176825896450475441841596362190840007024989000335567638885071329821090270916671515310442617698198052099901398015813976554065832470635289471177434518517939199340653984858247361561909636670853621976418793469487803196664436203277068397072641243055820179247178625829579701005714815684859900739993874980469331481494613652860006965506538393075182743713285631747316519040853395492396777280778285602303285471538122833720154539951155200722336922904454467950420153782039698840920451459955983496331717098897647921363755051838232417933417241921163016132987521133031992449401747237654183821173611309606669767987693814748146063895025671931908426696370684575815634978069941098492410043016648977001436708062877839946655039165918234589117521558850700653690341406939255309806897366232605302253162280513577533356026901145224901446017164803361878526462234936514477229955490955714862465260972748653391927951687853938502323554790326651164724403869640597860568710344672409638095872633299308626860651916054130484147979781214023846423115297704723133038686471437612187599979133045844643622207126199923194406198824486853175551532974801648753002416586393713918782348625227987421371467722222451310641957404191670191764804632757914916014951345642846737689080222332836445356980466542265393337364141127522765130838720033606069021674552130659409951791089466938462977048930231909707922752942432244241602903053254420535079633280114676978136921940515688778338794626779458354536997634827135066556920465182623464146015819164406763391240176188422882171004768228020399995511960649868086799780624367090915934934818644924640489795713681229615655373022307082870716664517435579916354157339227434858537140899570808929336301404568994654386749448773549627162613668157286809273114246997868024211700567800420809895110803607493678087934195230008059291303876275554556556713082206381424456618410169049415453344153486333581402836906141494370537787585307805316818329077137507315827183879046498850206563957610631543304478690490052698633971895266189147239526352425130242931338030166685572238074945384340991306973229988637056278866656229076406525040589352396477066005215073441062725944953781794136715219505702087540225831959481723055532330487804503058705209405712536839024148023007649222478609800898518493441481511027602413319318045459311128089451965740223213333570880556090952399713258931985085576128577349486629826577542404287099745495010900797366353688153279288606443439978748715501194422036363095419413327998526401098848736531174600852174368132938256970866326036022111607019893483148561166261721659053053097641758198634949351969847996457483620489826977316963100906360487980391179081879670584768985084039987146943598407345008176952783136508337373565374395503939977183910662021675111112437922775133177149296877465030387859298988842123095620151153855527689921211489682769325632771833326302595476919890904545701176725611343546970653271866384367766488056395078838749036696867515904780613909118229591475965888628665776766012700104053867469764747726821643399068253990638066528787070965546270611069805210363575005689492758727372442539697395238221728771802303380247731541033032076750893271227202749018793477748914548056602236927682950477163671120586226538730979425077974555838375680428231548078501807499859985225246604655313069045187117779107526422601005711211042413157973994602945929892829749779783071533499753898503135825143262332411661616374169948723748446827996374022944735415462239799160405639006913361725926559066559997862701988291406437515761472056900473571614529504410136901438606058067608700480964865406165787582903684737632738660920353850781149219859969448315047168771419535991298770895819731134507208011712612581991135494746786124640203301086136801145058609365378849015669346178104652517508774535894299608811812293691520671079138991621530365623943746735542756767139394008049038737378278574487277649937475005335433261421471571062618493964510737920854208335901014902851450150429847209182417031535395938031766353047943280005599021446707607309732491898967280490434332634105835507740023216935794932645798688431619566403519932618165271771294824113219133401164635127353026625722062294745000226827060133726309128333414479660804748543036835146521268410691976154688832816279238277298195999411052695277425220626310117708089343008765192124395010485322611920884449737952370851805913601101215347814372566161426240769915052666711490919168919304534627790391171615583321519862608421150496012560106583959106813082492769895423129634676782843234764184011491006528009144039044494273576655996432525558111916429618202434646812707512045526749878475873081780600466053047345865221660303195043397712706671588423479888222864379368048079825919717631796209592454749962270650601659882393563668384241260178706409395663653166210947693423193304480933805655183051023735029101475073988341849577611548120177013224266590128112642684906588758406523685681813237327019192104464557196689726765832731016964431820737072762749379596176513123610628298337608101136889016914785153949735435595478696557826305978174294717342311655821603607768369389580336506745602657736175673161227583942076144531805293866317702026149165312525233599662561916053630181685635838606868446333883777429056215569445334535222908030688710011971045381828202644465483575449503705597088534730583112321460192501545501186424330653028191440088183197892841829818370634144291385850271544918691204244783111316304626592091553358612673082725030593682663934400027428542470570431500783380402942806654709028006394165943452598991631883759192922352100369657888289204207431718764030089950183545693411407319598361681004536188109469131270726820773295462767498765845665064646580723301140031988498412774044484088491245487712739652718054414109339764512409514956423431363060400942153220536511537711364783306713365433572475926886813252551052247224604796387603251851078242835288726430189575319760984315645826058899904029092491544952134443790569792417684901500525571257397693988970280273504402265965763937164239291419971425883813712422735217691873535987924947265568570025099552982288602716185934508691318347685249362293314649783353823067582892101182680597420300736503380265329621003219356853038657520988243670368487778360722337102239440005019636332508217746600518197932332720709585060751218599874818317483125541305901530767722019298313782370638812494268815384727015546956211876947816048204172216327132588431610543249905089205809856395175888280208080148788187648974807119380634952624182818069198442733874167999259591440544976079695270848893498378274402313194540286635215750345477203697318954764973297321886263933193112272232385397159463592581314324252125587174060234248802510730987707198230764445309023203013883826998661503370817345347028933579212249517028078428135322452623940532024970239950273881528038179710401933105732898554530993628088339348116855883858855605818065566829859022532156376570409242790208685206499197971535644925539513677779739272613319532835243940099654413291654559160978480901550592525453126992697625068198654299797765869637297139025479032615259856478363847914582084337732784660965677924122121193027463432849285176607478794069242401816360225202055901169932186979570506597006381492425290745398322027308464248973396419620147921464702673188393187728201907345010253258205848739926544461512762392617616665848130862042855411343414191233482715063760727354142612950181741296112553988135773823007207281427531380774706849492250336639694041586928808892918111231607469849143951188312189703240606776293812866719263018197412338965507369795472290546876691769891041830826010884686075454983271816045599064241437072567574731297368393222216915509637294240820230285831594836159379866282263854880598778889678610396938143080980623896778720136918324018990167887022352570885556546390268341644157586088797109772789566168276056515089776670276023441366604778574173458458229691696622247454797399476291598312291650832687980261798630647319738219523222587106910452750917884094786061535179363068129041705345951237944286536060525496032489596242697799259513542633660424050310316682497582530612576706143387195319570138636736548291737977169308171502718413731831358356105812969208388834297506713898015057767271965882521743782414390555202820969193713834875518722750971509396934451763010549077363265486551468184349099149927351169245163118283688676423182872804833172456197122178855397631216215161883243144920353833575804668038838574432032125670282467633013226006482063152094298160012964754148908363660918826010810606913194505811518921386896140766463134767858866498816600499196531520936249525912878004818434702631507363265422490381288227449387337256150700687634524080889764312395320664495395226683946522754214806329936645112181996965454411447929785895069311585956950554112608245182107061356375777894092383409874909558440170761179862260082195725590662302181645899074816243178178223520493820895413867831437849605405974394032523696083646638719376391717137424721556699405434519637024502920085502078029908079975555277422487716847407532917859470524580997474845362800131584392059816099468868045310349548443470983203101687465778393144085859923903509785156020467064052222800136461260294836839558236513709118589080676699016622247138274681035623315454755450828330200731371536359831657905676235106522439766675135398208514633304829525160134040110472888081790100942188167328123434790601022104721753231235632646851295077987012197964922699441629796020426035556602174599431526202096449322120824105917319533608227871504564613729119989123304169921654224506808392451716407397247785492480541399016971438803874063458479232867099811312473963067175948594924757803535582892426972648712486057663880992903588813509644697535068781844368259158883989054685038856216744796316831653169139538073487989320955542341213403459105706163894681445206532428475337724291861427763175888982390807892203617984767455870625851290355265858767665070422185487232729708378400834126105917192537878830421970011625385835578641248512252351684692372305810740135837856365502426738110391847472498253012758517886671654803897581947189873816164731145061493766184531176269566578617086647884948000057185131003431737935762380490468567858118572964691191367971803894709343942238601733380349867996128029489555059701797312120954320245608170408227936600652238022688695281272665713951633015786373743765292512144912826829811653433727496061025836504583039603470042647923084420738638766899822021555347541796737354342940740440688215573103257282151656719347497534719762208799256101125274508618579887119575708061895666195002768163150197759276190027682326745883271062727781269808117636961386235082104915276020471660224816469731964303172749322441019012258194604924200557452406447853522667563182512640882584400144256147602414995899162466862955960759358311167529015906472534476476527961215732063176266314860450818414584625492852816367026463637641932206424868591302963157163802411513773843981265742238015258019529903620057928828189448698148994667229385602932171146811838080489481136516819529521847310216040751878648549682437678119953431193028314857501924631278017871594722156791632377929077440455044917214404627753243441925905711794871850432627521649913226699592101887170574373111856522498595730710028500279061160946212769520461036056469479226062362264258077662097082226742185361661059188022833517315396799094387990052115519440421449217180372603815534479235824536407879752613924294064626699248183251996869122878442910952489746666831353559734597658277389145390572326270849012580569771446736663590542591323520936700207513291792209245632966802268731598569416157003131367572512404450885275837140941440727366164112071753915721173165352367884070311806280216206723942292310291393024831233716160404370101112950081203324842707615120688011854246104097910896705140880246116665531046925577137432689888646624725301029219147597486545839053727235326884789680020312850533574612135706879280138108524604516268029001091256006610654391553331005747511262729261511420952739463414184914525321781474176739321543341964979696786466607799843454542491508093796648319042333291296244129366836366134259554723986543687571296053068241284283894852471759085424371503491463145597570898153017136434588966680525567652815424079489260022286589613256249708608109162749873567092307593810116900839844607753711805866288646794116022544548341887486779883535071704757353142760965317484131856134878349770249645211594675448765104822375260465355838650077938927071520875449287608583680508683822791783020137747755694151971216551329931887768303268615175325287039746734429111699915078477671436905268363054525547524656879688945502378684315437926915450995307960725408714884606351134133669762524042752069944011645056489978505166507043930240659509387925994658051055495084138157852493969513372513970473703425236205132732378682471519203210114747758834201523234497820377967802385865272146572796148621345719237695925638064095908058445736334019704722619501601874633337871221850274571266517077313542122725875849690173762717980795342414472334327982150507098592164128421175556402804359620510714584490146988049679012530993299977826436268174361692320232354444376273516714595653037935005991948885934727730648345074731234804524734474005004355246403566083789722878829817595166882429556233010723916672656740842674346856240787686937297676969445856477443622525367300802298568068361328033181407191905439945331583584308155969932602818477980039572988462259268625011951540903529781567670528234005525616193203457465853279476114616518654295934856061259835446611949115685700515307564271185244274239272446227560647684323907963219653170367252222226185636409817689351290327375477558693787797442329190496119507759186492723049564869792675023497352284365653221771349778489148477506723091790150993486501192313995661076624541099360731090414666273086653583029731806088050546303377811770340986612595136364268149607782681108606559102308542383395569453204608776344521855156606481737182923888994389098314654213666157860839303788798447175885144193830320520055132574283006648377362251192880852117457259837785202570346697475498078149153580790762882549613599300218857296820464936239083898079971663784086727487723245958520421434868299453487340580085180891216965412740141354534115506208609124315001255484089295345437878763257055421772228842497210495073604054993477209372709293884366568896383011254627920496563036342874934411719574392060702127182234106561393703651164366206725702802609225838791889684480774088390336575056685747357107186000643976247614357575490857941057497980628792933136037263112898432261040928806160853562654990377570778742880138797116856593919738061233185579035762160787864798240984582074420672450627622345488995160939974342728398046141212936085026042916425727748706225270046540760482994741928587411976394611301631236621241569216744721642447628093050626133309363484135813191322232933430318237763791260248117254738630119182181308567648965677283270402826431284316608020912913780612471126926697299121252877247987117350114822558863725828848529583777351106631478204766876417718606035744642462936169866054169410928719695382784658824287542624941105578571730359241412623983355917373009896455438144838382605087614294608281598551359980954995217979781402672673697391571802361743387277575761531381028213098886141504959680136140288053856646273153507517484993375645552354185859077877740998087046686718429422396376520509548856458025572597009483712601608899520887345273339917728216876288108635413437348526918221487415720393129887717939950772355552060699231334762796932845179923190284440716127797227226720089650443929715069659315364992266328958138201818869081166151396659071420948116616502750043836884167521390093335094004162815069314415825572617757264973561310600685363793013201714724074255113460471992754245956929900448777937372652349633897630161702490844817117837639516530828675468515452854159046385322734587703928065170674917308621993207051169743259061884661180608675643955187025108559481528771674335582037057864083449148061016757595442818134601034406004150673834842381453147726760569944288204665337820884583232970411276674691408890034493374504331864244939359275954205525065774771077621667551475532551770574746349345391279571021699813046721342063066439415200282260784034994708292633733479977955783241526747663446152278841724295908402135280686440624357056626007346028887469367074840768528139459629080185390788384124355601547301064839203273698912057914157641110485508263318308697906885472224394902808009256459935419124390300539689288875299906978603782145028762925639538628159574707825669642000966114814032134838050787490552192201050965712681074232152259477478011216810880842993995578837595410166640046050230896608111823926757180073998267919394623461033544630369607896584749990843335926719627752229043322151238075478436277961331085499093446690604856080333927669669116609739274850919506526724711828430791904363492671349569256942451514338448853137837322778239796779081479975414715374280306703919518037433645926374965738282428000051280472394247915463839853528753399207379924436413294389997199599334865183727625442750181101860858814792991467405946563472044544019632698587200365605568430830324428313624939665576450704116730855089634900115011062616299628322627029667679807079646249265664721460799843190416421910699004555583028648825680324217049262708784312005520637113186819251792901557589661122572387591569566110690991254614179432580713413952553695143520875723501744588956617246571568307942484402055318577454720551379718713574292597787739093930701338205719431499910213411429130576075876927587420804463823637993482938912496214311944815468604608482829159590101712575891355147426979369749246434847388986647331811616693153533141459434350065256808973904315282673887048346726578035095840774061166952122644971998761523404403596268940777889275702919526005556365407071745493080786535635939904501481229893422726463659611304791039597680483585435685339169876636553724011130174835134771366699344584090914477225303656022431130030790496305361213250039366034386337785327200057928260552904438279029303625422518338046481839777346472065156657431961301738766058531805234127232595469071636887801861624742420652521469117415655975252184107846278657659936308223367464385583874210570589235028737861100431614884362277147464760417219451987908988053999295269166638580115881026031117677284848214602236653660499487298248454976607373096266100644893929746828044108773375079666151333945811052062765017062141688129304457406760235547027315646895001133997652670274552210707582409991828857655087912003804268436831690303604967845305871219865484275914519834257372626758828967907273754845497318265963673383103520676013585921769569031544295223711412175584211856269717741843672062327870915694492699859289212961635576168227891277859677815950709221115467552486810626954151919252965793176443018483058346356190882038279418926180135418320788537643809658484746165101869410038113077757873990961224898110224398665296041498622490268648406026322657934667414791801960676265443764198327577690513363247393641515995810878187380373737335603752264964137856420429787794600738587972598763126779393991791626664391522657326959427707242932105096571366117741107835724835514056365671842659600209269273054162373583144654341361429004849563304055029490505798534348990817915271170761499703186534727073146831226353849007583281269755180196234365450805957818098570217418066174875630714541738078712289604792561150817230263891514753916395164544897317024154905451722692141072138476308894505313703727138099855960098275023615482372784162590264332414757381463314662243273530645769495090036108629782881624272180478013269188806860096789663302930382215477250263060139750837988954792141256119000557609677287015095980596447154589166303413494427364587736096291841537712067847448439236024578576426505862195993993353537652806902611356549850989984052129583360855187278057444056046452218209494283796898315825258367909706289255338681276523968972514220992766880349633224770333870792239374517696746321180645715221856025296278807319201658727115103136858537555813242670599094278706117651637239412178093192629951470995106134013197529005392986515553056172871459920176879054003766983026398659824892504764676213063898522874328361912493574637866206182596842771932348408248399409159471067315428651643501003236689274635642763796608408154797052736660619500445770767033083508627770344649091521742692926944398783458378222833893210765193493452681976052172970722096835006902374115586508621422250056773647224912163870050070501988786869173777481799165937566070466725687838565991643909159798222750838038450508324585589201285316590820359588208348878428895722269395814841855833944522698571067013946715081759379276729014645166447914802526793387951183780482483399822219998499526201555436662206615040016871606089287204290850114194786681917233325612636663223416264643135572193661563225750274147837044847151653273120856515900494367485146949984784809712620674050701923020468696962523144390390893571409258456510376117202236864418492253863229143760358867080050101211281771835108855946833927561383247326386139184321917054236948451691690369582704039962801108174234263960494637909618931792135491175029462321966110984001117973367510565253047720401557456437171723573869836781552639418752096202699948452894613628177149712893350767791265600201331601992779869231060330815715226450643577000310128037258559757763903957252644697946987720884512790548511376411114887051744100455021818454496316097090942461397249974997211114806780210801228824857311057661433495559264632085679030966025020722712445998312375754682918167436960589219593473485278103736196946136907938726196914618843912059718872973604933149157713546616306142755929370063946128998796816452990813939457282528473849436976569608500450132843542013265224489161855294757878280940568588515413080278902888633113846457500542591825023796933634702500401173394767668928211667372869829828694356781637625763107165330545442802247290225023744516955183240552387879453775056254965418743315260898757515128925299425007087500998790267167630569080454875596532951464799400933118513581081364194800254506270774269061440303201047466331924721565695673655021206229801430934107338151743692208756343690778579611848372279949923217185717538395382573212285782907888834656264699646747038276540606195854840979044839603652498906944583003814217847790476850668685486058213424969295253746630170191239790753346908484349082870506144113534556177035701338323425223730451164406611421529862882814800778769777655711412100977221544471334643476698290107915891230146610226637341916199605045643005720148277653636829530540529736316003606546209780870790042923093960985147417193352836224006219668431286781761628497282674740830723803932943381050333079624491835452683694450436364800608895253990172250982324244583147921371945492506064365738787490826457567074380705320420013373204591419871086106607939479250911063662867443426972161648459082383060982004143958145460795684256710649208155257221516958103397251364830460775206641641885750931561720099415682538915701751267766132275777335689464242230692104942317873694426185644950493305270107346603693756527452540848321122314963109391908024198653321273078680663448825849810436983204942290098400929101463451684579742621522472165883257403277478925440657061512638675524349283984404250461016443944449600690500520406983873272259166399525929368639105306706412355330491137061524217320494307279126590670196581609308612945859470237400414294191867351892212643710365771588312984007094616314577511505748771333208018589960148536833883365244026024232214685589051473766827741519736873092906536287006624504586851088215125204801945779636181675334225258864493460524551771393394356341894034230105913930273130397465178170584390610515584645565012929225930587493453145632614023065422496184258295003239970448758348702878070953794624414931467193288261438086746883616134287169645751272060073171393454424163090729460880362775534161384422452429962611113330438014856342117984240517154600213268055404734178510044359859540454590556901868137702393966532553809296133073728793630216024384149828831116595600472761862521584534048458406852137750062999763819965958640527955053995025448895580003674534465656169519368261767853266139083266375635532200870965485535130448091136488313029114524311683104488398616447529497210100108108181631909998586345591472702123027957957798060193587787372331698143155876826589260297150998436304421460776321014024905539514226196119419281581488694966714528944786557297805319713498769738824057508871390604212972317086885395711810943525698563760317821310098393654740759912847882266435264915834842933553984253317230390733906037801470020115826372799952260033396933222342435758979553270235028270896134887557171818339422875191242958007071235354011417102053389763597679806967358730001930090418191112685623986710790545930500795951733034496238163088915742158659565179409108706353507948280458196138503029419214393154486988766657683122029523969654645193823416974967068818598782972403916227105338879396969073895669135887861694751812388145412199336964747407027071673522028022504393899301298216223416242501523593666903436434364344972165178997288132236530055253571844614169937098707580167945328809709556133411145004197318317581888825333091998756896475549697044377835222967153917537888253673811084268971762050993185982506966795035156717728074166916524002452452186869243986758464451624155045443947924122484954261941213167863209368555124749036365318470106718643383687368172136712891694727909016498638129226080763098514428190329349935001309819407585906343895676018965305667247968305433517783659301158361182632022382741996134696315566304847789292013513131230336285732154000438532899682597373735099728512934514830318083894875242289015973641667343520815901847241953527164771391269050289781058610781895968737337353770269348915140575905131147264100683168356869768508880754730755452660724706564853115548352515344468573286974853586060303328953684037540949022240009163446136164651639682089469775463192307769093075710662058521143808281498355687360455923637969039961204710830315173562289910690391658305679901486866337611327382019031238194112382941644407628988908768964179284888444571183859705518563511693782073033869905127320977366668495822781572042862914825232304467371718752800899159242645681241574510812108091195742540547410987606020980767990091008386369278875219854091416743981134207642298824876102051212791064193572806067298211351470085800760421037762195799810128382864193144731157299277206172631412326859214630840061170128211193479616818334518916079914399810703241294063414911012618911929605616195836087379725466304866373363478929940076292232127920651778035376887295479648002873678020784734364125200360720075743939380988047832043178960516689793495121612478707435952807695826665914982065263510221914469033680156223548778886732384698818885811547530070459902507634932822936908262422136757018169198580225998945114025624253509347684672342427679943352122193387931053786372950221058199503309418262426324044123800688187146209266290413446156857307388275949675687955208421094321864393811157332794743228734955719306048745038157654535931819797386653941112169759915084437552551808196255477466581559867009242905603276337310826281411607202668889615223757248756640722752702116792431687276028091624039755753908540325590820887931494579099711163060218515944847812153124404614446496430410381105654627604459372203930595343868308129923936055014022682594327354012221087881958548765657897231973810090463054466805194238229559318892558223706110809383291735307465375911399566479555621439631543424387668321603044751396899931876710763695843925024642747773386999551375211504535068301162981725056683682700279240824597087025945249861365927704656449283643052765950137682964354991681443774787685248756027140432455276946595845809326270511121546235865199525684509810333268548602070689284976196983521356490701133780431184922139141637623765016561765326671313161537602505518705063712061141107134330303125014161876450698584947030444707720403596966277626325297257831486364852033375902949406712005963616995267397078064743182074610024764879848812439330117717725743885014533640311936069551446937286285830939525210750938772110383496012798929651414807144929153399131826667369478410499888427931921325466321234303778399267301030340391528118860541515176334461216152201368912499937056721841225415789260595425545423339181890867220285332601980167779313162607513273364479605919940617149785055416302038113849663126315519628989938179748647540413400491380705394914063532435029487325197828474559332305787890254818381240616544007357030602758667941057769030483363295772474789677156250013426580661757511811088787451933370543352009031507816530688402150463761909745846594194194367266582792824074035994828535175893556714399292313887272721632478840368854725060886128088876075495628605851649677383768571540877103810179925854510300368976363336945093118371137427450131219699078920703692734499690937060574339402756345835755374548212822601845493175627248266208262931775215741625035854487802956242085589689914641044578460322902533380004804656242761007374454421422376831471231100570635759669176115049921476764300940347909770532165315227225331876462690324334709032838110796893866288144688031176841797209130402521273172275209632188596285450322095275125276769233008214750841944036042696726057953256964034909461249024789995858056358943115445957346786653208787482578712159468293717484128853660977761359202788321028438889420018993912750373364513385470627714309533113706769320761822649412902355758906781670381054376094752585109972974568082994801890102890955936028067013769939061495453884185596221485934496394813354761151587030845178308372479383685648566069527034659146440893877194885451076953004427598599133162120486642945420161927236291367244360350575183703648682548684241650664340314495392184418340141688860020154582414410276878289858233039128150344468002722642170109616825145752659224742770964889278199933605716361809885262697117817425979260454880370819240245564133628208915341680446158623126009694994953406956463058749972709790741800596303279104271869409585796219450149145210215206622171657857804020829491754950544364834713255510534414804238329377111638108376420858439270363260060706682569861651640246292782147408619125112458849120458490524458001547386000156554457065816785047325873956759523627786881462078107053405405952627879181333532987432832894025913107336397735345639778049443071284587302581353999942202883360534598177764353490691008976137194962420845738831688419891725717376042839578490046858256161498779876392422374209190943780066553832878847930106503968603760672893069556777038996382203693655557380937291352610982746152166952069408915589041827516449320625441118974458555254156645367294579517339310055655319168170406219713031546937034933480567370175702435257995942029735371775480850650880696275656648190096992069209358943718339570263647686198556575149402412866047799390225209153489293987834398433360385542096506354806453282279222247391020868116512634626674633645575025456731767786369772694620282618725428593372344003229187981001729921439753695253369500965049923615233540911331849775039966248306251650388123030035501025347393038381829602014864750200050420561652893576889858132021980864288757663375120293971555675631267993038923483535222382334052138595792089785029208753738185589119541954821634446091647596503040485394725990879572376525525044730071356642653286749637670910143815417731863797337427591723921699667090915166242710313306835588661138097468877502960270833759506302332043223006734049405006076080275439875072962396114084699536187763266239707134595975591008240500174118380454386962463114790887166176957167581619481308332022687389245895933697896719414243895622723615971997434161868019681548492275291422799865177389722047465442863572528107971779970811417891032275001561900580971352216861907952775290613565098810146347208532739582566360043678311562396534515314646678174522674132392681882890764275560575009738421787529597829811102426145709306562390411483699835079871125515711061026032336843673715759660952704681011777427186175465113408276238757625604469918154897653044306622053466194441503145190291084018228455943300672848543192598349888047189375401435064847553422544555274508696279610876221019808198084786496157565808851452256539248301233792322401505807562020017680101088128189738694758983666561217047712822610031736559787874532460861072683023749808063969687450493935846145413968361795472359213283325369090963049463671253019458219149950477230074804175461331222139423904127783871290779141783358076215856960223052211063817192922533288347160051031368784985073097417979248214544459032807751164886033452703706615475372897712787934317787966370717638668401532443512233843377417141055147356720358875219072228758824280094314996370620617703119080667871895742718118007973888761489087157885567877596259969679525407668911567434134122598702455283005951349407295642943658585498754101221553137303795398749066754320446956119060814026930322737255151805492061289542401543058880491217199517730659085475901083637548357702149550965502499397650666216279905835806520316404982779221665931671521796137751063544353390952437909388036192612176132205558564167773107861509320749015382510357091508829168544446223317935133439529831766398559451068908027578407781908218902473756880677205140156215926068424720090612937110230303809977365748201979192940525399267315039324262707770221509336042936102579126935052780046003035441906750437873268112907873606933458908561790785326422175149370263353159706005877560191692944404843432269454482036116412843954720591523319956519957658877723427901891590156591566282046739052650897495640182996687527896428053182799269122330163962343413942684553585593568490765432203782079778107431626467175822700471617842560788336901908505136267022575455656847201252453411236998363652809092357141768497249782239993579985014765391610746023089312277860513139932804612873605888662597182033959080624910429695786595237635251461209086073829152127465299109468779201643402316325845347005674106689766603875218950077737081753193276248004857028866528522294957246515358955413524958935937073349894965463175342643968666179742557581370530088011458084526518182845303394071748404386081123477654765424712302344872950190760394623911758693523913181949725864539750420879374366527017572382885554406444566493690538734373429257696469638932153969037139265933082587908490671398032793693613623325828778131811744527501848157503336681323812924894277946014169602759620422813790799342576764361697364913771747519791227553215744374343727158621551544464426574583337725663404148244217250659558745719882214177300165405899178803229745559535597914017581491460014169826841526866411931458902126109395404597006688386352983415986733133146229546119138070368565274038644566561963965037732070632365508459017499075325680216076274599890701832542309563404599521875934941713364569917891870227753499093072216351715776066908436432545277540728670387306037854558465722013114522671597964526652358591142850116889290709544947681205441364192144355976527694829096542725666263095960536960053514146977633870109928724233582379314745673984737027331887756450289987578822873963320629101698608966545476844240002726426628091139314523130036716705158839120579451365736966461984738926508186207241979830149672828231221791039442484067125859965880226383954143083540191290426062091801187434240931662674641049197322476476754539817589375119532865313926169012049699300753325027366605296536315921696197333761682883702731074246694356037372421652114178481563412738382036842794783156317020765809658042535121299932413221180749952508892803351678271332844430562292144727688831815562694132742181985335579719039136840621169108194397977161810665594939478362459444576378476456623928632519192965671707607726485945483153919905551675059368927973443383649129009307987658210448599753962339531292513484113705029734117450646858728656040184051681670319534276075839896343409304080780952788764782598175204420837139078365166560065902159912121639291674109064016046762972960017857890254419045904509060096535150527260945274728684642989801023333734199413553031465062830440697735121550170669403570773318584351630140540897472119315441880624548052119234222594088832406376282451252851065454753881430078117083970090665341628951603852680963592330952620268404918500798227916642944357476267447870339230465203998516430711894011263393737169160406779012496051749130828962258276486847133505188416917519093204779353595383680466598476597797278362445669373774504716635692367278556555848499831160594750867298890608097913742500012608866214672473820726664508122318756500514286594948789619257486760945519364570432359694824550157299676519365714278654020136392223769895655952904132054817714773302518495527338660147172099998324761226321158804668991372559692660692620324808564218632775796464852563293012441425766591493263330922836607997554613653311151885197986810308989246757908306588244733803834233079410861137143941103655186659690274765856850047363497220511024502937149670308391443345414670426370642277629903065797599169582878984211391495780942584058820562325855667430091579003908252228998219890861959788723356456436691524786731571689099584959417211215688837559681097167602627817803403756899324578448178397346621214342805418750677891749167278356567643529915956910367537263360209364640362670820823305551215057990892371746530063526699640906314287558930232581473055462790479312485559998509026809844784298455541755971571825510843414257669112468758019607147954143300119954797879397582510644454879630610982104625421377847773013346678579543977449151177636651391663291967498770828774099421088157270213346949774547298242631536935552686230015175408913558286653011795970503243274840011937520451538755525915379373449791501376739651611682696378361389642143131727051988583029705645357359079344067808190438182650443581235817656252923991180133966832638154623449704148111154760482469376787662321370993386940194865247076789939081393618100041075714442867350438889930571783000505067841623041888014397708998829139535752591051739516710247011421729905680133061683841374670684450796028927680031786537525774357427927354472406452432204122760678464164482747993959517161302040555915666672769417786642959784085522467446508915283102182222061288493772177555043024879571791779619127303532975009358905569237226895520043060503957435139812998039707051113720221139836507324728909111854440438475246324390871079076873267133496594747702079061678066437700539133354137785713784936029062333271892563472489953453281563125761224086533763996380158215075178520578830211210762632838611292270518203511871287023799983345856632630740385872588902294122080629211626556388659508106895575082051574930305633574926613541928116536172764353363090183326337091707115436284736515226179464446359410571309580291195725497911924591413876525959135682117929253708777168680077527880627935620922608133015638122600181368873136394813348912236052924784550020342273884688701452079062578965311005535764533438518883853805836991223398284326874667120553221742038688279044486227042265020732886324363544224350210077498840501918791153670964112703523020920209495016822043385995402915577062511496415973232679103620289950971334449387021389814570394552121442329578905208021615560941725971935314340938902547836932425205672994535047266268250765604686412381101493148829472770719976281605763518651366946063091787256374488461585231192104061513385839507665587325729797380862091965850476766503023787802445221646944073145131423042668420560584427049393178079072503547317098255537506063104399608403927344950622397294131318717831172928656547491552298623521218193912536652550180865751133758994705477428891877547800465262836367820346138063611563887119493593107833436027128084984585443222220980447047142217259941900719287027646552673249656903688629505993201963283451198017814823828180504567361509254495237867295736828045669426450641714503173463809096017269554564941686651553137431401799137408670135112971714100567574471075749198195003506756274386130048012576993675076880092692280488410049808512014597872449510578987971514252776402865371610314931463597294451248124648421654241430323718419676331864741140946770141575578733065173783142343946849381081309500876016230781608916886266150237248974140259880721226108149112840191110232309637216208496221426731409425193310533724216400781140601642916903853179904857839776640241708407971599199700438551037687958871205881445676055386438087135863164039158720562668092007141635807781113254712674792642294255815292821717792919932584435481626353950751229656968262501209742127886482727428751878169151513544062334881836956103903501008693919189102850651180659095753183434232641490943395856479581418536902013755442546558893590294599815591438960717312239337804530802530674208642635592287057709317140728978408944730628046943004920297513142451994221541799013362146243097275544842245678762747181285190034959928686917751693012350802171259740355334865532747534724390638003953175261474456307756408378530787416819828796010905561559430788213458151069642087931776217793748535227826658991861494113735935686510229760503945483842861249230594214680504205148845909943416478938481010521815935411941571544945124196449992886657182089087859460098106889777074737647728332063513730482938999095904356145414888325317357809242030159110157530494815449232520797409576001285004872151809613540762021887233150678170422497199280034136755193907824383549376137492912272401397231984809813028144690493648517629637778184998544209691400813873069621793671407820138175409269368665210971850614507024562809537350347474642634540580235106590946163373200571277768626682051746273085392145310648161157273167580090700910237560291307962520264523174182158829066902886553432962710059305029869765094970945386815997265191655420548692701308125005854313584954858862799094659294085713818296807213725147555505437083838528569236023936608974314601772728143578297555630822913728460909944218742805723748238896009765877170846864970425256427715045133234699109916398186401078335599005494587941996189672472830036038792431482781990523261035180515552443106488686899693301870821162649522412027010931671390544504528317825601016416111852486370369473181255893796719706103783807072132305689604510972686875163840221696963733247960658500280835378506955277276598581743424181178630359714598550322228068949205799029755087609836122294514679334739197619633750164466121226765708001315255903453768791228027843832978757868142684622479489799837343549292837032391321121234383063363830320239256623323595720343932845599729813801286366981620243830694863419177850124955660005797271929218390707325190793419494704319136410106450513138690474054593956853340368904255219452966376539364034880662245908064176706371046242135626309363259494843904098740937849779850733757699803123845837191764705543017549525105528503157911116205865217504154891080438624482284671576071608105834001259638517129024813055487494121694919768949697564904789605655312952205461711427157418912785936147127714425602092278795777098879233528086389173054118375090890484845998621600298829199225684464976702887424995385041409664401362208546300733697265552338308174171804398324889306341104023915021612191667790316302957815214786331077316454662951310439653445531473503626153935246969733520399148062872641799357042546138412120790075549085643712948171726824522362111179972989844098584299967801922589240408819462962730487188292519856997633688301194721294916826230245959602963828049027990056989935215255188109395047804292124188420095490945896472015832404070462983377918011037161215777871621046316647578237515045811613376225811260494467382672710898748535533886675396250183266787425455927164084879179255361765345150639258962963774509994810223825789959331316346491360447750232281155847886045146391189454238690334572814462245966705809199211295744590129926847416276987013271378388975389723786052108869928383936190918036435153984689756988711821456468916476058794119019288212821876631149521511222954327205721327486057058127264500397336638287102229922827901565028135146311165653574920544730712653994155831889842683757301508751150850031870916294336350693339605356115876223473984418843624428606501851176438185311934843176701115845391967943566156327836384768491998610671806703724921281208441285928903519492869164104127403571418372405452063080827131578254942280431079959938304681322036045707466424680509539020182398406105873501781866239354987617313398289093574952498594298458025137183574733545520290224066056747701102510825213405058750018040478242634927195741603132769476187555700072733003593724426369708160547329455021978493664086011956742724789204555133373468561796534852621394920932248313246622211787608039531916340729427317083504622940006552956937432189081834325089629842951169025872928334022208275717927248651943936874153517137759493974618493703877396894079138157445777231011751485136298244237939725761510032327868135442426378755941860019883089072126072261680655616855252606513118403699221967845800215417152055388056404670018111276656582161215718468325909321799472288067219834959075548926295139918824361351534296608333392862406513560647171267639567943316590683883368181341071685241216504109498328211244961974576746687330806629174528917255726475942401791203789748451130843168416338825537512485042830566658284181716992134831380569599405923676973047699016589914302247232148932841001814302425724092140618128993625737030724572136038473473840305320422104223299828755279635817604722035514714068266753028976113386824458479807674402583443886781094782803337866471152522791651662177856882115403535975930139829524205169233038618481637409169728391621028417574149790522560498264443896942084634390032654086728794772182736179001237862641558686510676451780206170893018733881537375570405842199723745461503847373094057455418990872480042773843486475865401959308987605232033096048743388582455449673995438956176028291961154041663987590133228518080169884441088273250648693454536318626408354254615393272462079873269158810566576656285544149700029753711468184873905451924896567109140604824987772085874118687793410539497699624347501489369987363149861542548189778395111223475237239723872115189760865939840334522256703628063600778596846985192972167183302505939379982298102444152946432391653699323347690807535537204850237466692694103249835900817291946092109510046836291496457275832993656259494108258735062977829160359290322240705355680198725869808825554140665537676838874826128170450933226546806225597580924747488199620330028115693188806509169614923330386447696951456930165620093676039638132884410816399189416327981700213235892595211772642978145907396148989726652032529003029008574655428345045959639930585577073349872408765263967540800398838127109851628685586663914935448153596184680377992638905295573629198732991384031182131780029233794766974082293844855178618069615684591813764965687944083251406555535332403569567875892475679490073816556575499571280111621047440652533517846389585205084360782419943434149524815462358232991215977835655147786342938896252490167590032596210711103879497166497128120442809552171851978505120823550743791167617874951232818452630264018978725049758880574692822437861606527798716113048298642712843910190829049694019082867460862166903522303590814846916948150713405742087699051724910485488087083253977311320626505541149092034040483648350519300370149836976294440261970707913444736976443405523046399816232994273747917594813270612917028888873732466366350582366247849172434207641139332005909204800186867918162497809734189920106403213585950233312064258686763656960677539647266131025172112470329688337019516294156102180164930137775722857739556660101682283703348482914747112618474639687650888455679465719628012033800843872317165477991541930861406488595124603830025053096021488543189470977350929495831520571725626191405423791235383004618045632217498459912525623185345213249424203160204419760779697815195278974513941240998951799049265188841021826474138979300567980695923831527208792824963866869470459817469684543935764353502896700172589894529407632943493997987482160972694712884221689032665353082378339742396253144108065620132659238908157989166218239408426187080919672892454115795172726606759931589323474053049270421969199733566350771531000238946290440389462582521772346740068219462118288982682207578335334749529759526778352037604974889730577535389538300860866645919426910530782669232453412403443739550771987986205069331036081380186403300550528423748378623256740165153195379785312448677538316414203009911676030823209933288350097609670685430603983754599488879766906652044491482890752270920711159318716739084497462744641321925857383209311954770611431545587791174471515190669708993603438180412468732335941541454683668978759972659874914908952845464298547994279073977840463733283034948956775926891058263666406476850204173718356745431498264482186720982556092090878750031515107183345168076082209567168211256557164690175178992898017235618619545016224459852164115910972272712383474453194146958139267235567612206539226439062001326098623626389694319226454250068776363850843589245494552302754159000033910659940262860251301158623511832305064734614645994081205230959278090902787241431951608778711576687778582566995610685581985989663127169027127262064474478345888861224535204394141658850545444591144336353550458241005751470316610797454161495928866948064162574113099757116322613637889399115044847086302650039240470091490808956554186435730079663731287080015754043521397920425493605593794347731051339428177276507128616893156953387029317123829463933798374441168793980247823122366229180727500871372807222293682960359683755361299363053063754201694388229812528227926581173799129077122113099997754963986101975668201367277072658031605446129280405476268769459845656067357929528261851190061223036020053727608145988857753339321114220506565604420711592065581636717320804060364616320705494157366437239899315242403772154508838493980452467127454551150006362336190212748511379408598513830190378125939286098859075049830287474756128694583186121881634201482054487371486044335450399504282278791064707022987344610110689560600043470463330564303449762556085968658669038148164448288174074627498018785548002444751659564333737017354517297127108636852727770715670357318412793756024722126306052635411650681504008019699449326314351888391488974106102559560766987491766817896740407297809515767300457076517498977206868217495826291834946490410755367937198242187033613669987334400732031619528384994268324457735449432884629495190955868210258618171898859317153719877307130062711348373138818260936492492463715499444395683935450517278624367357808342190635784801688499152326337538524050268053480859991635124812691604759068240280630112287862339993426487331047840432799474422691931954700140198964088149219434195344600191606178088042374672766692176196938704492229768098414344139840863365729932451495406924577210474311796927478392478504559698147987747854372836674008094292439203873793850870806685301003725502886821386363069047463816421870772377130089112019325857914077561764820105012271690328940160330944626829942812617899332633499144223568297552638193434077497566000681597148047206912661105907638429135407437648713152520198665919158458077946691495119455361566822860827007772511785154625662972631037003430422898943892891359494659708888283875776423774698396355494916662921553237380186932978796109401092381485669465851767858707061748185678859193232045310918691237200465001463271264248317133234602329461814450931825015905052993153392716797359085384472901430845940433525401389802667384633984993433745704880829045361274081980069853541865887796125742826052708355390694280110313097091960557184898336916617620908665693953470211014377886528022652141822947929437798442680911378476011163764931260574566917704708915424992147431242070221608677806042288604887213642694529433809090132410905449211105925101684092964204465047621653071019529010721947609008511861294975652647316248348551527286951999404173296108751804465701674644889765240808422745902586332063612325771799018894231958648180973639751863878644659732197548277261124297415763848971889301578083453064091632555460234650516245974187895105956695466643276547330525528917341250751376843314564225669505010181386503894551482594278855528694462896466506289737516707884844509621039556051941277940636592435806264648483343733542883266123269737686961556042121928090931309773483399483751819833073155901924348273318961136484647651640970833630391768757722942563741916442223674703689248938259316712872119259420973642731840637743542923580829382616425626991876905566384574565764681645904684155969831306119130228265003555076324483098042143122582705105579568017031226943017254231050052682751938425313931064209775729603610415055470128093084290710344049851811823656999547395771195742106098354270008616196930938370181574157305825946023843310482215138988860007273081254619296788960609782886462163149701063339074341601310195343653522942491505002486554730540694725585836308173464448646530181887968094249017577845850685857810121699796017660073521453833458743992798561339778233293286452510292151238635454849509561893023143749614113869198236768780525857662421724895448708534702731619566440388402935320124650047812096857636685202405803830503210520350059319392471962100339275526707276318194080047088266725179841781599417678292942798215191567666148906774291112920355954450440994203463082184463850424815235006479345866883684612869026621354837822426433059436955500280944424188236174021377716224849678540583099453282179774811367286318408216374106842221736648671381711694372904330515643930282261808245344157672559037225623424715907028198157647883307938290243846450851316202034671718098915419129955874294480046697304609887442147017731675889693487870999313957837198952468273299875298748586448614226400964789636772826008222495022198993020433780484819636518558077450032106296757808728306611806062041747131759946860692993699792331571053973713033800573410057341089262464189581367798051564105961523043439595659719928087204579204649182425595711422949114877037895508100695258959119270640256353055550219339957498127634915802312126495060018262598767549645371993956427082725694170085254593605333363346092989008091873830163186357162913980799634915222836462982662472943539493899092022753802214205895188825464823702667343412407279255178437459709293114155597523286397619567879763705207869668477936641353437166695653936708926119149502562008596257374965333198152819589903893381380441699759947658220804121230318217707010060846533465929696953531352725917206403080878834810361109372887097553421089798898241769121384765235943245155429506633083728195575959749161899842305618185171626920530879472576095650869922972169344456577933017000601113294804322776063184396815802564131396460629283544726687188893560035937749183052743040611375933215177486719248049669860131790442652558177796171601583518356150178983077813144510864008221434821908582938214508518841042865166732696846487111870621410236073969747964502051032940726551454669989035510864430073303140480851026214424854937042660884118704346302506386527856445609080190462570648610135175050047209752460782636234873447904933283974462235010992033879411346824636704985184861480208021587796894882668995619605321656083220668404552959971451626125817295756816015228517182182762948093915715665295871953872921202167016467390043906883098513841537047225571191691842259467976006967288074383978166311647505129034838929512173903910066316563232508414581498775077383246826190041750711210584162876035361111395445788532966948673574823198964331411040893310843014708339504021279711033311277099597794517722099728315281160786781097969365124079482792987696556131100536725664939895806100980466497873961062484513435303321163766522880501553593610437803747849843317488905159661350341563029827669462835948507783119707258411315925030149627855759394270388078186674918665632388612128460146211211894410696191652119952161855436239986089156946141982287525276089422215032011354041611929603184304845719178123836778147282372626288801000167812906173056293631019542666630927171866696282523770546271371580989950785513062370728163376207097995292063293871882983972030162305294451368273471684841505096927681103408222826641857487078746285316875786079192590632898445854507046318763524805363842099324248676394209976058820263233127168695988068446573322105581111622697579234475299393710333340051890800208590360181482069508972898109770538847159088725860013852715098170337759562789490643415396163496195797850710913950235647799323814379216936976781111482029742797293247534194646007627455112417414922404029530781174354466005513399358564664196291105930301339632279520315661126264252429419908424014435336285036624758724557741869142727470990271575611923487797419203552532300807531220440131364720180282040694362697799621397666107213622168850893525892437128292180275523499892703395393688659870544245367626795251762624051546063496617186766512892198836705720393227733503602250691928482236023247159262335893426320182879467699172014273992913974878731515857621418468603857685174116707884987423157181507441071655404092656823011297363943842882951346728288646831638071233632192288911001403362627311377884364889942787073237461875228982032567205592635112309782825806908706724511307640875556465532119929861649965257122686422618814092376936292096235502017006355261490527049585957527540367377283433781948069098894806061519439375156734240920518934491548341210335279672859712699893049291125954208203907952551816890993555202416365408845229833436430082616936216784837910937995414535268342465715572212622795778576514996177101171241635499461729639218019727894828752061829147369041676474537789042883384416054551807289975855642423347049244035408197588856440974734596686208042231029219593493468723236559184724286614178414241035928963978727517974503960987660884341608605313810639374820492441408577720265638175802357516585091931286370332282187853813106991013874052962665892008237306750414641580929670088163421200724126168016440322442313049434931478539268696600698422875273897458247294480898885303053195419704843067282696911396391677427969598447982721894983962281519127009411090645015052102941551458399571281995784019145894234487443583958592978535202640712634446935557692352346611865558390717346224586609843804627725402143420037973248479669061094371529942262698609869602459081304725699469065153798511900608583242950456539686405788683825037483338142854948402534388792538715502173097376907829710122037076792019294899261355186834816579482422567309600798564603130246835359232687842427428937918630900027876022874221831208460316115215260099306154324276878067547849262386867303654054660302309103303434808067350022059924820149967704833421248171996260660468394186267772614396897305960536455200439502828731897574931767411207746482401119016601052281514033410073453970472325414884823805467642600981262249915587730400750742462491365017089297877530183949910046468814935315718607700784648167960048270405293763756274264717011186458867665318245713173111601264214659882580500465353814139185658961301825844540349604450339887862174989961750427797925202405214844120285389557204194047407141198674684656686419268411912819758665996132467314805554533680542454981494471173154310552946350408659264815363021545721157184518185788574810941141895550600997548836145490384939725915159842879981871087185531521612024355174731294469707824437428304710005743448677135331925692880875868326163554333003208746082740179698266522880664287123698062093615602789365673902911226817224716767036088681725153448106451167105711687169646179882322116130847302660572554343038621325676452105972878561616318918661766591972200375493076187695221478073499000276331099854249535551933137285134648986272152102352160461167762825124816251549409803871453799726180044705761839288261129148818429027353208142698396538134961323894236677701145410442503593897623748846755484385911169027271801313361557253507888516428600679797254528750292380195596818206486531276632476649820639965806178142369429551149889834776534045558366342434274905938814299007462774498634576185421474848179544362890218964597400399434834253896648925005323360635612613633436797098750471444166114577844993387041088229581321751431761825969077816551708589274466725177789223364484657118319747762085445425884722215539732024031853677251144621961263728436056668587586769373577003321735931218003616792031246019634905829767634050701994440350869459425560367762131756669954381031815707864868006658965369094628923798619822003472351742986598930910076068418049111560969150529595591300403770071576183186995807414642525394947223008449599415184845817695044122745706778837762374795973173608391241315532165492414725361803869982935377930956878050982506531863496374186035973886421265533724998531588560372629719275288146416739807124415922011263353196304390391472360273826233355467858719793046268330378055098377801128651678418020127843611057905922077950127925280133685111058449795484753085587482077487492720550633598205226298651801186937793237014978145839307664964896042732050947713570893177937384254610258186511438956805940989976312142661988058285400263989322124130546845007203809941641771992186039638443556433869998605596147887206532471047752663374902813914058692476956811223254510306420104903566217163639706869071526253430185575334173840387617740752036916882902289752858364179634626189864980067999705893801190990734788047262636779899021771171595082739477605115892074245793306260896466511450104465108765717121184987767408516216895997378140018820772228428694365250153808192349958052420533139852556627867748409557012305353316346690246953222184216649581311382199306259738108517495847321005461291466130915346779457401363045536618611609231385983705712200700310341101974709197266949689533343111772580420179105914157661057527634493706415433523913928738516388453363671102656534868750911008755705157452908045524223441493752026541277663559155847062530686199818724485337741549218797186761072505158455238617717539675513307925895316439675314530701335193002030132520093088016235148006250321122693327207606452532346853431221107754444698220057153234816256971119035456467188836804542981874918467367799527701038510621012244752110561244024193884006211066528538694383444513610044917737289992580472609066931247132977308664036029834530236289796261102332467547498604611089786635126326921330582159736105329389857765609080976959850169864534015093248829713081495367445238723426026328454580210934531846367425402584902361262114242477853186046684685048558942620244632230215146021795199587814375536926768789216737399640958102695880278874604486773977069887992956228880838455633432892333147040673583644679324660182884410126791583469329907542818560351318616263200542146001943675308804002870600057806854190362228143021998279425325872379567215376874244338153709722775476901190214746234303933051757385731602228933487629751013321021636940662284953274010524545315871595231084180535296443319032740691524526017147213982984608837252382195139482251127421474956838313110299365630206858021385493366998708433056438817251145010538526848735258536930815290369674382488270905455701792938751903706235454272336446493851610700110292491889326337280955622342701975702973918854024089700281930833276560101385079221801722236152689465997254332867258696501944775073574596154147368923753091942514548403327192443081382138865187896410174229605382340283111014831450447958371391746560675561658590877243668290701904073434560319777635873823015713002811967726364341447230056294707142836142620632889198805622090149417517454084408915384021067749222667471612065166564555708168681627822522292230218687795041794683753120815888332770448994415131624684148347800917988100788681424117341458476740737515625508312944919570531728983936022971566414127526638940236108205445080943432130246312718160140644092276211076263592800197846972021202575179611490575514205140338235827045977044619698379829706778115525230639038724165803782612671373871870468719649977376994827018094652617492773252403531894003583139825858586348479872974238017834497371911923866474485431530803540011489518829301428262363472214164235494085065907050131677053483555313163045447803954655619490683940968089838041194261647475931017876122034357892070251433121565416650019666499857396198997707869990998886412789210556952930330871673185493453222866524665532416641899350719140785935652276114707459451701533349904362035773515990247680010225402714366424861106637257923400931415390504950335969972532273448378755823474090151443095872985231063430131921400778726839251529931562055944586183909642415493698494110579247533762198400021655097556400305182054877374554416404057868081428153031157885436632113910800223399365271142454108551096867592476732674944446307982123288469819908360002224276212967203059717585268645686385581305922802425309148058500752635381970215216663576473651955694596519756760558972925620597176906877275193308942620439498919105933266502851864046482034261183578281005761988793954768099012591738512973694078962158725589937858223346613264532195322381958235666556021672782111004122893996659753820980618987050537975530014404559628632923299778808943705135202904707174235279082862532395198975419987486103129942078070972422827598941937871537885181936327144184103573505135101360635713391462534048329518361137435142977920271278031801823736566200988937566566756197092009488890036406570211805417647374639058780052493697311070124612555502503170065833378382374978760526952216981154406037932251876392693509709191365841628572879104293207100095476757340169513874045404940936635041451437225579785739786156670434053121276024957020423048015801836108664699517486034769234448606571539193019364445712911651629250504968093066062915743627396927848832334283854190397805019136373361543587653055673417992613515518585629661772855732700607683976675568696908207853835272823894548436278075404930574291052075989856000840293164872416003401166902266975295940253008893256226181279594631773092629386080537802749012368879185070861595947378449642965066985969014933334727630850704675451624371650012196593548901158665250796938159356437880448428133113828453335280593959549170615057593825008764197022628336881774623531912467954881607693970720122206211993387680486734841045146401364771746557873737699046597672760273614165984391149178503591036571744541141442293832717843082950665557508472840291845449616138027933847747933918702948876114826179879265978060631946632929390084968174151208027834080859897963034309312153726322140522570613812989216411944260799678904551205977618011408634500328620955745493791608474999788420860008952332225260897828588425866694442887587552915702361694094674990064106386474499343991701775926221513139512858500823568982803863931454669269897177955305371803750243415800353672160752965944902863717608157622417625512585834557537760961298173660733904032576794167590052668301282284151704053813707858553871537387653972279664162707426179141734968057002407954904901837965564433356863605663693141648500198562661769008054868605695287426937016309940513404704084323280211645774390367584175811126291336776047729492567619865472375015797980067562698246013267878524882834450156344769027940574181193077064046151199275479289581133438225505980186523844705121280777096662912719417121565945800950044836713204011425711032341547020063888532536004856554112891050202114184682520348689255944468033527830325391758459398885267190722251593835410408812680718200011038678262386335690613771847374834899428596995920830796146589851223303476764870131076404458203905449394935559418415000045508881711699244141409273035026509188852235267267270552523994788901109094033026131591205824262911801566341496600273667628231419309671946521809602389380592110084219329118670953609636992013418097713292748154438676914828604328755252032496920980112194180914763777593923446582107472699067739800510134049399545888377738852401611924790234876770687420349540577274141391272998445121343384443023881021061381770591277360010979194847572866926646199980420917794879427494090150174176764199186039362870703693565843295577056867706109426126696415553889603468553693094761112720567987214879564499999217367269861435821162057259668325737049885652109782669545808655191278165622428929108303981408802048229953995320888802080596543230475407724847278555309953426517726954802199052584440491535840308732677948797949211584269035380428697681461772052220579813903040492169739772499811250220672910137570375855302839727318949908963624189426446315972990976542465611455714592467422116939538446085684002762709429649639372739106728780353084733478272637746742346012847517444905666258644144748336303294548727699740210436506026702407188699078812836637171107337783522072544240198065445979253101533709184988401730403629924804589064879022854719907056928758073035156596827020233960299016032217603852591513147770236431357356440831886773913687140947174362800934198264499073401352941821774758285490096965009955400055774589573160212034770465978542009951217123689250107517188076253488374298115384063971848498903846227146542788397847418701145864682937255946843595217833505462887431943509905542197623703624373287497242702345650550907679984576779320731850268266353211569589593414431904343903190326389244787711520155660948957962301392521266615235432401893218283296010657022470678604542635737204663991388022537393598976200961805595658669663233737907230371683939996836819689261073021777150479192907326815929691367499076722550547684549129288283918408326283001031252713526734085370483818268915958927774735819800619584900101876667348599790441836328804251877738333563840369224981496891480481356366327067201974896681551308413894812712304160494850369387879451681992446724099302458748681144547595750918036492268236734902761564715515398519807993746525970541417147929405264764945992179576385176852943679107403380255484493673643585627500039322749294498462629431461443316530832629843000934637167531509187196924229943284912559483779276266204535952375676828848646167779907376838737611127782589151079900110122087694879833164559702066783305763787840425459151784512044717530011843888438411734160294674581092478127514248010169331162206194176720136742013364051730865201958849931994824657313432443970232534198779687197859137872464381675260698773419617407801212925410231518904804363445382842503459036655866945604003067109638808716125167285293293405194570828191068129463169965067284000593078555739123309670641955583244721814649593742935848611038116948172524920894865836275942185210664189678152702178823379482111438401814427524083300451394695949800315107948301655043168219691539798267220096809974408083173120610893189041788640895713404418190585077237505223941159350511662896099295734253571419897903844566571121335434182256469367097250999057981340821127549431120966511031222945838267341663903183315003791311055694013349566052953028652500115939214544920174758135314709015916606951667914917218343506841564691917566231907081735775804114199325484716277526471371204507072785681334988186158006494825138631910301618207715359404842445657417530220224135456086151118556526617564795099239532739526719449921866603255711983011690692431136584954980397143718532919167319451783026929958573843787140090003441594559787974133753252699824701023486802360097828943700487197541309849369903707520285274971994680809660342453808822605924446407423352314515580777404173396344033398817971559351003284813804167475474457030603600248016519533390210564703187628167480479455638685943880820087353096170676737498396162454814810581649386747505373692268054997942630484266251300334688689267602568433465253817215250284733096633843474256733071757766606132266811809001891612637980250293729721604457408981215509350924579285435999246140877230604786681800533996625969601675800786575472906213355051699299344949111462636427008950570174910691224410891640549523612178781026937290171081320145735091459480959473465868618986166005378394865132875179155877881083578093633436487627668149279560784877938473372949574058179254870420787789853052649247998586984982694138884459786054328650385703248437989285318933845333836209227116910068609820923443653962330807399609309389856457004091065842330074260830149990664680424007766793951732917893568747640973104994702437484556795378973772284807224915416364326029449416418835650334961967207265885374055371417998742389706094544973722024764967845029994861754205974739785382661722205403994831238497649967180928575640628110262798026775125261691189030435140658064124045955457069707777933187613245940201002373113571033054620515342507593323031405252140692166755940698423461446237900502783989755502896656779413138958337065417012486619100320592884705171595103798937284046456275886614380776741752252312969568326376277744790346886910391777926807387000553690893796002872939512340741248874486951393849487538576351708869607480236470382731294482388339865033825341445018946399921124498274448816771044167138578980605234030783716138203607308165817928375565219990809382762340941943155084622212408969716808256512114870783491019353839487630083769573413974073845125708134791358971675407188516542812745564681883304693342499957325690361997565761121844429703793498480602646868291281672841094503587128091924226344796960253752568226465227769222992819946814068259348499417307288209762470585361888017936686650555506492148666894520619751729418112324955426001686439355775125046457271377344743386545599051061902497071201041830995978254031049269750260910070546632472493547136485373880986223107047734893110142806007810657807484777505666553630235855093003949193146762023219415564209628879282674735871858771659869748478216335742548260686375545463127592719845076649709552334208328233858841630139918304386350358278726052989969803148966889143910798246577545739216370262074545212211119704995547039308514632125613925278584011512827463405885301313981057181366949355263956163579112509646323541970042749049251922334387108558943378842184313302376316796599013744463127405477691827146169662586581868264888777802399367045150179918361276813073131769306039050509727748193978107853848917427005518093510913339707405019889469507349798841496705895053286448654562013448399421723329977887387432585518360991350190215360914772757190213677102883204916873317960750468379472528635474695949977561849827533417483014584761980965429767637498425321999049954189336303020287010944842156711675533476442254850138011527506491492976024439132654199806125621070615489551101666589764042468548760228346571279485723404993582950607560176339265159316408603906221332482916164528574604690108194536970387826028866227796302106503237623125579823703399988884341532899022123409960997885134005699615017736396447240960189944303941864330482634914408974181683809924391865507542264414939889841565216586610244737548385414203470844380183524249379060047126502737056931804857740574254418308301937743475822984671075098525679969645849190140833061093371903831855811175434571184567415283375548609924819217982687030656949678816955426996937120626002036995486040681183641467438061556598548354881374270198910895974071203487170870145141643700915918034607697925658543813908760166010249559935455516584929021652515187531358935433263762501297041104550407676819102054591609326157755355751997567397739249826524775997619046891258123032494320082493507392439144202117281711132759290638633267022233426594566364401257454287323884204124359683042663056821180235680735803043697999669135876572717237175957639870391673320775760699659090320840768200017158117143964608315598052116118200782854363437860935015070143074404647001442284040520653982636007209350030938124078741253862003244927332108269874240165883673196598414067971205503845907858873511211363628429159174613452450188888369721118764225988196295111258287317532341739656693951300518756107640560330542441160311348931503512421529895213544972153097351250478062348129902549840871870910617242491125895522865855436287115170394205204817628923665003117419139658414014646413627087503186924444909046456061575370878256503344602820702544795841717806570933527771709803511920299430646504133918531222635081411624747788378825322404896209337296315788311356536711509656198108784254134436266072722371567439975491188921410777456288995373810937823795583535857714443336976664631383755868773159623247675400430996722464064433106008702915049037260554265258925206161221668931961637904939098373694684169887848375055178780774078322444373849248914393130983180083862130072941961389335072448650818480381392683371066105526110258404486827506486423341473600111656817632885076175705090339625259147226195269038831489752947712673393542066584316775968700328173084870018811613655866265879340227473480023649303314558254480595466416956811257146891338886411275917880675106635708396274284374640129386924354156347443815761697392188868602535399434300929612433808461224414200989675155021233708728300746574081242900463696275035976019749108432173912838542276813039489504932946855293425888342530127072994684685088693243132792570731903726840373330292155244753102285499567030051613705877372907610630854280748711699397961952580270304785269823976065573577596484068261970147157506807219199666578093811905806656023876458859530829220192559978170867865379542703287348741012992768693315932755832766206767359545574966850280301688904422252155577369198717643854367211999240865243514482290714500686326828365388672888746056995064122781617299987703167742753284029054833059383768524769330769717243239404564898374975975518284689323279255029640555988451353802338495057769151866415701079993869408226832441391122185126986587081257867111980001028607078032502339161176151628436114065516288760367772542780552904451197354501331172918659166155213069129629759552068527374036218287651243580153511319419175558326695931943593774266176622365058280605280879141413175611561932667370157585715231260691870014084806109632149371870086131949380276050442535960891176608279107033632696434915494767943792754463612318710053430736508379074892446389688264247378859756745950509795371026506836489669327400872705464478098325260594823798948025539175558014644954280793492874539758637826283780735472297122024791352842783621187634331299001635911023981823424966395332234564241677051902281526780633541231020088338116731195682598803996421923692827729346520098082660471023083687074906902824414929530472256939364784556461382880028538370308298841494995284246653305246568483002622720470478773285612036815739331427417936748815598370676285041496842781402479792826242453908587364051013122546491470868438648944050064909351227032773792608191694259656723128857240812416706710178778652504126216794753737944370593215141076402054836161326193734767816094600223850765630203297728629986649838405339101009021504270585565480895494949942823128611052869454561792706486872034886250944522260097238387309868334894899811383851780011685314929919984466334958342903161116842362466323413945468700559728874325064588066793111721020483818763595899946777220945800399368368401043122963586015029524840415310805402399278789875178870695638776202415574407771531345171863497554332941714935024787717772572541759677085415650645717104756976039862338294287524952919958522398682883632723226574299456754155271710918249037235958683911259270698938489331737673274946331224156007282914247458868154992361595365742627396379572325227075318989136806920969299759772154489127431859059304426180030269235777841203766185806865729168337815653626028373314235848489528718771188684013563608711619177166505995338671213573002569344756762092406672673172715456461670510313341436516586254341263003306041326529723116201369843977153503182603975768619459320129436684752712379393999046760337397095548677073276626211569015027724691510973593228116457462013638497645116956981042555936702450358254822484545089364868315078231261393209237428879773867316253572837149732278634893560466174204237923110635827327894976412629561160674745455194750234605797585585725859453300463506276978437789226423760192268892203533546909582066221012344902585816318224499615132868286961738723993106846063625264411306980591877186808074923419530864333682657493659489140346926522196603175623715568239250670645311000641768182631151132217573472602382064130887640449834057467109781756771147783858378569752464119410601712500229677522260537367676131734485934144970539218469294931134258853350402730688642489925056508971096685304901396687883490107932956585224052551845287537538476963030753462178925087503962844476139519090592531989624235863821969745239412946861066484545598960845985801340516784970986671388242894099203886807183619162783257767249186469897630958390571352451405015836794164283908320252030783729972091323773521813895973952571880769256257143821174137747349945759346953695297503025857746734658213857317628039872984398992335740605085980025415300614403684459124588151543673962954261618552756690779954968703509848280039184504821672364390544368156399106448948191772180461853810078846582585266044644535094434242154403176163266420337246951172835460128700707338252423199192796844060321004624015494826995645473743964645929328898923778795149729470455264768975180829109786252571111294556935805224384791105518432894433758802102217358769705584361647819916956262837316764039198371768861011426550452175143739195616413597881810608083463666930067022363388052718307024170182720452413663985690182977630025370184521169007226911853271515950915979932118043241510845856569750937287907792562245859164125924172359864096324825337687881259973257048982999582754513556822214494306312118547348913736646049756467286222853831495257469830617692623966278597181181725768038521938655119610641819371114454029942811666806999804221721071030748232891076046512629013255948872910458169340447803259161849966435951831267026480599479791669281141237016661996116018073768234120425709921786328143067707319901401228102696902646996278882529589894995061850661712727261788714151119833969257306523610296217821093151020688702932657194132092386799197111744210582422184043386376822509240168093194257133754519567860900466676906035316559557666291292406547881325011747379012487955942613300944184094476382599978112857508314728928666774127052619041170196557491477608558889444982300844595887631446169756776656249865725162173273934140165308423079176970103753544730238175811749737198690208225136122411948781313225100661960689805207516362039691762517756244283098914508007555058592180027457084164250847868169866510384955541339214319988246835727305841442827676738020776337705214103972957215744430355437576725260259123941437492988091728475143215607582835838322052694481405977448661217292613958917862340682086205659758621571327086155883875740874074731424383959580474386304225434149872684052858671361433550787399141928082010987287505530390544579519720661725631233634177558015378476705278310573687763862802018131183636523667541644268691634112847265791657668597426986920731033753766938031887979684363577992076331398817691044403622596649371139030095188628738321553337968908063333869315573117270177394972234356032995665766411056486736753239295611220845913791342810997271559809166923602953855752742443785394312353823968531513860503889344638078140694890501679552505572418152399527377531455048042716302612118647369651619556130881564941864315688958463934289503652508683486853823952992213863361477132260840118364535370365417292790244817725683932197144879183914298030475074107881104868449874724921017655513554656934327316256034845550041077738773233609774406260479451788172902098328896134942540731510067541063694998181698806503281632249794649624209121681646150944183396461323357334335500248433184674994070425403623029678385791276445803321737420367694102078216470738481474742485048527117111937512920494957677204867402746705891099132710689851728848972704990623172648445891023401402381516171179260219738062776344591212006742428087516459168367312709791553490066124114712888888518528373156820859607273325323337745135491596542083107460664833916602250234783837587218866594020143306753555603686040345120913971545629735445748235902108277288472963239223332120603548150725439208035170268997700756943907598058095267612540268507620496848390708956856379628798162857842699096527646445317871927357794090410259331606972921757569307412055722550727420238915572351604533666930003106214974538248604260168903916361208504890351387989640999511620745476877865977092046613732549962077430711792528715608071128091493367491200860576672434826127863190109826373755896975626496982007677438118701165507870235579716452638845967939599047411304857652501680949238353512332920336583277426912357838095913749910911298660214106433194292570096442398516651542659677276760554764377163672923860588633942380685536390199857611693918213708798652351870222664591317444745491032145404460551015782172800620931492441035951361148293185847856120972748762119653259485963606634668729492343432987791092402253895706692435123452335635210413926909679486176875141433846721006992377007612591791669609733361378398419770447787793968036566768632972722795885857939916756163841235590830089566526931262230792429976315453876276517087042084849289474050330040890733690678871781431668183612369234259181213797103964871094603606632670379794606529745088249674022567421158549152665854033492384385931329568828991421437714260351072109205222097189640438964175767280708565586423704732640282089709023126244324657467223929896550111093519316851705623425164843356159919518780853129825269989060329374266036393580386736793309597019854093103746575103334810519711099666526670081050303819456879783941895020859114546834282760961106205206390484237662516925193742060401723806038695841658853812025895530861623952555995517115837104340491040397255133493740840173972940335808721699070527168207114931975043521277235336242304330759340444877233151754142313099107154677677373972850752443312244368008722985901338093421567926551981723554884350768403777683305298462958110155190067139645789417225931610813318694155898623911098127099812595323155375532985308579102524654727115035422960699723666930419530237605451139358620372540036848561111936518051607089985647678860000434211160052865774680773068037529401572756653248741409244389667890599652880387744046370410455301516118722442196365577712958211073733208778628959132213144965911681045769747160536495840717939859592140792182255635766252635530316769161239861854593086480689730492118966775324109058785040171640961039517850975626457711487199089045482510496818777248386775825193990173061478804511135444655116386530822178813787112189775488857797786156572362265522313520368486016675739014205803226500279678089955138950134814845913394326105783518955398948804125109581353000750931658379105576674847332912976713245174732440050443425949030174147877637611239173494827423089584817390458281242414672492503252769542519111512824838061893480276536681232500890511686368434046474382468302210863858917930699317779889013314938351779673126354720945709710228366473221669038628933869161469145888727373810904829928380584726258709597754695713056346446490537095222432936647081618765580688136791659123654779515290731541813955847704964988151291062109232319320189054807708109823603269898534000604273947667496043579717868647027801298219069818856762120295955345422350799531976286726799545954764394354559825622966963808892586765097933561652488474123761871007797869047706719326027612112668441647645408460939996610744758930813800881854261153848422301937434885447892305918524962714765150182531458708323900454667500946066168615105056633609228110166112666443060793934110797510603933572285462285895198698468245276477147189743002210138023958111587333614449191191407100762565866643314914628887044013580232250863624281902814363041576769488421121921605550845714308321386447841531344087070009783392446904022759414500080210464438224924323096587563697114788757836546518999122345574675928197330404774663232244727519365407203409332454357128626866788610264296239405573562197531154603500663448278340971089145127935560587098205098480002443691829179046797721409590346878257277424027619482571644435756622271273026602772705360600518842596331770314450091446274057552465633499002852648047862582700750525999230801001684402287028898802415180925562853771035639775327776835274963079702038949005728491241836241207146094977982210142209782005274717255468770345435988713163873205702522184194244395655887369254644264936246800184307281172171044324380738130693779878118287108339410000727521944169153692397258597031380219724450305513519727175989866928286937040597307605484775971166456566062352671144633499346613471795199791025718586522754744716968679067546500719753255633439292499730149309173054766769657930027633786360253856611215782815378006109498847597747435830852303227198038247370331436636418644074161066403670568309460147606294749522869824871267221768593642201768432110389775423095032826163527783272912066837850507884825062138801928644534914329073404945413725573441259225309079240848944409211367099734386520152759510135710910614216751348542127234399370890601366190695423683750384948273404456085942977135289181696397848749064937103616004466856218366280173886337027073764118948689030606385877116854948801701729404162053034939046345793038255680518708967299499367065231366132592361959661282601920217173718927871129195239948565723246030942035935058003474718703711367062805179816160333065062516993208665994267139064575563305801706862685615016595815890398100866153077834951216278903521002934696916557252074801243183517392632445305579562101395557888061289245393954566212223044764270357406016891231714567633034801213362355442337340815657776176648167058356241914963737310949340213946832817154686332080442906172810048674024609544532731457198196663062502299742350274374539013830816859772565776439542329725881647641723707139702984303877253287400664238762936647831490415973031605792164191646968329496840055026125358364400593544453779535937592193965218170234331164260424679267590189638555605910454774473407429886292905471735642113015699008230094211463977170334069506659688081347085434698635923227030878125630998492037546374865129687752005245171379566415126991720278092469199160584853409974284135505986874913061992372294062946736139028149339728313918943386241236481270325226947700057000354306787371466427732251569113732821735228931953940806757683854493304704724560905511957905710930863286365842515089259370773983797854081599024152305612431351014549661081001228709858249970571147980503941415903324320177410701946879770940773201808671017065669170831180602656531042117032045050024293046787206195172719576797781636872722213672212064933619846890188078317866106053603393925504551796714258929421883838881322416373696231526208451243073970708372459667285844375450552774075510040105273480130098645928039213431058356599632462380860346626661585044533161702277976684890315506174776789885757504568053246568017295869225270076657088924438669166661770505346896999020362064528439625071106234016682213947630756990435516929468445961537641199198188335332665969073783617472166092458849570929734460013843496936003150059284853103494863899456932739794368782086925610418259638602172342994340402543322850924756609901062882170649454851371338342372966370527451221866233822364375839803326111096464424202938464671838963554132870390875419996665273299190860175569879336714561432116490050960771558549931489980599428393499353660443346823967030139984973375029287676383234643051336128974051967648440929604126517922289012420479057802537707141897701608418528600256833578433862656970009911804263784664134153028659971818349410865980564375030358216354956978687134040344662506989473894477270162605770531553853967378451016708955226670800943194263435333482112982257664555538531119626315835980264562173384310812176340768787562504727672169337073318790674036728388452375890871776302758440584003019188984583696137992634399577055269796344489570063396229982640405969108610310956998315667295031571759398774394598170181513364023422989559294373982067648776208001691986874173405857195635149603248150317462608094483673759484927476353483225624345948799751747778596916021080157759270330471835502328569686388628107972690030539097355179328305395874575847865576116722216210083031037499090779477021830732141371906215355074859988847303315728386845066669158355594309946634945631161844834074634752332236147715748502208385759158505501489169451844473667288096737427703227808195648361902748131351861018432967222182891279877314750345616175498032651193611640030546909251332069011051536453155164135520656041005431891362059682300173486820078106124328260633012742713842469370111787318861413568652149023971113868432945678108240207440316956800336368253905729312681744266223470717066163949245897101106784419751538745045268079081142841217560755251986915453867042545120783117379534590463258522986424649029223689479253403716177042216262913147333678358398361421424823104644627171087405944648989866638089053524075583624662676217375617497334775953314955162883766858916524483820349631845400663057535431031365283747689002117227510290966115191138663006148648520543992663972170219239852826517440834722954783506603200856588910139402210918053031188155048744180976998260756433313293632456425019074137953523925443075126831402627496573471938189046417663576724597550206355768837407551149619801674061377636719450173481984385583362357651097385862337301968340508701061436529121065120954843744898696225707862991583068434920472234730561417769548066825018153941656396584865665372737357382997387457262065740124410066940431973070341431951707512581227132987955999839113150899049352654880195780259644190745020362673341037838034280113200269647701834354555410965630298216056279202526676571006235823881081785486924798872523864009577119141187862086298142194648075773406372425135948751287386499147660808363649708113409529893636053059602911642975778781098923581583822014265846114118770911123218043514590493296872135722355506998685320954730684595554657239444634605179640679505569284680840846351288576524941801749482828970348091487748714213036100530972793019133932197559202980323889327240059933772693358975783052622703852869504127418548038391339999302495402116868953974361211077629196679437210054148044873571968943863858613499078364133341352011750631501794823851127095544849249213990974336485154589913895216730438184424786490772117514178288718877527300505208365302494383779873845049416203139652304311900130503645029702478225852749255391101245333086912079945288271996780406092058353829622545106777261951696294417802147887515988190259437546074896633850675446238322547207975130281815437823376599469114839103914605871948623124740501254069747311652650150648766995542177534438133516443081160393271074579622015869506047416208228111649523937127080868273416524947920727629725268471980526451547222791309360744077134858400807987709829173128099134896835599400768691788435130710341521014523468732264486412047211652624399812768900217543819519866964626513322336950915180435412287026791751925353949144749907837553962706352344513177949515510186060647385799442139808056734459083093822622073429488188456026252406867778233904757909534628520024909778483600863514905322794096135059657991778464991785697921838779913556581201619427376435350853812728709121609526443314018145513111547681941678173847624738852403531034228230190950489474212226217179759799633024335248053331482646479585942452714703593236990020850549091756926152040903931774807041647459252505715819708046227550270186603938093717784833454066309479416973223323179538186099569715120323194151875168234656993594764765541491055789865184075428172387463226097582709526285125935471346931741056667491666498945908824944570596591378130645318445812180436758172841124519270426734321987785222791372388165417868520356122355990466788114415261301012685731370802346596395046791284661599263374376787400088391833447008729496170199282065720451533564413429556978848047898444905965500314779760619212298593698772533343487027402408620960349504183256810983689663045094206876649100430586300360827769941342345392979146071956165916400957551471313868458976482878888103793848445004583916403019455374957030588748426156295642844593913912646356701051302346571739304223812793723834399821158979548974926952552526835327161756814515052808391196249915044814775404336390655849096882353864922309207299230144843947472436088313260228264829691659395274816428675579749426925591793649042729618470562126896443262050529141513880736035418150143261438324031458921903058385682281477208687816290395183211521508931868497386640371611086703116383860080566670484667486918801339777527732649944969858304937199906015506574693535910549314228592257957861208079942372515745937404879132072109804686824545638963074694763259847635352253450893657205272579099467428232013179577828586344042668324832351741938217265689406880836883686705881912757658857327987849893838529846365382510386570827475311006428018957075921876415885243066178593880032887571351699698783817467306951870068562844619358384422528660866945763467126784021349012875580611533208999848101344392679176750825548407992653981187301757301486749300514083133570516737110072223824934423563572155402402853473918967505006649815163813292177972579722746354949943753877615724435735408894471751118698560743301715166083722958529269153692210183391769127389700375372871209956439289430548425477958629065921554341720306319666748674261900884711092701510008995318066324379216310838647895279262993109392932073853333915967894131224192784602507417065665266250693741891104218605189156487680730192425034431603407416774511484545145125918721328034008854645758995635833123995598796558261290190198637588608736551011058120896312022069770499624428275806880578873660296584875903338148539953495661039400243134238557237816650424763822413389677241877771740248994923502195812983491104400001544571226004964696282725620911856325558230677228125149223861416070639634241008139002388465105596346960528733081509087264981105444031594123120728125198175107457339141056299640501185958348707842866351235045926079797052866963507203430745067791648338262731913478356017481102258108286141572413486938818368598723977732414333803635449287285235663487349373274168907587212659018173995418462038199409749871343600455389715321098290693851602772607387173218440868741966292962319894861636785750958446646853637303780236291131807756670420095056582892938453215079233016094745439470045995838087174742970963356245898489318252151805048019526379539148159752829881407222442927916804025254785956703708494257123029422619470486663527385858069427220000756448485617510087323234046943904318068566102309810594067529243192501043074969942631959140801875582125778786940958152954778849240043967651648009306048052412531465127288498494480972788944758487458819897347012397455708402609902376041255169130378804102076448386291320229758840713414383283224926400096059630083038442559596197080573574050629961427725759865959776042842776016231361871279038151617071000359158239479243067430305134243082582907782756845712777540626134248061380327392806531464697979896545227185370438111725449798812674015939794709833012715530635541456184132396562647907625566356059374630875201827345681639407234091269958553222148964245061082254782939030903894888914907795041935846466761464696174131930317784207821713273458275598374618837454649861234759790809753155238711698505095707395966122387540318084480739563842714718617840111754262253781411639715562573349466675020770119578103464060372219782699610889677751470983760787163045918221633938036066029354127254587059305694373338009323989598564922396805836766450929499336859044449136828824397276312063166545413435779760278712209734623649579962827377421192115241860746315688891186229137202610286200087930345152079063881685661031155637827505495634614482672424596108105993977756086856152219952446241310076297447803344044751984494506289203676899732727506466483369871679775477266479718338906019212115822571678446420193887525692445981292082936619729057520843755934426926245841927852242167808352625772837509692081558503566204832623303545301535310818861353661037969615638109289950605748999027188786382117119125284840391714965731814331988087047562001235955102918136657347639861619036742167285590483856342795305306374231811995610967389927085523769939623327703592946361212645808991434935776921148692429550552513484144158499250231297081937572668065644545047238760003674945103820444711093356966181487249122014918878123940462118895765706708085161963796951872399605300602765999681173165544431936182858080839376750334250144109732020108473201784483966774468784066719413261380631809036401391685626315247086063317096884633520249190923383656565611665947360923128094168937254054348353520008953508339840300314995442449814333595771452877747622215993681639385610323245363671388402775777214052449036278186321065130018200972616863949349539941996780882132295744002331395148013557872318694213400665244786602221361961207449190271470592521314565791152291317818873559184265066616802834201999769069191551566779468727931736234027888055546626020450515563967996612569268401363425734930150106277001017509825852771797691695578476684862978005957130516969699573726954162576253357061128112961195915427784094492969246555819780298249800739941644721909460038993339219892254032581939640318227756343921079358424060796957286971251308747779330322854210005148339179330363375105203451280595453331356514151421560770422187993038507791008928486955786455688774846221737814655714115519818075200588973046165065716507572857958004040771602893195005885465426401160596191204999415644096106402033302364789276468341724420182617266475956936626767635799909460207486505347038332951864336703732838381642917182857641542361097686925208498600145993084801866453627699653168803546831688443464532959132365851554501836269155661641814924444056482280241831328778796568599749713608195146625926135401129021327840330463891729529775898291837671334976487849072466273706486681815728703927419844300388969883557194321266931780849996085405385885763957231720626841963819674037595651637808614082085517347520016242580034150781339910113468572214336207030852165058668913632330312760967725848687191366229054915833299355584576796245946952854675352616092210432498234052098851322360297049058515643386895847759830612260714431468852221112024047251498954490634019455255563629121397964471596669347058576339869247889563864047927946261995176288189557352999722778930211391410186790522723995537353904960956039689125446573400011039795962131225606087244562472778416065623514881491902348693187531267731712472787184347688108999606408190535646912459799706606880745509366822452058468998752002009842323514244188819257477058463680950054785013814986366196271514566476138101427118521149281312501379173204162229911959350816382820399879460561187414681872769659552123987061816820966029896799895733317233618596307945686379848247351529007129173739883670766429065739413933108200937099497617633098074895034390611076152230767762645628555222379660052497427663071770919466972250450131080437323165371901238405948626246871982234926537535426284183958033596017922320612238592529540898354899533495966690135270342494453126194640824948777017046474107395301983141261255116274693403344959158918626796972482989944667579539883984204621730130228120208889811727700812632169218673229045228540652538780536169378992013849796138198769333685304158228226069279174106902454288760407861762107505084274693785007126116297899385544105252756175662431056709146715350895760857067309007127411412425343615504278221270204099330407819313702849625056005174639054832225885198812689012359032149546112900729013009712289572678697687730785318327696686766488045926364250616595894205525093930308359118742656645000919361803692818357716236740839547116736229274828491045160803779945472498411633668587401456189739571487722572393108690709859830394932512533598754415964454332038033281299746837658409407140894244201534914814986955477085963509441059588181504900196167875232662604774260127077473942585677156265547701331920655244300099102109200762374893701879416139608217046502670482227046729483971363650253676038602656643107603423144034883576618439314020581013089167501965994995041159170590814355967444696753174938569646356062398691474719043266048760734356425688734702345937402451723636563613452236327202484234210212879920733458767968245242272480537296721770829775709123612691099963108146170750146165746215256590212874538111070181112168186837002478296230286347209111417380013960321338516275823406607953710646709689498588366557024168410960290168031294515261392580632104979667441714287557911198387238386865567475452622589224658911426740377215386987320703694235327883797119699249135708437750658748063674961757993175825736445518704240498105871836720099453173147594006402526568280656891782509471939687481507551892036972169921631715140984351704754911441432001292136771525721297957966578891096954115419522249299947450579577738536838210380094382030037507662937192558547790195512761707789564191404683793979777266266822163272288026287269359296988892658640736699930423564423777470041546346182476264253764474046489783029378805264932876081234311564916067567067004239009683194075481533381552760599257259781412651112227668129789331645270649751614498438940387119948285749017044715962882436441727456695655507312540389785014906602131605303268685133134539235504433850928458341845316429996278597029296513020216533176243373347022012450187019032650671247323388854887123667418596997232417815169935280045736081992189305590223185408511605961909417286095292298662815205423640123010678923805869062169191713417180843122747634013766385222496794228442143141301614553954323936764902676068987796614029180646723657112849841068767328145642328000221866785255131866148783018429072643999811041163117494739264516247075557285534810019736208135026330060287097369739315984453593900721746247198170250355567889772100218816840464926710450730764893143270779122686446893468713179997872399218391435279427530169043434460468102833436176318238851425564250496883781645620314641946556721560182622418052220804768075663638945348790548619984026659041906751087310708362983267604448220862353233539345214700531782329026738863255498214192959180876646389623145734535216773451843786734246438022205721974160351139674365298095463599284686091062717298487078031401756548166552641858492047688331186340957506084810070251100423946093240477197131063106865214408776161637144289346353893875558458530110412800187109875454535014377058183761536593183664782227744503213160753279654612209444238245882345291948493687839737152832831841194677921074467523085543393247636634194070419241207338876482412617794161994091881639871451390949400827926878769020391564522576606784129872781494541692120475029137323431694653459476026942902181730610683572677590458950922440187008772863393191854366028121133783508845180868654993365589286560917971767601610672186929318257025804737054882053170123582053225700520372445167812703755625604463477604359220499743043657543131069260067754404431136745915968449976657323933496294031053970301955853839954429580055938251359707422100516244071514906971595920388381167174062536183215457426348772724805635090886216958528831211374003547482314037736988029399507826611047155284734635988651049566531178350517133067288960211811914077373380979194736541853223469937592277976378033029046706051424747319252550077980786635336468350572171084890396268497296784472264899565339015577415045136680942315591473721201489519470402104181895936733532143300531575183079586995162052724047906965879333648365990549576453731204662397811961160088667571060343509677062443850018598608911015180762260107329435637344665888733039675647400714347524938488810641772930111375141160544816549009124575155912411270529918492686785808840558066845299801587306367498433672608081065265213086718847824820370128472138340110640280391547087844318262820334072100698277410085977998202288427500902172962125891156038647909550939149101345022249675464120089946268971316439818516501484165613769985891567568894633260736298623387878880982806439559292768272227902143061317188761006762020423872590030438974522175516661724302993610786952400585801761024020331877783208143556342769596372494931833516305286461064542219865907512807182889315515502647275494864056541707118312539771400949024800743744400541280514346717825776770635471980921073797221383357564078794583573750007767895460529578611396262395184638490477671124803720957239640512607837216943849914343544441094822873411897641829490537319527226719331859739884834710538428418146065652443321103410773360447168629515506126414471520660789730755749534176402565122143857082313801240566399492835219481991715525854818518541524998039015066029731864876675925046723780052025614723582054967952501898729089777282835775655985011293856810491397579635618997350847829382347681686669959787608449630574768470695511603476122343373304652923155612186485471232973181042508215593005649055453253695224716491088660381425432188263025217018956872067431312405021508710303907768797882066176829790405453556343819791273138693362980345476883882942510082719948169418744320348918069175892952970251802673154241639885510428595260244195125129093197542153031932977129943729755110752161631957193458826019440503126799783040493784511398405878016819131860015990858462625881783833080682784790497628579086201849616005783420727636658435173142436132010858086325925766463195363106957176090492931657473471245002831248751066163518332933799987861023398644402744550313357394765950372715309185769533944717090429210028401095769758953748066456377103507152378375165603701855635916210334258935653201331487145440395103923646364999072332918557490625403802103115441793445968337650609535722166568528732905508387507004239103662839449832015972572709122154284443355947208829090453405502755734346099323950358674795608298209062584650389746862239567418154903794784380263104823500303238409511299067411931599954869630459002583266281128260307745298985413269717019283200123998697711524921298475185115606450957900400506990272931188296032624008229567669556936421926333410530163813794652580208942541005829537508326496610724938248210362499213920548666947400865625046458084135430663711319887802091178745810617938022994278524493750244920186421415132393455510519872296932249629189018608892042543441477096944388181070266716549414073946359291737589176001076944320416442980426730632134249874087661939066932326478371347341406216874998984457490219491096655933289601054581003282418393457238559510272135805062192583853494507242877634721173289600090478775130204054550020395251477572094554622286360877362155530805619545607304869479261735686851348665314931482884325878970399056914689577382665887675557249023729802637379193333882463863562629675230856299490028689655087505757559005324068817774345429158062575677868672805352592010736422253615439228167516061324503094748630779437971988713037534307232875772411512379103687205120520504400810860925421469208215339417499371269427280440865476512869910759759819310258235379877179646073000011703543896477804386803194121341924804038316448099339544862808492374601350042426084772358647761276857512957066825835774122597058587909120089654546084876999189690450975399619282021488254951241024471262717276057017319136806620285722445931021983979554221396682653057291192831454849647628849989689345920550324163008871232588677803761232856888358639182011020711788096274430649683958446297465482823339851613489376424469266477058625910068665579163622180610158065930100497723505705150789103176757488678184397792158073294062032989287075968799401001518471825697216998124491331869387598414507597493349041300538805523342533252546166442657543839773177799519266213089371558458684317099286649167044105322925510357157167760699984514559771798627248326815070828227621443295820853499671891177607753719798421452509973460352641693220631629177848934227604661019721028968962374576991085816733754229492612948812666585000473486367680381937809891064153817196368623471424672089452648022928024282406621149043677014918158952938537976428520054729993090301687156027366355744363009648392199438773684758856371447278639493218781436943704664025188470712774710518252742948617989595286605977947445997766962110560459452451493928009162213441283129737553174941922393518795800889663632461294309241716899959445726645215138872691083254098622755649617659078985788870227439101583209197912584076185712544636694329285504866058626181111838909546835600307078236139159738394054188067577444386547353607630946346252604505172281062437089261966697250872581136684522349182057433040977827998266223949736337028865256442540064184341449103007943761748962296675409409035344747894779349894661856165751239076025048822670201684100275041149341913219523446001944374333688096079134871343612957048883596712803181310258752970329173751717799228868961299225185037340366634735929864434920080790817824352268935533876836551533706652017085336983030631662182927399364180649549766633958645914454345533099033896355309615189918674910237604852041244230706353990276031852420448273667907110934585878441314239762735963459656884587375617922855511458783752920653336024856333900140744316338036233262077403460477690581266132628801808018931131818736049520984202975875048424638812599410427616954625954293501110854667541799738884778824926672424870260629674623942084134203745026468680284954781043142949261971797317345779030429280640795843716046929486283281204628935326765515870507260955264681640356137409851131799241409721092936688881336186361677623428635108086826275872054173362250384721060545203118134105200357351524601882899015823014041613615963914517448555989010963909928813999673967854590312555571706436402147930114940133479361562455030600205558177931345622231908340864968831764171752381427414028400702723362726594297138176494870713219886390431734283734678410210239639466052982561189309100233599886117061940359029529056511139468820493574007923918376006720674933118685075186663291675032280603939446100143057882180046050707230466292534219986921672787976785977191214846694449357125131847331613722037574028655830373911573719564765943417241708010382093830523790631903138504849231220794827401051829591907216847765174457679396058059249970236090009306810047579384515605715251208625205935093228213864409620441700517738783298397447487023169152190939053022774824234693088722887494694682440764482271794509949176861298341671917381830329101278118940595147162094432683000049633905267349300871220391324501635563220221037717366542831049930327161183869161474152193903917520736601479801669488008235620817872074883786435331914497521836563637738279076250519934247199063941492935560960681499424549232024641604171934980853023575232999388321914645400182089826198398278278612112447183851112470446561716615094365270725391162295268345346162432650782751426280533172659017830147250692863605136881509550263399249032928039327548176079650358429267275377700306336446088144372325953439605132417394717492951225935928064786655338278484096354191552516326061500160925026441944807785916753592707835326374159199374495139412621689256662494609182052301351931839011831926397647604986104683216430500320611899001168631273577657976259423056504096832416076285464822988206743940098423028369628815498344175711800768428285300767844045256291719479039072987197567438499760892896985937081704900990242463029790460040254269280986939974427269274025700784083492278947282976730182006282284197564098493102425450762291843498356233575000473527925949926415353678676986332297672760669991647494115230080534494537279340661232460154382954863968529060551090170548467946161481341154339316171500503494740874390638439952851316489046782546458866500698093669605925703931923027407216581506817632590080986485022476758790919564005231615070143706365387563795791335795951717250670072645547250969920758056874603499283930089640215540563094404465088605484295947633263196980831675708873537449554333152837462844759460977376240111581836353160467440001084520929598479752618299344313362806227575394016583276802439608749917639923221421629743216741598458209010498049198712613278064079465263468595542321891012500479881198367337417353686761632492656925550278460233382546437042367171327818777027529467598713867111078937248694457474483016211843764688465836924509422173064775517049758858696246360582064480565946215870738778480471001849861435797352112630093128738642572400680553341714868376966984099700678027865399225115238716833343293081385359053831340931875902442220054912006933763004717536814408673248296057152024815504887943373063172833631089087322752324524452405585439336029814670313383146122903827482572852101177267367474398441758090834244838040235436400199683881076644387242151895706650588500019602206630068257468130586878585756866564270095770030145316385241108386899498002090634135591299045110704486343988642503000082973045509800386724710384614457000626182955845262806127181682870053402627577918096727025311210485185977097365317512656770192308162371591488699738795391876570168316624635562159642184213541086533728251450431131365040521336456085333444554018370327144127873475112658412101723375683252333915299868162807695583125872520204433410294740719950469096507683141265092454716601491391577945636618312440473933348850067561667352205153607101876168011103398443922420644334688082642528220343246047149493248645517015081055015189889128493651269898118947301545772760640119429710764491641983686879119901401625478851615533290939120132129249807324180374528181120689391629176978309263087271502068610989830347866230727883790598618484700322431395542772806696112477161454986320506399285913652695256441625686392001053359949062299555637880793300248621579090182087844414408520314739115795967161215866329704325761297705594616734631886103581367155714705957436834974238107538663000051437210042591687908189678548458217317552921360427938601888924779592732020476462486845022828243209704723425350516706547630031837787102891953948292608504255309229035648875978762446562054682092489998777091386152913594899226107327539052542909775953100632665472462408055523176558829849074616730727692526440951863923391836630420725921253045069300226797997747154582422059055769906503016733288059242301539683790602237942002262560784154327258895644163985250985869118754396685716338122531315729979498783934787847238987742948140481389206481633752408521377607255553643306571263337262329161256888798368584710331667388586595316205751550761833397851338019643680455483261417620691069296498355015023410066495808384592059672769528445457384156031978638368407701602914197165416288381765870167804730063309214262921859207758334009012618905091759896854267920215024396035222401752932593406237842759164717052712918503113438058050621051489054619493352626513916388207543640992597545711787322455716624214089016674707823553662808677735935911591464766487584053239350476361833098401705252479438247236738598840441109761308691001802463837487275236602529256526341828938224532990374125737407665701789592082286057542380298191454070015698873957107020714970237595387771562750905371038240839861317919593738717317825778333141285598401949309057078495648853137520023862246459885593446708429604487869447560735508676949728794873657216206354143577629572357883965947927856013535419870279802280552634154966206188579534335100489102652577655872524450961004790545647736357062518034021220149660253655209438336056677972681981006192828357620679827801803724336895808231658210913420508920352550364590630670231662651718834275585602582516035444866563332363173772295998742300589176102537851428480785324402841930584609786490062705442017003140214969553161968229111995475219264940848955189068708731305859128354060695108584641271832004600375145464904477351646753501586437177897269843530362749245839499304157431615468924443445244700201411397082905545855550681868414540491337640203107331933669044157780175441196649671474267611162986324593755074546255881743480290965660199141421909364267155370737968770634285746574824671195850360725064008950786808665068880067759182917999585790643484116113566150825961428125019589670601648155864071479332012679303814652258811693417546863587479593282162816508288838822380150779819920105629821841303270765781354274815033610177018162224418740098005186812050406383390154190301888039690764828085878604894404300830641006855432747409305561664850304509157456537434519618321843821519415799552354049753436582910514395845710197519791185434016024464768064783581766758534721872376008017335276993522305528589346906868503698809307054518632989940416549298712251500221666447092781291185337246848229162539043279986706070920114609022141287648451364859401379590231920876758651743462460118518332867925817804986860837204888067674110371825576963657505811427216443242848744716465337612671730039169433978834194330356436460472300182975478629087976167443940669063862264174162771338272740146490468891558840338102179160360249909945628443871596014659910012175211731246445773780412696064242848150732978537296474909910999143645483532992994002465335644685287018207497820096683782794359455550159297642975077164109907251652093933712003461559506541211805806726616134804888753480282353893149292947037069524453823220664441318027763104998528561524436062033254432087813460088425964817725174413464289576864460096337368917572529906474042711744965821430170733050653833442139328945357206703572227018065015270487866745026576132559688904134669114549359947396974420563124487122284792228908123306848120903901076778748867348634110560886972325359026877975253651373315584981679522417250621515015337674275051504751948497808779058380757368014531196713941850789418313299183848110063204750614660245467060430396449885147203876558988094659870174396876689491893024491415260003471565598058673052201634162181737938004571583271834345794668401617688051167666170481545245651082479612194765733851623475487618173118241518764087285773737987020845894799076541675445049757119714682395950670611287025438253609176291663576356234312950811143829500275765390134252256197050336832458729018301795344761723882101443031926348166408168951916900105805945646995999630063659152824086903111266636825271954886395585002421419802937181935497596915222178609199355815878832945984635143993718428300193819378344308789852712563508144204530170168638124475010247194343014250084988215447291669346919127021685269419512038523188769298418807427177096783756605749730852879842276602284063024108055569514957612097460701668558374536823159171699464902391338677212646861089676003044526337168012564092493970306350507396338537348668141331789451183621795139359570424231601875491997285254298408633553352453168301978337343676638251504574265561508050835984491467472295921103523394766526913980057479351761350874052886455850368497914509755244371433358429550897018643609359527244991277354158899079457644604754456283965054176372174498202906553166890897015103098166617954346608606635311950992654276840617088337902933961088115727062789764260151324627800350515102046402021049225025352731951465239462531844624641539142597473195963723051488060221345009088470917092402211583153951626648159413015980814248497633668888299758154289607591990022763262238200340031803540269939367132160744732218302580641906119682789955955890114357777863720762266573968989752309965965272945669465469380224684401437991492468977624026884684825617428399177515087229960719549622974134983560856677843879659517648568621950111811648652159856686841133130383218177708842305026424451664462322225303409865276920999466581445550680438744277720261526113298526010546427093260359429283925569506846052173671555595946297201690425880652583620379190841888766136248390811588404015914976248417862280161965968055569988592291842736323169339087145858583392128568139676189955004197129940208642110680574604331935128665690415373744816149545751411761242657250132090159649886259034576317785071080523452036664797336306603248395612641534387634403178222133268502485600869332320490157589614753125898270100906583787801205620004522240719011667293343932165054377059374832158517219376554778839097442787540127894400387933027808098275571992332815295578326384566633619797834926414212224864744312210800940559561622378018680496443124024125308199388047501280254060723668230236150025691078295815819230677327531696878213473471914158581542051708673843984600373884676865339467860025064584739715507803363810314651412508976147110731212242865379808518888069231428535988438793956830144360234616597960596953983236135123658051579324915940303014011160232088718572686354413277718407175595315658746899335981096499302509338735673821655640122695140655784776276183394890607934552962082062805876361551628478436267380304026596569477693572935561071701802858087955785255846542834443424103539423746084684315358523701994727196735364119094623989310975625396821259367135776931928333270211492915855826328927421672183953932065660197206860985475374186647450936907341846087923382754332689825177384553656937302873465616837384858997681146773717468634590697992032495010996898734586181938426274019909662961227961204051616596863071667955097210931420353975237801353598142438830061293079401790221749954303137370176836726725033551028306931718779764636404449460665969865676094255549677474625388313915176719913200486400589013764480695369513813250059914248332125498378883220692980261977471988223070798089911964727401939073507582799970817753524851302755075918166132286506464588168512623084009149996588568671146319433049436950337808482768252241369010391744895383100846935190829730408377415918684597039227002636491074556354056321175362810022630901800976406777765925070961225142071776723938572753825394058875140803919392076028600681731938023855187946801537920252063545104337764925294044264293831507745319575415717224828452047159118404443813065951469811493480202385257267387941265412413712148082986452689567029275169996604158397340123384791676585189819232744722323942870885203414769120661821225498914155658939112201963299485425913813573039268881838553643757133045669240221301263935179195247499226377255841565366396250052225172176380501352388871070802890428360148501642746825981263990275884938406436019389895309646275903798567943899448393804842143662920343177845211967257430148014522728543257209128847299013323288258141719726905602814977297925675477652995242183536240630228241284747669101795423053590041046306494944210134593446352397051933166983865219971551123035742784022085665846972362111203556183718197001990439026306022166320142654553363867552850351518999338349083911522223993761554377109384769039022926115472802744012162360011402791278087731416783706515447609871100307138468991393656759334605412156952711177158847775783334800072463622597000544498238716492250729603199978676975896738930323534737837647368190723597461220087347503144717058778488942355237626859924454495847389373048586665483340764770538374671063396459775541738744666633673102391890141757812666596475052990141234843800974415889795032735925760575820925100827297483254107030937178697616073186353831103964892197252944786594397113023578184461085952098773041535168764362058145797726062778692209827787910672705004587594792532886722642508576885494584157317652578085604337096478760135341472115291205563162297363414524400372118500840757427417166247353023150047323813682344503581454664624838144350044879615146562923565903830117137908492528658480718486637748409437213873369232966070593420874462307814126849064471034185415664005113386896320836187145822366572963366150070223999858405265826356205843599061947042206627921194899811946197004368277559245014337943560871437114962349824795490451004929299098525676108756852239309971205917038456486137562409585767765843241452216065541343965461482633135508525941072158986845843919259395762559442443600947122266088317142819551858958121557752685553721295958282132822390996847395990404784730131410083986984603984306004234157576962881101063198716848889880382798315947475337273635538454714482564503004265366318667752533317306255326982391659186109500844251802042046317126973015412992276297940848189600255090494064312912000368711025826384560353191486806143523282040442943104495935915922169370987208304988934030556796936815730230919189364307247839311556647186740845624093991794591931538637637804681588621015825032048651206967287989535658404662007466686123857298081245193121556469388898111882417160573306157054812651204815742441899629951612022251311910373425879743145501243391042745231240767636541592376714060384787544068166598369668799697380695053127739717245076452920120734803176618440189835710527019917380806946588300540981535199561006825844127791017696559162450106236283882523858442181496415097773133920352912312533918212619295186256598573199448005460640534849088719730676390681422273297365177994424258549851005726956105893728414281031329974656251408936467233378983910567955620462205718222149745666518549985344419089640200158806685949656259132974807362894010324511674330456244291526888767250275991287192607604741850203245900237781799682036174981915834454619216024325804009495319874979923080363264069150831351270159986845922383167628695925397094498897984809131412843641095750089975810026067996546604584863059393470411447612945128800536771944620434249140139025637599650197153860775614727932890269859268184393969079754558020976560705318695948052831897777172943852967758195401502272910233506204074228124630332099842851643933347335566523009670310173926099476189340599739423991310779923638365739588312807390507902545810014851174741556542506460472596802629219823448207149840001609124591781879187020874039634846720484084755874761891153160072356409959574283944191654383504364223467166566741634583038772111320243506637600292257682736609487623369721093582189443205385410764313452745896894992755679960369594920880779034123221444766092779668162292115604583120487690793846030924568528907462552366055408221049056124230521677042409638847532379537737306628726478201856588820499246841742650914744235545225764306390304336665135240421401771155916275201747917184058051161078150000510765920402658592840858729206029935043456558110104410266146032609266528320728574426241687786852537133517327074260462379183733219135755939828594852389015072756827764458241567266192863305939636223917517535386548863291520276993780631940332754816198122541978083927026994703375606936798636769862598496679336575280626128297591794200426199584639582065453593095673568333711170848034150452988851248921556965073325999480815540544187155908630746246086121595538635079276673936202216323302222889610405785667372400429597290007165584771344107930578242517308063561005610985194627306914193823709585978500211265146422120104440221210372637391531409041694121269441049222284443974835178463901220266660364714927111262008719233504927546375059931912542973555082064171243621735451428840460330868524501412928480853510837051902950544798051841895817531806452585014079724158324821449068239192031508530482521222851681170397938767745106471421059324214263388738695735330627012894091580595552700480064057249255981134045404018524871853019418994415050225279464162841886206457788683609345056157702468327800133981192455981394111655016656531531838898176444830842173344723541088251902309866456944406026867337738268235654599386813438828534026631326971094922605351918046794563131611574352376546058780780390734888084096657472019759619252792371612031782813699024272554478139318451474073537090058555315711839091283889764684259878212726481227520500557833703890206106869419211454465889971213406321282203654013221141151370312966774353102154119586545686420998762489733938914576075106925788041087186975017431161760526502781050464847225593319649635740047210288899959762425923746030389400199333747116428831027937793622189564911386701523463578642053909661368701649517113857389011242197519818886596665778728314751862056623380245282580714125399663895905316266684274967106295942995612766539867356400457545172571681157065717701967189113584048485003624920840154396757255861814679222644515118227007937713341770034902103921561868039192450181855759086969969012908644383857783715765969415600760495095930563290550890703831459266815135159917935496890275654909150546874630405292458033533355360707523639826471274568832728273459762530149942977543122657091990379344139259235297854508190211499769609417336987201960287674243385333864069930581989942587490895567441816443370755474122646941913404326405747842266063000708699937458702153011021897440209916186435817463413985523729055994890388360702868368655513845647958170577304294879838773360690993087962886081240800422362949813127350436965945743755793449053501773399425393434731412724767637448210131129532267212050240835903291069627327770858992183933885809912926988973277830180436623845898323350698512625293745371833808067361071718972104123389324174130706547959119211584655302002695553561636655421197781026572108738610865671855653127889240904571318630686881423241528172618584761435004453082913633281487206819048261735038687373518153916514670047922634944575790871209280879501188594134346400886412496177775925229901049496618408613083682966470052867936080481621245945982700964492501230589266228628455013114913863481809207354892452293362732392793144773599581445963311491534246350626626045576053816002496072609426225773630366697401177131551874788371514994466882594198115125051999046090352983998453561624968326116219385300525195384714442031888324541776659767259428547696435278900113875831546215424702790760722902326979740464457178414900007566936847260827407357239747969399599103844523406060692085859296177207568777629453582885199527014462334329176436053952958524060856147325612504883850482663188352524626536115929878219616162247688820149896429481265139269397537244516585520902239824394140146671034539166949153013792259670383444543850639977712861587966904028700601601187979299937296712881749423149874680390150527568820222327385075376497085801241731007861486283334978620642857148293567389715911959774807410347224909282308163401740160622119423552886937218741027555057486892917662482894190930301998677996104466588569569227533168820654127686989224768255250604507695024995453565026301494245135918390008034123324559599825509967028106849139485560240375334873372049874275594235479540082900394662249510256511103880976820790405587760434548767782591848697935040568893647262865749013697228596670915428652004229156912054220429927838358598016960912790437450665856185197637563358756562721126325091302835708883289569677539239040771550055447758324925842099640425014988403361282397182570788810408116525129413839374712006643162495005037182501491741177979989566294338161337763521509794704426094256623734452683380248176947034084926423519730252554906490012662286742518114595735623480994980879512145939281552446022085793624121370661845395079195968900115543919653619341560621798666509152014899694798753846456382273677209550940886148466035591952415880388331737048934380319903318238259846446014789907849461307502142422824504799038177580625344866521967866310401710061324321440010216759213729865221788202367366011106302750298139809830827926885605828962700449329040302716029922327173484796443928350280442077402360842182743034765621661933179609190188434907354818397537393097135366894270860200591257345787896934746780438240028179732197086147146152734393260099063032678271917361884709634054227086780672189381623496879673257827495013333996304222843105000579438983235600292997657586231724802057213797436590819519034799450852044870674283282975867341217830464385669249455936262784110340195145954237483464323310291315130318676221551715520915703294632551735950814091223160119220479679062260021370448972393941893349918022798962671040627277239009519387089947425939921104033319486915321107727643147566552704239202914058259710175121805074573637600840880793581513860466074252705925662546584469040826593420496283652035136321193609818145948496713280311898556904738880549390304042434177185615103936136469997142787531208521791185814526232544397708234961338977674185571995589464760696130602276591748452692966601295533119888100873306508628330691432451752969802561427666120054142679816344639561450510744551080497372620363914057128168037486550356944866351453732254198114181292684905405759658925799335810427568972725448761960570934871198895568994166107796814507373607230789394695439451720075735324195297897260341988568963940341856787747371015777604836436771812291622688443953661633826501324201988433647496270814494823380990974277982731465153198864489372263785304678204445665419650874703474311020658568901505208374181370761502003603247015384019392383007148126920076511101250399263747600538889804689176268144212573825204873071840489840378137012095013331988043482075696219563902188870902923009926336497025063093410629350630924051056896453421179214867419141021558646628447349001007815649788280177926130372522337363936243739665778627278274951253122326100100541474511274001602752054351113046737196125017858802452675926717018914069672843839691160419279406810642347110461396050686055627052997672375528446829063142854840408735042290666473460067698027881137080586432618301199181791303502997025329105237937699119622181332966822837944654195546060790418139422291170558590999132746445165066868670621617219353564112992697745148259280275135755517081624636457075853040757249692753349197979543417833634138304584476800381649308296098044189310880074625329898940334977167122881963431305852053205300774015536611424138493408314158176969059163830540888660162969239283258247178645125248318709549562544594116043566018347086446751665882418841508633405088463351255134239676503502652239468127938742276474293669433850335084699704000159750710967907297455676870645572697241505450111021061230270311636801789752690142039821704695878530314761616564763693600714761806796112553048166592325503444900172397921759122987913792300075714691702786958147257479911694568750917945654871798474295574231810175641267643652158229455523662273550208676108983308387298567426152458954247787192938195772453285692555227263203533545844532309281579052151673427994216493648757074538951631415123646996485503531159912746426542609683908696131880923002153484561540967259394047008223750199732910894274189484170611168268366702494473265652134977557486667249731229456041212721621055762696890944330373957613726322845772942105244427526938430191858887933458123955051204781738185987906550092921461254114596574472670159323078873755441856394954076097530913366418101164460766538744311086879558930407029661500892982747279208694195513174902840982188097776687084661691779556063477732294594747727402914910703012014782709838326053255915937883734761762186309867823763442893134381745646466682183048717485540034043565607085713263248248959112530927446377492165000377557588793379503595787897597273004077516407876677383500497018910177153893625928901915278234457527416052390146589142989412105032410298972642541673137372664024724274183359647660301755479518878467736910018442280771110787710881101922243371720012627744053842939080459199363529402743343603383664612946306135775784178997232798145788324480275559014225358181328515937255926865537004583613434563739319557956256141685914143478947036503074941180947244658977638568606909563630523050634948623503155331216303543348834490699009506567471986532825402463864180373115947001680761802504156890052695104663409724375740487048390247634778659199406344606265208530521631076376119139595903764636162610681783858162588785067276030796762907461419279405768825241068060586370859469313942117889229162949452537748025153474605908416157720411257723499318819364068306748874703779707398020237289602133872390381944584757667003432908908265647750589978450016924407427335035708660764779509181061545455722278231678757092782964033892869597127592413414596870645866982360929405619650553061454805582883323013996899973402380310304512731380748583535711672760973200871974333287050330747689154906911067495268828680941886902710083813002760859802404181822084639194119575875442887587707278611061217225128534051195300252314806546372640070687479048880467011605985736814244876797550845233044748408896312269459706475883653894768844958509151543231271183992529139076182881941403955566197042118479978805719472321528815338197738259880517369505433241684875194304995313002427102367186629593396987260388429750148437605944110789159711533274454343003384978915997773725175032457702198718106905123386804619849381994819092831420678537607807850869080711505237905665968778042096221412009186857912610852900112568783888597861890841802530724046765040036485606024912527258126529968461176677595080021566497812111337180296557031750070793567026056221469066432828326059193153065944113596034599287593635128291583037571752522135109672208268443419659680891745507762310493710376902977503622901441907676103409138771985660710352755406334611685581584113786074882785537056400748336146069311900766527362478229948900798379478055128710040805035894107738074022169946234223545532941578320630185968550266973504456614644966280669828409695932851889597916565949295569999043711738191312853334522305330178145607820560394650088862974898701074073567380434179343083308102269644427914464234811812620702637254381190648892188169367895687907603287867902247124510426358061906531741565822067182251182046287065336010193152402073017110177105150010107225542134302498948673758060053436398756297220905736804064236777070681151232972919999603591254866295256043100820014498836777451961102883391996348243657479116983883473640696128705545528737760417069269853112364527199814658235274830305679453921554639448027540689341867052967021081104418577893309526328693796132395265145377491459590599955791973552372659315274814368970878404024108806191562810537024081556104692433835675004614801320239878767145472756676780705742804705846612036250849820160547379425518165748362194482314605319798664656040048161777213538342608563526684301198553409499289961894206974011348478248154119264490172448571221604568052597884394145977533305062416252638560659626015403510198708044408353721442947477494421566732963280607207330424809404278164916604040534059916034584806736097490043592205706028808419475387409630278969793078321559194716226439436451982179068918540541507702999300339995659343984945332942374457803284809798511744088713157484712251821859276086852540936815736099124520430492540456138128870024726519393552566741357579896007068284936969450468387273698593609914068165422226572678457009020074694348025411170569947735581361785113814537029623019500709569693533219998575392004450579958481407676824679719813492137216743202480038639931474022306958639594286189196872319769255379828059078712281309735372095640997187589272610536061305884302134729442895950283629078282990638368830379721861883565075202947514658039541041300109904795514822781094473203763941027328373856536645080283063414896574883116309884874153052154494511805319651227497118531608721289456943414095989085837554607506881689665013888614810965329104099589072029868033461249952717173873378475602519166859913105982161353889885717885492825249112737981672335685420506655389225859838325790852745874567541193765667627597387364893473520880961046757373948315285079001276906403631181769235735607547593656135700821841763933507341330167997984945758684658919613180626847129959015773385205599138073162294144806885019155552789500662788933876375627726040646804809715979136654698388201485527640087089451075343095953817033073264175694765528600539252884979212257157240274003083294241229785038280828998854231297520019906774747267876524607633586891281496287403880794811076614767280822134212303655218050481288693127281899586949155771246699560724500053296530892724157382449194073880343470670296023372504329963776926724934091833310844656823256454057396403043689212490952376540388038270889023849686364020992786891189576647725213039866679348177386008971535427798253936056470204996213041937764151856466743907310109167786971727629916447612843359013043516066673459850554662294327311656228203409766737184016136422968736082619561510949424259631542431052550304583418433918949935108937186695927880343920104655362281295334971444714042686946403444755082148495146930351133540339092372949363179458726458430276981325907352662333953700534927818412154220815473543853504024889100558193365837587336016740762646061631281079259886707235029072941198367537605177336573365754221874944168309028499693797304416890868688559674848190545397055468853090189942337173264876571168757362433496877950924562117549455478149212361497827913159606546021171400683159209974321963321291627399588568664960328789112634609881686028523831606116703077697666694615272586236880796964854638665998345476092737955254799124250955374686926638799568023049606942267296249451693874406392597318653130454962766874678882644232449752021280914963028747408622154789643198710315887517480315602740232033807780904789801180856635679409174576629025174813156449361967984071426130018405374463686601891918321199053021197151047566945135639244999327189542509979005579785220124862001681347732982646838682505893567482781861335775868794081311579479188190666846704515414366865289617814403073589064140853113839928047228056492130973093917896390995628856129264571026747057902898974965344066536710345914636557460963608222564621435085868916378136931300652525783601285302726044012736444030395335022122933167168980568658419799343257978998964929550413853377798586483497237904870019718733727786066083763827097879760271393562080772430317168781410151431500613810770826394902678521631080189436250923342228818756683082696779048225765920096196706059063449005035114781288463817961337888760349591469056800056291848703246340379534287000298809726957657754903139706368571326909706927503909309319352830134740346833935072538761925959551658211181443228511510836045877112687846115404495310125905018187787555474264476009608881479287780982511809659989284875401451421436740656713377388217195287520598991172840824094377321757808210158179220979225926750303537838038865524175635715452051528440959789496246168342539270614672537664231130214421618590977266558733677367005453759430379773348773423419050406154045048804468021026444925134438341912411756234638431143738370836025818855412205035179226593381375572840701593126582988666006943822819062559452031611392048353424542517949811285647228266564331430953134489589892143409815702716649881577049736840605595186130338691740176285354198674143831490927837697658854847557458377537850701598515680588376793455911946502652950586240536383666490110983865657883436850301852142342192704578418838175816705731672702109209974255735262532555070225554360495994454379392871023567221963778109479425018344508798564074870531395634524362937961375916718410362554413273405099596861988111605091851163862369383474547147736189836272437732358376942729997239297539032786551943630047195469736645797460218773534671588837445676594241598854953910342967962897497360638580620597463582951600480420887333912473010371706608977702207003036829997907682789530805261932763420254075930894369535007652988024788471262947374230772440865009492397675315157069232149909481138862275349689461853882088011625073973708811882653142940311345835856890773316480011380287317105748326341332392993254459501582539812937010151361771742087537613903858087100624475989984076103056391711352099993418884016616687640941145720948971374029321502880499366560342553252175196507966979814428010975582641383863626643245203974739294509409458650899553375381283667646051440941591219251762325364744001037927460589120396649175259443855606934292109511692222110601113609393228726697021306673792781799439495685382349105552172913430241234655961475442958896002295681125313375628304177439873449642282025936908617113141909098952489887628134893354892654830128213235437327550211812343020444095207689260138036710326011946722124245897807525864153915728247678199565426770126036293529161623467320518816965899138233888042023500999692682357852135777468749842602694381766523901010333190989145110053550877677434159618012290254365574058834498025000045340451570259567944308874345330001118448205848614827009060304919446308572908923028927749598339419799976617699840920257392865270012043758241502807231198237664964678056876559298164307330799419966815205759825137449985565759774313231215624712643231722711216406625516816515739987550104502121670321557401423583807229359810299373304091243416994641215974622902846999428432713226917110818150446182097696349146293826848168388751863151880872065304688669114738297391845388026350532491893733858381276310379748453824315313732166028822066290740564958973122767861727507640188074122138663937566483219049690152572865922414247309153904531996692984433292863741529900379298534649763444486087283586905995281148654137583338891774450950398773138061451825756400642659011649351859564404050485980185038997559335278544884158703020713311239248267382421151652584756085856892249601486569193222471943176755852130973383681983156548670868334621810928821516369237586144004648154595907640954660302814671372043423601982968352110293428026270734873856671119011953104684983179453130247664226720148030042591443723090762244353495760869663787747562005554137662547209531391016171264428739315431220434350658012773823917897149713841279330670034640890591291486796775575160134135305372748723118457183162676373125210583116207618589891360274144323349616762527201293545626249234408041705724084256303834954034568649401267719675578358152905849781483824722821881424770297913875324545641906667304873273871797689472873622645108895893719802945789457841241791698060077351829752870046238195733473084342185388004901920156769430741933838406597586163098339138643817544443916415391340948714115113852588855211455411105474581345975046574847237571597985113995270499655770350938118846945619054039434309622647136999040988317098036188382785172155310484745844755602122874241353627906962899579370001633187671422024850561598061765711629362550044076804408510625620123010159602396574658626616174547428923109522583943560950495714165062840594056487332745001875467308389304695276121999289780469782514782117901398068778460923597200934629543364096636957977072265980236035043660182558539629953075554810497861004816479530856581971136882227225376472214783419764651500508328382978400154095399611453096148195096110369618807370238948213324554286672179368403831347581102803672874802577834458150486759810803065432129853371961378989310172879197209991867794257094909551949304686770000133920342163440457849296056991518547459762615440724957381364410991073148856517738845195365299946519583266731830270509248646258221140597120719406271678877481419462503150092453247636898292055341881677882862088541432515097301634218239448807006379468761300773893799089708347244673760434410384975395925705770503666255254681972719099081849035023793038691392750797449398878997745408160898684266109268264975980718187003613797113303655844648711497794200483848802244638429795890277387673021529982878277187741633407824728893515246411589628807278633904506131547110010285693390185878026209993223051875266198530098298057740320755001756194844947376255284915832723896616604862806100394969441334832413525956560204252962534375081527405152261014171707098562745623737275558215358544641938200474949793517771981230956072726070946972642043639890667119586848245851434207848651732554037798500582795252434917477182037044789363933338534288766985706544182140348575791080447496063656903425932127541930957310744126568717441062280976475717493349540716592414818621591640850434386998391532256339518144216613018194255797994173857483042388542426406525783652113470015968726155299175688120220339073188590766737776564552279756626505193876613490314365271019782843802866794452639285912758731723839275356469047841313157982667501714368155992199830032548452213015428890326526596200725707914938038966701155674077220253442089489962322652417166529475043838581151478245892574843429053701865897559208034269078943068997145587581624287414808590966371844912299298603448799046816755834398194581770476030342671450040162629586714855045373357494434392345587761599003239353052757930623113864975710509768728793622169777016911530716935783575567216140463130683694368626357210786176483387812194774978886804848686506468053379212882342760657954509021812564649656292257374653731161668029129362098126097122587049358357930594109599686364725692683418160448295230221885156621534814867640201212325181149981102159808716302064010544226065997974884621715677816416526479387804025495755125363837610858121523772021316136094010367084036688341758763497463122160965058477783888998207297489343514538286343041799593587799505980574001765752348285865238132030618832799975221412710993283974466832999130006154865314445468514574772821061706283133524826147219624973276391840995446735672442782719661798411203675190962151347994269134010056745318512520880598713832310861752354638093433228917776719364392368492225957812528693519488218557229067593027156031135388855426119188195593273649798579674738441942065326673384134281976090280545931500585689132245460417552236507044437843158189901937685588377248169308927208531281435324834023780287903646788950792578390379615923743934906869332639302773082184989256204975871137324675416115028861868369036912589918068048220016959847398914879585561494855785693586919674621222911594681807306638723755367561640836879068395242658749024253448423033180401006176176581919945657489049950870945320882794581986537593636975151473629033642068014257130592485567651112555558013082395878236967524856099163633047334846614746321496204589385067601366273927289066605877143870198918541378875551839490516352437792597587402790709869388819533106043772102948097291091436911589275992016259984179233873746857410347244624387180322078780305517557588653201149310957333629326684688024578834408335535463973603152793793724710134946890351365224972977659516045321827282677294574201252221407114912778502242954753555710562984496412538053311104478323606553007421387794155157026357927891237585305388664567560132027341198453796967241953939616245827250832349094164081995995630036587523883740294960141907255316401895540674394896569435276668269000437091072350727256293819941544445782814908463186682914312007209110241853680258940355648155410874720027614678193702315220453326963384814662954942275786667583845429193626401394658490683604273957668616605626330131689504566199047034376988043035376722359987762078065432019840816078216676418227921193938742414848857639938761076921877294717389061142498429930630032206669172327198685194837217836241153167436277659652780797642067670179909190542620655439924555749988766453385275073332372202032568207429561931434132120203060904590295009354666515580139824514901297962076209848982824765706785096020974728867641750490441124576787347591019002343346572007043330724877737439178176205437162499599929568463556567670533618460728774687227225861665798261499711127881910406933946087326999255195249756873730433951307947770696000990567210501268883370355294857585287832704124944156165233705443279588940182976275136243137594941309225843441447447887625850134826685604082378653188395529665100469026516449348476652642463426572329707194271065026304460803367124912220469007732630116253831084134294214107381556518099723402067132245022364712564328709544679481051453074534568207650570310667218746968266485897485298964721413967035435247172455906169255160282273394972563712625730932408772249316381291093415178940482487086199752500538507734022022680165293873603591668072050119305193799606844384115256140474065783090141348580254126910777988536833373122097994175573165705744275649050512650945588593313424301337211385684573371368394169487956013135238431825984028138417551631051858839817269462586368685595490891289672504562453244850270590621105214057311269756689067230222729216951259081769823998627597081050194096670269339516621153520234011566781421359724081743643622800104828737910812698837945713670763566796524839990097879135917021018491327891556924812244599784095927931203661662117111730254166662421359508929999214438404403141051282960325192375563801597936269501346735548687388440470948843290576360029708423270213862598511186441660436818402705977134601312327852955296104023229609033584578016348280197934423460549887674209355892249762442877483363387550531633647755248703367373391174889090362869726205752021141964001905785607881615475222025841523637979607684704095347628510605345447408800625503459084749299365034183472284653677705787955471979087445736986896147712885748568933923830421727676028377738404296111469019722424833068252878727172882356696847560369618602045265256793142484835790260640274590694100681796794253394110609585419600879932409047896747991344430203979414778108992058971695244653519576252211196179621015939826445027675725779786235115095637157166583510875508315709777920075067658577505633906474855726142836637979244528312990956340972286602618404318491507767698531746569339938704705853280469634392403808041297479271418169248074678929500690945845468275727090598083986701104458502180091050403117483558538175592683323752024378999234343372333827006578287248032950390523964645129271570740413601934002295088920864353560090099900048208304285387151491245430591468992510782025220644091752710710625753990321251886163399239787397830969161523578698697260210890246267773799783610924579624711450885470931506338392754552083021432350562068533638055639173266278955819795934648037136640812208050827402678886069380447702914125790955674086387319305136213490485695005497135488480525224289677937062664213549678656729203836442669806751148058348952872190690072918282226711810817364547381401389632583429060210025584455824212323514597555186586235127674930962578976215682342059516126477076902580447851619693684524422648469529550263336845134419547459071642900903261154724532596301115811375411742386582155632863585894775248907040867962466616496274973552411534917382147171804571633410536824134018613403280866296125450241441634102861416372232191058763317964989033682730897070634965510682289067352853768749626692592420898986598414913484291626371301473886401753624391784413468521612531714028021241188845376510632852979189062365121438096879368688599856304356049182088668342925277235080284499436240410157383023922768593591915046954287167016635821892174225220628844723501434776265594629173966935024436552165158856885149087590476640532205925593578719723971297499185835857542454944391500421708257707766456836216328909041473952099616189366455748932651309271527936874527244475414251118749043345848797085507190164083898526292981317330940370137533512283183436274300044418028445626492027746367308117304728029473536709775708112276238707571282762635452978418722946740188978482056553334900248410667479965811388515603600041653592119925005794559813843917940238896618473048494046231107041790322590751840137964092392597788291819822941157492009793394400846725686598137318998905762984189708495514777446503448283704287884571481284273236222002310693142116758548373852514826258915881332954225181742881558899416981202640509717629061174390135560324729248643750064514449390776997326301806978471944425081528090306561697493542064270624969616925060900321070233827914935417421072269499620514598456798110653262453819726285820365257394437677321687152246873134700151469777639087442015975628874667786061083759986233637608318511391944888284905533342402482866373964155153717057697600772277749261282951536451319033868456521180307345425430868095182447806924747385943514850590116434640027363065067622621810906083018193162140651538925554043752442569643961074642132835643678765204747719138977123207206786730098070041082843450676535764519604770301504920704883929514877643711367663524975468176178421405236280138070018845559568568508796657688318515311959626315941303771908781170808949912767297014367033573065507066856938081994771214865031003557169291133311144323726202143644583655661805938850987998065207206014214125086156774263090234992275511066343525197708004733821542035249427708808065807323648301932344327628211937086694408200519220036895626414536770015464208003028654664399654694058871622463414781979874526639237958368137660256229905308157336539784553003219573829364649271111683658385560945340113209369509334894134630695334856706917957201552713646765843018870860655624857249371970425969778632389913909231151425679845999730743154263836653444344044124825634509116102500193225082792690009178997874674738661866974796713093025446122155874892347884817902492148840300125573474502524476868496227496829506666483695933493577563399326810863334548553114227066906475029446604525841911589686350488333916284250775366769009411573484870523046938251491832792943949021684097970329945882255302598795160294353561735718495525216297451972115959287654806062336209257272520279407421998848452331598555170016371446824004635132469706835079693357052894414473306289687004263522516538195124446243650368205438282997669972361828216695509127349117214472392311564252601649721565355799307252277713144723466029500018984527631896332167400873613524924093981786213433535735222057227576951126678576595211149635566239801901558188815710231348082491361294976582845232745891507315039720557527355224782061445650821562017334304196993178286537801195296315649803971378602510444955420219921149593380753408146339696808377143684527962917765121780791597566904125007461338384577601465486277385055100366396874510412590297678775395269883775570775867741975324483575294234384723545197555030047767067749051344329435558162312433240127970696084140083294646897454780988718367683081329509321967319162399004153531439537710463041010784098279452035140843278310055433840261941459883776697457284118986275036039973589742124592946356691342264135235367702201188131998774260382618246259953446759429342271532153745999444813172144556938632907794110257586340882529904415181369204425925550129861153593484980800424739502243823799938407301487376031101631344287187038901290304807463382703257939534017848001142131682046627385034145298448784909194651643918402475480475085827694537632715524507420844217075760625983576676839323490228555752507201572440276620364399924851021803664173849935227631347341628316616290403070552234442379551191135581672751228297222973989757715249479574805717364174497320497185970148565692725811676526647666042062833316478449454828068786167530075012947432403874781325687898448002808416316317689915673827837325122577727507358405931716755901348340921544375519844913082466888429364765721209681787480039809899350181019344553256746316765425684384158945300141174473994980442818768192960334990788057322649122875385875757494633294843544818785161197415704761435662057583816481620633622178940804147886443713332688471924711330216358047361909252001326800707696021616591511544533135484681165878511964750394643734611397819575892239998649552081929719256492962088618379463214830438860731803857396747524390781261181989258610611975245059537056798366682560343350379533706219949419254384133705538747358994222508604014309012627685351946673298768687700942629787443966872685746701933011556068486397141483275765742727856138884232850187694947364587416112062616372471598469185883983408794634451772508729631102774047232360775728751550606232303839036318176035017028544818895597625831785294108707986386107275065726512229677356353483055665318598551502208243166154195573479290341574275379757715958954630288200204215021425185849702266465136547992884774073260570980716196378087561201018344204535880162696496686653415444772590070514587900004831619665794499469935008780944709420068995464300854751726769375366915509533635658761669986053190567986679229794932496547454198352783145039590180272915183842141919697781729007832987545665475529043336912907612826964739437814720217059936238372860216071174176690219194065770894194958205361408129247565561890615745070258527321896312727561964042869937684370657638318271638374147426513743622789106437537155199828702799882474807823113501295311627727545798572494390571627956363276246996322174282489479746955061534196764092530705570944164299323230282285478425466575942300172198510896042113318533476794627437187502213453864842648973186154939988056367028041413000907329658741537192732184145784361367003914163621815952666481719500173186903731985056035810358863767300144268243033190597869251643693258216129346664386983721231902194211157798339737832576560093133073251302553148215131615651883366362482303615160313037706345109322086822917455893397195030806427578826055413338175970478069324720770097032642741754456262086977110541751532419683616550279720984776982864855644188474631878340848869322871174364663959845267522721578793979233247099315491257815500759188408303682847038178585099063807123969325495189273616942920230058180967971716708134982526945407195117338514948544469641152864547661498387691783813944752662760486609482431811162132637970331753670596472481750694399038531172847178565597939285009738942178351410355617197419041310631625450672148857161917551889875526848790513923911790829866704438669761115728251330485612859142060400838020146357165303321529658593276784090797620086865538978650264103329841585263199669351074652834515905085441551144906508498741370223377863743878181233734411514062797346139534505282328566652310626709588848270833508995454863045630563626439079391058258123993406272448299797301304820654922329907110455704599142996916438630605048186098212559813881077849364468101542913548223200262445029930083536194971347958120111787095202704674783832975903986022316773849144401590216645653268928680075684948144073246483494775672006162103810094436679683539656217833597766541741899113396102873948633575693541348101436862098115835275015310639028797192595288950974267423395162398183484174257482691067765467152701173217822514438446111850126383747233479993015436735873539686559085723787436636515525030069335280858952533871897732142984172274434401413179388543846285839984252618073597999030058881296840830373198336366596478683171524591424018264611559199057959780159251684234179672061798091477237061737901917466272714135621903116564361695080402386638407169105708526313152033978397588753526044221385677594684241429946333467945702910559982480729498638996680646338325983729105030160550506609246619550155080268504327537314263002519947969307550120599443116935050190706453333975220338894475677112885185485457996335943089270345411654922256283361869140183187879913328040908272798354119404530700977991464025037478614523549415657176611853459438048399050346490684897356895089898430957890456253363818716971561602270443030310323698904913272979975938396316575809627726102521693934805971484158853753616179383973325696323155416356840474498743964084835891071752991059514655749237105475753993439131376498927978817337129547815462155499738995924194011094140875636403683174299541726063801230867289465351385882929141151191615090758166498413402469235530649832061757617346029336031233204209032405781673176160782648761310824572451271033289229044324265537072323701753193274454267293008933963873806395517135494983236949819567619832145887028642355517518129363653660063057392972813867482623740201632830890476885593358185535191406341483531932297709408507330903321381754723980549453875497249696600374296391243060252214445385047069871851830841628842540540564857254098577131515174364874323089372305759484722971104597508505493928139434051620076035455599217219546486662322392268976612584639657812078404661521399930658901832758565845046016326786973243767886937165191333293847968976764419606926797562769713646601418558399775291010199119878277410263745709166276398960733567800602752994184314610792826783209118533290952498579947938011711091175034804707571046103785795408589870587732286644995923879185149908711780965616500546703741061485183482226209007993699747378957588693357074117259023214742249653993257791428152040553253989210072142999700772125345393058924934615541211051042726080219113263286014346714104688326882326263562860485151498743144581647137098724755649868840569540636931659288646263312149574279243597769867428945992536011367941849098934060156052860893794381888074736695276259452573801656230528197387033182330821980769950384708652878304883549515020547381757202494492693934433544663384014929519507913215203043828199984344319082290071408046912619626030098639929280719056054422752252121867580450340356968526869694973424971137903328176996520337547252353193909306214990267394797051073751028646174660087126332364124128662740244491262076614671637511602708363675486327671487374660079090494184411421081430426374466674131969319816996320820747449031401272664861708721383853807591443434258165980538765047763416465956449370405032751203666695826080797712709561020589775228949961503983947516901971500094372618480250417302624825858170609586082005668878426418432332092235447399540198458206703957935481781783458362881897851060637768998430994197785444960716671025042419583192476861535557167093531230671880115711063566027684856537342257585930010746074859835860689739289078785361636215606937422117734023030512563892222437367877067184636193174713005578582273636627271943393250696470143679659676661592245183920588396706052353860260986831315263667378612179914245203359512786912079386032664990287222411545209301559391463609142819434916047757595516223511124351988943514300667780262237972945832349080265301563595597331703932892943946911813900358706290997072725305271599181190124461557827485010452501266185809608887310811958459988206632827650442328707926718948515065991675906607533302808039329629195653110695266507264035574185603713954341334576493242797611899958849652987353436845556776669596937448489041206953993079746269287386236410926940258173144436781074266078292269103954619686178408086242614105800994942854492219072945324990819187073815700401360018631787824250347996609720227370794517295700331044904349784086662688699392899459089433473590891625163524011404863519449631681653390593914048679448201129007368045177328937370245636941818204805019365588756256331866493629393595482653155760679243259326196078267600750686663026859258572120014566492051569241499293441719663668870376461612347098057093129961371016539524202155457358598613059299636907921378409862680811932735394596767369711334565447054002251578614546204174262524827245324598599446948757255905156165261492400068075959576614265291032703549642888918274861381915056063449933390030714853101104775699594125703490805129906296729834801254694018651264755486516821867499218217776031771416800955373401246946496079117139755597113797009822613242073957776013916241849270732430557189372419820966541933085205434758680933941122490211477660800294426994430063487976534709992717942225691872766624516484903843501047601038874591154284573274658335631296711545811476654981994250748692339482561177548560292685058495889551123355347619204227608823239765249573679692163392050635705514600584454531566080002956133234850608614974477546809563543051805979537934336439985811922586132831473175934635236439845764838920082885990579624172396119229217805132376470087737345149517254619598933849245152671412908750837475420379665231428583507034854394476025144932039807158265262956739330267997835588537990055558247195986653078200164122690173038871201589599464931984949229807960599067226954046390810362544364073108389995902921239616847154782837786430716861634621044540060184634051631341007126026936175999489451088553441719120509355716589838911424819387733911659083116366194769609662018213292190872317506294265217862711967357278105757365709088077205583799892912904375051440752736733394320992240235878024970045014064907784422514533761507470496876098862689047662552185304477362981218597553438164835926648865126026718267980844425361323765284317779072796975660792453256203009221793298197558349884761473347140487271468066242860827740534944974497271949282802547167068979420717192588130674266603152669657377703653042202871972811830793115153610339880356918814417406748801152834360751271069768520481952508615315612648311511736675373744443952044925947628432427516831408322749042972619708187711928645892610354545817298709633413455738599504840902301130438290252574852926922275442649355286827423646194550308999072054800625984867273075515725962968939167699636969167725051043360325745720705211477695099487104680289171572848604853121660490842602028820935371405697771016293444172570078043442949570389238431963628382572600995370383541701792971536454657516856463616492756044831453938426927378478325968430048415663210688824442823617711398071627522389128673682202824771544715200430676043136350940482392522964759223909993290228544056886027801742205779584817263892585149667976840292179618776819573414580035175800558991642577743433415451274229534918852843721100203768162770062485691823054163137122720807729160114557746241762295039259488725338620834487255898747531757104994423293810708327307069156774806789807368428849041815690916921639234914459293110205673414580568147112331810484115374663398840534494631822099622318557490314049112275963226110258639768554586734339333086847269307863034365869367347426831861552800168270201364751354342630496503088782265081618334470638181679213301268261231473430058127444879752127918630998221757955147814321497656009613449964609125689454951647632682279325139294149326297045863890820820423141300624666704611454272427230477604961413462619166899373323747360536996056027010285606323524898804522606213261935630053589809933376957368912381449922459925621581553247821101333147617155682362123574996045290289921389403939930411877820586450822892105807341050985011964560321809677250378358081243714864022921231888149879479403650156466654401778287166198094554819836837469642222302937018702995651268267710901165979263269132259764607412644616371787380746172978852098751777233158966489548903912531405542628740181778003240413864682923617302087235504682215253778004287531357893292107554901375080983586999815197703117882855521002366647497481865121870557671007353940796139374443553264942841606883903951671322164052448548238768742310663519079133828099737040450497378770790082789777586753091877725566833582857236178526268897514261607561265977841938795560799364753063431970360903337944925278469892746636412123742120641015306169938824434485436740335018287537247522048294744980096679390516271726437131450940492453036180471334823737518127986083269501136897574886701557361550827752637476678640453795794503210736293072711654879800288159130922916264167704761494578749543019602748157731190863446385839995583660156495981027035115630189818754141819583910719184114002054964136753991086887106027028883603765652005440840667554671724890147830530574648615067299384783545056397988890756607060744872708992843170962759084545010282820225568992038914593359623872792619859072642782042107489840920480678620864744086286608760203706845908183890488136522544329355646827078248587507417178425676907202525317774631292574798465637910001289814194624400584568113399015461286298928600726795695580278414089331991033950035994556199667901090286724422797884217313159440555913356384488746229535775992789055934019685425576470980170538308384320585221847057509404384936867569440613629861064913962589510751781641299747386383277169308612937573862974462380792074508445130985518611164609140192388005412469835995065165527866066911176988919705188806705605165480762465907050525739426697735848811051232085136858832554459690729729006500028091106925740987367817052506479407752482639020280935871401186757404622918638091288801089457333333216308464340831788724292861485706521053839604503621672210517472299748569948706198938264281416683526863172111688799349527651799090416642471150864171588643467394508670324508720872683505386787644946955938899208805413191486240996738022127496106345476970315865273676423106232489826087311572636498832830649410038938641227174488178470825031129455398817813618827741707742276740833836587817793550486003324173137503290393485414426890640597181913647876551488076036158751454494438967613906863246196542045245459028690657578901241669952927211809879710134713412726677420461133105257313309435407949976238573705568771824892190237706841975747220389804764887315851249697641038860499219310859168209520393951617476645580048169886804301999170578914229048063817012021964154930492820835420853648243782587435843830127896206772420401526657280984891313131773591467015207103936129593376689540547939595350789390526519477769888436229069402974591536630825907414120808070141748101328707047110933608154725154133080752989250055617674078303504070152880669902830166812770634663449878849946973408352692948406191481560479485140965552777943544944060981762082853888970272367397919363550715232281259879132811367775029526383822003489443657983477173040778249544595982190968203434057284095237025448638992312073570693654805106901926801605950936504396311369979141280416609317855729023764853056245049605654195374215068450834189927119474960835945420590745882216100520504973010288866595743612500565129055955681836392898743587437225369934830796280170155632238719486443291807542283591106286090064535564589996265394813348915957244499629739801075754046462803832344171970240456556416765297061357088778049728153869444688173876847084988133237211753342596372042794186260310047321425277868758764028271826533807411837866600023608344189739485288292002953145683512426322472049286621251312212998873861591286511760202620918168475840213241677833804774574098936199309220475319073969502605130088336786392821491684201029629759887357320044223261700385895419554785029538326774461482488551019089182322233841256773980099809389494883172090846840499847752738087489868998149318973565431630319872685423421070021051235854649497632349623205173323153816915955388947647459615212447482054788448233597526770871210196237723526004460424974862891315870333678926827816669014534877111450864427617469836658721356012521345808225365647189161937289047380605826131080602586779938696121599512878716780826790206360294762542449412759034811723860745311279591353003632144612877309333890300373552969417008331406985812599892069869395296933017611333013729876154267691597969282254641496706391668838222186224943727994401893059344995761764074300247177105831163327903484438208195968330006913203494272518498908494950128802851627220147002435452760858004371520639117267417693231009202197555438944167791900454186715575836327504714949285869678609378220932289042640653687314889431016858372108973937020584876618287225497429246507796519968663536827557425692407428941163640771847138444603619217015812661540738882284484525640205473834601331797282117902568280320748634488899125804201016796157069753448272024774641619855875830027527186276647775399166863749853062209409837243927128270586600728253488957459279966344689689127993482536249348544691226605585002315773698103126766829868588307887084722753447365795510729381484057252611193912897112432388043574663094916566147098181599644280373583441204869698359209812891513977685917295034375986362613648462239354266034622837480107833687221647327948090812887721181132607727001198574810261641196651943533175061764888701749393151892489716205336373814297398942648074787381023439773943648601287590438582114627638505296011683909386047944805915771794485618369523136544606555805840513726801731539822593025742268151584293444416609815086155243170167290723622698761383786206151214315430611205585149101858330452178331594975888616586754847712343395795229161143396189733636745108620030493312786615760454700438478343450462886036887783393817943030138104150275670900816508485933563515994708024272720852445811127205364815333925910938348155120391962802803645390987717744753010393149205068271703726805530852290514772688743319611415034919964327606831680901016756620192468225761483651013307391067376879555080347967484931143040821070118426059550320998706540181595158239258213308469519367456581369543469850099861501866290339445289519169808043504039482822322564748940118446978589574865371046263386479854777402465517742773217109561391965210082985623679596981233030619454912819293606467649626712804617505222400873347968540856025185448064922709580273868922031935680728363814732548337488331246233067994477246738689750678807867135574076195372243279139683373329448723627424761754823810699981734955121571733931655552367132466480281977949352741273055319905429844231989505110936118533727750456514090028655058042253058002236446275971525008185530407191658169318705366417175516992475359377416698071045520050725113681828802439790622928992785776784858678834828729139202808555231001297385752976624325497922520468795262246364232825179469910767578296719890172871387385829062166907490071609672269967890289378803227851509530674042651152303203227087369073401134156189936338383363453076527802916233981347392441121358657732060847957059317380186408884427812177830982442799927595048469561061337398830345250450772191940323348934674118751816024352901241650346318295263892802663358942225875140607312349959265897323314319917039834172477351678499635634609958349911638538534621401498057872865015217986481058441138870780983881844323173643737656245534182710966004424915308472771600237672692972154934227815053908703687396683117479469409110359150104708165452242703015611042004344879609765703282728898763297880185479632782605764307225928762776336680937495904354402242913015058174836980865098739155612538756753142197158526995987208024660071612089434692302680656283289086081425297274496102354695746280782030687546490338136246267673670401369410671398099843502829285688519316115934254247745104597007289323575613118460894674496080034669662907911453823044354513719564220454725677054525905759151541064303467576616734012306763912692319623306270104040684981764706418585949634820587370525180172865726884524743528518546858856170578269831141096742643381999301003109078528665606899470605169029824934263426096206543484052492990095634944509937748849310986917996644519333398873727422456276471851070709714941001448285514010052298327592332496880142606512730926610857809601373530283262732392753294562798919036580676468242129835215315308865172792951600028201078107446232424543261814568515998979364587417309318912346537799925627293793829401773979641178503796586620164458453160628058137228709177506408503101809307491507610370658931313634356434375198896938408304147543175123417505448098453729989935160667806848038907925005295693948439932980433553694653257641037542322994417344703599056261642082061838437192629104915880464259668757438031457707632412920029431872633350692882542288966117709117137754899680084628344466180594444793668782102034330491698180078164031204200986906332924896592804648951345845537451511631599798845308333042929890117653191379497851822533904957479533218010919030131334977913228645597353634219180510524254799822738791967337860151004818111288568014388489402354392468539495720115276085811931177349498539041247550257766811492707130172724058282256364450559257371031067979958941848186037020800520275335917933409741280276472794498216134096474489635862981376276658914351421185786307475408198325608167725342187906292486493799290203257852582366454504956688952977093196142291306871917183412848440778508849070449816549957186668209081759090092429612110677003927032889062593334425255371102382742544326596042416231549407086280725449670498663658374016851382974071073294294250129769586704394544379161166628342644302107332033730518279612156563693524029585066086050179102121428746525348939706649826128441336064161122729418415231025691458846289538000579044860396815492998537957841497651274135643993180648186755534920974377988112185700018990536732054973580069206873251236585224346671320626095850191586306495977403259511081753276974697258860676589172679086031563012822874605040467310737790835083811666970793706012359820572378276361744288998288432416275437720598340007822210458366074079617379950849380970080926250353405611130709637867736467953806721403360055265182385543897559554208076321563400028378258580969731594957938893750142274126290933001599022538200305830280995733904087476816167930438084096779272072541833797392852981821156334591116577978923995009836704540136658924338398586473563043276097616762279448827446436089253098313490253286431068982461823917265736851655056326099590418835955228425235303158152115688044025993859946090523693638037514615438410187847289084946268602486988276121558082707167006296653347060177133626810835596561215699518906323135175206734352753353475604515945773608463034049925230842401577218241877680364901667974041035051900550883642991644804841966682855686269686827900294294496747854828710039728371708859111984663024549379024183662834752765629030337118550544497486878397893731040005634694539961647296094746404841861160651886407137380894171440854927862148318084791678363761913807675600992266606184078844495953500640794039520401109182247521206769249335054335449858637585325777665240529126772288374875228840846580632871867733728393302421123341845176380834215302294613960467994652100368874837597313442159153624151173155698700363794526093328687976337016283856168975638521248477088261960419552481076972434224427902208031432885441207695344078099298450027096233429146572898311802793709767819978569090200249162261474330128270403802165128219652581862825036846231640108245029598100084776700196368303294741692177605230403229545535162952408346738513734934482653117425192544260947838599185485365228460235310134789432373530904118017630594285666382931234086081133679690338170383439578072827795161943262685836395933236430450771205576198536654347170716291554000339461075261738195273689596611009334400732042478282101766517079488571089639785532238478798882169137660500484071543201955875807373946260617982055979547090876687957533381029142155612380149815909489267172183955397659331443869135135407297360427931131520865594638491378015156838563840155636247476541824401104995479978711194703260723759885479688520321699933010170984365593809290447300095231467013781346797132500735974644577082538083160666917678743746229421343670676802524015001594223242102444779049827606063843686528593940153908224292381908399901274858103774795356388291093255392580153142231849384167265271746725892405054439513069741114689735142264555160154952105086065939219016690264206216014045500301343803654660721035319953486502172835186858862791123303111551225969812752216457617897179827507411721592982637175342003734204327682678083768506728035708677945828098055528427957583269185828176866315383245334154557157806614442065159323359075453611757544979525030035171039383238920394678324948122475787643695415421383032644260543089750011910068350490081165021402869050369003114260634738695601087429482823661859509985508224601217869461291841358355064891442726478109411063741908025130346503714538525117597071644586121782700278739486657505751306035094401163102310939261714440014100798488441191756427515861779002191715223857597903742931138040507852646673618930096031550720624303512810532265698088569945039466906071204611072227275394730446741856785087099676390333406523664799970212947509519898479569017934594905678932512950618732412543839755570333477895544690021534266974314569751517947236778362884691372127463349025145641050259305375655709184553139344555753697985963676646170512556568169708842232961402268375208879260061274666096468493645861561827541846183036223971368506119174281702721406608129886839546066585576034707760316268140477207268163941338080416847696050733103246136951980455975615727478279440950128352082363903178704564900603894626988925427490423931220227124253266785595863035173724642096371473398971660176228867929179763752904821765844292103886159111135301577922917132037884901135716554849669182521435564804024271764908602202495077348418844915722903413131116651126604766186141560369831914361222355834307542790352341621006193439770693248750123086779763670958797624197439419745977863882568309552546450557043204082768499470912140582979535215385889056734941727932071997165683302796719352516755842588775001811909444957922232819574441900629018632326479686081614408134001353049165946958349147558709632635434644523184589936745460425630750953139282343308906803441095887350076758801212955730790697151900348840060321919664299446619011410622829538864778724166067813441077301475138748746614297831057819246138885956172109245784817798481514916351406699351143913284951480870525027632571665535078214166703093361916625501391994704366274946517395806988730542352903398440183882018649262680371675876541740000633608115352612415180437382730494245351729659753353521844166350750517147328009075896042524255208819699136048344027416784396722573822826436943423593592796782076183130374222392336533309688201943721176396856694657803363272041048752541512821123201815615026194702405813083507877981574756726373485910704368177684514605958255897489373204818673024974249136946224040506082887951643957423287678252324469236965012477660134330940339064859329404179249836859213819261095886437563014172864849943751457546763044802167901567060122425728432081429978012759618708715423545993230807478345373404476084510940328895046654714863188433021256783266973097601795550381640161295205865163437671674713673111549234186347280789891676440317310490127456801295197296559139862466957908161537083986993653664117766977122494300721936711366990707375100692256284783255707688795110081725847049938095808481804895366593860942557011434261617046424826365810771512246308937600872540293180286314355469483231270570357308465703296869543114535505497301171821759505905371950976444832160155904413188578419711866933627972082682235653483387537069532302011911880499435363506646430214923808099353922086265627359355041585332597201262413105684266649042705073962846840830875089092439583230569384464658977819091347693890675492420269360393870849756376842519914794169561361711627520837009472298583939608691298564907019355995408606335698421336127215594629349364351089635932711008565508475195129178642878112707117106739585135282965093462591836135642872685728514715858760024783303182808608481051884621939544046049802654168077206496348631245070778799186393819397428092048053063089444382856958185289640503176960705021070046484698603948754524767314945339807279353382997814137683658013063535608639946305039057909204105034873376285523869298023812600382522332593196539200962389297411199223078574496835001881336726678586796936659688676836541993334987173642797330396188988587578392846709124840735251355851561802869160478726509831113660374718582008780568797768154514728796307657487871655328472931773547244953812614197282291920352361142143626241171060005062493515330998927604660841469801627202991009217747426800348613871021090820442416559972482385786031552195422748485295142129262916447633322441443580283151350942576128756698710592453525217219804330306495980554474884265394086339010726272420522312015262642392828324055466675545943504743301912953047543484463775644608877872540668376831779796931724266659053803782476594827831835620549374334513322174461478123876528291526907420492152337700470620069405584963219316840846666906584307446386265435496238379281323372166118788351648178428782962236751523126155723333428770657710589973926227340869233727878404646915535456676740835484221929815482292828949036180782634215507158197016626103064801637142539084320031263729205895953951178795019058755356740371765365504691345183287493289189391818733195358896262564017453854522445729315123358635419386603207474841610886070624922165652521055144720782162256544908339359531548593366042545908857298927369149541096196371556617894200604945375381557758052294944100404963159375766422700084925748541429384096418581851006155148311550789924914121380586603128462103418085610976220748865906764506200285307008570099321350452835119246537540879134627657816156230476354432382597057899285813223785307562105282107010653618297305788755311450829550246255719377597726791294369070803551622255215832199703104543308802773371968564695934377659632569629869897323266277222834050252051341284637647293585199866829832893956905994585989446518746768249507335672211398967439867604381617152439221181614050239531134065514627397043744228426313822981864412406710906866941103319387555872487987613345324943667027108177589913878187721923352056291299305915883274704046263664581367880165475867160018637439367958990829802157333182414573732865301550821366220127882563214436967930639419703124363768055261850444922606360260525507603655998561949942706572296345849749395326956006140643984721889152953842245565920564378665982005334903278332579448807793225002453185440425012240651180613516519487580254698627181371930121494121090551626349523382259687610320159728121381648870561643348414026909896158548402058165766595806086952441243836705505792754379191800430479242115257930900007270875677165113795431948569275929377004223425198746233839468566687162625824302385799287201755635369059363981605825198802963517840340413247475966059722074245450462788110420520154395024080661046656392499895057338335616773496251365284470759600050125147528326529043621203716136269668618053395226735277298943775618557619765883643023772016388602080486108015320696635305847292800273232375039765207361533834597584912371438863526992810847786284145783274979376665105135638030580156882975385927253371484765843491006719923441142220508882847613910437286923859236250555801332434705280251681736580683373921911174432487279396019316006690846803173461524994703081273505800713589781851102529627464176594741319805569481531706552181847980014675647558537061449902116050378794994438987401301157060833501796414855259073016051438664761000435367895293544639893574253803973638421414685231116133594881966594607552332076598975158731769618013216358476023877475546541065294562995994648940889235524307833488685818284743827904221442348493017175192544965412896972823859941358272509962363367945909242293806068225263099461704880493144257954241592952864392385198370452486282460141043832703339659579883981107192982755701010374197251516540413833301344920001474896319299976221039756271520321861828247334423036884137817050790749567187946225912518256919237414264308521117224762370253963077796247068177673928516548456702939907089124493213034568076379317580402686718086357218870440982362695278580279970623160203677360455876251610093547981871171947698423279030342708564239085670482795236243890397230174496314408119660689205053253654495086695300001841365550649344009736534360454627427382695546529706226040518270207418372679908148211072495835698844776527790816520239895403942740093273690854098664017897658918640885634983696343305047267143302105939526045781850972253244348955944305636009140801600638170928177180389160320998900030700218498828726081468325128455943781017820900572732986656788697277623435245428065028420535113722100142096163891632619929405236954455776958548435316444008672526132927153838495710672148483032885427044256553922131660213000763244870248150954930791003685360980636197178499796007482353179137648352931278184019544558916322817540307638012139425298267626197585323660464907374877480236664597528192501352551452512268066444296736742665085815058477697610752147186479428491334205659755173279849914525739705243178029315739722461678237284030491474119397167325498033040778197776732921562609162859343175303615587611673843447374949999101933576648388352242326597075103567738657307309456440898348364904357766162789549790132031540443141036748280516035787140885224522979935400174904141455774112747925983374334485052064881577444848610593720697722056076761379600488343367290012212095926165615947917716273567453490064102974112004814041278121006346446899044641548031472557341827394603714576956282510794044885089262380219489271336969540874622086970540692879635551425001213365110009022202785826184271685345320455022080668432030926478638659536678642096830733569645451879241795300503079912145674651497120141530969113306429014148863620382693855899299498452372461873779410263966067920657964731771794039455366775058228997585413451354861933449791158537831804905365664591816936881912882040732426171214791575367793183131825480546897105722028864597793316897391116583672852596520935680017578063990925579121955598915779320804163193161576730590834697847242543149085499451943879166525501468622734099721088361780148301342270424591457667443903804687413558137127872580376725344118304342661444819526627448091879581977573237261255418244839732846316913109027057081444497459941380392339324147519301254540328849915553520074838419492830558891225723026113866059968599698096639310450495050085979732955078119497905621211729252881563626532597377295284981093219573345966224367995122707753912496893304971599797541210724906266334599561629764851824464056529730798353448081420304939357092065495151002295322003886501753488452262027132226225147991847157371891484424434989210468760500548388328648141187725807413649545870134329718312336444680175802705678119494859683967798331449804641740328623047575376993943643146865027043735732792473448438991032963758229471414579813021252328175175140918790814384830657426131991481938782906369768423921900882317681044663432961567951928285790412743997466746007203718605589821354340641927766402312431962754832380862297381734663466347526977869435106600232508842181180107177800410715266820585339257016109749263266153991231854975296010459085549748774888505209329075659191453115576653276881508801020956332359951421273126660800099197892961118563943983615279157531096085561872166254971622758730820881603111907931955873068801367396292668937461408391064790458998755344419330086065752056918289844087256851562089010705728129833683772242473558334374610830169549528104489645073787494910214853802640225785957960600816363883940035249270307645869980934338403425593255523195947716856148647860219650791135369778840892687713920618578657377946183140025239290418489299979615897098884141719062383469508888320257555200032707597159060494647861878488050922386135301485636208911276297452790866186105822944727317869816811939147158341539013146736742270515132838066356263547700541667785012935871842889457618483773363345516517240467135665589469395242086147586995770090110955217114650634756959185294494575439818107280477510780533923211553089729764353237304839085187212258332823352710804042282561276365630572642004218572515165677654316803193287023903994611323787237001117882875467234212855150871188200142250807973715784101321619004292932683479029660796438538255122486078439626457750524778532043466449066981231244613455707616694781315739433514387997770084107044270341137916052277897860400444309169064516053983576351396796353318247490063442082701916053560797313162709086288521988267352816368289712930031016471443070506441884303156416713871620350352989358871079243030308877767874068137097973883220833279542506180762975153505248906803492169992366525108127183964289223433074875103393164274991019868836468078400164237831442529923402609920762264346781347541966309219070795373606356404040810210806330928102528944640976441160779875868589606513026633719409063903276874144446342435150892665963930458240518021150957180804797755300747421485611674147622088510533761378919524683935721773199254621329676811474799068393988779481315406176707907052917953438680860614658535686019191682876695783396831842502397566227183374120933898372123587348982800291432784569407082941165448941231437287845269102637165011586450549526918352038583752358832457161536611752881081359493169017610950595726657060508569634664152689244170570596377675449684498332513251077531157201442805184428159594117124350622167341391482773692255555074696467823633967845880662696694453000377343392621610949443224543368301370655829508322696309689270865237218878184058646017093142440060971485580946342206704690889014127341069712417301548880501500051876187532109969763459384819225113535487503374866301236884883039062464781764708340709140440127955993568173699093067491303155535055112652066431020463875254515725391507912418353637396718140327683544650600508823829901620512858721960315973396621758935547363257641318227695491193017646783627823720899529786806781178285153344857848599632910701906578714614893414003757844712286404530949433856804736981243959827922212637413582512743804727876935375213381857385040304227911803100214096963922088797078022539822724146534122673397728310965630420079539914759536631126909693770951813894288792794326056907526223664645782492755462445433185623315539595917047002806954682231670942715121761048189321603330922531268256373303019913719873493789278984541488445030957476333632381228322869606445682428675734764519024845523483980155775878609071835669443928398008741222499462450746996035370415745612055876396133387206348125904978140019710479404913266738324695110200869642066168883513543750104948674423124258593634899280303563344624672924630241835361413693753162921654233530512307268846024564480459398019013622862700846337096330391612242761497716484522745834932519663554955590158968641299422232140498468083987499205150381423693639817048607472139069474425614683953018362271452011443867790953619478055874861933409356906149369641777719032298622806111884028037774760616281458449933364591861680058399855283162053172833276935159347663374782781519773849820110739200162533499483948655574899069504863042858308862027625377579826623963349630191239451140730741297377708979462364364508496541461030852415747564657066507308917715858960941094585126846439132357140839789450892400841172649019710203579451032825715806756469182373582740921954978383594567441038747814130169890803632653669922810544001639538178089811789473639993389271607240228900741037676629633527650949067264188972029078754670832627031792649775989746729929632219432200437203668027971635968832455553249933950935249761446834138388820766210833080416690209693726247684942373762848477510362088850671382342721899696408033399593131770796323303820066401258201116840205296203454126493709901075400318945778633521706975405041066687778662861735440538320106189752568368736287392163165529459916273606498933466755757860646572323236789363519885108564014300579333075710576542056328050250176933639832819654665076127122159486972384525154934830047976140840736872462566304020786711974924695066377059929459267451899106492051846979414369266097097438068138994328194922474389292602033082175466921568028496501228914180452229782084905885950555847815128114391032619216370508531188513879844406154896550869913863786631795444351530506970357954497214553348765365814809854844265418139738882041174923341069414424647623456030765713120453710285038935484256612225867591753165344119593441265776356836733870778021044068134335298709849706636009553581502045408730406461470268870000467276713618516813754130494061527349148176982243241977811177263214830378834646000182501026427973592797268516047634059796132853433482541820620275261151977734817929778494418777630285523790723509831358761389955722211219503615589503960644860781717664669533768457196052571477216828435582695363078342350399317554260664377589816666957928100677761690855141774630681538867926836218743605420330214780521095750159623134793737646807964371141279541305011860696382475524411305919177329733702869926995756693353063933973912920186569991328254233605381836246164208286580582664332034836265559889626056424051538854278696933811582094114718456733885157318195635595345754162540398100012622931193213280559191841296870792058629729024704536145391082042785131495403208910443813493162127164974350900137072235585568143530727544409095935008438606892440634754411590305352785856349511460887969507079973257184046289478809769253006667615866043092904397984042359913991158920507149088739123324897399084766547689600806078754661890347386258481072826463238368377247827629584835541698249762062376319586955445520716207778295905631358051631293500309500414445589130457347445768509683062096174383771340149918404429318542259523172472146661207533004412652940006193993651607436183661471985950740071758694605582131509557503835875258043911784128654362227136345382728512569262251811036624965234612286185756466573717926736106713140903431494620519642412888063219263005182040447468722653089693761581941501775560568504916620245611908465758466256735599833635851075255387937927409064376403953361818134510557353522798201321533595732833524976890998693148273323655476714098975389952153657865418538692616949840914846392204805258680841693595830544216414811615126463549874529637848263635741029117266583124767644700784428502092751326364161671917190307072232671761528000745064671709129616599462695583424686430740372666778143781834423142413833791317808472141978387523710064356729741293741438760350107446237843303729391175982300790393307919400186768807738909805054197793679563147661129928259695295309111526882123145747120442363370797087046636285487748696722700614554215517123662380978421595356943284929768726425887060676850276322828579740565892974513039053635261227069928986223891903660214506713495277755632004907672102905175165905986118600641934592087343692104513205743506723817104519261592011239378273586908283118679315495936922057784600406770273270096285105504049927253445628672891685375349421884273870744269781735549373253814304651996710920679131825225288216130044836079849045263174782077996489829401148117744455043568327199754583149366054556105348482537186356132758643287620876451767306214811502495323302576277715520895120124840655294841402561433189249897354472840856458260695751250164670029554182132505862564444165438669055452953423266486777626310675940775766630326626247961849436351688327445017466911882552551623954190233352258397370944409834783443457593409152677793435657940614019063758281496021764664140731587662937718988950085375720175008144767836529830261877408830795461192690599211067567551578824583350980896951666261208542057986317634498208958014804412988163420502209286708409225114975900463306617351796145219121611019307353990099303515945213320261406075458542600779095901863476027619840974494956038508479244097926345860214205161595172066711118204160497874105751585556135717646108182400188529370117345618891021299071574638668916327843621817330398825116790704250659093186326926410202027918411735488842136483013604745338619138697469801982866092568956838425593628943952439102798656356671222260368409438956107660089665070116611266181875841690890891227937378802360349330075388590472548867570056184897155839850481308567012878856085759283929302428341805010258387838041717355628109194844424357458237580644806749800444639573619644004862090195448720456102552204825905855244529375926641137121178579545228109882715750419972941279481552736169727116347929796314805217119527775396844801669277488037322130775246783702760795143356699630917771612113405323298590848084150014605034528797718206946409982157326571475843312648391442271880199907414081745083861737775873332643217851243757889836483891634723633353581714134054408477256259053560145779025335755501069607622861881797380234071865633603597782980512764487523637274600065035524028646624884156927193284412961579060880067094029463435613895351353901477547772339728092722428594862741487483971923425758837878806076355954467143110383677426086874628898764667226986072170955857071209132372731110274020274344924955349306906524139201547205276216352149516647986004848358426213282303182266942733860559026998232444961973309842515675832462230107193546895776342332773594582780306681308839368296203820928933614983874786502444593792609241959084124217444786525258710990986884447255482359038098921458653963700382712060733107358053663829985952739355905430309979817523175892325817104965821404785671300279540751436579063207846593913777112940584722685604532447091249964898147371094315813227007994284726713526127527724847125936809121229974761283059732860267806554391172284500152727670399838859707664552129747302768575458134278127110923679833451405009239553306758183270999912447006193794777774285931794141454624641065109037945161529358558303109747230308962759557698604482005183219725049692144628929100705005297082471875561755627650496317521178301195008110713245112687989312548558449314181558600931080829026036494293196697499667473148271890355922740070461361925716179160740660355143090672350348506793226887902786689694324523845717180458389227939507609322649193254837350877165240939408023703575613039883513758263424360829324864489821086966669444965242802092447744511412078368872491980883704483026428817533793943125187940688528259904337199509785320083630436508878842718150521236227454139297961761399763095672807437454838345245918947840576715258932889927768553945693744804611907418807654408655382544921237470820755680614524546970995213961981635523405647269049087224296115858022842458025128760115342226658548708741371773886848649754797555134754259196400530082111725231331654034969582057149948329315082120427943422006133700124418234344837464418115704050006603117547699449999475027505873429848284866348518493806916937849620946868895958039570185194049742061871518668610075636638033103413420293790272639500343459153101978067104655612000278359900916190980988482969025742056674954348220209210294444023997226728399470254248373655927869840725576031147486664816470297742974158149441468519652158401396351387766854822637559513213578144999103727507176097630692946415557526193803621062264734576764092314217423370536451539711726374490554594729409353894256128649748219832105394602484746645586116679539581264209435123185291380427812013813641674979579500009763870538485280174942185197893982657640753963976748899511356561442775660256719135803036285704937797149586757737162321719045611546482310173351600471718932452673474498027217991880538706759472587692773183171632633184690271024229033280566355253192781805992448376099199851653154801994860650678380564603774897386167477954429338248631196291648192096056445682780914513751078848271805596688347541470741699049921381576344183248560732376846061011757577004846730055261063021018996205003806943782250513747030521138160662252956115687378233926022875254748262178886274996393702913917538996117287167117235799897364224971338727820244661755174134917065997470742612079346908334916146314042886828522112913617578296508131258330098363031991528854325366563552866245225774711565577159196320905549603451727063114849459048321423486292280250107077040868418441627313692226172138899404669793633561715205601735595797999932046432714316724248836496514410633245497910394937801618303126405542604809066846934486432099191017811464026453620077167267859993208844930598783918447644917003714951334112353075056990809323080335140478191324431485083639563842328562508847560174195198698395711136991753148615489905747607211565480716262952167027474743997056233184542634024554423221170919396247779563227681283077921949716233381165705418538050492173634979481871950164023913635329402546973784739636845334167117918208559313069497440247141022240156738596383768001663533393050846630965367034748270965398540143635383227975486323009265704512532185021362964632965998034270742505938521032056665365373766357980793257256413604881597731562075233980869463255119007065302861469363809866859226243244108603070312068459123538422809391005160783423018969492157105197041142407569112971521794881140726808254549764538418261738373604692259370013733556870097110360269132878838056465122304860059041525265855111234193575139497674321951419909071934035500879999472198263176936208913948643015789348928807429147138670380413567417481795715940163963651406962368670849562281974430329247087505496727057819128418875667395656855514085899948423023485073833246315336530679087565105467506349204467224105473579422884322353036921466145700524009712957502843272623741980025985192646747126284113669402306008224081893699497559508610304950321762221183938986862717789583720725939355457343929949003237818630847546732451330288027339124157767891529154579217580593068902461902957293821485801966552823988194267920416271711287972460239750951420598586712165377320059035485060961613534771327717754057239933964413390473924463475918441862434884031023865185694736315475319780897161954236390470639108200712312143931251651441637871233284000677459445181257465433856138177471856951529379928781206819885060077785287454481371283627778092530110748231192698688787344733458771336536469304698218386272598718038312262281796156878078755982626987967991265973769309926912726213631251332062152003810027370623017042837888774282056142868774522290683738295379970958122568104722987768191437561154138737908266475491032889945708503302284489823641552587027895563312714289376894780336741881553350511637445190616376413194232764353583946408322176325562042885237111347387454170901367812160127128307263148379603662536371335392349210137731511248678506787934576153855827980543173837505520499594860519478199850781642326003943945118588076650471813377251382919257885896060612091787799639782357262938018778181662613496100848747522838831515062397375768449116744770077408468303192181956467436963040458677446319402474118214583311390676219226576803348677022187731931805231195151335728309037150604499870470401649901872860292192948516069335641491308072516083136492398001262051301002494668966775231621783746099777457520231170430202036560232103339122523684089855462426624781095979527528759815733070334974972739918125838612744653835410660211010261525057597562080684809884281029232976080734981075849039211405944935250822159270834016328865351340638001207543231661254917920469415003715219353529417329722119724435412548517988731091178612559115216088594258552785178862997704383307764902901316672938903076365930347795268710736219083368667462546788304158889166964125732822448367045805878376024628685456844001330308114976585861229683371434780547462140070838559939140378260272871104922839088388870909251957870170083253106001011187305315077273220479856215153318232382685899324204529440808768950653549428827468530889051531246986868164663447492881800843065621414322299179975429100328193164064213542621354748919579781907369965022601319646277526032175269991289885399462330660954566916451837862458696399010102118796079546818984691041528262524290814926854893191133626948886700318656035534219329340183833538246164809873362433003813485829129093902288394989509912779042340725577087871619192157639977365054722257198533329424466453684734732901551382894759372498662392607274618673239984898681431166206602486272621065514836210469231085169200458880048655891795156792660525589961033641876191642026862664296472185980621619830332976650274486257063141449487094034162764772565194350530680251764920572364985147198559094220666584666654665796151401823719247093646395515498530220978304004296660750241866030338697497586951561674725122885643878836770159646464036896352916562065875990746845438452025138374953777260303832154937768115861788981809046418210489171204034157294426397360242186638957704698688400338859243684962171001343858758617033762047896241171569380836831237210329545068530375993020179903910202350236866906636965378594606788656190716472767563821240981329346347289969583376322501249344479386151742748098327219726605651089083264359921095206451803072575792062051972858289511421782033248961841527123987626599535773988184489660585785659196580728317797659265286233552134412172447896892380508818691976822485426159126418952680814811570764433093610091484298138925074855580457940475131586252897424409821418903076484972473913967178432078321915525028238787897311640400514318114311826642989148577961595520389988245712329944142718709011713079678084289184631456128208852207007824320540906752548766284206009649765676965344230324728608613826128831842241672733460162774587446606266397566863420610930562211182610511152397314145351647976938188623896787201643494684311849722687427585426246420464894724827285198711968971505286174327168809381762478946750165414078029621016613699322824747187954105938606840995493323137173249019099781007258882124595781688827845235272896589867330317493245610550117493503089813423169851572991833913564324208623990963999752366850138332793882984929008560734143662110555251445637967963493631349921444131859078583725000497079536209052264547206908997144954171381165877568717100217753418388660814960702940028232946937816701558471502940325935278172746070173947019404364339841617030601575105509014727372591508908119199675011172043978103888692202610811915809373376366201529319866221407600534675661957302939632895774154481078135468743187215238489993053353452923651791134332472456139209232322267558075600423441978680322129516218068702703484399089593751813091318573992842527232883497195342086729292548711800805880755958324761049195192492400034020905640604602304879941475041306362991618134783577999396581279813616402493477933129073824480270709436653377459340064361246423575683969628012842200148225627717149100720731809823178725477329230131963594562292172652747345869700265358627178823099963927851784247371680560364362479497131739030073568368637750517589518422698547308846399937594146911185505705252892182580879320775456257122045284974242137935704705648931311467070390485292606898363013868098935531479948958938199416709747749864273252186264511480962255924306140250904364774689908930678495610442757056530897597227514414585265317172020751306175560055840060169344659103796282762911790843775528278192461617566097675108202727464374488980342398371521550509415953505652698861867027010166482642783066277479541231026763821813894474759880757334850545196827898969426400354947308291768985526323609598310277753270134808647857983316917745550953885298972573508825911050080463695555524090951423105355822228658332102062256239555257648426023711005018143035620701192076374930700481174794194079419360455838579450465690243509329970870961338098316820753640070162637607506395242245007674813766499427072267670497326642181506681964043319441388244200406864361090709823973258140624511174390089178056035469950019296830107066412217461394020447719399772703074944151319827436456196046578685976303194050309044051926676499773663001301354309160603430176267581785678554896883185040837960016092263379027512189254706636268457092853398286091953163823052261040122683207771033809440387611510798121086291660585441203058679556918653786147347616624757316563848776176285302237746950548865871236640940403901436733074919365516954989888592801699627483646410269113325432163752184516274602647263433576397190726498548823849350540661387146276668891137915924296789984069693943658245958028377810745818302653581046603989633134797049770781192533078122006921251150759296502115974635508677639929972945490731095919273437394679720697914736531681124783257228483483552079763872854863802095368115026750033666506443490757841188698490646543399328522320672597940743563395658076915380634898545793636383482593614838017966848957043295056340015237313829683462685874033189355034607450380049969874664092291683615286125606234884555166409310930082140505438600848249208034573074833738834095731663859838096985446910759804197492036992338033416894625149250240907398924000941123782222788054951677953643199080590303108076323612878187114621797483018170245642898832165174841550248238797585835626567091974530424181806412528559051073856507221829030763208462286853958149538169655145595394920469048330360114337653174965677067334249381814469321754802467958641778786996451264067223528603316158103381762061301398533125007268187031527625868314031118176094708795651383552254727859004706777271481491049210603543059848239865347634187729089071200301894584763546916964662323589721416601519870688231439043904900566984030971956554967066564477648932243662314243979642485473692786009374729030539257564937398869424912230946992327222166884503188178549223292234821220730434866490466996489929461505059670473345128325893838538660777469044465281709558468225254407763885421162654217523136181498646168049258295876985962701392476706617793999067543230625169460497251758781999954942582995425764237051720023845125640616034673128788462474403767605919674879331806658859752619819491872399346918060067717456936257549378807685266623710838025004054422980432852023487061749962815440024230208287886239563313816794569986564138054578769497152445711883664661268782127342310872533548519138793924771321699686529945932293686850693704273977188233728158787494302175594679432123479767363718316002402206738875704820013304598732738026308735023651325513506752609062587503653917831944807902942308586463140563182038562319278065697514506201401310957409534133201243416070656511884713173100025716121594188585394636181355742265514174487214653041327075906879711722234783446969873347512197080478107797122942674280755763925313330633471294253628424240551126144430790006526701467375580592131497548630678755677867459906517652719305303877476578363431063346685235611208330343493385693789506734445764435665400293681431992478648958920197544316378501061400180673511012789367595329958266116744370209846750348056929813218291954187426371889069006150748939098306340001120325572475756402439133764680085544193485239317247780441650506068587266815071507694947258299995039651642217817647411628553398429701361458244485285132798643367223335566661797825242819175525519638493423226261073276743075428827846047246802738931724844446480066943630999012721462614417777321876411795499328190349689986922184907095185509682978004109857275173218620292810515833050865048883907837054223588387691680235360309945451336501630626261128797106259092848947726245832512641059502259919079271533131632614500180748351640686572265333562743085555493555953274687208597034492304601159535362030648606555649637378088406157540488587743094482715993568343125934001928663050512884193067418898566019914550788157953754304659839280315754353246740852427292417273975024108005604253310106156562259738727085126991516895640133362539923999916746328005338829690730301216215077431425580920854975109891985620584372798499067219678960559785634321053717424635896335569031974162981518635015418485835307558986081258287509209596089605345424759437006975259820868910464786091148624285075169871557754285354405878393332197077925076266014571848780594573988485093159522120568104654403788075152750744761678934587712690266774475851563429552132014755553548071490837917508750424556374144817325481391818814046284296485407750462661797377651909104341093648096237052574488862524645997731080017765912631095556768233646116582205269939112285842867401740787979278979937167457035380157198663471725958295086790605462221876277370440305969317327357031685525416805128934933753303749502746507992743550744382434056969599381659309874875266232596757150540364800910891243883018317309058418648029559586906554819457049716639524227531934454589045190331244938417043361369482237995311089023839459798607087569531666343906466120431531297257857059946580256188128739140549212680100066069339787557217755228651045093424367384327442823794664500291008743752695440009594926962663692005989377596618491538601084295883490327800183996230735435565979569178620572551172238547011878262340710007416779912529383355080695560784256034951197343292607031724683762210580952334613460017312962087774501096469868709645487002520446630514327246519892981811339946347066853694903190570045778933752466123988295768326332186139628371210773699511559126041600222863446589088802790182065533416747497178815597288781590870808756374856424693046206718383580801211674600492046045895796558192289421044098745223804291935946097187519419823802100302931842216272138797414666240243878975638635927488735496180788366225536567695109976851404639925539543830608257365817682041439796872956156787928817226929279366436063316728317687553625107489719858683844132436930071016093445591879684852865126327382417075153968897417481922110257194557780690750590852324302240999005148547403646348881166507142404212122547598285157351838178532372625576442818246852643772452080243820697268241351783358258787905260625905491924477474074600328499252833070453967043031544869313842712620343560204622749123923310308632215243797664850329745413259065535839596422729879642374461986788537084705638774497084410324919541676230287981232664911848361134124013271711011615269772541835238529529702062791381716918803224857154106278680094509700918819046168739957264552383558983406662154288417729306756430234872054824871502341924014945762388481473805436059137166225407542685821547204875148033160534111796067405706056159145423274055525417790450295846549558399825779242988911793303657127740404303330487512701679601404407614821402919167704981355990212476692119870767358262543232958153358144287758545333451161588019057987155027402701066654319181968618223370717716687307859559190446886649817223270755672694228261065597833055055175323432216301733231257126585326756592192573856552440831656127180201523471564365291497935797211608318256644464618648925887780248006627843784946674827346886554252759670433811058125805619856372929105827745206877005368739337073838884065239848307026875244725357053212260461073669235197328783514543857374392126613225617229884388943739267449032116848978565527783922565174496728078133034148557615478338589726567309118709511916454469558351804802612119428023200533678109661329331656178205157040781071157679874918231932449252425250475207313178616231499508818296888947352122124396020539394860161950641983545839227561846747240748487105400994483718099178946768525332924721717164940408259633095421038352736854353248237976273215044745706721377370780289873485073405249884416002214908699200689541528311504550058340170539290719786590732816720784970326485728487338571217008899667150184546783588298273343422079977906694253277450468515904718636766619972986480150510280809257833889646001391827120940923458350384608050879596643168243939346531016444110482623346455278204087181872005810763948444974065351281115419790299406500783256571952590583407645072641651142299149165309514656381186702126607541035144878841132357105864467552486906239412546603251737840964609298235016312923402252016454916670881853800248055662277067630950563356730142977274706243769958648895966841820586750749636844295010456051990726564139154456972558647256556208518251847234802749691558018300271208439476891489983248966282269970929721664986292139162254099955130986287923894700808158397587720755976127398223974842421145193678680068532981822828230867873817786723336496214045555477661909846171883470334064411477106192851401107331715219755180055525297638860502130719605717089214866595729971799424385167730393792768392752369809548038633287042942223665672508422955147312640355088202595985827353344042006426638975526299025009744619088768411358917334739100766115379130165473350181782616809251529719115992324257986294652021954818371050982751312464157503469891557326463147602466639327089054763100501192740133775478320160714900622333228656668073712312309896541717577396688966374115730063179637795143689833827127162767890218728330155477241387814661000713374783180763662388192617050543759129349859399022411983260331329801384369775615106430185440576346809619577574931393944983528987659340621052352417109384793123947971804066666800016803852503588192830547210486154368834919850233981743371919229538101811276584691376590171361083981397043953332820611142968303388571932183796383636178362727488797416515361183779472230653003520662266286589883592846797896299002033698082011174915730289026885055677844814320594156632189483152663380381803342237264128895796917325888215647131045348557369145018102352873113309810281554646314918287539022894274926577482507471835020108173606389584931558267341806655702921221606350912724062179073975800404517975511250973310972184466669673791615996905960542550287803867746181867281606969445067157902769034638535592188475558398979309867857514186840712089767763182330055366930987340004311471841404262066272970579962659439805682531926041967563695459136960912516490095011278106669005338171350555147117463097033728118828941650323877213350430624832705684099890865252143104071988448096506921690317764882827406633714761879126242649251790461713849535006637347240309600368795524122368638273831322390853686871553522657331071008822809739716836929777955908281733967855831562567868175778440261223304674127989414281727419537070933795990745386394525224435199266074046818648862058529058163182936878224617371628633761054444878577873242735646818906633525540204336023424836539902831428907551116313214229496478033237571982181841246321316663563654625240205300878955221048781677768702977290115563696329737865647869269618545227927505748339328129563425286377027449175706904408490908986161088195225228551354913039570301189482622366074586483910428290981318944407710390163038499729578576457984999248317007744642114179014742688781395696130610448041371017663725465556681889030376137367384592228086145673133129855082233542386131349104650695140848467582475742994350419032737914786505365699382966056048280023314114463020821852093015954228388316097491718874963798500166789716077889368418786919100902692577795642534654756809887304626797356857729135921475482711221376972379921844176535479079915178748958179533882602114033212534249667711709481597842493087668280593034277817870010664982822018224937999443423060787073198459181846201708860503509626497763452082086001494469036402020246961615272627570799177802381541879036789768852631399969735677124016400976620409531517265434485691592969867258360605360298827701454366264025611744649412602960884533257285777142614493516423159819450490306578810789312443167565217384080146631998345268180891818380040942933944177265167380049289345048792375807633132390877748005553368098959044793952905100097604806913618398235120233105728010447404296387241311673305227822983887204887744608662859075647064319168653634774361824470356719700712128801210451472272647059866414806755898747421957574777610510070157365637702191795306834904634743670400549779981278083495756517755188637823600834453508651946019516782737598382453879909497469422498702912822212541666708703003185113769653845808319652601787690604684598257346856783005686170842657606163227936256292037617985844592259005815638305588946488405913148307130301975606765765133506553427385902524865131459695782579210562470742581939833811032195737561012912026722707130515998134704365586019896042512571193219887290067554642823823224336123733347280101012892061214057957387549615561188356642981266026151279788291247392151947262333840033784078559728020915860230359062657772394363252697421517167951829316930973745076020592827319091304115114117964025710640659734333639318999624836194125612864663617756592583230425469249691747284350299940394353402071642890852368914735655944885919673979301820988184898800637591227345478935558916640426455671654394606172595203051731237632526648509250833191767910847011502872543745642934130237755273190644362129522374017294645071478509355993636290496763203982315639566662420486173113956892535137809905058713090008018021680569237706195555135055118365132705649611575132423397595195525723721840105262705029948454908088251267759751258019804468512101539041791655416570568884952097280481427879250686138427000361215259782685545395267027363814145475456960386831086885729597108967368295401575215346843389372842824050882098558773071929804646104519990829835036289647158351734974276559257240058382138737727333946975479275839582622052289987032911797373984252637481065593951642391647021476353316026314500708131103466448906284711473427753955836557689014245862866659497626036260042718203807158612790597966159884273240513912869066192339931671277390191065994442122821493509926559701445736329546963115220079922702617474109421383276080426899599222239530958054882721040626776473017769326842124614623688080479871817920769172822476132528470586444216438969389659411052710818605329462777080445725181034388723652596619072536672079149116069185798402846082526818238113589974032552158700619457392175483679889010201060479041898627998216378553096697117738152260544977330113003178153538355266983163271669631624422149102719414097840046185356062931010337555971644848657420557142592628216249904166064134176896413927508700953447180753031088293922185593058492816810889826417438187977591430796613221384600716799646231400982558440424782926228611250187218319605743041421150660715539970946202292623562663363789264803255125442291086920634956530711724875092407677884732533213632754477554404454253261710763214516494151755380467943572910524556253954862758577854349522709120208858813696774095946813530976607876901954126897562842174623167189210655949677125382464911386937225944174567744474738667070017488882123233590454573312061318130415431987337325312168640469314062365552181502310849038839097388767443612551846408014548821167753918590218309690974254186221234645622194225676910966569179977847699864762988981512956726540738025590479771079675037507069118176903824840343782162177922454585680922122618038385916591879490537054747418199905703349110543190813004137986467651331188335420932545843590321976733096407322123011460394315473223776364407910989922492691138815880206820766694042642209598932508820744693835131422283747164937432013102894644338064320279358848172901992312818084253398458719367631626533078798578730228430145810401564432270976658891476038166763620081463115938153410352416883440040490308305248952614657822689468534379206111677923898370664194891545016495618154032075220660829758576949707232362964202913751970894043576676318377913852920079551308529210355551281160586504780553690667746859922568497928013709078590343866720739822306897220049219053446719353414521628842889450046904273568926224747666610437785100863315431566849636523671750715282108322898725237417685573554024502380134550892973902836027032892784353149273993030716919700863187393264498902598247701176098631348489705483185252168062910065731211935272852127032997538299012871551448299412235569500165643996961134724928382124818402329425785278507807149246515135473408083294155502468801826430081310711336655872216109913118818156146523579384747848708147033188456656092012327383326287763248196187298627701080181959849975352420069863220156558709860223187956637130175094541452834415671007094092100566253977808859444803553216696734434830448642533826328635798918904623249366006009177821465897373385263984564814130090098281403836349612880513126913012528112360804925712000577809231658794011632200998550265325406581363833374341282361496945323811677861376075487241902741866495760015338996046244103172280505092125876023165034422770776970153748424006303443884110496103058634252592198367085251967969471635685491052853246398328663275989408184389075917443702731827222257363779058253248933094290972549387877663674727093109801140512216120015638384584861217406801643759728291234334286607703097037065588997251742815478050471100899565998952759583589843138593457380442468517807320915376191605431306776106343799224416189361770814012255441950056358118154053030598151697498172965285896780337017618516217432695376941584945113823129627909457443199020402207016591679123782514058385403467307011316279635800079215554620536507340906639369727164305596619623839168070821404765519947417886029355572445338062397325079559266726094850327956614842272411536272709932844793479131858929183867693867545710254793476509226858179086096557275340364164730031837780098991296627919934083550003740718246895360897004201095820989099420803985475755611833205991284755351929781783955700314324642729332012371110519668393424183034455911218645968793754379590957032474370343223868593775972141113776484005828274571377383454453629073051037828271261880462599897014712089341750773425645326390088938979013271490222740726993011514443230717155074773051661106418586916084356534695247307724572624108456384780386102422658643331522670438137060498230418122209940383573566343782216889935500213269644320503479383790222587809500154019553474040026589334931789468508627520773383374527862913985181927131390924688529986241006365102319594704529733915413744220211519216053719136757130589071580060710408819350916100132433325157271899240727900495075309749009621206956140366587845631955409598700614271116442578888827850238649636669119538801161111502796143828433372827625542794153760909755064631500081988429453948835095741075581950296152513370758787352920870995824672245425027444606715360796859477161735959830509007719529145836750262878017541953661666403722990434388836941556998648516570189843356125133589590316688607254786277416787250202328111228924687164035773637912161115378017143245311259796963881071238157356697420256639057722390846649556726081205035763613629204394557407538538192451818288154674054311317126709931330408105771542399660022330074710679283712159314526103782265130154654863139223301620281303879537209197328314711815333329188116861200849007916504037132596908594982522613356953019034964432811698022016260287243734278576808823126871321132838858839789440134725245444862648519538821324397019073854342215976615736867187931514458376781566724467000374324155402622994762995926790525600359787149181228542003119918869247736706419639702056032975599992249867158978439826799265998006049927580156685848216695432338630169252052669336952935432311643105368655244699242328259369264881568107391189394700462927725111993151852924593302230794075126690501680371567491431810392919227195504686042742366965075916246579817770331287705494532961474797612043156677650180679524326577614836156627480958229783372744235253112268265882895085000873910140758070604727232971070257506753967168585448751371789295266549949153354373206328425680244049259612515134540591180459904002694907041114202716769939254112631037022539463763906165778270813974540892481600801878891462454408195095735210406306297788552982760910496643547521519365990330909675920837377384430516638055000623703208515884537620422643911781315834971624487351395470164347301183442016013266840374062974139451868231918678607922184439960916296337061291631843874378372550503699567603995574321962154658363597491845758599901794515544691435113172395745408537906735592726543765400446197704054916753355615795924176039220204944935472044255451672358538462112487063815047660809787764534996857599505121132668481889065882554817538011234264037261661392606801421482600897685427000069275218510690402623156534237634388913792198614018467569631332466855732367885077968268138980553941033136460047332216450409925570657942246858775226153041202879243044761744119117117845409375895423313214795233629455236175623898788942667123229259187347672078518033834756130485968002866272620422222082383780701471887619713984125794599418828517119475847288678836050827792253718260670984056146070935808666708315534486860496855782289335834936637628936707601553480842074933956611532770448959070150405359642827066577483635629733424493985391875646256350228789854695036201570290066319440474133868409518926078371019731994454277161881431685060631337412041903854264794573805223149292881222656495638487199266506474852665994342875973448675052085138913451220102803691178437663681819034272173574452106792127306168913093107471286660390987840755899163863408317877494507326456477521851419299568877490575865470167204853570637207669707669526521722714809311633590221165597334515512213441432508703021944766971792857908591255208527909153383898302412401514758422844259049042638787818223358051570123053051926121523790370893655574912717959656900202912159789124543831725533465448344519601561993189415079763618622655708271493900911840440587285895143143062334971984303415110731776558080499202279550946960602892751945667153000194154875009834652800221844320853229458991635128214212024611960868771130180983577965997241432174270433835937177338720741182710208978013564445975098740245114202867742662435316903132401114541642779350321988143987195863234432259884473934526232424262804066941171045951009118666818519542742809567591758054578337435943733482279180701903208050533421910014082737906592317858151030439035828648143481810317567029691365956933844871032407800810226798012241069374993730159977225864525678954914895094077961282333185923506701645384064862076872660601214898873834438576849736152364002797282991141270654292250685528662876960779339436749962235022890056160618700677811453285514572797679135726534057278923498380865026792843689160487947657529860509246506757533274667614122147575016963930082145734592886345879401693257802535706775432915548229238038349220993871659877769066852176445393910718490266057661052603420172948041043425463373403952478352929596245351419700699029668545950763653707452867057323911742522942596039997106201991670933318963826275341733953013226995013327436070359213636691728872449543721988461815234529917015858984327933205110552648702457183403267393780092972831194334112085744809424758954312528261568427225897385275829993583150767093146761896141390828973436838335107544608581621935772837069950021640204442983634859849643577572335175300161400434405768805715163110625968205627806642588281953322009625860204247253026909977955077618204090122346629091602807936886195310842624063373169932139004929196427556117595890888673231002440924820220935654428617128787338282100539539404588560197366528233281795558207810237538548870602937340925619482392754494937957258838899099377706769257498987945627530781522688275344649621102429931919997792859775809975018894417394799557648529031186015439003813003196873339268464874965686424463990777646167696084014190800612212613130136753601552679796943937545616309017574990603902820370576910631030218092916900836816439140804910752334929807188075581995364140444184069508287387092507481690798728238818273942990645854879804091572162839281029146321398799081906336604829151023358410362252018566720876185948353659449582201804574718390092777724851033903517581768907159413385249245101692544622805351562838845073820090341135519092112344358181731374122329079265433602342315846197201425639126895494628768482656492159732252644032819601873268125071509284744073216017838189266313299361535381603123592158761360709565768794126442036117658659891029362919106871925257428758059077195167823507712388617546954800370600540082347122811959914506327939961756072822732865716596371886993617180876030812932544002279258720241054044162318315746566287703697257933835038446389018768714948623537144801430247945088062177619826458804555381824847816248434910684794515996170584062648111833388692032740898639655636506766047392912047686880824013736051700653476568571310294647567473200926261847587086903179133067301302015062194065784304396028855689435888844432921666056902355722973346239828725237901590689481051522972891595102997374966188432430366956506061276645145482461422029705791367460923315050086365052641491225362831579200024204062458013755299679057752279053257951038326650292757801004197824780711735052985658333737749960752044406023509544654276261722643954033786422704235069858677144640313121177818621790653049367850421953705445375709858152417860522919567562005933955926614016539947578567892179722055077904378153196952193567609753163415065205604687176592093574555442793971964209479570992783243040305432265559073788259507506567324897386779990527625384124292267225604570637808832947801424719451276536291026018198973971210554706720062066682528624574396842753836677702196903060413205273447506541853877647112322684931916109183226420061352136758061071985805691857230842542506460084848761461794962195395125319280339431781065475155132715368684567258673448943987232207630146379644508566891620471210596168954043236825296316688983967636541701061881507807253497754408378999472653855782135216853049027405695404460784278934859409002878229120306861873062315559869505547065956646840119325428512953444908673039527582642585676226935818095945322197000945092838731000249916796375518315014071727748839440678589594690023337685069273147879305260895914383730466467746037097921227853653204687576952559374339399962250433489221324334382570934752172805663749473852336733605829928377930932924941328061263530179113415641437918864757034806508590604751884850392939057361072507417409159527081397988283606547212827341427264908203049685643026045856598498955644268108028500995223442382549145034279217558834019622146569392823143611286017374033655660063961371331296349827935716605908107603661647663554654800363704966368141597927174944300402330646055108781423236488438352526554725671343862161387002886392969218627488427840779773982620782442137775409798383115992663438224971331659769279910101368287868086406157614175183153331771310576267743363727301111308096223679483267313585197934388806373099358205418822777178011537145213513932265843471265574449081650921091678003264239885398926661178916245697586877816015820011441897012756727947542413441606843414623675249212303173230983833596958610751497836823928551005856408104478288493516930266189066895935729439020313573940506942496897802384720105951673069374070598963658865457470040036966165687958709089805356253695648247186327446752300400762671887509277701340625669659759838133481279132749915589109868711164894743410771511044194353114498348839189408166225123646331459589151732377432005551689711295126691575992440991298951434339858125335597339751437447233780967090499926226723263135072599222854320924254024184720329049140547688430127760147715995061415526403373031250275710623607523124497862191030223414440732378510844294307954885581207011912870909237630377095993746409957092367329957915869935873502226528719794057580650568672228207687079410690767380654419989679725413113590893108910384032280516255571605521121403919145786542012483982799284289173917528691889654482227749627708244863358087121434823582196718996384722012248320581598348634812004507856657051720731345844148862191021118887144650214110405681627586149325403800080357053492555363994250798704618847774034640929132348817657592250166938781899709643824973718163631978854627474136685772004191275717061826044513919556190141463811953361313741925326244264529104192387324530193431159106407800457636974301439479856538344655050549783053751294523286587963542533022422519289008848524390202573580835046258369727575237661202135124461446080053578400695985672754818000207199373843260319552114574248554783273207737000830885859924000996205798315436249032173767582711082677471722160761660631143510707776009134857985138327615901541956464314140850404792657885212658856364008980231581939113655670725990374668278077102676431826786116292669041569361897604821771305439877185484777685611570202250288223910919572469252667646212241122282094858972788476910134496712791244534295724822593705584590892155934569976876464180281084309910943731881636106152199719112307101968746221365191692065103069508573465068757768112619981589072763234481131745914076773210032980207989485214506739105240608762961550783179835373517983958180479979328131778138200716833679854279133316158231941833231515918392750446510531532145125829342421815659115565985989626085565058961894340019159470040225386462400185841382814321813790512425208720768792680264775046368103999184678125547897419642687822930254505622012794763819337399753143560647036406332099125048796145983865935287539695864891968138045384694065695335332683436436989970531641028326962547133956720984817579050389076079269748591224392703872351328487160981041515073333352159526155306646448955340827576815653026662781197459291425750506207910478954625384609632864111697932197622654703961787228841688124596699160889578568059586261167111372545470104983933135814115913726878817016991515124459771600006993205006588192922535189241571401427857976981138337738771540504441222367067990507837903183528049274320418765361103596986704432741323907650639309904090208574989039398800356506501525797630337798941135886020984859940071907972693683130381320182419397663659028115209987402697667985291697225959578907647087062867690265769939194379416531071500424494849979378578672051140090713417877727457009216446928332582476762611158467639798109456712007130238655708443867527768647029491205953122516586392498239555264802906896338569108488291432491825140792846163394781000178095943958457237216756253091235822736735450520322715583866012251356536562574297709396770132842694853719479679539191481496411122702376036528801501525986086409837163179224269647254532604008308443450185642788525544603177423043788318522649860249055917409001638081073828664377385178578010065144255713787584229799063242181659930334639081122583328069684488244096455493100482446273024415026172016015878896496334946604100670752181141060858556971328896675715725343310112607969916925985462891470738529856600142341617649130995835443551637996409291485008624859090783215265663168780258349632989887434701714358917987543333234782343889106143011675075693155242776994921308508567109703959508893437274891819893015971261324131862860148927216003460394286629922840160277634167106637783983537196472214077401025693021865470557872060396240146146677460617606384795433668001129146261393570803965345525722131594265156202332923953422710281442545968842512440753809589987132502559297744409447405491868577835391583752951323615087664570431763900820802943889202409690032071445418881064753632292656790122038194420360818615260913847459765990208135953934310125636649546420953742801641176533899559423754534360382442482844095921407077987878780331735529565897834201389958135839856610701712115903172703638609007362193568309811140543857378842232502290355116502095595422787243990379834490454930874950699962029835840558139376238577898952760773933942983710363189265513372952066687651809077959926984332880510578242934422704697475481839598908282879478981646877710928890856363785729423999251171998334196329695009317555621026010854432329950326393080911642647311994143609175073887757587661472323415456806582461746266070107886288749809562399868483077260151904560190949483361539691516459997526106965857190024937223069470132938383107851200392362371822990460967874922596218099824586063393864293605744752725995567400968836108299747726733496613496764567640921004177852830818789780886329585886301960471979973161973895079591018554545105851528045711397149005561534859822691384573551765898775177337146651751596749928712602546404379265703089419005453968403715859391582504895789218644739762607329248912080137626180994044951869226332983775590036103889355867821428203254501834214445312897864934562364055388058907688666185263712973748900356939398194062305890403990143163614960603431100648173753412336529878608703014425537437486319070239682318579996021542581047629657602534437180445843305446030368214060410544877280711090382065389191573512488519112781183207416175592878205289958903059350252363062374444984926985768839221799574127081220974850208069146914986462075155627224183498544933356695939727495504524092425072783388632512253928051013314864163933233182000858742507396911805899833270200562730414879908844293440063720807337029914809685015866745288310395586298933305893833743637459112767346904101210199911588222290030793846383557422938015810072437192929934652391125796309379358885619565057366421986024255855172097677562479533746799073196038790979267917069173055518343342237783109020309667079557253715888801080360330814246054170658376266636409106732252521947818388216955474110136701512419523893296343412638821181885487821456394821462459659478875392324820289417981423374348825250521731422915320838549680304516757509442371650705045672314959408426290153340269534143899881384585586710561765595939291413394212096604233250331386059467585518870477706015254246511664227870982328497712136510376485538582974352742428800538604439965178583223983651881928076709330555675982938559493807067279331104130372699977479306025567472102181933694335506869744464680258072539766732317394842445012096326505883973093878398008527670952151040919252765901072315942615869763844358428591975186664979336366792371288878395860309395443780138226131003980689685811934437234387266560911139981634831458007743938985551552315640332253460026831839664829366496918980324533293674738664472359582335272302661424630855369423228826992851073893224029097323901812675608125160346982033576521075807677703702896899400984442363662853820182412202144854261827853786399892317167299129678811221377193013884077933651546794935005486955330484026823136037505057547500143045933903169241981444742240279139420636854988371041359741523659848614454727240879126400110080869524424440998207799164123161688581421404757728256716731835405334860682537548629909117950173478013550717036698129112497442777645080134010267135903623133887042838467677800127017476985497999514612321011480438102541664964737080429024551944558099949136507262665788409948293561482396358684844462504763164612804005886012561677020780238674706044557159369989492386287691142442106114707165486758795104844790215838181607862329046086194849861207458933545275964356050491367189129769848600458768097370164821057752400709815380554313771604524484918131845795272001607812654475136197525909707203945136764925593239910413751169363870097226986524690996798357136129225114794307904079793034998378858219973292535088392248230694049711030276916512847263655215858802176814361418063940409716511614329207117789969842515234379397120028201304707007773588677426438108855971213683744331544244093401367844616658284891060907180856311337040658741240602562323306282719489485992989037579728113577489129250924195441257554047847425402088070180537073225204150980359200561848061318674056131211180739024379680724412144539353990336308564521249293175099236491306736915186143435688797015650499256801710174490262833049069602832448077866512514879317505224412305437869040545565482593484840376367532320313467522457887259739062962257294662371273757433853516988850700410930273857181925009663172984383854947816686337590910402457087923555749808996180528619874390210603151300916955373041884713103114623054908851255186479089214802290286706328185914850654387570900998015452872214256089285442297722979610751737607488642196104934866303093191650608209694770025745448562408499919448741723173734308345424155736016216223419395100560813488417931566729960818374315020938209024439597647554160492252065217335239565880385695425320979497593802809504140535531183691234140319588577883049284346009588685815781841537784409247807379253329389178545100759709675128809379548669488743323579100904186181718107004666012160231005723101783789478957256425356092709280307747808822492732955516700330186299455425733039032383968439451786041997892186392711565510129705310774298472976407298713456764254770834800315420749168293821304539035426106796990247491661389482360457306705618343513622433020319870693892133391517788665311688014361464641250820293953594949168769351730816915665344210768487256611867386335367200429342463558829182594288614950310184799202517986789531501391519833225788035816834436560884410496864797464384175571530975661764886279257586046291636542566794972926618074274871967630805615856468171489033287324654602606512661264835406163927546762310237468249883486041616713575637191738181434773480642287067032045761096622475013733695907132355274837602196355992426639229079656208973566303234299049821591654632407377955997428798703922661042328271435516285147690672965663846335413900235746943806487177005002007066387463569864995637927803846753290737214411064695576939387696262926424528651124607982361160347533835534672215516483225948253579563956186876418375494863118573050018786339040777350883297563231731941176908016812414785730970234386423445338132213722674487717072579192757573547255676803587563498000417097083389851642633199281723070244713139429668192739566012483532087939964563668578044581659062043813083972692488494917750639090111374124383807306355402184507615658887640184024896812784276794247636585228325276383121833355067220149641141551058307776245995580574987734290183860520447744415998112569999549620912205931708557710191195470349859953184875983513897946119586314446552317378787590268742844486030002988601525793138835579753848307196105619036403984268859253689905732636825656522060722295975692328765167627461760578189210611617285390405147893452799826896911539346167717142159859653040155502132036575714393005423801073029869081494983127610282191022210504170469667247398417853739746430677929987936014288914419238526040679256608143399672083751238350297399955951635030309315772928903042791824919054977566058758138967849893448856624174062195990750203478285754297609675029850916777681548246220859351432159108038993660227612971954839613847039822625209266531007446174245761432649517075261588800758233749525910845460669604097050395211634761328266366627999330969812160661793228831885987218407548252207724229291058520483506446727578138323886524082644719888806126221639553753703970132041943492931518365564144664554027162371364106528906332614185599247540568736288807804999104651242290992646671831030635924501330456313403498869734991166736270180865772308687126208250426023413584460303730135912131322345111214659632513294143123523754918274466850877291243533056085400850737358676613058877277331144485583913210528173540398302724704487675026263845503683728354867002786673088632395187953182164654635972595825686266953975518098821512602437325503142247606310813990186714425058846075667240553217207600776667433300082496946447521369770413278242688867982185620758355665814773490710455868271359119764504382833060390851753974678576650977399094472996321504319369585536988875441922087034187019560590363103554234294843935706516288632919055396653909441923603546505340324976007349825492344160029006076994347629757038451463225799790252338692852176432639180224663710406800582899805129910960022709514414839547906333051637876535484307521982920353531500273935515794059261233320807836234528598183744712003064249783124661294050545637367915303421621769318338964639897249443458937167396827880555503455733894995504398595423584542542091411174781140651605993771058647218687607371166946002431357885837924904191696897859708185078046758378512874155958347641162569488575791892227341085153439445427314515105946701174582961247467914232842189269096583306037510858149533484044594625279272118800944700174602866160945621663286454163709988249884053875470198894783772861476624417729862232212013397410763754474193595582809902846443866861591112638036692083849436679428461083061216297949088218390329543513883882425056825926275128971751129050417814446630114254996512881337159215999748619023383159542517037327251874898663497577641685409980616864839454777469230737734514440323807702773232396803449734400239394995618254367299814819787830621831033036931474499958829425097301278258369210054169174977883374299371517513969579737681649853746990580233325977044449803045374181167763775982232647004708898185406708233252591661602099852997056364978296768480165326694846832365224397615150010238849266831245580719163905265397489155636266471430341207752520894385679062295570694307171838973775953482386906468344078023993627756972267615029263968916630318098753798829883010738543734765860641576662957499185683101870775737483861636577410944457508729825569121045746789482115097114849777508355902473496489983943190558327714480718404048607138586664187735229908476659616971751632179252719465283344392916837329920685568230648040495038835483078630813361900369714331100648011896253493998283433885287770565997996984812142991369037428467135820983413515805316750050262770524548681783471139938679947390489240165166427194059476836644165805517484069968227765495673709454616702480273636683243168996748650168915526223965764904828867193380515650058002572363086438451925104141449773499447543812016299730002990028138462134103974311611243950841225004992992864506261069298796850049962811250220837683696049875275508441512984365383920634240808748254461712537390284335814352153877067248565695302763674889978914698952131023291136792530565629720398979807982115685807935601473120746073806624803199263199134291609930473092231990366766227210671457789860361486856011892914510334222476816158260667786739470636749180182422042086427081047845892776497823752596675857036791424101362615731465921352564512268252586455267041693116371694976689583113757787601249574001259455077226290376896958859311863071071912098061624123045405971994755222919633982199826112338365766159227054781872837457241522168057027434244672043954606850885773323620586697089953198484057584050795833157455269303759905460974215508830246663594484810244128436401781289272780696819951830618122883927716829934385190107608179672509623251387253514492367229425868774882678156352669531696371875890992648406083575152113845630439291222220404255128423462119802966902579099062981131435038326284117935816068182884765679947982567528671000874186283949399922877314526869503482778780995647679200590119768946460334337046808981027049100377277250132312161820997505486021332141070763010955804353640130523706669576576571788106928680848585378850282380772105208586316659823048948882623990986541760012296957718042347222125074751194457194593962025092040317236740243122056790812513585331676757868966571543771873901959874826905697681626588232288116380967001632616835057562592751708186412036657396201290266840273807891855893157376065785411049093135908260954145189226516237601917102741118862065425002154553596755425240741328040809046590030316514710787377326131691563050943879876214216457039608033224248747693220681402615030999302449954832688738819964515103662718197662461320654089603213808958729781073821692833887824004435541910570832819343004483929608940765242114099961088149206553167826733603980478702575736203692466561695724769779514260569593532275318348208829381176747300544393654288581311505266094275106217212098332039484212116451078708400389978878227584164444953619642633500245404546085749604384355693616302752969943028012529597291719154534508943940196841619961280422194515779526533700380898367997445595209249797577505594339336464178290267423027426812579420453324130764327935008539166769974595700672380832111760851856017921628741424972583354670873336677234667053811802761419574009501731290646693216329269493486420046577094226630662455548346645230985401677289868182166211042974300379044542282903971603570914798334491525571649708805405804432244508772957815620371960733980231090186660540526044905266886181990898941210139495773185819032533804178398257916636897289211383135719435827948545528128937191992798075069962714204904827627211354799991051972182389286038676200603955228066677825571596583270773150777902368502618293058161285951538266551839447943498387912318523125188432101747136993744034968103671309999224288966990396875276893583358509759468851469663108251229831646126299178537096497993366474112037169455262593738848578890633798858633151170789296537548163025449950483087966764894678000285112539789613839671944459806910507545131781750684250014507631749818888175475466188130285473109153167730676422976447833969030654829677702013895865264025288817328469037743865795966512833732817105596289260244991697719081520903450004161431566450160613747109587533064015375690354077487963541424655192678991442980676960994687996483653681372757078623616435591610614626143476659473743618075766662223406340152120403923014602400763678273109846462470683205767642689106351531834784370202015856410635819114072528980826560283877774023159730268434818895314604270759408987123375065023226094421337000233014635217856206693347529704996473267595912963525568568439815891852164937469309974904076329300060879679985862096226254866040767534847043567798174758757139026494870216653526097459022393056445847592521037904714017644057482335287878846201329474147672413819415110064242857650647795020603975219689099333556432723688333042527580813705672893764044946348284794629718663512399021425282719797960007103020068501320094562940751542658688969627585135469577061301084367489551721496593653031638471953785801056492185534403026825142562643622711975017898672685666587009438283801380969093616340158945167331251861271115627573224569887729574600217944843853051086385689952352044018473638167992788018782080814092626353146946255039107664319901452397721263600084977789308960985520358031989021519564563847466046655291492201354404234075686541737793136193852431873482128689048066689358996178841817060724699534215583196864931738088790039388633290622657561335313287061921711170795976662870557767516992429279557015416829790720129239337223609144611621802397133729106376263527873371556359009994725317168387705787363354486709908743005779897554949436434998871470162682720372359914325991101939249165088227274911737944559077164899656684500061056460245769931747075406805164445176398068726466941966419005838201607032214323689694804676074141642523504980126535713219493934935361786937594549687245724576070366308834560755531825058329026718103692593329369835771045426050015563126203322627694986254392078087293455400090255733423176268516274142055088998245390799126641164478076431785122253732368505080252238604015230373183213416023258368833113653811688994550022874870743611471253085323809027067314986864237909094348459478339161583109735702082206968101625082810954490953139120050319298672004705511393242036643451277857234926068021528804939131863710664701419993009553343075563255942538123027354332454209483075569242685523208295962428773650588526221545127492986391931403140452557085595367299741168066103493712938099680368741643450292118131645362141542434472357119288695677933065395304229675244738169054417724240335406533446762882411302828505709762332181384021864775267881522942649646515762937471482332932584381952250936724982279485578539660778547039636509123468235994866367797736491073063622137049870466992928707461080339621099467343557901920148026558015051935226364395548081627010566312672537331327358394940897122829574210466265004321671801547508050894014272455323793145630482715662710402977891619226043710953936382338256596185084937320314835888202583267169980081390567856121985538363790516995258494532838679815640005527676343598846326958323174019375462421569653773362480837647762470047467945715375514953228989601183508769976802942282993268796367217890030253759949384631500811626358323425419171201740623742675712577565479275455319666475424862444382408903601900504119360608833029896778425442767517887223559503717605018727632510073462621503497595631070656852538682189877931066352721208469530340543716933255186444816435041472699447188294598397596756089064973103774860647366870889228689938973494830654975274587154859202359116514393446451983779827164810668233733388912833176281439905747543089367881897973828995354694722180197845642289591810289189296842738997978507961780120819053746725068492893948497030536363230038735183705166615856824863763673886776668721859345592896844233872022397249044663108524183608477890286519084487128867621007885885015328641213791117016115467680504626401105742683908776705621333323059601680336624916423631483997401208862423195894755877300348175725829686823173941685922159840596655002107525692982254758035662425617819010252502356590000110657847817359380928929796184962398478368321527011771717993032680818664381040812892149138239241711158365222078033227211170834798369136962813064616054689986107382460070673006337425800409226354680628894017253362733409502062686654078381962564623434161679109866656713023782089928575687943081683544121670163830933259430989792239435156403198282962817779300008303182321287559165292807320896815668419914874782973152647588780328319765055348272410949591323220970313885519985988388159925967322015306333345210718961567969271841530159711790790377853363487112302968213773333608833193800245281693356305566756565033030151871602004914081708667011957653399207755905920750004754985256029889788388360675537309181075579155383352209791282045779506165205075208218891770543548105144086443122614414432539947393083295379771072364559583280162373716005717399039848026512437125357414113446997363348650910733022117495766052914439412117250669506942079422305509692623560416611325273889645065902102874467819764514653434957753110748098169321264013595924192221626761469479619030311019955754375982115433666141005985804864342203788250499628600892419856166762971310633413228498846391433236748629055010059879297391997666552957441281548320480260035017968150727822724169672545115712038095865423671469155833481074784384262201460880626322687624222015306463525575396848302518907524558053647039117963995790490077316501145248222869116087184689261410686767071464236838889373593240772753620666434627136390742387808620478812425022584285096000135608103213691199675501422131172612981861326487943509450890852393210586945541911569294011356523953423989756630932641428712241648413229961038964376567724089764109784078261306067181016080815802279834232719052440265282704364779612702276984566463489886403524461823308411028952147413661752987938872597077395359105698686130680040799032537218359453518603306230956880360786619942236485660032508026309652865938345189640027752664073349505362002798284626866195274860784834434731624333865031977889985067886853071836602643478316528560669724558189674123339604277444403911834234125243799509977880322607686795097834306838989332112011729502935182224854602487716596530605080218254032821966454733456580549197623582688600133269894450964979095108383398970499963871862787563317848540983349919260560289088272617056251253857955455977190013440714694668287888808073830961524193281889302664629770326284663313392220403409876933993071801723857556363548925352972038661784577512893038881478376255910161941116624393847887360461497418009681024685228191717436501963510800599404513080503484714014607266263481788667866923525146891985453682223110907899312427902948721211263373165919361955164606034504612548921012105690094853906599309818319528563591740364810481366487941185259815681539067762194573965936640707027820906221603595214512940319893876499455688504513484911695592693891927840727296644851385208593439967097884394504816133670426913042037982566085038327896115256840985170036193809112292389746149419381224103910873133348946261302645672155291409016810055883470164135104802295776173567861400887343757756822211841794997363893387899207251543446484465484724539348666387520161479381329113513165365694321678931197895213560474279494226243815286091838427445860542649853954952657717863119693675015124856907142600044189552733468622139230445506296353591416018430850326647880977681034491567568087674289400916063538525263413294653339454150765150617831788051758529715315893677463570217941153497453397965185485268634964812676444388138663348234608388617596970890032693585394087481624510613600599876495635867996803569069094378228399734943417170298164513342622562396863710203149296907965748199669884157154830431591744978076822031096465486384563714404668300999273343768654028718297270193340641763502390386175506527500933453398886336149197249509650279337746636873207829926515060435855475112318340205143121577788413011121616828575109956892633096399903984866322381858611543952559829105416908167422677203852667939985911798013629548961286561989478083358938226111584309599107870604077251739018102500882432489509482307953268419779049279378423992973320641377684557213952588976205658588942141161723268868160630663283665345826487655967201364837014253087996251555837622829373640258598737960997883176722830734415969710229127503112879102892028860380756909147560063595420948595617972158974842121428469429195593713096676169403408901812964600048721402622791545533167622867007439138002442542164572112961235746112253952618388788259635430229486402040999803591750277919849475947849413373933371341243673798680892972654127109756681134771021965138786691171094181481836487405991056555484186720251107097167948178061782803423735658736722001592607229499796818477737200644076235397014743267158580811352648921346797416129087730966188175662803222502820048407531258061793225138659413782860698604463183263522520051411147064210688426938692228681939529654225317540055299581381127065077647908063306456117540321772788874449854569349590668092702793789076788353985698447469489204427899112053141318662307304452070301901229975649052594688777760163921434333681520751292623959571095111101543140443589723778431320788509817744648411447444455197370244315324797275761519776821307032942133916283133656241060753879925495493217105405977284638318327270543677151543526085067852227108800859046765576367303481609441527049161898567592736757845591339404343863813869861628687146806364845371814995333730406837639752869050693498280099924966522631216518806745752263248639829928467159005683542149424633867949264819223743606816999618676133935733985226184905686657525529094869844498272797605938429808710854613053390386016434955272356104575557867489877719118933231966486080150506991454805123476683603957265717778715592373830918495172308407426051923847536200561023322569890336163160020518836982550190987789782756510639392164120264979975271055023011959790627166628343675947715515247910473749205668786080848211483477906144462393790328873647874708719802347869516076055288831765305912401314646735032622297241193234814138584954034410038411155142658348067654697565778023355813444619370690335488140620632957805634454145424464176386601132502154390595425124494349368289438576169666911794863451579108624554703779454437502770212555122563828262095054366427386759433542139096870908587652765618622803829960063844590615815803787376339882153889254519070927951749075957650596816325040776393070256619805732330667351043104194338821663530813239511967967006417597724435076588317374123873630759905465339840730713513285379982047272191747756652547597801527290354281257684570128514795681680928606537950547740763938618060557694591372435997996138068045579571606396090663468795190934071201024859324085585461737443817455060093535434303478167906332152994717587541359432695652751175628701059729430058270163022378772793380045872650260126251509822172948463320285654040555112527878263511001384975703477110270933292324835444730397068815135310116524330858999499631397948732925307108010982634287217724298041830330794542752925801073304660035818553317136355885903438081248873277076037549205176619535092935385108610722157719532259217496082581775424281497989254443533261841022422827527750815434221010039954816801670363058664503480601286070386290274942824458755397597472747474213634577675677340373535631331943046369028778336443407320068083020598888200891844323273117060438651919120658331044083837192107612787222373303287335787509190582661415108075944132771687016905626152617982230998258985526485852641182346790907462059140010611622061715783742275922265422243685432552360242692159872509751069808373436168137468402206624137189745493613318871867324922401780380880596441177047125592543262608880020393245325033559091071791303201825064411533324019756347907883821909406309643517352479213641414147621541247440978705240599500017425316749402493835720856509684774077087229972519224123399540587546413213963909489224896033425069136992324418392643357030706370621020960745749763610998991077659434932463001083845007380707605812850976081391984692262216553148656765653701804688240303725667350248788326238161875743082177306038064043811285819760589388353229265823131952214585244829910782122673091828832978561492205344894449381162295732432158174660323957613728637608903463393003295926021275734335965489023867393644859660628189570047633396139754037898879499174228752759769004216591140347684970174960660410739371907783060918607909143347480625869460996140344664656819071356537145804673614393262273229191256355974057116878591758794704477978935918661545357808507200756577031826941061434702693916076816765833758795380151104934110862789999565838650322225883989232307968590541446857208425993697568903258779736396711132794210726454406038159676703060989074864462626876009772323575225459050771504619212521027367813433204041971583417535070702151298493071000767778016954148284116692236325956521167471623960413608087134397933358566055384517607902671345119944603119757999570664646449592751109918018555583088994709958798046518878641586538975333341502975960231994317131451984174971522301991425265542500779983975408913205040413301439929105363023501573545957934560889368924003855581843548401200235184646099596298540398230898279729512121747974932285202217758687577321912073572822266664294888890199349303365796651546069060318865741923014982294300833902700555612633853569386509743840909360498776728009147798406222570341658596792356049197970996159198834425788912313915055574396486574135981202350034125241584952581154469477259144926093830459844632108561897584839232958887323432427203367780319146761148395944615313727673443396856091705544645082606432916109618922977496678403742414492250830955132542882221571927729122213481512643448809606613711162879664798168108125863133178971089470761314049282448493413556008358728169001626726586737241198706979318626578357218365211826950709310698665214371174268434218812941165461289447892080721550597453780171283971778017901809020494138829301972320882670589155831490573672894602477758319453746024687533738743983822751366155723738811117483033849330281504788722841102860750645999009902712504935471550248715267935570388713284300993943754987906181442058000570076646211062737471789507480432036963233923077956286745230155953382501522280317010834132767118635425368606767941679236507372307581696722035542812494194766215298350454997161447019172274213903690819797537512456780957793580029059271267666922241449315912532463379652624075613218974077288507289330144386171334692860910265465153158854113883379253273900170967835418554228461296804540713389383240813052960682860674352133778041634389059326792141014128431376083810216652423405711277448227319216356021680425035229585012242475248764108100466894220929479504638693436717625874032478644180308786051812573982315170180595299761572561151098922793951135346806075048173389665069979037776399268716730656186286924545956368288876629503217804772379442462637737702180527811888974271470871469285968175753260635222105160567103535322037319956973261477533667441990088346086334211763466443117192171647723669747273583414795874279319311105103701938129178464238823969544677665726724743383271721321856609674867913639327621223731607695961928240408443195015245311541268332076219335425249984623219838858053340658165147742633558223811144472019764619673730883641434590493734339516078550647304180026411801133812748757418081736219411745373937173845080847908246900105267221347554519009322966343076634543517820571458893468627264955964720468950397258585039938519432283398009027125430401250682532408101289649110661247140874642415058884443392488258722187615857480083822242993953562810985436857132440748959128853198653468391731858398407247618492929916900324652064016627794779733993028887892999270321766491108867253719746618075937709100002038183045281444526575559756533379562443638008070015645645165732247347819884702408229250736223916639998897098681105782537908577805081057427721450263621505415685462377532628926284607039290236835042881686729500291986050215285011640969287083402427434204236289858675078373243717266107130907212357545975388892201722871717715423856457301818122768936293222570800389195736773092067094382729084823533416543172802128478328583128755118234218961903537709087429375494366347168650173126653788681706656098247465982632072451820932917713251659601249984786653029573342614084177181782271197523671990877145858079882194753568805733453701308564733381671113665730195811590804375140399833277407601092201907003291777545368632382508834729399548233063858740179100449990001278032383388393834691490837126739085460891978684251361035486414701246951720321501565375954210393957369170664725883509800457875414588220906497495655287600494234215892279867507676523560113115950263892035751089141684941645962202449168466025869204333923304008773552112191968677856936432987607618069979861979937737513220037424233768795970749984088045856405284098876090673380763801083013414658719758699100271461873454158479489594617112742783590563006419434399851405888896539133524046241469159272124986662595405707217103537973610068278282209627585534475248605918651752046557038338491714009092870146858838624963374741930971347187552919786160376271617089319610668906731578701479933793552734543353477146848136200179176509551517451280124482290690210036013435678646136542328310360056991326460733055321231650492895837978503352992931456513209446094893302971214968418937032771847678024388420168243607101980140421501049922693721819115018221559511872773975179859927149490828662843769292117897164858861502059802333944273082177024682431795681712737776492513997281354881953513350551049674957163474092785324700288305693919059085046349019740148918842505561481049307750484565379306139735666870806352448462293887983350111694955437317824626998845350977333065861960559485942436782755407290606334762731877989097226239969314622379572070839282724236528607107442412465139499198507210219439328575221361761203563770417207516058028192914155928870961329297996056999958666941537545318272826929513175332891698715252052934548169677951417604969805041940669294198996460794599959536395194637985616313132403209235704887606409810254615129273730531896327452452653849083533141022234205737268180587181747296707684725854979388901662697632882477708088148479251600722684379723536983209334903147444521412480874477194628432130649705979243903146867642613055074881562248055715181453820213920545359187980165917732945745724689870426067307463772477866424664618330881469178686162592354240172512934122308966994971830881259807590480874367402057436709029805927307710449409363007726179355756104244397804988580993381868517814608444297663883584666261468188188580393298145938980606385212697336928510955644024556817689541946493634879427081639206207978861744093692682202167265843753817015465434799019345275516196309854487195355443121610412553791417437021131716077981958882090783285141192236120740732203645674188846026967389198161801759917202051681420610802987797148400190689276722891674021651896709581391813138722792603128719469577372662021861113981991032317381103772044062692315579839025944297579056753690842046766585937788833967771936504775666991393431707705938468449581693472691856384828928415262630214705161014275646346972081342299367792031551399938467695877447006246237583928199208800403389105887640214498217838921577574318871818072948557320895736549432424562032169806335395576450030014201564334606599869830436256254940013857919095987589468638740003003742331131697702912707876456678315673823478928249547468251708747024525557468402814982700162537609215319674911818968255078862440445798089461111501493141933856074166733623195137174432508062817004838686923509976627903456559249122017635795105537379755684675226547372912581820264259889028784852214616087173872007874638404818674985292105722408962097952112742668161659032689192734488826258508321570159348320697634267685061894163025342105679739771060675876545654562631111575316745308065630979399132998244973317126925574426342912384558639903925618435982683040397064813076806986988721947869282146395381660824008097453806979565671933036078985803546772237451996155359235932919819309639841899584332983955811524228142647220249241663499659259769112795309635182720280403682593640600985588666358404961547061047489293682839197454925928763824230599757079267390446339763153788085373425849600590775844032047516331274043653940528793524805448239869178144559464120132941356526874532396303864299636010357312260908611427759729692622343333044322969873274146734159917273241573530587686530858272735422424412043612688460580592450133496354197298864415663238834558668966395220286054467209631879525510661480669590436451921488179865184214538116034442908308175149196085366301083371038902053074673401717731944001061645134270892377081630644704247123507270158935287913721261579662081085011744481434500933632006250559669603064949014575337459516518968495908775507091465357941171173127638959852803356278511256035564796856121756163156096173826609028404057207023561624091542724426723267676519263251376546023521347548333355571336129958752049101981186946231916935586797735543551687331079417730070125101575498090273632699255591433759328256905336640444338773365844465691630805075243676711553817390664342342417082034452116665055449698481553340931647020287797033155785024094562490906573953029052291070654324170855931387625619378597920355130178549565058847006706362030508218215308848553395880496739039285547070534310176352583927386109646008328134362953684453945687686617145275482480463645610829068196981028475633193948351808990601967045015231545949777762113268336025017467520913184869856152474318916237679850804452761516632924660794308830415318284718356037559188221555949458395180592123150463620957304355096844810836821626443372094465208615707598210716217627714068089737100405439594580204031542559474769057975614033251864038682014779049000460739808685538827023081976261137022354865168154052368623392965811146418245139140227278198975070737433856774706119344292023169430981828274873250029111740919055264838273873854468337914134282999776703035298487033601056969076323873094459303524899955763450458490622901871192002931073963676883957622932213618577305115159072969950400295244642072065203716447842542102413540738254350826774786339980114008329654029351816329637463235592432441581209379294455018765607156835669998367560585223435079693399547947270862559775423036513112944546025991745714621262424368310128822422402402251201037780664702160724900597389048007300041737540715379793854076347634326467161595050960704959419858876327061168723177339879790744193255342897059413329476621329268279175659516013301900958256645977966362717738678721750218523967095216778700689419765320788486083229970366247931779768634560169574997964051446683006241509560632678865708758411402947678369979725120675321991787910767785078211554338883521629287058498769274193283815669250364874902885292939216991382636417076293990523500070553819174735749609020405937955854315656165406971877654767064539714867966763637878335008789390142633328043654758231137425633633228470390395108916614314115472128328941406194658701853457254870575875052525562206458570613744510659315078459709402879105039434276311931812891402348294389663134566466527982103706203985321558496517104293593939171028903606212100359736290527980254362075269863418548219166543250888693089676997130912371113037297441168009659214013238985891403440164866510464354574306544175474475171907243924098836109610695374131525743262340024275006611846062873784927954781305959566375468023440762171653853025498801725248426507270864653330671050335927733515927762595117832535453285216059033872971128140846986475759230967089112662674809353790020796189623255084698177533710238153555693901812698147730452966452614307065371006221283107642391003325326158551223186135114002615152503554031572864839667025612751127967944225913648938017382174074907200173734177919112111780112097523221037679785538591154613517041476230805797286301993283536930899767271951307942827592558774889089563269762074794606360152292840506000147985789804278077980184346250784751873613611561582899286741079157242858913399110476179994988862624273177906161780434708337964438396228885637284973375225928531445750285910140075875063039252409403737969286412197603666798506981464719887267074403432060498157789699255503964903775694716018265643308391464056905373093955718304190802358865425138112326435962350217475245049703624301715557864709521685537443253285565348568582303308505181478310378922239882532763009773996816376312228761932050556712867134436649272167382410389042112189235027951665665366554044784204306957794812662394555393065553091223443828104131862172484768961980400910192889086119146287176878863593016797678773792706438525165930604429405373023250363948016814605116763511103119004086118829875154438751268650518999795929243824502644794840087578954168153332331006398996935876378929598220425554713834258647550595639932241670935879590271352740422636840974814338342035023486765645243922122481459930007820745661245376808320609422434166205661506777030710988246493722238827190582180860479633458334749363385349155675288667708696266611998834624221900026982787034484336595241457697208625981128693808343330126764461504185072688747079833646602095437692827089584097558734985819793778481655530884788501161887513661102773477962246662927781649337686093723880691447998012096901541107062366020404863728169556211608419814246434144488291178796642442815571945670163150610451638577646723169000740348320834949778644765067773976037814961027940192567246073961328156127122716511974186602725526698626533144190648193217323754367726753460556384737942389886007428860135345552143583259434341703663720919700785800635467111465897942358970827542240589182990301692264111294297905829664176861893663412843345850255050482291290686427402157363712349766921419805165047772138587469235041500569080534522507817645266428534533967392349290920467996974072576495655696362970069300583780504999030489126344036130608274096719608507037177284830922217782870420172015284253488009063392363333392281361879711520995926818490237433256828192152237090324595997617524259883400473792275423347104762738884152339092516452177150146335618342075457388061941588720211583605577958190888893712606980139965514748568335470617419369585662130313951566057542962157606520901475957211163775314087442700389412613765988987659355281962096144810260805368545402715552452958710074440783482776332888157025623622310378400503030637515734333050352999871648568722920410081840453776172277654597341737261582252992864282891673414392228417627151562206643718317198737784247637041730862016679986558085969873935120388816484353391891602460946723098605277170245542446899918322919911959141483851786536575981385010604344521484131971018938113027501295981892240465556443174638883578031182899034196644659362926584711997363403709150721284436685609149403545525470452253758300595719412875229381168297529360453553140352305489260128144491044981939229726024584830906448136851481421782387460469469682646898437234577767967576275519835354137904314117891235447127498659393117056187367581161767411041165697321658617156002265848965744396183922574130660953623667564210459175179710970783288465429009941552493633027103034245528654669904095064700326982057500420590541745208492341540722205714417745413997050849594651967752341944049383215154946655991205148344973048615543769291198207805212045792904092661697939382763815618599767246167724085453487212806946665126559430119245794461595770311145648434000620011968442067539368008454507201091988132787671377795451571688380557098847055558541229847824423763256684019558160274572909932020975169927835312713776566400955236711271803932479160678953265887457112595197121920986521432622452102709060186340364415855172672445834452414395247190813477783247794076966909913183891694515564599056739918227820004517635346658407406302927131302663888628289307981372530504060628791277581279597309777123634661803226310549179236276537595771419895202240748772646443338147040972901628076353486480822832519609369920691472774016422688102849367477416501831256593346914664202365565176778949143350673553726124130629778565016011899704638972642460440682983773241482074535282865110110733233282235576464971323251798148143621760587347311855361406467265364720308010945796669749500539138618557958652081336083022334539752496993166390647747254311489719988977564974213109183839850299834442428428028257070504564028764631791993014872637747991888093950322372659623258381243069734123353428140723397746464177318298542884186926828927007105321285339562540142224633714223946652868287725372951399080819111506326526175822420200791505067201998111915026633787224860831454613986904237449303602223761546742317322753463148668140474417678042264169722970109357209472345803042926598381647345723041229201173523455339575226378899200276504827172718747742294086042792345746794446144736740309102601630923229192370755398452445996068524740293088340843861423019801378164527957194438925978157952934850390953028513523216459222964037705176831503309435974530448706245653667874691985896862232716424572272252034481533144247844813980593275716148128669576377987217280372356033712224677924141963358837515468798733959706057410319275127605177232764943941543322414668446232978571761713219380865987923533062839881162621429791908606244524633923283908934274541350586173433258392771144995752830461731991482976328480598333483481716433667710751656717784830852591051685717082310776941074122770996003814100834271495764869913005001552375285701696491915529014086869918062975329287716603107123437360717474096633677006899513462878455560923255269161842388257837146374309152453602581847224855190358315755406076997553785542806906000326114543480602391228605268336452486883142538810218936466484227490669450265232582762394588028002068956416272507334027613625805460653375235809509249984186298673279584678801117974913761436573302611592898832992834990598345211156049038728146367236587495142755829194086311276449869770568243278932589847118360351191605330451793784171680267346629433414844286244647352511341381001261656925165206389899532210182193532581667572484141413512542270171980878660425348641177372410773440351187033764546243645610321186630909738100948824117617938303296982269760858295353112224153764829367918663043595037632497954426424517646045439601517219373122936418023256930381631667691409436274602534206887270057492082602850905725940490788339114385723629160206144207701318519007057033545665073128557665296945782007314672994488394823821384362645755815524141236441631134302251796537126627844391812746701782332940938709396203545167900203238362937675569856503800193973496479026953379268965760730925083571194896307169091932849807480390457162967031316028901161780980563654346825122587599771667963244126834257902236686409632587660990596853100350853764163696965875745537535150443035939959034249012609307689437216923672792191716051616446116051973729227963892644490131691091660134396850780891212286166190213640932094698732456354670994416532462048611438876239382548167100442924998072639733128788068506635318381528843566584965770232288374552658907572960588447831258528815857464361038668796099397038311853363748258532726268265693037598943084425044365998379021229738452734198051972623602172331652811882896799903617577065268827741362187530615658915218549574526000087339078828968305897132790346477197891965467907020182290545614219951250871060343904468945306846742728208807545546789290873650387606015350636886212882980951317622477572950031427708381471146210012557791738312163926383990281167285462533044529269234542069514070197278752510822247099187081089328564690837101220252431523876603026684058251893877310441977380894259331726417517006530856522924225137716443743768532854793314858034130900759316082161735326356442709538922495493009835561190780237844781477665636938492437815007167971507021717875733594141630152655491804245661586426479687574013056292715149980139184154310458694199897908096196729724589983144358081218381840610807491594913765262663320091443160187830769960038391970039910888122297473112888646955956037211415860446830667833016603677689115990568118767456517436864103058539079237413546926267810336190801178629593645721254007447719142075423348474323885137620686093406895886658767359478575577187832396956853137979043600800657806931496614194593301790535889022672779965447466354050635587948993658642072502769196426251605181548316715766428851047308653554175967458889385159197412113363046545557433292284392084195213161709571392926284651598040166844621866499615811686569087417078871961280681597152473364075354634161134947504755811688898167014668195740783256570343624734044790524092050988887693765823125573819406046878829936889020066869508835391173583283510266250390018754034769070595108069685318780485878417329535158655172092608925408703516335920593255687843803664401470543616370458836335233119643298866104818041569216360174387268754216718076594235127215387386378152021416433540899356210309623371999170601428486558688661410734670589853812468374778134109282487185000191212550135714528512561826606098170131393144510337354893552669428029305081735650232147710666999892246975062156116714777379723836048126907812349712450636620601779607982059849827116505771960873872680496207968343938505320608920859889025505214939871084948913026366294844352660612863326372272137634047660838687524058241721587093094349496045282388913543880242164742507618929074982705014466216063247705451905813356153427363464278251459301597121725082571576164690108208525802590301262355503769787562482147709319644256639787621142614897153695617075640749910681515810615603774799233182095073760762667012221153579175460262949681631356881256902894362645309286128227950135120688152469001998024892894181157871419878773731058817052072239843635407823765734300975049456510037887955270449737632122878066560789593303518794621886073491020776714499663715417462760311279189204689380955953392758893472486433786257115525930927089927805567801356825960224096972619769341128303343450889777790733462819501057606308609542776781142994148524926734452710428870433538001470050547378872559238231816105016789871891212017139213742826948645063280606355926101594794565581583094844270373300283883753129816360601224211872480522274084154267319275614397836286651354991220528908590353738036165035547097086567568996597127345521651501719790541576875005821105738206284326489029609034935033528429568793666211060343268061299031148882054841371363509252057277721353956273699192160735547280448096239756970727767553637521488367697360733060725884143462207889769091207516839532112620557071416908267964358073109847318389125142173449178523119569344548029837676238037582342510576466383953603672967025147820592932677342296480101988406271321864660580415572069089583829990638698407529333325484783870522888471019519388184988743723131869841254496395606706818970841421882295476216306490800092138396686503192826845808564438936897293994537855324055782373835488131835771359613670316052999138442620511060233306223787747009211105744970042407294136378550352535758299595095208390725707760033499625203837649648254403478083050786886522613224151100051803484056655807179217930868689306724995221485578119381307765623414478414349844119878090712652613868647953338317340944186321540747275030934550379675177509147649100557550079735203435797270380975173771597878672162160105909482049195341773442093567436101284680448196605290004682157273600556450237644473810400133686740146957104889486904881253751653291301508263339308181225618360462357154810950607854520130563158975230657290367317513586197605712616303583152788769794121358666864168894432960641524955488280756050846331539518371436993965470885815612043273566805808859729213768122314074710412340592099320582845514545095866122498091170647099940705601425055797619357927020568245359259577196779674521696745385179976504065837545101891914220914310916519783961379008107805426883305915867850332721605716649146245212713211977225705857583203830087679637668523897646959426008466033323573953496629384703298869200357576801315347067571475468433547519942992437237187719895980466386329148778752535071356491689740128013144707504595864050668980444058718892999445347881668299770203155986575662878196618340211200883831259179704345436600073347613925519428970558796590537804747964700699813769646736429039588544154900401626877468878592582973925034107402220953895928670062786358806159226852496481843893414104505081761423226858025286775270863655673163067138844660319779358096174118097287667211801965838056600039669223120235650011940141212954443661974883977235431649993986624184386879072843502895144567708859992677787159986258897428788160226038851789731450848800783730984225692486716664715672175421876427303688869419853974589857131388180004686364671165398670663130241001120548635966563692885456812013151585259637828028156980435442488966336264606434738541960635113339814360397797890421094806733115923790183131916780082225292585011589063766014229857710991749862786401917508958554807965068867420857726944843454626472573832957324255330963107229900471406466431554688115753362685796080936747348898886338982640753222685651832061553747870761181947460869192148107297522461115968991519051797773020944537847365171653108076095543083155612491907039045295311215151045300183908739144205939530247065843740056370960882272632178848991536775274108337499709921980049266360424051798075818227609854820510521090699917031667025031228126254785204766261099924985962433597177001595213039799324863817498183055925970963996800220005965621016188198685785000508255155186266347942022340285714300684289432552361795964434108454956068936939660202108933146130924645017525851862317762261346009793842883789890691346625123176696078503711068925030789760909590126072674214677364457701803393219733936282173072656178236095083614281730995641971555443148619879491141738762458938813437735104627683239253793319322592339495144840765035735413644743484583179966869970811123295637481148221441864757432015202628675508010186803260305513465073821066897291346393221107891387717139692525400607328800044538207522375103593608045786571360583997345148309354248933837975760487403172778108314844907495032189448547005232231608191460840846615072014163938377410044818917895931543986262579925187681346089783016499743880230967952758543824895096361525217470095596977044774933096561694005880673650525651435644081270595540500906729453643321474529884308116589031757076449491449401152455048838104698016204622637050395317789295034354287403433767574559852584252268504224174512656901636624984868114836493172526819167545273652139318896780283997661590616101357216733290251019067254453068857566087714814726883119714481708045965130493301864425680669075423707561584659214223439355586065829332876033914239150181900816049830443715129209241375187833627227760914666021928161213308702220488388737147368659032549602348430400763902274437019959372910852768028463579804699238360617695260253307044506896748470090631239558485688402248003758768320746724239728335526666525680425982643912395907964355135988590416002343540998847678700728143647825115784976544935046448430882549270809397637800172144042600659321701349577770491101750180480636715706042617923408275817330599371641358033857096874267461536031136524371612046040834877176744524253454975993812178878425019009655579328543419553316695742839355256612556755319869597623778446043238591418090291744564608574790060829498712039846437306602027616916055505276988760131364924595406468844736733879256765968731504858522686128405129031584276434463792466804510813895860094890338733750900532421895361053547761731598674345817004789334050012295024044381039603192653066328319653719437132633332960126058103936727532888761209771507595155221412235430903008447951410686513965833948787882373003918292503448591665585138435184462719373500117937269180999545589993023545873322905414654309426691557833186854579695403233841399026553744812335119342534961923627061672525923655964082457422938527552496277238382040090498816034765853694261013046364003924661780099742916027267598385950034173743186433962800613547650618229000053272258911406505775534096116689456615824043446918970732422487348271577240851864335438431648612109211840244544630400593875475697197740039882534954240521315545048759237020178804920538921653279502084113124468892648930328233332830897539651420659687501555457370387696398657221810832538317566352565619002171435822931707446607451277650594151971121445121635674579565284705688449331380107006473334938648233656584803676446226387853195187035900435933123931379290411324299583044520259261323985945553090500705523450194937405628167682045657090033880906864337377804599074681969442417411134144219129892421433923592436759358904053359600414645198522047899742763476869567598785069113007418730699024123373936748916459010120499982749139598556267834101762401786921689117776718587500837421945461746525823674129857186270309977373799012032120211748635132850404864723036557947718214890621568522743177584333381137378201331410866120809385568018868730701549571086853531859081268870358471109375791519388596565389181772012109986220419972803861965036795163601334883219935665023409294183323071914311551626839635039447904223516886930474705672042336665540497316516443056215914278325685809145351296471787824944644578065771398056774135615423201682345142779029517484168400585392095790378213294905431063806753729685121397375190418728987171201489480991245754383928261096613990204493419610344956278929069678650473606430727116572579908469251038567551114656316264616676052752715219427679524331968579055086344256427146340738967818717292750727148200052246305218741591359062624212860345068818054453446615093794966427051412807825621181915730300943819322256749094340560604991104191681963142455708990969737133001074844440190286269612576359415765069732019913454054662330956437370619468768731208369544370266630997303964780843009628150554146470711290711084748773574897511248858050020111494377126636373584804456416951001938925011697058247777064148912637069776632432562869571853416563435002681010469997289849819175207319972409915388461178800120271317830635319705484754275549020992320088453252896587516381852508518925372782087859553593331652538174070283355492802448301153952884378399543278241828960779651713369237458273598446918627823824839288281709406357892400472098796019330625611027912731790106732103836928523634003077582756780801991053245434779390812729805674508396429827007496342783271862031310528312809236128723066520302575229628608669176531381437566071014899110128845279007513554196270961235987003070878912675965793370520164066752282967895676340604506324422033871562134808601435838777597170535233528505596247305522514052865119000781898044147935480778808038702720049373847794975819033468450448083628687718101082441997479959076066113045424101596430070449913767203122483382056195092682726820417806878692214048418896512675991558929510630206015033069341638092543446159370370988412163203582968476464584667307377776230522488212251096992383630616736419327431351666749790068347532511150780968903769324009895725102027962157359472581497835564597456812790369111994782875317038902839053081147278672811089721320396948389912011101334766861001046749435447799007058398328684437453798589358082678439826855136678975005993308176748090769145216672433132252794097651201587383563025484744882481870091938445354557717277706576647978563900897846154594854542062408509538854758644429635315436114387223244333005370084963490157762911906093187790440125278172509853408493710336473648784449581802528008351296746753626288773577487538314631793292183288368273309707885334087815385160264801771395405458833754259223936417510957408041873951453813743280620086225247720771805347125243317533598037726892573274547819539028098426662241234495812140454797457262492608352001478835758971359425556328622763674778354810543726500193853689189902181435017023876031093710827886984349939191733800978051474328195442664802670708830485550625076159429703436361778217284626396869479201902754254048711096540079975156056172936517828847159040451388738532916465214520152643628567430449318043667437984789708434633529784691074977013915431156120618694200370688560479238685772022084523492271944586676988420937486390740468302397182436569218064114795258164919073707175789491520532623796162174557032407525360286958857042687662799868892921909325496725820729455901288495492374817826673903543833285522097518277122533907767689594019409853245278227008485688815843587021786459724826552113407324693084327709218850836090591256501772405702408804078601982842610791842664569572708205174731264859284243167443079299081667319686310463224747045984460200788615461032309929869031460544676193129065236981035861966082566226988561833258930532321577347505166149695218393993446741424447379768536080523237281519020716626520570224084733316006221977691285577283373986686149659033543679162231647543282834415679740404722806814215323960439573780907196578802792846853484073412847889024371012727981359051884742281960161566581484549414688758939794502714683799870926474483817932501293627205825362635242977521105895840865423433214009749581544587444566870412027073830262283920021655534228552083973832372321099357825631300468980012489311271780723101057596873650565471070487065477892379144701493072858996840222019525410258982459778574219778455426532225795307633676832815811954434712358061464593562168237842120662486551282899333377140788958724656768295848814358598360687763464504986544204113649858776937676845119097872472695780188801200264145301533810826932393059315155084171413869487506897744543502116319319931511500205124009321367318161362367545006010550907767235620211784846158932318392234337627599798647073848048786007894756683813540899575759515221303826168298781220635201884981560624817018250878090903763091362937189450565742536639489150143440734106206195392294139378893956273673513993023373460640218240777773443557798948347805058758932576512186609812766501601874183373663139144492099270662136585937167336770258034658837212515855018997932399530819372702702828644759535621625027974132343134362672579271834078920227260384983685777744359627733378028309926368562777373323104407446976697093402097530878457585473132985364783123851332192522164032552919748545838205664965829369682496510131601713253106461432111873840769334725731230873372756245632805364509469017839076839938239630957449805538729511815780469861356179955331475415147799604419949208563201271833060303799976615056929672978355766600418185353845724442995590678705963129869465344918091515710026728086591235340346513695702390721981582571159088555202088700165612648282799761415804398046082521974572058518074166824504391566003406031141472512066257968782732518247384401189893336263505421441596467203978631615442662578489585859178281967352397221242800068947874465861400793196539784843553874167378476207590012040479534216159976901147341110185761090276381733082814376031499481871485055878200785564981375781063171430550263689598278071156982928515496137019602412434886974846050525685546452492753627349950087044859578551323484130913137160632030316180636965115083344858875113723355285541892135675136197679868083598075253533650626075204060337561560991784474924553182073941885526927422679468796679314420545767875493534963905100113784701687772124649152897377035768275874262890140123169374955980577896016770283623978091146859008892155060418751788544074296674997837070821282521414690881107502842257702731159443789445089713698950996709228016792592522135216475317980750910427509753116230633065704816092210521126930681278898806969560705520192522914072380166930007042972604876160332279494620699960757620017891582509963997152401749669048133245279037303642606238013694135798983672304384310348451612631086107543112007583419359167633357918764988730165309022841928603793102116940321795420234095783894731787924018150226252855051579525257898291887722367014816658975956102319332404059712375022769025809316152760816670221942056621287764077160602283321600677240445693391900936505452218834890890973107020070550707365805139634366524483582368209680975630221272591606531080569433117070333834700963562374884281607960167430227557655058001204559345792802600562080932621277471963307868330928446625218486434843242159601230379376121209029565503017021163026120456574354328226289195741193757725291445437703745940049270618867105120235134422285385612771278850472355438123568281792484049703611586533021927112289992737196922611976601879340600794652303023545184024200027173100116786311597296497057094385960184708468167243378557794916569504970693915348844796471161818277355286679416250128408590313576723709931011522379867157449279659990379791562394255952023719157437102878804783017789637765178999867290247594364973440764848761606902961461483888506366502695529262963802081351232914120088543583721495864877076411054809914719037152281596601415951276889106052057648618578873033980519657522607063878761523967077344405935617839356608281625958645512231846361671766836481289326912034991420836207173735584820783827642019604602851884410258617562938311181160504087436321852908652891764011219665759059186665049791581490377064673756422731316831275184246319106264997849414133939662201056299221444334924703615087370396209986939403609267960000458333467827577040966458461545710468362869008126622830798005221555620218381955857436883209323972451019922143684161689237093605308579096793996365731953908143194885436243698485943051151509101805006637146431063286953007732826085132933255572690126883493429591274192413279866320966263289181106315065318939720724698224396077019681655256954074746627583979448247022467750534831266785169876185258258002257393484931672717190301511959388882089904311889380251537927415630776562023919771034340230998249896481269123182399751291478896451135196018927209359601406614431776146974993348555340345669434684743545769043794664815305052110178539213470819336727770904991198757843120972506410534306455947442623579401040785229881115021868258253046446066329711373750924871942016273000474957770493817320825019889355570530998544871280598574397750150256496049606033151908025396743907138641004936797260773391047648977372183630784731733497694744596274121545385691628824175772140977077508984094680855217691690072532049338078342182694930847814953331990665585859883817330878583249701723052282285070873498307093224448179851233752893191206137861315369194624756336572389738603369901912988037844771420849652257334161473027050975300024436204008549367397836134619945901609482859658345501239216141449504495807755546386512472378069149101484500586623342597382375618977339637065534605898667602512674244699380450890331089940048666424718527262599150405317557139348649164462110142906394390664752163820776671744060719647525067146203060064682081790181379362936252377930451106619494783531020513630388868212340418137367311800763110583272555654733896968124780916918068188934066520804508797585519865360330959977155421019523901997490027708960664171621664440946402420238669349479420895004442083832572909733420364013741467967549841421399712095067237395531832603350879374191741165269010486342123304512326095074222550709615836945421791621387797947462006474247364154342544477942953117338069331996049006164957200793240003379738046723597757778095242673971229364560292344954026438214283752238192865830212590807725731586054480767721113470325703565565865157783843168344196748246331164814018021108350975366821631378939716338090154850032099598939529098223930881480704451595482378203595009686515487203136940199157916893417039747742707533334726066711771327155980192141805979455580977429148442815563986596506753114114424064398249278103635697734607370377854198025479831954190030540717851496772971556481091624136308739174253145082348597110177624697954837461203127215167181539954785607410936028338594277320445600072753402237879929339524560579587069404834527960279952035218194281865059160325267902295700463575172278201417572835556594963593392590102051141163577005766198266332058520423376973791168623174782142819627273628032318302918957951628735956202230293745489476100120407340900644896478511035218410940600324047583783007870985454102590741885162604047871797867286715010163220580213593057170313587646349231398563750629252997275674640644247857601442292844794650172125540079969352946334724418056299043151566707317091688205100874938030285472674393259150028769620948775361957138179066337309868961868218766527753988529980192845200263408172976061257755693685021535009274752635838689465731717449831307955646600817181932534614855042478401890442190395618511952843850233866590116859237079912208379631845021847950836623999135588112634831286379143235276373981606752856408616139486959103275875988218684736428713806758680451230104035890552150877199921601073926746243554507579299622044981170763707967179054998704629024651478975917732163378317977921401556580548889934575244872944022127455154611538337536558939785039435637538477762557666661797206196987112453235401879194407177176960974127962727750541155325608328875221515057906629241570267169503030280457364975324422196621278178676054216063858196413466393623210869337926712252397824448273617886842962002785328426946524556460399705091458148632888189447208468833389354981210113989031800944660924156632518920427007144585158596179651732668814913508557035907789536233351595937800071053783803016834685969703008777825896596135524266838550015641706269415365995369004544053818102186352888367200343294292524527915558592193180973481916620936649397406342889709964416242853582199801060087357450289504659295702417427365796230573695340689325477686929690095788967220738456271063693193162717730920900346027352088767238477672531084904539063708330650377081620404377861017611176163421381459338787020709536543658777801369607186754137471555958503333454187307177597975777093394027187454752302716394232108652906959821579102632765168650023990758901126769746893191427073155988847396717858415611237592759903428930796735868593947816810636557843917167257368281951250286053058947574484125734507686177073832377257183304629503752686347774893012227045534566801887726220183265557403517021813612732944187286414898261465463915475322624545735034665153394032186570697894213254782271086876183903119573411585169023607819557228452883971021733275865247503483173307293301157920393166505617923734659469148530840482465676869808943230599741746413606881988432744771525468436567168960877254234064117039004567792536481029927371679800841716702198981493286315092412784481347544657080188460372152786008750821419243643572028610225173525745436192145313787232466625965024196513956749764606769787356144222684319209717197714660053835164928151066950267402254548727005166083491660582107330547181920756731408330425999851155574486700618140695316795740487122792470596645977043940258186462335466507833331237380821659821747805463667413258265142332054831022173622772588186401167558445862955850504703060215239552277508221702678067087874922778501649265742353673271283923776532475800059614559170996549023904966008686077041920585883825802125721432338455146736190828105435875169447312628683648173163783859160560994541394977713503859913614671982137357471794744004160560977973627392421918708521499349630318520771285503932792140649713530822670076703387432936680883363711921582389703222988109828773229108564155554277058076904864090091023028121565004978937310180853100915751517856466593915341932076338162954123891738059329723771922938292737314856098667126516245050916165939996963506329162595913777997180185386064447568820648271819527459228479203438660686634723558176551654271489663335900340977531720514803291096474036562856430941180934470410929427914536451773934019063866699459075394232951482486782377953454378669121808737881446566730075189193458780781222230845035381861882070881286980597592220026442709481997228055746931696014809293057716245942432988211574095361484623361407378490708224267064906381017667877760065585571467459300105244555132661441788464592570354830377563945154235391423509857489848570580873569604089108747809754590294013760338382549046348214068727539470835636529503752866142033992298504228407381698451219543247850281102749144972511688635057843045086947802533245429681836563602218828151038267085025993359665743410024880414196915487196710859240082966641118595597633242085213906019749682701642772533791946221335504686877311591013080138529638352558710224426424620639082681439370547041036651722135528617063837364616121649951253617430801648460393423051697798259194377544748360742019567437739061179100085375159488031135755290062704173000455075184656662207350319972713238887538938227131535005001308513521790076824004739319878568754320652835834928266627496823297298663047957329558256423920588068004796496151670914253107936036410638466548125501498191005339856970909003225573850003679929357760705568505790973478077172655072408797732116428467000369112857142577931075575295432580270575112677883612945474360288768732519831403934928183072947116992015931039747815336929088225009780346721825005915269108821328004725648591569046663809572333852735432440843367253641709667008967981988223137851909747578880064665852690623490597053078744433154670866141276944367724238398240816472490733235504959199900093688426756476747943589304029501235370299671768102626611490532542751138700099738972244063083234169432238577994594724526454043738956479598544748214174015558815407922947641418573110039468467261037853197017243920683921163418933780585238071837049675061290698044812904330766514999162070060687652492962420489505036718604767238682868128718019742706184542838518050184177229923532452658403299391895692157123852796352843656510094071822235948904726655721559675296580159147675858093682086608015383458928790935364994040373948754275859158431854256332638073555746389612538071384072634435777432403702497724185128830458407208855949105581296635272844047005924992916615316888240351238761583245638135501386763690411187847867029476870370216437951245568079490308260161128074166501314329843336275385419096321225816324824381025497361730106036764029117158818885047419685214148049879086571324568933373975582832097108824103201306071149700571972563449977953636937372746319785586967111708341752612426292395183622754288942344507631885747779315726464102688653176672394983588594899875057758753589021263938192080902897078789601488719969524117727768042481954324257003033891166746497612773135449893287559464953927756095526672917677211499966806024381544043246944336096394281743477705593416019505873138752828124715879557486465259926352387537178709054287721560077161381397862646108225451501290310729648297716508247472469455900439233677479179393270724749309414742206030789145178165523176683125694263886645803060368115132340213010456723327063846069480427955054869937198895712776513136387181456245144332860450467789644831816105121433878268180859069712462459020340768124093717714491831670086482303578422840205175989759666141787656834226573223264878391996306521579178983963762889983218937273424336137276279917659136168418953217658347576517357739884380564843010693353570540613869490841675074169860644655218288997634477151028549822499951043114040918325934720124420453387922534990574066202273329974566684451677539196252962019422869788601370642802575273353149729620529680513222518255159577672775631021518599831607477231734523151056470243576304767180024224595312570968486278816238806237942540975575294417664012952295517374057557857713757664939108991219856897928835794952228168189250520749811284758606857902182519510662281762028363039067877252974544413637436846994653507459519570939957750719985281354528162144557034472704395746382328683762492764230420607674694238009943534153085717556494787322171918981144005351704259310348123709130263417544184750668676802796002766384937227408626400284309573121154065776815036320766120178324772819413527878838543484430176805043476548192648098092910718652454266069317358497354364404963663717885162707508009212366419401709572082531922736877722798838144958757288876348560177364401921501388727982689165999829418489157448268265092226993768208146141017755412006786457299191682705172338485699802421852649597307099322212822913172136167288089564005319174605733545934099973627520094135466463684085861737336024064144825547797183605981018474820871578931940176387775976935440361732352389359499834405416186997467535349961446470643935760244242180140169877026731510460774475143047390515706234929280348583683442756277309410017200380854048209523959137060725982285310906569280882487985690554240917574764683467380667886636878979562416778958795491111873317692098520524597514304455256868028848983812600152390871422568965014791150091462587185722973413172534221964708902635075803061645093006843119718026815291400130176711814531897933087827040984279694657309395362888200738453151701234735397452224280821333079287515771073264436682873865288324647719102379780329170026190597861246068037508694528712002133481552849912786638664931884171702338112778639421210274851838751656960116817568797235401639642199301455367867092149253599694663624881037557872052264427444829626094464707178264242852549225258245483109939781890596537359504494639797339652763547162998415215500160066233904947491071063258772150688328191782877022185605969215008331034684237635336381949438893861941075950879506831550835108740290180873734464949364696056815294359785670198926783224288005026652740489281797581484564542744387507318779358995276572875745061691676915341639382355306257627141489155915554724623996608569654327941516666926302305437237395791851077220974105298668576382150799178800426286124026039084424242554044256099680971570243555228220118033235824643643323225652359752161122719103977846632186258742023733962719439123550546030254895811601682692584497323002225251470725380959902409916941077054712158371839968738309982630291004378347915182871441687273691294665735890770648406857094097072055696080228660636560390262206119108862752102235283779194723865357704075646470914264086144760145560086469206812418284687981279320460085207570704842814283454798168637759116519974259890793000346035981805710387047266684820301661645412604386768904844568308293896911981153427619086289124020672062728655838567891599896648179893185209126018709458017266540822302923377848602322109853888050554770033450799239476998066549378242268524194465671668175461116566376697059285970740408619366492515843643866639244727293279634349342025452830808593212881835749330513770044840526565807517761314503110769363189366898049844425843472448038850349298772072924011690041370831068418334065101237090901556711637690166374592409646124457434170288869753236624621249602076975438363231751301053527562297025361172176454251603462610535440308920379592330497658692714705500329182984462554767034926040258711189505052291423926843742860514993892208323191234388098841588033763292535357170367071487353570152123820833847907550852987344403244618703935842123034756894884838487226278183189660472980158119342703393495664465479778923685323481074246379761105804694301364291980255177866988142164074965944414185570599645183729807761830273525673532427028049447412885260217699925987318418598501933576163920455588702619062796463037838637465629920981048292928829836367765127294398927505328475903620767364068174541406213190663275478583094209603801830090750244606888614219686655873929462885649039330295303641634355335604133353535778467889819543373724683304999881115816986024966048148915300763157814604852459957915693123706122930375005710753366265999640990429331200470216660025205694563479602951103281623405122534772347125015232918745724687425150238922335792805586804936584811522045600965634081622373294247102307001790037313412520213414684580544605537630806937215311111220734379951772978746090126353518186118822890857569962822286742508612162689960884062277448070206724798205680725774371646001603192584813117068914786781020849802573282428776197706812739099377118363866390142099452686899685512647625065412874726368357698784625694399372530667449342769665480334103439521292321988823007243530568288472044859129428162333813368209502514148482902738421443037641467705379246971211012156231662426088979053966720482639754587656369633066340303048411615682303054549992743043667257355218916386321943032322246409411326888670706892575455967338032548277506133103248913384141344940341796793824899524588231880298392658669447019157298782256320282232861281832541819144054858970007219719153152596096769319045508839733505337298906915240129846200308611528508762725485359560740244758531189785637956554863180559031138387487742384675735361298811985218038049135647486305807359056263340594912346227601457896058337201047424499722064459552648181788204362609414701024887071106500234092576493728866368182984919036553358327860756009052029549390736962408432153535021360409855653882559648595738349630639356686649998211342332427592038685547069997997529735701969008004391788249939714546241160544541647029516829872236431938698489869071274918172678123121399948446024926581185381508421415919259526925301083239691523141305420673772576208895519548622375984921207864599138668072939481713179969158540502551963433517110473340316176251534068015533230605052992981433486103969598228091898098085018482346045661021903034977957387417171493012572854495759038824231525961325013773738645975465063653587074030013935846451717340711172627046177611749621943766410177499315298304309384925413535745954228644207530259103952650885000134826157695580712303048564248894071730949278532980072091566649453326467253867652597325004490933979040298035332885103248806734889599370455595002512324988264145487475133048626481980615231098455916450361989249142973498806207484673297703446330647085592783768757258423481821744081267947409179667449377057891998608013511732315224429106156170473098972229249340817161434435428538561577303020769431863114014432495783525930723136401165591762842588978978006560242089391234227529727265809423446902672215582597650912284496881912475114695005662643098351025669783284917748474994885151109288271153763523413766955957993855199517216202589302174728855778708997327886615418006849677134480097886482556059991142067995896722501053278841909080469469547303068353074881897605788928080907206970453391252415414958217283130503491675454249283543019610730940043119112823948809360587834976835675599079252438630602170120810807099850269323922911637676337222354645520355521143510929259840383808078847581329178426075981176370366979253613262626541222644137246587289796724877841206182718994490536369226562832287513844049725660390102989305607454288769053425240907055290566698155063461773295466430279082970502139240707738156127098574984872314320198267365736761435207870173180925767254480505921965606087417107852801178161066686016827258684224591942424456486356743190161306461480507443131060012228374701067076611649123184799736867729641342543333963992624914078658645846055949031336568760064255239342116078410785873115443817579727583316546223924682389556554014030356532986363544541251226478995902039323905581949304307278691609896806163018734935272209253509594777026900591369337116078252405639927963202487729592431412997995439931353979960380554657445049347031615946146329809878205745244815386668117705909699128714972278355030571408498094153736412745778856719563989350671581801245969712545956494496501263462105091415905500218455160673123306805452836337966258322279360723852545464888046428032480779857927366947698285137676405771841914107536424064628172061857290737357572454189394124260486926442781182833470406473169882025542902256861412551782649702699245505871236077463788460420749980060721043936930342369911155081253123059927446061874013789616545393904838850876323374434255714231545179347684600096158466891949251605558516678434310405928375185460990190641054540520716533315014464053196766016647802878093853226745512501001706566472905888979816329739621545583789605916325518089998300121894578145690976882449334751439997194656784971309944765870984560076520702270732922876870599295376219253023457671084727908606904391107501155702131909964003386433949511379890394886774188837028245092248450200505773507163926890769002096204549442341556599370869417024406435679488070453839668419356166150929178798074796680785911716408069099221291462543400589263690655664733231196922357103610161348423059300229417535771867521478992707412007208367506460899177985519178782251264291077804006806746672096688089195335550685545639222337625500739909525754882270217559637777875143516384236966171761973959255580892716892537641677011060841741689695360180854815343666996799243137352452047547284190244480149215030480412434003633514352739931167020266410079062093783621730679931484149711686138746676281098450145731059668762290071007056046851342036771242156045760188187646449851606775641216532979011298924483372697111355650704653296172132354164114292719606698963428043022422032124682215643336433372185691836129691672396614751880546377572306686257933632349975263666328956681901371287953901000823510952794027041851779809729505998751446959717053332081713316836190719403857458842192962864454868971210025167586103840921236386658429744980008175573610985230600760265853025397974391197800462855421640728640998381321327919598681214527519970563467074648164108734215395599711773809495872637714813086117266511788118104704942155993169961452067950025800185384386717440791380147909591323178576602827420586321219947480705940259636994276052746395445303774287535610173349357361437154120258108950490055959262794851380567165348775297834920634735086421424274269399370406112506491434273300206682580788804282202495518828893205154079414283898074715997988423756675010969376869401184180592696942925545575708545644564212895310941212759318920436737558581638192853691334921307996821231782679611877372575185963340689132260996078903389227262010581910531100930448798154483839267913066528891506619220374006251980020995178815345146615765621004762205124486430336649777116777220318816329407949375410673120275446448230373649812756837216726863328511309150548185722147125890858048458709756391013354131426109440746272834157922455869369394240964114202261255970126464983022651885369211462286371677967012376150704919828271978443437730948953775810027102794274262138864700626339009714646551257493623574694996914295520578541318201285041384906154834500354340202681099198216313024855502713419892392568741394801476385756827945317269460954133774542198207843687635430847173227083651980292723274891307938982226914273761560141602711509001503482849697548812796230777904541926747215530155638256125749624773090596719741142219023491389868184800421709440245498168948393465874613908847781832680748085628690763548261237153976508019484994056789016021389101972624398904482918024913680840181445542228730916025259068560203131484188034924897891052538440065946227949369428829240791437579760793675250196002704570934033891937834234038434277523550951766636388989389093733440498920458973909160732061279523039047670612397199294186012962800520648573362342336060179366447122732814877920562252527662193764916178580280828997066320384121085467435314468586240638162477637259104076767392212685763918802544036375523703101826721258623440377029660024421315045679762675069536345470213464760240457445989661927342095953310506824373507507018117847033056626876303991503721724420017369047132125197821946157916935432416190313584477235324893712770888810795468807997559246385845212026067520844695879123598332314989131685316062836444124614422318656292358571132208857443663015836577968790022117382918814546794206543174802649235210923746911084940069091916476799465388289695167522242285852813349475789214079457266449708160526764767329113621419539810915144267200037886701481505764984057965666215170822825703598150374873923599842373766141359909404508801072848603190356178657964306214252384643800474195731820888657801501663609561796040955085794643269909777813917035663985874592831704593604193453552582476005745214349907261132186537521120253279849422925610237959270088654342328089385401153471507793870658995659126107161901798552530628183737289737582745443823411928980265669147663156523053103111626137354953786582288836450441113239207939749346783416354796705706509620113641170750926746308527297985500609764019903911840932804089551567581347060769240056917391618836058186772549893561938031040268549602913060173038506462555063517845912980326187064881072994438015482681732163006677165162390053480457013747612132890619643516856541020746773166013940691685305785429490582834689029509029877494189911647997171739214741294746463006157206465792924811890249591266561420431489252891449377498598029999025536092133643513157145954248402686316293016398487524379864444783565615357925535867127526203074706498820336082102994453207433366633846987502627714849417716875016952400402741601349908323489698895885515470196845369388733183346833514422950632505380116353376798364355741453691128849212385249292240365804685305701698759761191272790672759970951178391647414273464038748873866315524509910634436504333412295995077110215518643749243612044920515837075043324647015672587330794523213980810521362168826009600376044300238865215955235572892304323648442078165122436088470486655665911414738211338859526334183374508368296769658577229104946129633614522172563582967695603031792711930439009590627209222712197016344103204619255933926340604728395229378722343942673349111438912815098775634532877834136187920940053128795331332577534679902670076001609764777511333937769419799134175428062187892822498820555130324794118699459231192909996387052242424261136055263924694374314733767669593867762692081553926799218098640111179408393903748421195922746458271012579887708534397895092092419048186950563033526411309422088491345342519573352728967893582655362212228936599561394861044127796982013193218881984269642601692542636181642042579351853617107181982671799041377713967560205593044705066436665376159039139277458370485767060363821883972996679246748240731214968641511067888554993160627912656809902477962582873583662553447156234521105783925709504565122823862756143365555950765288215801465633627238823047482700973310642861318733728800279523271330832933922421168810509558099723137626864026452378047209391626257455374077307191310123575066355287884347545938764430671509566331881716144827041722197885307512691945533155251033373812311055066486783261465612904985916186633233300735250848986238695755648824777425272493562585694789550809730650793346676087064075016324315824575506996231503517121643486670850828544585873531110123822576324123282852525061076741969762676130491038572616155306308380491853292965502136783101117330231118755677346861066874714091104428585708492631741543447992286044206448554259919706181483478459648222015537591893061163045014491636737745463581030741739583302412912489054204918700002897015394397700763988429438566399551301998555076807767686696931394137186224312354740312041797094152602181190004639862471501135654289280149641693458825768700728411263357512604622696159795863206312632515323513435372407564274826827515783647413406218666990000044827085814474125833450762785554566288540659612594850137307059431408793573712103334583034153195121314729745671702902546546737367341596486974988140306342801667354554511346475097972856424036432403704942110249426623371112491842203012293506347242976892354956418840732847086843445849371817724645506816856127310135377027756568149664770236376998774087931925052020521272692324855182323528822764556364696986628387288644338990515771209681349795890025742908171209561750583206521052582804089188793016214697977781334336562933777213998036437318787399403596357185259451733926065621248374249214709423112313887833392471034648620635377660610242765713922764553751481319615176307591594178877076524849986504044382164165926813392089676817817868650705445707126595740324469744249580835783973847644718862000292419123602976110779816983982629738682393003565519570421026710944320446153017914891699030133300924942463559093442640852666170790238817850153195139150033526874028589523216102574540856996118715667574203254902243235045509320002166306993686346058586890772614734175949915880538019166071605785906238321972836801272611889210749308197478458725865798778877191865877395621847360686482988552710221518349919402929190900198115702400057249646572638977790957121797871936624883504537299816016248497317237879353926311863389130424221171773781945096099322834240427436003393427164017209853797963113727791967399224639181660644031186085207969318880127581280999076807953968364940803668803248648814739679116299300754345755893511502253862420699664321691987657949033017045177815305073009444098534848523874362859117578870886227279335473219866708109147147083792095887869071281962591781040107495815739254066225237395882475507683275441067840040828745170388668159345062524483153875431322485353276588309219060028332647902804094423527350628496021608451100526445318317237768663438643010608932047572010110910391458895351796015338879537004583198966119189092595285293227886029844647989876092400112774948436332642193879023315119795394342840515814508596807240526570107194033417279874233777344526613714096023374621423457220653621985806255818421229964295075209109545811599940501487259382528980887848279689786599204614304020766454936172280979536954954140843726121580049864257370481643313764321318184892211255185016534304270677137404477206259687086581143424930261321696646634885549595161020944441779035698906119332856616818046000917477280977572737713472800733394147323869793080112618935244729314858428478092618308058343000436554789816178386054216315434021870473458469617657103401746062123660456433411767156119852546250013775712378969879795243757696678449862077117088026549922075348036746122753896048625663941862447791224795847619242819828056641446362378988777420778944565722232207859081696293003488559240068060975439876833642450257094619365464710360542790665054838239074119530265981479719713008356083414998711603131190665297650522746442162585297209045267606761998381194486676248911213146872540250772815371478274782339075080902725413039612851560223584380296959537266414986569199370216822920130733460918476879117363858779265722956922234637136706063730604088474080056052300655036100155331364785951870128152669971079649728855238140817020486287647318363952044552116265445732057319472106371680343622029758855587180723782147932630146136627702196142884364958798979098009933484843123548553339835306130707935571700688385585015421443056154350006685734046534745221366375518543327217382937258459817124904883019920509663887766071982096176900999699289269641667447676386576562645614789664040738247390796409244846854132552856986851476754750289887610566236706352499224547740845333372220787010380772152454220100899901600925458087986994793226377646572670805444460130560979971239921997672776069670399524934746994875830625242476443015250390757930765597768136193026897834487484711463809824172210274758886900937227192250547818415524262730188822719081271651476044962410344414483336285738006015509825982433336344027383632247308449386153510319255431107605752686609671767994810555377404993814289303926040683717098155188391139421604112629998761013768273058063247025359578382987736713075512632070574745385719587823685558047515313515052061440890311571089121835095961278370502536084511776235437688247609520302048395421879147819152991909531068770888688099090564221359928231861616479374587403136876467350340214552720462768463098859706090917604637810937169974821984228091020059211618976816024653215641617353922134942148766520758201688756403247023871981047143448236006487639185548363619978621202504470362105950927798210641673886585219283488594185288200544939269747429289379877035404609401618344886896216184604176761465586684706466476383954361838417351593895735467397894321770100056931942588936836958629516179077188738772585145440997759328027871201059535828366342250405069223365823996362008714552146738555812514018831742537299528289375950604927600481889880715465120605207752193014350606332689409000323004949381080175778022056822444504396128230112170957732002722538806232801171454539829448436007551028871081514261364108616490901069277118523365655223533748014501432435663037271294116592892500916926416614047761434145604154716083338988466005380975970708531093704152976649734643719722565907373014802092599127730647248445048194980997782761136718700992932146907148057053580766085382760422273104896172693799982006894671468647530978933303279026209420428065373132039022716978083841861848481678371542932353961803617610339733959722041066043012719874606288782279535114180149725028832224161638968426346187439964405303862373656206444415767689224286210272655988685978723507887602171420652934500260599391146573998568167505671228502510858790381476875456213815525511171016747579928381359541986114067667400052063338598669454144241623625038496392275372865878696184411205107364368602602167466078297416586873145436549092492024916202992112319556424391434843861790703004260490283886379713721694303916568507937091997845371377217699819083543747334422926811176144520813439077418212718055189565019388330988766358399353397790088665749708902875041198975695876047133594214763841524508938601945048336971413195210199320004300542260017073110915001935908182934510483041283918256520921490188428642781175901749720038680858215424298540985391521585452258052987879004500999142879067394136998890909905932551033679384444531733159174740791991986322462916878973075147003435741512888105018085412383496572540213980551645338945156210159591107333960206130839791457235409776638341490198178956568994491909582184752666745011954452567318706063905125126009904375169188644227956769244977046814534591628954172795450948817274001524833283508840050885942706214122603662710015942033950694216473130950251901401595997930817793242084191849247985863716461939407311539120832257815696409147758444676568770372540069785975670095894543904825852877775492268727057178838531713113101823111918320076794676669109525003210010485959000010190570769427013486347254587917517732555065578541133636110835650050717138422690525581323326948585813194169312762848082749180378700554208272053323795915343832829694711273708060321193528336502215853342020072795641164889013557474225858067767934391413361226963927956025281928080874549563139648338707698306579221512466511905563770137235753152934443080494718371320831704419138555016428044991214358134547822911793454574943380545334466085283612213838248238478932479401303640491595923646135606964082326261393432860627931117188742424235399378132837402830790409176449180320207677660090628172926610105643782976311291850095951294414852357241982077287255839868610568631552944905440479586166563671046369415029181353733290760404012222414295489519658913669904466425502323750908139320218631750332920878382710578390530541492959097632273625512782245458492772655118693876348924468274165890624487632342684472702582421711833536736880041348908764167872332281417628394447035528079002165776470655599389728264256797587895787944991447106671829395769253480974466975376064783520813773381942516780170564477315576066504749239509731288730663226470266156362088068781070253417013139401504176594668927692643253707649134985490438747946549575731903369734883360833631144775087636754313549727009175970120090608089472586744219991718233206663069190343093944717489535917723713733140854794384635695718135668184137851918664615012076382374382874875814285093857213116305774466513267590850812540050258042773378846831781525813001548727287828616765319807365251872910610096614526074597432794275718175011139172600137891557633464448259230608785050513743192046795688418521710844651615815271328055781925304559583078898334289135613581533633469697962071065060964926199982636527801153164141642957785175190901070334382230830355087977314420170007489972736885395230403999980742717070874177196699755155196895037696609979683309783605898564987649538781334252906525704641578555920527159790187654154775387860058374550498939232710666755653219942281377582495809525692439750465112193928842734659574699722243723575014637480550044062733985711658227764331768977908411818554964629221959204784201170252681029373415701465060920763709377421674177730936540439658388747022445199205923765639255520288148110265346507386445348105880038140119164108465858695287901484638452596904910420503399995963411954115738197851221498123250112638717476895887335188502754644673524724218102721641843346117832787595481620023393242328882228984754032879520134286668395864100518525172336779071759993982873811206950736526138885395092482993324033284561761599736439351975529946937470228942054259260884131893867919086423342038665982754911820864450352955363927036055586705742666151072625513086053471101610437512983159846624098424040927412120917389981964697464722015797325206419760331265283195266221518597086608143326564257511272585005437331948986008911390840689287268989927762682995736050778549779058377922063096563623917360381354790605480535217865077849488732769496632739962586133165505347419300001862155608107149341019914572455208623011364715587249975524998969134690611191706696782118720897158755990824114724303143568327567125370376308114749997197388015715563157375906213740052540549695219765352219790267877137119891043092642358391437800283213520574368138881775815644483836630706473285003283006867080850357311505379912391345930539438185924909278499211803518770792397687555050807105670312209352852625581427491750368118529073290170271888625743964207444991729496431497744724025932295566778433232097872622799474395049455296916359155812426334372998290273261927727137671012468934752089400682600276872346257270626086454098451413560323314850423900414009367374852259461987933804538076834452313189722652372457715703214428025797888845733327080457245296613486594075850193612493518588173264280333200882501729744805514768757607672820363130435751448677818013505066848700160494860353689411214910649383259673093157918631468920372054421971074240858722374192922999937051995310795029373877488427720114219163829594516827115586481743997755878709770153792953424283434998613715774662265283741034461462175088522319547246803084411864698455062940004333540967069275394098670790208608242194213913059000009649064187326558690870015347218350205553485311033625431540618443454352774104791128746623453303061863092041072567073919631085522047835170694749498046883331732882429990733560786479561433992505142907857987151785738437868545804497454958591620895518520383337337327600804135596902540566108147567883019334498653516477069400869916838500321853439474968112778750092870506941807177225626811062911132828331696252856621019430790669453326422072795035437438444168626680935243514260840584234954580922639340851950165869581543733395932130188854626398979501903073601551897025736024044272226057036173687917632163789856720287023706420375848180377261092302850664701408120114490557381009881847277884893330131548204253256805240477179228309009790880189055951258707792826795817513081179881286721838707741256126812392242755986865659651467254924802174129091925463475988603912600231250666167408469930702424425152300706679185003002202294392748317669501349271774064408144149274425481147204325063079195087505307251109493537532083398652738170155606339394589140635488007153660925222737424531402151717068102029089961847494821310367430890834936763846887454489136669488122281574423216933134957574686840460149567903430481715215050954540079465417426245800667192803198181887194368731199386292585124755162602099704886164652229075400851300612820942346110999192016290414542450720719613926092659585539992017306398098367960984892146858628317633605564527058095616060180368591201269932825087353866133447883093920274084296213369774428698246549538084752713476269318036747689905183268435335642858329945078403354993059391506939046410482481734221420041016256111567277430977392655132056670648800081740831649345902989454872616492892426030283203026820452971255511215892910355618704615716220443517082055773769394478083354675514606822603770880017028366415086704833763202260308782249358991794372603978383993269413460750655782432121767236791192568283833277623365107415554754564111134530272213894821225845098400767192152936836636665583012899330964389979061795647333792959156168859647354722197639503561020400886043360763802223383347137345967597140719743831017963198829547993819548393181848161106242336326189843647003431722185151785991429861867946399440148802659139810033823411431791000063375505119170397516462184021484407083335552745711186045677604886392666072021480700975130593837242669790608408359302608552331644875850765452104115742439750611578176690325257180122340202204487899496134003254564677285262708940387366899258346878643373934242272247121804228385601453561963485948263525420179534453230348429200651623620318205328469443758480099278547862568908762630135872654498839531532343400302217455003999778062439998599621695738269429638147699186494375071016319508466963787712714151044118871778507318631105783191436894469926281338202946380586450125796855173449648101544089730410199514230109545586463965316194734039952090733667109485000316324412520501861299292259234836559248478309574348402796542161436830064520477928247803814130424317368651960439013488418053628217370849506535562370705516546722131568517294305219989980202644361477969836690785891076989932032447248175211529098652209102038015424392480977301772631931338403820998244805513935629669861709096006234265328029193645978860585741917083892582755998406210166862383082322478782381324548068450979541022963346855219776187877800925360014606048889328279042517855774789061885288572990001390670444359520998945486557901219537367412157886475584268670973738766725240271387976374064444081668265523722663358111528853234624342397084451678927392552425430455749717455623144963832037165834544828711963082957661177203292796546135114724737481796564440232605144115179438227053331927629809945041793510888369812178252622453169119479269728283291175387665669403376879595293405858521841281359829115347644841365170886295325030163039039977818340101760509199425866525502777996325147810174115523252405889559196372286605394669047553299534301422731606179496973513888755865100516988294667646448244947971606327366306676851510779219786204323585081172758290767890041691978281798126087356264925553689800512863327906237112312153333842067235060533035483958615531290054290761003373687041783106198511160445754931145104675352986163275845513830900254220697033407253782319735177406360625001168495289609848052728745349058294097860625839330370845128553702104851842898174042552207434271854676402542538737734638699374997973712675479769165310648449634524246579784409020673039259183732438115251642721029118106145255028905125307097603680227522993255313586583936489852906660119592994084999804651884066418394208870280047391823914993571403188725539831420366872173522672071441727224381110763799360126252691205294371004420187780411895057866588355243320517685948536833184214616040636242598315600497021462064511523467659568945872397553363927819385441775736612833927214825429299603711727322975471514891380747105692101484110363890646903662427537122310337927835823335227062339450722238432477187443402105549803096690906857717572310023716643997886574510307976935286450380048423817750632540613909193328489712068618356635688714468143099782279326169137344769578350160286199375841652260933756921908020097193735182245754284913601519678429740301234013011886845184377001613325947971996524473404560897892932415982172641056816445442658574826866230551948330717824132104632931782422099825105253561118715514722250600516940433829609315811449669049786848110095813305323474115984753097018053110967318596538661569321389559621000741876532018853516154831817142435938119127154322081663730242930700924805229029890203054469833757449869775500201905251468706164127445295846430825210488214339519568364782085455415756098574002953547458936403388334726303234579742087576172193416296101589407430036858218283556206469557965162315954944750667709191975703832143893795799417514659785465467801437593031489362778629906532787648472942301557663884702855808827151749312156574184234452027307405874780246591588350705819724112235903094896578258044954223663095533965626697460586366833547872054053675210029626105174319542695477541703942737358475557173127184264362890673606436457133530224670953992607455883088750671006207793106182851238460811915300702496849826735249824747970372191945649708455563721386437507217483200708996914632791441145963802509480035588105608291794485281374257030348998407607036346958545880474964416846465004608979353892741863244673820817977686293918595907395550071724980772266858559748553625670492466543813358460175144114798384159025698111892163879428803971744732286998418450380794965221365618931852792619730807217615164711842998061962118511752302477821968071879451264130133495937770078137233885110282340333189347567465432955796470009239920034363940209659648412465707413372590625838643654169370631481256447342432777041974510475441821728748026983054176161699494069688953931067838740811524829030022190194187357551420914501180736041045748857553887655370724013668747740448296266723325449235641558673260827915812459517232983906602415404732862576375303278558292688422064926846844302631011545021351885994738569726896076448668127389712949780297709806672416367654074227502017196409170334361961134836291721993428265318558103325679545484494546837549721382410734797606750190726946788319469423226331796892250179721675057943468745742600890985843619719653551735002046623704811329984596457609122591671751803227739908579140911530695875066413103759935754604247533623961271952164261728039787412823528202382013613129284560469082931639530977590459527634508110157271672889014133554660252183950067150530390100022762257723704554269669693627638499898300795353583812881573785336780174379780787498966128972591197825109641194183740989587641651633725094591192635732323606481703089142914002906637961132771914218119239975116017207543455901583260004000090292441683755740847194815778271875819955866391115902812261474855146580632117783507330666524200313009690679288526359316942956766883400241975313088687244738394221261753917700309603247448363267812603349964569913396285478639134280511251118590712881267208760172367380177137061015870595984932497947546057462737932071126396733535710362372240374425999820892210427838376539182992469576896433930748931093628161094240428603334354078231652508633631247396037899269378496233385386288091665058517796613176173913056457419730522907334061498659878794602679371887019394416507246148702749172373143196284022195234149910079810660733059518552255933194394230194889229561675686774249801275381236001229987303964356630643594115321285334836175672661835374864787993558915359121940593825557350940048669182260641839906979836488602350172500919876342664968401977276206499027752128961012048238651667806924524867300429900071065423579981392662076248881000568246020860613162686573457266333060132733480976892265698435243198538599102899253230130135587892478473602562181117392323408570946618347794365529907881967605583564909190877047675337263565342537789428015586678655366851096488005697148126264536954565727685192519885024936605344067317775561752243484485775659077768950413552141117859150391304552406747072960652269472990717515478489383261764486961014630424110850841437919121637889617844688236079637796489709638927913113832974999844077766721978557863968463733506216199856667030509276997003032536901525047813731955693630772911722689089051762879664422837530413435054227954351112320330187279943161700818262111792223095368453169377536124406123228751946108695609656361641486648746682134276488091687896300880364241273243109354472472445590583424639275123780305885735922731657829748834219573687305029200506628413759745136618896745639292703173784179417027923789703695947789342821673266667723454506384504024290350872113310210922321723689995503660674219495512897105634708731988801603410456315813692553670052109498055228821175441595901444426584515832727786845887549324491750655098797617976008559916448475466914038175077141224458427556580780076168864810477863009651798753520941760164776581265031960765963268803810451405583606725874963833536174040208514385236976097179188895202398870243068193850881794364208683335144083775106692053682993788880569363336292100505110656190132837414671810354395253789245584608974412565179454311097759116659077158991650619566008812215351206958018121772343667378541635713795109853593706953702710346490893350373140981398445667495986781785579693894890664743844922716896292460162072309573326708448999716285454559351595489875687056850073175899964115973545064190777394201564906669751351311712475521739481089981574246450863965946793758366731716110073931603029513611615709134663881905443539995030197129518762407901949665425890736130136369558675636526690986076097348491042849454683083797515982563285939915113904591121254574382381888729491460911008890844251975420479208846420004498779807180433722239720197282247158567976946296877528448406000482010878767708797784211129956592616797120096250692841746139331152235920704645698211816964270140385774535637636444791402152582348094461734881890952411975732870394645277465081687081084720546624742112554966770763224771408850360801537789339777252929750725929506542723977709661628133098727411166657126694471389829585244853563315290228775776322914047491939975130388699478020638452743596153236061628369883340747026118870783017983591884030122851509253893963303443889953448593682141032011975418416128579561882159399715579284480935215791382805352847319548253396535025084930421892316962900763920812016201860091563692042408281601878073069502656206835235648465560328542512686704480376422375469317432907787725035348915379093093668793185194016552283732231380682023515535399234173151887513219635779184613342070554079024839823733111136730941070273194249592658380166505653407970319672404004406837694960196274697071561463215835752354483057240320598896824454625304655454311063034647921373331016518459599516956042985615324394769988137545611927840507892188674505960701289277440600752479963280728904326781184584230379716060489132227396336532744143306525144047763441086388277643981200775483675451749251488634987918502889115693320332000916501363472726979069981593662347352492610121112221240998709175229983839425948294449359753749013337004477511720507400993500364950618879028659091161938925350312592731218513010375229654777461621013035852060792545190635647824321896344977603682985810424669025786415835777001813525006629343009912621628418940133158676367559299115987269835236042565568168948875111597748140028987018687844316636936771786581668459701771630310891427451777890496265001852931588794385277260619184042360613992446769583195791404951256587876872265955880040068895893490497391595404952378455772099066761898584519446441293828703346061347261056646436555149140837691038863179651128390937456742834522472014991402315287053050633177838134060660684006109669657205573240404719034309088015861534085631298538934695804099985303741777277673831455510053839010668358397746549486895122918975970224661221286871355993192243587434813175977508920813121614221971274547160404250563923018590298824241651811447245207166074565606311411359881392247241018182741718007559232627820409377321303107619429620641508328621898812717246254329014990447477868455648102112701720145542998639928559460528224440099424905748291201410993476307319389147795259926038762138973174934017414212294029367201408157102854696888028535443328957085693189493808299289531227390867251070680860468470704558679321167783197795580819176836647024516667466081489173393696337296500223648873196063611109670952444140592609887391182548069310891504900640805363658088942753657518689199344925798810236789598176120905437437221862814628761821970852466315090841965495840970969257474298034252700461967303240411672311635612691644016692048197030351840512260340013727050138261218643971089476180651336371648038929347686984423895995939386765801261860850053344914823924644188426815130614900262599257314301169992797526834485551000702298110935081324340342727520254054519056288907556151543604374328424748045803101305690246707146520385963022442404262928509413892297524005643079140836288351708305882431629512280822678295222106826958492831855562161486979359054365571434500300879089069635475115001532521601954115666482169507315298772744413498842997520087032912663342934575045917209807614265467950907192563297026215353427934313450107130618035285321568449131290839834349295121844631736160503134068296738192385433741816632419613388760641368607687638841840632273544708509283604541714718642269959851481271422095188160839048923260252413822080989970748159807913437875680746963499459429423973853900296133859612483829572208802523950637775714797135640450173966040410482195289043180513402199001064884312853529618139346959321618674494318902810271080447555576816905332727542271099413823681409232954258211787463732307309145552830785287617839332530142647699620804869485564933806299445484797556927075531327586763243806080433379283702211745897838367456764447717170144416071335517784299617822364778214099038792940221797006709703008311789924678253441857789870899163374615627096775471213026453538729645667077572501048417123216884871757420518362870620016695996538186754522543268305286002155853259986420744101762219129443487805974118090988394962888886085497878348400550647418910290522181972927070779005844952935104908382313882365662810848473024473555768545346019800507516627398017861830112769766129975492722327623138870744210717877986632324377856892965592423959467831168123664727498622398601290895610141753274411543504706470638620740480558504655310796550583198622647894694076970964556296403717951030269065570927323130112243244959174946732591626588923049748809115414226721238299042631239593934207187555092953798764517282509017045196642068871675078264134308683923856125627297064364120698320524669158914008799268246365585377264830040366214646952544592724389127975936976679608644944193662460335824319995428751487230066689495931005825302155921475886828922107381625186829961412065045486452500355532311307739263424033225476864410923191837918805000059258687071097658944543241272251235981853208474532067157488660483790259372077985993820067229960420512344150767196917800307989051064166773216919522805320700817059207037153222245093543976330628397524619903741016353244806167466106620971953332197237836612156133948578773406740565766982961775627239130732201502226911321054966693160132094280143013812746980222048479697624592427591496469012026942096661633323503759184797110258499288050094651641826661589428304448931296933263858936112502658267163654178323625378459986196210499658959289389011274183931833758618453459410518949306140865781776637829528578043592877152500115562128063608544730286490553253915505324156556678135880716195932325819596081798592655854200878906942629673093101102056668969944205829146819344467304641584022964829503530136071158076992293365170743482942242666941507165554577319051340752090333480360059699346483681828167473980425778820047551311918681704776049274849066041130299572776178943540207940803653344483998057594251549300494210059441358999650150409827461950791314850640604669786211898318909114362700539346986580923516123484258822204819054463190085687743818134959621769431370818144470440017418000418262418880280810146041996657578271705808097016762154293698931453199427508607182084928993433136579320250000907337080543346618853890684323986062955923830028253445826715318516713772816545643792644121256053760234906139311162890288089938442354236510304731484560415429504212739933413293754481977751436597038763317670911238439255994453391924640518413720021927012874043061553166292884336968778904863086872322539093717025674891352570229134922485402611217124758888130527089958562015955906734490809125675820787361873745368853258379619307882950237652261789132463328914772354241378032412367790967169000176187672450373079615407536561726256370695965403228467002810916845482446355710650609579327515476677154763243364160377800379081110444672838425368004085879347544138754780082710668630287509032547770172160221387539475981755862048290016504931534113051077550096058188032646417387558945373433836323510496577022027994720255442879197193544304847949175517457662260603620518345950152040440003773938055829634202012812300383372436137880912596257148922584597708622672943022487545385892195679716822598991174377158251137688797939149806401364134797450203483515132432993707699924450948013946962328208278338290920982459542907024592468366554145938425964448845791578077258157887386154401010375694407496720152173973476061219383790210915631715778764265139736398678193573274457664841523415378827383703030327987468419123580269743584521787168684746364619508615314001196198740747648312038400007088198589537076657243175755735806945613527152635524144496842654516957013544125875754336929127899922282581858760478160556899890910087272564680814623487121831505643623999957269682787256018372532598221620315789544198256226097699987822667826559118125115347708274420084651550925166449679705136184864537087361018463241050353506983531187428230622189112868878368344440686939462441527561220247683769872314878137355270293113342491352025433588231324885106685570623627899137996808769765476292030661122064037477580588619930920346533011517703820356079379956020204593142271962834116933559849331781428436516495701304276368046013531862946417046373459551739216883153108089059585923577331684471087147124670717016458144252354434395849940676218079595273436491388038639760145783663491004992071972837252596697998783199109017797945910442055858260009885742943766634231336334883082577515061112314216028259538502099656841789575093695118327075875793412094125321610023816015647877007342244755298724844569641784795220699705627029365819828349023174566592186009282229995947484654851418285212799309876539890892858102944207935197987390300573625296623807249181990286723602579613878546567887908284427139908110137927936633046714499829489405128927641255408044417617038958583854017159827136697609822499240487416306352383250024357726015872713838588840522732829473770743337087842424935697252900423305514021442326398117259801292675964205042808903110988456253933897223855621141613526178436084714578060309883653351648365683864283858319502351621681431375082916191201199446242957102581053648202533352688972147515248842710267035909047669028895473278019056589140518980814542983072650143437318301107119587495306479891133706402515829270739715823698950385032322426790088380261637580301236066847312828721289489266686698184217076374930828040897728881534539148815469605590381837645047546412339080622559466699340572570062010491585649397254027709296192351079760768353119130463238473230413865853748891481190801281074310537912464311942220696572343406028106960326782786720507402762154038032300098605737738430007245725856586478545834945792383085313685476198993205615251035610889690655430940170784513340259370834728511688570173991101546634413643177884964846454590515056270231799917042911125907783825623643489635008677323091733804900143048258442671877881552056349090791681642796465969023705516131674674771295653517723374300020880411943180258387520749971588893131409909556517636791082616935321003314147272882563602723324630650660523079896511368189868781105924521923878092560106436634675182777984903402556224277576530447798229931076424139631019027049085976970229579283969204379786137118822528109299130929382730765471265907421857683357683353236012488984264617222484578428570774751119174137885126094173212770248680136543471037449683820092683462078027828246331109200396229145803695589706285438772011836165738335230756930861478649313278768620449814322175065932655569203172178864533731078921551999446158550172572140506665291136324327658412678670499483523479580158456000260985287793137702818907965364035373955046837833455242771722210643090895634400594805827035771552530760674507823262941477549233200881111508797187470839122567071998538620668205965007295822152487559103438627557145254642726768197944728733399046790137083825368596405298421032381669283033134360041788468658826203044427723658059519491198857835352012517926807087224450845537324868129530239980829347906600742670870363936394955868463045529414091727241462589171600999259155065040468455059716207524745631884255452047695313339713883351014395821423428752909689448124597683086008789619857656328487232149806428292303330668390511530623451462247139864809655761297502324794190727389961570303530337925282596784804121172946694124579089613831268729797565984897888657191783355743777603891623435379724527050686076879326238571707433310474194605360332591816114568017247888663746734626302514413869393754420534515690808804602254798707595380472271137778914372459764736452431944462529473459269754091382835587313041220118075436145087128465114616983118065071258807695475390620291178659473243934385149256396128047688542137758397010225337137450532553229750996436408998569421050305227947468571048053695152405349429377815712027250665882466333896023757073098950963758160906212004384457867333208271455754327923074603972848995125366008662044270530296950479468774707148360405690746951899163723982713606064285645537125929072733294948237888817784453534294307438896082572837195325330758879209763711845285958591520480171589805420783207640794040006071423556473828889559480846747202906636944469676439104756641066018435816780804325162023791340633272653893721313669636177358180493049965955469515874378754863731524510747165322286465599589540524809194887607706818193762761779105456081485320047713565413817014285128244476692209047341636232958134011945380095926109721109841458611793689100887017676740620163051131063030857128921305200535591229367731015202176656563298780610496604217595828813189938338509394530688567089460612708851112423664537846444482735081729164277649253005357433026188056449335235168237400530035125119043539031848413923375602745407696455608899207218038246132399756078571042743510937192444355930024439610551454721596584079645117017592728952967998077130162550531509761558485049084686159293030901885025842131970060195693164443386543547431735861878853538578698141634441666414556685521912769328829344281610315353633191271271519628645426511248062673739332961918682967013308894439755655759132489820596692843917883877227047184895845016725966345966251961366434841789619614008613156277942211568674544679252439299943195429712224678234324599901249585669382055106631960575103142746509018194870451747282158918700375210196879614111708822272697271977214463930819071907967969475071174456488643848994760628851977534271834522633442868627664062000082838112547237022768357389727613064489310015669510574570098633522577842119881595134625086675179667322433550056920427602912308699616955323086493049086707511843911248487779103899100173581606705799906885066836603402490616303100738728389812875368958464468927239502124534609101882166513915329660867128848672724156699256199793695389028769504546976849191207028969406694472908983786039190538213285069240889574787700629761593283693082549939203731971148646313401623322511830183542052472519048006978757018921664017870749591963237397786224361523015530809531869087513358160705290889747135946461666486895233465677962690314506225559080300889934380234488330773197360521684394180268371721642757249731888896486365382261769463286101563332492916652085861125210708780389992106440539216655829512640493476455145332398792955321540025062978826685332079467341430345781939434549740011323920512965891531448497476084094804529554403741552082160689326293548683320092802244898744853166046834371079999566337460348707497590799990885858234705551766200650754382881755941719696981151939107883757395453451103963905694678745141290192736392724814464989496973326086534176145214663013514858950092436296185777125590836444380320220016251812987183644206775694427618762354000285941411845675932725689373762455619578351561452818459423760347738955354917564404101984224157963679951846365457143411072322923811124186208325994466281142317643061704903776120554154346746760961244043116360779779630475464906569429627474376216291404729161745430574514305461403069076489078381766250936263259670650233756764738220587802290074653751237069976998746280839736626332866805690500169748209440329807436537447152927774538532905572610884525251524527539903509647213523685459358713393880866155686400501275604585500604557409437937229104389382651426986922570746754153514500791644657948944792719905459878747911109397659360511783937090258658294035858319414780769943524324690697844278161738329344458330494515805247392826295886755719069900471379880754549377269303222307349542210336133098400530238978696962682866604238462453488799591114583523880652745453779113098257583382936721387727414895213231572782558695723098955102401185106980496252280363498707809084308240409342568825617586013298363417217160342203827475289125140458001753658310514258535528332325391730960410707545967961996281637349771698260000259126346547752793625726148971989720921610248568375404460749336998227056496987878391509817517262695487186914144541003376714754242820167780218749141442594024706344701730895597754842268576283380646321613508983838567476414767864276440788452013383007185405534150259535156410808705984138906465210897382348303775089843526360405068269106043186826297412649627408067790712354837023918253938219105112789418672534837549784859895519633499954293497241218978279714005649737304398869053658608854989658422277739878433580911600580452049719448560409127824353900434957657907334705648691601971629450249976107970471407519935471530276366093531366394415746005389943035212602107850488077192121576103243223417408124058891496157326289020153018179385306459454355794865864799824913700147979336792099713501010102450691714026632426921380458886780887390694472360093599932543115376366350599437655665404733168356999972201777068402414268525312788867215806143798654636476835131599599548550718599467505926946251618751144807780856908540482996238457796558659518372710232386096848834696904350730935901874777436857737797856323626063071310379182082866834011618258545229990848934403270243227759100421101614249489335707990702336033634456344537100375331613131817777029334430636545089944724241630979079924252507594062473064782681496984668652775802046972809632133653375485137321804763167873303451665500543520030091646986891041225586457939770601243060153726520969784979437298796370565625117196196828544983345546745812277355970405584514535796512120441329969044554520199019198819364530643989687512067430670173092060008122891921004105890985929849944830884580661679843233565163154381561381616641575835948120674211770376680661256817264411261664990416828612078910123646354344188523883629136260093262046337906722140719564763129475405624288571114097019790656291596990795620367441323059267952921347132853452241288555475553060160287277134405582432626775733720320898474218053085727933486143072754044471860258860519229628987486490938069235697330255458648721504686474544130071138161687724778723595202016676961928568676548498380900092726268062176998117996249978221511659210714829614978186978963556313368038233595614684523815176548882480445850204565382321415903611676606054650802747713125430166055198528421831333786917639629603922263226387443746349959845704896906846806686401124250324702582825292442831929957159389448612121422248591897073965048202301117053384743695582653675617492550405105132597795000185764177821053351599782989960750662119205499436964438932892111467206419329957761738258492854713020743787865090636811973731682264274652178023015602212701896199184236871723137923889030385256241161731958284412699945697409609446708210203825560314385476941133186579635654246836848705209164206221449708099566636936283007403386977475631130052968310999384928225736004529836818264583584667882757748692408723445276317410855708404198802916664955294185952435967135625689323768396061144226472456236548353665157798410372839358388841883503496410143392838421034789754837001480738042657083413561975558564229860272025942484683285047109154004821469952681171119787785328586743988289918681061986120091440665892497413586044598235938213822281446870627695769161919551495895468520344220228873642982269223881285414851567477675886457086362975417895831316371217568848306829235114955908687621428985015911288091506341089370673685570343584113643485490339685632610224391967689425447391652177252224388168479697404552615754351944502586769645357530089131611833430624490764160797937044171331756685670879197210287185643761669782417933526224243532883680496388596587492273266760813975977950111598088035240201342973273476506982277636545817867155580641172818932054256982762138755075073876172429275095300885092726402170596337298297763004674135817507633566131664582641172324300629284601078738389620262911443969216333225461861677219521713524447351549705335530766000192607868994744862978183888338077694261175861760488703556122884389169840351418444445561794541492785068271570537346100971241699364610949544516790324646322750347989238327013219169226940133342124004521789894631098792025245902064164977450900889849516253429153829136049623390920532945139867108251702452399934091767841862639457842216296215870037259468192843261003021225057672861358219607358217050730847587769898523816241403350672439737704125241867554866975718466696388723618423913981583661817902730708667197682453723796904916136685423652366565655845546170584806280132082300352260440343229215837724702519042610601570579590595758619538276902852586736154112372809960363144058991333528442780289697532973794293898565722926723649074915835843624625164161555981825588118530018786649017399251417375316848494449135132212599127660016105725005294282949138609291210403325008104429105561656915170345552107502203620977877169649633645606326202770407641467925400976610136494188718263082624141067287597219363025949592155888732547232830829204734439257864569639199450612867779544434878198681094626148738509906771613412646686985731248159318186366579707895635708175906371690486739724760836711197591536388955069104325587088980998933715253042430005330299207831672561432426865411665551826682074102851318382690314324067532711247579287966125878018496759029011767763815603341012687255827511776525077701489570726325861160526885734181284147621964300691846270899317902037812049584601389857726519063215326492913620081052432459092026956910170683261134713156174612800323449960309552619916020814216564464300755895496273706760350371637959845097055465948610303871277276350609477540130472737238605937419023314816108518175499058298575057017324205745248090775902934236826608144298884308298477497734189040539106445100398789007379694668645776362886567276754327790804044047109026140706449252877366176115688704377685774806136814628844979630770084341191582967986957256388081896423728174264398086642438061362216803258201988811212676457906655463789922666693183786255610876287702686037586644833991291224418492011327857491121613505071704686799789247497648120844840800042630137585290298855441391400114997972872067975988376768833847495316878843142255000959947368845344793231152313392816103707554300424217921877018251455448188030125648814587203376562989354220261398767296786192095336807936700702362815567874774438138253303087096466326421819507421065392458631821185315078548123220535057498871634105928226855888797118484009139968055902534215601472471480590955499698741696936293564925512816921152469631611788777123245557230793011237499533583246805790642294094460307455618159092153266424755146173214838868890618986521153397091198212185555666425748553301103137094439369224168500261825995353703270411902947329438524992060667177190920611147267307416717023308711379685175543444336603344218084268090973511403123617177049102248714865235973593898516749484892063684285926998824404942826930133583053719606962451979770623916331938101959391016795764978203713301382532156156605385937690303881117922192150640989923791639997789645850883317414419763804360999837338094971097298772834528363459709537551405553875180278738179124914056073049765659457148849936280837383448721921345701026476799403552339296806597090983252700463739878242979155505430513417897648229818668578627575380840336119257035824218903585110006546837728427553651268386813760297035915299983318697110571287081102483069218975909001904125022552450196066738864583113628683603722748646458161528183773617998516071906672572690288866620026152975787741593570981971791185330710699756186983320343392344869261118628254057102922056692273761827513389131612416069795719155551066294296584800509272891940997623651927638809568568581543528254250825297582280516763400832033380662470765196101786008036019148403923677382552899020190217707995705524778609391757920590496860443499330062596452669903973067527638650238467140039838309579023654880129822514910794232768037416549819083587831751937069935873002499833561520814969930917141427196063991426358083830007435228017713794294139632918468988972554511820340104097398518835984627718364857288796884695352525895866344339382101238094405593929335325505350412839707907106286378210295934078297556046304296003112762964351775224834822702043081599248173681413562242123408395712206356697276546529012221262749548044641312574725792311053967682934239927710136300403076091103150610977688488255310865912126573673598107282259670097248320184487520786212841409079773156554868091010110218573627664799406064675264434725102854286936883400236319769463897577800428088758022943562092848258928247676967532040430981889018392683999351072831701658503805381886041808527332187631684542196135372081822092494945606655642499550486020309727445116264009324707497272919698238113831972790614545590697378824360833372141050967408083730296898413780076406487111855083783343493989381148659154512412825895651051732366259645972556256867321161863070099394049718975507807401839726064976564533572275709815428178577589642158613255564388276486759180283724904695185069780074491939883306092103246580851402881729450987590473365909963386984928941447769357851541949527083495189707228414695990064672443894113543457220238473068290619050539242390184011145331656742428412072578743712488946292280806597300066694479190750994834061645556304932311417317420485118036850333701656980059584174706863346140764544409304555957939248812110592097128991193555053087609606176727922521066071949202006851495457468340706555840736271295609520195800026370385770125307755120938865513991449759269926872486842727982472895328718862705738009339329839975893190367926253871830202197763130651163198899837116796721884510584646953455494868217747959235911014536953343509321323715871196704275379033720714342700329771369845628195052177058649298737598345500251568189894053569975544863337872491660783970381505123710110820020098735281756216946291208632396506430449314974764989393686048078416048048103728087990211399241150463628212030607947154442927689831307357106163092254653569056396571246634766104619691665638979789641699012476079018683211447872037393493279543291536097962950677737150481350821101779695610965927273357396301859525194366806398930723287420694587213796882426306790921350720633287902505649813958664722860972470820981737770215117472160516816877322018080527167408727079121944476337175304284133475856489027490754598948405390508293976667568398885619033546368421387904969896291977420002371706116981571089636256208144379387792632197718665296535943518627291788689074506614119680677108362418873340515620364876237589182505028417573881447222238675740233834236982684990550661779024943191615307323281393815048862559133271710545113717547017797284315613844847028057091833882432068494866398426785049557447797504927598712588582261272812199568114623292863599244273206719922785178411424344248133186189586364280970982970141305447050236112027632420039720415058520709788360006832295433640947281407213060219605345331668083345519202926408617591621585947787466806581556249791704122118624472940268854775218324869915834810916404424852601819201950910962523629491201830920409770672776093725037594159350108373196553479010670074051724035434460374734237718426251968276204438344331377845166109875639184022866892319370449836190278413955703982475185807020899033214965727126577669415516791945290969420266294704640731246002177117050901400025592910221341117255312121957946931219182118769568888992488236289666516460120004282536337593414090168107899305854174772712593862751353550649338188894256771209737992225067306482612518365461519827937461747323265001464033617226582616379203281587381896650280473176935154198444793043562520320824966755175373478578067272588523300855123282669142405025508544658536835832885170622392349475887607039045765211487824540995222220251272189267707504933117479068037192023455191784054155586891706980159575402410150120353590676041503206892031628310578290614605666487232831556662791905858243454361686590581190640319276853317593906093344473212352062086753693871460041234316196454397597349029004299941926738184088314757688593332544620079809824930355631456214287423097805489089006633588618276985993562806965121521522364115497991447118709311612003152812722125909670251400747564241451272529692198484538099077605942538904997667710673468076254674641970820824287546436379258087342359062987607741952437713779100689796568048814801106719765913996405748979760335710688343921733105128043295007942773926623796275193124010396129352468919557406606100036080977705811082793887920809230026434137978664290687823890713079049122114051612708367634243798322581752748831743685093580521482624462326605167324636828737131219638354011586876959458894574820845995564971099523070686476417671526578416881619075125182472228316393501126837166566870263012096272116437382854502152252581863483232186377015456361657122150946695659655338759566490796132710833155271098976727907201503354020830457101203079813948995132002520486145034968354039444505093710204385573804769447904116094434837868822037326883327965059295931813932271020505294975551727976997044617247151958557714651276634270202564279785880363774668564233187881298373872686136192511233870428775184514351492358211404096965464100767348926364531632101580231193864572838660296765092512855720320157810178078348398117563043560235930071207784339156795531000047483328931274960464722914089950383803944844908049018415185731431791764562758677293928945462325505671811240489139556474088580714251213482017141387984479060940460853661527441486596444483446105512542076029916552331241735777887469987328353728953879442926797281246940755180445989952151835883171668024047632261040896243422448905038469683320600885868322362115914465472246253865660333721100442058236499770294670875116380925351916674859014492698571457255414238990294824848346312652404421555490335841507425989880517811159671221299821765073927267503726511365570891083590118559970220547050708676954579597544217222753087277926189486690273695620461859600864027179117382383780962404504130242213594234574641024208415571467412025093409682483628415030462673341737657574188356326842343826306929155768610948519416025710058470083375910780380798624753000652340226306612635172823410768842369493587485487062101112043292569863431556085632348111044751782574506928261041210371949842385457122663356335685900309255983523417775058164254313461449751668455540164577045888282451419336776025268842730620721015175713555766742961162121931592694168222246142172124299083056711886204931387803160803546588620357813814242336544322458118609512692394911888691750126758705725323662192648954639104701058207553999090144987542922646071359198764379595121799990697974927232852513827804056555720290789345048764400815527776028921034484599173709559063766989282450485004327619006706621310675999857781445265816550941056676648807388706401180852565365452008354541389719854293450481179673935462709128837841787385760651032875035305412463704265189958060975617023849058253655590000831482328130593124220744301369737957027486690545003177399596235551862794972582586870248424191880832070449417790367627023570702696742374908819086654068582638412525933109929156219081682519361880370122175185652021263334509285120452839033164890273765956346848490423699571446231452395425301009657513601318961428866759762564830714895084245751202267280447992873840534280618173870067969346030175493799907957793896675778021503929245917393352548878737144191322725334644843937665046914376593267646825736949291866730893606160507017738091058987000042666874404814096326866732936681453515974959844832159941496380680164071706838328967337901796057442531940305873080693380771628573759968042460149291273544237391565389254467632987389095668860830313776263842915136497981490284246057821017448930692893962658116510659353809242027419260843142494685129377496617660067019176688353323939966577272369218859203838686242831170946348429989589577212126548105481707629314239874519650668739391150148431650791722908705472167508164923936383027820326949492904410639811876710641191947452864357767609729225425962663440957286026113710642423658656134158397874272771656009331226921046387406454583744688699015417828889289002970286697490174962216911716633848322572984719931053191950849376540814011019734602982961853875484355933069511426043308587434072670507672616797437242992621114343148972194106554595920738131524617111634700867881765752165256668332560392878578292404823253369284661634208740134632494897956758192600175593709009609719718398737702161156119689366725684982898942031332059951247135482277220653431821721557025575320341426505902902819039845190867203536970565078955422890451040146780943571851103230386177761392801115650850817956637738224871457567165730992715362484376871182533700210474113445423123201724974424167584228639747439027798145640203385596320437712881596880295188078628961266493214719040457067802712978686856049654090952902989859583605782393124597911195771643988004853915639335504744688825931569930443194068499296475826730669534965207256623177457469061362427735042472372458067772956731522276578147416842171763772186829081184811790845779325400759386545368884558728292107124847412151506844920351329030970879869495667467137901322839995945741322640465686625038863598925988101454188667582980326455242557675281970302724191266045600282475250174630301211490508690032356961697063791099058687242028744392634412832548617153582491051670235692713083809809410477964169501445982052683529788549675450410034857874825192390402338379800644085427279410445542689621810240328300604422780668800921253218604243165968176648709395198522996852847348502688972952742850917507766720228032220384479871456579547569323020242098806745437030925354753018569752376291309421547712254251965794423364536599617872328576826048233261558839170244218814179660541379645829223563687359052601381216957974017963647135123494559659071585143350767404186793335129659054798039312731171714924235974381120956897694453448162407192437512584400577940726716100301225075009297989263563847206701688821339796568649665284919353012494313367373581871522675398695122617222472134912631310331570027642297703388885489399903714965096356998635907961056561827554366004975710893919029173708540900499481338619367999671239691135926830990447702274748498595708702216953428417052069324320380088798062481659918429189473459302797225602125115376649977318116245065906959410245426875422854190206475426828459059165021290750979645806502884421629406906689727104963923741932140363219037328161283046685105089048360243210948436411143452018744040192135609673868056721164180555655354230849083288952278172733607183190163173649137389737726839164543034335199360408234996950168219558756790034781348444394711386412665635650981893599530114998748965971823511531533182959347866438749728943411647306039375106621876342304992120859232274682117799116812884299363430723961848479228550719740975801409448430417899600282049009063820000421064350227127719733762019694692838355499768589932800206498180571024165906836386918443396960625174582626967678150573932279040530573299426314171214552002195071917288073885189798672806414663663322858285350945071897950293181181351872486071657246258483050200547931675516359634169135616192671614006360904901648354959098228804923651391851578896716241297818189804640165903873221548070684759418725936879062687293964069510950204951096305288728821652970373746957145928095117323989757514106248311920744141753441390655435507195579566730702233740186351685640953354609807798086495548779545850301704692827215915153648242331317903862969977193591672527979515712178256960141629872849565086637846369038231781314466265635522047290959935553076867013927720947777435454251975542256526865794904325773649655817418987060697822693804643716479398762879780518358161020879278876548405161733243891403247733745432768447230879554900132751607930847351311701509703483233808613792603847096589105867644351879021909923244092846173379342447391331647356957142139476513745124189429957782016439995496058564721973739084262918976040082783082219944913688768726454042165858264277020600208432322837747549900742208795778733166260971784914719930441494458986883152462957814680374885088809721085190169166842375756993795193391127504406548778513353628188273632684368218651442596738703882926732341233370136082998413966763046394249403592820456760542048668457046913965860089679934929551507026930181796853089152493608699202169986031049588530771042691259926685674934677064252375703770533503765176719986645096563117330482755067551664079407067815835076902331053119422089545533565886110814628607169568355223329125747258474283385409045038592470740919289712771082271924668454544910701713149539920663408756345957426909606689793691458835916591567834425942412732640428589768820094006062520269014818739457577387188630024604696826765142045932053436266539657119633563975481731414027642064752234429993137305557166121722641183828464021885319124759161620213439700162867230910938373339717898515594717270017635261290928330209643055857851531024345935688995122352982082962086708928748098611910992534175613709747107838979147594307982152436607762342094293518517301691037857723574315806917294948189042198894241534168678742490946962650052726688159029967126457547509641446638984168756049314006218882273330407522430062363005479017056016940134392230057083432729639450213780895824376429810344765155195356422890905675644012205669023187075693028196171875827819264556190449471605836721407549583303717389812684313637934382230991134312098490432063021979290004910233023000241085088060702727853477925948395091070667440288419209586825117833996524269548352660280922293284856001385289160140914851123927245371444301794278854562363024583098230078261488576507549919661252903274173189078124575340219493101791000336195617230343046957850011922777889911891428402349896784461379702359791608355071263206631027592503846745303011937651585374912515872795923581401116830982998972325089288080267248420995368910821611458876565094345219270530303157069173181929370087884512372672192160785051403630681950580636398371791386962989589408061663001567372097143706464620493632525512906722843691868203626253635399570772253349439673587545833712419941160245777348269234292425362308995508524538059539817874620333930828447691527216241929378462433090770160046448460000096650642219486823642555863390585625222289714096123969979680138613450603370826908897686061261650484396921914005065166941874788077254982648732761083734577520503615055698299913161680266272078092068652317423217746424857662380729509239637200668536749599107533011350582136128517451220066504359567846525998122668589407532678291054729005952464442097715033589048844109690839950707314754938994688116304370566891360800483511205396179872051364566201091769727990986642968853236244493694448553467668651373770615458772256360607717897215056332943647146070728918655974789823486087101268713966377397445057654552180149701951997497347704269728942382740482194288828052963461190296857287614125855276077220520814918136182110748386657326620897257469856696582417150442777257163296007369848639535780011260434125079260585440542521948659454248221559338412257608788756024039651986123971582878356398885060947608062803088809915732532293896016078384697471496982992257332610089844428814180428683745168240830000816342842377762610847077824809062190251494901383984085990505096093264384040908673218562311581999393652915887749296769701686705192057754445022319324716666476460948799400623611487551269784450443357654334782171510971246936259723102825089390743689929441379590677558705897843760272511467020400597271544855972539627518267097195245857995978295578765736108538833100180755935073152858819634364958847644009101455899819593131228148776934424261460655160829674964535382934093016180307767469043781839456351565727206110234464653167359319642275080047853719350947344275699436607898026309427145148116234373815847384297251488520701313117028912792786028332642844468583739930721220111592111963770166354769254526043728211129636578322248562276561805924570277493714675939671282724396203919250934968529545633777020526779760153953650002801482278845547503246515276403994412029655326686514731641396563398061374271872300260762734520967687410536115293127181027601228734244072731206104146833415536312716730875234833299963993653008936197863168985668089569909615886514914869959675474723682822611841674325624452987139820612029441217759352732975954915696436590652551467212825333531280942533492861551698233499213872353179355089836535643681701222489938248155501276099753594087280749983241560779811307785176453384463247766609865130460443621834478152021903848624516128574068384838006550445071985451258329122169901159545744614708946183341932007740175226879183232843515773167241510150966053052331809570274317557668459666838777270633227508998794169742622669610713620636037315848712531296877743404955437492595257094249834244646362663512716202566421340237531443858447236049219614722079658970517704401196160626421783828056469762112301691647178875344194430635395132956024326606307084435586749450781649616481149583056229299864947544262691965738754214642010488855318628120853624778172281697264924384480633676183841410427764368465885197233236405106582294893638848741613970467777391569421773667288347742686307982059153247742878407096588412440039228990879234718436339638766146018394696699411788757038902970631718466022460833978211847775666311462885700206256450159901942409328140168935661076426635180490740124809383337066339808201227911400283501482637307949925603070362962969242285802429154555862112388496408612918318361384586192208161599987832116838653516225154453626418514998275676053088561101099656130597619919951963630842505289014176762785838499245348795406282436395226571802498461553562637334461634389527084424222003817562625430444032545358643663596145946567422631682040922981948998641522127719855935940596758082465220270297868496360523091557641432356910777324706139653083093052152733338934945162788639708176192550081596708735412755706785353752529981023413784439306809380832266426224213497461395669013992209816680873572847917245403216454535248563323055531771638158314501126320493282895840574299658305537363748568732152725693770019993842186520847323494093062462160103526701302165286749032231772998884656254898032359787900719358279078759826602193133215557875651619590473726207786846065649289524060141563212841694488200149299234529658832079095682148841950870429460268079306472342317031114689550960573773712021166805165504632593894260168257406294263008721693186588297993375138843378739028276253774695403138780025634180347560609080615054840732052577248417933491742461916924462866403929102594351991345362406771829443415510202234238607884984402151541817489998453276377134785406832675868339260925654657031965880775635792246972131224662495946148369218610741994054261030093210712277516607547051769147107797265611097931460633973167978747138091500789129482883981635170975920812560849552475014479961105087028318877285930614441024057050642756619824210718506810840433399837105401030136254359179304695979408836713447521113588367303300820344439906820921730800030846173232783482414922183102024574381564629754011465767052897110084309951849541497582657135860458749785138522529071073825169145734089460146957457523517171856812761716979010727293429762024423495745443869470312631477242538470301897634300998472482183913927166236477982933063796152324519923404412200115919476702982208748146189167626500219002103112481412373126834202450767998258511200009772061496210687678046073947960210003247460379811613760894405732450736623437850067397391939743794496619724215151891003250052164535468069394486407567316062195703135515100227263717811192133744405699400919471167423477723452999189056642039868735431735624109161009184967858767905870091361925159628279187855733160600693609899521501212392470033031319216951798483492882948678949254865619099612287702036351287925138538562860381555980914112630559362574216987786960640315043435176476868038512471009982204720369380436199173671832315731274081387395887284373375186553959767028945980944428981307575644036340675239011757876892691851960676816789213515362454880964330622149231160084916561763335824880737474406918189540135316972296939474810156978434222689784862159760548882748335698373401014006159674197386188610397443608512576282859341958044938677695272903781788777164230954865382001678666301819831079341787149555412274615057431083402152633411801746098671890998392316961057660649331749994981938741799440561804140817338922510106266960152303764333144099404114211945360253451206886377865287302722901282060415864160622733802818290224045775017555027738191101508786836978223026929641513270652291954182268076627484369947464005524238810928598201063880218350294469143625947562552224079877702150021854009262640444501006137349897102675769085691329219948190195674276901130247663683790736284934044392487487292098028133018899562244586651111121085801655854988299434504707431620148076285154937378202741511964456198974232120186631986870848106312386391136375603441874760017887497637082150234520886228498212523897868459189080458935096660689833143988234924834474956012222819074897922444194526714285423207627149428789326046037597553790321138834129654236985293261797682226391737803786186312623934549031455664117801732129537474894533164394098503941744578413799509972299918766588996143723212764825481627020858090682534679537036128783713851819722598663465931391957395660602861889846923298745779289290237081014968340611545868310604820358915929479472788320559534687636504961163872446512147909801001077720433942309461794597950750187319313200907076292390077883723397256765320758089884718657491523841936571930358413222590543853859018521997303603263782261832217659447572927024810275640802137259054036380432161760924644289788227470901855896751038249673131864519812381180478071145538750999278557717744582657162684209350546448185051011055755917466615839678061376095647087226984118145104554364982791675376157366160727364619515399160837871766337348245344305667895319045806447580097151739221052605762837763518069447150175964720809119991267243317409359455304760041362111336907424607583198057237876799378899611270918151688158735575353015323242818123395299441476914538912232757840588462716428565199671930171882873561010380959673116937336681159052948302516429399669715164064596516976911057444250221639253154920682324839047783255331310419630184851786895268240341221869244701047280572540668186497355033399795590057125003309471021109052509821295986253644279726369128022627411863517927756764120291266787186872142809914438680488585516767832690100714337024900441138654126245160758521672927362759688589918541133288399114855842651995628611687112002791085591878173497956520171352857497176081049812195055926782982042735772871344613012909254019772671240576042602189754159861435314080630363973120030598623895054081388099545464002692237731734082737540681898518977606304212486433473415439711267055457345178576107622400216821870186841553761542752056288160488622610307288362473214761949835242232490569473794717814296981958785449592657637125265013899922912341673784551840031613762422614786584886019844549258704156275662655493786484873717967847529065638653539554735789139585729047907245008758905447041617637087434094304620210013609572806944845906809457845695291439248088817248989143758161723780883323433688580322900391970405972614373370911142405250074641783739818437087343740993329940384917058405048132993782297374035875456806954933628178883251077107900407377873688495840323577343347526785773463205348466942654960437144250154851110706685721091939414762334649514601535549046716702088217406921101033886145322869808874507013355306746687229441804905315372289163153305027759168092800416269336540419487919233896023632086218874223156951617596115278857697625237099066419400989425881045272144785824292288422358144160014288440035429943537312643522329551325274072212816281627574288796848395719168545842669381332289381687530071767277231224147119700922432668051503048207057438126031945606553715416768993652675120764911765951851703458695269621992949417977987353032186309216037231515750351906650904097110269704983950466564002408485000956578083862732408925766904474048578800609306838438593117337890444158735556169325654808523436478634678639701765022894407185210825233733002736307504938801768125154639882818853331879849693096178568240449786581914976390807568639091806167864525513944000612041668166500903751698689792068611295104339100719074214489784189313663424030417585572572473993216193884295926110647184589663105553519849277077427401052487318337858893528586780258739188851809825668292569714711137922335731822920019774720750513055949674064528220611396289690211707484119442161799914076280656503780631644841696612669330688763323180030177897161455163356662805650618086914357013770257048258933144078146478858285207718482835377585496580385313261772771577114934893022497259211121727152744270919203779132672254465356322563911885338332663851425770316690188851062588357015703472365771580420397797425711472486037751829417233067221725254083701052372839399079635024032019705914050436402281121381472208057295597575258094873580628686048056431847375477287643242635639829381640092349578984260156566337211574108790324663307983276120071017809449067628748877013641666523470582072420144720732436336378089805875025654890127516314287289818488189666533368930848343866927520898139954465897124273570789547260140989382326263219524592041374136791110996631878364530539005622128791501495416057243316109252878754519425264752817346917579143178498548350191620485105051099433569420178659545309871392708255431957301383438962005991237426541644001227751863670150756730073163804765176743246039896040811961052808814237021881664338924952955273018232391838700096523540576807714920560805899103908092988848173974554923155497752103860060441211733810160213802760065995542051074945143356086364353300967775247002124950541855516145490027617061881807206402849609453594303162161017492013903074782990101790140149551179780972249040121803158126538386636312718004250363515449809032355147965554285122201108707747071660927304153247749875599240629397252068730161894239052403035799517693563783967484441031260346107930589590864938569714851039779013050059172253952482021625550488869095805694753065594461384454967673309552903932438742716436768757374180007141518678579700675382915187026714144420514245006605332774199084472641179038561131867250172962954269569821312673222818782638023267035238795341090774175945433887788827657282693439897819977872600094633189301673220349096031081836093315246007032892664261048890621720365010738343306817750064671936920182243272243549975069538795555672558434714605487476114393147331446179789889408102210773053079666359713395213787786867248649825827327225592348173433323196217875983271696691000992080184205263761704088014687632155214562459925231077363847195394464000157753259659502922138468792792765739719995229401987620032309047335141989374414941686729958670576091146864414769780715851418732859017406103931357519515841586908248569056518759091788930443875415585864012465948599903640799527771994558151878385495359626980184773819664428737938655883741467223791353450744240571538395978417797770196529825099176886129085380471889518381495433066485499832076303349786496767352340760706173922675804838197996309619481921939154867274293658119269091946705372341818413747407808192646572001095779613327306224617476433069889174366641007145059454929808429031099803325742890124323715442031253371885049151834220573001472377951867654251322567380288795179550378586282067078793311725471468922197004939490896439487173577501115853008496000767893542334152163055265496141324255136457945107880392590454199378449082385497719573069934035096767331609589643960608339618498902498670889233290608836411996372793753700436614149869435664677515912910638219192251603866054813451154062052621874771853392291584961175518892474335345509858633301404232500297271259210879666195216422518235981491464525687652871621157208977220902222402752000094243210104664294526411798988392909053409638800640958025268997880346771175125002146330892282895624063615839749972911025738875238437594823964219478391369788924649129478784303855064221028891327852206598023460071169887881533939183773941977563496346118233082280444358635231933016714242437638163045277877418691703780827111422018720055317322137040661849102802688907590367541120454262361921862872089215210875616704733354601797355553519524434697458380455299022038282128730388680252062697461805817197619052339438510679307178973630514540063446167353633137891658522306810930173637824649807429628072252427589551699428242054667323131028665393361329195480180100181007846514024194287747923648028432760509213189345419929026940267568085154989848902636208845437254239366809567435048377524323344664266107107632223634977350086718756089772275479131913006297111894910967195076564153077819463733748523823189542893308021904325269030920878075471465014467447304712921747659256552295818047016519081270964266257246552039249649944101636839540352419484147807221982196192621144024048797852331325856042916765651743476093771307053828676804357244629492461530766678849751575284296296012241055297670402837124724923791286086327312318489809248845851495189972555979391769725790273229289992312165686562406692031419375482332568833330767905607302806784824871815286861763935477022136138062383221821400669640823745476861558046533133061524718699687607963531828919850508702978666074316202588831262306246537898379780566278446997568593627513943414529103828500982364048018001093822889469406226798340420415407500477953983188964843838007485190037365948243471633720030568499442897923761198756611922215473062119750800309268451599643179689233185484836513974370787470168514179619475233369014199603578243980596696282418597695057431368350729773137660860615663835530920916469253936746379671172494499393051333173184241247126885958559067262872027985678680275587811305726216026076807492018461099569702054481998742688877003884120555001417575224094392594682778561927566220222444362899132021590454791437385814149093117100544828098588714492594270403078859529647869909030307174794990997452711055094279962104238394096573063470589916351984379933643652905663875700787270273555301687794790726179520307719971131639668303204600008883441331803250481575754510958321256733135316096762598630441842174150506471153135617848151935864627924895549913838083408173467303161165179409712167885425620259046825402241541534484601559425501526050447169265943584317997529178595442966311138377604655837692884220314418263749403713681667183958385148772415270035505999781479447234323525437654384322520753116558815654788197840347735575527027034938403656128175575281761831737233244838326777639831985882820051493254491030312344010380461459990628017334694211433486034396488611289355808787853959000774784941661409512501843661061384204593735744169108032480706232755106506785399624679476369597921060288318407226160489721858471272911108725395871582554780464812291665435068248508864529590903806375450526552097486366867066133666755129960692710234956758105963977700778565704503681727438682054769741587825569260035808033146241194847520772174134438313928430445957876957228511095852341153403710874341390608273853990061934382964225605168601829400680016714833972638173887592854296841336314246503056380537437623565378005316375997383466758880930835968738527134758714227135303946203499051632651924963235747444958679795934855893472366681362152231293054379741976052322160195347576219486086607068064674963500897962123066164422062801458236039910347638272997535163092370002008964866475812532602887965714907159528412303170724057015919066487769038169577447758777310503474292268409938426105101766689591782567453927949105476298481992558113841129495639272231391733451846581683289875039749985052369964028962371009889418857218557443849090524925952452431733046851642203118465619747810649155044893427904671210337702357275473654834061017545211104051923160641173911583381356992924824778683862642532229654706606283295735417051878354202452891756171467965676881142192423576884130966954135680747719278220385666331252099450725254985577109555290786520729283322214956590092056184271222742564272209287013365964269350359669584007687293132103974565238733956193408315959694038566329602106923406922284666956525896027102727483659027562585109230613762945502364311786125514237554417558203334471281717286129586254354036015726620044166095202970209482208825087076442388454038810363871718701804244409458729502814618967191819590705210737122470282219875032300557995564427229450547282640174838450180080255116452608121614149272438166589054332840252822867814552892076773261859012344909451528210119710259970319368896166386839999100650623757043263175399733669605446831878149143573528247118959027848870453444058948695797092414431015122640940306575514278646793242026596350570696795985891956640955537262304892931934623764896901803897593564526725160862483733624287984524581918421443924702356444229996591520781202757441920545717753074978694761421979212134310712524336405639596599756244847793736698720813687278547166522806318448705157711521425375792971902399808010230699665196907326107411999035486120251824010751023272436227833167926673724411922674444682387243475335274594809124426647367267514535484069939575494878262088182551328624754908502452598625721728791565709432291461121054514489114893346196361023986458146323719767589360012794532195931245445607729208104066131420958026504616766950854545847437936175208452057462663885272034457191134911916567759862530978500739778385704543504004561184796483659857341475613741014290757409270033893868773188838446724420201970835933016522880520777961027341807020148086439676733712068799840754962357006016320887444662982882947175114524304324706753305429646163890648939396604018975819306236712444298247639404150711545305826042266598078816676449812266257594907388702168047233787578846799021577111170396914439119869058966641263419697675618170919486025047366828537192096948233909450100826584728054788270961650351119203032934227135915406701244278227857483065607966359678651568810466510146044909591120498730213222026583023297402979304556576247239128291011412919532249630434397459183564100256805624702430097545841398082120841169341673018305986087935129684280346530546976219504188539692410046031961271289057742784702116840560515364087658133588806350554512956986167247972971021116805268443892279168653520825408721100282223264566194959627468891311787131449193657399404320232314859419725821959091139272330213412482423120786607320133588946071636044029707876510793440442713829055151731057272777407264239621677266337117598187477383452647609265495190445753183218019285302739158318485104401923992177743650208295873748365909099528649083510797254734195362798249795403854016103026285638593767167853243381380145009789597719864377160142319707546092575623401383099896988864767709025013860195868100452114035547505309653467566648767501577261201609442565074786962169574338323335800246692061731980843189890095427204468783386575492405927452570507429631313465994180544588174077993157544684778228175482567526422711722197573029827884138578975316719110274972757649125705862219994424825349434279813575569682826369012785437998809652408381969199856977650909514051529279319151066422981712647202233160378780630700454259238115699413778764480454568021783115026443136854290120905953602044306018884408499543922880182453172552143109841595902358500902304864580562354593046248253373375879002938049340839574226913555350334274896293521789648496635882177325168786073676220337507830904049144745329287640550812369334563381444766204503417812382009734902686678639190382171727482389822963925498042056873675433376122537128226029549171317591145904557174871711896102852892573782985044661008796373373258382969044054807476116810567367601894284079436530987161256079077009485429094925427306583913223889454852512770817763951921585428580371018718952039035416463666312105073633049477621225202554595139675328736582165266519739679758553273271736177973508986333325356938969106360713543933241649296322370053189780791464176342234372593030604262058137103587449379207014312861437091705965752362335892907431301095182240248480475926344306789519952441569261446955109140856162851112995320534527471512799245247559562402237158471677824422685386033670244962265021114829508250666303913189655273904708896613187056202479170552099336269534660411707942151081138574636307887288403818038419654378458231312242679040013396716666775492846270418037926387483850720680641219096793396234313970795275404725818457542054731374683789981642421397077634470027199481391021377171385290810184370630116120366728938190980326044488423884219513824854182464697321851535565117015699452852181095128550762450506458859825282556340682157074018905080680708806048826197465737001695638671094073392692335746715487750366331624806031398894916943656688017925740644419139156682074262133566592082430135002129253817416495841615307763821817480315776152763229068775018385862932134279873368638515482883608218218683927923324209735810339571811222040393896829574516332402190047003637617361898500112874435883682753914994624825340722481662157353960939975799901576377405100243033560458212023528819760396511942628808284299247403954968292996338023348533662945082574111249042402433661855571150239861681767694405906247817814918506277397900009450316445947690832956297300000142180361920743410910322643326415241401033557038506257500512838274926764676241186977660842065637911294439756359903609307255352214037028803482883936008984579441821920273796649332876279197091221136198952609876653325831899724662794256509557152968051922003162545015202983922996836547022429458582369088817256582353674992910730880150717686337101725120722910888821737729394113923060003322031808669426327664262953536069373543604184507406898134710190235245838937259021103102407023195411242960814079793041918967412696499257792579398840007440264814794124011138483310641994265484297497534145379718612447063674556495652835853567588290717529541099834934042165066236313326525147084599605172343467651301459855340779873333718688927350606935008151926773699976959089141467677188051472509357931145794010623584758833722254657056359228412768279393790232043090336393842200484616807911539447958381524005501525287714146402066652987380328467253583931772340429749266784913038219783581419646980755822416379913021478146664674758171182202045375538761430934797845222073299476203206534278882615407393572133848214961010491675038024186546619871042037805059219860520147467132896088786351384921968658602776020275625407284575286702924474728982252361806671512828504619725576283145234254942009350336799061650602836413288887388267729017454335887239800330183236857232207217218118574871520261133509018144911257890659736782954737526287685375250406158894905845179210359863261149814871935945632207228375559611723245633236789701270119770232853506148710315772068601183818281835160631940447117777208506733525253698807479651051658635269695051004107962645286580410864537176233785813713321312458001971767811423328013934271152288278171222076457104528288211197847837027116492630577374417383389235767478260811592076406670515903874118902509668824194919834969997583927667212968357097783850864284875607932383920133676260775955987576224019667266498082401138845567310606346102774556445954106497457809041928935455862200101113058311096369080571245892722855518324892909815048827555675445400325769148592842937117779877511452995843790818079516105599772464901945738961422178480945099292836405481437773446955281251019533676221323766951494330764841773843813450886845638172839651018384338962682316301275791586886841238752807136316027115905589701399498525698032953874046829909573986910640396013549315175535462722603346902107354545557254959916507698750994728869074475485841608523772106475985420268634156904345343048914781624320800650912492814261813242512597928475616090828977819290452451739819731938655145957991745818332091186962163628224088960190201534147689347917399408724407310734655874560383165467051178072985757775550479539216427012692084232812025086741412024556410727815133650780275815623327343209607162078343581501077870972778792378390605797832730597816267912305036588706723219682531296521804206582663192616969453732839293179838971409797471925931316563932529718124576253865015471260567026530908866596776566208735903244120643039668487094757249821967069649972296057639120834270721379421448490229633195415379648745781319623436841180499095193706145072401108780221720157191056581478024181932107235174314823599647304091707967135015806121117345032972027712599005172437952127910657724751989406520211993667592439958653448784738849811092339636011552873954072068627081916787695662578452062616229626005654496861401869462792654907526650259422976513341153330218655492890506830516133762993868454967430647697769654607882371790839477359680884635534485835365447706669621739020304587526895506891959538822195225545385445419028200805790677225091771771839272755560879083703609697664962259076138863401534033687943533034845417718487744237876036607532729144478003094801608822668275050349088508256271589096972842763342815864653714261132397994406987582247038188755496062636036141996537393692506101703833843481963286719208226914785672613595089026743748639473603933890564512595975223834300261905528164394418176272455029932380953182339366714197780409063489765635277531363749889074960452588975250612356144337825084242088461205474514846932031663542422735661604659620717561885923654611814148242855963578237607149026729872787636423823653721674984888983475761910207676942563906295528622899735882104660810160024752297159585276809998827864207513170621713343272278296609889216059614652090321271942559307217936270479876366251483010876945602672321884312074814401818989333854360662970677580222944455081062797020895157512237156838522737247072272091410646022455978918187056422013408955952051927035601779198537212813393028904710009514016908875075369110989477467708560016169650741160900977921890800032948088581142454600206359508609354664007682984819262079906648857635868406089144914235810385587621537833270754087701701502195139143135307249781303340070420330451548562910643493855072849208460891244463005686557865306630060037958642414342135017120181354876538315104179708836231550579404481866525874916481541237148294730178378102377852599521574037209836305740858652990824379498003221905060850412437412547901072330687369818149665748490361775185839439011809896826995271959933836918108755576580720946350493837947884887985466801458444857961318589451867470932205177632475192586913802668398855645091511167205158309698076207950964942661527933993966689272437669817243523490587050545898278296133745361018619772991396571487483221341022471860868273403245936837825204226353510617170374909374988388078047280453392280505252497558589683012898314099211766288630342432337837116375961545667206854228450595606303843498941351952197081862077465503192721359526108358396044488757938714400061438180332093720930307086009754363873528109736638548998150980288356505691851766984886075240035136645292452497708982085217709098498538142188895565347297922072517410853810798215686638598011229031695312214285036457778870918485795885838645023008811567374755118649467015668171727711357850244571081341106695082315724512048342963070834773231099502124666033938806653587148561614489002621078157800499441315507528072527300738892281019825749532779962172608399113120724525029002247971313051163872361638738252634465108599683194023650579684024839305581289250110922780694957818954546590349403878872704898553344086008436310612838578746747219779160876107039613320179140999306623954836668700794406120776898723787970128609976034906834234189622896175787100201618379415778270003607448564870720126959500649804744415461318840078835760172908598972172272976254535207506040256849555774905880697302086005836765418802819117327614834176444046694926930806447039584401817472535392055009704083326259851417796446332061346360189623574369620234359580750405425415591635656217227791605988651004369476605479075577678086491592503072132149116638891654002263960760136240699622346110561166438113307817470034709693076060873775189564132601400421288692681211832767479825719952410667918691266231215931472182716649296942932260558105903710658993320196299425857189289266008260503856180974462142808459200959080556881290660132378976660466996774473105051485262429366863803095763708576774730622871634170321897374894826037477630643716664228936879014680343718660395753837819116908120868222665734907236319445831435022922917570477914692014379088965272333558547915744064292500875417547840668087564620656547088079920759400258822409870555045173844621284320536866411977571671434147931175994108743941387009877603594497088930986709635876428499360898549807629453060956241364433678452979606440113643177081156097005116616665284151850117384387049197169537011349989521958266041098110028743591044807238493898472207095330708939770554276280197142249997912503714916784877194551728162694818722630992189798240384775675206449497518966830993908055572070294899356722909438662326688655047824886901084899491866136297228785961834695682099460724711091482742073639219123272652082053883070053590802558349899269213888068801903515614990240595257500805625658653118823571126604740161765176808012400691746337666292747593069091900548030843437445951956670108855954035639944876436960384427090031734918163996717030233859893088043019553542476434034459739394389887466231176807932136813123686968528293605956120628100787978150318388464093583263847272111571709083130230563737706557439568463624003825063988966615771580197166944108131106635655545884678681165110698707566280030243258235893168274132678569652016589261835240847783031810010527462163888221053254187295039610559007688145407590685547858729408127523739136495221511300321400642401693797765660731108327647040090433124653222697221224676283841081186606964466375507423839099113649055234942402804883766162860057846477135929059377146275398921324692889249886797030807458312560084833787215348659602912089910453965459718932164231421707985214576033315927921595559143139798676223761570378837457651604062326840492025734054932857032657071964167577165452788326049860120216505927084949784947481775329689485256384435311541476469036705037917586508149308189353428828391475842130911376846811788515788765129196667999633054252522989329401077400668854287954270606164858966374672859377313097297316122875491226549113340338060707120628825647078338816234071611543997365223897242992128643748991924477071211429148340578522161843171015925309353668952449122489691047209567744742431360704603728604441273575101481261795805792613533992371156127084131854006854475642051052405173207741337038148451614064599505401289039483460855198173254816664358338139754580334138769609762724319882744130839849946476092241204318601359086350514014366057897223183140789844222631373264046442308049915057205838456496293541851355343944091645413931986064516157759520624687511640771651593655406488930793160724147427576427076874633443949141965018965683534516239234702862379284369900813029216450651672740091315407726770598972812315313761194367133043872098138517828900184302352930039378182360487563228791077678276836895575029836218555835192745771864641305043363839309875080648785712753994036934219214625457283090222180025198169835894203947776679078254830484560593059682800095928148871137019464468078272340613615019297640004900491464537350765465230228773165420437806795967256548952058337864147791201019914771930943850304848135835487634346837235512652860777461206690934518309355344532544617507478504330805617759228299930587343333478746785239570829682219263110513192010470689445215416834728565716324513303038631892866631799013710721856186893029795868261053697875643667163102881768911390798004216872252607838260852006561992722685031959269472419624137614853850684073545244994678989139885325317733958059965052573708915046590872093228998623443152693053294972708181029543241354663080460091248006605253968367300232317760815431494615341203778608023449155310626118845355718713018393229000280545960922631679942406815928038912690170366014180384035699902943970016939418555832000365761388516860045736874965399654155724414573478132299817395187296234111229100714745547981044195202819525866112646403909229731847961156243959707211297313706220289754571715225045400565456497043382798618326522546790032665789115241356484643255890281042969276824323680172841286255380537292653730136587709854865566112889216019864989669241298624299061591457438857164320757616765135745291382058343399693473732364975103807901390845548616669731784898239168420481289299575548882696395696003225457968961363524762689194230631692135377571846249888836042752478615035125711404387590345821100348073405464791482019775494403552013095094252864147976309775818869791547420575748202840929322745471314129880558924877894965767142895976525857480227878841828330495648900622008234938541139677235346082374909559294743418677259393243066961707215933509056620124413754294209801420066005054182038539274084484050756426786912206210408926080156573239016619529499644010269778925599059967181291296913464298853476583621819749223617327935410845529779289163819429926771969075104630218594475762976735285684815633213730411996121440787630304349197264233540624782115617719118330520181944609280198102524380368371413441780575182936687590058731180551229502976757929875595202207284756277474903086266258090942377850888162880422262346871124309392423551064915204201835716484023252183606625027230550450990678222288586866568270212735527152052907309326638163549203912996933184391431142624664283239767642964832166126932059217855488019427311076840230549610894870441762078486486165524515176744129933085439118569489778004564095900215799321827146421180051905488239158325735913276721837587312234681325987105887052398531822783176311553018640529115162249569197034020902945240593696846944240756714717975309690877761811180868490630241937455627595281897281707723176965088670047716270991199338626980984555584145399689584749148897952910351572774619088447509568884592571083343155803359600850895503199071994618113041670258981083605379475013519473196240333053393001663678711823072824496150783106219482378941554198976324929507745688865326086185579906017445793695828280270150048291271502690794984540219834393601865052162356805202735907165426791217697230021019065050887426672841564358557193942098390919900598997975426620889162920254324089326508272695549344492848653427933881331586091146247501614745389994332452459684948882468183933431634633355020500652927345712505604262120905559747222098409528361737887557944997676550125518451411285819578275601585148043843584796746687338287051493409885893303447542765935286952578604742080289470833123088401462793499810647946423542467415748411851566162888546210283793808469273109699756120186426883669357970894611151154121098674147563056869820232333478488901391352111338558035985222139539320700296476892239548243590268091161033762812463234960372424176096313904702064740875166263272784457414975333698452596708197604858458350243434143858741532068742301555793661457183237302188105770794567987537107239904786395347439114236084030696686961485964264132632047903709553714875089888961530414833837981216614389034434690673108029021814041632426048276221196325113782705119234156777536140506539044152120322969567933585685109029047035828230967069135633579770977999858877808440565646193716896112379265518021259912770505920964952372857250146586675185832233139156094591921281598304250606080638263034423202606856815487124516267626961807920370322143720947377232155313686513985532350358568311380846259946443545859735575321200168171359349009574628117962971996580157345977550656190894642563350557045417964737994835639866933506633240236965575491569637677838903752712000322447127784983914041948594065868258837256788811634171244224964608824447550589151087179707341760058491383029541096012637706187730225875974870785430465272880102982794786273495330225385113784788218682067317568150509070386791876945398321880248345938698659039885959801268623694471653770331976771389093543760688785940118831531106839630526836594820842335782198125915624608602358269574892903707656239581730562424332587019489249955856226232064645430789406475253723157150636507059820178949697753107484034301201912546334666814231805524920698605619398467740592644100550710430861091727554183483254358809973878019470085792920145355386755406059067088354037421829240584724689131126053136447286183642540442851049530819504875877891332198729272747170235378498760530436725894880128283627659387471648050283945132576250901298857769431926618115509030101625021800800424434638882277504713818604512085336325068943463663871351697011130764452865708907735738557512816343500829333386118384063406363740550087269481876624294377621497553161458187750924052597555599836119264496485360973274440053587877777240163866384079180563768358478196660433226939380537494776060339372426943578746968233508363766623941935066635774409813884315039045805576865072664679808938405672230689954485383275563087900631024351472330627382497146415073749963408466683904894393836481917190218147863651844926440250319526940189623003634347241295801571403232975916979127822500973311022342196578438606688668801520479553996852611100370359246162568560350678902697041975764899392270787998015255572809683406607510579383380860307053834903896200121760823801703757734477237031473555805380529539505933818256970610383798626441322502149791452055720799263990430506919638811071327827337011509708450796429597431828421547935404645770515300185007903011146988419441938086307777196957039559161137317863554752003915327466349229923287013476645317931976461419611581204470330440967005970882675160767788115730123235391877727593064121077697733723741370369414164758747610975607463640995824105155171705225065123355301015895474523120085915951972896019162215342492639153903665321886047526931046829188789219137549391657952403634454532608584227014099365615300576833850348683892989223589989668405332128581182776384692282248973677311278494965811117972279560440777785286526750478237355735806475689158200521547952738452433565695078672837376549720338376213802508538415472694352556946467483352878120240629858181077630730950183653173683185236254555703172760366931975137227726874201124928124559663091185697783971674240278579533855767468313102025704437251418694681512281059327809766599951063904134000033878366821100577480025206959237089583061273779601037197828018062794372197756382427170494991429362190258168249427075849214339182549076604505685050098348018800491426029630932030869305089444808356702114078895454685191940425935012192983303238111635100555493253419712299646137031974934050139768751964984767914388985070703290279393259368022611383928709458600335918793170763402255532501053636252700139866186525917065096559453002381667647775382055076176817548456307954649284939102430596532487024006751403451835504582296870665301285404752515892983687118902049516119029898907303773332173962493500973178981523421186824886333985857600728865848574899823445120636808387958696070664284112464914740503783124113080666971655582751595927330515585883310687068607641182513931756224400178445794536709795873012698247737421467906044085129546747225658467108730892930373717649498109310031015719035376710635007240964951037176495028170162271125786724145777176934511297857942277395517940833642452077084443445587379624487343496859106982430058984835275004938019033873090327730207277761616627964095290919422677889952924223904262545474584424681546277495713103181504429936876559502211400901448384024459183062650820005943533730595302876115842480024250382954190015922861261032730493764585128338919789273522526884246424037758170236174153746197176432161999899554862235713643478576200851981230099706637141917820686298806807447966750031235404604318539114362607241908506376502610689162481443553134702493363217579948886310478430746486123891801972357179224743396317961416574053384373343064309528862727286876247798437507199570927136099418769802613038234038346979643997678455826320352084867341946275759661317074439042945864802096659967099737853853095417037882527529062192099260570980926761899527095045826631581534286238028526557089027725194146716729964209484887045576116639061702522335761431273035215427578511949111515241642038661404645109733664030680619409400415053816662053124315320845021366900157634495265291588135411086354474864729864325003109803399154140671449921584271083739600976057036007720502798225392666585923769781742208683600256501099067399542288547501954335151676077255611032206918308868042862672823144718234795226938320300722084906283050730815901165514336582246410950420203079966054373318754729358336290267734471406529169945011947412412884461518264819965957621160437415956858654172926767415215088926485780561198049704563363763944235422500242289493472919289407332937227290514945016352287542872543678237618743985438954828372579918554007280203281466752284678252782843599581860444505201232038237874562276917728902226527707431985319546947870595244965500292142252763054292459189811079621230253099055032621273603679000599247972449183808776199922269512538150318230059779986560606163384400783222791345681622830078990854641491485504973294138601020337272636738417448520649401008638707144097621596326596623074345102432595566028827698191383691640912311689367439350851774418228109373557545219433680889261402973190159748636934088277884013485698803254757248375011482584775552963712683355861541245123514335699413890293971592234100249560832314401122082023472320882315977208731740466302066753564807349519060789635308306950045156642913648523459518581522918416302898997815482121286286459418007529441921961138135214453023516422023498964826052180672710861517340257702316594876448479157541208744088094789197263136535714549299837073662332488532981252924550043925281629396881120242602221818769141690042201496643063677160902492339124695416652505789201162950982286054750842410541247836889789038854679329426786428433628188582362114408409701342209737773293151741237125167332903983469820888069322272932512224107929999969125728595416568511168050140114514251559683936583523840735284877690322578188923454931849935837396720668551461876271415578987604660079226151356220571701671415378739900319247286815582112000267860045595449551815118259978493827176318324883860794620280122804081156903860726987585120540117443400043590806139654539943689308413916378232437363533129137253696854055460794269623318540892190205973419520004064471622185612891664835367495623396221012844626937089418618449871162928438389278032474730407807463393032850424056205469621785457916146216543052406600023034798469719754897016993719066311802749248704658354378474468315287358199181740881026469555678020151939714637663759222878504720523705963137535214790163198781312119176788841761164600405898879942595164814135328335944278929934637507365372488185328713449290083751845584273819125082877646852827081132025448052134859887771418032821654892054963079480708031398462778631593758992284532328634493944856242539642485090155932717721578515918408694954793426341252155297217678335128479641406064952773419673564245851031805518824680012977925429339373519273585753514883447012399563213192771642954308038694474214965097954807769810903766863632951059585229150538903866132938596378433406075008833929320396310253383775434480258127592086961120015987187178214805332157529938930829373122967355267414774293992967699817091938707922296061570599186516592916003365004776029147214578631232933511055938357698185411261427830778397027448534523296347164818775782068275536966084166483676303843322763991932198007661677865782769951729838628313017714281832790413529219297090097355903986116174856049218818130357513772024637029221020147352337870827376389522977314989568744258186871644457983002877429330320988307770067106214804273598132716254698934112470356478851268384914937452217295856242264438760133584370020722991515401607542437833886578706013926886693154220857678661367548599829216825801466836729071626018700289620943985907088912591635488227673993812556452898232148114344924835940490808442096619261238706489435535960742010510765501473478735230735934311317438539166822018676830260663275558795604699820036257187799056002999566834327086907434695104691148725910921481070026247118793891108252468493840998239380714016854792801658343815106221192933861421670228744020844515532358423008717699360366955684804997067514488566372964226983019815252488676412346409143280361456725784877303415596617090437474100212233324772748282398706604639830985050952402308060025766761158053246183037020853661986584017995321604481535055545405031097614524776844533268497618891630620969936315919836110040640944136193573495571056967852449178214793438743224867738161391768587157461194527174210870762571501772505010597374440333170758234823123832853829969892553333830872909465707482000048806920199395098305341480698636209404968980782770124075593226314179419035074594783275371116561595916520494947685538622698763802085912066899585190059012484807409285743277518071000949388260990610360268069724008331496621204394865762316135352020505227313198374961287031301091530388088653455172877684983107942907856394139305177238679989068299383016014057204814091216368699713798437506515322251940775267680315943502526501422130624663900225364936751988341336797696257657228228206069041359414637095121291175090612725990151204113932498501003556427665685747293990306721502517763716123624093388739264260445689593044619779136858914654720377481128066090922288633996277914898272517815270359002964652541850014772828715370082744656126286624499977762983475676401631772196233639127510385037602873806563048972239092573039562684262419216639521046324217932572011194483009988186480735204852160152785311066768573419019622156885739276879854136593960163453983562503879748651453523909241530720505846490392606629498828917023878404410471654277759242730740833296064802349765393717383170820766214315844754445067076321946556850698544991742795243144510076387053940992405873929022843595122852168226808910594016471125476911231460022468728781037105871428415894192237642550750286998925460541920806689411580739208370555524003435050038798045916647221773746407956153044142618399666476533624793171508453471486036216727940413189678078441427974626954469796707322909629783893296057775785950866579854430160404726249706269675668053822592003659660203180163713279184653407355220955085289756097544567217122227307384224214400531981298174598738660510559136687595279637079818765509431166276038272801101055495393751323263588536801590625608727947115509504972766942246936070190459391059721256681082312170653679601307485341286366164061017446451669120104988674479992324488913012411162526634775044790512798363777096444668067500859579907285139414810859710339809020863247574282047111961246278702771499560004842434652372897793381069811842934217349842393036644391440689574941700502812998521717797842001677693064611870748103042148853569711500573512630731411686594300188855994202740279698452009714256704478268281271390173418650699862583960211528739866593523112453594718986061351202390410051143142101621900744265907454736660534771319765634304044390210857554226062122469226310367156794027778364646384375237020487364032674825621952878021846126382525677620668811187617608452709613505365920921233852579764586868772676571960426760738085639934768301816712550079601501337924094138433035291556297037042584697188017209503714593381854515847570576459615939078186331999779162226539962519484243195290353267536077198658422514017838712078978224826585540061748078318365624633142347287730461302828565681127674135212355410869267689988651600539041424922502516190296602738884091157496547767700584665714515658807305691282842165115864671865153448762921185612232865297629825738549266064528200045244821276632944298002544874373009793105549282941392981097003324710262491607197029661628102151045620428139272053577909654122785396527658485351206233144419278165080490674109339224803463794044117163287017409641510306815194296424221767808468625981801022447459891358434762631259716155208757221957532640475069571498088987891697334480315831437538562525140056445793174616701433993975989711274890237567200917605692741955777381716905406638732527982863588989542888139594290976057586089736729500230200552658011435272335487412793280575529880138755275522183564429619019438620791749753200074227247357092378083765020548541242708629472448176412074335329639617109571229954431994448875368348097229694327899467811653440478679509843538489609355501110764418605222834375284862634781453579428562533843542613638789782751998873573366001170281156421439947407561128834877268386627062564647212633168070275996862787728813539558136630579114325858085870738566168720306033274565517029345955671298436305984773849917055647851439359123521347272821099584242907858637564058953678212014332330520602770713272493801339797457026147480169955340435899125248880481713830606978039826573698612935701358309022086989294691176962050549192458005816413893131867231184057030510902809379531788782209796459311935895806879607706090991392671540215111944494112076265346147153575221608066587178496424839789443311854722461092417162440170895595175395669616504682920919645007960667357430587995099715838670886179618741467077299542747569485947580326395882497524059769787238578428307004988197213108688719926740372289892787849135716304132495225803922331499465548913651180314746319162722188779339090532063603670303152228632040657095828893008329685437570433297319663186120139530722188653641758108087928198790160486498712887189374716171377234493502741146727202175308026424890319408500894813531913931461121425687466963232440408100582776755575865320373080284024313132503033941510661577286306560118385654445031336687488531774855367954226923071031395166635553649808044448770368008838248461299448157727163683192500774248425010307621203362552844600819311247480688354819417536242331721452009666219378550308231164508202267582927519980205647585881501539525683159593804831774108272944387534766216708500994286608461109742658752916329969845925957236364882006899625767736145075185504185028937489734610731099137262028362200420255612863987717885106633638303323637256197358410523726797854501115327132814226112733853396719820953824688928457691997872739025012148024093494800784066801248221068033237161366940777127402289232421252088307504870289915161166866013344777906084331671878518278185644453781825692565478783971558501627224611053993748089409275216037184071483366903732605087940130051296757628516687086308930908146299005779068074137859294416967575148448807969318816743930251281835769201509088658253456716571220582715236044325657792429133622147674270673546492801510203300322759891697558123577644749736609186219263912369305404155912212178298159781597501779058374047683227556293958615698341566082445696695217228891774978144230241939136671548389385193873764444574315160144202626002765509604655241234395673989637175553562085516632148508050092167872042078968605761184332106385794301872605584699973259555876928508124496100579997322384287232112128773644156922651439585213558053068788565405078188299628444562662274245121162036556382904315652169246255446653706623279237567002547212286523006181496781010023810415154069675861862495551999573397208570666529720198404402231054128509145639337276783396446553957793819296961010850891327659044889725168614688764880963193440494609216312343291463612418862749599617728561684597505891959470007147536469267946030101153464390736960861090507898477853380047675671433725227146115902323354595632543079393545358351427333544221356958579423222360477570514534477738956900903686573412467697698576521729943826031247369658409433982625994681941725648695436742721350317714107124597574099664626367120185154194523456911036634792095800311968716367619556074352966350808206568455906929903723162456735018318152691830982178322795868732488720482780258014443224601130680484516784701166418968887987189236637643592331040621391424405541422623487558313164855302803789783516445054991860470852928598924620101259617459069107161575420051532498002903508207205112591320453083391623766382431394545574027687030698420880183250737068543734377631759297970641903776619864031765783095479438239129301711954274631577114034480951511670272520705686807387370240672594325340300115134367342444437669867510677521113835697096540566366385766199780405214622702643667360392023889522112284528369139461417550179965240940364038218684145923969756934203344878070721769992068666691045876013170526506423496411432220853826444941742316965883370722695243437564476383138865008679099073273414460021491922412162310467427714255252465749559779065180732085761186842353688866252292668423321395372467214967950438249911395646394925728431724073532946867063693410315487167694024800797413414707989363584149906062261092178862229048297833095797696773637237316777825995796622551142682463018250506781697010053210265375356208266203735134881726131502427086424376293377920663026956376111778150276211470899103193951239340575998175805250002050022683759591531525830931059291176435517491985176554184356399810181334865218707419361030436444547902532304740595272096632057871423878147470018849083281227793510304545365205214547328046422181849003707943856940774084513149414180885352196908264573051676715119048557646910304867515166100384987441959548222280707823579090729175969879775088109920035370430799205460472241071405192572900703214684956022317473675146869986520550823881865245221642992579449617936137108200713505140885478365570636261213467227925227678824646492350014222581122253053841256634457788192086689885441797362652583751759487870808192292421775500390997292837842290151778460947207638896282945724412255617878128431690947340829522358568200980931360681693192733890139746816504838855343031198228520412825538164200843729630759328416044765749768967112014801889814433139841516139163761033889177387309365971932389077691044472713129084874402719468470994433428118341310069284559229745942419189692761153880806166866878258423080570131329468499743763688762876765475435071931715665977991678938443334190620933017989075195966218646531092585507778095283887203845913841618663259119751441237235314296581397443025891611713318856607814349238917039063686338947315608856213741490676637339658365883564158495620402311165802353253415139502706003127499367836639349214668974394645394466743819033160476257052073381514505476924046424775025447490679215231010751191875676537086424323305562679225614040048588609732429942597395185225415451927319532890728058811071494114936894214637718017894306670158436522562747641977872344888454570765197092778736599462310827960118645631852010913650744665762712505196319417449954116938643889635492999262658956177665222437372947267409981639521099663910737487869233087091843769086101746300443116910172994405583069324648314730042777307035675509569702762340967972200990016721321017426673733217910756781904998971295532216735096758692388843764149198044400257908705402493231769461390619657628387909061144094875457611713060965235860649209463381014149429476575740488103726937375433193478796570105405623974707064068064665742765109237998589439430037426204392988263010925838257293952197756201473051965864916031849974768229839818113036055284970443138659365638404399356919222295101619091481849370959369603850003302414874922596551914886289369948340968807215030253466925099582377735659227586973953224329200833255476115624359246374832919909449557254618996395723308869535402316507210496697934661497819471334393306967667130044828871171787845377624982719021967399174990608555030051010023637909049029130883573071563339558763968272632238451054299757648380863706385214618853940748484804466363098887217755470495630159678815064826403098081976290739753357399478869838980104892921487858422492035731956655605050558483048336765795243752849155677784479565107401418338630396338366456024036848364418910731311757175523399799990423860011874902252313108110279221710107853758514892461473398380196851538405700091206888080615183370324461151192446185182720775830282010882358563220201537331396814343310687129243591336119204790762153564117839851323702828405248722489747745912185560987941816308379857393670263350375745837333415321878236767958328354059179677187442949535384528902436339520901760578884839131878035885520515580632330434772460932838084209680221917923920581308536294943655908677195582227550673464663299677829886419100002838583247835999639530135436025365785164241897271577997980879748846637752365565220369544685393195462639289266409003548543250782724998321475220015335783300860238842940098516123436264394979096426914585181719837169021901544388758501384195866183464079460956322894552982515720929757521959998111655330020892917563241051130804677863076115827060197318587401485823424559160521525633452227203626958749000770329393150899376374690292722971214439529043072465900456760754875583540968487223424826855579082763817085156894401573632970066457078961248596485104196898014245285723494213775666869573577351034627575256781852155541156063110501035117630676702581038816039205394651482906723874896492441946052486705615405913814198789112655665829003012386454762575938856794866497240221093403725874072093424774123147614351809323838777003659690843838565807401531633354472232426185450699185054709624196857824253001752051131801113353145281618480086121052796270077449366697147179052571979816987250980993543162425658956883064302812487276319113968246273355265819563197878413683661183194041856441581567967663635539808697759753675389304185424454134115813842808180695055725801273283715228417017010701558079937991535471742325199890953870325734913952436776354976162402104530605647066122656837225396744308136560369919928161534523897805739463405292848817970561874006474315354961123938964005263235401720739393940404658664977631092916121834985495751925108922064360278604072539761046614970847436043167566027197532840908653144218302823342464940966373480875897395907317847094419949644057508099059562780822677759408496977083990488346047367368696655268194467908898103285731638302545240282361004851339535879735845539779937585788662413789023159935940582592777801697437983013442288203651121195964007080367855555405721432893839070290653831351441446995923736647476619420683599494209845506105744393551855329597387690297458607525508798862585277659347176318441779901208789120830695561463107629080847367459653108328027155035063166245884293068142222403981300511198837042834537524403965587974824081535479707197031702059734694291260686682116861788949562309444022225948928933673241572902983056453201848681791435724333973931339239406116344458677969767812670347220950044000924352926325017575868030831388078188739167360381957212419532810288093325829524639340804555703550614839687834628535774861579704595934680966351810264461496630851147413878207865925375812291566310326681442072697653499197337466246660379810006595447797619059360543674689042475511165726944918649376672657267929843875679381674103519893089287897426364402945395150890204540727789791392876216204321816037301719238344823840418465662718113919888612604097425006831961516934757137545964681057694808284687932214881037039283570776573253300043272927329720265724140939200367723649729267571932710477124263369141702092047849219581110019178821936554444709471505971052730523020721287087684981618264040261633677374433691928094503490267929174606940622990895383245109973992821028528755772501309323210509313164149089137896505461515539765617711112316414903911729342959945895547908416712463148615837841294892317981159458854102991075845191619430430362588398302822485082728931980490353017311958542269966608065749072122842942247799145038532872596822250065014643754216510480984828653751857713432873209307081147782011380921969055493410604401847941588636739724615418552344427817481426813211910632203428358774718611231049513588633879829701203490793023226492296168438541334166415993571306071239326589603838409475356131422724157921110527056903395194357964535323239398460516159045309479047150483049102690713947495258605629527712927284014200329828012815422398790998174611810636893840546038828551704856682062548572842721365812049349221024794716162459809935111036410064741615456244812406028069899407588491214021976697966542356906193915818309770371623942428552888199181200852830930788462885633918532888036790466078797382929360540740390347357171523003253471669008394133553937175293213109687366926556406442447554342696860810199671681044978251793958530813332184968251486659983351863095573143929090744420747799559535513654327911833288460635606709317741362602782372945226928261591140576150389292795075775436179025792279467665321684269087592793468950353389084477475442908189736882558187049305771202466205886269400032337692942999870419583983014528523583730490972728998804054887723338580138207896036692582843769381414618892487661567829576100334926032811217347354231092417383392695810021406488892884774044240655052153038965653836067442347130294482170550141798720740841408468394940378606016779096071733395366994397454685860412386831303116661028231920948566600121688627917649219772410683687121713807768269865280494736760149167552988309222301388501224571966835415172230724996507906397078184044262470950281391991005711310609925633423681236200422274894366550562387770731424238018339848289513648344293319303945217694714836622386883721120973112383310042296116194394161921737875996918624572255073996502081116429253482450818598008111545716846989370121012412822950345216678016030763582862099401955433735776733852477049130846472336026668555168915105775935816035778706833600333096558011582750205300230921268430220276957718136075435440927212797765365200654975834746590491212796709262389309502111736021294218644168379883534214540752161019850945134970599625858836991053336106977324901046128264336588167585537565819969031150245344301906952662373881347787180187332765307708008981570610153588883620515866125806256033227177798701076662810231945373779883550439623686149693700767700367015702792969904804158696173771468761371671530670826023413363236326885089543858487456004135052762026728776537095800366472821875919178761110113185826320149175876316944186937267087962282552425864341627845214698489012136928716870806544187577956928418017781706945825277184594756375919944852336605262823395558148538673444811609798065904528492845343601812137802617202201062286839835852051796888531625032529157719351979454566176815646887800354796960550613031587636097520640533661922792648698763732800381714315878362199816329622311605392226151122751490709216836307052914870735090991143870313155367079433186733499244608873980202464336500699685166628469132218175568553096045284318733138767303339574473984535569940016184256248624453370843543634474367828087285855772059183082850775331742362198446830194031267291983805413103302703338745340506131358710746442740472965155875635037376261079927484704640281651303638288409244964652860183611628054937373704005895354154325419078139215912944542740993356591408344316575831252727460495710074760346456550583688162840210491432637710636234816190825113050651719595628938790637402904133375049757828451473372456968070133974470974357265777734315232925971370950775948740638181425219813550426081483895672042104945592447498657494424137167126813991254353843997850856050641083836989053149619595784899643425502986457934916630564742419375181808367320855737001327850603451938622140888127742232214889075819093534177525237971016091741468382368158797722495975763582960169075043832678636441134432428664058066911876103917815187674525080488094307673804543206213005007282349814282690146952239742991596906406227257346800626002221563065427058847951379679328748110277333814164454467643686872659824341938571857671430094033782315239038009842056788745409956685632446036675593973046481501629492525228362708920039618965936016493345142559647785762596239502949825243510185094230206964038882633327022022996356414134288365405186610391461582247742279472823459181857204357667398011183907303728292310527720633809182671686921468459277535273187751070939331905634744385889797473556035050428554713893262408074613250671506864265693850370385837506431816005162010176679682765450622667635780358125843451179100961580445640637850309836060656165963117246091868489007884576246439382769160587858169490108816682020586677180417491498590318740847595489862480940440237790643871931979723264412499975784042127757812507228269034802665062533578941214931346652777134695324819973831281388563696238885976666593124900012524935454874567480254350487173976118700231225109009299452630068083952288883433887023315393716786241501323874105233998589916547507074471310159483913007482534972575327261657157810484030041274804598278363488231326155197305128357577342851909782516730878353868595013412067569199888836056633136221225082800445301391936689536869243744823303671908398781792916091174952332571374536636535685802449830323437237875142185623245566040487310427412342981810884453507148643722843615941210789577078967383833240974962927357320436667658852473341170491207922486247729549790630967347677036278483938786127038217170750144919048842899850413125259428568709786810037279347114381006946761824802799236984354127040583851226321773780919424366406855259696693319363251127095855810952644002419515042070757651121857833553241929656457077711121732817762317669665906637370376062474582593410625533642974808386440364411412717986949926383421738353586173640975916337733654104848362842916405092969066201874615353300967586190347494602734119779396740859511966366478203776787751334049002198657414319377835352747744078029455976300076378364478518558666421661799736048703795262772963407845933001122205795548259182134567525069982092950247726090578280267537923522626170900039323419603816405258244284197157482593047929197997974741695153146347330813299863109040080898627286216109866932368652664381885249396477890618738168773290214913189288585210049986564945347279817942948420561388369987817262037867138764028154988724938542249401838145774955466505190372240313805803101602272531384365694149075906384560119092957856037016970042892099889141192936526058596216138489604232212413820346141894262505144051242471020957977018874684034551009519897948345340847941247664207279953979506478158280072269530212742083814927251787788627364736054807623719561167304059019680882785094770605525091900042870642928148083874426416292359921067186143484203821322851313135813635512442293032959965330787537210924243020327127639188380999053183138934979420267837223200711223095160866813632973739652538913673987229377723171176360917388200363267566925088971539757307278559077191520142842359222302053342919881961897308246563034821710397663795319288171822335150060192725759383307640026568931893293091459828420913023080119499074310359382036809803068243603034645315696933769712654680019574147429249803335412124845228208892358754859321808058712983525050859531492716560208834475321671618057841760231252794142237215909811055721937797571527906414218383011362156762492138499257798226044045355209226792638184806383722982052668019515655320887300854059746762133335740448219227380049107217186000555442346532691488079117800040453240712618063408359669495285161498684556803620000873631930200424086998646728173122592298124490135085891077474602784282543468972940309979894493405782615438850211926485188652415673319609875003121250435012619214656112591776563986947948859578561588916972117622931869888864056737925341650707701482540193241398187751412781615523177636932229757195871560930440044809487157396804273631468390385645053046881804483016663557418721070619080901950447700836797144434271753812467968434500398890638186328615434447638490353883081939559973855992885243973620688553145394337128536739678141041456197926848039364725570226960513224773633218424253518599366156376414825926633828149205431190508061623558361263537691858160516667387794192810693768092320178278127254365654579472890903566388941187356813092666425750676153117460369276155916768579989698500582372930963454940347561680279537437052641412674150622736109761637715468270191532833134506909510963482421996956709278368111908366082212315454235706207231568864576495734588359523745585177751524331223537157846294429926838825398586115689652706450997530479122552326058824713485837855978036136135599883314129711539227985771972395418757175325047441736844412199993532074905471022225294874112227153140632949479385952224998837878884853119412965714166199110029672109166508691575670193195092351868524168390113083375055892264132816747184569318551023029429818383269557034673908476470480668902622435089944685904815264601485589511883958417196281834567445223113303485709836040431114000638313020635711306316850810135213814677189989794290921090791115736917186979551582327649434022775470728110944509680795250471663227523923503477013001173980176712921049538966349470769998492869846637776568508714340974416994833928233670792751049375327917427951040640547896353758270736789214604991861748345429677893072730523391087820000293550389766506167779745717930855539930994613115386163394707710380949232702494783299088503343183337040332255058686173340612630716852321851313420139965882776843238172086763503157465488635913488213355767487649552509592366782812121980032303366052144309739891776314323797627287713583365351366354357472963731096017284551663508700211538164415527416189798466795772174811035253778052367721144082663063902914118256398016633789437740491825898814965223031237247643797229025291205562004758507230477135663854565913129413657956051710450870722355867788207184504745214638748600570158376463732685703538594380270472753939662076249181592669067786489778133660780641036369142949566654847452858947871247646892716404213173147628445967634286912969336618162800811487476785105278303567373273902641309514272874025435581591561965712880566271163524285412339420791561862496892404065151878560595705826029186551829712077029158084851423006453755623990973144687737799073725135857384075228511126183472696840205339012205582415773897193477459353634340806450442490454527049592227894658597897848741502667521946712264930593923244230770889246796687687600176528641819493049254426178479737420694137050760520697187837137860672293215719007088133740841501278540889644464203363869629200807685111643413827507133222608680736541354954747993506787991134406728323609376903620796559328540675240311853008064243863157906996505088620969959528518235837112070999363129977394829214731193996362349105032474754763450960214111792109122447225571405082910942886343520675181270748664892526179211419241835031197462190650661666173613168738741285919303743998476921618922815739479071591287660391488631272799952706127286954891711959049872412315358806338841306509228312914070741343810557085247426290746253850606524286242662499684238799107429613072418582134752840581456486823760055358952646823700231744736431059746432789781790418521545585844276852204323458243467538223045736886880948745768506826490254456996041364771905456303763217519463305945882966156810128692393035674382338304739961030700087270772883441393602240142321825628582742549777335105939040037664419084917007863292945671235462167990689530606909061149919261324032589692562302519074926416812187538716044617088359792064835253116313127814029013987181900069368216540101272634813696291220591373966642308200620675710170737846248462146172844922933430140816273896892239847151787251016836663848574687954465111026019531501200630492127382321320421377223763957764578257593498201718531151797274908495174492404239199681169175802601031326672447626369402488024076178903224848216792105332593733106814932264949978202346723055360122335009289258904161262927769594716095098108025584837643543146388879472204624917716061378357514041530316860890591929968933385037470666921566778850249782775131365692745032277008271159805460438588612924136952407586573449001791538033487812744662897517070371612202867409226698529993257595734368293164189069591659795762495643293405218811822469141174345280375679961383254468551766977851947258188199393783607654101990057040497125837094001496862356230386145071490165138590893339041649947901100874390394018524114103280794942301145504850919481938986038953689675731076487349757825971491354780537660871860516375538831550929236253939017844158196616461932895333757052146621956858143491937699764968541031627402923052041780136128397785292030280370749548033869191755441290298379889838791158645965145004452626303748219924992938590538569413122008803780725756884943079443623321909069663916958037261237530725601821553633693351941466483664079891164363051661192926904742911018301324063564679608564579473881071496164174912780796440936908035771756904885300795641427562566812724662329379628745849419323284383800422807248812207182121521403521517026377942994857935906031830665911123721720728892680449056435253625579820080789139481248439851655633166367367391883449051677590633702445294581285792074109842108026822380670641303116789795436835422190045086038639312552651999345426212818860972493021269943494589365455555737075356043817030614823883655565862609914768406694738806227628352128963566772147278781022860070283140204619682814442515145922270408730402344105899386008983182597174176311966405776050681748276801919085205250272689412161562174636003382769114201846155711671945081358698800759731667162965862791700939121218020343363708933897438380650797444574094860917273927303114653687478144047164837064831290502153227789300949170464338801979164907195449876178830492906749421628214995764194675148118222137045823847011488799007695139317644365471455388384413079476893576358495405476232442896888726883030826406009932354273363476972779236602846724202000980097284428258525608739748327333374854885983416309118824897850806703186011867878452324015161940196746995269312586323790786021690116104357687307700793134403479434235798984052993887407853340803527958925862551184509699913693414631350595582072228905553767228376130157264935327328684303611604937028696323797888111540321852821602972875996589630124864103689860065985901914201944087053940657801901201698232077864520363559177112672851581557919698117647090688818320607081221930346248119597030200179823298455628526234305304547773653745823910030913325117176110093375180631681313789581477894908881916920211098692969251014242710726807773139397265775224947192153183541199144086884321833123505346407232460620292996167965404923411870357860823308867897259591354000862507178143127510461459882598978734280248006577612121895593822097371104059753536321910050116127806791870801611892386627756485937548666117914263232474245490642721089176896235150776694284804155264953443343216687822116641718708549485316268133534135754722587450528083851386128038045406374688315115559976989787403155699901020046023822606781767220150202824062797064236481331943061927946820393464510335646047446871899524683076971536049129891508777271017815121782356527346861304591732245075476078735702910275316342462376286481454176630542219143046890087771040976358016100711238914800171484309274054189784834889771494575092340575519623503676846696686041251938538953399289598197750992599366318487922545970498122708052133059435930582318978740805797466388350736410242221516783815199877623022119033574188180323134082565305739507820325835404382243817548772621515890524823945249927239603356188031418244678988966994429936292295175574640831552799579187410612168368873969449372320393699843273393143960962971481271114178883878135815749534852448690146347813182386396970311760209229824986041789628116369445093574327479451131026592438475283538205331644864742561990681551457086072467967023337687055634379622173390213733823222273780360559970042582291507196527075499633392777825249554681720862876459823226255193921346974036439919031312602464623566530640488261512915538618164256281468858118782187777725840771180238819429087196464549419713386986604578078676908305971877399333843940305264446078461179269674874070654164955679007404226522698413767833934819306396973439723878258529562400304779879542989363912187029454249551827087627389106013862883117853207783461141150641370569038229416010331905583029700055481913162488505110415504694436748150218774009046962922552132050015185445193035148874334149056657994348638155818056538980046146804663794184108164422944612484912471472181723393246584978323263284114011098834852552554672742099809935601543242798492626644866457672470597099908384715444412723234854588960265162867423103978167836878452206662866832024340020690724597333143327236801756575783111198666700549441615415502422990754757072606606584586695601570260034765905374002451127132390353661391684166200883315216406785348783998160982983788283017331180884374003949740141937897191599636482171180531858296931453657463466734477932628567192931481937525515465663737377162164657619981033259616455828099564878766387288114067939822923604142747476368712362227890541881992834678163225491063218972121954280555598304904734788168203126685425150595578620409294658229471467313862693548363843868675768193381209823082781126345115350842147562686619065022633682905602339399113937281163046322182539802647493673237917449038110189980028557924615216037973124062722816184697809358008743226071655939437505868154811808229507417372460730439573220196189071342267873397032803678825204675707589289963147098328368924621404867987320759933333191260879553168436042629575439600514127035092339991208773205074660598824899345905746466497294500783977364974195475771086150147013855401748429958199904421899540057338168386959896663827300251215821329076171215420027549893359690066765680871909691810124058821174783233324024070440603097079663712481881298464724228802889026929009996960544607422509063210952873243889012785735606987058148981555980372342843395224745934660866808661411347388520124817359980916862677097572163232899669281942190764366422936246665409231709327498136119287780317449594166536562288764463743593461927929114047292184599806698632650170534397084969854716153464826253991977695410291553270040767517361005587139617697094590619342738802695002042107110734251308659588706414160788142599713255173179494955938425358553898365844227664937092810095468763039966049482393349055549636517920587984149311200751112695738334441434847868882865265708282649005741590870466629047675489780932433698063815489929301766602926376359739998226400795797188844098613383330321574460799042762484063098389759928455683849016819286322319267980708294540996284948924398340326484187669311760725390272440852290215364564382176051519541085262017654392562581181995227895911663697511484730041197491305703310602762714126145333085185991652341060865326007456031750149609008904938830202997442449526755165306490113759632432178889118209167451501066586173641724456966840422480620160863468264916518998573328848302207846380216772936039283086935852532633817151172667465919159734392060589073220009653786278470056337812773706003214845351413758117478389781205820511723224281873020720490578448259609043941192087431812257599521517166401795739297546848850067493568303461413302306876606207980541180411890079337695820065070212374664736599806812407714633489906034178443984203501447403227726443732555267687285702982987553412237796416421615016725409716364880490363141626815649171369704922781744679561344581764499180231038820990198091059997570605193066304852065373019207139855997638427943961248138205553556187835632171047162150370280570933621623498055554463682088855723049843404049774514300373067061090881306852725767663858865456888313252113055453035984955001090513490015368408629828512040353647992890065574287340692572337963553703200984232004705898240003513345194386022628114110505218465737035257279790835783944946727615951781750669358594463447049880499094010786411245693328066549256775116914417501384363126192915730561356498180549811699810010913875319842740814669053791766517743714952090179510099960514307129575989042890521686994992432858050452814059554034327217668492184767422062905746648951142649065945692141838195338744783629767446365990165043884007186547174381899138940866069016925972991838794184429221302967880467108974706493799832543540804289132773202548826353716885078991644291589595660178099047291222931917126347550560133568011028179791948032803649307974892965433129338369905174107960952520878846195783187015226456398800135737935957048554026668412156293195188046350785886791752692636926606455646460604556820984966577352992194086559139052791867414073854859119292762226490669450241915787370074581113428907325376871249511199559291820697127628922251097352037791294983607248279732501747443291796025947253130578298452248370138021122076835181232901711904609758907301795377968282918640213140794976552515434044726086767282318553562631854425396992129867884183652454793783269518016369789445283835351899454104220893481824235091460149077223783599753823111349547836473580606219413053839864513441246727317612515616736092737911297874528465278029013150444289323285995394506073093379508955747483240303181314041482127577206938437116999967250384884226666662276407152212787154954060735513351769797269111694164582577997854111841743778050357388060625470502719927757567562454261232891706203728539983581803718976160515411589321803149020674842686875714506928685954550366631661960232959570945773633496425974028645649098379612131709762468539771234263968400716191468456297661311437511743695212500769653474000809650383406121366064178135376878755131554364650816196533981043104666315078292821496707972324100049287431978279928432663403260399930315779339364280402784867331660790125106613592422920264718335589709550823113413794582927873933856865837852512297772933198461253747448670913449723159601898252419737649896092217996898428114924855453723277493452916720870218197664666711530972568559498086445442327058018863462488241814379711592567883136029150232597671693080967556077495443796282859036597927907398848242419185449261516376562185663672187702156890634101085812867388293427259713843484807684812823487940975159738230039472027442241842278884938587642589804116402177609858101950795372169048844406565416457291253420326843968961044061879633924051355217382805083864666895774598022452510237970501920734093757982563910306134147621244099675823491383107817710735731972481590723041066593116279487833554410430148378469578804060875941517278024707702688391781964873031939601299279237474063337550011795529981761153626694512151325371806854785024453298973524691112397396194807898270756008666129130985413277680198705607072245142464119924288620806235149694925151020285509774567651598966505250525450455981815250174616208493310466122384139404174555251474610688904283269888127876355650430273382214953376668603222283167914167588850084788127406249335110440416341058128680446828537676742498200471252785256214080584013188571924014229521433439051248383409823068346259105473411882701525586739314522014835511707289388356354095988223895621821778162549604777150201962722955663278072548020111175587764329558847787372108610165295721637374269009402925805248598243288634614492485038064965852857534109505947384770439001305568199437919596926680378661588301420904195171168455329441124998730489786502535474135500661794493909843261661613208608725849889846489996720355823053969080309464133214344720216410331106989179176650534845489325066898664694397482275958053701916812408360953676174624038626215815096483016915936115660085230106401116950893377245232122181652520185739115308292917578343978532380489792939987317238041902463313228258432005280990244539561196857552091914310548168210504593281002972315305600430907469302986511124777702509893558657085768192487736241277165303583771871662955033099883215711410393695563961423836214906902730200299795569484709326730238032512655785766715383381058772028521100691229140134286135449195420787121963837086900880566664704799134513961181127500649074779309041135958695650086249739912137182161442674635511795699569225478637858995681741107193210716387865083977378732657095944117244869060699922855793162673475311814975405589923459430531021441941275542756844903136381726870776316082288109933195245952362934361593015121120212478199022482199506381253435263662715724106294952631059199417276693434396110864403464992003066743526947513432009934484609826351777398362396219089710605972046222833494957949866627233199450177457484241528227983977861123476647411170041075427005376962194660360102161205814889832928842906884654752320833863068380796229655876301428025336761518239088018044874897627480519002739535801357607159720030061537888826172820827228763209924029503024662315301761195713041852014758879709326459160080498754764369202166186222590643496294094312638398829738660299412946788677331269439829789337648572406787345456856331140321307183642962466518587778621029948291634573208553424074078149877760166180572605420200105516189771250258587221870489259905773933445025827330226581578077318813453637185351802540413726968107144050373981386819933965909189268094337886362863064757340845092479692928447161622497346927947575076160093916685187034256623275745078310947604861632313636748065209946578120284103833789727954490563050168080666033809604722993409786011603687435395095820817853201533520567838009600029448147700863371666750403139405817509623364141600624211396685225960322616689018451306576218445673968470554815082180133873538025578634664113512982817479421483304002675597848048735571268648062967363611422066330968792155806986937229155337603948575332167490578535940096729835823314164216788455768636055801123206213185697866925230824501388394731099114765322152623011471117492244089942172785870409680483345034529216053247604034292704672899149282036320257418842648634690829007015435648735280699814006044804963644147252412128045433303546809142808788647465960267353697408542101792110354677431647926492150503654700133851824227430885298104129752085487206226405284067999292070970777479163573381517120003380064266918267318777920404358666794977399518625474057192888945821630971794733226274057912158639899901198466557224899332139420306191068529602524453186860616922878073160249558744048688489461907785428646449956383596535923517862752866740603621829912765139708256250143434596910328478046651912576763156535906943536772349316359595497755697117817966893005534117745520789527135032541775507785583985936248190493136059204755424515969443084040436383863507997003095106820460421519752780279934951469588682041252884683115883572559229171985172215976417075344334071809270212535245926653737880797392984169043445741066879037904524503997998445172233625391789643105334048362073551612470253280520640335846483895101811481928053819699322855749361776311656938042256431824229674011038470670605850998716198331607029745538659794732621748064076716669320210587261888862495178912931519190624294957255349686552342432279468381043589407719195633757723353617732869250476374353770202165252524551841753345587738498269332116685644596649070993981758524412697337546026061352328628551347026454052641526315854161230963124088799242478932001753471129799491242776971575360230743540040850462555392913881863889712476749688496267404686613915785046198327520548630614657808928711974329027182635969804478049411805309962717185594519962742712924274435975494676224589648521201503506789990079564525459084069935548811552919107452071702769267805875366178044078282870735286000777779340645417522832804217593338516009992906586214136106378582336827450816339817800028367844358678291263911462475197302661256692775096386403622534043001779420268212758757231961410171342425292132611187478259813264855197538640386978179171445334302813951439871502575400875527764632951118291849336287095428753643587457755666582709182034183567493463473399206386317849959211329778732870380400514118479775962581623341296273887006263698277140414601925900423376047957929973047469851311218061391444544793597201300011398041255045264943099032465337267202078639433245839757136063939380059599285250049801030092518080045579640449112100237787060266372478267428333386840320829737632091077011984336030438027599772373290625892240753465038598299389348474427247658959602183169653871121460558058183125834066870195916887107299670189196356147332109392612487255796708289704350577964409339547099790177726290976005773413026369792088752245785759396811413399238737381730428312712388963107687799268569351802268638165358248476996091683833761037226344510226326249295230869841656036811756122294914903528248618144306717353068637104393166886614074434362598222908599211775115571349682278177193828084698413657742792132968385468253015337864381927563895410928410018472508486646743869571667401849683204940544992642872173122648398865624112181630114745786872111208711735861809193733790158280255915832909939527459153979685025586319003102672458525501036876275858064612951277598424705551955894334987863718760862139364938517281689660725981857648033028629928729827693687150433378768959769803529452590044934241465485150502739538256254549863243933212844129315664878953061152394731041794676806650138708319009420980660387654409009888191769401620630158558788997648159215823095813366755732170894052220954631037484028243055628610096217318985688830298346161704817400093172793319001738164198548425084885635318672466992239078353175223731972011944040866238485091286145952982180425638911812026412674052161092665907070800755814636434291135319090119967345379776163251302981026964715111752698109088679046586047014829596088376392523983185194408911046103474861517486672882548518328332773810349589662522299113090760340279007139344259678326537439962878403817197479620251522626843620256040739985817758628996897227215638304499858524034689835317361331257689336108619614687214914788440156579343647127229296541150344649061615412467747484692135724207083180908163175162200390980493106409549591339067816188896265065281499724286281250042171733686979167740998472402276146945840605330979056215553235637034716322456048841099194368199464457140088168964487415938975267626705255518574897591436893390998285216844512092979474194971785009090435056783803663128082887234818548817075353167920902721039488560190187036958244620832954454220907407029809537878232848620778134486739657617830081174679433382366081179222064230717270700637844177715227493845429951197313032517475603997916011418033659135885822253808284786795529493577487341205872652472209830612396563177442857391774764873460105503286182810302368802354962161867335909375968695824590927539615708151912206979824588579318679392767287526814495451168704162147670881505159108880838002318224309615130694505558527872697289358101310699867768727019379678835692599808504683180636501959462676796549031598803399057117908664196080145355886039931750195560271789359251974373310849195639560015277196857837224578560920759153651753570036428079152146518007259454103613018547471086573374762601187493937661060335784701105251124167814073414766689476448684443945449026589998450689693398561853580107712589529644283435857416413267445405767993824608423132668277341924555593250083860714944796527945739109846101914548416249060416343817873843443146305309159116366752460193610399286939533146280869767390253000351940544785164862948238791044943892099797037352007202601113492565683714849785752955986794630430594531588478070535123911266263883059061567014894018620328269289527291722814772840249422037601754863586214565008808039909511041421902470575589759702417537110750986737914729336510524042356633262782490170844354471935763983006846645493919256863322930525198300757407943376108115487929031323826060607284969399581787358888557934810242197231482894204606993917139363923335402060340283246410172222950846009227006378647496833496783261839826486665767738147914572858786730444488331806655235585036778240940174611804377168314439587210226951073479812757673374517952393186119624180751086308550776052888143253630728450384189512825288521619597452726799778116213706293547250082238494632638675577715453972000739206596795193242892063544987466483795583717690409308633872892776320492116656480334858638131532856512508925395881321965404247539956581000679590984425971758210344186703541871704883833512587860369168207821354130011618751282777995072417761004508920458207920131090381499875909693430549276246423058255771158322216851836513984205654117979750812012748770099658571006914715749272603494682165399622722330502113734468017507767627567915593226734004409055058422265123394438163314563857726722488829980946763877317468677652495667460680172836229683049749973791780806011517889548828816719169894385053455090831858296717622653449673965989856372489330902050229779995511679947540226018020079062124040833527748408406079555106595302892637160370770672674632274524048919557857100571972947551013700682341724684885515184841312782298335813355502848419711311322484860302114894687089976066596958803564918700233050967899282326971104059189538295972582551806661959264064073500415555889369549513370741332301940175288584350119240873816931931396911044617137258172851430799333745665547915633944654060284244822269115149962169708863713598239453559811762613713076944701988030261363174261681273157759584776462137915190582991998393373647118726675798682109537072225595397735438930203663952424415200074338014684047488340988097967275018741990065214456924471931050878167159770956748248549559883717898628158924082509093671330454105897687132036493132717737618798204126550696776317354685568156303906884523081393486784520745874074062351947031285406799287209838326413105430804541080862870789822679763336486270625040528422852867011274578243834269909634806196228938419216079162589826402743842207050314018937019258328247924717956647336931698856507934544238752451596614978898171774895618642077196943037539468074609858830921793661558244635503131104809653355916156197022054153793452540459934633232440572210327551827624868285657550746212738508947513427604377454445034226903733280888581881800303606832424375893138011896262281372278265900944097917411535030205737243699749772895273557486029400027338975344257255293106918039102514695275992556874449944995309233942473887503429002675493389556271269527080644658549508651418739694206734278878906655247209819888616773246321281043698940954773353456254479351160067399299219453787934120388277878540478049202794722222248694806722005315703574726245593391698574840308136593880535250995502445491011579053410659316040787715889096536330467303923097833013673407136122009504766155909697089633874549328180325122701229044086440271828792300006900932205704242925909027994767572596209861496457335482567724782918508975972259498486359721153908231405644245357941403958699972423486491364492609989020638421379842291484624496990010091701495970747538448362015407876980878137071477588741348531258955529099038401636753633048081899657797547544169249228816334830095492038412395400451696642196349601367446825759629328166938837166297831844063204201520753292501967759073054613592549093159398966096315377626697927670945413750226436043679427215997270023394039002577380243270080501548658148764337113955502331097441638774219384929486405814142868799650944419513510457553368893365376928426656989860760622719506931924221543278690134435959984729090655881493542694054371668362777495246646621198941636373038115968006188900460435385929137224402498322303818295653307825721467642066725636472558015807198884584318758917679672885326821137011495962330056310796629059152104329727711069018907904000958975312803653119300767545062935397094720293338373653760489255186193343606749033723554849105517986991726851258696539831204241412846329091673316077769820361503658351380867303381638601027374595336585120364765589694811570774332420348725997158817143776577537062686775330048883791239302073672769418339084193519758559094288979656392434711081484584773600805641808665981599324756408924585803484629054077630900671081579691136364100890202432683572384102754665455498779513244014352001685446450319176407519779252801970209906755758173337282951389153418862912131841056644467458605385910397015340929270635196524141318159460926100032608053887751857386810647636034531069114096265595353684557579465457892813893412323885393067088167839491736642200927048732694358785090097101367013635411880912629091640637822190850461825086570593100054989510987807564644117677736855262572480377712985662669682415902937360229817994761186277877551783302913049657434077207356277412542594520972180515640914198531415750536605117149578973517561259608930007426756032572125361414880780366456311149966200157390801741890060717557907170806186351804201610650995962835632253712344598449348297866975321172017013771773839857077869927358916645399838508771893945476906659069418466510933841677327433127244223250281077270602656638652924739964212775163778754486779131586682288977769266710075146205565136082548885676476505323537502313606199235085983863250115356188490851529905462135393508993472334212404858586316258224822294450772728565623964544223903609292165369907869320602912956211409399453253925976295872358829720030504807393166566906839973196861605033837985272464597991422567015942135349280043584029438779296711679362571409794293678093571505510444286452668188402735068413811476328289095345547877247889658899770116974962648082642757983537198609310393553167793340882335947154528177524363219808684868363278543989459619093560689705889739919129685408425510246655149213151713455875162621997824007999187033247742063539310296317052180670644448999065919825199370101005615177155976372663489346157856492614973971423355487725953677027757809713342393631080409412779599089482106116843997723969398669055142518886594681433759890538782315182016773647108603772949961283678157468960474285342701335120382168669181492212457686665614137141791711541232901026299259323735077984051559954916704876683660042573649455356629028383813945542965200013620812763164371612408185371568998308357207444477189004773780618025162340490313951662650307640463383945083769474587771324277046525567859545713609684412377152449680103446454944909143183551730587646783439094051023354945899444177140871817452310275860853449790190068199327160690353845216532747700214659458430546263550383164482926959428976361148406369673654502379378218453090444227517346834294090429690824574020330167152777276756842306424406973887830881397405899414106977151455579098057179949313121278126257638198694275852922813738800416511080047746928300061377574543804462551214508595795055697754156481476355623347875627933857196398912876283813811017146208234804515474229773189847485064855257805738251288452692773952197147806237276306652635422824259422416760395695827227137786562908917641686412454013564211221475291874340373236400833845880580776224429946389061141235678670084327978834365368325897912222240959803651149579038946892498034173602613468446803110423728017649738650380595492620574380069718557230178842940208004000628483222040420112301354128702968961339711744744530412265568239875644120032529364745946827522829153741756145986376921425864410278110246082185017706967872744903223596128102316097131209346572846358642800550086365254362004157344735178099633401415276791680522074668921869405642518839786228315699731352070743021393169889341918769365331523065336334329182016703515151371878505578967493750414542516127661406612694789815402481113515237336566314417697029346446658818950585196852376155483945275973340690210077417504907631061842149430297330530130413550211806939965835311144522891565066571958898511678755787180719122397495411765018496252912856926673657735795213758576044506586175757539404141025675688933286381049783055664470485760001051640082468631305543039928114496548513402007601595883500585597748235072760105532835759161294291881167338322906550969503714053542302507653160933038438194952751418519528569463982300999137407686614170139339313700688614320932578934558649145819099704745605126144580319054350606058757124491380432786896361760348092650410668413001221391723581208897144431246197852772723733340044758470772607867404477265707697462305220339497304767694968659142088595974463834667811380274189310956312541059408407751646206610800502219144150920961195210892221728174675969017602592045793245948269475456348505467105605566899602852286838289373498827187627075175841636015295193872733104292475638219503162430417766334436413847783821433225279454841098804333865140591054303637420349759030718312921108944630320460641142518151145685797124118437504232644356678613371430577916880413916128579547201941623413753954275050741653317648581856436811464037462604858342385277210102303761713003325397486983401989502700299942589334224854869469388126359787011454030233042446830392006809284025197320522025536078585139942246941651518580194973401115736589420693290748144570547083248886902330221474621419555781856077624453665459232746147402891023040327890789827457400566448282269026663475647734228443332980844008785729426223407901385560741619690069793514699135779104854110843284198429744558418628244123995119761402719634478578573825127643938831924673608174200185109638969442075210173686098254065864374840707428304045929105332732574168331418386537198610832365466841263358030868527752704530863405594552901731097692280480730070904011213356684436647898829579169994360968864338791245423953586097499768980893371231328779790834965732570554369416571601366039179360636610311030934233116534536918608388590959406447487333123997769585866470292590034428393727011569784682635804796512023192119878214469482234350561828906539597358569439262601205096456104679074281887661475956905851795217302420456230933423179210964974177778321155225004483904273881977778295847322172639068799433762921349106735223670652259598396926638004953671841876148173769460886758774583214548800610897479279528641116808476513750602957798221872184750617786482452975678626917685175443897120885863304426971868953899951577743415539576514298338810789470530303954052009868172035992442763115887421102708344295079459917536856586967062456418012564997185897908891435733690207854095292462699857881929802153132847438976443917767944374545345671476029609144339909779229512904385750018845065933743182711553938455067431841806374730627311859592906175117556048343929237947539041458300973397613005086917296041786248401083460313192347230418235034459129609975203575830749258825698143173837647083235261360231364226078381590589426748153431525710504298076198575493171874846913961543300684257354892212079140906751790299764957583811533736517371478283192487993252947482502018614837413783481937174585024093362209839605864798565232595921361124173122973083397834417512418243184265915443745706069636081705828630445629393767754931927689829975119088297044883730515494412597483329572274557687612687943735340668267710171348357576369665123363658699437387400514558283670787874069127185100100684876289571287522209542413354143049287864212223098580710900945425678881334762451494774693217050704922302980247376367784357834012379214137006106968619100474877672516381502484623809815830857441981618295454820075676918052843770756762757673187690671149093503372136623114132191515370419896507380857552169190145941500362775249064484280729907371254768806548137429437050682041610335634216741887909533330452526520650437615679823209967281067811533478109068135150212621063165912882531442829761992125753336546992065755655644857732053303212549838221278907461304175489660368868924685057769394427957880057401840055058855267338968285902252787707989995556962798240057538009073272879729869546815876007890245120572680171251672394716067087172870070022293106966544964608039654028855960655786592128848660503269506515284780702108275557844255443878561743955061205610539950792455541353192151248295655753682931622050448006463808484448721021237659451821386439171342804599390743564397241160636822621041155165083044344475315190907995663503647214320548551875291121817146597850620064227071595496375709135472712128368486425412997848001949094041018536077147027779440032761202238306574957755566686850798467626944210461213646191787966252038916707491767481076617572928722790056952598902942889417659752718009164688249112388710380999837029276900316100940171152957837516549734104458348278087586915168060638881872286319176989884208844514220101176587156212137940058178997654011064518078900232190465571650461340351492311545281033690634025370148457452513194035441519202993139011124791958046543229846503878448553639563142796141105143248057268534157755349791832916438732490993949059728046543143016619387487941308232350059272682600026610464136032335297018011622615115757098154623428488901040633774417747098023245426430219282002996405768361439361639827599899130495750747445223655228453198799780889620677531885475813910113051009145283307094307269630949137703994543807356058308436298126531822715799269981023406579759066805064965615188351501343744250697996690455482202460648566097601572161527621966102069620156259643048907014396076438392280609184159061471293742466384887406119371837079478277053024967640059499248948327371772597898173116034416818330285286784189300909171106575502706446513105339408573291638940077048048315794990635706036442351520133124554313051567359045180150204423689896001392477747032966051796341889420733442235116608744807799273238010233479228556454839903717925374083120404396498459536735188879526140547596387557806961176220409535223119726995517325396658740319542283699167542229868298905026314241449045985193765730700404469199035488789993291022167092214892172577410178462474485402686793736929151534985333097836048395820272027867545611583484831834463423469135035257365767751579461127240588522343464468782502530954294415409121931398885535282675068177228957566677633943435725682137936519495752228943684727098531127232540171149484171903593536883317359217822551924141798961680167165072340461339255206795651021521629959429585330301641722614891267924196369640943771397804437117376479785170050167008648277820399473060804991174370329506179370366821726997465156042241834340758291791652514289218635987532012645455014324269048023768368118997871342865388006985765697001159078213699587975780272183875966740739190638435316175621801577006545381020915985208703559888934905647766578220803176501179486134396813446943278106261832305460772511046970743430695031106217099684140089514996779687966519761289187150603198442767074786388413718990716987010464092394084548116310274341257350936216448825099301956306899658647423695749977346676932816728160964163919300286225702529591072380766424362706544534053545477720746404377817022264648311897700597263567199251136148579585756798018327417142263014495618055837595476104639483986763970642551909282844832223860362045481874937732280891591298134796431073663244477779651123475307440966084750539822990129739940762225902578498879545935466412490242534018835839320451896309076315279096030209913199136894593968681202257635662991449395947069947664407662260095184740711856229161982448751750416821007853664140939512183912950337337302611586595459548431115284151390600354710602284877004848331292326227383253685241617870992424442543516656911086221128186425604040984726433247872681438284429937873248428148257731035160597659680940538988539637069285443880377857772571214372089870796814152609143630539521997318394328345118395514752036253981190619916768320279246689219801158165751363592180287178721256345505455794479312779662206723493565751811921746246186800495734246440539564138787260090466654755721569478289771655483048443180660375271334211989001036632489850741519230095935691534208287407612150465995139146836310732563404904249595021167943576685773328088082891435994682966440621156393902048454175244229546090153751866531090854370833766619645801485188913268961728084920234022388970883885099042480570748600115514092831812472629870241641617468408920725651750054915607784535989849732816679180247294440094787024684376257975538359655811321298917868872351559341216593610707169528310495589374701453336510109751134714890236941756987514786854026593419188150857498217187785171983081706432724271385599337190196526434569256988514669132387451835456207593211452927224407600733286897909668877145210004114950031344586822507784040351877309131486177124643865792074520278186026031302333722389808593897578880258177098740916623700123754015044122557086500768817756103447419632027247024418251310971184340916419239716549323064008445781598989402801530629699076990314659624521801659164172270042088903028934904704802016659031836140027768785411254449170596784767055182010991871877492255217727237962051397623880897155873313557533225152843499681899470161676702695783397413474689496106520046659320170838052206009960831570956729278456594629647981787239237210236520910799739993396327814354615987350324787828545352039326258107514461925238923572190483315375246890855459136317197814085454956996406579782295306880885742687111697177426185961405881072682551961678878473753249327212241237495089650643460391855938452664876277784958571696225944006841199543895773258716762881902003095079212535791270018922220420580098585193386664309928321891219697373193225317834691476545469690317823635665732722913916004394285307393502277572609069464593835037035059297014489298875819731123823141293573998363813082580964914360600966507998333381365909588452550384940695025210746445211140761548232506906446314640901313109865616368344797704832357391954610237496322106917941654156105608346325434124976267777409247514924228487627142651587495188690127501425094475651211908748567188128859459306698959833233977240525332819742548952686673042108646758908896387192575918734698779324202438455248203049698977609555205885020938548834191028026064648144323508051614429829566124646994893228460216517103676712861840936217686231324348158194219556770759765230924369552353813342458295529748030207711920625005150992635987465948733449390421738966779072400579674490948177902921996310508747316859669720326958425527396597336421668125112235687510796919080329482212928143710693171440433750024211132499735226947243301387398470176011660616831732103740322299783858557173235590740545803611060427006997102009231551924524377200976927861625584541504548440210780609119422699987796092260599570897740056663667311285824346992255099097869148270309275286512544004106622837425396221318495725319787939628666804647394554875504978726553973280326199519645196664481865035949756333851211493928393866756825996432261359954841600382488420027357158771679522845759885033594070949777250492608815016432330996049131179498211703953732187824557084414793070744771661572448524339304980196231375386130268342051627995459433619766991545399046459476919452932088240019705600555105133698778543755313373368708749697884522782001500481074198257152809246477990834185855891250869688628613237132772978029884296619079704514228466323200300604727420044410706383955557374701217486624843203377122394058981228694604126858358002653353576769351657390549380145824603817120746557921396343045989633319387893076753123307116466538310881393978466315659269185221304015770505123862511905357451297594260019019815261633577932176564576851699871344256233289519044853463223046911041755547993296944725221916070739472012339952796975983136324854797545198008237933394826235321411797381515274859640693147972662381516786930077172193028681667446770455588877767916016497383808080760706995238433243693511654530784523527769803154459274804916134191561573031751851467415135410433008684592630688588652560560643739395289971606444334877579964650084515506590936705052200045099279649107837611894334478122423124825449182263191868132567481310118467409379162779263964521536279391588667402529036677661438396046873848132263312267202516022047847137647107918785779585430215260755362240611864909392130530753066583916535441665037618687577906987249386369064729166828389145049327894793832283394891423765614923982057897554962303418894868892504836648234129956728576364241033966261282659445817574379621085310748806749100636820139580439297558085718956491653320675943531413703277580323728611020924740834527396173343294811114262879609581691199612052257978987123963132972268114679390984799621677953861077221900775239021881235120769981621217857363265799859809586536331549891209156971293162026295014998870155991304335642140719722762701303660615632151698131006210323554121029940626071135114045797578320711287197908056041988328409117694721154863933321083550871035587083773014324117988117714790880612037670813444552337155588295694499306392515153015920779935745123532266572989506772492357043373461836010910396640682344278513836774583037725272152330970945956253400075128789201820093782165255015694134529345393635698014020452599765566621384535881394166008187516321999077880737456350884190576412082949284136363978810888500820051155300114502559515253105318064091928654021909853809350264007116616515142717607688205531714971693730971294558841895526121018805684202356416919506098183306010661744770569004434444429652096141640111360197550091973995000036580211546587826628922655268020958992408193231439457457413150261129549439661888324303076935242402906452807365028044473638610078006202319054737948835927262924698619737104383985632908171943569213564549354515764738784914134645178976225225141122828721332962533339545798434927056430896805539742360884073792769444601135879852818473002561103655987605115012660764786990663456092900490532952207601694076946179255366208800669420427630671752703001281218274968456459967254631282517364979428036441637268222629352611172475798113317274992374893274305587320910794926341496584362108651519176586388757934916024666435757459610725599670590980140848147489019581740405390921410440884029826497752483635129436626591205206291179367045026940673288437586994295538234069291274573215814953788970659271907834052618247026980420081236932312542214764461886481798970040070046126926465607285175327432051853492362612384108642541227831523727059116951982907272248086964756966844842440390735480037811893265560308225660481878318873616045112357418570084537396937062716528673976252241575658752573141807035602805012533113260541636769566424611576954898229584057492205101029177175632610305002911457990834807250884575668683041904915421273426402520031501758354671678992172238841005003220739145289647439874195695335032171724682362773072342061043084068294888762781778198945182970188309524619082106435695745887242775806032147024806300930939116269381253243428363708670445108483516254946770829178247550654116303666684161827866577976858571529126989732473350478786888033586491714006508550243855628659824229264347522982653559047684003904322892535228509341968115471640990550076360998553889419295345426590129631974712541253991767823716235556502663460539077063710190683784353771423960935399622797231170721219931882651895507806601477613448862544201780625924492104983567778671922292355392145825922373037719226732857418735933528958281424616945041252190454348858975982002536823211204426702049482039632369988922568601740518162140426423651132280870998754402714976235638698537973744183266369609775242488321443073773557687261761530299034680146686765075510025339783872817913478531317539561620674181779186041161156089704316311803680706760927659936623481724851879408555736149069983933555209005778713430101330826893773860054452096868176046341869477984897862897389103924653429256878184174803718127735925526127388096858929344018296792956861107168325174510064181290860349017593247289790800911310927597305371035418909729814459287891658266271364262084700347983476391820163688684709874206897500553984637843451566585520377684195183341933296462192891873348544996638787786740646303577350803925829443447253115566113849950602264500155674142831749637634252740573466556034174651218039392768651544542803040910640608194476884059641487584688600635334746503392166993382657281971888976082645066690713165497812554555324772942893010870273031241286420181584499214275609640505797490128851790356920275216745726522548971031440048190330061944399032495657444108116626327601850367076649091509602657441613240456448587239296622284591953901581603832331080863198938709902962228956409364915666928553757222810345039302415631921187256967306516134106571217193472359014903013838822945508527885767884252728275138044487785063173361562333862441087691259806372124711715082668461344779074261838653779163466666560923207037921198600448875011121144810154577250928438366895180616066755913819128334718883608706816038028444629529443114285757538230806736247441503076913781785087222877806863754925883362489703321933576704231301125132266551220938826120347649329666988583155196036091717513987117482161640260010809080262276497684990678096752038125218742120553687923196534656434304646713613419428433458693065874665041771271967330361936971019313325407557652203369087767455627249259280012465315661688591150232253629751924117025959596990620694727368788436517993383128518122220750692204058887020318658704546376971634584192196348836763037560668917570525145989299881944835108530050767345875567075374520332461967605530605844769459895883911304183478793889252069315841533256235339206389545432799125942277301448887591316582756667538824899297612445737662880600412934430520417802507984882377634085972898849949930667195407987745267893857899782581260910457175832397663458419341582495721913567012897336082015516403747727601637211355299749216042406994211294577556209935934410525678136638726594754334211401281280659165513489007300152074098099402654401404458340633963774810718831951012265155994724857560469483164732857725871315432393374087318002284023776302413609586702652215899045234458214927987181403393869368878792696263978788625117453059855933649388165387444159027577026215186144667570542058650383937756859996268188228347935894690985708770923167310246596234691153477165525902385879544950481229064719420029310648090779248182052868020985438070708963708131623678585111137215195796122136217340603958809813591515780651000031152471491484941846957584930025601538330760478842447422191222352733111100691085505159011158288994932412679128159463214595102227871638365360140387001424438152519509988557768544684803598431708871880323237061864301594362230987810228325100125701430293753801817402692119607970714224791045078880433899454344676310966734355151832757043203195438219690142983805585890094379394262388458547845196614390247735508135503610798112220805422195605713686568800808918412842173521609573636091806873546576730646229773581765129846262191432392852811071146805385072962336126678071138392451998346639690217038672904992688876020721239618486740946108093655945286926407872728012332506752747861126995913856027317687319292563210766364803027727448397807772067213066073675414340442401533890080137941440620402173502453824806458330639895910478894056934417367690741346510594381628376056456081586738263133972084377184414356303622862914416818172999805080626120227079532815899172590305486869657268669401691448155820636506497277076008250918219824009896721529173207334247312368350369380625470752595419180857822515179932453677168769814459006832761631629903079676052289652989683166251907565354820328767007532424571416907756026783872854652912037160253536533716662367013486324212969242830304450019952531808842712557018743636572376357104913492991021387144971013817242303928546664837212720698762922466721088720223665907968790233990974366472252661395711218201559403197957508979620927995227119728530935361887475770410565677884711771603293909851152653550987243849227438233557953510936811769244555550775901133874780944294253867209411139706078107548525687975897638110408904600811672797554035563281687696522694681654324932068894069661058624051638867038692028558849642326171009937036030309452291923065998586868165363751868793017060612249907708220556126207024765616655487842022211519358361432989802315705579212924435849355675110450939084011064225877926430857030678894036294663753703424343518731088286301675549217970617307850716022078898772854646022483600125939897547402357119388487451744580460838645722205029384888698144658297823091289108509643493206383758788756084392824699337924768204863365955877553283317732023488443164579259630376921861517634938619105017695880983250500874149790487643924594891383525628068864769634312883943868699754695337174120319331995028571136194801422644446657807194264761972432542353410106809999110691836186546901700061713987531583981316700706894536330246649424740186889606878705509526018145217996134390878550855677322239062202320280780678901156875546608264349685860849989158528067459809922616525992200178358011704045802906454624281836542554751962282646061819680627426416059069992390182808772670687228881134569017053750329700504684286469568505122589429283623587055964186491431854094021777894555451386178137864746545884036398906194722161067982867155638723298324766868259605501198067022952022832000120201411371218664593512336833528415105352263370522891676400979226290142679979082658345140736001885491369967416366419977758392068105068219576312467476707321454521928946120855570269916735605518342262136173483142924529561258221907052651434178402467971167734630940793494875035218865204655062930850499487009812951598013000205715939557012570159168000982567833130584502948438487080891411824092784279728947589816489785944213071293480744802073291382892705550690735258134386061877989354027847888669572322839015464294578569332858354006404232808500981388264280009570424616801589624643506107710965296279072322959514287904741027492695179776463115999910140735081094721721828367875933803929901181778571277156554551101461424538819318053929158527115168304507866535748058159980689465204185787062166967038611180122221848070986246121697855904920719232503751411423219344135686137950609492038870445059890948324680451837190882307948647940381652207366501137336586301561746786361105082320394027802088970287516984840412144695474009734139372686740643777539250293048235545477104469469733354169967981787765736982070778440037180538866161883222289730434407328067516598251598340089267177062269483894849673934934149894425885187172363057304687476289089803490628905444894909123456179432952693750807513999177137687691659271044447205810481571933542565149024835349997963650976909674939291306320940292066918465036736036794854239910979615687953104486167046107426572940356328599255886835182379994982812483964697111192230507254934610451872232397461465162676117762850464985568907873070034206218163786647265162104967648059976692804457584658062862393244632506485400069418206181289161328982619204654976462969362184722416051306630567559407036835302192041501784545146190157786338004969620359487992281296773117334853938408491763466194521390638171108095898728795641875579439168270036690807770793802200109248311080853609771532047558901087472784956110660469954627643235659788701679455793538149767036528502846493044403492037070885816896217480241874870405164297524992072527171740573999823248424367915569317189363580693632601114001766816126590168668656871530123984036136276724997655626860481086490417155633514101366131529695944795333106542554972285159548207849738108630938165291888580498669020872563167161963090764857137790269938833928870788223731027102899810225321825591183923385385587009312348255723036722015946731202031619952007261445636051313289226586519917386358608674185109012155938541126549958278552216163228605930418626589695824824694257516696019973341941996951743451545252783419627426345643799679712744820545581584157199898841431244593795821221167078390558572099770820415812730703007062414296401098957790455899835930300476025623911648331181065213086849060975839175688764758833255340657914765747463130701387258868802018132332877262685557422136720739945714691200573574028167933701541835245941089561161238780209069736373425436048405123381643716135504302763989563576613550945917220377123448334228892928901872366327458288699409743359655730045252688067760297843227851026089288739650696334404408182587956170875926359385718738508021024696906731098164028597569433384350166764395972651728353532538649160674036617298461243398832962930729936086489785084558369380227581468746883081525562333729916466821480462801145538773114170987505205772451807740055011448019050922660963318229376922761409357764573972188476617974692168148433129661769310309969405822379888704288540602327552253269242556967756628081797431097863313126370091203130979422407239731127435483379331557018385984621174281430908380742548201783011674035769427248858342536170961867101827531684735110299191285611302296727103100151321985936073717942932325308631307151108807138478630676626412580307943106534376050882009835555933573107319973033107997145129868021371689417083576326798962252012183446138232365320218770573026036136002563935594072167029751129714800969587007438269935000286305488804897528158141894160355128776871927650256098422602114750364780697473877657655566635282453995718465734573945428424112253430465679306172434528573420544481000144847542261367809209927189055343921596975226120309920499787625453754753001521390995379356157908340779317585505495656759239541747748176931296150705118543175509032936401059212608529885096053351216689721603473619986349219552661978800012933099207161748262187086718926471565207224084744303209925475673757134174531428387021411103636733930437054553952533457427925861258119937247998457381335715770420236294977252772686657045689003376426537495727401142043332627551453816097931282839108713156328780424352168354755739466066476732609968814227718629237700120208711379876148232958987341563497581266119545411213887362599951160398772852619773454955313815412509994651397209102337816966024298568975347191741566780644197309176635721550525684181357447830388834643833561949761863155243270359864781200348327774391536132748132767643223368010679951115024413776865373066553661035149686761458385538023557345170307015949957338506009962330184231280680043995843910520935185811505319289028651017957066811143366098581348762900377311865312215535907092972119508270041591153327898441036136756825077886372492391123842346125308143627879385568585100812693816045958746710387349821758426225078288666525113039295476755693724662210503925984013754848230282768667943219288075673524829474534334381499020533858936089251460798139138887910160822939132864595328872740706322852990566598500517820985611701936499811203444619181199355549873815375972959830167643070525794742088277148601847855003443694959568146705908040629204302691043264527639683953975108445535665934905247573319330741997879023354919729699931666104939432897258907575246596209668768761938388124696603878167145105380358465928122796661884334551496470783796324165141850330139517640613685900693489218461709696148287646954168527937741401557593642790241667827853392181066234841309096920065714829525507898504326784453914980186239108002094625763630928021014445382460815908910022706308068065095167287517527411897078343663593289198387301452070598929288530723708816289371836493725740803426211208733662612032302099683103327331400095271478405061831231741405582822118820936814337340544051241959408391789443005070865618729163009241765664479525240800829382431236610814627848626474097498983721609068483000688291352314018544044840175370451362659117644514741314955923861161325134064362794627135467428687184498623485345201358178374662087031032319254440292744447933892655812037452922123537083532663554846285126206114248020608632286040485011909587354627011997633977658066216648300929944225337517162223872420997646798101380623282976556740050697071177280042345276718195653693150065199056567243603047577324221505075604800948849080076295441239503085452170192004989147539782354146937573518864294113675383684226883095855159261626543764912939000332340733683885711310144086549203588894814808909969988599476162665196029158512837989524983609460421513470744679104535822122288305976028243017958667397262808118734316058973523626309071251539451460339636078916249748820917183460973238530959316398758049541824915572638619393222355841090991961207137998718018111996888591379759390685299435821651282588452119517449003102094922057688808618327583968150584111963929179084631014340774659951324335109418326350183154959849161272814137765668703413350803539494065369649519291129071653214760908790164915003501004455370608492898356730276511914268501561950681733690359469382084162611853126594424195941855629180556809124516902907529806114303311208742343301319941303739588420691084843078831252287384470552708196749579802896442413508342653946996352719042030827988411131906923738697334874801016677670009157105193864532933840116604493585465668495120304340556116886125760853191983208452152518305714854890918854755472691127513048361049772186233375948783710303322620145286889525928610095188967940538747091077908235836368347307745059157240078701311871925127060540195670295515951386322273214912060623047847479028880389862379749461130094991580779892677071470880825519321864171702514941420829268635941865799480929437510805066615483846953714248040208186345432532815389322931775663339119551150709209147377662494790684839080922143297989238980097608302140407665680427455218780872788143790402609261780536378842827287708715128779094315687728818894609526054452848666136150526179034058402912439279976214149110568642657205636134927910913885170135927166273152220495948679954170385332668874755166733117987017686871919465003901760352120546127924020330080792090764247526076091236168474255867192166893910583473969950990419465738474613091175984713705323480156949828914088204008344595293490481596347237264463100130508600997741930255765758063991339572765020422524709807867346451480347041962945823507013384831992561967569844229509251900018575372080803668149208736551326785458927216956520274260125914276166092282939552235221611123768721859793883596031724231326302116795825237652083595659662956949818070030231838269207787364336803889274514566516196975586618829926840683652199222497958812170824076241060370861083753831666792108677254774163798672229585539998285176643288987981280915407113263372024532707890986293806534825390734194271506672248237600821144720856236817885838379065588798903904975597970384735414537118584788786478224008793745410133126565567621723610541040834114071742766548171298224520781494844666489413503834781225359846071522762310476464942070849678154586760627247805044161709187969662829401404988738310181094838077548893572911649910938663997227986251759556680356480914509208391291735378812197864607455211749450059268716544320164912254456346588799665436929505844327924016412820649603916849637776315937587327000694811836451598709852227428361830401116568657384717856116820748853638848069046628053800175720592582691486321046833842035327869817640233074005474728594237521765993038680825919661606765396526337426350000510406714511043076366615395042356597351970336560043528367868860923496197468041694302374512157886640645454950391920833075495308523740552153453772085357814200343329036762405785921927957574832583073748875502712094569119353505038462932288296147996785463517943016857300548180095318637236832344354998111535747334018190774668148478164353871636822631021633385889566548465252389828999026004880816259729158634817712925277252062906700403473693000786284164783503589535750018532815222392017127274688379220327854976865780587920999189572082594486580355455234509000867084639504738018797807481803536059740959877875095117988441500074521148934096382064941175204518152465911576502126558083737050198589583542953659989506316620050706930319686189654978613478713787566238558186046193372075290681266539980754962693369916562758087286284580018151824811598012560082681433708847615996043143854806713366853395020074665159873154047802261306123321002596016306372288176477680647250631138017393206603493144753271190813405991177488970000137991792987589040535437066002111204654346050400246551474239337831008454595745553512520703625201300822094515921780406199160323862158615424192565241220607656490669418009676635623551061965775499250296015568241626375504702973738486141813951935528789732463083567883117819912755992567906155754155971773618655810371543221512778096894470471720955622770361159617584321872519840739354486422624834508993466216536523234288724364677061338910109746371715006657508881806713899070110433663051260262888881453850701448852035191931897874731237930087878363193968548097442232260550371636809895507390769696893524349853447408510754373120159899158685933945639683999705184655829285247131130548646951660280010974595176843604107785787628407492280701551155150300378000265069436212985970183685657566533282958215372425871591376987150507146228734412349633144934809098423573956933173158769353130308229177949136318128053980535025131882640959908860910444866661138669799304252082808429986957862559959396848342370650238091600664354095254050757432510120727378859111606450711481630783820455004414930478127409465281302730413090586802234300776806346755734018299601736881681784678929486041790865488839101814827610218087256190034541834635073467833414470520763821700949485766632424136107955705712703765168243501223558856373280605404273423565233263207760274517478646485025603337767455471443232659853396684392998117973290299913216445044373921241306378797503524709338176441779969715313204801569416328109373643322281850725657958586344881815898578913213233174456091453884954925983574224871361965754321143343267580426646947203728107904375524599146390497960781573794938127086317129190449064874951582810174461083431095073888249863771778128637235168134062890157862976509706109750658386372455264894274947810042577801712398115697563313360565792147824912265504719003965015818641554755710565439566338416799559561877945256844539028743028539920260325308431396687760414083266897951055680715452864895664370477808143622165597374392366688966224891320776022023792248858995749567117449795951466626027924674313772550318100701650700396838680641080211200116862119613754314091772932799000742591659270419815245954885722263682198343095372477559329434227331599911294306309956413680149144605998093975323502604643647675157696654642186208438546767540754005176937625369002557326631301946376973290390229127261100435598152554438979031547455080971212709756395816662572464936648790528356473668814047094685024643979054609812186630031912625303624045371506459234041847978936842011547000623856090059839489954326975967902224319330810811446540828241084126110884200171805581297659131947018776628309074392335791591536139019674907384995690162309428732392486150161683328791426003804295785009140425225137002415774107097615001643234838410282836912550169110732608344028664044336496462198220628380797992375175480207741647248780712283441985842151734038649067360643865128664961502188669066031336616995643561877318103591175141901034418526945410013771271391534249710772039249682888261283967484088191741572913788223949368975603964756993999253937944900651931273915522767637366731841271987473170262062449358352851856462122540490152696841234300541091515782630283536766410417880008330002615352497367332173510026591729462346423506610294266975461443076246770741572644858640761685755893574226257223342845177773394323995729251874622659821093683653242321031855670797294805505288814990919206008410909846040247351851758917000043596925543927226704510377168765345659320205229820181383062984799841716450603764040006717051056340276990373754291624052636186341908966803528709121334732416467205006104784064723828346693282082241277140412403273564280736331968451253485125107995905107190130979492647055793032264939335276534592561779348673929432618933262716334875344087754076031639321955975410869018509065374083508146655594820751916101223741395542466034296287493346347870318616325098406653047173712828371078156224636828858215096672013593242887280747865583953570825578151266723998185834190698318110405859228512150984944837003764502914277837820624203048325025081146649575228532636107682668316378166225909716635332525853194631886017082382560934373332160869130275988767074910483239373073307684129262408821921864737400165657892133914051295358845271333006506362751852776114353991972933171920535140558596105818828104462133825095488976290238965131256967880691874876795627696997443442767856077858825014129889558887995454913711180686827106080941312950337044058447975747276530878467941688381840163993754195657491267922206213338493129029197415266587261171229206931356999155483042879904961944159972432635990198498408553551578630101256470939161120488591174488633752291069559902290739594237196002105543300171468866526229499762904039760736105228454432735455926992942027945370541325277847114000124547062818677487216321056530282804341104729054037654515969725030503997956791948818327678848085632802356903234482212060570377255268557123215860840030710580874347479932067115037547615370603725765679088469906107611259744253959737742986744216406019859437643240366640973659402999905200077555174483992646149541523233465079687895598286831700334224307298279686854488946059373337453156201864078605818767624445105683444634299717884157250415459496353119468427739095229280359467660945770721232169818920212783959276116544437045042491949437967707475353590109959239512122615970675661423388766083727660432456779705781446685587263525858581199279047058137717521420360303779901017311157946999741701597346148348022720417215102950660725772384402825002809210908369438393785200875429651363916360031011266408895109768248431284183961506445137129339751307950650986267587637871338578764136742479818339622436832721872073818073294296967482439068234264617259055510878781593582913497667705904962820636906475625764466767009561133393556531783124997074777395210307652215326290167700538988392419882729397461936759792443433576478610961708855531773660902695952044775787983050632978663154115382080378674153809991193589826514582262760669561770125253917733487475293809691317433532046281460206890650615647019516502518800426857330565792779787783351655960850910801668657761218946150713845731232028573361392264465038127320102246338774270894234996510593427857174781022139956728803434267100609878278563218361224394486441491192530312870154449028179457951840664839105796158623370704548636575771687052824334972671615108633402155492696334613983072592722126056178752840156064442864397901780175110396065800901413042862854564908153166343261720315537682978448787802289479262715826376851422560339763854655738013150540846269358691775255511462841060861956963902220803401634298461609681711568463978192914614637888552848485091954406009502447369068352002390299125703072716545141698337325181518940107573534672474027738823399170249772723798040349610438461455426841580711745171267747608676130841061020078194483999340245421609761215534011540857169574766969772371231750221466097796684171186724093511076294339099598040148939489985172141600055786275227873839157561241808891962774943590952354390530102184323632708264705795381365168705711969928484644989599288714552594358351474158034001052284482901890968266620336294482657019422216862895747948527677102814772254510319889151701258871501754111390927400778521283917817165570250133409474828705322604436945972692161924289779123342383667396972545254186189976186689726124011813613266939634151847499308732257986150713624110083507420037617491354071124492934561662161319914727447147385372948809049392697701593634214367810630266419812217831436650214469802392565195141310270321863853547273241131529974817296163902881133139026963857736712129510975672259658830091701542913502045341022254778083400517418722939970694371742581540197478795637892287861865821378500295297230576667533583390739062602799461020493829420538338538058405310413740382583440709803576991181359076074411721850140735887796376081809008536913140661078904667135130625967453932300648443533636495535711634043984185881975831069209047757893308101534157118303241220877490754928786443760553859350637614430238662461127992849365252770998341453185706665023615440040062932529301855042188612169489640831846555650884522141857585790207067712066576409420563144696161931902998135625627917972711347548808443790111285940387525150820583709623060518693826678655216639679350520285676335845048399829675346433524145603525290657238450102706412811975634962104095084081336018669006669932064195850047590599595126771488673098231830041624858178070923777258088655059303896490965641888094124677054348753105084837802402349491138268567157969129885323506073509768935359268590236610374599761416504205404949200094228319912855750686438240502810475930109982977510123322338171462204016446880368682941003781522965099620374370380399627405163236924721781495005345524983493372173360036899520189903355863271049238135508514549255213121363495624527435585799184181546537820312483929530762244234838098314903997357367403653615461903145171930530262274788164133322364103979940615398853212757340985832320655908649882210626867994262358968016727800002796980522053001333775075641635382127792728102680103055327359358512411861526772271186953394901137493642508521004058277151061870380870897653421821505718639078874039801690791752879435921811021838458762181574559943555447329552883635085577862984600313421214073104721846079191484669954045706728758069449473113005581723506981663143665986310374583830463778323987731586711004674871324430523914284556955664240604549813820379161841491479062014349063457476778347301963954613643430688617057665638949987419813676719155738977220003371071673729178109029989868875344523166911600526892327368806437705877313207614128941459165563956028179123697071494771117537514004563036441458268958776666919375225983851413713881943347635618597312426881456055954266159269404450530407389950904763979164020918630597481943157619194310652012434272466874108512346193114652726885227199701492308413074341117469347702231216126264392891415096187030654453701254390566240278017283237633128876001296021530997575703090157345188127580187983762188566369613969703843636603232059287440104133172606137459274048970379562896126620514999025451710522735887401281151333632097611729424163110660227708620730143470222189727308283818759935347565541186813567041040043823237598893964559868833407250460050653069626898532620389168135335640216202453659242381699979497165945654013977290523301577093930382428558905247351446245815743416392886598015209148844660168771641047047064621670401809379989379667583331388064609099832848363701016947820003073394416613333888232544201958044124089979754455762831623925876428999783485820210800210681706493971288499278252123322001331611852528543213796522456482622999964158734470295368961812507906876813647359142128772167346493366901798778254218143471342468084648997302137607679249853665852029671727310063345499516119547022430551221524558322629542048041170778005173393116400065099512119983929180925147042039993486374615016739448569844962554837788235769645148558502424506797560722718081570117682487942275981988323452084262158946254175801465834682727755077998987893238209611657201325947717240189017206151102832883435641145516248249273428218494066094113591771013857696362106015989709763849669135166686002734639656766392012975412253653781477249628729369054000812154387490968704961523241712383685026730400784348996462148289775857264258798370063889997937517780717079797152871975470622812763975127433529861015487996122720777455237777700710338504813026605823622666639477390157706590958112163581881342302546087664427126115382021213259419132668577966251835748853818789200235568492643319565154529903876782080662232574332465767699637145049124052886220143478604159191223461487416642820582138718398747666587146409080423697295886862017074257127941128331439495494576380165749420708541793948949328799510362395976113219181369480696541963805678531175465966929711455298014727888906491276411130982864797023199272517669468523161571073860900769362223634216734139871961308012872535272791433580980141927964867770181563431276946148483389653831625896650806447038862989924251573245059228352809893061749042508556637865612406813673281262049257632577766636326063562786257600652822892844735329901697254177069679688320200919192850638049291355184127093187246840481830213730553170869955954672651311877311689671742978206192517833763635445273719516500844840744530591025312280567135449733754822189881994932198992299628389106377902433766732163326284404965095531429031487281446655270480780102380310569080621857925714396990983863260414972249302915428469415110980922175471562669580885121336259671935676181181313055482021701649909668021447560376555946764870311563146496998462984418063496883277165917018860613012380281989965392187674484543603916011207031468254749174189427706334139517461029019818323200955243870146837371424582000050830471339171262942962102836671411539548264497715978331715467159673895620616346776598048049725396347737003834262022388537867193129834442326452638962048189491901160049768309743575647976496432992364190263706456869606337879501357554166224061193035686914536349559294884391883196023781923403804235197975922402972535747191505168664850397901696281247757960259473141830127616759847237444910077386593968107901680000445378725975171772729299880165261056195807506517567201960858452196475424412687269835205821490867877387796921470644469450590394250502872543954450908390544088827655309140780812196893307383451911182926026508786091363610125736650848265179588703131653225218458610775473095586165574302679954285733275980133234460391429517936530759944239204195321097750878886569331906519150557305202149519250008754531886587282090875870201352242424749867619801926651390764884884920870806454493359473981676298543027034178420993850704423813789534352953546003318764597754966098645006003740311982779869847148558513661606086876990585817771908530357608211015130208713912526138704524098699306151545793559619266986428629818496346902863350356500015501678147562490398076553381449487880025567979946152109378615422012319183849226848678356216218435260403228823895748131546781906318037305570002772873408680156501579335758899872828515108440780049502822247941309465083895628335200343619316419293842500219871612464214089010997035279234446371932751261341989699994389502174947600167111003105238180357837828298667037942193379450956957659538031677413704077901997256987418568705070383119190082062595839529345904704431788383220809207270235411579744632648817989015316495343711957286488627289215010748574985313494693602156019665206959820280071288667057022033831576667979590411128353015687710451952885659650802786611265438245223644638410824730842843306585681039185081654883292247187590894726192298239806036247463756859322097649043797932914026779693829084472255611132943905174808336629361886779091616918137318857840413890244441127599641792773213344407161183853839873015954672123399100860284974812565533998617581131424544937921439318312080942833309763607668914646940995016525976641641625872462944443948113670448944463360731875513752850026354463235550308621640191188862874976021278976408323274194715782818735727733646624257321143454674419341990142639727405745509190684113822299535693413461119400621987162445470586329526226492451615846121522915274659452853015627784278094395962886730307908171000535827989822290857782097431965219090860155324065174478908230399876310828949874424276155409062814670714400146919204593636087169345889489847362404273418759257633398851276482322373702634567995421953957885105007630123267729322519649279305383691776674472827087980290560494745695643588021619310026480405510891033707075587282937052584419850156896519806347822967093312280464228421051058592123158353554436183555724271296578135750139381538332778042361113081922904795394551647138065968956063705329264099342983382635495433112740620731030062948128464671282846156297362690788290733421625536310862210509814151706606971518543402207358179408030400736565877955957539875634401106104009408429702577691705734027320872875079426242283070955928047294453812402247207798036561181419726789362896145840282824666812884497656801148332558516072932446952431186347082139355453925336585792813990022826943693905171294598530433274216531816665313489054045204525869159544942530744564222933219553241509394960689682119851044539616084410814589167891938756185141510988636195731483305327475082608681791687602119386995683924922214615918521242799069554325575031024481042390365133325832654609032038562958892102468854658108293451939074666778206923872429961748665098949649946665680344803853854874492496980147185614302308554212701234966634295029740015738198456333190101224038132371484754740385173063889849339104837389632689489803882991065847161887076117355382174815312521627982681860771205175170860611133954986172151053008521786419720292722089019124411960171732335171390569704370892096330527742305370836315196078634644322436523894094238456239043745145601599215362778878020745381123651933080635904758259805220947659441774792782596087188997543321643221596079940172104626621009808013157563352433506058718803184020112934109677560646886538037114786245988519861607761977116629681791267892710143823090062530815759365281493307575563105535422628643389155989286999388821859748689666146340992424318465309786032468123414298347951884491631300719040390115881781165948297263279545057044514155006775540974266187300830612680990822846321370861259394112318500887720418813077620232588977235864112326941347623706084989510370474036634055218173487847558846807675802353647732154570397905492969667062050581161896895613754227439064235662147557741367266871969977059086577616017659152006632227699607707161406698461297622125000537242494418580097074458503404207996981707540449891291620164871628877429257623140930696149908311179680533540817121592209783402357636224200863755981920173364903230910935381432538523859998898188560552239629245751194033962555238535139925484103320584320157600777834971040579671879866767634973646180948916043573789019544775939745277837136004765575628442735239061281283273147106149296991405858738783576790757275920976087791730468894431296277789395387470552777842491942843976376740171841019608771744796344320250327487632806122959757641571861034680442682337074802293992063747361234630789710003314054290071065470947654333362938214554845834426932474587273723664804789333634727305234969964438427727431946428695550474449962822267065934052758766364509561346223406928569788338355974047273876833716084002782386655668286386198522687589973600669576224368782797119029012700519881538346217262102338925766162056696072733937498213472023929932745559113661473137609993318881098291424040955765436995701128436173414061568682179386362070595464201176342426859768409496386375024356531624090813694689487287282460983483384658452106653672343662130843172031728007494895086328518515863138748650687315331278512462779436904726548327565953643293415732181859208597171983164834632957158688142969464494625116602132681530205191698409723545951969696572100101890627873272491197189767560296466089538939225551497450278626489988631857457730078598313087092119671234492780064569720545462465735407235255338808160036869243445053705339115850788370087036713506497003845731858971309931289623736721603523308999041861907757872441104998060176280969417453659470779217313181372994749484549812971461170099342595257925417810497489858727924398622962064047748435637412813375500148083960326792334752917176247863298976771829663470861332737076720974482877942387114406256567690881296526264009288159325394369650423513314190401752367121726543094670650837985830818906028981649443185647604658654396014233348219913205762534004943674373310666844228045729909576104286077633427746905744109236962255532563051173258687608213524593349888432601096291871658539995686731821181699244008893947324414499579595936008972758234768211767235201203024392188971613035988682305231985740399545132742984411581653608046474338182115028751499007079806511737050620057018118942781821922565569505572455400096458036683948196705006071443360466537063299172332383166561431633366883088439169897280346711903240305964056780867104388459790488966225665697374752071375011038645241791920356433832029059138588614972031432418187821031528673152607147254450698825026637917743481927087864920553182191209420133006238027343428967082849858966185353460178551141930788581236025442509713228906503217288194251297649585563541725095076382554117906195595927628267891029971108666779229097429453614455791415600137446611749689894564941647627062135355231903510462257634594919703266051170767576966321326416621429823762378961797524970750114354061882638673004185470079382070386495584111501625102684232881898843140895622851066751117339936778751436496330917017257247460028580105576641133005685898704195718225273883233484206249500991477546678050482411032829740907309358504417886568967294952975248124656349501029405123966462988025663033253598030726347908950012184949658309087308943142757192173445458751666611322151272800795027877821019513535380720734998669221683203451918609016227778490661591756841575481253718122554724781321977891069075844003970786706898705582584515402741573528127473301548429651787712427007227465429249799236304676762570977887489642092269575275137727450194917128869775485578074079138141519683070904786959488539344904913591608361171910527587535733995894495294309400005529806220980722696042349858630588846003807156846866311013013102213095305737129998247020676804518703242698483494618734488703252064673308631565326456956723580951445803488364074961715716406301377976901824148186187194490970182850392672090335536243672497932677772896464701863401269329611118727702238269694708649362528535484115400709318462173232433469285301084344208776556125618928723076958640966314163920812488397522273498371450116414333651175506400963030538665359211645342683137817944821556893010776993671939667731666005480252156765872375353271880164107749457815160088456566486528364499476822235302223259369697302983502415235530074076306790727814952240991711874849384139508870768685730531573202149151435608809873640750996104209796936673027027368570305332836762797572276282901464885236118643179964017440773522596021659763697790860407932994764319199517758988160397146067108198593943009843075707629385432371241753863121919629771655100428188787090273511976936873779894720085987762151307396926505393986163028155428448674027052411453986705753655644917149756908135301649505250462032519604203006332765743487909662487312242576229219669169880991321454437951772458937364391896902917266845197728292029035210391316896028444440637808753727071851906239137418530662293274430570043900281919110682438897412912808940931405213616740702028060495420752468559751084873911442780922857531070877480352183010749307955234333126679943693650164342289156620635769309659657122343289260254892842674812550561016186037080446009510069745290683137913936304314997607677390819636073032249957846935156660533801747145817789820894592207944257637002948663646805309600898199060527241386311302108785037467722436868752900305687168133567513974273889080546916360699526408061645780712723493410051130317643606776583436513817143039864132456064194317524491213714619491792902375032708553030657692079164195786745894326483069982243845468391115812732140939671567470027355742645481361959575631309599138338376680751581183806150544170191451526297792978405924350752415496353399585563428343405830138384594188621396583692446064162451759240806145663055156485655045377325360061246933263510188761158092073456656178874100796045038866335350712180620088187534037832098014478748720098567279146916580990793463663390053016413612379027485868816916162020002370151068987442658885691241831746673045938494526356504895704316654104713227349912358251634284836414236852671486536123684310929040108677096645611126424470624886319148886984279917726273320551553868942315127118597978208513308027363283704175400696586026579304828145859086163812272726641866885834365110169565878900350577310220167930530307258731244859359371026125184810077849502210733215470289379658464456158862310745629926366685561022158885509724598471515832397472025268410821331325682316883571436416484931195231462293804172484940074914235231024461180129066964768389450496645779297027282569936486494591914411032567402481811482640706798444954958153797992776439921044766235576148503914392866664736667352952026305110126766879380613498712564753215998899393524013002333354324269156675979007809918744919734205288310362877461080242545336364386326602210070682950952039318946079116045950935761201587195515305516520352791584589627847091595075249460522276781131640818125787898466478631370937219773679851669535719205412026244427207989702619744317173600536100925532155063308832652826873329903100409055123382929378086455030877591022956187608096893116608484962139832830075026505796783491099189933423659080495136172403010349785958083649385911412934328414179569460928129330361633386258237472468142818687871454060583974970379363877994037454845793918419261849025476641332676971481517469525225020872632539526264210070562400488471017127222133415616930110715125430230514075190519221374070745658723224648961803884847533038651294577621162876976095702973499427131784623114390443998131917001993836829073997047054584274297866285420673624298199334530649123154661746913368116016022731666188903344089605732848014715039252038986318889603169683128771051575865037939663972333610103987212683198381530213599576024171122236115684935248595495561868647929647623286863959845265102380774712489541788178322230853527570360040648627183337122535187434762221878380163965560404767872747336217049533950719422881185996762412640371062048227784949890604950999858225476698173358382723208074716563900929028375827549054514706435100728673142946894977169066864858734352198241552371300058783086770480496450883071199826014473410913258711987280330994656214372002177233021065748928383141046217545196430586412692033362756138290176954531166497811421035701123265659377241237387039028244671193278576875891133804282823493945387291075270583146431597448491046610339948046713227771872460711398097127924423913639653223309834470627340840835299716315911571648814684181731666428208149945744272104505802196380305652957966762498826102157232943394439306207412798564115547330874748935698392011494917347068451126008239371091167658850346252123950543479025515364201058370685923691729581030751320086043714091542417019890824399504047480652496640458880972979415488248077311270866839908265077998589588044515045663221036965469665630182917574284237511628977277894143138658731530590348806903464905336627678912843787546228775122327883245293850032743817442894222616143013623389038646168789719768456758635943997929286652273314815659220699695676749401318544443147970565748766914491031586676921180212335585485074178564121618951428348409910841496809399868935637637694967476072801386583738268294568691504794446877620318190374340661957158414694627539391046146794334330117674941932982367953876971109741688915235112069854945912876110925220823874258745566338498480776879491361176493236220728892311205406133631940264468466094974037665773355623752390451821982450627067270284672311316213942943180612783488985425384848300141679136104801044667520849320531437055312763070671647449541928545395851789359725313810375806200886786705554375107875289200397126067973283437574917595335152371220364488476478456282918437236188854879510942565230560301891326809048130080430344210529364980717876240950698545937041015782818853782553184221866005008747013031688702581493995975427314437997638897437592502910996639160847029173893462614463776525441057862903216706658569925450234489052858851972853693395763836314859493731007124307407152018981003316810315649974444973937708608371183738069522898326134548063462064155644501477482804861924848622863063294473976950968819244654676098790652150216248882964870244250317642229525103800539425331364904244469158399376449062901468208696685727195055210240323141369618984078006826662196049837041444158015062073794210294614685777790043228952684446763877547301386044037445283321684662760978815605951328943315059853854989804027733927826718197999351361695632817361015705503883357792015596427141502527714385651359950049565650045680844564610774025472739785341127369164768459601241544091502685323261529589954171465906989919754207430265312355577128753998678128814960431299686699037248133848541221813910018061617237084415210135969586964360618353228727469738601585638441162111755209261988345307268409501113968527281107082329827306195178281634981853881854774649295246958227386581518982279076101495328674403686773339214486175102116556826247262181697982221126026977019457833956232149223991218732038441795310236209597501823775020883358658892490026322640925001617426494192133908752713434752548150880273354419121860140837506655497901380313168419116961718901452357939947572771987143905581410938245440160393990335904366038421427275786675144085395494426770438880655131850905085621022715423036527883544216795063983273922875054098052615997026670369782117362381337133253297171203707923087205848303216960134271047593628260060743654203144311449679652881377151458794900375609138903741295306178566344301128401993952146660333437281907242041548959373519885880725255249405016547207947120189973052714414406387471951265669620801959736014668012329433491499507831797340885131206029193573645914670290080111553381002709343166485568618294038979695199276166829057321638957969956123373697660193919796426261613105827215861416005353063314335528454587974035459934333287085795524329811838481997988996479759971031655776853816300765927657986920299807773300018627594646830307948399748319238208406705770154196503314537199494723320219378398848530425079648781155095828590452449039632130962767116697112499847838263810486244399964959136977935555981260844207997775343336422575300448104069527392061657081624093918772556427041918207118330502385808975873690245753732238570837781755375675714077984422354274518076858776851533564408645648860229964240544437041052196837744093574916307818083771423716394118289278022055819073464041551127231626124729219416286862317795762519883024897399127579959832578405835984159427153675949443968538939682775929562050917281118404895103458346370294370629125641088400513145837621856968084898977393813690669575131868383727088675330158796664509736324430196870752933013275487158394233679570728544380404055650694662654883029508917642436877778959121887299432350671606315966884625435163568038057246468712835918112398133662171571478370527157892897999222031218320637535257560399476949430667492285411791673987807261189991685362267259949031031453135772850696976817601832441269137353633765994654850449071864537854748945692424074477856953024974670330095019944357704461225448061295258446391238466655792593552399762277068137752086254107718979331897452348554324562845780650705925166961978876511404533431569235409423744194136853918750798334894701154279393003265513499684865244597175461668974034208738822885915418080895837345587927810194843678635116111836260788184728809126761148691887172254011651040964821688227316385951783751107186893336071843172752515317128342644304354033157145502521304073272287841562131671977193022304448265235508279637694751209486759789503679648267234097699388153002817360600478289448457619845740246832265123757636368198588866751817638990167999763147181229043448614560009402739486898319978723230646341422935167060600911147232381201252639230301435665310584350668240424629103230551103369554915470236118686013540456766891789694565823105451522813407442671087158317672747360594116157901296311975590582616449181607452431623877580213805549739325205676099260487609905285273247829630593855126020207349014292236631820861303673018627349194739012565363578266233006001621587518898002201948953093182188760503906623403371899095957009425184201739154291162537804900985216944078246255719909841569220426350446997273071687107549452976833288881341972787703885941863175388560317747094147955082416797551679464209819736824724488150404280709770335969310238634383987197005327245447503028060139100781844031879731083464675906116080376952813608674700860815434343155128953297988915226974880458104461312389500115295695630071023603396196855071801041983215279556321242272560237353616226086492961750479490185901265703135880572264447541871371579460107940786825632594376348105353026566575397140881505851409869887443264752946565017168553601019768357078587737386313584348667856571578270008895312243521585317753533557843567588734942956470368654326170054364097020637728971779846188449466193355272703798473204331095710308430138940511402041302385593624700924134729096437464393458774061737116569623178936297225546741886593337695940200052019123170322586772454174009072580694731427291600606088000440682599624333201126078062846359198584584445387819626493526062969461752235670207413317171070163147927479996945819304478901938546993997614876235062620855495157740265238695376508614722688861216473486361855112373490028161836898444566446982454878149347736425915764991719364694945728763790747298832582177318289756955349671198411226926878335053240814205640891125260219454297028792270537542430302544885536792735015759286532658651745437817309524465575335506839972431868946934021872459718897438224749961317441730280130218626354580077192669527637720847682719706737848360775246343166127585317489424123776667226699758263420159320104562395862485220717367235157467982489479867034467482487382796921378892508006806634287062984480117585687682640467480250605409104711256194585231872586840236416932994341869845877888107548010747995235157341126834575937301197384222195452602859561514915912117654095428681038742162488945505759666820907916361436393269388535076447098473919435363454039896632822360231189910341796227682337204231849377293709782751957314106222996882142124341877309384378195366299607953640366736357934309557171687552054605708870765005960556097235341261039814319259504146310504322463303812372284094369712903881676240432013502321337283475686897193007407393849610210703014373810411007646285503304124943306819739696336911600410232969870433995850253269947503652682701014727515100625125625401948335360657773557252724801261419276478060865718674143053291356216983759232600947936960751567637050583553753731410954983003225903089417200186807036895333553483780880177014616443686583791372450239587478006399727115370584537925780802514754085533335568239367485160440878139811145865818842428843859194064212091756331212377967415599428206832805955145655267739563154633011184091952751393569400769631221151379881694919574550842863211301886748267781476442455239786171485629103076187996183247609518525680045242653886786526112839336307769107589319748900769033918119274157616900557195786614944749046824376933560929009130086913844501326892766446495950800281278106171489675694951783962426736428079032512255607413534487120365106108508554810718339405161633159418748115960794984807049388605652807719074214373216776653479652958997919697247788646100192834085817913482527768869288557936988298983165229167475106331671402176457267155286337117103439485686146919143846222774750597202734166991520674781820104955987331234851577843689268970818615859543451439105788687084904139372910281625317532453643244482536872407988073929471496528441683128365725537101830618591664240561105256152650743912971771473954681999457005961074226782653139094118729403156284677251698034556659564251002120875196725177737016583029915437833270953503116266876141766474810233006725019766243102708271206113945752390497044761131137338671094797237394208974601179817582578011892358472674660883827806645851919990089302871271289253305266070269865671020139485717661663917459895215431073136288768850021374211337445879093814214410556366693796934297899178340758574754946440810938229597888156369358256783473649693265040849881349100251932045868201256297577867919088507155530144512633707341327840715007416986981316307630319204198760186911549214107473878275536854028380434501353586850133614328027929648499287872674898404556348092790598611310399149351402586668002722871503277397274801050881658325489436890669926344790125669212363758304936906425081950105581508979213275912939775287661634646270941850639400450319017112137221323447564311211688153291103830460008906102357868819878767965159189046803474148543833860738267104208369180059360770329370925423772358119655789221763835166557912197680586578464053724478953166425558108041890280040845932536347657503693815617421989275498371100700490659082798362746213994485961093637442984224376635008218618568123736205611255011372513403554703320627172511578995891563478234068942526559141845862708388774613098071859843468301308442403344059982127990372689240041645121641522923811373758187419371153188542970778537673729451531323019053215308317763804930356898432177986843759769246482569014331998684331192133447695781034873847567782732226509802269633932972552094095489106491363748516301823142858945977754636870940871971477648932225834657877363327929823734818358858272002984689723641446529634902909233426579558816141158865586631723185710707019000458282555724305007155470011460886276050801156036642130188021783950829616857963283101362176210260976522512222867533715811382706426146405459795916761813713571015946330016870288330315266219900995226981884436279948868473916641877932494589756585409760520990932518387387492932371393761435256771067097408629520330174358094655485021485619332447929116760166033489122125405997211161895302526439364871101690876767643044257013295789775483249575763840762832079254694946421651062370888364191723066420111168446955591206640238299009236607737979385269089623925916645669453618282154535527865365786192031195831036067559761545977713131521314041869431546924715200249167507319443209461114594419812096280097811028011960477497714688430928799720341319328365392187902097542736644220414544625358100401221552845857594813648172623128528019192066037559544535914007678640512265100367568709982725093877347046860268891261983817526698505584930658425578569598387801049746752107050561557436224628439250924074800147496319352283003623719758916196700250295702355371114835967389132853506946286124790787800942751496633010802672499876693193679458470985549765437067063365811613499615849135049674460578527163363895231733514900997678473609605056243870431109331887511474713403299162133805094912584544344750768198333551981092599912412450130406411631635455677588218912321403930153371221569781419738472016548496890631439133842415552239596424279782738060796564461716361741625767006480057923191337791046442643225861052504410069894837270743621008296422238299463002206621499573906826501200548909477105766207741031334648598582030907026884224216469294626997122101173790458871880662455119012370618147011688376580351281239329868748931235458071670657934008977561779021237748124916469495756235607780240676477691483166045057232875481432248048786996729340105150170144412677152072922863901352227902045611202042456925144058885649699232697876301747391464782692032626797641199849146803040188832077359037813006904539739882119977809185562514824146663140479494720314205768729962828457290580205140199841996800508498824677475543201361477009107572675853135064393883915516612904325765562546786120456639660107719016467294091645727897370495818822563870251232901264003931222093678032324494442690240930320255645226317896632450364367766051341296202689589433641613445913852659312739637787921315055306334941895449840860552532898559972285779866714785272319543108372050542256741124964336729594821961057861006824851972436476801093406443353971375855989844455441245158584088953346370314488828541089130301650536692489134447201438840013631527454470832389061492651750813813293164137070049260918310165606184090555229696187077061766255261063091410610209689342531251193552836019305541659115882067452788099806981410862063109558267066609207583387669282736327058821560337012265981892896819020009350720680344612858283462783309024987019058074620973590327226627470468748310624285288043767977856911862155111286430648763405242081384314415433723127202111570627129133259652737565343410726279852810385647041017065157464173842327921997593569125169043192871250136239866978432797178288958628458206116173814821480266889572857085609843907297060217623091601560982749751213443289802409578991426496120854764628224773588406372482452401339673137230692744822877538439909377859335505875511026072062886865110443945321686201288998881783708377342932926826960659901005009001134076979338402524736974008028132289867547576866907689264578423875290398534163088293175171119571575424490270758471856677014338543159577470103339862362255734593767127981713486029367553003935525572074154888289519094053954791845181982390263701097569152423593754499692594573470030996642361968425519905369550833502536957060568799045404306064717757069180214063518497097241327029285230142926850010844590945928933697317695765808967803803727613680519948961874760346948230605396157272463072592868831736887393496734231431151990858999512367271902861517891393365018883653858257835144306227918937501400396114364653132510194371207482574321935310109326697918863983373407095670456850107754484651101644834670937807048852052992371053706758990760233617555638685716896344381415123193990577563839933018314422765803844154751929433877756264743695356237465344179333450700659244644368720261310118762729319477097600487355919112979152235207115330602119008018722512689849732755280846795130283998204809139947670532572050548619531996487857870476237719635534038492845898479504353246448160687156536582468497642998633273145510395886848460279542365460721178978357961722270917957022279191181947634115130974791756615774554094262878100379052554388167837135264421492091248797163761316938081138602453290695407877524519246677561520876575889960127006968074152691163765852160577573522787601086856278095400875110178570818189592936205750062955067915049344839123935030089782110953139011305936631134303384688939904415027726671435073807746402154312685646172107754810497291626179266662919429125550912250658514010648566951179297136594848482726680965618165529322072344636028240550481613147442546059792803128831234313275288574231185656651946804745587610794601886648921342038649757530252311433979226185411241968561746820816321957916771200950550839062041887894597490806217004066131912005769085180866379561360201010350282605474980903724969687381323291686775273735557041156035140614663348186847263928208134561828581069024681428999372036378232618796381826841590117209186250902003148427464330760712679040041816874603828636657504626385660025304737215057926023671699742123522968610650149463968981793273358240951262149392092310731056196898396578567849271796643164239300147298688594901942926089660805866040463352440141154666683817643350590018810682574147746315945887238930118321109487362891422304967954818119229460140691229024489158663410206332313306139543301686208190768180640975290342122505192582298486936723682598491845863161474128805586052570360415662038188227325598152842267104193411706689158847889314715094843766149161697437194130894139710921101910937197123217885067583554110865351560795379357235511454427098625679935730499783611925214195576374275596772320118801826780761931120499679577874253624904872893518427529498998089478182125225707152490365130535998141670521159565065777286895779610280785758735612125498500007990348460495764938426134364092359425410175381732792234978715851005927278855423627180305747928258737445339068081524857668899247219147404343154354900103640052668463537098346668784785852077291637879495550637430690656868771574441771666376453996024951799693545529031857026803630747727376538637863148084281147673529220676890599744487419992895958473986651479144061854330532207051717755507785306100601668576220135590155350317102748366892200245319488300853080577636297822019734315203968204757323281560970525384898469480002056391412977656151016204230152165067992725783497799247429844722996945546696555611463029761136866101512612073816110106539582646455330324151272533199124855220235471240957497629588058103412471501683537371688908463980990550363654905048911427965536308485138845884567286279785995703274086265292692750422208886647656831761184344381893878527926639607820490783747794620460321355579877082346415546940376592964653063012070493826425993485786848200348778276852507920518002566010834774377161867696960560204627071646853863766827976892738616539666724304259333372689340317306679742851122441254476639583469437760428888602967907321125413476707599845937737159485074115968201244982821699709351646605785136806564398441651108978611230121731915364923043301732152218252834960868514972726022983433465352305558762973361180243866723723157966641385919489619096223888097144871603276928064072794979328763079585291634906474845935896802580947253927792394723870982060105973769952319857157592854603214764647410835631014177450599299579843570045259300132085430322756840305386361444770188131845289411378293243886063788774661974440426012649665110144725523840447658319735428722777981594097607437203014438265718149893147755865519155593154030321213197504198275723680997963504979153639949350186643349557304884567269894490733105367706692097181013735702682754507966935403152019727947939623908925776803962544554854532422870012013643789037661039350658775135673149600805118291150280529268442097130025469241058406849589475855707529270780048593514146388078056542491291843579174655146284141299855527820514195481191880703551664442247631614321496889244128769447864678458018923942872487021510170397176565810343276787532838687290412389797557013264528220308508575322790521305383472811695390798792380323205322779350609370282232773913545522415889734401001474785418530119233314993046528248555295013396820834341476159839078206873399181814598707477752300772261851409700037358492575133992584698254333345575500848609178303596881496653774235429266360524733856852646121277272741845337003232669311254809164525357499770190476871883140654970130793189407291776552555931736879170112121145881885231561804180913570910754912877333297087309329641616675204084782260385067955446280782525013671931212211838329516289275398858127085764203698833602539703756114298662364483925949469250033276828133003372070504934666459790086124714075739269548734456274623647121220705650161916934007185550296941629517982439518795838149887332991981784453254227041131466505677397123809794865647665270630483285418333708460383251602112072497394441678922362045135840154457036215422097823294454433196397850482174300622565191084698458092863098293240731020615555354896709918643840390004540419143468629749435530309809436245119517019652765300546049126915952863599824086107231738034215319143651237805484160834568320434079074594784354363753192064239316599082415820283435004927983892700976740895191906550653620992522097024117681494494228766622767945232702207493561569586329163810766758453118295042465243873627925348851810842420307150914279106122612446028760678128982470122732332968511797050409901299829308117421194792490394878012618949667991625150921284467974638993770537287814139426541333604541767154773881530291547286398251149486056948732902992875546756073700013744372443418187570323004723383143100441934037991001421229033747801070718089510668249898056843927152840309605820137544813695127187003245594348240246886840793040762538025470080469960212809625430200766063525166802070412211652782569200337986170712324072711659298470593710058451358556732336774244092422175342435785695643571005171440089022347956628585296818136542294697209685565807890134980653691187917565026242264902023556179857264178149974461703830881332694432501097219741697976108970149163147850141207748122004751072649423572777951919713960917337180336078993482211646782610151616653712236650740756162298843281487302020709963272837347150491511783083248760571852635328447741831386217599640783213091994473275818099975628122746108299910410625216834266517092794731800530544759721917251072384040918204020897972175146580435597782810211738886767141308923279865857148386219834140024963224595492939397993009711664973510584179193428538192320247636798326462913162472294199989820267567443885484200445501497620503915775193948534853442824292194894975220809885606198751985762831964546210214173969711971236102272640800712551620862286955279244433859398794557055535804065303066422669131462612531291425397285560161827315399727396138503148190798850357012044983916648723418992716807428109303636065832817624110357102283821980116507241693602599862318962421228289054214553843326043914429283866959260651844322720105364043269143750642001313388788051426558676212926464604980663563143570941501978615344177705817390885097865844725271732387160260613859475548942096756914487757960042906521954364758353851396938154651262140360820341293338000358036361543544722927836737937377148359582474578386253903890332883856736569229770168923730452289281638765090801618809448582269654740065407496355726719549182470333456423940404546554206032867097163961711498921122690556376154803733267714059965749066968691694820525016369826171366544014295723339461926365497797548669577644021738547324455290058756473460315090077308056996643201211035430919770771383055597821885825585804655942809493105539855001453771571077804660901674818894176950544461025310656526176251371221222977002644240667845476278381496701510950786795017117604070197257479746643656255021011166354395494139327662245038408420596240558308493734506441399977715489567927962405598809272112430413843030496806866246117291159709023841447861222529348432498868913749095708463267375112904297067929237097513140327074107145797208544622694627045585644732382187536218641943304436164987731958944929193297591947990054325732088280147753753114842413017844140651557646772775042362648600304679173031088810412819786185691737281907734085832322024673231646431371743420933853573416159447915730593769271748106970986071985368002801621221651553700268940850144942430705027269052186558197738660991222923262168913435290592427634144776067779002651541655827124984125170738674679410870874789539091169610465601860691432661544350344771668275107086891512515189361205130208458613132522484242728011356781908087467565582865235555222265908733886391754676670230614028530514780189084320727653906038523519312799745757194096849312574531374201931144948432139152563677683971070064968253926246491397346878623297154919136116591372383679069361337594869377278541898842285134480611977758874049332848471006586046418835698506516992916571846690775563548934392756015366263088063084189661146565261244422802369479580350744508166704266484969300900844540316999393638736034024115162126901688710245419829646968615337978104134096465929426569267748647583793262206652003335403898281526205170406111573221250382273247391757117523195052852223038857207316192816262227230032979225925307703962594761569064791372922620155179368339426811628985118002740496412388703377667999064034130536134301441590771934365425891610239357345715281631477134812378769282599167715093553023856161697279213674005040134270252396930548999152352452680976973702821426243910384636856219689092430918391696527066368916588603275914739427440628493985849357140685215866601400742498949459893063201077238909174317012259375093377972435005185891697784018304065412230890067734020699715151402998719148417925805470754343763112691887449321321153227045169741849784717489318531460502904856641358369464121143214887960966629534804745648752244772700622189603167826739010522120975681415425246143643047507855793904329321126849288012195112149843556803835116778312505350132765705072535615200908600183414404819780296842452563497241877872684042983052159671815428512224627831305376626461161332953140598471675375049760379078409264759156716974099928500123590732413683795445365917234684127541473197800293931018266757133082171492379904621999005853226400924909562585699355958757308843418526643293318249451068331305423545853649320034623570396722939987160227255468637234636748217001982125182960574435053676384288467940565854834651284273378802131902579908904859855503628766526413503290911036970486057492802373841745094717691395368084073010027046031843505513522183357515085298228809282553131633346042433432655919273248330496982570258916019679594969262388946337613996595552469901313046319950849678601593672432077722455490584306310300245012269844760063238035309070416736889534637770494596364722383580016765910626784055284493353178868704527528752482466810589082299294357992152894902223914521833865687089459328759473662293622429351485823248158972548246815977217408718819858369403601316277061297672810614598229126286161155845145492617142258097304500110532887682195291950559735217706018146943773680782916579506335914379496686955094904536896566724213922144123125178493307366712159718457881005103287358438203376266501737487842764460040262412148045633251726871631651928447551804790132067343201243906676882261405598956248940833742571043869352295867802613668344130033388517111739389600609784325548289153830278771909183837110071704700185133427569558351538571265740798196781418752054302565327875552738894427517127824423013374625615347870132641375985918553796726568723160592493852834417626393227129745285676303442814597095712145251808490869901987942421458640375080986694998064936696122177153647102001856338573476503385523984242159445759275041310023762277750516165150959223919162306216372165546931116493357500258990376394453691230135073037928220958367811106927203188165775745661034348095115813199198419679114330746552079410957815580484761113250016420923002831819637914504078448509242808539998787595316827095981420247788591159678230968416932051240440784164833907705059785712038635262391426058381017523416405733167917139148924239850666717535337892979712193217402200991494925993107630433729570813494322819495871055357644476212503346528284003600247020433924366644282485129025456268227135070907246399983482269403223166153669054065852404004856398471590029150917236644142341743808323558496512563731247896938746711652789279981375444420960455100571840802573513696224413379111831365395305369533467181669544850854940219153500713368144066279893924924077543514034337166815254487947446168507868029463284875239699361678064118486789940435170397913962539884839129154599229780301037927096344077552814595144060989999740413964372312788249521972687211420102837350286300232170550627141420025721675909711189821351672061328434623604131746326639739393150614131528080872976071756170978275870652804701242955660155578359728310240310543438721595838670689815823658853543314788013862659865246653590967477641191723350897679965410161197829001339053077527126696136336510170607525983256646697897420019281594925792535733010877572843420812548699257094436828404408283948324058872049081875354186941677960522270403495873415709131955699438964796120843288588621837065338120057480459492823866244379185601988495122167562840136641186419902540521012039145355997818116723258157643229271320407879902537046216629244847660806789659276909186516530705088640168610216919054940371467590703121377505112907481405386919262420298336645147347299615409761340816099835723185614797037693715590990158848016933426800103745212702560593609753076237367778871037296568336867475816502975528660382998499861295873171063985663436596941735885289348400699540669720764131657586725218557261826042150202628776064131985363878059193262746208868008912810410724049250385222740347093838552353314983853273398616226055579993789021879418627336422058316897531747440269364350669068134980630134681920611984931144496028195974852362152256709923424691178364424000889453295002806058488934683811751908318368739366862633366532406550314329778991342822214459361202651429926179024767326689168995717138270768750596398161209425250731545340558250741325909279504629034480260256588130367078149775623078807421915905490020864650884637032527953644478076738730346072458638413427557477932375532307861056214311382811630710008062092577658093057081104215760340672136051987948028481539922818234899787286237537158171885438281243305628198211805612097209090422279872012358575503668495419526580002297559109185911230308740227535381112788746272870242903895506990229388703341853946432711465060798985471035489513605639899402696280782101232070506063271450169318152683834720382796636833479221480557732080358374149948063414243543123765311239663962166288689162265130187964308987145508129546459870235314837881398318549377820234491627172079515605882125035841496490126483300302245313963396534993951078623558053900892438010544332006636749648046366256319873807767215738050280204591684976760856903793302919647178807628913532612672489650428288966859142123218668328799535875587261716353172730214090156071028975444910745309325504258296921769256757198167259258456254529488102906976420168213410857467788792376062625511561693884862245693311009489130406012831659563511353281011564312979998854942721557191345447490392887679598379848635763306530581216610989308753322612542306426004195157830140846726900860640372274593756986846890206572558768971823375158765448544003439323313982899126413854776796580934363433421426971144138682238558633794783601971729301832136331738422084569092602665746175910324071419876916030391702137917304048688008621292095115215457917876822918562362785023431840661781293780786016848346215510337795614931956359636737450289195512388950122580488693259755502695545159378161361095411102460051605573119482143401765058541415248213521772078178345507156327649150685048793385809901891300294216341663847811779718805241164007442120607676054924940468751965218982768825035539630842338957811049551349838767480393508792837633196165856886869163206363078457913867228996333517196310480650804202109012008187846192332357007262024557163341533531549251172897823297029106156422777043150328878669461436319228828052448988817756479347199308842686805581829902515728324628635004747351267428367502720677029729830218166917490444808967978423451976523577067086013113687328249707695893317886190060199684637887338171033998283494132928311465504549019498800225816185043396729558005122786774787444752127606311724756602777416495743935820432847522521850932304868954150713524537168707941487128760476870696573722745037615555700034203034478323685549978125126081004048362485957980173373703183531449855647915274144627886913590308151405642795995647488861170697467009917931699975569262025731251926087025152828908539382062989162797164522698611238364717283546674827716319847458383595491016965817664511709539112462892058084453784510842105577024294719243925482541918399582141410515408197259480572069474527712166518094069377250973264589575292772873531522260064610906281398086815850607714653309445488590286768201851563840872700432824247936898007063738568432230751216399163070269472297741862823253257211901729199887164316194386372468047989473449751231725978507609124361895272713796938650568639122780896742396710942406634892242939220067943681605385981417463585557494147141207693526194437669193632756900300918907592855272572388056592596055318061903811937455769357674932457836058644020491294370787786134000240644911964271019851455758046263383218814440330035641028385300668565845194163645982587881482120922480676673386522509373492371585511298959903042001207398005642236933989445527208687192489277365542571789557858657269365007522571825034831752406494350779608837200213898260786916575010181189490408263269001121143732162581591046038798694527128661355840200288599034174714638954530267284369499254409097131253330487626829261340085725894022853195717555339406559003011114952845043403627290655414197168848348406134767266051752440623659152315963893210169203898405726334080636120778790589982037950381551817805493564167817347163371782659200702655506665220108830393874521945344329242190593837486920356807188296065702974970022050479654479007721687499768646250367067148638995948963471483408911052726227183436028856348254818281682289278351273764927312594427163449381204271417582772919003475690134163287508946516572385259370495336544225224860815266397766112819285829502371280012890506819378669551580632893507151685300666567686468341295744991556938263376289260354415222056032956463131343850462170373774087169743023064248969067120872517026390092910281052728447865935409669876584993505004065652915799966086663841724867086502531307820086729279293247410359997397686525277483283977314895212377549679808401883262189531380536220939563155000770866409191924984838719391898344634765284306389371833909553721233084772306334402371793839701012027776240411718861681943389846967299044175502382829183239667672344148640539427568807062306265790788087570494778159787795045423064402097729455206949310346945888598916940842413295810574040639426073597912183049606798449010773701520748397887762095912260642311071402967478277436431238963305507635884093243343543252943807871038494804372259835567539810034273754705008743439209177593538604129976267155634124001742312242673672052583563851090062847497751815222381440014304150413635301112470833670924700371956495451851128463248055623175725641243768542917753039460848934930362563383754007509720504867127581652300266003028441769702027021515183088343689149336706377213779524701949890904345387202346854528501069686658577870596695242510643983413924787986894452599850690903425569017165702241999214348159224987040268473013888604291795433618644104610118080544462290897914493855755621733862048473717753924784716046215880904973344980851339373196802721161849313917929351258839216713999523101233776444915803038948349685530732560325318669603026226004452816140853981533177194591064170798440775834261483795365989880308055877170078182051840450762954706702656082672221396209825609659017681110402394940355969613969814540225186269460206724784391524269938026586825353110338531828793680025359231854646347058205827482013361527828245811095384677850307519077693291482909354914723853010266837827481107179577343128281945129219437314075024349699443348894791612460479249693220753234146595425627953168711114866937567464957436520629231145427509800031827459555518905342286765282305178369134262728941693994024855296894470124916396784142129976461983553275400307425596593222990105201674216715732907577763525899530983391884220621605095497267254560171883559998649363684358697056250870374775934457890381510283852559816025167106195773050068237425935581956690273038588945766506231969659355156404901512025196170868353050694383307747585904407422381973354147461367700652909700064658971806093323740374317224139181971573993062110851667886097855258439139925033786485712146349399020979492172569577775966372676176436582033271478847598571269372660236816422027598135368964751257003612240874619613172165404487820156698623877145541148459959638441589826476345612883125131914369133801581401523108812060999183724757208145468499074364738549910091743063959502077654295829707390838391609248884508318470867706859034884347930729612095436251243102637762873418617224866171140848416762503767339363435990207888412659335391081555645014924303886938632787624751909053102571627646201299054266396223653606707416562733428353131639010927411659132346410208715015807284516728617570688642472097190214344919378082525344904179442789198993908192686554366659274074443100348503765503970824085720890953354038482933387156327408908387513350404563535093555986582205458990574614486951390476233667276139981692710497840302828624432105351056753341698436001985568942945969571269512228246702642092818367506113326058249492309535406946259777789209273237113058692167565248780780125160868733361580852683104012611436282089455760627496130605432489522049171284638945484245856701569690741465253757027722532406407507741046673044110883960384636472765851948014206363999416126694517521885348881661792771777318548136089818870588471275095971710377135519852254663454032313234622572723028922786745130252157809269148756868418451704672507873581354586649084488919193329486412994495301154276753924443779334830305594319888049590919359987747114736478012291691201847765855651760475145398903964410279116709586025352302694164019430151173250482884386235883752996723655215942786412869542958528282013443878479790157416478734641153191571528088511535955660296747110376274571052007575200224001395214954042549863752943223545183494368948908482216903120713571816862932565896439125737416358171022047282399342778362487908830080573148072144812591627885035829754750567529415623575735781761187755937046261579348246874647149630176526818684063662405102008781436692294316009365336983849830811610359034903585137447428751326799738029593204057526116452731268468948752294040411597228296613269534116873581854307042833384457269844343672937382610032649899803009675325254791640395783315244430420356154897816797174396425029769539805463215701672477906996927997726470071133208538367625841716940703579475043762926572305442231644484700771875772265088070276075209552788020512740615637270643273582469840289134076508167867590751394883813987465230608556588733004996342176832906503643742480817191359828896406491882538841669215031291349533417467313424426970288299983025057490382812126628907931035503526798237308895777046811907243519132423397129870407853292333754791018269682219882898161411620388487873781632637877417705492082866508291417016266062106059082271858531931696980543638113453337054934173578922076045184211214639461921999505806196425770186514630954493791084401116748692047029882601812585720104023584547289408707217402248233691679003800566811188046528392741298962747516246019059040596218551595103608156432892455914202456184142140088713389243247057611686672477831414133804989620390067978789353428264946720043797376424552774283908206476832324486408584418268833424874201475489905366640585704156681326582717632320405805365406253577079778148452080851910660581110739057849821751580674356846179282010572412191321420625618688497591891529889463770700657070650618757433842912818644899606584697089406658215456034672886262405663554392844597839110209360519247306273795783069990367719075854499307354574189879277927359622543912715915595987705439447567470723797075258423624864264331351309998478917660437723470057299453433874648119305760488671464968693043393112000602628433549927945696627373725358129290141620120692100500423716153212370562799640937527230425871542757922162666580238358328631121766651646826408642697335367651562090168772922199427812876334491168895484892493047228411853229686588274583104514342144391082310935469699000156028843334807471193078175273633948161409785781798167374189139740852755334777587723749565543571151068219751259197809543898166257377421384556955457688131841068070345868652000387039158464664577725740126119925338711181047051833492056670430685237160233406809427202348253321152348703100605562887445687205812412421516471269424959716307704453789895845397503695971338605512784319952777456361763185400814403445840272253344613384077864429507892354041274286562886349805245391975579294234941685183060598234893340098445039134444477336161039498344568312462682302139157866835808299013929409056089584776829091904304929218955155859252109161049498034543004668520332763777445066804632935225989712292993671126755395342607362086019212862579750695923889389035816545178198822993769598528873151908416467394536390856508507123823603720704290950614980084733364665397470990619481081371580500310511877398617441177226959559997098012375396576789847839262296165566485933638670005034213582474073104502210702325965534542402242314909788226092419337644102173072523934723034702673169010492873072759910309183753590786276486837164511852931956563048964887810452343946907314659838290236226430773571202590226635426905494741981666537514554676982448061682590204793672824158792067729601880322552568450483198950708459049785561547358956838495291128224184567108216483073179852463405786737784688749261495854397044633032912760710967145059744142348888956890590629291454211779974529933729187874342969459537173310981594321834884334286758449757101232449909298900726486526637846471345651230933428948531963271647832396524645925279117733362707074770138108207225466070194171352508267637416134938181019313828040804550126267065465890578964558221645364076104897931361766090867823030418131003535605569220592594738544865678902240999353810258357637757099018906718164814052778206710985286839234590231704531720569630451422264491514785633204893769099299038100192680112458761634909326613948321168380958020241455137541071823612435809529590776194720754832045193085078770325794740206784390122554476824931166359191807770286242673053512049319552025727344369776024543590732129119873504357785391937324505761253682571355120521439603459113472171804156184350337916690297011065179491846855218172614505456913105509112805752398451696505752571575263523668265618935811835206312990844564753583011246276489526783110964614522240578181614838878444453148729664900737565526522441176598927618802395151387665823540934156899048545418167663276889197636978158232057432546355232362028110395752926440382104875193926668396525536070259961243662952933348811312588650282454142442464043610805142597245503026298044951878951206513391538967135144711256749174383392751022937281418371740693423890519826254438259246348024100494448628429100549207658337762686399719336541769102908608617734042939965278621010705900768273186820756810961222508873811742883807707664406572632721111152218607549645569474008331523996188379467437194007267551875358766581597559784840475444421052816194339813093689666086804879896990176154138056769224087195363712304720991718953986891421629340042673670234239848292863419643837751358987002849204454377374049610442286184362706485555058056328911415656173470707800774385541042506957900979518298474465464895918534742283569433915750437218052020113453301453784211008301770791711157111942910191618709359893535055996016601329104228907544257633085731168035867346656758751609862735318179025227114378110114813342140144360523636035965790563303337684075683917402615108980208269484697892148796787631799984821596176735004824194330298686437227982090362212074282105142506860645280746219935193426369868578096480558554747262504030265773701500098678290927433174882292060024903285424339057120062109188487846295066813820979595394755167447899432400514913469537108608194715074695577234945143824842263176583162801613966656126020271207823639106811451920616660300436148857844064687405325259169770196288197217253448912619477676326788075996719124819252513168678142601872451370771305860453990162538792115462122811390433246439558851553061724396597193219036966739267717256501068015720531642351205044410650856316906149360238500776868957892121813278000055396739846534728082890900737283592407097745629027160259644087851646298344790712884089835368677453666960639660676052089127882563768663817519958731815930326274020908301837041021908117369879072336577479749134031388122579365964622420346328325585627383016326216665350235250094447739871601241956707072631793571501412316074015136288529943058761247182920436813512331056464188620240927963236523071708471619395087819631639581981363283853914339320808017039996556046503876358352525126161548281931835505744307596960038995138038589787951601426539953779751889166816644031145449338898108951592078597470555415604977390311020069530588637930065435158491489594079315010396651828712449082787993605950387582302944209225676896745299500745672216176118769262032146137992223616040136246984629707298178472091706725405327240508515252457253197816107779477136555395261656768136815928728635565045031336791113805411359295137492856866738745061162211988240133651634230987424537116309480134607261635544509335527367867975211362143967385674580050939396991664379288221064545037798254432531892881245088624270262924847489820918978754355182548236080405894027800311318134105799679791371535669913995937710194662274670732104803927594825627446501574219355138715153648920338209585266342181849493844931790430634146308778668312489332834844166555461869737457872933009164641256276718398803509134780395869827565843412878147903937440141510009618867755179725816655141827118002531578453218371064071956885497525608086985408349172865571663639149221822183846056165271959619436249053184704369726008657381861360070353439487486761413358468482773183695586103016919303900657312468095957214840947344628792390448051801808283785425765770497462951467330147146425253634793486320578225299604780143179467775018184863201767232985878896288518806609008953598816538458257207224290720660934201395720655341493490004260581819828707281560282181621259505128699570225570819185500873078523803558092859430203172774519544960622439826826003551854783988767396464001697740129036637091978721097875711999896051443499174790119197749661569073197060648116573125647982227175095068125777061130356280527721744058891754919792764712072231880440620206041719200597868776017405925278607673488879303076094799069242578913012448737885173220737249273279079128231787079321238544503113493071249777431975173807237031095467407537673940859581391941710322370570395461210945059303268696105981236125861173547172723441579668557110923519044623458989678612329932071362963052825047214393900391821385026525736370990828634760875319352809992870715978072009522068556817686803166622776023413027014402023314308997615541740704452291114557531635293266444770371421730937720776863070534076624492195509683676820345269109609136945181748110477987326923808383846717586281562463400693558145342995798339753848805107788317156377397475865075250356540227856453742719942780295674542763878970051645357907801081239093766434460483921432929457215238943849286265519382127016920168504145450131810518459602449367736358623206422516525512851590454556225022371971582473865599663452715324408836971074470969809354520664788511193679942357049186730751928276920407850880984800466965812634037798086891467619331921858572149598552420263698097800696611883394595234606827428464309454892236353133510232720236251968221201598959261545774700827742990056754259845770389278410060866378499078347394925155846584562858378806039900344688551871966851397387290113725458086492616499335747101144246603085116567515537499924078530884873926171211716645268827554984029643690409132009426189764219483340149510636982288637918792096806234611832913662625962839506435289929430583329747547683403508742690892706208512123122910868873839694806822699483339027971222268840543610888899318769798936329978736142858627672359042256698607136656240599182120970191151151983007335538035062879874037480269017901637423427767135116443593132378443539574507205873440715877725611317930441290608698934886289966755617840640375069855763668808387607911130730390950013401962137907673046299598627900721297756222436280960720863586505448855511577784708185840790894185819046686442410145837063097405876024210247273931456309586722908962552046286152639583853764861697899770169629625177591735312555585314407481527654333727957960931862257224333070933073654680246032965213509142338064203714888957402387028456658347144413155616589875013329076693051297894047912728992067083262368986009245678819389765790968399694632168793779796330894735950531203102637765201275152561559480613123309654241233309644006709949788529298970960805628941355737270046181567264042342187008561026145166782349034866079078273040259034740503477740164644699839738774236042129620877884864212261945178679424814859061775389650080082104657800291707861261270152384694708171580891141580540696016527059708565993564703031227470227243706786804792703682857327554406195864522868092044747340093232758757030275095883515413767257312729777624196381674539038426730718282245855663145361616932669858692035638650921952159314951068881221639758467766471377278410948281338150221110287344165017625408978164297476913301818874265427622276379893807299735931196143365663082355198130693648055905739408840741781242612961706407602379614677173642845373458401108988020068365457588220099702612750877704420632554559985933799372802822756756962344917459737554688973897983210726183887249200366660906220365861491288859140994125579884821577809510119916522099204286579027565507323716623596952722907713169502967918290743760696372959544540759838056954811107394737463084169287770255198385582304953955354303802443924814781265013143979706251008067867191569509497332786682620336919814411876739648176377870968889111038037729276365566687569306346017331202427046779604237368569483175614385004765289183794647928986900894005986055824373866942054183499503728582766852382116027978676852311246593431342149005955549200388717472148366333530543323742421661084659125945999066695765631385038992306179210923742209910377741945093554002049519542804669875869796103949578712313941863284193220809927170290853102445568248056195908670784205865090858709919976234426054525073111231838393019572731300460884508565172067506020152612391572253770699703746119288629645526372670023553164393197536247452394077034473007146659293253643382964073647633261745750205512258587530571996484132983361904204049782488351740145004644973333264442360498079531332976593116359277257026633673021893839796197357058302055904018652591886844301758367160033436215727498056909208832068722435117107191045593858929720391806290744849864870114403822464114216935562979182964582389133436870382593909725723214033303965769241291867384285616675226329533068130510782807155344818955769617505063460555365558196199080263164473921680959001696015047619185635334347944579036991506845718816239887520272622973313673372384198341545767218123683094673320673395221849418996946841516654919581372854892639263007055945985760273421816209749384958166719927636299579788604055067120801211228784067940099041636531186219746436072970739656109204587479864854179506450427678109064750357944808623285086755117268772816070412141066271282563179311093551973725581328031441792325426949797763015782290681753819948567469848901235952708737557488987389052155311788852803307366678408877292428536458641049059762955254561454663964893918139637605798282708729001886581320635011441651192419142781835341722721645712745674478363241245113763109231506877357387543375384341056475101605780767796143773836948224962504005657718502919126869731696937778555384821739412692667457643610593760743514695879592367628909740831078859526831556399135963391829180974126330716114002405877864580399438307146982032705395710242405093929437580197642221918953514020360109175599533520396761569978712382325371861813959320051789043808450367768792619191917953874840841342490727021205532052377968598954015845655023598284381647258711628757097239586455106092372980312861325691008528748261965189854067029745668289685625538583720570085457263065765202166958656854126244699554868608846409594031777986494642130481996924124240762678150119564885083868121734418610922106160842248676624453378553138231304428022772553612988974135031709145730682418117949841273256751991433910570884784172865087803669513176851259483732046999728033393587581898293744332396599987931605836247288965429091567319365728766474449696407837939827446357585151682682030831173035605563601429724167336395250296945970931448520064856490263458844776472969605431905241160452906214428714017103433908612062023151127932605343447094959342969934071533357826548391461309008630821523107988012571448266442461374617326068868308647254869876279450171625632408903290867649856088425835819950123329249844819187211862991288848176268711535619159452817692335635740680360423031458275134280974733633954755806886142892525378534442958705094318229461670279923246063930076826243601529215313706981520430422840333766663595452984333535393802776807181989809791514418783082871596181008513023742626394043407519715138144084150842383063474496536241686854093096588595671637099841453991360339148542315775137581417884317556291807374318590992529287635866202325765656062407775051706523807309212404571860319023885952953429893860579132990367722546479616357559609355330327526811669610030545831581554391134689720106805629666590466767278394392162257086377470097573115914759349074507638983273330843620856062545147024128122629546127597773322000713181000093242206528095130735245560661305405534329155669908278711368685793247123248848017191807916283242464318939621924117790837179769073263946087433184437956402580560326583734282773862743003179712168823074367131673884290152377015199397655946287944520331246476707613551911046615668330637105868588275753486840382453420810908022661106380711277136517943207293196790367472841501953105573409269058018832619287658548473840404236524309619306149292627643363477977800725198161543436059519840332795074875286163683323878987289779303158501049628648708989687270695313106701890956859741233927958266391257751333671402941184943181619885211453440523804423018365832807367404270858870839655688818409372641835499122736367638869810200070810259939075218994225496344772960495068975497712661669883357675973647182906995660404491864621739796731745877728500239604806932651978033999133347281087576953782329030003742537514268504646613050825991403420752999500563676407350125552694337141143172503751679920263056662646323558044081201095354739970832290058523981546618996215220494692985135737060881218975335606569903547257288871785664011223193129039640964115758516521879629335804613187273514401113455842986409432774055029045049319235883696851614800476862177192422432201391739993243210634129077938956545220524230550232824989496978264599398024723480888419847861001750868601142202259501870213319084013821172676251058660951381081205852425587613615903568440859208399815416079885721565664109197219742837007680101012512007644439020502385832764154430693160367475541064060005087986139361032100887191377166670950171117624250215544876689178627878323489109335356066129773028198981070027020640469397698965682364538730308768150424679807880533699788683985952006359608489735965146850614302335118843681127044514413412874365297998079730180639164294555385067746117434337042494566949991815973720394806814997355792514913903499787582353109053306614767753795169337551897110160418468507129869289227922888614537400330747552492529477798941626810767296581376556601883652263326067045786051268197272436159804048045571211272744965088468527797821761727885908459420399568326973440348020753616111217392143197532912072090795066200766336641578335418764867989840302262786668132184200466061441452207717761280675651045690518940533186792137111050867262279894989526318073631561552245724489655718732243089564160046823458831156376055815739264428723457890771267841811587119673768844106010246320021159041998513764970470812798342568740152863527203772141041790173462770154724717780741323708854937687700902312903189706008372274915572434138887900516321637035142995256685005803742263668168203923364434211841207147911133269203316782494135689980865065778429243338281510251138449882544566012788430009352154545085251731551317596042398449549294193320949582591584532583734840728137586695534253291544195864860369797507935502281296515803631409706739769233090018283144286779148587250395969601613072278589488269748659139789672122048697909012458583566778335051967781572757929295516795590822809490019421166298040182470141666985722160710109735974405566815446732483294588978924770350836068722532613522837289979359088026071635808467842196512373995955184583149714875469490374345911038250139232911825044594944633540683211097861642376648322387613117821728550482179848473176849292839147721359267780911825443746120586346381850283314770535449022338053062820173761031057840147057922661457353872946486174309220629490659628049738077356447496031243422440979966031507798649483275076947444916105732111682654901525458493436865418922517563439901297757842409845677931834505085295792766344788624501478870480733996587893577722664920517135280309547654027976875493710232151145972977755051565843647493711227375364787010185277286792750246677407890992978131037918625937203022929373945531809071150136706209490084981124167050928820494024366645627654716950766122263197483435595481296628446355823674322640694404824756660694146523283260342597845652850177648668290748824407635774655760949816636831986648442084879299858668644075499853958609162600142438372164004638986732499194480507874170978090225819419693514810169626914376540931431115317118398369229814090015367454148712228199119604503700970047920337464251579625395529150742969539115903514398599240786156121409279957992643395659609607210396157991761526892952479100557042769048766908141669322880636773996888937994705473488045189572003262611644123616304140429099284524537506217469487954448943073948369052462546453071538821687886068051800727454476899975037628287000866234642273828347407425587157909711808854694135671366028127552570362227261147755530514980977066579627576652951512096038806702285469947895441988809510792125315609705856685341134841283511700324225043775450725747459678498474011493820215312544459833369144976304978153753176728865725128330348259047310717346277598072254133171990355327198747012750854453697362142356199661324041772304092600666608954314331961985126696708469518057053029154130744637425492289010892353376354118600163747544646583546879191571286689480478950957328947463876636208979466580743216414062913761081951439389677247824661569800209944998525408426944876399931489078255695669492618677604770025933105005046025791252714977822770566572506578699617842295737104030222714438063440305694501196299779407347308543918404407001769551497830401532478462461939048336013918681479201777048999545831226180136898123732740874260490756180871522756199661413401631459340970141697270405347207006934321376660587241263570437583597746856467326268331723173766011738962640338005145692710593697803698755154195374161804453339972258891427233979392382638494915751748851700052394907953109680525711618833136106864575485638269999089373095608563528628784237849161490863960958771242262956538877238798671396112428056357534810697178170522393624997508356061233011944457691767129688548742290123663849656967505620373994368763212249978995052704742543944654796019831780499216260561769680444786365530767592796100026814596121662550288263205622148594937320213660445928482329678845907949079877400497979154863176685376554613525587099185359368672925091499426632692485825991410045520081055726991708581966380288858433798523723116376475564121250779143796756439117761117843933042500899197321152826047051605834093343366187190579851879381108953707456197469177714437520747098167667176818184445337260502954569667280590766806397216245565946243740143301894076503081812217962237471394788816618764736854305155733922570887133915430824539865702630756815609010117516651047646777153933081320569755908214730912822171573002445691478863037257386218995678817624384622808371460230183460703467580727403818168438884502593361327068843177818256685755407710166971458231155152383459496412259478819594262941113367385799758242509690547378277027712653401396511338565427882571357014748619777680994894295701859230223269292222040303171954866571019674620440101987196186920035763419783104630573090665599215069254352547010269479292287289235579750806868336383824762666270229833578407902205186098479586617334720660980170591918097743545492569369932070750564129388084069956278069201489776026822832536058830799176333360812030115541312293261543574495078719000170055361109577773625662682989496895946572027679268451742202539024175804465046957855427118553524193202894402352554363402866239960335332170898342146691403416773388051236287934716012905913776081533520170705743562227515143203837683479167792877080203087221288640001729184382521407478810841235949665038854756001027087328757979717355313062564349269669255522510154388880658631335684006831218132914847871848377775802396491315462832951790693160834843927399193635442220579002973360121198014649682288975848563497760335820580197550717972165776710329072281898858139560783294103819254850488441817394948768246910529282913394261288853838391259702432126637978895540924982420641501104287698805774472009177685862514511321751115681159472894035421686511636734605258651781675336813879188745545761273260883758275797057247223494147169035811654221499223260287315230862222768319036106586280106366334329853664362014506570481615134363245534277314093132829528726403384190161398072176325316703762065809008153235548319117243343014138289753952488714333437288777257907636228456695353508092387968575832588336790826478694228370231888588983246620488985035768444646706885029724358579834984447533556299030176423410082688943290413322076206419200652286786021209419011948884048679542456782924788199825059526570926684662088453159870993185804813859869968906278332474419455744940465417708393309555834241090274088132301906505823595715373252970535498280059512746743339429110921716520970644770761460633286577658145537205175813497178375549910998350399387504085464220367994980240753561415054609177096353311365689210443730410780155426593388434021623473144690026913738778119703972322899188904181313183843110054617703048993451151018786233611633887913750779655997366444184460185182942245462216550052020219889817774416255910864919360781199988176171059867129017717016745141199255057063548198611930259752892495437047697736948099363305304004373200839603622350149402854999424510935016292241552615955062651938180183462890130298277211608390061891833512699119324311666028903749255408134190015030333676306791478990369142670172159611438579608619865445182070317872678019038195905725419734075396331246532995086509298683744586916942540135980272123659785179770270777369854560275728278742833925404193531612232477791394982666128116028573359802150325719562096337929519984621224423752777206280834176143507772544988072788049957967690801958322773577881433599241481803755528761723130943564803550183459084249120155333094846831797800457524350183366475240421896387812068526653138181597730749923949530841256426822925433751112544834144612547764142715817810535125257099385522371049115956132624824494962812074162352977638759892064098848815723458473657280202259836334526106003538693996721321469993361866636698896451134347045519969219060351751611552046551586873910011581562870506583698994374274452039373267599660739858038181158430563197870833347538789689313744919815902985301555071520944821859807713795319117222161665606952227694953062525472056131086360246609960633388065170077471505267184638313068660545268405708934824439208722266802057495442885091440968990038558674557027350266083673538098599989518624115545696632469585314511846807558599845011609486041471085776939013300189789473027452040224667723387854699026406887145338253671070477851878840382504148367405872690269278562202794015367713385456825278211064130966377697709400858874860555361725967964051884218527278478672503470976654361143181129465894504029164831549833340076546672908660697093802057240244136330857222589190211416384326653974168879205005418303938984937220537928304473905301463423865909123442506382773259650188486151712652672795280857663407726395875684569730428465508105291960026033789132643985768602617020176357471798003020120895984500627228635357355348001054394801181752091370914889128515461249052138635319122139411358666120455162599749663175264379552763562482615446681956663372595804666885495725616749398852699492001870810909307068015476955957969366797097794232758917796897805319304923238857638544511488466874806169522370175752967527103411431433345821456168138676954901522702567782358657904338831336752758517487622697456896810282927374608907547938339208524745396095744655273018385590693381032349692043542619286263680081514930011355486382968895344933395137760335549667868886261473920817087121266179270079800807444991819066000892989599485751930066822417331655977230299262148127962035299452957694646538477978118435768397886777553700510995000086061791899374625144286389275595031025029695366307774641900220354226845208579605812649069101097725837944471108811501403547910396690955443857332260921192147543810527547502965737444777765103292856424985841588239481305979515727486081912106070378661451429658769117177649821812682676991914685862134760275090219722465349747626869952983419586386191557500849114521232056060875025426375000389171248511670130847570445533405758968202909763930733560954204986320926581403957612407560819809398344412207307879644352544330036916125877873982004418835390268106876885504796421119373953890184258321385419412154579416043627768013343416138625117541406459450887421041567211215619512736599288531614112288309689608869415068449121883620755300367314902251238519227978768548884544904279033901550157419063596298561092765311368827197881819140731126540040953152215105550694001343370443806133037811470376943376586322549558065932486715905812349580429314584694970968548606392767735206574435485894712472497448778904700800116024132724514010299469426467634363325025608087262141301303876824906818512988656247852353335857445638798623327142449745472298927459716071483469195210162660074098032660045991737691108584779962252709181651527416784264826891425574276452430106350065006783496131286510060385455038510654516061914225862380532931237896777518646268528637018072200822556071283628199475514857250837510037855384161603891076455237610390395904278099986955042755605418261450790245182104617185594589011473307240823384866235624694491662352458530473161588307749474374424607815793880747009632475809198296421527058324732328586684253229016261267251150246739313212239151847601969499328145975036916980301874537714306309614787425321754474895194987776599200990116671055496427435722373382302624976876074926867071365575633437193638435921894969888744419346049521610944598789512858065544272776829879727361298996313667871407084872492471385586541835513854404085939858638545614003651562100983042985709702310828158109141600463194682211215835361336975464487820153979309338627749660628517200288576619086861102447209252061950565599670503505770061357847357833050300607747041384150239754792041847076363762362083650644064195947841595128539937129994796504985437772962950749279303612536114588716919373608799439391606812090586241547272264669318926261698045860683903943998383732578537169857703939984278132298445126189059049922041847777628740182081557259935438248631186008945172944908173120821058842626941834161630814924736477210415385791276707403172484397511703583245176931248238624869975046728932875574491277372980665530556882662349253894606362506123483123034149856764015203236979912318389852551876637754310535252714620674561269264959497398986112688692451577539976956826216252221432043586923781763176336480409763680429105608661386426761222165505310725623722695751272197245205803417567775017582566965498387612296136619469552571376344419244184568832466724335245602893412652006159509512647145899051330168792945068982218523467653777762773930253178259765138283984457549527950700497245087153005644139744350442398472395576098935767129217986462506789168183326448924038575901492245949171158968192221052267998479354839356906609290799765757965962859866622711602507667072385212764199126405204167709234596739595890399943925726901430240143097089855699462356752034028853803906475914409462173833105792793579960316390500012856624632034873194336515216949983090060288685513509714812697063191863485521996336106507859261001228356657745701505211514388537631320210691856886807169990169438621447183764523341863832076995023643973846487981081880192351033836660172145811142073176710242360660373790469826080498970546242165942070193477403619319877659090771975466313148196103552859510324285642841226412415797908445836454216355865050364058901547339752411732637097361151737342479292227031317907160890156905228026021564427203814226769472886777473549955931405824242896722032674563240581259455675963660234732991079504720554887089950407387038093284671062278242405182933496529124207947835028385246866218085300802577706929462072855100793014409652161975137072362243677204862521576564114607365577178391774555290023690501870599814441606638905731742545991861385812239379961035456217278947851253302962934647101783259345440380525523827049351267730565470955641638723311267758691201972896506777319328148003504113466059963335032397400893604106447701974066276040610196595771713735465667940323953717903640749856565997444492948932304478382074635389310119700337169107599879953899731693765675020197023111746225294209815678568118319857337873401880179274122658377541840590391441221649491658342420131614774214984983985290497279724187298886164725173153646499359110286158377904878141344412889094825546301877233767163291227931112093909346383162474303289494761409538142870339435917128631594111827352606211980693129978018610646603530076205533518322691517588019419358899029411585057382469046497098616299791100019268248111649980228661349878969020790858745951611857967802125168352073403065147613913052157855727847800275791804725096031858889749158206727338286530434650898963288499548506593889247751822095995104158535088583380400654276520540638639375112854327625730833974574469261403151333815303345358142588257711701589830517764547741767888306774495884666611307776091307752960603680403557620601834891686403939707093908615758721286599654562550758880350573394043884538083008398904738146349703061653985808476214060624688264282061218308607104571546981710743723433863588212827623875434817093803385650050888294431675731905099598365140193636376332082315221196436839847255829200305652210708849589437448194082061783994305162353026907272588270785527162800854804283809659724781724443937298186957834958069867256018908467144622067793748110944933195230320777444771787434878396912043619582516677679956861934926330220174155621196997652227276629414956059088685900910913516100612827191342971746777463788157948299092739819605378113970408325219880296745381087044330102029470805523763353735303546191188180534574388259415161984000319296504047530343957450546591971323414687263141186620913411508492506718221128714594703933551391483111418900419898128046225932075370212150599268071791819147583387962687693509017870045182248268298156326399985891807984609247516757737144772605468005750407059237640865946780940998039504273664802085824456987016703251424542586968365452176226312352346484215564727523656995771301906667543392034018499732680486594747287147681480549428163301111873851247468532180284708810003965039233558009082091459129969878931616377940260391260144015565638283434033517144265933406154447651095173635967153857102822524372707237839685042391198593110042628542840854966107658160325557450226672590254629825576719418050007084733190491951046512520617100129437681518059599784654392262966103261875669824325947064228776090454610277666677252748439387760076959194986129592864397521878805099215240334685231227904890211305681191283670803994797162628378886007410777299114514548190865058616786884489706368051715690764312330853015964594523010248504323605859801383161761823079591457961315880096100674248514729450843890027675505713624812901318458630246735797102928092162685100469873838413337486988062090895453594342201327516976782216649484558865572140856202746540347344150607920568512061604943922750391523474492641356033507263998097978597402056895686577286893711620608738073143216448273454441840957305458582429678848186748610167194598678528006084460131530815450454888024759356362823802713973617092849814025698477171840910246150809300297934092893494846764753883771518813793151121508425115225526526493501181463086330065724081905585154867775879882848514006822018689159255829121213770159079030925490860982274748673407250324546534759540033550821371535786186757422019167523936161019377583918978150712842641688888556627003704107374364949934573128745968211382958441515153554873769196785752111422551804959654866793060014829718119989199865328677738627322508657375764474546646836275130164435179582423485375533156723886734364036542754135352380612425466491476058777988467589771773984598705210449262468518956784984180170980960990889587767995913930343345650121379313646178240906034588296490600057503850333474556272320958821591197838848805082497904078171887955752378416752920625523736144328105106711654066670900746384668030243037324837844884910503806601882100616733001806617303779324126432728182639632005331523682952799743909348900810990806920012882795537138649203384534218540867399474659244630600361827679584395452842982552299318541645742507508600919221047786518397455724544144179272851633740863705782868838267478045828443663389696818892228836651477161566685614648138190018607445364400572107365708722262785993498728893357106851296900910995276896103933481835451995647574141500585840227496478752907750162490009948893423702737924684078824783573874304502255049414182365561109830461809045768774651008862704751958636968972818486707204182886450447779169799089852299709242183823166660466492264603987344420503319959805366362886265771270932790111000612915386890897216189469922168769926868458550158156639014410798891899653517743791438615156979444399108548885579268016240562363846559032856524287019185840962195421603947648622121771734033486098046031956616269672749387144786682831403062640353793830050251625624861215539982806790537504313472090785847630922179521244900872186388787003356715821712145605272508192385470744852838515590653695286954802822228369930261015232855675090447440670548891779678325185436492087125665309445227976923305297906566291944245038729489599915472356184656070134529123330115315571692997956663228447125604287396410332007275593483000350571345427064797427540010520742122121756078599778716290643276982285144028749000919624361387731391297944414826069020886255701467443327416667007110785619746682737453055228954753442459820955082945706842585468747370862140112342435269122562893138803605679140680517712771015029851845654511412288590459934624225527425233296798590282514663118038822400308606136943216942534303037993079678278405515327549661814969634692366128176411555829067544185411184506999358615500404949931192291650894059817678369476071128026836024437135497773235993046106229940169058303172281349625593152546159719762080809617583767596348930138446639331202808524468000197113276868733021784586611519746891292512551111626789368328077193502213274496172860673284784774894019359954671772825840785386263431940726772919064217062691713629242948500199075283884945903329038778013086410788147245426258154537027846568290130333943815644824921891422846535921913672143768493672221223813269773176273787888905627936066741087457025585172252531659447150628554657271334796186771993697712899886974604915322717823121426152180683652504724025290171519263604919409814472731699378303492022971837447462676963565223814209052434008816647187843905891836370390630975216760033102860240098096735828626572544131648568086820646523217681492607573064690747018244281709451412508173265196027733617124175690360547957507158657268745750815896983860681487994377351340547075496901739098650251801089329625898644718922565608970450905572823293112239413838410212799674568976308490933993865799431637569820886919076819179305251424098255851417450579100039085600355875772503036239618505270197305764952110437261249577463987585341994899371167918929119452954673146450030684783183771655859084943762438218679642500518447747163811348613761210172087498356007135491711633135505299671097113953628341818689318048478578083749919209520195874367641070876111634549003008708244583771928303335027339139830857745985652762097357019033651335795682798724066523577768779357860731805639973410243944241465631689875203603869998498711021845423439141109093678928669381283363867906002380934302960476627060527600304528576010252789963376420089029192320657666120704881726702298906833597883120923623459348369453057110536323593018321900513882745621561527236390395590710061416053930739140591910925444153060663062309393040211861593214264690588350072988347051736131257997719593937569420273731466822435074985635247729883832831308880473074176116348404636935083409334410290453286548980386995875122082738067021293714436282358611069375446318534846269829114325116443118813988826106404840877387796056542594772944753084868911132294562906264303575231820496251879690875954502641798167370976022340782921271042045298016166631451866743915548277390229717527438822092420441410919176611305803991804567285715668047070945014172042940731991655045612626137589258318198908575874884888759724709263080925877078616243380717286632359171079183837163983704001295555542668388621438620720344361510345976598250361540878515371974393488560050192412175713111143356183049459528544875543082289617061202521896994667131994860217226796565093613352639138224554379817410083525690895160394345723156777498850097578340160548637629269557943392873834597879015212963306737688894173528549664927981159223432694427813901885315281677063596456279281478722805169880773165946628188740262819634396158160641240209669891173661369954735197294429149784883401268890785501416013015681328807985024886995771428978615977761244854161808587363069607849438857682814583282782778939068364696630964147561206233954877556094279047963419617089674439103075431892101042525896544524239632570228544138262413054662404691326976173989169917974508902521831620273288098406161437444882961138142346537592537940551817785481311933211559487307412196937422682248082299057571736816191591440920443238372142040980231507515566972109328827848795368073949153578845212626653602267110246621886361550236022966934762609698312345242923956807985572412876471311067246964688731745118392839989235557835573199526844294273916317869207714991986150198894170705068736928974624500271816171107604876629635018693735786949991271134192552979490845971184797027795874767715442890968965403276717559094078478901892822355541851152499298809999003584797800248435945128352972119488565396613820660397757139016979597433516813051814123024531891532004584110640527495373051216436147956872105734176325118576122735308276470362573005187287126165468391339664648103929635084642963804290284592321293880249019700108226249030715795827507342077105159663852942597659613712658832268309825962412624488562796845737388764048334587920919846791856455122970572812264263079020115240780643753108325812798954642687901723491330046411313809851323881850158909547381139156570253568448007156252678589343482119564426341781649804153072793126969463304126908017493582704342847324890950966547192323748393582778134973997713997002554428193525702908925739035270811654342446402031489137545632229054442055735190942510229558038335377661163912563418541456082139889706526700028310886512245216809442907941778339617439758704112178237105336242556313173064552081615674940274175747265355276226336669829918948086454420089688556450858307061558358724236991968608797577802746743965819031197665105794359730249272259753569196426647935590168728682095737919530831076098656501017498767217982152883135019262976443388680445602466550660849546830146729043918601085149960359307352480140572852158663660960262710092897806315457686183513053410439545469621101940279284398094503651507186338794132934033178445768617262476961358084902544082554468267440575731152875648657922923704423725126618730940192884189085835350885155028660132853953063167959084313599738347864038613818773574466960424319036044324930042290388950969116262385849267822825805468927153393324251812782832372698308417214412645602591771851371518000109446243638924319484181793495275443075239099949418315099549239981113515379596266974731067986828158740619363068467426382680350208876266137153044054015489861602661274022600579715100373064420918326927463690560422662184791922845722780292280917556839212952787836292737996570906454624005644633837379506671977771580945489235071281404704267102350999906633161335600124923445883592179843269427231900649409508136842311439939708501765926779551632803374590101636592728604574618125981090585593214396970137139155793554633328414055616880542662396950713002704458742676102762995188819721299251679582980644325703187793930392454650652942076266289167574764298009984007850748704164892958114522877343026758337322114667659806909174516657707502302059464266642524609562273835141092121007624307331750522531304259399021212949974675994345157270813644778156307093090686363944999925085380281404169825899218344325978708553917663930395748980479596369133651425057954748660938115624905099372890336293072653516591553098591485725642900021493090356782624249807618560666297796196803603573479518761256135310294547509070508596120256699485937884833120973892207968439691034017093279847863000147255100812150395806290840544236590857811614260645109706549598348602122821635165838692006654842855213837742426038785295665064399208534952603361772766400229156299228908841011233710358947875362366915386098740629837315633583124426044891445942133656172914431453444924516768811869866753806563711122643026445412255609161853462945386728135913241469817550117271493294525124546513429646079929041240337947183315533865447434554627626291926597379193029774780635550793181782711178723699989989592746823208457041836161514651413226752255341859509589364056975396164963616113293484726942696393914666859446337805991400245343187474942775541868193736556037650290147469906409344509302036426369427828235377127319180126986836480133753513583697876792084145197364145471484397500343553831124155271842902368424370007408431362615269401492729774908084854863272788011444264181929296370778579764848915045264974996601553585883402928255978850003728443435175889129772374816390990813729336215657830010500908649916154362819968983263476621482585152445824881077833376621449618236478659285223924410746093241930367531008557198212527940022741420518969266941972261440972458553401230434813214296649101577290163173734419602060822729637042014432291266214688905907967610857826972806761977846783870766543120310300077545549562208951736476859141794047107944892834308203012337698805721073571836596677904391293559193181501027379091014089945270698247621980769377177809427036111858040219576502735649614484308856384569739592953994398449153963277698311831763252590330573117250093286855742288774092229349070452054146327440171070670330734485649089581930766211262682889915884895905706258813770943283780459404211814063031773368337019927954025818491513374581007070891449944927572347316789462963136769005138033851583191477056598171726390377587021625553693151520102849754613461317458860647120422894756088504139739505129147949993260706374901300455537923513829146071685234150000689945128252279833272581167555036700073749500776059416508104877986437650712762482719389539058945594723428957544157435123241471185707702370803211439617648552283391255148664762868751126228079953443029735674098684559011024655066155729314552899262061304046736214875567570204351924026428441078243380275435491976554657320253766021936547019784820691171770904408753221594062719326337907840217822100899075538495971078476940428025007217891424119038315238065433733489757490218601830535697402284117323934298680229949580100250986304638427735532773333821507796333762719015612196116607953303774357043004981221530301614480460104530070684899911937943951045523677446235787094954047978374406727665003436129330408988428992370023098430154260068138725146118666124957406603296866243589651153309553335482183690783672895179558870841318920711189890873647446911186649789613961974940250805878862708541791801078309878136141324737108179966843257403804360876902924973655991663150899162493861936058407413226178667817154675012036510705168042383587790955023125717267784950836546063259452204221269031634191865749101378322946987198725661536903033446946494591629191625705267694065591923360386145181874067010780660145219557444672798923847421787281890542345827694840438952291049055164606448365464734999111810726466547250220674723282730894207010141258508053381135003516020909419543182436388309769644520409889094575370263185909544270552956714522756438693631157347031568910851064074630962437657217132705613110275643034628351410005169296495225459422327239376625103196603320114158101424026413305986028130632754101432791339783505397227721240517791833240005802975208996499101221434284809153820221937310132882837817966578935017391259374683846333006539985117834545645698822507657773870406109789786802902677059743027335057181649495855733680231179995171786082183260345812730320796018288532164959163638522789833100268574403484116636754084256456808373558400688699682061496371708995918481979303077800956831511061862364780516244778978336449612982917646673187820313563951453794867879723532276615282518080370944986176743070318035931083690578702229166597140120079330011026342108685743309579092979213304678565905339958872733647096767382360185843610187437474912623495179406311754812474699069470722342405118106513254258721105757232785113432293479788654945678205447480589310893979363001288625773060212176997692589017734586507114580032245295710829078157841076985798476031546939787117346048555194403399501950157292699775169268299874812459272550137920545992323262544041031994653465652894519958265030830965379319955032059953680394780502056111268950255730929379616147119496103015604633072707683190454069311109350599380055688996481555069691142439784342195053914860276990438640118523979976318020313528808544551131133717815899974007207863241613177366760659372894251366912011193185312800381313257519359123676470031381480281860403833941789712260925879519797951460084914431040194493010843654756327751653599918774351404214861407528289148192418286522654722012355990017731319206325723827156135312484816216949537822393785688790329470470230165981612109939696145925539657931932149854915303505704457903167594867291580896769116695853699135860375346394892410643380456341697086357923269699965367607810551344540534704110529094701323895082900170430544299644112154614241629305959852945980818453018848971744718140086388893192545932357758903181068362039250145227351833415440736281681634292018751227774495374606641854746590258393250810901462852041255190347154521288677823966313907073661548248345861298882149683438293467374681249968157874316648197236758978223462134959714974183325968229143652997496428786378263931980362374353705814506706412987806771251247830330566377646829336899790409745644346894267177550452601068589972424210154931657907931281671571419012149283117727899530953468350534496326625692504126242437702288792884190020111747050295362215833033172982390061866362871978590313194755500049656468524219998006890048773514426389205563049702222527053311385117207445815904692457116681145673918105844369200179852072111827296557324748640329390815181009479677671477994506977123358769922500777952484219612951368774024813193296529073601573641850594139051887060049354187666243883479112425111514190890654570346204657181010214502179318369560807655872847689848440987595950662110282496343195625120634291464733747403056947812109520964523701373939111513475631214655133849337266796774444653194377890339550930849554908225559482387144239600721407856516975555435476244405243896616274520598125007328358856567772835888769322198922425711987956960696126999324429528040447891606122904452237296256008616797944413900826016489756484849048276121962850354189903785955995539941675340947438800822702957962555935009224854430053940343641576592287392049119155492902052744772264451731888275539129367131064336432701239590876513233125816158435609142028316738803622674381084472122435392039957361129873083869496436643955168962778304780885426485966419678710511421174833015737816492013859597702217608525188588825832299331462248433382195932573711887891072036822715320011581721874284524541130131544079714062642484212527418686159940141429257775027101412955729200511637430145267881580117794769218203616136845715534181524471567103365380636299439387772983502271348556442705762745492279311183915344667254016604685825176861533604507662198672577526639860777518639168881486168611314109561941088105419393682940396855047830909310496670648221582679760088946609175700863536472737239188508314046476094208732954839391470428824581650943275294108490775704536088173859605911292457162524714971068484693133114798608088792891367082884540172464798130598220432564751000878239588604656251659868254305721786921120330253456309396662047180772462133722212475599917845068873918851117098977816299199375181947287889510960645833528146339405049834571637541702282462683161742270999151249769401334727485632804842842752380731537004145756729075054472916681789918092019737298921581390541864636962808402004978607671182095026778338172903984442172191219955721124024126095574692885347084493759470986595579067621740754104376202439465727264361204882098714839516142482756627063146646054686318532462434203677069550435167939444281315946030434607054598912170131785450004179249169355984861359754465683561181737805568801191184989781802341955437810662365409226954384243818408127994871708811145997877364758113520129084157488693213476557208738621406191663824872108637667726503229302937107471171665567279529550583414230371796146930579472950024632580731631722529611212978962654217568055739847276460242808674302529484269255695695112410967295155998318422289934559146293553220043580032331528397926280051960401565563564982522769871412171753063533955847270257505096303817358964131330542953012435365616132303483971362289825326729471381919933690996113906703776677090116029982964695768467891338751282778645959468511189879491029448336207282256387309079134498140062021446580679594383180120279623503140737835835447262329749347219039741824397162232289343216073824887562510708732424461035814728585097369423413412223785458012493579168616237670124699390300216674575102521556644592977402896785489401524894731047776376678280350314344952488815116340370710714417286632461573363043393491689539151476663059496135430640511881468555754168486546970035966105868704317217678080998046796123498513349589022335440934333208906464368536435835492417370493352285612351453127448177110973718826284515922135493309613608098204374991997838364213594146752628539198859082518852488406716922467023830529072360603421602413980583987058293635828619061364527566795510442727260586146011682232344363394215338408655817028405878325155527449448270047325541393126805320465732508234646412151949184996711769551305111986626268343666247693304279329458222336521152245314496316715540750185564806018819771451007116087812216382318002812888529747990712808055652421790938609762314130150832051280504444292809559194961151695969150013656602338966852186273123625451099589350577450216619036908626283893333665133097703879025826285922500262491787493210523434004872070894301316428305401645962819495661301985243262351166526521839142901267832787931754588270326952580652692967641166199615078025089144510366610195406155137630343724081206427874104984106007905022347266871439657838656955975968968370182255066410796034675849843844500421986534137221323978629741929423060494057788546962862747604039657893084195698111813409736502540154689629244534167901273728424356055296920208133060969278873746384501960558443098011727892822976027024947183644383772554028986485984661296204992579515370728288959795171837995096803286629780466777793270060096026959151677351989652357884257432348634755957227733191862157800957685461760669636154796903826058252812455483031986430357818148341483556776905544502425146516879171829470400517872179438507505467018450699550076266152103986783378453407853592365728630458638651595019835889903199835448336533932839302281046181281081533008280005172466506307833187317378637343432991996276163377951481918936362508352628217461692181275382929508385145661609213430806279141548695282925243136047284622432907738384174944207147576167163003637901289523912452563847292871115558115541598378129758035076572464186096165252571157634300390931438134679540945550777338918908876143449870686612891667780972204819320850336498974213917989238522879471080090196854521645733201006460515666598911103870400786759740827923905273408385133798280369460130838272529754014482136032734416051276982963585092142372626856887211540614727222283349282531564494603081788978291621683237422356048774307222105919330953147778315209152595104989492578142171855969956756850525245677371573557030173071024903454164367734319516812044856284787123093868757022904625424135751990117554802782583921496573889179530498931874187685602644973451323428668292361375065543982055290974228861036913184686206187568611343197726156327260430589635467749326579734627159929133694209030663625318067042505233460668345876878353639266438212499427590280657581583989978853035014762180663808634107513415717333086896285537203058333750959704379585362204882083052105530049082964360672370341555509762794986022806020176499817517697480306151336147422407187170333844144698050515666819799270428438450325906382552437946736646362314706705561477944137255189557738171496525665358777810871167822016237799179873570382077106121691963191207607358626475988453400058016200290379144165513739149684739529661361953379720068869669061185217002167366217573398338255459867920166057644917227484823978945976698397898669984157921418042441734853134508956097939641359037139614652996486748281313802691107196716307786500228696367242985604681869025677312783773893587113376784886547019425728729347067403066957774942184871784452612169258460392467874188100163604089467885780111091635873487843384768137874638623468597352963795423101884032396322932926501883700593641555865047321851561273557484655385088314745094850747366578180815526407535727127574365846253063363012108636783323132957448755278555040456957660770728948857951172829463367874675382104775705193688463599804990606478161172251217961893099691305261758759682026270403060994203440359460770400022412806391033859207181738469466403533565209105728151606836029043767593829204926746119787769290943791158396076298024684972357342598862689931453064813096498340230845987858519853083113697601176848377248962076407791750215422911151012577411006892624965552564732871878826914165783291928802025388250423118476631046335662188524043441456263580193308022758451279737681604676576051114416385071357874258776377690176207363730077919956986763019574531498895919149608848826023624566184927376084994497926077237169224975909877987229795373256379271659605253697385409063804862432964985456421803377491229003272392408069959594629241359564534822871877384492473170078387939539368048143507505909624537325071825189508799486051855457099462031579923095307624489260296660677363597331095512651248124577360100424910917096726715784254867719005170188141976520945110101697715616777239800039815380774089221766256505581542339306053672464537933178750267306418623161284101614171275201948019255147144003357054103961714212646337026417009556975076047086419122032643939412201241791887758394246075120693247534297664997664150852926198488031154218769942813953162776518311006731553631514349645786247147345224812369460370381968742672198309390195425144742197668313501428935618492654989665002922854452929507737719674989706935124091318108409913077675374405387579939583455235168489044113924481147342069467252555461614232381128060947800625269632251627688825206072182152039609662433555125391667284893542148691738085318609301233282262626952456991457113747907344811178669049396100312157962891226100851665231282221242711902659414785912974895242618647040675275965834413278911958951857450287623152723990515474984517413050824808765593939922214265598446397285349026928580361512633496290078595936541572376830081694990801971504419400628344538829796637359924214764595397134299954355835613311082069370334800168794677302669698197586924491120278206246802373896623101854524442311080714157565756600758136374909019461179495543550090679578046439361634492469783783815988787673005289046921837457846638057789160898039311821593832861248927252411145808589505601407344027605144205676216925245891204555118318855497098520955623130432102533288141184749557434540997815476821432234077698359300471610175839448821251080387916588122121227690053722918963504057600833648526111953336491951702708518470081843904034928644339279519886337368324323760760556340507113617152925207918304103851653302819247522364555322113142827295603540003304562335303743463192026225832688648711525930380892176666869539098216931571967718629995265600550094265218557150341228527803299761585845733102889282716905994639435134383489565873387720914631148290844297551428185638215218123632078589587392015338559485516296181120713287092550432273540039846757456751256721348606407891584345556830861703392591124240374664957795148413886547696267397457428157453445055683063062609710340493089914470735536673478362874708686694991685701151340185255255074459269480425981669611787909847249536604617420395331841959104036166501093184000096228689461423258214030362730485327255861937009939055648962735614518021384422202912562071207533583584102159079844279295121778557835796583060501926080443416632064837372401848003654979341379125449429832819258081181139545524937739709608492174057811613351347448349911764809099577785942378625836249431421121591768837600890073771063779609509597861370942267578360181126649937826595376480354825460535466515471791657680544920798461854732873448239589137002602586715428171403068082072728191432035431554025066313922312044366979459449542097960007072895801666166074461211101732928157562602870710901296698204016129861148662673312235337026144758566834534947935658886204563614487938711516663499436370335344873573432329915646913646250921649774072229831776898639709174107367274635177428138470501120906805126733735225265550858030641244453651637454865592093833314720251685270917832692241154246454499901256993251260032371636156163296866592127844297970396557349925738813382725954259913917689885130791133083733400056692871843476469223976258383674067191926845717401846820138475397337294613729058635696685380256233762686086269438358374852729263444104980967693262006174166494190115244589722765275661286025478224849442896702987901495684054873758099691513713743228736149454686684011574019967016060733997665316051293695445530220075033422411306872974883251058420681001773464030448350756393796911584841091440438139397975346588385046542615132927161074667230865000102920493263571445516534101747379437139100244170435919504004443866967753840352577915679431870501322158537384076340327999862826556085455862986751697085216258740007838195744772800224544543228102960491227512411627574639636631010990387874789899301830471822707550876863606580813878045486208797232751875007325270271590570424932598955616249773962142293807769784634043895089872091890610990848501468317677917227672811011482054157629484820740623874033602415976435742254205679776049845999909720368107953904347781850173475686341416872087673874641497674674862160910575417564195171668364918263605104053153442869168401231827136077374370941295097030280772835766892833364833592784330384399055999849379038800513325156065553767814329526897157269570521489756686625221570138230143564482753352938783771447130402852842359834729022194739350633351713341212963119654678720479552631041222867183453221785684306716100612645376163703111853860018334203958729128325768027024929763575095794327686005660506489555912688152525578162726593206626050487818519937846598658391475230409142578055281909849445626388799249907990428886698961047948437780295865695019930017503472489260891115837638513523710696780320200370806358363922993992514304979297403501743622330735446794039986164284699130466659539441858442929035981247047997402408245192776341637285123348662681861281277790876064924728064287957195873537833970846854934316103119103724495144533693334150160491123923779098485232584231291041071788635562221972682935420881052273857851703356438209409800810583610662471285673343206512857948781635611005041018787319712115196914988175194301065996460890257997771145255466307619828408549035832865954154828984106655638510875623996371054723506148495118150038114989420396258609640364976805011200605010937409835289270437495847283821744720764471747534045636098470169861187411109133240387630201293211968342862969225963260210729569656924727687339384173781419092948451136729139777792383526703087205700406116385332223431116839864675878835765677456478256215753110939417628047975544002438162415996293236044220774564153283609579586975735038453402920170746596404368446936708285432504929764752162962751623361259204117256420001141485689543937000045215779498670248870211417128531876728220186607009800266386823253535038242249518860951128644459373704125873283066063273136167172153722154749120621606471813386119958753007961180809762691726973888675946753825220890252344261569091581428326542955373043737104480033129473638653384984403768968202303171239975973039174118233421675748077115485497304943646099048287278278973111082889506656923310764192797029979931600516528940857169132371527718336135192824329232006208066813865238987946014988044067237415920455999214368662344464347565114313233215756904882797611861604888681945289478593069705569627344301870377978362267712189933468508217930922804291582255263420814975183992669002501970031565675213625673107416021281993782409909097617256265326448619942158153749217720274444475374260094331209125260367074045382810055864926959942223190889764215506498503775452197941149914189482096882809515291817184407984233749791538085903751500664981486131514851661786753194994207596313830192175899736093178576504699488980185397064805809022940027834599105675719873651497792820428010785241708918607661034782650953619161939689377448746437639840925740966274443677206750662327075415174876438630973795842199576517599397034855191954338122532665777238785580599383845768183673785590580267211089647142622579396571855826634830247315063348052569568801233098904172044331991807273330408081089360570439123036928697071343490725244989200870631865750226196108500811244742435218884840223661127571471672595059055842125072307803845972984373987158772263202496399569480492006986062476266001311972867485842330075602117327263612977501842318547829194607543918975930462293691059096958997246785683545453305881591822788808697316912373435605695106015910502570246873442914704948584391842590564917694184584672223294280221693377724857008082097637824844122996384925705625601521870943091831975184674593730450886705725583910478116113740379430795178331601999379344865562520694105061390019205206883947411805922828759538244879755419690586180759827455281419704643885681597944286412025966776257055960679262767235397558297714665890454010758145401421960248686705111999223774855704646599651981726007689575245234596537968335364460182424229068866202371756947359000249152990875580664622773966106350653046864874576765396141890544955065157443332127241068491734270732709525060121016327368755363056274293286953287057930829537485305362104482932747924720692554766441337130195674881856828079824851936908027825608102242256413816983554005445321279352359736505304093039849774223963094701700868731574679397174015976720828504957891499976351717725304997426632203353280795032503885600916482699801274136187527028698498565740048880972361574360046860362107975557599384933865102692104180207719612849173753680539323572188391960490698228998350413760278740803750415389862963286835894615473686111888928421238836711848280730998866302811270733145821155245407333769304040358879239364410440268336775431045760689040695008709650596861412870961926256159367049441995573838978548858796462420165178355826307677738677757010519310394822834802492046102603969249416039860603079746471266231744107091021369529528015888798557252693561625906819260363119898824912586129279448832585011179162636487746668507314002122671217656074188510513073001455865422503298330910081437441104806838454389627640392468469541752521609888958929846546108548552616588746184096541141912748346590785152119631174611974210062948224306912887993266673488564966056578676597835819610201671831251833467361269001120607297352182163553115164745049353927629152983215587230730621897484382513472690550636335303866384163080904927546772538889219217803384144204106796739361100423093415909773775456902459058284919184871345069431046240852456718972495991646027808538015293815703178956558800920955148797926707262883111396058549217286195126372629168015270823677735932274305330273736525292416336784795795046291582328873328326694865183189209228144259763869669974158923248618509857818580688321839143769238096639310096182411444484836267646066618773976659266778339261270916513336380542037123284068260765995845891413926795139845688665253362944304101189776821375795149317517755551823168825489781621991097711788688089277263715758100831200991286301573797386117000086661531232396401364247203258499581258082392194508660966515163156715689116071957734241923030533317070059573118847903956354012946691593093639256101226845625994491850062829428097929548916829441867398916939386760297833413739029518265379078771989315411415844960098379483342912714400652692390832691835786666752586078107954190246539216326567362168430867925577898797788466232025860089123395098645963015430480265065911642901590904966366756190882005089622271188068273486169962217128757688630571388963894681249346778966456539551578608829850256687056005339746561125347128618449411571355986830319882475675276038672292046677449694263570231602832638298453159183546956641973467974099572745092632596382418286000718343640190633139743726159240313321341672004066570903792276650313269994195046112057227673827681471619799466830016476343064242166622661138905658750998335908743566508853269665804206780908240655524803804741864827265195425550659169940239236864518062030886901573793400306728179779140471754048427567553745224298984754547046380071374860160358950571293819241667912532136464986056173920739030521879464659603468014171218263863205207741243224573621643699958951029357646822763230357569338984680477262930253498567392241033147512948955586031831866475526528234001702556055843345455402641544932723036843354163188175867490529356137143559375993435795791333126613608217602046166851988307449829864219055217592247577969968561652481542046182942667472100479540781290375840585364084161554795974311288750847769500870227993460911633662816725563010795559939518061706431663078023873309477642785594977507926249229432779848627336363159368861848760601076565324600957490835926809284833270512152686845783537339560653894023610654166704143615008833276543018149482124540632597474436068914649826071730537650352634432948815370334758128535444552214294984387035990565527292963841284464859033143655248639122596772054800161771534994620928913968768538802734464224545017862357406740662987872034547488647660542111659028947906415253317836202182895953482916565146426152775606913887439292926648220417139414520589937527342309795701685898545324554153691926768894183187229121875344771515145728591788332781203822311955767297188772283330770801343288525667491017937703407337761845636212158960348281122420383796239560974396563514471328826717853017122969752896874402808658318095894239248929746270051846343232211772791740105886349566097783524886428838256863167129363202285384715417652650375967314593078369693601702296639956963037654977162473184691879947552095389868783564525761014695126815067781372864884830502920002819000103613254051230651189791886451516965020133742213207720776022644340987957554823028346120584812150597675964815245285258658468078431607373591473951402552896933795742706953762424970817738270369538096482740700506140769989152269851545348122016616723317046781938181564147379778464248131669495769083321336449947871528994695340460243720564634906293683561220562874842624612452870259456742805531299475111002361785865921081352153599312635083685101990800087250783800838255170950735827776692742587262406228121863597506102156947795847937294991788728046537826052074176565219989460421598933578782542184944822099404125760266218914073449865604556727675799986569907901085308277225424972781664514350829160287836913281603568568159975179497956307874452346010523175468193792418606921458577296028337308813648262430102270630667534462692959884831498033207315329847333943112599527559581282347170371281692087358383676777835238302554946174699508860924206184023823771304877359157743606608385651082189637192957808691361103197151349081081812172711442560418361173596430416044150537150591540124072216352387356391369973346149157749489351477870296837734761484087593360407088029477814584961626497651079133775588003236183941541825780013192998151120685770134344354739589214860864446776213037771000118141726043074727331206276604715230772979605872566856381754656506109228890712392825329981438093256664386872331560061382113794304893379102213548320470540672919347650229043824392565810619739894363284138321827169863964690637005119955575392994226292005637869288595433877610710184883912743271755232328209931037639056897862425608538967443634366396660347302934759989545803124510375270180982132967589017279197100768589527869410419730377215503896541675779359049410374837053570116342712001684290856318099274999916649881277223359449602526669538077773311207867287143985468620854668162949891010672865619985627547960291371227796892382973824829982583946975710291493135038702159509539110183208513684873499683681104279929008691034052692877599824330702638392586495328021995552954987530936946140692732176537876775825305126557418990305115732782038341853568297855592039538144845980504439311098772043960707037292426451768674980855991816574320199887329676798058644774739573675653327433039930589926410420947187338647680893198185238240761554726650133053681538025480546567587747744550285894619177809196166857923337462049292412400056301260856634386011356248613205755058390097204364763936252750228518881103020466098568065646196082951796886619744670455160756392638505807212760820156255784577870611082740494582097242654921623304977383140118217396540782102557731879658193360820552784099308450213541904897491372171840823331331666757743401317099612960366959661063122738758239911684261663716743652886852188263241334684699739488757826828915969931951408751883918426017530994026628897046823198272272550620725258203248352609199418392619928441608158979745917754949650327011695095293562942842157304581027697576099358575386023726930704994988266806547130211320345236274431581155400649815562652087298528450418912751342057183161078992491394213113596762522918389976807838971861510964558495577856162500624229595007248268310800088938054426588938711751757715460648780226244195667266870076569338114336924176580635709375466439377447672256730078816279201682187308570187950405531022627266422635582678270580273047733329424075869713735592154675140412764763670519615023681778905717121518990509897770482007644034885718732672612636992277984012656736563677465072820978766070377846271923432081890771477207085943107274254710614039840034799572681007319518462576430965534231820000315914847168327094872393525331847109211211468281079174690713520217524758640302537052292406253461559073347062941811279434573544815797774419409754017113183233891671046900183486564233110249528084169235779274623691185478263083522115057568854267365312252590943847877393011730990789745266777675755138127179930281362829499552152739615514941776608239436415406701985851033390278827848502153830798274587576921439471968400331193170280923224433674920803454161873749107210432572368004875936647639471883332480225543540101806422975217522142648163159612840230314930830705495890554998738199128928077299295325598615308894680026955631253624084827221433312339951554937698192109677973509324183646569123505252555628587463334827255367849757702537898050504260576909298413857783025369900643207454231771167864981664814689489757288692522786942142934660665911442727891753507122386989658260463780095332343921860350863466352129954076854167326320118376060060491417582071752803176140558661446227432963816109191699165785366313989659520645587209688760805211906714017636418883748612542496532630975091871037037835268033675825602373824101415427755635557096984236092355757642250805458315388275594788844616670613175444010079952847911011965464650977140548278728298586433887892867138432043426811847892549683015526762646614392099867939793704900642047736189488550588113904176559585221610295674587207971565183933666318449972972809829498942957842212444292593002690936674786403828462464907344431122532747969132153913217299215693702461402228838470695014279882580016567294035497585847824077974440809190232478488681678303006029061396299675926802949275576716985920642363730203887693553095317559303557563007664213932519462641833615438357271787583585273515746365955171188175311676737905873634608726747879757159908899516550956993885201670011694697691168466103444766677721450800306199493845401713923866377867898646543084909036145936838777496137329259948623058463745786224282445622536223107469274038464455883747412493444334199061428405053365944762625980711722425535004229250484623002789438967216294778480921282112156870049343324945863899802098837156574857187630536961039103571494908093232414381421380224428787740246768158376022708853182058310154386512009732995969664735080268527549682531546396370800192171391234102209277454970054306751758901507671275453216741227834657197358679435951157157771077164944922560863312890586699187044662877035837910592273012373960436429029019377690632765989321288288725231516301941356414735861746879708817953857313237233922873222759487301505230922292318580632674903312107831047818178569202147261769194828739690185584284046784811676435923133414219484973641099147191374072680446628313362515807514864107551958266560102628541286614676354750469320891008131037481121140016544337962306010515976177764861620373647910148763275697329632586142896597454792558986235052969780384772997510120179167266484037012595373476704318919298749760598606148621031092079955498650875143510064823150170582572387426493365754683265564267540943717835147414443373109331736140558051332267534726118453572513525230059947640529823614400259206722438550989231378923520309781826863192841700446628451931869127369784241139544586832399173951632723765457074885747456568084304618277633562136125533705028858827641002643427048056416069167250696613923745597170864337769691436262014317462357217479729414086571179868361678268188442682940756188244510696321157833849179453458460116509618301384909056142787437036441733055523717462586929118625284518355723330085381842129356990353813173248656440691501196430062022900977496957512869942430063818057363969731501847453304548231125817585454414780922479473050372206656221632187309965509378814300781742351383855823494693229230018032294556671995205709065385420844367154758085254182996250673537606305703227966774783596390054902312039962009988790921169608964559596416356358010257708248656205539944209921155501685719930447715520302710055194856324470088089891489596195723240651027782483377696381857726762769066111541730119185986964367962456015627891630460816502199790719885136938932515675126931189189094080680062206732509158843430750583264446459406463808830855557077571522650931901792095160187724171242452458577620063278548619550060793561179623065437699239688488578902749873582894232675226857597864007066101847152603235210088543451869587996350283653068653008242218887219985394225403836148855737950355035815689003915636064151407865999474633269959186058719291500760828425921808815805098054602368166571612909922743465025793582952601356661486362892105451804509476596597573433353242809292585581935055875153907919054370342254852941099971441152811956772218015302582323615210163777851842555430906203075077788259881508732748278098602052397173676838113427555627309084136135146368520291318321683626468317057924118720675058290426569933768085606135650662009233956838384911511050318229949891615908734228153107640806306840033561062464601294131742103875382093077568765455172975787675028166736916443901825783977584907057388173600902900509985594528561505033939275319473289819295672223602139381606725208970247171484290565516048105209753025633130976453631743640742974429580805208497174283984971662885221129472833861565218417419466213881646467282972758041461064722113321635727509271413553092210259259357323292629045249519739630484054005203099113162731066455491954808475784106908428271278188886826468950350162210871361926686789060488178204711394824229810943426433070125967489971775175094357030267298293261388704276019865992729435674617393252216051292328054359422925485662300751277516505257111541155507971789432791843242858321694429563683069747418388672985147677259852905296403185870575371918207873838010006749298122777523714438116696052076901215740858063885553402068172619278017247227432474482441745543862225255057403175119994010786425977893301387834176349222953621007138242467013158814777142400424033338401119774189748396449750261039444350784911379047565042005735188072299213778021906731593142029326429716082189377441840449790404498314617497650019520353811262596108684665492906861302738649231137487527049845651760065315910736531005371722830920435014973587100566577660582701759556507304197702357544972873560499952296482412100106678645719110518769896926846418133438240276216894717639967858821921195287144415252436111864649902399448446093919915674028076418342165726543279983778485783593486104045885324163627638257479853771729923540696916759865592775451906461538300288349540323424140429684162303843408771802464637381278432660604622320081576043980239530657500589119168903320190567025848248915767777515390658276350718267915059858927818217611846602322913908967887306131713367565004616184353725732476133291771726792264793629312106632167526072285300835061923216715622135617558642456042197960552601292498903618406823636637929675771500263802409871935422846383274622498586534177061320326371899523612825640633892592216777741392250082655001875695541179505041014720011510867684949626555609396858809440869119423534387351773954896116292336391038013761827065415267276630569314812103509725782048415517309214498598741121583540627369273627343635184825022317750282948858441166198818826046140164640999688733575782538703326160881129171884781331403362478906323921518388430218999989598059643757521433812790308366247494805298025186338709539176539819839104424611514804040200278954895838792668323252566396123953636624031749075455845262803326162656500976402486573822649345124488936453333258978616249887826326486259384991726621803545788890179893076735860983520169874181336425784545617908573824817028025227238357684810024822406530280217678578987454772358771204629843591543570795342341927507768092586313874252519843253065260122494554265399512346321913156091284371675075456055024122078815415526108464749379287924466440006034690043695190711563425909763252619320629795901738772737253568030447551450881989478092265165490794636856107840922848385898857788778330650953696012263818503082284339161185438382108043689678984319615518706966621844447849057876603180766839779994149061796852087410010326358786096627636328267402528839303584912957059003191728760460038024972694361286552590997083447206514650317241783309031854504377043329807232653397838620282706552438605594949867254729519389709389997611363333381432385592996230257447931179453900871966983222344646396962779432977642301106037113025913995496466758449649756405520969711199377734340593717424262205812800386793267842013515594483915357504105217141230061891398804878236007603570991450976963393534712206747998041495897986561819366969537361275964301815451242905003669166052489625590051320146982377538541181222348846851811356363827445906571815455771420062604657907091786603255419914441276188662006616833360927945819806228185290229745808406613726940770344412723119638470865178051755660028520187871770647670860281990573144373172863114841304308546488366389629816281320884032300480286037579780336167686747109192809599336660445592862050570107475331305990207564279482660344489168840305685314110406970913434925813232983364902378435480739469597698039581556533727103065518828338067004377528339964920724265345761925362434335161512355899424971307841863972127881731733513901453441022769548111622190948451719211365192374089988316865617590190615915144358365733276870092502851473122622182222918483153209002439937504727838118001172881304580685758552454115175014234413539547430756827510983708241219031486082142162685088013727633530910407576712202844681176728701501099013504488575835893096735608628985238171580410401720975078141720490825857741306189138760956065496201378897363966894777366217540184744285855667655018054118264261166197252169194671090432673943350556243730778160428609398486136168097821881772271278332320155276428532958491578373777464016998336738512716278719315494624727243095126073242097030898144102261984290209855077926164929842854752239046048571130982635549066853727150188120732629359984360386858306681079111984435814404337599154326161638291681136430082325925040085538801944446310615026721111961743325724305309314901825701769415877657000822352625893247279910071079227738590135014594349442135308071484343246633783182463882755175097361911038388379407965476544865235117863772372183428918253278875131068324370447464834984269802657654555577236931532618731591828386529147068913778854157219590924810761991889272085690940323150013450811420740071523308047507280530564960719992694978167284864348536543847200329125504284668226709197066204181612692898771686804169095158517909442567234170614384968515786661543534663844267181859352060310942376688843573552716911359156022537319397346018204424071519123640622606104492951089510453924141415210339714442560218763909886447271947731976479207256266112394978016205965305721111135551973799018237952854039025677587210084929021664994966745878736093609288931762880211991517552169273765515110114792539288271549053445186452910301626565481268087387407527758267942508569256920303319172011263439687400188707972604300842752822679775602561978672508936646405279592468212377923673939791484138810150918597177554249443309139288141631880271618200294133263495810274089124114384714345313680877734825041619786425210612262496079442299166565315346940756063877908470737809829708615280811818863925094077222534250652363471049107303986381573866459822084666590686441376821070584087687868944896832754258169989414550445845752168022157968645286288030734555185951884274589780254259076356751091200457803906640962771486087309438787519265042003422086381037095957101085808978569797607209308057975158228813620880154772512953059315183079582552205145650002176772334924715087565466696719527314338124494747618938199868313915719019811740385163182886306346659775973568774914757184910275140810124675212829531412336122718140506823481328159937922953788057573378935001667176164366131256575456122255881553611214100503408886311626888318290593924992856003949699488294789007420559570640388969976134202931756747970299336395922057000343670277114905999459175258291802959975746350067681879673106667216999863872623275037878770907651785952200938259234258910011682567011630786647355860814480537752461534771841655165586468928975806646064901342258396065903908742720927047867816443920774521733766195186612900881605955608956189764389109935203311608011039918543925302474741069115504473366070975522486277241582237265110891352883077298061058564016253195819640882340644555376115167301714818063795287300095666091369320094642623576454011935820239785952073358929862854161444641887731276484986629546512398517376911593908381494999068553640574896767384199556951200401437574960452152864052140235993032958949468659128135591983326577894422802249795067444502841552778524430070668697131121688399365161667999076604382220915108855836614671435135229311374259732805416860801452776417072928694152882635333394108622713722219765978422560622824645778032110077880538043342711370376158876482138321877475812354268967322266187414305932926220297726414907140281750578391043152507618101613956586378645081529058194191548884296895703942723747276114064869399766840938742526376689657067203078184625182618002806483939536624237575087750050070636328945870781893875609585661175106733831359541035710492530577163343553640715137013736018895790787885218196141310404597187513333635829042142250218207550677245209935491537771712661429849023962067820731373583142421749436844509158782054040977866207147708603096342723894166083565810603920823180534617226732643863374374560909202483120684753796732219813858858067473991166005399507927197836990600679551810223024222689173176072873575782200666907673248787550693371602797589717923439361891551614854830605734864052901561677454536617340145263910313367873084474321726891161703186951422999229893326002763258446448702652007231342057093908202489898870438185495491459425712699674608641932364057864658968514889926583963401590611101171297745491623147613728661450083658411705389270644459610969172148799381874490157203990850166973894709077351039218122972894389980926172835641769948801180211765993523370055920367055463112424265117782087492466043191830464859113508728644654785925095792917465150765718444432775906698061219322805088194141020413375251381917960338532235352296700569935552883513516088489034699819811239874167503999750464937432082032889413822164035579135248161328577695777492110432898427231270174709784445171558492938611766011429015072261088625673434045494067986458511850754234785748440702486328758453316876252568440946100999398168900193421930788680579579704749432823231114189246889944322565218117824426696736056828784615000013379018357540090721166506497088236599748973534580544598175181841779837947154135469097034714654522300665832957717150089059300378067513041194528068692534036354001469426527824287361743081877607348257741582765780551641911027977672660865021543771034096935305561017005089116770260898800088347886846253901759966203370802724265632482847757446214784094659949928826825207422823122243917589855044631294449775289412923385964450010304183125650488615200849348846340791265195992176698530325683417161714772071082881898832191345802496552418411804680755881167560624620511983617765021078276553620982302614450044981560038992590812691280754132473789548539982856263924364672191116804393238752922316491854174784648420325013141597153250545398905589245462599682543451054170989584832655476192158655509199603347043492257222446973723763010769839879616366009476727866341051538380556922206088184965632169873252760925188852199350316708423128384465367747528031075682535055301625021206281819161808228321388374483232380436465220827145704453246801591482792934101275220086825917608842275808237494128821165161574505539724464602648580863066755876888372333406776767147278312241144231940769011876689860430596394640872441598908279680435030083472133409979570829545189278615903886621689601307626749781377234508118286425686546625753545071830264587265882634103545672181737098531322902702743349622550045827931724930608400843765923823918077480458247056733988500067892199681214472442061802719098074371650437766421206382833632652019381569974173354648246417831065497652615085621281169382763114851890145372268193333984807019791130519591242855852859241298393880293739306819184498634067162652279929332296023397021752618913808045586613356231276839245729085448025687322563595510223460936014532968955658785998550840547193165015764296864060619078388669004553230197848612152277502420485339492479965679501528615657162158750095520818530663386228524823097321633675700277874278300879046537845974133931705004580581771099664252526126635328201569317246504306138992797372018054400474964174859758382511224309190061632825625424807110787091346546877762648745536083576321978656416244495299583296908233718841334600584895715697709754989360145190284040975407766025087761716358155489786078370298163558743392784361571217005218255482493832816856086862001529794261479106421695383208304867821912675773547972643102884958070376709324100331603451950470494063279236720761985261126047589821622158640935900896675288854683176058541577059868370227620081346260576074852048049920753697484645815684347496306250179043850841311586048430459964971321845952440073342061721860453902045720371832753674095383768955913620808169042722965357419442940187782563980293266409026104638754699528915861434309449434700233714056096814748625567011747932902404599691599489230099649778471164033225641435455606054457335295789154325748988328781287403713704573440612372590672562649124236023266289201633837851316562991263428808075974425967743851294184495024973217742948127404937975410691076578908665897197025736115330533718981554867636999505801229517277114450718068915234837327902068052100012773023240868959655658979170701717192203757297498224400344609232737335363591930179551402511277085938087870898543699623220303979609949124518854640323565501908373038701864972256669034520244316480731463915613986117612772989381750005297533774553446959231098578337918533920151645448470068513414589877694567414099056794319249928629002362492541940061251216363508462918333202513641431927328841386840008618292935745748372379568867949431944582571349121582700722982398335492491054142192102975908723926875508036264876604472894718979746028822116215842431427784402441825010507809884325120142794004683936615234536079106529896002605293221987751629584318370815531984595981195890214943548339432502816400203584926172791339336366166576169989051602810021129921688470406961235054666056144497492379080856577615086235592819118886744285924197790686328364947722540447243610651480341283032410678590756977522784123515544152691601530401358250383660439089230521429025626976583280764149579390926583136156517444031820003390989709458804576000898521745586950972552968779750317532935560900188230450201218796213394196247854732119520661448243192704032570507614875861058508748838632343032163475609197215138740442356353419709908543033388529199294094854239872897242064914862571323017301413362598705586651902655724771676963758534669689573953511558291163862302883692491107243160541475524128643720605160598232995886870572846525174503340971059746733450241848243430033282944382032250338330571056113427022133834286755601268589038212827756125532154855518658810109881041335141035258236767696506733533020758592404942567903885127631664376851165577033936806840480689543748259126584943677866136140609358100095058835329376663102099015010806815512907360348104198358029866810124386895765764942842598388545514764453772882276837134122483058221166880456829817733316394973285224833547992335833915487474619721120097786840774980505148246918128640503444819111857351188895739336339136840469919907069209198425856449873046943550259434752186146257335415882156394026393061576797796211473560519195611933814645344316371992294310818985260045369268466868404202108111848762931273352772977417233212622883223981785166043739145095885306460225093106726796190347133354505072669318811535324321899190776262247155657084110397543128324656858401835929525688333728093427910063251334219347458891897666539104171915233436143917678965344507576325428705753328973101423477409474601902537739419020356275459516019786145015593648978766444067428838540107949407449387753519642259116981815077533148952110977295595714501550422605711638095194906435039415584036629133356771981414164387670458829868354479279995448190097117629506972939115084935883206423842656794065595785052313672263092987601867764776959066155639807748095819572092844425479047924195428083164222628791958566531403379868017848459539346264150662946778795668061075703855266184287538678499615543292332786192752404874224681946226439603897052098506940731560806931066606341762581605805188056951937289441672291682894060785567898260899078153931672151927366205051393190670556201322625152664059097020327913301738454268779131786616612737709627112925559915760219737887876436215489917967652041509338981899280570400920319736809987330222159682950964683068004680861140371235802036579927855796561118842921818074157045490929573440193842269021684247086523759928810455891919220418067221786893767977691330744107376748676983398252705779241558041495255196863131110717200359095369306608404672509180536539754242863009467710209162662272170504497353437306223212303251821401706398429403552816379566056289248921246611870942463316189540618786100739019551302316818216271483452759545947804082036518063076297015828292819688293672562196714106556956488706698148883150973732342861617942699726879337350044083414278884156730728441018781566385713726083047278587921855922925411152178042987043093417078901952454928604645925230383400011186408172031600058543374564498199119830601832965439344857707498615559824285775413681293138896987864167931362044261087558111474115491230048848584920868411506792928857816635761241501140852867112402024961709386843134019541361822219493563460150753591355926619818611152808839174549831691005411252643482580234648498462450718433747824805207579068928805387351140753267358939833220841914558786121191251469346151502833816997856127645379431942196971933957262944511338089288720645567710806624208835476345156022697069064204360962856974945755611112015461124228880801613010782242652171479506595259240187419488315211581247642333525643902049310418832563638569855233418069012801369801371754330705099025544144532215304258741671985429821853857576413518010268619501416023226440832124704160126919241632239642641002525302722252734828117257033860150958169369865458200190353144159966481761382751627812989297019500378902858530550586975978344124590257525942092886111601686423362104594096760920490209941175476386142864326043888157874743747065736294687439135189527709728679109753699383968258902497338903273300598177969879285400230204369004079504902833104207130192092140006869600493103619138535144703241428884485969034811978733749718549858170476786921508393983184987111335620705156290954965509230169522692765847894089773544662102488495364744652310851475638037047923561608229242636320481026441519054608965363702432401046350546561434339386376712547592904081880445382499266678426988158631127712638426883116016665027601241999687048545758721560679289671985792049439551601851890671165501804215401421184172140695661293701722396311778919858669212763877703928237592058519353061378923361467459529051286976563848559771840043010605588873221189359473057056194586720111948751817067290194482313644523566894867987697486572080106811978215682524109936628299563412179798416101841137931292775396629854003191408927938701358905147299365860872802802405689453200111057800328861940382592888471412729836208156462179636939932728425722337426013626394543560047862351403827087564401490166760138117416252373593011588083943822913016660876081672976244505271527196681684860520601227742238428649775830462534769852809601338198210808990797599761941580034237035396577657067893660052311873949086084897121448881467510466265002871905231451433309684065667489876723889641657104893603795227915616885019281685179446530399827778172986718801837749003139700160470239086326437309467116434043160035346517654254897593386760079086341790202230435021487134935865160087467479198508500410903149788867020865493661121942351848357236943688906952541311196074601752119348106242623656682475833801899132362113203121445078697738876918051304126381413984373695526815434696526150332204467708390695791868895730988529187570592377027335877223579626746944481643154410423472305846016250698874027263972445328364533347220468830137487273858780400830351933907237247288635516403121090114305035444585025367309813545257230802564444267327038937615410600697681178733833719344305211571824229243144188099789779985705464534739905932160812173204377103449931256927814617638341013639137657283576567829361833968159688462311390774024380792596904592302409384998067786079573298814837524964084085363332555172134344232324758900675112803381579197066046724830847908855304348462171312617021067988402829632474734900402921798174835186436536163161509299997336883805493725231217697244842456756894304103728626611206926490060499090501026431156078144902377671965021655488181374765697950625150827466724919624492963902827872234642499895004766938044378143937975538902745380218942152802064146808296355166356156282814566033150752419442448970579866756147256297260592446426659522195322272457049848610081240656748490057656657247062673702044345219093719431022228660258702622678635537606552154626726259743380746168396391451510513580322304105534279653204250793776478370170073720627378686993481338421840986881835795672894367654310079445463066854937996734128603155551004522218069755276325331633138113719631327302556216947558013060071743581119316661969945950125103670280004000961349488825312704452089969618105179240303048676140761014592621980168553123489814088983558611253691568520941738737499237766700497732372605286910414307096435800284817375512512116773868271527638361895267532947113233013662634327667703589736779289815983993753617564818122352449462680486965268386166516482684378602910086064032015509234852222381058685566431257772426084895727517526385474668889696058754162021167957329354537251368005597151640209736409488854369402748959364350210624836749815052279007178759939664537364841992574467018969391572967644881113835431207915987112506562186105739936800525789561903080842035901023537464358279857560336735003067615772978628474954862183487982301666274504737119662427540860873476249988789173360139568068706385962313658723281040953820216400628940998693271949355372043712807821151101485146751298334859664115722583391763900254610640357363176001880047830379680037454523864497212584276483398726200474048333033586032688445507683369688853797768130299494083518837203301942488275957388154054620999091998734854284321118798675539528963243936433165703549650863057521132052124441973377364592089265028988143552801160648254054131536671559906745146130358447470209287752880211459377206146176131637379069672311080617282383722197105035473921854494369366027602363198297936335252728540306055735851788063967267875649061101737472801149226119404948124891492512950845819460046465459654932944013621560908467924386605587345441950352095593693130230245624408241887844446024631223622307898249471633550460475015088889700860491761718685491471312520881324279008355592007945137981824123908929333746693543504252743978490164763415911029659109576958649580868972527341268595451507752436101362772495908565735304928608572111820474547423542936227181577494282163357766251950221813954584496573654486270482882140907549166705647719039699438955179056966838977554952949097573883665605238656137621799238266256646090395969881578917396444662006935508438074768055405811780195131481863545811363213651453760664175655841205473100949100588967521884969743561759670399612191146261172412358526216726146025588431279018440496048397304577186178298725564323929656124196123135676403046113125542965782983983968362217992906239278660991931325077793535895538760530823835125817738631396223346692369653666251335966142456061752442790745186833124961193821163120433993942478135149514018030985239889222274296229770032227860511179192956337024185542802802128532204154041334212968203252855779875560320026496054847300992657308457440343511496714737445721423097487613636937316700691598932309768551029474327752318831240859079176931688235931381928190044036938179886683488534752285112714586002300919936213247896869551337468577661358873001054044233651978460618075492395689061448334469055884308503652731106080462722317296975224519331885439434487090672342737898528563001986517038540904229186241106520844698055976273949640112374595300365821769048071767749913272555393969433324320691111457683683751492788364288544569530791878002541388607734649814026452484103192370267641223173641039693879844260214629931463966946187684470596735396700998072907999741983715966167571230266585555457414481335688181039362823624293224144314328751096395608599682495544562966661078881525056967284164579609158490882713964349204436237084788729223974551702801556253881761039337558460392943440491630945713397432154572098280361334868463296845668617880211785840013768498797497916320229648726774046124921510167598781562739679375989837263449987467116644494271781994396396982757791010476768804174459028381004941859132824151256024992517851680741672688975773980127326998965369171154582745131595598679099726019968477341994153927242266332113821547526687421175103498416358959847092053418781826037918308310234365464755867804672373457671338260132983379643577737307765453022555304198099854220989157710056085253441324881814805227097479465445717277430168475598093370674540185321533815762070591678339071347393574320477787298937535400583273112007967787382503439122211180951674334518690430990943030200583127426152242877890152690252001475547462795692220771639625974108172516599139301037927168087693882868522770761468534137710762286430572519522583929706176147798504467608118335178939799936978902528366499772920246975373940653215645320690172308049595246256351795309728477400013964033775485128202401071445415841975771227427588059228141398694849384815623472838753521127846623914037473477657945030457012958563335398489775913373773139129444285612144619047571557242948238311864014062845326859576832465006864529371159991644040745335813697610320374485587289258858347110509938332637213036499798049555428505769766858231907769138515747121182957449751144260223228143696873027421825403843008022088834899874851875845961400935672114661825976872012046131022410480914079775085609641274452609429895508134808379419761838860325930820141233336730574198548965002213536067878943394545558604851774301514449605381498798802429816127671894917046542200108030177708507153918229915449427972024863572349253447815479702122487439205591750698681979486164569493405338244430580138239684289499015622286442453751724986016436998421320161281184674123670604187089798793371458876354650987346964588959978353200246055715034554601346433199237060588991583648467303393609443472018961138986680619301880213359456761491811817233733458653377417841729501136512891326484513488834242394248968201547029275863743910678965221381393977774829607885934428273597754729753527524314761341315317995199309312460157686454529344914058093927459531420422151817894566243831754090531094925589344612973437195765758790126376918120344458124357848876330630893273104827128593339828547333786334432673737543886833680887209227435709742477448119062282517188733583781752778374553065030139415132116523967324604608069619986335913058223595150607570621989564050980399473792899911231673782681123594048407193002617556662802074774270300591197347804705478523029142762456699717174944518606050343642789157383108725853401613411379515179590581695167413821620637230337519610116893804587430117921393998640399364223862166351746491509913262252366177357006465352226535301707428482026826087427715651136386801363782131964010357201462830417465999644187309026503553466028044994613884941308236168423717738870410856785956365003785667792661903679727751959301288406817677800321655910179733539808187579743893725042519784979462221468520595043438780717459961964805155029181304838145112349966001943073168324774719833019887824762004209564673279410887803394914206824349867843102783488512001570065003170953044973896651941520901242774958984399496812598759824248193448135754223942289134132430349005685203521301368144658241947860992442278332792611647049085724660168742204088541545042692464740742982424849961289251417329891585317050923256468830700620112356336373018163157960576125976751309131558561845890953632905269832286482823563116040371752002519877814597004896958430862302002160888548953954179461994987657033274331584483489373968846239580516691962297603070608628316182577162490364166585754351740704921139897371114513554605854715829304590936284371594839552850581409526157101611681853791580511734527322971290692449551028627532714630000499144842990073052513793436103516349243907400968512784645203279497502817699818717491005554061814422580011718394053594811099069397869758980542259186627542251809690726694658266042807132470147591640877755571184640992120069301941111483405838566351302011195082255584774699542425296052056245327882812850580775244155741855357423905116703129755437027714391196826116342466066162216319409074560516317113435473554772557499193255797608146832830434693827140709434482152665334790214770728074734931275517258762866438973848725209984279147709527186314466682963196399916370065329356403287750897013449668692633674393286579322755286950708375680372435215450955156415380587185214281594928509237189767189556111444598400094601779187868243909221147089883808149724400422142868747023622414706772559591081842129587199215560593989106655845386703375851738011982899836363588799545095773883646512785980744611299983964397942549533004011622604168028062388408874001022696150091221156034405966850870480825273936630510013580785539111274761214138610853512279083350150859272951906698329430008883746570344414288865085209933167645809963406726693536587810591542548608371779764330221553186874783041897336404715599682300803535998059402437589998277397168604572719718839125997003742213581279398913651322069753029861008159180157770447657037451530935209785193720584109889704826489850815035868069704872986914962576276451104426827833439079847301622232679599545962881109899861837607173537262165299612887300572188212000099829969507461973132053829472814320522420919949232315854592716031094377258500026104462879852903205584910287058109501967518954279599788618867418952893813732888969101489936911948343939015388871155287042477180158034666466478322316929216383404938392423423116882881444983350767115199087407308489003976728033775026636451544807867020729719418106479900495906306084406733022110989950282920667979743364389207248455357184303602900567584831016731433338999985773918203606252975784801816473949184680733537460978345899502374601004574044879367236884080883955051693190460207232109531191111374821858468242201892794481235861591632049455005433756743264998036693872381304180884417859140770710416333406765913482238044729285978499817574576687893443076169439156340989518479011140330714813113199030847737560280753179918077539139381914397927886311149223255302869204735414719911462722541208585578709447402982127711038278548328275927420413393045136059537092909265189790747480125201914290495921499641508059543741592272955940259863638178671876223611159541933195901359087860421439929996553186528860663575923603543142280705622119746243622431181707179466017361698438271738976511469643110399340452434337248781263350647732167759575264342980501396217645047742176028808658371366936444815017864470668710707019963412736227915722599368978652258260077463134855120539986471718812911454177282949134583314450284590275396797046693167800262063445011895330246219780172884152239131089179925104581335914904517228711407708777919300882256169209628777569681931491557398987424942256717326710756346549770550999310416460537230095797354113355448950114256142836608445519931362211990125891729668627602820127666928570618099036557954986023612668831140896424343981384611259982158766363230939998891311370830111429173694138364541199752211137461638413596271390975873156179531771533182535886220827901677286192481095193034968074306518594240468633690710881185512013508758382279259146510564805866431612151901830881424654090075802074852532919816924123150935412151926465324218622443951889900844995924908962739817299889287150114834391518306716172661485034128087152649765866126941497180715180681813475389583090774826318537262101018854532411803611456912176430772058762375597094502913901983344296142396007718645984461264441619490390172934533762979076842021784784951161577718002243539783978744078180029978553707456287850826907592864249208219125109673598015481612167669128044638913381431614081899606703561946791172768970469925171676593968269010625859142777728715521049301414944321431825326495452014707278294663325560002490144719309354418954034895366924177797030444763201820361177843022103155891550071199303186252260381331003742977920979617120881410178637470545445660068485108874250443504907199271836353616746346999762478111509744938929100740461009650005843614145924084062348563367838402014238458345227694537890058175480886218277147649645661215814261570877775718484831955831030975921765675136851803334980434051310888574183731211089780214308432836656808753401513026678437014507494129015221898390909821332940563437298895384294605209322404689528344040361093606868953463920588730536018413733631151434309479654071243876472746416755696836447094972203736281895887361405342603938680731528318304263759448192576276706740395276615619372229320875520658766213727912707101470749847896073947909166669251786368054445496187956033565905340765663911957419819460300425540379829692066583348233089334780257821056305736082173173245551162742067095636420052128321853132136449775315122230201502214041337699829949094403623477649006240344949975229442058200414575263601215588639118618502450256856635879072480027070490967904552983819565937073607642884866110595382769834293773365213002048246046379696305972400592767271559690342392138322032658763305566713076619980208582687198170919157374757077240689404816636280577745884814468918452728056137273745090896034638925280948994127564281928651346179857824027461218856557293270267835386146767587654180921059523497172410187550605597932634986204820993982400076303643306265365751462945524838391424924798711610053756134669457573539478171374040441252688104030266446658337679760083948819327323801130817934939735896801803262906265162571351282129282927214199557917529876822932811526415940345724920878342180383040568504279868736008839569454180064443389686731951223343825674447309846709694172356437514115264296098673536266991628906220688725922782224991468670277521627985243110125123954596385669101717441587951391785593531198748219541066545206113260654184884137833351090983178455125498756045780072023701739694304684873090674387760553441274495866310796639618619110267197784419421020763447804331720005335931637842308765939655781543726271040486828966754704769001640925233737119152874564950280228915875101289580610921546863307233719605915655331732860552478570474157851027727382903415455401371612500738787292184843960637972802138889061743464937825096073775995484240891559406424533422127074841592377523021092198229308535169364700725643498504953105980626865293532585475137514135698300210193931830560820553547023932754550171619038749134091484574680633138070426474522125826944042752970225293829509509899574869023889622386768744131405343883574321822191940652915309798058490884292543459277249965766967617724028190384349089605764412759143535130922875364223396135942935588549997818440911496164616998079173027791389742080239174302480289912730070585310264686853349022838068828559646416981510797127007880154985476403911474855234229930801287037151171266986200691651043976345709554240954722947862398300693230318687673094398403304365827778691394190092753946667936088202427148778112078172324296060710185498860508953289752546017948974288124325962224951264121890589551430705175734072253733652907667738775174172604829427929662674689293690409493130437625307413750265000889515609171812410781477141752073728429206239531432889401502073019624291697291622728370944118006973876503078994269534782126394960895368625113063968592302546617457835177106838425100674144813641907994566439572551670825370275999329381943246511165130877557085801051218485877703391472420978741856440851794713694249428391657062991963908836675114312523347002334121304561787341822452994938189702503730113235140415151663867190595069111743798060220825416454417301250441010016641888573908140429021898431271541295270656118725309505758341185309341722007349304881234013041386451031335564657326679611660232135997135645253772793062860908831112600092293581447695876120497585681940937001716169929972315713957502383792202159140626166919863705273367191021756884487383519846072633013776278353342359890804984678943739968092670360722257729459576313392377716950521868368988198552064532268378491713882150604176719531564463302291842211094727978903998695263518029147358019843951505686774759626902596994080327234160552307877023542141003318904062822887565453796595557763409055200819590060691460500927807547548320012974762250568024463238307456396853353699963019678498951467238389259841769656313629772940125157279581950183194581229478394042369438150765112016077994549989047575031934553395467282162500558233641514434582694958247802426915463370366513452407767651665135978725746174946919777594091078146327272436638691198538727419210572369099337165910345916207311712037679244394038124012916552158004935077503435586872504214688415663954655234027992367393323874741017436497577054964885089635239026115433102948708500995675871338252442875239225173907860566948113219871935984902786426929662515375779895121218756337822708585259738006400912163632848016585680326754215264465989438367444507706113124059455109113939786758822603623039985412483296635429501005468637557814167162470672419890022372380932966586421733430447280373395489300501309644974752522129410131635379235597492092232348323281394203259631300787337309076075109603912715745540565777303684883077576897818028353283529009888994979444414686920920034721489906330496718052980295957282684403410670746259355080292634129790091360887936229668426383306135870328865799602773305527856636138838159988439302820758529616969638176927655969586424852619238355117618377543100038199672839290134022448426229502252221888696904904248120123836909776743827256833689570781470620574060708380926550290975635996974153163083939425085868730788386595015020917269193380807106107129064048963256190928937935174329613345701467186472533088467266514279771743676013667857323116713123140595379126063093979346403755915907860027086706598496189264089566131297231197171027535236823038551917483925422059471345607366365434901046898406860583233387964193556033537579001136057770583776794035509846442150628112078489892141225113044930832584773505617059129467281181043733652204582205765721482170662891711299638280467390411954156276587110788792382398223215862735268691409137057910514552279993440019107803871998121990296206027246945468116976430831568334229501249193639079523555937426559713997161587964112155302030299744287324296899377305236414899853385979037023987118712253091830814963394773389608394742635587052114426179380425503873306539276606784933652726345515762827612178806448819172115283521727303619533887433223920422264435306273458544035386085928097262299370074073599508492990827955831819164380259628527125012550930891046287606317044299139800576107867349357550830968703056186569283678263905874662462503115780364317838059813328114217186930735204586203262400500393279275893670449556484835888600799152588940263167253316325342785312667458325538025411157492996839266632757932532322489735087500246972569977725037949330368342211075486383370539673044142007618916319431599847595914805590223627160494760233965720883323137185650524883781152084395746369088852492317170486051701995063562278264497353399955036529478736392718268628913677872849981312755487587114625123833566635065661305222185822626582892724786957709192992131727883626447575661043257342626594684177336835673690663767812007753881463644100928867953413849969709053496742376097895036189150501211365197534630059497038195545855701816039859635664651927377473582375696415676973020770540859213088019992075948265613726982415011043402218881211243913352154873355753791797582935100069704973777961964776310065002873293334521099993860278818105447391759898031352118232064962079120633742254196153783718874135666182436612598996896820496972639131044233131190800309686937338047927491596046708927968684149850153537386721494778006891472139883628736427967832301935302382699180857820797837648979862174509544434591579894144472649084987204632303124978084219707720623180163537351342011127322536351991159199024326252084673477096279343413807673310475561171196906539889467434787150150778049987696383818232743125325267748965046789762993015767402106702516250877544500348658033664680912250904051162174648529486021076182002464713580583340866457613150247697048367887925393783239054505074771871366595224782829202121138955719576058088872444689735909855065737674658946392961794439006532896408153101153499561801354428294332301470569598425815328143581287299042604675163417449480354674622612185655436386221944529747076051536903608648219597170339794345980351723103078792047249766022375354562707952301452938539246660673577559839599171513721532960451189621308095449199760223296824575586806217276931910042324173783675479223600071017040303732365690685217866846610243690872564955238115451759803438280619993627396728739742107619784779317286035803021509452026755616608527651998001068120982766758126629279267642683436940605152523965359134277152307264726676777713148430950979653463951657178510994897144712210660612986578930395006924265091265832597867521533487600831119447012175364565881467029917499352286839292361664298667610973679536772155387307413013942297815204734011865184037884988929294227181459107555111878630101545518045218124172956524872633297977459220158194876619133320866728341919343305993777431751432285751769862760191474113950369285467909324327806012451069421356174444910539600967988778076563310699012073510482703038258235293351993220341938239705198274922167557064976905551084586163035794505936510055152121889987756971225572912996627564252123227339736702349312507672013229544237128942844502372239419370184972256503900400217568321409027242441272839974698343102763091082409186727951336471835000562495199679611035212711150081808690643203993574503786280967885939140276780657879958159836172156387490507768870562832364160352295524705982868156951898419583423260317432945071928105345799481862065728529549333073791782231317784538122773951096725000791301235931860398118647836816989988903865797830768859517623011816110218016811101586723928125273077065353909184721058867609071143990609481236547215638520357207620268653541683677858270075014180211150944477564006813067903594304472524633257334102007670041455400542644467716660243682405345456769155354608023513497256058010183904535416776328218156865135308928586823095514148832355662731186422972998757950348705956486602421014977992337056946745098577900195411577004674006209202382754405067899475349904758850218205287700451851754246662243862216566413558858113509758052098768976562147373552895274928651094547714622581587728491033546392892814417648010587734516154594311565338511376644950299458358479940497715965432464857550905434380251896824537147122427643317337661723997157302388748463977554439269096376018906591233986231715127730998941920098349599616709537409108410311877641057383686676850193698402017958805477170963721555695457269467348870316227099795718817850285969913526617012716947181053393449869908812759080762206054490518070743867927814326256847405319262413729027135646406678675127105772397666415606299180358785871562377607242996143378594446370155025840889584978182737272452981959850398729119852650839866840345316764664948046745654137798953264564586232097844598801363304437869257804683221768482892671755451235829059787356637843635187124005052979991971811489069249723510110546947212898952673684643853923930837214504807030554434356423734146721336296961243067415306419207922001983928096289111049470981034894871054702323677415253225945357243974109243400922488729770533709921508600426293309896666039142855136366022351948574528026783279133632775548580313658529320934072338864214345777673786187749426887647001377192000376982992848873274113475089480225333736463503455421709626691752757429729916955082675407806827626631161167185484974962002158684426581392808875802418666277243121150439256048705542500913669946804002176919271872596329763943948088686212244043134638489280223118062957650525796362943475297599057053508825995131209283377040265737928957489647974317357907478633818991262322959199613002909047354715314311450371712336407693103887990801962717593128900357522757830082635748073670119206954066164506471893164354602163245066576020521074164802676087171075844384863424932680316368264905186167710247773921555979944727571219426682721751864957012841744627727223973811761389493749526664111966173394510032816355832772214124814330547216004501312097143775965538279164702716629649799923680105172018560047024531168206629378865167648450574920450109605929524465198745936477699275918922216258437988661057679494924302837436737971666825153118909686057361471209375673621125738492789622496120550556885395910302647267099648712611662141591488305751343786113129971248092204288334431114953140164899086670806699303600986257904374861587713869850530702648488763635560858972402724525274058853258513063321295064316842417040808895717596868409823001071296404021821793283041783581525557351830443432826827666554474129062861206121353153051935490575271358251779143814159755676164656911361524779211038950533269508015490389312968969318483031912229690575945464292814323664853818839230348171398085135563205779061319570896587777900668964501247331829317032241819751681316664713009716211457075137612749370863072306141937577978651366430584779552216293060702838979674324005424542376451101839667261272539564203272744166635267751546945262184562217761725109581076884929119755347062434982457150342920606865082299149180729624371185691473227555092764659771713108430497631212612075166991819865833352423843953748749258884932633661053190325517787337771202407680061861684119364385080998547770090601977889601782971609884477940242718126823067991505489559449915339739658437235879426671070304824726059743409472907482894519804332918138961086331905467171361708341727774802205755847042395075890519489346905165140677279573726484486207563003085318552832671651400150238060883659471487724391660107357195082310303973651567383398515097653288911776954924997909915707691355113891421164837583349808990967328079882952788704589304767321051391260403450311190271794438343118580675176215662851418220345405293451010777976238916518055276760513803716072285833047343113161262171227518065029492491470919378576857535336011530320912369075737807963561856946002569874302519901053779946322217014266359425079982259609897756064957193702104043095030303556500544681875091365191525774056597552136495974173163457337866246003071721315701764492180396175631790214843216051039778252743850825359675265348367949028090871991346309601775949531640884157065185801932536547328602893193115309867308284866815926331463304076295882378626369308121139323382849730332091305946413994264940843858902962075336320045937072086160687076037134253338639299575304170206229605507117906612490220488994725153514112075963526693891602797955451886449648242665652673754012441083756936904307576933688739283531376203346278637039205762455150739346024546579659175175312778814967627182342414155389941129375431904762355083815295547007096837241400945360425725563408373075768370479935294016302181431320782740313452229408158734843689969982226201473415596993528012941581578595378070160261336581363681786093507357766049735001880301697755598597984452859344531768897021768770866252008093983346847711609720978214209307295149770807242387432837220712920870897668971941068285362335217660006508641920230992001553055856684876373247471180775740205634259893020464351674497676027393078769161902113162504000406440697097282095649851794516664289992962059077726568912145055490320839468818880297400651627959654277644406849781969683792575456846145297400741243971500705345967881214789468305001594543341760231929408147871161819294950780297889914635291578583253431284719460728934412847761377574126671692665123877397943685352601055100818528900482207736416697068505377528801797345910045945117188584892112531813634494730174808284845403498519760246707543233560104185724438433244459946311502451930090644123173195835141438987851621657582620432288545642154663745007204308613322021287373133455411758831722236423609080842836031837245965197305243207813506629929274493628375217508132829860584734454551049114200727839814238353218037194038574472615567743229907059882594303430196232611982212141267911737509781311229559727571342991502555962230698394667657512303059553002317603563614715298573724489539517832199507861953637076876266214593878384917596525116265000719030749214485958356351811992112118815350647336201682312735657805797491980607300566386451871018513843117363987847559522494727696761990155790139737636915621667390748823904585570767321481172350540013562951313453417495529930942700021453491338165081101623804753319127325017339971320592182258410321875100873170826348689336687726509698911396161383092411408139004239402875784471114162045897310043009104123365802267224875677830683568732473872538949558118054050567945270179916123002885225914312017641026184600509639284923563126214624231973139104032832404632544303137449240818006532594820906585872308257736258944311183223047367391099491023150714700638552484673179475706237071628558825448236273405467270569189183804520489927520513838258045959201916440934491043818846108563745130458786782417234065622710392520318294083458014333060466564907942190016750678589186626522336438489420978917543999271109777264816885734676948221777661944402677394292410846621522994819073685456223832745242193295414151557095739293898386598002814228581669025177765656305139171329738922463370424685291635811487021967730353717335463751852990497332062393072793531527047925604131297843417593206031187071987361174310906928247504577800733782898327948057102445354691060523825912783480494663484481402461414581739953227499296943282888917954747900499627683739650865153526372592652929170913325081539441166947375684153767205040131837783062605558099734924188232531157961166318636844189491535448414486501136806019347296798831950348791361905258868606971941525777160490316646943316853198005508831396651702583783700781247233104347039313442919463501467934627672964718563980675308636142859192540970843326997609539363633537494590601535818594413799005416163511185252895655963948914404768319726069695708178279441492755359732268303269076289362841178480458572733388791051172558119277472788818937920748551988979852674343596388615382664086420383889626230810017499697013630391440402267928910429108556500440157406628061527320622523448278634168455361384680352456091223172844819103796369910596907961383075919856203075130252312212070930629133847065201031987007018059593589854170996829957737759801062053339108096460328315202035348759524222458765464214371116074986332709266217033957941404603642422158065969513396034178050110176953961928226592942547394732195142826365760521994270037596863490573761361610699770826425625809703404040533587090124428600242742743158066905819577245799666540433430705341686736930619478580894937853632379594798107001278542268712994826101650909545483083207998662472262582936135198818917085219889537117588730883865648578626253715575967602238471978751192657718601170761041398262753137412563054547105932593135880321317967648627639898491687909471305017164025720394720585811746362776588306018500410464006173233509727676261588854007230233714261968177380110681686995491841266659825791392133960642778389918979406981013222747294741641293056362566165503771420379169656745967834280204731942885176180603888680717186344945345966867052509918803563072619956778787229871208549651165956040363644316717607678280391356433982535701553309374121728467971892938738012512877846978533348795295890351533326562782384741890413548445652138778826134599293664369244216723118528921067831308369351130535476604485895944044431461951122894154625274482256745198212055700169942979267100810497754777863212040346930119997524233378641951248410692116781431060293361452438378091724444822627371065660882601391834781133394673122265972776092890703494580617002381878218219129640376478392829653390837274509868666362124765190857680341602600967733299894986771580121737213224352670207758873994517185558765433601607192899590913249607327019693752203957777845252482258495934489536987108618380679039067588486753728801350099444095679039512420823478079789567237091998061607453660693954799280761827754151956323006338442552791619251217303184567115157551634216322683870209077961071791473187847256573706925497589020005286092453365137715150163946067153654861356472602286693695546628487467959282682428614755121630025409976784895702513545034420807654145421967511716739002514519402348222161147677437084679358895132051857859605292152118394846265779645033416196720486039984333087783145255750287879183858229823833520536112196121391319753328516851368578515769859576864002516119028109664952782216075840941762395206503836237104395210683888929636019057854561844881506199090967197630279414659200647203065071625517356716448301951014771073684717225023764866960355126187825690404414240897884592228823536159888389277082671705452532168828669754067845815393420665417382655683369474948082518553432670087934449751839016107644347431508986866522732456170352287523861190967074169094911164882557644200136075631801843200234329901544277876342759167840628427134279645344813451718503029887355783587264794560709137682294536289012853793398179045062563805642331263089020992679723759146931098504468036857010356408486359075143616360128333914474128251681376795913777819953491602164651611657977397550019875589965881102615870037658270668738824657574437401551188347374792479947488685097789972990158693400195660737830322757596274741821557846865601741318369780805911443415055894530113305277739905265102731715465257248604569637352360350944763285605347896956392985252958717304636567611152280536268179307040326497151995193178174835557723874656891666943240672099579717921479088425681148512547015256064803881715528433601296908336673872537795034324392041848364517113148824483511088397080562463394654105484843560303765711504293825143895467565889830047490619630062138727552245762055490896821274998561399181803505595289267419979280342650783050247905520086708479470042429849458763508295099498889099284184067672616185999767968488831054969048785362416068406252325128283569137030510172630046180659810857408455422028525282344634829706598244165246612164124082032406695055648007984466971090777103040557681123493019137790426732740377958717425694450974011895850395324435028084559447132092761141435398229418594047645988208631168653256144744148952304483511650938922435662355391486061758103344203630055164655163318956970017772358956738233410028836068624477427925154955330346001572846244587937398574870224866036253338328859799878198067746432891440486106471567319643840897839048748233602820150130413035536664049746559142281321569296446598599158599141089623335730713877178771374067542546082919701963762872936798538343054227672366023965217393250627402032434970778481236074463218305511799992908376485253482196168135003211605137502196967905565491062344789407765765316829895199293758240910964006058897054285597069262184246210065296907896028277904559101944946769839150505779304067754777872847019746354755030610463847148552464538908166810823930435869819826073472369454964279664584658847008819460449593762021639672273062282088690734655060938942468607122344124785186005279223100235224012333196423371030311356102579181508999819641778031221354621011004611617936741916834770284725640048241622924391213902461603284122835108482255671354175221801399572241065366722336604587517491001572076441949822067020359174015699532962791376074229431772333235568570929625330289575177642304807819455322231324716404127250286490772637727788399784420362196482233959049557883008981823303085482430417418790122995926083343125411062822948191948336238762030942702575008131375596946523939860460270438257495563123430993370707126095199658255338774157561737289366022402213770507088215655670429202132587495555969099953448990204386061954723424417611342685706841478262889577475200276422350539474242188570060306857611627094084772880011093147187349924124814696855172691650080427820470202761392728475668492574435060734362603191281142183977765336801286772115248406001978726928282553271174757770884040797946380997003588077585432912546200973080811299751626148058448799443422007982479003444618083897375816443871678930917224021375216027403128289993285588105742072980788097317023306067604339163527971402438293353178988912167699620509216831861460663048163745514978402180140229005267015791949899087397638191591013287375681030978433536504379155392100413075187687413597346987234995603799174438036065807544156252660335405407408960643901271003454622937167852826081273904313538917741029185048277902195418652702935452332696470739210269416044018428820282584916373215182252574992428488325786329555840765529495007349992082534946160807246192958763608767059373820151032143877363346376594965627329899046968521085735692932112644672362058669026696586424741807821233837902933174950515443967322482829734022734812902488216311800090934710239487000531824843012549877116959248811088291430600669497194410685423347798279116038811878989710353777157302768663136389119820684422350147786545539164462565297508745540407621401134480011148583290815011399951517254719010928716522274182847670145319552807909742650441237864221645410149663200572478639937388509466120841528227255830843726091672492358317030918825640752110629358937317108620788245422767982486661342029591497961049784869699880289530126693392316433038905528973407041409384963130851403339856903708131487728092483706103467131900384904209135567862118275293808616421714125981559410696189405596886257534718108543702507130546033598907165415164570948680992760568741291222674192586411285676841475946252946421825304810907045123083265608652579871844347108743354398364812000385157617303319532316148102654204306903834759923603934744776458033890871811973868535465795982928620235024141069392102278429391843020465258115496035596675235641927146837441489622550577782747627389972969463641251657976338109522235117406004013190771428355053667722009363369556081665603255708091657291593924654815166660565332338396039120468022695969844761248676236893195303226705839291249984234282778876363820957513601374912209753318084327860585660851155261885696984957212935786893231879464753580097016206390038699092500541984385312603304319858598114522121786492041223973630978211760199883036084662125848929759973511224406673432576963920043984189550710444765021289908068538442547684458430048099126358009079896887085907347501843108646270691708456961518841151386070663006774577901808213061778252224158036030747481182281418490697734730493795458486084642275520502474422446160189881320965003469734807170255842833052663373982537228369508107081539917419406749069704959092767999706295113510996539221359915987712919513654364596503313933736470979728437925697419949649400799635798925108927340188776927246271167426538935593666984285919761045442337503570573984074185719804734557182277814076604391103010701809435645347246136910379388685398500148724845879305345587937394657949711067740084165046664230057709687170706625825813280833514662842205496421473401143776798386391664281015147039208986864578618685358747377418567734752683566012995687818127995721035643620440918944705365345851695261179589986978519322286435870789835725975237572563672411809376331327622684845501572916452374921794368232927149907705902153273406946412593831841806421597619049084454534831643931258110610659914868329976170217026632469596380862704067395003880794044702393026614089337771057954064568970818094024968527837712399346879559631940901714380341193219736113893207340654025403550002143395400253530259381177291057743901093433168794021814702945251079385207281241790810306783627312903234754995094066813433873488664620603672573837037437989722321175602730656940134658260617634458882741548668503069070539605044279578591510954014769916199448628539126992569450600977490462391526184400012267481436000147448450985880720534773598615331257066630659113348932538857970033223674921152990840714324188034457233798167429565681627267905548741761466510574374986337781896421116584645907843547180339727178106789572665529167765835908314703788303533993574126335609184316050282987650845979651678171490854360607391197193783794852501953709456187296304798180087635891022265022886414332666635970552825635400938713538267798634796669969023310764507069804263383117181455484710817189837336167834663996684696195823324080990427331245556186714083903883482354722166176521641661487578961838092574814796303229683323975120897868789974635207675580252450423511521389722875904963757794668812144563750007535503050796058752145666665933792838254139928930617554026358210661739340759712727741164410424876014604130510325745615811859732417985154318015992278931825508053514329187508894777026221792343462040015099890450199733877395600416261941456998839422100408908599169305082181208794838801476124875763790448066986937351760685996275241872717874543784810176145524795342633546987936887593020813533666851185772647645546685344494895498094031653379435577849111384289075054216278396756808648008075288433530054378182563651386539642510893253577296715060878801144575626057334586503590580236602910134100207699068597441516921668828267446142440986878829376571538951558519818872425040047455018164374246324051972576599322364157528848682486757107975899395084940912097473871878569539817009122333594225012867006438215736805857374969565080982755944595404044937739194509955510962915395486976431584800177473026929163504560817525746095761069665179721139559439956055541341369581002959904576399689593436923117497780666529013122264814239321771282489710805528474300319584069690643540622090888041348144809886211198358825631474098408439546193179870519886450256755365267276075914281953723631184953072906999431989066236569953407314605673193440728062416378321487248311621724613760449348260885277988484928645736107370816771093216875129738765129525917802217006787839247698064041005362038811577978744831945364622864040032129107120685430774458744926147213620509165942478900900142589056862094601186163919955667497724174301610946931825406720477436095724321832453800603893463128260367656940742148444473944804316061999259816109588873305402600587632176000031567884743060849706321378779120814219839259336547091876512318714671524168012289778426975907083244520048195411220858791651949064819979936479070814473534354430672149889575832658033485574003579145231104019313705511924222170527704731247671701328295560576851817902638210012395624759500971916215314185591537509171339320033210197883647803760682588133621540137023892976577915118304081396700565229235449031844816358930022763729677152325229825962548346692817169411367817673012241501025731337443594977916282112713092610476388588413436174025595505943532100932814392715387852998865454700443194057834212800297565612103542061963873459007946533154266000980784989424760626602547789324835402036193312279754695109012722320786626016372034982742145217951950943853374572260277068926389310767203333093925546205179786927673473566672189971328283724017229507996844963589958754221804387359579190911924915162741232845270048972419166775485323859238442261765328520541881557997367233626533685062525434670139354513819469038925116162426607342910228619069729228002111403058615801959091819684863215619187836883336486712724588359338475167879359374181528583282247233461577746449234698321040091058533669514485529017491911550667077028010048481038309565270859426625391212529077670675515729301968530847889215870679329977951081073189411505386145702440808224590064667391338876797306267143857062402103708454210974504705984346035511557422152931839579418507783627923726421228065348144986957978911939619713011194297957769850936328566215494235870426307562199453086487178752410934230518754057504314864433233941754817761221379683795247296474782545890986238516217261002196971758305076930346490994670302151742115128677667666102281068051498878748412100750870787491230273535406751354027369064151218345342837883255187418607951564785756478217230302970058698087510079040668304110504036631391141672003455964915908765297070984231127365425432223474733619154430544540456620538806986194215376160189323316269152381082468086680245897603004710888565516021980376585573658432584579255948313727871627720412758884350438699507187867588398529722618756793906208744850121418902115816182716107795565705355593830271861010825770459290572791201504402579782301741011368526363514869945473803842141846938721494384087476584712429959530040297959059645101026078981647585114158167065998977651045636119583325691286026670833156389610566379094614144574977517693272734619187000251707137646146156056018597946964251223595154257931087281920864197156719167460702462546288590080738090122900187528369576962039021746695883635720031739839037856929536065957092497990591377599357616356157172922184070441980520662998179641691516770843534748817055935831690901891694720728499718837208528323177473188309987462554177356371639714047975971568204638499368978605768764992222784602547569440470952266690351682742837518975749762044127046096336033478840249482907176632244821285202953938954488696387419759912486145493081527973769050199813011849942497345907211460574759498776586028929833914562244819072366007482272501745358922023879091314763688921782761321910612806121774812426402643042902442007981907771107381917622954002242691291338139439153419230052306844578247838094367004804524615855370579180979780858157478880754596451336179924711937593020755675588465298009505788531826375377276221373986448730028709334175872353516674891555327891523504109576545747905553069428434542092395111944441631798231677044456445510878982716554895000589018658009872388671938773748599124794261461998571292400962657760863098636749784427520571105518165157164518635198683493163544878198682991852007247830131850258736099539971317361563772840512945508485140473531532432893532632852469203383257115062081025553731665468137084529833913491215355886302297973090414121386872789080183734034463360002936898594052531565559299354017684455065534565812865682040255988606818448825528913255234187027339058060495364841135218401527671726886548179345226365110458196822326030508869821937976214201370136617009758804306224380811631540436626657107914577931630156810056169023969856811945292324363563714181673468438304340406373578689484371402936916122108174982130503758793083316868704933935903857808891528303088035167036946185343311289723301913277693090843532472706504856331587981073858277247797844670240730325286976321710771817842702036944533385851318884162386357762936711126511086321918130563995117140479934815215560837280032909236934827695509266470452706623508128347749242296623938505829549940883165778363632587459186388961461839009984176153513497457872390615106988682767967115771032182546882051971371723700022045608464430004158055506068217800550497201333226123737118716677930737161751235854654887264970590226707652720408129180194510635516039814946338987540240142416826756446682794032026460739947065948588674623183832251659101013958851239013747325168241358623310329509433218840704646297236912506785399822614177962743619888121017509491397726042435205662000793358954523829572648486795289022497798663508232285541277184744247626723515202755469097061693926874918113037075078171787633027239080845660553444041782203953635677069227382282509666156828505689887426870914181818291745081988859814029427288076606957469823275394220282340377613003126204730995124902885593997749305838105383640225034583947189278119912973036138865736820412636948637783552893060191700910768006427270992258588096182534041705920649622873792105331854882087576443441180712716709733825258388071995977182836602211530187554722910324465972022313219038448657575412252340356352640627095541381267603702235324962856831375274953922844726498818989161895572382618084149361405125952057936168295726778407282886295031087685350053819194147466226142146848372392420437877950026867834317411912664943405584113161378370569421153680137000449206533090373831209644579255359560067369370612285728343503722287266377286570688833114327188501590958669676241446656459425398937117460498340209131585496527666433018424239985379550178532307782761822840892649905983200972983306446263209137119845491009558119855495096105366258370504707332722634496450708810711963871175970429801918252862302750879667171764141646732715942732376457484814367883384072693139707326156708962672214053877014127294215274299492282847879720012176865048062046268664937295703726841016491920292316924191652879305019837141912108035345540616984711451727406141383991746263652999551295765188338376546695367815604272924906933695864205001694285868376379911709481817613119401484422690623450501472186307501393149928459475226531365853807504906743140843717124560856288766168372417486018540374641835656165845705216559338069980372023740246194905898310664599745615934200212545233768004035031598762964097689322544858557812037918636873873561080026467358321097530084021909149413883811316448153194047450667888646865162405513988866249668396877453004383056830727005889151341641325197176191685492078038983354276588925517008767159032788182601519352298928223024497926674935492125658163642038833268788023256407030880506963386521300052744769187170406047205264299637456010031153830925377947891335402993854994180683734669253843801274919672741956967430543327711165489822743191223331243798198479217460128296519584062587241664547164375253713951785193318474536198914576693239424543065534744459330881982266903307757888811470352514151277369174110305030889138606245160394465046907609142056997409059260259823329725788350318199574241064076261519726717634868825609269476144882024142581607418358502554415289162100039788344894518038050168206062237846980036641608195678418731497359818507781214588114196374696128627733600248841145824796526846595370547640102847794293528377835008735946367814129701426243440595601420692699499822042589957607674329972914061588499901779525900369299333117475482811931309786067936605043809768205311281476456314919890860209353008337910249628435085496621008449646771847611336633773421909431601513655025789666282804328827234730373349370966927568287452917890039259559314541093703916686145370070821915091020286783339101247035341579045730960285033393800619198836957160437504040379834590769402868317667959969318098199570977092171076566905681457769227560390226146146727779876325672255680258089556974511957131321415869044430076991792066509463395441717214980425018780331771162387784197616691983797358798250189685195872187348168361326618653191070681429347812817470909941817695954235786886384072537251529642080272659069599105053464418852303919137013381939310795289033436382123594127078766659968131481396229075012580042176137045456978958193573405670527966106837792078471122361482557669636846710099446353973215234434794947637288078169404607710055300093431627442402155745391048635482297763713176640323557657231267607778594848918793989388491837336019283886111704128621489898949842162102246695511146866287706162817412688542414576178583951594264829987879481454874516388296781820929509940614327289055931962511622588988156380426470028195923500687745649914804259775040691627117701065805103150652119505929404828867064826241623096517076505159944651666393192472953200496758636375712388338461041152086683467070025667513445951480229667482392237490871715976323631948826692466417482427895549101872036945698865700361170121666674521348071832759075444184093308344131223557814938594406062987604756785257644968079666026399359687280495722802602016907565428073597899894401225898093580696057084533545435322744485501627231633313025321784965233664523074941782062374353078859413164084967351830164019510063519323172309102385066328175300662665735031728901910916217044205521207714348132498884652698537422534619782761033838181937828319965347294118930184722435263628818556269787782279177594098919220383669393548288253465109192957651761828288513614523955264262870574750613287693075287241192591195479366133764217553236408957023462682997052869044428776096814707064019357558633895716925974931609089555718714373894040380292098254924918229373802815754889132177809381639949333615911695630107627366157913179933233213086108903136678645171533111455509633688499767271442736739164246365611260051011180763121013185263226418646083556258926557236338902916375520779686390776213152880553501886070332991164568756331917764330350954428451735906724258142068098634215641417948123272467521322572074233765964709836784242125793298741098427239011215989404101446955416437732512326512465014701676528785274119621264783379334503175776652539918265607833146194748247832057983706428320982863595183369983925424237201596761294490669254550219593471950154744838989587924838979805025001498618165988675977079655096408121597138211239088869410215525251180765267961325864235593988259404359007164653747009229326019305256434045425295525580432751043613918318996429081309518373616455588886063044083876150217836573250154782926506150343023396357035948260284818166059758551407114243800954992574384950738658344564067846593145567273514631910212262982376547333208741139470063185457399792542477136312148703720961731328286703967308417747021147639314260143084301910530364425229650496221940397252509123859086951084334102931349295660726543262752240435452383419627972946870981965398108836169448003731802898125463595213981539058989478920027727062360999010316600198988431188161897948127584405170971827146963760295315577757932903705346087086319196659482512855727810851522182891377147997795399263688565061109681040094544865565957096983974161215999414050883126090478814030662204315631183562614997199061682304708244805556716417532616032347166900376106353738158206278640455163866963653423541769294480673751588563637300491631354789016077460461426076888730286490775337401081609909284209436563189905318197617669033257131001527195464164902492448995986082640009818650931069327024860781531590669660373112939709815414612832416221341900364594530564119830454079885304795117179332341054618086005329162898282815704933462829190348169491576300250671942697792953644514054278926992712855992025792439202377215716178924493618227655454284448136382754782746263845884756770638856297475387226379985856931815001532383895340509666464106056519343800288727480251200772317600888347236111734839171552681551093259184317603854649048827861192352803411104985403397192429645605040810178266621094082652539189294489471522577501805547282129167869953774239540379791034203319768825516184758276523094251842949527145989272327944099309658310765415009361806363047997458693997199128683096928202792402060090434014121227454201619163725649638937576219546007265960398219995078889541738088480144571614495322472620183030820235083286014591370972982817380915142049208271527748225066750684043892660853940526230247505943353142237442147366267301251832492343952443170905806464471707873963039816259105061690741742936326849668562690827251509235313831849467714276789168601022842450170638865265843569809540199569859739661283485069348094634161106585030255209003861536354640022930599377052469914606384176138356227622236401267691184111367041957316231197790855992989487782313476915603523168065394879415569154129938259126551233533845368309042771565998486253523532432804279207912929713033733672293100363404512010177248860925661176079041984710800456738796558353985050263157829894274007178732294861472607111415627140844618432897423863304177250447856353525355878924534904604510200591079672472623184317411596668829935791743744271794252845883422989920744138685457721103189129562468740808163270461060868846138340401499380038740183740564286176369742902582725043353634067390095281305421847674215049459607168341619779337870572793787733041992283386224554161573718768327695942898702449303419496221977086083753626012206228062347385174411993283080998833949873635542866544964682429204048965337775854808014347958413289023626903919548423583392962746016659299905932820035798811284302156011224010081334667496555251536371777523264854558514147522350048190163107247919122413760563124491663640828444700460253048187722505039124180023078416062067209398856591999103003388530520490981367799904204249582586127887344796384261712706330827851909544739789726953923095372388787583723095173878945121847012053777136191746870701334229549084910936981788474407542062920972008819170365513793478832132325719230580616096472263883884814385187207926103795876381590995252549020409560905510532036547337252531160274247939324739465600360313723570370108846433482898622238736322332476768773295068836137984496887608388659840036956585480311412002816133222388648386586172403324797952794378484822320169364438119709272453461067401628744364575344874396263774945374846599349747888310716358725604257141848324654168760564080237318422767056935288424655980849145967872898563722430609171431617233592152906272209434689393008710491241025517927517198352398477986868220125999596266799953508754797612502696627677313664454788620831236468442401080928246095782269549782157475573937639236182482697073354064304715302104062057594162077409636173743948139566249765551146262750205202614851920231960800664541732535482364476181163039819568355064757522177276933635767239022242055261382102019834311570017245250403315065209934966503289938092234271195051725816623605628336267517576847390738572447981698427969102580129147906694200111238445394706992430915159330200458040375148698492049640946021530161149384825947483307074581535287268613130561596224328068862919451286952456501986864940216730261133708219928022334355524131337660845103311000650013977174102965724731367546026048277676308318817595957653318071107474386792896415723488767389083528121500154689997787882599203180055730300061013752891463906520427556690917116771778168191575597851539830487488475523906550443073588705513461656776642895331842419381027354211866243450460867815436037323460731833238972753057357004366189564575832223461220179514208129051360646509922694913968564358806951686996163398944728202551487259704139383500413035146583943735959034207350887133744792605729523396898487971617997887865929611039929147164092991470789992814123701500172886292910870875839498195593461830193536346648373011739701233623248961101509949669821627153522583776962629832760267700078710566751855413715901009286496589615976409308958035443147942829366621925445714593354819644579415431110383578251871492849161756861879911475990830249065611458754684647602821500570958933157105024450891640351901990045587509624534799238574211447150571940144042028112456940933137388975136580524885771958269508793730690056339186408975520227899500444024600408956789040859362412333120208951875485379406700883954186933559623303946182103728221807252675466154797383368273384681026605116202867923484884959534187551495680818125233310365936532889911425980908587892180112312457805333187151010915918776878449640256003528109920342593533093722715012015449743589237635321012359241869444524035854538309608453076891892835414117030172708109831344791804967702465242568569072380646917101795694385225999301696763005492267052539994771241221362766654908005662440822470293596582970627854962500226292739644347264989896064685368590037065790759710996919387036726238843218481840135680118641888462149136417709261892617851247000673664433444611493117120395231580274374812862789814608622504763344053528768736056579359310740384233953163065062380848591218781199025723070922518690491950518462505047461591404801110174934740439014379605473037170218712936456567434364153496001395962400011686632049306876755838518513406231975871689079131046024642936460096177848892559506305121535119276827226738669003045143877436005136767438830417134944411942163971467322596646024177597855255467659051154145052135969461905515091540573602757976043664297688906944431054840116440882830908622020392746817775241177171215128906658682854120640764358618899336121070585705962636838734044096327464391521121026401107361931458187329625449102366489147516379841612322331582591212190266353773669891632442324589044323053025939972314202509476190566948399723898332068279853169295726153350736344180220483559877410147261782859799190704336859756436512984941778787941175426520456116123648937888685585225932134005026272656129771463619976488247958213534839845205646900860511798937820631875960896762728533039762786409169395340488686058937475932552401310655793983088496242151886059509400231790865090136081243380982745797459797099427200057175794682702878923786778853043279318594581993502972895734369438432887069170251093489437826132449048539147034131492818139566543249756891475996636608871357970875633894952765943985839172233755025654521357832147858784701302832793199920086292315986870433729181424733304069777820497963386663376888295449059506400957545442924991391607350385967110250613644546186802404156331711912536299281822004131944884040861606250949168311489254565351100270147034761790498474766423666124231484657978960718574705447822154775502280866079587225961626626017256603893408330072899997976956579030191433467867769283733295113086233649691604196511730425540752246983928960357647602736567759985658017587636565642476312409886513219082942555774734298441384853435497900965002629428838234720126753267550015686248360184574256858220900588838482548407369762880669116659090944648359538575739847870194752107386492610298799489996963396494772187490827793047117054146295843191584077943452214610010885233798859706441878909198438011293930430454670920865340866297430898706169792793006834140931169662546389278556672031694319386103240062014901156489155814697952420959926507126366221876067371720793574760921531191605013057184026118029034522053598608776826382674567860477152681241331743624612075455728397232967026457548532145703422425219494338216424313936546215545013908231306427554261372543219109064288702656051643645918367214823708225834092437490783533912909668851055936606986887570437428336370414337242447326659815656979270653385894701919648640236237108018478030676014674350193751104233801311708983702154483383162754729995873825505310966226901053897246817483689330188762480881412187398985143491806919919606888893008599643707583310564412221494583499402602649551320770384524016369087372267532832012210939120341915950763032627088535568345282602438381120069100932310380044439027399789180058564522035283164380125915626673448756558099425652483114777082921244006479599151652523133385257210802178955414352058592858049728393846828488368864535570000127841289715105528213022424307689476131779369748682227381359645468346326436767899395036840113676420376075101418503709027219996720202315683753032877249553558764912435318923244289332281606786959012848860642133436959057390864256235915635950480790274349843612709023011269419682524351916808041155244748867842097348652748110931670856894787814927950265238946678744928621343267295953153517996842606116852340811482618883971526140575872660606865230935658826519206308886535323337002174683300536225330597426149701653822273605057583690759478613924987659496203388715977711331733518341969641259410480028609460197606592106017755776870941443245808372852437610384112781811577140516447474407630486948409164774020217191955502223558872338720885145707345790364612433344655005787233932998916548789841758085342912440028832794863432836459093758364087800008144502927462297654101724338839883525103018027159209940589014230496315424450634921562357014026999672324349484319989435070353916938466750701348547516316784317916959607400521874187602855030747517034207232095782934064305669695451913157986387010711780664868099315105268778683427448870160877225066369415692903351552543260668734560964358301923675195798132382876966882329951109948026195940711589281551000886433149690973031770345097205737147771744348748107403732729552310412005868857966195731455019875773460582977869318190492597617898122990539555916128015709634351659841417335359571065881524901988320345342188660084698750573066669060767398017855379808789967802486743957195271639273448705541709931336647756691361781555744001177969151885550332597045043647154864696394170235126682645443736315351431792962586627209362177023956759265933014057425333084715996010453992460758337671297600416458939860220557340674755672744691991822990950479645616391151347549292183726408226356589031228482676179532936855640671673662539533583214947052955213251865308592939871841038101362360836469417898479550583487073810751663078510846654417745186775346733873049085048573405091144803243764735352284368128083160496419175034616632405262119919339057255624851321175416674546076023231038161618343743971624921220145407859062957394037788470908419034685117581479326008849958461057968667487664984618340060394727027757919934028803449755782271659176413541681380972431996050759013908298711644526865225663342780724513554796666580119206533939801853069114026696377318040485209074871527713034207494188379078084701026261367254808360596303522856251740214942263413398495727920506052216056824619357619061923164626175914765183818962212468498758924844012427710930931083404423235122670389264314712887862685577282878225601253675949548702670171107495512082812387370627948504110452177062539750665671795392493512003076898070754655716864959593401133265986274406191319226120840915611479091707613739251825645676215659066685612582453322527763182073606703132445345498338540857632814387521934160514654220366460007968893090102985677564069372040122040542531216153249236645747849921514022892618939197080442316608079782458250390630040859131613922522779124362415728354867045368857269037561386011521523016697642000957794219419014207519196514499436339113294336340097679859456879308871367293154075956269266023695196871405288263386596642487757768094313675488793681520511900266915926873439731452674224935104137090076774658009736767339140332270576067009066115963032098069789514104363687267594189488803923041140183475902819598480859833362342347991264681770917990243629864216730669702965149873211053546494828617611429317990163216663864349372004136342204222881848635580860086319089736619309999731380864709572235509075269300148190182880710186308280355727434477365936164250596599511523507939596410259446404124451009953748184950040776467903267116758941353495749499726257971369850455031131120579764923976221974546248397342201903125206511767031640332727795841392245925908824964706493513655586236560623513861116157039832960867696810389874630853608672428724854226223220603728073525552602554948450973494438727126720712971248956407987767571463924390018682034532398312581533743681735126632501261847058564549382735349032948616444910542533175417792561405708892702264481980903307662730687714864624916416824461611270714201165601931138696387712401745773463808643315278290187839473809877256639918768420906188437870720182954941031425091846267398315218432892744220998429138336392723506450861299347296404560013945901228031436728178559869312597877790089194843641117164879506320654631417661287068779243482558560495223372031625487357190150493090761769693200234403163462816909094358772406940385564365414994173453870137837259946053081238322246757965656695149651799427305651473367683240924537644520473500720552815842937223075457735187562821588114998662923081488327905372910095357582830122517716692375893704702570942947088472823039395943797703452897291160020452631640009629503697129510378914961089420208794926353933341309145299642712840166624503202290565242799708060560742812735191099088060946827067106855241712491975501607365253248490852431312741280910556295053446370241121291860809198812834708693581723978977062871201403112113610890392362375331565390978818953168585677831451110030841118474198846508262399225385090914172529835788797985797768383718624782976709438052960708640802047109214059163869382733468395278766327106045121513633675352575578062480574532856687682658105862374696226498202049768897713229655650724394138891941203771605440266417359874213368416366772464129290677202616440333136063521265193436502602815141775642873639033331085330486778796295397374391502890243671710881160394399947435685150413886775605211815880863018243890721991133494109496540569319151155505602025856557376628140697560726613891274697160256935628252179864084413015533900356905192694789340383650568658292426786925441241568824445172984548834582328726189060679168008662439784943623952048322005057486851584953459992856460340555598488960004017571701167210271798061541683210036620182650411251395716462713245057199324071731138778484898600591248080411029269276684969209596440653108971212690496769192304791780722751791353721472514379827720329851179162704853197357453089474923542719221140588081064427315836707890928997264099713519654565227933167953932052781243289482400859388794947859159452786266806700302704221152196407327445658700134894751383502128358329925806613993871455491296395903488852375337357908697658741643731728097299588171163335815190732204732099104163704274210246423518255471926967551076476986091924931011670350762970058254178479405639164899719842880611556561999621145799750394445874960700144485972240885931294002622196223057475882574961532446395354977180465555196032806376038735397201728323731565941372622435233619923800219763968710794802714156967173530409143765375008973865024464953392885669186954497611539278150728798412305141363891029399167007660988803380478834146321695855993932106157111781828395617732759283054094924327749724936285284579243266825842903710481781472259339986543758741966360097852627361209709168593927413695048592106484131674076358796220408296664037726603891134143005414523268336680264199083421072921962229580802695427903798526931247788563626538786717320964401351725557548508893638233926251769863215389113935714580112662410115567231277595838657527563264506334253474814740017715898012553796258538523128460138979383672767532079952596047633456910280321402447916116165141545524497192643264344614744566443366358603580930878037984625866076063699789090337497748614216632641747623116523535986024270850081793803587400837677065801452023554137014145149142171024566219117694585085094755981549695274881237637099640307865019755927703493601443424138666257862166131118841657140714532108784611623445381985300027798289734274955814018887516301509538145562296460685577411149601592083356267681965986542566945759871755678216127074501075777318534143881710637749146016874403518993503435440468034999305076963896693277504011256895644274773599187323030117573499878405404935638257677419613197207414831308157625030026923273644559468577017221959025671652143849945357349849864194375860414880718798484432855672049836166687631033601223689706311005432840477075323233876703791037056238550832350958346004505413437453862405693458780581456958115278131814351436653501838353516893830989911926470928508052034368883646327878792522999667457552323563675850229146980334535525551436782941689459264081298182378088512128606023341312716841504334683089057383213423435201305165458212064464202855293174141633440151782334274412253656658723112465077850529117953767268498760052448247185568581875116575715030890745317295770453552736506099554926920167427280847451540730521354774454587300576910717109534428891722699820809158575330833948339923431947472082491724433160068110331539939655906469219960063914680799056306622918023410349171044972301483958906736554542306893429970838791370328581001173545358087763879790875267699031566074003711411693194916723696868630623170202186750150552184505710113531812995416272887541780004145619261851388538132768787391576970517858475246555830128705004077681025649469343362640195797184914696869827918000486548277827688050913944436379433811204148232538410178528434717987126469758086315556164593822747715275985948800321999970962943963053431142580263557804610821053343685613744735691463283431871696248880265743143902551294769044765977691096579506267870390915769416761400168890874876105723808437091609903317036381768984233729601975068224818135089410640360088607678775940382110963269180823776851733823175875000601805324436565625838615931005940737971541560534871558420653641401543939172086037909477120280259978679089698186524991840194522000210753778481131728122373697769681523610234194978303889411843185407539774744554138549093943771202897536496324454836052718680132140766265240833265393533086584514778491126296186378287694514631293079094262788149419406381867922477204063080512400187856294910414283945550236295502664356980236344128374767456727708714154792475924403319589923417411227207475899428445502474696253296713070382084950037974963715544151665382717934003512865341064358766752488848433640873285286016025574044524898319195459076192812640812747564401110228864338824349418292103334643374641824931012104102734152414558642595021637155085359249548243704966121574086366326786947346159608706318410633992045815662720557248766447513269291259215795449761004465061737449494808314606401962045633004085812772450883932451592833068945173187382186082380827761657935286008917129759745325282275388524358739483161533812999942244423480961663319892495015700737923027543358396775829779049401492543339001858709769300869106657131557189530055461185050391706464005476602583451090122339571224248512767960288496306469189422679066602396559917636616307587528799359202788246203564950641894788065397981718642249900647325583016987998186184337846434851562464613309363355739041438618125710676455750222166931724297764948057008576876030194047492114367713284152134964801944585439454164807958354047244429642121491210636533224134463286216281297204300635819978161150066308913994222461828476615117517447930105174639474355274270167784574892736283217332947334051324125972596755143223349721877427657268440809348520347689346587204319675382792752021470214032778783201554627876627499656176732908724724775401073824804164982640987098152445903899450763946627895414826543335852721519680218435166183470548022505202589237694378166705615597593692381767431560475902817150491983605717251712751221245238971710481382822110914601889574060660828112095510277718515797350067602478583072999323834174256173175725333025435548058485787970303449473819108096954491286917658931716598907043562318882042311222682679539875805671745415641598213818238548941656995936074077142824001553141183098647016826943276637468980267945904085114234151315042822119205539841893803175224380112052273356956714566332608117407411903574900778271008668105248925349542522401629808071228929375343183402488641845330140040347472722690232040532676007238776074771403545551522295442174344728102141635160143008479040706300000408674109146242583424087261532309569250665483705684071142438130932557057844887357219871086764545336708217945746878042120931488377394626535430212517627218668502666737789265734127604715926793904149839019838648203679155367990360867126210698632718975668330443246383456377427992166077123208025145182645651233135642240767541850792076571685673383980527276179453289289425592949073170776446878227979992561541049734783022979274427961829242690040298212077872559177420282097528270125978578042160063308500406371769212588408790464175834455778541230164261228211375558153828362692826809870477001109834916609290260899227159739640609288279978787395000345969697827251934040269514771801224058665430324669997052838166037153392718162399955399331441463080615026187137407717850779694425980841872248841882834689627032006546659193202298371275425213664183553277972337601338731578481974839010533928362122859658848713936376793236492798314872392791715724048785383673108725374880608995866744226894323008464727624659284059783035973700122869601039119816503421968737898358784877993522881470023563540586777489105940545095469492874137213704982611540086482121222911512816435017973376423617370739244057394536202718549306890748978878467392112376845531348229842266344694909645471102083086088384940747519370948951449250531622556111832799658467876492899206935835624900668820036214294360291424920944988118493317457452283427328031946929725166034089099696255910830003866030452404450129631741382080613440258547414937703530720337335722058255780656906940363775703591539465086052416685350444698652563404226783252297238912648602097805113997537077945572949979198526844475894636841308723835062203958997419825652015100451897619121745899764435338566366888597510292836648293721407170417286395002890069276326030284598674786076638690429952755325009409700772318098809281225356912788387601634420762880266484748803777857771088794955042068211308215001592056809216282769355410193027819364165105988645282387326481211086986423607641244038780871321921879679781420773073330559883008976382968315471194115174934576931282548982576037653162922744416475164244780807491865604863474668610261001652338909430667894600967384652474061965866571218264587378004619407330618203371628456940485632737576076980134721086284764391399534190707539562301470548724510989069730351561878442371551578390381237779997176798449040056059011455876872572344293833343565239566771542371376790361162876819630002458004405147149433891973426115792828341876363331557102273358630872180546951552359923492149659543563350642458131878717585265755457691866935576048662060217885243582308687448970418295823304937879616007768850409969944234940284466611939082464227872995956432036501528788074049924487112288244782118760513168881451471833933207705889106841370338687771474947648900246568391240689837278905472910811880386663134247952831450032020606732831635829329066762765284775787976662572688029276085253760858081274604239375206658528838278170448029489123896539377840860230535192707863038984502559116174131419556421604385767714695845315607090398527787040840183266587107911613641506365135636096289856147432346591937946987278158182755608607272210684116096351180311003112034317616857268800651430921309233761480513906708169351849993203714691033794134695629888327913789234990247871670312078855662587089820198186509555483213734227078483644560111737657081397997775741168635155605374397371968492029050313115447994048763216948955634688013395522714010684501181933446756053973405900713067785987193924600386830483799184977890314015984623211321990972503488086325467127642017960976922699074110833038697664786068953590586454929322859101758337233804835430423159733501039027729615500366825424968602076302593674149538694016967053373439677946328722370488192847853415909807383528969610018216398863139537715937439249771042793515645140292456744343663364979235347003581979837775013117007119565924516290538731899113639870303619721874545742063313454067266312327237637580679723610970515576687766059687308544010022719170823596993730493494762694544349662729703882037047527532884223158089027132054948930147903832228826813508426707722471907570516856041088998678230958538010721450334836237154456979056018790538130234393610570329465130339819595464612141898759627032097712384826610122887855660787119728724796642386158155334506132347608977314697670340437256392475112351522758457489047553908549669180906961563077349909514608341803975719109118677993806268744814575983715110809964997025163421245517460597624513531183844429652895368754487379944813747420342051730289147314922937032528314283276934663543313363089387392826842643432395990464951685767468512784539204238234072295680087458896447250059330723529564362259884328885834114583484359873877996388220067261893481261196561717196245451352225471043325716236590752337502778532314430926686510193724702807735545960323929634720445896703216274411696158004704519978927587276851225617524845007777187035167297092774470265961394169768507863231819483064805644340381624066278719673974474318247615868189604798482512057112057150956546930649644231183582467922632231296215370287316122039129138692732302867090292335592700258350984756528660276894831895646141781542923703160557648994201868658797765730430686690653528563896284115283276896280878247709293456343363011435810314231073881148149034706593113754475975109216569432841941947754974635504180225279208345396847113052562333552320950769236704488417277351990690671730520584737440775338074624167608206191993872964775571466443084311066354339291319424102460115749541447963382557118605483608637674356810769809896084786095414174959696797951549118938685789524428760228323860270696138771480206679697060202673463979380082355333570696274917183184616011029779565955162172543685670052297244639898649787556027334258477323663750090165289034019423051715049847170704918335993615829512945113926164415590162761276395892821799233493506719929107681665086994842567876850796077480824895144238030038511252389231111298107884674811221799277771667410152294435051024553197754516514537901905839687889411077898763688101548952287503879282244548811124158856539174799565581545927779623459364031267126093125602928332574250856222081825416211237172785700940002051055302979639698694482977402675189103467753297170982786016956787024935910132878300625806647657086832652555276198299562534387337128552145182710462638357505904805812313759184829831474327017589201406079582570481095772468314373423491407440107014204383119053045395247105387249735423640693246512419614277196300086793958264188261164363253808249371337358561678467314785239127902873865486213604928931673765959328194656617092329462810324525080984390258812016713060338704646507572092278061464942423778815103824146370270321073837610328589399409505485612661879552479775738794671285696379849758100712239946767383905848038015368939273501333969603606701902797992309660792154382852383301312047280905029345354356368261595785767344835137619059361138242615899691621880072087548183705250777227933118394228531671888966127340503597943421467754240134456280515301416480388173772410943649019646196101785777125423747697395129867822387740159582401232108180733121384838110932080773996103358142600493818668238741998568576043567013388813354394150564288618764746974025328859492418325145740491697097576276295722343231700343881541257387501364465971733507445143271229966096318641055918043468032331039290562916109074029544790911233805966255272106630828059771881152685033041663802318951449469130435388472364911808312203675767249259518820137770168374362998631506466633135850072757607719643915716217643573887967705802189765194310441489278092066942229686232338731116940616916916572954993811110514946881614330639877723155236373224972442375096911037271467245074865652303878335393416136428746094144965011786165646669759921831204770002666288200512748209509229637900304975884885937969999883412025356362906307457898066537465168017633555171576620777178420667735640655027167512049887603062054492228644749424158612338805229564724930526310336257665785130303211657855631260489988580895929972421956908977595578822819070770306653646494091700681508769919383594139568961031765031275833169798097203040374674171669046769000995814020031293725501795149218342731408276198622255677568162183873715867921619494354701691525132306881916733654057549243382863119147017454480456769453321756866468817604864165046693301441237971729415231100437609860191481492441368389627222815275311591812315929275631032800295898965159963812308455337874122072260261612149576552063489915467220857282249594250420263696055395582279524512935766131275206817237472698381712355680562876734991177936849042057664118872368279982237449942419504060860435680031423560998597257190528495444217169257966896788135685154081929153097519086519631402530990210449421434551645596082520680734304476222742867091546361005969706203012416926522806403679829516501843463885811008559450313777283678058292917095144081447200615387334995909148493095108529999408558499056028033310903171327285537811655611060874400051611775447383965651040060508271534916276530287960278921248915377389055572343120629907206030459482417101247460082551924647051862416139599410699095838253437921556389604365188440789644036796250576001067924595614841051378547109678971628228942748353239780590177131387426394094565772476303947039551045713342949134293528158419966698319484492969670553355798997338116554702283046948408815540367937841450976886227227786140778563079502602438531474977496458321988043039634702109474979932167158466301280224033264572415950857464234413559785201607515574187031143627032902940789896981516154760029462736724076365711994437500811799100559331171434070124401766810705687424438675717580432844601553564978478805187122094233016203578509955085009854344016607097179872658473959322388506701434294737244302895979349423084829115998709816327270527030834904435919139709057771820791278084067325187472893043893237086629299097312773325097627820395807543413059940793711672464460930658782591864044697684855466666227979973560011064354660299752262133493492364864081654773334457467767182226585109994205574467045684985105777239285852219818462186413229755458735759301791520835683593771559596570489361239147644997270911903888979264706548421759326179880312932192252621651952752704205149248446847508091671747368567135867053493245887437708925826112861822053602403870715337712666436390359333230113639772552446739917793905012329015343501246001399552359914098111331680495554267675753982018921928910560908816622026763550711428973385496900883288840639222748094517956971355297538653545665725051420022827536637745974978519106909525482975324158277586081009093070286617589133779440434031089127205468206507238365055522757245002107655417746519552856447226830502131764348665380600442590816037293423906591919189108631465268199866786117171941697992048064362935731197422105337098770297181033703023397900805989483297629685996017849719302675105324512920652206916901539360910543449805255451031141212925895839559985429351657987248140372560806121345535739752825135734981768791420860226001975147590101886598976487717414679642948804787020662412339918882020785078472777035293341705944726164994671545834310292270239493016194963498100172159550907079275096191347526709327368549766953501402311139691017976162255773060247039403684873491456074255742860369360868185210542821100508664485302137639676834488791074341256515074855327869654253020047007387684324270868386362589826991708017660693033601069981692902751108069113729521352872567106222329190572104814592937660525319711464762136812251078140495723710190032414156467217974358233718503088699681003067019497078083447810871663359478764372563201370241658814727042517162317955542632292899154947071678660758372615339563443118782705922044002773106752917972257938768563833030313346420460783463044586603643028036523166935303105637232006559945808262013147623595959944317662345447298183296474525837448268335040220696813899238683938233806871265216808599003874983161172782012020433032859700119003759595081268770599132000107194802787420230286065440892787198495977426349893303421924094926577463181135477465674937437494813397541758216101594456861620212664697285976266477929714406722459835138717797315038794720555171134535387253427404706643019194899371071000677969996515826490165919457372842194501487568879361594941865886134106793039462325118417373017860701968140544026372009849309896372964241459988953076990361558195529310814141287893412774457503317361837180753430142363378998911014777676783963136364669403313810554741023745640493331109697063384164266524723990541018304409642247764249558819768491927796947559538746138319375858969890622102953935574987656449786645419271154130996605341380550350735821145181775647720707428014556689562301127563817086463301936172707355179465860574084663252448322046322702365521529123823354512243070694850168791347248287467411213556136648647693674089590502896374551867809936294810515164753018809677976869333750543396254625844666066968260540048904182275352267481041909535187558823653321088432619452405095956144501096479236190433468841105601777762992715015097258806986141374700285480917619359713500785464700454145250748930242613673765942154609209871173123785891377373743081605106933847910967422736870655821619476893035317366117466446045154512206527914559639674194328938146343728425909782627545665652888870663880002069976613182234861173465602140563043217298502270920491764291068034343611165187833178010668899052398416633539878146219815236735589076991294190997873919920445700044428921866061068371686946294277113114203865845030663045838312266894553628425446007665275999963125051592257702938986625302887190197975347789774565618176527580435222899252679330945162365637788041685379610129710082557389067161738770359560125182445525316574456476582981992200980820966106625133408076724094218523670964962671432302353959580152858799831189175956648464457380467210043408115625711898084472947946014438897152290596103340491660198885457523751887500868146716436553461921174094726747160960042597956890993648924755142718781923476704990478417789577739664057093628634706374748563343857284173013159308700615771555079233354987351088668525824882362426584763806998342407280522017089420097705800439511673669659007680403607574934516729237772849871020353439263691080289583694117913063968347865786144390607965054400865718345958652247787727617195933241451960028833133035703013249253371877866771128700068382710908846034442411238700082827044034617325473508843908340101413253471248889385153895401601767124207411396976365733782135183821593148277914141143736414982070240030647924576892019315606926378618429526088887109477909356598034098861415531933651084695252625054367622956351113857992330001880382723783792176642271467787192319987775310682532566068773680620553027999092192172107017553130185769556174322894065334924174138704729759076990799017815461659126980691554381094598419019613797676979664282146200072613747393362254845215838886856831145156138534637099084974410284665656905850987332541748031191722287727838850580094993659385270527247562648366675210720055114674790551447661744687373706613237003083449438739832401256090334409055217959688740946686912210917074516304576892295657037705897282098438660427449351952357586752232751966969409147241446187850084687191443601779801698036609127246744404983424866040856641603437551023921316569569335889218554437823320775794060501445891734406162560646760238057261087502703288881461755703088807577213758029788000655304035454313026625117707015502537000056024874011787025841876773389880336315572475799466096920781851864722166134807007236911826865202283117134997662901231983409163327286983738535228534605191167094411338677637809256782607887068409293094509721683476001714445862509784363905832808667003640286097773903383449512393530597710917151019943281357027957680228110592928618644073986170136899202118618065241813980968857903164692706695041318160460016760493136463694155414705292192711946541052426017645876253125519024591561577269211196457326033058775217082044159037587107137156849540925230714156746648461419266357120341002237647703785261442721826092785008674891440131646122610400745641456735194719514108684638490487071667695575998384166115878744889982725049790166018430806303681315216851490444130353701839943382322913787095138942957126161854837723856569051174296545034874072436457059183381125561486041545530348116113107938648053360888585136638314620626595544201511139337287059389324853246223167631056541358402409461352278232821379333988559037662792311768412068060831938754123887281468929268501300819730522726184748745524126815549750941942737608402222084919912298266556910070568698399286362425781901125811214675341416509436045942969409957827047468776883768486667350565870801034577914285718946134325179163167317663681840140344873686292220271194254046641476664839321125414281103052108550302526445856698119974757582435379729632284890143834684272292020983526565993706951298878566127160702680276469535372742150157453412787355876947004900605787506506014922925690869156449419929042510535254574723875013854091396025003807929424786627744721917058927752549254746341464421022778243040899729260852732609336596617724762486663812995791697483006450044916086714384437491781713212805968565232557910696600695898011577837649085138268299605670607122612020667513865027290090178719206026952467600691280778698041720898546398719785718881252106653415249261144548318255369262374205624763201728252415323803103490206678862937678309613130713724185791018826608532758498001510779983135081848595543421549001238118000492289329698847734830146090274569264627840917725981799976177702866651775346953659739900623141439693387232183320840258352729633845347011081946320570267991268245816576974328938779531877488109617522167873720070924280242986695503053464648779319870016209923924436082456281102603773110013407314198722503834645129878177707164678906525462692118090147544151102558602731512132775293207043885859963695742980862549026660508663823374798067733518869052965214255555353335200225850264142119548333287633216334814728600816979757379037156739917990220249255671704081514002941955044681211385519539681365948169883424849461184271696312630089373200711791858816811104344009919529505685778170816326858831912040232004406829977758839666569232335211463169832786444988168316773334992974214707554494398276489822436999880691537585124273113256522041354337437734175366796815524603961969700448404543808557968443972225178949781915248523869001552180986602535174303956130442557431647192911102660482485466354025427766644641925030323937480081617155645149517110117482470008088790589414491338093206359479176036772246623689820696974074699251595962807448827378875697928109752659444489255445642234228738236390310761668324848750504672186834225662252887308601391951462812650399055627328604336068461367605864423973399842117461909108247486216563920848464870833021985209027424952198333275932784020092066254449707091063398808180260703531586716673999304538608276859309072858080712034870100340465187045360321200515051678937044105015176034870747775816080329136764633083594766809540457619149072590318781153261298507427007687527984448689023754256308358247411244849418168389686228709781698204202698811567286944839174602696754319426460459623490961834334802313710908107994059262582987239427282161419318356806328563201354122183582558139936926950279673085540879477209590840106808428232094968971986516224883431903237766068755578009166045505396141096992553292136633163774673185362701547855448398560972523319772166205731288783124023456672336617903233725705142019243926895263083997193566850050643373837476365491892770983906693159405225288449064213278941018392918330945344322682636555236080620149650651995624528773210903480476452685586468748933343388415166148273202712673101732139462335115614808811459300913647046197003611512545406723807473635302848319316348138629909945941948478414166895959163616782647530006823314406341705331402302484588572094355233640079965722785979105041682048870552919414809586744597967085372874405996700749256843706293189723619806704494582205414321475996991669632230231278587455162424853484878120118250316495692072581903805642803709686933370427971041393349411724264961044601630817685675318726650971364520086492852028808454305675407570997490642250618467660969737220692014197394543794684425815233259490111862191604426918720651445937884890678687953547443834652117228695779678515976905924846463758781595276978515481003326029971343340171317354608639615911394501150212422711868996784749182652360905732867038547231499533537916848800927326067324495845310540405637208207139992889328476409885256122522833928414502025460039151599660851689115616808616802918888955524613728248935792204394487917681426460293476230709412213923073432089842595295909953975036310357710719633352404983370529225561632810192629585732052101113309796555138731301578138269797644834933447803730512877139586835361218234689279808479504957818424648682295890359809422649203621282070014052553510944207063276204696937687790192322019074738275106099864432067472784800198091458613908519492985333659811628974175556529862343202068037691660334493066593056113025294319276683890668202335738809055394644056568340264006826161057232975936810272255991159864173654117187075207912198424827333282859260408325783790360038867369314149395576512357999252073089144644716889243886226055234706934049085754527268616538794153421384863471724747158431344104050098889294554208967967743316106869467366515496897573141510686039646331844829661820367010611867920597808336657449919464114354495453584880179499598241177221277802087594320320916667825044075183129823218448360411280061842620252625798358076722412841836547867267547639437794130083584185420552368014040877160748643587900618666757595335799108220843157194036633572747221251655217376544939596227294637638422924685242276552938195298729130288124040755781034942872273638750881679445865126944374958385383052873730144739387687414739651266339321587886546621398274601583105497861408232594331805688328681811610536601093075668088698639407276796189396369682553861331373452651171291612355820135254742976115134653266388939632171866091525935600542662702734096858385514877713670152172139758477791426791594208606659504883901277444611242117401752996084697833839619618502573378081645716298433164115586478876704359750220642462294323077222191639177764016682553381186924583682799674416786664782042394369782186125985342259366340273978780613645712269152679453873929733872878772677117546279906411503159692756734479792525030254505310668998355539435620234817850460330816158564846814136768768959187908925362493292282452814292771989228528304382394324288777022272855457526407775664955886176498480329010670297132577683293369396296754622500949049447186668578884666421724786050259817726966256505372544846592194453135036293559384411270633265035806022331077358259713109398023588257210902053484756207482563481419050545185739784991347948554872953427719859454579446344049856982518442452118406787681415640094120679118273396401384881277561950883902271552176354387178025140237197924138226275397375179132757894589424446296574555323082627863182712375502178341390279863507227269299631266737083525135621511049393566302327391746606742827737097394659533086715828890199499412301778238850229215129450692441704369744101801601955796595038280419674376800058310871583290491791447461688587569125751149407887462395324630772820304719834936986493748254051881470733403524992150968452129453900095675629477048995366000394315386772749729098054168333114211191859794245453626431039991174034441847951950648580518296160283192431919578299821340859093545012249368385226806530165772404833212115470837001032490038013976892794789471654866053483458671735998284453039283861548300663681819304075223144125944630346885233936244631741979746852346055590233475886606369941146547818706084677827646440292989118292123319479288516734976762180706020704058882200720621373221768988268245842683109445565842960346784135417268736523093543867226494884188383275681488957743835397230923162676833941604138667138872224215623184249683257513069431042071288341397167165395230552784639116956933319600141140191186202793219578971215805132783667687237185661186691000471396982702474096382454782912800879210264739972776925079097624737964791855531825701368502649458931282441137970318041579480256262287898122761152825923858123928676649018493335326090019238110097617748847900332765268111032784973274094269744127857691682842255535791184120575101389053359449533670253575618461058621311260647587666658555366478781517404903118539976995320828840880152075153445689207286268425604609106339660596655017033667880438594003719617926933708998392470862780378348795462450664733584965657011407908237259535852760252117268517017700666930307369677933047684999367207443665297705565933880002866193870954365370814160223000004857034708455676751545918147027521432159405689184112248073382127647592860165889465920554763059937690505978938556517063629476955582030556712866437100305116866891691405597595349978088582357988818489824152442026883680817489678724630223051425339381614305449251638802639723342125134097112011784506354891241424563241137562749186608867579393846691068382443228771875104352746670216730506890446009169141257924781763056388442868556934854562158689989424422728294180798053994249294419963006476227409014125147996135764143828822810264439261673560154838977217305380774084171509325970429105684866945026282183303195004586958349455729318021408475068998291459940899293745086909341739381272429670912402840122778224864138307452528006516714114773772636941620214684659887775488531476980280596658008578398607313659720884485355488823063282851714246166868928722698073823478268624345755616946038628729711431293727343340247080378949630820860148319918561447458491850479394516266817769046947234882027936430189677464669932494747173214278870766898845990768255756801623546282106032105752910109202143205463922593002568631674668576243505253261578796769786805813859992024953583130900537541307418234976006446283781444522207573241677048623946235086139159842638064366627032542240293989050997232883463870139534640313693654740146835926899326006510202417921798871718110551340578380522490561319519641556924302203654362555373378370141234241919811127108441177409653919894571089623781712970187291464148351751620608089909378218323433378659759882661458304202179788657931018775965342103127084320077361800770378034908351406984664878917914667055890407284161620346082277869128398822915228851678224498887227634562043320273052459216763007768320799612683430987297173627251145616997189255382236435515247447078575957864940871704112729834049511500216959499271910243100235114825991002242509556227737842115516161033238617150944909231600634603344259930126982439714843324739842641886572082864549156455670013096227511951372435979559352447566234113158894961013277568858967231699033608709931623897187214041166709380768826099951019887672383934238897213664300284876951653539776967049365593736519509132145948156580295477683426422616966053545931114866820896874719893811822249175856913095610953015845678072650815177122237019763055306067517375411845555941289659963954287063676155872375679147753120341480798588261805956651005862997672214031502385415311373165853186677165007739867079118363787437429944201358610095000036869458368793326181151464749481600176390611844132636146738013859911723775805582842677943140239244113635828341705961526539137872869948460931261795154766380567947480065705952614367996967588032300981716529036394328481349695217584472560494013425669377315916352575948440778486113129063836469989044677304137700174206020053323259934852097895584391951396140682349274283375034547635294191462490425013407293942746460693586750005513026786960694766550081015254503634927002003106889123328837223543858785178035530726254941978262185912238275377110719095212863089427988836843231231293742424155767600920005277287563658056391745665023689205999149661673045455597938855586147072610002203246224614290267484809498268629614502332968896080441225714387421406769636843877641692186824368368566376194463070137255927865314316850964314857139602987735519748887944456908763573704359122615416281084653374367726648805332967842896666165950826610908865493479669223568691111625768764741167043150149506856414550773513113965221819455289043130421828453131480803503550465138182010356958951723529502541111041794643811891106219155999977034866222064991992783603994929639584139694525856941272335839690750492523578484578775438310556304136462101947728785855389596985621222036880418518331270724481726182275455842624285193967607083777006642395272600075888749508982516848053488139937644969677180683085919363577234973021914674843660799648123076092462927411578918194197854234918610866964089734351014301355478019009798968078261185792679383245396882284557224668279584880157829862904100666094042903944496028294475968969043134680162621500803454845598256221039336991899861819841435341724408423730523104758459381844244374311336319113819680241420017457759620078735449607077781441175274671979702359147542644604547452403449226536363295289076722612350849483061977691283175451887785327678756591157090061520938263762971136114866672168766501699887348751249420147115255132833073444390424160188541266453095329678038136342283845947044515590424305631759344434438879658355553138002980522699589524862755663036279684527006119426629013752418489808620401967426927582405334768673772300101645983266625459265112868835428229585789693999128887850142112385345170683078677553842976612860330677709391610432099779769562269995132464249425843279503350002854928982501885452966243319594733700656491701499638205421567780580151801756589396430268664639003420904605695465813344960576089469806576689466453462494942699228132469900940555554783651860386464673798768584324444401654513352440056145143792200252619681133259554500480692037649201092292334957298710824009214150097671242860515650666548262463439161742661848673180844888219796844718605453048470179223057577123781558655998755312939567644149567765723640574027536543385183099556738263030462895090927191231940405211895109770878663898038532547505765493243494388135706934390237073758950450055053724206859644749272544454803113036848292348995787963891466638334792177246534756047528522420388857749506237011662732761349438079614613199037445789422344585168888507106623128959824110958648253659685802684767123758810146170032971552012698938015722831348158132979469095056486620528068932681805044578230524265991656298804487986335203268838940142604296950327646003531551776465603470505070639061592077879759233020556069313021100206540022427012370872949568539785501251058915526526433100740035635009722543101090101615636421412522275334186046433606573775104290346423254784387683541844257648603112034530393840588324004519927511214810554620309278098309211760832303844895213397773929844189921236235181781146754577533154266832478681191225687916621435521772531046548841430548220336020861543296438929654915572939132870720756314516258811397713942618757634524651373770930125443061174329662309443858529442716783509139405725575540338707004779224459605727492515347563582197841950635544179165755914913146366464704712757169847448308719964946107922466819285407078466561962902835323195110061853935694373928049294886442867708812138368007022156222275601072229882768646619060169870760132107347744755273898483573479054444473223633846076916481011533465626756943914337518838417128100051000658751636577655634875862041227097129536641169010666837726104152790250472868160396641405165828870662391735318393226911694732483686241096804362722920015092742576182087958683842285771093593517570427114219048070939738864453765810200506710618795923303973717940691763055314722943173586979996665711008807374572280213763997224315216838681858178646467668189477920200763668716391943061922277751065579434966767189240748433236975378884221619622132985971652637063692562389226549860942669422996590498439414242462614792619463050011961015812975398805237226131910854867258413132993212101489007362588012878532798010790371934562296808591758085149084034912277880650709562731187243981237716819127922705327644382777066571750140006649656441808288998140652354525833349518510929124001139408418837479822551724522338326550261523493848487549421473502096819570172425778204896313507557551841238021427103329745624137436076490624339976998952304271543353836588681926656799055224670829361101854592865843114346905841275327307967278233885752787379793167426903788118036465028533165240647973661019443190733505287995912153679380479660769408711021650009564274028108222946081534044152174876161251270423161415939523025158610973268272057625892497611124280206715423453295563285095879879329827978889089791093157495028965273361462181156839897482270957197489878991791024730207499079634150125058530168887980072853324959110059900896720437558757119687158305430082354687779577957634124564318605798261016520212042206922103746634598035821185901425809082302166918166891334655825061321386203556466630452142275483373438998399259809214620909001131798798312381634751856393335051190268803407577659777431291042001161829924849592506968029054789832306526250473828455103065549741045510460372954331071624399434184301740910346950216599840040663520210140713611854089708065000298543784657660399659163297839983814951001712438093691045993923856712634387313555361776235620472624063156242619622343088869959112993116795704562535233133767922893025781258231486130624393881225505521042782876374717479205429475037807122332119365126501976087741659300392075084166964827541018061040054746970535171307064135160450062524405448665591460324488318574388078694884794878822714123516556923418259988320215564335473484579176302177933182091689728690675827463922443354493450053749655240266580369314611032804696268951565862760722654114786879235089837616196599294024912825605026770836856639137563719824801317061379232971888555077611926601269178056663227278601539359773423641691527421429945261381048464297717765016472389653701133210171698041511848064646263072783682523629121267192451000313448395126656040325686887279586620504786412057931820173870915486054931567975630607383460317400476121774077108068049230721467787801915657948211864535671316088226874137241891949966195767313803117674174643580484400595944855772792043870991911672675180137959619025436054028444296197771232091954216765379044367640544320468670862271776040059828532162571444816287898335828837793448147749382002956139237271710615997872598985442492295388819650095113634059471276158539957257231236491601044415965254967287109472845095214506795219325512010960099282170529403881943807209201505273029517715494868950101509877245171901022208076980349063110715832316283906323587709582223740002651486200929094549111890061499951259193630261623077601746574994339521706328254986386285079007030980302567663363623264459927157874049438977823721706563800343978853852567158850124542407116605291597748088950401174314688487820877405020191999644505621480836508520740340273246703170627288757974869298024686456217236323416531672167218539697031398396403173456335640880308324436807082363900925202615532321100258327781470435033466428721905794200881306384596120749758055895854067789757092705388399259811150214963667321555457066729583158831150794073129031227915026845981623778243176080131354552415929359559797457866995852844483541896223301220922026776797815145048759255725595828975174918350549684223553019869178487773790525909408652862610284024641590733224617787809328452443173514875118611041130046879365767959245902226207112935071550465238441907118314661274723389424561121944550646160179844722526725767700944301076358569821225193167136912434778299001504916031803708803000647157844608860051058442960066766188433537854238863835857666419625608973586283602861925541380441246412607340175265532655351576595619104772875278729226904343832149437287023832274760812072632863087275970169952480247793026792905321208000968387053925387686837432463803260692329606349916420399245490279411090640238368392470812441546914108837885443222275917355597802817759879215736183223291911111141224168834212432016823532752129239509005374172299497592950755975225010285295618160088393154648269195398612567245268742583791707590674885184097429791166799653626045411626771500266807787213700215096709768470722602862214312996746700293564055078477379278619843253477588270281699492600123800128531751247393344186355536563817755765322795507414029834600615629293153393589969537289522458734167857702499730893898361045211011004153074532507239841809063892301309365022389574608898952594491456934702274388697990317963745363579962801613610029575645728345463882721665592088467349551287060202167072918155449716008164489694851832797945339233395768175353976598784558563176422038436106336134308441511137721076977994611441311778662559781893608986511039021071625023152671451099035929727109371045325609112860532543070263649280348264082635845651819629692199009494410954289333364451177409249456339196839597446897266656874816305366268038694240756348340038184474178868651491399812284852334586024836697248466255152297712416036562189667828545721572794971645461334387663325934941288637992118775724034927915401255777975775224711464287880421451648416113747675231733138528578279008415977739673918415565004160579637033995222714092888757396248885837934430767499321059448693638107423120621378242240329671306259977251405925347422335395472659934003706585697726853641436745119437596270010272408170539855468320452950675262264224695899242571863088202247734221945856678162646913521496872695982774287949326747528365255875019127875603605913052971787175719175838433904128301732912552843100093573424047973519110354588670220073614844886481597902044755472759668864130098097655488237623260723510784393793078204112323000533920647135878902639805049455352717258576412460030905712577552325108665896073855071633307448707717919132109424563737380452427381190074479774351383265591285154568940041158865671573886588223302714147520287959190063139659414143747058905050243610298290963046137837522125139241561960545407774339557951749011730109835649314618177616394690434853318827208920267426950212069982093805661425215137297143754796814566727785279129967677394847965381656150494523955221595490850454372449231001444324521290379880675792451809092611883247849161994997417399591022866030824279730709317432546116139256737851592964771663947986585715938732556805200899289536786091193476152041200550750133435803355479051412561657243809993811522164273968593594198060111924869876199882934875488419003796052819061077230540244403036295574335544813942817156695834854120123011493944522652900199001455318354766775075753201700440596455897146882879689686661385805172292090676422350181255363210038445688480308871511107984178477719076638346323914666457343960976526304234224334191644071292355959056938264443749445990320659960524433673616791870800644473805393627936205772021448248465539641276651435580596736141363573764029336908641189688250483158747713252308705562631799850957760279183604426749647403572091379917013715184260051257415795764372078672453151514375139966891980633097349568037869745059963562592113580434490620675229646450270010057914286139939690109156383329593145628866501854463237005633386379515441728501567836573502512078817617640435009263515506879741821455126889275913073023310988748215406476411857633477522878081234445521748276777841506928166705071922872945986726411090874963292456934486029481843820446195715567391487843392482356758279894199939621905996636171183063254700396401312001836692534579818281525393616998702607108483445724790185409095803516070468114802875201986501477474368813699615676658197684244820147688111987555485852402057404085621629439341416367403792275748014524183874162207455687550367552968840926090546237793015067796009434438105535547133454705267752972536120660586196684505189229481648756592848921025725010076978364251344212675107877418916782449943605102302543445828529638649222837036301905010527989668305739721900460799514443577825231519920365162503164645302663680905765014666904847259159667578910328459289996954660154352231659954305440927147830493930843221777611029079671290950741175505196680701844878830955678284938436778545043080576409924374053724342632258967319086228526961354797197245705490189558665905364585641937144683317738300170492075437308461601437346926089912354229299931342444034446249150483678074283720707846510195723580788089596162817093710325396013752372935003768819228923267273881617823105016153887037030038220425126593546783070896901880813549137627742018692623348949413851373714049479636735557229646749018044988888884022574332577013124709093856251205891120179150342291836031047837069183605157702482295439314562788384309004100606149843113213905578250548141968572508487776675915532362382536030759360292340268369025125455839103178871979322201544568929294493269975735457999315511460742445014232767046129302452180210964033156770514220222489284095536072605641568397169666403404010894616709392789677899667927525787089653208045371714677250006702378771670423918363629488766937537902204008167121599784665069817252926166084355739406463210506179008228867030851214602637910628477559915254380041396269165798835986785278265739551288299071424751348609466488217523084598208372232707559687885181809668089869432081860561827850466240344579743890199127380686991513008432665599960072314681672486169429432778877709585839295719188909649595841753027246060757728343284642624862256524000780235835319903624110762294777732154121757449846861336714615750324571027274009249605861916783306143126643450532002031255632794153280307463523198220744993004159655742454265655968814757081716693187900503268721712935878699245261073018507396042728511690482492939794839579327559684908408323828870388448432310002138353141308957580908485391059978653324557149428072662956350881392643754851727658292751201509110306465801364780726343076482191885187041704123791743553461584809165411269902865901378763094097085276898839006314562756065398189517565485447685638695516796803514936266070277689561624373817059518514553005704890277509249893265723941258481609635661118958671370414885719606880797205470971202180306554454780340774024747460671202867294871468893797386716659849819505694203934102279450531773216874057669347381032168563432288722857983833233232355721812653596302469537634022969815320246531677772621376313586165489809251921770993620693011801960444270988757928107872041122588095913607391000583206903243672966081055798872035100198295221940911730960978534072940133729715837029163584395720425825028126957316891315453009036656887929572467462270815772085443158759766429334385935501458174431805316237640513906121652845060098093423773992235207992354586727551508943837908958502814217786386539258636490603093656119876820325243230215155839256723964946977169885467996085582377879845652929170749161121173624660159336414399036871134119154473422189790953391269630252136789361252030106640699788577030394976734465285852490894716387771125328784608942178439753539058397111317682149562434435771943420181976349264933919306434889071476536999430595811963939838609765545962319450939105827335614377414000457300462938342958259880778941190594539392085529553291977518745338495052839876646299374890505148228763263384277355353854765646618927822908555217331472019228463426430694543978333016032175256656467077047104893462378976399672820098808338565795211142201197530811726263012235376235191407231149184604398689784792053819885080397738492986872838142307061583222324193423485200303953185751327738272274864342366189235167968292294897469818245832371972620984523681737351941084996268622209878296560227784194278152805186751422061687159014759120730814024261265507178750167322604220516697093900211131721727741836012564179459878206583796596993662965276927094980176434278792760838867068746200306312631154588567000913273587700261006656389248127359024779270833145110723380813849881068629528689438958995484276098037777784472126391688156923257797319575889163968008431778754457394700506301910005749869536662328687307650885803395526560399202183574593573974506223960537607586433232351972760585180502202710175995047852372436289003906992200569850813588721042307674712369201704589399342254403377943653781463480724896847099732247949518092769400217601052036062082108847308422578149872719676617296146920792837251162170092095355125322113763461936513930751863068374990933450996303638646702436961017185920263503343549179871911564294439893716929599471509391449932600985013937004059179533315968269138767971341363262348547093182317331506791788641145084987607216417960100833144339714638339197072804752555940353038991873948605201719803955132447240377029560677114006243441198269617871195410235269804842987843204585679955417536264275503738447158993443320700681777906075633816453684151208061077142017725990591786035705689334001003905070767979966716600142493507053064483946574074319276019762929662240943166702808034368637741602207054007385696731434587599859270277855659561428962683877927810141805028157094510399660626804274175471965637668858142026943671123083049657554729965345388214091072452514817710229181882594368668115831295152600427072998265448108522620018859954616557743911223516305936827726512032226590058671612775479926766740460013783172999914061622302247859279183481003968138555571982907211464543538879189133158477748204271796759302567809121332794655897467257525910107321920667071292100932399177745590747727203250522732189449605303717134600914691285944083254045160788909027689037749560433399761497064594945894033590538626123868103832968674950779189452998995402479786194788303827854702014290449251720355093725119796184419386735415007982303282652872313541079860643991268950499993876209427680954070704931204909559868000569885364873447218189522597692344145660979286002626780263130975252060537003384547989656630174584423848173644356905251257711096531486571673360413950294684733394344359407773391035474403663861584640430873748844817259633246161253070560894585834016467991755523584231222905864030835172410365443214768610055132326743317387916565103257112883257937095827497104449480518468057411384957310065610551906528347297956131882500044175471135313796787353153868783313539574714504624043275805884635777097034734761346409751940782610648888924760520177613972202975437578365940919163536384587239791048592288040767890265367443049524610496368537067163593389324756833686358834441304467552934090300890684750408394203061694732693258926059596986036612019371135039515606998238353904687766703360116370318844406228323537381603250905975388088445501727506113839857930157382533148902966597721936575859921893509336485903055589495181856752439784197639522992157373732929849316006494942925441835025309052548700559630369584999175233105578152010080936638976702315479494369171420298920683512053931234187524366333242603717347065896549331054208876013482149555770910279283533545434393629138786518168549656434046916099749393583781340060827797058181790269088023114826277673663784006784263671516448112991573060765044441689125753833978923206352132420893563319297279509681445987031643286432724101829830904149150210032134970678173204961101637623318065529893355161877429961249493681187024234358809665020817204835241465366938361830375882722490733575008564497988076185257330315512576948854813820683175067551989409960250812094489706423971738194497323761453162543295794257642881662680386155750599787532888605949768573901661753417294445917840247048909049096645577070559658339644934299977979948851563633630715431080155847841900613432540685580543102429050856098321274084082104552206976493574472102496539527224884506985078625157492774714665232195694686397100857067794372179002272759801514819915344171811554999357683961807068514992705339085574498544737798963913271686251043292859535707182983635911761930319414498664597286308056160844024559221765495225756130556913741573908259866815534467062305315046977508483742118359940933946270414938247060215406311611126791979860196708980184171786344107726089096562124308882986916833211265582942674741872049835230524886117364584004700674476453967952951708325411764718857892759486146904676222509091014892172842975590269170211293293492000942357480996736296268620533500241800368532476060983658988563064232074157908523690867549192265384164886724584461873259309149432345998299379530596893436383983449822632769082620791783227532116784407080400108089439664858660948073930649205284909671629047842846577298109435964714005593286717733461336593803521574345804075769070383938916727880779416999647397738383873705223468869364667030999619483996394569940066899895874233511788862884369388849812688538929027598486677099636397542591908289334845857791699097408296474979079346473816240202675893307367111795148791680267225611092405178978011859004465636618152976100641498318175075258293440615902998250543477861821714740705790884943571213654912934551512806771053624429759748841471220520961716540851962571578124638430900483723929102497653715493755887672185166162831588736250268294214433249729148761807602965884271038325443267486345258326595889870350109701729801697989093218996636813843590251874997851904781058606841020238152453256201825973841971648008737062740536842995669160442104621934066071577796334633268234750776002129090960932428972186650724334374275156265330448548612325208408570501050211522536968137148181452179357736323314526547275326960770103156722055694773046783874423944866697765029584765180305806017040825733145884702632054580670589120789769513402227187604959922968127451323568386771092320695764220490995913442173102100326316857280117655802124981382654513405745226454447827401306624241337276650631860439435834237174540270044011091999442359668924726689840718960683740766139436605181075954741855423240841828885175035274475591492242025577594312574690939569110378065180969289067646075583312324106722819216122785302298104851852198164351504209154435732476698180744850597356948126179699788362197244859175852560421956112857123663857056303328164699320925973728056393614753688654584990736446592714126746945514003058806480848763199595476056688904081180873871373180976648151918533566983986316044430363532162214682236801838914949852817582943438174907212057953598730975735727171286621170617649862301878752355414176170212343099795336849769564700196505932168612426172374770445764069900397629070434756075580872891812247174713893676015519682265043512036089837404486700790770156534483737726450683268866623948560986335350378135341183874281521967623327994762944772524542297003670808008384554427358655289774138691428293033208033828954430128604478312322820976408991884967686756679223378071767345092786425276662780587436477857360211097769823531837682975799096007053474190105955195506079380737982338602262134763767400336496501681016549855723002269818327049436267651598703662354699258129210675818928798175362818720918110449486374597245066388645953965275888097528293111095289908641605034522647830214734859779258072751998762676314242087322790153640100439769200982336476565010063728436136665321670090873037306127804470415803309133622216962011516990167375305641078969992268668516358380388055869305349514430110338274373528130971770829517574960639570723258701245675997219564083933374320585681608739226484717825338795182682130070482923175277913758651198793720192528339325873454338694443690371806543643623030662247078703312832030977469181601581940126953975402426514547479261071391873149459653395342640930073190802764382669412902722367447439299304001756578354373902387968169091884667657511023840454394652003679740175904634415134300694374563944441132629076388154114692270056647349041132384238379306075030378848592225936399432735977242778876053160883208622484325494274860659514335287863853941034931882318061169576626833775062944730453409568711504889305674906261127289646644727955970988650071034368889781167082729878132362256479048513582602457403356994789764124717134328244659577203245230095812668530230493568628834249771574543090378034135292032865730621463552778647374586539762088296632885731555379655777263897369619678824992943835362321898163116426263599658556516316861930192575705869524921552965068871184898348379918273488582118234236711983163912650430637254894615637364035445983104455673401075964832585332313498674918153318419290145193492044573381723668612718624970053915002963560000238962246661700935151900053622508166786856639340835435849186319907790487271433588982411333224207963431824005113914958760604103850873166367122099965660156997274445686805133588844928472302910681884498779698677897568034299178514072077068454710643906513363421412572567503725478888639778287115559213622304212400822808823957761853250694230537566653417760915664744631006767654158331354744387941345652805571821578378890283909064833096570421426190560026834188447973735811431463977706603882091443505840207114822589274070020091128841394955476921051636927222872657625182074378327293918701192187566054753062803823091715173548433607475239867500890915193251296459425238419591773829916824654879847966894419711785874263435069921252332903638626542852828810325392934896693555703425416372817057242408881259182971217408029271359608940652035709065475672320227609272083238084994044709777137143790445690931092059774565378870282344082301834372002089530551721985979411101355013661787191441418256547086916245297570742574661207520402483180422137978257625999000133838025604894093357668366976570108051690770618012153637817147790546250604708650886931767210156347672399695722065729456195973935592872590325364145485702501310834363273582946921084206104358066935783960942313845798656680175841294358524655433980678455562552849837874685396026719339143614530520539444406439522733557318227163630632682272531697708747514945334149674660217068593455649510314121286458748619878548029033433215099228540087813492770894216497731711204807482931687370184618621724980935952436104756539853692720922660401348354090147106359847378733745698568349189496113026873403437004101850092930415306901777005068358465173316936374718103746576997263200809357682940854050148775176629138629704431691264027034744194698512044608392627251847055027592121518874862762120689429355334149021805336596111400284767165653442813413081066280953488069703947852363894035662896417178831838853298371528542575253500643798054364887348114461759786967232019482740043898002755386883849957134602223517600086678815885386845321703484819688211346441252379729642245849162436915409667681364271265411620381962092651786897417007727561560924720067306124354594431398088880511177306135107851369103011603462962838411522133489271359965738840003818458189872477073290711844926152441148191585029172764901675147561788314024561113451386298635461763571688952788596771344983157061348722667752778496187464741891738620946403817073685659060260446178355802682310183990911657851055226956324220592061829684334214968985844043645762435513389469693420640663705779033739102113524338313350837199338307457867361808260987935455569198143748434275974782056793967120617240232526547622369346807090193059251204847320383215555536705894590308471013078195690964714143145665999332322577088753779414760644134340645891797521977795996157009400096487769742801887384024956662944775781603955819743403946677146346546078465230694917604367003369860587561296746216628113358542583623098496167249397062979186056260331237969621642022033012209051605016030459405958479024473741684625052481965288685367791285353635217700246654827501041377512508625327297161691961853523098070744145399554215491578531799283547655086612950412235026255194619654438650388328599662614132798160052252569519639741063350410009953134129513986350476670983299975151933986760459239358559012178746933306662639831820634990985040996531343678726771658091153521254634642412424187903969542691198637443891610450164702834418876206362395038903924493128105306860865542891121728107927734405012116360474811275433183502761003235073671304043915416525029131317623840409995893381874060614868229172683448352723424554470836880127083770522835758734060314074844962544908313237882066081509274624487094507592494910590199535756764445019475948435475932606314799369886237395899158833272416172872628759376221934281068143082124863866205358694756968267582496589040454071395291938222889490609592243969494237634644406441308782833273486272728314057099247791531254404563215119262541578747511369225335963219948299218210510092590338514099690323176644992410196072842200142948277858293253998504908461305079458718006340602803731301337955647850385019764439511924175010271425368350067076543136029327805512132264496340751509524633096031041568424935509083306671607717543884333658726837974622127663000191937863435302516831919268308524476159795816583190273396068404872595831912850696494394664947130952486219569145579455023461543080975646749040940231232524445490582595223791589703732642152429914750661739043892028720901714578621548962136015820238794650945325984007429303333964634049094397434340830123383692321775608606372232680423742454195593722365289714959473573432045296330843468464666761205243022797719075821193940574720303570231048385749410200501086317565239328950909628592156229628989058882518022182181632368173011551229783437284187535714610694167652406071016319546902401435611970584712231088333942144418310957740367735189306622920598391082715880878880401516259395118231560515805697473979724276844375419057346048218084419070960422421768544090736138337521362275726149396882485644175477323220123686244070797133713684196022203448204439624100047494609110004577310433642192338059646265292423554959479310561071349580128239000779168527861225163271108960131048418332155943413876563452475137654106107664444570711322480670938758777237751543826176187193319637048749627154878314805063651791193667087725899768696243237113417303184053534865432610431592054292820826910104198284460729667146556277081134812378099199778225551391442353904029965829771992327265889221327825029366023700946012658127833403795890977282038867552764254784617582786309697071232833658728303765723289377950498782119951455562422243427326336653611922121157760427053937299392596378391349006984766375229816309873325256379276373086674791346254089630976866425142960880204636414169225862141217824939989864346430878611896972670195874793704169606377056321511632164072499993150380323359087675470326150531372556555793813010703693706327443820998346154154922606924440139125960248373560890892125174578845239481019310939429333736355051863196343134052894944773896584591866649289204422470697439982673163832357691300182765736038515008856053192053711267674981936892158248202657635539940469968267773388447691374883596644151626830142749263634919379619742941220753105021873400935113902343726967284828488459846697955997562336668039534173889191375463105568515450454413563164632402387546296444242026554467779313814700074087968886333307420470891952229809777631800411569684548097334726683778291572152532682310597495688130594788346106407195494535720339957326408385677712413058662715607786621290694820104804828966115659592056967593097507940222859534551890927234842056116310326810738363482932287608338128710124262970600828570563291635395632022009760747316366524588689821834383728352533968755232933497465152675861710336909455692634994208652616530571617902085457132782973552449711072518173339548756808352513074312046795375770711225409960645403954990842222633245393134755411017547592392199177908042077362901532307894682216784487791330562651719870170628484260132370535034233467175361212106265064242486239974995433457097872162700931536714781718959110999982785553984060621812309575462083609322306585984788263208114400677717641842588780554835817308039023991019319665414148847400569930237134675703840497228446268704013966514693024454204490057006527941308579491731977131001164869493508508053949871075368457689967256773007492526479937711776643602133233294149827723337328464403646694452480681123684746004057584933940776552008953386044629717284884540163586961832383052547624630020189579143382006220112031647733183942607702391306130193119427973295247678409361749577064537362875875128252280327595175062444715056677711498030800665078827805919364156648759630343796483567668719580890205719217265413627678842029018848604109450835217151803092502542059341590192808652058670530737553776983817030226108771459151655690959437349762185523566941649466569364276901903488099449497547262265862880305379825758732910491367962610001884755179957940357079532652919241536527570321523111080790323056685520088191822370627964770114610763152823441640189526692027498882797850962046948173398886132889437849940038905772189434416293746630172184751749363656333015347597582724873204420064106540371763028058195217617543599441138818176513542162879871561845243392283048373554918734716973979572956651943238780689952830305325275095993038867155797430247542784415621397413231122691291584497167056647085623694996846021979203834987027053270413551544451685391396706667672139293171674618609994337996719255417778087556121246377069154685798033353601644365228854150774142198597729856424742165974368512276379080904236521592205826157210311045653553760057219923239172659475979250074572016808016133298863886948648177410041380692810460137204897760486293189797025927108689479150395021339139079262375671165880837881307025180681291709904182837425344077268456676424201359170414758350473093111797137613625271591836630398331527904903209663662810063296133026776326274722855784223213663630528312727191006270389541047300637607331507985401875853914366698666302926916950235551467353774394210407860780654787978684378235426035369935300788684758611220696829516682603694665883647636340775530570392218449520498651734851324204813036929080199401941211369715438198283415279097127250173800798305901767714105490958826508693964084352371373847555783631925645230728536866483601645874469066948373329430858721367203055853771163088619099971881638625702091322097183834209107588498175644389931850911888493465983430770715423177477408154119420850642111533906563065088665893081853785586243246671944081676021148699872470928626825094657567749278305529200449164568310021868267130121071872715706614258170246924350605635808478548789444977231413056005595084612114099766162591581297203079250574180272560966437630241206523187512899363467363070525815541804876986115617080871334716951129050357679263192760728207650635243448274051140766265386095214090841718952486582619098880340467659744960651017213567364387173450177257437707803406368758043100841474407175712901667188936907563869846168982243326436810337250133743763298900712130578693107113699807005645936037779725014462652292799141628165343005551603032394576192819197996504449591728905703429808847871192148998167188727399723724614140505142738551383444242886697991901614263264579113618199257986945635626262262876946779173544965270427799937633376391468284549655560177209064319188735306103376730853552245854714789262592898770796481898817230970846831209085142786816253432402712699261961806765209284179470980603903221249843016635842419113623041686733478956648156781208023657640889921124574055108089511946344807542713664309835525074598917099646687529103105586088140293578665425648110340905909276975426498432006094887903258798286190108202247967016856475569812348204831600925149388337846128077996084213293758044772620980899291850699098388325819060211674641002287557287516622200961922133330395258457755815025589478970957812953000434076839044241288171762462089264075208297901434190751127447766962640289061288759717037650657509733826102602551113594627516986522853027877013786358646938615694842011330933668818944974665812631093023208775275345479719582642581201151747643586106038847471810436934857314810464143073661290147295590652078011386673367898102797455730094939058902133345706098992944735446795260394673719972336336698954428792102347547161241995768247664300440597124387389092751080578733803576631611157520784312386070126729179490229998191763728110149046954297104398498828442793914459325684759534660706724414993210876494443260015066523528442785223565008550660023356548474136102017965320693956343203811106259563692123823402130369222492741604055637730371305608517700961653446400712291588522001469642680804089438840836042158621999204856492894310150725398538611550613463430313558430209750239091416787034566256976632609703113448024125482731216757899375157150253958356806555745478252898357336480967053093200851902708655180243850630184729364166008255735817195965648240270956602755156485103669941826837706002715643194810249583604579244744683817138670037067562809413412039273211983772956720011910185588136284085978057024188383513684040846764418175204783299886936302753960495343444908742608027834139482294934215445223967905731118875753433419734858572534797381006107491122158935811249185739639578174660303697431159839324759840444181787652760805283407524731971328983984750025710677948481979566275947170199512612890714935857206437229247161956371777684821847889988505577519976078263133868499720026738496965966993215633057385694847336897188529353119775042269774724227335863599589816936404454409650711509799376405639203658001528609829881591511234828448312801251535019413073439413314035280311445093286232664423589190432255550947032019603146978270848597193370080376162907590096016773286046219374219674611552931643898734708572100401845426999845735573131674832949670770760443891858451349306232864024378779081553227767869296665576270035643826679570419919829273140410536844340949186173521564116075603957994315160550711591727646441248859084874984682433004569471032613407341654687708479417398799068636770399612523219631987192317953982654022071687540436067277818793087227097530208963055925800587951811846351920349164539737542895588957420507587507898987972201230556180632734436243304177802629190901982873430793777842013051664184361267503119445951279830675054821320188852577784429138885802484158104556429528243399513653174753079789524116259951873822883895386741212272521236845397154816845737831100987673243420467960060545402272818466874134569960267462503735844483388342811482396486542616569779703995205387282060973217542375645187547714976432074193194316542845922747652134385969984289270975943099109350484917009306047037323315398398654576291305324295975692872772754041953836467895555345508879445345281246292458185485942398792522522445438046689970432857728915886030061163512727801572748962976171844820302145739180412130742276376340740261797390965250954463120305888025223497304459648575350930867669034759335908724267874918335849606498667201164414717065841958923923084225563247196040564934108475234508477856058410041882856406532975474320105398867731780439648337829568136869577402079337841836737609320141093466443054802988156965223173198765377617113636609072746476253783186138674081000590563127671568779042206059111868708981416395995969717664308215682201414839632272270357770022660361337609091146703520993019377996531507952726938224096249068141787325127075277315956758315845455285525364001946230825295688280023752344147638707569472909585118648629445258263241316027678025195358010136583883443601062698992855080656928583585583006866513206221705328370079716887953059129452208410708712946773315505000143421804194571271047168377088548748430463325338398702779422051548028260651934069696057433221788513921152581706764128217648294154662411792424459198314762004372251683432549330202464090469809313528510496979544069547544957345027827152342250152032860643194350538104810922134740578126474995688722831902725711134725128949424205345727133893096069006265325340833614532397434561114732376467396682805841033872741748247664298494948595104199452029361923820708336304747003074225044579050803778601841920303667501163695609359108576865051182563903686856138553940364088178713497789051816763654681547325604907094563943407861594478756332921242400700098925619142258952370387579468798368533870357307643234991039616095635413852777867517314253683682841934053910958370505222845118426783467490428787091787967241449306495453506828263460706165171744353390285021759412534213150012010718876737747404087263718040866049569806537150528885615583434646773508618337048638823239814710131950674651616297859176062401418581781585439085076477801185443993281070852648935759129413390559366118125998891374797050161896187836428296273377525599501802222761169679394502767507595437366818609442626401933057951341913528678189014451357044122491149538356524466910407799870236508116877232517765447807280746226612609623386374519744237155335922297082840336816559530373900541148022965184295101203751393552373966280568533790061531513115394933385537613108530216929507586806947724514014295424920424905402250332365417044477336991122562294269869757520692431918914293036550922588304846458715089157703908980630803236732301318435270633008584977329331310039577399205533014290575698690046475651141540596899752661844766899724427185291014865858654059284362900364399646329499800126577688185864261148216474207766975576041853707473303314370245558135214946999332105102940032950928222672114379198023133610025244247623686914816402924923091054940798977021892014617330629327467780740953286622131794366310297371469088762650755645080830969039166874279442321495732895322073628560276663889027319324051755922963388303630605775755836402909921503326923540143790617026015205444091052903511608592732981384759775434475618481796789746124593341084104739085842620074827128592677555726855510550800371043915158899920521375569069851121149220856242110464404241630359255967834187049539854639081652422872073222496625713061976219465977212556330388324263674752019866096464693211888582214718931474347390255060149295327645822123539737931035412520484168324287033806566007009403958291498761062360107880293076987475182860545340641907936793406734421640831126173047149499609668170165800724421357814355491590905398796267548610883795745238627168956004788987247761152653423957183079773779235867913507908280043899875207883599762728997887464003613444383936464776697279434496367294404168069619662991023225103141588147663508288055541967594203128386002194204472795104889209999702780160189519883989692032976080791329602231749721054412392439336316925588117845624066502304909584035560949689875201079400492032259577778197779033141497971557097289949089857990964948166791711821828270169849718391785356525386705770805030334271182375928572512636216192016282318011978108180043799065780099318853095979043452688809091435235148300953338731334825670285854855241437186132150796298822639572732421396424294863728656115014774051168460465254887125302173266930753520265733547111471643981320967187090403360083399914324363694522959871583119785491921590203812868676378898367117037414779762764470152381298999953512124167255639911285307908307980555066433951752511467827608131901490587279926406781523172955950296730323742782367643806584287717621866319619471866836567908470607092437317224345354370729459311707097782105053225343591674763232556433004334131879522637660581217797860152501601584922641334680637698869030946600811337716999782075458073613814265376515063803819958694837182565571663082101260025038691658543883722757999572581542703884317713757935680305339113688409220456276303017373060210382487578300058142373953498787311921840859764140810534210894474295204329858567024585290269859413052891143176942744476469389200289332352998539094681625066408751308932386267419833860683841428531964176368675873120288470588305973090978942320458716685119113281368272625743525230127423760363108596814580008329765274281034401857036881376030674152148901485609857419482675928325923713734969559048096105492318660707102162166697307239497342522123703983160765721988031297942389034757017368993931152697804324487046939793936169989686598000449626645362725189581362516574584606156188702777726978354933647305855146768579964696179203488467683381943855187068454778023038976497657678182862972404147844838952080260172943872428079469106285558409887797988848397387260888758367387345685698365828554789832124776006500396716634592228970340192097318877421633774073167553346710294528427869769378060719954285470942082548102750662498929697749018440763106097627971064421596356265509518941117133590392711006804458289803929458124976186003808631472002945548858244516633826782751801285774053905619518368871113018714378990738602806731177376173786306663926847948661780775162345716408764058324327369303253409079423473514917104859653919566830650806171340922611615499376850180228779137758309341919969681895573487214198922287673449291614067308857321131439849628667955991811039408342285506440835425623539699617624037269366355711243978030523227328824872286787011933264856264016511345725576887910641580511277196452041105036844946071753945601514778228246009825728081432339968960406974576671575630810326997091952778077345467915939685326486662846802264720386558078387447539451838284022252916493028136365892607042657078991032752429141107436030268817846034314095250966939917235560185921353372035810092824399683475190308297338524343353908462610954696972020202305105058703611430996585897326549748353161400813595125082129074521650101970810061695908453917898824120160992223548252103660200207317061958729817578948893481826452737262481684667829859968920293677347137748794481168876320034528573668551248205887203133609589867415294997199073974070003780666340900062017020482213756146635687220426369763430418995569996472025177335006001480355755980150202542978154326343958025169449940531170527848461339187810434139051317505050569049875182214606382420930602895921510191682666198982798758700273155439041827677998807870947421183223424436928585095086134577860184245762613691721519012311626156407942833963467854751466668723400951176584162307058996793946450614388409730238555848046579715015054596676513271386104183240566592027551368067667343912060030185722249707050561671924423162431529984804179076587947552280870249738711991793651971102775348215122789420937883159029818574916435245771879677778969382377971625926447686863729288884783049709069995210960945427514824452657462631494325311624562020920769945096089544310866809669157959296344845234978613023876542285232669591805713692433497620160302262156584553949362749400541514125483284469722424438282112292130520909397277335697538440456791537857593574336790617980544588449197752254417228176433957021917866381799534497877045683625878248423823573472019225911729639517474363799180076800944614588695231790777981465095863912205069569262796938275953020293367157337432183356059847438000069659828028272681689202684944451984409310289981744094809363016052670945077559705968154877870596532588788598591173542382901699354940573629448216518037278087828887456862506002646532912728793909663104241366465176223469892941685969911588147770235114566025097906220543950656295240869685194703445179692681690464729679642556550792516056981900431267669601226487944676281542005639980134325004258654319030706516553757057418246107702185781442701745916488713789732651312100603042241261306699910049744452734358723895187894963509663042308081139382018207256390389016899394592912931285428691323205646662139854474214374722692289577853749873747706976944777977020457957871621112535599394666979453397026490109667964788514727171492622619363729323440277919392685667610297798660566569561326679314564497641494521969612320774408412866750422834385200260825373805007280544953234924860607965016503426393702580956235411926785540776879985150785565088402688278830699815772463541125840529693820399364589262965515606332488883538200247894429744035710053465789941285108195441536134787455785359810517022724718949763563046715883411281098788032309704096574523308560606915224565836802632005467250266161565589641392872006302329150032063380216933081356720953744245779396054959857149762345901946414922845588879491629564287584240538649923932041114842155125903075090310873609303227201049980489280975829560113432043022741936913292113093238921214980606557140661515601496969806013775570221203656847882093357241439716980829237085967821600462768887392843292569390529375728788780991507272296899813404876661258937344465123008714018685409071521331008461853766688920794587936173989331820421197768562614905135454697654939883762095680924191967502018710714960393732374709413800749955040415510258680291307181746805232519803655540586822047802156538594457616413019698164570470586179682164996077400708452128875137282277207714554449940496249243394562663563607881544499645870562387394726628373312726738484539117990849027902001034413112648181851703837106569378608110043723192070701144633538380603490362148207067235226713954262053420211077337931967513174337411038510642191220612515138087962464815828993434023710138366273774447011940427638561193415644322885938431326119289809624349438018794735255100255141868257358221780861086684596272077019340010520469918308485176773952641926770266702012032777566204257566687273397029457935159404131034267595317321979375638928782537798593722228526599504595554219094470633763815746377959652689129794274081205541079754161663331852356835307440415385664393010107348399346252135074096238769967795779100286184233868486481910109058931905555916085913020194636824920972820019368982361051082480912118880178567671484686333489932886135215697575063492349900269289358855457557690114924009621403096208056494028130836739324021056437375655618585577402175195972351623909024966459137899293699618184072720525396744918456406458064143175051435056769956623635809907764917712578929810117734041247188828474795495111883430769346802487280038191620964349035322968901435520348415858564841265603515167456061293514761591096999351725529376039181073712492696264936393801476917682810908954344432343825973598569646955381112385626957426478825612872112039683627552309931458808540567999050486585622646637180438488705175914491216474328570029639142080169636120027894758096057739635826636058536080754335000928759347971640286117815642998540829950569271957490482102453819712198870054307272332653395114567477136580257227763761417157220233457563030453661626724545132297220749559246270487548627813412598814609141779117594805333404011395628874889406625385865951972736194906303808629640345657865744693778574086409445815066528654567968536831374298057220958461678610607141890116598686172816060099850679246385328805767831564711003487587318707984470864359834980326044800412446293241841919430164696819640828040642341491762908900585488264544185151911659134094534693505524181865949586153944470757037129006334084204774965391381418723292239657128413306063532516747001107439767579414203007192459756038181219546561311090377977348262838192502425794189626660046929625997370048210544580997937437339652414694500051780258288967556560535454455870055015621067350972830377179531557570376245591312349020132813840850136689806731912107939711748584124244435605391279784886578176128350102807738728959214535788921019633641161468049678345292571138548374456804510340262600583949014049149441698885591485572977430905677714378757450755809309375140396421302330951100363582910683143442641004528201248395732916094865950146974234271297126612075341656205082849329941227437559730177350955843912777002926337406147705069192814144332890290032111102776771893661450201655019780720170882804977069179790352180978515776084380332675169943170780276067509728645409297304379609066978433488762485411864516674598471230318245645347323063475604379447283370561583499676778665058684718777579907733693674747902655541510706245681312305646525837559024063349184380489509728613149495582133016885345840856612468241485519097914878547473760011732449983296390197068068280686731419081360231851686549874016068046848267826114055254100299150906907237842156307372515615870521697135684024204434979610974406311895388918483261415552816268553342970268133837232656158315183410711171996885404168584432530224207324398993399155372201724367424064532251140034698445688752330342718565824592062475931326791049850506216447728567702046635803278935274870490900581660497152878708989225467480942876427054773931448976344825193440436175517651577131463612443459715118777666184364374012370333095218726275480564500349421903637004121648797191779263545633585378279186398596376402224233723203958362605623473067934379527638997085424405007935970623945878565463096367952205314468573269842334704665943144457247635398017880695805564857609864333953718044007683008884026170615228435317759972484104616611292978640676912431452832838944348449078536818418143575160260384917900752743939686020723885107265051670468759636026733651403933539464802899035851881073396826091107501391701115817719907978779992499641586979717958364973250801738591304764180851358512143497867555645296022116179596178294645327523626280414847000325514169946935691091902328434443127620020681643692813532709232727187837869715168182581224149922996322409202003377681918554406164027056077195098237337768951509400128107004441986185061324070614472792959122526228064460385478011652035570764014061871635032789476454153678933010517069465688214112239504338144256684782157682960553132398499105007458828735449816014882258180152693486037017999726332813781164649391371654986679908475982682871957579910499029437841139602284506103134770467574277985841630516818985991882978610810028449831859226149382762787274174218693810885656002331724325660720434911895962816602838121811259197549283037447112074454953415037057639880979411513917483032812944188053511213446396368708423842913133900152083547998765478505514836482074156665745324870955093530285108170165581417672192016749868680507539272414218259480668951267519794239792560730371608522560022099658400131729752569772265735390350148071819021513747146597429168128881874123709073234343809141126792608976628965197997503835335563447085324912288511522368887636276066818822127105872216303912102771772295038930102708859350230313230800657457153328713635868341832107083034208461006823732365940704451862574263934551174755141468323362634522790547276893462611663465479688186270610075896484818259124223953276387708822635270102958543067199909115602785558983237679619018051344887413181915721357834078827352270576849273033364290190654749403091732370324005427711101667463472917191589750445225862679430399733645089490147182485667683242226973475193380296748146720800115982678719844042793136529044840325453804400698798974313076696539249865558071806978204815661909399184265483186262547970971370731825967240261692714229847591151288269479310646334677764219449407002374091739062887612816968454244796775174307406851270212403226581333057751800078931142647681697189366692402292249159439375639689293231176840933326574255212925135339984129184190340915192921510848395016180323302470997339898179652567882940248897518399617756611069780103495745864334881969591064845052984072621692750154922862405949265721043284333822699312990672490381355786832002390002534918926157042787608807234271763736688026457091959257937125636027140028987728738044192301425519060836251825938050799315491728022800861054320992999234092942306137361962362691731263649886055654631828555808517134854419543769978472584569072891410077037613073565568771695446835438552529267174336236575150463953639989130498191753756635590232740200277938052989698111839747954016845796210930190480167397328821895258196272428632965069351574003433742886432243581042833021304558157816537937458917858729650148725634730224008360823525587862143214578250985922349037657619281231627035185576471726350748348497504770512502770351522735571595769495649513491865319308443860286230836615972408132879036417175786024875565687228058907313596732735435921832263516238527154486294308423042675564229008974455759909979705729324880955715975389474910687799747321482598502462792149488426966597660688942134894001277152123122933368780058415189857849897919076681572454549002270444741216925760217658906896285670644425433348786929790858209516951589869796115329711369688341003724732926725350438125204172619440458363710649216440285458297941309251534367477004679727705216814877397653084852018605337638440269540083781501838098516484683070785036579811103158375692481893929209334637223458684802034174497886757146047996108913560373294900508590689588823810759058953425981785198065631799967241586542575394847480946650469340041119311660229541251283371069334763854305164642666701050184764401261000654297447332486883048900018355314759350650796044176330911230016492428492897408779128911969029638305087931920129766037339714745795097630702437893564280081146799121070702569022037759337697812287341581903701944542479353051531818414331032208151936821036272123892600211301400761140608971536384369903765355494866942100178434048312969629342466885990191058372155043306810905208426861621617007093598849244888201168135509610969273483653716672191813202490280230539320035173248749269760208131867505356878814502340767116400544413453708255881422846503919554021699003110002481988894818503193119681574114815103274250118059493666346915198688095799480243527370344201249451462948209103709408185147353775527137185274448397343581227066502166270891981633220178554443042139824285540612901191910916472543177809190991712186068895203591605022564899491213046761287727870294861013811218912917907541591880235721056431327253699212633459138454316424365258921646619257697108563180894199651607531442074932107627286057789578365193529219909083947271366800230432718355293968492648238340445434877383625795616340217105665552168576567456104745986919077791688126542516321312309769060568315284105696629259372712487594412856427694322805108117162916384885723720976133369296538927734575476306130528515944490115060435517182456621592658519100546426427501874386846278792695982222311431904770470557990843900145798862509838195125870401999258457900299533080685443078413738193704422173508994402422079231269326941113282383549915433956017089207524925742899431019333959124945353972852826749597522040506181408085262082156635806889237232261687996607325933942970222963954259396542095640288878837791777200620401354170508213023861415757854279290831731680574004396136694997653423003156783490683084361570296500594250140719298594393505798861656003444496512421414922011448990814821260067220942158812782419163700458812956323381271584164724969021305036509423380887544663245783666715382276101616559242897529150041974712257411378547599026303762259460324253812405662007598270350400426552301472851810067158874753575702856924606775152104012383718502890756196009321132937996464696983001679832991591197766280340501592864293081772681765849012440015608530359916149437422179702347084268509422785295260675242577385666577561770049175238886535254943174380359172458649985985991892041499391450687754795891256597198571889065723222270986866438620112199514688577548972010765878954384462677980290099230356643327582731802642112262746288744903080038802042091167539313349966288587195077269833618316978287016234678926536490987344802919741878054506818918196323219943830373977043215020746519120038691305803017950221090776699960101429601804962574823527739247570016218112749811039153931799680535410334244418354842185507489319413561903398064878349563251097363744436964306677338119963282608412083854140353662635726133657189295789122247175670549040493433683215998923213378389612377286925872268887219997876470823734834735630763924634028611527062211360853577350205243781720359973013496644610599327896943274425921475395437599024759268024907403656317905898904946846741854336091001720057663674177502559837871764151428468275370743621347730233837866179069890320809728210756754843747596696961871361207800471037705895917521098509995990311807120217115162840829079655717416200782163171843260472745948205343693834836886610404906767472059832438536787591580937407345601616861189481118756347676388042744312885921027656357204180104910264678305368158448045160531638573199309062377856692835777211352666946483366368583886154160662137916897258432007152112636503195209256837259189355078122364805254125228831402266651200798636345337369540030847767636116652785243267156395274253252129230590117992275291137140660665532818865047395353285244894988053326468170739954054367948250727042130272588858226364435582199163083521642930675797163458055577187995015563246108472516078493986597054090025727450664208926050207232198106839616642722390655293015194287965332112107164612414848080377996198003575339901710646351380375272464128487988080264850987449625510699832778859134911378127067147731210080084057084810387443302045805583355034910145367510912321934054422472854125877339525965274104399164104083218093962464126831877422719808791502869206743550502467373085624255677026750946128476438456450695008422552355462142564300781505032853023487155630860186688921593637073292957776759013240645338529217409457773765330849281339528392501052856313414248285858670355965485926848682413555775842937856587968765631643155771578071892845145410401715335840104298800966674127428570580148800358510016508533119976415021532206901304819845352148756321725619396718176226092417238734440777252281586983928437371592379962187393288366107408530131935945718141065300462248033317378651589392641827120580590026627616989892891322825624817214195351083224721767827982214985011533644558202251340592463491614286236482238757854626795992505981472368395262887932844919931208758295492991802178108372865544702476028430655182052078320690290801363933977256863050640628673519996489245596129563954499251929157702523549523968923624718304938524984132045101755734280219564940988615452987584925409277719916638873704704159949996956495981044127868815420058653691829386249121435775593056737413135862757773060344028445669364174832887680175085487015276110253436371794877123502430672110607168274701351331180787005785173718372266614603665025798474607015246887514418246765377458703454604780275406133001844967257149682947477304678359460677034796985745515623197038522190611472389629565729339302472948166196889599650470374244783345542134857593339982123315277958541464524370626260869543364252440157385628012300779569135871564288487136468499553867000446067859467663848889619931550920596822895211419637834437282127668778231673691150382010906475167281134397908128851779715066566172191334430785175602307774899005126170244382890862403327998299710862813329454400374520763847130563850925099446312430939313065558023513824972498552473020711703213466007099048658249575008926909243653094068978467678055827712542714085635188539622480869993375507066799627434765121276992816246704293152874000824033327536326390749173344386958206868118026870296359927824270856854307265123078737407167930220315528188597500625604364417081285682446551052936169635461388005402486455875255191567021136760333069800959234636112744808351180918760417655225851968487406024895152419993351043299370942494162417513511549167220782183241607426126791151814470190622924141005563667392259647007516073275630421861349168602615688512739898151805180783606037355008724007621593866880573975966124406869832142313134683659343399412736298737218161499554231417038296909878540065177716812371952679042342815585340361482792980663255276485646094617476296072450444335416114975193533618794567858804724037333866313871445895669036009884062506821386367154531559737272579594003216262670506451052968267383135771877664780961786560238134310599063721954029302352959399863699212063484191665950491804361591230795388492873167539729545912599932422042278717009036521655532613061405156507167954544070367314910490550759998667001988601614490586190912276733812356130101440258961352035722455624483931163565959939902945731931081936414798361478423733092903364735990637727729131578773859715978813278649438531951380868915016099795325405565246248461942249783726042772015275303865282311835545775056823344582850662031066931729057800204021435307902348701321778507962704850995095387752804344234608315217242827415724058170011176987916070452481679480119660159874821924995215479675859284870600593055292980811849686487640162341777599967830342478712961262661823193898247675308975119401083784590868892157710106640118626422679900208197852722386002832753601716236620123324226027450216507359468387077917964591310972484451566608789365715153915289472060039244341664601579093573405830277898325692432455852619175379112438750262362214585168550258912970667457972707041507962155718314709676208786188440783009913221401922928966291999277191359147868715002318674252134058240257565253810474640451190049143438062992548479719268985029962367717967125806434097734776818130043986438083709668403565890786321877366405040485816430335822405959665543421811297955637723827065590533392584091529874084530131643316773468102591165735998017656569335191794555709395445928446519168846797307005472660812077633084240254405310012035331581100520588586546828456494464359849467570537705697432576933419018402597794300690216308260188770458588229242747288599137062955532560376908692943784981219117431391428155883569831903672904834897837946499140051191295974468670862294290327943976986930978539524991163985660322948577539064860397223786757122345108078112622664770165842913673811968510888487883984549819839948502235861981704100424798278461404626067959069060302234285554168714102962260465933105455594608050181595557993027114978550446069105859047790004237350473795794502444227597441497613698912377517434151664685063309705773879102112067679358503110798929073487090185056319271628450755907935029616818204608241449694245841824947177810669374543578915530329084891939802244377917958351175654997533688937386763487115458694077067624717612001670729587635626756459778073103838769009638612666830864569606717964497236143220300752905152561572947956335902793983901072310831452131682880032587850996275215456962032712606935732182503446950616524620613227775970727758729204322096493795416659432555682666101460677199284753944177534730033658557693916078956555575203614112258753087467642664734736864921274972732068047818219762642772762891084140746987615476574866709294762586730411338607265734865404335372167582506488699302679146204492470531839681751490839390584656408795199729303320533155427608377976279295653402126073809064883157145155765232258986915585318188987586401396512031840551848803254310672450443118254175568241584747427045525677382576801000602007749792854702689984544917164009050580076204445177942749520148853928703449276925564022416095180634586210574721348115941977529732140311175938945030226353754570410085260403146810872362427321510394904172513700448486803898260858777761048552418836153764174871702562866134406279840879501698930583999695696362640307244663978254565336128533887187534254560996244710544744483319716194959461546594790142964484225251514565199855463005653773529497090887611035284740333601952169715987152518068876336637585520610187135452664802747164427112352958816356110164654510673766537298989422299756977236403308455790002330993537458509050205055968504021853266814024460405001420997853805931971580782785528275523204262631490658157159500563765309809727912342869056500870376749005550451335144305499597842787700016796572719659413966884020422534264400217663971285985082997291119884938049405617334034817888174129673883798518085510858602562426705982487089152318583989543564437182472724856448867884205518149955834277933216174029084392439949986829499115271227156336796638662706360073639125308681332340964685959496079892186971477602853132868292764740649004903983142230683559745988086045467915915279989103863113768166804899286895859135485141755913770078615683855099158498114934076667443890400625547128747483882896329051135427991820745531057657130166805981847686831205325498477856711312465994687962174990165116305816698501398211477260017611176481521561969574535313715944452528259486142771400894966262116158616119375718568956201833630027619946899719808288676104309755832225590183929995034784449648097040435584745503155093880406075708940600876491096149664251159911245267698193175819346497939557636959573118240988096957552997213990628824556128619474570358951287336863385664751709260289363238609710199676039807971182977422090717738932299575639171076899770382882699765523171859221155583849736994602394415075081966821116655013719466352501523808688851311853944442039566084215349395797379309301831045998146436145248054628987014419725709030760530566265195757729623585308937294822234927101883582745601885905403193553948297880195185046121511790384268960403374541914965616652822619023856914295196915203151712766303595332718643010796222552926869227495952827826633858345094178232651328624701847609657404136470588985816574051564768964212043879498654240558538961010205072723827075189936069500256423257808548622197434530881072407899714376035355045800043722352220065237531757763582743303662935696865520441845015449098241863618180619441469480124033287132851776840911029609998020106648234286360608121687651224231908203001128622780661557816394188009418262738571481699192190111284313185418846801276366434589991032762912745391443179292584802252624625811107928573174722172155627950097654510650535703912261440511059943721553609073585338407643902326604900779907144786525973835491639440859560641599494565874758724268172931747375853742281705367497436493177257236805926733605280840150565179355234647451072511650084417626156321183749518432527422455562266647484020710795249602716111493934625694565438104337681931400392580241315403154979976747292398317365349689991946332526906244401877978111601654630993841079767984655717954379202847314544409579917025250165504314924955425709473513130103000750317740903707982556084553276111296685911368296565961530991130244521591889656145743321553701273747498542726130892788261856577110206606712001730915239847055135708310904853692830572765069044867415036440884775608050373743476654530983492050232021306013101521692876086971331871107909566896535733451336911483458987110374212999146090260940685120602006731535098210560300393226202387476292228405870927092223768008949075790616109941562315007013389447502477311763395810904845309539013777069920604493791876858880882741920958570178730987181152421265815027587626283109274241775655306523298609673106182584446970967143195872297859722260072075539612683872588121425164619672135492957373665203780227922827779077634039818843424365768685082641553742284409618004749139850099786049019588468794037849014058454825660094215150838123926645220216968907778098329399011353660423444062094596937442137427715397343691843077506957901484393509275306098858523713158696722243860838616700070414300085034700119526099893196521826624662713283766179611382570046469033003532038389951629526318846878945626259235223807281371898978116945841428633965700729065558797658786860981449599880711836719939627372818587401136007925576712737414164225178076009023655200578200702642499331807820163054315612362716969171373593294424369369657971209182593090675233998960778323515382164006911033117923650916731417825099812397480955175462065142752311171048503289042708962026693565057082607053330908776186488506105336601071600474249146978699335123452701429697875178283903298259116200391158091787944661372517657238818511453216908908703779368340045144275648609355837760133252383135424619887744416497294549540798452688330071713114462420143114763051139911656167769653789700114285312903712852565758388721748663723244710277903456853729492495026499493949097549761704521939495323694490594503777177236346257562849402025913663028065867299736478734225611442345096091975748440276293025231339284925958699680460747187171150194757130724743691232325540682609855270791554885464648344621365474140948657400331717843133531545808600311647272057980486351153028541072951374728431453696463786729973155622517928255660211257589815064343360993277887897233205256574738851317380809785320899770662705408193675388006903364235279107137250743049403190347342534666830593326718540228963367568871460020079056639260984991763169989827229317479504717823561244898176791770882364805658346557806061004246575925409633356722960752428854676882342237513325758624239871838099003706584439161388545699884166092609407536274545757401307748391468623053761361609832924715774198267758596024314047210763024917538391350142687551796043468409236173300833575116791568705508727079723798918548641921276929573281718903074710089842762039526506738817439726444537471806476129115754853109987294764889504632095389958608719532346669072555282877745983369218338508591971899390228759957982596860397275012136092081485637445624351136099990893507894625970414768925559314989367070009041223662006307132185822044019466670029759183465755868846570280256458415070995903425542903520147411583082658970575432792431395825076878930159397397721774827917439651346160117663453213032128496837264150750105906716493948477740111721752921705245324629945898454399209602466988184570581961918472940383517393649726813979313515025160933973031281379961276289688086386666685527834229648791166942189344026225136049788232484230082624192945482495388042447817588476908475039013363530954189557337249589388993137890972640013987304474686755891987247136778465047415426117141108574335759655779730388695066819805861945389611073429067878891998704684747110788383486983903175365402508958871398405731597713817436087212648719350923891491410337237606264484440547471299984214333433307251957490416979100577163616554820106733948476989660534577724734917956719235602879305814824390495897262766058645888883833470339653617751461797506179083271103110782720466929342886131040384587402305159723101050687574084513568099685567825398445545641893171225300355626118666471765874188906405678304806215745996291971090785683736616704624439336652483202030772054537683557384397622058653615886386079640569749800786997636865836008751046131513645826987647352455427926870053279059213244652750543118252386282603813874316761474721726329079571499464456118704369368066031756252362783918271884618770148345417334945570636156092884777387550180903573914442657085843029986231043506599763067716104627674515084310732694759679062377440878300536433222702356932814483584678167006150969857294407234721501881454254509636755793301070529148893976355916203800134686306816873492526992362991679557405934923409132680025102238100532870932346877591090246712757902725109391321037468679080798657032502178744453402519868318278288677998610639190479601176080779578025698814176310420665368959862324784222664071880734942673567825406587152310877101232017783128816409922098468031388466585168811678652896254298596429920318004301262715140107254686984687874377298467163210221353535540552324532781486540796339289278476724667335987254156218416815172082734916587697466189768445927397405431028490353812064028809857049842869993827331849122146232987320443253412342729330448744122390467206928729633656542753648005950151645258750840087367194640903410827134270136900843308706061627490080620396872922952052884738071116736612709688667631607290296446447801762924465215412755414260096496965776116180520050749178661525159836450077524878794189282378945694255433170727453982653849054527829890867437105727691223689292693938168611440006762162979339584748810494504749174876526003220193063462817813473471576022714298298618868408853610903425418967829412146555921786655184153179911875773670830979018339460093041883733689185675584607136216288128385672775423650792023084410578598197289043114489851264886735265866597763304558519848965055035384187330645141045631428292364256469080190283181765181765059859332647029725843820680420338362144643827627382712174446631055463902714362680717160605607155554465514473091149760357019687133172735691115495675490592237390365034581655966275121826326526048689326171555723882322730133687391208251838243088140469714868988951577064525651321987712087574496206732112736208135756580712689334049639577229487938685115790006152661669329618869290837569490467528282393442326994041377982013075157125717571950681900134653050820097479223041447524526827446426646602725554024151970890968514669235489748001790165114381211707731136336492118352302148431271093550323458877022557357242186408085117525521387625146981455336285738460834984624806091232994315557719912222188827865427724403809236347538954481858057839011431747614559315433927221703463697726304315188135679281843111738428645183097952276957399395677749718450592982404692450005358749242647414778989252402502500230884844006172975711201080941577355957117859163242183878243664847935554290811063288036804836633941050427612267926119944843649176047436719817461578871922269461168456232000901716564583188512198489312152533296513492486851915541559121442811680707878295371542523699407355119885641925015211199727563401831676542682318595939313942561242719818893942268016802681257371024473723669010631915538034684588271373170223989697558688594837301839960813384736029747989991820605123438047618499987915377066408802330076798512101463855027866501635399934166887237690693287596464979747579954121873149532265919756783931722141530210673704947949375383182446314334355913299815686638270768883588050117539633131418165423820810258855267628965050237634213366827345986327402444257706766138612298154535411447545176650281045920910801881134650467599653870077117550924514029309595576712664162744035613181822240158000112303729805001621293298776947553990282799390420927088874380310934570369327330958615678879447829702081534304882536069987140389482242039054021131877710041319432453401310959612574951475026271101412274769710798839751530392086139107278587831610001375842567808385026535098827806708102844586641835276128269695673378175936364959182622702025532431192670070588658961663706999485457153584236690762786997347956992472795029805326282055085282373323273769063342227803125613208665139389505785337950088088688121668700878635644123702837267551141563526430067953057772254801169767970998252977085937744457218442530133906423918273952888256070695387251346140451745974745628384837154012096807946797361853853604508421578452712596081657048619778195746958848826662540250724764257018106449262684294466240476477124260453369086746634436297701647589490206324306927278972990741289339447406248078735319329567243164513537902209484314766811148387041776242237322879370004341043705656393328599462723424147876098279858962424240283981123730781544309067452696677617866630614564285669649916264366918053588638494011836023013779188737173201978753491791819764075677359695497706581375904693510968316896408450932616623075895730817870311625089360521703503428017580906991660503094988542247394484144480367457850250979262450719695744346819018582020026997987673018063654619862863726415833723801273262413300165521382025319148088549095021787807806622567063818578779415462046249847416018351007489787118708574651081535395177242031178156252950002157248574533452679959533858565968329719926692327019558720027813804564907642942618567123710724686219780437666991653481157619620486451764767071345745828855005521806557526588326031457223583967542785780138201836070831742933578718793081761136274775870500281052748013341787604717420361335630893739451832722621396926143840082974423884399333722227613191853027984615774652363994116128584963623460068489040899274714944904556060952873509335863800926471715592302651237065364291258858667138939881324057093112302948628222277732185374172067008498355010571154009326127211253643814252229943630036911432641189566155288276987802244512793805937699777130848552975080439491083380354439574877097011357191056584178180062285287630337502388029387040215222211305383216488627016364139072564544507179001009319468438471474852299485016256295775949161130542954077686028013582748652574156137175591747148713649303336538930313483945327283481924116102077933455640361560985483138758692485121062754730489279806603286599990188289820525996144240185362966975106946758767747805637513082366411235254386382407225462964740123575270504641531427759874177975527597529645145560888927080350426386430825498932407020753472376379839623135752829442361781618596665850966710729567753324985150047172776747232238012050492812169361479086887340442672339461074812224732787866927830253645113677474719728917179000390202980630751505800073514944846550460982916372457562432554873259978382368499421756237726542986477927409881789392614305317448884497523844306642229213281240017831081138653044873317644110188955831509903339794091611609470402351947145020278743086303300796234249883018156657211683153356937284738665173039462337415859144703461548261892072671508309022900372759062026442560648091947049499916364666754821846825249358997798624027710021988472517472500733918326286240083203752007435072309570283166598871921956945249990527616010685153788235892968917957376255591062211017647623593096475733932408459092292187720182167860820404188631351790552183527771343074689163357791394550567558764814215139789246328680264457602808305399505882669373013312166481730948902798866435316845352531006979906829428054355331653687306310900774864230865558526889564935166994475619758868245681242312064618687008075453948959230053769159914385696015415642388796083681075890898976530954252618629565511460645222436772530305809871016045378101298668133644204756699135281352840312122874306386969636547628879370896431571955188277307629337611196885779661923662405980950076321931791962081000604994842310348536176239091041846311664314577820872638421629754034480884795973572078090732326465891308688370482290529175418949485490677437741681782589295037968986946552632241745086995694764964823968939374282762520141813419763398495849837565713119669189790849458025962509615339630944279420238936972735397378598402512294775572887696310430027521446416453859124863564354442084803146549490681089962493728403617720076763979855745886956512948481269569917738141255253302403661350023907209333137033028119019440692836002999746532740285263206407708665540561825162779412463473469714747464299949436998167541462610140412985013847737929577823269230336321212839587960123447497386701880062551827606708599194515032143954668226898189185302647439253730451563807428715694640857802038870875160389677045405700148231014700053887503172944728416493072583241815933042653853391099169370831219963159140627345898611161620756655127751073268544669521424709974088511289228744081521455484876888987926670718771903132517735832448303455396055249618873330964334064959704659805508062216925716759098353945301922701010804764807995243819426642837078454082458086344363537877287883857622673575153023591695402387648350747740051381664837907306439077853350893462406493107097913978646563738731324239128220731532990120478634264695652386670275269476885538575622053367088592822857123483541147561107218853592043235239608537667399970815999600583093315352248671935510860962942864208596998160253119003840507937718136399211871249169593175195581692505674330269033360648841647308646479377661096389127308246130915902952230711341974701706280607578391483723364611956758082174680183957175388975770770864748407037034309267555165745010824485721614099117854967625379749893621406891329744102824959651899916832063832425678661682378629536834819352630427576087449906782154181976783575082223042265082214633894037775976172883612127801231242975618832317882840420526689312571361451516911587971769477857161419660952989731713892494497942885492534333421001147609075432253480595892484091459034253107363138851491593846506050270591006362491919006905129417262307678650696953152710912773716785038909305218074512828375988538575807896196032929999391000017686985193703900503325542217465512115558971062584087460979820012235843619376685988338169854107533812674497889812412556224410455682788982130992799723566041521480629868236897099397909753707909336048248358900082581372377514349478857599527839449562323316727642561441344410564272674077766313803947949740188541857832886131172206241059735130466675482891162451945813644286690920270307342875791879167213907831383736832034683901185878971390358569276234777939453267170879389781872320920827037671874701043308846372240222167658778783556772945306885676240319481610253764101722835318674917231925506182248626264980809983749546682588927325381019200160571974712848480522151546131906258470616817133176364312527288340993988067547782058476928001539829100898144564757330499665467908655314327510199628142062197724517681534556743157136367022281438386273060455783005271626139804022005145645677395241316600017412617078794423026965334849899415583983669592920986216315398289879195381080014225556860234004800717990407716615155614689853921746271476130264911730538742224437367205786759985837294861548963040904539957174096623699381273452372076698521650330856132116645728444175370091488980814109602602943529501248216887055465024136428642227075379878545478912972513979179115675043609710573564000216966148725885036263018195295073250849837089869976381393718923107391800872487870093332502648328025150311201713457751064599552409026245301346929478331064209347799110948105462743285192752206885018788404771956333457332930202870841986162657345390367440675248403382867570299977172025905563605280019919475121228892176941740799543008954041427406496820227880901865023174571829591862654945254031712083870552088215400428299716332840646061609760097568545092337364977406319178198051940737544256657595218203706994532733222455573562615748293160946089348701563774961035593761406617565554146828205540017508205436549583204267978373286270470887262075382491069095131125301918764362248028371370463751640413993338047488024806347612756493814640874342555109724193031665029657502945780208995421549681907003696680021218078284291021003964177870162830470180125772141578562014899592935776204598093519621128330967559771096034065159489051044222882019894844639453500715254976220729665568806448549856052107862807930971464842204828609613884558218625148897057561178079962859084439929550083772188258352444270008381439141651342257136110545440614742143246953884896184252979067376821360181457890615281056042873399951929391323274210087528782421159181647041961166728026213578940832953639005324268932392878239196797143901995657086688374750831957151571690507126193998828329310105648601128638807171485473246158838776097487393676673705406781319234647318035018996103428642302777296851040682588177853603740668809970129685404076802247842213970048331090095815877423037476283210625218997818247232107265019317490697453133873039005311613263769908047119161977948242148408723739227363002638500567235105152118733214756481098341398084149529134748046621458066547358680454705980156715475117214283845440427073472609580516981794188302845241410874551158904667643505000518052767372015527300923554517817991359685876724521365056432935134029033114481469350042689789180896118585852221057822905716971793672346827830081455996443935176807747870927040676112280718537414944818713321049410458239508515463659511539748735952811400947017066113918074436615861447698515686558254373016888047143836038394115679843134338688245817702756987418454662360992326206591367120365309989313391422010665607521475274356727373608170134061565893386697956012848905779617098768712377722123811924148750137139710474586223202403409966625924049070258837839771888454449635799783852630378448898588680116344672959192179928758462828271637504920989301768777621872969901226187568372920637735922054454746593695036639854283392173079847878153762421210709895409730745422716652399934747481297741925713413254227379949221940194042082538202822568542005706809817036265705888287979121636783877520663482120176027075978777352973491901165514674137404905616082803725984999405113319876651174791709131951024313676575730639312069178180101003361246315814212545070601847354761159135949071653403277772793464087838504953614920926433590575682927511895765093141889612974591883705457417817692523437995488405057836019593366069567114864420605242388036226510816169522028649313134299824878064520579911703468891966737148503720112862800583247269049400224635588515655299603528885445366367773486915721003165782383847233498522850388094778901526525567642869937122861313988783858989915398613747441739557617335448220054460143815763530338482147975783628322993269162578628222572571826936665206692465897639892463044345079251343879916750452601361620911660945388205523928741275928955850781239793568841371956935749849340494295420762993648140753260724786230707150445652836992863262557599375698307682468243707100342801485022294997833137612881883008820221287109499803597870515726920445312570073638587580242729317714939183897276342989480535605650988248822704298287039021288980840874737729454352383100048548200279835275642243546284973674655730769012434779838639146666255890196966500183237523554060437420165721296571851343871080104865925142454502446382417431589954564152708430543811043454691403085373653772164207293391151171228027315659790151654808254203335256153346180775802005491103500426203010249114838056364982595668341210709925082020518306920796796547499443463381984966021394498716425378366674133289452403738267437744029563229879688467701467607282263086578355582404007603599711018950330847138143569206793130859068465304167601571836501171411102749092578050502815896034065410622304876416946634849337276640788965843213374501193766299103281102736609665695636131646791906893512740242222035150054368192016927180560260161024963564249459577359492741189169014915563804662646607589852845103039887387193139693366255039515275959729904322963823015855243573706612782765985865577659646640423363859838415067689141696425676552142778070491427727244250494495434243223157099934473461417665530287293993655433885090161002226972055650924494159953048489734171867784992068608946076215655283420602206770657889697155297377094079982297134707883840125606648221183933309295390004137577016867302178123893399806231995032488657045074780373078703047381240512512837186211227490847887953507693823437973529086905326029012500141291064575979322328304364115287835641512101482559260667312274424586730935785007766413866553997815208132606515840928342796065645818175079075344267064016609141161827613483630786336156426424427694719457453386454371714549993987749887047854632444979094466282742117370985244573573456067253257319920407698149608797677379842802478368972534434051643323182898083903062907286207764996832661927034993531536368429646764040190198044823793173018519724326761721221241277426452324364739134597935397192896810321710045606806660127615616212095116290704060732307079787629719063906573874285427173361260270693236622391671035897437845107957532900618660523730987529117685015496007179402070520067900990895930786034393146554725557034582045765694278681645429593763173557857098619646958185879862882432469181006367276098890877446576978197883863147272684618562494822706856402518957681488327998727914698007723885450780815252675799534327569563316242736477240331501129724228543624059917244723509234009721841134280215817734672176924401413133844474361971412867003631467575915048728207275437397438562339315465681936937186851245035542672125080438620963559831703955002950188218244295562194537494990025258708866472310913744926906362292338297131420393015403011570180363140300896513330306058332182842248469132126206204999907220971427361629863702333270366728031980269025615321032889478239695842660410182061963493935963411417132507486267134373656283087680818253912065859572537054436438621281537360058620969082538864729882951372746904289002653682073465549050473669165828427155824736943982455656553249950718587394640268786984964561026461383372911160852924570375182962639893306217269269325641647928297805843790428220268153235890845074728307981768253460165425091356258272473486106013805423745680355794237463246509028721000208350647039749500564497692647126755534523691862400627111010318292473146197564132116096782007948684355560814764219971083667491502904852049887630958040808296319179488682331289885351119919023708912813587870123523575197347417227102271771457669408390266492593562607197988994119586044488547891811550563865475397028166432686892062493884862889666640763757333543626567495237733520110607890302878427397751250629305606186780749030674540585918659024090718014919720203120885136226459035287847535357235343383979685902610984277502417493595395003207304660373456744413109530064331955016921977530855045987213206313073075116898215849955419361441222149101347725869724279466638991163591063347987098914762154574950429478396193832551715270937651667573966901094651795837860820968930016146078969371701792971270924334205765619836820974539187786358822817129719361744328561347925312730483284458218243759670156353739817018045889366056250127840430007020494509628842079464598308777753588659884136130707591136686788546176013721936576080774455147643446608113158379702709030607295174988308160909642884817659449872885277163709784276263903209298022645550529410532781765516121070755738778638901946832233839551610632329974012161882969847759125803125193821984332473660899296420284375016704900299667991631257282975914913882859099792080967369594239035255927488301338398386605110923478032644495353549998195351114167495250049752007322935979170231441117491712520406869516739463828784420850027590081166056826138166404141554161925437330187640495863108482382743331443247752968292633274692884698797977217045413735909333973854023029174979013714172959540359006720765032423708245356122434008823068053324930097770581745914814033977918715943508296139654420977919405329431652056017647250814652313563570603717523152329888546665186345089993202898286132459711794559182198645094239162743874964979926055104487371305473429811786093260733867827111111158823778457384623513775323849783810770551224479025625974409554752476149641012473209549279158981946654186602068513866211031723017219195776910170786268645479268412955177696693635896259758042112890383518663500365778645702011355127163831184556830256480140252610498071283079171285648462797947105713809501482739633433141220974935063152859156158107273785028116378568080606944295130238098013094321310626363788231966050436127479607638762842625822169816033932543987487510221486571395068744369306478252994122393510898204144253493363401055096413480768081137386180672680617472011949756923507640910567302592680747326821514964900794681899166380401590786819939724727755330268312101768209908651175615933150190540568933953094522510581114567788203031102442378148083438555590905062427491586530236896695889137486913355364358286963867609942633958897524556578651737991441599212336807645957789951540203738595186773812552728201037566881964430631208136135423888673203385533791220142046404214306755574832047793886120802616527547360614525157549272795770986845890044582351479164768795041839082690704063577366668518124070065179907577222150850570399206749274440087805490086642382360391007999291269787338098073047318599869960637661213344469741142604968688401459450561247198474224656101437425576646184017149445796636661951582711021210057296458031028021585394493912725009115022109804248233433943713924813017441428628887299743163298901482721581413394285759824212700478066101151733276555513347705900225247290732529092704936383953980979594342185014244589519128631210664348798873781292729946724792805108860237981775702561868096408542680282096341728444379584720288985904455005382650411506027569076124072378023533545550061508563712634421086961962577220165605171328427831885550275932067335159362900860410729195104660487059173146035098862673749452037855181896197543004484503779830225586250614423335328786377718837375934139175575402366786895876006946547832367983978685253142759336863105043226059167376246007719554766218009448625046583122808666586794888667294707552430385917052882570013588068158959786315404076774738804552193154822322302146600200282224623627294531186845903355271382883102623989528565103702029193844183538877754305007539944445672804511242575424524723148618312594611582328051392410352475364020758174500981928226092777992828785378745067740365999806299121640946741100703923997386135623955878273783388430704802020555549745816305246732029672675722143707230379074189813643837153449564526254464951239628469506719182798699822738121298726233561813808602427560586180493689454455607900020247975353369210209628424306494745095993136304079839295986034660622495025834780698424061998702910114597791901590505223735146229127397033992088680940050748908349502351023977982902703081511149725814957953201217582634178458188341950736117978217657431476629118917512289398101023343393181770650658611514092207070956067708807372995902176385922924911684778814590812064734795798496254824020172542783021732326828297569165324424352757305123245151072186300468919840304715223010728250707573177935563353920642027862466043958370067762673223670325599074524407395995894757791996742344585509238929316343269563445817128975337996635962976881699892292812791309545898778557040803370787657743389381787361390307448319071972362358113888047155308252219295394254667385199451898494405249765764033877825283799462158312303972194452853958288333988333166654150082396533491052009199981156836462917495830946992514189050974579052093574717379835482495877438622353685809779250203674970177002619392626501841658393220386503625690450315945414670131367783143402086092713652319452232235006833773076708896574058487323011268331196548515355074563539757274608713086789316316073281147200213066132535396604678633841088503930938461009365883837829442467055757674767206824023632779553663653725154322389412356221909604217299588190969876209425218875246551355964400578615409407279901145305454756106756145299911894004630394364574912550372273490595013024284000264964682439066478641290047073817855863827066285621313169054680567558040014308507563687577075203604529347284925519563143076000811543642790868099638025772465825243650612894581206967436594952927456689467413708203870276453774413146010702609394273150786240073177146919065394813777600371052559607986892032530242892001628260045263534178437804318659995141795805637379254223164113966530966489411336013030725379817132044848882978377908265927952777875237195783494138465486192717991017876137923612183950296558812342500614728845350178014590939122222908714597605397436677282269099604790366476252634259001900638894327545064090648130633378046206172773713911576554138225597944367319638494231657306478725570783301671803979083339536661374496817191793349184227500538389734130894983459928916434366171662903760439948567186218676148900801411927943351051559869386668538417623909353074175642310896855714588313168263401440904217622903025458666521626130689353106582499896799221110922318438660899103406158019607382385557664795395290267386202035551371333304543623462893637146755220611373043683625296934919608081833576156599489046244685401931601327756300092007297121623029623203235296884530456778473600065555993465914831256082356405601834991283383972558624254517281196250388493819391472168025792328770331368777524871778391889763972690334623705438527461556092791779247932311379074434895568671867253522679414784491185580704653136314179587850879888417885798831432110380099389343160237282618606292451534049849801223319059957498293465143263134892645362721721701350992439230977368745436208998193872515389794466299646908306704550351369771070189109150540739499641680612787800102611187584697492168336880366881712013584276171757567905630552094339972742666442590805600726330776723901205902903678302499947113906060139195918367460666727186948343369792188110139153794759682997756768167198374331358330753003026070162183261568339449571225651511671492101285073214176435178491127495443501743068311289703961643714758060447559987265336368568616694251221507718026990868096195210765017594354719003073848346768223044907565550518504821808664349574214028257258938803924928454278221067247554581388994598312495614781540896544307904312997710757118640494941359311471675161746552831115210031038129973282736833215915415704388553371796304619952937710357391812851648965393849026754209662307379575351102080319986473063944365694704050254740326258502527672144577386548471557334830162232318182020739894440686251053879732693284195410714706756125289939863832133957322935909104157417182997763462555983096340660414067617125921359612294959867092099332643011274988905583528551988402940424032970184506779224325626797961051008918476286362241561177074409217497271423901921325719773310295743921146413098338435579854325914513059213185479481255652239499604512450116260064737729977505422900248005637579709808194171761627702014389155809727808492156358013968468167428120224009699188959233096515973217773086363707496112338975277663223947397887361562983331283272049352035293653567379733237934540429157391359585330016460921490238149598899367031430110954156004751792397093996408534561534305400454063913169347451037417381228775808394257019467249718109040930370631422879682281257552111226633622075075398864757095009186245009885948655947380911534316566909865563222450913851336836520571790604438589834902576529885902210331244988296931183785016460558680230233362643570870316764573621831634247673504871426164844124582067815285714930218407516274295473430399691304545452438636549916677350100338311050678418525333519619069645207864224798416365077532489534355103135116566034384942089096534112532678136686501157326991240905098992723786396826905186059517432413726491228765717263053486250647690660774580107478720041996529796150676407932565205177326394497463579747370743242932529569009605531342945627464777282269313774268746388006484907126319232514831526935313700467062697921800464874715984245677731896835953426969682556124074024865498458934351043865457052999957138588249165710705528824868164972134555207256573303167228129566202337462440933365854242479062494309469777644447588943722113929796161199344463933977516229353431100491383341731691122455134952410597330897608727543207832496029847002716733882620192411896434380630736013093473765304391955673228234200724286128121530469890626665757438973042917872184908165719493271114368912492508073255795873976415509845685710717277845533923877007595830544249440640813773250990847163096553654760679255563109337422007488166290242402752985350014141722610832420489637401796019295807454039882727461965405877697315666562077506823201543667254957257410966704052827896293377977531954275193592656991391007981064924935707036511595885614797276113502269729129367051484985889127624323649146071899685849688764365900981021144742559823822786469541407685949207784538011013995697711038431520729900311688247283884012801068570573475878583766402982858207228594149681248607394262943649107921943262449695621956420151107608527992682453986160871263611248205937846247750172941402787589727277897288006541563425367223579482352021148780486897311933601931425169109302923840206849901010904418222673680963825320247481874778381890700769324621723370105347911783073835163727004811451355274975404995575795291837664328052770560004242698051763242228559489209533427011313251844301098371044426312478184919538773295149470874138783562414912660332749822234189170214419314959707864216665926994383649684381722909261256554416065830945842906695154464213031934030163912944466692330553992880371788172510033075631408785419414178022412942961423875610153967190942346930351495714689306326053561528807707270465427889771373520425682173135045773104698833634548845114072163727436423656709339366925342741100481498854147359154775109573267613419214659942790748887011381258695589512238167574742736408682388899288998208581368293627278392901886073965338509962129504463489493709425597631339343871730077802480531014730000694387971982525290739602593280768341006253637179512752087695582134373849332607851926353035346704350469587961130625414497862812262544380988066502693229479601798188224567543153763757124019615891416921891509908553042214311547053301381021380276923620120631206788223589598434365476788525320871711858636930004653280952940699787630936191261352594214479491385013827735655568656289331753005384718951904355047928136648520566364688795624098701872979031514003100844465912038814519272875147950597899700642183254844260713777756585421973029370437855928436633370126150438786992574702235580019542823637385165011368449559917730466758137229237944948406775152905836852236963635358703873699053202510745159030959096530154060643249635888884959147582078074890461658739836202555242404526207760407852816911831729563132670668072125792796168097584471185521764326286909182259634411429656645430554556585906239283775097707417062656785324640926756769255137992476922986254183952593064550312306714086923857816546750563989256927979715297740636322291461821301838598645343242905319936618063155724711328765187922930566737124480270596468707486583609090844274495828938038647513586666237585684001663484372128299523882101631938139588918548799897718553156727745660964499509554560565246760232119788818507014253266415881452918248489311172142938808711725933118704013656846243715456219422414466270508051318270454641641148639970979279419129145381617786838394425062653670152321244199108724296358995448922728398753749468999146452214154940125683434788744070787031794503257394314198434748048013138609475048239636307204626139262868165630765594329884560707043723531878416328840766788554657168840534722402893622676671189301536596224900009350219412413100865647084153279319708525624742079916852238740640091713916710869897373902259637416515659579569093603314737177428872776950724242941289710136967360348422364907774472615395835580517430198251524210494405236815455362468041166651280117571009220767681783509728994510079872462675435645086043811520529554638830439922601007867623501017422195304447840182970924662990610520209951154654119738838618608933828574204234606872955949068341974929378987419412511055661166658099978000295982838934231725818767293195467506992954998287000899313057363351745786699106153960279915525797700028586360240208477829705612041760484850828757959671524191239584368310196583983449070157702138281656508131621996149092607688300839603663829770879406507956097440751163342658363501785873320802745289972290486514497357743975719795189813184720345757530372051599970923931570812844003784477853507684280625564796538026219630845173743454590802259996661087243981367392234874714556265593637593493194627262304801130091387367874720260203254662021307373900302553381881137647616821150169122385695246457196074751328726317938869698578280696571854255686845672018245664146479033012843978341740851474446875408770731633153621107433807030918417484946951462088886554161857398517082995162901575505071592935641358726879759550590290822396671539048333944476865660426373611322927611947806287351640485946857033442849592976726254498367430558930094493605018677595229675852599366551531897763972170263843337175625124824857038347855525550589372611420924872692159058442971249443557784968405188733180386303050527076252318103395629182322624916617448713853139773709405170592170844111618592240849090252799878962751083288337331334994994576672224833000935873292612781584517759532423185003071104155276266696829632399686421655539709021825033557064330469800874773475722093210772143142743882924551105665535397845926165125993403094504292676939885758046342982349719639711996391624081280257889012741714068551291118597464951688972770891029241342493499999630788023600165446203842320982097172128166328462401478797227719735476447702033638885884227603195141433600834966430451424906979388985363077140854386260709982031989457372864244789134540598140330408724447295666777184830100363573736211907896994863346875121860044046982875832441416508653847388554135319226832639442686090543172355360400106198172443143137868857462650140934505738285204237866909350421045279195298947304902718636972781331775185326649723922792528173962395325507585045391379435516143542515252202102241367392477048609320941724489979424619075333393926658268789605589378073824234917678269576528635528079107488707063061708880732021567449698403015769987217062286243871100231111939131823474294241577503441856907027621040280715006365852858677526737017071000893296945945525522453436716480737609534288646746024015152874928896002329894813142310319775793754660204866684940654991209745656044856636877284853591258149857667715511793635840593720892911184723843726155561415327282954039272390485908276989131894963299127686757161563214662175124827456467488777441552788981883117855860976419413651535719496772434298597006706532880756524906877675459870672914557643584034559868806850583742391293664613130482691655128914341308846293325083963456696639406259481049283491357151119548166356510289574217771921660066441331283517678919220831077094182568753443578777398969880763355214053071284740456866553387739111214020955919078435639738075950349932170831091049975632888983711008952994038061663485887710684349683036051122559249623069560857781359798807169978964105051024711460711777590064247252168755939676614447644183403055787066885763511792382793514096322035822112559862573532368887123793341704862155102152611285697439066758266925557761205309426446696002429214615138276200403218322124066150319610826658405296920944452130240256816680849385904379628878729263319871858507270669234667898053632375914055679687222882878050796985767750061114824240265367675922503236629715712469685212220733006603309493370385328838241890719261208090607242169174712530756998081650556921250750059257013968867502490849509380183575258542620432006258115572167867545192282684451825550758049715808113864989149388086102726832005702332397916118980388262317155459083271258267678594860847245889619388143710794572153782295749191557474179571454500828815109624393974653827237751411758700935219947486454654523682627486000442061033548108946603744237277830538793389422004022232586201499755534255196980071594267955340373700983041645119870314657110338269495385951381828162437124599212828883417062005269952721172259971772055000160124513189885638785489197257631817530078765701105825428283289423487738167339007900249570336692997325589719703171888195501760071537159601463406480466600888570222182069087557642573826885605099117334820988569774449169174368723916069861113766585506445744816511858524589257228849518634024825996767208586921679463276005255835219089982737623442683411150780034225985922981653789869092939632533826295368337205993275227514925852389725773444511430268396284769428730921965144190144561128976301824746754360239925959525743766937990847019573335163238956999666788470386977762963130578071800681014225925555141613257135202497749417177131681544898216240684796340761668908762951923519020393495728834777117674749443680544263050313458363157266942121617441021329608272879504465557272059127118417336077568466453334165051591707830258322208525791559733779381170110606074849423895323672803948325926720613858173878299144575137569733490771672690212139903442926258335845712519078830908575316569106862459798195466594658950015865194152025605509723883142199046180086945209392955158804701515903227766441069822622844098792641074156837833568175069250311049640628161521101090564763657358926070701212524335693481084139634067716268657524633168571343768513166813850242085401710373512346071922622630182526017236838334211013020537213411716780082709348613304999209301961143420530142882579297368976268297200890714918232487675996847925071213978250613722247210358045188961713824075971150345344380819302869127640279772632016047909198184322173074477102145776897842268098379044975499631969717281510325113068351155748217594002655286357268741748058490119216663048769776161591707416548532763334938859361569071351357033465603726345111523219880134516344560731145271488628071870553774487494394438737931833153054282213042894168147389571245730328695330084497340766744413414669281848308924011370009955589014269336703067138208855715531971620635840783459320712065328892949994680110553924531095973348232075829077259304884590341546309167241550713313145266825545737362465972285809002710911104363904158901005056044750339614002386500077404155358973837984769263900786538348804673384444886283381501354507535773297740307562589182004031604674836127256301856798993385862715097709146286965433534508136801652986412719007820858405587324911129164337554604485813809491418858086966641113608460336903976935062027821013558180561371196073571779646873918278101641862050569838758520031900941321175820809440016866493368916945886170496818930611638763014574547966425078828710036357435006259672500515441591370388992319046376304743294204748877234482928662799953780582247753853895493925406169248705380847935614755179172164656964592356534900255625342738083011689158413769192736289622763296590842852948739163744109436309154355001536832784765729900779018182343522242887677930584817287801464863048837630474971988833918908805975857411769165998877139391425750072468561765760759945628723852536641261880115411280600616499707359794782402386971060253669900391425675067265260998108244836839025876533141435086823167536185100024624366860043865377441295725075228543172942165074020411683509394496526777868319746857284470704365137975557737011870972821407232563466403288676650687704244660996733139810861652669976217600596602583578074529217222345296028459612395133828868908127700312051765039789969881994406587377714520061125373732613870166457229740108804023856401458706973139193387402160423268599412126178985268880286913646595415028625205655437066756697149794581546672584561325812430800930886664703618149719483144829033433599207265512633853573933059498835420408688855141665593193608864916896390376369201922951693059864965653363103017658153277090519164884577845277369634315907590904853789827336648610941206887086556913532270181530889661824720069608611457670900102494083550579868298156430098898345963270574922853666552407710621713338350014432484394621661352898530970019870284749466354877782661576684264844490549912473840990596039804412689871289231377282077978778267109264371292103483219060569524926644199686474340711418153962825195917787603062860318306007125860074945474645574571416742416166057956543886836329557613604397080718116075527777723073970216873354736428007186815089297124332989979049399636485483987522863462005182002855600074899818619135577758599243268803817516289290531682893282511275357449673224394432231976379019162064069056160728634687203905433569489229380176621929328000561846242207997724382696843628050288845553813280170354586857693962554225237132132299838549685212949183438600094757345348673758698705097778818557583525326234152307146613416411010277183023631966632842306997104056418751986408276965725103295316443642691720142389630845508764809395635852661693365071331228375357838062368323147736758620895195644988370436438948123407795200522534445549237034575237068613025833728329535171148262573610964329773182615301249388847532330603677191007044017809935788852710488989127296489130269960524094607530956650616925555044232173708930591579369325026602821329937935606598916698174941238347367950094112623270952715425917672992006039343002122200182843214295765840611377571834923098541591069878371511753842365682755354615503377139693456922427654732197790659101643517652457481395626078930797129480019625732919080583741482448746192334614797681184489586229849056437023100630305097742509170146319718609247574807536602775149051444546289561857750899604803597057329686099085452108916272362458551556871781070606845559153283504949745266642910602234099415285726284512060031468637904240257772924003444815596008790586651096803994821582967835286693858541258724794274786208464501083343369437226829092308322184127045059514718986530874239179115751519915143311286241070253746177808333823408400007709252421251541850491312154437970521019421142807672043632835162392534790973841745410439824212925204592525169291913262231577995891847319927081805012265361803518569989272109742705263629280953909997532697167411453183834965663523547436703085431656855678508916838809075873956444359207854806272921254640529717426220638380400737900524191141754417376182951787041786700683079637579065840716183951204349209871320244309748378349899742186807420128520321745658034413121902251135765408505653223668111646817370030730721567761297800394659152499392540966624453601314768213387202916887053788793689462213253178592589301909645320772594942629281577123974474483149760877013868242359185510127555421939153911108895730639389441990069670322350412034169216842771302641847691476128287837431715411462710637242436285237753290207943053386134763808893675616277812745023142030260674839407214431414083078087253407086539441339153222391838107022030265623423199920042480433928655286529884703252668533312752570370208319883234023223950107824010034083205879430219034563549485154686590287044749749417036393799415339228123145253602520473131637739545079314191147590698853270169694205194547291911515641470737810889824882938667802400927019749878437660337741666912122814044965083816074595592982265555111675071045617214413267205583939183074300187848202891205554476972981671473711114897415540577160773025676181196220639314092617247005216066501227794573303351073989618022150726512678162721288867402718016559968248132536838860402620249183735542429526586185031565818416224672319815353312757066333188759302288603921397859457229469647341158983069236972676633272061157714986879627155897861975663152363227337547730560453238519815817888587853259481711344069121240733949889016243146672402750694437039158190785544839420088834093011169892596436560635435052153035716385231597665123353329217360564500423146664350762270603395693892697086557551238726249196976359487704192276762064318365706104921715775477671374445972683561263033349896122635525788706696441392826555459533021762645671450699813378864200623919239894089120317791872961344839638632616776436192303381504413125685084166712334567048463452659966137419571770293094545125153799310338543160762860376773844191572717016487564480140354324359540937609968167971240750068131989283540155058615910103449855169267798678093922933523112955434652517123012420149979640908960697312401453626004207120805063741055731004682022096528920467219945432506378934280687248040624380265964662933067657111953917526315920580006574344345648823600451557450283439113891079797409682119863191954735675540540081070847456207645366957885425388621388902625887672910107547547564650538252282626145415433551900287552876571681217893944725584033241250354733970704246660548435719678608573985538847317415955150034723355646799247446292200085856074013989559275074501926601258057222620100592792283239125464633722156199381997848082596562372177985726731247194146261108610084689562306653396844247129071769929689179981302579817763369520166350281560002768585356322589498415535256280612445370413470566262645190128708647312302343762376205274207171945349283613813041979790982843653164764641470930445098135412711500786907905255755719747974405806334327262572457293073409757745983569827171303454812434031917511199807264726958002819576760615020557843822385776492670952084437110717040427880940578205865589275005062856749522456886933734647125558278210414024302117305809783370325251561664903670071015091135618619187316390793887195160323102487903659006329763154449463197473639928794989081123714722275520029849852383624414743819002116588339402468408902342889452474053508732450096967543822683921575201394038610655247154767572119331281103393225449181591494147058869960677542193628058666417544730083225559032751903654432079134376883273943269670713749509032627849262009839417902059114204976529465283997135345936569867007333387636605098886136295963754010018833690689166438345547044552267740970590401305296269144207587306467604738213872324046272733249644945490636630228411922182282108010757021460787238923919297947794915363254988614492913501030215926057816723776102755313908396826114770332659402318960160480682693186259641538287537043534960302847900162491055894242298440698238155053160973741623280881603309780822837528203237579300369504703866372319478360252757870646564576436681034149057192463570119209670074669636647352500993964733077772142701296029507105050638068156681666649677291930697776066402513403429117340123720534340354120286860800350551070400261583377876416136364687625043631143826711012910464782929510412933973449772288052225006014718258615138319327486489242437979648305595934270585444616494712977211479045319383097245895839548391157964321334316417111163743019200319443924541243742492251267221505831123480720987904227569515231328134070473103816730450859843050457634908808866610154065801499111423160741616009168242014070927933141631745104024644115521581741659143930127299865761635836010616497237707112855694749985299491339295824042224464871616114924821849146093211500023426547251976128977427105299766072700567990042112776679527875398774908753139788953974948603528727116668803522872626618246928894300599648210427287205044328624792065610366557524560446384003687697262473214976418459037155915984197559847019551367443347739803250514855176618990630523564466515671774113757419749473986128190103295610864086920889097707300634237323271537447122516604979971149940332822269940949960689388834753493255491833776166622106133579527159966518724198525121111771224732652434842422771174065931949180276816217682238385941938199481738848227679836186897706578851868822028884387839579271681016790859810303298507128445148694538656375010647993930336948952280460064525779991175601120783410520022756580225750700468487620112406873164054472702469069151129636219558202423270425819126647207549851460744703530622490079473731124242193964344566849035081134456710551995053962029531404267062166664003475858764278607695293986196283607434034448723324166525323080039754618538177909710882775190458223907466750940563607375707609803989695603782152745010528518472682755711167115181797224396278747620729793551399423646436955561905343614090946650161366811174347833283768239109017174418349163274844765638764949647710667881768776740515126806974343939417967716680936660161639610920273693415205189971428423824199666371552673649876650131157888353695261330583195420283893442013614698158041852416588394992157825103231126282875247510850883008211338698113120279337126795814856604227496496990391800602359951571314973716415210641439948098375177779603325803767239779097126077571943203496696009064373194826643950758348582279461095576061389319140070144958660490933543360445088616529481100695251962646906403414602587160299446302774333670726878901526810139706191737171242112802992477186061811875924670456177064107654580245615410047925329298448146767306807307905758073228649527756967409597223939079559607306788164168619601102638831619231225128078280062410951966908428120959854034067562271783609527806131327855777456568873748373467670034684173091101234805785596994941913843968993658346181580765271873534977242601006725045699910534501792101060485928262612353926539275307358648589653054034644444051908292112887062982585074268401437639331281563133142357388886410790156662768042488573971473837003082261058861513646976144821133647566811477010661088796409238687549748094080991258715785046176830049474963501299829848467391219115900853772271630153927436391401819247488230832883681912007607275528376694674352219231146702636090139302247731388432820986276560189146249490484686593456758846722580832775481525425161400595543079444046760237406632088646684787989881811333049142460415646046216565845635314134264946693314049574233649664715770089313977466381559313979912656139448277821138561400761286990125180664899424821186096767187713319490457888009944339893192480374576076374555913920492472374327601504999689084079639784681352156629405384180837233660857935612198398030899949122677329316954005828329493540910855840826561525935217226223432515393490315356059682924533593481517124463631217702902304755739188280865538636661563683508105086285435203756044354185037263763008991274396587103038255524932358423536677575861591359543868230616770543413227681264833501851333739574482741959600963953868510072698002978854568135531281685605925539930080986923113548654536907004493401139171278382285360812832792475364605583112910585148310304700531976979612801108776669917693469986096050775106020866573522454388653871426974921478678931050244992214032213525809827957282705837830798724463101277241428485302345510700393500468784808049121392230772839298587963325632670790341927743291893201111465655015384120525551594165345200325120589640657230814943949663689171858123497596735288690879373680246563319110938088019332245911205332483886694368107953291490222087479245217043460726885840830961621886459310066526031764732623333520323316594288259525598504834531962619723172280621570305930784542505971330729000829380632370688659033686652815859155522538741744741603523327960497055394347544720769258904595240164552571356922032482698160275836997648246514220159479704765908746821431733440654433049931121862888691235707354193803896626178422067530767061670278454200115052152416739152260806007704609076814346377962542813577550667061969533112136561665023451774473620489500580803063091221664218093671376369204310236751228181376035394412488762114067625131918058023658172915452678005991305309350574945770747862666197636372352575046471558876144220895241025750812437979534802992440881820295793670384761258894244430119469621153405209452071732847722171166401883987201031162100005978755703893026764911120699586302577386983605698244227104739413199945455431769851409827059475253700257575404204550104979659726959388983586810547395320393644936904550526181443634234658974485864565686792515622403349127872441391763096625754365229794665438018306913004488666964907328127992935998649222426610011300852453840352340207911504261648989775914108419193943534500046733174522294209107167469841724450572794528053046509419755376745876930515168771516316964589370268078349879873275534037727197010708373432612166531815008410710330138039019477670188311465487893304485487396281661031974801702903402168101289740989891957399906618308481930643282988934105629150744807182473679799376976359607897734307282568589310497510567999414235190624606531418429532196137579756687059154652074099660922762212834782887398565980595516771413757785076878271828909557792583283980334729933420989078200388182280037119953013013539991233164356252892692722052233580232240620090309690521386925930590976452971535417160408969283113264493081523612985359458950710081889604036155740504189758413967259657875369735194860949526486541200691910657060628173959844079549442703212781490440667517895510021426056918327136780277864609246139458473847284592560912457012726991837509567327239304323188621001125892037836587516721182783812211835101010278493335314036274653667388489185570441364551005719378035106608587841032673909012769587525086052394999758487206512034103620503553194349825088280059659077778479385961955378326704044897883981420969406451596197411421122773133967182910033467998168793119823279057776087149284534868275913119151728168732602683739550646760117732132543239181379097701439522679773757764182731839220814686986538443690291853838727624581066152849300033021765375710517278007963981678745548709028723841006995654328874367260248927216726774286964470544731355160897186504371196372037430184367511227397511072514634612779666289076092426680799933047316898499937163150065065514131497439551306576679932365666336182122362284202943071948225170161217117059933832928749830097566708039923577622745153443551827195274311157162068879983793955633279721512361825081083517517452286769845135114921441097046931670901890081631983045281508438609981517252933021448724787835354283842942323724383599382029455381503062410586132496909195940033957410465101475693236304488739063970537082697463922667487220253405755617612782435341068087198691949900850431923812418617481705602257169482759729222782391271472354076255719294905632899120495096855424644423126439871211868898126556772911999796754478747555004274121502029036694433699498589747344335685052544523416192086533497197448682382926092497710586181708983497333280034874354976603310836432140019976979450749110733777630621447391534010456223056676907508815454473068091496986812980373715497952701048801064982256843888673375087818902572995063852918358622715563333823203457861039819279828930576936846765129873888322542445220818754723435094379623471596745738392129024018221803626681618637656945990798563989061095545056639441779681895948620100845939524923961383422206715436665139621875836388372654040180777122658561465430055529212195300408325620157042511556405764672067946068151549431491450647437149700536933162514772278721227998121878263065794889499169044394912308453244487348683604767236254330653932714392111351276572067171099504893040924873731834579383354683415949748719845170327134920086919490983574630835159614685420337859819593653759721329000873817225396746606868936637634555024769361022224283698805776887156111719664868877843939701262339717308164473665800556445563746957262714804930450784842601093305134644024732402920397009553508155380249342633816879505266320591308333674713194660365474945043870579901487787625075535205655983785548872883276751214581677467137746785107865612007159051231218368943579857469190091004611672394379676530930119425191697803774238170218079881007161225811090130484927822227108560444418230357574095272260039706007930566730749522547906387680638169291713476663527028675092280342408212150787482411850775865908953444336756991507998421341873723987381751654302864084155578070502383804458568546280560557252875445192759193368285724558792208424456599723317628480047595025917005143559879193403321529500004192099907728304981472337914630001079186367456108297337824763457475762170740886578301687511258280329605858256750985360137393524845130889119726186713652438595179706504568327519526759632632201616191582984483684932896563509746188393385512353207498366114184979329080741767489000930598065394075146294811437561515637982608450867142396760868991831961772315171772492917280687435657474419407072090191369753096312505010850661625144238098687807227783762982653731745687758616820383208872716808050951140058607195675966795049016040746924689416662696370481464982281588869481571199171362237790721287618909801916782844755132718453888915299164855055132636873042161416611753881704048318836548024777495105902391514898635128401829867174429941652048449638019681734086629013054417183799292571013351059762409317389022766680471935286054024315055818585154118237781428558120987520870429155955157160623795849135577276760496930942881554547779396391831616635175424989697609302434489855112552786652284498108523469911830487050753527105866817588664104452069257821817224825032315540164762928483978808851188778115383224063603177599239304657483464228128620461744450385493159581600150637708835981925666515988578668663372920055436690366610411993333498136177199984823995584019982053879499733290184617389013140722120328009899641699545859108705868141347395857492075437587082477724157027910004503198299677020883224038100587433311459700475741948818893081309792988044236960358360636023164283702275598359526135698086491433486722537867904912254729866482682330216036649401183737404991498210077515886980181431280819308345992620474647957791392176094354031867380389131910910024775211115416219122730177954675433771008296260171933051140999209226055688240402478431364778103474559673310496846269919675470960935842588931347477369420203671387620539308115668352742007206004253507426008425953157886347105672542050777109987981173094639161122729776950530942034631146972162573255803263355246240649327892159402190236320846973695249309711875609449318145400750717135017276469459452854353363725004019540045837322522304476522802967286386840744916544741197811932076835279199625387710175137555735669173324476818791154300299880531529627794911659250317153238132924151591832333314517891138229291677432657514522066481583511545281959321388350021638691408126080340195813858208497296432642326470906942430609359187842389976866292270720420998000858958749670280673185291664633876732944569063128781863755038723963416370354006388671983927590702380198555305083310603004437008248466194196373596831027748606188994075061562689530740840620524593791928647626544470868760500493010702522311244882908843038837440347226919261692054274393055756416335994192817521336583589858028133724039169128368203459255555200881399452710415333636552572848418734778571395136347761332974341946776539320935693301624332695749498588752688590281393965786403099851968292290023100179050304033044327939543538506600944127740850825135403940158605267317256594624639173822131235956173192910814830911791157866623676682040750727210789433882578528748298709937341410764617272332651773458938465648152624884932272321831631132051627793451936277108638860796302901212476070774478733984014322935472646298961019994492741320384204922938632561913300928613053440013755939875539400912004337413034518769953650882412546059512512304690651415595376405856838801490800152567875392309528393267372391353012234025183014684326331924856446271640996864517955608631446858392077592480190471630051638376923532466025802776258953556184485865791503281486768469832992471185311071553945999816819736221699096559015173617309911916762269796363539965341223184301481481502663383651354474059868484264506480655868399809711359681566295743983260858270577420862444375395756731181875466738608706928436718567434609027068435892572459629973043111113107532709322575626478228361672502646803167775322353410831163264886619099789635244145845891572704450564953783396482995114010359398430619862254516141767829097781501964054246124337673260595457818483465128589972454591830254686190405359170595493389137436308029497068020077551206599834776283193516955172296393120958599481195790445969609068756952154999498228106957598469984893315098565499693123508501637875245670634918083681611887913339533954102142884863381055311351587121269724426375697734206970567156248867431025017747113422386359342846116164547918190584068660669607453533992021115697233349263198538530280075965157840824607166918915605436658147195868246299044942880089284091664218005000656812034747117066924884688504819415461367234183635169884963701507166734258174932012121562791833088624011638535656136253804181222780269942223378228566562084825944975288132107173558548879107951231514112090045756406730106583083487229598543116554923587942489435877628769794355921091605246308144036229269368582775729264859482033368863336385870043279209457277756613573301657648382319449856643939403936039886436103518132935651952946853081865308117839236573763898650670810461257013122425992179991269417331685799650510422039019152661270456796830427776282533933358158527620510306820359495344323006814161849320772762821199229394985391711337661575779921645985619950341708461937356572783257042897246815924309273447863306246879661107418168178161107393074107509022992340248486815111453331015370207476839482865350977712662447288427082239519643287589335641743892057458486776381073110565692709623538443764108269422869890005177804719426383115245638589909387682379702626459913860857167352103104972930862260943833997827973959925949125824985357992695614773543994382790040438181826471518947566600480017252589950397425351509447203369469573383662842027295880517074196357057082605251822477271799348718589763517149236643956596847872392767264040513631585531766617547754353402880116385606084349393993908428544662748717803742263006207323011583340973098143369146602905389770129846139957945033890325810665126421783371025900841235722526536420413524187944458449662862396083156249516932120471235326072883919300187148662062362362481608331597128767493238387152053066659487817390484413528467747782025708304477210983758268095067100757357568850255281288996787748410201076633146778567718373607539356526003081093257853478758756446811902591239123151337364457318675431526987784272353710636138165220549854346678049774231968801608108425768748481094863714929335276810565205346068435646605043876306747180133625262073007848218480616048127856677833606255675730230525771162016927388175049413700259754288034634487363565154572456639016224909993657365317680754661370027521175337526312475509197336500016984730080949364902432540371627906354046868924179593269872586300099931691043207071218361012005552916256433183981698088350235790543929242005561118774061202049972222933386447981328574419129002875860933065154883460798217325861729420149625521102996784804312159862350494154745903793645605874170355019779405785406735139525678701007798244751953003893709441995693637632988802423584498393636314909340227461919627233598694078282068191765770771798158087654563751544472013005316640466450739647136916186604607786395289879588293387390645413550289444380341966318004644986815067411055285495845424801995805534765692957652988270419021552696628534524778964110586470688101885374268535604787834979152500855546234000920404826571066690973275057315099021321051062746256743469774926705104411307230015061583023737354928633048512458588907811312032958211457624689194046114361372949570561975180120947512141400661490091019025605045542747221095068456605590875882155098411240939528869360087266761537897091431730087056959751059269185719007089428639731515176662488153368337086516183965337743198240598429826736823363018863963360049439805697642219714293379783243162398160330568176719771839847978827715598178567466971023471428972125671762320694663955464061510652735373666529297217185706491263771756500943299457755912090962271559588159939156146602105535516733745370536881743876456443531437040395152440629641080450063011813990331788372178446676538746765723421535725405720540963089782411374432064359761025343325931667742331302688061472954365711237988330565958081874300666564261754914877343721774066936695930170850051829043394738899684816375136926552317673093425485205892339104457783434059228446452457900847878302717812371896774870313618957922607810116252603308650913926731264665410868491492375746902228427407522608033903056287243088939729837833213061063274018359588424649080345898539383592386542429931824327517221569981851443346216090926237443754901555216310929688977529718231117027951462297518461581148425435029593472116009941803357460110842638703811641191468081237211652653305281108300634204219412664642601720021024438202244831318399560152293320551161400171248094222994212498785962336325371326973810343739938758092303560283213180862354790900769808953662282558827358701138117799831518498150709720539115868556240886518083855515285071140874102258116168163990962907459585811637967294642836706654067288277925832149154771173493892939466246878545800231426972009943347171541583805479471118889895716725479024426188661821552632493951703516502844950351855171767067158812037320694252917808985742890816782903397990067494691473015973149587236470398231251542963965836303626108032917912967645300858108505893524787870513680060555637649790412887253197649171061812316754250294634858425419663871187058768135942773713079438861835960289741763484274561975787266083088721324478238124887750243583884057763715621649378151864798383701442597220590346541767604876522776616655457494798596912719297512298840419455931276381541807555201461551512619123547696021508550726552738184667333449663970944534123703481640268902508084700366770215280582107492881544962488306419021524817498301800803169960942031816311828843253943855599945973852571640215136741021170068722791418456695788882721068466929456753115756121207663551618644953798441298400376561801175193987240256672472225891327326658317551671724035655615422148412999786995230717443451178929152118880066330746100000163893637168869102757870881575008811012650646659351624276135811815797691328131656702287718135728109870482772842895654940439867188529391575993318927463493525581468557972763532169002705560483491879820312744175481466556794352652456017022990897839645924448544536233425417859544781497843953282582008225607117197412557919162965782306446950718991227307118925115699171592749779265283967304238583630441897454274370332775302876062344750927606458087301037974178715309740218548541179317493439536152246919934970179831259616448760961781541310758532661900917709309348872839488340277455660907844091147004453022816859156154325997002515884384830582356943059901000564774733725574055666103878080928801349498427112543471917089129456983187481117888154513211448544054117557808625584322517164165626759391091191601538743695397247596049953292213366257977624184343245872986437796957576520839951971747713464286726174592062785149003050432958798019218119364388700190466529589666508038753375936908087418711240126846677984799240230947532663355558961524244529684321814502016759636016046757918652899594140787783570481013938956096685919942179777691098824968027258525418280435506249345979830047195908904461376245414368896432580250623123274154706737380486186001050454361022166728424376540117523192692527003920694145447707602798313415804654086919380837443816627701641866215316378295995917830943093317168941147734441404434888567562731531910539413572756176127507144889055650211946088161107203171400177709711460185243651271004302445027250296880101325126658836175514876249032948220975366768213651936442815217746895148477823863977621266413085417630091942673779132478504586168744419690856708509193603349685942015296370465790296328099030707138095197585307760837154664068519951531711925366335755403713538308757663660949324937032686779200242567421257341879154814642148886941592107071789610240024345471189982790417647964218015949210028194316357381984282082371493258788043107367980340398717144827357109398449926918279159362323212278142538213438733312836106332662785896860445091718707410910653087412175115636921325949487897114419319577979605232481545354066106996632952298039942682062659686585220700602669936945228672123513399979888667671618781728721065094548551955551049945123370953168024242983332116584505621313281043940115085951110392317984762369474294979114857596572373364231290539789672021939646000007299848186767127154486249277395647499186216751453346128754719559336622850996649149252165203452647257666795990685447906399083363092291363453354260553943560251003181756002968530223958574340618955568021471967735048796144113146536195895951440171366398347892787908070392579801944140957469900049237021005158540181697331162508815286900759176024969686575265124256577841669545114359478913927895830661326681523535176641610531267693371598161164623192453103101197295579266115739448253225668646776010150119288074087647728668927382346602322371169052829605897799165068370754922456389894960567656551679590298978680393878529620615964670656512484565947636565733794146396870891403189545378600155883446525016493649262334998289189058942440944430858184221545463865081462959382310574423307077766670019381142334739635545299176096819044653241898386217262761074561757673538632408607256068567789954173090808648966119292733576807404325157367067849386570803309463208753315854809659124234147471050943160339294794381926445173097775749679719778400850144806882928427624173271320917043460863540964220684334480289776371083025582034286600635346302093816118410480712949811583625597896747151620624392917577850295347498399592676679919696730717940760320628504593801732605896308123711690848140792207629940650695479891039648585408003094957470602408452425026021697593173052112120212323140158145487774000175999280175275278872342582624784968348982032313330368002778984916870658118279843611798603796490683921975186221484609164500648788073097415925985660597758516603849203071006408583601083670713559975012810992792095019841157194523812705207053607106326676772375347924906741251749900654829735376633308676076804546331918979223586931155580972462988879706960451223273116323145416971616208585475207233782731177990644175560670636835041977290397077622211135491697385456774239272324721357494605049630091280760492001066168958419160623938635597880954181503077156422677505315549393977217186985927897158944092288313115855223671927058572099546320777288387711284498081038818439043415807420964589674207371965571256505776052423026902359553963339399128401403161331613806188098949636902986411160245604931277578510810335271783967604434449419911985846823462846757563805448723565727879718200176341189407468837479544953912899731349695647898492095951201272720374566778520198842608497082045070667051421166455748881685866174377540614563873881648864690413663896878155840402708457384844631399271715235314568140566410928159534876087686664237286755223563385453949565937363360666269812689583029704042135613840204101683021284079240682004833116746521365929385650978370951009068709816060481097737506398665203295185476815367195943615426967830640871509115890946212324450746962362077038743145742753730062166661596798083251374639215773820572215682904296592680858563874247481688010659177968038890039732400718876505404972966970703824810330117152238380719526268397054151890009213448636121391021649925154577245743095194936833953550259542870487919158114648807630299051336676094789998163949337461958600576956523815606030987851918057097073360992276834683428210846473842430180725937278890512017975863754177973060166095324844669166037069630814546993264999793456466751746308547339180064331399406899749991515905414598030620898920756777947022204194754570839429156753368966081386698433856689449678740441919450059728647170489277249291919041014263293229456248868019611668674231516733906811074936012221041278783546911621289199359619775104304380061231795548570491391888201622529891127808646707449648033712527220044150511559471149457552058514370634986150470016089382490438985648070334458374289338064683027459573263430878654321944917314966920408601400559890596009874437693756098140239632684060778381422377577175972257235651314882430646116428066560655450035077773703994539279864110142329823594350676460297722194159706214546439612355490554968569056052332106861907872151465801967145554948772953799452526683471856711986581635491868935500706466741727727193284924894712422543017314321363269964563325825924379466783599190595985204224217658828924538370104269444939958357130727043340279700364139074501697012827526506300987324087243959180434022431606686040021319342353702188357349801989256031921223100745486531069863867465281009933078478141594038404023491161128197930089615651615731511080476717579201767909365488257361335086629867737179281858943922347512749061862503433348031556939157970501675912555035112601747250073896864543980174960979695412708718996512492715325017499311101862396188009277774640342875399075899258179639575503476068533923683272273452728612340242148786502938462184318931191997658216485152782326634008024027733412161871154680262209783985305267461913494811044167603842936647792612851451236787845529562320362094303991329233208534692781648746905369052693824191158364015239092868691752680491482405596290208804367522314120556940725598858885120127174296010188800500654404938867777059512150468215360813299446139797442396914472755752510106291980307810252565148747509885535302880568274446856562392686754297401055372316328588845733093484489266154882588964922711512436653684339070513035261688879833548340761804761198670630016428799648795941205222668864801806026013075475041633080227338752825682562623023282053687621506557112527275486704703284781003717744824384433743788996362715349425402668667237187209689123102919437636244768754260873137052722197161150288741579313037646199063003117658155466936264676114389630594308018260023220593442308517649436530981012033297754204981947920614135048918136736729141455212028719441012715618543827313973922649466727479240316978723462687260150023009556614308427184988319988888328644708286252695296140928001736361193054992781306731218493432820325497006441652749534010874629239409439050552026610448148225371565691824385535183592299418495508811178664038851129114517564768991524369747209604207402911955787062993445880544077001677340744155323365046535576159258361746801594724379644438548193194302931450026653151247524842704526573209836371035619415056748717714481574988986448254067799117157312685258896542583534469874197274766624292806802345189067145366711368036162658749515897135930430089234352256566297082645376494662945423072706454100244842593112070466885174024129736973932571550172246347274659115222832359018676540126317400965210263503158597514948058628158898228705726522748735374081504330652373404498890734334506949722753496894202011730876517036065163976060666412246118948723992373903095246697632619064871197670530990569610223516054147779096934372752213271501550388662176344711637352386902034055439614486423510240670184919058450187881302407940495259279920362573058727694340931811706202711392915291906421302975106178660974907072799256341195886433141847593638373116390731472753926595750554871626285984995038984927252968887979269389230181203307252181425713264016345540807296432101150281754503209418647535883660539467133695498613020307178923605555536674991774256584330146699993637649731999314018335137803577513865506267229710122050965474253267298075275215940340219428572287348248215973906288366946388644625280199385663286150932394502600917380406958657804476920107568711469624874539076366932356866020882207626384094647749048631342155639517313084482520285030105359031590772009865382281151467769928433854820796851411321233833613185328958930986102449424499064811883418833138295657503208763864615972183054117757027059655857751600425013035396558121064082946063787330835116571118167530059001207560546211978793829321012555333921153091755973035826141114884698223455626002650553512006775537182305172235643605730188286774206979846246235146808438847324172941855035721125675405662266891311716670104144711858162572554187266136027180275802469591913257651558116485312202884008468403780805727942413799934577255343301580087446648487777250931379435561014885001456054953527398989699166990407848648596393441387765680380766767704734621211454672435407670292041875532757284820918428806035686219838368814474837467453617944102004438715885389290532863918664490195750042735870430108888204740726480380669070675617479784598330559878817827373845554156381668488996807136849527533758870728127637447372733830751260514628580375820156467811095005825333389554585157757827432046022920637824709865795227324113159678694406592000832362071865841711696766813880271593741936360971713430733473859725499198903308234864572615525114543164579434625698540051688503167108124076782774277820619447203329936591026207459331638802763121958482011465624040215067350002258156388661483092296938090635005978446406263763865015725528378083831445426881017150739032213384095551266660664931774018620417184847267293289953068832958593578003771154026408546218121516367711431292114221494394889986255448705734224328770514888979483074044677558771627428142667360555458167514543859074433484283759143266564363240870033552385727068597436179980238521730199206324856897059038776489223688062434970823933653823735923089205985482991337800055453538760217507426786974665641837765156224570609552776940656452907919395346936731289107651576356576707228889184677997982940407402203683895157621224254118227691669756943620756635267897321916110847760617149381572815854773396558195179234677240157204178751090230402548403599746606779478374687090313455464106190366932415489741317999384421753596790406651849861637684189274486254247998329213643527944036804981805685515571177633651652924175246895547508408603451117533869083922061066448196284124307728426847121974148403873485106341804107371933054094243099237376758888600732677893739488353777172802705317275769060745798528827584578981395501907639935414067408448184263435628127016836531955756319143353157366256860710401665269320622963534600003731527320064346100855014922385228573320508576511829240627379000086661918713145304706101309130432038972885822178872081405872048678447282765462678157576697115693489552694239242626448732033364266782710101591263107454338753242401973561316494761581150887359184288269733189490214050618134899520763027651721410328706318412560505535343665129747927229674728648093444276846219134886075886802074867611441885392742247297551302871869797185620753553367945884232486722406460429517705640789622134572408222613528175400899872408856008546898588193563300329550370506361686461665725086082746792959210738641912517259237903717741310410659246164252170991948720829209638658075856132155330608470761163749022912190563215752043644800435030410277155570825929675019626809312236909931732027704391017145437033021217527734997921120437334507404267939426583887550536576214827714307141326661891011305473910724398485497030644464971267178943649308313328526137387230347217543169085170956079420080191802733567814221073230368645270622752709469539285427004836968528543343820231177292189397529004458236978726439725483071325411967572665191787240664045255695655730993388962679246851841295345778442717185879695266851331058849965559442377909140345830163779000605332032660250196822723018346174932257738493732918095170395718339414567717136331541723524260695145498553839886582817819173956993739263362853198811702736674063345747493642435097906301635221115956594811176833993609064869986487594048082944809399662835889716953994502587115608695117858874723208601104724240274002189178058329083184411925943105142994957895892462039420249486241588572128545288520398506125891329707597575278115922375083717750890284296264397410031118019723684388416955446305738827780516189769863369605263073633123552522392717063697726430121526305534443031395994192762718669794533525366466939711457725051458535467385875449948009741082505300716270339333849814250013357465020707492091820488783435158882111476503359056321698989535285585623326749525633556391225877424351152159700723699041591196759125475640334582430393780701248403419528587130117662067822224190896897635695339558778737650587955603925811499552153665949079415974161946764487287949347325218752724208809701265543520693359378229245278348861039399347524159390906573117789197601590220219887300865656656613446635660247600441806379515725289711076272543738482678881984037025671082280230979234900744912920886152442978723363928608577272007825718083147767666266191660704572836560008769936622056642066548226347273926198026479527662930380296420223467170297545812233420477926376661275309975365256122203622021971453520612504047232455784287893089679079513335995559997797035151155889194866226142614606770212967913356946436278522345986225938004436297009046809261962548535492881872781466247094884868389366727538587867050586589692248295422753448829539429800592710288502204669577412090534803841861286313512749268975670039581134389536393392452460880221157298731491923291293688093948195232310128228130576352728872029182230763700086571209172428849222252284758838836031214149802430109264834517328041261696484572926529227744474176986377867072913117568347282538146813301402457545497915214762488693832587094436623974560396769799893447962714294248331939540084304299518892018290351816013016973367264253293328292029987593701586341457697122249780809743669106480756728441477763258253442092599873440703221916653582708582859180305610023030953798628323547154638426101597892052700842056129000292050827731890289070494620327711592635295078834285453364753702614070077013591935319875008065323376779363247570247309623790760381502732100671012301081059032333642979124361397893844920931792858765033867802708004431779809248009402248896237703343780811653724358781962104484971832966907332883785456368018721998876879519499284379367960086644226411357140712322993988284971260374787638212379945530709940787595340399953457021107825685350814167403320523434858052723947281697153225015445054075458008587200701989953266372493403224906123001844697819472049936600020412807157653237112382568185206685523999191636659556211688865140549511200260945639325457858864110799136258058222336209824406310123542161906768759553199728133500813652164562474309979643512616661305089662291645977202602184849245353355790132711808841065740033189663331228026149390710870207024366890983896924480174525099110278512381511267415614407950422641145020595649733578309796991692571221520176834956229000301337151304179853965762861713467629735154885976814236613038988454519686577925645379386437864420562853694977335799781716394304578150405680015659521532597943905043332387610642291908158111824327874402568316357189914312624466933640096099646783882222560023257458899165879454088349719607412481867146209437093458608025149744869129246467318699749440613536549423762679575176767615347583860455871003943237095486123160955540844034211303635202296234797892696106330850375760924804492727509747867152246936065798902131517214045757798621157495758785441136583199602597926495030663720173676148365074129349426089530514022042136958486255094413916566564374839208088210057500126150656798502531647958994985522289408617231066578111251067378617036666524141265814772813443058293030775414727907907181811433036506316670340092075645124812140301526471472847850322406981091451245037023343231861015419307728587029235543681808715318880750334607353602974646519758382007195039355494897421010746445260084761226411967573297351031363254421290838617378675669915753992152067765282336985517251491722277102394677937058613794900128691157334016598709900138880663602782490066402697934103066745972103916806847916738873406191030580357548271693773594344672350102256190405513104828543100789818600794756481102629939285571488371468717353476126896000370999438468546767075984434535349744990769003173279724551681251477067376545622466984339131543268845492284903091498793886087145796083065377422329306690382497843536672392711042135636806834807391355952960042350664205069125814421099605100729695718354792739400406782348902030125241446092741371282988143222871623384958273643215472254696879353588550475330190809740195786976791595031533120492842044746624168064832929164885014400505330693724880536870184958418354037696661040770240420340279078141911014929254251618984794928946409530919382209933897361330330137785259742999576137924204026936086294287137705353116507737678558608858819893897105213527590636309637898525371487954560251353458969264694757115804638523001426819612970373417250248164086992009651215109593763665094899194222382881877860540123027986116245950495228069938619109854722214594066839470878006425110093726558782480593320096097531635069414943281650350274915583992852839419688855963182397148598349773549547804283578250295310106260651012914181529428777046772825701209403225298485708476632304568127235983086019125653404723584796067564004368087120397682053153410386748547561612468594715575733617869169373624759542988840694946449640530063606414897645708536346648590007077586901595671561538135339410166508638464352879394222593574208960994262654447312480991411089253264415092108729514210999271425335998399867326589150904872879664973966969207369483647225099572978121843770237266289371029453405209218576997173374354288290817974408161411136528649097507518036131852638138216352968991880752666362396574725272273411762233577923859735360810293162886432632479434465887097944348180538053537576866890362868958562614500359305625592173421319011785336140176564531068354620419597765639715068563569034520526922054902735260170747966132242604927649960109488761810657052159724725576224584711986531804354635273422727202943093830995981511670992165342568433158573753446958395098236643783170053778127985434946750472257876463912918987387617919412149200123210597072758972776285927705594157593290051254189658426993959187235640032284180248063768386036240511553097234660706028212242528039241913412442620378787530525150158383950697732352004797534131721741263553392736908567145817497602306043426780471775533614830901069520485867187137134750986960106038044786140210307677177215449748286594215434494174781970567357544150791352894842660703611895888014047728760553269890365921280846487476072997489043604594259690643690507950916846638538496407730854771283830351484050014728842976909714036938387824041627719556011163412468285782262030874740969909854128023433285299364143667555635991674768732718976437489321395584702098348113118283149132705661135873213190855119373495386652154975450106885438469208982560685603373396096971661161070056933705419737354794083280720451657901298277865812317139750691602951374856810807101946796261160307588816842645610660874340178980693403489723005574018722061790272866436343251364095106191314970576283271852789351482415996524316865834461265603627889541900370052138446438155868097128848306354065984433069404998491285963205406625253288890924974862522427002995211565356929785527308295678768748892944534133260020418714504773218485120009143968293558859303211670393754534126199976307754669439807148309549670285785822249274461282663087232021992932836670554312824826179778616315097631970328867964565475628724911451786011418721855314123410898029280398260327889731691748177404448801208669195577760544328756982460202578452241563014478389855846432036192245889535394728186124894233009275711853075769246343438863975392850007416567825758166453139793114728017170236954845769098308754762209651790053672674590092552821021307821655172821389565593749292822602195903432588980229879648115427364768996257702939145539044220389920040814557548780509042318344034559167884405232764970846192432193796790283017304961500974677346223651044745171783198893519774086005690466253450387641937570279238286345355593942861947162013924296608025796850087124363481054892373662420438727554493365040307043560075352859210942930808031045415394486311962760616811505515879450306182286795477127471118715943379198584303628577638175904512650421512038494493469099713936985996326601032119671126551923752303538343681843779402099476537094231924383621277079289046965334954067266727710773643444132551586508142323149579849506712313219356029064860281640978668906939739087863019647067023635970785652774916587727959369773285698915363029716800587642592932103776166116744276462680026704366181294236227887436923390526078851156063793609400118292473094331001016334178456868063342862972868956578785592893465675307510937304088330980789933020601501877541177557335804951717936199824024330026252743523534175205487327778266136242052156792847498202702504072384310033478277222429398634683424605081526998284165662578914165805005593480782486962719384709512335445587717566298793599960924119753271402575279022898996891093575514449541579366565671034288863881140912471715349989356032986179813363503841177591447376691512199305245045321478016248735049791877721161322435963106362886749746851686955862708964071377161365595120525966292971654162739971049899648592666268576163867874536975248447202653146937351816177936990646008344857353463086878512167013655380580505162872501573029356836019846864737244624859132383902464314511689571335827748550379607709516682649132575553855768851619157866080610330472381593733768558209265425384171104553925864198386716654209843432256360219759002835510176883238162104485796211147632836617272527198379007432645587945759336955327726327997648252273276069918220545468223490151981063647281386457557588993854764398253684937152606239162232154339237984917583248938932145895905841792547463326708519530412004082943861574345472788756875003439101243787037505955563652750516105162928702481191712845978250700139468184301739171647893174997749220481108470032019078220893870705718156401009584517035794546634947891559893982920591256211592849878495915893161154646780024826496373326670202039139390626712720054822800614106871454835996343820508249302260480884682921828194686642828084129716194680650215248775556551897206554916474933207571951560278768056274738546908878757812194979564860453708639535949427558850622867382378581177507448592496245387583734144917146449524775787630436563832805170388989993323591693436494156959418944572846463729465951144597441298607969292552154206786340817200684513491682194477410279153161794233588406276834780718718568383485996375653602701216479847424186494323794823654599914931277057527129500639058251481257846134516119984133911976051473043156139691165549833042335807052901108752602126146148786558917328544387441264429075692822148778447645308050642219114382314780446337720535435682464893944651020924949629925592721673445004447299869597300053299880245101106438380055532178230947172232499067842237024969842214097957923666156548396519598291547467116473940456503996992767395845286237011709095292740998648707035591475197132978568108057021640464082251507986373817275427342706034068305947862617406874264519977044108759313513331956397756094608882576066775349360854450414034737697452540121691615857190305333131671558447510035644018514162628931620879793923141325197829082004826754712013030124523182760886742448459721156512007979839549106304636524241543062032321274149988476123986113170580318237647107208949363253532297155558900696640282445942369055373244564708739234004325560961453765697063913335770106578992512733607250272190857805977972848079707945837824237651133491291648638205264827700839305570352754483116165331501972536446050636676960308171912597953285217381079200856681507372884213201073601671415346762449153770467379508724910651648822206480330741934421084163091800621690857171758482130400043554323742158836591773792662763703982936455037193632684506397941977111696318953074404003117129677564406160342452066425164857070767933262281137640912243567668179603150600604813320455700776385256205484330963368514198260193690855398963283243085320257488664925568190349890296526623280028696767431741193234615349828354858920848098678672687930651218685328827556497330648527439505350222463077931508416568911551043554122233686366182608960793884023764054368075296101287603311262356459756242287137647141041301458912213876253362045661695938274874404077659000385482459805209189442096964233870382340386921011842367002193661637406916199231971765502707165440445376966932717554079078247115199139181152729842299543813757106406568386242948056277539541930711931297869893926563607639036117509504158545665998571257492909786774868534023830970024094171969654570129094890063398117161011833882403160575740845668514875668470705876610688343643947212146109800308983064452305831149867997138334948800499589758454234172701208256324619753486046529349392560470754434582112087818288121148732505151181960783313736656433393128275945100622371358886330954813272089796370807381799452401655435437508438133705709325502540936814271811722407911818970884702753006653064700228406183411984086101808370487295583976775307966189805190029544457620615100114779892121119753454166700655068315595565378693634959143426750434242702202328978421163129257415400300422346634616173312383492187444003060771861829526457798652124515305183434544926237317346170671079268629224729846970578192400081158038185806528874012336297840335296221018774425598924376784039559677708637138367572858359044346458748523656600148334094025467081106595018731414952481520046983781926180672340103532851791895089144429606487594195820139857948184600059723414718292560470443391157167255236791066448846968140625925213831303132494997420804906780026056523185355026011196642692410740510043682809686939816962445627520853822815635201341280395439811964922709723547750420595410017093096498139490579733074403503687122591222839260453934108919244138592550169099267560585922293002195803313240470815257993408614676865740673905899620105460678984556793661517546301997546079679552145309443210831013384975132871716380160287338403993065802868511890403645113509961558856072033890303869726160421301323333063369826131181052091166567592040394505910043760312023006677184071047488984771076000272410203264815864555320170762216890538040453718745741288161714729819553508286595450672449310939181347656452783835360039036569611097603823761643948160960787567868357812178901174787545856011758634140124725408094077531719644561978413971617112769916110569587881095063724561205366745237745600533869768981883171427711965022193305884398014863973027266722682528332084639567554142677552200273942717849945562550504588467149378050425803587651700219623008051659140532469331113319468535875346310907817860582426395302837205705041534741258680927888140683163261581629249584726842206201832047528139523622608130292428257417146594208591481321063832205002732873250285742710685619940599406955610457860172855635706975275068608974399977468977430718103101744681937736230372869166383606655389275339502424456311375010919828504255486920852760581392853210911758021694986321598344664567947349140333703611855090175686059807966466058227676503723318932635898245132788393195236302893580234876546814397193223140297193739363989695203657194773182043082269780010112761508460732218476568646786023319960665537902519856595244605168993800063118060772973849496417131574242788600196224598138601911270368062781200828994201681470222706934213925631629228264303011738639317309621171132781800721327047959418901817915228005535611593036428897798487830077679790880928171686370646651596683000714269014734995829402069872431251720290382029472730915746174189100257397934156199045607994074531450100327676363027449519917180622874542623602340878701107428606506810107786962999551205688240766396213596972614934073912683390763893758069909149771683616852557889577766078079202762449350243300891556271356497351609142385566729127095625761617374078763510046005723838811012832158372397147645822977416921400564228287447911664785961511770677996465658966967248901870186402971283315018225982166716756751376820699410660824518931643627467201069091411336887187562213511458559842352888144460745516840647950093229893465277091086453903272810070368385742919578779458745819924892253245929349671863953001693048317711609249748112063759768224342951712864090425792823184039297747888445140310104123768790921824559054578650965988313432752872082558538388303154440418184096176814501198269974502065569861128887809135719178906646671230989976723282269370965189543392799112242254259788062698729939636384122330051116254640037147297434338607308338805558822975539568063576297511619770448431643038673688142405118338908985582896600993282747802258830677712254773619707985860211953656633681470158843490673064482486829396836012743238387813713802330726453985551554744139531471776819979233052852148084877092245789931986584444639868450091144145283401217315865949756091082976106432277158224661627414233909472099321613360224006259790116772661506270261061098632706727808015726129329123620387761728436070784945800373665895141169098620625818205149555749864590303265546311629152762396254664204685961826063861944850143514221569146834013445485910927651986657894294699290948869533557936185284051213529749028290967962501218966446238365742563269233697127182180549359624358007043382953131155929562162447324207710930999776325561823561896176573093150705499843645706844326654180420539771155468283165272781096945048210729377429210520584550109736747695006991595691436198601376460328427920512902775125623608270822126675036711242544555768938586409982332883415726770845347671499875552113826786523349717863278112053262144775293888961315637058446702542045152837255006750080173257261870500698015466096136927689827693954347397735778748862966177352231503292246193037069822095847084885665654434633731042279920578773844759124294458874694894915566138161539563721519308596409934580710741260323995032010871863628174794212984970172504693634796663511145557235060853768437786258394370036929885401962693611842299613502019771315035186096130583286865041600321816899127173145056897971846242949633812649791959225523439631175029129659131590022484113981453876935611331760178854651109005947524875944211255633429929521163704865567115083812358724508441268332433376876872682155536468023290999139522446844004489595996799106479421288960785627375465148365986212866504600613889300727696315304470003141962796762874498540079264322753320654114532023134653339906098270075985871887147312864141557428178485232805897582085184133850609939343978855961935049907515858618825985983386314396424252645835036354112928263458216740620227228409808171233058490412096313596961380471608146390451391011059658916388743273616087249139741225627743267026599171453199398827461816285474770145749533313548827924312320888676146253342226122230900427358059763056659001946174450962880348513456718873625743262861210534102841476325575896150290318984233820635987753890791387547499366159652777007442661848026786445317624548343742354569790718733748151660003078259420861439936713022944820783631429043076176613393678372005665099717111176626689866745561310607320325029752239368606954985614549221686227157341889607772302668303239652945890555672526047612256954410906587079741446960164663454161380579250204954750651429968407047242981696555590086890820770749266959585135618600031710523220427733105639319534598104499552844873280533440705396378599218770242320759165536542812693632850244129441723156464413084216914567304452189059419260657738573399551099103605820906199293830900735616166109183728993273452883761702650128204483335777950436925584111427002178707399249476002837296875349508663452682542776906455122435518139703017708136834512538052739958562422610296655198263860754013303833436555169470143399474034364685955334489969402869105800177484313819535381672848682515585827990033608640494947639784895847608533178475575491927763817749763323903141984710621373209413735182352186401150967878269864835415882964346400039384262907700186586196272533337758329409014779525967664010110981605734240742966325849733507457272799051120695012919906357276439032722796394653713253347273624703210999139174235019704479630813015527868277860149835107853187067617583698548279248281690206112261823478349548863700972023804252300991963110506622331082610702065325963712286721776530227282923146513972135325313393763818172639049264838980823675161322354377275743107104042889369957257977646864810467526024267678302533970040007363781558525866045782635401611691911888958732492671505292166109132551807457436407243202078971894767541947210909452014461349631869390087297107642732459615546484150174114101658306289027429431853330075759739675238280491378381005295425886262392326941603809039328463037808254711741773126252690445761460175919258837671911059569434894459555791388965756696413377752280521694176367431536585838993251245592242171043528082527338116260790820185390205227891414918216158273002668770926138454125488345427569992957412186307085665130934533796756768929558824492871244298306693290524693215867350997352877169719072132275228757065421383637662123235682673156771177740313329525764685044098569683047920314147250040006607930011105723687549195070941452995954386900754308007172446620174170643865403197925307692361614999523959140773533168921550604916750035706128340420022363405170109068917534654305376933905727863697513715146163264464646780729092990418988517407205061793871887353402977471393668063482921654569745033784588947667425822907799566593594954798273416049526294092598756850786231932788929702236189089913706657716992189052008853098727669034040626731855858615869886341931578972949381882457739687404757991477180711585777525606554036977958099782452264211742144948882058758228633942837858942172966244793918711961451793275172849443327136888361303177608742874761744859136558138644500662151844371480740864732907615900416959774660431151988076156106849822913599468790596156417251118183848402941916518484676524444722457186231400374818721397811966164291054640494573917793953439096423748855232704789295743845822734811660405093368049848656502903310243097546689440028649415026733200321590840543833051466625516328868475105310219837701826917025672906567126402667908131474409167174840858086979049499877874334813501198777703364071953446650123150394186360077311255071551423420903550756994898835351837431821760452279820937389431917109386681176766226268955024656302113074101786898025028206281779440484563088169454417554962302205671493375421449334833869033753660217414129076624947057112803241828756174734912125700219537018422747665128368822505057904258135834024390486329575199522674657103623834455449904248048972664633457092974961410664994269431249316092206793681694926210479165039719572066662906315648520335307684590533401749311735743695493071519392103357050730732634961238097704839932461389009023350446660565520243862727997409526778451349255205084106259891270743160966937062455866182650378008734080607347624360080142185799224531940499470470415911264292610400735728756247789782853619401399981151911398776477904074691465541782784306039144998707148710877586916017046781594960659195719618501814144541023040099953571806996988249653528592347652808235449971013688877790635378959741367981195951069759043723512920159910864323036640910078587146991355553213902865153813241043579106013685510564987751880647486233098216350706674887143768726554812620912580447164778384505303055813200564212122785097674217488725295017259209609735648334562696180057875142397616685460719123412168667255758583747695099771275905726898154943006905031508635578317899055295473447617721297377716095688511754789944466064028246802922144707219201816416541307128334185325460091935301083688078903712333056632457328198567731645474019934016100020309681671208550426302344347493577625132422078270663787910601030062078882393155134951223231629097978255812406742725803345667448900448952410694601311211689929421440335067891575573296720692835983880647620790778552332041351057230547421738616093916189927809219818847000672499528352709692520206409319755172669407299150251091302495986549386104596732537112452116384593807317331663776980158497131770649748538217899204970649070655739401943343735821978972672763454924319136728915661321999541893537141667986166090307312740514705411423491673464922617728696976415266968722350260752353397142341294803870001989769831452614749797248447831952706797478054468730548926450494859777129835613430382495856781589735900498785359978446555317331788161153720655968624178150614605456589240078873624286660300299138168531956383440839000590040854034919465203787605907835795474956452112315341730391976545542634739452867989344757333545938847645029787003341206906101013580817947951284837387463394818107867169820239190684806785642204014899124556056311165269250972114984376755326331707065597658236343477761752593657003203866754079132196464831710596665094187746387015560832796366725749440799870666696975493353686133064844619386790810493991265517344183246405079619788456801483973753396192348964654740497269397876338208827472587650567791817115599104524183679629729742401711547181608478944822911716917163889276419903884244841140857287560185989323277160564138450186841785890888499207469853899879471167474235809221727522868736421517198618684175115959488425932301993869696330651876167118281691510756366566122940052469143535491238243924763347767371031483259886312597294311429986692338251939355109576149030308018198194675721099705238281312312619247404002557970127365013096139667787015897717400065056587359878853634194934691784850165014588653978115428765846080778177440614278996128942896239295233396780226022086037101355450022574898209594527441240029605716583213837409678135405838110152353082005279344371420683437523739898872671307839739086520738991667721709406671411181449068357372490502553655058501399888725389224926528708431665100602100596662351333091933674173098482501931765801108722013043116461232856678216005175458469721473252799745224701130039779900278804421143573072021844996995406612360991464922558320240769293653370448788947608720201888476579601064902112873471416592734771747302683276073643959693952435677242008902378909424360841844413453869748102920686173090739139475871527976115263362773793210863030559914398904660870701900851010066007996885218541847160844862613010599277874010453280282291816958544105412885136935551288684673422627428890521634213044348850959567423966348682942754434817663353007599375129758558901751351934857291104302567406632507492627216912932002785949168458915877664973519994750934443699277867536369306113818349308608282168776215418550808600148593271789098820536690939530766825539430207907799177568992818340342215344284023780779971163831391196453794098849060208595162379375749889431113060311345814878946981812099881438071089674215740545726541043043757085727380464218875789871643119654894213022192569256155022726660520131330179966399120377339955434655742822190991002720001844419867531113579280840823585103939059064306664690588637430790412369710775328017674120702600876475757569198199129348666511509249591247857606957839388388832315913353190855374420617038658957542526452713523837472878807915345068694136701749376869129959683363148877049249389507212866478755559031286899791870848938237686342185237666672813646188581377165443441830808579036355227956148997315617202371395354530631213212045456473080026398204309115480245553323499249494814605192446564211617390744325655951928533088476067430627406688978456959213553598362839382797265443731964273740502903789492350167763018986604735514485395585338186582304939998251059614346492897504364255397687317959902752803597753456406121574029129310202965081651399655519365783034746426060022004500766936728745968961008605864241876403215568112021451614920058727710965705020620929764142587299571947079576688858330874006606970604727140210646526320767258483489393460632337931972255983903766162624408064645705841612485611215441004282424900871615056024957364784742714085746307608283366820768081994378389596495724806379633345840674978389258120451449172868313564183085013843724395379265213443743716428575482855607834356008408211634801278356546219365400202375216566886665971361827617461322675150404946619860281142053283909715044278971747272893957536767699162973653927254217289962464683123969924738972574343413483416381716658533427999901860401325276537099831158809535449050713740435264358387996179248239407675359774270964310069904171798450032142961115833900651818430875142739067037783626879605105095409115549582085036426935691999833140883837963524566985070702908851707513027816157926545651356477138499579442029935319154765073057880905924627513769074949353622483830245955840738641592512640992321080281198234254828524068158064373403274745196864953367458836828268626742130683849846390598750147839012280027049688349636833250911103305140069930650287740989911465889817934212299442242150763760388126749590839110699247639650931473228016501731446782852095233251690911241580513157202425891747521138913132522007626488959516012638805558826527564627932792109312655986249136694542987693906205981145150458000327233668807190982222594479925012568790932416676706194427250338545801041998640511288724373274189531832269923218676531030161209046602418955210423793381230097801596622620527129285564682925223321087530396071580747005488020610690573131465198474280965692139102152619903693227458708550659813994066234822576926627505421335667850502433548715970855363578179477234373136210582959775338621777226878016054747514512653187372884388315440597405305623694104528676220552243035506094834817697606928936888065845570401488855606908181928492267855719473988354264636457546067903144512316727648630767026564575366290308616260203517883539854149138539025124210143637333731659715026036424299121826481199000026414677608998874426130513089426039593401856984898531155628700359611510827263845910434388199142242849242166037574703219023933793141326138120442751454843449474547028551626898398684900068978481297943512706717491023153525893205303023180710304516046497260220569614510234550388332362755176521338140432633821508432936840673510636921468507325151239880261202340813670074525226277087048263286532535419281856739148886905726712751800855006064225739949803191959398166188903072106463891461012096400334858778478481331332454603699836319047451139946163248503174309714071217887437630438696711460326558812197614925677793790160791884873492524822112413961255353260605994611692165154049279167555659113867777018490318369991066311315508592960891370068936741008004951611994061716538917989450287479869311414057031973326284519874207737737735248136094401982242820577247369490279350916265727805360094525703950036530229780514372519079715420688545012428683408443982608630569792372204298517819836446116082592563162770068075167324755566930403927084693644495071994988775928022375849862470080188542409056856429456020832519545112029874448467753290645699306858052766751207214678320312352606480307893493379416462593725388952226840488766012048278916484801841393325318609547814400796806149944611382267755695465853856273919148468617765365023784357979289390496466502310664828076020037457124970228700657627367980218196342330270111379212677037045691622511256801222849660458865998813866666308836084142367064287911502252574693445039093562016914455644832902830001090687638358866847548060698661960998141469277320996624943043099392319468885604521563150163689222341614239021831730523245810783580384540608164233508192022589759731404288957182154705983832029482057198051970500377429206073305490519776395134512924597432665568925761099679772392811114449853128973111287704474563292984583553532711953005495008521430078139055976536536090380334833436153805324662794484935208312323129025512187724418331434143761758005981958457136709660061319444422443260351965786750605613423635305683623662692571169583420959762614776660261524069218027447819776911577937799842020629609018471000325344002900818808642655140012069435714352638352187189870291981745149302619597877571492023446600280737990934930135615970683742024672090208058607286272005956056646002519711068470934708980077824715579552466138022910616411208106108122683427945523898062564018650855010137440135442208087921521251741613393209048058796813526923969835092809318687658938731210751877208288440244270436209814533873980778143343700744309751126045462623796543109674198567893315902593683457591258268283131854392146819798561195697650749831608390399042166648758909965435573853990183330570495823343859905508662648673287064359207284612726764325211907052952968172176129520419007586819145211533360870599429399651984777242060640380099191961547099067981619370198165386094240377926508320384161795471975202673408649778054846401986731240493910982252450260928775391455167882084012557348529017758096624092316594706990184734182501105258978347682969003663841151059226718268511330939215965744981364604767440197098990108777576843200313616929802473377557563058110145679220558384201358738612679855810711137004224176761610699636855321043226403819945279227250288161916343429938043282321320467318232738861798658244783310317398094396763651402009232249623214533038494981240344406815980459231497520740660490426051511642639269876690310653024768961380633274099490502285664525686485956603283531843438585607032909691563092603106356515134290218918987173950214046483892241726202213582188249845873764061286797994282468111179325160265731277685545287241157124138829088157275693647087702488989723377204227185387986773253227901752101618066218933617752907955189065914898383803276339277840312590239815410695710930237131556106891365205625323738285367904511962847135947212786215249276978736897200782201319814343534955102613228286298346295219008639050708841556482989256948459808514309402085485130248785709984434522334604481566601266539698647789908767743100413418154690870404811218724343657235172405625799290703596594096836419166545149062573552007742006774008813161834252390596741829395798519558675248291032578676758524919629908498687546395623398891346017468362940630680583700118651829509284370531642994957383932882708601358047618199051824844171766987400785962579922322729605455875774453736413439199720430743273345051825197794127083296166154395653559961291312230574909430560735582870739662189614253070911706216150617222617274999986096348159892929523534495035944760351937075242034267851964147210405855464700092572469360156066407611791422541076724365061060721183663621617109696212536423916679505636739768837308941788632315043592531481262664469636886478888746399568764150116031955536584348907780547385740820359641832989524683688688000080356503246475369633360636744225276489929817793296825723690314541906110151525951784864049979528582070662774531121926887671171384035126710781751911622819129009510631723585172717656750421051897924224920516543701504340996173850874914415868798158783888011295316052836817751892799460644992346468650449887737805391162521290215037330007929947274894697991798698439261663802181557670830152794028502984019411482617565955009552295384387830649959851387680644232697658770494037632639975959597369935768166578406906008282649632344816588992766606360196240856137411133142319428139345234775392346142036102197593298031173000388555469801626674490802976278594920279434298559859487451898757354950452969151572460700525509142709134680253253309637013982837892014828774208528538871636116315506726514640535858763619602670387257209969409641734378894724016718394113641579233979132906010208828617802245017668606061426726514871773309250115936374357903179190305471787371145002078834332893028602683062736616982107914536619432049442001606646928112384941317620535045294275354518114843516192978053652423302665644607248441076169538741445357971252321330381075518622764953135205753193789599623978443960475165464671096472390533869907680593086216288587330509336357555546070191182399122490512508223629023434922917527985028945589252632146630397209590182330335798705120801797276116028227869302706099788100800043383328028757553247391152870904505536492565627626724369325193434926424810905116869299866615827678026744204914187625094701337040476769867295698425582291224126263658088956012885001944451154549158856630166986764639473501407219761744973944415348712087725185651937030469524247489974998491763478937749237713638854180966672213849865787678812107308918163533154354393554954373133559979668617866314921664396854627395252388725903578291749264535105737217559289581887600794026988289481348018343846824741205774239002782854271886867258926421829688368535464443818915117697763112708016172165100034783826221460334986086356182620929306753987556396179998253126819369938675437970134046986688359777478743112508889954261337562421549761062111264627392674511699291397927652827951101789615446477686688020663337717248099652708720194417985375359505437612695546496358800976391359867190868978207635271510974700028655528097367741158233149418383881732979861932940598213454073090658673403481701329004718724921040623410669427156436568560890127231712341686286160438152151904492242425624389652771401963798243296845813089290286709538488898769710026350693780842036984339712223841047858820569939962551436755074849307254300730490160544903851492306790584492771657951098124049824109719656858850471715777292767225581562304393974742385339405028200345763157203963649554009241471799173109498301627964295840029653505808825093512654164608653048812345184462143462742007470770164397477144965720277337169068779050329673275706067327972208336433837145381892483411398782196754776480118928253287599005220420957440554402969923108027593033212796972270962915834834942259949092572781924135931531264394119222900398541783306687216771378146773417267814509841971358653005038216548735843668643072538012337040143831050581542632136243964471354897233622078782392795227906886166522520802246796828796858026389238301542444191782807377625948017680735215723556157122325769947143786428034697840541503601104451667018285120520635268814076052914010282248822174968038849353214860987571378035768093460964241567869796294067536865992555546923895142642996661656416124629220742649047865199372455535583842156776562887732594752225166195665135867573773414127815568552278735951634790476618983349635159262647483843606364465414266229009403598328307891829295085032115471402859983586539665414723489504709530613713063703152345630258187435372880539386883307300217674781164935944412506188799101559746722242987704641026881809072671751850953362894840639475343000103951877508890183818781625683713097774442685509520467469864640932010141437030757652306594025282880961602356250980601841227607656082662816772105860282280390584467510140369220633901518656367614999077012098884307802380668383016613453984726217075683403439659706023824429644673282396489957780314025869658186272866481065913287058779747556149293417210219205237519300630463092057768324394131015247276970038151574244322551952024050427416027119841057017036130444451797203316911730673161748902271088749203551123248610453268556045356624616610938743205503539137313349985261359742169058873176539436171945130246781525612683188832761930674825784485049636877182704998283174484550415750908772113311402276090194045401970835639795088459354219073110268492249127866352782718088933092075923963565243858813816675199385661223528423459239431600947193576018581126426942248517149718656983974415944683664584339220782308735190254709076024886974581112182074813253009784138845085533852256711084128188217900753227450213985705350380466872058894357724234073962802138798401722402915589187128255666287396802552189286741963816233171437884593556010076574505219575969153861761015377674204289711605120729845422797952017864359319732547896723915711535083107670382633070760083339846976748949637262601654238868267460325084117747672343020629380246882243574976240791163576388615303878874889121444718710604694217885494117784267280766057747133737494074670683056312231606588449411625659692548774062355542114587837820358601531394193001261238409293911116430080384756626194428006687135789072563986765982776139149264260060218702684475566519461416169992981128448598187213173305604275684305759315849672432720310342012899978122838774846310077786394884786566884172432104130300333623746315254288588238085709335045578754959091873995332925427401214410235594707883617626980753489467314759286370194294080435778072050678607366243080761392328891905458852814011497937966794678189368878394974061250938817293459287014275569848109966262493626580394267387679178551979534689337481326170319533281882629806114972575955276536011715328908679697119023454818158323031243339073800021417300780638436992519544816485415872764078611803418986263640347422027232143176244499832159664533863156369146960066949585507563105955964023144929036627575943956153300714081578975609624117442094734905383861008604931587992454763351821516602414444764208926730499090126335825392277174437634027135743525388305181957105907332932475994991908434125930389133777844051309659901478911105688348180435204827983530577396240409883023313732151756630443379198323275280659468209056515380256918076490625431931858614057202095540654794936327141392758181092455346290107742733787330608920130788494604223838189907890180718809868711861497807178337772635112943254275574194950626430627628857984935638695055104212732659939091292012469725398265901641545268016558755125692966525420350478594126082471111647139118235772073886647514158384703965373197211014509218957002617322534880235198017264613127764946939778141949915039574989376624183473981708173084818661256269322892864391217410751098414443693045386895440694877782488046716544099642498120238736854545771827018044098506767025061361135461010267861453291705750807109493429951452439180045260382079193430246184994797974191637360731318191857692405100946979457241260684804300361934439095560869675473272465690227455315042241538831077889915889576855569665764610274084955571301532268899259544263049296470244336136462493859067719015288397794354605098137558668773604385423236447396548488139204961055485189833954234272119026162064775782933695058193216813575100855277199676666984119242084928260630064970208597104185731352594530946559579075644371567990631694866387269156818757615849028816578263885574127626474243525370477555066058437741910993554691345423288780016600333766575900118335773510142153230076837521786332729316685468512800058169392409347000644150255366036887732615565402882892520270834154117542752206932773762706615480526155998005811684973689211101558718338363221920909477613619835380214944265013284433051094300175698950537553587226263779708202230653822892393410925908267197006187597115163640619737757271478710834713039461373143994895150750576324702882917644813285582118359579691841252872672521902508133768427873755211694309859141876181479769433747925979742090187324645747880075027388022049856630777267940135687231173797571222993606735031356512560532050361300899808217623238537561659422905415343915805408139987484788308692834102217243953593449842395452002698493976171840388531415616710475080492036348308487071185817917610598207094608140111842664837531006661031776984384120861011233551556516558358778439238079138562692181518233764085931008762251933183876441049299363112723552308315029111751492731986763703833130379585328217741966751100006354486774623851853245582930569315351266370901179618649274741816242963822551902756344395139961900619903849336258230712503418773523176765084292717666915576668413262687773682133831612842730640159034714617280671547634302466466411039869820069876234576014688541387422603374168919371972577838810315158787519405218652342366460554807264651335716265558110840218837083748986775335356515487152631933068917218547903234335510315504195001435173510755863619976493894168230443108126397023492950742527692406930375367873720737421925229923808198761607220070997572109449835902474918650387875491356739325027868497860222161355351316729797450169611149861146442276047228763906185461558216380715726333508131589712591220440701440167227579646576838659166713568399803352173142097935786453596509485232310795978839249338150629817892950114207915505665479560902772888885174150775000901732658577645800813792448363234197622903614279311713720934904484889832669174277750695666055140363384259437541337502221811165845873718134954326431546888280925809323469956541472957132866129243188203048186247327379683110541032509714734486400077012250266371414373339141683420264539814450225200724187418119246532105124629679938167501267137486802319575401383159061569235397545624983463609599652691073562305018355002132497054531748217413895621358323326819159871536424530937251000071812350604504198563980079572212186466983142054489565161631644361312766839556853449422765020576894318307072533928211486698969300073541048454220744521639549460107731368654822420392781179775915730025683402862334512353920569142952696110726529337487605794954343094014988433601228879325328529301077377974726348227733854551010151747974851732453755517454459394609162842802650020884133281953840969506710992608393123969417935876500592860293455221558150845675568670246323511994944709517612218070090081868242591651120788387153924351987726427457085109141638860040277179317838953207750632669061631519874516530881976566736647126875855527279037622268257187784321037348269128684913461356185052303595840237009742395280676487144052495568498487670294642776818704075773790421168862408112425059712137155638540460161882108527780421524695006902965980594329815807926687647730581632150037323452294279467552940611555566052137197419002803869605120876271742892557468192609011067693418098489588259209181759931161862477739138654984174503985737712243002360383590701405285245730492962633990686383558616314172142088152540479517276555515615555404741688053256020753220607095612897277254340070053327689007544194789833415725792976282826430347019388651847176666143815041688820389056675466679342666411290149113479849162178781044403320136972100360305714044799389165759696237114954808553006325562223398706276206625535704840011562732011708686040149616630016139031415826731106553895351336256853382016467887109414875179432961620884353064685305762497242342999296359642973989749058677891995598316910619277966773858283490256188669884453090321960075399613355054028432244956522862292943533479464427972635128205162152922272312817457306185487069060656287053588323776722143870764216653733958167029613407597503336795770259939214723118271877847805369989440848228780325239463629295593916861052613958374225969587202269523595225381846172110412648136737273538994889438169942023720645453394122274891402228915176716780514855506064842527350262536504567544225550417829614310787791309473221048816321932927886892183692428556048298540448850828121852606526095194988884448991502343926716724273133119820517504100136391514038250218374946238388537705736007033380162884451496063440871015609656417825142889136328616742742616499755852831900722722558225371962716221088764665872503269760697978872236484964175265344362471605845791585015401051935021548394081159091964993402993827340330026671134879314618905979833248926213389718845613842568664738722965125461434868329476541504894982308212979003671490549923778718278256680368509527959321056208269155382460085719566179412733754602047977828409672896049734010937798250833425493648247894757225882667376290257950811419268233156020397569829471124364701752971219969341413741583946000754317355748481020307726261341914240696113335253280158944865572062981680097016699717522793180428916876264939625404034514575906458604483468698655397857272035273554916962198278226136433337345403514293315459642181585899263438326686474488318036718390529608300290157084392144107329111659456251022224329891122130518101005563012590078329016680228228056271492462966084865591634019334810196716601175854851569759343877122516109839656327528361252812962258413855009199873614483703456072584463297263109314427620928202404076665114282550425295404530868833830979852405153463937112845500537350529749066023073332589370085948303702701585301287843486373024877384106618026447961714819049866495118955071840970262269720900892461603849856332492017424832131443990740730469978153347507065741894715482540823525054651851847864504195713761563958575194595681619245531270517007897286886169438906953911278199404461041068293248628241306284475960344589022986244011729159639604436408031005256588885988282910483438527836232670580198720839952983801640782472438358399177278548917258462089869910564799340496383150360762364473304734925067629909910366913362981535696437754529735224109470578520049980859323184482383661441790722872558412750807702756102589375264955055313824842562977402049151467835737277195806651930770529430140767571763238324391323720608946678740367268455737094799893587504275351840437677815298720798981507530001432420780256645261246968999529313039885078909857044700236723165164778448367794902694216677186396214971795142509785737156527633459179418674223633612165581066049629493448133306783048019567228301127244501383628852762415451476140062332255744400195207978701469208515242432262961184378317541794892440098097558562330592584060336457794242316898080259444906442016930419756135018741468008238049368862788834249986588046868826312092718081490605863272566790199391930133813527736813864733025372246561056359842155405896096495062994809254287259082296360527042263549189240490157240806185693936716531775547031907951390065439160981286345321777732923578215297159775855380899022902537565891375691611874448303518037498934784395240479819634694511692045935264052607145373380471806976315450014307913323471154689094225506151784451068064871073997737702532705958723759107288910333963965250264702375248811112107062620064045752680373079420500840541206570243199754276639968552050014677286670201917659924709040747409134928343258534003029505585489152127560200983614673805067754326066754981818420282798366007499915811739099598420317384088579867849658321436197551515759126527955549722264671229228969254326490424572708812527858389448826637331517725739858177493567572710278518554119293031711956467396096939590618106269932903691343947312934329219637635298840468077146229032582846615626278905459102361266521810797498836154857233703913607558494151830273339066809782964237847532604828892910177926492400647677278389114284055446850552098622927698987265842347649802837579194585504571263264989879285181249221399753305820002885028362880420514834474219705695033814668356424677466655274894215497999878635162286117309858718852987282148600558889355811636284699648443969690306300493547523857321541239344088784412345514716017426978776257080467776370301697281517708963088744063510405555002611719914885703345213056909321836481585875852579297736880785581033991716912914043003667229561520497957035158614729666896520828445471608217615938955679225492713439096291047712697420523411612481058959750770774453030049580593477367380716586242826600997259361035489839464344798930957576683908733302525038932227914072109145041868711921116631497974317367383579224245421091398853781173728797530169944960508803081216231334612235629157080960976321170693240314781013100953819383241606432506958236066394499315785779723087515793956140878877137666076996412283595695686711630846439127319473482808172484568209307362653158542001764250813250459980700582332916020470553363063667833753421744052162930102387356051366597773799640055799220581318197613399031284916857113763602689439078120826278675980134197796845430223856898718673526525105706219548308059050918064260233474596889269030921320171870605512916246719777112442315865480110925561117138528181910534178884229809144170106386669208264481156830503208498583496834079009772771009818652316217059053937617943643483461986874490103838826008541690644721556876677653735332027998457160999218960138414557042110843595250148943867580020719751416328887510395600657041740988509264998935362582037018516409536641714838170723136732327933331550911136274194362454526259924491976898993375146275152663515309377030482129983898560360181610429759219072404876083703723823951620958961582542409742620876597440202172637339557612679687158805403942096617174327344082177805240685565608528409421266160135648754644674956518249328244529470341390387021025485098171080809410115186527464722627223465509450657107205894476481098650151307383691654589508950963104708185945242696803427944352218322454933790336997914872585597977806630174077004347691662356259026084562790647651179088720314051662875150367910836453671873401372574539866525617251827132058031658876032208784419443809028539622804266268774515201888339681542675721284071827783561255560403050291347086492922203978629889760442650943520527881877715191659898947518333558461519386903427435114675010700538628636980809946461149895834958242580724980963278543257225035120134213905327801959361953617378969731950436683137330027470978109030148480469050906777093989203742755802704133096484778287555700410036439895670015556122074213105919049496607819346772753833997608953156334462594759468133465278300626816312670528196103129422965567461643304282292759976563359602868133353924939942503563748490199425056827280249470143625012815940939312313741563346379049508048116307351036868507328660452254381905140591453906023433867796458977503413614627301129000000361463466651995506592538421394316796732769869354336744984748892236709018174763761385460028354020488604381254531632469985903408949590945768881542172445913180349260564804188503311465590227613077903118286844027141607148012690216841833662443011477234474121376582776686113746625258422360061745318005694441924208549773192983559175030863456114792812792713323717923455077660651109446952214816402871578579880098128321223206841749837072819649191490797358563145025402955882559987752226084351571752250263076765531746727909403535043531177660178648356014090271896721683296139177051701029380438498679633151251086582477304050849853295409684132904559931356413090589786895177699250551265689879411246825906207743885759914940390304113044995225745094217871076964924563167137085083249603889182867789818449808991716701731583872723763129488989062030796106623701054061115963209496957770148020345131248320941543968686905783696365553822511261251153250839760866456230249072686783020272095275517121108223307490307284498394761050122352610621221155563617584814747788949804345197602628049723832720681135663144161386015127005223363101883262805140830119569249408651909443827041141526108207461025340690798537248501759432855749934189875118602292464504666499324983290413489677311124817710997548678311512401983136648668681064108124324752656192731961457501848540827053716158379195687776970594237261145810018374499007002293831113976291025810723997202930386505867048648591020475566729229830402993966315921991061380894787901256414971486684668979596336430811255975223283409572412579189939731780954955193582942919405652906529801822851688741204080019888689444458201158004081116815684800946388374951795280907520594486506852489740022282853369867074565458224127134183496282614098878494313212580865210656525652057998881010152525156648493224247779455964044745220225769475558480608444849624442621831051665281288212280749117475209206083487356433445580826253946684276145538564786814550739738927802886906771523497348737074830756261994302540340658398659056303426892790093061908873973964847203600195465029459004732710031334620009699649939316892284956030699281734885663897573209577700378291507395061369932937128199312971167209219736001650783887144180295954659432583601139225835466754667930827262199650242278333259177735228155930572713062591810998287206685098494541327144806118214050124172387589356898628389856741717005641988063471599970918871823796084123943510344874804782436274967430078553357645765307489015637018962191793653035540826531842028051241183181967156739596060895747719416928501724308920268313004090528007591419392811703400469814352027319608079584745961213695175912778740980278404169566381483356117894152201910476466218985543673829665899587389155592007526204486640056591168317772898483782887277068168316237503411869085329686641508493658414822606560407048723009125206281624653519239848299865559919730075096363510580077275371014105868804367356179518796924885641848033177150081332077977940422006445880142640468062119887130221013117123823265467415207146909227428623886244263979691390715918427866792897740935982903956093206118662299911145629142741385069426869326534794157352986904823996869962243431450051658105200256579354828062662546971853590544326315877478902352494417598001024857173562573381348300350075238548647184842462845772382883920596533029464793941412142140590740817278556218140537935677337371625768729012662823366779192856395398468850829584271581323294726814543074940304011820384103222523813626939344222383758674249115054681676504866709043450661281115399875078683347963804502823247827733636473321664225160345849670541185879617058875199216857238400413684891809861232146958084389462779813534072706730450130668807075459002966888895810952961104070331659910250340590502478850352800163298820829729643049719093451574421174055374220456093661976650985783910512489632410701322060988845861549613014043513757685754397114394990372115999587489787385431770100932251893262119764419632587246032070551456433737205950754682891898881602121136410744896111711689101156559063385498703614984684974728439091957342618261670366598694877122355453826580169810105736644420389048809993560693464725493853214506856783845578418200424475639750833679952213319153755482056752397344442669814170500272676282732636390355679201100195554680529761784640266949544481295069440454777025333630368903271756543045322580719824762201198848608704837504161906076215972777617735480210061708510420197678496987437123603729873644297661071236107288056280655110689057476645742566297893128280925852591613203365860387702360390976467822737922651793783408956862546129498582479707986670368117939586334167587252338828988081223797857311147338951036303325220563640272830720860585859960515346662382342779945970108930560767375964964387644488325738240349414609822445097499115528278365088298535577893760541562205134686891461297289162009176750385096727849922936639888368492326360443670731114525612331933378798247326190223642085853384362652648274116665231613584150868392060363898448008365325207721224668160467693936411606343316006374150402088921896957763529287691896213436268348260807527256477089251594375203495787583884658173882865190444830300545320434564260914359312073618090685131854236504630570363145912203677997730958629626680089891677683387223517061131836817366421574961985688963566948661470497955669772339709721341611961499750712025617759433785854135498800257951262309986110409519089639579173106675680922547132021087123228416153309629421758308286071597269051846877384977522401632509637578502191556230807454015416999835558605701580246628017952448343817365879225331488743553715203336995893108045638176147238169425243390535414776068178760608454312972976741523807070730012119455957748607500264413195744129296177376239032266729485592985786570310207694087363935802610168635281359887647885627390404116803521689865424248234456043183882401155202636589856059963127153968988920837787862484678511928323914877862912244913551225532329006827759594627268451731786084279350628576112836433647389384172518663879549909858828224227417040144932559870280768464219897718850003593315332643539332979857487704492285089357989763605667979691497906730677522666097409080478007124803558386188415748080555028647027984121621309487773781840231408186383402918192281698802159225356344058541662889860337069608601987030980497353080020799446123922361550225354023129131761007163334810966185435642753177385334226829126096708036275638331150270760153139935450320242692358858280431212660673649004831015514763661537527771513979363359866418403953905921889017139736342681742184002555559445778206566472632894502724886005061286045915586844174809909887378668137761330877212236184855305344357967194018182693312068456251548078968511724275169056806838600586067752251684580350462294481111489248081235660500722299250139425779014434995821840439106216911140161493320179979219248923675749747872064765935327536346358485281428619267891128896377576508863742368806334868864404766569651738496950936048742561354683076154786366850283670259884620545752467328813894744437154547804744600398967163100538524646874173016503122893906656765526685846535501743352488605238955807265271363981675124001309550266700218936394110145664416394051407432354800445591611007991912388655731406589391273742816718600446490556405555899251252085317669820557013935571508944798577438851095549145283099919286802340490557654260395338600123127002068936380213061860976777631805219017162682725919767522834346973601433262553681052638279834792537362211983973814778485345091219703507891003196221530252189256311729225697048420394111501308635967628896454553386787332273378778863002002651917524328724601616348416326196083611436673772782390973200244717321351587899622109407418088710421511172376574638932095483414852534439877568399788474623543603039157660636743058536456018585397048900033550957588733565497776967072955854717446072221998215273593240392465050402757753672273230002437300943870894192553743773554933694604841955003621512166021755768760894763928850510375452580014631074880509867460629160716463022396277123082698822632769711211679733642033823969232296903800644066612088551276988253733076323243830368399419490530960827781800811553215599272674356154773786723281349978630675308624354495235767016054541591295873640954806568619738918410173221176875044420311861169673866998258082881899012430073299944976471727397203285238144635058010331537510357485103319243010138815881726596964750424764148524639923950380467636560730307568030537404328243082379542126653126874792167426304175143837226877921804096704700188606864529397896835893070567154125800274168461769143578371473277598254175155377502252246908028800240001780574578119157244461394842888145570331914620526861288173152509766873282153186431406792112714061924603108982609095807114808641489490114838008362673281716863279227019105914780040967512327181793529137344187448759986765200207507193543855838593615976283617814556891526635688002839958671525219794152161939770404906685150717952372712893669009865177029052351172028389790841124112949471497543752439519476806096162777583784816902211297589957225900641127618548661334567055501386078721871258793454671832397672304547829296206177231974049118486921123040363070004230025377454752687409614956390016760990886364325346867062123528580727479754811826445049545927779657548427913860368882933693407925734572305611199094721178692285696458015357536509572536141819169483089904858954266343114217370489200838245122712162108736950402465562740997340658935519240502955439672986089601008803220472762400002372063832938346556443300150652233400646441638485727496754633290046168519801848050707526587558802156098558777374988686601138304063911218355189294711933139705559298479014516769591938977567551945165275582409912382858779531257850986568552230502473842511771379204912216336709093813187868820241304131028912608440450424343638721498942456585427024015204424473048081657666412182005518556169050858424972837475341675596407339589589350975010150367835549190426590963114214896547018853914320523987386000991367943992633701008524438369560186081715669079070620292464270585448500349875418037184341543448203844280512151996710420996478543411027953905092823635758430129741272606078294680030067745551445807136809411094865442178491293182642433351640226013518437403415435474446901171018488208201769768667807516759547937211839083874150730290470120469832155056183951017214155911047283093008390002507956509941886554278892423254863721294841311700887119904779978598935198161105818132131491487288381115164004637488145778706841225363199529363602270471953875206370411532052984492461359123149627106244020210588665584474112815213520069125186415704980916565292982952875288169518903849055245415248688187670034375083426715534062118900745811868340977750216316573925972000001002494390811235406777128929869530829638788345761624706210352331774291111739599978817157084374628667854383159329554734487733314498266170441218080143542744033200373066162424677259638466237075225150890189667588561471788138463509908860238363082749462911848369821188767911552307592111502710714896568000109774356583172024527531172808616722959176299046483410303063461171414493093560833156548646523891602685911555473641578589433623475558953614017617725112917285501501744367654333496965738903467834346481755932840126649507612168155843174234492161283600174004097145235987538478004989740261254611258222065170366100704524284305680883142574723653100723468699547975589268478636093359185428157347501275825298109143504038541832501714062177067862076184291703674661564194368021147984061929946693420721294099669266458005245962577760797853413628796185426114209293356281859596695307627220350974408015062517808806769421713247032099319519936148238852399243116689830386472028234323754096502249344992559382044342506446231959937598172363417339068792050871466734571963109744181894317163798716457796232760329236556433495837851102950740933518132342380089941408514985297300536669320154080740242260900382797087054079358364587657194281952317306157914615708316269532828266728011534846277772469654484719952496842707669048087865141683628400424556461123437466794494454058998987639599081963745533614020649716843637943527217867174779485137786048433794653507059665884140468172035582270521726053286337018941727783694895474482473359328757282861981286075108031952521229849806230210753024367708788270975312692539172567186173139556993927068548244842671357648073364718880066622137380478513623132632059747439886814568512880310381426813324221336746627239295512877088363806245978447573185614319059856800864799602567133941138881014978072770707027972782882657129666685234298062556726054181086365383737955146546495204977099157086850969156425881086259217497363699913384671964224170468565990040968366569364467199424181394071641838791793072182851398127959690438554165486851262014614254165823736261883396602023599951505461286073172468215134238452036418353046839187522983751431732301010608731193935554985418642472972333763179995514598068826737678791667781049223132404990393956292088488938013629014791606808302330854767844013871611884307690166648358707237927652488036255686545074719162228933404792247428984528279102623472452085455475471731076078833190487213721751044361238666106386143876237002627685341750855353543442799555373420298906677880696204292114846062880928984996251892916459378398845120625769371893726464160562190644170241915698849235502477904489015841727777832193111957881307150780690624493734946134590472057055844604762976011749180381261640890877396418898447840447042319568580649469292063266723043623388709679451793430866587042520115395891269844966096523664689947488484613293519589309638066092829680171814235072639570349791173443633209617675727741922021158274102641901413909640138908745425811283373245550488881858848099977510731255410995321065613896433436876044040062630509908956724849016842376538813474472873493439243693406748662756760839344371204218789854946997431523186174678139832314131566163316049046254548769962662338064820934849321407980708177839089236494076104459297773464083549754618802562004062981433107207485863551099713541187089788099481461990972788837599453240172127895849576688544098220403615242168512673837824440499495501179147203035225038098005853456674964987502086255682464794215726650483389818056702234567578532229891264909773418227473782499724821379471935689808577600934072723579527616685911362824181542413897769829564948969247258790833296203208762357961211626742413474875261037206656947490613464550219253675464989808179659901807314690866617722803199014155845997693494979506206331529136854430168836224013704189143193159640595941225729202434346674471044941241041457768323877135712949222292115982100447602856407870354166614161653101306290180768760469981322464281636628663670864480033456968223180550843429408973348929435071128642377600834680181707019182424399600280108112626635457282940924272700067338746293998080923912004061635047403350647450809797080702972113231749466020332156277999591824656233387503723208691527018663532652844309959745641560378184173310156855699997069922118310684402297382636642441511755402717906335555041032632779525570527497300079990769484420973771691614320203726766756944258869619940655808894094605935234641790429085274178428099785049980043752846601178012995169517111032349623903223196321883803231021013261960527860511899595056551857819849925685459637209535870434747510183029652322951568526470328702957482731838792229623274814709321891762605148864693180632120016621442097686537392724686560551164297565306445345917720087841526317614321692098199804029319988921858343026022334495883351991503155654337434095409525991146958135306697123447964477987535136267459806045200247994962202193150541057615349721104317424237409189894984907506980319628092561992118308463811311946617860762352999759569772468923064974017375115202728301462910546590511132294624001320755057046600397615667673756076280128480930097387049762625465789170239139784888699991678821972560951806676504603217820141237171228969385534813091131797009834031944463270152222047329266760469257619163073221596557239660866673710121987135314521749771883852802566805943208769921019526731577361159809259051655877243163877090170827460961203155294544965923075033370602322088749698921632766235669645610054171724674808501931210423491506690763345842805635018725765459014866060882528229193390158834650176544064622553240121292795355290100944855208373641092797945527417554377941088409509775555118356839660378532818078348263769065340973458764163435405383423696971996509673111149793971476377860222143101751036621066089616700697795133998363181365504651008086142816095229190406985640760621132948445517882751364709244407504052674766190817484235489052446824761072746918287266772634404275270929981894408515171707147085974850281567727651181015343040879543916866923729964405562804639714075257501006746170013795026533191660813162311240703469973783125813576275668595451577788266718951027894243147399786017043611897065381352749997620967111634233816812186542447999063192112856742536941584899695625610914334415768066699037497567504246186349212596939245822564081548387025704403414859531519241121524440513690307161864553196479232952490954193403226090649576097864887869589124125638107267730821676885132696291465443271921272875434519245870629891276720609901540461076751925659418275578955984845502424081714733489585669470921459857494197193552912661004794599913806426559709120076773924179794542234050414495373103315969750429495816578339597874381112088367871276634195768130213855964401657294980932176095145400014982553075154945147409984571757037081776636386820520654924561652793217553909481853112690839366416934265202391309558262740903226196275759392129078122772078224340599254174194212936823960203067451446064133523914127981223512335320489832861770298296140144886709627912148195505531524929662079535707373763677189089949993088118392340299168041874740011938597583037722191419700340335162633996439949728701209226116015376937290248906621505922765049094631922231573781295651830741097138276075369187685655215583908956670618569415166594384822516152528608909756744093571202375701122772602589201861491771177482393413207047972668833422792053307644632954215599967672136528063867441167339273316036579636003693666154847298122163169810963143530857366493266633706203037984914067113358250473523774128114922843855077354473811676827501134804961572160820739914465238687849758165425692317232545279849213054172065479678835246985143764301575730417967584211275919603484273888096241381937684932227520189716200538999111386619448869323190512920812086881680946032355386776919483076450068003224413146104723365063552236497218835168822985431104711580105716473031564346619754582915845766495475010865870173225809442370444488127832496627828634112398688883026183387690079211459380658811402018836332359711146398405305823364020640851575097432459261775742007433064760752783633762224124394265303570602010323438186924872097814587344445009209678524767140189987588534117312283678293609835234599673655981379591768755744660338491371277997326048704424164869931359547473828234262505233819321626315050526100035524123416389619514401059787719683963324822359078052323503579870371161311143999012684404461832990306051322698049960608195592144835458941458379244263979350049224083948231933263835261469008605683287251431269222582498695486487251850226412190021209048032693916820275242373929960548340101808294401737250934987365112644038534277638359212932837519470060357099413099791722294742465509992372655299430949166117951281032687494588291462994339686049210360684127756611200951335716446037083296848463849621904764149096210921091910963638841792814209023789553359207200925029003521635921139047954546203044836562990216697726670881436271995513593359060106223581238570261200708885688964272797838296635342521333737654051164431075650029455313566489570732686213625647043893474023749990610796886699958150972294939458588154538499397628768867307188171436722248190746138740540337703296052649546973264151592184997390797941746454638313145896469627332106986390417371604058522148102627748587992713324084026155000610840183782759089236349007346551722950558899861104246527830169657454647276796060652461305716061249126925742806088471706850098516723314340834342470515658609469117142643717524537320467643085619834380112536164470870394699155481847707487463125399300906671986034453835197884031297720863213762515033335084773054391400083620327696806133494082283863851805423744948421152152513118209015268001358689320290398827023078633977302623291622182087612615995073811348136742736059094020632433630989601723232047214978136322904248608790180475987220421037329549023406907529465002997615930717287366057494189030609627324943301884125625623634751048123905787197350850046745406664909034046969526310544981082887490121731905955882165299911322445802377761214796676096404143524574044177000496946041642186566370985174032348800342500378806577705869537381500678501060062977805316347593064995878890679861927610882893698990117508552538908353487109369245433202919440887924235003861469163794596700328984108298598170929706140811902585333972784055973334515035127724350873621478333537259495258807767306704866861897407729161527615833718795416631515146854306841377115476015486994049250658561037504612991358821854031002946824099975733881272077848851022403826011194264691254406425544860708968974971022004650607829500467308765448964872568926086222255366459943417978702264499054592193619668339949482964248617360474508794768401884204411199078698314126726140709581490353121869121561208136681653171697159228820858554461060069674402777828257443916379151653626603285180660692895380888327366224671639137568962760925374764283723352398793587971295309526175580477085952377779861773841600737694181038791181018527072923127366354683768239963974051541426835066287251566842252273472453013466178643524630160243300008752566293939503531723988110330661291668342338929574307727156408331184380766770748380763286502035729101116427850881073848170242156301509980520595115091367240752802180096231621958032964795673699216116325401499823559673250816693578462082847531574158321348849085097028759251922379125203504487334030347876177486730094224997773980998951549842882160029557579836341860632390813199427471266564167888993884132644866843975315910066355612181504273271056954741655923569401854801669832986468127639674544279876842383227678000736701495998092712835407990154595289672492626439501225392520600079204581556881994814502005738948063175597708688945673342516394620142096179986440400730133550108271560143011186776506706443380991563486842554977640143969370605480736532886862599597390516742377027725325145443521359759586871837696729641922126367817020391535967668542595577153670707562819117099278268711177528640504750831744258403537993513305032005535385333391304824312598786572801415347236186339366286046062873191167582494363518911899279383276543540767124274738972257522586399668304530185999490082830266078341460652104247034786640025358389324309309937000005386966861040551636883671117985130714544184343959669091283497701811174477691877086699082557100837813208265101471952059701658270606499527655428542288785690256210368426055663507549877100622072480585525502042824633493519157596894000500182056746909560980286144194925792207449140166144076143728211651495003318962688183665708891606536898780495611715219938343663536403365782349294196427253195253028493014321978215983174762587942215399811945877094510248955812498009277735126962942212710490836516437527472597671619854165990296324640298991631642079298853028178417948981414572470728409211041202696464074811423173049858129621404521993236605373997283981375770693799246689646285216376688803135951027219091710491306906314337116362990795249211780335988865078019227874580226415901923314040434952848363987970329868757504820818811715724664509637887167564172171819396446309497573867514984383692224313784887365107133548916405532054704066627167855946663117203296075565085511998240872974148241561629343036953676383774874374851746247337065844527671879010108575571962223524268489879304729991639434812560963971362241473349029296031681807938130017673388024256681201448661097443743924255722890170497585407894973566587330093898892087047270089038210229302400081089377081368597486751966964274985045617010713039163234009160744929666697850873451022870213971346433618224993334453369987545323489315535861917892029600413814760234227851084084978190516632284575340703233847924677592098984106987569058836916442441487534296899899761649957358231034012537871918829942945273307412608665710649228499539943775373878716478267397812981472487022086548965895151983211181722329378517522968538132356294651895181018048785785528586004238772113929790723443081242916369208809367958666640581566818195464874573874962013110215914365743412320510704026296053379025795170239795460581909911445768646886443300094751356289157315041208360476225154568296270941561149894587174267817685739175506619332933698954985416058566147901328657130562633403188869563415522504167477549642095589455399086475442805511236282707552969308715530523655496564747228357960969580875665881083555288114389130717614788671161914775896261061580657105216837558396189049163475805568776280097213393434027472298228894420277487384963866960950648278333340690470377133330841775241240385271572698307372099186186071394846741805507724122534662111747258981766834952107187716459081374253252423565903791938958511442878571327963252984551078168357001566183536187838751642086307406701752148235505969264332856078843324749941880578158029230638800462147817719388018853430925015496153843361778038683466595250911493022432589466761060371767105262074845231819946266290667555734587356755368295562638710001177930731930947356307858943927526984130885736698007427548262051610905872039934721933481376317541062699872849244846566253664371835269096007675302640664753759966682707870309908239788335793039137359701816785103425244985212021098561822942259413076749794346601474953899807562204139563311107910373357449674842608676675006220669413213944983545471835657288631203404731356212751514650950083596319561615120869016648872521436623291656144343504147539562455675961099246342719941053872824603998870488999155400343274547383446161813391886872884294688304789143135357061348001549834020474788691732975160090909372084846207867669498115419589670257036635743316095271017314345036390515851687888604135690759535758314789915240059014376977105344424925137523519140989625367356887398499055586597790491359620726839807976182088320768179103518955787445502407732562519406500566161512621304467066262723684890839174856332441493437456351455153133351800234061987285878452600222100320758714304764757869478792489659591301154516562758332657420253325761507495284997912109839217251420393536653764224064840423026031840472929469410401802836685820173701804432657807729547075059225568921512000500201066639090436416925667170035121678537032064400557931620125885472997823746849310111775937416988691850930219501345581680941220514416203059820682104260302896140206091896763101729578586962100155670987254001043262694157566851377406271824209374361351498253894358093966015111196064726786102424761587710296430281268863125446114607349827800355480613209648753187854025766965650045639971517045643821378280917216352062812197745004101499275483070707134424827108466964541815553879310951581851676266431956846131917066655522036643042975551426826437905099256985227218534162130327064940009989941192321320488296991542965415782271047088982751067196442154594265056533450022478535718558110938932095311240041883585880377088339153382990387147698497854231005041929661011816295458681127839640902089786919168841321343098111717379591904848343124253171236877846447128338879317709004208117975315096921556975215994904810439925107048964835379839647815300789013725518110401056027306322776484964834311862832767918448369198675777698957584883022451482227690229029661079030618021448891779286040280961524699432652312023059454794655501354523289305967222140196562667423529772588009367547245016241003282534244713967095343986653231321139623548715274031953221306379210373488654644474759778583667106129956961531325315076259725341296894768943303082709455168473579318038800345223002232888550795798320104982190455302465998882029599766354760299518692997800186173764455809952648040676494876595380222382836981925416606955764542783856891636322082101211576605965415461320764305756689828856635741109374189900108410390832773066414867187322543449840715419587979522171027452773109900125670093005217262991113154185243687430127984798351324996359844655320732269536116533042593851397363079143958882044212793083948294260927304667104128047149417691502761395754565074052403440352831411607425072781384622295946586972646357208704150183966888252226736450363812511494363371640671232718341051298120561969278098902407000296138601715522472181235068284332222878701641760642096220584768772186241174076833725680240938996287716741479940058626223075520497060175483916950270946633029988817745553514996111672955317527500018153252003683415352115778755758001738873777909735440393670527497596468645966333029833506387814478429235381622481771024975783486512273087585862635851169670686478307373679228958426595848884741484612400194875792831296470694139909870379259750255799257792847955489633076420670310837041025816866145731456703658831902692622393737481161182581796328694620464308998638590407565601327577843168465023024802000280489345262428123019802446985424391114039938600522127955872117834432394887711650472118151888048269441342110217938311740659817401466442972254194847407044005927723018288472126912253501602085784059983658345423242254217532524247060047869166423421539288530836080445535197148945359851275647084476148848631467188218407578732558424684562637314718071937129786815425702941469398188413665334833398205630227549830714850598513164770440228940876685118970997783935231547945767946116971724561242000577013531381421570711620854033932640376952647945257836177200532448362586829186095950347676963294323071171035084881544913030395362118177469909612324594969501543267841839136338227094989448677845931508428735847366258548927984563323515450658107987104267727609463381393907972381716236716038288916504575224041634693497673925742763444041008285428512271205662667717581189211400870853752965076190172090681390789148535140227563652841063482285709504192673901129247444635009885546120189253288796889427803201217336333685257645165867782044070219529851151004913954664936747371355870707259913615355178062035484287994204237149824927212274429298173187236202621505121661188581457450850246771325605751014653995774647562950854791548554099897834294097566107130376352663030583032898235753358438634568219108666999100887763899184215394765054578635593628606676722768034749420503721096731949267760350494037484839103525756937888564029944321310815665314732613303748657859773712037138215514445520033340226518822410648815288006466258573836218165041128608132654204864615582128309784984406148030462945532077813162079534028128821598351103361272123341838442344940143897119054813592017347111921702608774549595333395839328615542221577846216468000979610043874306298753965656089337150912954261224899098598479195118947043832749702058820547605946883343194208846648758211236312121302903013268248463041252856362047601891112788312765438321363543139738361673662524314887051691554336087765697652221787344027196322176750747556932528509907900303638355503984439895793550078398103550712336431314128029606995973475657894780128780172515075084172883760273777513846395559568562923100486848828942012362814790764022568885025707801166330942335720574398359552932942651509892051949641892996666755705752839876060155137647518324501603151338358893387450548854821808611392910225534036320312482749976454857184238852817669882423389256443940846846204305929054800292429686507706469394847890901905498369873367016531421906051655502149164215079252128634865771452702829570510203905030104909297405524578677674891843419205948233264225640641146723272484305069666787049563038845566825261711334461225820950579571000839583371216441189412398837585064735357679677668220312375939840870334324712628570672546813053875625569944188168188945200078498252465571078081758161971429169409358260554305836515819499217667537674341519635333791347435191878675245741123819067459079899105961151516043275910275964402879841027649100349016390512926445759189779101061879825459661423452135976580585797655902068275914988594371179660816997568144687167318614695867474613495373502868048336776164120024565442496716221638341726519748491332035195257190485702586006241528007692426798296051292766538147421407980368691112226486844130839819230072703705080158597416578006786539793432375553222966384440943973360013273719623755912520471902475660349489057674089547551043834197081227035207502114065050346036056572066434573877041566221478858631710817047163742132270728263437925417959454540403708778838088583404207326517074617390817581892666783988929647445037519958062985665367158185472667580916353283110391337058280392568744110718242457898361919968694586133477158710385461533319748874216763935986510170600785474498068152516210264868789160325787021707112734367055465390007955115528168002832551262824574784711853584389765132277330837109705125974870780650755567295784414241064894361840158216169179279056361762764606399205106253404450752963017289345248115738932370997108605910889286491814100005488016772497193441458249206823619267599693776317815715665519454852732401731800410400509951321080540351167434174015342363500168719727805883125609980339746754185715363266638409723495212130427178530672858913576195856784423051674038556574340483917998321449057279169731272682195531310834697833442547469599506673005847984841241245128662886001837311651315912685113694825647835651983744206724845522617555098247815466218888489010384662126201292707680630975516817713782484674606815068588241187057890583345078014391312409153359394707451534004814097350559289129534326957926455504772096456989347428568433067660739781419713282153538851472807840162422803326399305826971539598455586648244845466208640062164116996149031214972125090513957875886894062302829418140320187868238565828008465916690034457913002267446984138081959598465578863485740835381962199925494142462830031060880373672233434689643650605120545752737642848348340729522612386815495077769950961893029142137808086130521852245770700589026430139175253455384132902449583290340773884620148595121377265952020151444235544097845964035026259140562712284423043685167621148865250106579293514194911267884711776356285038143855275512238865154305498443739308716112856245425079811580538585990875716385963676964658274948587232462947508845055130937325670009669197217423641820327670275886818827075865453951346563001820213002365135024183322991407891174159382687037633666271100362450027833451828957402947154676027900624054582792053075436556988418981719871424837407647922611094273280755187986898855529815935233463331576805486614309988483558324342681888055362976904056906583112892896380405391409425595088048043880786575093368230518141867554492763977683553166412187644269208972953287574066292427647882506713872625979801721041269953721321730540518346935315644879404130896134514557455860867082762284715600853137006307601591061147997537916709561251648830919709029341651173918484698452245178896847901637051227726661292146853169060561564624600441349738672197132881213542844659092272240321191014021747647450612566701834684582685612622683321531006756163732160553592391253990936765167974815686239229383110598871895229597223719801217167926950961144800230576114179655649608198787198867253676275635598206433210700498168667948909648830427806308150575679516048963360340375693194573823969002230879079611797722002751094611768957329341360507409404052062804320171362080025877420810172283501247802727811217206086336513286521937247083133031781737901741161664541988994395699528668327773223172240851679075848712669812983364412940087795500390863320016371118710275491740928983931843407562919199168789469469989101072290129745565165264238532878651614906190616692130703743765515021291936627252269976099729043599808030350977086615669726541523919994551374712587417087019568664885319225822681967449285915973987440222431319431702196868582699178537398205388366723919633441913268033500613863091336395014919331669878250133242068118618899716087157138440953498401613415547484205560971038347541894332942179985815858580147865199343643116823090405048144273303436181805738148178047305287600139631503422144475123594137736385862380536530373673034889057010070039565145577599099563115493742143712566611977244245818459829488929547976926404522014762522024491141408499982562115137190090682973486394543664415643700378755829079427973668301051435661669386216687215527322188248786185148697870270141414940499400723388373680120937517350399953992843551875143589172440817546348540518964215763804442018617968348517070697803644327868200412833281425711957431704967450403223080603615062276958907303481627723226983370264221013614507610086807574105727034061478271228928675383761230657230871602484931166697349344566372752117981738131480247773007438234490401138378159429240800256594913819050283168217080306564093914986567781759558216471427938048917093352691216393370099422841184733389536144757001981520211002253692435607582900311330310383813062125003110008555386881981847956023184371320225950976964986211137275426683124860153815304711099046445230379030050449644601741349497095518425326451844832143740556336272227641207382337612092052157675700876581145042442453517724412150703753225561033463921368898104502914973481442899711253227864019313411945450875986829414514595790634401439610127103416964741289130492920112268165331257417591793724423855768618038187645875035612383896862007078644119381138022654099200747340872905607590824038697162703582077305029112848611686560102647598625322485935758752107671318419477137019787058001366884231327408767983785895725987166902065551069281761327684358368940659774414763116933493993062414538609942055071236951697467522673197497542312086729137020545796936698635387426146583170579596693808312645205271261665303036077862143452933652809097221306971054299086350541787877479812690679853513579165119614617182424561509845209336968426578675729266638434772842708745429332614792323904621482717290701844819691279119020576085308923545067619401220666395560724616458893100033780619057194655637868819859152491671003369585180791262440696765746229320744191879970637689706463334204725150721920084761112024170405139528538693388417371391655145212184412869078281121144684816386147427837734357413037033234234872127809421471930477205744055380924642124342584687505333281541641731072829428973997922895180110213311381855376539333616090736984986552544728986710485437126073171815154409249584893274957610097258359638082969997986340454842881986540477456923342496345579232740728070264562822149937913220385989437649766697076106591432704997806990919747529704179811404599025777145777797957214399063109672685156987383377946997574189779979048624167601248749610218618813376435885804084925423498019049460139628990411614120395546897429206491524961573381493073809476980972986232738207604959174607697928689005170019302242902546037729415188111315237971331276443761512344172338150331664923143807068560173729795469587318732084988909338739486048700107244272799097631702139658106419365500926691752900505485818278960859411655282432303147644374007237217882042877597691917648981804233500635353029518772649897330468836980517744648880455497291414595788827988404484310402005556547416458753388259653876091852410342703295120627218553578541816746149890525278267679472311190883599237471298587339757372811053297042763966006584228452445921814392689585608676682533349104268836824033546712920596104298531773905217265641146766061674910488781573086587044465378829825091732399441037324502902108807331572092338193031783502736906348856570716114890419784950880367538145460557648272714178004938266870567216759578968634074208960285857222229335946854099663803588454670207438633794100376791447458707378400951237554132509614894142874277660903511324939147114689232798371462504802178877549678369428242097758927200903655269423355272575431588799122270110890199936315088093238357593811382094767596784743092556967501861354695873991057476602804421139969640798486236260342453674260206300473082014085877929924000011923380382259831620889654120416417075666757595590337798886800834990567779601729970972029434450026252640333111936087649946190803130457576677339107670186646465300159068234104724039648646440219754201064735100465924042007617136204599783948608808187988994349066055846804250704306840691403301833375738018828408904331234514517127325820397319435081906197969620210027802953994092321403768525047304973102592851849560087296196630956236745717219593455727291234846704373677224374482527002897114410482226592595104229717202271094028777248054345656944266330988028851205097346829275645276884985414568934551288250760124998626386367420736236978983698125721982575986433689258132740732045888181551560007726514643382511426943087618503748242128099568885016038605378689294365320415646796209229169783364132413753504494924865914756768818889446155769725556956173318100366895257531278277391169612837411280141874120769080361409372592774876691875366657278495714716852505200969806604467469203188900642508610682797685303848979649106263520969636952939174142957320215665681916938264172301639397972986982138082562649286967589838452173233653568132411224357902029430275976771060274370619312863622017472185856218242555609149047500410395020195142477991680585489059227914793917130440886698214274848335029558949762609089483731350415881875793964282157705497399933831522459417937785594914421867889578374405443012819532336600160475783046768881024163388654015812904654016147824183193231700852611927472936736727469638063651340022702525474355730672080351434545266181086089001485697933604799142778200008391338084461133801597302952796673136201562039021150590237628935427736941800322797909224522672954192045088542024226100867675019510186584863560022354477882732746529853235756541490571487898337498603161189599214841001984616609415565123725928699753344704987170892203907823396709579602686170881377512174710879864595011470991382926902270818211542845966410390727625671207031286854704042440814461794442366653122052860896588142124365748346830063693496416279736130566162350534495761694300750561117791417213066027237528127077961529504537639578947018838274391917121426878133010783278322481013155760149251234980694167488328904859380431982248857753624297313784123099816519689518204256197713650877403507074542990143492055984267867448689674108793500268014234244735436964342916405592539213477446772417382361040781392379498995107221872777174919318853801876672486506365140429976881322747485791034302422003667937942065468220873724767803104808498201944178497366245387382140870530971788099112674441515992116037188065759311567616897488102087646808237696131822232724061108998912624455005169975960404864829042675634906286108800352970935187808556460071434213605843475483685166902518910423395412484214987351045277832417925153254007264519737823689128622756446948788316108065610928766068953247479005335093674421730029889774552775040548692629546097843181177084663807754551373080556451535399887344433038978909670335531209551490341979565530364162374814966766912042145152916509314562510788707335451279513488579957153618345896809692897769087146997495605161094996324212805744755052483069716541024273229471998758181124255510244336419407263653496506051757195726482474425867576857909156379200082101018195813141025509644336988039944585024681721984937175103661602694623908090353671860995491663445230859102402154350663877837112440295224709835211979990886149006414655089701135426583964297568827958834002874704866950542940485077333838005989436798578914197466675205816117577251345665493695236600872171622825241271165184169988506121280049192659421069959247285131829381702387451009217717260994750068804123309094415304026482119876846973177165079276590673795626978844400635200653486990984103739248767439632362656544722754857795256726307538797937547929957555511157910660403463232855773422678334172916470981255450518786888017952777384698808366927323328868340026187603821073643333618517931225655245004236103241469256769229481356982385076496582449338680409520154084638503902713165673299229486704307718067349636566390892985334174741425734134341787259958000826278824053198686067073520175759867558398840226269235786348602308324663806332180417394942173379688920409690384383570234124795980599839966323093642749571297044241278506507284888904099879591447528733532654738238732109182902588164729869539449535909719477343998254123197245758336913207334239788601145691999981194867746540509051648239498352859766723527796851368608205770150693357646896219873206429949565407717421176710525879037514611041473092611381441621835184857426009971866213475999388406449453783069402626085280803236164856486372258556473306180925428622339407428392198328012454240597277183998051565031092910392092712915186889925794904203244695317311658917303445799995871608388808274126164957459693379027865880821828419520909835747966535807346763376637975770293392673598666022656809702699350308998891870165197295848033985559628757042123879060489444565430439551515277561096102236912046510598198716845310119834105675333822879732530606590078180732477830372652553067311893681079164204999178866871450320665171478690405600943740412089197760689211549733910186644910791211910470019593915694402607666256748907004109046153314128053382704926031442507607644180153764215992770768895173874731716639398468305990172258957436272243183827498481135291577521237415271580490914722888968252441115652046538091847213247853710506083428742363668017292559556710314249633029144612046244684810947151407950105367758767226327712120666522199843501528630143957081809879945655505258342556577644676767250596295183739356792663950828978225803064453150107618713711363769457418767936639306027235790689288881976430867300908556534677251613787223617241723656707306186951175837590173114557926700844061592296609185541861211733023464685746501185130940257913466530567753482551974557158161819903471074999175421578140504842761991230057168651768496880965397015271128493136263780039746755188005764843726778295217090463077516561136030864114373543436604569444189889360214053929690666757332421617865309048890847699085559937840306830173029765999646623702420328545779331738502047815088617756487253026413601514477898736098060359210025952737565920284342360224195405607755006432037356675301000182579512991596757627990787381455989249478714275905207162930579180144067378672026706635914823267456940555998485211018268139024657171075005593192586999714315386337790875078994509011011400763432305564748993591385259923618961778196123170612438265597240961617799547525496759483993083872557984773364727548420500008602704545952655025059688219504617693047285972830549668644108572458850533763773886788653041458705260910967407983316746761565604072748800414811963843186000248735918930232863772087826270636337262708894277257526467414824154262926016196299884036110759064672989064341601514456202518931609236781594205791929478308757825986979681879863545626960217480853007478055778750873910973700899573162592931186582815874269575451655057197701959376695102289592813820240438075143689208121307324709140797176910600458020928368211275076095925552796053652896057954471560426378844313218058411786608285103702156348966965045439102262192716832804067985067341722440965072604616078261674973604887336514261104493096646327444231447646190072799105136502334765979447164584399751808744549397167601445965581062158324372076081896464979484305909514241674856589641488276962612007257207502373274036681967284484312301488925940366186417226081573689230574028168170546683849930581989378532914342802154966037254283346218541094039461119301280127268245532473577870746628558245258018935052260879937701894922355933256225934288236692485246353354149808529101013067960743978982009706405085182898427628199768636423066271789747894627716198535754579781005724479312091980022305472696846748576139814072618243754817226706236325727545484653864569052010808771154770843001043446803674012722058089634403809757811947818576734598635549412909491454916466811975639830407813851511288016928943988814989987798532298519666811250862777796277786517193901752832588772611808339595549355892108080432625977296420111638467844825803430550433547980434484471623139745316245518699317264017136681108919845514989621156394632985380355036760185390595643291608532223975463878078058388798949610925344552078250592189219139883770614128530202272426933923249158223860678114369043812473486525682199485802982539481163312582170917988581807514885945006384891688113481844195873611115976681759006459526033103049086312055913330630237961736653776690073990298423088808804978035315839503809254239831279089058525565145922583730257704275965289989203190132961473682513913294603074279683154593144109487104478723457631866947343277590393025166274407649804359681587957015023802939103503657840227669576080880238637472457918591767699158102077521610782891832448724611150117508579838498714974655817359391297645170241319033124483163347437879889641260051863587191511710672181724715889568989492407762439302023448044413752531665570620925809476129473256125127988256788793133620470756280510644439615863514835427568972788849257545988418180099847051979024269310628931519490143957595197331077294109823083998306308371002926952330410337113837890533493708580270886583825744507098224966280788915990671842845086386960590640045282600401610698988235431548472710092298461902798715129927355725500882625385810933653826238128296687279016101736769814656861505711911236694287528452798261305258789694253513837910964748732404956159136021133364716346202023857271336023721651702777019497852077312794316438953085917629171607119620340533147113827477368488776668122137948149361778042993776398005843193635248719019928584800557768611693264406093309621864957356329215876833440320118122193549460457187809930780549056127348445801667589715340892575677088969620391812766207131114106444308001086541143795026388772831579876518098764978670157047507515160530997864087580534381507390128286900647704049323318653354869860625857857801384306025807845756015550870869442331423514330175915566448688041091417194526461481100706448594721177680296028704707491615280562847585463160248565489996875601962867965573236773527968215310458607733387648296972425690164937439921163204650400115319944694332578196630065745585252745737901724321404228210234374539847125408464945247273937158698787478056925547593790651740497929740363895650841644924455589119220145874084506327391716606784881417598552641521802329906670022026828339115300620538858406386624739430059921902605065588425743507653386246317211688030262789046567832707737050126654612870908354190310298399522800643512474922955410720662783119511639036558047856240214456724947581281655330284189685898219514285606157679745892626522724688443318693688166298855435685856532029008227225022269381235310415149111499577136063310576187641689030657758795440470216804975322125227984024465324333885351336545767064916693762120037641802207736736795932549191457805970111980276452760361971849879521158155441749080265036138010170367494744887251954373458413964304863187735342039262553350656749024797463491400997608984845174254604861208722471977968962430673841697543282544395850582293498051430994872859001534047203877512794959496175492817884685196903631672654648123452226410597519981664845143258484424066759635359116643121975644169694254426425177008187961231781217314114804257122930405746622907821524143875108761559182031887998993348011450750423541799618522033590598932872920464506583690233715582428016496210764999264691411284007734130189047688257924434778140540652417417445248980671098822738357672864306885059071693320410039281621235555377795527826269176199583006078806224104773861663423185762414565074496150165047957818609706362595322843857970136365382461185729405734805448495263363783074315969842942592103576560963076779711320371730126317743075673723275588476137371876758160470467155246969127827707714783800052904966943215155339600334583133721098679531559511805907149298507343803945229212836323774852053424643732752211253069452675979907572872856122484771215699290142330268651009959217837970451007279019829438782497087086455117073564598709469860495001649187489574169512933074444040557392030240404937652184306348578262363544137464839324133991388353410558382400335901207729533921799020241577419076030429049615760289890003300105180149408242804943162103278817076777715917415379527913213705597347237538429120296240426142469531344041247533799772058207984830259822080284146322854941584037782952700433011580659234361260801034950932187370740990313453382185893831867765366365482482272034220547931452029567661808613938271046674040227084764575821712829424621150990343369519157278189838664500624688263803091912484952791273605848445853709573616088980040740707897772501785304000050450051895639005333938074246328881425342813025291692447330127360509971718873557019975577263142227650678645224326889685250303577209724344350134954569742819854593029453310800056837600033831070884766603454169229534751280977538439659638999408985331080403370787318476543283428187949001598516026453434971846664961470885592409362475242448939899603623250901303055563038921685590009679334034528651075100491016204543662059133188507304445620387530064252528908908586385945340784264139814664673950652426844275897617527885562866030594290795052961552530986109444835233392157577038419025306517364270189836443123415326355973841616030405163397267591188130340991026179527389705837075529521415310723550731780131404994544967397552857164406456509628305787319543809795842434971333351187945414848005715464577065167102912130418627962266139621035817308922409990908696885314373768163154921914002956127931236894557744283937517257891664393642116261606569779141410431251774359376602716437476265622821316929453015098148073616262213152112861494342926177842859362110236884023011672655638201174660190340971071306530961303609748279352506192303779545906156009384185562205455863001451081178968364592178293988861826400378333728865437177226827639344389853852267131481049690040992134019315470585178735830485074297219991336906738043351530348957048267125920521516640305792813547512141481916181670788841640670176164613709919681598039887562471658822812933353287599208370624764493495889559686023738134855994566905965948112830012793642192732699803806638865383038083192706402340535350029612593929107033057218536079797058260956213347165882891331907581630973631161870351573071360698325215399438983139510193028060914587707290066409042478065203201428108281141420512087295018337361538639101961642741974650839568583096168330043619730807200408713942323616206435138127853107659645213078263115255075467101810728600756969577994243379461748825846809867800701597613399307030777094629769607950050762116503947441053194257714533568454663237989615556844858364879508015792191870413439642305185271161804765794466573844194011690603326318026543919893405393240360034149082785013980155355919233893594620652892523999483270174475053205504647636909515855827799773972770939664050968815210626549287693106354930351926489132364622293838978636237248941672140225567479484998215272442087782429964183735016674706499143961301092925245005142320425519059147515561336799368843953325572982760888984705254064360058968622395018449874229428297034607964643373946508311725155539161051757476088466473452421869909872227216743336542838134355080869139186607839544503328216032282128095286400862720037858495877715113831487875607762335223803244934648671523501773079887099835374128979145994188387046922304073797978452709014604402978260504305292990275189962837515698709633577201558874267118574784397013525341751408040483831336042887022935146404609475618721974788754052713405612423937924267315859012264463739359489452047062074434863601702393304863071902866356329995245134812593157004192314563541487599077220223386244903595921217107876428570601265450270713496186873245026115566746605404744814105815890192152192752721004785942015373591828530562783844369076872657423110422574474294953292310144895211622246830134216481153792975358785764857539118674541740769558491883341113208551927079344206413913924996601080776796700008006388984361263331836754266278463341745435407622979176858626659124307142953919724260421400814793781256528580399875719839589016377896492370220904724881074028403060214761661118641141469432615918381725494045577163168242057218648338222183197375243893262932776457870274774043079163625266204587061808365198613869736472749737222586203551872210185150914338888032301376003684088868963909289313641100791974344205460179839343459933821336762322065617809723744833396552468653982752997828740100806228139330294699845871024027528021522864385411480762718686410371291475772646351609449068698462371823704952779456733373072585710572331886672053294959757741779920572521334725296436811852308080917750050576275751579003138930905010437373002337585013575258813767880789536148404819462371713981014469058311424142398925463436377472353956194956182878583833991434876371592497718855778324582752270619107447749092612690898509835976794819816826938996674457677825890678372930399486137138403612289714630920077583409815770287697201290611298219857468347354026546056295106392274624677283567984503937484123934072124757037158053010523700270361970057238059602175117068627092837131991996870857661967517424077669703547923998671858444513992084488125075194008629514731070920054323779839668649579938976343101735331115150706542063442724549763590580473156742585483954228980312704495494221263086997898819699058770270631810381499250443514936478342186275738327902440892900935728633781657473397615133548398034455752550000833743219805310459164911129860502489606174028056146515292467216802284066365956321274305310788308694264889816556886819922944468424631272600606420253313981111380499151851131378434942324323836630341503980473213694282643604796385598184714285882421847016506378497225931678949793392606199545119896439118974729230837850969166984502540499127640211420588031983961308438450554541305192872631469014205758945266946097591706871479607894208612457272941692460747575921863715328294105346122627598775793247036629049155326627804056161451386742364159439351914366925993716339392326716281010237598351740144204433391421449247612369101418044447158877827576558417746935120197839682797853833104907351260374723739294349908554383098771572273456171841592738937808351264810982874857401314054844742219504739712048718713553449232568091125722792887854102568653276971484100034343431978803936012242543469531648412171780302496114899402852177276296105548344999179790567315293094705017002942653310997538236910494513545781568752617652075533206793914082989698322106653871108924508405449045345655411267148705050397027387435383166324559485874400518392394413724269491027843572631151655021046418312966716961449762971743980075563813331380377726407266009299367957234209724898975409695870669891756844249102971251746757911161075402535099623844697134209446845386686416560932746612042553333865140938252627495985477150870258538790056626386630236858630781231186114468342262424958518175589717380055625459581216170294949918628833483340445587074772313579613226715862703755033804584843604730101534931808355387010719640464184051376043174373893413360232944982794859296929473338453632224303132693309692584658148679703511972082277157730762741132025052394345790643825314374239738079314816522554619234086768735190898822004037435736586344260093386141937018094834199321271848035175457792339333239767633387637273965317560113915746726162418174066189831272537702652493455149077163603487595209306391945878993162762734167002132048796548126273849026534856082011830350326294937565003455185302083419486079943531046491447652340563082613318864317702521310404500673148097129872761938025491175396692144119198716062278954408371253063419110450200322982136379708242184592314087526953613758905049550734298818739687163770115461749046155033276021143140606804840225275868175125809108360979273828064916672619994920030546200213890214037605040919611836188967302487415649494548947152177335475303312615456855758578002240592987020281001034878355987326536455218203794287288377314310329681796092393472232420013695397694152748666993703105009022917678363253868923969891226026316741937790191942851538153361985115417731324832589144674993468532027744999593665757523554166967011891066720105093661445275991789054064904467572378888775109365881390550234036232553453385047971829035460584950358269811977963738632562471608820660394596796005586158578377394763844686192842302133604587385671696093275905617964874332070697073435267880992381372104483897962878400198787929049574145674073340253867297299804004334382223042895024460317096563839108189034146256538815588304483279147220129393342636288200160376951066947287159440530578011824725197640293865252292897371148321214799897260900648248356819008296183586290430735075767791436717290699430663123235863055108920894737667745604534048902822214393914061429110965422566484953954759646975074595253646313941513175281881505062840544286808717758215014375569860747760818455750182264988005391178024182332194086194206412625628110862913466035936225948189946352406105828853831552282730715579265522230554674911270339195527246085523362889649002487352365784346764006392587624386005426393248137986957791028965157840389171745101523200508098843928193608913758803576312253910822919007236640106300941013376334221302310776511190391455924133240630429624289022609919522792664009763407722347161856935983194608126205452462742832789524131813373217463627764953342954020198804378277576917492541893296167805697513645345505252337331712708476849101190418850647651512901858466552782205124785516247997570800444837165998070117149608433030068480987265924948486481429761280633050486367903009260911201957714434286080430156583736587174252650654319192799499943856586681958767769063402658852462546385078456601347110443220540558785256625540792576856004190146461370118454023869649537270186915165264260040382689628518043939864773666202002030619084563475073284177417817979514918168547038527142999869700152759697304766488221571315255867403883982494366383057854126382427695852149843571164452293928220162945861730009300032497396226811619379738873556945898973654997520253390865757411467222822852891301252781275672488391353729138718477805983952191791172772082683113917109210258314612175018554953556545712283170713577329624515383206166345094820162147160878795648582697010012812708601568429606598719671893543955926804917661895798479267584046578437382172112753711307393197250020091164542001794501661625000324640587806514694736275771903499486716049804108013157231590967750640128159806891010772838545459681241693103248000519129708879864371820440488199059125241701610475957457318926780449431193202816490960345210918059427404079033625150325084784904184010469407019151522437312671386557326308790567176246224274617727433656866265039614063716048827320875490920701967303405419548242707516152682722059479795929319446676424881912003516768163677233817501641766175259611844354132796996328555279157514966113960281368833043211172363044396932614683764931591810066747497587594177628686979435487913819341671772784672522896362491528518331809278973509800129442956990113946138669920275533342857366609029979520289909705921424127227568069264968833421887824052988177245584594206439969499764857168041870629675256127597852266528929895884104828093655319090586052888057782630449224793001479319557258302293296629843559459007629127382734095065264349082546840948505518917705361275965091662368073838903079451992302467260937868319170925117971960492227265670007541917826155094865243690338099101430087493125686569396628875224693267491388603141514037934404977527722329557182615858683833766433641352485458157013510578392833030645246606291470468846933905441702649513808031286569910162700964562588934987825076876350549742048833369845220944770249645448617070782186496590579197895194504923585617698192765111988759859127027010293352947533448183630250864343427668593227152504775426304447672095971463974374057917515388113121462172422774412483336819657293349175198096435745526339316048368591004265130740337499448389927843168832372082706335737107283460906027509784366954788648767509923758437171854325016652444419122274496343717545704957348587910030487903323452689424992020308059613204804189505070466222619991713016797754692628189956874911839687362435406766356213267955323667149753907600573954456941153736118332610236129956949633043327858420583696154197009613096695830646074428539044845315807999586684116988084562878286518170804553109875236550563098033594107920575674400707260310096860413917076139860128302286936903274726771320782787637422984998954113586107504182253323165455635737069711439658647481762809238005238128487676460576952816607493728483960231625475473912766768595475258077250976832016454549098961789386491147033195035456213257054964855509848920416948340023511992232668305608702716311373006498598240738372359449868239513553530318318826048756932222254249731841139573883874024027851232471408005941882627958557031258654545583799188467323335472875228598916443160432885942609677006342340833762803605535888407056068174856999463149948733279864228984421571841268968794472301069898650753399997835430219078569317374068869113370799289626099163264898154080758395697742603845917387796644695404187666300563771473682498245296198110677731625602103515804285921606811364963204514501739010067313422815461171003162990965017993589138407008764426838203953207832204919186162304542135775421738758262843995605524304781057357358243843089229655029787766100631522938609643175655269206686715680067674230517274153982459643601202673154998589752977720435539206627766574225409918877823547861783254573142453211081736786280055498756763879935663595840263510570929121020012864109221499396029420209163984481672266453424812756553637846159455890967177289876185515065132308160282370450250228286375209470912860638586467411332506699149673454795990168363980759584174818631637931562709017741543787726111098363663235994633279931604793520356907248078293453432510991618137923921600041110704687991935087324229734455913085225122498827129022059074161400958450969935448996932253583488223481278566553828441679445046122906164132719721580960411025015459370644282633784723864137497245580945366706686273211732582277976048396445742636203174836179680325681028095147118297673089843551793464165415915603938205383162870869604287490003785128769266349460177654606673974527697586259000895542952619176779523761432293719117296368569252921910595104028931938190755203274627225495067277450115143637980450926053728900898442124973760702778809309510968780518763871909299641455500483344023836692393189132644438727697363646416255746554080607372042289529254640897361562721316298294205874974791991021476497959321121009326594443322392042206507624690958199318342622390978128401081723646892316784096182578593288838099606533879661592978585124748372078538018442745198561556635724172609260464332677883906089470266623668602905160966219214229714516614264803983543576083487012129278170554251241521928152261572009839561760622622585797626056484753706948256882504900152415526542806985039931105718842159881590561192559244787076432403199725677978304101113428501656574214707072405122230359126427779635567432021463168783732572960326281829735986679922053583247291868730275999094565930164618243345439339868585330037355161438069964828294670371062713061487426845199809806488705714451853463314074894221287940520096661875659376550193257665491095830242763089867008152750552890080521910943377358549748185779704735996417265682736494913952648206478256340746412252488982486553085641803878671377534797388345661005131825508733516499016449464156549926776442609872804688422109461495528715662217474453761427480606503074764386785314690905566416037473568214831832943718881864193989191699501755874461124791871832306071880582097088161539720119139071321744100459936480659549235671557445909753660197147737158844997513551608977453467466421744276293594361834061845568708622010014902652589806279957032820610139023913483725165105897949892771159490621039423427003354049565994940605632319966484114906638685339034846580609400686176960182606145136958236491736185127925804598713050073189269432800503650300655256839650412687619182603521450114458606927701969863187945184128637828078131897225760377173820834071057046366296736687019599364948205233840695708797605633447352687007408279522021495459718924129258225894940794187543960462357954513731646666942994216417671325555388059741324384040675032625491152416282324187902225729755486257287310485515151813396957780406210564081267137226792635960660964557809976844529205692463891896314949558920866848023916884995110102841435711970899036525619702876900015096968910248159346836305011980813568661995236256475906350597215516715268543659235070116891931882081303002159474097288826567181283796423156621812495121471589227123418211292847955201847233628648807053005333114506925435098654325890513613937860287130100149540148553202497924661142516885189005261256917348908729870942305673639046860487160486529888952473725617074199929699140626362373973408856058972425028070325203103960558251447335722625088347076194353881634609103392110933718580627092907636487070075682517752641760770103535056099867955783753459286473187303236128033990932878015739413488762681735509747059314728796300480917517234851613503245555589626965816784434903987855089625932482967202084410980565768418943395849721386777587915524080528259355784876524209921670042123747864971757934825363765301859439353562070977747672058113614826141448656785464175202715698407219237683113561381383223053493169151463276583963644638489277310800174485114139628284219549550894521610841732142863178776828540672057302541148882257939655327887182243049877508862568082234372818782583172042933137643547925682018312895263156315011265826760774481226534710289169325668246713187472776985039209128886625980359352118004340767677351526689785553539903377299940763254684071212883570018992433449400822468671727513528827672505718712524439853443247438765467967227532368701919660285578835402357638137495005265315751257068489891804122247360002699454061180017500068420074168208904903366586383865851769006616410632092988153600348121352990086517258202199880920026091954453640242079611765012032636166318982725396387600779271452813153327039547258985241516622644951335028110305353595011570977122473622007530268977219389118296631817784160599938325249019873305486951745664132324133462848213481812277005151029004762447439623548776119992243143534576800428386011277967060646221023615585521139758797034789756456694692732086624415752691764421424401847239322445649430978293733874434622564770357520781091609928671273208172093539667902804639639909779261941156788045959987393979905410553098899742284438453434290191850020311727531702399895526493691633361091429595279145350528453753399269267965137546795383163671106901872797119695632356405875356184220038874369178580195847015186742040114979594430353426541521360719363167903920316480867654123240146307869756965083121123755821776117316567189231874086756417531499807495485702632158411460452699789470647981405296868692648504122232253803142844296764695940207843799733956329323722977535161112828585566774239660857001708123406301725976715296671284473922131837118827589888040887677722603748262137761475948874506348049560842498884188709330346017571288076079443267511606355297990294132755228445481875503319406996599775503227337656710595496116474015668956203923714710057995839126824637546776943728932486300463931912761477428811030579312396412001347111750549121971160523623853743187100898635736119104539798102792671657156981816289730516815970102275833314754974437006785971966268024135128926814995456104631929308110811630104389673780828291631075254251979677181634487416909841623813645712896832582700167416021098874916768738584259823784314118719713607393807762827012166591858454945398625672155057547621762559145829639560274432474612512866769167526933056447541328083913718078820948415989731864057776520412637084514387583514389883245154421904272853684829089799446193716760873526033732476561131985029821874271224459270841738558638992497904682391970562478999322618199080815633190895280205589190280490640693891450467909776878312892520994908239871237769280552291379748712997612989259251510286747606008120786675488053644087726497269475324310555430213052556875715237121044099605864561707205901361388272879591712177396001633326841158131879776271917101926130789534955381099312859468487809858422271757382592074156427623457489898448147310153726311313548975285944524128445500826308858229611825434669715198901606206105011584108089916435455530527077911678719774434248251126786558906890614393951679978743262160621844785147256795296249350541064261650020549713174168593484234811468577726725279551028452330417274111357350676968419376407228613251101829606353290128276008240838559573518288210206875518346143700484241891459436632798613875576292654186736363219001370708068268620892415061082249998565084746630804748758919754254743788391633660907934210638198721538286363955131568991468948194702857759900737734413852554473422859790704886167356433805261102921091662049542546319972533800852430089727228999651537894173412198638645661452623618473844028734675180478704756942398172971904904426895954517393786373016598376408883897565594083995070346782621399625822790094556469913120784752396041889838265337900919437235571989149168498796775922918561495272418896122208228837401479018986443113062695744400072136299392431018940217082421557834534375305106324447024635071708378823190028861487028239386924608995679805692004557227693576553773512003018351725537715239899608297188791316862543756400306604331745451151277193618245992632737429913878262538252124744688960743330054516466131239522418632733660241090117948398701871397826176159062156281427075820113098364143012022345363674657736303106326584515753416022032441683399049718298024963868398638834226959597585826927902066932054274512646787220000401068657128865634576007420716855497948161113555126001923905088667976910368605924533324786372706376064032990953059912885628711205608302874853723723134079047363198190483946897523730521174237657102829450285971598819787344223361758107828969386235258731020677688556212304374562708015554074891972817126132630867256474256640309333903748533717201107109554610745618863202873789847358232755464229606490389619777732420311720947843822688687537911943719094387354957268766930196014090107874157303618587280802618697067801357986038954581839921415340023654507549725722530149442211897586745819401020096099353093217690683543123555107560574194620158900116352618593827471687042427900733391055705822960348747763374379741755131286413315858537350894609534807617799078014422797554193228211029300232108836837221192656442810400819875952498780616577925650196223916944587192675687661036202150598264059503401182449980212494126712395014512241204291518453897027043861990088520560247412498532243500406481431269654700440376098432936735692779174340035784947849843044336255532362604956853506574795868149118654068832614640179570171631189355072783157851818649977061693971080686750337694998445937273990232419788067324867390140653001472671109052989698854905497859795592070763332127127755327954233146866413493755706577194520833812807768506592906364544778467475196270185694689931144642015737923335973857627416282500077143897230119689518917635280641097862898968438291932795610347304640568498116272255235249675397802683688411391687178957716599921522712728038891827977360086259669556213716255812306858743649207490010882853027539292506735328168173539316703082662406846719161094786256618175431107950869156005314128821493601431433432679160791393914060150666209468932537781642755635179142106788148825181940561213673989939632788651235135330538808303737701224797280106557058991907209649562357518924729658328318435739572286204524630956322307859631376397966235822838146172452365668584086411774092354151650026677063347619336381343326963295179861298249539696443385000095408245337917187691035577068486376707739518338796461310893914179841315520696577686182008106952596446764880317892147654220085270127130052815885027196909236105734710404628999072262216162535160027165100754568304511796346874689802969934123918126210812912363394196959874689125208841179061531977644356483101239428507670039466945696879282208591497477037502055524284969576584183367096100776072212593240022040052817327897133278508785534819374215539480278334596426058931202271686270309160443666928096633350299142097164138315498448390074605052519050527169172447258269242568039531555329097516427548004337539016192445585909511075893020744582405290616701473704528101275841004531997864886470308261178109987348711425074273805464688721784243235801689191001046708931344254535485869997344757266224224641721927735259875937789746928035834669024033046464107183563976428487409345409733742151215916760453332910243021679722902229170270748982972356830011375640650382487909862047130176457688523826117636331002431173129625297771740813392409283926560541838052340511745371986368966073405187322018597165845862684927075189641151379385696006082797046563850543474322157642314461477763762964338374375605600961634675856028150123426627477574451353914990206044217589114570871171456312446730374836485538622759879856183335527408556508017410458785601305664660657783011644561340167744735581943650876148868891007349324770939952067285407645072923799337610827137318448562343340436414473094589401293138793922550834869820981325316635797732717329064908082125260301627283002367495797229723546450043741489276003045864170046869912924724123111821553080080413552224494365257769976548144549677431518857829436361340074349913079303370325021997966227522488506451874245022411136185825615606390292159130905680363795135119094260051049091172278103638274999949492333716697823257975080557147278344416864966394339610586468801559233969574559572736396099863944831569488528911523170016710791345473097097596974284030562329391085478841273424082663142588549887512323595648165771612825552198256080587744616880010737848013694826234345786816523737013391708116655349360642123885482423088576588071889407369931442249188953150979928302500605233566155447693168302874179083001031317385565902185505427924257096023489293816550512954742165970485869978801662148522941731458756051084991915524389216670787717423821319363167096363012255179164311231176059330250898293902399068414694810352842694420462071886964176875027336690245674856479944141378453982696123146695043565219580819105688291440227297890137339586386364864436607610026387426464521468457941691275364233231141320380731037842867198841338226272499498452699532397676629114507778209648224889875170914308214628819128498082522222230509601863868866765425850434530709177206319518904039903180138232239043481914686868283216754946525452583250714228432605992229359355530430174978619644080111352684819868771366560662077586715819709633457628188079339106185954758799075097831361552236303871126933861849370575533227814605251821442717463367380098939019781704608530584699229836762457137392660471583743814404075997200201742315294563537046062841731808180637546497995637408084812964826799875822152558582842068329558499132505192989821998830425933558674021371637165375145864960372635872422400946290584078735198362952175569200943850457522062776070746983645906068762028975995554259111676136230986541956525654022320647200066034065061991286406002190501537707406827484605721077069582343245690227801258093867180417439010387451246667926502908559425092642416182892076661147292079476798778411610460736950492936537568274341861553014700920590044745594405665585572970881263191857023318316808764549191617524260350388412267003500641358097193630326615546972920056498923123484574541316133510556924424809001030738382398935859580693625933067428511648752705653606253515707244945565446317450487400171063046613763097977902796030499929072517155313887680460769050080686394640826222404998076329879220812865462583614741415402757544769796268422555075013052795533359955306469825721892759405959376160052298354513601030216064653730922480615766761115380179660255521109167769403232397407703377607859373322936181301906782723677311079771717671136954754064319494895295215777468274784965766760659762694712380730092919275159628624389696814010766803163565932442220365320393164676435682655688914663895298508672597256010512233964456572434479750758342731387430912513069645540012393379265784716244791155075261590559323390487602375067356483426126987870976336356299165412434871860135267621978971611934020090984720143435063302746275812792921315596833889155639498264968073380403744344076258057263948999477837810079973461923383051184268929714463610726335781821037327290066530602466576973577495744899474468642376931665534135131038018181502581276684934229831263064188452377644249523148561870099116344072254654196547604953527939790468529431689541318373497830793951307884773305537429498829575367682695581558895554750561575673686407026513655061547253851211571487326539403815869335791198382340960443342110256307107890213570315900943359090590028286414864358186249109882643263123768703860942579931861153322829750917357145253288870566407543404070617277582022665835723537187852495485078320762795323937873514860277847826759922231264556137370535497310050775458887675122097869628404605910567638384911963577148538244948698968361591894082975026571239004717540477152253290489809021311596497553299983513478288533334399867549507413284399353681288169248653272431859766438147276644920279899989050673835843244808338648415337008355370730075426636954941824889854039480360819177023814505510130576445415025938555136980161008500458695621797855454651361061829514345009873839256153256706790454153023428146534707320296366609235636406924550894280069132693663227090786198381358589927507320628471180171854142863858189677005497967941574793595675072005035107585600356071154369092240257580302597871471275066520041876343216889587459461276003186946786532177677230194510537300941952877241023323778630725200655086530182593631058327914010914670391327936431640921113882251592596334955915120829037480896659377208355346378207142127085233898444816817839113165386633339953916900602501302322163309759739824859210638898621059117316851342567371890228628887687768169570037385253278903585281999912439978303669252409275761004905022290972778105226647623559679294711031021349332275613601386926860913465243128760092918127463847912058840008746764675274819964458292827387409065671472245943483145312392824203533615877421313152440421307473225968817868571549157404605765074569952660904297397442156031277321083119919287612426531783610274339343011852144244882075707701139189290349696815098830728236883856934334258578268775776131438142639217325419854620617471319684025680304537722123707663018650296809001756680560024143759916590451921533568835653508626746620622380162691671377498613569795835469260254921077261188943572912785218665007910112952968888675141964384316265839258282529421858690139716165927759690462525694179043962082662125933930383987000688122110552072409995826147108042861248508985987591932311629482545280931464143672312693343450213283890261063384838648310213323769196361623628295949279994621465230236924396514277457652419397790472736449999690960775209796371152552927129413262911932822727722669151324102404502869474684314201590860371015489003264327384805151164056986469402729162951236219806479186129040789803662344422884005205946681769793700744116205416961607535216041864646641168477980595787023629342404952311978382501805308734749062096961028251330673060143849365992621999042550071321423215690152603517193239517562085567785285037326823272742564614055265429352099141117384064992920328190037053605825995890897224531999404782933797618572135345985124566320082183257820267499939238959761233665945546558228325768474971010969131516801814168324440317279326553103703972666752463047051105628630511673808392049272612600837884367739222451712986181520068088908868627547445064308806015061546001748636488410028482108656369872429367615067305575167904857048630703974800320606783355441536583892214926409261040228885958520869300122552019988338672987112714225080718828779479098315845645481858049620806250205307844094639420098934278978922002074524720301426603496454431022274484820897300183390797673102993272811612104868924313502976315280451530602247636295674524994896667646167200697833522201050145869154218570650967250741849915603471748583521297665561187509754360070516848593095881951280140194440710576404675407916589548282090388249806276151609284475038325132982256916121485514011748789326863295278999117633533626515147530254174474880161751254544547128344430960331757850614551803211716794901457650536145427039111377770610426879705177680169977978100508666915595491848927911758866921442402474869741430620750370859320945144958863363264237878339802071063251894954414828960521396596718569342260481159425063819191021494648250287013823779221488015908739739241948040440695836860420006949528202358015950462926239662311213464664580414067001978765399766699130889980953790237227407550218954581257311086372886300949357028692478463452656143766686933124915302318884707464654441158021607757981974196250475944074713736088138523732301128031715170308367606458393852699392854916157304072228396965448934223137570814674015189501117898838159963196546281366487628428578477483841019951072411805353922941557257639440959815124846779065685083837713845810301765371690826708707599509254271295605393098503180066944874284213131357117349482121170265603900078139801029143001098773001991414055530198073373630047546582287127281782820466884884502597366612546744705133167226379622545754980542350803243511877725627212332590644600397586090427496639661011152078598137084168780824232253689120320457918471184625714558533904856549739357204375682943393933313668180600297082385037910680848697116494693817112351794277032895447561639309104546552094307716321168575024046324461379715541739347139431793192220681953896336270772207930202034719081152919694296746013081870293720969794586959900796308845193902120038651081734622531033234259044393997682897533528300154297880828801657373836556797275731634324178880302305833221799678274621017460605907112596018488720146862382365002000673524590325860775808221468091640123057495782986222117066853989935883553076971693766264256290769411348369256862483048496037536740303041143155400303977882422028184025482178917145711033289664412698907533806159980242728983332610218679258967721896752231005739865091727268878725910701376893017897831964575221828147472071197438754555993177988606287875253680647141848829877587549461066341908346611043208424391022204930028394530470713342982575224428201799905765746356571466033063639952532875937651369358140939709376411336549056874621417831059866801803194849813931430889314456531588732757384019887924585387185370270733021135064478556931984413532380405264365488168970475632779829241403944472881863971481266177995964726871273878767043140659993167880397972530407944495349097247450747130683671459401679563464030451199455720517835843361316063662827074588767630452238188050717048687773275042584063949322222953302451421855586407978823641964441724973470163674559080981347106882016903567561598467182411304456369159738759508053569868853885776921961643627048594847117239814243704328257674849473533358566389113282229506873106922139551515515959827832415559234565566055817143637114812475454968383029744933243146678380113687015136296655700514047178492439395235110589387648622237655749377911232144280671077027164428089654423323486461330026643857312657023908802612455797453428227088627498975793279925327396793794615172484541961620622526805943117922040287396682395576064574327103454830045366279520950877389674417406812852467730881750839963037506212859398090068377951170431515324062525521571339582010692983005631062827087543998549497507180141245361630680565312140048043170418603178892107833034622699075176350049503520182821712925183187371817644516984331719766828833114786272681399096624521918726375883288214510723981773052496352230544919655676089655933266522425367057967380419119886489027311937292267826744213159481790992135030084104481449571479551526885703967852397849833623784565542141767970929380798160930887561194327137622869465248689305162212209455599268170735749477153704036444673219797528034708920378315586761137985248065230602568316709823876899802308026294184970176109845482626270337143373234913273789276820671225684406721781521220264582557487669496068219997890249679775171834153170006745210835714306334680373034894748899659246076085435717719403060180683702865168366114446094754117504372625828195440204656396679476514230408049165207560335822930981056713286936674456537731973099247254401731233093432788958017757411104213247120083744769011972221812138166323553206022774250404139593437173261124449315089785456595846596642660696060942527040024422334649324463815918897234794477468312372556679608668943983867580826120241906181368241378877192502349411793725261564192746596302323837745499171527521819237883206726839684813922537934586365036948483186261169765223453483955272042833769278305856983702018424016897220512592555678075720480673173568650652076408934373347257702031322536582236629617215325988328987569446056216849290376295760702908960726069775199995936405368338214880164273834534168544130036824522356734977682165174722935113884183275631845859767676969336724836095186152208145627471281503705539892971021651063191205007928987120311919619471400898692311820508258910687525656384035241554679738732295211074851899640550752162284460762692460783027418978169375497919784422587714975333694664383059470522402960847343014991972035456007479569283427500343113627769677722136827808682985162751402580769747136533959405947404552868052748307850118063240557293940620582090472251098258769466052286793443263157179552662439283532765119657297800595112300988423696246784707384085861971717155126783090844890120641314940933745585834160076109629983222600990502643308318257030733598402363738701401020905076093698579144001929448321180903788069343717773459864882325611708897283946011349764900164206218315451754705435963413336086786841895952383026557522222804636582060931935770350397435044968575922014549435105936724884242510186034142924595090621757335867174837560513961658861472268225935585579165351313865024305641275344780704694567721310674605418945204850792875041456363412816774772971023789197147117682697986767539888249650986093474615730323288402073657786294193721752318753662122762555622156443432955418716801120800234332926578945667340649365537026222943453049721219425745765107475590052915018862236530156996895593147400702098171271279724200766278444857150857633575626771833778390973230658776799140183247526534484917211100625622403179088868351669327701697691976274253296029018236596560397938744198277793139254852348700149153442472280971400255983826871216272834096662327046390652522617018957694062961726728697614734426437504958691404107735510303774246194567748337793983172722933202688591199290481602578375172155483648245800818845889573224266507977391212167973388477324071579021887344253463161680824672144445679770583323430563315908053357622571788107752646090725257609107518300172243174731286738115191397409155333369946037344278810401054050092730718196142566278039642211678598274571059897281539395485505227536582199770411693732516263453568534030887426192321511533994879167706881072624507667655762867617214214134682286137623464407895699610753121278695312560083049878488264175045389647513546653259493127088084319695160870010576059444582920623802712451586352964479600568380495228840443188216638169600143027319323169434918564032041375776696290047063710886390898790845687695038761611539586368914661835742945727950937176094128039265104420993377862732208981643376985879693111685175939094367281844601963602550936060910124207995912577644169971333498834323931550057192920198309833988412200893231590701213518902562470618151701355680460725766987832467071940462242292965973735212062996800215434943316401783254354361933449812097301560436635577300019874399980916062234175680169890317483254869550812028179514891029833426447910212905700062654717862286017189390353374702926345289648176168201031237700083635135284478020957577009910982979410087039519477808540586663570742799309850498429383937938037552609510444738454386046891862333318705711588756381508970962921010217108152287608653753853408189700794164442051775390186659390948759460733074089368802423362558595076794741508526892517880254878123237741427112068169387420767910611094848043891217244742154437726506336821799473990629924788383399847510146331158783302632551460920260979385314204293631259239702373637154989660774293741145541106906109304003813697843057528008071871985554839411143605653218903381160457250746511370905732823954905585281216830853135185233531363144206973226988228561151128168637105760416611269836380375635164420180332767146419331320912703199860409784346157320972467949652712089423213740299864900693881958016785214055018624883528262788524151019095030521737180785186024427439065372107066026433610329402639500843479048667555725062632537856155002464168407111422356380416162895691404108917484639731494410423955967080491252313628120733850463910340645360214549681791149055626847304276664861536391321592367789713553030912931213973705793392428902144055253608390062122591293907890249621308396328896712556952052777115108300210836999488116525303999871090537731608697577243930583205792899304435744471889889434282553887448473147586368091444383918279487750100352811414107094101699392580692476624123008703193250823138718047897785788593869083218228930176403039849994744325474324297629918247964244449491459740948257389258056487370203791913381649620331880827820097610940488737194979813167883223584508698176373260550614395788908667598902127701395559207399990536848787050933924706766308562436265492067558649126156101081003123016312192627568784442244058772611946975173010464944763526933641115437787682721036796209409738494362920380820300548461430368370592431978991726267596471245141332890100117178476350590636057580323437444176499282093604806011602571500652727802971129387530834604266748136063278710660147220994206384692202411840356739195417170402012813696012893874287386413149499423321468480356147737966947659258670808963085019624079915844204068201639239792512052919768913475121826599630052459941375763296829449736150305916887372506942098781139737669251136965675657147584624023232168706462677811861484972712397841750757918304086559782940818918516958140668569446759982039718274088240638974394038657947368310425127924153201127862854743935109099378806855199764446301273825295220705361492191493574539369130407329186361190101481108892573823404182173742977082379263474222223690219941465511914423833190510260659497975148291974682621847591125771700041460985878510179609205067874795910370705439580784600519987510453559151774083504263387585583993287371387199169493749652088208685241124120167020168547774398267404046829547551671523887823021250785250523162239600266774268656733065049843670505834563661058596457467413952024015143816869018135804297679831649604125123797983477185169197885263242672145835236164594961850540898888784895080619681010783953238098021973952238169575166723478653971463981759392898725148699834637970973373806498078529945499815592828670391489800964099133145070073486230153115520841635975644517479652187251204059739827252266201418503370445990762557206672376496790444546666409098833725649208691352435972424427145454409392022439667159866423070921711596669483431298521445053510509050893635877588743150425885990926604840454323969990733327847589110715323900254289759973206082430169256124728152764705121075868264468104291471316226768303555384298086297499737560556518722162591922524927376932675976449998085453787575759333736104205049582415607192597355992099815345424278671488595603181427686241227754620646591920833915193495465528062878993747617182848115609980244120628350262215860500375896342222650411454624203076276514706891450045435770326771731803903483244064826598200238528016445984031379906607620353629984267310518136151676446289669082992002905092348099517946294894924286017389160963808607590528474238202412973241654483323709131937150923470382998568141468391219290423959359468171930129903849339253529187668062170563219427016973043762031435325061145376025946936869974956374410305380491778031398679454757603083376297840952460046569142874464367204541267709995211010112968205386992424787367654799387476369692175875708146252740853217746602144004395292401261294813103841760071378391456071397340888598827801417824502425801893218939236998686155053081496493322478213911870133526018064447367229058294186032405370274194681932356325070348409782814381401990066555286930466927007219611924941553170629966112483503688680213725470411401582147736595348748126688212740219587291429336313087232793210434116133101453191769072145016829527221792651746449892300464772380549583457326613714123909983000086388181911655956342022851654928612714503080790503639057552738292412439429146881974859041870494067771410637060380246354725294711650924226467105656807999924366583768766078163951181062249637401947178521485749189472448175360315593059569022028767486961132043763777920075808624537218653846214572445883166495909919254845405208382551485840779465070878603259476678111024545942940494359275429812781271556513159970582457817447391387574383157341965819748101707584853457844769462648164888038057027266372790272149450489283412758753636668699869650622198202237421927607522316782510812611472427220179059288523147255569918067712496826256190699988754672786276022273539307661870179404764146412046763818364027026833657127645564350417583328099755384754746114429053987947106155422756500825121202690032721527612854558498862763931674382853387725190658925332392647611184110591882944556626883803694192875066622822086788110833402607555406698915067396422407629840234207183926789201716912936520074980075848601459641957135715157245126204528454164896878238061838639754918277375243723652091757390737075428896035274081718318023268373424240505629583736987162939435979219115458326669401247777499202787103519676137149233905298948368774462677871004065420907283423078026466534587639773029434418894086500330025250649659237928031263035037668409599105777391201363401982995423756185505856801602956289152955556361388936722159162661309998314856767311358187960959687405817612092924335051840421256618856789519238776204693745889049363222199815898695188437639051513039805138091749372708702644854116617117451863482826161930435431335771980022774408701719563704159195217885934316430882604416451088205691989960006560236172789893799897646038516876389375738307301562291853704967317852205070943141424057519200503568677572804639548357954716070008360423921626118436101163885176434492518556323866129005503431494226705285498125491718894026777647881342660029027176013470468847162733432601597511292186279829456794361610986337316711440957126290762621698629657261913514486808630919075458499079129143707036662962085876544505557986953660235747065942085894988913024738034036692605118503870620755577035401381505801561980670740433294062053381200496507763604272988669652305035412686525090044197666479478812625290926069379176471250940985259222471154895888130066334032478281599374847658376580388230969327191519920874996566850685228729861635523005282182445768196600995119234999469457343611928362567235827396044638736133481251783457348277786989559388766786854185333029880379595735782785983858402157871303660392957762067949825380346537307398083689232584511325055967172990951627975471346064511277731872017131709008650750443083047503419388864690394383776905075260285736798768709423978845949297047712361062558707190440574887665213165068788722062750336253647219103271917423011427636266745363070737507459437637876095610657828972078718259705862515362141859164201208386640792663399720011188479156194892181587467310172032308836062902869671763444031154134348151664687954242973219611003349524583565440161769259522604183156601188941445231123723058178700925033595569347763432867793588639701968136169910376476140508693464873639568535523483481591658993023577462428278973029124169803611770700641786795164723825025551338201568028077199178940209159200853755690617277549503787204908780696183816846602542114305827979531945012254646336708487586079871956975986829170736522119351443761128122933351826716313724715568350805533746387321304768022729975826043373544871471630401569833910655023490499000238225764116795289769180648441227317361064017359629221984807655357117512373476869644993133658146019910580151584408421912015488708820334663389854224434682904916478941522274433404208683179743215497274738540785098255304853671307336811095730574504468131406683685535627023279536872372381099023398536964860092681794106002845497342385548789821354328562609804860462541826960306905311935019682899101363625832410745577913134113075993624356022793369126378574949053599291580325672274835441289691437106122558616120613850420711575786143938329643436904766961236805793967201578349832588184945216519450629495563718652659476898479629902680220839578708157595988121169524929563721126618145407123981337058661966790805350434427241858541194749185909630121956150850924521378540517810295482282174353130013149979785926000898475097118653714614430638734904440832047344987030294502004389157411247385697193070762728894124664380808012225360714369384692723387994535634896115240645653377531131511165389957579523180603476551145181165428971667932747629561755638314487752775551845227926137772531435920450074221931670652197396573115931267053922927883900067482673065740482206889474590634419538173485285754886891163087070548656763929349203561816675942163907786336801960920423676999753574385175935235292674339993223723747015622462376006458902342050666731884396955699618358457443881225339364596055008550468490688087141462130123728653966542213911403749142589771985259628626014928807346171319401135495883958028341638180980179947086298003340697579703348034235152388171955186566020036709551378593468477888128260584113977416881079693565227545016305660991159984406427638483106195811640809484353724791604367254544140154189027768046019374075164492245236664711912528680442490758163836345916814199530652825173502926702861998688128900815318562255207969349700519890821793368815187657671396680757633842950302222022396520498531085208701464146413588913590637980112479340921332390225323123265098600324382004993589544471436323528566336031647261347703250310849212326757044908710166367952452733165209679555173337032420296541677455173488858751440206037311993622921351708588168357613529716468361814178622541088238136781901784425569837463089070647966707690661439868664328961597515175552197559574046730095742201169151857973843938643468544165105595757233610435869552710780076176701627714502579966928047925060111560053284904633246884072490604218869487218595777646688392414705688482505231680675330891592231889923302369331718300173314703199012984760014868459808912923493997812719272271693165890724579835137273965456223897331460106495386268042696508854725781119900456867257007732309736547365248532910276653908198118789862585958179202148735199303763397272013336626304112155720612053075864702802763549010854658726493441696867647219712674070006192739537624109706830785225306614239641903043629080105731839356083438156301054857387766547800219636972860306091136900349848060275700560513448073184985859353506885053820599659953506906084051309522965237711597366308942184489560448008265739906646685293419451614240991749548775453313395539814471539781744848775896060881775135388449806090341976248524579572699255691646364198634975673097364524047224823533465120897314396881820764431466401673990026082108824092601988895975345142799109547297238740110508213209692571315511927191100915289067892237484342654726409106530102229766130952709362287141836449205106132050119446132323023545071857614988226039512418442153226763524794115139474296752304353733463355857848232176588385492439481390712421796941089893252723399869181465197443724160452008164448862096831784564069443806183014806510337042513184880893336255971701448965039276016704721965788998485153511868561624961618307178275444357550037361191783485339841549532840992251075096762927658639933370772822254863220572667043673652388415869346628263332235676704814095809203060335969069578851532295399434613411215519986932396273641207512105945718849557994850249558343269953445785915261441378795110909179787732694248863501807517432029379996520948403788963392116549903664029335488926016210188174569651891302733371053997925193440948067350805376988139575584570645380063555714728240343083365849819710445664583480320731656155603150284053893968739191706434113440045642449526304632607306402531603445669927284979624952319256713080953466435907742421309304012438498337639215513968635414915392827612406236208378505251424134626959870328884917248539032244827900132294586150918790104190393193130700729194747633695354002584698685535009261478959299872045163887822855250094821170772232662803138420043028408076484158803996395227369628788172653961989008399002235493833224016523615032772226547102552001082889507300835065511049225277304988027261291456863548817727443689078633723909095016109751164286650880772923819273665276168389250063209545675673665946626025346812989953890967752171849446859425663905629253091981844498741965291662279907661186112601490553719095361087905756952398502965272802138070915994658185664047917522889766028061959970684990983265795474391335131092519527761024038973545063992543302861754418905521089036399868017550011822849858779636491935145953486447163886647563942252874488993200669360275429359950747424022814817081216108644609809762508650028094321815396673820712773588391594302904040452951816260366477148572544964371443013703556081598060451454349016963989308183624191466370470088657602378203478107849055141247905108515571655980460402099794995619894757798496279099062434884506340871208574263643216858466816345248549785015568282777933778755880661124309821225296662851598072501769021868603314884963609663007722051276071097504174350957838064455275407088808049265526669179314075556416266637199204879840451143175659398633929997050147000540785687371391905815072610647838620866475967161240244668785356123262247364516002639148278303748288964756301097613664614799519261159108161419084663372732015322853305998877503467501719348305706426796834539700963127039171043122981541947541309365127152914558623490785626981329880730788472922136879806785044896368076634323424578394386244981577222273164605789628868380388733690042318569729465071069303695505208857140421131473910253305266204208424212450362218725933004759073283233745784266272992326274621203917304408360475327405820093622249091068716827521581920879361318946270921976093129956219455108546263995827275730251351063894959957128643498901680656992377865862914673660439753334831058293938843931136571080484082745670855015895508872936862223463211823010891066056967751851408351218876786773940118771938243481431927023825745845679724919890165777662159673775052076284672974891893597811944529684232425064451551291116906836877340870463195840774905650014681807547443294376285985781095066910225111386231491039756346184529415648730296202184701539256076056594673023629429788472815575825660670877947282443061551223628724454993177285168122396337753906807211562789067216651597462337606871453369528776665110282757105785261004274114907713128067328602812129279629368103460692226333323168815059607348526074832528677594878453085369827082164348521462829356985309713149543126122180461452109067924307623310352281718394256441548767081800077696488114601040922326394179681225254532764072533300717243176629051294563348164668676373155095782611299937942220613837883926557090329775017598906680491504234778135513011345164523010791245712946515317174127403957370531713783939065693563736967114525634461527945632434799173554683469130269653792625678022417865510599987265302067052465796142544662670924498872387270543565133618105468842813976935653692193099288433493397413307744657478811635115230199474595090302241655154125706852351841401312913441479727513661800381107853732080343526789439894385206888868632813739324295724245515232301023204143927756411637580137928036964257799244574666835249948988549702745550989692502170694565156627863890542137593985851921495609034481150988642027671858699963267416120749336616847714678565623589666247666542078939325047657166218330493959103819342938651082413175867061079106114116112538097768193324571071778843405002759178536075383413363566535004577803931468702490693578576428983097335447997748349763159203798189987500607923787814911570947480503872682173146142362733494412811247193185784062130769979629520601034910078596064560711352532014287093081967997204948691926053738397147965546963539472572792986380070532599988226298474594675186566610761174301570329307158766170205048758818407703618162683077376602337899549094033722853058473260563875489914118567744097873258879855479548064281418978188315324757041828458452274543215311174157856094546675852620169810547059434696554818983227794500935377412589949995155890198481891634842139987284741230202598121224730899043973582641030385028306124139731087445878358659790394755851982895606686933270871132235708438712399491522748420577659607631172610056418091461196297347522977619166929255039424493997274561638436165249345969990140317705527844406230213925926389641278127701129001957531378767686731354426712083303350646828327506448277821799505010001906939444487691301617083613939819188328080989153601151559055122531211613344682432486294567059231866380976289697775161321524142734955669158379275579849399898475008651054602283734391670080214663901851992549185871934419103169540089167061398664514178433923264293720156731896972345897428255420901820549466915039049596402382167792798159943302370395011723731157235384147443426431884898746107197054448249576324269613161159160013915112484354345490888731133757580957606058547301000091794329038810590026316275780288984516753652425885922736219976084841841923141359928425164076055751061997863236197013805648689473150604584968989560601399124897349977912544347120311006488533857914428885114716943154670130125292918452556915599652782624546069718465346764534889625056569816918906813896359998783157856640743113470148616159875805174464187082456001738065406540567604339849331366063216239815129161206886492451295920193382410466767048547347564811958269323502133296233913464709008523759201558087924790085297621447283767245928242895638563972457224716698318807662258685102008399615267967975259229302223507571884415086858513449552049953702291993957869394386311752400822240391151892864025646657506315970032036339226663960854394300729307568441251168925600073330547994256541815783932383778735090220583607612170238449225377327333471523986161526960043472913544416706091469219584557285413467361136364527828047402989864831403804021459202534281206483978765480552106697630799279183137916774940875474660737241027406227183064906682697059899025152376953353760118446023434013880507461362294994801686676088840719307140121823707632737176512215824155196487074127606222520141831874094198125844231833690158483410332028987073025466743634471517303588390389026447627500845534401737027439785447291821668144158528694400678208641955487637984146565721470029097509325625568401310965000602082875409111428440224526386694921765962268854826763054900287264695432343699529056312990252713200003318231013442295092180931327818210464569547782227365150530118151398375850962902053118615739029837910690023169066337041834975577271995048263075504552869418192300780068317153236327814787790160217490215703245265329435046093938517158926390090401025515108370570754947428478147862829917758988316327562660525007076720410166505988024562791163403457995152421935700967903447978016432381270091667133931850938746880985070339655879245086765235595549666243385233318221042479596376783948518015743901438401040563566889628302493257745479101033146326679468905580110253661851433101779401794026108377272096456465409889491150161853670589086001440338783784371743956081104806218922966134080544595197265010522993816530470227775938673227360443674879589648346462491828938912117020347511431153545249721916220002059552030964340724036715889590624314536505057734874718709780142947446149894466048130531648282263814927746984264624807964788379867876464481885881552602441470749626840821470108124917914183035510356787377346670574074331175397211892818213476034030242425467189248854078058647211591079162136344637147319725636387274086537483838652143787729685303013759278539528721430243470493929299932011818398778896845739288768272208036962385023812795534919522571132819969293379254875667585053021001046986223250749770423689184634056310920346542736676451449897496799463753683684074725929848182807006705723561051159858461575369750757439661361391867057947281906992752863058957583822011321510456012247349608561891093332156066963517038968848928693475113992991594885999344846657578762522455452050238991871119902062300185873978976468523493847605861041801207095467947939961335634442729181092672713772475028771354352523492034999942396188911445939479266731320720058599319441966421570566485106423697362914638384796362224386378838875045626850315888003810449679858376905605287514349406208940343051624798079912066280463731060249674780975434040715616297750838483871942629163436995643814098083616006396420241303356212987166833259796438220677330416088363413110655665597325898155505672483458573735956913166050322213333522297484389857355993896775238576939231310999290222474064127839935818032421227140741327267291978798603944166605595594946641200512358964978348062962208258501279630336862856122043904749943805021325135479819225683602573425254481510080592598571204067564979579292894489251726022984576655327778977336501726084756313266292780879235892442054199423327110511573476231099767650515469814973008304781986547741106464773469932881854374664037642000632634814478730600078836897232586632868271918655848153043796087162049119010779331047121012961738713758909019848812445989828668886231679024037960482191395680230966825352709981198399656684426692786306875396822169044059926213597488636656547726613198319872610851694449793533497112847148337916993159885330664541635557775379867787303704042918339699553484171365992786735032419040854435926961023580748384658036963609064139708796569014823101580488772600729393605226342849576229680864882689294700684732753262886871288571845494042995763648662442010904923017094273466262780714223137754451040617712284822452108221427126875663626528327570926590078226983057522864558692648303569049064263410292429389299779898129249089451171179303359464011867576788942928724730314312331707278020372632711648087058898792026066083680062523712052959415484688769437584497625451870159798271649777537188053095761399399746375530249985203135595044235673748155079748141629881250372457197217412343928455497611366601396907658817705622197966178295796559496872895310966338683588660496401187154526582564145726649486129913597428957386801495676054457802313430623722797471254922273429368523159159669499281123688759420687897417190070632628794665371935486843337525914137041431171698282693084534995314640244298790265259955142054889283104540922007365752396024258354244499177453016142416795011794447192993988874815613517867067302273743675784835184420815751434174270146042345031792261096560940133341018912169922821258520002824428716884120035169398572922833742489453678464512085357654529363983290640102860439158021095518802260829077319215060423694177532634438389564232999021395094116479326718173061651104451758434194697286289445787289152492827422436076538821304676639534250121297211476609905858868710006456721571124702196967320296329241500576663592609350423199039096495531615475393062032065133219679997048006236720445429545255772496658146022154820360234236552662274127618348844138292068807892891802988276698409043847848948490117733091386521385520731864022208785867746031829447120808767797262533281705222990314679430988794797253635056499386615952990931654190380771596384549729768063847821784247039302590957950148254589144650840874966751222085578197434087788730133022121704205561384685030339448305966032779311270314021552711749125534940556124723383190472874315758351358603841297088362508337900064411808440960220862421573987275000340566371817700758519305112434358626570352453362092820871187582937092073364417971336271791642861872595951233200568621895063365136907608696816209238845810985947644555639282522123510190042530980125947922196202177497351367930434992779597259056590690575499014476395274808039514210887471021660735750068018494163705811712671156960831110520013323795719085020201182582179559910445056111891333665427732406988226946135578168014499717199346328275267255508769318528189304953014471999770312970569742753519100433452730245844014167542884890635155579205910684717665550495496567269585466324645113948202920056586549640681316652899829266196111358646003523941301876518950392156556740466657772187996307002904252712845396387354993693290066503507499521874733056500087575389863090748579463670794276105180562018300896863889194761258598153193114284820939168697162129049380132454722247339798054038310475410307864015631988975941093798008861627019536620286769461004218169774003946973545972658340822324938203874074326354398211555724769151887330329810079245737028779844239631962990265485701806909506423976808369933694969659738196135921038035039725761603771341267066009760111275210845415145852352549671161500506301274419299568778287835410675479380421797279368113458503459688781195307723610979735727988005578524492636828951709725241634330155273248716156171715761392368137143051812968959021656662761091843345619260805645244451208423048547406377908055827803729240687830569371735434672401534997805091457283350516939847887774310280414716276160037990248747808926622705904602986358704020234605814417673487564962584485438752357623505460002141363917113850647228225191696077576827610914051826785032456888858980181120112994663352658186973563256897907102805401363971303701779970152734625845209244121288561538758097921728032112795636923001440324188274751638760340494175803603750584688964144723532363293773906837489967110770751255382035890589510475895824497639169469342983746035089156608234183457791262008366961331760150437069234220051999246111559971245261404244957995571340970333701258756397595841208342867609554962607983335758963694427555375669274730345562688806683380809769514848335933031115237478768636005057179464625189983358824942909014237612641012123193086040265944501191786504297313671508166872863579232285032755337185847529683129410522968321311999821241176983984242111537994920970037859957201773350399186828982883184784663149390469157124199054358428189358094612512616464748653055066675752324265987617636337556556000839166607237064068603931502470597394202585203834966169947269434063937948289429289660221443363048794760410246410593118585884755242201479926011214469959625426348388533561409170650202938437729526394617939408503332848952395798924754560304447594361512251936641049243600815695453013452771241921634819689975426005400335682679064898532183627160707440833414461386036802342646534302575378777816453520547873981867278423600279980706049690193304994555567221249196494290598142765582511564647279277938639570928269779685456645371590321270756724996143689558783004239856394858093154214910479422753688660064179137415760076372669300261775508235832212729771153634787301790912383390272055088017496514224347295951562287666663342029259793520845243390637268905541423845474132501534656092300889433731420271799019659282448646535850206204466738392593280617478018837607100161496908938406492860965848443580166087056482227518428944477731291111791664626555563352228749869342393387466948680462817913275422933833800476630120737394389131388735778213263279553607029225299956007969530014454412461518436533179166104361450145588552646425317992372724929370105976506306748008660045593461334005572460129563994875494532380618908911845782610689450122124644823370217461573696011584205916919030487447090973449166745071398413357686492693479914522884556471513830796901339319771025722270129848566725263655642263552497428745343171550367911614980874784582103262624326408047940222558297665290141524045211436909907978997263258117086092541645883918868934248611528508990491193989754254030433867498783969970517885826170712937401918974250348294273447244213776120930673024813545771447309884458980357165858860727784493292382973849619498644219889201541350333859732725933571359454456206687875846123507956060301119219031169648891234170896389073158201234530771705496662225102952668012238034865325782373527115064966671273529338583509666721512744006713130953293241292314749534784116664558011569993552919603420032553854511517322689967460726087541208128486961913189409569362883136683183300874081746057027694862879287555121130659976486147148644223848840923673766403699759159503059516381982487787392885202946441874869637246142608510688653395062490238165612871164615322776012347909689273103365293113390452312405709239177783895268695723989132380034659020099138704475052978896829232450606531379887288996387264539609581291229506857728571885795046791565474525602450270391743347460762543701730541744708139134907583848526700660132056496604742461626249620710992844415059476993253320077695763120044988204631340843347292540256419331059589135180105460073424321586569042477647421232872410019373772689706700939584542406490983950623552142861208449592905797260729398009705671780489996609175629466030333672232653501431789744287479155836334005727892394453139068218187670037366136216151354485564098227982165113516319239417392924223209856531601849284404457050888892794626505833067116730492840370650651700888447281173380333627421389137964653916304818757929857271431169236930812895319194697840851179321052510696355060845371724858137388498714451514016011050872930970414548541239420404793525688574350439573635217283066280070423432935506051787578784107359213768855116412133356812436289468438835840382424537245494422209935197941718788577312646136603659600725390336032771847466726480407851680382972703442006912777017396210777157315626370065371142784797998615165871953457811052495405141597620291518731711632948069144581404172561455939734079613001791125217077972864166736216925193583062560177855142643700981667788573622006812995560381865059564676720771534658935380836654504738898264921847597272485295109552765989681222218872355037972414595972988254858129906273805354296126350140258018431834448430186523677493721300729443097327552118385278460784138303709499925198943155325064673129057857382741474631549401777596555000021567587279461894686884558304598672233777350686640977220834334302491402006179114510838898086952896646451142631690407607402631459993938543276952439630266826632644966247099562400344621521449504766776923706878079217600383062632593819201719445270499625242988575635088924554657818299392791279257284817493722086527590569772142348946196479214056835432261819274516356286590280488785908428633114459775703202121564808632509641416225652353807935168060097013115677186932960675872315845153592406105850972615574571948354500780480477394469364637239410534022889475165328003805014206962295469560348339200707099780591989309336567333489124909914233581186766376799373656187855660512227982038452026399732768425926404742645583195667827598214989307414164112805246601059126029602414467734039774475378486760560250323706994043103721691235320575219682228937513366157028481954430044402717357021301665779453991883298585408357154064594010502585746553854217391133063642114816702139416930928551624960696812561028161152124775055829110933339754705001826613343658933897845676399870658259628642514876131557534287403910478043378661355341622729980977277492031004791567898431087798394160294210284237853038925215350789713325512666551096114154788163156492907311393806890778192055834003016187697051875705338470310826275707154651140027110517733817511685019469963959112751790238748468289774293866409197434924982582343957844040083521213965366153771908015218328996946001289454484849339580023384288148827424709541322782076728571355794979748511957045063668050281599243148252898014693004957883956364110307006177622224653680172598076965393731307435072011935094244406694500204531059908318661701861735099816233253557908300189631182358509854800116806897502083837625775602199550981108232948941581912193742084544493494321011087331479634822508565256771643990952231741245767292962983848661765007778629325962348829736135851662265932107310035578056699215798642547832126669558058758079235499342695478309191058019827740497932376906072321999460665812846993312135344001340160200379370826271112594927273139341404248971879595134872853387629618416443154943328621057036814537323528174402741114763123915237989139993722237212850460965963230055203685450482125122362338605680964889233627892505353290550906760671961014376640976265446803729836596488191528520530976918057383316041535505916503945623096244848864326992532687592140943336778660557258150742659572917483933063580565651167441003537043497245357240188738188538277271215451556986690428093314047877626632949996624761771822282951829368399525989281496989756491385755061143616370621158302990644589623779181340987807137462504314220222652919418044423966539650850261276044760687732492006959404825679603039439285394203630621362669242227940262904256749058724734363371163121957149136968764546664928456234066292574516295525809707396071406372097574676065054588112166037777647998072166276941589341846500504497960345733012210476501217725939903890179155774627210669207782346108797498075759611271459228722832742067056348030387195228309624196222291915554633508830507529973872426625538936754877992740865040555425795858563447886845538875490061986458781206013411123200274432765305466386446814736981688587355242750989539770968525375446539979361534741283490824563182054574794414025840370818013652105920426680226570212769052488328809546770106880239643690993699862392463104586709365772541310494107886227387961122705123778246163333870523831797015204354570425450397601233769191001649892134096578136675431563622048163106675157354455131270735345172909644302953558043131293402324383043256790982099112374181542485734420102159911480941756530812748867042655803274832514388888433787961214515176109713073246516078315850529083477900175092716982217565766430437652566744913111278462650572322944892296207975793968566969256126303692984087962365839065640048675690600931692735615239415750573021472207661168256842322029146616663530143672832806378043518507729447379388059565533073418255827398741959162026474051016278066727603166311199528542463149474785603875046827189045441294857230453905915443796327092573657587808563307464084115753977737002853634641376781548516489054238984637218087319467289910809657224322036526699637997063747879479113464521031943799962561460399253678447532663646830444685533340136645233224872101007305560678143090983186518629173484790111493726380630606400179313279719753580165863463024259552440855778970520585271310443693926888959100250021485897231683121816901313212901286204380691505894132437695229996328971685822889111851212366667792126025416194420203474404008728421098455293974756103758340966279319580136442300164622047012081234993220072966992273883842423337261203357724714773973089428151231538167263933045881803632043534754815581212677665687460757420483818340351384498204752841927048408386585118708654220659305828404188752020781203640232649048808212055983847018095389119591531856584961795977065720403522450589968849944946780031568133018389376767883533937712816201413260158862007950152112693565204776037168655819698511387147086128869304896680398841125060439901134126595374867281156078376764048208094454520223195287852645410664779309095135037416316051162659911829120326891250972743987432068717100543919744782738645366281550468620165232264289874739510951931657651348481246635910372487267560049392247126961837632443530589267540620246961640472570479438920059474091415987186533897458128809439706737999255099489021198017373058761385788446555253116671696464352340175851239730824182347785983208906723916778989137820372321784817056204017988331606800418636877941086103820782140700029956259465709360592454330941928132209136992553839206604938213520265217310840540884311489154969133597238384404125161514009616016847784686600394188807213674257629474895853036142026224974536712561702588822222636875307889974052925531004025982218215783112244582664201353182384714987228156291668416573951801759063859922575438561320378240188808624400152101657972539845678178115570907502721543285143001577390558622380425795390226527513811579573230408663926284350806802154468832410214525574389425946599639201279627326687020398110840568636934737939223997800849006248995607780875064349662378080341523108613093952947971331527324052574172551214243272316021146049217844383125805078063424303868711629764271851999344587811114802987100754857756918867942244102138797520701317665899826730143469012712653846624889199420585070942968104553625003119609600475422812566340103651079532851314349810549130388651465929998701524753717268238715215825367111919820603035219471244746688453166134240249796837600332283396545862456753076597724451662949380650721220646193932627440411684883091579704218824414247825004738558390105984009324747531949089799716554301249385117197077232533758178774238998867521043412057970317522051227313038091960651964861265116277694313074007395041193632926174848229055512748071358330568552357288606664094142040820126729216308814043939299182622057874151386712450080662558302387607834492643144532710675886497523352761456327152873227336189120052333495784575777139730917394254349484490114280008370211330770211860121385894755094940729052489911605261746438599408161235479483559480258493768283257225527178237130817639154055171656736160242864237741286246729228067396129875563595441262279095097864649209162700920931464294851343050095382412729558846227706022234333598177565684899520816343077942515784171608944348907007387784573055860943216778744586270962373303743965391168822102818650011363043966916987741414224381081172435598744508184598276861223910536782158305421107035178660482675641985950449786100795955823599458576932888663605805540828787948001370208186040850926419862613769693349432574678056101863407297484958766673178232031694038134982263165969044711221434184910828369944950101075358973469975878405246082002529000940102272803778040616993490199725625814199663072310277892461537120261138089334082481884953984375129610121019990525552741154770965673520800534380315259301496058262574449058040781989785200418188021298801799918901291629616673546633467054779490993193061261266773623363591401136683318328227805154328740689705394986138845510927412999749073082568046145962478634837676190985913085123522850374144871605276856525847443945535954343021902154364713516831423201665092311524823796665452533603733178908629910027163834222815661252218825786896540746024998789540846901093273629422306025346386229942908755825824590141199634068519907315748117370089335195094634226501740730822649260443586346565924808118501837414855231797765917086732990219188759825258272567743359050907739888648195768432721852096743198021969989236122082652284520285714956104877984748880014904238530574184244139825125805800691511032353511643400316959624364306512322138757033072529304744230403253516143036647039842855600090565526825542897020525635701586124701446248320566216286743087460293519560619780780278655472873232236058444087430954231601413035345244887094221849675463088624715922825521457333075263074138235900893028693376028152043499989237988006742479482442439608401697881523428832426932967826035879962569313820504147286898877090798527694067931359632087369686388340702535247811677417669349358817016476418537205469197820463623604213632131205099005387317510216311896393470588530110276565675158684218742314428710442454467863390019318418248577835286497984021265928610419458278117808096108637558008920779995820949068729491753159059049927921381695784684514496024434579816099700222895406797885153800016074376753311922012279553607055349262551252097798805010263908164321667079972571212618832202134811177990311098339920715765437310376856442088188777493267911348188048941082581126709242995052291302552413954592401500947930193906235945251188050129201799588223430999043840943004635344088461799714900230858594045365571703350991079656733247699257764674578070458714008412646715118487601695106124679270307468389630657693244954741517478444775530897625296699690800619281321395714457186418191601543592532917293293169700148599963731455238592095798995787271644692217409211764496577692886079721231672830527374496443414164183275356946466199655495247450611703658720506359308267569866138672093423115361381589861980659450181668363258903965061414973309231776247668366490741252181172094958720180155082042691560392441338392880888695149408181836703980809446639387513381588616283830210533527692887864267088525320029201004782304867030624164968324580947320123496680937042834403574202457287725111762007155827473438338460971469917861527209075947319330877054767786535372836133775203500787570964302270773307922238071808126632431853236436223299100067861776239905217573081548607998198016200875648926056301954441603476017194045151683619131363404483578356717535751349068490646098432494914772383607322700722841852270492990576130758603678532687984643729729655961658978977060774429888159782278920732382326958422928248229843531885835018121207673968092997822295864338201933919585590141285173509115993259172246767739157091836568946175678189243464041898928872856704160834961793955288705308141121880594604598501910196289329148757337326092994458614149762474097013622657039112861615858296561466737776612979297788450350758091298520940273220407928154522435939295011243302458028077945187180701192316000135681161360069301291734229020633819518976124035745135292766586452805823475416955700152002741689059671041382872953145096039057851043682987849670652659171357041757110494953533126041781915608386770504491810190157786795908228322047680449427621416074482219274841511593192980726278338965976120198649450778482543929830927891887622764331208667623900468919489870853920264164184334512872593424199381822238799529205464622900647402267845318178986228675742138436291824120069707419867022221605862109952345274223064120948774009370892013932856437143222573070263053556000662451634850456086431932852977336399772497204610900574669129190342119338633835755619526433971329812120999167212202269550106372858525959693901149642257612096457849226059832328686988344738791045566557522009146136710973499121589914511606115112590349474336455829491957572851396178919134486807486525765902616495212496640064417702500831821590469837891881530880626739565259335287823048121779359634189929133133059963872453932138295873382059122782790199879248285385840497241868944394549032250378232269537175409599679421541474321657521127647376569912854372601287837308521712193399401674339224837823658846122031771878436663925204212532901635627127376821482178949263455667811993411623014137138283594660901519651310033151199187337564987492600188448259649028106167961832978525153806805721328115465711905653195359173303692104420708710660508569201483581529061798276379276900752398719578362020249422132716748409213704159688457913836178464247708293792944487642616586257010979460525444155801241559490907356580815733714286844215761353328041022052912753459376833415640226461136449582550344450027835590889892592338393567836502206160753997213730311978925948993436654384298754322448887625860354008725343474799223985175778849223647977046359203169122700784189576919029438846373512501280716539554970815306210123960678263813291190594053310149786541618243501106839431086589742022268186270450088682903619351398101970836525917476958681065077573045503757276480026081441276251634214738002530226302663150406426228497092273850550793766304291352352779525534445673213236070520137877599895918032035533980407784964196064633317477231821795343013805842389600424819940460562290156853285531472718672222528966960028657116949783190357004696311197255742024760714743744455230600997897404148007588022248461893700461994852317817790672317273923595044017771701245498585114286373325859317467347862014776342694310372636404938801347168188814378107454694038630078456083833239201492072077087580790561751603615796837265872662438170496897986987650718381610654380412141762709802093048489595894038023685882150570279895289988640481384321262876958829827732980402909201565840625274621670437574766973481286145700831410348739623346738602885359996446449515261000565792495509666185121748671765113000206912177943044422738985722309985943076387620006523336363933352750521535921143845630199785172180822984212870599541050117527178467814268835490173592787148132329657283801929467305826566047322129365326377619777859126337488570477480836852481419826314031565478664534136534934423380742522257936417265271309337777815704555020442807035519565043452164664365753099359721117279155694593828774782495652310472534120828833323847352702937308714559721013063988775542242611552304377955835758536700838649118220697942040945914499506525794218987890936335772041830374381637745483793136423626207320203014818181500250660461185468965140259113146393995712865500362496201954515219285507651176031716673815313445439547938731205131124393099892029880135542349425098472901870703657182528480478149553913300486219890710013059841761496813149045928224244765640797490302789381752145594930728045432854587459808455398951673750755749282815835520010809192070780545394942853545989519262606080312460808145190207099545198159688568446939196362398550620301266615612185901906954280164983204246643809143549838572457593119619620495646921135575851500248414856264271731880883982743576453932591869093958653056862120939928140403874659808196006771329583977233114016813467935217035634498442302988270206477968458023363177563624791311779318071175617998479098421136466945483649689911262784599622246255639798799865066477741401603616583721629249003093260886655047747877197039532497645069209093175022713768258441538229138244230794731357912237161260600402783550731802842685969685669627542953827297193430348518380730474831729794839088722209526620914782350801711173533661624734666604043472444554072117799216928638121019174706584754019701340251849271732498243144868825825876461601418120750436514765083923643069619143937953334518609310795727570420543526810767777174768806277437646137078852965716551824311000539469146937771497481311052673836902108345799441448501286194498259494037068787021968290391943037953701938453969040024471185419499603577925675143960390404983622844869908799562868108206113486523162105607342192023877473543026918354359634669261450660855983716825714708609358126075846480986024011274939486973458259978016514052108469901876677304724810185765700370405573950887521548354612753676893045593099874531062973876596680032063500939509006459861360267151875684713996419653803443508496347820831410227732467022256496887603152851834211249569916051780340220287176917586518006422311692731180291539445727133682409947885580262581246540837685135321068173098093399454606568160798524197807332688534567744973931034126330476036177087029758852523324875075593783300921191018394741121167009577531091487112511298479733973382302315143817497811547131780787210778213671403942085112665193377345213383512647916886317437305640197920264210315525012933711822920907824496330208871770975480796181096207293869433699167203039709477880029900359168156673039933868123388413444929456030268829048242414425257383072833790858771536600308135352378679857992596857825047018027364472151398732300814730000600612261931127685254396702589176554438647365129990612132559489665124528860388937085540773810885209104420941879244087251256388906257663930814668044339745900699943062936631787183206849634667829726443708605818360471820700359303805066882195414876631758337749531034290407681015579993723785015228543884527310287603672401013582832098000368480178903327275636311412309246265813685136230993349518064017797562183267204126652228725803215144558333196995401233318974276844932491193593752844618209996490211817320337190699646231377924867969532598132591619474697596001524738747726866562291663171742415081736872135514131181443221527624350851443083995616182531992835310630813785411741989106255757856409884411385511224498129073771248774145026983749936379706003321341804699056444452518137399991443296834185862494793635501348402564192812013482768829990352595197556192935149402662913500373493483339940221352884593881782615775211970246449666693996093181524934745293462903269853917886704353395470399033881200105822813740065176127461603511392634523079209624963475881361383120205698201678073793787303528744386610447516959088713854102515313306101721867742846395323476073359453963145144886146730912785033879083223009609489795707330715343634480728688090826017589126996147847705418985093879320379431878605172351996982579044005939312951843751888499682444818498421172260612837873014850170930442492117265953598604505038811784292430224043168176191519750884951530444728770331514625400927674495058404942509013778824169052319028314948607462230534916230675550395662942413725615751563922061740132206050725982999022911749047660793505517476291677104485236421015951301104452103428793372770193901635298080348165535358224926291066461888023633284069735614263183555949439776652746206034747106672327611313718892263635109188743104324084915922391100336183058560254783831530095579698759729427033909916013595393357767966787456430396288418953865071474732173190848898289193156650723178251429358108262082165452879204169407950715586246376386961538303138472217169308610270012776710539930061731638624105338236317006103171606087489215099693299819799814477431532205715021048696397401157552187027322791671959873146753311285360509012696543254271008805632596781152893093890676564133972524012122417764235666566788943575933899170107096134994097270360713391459486011607242492283439582467314313463971586040707551638716355653363185786090131764080858139223572824757544719103444149791557652788344485623986254460324451273959311467409132084089192507296161720933448953490376805380621106011752155640579043242077847657717259486191695424165357749938702341860297482889716840317775557686839809577651060786852727285369616298208605825674525172452039919469476590715652691653797950873077501485019274565324952035561872454255414338745705300072203789887562743628970198644854339876638450384543473973520490374243134040712725991900777196730849666417906625830998451750207707180692081871206192019552962240435121402275837133288191694416622395327045125987062178223457996256349355916963888439816329774580287818257520066453129288368649065093474521487250987136124659218131282571854805485127923548892212631036997805259192328585756122876429146413460749607152583443989799363567355059573195244991430798746213351817562661669454980131409126841661179928720812326037752627898017826303888926362099517757094033745501856304730050784683775429957162142273976560855516926450384912276622686978297980212613560683798240393622717035563040077870161543377153898777242825628109189397789502420165692101065675200384996560020322560664099811762760002582514985422162990622106763970539585751141523660393087690677774395528594670471862010169482801865095295416366777961994678747319782676220027198708898500544793457892449831076150176136309917259639556247011602883108968414576977038462390238484615258377658356891524809350157149210994495774710707033595592302086164861714035758562001609412784168670356153805280748046878565650121903487625455229598894930993010350961548111673743318227560616268790322181068337473416961028752614201759462499554300940317527260738395110221006862394545766091951619890418063496867377670586384894923342411644108237862184721789249878433732622516716429220570992825103191996663808414547720405135030800732174657307856635888993090518717931407534905583962709330362917194933627373623278724696450690440053725015451532148482773842735271462527926904066169717756841617500186272983068724792158519260063442147975440242042232233594088738503749581242035747707301963824661789558279488575310344338699363414903415281585364053595149182135252846940155592356748853583570657411309196842660031147181860001898999019747510780487234523201877896721146102939488215705394415203068889321686570504607570966107352206563057462768750343441099340863915090479579359536740633707129426077239490223273210525283734902840446581985455523500970279485183501318585902895617419338098433719930587870356824174564747875241083108407424099060069841835256729022472847328600010507037128268411742076818953919638524111948367200857937085172377549542336771636324640479945092797387947774174554779861365487854858827027828611592494958209118945471582380135896799827763860202601987154955086463005579596992140617136622198487588612308265285975205039472668895066916145123323219645135547432328993539141528278807787632178810176099193074259765280496853298843943712338364017964338586247117027991396305982075583470635512261849840632092734081281485683102231601002486531453934551957284672842203474801183534016432080893787318519905726903134276916258953957574152292594513414514327386263159788821626403392110959956046066180611849594302167541213828280455685277137273851526276055367674806030543432430847462169517940938930234196796202180520076666121497212841750511838641016126338847804474188136062770015060698202379534422086392287687534444714386578063878201287579059436511273452499437567090060262861667749850554414284422852104302767429921255919562008955306563289339867843772334371346474740572085415217659029000254831536355350472566502687713755087125440113711690356908513911808532304225412782490169265545469103788271835981847130062360119953097484250399845613856582335630410066696211645700516693799693692170662053883023621886156326551975879377045453317389975710504469137248435190246478462016465747510838907103523704446201071445621711569131320724915949033762391384195473902886558487620675470213525350350156976041808260269341094681431541657117005003268024977004360831418062130439259590479336451805739073938912474645787056027535568401644467383908958661429814424379613656126898999932407386447851834885103450834181527091841964942842810731731674354822905889968874643772246693378658938812508349567991731517109414589179452228286556450926591604956431380784523842408495036955789707812241191275114854982337751838993469185662517774807878779565300930177844421254140879705113894374907352152515704428195306324876148639461597253053496400686415105491751699016122077553163736519754276474873692409544621432452087877924773600034771960619579711712605632165924962110884923385476156598309465953258664869323217326579985523865322403572576529907675663823427007970127811286814056151975214133868925608794432583671311917658324237679793241001965063218243064712733942895739606538135902732217006080087331282303901099943416412906618135820991581204780825943485266783560431022749556545605135912151313133610614586443217514612065177817899495897750464939587501587972559717778524867288379911412146230778298836419975866077267440356510031150496137325204556241733736382483868692642854766247844518270668468672208500623140436553092985446256742688617376786165095423175420734160342124786677748820378543557695244758589673444041584926268160125396021356401007243526505418049136501772289292207082737374584297134000164317727775580309509747283495752885659791339295036844238735740205490469174833322798605331006235384071662764706290309915295635710638555458130066171134928945353407072916778554258969983471750418182636510912287902189712334686690392758384480931277101057168416818968669612689257919314946185585946727898713190639900151899410701343651714146151095931879382010871642087282659654039059031983587337246291247826131321864791512129535506605090757173916866301459442342899285734425938850006425490993191297045350762805294866204690036728386907837234873995011972536681516103978573827686464350985265654538801379947120357165489530843493997597686921696960756402493404796663352948249701988900222749293744442030680864254452734692022777268661740828852658964542659699850359475431558772580495943547289701881190155622258785399298902185246667376863670644011556271668447390222690742038104540250021332349673205336398837094466086586353250712121963120376756083315998491851022252049393414723562692302307515465717730253048585807594097650455065372602638536052860093504188459174798481188366630187629033473488616178440830118609755067093105424046192397659392131632837514282444557040663653123345626631822146472983542598766707518802432281957178935193173628427761839901846879803218847826200243919601032067592926039912895146327800508389823400633948981731229146202999437533233787696870527299671180859064386767938168847786767874487790910837301077121868130756606010314383466479311096616045097122586035194009185568566410060253531427817295499562827998138627699319455224865420092395636948038389589520633270545531528568186830749637605454054288955267489754550341777750432393016890843750004340376485188219136112350479776343027031675125252565361291773668841152580304539214987340736894498391814795126368081091490854932703114772242371415222315264106399860400540831286783718743162761873224365925410389772472312476585836617616946085191735078966829758209558983537447591110194096467810903305901091832859238860556829312981434608377129998135047644458388490272599614297903148658196648356415779043673125921606893037107089368196484137390808021788167891327123778981357049644369075391967608769932499143758522646967480538563576880659453266837962011161006468100846849365943143705600561168852224464624441695896579362513799994646279372524354031010751968392184287711736800752571497701990342124629813500798125552583206206310317264646762916452671751298699809428477368160142439802449019772106834578568774376285410562251235861448138354509826847581561958631049573934875505716009549915082510420263289336273681283002888673911712783574326239623354064553801763422258394684994815755135048367909239327763157625950843771215427974748128887393733723975631161835917362988114966920549513060027201357362593719460089422688480400392771361009650428909795119492259430422329879893333660257488340495699204724411864020218835873190043844840423962607361923977952758257905412497727607475466980958735797820829010812614635480157739405119208334876226275859193220844712647229616206173537069270984271344346704181707178323584191695958801038082818930185911114927871783140596971214344439463407968965719410721041283811164625782759326500068760332236848804557475721085512771723332911381142747969054424172660950914150599759622407135989506985125892067632883367755643395259179397571298249304566220220500243121742260126230959476959506320682064901661552459292217472055956158831917598998852961783186362575028963787760378322438378322166718186155031996311299940683947047287953589396463536020088745464584337631376665784906969081139990321772682766886534509161344057637383132428183874542499496529583955473895568874792826052947475139739168195351859676210501555019019265236840962086892340688708350991836459996371814409065142091605702106498648352939389291014535206936712260711905162056958692726063627484487139900922511629795410079168686171748280814649637775172080543342462969528154205947313761217616803918978109064682747169310798486899714284756983363111999454706849696438535965587204938605836847801198289755037419518779293038922179716197823301169664068953046658943076440945653450283589371580522198309145050201352399756115508041009435077875489990814316202397176436025176118283626104472184223968229917725443664429735455228847603209830457552730437122953458050009374775020349503674853689754761522099803604754323569548517255986838052149974969236132988746060342872332994993351270764379891523611399394266003615009338562124213125117087127810589579290283490093531474088954378689101630880413739595241405912798626783155170190245232856831537524048337288552294067009750117075243203651450384994590945683688818945472288351000936886036802793759202540868470526496233435779779678036031155328522837148227959867595990896539323981995417506678040484859807112042633341445098017592251526820298709496177270671384336283955918644438578801417609755480053267208759936582899464793825596988701433605980196875697921215447857714057159376192134896106672142639908544965173323921309743035246259517967782647504101108540232803149335776841754279318357837901239375637817857913952964981635364855562969699099926345711299274543659092572572115826768110978660218875280562839163299697475417833693841408985123969369745481970008402557528891124057951749914802364300672950065430899013673433253958790087931710106679797964432059572304057315903121729126027518917129314896242177089023037559829623719401984034336531939215376946057079962952312560295262179504032416740606715734052585743812730013441668667891355976843889543739265924469580666195385978183520847763664268662802772550183939737496987865735660819273945827853543293758556756244437051841197891775651822072566243178620615947922863507536169441196342684998089869147249053883383525899438117767623132215325932741633686442218035357315221224729680189606189847593283372711914671611868977886644677457341023110782312866330267745921181894957201634442827100172387711696946751456662510254445868249008641001345878633912061796884493113440688240484172595337437645145059831803525032566141507870409442880099733321587770914591561619325925786400974138961598223755272650981663425875125185118881446471564178918807738094903960108373385007791819714212349695233220074393417974123471361267399978892696181846517289583931671567269132251499041493170505266077215217355716823843242191882331515509201234788909658664417968697848137626797363673002774002449760669783367860581841094252723410143084494610367927159456043227017736022335927642926466062568626021258608738406211824908084550372485055425657599780708698365063470647155693861201963400708060321182177622963895117322097146932199990152847580583835817935478165014846891154201511263652995094284507070484742133355506300410840394219043641851286986761614497565476000287566120724776043130139162090057665616975887123542723151315320968750411820512232536017267017288484462762565048202718213034685020150665687898261641210348736127511019785073629663976567951526330738638087206136417890741047219171315323169104068509056722921145844405687072745651596508787803223442191076069497400391831695968405064067433396875274637572487631552045873063520501696283010131863503157568795815049916930912567321818360057103626799141811523490069560313878594173243370321055435726341280363933981527331834848448066190376409651381897402526742385424908612790658438641766146588148233355829836142432623678336967663049104606181712843813502234422319659588593132492162813134136657048218849484666232007230080438413417437253174411386072003951923174568442700199545816204937659705468678194792662799789435967117389514791401588389958916767155383703894578772466286431404423501521719609790793557203289420041069105743848438044591458462093249749579504642844016900771580120225209352707727307381138610077595332607813991920602911303897380738808671982939523937129510145254059065687652075177957932519253596528919749316332205984327136431952428376702155577774548434588554909759248472945200349836255750849217723992446361746634861235932493380323155959204522144600899762071273333219090773061519461409264182756107818384110175468117402479470044258106803913015321448942274167328056669345350494989185256097626615324068807297584204924627364435239493425578397941528257599833343028648363041880146680268104973860417628293858597085439612152521305325240887262898531749972488443776670541344070901650017125101713204973480222893263129241357835912272384426595756065575196555854035810273494630743808139468107709989334357173860682693877653258509848373261499756843854518512955943626504637639680469088217283403451608926487049516281005606266611214662569181388897883925827719020823601518318584692936356795996555444122849692039136197221755858700766659038093429335039066707301166621142931250710405873191170486343669744518153759564715113247210245185371719603009174579209478207026738111504064801111959059287898584461168501964431680791417135180209861585455232018810830695068753861694631542800386462026864017029213441883369533692041441754506523399950419349066414334292939852799351719327833132185223255245476635110222851099521116060686417161619225979315592939948334445382041670040749107228183699935468965497688503966529644497823846599664108699029823689822217038449037237203315152879018839046222531123461218197462292139964995734558392691720780851669709583809779017255428370191660401033084159070630888299347194854783593962992907927953211284902249341625155552580168810648243530119223931361868366686928657394597118696424448285001197693414493297196706951631188059295385862305840496721988674134405329861329035994147380109161366140545071860794345379585683367642604190651107591582610542933643114652593820114511790139072846208349186856426845034455570996383610020268182907766043997001325442720879292430559250714919068262699232664073448398518181782213739538032869280763298797556292849894516926082838630418893912813857673769560638347874074940025455353002209733611528195461310286820740657637549227203096594790079428818334311817506519720847718069925021345297540933149229351031169320352628731564749841156589610336948154437203208710452182253710570234413102452601160283605999286761607417764895480853728947939423745827758494263980771461150147549228929393814022361938473204501520266677357534419461194414159737330460318982486340198671535026083036988686514295296051758383714791123176378923714036512424485579987928921444724204524976098880516368535065642017803593676880609047926860393127297300266192678366544852520782863237715442370523162889808139965225006621444693808818552569309654583234831971673256291490624774302866408358962038965028957714819079506766492933978371615532531740074302715284193496798257882599769500250426657793255883483559022228590965157075913581923456795663088144450417485095611808634284954566344319362786661393248995350053656882635928075895632476722857485154193024490429324102447695284371109699871829519944342551040587421685486481900129968450912466445316971890473917571958460967922021979608351195840349575973339228469425367062764517851302454514647394100032798715182434826572367622907745074838568614245096970861257585252701470683383864991985380553298896947841099850300779070050151610989227652289303298804572768697573167161835392844026374837314829197557037927134540407407078467019607110026844790989262129247223137407942234865086523668246277895327410869594184071816170497739954496532313610502113317503608620147375276204709360114091178217971939930099847007988178184767027831463141137057395472628475428262726262094886183918119273677447860577522699943876816068652089057971040009653940849860100638989141719367688048431415449427281274267109913273551398290288032941012724803462728867134561256027774448448557484261820895040957153351358909604616411549218730743329551732956957460399937470672961688141916344755844194551537675093884650577498896343999502370466656153194531837326609459643129168121342594953007026250048097885921802889765138374408371910038786505006004889394812828483846062415771386501894603806268088332393588342937764847091979527215298656080726268826462582633472693058355328922116480320125401777661550593395056727412235805259581408972115404069488401004567648083961901367001354605128203606759933934141258659221194269543435545095479754601482243098754469220030720573248095907239906336971047509828810140629390720473498418354374076554480213194334773879503714100728313151407029458974005880275436835185839892227395843359054939304393792717469811954242183154935977775453491580552305678734142030681593906896739885790505601982175011679542607950069621996251901799428047047999529636408255005556883504038497788747745244833669040443731348073831129303525628421700039966718278641288463233023825189929898377208055712441275059797516788170029432668870325789503968688913519503934879486880195978159811105102673016049461668260117683573658508823127930616682884181997894328932253761814022569014798525863814638208740843078206897696788126465001232940866711755284317044922240379557846845444838365975493962345878948631762472882651316732874832715496762877968135418997098272209015107308955438981320294306360550747504557855471332391185176061055989631113813905176901114930040739254028973989264512308347683907870449689162161526358417625081310611208639032484371068117948177553874637459143403462623064992947778598271221452476715774015126130059511006614730629348329115351917697400605744983916268325171870716208787994659825770982024983317939773315759665739033308231619260838889635730138389815589446147748898707100767982676350279287875659691182025913984084130444711927378482411567881511292746398645532931165522475290093843234006513150244609976033197965828719354224061423177096736474706027752488345494822410736999950250952072687731197003702791422337273001095280963551510678987743266665469356830503917255108439900370336440269064526837433872865669842872074427858240471740746722260303754545273616268013783533377579680696055775150235323681971976691122159096245196288200147449097476207289236478890564264598948476983239142352042313044604055768271845657568666118563241945659423573777905464188559833063458073733573859639164595781303287940240087258731111616998852970894921026872148818852900846710331915169867908888617896957317024066037029348981152037031005050514616294491658877032979016957611106451308800820067143234258148861032556895183965332735838187473991565338846913657940721485857738577687947228161901150404609248583084477196065258575066425563561478216267415877610060188057160240879763662559052273878609604295713536755888165416513384977037080403977149366378159883706693348342060642595731134916453586399390358930011640751427019768700888358955556296570368711376884710343637128409930729489898158178549413782899422571497788198987239441827792079943162773950070893969747101523332012499215373917773208491833280972545136680469806521822464882210926616451649932073496659140858214688739090343237269821365329257310199474958632288012867917980177399440046726784105257380454301977443824462094693956971490842356669519600526352240544739989205516659972445857342291204190358100654683743552025556027004645063782341849838812137560937546763720091674833834459155383339730127122400816253962777472371577206564521767945301579816496260462221207544421046216796248180949660166054395952244100921169890905944037945887211314585506686093066195847010791037222676034774861002596201641639044768946960693908257640176876627217347179225241925125545954227274581518889929726453377277929915986532931906385454048453227809261883314564778462208191936624797546070709839318560090532479668048405640280185028535869825714121793244077905542949674371419718040877864393960193763471122943993723394118363490216181659680904532037081428585807550590195623220427604257996816132594164415505735665600338747085308943527650460369132219005049986173938443513425267453151490516077583989215059767288873748345723904547273510413167081052197983117151090362664653548111719979214044881266447931387286626859556373978142733638936188125155713120148261429364337281104046797053863266898282783291458921711701157686501659905429349227974872412787679448422619638692030188485838992661944659853340504199437953114551996745000507153783332736946313568223372788581466977300683074381251088807518987062367622510990546179827605601940441701884069888853092662130125174425264738192417593141888570948192144796817422552048489202402242428613830375944863466686648202313742158437925047737406113406699532228317953429923317689110128228578762595295999660790724193580971913703263790594017951129892330860517187950402473338157948427487561851450280359629603808897644762896208532957565833365124576863255355820752528661325390885183151568595650007170043622382883089271301579596259507434580179464642983338438169088207551378795290626951118617561921173779125144433760332787315907978315014641315929810458896924366376332135741503939464676839953425268306348781184324560985523580927069956982117090460608257411325006386124721738054244767064485661803876854161718327151153443821831617922284698039785810574681927894346869494421311113579577194624477002143504283047714120559140876085856861707118494123611295597200339321041058361853893497135275306630181146237767989676594309040767426545224009253514889997298058136391823148290153077186726588296909827172973559261182314380402420661208271837099120712888584897762945657592377776452594203065935596971844011253012219706447683181517694189891494244690664631476340948628411086731583526053790512192334713578979570808163692709707032733278093220143991138976454248072217476559194368144349711715431378111519933778789459686829075685042005505785156204214092336613652870324230028517141733189568500723057911663600361052223718961872692449395859386716928766493844436550439753600424045284467018028690133574883697163961211945168737592360395119220071851288293081400655940545119005225458274306326073730636789302952890398322757743235294376203126737157985160990875454424450838531928921437733166738560910846760615334066469531690317482294526774783298062860322685018540865221958206316836349874523357527321914763613469661927744528129317555285754058023356561367507787422395823857400111141340732050339261960206835750102612082806731802080622659282399257285458989799204634348258605915774940998342684391941727084663589204778315135237661179700797015857282117007410703399253379164058397976967261650551730006108357297777732546079317159475734842564950116459560320795886529060503929359790303886704798341836605726607194113837045175481887816445795863267346447149621245771522358447439202764995247556145766596209922585466207514833941245172424728076018642254016344343411916500828460151618364237658420053448685046559046668105221939927494502974392986818215020324780166829471888449261817903401003095873897679551197378354858964996321328909580801842102468846352288172306775998307121142224274664198833022467036073253164916919557373009345022528858767661569713593217770778099407868140640604904021434309281090496031061882842325415802565111773677287834482907969036092477658050954533859537245876316332455091381695591887135811540669439138477954425371133916228601057995001771477594103300011704045131160032553806014769569945998825425556903999797509214539233401040407928074398107162485041011718636755310339180238923040121426339038328166453521483780508707251903053824672273389151189252094433891333007475545300241895780064610257060897506438119672616477242705184383975231109400317224642271954022528214058525648593124854809092910108607308882753587849167439828047302034135704711492248985875326471019529055507406463656180076931184376456741909838741435563143629346036945919502255467405640629687918031920618929898941856950568699634549667949458185752028629720593624218359141275836237848372173626562030375113776757771153891349215079692013007019298249503962509452710747690114495106457017264550779713100698325736409793175651771804123596939816241529031551731466814591840239755248318984905174020672334984923029444115837857190077353701817529227425317629635612455166818190458381882812317289978283756919968912831704989455326894925980817137801362531453496136520834128432959314368248591015053510747790476147001558885509207275156338329074259424698975741510815576417195206441020200159950156079977948566044254587505432738400315180053866243308084929200527689767628383029266257095151215285227031525035417824834900293171963519854823742096433118085185876531374076888229654953846464832930164945370129478017158019107431112197611267139454817088289094408728189510661111895615576752219994686246961597119545320436797901712482470618426894109873928085605920007091354326415381278309448310245645945026416543525263361267786296341240988539064675404809320127691577894722187489349446624455204222559333501192843923849972594401415114692266556458753873684295413481865119317644496246201661247668241692514923188610048731989875329722160703724883835824036847155996234387220665401047087016042647280087446538234069274189127321448702469666275962746226016372902778336422939876284416538124272277137423753477713694862971608241264849623594087703318317847223391775111956934647769552386026578233719978552503158328970033638665130040172841032362281188785054959137288075244799420247739764504361910531175843866875486541113223329670505642445493036680226102263977668481523727703503723833767534292632737092718900477243784495308364492406342815465503043730726432292154304733752041568109372168312851146626983965862422349776152543321991963024734116341303459947299696397235926643512060222646342835858441910466542303243359070976252340272636221802679447676581898168355734018311486237330872199946237175939134729602790431464264842868912323525889865036707295939402063211990600059670493768234190135414521981811104489752025824714778360198903293017687571500372837532930465750852634625958725989613096658686834518266922996103627473332164209992761904341556074646284635817165054150715434043107635647990237379727076969923943832720281869140633544687783018702706136873413950705108382056911200847675124963248288983721955453266885817414999738236367218879898078439425489955359308291983877164186288187162350976980497183559957066491642625590594969251351814790729169891052196035660416225474534321681275963801115223754306438461944565339944080144575063641196843614070433058012831251097114945874733648591354870921560686044805004225765183772465797873752390157890210591966997662752152275679477845349241255315958986994789420206915660736977234728269438054875327598406295578518205210314826013787356637506133515472026766793473554201523356261435763283908011252445164136801247998637264495613310362118084816549582679165994403535032589933878248733716891616665710113657243603229885863690030832254166424962886375637323457500353006389049573266337179491660912707723629133440658647139563233280338086883473335812957839890054470021243620929626353006357368042114130303742361543494986895950546434941855610384574751922027408123712738614310632323562736727796488212441727094156403107837240493539745474822749103328333122123027936485314473616475663334948366091346930434172403738018823990249160659220428274031135949389038071135941214972974736353887794489750673531090617248824791767549555103872301158080422855747176194324119628204059481746424921873577754906715016810984656216768151444908729834926444747677215504381801539909781089496618216153739281765419214500462589903662300923107757839059812963579400174505915769514743385510140169615126129716326015900515639469362232941505535748081606335083863222955598383035426860397075095680569143131944778291942949453724580338020400075217944437735456685755823608178987019458601952707138793725508275333422440142730775936546603827504872212376492627383002484527427201555667343217621766024255870022397581973433073137763330250307498317757514235597294996461062119255447620594534744184895922640510464754496928304618936758382243014855558174475598991222319173230467389767031444529949359793063026371505209188670276116584880102589231731210062800140295570834539102436444445950187279017030861971034170163849913453501561915298141239927889363459508942553261511064645725350737529029306143488737248159899623839836259892098929571078215613156351001883800762977182181939573379203856287172533322200191825511763045773707024300093048954659229708779500806310889381722837507950904961643987922756985959767921505060741275517064126065458643929515528206061718360656108758480808475730167203330515424274981433431897668775450717189140812370652994316175020882809021737385435613574004309212669365009121374058355671861489019419213695429371200482993523824557250051772865998738957486697829386021093022250447193370421322660209067230823844916536583206198936756208301758076206096040529629249260682120129581073470898516978479006248739696905835675280651685991243874401723067724021638428496470028638778187676560123294762864632404964258475312512750879967038555849787278093348693389964756559343318975460485167080898937139258818826831691587028769690506545389688469304502963942938892053179125833544367080866085023193132134715196354428865515781749547340540226004442039258831222037351689585181946928582494113888588461997518357023974041050540614499227295643817337226081870437193426858902132610982633970720601615706090950227487167920285674747317665302584266386887290181566594668715165221860988807442469487957672631041517747506927924623940966336952415030789165448368480441929862538818215878188359097869500600379240888566553279167004961821033970572134531614026391179168656407355177906064868246076448646075233252535484547444142625997748613108298680142565026241613265533615722071020351537562456611181426587494971731605802104796366928008477184060997573036937082920840348265878047071042699757273635767701755206640518769593360352990666431220596096601854084313145502705732377905950600364573956929563086251590800560709318125894835094017606286465317604103789293046935473543304574861773598186450171028431630368956819009764493580227867911457538917062513834465387026120476439683296244119004315327032544384149918251578439848473494133287348370311803671778333942461754011283714859621235740600591207445967553410389551868975465278487917824113780698122975467702436192112575871865635054621033558784588927060956440452189414348522320305757578803830388300926234910122550526585562585420537326396813007279964183107030823504589362357065317541808230178870906514574871923948661554438345595458139614555397555989547906507708936295866719105104232354033292311931682905806070700871783800504923011582912515493245649528736875223847112947892653794041516724373434960229068473070879764581612279632383592665882588077927545902749841388087097053366993902303516414338981128310754583384919991049078642451367761717585861804445530169638993063805118305633829750232860461291696548660002520292002162770029539320332993278176329400217267868778023730854436106555309161423681610651716916822533335973975485860734913345086537653896652626872118630407060035578046134139730977953149733017335569360250559276573632604340359856932771347500580805956362201393565098402239530057440031325394838257239614020688266794134745166018754140264547097447520386356462649862640502968994194312432988892407218618544124289200419984561580010889265539227134156878537413999957381595813007662634794158296912225371149637603775764769669234091919592517869632254923886251349960364167856489455123171042463967712840123102218369038422079445260749965558020758927916799492678170409698829579975199564030345774946057672806663155622290838897667237009963800963511865286151461833594741133212101453797898252949314831456811757815362438421114241251920055457110520894352397895990003907782568811489481037320886859220604815077278043440122822884744541263186517486450497327180364436964503931835541822239426047600416624550333967161061340576211368529170873809770209498159602777402554014690164882051043522090842741617785940494850450460021429006173117759678124754647707832648346965094643469369568663534234575163810734984641028433952843777874951132413841317375185555336605649617426566308639821860249779758450563393377589249728294919247296486375042521456254494252080512001134352915434247862733353125656667463586876761845577106743050185314386117856789623522013107588535506742830702354415944643243233078358514997327625395692263754384248131760449809364803418742363522467189371049133145826502975399500544581354941313435318468795069223224121431226790320047913308324119635206326042175108702110074980788125133688062062408054843336702658309493830086836227501403563781511434343663912117334232529289049789571667687491826111092564626881189803442321794177937094717285261512442353565145186705143277229485680959793880875245488904061654989099462443774339861329205380712895493765141549633210661883253031133511269275290711851322263577319454989398595584848074077553335654700906796068827025367395771694158068605954760142882816711583726506959392892071106990803427310755451722313711302554860481802593363068355546674043702068014737283558726593197932799108743456873639730076578373279896316754971585860602979332949827515948671554688439103531306355630123509640698513853388664406780571146282582487143357216546285034203852255923871325420664841737877722737685151597302214618643770534605921119447791160377245060256325376471617536274368227918705972920225706599751829199957080212827304470368658479601155677260223058847154726480683555465464484664738602304048164861094090338719297534459895451322999138074523521229721164613414549612959181866635061200797130382247435421551906529015240005962156009835173367688772677129480516568785989826460469998581464255698186270485112832525726239376022072126273220842909349351545845063621035763177460850483175194502335411303050836719430354244022802758832788780708865064857356372089378321890410975902134968052759567614236082219272627767664217951243499228604887546037372490511915733422150228836396190303532564639457023375653625014825196451963181755365433680813936401511918067952684589885425930617759561663794394375786046225330696281108828414426506039189370258517869884142471206712970371196306598460801655992969833211580838311176788584145991004006349151309393024778034394646487708454392776318057186028952387115312841645614517714830573820651910409066873710388191158806923560426175351988010418937984775185391072988646367758096695581523702823892609304104362090839965793982854455657849209756046826984095625870822722526044484493402382080271853956467236828909172656885416029589778618245002278513421366713049009641500184143090203083576679603755869129693626657542548315325972251714936433840699497513720393781281659316303283648789863834287497496396344714299972922530072556040850824009441053799087763474190802391916350464639019148043221490252434336959109480958789043778326279128647875307242979331931835566706468924572901872273243636257300910877087550857068396476700191940459516970940740383349046632918161352534439187984483625110173100526988870889927481802034750450061172353470419957387961041169761517560774935478862203448504338408262456837958180353082012468287894662551960528277701884483754194883175208584262242875458090000036717593946058261620541627423229315131435675473038495428464148064030080443126478119894756969754917192160891760228155596956675110709799812064888222787788371515304926660123938960653145876799068834003368892702456458304114873880583092133247418764761658299714130009439701305543374925342409347565936058231906937624229629739670555225634057115257940482412549693293763779992259099192953931425655804940598983722977484624141545683013795751569418436554532760889942249968891281345666853830676619528003687527636443414743537011866585144952919506884272929484625769549079618278737743590978496079205066244194670519052652532250334942359974765498859712492772834911443383066078858497259529309375859591230759537767358627700831073243258092441958060118822565338709472980048441409748565672500886304370804672455749770970056476623844522006532288822280670217617431471521552711110736954515155016525617132359250369808217051009267561782180934007959921738630705214690993283967900871981698052118776113714255929321036513899239953003909243808559207358933526709388691942713162850802432692088641763191951219648925467957440876731793496037248474077056713225529214993909503103023983151044504941890615708253926534610839068502609586655748689283767269186775264147689983574505544142116695675626382376896908085144816480034403096935051144683414897405857621230323420057290980492325488670327282596918012905275486205546983204729756170431378730639514438469541619998405022143256077039397835087184749823637135958854112357387602013820559819571623897159565393674317742911302771901362981195715304614178933192487304281929333681540901522163247725248086438117176103318440850148878983182491437188300658700430163745898141800744948283554220447780895245338105135604016593652894488976706015325313780899959320466305608480509650924755921745132368995342779874564409833725721638353482400660573542521294323856278265295388033151556069283863173121589223809799214109847677640714930081002253179443322235552144814427633066287533391453403602374930408408051012663131848747845176388986896011893827569638522112722459143222615574053295180806988462694004373847977445884935040498667839058044603033633832937480800268732608606055407594681009487012048225320470653413495209704251476918451847657771212528329616856728762791711074038937438482832067259363017703956446191720976221938007947266901736643575973759527558832974966391091879479760368853992266403733367941877047600115582566065549019902042381835240583240876253188290579465459035878753916541523592146607706025315347237687227535634689377290797660283133308415589058904936453573320817890539334921085265763562166342698791819708609294232290359479139486112420302884201837572558337340729742562620638581502395158027236269405735164962181702259250916534447287637648934527366837022318239752871582492207133147414128040313818639387321004142202397830201293312150137385164068206487324051049293771761887775468837000346003582755562100536157447382457182886564744418095682473061249816940092303100016437634285029618909476666096205335139427541022622391240334873640366220452597117942514055796501353150832290608853757111712873563093929596110580499415869622910339015411613522514975305372446177880212655613297568918459289010666617669879429801900374810348253012408577923913625488479247856162811017323818071215102686768165986126693283881077585653237914409373113353854262832903158328007247720885750509048360389861569371807362053687538861457707409640108258887788170887547370380382159108534246830304925826808390158250711164637171629319826718526426552018849763956534529141347699359666551072115830098419321860134466419082462680513703249459611242183136714585929299311196972615371443174696937906384909752728400828459109275350212580782445151249646853555441435635413275639716112003677378001271512604918358985982948669602015406390448707305584117556572516064172327777231698292503310282955547852522316105803762577653222649156688601929398100371112127770755437892250430114903387734258216928192892160672984580014180312289838329468289829198688897791421857311340496051742427878407292026214030294106056524033973791077141481485500086368869773154576053052111486562257032128044359372545966954922954461522577022007997697212571444894077049456519149006881018430027570338749820228059230885824054240171409120231070568852694205952318136367440668610438570834225069599790878289783734683190762223872618998417543818428619309858000258904800772361556364696791976781415193931836592861357110176865504875460971982530383442367165025119262061656415021454656187896834026169586591230435453429706064468390042211873799934779267536881958931562922793664136681222049721073676420021445503602652187407750185775422436841802973244421717554168066919363218439835621151193535819690289229747509830171726219378066787910978672377012814449842944063050987911240859892717832452245466142746264719220933141822050370332593517131134246763055842589647555073383494172559737557684940691872895221070345933531933190035209467327280984810140477231530826598394301923841201142097905933472711326000088543587170754642570040492906670108415736008637580872343123145908680079152100851484843014848558462042819364235299695563450375763593209503544033259213311423619173749793997822835430828807338711736688710764717973109585168526127608024792035743586897296734261384734812580309044625816703548383769817302285887196084745478399226448061411911708626098169886674031885748929937117918673716703774060868713751471156575587453373722890433339010124707382223480362661288835439873716001320935136193050340303007160854010125357396485163754935255175108484315486929674895247689264553804567645023774096450259298065707287816176009754887863126671983664556183442924363430796537152444290947035707936779891439002531315140172954976288570581659796612570913900396144086900615862178391683991654396133295415769589613282961368459554094260151971768309795151739771951940101433822986772676774558880129737303229041926092472363906704685572334747340328472957996867242071213808893652941288447193359862330853514201205830393966611377171473559553353796983334256674316474460028701263182288747417286736588517378808691205706668361046566532847982270231286308789626343039701232421800899752082265311787678537294264118872705841322856926961177070739000603342137573197106851349824889457965691107127868003120997857457514677372195060880902984839860274394394535092886800778988705810447493372381179682709760786831451677420648126261178191265957892694251609177908022381175009578978951407794693425579017159077033714314156120432051556174622239059173740185067569457138570711495943914689256009511849124120632175292455560343415390906134711363575216160501093988502817059214445133353977834322706375834073179801566733763173316442544368018073673562126135601611315520171416811621763033404242441775303694763302591816030408565640243953127408752557554559306724678508231163786356142609083512716528700765450253720836499235559146279804850050586257850662542079184989200185984954636266792531714474185316344611813532758984618047350015535154451969309503337716149803609001640516855404317701382862729376720723684562163800995840938678109147211611990590244958659966931991200760200224023842873567471067399507402482054409683799370443664405284440845463013874059064751090660878329163022668876350028720708735060921788349852625344168552027240140498154790450602567183254688269495115066042892597456914338385509064268431393475971005980801230846817926453541736236343696002404045395675135425267815932379002966662554646232419484892574760627773377419423273223176487715242009196858280093403489813267740090585490465801187029728197437800918590454832007619023626191538330327997352039974568294361056488637549971200006714268209291119443499004506357843750692318306866485624141455461679021757490994633180289935101756074638099000996257846655170063261488953592012526615300766578314752628435156574586315600405850527059007596940327091232425523986429764105683788202234883684493486296353611263379853156878613099200784974150404975500439691118275131668984508288681395818416755212671986734615969161953796922023012167520108876795367949112382005026977779995569280379813452297018349723745748231959852983723062691357548515678290246318972019031892031113949315754263929186820026863920134328942435156058176962052206638402832420675241196296416225175831360310130268051907827711289130520129702819401415480181871387750030854486246642553337761627578831975217767784116162417650457539150459491708016974295617801973522735226246450608840696102626117826458130100995688862977501072295255543424857281972684579655319478908126264684324565160582706502471250675249566055533076980423411591310536161393625901151702092363456641781668744700033746194096424014871228353839224258297297527600450741477475229185416606120062221919899664359498071531429138508053857372139486580657084330611506340978754490088841274215723116487636833404559773242908819417595162001221845526139433324170800397603032457925345800281449148295531691721114887577872877665531296401047608416419321454636442479952861128635838874133076367741662219144733341237060517406149768409844986066653199553970404715217247330409947466314653024633574658247806169273606636004252985145989704205630760115014070863443813913298669487112598578665352511094903819735232549695264988633159186117617379987458921872552831207716901928333276687580368857432636146445740485154940840386695324350408552837072514681486349949671770522412624385017419556337773688149443253714435371071782615745871548723384829637963112669517602154178271819283026068079052085691746817007307417180310091235554181190561911891075260802748043029329490329731185566420944536755418452141112779068272367119728818761789850066962450073168611280936114260637085106459493548107435038046532184584965542484850350561703881530755247527634276948483124796642768565520426202888018789571956366833957085583848938756401969680288677714200918132186655139023292879563215447064044473751057569375351149121267043180808058099759654656943648613992285147578343959866706628834902803050078784392895189593122292830625851158061873220782539968970040408385261208236843024364681571551677488752124280097543288938384219237322537869262247778013300585047208890132660467339563750495361045642356184892039489476902745341015568491153536932776917799322326908179466037820996749483601795233555763400562145457496562506439364185145274959034004951760451221109191601975469613870007333006881615501556550967900657432328508543436584018404244092558160491635273071133262655961939046724238154950536894641020980988168737232546568728808407437694401705934246989734980510717113076542192347335362053950978600366279364240232464367704217151436583070507605804833511838824972361036095043789049766876273835661341321480243143924048644498805908491080133527491376285125607704864408426073904815338723305952096789779296348901584832072856340015686685107269127437196073395796569232899093269181446284390187902682249839896182390518931534479260699839832102143119617133169121318247575328055455081968552521417899666204013426348321926240565291694946492265961468045100440669252545009546740136605111958461934406329186663147589216678347319464441942397217518940527114324827576559111269502400906488366678015582160535974036467008172759530185754123952701164219993618144926973190902246869435779477371070122483179141965498007549285549953289751910888131765172674895381647949473768425531746932844569075004319325739730148878919347286678046147970488631634564806358231755038682957977105568638296627353534826896004152609875455094528856073576524580331411189756398101754344826709864519563498734746840856436828046810541048742741238803520369786266748694096434535570937672204715017935376090561061164213945824604725917495325492361499114803364716794956695691326656221763958372860546242075122172518804122614827863037056403310315526169828302259410340193351251581950004144396977234403211129763395831868818101969377508613613017419291143098504640102000255556573695333238954732313736760215267573849514206687064933379270509397165100268376278684492080074938956868731009446044525241507330072605626330110410840046450820937244306209638156218329657905269626188202081796274293238012775441404631298732703677034828495501903234713343143350014004998313107556237255779711347501441722367518258030247858672672317445326050858187739202062757049330190396500622849419123891101621018584479491914089155520249663751684144618389852323575081365897855764312398843201578278185850617154782546639580250174700823214121519510875412293911142457270037164364444706108389596649712804319117963375646644559397006108907127244135528091070877345404146202029028622553573689249533521095675790583863524386446315615165999871187558962496405023539111602083849010118362816767814782469601034131322366561134788979885143649242102370933378677020773353885293242764230934056910264782040588799786331358723144695887154822526012210964483765254094659576337116820362529680228709664173234850208310479729065954626138556401575612123595088412237705346530260818199498288317981266766771565364546039099516403525084664498942075345149338320605989168143096919833463175015719203454775424534182812662212278544244719764275083747462120854875045562553078668510917224126822154777589142530642395065089506299196103779033931737896052575867099814719171323287694597875353073520253819454924724646181635157822718596628331656261887938966429360349468200271206629639695347019783617024180196800849242526672823827298119779367622090869923119403851637047398049273373988243606516464646227307158944189694040601912921086337307518288296042138906345532527011545998703824403384770592323766067953132082741984647648068240181134829210682656060986164465435084375719212507565909136194894470086057847324262432800674962414592225281558096729064933868461457142446848489276686034776718046956340790584637162845230160863862435059142483824086131162382042888193982504800675961996310950413417794397525478407415329804266746520119501900729798739677266175142718694514271118440079283276326229821613942468397111898670203592532686099092547695316556564309629979667920076375948616007494265717512406150447370490448569848908489179953320617110859593364077861077269255569263715000669213876881503917119224865037055520113227607013940090725746858987155290344306825934018875867898145058106254383693781211128318081848427420179801007859496263953325569737672698179059615839723248439089794732526038341208931237532537097657221956173170078712518108676852102177100326292506089553719452294594452267370952270124689882869914116241841395009329975095616090433731740724751837275424400619712882747280471325061493994089984851745813332628711849970995334074553566363816182051577153100409547832078845100678756660031128651030871249127640995539370865916562452351854560000049239085118921465467075158315405929399897758657438578963640494063776506262880913756492193460091997816470393816402102434057209116665854934636487649643466317461224364779794088805926500667237319842361151627448951293709906774898897874537019872846900696282033314812098758780391740994857104430681258396542284906302304273120218187795942883859513708770192681303956476410442276809934539730741517978453516772320511446186787651275730650637774365466366699646540487409065984964249560318148683229458728378988690964314790317222168265720139079731111156887978750382955197861250233965963727893910948693705733435096300352714722043069905335834224755552532165469171641975694097098427897853285371549493440938948020411324426047052135131024398557085137824011238445676311707784364775130717840331405548306806483085872669906967480773887488041888484657195859292056724512675793005209558297878405489953356831879671820359530997042794373896040486917160804165078479313513276680779277176461142909882603828592730142520202990910788429683758208031379389207033741811867442690605262417282611674565051441265272360423235107473371851665686307914626743685715382631589297276919679797660708441383457316566633621199690675553985101093354438336111301113977506067003105804872708868401395546374939489918816782640067423703040835559559166000798540626228659662826594591181174566987434352033311636143439347523161011551567851275707039297908186372770588373431287891258090980139268130481767646121652331070745231879385193184006226621339569122391498474490156322511416704544832376965037009807382271374249767206560922019553192590315533553673133680130056971031870540198414948950102235464617741014171003092410895224449426949126566041759609585594409357109299344879405974455574987802150893395204737205536706122795762478156479403659047670834228125815862098182726738873384854186649930037425492404545991975280065668178796403077280514349041996187781989942824123886508180473631822506435525324145414373937551850712928347118435662541198883710616007156094353562917321087323035160026418731348559489784934895105088038427841254825438031151689888530743829571077642041747683370897715539814697147170281330005762687130506629938470669279532520118504620833449728961761098192201494073587518942158557247945848065468164284078633510037251520736907494568222214523136636702939377597267792645002245896138369790966897651316282140757333377362387120140075356875125076529818646329658714786510227581025769880176543030348345920306267526013433979674646239176506270882776284476161163759971639725592564957367058209477424906238374242653976338720937916477695838256986536582362909223721650171252289516110142831161404293910511294883516202414987229344868626684964851773410562219142367161882368121162882700416422185971745110038839150267192695702872919912579494846308928245143595243631284307921517784623837059079978729360534229189344111976036536433782673893369853537849479548694849028163617822000317596510238241503854193787983457868044144358777378862201234798006200492865566933864250504543782582790619904987792611863929421891420235279315874108848977987167553461511265054592857929382359408661666058412275150605980672787365911418494787489043694534756398860913678876749683098587779759375818958671367853595862722737912324231571931972561728177104282350778277481198242904187715776210552561869026888246478093197980524174398562903261464267046222220592316720304019592135491886386703034430619204927711954647459647620077195069120162679911118149584953590562801452111373709879913709853011887161854044562835307874817586428308364556170369056730770039989477572867314723895745158077102917617423924121967619852648465849549090641922783818793977818767744439712442611491709582159596654567950218533655874053303612550688129488458467525727505466665555159077239964905532583360202172664882506217697496016151945972199496935675991437460500004014195550253503013433202716253902644813959281100294013524172457474247411977358417645294816573955183866693473842341000574018254812577635777164001751738722243237210962519422246981635109402141287829374034480358342360663827018975148734540301943707039478941714721752973491348716047866231866860230871664408147014604665319835984593537542565487942855306438755141508449187903385129252882024966911559644878095501466577596343627745713526927409074804168766420374715865915874751333878429251722571289567730511645383805535950301961687946484112449388060491675863027011695770612768084032401196686569979027048527864386461901647066500918702896083054955057505357210739864725580839653129736356822000536884365470255945633134068731343438676714082489549792516698300559287548968526638491542515185095758223920171057937838490003079790840776981315738905506465354830833568766447279672050780067705535352382376332859759329822039471352686356944521403577272697095214430544074213009506456361939879233515662459225453191179238373827426757409479602391259982925960288968473178587285855111437148095791349842403752124905473184271273476782125645848294344445285810878589087415054412456752487283518303085129891970872315367804932719484197898391112155588489449841931715687122677333490869702442975053750151935145991959043889425645636323434109037206292635981172799160777076278508584312288436504277118916306798970422991439591923801560978525313266424763865748696655796252204547692778317999035244728465213081225643252740957561527449746367982636776411953173303514997900961455204167935817538791578807951839606686791936480538957275945963058744718890994737666214492338801153607559826450570015089398138672510009137369141722213094577103042744884195502148769710329116932524271273152221640928282024072550064512323229860990353284343853837467589910674113024849314947490963430221199205301742451491718996430427001395577113366116066130292946505696768344950337110248816381404629509445376171424468554906484731889133568173254637150935021726624324947296199308650095445163952313104461593220641222477439156564596371111351353167878315244713649948760810717736287015805055956409385825502182486561694364078643831332683306357617515665371930730373259977274573155581645056486879655544903294286082459522634038137292629085887117334866772634802005159817005108468583601269846869356330702152725900321662663167113727973507601979170347342038733129260390674838164060395206121861061886640978331529179296713592476673631575475910303552416846448915338584652516819732018436705074440786472267690490480769610902054320370198270537275362622210112854375942396250897874912968780949089803473799581292685518320272597098731415903635832821319991283580628257267782563051412336707924145645670820089611748771089595717191059707860626854643537585526507272138267289107466130620859251779161469807962128957106359166478907984447358265792555049221076449563546900988620243083124002879847401463689758798476550517486807170681342339439427457333485392752311706501303819073668663573821256058101844920336060341072523607278235000616904193185391417775880625141319105908910983684809577441187870692285729036693031619358720268923277139481453906828007505642533141521351593115995916365590690161061521322244049158426792213395941420747470087866243341593434947733384630227958212323066211288223979254331125480192540755464349962960550047806689750808197634084222069569903251943910270607524574932773733539132342767634161386158072670456662845744678225183140346590946941512101389071617020235605944251486362650719532351497152042836182285338330035390705795362227004698010363221098522397849516311645635613935339144444083328835526214400689136523878429840290522200425858781899708206691238343869911740429395810021024187369887068938758607364520138260889007008780291844229798126298352884972055490967169545995287332190117108404044749587245677019161634910124962280180055407700591873951452905850514751171852502874878416001822964563605670015733256423261516115599066844711825956057449544164007338649873475025590309282078042769521708010503135018964666988238957878746536689078970279466726060299061274723439164450687595292911903814997241342891857534875700469333150871979363132231775455982399852708323913398487072487197285515301590882297747797168714760936372227358934887227699743011023904615743434444793242717101243466118436313683949764529809715667516283936547663505655897496677003320560958777915484977067265389900869718191392306143781233739898271763758904577577782908818383036484486433228753587858541255726645487868864212983845478417910596578385091574603623020544533038952560213777562781107055263331413230623414408835662603346532592707251792947928664494063965910310491274641406141557465063801453885094245749095086580149041818794650695345280012823949456130075046684942366523658107258430597889092350526803597990089782382646952717574046274927552194118204362181415553806592256808223404055443051985695547931979918915066461684957467256332315282892813056909979690115081559510734631769101386275989262770029268673316638547206979399132338727827636039661359555045494868541577666173664966177178163684043889406749386350723232777236374607355614188862576719434556947299831994784603151944065988256863606175482043934037748718990112785990506541527849995911572050311439508535480233300693216110054575679354484093473713264767649680796436059258948633837691499570473259985680528243833574773245686430353342478233900482489367447294270006021097063045230220990211591299016113957952624950090216654060410804995554897124836577745037037294836532952263352012798278993225204570759999815206706789573734479532850071120933359754336158902221904240909262687584511671345798330093910223482155619573790959503455450961358019746322898514293841668093794891770337495540049392149248314640445777147483882148502086841327203309583404782353588775041417641978576546329263345616146572412480879109771970584588214982438705179926587699722033461057926418774828160905885770127684544501873292228696601944151355824692954664959574461431340798599207368835715042378645523151240907800979689610453828673462788666710406304765719205930274526126849095881675421119948463105060945307479682371914047101368702084067739273584818945450413407006191009987788407187989606115222767580030399740923045657001925266293129342598772932868986907552107203917285649351223467933112059581326732117446701432317848576624626245377226474489960886093959709604736051041946399717443262257591804906061894301989963272536513108554641390281250425501468459286946828795747834658242153194061328067710730378555632134085786034234191230192101555606057633703302774918296361946116300098581959147047913702144558293166830698893770472077864281713704908884330228178164212046699797302462421900233511352970725575495188863426563481249354451394229109438141901256983634225356811169166822533039791500585961471249025040786069500422922618084630555870406462399754392587952125230986574083876536522780772412989517000978511931953745289355031921330448769529922225531047896743424093029019345075217513131229028174755825002123941754332437345803914510796589979192351938215048642641314470366494884177856604352349768235225838836578024307452731334340506261806880663329899916428842714228258372438636548857294263854729501577159173976563871010324133671575062723024466211734912315137958658236045931584137061831247551172902980685275834841930068639328651409295898661441759547513017312654897985443642225932327808171457543717550424204853814426662397774336496579148468238297601848142679248824250604552096376683978583769586987319456525029152762247488228687027785858506165138789631671782476458422445747348778943778058165218766764484549507961600247055657196354938474825368846758747522207240152184361145353488550504417176261540396111899189543011569846238816785287080464444385277839300436059098410430250189905093320384796994221159297833360553954356001420087766429839431470031372109856402422392999544132281147651881139708423748178772881264992119922152604319943288983150334084367403747085586745164199107944846055316238110918316766634466335222701698676380590554896275127100464053744148187486515704376066619700925648522962651019091581946657419820238306749152799678168273786185865030129329747754145131646614918385275956016233164986755124853215978099401714272199451151934704791696813859218582687080617269143764509735668852592299029244036985484604393526931346792015709757731950540926521865621577910253131912260851736570897775655012211176470640091306280689414974606252783278517364223403557781081539178287445109117359949613995359941491941238795846482630879810407244472965675636889214344229291713384406670472471533319765630073316280458931306762237619760093084929787598687694055931312408597300251065002883751358687727963316635616922824065283362709631148272945707617724244003908104183101870750243903228121681344609897745245217284415942259023053465570013939150961085674204367124287188251685946749822303682348722670445988845584074307966278579259238523700060957289504856505909284109841946345440203483192770944005320681982912431215260569839605281337186596698940664637280920007693153506203257605891847714243630860877517878863928880898718285761243458681936206479571443757177234298735702912801811851615069240905424923756024700322868514773710468107761947516862924160453013144169909268745970070076057394957638123467846745689789072183275286553190034314116778586191006448056751203163504704822293361904538171377916789715973082583492478574555026719809846566042149298645409239293454328949642605118619869450241348934928467021427931406715638673157780472500061678646414167423047582895912487510802801714503671328806290983576628010368845338909477640226068988918649725575899102445363518434781973540438542264235182617328314263187262668970755182060823576671400466838393315376352873109364986634184975319134489510021558482763643554945052979702484319608757176598627694302145789403785617344083014293096656576274985146411757113729853861329770436643766508898377233582336063513620700932708691300591016463914733988943269557530635177368510810650613152846281281402639188357166674829444832237871586704111528242796680503539717555944511273011714378092974426174188478909377494698316490698404043590511418232135905769483227813551230397811224352161320521554752605540530857357664851888857339423933787484529133842842535408003837776401481592028016557805484253617089705580078922240452538654561664403912650383928911112520956252926371381576568848210600339737160955088953374686846027305971106152892533325864366196467047825781262409028162996008429176212152327434604429840145489955097390157227359143873237911657692794165292894184288150411141903264798474034950360745633448860227723932517122672854935627973226971022009395229496651212996196965145742171636473698500001177188099547905739304631108893822029984299251896652596593092741244106392003506284614712137408574318474971944105678809476575157472270424561595263262974048723538224841974379981164662672320720421464191857258780442341133616202033740276387495858629845101560224308234335278797580241546304462797459910505297898413909449953297819882913241309970855486498310456690695242738161057880746944364752310445227239417232910203280891550457093719565928534445492802062708032898285783484824583010398101428033632041478188869135591589617915088201387888539247627103229142224305385295319377562500231892894418544736528139918975029696971267663816304989558151350848457763754368841160319492957518555051159148252367564294555981743258806036713647599420205438669361817433862742223984223435226437417210626304598116119014224150209022241023740102535035573075315921105207051090139690491977670121705331503218348505845118829416636367681017829033439625879473566847201904065863661283444929960557301418809794104804911899916087241103978366672411734312215099743825024962820792651894191913721296815982750147260022920856187468466515560618310464807216103136569596280770194401259908333598163008739598302984230152888709369966697153494006146866127359461685933011301586927130389208551528344280945629343563661001891567861746701691673944124607339588667448733237832998653076288662596660667311681819011821611795249605388135181865179454813130923952849944335989748358023870612781672516343439779780461937533646484164754281505328507980736074256853564227233629840947957157176085722329405188178979603990095132915715403777931724441854194740649321080772538841667663901951874774318153041840330062691232604185930236298678216181018936664874390992447664131076347577201218322434007380179538243329646105680697196549813118372164510645399335058162824978283365019729430334891149554785046864952157011272408251793174190951772099927792791346768313770731874331091774044874626698616549358548793777624253739354988994312407137419551658124491417916178252313976288559052161923030406023293866023344608657962004085025655034914101378144960584421240709641260774664865134757769887785158633418320019034933354687537827026531749923899081395943303136280400175865453388450778178934924566913261245929592107028953819228143953014876765836319582369990472373003557034502388062440327342992815648938357898417219946641698067059172389401293772356708302998640732721392128297121779411176084919454239513531175470044726460577137647026405127784792823802281643602273831601684516697577864434721352035445538509117123875584761931344675120371781622821211724082269085984203944844278977047059370464312597813649026595325569342623244997490997410720448177706314636363425473034508963239939625912824315857144329042148661768955498396267177710315927820955736302710620501722102564164982215504724019428472311337461101413337057520573515408584916948845179909630085803628165072630690216904385238637844033999196747685424885282257921410721291433387692105851879933632794221199318541503450227657357384150274868629957994134570026626697038338488825499047107055120264023305547773043121672000824519619350181821809528925110330910274891707525850520249305545205645483687936766217152256943350746716637752689713328608081614533113449976657733624151139953617732210105083048123628184675760222596405780429094525098509924161294586827562186752375630770955386313274738558954274941298648788969500612097374424127474781270582741959343263575857751131818220506016066171288919106279952701245948555042875606475465947317493796858516646137266240263946240841675397029086692546455776120663628908924261942744007569452756284273965343614616313354584590256663994931127302223181568316340658785867648593689455530244721460532866655900316379036137884947020295571374325797655590502899152288882426238282362688140131641362758039316688186990299846584828480964328128398349188514744451041957881169382185142314352771984282255204864770536091409379255143490345967658072362951302838492596943961478842400411007439955126563520988579414952027454256869085332015044799364821137957839490595599972437777031288701958777259608539699936559070974218032766605859466811890239836295183422313348626173840433503219198242029046058262281323260727259675010796508058242286992865089256375821201265292876200448910452472146603491035940878113229137366738682871746264865579844906492543810453617982851511581377565974407028419227713580288395016725318280447683949666423944672136360767617550076815043704215370548900666047795880724283861911337134765584963406065414080109086697829611192263448794366674343275568838830167860884295417777159524010789486358435229044271682804445211524916562361241347591864135590745808605928728770702038744869873544292392328343404960996771593953086447346591686595649584297870478236423837092690486858270805093449834885763259903324986871708817401534275763750813223583551328553639634507725537103212965371136774107367783453942768803438110370796237180861465198956086066329634922812422266932571407525176988307425168798534253997285146097091615985617350157436096885742469783654925405339486486147745490133160392376121037928140776592701592779385181190315368952188578534024747651640247744983868093681952511311631081668737907805160942234245459326842788572367896412302173649458249486236779864197099485233774844115519452530533125965012662786266428771910425725622896920233654809060812928502459895198400229461682162358460502898996905165860448092268431370915696653895679492069154330947327408136028158537290749123266568688969774466914381169948008534137025890390416324487323036328317341331457668653471226886502235686700727909334789635563678834180629791871006041552376822686115217142320733159280690648355016984962706046322925317470085620889050167128940235391275257063157874285262962976726054199355407603854030740726919690707592465522952691425324692052569291356619093888122235141803005446244864154189772767986217191940377038952196002659306516987607710196306719458345347421056871357336534371764794493105679366600276201189193383488806999808397423581069148111218707971483306502124998998158007997262697981995197063206742255159674394596284392195127089451135571818783578204780672521157077461893042892652316080250204975207192167258302498693893244022108565921153970360094260720040367008576748745869909428392997351043501901277277100975664801040346173082815534648169919274240649896337266479021835946459416902911729857618101741943845924238513037551503028701151291215981496843966056658882970508888514813875631003141884553042809014097957139715984981994839498662851409303961343927987474363637062830078350270427875382438409594225316754637489194277950114003282547170262340287631117265316270296777081739175183637033357362645031500525466179807917675432090317261117512365825729686228112877219293826406300243064129649753222345938381704356072657342492602112014411692331858887866662465919810275229133978748071777557496117913669810288289935803521815218022868193280452036758134815824752639264611718720579008176098367840969982986121886593597094131653980155899431387326919843587833466413872372807305660608572270870767707219771125594165373821558477058203601546497546612668090594516935014435496621491583783909033221770609976677408544758799610584802696722709252042334403849666869176117403291475711106514236066501975291166017644864622907296795128110895165200644842176196088486233107622543665132069965889390161535909562366656989386315514892529139959240683131050958022596430295885846790330150476336622335664378601350355914577333389743649120264549228440290769327233436238345119635099214331979164162735242664958045642444941500078430535391437321800739527003039582584369403057743225000618669074926788349610505023257918957198351749437906957692678179110132610010380329857553305474259965181092442839281195779713984774268470587369755900449019033068501051726517880474989493363010603581959556211418626382374599358264924960977813077949245163994315751306684471315561216713283717018941035387806852246628181009014279505451228598958234146592940580988367916868793418121595066886154672602261399429817579775562983905928055638949389502008012747777288706458206089772082510213748787289218080187784837958557765343526117705356237565303285956190666507210653394273793105687728386431963351986670216394170752361592156251924940155154087927265297950104003691931250803206106039825769408282661625444080738888518641319101175024850796990016844115519481592024417419761845227411863389828261500422057064596248030720737903306432085722103787859555143786246220041217226427187122357186274073118611203619372752442546381747108345139522831211215106499818350322203131155037792784227233800041946154181955710068015668466869752945442697687322304933916840903027413681881283379044577741897651576478862399687414345124578058494731400848697866004424487312793975156644134686469149182680837038370698525258379041244791931862449230221263929562329606509711039511425432514061075900723185692401492502056014642227206192088688713864838185995097710474085595981606121286255606959654686806447862252897322346192601353923954610270429005411620612454039310855978004133516124036830515680688059997213689902400778226936222913345026035406117641710057302624531137129744023269084940686816939031262246804358085790521599312904963407207310954140807390835948990576004392355668596296997754186624508480427062518116606344528192910886049192907092821318562884546768350734861365259434735910468907519077460711826846714369070495798898611196997722122045398209823921025905641007450295944055924232246226869875504108851717456085146215844540210323050409728443522170404910320628313276944687454527964031190899157731375257100797261249992907178043185606029224703083744956396120722221807338306272759630986147908577212426004496760825261113744790240973471277393259688231156887279938865567014250346247859527698613739468284018676801269559739024760058505336269268958004903789784629203272079458729197041721588524262902113969009597334011253082666512134299510496532538523171114387149247374391724129388983985755247948913316787659607235510108078685124077944485923691747325096740055723433509570540880493851948956513943971782324581085539441299127522662066568238261030943977024594533965865801240487680964489932581137285132678012007251118297832564410782699061011042731978526413639986800036020112722907748847984965736088925417346256184897411910947029902061993121708770048804260937324787006414892475050025438577466197359235931428068636424489844525952852239832870741576684652745370565542985096902829925469200583167369452177646402648704392761869944780864686768113086011321667329487637427647723668159096521671559642418089568015014948137527653685339829724700381766351442254484770543166994358659130478076790780542781292880591458923028685929298478891972507826256164783608953198818618822948075486728619057442756394017574255844606786207707748723727693204161262906866254587666951788995488041261208984118064571214950692876517042080325620018197283152003938598895782473548980530105902474654170057161047705988889170792891823960149483809948855383228234966536055393645624047028610770984337935885205121191465105533275413523578438633984652420543909715636484229305995558070646202872673758328618587541699148790315140357393349315354946486089873784374498294389235735762079707837458680157100496144890798700811358857593121842235732054256081899084104561161524480414207676560744879789207740212024880907625874106249809343204801258364090516622610712234359590015931945739993650453439100655314704942951715658084810913770707619079588022058856394084848869588692216395591509837849487940524037878742661424696448582327186880665021708405128797862653779010615238097500192398950980045689822719161085699417259722976755089688613364221649552172637533649288376173619964069536771257545202605567127424733147251489679905639715197439984623549526310608188762859867343254929008153111008507559691354143374158423445154952395410928253991285546449748476951982731831211593928176488839566249967533056815421110718548814760910355496326462391120245210560244340754893894805028216876212847436338729096264516542107954178573504072689038606587226823289594912170435552760918618137623241400751543873604823052092641845058381180205383214304353091213443919421372817576763648401303724913148995894665195080723330027079234713186333815672846161235413556326014638961231016584161702180345817246833256098992433231119665432779783502750721799578371788833865359035617637681163437547837458770325308142660970393830796737691252386147765268863134835796876042093565365298596790324928316989620578094370690767895080838864080210628806126303477081874066712179610468831262574801855137793304545985785294015281318540026772223130523283989180419749170733185444731176695784479855589269506534647916916625220704231567853371087029310641624816036768717102597933119419969671730401099855313097826475601206868922128071373711004802169048128272340820617557331832985917940090419303496712705026806174363273870124076158458302696906171568577508929875552590658419740303919291219799533574664018826656112586787374799325833979235329696152120912367916091491786141445840225802676989779042514760557434590135891059967685355827246740003479341217481709815251338769997923356603961892822690731158087208530560646511283619022783874920016909736682240402394748512263061288807083491416986891506156830781296532018015685068522801073271207652188911165942426188232808980959338255610287677479876871015854619325157907019951978732276516076834448169025317040799243866134723484681197763358665020869836730884697008602017019342714853260521515574009969876838316885042033398641970525147453493888197297931869878365349227413121931820694506876312681493992942227121414906045843396056499938689638534796436462229634870912445487834166033996715239401254422634068224999892230911635509009719274596393456552120263709889485072092020081806554683097310696409516082113805032301123066078771321191302974698334368550398736167975578069955747663995553242527222083626830268943374603140373812298253223666268639005123428929011051652581174102916991268399437238596405336985309354522802026025122863720164500631247725420520637198059380727512909489039718289426161260759749907552048689620424411305528110717430167629362564593558538454600676974224547420372721872853143703523920039127630653365289854555623926769128704084542337810859492110480901794987758257997375635445963750170201787447404035951625417061806394893084150045172771233426775708015966527466670461592832856058985032198562251214660582696186311107335653941899138979926747229851261616095313856240880576480563043707286454299433005357295807827233899465072607884455771295699384764480912233044558938788208187867806071030769241631280963782601268135595689569921327407792719651316517430090537229484821404594689019449433087975858961882335338381977530024544332121991763144593828046221280331223319121145690769546890735810370910096649562440326334893385752429783971824404815848451807490271483092645600301764090052908883062462308269616489470686747753141746722403025495198609262792078033966486823679187997553458949836859181399247722184899896845486981996520245770397245565693252849781474796886455068056255872761581466680574512290927170976189952324755288229622214114035204718564135902092716596849244535072762977000509120054678815993781791583471989415247776120510514815564678212093408605680962944160863764754352003292776004369858872741117549005952244884641384050776177018262353075979776986294940897600251585827566334001886801566642521577888503619350035969836692384278709424629033658324056427559101194984447785291425548567190863724364322206450832734268033065565553697809097357404409357013285414024973418576169876540791690441512168714763930332120228219562515149669507553340534081297766169643025632447890630323423601402140296326130347844821204141588513335228411466480186932147907307301102826293036481050802204192065888706855606708667646616314842754849772072945820442335600710072681351640360098616666855082491258238892035952606776618796653438769285497119665888894495478640390696339417730095565674759211828662510086101088709169899872240471005612526969738109642032299421436269195475866263359483959005760391000503396333729559812089890620277802320078554340785483870331644354689214636298864467683126706279777429892552057075338285693309447419660520001005497419872774818849622039330673066890374141992314677788490567627195770605783964576265235737744025894826246813951671921272936489992122142824683770135748568537469558558148084841520514262092105977920960465256152748542863044181725229400324459699992623435138200179074465105336618182771505848813519599130277268841133873096849433463122493772550949522130440175367162039520860939864982308784319623826137799023022315648947194285676803879881833224689955972564570872652067026013942123205374531237156097214659199084820656993634973608233885420232114094887771559013036635074343964840216948816300751811787033242968458671938027429513523251958431332050668297442920986048728224324959863496627457745568210876651058219763077158155218110206170475972541606632775503132964347649218652864612767990285420906857953004011888450752570389959746886177850570512690068778816254976862444431158135717157945372111830359485191281611753812664506775595052933868477763330267802353709727315940830156399109199315578043130036476686688641222830020813380632647358855613415525504052341685162471121243648710676416100592074473705290093243406063423296191363577761938361147913221427722819166876448670954973314642898556080026948086105334745926829126589096133729816957991447813999831608219846858088710618310004664134385222573658409276121518113014819708091063874787618691618413793454983879606838274143495820488501857541451606716224673943479955526652878318996351185508987101576208179525170073118384594237006015630295664607487559478952605899985510451383962096170641798736523440132581318873742207688537680191866067710708867267270881411650759508804152527831078317673296119610670077970219359256872003905645553829633038833583469548484643708332819179305549783061380896151936098855020502063241842008488611656195120419715118052331470033987916624535514914205045586866732853341172938583370199314316434603342862727558890530379861290758264009940176689194846854636020710901326687850721037910814962136188241689397787153384272860438789618366467918684709129972684092727459902180924615751778096613712813346408730594105892645225801286867949552802544437739917629256215527322136401437987570869212467530056623104314526564616626028206819623761242482323468482204280406307081486552121617548081664412869577640338696128282816736818497371305158038703959005072835531438352340513647543586542433132360505531793908077623882440686859758045564795181872753655480001964836723518270570745856824834764685716064920015190612811455547974587260788179105239043085387353470505203023622826832768941806775119375588242774377610355222404387569019411779625566352648954481654491406844324425619317637619188524673879253780709693448717704822696032535779873955750511007565342481170275575734083907172372393101194299193873136154018180964459560182040549922945496317872920986505525344305837168661552466885311001260843334937366201828893896140750117918619776581797823150944882839547990697724371665591065594697012201591358422529270372125027718737044362383536367293307369065409600438694623884695093429730634296529254125080185138610465409612071829812917564168401527629349003342660099761517921875786191001251603724072802911959324502945230866748674971947576615525333891729488847331005514157834293340808017072739856112268675296272053030497756872191072450130981262411987343972621346166143894980644802456439159265256664119139951404677854303968268953581494946554210556640183375159425899994233989393614364397310984311112649601147492611336646530840604140139261658425251152424265174636375116905142241153510583728482601719931792963237534989754117219886768585080852611360038704137645557558114040672925591744271488697490139808157861898560967155368952388531435952884954408137318817605683153202272692738461680604478361005151567742268977200036343366443032262080238584312151555979343265288388239842514975580936839557671335879552624224198970938369180992140664531550548307073432817280834982471105922265626018156284467936959085457886718598505688685046708042952967517366271234547584009780693203524041240409581634699856661266811175849821433441299218485615884680704133297351713913347038953413554040804532545204857752015965523869820155042986810761343529099312258266383677281475404068481722529165716735552945248554481266669916718500775137305651386212793009343021483092421046986409168151536430226178772606895344422302431315015864043389175980835478004759933901102165829090705148891186552295610811228626131002503547782114316265408138159176892476651166771856850864452363764207404615148143296174941125723927570645966803913857606926295256705362890975652442477941920534441941009502875508632683307128363976608161590997680888265572711025153817819711004170515535531398752268357988592217657348066873231411917329002191026830579887377671403231387354774371689917529528805137084744219440851434304204294248687002467030126164324345500118367413540855432651417220599144681751353452853429602040274241586739180221662831036267969565873931744266367749301310677968812663393293600166969577666192748071363400685433671587220128583907982757879413160562587109526249909039076440384572649603067370278901463585861484074406929924893429660716351164313908197479275736531678962668532471562716498272260971240937875000827789987455251595935620332513129281704525288795882823148710290575624091666430816938347370046378715395141562971304001469893269619613035067449301883582647137397432935545206981369319454027443199174272804727497892200076133788185180032265084385176488835949223036341673294630202485555702989373499684385511861944746305819659200204994901981509144944547008847044086825536016684973372130101464200501774761184459769116030629833755131904355639271767776537831976017305443761513169167847008472381653305499118215432478143857168406900879302982513637019428285579243990181653995260519955046516387071400773786179577246739658609435702868382022752716051245296103737341797269438505388589451284764121332903049647469087696637440055699230439593297946772571550582506781092899181105728131407794564101125778833961253998006325943008608197511640917242989079274493649130093203432579737263720109279923599627849356379383918763047803900789117496063168416484119747721923520015106929515688800961099324140171139093371119105876241650105475166693791755142487009302078186257108242131594964092550985701352953794358760366263931674287155645930062607716530430559323589721060786696227911314846814869306143731595060959377515538383689032007343650531750836478686368077805589860938887950365221664038692141486605769783892803505282355472038860082269915577684850854991613532473725037545542520930410182696718074781569515300709514044937448191860593953262029906343621236902057581204918512598275983723136529483544856177846730718215918467714656047659932012214756673977483453004903717587262521530225865295606763457600315764878455921819022202838378761270324320506377727782058520739469020086552212840300248423109473797666138820235678137908321477271705217132000175326203080700553699993150319849036052441767582647425545756656222373751446887007461076870439239276859390479509384056228743373313639567413298386990324567587491830104776729984434525679452588891635726453542769478353675420669985639429135090832736181001785111565544358076838961411756937309164282757216021625822777856890959626542622924237089731551904875362845617349573882108182413240717222401031783768957678393386512071848492782028983322121579042826343521289514197275009989072534843329305539394188089732170501507298950791604201333128092865220972689056129703857766543742224171270007267415939521898252606106562097474951539509839199073526308699808120690313011562315922783391278031924888901967839212792621321163227560901637967838274309161069342716811741731284841640008941573742069997871627038152584061599631767728782362254424144422364818808787842563617384622965000766306589650968460578629452632288631953356022543241331907087225893693088452359786598261074624077869675047410920468457739009608622572057361144917030356871829411120089455193443516873017032991897463315437259048457509939849242281435070080084959482172673330749721426195618201206992129660264569464127188329440708473467055194604962167443232326460524479398451955255331925833958931676085970610978645740494438825787967640975264292587429046770560580033802660454845000570656868025113225168267915997676020651559891338644602288180558727478785943775767060865151150006785915119290272264151596662790523944341004406562314084661400899535230278809443302453477058564963643039642659950254556347996297364695651732262722733965049312471265443703548022738456529835194106264228300609549171536036996378578555432649183537260983957491918200060743022632031256659713199251110926350299763540710246408013994409588796022886077653491687767552752238414995297718210377721920617361950994570248472042394398068671770453979189302040079447928978573181438051824916833787484569404268732191411207534256649019360012437343329479065942092117342694963841817279004011404780478376719650951551319366747353017037721287711804810872932245181149657778291964825190117068846078299665380645509405625556559146144815963870490916430641244624993682986013666450088522394538255227873754371074333488555037407866205302053092594968563345163284532346837541610268047231594791598839144972441737911609555933700020741574536757639765097262572804537566765909520612103686322911072679381341358541739686324781522633622316804751528655048497782575953995345614371320755853034517137439365957125701336602772872014885065848865552454075558419382601458604136786308066384124461476505819015510512212480549731584563296109213664353030347782601918118801776951486245850308861042774542139451919566456790947973181058766870829385749941252996113712185049627767236842826701273940460968059619343519984366123934379077763571037795933384490629819602550140766557347478706276297182124813985445413587026360060940911468081953649499594549549853441736068776580713408779772868300112945276367431834216042580394302191574188573438178108947425066730473544180676048478313974767182720528206659337059236840933825530809689208456101679123271385558926434221156446423705826453684937428218348494297273102620567119582322099033803655302516665588964317205362246600619691315524929037478503991151193355229461106480795743234615554568916110849740340345817492248429760109426977064152813814500626595792960250872135543980325254845078293778217172500054600877480005624743306905702632531203194729413030762707985340823278303639792044412918230496535312998261886170959296998979597647843376562436047141183831735509082045850322807663804771660164197391702863637596803525379598647653189040168930417113528985092153092535626920942130166865582288248488840630661854757424661174855164061055684189452925121770104831168501437331625056373910872329805582980312251673300420343425293088888994643357396768310798620558819467111187107834840398437250073757269427135465882142643907427346687545695825549327345281700915039532570169472126841649875548050231171839125179250222396384114222614871232698049871704121606715954128381590089602804866290871246412899680655449302481381750474672031421273250790353832824592283749194116400951853748944637701876959046298741927290378848151005416360718523840787016814040994232712327490734783925762908389437690459565540308667212704651114477745487256269647394280979623716616536118275569717688532167892018448671769957480815150295684121530481796359973039011553965966041624584775660145298223493764197624071877780321429280142930647260736624917827983248519651205147355391337679018445409706788213249900878975121122042795688701487200192398815707584441029957323297377766133986593497595601172615132179954454820589355831792399516956596966442162597090707858304472467386830621323330992311487500560255215406462225956299001375852659971645638065919704648286048288882823225805519934957825222183906930760968529050720222720474292149787344545173940762763449763857016228038759681642023377749474206104231925373407516971355308309946727112855713000345412022170384390026863019810304683345544132429872817308588486015644649355192005726162170940246344082918701373733252869966820889532610551987101016011782729777688796146940205678589293573781551279549004286408709137976348552782258923325414795348247587555691768484167550051357473784387317324097671028664087133545143535839819843186697426488155317381032462082863306154394336403018209154004976289996433797058832786721091223102521420633894285408758341258027155224297252478157836389554693006881478282847653325147993251519156770077453437631430481782898587610567958496533168337570958761140935472496912204135962793187791027203789454869871692780520041354909203567999087994463927173963241483162470295956125834468925988072593103245898576980871167980055062939601388917450882088988296192181234817644492831610949203806257547330196999653674683305141210946538702668332191884101075040204986917327535660045524492813278710678229582998802435810201386176070496279712326176021666115905689823707618619134123438976589166433151019749722394585926766442272776520343324622263987377575705660514528341031677022917894880951764527461485020244206734137145199775528796907564304504319875994812651876711923538745908247077288390352962465072581269030011650446810732500032979341399944381505629336299181277650126121429259867406954355704438391749876828141032085014677513758705608039037165369579204489874152004101042276983878334391458357542507576199357895828224977378280559135230119109886040896092217301669180137855236269393073836281419404439877588926330126367301222506262471628819897224302372625302153741466637078324709082743984707466087741405589261322483309515963254745164699121497518016039588709799035395548329173233594007979013638601264412051054900352075377101028378258918996785927358659309226638402995640784119601648710427695091678168388049121147430614019569539947273157581567472308762893107611916956826165203095082365133449274721655389266197376779793285215477247772575812257846455575623499782088884901200139910316654568343127585573536851672816874085716194408846900377603645925765873846983813024273373017841662266759560941598942793707268896414406187709265359812567407093546087743157048059298302350937396023400985584497543308511745529914472298183861867022036021362503147263393133237083346164279220102082728271619951988161828789533776043194763770560640986922419736818319793765419235980560949332673769538719839951603765502069293376291228701648734343695504939975359326539561823362400193687854735642779186141936083768372263968790837925278937973830646073344497725910066679687633778246615979239644974016984803939153051154500204818475317880813343157338855139439153358367663548409840526554500425387124522713421658918723616409773172816168373460161743532875936401506082052059814445813567069600190112607707706011193301407809764015201864528798394159815682610696317307110003654125121016859253378202688058059782504467644241718759452368550972589614446694607195463321266961354176014236547238918760659058331530080844088872108282698947060200607728450597664276959573893478054695567761827425570000307260410108596846143782592754507773156771030907896272977327146596531259403709294157701944959827806895261143855757387686969691585605834569083488423720721421762129886182926165318774540104800523197371227790527984942861889741490120415885845044924539417444618275912161055119598118796477419687233003099586450634937360586180515765879048288897808971307008830259610492200675515014236311364570869660986623834588303447341116882774443322543515112884412110950124502184686251931852192748204292984156643604188549023715723419679189946612855834490997380292123710524481959039452496667359928170825048968007609909887358541260713603321350659407706566512749962605475273223277435756452208718383854456532360356269633285146505123991668063972606843215216183968495854772584921309175829778505021893032079773437766188703698085263243475556964701424769999434162463689574273961975065255009151214863151578794097612164607654878703463927544214889509629195948432035114754247970261956808931386510318938221357655986312827819027362012629471056482928872717010800976188058346826487600542436279386248390250406629407555591981716423191820379382297841790347286559702083392014405925478398943038901231786172533887206660843375065741929791079795963391914525198032536105629065232164183697534117574245135496111997745848767186754948348193125775782401839092849184269138623598633139267365030446006358146164749941266208181199226698907986891798680553169684267415916478154271929838958035795061198122418975105225603891847742901201812008078448124815834464576856065439305211474601276387399922036855852239534953993763169276746050236496480559811955320248511803164787412122201684950732334334341871754543488471607641122871911531886494391849575618304718307821061969717419641160594735562907752533930302234871728070736148665961064736625060486613036925130707952147382151136661113867420376693325442489343662318099740736414160185301028948236290090333521284074911249401260311105253913353381244595648359588230107794735399422246962155308418774346048004144807940980700169188866474269572894546523013408381149055557865822978532134901863845335117777607282003607084135623726613983613743573130175530109634470028040159132841732068226454550115928245595530098136346111721163436347961076607494478082899983176482533066612765970884006107523628713532332393239819555592659196985111686631816601905089914252427622577269864854811176160801318558141900420101904127847774583827060163166875985823736393243213150090703585400713211776761222724414711815554610823899273062145534274913545629871004849967891001087563154577490237115708606111335232341902260387366042186821784265009060811724782969709698639249241779923794659262635022052515553760192887654767616299643693631196943475835997805250111777931652155359686493901680549476001222078335800439166636218936627065661556016062708073211940426428502875125269161882870728816357719151257824147537015545079663498975964365739207783973461802910543327554859639995935396906415164888610231546515371318313663107140686533223563731851476085342894500695495207272337027297533423188590084762114449535726282352411257171651351868847188068253524817312379786124122068529721771372296210251945275057118399166759015633321479310759535625560528031796096846999899015881813938346933499853812323773423188561818363620864162367808185427702883195617125345570055985389696956049573358004641952970634823855479355473108262192120760288277283029201979484812972903202332677536980884472962703180095165209759019857928396761011992990841138591042456062128856242716174367618583775347468600207496208264116508562548390495785330878821356386874643023177914609121338110860843224060556893827903082231125880973843297108690793200219362480119271380341268123012594424109310695134751824089396506460863028089009261334270592537096026651678924413019327734853752423133830518938626110131230720158323184573545441103435142405897559777064180765285428146138680665829138166625689975166892472583821600923931602336322501569550248279479985728539080406174168262444245685063528358662421620612855622465471212478030472368258837364489993238394732762517438523178958728158503349275455380030906197588967686312160637772711562300203787454674878502266687942861611181725271181862639529332776700314798977623844003359560931034760736887264365943917483194545852871143008547280871279610512060330889808300216668283432407190806116846332504542650010661868096143239568234548878369271642262860756074174947248818766319663667642340007628471486282859655686442730510975538092832558331713780078358561785178326511103088679515066443079250241083099346774208012104912899800233207127626350039628248645257411424283363089395857599623374076923736678599000965525873796651979395593850982181559245809147435785481493938705011991089354850738547910835354894967467520755117005143413271287078100394065849886613636719107622492162319766792292676024931643083667385499804776866776306012664132641228499824329241065262244069150764679625402282759457867276988609053515989413271858474666217290347000640819251347597897527257729908985852367080858799759057868074964824457481101473196863081739312687910591289765896058410948256648708961465302144506064502810830383385112096135513184021992007576389429349024279279353439779467386550673807775435083869330981215125661015390312037578597745132847552610579069755395015498176709619648281596008219226608353780190275499025168631512761296943504253432915354745397392510640605978733524460317510792472908419761455936662904607165742751673283285683544332934692302013988275649065079380659416866494068104793631532342837196615680853968110281047263087465718924241827713417650301456935762083087557446044614955049020164080894043844120773447984090903561936027815343658973811082446614578126349908173411381702680819408591926271906225016373287240001339160964177961339246557441324339725445651362329348743189641705263283934161370891656574063401718866063043699048301341616304448646989882982990428675142585782601347911984942774828526528325556241738246458004639241626038341689584313148760872629155822106362307048190783375047586880151276957156847759779971998747644944704492052946272912054072682582445852704518941933526057642815188714225659996443593320673358514155487554654171070925874420587716155727175406089079961450299604081322729113335408623207337827409764351523872354620738434169090843457753950809590217472133406065201959420649847206353399202622085444069768475180527980118581167429642538016279254933295763715218453018195727151098479004238052353628700013977581694277978383835337865216116414161826234493167955208290911494576891607638937547574168780996675297883472890865554939953097692213125428536352949054569592721537500041412947358962215596814766158428247714186587689778339826516648524197689451349963681421332273573659070343471602670620172745934373677784574726430390288302640017421154278096603677520983955085169892421632385790573997146140962492477105403892031114868543464501067945525110641868321709560622861928956630298280607997936667591532508581908916339153776671716193746046487819741957785625266773036082950145529830665071291934624802729628713905441134079079988387019798070551683249742949082047134267554635246847179918333200305931452347638270568086170309816653317942446403991025834935137973703841403977878655716742324456405766111441643427329178459107301307746109765727876148859642981723360615172690891488706904136897245431361329151885497645111086285861240237462812759169473157785652125990566930539849084074435340827606324812555966067235490732156497972573152717582621474365029481045316027036998564639907495808548825586807088445945729476401251950138317321640595590214483329596182469322645698651734226423976202746597097700671358544708702955413869355904648110285651316794196234942472490446855319899517865428387400505695239514809162684301820382890706161777551870400053851332851117099309599125306007109106090956313753108306095158915836616892194389563239980223952135408610121228569724436252225244561654019320673304662613825500697848828318127478090363883079301455171580304639462876460656787842399974651672620715913883156833531229611418736975488562682996163428127630743263823807891586278700624394311989754283220458395166982443881558553744153174177832271089410555369291448240074144282863714616692179871281116485318871546519800115302567575020053714232292875752947613334946162713615838553946534788756769644783171780489418393781995682541296762855780724571056167781218428638944917169666829024441818401791232486810881985377502209318110017578710860812323897710424588936984379880235363853576071782645348574874227911056367093857139750918931814642443157091052046992599666459321876760692614840152077806929397812669870382787105598744473498950379575656734574960389978317144350372630632433760850613011756611550223180133340352690708553088119472914678864101658556285167222555069303812283483646853647248874543397953651999131513707825578792839399933432734553288808781618083025278874888818246372048480898158660626442455468030928469148410705559023620590976496573720876795192192800883765309746294931116408639375016416938424176672001058335710227606274484431029510661200662676121333162569936227117336976394079919297036820607609204001522674274118557493873148513754327035495007007105708059444618954634700491302546412375624552687819849963123481187468428390413042750299846018041969851314697703156280946125923107832499567618149022004103573026405787541055786914181954730801221215064519977931133616393144279033852359328534200514449601295024740358732544195861300546744229846971172862008642155628192125074257552061557605305691086516384331434077565166087558281073197703312195222438069578071824235459480568445535159127702085460635016179247781089882891897204052680183586651065559240944983798079829663991142638650799593188381393859587407164998234973801245623248532415326518918991464826399300777935374520422284376559233566997155540315087772175608205771808681256681169693205449168051306798423729724030141586489411881498216743286215090597919389622389352535177646475576560370078126015029083958798612227708210380540050053519292274162572408745883544775459748201579550985099399591311842583369023699724012073083647893369937371624988383535525307831721898725369409168577142406371159227460672018484891030311072152763326627953377858172548516097167647840910177808349293918227422206518490608019801182109072257585661005922058973712951473528200893514386369466728367946448020149295326483543046550363541993302499762922677047416432816106621586567869378772882618480376389116498120401176776086464197859130031052045018350316510803955869027302374551299842133349508530894088300926706927161431823135240090622999269697021680438472665948428135428527155359791007882520647823960743761889538061446330390575018083340373030993168648618893996306373073106226360878992612414811796985770060249541114247030744230225051018252426730494194529369198131136278312744348488382448049490158931791039641141081818540907843992919635916163674515338420547354273168421609576067758558830385669069903569566063789081413738876044666497500962937625825499360437692932149137282189998093187332664754132394720113562671616806719397431544599641605558071217596221533815313308112235855012542563487999838705404052447528054667282012547570386163895214830963397189115585247265506882480521940478679511808220694509691909798044024680477035530789764035586161247046358326122714331174955005758759173059857628656936313494024319280944463302888549832745943831902869645568254004501879909591641645511142410369287662464616982303834925859029922816990952615410802514149164347928611638027031384826229502286669807592617692786897689925207895355724724401464307388472175489856485734677877926910130144581283437601633095790957254951023931538384036973451119937548723052715249884944225526150567448861743329885419008901375961688770922545956430824380926411741002728353209511762883250339140786003922116856746011652708285580110597220370270118473169451274052971631943893393529318912827811930635276470030872267498380835657623583981072792654469982975989110107014193930509652116599394133267454900276297987124209002986897719234176866697291208704936734487665070445551681940998048653413523029112043116031757368060266232629728914350445365467414984421879398226079636686888609561906089740930318417662393042116977211997857849451730705258812853396126251032351912349215249162304281255315680060301094479915224609584525356464712503753127255231748871804088673908530480296086114171086981471147955784289054809121599970054682775971644708250893355730733911710571495936841979608090461307492078960776557948851105645758692946197054761132351559929787725901570803661954948491234307076184537278315652930758627116512498395334648001933843151906510997895977682464332928970120320337125334362856641219135746625911868646463175702014168718513462992392880992340270228623222189873291875272278697858899708718236486226471169052585751058138042254835477155609400435365026950967531956943378491821047194697684129455202324190057810740766146835849104388932862254612229825889978850780482122605296190318490361624171105973409146815188171805077050597572611047226863766088187124756256620974415049718551697684660477358698352279526194925834379659607339880238862717205576509107255804727525683399472395483467017062180851169847280671436171747017832238523266312037719028386446721056749320401637175350077640242709394957082633188244140285393185525975013628235859980845840746864588650446080205288488734487480466700621938150793157613699422972227875839960914941168918654344246024555112542750565386228211964506907893359316166434968286678331364061054924138671871535803632021576069402436976702541761437466642232758663168117420775418597848304189360316756944593245307723633197650234608749194895973880356667053011960129143095900783551872021752365916829213227018088857418713305842808311727097979409712394657368805230615265981227929863985062511044591117616026220378650207798540182914674076100651087375189850999472782883417628927626399751784465003811758876168732739263088958934340646503065321027404038600697247997329219584443090499072564959726947660110306344919959381518040973930738141760884730629955189787214592097962319670313048973913948587693210345140044239559635402910807219402679404554480230407418527615240927561650046610152829009712451193554136085588544273199308487145298095183873949374452588239059517023986744909078164042197054897525742939397242245372015775730447169414972056041220813068842807202539755567173553034994362300577458680647433533817871574261180024531108015247867596153934475557771219308700267449983672432716080588632388770605173548297866744557654898955606540337925819134185768676173169876775272529139387401529326722760843434798300736120546826742997355341491860196860795054969154326995215511707662660894039680557739591440455652991222641728358598963217689627149941191407028779122139822781530618884004251514175999100306695752795318432506338505769885514100293644730909682040650518067721334105850516828770535874235892499703785474921585630069860944621543832207119755081286621496710068334460496879670675543897130168563349286556122275092545553008171548577104655557306603933323536186654514395261273855037152364347644961341923430010205186807254504417266646753530583523864546237664144562585972898960962343793301772976340485020215003938553950951529490789252216263429651039116839775620968415434854580458798611408030437573670952868852814660784601809252347289903075624095383792160518790651157621451838674008427517618276118304499058057635102352946049262167802829623664196935401296993144842702150443559113687093806263385744378229904682701518342370767591842315658433035269870557410987064966910412598912413994840544317179506671048060707798254867679873174872209378848203546789145620406348426250151668263144988904724483668357110349358500655072453964626433722731394258617338907708123672090484758657118654823790494294847107688596216501681170865258885143652047325397770364994997802866856675870352518971430532954524195825859333123897715569299573979640097434061697462908111282322331924033021632570024635897228632212732091979847980336488429429689896479068287622157564830621276197425534103216469073516375106073685664413799025706233193363809685230529163385393541764936978044136587319684933611469203626765572576254096631114338787407451586561715155204465627715878405474370934889621327870281850676343330995876589024948960561314110033898059080754353503594944245642165200980276703067128966514554244918398251289008890689847103365870371573944555901272803165901528420792028643672016521315185797895992869989256318856884086659019163366945727099336236864101312134982934014646293013364251271870907991574804393606296354465898504036039211861246632451017375464122059466089856697710299538877671651070253537584062398729361889472686621804355590874574801022609084491875496796612314993095142532854023755869418558146369019998567621220610292661133165843965697467337713591482868383988761828399899096192127742980707090479120806333495482324841965893046914982688604245521908741906459421213596258528684960392906173644122261912461987322435057593221313054256195528781306142802077972755671354582473153654320310459116168520924341979502904459483555420187448465324129964761472021818917732662636423197680340413541929668514352760682318718519257722633081960492639153655058749465942787944112215496533327375249640878745873862667789518962930871320414337620434550237805356405181322361975832179906332729152730817289596354093743852207069316357213849597161804070269231903806170777364781016065066468306165912660754442340143098197712531363101146464378757256191499226322292336253493551367631175567621740420637959362997761786494086577928494195952559108392299682990062902197080062738068868370708470017937564340177485073175644020815120629546214789664246668300481168192472561748304354889262490490967475585707584963904981882287742337430466271000734834891762229210056965054440084079233718797696069744698313206988864475081416895607849785411916675731894598303511280280648317852810697933682599945058784465258755847079362286768798110370751473910510268626419798514901562336340990495329538661236218785873627492709456287667694878463406306551040928438421642022738933450843570036490445779084294723611159026076199237012587229099094079172817588942549211009973909131105183092473601304507432444024960584821979416175575804134758098135882178615164124239743276221870702006762770046641646402301150540961669376485888732908024806616777223073405059029886804680639837924412519630856716421941593779662954250514723654667619727573602479857192789743706771486592614363856316956869122017271581296725097256807770415927175757664143613781742287608276779628665506613552062105342013803612927190682558134190005772099610021714951315183235561568799769660196375165104501507576614023467335288415035251702929040173359809542394899564421251526055277328207328882816133267521065890694136358129260649551326269958925973525790724701782158441594297422641430925099140076989398164150756543657749329589894684549112374939164268734667188787315929165141494345387919229383556069604897705820870362042049753979325211009101212523966183288689385125098943649162027387888361664500138296952441729328151757981640005300279677287417785572332517242808529221559178557695327936958448525495400630325581508828458866614044619865240010680389880071806742715696529446613454248113344714067530118554634407541050888622905710605068637611427884890309154146246182625807421075093268701065835836887076632900113107926778754560508823069732132196693274817656455343567858310092642043245457371030931090440595509166594563813419504941783726406773539278519023583555286433295358358194463136301463400010146088164908437892697689919964424094844164144392673276095331994645820608365747423370005981723049313406702635161761262671517671549974881009077656188554572839195753357313470960862932524520109125209809760367797052852301299755414751045839765679356658390394087220246355102622154899711704812998167763738036056602000099650557452173765478113942210046509290473667630593567518121895732996171379359733912214384650356284050659038975706937797920021650422234882418039474506025405921780459860900844263905676831351841610489724825112958727925818464247238640378762418394439807052702619091702657742580774433091709080545372517079654853809467496286722894727060770867696374006015435915631781653144579709511509193592317651305414070509687500371272764818716394973970311074528280098486593606194017812537564938213990011883887208263163809949581817000422394793216181700964505684228192159119639365014867426917054158026806540465836961529625506006731534555176733973221902753179861818652418743392682085716364703178619367543187106688644068860122817414058777157707359331126990838330861510123243234400202782746670146161466155012044787890176744203600849476484940343223820532936882142620397824922478283483154537395060097803514816997226699614801101308039421291497952780744549379685767225728344684910408598017080563243031478002456712202151252340711052255366746524730247057022576179165149017285463427135607989917460465297143794465303281702841877914948797122107291419617971729864028210810510201642955293506811778819432447056436551667992919393057748835770083788121208881326620767592095805190113039479547162797150287844023264926771738094886235791056606879769727014703023440963163131700222545849660121999976196625812649705561765899929994413670387942393500559555699274246499203321809265059887230936743573512066605152915581839159315583722637840147487469548932721159849025735607000279142394106497683208177924626639941622381721896186259167857010752679453306114976997749817943825757151680485792343715584089172887922244571929764101234992521185892088431980673454559137426343988710470376759549664907965125092306433307718304580175635342426345641964674201226962925481322272317615652993884084507159080316751472420039751006148165864875799221546326574540032302015245842819739861358229195087761868331682697112127269850670460861433470144567460200284752645740002002585087027209431975941469464235241288706825926932537697947647297002597949639908518189230414705086657448989695878026647857017180823058941065297083867959637556465198445193671929420958302096942764100500705634733561045351488823221693199691196104870822558286150305594913389880304930567145940637587163202719463282263172913868218348725148699894453966929365019293686666600360523855350121767535548746925089884764695653801696548045498289891743258379169722463055729108159606495788270588882170408973328621667094340839955296587678077084135509052313928888402472863697241831092246668859934268756742822030085868683661883246575916300501588527450550742758393069168232044068108304935400005839465412430843046884343266326487695009846104848963607531502160483246230296592210146902939959493306166183692106508055239195308007612254787679053803056325155511474545652964418092878039656059815971463201358266237153861738735300665335516608396578997273167084062115026810268630777447660660246184619349404019609710855716682449287523448669374349775476288341080209395181907203974471985468502429600666150227916340385201049661797716466908956625827126249811551770776258965632962971956843557276114531104080890090012457928014251476862559683305026800074157150510274092518497730195129595748408842021256444345316441148569261019856065537059066738816738112299446723981867204360559070612138521990243333201544969848333200085494609833556508213820793919985024355164073677170213857851374427700816828402785980825854006738253002679154746694576356148208622663989372186290230657149655135763963912588029809843004821216844582207845718035028316165507659347865642190513102311804570853237271936724605781389967952732092392074586132128207693692653553630764587600437998645329906049060194088185828128926339423101557478363276196729775447324709282310342922880322611336904310982152657318426170554423692629504795590669225357587737000815790316238988457609131048750099505152884294443195301631776949200877480635472178890968259960598312923051810391811794735019147415291712978769154151150823318909682632418968771983194888063112181357073068385606954819744067732328687097676055887987212302257871306717830585690716598530723528474602377175375691116630537446305332445306580164180771380312583938863700726029003057779549244246566456855956143192401835491211738532873556584947583153623107584456953429314750243584488603600517446544210427080749695001115326936108769662945007644504132741387465898303763306946049334996715467164353404309248488430957212562455027797123360440003228949437447025611838741621068427880874539012791233742965735823688305348032303378806006383980527698772935270502079699616216867308477533641282510298781628677657425218709414035111857331892301173380089701777875018728809722961916798909977055739296737538031616215146574510586283404684127475293930856143366762919653594597107753613653718768123980956597677128801053742741546658289821174940521380662939616916899818526158804167402683796811626482901256498887876660248202197560117507642094096241573824716596845099875490517851073058174488956403722306202831344411237677699241837967673063866990630000459972108802873396158844443724424803930189741112125856004391048687367678468751726014651034594393942088294247217219749787367998625017251680514542533486561156811775807628778144481188500834996578806316193902526084600848997518141212211429040236326483259177254327912289940973897966756279355872973789634844538492582364390477823669155737120842372395557016248303104059068576938711579671889345051174440099924149876238714698435205900051598224340028780676081868575832015435986523311218681089613054604009252844674670161463821757034738014415284880320852602367602452938892679829998106869087459457367799198172561389145075147269371066443114844396023142873075891764835140970834024383433831054544988151079861760598528292375208237953857997693807862855005149210503482146648540505040529819194579821100789633380735607955506562102062680803926005717646692163001222932487005942413530515938751498599517865521041387023072222907114206336469838462342613016316672065516599416597682691684001311066956018011073183774589284642599153263162649894202180411289353637123154884244491938820926038769250536523815223054055006663067762552466155782394453903799211976456856507297946004936918558467330775292337758215345882460574884023978025852702527457384407349925762966506492170516656315981420163004950798000905596388281272322657261981749343505323192717943927504361220743014579990706217447682562861723644711618682817514171714126957745412469673496037243764630897583592362417631971616599062785569451703034045265416688344860836095574216369321504025395863815505447230757607936911705788727657953113700479386025553991908535944135545503731229996287002754714981592616162268310824208599924087384444741801400847007274907385759794075015298739757248586879660100484438497139563685974453010961652228272209477998705713268965829110054823938666258071973409108615296261736019480249460806126299341317921619160960167883378688103620080061392379554080831931737088286285003943321341624981936432301003617382364865392978241729706045964509386300950828691787361930528299468203855002721128970352819458462195645045077096716551055975039691845738655177482452014728445599748305363960127791918378344359443944637946000947434848943761856424550071476521452841646144569609727054372361625284280833034470322231192473619004131853405203676066798755344946389995056112361157509557910967785099886103207855882902856391220891529015247683899786024295959878099592790159484076729052685481738796167885654896912463734267660571208535018505173052140417025409961632517958360075518235661843495554575211167376506721709100236592371707943822678194035945856127833824732920718322367431894345848087711717556441547185269822193279085807126941486504049707746145077338008645841129361224958261589466247610377249917606453770690704057497766364287648810549168902622862071315664769702192421126454323773975762714643812182791550832664468392406298488060814725476192541710101501649514446764092088669877928324890685358825550680760846297606821000870129113182796740828127101904182280687172251753538589857549433294246934906196968896078147554131197242431597019477924398465370927359409565174134471495421033554983163373830839026885813913207484258829238581216950068342122780154342457873288497396178994799292451500499299417433722548402052823834006733905671689347061121999625174040199452715988082489786370053193922421990289760801473787263675015647631309195187319016148462699492909640967271584204771420694201208829909785259464811526371883262856410121774297951131295452757433162633507338995281876712711372614987455509843657278978658526548894663750512535724521118616401753877987306355357622240246991672165304789459999675099854930161942536581083921313932430592076892841357096494280028589983297926819302251353014247877980683272674958089931289895750901654911944268824824719007576648918768961878156158305453059942408987446665750922958330846882298744409215969933752698523945447418321364169172112722217843186855279900380415977099451419067508417069051609633677286048200722633079775321160537326205638049509427234099962479544842932099643426690894568389795221098380426177255728246049144869643009400710663397473052159089964166745308559468819223330483357191417175753613289304913284944888892418748704017565514814406195505229441151952198783860610612429963800122624655008486891966011983827743113274541086152019019182881513251023708458883048023064220131306474774676518865225755532479996375599559550313054971465551173848796292391894638139363187569722609708303981412519862490998619061906221298411688317822066017193937171415833236036184322098215141299955020719429295825051332726760376566772897334982202677858855632771986727955858590848814345966029929708978510442623245339935138063368210116962298707800756962091235604975313512322780627640757490273842331658932742811105749843763226754310209063787094259863949782710261050226263986430147700279477276740070446362388342159602938493112863284435721558678396053786285597421693257707485826053961504634216968661572620523843959676068499834042867492168945380150845112837213946722059748131331639196290440345165708776334225200346790668661369075237144551850755476149289164295512818958458702421765846248450725736615508545140766145789468941836101312713270027511996063644157155140064121262837201935280820718028936513448025495661284359966601115127983570971488461605289724821443236441118712602981487205546092432573007057824491370046178270390935953174493774767489020889933621663407514929945520954684002809846174925322965245830628368399660908842809266530067500399811234608912946406473077635716727727246675046024031031795740366274433333685498754251881170590961732024909186675888304708335877325283372946025647966312271239310226563422319643356408269647175450865396608284703030311745859641891290695361682934190166828631042743737417141619635007707362619421555180671303845855590136698945688279782256280931549004060567036715119404321807432601925764086486375428305362228580244827196658255524383968484072271087334274496890016741084744451235491978927080697990911342110044437639435603704974471012821001112598192665932632371234882655544093281503923478926288639330112863233461884259638704471848684505997935775498377778679244838057702578749369592304394147763690161438578825693328117826387192571377868868478946188408051490467588285528273768974036407883311154294966580603493267292428724238095702153413601021627733161686312044486392883623587138810759480493744317538554941601237674571652973827077219377598042548141400254982063385663903125445546007594658596169461891764240540455278365848091301281894370984893172696537116131584318153576067797689822593980563881850880447947460144940041519937645742398565231806562297914164667886022021651185820838381960134839033736023854556615323880626252781485201785071111856033797442878620014912979140713060736081189263245558854259310819936990001448795369211083724920837852059311124002288489440613473749445976602658001981387040575783328655686529581888489935126545506556994504768308420803887929550507543205621436424696183198193352483386089636733528867620334925755876121639908071187146430101746346253602976420625740759726831476880087787445843823725022469625116569969563623541501609816806408735045081329599412637775928262493599183862198287678367304069736493474602891870275914445315543579286180041395936642533744897262329231138934725589072379287095384296106886352033381910224155408556789458281078853172420273403153577538541971030071598990818561525146425161305510121236867655953295940566997287974880872913716353304978719340096963733741477265923698271558622466640559066310976766170217264515314858703815213468474288202552765893941982346060781116851828723980178035968958807000779538462423687936397597681519707761738839855503704063185523973932635989408112937657770858287443693263458123898100031824131630137290259333326291151271892313888291568937172520863702492669168608986261918146833169968691095103577174580388544574581591564409129772345377697204512334227708933244045022464766105268412912182256601413442395401436550260023838283598533793720933168066717309338773981586193051303755899842066142376102817484881217352246602849237352108767360618016402414859719676843842517121262955451961962275361242925842415124583066007235390351234731915803728587151765171359908053686338242903321703465081741747680449819368308848775177154902780220297094455778801278556222113187967680622543653650649348218644028573586176186139953316669319540668551266439653107568368789306338703541609290828768591682605890166461545301386701668683441704300452313483447951880044437913030995717589207617682725020363489150920480004838074395551799928083491887009696341945562049005878356571516248649144458757824691272508396923986643903500375336991618750120057444893366852793238874160861579069861359759139510503670874091472277405551211040031374066421212044607783414664798503690752189002630858850598463087011050931856924578543554878856773217269788517935147286477705208054046667407684936421972123977072440313601350988145457851636142559154777510148938621022697463712042728174240844436375568726075073667259898645325823864177339657468588560856877881121602442799125313628359251650470694484419340314955187759304195728127850112362138478345616573931720765997287891278754406874417529072400709395266397218420721931260316684754326046662384390427836948779253381011959830193453641905244437663654059501593908336710810676766353578795553846778243438499021457143105346138218222820402402478028612593428755179556793591495719498674815588585104590505640118191465479763133266174641020813361755092552289689843286352471309894016157403793355530608481254483579764045972549102861054994287708905291887660308366334665407661188836714571670284019514648169516767004558598937385380326317464756711510583362266467024073552932647742532517219214254786851085596408732846526418443181320292460287308225815736933564939830901740496504103560610137479190340125999403361704185343302228510234496812324440425710431662823000450133537130165473211729889849783520853997191511532335650558729692032868008933370357333766951114929108770421686372844776921118898454991952647362858673301007465101460450731663930335368417247530850130779567125890867508034895270776312769356445944230353982088334951617695308153990115495872636728558732945623414730163782074746733074490887782905329729869912099701383137036328251052625023424410743311580125768454476931042343906637741577942873408780755130758006431585596044394490321557231825936065263389599006398017687378550636355430557463423340254792430836689836021232642400658411824129799572421274400884212712793959897912452932259205184160233313712771016427331279775238047080228547942646331542987196838375362650990309493736151128803789706600608651358988850292540951479606130904859207705835390622820790796145920879272571619064908594922407802609877451146608831082052469514170190455683758861085102840015553496300006138222202971719695760690724593819085668719264034623119887252852573153154737940390917275615422943099717510315427241543218826701511510101958145473763645860440459931502367174516966264001713298266130187336623069923732367335073229429839479459409538900676678402595945791093692545865363619156812143259045670225665824777132449727910002412722555174398566392848801468632556755301769612109439260506166471427258582770054706409414447270146495303742207385077697461600645610084117065853743648559494949833698559559592087706604091332566690769460942924582832024101619640201242391086142139599978179058990323917099933521121450264542441979987192233877848501911399671614281588097384088980601705677639028806051944546326021282067185040474651214142519338511493623144911958428768377399511789614894548298867554494808701912051208749710658898802869239840268069919457638158825810198021402892501245243172418502792320157696097202751477859043196515491625676860501085862231465391991903634786332772341498920325392863092180505763886604582358787648753057107249238563000168720175970029885122647420427802200495111153599862285885579332072255954693760489218331044780991303544769720307406849101875687434412312448151969054988754869936939240882155993510728411363883113549929841057304301475396253526087445880844452091235196482415596936763221509208466931012859028555389317463328512786424811133754632255087880354676658484308198177632320330959807634196570487506900945461323747459523598945593924242677111525304100551960756470806244130941824938490122026216077275231586072014765205970327121107250200876315274623762716445590077112246597387849493180965111665754844171273961730639439397702154113766154967171588410506132186523241199043930658157413555367896820740094693746348958307983497874149115806126105893592948735117094507391420580951675941370083894448066852362895421282320203949843833590572648000064375622313781276033149644628622677609332356057725375094710104690784391667876733269997181796764457002266186639739209142686934532972861191206173709912355546969815239658559247487811987656861808801913509043229351915392930509323600813368610169821046208112897242821592638153992340822208010187178792141293728227082054977960971638958910312879918449167906124251909155917483975710519780941787359423139007956372772068183487840472277451016103988350238682707160358277818189837598436042177353497557084956379718157018645757258846574135641119343968199857220944890752712760359638258565302594464261710351570962975848795071557302517843683325214059697162389915516259313760656197271540622112254422900315406460578812431986150855082350361978398166461641336257480072537525147974701205299006463047555676985511585478283378779589909581250925232301108644206496114535776657646021258263055928606399879659567767483265182544565598161390746047595137053805437884366414643273827883240949894526535826090133842032193866691191650702452132843622925772570572307465775961590185189263037474357711135271986961423898663632894455648561889583226638228878968039152090405301134685269554456854796349380969546385400001057979515042600540613383115725215586242566626436666388305134106101308752017906963282038649089259984414110719159272129343380150449162440931285975858451664379321246589613441898355042983357903877781810532377169491474729543040010001015962314272078147029748384695022452586038001321681862862983560420158884110470038722287319520313808520392358099977328262236383475081651840685075903863890353612907537932382688198808234954309707039545379677656065616086184198432751621036901272817810152760780210441076800327775734420826274347197702308643031021086762432862393183926627502924968208775112619075355148111720617701747452227526281674572774641446614973140865363579257554976907144092018257695538975860718261793416742113809115209827212252725678996792890112085913401366905493422877081574225255855614975290574360806219955882995571597075834047579926479005617066788880590368599293130908921501203079673975471842750304532596230651942624690119482208255924293082237251172381979666648613679804227495381875788387014378186441695144150214994626808046488054829821160162511331060711118899442508462283022823397152890633629717699737688256085318234268954286496456760472014400712269804051327515111124485868234603199888968076418463216134874816889656566594277096978102664541409245759776127033628358033908200579260904779550108812383035831219914354863460701536710993068101401107704823837393517245462080305035719830193659754305446156594226293963909736835489652135736972037630890840183793797815956704933824567975376445409015310946593722654578713657512007576742755707255807377924570756000405709308114647999312071030861873363929612394286421923911153092765438375214597349942624147018586665200456254318517738733927898422870137925339135188786533915617494376122400258578246705056174627420152561277920927064702937028547822898500117538921722605024302478428861748536510825497854387920730809154634018165487320436217985526212842629207862213683726258732826375167947864387271472661052174250109239128634322476508344574023758753632745898787939507748390113091311047212169005284700591337524343615933591832406491720314751896226315094441343304757891601442154913252186273323449402813954956690374627426334140044375346573675132046171635999693962575014932883001730240864846214492657157523038046025786599539946408707315757777093682354922252457828054228883208381623130766017181301752787720930022489569160263641948495811049528551920776787852202436093741980183003020881645406310293150677616579845392114563179380738073023489314400691674496110373953992468551283891207525278414128615610458555132808990414543149204388592066221785403495161095979052625345043470705084729763116476241572066686392615581856209002641709666359061667505893020801742071841197141337613862098950307371388600152604789631830807163050122926141122320270326232229822591762819791976163624350088045316045506650331285628885707842430960250970089880260170272665201525577318418360008536439102687615779122521071906708430697892531567317229531250774939536244985852700988537303788940221571835129508422034297000266090881956771966172218562553438078222661379141356828407522491230202577203243256607285431575350422157450174867632716949013455534615995506985171973513993765344619488819755611279415347280423505433908590119323234333899756997495728049765170824779115290958560227005861195257644529057863051142430212786684029098853255685764367542231557592664678274253210519992673647971937234198287102642306560880947506730259513810287052728062487910901867203805787613929360811418478907807308645670802884461980068811364077099259041274638347316945219820960954605063069763716354109536083546437166789097772320424499021995017500149552036739649217568798232996503540761956100759996886481902228209871344758298553500287788212902939378123998473030811212145771153267118493141050341544961909047564312228598483396407393661810442626591892973872164965335514634004883248421055502239259457489113996207507298141597347799418406572809705273962343569572791317553622860371015685496594158047450451903905343977503093527722482975119667571378579269087439517680072690196134118741207506315286527718780274304439601210116203138059252977905216085667473493119706943927977816306131775434654908408294224500875615666728777070206300082623327558949324380559535984989021986895722840265452419613978728227864869205094510632776114801423735050380596943792031457445442023339750384633917927594994433630886695375605239571015284942329871419211288108192070914998054741946468836855918297064632228954636216239699132120908245206850188607302504856685214460479663514181803109871933950174596139511479931335749791957505876874243408660515194026695591205722205469162856543646871054038879704366274288902058901186772606992172367382767045776382916034405400640242201601247726671651539440665433088275071056727061485936108344764876629504834493756392872823691142769397270579879130232299825685092504533975981992326069520388504693406106175704902786117294843261145107348925634622572257716160252659497333989196104717123618944527044854420436995953838052139932047363227757120630356635229284091347792677794815418725008200357104548455655291359591424999662587691043613734595398242912827317672766071078557581034261258964948687248733601477057821912757374567819013759391105308066731680030554718739963052354351364748869230295898488653169033775808699607806231354344047104614476540284152221648687133866591695489713118598105863940437462344952380832501878721801604122452199358416902510193386952438715413865013779527427433354188626253599154053339324847023772839230346618504221184291117343889539482796110667520597414918978698909668155018033680740351784905592969622700198204995133995517931043721861016123030744479352373909251530591283821114148045009295437532802326944040424729692259061334476591475024424800249613404151073032135674471627612335328557245992073211582877221199349023412273603068853089475875127422953368739042442855370298842000532606822236782922911911423712093573869279146523247678865685346521855041022686724606149830699665551598404687602969923418224099627825731964401951902922784084981340081831013480748204186823798000028812399103579826233798506530153523569861413413805180029172970839106606029920765858526586154611426083839035462833257339884036609192054560975304757531343437435373347226570455009281024234743354805881854560070346134190136150171946016676427185843678478279009209124967500785450929970977661987283114605846386586997329139386355118604303734690887120378001796010969994389933644037771070924007892757490880071252247992236753788799225721464485715042672975883065261021564117669960250282440771092357297267664050584039550398096173872817050774480914122095814353172308279107202157250834775237314479324695325343640786823607368461686862714491686293669564177301545198183367011760756954732432945692966035033315187485757241470440576995405297663545626132243514444639124305812737041071454999569179273623264349869351342128935715962722015522641934428097627840324019618847145658683467363812355415032197598479432824024062165356048824240663200811973110744952646164283288244681915856526643761890622081398166430887883022658423692496189480593269235106813732532384029611597641924995707149323983398272494218977114055094037108207322232901244537209882700378512669780633831771383374725903006875465009307229596481905656677785516548617019748717605670011567851342785956557346442034555588145429872021382718004356124376759146679715495374036847351594101690708320942362454411580677005040697010995914787572866359944241964815690990837313603554136649435103103700277887589511775169188034663889518726646559443391625753525203034166761652327629270172049051043492125970287514127907153439219473466981929002030864439839927803736343659265075903642037555253833102108831458524066637935228170101193178247704989149163750685046198772658240716778807467139411529244085475309965647164859642899441914171965118489576723586802034165686056545741636016815984405323774744867473916753882798245252271360243275490091071426022468127996170179050891783194840526226289259181545429944443887166228218043037649009382632701210086274026032058035278890309006398766155579680449612677678347980548238206698274418540022555335344966300115639469972875484659657614733833543903106634546449218690418380399648388157923322326018808248311101917072613870158482547570010645603923103957672940395833296880338332774172006809864933778053091401204444542803792641198485879392324863994847590512117089292183167739614860115534543872060463016028329680554311415016395377809663012825455670137938566406825269795523252542175844664594357792643995402749027709097918363883421104261083490099359877417307331951400919893126008489666566778788144609026065453941019204279872782300633427694965082220474725925399711452189115432962198259729188924330799415478886733917643789529176696687896901098242102276403443811370907557266031967311566341807430828459920334863805770281485050783992613427635307837392461460021752206843828967671687139072814229233508689427754890786534994601735625134464001328550170633406733936056384304571196240322224326775915334428909789172700200466894513112585016932233357608736274863633362156766585870367297196239076981862130214369395410809138889574233486277711275925778444301397584647306448360610177990304979951208267520727740729025988625706974772760515476271538343314114098730149787302394465935837555290532554765544712152985535725730270080992613648180511299147030540735747437157365832901520830039615985745276555266946392353879641870562671272481319876075881091811866569373006539858767224925610771438687122128461910901036003304585435379458999588298943365489232700756602612687365384992529493401300571072891653612307291817548888332027802132775586252953814838908887674820998012770307736314840734907513262611894639423273579349223899848667980206083585955647797549357081377815138551214198357339769467304696849382549510938810793187628023144035787356362394774997213363619939940499810654508060418094389720159866493572458698953247342184500724796852738749168811418468481656400004024927033174955176402630576843579442091714956068956517839566961831480498986385035280804900786807292474990877612434206623023010106996246279290224351981234324942536672211947826444857038505138285214383217773448155313777166024623607687148069794158062483464208280573049191758999860456322625278919757122495353168227440069485160065293268903131479321132140483703930418236657910803110439483315507235959591346261646403344239182259060844186734068058235799107899658479256893824163414321385501867406170682836014860825314501207294021905643255119523438893873335132504534049896637522675377618380908169707573257129221554801620941561134201387540109885711377325460086499729766647713443280343691189812530748234384870880122415262697359756033895806767028786333248443238733765206888359851249351652242810650202266309722019384812818555532582789220144937396589354876098078163343491458908501145813761052625591711374935169990574999161536515366748214633876627440529966372477510216958968186762756421212415787089359768302813760297491223596216270845992930879448126665953196094032472512140373925940726809420841067687250574397064200720213310845524775285689358977444835717807861145183151892812435036825810909474626542187708013272655523966462988722808804454987406542198740088865347815938945791034274653857925036143068310942147043476885098014510479066801363704635268635663294953910838676705982505757882977297742017159773339797418244927304520425899616238221477872153429571731210811362029982249053492920961707135508617248592959442954373719311346790019763078057412336329699196734532875654413309002818391480419534020714946559536276190496380521873019215312846140315988125279563006177332178689933297473179853552901675788159896816116056278379652079139875074241298154256039254538271028460891390569106259970615626138840144450378681491180997816635316474229225756108521396592927179050159424648963645558206781937487600443555219953729044140860269230859818016442064869403665276715336415302344097038892509358966389178506083409284592279729357929495244852464777201042856038339098187772211039029757425489932583741521363527160513646834634794577387561544552071293976288709321642944366283628286705679364913886160381317027529996270557739667763310380876071445128372051227311886405356646559415988575851892728743059805383194343228531593545890920336714862685462508062954946603854711772309047693652249619007499845883395729299248339656227385637954746723593715511418772803250426371742291269790987025454994140998772099547831100869834418658805429294815794997803249611264670651503211909297973017017997704705573721322967827635426897828577127788311886844694714854557169894109212396856826145723194485654882976087968598932903844655692549699693420626099357848881640926770137248728169633160772116598766114381419690405863515997185569291458349089103159107401220877350806769236528051025565362792274154825285351228692661182806430185930910478214639733858127732071055092472976431624470767722275787007511833726198769088835038162547126659648522628468177222081823056240999872825137740791178458144668599246526237281842921632488144212891955883076201522363878582988883716891662106620285764187604407106241346706989719049357732664779478843749819843115226935180822432731675330274666832825686872138273699289413210695244861582314292898154867618310470190275488938151844605381925806063826130636900567507302811696278749924126050888772578292672580830949990055944455000904655755209533553650002155117751369578470630643128823507734123503704998734035260470699093590565961695615555750494929530687347643716444354972861183434739854690917627625458285247419494173790389265784093004135154388454875470721408024312356238211262310518276151506343608903223613244864416735476707924317997213684489011976513369965760319324220237453839276550404782421925636862301903843026977126797452400238317281622011552319239361898493812848552337149638355229087279748336353720356326082133209844282942910275664159459279314406922412781853023083956095487778903735222844700778308882361470977646257186849500793065894935975195858006401996308168231453094917311720413231835152119264025828159159312083533946517248862703623322858024189741083229082848473235906666033815108568640128126472601056633706171263118717101270880286638313247306073992043121720540782767659947484537701774306034190520734824414129800000115058070628920721022493871206857313817999497431517023732927247715950743990399242296668976273059877799319587689617145698487798365130453822673806783696194661845875825500676056314507602578108223198207304403084681726304421752045843224018015865535209728050021980374444278320754059110298650608170442180403477167978749389669421769775815037376867851977536426384244355054512958672602667653357340332988185123271199593045702693438853599165890548376339099025766342862568466692912316230776481523475653058446576078818263734487982773114983927093329866323688301683494172415363213140222066629239920866660175036320512382973265596808155816489869351975729326110665465890468183910846035556689806796710068758753008400634798254759144923576520940379285343087769458513071577117821200912104209071836085244959504200809965876604759183664239839444652468634108021587918212846015017763910437251151651076920034646663595148292092670220452951838009079875345877189253530132464994956894422603832026814976519914551358943258773359928955077304033972323357549839661486426501267137442709365267204868375106758251874901246318904382531209553165548137371215107012613696147936309248200739894138053946639738330125946416046262719238062930110035141936508056838208750668413378456954392600581689138916830891712955249045077724631645773068720260609255687815224187296877484293105766102248356561366382066256645625746230405545897416736537765133583324123916156395841127819908577080450388226214948216857742182719705706473764472827653864700704883587506631101630535438888214751102902718590998746160446515467038887183501105303607157641511685881359025319567820082715229190767444167507009287076946125966170447777450803925464606694033802928529745102190595641477615986085196901617011199596857193288392848795759859801778039571942171089312865705875626528124381931013090006074285433204796673585499407323900148314802673533425025068798621608525628615225333773395499449192451994212776906236064730993320362201554637455001218548695602120306698718132236817350865725462255454842983335745888694553171906685253832326793344824990036201114319925702920199691987110762134965298235998137693719494388827728819497053843804111509656102345843899466248969595773286107870416820846551340911620695938639216116061243978332553853697737405139878674934404433551571194081294279379198722491030597342434779045450390608179574123264128167109474600109194610436269492712257297990236449529360544084854939943507033240445849684014280459595463494810972086856913091350519161821666521177629327570839062304167151556442470613910868566357612026857877183578681546503617121095328616078780919558001261323745209297584336220196524418551110382051418028991823546404562414673022187083909068776815068385439482734077967204600107695347915432614321726935220777200724859400363335400410040723573467201622310074004972747105672570388038246419204960974990847216381572575673306481396197747879765322149897005101123568192806565537932737610138839946150811052021959827035784803327634385919741828818463798577314034032579652306935027236970008629151809581501691038011851994992521213705587411401100200586952466925666575363482915829893454672011129486280032277973354619849094239094852265685116611641310041392064891553034490260404542806850532758140283475062949148446971928814545904957381290391604502390222167118911768830240645162052498935091473989664606716786087398762039131296412606885054781997745469413865463662644047466883038646186210963279549565824714949158297081318196915487932288163033464775129652391893702303696549155571539294918399365726497125758976019277079958805823996308593999610158813676346254010201214503109503984616467256021944658838588376477975667954285427027983008747854174129086937793339413120022601146011546506825955400597076862424361649455724635723329936325870295310302494152800878621339952485277066283283424746780483402507169363626462172166580405888225071926110237109709424993651262208227282551603530857242599104603037749794812787008727884958714980096515258314396231206216202420507578053900394826863332057982817894545636541709188528176044880247445390970480062603280556638017932359393647630404879579051961962085481814461601184857843074828573933755566278933991503911892644531113178267353326102804375349587466467725969634392342734859830829852676956453500615178776089152245703619817441144170096224872766890641167262584374130182576523986741688192552865017994627563893226087940040550941560219815512356821628432365990659229703845496700836356033768809589619716221936403084750955956222584919702977984305872725152118455788030775211227182988950605361897470737413857920302097806004301599686233979186941974683353274801820216018826187534867679827041107361732898830542540257820924577360683539039001089800550601842750939487182774669271750226171038035246720198912595114923493866890090039571842381895799049688810314789061147799390701791795277236564420714771887827624045961406628187722891526107502959807510631869823446208145995202762442144841150173739386065235504562972002750728118578281792886307513831693997143334101879716379818952878684559943405974251085448651106835495885120887371900326219451758882143503069966383728263565447885643123117668617191743093272824579368291081966161496350076023871895027218299559889223182376755518594631727385228961719493335623177836923791021079106587231489978469877082033456685302569856912382830864476412858654195248256254104850651238930634108925969594244558069537703125392208157746687875483443788567255562951051035116053341847440188645030403265188585842095265807384245887007991823929982123925703443405617268109063200823660709883495087935860896337582454189409917150507894801298165441150316961480485612261754218496814357127371527546441797863645298103903740368384995653604623540885291653285786353543155646119681467601375621925447930993844026029112341130826543719186192422911946924847016347542408323956397384036253691861434754533796010803075138670072380440729058953531523667294357019869186750919771767636655373898172322839104374413799028770731907507737101151686153732327929214525192122948171713219075680591367680471247554179640329539288638771614441122664156207987201316671570944153564193918319760346569216243577262885547046225587472214632611295714829459040735959719699390975911484989994575138140540251631144661116806169565539292732780586875374602812344791450845480150806468630193481823263061366356628269386620317557965250868792183852796856417069228049590710162037628556665782088863418108466051194160502375485889387016617048794209774079604387975968762012447662440949510313660012792303376556388184460309980316712460138249817030776313460327027783699171202978131961975234746325657335745987807490748601024077282502367253406970332278312750600738540446214088896927793092947315806845479600837894987194128149144517474562341792176377644727282950408798193678052576623847447754252984882452106804524296108616813803338528859386713344757587576208127783674889063962585796100037763772708958622674323554625653482733739377391048748114354309299232972922846819327158573510445038524191966548622085302466509522493864175150342166047424694906027111753111737111516345224362693210315876145445760209981221728471304225086807107657932668674095220181202365920463928855502484912522316704189020331897309076295884017155272845200174128388139470836384704622964437643150230220310834075778558583068077642507373851756147976234181555933517675011136222696238024601065622364529963348916227120075603685665339920064637034212710419473871435031626715698056903126029049322850174704108991628575929133627141769609249996200250492971144255200158179845093955362259784226949336336674560568128774114322071722464817782523186212260726720208721493059971610720253059054895399525503917315708974276051378898057942607350666543664153909635155807369912570636657053690137874932711737532846626402974758219391382146903605519808765281069418685189279152227965801428950164701250245201886070291643272094132044277781995060461423701860402088755366017078214650791048201728014402271000177073702643931606391260192739498884522501030332657877157572738764261435293733261983974856766618146439279402505915867319083451036450860568800855412476287896151419425642820761752174251448232332610016233247560069643827511086701226335526559249755315760879125286507715496422416962585467753983862754969315519608250150616515207244234897003359495251846815802920740093476556333991137758745533868230240696489654630250511576467011453035765841782476117995598797525339548137586653718489005008882905722642141693428621840893043473873076558094556222523598623564814023072514718106207791371115341219331797917063041253905035061241239614352745121427729637722451732953440346881028329613251215289292841583904859557521376049404360463824566713988798681422669472655242869821582490133776241696975953663062173341401586479406510054510480666245712884164824240998907578742178386290959711050569582145566381487306370099557615272737658326844677812987143836119248032660675468813345472552579743769272625597581310561390164317122995218950425746313176087932740543695844938439018879761367128987813364379339088168451302961326732882988803353963715012003946252543214725116388561154069371919600108423982456973622898940718557303153086711251788855434295060146922543160619392895939374861873998398396798020023979175208330416493196536666500514162724907298815542996984641791764142214962337885737568081949738883480861732342287846928548506820630535037270729096374792949217309913023970204989037822855650442247296401217234960368744508214727787241660187372299090491535653711647848000683944873291616089234665283004423709568226875151238193445352130324255309966563906917978679462730815022867119575268252898215238274992213486829338539940117805738607169708464899705004074278110173331949726987936411415342830292683588658213747535695207162084330523856149795811267177867826975316546212459054233106027294537056219465387648224523083802195944346731899404200889690904874937973841539229397417395111187004479515177424764081249599953207223351019777003382040699108527124342419038588364824916921464643588245644994126506219630344381456149630638509502363576031926709824040324902895233834291595463060784407732057834455853783341156483515049698045705654261518969621007771715141366079781633189199775886973830033270782926472271061965218940971901353488954630497634998439833974060737451690246389107898367873448785722192779840698406239633580028320151185866061202019823848885881566529787174470114939287375705546815019969399373690772040451273257865165113655467293761165762823830365499935507209105900034269855385875479918561937805972380877460268204419020093265192013379205823513884776364412919105908344576350018351423464872789637434980739486475796397281846445410418474310606694378785931557108742363636761467549203818751775920753010194850529504997057830538395013334518560404732879165185500741121916444571625306429618410927807871664088605971169607628089587738101965094499681835185858462241169663869347682568087084350336356119798907137728813754429434661162531806215740141594102921242961538407021509965569903775296816323819619423011653840149769192386811968072839438551448288620140615731529909592115928461066001015751469543610052647325721509753179519316906164900260366867590704840937351070147505720433137218971374248450794788740168056316002631904462848912992284575857295060954111046531618537004936269642118246689114795952361298135161376881978666298364340528172998363750124119238134319835664919266826259879646197003258346307457502616127008392868269052856574671911242668047199549640716884466802717350698889932571554522227747851699635563725662786997092493112213614000915009787144804735856475659954970139837946482925074685570773614454619963739411714923070251645701756816170960701187689414596120847177329756799668035173806522685415753159265555755034393356577770548702658573893972535959107216351668690159261916403321330952513355675689045249935965823703264048489705512821913246861100441778246569792503298140169589727830226436153743521987659329312722581767860698346491685756067358842844630553344153900923332802971833241256962438839555332352553454822606475941953915698816993339717218293531738931232366504053327511039373018893222846458034910891938170701940937101544207695030736888144500072815039178985162789789969321508773413986230698642575977691836540039316125647233235148896031601859308297549770344501384425209841721335226696779906940865870275076652138753983618268821636438358590122915202996492836564684654308016562977209131955863354616951446553365435993329676759015941382847778909661747056150677788504729153538115185131885160249886691179875481486217935523699794467161005169000636892980615069577318661974646623975670601308208030090849462264530048773016998302710564085929781475076187900184013930009840132264724196486477710745701602313719304679212655102475743076311583442144066464873749768881887797478570685030331927402339846190345532430838482044996143643641636951450678340241345973434365821987741687842166474335879847239516946880420952352296729801134780695152226943918995471362365321029384123854897304844670461191362699689696869964928292557278023952245091144673055454211857768392600873421848718698459555929914082273542957562264641043340632450005187542024398665765150839762162513184505185478214191841221676603215973238716476529581673871301448759842319531930074196761210859212282834196111023178757184718376989545102642845781923198759316816918993755042963038688358205563070530486841309481417880917851867578496689994473656582205222331028040854620251081955622139220542880675007870367354100814240317536720322845011937449068483616209738305361126706839293523281227855884761478196348170793856298738749903926052155948382237989933255218388288783143251919087285651542296140611398409413513716715897904083258393450977670947570850809214444612093420492644099623246834054146654298797317352617928770072255714465224626322963150041962761121641529525305738939019385083569265394072599955283436809199988916525279697958093382984255610857425981500424394691508279078353146613184446325074113675585434867275321513816440332864486411113006931172067915712397190213451961746694583548384636072174624399799325347336652886566344522289804059307057040168542668871773091201501582208572476097748030956298623980306727035585876486538497983273748948717272845871480846045420830147958227681730083757764682261459423664288714076702948234985103047337302865617381320065345370161814906533628770963927511764114143624818411301811972411137096019936428834131447509684204108097094846131318340857845873809592439877637550305603326137018417759278715845245734618577294277288500337312868305683881331399113721617087273128301451741423809053036827020175975935652472307236388440910097694077541173934019750949900916092986686007734524808942349503530122384069637695730782879240645426741532609067154278244320254784725378414407388024382297591617233229629874948451669412289036916556985285894812543268927267463029252486086744285535940500903312495279035481102476338957228842650177679355959842558971547679303102590101076137823568297311920678645580321871566584124538931430417232179994960545989916730721683191872554114928427418876258126951590397733522585958641420738324175375999680293297126833141834947155497225890603345222623337046569358707111520157659923058528750617686826961530516614612453256728769054033240098912297383958156097563844868499971958173202192584777118415529132106643458038239676517227418022230568964084236645732000974062019477256280020742746421584157430665227951272015964548300415205752213053815492285803403611224946049422315736517146122870216545630636613197936701844463751561862051235819072637006499952672743111788696777113934696134921554539857709062513417090437011469955251164542044093414953876765738670475514407799638376392126136847993525532757661844034088957452419288625979645224842298806233542277186586862941371394785146945385940708910560682916479977752765166906778665291815065350827823415653586338510309160661188705143749182624844239941529824444795320194841767489312544128815709069054706405077227995070012796416453407667588523881183175475873022363084272662034213705169248795158310682020707966030605917051394210348142968655089630491326007146818542384869263364783976286920079108785447690904375907107001131438706971655350054174500332363879452867549977386394127559046236225000990324185010193837692547720275811900559818459659137821551585418817393221980025174138168391586367416257433565658997917020819584761856938910071383476767385717231684324525563799919440866162051590304387972581851163270263653455270343596276574499386864187601029430226773535303956169451824693019954918166108313467763821657075191033694636926563448167147745129287930025595137358589449346890155757456598965618587911193648386710874870373417203374474438598954833105906332672299687505251586520152689178497901956395228538902647270156116303885113959108033813990663098813011074122991312107072970731811692052320582238720504568683196451039771343653927952136279390996618782813284383990525982294403822212467752148149746015777250939368942394301428678477931962642670963034897012662130332583539700437790282865191639281752305984320026071842953512760815326280241087579861359499806453670083388181304998883261542233934707464002390617433893152232815797722002554323647455940942510276630753454207108767500723553590299500416398191509334742874862774305958776168650490665545199995761777943181515573727336339528700164173481248026260833607951469513285650041560177950418136963943302728448744430784476538449444089553766462876372852883287412725724088142025320432094268160614672261182041839680036801297135621587562376910153376617187724931122189715218851292277082877413964847783628136211520207364030396127468562510252912985547401523111060377099246484471321144662777801013211712513261408229568274252455965220644822736154742816400519592700200875829884000853590827941022298556471346093730896158596593348396947457353046463165984723366649640236401242810237174801958149398419585042885797245604074180861002660998744836675428949884335868134808412923106843742847803808933298158801712502171694089432466559078010077209191919660850584061342494436090832613790460538056030719637135739931359998551153447208652415391194198495466711410765162106435851035606621409083434082067560129016515161377196900979804080783606465056282475853162738820966972613366022786764235993879402981735620899144540167107852448503777593216026274380286283333606772346456573880385072864543002917458653417105209690872875263038898333950213756481675067960259403407111764611142372651688735520116288669162154376973087896268893155890552245509874415485325402202193253195624947976459485548815281321886895280885011817597676241633664011999038764069705554017125214181791462243551256676309950476179911948135840423834180320994065127128372072095231425009878157040066624412333423459702155516692306302731519640641882818060334984451734521123123425837447078228780608917715401373377068644353918688254485432714344162058048444396888031213167503126437420409639733281727185764964150603442289174818360926771660768053649864889116063558781356850699193186680137470174106075685107241954917209025126000283516232679531638725926597170236463737312095859930636999845404042598666981571195135954518064143110713560472646760664328816177385617416450261071789409326513905284375365238711746832274965402067734198794947219679768286544604536381022416491356574793915519158626681865958878018973298531595719346317396262808660185236472650085135571940527830613532636461299687756402474416283946258079383868276032642666264523217229627901398253170670705602371937136099573218938645378624383200364509369824679661527587119966450504302473847929015448478217542256430559745148688507848917142560118464441995205487685712100105423198895310302001484635932880146757692558874628736324295344161190612838846412473010747727221256336994858697243238951217901198260055413338202593453153349980228351888151456967590498569097034042894750854329006558356226086839645551384171888264188395140296286332134107898914215525973577761074282180040643074562895900840036365333456271456972098323250561234018527422658526058347573183824794619081920758645813782658451068853227842405126912118166049398524545640633496861960270894073605617390057605298721506177224134132489002330891616437241320641353890794896511306709418877885726023475930988416283209188311444019279621706065602678009605687371308476690146712342088136406766745393857427158169014331730274565734117849660552598745263611334750718906768525140985735622128813869413077357586472946214293842317514937878559600415485162714955771708347290913245174948910764091774436169032524304062782833714803974854572107282806926846623878236956338835483537949328905744074621793768951988335089465456802828158251119624498431234365608969091814317009457062288638071799035798890774393434181792852283288396616765914989445919552678097628572445801471248819420458985284393866223896026623773339799232595709608348073957693731715129857275095937178192848206279126759220002987607209925520392852839427091097892154988123765585348735475875089199171439966128937649917684779841542981955038094033251814495389268488922293403892115197737052886464898555359229212633317246527069837114795659573809753024608054103626790500250243957932924566250413749713982700906380301865613818693648385803262853863174655892882433199539226612390741254538957252729889528021653486828296120592898017530305291331325612170088190162255025987618297423695276394675976142183014520072369566337522553487275627664095168036839311803403435655405248449874555891031397324643215887266602974989320961638849912470968138639385848875085649976925644298686908671659818266917004771789262245937596512228858857050777307148368470686036223357357441171442314880332773081118432709485980997470105945556815145049969473557955455737449675420575139378404045069001423085140268071137945341101099387462252976560012250782606364921421926825751193387383688591009643971796066055509063961959843793017585336818770728032062120701382825328545297272239937843411537201835681619725998044203006207251270567559567833548938890281671375992364101357222224353960965093824339210090846323407026129981555091919836311568485530124429298404449734838340885647091844056772737964015419742939416251017144986628927756857595340154678710632781889772550628894398293630564193630919153389095817284865951059110694945009572409275964298172947238462209709110573748890603813869809840586856029745827262347920804980732096931678913463105923544728731433111519052591365265188066923090744041327479888390737446158457961378898434906621138476150562102288577966889586225091100392471220534886334142100029942766496665659855518292504363645897709434942728509426260344110898894292710322183977089176088866361438140712753712619691593510465614700844019921877768974587939189725393225666605970532765542219221833358048567995627776405668990018454874647745755869105551678264302101449237949360789073563686354569675902156936734370004325418998069346362641205447166329750002205280672002726711629574556159367690274613936863917253462173134270485262381317036276030090638804693992375771684932453406815992944146485111700758382691928399679051389897722244863445550837265397401655535998865301748963456824774938295876681710872670750456138336112840318278099642075970087288751251949188760528252014916056874555787399374051841443369649988659686089217117511468175417164658082315556936677611092887279297292727975046444234359467191362262262631975861335678917826228891003290562738238175897722704163227186523534379476629585828944025206165678593676695465333556119925304297683861313529672079549149618171533286144519020066744087059523916695817175645551443639770318303927489152452627792597503094152383369058553708919305580621920244843718985951771945893492545409839192390145657166236129074795460858022387578219304031311610445655241933063249818172736988760493317715621273214727383596669536668098092324947006466291603261428658297189115292097036729048590148746113876061343704543244698949324462686272841514809223992976676257691198379992516494069268934112373490730018011656358717823721846422446643396647056226643212119675879203010857251393048128874922180848392824530981233294575548183508210889005603518865944020071713481058092143065436609507957215376517501541244859675931676670523637639426324383828672231033292822608494814828190827971524064042924628941193336094533288835472804192932850044127548162439993945617360163580227919894413733011199699519851482148538113980271439347987806506930879788456735740898885990620319307564297755260463138062034166030095110187308391313969786198643424132953654553932145241752162338576622521904237491741895909614531163295949020150234800396930484310193828390011932874852654744946382365841639626221444669996056007198828183871930719234167960840523295968252969815210573184424017375264942756470355201654772493534417459071996518918453719483186520729724439676736880077256977143194950866619705499539725594121400577600992994871707601236107231208321401201289911330800800020015048551894267707274822477016025862897692320723534247067626162192866148082636752817133189530280416544645901835194759472637251824689270445701110868274711752850822093728661929582903574684411348647277989741586155828773099155129141168926430918531508636113146163787483914962827590734543540043485959184223246228737750040317967288320789782719767653704448232064926644633546729652701007643543139632308852091000348932277555798699720286820965456237794971354150412935246916085508981054026283648110757199450604967609100378231449692948915051964026614190184771890591621097025453320996880609939992947433145809168375904277937096190905912115797266197458471447143543060136982269317633818850856619517441374048464991574407093537381356554605667170986255105075907496299302418253603812664855599356630542023374047944512843128779939389234671183402798444906295505464280832554402981718413933009357244961643982338921033482183647973765343588395801040748703366020607652633299408014001554781374333945138919247367155658926367639362995321748393040848321860066550755270493490000349786906520266316919058576050355180722189930702730939085637683395231611172223803315685516831145165552281791876265570420635534477871871892145154901186804863710845926419110319496527602430700975584870285318901197860162383678753784585865123134454803027817802973820525246106792844355393324898544347929528349351781443478319780385682016762235890456530543306475080993200961785649368090005707662538179698468005690671022910779003681305570914514317788927390477998738219398401716500652375518850666793163340391224255238248791115762504031066847904142556087476441471023451556797504694830433563588140274399237061234766245292649488720925890819667331299943432329214669604233863696011647665455031110440645612616461366217020289836142633774686692476788137400901952807301956395118428233491794356073455020999441157984239517937595082005709101657541940622295703052983978412989615902987054544703485730116859133607719219549283657532986306096053767769090604121697641319904482477719258625587950543450637120771882348903919643737650153172828643722601231328944684411507692213395538575690672886621348404386754931890598648086839376437086279477055457479134004837906162003115839210056859091029061266625274027550434331521404149339620891673583392516236168032008205764750924374554186450282312901492474223461983100025236942903966430620343092656982737932199232694308368973945888267178805623440388195760558598778510607281473869846535126360741576145332927621053388651114395147613012203914303373082300059748011068474997574448911591402929892194421769935469178895876112304707874068058589181378356299611025227711057132504197252853284576270518961176337800291030550261258708378453012150738450649157948906603587926999679349101981615908125859911835943107177556885824887117015093188768236811695730869205388653458217625334811144405144210933696665101115700488493539497639528457211380836477865319713829461641529398065427027699596255376425724277964767618417148982251318570174305239177540572187735932661265518972598500498573481776013963563961293722162338336737692119337888921181605251133301297025437784702584638736841228966497831065331501074746593143449707921344641062489905777732349460657886487954595775179371457717639246403031833345094456764328364832884107993932815323841526304510872693975900832359427753308946987490347656082850304183471477699350404488875414028225995746940495401864168893238428526020553351213956749406109773686272110759335711891120239990821973339772979142737099582487766353610799256462035054080339710627736041907635933823673166466977940727667063909763353609127557606759554450249318276315164085574822793565272149688233716715733549198198140395950122482084158542295999262407030152589173353834560138640512100612238586864440405129183613616717703681367952517589303925085943299253329275229526043876231565549755107417941206774370600782103507266975723005569199917483384458169838513780686948821154214584932875945287355190096665456465744655916203284482650832160071074500628465951375047782924736599454407640195370634232442199304490143769720298098008744015614650931822664786507681550742666105032763052194397385008258234617535228338034454775959453300168847452105121475655306499297732523416643520747465533776416535526346196730095283171350157328018285102315220698176526171144222055405329867557904994409375736023578442496398705448437854939210767575174053693851137679081301131793580099999264702902037491381884834971531663106539601679381924826309462782811308798151482295426973369636192775182419029885769283317924523318700057440323268042863729091502679328919954945681740846101440281598469574991899995123729838690474509882297568830228473181144259279513123445871183533441211479261102367940285977759377027425282046314568034032022243745230952568769599192693264603846401825460259984002426630549179938475331698496406323046382148278887767330575401632284548741866724255647968782782854764932237784825081703625028584199029975493943516000920066054813087201430642498424672090931992737906851022756906667185964849808077230771980495817613043100802599225590155667291722917956920700634140475819652248742164014728603607271553240667824181038478780175110264860872105383952993689364493611869600324001751847741080864907394709278699700217006759119753013226297597564312343367801906595619318312972186810598412664763264384633888249140387408788602035519833627020838763531513596597307155323419421866355377335588168411653457831071362833756070856693853885768282391196058296871593772921690109552380454584412799559999546197047595974900193579049687772228946613577772498997399206027339003651102545610726873862462552320322995302484501591206452957446808649483114067883284418368284616785705926543155613317479516915809821313423886665432934917431669810337737282369936141437394447491714553102154082470518494463381140136160903618808089812737657698134389629923650412696912856859223522467635709170815161892880778662561752988889766602481045577614405103893692062505421710554382015360584723971443596914926750369859762334795851437632039942156721854290787081858475453462077400014951894061204558959898053265624722823220901570422225649854642497023085682597708305204683869740447597894557152223019064504631578819568167669049907083496101843709856240978561995100068669638421813790324706561097612272372621681528061560810638216274388993758146693900605306098803035422707998538049301938528066743943199132857989469613900587723543234014497207390325712475526773609994197250514360815623829128035395892945758796693420171482809043751011186331119464798589002895895555262272359253808700349059978509542494987915023189328358346917325791035251640703479955619608927177867091987941858795547723255503160083522870196089835058131667751458763013979892752994475421159555649925916344923820532843350425139771634814996014247287204857519924997428743231933565596622006482120947088130128901253295823148770689492789950561797120591992704966624981279964672271259426647642533614042942348646521961943974502463577729884382801269580264691985322724033980055982554943738652907756930449114713563850553022843279067654012373689094562526786319106622566625025016421638502354857592515504656890953953230310822793139809757856745606847246837607705060874954135125863304667926469753762877564125265000220539507341226241203849771084259596268875964520561862553995187735993274387136470364249280059985255738131266446443595328182040473710854058487015811055200473853601770670118747517283231276765469602553163601651334409025724558704237843562153264679211751451345738118049320488035488412280997192534775309392981476402411700355540845115131830038224997541605279790091918800548924685486120423865017432602598825243254621556162726500069247780661028366177871259152160179167590739906628006219706487402901276886468052279750718919872163250552706874126284089879950007246674152817125330073677838986285719117592207859344578888662236249386224218426243530710041081254582830590080883820576336046877221982912474177635240986084404248484735356509907885765328548331107234614642992570905398366204621645431236992174756638374234750411369505565009399909527284853228710561607384752900077210252237701648516606980165386080058757213444933829991704000604700874691799671662323331748913892335125588513892240552375451689393820206698875384179557923491111771709215024421720308852300557907039334762477595379202918190358204018117282276642085467291689357323796714132354704060301178863999268167818166737894451450737496636411109548009526596583805800637028981521137410686404712806922551537510471800433353511966923121813115918144073132581038078808871934462210143072438662504474998260241061864307708233533649790835713835398374947786422224010953376998058507504027402771676572255843452460519205617618496752753699950127722814015989624162685913714521866257537654465308668102795627680801977806615630873076230714473958013734004173645352026379130351840476117882797088678941370143808339737955079896206736201790044467666587845277426402774162795246039086659268794457008413381426839460706132990628772953538182378821736965151536383056402042362000097023139518113204992409732603147881925674093920583990804498800821763177168957925798675081746453563704745949947156017352629313093140597544297469744775419020160640418469130314368228598743911422551140962508724097509674510692661421658739048386991378441842533394450169664040030990663686057252119301529352773928973740579749131937266446700470288230204577929327536090561397001493678775212684174277150124482580592753024168790221297731621581618993037845323075422200793190021467317804485362829076887281332600061417446117182285135115629234041865187250760391560331142573412003237731381069173243132228808470174002910299309506712823359664642898094552512577132894363315472323630727740316377845950385727459332296366352197913801052742588711779005530800286010508091623560734925378000441181757933273748864015362936000402596123916478413406253693941280657265717548785977143573904441921028858397736041547024594994372967061197260439087590467095459300285985684952803311118051055067386472134462735268600043730027826134876619231276346262332015538432565707906743674898495373211388509814136775225144809026708996298854302903413631311827412347911767131589761783270638193235561407290547132398704942037044482372436246455845308297062115745402583393552622794432680067266585311532159388039616092603833131666760709858179808566170767286311971808409482372387898678394135174373762202542868571192847901576745436785244625826488434932741115441215393960380179762253556027033497260192889169311230296397539870763974443019029401908659337827163700792298761478404140781873445571996500486936099504940180822317139098427244046879782614732288033623017564411473413575441055132914703683023082501061304386321967453409686278923437857650832089389280060723656742344033721527265042527938637729591467358363927406832497760185872160834508221843896836540535910403241796476910783921967192728748154631601663933975736434088801351612909692238320048502757756141334131174860856144629598920227147800552996907552500029192315755173015154887201935708527502091149843474101488630377921223752496977861847875786256734563906314721869326053157040076451001999478850530784490380129435495951053501880280149394257647458029337184055076983603040106344205683110404304082116181542639500497416745582589451441470868903078373872290387374060166081187820804460470638658196861276625842756792851141180615308333829937108527963871201141076592381163544993797013251382904561637156814390509369238732052503888657031246870310890067080016544346454545313906701682928075481199456313778541163108581061041072287898283482630094529760084932277985675758243490284142992471852936086177345249114022684210442655530496335127623548363448194763253508893199884765989771903869523381534146172903805888335836637162478409414364653864390066929284701293659280974716176842914075356179699867337609522942250861023094047631522324133760408842299400014800200869821368644039254505915854139011382519085841828748548493021294426854091520590688017676611188692366179955839963000159474787689869006387016087147688138974837975309052618266670854782204278901290257129280150368517244414178979457240723978745693109715010890848854464428049722452672836241635289996639071775558740242366655901647145837827457523425886510067518721156931534457605556201986786034949833845994990810453777943268912877247019052526353561014637075732413353585504232615330635755346691373059325098613680953908455492731599538243369320781323592815446202485054894296461839202676331244913916336071373371875533018471016948161874849793524655947383230085940974066761811899101149189953488017691673143445731584096062064472734431130937860126302624386176640832769091404823230952693200006475278942276753457105835578591254435490917463671021906838863156097913410175985832902445339288649863544839998588278082486432170348058732693441103708327248999427983617876069170703304962119339442891121630787871862847644813974254417715245065958685871923200651969088633452044204064087963680285468213874020813639729520871959959029668621007526249894198319199692501513033805456434298048994793882279927065343163099051745243103773269052499741387763499400558298238588727397325213182115755274284195629092395540598252425675149893414925064721659402932475174413011564403159786768525795291490776715062541834362769262100829064468317261799742720845982478898966768661128671082392125686270060136885698508754306476112628683137428660114645242710259027702299364959956143402109444070119338169911449355807854850169641179800263781783688318023145231608783425082673758886372561964602549635776127041315803519743087753890644335572809892134783910138694393198498830794723463014105552410690814415842549499810660679121226550677480433463268571754127384726531576686625353742850635882318174936132193724999872626106001010976148573473778598556201232419162395823104747005159998114132033292309131054042803983122133735960220952645896121538231890256116865684790669163759039092928881066662066233718863539494996886836441426361395018176934332474649659150160856328519056224794711624859241021797775903383402549361951616818594934275222809853194762639212842953350309758951354540523898916476954061493200047096301463799123037889382321207843909017250452835113190157833143891092396744294889199399968023581602923406580932947031552125986228141697959101432674933256742822355220972128550395847724269068801107510771426981129644331274399973875932434675727448628661250224354468116522605468819186962275198467058361604954250338354904503638947132749646053441222056522728185268711345412782383340021182551210669971363780392195059935196651589949482351847274507310900691729741957082426805234407716243071959855049219766550092759109640161140326785823592496398006759807983779551049660196712093810353742548124865787885115941161421134229450258591170824909094335592712591805534755056580003505685278078026138797712996559933742660662011813128490284314922875189682740509949052328195241816693520865236809219917543367282665866746084717692505872388846465087586874816728460178785615841093669956220599776879741496510699451005975072239181743350711475405176852707760577640261841085250710939017067574652271664999676310613898844004126751633386584490035389101200860665764911845560446186109484946575524545852381226985973216473367069692040101384126656089857821103037627592346216237258571861430457417448400921920209772892060636280867145026313958230031882525441996886712914600856578893610592897945792547983010677799061093509037549996657015762850507314343211975946986663406424781338257489524127509789005282334852783520625615976006308559544443429384577704831093268942379364781874129723335336833151654359698488633523369918294159844304675710614670082945823120843562825502667400877378115803720651636744119781704399642909709451772487967705127221715836212171456130899744087622388324479248173787002540373680946185350192260333882070090839809846711887993235832030370929097357823455602359558690013145998269337448897347139198854531545034968470078100911366319804177217254413589129804440648055136305149043900409711001544777944237867473113919848677692475757256837242387936499349553438876724282194608119042397717568308737565571075662777517250297819667904598725689396613713188306616450721495774991798264053058294197654545379481488155045217524493331470674859440778406517269014369908974780398249007257423123676137279882103554668569442850777335866230989109302371509152753904787728871702812007975261285985502226218914596822667945110500977389668790135679781952243614470277772775405732063761980660491431661810857346768170517393855725542681097419313838322675505268915754396573727374631779917308761879768354568156809496613949983732993836004975064877903176450407631134644880218120951700799684120218117432599364596077382477193532033669302299855373257593002605019668180608001936874359429821498738417873610287354935970291708128628496548596907376249969674827937929760232188582453884228865432066203550792044487873262991417369154898993160919827910937609951505505141604416151875291355176082208184278049056136868085416041858649369366180456626454403352876716341802403552515936144266136690073986120765922916416807508909266525460130998917731865194562099832146457907364541555496866628807370035262244363485733696853159898393861916424976088778610491007845932745066833698055006708946710553052132683945632447513509122946359919408477108905474312633512145358935992196868224580988992348031345943450375397187147195953923969527547433108633096327900086589006760969003646599603770691308660787721423562254865327176707689745442096073988066756421737442947001833293886182798349745085436401341847998368194740576224694857424479591469472895597120202404962288945851386758503749320123537657270833728195116555024807778377569332142465668887327972520040864245809597609861460641583083111153539610649392267269714675741834117810559745480533419318039673642987103295263318953623416093902354828039984526870724583005953707346292854076070894545965333461998017093284480084436397596113391456775580063353714805437664784445326932389839828884424405957753094291173090931466272321673378778662446536405921988419147651722860040527013726507011962811345462776069320657320289852363229674307345729307464588294697853931760088783098503460117309427352931579490595502982546794094996656510393282827175489367980822855137142589503754956410919742899463776377073540420198980261018470299294792630026403058037887170936674400125219247012685618949734694640413300404940956217309906840763587811003517576358793046730487817859069322711294454648695208879372066858575585429331209313969455580916740716877721735327117650769961690146227185304694621397939366191818930704010144104613748607278562337241379420651465812642898044562391022713946350981461797045372768093688453359493219740441494081190589574977690802041875324188687375096280113291860002753922248808466658116742737897286227707404901913159381547964313377060672201590880966724196400179570855965468544033143384763083311608924664245650363008618246601244222055541580098403218405639622072576275730615921461977018529914911993779916428540123754542957470123539254803132954516057849530310368425160723511292273362884801113715615332684197303530657129151877133832993019290007647526842319874010524428228532533254265896067226645579446848138186380023453381468654664709480423658606784922764840617841975421041787616622338029492063908416376516953095129992179683335147019790889902489203064247236977161611634700614248074418981112399704873165088619239829208368813252079617463842307733315346685176175204970603971334731951640823182483412508193078346519743632228130321451503069013390173051462668857733755637963480842354282527069839826927587902292229083738544844618094775161091448447079274428974834855891468739659811720128059488305582695885792488671257774303360790698434641141247141383014051575637157001143103296412685441350839164296619810479314430970211034125169262001966974635565344437169592246545121609777624286075348081026298861800855113071456984535576176495819577590924912962541574202282819272355614506964192857815391848982125565315629504261387701833353600544730973257001941888803221388175853021586538518747785712039004385059474125856897778404455090405670927898333464787807088444055506428054676740927881269608001192862220780893863987673788399105367254636804712931496225033426515069278446544105142137337955515304869434930309836041591975919564440770654444240799936374206817492180871421721984694379335313957686554119228953431762300263230091580339977259911207143687375560044890334440569683849432604677340615382151661333342918182233394519854892457497277122291559674895102425049843124903985660963456229720133511954106641662138612405331379569725919746172518719466454676318713389287684699523428875007328716754208759640798170084460250915080569488147537356869747485049239207030360696634765742227984032435115184311026793515282727226917581299284011615141204920103404080996492347558343184721114025548853026004086810807235791351460045456368293597813529711491539787122430803908512502079872684490737287233185947263104184433380662608322765412255446276255381874712480697322134103406793963391540555725852182808476880769236885912063644014801351817969244946412605948282954080233442403340358958715452122185017228190729871788379697649854518535514735094937075923081364805191519186317622383932966594743721896745764007968642776723701454962355197791378036801158050180496130502856412729852397059938303011078679355007870694972965469528434116399951575266620248400445378355861854874140716703170041933041576525606945730680484594196710411846948252265872679518548858141251952423867685294270402364151916089766319052676688323173967322586526293918216663860493882252861330246224330577974130930922607367957449233514860726583547235772992927741223270463614795624502297767597886704832276487874959730436573758164846061193852068448725091763794747158319337438296562951625187828807743974080687870802525274821511460513438055141264852873821261270266543609695741314422345198945262696387988131163870753824322863033247082657629666484380048816657318358616529208167266716214337715118841390971967733584938871293583234404011101559297030627706213122681693663880018017247868467831808860670615473361977746174291035052824569197268967765794344132811243816129101028042353151448938848168342028513065027296533700442845980696729563645722786761173498202891307630900908131278644545739106249139097804071327490757202679327139616103376327543638025898108938182590032721480699174191671134507152759587972393097558438247563256761231865383487586150176769217082884421321619676233032731547911583723787131343132931141321251418232379334070552428880832798005500915775628717120700449003434295116629074549700561942118663149763160540906063560038476911637830552276755706494419316750226251827954697869391732678769892774510353587788923049184138241080842412911910432765748341544624906518299038163948425462138325580520289120881177420386675068147642882675616084695697500547225461731711011014852321062497353365810200658448967096979439536810205421688979852076462866448355618584776371211392395268379186216690718448578966420898794446042175756923826968099109490692483896136054081581570338779760281444760570593934930034524756478879639458761008577975682985251202664816318683874868293516412654074734721168991354808579398793340921080706777575115466955392151943441740990475007167048804392012020889720513390452503613546002296386922162944543658320912988419043472241952573039551339092331643168071405328010120536330971753596699694467755117698625797490975192806613119548980132361507308390673130155895180127588752759558697814734554752032839972679036450605434673398294738314978196451502136758211076811682997440354821992241144504477181537222902428979395358682204491444626784838431165083528892478121235455254735582673058316469222249803138402370713405216750159007867927105872775126261463382211104733836901738171423862976309209899435980911047628391696162961018213446030400928513558912136844555364070324889589936289717675497505770088194054266386844060964488897723438779426563388603381001774166274327391837646282436844485424583135489668862471905357597171093250928562067271861897611571439296627921854030434870860646179729400749458814035066785027268047319147081621039361038096893004296814086624441376077308570429720922678266538664063485229227141688040664608298799158463892878216759308331231771794721900002276573958543698818725151255105953029583960874356754043386558517527950720011522587816834702589938016822612369050083551241040170194876149155853332178983221909624520656816696086183116568684034186065399553174870892602033824120411218185734066156899295821598010299178065298628339688304762943964193012577184141140555817218200743538118847520349138192338327190944458287030792033250458707823682208159175020981109322545950701643378413582140330869687016276817046675560928319152742930919713076882919024826178828746793260886968377859854568985764755215675794944159345397235418334869791273976662963448357966232829675858922577117232311396857788322370899414332174877807987818449298888231597609512836999082323140494682714559818950936151291150349730050429781248444240498804026613295388663154027347567420759642812900482046197234630216433308849711266822834714399065965041545872348946815076143186742288124422532117882484607916915594884994976209774362716031355827828746811086074089304252434197261096111953646457681268528193651097609553244767452990938608517144073250847082987016731735415960833610537269885829152156688018751777439785770828426027548633033553540884517795616559800796792092354816370566147200299691603226285689741365441838455764370815928163768521369965556422084164910974044732593480626769969377711852551073331989650675805497153583176310922560344822752155208379696618782517213150255764392393574888948267632514307579705003892402200638922998838010120281742172199196180886500025961805194147119941482482935302935445087458695810307469642674121269269223424933616671103188110151469901579583645278674394653527832767203731346899537114159287187989820711158772843871887800680342416572087670849727282816312670763084503872400230314300619082990852619377478067730079874560352591474303532861024679505283853500305402460520000080079741160590051040002427715154052499825515554346823157052684689149492081324310510215344983106708412927316981778686042325122211366221077537330404813771935804769984243935189333293097083365634341428841368100316792777477377873109615524492330747593338138794842810942923720195034619382871478229195621619811045497285093407072230498025127082034281565335947205567541574830262128654034562053615270013640464021861932571032120285575650738354483034505587806015391840244738823535248610920849941019575157477812276012844793782642389138887026708506693420907442225487019282694940506170898703717035520685920318430785700475240378435516294081990623346476525805150594588291811282875142762680062102612339406596192241359955108505852483537056244207862479697195451571971096793612991123515452525003202577760126653572506302141879968550349602137267933766314062167180448007215625819896587678013268828915418486933493711468299822573556649588322450774507259324448364078584440348695649320158405603439053432355166127973429419403993814812482346723572479279126222590858432330283533641414765441749544060240551945678007917724418795082926164889773121049019776260528671310980147324881085141946517553573182459696011588569881757320927186463412628479020715363643560129939886366867278714870438708932088931302646263620904695782521530800541974912438969818887749923744513099073586644927642634327605110218700201958080641736653283373556884368077661452751808750303106726243592646034812863974557205142026203847464206156032029060202088156802887181416668602619069422810197736547781517940652435454189644644165392185974364388588146655151618462552888394141477705439255673409773718118841387796716375545561948833010641966472984580917053076860141099355099063594577159017301997187867703607863622378818349522501099996417068831985572809281062652707852228746528812636114673740310985901487449893827707046834109319675504741925806570974821494191627758737453997686715092346118310127197236517985394169634733619484455126006180898480461981644185000986181573180269042461904746532990960764483475399957729240186268691006907288253578423208074503592829894939776766554224405766973231971826581745685995164695099115729756554250334822259657892610148776037008994138921939250909430828126566620615307192304992761260608440791537843785493521314933146706477939665807333121278764159549810220955531757748137700410723461384778030731018871458023182642378847001747469070715960832846552706479620963725469281642240551883785065163816590900910022628547422430249627361414248502447487373957703794960413444792147709183941498403039350353532956116466573094837130726553001799681913772552092181258397857641771160835333140268850116123691018509031585140929592567349881866494107147092531306562986846285796957523512429249537788339103368656828954926853340021638072336014561188127421554220123815928941799833777338924825987019650555946763998479316462141558794381677868462771940760878848727245765554243086303311115882310745949527341865737118025345876217372066452395196128326989580547081421773441950487339773775437951033061915735025969981207883364912101669612626603481018766674541298379414302239807826177630435215224766853246000512537320949119955275790594698826764884436131166687522813235285082363651962193750325528093306617818054374113714439878013960574437487035667625693271806607070194632226936618635659071837598916100622060501131787103761569450727462373605511046926781265861528986872116372144886092563190056246668885934183345718710049286161319173923413533620610474084707089143164484561158676357406166089070936776426283261203274191201717943931626096803713619884509978127132505834569726971294504471447801055372655764394945940719974804054501593245837200189584277621161543344822768887323905291427256736861603969376289149103731137982131246801197851017791026758816781670875162256453394881296675077406190375804337021808195346247447035066294464895548139319922510799115934520534691341151883670263772294893057495553907446789447497095702881916106640843599149592253844343721052805171593387024665420365390834664714628642947351827249125456408529480317623996187173108558409225434962552288736644491551913598264171071535837901798456345881686732938299759857519235095167913618509264830651634173672767213645696383009137455147735204278549802526754750948364602228716504105923854164879835454294528825257158492215879674554605257129615234826305257577345793126480961764038236005801290676714769347043952363207304450636543239985090796446209629384926754752040954935971514081870178832950526750389429154526784678236020233022649319357898782409147456379835698617623249315166305022741959913986692061914583878810629808752536905022937502039094827767144960981085628888101274263029481938801100154303146033869002705898223675104444359150851338140281243338863362209705552450526202827620510393584162549684047188250149754049831939351820008758328914125231673888651516731782821579795163734061720270672319463174063301578501539555776867511484709880330286257987085132277202587786529529682879488890664295065150654232600080288127783893267427029628096446156796934216857264209584197476266814824932201396177723586914086784732370626885889057910350254301158020205749425632345764503789450087015800790296669057545020049022385486965589478663449341282389395013070383742281006235889522611944716530619651441338479098417824158614027911427699828904036566960099271525714915353250134170151273159445150931059115622017635966402321020372213746470567169129516419973055821114448990463163394584406008930875020940776104885840839602113298339574975089290482266162324177944346945682003092154553313438617119543747539227259121959071631628190586328490470270973007291159084253885022823577199366488510803610723659597678362034297739869767040352586500106335976669489443232316461410355077354132227019301907033637998461991107590172780247655188008178597457259791194778341212016136124984125735504397486811762342507709889200015892413526212171533558960794788460503889576126005488220726575974789904361517822788286291994710564506772612095138385453909453914589693617442105180937160143194752713764381983354563957117951609869943336721573299607415000689048405428832397792160751304276707070142179758577036143468214331453621365212768718551358303940934335579055381348040448302114786132576174688899613238765437817309111039094172860477280513398990170745418858214170073420804991770517358739288476516112558407135117399139299941024078338555822611360786024428340231489834972367476952000671413543101094080042771726703599841196250779680854216819529266989524760361755789259980713859837695254510518436892626901426457881018302443553938621577300904838922194021477107253907591872090742815763067740330208230828655925634175315218200594438668109203152652628556950241654970066630662942247212572644353843507424412403235360629882052657883184934134979924620294233976190320928264794483726187134721266739804360880093468686346830964922323779892635364996081363742646791842198893493298487216702923350766594656411570615060606792578682203114185516733285267917014405864721566110083439539983533400118906585882439608443265110010981113340700642124613127607011177904951444662849474256817223452303228068213677910707384568933729333453023444245348544993223121862480311488903542268489865035726091400634675170477869796087372889597905477928978102386103104392126945529103874561777136296130861936352748266854966437438291450715787345278872201907116732638396754568155275759201618452140676280189953053522389379852293386469416942954246294502173826945679955568092833195520375500844989455942065916899262131551550609172946938490662289246312765031974666479071141288054495645712266520205979026056249097812808669757207766323710162467458757891821215721027137731924152780948468867309566248664263688945969376746783149484343104126427816750504349161358499971225034131498825679935322725799025017925675260945869560297175568762146647773415850445402376040052744361325065080609538543357431417086729031355754673853678145006916307760770904251493926304880800642249787241094408807302123950314972852970056721219320809648267550812919604311410686879223190638687939350584211448087252584466907783037323326662389282206125931861229930055534899550475435521644338447097826166773086291307960485274145231105525910506780860609887009294026554750506706625373679652453182135751578528277943517233993892417739022333333928365559755608187376556343330662542076614522996039593582812145229844082043112879175984545215850825033162045935235905290808238640056909063345630357549887625438726791157784475797938505948061591742139261093182247928454910254575334158208602331007543462842531975696473720442676520551821236945639057256358569531102444234317446234771414413425951558225114652769861279671961443594648482222921074830136734147087911843633082568357243952204675295654288922818774791824050871644632384411069651001116129013424570564608617760707441127669460895202076522094798532738150476815576562467631236870913032141655188730544632156241891046182741430729058399388385757764403861352970844180387440999978261519576266731954610135051280967884853050281702478745423435219313567562403094898769022868168040555188116423695958767044139716420803948589923894301549931986083790389947836828907589830148480515122298609613238748649448940607216501383187012046530450570815179479273651143978817186269704792215070769903333623609226838564144602560070143819298551192780371378015614431454068278519791771368992149831131253578398990545504331434219093757602651871497985311701581101838237065788327668205522591982080852080741306294989264121765387154200511151593572239026873850593127270881697458923315547487671801441861694997467984561393522518223683472044114600388737676675791564908460771093911829018497567986392349787087691841687540737056935288525802626051871932016021921189597974150469372939221081700292935400818326076601021907468405784140994774197978263829728569875858693644500439464580429138798418890772759183044620919105182239654575605834905572844223237741833848136674602741717406689812277819349191228356684560778550812413330662207787509946597632652863575128045239726094387107785079358101612192378651558256615347215878996370350499588890898349382605281319767415236273028409169867672307778605519368206118804380658167870796058169045691413481044515451729691550936378511188337664716126047776759713573821121352376087718399579976520550401893350131211142304431007858002270252079879942103708102893637593778955971179064809015883880037160924639960457299170721366775882519258817552824196118228078275994784160414191531602605497298236387731928362861782068038687720098438897117885691887322416194147394865264298981057886464429255469467326968869470929945466518459515022070946619097953240786934153041487884180942947407760259641826447878456436330930909755232015931930528290145430377517824832358851916820824015359510987660738124637882933009347471569220699006153629984315103884307952204713204825844233863960526923221320695786619090247639156422677330916316297627926349110561802226245482804419307551475113908011510333212861999026626723593048541199919826860530841965835542086381848795396687010119562682042061807134644940595477729657391556415612402056103990019411011748779230595460293679964020892667949941152617497273587666099358418940584940947996479410969959280467729029171292679225432388202805852580169277768637372071004366365982781576717303866658145573680800855154846943205895897642261746857879856994561368292285669079224543673463151999517740277922878713283706071860244781350415597893253110597516573827968140553076778271213841135899774735374599034813746961969082067973511334345252898285940629826635262780970488902184026684240710693414532779893057993749920860004744329333523159232518492886023337366282074854534948246775568759342022180659587303728238571201077775567034150187658553945360704013703126376836014924644265357440238786746158671620504253642707400315531415731912359343256073209380695493556749143293012645326005378574858162030890798503504818005144044252607691353847585277461668479689852588897253289596525675179465058560758402835411399662227145853298653085286015054455295639176634388764374698697807381928660256400751243323356962335012781361270001827522345060490426144366863554147892647271916492535415270005781737194593641566477530547404179695157836675771915024157301514710985782408584098300511414409582526490635166617308775178038270752864658826697329202421487732174370683390562740432896327061340233297652715850333540104827678577501107499304741556030350841981699459281888651264231470609549470654761113749547100346661847578274357771171841255721272912265584361303882187709193926981915572545684639167027799332279572949236708788943278774524518897977401520318830018270389534742243584428563184883198559566828707885895240489968592462198264896326789091395160464780662917718882559202488920432943911372534588987552896729069441766151900810701958765847375049097266615918769806521084149558203229129969404671960095372347745253415647175798651837903729128328842678138193242686965290207353291924664991696677263160327005887356945594652744002651558283868718203026589989909978351492297771697558816713435777696444445476636051419960745378496271970642668781921470900240046779709636845184405286518463228244307195308475792019654763110389816150444009310477616523684180479943576785905942002572552714433406780678806099622693398065271212559078042949130167237183163938299071046372152785211315939070939804586434565051462747055417069336172047037452702138663054130770668311018027683853498498217184401912742196233987253891033176380947531061890131574344193233723145460773582044323691408654539843494509311183715346163487307539667577965949356704690808244056411464085287578417127659741117769669151411871495806049257396311705642453425033620173500835455935293911808432085998641745133794980584019638710208451480091022377660208500384173534014908772342101041099260201269822799321557841895267514011611958209509641030517413599914444654519444450044641558107943758350719587190064570233490773360320505170020305943216715422783981820752130512200896233381266384446138405211428700541211001243640277239157617557859781527971808684023287571795193485409737422577456075866696453556676152442176391293491674192021937504790924330612629670587827169339728133023751701716993232226206213694080388930337510949874113122358733760654325641936995623439898432099199932926074306789401620535062314201941380029982985336877350246280598423751147244347187488865561650562569470800412073003963876630662604713382314100231300940896841464783636414995817281526989640941313625428507525956423427118673084482861031459211628930016168103725840122883855524282993901128067962570364423648468783252567078176597211684394838925868604859716701129895037462547025979667962706502962480572780930147374697682083974680077156980799317511293181452953804661381100662508598165125293661265161076327425256354992717061886416073556649596737874940257236763473503397851225704220837490811813155153753219157378079369172386012672825439546556945214516974282821774930599652864852141683719658047323648188144918132622323621701227057479925218601038367459560821352473613869449374438329269179537995966024235781026346471812247178581574214934207897114654495542018362069320785603129017199397456622409841600269516738707431765559258923370320560071699256351198992901141042707595744595868952016795061336032406711379937408685526315261443343513826545806731130697466609594161889179634077694842223723086259838005981209454642897934254836116742074037068559223793708248337198508936813141485575560594026412921067487843228240324498923400769703994142575472360457298387893213572945032795219579798080717631077962631912653721022346771791750272074773690226840040534413726985427653717025615909013682314747989313515142626275079132662867669035322469024494780461569748912258808375053720509511320298620480665673795371327917691699624741848172617722689823248011761751273021831902263788717394990908382537757161793590910229197991087534804364933067112939276390296793450742309991685896576768272215312874887558534533150951766296011216730415719962010100958598878606247818514781045870115501227182013678806571854492623089961934631957454205169209094672174829240179202498266846960196407598992567473905753153653596642782774310601643321074446621018198008680110355931811741183771227672013715988717523438187052057992438660081037006056478508261023126463133781778427892097018994959396104732900633944495595373363842348894281124347071267466614935908183194132765736558539208547367923163430226718391584214262696025728665304006787811106370644269602751533841707117485628169329610358947527373108441888964114320145321034279249976320544893231242558589179766378626095874562463165459616494405782461511615246107200204956038582869557227287656949171490709015657007730527030462557011778765409292708687427765459057760450139425222485670953225476824158182711325500991957543082876367949181818603301163085700026242821871524762065751729277234003241992958128034040096532989830589125464095481900701158926659743231309818281255956709167109479549143253963037628150963788934062527689715618760324445409392863125192892613919071711367685924786625460275212639336443545405177358101981744938175613316482269057442132036523316177087714472195529130513365713279223026299836519680983954932744750600546132849657948633807872011017167901623198342196966408699621951623204812983423322525294867712338301268961126411156319977992246064475733669995929819437205563105359165433570854711882386198796368846185780579661930322245212026694165581648427226733593468957909186002147803548830444252469883288164205574118694530079802961222183043431122666855803384562517524805108335174131947501097345855711327387495127289569170127948249949993795965268654546911736163404698326278786494413971112987223511976412334706135174710349108380792369989285956605959041662530055267536160578513026366061933052850551613893750772321270377124546581293232399114593880797568415302135045818439829206813760863530096835524215760810295693477041040696257635473038570210822652005727647273249632438140912892575871919836764528028756221588321588196336918820455589252277098798316509763523265434692726498703100161707811016732082010877459540601085967666880073628911577820176195315118264866294235618333992403333913770109223632133566400774286411174309812256256724056407763014606525595710700561700870044347555041014271958691823722626832428971753294589263820387144204354072411824373667782877786201040343078416932359299632879899014440738018230957246692898736307346240656333502997406575488886198502044618042326415934124298055892874374543150313648357250677010595878394853107179110253967408077393861313432126045773521134103409116151877969118961324632450841734990718457562330145883518773928094939353929964761522341855847886939995825156487715290166688359458740935390698367433442946446852939699954703021603042873570015087837502227022834580516415123230350848769035231157618052730329015078066493291578381022237731610445583492988020638734154320771124946252677746567623466242134381524391384994059545976988491382969766188093169791314307415346984998640716786344211851040194279700170290259803213312192993458630211745756128442032299677764186217724679162388149064800355030502408458006098112318529332857436837910180398307387088943438490631837120221003817152521589881645000122558962950974594059849332985019880591915772906942128520365572705553765500437270993794447392914375718081711535564834093828658254927115484802521560585771325462499396469827240445972684904459280127189542368853751148379979176892460853668049969948169309881323485445003777690865561206696304799654518558272200885147469893835491391175838178414701965138447880852142952408904953119987329543457729853657522505905051092704652814008263260516366370684640703835175464174663386688301329671913584254788661711958350193461985487655500888536938710249227008285605917498848285461622245846540783976773642822072310945010085449227385037297254808199624652871833209964644449989445866276698003846078424846934284264305601848704603904544033516606839793862973507796134084570721173226860092892871804298325972363358408751898129244609856287060998162063597690328744908715087326131834644170882792823741490091919178314102573630587541070116651810779188766477136960794570419416214457105662455058020953949390983892971490283817079982315499813604046115693781376308231861310649892753861408425161132709638196967672278806535437777149352072909596805318577126893441093581920079970124160605786470369991529734020685055648069210041216922698285372193638840569023006636207295075425874151394864122896521829815211804222374992962638329525823046738807511823976666706334311723489340075729470088659569463655024561980023959351876968294277659272202939007950942028809338046504762785540244447955859027933385123807224341804716813143127520241503377455628106335469816191293400570594897331062688066413437633510587150582053734761988477143506221897970476641557677171086554236728905483038129814758498535441663721904789512035549446302102415087204929451368459554401437951817716874985807745525175004986955465308995356920869231237141696163627360410649339824955476871869249815793995870745055046590349124607884716650244813333063546144422160946790904720876147505045353789620181809759051466686801505279720440568479152867725443271703484907241597380001525968399641983285505982611098666510714106089025160682653702960129879267692820202400414247059729198691329109404182771296847515510297349491178585176804794663373391051351577022352040399341840782266310945261028007457724461073181688606094568277026289701665333438672673988322953219512568667630617737440567009868395196492091872409033424902832414434983251288604750711289141882384778454712929122074615660777232542769329643560465741317642419452177710351810667624369940010013772306664362695685459274042786966220517148343585165375321536419252220581330711411559218790720175103810648116029606999080418357001580124414197510778133772939133149874612317197430159385037158454750975672885650588696419978683776127043735019401268167837847694888116383620321728960596764811034640656364661892412986220263028266414701346873313204837195979587032298014694862420406245071967291511362458149827980048296027614086015741125883433521241898282592020675956042326242229470591802822502531870117168800183626980428369629284426691777714727641032339499183517991909913549723737242310967738031368469613860403853592648716937901212354663422942039249040790260144495925709204940449997758279490851593885320253729153788253916703038664678755854524483212278542429893662471659219512533600845548988943549032388416988673781671468328887415021917600620528539383034504178302236646568202674070595799366166249956062477986956358436626811118195938943868909264862602588867568233449085757246988970637987668871322305015256227992046159313106782103830976119524638592487854595108340613214454083336293295822808402636345033969225995835831343986127461705820427925560125257603032191462286250720269356258895042856520003915362742517496541833202015284121290591762842394995805138262637290412608244310997127761636875659207597740984215655100487190232113262858626741057249193375075306087081211078304294389876150146162339521973291549804303091522782811236833716125498936987152581676277369156519984413393696011255771169814273930189424533686217485194697136174166521919183516966503028899668664185145246192989913047741592743003271605140251767321018624279137164629002171997812201919869390759808981013394279271078753872895599809884974046093603257150330980306986549448151579858359637544674418081472098491296918957771415208266141013279003541159855491326316734691966504720569371687396579586541428476944602489019933782657571622522344103220129585774772213427041459915584543369648400526539727064748812843328264807239090048889418752776649749930225662678652382918990603106057706593842635658398287328143368973045608215776671648969401564738375349128892939100597168918256171381842451840140391809605555752157388168455494164488200740435512354241166867019176105462663570663759488330349746511473368395576155340034191993340413112728719838427023177893137494594090946638659487703810762814577733899347099990331297538571137436174256180791404730174031950069148219842356715773736516371166783933445016772236815150305972469552260129691514968232637164373561380988843569094575284924624571192182941226691954255129118023616335108086692609191290509633822827153188003795838575897943018246733690440193946720807246339507271723565072687938303103999308277774838748771612626438028726167924750695220804891546351869126326779501548660479638583448174726260349409178001155939798885007330244444687068638591453736438132930621680086692937385052081324188249937975349222279810096033783546114166083664607482258747227967866706092808224793756994188965703967825379130005780188511481734127346507710878138009571805609875163190008784299392973250207654471668303381939480617658320981803335908838231423456025984677336284643474958748788052036345785063089222798298157417712926600512467852966601469011041527928029408821664278527901901718825777649170829186248736461081875879903337039667267712964476715259206615641145521278417678809957293584091833862062758363778455784425245878614308206725026729355592261274341714362336178766023441917983455600826410666193322762058801490158801544719985522133307197025549902284213439481807009737371329147689210109893683215941356095839783961608392629599910238520907096199905810958046800422407059297219854911357998830588464541243528648860392222165078016692314388254241925386907831880923379696621084863552307985763034344564634176148109560346360734428074333401480504373851125828239796982157842383850634268170414492932422389113184082306916581447383926594749719136955446647466922129022686994141945974109430585319813334479038519469720075893147102264607447627687853642941258280460054521012397789002322870329991149244012620329331513589084939443182893473055853481849518022362286912032263484810860843691499091382890084798028635918920781561623963027215513205359335816800384109906254401153138373404107894060976057838089039638166440362628014442800747833169137743615091457490939182389514437006114351069609285713468546724093919495610047408408809563560179803334630522850177702233576672374239823123380272208786179064007881617911544237918878166262362215373676192883164987741567316057564091494626980275259657993699201489430126768803051338141754143413652171923491005724450442961207821997748571745617340236595629010382815157131050064191172380259742446041829224090608826192532443306823243817607486123422761662709819655804575408552089910620896564890835784883108948965049634773198805810379617811878178514919819238107557994286589482546914471104639093372302679944521765145840837594608769825706764285981628934939524603948512204277054057507072251695917839920265075537948340465995686389324081646270860541998031984984856111176566049066797109896843112677282781996997704196907060146186201219658299235398390895983112129480386715839527630189776072042941655970186188476670719965749435167163848449693695731270769441945533573258315193824058044111297734684035251832879955668296777323742720582492943866550711095486461943720717674402237589343108571497555304495165195197823170910244657291782572115445568516621709385092485998793813709523301203899905528546423914937988757948233204225874160184015698377618498905872299853325169837468139492804001781010790056932856132412056099991583280822049780613474349141674636655223131983453983044661749710393735257253372585894559101361259557569926813379645777953057447599963949057243549970200887211224364265151780336668527904346384122611998270188222868059260257371092056901809694403217810180986957659644833106589944878321326102516288933118690394325663017068494251596643380783561725501215344478282114879723427127345790365788024987172809167003661667498458114440729495167604863722635911918224257201946117444060871869999582459849909620979727621003936555150846790154028752138509294247672073878725363500481776360978979017065724863819439812205537046468173823132270127024344004830048649191011922295439697330259019715934488104491991838072395797514854514454689334809630497648336464209804557539407909553839248838646616340695011027874173065587637273242857772601490149301045728226565357205342125555539308272691518991379091964726925271653318048054489176800343347900344569307443327158514946285532082604560834227112240177818041042560999971229026371937153996228129753756794715116334200070373654963104791369254281225684682519233551253641288480300084176498363575807622635705883438129298789636885545043308200643830855069991859350380899497805780006236254324220665387009444953333196832152709329504366917023811500469847050682862653891982833293477738462845707091479560549758121533945378077618367044914394768270850966182240065807045936593423868628614126898944910229222648855525549946929011835209547233423548195712833121592561191673455153879910428651938679277727924933158256415038468695702899711789752365212314372638149017045799356851156727672314842994542058612287244291427159471301668430543325399942619892676588035956009448525075718508793686790016897477296282571267181987426030697363107772351650888421552964728509964956668733073455927850990612578161308784263727182732866538233366748096655534492853465535343066600173765762848400100393605386305203086780884459263287127826131904010792122431405024841897307543486544337114611621901551605659989731410000228387172057116072590539464552260282401365037457369790749253305658820125733103447961976522474006547245820187676580351482461841111935510476145442658829951625947586395160958212378722612829334372899026399254387237791877134150495442875291004126471937028282856458300224696752828158370349732034713791663730976315172291303525950425831169852168123502507784990198093116089399049019035232925291755702269849315448625482717561501138431897097275226146318696386661001485639292833129564120247141262008791271834207640859425913838725125870216215656988530906724792357724710811283132793604486126476248993731675013048026168926546501986203576694436129590867800495082740858518309433146237561598770445140319800753277652007045737257317814945550202299245833845942807984002408004060961342766319872987301945980122570190230905280373674384573705847394369336521162812371295455025784869687512280623178479812579513841000503068805417587415379274524708949965197380501027058380266614892323217437349979948822165894722344989772620953153668343488005495129832996258604591549278788994634242099598838373463420337734779567910776071439332240239255395797592572358249005251830434144904130971897145467443188245618132588700040200220177575598487809641652905917622060883531274662508962853092848081463894684626507921905088074767596222507921790635079249641055244236817874166785087022027440218099609153929517846895678595287444364235011023889251566800540348813605161597671266008591568069369251511946982452596613348262260435824350354849830621742425554544888313161084801204697862885484546013392547422046370711658977312765834262195724618797086038979492701226861924922336736437958139861956479761752558260775164731384501838833130765220464420549353192409343165051178301844636257125506863783164930565088918653201351695256387194181732563824685308869767560493822181049022115653754485737682066938472046477686172715597819901415166956518300312641503783666103444349947993056157919439412294846806118367895263311681884888700693331288254754041407651605185692884428774059132013636308604106431022954895333036112466170057634225085965677602891014987536301990153762373935950023641969241378833373791781497994846291826828204224634165719692587249986427300287990044416461915926008588797255626367383309087265646448429257153150826876199023312224733871847231960015890622618260694567085863855098240547314882280543536596837357803718199199356560523084900837521574366517945790167911864766471237548484333319439893861022279910516608987233634199440528094792163731223144447298295687088167150331764135827513976158047002647255457375975720424056903637519394051326925218736732368203708531688146951603296127196769736136625815332429970162765897357145157399854591696582808159908322999222404462320769642760749846067477512993162492189127791600702190154369974993367961738397455531614065552510925553354172042810607581913166606999919912423158523585643164610252625741182728831105203770535555918020637244635936126024739752082792238839889415832580142948850790492832594784391055275508801720807554974382040442089763473137263188226099762533307128704455389162469675850555604496305778092225470178055364705091010549540114200250044687999632203199782036343194181495626715262177971971938260664214132549812960305090720745082797276303637911855668650228130577382293285191366114010597988576618809067817752823627988117105634326519726834880563867407286891975682819050790115491228684800511972957029895223553603625993049353213181017118639427116288813040330591693922104845834296228342077765494882053271825695269246440637551083477500953420451761317637457085392215932285933547410473344504425858042654468737943050147094488657269783653499439704696813856728143637003316284226134104023957959914871199920851533750248964465035818303041619344921350321329529085492924271556856608875052896630713133982461993166964008501894169568715416338615131621016084593146732834402074513779187475654931155184683263399142195976917478155601026376595744795052339818445317412210135705246355750104878899689878842569308418753168567976700384733438320540273540187048305372621318544784633910352586665582880094085830758737331017822365014016898728507034467800726380466456008009801175205090073519175010146563265139967425761415082518145308632517855364463366471514302104944500879041669370084346107237982439194170219805780680370503084458508457924093125502448195289527741946755509360494209623686989211134365842675499373708363870217911770659219739567190949090070000881476206430566186952798035419402150266891572115039932198940674543115896317321504583943251565533032240136230060874228409987932695020124007513917005959973368289519239472423490260241121253533316619340087812757826531893667771032281787891858124543354166308651915478123798346161451369212056441408132118906994000477886977365332300837758741114176663015531736689791721039942827798288329670724689184685492018912677340947672421218838834586151649752048224981121303157930380499468212090792186594195178281580988214905209577088722910662856696630115426494545797984540405733754063665095906577853170732283351441096892045913970032689419060598916462121101612549894672952191976980749299896049389637166046170510483882519136157668899849934355265710247422310698269276391012000879455054123183120685194767217631792233222087751755552042616591760681705374600892322114226291407611292262642664975533302057772436497443450064480691345895880233382670612573742512478778569009444383716507605263174063408939559409413933367312708679642883770154343198518568891286722198804774242310222124037438285915228920707876705028031714250735070885384358085083040294617268533379642493374908037052394709329109299722586826352120685113015324281780903315961439031725054208170526778770496987348260321688707927939479258454189876306225375671001111160063799984433579955633472149116200076756734098688293746005785435741740425546871546267417945839586459339869586793790998245985752482692448115808912250919689057685935338434732062458634065234384218535101825429717735636770888651218080567382845263880459056170860035483798518627148621220973491204383539450124704298591402202312103789934854816786902860760304971889049347256729601695466678438555273121627137306730952656943815699051873308028070762856974813607304101731470526981450441058752281519874135646601260263309178675186807937329338219239365899860412236091264800352336472094131327460857928699431411807221128463943860860422291318112306952868003438221557835067469427304605914885061528610871038197678607972777487608500279713458189017842134525248131291848355546368790895033128757934128803205251304049058479045365504030879122801039712808881501083456177758739477108051368324381001942515582206292305284988204739233708421323770967039802574303074690653628541324168820567157240432555295466105260471438386136637135277594465962166905487340263838673103698560673728214289935533167507609853719422542798545551878013853562643694157252444234086104400231248745539024652399963510191262766660692622049390935099649662666770990758245204761500525781759058640782576783717739356165039381134879396665915800449330683383554646028802727438597714182529798326554303237750721544108837663836777750475240103856109831942180817504052081875222615794552831490683953055422739286285721990015241890623851874320711568860726464436265611271905534065956473383532238936848243801878884093148307549009459091874176150039258977730530903774665762537541619389002531524963463385334536046217825874020135177179331902128384751124628369040095632853800397234500368956537617735873811724783424679265882356850381288002038713810526165600385129341590328842770606526957448815337891386309065420569594392993427017368075008491575171599545756031876817392600380644621496120848623116324791504186234447590996204483218167350548372589901740923579947053815134193766678404748919218244838470191511686026354128641013469737495539522597388792448866033424372066298837176029119550456824415170542709097073275511719193640982413969235831197212135784643188212050851601608681179977511505409264381060250058623379095433113321122752004964140474379210718229008284302768234327584472604557322534360376870081292802259643276887661622446154872110604547263240295408980960620032193210973579596700109365767373802512600950175159403025283122107191963683984050085310884610575776146619503003228782964192782122316724651970683652374727986212616187839020545528318093231266429443898781862543497585594470884266920360903516663824290579290158841818415238775240656149339764241082322790450236424793490275580091917582630979813101295751965034007246376397593933204842285059373956461993840694025320063530178637199948183184362950284010009031114141999824644829505027247284045725800342239320006821854462255908539303592359088936354424409343528777527483356196669513173473561060039808461522838219118752113948597513669173813479109370927679328196622090848317280676240715733372653113707886537599677226777306839407729976328163815822368316264651343964636793994573236556909713917721563850527695629145168984796982781371585068497367458905936742183496519719442795090718192023830028629053223982887949172743499571895900303168740920242632807825653131486435565173190710428156497615909012348119148693380190315212293134567099667596807611036950470262968566847843973709344290950555504176276508084378790740950790651300238606926134207085444156704056629128884277045303296396036445918610538635287456417599958749990181837011430385788470075074727476732399295055223863214267997190818874027321531466431884275674986430388651583137824181328140286703673120547670265900426813773559636663345209297192843422430661516131519449959261319660195458263658435747727028527451736842669046845392221172901612482350847050640781151878339908939773296217544824948190763710558462639156172293075926991295219331551762822874730581219786332727585902381196663550663031639614372166917702832010750684746130531960245775185601659358796915892339765750275846685862420507660919371981184614558663975825402592726017015080333823675135862792265476239227925000196792184776492584054667606749923217478200473880302510366327005091705406437696407047244314751538818891395303387447144613572970835902857409707740497426814118456294035942941663857213705587144600440667709883979955147492791326419370406045942450675828516472287868348582645452886112094655162572559346494541614747943144127389313977767557899693632698642200792807216936574501664948512929673598533667626778752452124946031867132885798050175811139429524124239023713337423344779065690801015937829484510061853219474372071209138932774655535890207561546602889826165532299686821696404240741644249915457444824104206798317362651456731249359420622367467184429663449204083514521145770455802443722207578199794577464461496756079602065910439913816861715879170586711393074058637269703654763651821544393518738764504964272444711649488513300048165876594254126519822361729700424284021470393542874222186133148954335306163231455071596117639039656469489310041212022524821872454872223184429979765337725745565477231768265749549629832479654802471733279485687970913460018886882662516386827690374054866893403425041397516060468374008304801229801229604090451863328772844483302886670893396301873098127239022091560670090834711728267747112911758781705913312571136690498587956531357343669370726315134084201054312962183767416833028598483630364653650018903148767325498781384665498237989290704605096358099755802716385819358330598259993859070528615387915348672079675170870171213778776590771551430948995758618581473859063711940975992078025683677308634146251364733176262417105977792530388819390423184104238483526567201263792117781220935279042913281962623772456894998007824298623641714143129687115350952753846609480047076706028537341564896165700227895321486730738910071656923016784168176530475958872893496074535345802029725990528170732261119406262464973669513449899342929533710557129379866555174012078250344239809167297245464912602870297622382254727067172298161621036104643610854628443581156492513380160142745226895725028457258319256483923876126493194555833513420715495454547923260777355656435260512062504321726898181373812198585476905207067207434883995222971841721847220225592256084987556220561154132732886411172207277960848217582796256280323710278364414777158693123222681150123055954108645978561606502586794479302157030557115468015277525584438358851000813885197681249499479470223437680312039456468305091022927235979500760553797497151284601838410350225873387324540568963447891102441153382531327342690395762752276990843842422755535322694256629417955627728073911094462581460651363135399117809418048629473929154799911560178190149126462079702466127559392033053649023235651980688684846608408025103234788294125157588155802631186071459434351459743221103542789820518221562330965744364994065194396529458160025047093910676214293154164842243442817672763566907407959808616969062630073243749057813276320829751744429011329702118497671175868099644055784190647555016098992723421696861266851969832126568208634248500130395669108449105496374035415927601652545832582799329184932677754884031337823056490576222108026378200075205543879529072174876876002188155201419611992719894045098184878565705275229366539806507095013453101215713791004977791606830147223737582648107791081440036615213771596089556476041249967713279957531488429216703583865112540269657588960432055181060252335033637823766466272057092440472919460909716646996864063816103087866056420441137906420992711958426880254449081293202994840909048226914864621848209648849074293558035141203178824867693087103983480452284896854788789803177189501521277825690538718970278993456747234420547674243422063731560901989573816128353494567743015088745989770470370602907939041401071699167914238010699697946483211581227673294237364290343707878855103608768882865604934786977956807282691697566327958771737247279012126089098151100270855315744599991263884105561375879077367957534529957512522003460488229731840853546273418685012661526631349829278999102127434028339851837991252905266022660950942350737337136225934111483777689856171550950781691978609715793910497092253441402908461275501970742363565005676275679095049890311588194958486544586156347605703378779851878703104546340673410868419753038400402817783368882130512497667257743582745117121432395170849003489586511177393027381904873167992805993972187826739653403577457417761042042412561899116424236173869571597672687997611008092050046539766280766595644778847578970294219678754294977847930940266722792765388968023381095833508918583396290599354101257191213528107492799099330462396355338468989886001990696109932000083600855237478594909341045606536432554829950475532584781160382295573147968088351656177082915749356933602318778302497270158959874383492917392356042078096041750820148620737307576115550292650892085012042294350770072607618403020362523190402704737795302512002996082173967792263420462542963640103621430124866589598231217131584055396964631231616778931490057785459244693668283691222674015190289864583227667833658373075238505625558637619809590963299702817033911685644502437836170869914483898073243775560774974437757513011263128246679402837520540958656480898126360357052042130380672684917247682579060975949680989890895426871968722039725125501569087215586838897230938041678084518325544052589390630611048518436210543429723847718797174908481668878125803099304173633602041148293860935825082510997541206913414674729988276347340144974109271252770412268286417826385160171049901995508847274170203099869057060823859289520715156922972058106212572589452576715809519694569100150519194532785000969759977399906814919463721735557596661427008041903951634595034931397184107974004101373204445086206076427830370410510845618986768151642485964542703819430669570467863149733954561996606687624091757153866946905943221675535997228638022060804371715137042692607539953759567229368827228412746850563082831264708676420992002085779819518771525154367972290793563789853412086420562318567019766919419002999727371029430965601819627119025354961614671433875024503579436606566258097729571056118438425724492496717009127174469847363065222649135621617520761879538435137716423200286628029228749458993420924376706565631564162646328129277874154014950097988647979570281206748456409319188315337886218521097355216533421292426371309919539397603884562110729394762189473556999269508021644251987559380308363947529995448131875606135839901310913352265427532376816236824129079916957524583452419201160876080832809947879728138668708778277143847301927562849998321865145558865809556750640694644782058360676297284740693898152905847597658670688093415435462393891138943129613094809541227684379101040986449994592648281667375502742044875747619666777997227256252097421420551131423193135677591893593602364876405817897190716333157312443916923015714085975425479818730182830463384414463522758222823262341342388817328448888787714623292253452004689692907362532307679871857801152323132284946487388200236530329373917574344140126363312891011905693402863775390255432602807203935825474808494336456558724085894167294797227995172564752370662858419333150489375884130766150914838021679914588420188988128719688563409197385321063493391437351203790679726808470772781710678363650235284070489571115168535609942397334005906842865067890809462669494782342689112302179017979310865401360141908709730677813033796639178059695517828107249641924102265297628526628455260497271795511256461735860292106679383886600805633545393377479792552563235542771091024477401313590688244710170336054276247902885219820880228846016082278061360500236929914058529222221486712495392037236427746531461810984581580049018661084278788391690014695187249119603682282283156064619264259269740999723361748148791585829579560037229937719300070022745606378980241540644722831410766067522097930954083546902918569924505591311925730386773045392410690786854238376116813622192581590340184560622644018732912974625845914420598734817602504815803650954961152448788202535505869845501779917069461231704841362992626133185428453281459625713239599397982254318458621292086804178927381024776112923153125348293369377737540293644079407647089880843885790882382296940579333075448043395173722811647233544708380735462499561631188799312814871511884504065517103087934560210677451240950991276953227019364355831332142757347714215627358756942170585804768778992372776972511774916417963655598646883113376277444838250400119089440071217704389483280460814352228696122027501671565318372551137286128241479089447580526720881120693061295612368668091201015240975330775837669977042164009442660913751053917033262005211008278874514517850925124881209695332068875839600001154093603520715768886281902506706732263168690772110224356461317093200577800764307665831676779079456513043617753033827626176901295158361000435633056293436485575924065707753825337919597417719610955203564175860986448763012980126477889731773551834290420898386148230842145157380321848580317906036251300400941459878373177462440798682697255849479980918734114280023546098647877450019778542414345544336478113983490331065175724052023365610156065398136961941403146790702232970714446908180475184048956125216866649170155991476357510909948022974744873394436575550012137369423471358096332543201039744964474335765455392164033288133792127197641108513063033427715249370902341102278600168177863092036366774841279491347454479731159373504350455770166243859328368067614545399960876714887500926936035091329090611484324759435232118168222970682066482308351650781107636224514026844924426338328440413148925975105669833800066269769734139130808400526785717154685177297330398323993211329463759403739702930124139369216184284575456678636177487854308899899475599559859659789691849761338094277652602206374345517877029908236742494778449202820933420073108455163542650577916460133459459464379532096635911896836673241900243117406889121858353953600624930731428657895852884555908661356350408739746289203733249498874478701715384903439130644160423951442127888405827424445563651650893731445544351616069773414320567141131119129860865842175485241865779649129693524064970073414856153762748040236784139854248615715663353752193805927168902917833446638107678960826227918933315675699086491126703418952921688578020880410149017047420476078998406082504773710509320268582375408120354764809858182399265832235595023016035142486792885173464027941155563325048253808359262214564220498886834224356720860615884194723969316005126296165166959376649027616648066320772909818602422164512724574597092696706807443899048671930479874343681435727227341662263267791673368370400594800192291628615961292992995876516061309968077911129192225792268992474454849203699891941207392870348016788517927323094259603824367108626872390861381326306305381001384685551743392119641342865123376324192655406172210680447625894583752787311392476841407755711609420105714250194054503494552847720670975271464157153841794541834543375477165634561619375344016516743342556246499498254039611020671653337867323556698973694771062931760498387264398120107013929477658766630089700901146288197350562786080633327366932129707519970411229380247679589749917422193253030733764192033073019413757636376799842777602584091650737696400930932277232173224820704645820207084176843777592905656687369379032885117006270063079405739058471592917772347556133205982229219350253166799443925522113072896795230848918190163109605953783040766268183154982972502993781803517672500915805578015686920926198836042168662448206460311395271222778909874802110405989680651135338105766680392896754692847528014219306408622756531421038220111040267191016545244806007416497637649772127680730463442538245523732833502320701961783262052464661065082632552265867608057576840377009718359384557298041071320072296405536024879599506663436339718314234383769535990814811528840211515501971377523735680803213980422337316651111307622715938388527436588622744712807707613590538109632938701908145580907744542294769553088419128147510155637273761041716311713430913902744192082406690922190846865007147682838655277131166683242473316412215149013715513233243289942418070131402487062200562360450347774364943413093493852364123210967712920646169130959766425226483047787181871324922056490123877740119737930817183350219565925015387766534817753359937447837317762075224237016160103745694495745785097715800427517686924723307462907123427851003364185393155458561020535133297190136563029724561551059304745979225193381315919346997973918222460259353792601588560854135730276934617589122876279080287935173196498203987571231990326194789935442218083635639256691269575429649516737639858255224383083770733580681125799065974817041779258287538909142803510891972346870021970189601692315885939770395871656681786321484879179859471851888099495509650909771291362653205046976735835593955078103383755626128665569976744751421644777300248203619343668156420732547774327590686692046891476716296559940168783303183388049529219909380226408682627473221683960814875759793303342587935108391516609130923372062146135538446409265727854344750914248906080536447604532392352972050662737421155441685311650274908968725865302746615186983607331336844316358924542997641020075383297629674552238582806259765750355625229119325386375399036516794489736730120598008118901831237287030708504051797582232600258697787602955773547776036658392527267467103036059588592292462052422902615987605428938137880471040910903909259108966451282476395129892828518511945809861539653501296778817821591127630282256451800489493380054503034114193833157391003241416007214736988037514691877868007977226993160597678453674966657626041479041521681905869340546936343161863106915523369008954262495803875744749506432734301992186519048210455385314486192765958836634659329665929060703936531902852134274584814582516057148989591644804197527977214029585036633301524563753769424720133330238526178882681026509145701706179550107678498510755401157886622405103140297962748630359439199637446000200056353375042100704242131825984841456937324169117821023077115814286699548292141022350328183898719594774360427762263667398345952278558285714651816715836157073620845477544651260987310143401905354361950609198141177399157946217958949932150865966951492196665783462149863683129484491830461282390942608487771494277394650182211406675705671011129825267706912032370708666342630184162965753403534652783717548936237139420964465628258881171143041371409643931485696964796958251376889795975300972060752268933708138812143883365363796518289950667419704316543118173585217121238232863028410677274862052751837532295056122978614926701765360561714469682586883301826645571826563620947569596262051810113443445228430578153902292491729429860584514604585533889248665226095118100152501475373156384083773324106892707270718452884523071502541909811772695400633542202361139704607453592303120448123607034524266275200821280476800523372560032977752887455598436062505597808950670074674617026327324792569792374359714109496149055270399432921258325716749935931562564663608088830021395325568694074451876354375455389356569123607323237671477778674826989919570439969877483748280648800934244692049343395831239264474154079830801807400698641046656370424396694519960521363720160109439611110867566825691641954534213810090720426479784177958913181815842105105093938598437145483960785910827491456898417673780163809546354291989105007025708474558106343023196976077326274491784513501484022833209696373388079258138217230516418506266568393365600988517727829069770893106924046071566333364670934941215193607924567818302919938634798793318433037071745789627192791743101937675214754126310657257321561611371627167239138113728669245157815249918059783071870314544983563851820662662283055125800229027532284953607147862179149207207317530523868826343475734421608303615394262622306584674650223705695487741706648003823511844321203050977890799212990607660862411597455901389977946835343853274974930431098345693566067890334098914693882057802594167016112071674778489331710587691865450293476826469033736185571784916537184243376660283069769503061984724100993695756676769396645922042252815774827228385554691737786709105959224886198151943936459294323434416019765273320759520517259590883479131785272434418283284698957496852357642075992286707898598444095635023770776136560819883063028571144851212037613305876180327428280010239094178140981840616808070941068187167605590546620458520408820577396195115368205449183681808378805126994989961138069583259524808917307545385132952606755443948207578434197765812373754507646176513988249368430084324158438026631378898257278775001896092682181154268334901199437839300149975291062082512599851281678702395739932518460323283066275254212270978963814255202755940519636381389015421663174026648574331825156391503629572175533422644898341037741669868274108388511654741380106527727993120960988652298038490314974269954464612901679858030021222722468997775679521560461163001818130169734163866131694129413544117817381690200516766113196239442652492334692025272048419539597782803811060960037059033162175703694424797513299993697948337756171895135752927520817812919187772599349958858951347327460446351714661181474825117873166228748146109865651915942339078550736450988604542366773339529663963981482509651392195672210063359255493041880712206188963393469904038794387697049312868992862287315322324482053862243993666225877325310441059682778495379146445103589178572562322688326417983322857813853918248715248662139216084415660659819358243279320925846518139890199341882381910197476823553164726582839831573969086821626384201605393186183741811166078967938518642366237668995629923530341730841561164302347758247652957963290841848013370865581335496867513998982187607054899745534821504127385904699582514378236560113626416106827404500091203498461977167277241103009171245562852487146035257223363818267275599454989706033467566359030230536933436297311085336991075422986229965229657462023567505527828203301540018479945963803971454890485885078054805646110425357091145076747290848836324177971936809593274123288039740644317742954733933806538693486579629600411367153056322078779638230031930563980491918509448397856477944949330088595770868855208111356512304481420240765502717411537975688859616901190886939993395066617054376791830790253080256520893541781435258782848763179792081022232102862395156022405920902248153195625458959322366090768451447364403462031855745027663841324813258875926442832704100011784912768643808324274453370028626672984727810847888147665012971023195424920359648252652729648758172270121532187267649194894289042091513062011437854324806064420946405452769220866232373226848472958127075596067489777973575755070637041961205249200868072738393634478560565349845391251181105471996363591372068757114983063378571072647568818206398689520012077578579999122175377144224605066919179630518055549247492060236201173071904573161984102697701226093928370757810321601034290110112637424335689247780208055335877239703439800273860791322174362616139554574301472118889629958213860379727574601031612045818142968540017101658735506738479932982788346347263062518516846517624665850015038011377102974596134406946175302655274281922327060452135859115114787809706099223837672106054916640349410609654750823121368093119387439666297993651181209415732828284867332702005421001488812925410040735419709440716227551478286003942786386590035364412848964194788423206929177357665990875021390815786649355243219660212737754716182826458279975704037735858353032325168789595558867324924997257390845963049525486823739384184904767985999056679572454519620393268625364316310487684517861213491439279348783292993613659177389542720731779783790064963852253908168260887419339881509627245850057720273212781217047470509294291589441010380561036223724193880980468881742405220548651068916684558338043488525611478962952402503134183611143277684353004392151956702929135563359598997080069476812637572386617482581914653964091628863059667268585782187086633684013859023263419187722063995072391809778188815174958411498819572843341415497754333435806137675912006823630594368880169553823203709349179872918142812129377628718119845218901816428891878209512495888271158042737257911867095929781513304048161537160043188056671791044503508702400217568220673911026645931174097549315946829673073359819494948634832434130283232316771541336769571186783604665655478630032388996616244008844091214690367240339245153428950445267922131571478143521584881446989704229332540789705371658742434852450803345505967390407428277573998304595849134396162309455243687974156905531201704517001740665244060704154611984113107345158891524120372416043535434748618036116453236124583981973045100892390276918230118232150965746581218726907256865538446817922108697825277652140677201071369539965800489773189726326411031898298866832576045959004752514612964924061360627748682201618625658723949569573845140167899470304608722197321212782512260933658461643954754953234603011973543889454629656122596877838269674998059585535375864690195769524393171152802982616215485935238752819474387601147236980146540289837459084371026474885096523582029629772129252294973787826360961674731080944498508548564495451975682133237450414729380759660476114072252313606026275082512995088624963713183005860098198974988411614037084117344379175437365432056556207267170758062518967878055525993578803170336146380673150909329555367051044120245357767428972083788882315111095174751772940526786746456123400337753852413756441494014498469897792392752607465112822160623386703272307725004488587246914754893063456878884066262446079592108124192783348999359684254565776423098609138347564129237761067925819886956881216906347270699144922802242047036982430621136655624809374321313034491120200975014008301300370558775082166715895918686908166584378102306342414961580967048526796218801670915163784634346199178216520914969656385911842778979958983015038722794535671153741499762094288898641138465713290673430286080995770626796181626680933993480900021275908247063123327255208457267538576632497978735930265277255454814103370421960079145615939061538221749196377275653666172842902395174422868464283475398923123968522828231036065536902398319438108205007839993799215725662378376064402067110318959456422796860598124006651105924329311877835120979897427914540836587937854171052567622715093364712235629747482732852264169494510425003609308416492470244917502901026783232949945432249946232684184580127467931513894418000090173184611548738338167837292600131682452632317517584390470820520579710861220812972050766394362136079370318111454544452885942134581149304625034660475967982513311467089540818846193610531868804676426147665749217093442785588115613191832710168971804954779329658349955461903017258605147174597266620092618045662507001592100872815269460321529812648836678304716339768150673211593279522956079399471526351772259094224933212955655353619666315263959544092289732151800466629459626686628262301328817836670365824312391924375843363805826767297738207616220943596643920705433158917257680008770348044331164664961198974344282130947955779676834286661344189373310345728264318070067098163981905967668926339690397873437335330558901505546991372714729897947853690061284467748502694710628986244784786970401369071274190613098108700637133974561956769115074047442964656249360786856084525031578785401535826588355309143958428621196161541498193389457456126676925810329877167146506889014622937494513747513125162889767127300095040140221898044388284283282256913072028451845209887372756914448824324145513884508425471288675619699491497054005771539198011076693386312248230646076689081684555250645304787455319153782575337721670547220657843529855924661956416146571600322909813106443992353074550428930050209011220084762842027858604840912838346472073750175024308153996647103671359083002196666253936121796362270319182945517302940090064422259089983915252354012002000631310738093892292061881633220833515816572349114160432405609362326258529199374450499017593156917839088404010569421161155711135919305185470086077381227076810630433816044587392037643852101206131389523706769317208991651579314904294423841567354431297420824457524208022175142800959469861788760122474933597655526119240626661128485068551614325529052128689245835095747273333028696382696386124225901814677876301426456992337910824416452929462880347734123503007079070135859587076989471763030048028280700045332169293214981000918554885984045060463693026902598699669888497819867310557267558024247070716561540453742127322323427171217756282124057082519076262671221535655390360715587222975881196802927247552385539033790805429134476944864755098797849754878922439748464712014942061085592315955737189719845103266360237181925452264577589897114754984507685368153012316837136152284686963130504929507357777611771137068075160877152305641697127376042428430130457946028746920459998549728788780202364909510913839857174638849243666647288021439251391534925068613215595445705474980668119196984911485825524630545921219714618771486732613536276042684103403989856255179371327130904818059032435057450767147658519206624586689528481728202527246051814499622718519782242896929255319288942239964915915394203764861680910875488052404062422151010120568240407255036806743201997667456027388134789036386066108518621353026469009251333123750517314519487599548516755735667297298052034299184562417907114880156867677369723243400020749496323918189555426988521850332577571512246677779468076445478111086165294982902827394350475739701928356076426012035379890628171115270871648457508367445067391018581861516046106276155077955268948528154799030123019312824818765608868053569722278650219331659886474096188203822751228156158235588816827952042150257496226177009710831058448041849445381067076097676499006052876888049829761641262676544699294155860301776988049584976050517029403268614976218797565947601833079325830315739146547089918047622719692443384727381956334150799746042074158004971774658741776792036480329485224567944853407403159750830131095820575394949896035976735878604984157873085845411386191175663583670033014980110884307975848954781403826659116957654504651573825405185808134385886312872044935403729018312019185012117642080063451869502043894492334821896908391067485124495615728919121572734338844766856530214149941164860319469461752257831185146653371863721141292443921548388169072112547416903403125612035444977685795395701806397139152336508994476531533816110474851619018790561695737315411270384177647102845353663028822127102663927059814273355042487839055133925873228532288871059954030120709909294547994200744041354756706657815759450108088138788485635518514442093660178035669075055974653900064541895620236622116946239353516491098651397271623831801055050489940552911831127366984501381492340007425811220930330704387987685524849456884933947205442363671256690465587581665095234216919212862593362541904989784603753997672601163455656778672563521437767655696505212891981038341147141379969218458573293889000808551504975452365525664315968201861306132171274782891549360360092493705778956067530771986222116062468446831112425062197081219182723831729150883108886532815242769685369160738128673641318016641899242224085041108405867561604301080482352022746516301201283616862957898062356465856290198066952196088231919532570076701309255675206058276297247530152424034205181827141818000418132044384792190235047808807834888465406712218860684528082530956215139173112470251988774356409513972849060225943954074719532728300255405387306066348696741440710251934939909001730248880783544374525077159440487076831165311129447985934041136879501018157755848731947150847336385237482448486308094400456214496362851400822024401325993565777534451765571559152413502158780385690175917027237915154113115200966547522162656665787153852533230748190204901164150856151297369274615982374461233202508136716807655776059064067381544611390414410654531851766844797914081841810284842987364067787362534164836836428910462786242712766225392820923652259315935725783077203963338370864642939466797929788343633259633537382010844452001327367408599370721436182031682253492359367920636570852450977891124897642885590589762998016994255346807668414394674698280433823259224958023688643449819685850541753111164264600390688681891648020932744976419720689338015211901534438930108713067794491237942553510549334994718612083009417284206932540681136089386192256917872854766298385627522077427114326408964702968709810326353759146741549379404828510890834333667676603753340550833933164906400059593385585912913094806272367242967395667987184040914024836360591201315996045659010814976887787733786903412806064042455166103947762734049279329801760598085413879836648384155898927680865612343304243963838927287002619412121957388047458530764018791358709225395389297431716150899350595394428985045060285485804142419531702826730199107484522042745088611523981453262835601196735419401993016401791834786581370525022124386693488604335145435953325258403844631463207570830408389028046798585955759064464955352416288230576440633062966117901426072391990024656361264158222908435115175400375481825198082775597651018189455512821845575512581068507303097101019037739032715751579052736060318158449642589718666661568815719533775913061781349044127216602151833902559214904599426534721451023751659986135024253046956808569836674275374572449197449753203639982662777208117009107926944031761263393825985089630380985075478531392430070892872947649485550705144464791083431600964423280141777883443980730774657079732288950903422880204677390342955177593311040324282469310805508137019029378566978462196084285696267989092840993111803851722073488666665837089159652463465144918369087980724257083707538710303920059369204579146764498046719705426498618890159688041614214016954470026332337808723413443008286510447786165991052156151128091966284815261180665274749808112677057840153771836592847560349777126187371022235396890834136737902905994294401264318927404088032220223965511775736071254240677147810297277576648550961152164383642814959356352652461532015309622590481789260721321877471092435443209352746875361014277443883595827309172297091109431798884660557279865837495453853220891902809625706785205058456811437458685845281769296808404236266875937272359818819729356550132205260014988506942733095430321674612961507871024237201104934219846606879339909896245928480358599678152616017135713114637059282949520105455426154624778783606054956898742018470700326427484858217636413865175265360022774896741371058958561421668214282295254020378704392108143436993575876545828356526557925853004504398661824830647189724713977456271950855223171805348741469290429010288629222068906655406830459025330023105957901194604858958971367034611970540293298277282010469778415366431378221437046088244040798336652996791408844262756671913529584827923836939606168187153854079186456369630406695971966680067435433850280380376074021743490928315855084386975600035197205277073499350294085257197433540142384749025397207995517634201073514028070061253008905926335679640461832498670471315498766170518375001343141784184396388008371894834060322559826976693021460477204766626223140862544214352659383419926823941376689217833564825937736726747699009501776561260340357729210880795400256349012290358931082236517774352362599727819852293476236778509833807964567166255160872816863767098716360068747475112723393588296490250399864230990434287489888473358858648658138617681355890693657627223463234081168126758180196117855822930453214152645628972780557861756689101303432182034876891919682694901006234629629885202323208064445612869862339164014886714469697187546222747587954762540033356076486096724390100903824891550054002749645985265118420168182915166405460593754122320577156027304568799461458638363261816428097512829946281963997545749889359079745095998485887868294296714655441428545373397931084650212784086060724045755375009422513580318434773289700846523779099815413734545723710371611739992690553461835986463616063144548565432569805097649774361081470616168396975708481693316838928007912488644265749043669545288443178626544232057203175897393896465594459273267179676979158271001421980624431989717597730646960619972410822578405891564505155105878038276918151365300733354431254867635550202363328020317584893152038600314366142648660723754127686997395728306361172039010383830485138177624891051249514089606433522126131485291623165001400864611515075643954463214651952269362097191898322069944298415050290847281988219674831655267259611907454244842259478356341915097120807841219090645052977807315245685246504631802098244447537692335193687369941127977607729078143189319220498776247442830312221591359438645446382481413832094182671754171291702448653875259235604111814277441279274569944211343077820299145864074990205882105168169292962843318587717994305317424881537173503729306585408894171183352737361396187287889345978255889531578500964955530440182478862331818197613287860978152107494651929033774933125557981845727591915091118109517626280517919046775840229317489948980879728842021561479150033147442746175409175599642738281663974666700789032706312501244079337039929244901875162294553332054666477192652213963687047665820223169319808340489247119720048778642564433752362128278332018065037543377176906848570247798537634160491949339516351731163341191731719019652127465091224780735553420894427704729830909939279197692312667471799765766572933486358348832513502361126438909026175034518122050506713048339158400913033659510586293288136221282096477143749355144084736395247758147475098766869974793259980734038468160220077454380111492954891089172770931203935014841263790333618205655890621185847696542332292264596266293995074159731801320684173903832469266908032706202226517547847928513067744052076498727480717432467887753706672362617136953395559540326472068845192871933117143897946803889335759973531988896417210349921881793537056928107493499717024032135354416991603828165969543144021431931820650945714467576563499049537198558782930495471673474380512509987336858368942779265565254274001055683783620838357857708008332814951513257827052691740491063947904378917451590956556564020497499602690575429433911098593173946645560897734651421280920727291912565564720325728552456250783545770923931010908512533574157613324468412016586310824727120711595195950436060291592982569884486729152382063902062813265772184199778365187367034396208080791511939887691390774240585933969229554075612370398308286260045133096860032406360205633502319394495191644236904235746603167397315604637385167490062215417254280234046245222164600520888038530887245004133965640401799888010866133546542506176763327367818633955397260285729293533103834380342402469677354800251604210584567185808529135357727428429370450448810484662393931922484651267367683198025063862005458913872094506204728254805846646100218061795049758256584494247438120517966733215631314160996455150173681368815648863053039780008820244927330321458707129200126142576528632679342723193137403286867730922265224240527682513869926945523538219955064199612672346911343623485074254780183055512827066486779671776506467282092222267500514783477994827128899462930370224172948072165526841913937027216417530924834158404679635095621073450857422607345742497432504254095303457769652216879368886972076632579572167522552356693186008872127175149847474898525514163424544318729062369619958984571306122213913469534752599743899854171600069834606034229855085128164264869095971700059867076922231714656150449570864856965163595902439031271322459272844034531448838889134776762859672015817953533361797202127059157223272011109264764708348735982752479811078795283904031475971669327484178097696628618528975899295655064748306879960568126876729736124534672725656590015151327610866456242274632355219340715212196048199995384090190731516671913107032498562394291327179939991716437497087745644242734460522855010860483747797981120705622632196182556935158328763323086452024037212121471368420510975690872854654149812086832486155646492747596503552003801109805059588888226974973774324326443186994658039003830124075034216817895271038642733025918749897085429982322654443652730802520541527061901872646440195029160489667660921125365611187246517056176276869116594090009099709694928949466658397708913480912988991792366774726518633245102874488962660212606051520785934863444489226749450028064253254025352427911837100742637180551369776481837071421899407539640192408778631677962782413988380730298054984209067910859019854672319289242506344647145630865168471591631171908231862673092964451692265174396361893458256549590513100256284323984250536470073408980944247047593090799597425739123641605553484351243199732062675445761225505866432536947467327398649631832293838832568159102064833351316621245789600285373010732157287967665345617503606037791292345422870747979281685651500777313959164950974921370118305832111727028742247954496777343904143783380669438344817116992842027492730482168289801471418496997985157861911688757599473811973076044984386745979227856168191829212919590732528735315830732573481663870588926285387694696447552509928120834356284972010253401207984948302196294473973956544066986662260635761044661176341008796515164269848015183416094731624631665150130874210640237117151369498491266969589963589545133765017212340217766036938657736334927211786856188792719079105848193761254562686671179622525217592428820644399071188072579549324531837836652850905579441981980215948842961775072449419017093838451343061063460072277118823376882455469079657806436856404851609665502694577762233261927497875570782241935997166583474413976236209500429466454465362323593099987093940406471919968194331710372173284583474033692233250593815795372039115504146909305749953699889975971917428543190702184863301075803055399239466958689848007817314562346336581846212172479774123314198362023984801577275712751267932373643635344680150464736833925372305338771096796452328556539806462707637672673963678714736428343649909032996558848291916083179055846690441788692636838000355378389222072209395872411354192408898280176104495752122560502100957357269704858980045843073570469747698081020026223607206261989496603890155828684447299998396637069477315857693346144509259279946576934763318446844589176790484812631243161985934855184001841843384006024469987577244064466974430927566245867140246876422145311543667638667033671771435734698315739988741882199967439457963628712566801128239466555032272772069220001266397061917667851878071381228957156551164339778498733243434941630087855208590722014601801490086534000712433829795392708092033582937483248212170542581431478693236777505104391104433530438159423853574673359273462585689061844778165633881259229993628287171503998280400445709960856745955460456749412257469864944441424161590136855644173596423825047895358188316720648297432355469885172059932502838977292805802815509869183474658006679734592560393548941462245077987700491101420220128966352318861055401470144524724903912345059996244587021622078881740841315056792419316315095444094435495393472355659303165670404212179669941202690032751472536811968708957723389315611087720223001164983163156869962710060931472703530166377320589837107486012745200435112983502331510438250539809739227057679965840406367376955664026751212024685375526783910375320229100643638142735853336786250311507647718137851550200914634729549188343419872131466135829626093088843818331403930027395321294220237265594013226791575670973425500732012790401459927794853571171256855352733046184382554437357745080314507378479233595180420662920258142710220677453481612143073652741277240848074716635779992252554691623765571176894321357578682943543782995296979171654253076399107557700231802755114747884046936039144855743415293452325480405383278860716881090408960979469907711538854883344021140267054784827091257500723476559427702027457195509007061551445336866329390721099400218283737368643591430813321911265117527725144905106862076774230978240379593494265516016638362697165835559225665892493109968087305170687001808035978883247418602294798587158787997243455812723462406850942635637964480987293379645329540426860214376750193719413144754469563102455364742568785021099419387508772535612063782116436720606962480566406346513696845229557395912716932569762355374479562549380047480862665356352649265159874968176682392257082411688931794339320949500549519112399520403432129555244138408527279721918012928083105482764519510916632043874844301435976687726250146398721898608747849114166478487114276917270934368861017339431990673077461523017436706670723885954174405412723883030611742196797672841839341637912598695347207604734288582614703216932978415665193552200848089684507606442359418491170275833268428844074798573970924610546880071092290558783137185810781029885036979169693283929349521849272724244455424262690231100105263474180312798995299816372591540090367696375922197797244100215791721873627578011813583183999939141676390614201845447126767678123949619557541436587055267647253793816204705569776371035192788496262830772653963044088163314670329012774531030155932104065960154498500323010083272589849489665889890573484353201259339141410221907192412711157623441790042059250430820204181128987984203622272085757246558974462792816174908044666446980774470852486037297610326791705805960678631021608817184384995205736923548240358679835274033762846663647848983221106783109831322318820783619572598821839501087560930417177622179252165009918150592317407619921031499213488999261963980885232546285060115393989242465543140985515279537012750797968896936884955690116666513812541603239929558657965746694876145566202692013004188758882733545082109444610226616841280707825653108618173750815586906142088766647656458100156037194011788499157103052773649228248943566954730687649901515556103060333769493643780030762425676645028151682491007565712978400151491766183131229643060314587724623950180172999644006193406982526114446636111587993704917304274892337239537451042963036172924018811977280221066394604585729849084802119675288497765054042638984273812665992996118666620965835029110453831467038221344898143227147954835093240886826842727122841859407529820531854399752262839471234756539274079144760549678486457618817411474625711964523680143889454101854524475849686659359658199291732016895406725374861969668175988156146133369391822629509431429518735213374406185460004283872273268739848574299740953190230445002896612815823825721418904678203660658351844064363035130478194014205859934479840323684021810364140695028849672703874091725337698621393436063134598869375192686724869686796572606390129381733371683499959500193660479756443400864006757268024886255458464147871802809183174031592441808747449544348200146407739234368135872877401493237357416737074207321705512212318898524792602471006221567206382136832930239151651774068042302537562652255018428003222401224480320964418990949415741145633017215603380146411834718548249513685160011743419461767931935738607193730082367761384937635590103175471416273851474868538526141945541654919148753462828106098072051827820032526032325951437949769712553138799258838497123371967012856929030075435093097677359567301565626291298266423515142571623692173029701085080810082384716694606745169249529199652607341014019840832183154562336350310855466519513022507647515422779934868838471490245117525911944028027434878687275658069203106853653996673673619798399577463027036937808524889932688201945322241543201780159096523700093924561723696560408159794182569887033471985586874083255975579439197068364365055721228609009253677658438911096342984926000883883869856161171462466964579122486050718878522495421840265137384257471100960892665730997857951982364041545636825376815876879614677279126386613058842840412801621394191086773773178147627011522174372942880144529003997285877591021699225734848062517727974992318234438923546680490440688153993797100157298285218013037477960415870238877358645794268034826076848848867614875142743538855364038648200531218063729967636447220708332699659114807331263111892184231134128391748365642633594682332614432177004075185376551831782073839582096910071844513915962650395417699793539149546400155509865242894474759397677423862423174203843972638636284358787144607974824128681287233411828034781213401160846135205261801473934634412683339483493332855738832923340866145599943785823038435416878710497941116795491768206101534640531350038433227756872099592898477743048621701126736791486470523900722189711484064553108135515955296566378380420458924341699828384352574157270699205121074479785864465564674516233918579790220492604231184296278722081260872666634369194773419659169205167691919228310157566234095187054409696370840950707863798549584956500068449510700734620986965714597117643682385374909490273995281982287266891690723232997951616343283122439090910236175560588888717222936773946330235648004906241333028548939062246678318399731763585987661501630714182433755206660629609132356211135277976017136820549019968737215850493233369585041281703475196816128945089164861323855346556528521772700968558084639298923330488125180958732212016024111759101724318036299059289704268453231369412524424403177541453938102237313708974306102400935406997723346735359246828079959014079726974858884615674331182517342684338682844643401002367052676883767529641116036351375863287130373446701321419460591952374489641657303757400299087858956860365956877648464061974031843484175767094685846084792232777913103507246699952106313652872442708120879444307710905211082891123611128359427886462962136678734663551103384448698831436484797391390684056152347014612353589519734647894825721531521979441144286129988464123933335041094851528578256366097976085337020673139445966142619879896459978342418058511032169495655010088734004318230621296087805472720245112093352608354516548965333660132149313754984834858875610148002334509400649619926953822276008990958013875665722503923477978733931873093447775876484952470720620351020877633768015060121968673047171347995896561813475262287172467628625662811747292548135561430397864054114197212480039211373789779582546375902936406152275923910641692316019053369959500407740048379860431940999760671866111216571042051147232512813764424982984122893146219523822449616432148289138158998626782887074383393162519433643737033620269878702564035578737304186612650823742967609911594674036928413853918536452413570357787644397073182640152709096508969124319285147072559432006208617702774686329705867207717406310117800250886491383454868792350459711445546733439961335255688855926951765149256450313660763099178514851281517714274003337755798632780007749064798490534074687879143916084979622671264128393023715195770042134712176517065559285792408046808646477633628472873325278095001167522151151693352556631264960820467320652949276440879076726105043458910268462140791944212615080747390998291941307715019034398192703504159782530271825935612906070184511590365867240663046733661636703704907257254136283247935066575190900051234424288054304961098168128146200256838041089808209289732691212826328941343701903734550499147859167921855962144931926822388091978711019577881556203068603126649373754951426792810284099932060871069655276672882303220881135367280117923834361997346830517502201984421682516473419693088100276984920249005855466274024487959159737442326385210755358060065786980563444994969257828510530599824538768187231218540013735034452073736738531598276782871745326249974587762004629642774870032577837625196539677507509631271378299734349965824674766267727750125036449264860477362835718169266464930148170620861850513588909537126644969608051273659300082247314738769129986322411275269186234824081275059906758692479767708027750460940826443466125656004642040094733236293582147556371813474030411524349176744475146643320201015456988101069565041420794180727736874078976375738683097154351577428861893338729765039555500023755033775466488676844146643819085082442219101542827269689783870398986386767113579539410070525115600248619777546430105729728104700636346667490711874403712151641373796511037436980586121221143518144476323911610411047934691593130715178047606004437559525629824274315610128971813314121585183342482869917073800813991845366451422083913694074390962444748564230617742263855893654606484782451506815104776944121427634788316338867266489278582359940762965776925314540942270485161934003282395109063359289269665099227061529220964995112904823048828260455071516276919269574964551254837443168588452318984438356525045046928056908975555243169732412277910226233592768767269580930258401660850488706349000264369791348658644659642032043605504425691866667735031447122444121440014622903208926297037933973843851595892120131096943155151025643827609489263477031790718497558966402974584006273587054516789566644258087276441484286106598695953629205139262313684804251704046838354508626695647863505999348352664707158703843123790784386170005891601750853492527590745291804729919801980088672158738588322637154968805814765264439197837137453237015112992153501173538854654722481020112441420925780029842098203731741881721574454078575889260642020852395345297239806832885874103296529659248648512000447369736049971798226641716075240018362744245906534580664796489083705480122744212320067900924352809266591322125660455870503683435881196774747086112979256411930890879615070218654749067888114222328754312338695068557038409356845345575012482572647684449198544402592880798481240036463991764720230593589719862650660846507936768171212298619555310951072365988360589324106451724937111038287781455089274192270184474220721044155998416038111475959270799977270636027460065962191542013197045930704429054973951473938539267244445676074937679009198016912732886839377694216512862393481531961332256026070399524492256273701557682783446928833180536222495240375898176458713976491890280940141118485664247914012380960050947625766246316141543777191986249264570365513422713121519234929443975168808779229745627511138206425201859828056777980142438347444105827111255338882489146558553884561729679674966267521382610109947725079241553855693885233708012654704058881080553339704605219482601316678682905861445086557238390612930547625595829422657031318675061687204586486827983357632068734335502331848929137335769780900049678314957033690085019344469426959058709107348200630128229526993420614565940791818776453517225434096621133932533594010840311175969630672648188489871657344978982110942558690088580354273088756514389205396432976566620248846702928045120232883289642455048022965039129009380566748978520602744006409042164392171537762582901878543412583984228924099006625114805972486787836876679433125978698195620645332563243038552071158485966157976912872567598775683064773557418548871726834366493698328737891519558552218367162008825882968569454630658234650091994430390150382779495201886967944098003968053767531703915109802952853687810795590441234656921114794047939944128411949028625538423914756552185082719545630839325958161467761624291474236939303740805686481777012301236029791815261095455072751261550935553687798033409662059837955246569518480639923479605787820322428688088060039115612625004778846867241218431287583458528210297420796320533696345679752057878666751776759385168613829869644933475254524259001939035000271910468605345570625027991678572260845895609522582102483180328796494740311589216216178164240858520760972222836673053535294907695634600205063392137104024674586379662445831458791913406270100634528523600878206601964675464619917476922691273129967581361843894503601226336808249399283288488200065894378004085788781088560231412060135911468195520816293885289045391386232977125959566252708790334662811360408528973328663176569369672976172748016431656324672001640194849770917784538081675154804273348176018676433319395879379721817027262702341369425250481142713208944156086544260291782005845875293578100332384789425262023731450579651300973073871050208041622609525335056604415405144372831331589951810688136967815463246270757854478104017180511721708726020799162786802962218678491161197584934859900728681911669446075332525110016693197461934884496901592218997743922224813014075596588750397957028663391076378040655104754537153300058788125401875229691519585779202397009770497287919744590306016018681738991297912202066390659280935422450545475186687991992773405495688366351606867264897542723161505919419927287995332599307788481988096140918251490082829804737915741674356019432972977257715412038166175319125997288838714349652243976375941205819947189163701019404646897889672665786631117409207894762349104731777295971157289039131864662435709824073447948726790817372024154068156021985712604471842066920279554634957685186331019226832846914049350402105491535109107043266518695630418416626758514631017517990611750963082262171070853995838832755157001956943715124486158129454093036636812485452299180608879824314118321991584340773396864119255154760444480256227482426423794284892680041116864541452217379460525268204880898753959670920993042838265090928847278728546700220261250563886293899850101178562753798394420351475434868868627163059003265776772568616371600838449717098893805891881120634782605225258408628973706443829460250223192346846198605565331921878572141813105477167598892703430683581007466749857567049102774240189801891633914781770941504894527391106197197594603339907174114574463299150066917035621747491884064500648194947062548995189159716241303458116962528504502669150570915807265747366921547194933328543349391921283860389881010755884857159207782646580127576833447919763785781956808227875307675143736434309657930519142033410120551699929529806877577905404393621420158401193272746325099001280876566246560641785319474968463593409356142834622872520256352003972411335665304199274788675421191496676943796795358592733664528431177598510684735219143397411555185985262329395925215912058947633724230441368509917646025115013599073949881071234901079378662627020303382066961510096763885038732403865623787979627162024608748938237515741897568903812157470677321249235238848814850404189925669826785835057909448311820847132760344382159885042275280313607421015300197305487107993818538633225029357236893857864863410050602540247992798362870555008403817270208607428130997854771913618444944891029538629910085300333413984655738674405294016144983214058641377751512979297395700949680654686869592790413592723640109987936296396950066585207503307229447516671505975086231756560757179288662289189605753030676036229209487677508457001805589329008565989473366286328147979146669373286212979320993660168412604529476678672839953283449220828739786158751442117873524041967607874969346310023932612993462346017521980762758961876568009453193813541015240509636960149114179309620962395264556747460088550338670060962499825625084830267958435241535574334679017183364592305496134470328669404874836573866916887428151917520367171291098855873019596037331597265318079615538053869657536793890884829897864870062013048931065596209696413749045553376519922154374195403181217049871651358043860469227677893892045198516627401951075164718494499383881322063559439081518935962700697612300065085069719776710567568389296635668848702616384725841105401273206251817430417140523245511286923277930099863882349697236341816836532887378987111646015888624660977086721894097568978248031909485416706693898754732150949082022809432641833262663578099496815474833481983164916481717809640056887521997345295887134657810490025461358860350494425260249515206975640446177210769282335454173873848472450382433714758865023729436757103999818054050677330826516641231504506952939781987806958019694561867441904134389325005380560860177633066067076358860586949484457815412198091197383130651794096531999108027526618489260197619338672490851615414849400479807931388131707663666283013420386189407617297238843025834781040363021132592205091531408361869088543891475675995523414758245289559876864568665849786414581444716058142161629828911390790515180040308150136192231009957819583465683718792012270365366293615193966672926706604431340130896984115083980262663957074137730852894533114181891521000957854522677636635545573543062381882963622808199810600749507769466144101555123503147762599241630750363394834895058525976179160751968253917070857261905823500346985216432902505828973583806614386891406586711698311242260640887295199768885322045109353316181627168816841882414938800717230940665532739297343367751947133592836186227598082132500465997301053888092292775952870023385298756801468342853414621343040829999771163361653287923627643177624118218054697048593476804424542960093697024037451609171345975356332379601007992395074179343052927220148290228801875691817993115074205099548045380610354248247987164765577418834574780469578013701803110563552179712421882486167397818385196773662322770804202294506097584348238612293527798688960711431614752897906276615333459861869915297822907611702175081751763285586281311501572173596704076904843747679671898017761368323362448439830182252476936216382629790893478446001789288534408621804079104478305931906071958134742686239145430194911954052210289125140724864943999043391005252167297384324514791244819590696573057532801466597249254326482763504802195423025574079682004857086800387223758974680657162751152525828269390833468879729712059364739436074938983711600471253204519958104551264179200403751538364022975067910126572484032297014258629172180436225399079043924780861305988919174190668498040950713257432952670337371113575357422243488315328130253707664584805984116993319224553299502434906562308629758245308680180833212597755337769135392523303960054263372215908317155325338268640486468470288258423924822294488265292127232108900198668211640795568136205420506503851103494981385306679716589716181312793574792227834960830224699927221775487619999437780979400112714309796990268929032781955837473069528384313456736174415482735893903053652781559002325729959593678746845631404586301644815681857084975666202468367428598455354911578336262642967858126447221830528491339025422234790680058662722215987478852239943693435806028978441306109538504979564281769228764230399462641977424816293426956357277909486195555926647488345653695797642817351092270844852581797714158183853113581728317530843662264156445919621109949432420000777868573867278559442466554166665986076585417516835569242783926443787086407853819893667288072550866943604478037799177557409079485470848584476052188761206066959452735994821059091163380099797210133867025273525156643943000865276396837603662528625639949345063990950991820364782708680151939090579297475972287707083614951264283139493382369054641471510431977625238963469272516715608555559211634664728845362118408362607747319742269532171178773479300729929914532902522696564353109896558953515512782786155951435343525512782295005830360029272888922865987296757551611163124364652286954984655689969501916695789709405433311368773234133623103957189437769199774219570668197063068132002741673067289616027488353430806355516875184882208307705058990613523517148958267102705311885033541702929660919666264878054665164808941052787558563081376961576870383948938682987277046802047054875816684295911434712020178371196285252459006535227049132956411267256095458584160957948205157080645024726857848145339402996320644925490362473912396715171501232667849554847998601350869243144767186181037354254093548245634804032991981888918359016372597854767441077375092296876317866065375115207358299517795295200465163082882828665416647787896430563496729691032400852446928568453689994396241829890523657266441602464275078652892568241103698044567176098383884083846408612583819711544846377724614303355748768551915036677217689444196125201302701743073071894719856393189709385343576291360423661876339383866402659523631855892598987166534401891757955351660515216036853974615191408474338960151749402991373073845314781373427056588560784493625027102429826060637476693433307395897254015247966412756467613265360226107849562536765870333075993830871302517202324823353266648567885264581167182467885713030600697718380737294837283479075059409111920764301736911513666818497545774369627242802411603317958620436853754133322282271419019685254262373167816394713746352377807291056554441958521266405289309578934697848070257663211438138947616557064540471096404488667488620646705201882023132079154257813012787685038977844021038278576687727345155274360585266039065451089380140284497791061592851529301193644903870995003569303487047601871805849489260341384482517717004301602710713905701916346575063873689739731781040367611145666201836658963815272949379831612675231089289675015795365859394307729966903442931106528539693230231421966387746705258811822248020424503687574800124679734633169600783792109041591114741778770919310118003490417378604597718493310402366947147307593192906468891863467854845027248324529351746830911655657886734097946306968726241348308337098088865649681034017978670402301603663236196739478003983707993974635251492645873862002417338894758554742897678643881449811136733967164761046461330992941787045146032768920865827434457464538867556077544937375917896742189733141959874523310483995877190920960112156986285418780424046017533936128201823914393664114956981266256103390812028806278102898177556021415604552866883434967111087372984521820984215330219350105984349889672095906314164028820711069043505737614510759036735674479570080365918885582756053005028261857171808911668489781385598999848592732842360288356925950350755380266511737151598581655401871808884795001603776443587470994550165057652129038498449936633767264804394231300892598787767065611383233462254428379723891958160077480083645765350795974943145720320446338948661578773468042088796440982219986578007888278358570192891210252068639198623200710709753788943722874502920648498679782588304761721601275041529324087075352607361087204850409495800758369207468933913213759410051223114342450043965820280695418261011179926447024376883038199619422822552072211683214588259329089106169102898674856342455174200334856880143674153054885866111556756094554410690335613603930980514302312612535098544674089697775506535116284821707195467958003563902141970499826587199915204864119073610075958534300267473905351622557415114769049308399367811548372781313127008537016709519331744816671748390956783492419478891674254120374553820109791478095667791736938482341056092850268589267773818128887619740941267456038390400728380421638504513389806859977529061356679739548063473970606775664092466744358491617813204609055726828233550703810776155224946228298558182214823059595757609102934303706755226558815808455962284217072535372890030430199809130826292102204454898203936607582204909795520844379276416800399318981630759970412226859480294393374875513718229049416129131750580881378916487238481495005849900072874390319194849186537112520085258692158011418098162028502826110901281811829005362932181680856496625560525955739960674166703270067077686062570266066007648019500226775468504278396527971945164270297119497045100454263315800055950888000650021408074074378122131026345691870124672766294439461796094402258276385558334833127059284198745547509730994388011358805229563548649613715686235625010323434563783329030172778024040752882679349349532587467540518137660172571087130003580208474145225490945404888234992744964606916970438848943993131653824742236524387993193239670552806513257293225874767241467236516235656167582746491552026075519114797051564189159480674451379176233065684298894687207687202170792677906135286580342672949033851452271609222355344299933838278144323509620533656631715763359503861965015606485202739301567981474193334374479938002138450041547337809021958530587858852225740446774561669047205104658385359127568243825941692574518193096653075051608957430544595284063516334341961516471278847020743070544714397613464766411506805975652637657448485523842327447021794270699945098912750258386178168676293766935627541620175174403368172353147588807156653453427056436505598108380591261762247913225992333725918491854182323815578702070653704823372479620349992862239965722329810530480250337190489972923362346447413775992907524018228335212881770995858762050886282456948336926710857769918229434588141096255086334083584742335809469596182128335156702058692362359630167086465557568685780521797198599372050795000617882075487646389328642656808427761692274336515705220717191808557624921684773100968048384800456887601258962491878601346816988853879468369572017921601750986073586920669252797466572017146129564944774886151983434121354125488257278041440054711688427229977521691904756109603203992278713220565245205683291995972125020086353824791925953707420831709929720565942191681768802556664406464054796224780845077128509833277442847378055167243803895739145532049025400756870442726563810850289415979057409751950416474496239465167269662071521051072183070722409007680410391960624932555538961848258983563741164414008606846178259426774444180014063042510429940189997179186349498174105501313815828262856430655587737080824379464141632602450593966600450789939150635304256020470545218601094251079354301927941279410929648513370930781208020679912922924929861804025335139295770928703905868722378363388395508867489150492907871925936518646535569151602709927033743274950938653447873215428161207985412352382431156215013871528307497474328130310920431628695363300681402900167999984561217132762211047312175228038280257331618826297807049721855924901509338630245529732182742492862586096342031090855386622894070960905290548818871344793529745969200363863345520608258577162478839237576085687698337214390135368029321868338443192190835623957842839079172364878110959535628309866540308924082065331060823872190176031316198891373774870835856654282642498856826966040573593495197009739826874562758756729990920433095088377192826970495074200146297760676715555317259152222674582952621517555865393922561146741272744577239577066828398826480091630634404336419398249436664413206676690482384995094778233360933985481915252473122113304698388786067985502086668866305465771770095460753675932242336203280331609641437939529816516499789933193066092281708989554370598334015644550272680332064638038247019004694070934244701328883662826948461813143620733204996231922056356042966330630071308185540215754584142882762322740775516571189122445079909660389407985943130683421214873345207531798222857150550416751663747121525521065802298568872373726389254972497875174540558895265056959752977036055537914488674999691650350632198688579609858039812180851008445880289533367064550238017976461469656899683952290489536975523021178823627686476266136088364991737625672633608946092795165576308813188293018046842144864401768706287207773165398960727942137292455232477641461601127409998405273045581625604885623337682090326216993421725137561025479531082259910848322957818772044847250242232287059558658801320779129433330697740901151670885814781064054280957714657257886630621055001436971996631139330690784758608507784908957064722758694751043102851790942536466951845381368939490315534960897669488316707847315408656294102630659768485465756436645383262854840449558418656012815709922883138980125661387992057241341334281653133708418064646305101341020000510544054453275322469235459104425886187940234028062730922385634199290736688455794976361722519204301561203128940224329561088102389072948638304320918991842637478963716039043194818750744089331781783790768912409595321448230793980513877164095546367115176097748744134665543483133524525959307832130358377092325409328234880607239672080793155625968545224785673269918770488104937119054579182605649871666173324275498046653866495691265894367041119014357474107049824832877156170074547966271511682048104686400400924397936141043237509986214282012414601739053522367304107820415352253846085268884144956847482130074805401657514161589550565363529444516862298388782600398285129371653229994788721719997039395662112288608443819101710438518025824592957779675122320556384562755336593598975759983024480041754915298842816643823898826650469628069114693101919270926485975948547958857328201236839639712643386181682536115259749370402002344800909804859474836624700140044253983892524071816219408576657495445483732560442091326044304309246541396006568477359947298266946082830253739101452836541512308623539880193031778903689312498304172281669181209783327315097805422936541927752069171818727988281331530800375991968797468232642527993162131829604403578938382708064350110981097461508943368613063421726072414313593876045113227856704099953158516146065339131994170748296677881261822199868309845534542220922022219391507329942280938991066489959823642829357132524204407803707357913435220999345793269386139431797742475900497588290824187142302320611016674464554901601021663752067031416116253601603884347444099063082980590051980055497284695559932022376964578086912174630136160072120595250836903237363942333297083817622105872955960800424563669140469392301667219688345317154265587204898110755875218303711688708779910366216762024837848474829741603943664470418495959417428724713712513206000934196483041985425382092250918219208628316347859199032022274765131144800695614909563488878422584665917415891260491090200630775428152240117493919453966927631379467405346588123615960843880600187644582166817561590710772151827842922925223448235746924201834701479323976279409017484816961786019564045496201013275816491853156285838659070596124585768579076084223884306990780141951548002650070733265143925690679760687596789489454120224878128583762275033959225331585273074034465624456788591205201137566165772482660316314599509457653066332935512228869583199775408603050618858034230041071056154787999640342357738718537141567626348562480582227075307448702938354951578428488481313557280102179355471411128943812373680113996771817462160716717512436204197900993654669257872244099360662714746761535943366487668196857494993395091345436977435374039349050540779555275636629402047115867463657964604678342110083945739611842932064468966110838417407956252727489891118965534700551328091719176055889714391597791975858136292496135803942946024741735794429687145410276353638430108861957274721070078112702650820403240574345162049901687804189342726690899084268226166540861049736645486282169520572832549253079585335886969728926939988177146458240371623250693486539992510405536926277151927006550065782865512350219674826865975911392081548458763197724761789029203591273402549199081300270375790905498648999550922732220274288380936490556421503224223195909517044481369515656861857891272311074110679068667281741703284810356739060776163443532294538038297752884685013513084276025837272645698232776374553725915994789100834085925967665848003337522500262109288407747959473045509372015440925169599060798014130291294714423958213477851519824864670125168589280772080320621040987619708320655383178461737476407045459794713759414432849812050902047578049704391637468432619493628384457065826025124942163337932322096595960391344193495954058525472110421712080298983520759525556455159995273268744398611254726861106218750640396702814816448322716036750654486340502898425818362355685358916715518197500013116916251118351176954553312353248007244978869496701415333959766329649971265298043483351397146222442819904198109122354804783350872267053798949635149564424468801728948721971873905723865502576939292602639763114905773834279301838334571373084351477744050141575896952543150765350313638454251225621271958572283547218639804309442669620271042552182086056332105522681286295273268180066852499005003413590774866423875173991911474192864765785756262395505969412099504702292489823616884348624661154793368299800595389231046371256298021455658402373684299494103529930633706311483909571034130709335115129630217155037335207936688946923778155733744831928247860089367085861263595638813723693405016595773402176366908962928746319323705106371179173515435593602892670536922953902552638303950510778201530102262870916646424941519626794371310083795625150207808131807168849112163593723672200494281558630361268139430239333710598389739834444447447254662904643435018811328609417266910319578013239730669207854087831973515132912584144623882281321806149936496535981393030636771244200608874170267558610229619367737003899762684523291053054449748218674273125423198469634652072366717334395733704295827946907697066501368344510551161558133238239185853651290899366982158794837739626846573012917336411593840826381343702403047545468558967991192031599379050990508993047191330066456507029415961802333652417801590874440481858548373544187659283073443924169885838141019417409775942015768814696968553347144198922887303412326666648345967934882499933831904479502871565507085777881365171221890443993818062121395518803089053306980198045336006707963175621226832039614933617373545462144290610383447287607664130637919916021663073210775763065306023350910611468631926761734684650851697842449874054906668311075457602599374769856483832962726295112593042938552045083051845373436895690371180543216399291011599235078238525094690862860077066282714732138355168305916096017616810505227991221156489872038624284800275881609670455170147894394485485488926835013774846984473078980193208436604759912631897047162253746067656419490387390977307783609683398485343301924786985372611522356207244540475892391138372150803726915744189057508529891958122652355766800056406125320277949169943846958107778536988197961217231657695330880740124417100397446432463714289260338846687365498073309615140447309391648688312234496721709534387342681938074259580714517461080796019422588165447684151243982419469523614939404676844977269569873673739369253570488144716358515474991490170351343045652605312457217194860270933395234600102453501040325890937737051733068469395824985180452723924520804714511937769485810624272034685397550511842995433555616735824443818437014264336714923087355194800137468192717248792817269585362802506775170689987542092478452608475487552298660289496155472459815790395870171614854401375032255104147135600464962937256675019722943120366142982486245529526475716280066101556686621666189086472657441493088415783432809447342508947474660461160974423620436807375722062272490619084165514277850453183668574469089843418591812149561160346256979836539062545010369057874241951003671588793006265711715785342757451847241698357642116133382739310718895104488548614614424695954503982078455758637257964578647278342229603589706437831328774766281035959762301833759372902239868639969206192156637953312088088536118241507894373812268270872108579003905077388802179243716896610696139678960020371947734848998311361370209395242329286520685518993411759031177757513106459366485934862950442955664662030303322873892975521424602684396288577600082626421953239345166429584087585185360681757979582889965636072385756261129843443875899713144530996966465949772464959961801307041522471381843021852799519212350426759972359159439403234050814006941622193723652340666648964806626914252869887606606421889761134183185341107144269255744720257234161882349382472088454278938873199380349691242460202859590431357874319190171316531117474473022779460313337270563887767066336513262674639026544294121614132068880458845928827520733409892361962710581371646454345591197263550711797378409461098465622802176142428381013512678726117141399709714268667209278084633358980549008495597955195362016525587944688893592758421306468269853457730347980215851593538810502787146790595567878817446211073396320787518772244480960956354774347011310571976539238366067819110794758747598226149823997631576237081240279983555133224497016299336529936944750504382181533346233117070903300604090246550340518785531558382057681879602769218668091505358143861981553904365661027050502202233024842142191360130849497208149820722868162864886625101567331976515151538098022382894753669108213499196051345025886196284605842799234378149921406601185643056459374862814955138978705333226228190433960415591044404387994153473129196687131685266882584788537436183687026934816970113427399689465871621520536708203133450060980420833930976236856060649323075294036133920202785690871614788334917534801781806137290685913274572549815366571143837007462993029388001297927034025936401110885258252460241182542340641390021126435084030010133802719504035473176625828902736999440183556760736165863023945662424475432714218776588791651996387606910269156566401236490089947964818177861756596878495481320352292334692181600874854756499448245816250872764411910984534413839764542557310300540733357835128768865101820166182956672861136447571696588375235329930933788668476433621546436391977430741743421318610829564027015331277465242306207797090920410269822647545246266878728874518417707420397234684550366340848439612800300969901781322233535197160047513595332188190939942058743866397603180599485019410035170197984002813990640681815610005414656931824782043769174940731588118513067082401715916353970527362617122856859584178922423542607114226051143302894808572313626911005784694703044971967816950079652881610215125111713778734961801219262762915152414282942213154935161151080795634636874206815789850838529665566307388468013694676668580574994466084180424767391475343224797156344522995177981032360445139187510206811839211997872238952925625220039713101705535440143046565030531887623279522875405895854108504806295534565418236156371787379940076076735756115694434018082075834117790447765519811470819271610027569007674820297719018703913061523709634432740013844286581077609895319625741478636781966488036607744746676612006953165064766213235670393701843150306579112316720536504384539609445488604700840918485396669604059836012495099641394041948488106801353713769547704024451036635392596404724047317891816239716096673288332170357917587730575906466958066523780215706239427899905211686082988080020518498829207125907869225035724946890288873888795356858952948099642632567955944833427463614359612910849468669142317413054976970902224452102664441728217157293804158169119399230008538601344355530838248651244960629275398966750905034167495719186103351205377478686422194564454794502750872780976776237874945906956069496439841949802719597001080275995558817894334394720224727829749837156837811040930071119268612936462677028193205994901750928387951467919734736463315675913306627891697575103919620782600428671742268653348715629504380913779438960642526941294671122395692819263944911402864888070492407783773234549657432581613303656703880659982836313186845435562255691710765277971299602188480591599514374371116789033882889228953544371891212328099533404787424807383787050559717193099390609274976359927565160461771586494274168276995185314848929209594138548244730761061086926377939915862724519783977203282977460679896647951408723164219834565706408709885436354851015391567027742855248303952248185508035363784884805177790909683102885612396903288227054633195697692195062171116947459669065330685243074803739786544867569431462639631739144005795968339528284192494472112427263792092971712209848253139353033675240010934156595425503623002141705225319869295723004669226033544878248296879498983364890508054631672614723216176571927586076261545403927720304748046262628066479116625283853245145157880017800766869430427963313948772091733703399274610571545369673482750105888491897131881069430142829522916008615777055579607654457214817901867657966529131031175850981395906789132925448696183271967844082180098361627478286859082732802583571354950494542452441717451127874997834180655713160186192136249244370584597035149365738910211283640057298908255386336110193132326057026495250500329267533999264016744193298018492940757510869660251715831713824300179677247231903670096112177412067898310403967504383587821363355952991745837488478872559279429637440618151407339102791847418414789724288792908379492812815254468256262546492524031397730019177177912846940394978734947703695163326846202781513101352034492174443482464821626870126682153412139083551431528724634025151255098420046081854171466274858599720039983608353901421363867591746503767509755890622454617738432876901034005070832970232422469342624517189939648211136447342424283880652385387688762722494409094996294204733896700184178059302974183812570390854294462899859553034470108626902260263064472768248605804028443728473247667637833687297227446681473019360690660862372396740430036280880998216255815976197854532015231014583813436551350408805336827004162196023229198409117291640738736682866067819024832476719869239235500839953742013402809317648392032389974406995871950019251698122556317536470344330192241592809947282420366252093326865733340360014837027653440213706416012337311401423196398256237595750616398095238135360418341708051112073348561283904687758996367381301348217981395442167643120935504425403814265341314016297914600735798133696704918873412411316907509526985930346307952193436540531315092384206976400342517365279316282931695190699865626852946057625291967317388668360233886981709366937165916469037658582397595694641848887508556061872117565535126422745249536763037833883638156498554461546682949891566548850268515941051397283567783029085299847115636534086887497597160022077575247189810910608159027513142616518830928105177235131927897304549004721520990255349634624380083988414523423801142098732299442243919870832762866603998454622160358039825841012732442004031036967745542629303253034347416903073153973574989921599274363894340264965611752886978751794950056253924470590782490006252910747654389201322096200260905880412581802088283180245483153533853498540482900132482774105700952938621445893940916047480125987024856735890287602924742989681947881660816708269724214687029128450140262276277213497730586913147785769859404690169777470657248394267368835229391432789812375036689349516801806493348462982872112080183267395440599463448072334607073782451181659419940383494829624311968517877116992463750843023759917402998954774598975666827405621960836140555261555007497145482575782012678966406382350670823383563909887542884367051052566505748647577342139802522036166624909673502265787683700671350368093200981678121771963871209080524932191678021280126528266780979212586248197826558358399479103900679658623338424125677160684426007693948596729037521944792727488531213114729551380928001329007207477373866822060814549797308945226884928298386578365702381848554054125576330187340100184793418869061732631417726187246288381391542163646983198911725034809303154377285210176378908486586011526259211395339981754377071251298986119176566102211531589342078879347282983419011000745700589344851565376229856016354749312132430125333041314576454228952164435395384821095575790707373199601522807707947451868709323810160486982730365877140688266520362610184057665403414704495257651705619090012012073491544785804792517864267224405091662386433458032141880283525447657262758535698321727074538346397542741127292217876873360944222086836577131567793870270155765244411975483300969270832350148413452006656047321777625573421429190090630799930113878732271452245394495344892463572092576358303945796348414323249338700039159222998290093781830535291097006695502632448207248184666827523168276610592577302793714551986055844851440927776981927127014000102390428802941552239755427906791620580353919959800616979303393525701310953940114553604490941879719349630016951775727089721618566823852734105499813322598540722995829713791987604768365236067481674560816864299400279553432030073484176340117213393498240418737256109462663581588271323463004323979296199979466123070851860346170172560178350685329776206206884644103910655835944297061179078359078041267437223492868853230686104651252224536986188497783807516015908351043131889695400350450355020277419825741386896347711043101330207284123966687610130031533995622979703767537344743220516947270729196821734448717708406557536989662446426196620096954031859970388896903721143392867393577669729228413863795862401580282589039752122265439050374248528588335508156603315044868563487100904382656553868772061520865874409506223890282591904552639352406572604667610352452934698600940490108744958478545532365633158511082307026411741826242023344594333880798045182727532014532906791771404472472127232400199308036235027041629234356974615575971294868074754321717064303392472195699560938473355816508917774353863933546973210558208072197672800539043097949574585894043379380914594589066611315286786481860589593366019384191891108213826063475396272487045320520471429915207531949578741733787194950140314948824306994514300485666769467588478561817960815663405878256005364305658021374976890825933970145807529092761311268878250356429158818003015355605837973267164815492626434236115562170925753185825894641932795834735358748970033569065818001388964165043538824896433521416011841488159780308368546578547099909203675517349525690270769215691476287718527997388184955347922459567148034974986728569902833868303513918936973272029261048846923576279694392526503997480918388747378094028854996817453500509002978433079979604683371367448999699748877964988644500773496444793288659038257927530750268532300738944113425577995809767803187187081589368003511234079357009736357454147192572664479570242900244224216558909576007414316828366648107986693601325877822452640546605458615783490836362315872842862380226925882143951922533815918585853063070034753787253283985695411594350743134210628069975979803285209751002407546969876939753735255831753216627805800418132198103002918205199610879680578397285811251023546157841470678372665677282780425333274471475627002249386333695779701503084974401666285496594788302288993946195706293299131601154659247584095709734489363806983602293814517785728457546615420923507032434469367116306708248956440695210374924692390222269978213947001411485002662741974360661517539307292060731588615669573173675163194047773987618938317915571503762725747047576639998680756025541815649261643174360176351352323765455092131315366482876392994701350337085011735998099202937103412884064788468871763252170023967622267934299637999511873563835363149486961273996159734970402180093098207112129265828680508995405549683034127320417793208551857414337266527415742961021629927381357596481018763541889989555957494552577215293239845489268566489084667602082217849582815061495575516105532035886331072584392603337846403889485151927061632127020259049440674942288444737596054493468516438378988568357049235145115953187521905365306910443677102586549650069688624806400335221888894598267925948829815596795814539330914258368088473328667722763250452354456908360186611647041416211491718480419629117820427423034163335186231387201400394901580455228248673126189832566564290730564629290599066123193536244486553259377269718159365388077460800756153126103176705026607477437043562183606515613605429995900582015464657687052640235819243793706963937700931184039303309569731016496902993287543253470588083784827557754685197946896976804409341265090654085172171852061363674108703607872047233997794113367095925961547156011036753838526521046187097194485216963484064098427763124487360622204665572397229622574137643658904842268561322542928002387151871939255735292131176527038929085506191377688107040916107665929384351869417382258028279255900943648086556935793847938300588665063188270471966215452230406698682762397592006913690599014357931993886909697893957020840403240790141480333196554579778457336084120170845489297825257964633382200492103800615937743027032889651328320731219141355496272946297114512554487908500221884737659195598866137385437461624145842672477450166796940768799378617374053944492223254336640595657538365831271839552036227777240131019690448070476866956393394459590726213483078351129568380994276135246248813997721436568790679727671100120365328575323003169594475597543456129218933095052151759348400183152005184410197327091906517456768706509538340036511524521770646301801429822792509208455974257023669882897124545760300859642510611555460198151654959855346302996914846319637856662984812515375662809306035845740218939441728097449129864627102653173815144475957143671863962071853369944446367650803756678795195675231517482164739027354691541905124005230579729814750928217555404949535928660650719506998570350837600895479222459993875064881217365491528888871141717851879608431871580574618243261586953380719653482423127924545205818145738119197510264595477979091801317497273190394529002656596136110821082269226906479338760709262023243254530978873265810818787643608571483664344002118877742873814314025591803102133784475628544168535900641731850775738607608252103720148429592104720530176290246415461252518016731683290793017670243007857012274442889677236556902115635499406442827623284582085490617641163130418381901448991380010174415734989541703186444851334426787147434113762123453072589422942068450321294783707298237430171572095775273298319960230529742350038844206541799254552417222209311833623730883587861591319529362811166237703631519646041859790503767756839856557670872240261465937242373023156430410172413127611980112790425488875143776525599034496559698300578645733263724722963517989575768106961332318666036080738573206066946595933324816897313157179213430333328180879551249753588011769225628315025057867535357556742208304955679610931996664565751587791082573449637819350648591164017566859152775955835373390270854440585675023324988781970959523625178085766598718651803222448201102365459572953394295992659021749681336254103527407638768747153999483851085838986901787345234244223924815272282954706552932029026910690199453505445650904721397941105509349771229366024826264484210373248091239178218018858385963107057520151452329724734440355476806940810952496653138248495871485013987210488556191798629075470153616009696616243398589258207057101448821476805174343386706550329502379791532397518524405385414218296571339242507226815790927979964527363552937955804393349702495658665427589983894474068633397864911495989322244059748668075128829872489906327006700276871907390021813960773305935280193763831568488149910754040606995560874227915012966842060560613011890114812989184856918664374317580072902847652032689630098290141739543811590838327508027454074705679614379684531077531183378813544470907319103763288172160046940815035908713079405446493769495906372193218578926169824680980653692231210690960961873570087140576881462185469333130835912038411125218807503455499523645568696137947000154335606976170936350292913708076830984273635299676045786519945871644179981266148948418592361539561692920899970948148109789875344802900278449454750890172542161138441812253816780137786908209394290304214676965297270265510745814101581488610696891099815064037412246563485673114034908792603402858730333671927685838908677527493151704396346936393399577355361299512029426115747151878137487694767644016091400001962232082317690009578644587304071383396250147530593934811471838420366723220521946876046152129741534571180600896389946038676773954903530941397749196556013050183738782910104251850170281730599456737231120459250906695576857235507607596344985026038800598381993642751114165664948018336343076363891031118197545791614974666458482820771403638844531972061989880937696180943790810783156203317474228348765235178590040688983063032062423707295504886879230984438792662141015424937746784584858687464096999424677683225576566391977643457620915930787252270212989734714149868289346568350807737954469143783342682603993619726882801985727526222044024495897676831866365939863764845534096776875274606147659202752049768146569408587290626766593339049767376726534331845770914392728868057983729214973128658067152725460981379693071242658295329580787053661913899056271712454024252986275796497497533618552661064879175035939901502737499502267712549512402724064484424709753612419861015746995138866530405858759837371664878599848293894827177977973877088424362327369603909019403541742254934859360497012082878118953169326260039245353905289887460798355500468810523276506481615087532457166647939823016306365844623411176565210961254959715682263505994508889913463582184518132438080130800139955800235923601971736241860705459788355901034277262140665763974923759663122039187986765904447398851212667530780115435572778427818658765281530315441552696797309364637749907763732299546406895644844930098923946546371981828180113705766851982976305245774769219105141202945744735936885636565194179063940439621053927277238109814909468132110804609742112901950025279751726820094320216506042466995035960730220316771466894463371388024768091841689299541918858258133370206449632041591038329596606924550217626484994986531601924624420707861470659332223024911352498285929486566160809047244342473300805667642879416860588716366924657752504666641937282418597824335001797344272772549861171720520106742687196797883691363234905570801503855806702119243147263190316352118014227357150811138956037185067476548824361884833745760453249427090990323690583455865170484092295132255204131580734856174842888590175921977749035911160417032906014146517825224547168444304136591371370228174511085433182779138728210837124834887474781615733653502741576553024480630364741727292951893647753388008323125330375586634426654424616798387461715417071655389673797616658150258254631287786578504070806443781668263493036763412926810492810684343601008983409301269627537636435289192581971334657910907048780669010016780781971608473171465378756736754391860314472583722281413344835918592105036644870467533161779463317171135183644041539586688338051323009025614777014348420688736531780259079969319796766798526317681466260633921128793455402863044367645160058139698999308087590137539252791406354812777565192833896811040085563314406763642373616535715888624630240854409117197728004573903146160084149942753762225954892084364300745766125235660397770296631074504408542894785473511610125918439286485652222884289387162536632169321501022341163301886423782760299404875480132461093611328983552679534784681284150736198059166333736315695280329186961351163553527487011979943763183881168023034380016202541307016843096368852424300309431686717193774816104212703114565700685208093609563975791835944035136852235097151961472423796459479443375210509497324990982088666199425332317533900695349172793273428509205657305491263407537541783837361227492671630184555842527798828897739455134139479168301465397980598989929421792121181033966462884000369321086174225380235933097716623071214709238599808937237586765865611058598669639856069464210572195464715194108271302166356020247186941822708824495727738472256346611116742289500047344696282899486438781181870269746379566098171291209662926211065428722059257454802854810444601704350365437188575882775180080738595926564521706985578694633443414906363658945032656708978382660275113758835940302661901615487773208889138205338387847984780709408094200299677764717056258598766705481666009332624284643386343282094417293029680124929896242201757994202109043774300268743556288851133358243548696976124111588785092491788085047523742965219561709316824412523751956809667331912987462654674973460390275187134789817714354601871478702396150548114236992206997091185837355341892690099323370836999422553448945319594034999483793857653211460207955449241728091981504568176760139815090643964474495282055224560422173043987625552951670690829505160189785011813410226149323512931504451388503976015527805415498590045243041202633596075092129562841869320548105157144117507269292150839436429047316200342951417400922842977093302040598928395533152953544327233767543827042594904057250969490145833220538301099329732244754438760167125461855081951521157230485887773398160921504730410518075694061727559428220213986550825946976196388590481909341502688337202234486459336039948280108785884909949718032952459192366939703546711207956369217776932574425273075273831627793837075162803416792089157005332036863076049622931802264313233502686863402067728502446706646708397809896178269864103477463935236433195372147739099045838501553857824584484421025529019258798461930379589926516767210793675376357848547648553440607166084325270679655246663507652694109951931640582573232142880453419255901670119173872512712100901226586348638914279222330381530866656011404557227278415574593362680173375230973049801352166717235408397073417735998883846304529181611553701140679335494893460562273856808443530986035199489785758000715480640855045798761883625007379704630466173033045443122090813828853548911716602648500195296988516439222260568886393745034510913884456843264838690181940946815930082818834323078250100862384294881337549357121968724737405619506575876860376793155532224147938731956958196123707440216613659336137295475084868316660877959968791067719640762535354016601344540675287682545342612776933454111001827737493347628528422323354026198970614149152457946075368174568401902936893770235559885186311856505149389023811155562388289238473749349861284097171236118052970521680704293533246320317115924768910107689737539247353064458469755576457745229541131189926833403872961755320351067488996111499323825002410751056448501285142452945895353411551705530972385511852690004824084285791008924362206316771315229446733122508426907468937141767403252673653849659479041707564494642957019920896750436234915397663900446113583740330007880283278387106796422334248833218280131685835004486039565759032846180973584937315346045072296493089167757902299074374093707027874773909911864949915747682841444628512754166595119661000345628693513970560520780144919502584274141534335188620377791902382211521809173546210406641784122152903888638813282778568864178355300619391947532324954518048577537210561176244279415169793471244439530783873311251724724447753446184395025672021298570040198537142257700183444871691448114718866987150906834090631320439163750655068369008614031513131749500182726711561809365065241623023703665806742083549881238628142910040821275767076158347429076522088731941736442987311621125515969359032530644229927533586448350754972977770760216774994163327389351062083691564782781387364461274177530520978514919651955667731878724855372480196809442418650587312290177218787644047819811931964673538908905477452507411959832205603996772800547875240924175240209040459519930304451575063945771251297365540346514205896966070376685945447668447734071183480043599973893290449747875986237395079163891177846897613941630951695856125517667480734660651716643308631150106911104400569517117838037041953181873409288005224322392907073849461981672003402594385484562953504702003294283721751429574500761049642872597685237158116278775409535745723573541479364540611002987633483944104734764591292385341441345700179142570428677128845657071440884161161817836702295472155563399916531470027005333380617982949848360175561681291095299116484454870549867789315869750414084279482558392442599817797726208132032030400061146803821256232131824605691368351517855464802919934992686794776052265921572784434852639820136849385586727022772541295761494422495751548466228333437883490270095859758561641062213273782328219164071569008291923380649009208625815941002882960793440615621623557279111202334936322629469392251733223056776273232004002798029178698319522309069835194639088925852397608890498668375485805853646373840290917867167827022017761198231884772806908093601210278183037946857645084562583016481744359777524452044908235217866544809339248398115569885211244961198829514680834666545585039283904200047746008306937463971278709472437229157429055424960984425122685689033854888113770742119364426820261366907587320959429716206811068315895829650295893097446229298601344316468120834722356663273377278791810105943363723422143037268871278486425864151546660924314711774779821799318759888664965086478522735601572107228832478262255567405585528630641842874192059822695963358233364027338818344023444131768675965897550146485068334715932606124255150599183150534839924540417998795641456098296081463957098963866072394164832393911096539393652797973110322507227027029522108889032347174967832835588633825962903506776700995722710038012662978572307477030285133078177399236960795789051808694825660271648761548376073281125236741732339780662834849383264618878196079107522620582944539578766776544524186785353403756945632604252387113814924056923543222310516931641812322313833495236850237198577574986365160049091700511434396633988709785477728915861717801334183382517788781728947102287960120981163704259079447308188783221942170610429482192077303167372218397912747750810836468962843595628198598361199160280800946202788363620269784767544568733003699601559432963145432477825087055234180268141595327818542285416480285879744395665285635538954449827774700635999229726227309567842564111813325056992333192646121920672464202038295114785041900704412976503197256524059616312750212696386154476230614014167710251870609457615840284888147055055518890101946750851515454326941391304196200997636105819810699773454272932236481312861531864295931703945936052698861039354260856801205131564143296742092829936462478145260639089530080009900899960699312764599602618210230619751799569719750306692003108950269595416400684539131636642009862175385094242498665247515601947178637032143881574029207909797354956037968707972768977970746448323857303303636139293351847862086129608907814819742608850616114553177744908478727041866251982332798921669952529182725102062314901778732683911095489017968987520506297096819531276901665525135352994610492195950853187490390919955969702061698671275259715782322233241664513789702355596886794045918536470400742300181346010822825891695464480187171354452127418369097177625391581234212538341014159385519888950114309265916269408311041382028745237828250022048065776695719162737540358418632838298796917158437101047347374389166217758008771562550052529181947730022504342120301907861013259962206584888081882881948440359559258152652975723899268223373996617075046993247409696906435474739320436476720362600145303552203268389307278241528963730599855436848502637531024504337652505343653853208107882693894410023856192721356224234686942342483054863690727262482419827957239383234640364892991720734188302548883421432303552974464093419267124434149780922584167885482638043519374220269808578118352973257293292154629672280246869806063425231226406781442754574605276007407524144683503193057837937584513358419098562653450735361875652029385190676261839957412858507335150845334470275253615952417278451947335865620863025880385571363273589472796910148538517920144092591845816519173400073684263383386297657493342589041735720363588324976214359962928955288238252539174690925028948559196245276189410239328238695977669357548404446949826353265525756054683842462890758270933628999934684878526805115061763544162351091732354101116171647507298087034467391232275545354580414496054201981448588267022438636537121508171630766458757094891574410928216049316045598659516195102272111014634350513752109431867614228236698062183434106866858090825517358813437098153267349565031805063977017050667768307611022601699259124977474982154119194926188922026021610510175496080111301428421419697111279658140818143657777976241486449915036206478631614874558885488872621160717995750840060224054942505652142759964171685140254445498927114286486508899183018966534694728751019703548278141948381936916558587720078927103207513765237686034636385379468642946493484263584805633412419102179632107419749029898564576751182836409700080868924608443844555766944519952132273395952086241969141496370848095019467954599913991125022220604938008602723045202775741754836431105132636919860505470313584410140469707019886477961222154905372174574754214481987481311253973654767099945643031767091037526189116544411531606679126558393002617641923605255794163761412614185725892921989241063002723327570639153849576441907997344451974546064631740009460834310015935141230764606273217262097859748773212132643333041598350658431288618824534768641129498212963666533994838359055655357868251522988271160592122712045335293650193926940627918225580320067115442862619185131838726677446263381492852608750385682421933564383949608951069193550905719823989525218130842551317152499870064669559608623810504966178092980350691861034767935143566431336221297240836599007592348591413183479262719857077617265668969103463207833544768914980430435800634511383650345084718716321262035396941848865363536590456879937754954909845402484580519371830144390392237540974262325923483002934371033724271746335437884982131086656132839022351365816998229230448464770041322246754391973960240579621968692916282293269328706283549109283376855395494783279610820783758854082565481630589606041484376843067522655736940824700142808433842515087332285575646300346437341457614356588902152886148936328840372408042904768556202183828733372369577621812901410867364795695835370135339875656193846201668354456339245685853024072938364349225915716473190848127166447110164027861738350233179385814570731958416366014651070036714488741961034711634095999453775915868069589451642790456647894752463000586054808283438939899348632971013356726857708064695764271140902856279515094942193021239532236718457225661192899596907393352797162651523666451393158849705113887990638430259805155239130039833559013307912799495735143539088204488519001347958685434288463182427949606829560107932522717690582487236736248707826444620076740437986861697268025104998666072494913217646507717144575885115996363208860623175728788176475455500893958001985821743852819045721211999758736436109482167573795907302192897562227443679025352841642931835939680944105161453030106334201525706100981685979483885623524119637759029469817065129708649612996275680177052899388703247342052655450470132778363001952678506639529183391443033135651004021592605000873018271978029585313922758462967685829372436252626803817501476438442467780598854194745489507810623011872843801440369903816595069001508795413463613421959609060005672369545173422680888409927622435456897775951784484349253522542450575515652024484344032066600221125305225903561943331938019908552000835530650944732628410434644481551279125286985582366826145416396264803294723558684674852130682180906347497675834199539288722550094079152736428451777072391168039144852228161207824294601421391427454401331578686647013118697621627195680637539188148887082671448202323049880026530151182208861830398283211865617070728012222551497778834314903678660911862583585374909548900154753239471445059829832735848359480181006470276632061608843790696557540425869502555543705474234302955164124852011223934798202288834848713341715212282150095190398197474516369575944897762299205403924139346325628550538046290798844885372399890248922443798850314734982300673857470995521730621553829833173286322150461125634832482041342741396612287001556612883893884465349651583268378383232140928015944261135550878721354284453089683419863678481349455648321959872183358690372774421054470520539193778533476343610398683068229115244880723825175481223385602591534800050230711651178887681722401906285711364282206494690760399379476332652374984267575934117170673944757878104639600768335941900147118072992026561226929382570776002372061750014046773811571494346647843237951532861098535579420574480892556338000613434393641763803668960012710847824418382190973156290403308348053999100984405208998296675831292685521001800222939478827287206646333949899264819673708683772799180721649591010466184035361755157702588180435274882778893046855107156464403421033819852054869882139247550300653041116085350200018773209401322204484834789567059750644600328358883736912102569615802278537907763935971352538969634420776623911440557115748186813116002532380692109382509247957454260476398053735357544065902142950245806089401873751078302963479624857476630489610618298507348910257156215988554921252163026059854944284838882967076585628442589917168991740390214538677302139290128060428777092602149135408414218013574575104115843664011411714359964604594429318841672057566377307944731962869585132311200426233882253800186313557833699741607917509740598505158776720969361921305477502832153851524479813573638403172572821510044664722778583568252279231056959049492166007281829845898679017746848815460208481770225505921872600925744170705440390016641423054693492866719390043894821884627891108327642309867257683254604600696642379883452141287801777966578593800466774632649155833096083738287187996324892116971863180869132186124956251827378179427646300634057325490896326095727558473083377540662918148535221365366508819416702237115767709732525176474650815137071738974068291368293371684520928303370639332751621095102064626693491518146699234896701095923719096418798357792110048620126951499658241219814182829400792405177641071883246886081876686720915774222110280000859129930588210614458048714902798661046987739453097777457446553500438558994224483653033640731142415257987561003381755166975017717480303002483183310789098724859294262417286914947723444566826420085027796570884396441018604361256684378441331971696115576863695726216075724905733353555923982035008961816822219829105203570922407843874617655804312106118906894259338612387472403634836653873655879773318121853891648881218108716501374416692678624833899318874058433065509182499279624258882603222318801344146886019932841011593083248715605211474994556004625966497859467083870374960744025442268285575811818018708024230698635048030112788616674406346601142794474359851362530479714602850899017201521831845489949997668223348841020110074633793451869966762336250852183581740891906812287563631949075402398026349597738193489365753494246137035398179025166078249409072660767355628146049065202697010639861534975293373427070685633910308696057095842012006786507903997158106698231472572509788071181545909302263270267916269762445444702527617314573119512713188345471870805209450770077091392760307914435740252367110464485961776042645682548156839922363065481572932032216270624969430888147360464546936263457507673881083575972436924837200557803519632843674667929777640297680124076626154099583316160000364397078034787812769563582351198726781100985099068935022783612887567325389575482363587857108192355917206628450506147072150635718299493183724902063480106123914564408954090875487272923149489566715324717109287501962673745547750540137047497097481547248725695596307487927163909735444557437237377554034476182633355791961178348400734469841822652232931584402687852835577490733980459361109749231950863042458157399258920133590473998372298614218542569031602485837120313077286678855466246387152408531091665745163878594086332489278428367772674399984593756852081750467696381972773640263997417374794944228521805388589649595103378412335484759311855971574800626022038994796519484057262867094250316001364240564315128718056341107478212752664466328849575878702768123858501953333875010851032297236335740460303777151215928365394755842833627566546413042779900572484368710482231027758276303494448769295550001077834293582391901564029707287490729106801685322748410758888076225863962968950562127530444383156121739450483415389759658104406694832730340423822057829578310893806226403824116694111499201213947528676383675173347743986280424378145876178378662522288151160806749061351859567059131097748606408485741551001741054838167306902534967587108398544904814545818158226182100666166152358160011832135520324749592664021535532855169521478832100429568964767352783965165558549356889976541939975481229305100697397688673961297217136939251732810698248306263681470172066032925993761547748132732681940586261156112201301297091280292903005270222295567364665718212789138127417733217407693203414843577749417648338155938095496203754415453455701811232722904870816853829435031315742462270956867073531391187631813502980643329859744217011917805988812841618894638285172770160873213536370224817146599783247921669005291159101031354292195477343295170351875717269416587704011323211567737956120215962979034137341537116809390491909652449654367961101251784229956585227254937771298882039510418625053028050287928156474588668498961654134722009541915067834410285217985320694155285983099882588326699253269346592180961612684994646666644691180720193609619084302574199281001740177455848202601639453996917658128623265569305220189479448717340700353676489538901566943137827326053972105116962559152129223341055828265774587391281831937970518749289033188859466188373555188568582335434008236226775718499480464391657985969923441147042376678018239266994469062024910329935623326819715154156973411306155188540657894596897087583283041013054587985567896058754304912079111609801503767470457022904553156157178443959583180297909105904883127960949124245040359216723379968802652761635315892737879452307750681688340260141110797450715439685868718457991739607356823622417269967890893000478231126201685371731117618188554725468240049315779944522995489521472450595350598248036021005136876074131622531935239594327249514099858405938858810890470413969483544353222274275788726722586288757165161271835319824759126864574724252199475472340578790146884012810452877259676618813434555663037783631270478958416115097451804111273222307514085520991561857180382058293966335143576493126011851999833866140396370458036078783093400757460177588242791376495718493713502966078444431170615251374938456809284578493703138851261361764688575094889018510720882678289555414611979969289132006431870827828890957908597699949792519373487080270344222534696654945368581225884287636046438812297687128613536007757965446485970780813901087664740480136786104794035403425502659404975488505363867505178341683097091745355909380651398620340628722134223966990199394201565456434424793952886511764973073976212398276738982739339161248583029093744432030906300330453964216989775858447403760442182116861682302069287438355108032549124164602111621704958930568756766302869944786757929608622695788908351927773121007391477015846795711073186318168411297548891694120554722284169662914189916918616403680886172962370240190507739738658831094009495357316506345709688245011023157460495776229895855232920179244249541394510028687020852065836390816555649091921759102957924464975878222497033940462862817407490383129363698551019321277281776951183522539083758891757142808980273945716822102770364607170613137072688383054482048679495043453552808841076862800985184969316069880080575734177322873039056564798846490305133443187629808597839912192906035586935615549339493632687197574072212438793874321620051079033046624605662234143729791566680872981748151592720343671900669592274660654862732007212106650306769469261152065452012262183231223579211840677021761794078040389818855496615684072272614913166195297099914949500255881261285364423982191483168880985471274625988244424142053345888760921001689244808121756752361937592941966400622609109573438387082025640575171729262967848229888540077458780570376668417847411148271315073359575291715170190948197150920393706105179919319912832003322099962553388405982337676561706976538803143881728151895881495775201574940315465930160070842475798623032725567472649235845733437047173346665637030068853937261889842271054521850071536079909284348752513074952615225441190852092257672797164680493827132326670162336691710429861861302275548414424936131752246598144344669784263614232175842001385500908723917974193619793155742190764964240175999537046378036612106112488311792794819577351099977654365354795301537366422167745896048648051859280185833984668328905710038392702173698949597636447420939823414426674507611001791188431048787863142595019327170765268945973917567258611676572216684823279724873977554305672484701354589393475897499663293720633582932953247418851192674742210473688635488893613822364284418033645184807926696594630507942775188462833667578733810812587288540555957527724658158805350901212235535053628093953178256743864520229658537235781264396269769239219332754221006802475732093616748993985980099982900974755229575827693091260595536000041139704129814286698943450570619142320786102461376488421136658016157561901215343780190468883872052898756108968320525526206837537559018977278175519388969876001545625811272154156880697369076982120346857555740215751797882270315992828901164863063916300507854574441211153215968684663405217591459177428609904141820167553964578224118849707397958185812606526814874064871672085290439269841584494124595327950509298089079058674196282707251350117959038908227494096016885129281403083746516264464676584766664038571674897275622406603950011697145450369458669233687439664921154432433039721235623710150217349504203605380239580400209639535196935983079153037328603308446262495839909911211480611945373810458909791125378074909017717268731430737164135564956014226531575255692932703554634556236195440649217352457265655100895116686067568874037554967403377283403727636354883246325732605342398136375701938568002007941203503680437391659807570523218758893080950222549395061208148083035361013502386588838289621553164931850778385723261331710910317048685403687121151346051941274360812712989583675102116407837990229243043683483375812363633738319012164069861268496071184094647538735062008698534802717235959662871210226748036531958196333827375680336902427450455428825259518163127877323151167690741012418405112625736520993214997392110344659919482606888842123726630423172568693291604794695473247587484051651571622467651100666111063796636992293329320591444629844852716127905076228505437493476015888051713496791018907241741946909309694413763786604588385119880909821228834923525329428470446207847872854959584918378765809122827555925013808237216365772821824914530080266998428363812522856780882382638098289056212534956385883945100194337949832547129138765929035287548567211651612654356549364905061990390695159972315856818995972284758756203475532737550865510865681281475870401908044667373645521553790454000149929281283513434100943862510813759391021535519755103287383995472033446351201804404225526807614950526222666115121434777452291300886874318664280767398839556995875712127345250999748379498244092835731525412959788455986081012466112552396055719802250744769558179772762016943824423951372672811375521510564701069508836202051240651943597577762941827760055886178745924441459222711781567501563507427345645660438895362401578342276924153260524573276336106617814238454015771623609918358980614272217194032593243475219765025610030371520136308451197596367354111455346514826926284728238164471723348378430148397315146909301141544480906909958572136289872392798893390102226492145016883841317605240560126579582892530408730536026449929751671836617997636966547395703168656902724573201751845390410061317524639301167452160258006371796017237378646747777841485221894294806641729656773013065478091304202070835378461315539608705606925681466675734503249570301383840852714100990353384018440814227094258557126569780923231577163312285244988668870919591674460915067997733004897326954728492489404926952754406509735402703894185803072892052945534942078660650329757269227948517824283393518304678707233360175410847051364949115335517409285835310163453505350982907575545291117555369430487162585042433084740541019053491955087386274341546509086338473640654753917881777557702342105380440245558665743827569474715416845096656633841881605641382821902285000477260988084094600261429728842531748793984305949877518478525665210993659050410924044776394775326357639065382761936464118690248132938940783784019527961373879705422587925706873263786605349657131835226460674870788022682861453410039441832138765467393803056706049173916172992694079545263042985649422095272248973638508419307790488116753327748306014024670366425300954067182764173575248593796245331541427399206633577811448380522171511966306357044706980469973837567311562445995695049640825306611625114838840702408156634878316475498612566108588585513610917055212719461116014771040091708666069741630361597284881619864500557118922460133999483867937164493146392831349142723284629997347338475267880128354600751635813821418827779616080822332763040004387669930304665515140981877710509239355350132232208829608337626489603441476337186093471503409265195977621008197382381809130608863499745924499041301665717588676044160585190056089391666357876248222792098242115331109489045373197408444435469001408166985826262549550982585185401310744273711476231718419970010339852519184948011890122585461529738721687662307343412063488729723913909717132580287495610833551111513753869012949007590326457590170628145172469212048823599228123970542708357940131122164693437194656517568378719846657492343587052233988771466469808306421747461529536365111120985659348879038988315909414405285192185585388514043443807900473716431163519037804483119310139988481839430956057000033070009289465083461731307376997259697279252012991509772388966207562244479262559347240417637460201389017736423305468122155955914653550744491025805687163356348315707907607187446458101164025016760337032311223156849974736125789038515058054900566539065695639993813854908844870958726271456990161879883163460035691873752831732094500386895386665801847491412701913587221669200030647457533499734014292363266869070941881689236412710591476011818584490666832314689104985003935617842727247288710070910063197188640855286381151859618872222649401910620194548338610905204967021788607174440980560622223786231936466029998886009686136316219112179980454568065486548450703789505116036632014150291818657586559448693744259666328165882768907242051355110019993786664000914028796509829135087161445623918052337670692190225143265768683894503516716101423188147985978094426809611192801629064031816837383322613963519283887382483071034519035247225598335471127406028346656817089915908308470724466821404794959613095879841286557838218467083281103032980427950111139830130871899358947759349888092113930553357641691837025015973403413308845923619466541611330838100743265227196393339772320042322058515296105639007326764970455055426996474591026057862454684255253441160823171528337000355124337440512727634504814399308757473216429340140610882604459914410876042316247319322046552660374871425022059441233782698050550459899500392744366776620295322777929266740476169119118593061467847991691841483519266081782435495156734106573720152220304493232415300248213413108990031708905323165615669257789002018609069679950708836149464585907126862935644024370788043832541164585717868223959918868378618410858556775133696730460587760710024660813444308167427859124920433339345043342301588943478192574427683029770427338121668622546509000112230876908995605108176226308207569363552612474019361911997065192595816937307671056571980205540344035362077279874280060393759807846980738876420048020230856888827674551578642704471757529387455195510768178630250835294786664463084980153702400456729859163088997364447619177077997345010939438416326593508648390708334942078380172506725422203846597946582812208050339366129381600892138909073806735343129538893961155179998530300994060355248102166233389046249678407106709770350982873312581412584147346879752203450569301458569967395661648524026257676139124633548528318422807666586624395279496252666517873160419697837844796939686594846691720802490780883267646236690519561612727952115267388210984431016820853616042646367162489973174292954553963796446769489657470252967672764878528158672972954471435156129125687389511818049744603942901132726101261358971783971011745716348354732076530674964328443518122761663440212294005191070482291058502390783389226726287264360521601773768199390624677764928096247031291842124115001231123671802065860200446416531301800464483359556865755729826821223602755511703294075542370411629546501474520924414696363241273535519410749524659330869341127301697174685645792645718830078073711438665682807125734264044857358820081136381817699770889871445813497439340706083691530763577597996282997239958959668296358981868818637575686356610728256750550649156855687310656756032661064450671335674896197862073081650908970681717765893307380766110736848503837404156357203008693487514487135629745110329658353260111444847811423191528479979880010301898617711852479280509702564806446549800459234148178551476805020518395974759257253104475758173980939477483764770124252626219016636354582152028880773849540550475724139842764871404544576135374593277082808629302143487501712655808329935382832217145131509042191874949316596769328072884281299946323876803848912635453006877851444447165894970012706244141137742053961424713473735458609570285032031705001915708207780245964003136013298300156874788441707364735983256544549828105805364022277597802096606675612811367011714337237475603692685238000936263094880401114758765709676330986054889644011906107569051933114373548291933733311855215213895440593392909031867221122824617387197972923078965649411364922557615108719598713287069431718905120859090039096679736211701864235505195448644573189784642327890118773070559290352058168904456603789628359342849489159512157414588479729251911715416883813976348721147260209309815536127809198402460981025264841816355438712236415671213015234367940385427193621984726770031632817137596592856026490091469591041000183025182216935215133216392167587460499814389909991034024278683125395948596227434350916722948384856481024992044751630587471729112530198438581314305431748905721613862866304061677511305727807493776234964749286849389151509978098162806063828273257500216108848056098447882356255310416871447859283554294439543956561540612850534823083603523995070526544450494535079421266600134894172548576724963299955268009060908684571215257032378147067367712815349899762753784661093007708543908241730126522639563978933726125533103143871236290308463379783466522362074865679731511870733127378716525154072510067632849906646628773098374443705377862677790303095161856121102741856000516063550810462618184694063921602667003826705944314045731063472818685941540631509707635741578735522227467804416576820759877936977721249015934759347158321418114845674102529145667643973604249990542941001274869748726826620833029927545942862507802055228033650615962228337440593970875241272336714670258279327461693689662440204944784036666305821155479380953628766321386276604739465885025699003861735632170137191153629140731303014470162716649765235225553949450520430549126469480181585774503539254180026357523432452727319554466967994557000189140207856132683462088759146006155191256525401867761303423115294055432896752482735734260220705771553009859186216629670470245136090333064640739951509063163919667310113453841491743656058785166940887472790004310536921297439982525765366362342241849950991842516867082870997807866703989037139392586545879716532996671162013788198680961439655816370650270778284574611764535109233090324374366269679780484199489181365038732624804260828386015853761400681358373622631290802269463058057168260373243266799545736144692676291551927605693791590327488366814622957155910562269726420515264074024637971089647336921105615431102045761511520411625356597675955020689486850200456838045903486021104518675216140905255335895570965626201022880038556242614978235077133542399937168547519176097270906508947738074028909888768477201865406643382684726045401810160692614993974890102479376563341250004063512170458530291026789260048428408822609008612221880405360423329556500730716363864710125792402344840506337126177498766972994074309280438442618664749538009975565042519454888877601206312175303214386918107439802238368962549538926303473641330590701266103503114839314295207623960674181978970098471384089644076675925315213797230483049870618909655993722657245395246450560402582705252721624130747237075955457166566353992557880173343333294929944573921842064750407576510903592240958121487091326807978078789010261982459770714168001500223227320165188406639686577071718037640746119050338968541995878692985586776058846279225714169860269297698779529530959522804378809557704153370808568439108092619655493258558320458463629207523959958435641377314062419416780688967381609939277307030951294012531092539941371960951562273053672162163322773391516338064899098022208672783925634771225237429997724743308012290373461598814943873763910301557801714599160988915856232097601907646926463172970735354509064328132410909564827724752304541780431171557958585162044871188858708060657724642348197964080498107999122883964982677925397612925824436069747449986945640684486940156995486749365231985898243865804482165664218803311397027144026324678144714572531266713600784857025104703390417546238386751490470306673189606852468051725201105191411308518077205504618475600051460535753596363249643601188763371955940641679182121939049920400364571704612751389184242614581739088080796269523306896684808421160800118794129000525565768146729168605394431797296528836285650085511485297690151654447196008187209856377745795430279497821709671763229803221726638790083655671286515716840105145230588456375477083530293865539692690757843235365007258827813486668219097424761076721204639581444931429124008404822355383493198316873558898190074270579670049476142577221636380446627651098405185164345395079981729052122058393068172801609976439528200667023823818596552139175230637939405373635915111810428964507273746862626002518067757741213652755219345669654107211961612579645657716822799491107161081933194992641108958519092597451289774643297223289815686882491305037631089050350173306336193827500137486126752875243459473461659485672165946495778141185268824072641447461634928259401754505657670073819409877213381287415779234845697328247287563269334566516475660262160076711700187019146550226561958102811466476820622295099380400194119231102510180755057614727473491080153156679498761437860847746239402298623821434871443285202877501907780005566281238189664144207974255249935720952348270130397985687958434513842434644101167084491224213708863472664417766922390350133135582390410790189123926165667435595569375992092591964751387081844880973270579258715551358021631441017160464614739985805900325670563386746874257993275749639930450595761208264035498518106837642698072834107710223178789896275635128740635425690909883695562002407703168542522421446260497050925311129965864778858723759005480146714530979153276942408426572876509452695772941079114005016879671211597293263659604132334744455748423094256912708130793768355539695191605919147975419932480735963167750529139971937416339378254481022012504460334118409691278671052406526554093561969614626215463284734540907506975256354445730104216851593588853550380628959116183096907701474674208920123567443088062632920972511385264928231490077344725000499764182232129956395974972526992212814303882740174064511888039133850907586172679844394164176937622735006073553590215417108923300893296515412693173690167261807243768641000973934819456775414699138182775572315618676539247175528861164095516337124489347468566246407147099298629979359501074306522075807720965627513533278505215650697606921734208188853656772432618591910696289684924486263408104739370360274641345350599717168650995333475862577707825492144956034647293301581014704785715382745120507013652382832917901364613200999402308249934596606125595095827165829222908270778461668896008707600523467197595529119479788990909906639994659187996894558096455791287444701837951888266318153940938382561161598551254115994463588791521233021371245638504562904582446195554369724480204805591189220292564252215545388203907718076885282309609710018726010342462610004863614971591149252952767891688188424807712262425295067774034666992786264903882765323558705046120511969648305451893381985118281781439989705187761656619814587466986750307665709240000303130217046648095352623188392008248274475106814927229095309335964947097117876366899258381327715308856163812244885682298309736722495372255987532446365891592896458017774335570977980154408155295170317611630897766538426123031201209574169710294672706388854052866062700933391389322138263084701689115699462057952769620151422661988787001286878934887552609173337320879356575230363861095241105412852100631027854684919781189190921051590670735012009650475573464943201962500647460203123679439350942282465080822020595341928512796003788595558335307981277558471326983793170866892129911075881763063627887828193286313842828166692987402433975559235579145364781812996386061746851879463855460785630495656387090699327346852018954228687989377647368065560921944745192194121165024367937471555231141571414598132175943695584534371342807330499907598018992842165096651230733011851431857671972175662219911900785292484406594131710759329802651299295640354690628080465260640016670360273651293541364264500676967481191265478751764329609541736536463208551729256332956199190681949166521892676657813265180600828128987299110160698502798328895407993959446955378539481201503762979085199515881409609835286999138034458865550918521481809778980441936772829117218071772780550200114675041547961846231342796919302239614792805817734299608964568644034351724561905273060550796589847979015986787649902627440748987256085104690974978093298434416451016079414551058925214096084005209972169313250046278871205525070896027827509943893169797066847349195944832465657621049516225778682460841636174383120583983219461153431704675932256108598782634229430302347775184852563863762283875439424042064867009842052454806243233270581531407370372112816050655521926182300117328296478625834569125236116508482739962970243621833149710345639942873321692651442311100938354612608591843671917435608524206635138579102446630085339448646208842512352934799428699060088093729641041039588152547350353631308747395933328587945283862663447202355813301668643061300035439692019088119918522124948849710142396971603376678387007797178686278716789926571679996784433951587183492711051338198319534755721337274822899353595012879422435988176853675255140775161525821125247214600858505546266123120548899043951272763482539593447001641685279504767496299684694354414059355449752946245408335820634661792347058365401362560315130400019537233458736973733028569981824872686652711409365923835438177711810177443235745102352496427747356333904441457724342735634565452524940473502229644400327574111543160472182632498520416197874934908477209735769364791170927502208302764259551382232204973923089807261526106916455825292689965072310822368715976660190360631304677674888492204931888332261698184835600079811294592613279054135491586453180663619393661684258671465099121437122705282056384346539457177061603014647326261955570888400110181049318529622379512333934349197006805445429864419616827074357243627126994188728960583358720838667032002738811063836010315562163712937135255471408310725611095392384742204529992930950350359634323608360514450583691016951982885499811604268429740138249796001752760930825317343885918143195420992948558531753057962306224001744720825466698480325645522749207207756224859981001144523669933953222403965490151139570085007738523892135169509075161971249904674543386412591737495501424322361636966373342072807308916155780035316812602205468544144864120186915476106086940103549845202847290217371454050548494523736324194633699509563064564154249632405053291368164508333733776184438161257525473852303474567636340515848338174394594156609103670620356609958741580657794864709434649283091282595354714166735315099034928801311179803688172505872759887807508623800458135316410774915990705155086282173131713682779142349124060121609111654636490713522889291482856593756174594586256086313624531713370710058255910419419149203630073505509732300031656990732602168585227472550482087700502930477786602983185219451391498266221307653472134980205186330380600351412911925177461844385860765869930834716431651877368378112990767130950686995366579472142402703110170976588233623299779263880251064477021267735905281984164667682715891299660202223124294623167793708958518375559058454155613039346451470978437951493794802739183422096773626438554218325828581401181036489062652309184263588739900868160134695738212186227351881365105661199772546679743483104146984100806533636274661749736190960200442485488888064619409779807039589171495168914334896937699234801231929353607452344477898707502805814102777106762391449937529391190256150820975525622609165508510537629233550474544895199725123317359729542684960569369699171933247104442565561775251504412249374342993258796493835407587672820210555883939210144797034613439526953588051018359747713198493642349437374655377458152674613744505196191442675619540027311356956410941651566207001394717990719074739952543228265271908834713592829048663685880676463349165569097113656233928529982087001043732746802026558353922909256448969758015120160515709963516420432153950386774923984499650879507555121548643555627382361165014289016563876669437121997795372052509665440055455865244789299472084378009581188257453578630093998507000108456209088606940031633521499541726364422811136681303279324780831582201123978863717192174488868152750776294778512664894492143472441722614487898824209960565168791518091510627148937569407304941075277738667316005776744013163763062642209594428583389513523695038931443840895322527056651544265535924718473006566405804946012373061147042681979937399843838721060408117267797859773722486509951631008803228004922582520113691678899592423745356058636656325465620964868412171265718739579289131118862705592463864253944591988207783790657568590100252058887405760131303310806877652049965928098196178346314254492259970179825345059853898619717448987440956204100721762781470773474287609329688988845798858083786335757742752483188436894777867696054319517458835689480594878425686453206787303388376625095075476620880794076210969323169210382150401867137431551212933692210374813829908340058385790419074722238930772861821100601459658957590794133400228631460065676647269476003297431083927197538088988203163911494532960306027572506172329139337684734336277309524740480449221256860281575754412321179845874637598725678462185143129403309999231892569373340976887638408338493810346925766331354619053286485069137517095832074709106733558962891008835334666117061440699997149170059408131721521828538258410553893086397399219556807999580634725345916039897892851138937089478643424334458536007550072286428725594374293279833673467513875566418859131341578294397043040034729525311900805060011566668275065941770214189623327093962336650993804626092532955663123284601943515812226526209820815569136289232608527903029949853551529219754261752146150189424468967638146089302620055286442025476636732792214441344614348862825269555099275436633848244214642975094080916194764255105898238007244583718652893660607262721842779538085889005798254453058517242257645264827701169073142523930898670708574912976584980325550211151579674666819773189985829567367115460509225109169684496739134157258743985605305906278303556107120859024627049503195187896119636712526876830902612276248617585059923945967932108231521282941296984180408973215188910874178979888475854008192617115054079869229953888777081791536954723743408591275118319468375549018789059631504453253445710169704537715990653222823509205479595169040571131322574049790765783428382569978913701015179784308950464679411469451396381539205439639082084096694694065429652114321823274949140205684181400117353042703358364695518422274739614059321377672201764736514729587338572684323735707931270608778658979119457296198434149378645025359028670781743742396348005164560579693345329632339850451107880973806249128603292099015306215264899857180942720959987248691144824839796307681333947274722480617505722448272876022994670612993597052153899133734837564040915855659185036462627696258016774263412187945449959136633253429420897889772971933859560286929608200505178095242001314726918588385697101041063883861300542071530108634539593341871090034151639888348916463563462950113348271980723635000157074316201111403751394714243957217985190974038163474507748462603399774139896189912729474055955152846653854787384473452943821324597250555958734883213000035771435105652383724436408747903896651682275367805141216028409976833683983966624878107530824113909405596676941193597661910239320505146581794547373935027416566266483299123106772945101212556429068852527366374338054272301847384551178973416546054831011898420312266346609201869253765728702963721197767606113792294404351069161172069966809914798141396764738193896752348936161141521658125152522601656254791601646418087424594742653528727299674217032069984513982412314606129803816635303726660793121219737363201246435112282643792068512719782354235471447693903564451928186541014005849008381386319101946468494834733198010595332491783659983430085289434413828725928321977167975208109757809579964522580567976702973871127566621398045111597907805685029949151879526306007656065402128252141601509365409364043552942022842789531415734138245264770869299958434661153335426118184688732070705853478109768704062236743658145194020512174798640557674777066987108543529080299534368298083723127606742111442816673787413327285286221772685099327452579170288535766356318079187408166603383994162179404043602072695637568247497639035704032103267398182838313707119095580703320050750750756056302877733949658956184771519288328630292091123071524593732108907818341307891474074676012389177831881205337550694165758746410014216716953332782085496893236027098488770161286005936708573304642642672738084343369047037074902330919427255664858619758111549883702824423779946124358217284091505705033179107498243422785704296210503835111509557149275103995222426445565955949520599433644121577477392181352921014349942641424873755876197595306688750735032032326479577747762923015191078623654118715841246496473221285704940785392133171213315350490334010174655029140440484999208287529038052765655338722076067464185392653047159864837123788400761088187312912504120988964547135900597444613669109453048091832234136702719048364318889356818156519795667204116100996253676333225768505796025157323276198549031021586645755865301868032486380745518874790224286795297846823759594623504195407385293617340220338765713602073931382213250658257898949393775973756841359700610950197021375796484092315449501339280959704449970038292604460578809573842404469279042342183168688644311770296821420258749015922437780623822170400935810219596346232940881670283855525270523873032110973033923380228297913980843678597924151390868108925692528559369393269490901647499867144018860553670312313899556650657604044947500734119447946877617221486066901262922277811142942619539286841971415318042066119738534406315608021506812979566928297228976439789334260366143412975379408465927857780393891383161165916093396651515178435901974756067841912954265895394328072510725652387297077996285830787660158681712020481905039380580048173739896320673340290404369749798363574144443863968132711508796913150108818202801233147120736604712474025217592021644113297672389883541537101534859270200761316058317582207369984863129762258966133157370076652038546167370297790221027029612583148078329955202816138569505212256228407829031755511243307183803639783826942640398578703062035718645951244602086525600637318072085676994506764439397025698323046002299227471154589331326281892111863112189866794332477308245608483847609809327320762744714956442619462955456562846196534876794680284124277298346514487073586440371246098635327310137823106369534775016834150826267217111510371872572942505945785711768366318787559359339979870693328451041307000750403896189442542997773293660271660212973680224748556055219163186327374518244609398976680619007016975237141800609671221427373950442008316151368606399262535815892515328082126522287188810880350223309909667181835880976614593661915487597538057858331458741049000148487842663967749820572862024099674407665830225635221264004905344021170375735085931275210437557288286296759108714942577915092276296046313142357799414500169815204305348413497386841590385495421922634329579154246339097102654518660009056334789701658395228815796372838804649699660710133263289611279682041866475272733705361892737444434903085038052132853442036320562293436817953100039510178061147576159901518786190988129811701109514970674301276283899343019020865837654377249053288596900961777155120481533723578820799393271939279592417623279505625911054818456134071217659246910630240831155697050745635536094022121603516807891030574045602517661543320243244620729421837004450298088153575005364240213052532393838739318201844725740982628476518389485725901092511842626949633831768924376349130756063155502965285085632627751030247914577557046627462071110136031682826547353214447220898804363892807237638653102664020313342172227950764747772108804473406921158256728825985210396349844595654803942060253087486280274083240741926445111002225537900969382689358339585011825432139639742803372733445101911407378623638734095859318109499798081633096890248068636401563873725800480273801606125559955257655098028391268353640603462605166729029785535711620186002865712512086650366268458844585029782638456104823205007235501756403126391772267717453464630329715834744921531033079854038782541001622486110683042174289137686272248670527181816969473811170209008523991183319216337572796293567064778450913861460696484547619583664482201346712524895782018732310125765344429326830482724257835928560178906908859471880535366492923432531637523977069720148224400619978794061094209002998243215764120692408532727632707591600543602970913971271310588822600119875410813927115903791888952644491356607081877430322430951146083079545919477769190477162546214640246565829211805916097304496270318271149819137758730762258187503021443219139328945052727204256497445428652358043209865306416332099125178634247651612525732802432579562791525598030870595165948743175445016805748044573805429434909675255285093083690511270733892324475325832042946510688265668383628711638290340563893294256443052047327246437134881296902529828004497769945567232235985542259185558929780530268153902958266633417670145346992475927856441250170567655846931014539549180526116654987442606510349959716634183504967419587140542591956089765991844188530833798062836142210036571266776084079468513770517734384204662948474004302027196631193070149853505846427728815431120394224113982619617197840207773999982122882614605860262109771874265373235412917750554171552434450767083767900952619007283900208359464831917292834833223863617754118687981237765187685574573775416053077504228635392978453525142405909678054344177221762369683976078233479447354771399909667385893194148120361798768585719524529162836028863013854695983512697568475950568812353079101419384958207796168812953296457045476516085955511039437990203744785311869707249157820093866346932450671526698536493645016381779771547458910342719761216451326904166766840906082186524795555671873128881565787242990486444301031067196736959984559138612386440949828472168054318442127392276612094808429334976748081538917435252590026649795039228667086923019175267702305090463914093360512776736733438876181091840807837499581845106219300626357649376929157362788251015244203481576136860335464529228767696355841312107352076932732680735907554731486662884511534920170447681780062986940250871880146894501882692177143570854835768035435450558545720308396670682463928130905542111881270752586780068300197037444195869900628521013354541021379183113511537527881100858049098142000303972799703527533842721513363325754434863347353754318542744853690227549491391511643257435169271295372333738688440693610434636898550804553937108619282979059600685805205631974660702571768850373648589109413229244818846255713567306814277664665608522377499412099035981601483388620498576127427507437472784502780353007017301055444933969266837622240854899801961558039485064222454630983917884255112591024073616425127724794797003786555207510075797806755526654136658964591833306636732852576764549889451604659362002995248889135229175664647768578063875785956534640807860848574389313965122490122822759588353864849466578346517980182409368291796255977546717945020914899876899181051905055511545375316275663922594774513714377553302888072247754038448001257352203156314455444016789494105880429534043243645040363446623932123886620036743756305931724387950512206268929085812936425325302274750296695064130978472706708616694783775721133970062244174418139809157647764328797614806786731018182202917080904233732042745088747809482365076720553439037475065811608809870473691612142331375557183920428539008690114422834258607972119368327095582736378587345490210201028882249689195256730993582959208850590350179268993257451563655977956489607279480356886870877871986353433906759889349565276449324782049915385686686997994770661244542667343174664702214464148613849489322723896744174973325505738854903839962404242309164528859393200042170656881405025761967889300412588593088988715410183002395498461661616714116189290194399841499292255376244216240854125464146503675087985935956025975877474538096683244813783959094973876494717113448655967286971192133753858517348170838358125272804325089000394632616728108623290063181058795726857949064731811732181959301954293493895577763257236013706207575909565750760593965668429052341663157336502951625845623040921696198144712189951468270033947342125505011531583804089024800191731252254084908027958801957380108781293062909698653776989326801987363331971936777891730888515463102934771601646816921039859063748528554595436209124378544994513472073057131149817697344878406917445606374102875680706958258010099245508546423523713052195566326205596041199312725331660745314656518660659889185897798676559211218386999080869977089012676590243350720735645913731739636434271719801047988673719371219751733332994173384621533083277105129947980365872787596452655214450375913082766377381362484138545591365743177714372235677913954312926168541360047295648641092240007884115402123849811808889844149274372531658375926814499960855483209095523341118822925828256152557586876297156057623022927766473318455180298657985601247390521172522533034505101250581407543538731707860732569192240206932262087073273908516236283673620224873128052021983139016685997780830293893349943428570578879985040740087282498972956017022278081971609537318851143509066809258946242392710203369905533168288273413360107348989851948516833692724857962642524774772410668902846575618817572543982860505132846903514443250802752542083784314779712935847439833952309129335222057000491268997625170008038501561460526316499123772980057205456254143836705945990499730060860841940353057595741775284529071707651633156893120493867752850397778388355402598542000714538701646443193576128596723199993931964419602079712295159586918823513528569624589358363621234730641554234301043259791177787569400836810791711838679128149071488584661366933059595099657558213134805589782222383007018381044085354646688172863512273285665040032047245515946321973565141889855535155279094702418100675969959618158947152807219035684155708908182333516972677617543936641146193444068659820038618699233687137163992466518930763376405290450223587266312048165226616270860289815713636234978327263644332042093791818227296239314919337006038495190672477142230901282206895317984531944096461446122921976385013609180542922794129567874860959020287880922534210960926861821964859088746502191523097600025720830895345442166385178596373279675784490382208177036676321546780384129448338920689352975910018005524189101032327598581907091259887630550184582657643201269219351215341891798118668686501980766015198205449412072606793519283475806647969281672498798007114283281686376503014279854624597992512056032400217024195226290941669646033484041749951372839537857945892244410337616854569482926230319681674592238456416631482633870214655935906144792523746556009258804013512613503742827582931631600267539463691045313719493755879365688625657744481249263685419565256120715867831837455780193963904586924148008445119183605047875140431717300066576822390338806465844400401902020222382219676916994757648562137986527070982605145985861517751827798702917786691497549594533942692667734330876612720948159772585980162865363486669018517038047787823217999993968638972526014150342588722780114941420414851428768488516447147809841020811514321087278131125660044524013084779301373541347454530962753447246287573451591093437668449246120135340109597391287509938972944763742387513975167456255537860874555189388659516692908626559272435998759045733259267645082963340945717809681755564347872921976300568320304221124184622334420456685781000108782687275732473808553564334878138487882938070898599318156049755698208042024792967585150465786985238013163254279545850578052008110996455019961011432758029102476660307545466633662131198479622052180558544598316242675176678724604329298728918187496272693688388335958039507486779776538125212109364462996506420993127895052900894251382124278461824902646423901824700706087266408007856492725948177752684118662204235976823667866172201786638149705820443246464411757316670933199002028054411630837712421438380284920570580559521429665334054109825000716931585820384323956573152055235080862656549745732254989942881499216544087686522763762207024116318056782166921432348654821931351198727485017259742660687171125370680139904246246633791900380786608219987082462537657302986810332635567637556342997606249637842348820312133014079388651534098386375091552514938463648737178000468468288080960262583355083896126657962788710608866586030317821900932667397854171984612824670321763753941764214115839154981822148541024005789622733267447324194390797974988073098549716978064484443859855780882793856262800332782305548607555287679130595879701754722530167678888984324568820618795022963044366564494917726165471553219343182782907622785983441985044821755316210845800340340202986356498166439030073137156516450144277952714726173938249987941706769039657907444122055483593732379326457464308264001378526896041350443542206785879825567413806868693437640001825510436444335381025739385583684630066950765405050231946718885484431090886704245454243733991762338617162604502639581875859573396610481191346210322198221279340854904713237055377149650398508027759367888297695163925773281928935806109332362546105442175620509476472465648985775621852261898625514271029898924995023137655557709590119096388684713699370392590268318714975813151913163951011965826189695432145960927909518369962003559885894680526670299563237821456178524327593951167669915097442429508827675323911955096221158405946841999882332691361096577418944968640707887586070097468656059206694259458000956730572050638446323404548184109069676314287393041743758421948388850039527484473912764848274880565939832541678277026201817160377358940749365114961446178807616067573652059462349792318767854460417935900062060265083451905510261937214332218388706592272236264383160826633625601179660960744896348891313921899979858896015915564425782662916379379325647916281412141384490689025602843835690504433875410578936816584778783671309835504530057979864180852978877532776506007148308529902312878649865662317232122809730283849146939090683091465596525728416792465140220233007960110952242910390628722209393691844662748937280124798418755498204047859957609532409357728113883221417260513808125268076540963993876733408784042202302178874914503906440915034311839099513728830189804997910631254577888794891327264582383794755990845907340758295348651026261967442849614829799022346555346809074807389449450878630052712852956491267269744445351660491611260234538434551638212153710005547731291278912204808485064431884825141105528380296282842194293253907028170988601508704377431858271670623990689245241202464332047855147338128243369413674239934994431139287479502161289948381083575988243443667034166663148723452314022667703864187404924854314540102822255152747221994669934224293896645926550895911440970491211074548234535335621764935026714021857577692389935412828630418299061598256488865130285784421299727848017414495074164795570219576871465445658285474390326085174934690316775447174998962486081073878734649679169982259838264529453709751162328807349455995522201892292136656725527514877086803057072135625593364431884585340152857865874960076990140171821955630891054471191515286645022598461189115827015420876467679812803565313454961137128579022648608954604044904670641690433810000528562672084773958468347350473693971255094368366521928817421837216733631151480520278098153624001136638910731823192778332055254796705830214036815666354999178565674864461796389281708288859594921585139427277525319360663121603934087962944190235413073572044492321330892590967048167886103485714355606130426826915201716453253513543334896690699902347626123208622840504272272589336102418335074732395967105463469511532563484564845915387332445428485785984183745001226632116516987299470134894548198452337771633868306277422177516594920877467337228178981879549396176877212139777320816533093030745635714893651630783553775046248084120386475068681617749792431924799844430017972441359472327910263888445944648467824587644438747441267027426382452227163520972098674342322497875500999176277564840828223766649302129782697284811744826289563673828108052096156069182725472365786825263212177014271508153315628605594505060840382864400437818069573704903649005674188764883540226451008374286154511250339280367045159383374256820304282372805015223716111008273921417778063466687602071170571202454868665515909487633933824726236053634352783249394569960507988390088134214664958356126318543954304823853181167101469029229905684040259279867453658934005380459980262265108891305381923163444169407233133836876050120559508446099898259422196614613210144858602043737296851240996777828305144675027391441920558449385409512185989286595863361557656921146029474760304967492617632868502863040175908856404839676906626720467314568934010843775512354044499346296075052878737350191716054898288612999816010555947017706596992527982375716442874030681893797919650076721238393220786076032742069000948239824139180169502823835115234290502587950011302468653830854571080407603974721162756391527106165339054784420582471705389435271605844169032325691726530813393388744492275337612669925797947464033150985994614525100942686366818110079825184544664645366528778065433836283871108252744161667763365121883959450875998529828557181151573559718042875830463412566118519789341790194773247021363836701413500121193273020641432530225429744663285832375878616681932934609679564517156197722658148127331185146575881956135476957009364384442176024489213345777363929075566666242879694561912527261229883493564709578359840338613576906170495390359170169214950343652259204862722113136127086405215211169716046506769318453974151982321936611706789701199486893134095815696477201747609412099045317076045803271840201449711499228881874725096444667450580350866912038646656029366343540348894942334127185598936737665371245790328272121572192263882414985957237806620860095537082795174251747942405673396189040617379806062540972110590971792242862366529213055756276806976461037158054676901747917322429340852947611788191762089454012542439385869152275806752644131616149007853272056180781124428188260498389128047004991659029428100092511523145510979729401424473080783370720218949902957865796486540933104738043415087184700076211020757881039797301530884311044698221541983389842223340701140231311836455815926837816318876164223259588133073895819923101353971376787544054078490544457203152222210754339240679450626333136083285083987210093945631367915186868119151456746168324676297723198913759091423239668972300937035550769383183288061522063760139185455128769261069686681069663845553225141898194321492146377132292978807776958400969165557636216901580294971646181952937380225178751938751779366439373190457624507108432333181615019314957179283329072618347921796134975899753346471583195059563418035871102257363134488617380944632692546089939520864630441386251847303463681098656550236443197278236428792840569723638447534655292855044609103317872915675985665369812517004846605817301206288603615678502032362575943608234021521520332933606572971869486205805799474673345377770520204174626030546243575877783277032776986655457572399044855135051065351779803222141493069601738915086405122044134096906071812737274572475622072902989782345179296811912188065500138739445186604641920072337577706918972494674079786147244886177254712769619737566801542044684739376758820895286569970928081420146218284097528003136216412056953765622353610549281131412766394494949631930444930310185741285608349115974802246853765140691021877621593221665692691693623400862132268091532820549467323635977356332328724471880561700313937393560117369025577518395129601742741353997382378735074410478600831074182080439399620687471822052619485789575533636193176805809574180165470900671414585819839183599376240717459242139690197510022273393723981864901215127763274793575756297205872445572884887400051414934988098452585625462895580576726442176128724345174060335624324646708783276203358853522359028563215903414069303924029365201208991967822349779230544979225590534812811549084598929473916272708748773967467377247708094081136910723665170210750570619263733431568147418885448871263759694488757504996350849277616300889975461437633065210431425903964042484978126274196587628634250374107232675166270287123515651366645446007707388621393972973428455418304583926143254313559810784860376856013692342918586997279543375319016174229409161353456900513707074317933923566086148047458278071272758892937751424830728992163060344297235487195889401948636051450494290682542845744379198206020675457161241042915421759074344760422030784042451383511208620479783063220430543580480137187414250045120864307898380905626168185473693745129720193442692371287541817942010523202141740568069595088479780043663373572908844630035213276481011119549638973335866092541107211409886596506948549131807915683596080820008746213783007570643893652787342809625770144811934471675347639069123280927497047482933152614123162239988656644782828559012096285488926275479039228861359711541412065840475600250750087498580625543103942306617164186320347648228505350383995846130972147880603418833704990487543571346903347887317087415826626366590511197367096672409161541875559385532735576314589131873662849007023484657362285767653682337465282959289478966058882031999130205522379029807880131219011188596448921421699265874173744582495442014756682812867578712038634832326662930060789704581687440778569615991652423789415309670176607240099949028476431019720521065175188171234717588526307309421501464837841976737868090004930237940405989547664571574082015289064160828247558116797036274721230115795173424561645585016538603328068053756627621011229769365167553195600082792091078967358516582835739019228041770638424348452204445904990283773484310092194265534992832453669181493408751537215039446384121421852411194149948317220436398440037533428074708595374968083254679103824876550133266675450779718020146373926711594276957490121341217856918235753811884258748759082826577779893173523039978412351279561373598134531977521826055946229494624063161684722108417872991528676688530349209013219606264673064376010232603270004763155307571743814506247345661452788530942407430413304347147172045006031838933682048876548034921388612413551041525738690936667167037924180090125042372985573328790530798896726649875659214233787643295258334079358554848314314756240550789724170962233394390096006053856175442342370754586242607340177878524818539909392537925793876398568145540010979683513668114765827934501852669153476599029908620816175631313850330250738670197920465524294722710927160637001384652992659625072325024644081548120922962583040608244286694911856328027874823935376693171052391891929272448222231900471251638907825534376063574873762249967372064543007288799477778016514602804246523147742031425486371783528334195598462459391188228868000637328699025219885202118709078480905484309133912669965326309393213363181866785465861633431442235935511566804815239538682620535082827254115346545990502973773014392417330956344787305463856305578454615914047376403305087316851752476308995895945706445597149142969014132126726584338765186173969657318299560902469349238346586185802840511335790847794045012280435693555347018834552164447513581752600250076388190759023384181737189004549363350490248427938368698167401226397400390793133238919673129920037600049353451420327301030374883551763187720819704224579215728835760404232243992258191534715990442840605994969814216169638445182988208925265908490265769643556337632336623394189527042606870486475421916995031822290108636936455624283166646714923701224064558183025307216013428340947521503644027953974146093215015015988038322810043676059602342828865816647895596684116344162437981663186115323763593547847509074414492634227711025462120864965220399756269477664401949863128322054276703787342500793118934110675110286864659904362379337725827229000018060010486880267733589309609889427832840526447848847898115584983710688622121357016231959320300035073983338206216418253827639945457327614804393072555078447244515118715926133331178282712843776986257792354458977826423072725974195138694715505473171152019602246198396889746868602955528232590603064713621352820431956557360775752220724247632000890102424259574227740123347535173967525588775259166866959571694484490796447484350648206455390112200672758868765793607225694416548039981430539490771528381969662036279218486161308593386721444147657937199981002413482862923220302833220737268042810222422003698050327284805695000160828685240157804517847867956053253152039373983556241185209697126927800182359761196988090142421751079051265823448145736524518884633740198467431051162053353271275564023046827152512465309933698972041705275542066576260118425289143453419771873555842253535769758628080646704140693654244485945970182468112318480162294293006075946248642565700973911731545441805795664339590769850926524605345900905063535180333660094926153624985141295669079010337243880102171026177059158090132205991905282185540014199375130351437727530561917617295604838933442208034188548582632393312170886506328875592033082480046953404250709258327788348050902671633120219585780872586977777184876619230677416408352829841513575390503565476896298589878903704976849915894366869472015556104610910700143277282806915206242293530927132579957820489946570320579792772896241728605802387157436536214435050268812627155866481171011134972604921344176914590964382948565876821120198184712025699127117867715313453893997273637952373325645299290339843518515752508105873307232607501177491300609539646063372820205924967763616054307607214076992821024593974358034027855051552282895088201266717780954647813783440541786457410630694958403643520405327917375295676847443379815509032662714657784463639136646113285015547952326506862977422459011544209571996020378133826442711721158510170978528011429844585327193606805274376072737979832945335083075014560322785135858705645189549235975637009582864068310829005477703494771931069526806097003752011530394512751165138350393463651609564218294866723504235702770301901861908332365094384760558679745536733824606005917901007962875211518733442329459732442022135271281058045022086652011350581041563335442194569535395128003437053652565375845163257691845205084764755041916908047144171817932470197643147925057060579660701795121709360896213744057399916722890031269706767390784104061875387692511775968468489633670419450571844916753643817420608029645445830418127503987067993502402175454785808294380679322434031386595489946069087364135299767545994365664599441546875510603669336855283301006525383466482596114014028503473642224022629052005093880951201374750012914742690715912624636353697984192531773323683369834909139031721364395105341021177274908819186388637591144666628198895910420778608050397095435103940389485846263077317149048544765940004397223897183547322561362682624953936823969151274677042672459930443145846521179218437399001387587337757737161629554188038403790811350497374623525065520180687290817466640461939115006089230445542854295689912524306248012741497779417131411213921224311540959146377676137409568630708152669976585555485833412646069644743342279993865917184575021501487742297159754079752347752425581308341436091250913608258548750100110234736962495904839048170178958181318448192312722164997668223704666597275951367211997982433004616489947395528211770643853468242001541068610374810205870947078911777168736380931471898041816339199145685394930170545876469472425692932197277095811126080892313493165372746926841731546607528246818070487072730568216368118782541488340901571442430921549422595264043614239030943220470957314193108229429223292643103892424351088081092517926023384234605148843451969505835343438858380105877307619946139865231606108347016474871935872638586633848207975744205489511733332762666018316939237588361373793317439471757015090160592887468812693683734070428764853610411552362541121176984035328820389465345071862232828377836166872526389113025944355110774743598937948801862624051667824690845112978028520036701314355235504084758069430913300483554150181762065043835227053824433214781573238272656250180117006751581505616075597679365586743457900792642522403457894529822255926768451143654576539449605218212796474641822925049034531208524387086152795749331856112967809670333637187008018716393461496888511717772970043720380429430725122219628456045049192956355732164211592187766331476067591138692409510267262043754984523568362837125773000235363053812591403625739461838714966982974920988612862594073913926275404839568416742757430371819788764580855932611076261766621488723993029867926255790429929396279419886036134552197836184247002959980890615820349992383671775472524008102847615191904071876275911854558997312387708172825732444811516101906876578026343908988577511543358233036891988361382796270092592339095294320556804057986214886525710444624988259393079062022226620325173115965328041389816934691559560631087428058972729450956135139191441914502402707917375864939956784685236229859304018223134283750995881594051530412554475351608691916547410054932267002543884933465831739178379163450628309049682086188851571141227430611269888886661112363233993388892460930810105373786847076997448988104730918455108874856366334846551217913317732257366442197569788851882729621060486741575896924290170254547385023603938639037383178321345921046791277029282359390488739050446671881452061688122859066376635149886243941289135706012340090615602963873146601693794873601594538073503539757533707076966572677123357468091879289553851747966134912339445461330110105343218341270185292538822381168135771137590607973879948900226292289848167650966113023033925440808632040454255860445866080663041374604142235761038168626142701929986388636843889375714294170510135843358889999395421395983577702677330913187121258519238685340355798447797819134073520027455176031469746622024880103684417382517200641786625719766764368908282806315509815882856635530152481160039177735071325533978779414170729272186318065633533444014235122873240678406472788282460943686696388522240542466852664418857990392266895833045318879769443052787578193007019397628527767430401703824690118996416121088955357311952886516220609537476121738643718133558759889507488695746380253307226551190210428553616565946336221972491630786644287934509579370808291572366659957429221407845877918405264832860462217351616054894406516669517043873543791921307588557027649698008556196294042665339086852453476327896804997864509242400643413591731322862821673888230990511090703697912862334091637440014848060961078354284450428974532327174023363831573182569953477810425099485540750309246154850172042536867942095062879643390346065643678730801579109619090328286771641565008562527197989201439060533787705734203653269396814873819589508370709800343490191777671991651729366479342751884618029195163950309692499913605638433097277179168600967001739406780516834294305102931890854296970159091114316277740525118503711731701809291011530008999139563718335306578724415309670615105186536453494417004011610088528849992044273148536233536887385106097947043860065452647954967562771880530397665680316329603498352535246136282468170562401839938884813760780781886367606302758516709035483706620675543216276972230452065492967789394647014823592264060651287817450783210672291146697841909029675585441276963717147450636268229509023374986498393592821468852560542839686097441863510001679366690944907496164766374376246258508652714161120142519657172344987155346198121918478017366034285374301288903917671875170936563324650246553526094119825881632454457041074470749035666148175133027258190353588037655447955716380970463183356574123812270532259620922195991657290345741730965373278159131090203680684256215205713783387719852441542297434842610359568954048379054592450252301754577815366085515837035271938181157469410332976747519410573131487787017203262467375155842340289446667597740453074467026328192177412883634691548628922881313230423083201501667965003288497395314140311953291127216935620692137315570466079490561167717024524546806618684745224043152384416964598353688398060262177313232760538089370685033973575300632404192135475074793120361708560459308553719445882928093527168729663863771269066443048136405417660556983820386885229270589618081072747637421182630271605134791446350533555222162498153434039670294183824095843062072778651689663898717025811357789404912015807580440413842083032485994013678167835200477769065230115218603906296570613904798389520420182447988937537336988815861182570192635134992446236920157531288307383103172302552703199637895120844567244378156825493090991690396710646696285582949986860528824739988518871840539263799124945342472647930700552502172111965723227654245765547772288459581462793119554311038165020785034026581145583185131185017771219697792463127566979458091132408456075844831588499638170322382912301174603246442798914912992364945157256982475778052853715638965799270123389774938742768462229130559178835353326784390232518989862313024064851398370663951783803101087085447824040240723920215409487254797414173200877291018813204659263670018986429677949392574466430325025609731701291237041352281080702421729040112317112993678748413471241850699728820171314739648431827133663808249902987010869704328131869371476211023056321309267567724062952425234290996843865633957839323804150415921467734696422522517981274349706527036349270296059077240171015580039995547131907097427480168197552373991743830507203087076344717431614087774687565887009814415611327626793126015467372440076938194310714418066448336962775791606109059131100086180193753195182470979520790544152138368804469400728561631654445292159316120482584591957553896355929414560110566463836296931636474863442692382124078079340856620880399551095754205343898886897410244831421143219217581425660277521211893037802899340756122435056994836504264927766750559367940954921472867456566952589674648183391655719003560842694968450255294549264405114689501255871031902763579758604258125231843023839479240314030670540019828341784331232205302160556895299857310034189956393700297608107928216282336746108293948079245127609849999058448455476285832084281645041950597223341374962742127563997739798694010772284664613257927230494348815734546730371040476585304470275640788544331242562052107586140939942556453759832220742099913822967019537420842621587462469400378116823742064333560462181669820897395699366546869475710924439799764912020841082178785191806156084383600758233247255895589239750398631630717939852572067413789833188163865199306297750939439382937412422364613489813883580592143145551066674356632188826566478939886951204520605158894438518864875988766307423509620730873363094777673056660251982166043212632800608025566076709089771835156574567361105706975505991255232539877087635740087290554926107397264945266744326916022947197958295926575937796416861116848177323589025609413514037206728758395434249400301215350240448626337304161820164553290021888391168012809128078514486260732409233913961760676667507124366127882137407311543105633847611290471158420758423122288050480556794357702261235959601523973133032853160821796164098012140947310828444406681491636738637239355654123266081704491462781583836303808469759450025697160662337332411214853037162232311648586971969199619371108832826053089679287142305515728813705889947713959818848208929004159571544030747401433935272823959485434520229253030869661957492825360658568865395221638591072009526685055286548661722858985889494541811217049371743659028912280747275831473881681472938730577622897962110730015488816424512191432963216492461642013653347079092950241541489039689371388665719206739210567241355544616856973962403611479358149771713002683379032194891632168444572071970940792136294572614168640815408988561573952728562677708686918989801874259004500601400879855724782243440068167981799936785749610098156903765467473489812654134095591210488694431416662328734082375902856976879978537094087141024998451680519712174362523361518399172768142550195215647061202432286261165959198856413477511000734604588048527297421423368677215857237647545964477662839055297207522515335512857163524496259206867629988742742013367681452147984776389430756249168726279531906990721025736308168823516845111075443252176860063277425263887045327132882743659768640753076617884280534589513127366146073959588491218668609023841734389757253981505433688079016423941186799547733330853086731069839707193595503370913796421979734140265958092559280134448730490119161790645826032453923825670317009146409979572889334202160692622202908602643440027380691119363108796824694605920726364694332333848800928498445060299934260150691800690599864194026105599264643063908171905934762787229747520258009224243069753762515882097346762828928755344220629416777939429807266381801760042106671921482702933610196607359608456154151725816542534401841144007122488526947390240771377072555222112549301809953293094923798226308866583833854324446482998213539789006092475241231835195454894140762352981337969567291143585036647394063274753456267501999031045763993769300118160830203592350144791794995567843115257809932594766725631648438053654166103977533552653649225871503880928710793681688078227725462541209501588598456063075641206888785967813184892133820946043475706102965749706650065714422586611794025991404335294535333817860877956531617610491736445084077879852006439947227515139562129204114384628061657731755642815886299124214324900691817170332904561638439771066224957375624183961687355646421822292516259277739843512520897488250509639891331293222905749937967867441346422095517069984418090505806698745252997699167108937894086473286232789227439275498299995689750926168303463752201036717905495576597493647047998638833135637415402996891346311100516366302146210883368555457341303779333113184153205586939288669374035905347413364534998511369695857078578089307626253053211911241833739912402479239783294863509271746674543894624054546625322612192588894843302865694613211286961822442276930836317933305338977499733985936716088262093331653224358409438716422292788833719147735107729167754930656314649336719903517318429897452348080148224127630684482135974609172438222669978233637905780991102240149187117836794159463035210751820396829524414452080365726867538942579806522684084268723392433865858898547207483549256754532453850133471775353360492193703548316989095888134957687896169373215924195335787505567897263353428589047047749421969330338638900597269500893550459574962493455583427202634985795210860913038163639437048021633260105322682582199576900108481544275569169200120584110771083253076029155190929013327502782604357268300047785262935934781042397341886885339486615717736647400875633439915555985953616581356895409966912561163260752107199653175806782639778026422323959374853623603038498284862176868741658968862417523647250153871453073900116738084645756836029924753541354076171857294663498715236537348079445732037141653755686520205424826061617214992568618097926257528727263428127423139582992371169139344671317789857835210528089481072413630893230617877991560126115413869781056142052036637603835704630597134641100304688593718751526607692402631170984322128080146163328090092242702078679804142754497901883484355577866967313001847909956478898907682995504345809006150160103114704895573918736342257227591709965938399499122564856066819736819658190236594344027430800657432802654847311803222056711732300011226204687723066325367682662929910018296229859276954515396509899659062005947071133276667586498413989953015888809662756034766467115597618936095352009932256007924888734307438270420822007442115536692778356000733738774306780153953480974425788469314124273174282123741876083315197232836265249797083476054173488709105153804847683257994767256547839839756259087728711529931155307174091353762990011049736394841537398052449982416824290501907748861428760274421524331122507789718883664137816150074933999741740635647865059622975890023180210907299500985100299009632268698285841081689467278046097719893938052924214221626394489471672197647571779237775693377339201062368820527161472410730201396459697828545541554129610288668904599940459162209601631528133277794835022540729738206262278139881293036720994000457663725161129635703614751118605959414832881797994397342154070771472384886043775398271289220898500754115234712543029531497409131800937026076412424893692771283828984793841343760867602166278783210819750999376680594914053351445065655989486610494257009847873181197531683860325427754642729783809393735039641038072307331287615835780880312619595750784365496528087275938155331750622469030646782087629915201593024370319071344061171715245737988403536176308006406426799415984180660313993351200475253077625931768985919220279277543083041817319108959614118755240562440408763045121323132462818873246061388255464929426220913288953958983278774358589352996441214411699704249767725038243584233923801734178200208040829863479163908449111703680536980972714409672030015265406431847576084936831229466997646484099463915724366648898610398221149911130263616740686768942680687132922952879188784004871451072098752408290159185161387513159956990704610299679470515490678122336732566247555059810640006911409058968202078644336656009295628208185967348709298312170349752401102001073958915132577473553911982132457690362521789437943509405223094364360370650340175525970488501320978665107338597478347273418106101437773468141050975283295978803054494858155061448093237191875478387844127061468924865419596428606485358550263401913862173459821460687962053232919619924840225153727581276305702656483116896483809843218750808567163824105393947611964211710038775842507125357405847824138611650632916490410792653370977510791163899801869341864281536003497404671848925972429376305109947287259073922219889838893942194153221253030114379604379259082689707922806340971727720618515662012880509652455941960239711903170612217019327275698784636935426436570937959571791932037745236583913130265264987788330328852254143033642015104174243051001582645336894059203817403968611534472939333464253235555013568917641943638031441733738167148741765763880401981943182721883969639727675727780772783221474519132236880484727670159021575234472991361314970193290279318932385775473246841500100422188650456782771813900348795115036615895098502356070237402167988530313036329482085143484648385337422231061414643202773877186259795359791256349810927834861162571020017688028739527586392893605556379009483997564485114863096226914542879261863831879954166123900143823443762937699168971049521488115617416894741051238503567057156189864864627748094047577604657147105664607106265168113596724072201861039714819120204764152710619468815440662787512856971999229819739910368827793473957482170641299124105931654218878590858226122133453265955325550838342570277382881214621763422741395602864723296599426611512553116230649567610241502500437183996359341196057012754686378645898863797682375774785288684624647277559615807282473713520779917646030724117293787124378082234132736812453628665668131519488622906721800920098238468648693690137735141744763862084064229631459662851107567997334627503641305818099256693930478490702477984746600253830247180030964449509388493683771549320721160819418801701102890969865607082629436434225699058231114620967430014343397279361013521349301188771922230790099699039995135972543852299732017930940009918257674059804027130927302697437150938994192531497633576772027499360618437551840642836806130344682966748618346866690571408063756094862614161226477988736366606150619677696300451034141882057897817671767356015457496027917774991978283522485748751446268362303294531163887571508958839518783014422359286681792657583256524221113667496728304095160289605831391826573671017787785915013125608576903851041906287722141617688597390655985777113845055045795207657569875497233527583509167030708543612248571729567175797743201297002136622247323642204558678713387160457716393126988298816624253752667562659520386672020893387708688456986323585130185382548867897327476908831802090539095857592510165525608094756568562024041582445983612716532035324149864041982946249482077860043783393365648674530258911682601753743646327653991547277287709878962523010090629520778190109390326667659962352057755830416830936926275664091063291113917119552752812580274068587891517136796316736665855438826621399506449500364129791758516958806923519710715024323925149305420967709370448494895346152404636862257119279218727038116096976247976509654445217129436010063308768617957112441486879094263413435040643330997729332358159479128450911472180236860994347049356863756737000606220279068519818532434283120645314054627454371137687496691180435527568108956200313349768094152775380924429002854946639077638814451814225466709734200884917050602186644888504444600894729835895918359484808429212511395195901905409057864546201299438557745974664199586477175688652221178803748700718571069861058763375303807309571800054534023824987064817919481232388671222344162328187253727390168240788755283495762674183528854401022775782504601388883609951198439870924620288490943091719903275944543704777386070800977753190361504137180230896587943650075796672140298451844622246852652757687763938861648400809336150024709361052577355944326217710480568166154563942036664800830110730271506881636420030828149632087915624871397858868194496019081134472666822972670842175831756118471437034336496600572254037277244403643183940752847041602674131728189160685264041220053709551262749073157663655328237760787539248137533048027323665415715310557827568110061245606686572318407669104111345512545104067685209355677578241364358094480751200243984936728979562240738370206205100441509441701164268518004515867780231705505100785521170574400401173698451534810383866648137593279543145928947354171961719155282926336812813707687999009665769251748447914180624703489190605757192115968962051605812396088337458368375901277017866875581416081668559660462126666831172204122947545365317379570099496132068567187883579304288707069293034221435937567333545831181801687866229036760190503231369559451973177111658424175598916861203272531295360431349680044019354091056549971749783145972633223102152400279515469026822696273012680374019648372968683494471357369858631793378388758229725554474839156179616027714079254666331270219966956521646069555901660464471473549767954065845813301962609652659106464381450251905977501971859963778932716891486996917050234298407976496527572438278511395720063770361179192809605827417202560155492824900396990284454590500542285914391255001986070223975941637142160865724835642649700293971488551245301932980425304322417884015820607077943248727690474148386472949795700456499686446045232745100860227272761784033692779039755568999526115298998033113377932971289821226914231468785654942517787270905952830172022645200323765560220761921446301802675791075733890746258616273673960962170010637830951459105313370681170082543822490147110197638022618799654650785349854315604779739243157413354149197835183245430724847373109892611404035896549216147818070762172179296866854848111353198024928067436594867324058337325561976205568178604917411741881869110163600536902807938465113497250853295475622983940409725257866616353737476627958961560562705585825870560818805105672076672734821441617009311384981540144746397208178756536734120904263963287987626866210727545742659105290797291353313702475759974169609555543681323229764464796246126813132830178068136580238021895344811687340965009204341432590823338630101992781766750009625129036279880546724649939248430613096007398779968339140609407906249233233326526089376052513060391941117195862796033515514722812321418497943710888826020325328511830075073470837070255829349984941986606368319168214753150447500259496199376759730950613732615667334473458139732095701348434692685175307756401608649568291413132240233606175787965975227242593006811224350228509722077579729886320350677969251003822081460739895264850871231326056909758779704826981533358056903592199470222240553556647306178717942348205927866260744011827597519622252704880571894171309834136293557575288381454170713576915580022464487849677652420914109323273842552725507352236953968137717833195009118950785297557314431757383445554390820366462080232607068708505486101772750521897262893235526095630689063033297904583542698929036128287276092884437055215297054925924208873399963412473807790145590206542462127508988244225738731076612978767209993231568234212492646722278639648096074414364198351146327333461599477479072858054221270613161296297797429301274980317398068065139531377153947987506711667160110824623931906364645745004264499350007464609516916252467106707837433965783460809973675938299447102372786818440739166293562829920967732767973932768691130532289323853492331954100552222755044501539079707980767986730448720019263758457758877710503434096220828144224595152555340194039021702264948683838826601140163207078640058079992296765157571622786518208744661102087939461655858177735119826137341050377591364933338792260609174091737238439651823829619914481071577648773716989266117762584116173997679520935906564650855462587603990396988221604687342748542138184031255883592776294630179434170572195022181272567099722734429382052112412362601169722460504659351481919135456918333976053846460694813081026387387826829017411200475517713199945712879773477331309974695816364629693426196243283673683347201529828682324703538780093960979226499244282188233900011291150570148508720999875973826785557327303728960839672556855270346713406443683222244623683760765478939149812312081535702975985297656229333868978595463667457873673073376639024632286988856619072154713540768956929036267022461834544993068986576999834947441057339458784152877713194387874030236007018706002938527844723395354483690844256793698212485503669951481687328494646478263610218690588234524267693793380363884903540626779266385144893828852200219850679195878750825182390443216783566323942487830337826167665390500292496993825556504131987160826843048320754176563715559151138787829087959620112958503491373881442359959959041375469935466285460230993257454473165294786468140307296243980606806228750610562045577785872993345935946929993092241835244410544726766118566344889906003049220076375915476855669424936871667030723497888238994642591456302651513396873499688903675189300588112583614584580751568877810843353657264188499882996371459938090754060779027339132577260304422004931491314083129451716938078139078516554952649675158152033598261554416093071625893654217824542900216557031152960902253904716183390857019909852481873166099989505322024212649665258954829937232407101646525459100458969625314244930309143159905542676747083688686949579906447460052725006911179285305780064258747607134836905267870087837233054661662805382040796618073556541958622640126262679485690001316986224853881761383125129299530124645817023514229948702916502628127390961802729476869795545341469949225234894632016040067810524883000605204602008644330696515983582654535353766990425985317546520670140686980086223879489943799922255339718420804532712352902311932958319006111839277608135854067326569600376936920550593103193547369781657240461889951369459404780687121658287753994723807316844583023049685439319371157816186880012800015094660581047178029825364588374356580387819311543272062452008345418819975902835678688738503218380156058796165911261603064470730303297777513726098226813471540163660251626574609633640557226982243154424158725764412936294178794158402278107872358182595964006304709741866785695696751145117459115935988556052239054323157528448631019515284480791214769904490325992921129947285503434390811111949675077914536562566723396708942073050211494320187306355049705791674659190706072895851564255851630139458111821512138032397378194182326501988786695949880798030306582771308710583633951634492881686133709106970108565840957685932765999171936172218996063705388044680058175872047987182319859682406423117605531048081851485898528776625708553083940741633575559206841247768649912063420644466820794941750292425052958734554484867679148984691944270614231591515138216191545909860186048012974976086769357639315907417865910804156629784915051017060121100008574845554652986025283271226541599931736345413028010052400579148490999900593307043639607552525433663030424754281406628406849217964570687355492297910704248395524245951119016699947563104094782011765468241868875965095600467319613287404130972225167439119779693209371346840033418142586022830607623974826131091741667101783795159579755977468461484306005682185804405275749715382895790617517123977424306990209561245394415494030298061373044406201103906377916752484358057583647397686952945305679944390546007394642989045442543725865696147056778445939811485207439526369657041431507353760901539605057028312171573416268848187888895480464967757964057671608852753733199887201452599567410396350633903541750595541167447656091736260745874689463387173600412229400100113504004979690810968367331030750898952304259014644674595958792328545467720571733614011347138563792159195688430051355576408587284068678273817380882304923800967960613293299846041793089366651741632025561483903251646265943427954951740548252284167942352623086490874057505975136991646769002204225724344336624761522227832024736794135906400094957822155399467439874854857864511379315927505824673129543759403822181329129611335740455921671287275566674726830539769137578401705495327239169612245264610276605256702784999885785866373761997883105775019583504864264533682584730998841188796968983904306857356972366571835956946369205652953560222722480949123651005541309087920383359247782258572784385833555337546264598828305028700425260996715540373559830566240367516331856540843196662713535874969245623340721864946264488320621912754719351922856985540602637973615264420750540429697057715893159634673233442846414970451694823562307206769863270564008317494852207250028894063315160894111866792765090828415564276270807174017994584398672713684207067283449535319309415134746226482245628564584724325272755886206349444009053825653932299432086890149100670543217576166849092159846715673098532060806923582936692701835770416416790156074429479745504410720358299767554597854795901673016542436706605628247816266982564830459828299703083382795630326176513310568715564404857129314698325034742735956461871237570048906511393736313063660733982823631300652336680145298040927307536528094741489304365580245603138127657952744984201120141838625559948613303967561673407769222534315722528082505714431317159038287781035646631385253852093132590857339312466583386611675968773734277018156630943755003109657516149837882193633819428447236837409410979836053699121691196043019384223316837958692760457849382387750892458974516408637902555042859356647676369612776512481971740678502856881000068903564498041965344270486853555278888035198519719631834851262678121065999141193488381598788973925802453333816918123098895369411158276994055393403432770241790057892941383843876082339473760318824274681963528242697814163006534840854229891035972221200348644460529457400215374073732725421591145550831954028249470293406925268754300006492461444832890597038467416964752961457080303648550605375313809017106139971520013225268649627293308898537281931234379681403172522083571471290827466203257721274484847861334281639794346819826933702634512497961166994554573539113924453772193113160599349128495279552667128489356626196515169971199769389868978803126076089701310526554346938477951081603744610005731506517065920472281086191822443954404763360764484110014926588922241753167597628008779551202192336302656822753779718220122695219512554709460507584561139497373364274664916519110755253019224189153155409362792685528534162561229865847730532346380454696263320156041535937855374166657929413403489037727759170907184484849453016788999127238875961230440890055044473431860216283507719535908574097213457019147027732452823557279857800012884716221777197391470378192999338375943492208187292355072933816108349659923474504632358559625055001111228816431318329721813212703174758640358002941891181221933955998380986458098123313585850264839735982603743111934410509192671045538696744935325708828233010143561104949795152315999682060325945223256851715366113623118550810935260170301556894812415156458136898451475839033785350057236974156874286069502008050447953329588257805237187247181661361861103721095881835151419608048538628301563736756942672693375716248039202974938747122460305310362879952747051192010159464418073833862878989741903840794024085717428777203461656141698480675332157874578838697048371165633242878971869273966355712343209927867650888366242191232635487208675354114249597163452027725509093806862450962904397155018347223606338662379306233216377914517014906250250055313460332502810736453267158243815570794245103702825696252216994278228016717472130823303847848324623403506833073575391257063739741032149437322216075991205836025985028581078373774257980470820067332802211933378874166644857948457037263206385232111565687198474519449332881063047341692360449999566206878211390392310099097704712995534877220138601923453313153640233006518100178601950561813682463441697779264924413332462872914271133671755249672407709697743517759390422393156196032860521726652502375864873312170417185228157831141438185198255830316705843375906478199003745367258887302632329427958150723038442343178804331582702999066506922419027115354953347973112714251243561835250671449668690757406062026500705723726667900115875917924336119507258003065163435119451320358925643649364949777615820210217399956200381438907641761995926186774196622708538427872724055214424421956235606291252872306300361735552401848521848144672757018823414858562971749712475454136808114756051280839463918560733020499382362162685701780698058549953592548145107982480683506448224282794595810816464898622697396979544676427985641467326627205360864218546387434450510765526708823666431195054850798565106982148095374381587244643455150548373132543323963433279873899967943750534727500089956917855209598192962674059702642714502268408348025712828401085647707243205119577360443197745637119651291462630700214113890969625091884752234422206219039208061712787923154002711274533999993929267183149603331072110692865066249168848565700524992784975498444192808492157685796137433836849510675056259506081618009648960471404183982987530675945760395985995343621518063031314006587810298264416091914883327364951290562013222393048994357090326763289265467862554628505493906160328599873085524895192403057416364794490076107877714521951623830321404503421156075096089820587484005963308034872799011304708452067399155663264530125558998630442701684567341711478234777852821138477348640482887318351602676012148956990808305041943440850902161076110004775637151953623029048364268597768218064366700743043078093084505110099798168193895504689788712388871249559267167123483154804886133308085554989758002943801397630626813323589051197304014816272712893643793083221057881085300068259343842580583196096994660318258385243821820362975117486006914798802653268695360207845171330640067825686531572651459455924663480909532493910922484113925449571744222910436401443805673779294455058596091362880796579669057866520645467837910862184476726723031578641359725783413593444153978170794669491075485594840771011758660865742299887966064119783226551855213762284939648454946745780066448380567391247973276039923597266243370620574457620866524771699659732361092500075690881705741338203472260043787731860425939242046419636110540876270656635798905477665514424165862664287054191207278192770458764218817615463539572239300304595684272866462229339884285077958079413002794276394861421848211029301605371591959934357256067989371004909024380095619344164538454212511863826265851903482491606945841878350217791843453841542253422148069271790908703475974492922339403599370702388273834118500776938897316058506850647364361287192236869506284424414769436574234205319628937083273964648331457486880718863836459607195528482548666355755678578634774840315912866145361350653481309904244558793072185690323068847363331986649790938247147000016953357915887389902055861595735905040581420364032130287486020038707520908201264035950367017624375387901317861677175981444040060078856135309045099972753981838722082573464525471010769328094624633216095145363876744281145037923523367030430242536576327544575120815825628515319651395915479408990333715425140526316881341929211111597028295944872724362283876579799527722100455760285841997299800568823805219575509326016214185332829499797359720039682952906341628778620648894297396269190090131561355800194429497215175872062815309843933158090101660759774150940165484869408744325869614156057926863688505792618374959287557487345970352535547017716493854773505654188373166096767756156321696239439958610811698534393804037634281862430669672460303199310571383581149503678792043585505423362543091881274988788382924825562304283205549895080928896435719302980951469055755016220775516663861000641671612374417320112966864303237229036027636371506831624140514925831933917838588883509345612920403119314483959740806236552164566491377915796821244511368048281030627258716495407124302235156486810028595185000230076727517587584473898528490030303809098359171788825585650508594124486674260495586125685466475538887173387835567325596495904778714062273290345502029983035286948770074367359177030383572320481207448156495225036606276003852411730202844656928245582904817487999680673047692141033448592727252321035660116820212925150823241429574635958092519255583896177117345651795086081897072969236063072279379514036362007696585533948594588948181593674921307509022540284099053034550791646841735956937205746388662182002802289155110327201035239001653797169524874843315252908643590261121677526491004986651040502770881059804017855549778858139114069720802609311206663161231664215371647072852025631816307681835198297072433999672463813265511955022684318710260921937942091036707738906245094556118557297055761608050243369778016849992971772517263396919606625309465320495595001120886244612437137259252771447281888355739716772292772967450162708599474713165350714266271255207703602338494876541714217552740477949038660310806734152517033480026332836514626546185951675098492252762092838639196251636891209661051791470319270334404258364355641419197974980411117296877402723147679894090929681579956530001868705214008840331961085944653581941233934179329579220696498902564126017246536530281125615578466685976409406860270637761415515601001665651678078895270734203779268098177259916726501081881077412207583130869464736844427741480752049167088813731662260019706594746081834716665954792092968325538298384852946602753791573596192097174705929700508243687249567038096702341122956728015967882489680443031601796630996698634107011528354043641850047856142778381045941155959724937167131534625354783609814966517623013512724805782394083911075391019213327764215994727693872926957943304054237866056452326288757654859487160084472424388393067612236943115411828045411502192403780234448630824487342377952373343377670563914207176955486240483634243816608254237001168140398941523660040353402294005800568315390030328815511790964708922618162895689103474003959578315587416088852415253379492371972751492105678780482545630600212967115090377255305567712693795883162649047381761748330914791704374044779340812558228393223767303485858821075840787095502280256183121883535963370102862756970141568728482796097442427729867735446353296339820109001661280170302697234239490545801649852757073146185583289366945730256340898961700244547118643303324547080335506849381041026542200527831035786283183679341673530608860152915009446421834908940303671254420751220455886590104404470966302202070532303714314397064341512622228332271490410566254848987536052639673563112949433045666138871009409197578469919632755396321145102196108723946103135118543351097901083304064154076986942332418972474282118668495667917663482808982002804510572475050847963630400313296356951475863359142718185751474436886342175186461273686480346818026213302196369475629706663617383024826865012476329848929958555687565015189546710379935128902227529376379007270046876007904132219447702174063624916814222269490837852310302620381826897191726910982239807498478564462503519977029614022531198630218559025434473934209853246058503339132679558191315531802414362447135121368082922133117349400424184396956286496971239935014322480591700260124571494032862094254122726110240050814332619194580168204798287374095986739983335244748100008040264898364383808063568024813440338660584913956730945147810690695442791684071540045848771681156547923170339108359385350399139227274648595357272813568239554076901403457487558573194264497964717289064837738543904926324034189491342747361112298778810791575970471909832942922466345793068316242439305417228746219161189249297840923084789460568944988500665906268452719589432888163971304849244700917510197194295945755364963342328096903622684714718925773955886485311700123515309961391835932595413919365959733581415599798167179358296528570702884199372870567381321086118031700831012120174108367133459017526160580920530230125492599294738371698442253848546637810580512814548773032775192327032485648638518738806401423188597682698035703225464605152621136195101843055925651288342622342215124602234704096037121265666622282507024317891974252550546918968142793706050008747665405941258848581374621381196024620076436767072689114565883873796499822154631639652395179834011646864738260606407856633212205654966981061288768364542750491132150365973300816081612359750836046980418908719883421711239641725964275701595271757345399730634101251688840008164664011773448703204701924368243580658574185130104887153088604555724817156152239930443047659067670153166131204193668249204860622673805759991109646646322367204301516539073627978950137340323263537407847455709451867284959537793237036073949520948944387499223010646134331215816351506837007143139571247706343002948089597033918054422568680413910637403632212585414014453557712302183896311339265679764669819027210433777907017336726277109888368871830071056711646839899732103609889143446591910420381963794275675089437180136102491420055026457487368060850093322743829405591507811575927258638765088772796378389251780397417584866394434189449617170140070271283503530018795537039267063055242705600487591341860663552883723385144573421628418768372320574945972469740400943564517303890224232202122166417093658435216518598642921859239535578505530995170614191124968544715679143418251190539604527662344438632224992306038257599524589915667247623331156157027553386656800297850015638156939997415628143900356242795690010047177518911406433275356967029528859135287442553634442832579877561469075753979575407798816129209623841256287861242154120820321538486549909215951469077779509096533220187880233696764205998887177031198741829750905883514701201516862137699256622328218231432642902123778836150936004938249973764413374400644902506473098963275075769416067954671881012563703618496869959001365698127235145039140478377516665286206181150307233459862352511397045007337980335863802505134312874071045261914118069261650395644494057106001214792730420002961988000174504130029404738533526559943678090946405434676015480549755812243708262743492735643089888247142673733984958993730768842384262397076966047068373623390172278971203623115485632584193896740925721421552275959447345412913663736271289478667495669097005024434237430729048444843468265542669854671819168805956116582348378302168957477869702805875354675662565023412687093795731616706913100520678718501081402207314116611727939744723928125183177683206002591007668038327421298841230901290971084622289960433202048003125782621453886669119195583250952223009940624480683944610251370531422365467730340678910720575280614163328650713729971886780330605889551870652431273671216884935512369374841348145230359889726999874406262750397290531687892248638743905565592661134892852737203440734276174279594529622726871396796205629085162887976490011631661881566587189147807605950078483760148592606517985821367680535001648877317762771443322393448951026081399684884414250478483946379163873168229975569644913447745175017696916880318185846181968251327492899945964786004740668884091780210007885511402511854943085667928079743718476323326933084302409532055154840479141473351966945975152517666927832730543573122888317912454261178726529973904148324116544121531223613197645053252055447827963342982110067751509752266770542420991354450175016150375668120728794947291235507178485615479510425710867455239159434067877507632477436490488712784151761057474142825644992135172309713848776269127810616281403696137448238691377846789538606016619274827162672170276979468316468605916309976514124739081428620417832074342502006310338204315813857441815646594158311788657225046712774514475056565244272341310137703021074175258162089749722869959943422324682271316382699228040088859717538647258832874956367516206631507251349210592503542144381618169848658025259795525240187187910979897573246620683247858818475601639840202658002999886657667041359833848386412040643518677926530148373686774724083913330922255024673222060338777659027275496362286766615767577075028916701039990450131810875825094652091341067704294728610041077773239710851048591261538627774581805162941247734069092257180102076252340624296381232808750938425541666097811374192516599831940221181000851765118399721368441016174911277105244132485958002426732072479435939615248298181739244980646515881151774851567679700691245498309749092047635318020256254683734419668747458085148080005774597403501036794253295855973988105086292817021278017224353346093668715203518082452819681356987452714435810491497135488175456689418826317001236708317255352639014917389941811830321241740354772368609654319270983998332028082450544070767594877216986085204041926610611666179301220389541301066667047841091410972097510449908763755285275587231849887070459921493148522180685315382424689920459730130690112742782198509640954902831615812570014778156627870994316103494798589093568409008458749485769673246222879968105251792816865155897042458219810145713449805702052512379365483418764812402280231888254680164544527715327237677487931865415775177362575792579288125333960674333532956153066565685907162144536006409458606320831733185644604999908873724549535654290005065482233635113046233902632824983141380396598743296747458325427928930676638144283168011858251609426581192595818733503408522714375943463112868393388317993984722636015993534049922423808761595315380569810362747337942516100899024914080880560522246317306664955274477620408085862509505588184578223513237100001036218158096182802777039239254469601824107963969437373352468393697932376229533225896826732513177814163180894002217879479654793945849963657412573379074043374674049056501169068013738131458576314100092508183422430056407512555350052286248254916761746874010406465109602656975278438484791988857418793786131900435265890888921968150836247986359691705946313738300436908218503092692067246973280499862273761168793125032443754477844248523343102398684299388080521174452981399196809398566659742770565427061439704567390165470561455472106875571261587294448181302763966417204478257375462980489817676878313416876349353472373957682075429584599892134908411662750579640769097371151553385297926622188618777895436740536426955105547146310721337693080478622759231861494114655028771528732510721798016349125338121217967825885037868187503232579564738177366930205794548218440986729165114647953324910831455210006736654005414598164778571369661840167723115459837101875990245819136242293964571891007984586662479703550003200521139158043517823435149755178065747333413802822293397665561314587527101354437975797502104053845924576947693975064667913383701501460641489991455876251757044847528420569285093940142681293391893104259628620100105267381515064986589933944909152270308562951303325760232497310949062852542560437362104952597306070662247320431560865006582375515959450716490392804479055905379034775488749755526935510434503963357061505397626510343786262286664161337796659827214114551411187533824921553685942580379806214838713129023926330127102681319288785313923599349540901275250507015534682214664171315336463284497964080472048681347581373007341782343020056807415266432722606800470183011941748042044676857373122068260387580787034054684037330008528451253118527784973527227012544295942980335509177307173478062818269293135432897642896134393381921810103490480426270993739253775297161073598303568593204308323298615140657884950181278641239586866751469779580231808518259002277403726490749249247845039656876722954198687628726096773517445303062854335468888413094731840337367795413402059844572883959670701361745098510462696505397245248463970035907207520411581340860678360844612856375181312914951596012327048650449325427805754554321528995928573495959373014642782286755501424906880757788250161406650001915135974103046240111788662757953939397879545584910237271553491274954179401298773500525094387597572951391951872672446519162484344433938933817410402868560505494298256655444019022438207223111699854590454127126690089109176280646428520134036131705755140363968355122453505409143339513965659856779955026627081330584134969372586299470156445277159051371856033553095002980465728823041209713061859476917714491636383052455387997718887132500446576159950821981251867389131761806637964287559523993719167764659871570605295677312143662541277870543106546442676690087414165790578182094532383486580886157254190352933872280858396598889501359022378874954359743984283088681935729789855602513512926491776515813728335739995831085327578914959556696364302072792473424265209471840828656364955393205741840886765082028510815313233433626793208134907002166616393439689258614964065183609967181239135306368074292261369520526619279871426877781433236239631589164269092766790375142031093543545480635364073025978443107731017281497248777528659148623898228156978828091222596280165668017364880683901830363624930426058578667859224497837991655665427867038519861023528831086012360964140464700421445021680888251595959433692713154646019876981846074307606349913426911668977381206653560636402437377233448988939849040017149907507906470246586744607767296829634409200634370948858697509038287155018611792895929696720796880571367741315669130319761176032627443280922546933432406258009008701586539362447838026276150392297145529846380615379833535461407529387313102809056301349843777080309647521633890877739228660884631400346558009959589117858034501911443766413798548744193288684683474887413098511249438003408867475531090458804204892248438704433269401990760081015455657614720233054000786158022672545146666581131804575628252333452307675259057936986072705027969477294318064029510487412830482963818424389526309925206360964200913234765854806481628757088237976246562047716779774804801668420997471260913853433750755526011502071495322608145945537027918215778716834224378365603917647094947707671186914939602787920636358764732829803427539579263148065892701447733862428878097993928597464216573244229667683145813454649054243425035936235477532991396531083544335439933770635258534794912719170351703098098566748069515627358151893453016345568379127128414286166238870601819368051887333518345292148279930428494900420680899816745731219145827189652720290682908783492746112145608832502960456996359585731095245176076079977635840199370835963940011655070675158393626904642099048899503353537215820735719842855327723977671331321506535094518207851790927885734706082754862934685946218026194758090721036765651164702842258368675839913597205952480221663740581387621448065150281201786914689505151072066865416266169130913441578774031084133444182356975065604747788512832447763664401565705275033191271033217923137873664730604201074992244762471331303281362141132812160384276858454300919810167719642976222123517574418954483098936076661704480178138141088856835317585470179867160271289432127583833317583613535697386058449160546605770466837467879903568499767417921910491385600811819049525294286146172784768491802622383504680536918659879048571069084350407284104868565388894759336930514879654711760415425842296127664726124647758800782864764806701771158578160124285751911663254767543479942987088133071959139620355146234947016298587513760023822884507178333806344713993228859908126226634974312653951685571711909916965920747583291553304187108049508940569800900569720821102774724347792965936305189182825836408676372363309228337054979156326959427541865190069598575359121482796893089442731036341415876480143877779654141601741702018482088483824130583367540572400455112845565367454647109277468749044112049314226621785031690539506538733816729596193066391603608722113460075484357665112699438103267214443493155408727752814936450292752818090952548289733776351728007511290255589675277536495555205406309927618445960752044508961914863523695970450489884530645785089283861885331192528794981862066137817619842284955129813036102098547269798475355127481748018059745027874621736379841529053379458121645430643252860325983253441722252685390544948949841847690131666480260180277352882250796741406702044433171795564643424819493302062922196503223884199588146045282215558325887643166365815665589330391317327837836383113066811188087581732976947633579920009865280400589426473784063549394627867447489995181109942643416660420327853282660928878508774405969628781111710547567910164093069613636838629665097799687091296793330711891364761576629698870631597230294846275202605157714924986123185049016731478909405424773638230815076205919278255848786780078914078476427511113196715236194755021653753461597983795932702697600261311945257325715523105978294071360073714720454204855006669602846679974312527008725082133463729613858608526612925534324578659069505093975871810034701079762236389890339142035078789507872237424906152258051016198494370063654721890202068345359918826857249568551378418878427934310412949040161203640808449978625793125401175233898919831003525572739079901427447348673081799738992879366316058921294171635770504875196827961443566946312447091181107928100622199250846212453796313469515091063556878141838597461182888777546002057345229297876586872474928181991493985619384371429187322446822938452388894256364502259876981468426409604192915185244854239436908732833353044428155166223025028662375876271692332147963524949012369543660697869699668277697061399049863146203696765365901528886786293904715404554201866364742549388812170896222246602052217597819509436749177269203807916528746305627773029665150976259550446860902548320199619436335162865643653035251236777754869388157292673850983048193200422172101020473540498198154171587468249966334229072020863643760579348578507036805486312470914363390403792663302323520762094882408818904249241485900451787172879553533567222619007036096918891661460627376151066909224100189983586632210080799363942338104910259708383608548273811186506179980833945825971880068303892104932563461881557827924332228806852112275604373188822649863167761618017042156048361197415806927907156081654984645512523083494460707252205517204806077266059066572498384575507029532604382110711878502624755803113342308659043837929687655735149812012448157999728863548411456743474617342952832606358601622847854096601009600498411743007248374889134303366890992073806336336681872839594317134200805999252420274510368814459202543158883236728833105248351196395354919093069548712480418933628843416639467392572672629959884079855746352882141520103422289712939781471994471369405016839381856770530186269342139749209488440521934956817717598424982047729790232719651125250602501246222620812335764324453693130516839310170990290340951774223338849555970734914277912725796568627849082397949684857863339164988084921989565020837878898332504233390515551542943100280958763822359839358373207837963567704720954502603919582340639627992994852228027492682599737630717818590623496988280786063457236054764197175873522091180882459611392462013829058007341493406135013135080290815494075730243834621123558571906632178974305392123808701185775895656419436724093796918089943386276600842422001316756751920265047953383869387311423891128150861571182745982509835023088785108039111344520219078627157670354695098788826393234534321529689475021536105491619957928482222032673654892555592026017360696793534354791711269976132571248297484462603274533976292056665322072431935568481652576784446916276718714267732590829804559889022362829555405837739713210121908302060914708959372404110547378287253616984358944154944578155082199264903472205403506075331688501532891180916404237833359226926894449680544914777595108607930822227138198814686173270567727285968923712795975964869845944943368116365587526624377485902985538220570712386735341014900485526586014353209629554344921895084183223920557971313246443578781023895664322912243632503094350111536485920593257256239082263928587295752259414103212119640003399553028167306733051962974476505503124065719077683826457282187493877446273303546848494423456408963993319909473685292753034047467366892245316855136697820370716161712922050427689160482339063752450450483749455814303463505972101344011052612158267980484290585502621534213798795262612571952578178844491284915839951580800463216171748987718133307248964787196676269673279420063404313061617426685450451328393782699991554892213891870978797016123419586784259888607572659739286051592565102941408164660290360800682500872912169831069047055242326277903983344743269972563006601659735882348293514283860166636241016208848357211733791307592835676204246049550479677510100408115615797281655113619390430339242824380274774549756283999089764145674228950610034014166461287224620728438352550013436105520350494846404471571820217175215942547608879009131637257377217157324860094786172116623976972965768099841653694941969336657022148246004046688091518608859741042004439798256661842656095698215779131587804265802487441349215001620906385784387690843843633382247452628107679595148801056248781238033469318948799180228985501759740934403082572571591982379813630838883699960643191842097787220385122725254457712884167151236005818202466173628534136333652722408114700892789386017068547118916765615338944352556422435214034280878988037142938419513046319369643950444197595414595849832607369694678855281525607779431095883584317679154894663646407480136763338333388576473493651366275374866155454704440144573527497766516423800169277266512697737579702680058347000309735822639038672767537381027278743155393610134099629576802499615168834201382930532158737105970833042024819387261207155639554175718403521833675723961809318410569351773052179700578797080007102813323754620764551315496993313081687144348807814676362123955515761049509279487852728212441063181081411722627343595868334975686469961472810216048166818444130462314440713633190925897427784432042905056094155773192735288880637234879043417885394937968937858358924370561725029986469526708848203501197253702690823798105581175543101230791288521077522558421692142297016553785050297958944069017834220601909395262937088365375788776382852488070245356777517522368988145686660136306161983264358529682767356099201003299138883237513136027905094120098529192617266064572328846460737802883203212272187874356145281155706051396759677961721380499810688525978240213709679428669065923239255982646636204533454509654046228524162600915256182282723986757132413443898791615845644457777221695697168585565850964246389543563753188655115814814129067121499540967848255573581547845596659781386445186477860956979959788795742749635252617951153933279358046534430046827292575063269004604643677610228631739136406303935857454534732893597959406052783562743972378509587231027022919394704064598075962266019720168359884923094216187810833966467534157204435847011288539083550778777809797166252052312726335380625492452390627155841505934105675343257648000938448038436808612669062320787943392370505245205013488348912575804925751235526373237498986709304018729819419057097668893910954505575309971129601703680267996113115197349409467655848732306768811411473328577747844422800235907009938380996128537689560213576388816099967792192719082388847140754070493086509740396691117573722585077163349835609277083563244592858969026021457497908075935754580521296297945448604719227752300804317633755082884229125504901749285652097266582237443285870537253828691347307738974068351715658589972811448608821138375759274432995925140920955280292477647478967612689919874963735534679043939570349343264029917073209232704419166166603829990914840175226741336695332258324053525570286259279109362716977813880145000371692020626723628868140965436917643445814031178056230002782408331791867219091772197885173396605636396038752670170796621985386173217103583144913347681056775137816529589045914242747270230457642335056984863984913472808010116915760755979452198836701323427865573796362384063373712127931671373996446208753358662832403103812457793222375588076109056485644301972577480121063925501462454455117640108458394917107186324088696325291436743695320802623971472941989592150225786696919161530874601295149466251680673535833286470914791193082282256225060696630547048576364386690544013857575735277391955140839769682346463918818517547960298752614304342179231796684843584205556896006179549486254421834379886637511925248540162407356756071675685378450833116640480512728028857898287984680309118645134885703024728956570625430882401185360153788067819940081161102180052562864677616495591011698898778573076463564728343221609614475962768360738626009336094873609384511003116882064794115419017687215845734109942438440469862541486421378777155029800820397826400346021482409302534737739088191915125798290166886240926912101975083902777373130106999496237456825690243082571880559226046991327289382915430236281624580941237964529580575697203682151424332258646817387786870889615325592564513695903827821381213290312029900919552505831914723075961689713779642343942348063479052963716381407489287808647698316866789894278412067216615596285396679116275966007512094483161065215151019752233898001089337955349107804940789596227237927042698342095907191412421003389544571808869256302389287162108910646082844433601286297307494165092008517952897001214271614106359074817119889372741763998165232303201603365894407562818253908506201303240572944447129206285020303005962215674610177293047193228752476933928947631093588668391375737101371493173300209008442167341091332357212009061509039969965903353929586859714587015396882795043640930968526645364238596979339896671320849472092820240175678520053529276523541181508583053802402009132788634943027141958332597888471988470440219060517501775859435234396989784289161213296649148879164072121731651557358261378618737572020665213296299235378633023721347105026261123726025825854140393091028380938140230917036080214395927268021265931996917505459861797387272176510988937250235503321314922287336694113229769376205052118518385944080818675024692752993253476546992717053593466117273211996508007729645709667436704276814193245905899297973820833709548722975955658437927922638240075798790568023076598145106959213210950207972351990763398056600578322041983196736133378156401741395023737109320220696292467045174526719433447020955865371821629781479298542450724570176573676004926896467336494267920459258259509291594813366600122229145356804908475698215121702371111548197563367847273542888331958069094161120008528343025939741164447486916856276857517850934413801659409453700077849632434896899951025192881388971040041383464545107135019493984134125139531905456442498233203795451201592956960294938709039703877174330149333179872584433290627849992061000851645116657167465562479951930855749872707986470401731196046309871794852892082983907143917385367739922137522938508519512560800898632253688559209133892755019976764037176395530148465646699778852076733886572225558340257749138441575053963269593710249453012010431992844712475630902686355178798653988900369300061148012870597096211460574124655622987459250142560471832425249437259899889441695758900893137158438931870566177740245423215692285477818933291164515778454162609941774250675833823976178803344889479875242823182320721591634617316021591985718551763556811072436930192036997785620180935366357572309329119676333186973233439041554494655703701924824097663395041159655247040271765187637059795662976611193926720461446028799894084042077670620968434223999852245050627315645585225339065560841939996593979681696859945998159062579892277457505526219279521968919763223567610794170634242441762601552649871826871789505237101273728377451226254289038445268453059516875333004282040587924766910765191002450598873981231461728940679216890646211543510432121503148565117067654132321175032589071537152475874347289183714836511981418361917115547661866608784855189141850584849199038127788986660503246192230090519170784188656310700767998294776992755807033180388915391364211215468679203394449883434864683132135659382207178431950638918212449707092738675852632044298649338986190979524354962308706384469782980815473099918998974784442120755494100315817536937179849533704213474837365277122769681589965542962260637037263033335581645428185345328469980588765341918554010964276234800419009301972783711998330331441558078703451694157309146858301626946974628644057225099835059204262756400989982959065399449950767487203536145563172715976493111082943476328008267160162117129192683678316066522188007467726351400341715661266169435157749360429666292599692267656282653610717414946890462332332832543390962577345903796858779148482283342439075737564526753045494181093997476249331524068459874119170813022076199055275799995986247437689878699868029019658201012710166787372717886003920608669943175018697811794142574666115430063136368690155587474372119750302377144625469733058196261831457013400859354334315425655714562607484010036064650188836508081360521142341718354887000667351446057807270163695514211181130540888715378984760423402702811545551791907735299011492185143973885144789392563566027922727753786090212072444341018234070251824446029360432114185967583795463893837399540929068088834121883636980020423609786124485891107350287444916710759601928526648183028587873203809729937424483391215682154187561470079481293790628921663973482329608626390089434579382724937461471922005774150145210050913613392177841324639391257026318635399521656290498065766119599783818680594412518028622808922921304861865052364357205814952111233523570984047326875434988459365807135678852040002249483829611190079547936339445091801870228099535280900252951374232078878558672505462764735574602131503485732349258874855107557314988014060887505449369565609389760523193078383979020244663126732866468366107179494024931173405005634295469492391380021336669913124936799655155756191469564601532206199464052186619353701587340328841173266034400451021037939968349721124600708083466845241244398932311267573372043233930722744588644518523695449723067394324232689834949443241458010945017234299464152413115015267413273263299842643364533295415086237286250284753799672294509165311044506889115785743483123622422390108731181582173643916906340550755275990919339918952089546012380356584523266993943102101806455875947209646050509070178242947563017847022316181854768345588996800419589400872714322980681615428100894252265623332736454145474214936899704668577139607747734916856293277902844451037618881636886129794887937268929221010589111420621139002762035606190627711138129185337054676179196659420060210127962511870166701535952905582641632428788112496595102744251157648473712145799729018091205095564194556310298263911946835391295484351144558792551124412594972382235032518243925331625366344815265882652838166717240854218433395877309894342687769439611945200979325655802857448486191770615877350775446920301549428080863690172224389537049295994171673479036734529533884859342545652989965070621123234436416402168306303998475433662078579929682496953988437944197174932421663085456689006760422393678249861050835596541164787896017867998022980157497102961263424712708692541478639485562677951355708457610726427911454961849281231393729691204440385403694130187692682158772466447390826805140156206074418997921692091164155255590253092034546708607290483547810019396316794038963433419945251909431270183730320079428798185018113092121038002593437849511642938520822672640719369381150535464738874637286866570019723294325472915566945181394494768649598743453702662831127701050410527902997177214481229757746682588531342900607461109230310598131735639536349361800313629051056808682227462127019026423006187713246257641406292450125285721955383051106274852209035882378806643582964491978332993056265915924774866736596003638308846111496174236382366511638008109869086536644570986733649699442971952328417793515162686382647577159520907799268176445826448330234620835600185476168853799668020213167697935899291199959824182669001100150291212141028362352512459769834068971271700199862334248790545770041196588805390623468074652468049439036774356800246029166380471019169752910814130432094143298123335118384695960452951176558249132088287228131055554289531349398836736876865068517358422908115737845591808410153930400827242123391769190980513616833671019420382823179606771072101346006490253996055208916750981692620350086734618710127861798723394364965351366674804733985392774307341728716382493803821432370725670469737099090498681493269231065356029409839876476925646071835706202926055014880174394887357118087031533281943482635280892353477946078208127379365000340926585155623085265156522245786809378299429669673877252545054480520134169991641687107892230518700494661763629501362752623217094221427225235525242039300195131301804104802249171283937861542172830347034142731865212817426194456327964419753174819450772325814777580687319892544439985440439828509805099945113525963006131945232824341238631454032301329083098679330489415551348916106407591514019431589014417006268943459656419946767604307033117835552554774764362430627851905936228066679900480438313389054376503834706629751507213942394462090510990601976432599314457712369072229080149063549526925448483955018593470899343063883080297037888291001576184715724999680967629384453049105896223964950007069079731620137841240330628402720806127508140060612634036678149835935510240540390259357636335865282211425411582530933721409049320067006505100884490567203966389271684007668470998881549738163868982084050690241141000333017328520954457494657584613992673141691041951740266740940094789989481056887917058914073843912710312489254181341666920862314789802663092100870406519551652822897356470746418566192615670408905681231015779472814004103945416309050265016468104415754964907076579903136309897416874814839408670296454342867416960331986044701302447175775445787252056889435283906735738219196804454291632488771389756263192826957177730094591871385172234243508303974285509800378676511951726340082703170092723599544673542873634379009060802834993528091330202680049863367437779633094803277678813839464846052313237224963777169779982736617405730963453424416736796375257048937826015487474830704116286381975927240704646057044118175182574426708059573008270262435509555635598527460639198319021136797802929282962946166062760988909190289937892022546522635820553596377635954212543947909769052905051658523177394189908015549885356442137590848880274725826125073217619555591894614554152480204190134503513841720436612299920479964148970574353562426528652758958157105060630202272252779739483259419120316876415105725686313844293101654599761760663872219076037757945076873463132566748570452749082062481829112795521353228453383364893352650484807460430065586082821972971338124966837377805592512424793374147065180385883533744318079376677789829428122811233735728813759364007286320933047311804826864161274298488139555061530142222075885702393199043828539644980470948375346461950855044542208715772785068815844757477448489629853885726627668153350849396124876666513059095426946975023767908558007789978112966138985758627169381922517611425575962564545616131022703753572644903396743183798386160487297290811756677752088722292643618220370295163796368611721485469151228522697448125565646554772222959507019587031511118938244230436160853824514890292168932257891858712648207850751793307274090652723685975342709955051821966143429169698571147582311808143951917593815619259591312089711614065461443867511717256891033135888544433188785955984900672686547463512229247805974823909229446818834527128840257813463252822127334410816361732315792185690085586091764292704084588293332131213042160704809005059968214747301394739078206909212632911470686614202273227595419755920747442499369452640999043053789627731353844587225700666386665406253908594151665426538826440757788031004645085945503602790965322531434160429947159578245530749697761217412462792006958028339426944143479378299186192752942020406057335565654969626246483753301959099304503392314275799045437204517676146980063314742362393220370606261907275583599537373021452567653833228885999820678691342373754771869853372285401938417508873808422017653564603705712661522771834880241325521138973378541448351458191123222220686796450335026015250535780299645897821796924237492186968758607088995026934370418596427365084776529544130005431915874963941206255637742932155635373475926537327041662570531869418815337438558298870211058137918051685211838085313994876008330755582048401554034681939342917803914510818083513231510414488581278569154718221840604503156529661325713484119792249521441017978444031149094844208390274664561766492102539999965678690575784830245474651434942885882407439330749124683786047975384691535690020724700505019906993408752143332243524651689486219797014156588762008132986992786775690746114744993411556080636568394495175303461534812495919832295937539861132206941521549425242604234344577491590139239572267008771622963413455222254958230468398834877246844611159935629920508171240114821154208656040680131259266897518151880925854451696717064679208155390262798053020417976851601210684561517349157997195690682334204477577812851046796395200433850888835774262961473585894077870358248793878282089030827074857221156124439418023934333030412264727455555751700156329480567456622124182512642059770985497441432333009874927100388216751017097657051817939496427024003090383856907124143506760019174475987239703693078829297846215143503279916901416976022406753406511976299758625165412660416360931386890701365110934308151633085132796346075976345637785155936936261725197287657560715335253539916960717915787803253282514331068900643604469470547038288160952452014417262515893609760190938183981612277610659047522237389660719318222619549192827081842746265950578017703901380233085630094315718569979082313387518700276703458591019359347385074252067417507758109740136753400384162593865178912012018157841270433416493412958378972484504776685261741859993858756955866517845336050477109774331021331305909649056178663519692027125819727102399916055975161736236315121310509324485827055341015974246257881757540298414976397482594563082981901405082639489160877742436978861758804755897163084741056868563508205896786309140240585498761227405651153710144824516003906341914663347421660281550910156963916162779179793816104363254576462009570670980043555169004050418189607291841752902793173897931988646217129649351270776494874963770238136200333107190455492728498455004290031716251149098646527901182093787325590787789603361866268014189182440489479169038016749245915648074372776689368683512114555320298822172636469286472257222711021708243269583988814321505314064239792767794453140046861162788077364083457278342013011255139452418195002528827625181565009447283659374636359405145897947236490596354519019476580888591145981921325091480755938052635935697826971637028091363426464175933256287809959736762082709802137259324947726502851221509648688415006566152649591698541210453849037073840956940459618005720506828003364702482549590270346200928746984175228661186893713705715303660787112051468575265019050968006577921521753978315361714790387426048952088607333371311451900929575022633178953776484802448127325734904084888677506060092755005512312510918241887902821981518409344078741887379156232634543878710787250246362184213516965916039416091479059839776260293617618138831824643668623939001218076305999800846779482648646335655777768572815455173018582683622170590187726439699504236221294401952992076573235259347337942834232712653973252943091180945265660008495932305747929366993560308684117873398533925361477423909108603183000811630089657001836947981351067000995149847301130164789451968760280434445531236669894925994454537639886282020335636937331524006236688402582413260188985446498335613564376260373337299664284876578070106779827203456028761244386454777932864272887693696692407170703783769224176942588948486640168544754134824049538422213488765830046052971291037600099965102561315691159508306626528930341059440206061600864244770620337469460874106244287682325462692819958398825275457253271277159007290204834416811578856793135964792760297989012110825169688837556301395674029797086615308402970977059922912217674574174504012226830357522033337036082628719188592505318395101093571225970525538734457628337816347685340468213919379721083252948765362756652871330829856600876508308111137949072101558494861432085123151036874004015470501606127969845944584912360520632306012496192009281108824687147294299811401160225009911077689147434849006843351022685465078253488475337423915125227513751351727976758237521166152268415853337312819961441196182982712378686168506482111381319788774377904573662217994414258192162274355392214958108767640402738270153108441638166554446590442720021312159351242438604951692082241744755417314368631660249240047470097844274977345181688633122316082088990807375739028470517210441431174003448176152672053812410513774611559841075413390393604725290120777182845459463545244210763641417606955315461237024509360495483482814392640617839502672173670339874519751546020132132041477230422175748877262020143686284656434294028241944299313337549497228384154965096328526285193142417103070116165261950573446105611939126247001914281816958036844588592763061142241422723373047022460595756042291261430522208032719628399429931094614757683624544509987906462277322964092556867555551238303966052648773968834354272963542889253936769755543727532533706836043533578046545863953016568651462447076659889122609041863080356270369047452835554782421127049848012012849489231056631739493589353927131563128643119746823919596851049323563314801765287197468209345778199660349270983657166348829442810368082233396976640382467384915009755368913351871595195891767442432940388595351572724749769408757402299651236911264210329937646774245149263472570294937393588882509542831493274534776556203475136779905032621265899905694859536283949580108798021645220077920423780832991944265441819535937552410149681956613566973363702735078776605260442265508475765691731273956966741683839843052038733010297184112610785745041705348448159659401719414155240417351237971568824534945976172930877999637192735856583414013198920740986645701416912132609567694223622010581587654384441338111218457062353617685023539996956755004430330036832457372673008290726289646583326783057374557041760632762510438750063623256880851094779440034217191293972256057775151050248326728197969392974828928235478052816527753892616490474153806414018482520695170275768522162323814389603971524034696822897159690215758986227142631018727043311361556372992335733037978062495463550073283991538142191106719983545752566488834895490074600108360782552542929921093527923147632845806882660634502642321691600923681890334543451839797209653154569004381971641166930318520685424142464529024252023741142107973430809925977387928986974821948082078461465172204129458096655732479219613662807538930208696989157964951333014291422194032427086907506001744819443743266908153463468480128025753821152299718315345361038259359018485631810511977165144752727033246377181509927466633075108987096090380762399887062898477035477571460401011257641368946908611303238682636788634718159695105568780774953397511860858421891777528788479170150750005362452721584981316600790805898842952939076003111957911234881393338328778714059248884979019362433790569179285142301638481337344651226106153927228463240749429317206499522983962892696062752712097496735336790313764829200230388716606708787169754163789177479565115564940015798889120734202370064213727930297920180473904904721857067557020016940023367549428772870847092161515302424575206281012345359591650458102520002828388539418074059007186512393428704616923028387627216073009770180333621882106909591441625761901888979067417596804807098313915937988737147698206528852500202399642792972896695085528088940798188273768596747300637346075581408552714017335434212253423096565972642355845903532163873104709322673601220186456333577939347740414709006445419293307926735106220197864997084197176000275600842684848623037826000967495103201794998814589542044229869123866330075701204748220290923231150943280554421329832192796545132086728185915467583541035601414823856985874859629188931635751412954683462645690360028831602786764756633360741773613781850072745431917579297001607674897688370785853388680193758810776454341742294700939010468604342410232882261709868970928865899459287569873831246696092514048612417844552483029647613855349330089563580693989770018376555864987018395485252847039961565882143840925316118590781679649212946926626042583192778875987956066325370053058750477362317620912228451782330069130478531863341587260982133905558126545204632287716694120032520766492191664428713493120917003681372169511258507683147161433157366421708385086406271563587670836834226987494964396985117742173781264876881097547530673327657852378709670212170615144960386205485633030037881616471454095159018507460832745304185916894789299395749070773450538532694755612644521018869368482928301285961799575666404690829930914429453127856099399617265427195032273440390684012723113626552279791442906592337946999318898644728955648278433922066961357655887210069837268086797611264119726460812309090212908857858357975587875156892956104234659974753989497156839631041667429843024668485096758595415967546723676467332583682410413868837989642134341850344362469073422740551552474896490688646208674089912249874107590878951128801207234643408599693929097924440443427968308134118134749290847490317232069571357499782064086434470860291402157138229902325831066362785733807526513354694532611723977573922466443767441137435902636332722146489859080254712149182133602032855061947236407945236205445550890153271183837662303029672334201736341903606354893221281151298605022052163294040928020311714942614758468623716913015893357964296704800298894476428927159714995503208731926355492130073231021552314823171539482908998372154533757651102480666583194279339924723825833553959679534837537169507795040794717810410692184443494887459073662008803921562666095995690207439207593823646238678951282633232576318768845266457193773643989750520700067751700686887307918619723345697335517514214805085845396951669054459083816578650340358333220990422473573261781883906111988141150481790404213118319698158343797467422553601622859409575395357458646347480694701283864090263790690413423657162384595721307347061693966650559647950025666154366225624276506978826859450425329482131598408181950177043335828136569820183209744366646568110563553813542180998140969062603301288457503845404292276963671710792103600456948741757889686512479907477303471119910519585075077846342764932346685381127009058699314160536346310164077599942292684865547784946700113625303688493096858452042983557841937935576903970167398613345732051303929430225620202459347039645134188964437383794631017760984696014529565677306857259168371419333975090991822661415298055981957214055635993328830667650836212593648907225574450652634812022520308849257636768951388002778406011100752968798781522506569472144579430880146861978809310390144462245238165163414455592331784252730600235462335343039941855438756273470335500068647301250035236656507432868537030112253855044268161763689425098106006637454585380210134230107695671698171044892939597624603699160713217406828382048145941177570365602755513879673596154567226039797483971299668438463592348378501584868558093734553625570103867386884285249690065305019223996090808600529220891144702607851082749310714895930268936393875825654839387786019312330889861470523866828022041288521701334282016773272694494014624729796740568157463066264207077785935880062252111211019475535608494230409507523911695971268260640664001165001416647188179876684879351673384142216863220479837562265214717729568243691991867940932727597453080976269260084161517560325295199950865392354935528634164661323718321757304478811208338487591176045848196159029366729927398081477759203554260835767044132554679944205866894727139568960862109602645302389928942753424806866685642491876941205255769949042055869431100128311253718202581406295016768932660913247051521917767738267726179886356611898664668135997413285870554239537717709277945977126986724011516606715808247026512938091206000848129277473349897163220514659541912375116602904459637797041280531495307691062290491001963825599502250795313251044070074304605498048826576639018715681748302757372732403947409707689518221141254063524547758949880678809950649779019731753103706862873144494872256111283763915637444395849222448561152487182679980009483213828900333190954284489554514066536404443587132591459885103309247826180135766652126877668525674283159201936182324834435362894054185315886347466050620700177874038689228215593304288066395041487721559729565826466605374537612484703723507714564414818450888556139140491451408901873101309884065665773131779991299317667579780652290952747077200490423311376943891359131790689213222653394454128155551136635258036820819687652950173059417125422618485129846962817077359101808416340545307754872483408118688609801454939750236314636804372622067353721323593512994499097132360423216862674800440081520054193441871261016027505888164002302729591718861096303400124933892993750677780326441989432889499269186436190379019282680336601087103188037109528423010885223438709966419872089099629263736879202514605349546972359511565377989672703046145411477964235228921816310070515671545488773077168042373510898516124417784019712230930726683687353598550570760166700792269377897211346101309179572652420133535062625037242783306677968022842673640343406783152796593233966870007817224906330263031164716648513190089003847793915025568485519001262175626995634554678154971618091184259431957099772418430937331748348399592332321310935197678288520094249592170895350164395249647313165767378227403060701476921643897778945795412992859127250287901559376004449009646772147425688143371637615112701448024531010458158440091015477230964895191447802340092614220114101268452447008282295046487397863673496043304546045301377866727812315586521780393687075903180482773181098891030624811114166270161722671640516445722758226877074800452094310146280748578389093678352888146279576430150064051412441692451029016513093143139677000985595200758865575960610569033336164375755669176424746410382967896591793908741040825852015990681474095222436759263429684607614313541046479011774043969168879185278599124481457564579774018256584336122391622368628488095248568348240261541696050289311600058239384906447762620644932826475094296129797661204607939898320511466894049835178981431734508892621638274284656637496214895720411121441438182558334768825007864055724734224991106239812449607845131333715680560290869909444915298691553826655933159821828213164671047051620701381428649708815710643864527406947905615114983763335856395589322631377180673304568010616095984697167265040550954175865410134825318791223126794414206026690784953107760469309886377999883432178523166009028990696159576985093579283048852091392458256501727151595683958799113700518341000914027650542013615238216170991125636669502384531683687915862597440988005558974984083331344112873696870645467382073660312105099806810786167399344060624628083566519791525664651954716464040892760942341371987423199484655421941876798057406708194897380754363941786196292892407527903533880427971083424659506692190763027721319494502781805308458567455695851492675835771141146149442783795921312504662452857535173547224895978688875166348125995397430625836077696312801045174176627076896677170093869535591279661259180187916894716670131347501156454854142508355216330094224037980458861044678711442246482216263530832773015903905776681626243065717744632151266052782916558380701480901711114654034770598714747833386788950516290031405840896571244480695391438725077007293093954670809257098818034808579738227787541989685422670063466881537093090573831425508564962722054367533007846220739612466317845234271881052418308506538066394435325563016714979772787333274019053320513648361288031614780076141377267227701921160777279835834764119879807586910827435204508238427752029395084652353257837917031825377447332461801648025144238594076834209561217860082242239069472634969298197805641066153879258590412807963082208081696733617087342413168994165206897697554846371577441276426441153529503123850756187184748183171953722152716912044344276866557300363663167473541531006255299734121472831472364543192659536683355294654701263919074068007549500310611551547009885549654174823476634005554825301466579785661611786478288580614433966286925269250753596716001221756713482286323818019880664637821705248585389859731459174835918776098056165043454369605391580961870815412121412886034539734307754953092976124980694667780820771882973249192202119458397225656551150900043072479965180383089811676300892417875512897537759712040278926451789025812979879256371500511357534001557923011117037125082369132059325922290496734575517917766151559041541471672740634177517085890633122395730808514993629867492823389102168795618939959079199671248659652584680916229322114618714844527847234815290200367574100105759766184192833620695082528881978334790284740514173540032327286316359186532029360241268843860011114675662643421196665600708787127977096439854213920190148266423776683357181182102598666707744234328265718700471457153842346407230497651755879893174578730193970275913278513519317170088671242359899236690256608434037508465519776603152111653573103415656104220962221142904059480254561199634884076022024316688014026313981105069517813735753341693041595682371939620490541059700415425507365684677610977421555338057731656797131684048796594270998384781301080777008022556208758420407160605533778922946651964881441554320300966738899153298462390546504432462913998934814991984544999212197270244458786738289534947459410259411595898202126409067571946684059213865343672303246159268379965876783903642153765900281545196634524631907068198717419591853408674367120007377963593535827091699640708631005763128678579951759077220794411490111175662563294323805004615991257662991570083165711409627014420464830495245203018754876315349576636790747482053428012232595650317928864004974821558019233232414649966185441453790661369970808184877099725157708395531761200019886873745935091917832280356033790626023621754995273839109974450057048545363551178228575185616351249552426652277895671212995585837436166090346644183439731256005273406806651358702453924229127712111846818090507500754096034433438526752857600368325249156375276550096779327610611110863788439085746913885132329307282034184639139783998410717815922292236028780355437889635734309173902802019977672728780186200611729632477545034392300856185412779733439836538378743750367683446369790479753096959483094127763546263201760001111841156090430857269365217143986387164015420102511930767774784611641761775432734961933443977813769479567457944670854892408176674313878862128769900182469479623295447189484962925397054860813895017424616807784737158183785272678098863361006872046735498792176341999335426027438684968756748478323527366555259070393012218184407837095233697367592461167251138719216145530747299008841647975173514565486571419268880748543558894788657309909580655599576465586954592200368725011576394694591476775138438709924771892436907632151462360013023005621266887608176503548018278969633139605066027403581176474532287274423270383744805605559194390923332342292241026011069160449979480224656321892692748508967806576322858703386573600319173986721085760383813315134740162576903967051336237911030787151807298336007542782472182868829708126020192284559296844090441439477854617605689367257831792366940748668044707137958948252106969402527366544232938286500712032267204682688334488522261884060310681263391095899972584796614061871829534395812230575638594833865972081402888104108202003249015297685174438726590292046583256011574584629649415584030530254712427327492480072545425711574437315908414214621475056570406864773067779073614599760310963516699830875794976730357863507262507968007762384838418337820067504833025668679201908380469077673561922661935368198383941798548040369843147312065611595568142798561199521524396822350479658727516815633644520175978405947426013113626313238954137410645215033678921495310537607473343020215450096279056416239378807246259378163744939300181822402913679545180034731071744144116514631966683696486301392024122635083661287156059741171384845908144918372606439236419202405282896554406205645452259504509520246175754467037553986116200433886779217432407442475418499964736393950085216913079368296906476397794502521938177341307353473784836181369086834842652754900940525278570950564835754588181768410475917934825318937220582563848390233340922881462507927242536996458142729853807868711854671075747588409860706951351314396093981529684087203193941545982092338890672048535705532336312569709879465575510348845340806009408061746198210492494856706561251636615748231444032538814441577397089294927700968111430591167914260903965410101074428942627843785809863205369267137393967648235916922298968357767829274471868589565063391886510255893912108696308410600237621595419561359000467312228307726240856188025286054812422260690181544392680956523091266721070473801083003540826155307310675757825022025727653772506551672642887869406679865404754578498564278560289121530766648395809644426774033356753078263993614078427972926191879422453525013905390667189647181011617202066863979825914653139308153502248838681293354773319739564823377333616657252301291548955034010239228692121700857111865498252966546290638765838665210919594785528617541714548882054323964183091009242502845320949747792712643713816449787752516386444423506622154965444972670019946690649794930845661757753076596868648191750424650478012999017976115552684155768811887980029089194872591098620177553766036404803547879653306067219068816042934944035583833062741681679637791924209770672223379161342338942655335428600751567401952168479740519153553327475504173781597478473797350869150526674781663370872285113280507817064957539985956396107795579310659055901095263321549689654280291049880547433150998098980254312836500783937932892454965630975534020486331064033365342214486521022800755011810794396343768458020819720609979481255290349346819187869159189404885264925990281598862973822459533790784301982058673728382338609496868697267771930521884084715311127742570160453122991089010743267003572914856229582499969674038880127475458419128299523330718480918825620920765304658881940723756608416797518794590086576202761424274600874741017349664062292088785363612429243142221488435954327368274134893989852663456910980333228975109867541850083276062844780783884822495531701000419779291257162465170910743167726482879161910712584262514229063853805124781494902810575109872568976033563879447230959927923956256323828466236869008747821805299296817602975928084400381684077773719966310275079993662418076641557356877289916886418775978281995718861684870757934540309282902797972171652447751780997755482844062244467131624554229947141376641625257614845206158420486001681643755343870068639222457544575274128868332870199287680472612528544175428015887302005462700219411188460324898165749866099428026126440539740981787765696949634704457940208441799997471071400139447957531586533201945648223057666035581368658517025943546445426499996260089274325450685808393771745042887290260252961122213848306098430112187765501797423982665047174657370548846695764825168954941604413502607710496223338986611298371659169110564747243004379791853781631389645678492607994640648434017455492356340279885290397814738909557917297633804147673265822967568025133922858796096185150797245351373904585669781663011755016474341716439797174601593979176251120328810478890251987682295929028448539695172845263717923698987894454876906803694519013013903903184573789959206253780579853869333828699050507960853890275789044514702198500044547815756699598516816127303953078752199393895315478196561135035324507552900438869997071026470619569924857577485314368078435312263214286318229285693162435269705931104160847406884598302525889646572666511457057506706402031798682387698002660034219850020167073553476289486618521357171685031100075791225082576152393671322411212072784974816424314789230827858477096928055316967131574521300391379817515855312494763958717495078858759922484334754773788726360505875943772553806851080556038936890482881539722455095858777723758632388299490879374667742582115577431289224409967226251873123430777523207638749984249690306008312582239692178970369337176336926845277747079383990868711524890908174111994756350591858936777707458347117656015143578879968567656875853738204727557607116744260371518382690436709153820905221623983587324731400155035087952458881173552271888721182853675635282836859485638227146090961089690309105634153759053960104625956592938322578773563775745295500175175537517119717790069913664192647657875750351261281404251413126658734047595535039857164775591142561339838768944308978657075714867366494616953002546252830425648554313356052578061091504350801854122975378527384585865799071964060126277204196988416204175037577438128059130865977169661949824194542842209552772575080329039556766023369654634304658749196867030096137734809113544962207978099973991210755924524180593159421363154106250402965506017139727176902097359604180692326814545722413508036759498064938782667297881371998549904443685932014536390088886604225328180198891340044267778571950255267324707250577612031121627337981908420570357820482391551128261251501136826945191939237981705937682782701214878695816588619268320412212269393475293920931877617813873819538650244665797695172164928133855298655786501441126682823620833823213284162562204773804347499637185098642636067568583221544185398795810740300936223999371942062047631833477751846802106910882445433952718171147306338354385896660364228037423924891362555762463833007424786624020671839256037349835751128952288959596467377803298225259934918505130812989226195232246072961606024005223078022781967955851628228430801647325287648325943548405385778987103091146438267154929250142406439291734785672843755709856762454778643173381389867127060886294408593520274268348722345527233681107419340088456709053653702222915803202270180263576565104860187989207546375801230012160442415415139595155403850588956453577486061784735611926450502227277126435306295936721886672405003665495359484306075637938395713572010443451252427038317622483450766744432211489087922773275678039458890906040984161398723849783771293427377052456281225378166682051952562093701143846866446472784171077162777868799126588009570879747052228869780938573897022311878222714809456236468141332279770431747308210123814385860196788565790065710089160991921215722605804327814407333739958043162040678247890666760657891661931630291660041433755054204657136757515331996831095254758037746289955197314894360161877645265624404912727997957289198374788584157528896144746039836367542129316079640806057089791659448138758359373583984433691458604423993320654223472952855675579837588233148608642148079376738866084315854954885462604519864122666846045951824575106937970194581439829803527236380216179387936267394578509784025824524782158243179038633934648169450192252684979343472907515899834574299930643034059379690548049222449410753319063755826786014223562758231571017388165618030840307521271107242836289616294134620646415823026566488324278156028637984295119246297785941782077112672554458984797117662636054585091730505956267260425289966332207313522313604892077217386610408074334017472255260243722228741214298894832089551255415438678424641843849169727510646151358081152923573407872390637663743317278678107241929513658228258059946748654793474207506511027781703682354296254017725936003199916708620800390130845013506765068946463446148049376747179367890071952055812585899996345812247597055181461992288128471230037202185631014100950920811796826274372331133278068066558157101883627339907823191385273534046957054551532045961227667739284387292594186568269771211697786389111166167448938422648393650241547700398953488406168372419956986649045766941043142449537636774390751073730141472475557755635225988210176730460665791889555729485578643922619696116760580588414760555851316957272431267891038788351361938006512007772668104728935853690143189072633293969632824155057895156809636075038038862102480290096098011575810006785857541743567500290757506564314664650317843612533784331654408768941723237428854076407194034941525404815164037322336941985078715981356164655321939380910327220770652043647913392843149631446651823653942308363228002870782668155031103282724220777412133943386888268253618431912570997401167651668329546385613099258811242824160951743955832237411081170361318125936660704332367062671140154374127905392124370508582750364145885291244550374964284265065302066756308502227078211538337513905527295234016744388028401743343142228679230919176817111390392836118436132768295977188430640941733553192917328548186012443308895654348759882825609467018398643579366480937684053930035687444387326060506562576162815348423553951089103181789612786050298712007099358968388186548394933158395127916432734375436512293309617902212971052817633180815473359598482497935084193676459933497522390861800063449896789842307153609198812916456533863270285926086902740983320520873014998989688833487247193051682090684971513775336680551995741696632105209718354817611023832809121663276137051548809545529876399233611547768123396731615414020051853294143050431242136107528699911893725516775647712465542109608090209506001917527649011155107305942030742204194010574561744811464374981611324256115917984734112091327084728721715695444307785094577654949255229920148395713294328985057730549469997865716954200083248774956219954513641478459062038116898171464209624247966838510784538898763448706147537480302813945983868430462143509102873059645696559804705478426170664032926557533141431095916939551522573408573145735202851678976513852971594508032492771830481479429910774539846617325693787488427573858514873127630722421872880527083658241465989272306639208928170599049436343773480033503971650751022517712018405783676707851416900543872347103121315714999387707220099130689164143173780970284343376307243412005661695784918896695041054203527139813996165206426217432779018357880726849129318138404690363396757922969907332594025979825409932290139474655447217763988118123211325019687076632135070649136985157571169058663390978370263384380941706408968748356297702355653780689923736055142052768211445195132529286818348975991186363690811314543316955161184763897046471628523255356600217612798709753269309832246558997121152515379538811011217056608496568884623421457654046802254732319034321576043798067466606324369870644177921924466551259931356861018512371782076799184235024247883334570742891507433166592189150992684985692593309632838207063207575879425915273249629203143314948649881403448255719936253283882558126919192802756434232720634215243472843224609913677595618014836833699239361925812681060504573445357307456332423006883034054011626136206820158238617507384668423834138157319557764307955883319177319653805136750857101161695442466393502797922311651571461853194505138600866021839486266220272857155505438112295879612649454158366690024891284133744689835135760780653971347913851137132239825006002992973330277420785502000386703029941156850598040448959353605101188281914733322779199972561701477967885969998969122109836115237165969940044144715718966312463249370058399312752724546044688536791593912866876602405935016989095240699978661607945785259672569721413054108693369397751067660193210855686246214863425743849972782458260718124894747394241324806856526179738024661204529470952489456195003724884589911735900557484542168954781666784561889094018978635102946243973309619422933745228579004439120018272088216139753445853490175068224415555197638966771532363408979307564179233505444757020729638648061911016406553755384287543056150324530816751465220131726848322800524936725678040480155489045821011613704129302116103184320750560898412117226964630663647814671232270624698813578314570497832436197448377211841227323172432431152963298104329347212217487735897514165562129925730867821402043801583053435133806003800073841238834157553111512396133912006117020786266787052251763400879118487998629737914568275747935132290458330457498215448807494929091602590871621870315566358164787878431729877278555089083769891973258391065177700545051917189860070861539436885528127762871998527003535173227611398401822171583781133924109404633851926945933783761646395178042504299027005972226016203432157597195468517826745400699064390945983277970379652539087861503533732566475059434602062900047281860412648422265018613222244538752759558555059390417337784250854113193405844416427015343368732284723343178786008336814136891901916698530325754132386476338394392625696019768750714458350554435579532130328962822978014023595987635228267563070367265084431615169239719207353370663314367201797826658654594733000604893205196929593874697634165513928684105251152211501063245348158508747019401348419410559500327276910450832929511154334964320722159138680228364543484629124110034316309475192289506077942866673737508054668315108175676447190694519584762806341575509188024142574536697727083958068447133095502676191500690820981015167778813343092002350026565954866669012540584249528846032168885807551590007933372488453574002055948018575866971674383735312634201978842439348425880158482702488431410474828229062612980898267386845309020701673772855729977317582530076957444405564536637875746104955396681289990916529587348439473738124396303700176979727206262837885221579728131929367481096911951931769989938814359525025484017942874071248628470387212959260767665538959153415821948771696212838393303818532219009984892125053782989853945566779307092099235958064190276559740665325934766292560930986257631933035880264404612654293264963205792465388951277100272130417300171004572863710247118679524085318159469866728446204549956518564018903820105585496948931509364444057048455218208078419104073542799656681989860142061133040258635042262386488649902939223732804759461520850405247666338680070855559545792563195386803564489205621119000400304018651272044472066070174988409323951508327715856586960198550337294952085152714224254685627135001354618808425568254143516421812003285182547925186625146292032903392571813130817207930782274803257593109386605649967792502584941002726632010018775535859292278463801218055911056745319577480194609692997285989923653973910919288711604468941579035563705539553392642032432964168327516865270587868875130472775858782919055965732785683428735679436551240718531186461210896638501585838466866206254235900443302637523058298243418611345386925611791684408720451446848730298925050187697738182441244209378013058099080241260846615951937056476491321011070495382275938495826190369004014200056449737987069043065821450163206838822545393785120738894466541140009220623518724759749767434449045825337928789919674708682512303449382280664801590787857689694523955636491875091798258999351516554645654790330534686344052332371993217787687319632464665781709490567820814770628988957576577596435218880441151773810046382157503623886530572043279218626487587111496886433066442039062452520196824638313928698998664774509347254280070940793592736219985864710871181091862455860252145699356187819243108152336670748653957898134065311497250009245387003776774827550100308436074307211305061727392117206287357815326842005184324275539247767026790194846366600628816568174673574804893006771486963171963884644815392173817864568719370362258176621491130154369140108971497884681416011206374551251565008125220432826001548398231378079131689509400879659821668144494278289681374978881807584973565555506667266522793435224367415876114156166712320827325169814781645726169402329582183351470510383171983874622538602516478421489308596608745982787721598005910550602926022226437254444484944780467913060200783550724111728688631300926820783615695511856754444556772850147036890690816124957058579059398415630478594119512184932181466515979246285876723190087726166327191234605431326165663517941437529055942267913459247064589098389333536347392103757541209630997192112209354962616030500753659967145599915047638890542407141463663166427209266726714998532183839028419907835094366825703756971177871019156614123152453874070274469389604797500193475977374796861964130290889584067002577682897712579514728266432382515974480411601451484700636930312832035566079158557057871675954321372354669139064723949511788448020097292611676837666186694430251278631718307481680654457170699572683966399754904017354819828871163959379784037697683495841351531021736209400037529508448172629948076187406833607434638658705402834532506798469141408654943319882516928304745007029308118341547192288947565769117335885267958384343230763985889133573471592084483490178425002846195931480268762937981749421563093431114389464085259224550143454754326268852192322971086785249683347516502832063300274976200251124954453019239665600902759726687402209154846326519936771266665262118187999377445130271159765931040241764063276492945318228862328962485598107985264213495596801593506562077868052056287174105596515847178033705140185944143848044136133541724482454142214482151568522941846899557191468132139766209697048847974267195581827148118137678390333123157633152452998653594971735982415142964945893783363479004419858701076307734006811355242735642700389594064878088682916320243814471771626465291327596465271709971992618161426778284307266003428423699095175188537515256458699382644855494260700341548256088759190849703287874844473489854044779195379855686137679859763777629217440434497577241794351235559715152410936905173443644705266482123746271760270325624349588230234580983903653179316324755609481004404077659155942832356931822052233123676072771502046906752579439183400013853702686162551271698874500834079789357074595172417056097782138772489884842687586630412319862272153407212634414414137885088344253780211943503889964406162582739721961002218302957873085332835423617550975838156421978894480406886713025844432266568985344349112494176301254941224106236727344066857104440766756748595045120247092776870493252800917432027672255812488427725353413550790997774165321589976830546571683090749665787913469505824145302223972673438842453606746337006353953626839888639204949562420504525269539259763495569721133926553301939250247436429536425202989241748491050944898564336087208720493945433078321315819604799104854985218814219956685673140162708142947439733696131178869323311886063110944380976425212703934509309951504035315244482696281352936432440640784053007063887650260298556835169784554849785087395107363359311696355352855621018689675856596449068864998617647659888312558187176139139991700966448760091080425311701604837663753762438828731539792675313589224624463376385980639202186005300713399819689499610472021876363582354555978669026988204801852313248936314613172994582656687906566333962930506707305141654938893897257024788129527703682885728902162869130884163697886972820175867387484337338144131634392238125639163847046944801284442149372381443060074229647929861290105804896119850079237040945907034801532558348951027743313300736561777397892265358408277902813569998381389667649796441579343367617787699916182831380356745933136084679012772959551205863129716786419363974192404877821719705853655436369015621655533258616840395339379404180115046287355008553068491464952852035652140622087639915205697413787683343592207836909970480201808623495163815659300312352702805792881874765856320953734852140942183871488061784812097873707192080572790294708686608768244582485782730448584538454101341127974562245715480761047231551699295207288181574687201151457452621075629484729152743185864513357700517463409918301926373801421746469433037351349844128131498381303366517165451804530820107436811162243333088699897802884131638587912522322868809476240679739097794594865079401394556148486531282738862200843839042562112647427359033058945332318244739093889180821964635967057464207182019318676768498224811986283971848319983931989155639846218760261896962324386299238800995114219100860983856217833496412938276039050794106411319286269352123354059996724217851748031056838454245291171962192619569634323166132572702769218515947090899518431899842648108667201484713224923159770297034756241581773097105351962218870116873893534917876717207762519631435208870563168927514081473483999353729133637293676605763892489578942373856958395605391306974774327487810761992116003439705037849579930373216576666905867359118529186577879367841129623284876977112150894885944529182974600539392163200406084657622932627290407039077303675949159331540454155525540870445253917061889624968577362415841937870032893606500028772483772357482576013093668562051400094614553314388384887138380424058665469772753191472186102589012787332310582038185681277378675022278909513116820964486766776412426519839113227052081553783561187052311816657533081708340983419767467857669945467833693790711056841488698976901479442792830155760464431577001746776618925664043675524805422571437436394460997719376967283939947639971730405768517222410672343508329977796149646733487976877636692122571626714093536336102443950196778862080625055799144180002190061924560948746674851995241740943339180394765131065413726322657477600620792972511472304314076545105584468325284130868765523544946225214850034780989045706920776252813651543016466559106701062334863745810824847743791432653649984131558775587480008460776143020832301911815660463915390556824426741631137106061285296653042666297890997384703218949356972743361779435606125540389468628609256627059542624576852976956092868759789549533072652896661620539988343560330945298698971647860470082121502870850858907909576735428088386523302419111773083432587491689729771073910040666378981978831025546788121742617671186763570295917018483564101924910343053541377325419311431814039000442357720787930800709331676008026900429547784467444607468242304816883129736888697938688096282205363138408735635188388377897355881405923416184066399116237694889972342300471389823729220727207611368153268184516824333164862626852670365492079815840488079322433037813570634660224908669731382078960727056727799933035720800811212307842544914840526867784298435606501251455335605656094789309664520974064312449665109466988231157669920724239856837846623491583438936368453339847571141323033821445917640513276454012729725803800579629449862348876596847263947296799569916019217237470096266704108644277534066746099247237078620688116421210078265716438651963131138169704788069771077204045822948067406777610600339156221510381379870231764732134331825104359594928621861084716239234144301012388324376691942298828382957656042068839422146421533514790758705726064212370585155153098830960491914328893583755934050552599674860185376209001253468639597663749571345386046599540389490754935758638552896820417908910730277410106905372809978557755037632027553944818728913651334443333697140355687938408338136776743623190718012033857094901402390731370088525182973346477018376507126069795963472475742740147253544182831945475490833724672449591249969863993598977660552099230791785909758655733034875967319549121093933657152033457377619781370047125393040090192202823605416697952917962659069110349839907261484562862854590777186722819972998641466234441094437654251072615269062809072194373111030964485719998032515773022496400104892287994426476182660979048576262697514816792569337307331563325354624602832177201087950293388200027427426350089246751855616770547114368656536227700283826713184071658908271428275290211397294262094762894412598549416183516475762356664243093143633541263333694935956801299566305730771817770782056651718598415013716586404145767073877539548756938246961561720718272240914925008624791328198526914558291974093719661629148228272176207310582668844373544754622130218241803660033683677780573491299406498607342454306476525595615975335335739566382944318103385556075846681256999566863899505656955989586284312919566398748401397057169757118900012184485535613452694411147690755340609333827394454453282805589192399352256684185156668338761387524326173565509061489008775497810979648138655867942082065213195928911624559497635254163291292681270802664885216574342828662452700157094589271248397790479653203484192686644507450448225179272174888165749656140458240006637765897428634439554090774669561621435816908461727425835753490686921431047308185055958985482604195875997624397354476058263873293587395845996797583157785239745111996604619244674684432554131644578932040301531787129024133053906135331595678222441061368939577091933517890126174276016827538774423092418382413801040106563918877374204180337309641089905240517638585718112381368602909292046298232676898097927798209486282953388398049691616272936598288401476656107089223293804684617397464812569502835162982899054642387874587449818886661139767968720612419929737493353581140595014921623346440413657702977482828713034151400187089129736329075088484827649845011845309573234372792599486610958313556657984148343419314866803402344823529314622425063609402421620760287283080131262144216612174663326483375805488240777226057555610644035961379921691277227376854127851676126260853944858848527682121069901829181399274723267381624102310720067243559284926618218838944283237527123865287290745727778051631378424828174533686465767080103073689609369066062104907159594952576176999560915184778347583021794816650605886240076486864678030867263220072342886314524076163527974057059212350007708835020516914466216767192665363943766351672842905016370644383154862562088152428449424173958902582127619531233835500915213551268253373589653047609895773286448167573593581018452191257311146783678247837643265670119626623316127226886976165399174939289864021145557822890476852130687502746620078335951624983042819170812681535063774382820736845269564612223081225523772043406246680371354430701638442726277980628387741051618939236285552343936504835707008554060418500579090352873043886958041318478061119758572931177945878702281827603717872394749759614938214765376480781134953360485939444032634779619275491928607610992340643426923571260660287937239814835049996890190211341434726655347769316917276593165961580609569912948530068451445119675098784726677251011057577072287429930155922013741928827993582912250100264380280750384386023029624323928493022988545185816478420954520565180442524252834399852483810186745025101489084661953030189521534895484021103775119643982887730168305861308166906975773387452356928200787009505035230707978863460131703906065554434323879678056541618920534388508778086774401588035944488315362182595844638234525027444402023115093741652838940761438392702689012180441412833511100953218680077276055608554020871277744332385288309928021796212953241954159865595638623490221992736684306197675493462702813563628850429096194278356710149797349005557774249454639850290972184398573127008611848406310284268758829466326485337967414605081870567178275452682202131287971137180718661349954241650414225427734263156835890930566618480322963944130664495609697705177940995300439871959366061546445863504833792495144875000794792805444914194341682049130539924900711687181499391848082631164972142590363232095166924595897429463919116415770332491117589431576738714572847197029697687155520674816644421428970401850782792483698068266718932596217601908705352924993859696819871597138153629533448928641882043983147864400993008854687875676251584841297700411041058238492787563007315647019992987520129728404560748464310654457923020311203075725887648462558483816388002097200017228203589093476220394902528298859256864680012408516456666507898216740669718044178751501016912576267889818419693225573362762856679594618506996712400161528351508086445469435113190146288074754094154747462233863524993068878474440562904084665560209869067952886821441812488829145579816541613187168454448580729908145075276513868670443623278602904555375331322116514185164785348701241763824291744401565369348156021015994654812944685375663673326311412031697825781991862181246519889716496740662169452222278448955487888857710378213116724718177037724687392996738559473464114360996292014058170741281911708565930634851537382370676235512257649950629387924982854612289608221936790370702228793962107701268859792467997705931619061319450990758415491479683385083821938356546244894588763208899544878496137395732225059067651396027093251947436748245565139783824960394708045023307874676383920456265052414757792206712495956410544511120676686794789333099821541107122147247561211955605004914324408546119966807014351839112884574026772320995147301383485388465636087290159865885565685766630341768696605731369936965276413361566896587311315633766407238365415281814326161599047366242282445709156970416008319276905237592300164930954394817996884427302822007620754365995111419824660257301612518318185417488652095017832478319763598737157627043383144008585993215624231762428498553281822763451650452256091858804823543379211422163398657106303493655820356178818409789481091799480753108162282894720099925120193045796909855511858704734827798352379606759093481393468021606776125115417324212047917061174282233355004182382647104170805633851192007444246724254662311402999154993410220811894376849403868710793339631730165255239616817666693889298212550569133314475171485450944182850315144600461089509962503992192502168940292563767597924112963795203331004116655894108873651080982929954596762177517653189393938490048321091737532256144926991621141534038661955774576245842745274650849152788905462224539104822611475194132858861989718853420294375265671852441649910456656105355832277742777073967304398501926543535193277982197917740865673355507335381000868894323339365443121414519750581691937028304364094425500882552059767553390960492186761887474462994800822976970675378900325585519663001004199142275342173947444298507084168230790296745838443766172032792471132307873098788008330387028034711404993262371641715015874510194521832183774639589157177093806780742616720877718793417667512391639005010450748481828669857144946027281619518804728785396312786539880713066922880548142016006067046926849366563436416414182122171952989880798843207065179238638382314818913947858322021625561546253709500343444116523966928911972481838558725406962483447668448370897869924701388621929661665040475286412775715876579551598237778094042810678436283661676154832131249639161421391071855089140619041293641554340658785528888975155287418657551705244165894545347907109938729500770106766470730514901902402971916995586460989218789117378519002904138641020166967423805287975345522584348823467872075004836065025056081494320681789804856442283701466952836767705716834611695783671154422969523505987681287014353742503909265052064715599490465771922546804701931804293244718202938557251982267790866442304908984133608894264713407480191198519239895216158602638733288261398097706710436553318344530554359846311315383907675518919664333566034077214016253548729443353639076198984090529674242792182271468955758208755861637888565094845640453946975890968013381650147827166168166314534886580527610305686144370671487587280042701426518803054378256929264224389133174038220693145112019911865834703765494108498049866283377473595132994402488888986948920450580305786887495402827227803919154805764385912083705688761377979149000459634306197639888857486511104458412711160786502887992716372973911768537367460834377567244763136607228890204193243969532633872135996904761187881093828999019933740016383040989297121295761691129143095064204013493332576090147456030724041547158344882210619908838197792338307324848688905592360490096601533062117709049576145723557547523755899727409959199340657090294444116869867117978578995212341270563583091102472924505485600740849511310413814382881628135800676651623910972933459848534088749077355600425919810102106632428620199489934370279788300763734189725355123754672096183969834697613618116903994778438674417718581846998971058929747698133915352954606195060036137657248527637777070749741222035587653147926494070722569682686764831826456663863319804214913087293813268645134108980080740337937290383424638820324095607921407704174277744466740286965420812924862298914574572185449451679856495297775513073978800308859733576092078309967283567697366300327553285528439708233702504814416892189999611743552048685668922591872152669370655783590110728510142184456684372054493130600901597086202255788907065005838867088562071032392545354742219224453289626496957219908509255914564428644240492162702729547443854021433338496401719886545966854960811224551806766256382300020182439553337736850831560989304458587627100727392130298576756338502835462512264939963742620335851544766658407980030377138499435159702140434231434536279237791023358615260034990527064560595727190550730473819017996841738884212892849214462022368980284906014279938236336466514073278077928054757479833283573414752395905667160785205536947203901031007628069385635933408566705815134047377544755445532926589577532228924923335810320117786289722616731965458277859475311923160410859968050526392744133450378940654273425051200738669474122115609846592660885601448316085279836870573250038288568986929873917156418656205025364434021287636952051763686026381399682217401091560375935375093646563852619033166035317749523479176688000758012713432651366039024566269982910587690973290659057787652030213217060094973829901995099311284024856194263625667407721313517417786694334710078025804681242904443972193151437469220754218381709443011874087415726800852358090584413437553403062550785607931886602786816170886193845372321974977020609447234919667628859391606667554673301474504314644553162525476804670470846786127688765868193334670030188462584738246001060756657388412261731092970265224556137712174024829965882207262706468703818984235281078833021893463601267324966636251187558496545984729144534603793606029317034806171374595199957877506725358207254180689290723028026538460983085949742852375025947967885305918864826224228218624214006468869121777820852611893301582980317510060404665079490454108880816227526523306043929313843383103871797626638424719747678810852321273740303722759927611115311327572350788225271821488775036343639212296759908242215367180971495700905636540820098168555491215659678141015222183397104188050889010262247221022427022448099966665766669162944420228733418101389773969823168127393330541524674368977197309787486737439862080756305759995235224622834533091346157206522254653493553309767580602879996641775192446574366041510998749955733887384765818566385689240718816115808588402072963949929666603095638214041183352279219105230184798104782441895624551076437948210062064501728417905920848029516670821274712231383438632176743750303237375249657758314673731776846778559833932613540431408469341891399007716261143315949560948883170749811196123753478496927034515697952932130411937178595201325725765726587368936800409117854910479449063496768499434228946642223188906862673521704232353058881778895380400187695091882426434492326824520780533561219460141139038225118549306886957343338013943460426245151771229887965991734315182403079035563268322335354011203214692037888044049746090376893149449624968744876485565112362261171838326042827055831664325120167171299593623422498105614677383942034275035163700884635357180928044393088661148127723064873163619093565371594360169435211754778879651076647444501428371106858456645188470684363001920346511125410939827741462707287481236154255450474869481630370807539300039651472121442138770974786357989007024554438648953909196816370832710527269435193762152111892333548367952623534009287810446291660512479989777006738213965496596314410697847964366582129490826155162538472716883151968498090414199626548872352591681459773431622836927522432696786425600958113838768212050441327375376543103726522903000921921860101539004709901357545737527318189299661719022360692032465571197977596696173781096604786964852877067522535424906752823399072306608828507471977290307695106870018053604510939861305762887198773728255793653191823260979038751155505797528869974606378629098375908525629234018195667733605111249759102820585205607873012913747242921513260419382240954159674614641645597661170287447138471150260674189476672986618011200442188501537565092445789636415918586929936803292142368190815125783477958806909861452775574009303908614372382079794026011459370446989096868215829089372887189943279909470032273465524916475823728427518212604544946627671409815752631046592012140160943025757287858803235058569417601327421294545273190175783951021478865981154789098045904361466278240448346900273277355997448173431093403720700953912967370590053448272526383273460930761406884834467575104140012482152547565940272530528589657053565162276342134830983133630331405725985607057108338820588359056016268299682597852466913493733572421446179593227437193501479201601589074447682785790106479136374902665239472757800489156538328069340481140004199991275819185918257363826084786703797651456051835231418222926175331119393781520327398737357194457501517066337698252316914319248858247491163943032175271100482526826863420370226353144464436531580799941055191046695437435569809615220435056938741687339241133806760454251537557925759415909767328603211374701205948199458621627355591233773423278317989573754942484361112107532469658636433002128212959878687457582299701077151448825864362104339578328121101066666869832360048926975670075826040253225776514686007865931221450759931882277102711268163240659038765868243248960697676140758973215816941354508648772160176111234271992825051942341253134783998006180666453691536571640439102909264006420305635749580795110988220564980009573324713764200028774398511258594790133441352631854495951285157663495011638676410105379510403728325738898916286425720423709710257737011739162965833459585385765541927291573819840764160743218231996844068014298766251094746385714805088103672194864484035626324706836833665049912614397293694238573861516310698426289508705477761695844432405359247187599347768185095175784999588297518035337819367258141528227975642622988349455792343335753872528141599449405990898586262814668715626909011845947257549303674698876111942381325457798129564186773472966757610587695175174314099595112462183343455703126324171322408999139580776785281604362435150429293252005664738950935256141423173082454008399388345699682811486517893307705685992547010655747185655548435284483564404432194497750814010380538113519781620104513237539696876198209538558717879993127547710711193863464323649558120172121858681535579588855813541440614298453863048000585787379723601963709544186814596653407771506568571646144655271729114290277337137960295007471098417768359555878516135545048357272250401218461280576340257923985131036743899089826353770791481247640180961048503763671158361064378510468844256507422518379700365876208477360433674076900332427095907851403051126151361314893107856423712217705409101672585662058974967502273299028309050105042918239415867769831260840210308145923120706183404894046796416835679459038909161155344801696769462614513925602306637019476281748204762524405124489257544535136394350349268851738211767773168942566417059192232612734302981198122470194148664303993645125821539342563870451944296558459390123447934932452625143327421205930732003374010653693871309522824358629863446421441993418011019840014623985462199309837379049272589553499480288919627499199778490011459716488707651001888926552911741326640090586843797792128185056743550343681867529083266959850578110105848980385150876095497716110960587899152107555212326660103191727531111950153082891411137074999247010627286325654170313544995839633686172572762158993343117245590978238801648314297076264514381243197230044088048085783689418182865042216138602308458046207365705921263058610010787991735714576813667370903260031262311260309440906152363725130412236786477919517061535856355131658100273918723939945914977990150356939243099612290204499171418554643114768581148866951358306748956484245896685457794544385245283930636609522072130000383700324930096959743728847600837379685755761945586012102025715913712777549486474799707521280191052788034371318643637253601301988408764706461381350494257486988487418583899021749425316830440907265850347514406642463780520850357985600586841228134339910683865671766353307140512795690203625804902272557291149200524185887297394086053433948155425739672719921586094063826056358895704849727112997331802432415908933119897419040374267471513170354080479982415764495278507418926967998583985874393583803183939628554425674321302708277328306596415620170646106796602767102322017781981277609093573482616427401227231386337849848181677841068182708703438345705085728636945862963166018514643484237079947081611729894674391991740588204179415634835637901319725634447334011261461328325452230979425471603259142850653670532704482628454292365397576113112869344817005077372805065650371995067586150100767459011623570090764784395458216802069719294835629944011332666758961337282260082369685326833010895894986590311009885996392322773450529730930243698372586905830295651831755301235805940203602027677258060530796899627025672350352574364035753149025694351833559420360091216263387474709789820103112887766358895020709701491038057685030615145289184380081662408908960088240468721867271175298861991216769666731882368080673980151049148552586347623044284283387873450522694006192206605898974551802841383890319850092556363250854581690718276674156873873476751344657154980246796825750925281722131079017331795081661667990257382933735766398359333874640905573085939794375167841406409911190479855267897023689382958209277891782676028263804392184557339852457408493401751371882144945794856623948707766459583262084343839671461914936642556660890073804519989328102858259217122609022330730363097111360528380298439217286031566736219098364737871252004343753050313061486452677352700434621952316273388176013807878913776467225343563957219865964747658822181797268828121067048565418755111989545799712858191519087138891457771509299279434527353123028388190186118117823139611921223191980910099461253868182872079427700800799647098774118198661337296898697590922803702683012386051433115169276879388385745722354330505519233521351978213241705729369493820044211006598234347178392894523621469764741720689568703958773690472951388510807759747768002088417639497208194535511200964550800117848362431151328536126005130588332126971439015256188541933122631330110088600764453400229918685667782403914310153950469768418482549003708581482168754462056476750794687495539011019493866942274679107050697774560928471612532817800083941583662441260925051609921517131573500252658252118634811855505658169936268258377335526011928406022339492080202106147396999679695937070778338046236142432038712958328572825532054471740725873723869811676192963013509244168535153620206956478934612128936538724334196515310638327426654528991075779806982871184293205619743412056135692593206734400713250970130496552301233521013659206037719784292233033504019471797539128201000511564397687158937166562213870294015238524131576798833507818037666356478071301441389822035776353005289338525450657773775382420062914094787809220151131866090806591038379276457857453487308694919622465179926904989885669560572607603656773237058783655004797851352437272631058990400040436688031930321693403796460420440337036116763526766694926366976115085261262274085139995857322340982464634856928868097109046498540394361860054902156506390113606563081548791484581391122299553477827215117894162313914150549625020265389552050147690494558445530337730195096647332895525849592249184045838068951940910652753890797435820034604351265585676883248446680807923522300860539095976034592942739569877401726241877687897663346351914074204317800568510882441942505388618935495380989097160847072958983324475267894530680516212383800753779678031499879842006375838652260686611790006569501294408774309828884838810705841751087194021425280751342150308677554454857837646785554677426333235900715953487100965423897168812233119233212697911227733908234982439194961339176766500460015549675833058350403501632254226370397225989240554437022070195663196609447377440019572416116098678105322674536945079752983407814638534605847463888950625331642474885728796075315349031382602348227247607683568477786219717857618122581169745403136926799263227193539466455648259402159073706685907477981591787141624416226594945752756140925688981578756902911102349872159580500959765123057703152038454634189128141655942415597683437084200275367653301542595527869080738382157268367570593807155590202398901717254739378836608375763485125244755992124866124917216287100194430549111835175609506446347307796410147243068470715806589415426330516297113818127142437988841247066504265599053685086297279606744489921893501996649041888559021578892633602545680148808113995379542256127815733140222976900880670758204577870322061586942675271634671825255317609971493983251541638436206638118089594302892421637037475690393627630389069233009035166929601985860806863064130450933738951961991096319261712011330300405581924322630774620095450438941864779058955361714833618285988287489429722858001931537004776250466281068222017209506060775388196919525111855059526592739844187028231329899143041035874269784201060996324224131016980337695849002447993401748877715363671695293883998280743721107903955761522630591484176928474951853242145351013993494608184781345127469361463251302109218919507621310584737742928517455865374882863115593717928645107050845865730047763181464119697509956265746592889826752420186330556594480798144703261865995456995834612073104638932437080323792483284595723066587574194262235378852405904412743440892914669082262318627380917144880414421026230994172915669479908491340860700751803364629864332241773138120512797453834060347556067161080760471812646814790692042775208335502877746156580436724960632650227141569527949280006563461663330847280461391452323326430542685724104348288272983390460957601592602780346065880139917896849446818150829976447102541226874844882957291244904174899213052130639401712507369054986371779117877410833195701258117020095194839647891146522391725775642703784918552875683397370235445784692559412750035307861794436075258128132926836436677329693401726852323265675897544271786895116804694840451818655169735798119334877758649625883092571284024618231929115407431035800018262273695583377854558414820056554475225082775250272977593190386232147373600002741687206332133085405992567429086775777811113528001317526566996959831833684548875298339611156234213059300545780861314475486123917785456545414111264252765920284857910708901005970763718025353120711045807916497658561122625352492166475658931493836918000446801682885426117442661369111061058409640351435243815499195152410818794134235501349583786025179534368751730273831132893439422656234508671200619641556511526290856425926910358237338867869462013574032896453176891196084576421895885786892742989894163476888699045504251582929065630010699306411816968819190696397576715074748940545870993433487823823589446650952361516808330738845920605654200133449494937717116534144235738417996076496665829128011655584237034886846029740720623780987026192946489545149402076933133023389046765473807445155527498642577613354266203285467050351153974805577038564005610814550597836254908988619158846344151043976965163630797574710148036851979591496054514345898911953845032237562962096281934339334131126521814734049970736812184784232941303590478342730671988995771595364522531184716551542192807976525632129922495313874094795447767030625451821242224922684796361831162704616224315973743513673750839403829908008319626155988772075460234926218954110504885096111245954146235563974154379136658861790799560806867255786588584112509235763849643090570452166661288470808946286857076337802059489857501538181539497726957277729713791782317755455813397909688301414000279124652425666384401759999802605303556732440110876641123994477477338815118346099844781829357586559414870962892239100631151961251556172367711944598646774785233511115526063663220769122103028108307728217143057219352651257337023007078277427582558813348508837844069563563231402438999179953026540179759028128665910175830110501345511747145258161247955747539740064916223997869740016123716422923330355453855906827656115936930016961999330825121320497511105686046077453806833045445345999968434456385398377362322353467040444312706757391280362527271520774379402686611283044590691257984115492088588850347283197561212240152141084864819740014074453754648502899025602323057232130767635145714460724503734199766550846298662776509770255459161715687938818223506823117156283482174086961901756162769207456088772589184902454802955488566720479552524582669760378928165668790362419259421741861345331263937902945541504499870539824402531860810421865210009043625626901342801042028200132234649148110800619899527171274075117623844466972693736468206803224615928422446053966183769094444428866087922864866157669375322704463701022618583299296486943022002044734332226107747631774938509997903044698731225659720648104052050834515304030226906390127508880994568293965100398784835638615041485052638286081195828199780773402593448558544650262644234981337185888005809815954334797097961296990953379303467995615590908940622860367673316755372961405183157220530469929159434791483683055189157728306217129540738677349407825572760626789390580067928610700806206386847095051960932867505031494081440034762285565912514354861101096005153782352241906341089989021813508616865840825315489345107851637458717998089175124534814451004417620825957896607629397016079362877357361830748703473844873698060219230851538380519546552469484810984844970116331939227253308068502003451083396781503108121781748535552222680221717116596031382617467892523633390584526686531830847922968553273535356360338718032924555391461561172294316192198789767306738898672709181020611201975821772675897841118540744104345773224985295554330786954823146690997681899367282619878133495453627125475716433764721418449475668289548065335720196978902742463398991524808220352023838636437558778216751628752957420905718118468042602106465271945831358170541436542184388782092723434730546654325274383838229692952728192980543782173117493855794934719847066986420381736617836771079243297327500974025744310466471309274331904397066523506820768775460574891796176330945916883351450148816071096301593491416565627439688384818206978732386181844225314614104402798905942478566810571085699745187453631802013980630981917270874653654380476166351559555672618784514914988348681086995522679719562844128767789482919374940602105072648172898635333389331432975465634242100958771810913923611907609217641072077514130839221527951282847137361179879408739892068030370370138511511850579194019000211892917064553539952692981538982370032761653549609550949204358378817388669194113748806002103256117479368166358856168209354974071283130065520001692226995442704239437831824613933534827245716000968529163993524761262459291840185090920402988131445400459755615917086866011609685915651173764937786886651301332363795767678941177563826491575990823193123246244961515655491509765949774557052688134413957552485543758183809165612155379513252290796308411195664224106395731638365828014823650134178023890351403769552260340002934067062734809610498958315658218286220865366279377445166418808881878230273647109530249257212750753091920346889908777680282819367349888256686465243001610005952734545813778704200763797209168216183853168320223187039623994741018161246674884210194200700481212495247009564044668503929861485709828005080108591115203737312472995510396284985406628390816526997216355042425459064754798211101194370173553081068418652714811890962891976511482429204462359477088628234135870460529386017886822478828205293885192952298891044025152401900845149364202414393434912307623753851231921589667240717051656329194467724347988255376632274826992283168150326225253894887469600684974380788615098312431499929560617431076496954988268195350953352349826820706796796333533849129736367710104702697387565795194782917600886710477549581813921955053791150078194930781580957728024632493299684005804069164523179759605419919073515479562908433873358101168360008396500334394434979679464936290467191068917785822891373095689686792790566570224859433182830430269863409715995506468950751169300436036771804952375996474845767274750025690024178740176266842375063702109431930145492767339236710289649373740435321641631957216244065229018816398603139649194179671477206945940330585304819584177959894516873846552624584482714993804174883329923448843387362996729183242952317976370632942924616163362235168082187348628403043258376571552853739255302416208539041588556338174227309033938290275354233438058825815678831944510450515145229968323052644756281990207550975049129524439742901434547390224918768661268533443960390067577572012423944532744024348161541426954649193950416445079333281420852357273641838880988697300113352198715337662327953676118740769653329409813636761949668409898789262382155890534952022632667388089547858700968220457280041541845274366715050090083112053359140830951015924189663664438863825082189266249063642012878639150596507754578023540045083527594946827109148781732501443418503320244052088137481693406208451779293022598939437885656126128466879015475633271755744243087053798584946090406212299024084886220363805214144725006875283068105821571065415577587683474996931749401581455387838017570062204137782675732021844302187512909404000607586689802171133266566549324796388279144116460183538372849779944413643281830424191776009162595546057039390680448125977025249313125826318131725971347739478817596201418181870481301548608474029940197256901747302115392287612298522000591897070585475203668176767622973896883790981185960738414081902615494137322461989918260154313778463224892068435529240750554133530182393199174231512684383742266194618158647270969593592691363944808174872861950346844217320547680823159969056743823260109260050268012613369617400214815012167932932357267114004084876173983717443612354660855819536978803479174231474327958214196421877990050143721058591938423237746219938487634757425647045891063000534961604221296310996088812593470419706372642256992762978245112564836417611870075889071521107712615374839004772036186628351534035615776422748326671357277695689736773982664126796412211903899670050870791472086391974099951878313395544444945520136795617724795182622242856486932888581219041164534750933375031182928547674062308140372133370722497384363066065589963293505740216103885149163686046328843877897773135112457232952287430155077243371864288244462294343716289946321630854303657085838764204767342572222726859767931394462936750021448905928315474445977712383659697346862418576981276371841682440884214817111739377115906963037473486459714510843613913426875899674765295670750846500655890573944338265382289359880862587340135127137333581963823468315045178219366342148182925119634990655230090725849221946558692077639484044539105038143773267195186945240163526035037437793551537745423187703004430302921561085711680548249652867334133643239496424323226425462585259578150904735760621552391667287772575847941397045439113343602764099121889390835242443771481870035682865290144428479393865480158629560555145781610021592978673302485191602046505681622707524540708683560509489914388820555658223938892616896034396205462006746143233497053559476046800381769009888110740432690016542516969124762980162120679944714260252697295044299486321838339109239497439222681689216076884261041046641198479293466575986432837369659439640609713933268328549779874398166764949494147679167862043774811652913669989644303075054604198678879728586431569490971794685171982144779597586939505456495185918474038075859532726755696281238295772544018921641928102407293470254203334017202126547194065085859607720800304708889977272908250233936731609460874001386802633053994878979110920591593944223810858612875832671753423004016918460765923114499910981874007877476383284487764645759019500175739630387446025203413031159444060671852412620003850092846754861729272037319852062555452804075648117183352762361527200764752949951483573869199739982756147685930731547258659648938652308895164996390729711546619565683847185116388077848621986658896909649454335979254917990614217094494714782637551950276399166984608291306124998146185847605084912691954562490211530167770105310123455049181883387946106519911558549998477376172414869134565486965395948395427528595193726913621016750703893974440254861939837557987992609382326682035971101514827851626497183447262408243910749295810120490378503915618507531716593440185998195743306468487314432849528141523681262349231387158730409371066358354288965286369368976689964194018533918079641182462672497181119981638316653379692245318565518653572038461894863725788133668605312538416941527902369154675689616912003500296626192350244878929901672706497780897897090804592986741808676513885128281318697091606866732313828172075060760010730027897846149340634443828483538706402808000241689423585976880125910974635895628340113432906833919148239542640618090794283282337696338081200443493509436945771141761671576062231564250762940458987201328742527526730858975229379836762751988379902087025736444847477106265854577958267378835803462170206982328530203185408623378251976256518021168778717876667961017755622891756117574954234516703947704319670037758682414513993738927464368422850030782997645498389725979660995241544544521170423799638265725380563605607032424597866399783705159920717963142579439174192447928178444754804383639836120210753348876688653749812051655058479347193370619684839854838335105667254857642675255538446930416178947240646791467128398432361143674092288196970871571752786495015786402072205427034260751324755552560315053773283218460399428368121021035593261048729906978925327015440192881662412686498282818196588478119904367311882279428095987464097683848066562168579426292117047552852697230743401929067860780822190816439407146645585574887950806700886047647268213490565852978120141608120946687975154715439573049854543229208958274245507155388431698698851897224350826130480240404089528091279937140328815174929678347411231754980212853718767679701299570645029357450805950822749011586756004183582989030720910438274772834166476339455660560581476523370189503342437575334930687063259747371479510165188753461030980974349663899882072992465773576518497170577706147274663782005411902566665330072548296859101353417925979663574511064142714276599881670744190491752629111801698751829013038900712278012182283918683838562895324427120806884459351679496732576246876477625202255523726282823330739454436144639792321535485635089223721540719721329043198722358673862266584543883208667730039317719722824560903942745547737648430116973121975187152461834488988711537350440448336048312217763588352253517313449672379837624567944263079419796687873071085117377858340427658198962779310294905996788360453061334525067473433981089317675719045002128913712013518493030065299778681209210043692671962999242319320813256719776445577150641078624424807911950384361632428553161761326715077559662174284553210937545681957399792039543172827733289625324088747626802639444880332841642283529121478045498719724467938899402333701685980573547401330408566357933821612581876242918989955366747341363707133074856910121199472068824280709244077683236805685188463647450281912481340679273830083911653557157691808170435344347865028482772085442844357591966398000843982918577025895710495268272684254541364425022787585040889914099352007086661642051522667305904281064666664380115288241297430032196804142312470304015691683518451343664888019948000246786129291355018928888940327280476424871753189766921188594555380166511306743110519946422282731767895745393949043429382932078887447317417274671221525485038549773911783138166507965556188305789346983293344146858136439353447572179971017713069399041329313309206603052174569274669371406649981698043845577908794683782357811109054365276537236276972216729509707875162784058480670077965881539983712873213627030693149714409221741713305517266197216307502856396669778537434466680258840160847762236024528664557277514534649774540830024940726773841582055249956909251039210828311438462861388853847572630068035046336494246973598554923411466382830087953841567716391595780082332633511893984501703746883639016098237569032874211707881054351872262494913890690306566526781751221380205638628645897256926580757684377011385018716134095578113465783610478644160401658201582822482486919627931564347230538819853265453530923377367576821102077337402912145053262607830614943545644147771829322910322106232554616903175485052875933165961512276324198995461013958903234153790308137789058127012241173261714933884385559265800689079549618836691164761624859288036233567211324510764293780686005122240232883259853771484379359348469630249047324212765766777594054412022259973950898262989127047952719216666010991409743978529076533311341988273870485336965070333975999870706411670967025738838889408127198566780805070653352047112111923057829196755511075838112142846884224833490529578247363622188348583300002391883182204968185282428028561920251890579128550526226968008669268700611207023154568448822145702504869921839326329116240012058456284180560467300762730572749508653419683301752829267870449549507013539810405138569205764253152648668702181086422468160617334836635270935483847800715005673861307531060010336353389714224356949441818091134632956018965707621527997244501732248918109039501143244731754930541394599425404303998081247240136559210518342831667784557477205539715382938071836515892266697169552695768955217492163463000766121144342809112033609276696545116425684337901371796257296657627248860221398620180110131563633085472880457239749299873582993127545736695625977367698226070798153935111383560617170884944818496152158831157798924226497709484014326687172149154207032749877527186503395477185961248150941334008446398309784731073202903537303299169910957471637430966466108651896575880643494956083143840509538888615710864636160686605994134351026485568372163690316911742975634431388081735325601772230294493576655548898277675339934921625904963350303403785876789993239420005962776635908128702300062258362530141221317642175493350627703296081621096267167125627897200345811447908375466332918604496695455448966100453386934144474557204561248541813310936307077537615813289800114339065493246012081876255065666690348318088840577112654834245225361695374648503968657215351262826966984238970248235208141750298637132614716504012457963258259761649433221410242450566095533743795186932373204481007995179075274446886958676730220601816006356408488637876890673681735421233896197750406794673557511146008163230328492680952629370940244927191422446023642302354951501254305116841157371512507919444385148543274244673807224207553083448869832238818048476685259701757607204219516140093541845558668688606255053142645427922597150685177189658842980502299509457272389704912998257060950968795603546380632529119756571840097519341683516396370440337604356516857071201374859602958454502754022280047449487891706142959881015042964084179018996251549884405735565679156874629682331815226424976536385620144419209308861796666598453509687533423783552309683276208940550381159066491720089156495147375377944784329480269166394990079523800613439484618769932832078602197418398588067004470185794061836633409019656773281575435272744728141980030644662254232954129180250800144150718011806450112348295620789277241787209037567008845463224324787268752313772657522699003155635898279996437773208545919172233580196256196684864768675954947738976613128502060299938473322009629726097386569571448067825595711806152356450814460850907341634720173965774746767001566519505104489060510632682263954144511260095161034640108138292326831573306735676820643658587499877714307102795456265554686862789731085118826465639806797392056157980704647959857854398552705198320752160227137983614646139456312209871178713464710678498292032663080892912748515021690602762769110351971988609745255475184220609739083407310401191803376911705058974405656397603067660670149651058173304200094308662202656116857722527085619329710668619825225420787026507038795409047239790774236763241930322435518555647969301140460777248687997423561014778561517510008057597099350853823292075884439692179095344086089943018140287305088941166561040593106797396033221498211310862698580671150651201118458125852293769851898648303289380787521978086672902434129645896367318992151836450966865383045316632986468192240225076200788377542297671543311126871179014051847117328791687522641070775808300306101986411275654258080350987974052146338015356536670287585320882321593816060412167505936634335892778116141033549931958129824700479006326731551279592482620325735466952437923635311630942004289349459105390342934299088976336806331400334971361669667214595963880445499791306908148735165786083281747643040905572740307377298098369233378885151883618548564766067375673858399357738383184384189527603932373350427013005098018603563920653346350656249165843471522189605674477234211304710037543013311340895972387087387686875461004714301300566374205260869445029819432157299590774747923306418121120576094938207558136211783374081638047106813385258073524847034237124418888374309138998172812980213527694081267423776608613300299767087656868487869354555182400349112659079411511478551597517803171213715775702808278475541884139074098072188787556257784781447226469598976816560336173693042591564068348008097857757065265327948347747176413130822631479180630077615527007758147633278491178307950932591280689744254512834832023365049800821214803154159979387336043439939400612243319871400000145405668522771811172496302412234781387003213804213439784096573663323349227023014712833093360320631630165094777366635517533716682395253449318994036313277545053384627223434667293549902014197777857400358063781313652672724763460771014908984842556388851801192929608384313763937322113396859858239559372056871596227004493115590544328746755914633502836871161180713188384081494351137997941801917685073234948389101618262451177921378655262361378226170314022345456396454443866747558415600057904997383111119702915224195705315320326925790582124409526400047479883142757100192671975032623535569607742498404218506330106715565733117481705947914293399303932085183018764005986490884079494640759064761223361447526796553679900545030292997520330538039360601121055642735016949590230787390682418439060715211518711116386414541908365897504113312095894151242218813974669709194698374105243433991399114058828626975262167991938082665856169210318026343395062608095062331935608996153489336220209242264076738724494782488480625261533195085385265206198630305004252809979731750878037732359870602808868922525177541484469787219630507603747415574622875758488526850061920867939046567732045060852664617258165446742575961725463300176897230460454718347600049683689001428805745079033566474555208394208804018368317905925145597178400665646272707475520630230853595467607412251381411573046126342122856596196304893413540351361376004943868650166184603478476226644451055138710344594765714112872434067674621253476034042368596310052507859873025583345403321166091185779255729717193137222398855285457059350650639697787753812147599295300126221001873843234853413570983969567851918424202109766588905239292452499823806337863717182599430464601884504092978744366494854717319143403013230887289630529323227812831783803258417255427252334336286873196944446811464761157634715492486383332972795609477623878266666122258294757519773664271609660279376286654730923100313198552198498460539291393056030526032161944630450485385818110503780130099889772843882964344167342532837533576839138618806247282927585546878536715358633533818234821908196674000174101496349880323149073340481982347245393930341895129946043655223103789658142052657539560791867825192188896773031947315047811206595494121161853109755024432928557092198858058897526285453774091186990118924393059388492314415358512907271029618458308523700241732216534912257801069023067328711687183234681157266182224967013859777875109981490632888771255225844264992881615152856922592233592967818835289296915420635062553280159699822871095358956026389185610965549282137039028586778062011850273239193952141858149355803387357362362386801708665860549609012883002016761600772193033262540445230618597931524860768789840212191986861334643150338218570631238134898911545959970604719456454624860239726380046562823375157427693219685726201231783076602394148694839661131081163161759701904201494304260374482387600381866512379299601844089389566895666073468720313507848074848299045206268483540929155480849330936494322989241977835787093657116480538761064950362769106296561163805934491253196980384954740989892367444113849976327072124559880648096979672103109667459419449292811878670204899045779336384809567936525977197755920938850772722266695826388811879028606739712507793561065521896681592032660508270347061019618881909563900295220008924511317632132459893512639990760476998620626275470595283615194617121606128328314916528865107722323974551384147625104490156986004695648089818528594418173523475737314893575256109694915087904772185407925580122989697163540774379564932301166333672983471216266481846635961201964599688617466539234471418937332773186752489094269095608749133596741440758305500642424683453336183047282903272513317782584426699866395997727108289473817184572839982775445051321799645717465237639923955728624031866978754457228069023092691939572573306466392298257736064888452931761985992875362917448647879097314636921845376459295018107196887455512295597777171930046162888561842629114358905850226655286437407546956946808126418523225633813488811217361934296171734881527658707492384294441339480403011791330562398008681997681280031280652954583157718217256623331525443612763727306368705340968620933964434745792578979897604096679375071463244496523329936052291283769709543000692706817015221627520818916660894208476764349334082979751545739046719306334974754841910048721178644443816680160533732463642424507391969609241244785655777440422228960145260889263980020453863412797716611503571414125177802168686239113386529099768949056888693049272325353682296534700340683046789708914602606965810879912859381035926814289362475477087270024602249111641199842575672294604220446331959036791435933648392127446158522471307340267903663815300281314733495014320804120434391986926008786484242961380034393448154090707152288840571500489439453595496786830108211696778832017023546243896676561491646357977832531509628011122069214056854365545439755304723453490615199691383554483984078047092702399976031422268230671046951424771596229235164691815738966215518408200396217417773650756222322344951581627993220550774831134301032681403549300453275271646780030532986533260137227491074555808646264646886221952859194987067121307431003370624320534900619326930515312052281829660218623441423682489498440108270973235441207199923801846592678967247160563381196891097366882176711951012171699790451285366556487007274548136609044768738340415003024504565013672965486826463400210864301224406465290026689825105968823236674891991195499739228966509212160808674440470432157267469110965444438294887858459244897731256661850070941932738815680099962656494332600790777030934390941014445105887910942547335332994932453617128491413080575464510852730346411894498979417176530883388782496392716221155733134110982232914024498144826094621650687286644956692726556308999162002255789359948614466932030587540481462696333498058885250760813156160892144003555096290570938957423529299529105973788176298815995785745912772937625536475212119824254255982812147289554538260021685092085090246542955305701173084822748028185922472981464470760933816497992853963997554663123003641952771220164904440955587099982647887262891301113116646837302913521903901491155044793760336894826351122010453980856316110633240328557910776852595620769541998755987744999748564308371786941511141739984864488999834774496407389355632414134714018668992575346270483221511429139085720525304546565985424433326844344838288408203259281299113661455140643284047314488058591102067527411654001891927552683198938817396341433836342656613818631328713170389012772603085125387400357920209681815075788656621258530703382226531179518798526540696751711657971971824416228459871252104238955157469645205778293356200560987177959028069404945932856422858740976495570375496970231679515298755608267339637714982312304925490590525950058720748774490671949761431911942073308623405979522647601981086607220804841259318594054827563896162296585231232957219510449079540485727975527888564569338821027041560732769327935542541233642419953615650922803575894736296490165704945035859008985320764171426705163148783975946469080711225347384563520129199977234469487191135857431797029107610460369451347824507749506229260037744311739548084468070262960342526001833129187524883897984811775768292922279024216560187668060102303764720734513640860891062657694464960772837129120274835491325965384022050400281423939308260292883730437377025501380807171285061406324533961708887009290759926890742735210591501318026329757956918937841296835243377967473126535290391016232617158902231758696889550622285418413536673803500439051003516115897518833069189241247390450332858552953491754245103378611438443776138010064900112135022904716285735546037574618008509348136340386585125887725885502954685910143482819320460469743471312385247395494366398497226813835363401253760436123403730946727957952830696648796504371825546682082030331528794708587306222659345640269555978616846186678854100941660447520549871117374686758106247844131936557719377857634800312705458720138020712916722564275909831962148050941375164044012995307314501932406022631578522938388306815650499763871357209621201548398397044056027451229588130138712491118872162996755435850263841024712049271076625337639762259462812540274687368147838695470780552409667755345988468957207870044458671263389182506190655026070174745555820051123895344385004393047305950739683438225860650014620107572773004816044275884863124518899105431717902564797597914696740569528210654396252883104862101983213621169838172572016734960070878472994218739460674855153325828389882562506559044952174973279926605264349611633860432294103229682304149830917228333510032975202505617038403556513727683348051428280599846943036810367279129960599651358744438745695248556205334438520437644377472078620055580567909010818204937441096728754691822106626853549384001581814560944495130089861608895265603158972291517448579994508672161001092613253251548291481871065852526059265711233976701000874934820125289415119857523925888026177311557446421457446354526381082671894106067544976512220352736239776429994126805474073693000279078478177282134099610657129018115670882034391288373833014052019458879365066071247769299459098886724081222356875954438738787643165336193393544634307312656752633217216829896107852601977352563171739335094419114488509814551821109225524190831764319072107901738689836481055745829629923372955112682228736652775166249807777871599156985614914269283685176587736436603146547486994942018117166082577575613051336313626119589432121948868555403307060166544141324812006136596777985116831487473554883505025131194135471738323636721403478848878181912593707287224764935498493585483265425501331287415254995377118639311495323224107123986862876084959026662208466180274734374437185890187552122495510689617878673277899726195592942555716020722257866665469433671413439027572327534551171347987047166908816475249536581102090855884185364427485553831242031244980762745252040244753270989326458555177417497388391041605363572818186497023366412210847854418877077987431291511436445689729480147961800531131454924406737819874012455258538709464934669396277448881524577095733477748608114355554964251858580267907769127741237652093836594886793115288402920994498900501607698628191656200972134156365152172179715067145773510708270475845638176440956552802446311006616791245248470455912819047090987155640467342530212425903696150358093947305914786690364301340909246697001634735628967247036352425852128802099976187484466019706137271816771342542275036405935331041162452082535773624095909307376458103494857574686964783944251084425245450002397724104501591210889208574177519529301021110068398986725293189610495366310194177833192253514468021179704849913047316601623832969386097374367833067974490652915665260351677299059649811306035109087691636310028838991787358968426556751868900563202906190807008230683260916357258220764861340412261293709678858190002603432324181649830712187475932503263508190989126648026786045602668732957868470770612182784150937584138923929506348485647643061523609163380357627093277989256341386103637523010389936018386388428787430975016144985883821842072799353828197495129765529446385337307915657348889726546498841520415328806293389200647216920551550877614840648302852709780207767166934968275429513827406372208749263294818496492050911399559402298516866386476600131710733226254241294309455709083064480569475989825559326941247316241976542556557131681298717167595709987297132136847398019383572410183603493722255404077997082519356894840448565769958186191069185535765902941799193276591922322089750747928171994909046320025769606890038144224686824523198548534890958341991415620292992101165713568388055939997000575362468378650686215100424231041035605302425827814506908386559388723904007732746125917847115660695632080012849080566348463205834753259645455520164719549010845145280203292601460932673475980989957973497242909311782981428880229620845347657474603742594118811297665119980376256017271151422753317078973901931123315770065282532179797300490992931376449208538580382368750567978237560178505949361975037807788848043491423332068086966144307205888913037916461346581645475167053239076525683068198390572763170977484394996476298711602742332868241567097348280103015302561272142851205753879968059972974187697422511419382945171794838090618454388898681785738231279870615916948967945664412479873667712356808390046848677692460739601574977941693412611197177525728536672399664443040076582518791156323039412571825028481324870559681671088306588987323553992377078748127034935548061520515061199690170287700268972919160250989642661976015900122100488807521019038658056975541537871556149089689210429807853158924622964382418447177874540820466155787536659980924634793711075768790856864054552943208867965896422708183739792150024536858084813006859310976826312142309686571892770037569112361713477736785391907706363549956373439117716559559270371703632620908831694613841055241444817020035873496967645981674030366611270697314138602709992686523083006964713191650931689888389982018646730069445873265157186918758005281027838035106354500205868034955640736586045929839158356219315708104818698514503037775977052444469527704573689302724165727321009577336176494124363298005345301629855783313367823121299442040512029903023089493980237583984342345701295993745048317409990928678361362482647157997993636630519296967804087719080252721427229391448871382193209975213580190435165065509063834449721036090056229759197951727368268564562919014741870596410085736017795060058443878374267645668300079600922484202928719843744306925620334360914880964700993856497440980456546760554934708882856332760812517939348321345341268479671420803095477563577402872325959765682288772991748105977450683788798704184393113437232131452398403793660950468284282699634043547008946981313100435956713086587625201906543286784660675142883056876250526509155939030597517949015298647082273898911228591656179104886831233072260558785399185140130347468843325023186870305362909518191652606589681094664202302726267350448559264553664453834979135296194729598643715387911118659081864448803076818940111067674019715428605534078013839136321635640734071829476359782787045847267497332269138576865196597032869751910222334527052788244799998385456802585363577698641346979285540416414525351389146221070359076617071303613132484268865935080477731504730614494733124262984738097868482665389745118192872394488584248833761882360948612573853196568646249127998105115025323802414462728815367996997787405089224013661422111704070107415196203272458772930773918525570276622153143390741507211313013374396054670655592916174205452373366856249336491047050793932248270781143865561072814051986676848415732540947593090287175687231080543283406398152133983239561425359769723362381469684359518394617023408849663122961751943130415798179724390923481940941166237485008982931732140088484092158554759339774147600095569319817670279612033028914191421709945767566493532094813275336104780517823589213958250712772939109575660709596137315735084773726979997048025883060769642733812642612910088455417648099635417948339374875107657100987586315150140808107791980039816336235790432022129368136729812093173650996454300255517083181434591190069368399705889823254367985661846487291258836747554592791716993263615921444268493317837016781381203977615654261443178922253531191233502183115303667297834902825206676991115680535739553813596736401248992857698339950130431724957059944722204347605426393504200231033769826265412053633464757853189244256508725720063479530157154684746122359125295835802559048624968147719706661655033068445232822812445406950841911097516885107492907436149892622670619681544853219903512123912934742102735844029133816317345440999781746646525464035388687949328933217359307598166654527957366443664318569862230907049260038529348209202400916369007305958892832972712010707168544356111310805376678994212493987246489510225345936484520267493961181697195420443782635373026304034395892072332665759930997773738570727569080690588503207006752773125433405890528989883019865227347193671578584675670289212456620364221152460168894092252598029723485454393931178102172908235004940101999839258318076044228402027653724802157964368372401818094601948843858287057405480387684488181465609958824415812014923232072311783987721271544274303514184429715741506077287515985977593868046142533715342013368187750499559155950734160810553789388531846676069297330800203342810769890074125643161239622561011105768197908799838456398770813056564514440820747546631378728808091913507289970106782180105472117710531135089220944677454983623598350828911425616641196104903018637326863841680485812315397043410921530367345309082138388867971735245545014040457477268332760053368901793557821362887136338523817881635475561245161202837719683672375795099143824670817265758534531436383332120389679480824267545797331281728038766223629935344919777362026762880354892609670263039108704053544248895754840820239988598214351356172976081918628989158488922901735846084125226257720192140955149006563342831359885518769527113656620942285211028345409856840496756677952190880193070274906742778676464769772062156176022507722312015588072991021820261848115471467756174421216740812248243096138172245055055627110273114553048743782276816513944691920463719742239119290963474769691756556704291907186837884949308458982805115170028385796598627185180352106732620081906227698503283436841550465358145185144388140636231419811520005570795054732608857165866622616575576236430715955820111016606032477457490843174354914265043473347865017612797872583301163367400548001705740083455153470817397953841443231732091354323294146808461765565922676525561081649875198841499680362505195986608798352225386124096507949163619514272481790355435339726225059713232530686755557551865827979834555681470743552519099475169634927840641359883974727587579970102218444444463036336142316034837091583678488674605997326263575450209937614387368001589705913242219299350807195243529978421775657846896829951005123513651300207949748403877002481511745735102150269664523364100227869320593115996498041454459822917883728197589642834453300283717821367021034693253143038004131614586540673234386145236522312433462120718569881702592842114959024655723335319552755613848870176029751360692134455233359431996879101459554184265616817356057025317792547636979389578025916321798199911508281429645640054498774813732647702362647610684855035439944633325887230562212700185981801127547684134892246319277427753497024006690105676110712133197911847841604338185464379804739114301719955263958362295746794884328020528235820006272021332966167243854203525070358899239933653708270686529910932814238683189656122889496630952662139596693712127290830650421234733629555799066082481199524760928791502174037525433628325514721348684342222435281049849003078652145819645379659720869902093135323886350710010305206035991539600570982933431018024722551296615317794830534764679750127893459508156520563481857638093371762064796526826489840798658709693868949058563411948926686157988636697015050706050070331971678636580151766723216655299258973624488802733851320680238733994647089478032073389177165260825335375470731867629450060772347446297223561359490585716919943744347856289926633732760494809618853802536761016837302805856546930842274362341465212271005926681754040610728657843388149220508354040054476802304915645681900742188259368697247514746843645642422456880263930309102264542034172102968619126181768217180011792878947238883692361259828321873803351252066672700264929078504094044196462219205202503640809678183783252114757191278826352224491075908698947806260073161778887283522967767807804140910941036400035180176042482293799092874993269600138604075283838065608935719201974677395384482356426730018708338052868820686970383275190585720493387445385817184045725241339125747453216459051476500634966396489557727407897236893743190294639196646074177502656779382441018685428679258877002247007288255670087966916053033613757472232028287612537815333736885829470362573166343380374623277332395237252130846966276515669720679495869667969534863709024478008987502110737633833465231051976736175633874759314569469905939820097499833431097242592490468954139160117583360863382442998085146513122225818966005825802721505111178609486918035836891139011399710824695051707317254344263570956397419195577571066445199509788585455271420866590111631534373557910346912147311948058884112338014739770472083051297450206484799488384090304835403376898007774459996032737557264395594238136451353322737832359212848221919910736891011850101081075446521086221872788173406685079691502613463557328866042372073692593186114569119677644260990199357329104965577609456286148048287561140928355238979867069400989157101835314105988504250195771367140284287883719051105420883077860395809895101227237454622238655953257169062254542496562106125460403575596751592408273222305170357713672168792882381524164063766698871588180028441145569828575887648988031176274366431336400399566397031602292524307741537387090168980782554015441850541642356900961046817168367260391571002526240347397920585524948267499717721915584289334683743396597865994942843696382812213073197706668742545011790459141506835739794538728306158171575772324073104624960634111201961597126234160826997035765433071259750890144471681942736890303254738318622445144096796850441314133854631352629248825907239014691006854412681650426363030893683357535138823515647017597909027540355003632808291430161512070396743838342434216093566893348912995604813741293341104662171987196399238047686754618734869792261029062831301981629305184290274423867948982019641933215080855178387671358241884670386218778825974726418644956804701513851290914806067416809519925143582793568563714373648724369733197786582565063281605177704420775587400483409753048770747978235180870196150674847549862634215369442484888133528506935470408756655945893935923617698546154300121049864230596769115107740051867650766649473329438532227789064306779766328652739016942798710855081849615257706807337383321157660225015909631993904314587129008678033391476453028721612276902760614091576034281313629383614685382402420717048521722334048929486918483897513972256968169037789788671814151515280966413568320106334584534180231118531550264184222276860763187484416172531192281645098060022544474839976051775557066847517859784680539975783861873982279156042946131778392308932034985335622232107719436451574266319923451702587442751122826485685390399353899991917573817083604156170614560774190414439183435053720276194946012493680823403784069353448929266530605150958920331003332886316937376006233899004610344170997766796730104716015198733040343279118350090548855544937137235509141492843287027786744335130278481528279292358881807587912019561398424894830654407273848493348664286938164066272706100957663973303121377909188484851972311273882193888749841262990332004669160813061918773561260934112175489266261041346120656729442617719346017434957398598262555247904473275059185893925780655532017993380770909501561767633730212017428618895452128710583669051254666879818143915774281737747280887343203838886024751428445241018508601313036283812104497375977680836299754569186154697841304387580609155516471080820996175997181924941781378530524863725465188575977510886539170896591878864396004244511033779221661603545580525711226445220559890664699942617967940474105940448480310060925102851604298451322111243314851075506353545260577873380654639808742821052760827582719460222042454298128415437476938652774368016694127608744161575660211526890103507184385325321162845516034640218454246241894037056401285859423096744658073606124749840724857216855053331600965034742562350396126633030026710334839792624881186789930325592378846744865984116740073801490078088044828419102139158733991062125653255472716580821021206686408332335333270910734081961576547825637035098678774646224282788452567641038232054343837325459484668909298946086242817545947548969538161936101875634831124015963724665234992053106997938554857720064847854612907791258302183362119369604848613844512750420982567640497294219963741044210538906023105381970425251630244198708144638576877389367415478025933891313122722425227173066737496534974077308409316471773957101185333249710778778921398179242231713290328120131973793834787899775564185645253018825129991242061373309043129679726659283226473906480937693221926495361063299656297149540850579192110441377007082260540652778230714305575068160371732849994222322202913234147579213164668888670947790489876028115882452023842387197104039953582199593230847914768939824001105167607211963096206846813578579082817091573211846608318037258922529260726723511414889687701040901993008833942517445080564624082982714795389300657806365361658811530464647807442258432890389388173080413421086368493963091865639628377379860797244334920987202501975179408134520762738705160527128054063191989539801976371357603624349248894825580112517805413438449174426267481251729335941509104858835872528120534513359472734261319950357649523896381100291569968364334925122853167385732867976451609360333697806349283987702018070127836323963210222250186597790350394158139944682421443416240357768720773706193526077882654149044342246010136536268870447514111331402426771962392884685303614073041596406846029330265492847007532721828744944421717955516132737533678824559003148823096199308681298742658201528405827185105486832280405255676530491252529521879007791510972300401576396409076341582430365662693500206420185883198655928168208580786126732225399762444495036369408609080216992146997022132506290656897363554339241802145074528285899817011635179014223488360780470874865943949900591095500654957157366432698941514307586716915830979208682567073037254100948264466924523315621182637752165036737919978068364411181805380580434774247610028308568918659678361541309403265868763509672961945811238056466403272564413248970545790249338269006917158239164341648867658482774164713690801904835071506840901153433011517861370397773013089914451617420362308922378456782156803271876286477598604626727873032303249030571726337432248691370311813687875366048296263650899005517001681221140813891531563054695536192617458934196954680169676647366412583116298889249418228448055496477136666597347294393091870522286212596792417273570930281737800630378227691939328363382101004423559425190940772851885519649955173976305986255486774581967490200923905414156202250884487643992454495685564480937318539347187671665853444888660876439402764778061303442106860521045032944031842441836778575657715786403395474917044176139875929056745058562430418645193855592583317025523891651070223900030093067537304850355350758613311745568649223087881722126101877095399533864299618807826691265544721645268496450814370923818835960426488681513384663864506281832676815357202354372593608895849801205374963834961278567405160149178828915255181751360690145983056414468164383827782544189673467045897469139375338731681570590850190659478743279337493029607125969223115344650958227769356465459318957559423127928343897609312210147471251001265487651895482960825255103501179859742498854668686198420926274225510505714240912355202265678024690706019868537330357473738418028632624974130375551178580468134316980510129958220110567828014702815036827712830052625719439762039977550097411984708157742243857582965855756488073433291407352553197971778886342558047187300238324304115550609530487873431539106392998123896470891139733463216849468189289933734211673640798301012100985850424713841869443129579527248760987464819417656535752983689089224649463176673722779050233324057111138853602908817032880703372912224570470370042861971795417421469890158038923913509833499268198587771887547053281788671047408156958054650839254227819761720624194340324787550430646914223299479530724424813246208804059642823214506603699071349891677506219418659587640911681473311981989511783089794513112523216067773331512511165711254676607482511016174354148023464760772654700432052864332007597894631190738781145105943054425086441353085750608301776603879730667292667822367373963281118094550402809543417060783942985705589779167323315685272805991577465984851009482836871731631418238170036391046389477173180071027104135174240907880099219316369601554388781216107024493210318832494917611224042740903373060315952469496735343197793072430603494061788210880639606605523094528689104638713357446348263752839897253169972684551891863142065649508955603126594840467354248886092846210578856737319722329657146756430153403453820634848589545989901706628581680161379846956794237509314157547454885181398472927602409702358226502383156847509000320012498553328236722340969078843194975208443100668612580055898295971112061236472232531057476483433069049450893345450211964153885165626233835836097233319637467435226203630755156695844471950620420723653419238346274299464229704929368968243433752640941542204062478807477706746333585269802605051699049976393566979116398480756903248959297916788866986456809536944074565192098377482461694506769632184791035029132080227079830483267421753022527850855726555608629469209598195558170964469067133840480928976146316223058165207916046963782953673210554868813053426621482149605507693133426664562303848701729030888173780245632333168754262189079462671631003464886023674820217190690594753371144645521413957604475433721275011354994130488396417695682379765157808739471454468250278041503491748041613451089822434053876592701914500316182591062876990303703627445619299595364929343153984213679330202031024451045744736728601228381869484903597547094381773088960420644718346093827169168387048743574444023611126941962639278070062671164000867784443162596523240577113921332385225683813989166537751959152350089249005148229992979992533186225326602352446009492561534319463821429079206666784352050443194504088916436553697767970771367034141814102973566521891625567887285910077857933767144423388840658872482858471271051046021929868110816419554990792460394802088513055156433462957737932777611605492202974663505406182607163712832997096907954302837353840355499995895307083345125006418411618034441829167844072479951980700747402901346496887104572258906333753439973396470970141641386682301072290030161053783030991050368504235678226598316250290536452096532256045347081960264810058452236710581272938595305211596858280078487620855234469137606463263034934454309637838215574413722167346904182051770316599845142070102996689865772251777084132481858140041506280567301897109956743854032323325064988767183881037691739262587366627912551596291908355763703850378429954988326604473753286908666266590642716138031262860631859988451341012049501538117474687014114553354065430386940151174551239547502129481743924116989198825204014581299217124186249663389343483164446867281884735191933173195944990988691904356882519465736844516730416296689920825224409087105571099820134034958927037357347375202717413456572425376299023379477716685882691216809887987869834079751367331086958081543466142281211214148732056795433505644654936867170438227864587055962059582799123971462272182304108300363417172723343897830109019873424870701962319671429496405658013579511776051231880597458203000826860828521922321467386769580264810131708401367692413608942532796485903264726028891299399685319984749819908585930980537072558611103190996360448094623837132834160308757731574622437206410535919580665647376791437925362681185282653750070270963583824120159396617900013660641065140917818594529810710373346586971661322850076681544849794042461385620240269137752906782735940582343664152153702270377009079610950772150265445375781221424056908117637866594146198886224355887432462709736705397245127284888176615698820649094845405085611047078380674603155574920795235226413561924567820013634095985394671007022036605884110957772944010431375780249824422096481122496603243791640342107649941413835107301931597375866724929321256853534141674040895944781669401664423647024619185599144150045910110295828864941201130261163269451280424517967848535168078263944581138706195018018176449223215648192458849474394958744583774702949852746028303181707593522044135393553233526960619097471781103973157552296831380294791450132741387615435743813746353425659679807219282997143806026012943441424359746824298144765286149917845861416301273909423947325848032106743076490450868422321164416515310463554893512686303238860895752479283489473287668261138306898177034617003904631950029937929187028926903095189693846914308894481465540239377693268413911386654825353316759800994662678171244595334494893920578074598582902423723091179144989138711862586267153485432046238124193355041400845645727079930132757304052417215436281097256177160621503466521150020768375442727645579691017194265451745873421327546623732928342811678896297377495410304487395641566312275991544885807239945858314580832615029320111829018911508331505689190833388932284275360726827274335469917304670796777375274228370493745163077698048797724321675602725214791516344578282366232566438753290376181543403115712375120586149561376285744701700033725302054561285511359176545412827228374907853742685645858677939699838231337056725333258828079093961339642559932929367918476402750287728480163673067193731990466491280687211926411854782904439004287579193606804626517189939514438695445724549900957398307105485743541647443744672506070098660500179587216463442852692997112605581558534766247471869834568206178783150584329826706931171457482774255657854876833841754255555860015971425311210869269974899191274442282254671470699044741310681698156793631090618956951149771312501787783283075829042996186984540583199437239992470469235253430123091659663291003181817759335801228361387735894606720261654844681872165600654530464784962655342503875483631509058089175925149758825016300823141057906354082448242636610603095187254866121289085937136292082098982421243174985269655531005850021576024453749557062411055259128826758513634877715351424995450600641220721575983701058110380668855113658153854098187087857001935890430322347087005545316736983942173102168611493119879071089614652583539382878516593887557145931422919735260471435438584766691246007562257378434787607618060503491456214640928608562936530294867160821740602619853451815744944749897765387961088620484667512099594230142264822103350957506792815259489201715018070205834857538254025389516125321908975304242783153891053890245258156881056356522143078104483899531310363386697744413296670284121674490343630542463213397754646517291794943763076955125895664020716086066984335110227873172909033116425754158383458510345190737637099203461735343787172784772326911008151546669457350061584671445109854614190002917120998568725702128090782409189012141413628319155198330296129601657878685409906572015503347915953209155309047443534238368900444529341780128550800162150684601984669601215175534793753159785853419306174129806367143708236346652653104300372731851783405461170892068987036626499758951292152522851070689033953085867858258990640796832144153362958010350981902920050506490196357058035791471146592374656787976575568002910367371042644860774507370998834335918381737913407434144537350741623138595440713916723606047790895585847664316966709608655759759844765297895900163133065682923766630346655213232221488344337128447408398188377051922427860004700956223382875510252322113558247202776019331444474691907222845484452871797034078288434328192849757694761086814016954548764409537822320294263527695227259578926823375762845482688939052343823930885305385704941127865611373238035128518570274131715865283665403343970077135834839296144610490620104053578118998046611841090425706889036794704144561556573028229798506626541522242914853837756586841298867312477741474973807746002565153545370630528419367303613301954800034671735536017816996469405811635582801731796617450400250572767666905505581480270816569431297786705582550589491807649757337607910292539415603840842920027011538265107244148556669368106265895189524280682937016534662213820657652326842690677270336789452916163057209114096802439158785415234625183380730362823260446963360522607895189990193010878773179942002133261035051941593110682746570046930616551261662700209881455363820800212212931807266707353572875867706187275773463098798171798805731851334762722560063598258042046762742612945591521030950468041029951717046393169402244125922837617808227442160981802465263509641940929654134893674172463582120804807533405457205776067421117622559677370306428131141142949078524674216715328672836090169632853298854118311921539028041928485526926893206573709384589892221352962760819039281260400518329003164874072112576124795475541521359188556866718491359486706150517507270610860907715703162961324624748850898240828128753186736943553725308396946547228022107864678363906617653867019581563587840491494534041306932755431827219051990488828575838608325960057652867857201907653440922092002474270907112552601065714477478991889344468370464073596854447033619774564491105305567152450858460244263907264109177029393708381772647501013965594385662246879785602227655688896781925361841324987281313839590475066055746542406858862928031146771487196309168796356688993497362329507479880063631818768004842979740423648828950829046132707761453579948759837619552409339028079439482440514032231132492448334259393044290364480851226284858249725697620781077158351115923612509932719731568629740999186784255933824056415504328957207221833027933038752432865284741338411968592565874030192497565464394309548902539024184176854589490779201398230116283644489802735989251211626307453069934455368725478548151780098978636010712349426629537888907698962889706773161997672213804875777674680144831429929541179683951994966813174682004337825855371580983559625502761728584518545170375129456127409405443671763813614092395546826903781963876228632519706373093930813137707934018718068984859031398575198099594465702020291185429373851578265435754697382155748545256533937446500020519197171076601621311617398443283157000781557031968510345179167344791539117118453575392365775346381330148435146228377479576351118380307070889027361899279038105932972810147829215803568805838820954866844805537398462415137550530030761947155708109872687608913434522221981592891216195755155053185459034424365029789576105441009206483095570324014876974884144784509830259284565552318511557377128802701861320655996840289140684215841646865563674156607501035913731275193776709571078632516903701824049622672615138060960158350661176391540378901436643806446189029743076446682473676031610559957644949325594960680151218629757979277761699995354841926482770686755307945657465433395560203355891990619647422673752979766421646352951093371903516798353392098856649481436043610031684764558162844604574076483938860930175126294683144979963809324807671043089400291331890122652313741661717953077144707807600866045779448848222662443659790609004477571980531776189965056059448548573446458594095714976092610860403404426669231133188198673121706665399538852989844415299339059307811833551381997496892026694973043430823902621243132841311149460281394203901128575368018142106824229786246292549035302141109099515365901607511620987156593011682532949691532019614036456995082129118809025769684629067976131319276546323039812118224030389571899642548634714283250003136630267776490365952433865933993649441649737725026129538010860356183484303326536186138110851723198408916099736560730353465305962957682851822649195899562780446217180432261049943484071640919124914090118320690257576976555285455363414176432763374714412473247727946485172344663400700780490850187470488860137971483505045515108996000274045200693342890378448333021460309587754781264030012446865099571630297712537679332771197658843561427102420098516735266912288859683126961528973698766074657061665867326593987220532560721415629532821115340159228455292031236177018784739814484456739287474912303823934529574826260062817863619951256933335194654182883065247032699829154854726140990514822900164743883258363464314876696304837739855107776659750666530768922384276495404646122982303916734357316628057179949913694932758672259957194120529248114595048696954432417728583202354979395394772075158600710800332351697288488845792922661244252803960623394389177437515346453696488781948470414236725302868473335238220522107691314912074861730217650095037945075618015579189925673115747047166731566869396673832814480623825770483350235458117981811483605554556636127375079389653346031481409174436296158446158778449048309662327677631754176884360745163384303777241059285764366647428892315952543257006553381605053940249920992757383740288766655052469198992272316999552084238459513485417994478415640327818989865333182283006875797800518273436401602186299240396634240931252782055132419125840704236875194260876828898666206234973639735365578749109269557854184433206095620815039354590531897835174582503088960379748329939772428454147793904277408479280218302382362158328399301134054133971963577555975061695186545662397281809617591613760382345332724279936082043421923669804470235798690253168434689927284810524365601863483797753838329407890015795239482008279346929016171980525637442949253530331419676394934420600452724173747630108932386972522880974592520512463175878086829944610808498255829731373174510613735636144228881580421431624693629687651629745681107582618469565928085184702407833741126354749720799314633004699935649234782515225628307796718303978792673633921050080465638623641990848590610020840746096286163013090363414183921595799791115667608096688190621201905291085871149688112435820307141475401821905246522396057307188217869075282724790961227267219295487632573296200080646565038299206331366419197759546669391109022416252369045154762729227510164957030771037319320067407106569113762066919610231096843308013796449841938712624640775813569708088849583518594068416276053892649586067536627697650875956818430455913131356725747836022599093952575011394977955095821654741778770257997727328012412179338800638327718187663394021035437635322666941115676955537084773004031091839320929296070535226859540650784948954887888103067191987044684307106613125442611543296656975325938116954199466251353199922783719641072965709856945400218792413065678527249558606978230498417242569043795876041846661790354025988282475943154249221695648964271195194363747704384329005497094019558086955202143579919774398642144488585532954858545833603779592215861817119337069968468344623461985946034076298044471330809711138447784627618432564980788972132110860092538375849725735740127685191512317652431938090150673465121880433235563087499820656656199729399766198319547729012452577204670902523628923045075989534291694741708290435637901052727050584265560246596031940508412207770153933846342987177876189322491041361227230405123349000147907889495163753898992113580385267900055110086317374642041112604934342140565262751830744267181365633115591320113368502119291419994094532451924167948336319582734001074191319357789632720067920781943564002790621117672436963278021024259214621936264535156039086963693119421170226859876014508997454367878446094336961385781573222250830663142945919587230720142655027533248905812695159080797143404212834268894225536404391884815740868859149926168610896668009952912985541942686463789437174352066183741641925968352442265881921750724309199636466263191496878537452042792141089257597292109805896356755312114177654679029735088131259382361771052188851464043463156057854401800957624653735983468452252873693228736325560216502215054191688166593037171931878819559720342884489844068932133455214021215662627485031365844076902607285868062392580581947898445526773232077479985325124260719117791660189191137282195762469643607647773745848078809520765312486823338856128113992243592953947524919820050116691001762014593873211481747017925702684478852950811087566025649540238254772043939676188034175771231215275958221006360469223965720790109557876358757857090695739277886416799133282865839685012248856142137944478129257133608128753515751368926730307441254845160339643115844009604090023135625364504556995835140894628912335522706176573504096007554542725315982046713201092061054283126091111019448335568050827333555731985965625512438134074309950231950279547332932812624968858795563382601102400641553200930990600733820193307981193112136110790953168761720741373734281798804437019228008449509518901645287604447985415986108208341460895388148245668803619101950489001435280726999323244330116563311998998792819167292830565211800710741778834062030784370216602035197450703743828476655286896285693526712040463940461733783626010861451243028613556812397648716030436650539278727047773824228622353310676501099440092605723253398287505489851554880072904138430944129982131901147457358483889591197440167431552128206715151850621203558534248833043183722125052097165430897936851035806653079378655852246409291641179788389099622843908546947279446041085320989422602315363946463264653270489411643355915390413705811798526829640748853424245839034210197526120369031197055474208153726997140473869534730282610071770668340645735755996431186466162030641088787868284927570462112864896504752318693472643163073332733721500539842329071428365401355216088525333135348024596996698438308724054299553008819357044917007352438377778626810274151069928373941095878153493912199705662175387733047697125774976620755731214540619862813815956051309402694603267084922008243261144839125564227676229103831666030693138828287428491133245607756946640513259583720644814652446978414351310624556955627349001094836178827746836206971230662835391436555889811413114207592740925061268476379086267731043812339509140600733765591398714050943401138182141563115522277850019764557804775831342973811058736230902903717783871371149255158014656453094327144167569718440579575262918176471501831896287513378062468022018588450763910211090525086330600158906448617519639141141180832733843777427231567673075189771706804093955162035505045750613910219156852232601832275361205278353291164285333751274050220315774156347408434117116799062333699838246625151280932242570161397602501093127626017145735262360079105712655656386086440629970473196992111982008619387699435244578655680125835108378173074947954080019871876459086425272558478185181869629390272494645959616790888210818881682737682329158124713950172831030475917886649000823850747400210513830577627204681518015602322378823670566693677756148653424953611844018023672477233464533571636279099142457113737012295802731292215135518065098420339683593750603566067155145133592679669643454206660733572642558555813688864060965493583643646026613452063682226934083492766784515687213606440208310765904182236988349929707836120309017359233767780077951164625867587635481799133000711053563437311072836597449507181038801979633377505987294499870412249659853217116947808314569798806880520480637255454550551308833026874374909259624019553222003551305953605420221809439706945967347839430467534111596357031471898790315420158764509846219273718743735544665321283112407281125582966349511259468455898024166102197507062496320281675663811068085329058252429199199297831666387361907445169373872040120460980392349316576193661449072408960594537458207031841763497736766953839222974380040182816887888261577142769967460731251795612590858369802824409824734919871867737900410004504851583622079564470715195953315382493218871019676673627036282540511968989490483358967734418244533420601342967341001158670086523139268041834567655251806439580847686028624638763936044303332112453901357698059941690571087237915180177090119820672372974605620613184735188846399400779795903488237958218524194413488209956325885190444477827942667010692713579318673189334658017186110533372501193875957217879991065390793368603693706985366827169483692520372587556073500314715176504017847256179439555067758318152049069013545820717734761553847392667732315200247060356032310970857974228508250765708464278202350257649187160737447750015042453209654232441634125538794940350738519523475653984936653392036625590231638902491547869122361708220849442175034158990637843466083791376361243070383705440758390818762172013052668242453192671867374087073708716197967599378716991292501135283427930840472497996171728406112158260257572837204134310668652007716852057779897296413384194320762636743020202401617687741697841223090444946579659578208109382028552464221942607618127862885817962227180287427392894210869359157790235304563434574899196359285492197625453827837186359336736731800767068611577099019877603560304190354451872623443617142788448981420681070312948319303140510831949559835050117366039251694523800980736673763283969769634431339879210296624784378631755254277564542966211362861067685173383657045836453427447342635487415414710802456480600227709022034100415790171563689502281542882247872836705271062406641573563815376028541619562920190984650838425169931286698230749507384040175387508513426809305993295290626817993066657125108219725514424313678747085772086053532397654946275161822088784812424550733731749171324755320556342845343103689756652616901648997769616294108223592971769227072303731054557691323471476187892612940247526992454867555355579930082702576574321315288682188938268224024882495121941217790179108707131260421523720576536652301911255194872383450895167142344825471067607745402483269068611110605219208587669077876077426309144859697478511511719115521520261162356074226148490860719823423152093652505820178795178703912626527603312464713863282443423303552031692078279145054039678749589966869793272294876090282560746317207865820233102600333801572933213452539381822475129242432555636419904882566743499876150285954045984989598502641021266253782910219940680659676539989744709225084138010184946172420690418790302446488006494564482088201932811878051258441915819256542999673501701835096493949790632486428997944998789238953269083088261879284611984139766852398625259443952148959101625458550042932921860461498891495770464830649182698464482330827425741644452346127224009228510218353973024759557547435640586030305705593942198299996280874774309381446206608160193174523297846027864803960395068481695005644397535786621481899775439947486087811289203266117356699008220760846858006936734354082242034828909578572173125889711398081446407897009359905208660972306761271560569265693838468759623518493316489224183044261732253068930894277519868893955755570806428004914529438170959283288937493535944800874527780892282527528033260662166564829126943343641519642858876125427921181757773411686050445279413362233537094399848535910425248052370560861980948453673356710150748668272423162636056743762373495271555577084301658278379246645269023210857611396195970151208719090471338062122638117121513803173781246554562201742766642672700879696812347771904520422533899677268321917315273742818646057926596228830951697673802601098720317796373029809995058037227302732281211154903701744451464834062349257915606102939259165477555326673398810114457535578375476826748302021791604995881869543504161527206031195898821530932750970290951431560175632106817480863092934392102800927081402528360516638573572467028875736661812475315796894466472746826484915523001558302804164061028237686063432765650335550181709000290812517821806832534258987174002457879416417155576817384604368490036555703313759007402902464199856133055041158548792800959504062563509640684261954505602078887230817712580803663873591548554232187418221095005285992715642252795912232821791868283021754732036013500277506750989662168145582326343958078557301442993410404072394781113487431049658742472551002782627392650913062463499808041868234842354930418479583583861115369382152577154399340875747749367427415965104109569697405026699426179199017595204798242366046574269437236968618613015834468157426245234963694137166112219891844839895474004125598201332145525337902468652160350873369300862683522337299017104137746238674332787696209101670399725473494968427961407275717120367586295754236186507192575092944164166255929958005134253954427909927097214140025233860549966491379393606084033406941250581510359718441426551499571333690969900853049356420343147379021928683894339157316512999886066021388193439987735662346106900588225598430175405521868914030920722730160694186344249369390225460343241593555985693166898781502040063499473378879643683894046443362518515355996493659087200236265238686714611438429441739042078128322323048720379005881967574519400401868283368201316231308410027066055579158421119801186304112084971672167025807917995450993314965509494924436684012901624314291505670138845612224145384216975165210073689246839639492624378548707020558672260248962398427187975009934395645311732558334145138929822076054965992354292910331254556629516802635618276874620991302719032458863350362507753817988412550532638786659507294863874474336477318020722057155416723127385549380085297967301825288776270187301687494877219463754991422406611190333524772815776208908939839238467844608951562686016757128245694981273476637947894420553379315831693264221485453139237797964201913155481334366248128480817104181874752486849636397537731851786271819563952284047107106757299507902087378892840908566604008762806688976297925059634829188731097604001475633459704087579478473499110311139741288784423779780128021152511702402794117966391735526542747936762798046492598073356216665524320987251573361041183482560135488272360598244264120037935438118532547990452710576657431442942772970873772449473846197814589773898496061145419251733321580921591480921887184509088012461308796230341018122282530788982322980457715296022042483301276963000938761545092866484007540614595173503160536982085503004168673854821365416011092052888513839922533568631422758883737971873607212705999960904381649427173173999591075567952832013424302369443566580259487969466690596161262192787907519119395677579454283563496516254853830921145865325784149149356088720024112483160741317325074906574113550784429753314625189600050192665924688541046170836717308607800688078345887281399740272127906235685904678135798192650329981016032169112777110154546537837842386275734371385764601594864443734892444735190243146947070359390073639012462974877093141761107235294482057372759329216816793582845487363824062090181081843869233557416144101078157700557637953070702867979475074685321710130165897436463583330115235402332080327221681501510175932206778402425576529610341943448840643667232197024283164064616634831319854782348925550842398532815693177653881188446864780066222845497608496847933574198104399361856414245609925427869416993342657304707560970172868742423454553081144037453419374169695470607693676175817408170585875315921090116868895829731461451032141099685721574915435616692611894347963328640096682161850513806262463780964127659398518419409214274797939941326847741328935287266559299073446292499032727915112416537687287848098698298377782533378614795711255630588625079455341448047346225502480684664624223940352575205688187962780108520962066370356580870037683019409653337682926613257651356206354774390442263787263527225221838146253612497015894947411534234116166316050417556791135749940573745538572878998398154554631293151863745683289262184397763995777369070623126124897638244357821196057992275196621622203141143226805574755016460872992902999097737219535287284276369023808038980457927654527853612581407065266585551416320692426452119409435145295392695010518255839672148608678819262451156184826571093174840010802979997019169235239152846855732891963160310170797586184897482901880445368517501337445138442429989004225961236125860468026396223729995702716341690915400223197769262439107249775826398472501230755355534375126798310097446339116113298036181992455862488576431844141193358546616417068725031195879815584689168515251907854013739709788970229529503334828856967698901788790100206232671375940892898631629583986751350921567128092473268290577806786494228122819444702778866113930149439189519126296328337050712075570635401572373941729173639492678711783840375815502559573187997291849311602304273526441576862563111753961554443003031750785318933502421367376504000327726337185024148188536552321158304747905717179652024517178075029365884951845649742139912034100010095516991730469952346662930374602983812934602946186117732231063197462566716322987900223971010146269505822934197475978715909312452299085527486163860482605268161351112440360091295441946274175237199540782405458116861744672208625515313287578843505608908272960296361592073613831018645496064590454083246366506233032807165914818369442093562264640785998600174573548339989122768741323847100991450679637456553540320340682764519184244087229821574318496783631120281129560529784234733205493031697608118956532771190779212337638871479235914888780947629414805515599084291808833623526330826618900298880459225291363363582948175243860280767320341035856553244676847104804138631646666517754708334508232431050420602081420818125445399394021979786761493141666659696655360523910732256350332568182588880315030772188597198771133510607669876313154158783664750542452020008378766365366733937591549783431820325475321697654790043878658360772629470057882304932144927960996836374690840644575206527613836570850676396306971241921458767245067192786247022197942878407803487424256414069048318179299509507060519368609608561357629972401890312736706789292839915595086031998479163246180676107046599203848737633953702082533568908680971826111535609045538769448078002057311491809212199493633492215449626947464683274323752273538853010922483240641646900411342480094341678646786089599278774564360785585476388153007137137557035140222151453591165145391590669448072042171864266670858773379802309948091812096496880412533552368386232710938928919000840589977953140578066989639520825337306992848154262190454989562331674000133000991562518604491656876954137847297239591663402566776593023424761412835577719642745502170964357569244528010434958620765807077424833144558237925929638695666425800243468736097887134975287426585469460323869647307871673579410178817320252604380465951109220487674666136477367235457633456031475583634300236793810127865120110458253237746040506450247605904935339898599992846038642166130015070093562230596844201408161987481234628233265168983161315607440319766468108108858885797533234454255260751660690145452424515008803519117566002095063574709292904038186108795225893237658946293297441568602299640107414642311694840652653736834333969548810066718493527099135594198533150162528846646639515196679767853117682753001299891287751160955055462014406654778891665021013623846702881858455142470669067888750983946653679826832013614718078783007102491085175140479185207704582708871911627326645357675051885836136068422741092996918080746669747419113131695455778774605155587863908676183316005134617461243727761858086024303004382068057337945855470847089501137584797733334084311752238195358010713689987634030577256341286224524002085963306398297652229406771235208403095231550445208850179145074096139770920292700691509680341155351726260990395466409231269083483452883286817528034508740839217176074897523797064485751206788779093077252588275595561585859461496134514253199332225791033796823900171640074079443961609791467587567433490878975214670595260462191449597367447271300534316090852238460293277672991598932500342396001941796880298987655621527953840717949991831922485538058734008420406314316980517478105348009065183024185594745339888817587324628524599937935027529869965074059781930607277165806174328842476694291356414849499627603199043712393817357772235089636496834374751790120320645682474094605214158134507383213406280056685842487350545320752872626147803587554870190264346540128710832892802087441347715707219604118804817722119732944874030967550883927364246921393064331364352681639148479472474650260268962161531696653173782353355543502462483567614607239840021244622731682843095418432529629225016073773749325585431415701765047166922087030516851952490054454006412566874170379693541899564394029512612861111860614131488178437459452761981075015281365169219613571078689377080616775565758295763713250510806987643155281661537185082541116218093595412016292749950629915350320119543769313749055007654568586574007779512871276975199350565903554660931041092516228157973256932422153821441689338848813969797958567029936626576207384562246696075186195326977871425027828514530209283224776815072562676295973952815444791272220730616159379980985400582261696898166906392574733566933460457728031270573290120785619710951442156200841848320404084562021638089656824467116819781060744059191450711456939753960270401015873336176060365198815036607105916387879318344687622784262201492417892519479460117502460325332885332469174864195650245887373321655673912447661233498041688330550275266334753995093024036258364936090344127564932993822023305514088769773028666588838519264417811239484558502905640734151744685833487759338803653836488256069961837334325778445455353503178792489861433147694404789944465331318382045973923981216175262240736610073969300510666670491783355305875304210313022292151918238909114119247070777304264730747238637867506005551186622031473406172375820978027105789357227393840609310607206938022306309968785330403756783102324812903878760295590211708619699562802329709282519354397249950255450343205251082763432853458677894828950643116063966069013036033611172771004378845962143701205818931747059847115124572382993948199319834482162802756336494651060194544250362890917893955151976338704793588676276924316102705805385319091487361768622304716008342165138797409846551363152064638559265261603253140317163145534241514171613539765400265006082660790570802721888039877001360251981985717013480421563095704864195256409255461753641470605759822983077915358184591334558424124780533525476699294511713056080801349915108662897146836489529249578983675642610701184509390777055837782640937416849640362277383900111979320384774021548305924443662874474152698069010222118829598958868078606014889643235297570863362602366932271873108284090444006728428548796624945426570618466690935333071215196878384213799679237685070036863621079653705134479809759969844114083687493000519299612416955441875744512462486278387066676491171374725108445040527559977621855407660368583475946619116308324035611915498037677644550886673869629833597166546301888150188580065603446072100474351084028235744814919543563983500946759995565383669973815520825902199235982636243529838668145653729412769595512728496727373836860242620059111401897925048251541688628917963612546318119561491994916686619826659550491059781675059386261942356614026226367721293706567057066068883998285375753580171547365324480956591692622369911447853205171838312490968941782181977209712162493850002469204704658303416822291308394103894359281456424562793188068195074053858813048876741008178083928543430788340340073356030929677241016618946366703091447757416017235913796056167333747203489027228700747028137492846101860781579197726323101025953179265767151890655387171083386297767752903539492667711612021725710979038755637178924376958103692398684993488038469091931358249313933493059670211104364016488246609028439232836865805052575942252574739693326286364688311632909187626757485364628029351397892238828756445078286246111314187978525816394412208972376074653971724987735158673708413828827164107610281716736702950455859505929592627533330258480562017853317593995779394162270359844848228461831623378081039802665655093692355692186138900604552753413548417183152846294751181088877040420697435445024237862470268390717800418680003225236713634288774873343144647552854962846721839095777988197738622977588683634441983320537337179297292678431010684205278576860996430496430012012190387206407024874078491576465317217403074665430708573752331776733225890105646244175141718111768175215797882061453060491217047283226127039705038308102608427397287870947802014307677460361239378475964534815870074649032754626386380648259286251147587830127351760317681397763464556119851460824021169326032152860490042736796467650810476883468533047583579900902444127243618921044428623741187633939892360260476342396574092231802980558240796308792521874122040758793472575700737653875375325856888007070046581536360832453821822030862966288513878316354511976852276648214046046634964589516133194999255528817229098907592605716601937636648483352646609283477550968206543334192530734501830338008196432668985635340621254193180460892111843010219887133684235154797508955345951619066274425233831481428035405222525510675601614942823408463205734943327087332209722665856894075682158062260332149916679292113048290791931069664794515922162827604530643290371832988913322666281100114083493482895334221312690786366164282779739606214692368191857893070400036983896279125420112905570021303497264443785765802364242347633612631794348470526608751950120080015163296526313788814849756078662331322703315402479054098440547847539522275537066354285691453003800041310965201233312073855141502236974791532340307886855966752385880904310607461035325560742166381144339003130144344792537701857956275852314307720513796857716682125492434509558438742740959290895167104951568638557571527361095312709214916609984314426786618303912761498845418831325337622485441048853579836741257539257186095950380883690889960230879897532973899736602086287308670955456600243448645566594769017363548176474534530701022766511281250786448040810606565814151270906589487125791795834028261076623850606313722994567212930766064636970906690826602501058511492608852432773691450149895101165069037374347738412149059625692565860550246081130605721979034218879622790587978912176219676222441313191226046069736108088178617566897083165423941834914426038451032492587710393019777485155734800395544674325679738333956344715241284618904176012067816109608895108334633603988720064882846920041373968779366514302607934482931092271003467931473907594145610327062894741896741756396129518714380371707967648817822243460539769086654983050240480952575917574509222456878720278885034717193652682751835479747962747747685147121112251804829441152574086024858035010395418873528788682900741956472660353181505724361430821980346662440878652033190063733737603026196933529626497416180064751022996313687718195261219599983850578442587589977609705529650949698449087552278187409238929127636424518201644917640713795667050203097954645942312581537420013937476031625787828632343082811333656969587238996872103093042386341574291572242946307315443164627787078129976547511122613523259087195526984284937943483841283485069892792565619630247619923787329723719465075321492147793019585152004193053467445482567504637541997273566563286969568428775953404761208496784121850996691125491892126838731446609767025375882422171099070929075723444629649232894847810248706698936623408436667829001716214297857966969753292574776386834048028340395289168320772806069164905084795832082651515215503738396128750657163282988018802892717804111392347384455723383798815483353878106129120133573411010161680794134341413636700655082425508539513435024688484023776610305910247282054939608800744572532051439315283196570806523778650182865094665824938473490996412121019882068686614842781978472318275017384126159468067351504702511283315234510201459635016682559479685588822008162292089954880047981745402468633841983165426705837273802008335115664202020558980436296563123932344754871444400384150959950568346109613784008461159267012645067657325344477062932677248117525303956703740840421899397934606873636743388068864052007783417590560113010701256669172160284574643612191352288045638959672530847340276527945341797642399003488615139056464472121335840640872659897522979583849510154352355370577002636062075795210443237156477187490143689751427590378352614452125079996748736579974907462957405833974680290468984210460455712226393552557962597354617943000358222312829285075244095557816632641437906228696296839649591889601071398798263437772825607604320930316933020602270780587526927221469036577183871470379695598357037523746509319316452862320448477997448871359938287270788843852420592488871243526794596677449682223063974642894044990629730844802830938848502342517404557017032612310024035525596410643376710586946898108385260431396608054119099349830931241691703532857730376803249732050360945609283666372536908658293370090731079113333457326252305351580503460962067403120306912792730208068701921097756250092510986690610350444471612310426138066098078452548023990648196091722572329723318697404736058226039277560084475772061155228266775506704175936504670939608502524273804869414166578842235741611420890807239619581517030490859783523933980683578020273105565098256713931946410352760688605342265965131275833557983372540699293919621089154314803064375820587264124223738236501241866021387163659973146993260502981202281020097181168705960130734699424734495520072620440270025561553257098453775775124786446962935384412551940948973457339279269125956360523244253163461733712205354290189045400894268874726414963968822909748625020887864139906563603710286227057724257010154203798346276863838139003804503839235734240913488010142377163644799894963484136143055740945637291472209356490416260859576696416461270345311303984721737988259309394990454110987116230153145751640740588416901217888697109457958226519365109872315059639126215856218091021306488339945094567199687569942565806524928277107060873945863282203050111381069605638193442520664725009552712889372636232549590940343285193962279235423918890031844422837102617356098758788893077932910143429085949019838160879095290782640708260785943548846351807539375956473575651428787399052408145326414912705390527282148472226976882086440808633101844701589149376875780265054360471321123722952032166991189454157233218006889440278908373325982236685052196372665665576123966188499132953671303952366257959237953343850010612751375029734233101832496609617336822015904640057562409259787856235407850601392438036460077923002542380637642345513444901603433985235596053706046311271656011122152204962741109374719700507073680729994695786420242110856281552288843990581015565445520711670920076693252681398540215193634360861049786990568139154767180678592337220703748942429357070437297304822211609166470394025501579051936121306607143904535853634269759439429925675983080030026665791551278753203702160260611762200359892021046920387438251163457395771263939952513110139760292405930269393925166479889364604567468135063326945451103221782879424774473358078102354097238981913761438814849946389861668461534667855832951729172596713818566522797041014552940384252818884192538932302434087804894258595290991169900715656277424115174477765835090191766023698135182017477229133884363233113860079938198735247290878500125003259388738506365537329734912989061184195993109346869289299643972037548451089575747371541032576305085499035566651485628194710407293403911628730116128089159608428857098761955779013615336049580485904620624535122899177414156287354914443376801626068407498101978360176010078636013649410491527810217710293960759323530676538581328474725482628234478969582210567849049008626761958590265474158782293545461874412508013898101456139614367299581102933415536091324045735200770651459057686306239876599487569855550442676158551087964454017620527452383588684863558084955163790429441926476700795031730868530549488375276891449227436001405416043310667756346025489813044446033964437902266755441279136297769288698364381755025975912961655814249214781738376821181596838489348070534612221045326677650694820966893441198975319911197794104016009822960585102199218602859821003346622899707088000936219910570411427902268895691342595291933346043330676223873552333776913516880641795870681772459389915250501798103085282840540645577518213300980777645601716056785343789822346947477591776443398744047485422896785256295220624180363855697954007017685788679958451882104871189880943879777051133443714752988663467329256466560519400684405738484573249579803377350171036074790271092585778515940311323539725086580540448857501684029181116881180028452719112940641294687187787224175407839752328349088521648076885160319751565559506241867530607328649054426604242884912897786864854781570130161750594635174709301842628196758239638435313499073781736051464292760194360197320311802113446452951846886669795044956814620338567336390063266691299266638604454940212866363911301668549369997124933410231892623499766977219481549718945817732331307595185727838641773771871378808833362830027608240633405836675071526838727467262659754937850081169356819838292616071029083098379000588973559967768473927237163448435757014432225278691937797810724629361269155654655482599804371243425626197807922294914804770423110757025928247752834986993775760857274915581719728792868894155038005531356533387423266755064554628414705781367093442348577381410993355060192567866312306049002316262015308463050359642365867848897526222118023555671244473826581950839023208167589682379059137621617770971007279697022159592091768580445636253529068950544843053317467660876450381328833449949800140969883604006938261132431029545348307759476642605409902165068450624240453432390988427109388528352892080387297531550213647691998467277091183619230745593452998714759574806243248568827673981148235680233566071858727735229982413600796313919386660924842525210927995658218263115705825893499965402238023316303356644964154392675450032011822805039097459910353434595471774484078544795801725947182262847929406339423148609160282409998410094465171965353473267820644040192032423962830362757352322773634585891071668166624414809682331773800488489611235053154102848834802822339797086442916724601411641307611472942203245715477478302246793332167756622662898858105316258526104014170124692456979160693617722547213568286455916498671828338663634456030355806713074445010656171345902963148210299548453780317830047530190838926089654145106724866256699782971396221403359042038437962256231040451616648857284369380886423675667199334096629083417971909370559421762513809596726439308195075039081190067447224794382559904862384337965279015765837855474962683422022871669039967983166176557403379725028777206551824956084128235354361168131730287723777227836288794573584373009305356666079415814379085721706936613882302422736368044838864624495543895469107144194659046037045405763377028259902052335341803442849624840968426004296647620528838192228021189947774829195004123526552075140474959602629227583955367651369315990656182888546376370217102138221743556966960472135888425977243930933228954112184209422647456785300745356844842002921721011330099376652496939977402129711405608474592853663429783220300623721136669239386041369202176633725331165137629755883785584915795801647047614209044653941974169613541160526595469164032529097797823959937669329625354354885685610100845941573565947460271359854999503615447569802351842602246140114945826854349298481901012336562866520404520997491598844648108759940005719984566755701499627896505254898606586649409285588471391261827720685192578692577741434766739683261033125870313878178003276947484373508484089065464552374715482266806888972496016875181810300755648966199750659399122287068718211218984356221833969425401869020348146580129990687544670192696814629417923590756788665903473640403839790462594356206956697658487150248797480744221643600777154202149782681027020456843014348335646867769159297568653222714050583022533999561123863648386965714021323219997884815959969820125820463773551578694605789031468720951251088907078777839227992610541757199126175963144176449735436254856623484769409837962526648304281588765765735650958770732502389796044835531751519022329358142577857083300232460204652745784242259978598198091849601281789325894574267011965879365516446264592440912356165615293866526834374106351812460197465595280593570395871896402296008793404707030409064859999020073166992967764560108268343890727286258357630449035502874294698838774130097166483304217828762908007034871353450002397570568599461000794424763715345142876960553343307305699538957419763464536270379007319149994724096676624395912257847445293935245886092575706832238440319424286198826323892017760175885271793423863270595207135468457984577423600517769798139254057544369305511304438019914065764541227601848469168919691451593168774194025706844186119850153867621435488621492385892918723226205785305800883398991553089112348879499755098912703599999152984128371508391403831778420687433183857368990117375680139617537484316220234600423994883931446796993480855565974812746809078514368194133481197467063055574098201849125367171127112535084136688977825191014399249305628085807221973679841662060402603287959230767836507641289358293130751523342075227045204422514670838866462242080308798622723249179636568902182288021958174623950452150179340414225925717288610572001662372925163415702801668742877924041575288053596754010513175001822860167259609526344327911691767019300234446944070695502177672705080598879665658354903206890615873652361289535581994648515028208244316910735418076861654558580340269589764502561673248008153863578323476398742598271646849721748736933996358652389890033059692608669807014230841720092652709943241549231285979500867177662516832804081567357118982155518937103023303710341587156976078750700320448305945517585863392394245599430785218773969010667848301249830916474571236199422728234921054749902781505808471689932786343384048450071402434169052419351042172881488626141664922651159232670628714878553154700785045869524672344553258723283754100950561023407056220304061889581464344517170313214492991553714567190042043465408395866194222216803961614202432881156784942633948643005018072464266484432341397107605525539019024540808831694325579087093201746953971588387529068857219909287092514050304918665301185712222865994612409423501391231827818825229169571625069657273895020458596187140245025415245100217578081334861421743473722552233714089961489085970358660242948545352629972837025775403043720663936711488453062257695583457591068613552379292165295745433084015572266265506942784224212681131067783837619811585438645320423025296625390410655775506982305715150147109135216303797386531648185477786472821714240303863942534331333362684674703591471656940540057197166443725809013043477539426307569418096994756184796607585574734239905581487759301713707940239569216835596831661575658529868727231059482923324367562187307773221645900950449300982449992563069710502046065778922704423479033333540478830058326794439201289372434308550620432995531293427258726531393757006369934600651533749883549276819067658043490733521798380175906042918380937567841260701499765904002146347103966777437087721826635802328831772480916014543216888129894919164432127093529532735951963801341887608067577281836146196517967977456042051558683149209954916486116138992197983103604280790598308809387411992636051041853708576043282635412797249381993253088883101233323389967867332264418149848152865884382533500472330045418545431210676552000740946253271444650551608652881537375944268177110138767834148654264397270715211173670804180943048541985504611373378488772525927938209637127193537240656647948092209118421225609268634326424226655353853173005771465923450555624398506804314858085324290299564895504816877845075434937303006064294643720177115684360432886742898294170029350798172475828978554546524039239579645583139752658774318897508262933187443188706793007629467912268491561090873007073002220742891382961865293933276231528717201617921667466359150786847592238222495085341615744875730103654293936085754582646582748851037336739187980556481697950068457338563599003150663778006465382220689533538483301868525921663452400102715105568122536668271364479847926861494454581585434371314595636350825505502153245409911154171862557658486263854350984541224119530871155278625171887277445625833845961441860702719835816373028913784064223809644864413873836253145520412032991899446704357703768572298786560833979450587142862733959498105047796021935396809835882997802151722428993667553446148198136582404684929081512628195501995377911749712253811906591961942491638575290448766936059957924337809198844472610028183340396731005304913363050859487213028278306569032826437185386304139922430475189198640201865816906835041666628654498660564674303279592702472544370881497090577384333117535502506691616396463657825543567810687172487856391459346792075552667471405222797860456742004017777617857278639255702538247486658009394418863741005885200397388650591901231897504022452327415832892349554208991447325144272232452430692078602483393682688676593379466512306644011252204942834735134778986069235077308740775679533118018318447774817369548664357658826919332867588664890985902555615347464887092232279332783881754167727536162705066122976942390989629743592809267177071472576887855106131023773548802750566850537755293094199063957212647248920781519431597719251895001388738463948962901178314929864799341276123153171754796283835922700987915251536589077224106377430639057723145526889481980075805639641264460226527621911028354287002028017306669073226127554623318541787528759790880541752254420527481750321378255667688759880185697532639685560198929722703587149933434265334933322250011229950332067088594149628598417498474993263365212110304718199253739079600657950403759861839450309109436466069407790302349023247401122261230860859370004103304514347772171328655304805097676431291472357504507267702989422103586854382775058668860824653552478963306799907688623273254758592964951807484122555526718179118653175048320517226120859658562760264044358248012044043067959581576700699624677673219640768478465060135229892096134109859045911552181542219606498301632161912625863961939500155260337672510659138086543126515078771849055313304875402290497969198862380086194296008726349301350174772730017788472872719233117625746232556451618844899476721633448084934363072780356132408032154015962715261835589430468552907185852729491072444971354488443697339019469651014683511813126017915523886453141951121166416946595071460947993330868587521960959336215284865642669071190203031247490026319011654194505714002880530924611614167628211726139475110539896003223247536715394837756831815942836176965181308739775678008833377574381318052608096134202256727362566635765003409982423787152341439950462994219140174286353264894469977941234609851801619057084825578256117948668158951239805795514555896884816105121573608760471697224230064148807382723987603259669313487264625644519892430292656474460063558749952004885032800166977804255406557969597183518740581737339808182296405141118163664845526243285435461798725457771101061255790568538355218255733526670824093274007053556126364666094810333676658834136100929360686088690854128879376606835713158545400306347055695602320713843777931574649870082891877957203966234685116796353789398121792543868206473804638212921966192108134111260479700645252502720289210856549950320002547635974347772630120400959004458130229511863085901081767309517478809889304427124231880611131238476975839519364414607066239942556710390142461678323505434098118437975582822606098443556763926195875011475230835086192253911971920953144859138858688648762793500908507504595445810033368348032244074136491834115059060381672407612508867635309355868421950558165853818581621903686232611245466856113858892757669738735131998409389014991521314128836006080278739057407631126931968045791261579652261222333569425627277852095746663698145029461238937018916110050487894683349680448134653758334987591323237620871220949980367945721288187540912001668631829319137526040226561764385582615779858036141235941314426181246330707335297064476950655580757598952606834111151057050969619779651380519282766062279448655978564200626440228715228124503448555359489790325761349551311791152790703335934853996268834286407472879572409325980390122965482064001421078469389918680014466198365548708466162954450738961467110820532251391760300504784283746245735733353917889307362141954302833265379903893131377873437795486764926868219648709456425741693622504189969505453103173131109521713792986096473853008411054961097881373157415976211268242328945747300127965200468897290997942674931648614350162794961929825519038272139543423686426530731478540582164169539637928710843664172362025216080860816803476954631162986694233767610283041040076711989315318232129874395748012832393422459702508139732115950396520660564234158154248125062502322640839901772219445675645302126490134281684582711067657248001560919514559237985532725539022799127796019461964923394971530654248671469255923490074727296926057664677779427000910818553423509573203512356025228371863832185390246302843660415636688023194473175864951882171947706951943561391323572945920657221123995359887143844312300893020908132340113759350220950908273685101318746980418632217588352186405350395402988905012627972784286181926621303230857924686331966357199391032047815842458802849781840191865676145194302617814052204354522150214829249260635828764918925801666801459492851727177812394971273144978786258346824327367572579213342276766406956021924001605867962367184973135230482721543621056404039412839498308163091041834374161784580735721790790524634461950622506609919510376484739860906744934663653307223660387582797351633815823139114006537720594498630568840896721411122612012133822222884726457941485769773159523917251807082136894489559800937369706890994444693346287295483065303484453565636633976536898797626530015303708869449539573281267084893233733724293790799010181561720763920513534485405613076555470855765119186570310202772186801533733610942525326083500230040445507463885636222333969644549583610383195669036885672584058285847729052103104775205683534617757704998339355376751328984235374788570666743746349784894908103849903258379291984266924103660529893213125890301389735196658902385329159710112443041305937445630577657712905558443142011392573291129262937542392838716525896115869956133131376346487073971489031950172445683981685290087099360320316503782460923202652088463745779554266981174259786664999886873382996997560907217991333342459861748420997628396536557051272629055088701706584339688623121405154366269292128814810921631313234563432463705065980130488508082413526435547943586105164789419137077037515181104675147322998763243563195668522811792239777499230406425860913011142273816181705044380374287384713897641707348331996589129870712942000638154895399833602796868283324724901585554478874036447494578925572593730154524250238737165422375374369237795975744918764414516586276557966329584737800751400013444419196843746531693641381786987244874687360268201132552105311173601651960913292426448510592128313657202252681830782702842222436444557678809732969905976445280274230261378288970210258487004853034473605406928284268502396739572741266210372780740441108987486093200931446032953256386197496037908175878275865006200849979328682424533010859646031300248545553936619554355864942602956146854478092207964443092773999478591846026101915562108204253797258957034663806445650304133833320390077376033206609560543309270150806563691163730260050079955965865686357436458158247710230166200182967372034566620702219018195450594315634590396502459527494234697798913982903626548080788147020254036163162845907730210121040409488307672829444853269749116295336316652082913898389483137426724768458369766360319631648202036837379407619458415798261118252983545592297454447188718706531730286008563144639594467945744499564175844970411667996234428540366468791031626080676850308444615888757049853033916249315882711519964208827679980908366689875336302435758964603193631582134013894342692453939343652387382313603915892594501734680072634860355291928540227231178372033788714677803078557146055424773956393174501799827188650177971453338730342721747801117656939741353086496280182567728247715651961857744514544417859913539844377529707168165707031901532562307705524557076132137181197668247757831770514862001105786826433243203759819749091698894091256819328079781773298131227782618586675438825531563911333191107643908274425393041710700271587043655531750560458622422290665849113938307963754845391773015156089440763304766333946603381851679442902918117352639532043443986070259331165191514128144944007844578644877236357849450461559194529291926262687348854093954630826004349247593829445036810405100780756252218134011123379673594785320634052454920949033039873745747657959625712373620657300645688363039236591991305115667858252110828886136835147264126439146616491340754077668530380068878160522734558881909536982615576622250762813900069165264125698082878182827640165046484232858011953845935646309293687639656162990756600910148243566341397022950021088183155555920819685779740396937943036189990791456452060099207128948864760199260847690390734342221365821072262024071850893215453786118044403866630871393690013850651966303110104320130257025194538515648908131714778803594406167819263125311519354805008270248092451965001621801262502120963245566598813997340568786123501928101205331556170969769174095770805652764111932236814846831318247127577071309497897318441933609924015608505015971324133665603495897534148335977307323171461289340117922658713995786228090460847845887716838489527521179041245184280877615531374493203061641573245544130120023774676953228905621300020313484376520161383440020890059095436813556305019435889635256157495277732649971174517380801347610519730326778017532533486450083590023971085364126574258064495893506753918356758249970252505239413306920690338088579393533728333346912708977183823149907152049107085013182821953684340163482335091097579783504853534921176560573688692288669478877521240809298431803687948892525933855000062889178004246364121793293205544082533108428702540064284319856012248439152063362411577645375173486611738390542022209416579051161126250690367858355242651348511024006555414533187810260155044070233778770472654712905902811122189309484154942538103862035620766173617532003257590359018819755560551960989413043346912133981906643964161165272783778884268343764442157855742558573397025505764069198143247945108193709685844689322046308112063685341724595303923257890608555659335538427496720505538370891295086867321239902892777229730292561747027220434280714147108347922653729907318451158616449159299206542995961705854293252498447515317325529077166769145534397631433837927408597775844213440467824616805917777212399461898865303260638153519477493362485768918222869814793225537838153363958813422256628214020657756565284674481936662674954190588044899340815782937970044929702985697452169332244155550253306024099871320327079237360607245961500047948347547260749899678156182919408603948862167685682446500407019878861249547239448430936065114888610104898767357097718889909334264241866641525195594085797061305806121383219829574599678103156681726844564171285886299647534644586769486247253661438940349651449810670253584774907002268767831699009157282708120770103447856042504301773009632103892592972301948602419394557587356906309181301166901003300075449474672281484864980764128172995096866298093050793201051767541694222830276082985137033599547738608769251807672214420109908557124903545266597988380945709064597978116992987865258599381334800237226924938224104747918126546937740417806472927838515251267446115993320693807796989356138642432525221568174286025789245868986934636843792582953626533641741053968890569647691571086356600050769895603432487391426407039223047494560043976830358899594923139509916994111925872049709928926952033681311670938101081218882826639537619506050374188843514990903329989970731937736812065098453146472186659140607287942694321822214958137449059440325884643290117038626858244303473769229070465717996647154460902018344017810440394539587000473152645193781437278453760373180263681169379857741954755349394831927248473202943387878384383114459149608974920542639439893372428169490655456457169881221962529657776943709485015963349247910352781284819421746711108544476564154029220562922340860339945279103358117155108861440465883023427948225894313436877232781474623092919531634749534960751365501004912462276228198094603800856859370389691954728467036002449114201845355197433155475470388001978898635084006846895373089435387064479679178998422414285518374510724769518469595442856120124965975311601882429773350453989656079877960764116995248343483024147581801066911313711907990998811252161201609031248858804923757080366983730314779297392350648915543365370166592277357909605941695214162554619968495790027473038572576197821120246660748010804070340913540938209468128334954559042828955280287373370714259412309623552737479312907540355289746893211179656377369001847141458302357172236686487246620614588017825424558456805223259889863604939088849546325906875039616630752070257785522764623050899979511799361544946127781201840935645970244938948819655267656471455950933303030288206986763579499369819733776701886073445895071674431210169378355294519609331935747129768734711280484439864000154933578765386063198734927019964906191967156821851323299794070865798456596745740568219699452870404154022060200088739566489067808472487917184972448631391257102271645723177542450353010896264780416253027808795971143425332188002436483967410957500901126317863965840704485210989554641045572852033080677163309648714319217799235230134721625585575441701863535096627438643992655278054655480921030334038368194532211383986403334651525248743286008192215294412022336622768471374365182105692927768756206280131093559997029465750874952800091902250578555259727157715021777577638309178467938286901389642391032117678640396028705141699596787560263612422059335789995833877865257938797333995360002026890281639373039140694454393723833263307160612125912765363119653069946266814931967168005786272653789071868515027441490851638451025512910034227028504223311920509045952216090896150904601740932593794386883608219060889405795096061163379341130797662575381065136497198918439778866491298131627924543126243091256029541971579553905532041605046701616433942557395252818153538354404324256887688329413200150089363330122966761160216016269142539681687990459869801335413478636887719800833051325482334002190039800044753470552415903544458454155269756474283247656639090875542857571449442563776857004602189566730389346774001021531660723566926422999834345214394336534489172055665703225479933047360156448490002087476248176630881916649170876661586857446597132971100112806104725484863360038222015380876933700962067392262962631213639342366831428946707034468525013530285088546403536976678304194514450293515210077464947898892799084351206228424095085943568774968265534953691837326169330067737412985531692649505199805186008552773822378686371795153458988451501999279148815288003517388282966041956590698449195437610497373922677791294314023226974067580879202358374011909919288918914227171636285422853769254829591951679877024265293842684223340517812368763870167042564712530635780861965041206910797853847109895143695988625907198911179894513022317609150522691799207468580434175261029232693113753709941059983919924624363025447848117836138408566758275515649458507300686449877656789223698042491198066364239846367403513746834508277146376059707899324602465464881267978120889111550057859428458994802434963546834626857528977109011716154035822177351896922784715801352282528894251657964403643059688947341664481941826320740992623926031493268279970817742288101317419101791252738978876050651197522986088824823806784998374543566148319121497765562803102820420996654059492298905926092455482617194155365595038535845057595141491753832808712987893110518722490539924715481683032160210988808432489039801222232813463437619581549193042289977559917061132526418275712783555244543822398920120223883766447268183036541785090858136566552670381402420402053352580419162144137673899807213422930997346385124460190512190033736426551788676444291724226825457788960030470551618096789336322564428040465446074138422583199022395554541351969924482734142310790468560550168600166867910178427955829342313535450805721714081366461045500178569761383673338407040866256116831298425671000305554905076045595506708033410958251110563186122680911779942513424732548184010675012878633608265859585007321458844700805472765837334087962489123432622027414404361444127656322328393300780806057138700090136921993912004769693244622921203377911704385285457861817138607049347311856979112299222512947371125606094905233499204169986352385725726372886423339176121574819219028240289580615491644450550832806320068504317623362222485296838844338838557675392044875000115335404850416871585851266825745416453839248473529432665202849735553601354473585892138369061591650993170048559888400342761039261616139344909968376782667221232396688423101901597449137491388135373128220818209929853234335824793437710965378488572529188403171994803089835272540022470192017846117365886253108039998952799822105529111049388615856399411676778322524815760313380880454904967024798178009451725541622092052062069578494440437632100556095753113510512678507581438556195173217498144517450914986772732933177784584559001969109044873439077928488501897477967468398289737274284966115907005633821630098458889339290189591964109869625697772630782477212539439245811835508466804693851815624129977928482507866185347774457456157741589355713552876969023376008402504605627803110584332981624874778413278297916837994950403820391567229318338897433189553233554749928689544614954538846714089308100940948191025121829985485625684887402509298459603131594385889329928815251494988338413006704080129736107198335062356587541143537564736006572540066195152911798955246247704622287679689811645616259653087024334659527524408221132987854677994287623246577017639003522529429152605350370349145874090689934631686465943529675067372964514779414755885871815514179330858859266602137253848769275662619761316379461407570373893506747362784121244676668002206011223420192277008634127599192305206786257501506115597741646716739634521404065057966613992817874767434059096658743869437917262231907210412124134861802769142941155025821126013015201266744262260248357779537516587119260318216077436164805095040102418566696609484580589713611882539381395434902266510638238695882092852254384327036639493443869659675613893230665613138315327577308365801331764754888375977146769288000667365229703691555157136680265929155577586291594645352266671153440587948658056700749126411528385197445344814786432797438466076670937290720949111183844406179007085456917143592833540511034275035923532981794301996238237177114288648887599129574651307313324855122806805807364348133630775664415054084432052658584357321717863125080728085826190889071475252058783841143257197874529307970745454642785843472819270068591658575569920887299919498860159209029774588625880044639008062549885236032219562597930681818246767646036827191843541398131072311392806601459509325985838734164234546650784478111097715733220919320350183834317869486775407130203362490057897834889067935946945910575636436008196996978960987007713168515124111220037772135343299710870319699657809480516844277533912615243944986438010439248650951228276140915555604804719243231955508161171682688590185706092218548287220759933010296978050946744490429127491312381208366102514820281915327357883694233858154787319761132871404513462975112394547400371535451920141063499952339700073647170767038942584975438084297614881383937998150117344176583992093629126848823001728851817566629415173526018418917953883485568019537274460103768576927118764946405877617242886525865409435021931711705567746237829891220578320583460013120789886143934466625843403750748264060063365085193154472507357084135191872971618299947367169886746316357386063604608722138823438966318390893377189851604191422778702495499254062300682331669185821888592279238034047564052710814021715519803177955785564242966141245927020591690161479936689980792290975011606839247148616665702379430309161028582099394489018006905999936293104364849610638617399140857509011744156761230300397465499067847080148027416982607132495539718848171131076226659325042340386443171876329826165157039006004641555816455476849440199692213804457055851055999951772755712749406387309097001493508296515212875935111939575262349284259709535466890023140951201440934622769830710028129173629654509504165014132001631454198673294218200249306186386278991930529598491607526529562834678349976093283564446312151774433793125176646960873926337444592116132416061330543524637097870814369050625695058928745871431567982521147706527687000498444115895158275953574420010988533944212163479574282011032128558407340026948964811938931347623982138496859270334614788393521290312305985520258138991711066740601276773619891798623927638530526828557196835572647786862334383190319731560448959832329644057137678251504417166569993480588492970253985181153868613729844430917499502830479869519125314906219451372933193228933676748319716595925782021679227051498313179634390906670272789764321391300064736949890571274897206941946770768832924002597260060338244806029330411449413808306607560265095746154390977412517235414762917838112670139437041000019245573993546448775943105752735530746697858757982164565837932259245872510747026664592117867659220688564587848638403891000253318197041931173094264432896938170447052466536446830944465453194536032643521319216955082299827190123661097945922604083806225284170211047493933981746762787432254866905882040066257777508969128585136268757297101139055257617453195387592888734826976368520368429850033231508335822783022459391738820295661402010186072662022142383320590580190852127615673679531385757048348273448264868857841511545080124529376173185436278968958652969888436679760295427471969841709508682883701910975601695783498231402795517988544174042039852127944327908850123288253117521504162823210353455881339171228095673563804330288605095041320901267234410078191691895059500701001201141618530726203527026126999424038296864379691152467027307216506973456057109479055357453754137943990042224176621533648171663441085760479235645078298899179263417644237733430821867818072715402931366623018295936234792824167384760383397228682961923977802952631152045138841145050163020561070569176630708743901019228534244270974867986802191902827050663066822602705212582021926328021172200465095537942328695300209540968381705908645652420159028455242190310363864325146848314877088054939094997448308303562548302975533388953186098378053022108688356240818123743028368081756852649101788753146973284435336459123647490094045432484408824153544264555102772710486056411137394325509133869024074104028134550619711308569292918058702811662300172749166586441494151458615014425353722008129883939337512175443908522532584707862848503297970765624347938122151694517192482556708127377832325583287804454451804468797816348369737687551519862037114344057840950110681304100093344602383241532376038281286341623191030280846800262460748084657326105698418246098101253808499067121046943604326344557521303071761898676544692852320252052104008352292442875098993020906182621573172610745541838760729485140426647268607728465379365742105182814395176316745562976151027683580121976801243113891349982314158856625237696478077028503336473701550788873033045096265699243407199994933493042829123137717190326735803788644300370711119779254630409477533778941669385344520073103045876635715388463379186254955541441113501457658520141437448773292965921865274497732165635139070457336380777721889938178205677309503717881246659304056015453672508799511410863784068842350050020540128757213705571183713828498024637962202276258737358652439435237678586895518505878679644934759141402045244716223157040970075180233122249895017804324196508889495933110784609698952394005220413502801196423105789342156079815884060778690186610643856423005846734491307112191384321430255124850585069424376099443351185140007294459756991592053566769368027580979277223108928780809848095949160440005383065485506107256508811953112271790017557787796204017033120224254418686487306056864448693618357290202224944963699602622490821613144147977517185838427807489707177059030518040744931073255981752915607306995695379530934227083783095129995056193078942890976786743400391030432029321263374118145048940852423553139969588887142782592929274175971340002648785763349883810192392605793675281331669685050461512158821350606570100776230897814526003035070081345697558143975119049095924719068943566468865941983725378862192299925332247836445232625399007457109666492420980052540662209448223603363381900671591507870976791004122614057940749623174777017074592228493936483935956699433754402868189010635817918418265917932138308201313833660931188223026640154517388946937655778825568452831064630106467445919760355625169292572405283074399623940600428623915910038712736978161123177101529064869086117447868814433470074746615853688277493656344451252260185470227850954606840209294653176719906113875529105266878593450318195424705314463378903250817139702442598537813615311974712622276105602480817515449247195532349712098427170939379552544778230288713156244601404952295723089715609325008455506566873200925255035433601906696740657735224426669721644187472287645229085396753207564439517544604836515453715432977294991832135198360891117407802835157478405530243449683850154582425803533450659577507058383397835739925185792847931849286108330103964189762996248995253643866030777766582933925124769942652197495962677706051942545448781054325615660951052080568499634280405956282701319836226616317964656576139482912560080418437779874829814574290869269772413500033747079773962500845445536825775660096799284681139496480901883587344006686389419666910788021945121215767303380203548016925405116740810679462017681231012721659433828770495025825422979029183034590350765830814036461148050154369800554177623684314517178514044715395261381319122585135256904803437772576473004382094744191140055105774645591409840545192170232223467659720005730228072048045026858669325854362501261006766522558471662631064635978943106393407241936198577560621126474671763775699759220571161953000268087696580298713148050498200985666958464810520460908219569100786914621831115081082129623401237987437448419352401485376801570455338274450917525531576187977419424430606344379869059738844203604961780501810248717957630144876589913407579489994114989518836330349719959554660003074989755697213051381277054682960018773879229585638673487698071730817734925014467773998980767969717981819503137506116497740710973814918560306114124652715618950783482634986384893505964121694810235974063435439490146623114342491606276892847548328217744214218588218738049624928925782868081277424546974623017932982131039463840159326502942281077248880650380214945992415894908608204447085802144546638928850429537326946666049493058073892452046313733238484466769510126363944924122096610589205383984520754155102420781655848056111885832575376306816541711841241031962539851793924749693020104856851768686309017954883673791730840749664714340311042047773113297206572971608476831030841831966076515319384829190769175462964440361453622126434910591836948023318950619191012946915016215494768069337741812753877821596021896592854983869227355454721285527716897708249241354611783002445424803948214857419137590289593373034588770061091731185576512976322119678984716035726803595013996484574574992891492229566370809244180594926577558445380098021262324674101034078848418831513156234299364443201173066488341591190855661836488127159490546285398271808808170049341887701807519108774959844600286834514346809922423240300597342581589767024494065024422418162949698211381956950061727168965890166730269048951522511274825136377209806929757924702903773577431561491559865722244586747016536009357303094123405175496264955597715274205902337664394128794394926989783858969078930892839709377400298151364370743103089374194091251289630937840045643851066067186204673188102177859693651929248912114919848512928378944093758974408691346211077044228803610426185651387286961130913594286959346130634315614224740676904289308589596823748207731096622785305743670530263821995738592794244125539840457166521363966022412127751453834337099323244514329464428529996031511094649223333275482082340633848198232283806552948018885052230959555314354782281217301807925139049934721707862572241388487102890567152002937213342271000905702033429046293982176582888761639934738705185516012048605095220358341158341108001347477218392022049529992282969514178011884529018647379335547380838358655912896540983405627903603337426080142080839194094635036111062695394157697649549939846239561692870410010147285043046247904362278462418652545813816464699269449706758949684606035768834095222414150301707225861526817434580072731830598422084835836159770414083717924651519844990706078697616171454219268867959925597978672827131098422767536957279356035857247944886795891476088050825661168308999292146768332963145430843444768811083710581938844315683433564621016193705981147508991297245989533455645853310448842510175548732640922300206021756083900971154044356936592588508302981400667418126881480002104361339699034830279143733303528739760815915932661519829294792230949696928335864972691461388624974331042196833462976462436044166096622684198121247365340728690853560300753970158037336166929967124253302657084987893322233748916987604908921409406170547576529022430040583059980856765310942994420484431875144184495958944769111005012970930615297125227486693509588134701200599442672209484400780199895652122999531085319134376036194293633865625671188553127372946916124057060619476366014565859793011049350740257870449516871758948430487757536949993498609298134252399249722255646375652465013484749577207004152141138969895621345311671277135636689192330961011177126834665446893942200760741543281636126996959166427128533462275850575602724106462434449728237976006470622867655650775685190198949682490927121153028367996088639721321268699870200464016726447759899675698899388195450873227179935986506507877695018400880993539626015055161069634312417855362276104582600988917530823808029869139381200321669317445840541685903012411744941602966543847679627672466190111297940010418906859852035700616684003256777208011541155239814263534282811159640543316208788419523995727119818994575434329651969877011843710176871464495955304094481443894991880965260027620561577587892397253500514815322517468402632759424132643043666095837957513694911203026765211804245281483525740783772757788612381745358465745804641706443708199278785754796433291443593701785244179176770763918384396026976867847674472367022715655887124551684580027345431134548971739634010895531103365511376981734131454075315863850350389022856075425483889821262885671644422272135443032166019365981063935586030140515303928625125097582661112869278233958802515398785862280671390568551036760250161458292637985561527209172670215202487352737731792627907911730529499394671505727878367152391254463760821645859746690686540210222071691447348757513449073709926863904298808504625161371574838466664591875841075630201180575341552377321141393635503948873193941989892103099328182931491494619129674227265818621778919106512117289157195692792820348679556153875452372090559385587756169862212819708242506944434644116859260454630080378161054744041997864113050512665830504677078935566646049416511755976183704016258325356450482965753491422992129716240503266468217155254837343557817515478652525464238129500946883072796931848983171181518183370205088877264995100071927426471978781781428018976138775204665895348018972448669949011965128282515482423455028106156585302523280679274558069313911761273101197617107570259522558310493248399604957505450858628620546795754200687481014351918548298600716936336259916430094458704590728944893415312387811484643588861097537005354847899757612726386784371766925210686715599324708758024064451653880601263921092778058769601629819710558232594054856782156518333159894505490397204391386799434916347994582895304409220461891319740663103271601792423433451364555417893681870675436299701095238530208560984503244614151029488327272532811387289388069056323683356148015542152936727561586341165471490520207081580248630457261222259016130327231410273016975366988574526227833081215548706374275934733694955284739462921595605196758225189674158995590162892191759722662177341090529074500900863390162621373631691211976395888966503951487115584270515570727097271347415535692145246897653498749266466931757131205188256185795850510565862954909063912166228813023150170891800085854477665619511878786633380367268988664711615821237219684423364429547975369068648043735869663119038732382073778518616898297624965794478040617420118396240059198995157607417312793132078210584359202721246488660865479361534387820264404936770904924777053170376992267268540420487113695680090548941518244742601393522773971206795825219074798188233031157729067215134720649855214894247476989176168095548687416530015870222974718770350919450202248411867417266891043958609025201392729143486224220884577235391685489732120075606603448539205591822769826284226536415863726828005276241415415790024818448872603309955250305502970611921249151627866313436566773914000513972159224392436559223065808229111592634385005814982551243673942672264248902960091218216825577356587138005882472492743124397831602994549531282298651311500775236403675482191249222382430758316625223290256686893542455829640808956646014200919474834392127633785072324172066242795006919390592896803054594890937587174070778753731599850749386099649052388915755531173461053978619050830893782106053006350498574499399509884440875007864536385988934321886181139920685923813416333892193507115463987795262678323724782552985308342216082626591008805909151096058483659294554966427076158069638069777306355834041560996215062695302347599646081729833565453534381866754775624264332157753896788455393729190887214424804645428242823324818577227012499993108156244242817534676895555530995408237934947551975506159282947569564040723274536514013884191396001668440767916930445896021538757734276614756423442995597392508503763440947302562242541095428908274331803164700417135530779092850838944618543942427136973879560096714019587712379023399249300482097906938048635973779344221841185676171287623134580805117727651805892954630358531006916933607594152207616944474455862347937505480693178569646117068094813704572702709233162492985227341411484393095941501846815193489298663877437348305050854842578262651004378368220694802010285226782149992686042937650160928683854801712331957895726301608239792016679789198991265275118247854456163123458960024056397905617222820757976818307956464271123234998863334659659372983069579695262017261691031269364668635386530268970366552845092957451835791799473937169257646735894932956175569822213248118946660056157512735797993860131531494981619185625044163432909254815347472907908027049682490637903380271095198816909727064425220139675602970986774758398891459931924943294021935602311528510941569075097234057981343132375422952066006587147742528724025368296064205390896734089287792356863476994253523279503529381680525794819167633708566163078516404525713179100475699570906165475797127440696060419428436480843282566904492870179827621268983074240367685653025522592139979350124843444349602451838487972554725465222827517507672822204175500599407546687415061458912745911186246657822294197707624606474003068075035312962292431168967496399524154348085871503821557400999702329974456243481265188111674549787926364279446165180687382889463068034607888917802877951371564433839090484621337828906831074933280421721720126421117405943962709848199474796262089102831066031485902202863466219955359282376750371420466138676968307993795530259603804037445011999321850047234064983704421551879009710448570597680734094671722988304343933358229170060764584861698481810149645682415405080278934405528248745860722286928322177164718605586011360385967983551238559444907644506220152296870026890990682361518747899440413998083893162643453121691629217269821619223158351302652228584307739224047038259084784672442643181165364878391116345115295283595610852012222424041491612544601329706579137648623589352253150133813491839355833013475929695621916329420461839009798197619809105129637416594241317790211122389345000876528944774234861518532488705631274958857435611098504160730437959956422232223970951562344076308449715887868791160337802724394383669708010160230121340167738032384770922178850772376216244764856488200677585642356421704820446159998664314105407193506461187111350618025037707458580205323980770015994986769913967670700917977686655506586509843376995383400450208409118738308936837650088580371984100290632777680234338775138429562970499011525160089396639729810047109843731965181481264469043000696098124356959877065150512874344473523208694899248163538139904511043221129523950077191206547042300729808306210786136610568355323528510517072738880009377569167638802949975534557657815178762268391939461112749820318020729776978065878441492462653870370741431659342295525244629921542028594324910692715665061312620872235744200256111899837243262985817457702460588422475358945066011311315975339209542833746293024439385340675989847914814321167094200071593418723557155903646675165247882996962321843918121338484936615547332925849091078809448173607432928461805451092875154617028362087663674779321455815518281007260746456159204309841054571749352792398852876832124263729032974375499248082946907483562813323604896593832778121505184452476962374688811653401768945535089099111666754551401828422630118680337946656784895226270863224561737510206057369489341371103162568997721544401439626008891923277972741785467467368515633355429592897926434745153826092961861896610522996017208950003379260776745816079212082124456822446120653298391256066712461364626350378858303600223616392289081344652643518674527503758623628279897551642291247992077354743034920262655123651461303394690656926983085355394965831757441464328567303841012376387735946749070835418937843528304432762344026682506199932958880292984775261501627862880154365423811435348398950896332904136551781208531272119070191676943711132282754660937518078666458034605097728882359097736344584360295400779190236968614564690391840035351901338153629780977925380484805046537028905414462619828550117774374029141036968706475168911991189976213787198835657437088670095109978877684484149917386895283645629879322491452471920118918391747061346712238939464023774904056309628522828889031459289903409728162844411768637286828067467572723444000567573958761573028987959691276903228201696738171583371329643200666194295167267972040266978286555308472394616343640630355074188141804877719421699724099048738252775907234957222133606086708149134625244804738477711435822344993745186641085680290728609897419955945701357372405840887453709821427069361317653711591102960646082118185133763245869383092010895557836170162753849936393626741364985623886383579659157056439712354574282743557356270366945689488357327308099223772373340423390580421471058465791770504442778271547953408549383184322403254295081654356132368235759440030955199852581875991294657281958175217704464269174479936359693862500677731826738662076717093256196624960274676331914095718614430449475309815346871296346862182032857395631300847508667796795631546218534309763382938707258531709592457310765675219728121555477313261987972993051579030698254350441879573476467093192979786953830968667390067964715666826533434675219077575067212281625662499133699236876717473911413648384212205858098723616933018997989821133603299230508441435056371896694310720706639998118171690921283241303102200983315322634915200341064954365251683385790921678821340288718052891057102897075684947314315384808264711940157263499466844876566061082373599495484372868114168116763781469026696652644702549061793217501370705419823914372114523884699057262320456288545545483365995998678828293498212500904874534315959930895072550256066091047090115817944790041391465806124252187695962429937282548160388265728982803870447539562608097220952977940758268152593534372491655403114797537030160010301804268269109040897631958744982334902449802046782745388526802369622026205422019355768203029117222493161333928102858891053793470441947275303305909401746624671920450177236590096887382763908804312013678728258581952921510962636388969964504132330112961348013181281802941350668957722782255293206747202410445839461526494066144094129324440610897129497185416822827391496044705141847683447545549813698323651706281599400505546581424247916658325571944997910771229756933584460979138981275905379008847581153282208125065663538852379655078618426976062211017166607858638272694850069967943560777224805794326250730807315868998782038160375017486090316695413443084275702369116170133867113282194304698426882320074782435355552762164800240165029486036955432309527349082438507425286191785256790164892481786379950702343592106214695595777373396758666701191713055584255245818723291244040825833838727842668019004822588879965195766329425046299064984017800248740457498280191668207401212308757204322394590033358815285772856272323691547152693387980429489064312071294493372260678887408663371615620023699326130084377653951790009574316262498302541620574007721327353774101940847594233807878056935820392985175325611601213802488965717103827967471998707504676577192080683716850061928211546207727074642804493723870082325881445618463171283821412880436713732991270031399529789803531020685603118839866294507673049454347331725597253857601211607845559574910499261259535647859722729131951813135695679151397835901170631881600959038847763039887740937452865389442239014304791914738833432984805012913049450190382744996868240745126733674462163645190364213599186409229773591653000301012728713818363274068150461710781090286663633546060407843111303384385822730602141341828212586401983680176993057465949973543864685818697805808409942905342720491131313683439348467377922236640114715462597178201465695570077819013963216710703729267386342691995291801617490501637474077676615616022593670293735659782740784086585031623550120845093673127847046046195002609597815017425054425574988960910100075544505186227742915426778797844771634300531723388773093959412189823043158619754762988573955798970888692799213194281896327232237359572109186028718921438198123456475958285812467313993184996499505211294694605909831295274133539678922127516478100224632796614150192446504606282739700496523866594997341784140572724556885873011147933756749716841556948087875494998159818146746949198494193189277287917987040295611437511873595669173053269679245644359332926652448026433666677953254397037552912171448000600738853459662999857372305261199172869984190029027108871791688087358948280039614066464894940177646029317196508118793674163249530021492482778236732326550990443131353337699205313428241841281056713799177589760593206093218597939833139655683345873927868453424619843128801828862407831818029822963861965264201989443370610076954073119590408151957632879370293777864544619507899464062126152543482891478397931947399618316788277218786280266284151806458777058201737656135999060174351065222800017458114574454412263314022989196499857500819291442090277881635839855262340160179973554287807803636867003741751518710156258901107259256427055505278774020330396006121010245715870791942783624986280182357000801707840320487483590591939401448153183839049625201275934306290880101554738903847454487352237205243006367720094053638428966879372106710222457990517091998144605977416367791085935575974827398962470791693910759641555059926603901564132776222410120165986798744829340183537874350849897837455510086225522700729418575988607198904848522610699296945714988614423232345533965219211657898099036728398857471711960628030734529528213820542199094950829385989720029794761038438855291030596248349711825553306846414052663039925169399968117090687762805783640689930768255828888637745292931444640175715904168282922772259972149189982810111151611256909359425882523779183015239949237882083202317141002634143503849051975579715241203280174242048153174103934603286020663606338582899748312251931816872697939112008762143593493394661916090116501239662736078117965813432774786449697599035692938664084378115409611306646986633791433140040326951626044423883585112856427642231082232341232404751066956214298429380769910640305491945177394051696548299913877145140407937411070767804341180835807755196577103832143000374759328166594936391565705679228004254840285889255597707471868838196578882292368597383985291072590480509854826029766043801374711101325960132742778117967943234293041748725917159017809641919089062630189476426180275649089934834315018575281688722868925364141975594228921234703197994099358844016068555338128238809098887567988165795738784855501287399502137445719576674807110578513263846213829473333742761730191777887785298622029012392697734795272850729162737517570095839601329628326834231642748343968780918289986543858911770176956229351994740160440674309759117911500074572523774645395967620280683039252754346264316515177312841435207797879926278031235123944463246898783111350504660706789581639493030936355871995247097755833662330115860303823286077322683991136423777911059119742339207685914953360262951685844605538800293710194934436194996163204879024550324715022433987807789850458994676220914845125387476501183445691138884194210618718276556609143213618383129433506391822945158305547782961721685283311432517752471147479921883783332988281040356899560069719707575900116076676714457450983573825822701103252048777432392222727087974304425133178405140825952911547057422677238012801786672969106915795680658610885036537817295140441882705448820942626392218647184298741963295641546589204701624342531313627142546245608989569678107796487976713618408639147839566180103120888643183923994269047233036645719473627272591762034447262249374514224459717209294109342421235190037038127120329699765115062036550585987831528785436642014570442000209232453252469938945064723700652337101378325915613038828370285688016187380872721636785951228354665974405260050310492646939628195324838471527697643043915389968739508035547950991957132578112321432043375585712904645465635972066594117290979409407546716308808078116583745968147158032627040177403738595061772662494264526438471702013760950909399942523236372788669826408461566239283449814313477339602727947384260010633253647253345853019209975785566470812350160083776697730559067769739749419158130663703342476355296913665609261699756459981857262552833666033441524241767811775091267843380935847197337538596051023091804342267691357102201970332376309709263666786696288003289224364615820019311053572408171963818469819186591027773226467757449976349724576736067988710219150019404201554251750797642488639372583546867743227284585053031263491809633585009722260156180786300878658294998123381482856998898841615935873693524751924891957243003577302239191306825714971758386815127451976354200566058221332967363113490833357459703207813439408437319282211509652935899300783971040302564723742384625312698755169033463525950765267214790989639094371117373388089885348216941036177713118305812902958657457646555893326516248815295001634826613024925678678477662988056726954111768403942328098681173459275955818094110991240373653702105963960276890187352312433215633341980965476779715215063009758274215171650893911741098488600742098898545051972550564619852264361607669668671263428819588967764672847112990164972504155557796558413320056803267782513102956480464189243587023228914857194938982043316014859236513278186806654830158127389888882978634427033100130547012173297251354757096403545368762063060965787231958249895793861105822705333509816352276957007771379654628409908358076777592750947755345607392473539944564298095773937814757750130427854528255978697970544426834026649599373381023952109239574060368779172910334387862528104385467269879267397260294176852048886790049703490819401675968332796103404081407954732946690410680876568073246732076828208546694379097991888631965422086380831570077151431482548944247285567796729728907399540942920712950370557350310043481865065842933500479019825459543464312961220732342929337153975624223074524200334806652615001357877779707056231728111078082472550445285924616238784359324341762132206605199539041604079646883569938820738191521732548102230600001873066880585541168765085339861366851870664820838869913194743735513295478567404906578738220755753777599393191558725205533577590428409038706138968910931797449264291285889115856292576554116836765768261903767135893083709752599034589429270451732622165309032744210603943986780435728950600504717221691744992044239554448870435200604882000144673830430203301350658591242691221694304147678413595450269820942794410363543932891273972657379079647511641224099165344843299662326375099720683013460141847163270950663498206862715204815036887928873982523706227124014804992685906017846325440835834406674488842075154801499965291656100737643562121876602083511785469624822909453572688281410142254044811148103171435342292156231493243544962979570472234880462846369741485053303342698026631746301082226576341713869116598566022967692759875822015076225406617013026785714267640056595672594883838286887508476129305750032673262163691095421990571642903544926848564263797755500045826939396513794566611514607804213997093693929888407662673410717499507421210073635112145847710858085601919524852853647936867382596396830944236026830314222076523891893050157518316952742242729466428837114978954583678732306800742545139049293106554927167612126875036130640915439589915494809056704007799090321358757383531509798439006126994777965118005402228788360949185875208446986203497805623965290992013243946004688097143591347966192790288260795022091928245643375036120736197376113821965244806021867669983826337977352422455452386341482889591321444400318576488379289707453469587101466120457237515021549335612920438995567926877379353695307389194964081609487430840314616491255779203874147778911455309813060871688646577941072924492105832862285200854778193162239429179156849213646824901433893669852898372307013535986098843593462349823774868653621288502326809584747814166285322896289728965748979073111785906776733297635226888289877085625983665270199229471116163919045394874713572180214038124166805136425546134968952045560450829594709530099054369267332152005980640361857244259301634648788433078596309975356569876477210307062183510083624412642969475666428973140105694461411059429253666768341331682216801228532598286076929690286895170558044372780212250993066174998865550303183163123131500543073108546150814133985686339920725636729263464089361935111434931840199721218280468378406524081842752260494564735469450197162917102012688920331794536639006371720903748114415059337850681286126841604149334652267138198394825501194151944554350872781494435387156801046571419213489372900115056020836761747235998883405807024245562947170592683533181324120455979450739404032969810048484145872691429916276313947861915749599169145818513583355660131459720638753977359659147398243236777760951790122119618692184608145034409785538406665741727684293119047395705147166987718335608330454002113240110372819526812931857713427624811752734164400176051659298062153342749137614426184938782530694931788699353036854506039003460892619872216883927223385346275633333698403741182647623226469545345357963827668013942347692261457569582162343513482940566921332920173899264131831705088073386659405218463841726905078462340261586780722825715351480482701652574262960420283135290811057684908665121189833404297629082735592919438384483255623543368933681123002959972323937317623747781433827626399561319964040180826274804584900105523098419716163048966423644582840654399407682562861091672068020985141637042250839021316379168228729648279747555390866357098865617811407781668309082993735958377238514766387758864464354228798881146889705095129864362448430948428739978660843686256212927951050588341746547085621869461109909706214414488580962707218939450784861490420325399491492785041738164539934453074961495946248248158967535627890803551635874026474487969911206411517775849958869309391520913414198365204107457664949344767146320770757490742728322574509562952640258965792238426217399921995996900606876548000434878942767695356728371804371433855210847887455608755054919739847257608482489678175567967744403863252303353116676965479791770900499379366864930483985551761614109762776422360267062309671767655523062533910363701027373221190823785504745396110393154931013035865571348546446076753824233260103182964980088625730060549179245261250747508806605201632874869330835083595176940071456680865183484186931155143761589974466694436658726118763856502027976780827038304989388221822235065476698709348610702909388642911264530944818823381807883323719758559962252838268443070260401546839995133660383760276963172074865912861527062000692074300752559439716184199356554787355982322408747286762071918374515346083826845042017240345103587104070457368768720637728446468077201174658045692543531897100683078810257963052213020606895623781293415519442993304211283746956293166670923810246799307293423665061250483685677785516987195083939369103293217200475675728759220462699961347889993255632721625440491416974056922873361043234080392038318983195299814333313728869302162894113844024308548613594362804834738419882872128945120249929327737884290942438219553109536072041455102626096840950511635108450934048997744482157052963933636745311168510520923772758085648600820677049667669099684308445296784919900167813440824300362678554363392918382925063089110216173477358387497724566663122036349052761122265118163800234898184778266601109987004251279124055836677200961340098676885415748271697840163640422905505874701510790620934256609916782679109302963911629259777802364750954265518912385599831707532923696574771557405399936397151536460159971982721977496495283354133291212964361399267775380482199934759824477670317792480670649394891245365853605136908997117795928608136782495002510276368612772891273459946913272654161933268350759624353787022170609667327096864579521034672567473646699824184834857796759292828339554241523707424141787593139447535160083356487329812874822506556817273419815439501278923448750561688283751285564523614015974895990460199700888483149885855708872550822908031713880869806639118610687480212807730676374234419558457979235655837777830193310187024886859933024663628577087700610832840170052163538663727285129412084706103001604296968549982806467807143655179641220909479202022244553898909261326509976680731309896518244463162138984961414261995524502399026977803543715261308493606602262108036345439138043957590997485831873856004579107783375847918450381690618198786563082746618062920754396551457803241553911528622914120256101992474887682534879373157191131809286604875990257290502049999750160590659497647871533327725709368659791052326203100249442125570160425194085177970874885975252883411592878827023960073665362549252374809252928070829335173234688299197335012307009781359087135721212599670933281797288061463624876126571602319922210002731480272498245244159928314651510150698213993950995892730626993022722914421937486385996460652283007025486252102310069031291072281335638862761900287153333794186846871330993989805281626394842129104913240982284673246828455021913222331940349132052779428498100999879213692870672927155059981147531030890648906332186995934095421236595539756914360637069027734036152439242621276230503202810648170544265214498360169407679848955186314691349248644719009706231433829111764784380681294775196224621052280842066880841040835646139437266314281946908895062771047927500942771513979963876509282931294382649689637497874565331164164554425064124820060821391607823317494317091010716390284374627188217266145288003398009145110418911037152703482461996607103384916968651657427027988159023519371803229578261173292356025383388735858880807370556513167979770929667601242359810576550959437927936163932450434181128614189955763884775976361939243617728135426877564429255504118168616468173545644897718898280076280954092821330114442527923358406438463123833335832061551228516053074777640329945892145048019328321018007258471854684040912242024721470703797616359407724715345870939935736730503084039081443116327980665154142969166499602661992045364092386223183831222336928810467707008205818573957444517349505837162758794346136126184708156248994878434300609097183060034435486586225802550149687272703845539971776064781889812300767742701022828951674369547077324110386815990771414707107115623298262849033589778781259017463575619382795352038067400937442185056481131186606091315749476809846036336251990816277663764663549720785729544088704055619669996907087678350110017991176974108291656180627082215325028855037707257782565982558989432064016343696070544207686439515573157117832928366602627174287178979504515621446098179256632446704462395811681246307088856247344445807992990059534842237985100870620307873069317261801128322861474421538236377897136717405878294840574302707058074638451545488591140360124598851414468535707322366604184706089388861548143344316719925529486124146216291248015093015470651539752539060837383463718918426188636827684564745488749570438949624973202019158917818759085689901464046071722045337915239369692702201667309288498541634467572405266027445668611426210180471428495213236952889084897898606608757660798255694525837935206290033491497322090762845389199976633406009685007830380608583188469228157692037261657883106457167881669952024669733295643838085580532285087143831807265666260293839898094474322722256005409284081437924409661878094398367635683332132966271699840972443349167174816496502859873658785935980095341989714494447827864165046597066191766216841387827644884327596722484087448135385333087662189189794203936835404759989083495805074842139961485892017184274655607487415764979876032817575996289381790055538097096670177000817042214757200811409798596014991356083252972001409942079596414332901188168998262159434224462100814384024411564185219488039515851404651795690037851137330986780508311972658007328112559833083915263959693127309223748862664642125828131208656550929498109388632814431706256886792913235356495610450712065120992807359158799756552423343435349882723211011760416109130987719581562510760182500214719800258183358764555018891162687320188757309402752642978996904603887987976889960286192555265424236763616925488513010397948727202523311521568523886493232267736377985460029445201583914643790186952515040799851721816420689468583120365329360437001308725529159400219745674650897789534141572731045864038746991752441881003921497365107083778161358296242692109732901888502082334105015974456737909894487959569799735171908766949259758001416144159094073871385239417034295105980191994189434305996614879980113784788438683134416938660390860411193962922780765260937179994948198017993244417619008488786991925783685603803213239343171357047476911595059543385756895882874915971045919042730190366413664899697232982181140149688605949522535204117854201761759554897044753709004795854106021639652642481423780906653694311579556882963728089063392883560234578407566904737831329967071578442020283265041461289370431043848914672145128018693393701584511340643183523459408219546114978162440540999793982559848560783568203131464383368565175972345156173620269911752887727197642431169538259294668965947496402791743995993296893375626506339591219691681929560248707793765405619060005728023488154580051120096938022042341274883956954655677899735782867309910980441098411927882176160461028970443246229030580774850589059090587539076685017015527457470918986945547771334716498256861892304012408764330533792312837038834824430939478919952644528190177684177081032369400225607645260918403046056888823297049232827064833587909996208298125574011003905990004235223681773682283262989433853658452343185853792817366017534079512808555418093109114776936247117763556094527697006776163339159498705302404825770030624856156268563173659535399411376193801150620715727997239621042141365342535361939905150747458830018617063649024348944478348646375761587922189722335153534977256541105898322011862523013942888470274581720521957948265335908653551232948972825979566301571756006230586973357591764839868969070831053457059103981052949701967688017918795255148862139856514783224454586166569118894959560652526158323374143758715813466718429601987314021750803664819916471748428011675459917696031547267485189233948221695176784390353618887168704634653636117376116702503910999997845586410981648009853008676101014277502165588510549547326209646073915907561001210935977644208571024196745734769463966515611808972391615583923104536122524818440050470047017808429266114388962552119928955871995560038371671166021402702708664863923838097214360040404723511690911612262748869530438823981838353861139507612363503859875546194085837007811976074757766451582803126757320434245653678378881761582887077892872290490445861594220626005582748170750825011210014792706963151570006142626619205796180798088269039731568606508857838682732086275500590103027068207809982327457130432130156367530326110573518299554490625463680380387119538745002220344342133153794802117433093592530594311025048216793464510704960768403088267747030301537601478140089817215527657285849184237588485518383803174932359585406361578414583252042598252603629198126747731058232909748493289931347895199945416525918789051170654126052677439955006445580380176022001798597518018000017806308058085285372885614207681672208231655972718598063014833579011008344737975350623497502049481481218067003730273036660995043675307765006521200455962208729530882061062068123673755514809732286559818353484609616459188569276191633909240701601730164396959952786991558233857160766129891133054322230363324546455531784525491484272772768985198076541037105859373521321456203716854846254523869789035805351426302221290328584818683980409987301527512372972833941818161627545858575352196112843802893959184799299131966881294914924782157075863710829595965307365749048267517567531759557638375772549591397254515386771824651343130513238370810691281082251398039726944431041421890945499549769320753725546490296016180424298729875747347110587953597622690588353230997880277704967341017589122463942895956576032053915240812602186349971622245878527675740108478552545749824469114128289425922372022504999235333507243815400746426513071204893200769568859573995386573544574708836307368209913185638214090591283748404573931305201537552705096967391699746545978925995027654638421394926506382674114073997673175463584586700664368197290526398071262918966960919357454776772150502403861695112611405719684240398449924670924281429345746301132692726888622857979218234026798626343194713266289151787607983281798021292693389589432599692369012149201710193135705387338910451499169148286371163654754104672757545773573161507026650147221523858176931904492366824259238797060815500644580159915226033269247671138274540036272708195097901437959893499065774411360882640844306230347933666156285140256990216713541579491632127224290380641684220200058354659954357580812663447910537488052312048420176921013284231527688267186773656659829864779851843081061202069695687976407586069266088680615152857409783491791108061804265750704465292371164268587687367010183028770246495304243672207290568559948496342770481067187819994494722418005629586076208985625464755359397604019091732345912071393873568099382924105143075826757126925386387394314109870320669621420518921610574018676989369749817053015165081619923307295903807757060021128979604610201248910979330956804063111103430206554733711906245162249032024418534352845032617157836131829019396917369943844265492388316394670252849780441198814851072038610559675117829151637455522490159467651250304013664951098683929216662204076815915598224094253227464221921284483973755503474955707160597835878423546601712663530460096210267312155650942438979115641317434951795296281595738735407522959171791562200369932591985254738012200722418214365509775989016720221281564861212524528068944485569160205385190030192409110642358540659217448455253839577644406221964737268748775756013358450222782997722399221988360973343241775881009272920809869715338282117153129478219904325315601071782527696179596411190618292480619968727312499423623293106940751250836514439321940646077475352276249153939541167749274497805238274934979958598067810531974520275594978791988972338874288225378722354607048807372423165603473313875296845419681560814917572725953731589027707823584449727463285571424785612519903408083909161907573108190062606648112260885544257546373297832985428778412766750786093817487149933328046982556715945462449217450118114357229955835973479509399342655645727900687897489847513028932360237560316670056894987280952841860067357121020724187301503805327914107386512885389309179576266952337912881628160845421610386765382767861980425508228581987969916755135131431694293292674285010854284159464804528551192744074560961977757475737146077704236943258852160265329282426861359684411079705104692965149859980000566259087756475209381320807593869466930091093174598095292223555629462813315291716495556251627037687016035906132153762536532739219847743727764337004137862287047524325513681927588151513698618193846060770983454226270438811870060988247425923760612896917575321670537190530408545876024994076641988508801809975742375898446106676095328642262937874837623238855549142350143764581356960810313506490735450142296364939726637403632647529467760473298510821641771448501239702468821336331899623631358265683027932381030160493152474819528188115494438219542068090524263363228521398854067947032526537626935807286823693798993396217123917586241021698905931739278229906937452352693271924406560040263078251910685577616507318937571570924809733991350276048230995807842973791366947236499288549294346854474694525453122192258733471862690246339325539464667024167295852787860918229250450774119296762330985167464917791223846071256133494652840500738099553038937323551659162312603624004358030386069368587602612672159973130299880447470128852092969983280154374081937221473155850840492235884263617129898257681798726663452061013704342425342690109541524226812069724973848203531039449276292411730792131927730510560520507687443926859745337564356472024144219365685296923756942222489913236158763041166281783142432128182774886822719466003864945769434410662857870787546752020922732704849305823138983790803988241544126166738988164122472924983271038791914145853992468513681294910168225318106228269233705370796033268769515766818260257536785367766622129997057389280238374714996558510113052306381496774892831263536536390664106393236407207241298488677068046732802837304940070864309671524895558341683204036081282121474700429102011115727551294750103418831235616063813139728833681196549499305239582856806831474407160823812292212265282593059689444728778548608626583993416556265168027591658441710873085657295748762005766684216927133328816864406286586541399980594809962106101521783251324278382408236028589533139308587266495972560066164234095944434623734336039391839287589295905274637587215313729805473136590153223499365496156262207979535830836036432967762543901429217156685035649124139206503331231071597385405468689627387760590610585114964234509937693965289887848183519473162250651914342528341840624311591740081060334082109018916105058201688652875621490405201627229865976765662128622133431969962639534124705104007317919554231538655042788676484264885533279985378389184226060754601831080733996595483210806015190759787932229146673655374122785650380747516129725467977568662422644107812253348053159963571312922722827949067473507748377353191156297559423211816013276660802385190548345410657159212185219184213867329056107902275309041403017585125511672528423091832566347673128187649958440900227391838540431378590236431834929771152198419893526941400967801351785849344201274011244665724704173146184564651844971737773854121710434773155997287570498328058326479500037644592905920936270969592780553212827903079993732180056923258740276974037634620383531993978625574645476085882411687001954139930805523375697666218729093069669330706295995359743306821893097218291618505810860616926890631007615732436559546897435729765329431986424416834135671901774275314177206040335037871880718915930169354337018233809260232977719571378287497572315908235818696070697165413268909983857819783991903083762476953889882573119333732168773914605867051112512652187032911715425201137143522850157632742300855653193790357964793904763822268177795293526679663093435220699396916002468847832620089148096576682356895133274313517185782987655994117083562953847660314434110871830121670587396098343343961537402476038175532087410151438029652387538546029585867612566371863642705940774129324791627081909128666618303278007561110575007972720937003073982378670952139253803504755474436504509694063183879029760717818233811159117253107812975945312334730385058654086450919399976367977977790065385002546410854736980593489072628206751281740473346644331737216532668414069093629638540116959614934106713390385721397450621109826205387425869542279897375753049560732214965064241149272219049993952491423001932270312498242604563106078979158189515669828745239337279243098629590881815709592273450072173070159886312477766488699335030229201833491312236580889513332242245999335553254349188227079191711623715573292100049969204825090764436304197139689569131846647497712068279724581859338792839197454645818004185322843672246005270309204135029699251529889925323547941516328172175547377329832246037625623024079606296690286064431793584839423860357433248460540555570926009222039059371527134389604309540762710663160807088790064018537983586384592562109028667598194068920843081494208445744094032498263385041899529753521775554239865216487011116750594637373484411888530210711841252220282491757263669159913947311559513292930348755565175249393183050813577579873749441002314810032201184592868153321937006557779984295472140339252057413943460961378933348324549369504990497320144670871347225071813233028705537148819331531750198226079625067522408335634678242090557388938289144176401342074958256676150313726770899593398874302508318558287644405643900018800891873694954022850922543790869352783366412253773664639478314865234629827096617060169221331328724902762514914050972813462140213345986406050353979358444929675210891685784954128611888573821804965916988817639816711728379901565832886374277682443004950276196370079867056328100410956510218607464872434417425498134054330611896120989560733585210014063059177929921356889663349717991466267729065796830931379625425197061562730827125988814909450786275875750585365958814009377125342593279465373888140995769068650000026901038863982618465527760916064134173609092837538098887072103715804713322291616901123093862308097160122657139205221882906783247738766187183734399583943248749412294066542068808425330679073250818829105925072608065543597314690418799280052132545772279783875447797697588421401612027974362192689479688696954501962028709021812235398530301319462266919826535395465258135094433172445642822249787352439053469535046899321435806979554113443269199702153856451619039208055729754438805134829934757887777738451108899381785314666308852209002025670648404783063598732684946319893159975593404663577299013001470921565081414259767732761740479597118864186011166833408659750229376977452525907496401021402924077589531124742469086575586361614726324762277935067929224149165059985956361654370255684399488690452473376519867810783333265581009374061786047621188160314418566409464555904830349489267400070510202454228518589757258110895828826344695986582329877777190409940825623073587625039380336967282527266605682199023825997467526157237653385657682605745802343110319626418704773296645848560281841525269433249700831428406559379747311674562511832627465183477518999078072278732414637185277559868541741079880148329254795619890127361262518344291957738987413704459332918927865148373787831480123608881442471592937161847820844710797717486156438844915370207612778388232573823885151186086849536691557533668204824704806767651241065126852377915703460531728842457989496144364606525148008615217993584058998062294920986500458846721361656383124441732738035992820959166541478764406362954610984605855096230740238192859991675845616542418983931028546892594805262685312596116949870700906017949569691164029638359810933336441103251665060590095173503690410330044587862091502267976584945725415571372476670134792027307142605605089093684313272266924408588767923720829772129034018927693510792801198665145125727493093066188952927027368482144703508424880903533537858917734985113172059132283321595110871672875430385435738692550485016229072996628275956849018440527318376578935874122132209470198453956692180209704578319377117768968894085960296949653949231053608739475836743209871608745544585512643809721798947478579803051925498713167152810470414806333359473146934739995542421439238091489699088272598910897467921661325502552940028992283697173734104467446095226575447418421951439140890842422829659095337937053131105091721176158250466810762945278959197699774660274649596076580600239565024845705195163594964390518063096847576270941352221720209516442138573702964012795639857900285935214336586126141168188771417957931872515273235248993875528406342483863184156203666042782226130467128365902151014376020533668642075652494231212138309284416548018725242963119467876664962480837077848945805306580613525212381094956603591231232767762017950738409715704425670326295802370376005302630722840632449145746704522963057815745572393328733870408710639783999767873885042047803327598657079582805122141499164365457849087944924927025795352939411687357468100270326356703508023546315094151266725396848838461197784400712068466010701847547107546783369591044542863248944283083036006409580783609978788813381312182894576331100583016213613576299792854758965164136630273430054646841345267884769233085005830601552992934936910383407957857842626695674285051748009960402047731326341854125157883848019477409440740201867233997634990457410514395319572593633418952290451319307874106598649096985962358873354412740055058645327537608365401439481194791939190702950776725009715368357829391053206368382451231694029456961391816984026393355250480214984267466986965756374619877361598277521441390202015775541728615711402442354689918786265544501030548641215266302143492338702968643452124371667081771263968085176559505792207531918916903188895933539043011330264304744915171689643072356067149117052665002038912521796944828379885303630777989419772084661752377093089302632299458176556060790601745957928137478809854686245398587338869597922645661181279912603536702741859342990708946248327778712116518593050798800314371800840771409765785994548186317882432921234595565807621886113251038294684594045467566997264117906135531198623844856270634133229731070891326916030950706901464710020364505100983144414101273540162383716922039007831706345399088054520293694427598705493651998088995390512184413771956430346577445720405202422029975515617974291148008872110034989824159765430299005782359651633591317176638859150370654627177092043470389871543038816143951623917448943060999038286583370636327848945129664192522855740157084666750791491506702282443127230629057115600845386171358198626013341275503020688756066786081020860332347856241445849653563118981811233693661925695373906875602009612946332989562923296556686479533177086406518202836172402881555741526712441292727284371758601993695763491550533289645998583912083620814344256687970545848562083969005641771033521086826859294899671245136927656005160843946251679006942352549094973436283329081458857500151715936909404087709841116475562522495619626243164771481811205027405528432497926081107032121748413624839676324732068392013976024868580864393723313775419568551877030257822806062617081665632164260695334092528242260602457484318278103923419952977687471231456424834249297571725805942322406518840045732332282669376940212591925921585696807235841761300921097104960958602758894649214287074605946727205601904621504923749990386561198996423402857803281328201636469389181706495421705449546456465947005949855235827263741115715521944090468530118483137931326449519133067510162245601645560590228996952980952389617786015221664718072346475780358149329034997232045444652193146693458909870719730389902834230684949375808845049456293308743050176463794227282417299517036088106665765044721891368313068303064060601916244003737584393396425347994341210347395696883169907210148510126483813397263167206278705696651657827755197680442298088150907366743069997314782300329029346582966676625051460977461936194880601252136073365945318209398703701867521355017772688105663891266224135467821499699380728629051788893983322559019849584540270449884835550958107015236206468979530347662855633083679251267307737654119796085093326307294022750399438564191244505115059162860532268938012473674931869874897562091269800810764355111670764888866516595355269747704109627149593640092686417423767891493366615548706407754044341308736659405636098122918678570317306994827280170986164661530159765251462768394072851945986201624182232397216392499272610322243341478898188507787896340801768217919369159068447901073202628205670128052810581944223259720553370330501880136846069670998431824497386410682963211274858151016625979745295896643863006004650887648846080542323188461440790958393377094723056626582608718009139259221987462363714040490137560616587132374022511248386522965077683670513639734732800184470790335331969175670284340636138796943998114146699011174510518183974873497774673285841473906117336648389491043764536486993592526439140878131809134418631659116382313699204257137980021382422016061738798249921997734982449148603316558187962837854490076131960225201189965264543477220665279693547570760984974973755249480128981761168449165826431510592862467990216186705677746681402193014644367879331111205414005736746012831121853949675656756716215520089262424302507489300708625977002818641546578566889658863909846606093287168042260036137603798531849971020133376620083193913206014398693560802544823465912223353982827677675583222593286938118079942822838539885579786209630003537404564369482206281027554571010936060705045670304745128337500679085911462861356450597451261322384946353134344568262503812269964669413186572921073287756235640333377477369808274218260031546685225478273179760384955249237523922617329288315775141582394930432176099244867637107958413339749268047865886134206812785296999841726665428077995025780594774473923926345395391553952176228735386246422521370673620968047144081728285089069613842054443782448767583431065615086409801958476361904776989966944975119013292451371983808281198754691599588493180723780780424273877477937289376115609057212473252547662572392926607373441940720348450328965137817457493353210014354902245331600710277500051625090422700646840643346132196512446500070021242851252253958963581969538089260430431025393855539516149414823136297763234787936915720946742094449648510283954119525343657862289084675012165758147110734492611627116126341854432762855492739191257468270421526215166316973747065897878323879685398928109183462876371994635264320810849784336782227319525036321123363167969329539468812147164810146273405020609441302738911722118815900588677313306308048143840947734908926619168873086838996703640416413370564133482103244001790537084858121936815715045220054458869899075569843449912180809526656071758430225004937240201447087094484417887966783294822877707716143281361363659124154501685443627137582678744211819173791914913748867100331587341120847616244325036621296721280460418845150109971794338595019354914244575944140440565252036022782235460848014337912528868541591475478957741989113705839224537088935008548696096917292898648537464608266131706949064229899200266334899994425371062611740475919055909197842903576123632330514764385659827328267432232752324089217132360122257468498885303765539678325838123476648478507583343143440233244911661988031928044694804152355617463162460702207562532058183968522307975220796274918097053904220117637492779195406604792839033936522331312582650960643736913131472647759885358699172413691241448790041765904086159964015842006311645375950410712264305423269644133107910462454327624512233474499962577258199573171470200263183882491608916670346845279688971725898829884031709783886533336120835780363619363111553330558293721177289262507714878499276966730098994045857514481184844123615282519767788105063181667021965431162342204651740679709728609618655191198020657464711246732200350113644643700541356978216425884549283059855762592364814415113015647080475119670290911443794803729372587944234503730826927350520564606497697718705524387887256914294797522240236808458306015932349707577011810009958760545929141711140342202972386160827927919467182937697852357810674203448490010104868909372477848237450415693854433088284251946677439273840488660805065134515373107572492322400426943545545837935838253153934725355365456623756641451996014242940227780994999250645890327322997684525850911053902454812537651430845609718385434455784329212083121122098511859137809311037396675269397954922539693165604512820363359242616466269058736201062581602498214198257941116653250219070648164035004913562967767127901207802467617482536291280245776277077634497213480795226505551652620404086091902110541809467726409632313337505280664822003848215272443857400274678984336285752005187914811822466932440496058626090998876305181806723959474375681154518384395032171119086816667568173082362300382209822155538101066239912540149569830648221238435554371338931219801258370720766056092964558714204769035755145606416615980331360915396341264438901838596165171540840222776354606931099379895878321810296907224563078035736033585700485642678206522173886840965075304054822978572404664687218706679751063983524741259305042729479658357225020054376544880451184711217389549940397880976343506312293704690684953438140640683041221337377552121313721614381859088641438182099221791115553187046858555811283845700188695080039293041202956869506961655544526765746895709358659329926687795964748103200881714593892528404190211337304526335434489558911109489347147231099549404096462259081784233627143044249609614919352990183003766792338081320211915446998786903279636655169378466857051201834903160237829325861637926496172603049705208586653035044365156384439562979672712615839758950698269839074648160678740546177239893120235822074695891990372871691063716323279481350147901725193068692135914420977727521712545510571105130709846365646645329037537452278047050670976956029752651744995481290840525573245135105845782651513919335687493492639811816857288902124097526917514617785824389705744932547600444649237312773752667806351536272769585650997391493303868980935395926492523257602705811199874404363470262193975181466487198722523037217137527554409672831862119936644690026710611996812772069719956079252596047337909796931628570420358473540960254969729473404817433313381866894510095165051664021086848018506543531649437199170908685986930890743074509098627563387442637625004699112420437258850549178914121236451486181935629570177865663573051065181381450092555842811161767601892901361742520240845972149070247011137467017829908422375785476063598092845561928258230133503014310200506948347428537924299823208712549733725788405758277378646681483546430056062892947949433288730452715265703028691791326702941611920545828259497232566808281505404433168692252296508301327712582360306099028218151258659891586584228794312802826032386547247298965891395847102065053833531435818459722898322105470433787655160299765578182080366997158697516926543403263906107420803072381396158585340746457017541065283767062932701329883905728145386657433025342173517894161633498504325184761303507570624974494548664701893994409116779729915242173922431977050030952450402974845301867853104330331745238509195616197486625242767454691424575259862015061899022714360412830345646240740897973709232766387441192537707334865858865971586209576493856870821604061984387092584505300804007088840694547560978765705426936407759021531351525263512015575110030476455586022175479109620220048729828777002456297642231126901031875759799862085481584716651521143810400236453104498018371092019655059136742596758922133075609858281622979177062292494457618331726839302736894096155170524174394901270141687106773608256060775638299988330729483386950857028879256463717405509709363749733631484736342836605055586940976345058099899136753584002224939904541154664490232018106130988750751434075267250065145192662906247252838327601091335190779236329243698528965585492018026414071639216914386689577730486786327504091514295549274765231207092231800148209915757765328624930708093460415180971356648587805283090244926102280950083469014508724779621283691456657745062187038606886087411226029625593505427526932479785331266223564993480048585622608105411663364963920375629660964856193229349216308241750566249245443351072759447905251294454828355087409708172450296490811032409635347875790268505065739449579640309302710587315444509163186171439004213521396402419250592483761116730310005863709789411085676350333346437611715685399584980150835059014718879572148907885373763541991416616393792889463727427443248480534689556616556541836468594815071218749845483541790660562598998726288876679015610941398486372043859970831048347228454085499743610614440425534324654061100102192163463232297527760022069299296670670216892659511766993491922595161110222527602648039724078527874535666177071185992085436083914475544545151780925242231492756132728991989370886042067880926977402577316280451735890767142699431549772402859248792641433158108474941695349719712654878950738924343518076039423485551770964346715980796584679996721005467181200560072644983777359469904064819306250205970697846475484249058488122728040117510651862411346743738110346729344738217604505419079462204188201258604391357863536354467254526512097346785581007455800051528451798816379903746191308224529171646677347853725918320378220028406664303736876575476788904241098203284732301933403352096482976782957793477397225798136329702809124908686509185307127790667223082414229486071616689186976349858431691219183616120462022311424552593885979908030504485474841673699640041295682989745925500750196594585819230005676770154622810662995743231819783374152623753781794268650088340531927155385064139248638746846837882498536816203944799607815033168510557627334335056788751604546000613065832373722552953733972295781558468686841642323081885800736965953503689168491336635994664681533264161962276411611162471871167098412468741058972977057287317456500655850490880108158301592709650509666472917794945992810211888458158180886027275256479041942634193810583779812889106741798647109599023563130247600882054125477173020268224364603664957944076325575395313209467891214828181404426995438750177272748618129170692320099668331162353553120309268893255491367567619072056708765739065669544191144045450717370720698947325146301167209084206955297880326602650497948786628169803143451545589355278946985355231645357816681659487966034699371473444412622385903757742443387025850368697777640374555171560044812252084612488247770945117440512481271859200730751716924994825411507196217886128157269388128289920627874859378313838001894085362794405258905135090325079943299868410665225135128053600436518295714630205178674133016787283112791228844624181780268207415896537614984588755855422361114346154071770661829338238478773383887113155606605868195443215657885330507944556302352254703776731493454993802465313862862645582133127672334999865246153981188358553267668223387056713676519049211251524921997233040433274320591194576642518155428293947103612617831086512704698651256238751004411625904637298684628496028081538392486370927359518851339976680959311294945983931888612979432449725930658830920818836109601681985457872046947063208247345661579825112863580842925884527315515526670630587745862696619254212845529126871374320209678822385692341787335845310373727578884072553123742214415933205456966768172737029216572132597063457914085564162380103575396795884449396918427836741228248612935440337852247111466673080456808787977638516342940480134391458443414718647697565756599129719268977473497147346575781772857085444793464461513602505249323920453026582097634275719985155243414172714796504036942399775965387487061739083985936873048692508791699984704358532382457734949905008382318791880397844039850198058762557097650331649226462582515214020052858676903197590081209043046368404293388187089276346914041457852755946234116810870926739883657840342651720719431178367667873283875394354030357608878877094414333567393753807999424595183833345930636994737276207512082228198197078735944358936634924021505005164934675162258476875038814326769273766764457186081095323468558414493058015889810054091461944816482403755289587020891847062022450293805735137003111344107602630963079964450481783328312884094179295758619321418773796246991366297998383970138191468878260396258871916060023432348878868124178648462992603291329374891870737446472293074549659727059868585785001812663422399040897991015737972939494108430455656821096747942574445668133634345263378945392263567176325230707244192822010836322316935489157438475969462159344942042390652194875080404042524328469123865465662039449863539875585812942719504254413948937472608286094258614081667930139105407259790340683797652761365735449493890570321049282036212328317312888217344107412418678393652739911533340777132744764446707654048304856238222896465021014944838276703541360723584207036206719990962003534966967957589644341805438042179149021893192514953931137779733260944301321715362177645568096525884356989690749459760432710047852047630001540104225841816710925223075602692768108459598019700962529395732095081423946573683193305002200321643657498582925512437302731875998059600668458863276969611007045612319041081532890134599647002794796748235853131017955947677976314437884882419412596149005331838164154125407050872624131031517093688375037149991244848598622070246273695460104786518316629467534693873413142607756120884922537014802365018666805297456554004353656570667459893173861343971649200463851055791264498115818881937585631875106325988462964037898133753191930696622075356412799241077012656112593479875942460910961033342759917904821134333737485282304673122894095238253447986926525391039483300348626238902796001552105683255059326578945966348122224840492091133820527564642298192990090911233859479269701728105051521822921844684215411617079797091918564223125480160936600036578393783105200083211443778648152137737449818865304984034297085961651178476966764534030363412129725927380399836648009016216882334011143048104055836263456600097731404925402345325241282470925499857047642104498749069613836840623319169281966371650036281692330793404626444472809673425960712232262855852094294540109882911169190892662053846145604335513337894186606152728141054216198687604262705226837378414409722357533227821347994848420639518829249556927801425973599356931827167963121334996209485815459487668355002086997941906061979936401718690324047798313184730489869445633265791244860163848015832382681231636188607691211768386626079629873051222676405856158415489505706812291497817298361068770370823068162827332606018561264338394454796826125064018031723066356444864320046215378489033352275072084807106450822987992198177276554201021203623412184884358283025911089200880843106939653024959585270230540964243602299919344867395370958904865336374461773668894899236811766965148586594134765719868709474942337593291762448939058125877363168295394769318723877441334224164724733453645702638646632640027022018906721556483860665781373266050044477501115168197595735489578797276413974911635359273282575316982991145582483705658329907449421016705103348921799048409238444568931480183728218979671290437759748087330783755061452715678919619974068898823058956047650076258446025904919102642559212717659542961293471789576508104096982232793208104804658507984484287818790391151185953085991670323223143787768586635884142649606106011195949857895466970439382312598367776726245353013670593579066390316384760689372294420798789942966672035363801071594805507756224452083191855466819881924185242522722887615962075234337871133271223611438978240124828948694891645781503346740722312183873684891649513257015806560672694334887479895958822101415716377568157078783419915515167353686059322219146101909952082601695557101162410951656589163508967595010097183680225870888304849721400827451473171070385342089792114542019534704071143567071566915362002933260458273211327600680538782039420163240279864414177356365576508213536641821946257371617274525077604042327370203893195832144596430940248933400570854348569324413842109390823025840021263067311865602976576196902615065775271307140384008924268157623828261931216471994907797493319163158151332247223415267119785690664235314251628405738208710691599653573775302344427357687088063518765216047731308894040300553863665195466442079543974929583294504519324917511200916085881851055117960875381679019837482285001593054718298420325966416940656212732015466480173050703630255966468067025151447771401252768549633424320812678381767113185921044560779832204554820802114883910906678334571082789626703946515722324103624100884051983874540880009474144662006194069337277915564821990906588814561280581413954363714247318110058432075744590783925501603003893690982756861374827437976651656593505456763792614513834702866300032148073266988841179654210998048102192363278707837929030840944639049457972173441889830067243305011006011776827447062789152651760467777637740346907341307954705753900897181954619160069248621873114549674176928767329813007377234922342198542324578514200628852802003204707645838285456713140466456333881061661987664333035804607091831977807587206130477355153565142535903465810005707883888186714686330188897442961858004216731476821931636713615423870028539900498256134489820969454041403178191017884352574177903506229896128497453088274691753016495560727662555208856168261695645009796688597712912694377658796073139466115905432367290865620261297254274678086797804583925428363839471808514209568521414537228815686015873757953838567622915705013681028140910403646860416764349818808180745167523340041371312910226804817578953347694382337949252821751415665926599418521600386808251645746610263281819689379924878747109043299154670298306971132105042686452551242108630185420060181383511016940296301474710113649051137414420000286746592806284320859167336656639473284335509754879995784848200850077228100388579688199839998452321114207078456042131731903199342036902737760713127368300868954088930135164918299922449979274798363208607446340374683325784270037927369188139503255247877728050654315511076801964669586864642449940059120380749971610897651032787720709516548743750369870569559547687517886649736998631378387209288646447121287560653526231941541755256224731529823906048077316574756596356891458343616170038032018379223734515568769896153133192573918494328144562265633250904145614823312938274623166824756731008158507568571103238886002311326237279647001292480341235766404957587284232527339935929080883602864884919078444443692668301135697492856165759139102897606662788862367420339674434261228611785269511428460430948236525967332427766611662664728197285439351722978616388250542279490268562051867900333694314865504303878516816614385757477386210316628364281190898824101260800584675648038113217854237209900893055988061229803948897524668591740869125875405257290648034087986252284130079407135134316248801587554245342026801072261411880003526865059025457972215182678336127879437711917091104855294200115264811802396722037917174550012467760345547978445060957034657851360704153931238758399257071006656739053123206688954282224710692324277470934835983302340139000304073513209050034303615678141801166270457968707634252726414147464186525381199368456167722843488128084855371509167557146183295807504874252190638293249984081199885473297008736958205707925624212890098451688506864072836203002156608328084894931418891127585362577854578681835628255921033866558690970824744568900489003041051374277607459941840692753143005309557572780161011773657880898509808277188788216627972521789564726537403008730644617919155787023888109515669647823207562065440206470505015878804098946188822445219023077117591433582037660747845724686311434080751314452228970774588076258072243227278348584639355054181710029461741891654291360263053338928489640493506300392813319666839890000509281619014434348763283979242811504447127988838775611265405336885931354302986584513834109034524844751500967275196477232162017540786131257480131622190357865390416571598344581139248880763589209707952145560641757959186371058249231606414554758405431097088845582134731426750078973558750168973021212282773466901069738523604471435402621194145647894093450774470483201829267273569506994786823545028450757407057455058487407757707202756132490732277512572212256630829639987425462656949982339691765511607278101523021782624579794481096782363088967504893171994142168764510931164512217541913468078023942422817921744970870815251129859628986918896525758495337844517856179461165443024007136557875453953506588027464075562974727371038323239176580334291103870583434749830083369968425050506609428088441981549972302412117332039821664440777203893918212220980789055131926647826466389949710845174904003747596788557048238910700715587944152243374244866537004206098900402686651128380262142739564778876662934025152430736779732445089824713090012705156185950888872999597102008856359232211630574366063231539353776483927482541630054064555497470565139047005992801669145524862677799650873256969579494779407757737388771267201328252738476811807584268763655156769797928590268323781695861512150761209963400626098287682242445892031469003801183500534149049506841097122542195863391603019895255103949482072271149025556788439769903124351031064586686417715528504068601543267030014607349941064732647166465523131540251339834638560393155001609558402525656238612770339347372051175845462728395662085321774711891232643398807963658737604660431760353737223454658996036413578642901047686883987391154909342108575891240647519985356532897057222955118020744745700198977550561655963930005414180841383910985184788860745731667033073831637696847610113641562348635206939307008663782971736346311996051084671600355414529058704419596918920341360296855110706300278177443943934243681707654610348100632588833698201118175542029038070089980230393235080996824581350945307620431784607567722706401429052141402193313969619038068538574092317323858795915589997069320806173238925767349313215077287212108550310684644946550175794165032820469611769312657820927337241414826269194460192278205933162314940227366560394227214712129650968589289997083168514275657029754070729066263474873179727437264955354325901404073141434492032594774652739692751899783092649002978063076946718030209061745057548932682439267998570189178464988971045169569826785928056141229481568510351853321949591394021116279206339870897020504583255552671824322730146110606637479006877175131342434197166997589111081342563776512766256063411092332161527301507375166120099882634641588871585070855843737190993747010881172983498881331584418845913614900053269335236607075347152821817893859499514225150300902506879608041106122702983287819225356545616959475842013694823553489280700706546506077266358367796123000088941236820287189987094956209407228103189322965812119909942283746093804224910444358805316041465880156279788105599567893850116197620894947291101627823003042446261979660041508905097835969659748826680140649313016272339060353893405857992722271576577519274377196382829522479782647974483096811744003021345475095496699286708707911666973240431732331279041996156981722232634264079947023213204344266686356882022447193947711306953765546554877698156441443623178740618467445970601727218593618016989782888255673327818811095273244847060774683107950535074339341875088256063025813062533904336773730822067787358390288831868234619091903834690801099286808368776120201936302410506533989679463862609958947894989634877811217272987284391932998484314903892836348592926892091838720730122227887975131990981013014342670070836659441596513288844532107885137922826175889662527472849405967743817360066940791729518185073367987344009148908510111075315594955638589635805260649170693395032016055588326446763362518729989296658372650028116454397190463639575085239589092307231848659082990832628859466249442436439246193054067808309862954548628044111870025595612427209933878089299029766340600585709199116202593305232645580513517421336863576641831791343937925000670751646822845451756536815260041398958414613398827929192780952426645831394173975578048798668132474453586215494936576725662970586106437133227385333093118072294297309918002961860620767556230547539595809476942455534182056394721162157504291781145346566826464051319533200642174513710158607369914679372304777005217241135839894939234405615150404064189411985632205525570908198109082749502931537506375886585569323621111151328837223690929063335471371520467237959046253514422588475795687278770580775181442885936670087600014507182485317034989340872166881184874408535252882066842162971961341314550059926384933501137701161831624079482657624429275389479973372823817772049215955024278556324414106155763915602155801291321065859710834233026456682486164629758984944889401628724504560793502712919040444376535605737825155075435940721752523150492365377738682443742818894286336846860871718796990504886236924207935671102954474578514763017916405420580100923769130929269682303093313856790191638221114968504115187695674116085471890504194981929178637403396120361745207034449501057940530000120778618358563441046817138614489966310942100181513571808345098723512392927457267652799539692213862440051073111965150443987376306394753852553977828944205969505643232519416134410014790498740793910635323269349232494378214235390549183976596032404780220183078445415679020805120200132630020105868438322419826833617461501799277259405360561577035767946115938640239643294570820653862923920656378666009548244299755401742494725942992878280909706102392308708023779582063907155245645877688292696502033113085670652885440179958532061424675816354867678705475575935589651269013672530413363886752416955499758802604905173688840879208570245391532153406674829640548559588173508522019481137351789255378923377453188981255808896855974435044076430221775628385217892455286918729668930969045629278179239203566836126106643728488082564276789601765794818773525974007890842161826282309900136069267965974542105136909951580752453910629060469993455285259292382187539799121013913311253904236539371809465989543613777347251585769167568191752409850190503673859655459243072349866901560858063531640024264773826156530216808985056008336617167124383185622372230332006201271817428716835649518775337333081693083048667472588350212688321932844199971569848294207286878158973875871285759766262976460396128594691566821352333176821106427541134444068193062824531602840165703815048436217072250158952087117906938133541638788573601629959887285498877022534807228596671160479592524812822852759620025810305503559695164887955335560636199769643789444959022052125004071256568639125105404649832660370438402350635153589588036996412275816203328695475873282051400898861903979869528015808685878259357762527798716025323097609497717984537385021563245243185839283161302278168734285849216352542126510395494679868144210169617735568196839465558899822280341863502518001541986326791340589939583399520003697503398238555504560252530439918349180028995001751045746199712692706073929818116048851641197175639859282433621323119448329765510154300265831210237762935526698099471400347643764320328713079037037514360431112196616192876126429652947529211691445550235103543688459062605768654901707157706853931925665860921547475959653928356804738020488562776219772529121159542778253366341808678750811495138898788497919193753638712810532819823741895252038210715061439149800101434534543375859093866751352795037436902265779711395739309041477210191973091683821832604391324139500904818961092152365336576244315412493338516412595124892183156317910355819500919875112242200697931890182832279828240605285384730867226367354318941060961848284933402282945365614255365935956772421645473259989080544677087452152325546135334413362556789036552365282832696819232102892827784840220996772757936424896465755846099025268450712531336299004085081097592127743221283288294088222470693343957078925905984696963756323185688954707841966229587198011115901123783823613802714775452186743665035803746493439220331820046642783548377143560087955388409578329481401030358550627418271415268432681571937839436090665135551234685054471208333638675389268922128420117256464568760323372927840950478409623118560195611238641217119065708537810625396334122279749830187403451155253052003658872942042269606949086895865187132104144125919127689283437133568746197218757701388281130493422072487251265886216866251593508031529195059436205937070632667863968532752420180015327835027607739866865264396726650723440713749337512334397536900567691200963418405703292754258961550879316754041130730049895481432651909723702936425445066398711827769152922773419958150223433715667014381176904248238123551469333816589823439173235554771948853562035406930305771632383786668023405932038386932159372010389127969196135457919422148342931786948826914595912112674923678250251995813874483555521154180822992116967800504535053748581032847642066839411060921637202954997541737616835999075446808975703775090528513136571038954225153096016578273902111373351113816160819486374731339434681605477838227131486802031081541640360264338726464639778554209829599640228412645745447193790393036500972815534618636315729080608256578149617897235184797788957466883847844159232623305433582065604816278358916035454617832871659722067198906991444872456839138362364476482534960398968135001162099786409810645093305550602359554403018555680547806830443480254963220036643536926357220587017043775140440353281381301202906788936905938773091172209918850314424311021360564654434613361600285189235906387471055586228825572411004545246007441335540104501516945799472055797102636577230787525817797038239150063151666643832818357840855869249311008004305866648322136087198652927069843431764674919801229768902709658526650005895608358292683559371931845451217021365219340766592805755384554213432413448853191120621548439988525364790663211715107395601309740700671385699741521457710274654930677311052132242501247775934986836875378508528996417678785391223359531486374358686324126512996142386358638937895026948041063169213419835348203880304482354023622290453194182087111579595917021415108378731339009319100708910463580725794109882947171755542223705623099606057546686545623881392136981361564877687273165358004875531445404465406010252487934382155296576886355639832334277155965814987530208924935886204688150171402116032763254578047953689289056967307486371434380703875798225494813052830140040556408186629001459384389637787155519821560680311533073422043245590565463276026508025309464227197828856916024423828051883264315691278888396369615253338372495202961522940488104659471882447314364845265250523771572935969088522551594073118946753110221702760028164227414809512213647735338788195172608904139584698042326749600763220505775423648462716700321347291812920108369669753895498055954570243629592320447041294769557572203108606380967728540622188258730452489623488559930437227066089868276022413923912461377809007209311215523001555205126248347755360282026270719930940864988652695761261428711910491834065479111855717152471540379919176780042973657254633349648704125087872785802137023992506881959613813187618837554433144048385739015742450627412554534195094957529229652789834364581750649201963499888102724797772582150069429847500953045427716669214855142282279247360500973053007984370832801732918470961412825096216333001820715439803792198537345327788238087162626889642867194174198569276194764506278428058766405236001104814799338076205133472217750001604328984082430055562884327602806253487497756856390574399052922889371100186857430372848047926245425618540612159709508604001651511076029513985070999305051591166675594536071733523693101436936136320157369351972330759776112761314591116307943484311901823722235761971698150686961045707986581966235404565903738667292842392093508437614854366924509554013259948845584054417875309064601375946478688817270197062753518083788718152439389636643483386476825462969479954678753220588357253847432942693790634417159047938695350347042634280740423331490624418057815291484282621718621161324229469573850639492230774487570360660312930655670155659493384897001410801448231427838421986035824271545249994702071939095923862793547410237688134471214032903940916209670603648644761728691072064006346971021831093687444427424883323625939575479237744403251196190557454599889735665561906887003832348831227544120830471852395027103573733348742414627965454974388014774792481615441774124268394598269751003950586358199844417180801647062015307021798570436355061550817958531512647558529685227166130560049782215572838753924433926416046604692996493771468027192065325249021973973639709909283292006131432292238257925329429453992407262413408473029491318796993411781915165206398208529795785035313576402859271336950966203622323410658490347437963205472406484593083690707704902559297341626114225201361035034257841635991792401447187864059734786450967082611297342951382766574731417029182050505388947892060204381744467583809013702992007024891608091959719195993291407517158209039766869769726349132663872507092011216634262185039852853084258456559012812830048402426453755313848672589725250797802164020589641002335592467552258889763903092474937028634974524387097289044947313210688752886310784826122095525477081668298898941563857360828148104830278327411771811658736020967821707420434390189892763870952794933128861513261972028426358433431508953382584006376772694348639068154185073484534906686775166040049807503601838962222913601144048590227898851729782485401923796914339503187277345902232972758763784898815873151903829575854320948441690732649789093766994836031914390159481646191018125774279814852145140979169554333545299086336033653608988842665113894093737419606872363333783062398566911719247795582000904415150988757899269168333879481366379881223131430355060685006550921426444572167856296449179621706978934301606110635519085837843262694959656514693308981185703279239314188235545630872515709631587312342341850724528119695544850439594879276554386471905874975054817463468926554015247559522255125836756272262803875888835685336027422526203340946736792008859539931283681834031297459623588762446373879707291114955530702243432951020185588087207011274513902687831635208982619967717437260202426686239407351866713912244443217834919030044788661768446659148740627155905302707840816987656585153247073504397710116400591194876131232917866446157900473112503067129840084066304675083663316045289888072683083238016051438864770101894265986723490813440090139815662081483001438963090180966134736413617548057843838102964862408736757240345756752220622785276716085500891911883977461577913097914836902385195236740081996136577066323086745600107973898651011608628124384860592308295841960491887389943901013739283272977834186095947717513608197897902885244251737937297718524153210109932889840673695007828940671584369947559114393691082748154712973523570569432875793478619555274770009236782959028428092219506638248654787582366674252470660050763097057262269713199533365398695453500932366211921033015918623184282633380259168817836543852472433894531584621241942763359594898334623757537608229293568710383113426013851326051951184289961352005710963501623416864457910273132351482057272360057073853507604069539467010850856306525527291575736345508089440165351993107497882569877011174282587267996166994031332604331593531160888819400770362088845713628358844814204377220873767360072138211081943599411593111598285144334178511912599689006748489742655218573742262360104807814885856807752373030499630212189719983516755953220359313902944601994373697757062508637324485321018679202779750894500714594038410251959114754937886916435332505988768532910431938665665793073347030570037521096791928672521398177531993929866109520499742513598593868409878407163296604307705556695194372844338868821382457892987946849420003106120782531234620497022042990450407484467411131981089317041128196400746132877088442995545483673017275837223483327221331881221526035631750689843611384724178333805106813264918841239148957099438617876070584171726243128635289637458709149851579664259109665636269473982971742683959349081263951170933473972675087745229837672599706959907185518592616786270344662776884072561464285343744611566366628431740282994064505729273215240357535792664994356615866621441596760943658638028219932522607017282616128970392346848872735171755288262154391928849233900446181020454711235833111615251131385648247903024001820658462049910661373381561319884186028727677508121895101617690461892715091052148223430091008959753542278772860341245673014816372109934266919138947170378054377780629480463014695443092100704267027175189464058787927847824063740752748059470454775374090248857421410711377504587035877858485257632777367152207262795685452070292589364516022605259337481928325095067707714390313806655350662736845762339983434616544701603456323043732497819302581638578405960017754334513054567483185886548907573996836908988253730476318287128303817466056029329790667928193196441388393502846493396911468960258198529310946363332684560268455008388060970242582857272371149318637830436306315459830941009242141737796782282046856804903381045803164754294258446064212938026136582595675229137554339619407360230011519247893596154492755176956506855736161888607601765749589858822448156225538930853942042847570690442912825636088199378212541914579427670739749945795998208490049718631935745220621876931701705304414482579546189816005839402387963579105919822304680729316581136951361159620054055684984155422058829989016858119192365274590330916229455010365919719115345609506696916903284878411355922664604984318162197512563741377125288913170533151514313851310860099869883942743540340000794764192664160924590770099257246521800066366265851121772346488457051458876393118598419880356940822482500366607459800398232501176975514149865400261489682915749403647787179199076206131441438647631247249290114655368549013335333168904546893204246417222015323544081792652047380915945186559643246854384547455691908454839975526063110267807696384734937532463371876649414221316195454185446208858501588360020327729191935097626494584014211168232064940735067710764481540403391413458309091470031880902156967297833104740693520392379915505671119360687653456135883799169611080290741340925188236520371657799162766362399194051868682214978111819407722961516563416529932630201651043459002558921859926769152803436272385277830734456635053917233442064789964293763295303104681030559129531513522009570312925588974333257640953531048017501788480543562607112111816732014047993956615879699244016325176304563442922425042365709706144612134496327536055388086492451363421205495777665826628239802514424479118770172469583494618416249411923912482783219535353079856835702300672735824554790141211583629605318957517783570258741109974118651515102767594892158752736104330770269736137072367323956212866596907533107485326869598352169699894289396661885919944828357859482671070243680245285436860460667234790062389672993980440574677772302123033405066372958791917602009352016892713421614819593774538447629117485019216630305670166081274665527686529111972984225229112752459300019718158051083355949836601671272467883938290976879555442395437044753390692175365499061477485581542701625078418393429877949272359890811371735276108991179469576919434402456246245679623959688387890699578081515557834337477086140018289399509045024441263547438769557467517738423415153532417507505863401024922413854991504892633067391813342796074413553606826518600986157028336439845239479483708860923170882083569536182541960858865187451087420666649839324684097875204473766079850933614115470677124572028814116621004061191690370775892537385567315719402373812103102149350394065446391595562331122868815695275057124830393404694143921327711990116883076302738379205326496277531842544978349874079338559425359413390504269301879800755740294424643146324243320111637294540958605272387338909985250978870827920424422128047036063388746492775896418247582200070310303706680415789059701259773617303448257575410665246368656801262661969363903604584501849926510023346532895964687277966916612810186283816352716838340095132468263326584190848913523705637615549601562161545179971276258903459010243278459333761491393641878540852264195338833126803379639200186548804499631613718957028885658219661961886965854090273657416362641100237306732016025665978246391204957245571995113246727147238465105368441857126970957365693439133652403142888357620856568998215521366683063580697318051495459273760931431544324321462836349516911056170178557368976848027170347344676327296819125676369102915138749250800707836242816808850998971436321138851471145932398305953766909797423275811754282846777877901790289763306581693462427742677339034170365294866212495490568663400526226989046268483502281322588343925799599324227141023900346920987219356096058402245205091391129373532718895513409451885059778614640863787675973500034375170550587406859766216552146113811943787874865161940259639884693222479003871697225553641917223877811352725406324337584279297144405937215342024730764199214616244806815896665306194349656233210869040361545766277122049825185023309442494885605221132833930747992794361905255300652692586760780154786814409028228455136275592146517273283215587203311696112957596229002149198974643887114984297832681037073592409078354591377815419228031188829557968439128044170204303141502034300544941815431412319491515014885572649992942498495827992097352545839780314470043204662509444771018575327966295163577447726633615724339097854669125361828173847929911927609657407784991285958949801874307565049926376606843865564647299708680851540290006785092851266568420897782691961789501020485290202551608685357814394079300824725605183899034055867463529285306070704969930435648001467333504088430989100167671313112418490202586535770089465484087562762253994307408129048468318976769416337554777328937402824556640034560382632510090367774649561149492509283711815961708844892708419177816702792825388515801357916876118030387700895281838749687143496017643820474671983002026103864608071355367768858419679767712831649653539870794303437971320761351158197844068162881785050297366122921846462945895785975121479849979657973560907267986118540150265971676017542463026969873968244996923746976417144129405613206301375779142295250716390011148846902025109623236154003951532519341226281520611017708683040941559754357838888276397872137226992804639173777926002555149087549315967353026309069243240512528610271330099215042792445792302297403881690278159160228358243335099836884710319789061367123080675693970549134431471848711196959111580841309080933689983093831766750319760798935716092428723309560909110000472672789559771510950561772743514065247474561052010394188510308440540585241353942614210591124882882927781976842136293752973837398957599221470874748553860224768104351643832922591702739166316384888128934185025218162459312419254751933454716736392030826302339202630794423950395706985228192235918065461793483287713011833734201767328430935364216841066666025652331059276459094636298640831944434207608951878797174671454934155023859864082518283682063608340933395140936711163070829207021952116165420272635718940401393227685324534768526795900038849944119437643531686456573090275690990397715608140672754784706304317598209371778009327885720613321255808573869243870595379083915393525757097606290116223438089797482082203886270102546333144800884590068655258124821607119746371366203929005019014527763492644573431193632651072311507052533649190626088158044551372728832388310443081428641662397365667081573587382796830922304091251444126687308230315414475222803693015031152678776927450369339259778993504819801708304896630195041198439066181897657469046002640840899604232815058076564865468488829906474806938952333767807371664597688531878124092926362029659892524755364500622642239550902047925984995978298921521976368444035245512852531563675390023977346521528434513524112401863158633965998068612173433542082153472223169773049256195962019988367374880187296801036306206993911224325210310317118986367212488610575114372445562170731988303358375974531233198896052943997960514437488063558464084106450821396412944397534507895603147332979388709441234422499326350736405158869090145271478467109584116346214416896951771566048457778742062964161401985468826652891772582908290745575704830637382064074386609166073008966832852621623348484329364567164604677809978866348812385732041417290898223230201153009469082034145103199564858088050338679143420893427384640113971533867625864279060859545290123967674688861016672421884081238454030831184387884853332270920805023525534844735276380938344961851905921993251126304105830636326592825482597591108966533303085247050161462112517842555927917696996250790769848346233919355163083849548264122219859039522031094868511054929348689367662670449837490864433701260280354367462804015075579385316677472690339745526874796927995790005644667943422315754445899354158216228715190492819461361318417776284931513574731934486736177977327603781306386123022437482251333957025617169529949797504783052402573489531801243659330647630415103958331345110295280800180130013945601544872472375581969110913162892136026753486229189250730348841353383267503303242767711574234715815336836849101176210286485908919881563053456666003289981509107535345566423907645523786552163737885354476742011924291494767600507686402636589981176053462589374250826295970185720397827410824676069824459337698767972957691033132092253912437600705169108948654576700896949585422938887578570581770444937791487512466966232690833461381986734846342913778134935007798236594739664152608015366135050124023948937625403549828615759031828727067499239594900217198043742511279297258517552621848748383747827734323618470167565214737866770577957343140258188603464909844336618092356167658994464893626586555543962139012584560809046039576390809550690211407323314586832306107397901599859725548147076076744876752687887703640073453891968202685433459749894136744158844608638061942265209790414217658062146186740627180283271148166144344846009190727960378355816542906241352179068619459566870542840504000952641415383522402053356322872572009994524165058818867507211984362453201140751044579975922887526339308148104240732618832395826368344899698574405107565823943746512200392398546766405818946162957828490710435460716711934195527994469364626302999862656942627918419575729693837974611224632914693540958119223962285432950547034840090134988134847510560250006996797917270698723040204440132682101952245378474762291645517121659826595854644838146118605072547571385581232954554668878704224437426562422804649385219155876947987538310457306975260667390430982919092554154810143119689063101727104235316836241838847779749199350487219697810932265262884599352136659964017040851122940930688527137905508443139546820687603911133549386720625647702738153973578319194073509202663077948442192846219693970134717828620051679339333970226640257440446196851306580589279046474248287484713864497769584578227474833419459956898402605786086447880405063769299788409362255514466120572053368132380722311898500649071061110913584503273088781023730799000651829070366887871039938284645345219162722014891698195131617910555561172415679158231852307385857728590328244880664152485238185772666957445770689555229127176296818918946708025688848415536779491411785115308104578348999080958292983838511286663601361178867600809432840423530820271675657897633636699640810676962638478882545520591128776158490243482366851063754139466809144810608442807612693541318870658847366192692289184102897211440135827313505932114910697311731702709062991227814831888534790838191440992366281828675563055905291895801769915407630130518889276029268772799600379834661903032683201110945649629965446862003244373592060734868275198795204384372867458164494230015296805275895798553888035878575941067634878906344446596858081769586273219786544485004327079304455074415032891760147280063506707051999659034987082263462997018389513885404030403648000001507753967287510647222916891964685630841029225321836783839228410226593478520293609527804204152199094048077728590444430736325396485141809368162790552535351021651916614770657351741978594960606496369657649535451777143864116561867024425050777996140566707359116205066724821707806122161422247162112337811217839268322601313531879916342391208477964159363124863238169722785893906224411085002159836206498918125264316983526174083259585568927815556168782039529076515112824153034860665071111510405186890412594289943453931989361465700410281479674431801265288929074074218320529155701977942683408059412647962804066311831554070280337673944012099180818006972331881274828165981352843356561058168924457108676666333852394168664868593868499478367032332550139892216114015042187416651295485648116411079440084769272724564867040677811123549452152888035531887677983177631006301351681024118388875943109103457626923075251420644228008468015746290477493656569564376423734672224196285921118813108734192174464562872708206386511241398192232566345893206610215673136992760710241701229438025402651433711248277937521410226920006674922879672148785855391634981152821532076218357551846608339231598902151695355239351991150068098931141922443005838243795493807885994967261787491793363738762206352162368573827344854158067131245502980689504964610839213831851281986185437328867310956471256121164700595012643487877724899637258376943405162750972590002289358535878358997237370795063711637208826673072440406433177565886925893828510778701495772477466216512264719468086456733799387968376108691344403168211556936611094054181009563228933076135245527108710380346690938691039284979137282027873436129251265295631103513398779329202094301968691738376311351541904054287083655610206127469840748509000211047580498048622533633311614772375736441004760308378338700638240815577768131620636392712011776365565351373058868499408456925081850292383615789329073090013572190267958406531599341663731275508559730113432133011049426245538840687619285439590797442984320748886560322549675415128548115472662958662497388246650771221009738792816116112945796475099919941297206968945177483324189459148833740281352958832636210206721265079451924587211190155572141423467861109168944089740090113133444264197866153028339164582353865098386363217072784993055083152370051760622398973107803955661079645609183391397889278125528980241360716895288863646752606717261875455943248237075035682889704750300583346653567863252111179863725589093068283309415191995303030747130337951595446816394335125506027248808795413602676773758089742259213918344138648267827747038027043789517902948741398102302733714919628668714835700378013529958797920528855663399462163754375450969682552889799541458926427311047345971438580229754944309920564451169696541070360628816284723887746703793573676422798713545426403748776688217056128911439448121344593471559380224437353616942915319541602769965077431897068047124791521523736835292763654926819168797914464526602862127592156464695383375993569210752258084948553007891930624185221016235444424111474884602997841382181505997934094560442729440977138301817092748775715425362273395016019680796611337252861465170202340589796883817871901813172293424482456281294225202582109415598872046743398940531100960509578934838164621503438079205440602781878097184454068581945047777822860753954929247689586037563123402052878802420349934750858839395896632028920233872855108302099193725301827177357601032189520845377120093688821900957740237838188140983796891502014055054208892141925342002222170776009038072854857556530557144799444295422448889834081857693970708722522091524760461135922401018046325959918791575741840237508598609577882993532492389929434094700743851066445909222347942803260023712795116050585284750760364054150929554097549030012741997978027365376776590039292338426064576085267940134799836360990841306931693170334166205003754042667017002511020937968089788440770892102746963663033440008956716388705789983740678798888357692583026755933861522184932184200731356287943793213235706559989507012780833835180065823762392799248238443115077261499339482190785746058819775896656075257473838928142550048183803765531801662488395282282569717841698454990777741997446732759810222474578529525939718517717604981668925064909187246315223056782232996733746559980938269868670353624117349963089032478949691430968897114843911967027367770301496269020103064488894971264861153497511429661070480661590433351967032323370060617382660034837678492011821540993091611708457510907526640226444488424226214254150930226379994906405559794886715409531565940065939973215251913565724751347222557225880552808632215271602915260057016825489798398284660392443622024201200740111613010730548060313455233598094037851668277824215688816692805808279445706118473497287252107481824098468438613624363937337210642071330726030331092332559326261435096084539356413800557529206647823034641453674737429386175521798974718673695908548244421465816667286959233284295445469856179208938637651402611462616359753235846867618163015039230454209238815606200492453907939281402634143045525694294283351826129261721932814795508161577639487920026197016324796403842982497291164828004250458968091400423259322024856446770660293751612399566551866695411540708699871725695432250512190444671304577745547040788009807310153216406730133557431902412695357593778356264059435055043447056238277837178080045722246618544196409093252185978704859613860373133892741623107361529626697683819496043211342378573526161067506167239325094735422369895732273070132046167493564303166509163046712790665194603382289683015931259615079918262413413383531337458686503742822054826521298023689083761492688407952060784992890709617388932461852068502281822678882174787977187865484987332903284491720144193003837277202181935660482769567327905678365924236004413442443599196317037349651205736184888786257763582005355463119847508084922811636323290560467514576885462608565992215346455066151072332763749425528703387133561680507299947371864193015905239796186146476104971095632358558182100325629167344238761157255679358897935826916606267263196865163712834486088864807628154004366233221267845377957976944303681047599960769695935250772360193986944618200183469793066595715393091777332968282182111779656652107247105965274823598024413895301395168499909597519032961786976711472081076563998648343390308616065932734370097055419337702478626061776648140406446567963249745543068318115596501547609887895910342803752407930433988069226891044665139478398323816285839222951300629782911955075298394185353483624780397852192813289345527779115383700050646573082185851665403316612838356047520270900949808539390171688622202385048777402184365966834398431768391241325439914813957592117292577322467007970882987748930708437534409867518333493014926306769885064083243884304083465175411031439833559720632094110457884419888462923358802140382270429590801081640186024381335639413915712354984065967975972159524898131805761282188997981063531551389089967229761068120922825810918517295283235822390548257864586959967310495181924509800983339426704903173379079904247790227425567366995405790620942468607968514547336260591089813551902413909727600111503094406043034069673212830469937382237347318958927005521421421763057900375648053355632473787057262000611219963119425847969799170794292273963964487765006525207939986422025893616372097484598370375065093246910598522809573549757321677278309409577926735843490120455811964359480889156705034858958208126490249886591378162311278481443146871712021512943874887104684880879774059144951810057555155353719629607055865292648402759955349383822719122841816833098104579757188207593720454989655651436871308177231454561103411796891233898201479952234251359869349885504890145355898785670140251848379712091263480162515477703708180137857329767647835411432045672625141806885346769309655843908440666708743623109323481863845921960223979713710670483490566652757302951188921819186410669977246689982231291372042158940645440983763644841595527838636949515381779256771615565964457921036495022194007998468450854709171674463823266664502032390443879497202604297567894892828072731937672913407964851771109167838267261789020963052210091990456737116223060719370292428645698951598052509498092902456875676114705773215790273394264772173107732959012211398596414213766679560065392564285306268777675429287599837739004293784080062972816222320057126433851552617820057820274113852429051975415441219010197846302641126790999536426064061075490169042116227663620303212529210008997804989600302653372586760553248879753825667000938091653578405084384223984278138541082890289576717450476731953661251444281118730175023862078871440211131241209329562540060157220345363179764020420448467646305142260689910651489369117010161227889091971427805047093420557883247909268347872516440909896774269622943710865246503923354507314268366783438705663299831290580215631825164067745101559297526366596507491406733705497016158164188651335503979828029819019251731005086055522852243267331398374990287050746968690297776334370449679110375227677869910270515945983928298133483719148709490179516165545786896053536352907567076264429477725602550980649537362314148140269863473700259641883004948803226205879960834417181374048655274546386475367343260577609971147908843482191543462891296029188325916132961125775973945530909689992783139364413303700765162793007840920798392219914675845307163605234815855368760513253223133293653910004396385201490551759247699147549535883203981227500207886467736169355823326752449960190122915652332055070827238640579695247836469992990123236355828887220826619359501264420895457148045029325718148480235286533377078919182175360571855441652875312473619395459879984751635918819501716694909752501599733884438654936995722703907662704677563895894262803056648679031506978032560713586779497611430169666361064436034760639485627889807552880965500520136695551386433389087053157808668347594904106992297683413286438154822846277985255800369364419183392945424648253232104544247188917648620613681089339535744180842885953484962187911615370317496031152508042161382973595648586388043597309101057450378714090674626020433679298975718838235917918508742381031626327804980062701614132888583558255253564758076405841281790470387434243982540044160559616649851704021993525181979177637987309154559036687836075802982938763937257009100321496544296383165956647208699342907174922826581153540095556079660152356094911670215793718844881985687195069676305109475970761393013865246393223552047488736663974056784481163396315004356688531187773014811130029147118567121240533478175982748382513346196675863574255236800709349204743567463140870647020676380789844165158589455308694177013850834856017088464697902804401001958665484342540172212331827815680339404230263189905282318299875769471843239699902750014534897269909863154996425999021401860970650316343042372136674678402977637276014793070173847441206938822742939265616915427560519658347033992623093535062331131452405534427628759661237381977650698954883809811992242902439865727478551935569305812855707239315460416026995139019920527572386910853882509565853557288767248342946682906815700889862998702517070822396293328716808901385282297044547020217236630933999178336190089933508155566026825892738358662789410612165640420021515214044448051894283574880933353936228613118100822949520572417839025720268391708096435064324636687943194783404829099566703781642792186830597267472621084000891145869444617478375594479450913450210243417546207079410530055203566311036000340864798441783444601606863294886671850531075157325768062948206421054960160734167742979701928540252330537807235478731975206313360349068394974180177214772144581785153493673433676796170651214804508018912862095743676612870708686912148045779166523888056430272299969913326372495092238524381316916974624414070890722430094830338255889392210097724233579320867402733179256877708582874912724016177255895213470958838240364083349693505688040173911398230700845404640999791406892434400241182339561332604729743680260361657826238015074274777353857617522253453794819551427053434976020776258706274055111601355462034198556256917449907253343112942100222050585943718905448795283527499556853373433424879119296121410843285650346055409889234518862958312950832399263954208042123410318301494782980571810742801359040522581351856835797164150848645025288950719574165294002106617616124261648830424167097228907165058693012036576677533260830363687114150551225810863601747519524196553970705770211768516829454282315196113474968902139209307504715992753173872503376366644682051676144177261018066569614381541561504726003234344198936046423514997203787754996986598423234360602103901157366602560199321414781689417848943820559860975409898200095041186624007509984843913130214058982664853660516320844729442931305806416744396763354839888284975514054599963910748653543016693052270060470869661085537594663257985533819891722692566695205574567184353226292528298085540485892659425795405317320023096343218358342319050906763185700595701296828536504754491493754034872365777112221019323552878632202312367359372895403402945348901171898601084088534692821515756532563062575218585827713702188489529766990786956491641385311693373961760151092955452349307325896955893226748564729347681541479649517860809884243057687888630240220280752737702297722624506005768222859002991607129620450526749032301498788574442468387708970651943127532497946668376238446205883520191680667247090167477154004422909602218108387267525792700543141247646500491500378546836286745793468807980685971797541481499026870626670267920157553381663173099199518573996077615260058545264521205755720111661247541216336598024516941308957711265509900245285389031915746599987783486242002434959500734815625746807080068277269580418363917767876844458442919251024414957539446707928475518263087945946227390519513866532658515101826015395500789623898328885464638404886368272921770821273940096108288157032190419078161042685638355871130993652520128424158662014691814041817342981965585830373178671147468069628644438813001083231516693557605095480509068629219334133828860020360515177448884151849622995021462172706046585107508961842954387795644345393035249970262177548702489232780492665996158542573410821559233013446414888547400696259486782178747356307069865463922992641094735138962740031386122518014063345660410213004792963167514421150089066348944783029864137299507823020285131829025588139830174164814605237135738490578928549991009067486719149315504106133791754170680066812184431793181965982243610601832952718709312760904504454347818908784640937152797544378850994906031828804629707404803695993935057396412722073169862469936238235665468474408322360719351977688307422996889982254699330955060692939906094822358743889673411548728209232753093463026478177713030598886084934370396107032274509494930120992728798191537577966720357651825647564885539753957541183552899736042042637629636723993319367055870082913845272829158984844416623972613128643728970006212075421917085390058384938375648040678843064348413881631746269235634501708537599193925695415885762272229995465306294935487082604043200240608369371336052094698497287552271256465045163468423802148075457635850211528570396580575736336325776761747016468061834623719318967380022851738562845882405979807859460143894245503039756796762907654902740656340821985916819716554444845306561788704264939045940672496899909382817450386976589082301183199961271205157805288873191047396834147200220294117891876366111768710300008367154588740411745576408866615704911586412146147586148626266566332963270695455439401958902121532226601630229653170551740838901247969671074339384108365229694943276063480724282644991839321046210470481216117562757949918140401194410494701028568173827987599579975194745923834619216342392465485669009855483393699441950494985414256581872119675973778100085837334306281448182811666435760496029845500499593526218506672545298838974313576132113289174581428719792827318151168421019831250029996290143966484185703942921716456126490668110139322163823683888460116596433988445713870634955591173377812522670510605070308775276235531911480761307873129141511287686989843715009253083090075248265964277551577196272829323494160442026286826422431919251753702736393556035206638617244053267302186055156725063520286930142693247198120538086902382811429570826640554892768915326728586692477468685854564150791835306102837820429239317865886686072409034497786209329767584235370307793798566612891617181166167536764845414261601582950688117954106244614754189982485559956190657108431220966228771653652311437971579269447421635746199036124135385259832722036163170393013348312011198627764769820212258491394548844101496153663289696401592156701363479015217478036602126132769429217432220429559520461281224946283496833177850202878587004396966200243404010346253437779332400292914284444656940775025285438248204664952219872422917805385805881144458718738097306228394360493398608356109385836899623287682505080166182957363835561733746259702082051750986731390724753379418776753759997518669454577693881450539100346197600718996208894876733435254716351493372267807554481622261373254127712110558777400363836987713830673029411337174486433384933054564433798219519196234115192164167835482818266118034261782150643491402823562303601207679088272262640879365970281754311784465386525386361310097402878121454570374177331086661324838899184005961720826299116135604637002921444780308207183505367596450743672228503144117676025977691477137063348123848018126941366573665877576652056526959301198410401703373048979964804407027950002893260446599118725769754347275018350991831129368595506364574211743351634853119977174373273713665593848731051544663070157922151607272815257735647611110134228124156411133836478645801213265112646409789024503713821620371408870887983303551282732707999657706088493287472558420865292140350235185507054526246293090391009705011099808090575978142572779897446507871088704688308092590522109963926124626250156840151229049434015646205165084995069274426982069248424427610724760909660204731335394466555710974231135852054082192340777318148221843075720575451806728663342365135745494512632569433119377368454717295414087763346301769317846152305696605852636284686152444313149496124171415039946379981916206291563243657307408831217341029213693176871127149440273898849259206494930799715250393752617245906367538933791082862579951255027514939913540761224200205581402421035870756198747262690941804397544116882969003876728501573851465764895099526990768277862288449015505800487096895876663778791229580124334773279901947370603337813065463533432341357908649681692952478937211912962421117687006621761841331320757002898887818734491553021664664566859817866948739838062097282374432863922255132423757461640978266432906239255938428582806788785788210596349223149833182130069831029527625489591109376191653189704436496108001141136635839151474147682906188562085667414045061104074689051145470855276126445834206375183900562887652119795512455058238165954139222257474015371439911006083731260192970659590807673929326282615756954326461954590970925527470120549985182301182524430325359855532223037131839806258024630908214617676057771365763357761004003850467393549263671533026883960807244024819697862236029274744731895600750010540882040522156632322427388620597126376618692541975018053987416215648979199382194963965597101454857787270853091178848964589463652816743216331056776430888378054077183777656391310032385658589265115003994426100412502616879280787771215194084507988555295831095162429559091317950212171493404570462361304600173360753747710703055778223852782645558470901685724587574895111891691817508075091368303366332968546704296121857476793889991788242347582409998841347974854723194013840552123528568874925405983169356255582888379164806253010488137714119692652367146950760701031864020477222449077989172999684982997250888407550887149448180373936893452013928190306354859336978548325389982397767852878299964782806757154954072877682698630145425206383138333775446320118192341933461965227019691488132404743207121186133694577367507439517298996326915628299251353815002090861615474130066386831893846506498004394656755766530873469665227159191650046733553874457157139423493712352047929415053343914841370450086143303671692369225861437394089379623105459622551537203912437042991666519329191863857144594473628589957248131313816902777838930454545489278571616251738958525565786878631700385784526789536957841949825475322156251447301504603162503275650480089801448286548099567170649634102198063744134587078347613436625847383663172007588824693499516798585859732312344270176444450517013659994348550501893484758564893992471494801193459333412667576468688108314357360523296307019740224799613902610110790297435326270897954848402610665259020567948097412242740423714194103772522161111049457334676040982071610312546763466928525692058358264035951766104080321357954357770782643639361907187703039651425514885047025847648432607565075246222658978580063532150284366136867430000827352076437095308689595977850180596926610896654888875059217015685728504231662755206008800322958755518101709671963819846256428300364726874896551499697475489295372498746268606928602616090168923565075611812274028677056189391485360210990836511188531250772394838279667756579522449407026935105253563227690774996352713692931037044564052137078953267082789756246501889694151405972500974224009752869951476281843451726264836990125785855695964446682740945525197050211510753158152748275496036284097506224991553490317022320494437813130265089603267642185532534670102277658865041379709248728872791347560656526569216196454004147900416289049787153284482605553943711633215829339576493508047080937152928184681794296665308677896131212130668376835848303615271921648682246967771545321386650029307348145954638371062170391356187451949740347154112048142004516238312277586562938416263503726201563578179053195538242636045551612032852639546547044694661061380705884155689718118655697344064404625522453263646298476011772181022241236082764199310705008169112470047108545922698848616297799768100098611607722816956217435096472922013842250191365182645475432050865716503682482364178991162817154096255960975138935168888622284366708826152056569290221347486193800223907096796334895438123663007244309779340979818156610109998847715596226978572478712042236779198884536335548116028400976529389424592443849327933964566576627832139340640834175095725749443181003773787915956184211788651700003128685392506777409404900717703407219326544976915447172905112075377830386591503498088808509665754441014174090338427225144523947518097189859598877533551693009651217752290542918343558805784854864756476096770321508982212887746335684330913470721038427619788240014678267324341202398504782977264656354448122870308483063257672847148420727068927017701199944726793141476298848197192485259774138888928259963607070113702775510667062948622870401195590389291314608118046036637630498536281700954063106918610755275679123553295988113911262505588818481153595875110037127896324899936713234173716960565431572691355159245322955370668825655480297844519941983539651304861798870128651796994542441185715133864908133814376689554275147000967074348963954578370176472919346065886632606000652387954628302563175905591919876116042408891654474840607100293917617160361355537394971786787454207952702388260819059939635457135610979861511902120117798752905513496136690302383572425152458951043619005493912733636853009470024945239119960618098632843235443203300628435761432647769952607043912322293400991886113241216654099897906761293216638558229369219328078370031174069655718915246928356126414585964798371833279111027151287693330740811094970653946349302536100556391366761455735414488923108431090805933239635024131073901642318053008169508825977262974377348984371539588248487421726687859800463201399784185704380911692487726296244225035177842305155569698741840789608824190251578294408028887355320264964617716185787697750612520390883896880578773413637175943986686614658177532761568366438968065178438373959147903850197290770518476650778902864170014034221115285310218018039568435925036188907418821428710354673995710310837586446291510690914586465064967090589790692170880650233497648617644871880377503261716836111392013975763155932693851322630293723406360447287474432191887318446090016396581694266000641681714427106852511659345599548183823840240716043946807998813896273933836255867227987971427611770401620336012138779235285337834186881327735984708346072668102250108716108584267011327555987913534146845950186901754662144847679376248326733089582601343820721045368158928816626711155237810656605876174379981382429020449303683394811562551797629993344707700884210371585036553293209643212102785756292975350810248686620104814762437140755914169557051589528474609820995643921265573851068405397874783185693595884975616880077784765083552878054661213509063967850715495630548148126965693931850540184357229323361372433227508948028736478963998774116675229234825456653063435033961008531938730829183056819978620981327861019640938653143948131451567968358220839138808323214471562616544821873712980858251355665225364242525649329025107885077154640327330721547075883710396370550125800864503897838061160786120629597008332738542310046178588890772936937402004539590932016331279215418573708691487155248188430423943143241392832229021061376578142632816704843282395272753727876203981471371291297048096098926125874258559673489777705403378210634136237186294002021428220915240634167169926952334687373888293717196938329472534423689047003893909881449147771851721164068025130096707941513458826959052741522180715429125053225031472846329294202792001276767663151308618830200116880126046688609322776906988590436085301609390770001176397126753105161543454243525356927368732967415443567589353246315497594053797128056026993835501002159405595746319592075218175003382630261242974532629928730900059555130644071905197707325702145125594318795232208061592465753102723889324760297346639429549785747935069222330739691601204836176221579017562108313542471469275211441032520283972337343186476748756904955720129558339083242312331878594939574590705901430447450725777534123279539803427386320758887001607850723760384324165378008012090788919532300485366209090930190298290373738127252655249044709552833326589419874415375828927668452720866950193891145553776329120121108972672572536624251702177151617169817392858780383297645914939090041497325790008771996980370839452126227453288494253238573774822655762506473521856299859719776326853994467757864853603800392333910236874179017899175514994947413112038904675693850853150086552351779362692842774894490851669608608421062588230605148036422205077439270125466582473250425371770234511432795282093875164191319051058250939441647723392497370827630503165684078966761306998672815714485798303416615098649001971273557303714659611528098295029250237635403933356444454370799588236258139341583582557067240898649927688828765383152691090658210539296146205317602499774693167484353042374554974359314871027659207444508788973190427582797084049688115486525058885377955724879823328614639095126486772863945820898562550308511467900375298394366265558975316053050658302344258182340829907325926423347393490643149042454953389052585830761556967497083928802565034341503309525263397886162935060951078205428814256981159325225833497645679918800957938309584797374499802001881413980916524680717609897469648441329868383768931973426905234019626640317450590606661707737461095858224462357562474001335422141235090875909676929176934759892275529754931164666198379307761356795842000462293241448345963565778619729294268903183292665111511054459285881990678469909126438125321989872401358615532310050434946006616138529548475899275442279915805642595658461990934546541563465228430834016526379580059010139542789628666595766073591111899277577620767388269097800909775850822794430281640077120171240417855564321834660633179654260490894183981866854330599343600013595493586346464750441515975062491744517108243803322954288333082424567169184054388295951667655271250041532528501579445452012813697247494155002867779771512564478452637319744151995697789015329429094403359297750936968045054806052740344032956823689016027214107132334588525916016330216501307469372666447660795153586066936648172934379717465150889703442645597390569596772281386684413025187042764983297760274318854756952996031633180158941804322631213302798365871979614480538658706839756556152317597979615009803133513362554147033430852914365091356097532958322371535580501171176284527567263604811992248726279667083990139396873384645264316956435289449894871414355059786809377386359931298466521049760236709830673820616549070485861928262725960582040163209869538360350977775100886361089698001256646659001802904739188162919742750714424829261653412147461933257980044866458232332835935377661803690706431046907166480304105263094126604278834325771901063418987996943090244741499211428978164941482835349780747317941371064432490023474630380474857540073390821696930833363542806858986176632782343544196902213201215586826727624721824523519782402634214991343756050817260952989516095757884375640816811542040393525479691253012472407297956332986440595743024058566036077191621827760153999863346473839183451865851451520129627914277205590039946923786073334820243718515187569213285712169761445404880088665176106918749996692618474521185255494854161086206445067416056661368068731614209603955492509184863099027015343138083381861450653850607975841461734453360141056245893340703674620653002925667763019374814319066567462889352331807927546385354244987466865719882528370231465006967865230792827237956816976294293136387515441651169432688520645372214450648478671821869329139259922594931389830889400871434886387126414130675833099072283671434396019168826594008751102373660990643352815843847973603791803784471155547510182716152131310962824871108959008659659015654176296303479288130012082827968488208120107911090225016608512384749106314501104577604959687340343108443418962127044869225250056667021291426725379683891436580348986228260694786431584634445826968066215266005820504340207370873199919206804509570047362965601148005377081703074529354423226216610895313495094781506224877893999008514737213000330430273241770163957216795874218406709284672314584287954822294531363367314249335968682653003749183287262889532828062915844347093002043680021961498117002672543432309835022956336138956124697670606974807450272552522792346099860302321793241930135900857438508984511377715810304164456360778254821534901007092691315755845960607913909834968752797640523933896015803715149603234997851904967581701346836690683086856746534744630417672050828177474888683393230196814723697396734214507496451394371669750771297659237210242925920545010822366775016949540523104313027649193839844265265598024813870106282617564485115969894693628033123556151994326976457163805420236056570607666363275679007423979196552988462539737326145404550495140241526546528055091429198036725213068990071242620495885821467652758934999737873109904666866331403043296682743911493423134489321853985596455414877912539502915779042944892985348976883426065222928916355573173440309097780543295736154625428138286556935935654390031853254055983868911678909829316627801097465622846989116415224081449096935988978247368591488088881717895169418037569529998275911175208414934009186195083129489907254116806626919988601684992616943943377832383977242763956083279175143561554112049258866441123446923886964116080124060526402038427981305614302844965719643102373357014620734305887243059781784623663825782685416315409681689248937375903731256830964418657895403265236759817000072866921162976045405361133991234369955032051625103088486530535777848533008556321186530991211044451698869292786449920879035622994794587968463548219734918584100905132805935067125716774201740723016308900248590767782623401084005140927181788214048364642501858499526043341982650207485689369785741179145139121103200835156209431166784557276241401570504835279019047894484871963227816884510294903296506012480323730255208607534634457785948404072417547587034199067376603106795070418909313328519106733713362236925284227697664954276087316249469586800427383840549032432814181541725020164153221929621756256268015377634461395485550896026999885212435338344650824405268163216936872544805761124683933268160093826832979587978280863547693271139792924324072140909971796984918000202905344367858917714791520522990868500266589397742257353212725588544665361306746148204043663418592117029875549125652467147908449892741776863974142708895722047036154107208793361746867494022303109412191366708390208898773893403625046456098093913850295696599528331910865440363319885284696637259067671457758097974462813577045716134586577311899295042369699092668760092613220047076432474716577177172494660721160538951965433879228021496328106503519264736692584331141797788403800629554230873556477265210236991456369561488611408788124655779152468389272142389503333551680891645758872402335615504667373820189498594396431046541073597242897121326987540681981506422607627924365575491374756334016751848513459284435358862923876154603454690997146139216457888378359724858074534639766664054049307941566962776739351161344112506946388137501435047858138793299823242605062483777287123858488186904358236087801040788749606004556443282080563591281469072678334279941383766582399938760268478603403406032480209555518795830135899165386197126052183148663141964364298765294486273602075188669975407822522018419854540896466760434765994053366894200251843248564996443070032590673334564622900177091657102736583179804828556002604196652277219825125424185697490766160056308662862708758423695998873435099164064082867604126829453185865660727877852506682176847945713702649994838275161631744782739801840021675887730745027434948986591701545299927516686867015379358890808578797410039428800303923161551180043995950385796753755732886221102613102459152594642064566024719960470560569594998249465727295309737615199624135556375439015315416708370253455176320192873752693561175377226783752981602930219756414513842691075882641903041428211278159112017591461678298552059261075100348320561688823680007183555151600447860981188045940878250419927376487543102535192706526378387695003027019438056421186642018015430458823337393947223121567828086538323391256892054655164322443891088487446845050402378454248276129834915072562152600750615381034484298919607371440072708777523511153404643996191797210419522416721886309482903740243495791991499174726205972035182771481966386589032521125732956024819239089309331852832967475526655095106806950922686083837416700338354653864219103092562828542041681657704066347995561059301525869743303556569280214588708261078366920855418030244424597017385804613068138266092057055259329847730825206628937252874428479771069791130332924037525482713392299403201240351565843317831721070009835709856162795104594559879277475439836863744666708250134430809172080438193302520184029851320417195837419088363689633087319310962439791947726168013051743418451179366616055845016897205335137442727710403793631026518162161379871692642183794462088313590967403708787644103903613691746687505871816957808025660043090865651815280023420663828738209653475563114894941804652407091899823652008628222564544131494629725390266133157967444920536595190906863765831290684452398983322826427272827176130298795377710240347972011669010311970405178133414632247880626561145179326010266145668257200771433336543524865445299595964176918834036596316177865013161621782414859318893288634521993536015145630043745079902808547241982009271252815462311016569085482210653470015993710593119171990492379624379987065707491545690007241327421121603508275549319222078733831166900309821811161155771415034476634981683315998462809703306864971001824763082519985939654917356134625134132513757942655252186545463173783676512384130413960551987578738250325664574393934587394670773550358701631525646034284806686755987561105153485495481320054530047861599753272899856299772377246964307023655761947970146641962418987990834421279560589180377853929454768779444677045590252158942278685975243714972250595689559767686172977930931117455350451661952893992380922351713269220218699516533571920495629569142272231584937161176157337348116229721309317494208471160516142003542141590831076801095873367688252074460454287469312166517549801839589179305970468492437977558682051630087774168152555179237882335288696386950620028873682147191106052834677508525618203533601253721840381738532789810193396198513952702668515135173285322627090914135768174480886835670981240707218414737485731129824342127153803463586283861697524079569631625782819815066355956064226641742710697975312035403338896864852644969773250899597038420228666112713540043131379265501440537511821299222052102952530680782250584722108350841375309886334492216351984507169295440335348417920792417046016234107670456332897170597174707879913276867113651967314935258053835212888783605267516446211147290072102171135678485415071115698427292073152242193522115166843952308330522047719950128528409715554918724112776477646776615572683433202211631880804041385098950725572896597844751265055695341132619110999156937041528844181448676199204272177693285476928143391139001016790818953960512125626852300395181259823666756108491036236958970671161933145333323544203819365380963252557818671861640029466440299384228483481962871955841452526832170758591673870138264608732273535008733061365695196358150857348980902452694758206550221772514376783857523450592995704948656495149339551186115692022777409796803647793787472342413835130670080173465847055845109461113690815081050226078359786764526411458931146500410247375597482562800216462985650630133514259721467398122438937219686924632957753066889545886610532324572995289622447345149472331417080098754446554298702419418646489697625914370902982378858992607912974960516641560659206772381619199773781898333758169110931596311420331106443345747261385121740675761904204132977918680484155954844429347872455337556626473776591036577483416726591021282864427576343055395420779707006137995901835647455562595372029868686031363697862019820605620315563108153778354625840314405185739612469106436412098966370337868518081032043598564495200968176405939968740714910093817802518846392737977400356006923448028325622476057125336137466271201845063227133160112111748049286729616769287200247937167455240513319212845293177514485075341472947859089898739613422764795006351668537605127157558521459176331229806049167628256728423028948598026453656779003641549378618114618075895702826657303862853381463415186208575818843916298853911744693888825188145622609060447200126557366521335194027161237690238532396024323203475858843462597594429294191530060084354851349178584403629418677796225115814129510183162457257782290369319324557839947440639863400624881089029364730393386644828537044824489373972227798201144453953440531586845482457803372595581717471040932242272009807412623186386399335591748208433399971459402124392685548170547212473457468933277248518814894430162812712951125469687588952626910966363052188827424395793502552737466233571523047730611185705143579083591795716352906345780381370302198536174523803335466569718441997939202086760776778109393627182957306904900477361470063835116649003141986624292119122685977230395702119198298124230829526126325531918268632747492155428129035599512230271715594053637858174319565853172840638915885317805242159521036819542276947431282130085536090349460101059869160444564813389470430386242384264288725303864261709663820335590622200935908878248180070097859808680928140353409527695539760623556318771171118384437352742009474700001341544984729990471436716243447460679738706632524370819902134786827420412664342912843933491501604741488454550316887902098160381355707178865577763380287695232819504540473644820708157495276523744592971503803081588713459213115024984128285050577905186505207440832037411706919358790331135442474387859935212745329300959365765294137799703117025888828098032363255337055261667476242162895578558908997597160504238885014280288190582429475427403675912172502501875795694310559959591174309962205567836686173294239183081852822398040847587740926436398647674068958017306497724653775221350303083973595753749510308580696005117767078499685948253763928537986332179586500694421086096394489093185724263643477235484253329953864502862401937148658276312172461281511423599689911222447313624013504586997123061979593193828345379373812736047685706306587254680901113790647677998080519986244407949213056397077281189041434488873503702613003222361082603488099625641476922370447770355675861707669978184319744981696748367700749115276984004823106733831782144326181242213316570171202293664450437618421546062045129828414670627539517933345737024434669257210039801682318817155955545464461268307740939913255086699925538113998845427212195149932935761322787833786382818297487314191265665913363168188844069899771720412863488044003442624856099599562481082939410302618445212092881949252403723922746164106279274436263152466387080240067771382084564854603280657382507163519168471697094311860069556557376642984089726602474589313118497581248246430409834782674954008023896069360202191916293344535559279853251293061834919333711894013452174354615173292749553874060880264867152360174322128759211563478744610678754301909462333136784498974393205076335861553404921017700417041382882207574857391589254409544199995959109614786045187796185008557688639227192333744782698891328501244069596250664520151495782010326950233538688022012900923025404112114591967984563337108691165547066750748731075097815473971627645366391760750463242782000585476996598088113558400378098346764789970576459451597987551616302023297073932910957896071496546162228546334110410640942556642982235314447175774948811801941997211356932169533830622198578275182072351651660343488600690264097784093528706781064167609314374228209379275234422480628868127568681348946612798854806424650354167519952928619022094369175238401430179112931561614577777818667916244992208209350855543555318884423930776209012425613859147855856040290186477952816074475890072904891519280344450602083364739276654355680079258325228081503611813167367294794165796839654739231092392226164634897631417292594657609053760705088576488343794183426694715040855541005862977772507116489848467518629559586011613349220179707230957205638254636864251765574252034736586668023784226690069865358883936258763500962178134279009588989227452466624063065830523533001571427742022537127029713719419091569586246997775902523309336599162557971418441917451999337731782061065309205403125726840557487144796311080704557473039081678108947110201516081766446458727871009772912389421677877720175318481906599767470967402308359760872110462909070585377570483876772195429908704147831043191541490116293727540698069743525575611845008611789884312544089046011688893551766845043855839106366963759508757765071473286189941052007137474224520420402455982611179878270768116222713280577678953636418596178598324614221213229089193736679950689300757378526229678679189665801514426899206444423572589730987195201599300548600569129344174387490895506367096863915576059055845969079612626031017803742644792538232452168990492015535895725534940736221686887532615155421395545014878096363245547842055210296827965499851581213680770436640469608890853864306458966118495812321819432779655821692998983028184112986175376738798395803536264661070863093721050986456093984101506974085684210838094412245517124128740241162099997693623846828456282147847140274658584047270131168032880867112655565227457012172481660499701379980056295507306237246762811946619015628024138413870704324801091579131940707373034312352087616435463495889965046333491486627542700402887378686818544416523912800109186626587299868778097034189347452640698989133226898365389692512147779117886008424318398466457268462472006080304879028509147150509668493538246363951461375457902711324323554483490968557881521058696428577693705548340499060664941593390934568246214071851350558282287168096553193259873462313942240590092641964802068375359470979887470861807830403968851112045034995044499113825854739611051210346489728182480998577097174815644553162952846525775774414816985055150850922718866520275475178797692440532608348808169864518180951932460932393235405375120982593618872045866824839168508970747833523000020082294944145762728699011999258429318898627603676279655688853005575312898742034055844049789979734434840287749860918554655747123025028817739317563474185658298614083361461592585355733975709366811218562346999607820828124074059375422274041029794137927977405812653550842298613492288608156395365223481262356033178594520334766866296920905133982663659230160281773268705819245428360482417379407568638887876951716423479505047069063837131695704109278076436922121041615713628214780731566455332037612857020938408441649587509900263363533299848579480307710879587901973287117820291083643527268851918060273711003326561208047930291601140070140237814515579827934853813439336442854052231413036623318893543508708841646186961468453810132780474298491219003866476202261385048086490299690397644049856690399687313384067184597857279085191150004552776324864484606137456671177637244986001063753754006411145297729794958652902553003531550731901890166172094166668838463158635269015838294536663605098554811133409935058405061220270695940786115828649187308757232316316877494891398351365133269140084548975150877144733571335404606665648542991429128806186631186183590624975069271650875455667277478112415005323513804036830588567557958203530501598453528521536160914728283751103349467870920806413704892131628133239674223204657868555396430219336935772337712512378058267254256144497214476612253288970431363000361088447585469891910874249646160133146495820246739912223564779540752646360975836500387399398066885614507619158543044976646723669822545183851783241172352280319800601842228092729495826130716822921558532087371045799669585328863095533658502562367452451916073587841554950915097838960606424511513057403636122678496873162977692114535679170813063636278245412112718273371676496264834660623608396499179595936158989521811438652558195484518440095318036049942167161222102053053983468030817137641207479129647359427704455693924830327784213215060007694571382187889553878942665425160993051854345112485004445597887024086124972508771939867458309057322148275273982855342424705851402335200214088978667655801222165699191749076011898207904167223682999042433843221939334908032522656442768132555586254551424814961504522045443087141600125233083041237844813547495551782823622667929589398860079043510560594324967003617049817965883329614248272985942072187423517274000967682860066644384396904204240974665690279553545792902191989121904427074063534814943251280873352299167572966559689190681455690657345396540948182324735977908794587001571640144583190427778258924866593165008097910395730652029673862647517850304205649354326135915112500893873582703709544497683947447253637519404205254591633322545824333652900475973173834386906972466471883555960224724769758356527722157474242992658485800840814868410367992432964335686357969129138131468960614633566527840914169698548950851277302598568777427958491349953130129030866270092126479801958048299339124057365283780765344895326153868335006081401672301575522243754829019490867758393221372075419972501359452040173110360106968942766594274747960801776257107573197340596537447968097890548600120594237267697893655704138035798140270623395739653635072885558514008253756653013481166115001229185743832170207220951228171166841644305398596641557155561459572456707856230032491614845590369632512609932056019049799680006821194990580727068327753552359034214306657978105981334630567283786237136943009606591411013328093373757985668688216992043117600107569068788991803637015151799038367230112694952684164356677479963130664998763278783317939174793403316599146437860282150588850015975489384686483506852911553312412434246683326108458869630211433298671316163275719017062479409494694032575605769211809582838353997847561214393214016495420620413187566082855906233787960173413139812076043915803370747491133835564328478371727396931203961802431896543048064601043583420981205171347271918387979552938437739428416344683757897518349309812508682835780438640965435873186674448855575572686764482443235565554253406975021278276735999970442062275010300015311811795634011182230749169849264668069971743535497431533386664947353374118851067838839463430972843349978378847651699324496548727592262428959277926140387046967691826411867136390118450364227094373191924664050263618529992776880337298859193648591799119365846427089202203830130136206502046080191015352415684938268264960724453969052636150188988279516788019055930031736639890224920509565285572789379112777584344378178859909463695507048983404306359360688054557479475501551009853155531877929261624745995310626542676651206313944077482065794481395690978205672042824672873658751443996855041096843469229024953266534326448914719488941726930297496574769534174224964946160824985876024087770626929522474608862297484860497341081865227018652718433153602993697367021374059297097308679854567547031039212148468241432119562237646186060841748441421843345935084844730772045918986775901833823398793427670028522205874796941201491759017567205760068288207573719149282654121704284526668606588515164242186775254696301567012816217187198744240466367456278222787025367023695845075374130721961637276539984817400476701094246125841229188333551482550279091537851091606722395349100661894157459513121238843990803417103520022022129659216530427105601774338077860688221405736188273515776859662515309879587990901043077472447588606408524650704813854527280265709974746561011395520202895191538114198370385179765799534128170526631886817235123689295282758952667959707003637540468639210212349796162400565136066483458638282506767918060937045182774573407541634651985526295458292706973797947310705519883391271974519237649895294502617927178459205224671544392758701074720583525229918642099509863662531704019166367744309908229617067002421160825501486178477735850716345484966642065214877798273475316304975108389198028978504954581298037597104433713566117991933923598249035440698884380302741978700495242055769086887897728455534147375089445263801225479202169370269218107388484865050360097901441420503872162757403522430576029412482954354514241543599543632222640249191130744978995036751749546194114896830487098249956884261878934372545365814807156990287836776818079979605012494038584509614554337856496916236413795343647130374842690669001512157167306464580000213668304336410789243063254763644126213586449894454741225808577858132266647867149137676330187153495449936137167620934644010968489442922475340837802160092229549552468024703415573622595185942869561911369073306107670841030705744919247690478374510294276854076073753011778697863014577290971372581075537478015934968703005584591047872878715954559196699567360856539352903435180356060301029878588423578509825110171641326056138536588368994791560326927278332952733831776688609817300624439541458726335455530687093513441374615229446747171977179291909936274022997535200964331096937402123474838403602174900188931787529177314470677537983473499667624074873473433777809770869672552706773459103718237387021517779206353274273114781691068423379803568909218163789966944257625618441340389499712448104980873962368463621804859946302538435754840797184793464699091523726251619600352395825648943580507403439973422444131822470303823228873921130965653786613305572513415144456205804230394285329159001033231609865519856733185608865447073727214977318722871523472198357506382000729429951709765549930110347022033979220633454180044140538421009992542481065934309000485498409925254151894333631390496944772849264022191524398111157147401170367201901751109409179997410639097830040981628983333195543970147659517393896253506099281875414416969561465565873873464797915880290498943300700869466022013400279804124698756802409669231013356162254898239554777511844387992973250484312521689575238712242671812223161909356790276780836969396384470665450684528225380681140031939711599109999813122979126564644021969134864136092954795132484911173104145086334954533181823249806975830699486400853279736324607274374635426573932236496555535131440161223427194934583090449511895425423525974453003628405872782619903231919094050634570740535136111532225782468426798048408666965559041169894045926548881218832697187370837109363487061163313715846736366562296817748377003015360901183623710988943183309424394155223088297462548285225175532064778359418005281960384863180105134317235480072495889185627060518594505436501552614266436127547234426000185783824617644760935564085686889543890965116710920322603126318752708403195140719909693976032450981160298862052770254803285836719493442679779466079330048635479340159641680378177775354147809567682685923897399923273070789146182168663735123511775779372273167945320398370129897237644637793799653452822857755445800626326264399641634144125021385514074024798757570948727281157425565863642482389795039393231505734108058142552606609375535934610425283738640305350359746477088445310591064611132677124591373108467491182433276357628823063543521405816265091340245377365971995302598713324387761447471998448084769529782808654591111300837066671159237950841845463725200393143875537910171076406076264623350056811170473735231537635300851996573871525498548928230324455757667596426090360118077954066153788364967494714599087831452127356428873383159431737573765080072095495122668400119208543847524118687706213569235548702027111724086807299593060243861039354108855812488541478614799657439028901206272282450054968758386931777290970814428825029240584084280435223006718175271234760558003932638642866888693353866548946701159279011161777813798841439052794012308116220682585761052310684206721692134848663120211474448648060236172039557145691944229502200264992204560129282258510356840200455341683530545722917597808972298502055705581012109433630952810439720261336182480474821788390270223062008519695287127601686622375911118982061093842971260322206418291148182839992061590732476779597944538284497838351949650005809496934633812510035598599020619901767973269699519729144145228305749233030138309316477039693557476023660699176394342173945910808056832225268959086685617228630284273779482484720967798848184695869488456535237680504361754406658737215999679038920750741190228428574844817280983083749288798127039877713507705438661896428283285158040468494383236621886722417612722392273268254208941273943185587716587036379118760308282637290824313956471404013669761568744513621914450111606069023279030461975936911456013349789576472509712519795652280033293740222776446280119904718866237896135441936744353709692898670914143470651101425254983134408545804277575704930837104229483051913428382214566994918571656053773080132467305977400067183416774974996799032456148634849885133108671383969518294612743671161219716903882995512595053509940098708093372705123900752504303809810789105092765630725091965535903347590324544448944772955268012751129664632824437975312387418326368004345319519861166325761514797744826391911637683946445102742279224589198256078497094468380670399444313677379786975345621443810031338095087994250070971758275267607019323362442102405744121946994770608597129307914898671684960583866324925879590975760385507245833343372282720628748470356992569876271366706563890036807806339627014444354176126838559966400182528059808921770266736328399567636122744114531012743048135009812136476249594866557051029334367076295594654104916226178072170844789491456205517721658452967956318844347199401798259678585268701054843577167330754251369494160543200229519511279097583628854500040548594223418567114481410986391664954898519709845207930403894538374537677612354784259424183776083347428966885325880069330961183423990890760621127774523605564250931206812461944923338536857891127899376114492613996132081464593740444235533735950309164173336849612290827582869006826510319472540478081568871744479993261468634437982237291091347648036288824656581738352518701115277030430226270820270163984276926045287475294368714718477110637042854456838854088390786628003467901140336334435119968280660834316631824301561181908955409803996683175515623918155173014016562196589967061036018465653644886546146464047427414671708134641037362902826476314627489509923504012328105335216320303352585902913181966991022939220049191857188255140994828083080186003606971618502602935142994434471301054620257221043120154025230006921784409713093952367193531362538416702873934280411085934434473682802065845078841327139484457074452494361861619925369620857160242113018627804849442974356160982854287653418287615812326005114942261854918262865874001758654231925792153643507136339762221495309051282239963636853984432350652786831860932188229122792989399950376828472039384359002245611301330059037466024997556658319469994107985311007845333088724137571254714272496844918425100649436572362255416256885391556620068035763615054595197618744936460451459864056883526111282243976601238527799405634148885440143537615556459840320690361463916702942884394211858688912724428031319375268588468397647968354972545956454537875639821778543929893877073908669623528486907923211895333625519435159344700360935997292980814572070888847721614179541548961212968635999019554734151729206268956246823074119448805338475746943961144054180437126324657962217740096089535293961910467092979749888537642791591650303824648302918073883389657787554111037738250576973726769829543516730801772859033068396488435571162430669432816496516564977955186524367235980226049208181215793485862474887713980211841187320943464788358462115409570066159316271231976338870814610298949576107246957128292037707638609742529871053366223366438928018416724554811532094004227911576606959952657556386911822308616344123942025503531515417580211204073829263313148177705101639408743465258616471409521732983289946010760045671320903526622447914950229820349558627732359978268445466651961148189908429471031665792122640875143821935950366949932210001683739940222070214087891927305042941009677890625072119406905373191234818342257124476637164394972363330728214664028407668716705993333821868946214699592581987272084391989159213027774067767837650320703707169806773005213386262365296598115126368450254912561969542447879169674461213838388643334643130738086801250564767518729592748950712412335798016193199193571310340795694976164639135159333703252050620133759874605798053063825725623302359776009811087778387784491506620500461544392284072394258307968377013083406140820202689168864251575448450083607010562437752181544021659943472067286414169720097703821010717658739732472026868547315831381639377125786372569983021444501325821192084783120502457919786228171611160105278850826095858195110776358323853795433485057699459028590225843955974699410320601305911779453252700160531423031079422788492018532313191077450860633819945394618437808429855906087460744489508454780359689512749118672504083627114701110894557425098377168912876739084674266331578708028431469147031219658046807978522407748698461199889108161974901527061169875427544139623394819383526325978655954749028110517297581932279820065627572580797500535147315288555379001193265626777305736945263460170837233854876590946057373793130184146579025176794545466507792305351224747703481836694043642823258543186531443530892282294662262271207549342947393436430727167734470921939035843781100273162292293385058183404668415539614404878025514173599351509942787618801397718524252799557585907929246503448562423515879827333810763593971180103298927611335170533481981608424701068641701288026800890648014571764182318135705784575347113366202402027027277185950869032949970564412892060878127536692713361311843737739901138226376969415712404974038141008457382600037644077847891258490194989388937294050162475019166192971287372460161330383078780030055901437890522839404832539477093562280865913022271139533519201051146351195564937889880892918950073784014818509223476263361651837972988514411391344123975953469698004953683266693226259591871161845253387255156718617997739531560470157488123345090767654131000055667817518772371291044089160290416476087658072239477538657511657610227863741476069904121564141640211504569902741345419133575857199024950183437910496596960520968103844397116939052975812084360526841245685439833689481459381005680608160984650890207854150250087177393674555745523907745577929480525110082353654148945170526661574276095793616208724300698831690300150691788485568496244740616179919159404620228792918770733836675093419579058167318107430430601221930879711826686044844840356988305697194330172758246925305963110170495409292843146205299372658995002974918064698380912750787360383676896990420890693014060190942742297436307266001983683581886407052480058560783962866001718949899625372659568763786298459075787589489451889959794070982489485652279045689701143554136620369130583465600031983497941267272978808801475840246341659231725146479903407133458578622912460446502464065639322359056800620833368085568987026971243821590415825546828157596906427491319457236806752960637742141553760434859763833593650802897704517015169761395911965004858528630978547954828916757297322631582117364111208573865366622091240454759424866432719016877662549163641245824028399193916739028182470249271498816878037277002539865384804545830335401252088727246462901205043125855915170894421043568271222884050514243163072290755389036434859512548869666840025260049568993694424492971419665176064693246708716801145058695323449726102425708562633075789676311628661317890301829117578640211086348358513035004351441589729001378921458082631562209721542692455402674948412983885383336067672462433627289935455780450411227648315373305550898230118728937543406522035683025318061725255414490979421962208848846818768186284028864355488547908590177978050016164653145070660938614201626190561672275538080245424112419357569811688359018956294362711518800244597950108086624999276728995600029930998363846957811968203399119586743600160319462144418370182682994701449397489191879782807037977013970396020209234985546791082557034082537737701854837166964096214810721231867618476592072107669194204447444061939231518845833033301783496402422188202316630385643526914634742118932847543919979102782848504676613615510064054952859757695993349693557604255736406711865404567905525648059077653311768956828359161943110544222295172177145190485528326905563531258319226615481245277346705119563014167816627852265938544921884722064880386446483115898772513966071595792678623539159742144483934446743692232943976670591776727349932285279077243378367690176510944704266556035629663652404029239270805848278633115962089339729925334342525422959880765263296998707812651752404399652547228882619141697397700825045161902009032123715438516673791552561183778816210506567540658830274622418725719267856113221925754348354867724778598196704848651134115807710184306132709220698536192552729772366645368534481950776734676515834283755082069430676337779630931041233783347821620596427160505395552917161843267243655366216641113265362395747092466667848013944413872001132502358500063135293248092649812366431997201301654806426084103452206194535048346366366665729230376569150708545849038221291534966909248185552022756235815430285708732727321068042716912041303312859376326258503425821467725183049144841227351682176422162854230072901645649876011796179389408676495093338699766328809667177800258250005435599099674103026050341426862215252547845811824486751339384665527516467157344626765103046571962757631152021856588293905366307388260330554942558100752565974717547117836218125299861981072124876712133919648455298127604397416308960086680746366583354904824723533989201526708589099293186910621744824886284269510339335633042564192778271486008578334207182956605046717366875329899216160677142121705306150924878136407819799077010897089021521103039476895304452510261972929569792113934801240773523461400398263756870347583685602479653983405709567869910486462639387292170365321074743638242195265926021228611478021845217788899184174291354202513807802154850495882444507676745380271310232123811262434066779076925675684947631844952982888074224852741177862400810536866035296403127835180544848266938814208039442225806814651962344133929831492067164730548677237361776823427999445161119657583675018147927065111153543339556938186025423126062426480689457299433680802003219229521728007124515901579729784886997892940362001141511890032954181907836053620747989309610415150090046619475895778767215899218995305771228780970674574935593327132288684199594409381383873461252606826667898247005947167050033016597988682747698340501826919503759835786528015545923561355500258222822548725288290719195887652642756814172325152289633720289543454395887787735710019584295017663565229717291109439761105867429872159833059807676912395763658033413027227978824399369689378429287676160166927999179227781645011592788135954117816853056887442262711205278098233330505661161223950099759649144396898307007141344053606282577806094672896008449979554473132451594410893723346036289705047571349455073767896094480708548255328005006903954756991412791640300342400230371469559517582267400657022563684712715075058202174557462509790558478225691126726416390265529662475436601961024781049850957626035723677389493331055735579079883763036410520931263821595672432074463822115032603518967025682092556552695220103873119795667454375260076686689827650595417201343257922421899932562484610847991416187534674650242995849151694504967861941427046325988878925223775646204088856361799258440723015254947099115321343659079790546126376374347158999425850581557601486265486015417154839415904985525208917122296219607645403406794359148702394834986000623089139663200690898780103120600619626255819171790803874769106605758998622765573980537183191643803724506698565112701202845827735168247176198252880876877579687972239139361977537940942296990808039212188769482349721831763332571603071896092232565403362692256495236633405734222435944607123221671897022510369417267654148735877864885771841856396039066214807810658740275055215340106309914818609379051700556782890141198252020926446943858768860940304109641811491710474875108744088107687005060617445188935119489850546565801772355473971562355975544201773038786524739898844772698913086692518633254123351296039516790259702923874283555449170868004121427368331012149425719624612538371304150145020665843120459840002458487981792444790270289985596261896538458695121402991977207769578050432905840371197678536278047957785794693129723902964754269832408574862498826102823796347320170937035461970466541261009780831460114941067614676046711196865961067537567390858423062414395237478155694955939091930451650988987117313208259380963187247357991746405372144572729043849276044154479353534083151449124843769029205065975078718585280838145236915324787522313526881683394968423037119467125129108248568872200426635970818351707376563204337267250311126173915140424308915813516388676613664502284787628548591175128550496748096505772490473105180489005074497282079028015601619775652176467699882208216146710764091373332686058561296670590741597523690247664962228028466822856828915243515082514483321383100478655675183256222954364225211621070092514366907812352100573391371905538474391565255968367843000273536350765878835702531751671430046552368843507131632058360241352782568220140222010016922272426956372311721614618532632602219244867815853930023065980550689739120396793414097388882340390139819390190787875585022678548577504790256673437764630172187819991374739557885895935270583876924893696940082427264132578856434889917907753904578732871153708880821025187699428580397067574560949226714362354409510338942965627782554258553093955291341996130180891549348632267063377499849711821901813533523748787465282678352269999963466719392808087729256076190529129554464893460923405388783645961981917416393863480106617111275857440705121082914539510489701334145782411799869926370770515502612631402198045853455328467171275506133388098753225574229795660352168044166633048506401126653665987443972109720480806290507728119825809403927797636344317289668139612485695338133233058007648359870737992609923452101505255836970535934950784629487356290558429031868640324079144030336642847471501776247156738342895078762528058539643122449550548338789024326043305273360922479960264898917099983767744823675037041013589418306453642448260173543650375705309692282721226441300410443006225498044670266024634288750068271360858858784706283016709283195965106698208552352925414390868740341137232643078489562358221925358897158016666275096599584605483766375272755118362288322531081503206032598991017738580966440620436945928167577131974891814384504017248929168365174422913655745055124263483821811522510480011844830572328422383520542394890848210455125179233797313586301852417790257868656688694714207006901937859030692033370394350832215835901566135179351128153518757320277998999431847707017553486619097736345139771448256425228610870913860073942706633105844609690681172645107134354384145085398366482555583568504879843029962723915810966321735722957332002861556232133098356075878475329531906812544370966457183842245147265963158478410690787989638425792073989321891273013294079494274492089721856166053164862471700040274324418245948522990118222847308336256519549911375743169261121568623658006411360243050993025669313929123646142298822052299888306893566043725297231974741672654230618335542553344026864404767284457847995295902847598068512730351214957526838687627107865895292517508033825682072038488817429062037212567030354785448939170009932692158894023614727298648972485570542281652568477698496817102525890381840852555699991309439081453166282533046531985953729620001927741396580132809135505928916054204933834162824343777751013387995729403700284814856957966055402316309912133257202029495868343988253261303090751147772398743082700380821045936711275051319419079997948157905505449889386181278120315929114906137516889387169219002184935033775270638683989671794687531733176076800102438172035844331334575778794315537966712168686982285774646432527972642715553004759789484111742950618773456890551138462580340804694259680382224482947882333644748675526304074086477689971335634904947224527060509095575589451352144183828557845510945133629030601042945268407072616706621413105948474266635058656807507348682228443177193539014142977233543581698183299295459718161996444810011524129763371364354488918278525266249139413893700603209130322679335587405512506728931174977805463528328181492122172446671966685424097485524110813848273996098480136191438091294484416846630249104185401278410000276732444813697312646834189410340440644144404526347128816319960878461345970224368028563045631579553210637677696115203736696446440063068343869027140562020421767852419901323119405254277590766807382394542471496199593757975366605810685471127560324755255768042995157968421952006624084155372816546564232584701793595322874520076336612349133784086694325630471680790200239949854310389065388594314583879650293326297089410992118188245584857269860286104585427633725745388477399916711071286176050057696186468706458047318661301706740240492827383709552047364196722299878546901862864116017932634469628610982549382522620562211422425291981058320398364357085475730986325383218445417369099820610024588712561374368920416979431486454602315955849601043262862153930570157175898130936180236215604709497121734687386500999466245648586079428121296379449910855532000878129979566208452601335875077354937037345874238784904619776620969826610096196553009698339459339821150963047640411803731922129484547319576417818905214661726076680033142456266582998252014392845910194097682005510184073329416304681801228342411038643089843976800363200027253222242579097585331190812227127988751747333623762636624981509792284321036639243883082629410069103679179806258160815716550870533714450029711633650958414053787656997442834995776763746453812540012159704541370203545584696847873574633403780742578304064527241454029091109395773025575556084449881603614782818901078762124705855734973519148680968190431838633594774891842483794532478502991043116572271421911341156646310861562687188956623500484444715666252767825450482055181310034422129400705652445907381249301470323940026023909223924115111752948763806477110997370892746013513922842450331132714608482711351637519390604823569296047872220726332457967562266959662146525089683818344438609754657964506890133945230817270353907739059996258410858250436988870528536042643646936443182732406540671439000618601636948287873413075648577522341264692586870780279679186639728675205243557445342064488836470514155478359567909296888582445594330132563598312061793401116675178576751355590426204589090290064575492661916471927480879342596221819560594939122120748329627653735347380878774176363424081718412344382787149137069187197470416155814645370632057031992477576650306378176637052663854521799328270743067237756838662749013199485302586575530622355253696309220818046172625557105295261660858709361838456221613188207664030541480697187131764139850795768785566393758281733826644065271500173625996699524037945255357166807149120588008144394487591885651982189564073926881264547376535828696760719956942439704423808083109490719682378762233277136392752692138285038332172610021044862490970960903648973610602658455606547460134217699775017835261240880362978999697418312167593688908474409678161027875258743335839583746152484767810211458530656091426646879057608915799911380795866117944148585821484384551788616659490492173335997170625374197333267866937078495469183933711435270718473306675370315431670209404829030343282360811750477557861775361361133394390575649228743052134349521678014593304238820147511713899388798551078349804677041045886922637305952388026291108134701984243318111442471744209905111396247416082660636691679527370946023127744993386049872361037080123579341054811577038968126578812646131206067896219495781185427328338798199906445455922950064339338392421163294094265071476606744797125285721033072658002238321551458772569797150246864553909154171832360503534734162528544239593970178206004479086980297154832255057417663874562738671094872346363051996245511422961307247083491632540048303146146211543533056105838262598836975446748106773522460717789439721257861251500430482772806466571273484387640613640988900340453319209252774636792903256795718022620226446257647066830753582473965020536558014518096767479050996270758626035372108455332532056901561517273866387084641273188138308843974306450835407938519932759192521646764924688229794048382097420798107343190547152650751824242568272902122350551156484560828279527858013637220106245538801952673927425775658700097526582906832148016267554451806225391881544299671338527577451575627179389640825380084412595529627804775484284102505580129829662605759497309918974262619253597789294628317908900731636940420664615387745465203690849674085545187990523759487487596858281450036085232463907342346291066426018718116504834621616771145679936095258872639591714354409619138288185787597719556057879375780431359508793844150638422976503397928510038890909806593254913347078752726903344048748377795905039745874227693232224067534602829878456930208051051335905082720403974638537362537263608628048968247368152398993692345380343163070840937948520561404296378765703334370400278073309446813781595378390071935751556227936479300180214052265512699093523081122413014778102102062499264149903498229452412269731020661036950523594193275214262480689329985080961052162282793101239704245011954315672899890272514181001459164160330061564141841828669247868323707900493967366516046288476092382800578708254738583283495933978341925365513725677237535885479663470671910135009233721066582073759277701678801167852229602504695418415485819666186711301771223525729715539997784910502823223671963737502323259734308898168831839566499439407663136975432468145567857764920732537256306155459083772987230637388446653098797161798910354334802272661412969916203156083686480724654136810327032343269672854808683601061425301016232435841091249593576731987126334965065413490271162357490164541639532682969521396449860698266677929238015249659476442698587485466943929228336940410888474556734277745327422728981411388667524549412219761420620134947838366524043000784624634741342661471901714452294548321506232242933101114362401911390670882698127324230075139529026199120629759256609214266951849277667440938517554005658705578599233357812735264518351674277518895536265807076502955114676719021442355232330284299166423198356341968420111080533244469408186350139048352497599731586093113469338203818507380343772875045598667264190861536769236878086362725348578025601102649531954961219900858012140949324317597396260752648762216305515937731860029398912499886660256466900552850796386326878760700649684769334607316069353221957026028532132374250776009165197658022363330453068370581382378393888812617121579523285454542624690728526683854077872682428410738968958220251670004324223843883674575268654462791586946377427260446669425489580120773279192373799853198701139920190165057215417027880560549086207056129913129593346938447371138567333761873761263012120192277988190832318898717088517136367934390736751137645648067373937863362100755945166428617688844641939263716556532951599483967979277078350523752411269560914528074164981611809185138132986550153766472552337837630511991428314485358606645815882122969589708200524367518667475442985248216787876702644962711108379974877939218433713562192211985681799770990283859392739693478294197591534067090796302217943575645717865205176423640436702253261396178525663970118934929956812099348539668235539953479115123352548284614418845451878092413243775314207115166074585425465212847489530045884083060083644541842056703624825734596839004580313898138396409694291351387194718538460998352792821367409239594491581050558759029648523626177561440236876142498666785518723016579747341136151769686179063884001574395801658499094451157511671623984582705158170902807284512256105271519628350018048893197047916521490826610457675762563169753950427415130807087376683455645084777121729615022256641801066774152815160995141635807261667793399233106209246382594765271031769846294845037768901916664519945365782325468794191222587469215212635692573785286566073052940862332591211299131902903062320997009730678058606805249030022970408639775546655016543092663158991658440331854864590487916021746035946092750711316229245504413170066268087329672861822126515565438018073934336593145168469784819748111240039856680921108626972847620805249090723257867125107799133804653461163316309242667918238831252346082219157822389861955445318562652258808843191566099328726889245150809296287483281303644398099912868460752410704717559751173073381936589550846841226679652530425059544039089438506075953597232787678181177999363619819616875881362576223077704441865502701877223090525839126557756717493485470639239317000622762548036539316813116715891586903249310254934528487004104200755739292782462822492665113894925837102155948154771940874084690300241679212244886531085377471671820199809706355654984859198289774705970857334487004029218253214082063304634218184428917381624911309799557425891915609301006965232378183211461988465869031074631492233100527982836504930845488528066286850344018879785372228148887579263858620167521006965043421016796460184829909889501425797625074857803212628815294369562993396991481167825220591315776481030404347938316989382289995590857315488770526481207833661042058766404998412816920153083113689191862215420407180091528724139373416077684872394334308439176994768180762463296141727413056032210085292663769631672955343668783224486458245937115069284906856816215842826901495980092235218366127592102952233232428183200455973359831605842505934183351579773747556512768662812138782962670219262302697801710008084131120799530685595939738335322528366371695945919580163988215750085957536250277388941495645974211660199636834814107732996567745190054199828220657312602353322326639232632276751217812060980242615166040714305285512216152884733452969488935581627017827886277591299757841472545266776812481543867153471581746253896804716032154662700794807597927055664917150190786167202774487476313516538143196279271609172746995146865192236854903912226071967209544495375808094911067599314171296544802651731005538231459800773151679047734531457212708177073603058478703774754389051272538854480469343965106558901869688749037771780440678924316230084667239196302031927508935371637463143341826868076955469830461302730608559280207460515389172169842616196861838834975607662026381198562721158820716880905901009009183988728156139450186838587715152500915265215593617962430856771919423672890565869813586097081111124827769158249801895493281678464974843669053677796355992693379895109534746768268832245688521192523503423189508110509505063648130669153103915187491528698997170084115903775283791787655856021649050165146307375249346873986698607759773712654406801029336080099226664331485500105408176634319576663180120347286626891789176372003647606995663435539583499516399977471951297983677573275020355956148873303885490984173549499445017951943524513361377413768477203721028225239276820479827721681279941936899811972703199342506695240944153025029758754343634344052824301397397944020995482813174479322833804622009924420817552430035617242391699708461446608953481286217535005156105999251551371492550274072500005445103687422195891731235809910853436461697414321094298318408004880428971469859834873539124642795321850577083388020707389023274609245246588148963480449501606686619797228979982726618349854582468760819645192927404932127933176437380066086936497827645416632915085238166940666718537768360713445071598442824280937182307660675289572200910064361841653421668409290537522782030267553213482709599834991504769682411481948748586982188071286715308365501134138729916665775765340616251959870040531495694265122871551021236064924766056442683029290514966427612072069649969365000900799783922111437124417965747221805407275201603247220115856261388503549714149074272698949160214422270679963789647633940412835050817182531107028300548584964655920483555851999188838600341379999788879329815883814765463727334700818729311549369370602214189343494452997364646455585780938048194439826891729819546409837617820573956214817981550743530868372095440480245655676147482500685160122087254652211708649497674325894604803481943616076928271028332384346340987270561123013204576748446564598982417309837463322684280233540484304209188558061982495903991529034653637308363529801724586924034545077574819057709107248645325455222693060435382131432485822539078768305069741297620510436516274351701736594050608873670615767774425486085247205170488250967135642343499275525917995429967764826771511769605258628635276672391984764856064632937975222500910266760971370052032732701079550796923571729024175846542656323550919194797790020051349392633430749826795400098315523911795344548954834818941982311023404947835524629609402562956121819775166151382947491166934629141365770762217724657495416605257411104687443991546282292822632423455729185065776556753716365004905800519161334047922037026372536244723896753885463750654144223490506493050168141768152974516378603416994142333378820378734956711496758227137871680674442281381210611783769162003127400907917350063648917632606295242393450499518839323945044512511862828124370474626590504383907336927556799773052249329580397317517115438416365831282375632178960638843856033489645888168245643217319087549092407993441704050925252590436973628244809207733466021495391790658212148852908295960429361229073085546432133837693938442761544116707925379574477785806211746703463600212707527585256573970129967789567271773316648173277449488258311501589721644721232674602120953473605032658592592013949741343488978923541255769323566285110649533084533404824390593129098257109258686457181563962292514861640069798076867185199213798561671924465758023341378227439602301498792766033614831790465507140332607205738913370096664254771316187738834956927486137594796045975946142391853613646030994146646057172186188781403865339977539901060249507377118949804436498404922603838964321994866015720868239332891255476067577166729065059303813124068432449362714240335458423018452571149714643281855059450177311049601419428438726043059001108519141896794218325560232724115505071932084899271932543037424074288313858442566759708799504356551749173729010722512310213971296945761126455213315133578902586662424867045932076154374219722450670234487778353902309396113988076211417634815545786095637993563953637285529007416628008834980064546698258991030042056189076884115538365835709410088972380723775575291269963059249567533018474102410439401674012750070848124818631073404952326496863478542515956285112836550831896823438713864911003918969937840364031216009031256211142420423293502776178859098277264323033971244076504370292548762376566698721178812377779942014956101392724998593286887639239831057641441169173829654121730760157716742056292405490979743339959166720947766161208590173616837881166146496342706749486757768599966537838538502015502086131252629210294170290087556388541739714470032704397699363868745064240509020143933947156318868418647202455958711159591418268814101251695033701125180421130508426048265893196562635879175766117236550955412750170842458856698279108975215562466233225062441552985818016547243953591821464498661729545130532648798464670956743745027905013150072768571570907636159729176557155001988066351391815025979895209225779094330335178530080463084179527899430359307496580636103843584276053898575242516180162583618829369848808030534378892925712636087424763488139074632036594939816610098473909708780405906730813437468738243403105099953862113106192559541222962614244491240656204125537554389414157048816766136462271879035209167211843612111591910554381462927233717821357908788616912481809098283929334005307004233467309326192509236640895794865988939451074916913559553833554830858846645244740779886483498014891516790455145078607206605525007661789027220883946298029671665480869966821708881615765693553595014719461036391869567473694328146139878537495599406795099959707839876747748670058376731187794123148036908550970462794091654526937856198502246308407550019000381673128651679413565209527078661675754268447656629552278172572178740358534160577297021476035663736127091334987074976211467899982499646825396039141582151328942910896475637391929663061643739027695329376450884330338553832110092239772954169511772576753110206591297190229141500948410985687248491339861684418862495105475740826418735186252912997545817011786403406474166828426798385323183971038125805554754254309230168254579310931862239986795069893981432602189275224017418444165592400552712925583483848724258670338677064814960328096622935568354906782892012889568145092719658107619645110598972152784849969730723097685460645276533981880527093450336803170887937100370207244678829801468475164739764404852357520108140359513736556275072125968336502615229663762605795974289108188987917431138139962689641597598841064855715781385293416520422956437357545221102546932049445533865733416514941145385016401359188837667259824705847457037493666030970151090157340992099260274075464682654283076485805575937905529388923179808442689629980733306718653378604869147750413713851251573859130651706219866294467792270575306757319062011393930215287074684460669122480573117003838907975343252202634870524576056760821280017935129570667267335744947702177044672982216673743021072748328318948894070129215410792496089086350661533014779441718051627002975838979428160515372558735688246922313770630803293091700428252313806250099252391695364566839377884936537835936687154890100900366178563839459302611972637265249647600362663790344352963175351037512257654980489701561900197063814067990848787570005845158339125368379466110150645287623919205240555185764341855983746428333100668494152274385341872660579418644826813947797180471958733967000510816308461478789132999889020404373634014371034407488414418150747610930280364779407628607346085999865971074312172675914077373330759721396470305735333374833480972812558745619168719249321067115571831084873792314198037808752176524968953208355492719026417332232384712889623909672175472036915889898022104540247359048272119725615834335022075477486438356024987826551981899497505118273736564737773413381077251783840514571298534570737955018009768824528924226173297313247704982266430594673929167669677250336308904604672993645090859001623597369943100684803618022865886955601367602755875461841166408719141764204811943181398714610354397574655451251424946818774862783382054007531195507297597328535648318827773934987820180239885921136663513747167205431865258202472373745295955310174015344589787063153892863652747882172454903844922394497928257467568144713324316774341045123319285956280162264554083626564481581479598723778247005507315235157634501728565349125063081475073257432751848158872424974836932758362094849936633414192926438275705416342373652291854234065832888649973246240847944165523769560300006477907402785506473626591746966259528634384349211096088693414212511472212618785614514499375551429750544656152799371640278677490578122533687030071676283320735719530191749097441499276799630575496729999792185315440404781096297880875402417012092863487631929200169315998249771468560413808473891606146056732408113251856474904617631524517288405811620693417233949409322644373267171897482273059708901270818854829080140540586355151625252680372651151984029503201566618763627129208631726256878890753456435422284267848111367589005079002530664373466284488220977503197942122543448907787772121268069585383272974773461051452391849638948507286187924772364102262530221959919996002594670879000352385529822524708666281948130865661835663154218902138243724679379417040655261649525506777060973294339560700368440861352704911707757736219104975916989805351295794817509753504994222537475952893207112383621759626978389798044389186383978850863310812492536385299806806036736163049273421747025457716373003512761577592949481754796282550263009275068410963030557719895477401586608430923153402582054105579007168071357743460579599475959375345065708451933626381885961172479694620553350167479355870110452573286554037618368432261308422280664275164646483945743764764158557131046726872840821659679578313731813847504236721582427171638660852606816486660339543991178938961849949537265235616907207735669135680326079739329976088820614831866135294905044929853491522425465611669157011042316178897342783763732515584784867847389120302874173342942889903703918517115658836900532633204082166057603723902759053048290357017683723765935806129532179615417919392362888477442790514343360411606529709549557076073290635556964674084405652576876157753827989662709809458417995124868125585244777577049910676349870001047331748063521183443151781219812982828503273912296666665643742216075028424373755420383607099112189681912789957353757230966648834692427857424655974487105037257154134010348077699706628527001887356594814106865594791567494610337725558890462012181367760130336842153887618567869986293075303023200668143383263836131460185936739875343070583387329909443339724417395244522822045146953333998049979755164796270045063115212155702016387197748695753191967762972977719877370951722248860615271225382273609169777167109460771802138859451302120516341391186190240286703950727442421187246374067555612204282280751932474798932461918798479084999475855047654874411769548723159250375519252312432933770846342633539699341060974875766706208105413517536823704998995979224279308115959327967775887020834381617917901609057126709438482283256811541775918971070629638324752791718078350358490439058691225953138268514218449846984816474145980301436051804033957780183991751651156492272229955986235540228731871118567894496634543284609172687129646766234826008643812473225091356354327261805153692160964203711708613900864159197618596586547172645168827604066238249939289536808379516149557390689364789084138839864468095032735972100791959140996842497676549873731788136519419282367353519511845852958651249913217236338771084534597198067568175197310283901991302013228152655712893892095755464273659026944716839000750611901124390285466897984873135346011446352374348328144882567117502819678428911874430418955839733401239861839688792441185406686559091384506018586843859502018190906060731904867375854266590407307959047295907882281567487760650415976963455328863747716667232102852743382944219198407608413757754882597671644821023504024752660445567491414779321767218857995376585810444624432237274101677529828600876297915872840148528895795177401523533784769250822870651452077275735266449883477625924837524717321654094045313885071408536891881741806534193606535437069134132103340683734661968473553598975958399573459633725106418129508298194113993733516938162732472504661972852003643349656840819996334600514216095163041856602223105804746372025562556302633785535109386748920386654751950007498177700894723942632079107566124871929990488641524613168522176751632450960516011136586990611005974711355830823109673345496930267097920496877642397542027815836372361517602176161213316720874055202253814564147879942885476221201757523625713424173856674655083289561929099452523695080869977421309010001809185125643014924806727393760762452460291223382989640631686269086275001810214248152893266058363775614025988669354168303546892979382492781535726615054897708875346240460422038258395493408077070587058672997945197545238205477415297789380333687845480976334291957676899600417862664633238450775152474896349173801808029650194926389824367258713754205341097763763905787242394668927321630374237383401530476995669560305835023982064660387057254347469770304890405478698333556695035165786249800126859689325542077491027717569417345734410721621822193872185501758757382732633129625502323912060356085834719394717522682881066954606046037386979635075516203043459778670786473892316857206097972679060668865481411674907079361655809613751377852308995234928338870567783490271095642933837275145506153554534913736789248574496036845116077309316758100153696459676558608781400912821678198895555079054088830923903920213296567255147146624727187888591042971026106441634068946610831624336658877886878157024823411488343913717304191857436675623984747245190846233315334315754646374262170628256646194895039048241394975057814776992253572626147715132193123444676231845046018262890067931976616026330318628083473314059184630714661341261518775590336143186431319231819417833553475434194646838150190865729287193009525052967367150507621845691067433907806739086798418703157901375960871610753446717521753725689185869403772946140033034309747775249588504638931739888645734575682676079632893455764211743407384737022388172471728089440165366560085549541862893991084116241312204943428824650638018812161667222410955149260832489230008484815375396824596654644310461625403650677378997554789891141763463805570175240189280170304565652806752239719162716564580587187991056777826739724111052183931078651367543312901295029677579971672362400593235437780266660840440556138471102756379168513973640404339065664066215319723765504634625242676629105946714292356565327394174728061915408272136251405782254148650250032104897207489588585596261591950949101311168510557519653594825808342301380984307581399874364899511051753006666545697789455676352064075657434247016753882164931606460460110372363893601064422939697209086511452145992428886664669187132389284282539315172564373538623663466469333706790304397099438808952275379360199657698918019390764437086943566499622829424012792600918829238742328583768359652701742042541401094533723238288298382377993189866043591071023800787219158345567719260384997689205662133634471880856565844804679060904337396336378467884339906329697559244613679222948505860380118488630671899903433054033223078268776140959617648942292037567215727217497851458134953068240832788766201627142676765042757872116477373321270128651857085532424507864349210869395791492601235139661406410195172627960202789810051467293602819941482169559456848998021956731629542431246529488155175674761885996125745077610052949532270716466480296457934407269888193388716271021731403491997636532875678152303345221019173413671411551078068383157914778880640422413433544254730065765901343158254915374456209389216261479002611030417995256359177066422853578357934642194657281471333159968702243454835223572906102347115310892595472957218622543261937458858624128806955403705433737737957303976175884095622358390887763400197142493049435366227917750746219750949938628008971385211803221174663783045397806037987971918146668193539596567323932285243509639881542735697723936698068528848150308600499581344882224593648335965774161435762501224035795326247006859488111051009679933336770588822254242706896697597297954773187099007342929153557743975235378279190014102420933210259156372069102865229213831827602560531959951135545814468779389603730449067420705462108912061183748015532806022377544821389269185669308736731098168307775364756738418780498848289142558350739062254934215467443487239047377160164840208041644971548195761712080864730008587766077635071161366303666334189461307242480712961411170521836586653871760642446376608526207222873885153027354826095603090006271551924509064690057752072772543749381982998611890493799810568963221360039660581397229556177110208654266097072552878672800052527552362361762221969979567246717710310062867692380407523171018681892513263567585666729714795658925481133824103778951563827396550445762053040610515034403359363594548965030286636325236902242541227586463333893149449270531840536464395746665776830976309984427864797802918159594512924298760849430655635528974801869546926617370494863793202270794674883546654650414662031566985157585670581834871907794877534127084621357022594937696999454119678831445839216887251939673639591742843084591307351219254105802340033080753682070354120968031592509131151509546702161190157885452019839947608114452630253992189936802956099910853577980545018435415789572180155848800415540014407125697911432396530820383329452143261895166752681552308552693321806807816673458345518185912871568694045449008068248212457392541849172353410604608423600295903074334579142634672672309095609343756829785759353431160042270025189115892428711802172702842493421979732437764426384402407487427340295157914328816690262105089655580379282788312394288649493661315164827062099460703745263821778836696459442556674740129394761875761656860311738126153985774690668123472979582739159222715310227706022544082139411934389150636011313777079716937524334504210074461963348731730979333702546221245394917221622023230458947276639328604351375684975343409022760664966232378142229729723463980708025111509721927359939391415215331562356030550602078924853898072973413263095703167212489468566057865037072829946182281119165436973109930649905632772046117426080878258152953616001860408431621520256703384697583974713856171847981069481456559264816938537414825089189880637892795310066048264941242035292327291959150195819355964083469211253633833265556883699165972470632887410960720311795195243474159668327267132157547914219760089979389939508464045939904406681693482961045893121227383561290294703535341023104918357240980365985810993160021701484539910189566130244596010337915028762171098649642488394040593486455628870587966641998576437805384709343738326964459300521028035172304765125641479859893167126855666376462925686650361760944485340966130460217565396117399807414748973490481750113876283931246425101432563869780892387684178638204622293842652487348229542590293615607562311840432072817378102863797250067889355373172196526534997807337053653238141766820318199147535031964760527974174537303536624206521895710725034441563434304824025239453080082243797778634043694501060107693093412435645512160741769418658501094577785097852724476788754103462865782031824497821068837282010678012398781183273516729297862528366380183426321981120144111460954590707305364774996638741356705719445717368489212571815946795448364508589182936226553763655035558480469984751795081688554952067183290091172441756913050391911102383713732050275991707063326903960338599846145873190962882365682470000994016362240666795532729887059655204553682181986936373286112602969339594005720247710870520991180130515658286873436414709365404685607074479540624486665444586457172025220915648763234945377591731947380217150928881429665940675302035974399597709902038885315509558607153635857974341953262129419931336722580270949128717304454213953989938315447577758688863031265341298368624702215117894247723151322667004128170113735132368499874176852421500254433104265344899714713814911562124633443553160282847186803894100684322550830326477777737019909632685543657755086737762082308874063436717211804270746273616702778585268577928311606345370079449822121043527111633433441152187228725538030475201617625065322745440784721225477864777912655614357180153128249213489843170819960314605898214615019597625676099862291553925791021160728789427593590716116814458291704954071672685149612760358698665326277261337710882949212913010151998620839915058315188236678807819816544367940887734076950686283863546059188511686395275532169157123861836071112460698275558160559751377882090452755149546534225988331027000664209310662032249465702054227755289661720317181002429361820021615629207834475468240589812438827173270027911839103464031110850066069261754370449148206153441723069026996911025903557842546791829244506725281252139268796933989488698313719451889600665764724120642944869223812518296303651505454139042269436847919786031829875506490123772404925679409531059264938063855424172287580563731546089792266003225702718813221665637566474414103409274603501416617450687208055305722587889140393088071843787676483131149366142777980915413347163609787497604462775817944990572232825121687353599682551594536174086011550582724422526966250454329611395995642935168208761257088037442237994555856441374063081054982004059550995686530195439756437933570076674416506668876800274296244656988835175951059633312046250436854326278741372968796253379310022725974964775356349495759177109179518959337809340755249703648075613023609502352328636738976143903633612352244533639943551568630400053612409077594188280083995795695388867789553402647154423058239996993308980061932119368222302929470747461634524334996344107165335824970566475936115005160871302978628821122118844250016284378473602731206837009873596326099173704560762119131144900943893472225892609500481273053123140279749773959430390390485729286779458361214621868592711611625083231663033358593150590453686706513608368786977815778737239072531599409583417192325191687981271820331637963200129382291969708859131289261800372877391110060619055056588699869996694226146127614690950366518965960397574526405789901335415605427600080553697229795932054721995567298180393491935441717202855770964425558860246166019830804858451418760302748110067273579819949101952464990789616656681405875237189925188972318612047294628800092345348146616850307296388665052570020070050261769173547603920696939536734441509928929033538735059078497440703509472892508688706037499993561564870473528264476043417879484594058767168606149880649421353757604978151129391304256631734701301900345576528345676914810589966718078441291566574288807823392955159609092165103206078400091288299338776288114432589300255707766084080793109643139475161520766530765755167816471840931005450882245930493896282929813597023105510791614468060878509168407628878643809769120185099066693740761047269425075169033518817097243851763421166579748638986510039716774300495389614455452689118067278944050950836051677991196025033573594942705514863158055211302798293058430609962109297533019751668596704903472676292841571529559672099321262933256025849811776151791352673074280302905369330012828166764387421890767853186127989643882752096934058642468566236719300015282097186039400070998669033629294251223162207042576183039824639687216657672416406397058294605711285469756629566586911135450223849594143615782214567648073727746595620706785327704863114619845275630377327101189875130657900315957771086026728907579428655134415819770302594848263242372519591186910337823315224519853092722636130698682476090182457101716607021844378992321294072477451688549102263998017497978743764013727438425864102268510605583088322029604444307064566650767800418601600264215147601987154445294974412033355354971671230817248694051778188472960256280925191541192831036820890425686921894155113462548684703014863142527253865889244960089418019037044203626152504402668612367448799792556509824851365876488473695812651209736302303569843080488372897480655897640460272590937274614722108914443091091232884012109242275986726380793125789923121238206126768653753966427376848834520069720191648492448762684425265229911868127346924359321605889080912766033445738618081731617433823223138021260906180016930644476708120101467516362887188922799545935797073813294806422632437460969336959222958738601282104893021333721709308808212553134411735278477565606644152380607668559516219286109889522805548234240929388514280458317802250439284719911048758620773792241193959595660474847418516029115607958001696127346206598090675924485114207228022591829847234242938015597729286608515869343673151496655834749904512822816413174591489422769690222524124448133928173342219878458553193002197268725980566534314482602152784278769722089797372820067498838983211433385521591080483351003044082591682472245871195240504271040091979055734976735503007407642306458641139823492626054130749315888308504058168605782081618428262124490517768694239578628113315883664782878612509280916136767160952019800489746627921434183734472441537491574607543798257810355004167654291597491502586362654388411465405472532608215998346434634006552235811076611552351750055082910120596986296896118967692719917042315006786580117874972268653755068170187023275718319110858389973873480850627486059007763099745229544141749883683161453258851762531340534079800816815336682599909103993623689097679983124248275835539671022649856867984735659666983289720778771472765221749540036509218346450097522109444710247348179620525694139951700971409670509888565928263695883178842539045407436801260015601531123511037533044715995575312712677179173007922374588599698105978158748511164433064966390008605947470411570448354493379752576833488256209195867078013507121509751840536768674684572150841958459852924890647866351990484138479766789654630996192820055064006897365271645879677592230026054513890216020037866560975084774808884656786968264664290580674826844544040498699860728763291167107312836255957136587631235268488247536034520264873423870902684236178902433522004429154622168028822893201654835576958864820907642767071525222307762231886960944113116503498078776833759275252782904707116311109153917605078359322992197599920924529552140548788785120954552393750897065643847058174083287206347495059779208923170778618298253923857231876151359488661625393482911746292945794657998702683122275620446140992579277544350972775565311261460602404380258292936231307822181050861893800922734610866787410004156704232804978815471252099588083954679065763702275853479414690082111639181579513657862598163267820839394958360941111375468444974506291632046475875242446377894673667140718187463252648812046222074350921742301095790967928867924564447003085130346020678139396667742232200317146478017554173174131302542558633639461187972691526878527457901594534339708128581424531443004024586187681377386016561191893293974506819586137219951973924661620361029764330283269129775255588429437682307078181727513401895560794283772572493989686510340180709137210768459351909186975716875896377798537211719539079256475339382140044282068850454534170875740801052553587273382744515056262706645356570336881482748168734426537226003973702831930987705828321347990945147319797710242369512247094049541449200243706265868920848045455945913786126792335651285827386800871655761698909836604266510018115528892760131040710574366769147231726785939973538148316091415708221030784557948851192092590920009577327636643138315243931857015046267391673569955635574162669214864528715772729831258105208616387116523508866999498610032925263003155580529352862175759104415217812018248132959939454103540022054718818140658699769667839002024805047935114100843116142952747582927566744706896278701279186213346551084778003570442141766120006192796802789201048109134423495098709348773274940566276318221453936889232626036864291667962218337397112942637341098636799974918931325131063266171397457322860002699288052715631117535526115751651259444182938887341523433847960256701759014017286616448267941214080712164245290581166846008383603150254114989593498085118040355632859200423132615359489341644628462132874574682542709286490261671049412029530723281893597464192553867019077509346958544113937542761183383590601916744616382786675981128041326844408116681616014635490166212458959714367071655050373483075209205546691464400165154354498191551113559579672999360735677888104195813406706011574982495941381519064561964439761326270795897748475863951676568714822091234359143267642413697943704499648299331885719623731086640200602023161975019763941797418741291717345570534128269008014844541513282878328414180822320099759343615848384631151929939467732977026286596675554897164404420160566096908243358552098041138237945853593781026101184318294380311483967620744821333466973690991228422767890152111239729915723846443538668283157160931875171007825716434642899556368996671649463811296655927608575528790816991160837453661846021379592440958717032954960785561323683334021871091794094289618664559569410162587887565389323532009760530628986323232707964881033794463325730109756526847224779366923283423977192321436363725950642202083151424803424085648297603770213029333561724468559149658142799389596947431116990791097006031942496103385548310734003294990355877525804190883467674221418797902618337360226703167000413608838795393587649612030748459038404677781340204679605929720722394786575886266009202154450796785187628570947492098515272769823033855576506543687619454685414393683031195668810022962029864728342420098691904295252228530520924548393739177584022685011049272875288080375512274176856963130922622078113881110857897838995743109327170522254637628203278240068090075531191067186627652486578245929591362987905808603900338233218781239484344926044910529526015767589770497246689995267319804661953931904397854291468579274936953478001504426318912217776795979892720130507967393622611851612916928205071847375290922687563707293696847377232307551987280247536471465698579439740058497933307378979623202203877864727360750136602020354906306004015154096273918129887067379315300543310103139877835685428491527257353572966507362036342589300145263670918379204471232638262799801852402129736849699407211736891795502861787253627079481322130290651834763621308431383846652899306566540428987481220745181444621917163016725365636967829337239027164040678123374086542035079032215220255762068166895998228622004198038677578726036320982620900908958378831676892534089624956906453010896874586016731114945161917093289066013596289240706489105865971519972223645381929285101819599388735674740421432434297311060639532174580756904885622193500530985072428810217238981576505505564231083718367943536440806480086700277522877338804887321621306111138273401373145029375420179366448810644260933891398027763895945123382735191661043249153416818060729182357806839770196672040864053284277403727157930855364725956732741641398637471867798856439155681340577674050483145859604990910792006292356078538422100691956745399418291623422059798148782566736009310904574722305049119825991514319865423195684864921184695028473634107295237892256824707083575228230110054714004245277277631138563696297538575207549955069903256821648105328302349543106893281896947714537364898458701405482992191034298662156550799859384546775615849953239688033820457893912294312117849214369436748055299946381958902235442279318821795967914667432103436804497514586236657695614787929788318523520002865174328269108265337455972242437001823764711643923428448351617165604353958087769804311377383843511896586188881570933808638005040004558222124581336112574246383393311353778598864328555195005567616721546146435195950277119171979874035803185232883549523724815413678519998613869931380711641272716819035825255892578629650631550961219078007799889631299740776003069023674434898470425104971155568202357647623332568834597758014620508424120037844632951780796786723893823426549122742261228758340375069320935511615492838777029432169390587177836059158577008178143430701467668604585072447795887391038472457773528279119792351765135342319018193849224756232182365942005203455213245447765602715670716542688547194790237890570815149667624714500177262921774362118884078256355057318301304490297767161681471036235600186834639324530976248686609122605810494033596693097129628168123528962833585069468688185179794649586326211573831268573963322241178166912536095914906001327838352056958511103993166517604496648729092057230749674439293195333948009832151609183226933868220489989034574662647378511145124763669888257327579225912789946523022449728333125911258970862777736167645565254263556261098821258474230140119646485422300066186279453934188214592626567245517939720886284597830057688542207180344050398446903171789682753674076531346709703803047942242046815515366190645712505989750342830289851665032555389155810539941517399141576517978508086985469813525594883650382802814748346021547236994940310392703875157780493328896504090850459835427152534261777237541715550203444392629996802235286771432439075013332614162395092629624099080481452918333707872478746341165691512466578318462345651326374378113311780060491565873316002445767070516747181160432562961456416340535736285235632241158212671568821957794102881228436168700388221591482773580871486834196581797130706702745693282563693773040921945905988944394559812304618097165429750613649817341892162341243452182972678394084492081342026883903579518010041646559055887368306395619078944375390209125668685227194073197936108449216725046355461614635238291368326356149147598176548252414157371226939510818126971856104471050831419698340907605232802931237644976485200721447925436629155351959383918676439618061235136267237758404868804222723345942330125647759074021740958235528991467038229572870351228509944067306818627855056885391009713988854266651204841753467679177679238629807879417974373305851853464829743254700880632997037900031656204647159268586637887022794550630153651156182580947465707344082637501819509956709484567724939188957889778285887836512126143304168519122165055507203004649531856840406911088827281448402766380050426873870564093384886074979398140462328481887471822156338061566246989541904517084118966987255937424953652801464281935291538129479708354584437620894949421006501926358038851100364920007358686340367989653722597483647388403086686884995867836829690999282592579017480877544458327721049365448877766584730502782987728775851415453189221411422113868782949192078361320098106630022972716799373120551801032088763638961746215414865531841970752348561629001440970271870069846194760509510915675565280731231351553891470105133473608427252140109611831410289023395070519142053485418608472030160678474339743402410761968748447293193443341131961101110036394661818024323489702147408991026232855637024252292069305805680759676376936823437365704672125103209446342077352429478870725176710657927873253398572803115835952696191811955706016435488696211148409559541158937260731778461313981248301367042329750683807426301339091878876928501771944336338632873081869349888740775791747515042262649319142862490835841659500728468424473207724602329586086419014830739348991746201518283262686540948914143961606691362855317319328497367112541413021826927159300044147317660597883991139430552322567183923700280831059019101862689024844956490902947000382994780740556000456741881093797929396413986674426342709150525073675027127108181894439822817873797742876386029752645088132665971028179721023396264108515977614754557531379008120567808308427613452664985019494057524351265916748117687021515396591542468140463423865220240806332558056112215489134358623437800804556378947289633897442505062140880911472326328263463597697001473478502794617720844892449990671898898175539453489946065483872295540336097532607331260103460278579009733870077173671184633700175214155971082483310146661973256821255648455761430149153044990975888096717055040410806577249537108170185424219225395280977357387293700073703002087952053746853565740362197535592910254860216036310787331908797491023033423993841940126629758766010784803480940568415056692769515947945064849117176301356057969977497265666740705659319819431530433470848212712022066574711878183708051680204079423035250432394521567501016586056022328045246007559340844351099146149637324337018266008515268615098613556303442907695278389589538437244983288034092445174839869824784535605382426460547336437141448447321102904456201741997364165663048305034578953866453431780320877653058701306659839588868721928810324804556092664357214648520662055748622891430672548162419500480892876687891602826955495859190168066846368840486033923317214661899329506073832700541631560360988164145827305154856469023860430244513422190283110989432122180149011991157251374703477174170172391855936191259534294237280736901978590541513590113280903835256439245259132069189395508330925379958520674225595434420263227194701225540566505151167916678896379165925781768178374940635559776965876135558924976417599158330782886172616822261705487065197862303015878642362456894647354216348099191178240637638581593284747965602962568559972410337948785949193549817190915687098967294525123232624691365745152363953740345966060440148765231682698525529651425456467677561079118672277262436834509593489482521856296394581063078283810781575490663480352371313096766824276046117574656207785710974852736799516736458349036359345888455786880900398135744975923949783469679169862749987367669038765078998179544760950751433837898572036527229601158300700433190844253281928203259546969553526891257000047932444681766509160468242404009148767025409320927494802354200935906621004161164583857634527788774289903719199085921130758967708478737493452151412714937067779206984028769081982107596131114665190388520729038369515653231661363039833253607821793726333675701003089003335530425243513406388146302990994373815162542986710602853014837672010331529184772528146340516947161173087875823599197642803989285466978976035290016601358787666993115973639108060909229245123102479563280481707507732489513064147007082236834971800656654565376972901607964238388207353368774105243950077078005161481800790501368962203619085482017868433866032175858400699195131353821271065865874573431916058533379452797246457865164806046456915682367097748273019497116548796339709737335162079687600354598384179828359684583969589103667748171621369476093768052597870146835766602386133761269139788266495159465246779683255067601400445655536428334885690604189246992223655148043136528847953534785118206912776817879510678859359382467451878360189514863829801800900987415411280952135589241629275534703861369669804260911279994639427022526805262794234324044938001161017493044364796211925447028604694326681804230106243658885671155751906124525040663244836513263341022501377157844655203560521889876461002379567963029763475840169821495825442367342958675606615433734855190555249123045172751406176464809474770891515710219964313530988262526803513014499375886712718081588943413750978332937383087188702579082437183608722562192662660879703022862740337864513337873731282950420945758548740656668769819959254928091752925092705437038748529289949461451657337003307028640108756242405894946766487777766299528681169999016112332405116318313995146778120944556471378492299508330354839745164781831686097002386555027076878364803473839582330505513861960547393911281754675441588880292353754011162983126290539446936061752554860842073398732658656101431303363263246937025820225350789579021449469385251654118785917962538603171046697140262885982588712226916638790870178430469751641622961893208641333573204062211583329666235770209756423306179580416381135787697289101469339148010830823155501997907592278331778905388453061466865721512013768978109382752603753956500980718201115824854381932488962363163710498722697077001928007627306134383662355436392052472015599206577687404617380897947009759456238318770401888676001912482517055495912237105335091296578655325006972194624170627886945900130036297685836042274139361452438242216869302648525651173187361975305294623448295234143900724806372508255893780305662705479963434619388917503749252527243222120874212355939586276591435743301895436167678911502254688553946707737585524375293631228156847238312284085749666480372167228426803940919198044488218017690986834054703356500480295625524066594582334770085539587427413862033962254409017792685850178007399538800526098867038852949632867833649083339257190886065660577449504026680894884453004930824186958434142549808655541313501642220750036512708302056919289884445922428348630991552314333073783999759633462310334362313856958941611098466113398679072466171984038477295844823261674272582659282384266089956051827961423785274081482366694982910383694934341704989587190608299911733602374149169945649210164285692030959201626999920811072121922400672584851105852963838948524371844781116083569953582103673290408927609959693541446946117961585896679431572630835017071093930895121861672446878089967764454068743311752124473794696301941906278856206564366741721524412689357017674469606515598136786452291368822503708528638074405553337640124657288372289844006375438984355786035750872299926722766220071556338476020430945806664566921368056756638763865079414501539585419528230971364025767290629982412579454937431522813423544674452792155906443893700774069065788779685737693016755402428266899172686995961806789318150805884438271378553943645037209190969607531680725231162929613361969207227725931295424844714152368783328508236808581234857125562291078248567620822431211954572998668187618986377226432251869634179591365836543122908093702577932637514129036978650577667271044480487309553906897831926061860109924433105610554070535103755875798831415694807867125411299394778296345990852270282725807316293790396980090295218147291951541469072719190059072997318310034927202179043693922730353917060495434151998774932143203055026249228892271800149515461177948610861474893667186001173942585520956494514078403354781293297353083238766947073466724631916976706531606670729731153601652322864266608699105306425652804807909791567728660845211096587362952093191949929000471851035615408829802243217003396729070662633381488625940363328321761000351701388471519350200799593877437673948338228219013504022304339311020527712427663182205301226515822738948465587839340119343335262842820508699105684371728965171860732852800055121787115086116056445861950062194901496321722603137601977505032654693952858138868889866199890699709906065235990879319124117280929932951182867325925953094718206086260752177510837378526933969888722155401933314102306421805479240420432943026335871406917895956532729150279191077096249740454902426975584106495303511157946845983302708980797022913489528269520090444864953082608335536903087301408607871201502093327333181005827102114228886677300009305732015672875501234245926323723661257114407060020047583727659470723396522825664455682285494551795928999226104255754897622184567379506236007348582895585357382393073132407198150509694357672910160710037184813267571611879114588577929472758517705174590622527861124789282927246662759158544214836090174022564801892272943711457272820702212419741513992746639237879749056191107020101644069482147690956049075105520719453717510928410128453368987752232558813710585938655046783513370640752280726376640228558411089823370154667591163084014426129355363735305210482661235121494737255654344747733425669682899420864390382660788752815352477645299605414109423760486134245846324552912319061430948994437686879996177868375359471803288967058781684835736105899045442810031563157188802405260336945625005390495051949301796505021566781987879555848819079721313899647810255570393636016508100420625958215841372777324603496617728413509031164892604738508918705775342736760708850558509316143135709764918961185029374560784532956556299792687245882444340955625397196540871192737273941992969249767001902534436126514001865333207042935201887740633574476944461363507473688524227530132920697333331539589598998389592962305094961038593563510590894990939738221802779093605633992725004121986368365386163903168500562401301443139164816739390187774347459642604359385300890246712035657190977729036157219915818206514147524390916141598223260427255347490743999989923789071935169764670798633608429412356765483931554722400677437230055232641404762897220493689300763294669104733475728143205922717757331825311264266743655682105901331486733705723488308486400129979113459798389597858696947634797441577286927510455299827964170327619215509431972461904669142737886676195340036540511516725436301102994302818055490595700657933013934118208212587437935909455043147071333401134958161002482518627469147143891448405272559176737860107949743623104840613797991546451681336733886090826174063761122204421375585681569217340032350554631629959444369192169823357466411656847521507064484727205368736800787466944734505092433084377876454869270300074689160613274580005990529366969850948843897646183300076635410970026544997691300538578196714564811123623393788092335703088763742134742528474118106802903193691099103412556257998446835250734367090160947475393165902545334456470735082888493594142592557209335337090007873597908896888963296539158322338581910979827417281018474439417453448970498568238394477507270000750542217918853749100671517313639917135548546440511562114457324337361252501846045355993315275755543891646283925056012745617955716911053433284312852980491071933500363021052356285256000771393711773173801013256978114832240211638983960403842295637393833559654356910822046580002596163978523158185698418130553431522624825262370719104356617429270024617683873272450902714237170400557170710881295122450307870241927480260945820532955816770711261443973241483093480110989837377102708647691670458955898459035427324836399889916633563935957858787263604750120529881909266970824676305770966704993115878676944085619155312361018327322908263956794771219213313985438335853830220970851431203415767457390882293822253817719247223236089421701725459352213250637024165090319367188914201933558558669249022372586871134474617734616292102807391787984977238413944059807651237144782913819693413311568237781254694177022769204602849934127462977225922182146968374340990469290756486763822437233061556333985459683055774622805107350810954525560989667046684189697547359891427783212197346726100703731599511058835188979851956920944147806302823462404448973935724839632868080244832992712610633306317508499169654139711129450107768206977487179906606352114322333326752487330256410562587246442846343056962507713216945642776225692001550777682715191501692870461586787979387008238452940527343781164936370975140196181717201890934183606116550361604904603323988583729641014457590837875800030338076050569052894321278581114856900918738038383973288163202221882701262111021546640452032472121433861918351310268523937700451106103712233698662033686247205104522826625667541365512714209864603878988611028988304491422754044130079820308849055655190044179074079782884878845956855986931229211896034699396356270970485411485636667192923831227090927400834863694652378637816385509522957358461405132187667586192580869462733486619374947989513681302218070222679205807713262135279347131279141505909192800784156055237998177565414878431938343846752902612632141022497883260841607232704577850126671605284243830540745605712783192147301687448402766670483062289399074823078895166672297380600547938609885397443674108598571239534056817715483916205078012958392337567965950373163555117327702674613241643581826022789015206239427578005143314487326966296179681611522173964852278631940001633242858771813151640435056044269579758071405502343637166567669067820310492738434713858399629117934100672111296759029597719999560214900674749590671493256998649252161061499464999041702863741026372681077052160531946522994269604081161455547462226877965903975120773622750926171834919771567125252363172226301520213300605575225886829613802568881562334070523183672247472363750606276936121835204353220962801865788258119283649204693260059359882062676469557688108411539769988954848970260015006349887247656339807616601305413367097310516425708814601172239873863408342364892713673517081367905595016090572971445473272717290840135801261839793366678065408510971750840612000518122008867721711544956193099732288708413104686392516645540250104384786177519931561973018479740300510796459160360589903397259182472586745229812436861781179542153241148637954901787875070317594082100142551136860135281110396669310205036233817823549983900418710509713541644068853150634654640196874171531672727045760183914363390403511409192267288021052671706960514974897400617928083526373343051163507231115272291563684355625413617889049408629133303263695381707891633033531858141553219295184704002617002811890223847801396588306733730233658679907046455763545745238517716494643252148293564010788289577462787802129268808342774001909699666002103835297890282501664284010307421922605973886685606466844457337887759309879681389852449620679136697140757141752627346635137198069123842897197327155231658282511036862794403909788176574434985324446476213893656266784793392793251127627791024806652659653339953763036177010015364931704570503728467048155797744098192475526846820732799113669021825996541375090103061372845426185282006732745342912206367577926978677429297505592986218609508259765659715135894226057922528055570921845269737029849460012966751819018657573429312159583542537625093740276957459096752338399541959760609277159369042054642784711523656362836110217620553007392692317388262017690928658531665575822458904394270047228207283458364075161784244912671494927647512697715570511597548303562329938251484420911372730521304837934564213003291608349797758357625137357232424853973962718613291929092833036032061659650718963183864748247167725105007793986585556616830308429936701957833238883255354119279762791936085827955391740752360765234125634966499444585273592699457961443217017273147771131579095416965053328693861905516117128578285380742813212667057337497795104192402435745647867365445993233475695450647564303047010039254177173862954938761006911186844926684389443179522571312707701062407188039941321517465918611544409258135031169378879848320878941222698036737244050410925706690986448312015152208780351535184325270357676475816710500056549169028190460090397194478980563667651928401689174854612319860271665789887439514998818237779445245583483959594516580106967972986422209923160017683458324727855150421619181250595276125309034875727790692703123004163918848965396672615343726782050462687521636869143255698578206474292874868520435478453329933495210415935856541649916119856720273481194652411772311332693386229299714688420102248203073539449720582352968987323295102402372358195160830071645895933561464092016066283269436978405668890598915082698289175532062684158039200448765239120179602486672899132097386710539102527594870332685183999325819388480586252575945249602963078004765128969250352052424265789074585440273954757184177043278391709505149060729939232181097852257936754270009865939202824164523559528948400406713726803978440561501034169953912441260974004954393587704051414621595549363656089935051754484412376016327972716455450691266104357709680652512826048942179694713178872959298049727154308497132740628416117199293208299861840419188589787896937332230565516605515321176020417627507455708246193581409312501887979278320862153573637224433744744917590778191337590132664975085963528337998578570106578008465453150253708532046751688841457113354003355111818907823230525560043678507083950797960793166243587255907239731304811373829947849982590190973362946430472753993172986050311892567284564896880178469463992480809164506099023726028838407861789866253879227524556266274771622195417225744513547015723244523805276805045011436866879287477160392118782667331842740728099572768236102744735689179834615034748772528031795711133605510971794981799015928094173911393687305918074445291642764728195836601799036630897530684722363306744936542368571523473651608224117915637047065423988606337965780380385779625961045459448287513501509274267706813185382536002525052347516986397910443066556247996184536808960012564162848836135104687195291094440183973965598821162528149284739004347751669342877195347882099648062280311594858902654051980061839879009575360029548781916140059469943588931588456704649459367677307419999085816820338413378431987625249224159349173131730385005734890308288572444202265497438780208165114913108919329981094669707863631886420792547337965931184727558447273319252248703663482295366657350889142085614808462888941643481519524962121606162343599219499125615469951755664041760498939212613329234403094652517406511558383826255946544166594148308719481396563478123240260444837703757642897298445088868899052237488125751756859713225759321868788995323567273666490028066293212817985682843737561505261099820910420542420748707918350678540770117863394317139258927055563776613638388110024238708559499661927001672455458597725830361810908571831717773690392039740724217450124591547944177538887889484681474524869242623577438079831341330385839203944523212026626567780566838626344199739964131260363014455369098509648062794558111787410933278581023279192480698882592589633053309111982987613732450326685969078613632992374906894155571961443059674804088598053523271513410340604541020682062006745168037711007182526398777976127599227628342254341316733150000682569723833961913368363269480867461500622232404473600847386409133044401959508459875237739607846947961624330786068534659829381286407138307926089706626451977758510235031286145377565848094103185693770388094718899732561879027717088015476408330539459701642771922868794549020322626538113073743161612168821746911435218415218628336253273348261937556916082711055927233428303403561597731751062938516499434348109694920178245685963510297112301138731146888179405996105974865837658187740691520319570481395834224442003509798179659039468870175756375651115466827894554780860551212990845775439136758862697739162539839269368199635228063401468930511844343815558926449977946295441015546316937624705246825630152636836609929655970090710281090253060571484241406222129496088448131941761064303499479551813433223617561101527682453559348773638755298853421653260368223077269725041486119949479223879832338738324208139526137073361851853861619881017115018885048742587371502921861267321366498900813084203244019954685066688614450680044729137432742809359210119675153560976176746387207949528232529202117803640765660705347547128218990894517437362910059333502929240056779619343075601141037943366449507183096410689190606735782628841083540948149225409091486378515383257263121940895662646417587990544567006160394275956372727891864846512799437967954253699484152408299368836449918520619659996922278597984811212330997778577847298305776146033793800372754331660605851734401585653538688541759665685516576924459314342273796713074586878342471566770100252965862510043460889895814237934292078524975607317869197598520787138868920552740812985040867184054002758127434288126046142047219612960267801454619233127984924586979254219682004234910411960791861862725263340660985609730913658635839543545395678091964526470699407516976068973709950169642457246499238797268997528503760841537135231685329353067130566088585014205781751176174107063581645296034217000383327347852088274497385548545922529542102603387617674775698627384022014104418935501646927614388647918555043930824772236421486319554759756865798997782572805745658060961948615793603152417978934567142775959071033969524130054462744193558005612007305192519124380055005666809089632807656661974305684555561326958623131147324910937281213645036770355060668795825581786532036887258483206137208103547374209149389422184708726007386327391523792048931821630965389768582200837437525195575572628838586871302740198754691284589853508769863394780196053786388110888208270374362738845704143294127958961193251476401696050016120977701463393765047844446068031891728883605273230348034408448779130818594913114873150511484976057557667813169399682389738338505139392164153128190056896100118547282159294752494953034254527593080124251312765345487559852022256546723056564583873225487607678337910639264122131039087727135033402198980062067962504976977693966936583107710784089807209271582565942381651844901818818813697241063140811126083874008740638910395297100122039927224576159794473659754297777851575089943205493103736721781990902675169453847156232631807942948601460165365144592205836195728454722930838804312391154379437017882904424988774099806740909034623195780957696967150490729576460324710121105144489009109703332319562807684511686394289320620226362293505755815704785457939909055688724233825671234940008227044632218873616607186686145213905190137741904679084604253160868073038579078674553631770295547135938335212985049356678497454169655618682100310528345386325665647952388633695616214681230513266944765291402225237784683202392642240967420841192341668233025887622476581342949076790503804529104135745809109862279147027848077092051619193409631935768252701192174140510474326860045922271586783435170032956238709456169888431054195454642894249924974009391040265824973351238016075183390908370598596271375970814862009647585176617169983695566569475939434418471744590209240988826874917263599067445716991510345618210387382667486536341252625308242402652341907482124151390820600269846573398143380827553637220050886233857779096758738433084429015023659633962137326634568865469534756919455809508019898974786806499014901014618490241617421959538795592833805334600615551154975492028265490734906826102252510539518755316321970642562465064888576277163701156493633182117471322958693531620089038648488221360243846031660488920575495072491043020243963448347272127737348971312888915097856677186448489476118398057829332629120510228290148551468975176109230516550436172992858803196237788017412867279068340878776589355459451129230859822330112598408081542778388733551769445675543319236822556660689832529653433635578592527782731251371076223250554977095283613193962906415086754118062331426603782393833657371076230464332187305848954682669320216946169533407035070257870467911880769161630335860827703055830497340149132045355829961171992307310602201722667916947451866179612938244353307755147919475684872123759736774208193927951930159526610868439254978125331243307753053803778721499401379180453225418945248274852142980846427163555438620637162369085279189723515956842221972278881708551038814981150192495297310280306578308276213643669150951192534754199091840617570822332504610954622792356482274186060312621182181837889866594431337077237442957332370618638319594145117576205413014261227076387394676647643328383598400305663774749779290681617608860312542436427699332477057318870774958400656668888208986701712995362063409094555704274375659588432351117201374044158781672320779696661554703518084418009072577076851273657043832414945746958973885929012677185199203874083897003769153003778918899203226291779278562261920540493818326113256598772540693292504318036876196545402585945425839992056416075224736070565558512816595199459142695967157122506486899647049563876796535297181568194803317587066744176677018563039403389912802417822829571433032049753969401405503005511875776141029737445200776226504674820059509036336567682530238163062251054713117881187983977408797049401810958725514937695644235785765578995830710089250091888675365230123615907947648046328610266777818305842542611996521250670618638035946692576761550189634715154369832491404028419161764537814128291438875768591538026869331448896672775543187138875901168467891219269039391488262360607770262222467458086705267177960677887435672827684950415510503241388618791353233080670130630736715588381438561179227030652480803465893498510211464520984911602067414955859890685565237778533645236452347928296881332805819335346520357578479345648854010366097604008909927943191186544031953716398602435121803850406654870422373561709580633542293436998716243719282135794798676184778614961476751349085026418281695913816331690133142553210791559656830176819538397276121924202905535365974925067274134804069725834351517238753662694412026393199619128747018041820874740072772089180554172283929130976970493863696682401942350833782039831635336313011113040377540022082912171222824433680131270694194021061531110691050059710384680545814793184865562840209660114258262640309324872990168827432587266785880272747247555441968132500580035985983864795238382807547138451451094438763874275848507068722417250666982460815765419766638209665977325528582443484515672798935349123389774233334638099695870958093104651122449230398861546254809815162562935706487067293760117240204409108439443386239981299684992525646660091175483518541815407348903776063127746244920965615731291971304982294255879126372878317215830370782314210514575783771046161932399721503489201742032649706355650183758126641764215269470421669826101851615701750095162614515269533692873406611114276981545068351613417241593084679316086278412873588141500919590792850165749832813196953311512154717543992065413680977706366836592217389066963043820274698657814781914190416396750125939169618534927199438671009747343559490292514738592548013958867192566281451268155371704382936677740090103167522039603913339389381044490557560529325106203333759600854904045023212302122035856057729307022375297269954129154964977135078723569023252375574014806570471492039315617470753943715660490389425667723062405132683630913257311820793135051259497351984467766628836347532030065796354213856067110298518980118491362895646927593675772387388900563476832949627576284674787170328610255295678792827866796294285865680601256644708228985625981367915637733054996808418366113756801580254884874139449255745730901248470301496831415460549361431371776457395263821943518947202332816779039568023851029336579787112161808278054243635073307091146287450905881716814543767157253474886555829671100441376262395948322148330278464704841230300869119675972155600452646467499908631879043316467636210343304343318318041918593495520185042735712887965443382609415672190905071128646794596313148647686993639135722684893882867072653461829449286834701024143739038954782955284358692520847463461439462952971321496834261004723102405635664924288156656298731390442662384572889274032276602291327718308183652640052408131007827917947797598688818612859150361108310752294887429431349257988710171081610908630812324332190939226361771096533774960483746070470813805206969767929255407995592505249112814741418681502758882699597900299279951453090882919096472172328220314486722447173607225946747905727127718130154686786344537580583794123358345906910255962537099450754213904641655909384968629003974133802563638117099823387885904653655891078528055417266325894118211449222467261331169281907214960521085356868937845551960523335881236410181383678840080975498781912710768746534393253293640429786027962681319097075873517995888592602592722838602508179818315805332175993210735702941764824717097477913845586926475842993591215266089488456837630543526025785249882390534538760462728804642004941211159439008043582001628967708842994412717781458206750081521274644549946646236014578527042176980713361311106144414618796161976581260571248051455679639443204969059965393671277338743043037324019302234367158191716177677102499058892063695689478939261927290402872979984954536389944421728355630534994313187499224901022140500416328732140494342994052887891107949891321168879201966506649411286080340230782000323398624381282377095712896431840444267427449931203527078378919047599928665826364591222218686180549712159656776009055939883162437204698489019887321734806999636233423534998911821125963725193379583139352232764094944640315002736056004823671128224566922853463007127434974086089359917331803181234691206076402674976899471730694282379634456048256710562077916495976047836915847753767048643655733822929755270020677358822412940585675041782616671147813561086185889407027773098993311571081694264820573515231909373643055739866930095716833807636575796303500181557419863579288733967933618061148330618794035478224689378189052036907191850748442907362944689869384621976636650919447294954742126719273478450860184063354977600872969785644923739581727252291143396961618881537858591212838193587672799206478284689750694421917631321171884186277227344985001994937675090492639399871039436135844607432161896750802287752240636623648273432233697051331231972568160048976230479753281149329615947101925515256161372558149330268927694967469480580959513460326899505422807530620603590014221771315786258400824589093191041409611294229157422620330433950765884606228865314236322806566748911091360281411066959900102568244658881275667561552242499781205180426686488844203954808418865189700601202673766978264039906403306536839283176935347317614142580249724704812497676204476669999231130173471027963374876846404602567854697052369416833116875330559702158820790191798649698442041381520265621186554716049256875986404478047885702277116181001626849571313459888370244397513368047483649690567222136287603064941360295072769369546584013730660522162466543056388807731973589335409819526599476462760986090955864926460348431764276463639126606525658152511534282270295737705991662396822770405613703863805831921195008527088492097572881076790137085633983977670946986974474351639823175725529983290631883278260629327940910820100882366833772248293244873665758349970727693899915269078479798728999539594250348668246034052235383869047226293232897000104695170934787171294132389404959740376259113552242108271004901989398540078976677661910507215162912017244074305241534420706203713665037665525722774171064624688404275925732693727112533775759627183708109694398286976313639569306856093674505487646725574404460266343082344890398010512285356951166555468552027578966927681136262681087078934451661941344016092742856924760508388331530607364829467991755157097507721152902882827618729438798948756541772065054951288057888737794952899801204633246490917566408678017972068805331330797328612443359009760714935512510728797778171979832500415872426612241269822670240061114886320675793304012406546890484879439074039280096966067766566827377359271411255512838599133074384118667037327271690381408608971776425611887285510624082852698915259479495972060293631171915680588167109091409719284036843872933124745365871240219798415290807620184931163721883566076242234581024599408581366261915674161139460531881629926885080224334207873592300451401855335391419230712316626807069780143914252937707340239076922993653624610388629434745275419342083966746351674256081387438614022908221330317493009141759046248643356662295826012222210051493726357361519652338285866258933557392088105592904963828857324697381561853698494833964500984578074451346477570237274105989459446992863007778918673844728447038768745152447452598531784434331274892674998484086855015355339145066582177887911737598817249776147050190986075990680351184567811517888648940903516093751333982338643647978956842021696656587969701343744252085905933996679516678670350828602961825527974855203080499870004522696493210060530948835068374645289240709613612839847661210112781154759175036098835069478828387153039609131542212424906372578306974755644294056013843698372189958030192923167050724537857695851261338575555723933040685754722763554633556991927004831137815805572464413756258840165856450242883484009692957862338728973733494362279015497353383026012536203492432204071581362651040564567509991310363527489361910370883831676495025765006947526123861922150784693276940228670869915054250507537276585745974743531680056183634799172619077927757567839109121084128374112165502101446501866843864030085211496039811475186919210253370523436757755763681900021009757783427266762877067379948906834944317542655940763238340973178969160577743006739779894190595233805982930018132109824623103974619787984672581076078200774203751635915363301738375345891924283146035011820209191781318004910163809376491897447936323862827033743345803648267311949450207468784672146049328734201111095787737144798367891903158531615593733261361421710870465170652976624616878810371994622246532801359795632275980005265096505028243185489957256507634699034443805994869064338081174363170066951650374876778637988417945951684814776537051650042306467126771627292196372809361896190050781290655154322792256570167716814712711740134133995620232535050002838288809533820835268937623677402137226096710758796919160879595778945575100517128078540887640588777757707085348590085704659698239118708004833281465562864494343263231729416764710828744931297122533090192911609932254377096777653562122284318041112569117343091386429754594016250284479492758304751763502804245787768444896957681275028695760486303391443826930343136425960841565539458816100563191459398716459034033563206237308404242345906983160683937502725318054444779542861815153546316701764958967143227915474636128088492665729945338262144901180280212577849600236417352339977474169411329670078721158175062123309562075316946043652524479746059971670824846657855051104734035161724031433521401185014575480599681499806919896941490163207205072199244150542256432359329440598997725404865492747780801372186855673076319194896740499627312226180384374209572132399155353907391958854989016062977941669193152298578103489170501684763460857856602812732997517212027267218206768393935652538700178785406936887794599428259545705428023306643975708994835009496512417933502816243198079944366637767605523065532610734058995344627759107128828953842639525893879649334278099540312773149715172980635957909477883331668222427361074341821566932589108709581392797140173584152603341303657039488264681856415811822960257548821172822794228108167588777407232094643353839686954917473134417255450579554735732270746555590859299996525849972061567226476844272532745184198279634623479364810790049368296205294801441929638992652804452040055746068309332027226400215225677904384878496805179636369638103566854455790624483825691269521324690142221833549064183619601852458021959236570807367114022722598753905257406000544939678667269558770984405254045390216456681445875681743161361439036138482963724112678789264444793077369338486624180001026414273029644092219717847872404797633689102385383341804790706810270918552440616947610204648543859171904395647402818717818159242871239432601089059863933838844271053864021004479519672180062404604962320265767763419451707235488801355653300459936470680307715491835647275223906024986975588899163832256970259002096069397866718757131139111159993652002733714222555736664299995192276281798490509413270747800899758886357971244363645181959179639551362101360413081994882459871046725170418919019401713056732924228475663717903885688951894436087917213000229430602275800191469531944650490013796666628796948003093474144532746932142678368147464506868184786269410991650769175721842284919547097927817069725555198427114824547539458971665626760757115130871920147271921173751487674095250377537451371712961139598764681776390008004526478008727221061707443390576373400490860979570992633169226740885497131463574931122345295286134698700433348111280682068550891071231916047864248541953614172957830702385584120364011443008200617258896381784253599398645688385863328883535684571460503355057693301696675805413984153816723703975584580418617546683622899395699361659002651189010329748230350370407589669034223834302254387542887466419226955017883994807508107695202066674197689553148195296939056138264713257936186808749388213495246347638993048097685846682204968160530564380376277410566032216617771519883229643092103624560741851136188155484953959892786363163630187482987606147797024203846135128575947057792756684991063696365321794034361301808952902050318332869329655944548483753481269020561835183536812038166295239909930160408817191602154718430394285967881517274967468741674335254306213177192978878049266844735823326176681022165730327306133548422457886868172760914764487932091074400088757337023885262729559754542727541666015724661453885106566881200693071843360934131041735080541284037312337575399479711754046370273076672899410488856805562247692490458501198207951472812291393686991447452728700772375340243946379856935591713627065824508879708131633024098763964805802768517222097872451254438654229718051572857330886975570135669652464371859391715789384223865444826191176781114530163570139307770011605516949709048536551424771549612593692734489070338513532403817871614630165724738372510300057716340842753398582148126121405830733430321261428781369437988960736261993599414370127291962688488046720586857036591319395170304062975182756145976270016440370645805810104011038851703997941092026539371698676966396221753070511931293102231213073149723125417042247361841309524583642609141054140271265961487461068640627343589090123368327782252272245250611007572405882437807162903084819425254805747809430083382715202059749020873399597899223627567021800565213381810211797736901113979268410590023319185711748072588565012987027853194415991824659197439896822854753908707527813968841244627586103612339343140142473612112133040049015522788905456796514349594715669185908817638531976886061642313406663740847398158116280533131946747590938229488836912782753159941240953977835168616365865929893223320311068729993501725905791835598885224616314243265618837246174371043549940901327633959694951668668026002983267557150156065225672672599013621732807363727945923505464087714401960431144590387713310336877164723964656231695990305929992242591879914105202781916392154747133732258863458159076520420850069715610969312257677581179432234226367277089378252888379994646805444418517729316989112117999770243609788693588170037382670172467280648056043646338328162308417123724314993288327625956045052263368991475227633352646762850130210079062677700592312425617654620701068192610979485195566160827868956276872380033907949064707364566324021477658007338361491864612885558989786873070783796093182949717196372136325762628406694314783043842587793616671698830104456191974051163831759854752494137082834325673918886734311688595375058513706154627746292868432877950479286685156647678729259426124234908530907043340428183601420930507297409209461500685554692078495893817389413439697707040351071848041705604764638296493840942570111851866464807651218975930120704056281392714386898572105462107095230083864320474293116757565761048617536614136338096217600488740871184842773045969406136568408059100698607985809008321827157499813518086529172152411972671437671779362613887364700688507827080143239316564839790674883560987633326348647528869829691116516234583711388191247606696732033530927194295053257676759338327025353912639823449439347595086860470011299756945043072469732962268375758362759282206086855906777928816484560064693100568532754562158338738430267718982246071394755693075125673678643878928430530948205827798134502559661335991142704754632658913334342923510593492738511966992039522338027112137713859725454290586027351817056895517966099571911594762220556089611342669231588092272679163759697896434965778763297619079831485795592265111719960705533079314564161851519267734207402851642995393466275510579976913658577005740073051203812050720901896176417604721160965504069401766047966643318689776961197312492473390538437835531082154058226360326655347132096505755195583736198585046117807488300970355197675263067845371435093437575807708415466365839899479261665693304459884998692743118638746901587403682878744630404846977848656582082208697652005648676008052463607092443684243791666966852283471744092641382542846197300579065631776765508416385535081282497067575136709370608477057214733822931408230991531898547791806472344990820206424630031832666788827144029776522160097416098171986503734485738782245169713880595916622465730448436355938831426533364040475097366357693315761266780081724063643928405077845550260526172556725046194733020689688876193007552054100812792922553114744278107927970072613499053826487092645693602231723911855488470221086932471679236326048332801585150766802870235301435305398432591896214545053322411836356458539291631312503360810159718107575213183558101992724004168925084649236893561599317489971858468399572161453640113252602839461974376270238820284767944061952943128120272109173537722438353905579575374979967262268404797281257575882283526092606015652411192733894220663598648669799658753512223271885995432980634301525105681183000809575153203525797590045053175536045860407741822054608799158723980632222849463580942207533526662901800381106722801494628902033899717297636549322316982027097007187362567781944808226279509156688491390092088742591915522619051373067129746514790506036475591445117908239320007014227053076519766176211681926558928092759404862161007293537732926734371298846072229616021784146915579607563453273902688038885483203683621112817835940843146841042452495024270093304866561935997514372003174693860668366395048206837696309836594946426497919970586293255065182093617316812756879775390198721873556740414654134246669499740984553054537660947293089950751862214775156763421944556883273720640715732185001869544748075640783531756647223950302984726491214596689658176590804735505216517434323796012614931827620686462234342022536437389319315248387455805266314205936018930215073651133834790365686043473944205251052790782386858814868138327042604632060360544182756426493102953659000754373280060935802668125292359513047347006389659139453742332010786654420219874126953872830936473216626874613820685650486894364622477129062013395585442290149527436310855270849678156541320601051671062896105415451693317770029468796431706223575676037357986575563782463871605926916195533884551289227362815711957811582336011143728493526299518695151531516458607980562906064612795278604022007328401339872950132971384570159022779939390524716352547570247731991978441389685387803098259071170702478306120016195339090442519791419909913308606056179694078399498026761746315864041433193344514380473699829238362749130702166316284939851359322277741550817128077881951671432104159070460140790100127629961577370605602301166375706780454654433575297649054089173616841088565041441281259825665690626104823844195618262995902873547373657434205857270194052848180748180864720849409862238902653064851629768427094556047797352393629095452107195080824847981824558864287914058067863411455330173941589957931393468387422488949829459650872397592231656875554202450384611071140595018408050031324341665008368297386205182561991131798923681255998453360801986667837116766032611226492519633548149788785436498082958073446815349758594333912316272502472483429352550250270553900328546014927584988146454679897872729528113157594492501814411858953813079118578789239892107337160826311142833976797829058386123753829162564074202834568821086974489138884177277196606716389351922932933949741683790825147941027220014802543738664369682209549478684867760029085835044684409043663529816388753047749651373124313722214420026513688201624031383110033340085261483176846158909582629550434970140800449641924783286382068383884273516098844219041234103762117017367817119476437503273289817015446301426234130516152385081601534003067415422809804710637262387273945828932058676194345597651602601800668387128717496717128543524558103743105264116602630697529705324183064294578831254008711445027073725427937423720693456707212944758063128714320373064650756049507126896271660376107780294972430389968179662901060908152963954390792967006577796502187840305244051781857553963459905727930062645371027788936392494631531528121893806606413790630548231590630301854762519565090267487958545082662866338939577582087134375442727591035235848553076279950336672341539787064486411797109340578934286680674795448732466969086614241964116758034158634037358144292815341281904023477464668985379894552412011185110329900009024438928907388774036327494627013136228537804929155975264262919238465942262897292985879691188470638252343473239909194791140441625782638515114484763683538610135052371738849845962025810090754508633118919671132146518432580026659027784023375373264440879859255971213178826835743628110357628772137489897567222880235880131290879375922175043574545500493565849865560138502941340145589936169664999316308703204888320082863601425194725145229494652255915239157967947546135664430365732561289486729051279702395844364313991832643039296301778050505235557074258430738688191621412726059386214023001577752217845246845075105244959275380089126157590855800354649202109852242610465215206920241854589223107711355555007098665552304555220834881821848137801362366599172374128358912302906030696776079012979803294106243954451431609152560080629448843211057838591139386077935465285774010203143539925591198076348960221683858255224577693157790435145218028148651868119384697520992126624754851549838060887023056681775011579363046996357954958964818965748546944070102289262547978452190209098608050270803702637437009547028665638624512163239840138055207396490947071321664788365723647632813127760950904320792397333850763873957933206957913795850381527661437113620120387821028204033566316577167578456058361533086572601039632748369344704734269120299665689066504690010390826198021621891705956036982263935969931993484956421368195221476509465771265356945348661934880152858684325460927646546012627604179452802311121670392583750988652977371646513176108582311697399525459383216856553388759436872856997196523942872629234362328169252740197197343614709152330197126227361243836969072331742519800409897881668251549345580992567971395828443862699284191648402233191575940789106178922809182647769536671407902397254918791937134313582369727631247255654204210446545986898952974090804750690305780954938469639225134270220409522303668840331951208137079883951594768290931781415296118848398149710077282631347556869793124057198617696246620468102705025465484848673169269868808998581815859220663027420300106427046473390826313828369367317244146252222455594923730566397843311420488565946222981118698962161158086240042504072374097998647143764954520319872561406016759577869769181333240768625755245496505022487185412671720278626359189643188373202306834373482164957626554240378582356720381149955893435110762360206243391777855971077277381430405928310541135274117710251261303278303401463050336624509362546621982177789591485740074576868664867694473446425092414442970058131593491665064841889438920113640682615094892254950025137498941528923691595522524663239778194778045557165361490507957575579328918049486848063831354532532741912465048232617930163439995369739448348793595847502440762285675078174499947036002431854143557906797998150784280297784523240842425807662687162109783452946201762572536080276367994387666713981448194974680830637789512931713303237383812670433748663808343540942168961158403467110209050232566332929491613787220896544024102561988868890183181600863151212829603279990320926689668568879754000178924250188419307709565819552969647366224688196676687050319285734284964453863121784311582493074667614513949391673002577478515018053778116421680761510659616190997964078856416228699730344289725062052743943982593157398566977360003667492808348680448917184680426837782406689335937281582243841264678038753132382128196403675836930158634100070044524054409456023332353766382676977313325343715992027007608520805327217335698167899412031861363458765254155209641601652117691280001626796839148326580942754207950767325982076212040224397869316085637733387465367574874013052027429401141084018423183831968678481960991055221833849492428958689233049206894603194650721182069869325157037989670342054570331118926931253274581849814568723808518822775152536802284421471628802481212092824994780137885802121281073653372176988839401791366029882731532680211360842906171036606893251128591654013269927830571414695211224216006105499417884557668630672924249710767170457219521435879103790809482931734566267337506373877799670615047467143873639853657378359597349253003842965787170352595479784974075721690498592213109510165584646481697931416482640652331156185050391521871254074804298208753266043686817358380005007903509610336700436604584185759842050900562253560989545782446906113868997786106169282337180950364279440100722146615686984126273212345452594573012507525559988230316249276523738026542182592030179781768048309465353531409783844970556863179667583421269417640850247084537908688466795335403183406619478051860903213520367643549362435513896405446410769410611534448238035566806074848955548013166450726080738244036276057217874516021272954567618915324710910558425881482013232822227781281459777008426889115272526549374410498784274313565302124266833853623816365747217173403139742278739493262730547078254528551240046483208141004745427478433896395696796043841124187323884572728449870992012235022574530737762885163855228565746492590445946153267605588423768212251289027121189142446806834250388217946268146039957845761691153571656258781001285022036015584763336985413580106652708636686534278513685598738253554060712955347115921724721396875598078095242791420598529738443783455015219390018490599168539692133631110951096033223338945653648838307708785550464649008874874821680547899758440728563962958853396105037199900633068046423718839153816672979809363185226605971283034550660211694301372226192253486438712925216499827015696238572697726126305874711327851660063501647002608276175129686897405875518314271195669611240341251160616701558574905822563849544661096548837935597296697375998072185842034226518402189570371342150437776347891269783906813729040127300963775001382119091879594385562255470837084748392122320253387036810346850948160137492654452895772234834807606308638098952249679034559841132196753889700593071712944679639918331953318257469849958981237392269691059114365763493125891635635958337218127050845216466607578329520675839440160672141964461852884058475254791091316605847213035805186437737477530671038057562567028864029911378666561057841842087041060795523799861667169205213508337186074781657950866587376989840854286913839023155718388243471629725844894903288306713890359746999674172538867320473817877233280729708737344600950496152309734682864523917277518129934483011835802029822681880521499236401838955715729578608730934827996823471487682133219599137955409785966457678138534623583115991017325298174888854199668977572631387783790266294157058044341268196188475038054984710844555135199933910422729073167023894732358547454175721077663146053869095531728105107160549175640149394885336725295816475763753142168771945946826304786707056768806698364666996628649034060954594729133423020316716030957288002386735794192716670594001837526118342404335025068300156226060154623982369126625311852804742447607031239045992378221161759274700985795838825691794216904210743197122845346763246977022287857586973784414123637984964966439359099076753498206783751391354317083165920407947443238798040730879077042248779972515794419821771111458363016338464985005193234633845799562494342517578685505302776524713810288000101948216086709079853262606235551936398808790338003027044449970760451182805921236508753713898425825836494907565534543851405048597105649218248229056123242224685004879856681116483525813796789963124138553644718491955294375045612653888152758677950369778033794062198384737288636846483562105384578172303238682580872855033287515666176636812146126049747344675028336567167362084424651605457264464738651478845920584112783208657943538035017162859825636970030059132835106567950507844945638878648344327633910076459327485836954937656032053711959289012646661206198237578184321890146515754192737003317850611924490592588874331570910370309577816716649550958074059480726850470783809316453874473617766412561469616698607832581840805732116065073884237946881310732581574359863059203855211518092966327112994385204167129016434618058581779292744752486770632917990971288935756746052597252447576427446533847051690629194012114996813627420755381711787229503188800818080268990595160183273717998528686130043885794113676981672060686564246371813582333451912364941547338286055830993455259569938435557424852957325334989516474687299004265532104305452175936449670097317303416947540313227183872403228706963320263631035691865514346156979566570151864165209928264933620296558899236157856781542388774668817424348247026857265569759833744475591542176796517054163667734927967665625404667825724643029155744907861049410854874637707010571344217558305795109160456378628071384820151940633499039138093634680003114159141720965562222820963312648276604853937659576131091861428520770464986364043611029138331269389555088868257442051193546073273827333468911754695826306239002816064141360926742108341304979977913344688794259794065545792976793497914386620777625676418667050213632935116538248594106222436870487224772918028794513077983556503871656744092728362184478827805940791154020295748989176986897849514628990531872944880958828621383051549290084565038290502317966986823930088646451076785494200496872492828289104334678861996519062997443760985211894401158127471609703390456865635497477603795240467428093254958111173223617639412107320802036214251286860119356018185599671416034691477481182693284035097926437471739804735113144823176793177979793108530612392772450437067400990791559750290120494253359999858889526403568379456476287750868358981564882637811307521015096265066494909052043208996020784957802924133057817952609859195758758564705963439209465256457268726184580225107023783174958733928823531233975970842199675476725605530240511089100813393678096184333378874548384899898585944514681675504639807906039354998459166909391550398271884300090724798992695552848228169144081061011722313148897222720215442481366689560670023110220214892190762340431895487794501256278588674276588242957542434158267046380316283676470554018333194204062825940731797059138687730741257078763757785456805354673648372251321245971745868272647608279328750021196834329253304457038474716306007670429379277969464685046166134058686565994736329769854748273807277282468099370985210490969967141346241296790441497049779075470543848659923703689314046230765570812806785532945332373660111136725709978198791588146927163168901945551019774060338277335789574865756482359833941783854536476082775598642074757680582014110144912770193914437681101468481720220682377177850500106887117920355220578571597307209256725210921578807202836807572486715725206218591737602295887161990707630636812369693680308922145087463815354230903706186504006185381363301156683166071172047052461556213797853320111483754711652898455352410593382620266932351758016023644231205102977082367676728851482514745553413815452764509213818832871948742706942979773085238659154084156435180736886847722569198929114482079608022107389641615250672904441799825268565437979869584521231245864048942962207171554538302214468672374382392042832544355900556433575220608766166849875132554379660046771152590510730151944467017578422539792106855241119008203299288929293713861357925820366267971560535076252452271901245171068672026951847252645445095598477799774337640546216946217369841340081255100397975311320512491635836153011560993037966888823252134865208075120021580306412070696237988854095152695864942688058345709235650587606519248028931416472332711062684459975498055196441627536287674361200044087081942801345169190909183701091912550569048845388499957449357108215084990080024999390929950382872883496481570969174544763667352489748886768560120053955636302851373842270123577358535863361291878665557858208596218296930866548883595003298904298290134953553423380013766360248269943497539828012639047049151743370739152595811763593851795006943444644920965972828147613484015933997868653757638084673010559067330787370021312089306565815233686504551943451299662371062627017607949009276733657137602605140978935575609622122798241679802783264213224039532360449235805807850296066256349708630091473022755799882106608096601357780186817364846243515574226672522620310218928478453209785755785196599589303422757743117335629600157938196257197356455237179009141466018878349182667277343350137184436719346810512673185847792770628695414097830530917061209365101141591433831157915071786884938405632816663255870783263021454077855034879380199296512623619899087995460926868474404384257810399363733381993173921494824334386312807921448597238193139225571997097347466484659225525201052102537620610993801892610847857860839495759652622777680738390944229628707663083548671437637058923079952843573156834731238239763867860416454685250332717616162547285213824738431580804314052300896063996486400976802817574445275259942617238542526932422312670242372494289279224820644194599975500781522449786405679602653656091554824230586342695290569617758889231873587905694548664062991276514694863879764723087157341958167777520452830918030069703971119883553475431722577393237485415943124937992598470598622166275014118736840503134648871112094279690484938338643042689487247896531967855505666248221537366256207538455643985244978673175361898891921664863822291550862677040584070966698083422446506862220297111401546890479761711414752041567348824752869344161927025684714769809271483479227296346710213204643255454363351878358670352073142718207662206906512816027628594329466318908597121725807575796065214644562904505828554740544355719983990859378983750919925133881274601231034134952565733292666096814688738096120219746673329172028995266970577251291403167788401382928098850868139012987400743495194963181809944311757875728827043679149971645241070939851168554766962029917603452146179042195342599566104827876333160059653163115355526798703274058687263754631844589440673611762332448053566084987372915715355782561938965343265695324309857070657039634959006560327592434545909182408689801341710895234438270203422198333795465488797946188751843531339578845093179033452074101488728127792920923755686144761226347568604810182015872147576886649459189552473334302356917817095109620730115044450725465905713043949462272889679775543165973414255122214595191851185417620014630568441564003299624228722676433479276329134065646120000984994550887880866147453579580610828546808679721131485761788812585758966569047935112852352672103614966417425506484181741448352696917963409276018069260506809281193140536692528658329990376969319254836083027215899988718215182817808215515073923584253627546640744413145705732697497901107312001443638583113379518671045971693039138336170976664922138774707891858856945873888480502869167840827517196385295236087098212959980661410019896566882007298150199426904365832808927443805053609942285353926532086434883570138946409639587330166824869999325803197493700396010125320593703794147178334798821343985097429773993883433067515276326219288647056125964364825326557920757010703410224358857440871905844604837513325972513518075406679999751518241836181427787719793259782580083256556969029995014398772471687289768209307809321903913051358842095877434051412667795455653967617418441758142371939794451846140300808854178085644782022835341028694948665237132733212435977179008889231698792560186234362926554444322200666817757987750110804518272234001524520332957527844571476144763920590441246023461751907069422197667911308005988782042438937968428217102872880976318137232768912918027000879310137428428572717048905771676101686707583403493568106781923244174988284415473953197024983176788933982289311973142152591078948493268033642947983212226755296808419420776385695848550830853556945977952243694647472821461011553622154081304069867938875064473998674451993299983653483507592440614711015416090224936750015041785453377327754377953921908384314808182415425846681771641441648815718338621832339200961134976899275479913252072198671601041022396969803303485966592529008219283258285114579768397932704642759690277856086945192343197114701247212426195772468063918516762976264557566468414041825630332741944998554266606081594149164642624747945633885637315569294795356935467664343399347887917311977408616819962054301779452429905895324966690937323568765024338020512245276673112423309421897182160502597311696100245495222954108098307118870917426137293259950489908285793033042200000896741824827006554014088809141131267918594286964577943583731660423412484920202187596778348025655440040499405530877384326493665976107933601023457506102483851458324041549003384005164999431125149298542687112954746260510955646099420096839485533512978969329887947540550867325528801991178308476840161775029668560428933620001120552270782088050234770122602953086977659877767517576826165286106891148973226606624384339226696080670462027564001872975300089190906172128948344202152928016605062357331008496479630659533095943742720274203995350585011837074395833870400564442271436669005697074915595758739591456026348242244278244450261651093877618301537150110044244111436487085343846723888740373910728148752444221246518764369050366935484062923665478291348012500658406673705560017584273400184884957958551913513103883336464614808012640632139656989144848551095505858414076386909440495924427529834943871367366460115680670408523890774979848237507862761942438384746993746268377194575384490706293160645209782565183744513314793721221897787511032769998104540203524101398461172195865507235433607339999071954239025581299343624509734605115492227502904966525210896258073129018487830146880645951112380603645780678136360884352925926904940188191165216445190506969586771138555972143887840977548363901504182060704534118073254927014611723681451672768263024793904809437014785908756736946433084467922094546259706330314875404734353644212472374499638871768632187092323363072773250788397925383124855747187987662196580793005791092815684215187813023018517979256682999048631385711457656524328441331198159427560476927918080879509309583063171488914843810309880290458234292999775878943977374273740093602980981857975693420333661265286340002390080073457844691233652540126833732114234879845611826694051482788216898732431251992801147999288382191868334307532948233443728939424591154914365232780060121551117651977355096707618370552524619386537029814728244109423666389158181745613373725136949538235860711513570336632605596403868572834079927718675232525864069031346359918995239674905493572886958162395355104595470981974417818343095415220597652454718503528449998497226241180735271029951237694112972126327397862295830171165023892414890960377180053827292395029549746975600655473066772578699241810344777488217448737675339702686165757425478043961242080405504386722887032207994173747628871151555967091740967350489677763986658507608943915416038160465000517040357830469018401479826376308042888559525157907150989117026509816911589880154876136512763940933801330967965567745488487588736007613685269645498124837787975384572006537435153002335999145782939157840207664892620958716126216115990517063167038568913266291564700317754625870780499951743809740609898160064048589373699559360464001431969512974921545539105545613246102169714318964876399103996425557556980167242969808430208303187630701133132157176416185538832036535567689018867038327590474615858316062820462438232268123128065558318210082677607821773085882682526354227862836111861396822985450458200010138921508765409767148053068540766500777436088578316672334824488245581576845152551473802550520204134835775881555671509012061064034134845763142632448264246297780725148891100603492652810371784773468267717430952218600647073712124674653946539073118182302021933263287238617337162288241818546565215574721974746679547072556580165074221915825373493201035556240765098418531723690934212784446762356862626610849499705183205524018928510521744299561422739677705478085789308367340655004153366939901493328539511658490088312490766814100257599925541200599708843175764540815210869582305075081749753980325937644445251946595330676316979614462483831713971055157683101570191234576400349480460252518177813645178683614068158078803334809572547233047343954912274054023869162478985087585857429190243351671658457047726373339345504473900631418269176521667690671026447558085206303632029564794876302590711885449179111279093510035163485730462159001872350294777773698022005680839582557984579505802828370383321425420332618772913022485458446322675411977611972093470887375369035622441736173572916963251247133443791950165109739440289839865605751240901556762282348480022284080178915378923263699368678003021809454218590327858371414686106422029201983611502605890361650862659689898525541188613716989849322865789567462166425336666530478887004334264483316278448200567837936875126378357619420818161488617163345549259351806755048244243453028979815338921562601106461184415344565627535102926091183123788457779764929857731585569308730560163876188243020853913889706613361602061094469118705405638049905962645346386097178957488718114146452189720069740062387288663747832945638891620278264133156944117018668147705475273364813942530436371071213477203883023126542142354109338554729941385433818575990163870708190310841563794817738471937047783472941889373253017907934919547140457618419305524903457959383685796437835090810502207912052229965049051309970305235240749521865875846052963595891542062362485707574796105755400672979547214233712803628555418938008644706396413524341719292843826598297494436671874070161417163893057045777200080337707532619862706229292460532311874988496919008798622070308395116633646414787225310015113201002976945595121823928211333357381017007071459807970529162529314976714844866890508861491794952671101134466080920565738284552321271947634255159839230592374003168337485061283834630471297825981433966535844832852923933018249619795036702126070792370474638857443861909142356032176302886990118400764584857867724836832874433646270927115146612252242687710327777316823286918384022020961182316892028925526135099153927428603850556066728051439861047471854582391155146268471248845321267138302132804902774692497768484722423448904826010055306328929539774061584906609326103562948338800534736651478057957942255778980820907658562850345279932072206212686568565631435745116281212765365535252061623847185303438187956482866346069290396956297078123976572057955529355350223423524369354801759189741296504676015122469337473357347132394809659521234724147950673295390080790153404533590552116501010059991648869821146951296742052528774820034986275694961251072043739944953737745354465847562693534307983016225736782848312430612081955417040109931043981911318786949329750358938255310127537229937404127180444113731880945911080473206809988936332897316285864715393678936598349498888302541525591848755492488298061658813185115047351515418164506095131916582703337403952661545867840888384058826667117459471587327787367001773771284308366181143896746749510158015588064162134590941695844840382202935330462706166990721590906759463363910792030910305188964077147759295447842045103413800930158644577530034735459144631179828259062793292280114927172309541028134305928077882237561125834583322591053311286940825631996252758632476114225009415264644020599963157350127473231549472698441687126977386748929823753354021026422548579875142934061646216197420327056678894530693794922532402310593773398041489868639344808774110269118374899432551860209624319279743744125407888742040590150042882718742213108337879892507348232728713905888206740934817432279835160020036249039185112240582130382555799334027091690711867243263869363057466828793991126191085378943393954354975934706506100861607607014019098108375393169751042225621722682251936897105253350594233660138291766293172024803623519435395012141059634447574621665215932320712794010947290557985349761549383927276898278481496957113843413693533578923364738258606749183295617907990251242000150271476615282820249852972179425505327240958843186668537362752746207364739658568850484955441162480430337519790631172655652001298354749039249334667888761859176351876122643240131137742773755270234091912254689314278427560997212396969491472366037342970742308039506488375687629783517206718482748568555648628352350323343545131098145674463286937231195207682339857323610878616563100771815776078769424494610543027900909954383799681144391415771858009694532232784263683333326320865445127371676112104119747917209731450075897868067430389145422408581270150386992084500776680422018094251409858653907091031842505131325326077774723338580873563633787783597579071231458402460709240007581520616901964732112906974730083862781925390234369043505887445314777223141559879157064740207185922286754660458585104223015697776407918695444060204533347292714393342930701445474312531831053636704145600956963073581393816221408469096625264476418586291562889567277299600375853099810242276158714358311347028107148285963370363430053438504389622818972678780273413294132395409289497172697498317447390223696286330943748034697064515318950003846937489802039519969233962809096231480361417857626124871068191629773350509377236346338985734964337630437494387581233162866864665519823610827932308062587191162575995727822533780384155056251285308393525944318884013776727388555105660393622687732421632369991251973082233665013931585914339025046897739544483677318031750968060401960188800149139245476249826172971338623873988245457692718485709538734130265008787403022710327817614380281483581053384159321144791899968596790652824825020585182753194364243034752395931418440883015332617396410464491970323467263718038421527829914641776658244058270019051966390809219957395462966293850566643992504621327673256182836460799323896350157181021340872126685559919869255637101135381276398082994130925133462204238355871966463622638997454028322708637488872010905590910629719547383076554084589221095980923431658364608326990015016575565057823008880683005261721791811013763561723915566284643777454332169196073582297660329535034249788692724147548403104850023204281748115417483468706457604921662012009482710898491674476211712065575507058482962060680740992856617893030418720242696709292440484404826982158936383823941804893812306907508630344488174851599186266160308639206031328772816822391457897211672969205772872686853000452629186650243199392208393614382538046468501580173145648047723058537078816725776174124702466831341864536167615948787054197977592426869967191198143377779420493946964880136517684104560725367511806030077295577253409557741296881809763050608436002204494035073649037204964932995655275913915919845929489008801097871657106327745395180280814798175787625384256730166854312967525871330880798045920238626320782285844460966102249285372603485840369584093283041426956409500254729271185786782999553359240148690677681165775210172127768183654363379967657887928619758296956234467373014301510555594048949331496406482869021837553577200665628402894578740670930295136177778918369619184521330045981203072489323988593428515368311687307823347704333002649626338810897003972386377127378785205556742807457135221731161393314106156397210456570868564485546478057654873031226600727651446761411619332151725403597556832257507024493598949895020179383126381635669742465136307278643973117191545163849331200379749659844906160445776154726968487433183483413489133197270681502503007477404195984426725777385348286342422553187004646221432049462854395759329440351904077041136295478962685790785468532107355126285095865120279010560864780637661497907255233631914397527361005129495693746802752717297877634690159110919625587174909192314493681053770806936290060601904726528750278881649967378225960581893750523334117108222893923262956095931861983842149006023773856564953179730982110322481985259625468749335386654525973119108635858580192622832376698494927991214996948775656430364979561543360062510795157107294341822257631371706309116286134690924177105325134533551010178614574471436478447428781007316290059658689071456232800939319017354324824179684702376378327809793425429505905677097371872093546067543425812976531729993955935513936283651534132407795925366841275751310390091588576922388772778312525918340985219381808026885272055521223679099006209861418098519373493161096663475369430842314005302686180379684055793584899517520073777592801203487765570847706440989867390931422397739610830153606801172564674051653413499077663375671207777519701255957555432811480727928020299746064496484514720158924066525767043875528391609417763789607643387822898276156562909812376606859578337286559089422278292296461210093837056564796647793017090930521480645017875844302778453770435847957946691066387068470928863569298819503489129789936267226490647290617129329236404752741244676811066958716234383204380440421039516915828074507496344598335434153112202645970935040985814272011879122193993459944199816611898477490303819384437654012796700663536615956808540797445418531985242331675615951535009797479040450531439325052002918128597111115506769664100626679987718763824993916119615201918359798729541000453814197546448236570373998866829883079916167948625906296438014987213370051775028227790399526565255088360896384544808045888823703140251380612503663019688415325749460368019030941888056112261846331629390973419775793250824401777565652034281512285233393669020142732792691971701180294672088054637272008379842802661016023829933305821806448081420815480030658627040754973567984643689583999870089920706637641128068881645497428564443173123401347791283995857531696894756782818418605198559715840143061879371321619724441584179059259055779507055139235174869062537508046797626051559603264002333888270314971526115307512068430474725201220350967310863396051346293264161214938415515838578154105917323435263739795177251363240322679363226701467374976753299341900211631378043800535102411956363594675724040148192175606506286365766526167200442462487778579878792604137099340817217283165691665506694533455361731253360645038121680862146759652946619982309582472163887229578359378316717962376976592868241512764523387318283113719159295570950802094787264292858326890303386396484504757543727262889156908635370779791315231240275456029407795367676590756382675067924016356254725190823484402614127759013268739615476633410380170574781558949838280507945211174267566558177134584108390742386227166625704845420614804401126592053040728753115383500078580674989343838991015799722476447050772426385331733554597934322979039715421926105786673918202030887356746046017714144364513751626037315641383057057447773031254397035055531722798215930558905399526006733063079227018229630947481427682951574061698930386490729296356843190444857054148514593284678532277434363116307843661435766399566390300772011541576621094378046351752864531339012446860092729685186398011278234026069485069859990581778592245932736801802000902841212701517345203150715035909977765996007358089153852484757444522217412698063911464979607844148961958482563185463675420748990329316975729615999863553953277904763537387838010660305593699570595380165659690636708726393823998384015625682655310530068179627031450963551975075982480624707268333576659398931366390650646416483263883296749358451714236203177807854490893836635193960312593896986464188040628534481291422770057945473931857044568049328016052926575669027324071008982523174739206077148789387551272942172317423123643192483285064762905412776476384073835196507967517320379819637513131895896400474628095392577187917308548892291017922101847704287017695088113362937057549646541077721821513859214197344596568023131889632488476454435509307405775766179907172456607516311590557760455789865803859065539606180188040255821675649126691468236902909556240121838751319451664929829050498226634571515787680189402834908340387866736675575813165433732694281048476727759813716053597238207700522367656161526943107548290677332008236851485125882804534871976028486810158184906767746923373255936983080597526510196902702844831361945476280317772282681286082791204638983547742329019597342740057145636067334977312547231967177833122333337750386242535086257291892615635832709290872675575544180589986978188814273672082293146561123079620951163787370275068464068667932594539690975249746230692732133141788861909180872640040043481179446269720330930030250463241396626418117522213772811240854304769219716592264324086874594624041543301891311255096215366238520867145802150747864801898046384921969512527396562041280548470145034099647508711421382458377355140674134059194522312781067540017448636774487776608825669172418115228117049702263621818329326864871168288343199091503198887343660388868246619438334169487214044342655325434058381308305430199834074662125530812515640900914720414213042367472154190820444310864562841437931469722652654867017551115854744796914878434847729123021647498207952796342072657778558140682975109968739136846754151386725472741914370881700904623458320185338385480282587540644553889406526330961738152609963009819304574922344918090237691722254023305187431328077736516853121418318291901495729521355427065390024038878901663914843649860733719274273514171603925955879961675743974298456675465220807913886040752239274903838436076107034257796426646275364069419764426355647560020831311523531959752451099336612757552718082705029321611366430622820309347725052264593151037624001762960249633274190593452223729664702491862675184324685912420577517010311705135365321104373907076983017630348811812666290399869709665820102415934742659177151789256869074568854374971335144739924780625676030783341117209579372189204419843973537685991760838373220744933453690714564404163339341144483802874955702972384181983643557595704830452227682137654464771205672358747054954354727920548215349188370338321176194995848508828236466368753861524596822818032934904705981751690030042175269494434088618701102356286422505882807443713944625895487664961062343536382187460169418322283652358754531799769483711502341425337248581216929364453500813361344910283200236435755810912862501190056752856246535731557866438374998485585746307576616343730087042721827506159417144865622795059478835756891671798787526988857073802839758634342202144143812042591654857119505040191649403790439066873045321103281877065707754450846621593526920060861016099225117950860038832381703402907333440603323688397281498421299135754739879971289971968518326614697929395958754758962226522722041939832475730817811764674362547660611848238219875484959160607370087418170499740973989322601114982142125179487523237952814413473338304102026414322740786918086472739739042270380890899644959543147122874952094090275240427781092898369158836076704528204415265872947464933537487750603132880335367747397756218591894899301556172117978124739273377154605637498990789818881041651810910496843795395619062517333533002441534213352630750172045586709155395927333705530503007010320605478039673407469889698754537926296870951124899151303996199575131003269609212311418124424295247793842719913820034696841422036449366077901825933250056065709499181981958801106995276561307123838151382659629067075703937868392686590321110349338464633990434651522620580888325360386494692328278562346182016017729210426080345552394317951995532645550621060678117441352219046221586906187139082818783523459594808558026152755093674395816265644675690609821817095134868745132567059976153228526748015848025703838800478290828389652766935775722779366575200361364924195696609904745047048656458897404499709087228299275641565270244440053305721794803751441653515038369454744922581753889711293254654749455683264145018084712817917856686990655605591515395305959192368598403485424974676521308330790287490188721801973707135735752394998115731239998317208976820846403596131377574353738793658003357207223899820341740504262977247460897229419903152202975637736793584797509779619923303791657194527095993806700394888178193586390728179554808776575115423773918697748998865367428549137973090081558990688534522479618459591922512125629349253408105777391256852193038492686690129025576374955976374067868764337872098425423185433814310033796198842335002314840429583320195961969629732472985043500258938456481034373949645165647996451253086395095469082436227451566037660643642802596451904127241680364205779729254622254987948019841348282356015952911818102744855692917057472832365512077719282876467465886821711825541823907866367297780783886774568816943880964181632618531606499835939698677793234116634497616016793520281848985619044721216816419603454448486164895068086978485915232737018832198703037357843163610257499855595232343743604790858295259712182342417533791642989951238554276038046039598166142065466656663448356585946967666809916522294446830227212830305587374435315709586239565866438755186504231356743591612297513020691883563965607823347200342895012739119537404477422450579839210356210489879145180517753100414032749189678291184947908485444124172214187014133634080649999231993235757512771711092043758896773808094708269782056278567377281341293970542841087405596702016255719646216618516538480845386569488850008308214392316156284624535101770361640442240223808904932413573432758396682851845144748653003520981778060867474913948232642392728568725330969663261669696278166490805210817938197352503692180687362049866654598538963559747135869113287608817552505449772753952390810297623465795849209063353823763284679331338560463460299643786660110140556013014436484754601574983993682259968669338354818781821171314548168920456748808412012266345018277369560568724520740121673316399470792091937613551681413155630356900439494887635158965620830024083589837645476092586816285163450342876890490759298116578964267082837921301615122231879671227841195569319350152323515422024619313851128734716788004367716131843363331445762196277452821230589169436959150100792807170769806472485152247062738382403619236012273008435000508348104074872756002701606607045099968582795575184794474555214555425785573714601509957853271837121779964541044667515078926178126420966310021247238548769187587882459933046512185844352736765919718145314206073213882904609159198868062593191957361759314948351384132067035417596607141282381639558510152204196585314326421210797465096041541250249480751609384052536728488859770828545998785813851433629259473112282075003557228360123837332003296520348638309702124530867634195769489955343313505346873305468900083746647355220016742514218569532530118435703621974813573052956177543278507849141349463031889549232072489151428086302421365146020364481849296624849445950733823329216521499681998860581890119362480078307561212568421852299333970718603507055583233002968128044906854369616316475867709380587743017343322884301134335496516751740740638220237893680854170036664529255336523625232050372777283603237945318960907200621727583353789898432352186636971636533159358024161521835230928436309504347437170673518049752349287371815531377513562802844094540199375637603800155523108028445235530321437875226303805839370101182180478929478836767434435311757379764588636885947964463455156563244220959047369358969875948658862833530624793267029500401019940444401737013797594166128166951546860273383564768964789646878280183439242174922429794505515012190885528591154465246207174995749639385267217453258122643478536374979442432773949176770604774552256650177929866771081465024317444994187075550798329719390874746363202796125768211705444309775910919382965626542709110284753195261611494824809512355341697378679970683468960198892506723314450444805047999002476153179578080839418965045550111203196965366415821936920686410342802902117862200451560831589227433389720266525317316430532413138194251838165228670229764175302881631830485411360208834456413708080463734268052004835240731060529610927450211494190473312646188503712440975615891542877040422073605431295660155940490324306311422384469183024968289871855623592627650356509065662943735889820221511382009423686312697579444928516324800327617430844632010074642552570561334475884277609087869851997438190985731288486668873488516122177625357015007229398922073477362945843596906877605076447979268620117188736373869197676753674459814751508628507034724880325430202313928321587723031427967087532759726264987601826375526769848205457242062633862321214834468653744305598754237909219589476895946272114011181465324221606319214712199436678618741767397986472600731440724541807164211375245711867465722905381512555427870651380425416852235254880392434481539210117870098881903109998431280517008194529030341578538283823487493075665392539850280552844243526497763504084538042020900480498221198131037578870386966131561538794154336034714657430580262002965413023568697433857369614844821749294448313912116442019271074867486903416673031282403291415720452780389004201703544003150950431004912881906719589750433653936823283499563282399060527480658954799290334831424722682205643102765110709039949002515191926095343771443876159812528145456211059932820054964563030625792373614248367816417129906630739660857931751654608013357166283192624705784923455165144864361273106073091669750684645676870766102484164366918512570495606922670722083875452909692521625690069029830770517148747719042382575162506839575085901274622466323340353264043380374300322648742890186928817509661225050825563595160470943424919004097854944732792263819267235855322931422617164554996202861766044519089926493381162104036065930871741858362985983455154643220690060409070341552794983127915822246559321480817364572268494859570383414702179530629592595052038820974122910539461604306800671662082717332555887534208292535093972172125826361146467189137076266606863823130578337662092512573530844582073771699533940434683927357658466649151756409600560763710197197417861259155994934930633654216416042121503012037724740778183116239824916313910272024200789104057067412799522409914836711855467835215208709408140983078197392343188834817657113920653656316004040385449107868729046788527174121827919656448169388031191739192230362020805545752568960048264828891975035573759740239121478746149883892855308108930986682965549371859911390575175938734963951263548055449691839298610216901375556589343617382089583877165660621925516123168870914383432319660023478557260296834802340356631136826274791447758155198729772901388348415044990771093580699868636631955702516665086789210994123750385838557996345312950634553353039617631069716652336745805830317319094198852949397710398349515878030825940388341735384057235245357531988592723645988872924088400482081864261160740259069532448421419488563105371293222853020686657319837671875362624389382007847542935456673311347988109830504903519005981144622687459325025392924859224288713467306510192655357928527677677490062836527694670286375676612574356417202536125095324349808616253512217193492290695107528349689490537983322712167539898902344244678378805381539457402458883404099980994998374362651318419873472380415853139949197182681460056449208403600223198023151605709685825100089113215967325028533915201385858927397616586793491710149302148878565388406848820961908205038219191519282018854174303650746941997369976921019714236029664290391538524794309350655810397939295944599433711424253692648668590038184122138237762316557203404154552055284106324031271062618365572758848705236405403109479729680769510765914594737526401250122964624667894242758569361164096959096673898174381231261350929430846579930392536650493079159686538940023904696950840900122758620870904742871436982110647769814489017888721452995423018936295255012299699642048113703848811402590108149921725567822992254313329797982319472108293902548463049053970387240207600493334006116562376695533191924982040747025525554415722584383408109352558649306875288079846550524059258727668071807946965495661884800252539252814011199218154228903377441528104409483463111113690997470274845739697353841465934735633951121341068225000990244302982607328210956954606793142518606127026672055851246011439133527140911202762734720038469553968466548764007609726178732649613992305638799658509162867712337105102248654872524602007032658221076853356762560865968043576765847792032723462391391955774582724637875574013623628786362835670460345129598570844613307985904862911529527894950677214602526182030089142784312816280123494085558545223279308552805206505969316268947628843089284709931025737760207947681745996515443770790858409614736168213103724330112189942533348017384271580574282260408731021785973708014404336038572361097359882805291034464954818064369916591699114259194041781937954123185866252150404785573403536071399854406373061782511132257008544299037964490238338132663642693844343793993670994631465280066979476713135926087412446538028203729526015102494554288717994254910441491548959742638313386106936764996849321872166165300717788054043928303594543339586319203473321801485542019906768662489157797577506282456761719795997988497032593495209689500279172592657282566582665582636049067851905696976877565172734721195019181813100864581662870163932005850970138736263880627909512523898648983172793998642164615540685327690260908210653814487261849755470079149406630692366875075293491296101533990109076840504959883991530141673319225993872554079195225291773391873707136386140190894206327755485962145882336602699067847618947095620875904624148107704153540984297099696290731475508628194890086351260616427198845300020813535431967100362230089129830155150530076016625685094262405321670418402720897248589872385980572427012334777682040137232824834855940006399880295193361013332580827912272146515592774403604545300250006191108510674224888540561667949512632196240509038623943730776053513923462365502265156353039144652186627294159734773359085448252713057811920155786130711743765694024510292777332715887019066986906184741438556414242816469805284361123586283827792601864225694270526900174895674636554638095299906220792161462685256388590437253954540599305687815372702208018802513608992943997579521271929105175953942278743836327178953117115159475240688092414101815196593782381350366577818324062897243648815315797927541955789777765934833731142501564561541081143704772716442732242702178881371903717723735906669246992566198467723973332592761861553263229539786313358815787364562178989291321118044079006453288726987070595188402186218060703876504945655763895807033158660082627718664846507275777739121560418214450233390793274279243050324741281359282241711226926029987865048860368785829279281934675449261912847204328382204846302065018651817001321423175439966394305535207903319749438445826750742904015610046407524383883628323724229234492128681154510152086655899554192415217693544192325079517317885394246589409049738138084478545578306514986174218595550319736970039040719721438599646448123613521278876040787291317344049054651536437116127629740127329788607176062529696083298317983510411609236713816423814184289631749306901863503054631163487640383209707097697973258303572601866251033607803682277849811659075438436580691971800932958407324521701386884069710996463257132171855725206365878548912888841459070506134556726816194237050239760592540704139350192062157374460901733499739525264799764220832989103064170946453427560086460342543794841970040176567321381923731640865804216203654349670897878706509397516582566839324044822757640116507803283774827718333774747247250247757287536831786798094444900252659625581955827024686930259947302408466134736206191273163752268812769518478357102981361116882085716007713622617440603414112964170679655174588437987578080224141626514032740203105659219122402701108212920008640130950913346779140388641853637269221325567599979447790032381196342714887481338793210151802018846218429786447582908068156638393037145802766618060550734019814269376450175853330230719653389007401253757928384193257166983282702844245181482845357915276228137583179583906460916168555969238964829116833135407313188228472391965592075275816612276420538550392817126678580367387856697861701325247767192742845456723507598500822690618755353087765344247884905995427515382239546429191944590952414350762982512335717011642090814985403602716512748667485176165752229279489036435796975405064096601975720203239144509300949382369281286848679254025150730043733242080829499239211607390669953931291503353801809087651192932896415632096137049419841081636277720106796113154826771315907413542810759437447484354982818385918492402141481350189879326543001785895401510198997397958359294157488411935569915579770233140454299935132348241618666746839375410789669344588741831987057236063098716416315090264602301113729905227129476926521515805379631913254522873556488041451835989572025545866150253173984006636921975187267454114689279144935980107758283947367665446991971644688600471722585848598837115748879342308328761728099574240900042779219451627554235690953638466392584866827849585189243245043843616908688448019753371134443797734846550480481388369954192893587377672636632895521954960498640974458008643275074443896603118804081719832293980940213401946898787401241617317130447410200229004678049081512411649262981068699303180854491546908463591990903979684790314152040250279819209633762975814542551297892497664985224511860279431318394554367830325779155520618951557625735576745625698442766144306124976318599507109657647842733773322046781096626563442555821986969295555874733733773236225665796730237024190497490680076407720148556225934987129499452272313348645542677616023199436001701394675351783283310455471268105141308677319307023693594356512716397011286766616210692204359059153248336406785880918238672553003053762547782516750323181684357801564817864428329747150329085624745236945436698374030937910075782477171232244867708122337501056086195270321020760636593655734866701106957092803085940091908836258791071969772525566560166156517338706417671430352195287408250370127115778612110365854149936517166483657334665762170359489924713638861886781095903280603936381377741741606260784235869052610603048580105022096595924396664023433326900147062496206604697373614265922571843287292591968838647970677907536804748830331677850793172331108921489667693174308605470494557424296669112319636447247497538620258273540336728588449223909925712743488660175352282045754613182326278405207467112173904053253803552946207857070427555581690318241869940898043692342776857125931687516667177107170049148582415844390337362619611611745077349645840053419040293214970617732349140978408494626922095978324137581003269290394936472282573629665861381465377022254702315855219222083868825562523766180990068691391199119483924224479606377570077928225492371971646480707235562113989060625967071324981697801014847777455174705836745993132028680571396130693993646298194964480923810886172500527349244421426989469622064619500090359176489640756616142483073187543594642485014041982823429734122523520750165123319057664170438323594881145704590171029600679844330384885062951825882570259202471866190210477099454230067253857326541240166853180778764997708691967831358793158796485947749233104392949880168314049073414413603643911487381257801111653903657105306196541612094375347113284191087593806716913590888939529629203830724121125075479472491272436454235727900458640377045919453182008041288168371771356997559757839614612942363199832681852735672551860271343795365830890375005593093050331871326284964106440862100927216796787833019073200649455850149266871742784131458832714814765566062363389831598182311003769858885948512165483479113027282843142150689347321315060264721214400298973615835935406368062845195403735826857307224322548386724934422598169115416084382239967888327846990978075608104898026975449865782869926283349107530812080313629826611385852418877115281140679966222549300126592288713959634369214081264893511960720062065314771580966967737596360735770380031005354156138984704432077909294645266846877975914841625472786404346858145318676772934616810142469080333464164664181894546793471621530399688080403966059712202303069865548630464604863133528800834726921390312092453745272544390621500015576068811421066282958483512733207889676553107066569662055938047607891006601257479033431866242842789970479267085765887469902525102974806255144569348089665910036997562012225990266024489456788595845911391763448379954465350376220047306649517800777098540898016883784429936347221116428546320379745943216204042298528726351626194454153831359351223139963169800130144269574804073317732498355363291457483636561209681603005691021566374462594590103608154998203645216720413417413971989822644061923713126140259758206864938136050328916347951462682755824061587276425421828496055514517429596062722360579629183454261156561955519961786542044654007815735018118188614451607269122571675288131440446182907973421909858963546187097048229681378688238987974607234495391526988448718184999316245895683615734811905479413972692133693984741527139068351266651706384232673831389791014796501442242721905938329338850664454782425016028114090403399512487194237238677679185821320227094139308103663750929774520367297841559236984654287259941671550187488147366195309887578060687246536510674300222983169397866855400693394510162440476749309456925086070666957189386247701909965403432014556212013841198320569674231603009137142662691935225312677566861774800071824304025255657522185381730219441551506100957093334301435977647628040385839650810611963385621135221508251722550045624542960777596058370900418151269450664118387644617467585102770540639340546493445000842591463065436138959558224819027523980842401671052270975600759161049923285338933229693849344382749402588301160055032518277572548271896476253321111955492255360837456774001300164860181581613925201136072202968940492462235541211983499228669179004942947066280226953908713680942342345746019032197391595258708942273418990496488973163524871036224888931899069126743854981589286954944336670154571172680284469215393218650812539107009296582445109116092601910181073846596992221939186944878483767214192854940622405909968069326833092803397155145997071857024656607259562560933716762283621850116585252871141362532501266205627758841824985090333171848257727810565742593703301173352008142029091369003739724324217739217041092543189160226772536153594464751621201998970647353398578767018766954338510105879683249304808449254071551433857640258088597388275584311584913829468978794658468674968399584721858227080195286213384689697914928896526522820927301660705489670423365327525522751366387565417857649649130680195550619035563858530743798743949499297747321995712729116031241568815758421865515544938246908119867900513480072430833404578272664110866392146371213951985696528826356562001799528698729826849902499987807909151606412394776414858836721228190580457885175606442233513660381246020238426381588892025660730809344841426702925605143373795309596074203589587310131819941567604340795935386854847506423576440526589921334852752048424449632667563227402357903916715519006961644240996504699929348038934345525647111315719042470553321979624332833976118507104107761345653137080326299310632558789224959861478883592664355213953873747585420417294926217460461912145716165497632639170323650116268483429058853508258715231910503283999401380444352570903815437114701916260686921869143466293365429522116696753422451633385266081977805481264465916465737024105000783366487561551832929799662945041054752700574701506173395115792913377638680778764991325447577889826366657739245971392532712307216818341722348152796718580677138301758875196243046969857717854553978884088016934870833486733347620687028520224797175620398675229067444956948418405552326574886330947174806320131103628591876863506930207457182529359460211810461468050492722568178278238301957888253759984361173436974795692433362555330732026141398771370669616174981628425896365473528726365865894844797171373297337773189337627937850855026125266516712646097426398131852716327225168590895691619052458963392533196620349524450766628713928261116308963538046393200650416309167939672900574180527408099381735457952370081400035622275362774073023891455371699827199133421397542328843487899369878319471197034938857119525681400758286187235585214497568514898770849282664756545183479058683814836574464938733262903758694502255218216006725117359084538860482350532439951393353665035265185858662969164845474665788833806435452199401189298496244205172853783813305353571563000246976921099350556532636037446108404996202861972800382802298194583232509569146425338767158458154436019584911640374289703544779873311234823036761286428004908303369765516146323262107801910794504674203042291262628737480606962066872187088751853760904813122246109624782787448953840850415311407771247500479324754895805591924964149503838556478414052827662806335088367865315365326263216855077893768389610047731308069182446223028215739938254291475412182022152303254753791889689159577810126419178597444815252232492946502956972035589985323464240990375557086985234479806724824091394770357903008843650130271678107365488195538325596106661135103281148624252218059671955401350673161054164659276123552868956540585758141714591683570042028345186415699144869631880342915595408975188676517347892242971600541985425467007151767990101867829810585897929003949594101327523189499223303929736738849534035616073024056482818007155483275630893801980139157772578617936480449529014685331203058953932729040810488458381601597439016009371415994314884030977406144346768719230867003642273570314405879069556950364825833384418681759314221450497816660979131476106835141852752584535160700388171375678809428384773894574742401555647283730708543448549299965015838390247350636206957723048165694186840186311710698088365454072997755246639043992040495415970502911464486930165419060539184473401712691668412316258351501889246723392066552040509581673547535242322074425801140763472370832842468462667607630610156793896475830350720562046462627511664668319787764392843436352108593329075879092065907163068567200054246827554353726935745772945893993685614350092100292334474999767907391173354694327561466198395338495628294844579712841935675642075166761946442763742560651217083942378568191657867759381658415757330483215136150930261706979619167286310397668765006680377249215316336537688752927573956551315638545847257986094859821480225086074709607972516185444171847108652983488153643787137027898934507185615643110631942668796767742737304556591660213861979011633360250131415239474715807174211436899311188441440205953681355157285218023308244949314505833173935952636197438483382674289106576945680935802038439444466366264341129155777012589003094041486389194572014938403001393537210045702806207720882059459102895268269089648434345474077806651659372235515454839843562627316653048351578885508891523172323309175542759227126491793739951312260816051963724592176999579603134998574978090656801947611936559875214911793807803894417879802050401304641203247321642216568172569856954083501329952876143647266756910715482792344209689348645760229407656145803929294036861314950094253554811143580963477485177162924838630246530572667310341094395975482175020910636648913484406846310663329123178379323462646789057620857698104300856378103272308569693833367147384171196576271099771088697872507640107443114204587369725155241450728371819267428060811783221850501756307478041421283543465952321967974052384366515610797426577894382095505949765341730680285752608965968794371486882866246213522941655460598339453896225905287788337985976203996017508667531621858615147747774487432262898656351076089891734536779344380133428369362866683453781234523460391176160389036586966140167207581792774200751906564350980515280399018239828414340105393703240292585407926676589865100209588746977710193712965414669268301629832108957817030994117677469720151173358312389589634014509231837683033992151001635845850321589164165217823966944496712817038930007128620501777311655055097954292850761546831948997445990928808696048050596622268743959341785307845895631376652730531809970579516329583882267126844077621625216519685896626206274700275114304277149701815128087839126876744304783771503098942308893832441643943120381201681768273904691584017381619362607878249107676633061821289068646964671769219603012028945795450667956528429432041655563792581001296686937886511510252845163327532865238696236397083697933967390103357360140906747446945512703514689274009267070429503448185161191657756888701997055454668039577138027953573350286381006062854995440217525842689109890984938571296155692549470020083050867271874171440852881262141693693379319770153871957292497894715753021137650447618611083459441375765786985046880854933905433072510032776939311973149674205885959564440896345677861743344703623820466734239976982312110629307264363665414235199668580876081668543416329504522109126001605062692759636239097527369207432466124906304976426350837354464436360801674656746508241297912407251987319352710668203578992490895163668740217065317256029568087430387405079381787518633448489084588911853408626248098362487777019210186649903997639151362773199250852174867443373073059131677669841088723570067791809907580183842017713721866143456138274770385086052957780410575460518744696602450524606469346260089037947847937992782669998692073414224907099498934678528148248759384337207818895005557730726888556944093803886309994360604506350866032228079269491002629839945888275778515769543962069765527342626600201779900115939205172808718346204638475720267659188545207562592712976567433529899788153526167742464437770982188738842537802690131036237393487872224316098094221626543640926728521522725878667450274799239958308309040759601400447346666567764545737032299923268425887490398545412744952269449364407466710149204953860556818435019902258569073032247603516161021222390272116127178843233538352367200385592066654571813404799851895403302967556985891863213877669963807909850375353025713690866446655231912955381070820596935114547092397171208170900699680284513231928437720685207028952291180987966350941802129726229151784981619434525282665631048277574910686025512531749627134074611751957958417942483443991006356758837506023288243464226153488447456988438281565354075501089137397207278194544155039754556133880232169341638198868837758378123509511508358539526126194778254683684409301311175196053771024660974128861091281245103409525860958602466761246379413762569490931050256747470682081486092039034444308490137793808440230247282067008206676793499254525743175365244708476730252118118040100005872416032418541975193862520819475649268447592968837670884964318800585984143109867282804154727188424372395311273507384273036523588087267885950164144958196183165786151289626922759463871227423289358050278909884741318280393713668946288800645528375513534872460838543494817847670857260108368540001555129161610739003125877773554113229714488870858601406652040299875379259574005733478423676783460992272727774959675618822536801286824227298770814575643696511154641606630437329275367657951638089785586042022851602519900479999259363099910421511031183571199091344639092609871965332758619384713373354451474445692556515747616208572856922575701618407806353925227819580466746076893261101974211475255172487363900590720933309653930914560368069045373901378798817377518052848581486160368817815676067018314045844026436329204015850522806765864005220351520498330159392802675370498774247771536062024532520101420458679323786493351867227566694204523675643059705029903154240671124401709444116353102639616019963827236352339005115856003998994371880824492745170297118613653784084620554736917324429853005851676553759333723992868744157801911803367138719992178169276262097691362550296386546256205147067572355003064862145668651360952588895960601221733419913770837918497203784339304358831911773202890730944271272263947471466917811927544134964363457671872678629398069320485119044479868827747928046362852012158079529449587841101695702803323602602093491547002126775290886227973480649865374199344136137634032117701365868476916245403025542615027081466994720427279999327343324993047487086964301869356760911288427680970873132709373726805525683161938884221995862942530598830478463698386377427677363567817279360783152252972892427276215149097412981262352680638842172528400327804221380593153821618952777056758299113433335298141988256967647118456134348860942825283055712639016910389276569355089986839872491552700684997720500106345956265619366164576878152332938945659797871503934718582787561749928202474448906988469260615462897616259242716499428497827872595318306200823325016031238601465358447751194707745006529596223544927810228199310461558139405531609030643529676992558869836595224002663028322464489450623327016821486041457208018419756070087240347546741164902422458182484033177324645933895368539406192431304657612099775501294228046650335891156865245870244882360969789636267901240364185401846993122403344108761382915205643050293834604152024084931639684357498774858907247767171049878979747427347130326906794262047026076513948051398307383885335545983833830551133859731166834526400765054272944947469535532333970552550363803820127438897086570051443989310315386772389361051597694272881611195551286527622550721445180584247122856836011729344011132982911741332044822982398870091411272406537827149914193333760912516228456009142462711808680469793720761864549352927615852838047497573483129083140697760836396558373095509286354785477471267749080365279158183942662315464793825978259707792479715126428620203996144471818513674648466250130597037290137473769290102674391281055367251169027418839368551533343219405907924536317203718359389522210744451492355209626681051797256917862839659075464470666701714147576615473304204606145161738297951444606976336211691759650931691305935461928130588314161215869027247368467216330054124301340004444116934869723417835689257283307140357815812063093813224404601471196846234028437423748415408891035452650290883810798311080456498060588010263672674976331386350600651760540550225643105218237110107161366786747622428340411719060805500083814439686696133579555732411287480949304113302134536454681755673846554115834772506869704841149222310351032527518631015809337544889294145446771874124241788943585354917972772195240863241811814022812916423265320304141799721835552449871784497962152417145835273472904309330308499403113055403829634760900804065622529540480689613393775320858621114360273523687603386035173499571445692891012033211769810424977230024078271198684835890111021927375390237992043182697744460625032330707833598644670930940870834096515448498490899412213675580587403485312876086183900117875414006759360199033271295865231063364729094707194360008171422739502343088395534474146011593333995555820641887270011988783030766272316320799950746573879311520512394058575420638951992472359556338767943791876562234514220271475119145296875344118591055284060723465562171192323035977432164975972909277920646772184447999351186879486416125300733500280915152724056230072270505280073710675818408474024278959557771021904944930851263645951769171057239625996639482049000103019566980188319385936475897935759911522112089582992303480047179175451565895311590836489510725963173641730994826454722461137457172087647410678383687001170459931910105811565086914783465250771862589433728442661406210400504731053754691395061641622440199792703489413434980410004944732950473561865371518375727918490148336580389922327392942187214595557548181801094809252322487755423713545882310176495621758535226306099008025508190543168901379146971837436351168659809643727030520001959622606350667983738371790563588811462383676890173412483652553037900020234238717627533526062295359129112111968657396411774389676125711108000764510577614443283049367367957359395302360340599218243619800593299377586326333802843074779520202618165781572334898318514095270192887976312044614857335744886292400601785259380047079252270404430832826115082780096940631254542011720419250177262625197280280944764029943782017260103542922184955037580270711703274919203164150957009973365134524899598849354519754990632981668170767191224201449425288426705717319374688389872645152220281860732540804764833802218960423040270158149349233696035660908361903319619307270958977380173265132263976733729054823826071389705596234538187898318592598748059387372504614563819443270426945397244587050512903796616730592371117863447474850722652589515076238605486627885169272447824243978633244217461650528176584759872717264546244728894891557016256082544390672018573327402024089487897807673656796608031847557323032829539328914787005097516587556813548708258084099903608068361981655672460565171496776095954892407822023282228480063109726130971670467246850020100136438248128494382741848215490976374603251050972420501163747689012973514695007525621787852913636496939905242008720831847055275336175426977854607538467831323405284446562512014431803611606559285504147793534815927649762958445851735015624036042340582394966009731947365701084725046773586410986484520237317954306132482144731598433929723796267949944875765073055513642472371750464325884029515346195886539391236652060406076687694294525022694440230283133374685421350572283098841188575706875614106005777399949288364071895012671110816448813098800414622047284942368149511992849549085865909631272177521364587492461562108679913069539670142371734966314954226794734210366514218174515046739581717229738848391832561980463471852582726019615989292906646672324449573577071098532807399689386089121884285389640480755127148175675802973444409562543642587216322209313483113124543664855082326928292038746064749361318427304344815562741743010087275694662447252532341636075031456278300833630627957069087780497165049695834481426351864771929529818601374222433256013913499472810145735035033074881946132799137007888016254261275416163631659667304697843485124161771016843978323098227447271366503712727209780024454767290793779618395158942581309508392838628142455006106993151612989581363109280717998338320607598674904465889861942514799249582224344448018238584058440308533869351744002525073097236345547920689829332377841766892675654960801838731608066146721391341285780726927719723457354756672920349830694252491452399760693935940389279814848049873134067355684219935612806283484748171149408892200527705718337176273619484000252553859954409447049151482187134872944598206051703684221659382182799992268885589662427924685561271943626491453813289940244320898180986913283682937081758411796072450453764475745477893896790722906665238331872436055011585794820629218987803503182889961272186573591049760159985883568735812931027132380641706404148190438810423719800093041644994116589214083783057640113807728556184885341664006488574762381584626780102468254311682499401854799533613311846162639133305036383134943445157383176703319853608521460181195706496308216554338729732064988386198202764574239974981686566372812818674364934733932335429996275117828888148928286396819214202990186205596916733065573711653071078372875796629279963128468761449265569792596759117799049126952097972468462602513536868321205346021398537638905817667607434045893415281992892711607681957309790896898999381192699515061333033218571869249471143676448521847467769283361877606507162186415266470647893344025817910221639013908087721207525832392071143787117725315807258853486831451489371248088508205671456914741048875258914800813675638106758666830566502238030163145187858141234935397535503943176937572633080861400377761004010900482094530163023573198785526497441455896195382411754054205778020645205215560623666316786524756168271211356627908075497124993503963951447903520842469747318216013013161164130360200786007851634461463762207978112405441722391612961284437280522602221770326974631705935238421367108165728939510128480497066378384928834678229239009846791044398095798785709099271721564135966072784736831725102915615600860941794125955937657422293637302600966214037544299314845664058507344670267434616392271135898452135629170213745956856295004021270723766012917794766748971568121760044230245255677253846748149325229439846397874068868249577507129194107457814905917517475916857554484744380341370327923259094645129805675792846553884796695312878350766662760147181808687291298306114086524394370966860864888708285846565033660698066193617413324412749223100985064052365161784518778112503090403602277686958649767129921744886940523091946215051171571200261859711645666422907702379695614741325812413868794850917693843314547684640035082253288187709420513920736062473345948801802943931045922658498371221978926503404793273244019150899554024591420811946956878352591543316321280032940903547662978419173310898904805032294176757579517707760697872310306269000658857049422313085945685982415203583021917703169006721479957776991714549582898426909671857510300093908859460600473977203464753803229841056946780199052829452411751547304702106683445966958413323630363651131110382142100866928900708734735179239040861214576863762824223309829131263661225197452313224346853506886215559654364465019047250955011718522260156182771910173892469724353334961880669348233852298830136332202154001750782519727623821148905951004376122346183139227183693923908260507457266799873837584990829620482263904999333104773985652035743269555217747418128934923717800172640505817559050935802238288781444573392002331376897987407910407012607369776696992550445658904550963434579204594673311239571361425926295550127819476281430779191679674975959208522723418228102119655813864782338258327233158524006177787044725773487690920602216116804574248361160972914009158393741290049258336146828811459856965254926777857598585665894813090764250905259436397370649264202898792278481536007437062051669164227027348756228973717813848745259105773939264769173314843321424870998699420755497668412313133182437087352236571945441350648953846685455132771071793722389084187329651700550608609755218499828152148523967780594968266383134998638224303436491767366241778305434008214697316342958772108146359516496871681503725609911270156597656370102475364917940602380591745477134198776602981129727436935084707114778677319330720285543178735002737176550562324293285490789626850340261168698809813553632025935127573929187141004303280919333883994703907747713571418258203644721119104957263979377071576106533491413021745417576145178766204814061224888865941239902325979468318956031099213789114322646245644898354847813349046071736400329329328651884287291870296706024955883085388158851874981418684328065529450595999802433564209877730918954677907822965482097495555744763461146189333218927434547712482196710533813424429587407356134799177365915462279043159753585461914098661313865100092322487689720394144712233932827805715342418909497634452327235676679732273920433613038300638595508190427832958825780841590669400365447219844026284142044952855343921207623089298835440939036081507632699361178276383484066730836819065246514399119446072808075199792485446777182346872015061018256212776892702911120919023093912155668471462926902408448614389087967161476785076525505193103001608307512094144743514416885370420728376083417090942054785335135596192957236709300592425994180075633099865792741153137455380212332404144463732907671274928248767782358625726942982773719161217646901962818568828182536314363328021766376330011570654220036481580305802239355989275061919002924831687875872400555641792291691091510928627662240334262017536248986537365427000269682063538269657920495796486007912843851396245026983159801812621820121009529006972120253579314481894723616555071448843592578461329760630281167277512486319979554181955234464139942121293456356280618315325552572807933714458426699228017717619157148254211802019061602122416881355523560942799149849688760879280861291701335138980038254827429389663765334049273618589820182434545260061782135141324665291685488814358738207107533558925312167688595908868225852432445598360724580271074074658601123054276580686095584711460033271785005418707216377677033026185944466478338760071200141125768860509722731018263872262048595307101037402273402713354831033495563801933369220477755728875930336678314078590737357869657716628954008943003443140787592759981862549586673704854265090039803074350600280971428140224157909205478416096892167763877883905478434181439377960827852400350048227815354086399388191101157473104326479995223346107702924490770505294614250483327235933150137131023306464568883177530604760698034948925899639336545946740241982639102383330891201506549109363419167851063587160684200668679080729920659410494581577992987155881237175433725347144022063233544560245582539717014927598107489232670980094000444570068232105113861183772774860977920792038927592363327204943821528039699571585957287994528579260959004496550476141538708527281036987797959910474898059858571992324973482762099701668073026583448627044138805870892923257601531713842905388645291271288325564998577681568495098930388217226844924401664020246618890961452105063428896091797080258152909228424022089590651812883617647620015644521009163553464092762746803717648959925357580581767711216710210328513464437471080661637692459558894917070450442184464272012741667346202779815703151062510939408856053794957763390504570523332058851326514828737842665632924559895169553122775179224799007574990176817775261826025724605335006412069738926857252389243580857134396699609404376407298148092444427937464004948266801500810884314683424377507957138135489622769306893438460595327796729314987200764660340119352430406878658533941284336709714031198759257210152497683620728079405743606292639019871035459647388796075873092583314182958533223824198525353423345002473538674508217578332832206820439664106444253135338235758980566810183303689805408497862573922986284449032696207614371170932027180602642873353128489259250340999016055466392885747188415414689303401948136514705202391775793583170144391060760474843613295485578031029510177695427367358681262625818370629810285191660088666034271345468656602587536827991827148170212434130531446198070303801855609418349280794889331574181776740598212017305325212817288502971870423305144936659221880009244582266547638542529460361171491917814190753643433585356610670828057303921867811360162009159839746211840494345292109570314161114189241203820681822165286275518076733585242355437442486724764399283364876579223702602022324148879291782217148754552745561705423494836954340413091218564729947690550203568914390522818546800297333998687555886888696236139161838150487176009715345611078574851983563045561051582133521969240901803375084798834200923502240045778251558643257878208449494294129362095047129833411727305044058253047773482042670515484844094521729383988479797604961005109531244109103862995758867912319279683673470588275508689158350425661091402260198849307352294143355312848037123692471059323419362284607371478637938682523247367085656310167237646889659823121037004630208473311919414322926779222342681937763419140361189443816332546052487436167647481171493154564046843678689931872162116442335625334044052799011307284726611042168164515753463904974021638638993119491627843498841097810677436367950274886648603948700074177295336566164244570223353351074258516616248772391351556903951062983710671010456124266843312540564808352838740027379037359879743390433915007653478135284573004228502778391412498217613472511696255376851778682508029502385399918380118756316390086920857437920598542034018063473668476243725302230723971608700934407502285050977795576388823460767846722987786873540396337404076380195682229420560416128501314445818911100576151419591957478068200757393817573421999973316947305742592557649311529753582693263705307040363667100341041562456597810680443066252693217006236649304942958771393008574021480137066563007392854178469992222909872664246323748750262371921122258639259360518457334061492646509741615572890704111675182296995287632243154671636559045992812329909232994949456797104899240361366632526215120216620574675973349318876966007319858174710563167982776930576639974768280041643427671069523233716684536475846038786717349788300314529737791336648762785867754710729594144358797630801586751144720345579439274357949046628584662970718098663273540529058037388210364740406531817100366065676039172607318280719197233709996173939132643369026554716814724613119429490455457354318552029239676915871098097161519213864479695205412324972037282458077742400322853588921567239180660500781072694861856140390284107181753063173602056205734306184999771641119135977156228466757463898560978946909715114897570866925208976654611963252090091516096876781891653436732299468624119116285489302370920942670054586962879417432443488106430227019044418206536468787762045071344501122720603742490664838332120414530055392583203286364433325574840081021097458995925107894580363576606148723021807181287184404525726705416133549133581546912004180168681086777726655069747347239573048883836035096217883717809959500806643219425083925528991725777874952910332920505706497689849330775686837414523850303054099151926504927791160418522670488737434655039422390012564614184138220452416217641937580838234967732850795895450803053752306206522291521294918823654674448509984048567264044374885685652765232156866828694166870014847747790408518182013240814436931782998063673507575853823842214733509044603829676259212081692869936928667391288014208217321413500023829928602171295068469052691199124597658258630781886552968205213132333070653963403543353226790848262761458377361038465236539229475093197787658923778614393195414106941945904658010744950237704308022441755598991491852189128526621781767399090172345105522820297509519696692046214308332537871162264831972074054010734020630024706167676165663991204940110538160083444999313595310187329891931866538519005801625223451793213737588083725170566086228799732936306301572857147934793646241283460871804563749243654841841408080448680756878194195838385429296292015001314163698234382264755632850163896675165035579349809300891338235947016736139010422329854871274355205176451842638408408744549364117576683995205694601698432392743870373796354080588583305517182171756233469463439413932984995756728698000082102279292617055605386149922225089907892145882265654351088403003696671920422916085217566008498455128645578109948745540305184384117242157855855788578726262525108580345840086553380187068592056352394867191907926167104297822843923083450194373054947331901952955046402202341789052582191268000485961364135730231089094177423605897975928258388667343494572870523233308808639170414128717155555316984541360933815335741808184737996681504139974641249942603218612446025973954492081083571299177767539297220640020920882894683375446406825715180925529788434962055992687173906797198729171194770884488801258689597943903646492493142534286302444002123870115433529123318076196992085495064973784614435212120280679357318032618072024978927153424981876517223729248939339365033231776031218007761540903839142329783600803054585077397401028917739207953719416311036879969801545194065432074410752681801590348044581426911373029074138028439103680548455620661823678752511844885807972846528754679544973239567728286649220357799862335987320467184070741216169527660815255850519028005337003267390578422876500332234496734392146437237205129351594983539326012785397227262499037308389277360551470656220559607476967107638128066127638989802922966253171941785061982719940989481823703923855903464467010183990025857162025456001574028744839282919673660564955613389342843880432097847504463649473215411488638790818653986584623512453987074656311364013719453246733514675661167975067668262880593309410830094736133121620461663502768595428247432035423023244104674336312612197369844955092624633255305868935210657522843296891949476889914729559044090821561058225883637375123544296657665910036722048154585780425818992447432978439847210218561492355628989425139905607783091620143567427451592959295621840501323747424442681227049982158463114916628275825666487490527630265974401787311922270133259519766232754099548208967521160406153736695704960307041791542890889406527408600689768581270780613001585934420389807363227710816235379342860071128223313409684078988850733163258250050980307557237675381246625798909475037140524600630859560688810619930344665511229252664754043839444009017178884956917821035068774743652662501309141876212867734196064661807041023411818628555772377770407508870460539791499425995299618404471779980959741722828192723961458259636111368655094516272728993774677989653841722041833507962393329713400343475597270627700650868073628542629591750141069771771267866239700186581444530710223274368958338420580452112984195722285633770777616334204446959379677058273366308991904438464131406614087336432132754504538159590118832808770927063443141150258789717978967470636016249163095349791171415207427627391931707824141532407423979573829314648288999094468615524581919778056426115590960840702315429220111160075440503121194771717854217577131126942640029042361262237882118923726947115355424515680604672563948140606025272829773901383362449149588864195216903606138757129466229655337844962924213363783427464789908763001172544912744324392592184005780256515406398448812045068118010397477683743992504668492309956300185619709568630350161074033468044253224065724491035598378144345152069657863781383119656552672249514013807748599821001990885104671430152031213100264511667134002353615416014404591149075086389393800952378263079972171105878262387835294375228448105575449839981778213924925121938448731730706391986946319270965085099143931248006123567248346169425676323980942242038955148699476469016816348461349062322303739295585065974753144035455445891794849936669388984859497654985368715944600214705275047924563240330740878351316456910652710380227496690403504164794373987493773504711620040723814731372409937855067691051563648009024645682700773784542652995879618229523253278989580378668142022479832710931227274707879202652338533795985042444070904487800454433403617199233457262536667774107093868953792850303592751759949537457764607613800564409854542027939787772762425538340054278847943415514858829111292807081859601488639709503726913934504450767372208808147348956591758024398915445823311107340209544840129745631290639493139610307703887868120911942802649752306394926571446562537421188563416883689103031867643215540401858346439658505962995334218170742820629730454719675557844533706239857748043808299503796208354037875252671698668593773444174554695006107304787799773300756496538615765843845077315816151315548019907552261711008027044721295073075106811594756239373991389949644738347452343429551179820340670157774045395756085987169450330876662987145787039750521172381989827598355943791626247696500476543711255611411482184019312914732222514123227547302837366420005710081579101203517181227491944686048312994304197487510753543218798030735480810713266030004741814397622936468429644553225444625730888751316913301863637377066622649594658199071634099643892316495953107124658584683162764848547253222881941050737395730151412997154355349480380721375274159809995957554137684412268111414821550912385067335252990854720082254077172176929998269534559782218164138285563221232402464274665247451220012607292888083598765201406610463850905865291545788896733648407500302203965515157316901227906372660625467798930311478480251510706156185247771407933510635656563831742636553652484551757938438039840431118924736488025247658404891522014743517170537929194466330940082634926721989970076162424219497352895198383767051421222099492368404286244850590670174259249929720384360903336098415477569462399800152791694406918288372743785693969513487029709763707538192981793950427773726837206402329770192927946807458785666526692052803339485755123026050728053212102975906238436783800605106295534694488856592931555612437743825731698407187040554036523536160163052877126139636242440008061053834215110861023611308826911397179184217064469686503703296207248364028493216117723773702444256422477282381349295443656678297630095985196776997532111969876245274570076675740403868350152780772813733734222650438510453474873075333276364544461239294135394925290233806494412568846663256679914270726164811711035518079970771956990501746200260546771760206624687275531823170031044089808951517238712830112790538858973933418707962630445985822015140021583332424068858444549185696739641270699826523204511051389748900123847496918748711765160699460293353875088979034697980939892408203356855385779964798558637695564913173391726985976743648678763596872628230324833723844675733147706116630237687269518808903374200552976054851018674191835123907669929676612971555034390432564304793570694796845915276513688755059614152718931090036988048249968109868655880803699472217647028938423307745582940593541631449680161236819378433919011102467091961141250662354928072419226305195862048858120394363282505734731353022157029118600429664304768078558643364552027291749108954099078601642430509478539483630624957692381401203929762433136938528372969209575860275169929858188643705173888653276969171205475908423506951825648824583464759307729284481171913350708752927165304710878698285161403880895291539636651456488901581085967706776293496713122200633914017746036031922833082146258137748419837333433067446845547907072552792964337883597252676499052627144140438643987694222721830535446767843344856020156485710593977850628017739496062209695479367989911133478027009248891962927671732750501257979599944349467467427359252224789953460698112025899364194905673393753021844214887626011392338126148992009762129295532836711158154813445336707140189690460247278116315592473068627398481456611117549072101467739804992528665202534643037675290445882932337350261162735257528581585710690168864997330771277309931873430397987622514882968540879876692903715638188942296560930231316448438053066085525166006818057118000174370722049818135115460238586766147188130855353747009549199719732207996385543288827274429099067040348047300737005627611037277669749904559606623554430484212297870354387668042712358803438238759094114794520496295643377571789581397037360836236845710436678231375938299998132704672615935841076227954619990125162691068534916092381053707838969437174800645328015005634627764878630824917513290383794059462059506453091175386967443336485877504768850829929017812368664264567011877738770113050526948674802827454179082760650910978257686193199624432972454906684497420234642853188066131746405526014998981802469228526958461774507125359887010346074769472967246359481614206851739450050470661128682950850396540959991062707527679256074659317044248298142003898014050211840527515450895072920744272392981405869596716001255187154020166135306851853296682864315068468410898389428164628407486882888434031226293452104475757627367575344756148306802722897278924027162934945242645244966243299222458799133515709745195027082150818665933643487703789149296739135866029421256297498351452107437617090153434484917165818858505595843757598126260935362213413496617556597862890194142351264457894474361106071674849868856801518871801055711659627079174294825362811888191078021515542676643296392573368709099809340471727271736047163206359131195251879445925403538860156781750753294268219917926276002460504593810612547687168448409554516200972476227578264327582061415276736798585233400710951901430276552411623646432275287150217170378077993085850325266118930010186579954095172409130548036664681328920325438941132504946209879726182578208441826280739739465486656487899567472621221497651846055619147915974266493317722468076171612736198216845782940626078913550371052112218196386510813777607978446472709708766938938306498921404952538421037745488423840860184085475318367220377345119676793001631172501723048357585296573093405564613878260277204777178430732342292630112279376708304418708014356059962364757475606763105641818601780930419971401814152833913069786627380109840826363058981490909980310549922768924176083383979001114283585531518147513526835643221998558614088441744190048601362005734836141634884519794430566384998221387772765454431612103006371130077311440981405786040757106632605678848646496059825359436952594965533335539794481015108830835951306699601848519912457153607829744772925013397476243948825540646961426275547838145687940069031474002769686912440341808045484890091467064537994226610973570122884385933100831423775136849443322576027153084806455629550311703309522853215765780143332522498514225974580572664572441443582401102207332278631150906192821397206827347252362601956467803010284246854456050478690456371321566048167989427405210852888840058564140533229395156581941465643688749901873355420142039681031590918594211409084477437841084262085647316787957541591465262478312241835298683240456086011587164670255385146460588120004066681101672502371238680143094027473448620558009424914235760103403455913904062274998052626301236501983830937838411775152495662456373270812637267292055467216169458942750738000847939356369027598086750090409976330760386697805780678848082367989304819156392783204680524129723327770982198659453880666393381999378608406430920355773356925848075658158632761505098302874429954163815811765132220115280422846548389219756633252826094770989363086276233694063698217541577260976037293798367693272545083314636457366314819170101524299900853217807893903814071358881421832221876249822115494305345435603081017588686603422378894296590555765865648410554259903286040416915108964060752241846124647574351057968873979854325078071028716616549721920128545191370583506639974962100355664553070209624577742907167908289432367461154098285631250821526469977694560396613044851303495155226603156779616668270759871205740526206574329228895259639489506423954228854437429910690214787124052367947752597058461106417969040714049290128781818943151899309032708359403032221595530661514882512917846104020383250711168392144440459457639854798494538787388200666554709125295904679698120854632953475089204202710439062143375146151276744625488651495739771473232451243884895652869545982905075068188880257363736456710594313507342937128658981953389803107927002772416414809094253828494665229518948637722105896504133350573047509130746762380203117231707508354530831717790260618071886853527361826421162906883512554964174336860590466274948935166798657533747519931436593958099488144840984369218577357169956200530261976830205672719513603616501599445440982826061580632406801936830385978023286176786776381586381116920578547898875324314334042345634761577703289928004644810278443197694731890740727653245231266533917945324476729022198485801292136943058866180806958048908119952819987030682748258642869406815938517586128178869897786848954748189730845131124459353043370519941882969471879683747250685781742564781892665337928028015045818089191301348786876946586055565599193988259930060886600251343985353834445478653260563048899062476259158843773615009014150880387808510413152735779380264496129452159825614979899212726898501822682999155054229739229914311181634461420785439683110490888860391390541455896128050192569378037127661631101151461691094594374398273021572899409082266925800325515565642196505513591266180282809534953421463578873202739314140406368578516314108695457628747254231501832055481465909147166001097539559762366825477617075248087707445871278295287760711907948490043991585256018860758192999028760264732895990917289633797127984989658118157960824736465923514561472644635777561482998546267793197992073270946682394967378580577234256199374781271728477080047210733285899397684672832180961262639292092448740174275993007574835948263264003612707963575263076744006665716455924894268536483119489627518116657452054020072227438925669479128562282648822123926104560439195017576928992943033043573493036032153815830679864298676596389484979281576583257924270823554155375029171050711515193974925070596717776436112881843789490498188739434408372339368363730147184420063066109765065248634272351213412268344330483279607964262171476152561519318196639637079391586245952925892351858211555050103799987497636294046465739804234944853063244089621398703420070234032218112904124356427201579947557873881217072997439159670121430131591043221202017419849095722754158096807011661358863552367594802572522939548340992339117806693064081547817037109517392480173605890385905921329788505440634518719757684481343426404934322439543820165167047581750394982888572002512604081189954869841679696273634725613939969176251174266890785204360335333912125131339399677051673565647120453059164682049046953174729921464274910473613141203538142033281955579929615571084576458778570094770692768873754300765278751143366755610630734543121486961132750605706709819613438432897296453403758109158605443029352872211319107410799570478347963958064008262643277635737506789300833120741654161810296052608039176455554997558017974258071058411454579104363028879020261695760506619370586448909123644770496454850048523689418914734997866124689661748377270445586022098695163228233933094094853678047872488621940105593799923874672130989567160541326249675346483471374152037325662143524431920588672828454075457749610271286616982664874711960334207969494133341309775005331106823181217903637952791852060365958041484361663819860429258857625614373808481587547992147033662128734130954959733583825125800944169355113139037489950855711154300290432234371355898320345401581095364683950923545809475288619700071510093981790969605093743988751944588826999165438356684597727928004021011997677340428208591971950134122891520449612200026405286044932628871254416849066539458655557364683440070730521398785415656852637882209465800788073730669402406585890791454514117378549756235783295009190033601432140270003702111251554697147720292229837253427448068082681004836912350822063018792728064730146664768718093248320459801130704108465267367228016130068388680101189372191970569851134971841593702502542623750834040588457912304311233745906746527343434005080105846060491714768134235914359729957635323886598262429689705837742169928814409683922700313361333812384315748185999195784756464574591121289129933314865072454941055386547979494878642550794927183361811980300163521886362272359429010393129115102380092019591705416247877011651036671876532389550937532601204841854795919275532180002969509840015443171723276259029326065526501969458140735867571445234695827650798536677020772228491342755285132547154385016849359916889457645091382949826907342547372041701953324169799751573298469794182873057565567047323261216109280544895581355128060746729662593516683340679112968485041936528112608680417509924679180924735170570420421715767473822641334871256820083265774011690656089809634269756735806682553505419813288894724282700370541122032541864970449589365063432768656660877894537976074556112350021416717483576095312408576517034602726270179119635783185066993568925086700928031324375187758590443459575678984488682767426621832977104779729236465124333113078517869067753993503169406870960343654902161291316790380179407179700950510710932645576049034364144779466294949418122241237046401908224051695070615047637753188841364091453523836424218461761894237333639090044075268193841047643472876419328362680559647700490641852884119837882458836606626124549042757443938679580851588921758402001980751174313438053205967733996218978640210564487433966592439008193006719703111180433023155322651079288415450008181512032340956275623220604656545061757739327436749613634577364721244575539841708162054786010105889020353670776802302489191187329114974091786489306024308169651252629272739727282625622829267303179884008538108734136661023610191845980126128706880345324262522301395931224904097568127338635635762074601842767361058713363111128443189275399780521715441153793718122227942689277936135523855040151489293252352443223167642162280854852822286607566094155622483324201881628647748654906963291153719628579113698340111027316032171670037986392742720516664389766057912827460308780722421135317849979694413993902589934144437008412308151269410378459007656656594972597580803181689573381276123817441006517075556468544446869679734899892593232983970645753575005424688466082566840402258253559887721017128438219444428719460214860038043301956500842931432551220169036272446886532028220044974346399622364199974052363954553833289349517613395545414066613733260460391214678489375099123869171168552164619030843801606050647373255189632551697181287369085636886575957655310469084747876232161810382543328132222206878749969739748283005847972066717904874917707931395113740530018953644704788779022159734455958912474150064143280616274923701459602434664267308125958656136270085126335917258222753417644638703188385941896705541908686151798412605266805014920772525292927456870374510469452897433122681057852215892905920237944668985002111267678329745012812868951692813881266436401604334013490616734690417988241178449056285269374526634860019594568889954589559106038639226322083685464887397664396870276961972584561928852777297291443287704420285188639721693255762033700213654355212957450848130218025198091996108583412466672304806450265612030066107806113457600379895110868321206532041101911686045101719666839997701716747597444094985045814081004024775183298511470322539898241757695909692275257771705415335152766449866237791968291437267197996989002658257469197619074051199388733114888376145842545830809526800834416761980742283615118444911832177834040051682204651168742000629435092375324218645941287011826136854243176787225100216661023056363983923134470161176339605535224619074107160309692334390056362654663023237585131855931700578009130894233096646159275975719031428051224621884607132649607352074547742382931247030568831268835842298069018984799144855436105435628510622888600415229910773392424835903254115532433417613786367617125945590672159835106504244800199045568398417197533478051938898656249988084943593309911134650154675903353556624215944221121231925223594363487503095768600540101465707051423732268412791815072327406822692772526062804989439526775838242085075682707703280252377212246018729716928675505456962161903112914238977940034506137330053397240878625475914084447512282727439856093066708033609445688829958315248159006504886286598625777036408553174100483438456664935415334796104747038556602320331765077515509326774326807349532893226258819993201990218539680963707085829610044842967254680359229733525049858082740787278109434216711837484479873531081664516047110772716669996297240007684527949311826035314642740999203814927226146744421525280896895687697096871382278936793016979847736563057775473660729641556733318612694401222510261237366893244630281313259706812765093526861471992608515425177859211544510602364826595928034846735220867176040526763135753245082925906262458393340862362295529794439463834523071528440549774266971300033531846589280069466233955574623791939011885875428942333445010660337136039734053963476208328227767879502150051007983176990443204415269913192485779304964013164704878023189474298174097960930203134065128841715511775045879288519521327519644642332236852274584817008470146109625990263958255386885035478249368901125377506715678764291392440865931637605047670824051359475640529484532570985836728020492452521283105286085164890868163863181066902067740929659299013281134451846939127595084039407068766668265805582511192546055347866409294551064797847098593405973620622786389778153254458695420323207535933582193880942951574646670134687696783650742377950532861487244469884290219421585131953700186855180882005263605325068978744726591742105225602851189989514411279425030235665108715092574345725726718584028983172357071491936103597025351920682380360405831430296738815939663123845899517616856761473202365039768420364492316322573042761664504899490689164314178265661884761270332120749188543369594415904010934407771032060392185370419900303354868042100236927256739457768818013476778807784931708238288677586427594965580567695749693515610208531764690356754349972112085736336966536781915544258119999114867167988980168021091877953956490736680715398731477874705217324848489696285259400847359215105498620911989445525103701354751087485059826377656186200932337038248488787338940784747089640417407269101308615160779114152652392361494419303674314791722913974335580986411474176588229939014867832448162040555336226326705273301116018553251100477793672946132630096849060072501362505817689461932482333995788797648181500180961331609276513229840707224480123713026129500372649127532707329816774453519297452032470027337357305816242231369458827257963609703373782206577742325070829768395698023913792650604158769205417825509303026834662061790916079245555089294188502577556775014191396971785810925901229950822651669310321250125316013767463999452778755568591358578139938480239534497001126579849084399201169083535080818295527489366629024526293315135027505438538293219653879139545510714593511182543760350979665823385206078876048181565440054388481509139585177989955479787288777799182174987036821838302216013579532807920890369699671324525323964158953791502732919964329354250171704826810393842723479916154161969166579040072842481597353617416155560912966940458860427165469667171252603208743004183141712821243647192239390807388933352956832909686049321360503704700673203977016171869231496152120844674238640101387629657090399692472633286800491985100448412826084419388827061728164922919460871818285124261966044043999445134111274564061575608581917214570392026736395867182326024171498613483830205041330845880852074532298271246849353133366381863798524368270700251744480398479462193730255844689875835282867670578477589395283267454810264449010601288470570404648578724773050011628770070397400406019420797009642848777809568372625840576117837229093037103605717555898956464682106160725707883961781271864995780790115358642076762601402026769232029722891528651119438552380857857769676861794967607839310218294705956608367196036499097115461771398759784337997340205783460080781521512837122966254172754367269082476698184029819361344598872693133451612559636560000884003684270244445128253568567587287146972268313341505952393350119426050378708713920138474085487665214287160525078708980710170813904330286984958826417960778729097514653440410382758724924276374007541897570000437669278248900713297299674405143531113154870755652899815134435659710272741817186469745671526975555390225104395614090086070899853195496838123090022443070123974854610818642487566549257395256548030026047161378111658810513776268443533455290498374794153706232454714567957456764566281915017605913516581016055602576867097097868099731532279304401504825467956505928502848344397948686131209901885718361707605621727912241845494621799567714430319088294567145489203459150736241698560666097582400295626876271030904169960834631872665534739268065575503332597124407859583542606319797529567736538709902967730171932112607680342597578261254781699198979652811323424899434028202185443549892233940277570418517689709463198527937674779501090535222642226834267487411258250314616482603699742993091704151108104739847731133633401021548769401170662269202578956972521985850983340794963659119443797647321053823446988859095734813170202811529942415240824467706904835108005595108049934145818715214400730695652388907927605093452116399350611785296328205660511547909956708045403406849858199538623674041093602342344889784825316879047156289453727265599837443930656435334288225162645924763610192003560765602132919861553511055975204844629581101151771941545834631920283131617963692436518609623698500851973674521625513032212312563054988814287629758708704663962497153219025389020305136744505688630672045832732197999143237719439391199357482115899995734378696233273411693953526100461775680020132569223725844913824525240569540351952229783437420348407953309750201869741108987671854371621661839277407359741660898249823465232326869790688311306436909439147986914789985786475988124963220791764351019042403071396928620053438593206914605830230904230645953274463872482700501718600416914653011370199813687057172342616976803527675994293965931963113430303835035831216486733431227199905135880589912071947575352542820719980197786294633646886872429677148381049836128378597311336736022498707808375255477034082278741203482414367778636182296637784340573155629357536258372126857079061589251630829262394285846917169233381062932018765951591310798441978223301565404855568833980864016529456158480207200268702008454296933907742548191540003010485323976561641140075246785354841520746088643567723164540537911791433831074333978938554148203721762073880164696863004484566524792852510644996931665518420667222077099428781926469966104822106288032964199679221825293504646231293343969146576382730123844466860562753782606259240479116790555492663163603728030645033939489773302664803861115637389826777519527569922174153665295931851835620236151537226343672688017872758461879939692649844818034877249761334895961736060671235362288250799229320234974252231505842709774254222612251568259403902018828964855642067093654957202117952748524620772405028713149701946815168809213484092091970784917658351982967165939345586234909062220996572839990255349617290747016789061617069515139247238555873789727453843184461507304786386173040872470795871761064262167725055054387169520122159351735680826130640601622878550197026884680102380895252885799178979610082336627857598582359670467156771460249767896094432964221390340379121826788233688408792492520122633098109038463374938709031146943628376917125116054934287524879423183337277852415401906958748737957227873327535862508757877587362490825042629334893828920838772271689455895360836860974535658971909011413245130715700551817788455244671246709518801294800021798744217873355232614713983456950204673486021456389157329137172843261904870278605224565782718597626433988561730703547932738396474457709336825533792905617209415705882842331017289937143213661723497929442181201046011885229896798175257008136858442301387685822162295652669572094896648565555832665850638502775142766880944588306669050458905028056238786928185102672184105382422840140002757509728737154191523244766156905616363169908186891130818846516092585351057821254241685074583597094941997694062340093411083541300144403010159100508827495712517951515301589312874826062465101730549383197487047458461127759678720786101678531211714782783076652531769954189003165443852163761996781997960438272247120028399932138738978726228674261249042682613033036957941044328302631637729129073904892877185115783577007910753006449375641785178433498524688584805248618160961406276710673656288210295991175307201102886307060064146079120109894587339719140043981108905311843009489594062654896348768637529156166642732709528059979153836084362953557299742948894373086227226631687903752393219247287436880001786154867799381793245566804078025762991163865047440058548501905539468553056831703166557207363459697417535064833852944756230553554621389176907051227902587088846322191432505509719024070927974275363632513821945373612409847833803549587945529304849445976466328208819586898471422601680246331240998281378396935831326387156982982547407239653633328552702281783714586477686719006535436453518708106534390829130066989736670191552293439706706400712166010157741147116229268888262449570346708354706742073079480001934407894662147719366214922293637405621489784904211878992931373843268571696063982783135646374921693617743344537999312712710488392643481962645403706657245533105281238397621367428020882621542229616557706154769752929973588826886314027951065595797972052705840288210670458807863864272485322495726545623868137876777096866133914120302183737789155536588689439801182950033429774453041229960167227737713279508512957268216543717196235817569577372683907511573814028922242805722322541547484323682524611949216472392632266881903399075498478605656228639288661004845069742625662975538810738462379339554007825209164393533985919147616720556990555619356652939727836120750398881195276038622317263257244811925030933272225767591298818442067138399386992856389517452752333403449302431758193215314676561154033317310242690060565899118853736349085038425441793902253887415141083866349456281390380871100434960806526167079405753494243377410033682716705764203876856964321463963935676246971871547544117173556370360823427667028704960725548976330723279740537383097539979379981109487564708413164203881465623322589455785933955902704211634563670218358203895544622109956378682379104163394115508801722876105953222999903610427225512974412528305927343160891108371792669792201352267841875107917002588320025057233917998418823277955368724037133613989330866443307412994664979919602986808397364831757349332680051565555598825344494620581342675892843751599427315024711835335776526658666590625865462048535347265405338028618995534929384812399935523203797823294923768851637631645772241465953620519035833481130984431461293811566375994732952410224372580446151915705057041606181635150529655848274775096707104023280932591245963433944508987128164978831515051930099424125246880442716889987036982268096710424500524032544808335656969418875991991105151568583665164158120184135338425467836075571430942809778961487306646579968047437017366628580330669050166573116031236523799146661741681732577592728914956228085730778516166456506433831467348287092663195458265134329468958354137797099006673873599811070998790263066443710354807195772899906233994438377187989263492780949616487792270765345361462483397523704660133859835764507219034137423506260405024415562247467815667711898776640854581467554762936531368741410984927423926585171593496368873852599616851649409285640255285165120436175228678345624205288136927585016217400921468621000575794575634235413863043766930865492743418769395476017317885721183289670021240858495830083843210661754502309007721361047433136344858500316197771860230339508837566460231383331683444432369755392717338643096012107914379539284118953115815209922865349670680269936235397390334328019724709338809150065466774848477965439827046203437957062991544656348469233677881366997801031331787648928104105536754071602377943309986898790043655870674290132842957002446987223040395698872375262630833717475741564205376691801899830562712318914909363046514675257250754425511857807889694319546581889168793975491747678652644372079448192747897530716563837209397703308329765618272317012138224028648632942351126039343631019371470036033446838484312097064065254183198064176710173734917901639637210385171040181961614242448318721096721018486672971413366367602200935107046468592113663254339024874955602277917021081050186097515534227575629462928890102222911469898270776722232858100298983898079226249198644588449300623718696331836700212772504863875741792339007562374825936206840080862923037240376006526267108985775025588844015707593924174640756303203038225222273465494681177330963722505856929086155313429936735138633589098193373384661305593954550795972913077639672372373815768039915046674565797870274520981203496414107518291810159353928586517914174891572282679031950207683353062465349971141039267552835920903596218732457743968553115042084770205665424810322562969436291790198260655189956294435641723566619523948643951909316618415135344241780207783235289808351495720350231797942215453745129359506088585090870498065732233241639848498279376836331281980985695580475479942342592950395812541986440630838121593811119761454892646650463275882146323432161234180376912230404927668071530388500265880040252119556357535268022840677605986387834223325552559168869783193731730847501998769085684230540444330804256058138058638522373583677126751056853853006659874056597435884366304844971534158437113283709828716158434554862670567430025865754705995095032781378226864605962477953818246251304349325781029600957178220659182705011382505683059432243811783790606914119427904462285749209969382557042974441134895461148554797626858415561427187129580847525541051933003096397637615466326273191492120034345311986054892135677060753764021080499846907729582361998731275685313755535168484563199446690951907546221674299609803654983202631597713150408807516983557687201138836932155899794195402640142498652203366090194141276385976132043155047173539843865768940552708626473783962608723762562993804376685909473720603294638788329055566315509392090416044667230218150193752069473575158423843280529877434613613306839272011073518277879018186435871055811396925623629023510018987254350738353733746996134531163861413206527401335619834039810934000170475451532158791032633251400315428210705782035548587381209180181472014498768126849937278463005685913507904037615894384270303128215167177087786594060472991914446665182864985183190036588569910815347555542316662407492225429857767087273971078294605892405768240476851792368973905139853937626147040093530576742040152157213527271788731132899438895902921390105784299968112702615171858197999663515638233782939860582219699902620118743761027083082009290424415398386292656724582506177542694226381439481281651067411204503034996889186916854179959940511421377751237080757281098931537357331541655979693389937654598156673702649625375157593097983407515844517567119958230667100563609760801633270601143116077375180235213438061827444731051693854513109576435185407220975325035913876622463922224732306548037272464884585818063494649348906945668684106611371209177002723507029597393619622825765719273181077399570114077878931337920806822991276395743042440807679165374251269507760292482012227356861777585157015183902459589758471491182182273480884491807083433959079746724944892200446665726640874807371385817577499407368423368657367896954656759711278554645014108416441164875611187277389373006523230889260916888697364447355910582458602621063721027510195059505906702196219637975098011017345496218895050275404528315422661991327824613378999555465873376807984312877235580587285822798143444604538677032090953060666869769258354510507476326225157804855725783768318000698790597821461176521108772965552082687263005281179226471416871108775473756161124577726226799839011537691809678352019960563446424780559506885405993346840178570008197004500535613056265480394118224414709587581564043210312827286762087088740991707681226908891661419790658587673360511552486629904640893072306979245277431657031019541340278311929568656424573089798355222346775157213597919245634575058893549270940707670695982472463908837277880055442783854641577302177532327721781032966666908923435343535089928174386515946596245862440146423806533924403635632998980515458118428456876774076430430439983071581865180940389063625378052808108795631941541216147623654448926467171579387612760796779308254229597652328187722498942316687324787831329323114153357197429883580684304546117723154221554188362771528658937152399187564632785839631371926667509618691714272228173558673351071909150373519553580336392832866251018677128960780081798202176275665167721836201050225061527110935485999265999918118158057960140249966944763421807828819373415908984881143184089957875815740165076622544835930905135737820884341753597626726478137307860046214656605942536248642714888761238947479575466150089499564639727598275344065290635029516933145163679179849974852143210501914409827278266676564920079695464067698464169457560746196086408524436876814026935159733477764571659216169975022590225499298306749186626249174742054327913693136662911991426466524777034330290847251678750934238175447197578169288957984472022494298990467913076280793673805073129259661152757137573288986981218875346094485617218611121104443082657153949370347700058186964447311573051953418861788002477876737387035501954188177765759261049767189640647193935041694511875485730457320236569483867120594138257826643915981137123625066415144460974941010749830429181934715486805021081094583424504709365601638384154979160157275443680805403249239986159986147438732284987394166581105751554028208919405895569334297858638342406505096352910437074006291599154156033945535885678931134925341303411024991172134906074921202640778578666534815358841117402116247575553713319884721555911289447766818577665845983759408248232480167429943502044256000707951402830741610344090817026249298967245942082666602240481779663988622253699108740098759345685090047403909962038563663476720144463223105377448606856395948159775433634647888843094659406455085298633197542554601000388498673888058038443665295769312992928529672331676784465690444634657845296784024331056864949187808472523565209857426908038655669649035240093100211230510716683282065711792252116772502445386290643416921159227884351612679267218061964277543907984641639795780490825945182492558832256243452253443835809351382798359542458442991458008959686463415773816319449975475915527856483764599585241677235775907222216168978034829382615207880521595176962323163928385172335588088126821229510013481475105159412261769303720476472046317089316904776073405157678648322048875586729715912822568897276115764412453227916615693376219175283313074185791478310919437543799161737439633251868519393918552376615586166454038303125487299974770252999671603875061912109412892617406083210044697477721209211901884295856509701165695485540778107489860857197000971444193405806653795447285338115885813019316309976189944954879173357348888507706069465950631497153495281441810290817184703407978997585189064457628962938749809276439625976762050006119669760248566761036492949426266613467974298814884686497974534615472339640432208123462464989567317409396233295834013033745936086715347268415069554703932192324740761935273780644988100117816640827863573459807168225701540709764759412201398894685749816463053442966978288892871069642426844215101665628030490174441603425515375184927943688004154620148832591066952048201565290868392493779228553582806471060784205685126632263903353940986167292561227794587504702390054330831646089394343844715971717920315167830467763098180952983480368265422819716215726470659467012373373009205239974224371454307494041915863310492334326306838045987587592659812464820721899463513021327163206484056898018123139459663661366637624789571283462944115172438217708426624569643270228271292247429750436055461030186297078564727837303715006817068156003789785894072775530169020334188417792079682589468915508748110714670769586593064376116540995673210858989711164959619393145137948909454682869879570436582868157389558937636027571844078964876385126623034619857196478437823527066553926951498865036340986181578042776269681494319183662136938611099189127315258053084097294971321541036570074620387607609170084826007881989335904237331154735127263097065045628534558647648806748769101361036071325314066399454740564687553376435085592528871295772457457178786247437903634155284066798608092046022836788175705401406893716295733002465581227301797774920842448158572140916989487145872218917580945356972721639765255867963232718003343517284797659781506595430472335068198513949900443489363494103949996446602756809336817694173333581202110646420957303803677877331516502085683596328101497006332150219492392239250783612221182209359681483287375594547206655567790711479718822682923131311255181149616634335215294312720991079193282220511162786016110223777816935911946867304557947941529285396570892727236209387950770141996937682749436610238583350359886277872827315681558224104312172769375832103816613036679582015591799316759727727395345049138173322631363789865283421059472961270947321652825860807359228154965918325682323815696017770150122887010455286297750772547759668316202116658343846895001786235327701789161381184600869595448007285303100397486390061936333659597761825766784382342061491422064418745277555747895177371726461780703506095403298628906519839882605199214964978699387118853386626912355534033569369389119450808399663722194533151175174135859548192396901171401527647088246697488055264619537027917978282573420574895311477977846605959462122594535628960444286305216738252648457666918862739260773961130548869908879287559495311481610463124030173186511907669656883125480038617457783768313951312856098086587771060463521830965520384055781537029337287235369469163841031252941479007517138576995919361228216344138666848089653677795257238672435687109497547245289011478372332738365680951633367174104747575138423165518582971282911927346623286638541649773501337814288462988686835900762578340879088924044246694672122402959586110045182622930176004345550462583277335541631200970026200441701553681693202890764333473700561966881341487242475332300303400444592748657679527909658593315128913073122529472887133093676861157862881332278612365732268732937873905073868913672822512891079760884996783387148063961721143006979109918468654236072187327263718074740855787307631651696898962010638632167951580216760382310554707338733501351505406817496720310218931382887758652769175172965394071554823637167365848980024696174883242246871010629173857379543014100653385054179484465514450347892595248776277372216754031296090918650459346245108682090696111168509737314356879946863684628540798224467696508694504431311488539657735682011467010705520130294951543869619352353979457625412238891574765294567895377435536442337301842982350634945708215678571988592445068458626998120369371197402176574056849688256251126892535554614088721648542660644289273898804479105629748016147681386499506345952556092992910818359942171982438328282802535917785619448687583662890946101264483393125371100154660849131003198926892316385211875395328613571028977012926491647189660771417591287473277590531329361194694716812214498062978231810584251557430166734461778335859247820767631801159280950746869040230780640331507826388656891164857231541003184633920048401965284290114074008027528158525928594705046531849783722815737061578324870878305327771692395889830192011768457162701761497600229516048045668361628698749446325294469556295848853712372793027557451843569953019174203291515497566940320714557737920773062384909448970625663771121782970459585232261007127721838304454481725590347996012290636577238087278070233730490778295756194961566257507006495794217661703048376673441374817536092274783206305518418422850012902565807035978694825096006507772560438981944637644285493379925742754609062523345776476589444767002882821370679529794415006357969692252087003328813756419749747544157493712183426522565123402950333108901781915803866774821412785656066844798691794577382139379179684635217547078836880988032208075661286130199341073340510646781580317016824917437024657245155994687368527247692239081000395897269116801552341570139998053702648515727940313717247546430012887209211013276577093630191677672161852833451956472949074239228063988742065224772227818468459955518042918573694313570629850797171344664806289046151437620301191022194876961789449003708861104314117124446128732888330013369308893007526202886145092488406664703958385144759183854594705804178592604342396355229035564572370934951244048844784401926640493667885020379006741879194234419549858149371775134246533596638121129363288032781129113461800240208695634737143652851642389117979706834783551748403489987807274451238120015066344154284108589675839496218311876469073500034766416972754458075754286173976455064570577762176893629469675369085576978087481274217999271635576480305821957247765474432156166947902753807422655235921608582654771718354793185745885687138828636201043152523787027357893980820148080468346771767291533483184342907391551402497391959116911953800899125250280909439734705360972109313965379230875422223180927377681733067471964543166001672153562894477170756472209826210994329378841917251771355882336368877804918578496336236644592985259336040541821147704455093657081968581004692239699428745754771861230452592418073102026612622302329461731637961309135038081421387691790769019753347380394885517747099787515429656617154438291357955174126236453326855165716938881942071646409921352478246904868402849173861721603372966673702092623887816171688558918282358723370094944984048261006506570359198667817413219992047077912378795389942094091806859013068164258179588282464672507640876588782312022184760186131915341095248509688680126022965434507111521763663843945091401048577192957567194539592047287844322880343562634889872659318612416919517589269432920550659871297174240996880652980387769920487890792841497605411824651585400100524208693127900107061527664914450999100863158796700515051128247341800624826469845793333331979959317764629911138663448953643119538069878210526565832501608759777030306103291068558411306319231769524469586829611085393215507149322578807795288866680726019187702917949778129276283444646333780165956110291845614969525371709948646848187431011125220401240031901450728828801375254598219180854922404562046416279149839178404885010071345811750119965258651642649535743609425295825483946625779669910573445217914501609027772440099678354121151406649595983388737860042103404342991148193958555985734633541524656242148365002690842235781316325988489109975226733061369096198232278654303581044476893176183252134641085746010874902356478026690098094505804259779413422706775036359553037399452761061201563689660798051940516206063195928038839312618021706879061886526644702072021222647116389066125742880670425950540942173496133215766768635648354289885684446749231557175329657638564277126909152188778731419178213476280940454787436629522661904201109051809537540345346975861031208039365694095544890910334780361859273125464417106694152355340298440505959396332189720003368684419561875458998288060463720858577990990863145548084720661002223267317784945897333892269926313485121969101056156563332506844543356094513800536471977473405053098484167018549941417749236884396156118772206611127744280866273828589742394285252484431985389268001847176778292842840836776818995597577487124592747546292227260288504165185181899338922432888163180414558293729560718107353870015848625240472400661107242961639011814192329610248241355379596032358784929653725896656595552727440121252728635818089917816162935575717056937328921698047052398094781550788738617112842342321171568595929877951619522911098853300594361565962262032095631947106554882659820828054456861501718422274455996663736047084682750945417649458115940180435305330176945782200838347440326170627956013410100423822250002049414987089119498065246241620292732945050724888912949263961296984633447698750054349840002746857289681001115232820066740986062636294372234471703371823948535837679931539670070114866293802073626981831919303577243838233031190594168288809647879063760918041172782974984172363202899206254518371103063820611503291374223182773822136210697332800911539403750831861724413403193576899167272049332218818524690259733632199925569656511963205552761205641480907405857233841442235005210246119997314957023219033987004390157326061733489908074545343325159547848637626683609439851513933596874485428376335878708947007252447279927754349875461267989159942569699072415127357180588606749591155629192718419161183008513460607601308453318523534444113526959094193374389471127934320787059378012143493588956917284731594262405218680875782559692414817613107226211576292332501210974073854831950948909292935875729235463339557185886645705505753291149060154904523308543476945863855535723695319033480177085543963531299307393930859998820554929002887622083677061089900536162085228512310444122658804136089091386738958151179575224923222270831567022985938884196616459135596987585209108244685278119703050602517341671327243377948847724941140072805063098199704378169558851892238745082193278721660929269997966217404068012960289533661883199877518813883098126465292455688617927163999765044129768021479462453180955677059486675788071403250708187348129766302194504750051258727241449645354373621401652492830044806600154083205169619684182629874330733349680195146208076668122402694760923513045004845000998395909321597856734370478431567342298629497016278833315594697640759500602268956041210989177398235081723032089635176816305788738739689923380645813724264079584546622361890167119218321883084747141993207465068333041750094552214924958344800324182264078434159676147704988638109966633127106564135113439770830982021753836857891951019312754226921236215316077706396292435443358450693403055194930742142664721774366746187255816820200150418005540781888027476082660464721842547849273879072911721638304188854082686868537477238070720657904343333922640976761339722830247257215847925411177198991483374627751721483044445450891904277851594154371478759347774046020649788230819283920851791499884956063391414511322695308758802237634436515397572214979896959305673880215335831190389336526720910450114831553493256623127728106797096247177275829792202167884397726049422626130609299475911030706651279913529507197324256012921917190716168785474156562156615904742980594844798697185999225588454256190837733574015498211723739831474151758391124952247839739788803424228386216819082725712796517086373083917634047406432149545242750329531610833280041372661569254414846031409654721133916514400419283624446166436771993276778913704751770051626612224421616080851875541843164264791505334347495159316835345002107484279587772287082765347352659623129588338263883645557488967125009058761067324569570549668787823568511235192811974628398629170399658314462991591305527127019912073074634722894291977656303348562264009283106813994174745483125923032579472163574646729077395393390728839011555413489968417786269953735807214265369626456084731047891140909791374079867208495233552419421753530858130085656596170582483148296582126312081521565369630527700529261746602379710285159366245034175843156803344877854509273333198700387199984115106762859774379031744452904157233383324725981396147839278787250232776179469773981738296551910013025307251336390488188966895548602527543122456546460491706535240198050603603107438239908762286236635812367709785387794057342473695624131453533376955236100436689881928708848918901994190122909451246622964678766357585527342756676191108165610798639919158162491724176421671028965664617037546158230587178084375428607116584107664159931709972479489201638296142045859845928900283952194234712033532252874864606062052113095331634046645509860198339203439784062156299627091090972022902455196624720056472864837104029782272258972258858277811717254076698900419067454825718072856664525115470116766356736013587321072058184456980169889259878317965617384206336356475147599334128940556052388111176372901288336170545716105086122650642055434402115615220745352943520981473459458349364951728133719727929967316443091203664757333495958447013557708920667286623590809447146667113639781376110507027706453978207828334766497668132798917486838354345222280359019742861756070475593768595363423585747167704737447893239078551346532564226513699008700003876599648789739892842996188113041841490691939428172062872582119838523656641361458407982346561873920432884213057454331899152705164122974734908640958582036699629153892627205574899151449514451518734153523606751630376816702668205008929972560208007847106713184337454910939244804906700187815049617233510708279256871490749540951975040740339470635074103496202429540292874558931653687524719974781955883771604731930538010273302881501512831386310469069170811176130919150873969588360840645402380799867221262740778342738954680518891335513538004492932410707174634939029172256248668725311865239221796604266255332566289526204942190394316033061231710633876115648416610565567171378263410042358922930192193210734459357364608984111729314313134188338673710187858700708254266870969236481904835459396308425259390881541677956739156730930682232986508968937306095683994860639182599753141153322269305335237010113105464007863340353165618262174112544984603274544061178279656267445882778745687279534878867809544045383785935749968169851122625175540869380267850781109521166988229237146401370673266960852481344280837201926148367942050509015865111733519856405360676658511691233956362654026095225659783638591527521838598277810744707705550891794361247207263803897911772050839293298334465472036450370418716963900435757650005529991508582047998758152147739751867584160876844724011143981219386893396634985041598041621633420549391944632254438538009139936829040340473057593626325634096769167941039542491696770356173794436912961217571584936466603312201403783491810837107259025282449339227634347422415902675585221380532936959360416869935359164313583038833687010713013728478882072280812768175971797994117492149122806143028766012048546636835101598925343681390142263982828580955310891905084905344230807799288315341587084288952184978574171664536510755624916635642658027640589774051634587918876366843113276170154071270011374894190284291240927575447402853912906420644367725896199406007403658411440335824115804210086582366765776718639849668981852643133172725444525641612936786234850705993670572384346803757337335820695106875720159768297389755436556011111245455773489439594745956155486161062030575498127411587038448015154709015595727785259688880206041236492630989452721596533594282627080731919495312895990273148129139527846165214015463943632855090508908609851697823782511744078641375310659596035297263962490673020752577982413570374788439702913825256348716164995391662240440467596144058331599728800799009279386946466015677894412948666537931625466991739309626659219173537663332950620934359679001445849965047800535272386418720189055624367002669373515378691271363678616580396051775608825760559276752729395311715272062290618161148320231173997692010261820983754378180451470032249875751826172978232509627112014940218559867657834262995799393469411558833771855870041526419323515360867771292130503979334907292650464102360248985677400058991606061327034362844570190689903926877801205436377771418460739051639494608196331433875738957018189191968666539033346196302729959789784652851251872064864231101280312266733601723515430783997468107775000949542847422341375596542365789915265505715014349830135534645979377262914472104225767468740517546169120674198505748980144644182914734627351587338699953443942160882180845801827797994190192368641205224128308268974745151171229419870988524448360796740014493964871344477593824388482477247454772113821380400538217016699075936157192626916037610297905947901783734969634269859715472973945437832776461163492625287092868271061555420467548750999801292049068661192004514693183095804245100796519211647553928961400788014884935881854713847983263049648994235444428018766364157887098210278959005535510039379604648061762714219084911298718331629853513406285362278156753163710271725057077708918965549823068369778838204752768096363888479671225524570111686643653084037675074482088960023794737072781126873584673794325171083716701474263478322887221126004350327061348780272027052647441905503620516460780455329612327738248372028446101485096404867594582538749582388570040135687363759479678582957972110463479080766451201015370204049802933418216817638841349890095716226578125065656297170740483000976378133320445999780632728307507837177878259582853662818563417594624345154153506607542624835182710728316447185157985580536011851681863544851618303774923367082198673766593678814399369734914730526326087877083462338601548839256992608567972448147557021751212223074923852501621383280665608765119721946297970873577419714596702030306201481501555906253287122464539824520680089642561892330547680580109690413025936282283062598283112426521281645321636551157109968162244391065175864043603443231480209470141440252897476640263832821777943726635027584954111473366120742887255899445350286067409758227361677212267842938828000012385865254351099992144323135499897419376961631667898237660406503812968144037260141746862345500919397313765749712788235169416642145919926357076816016417104921152656020594525476795873843669872260259765226435736918269780063273759210301304344982242408269207048017184888915176520274066419103288156408015556376954426945256497941205868850426972053226019821678757025984557873722044614909941600917101779091340171446291629348927276424088144800280602315290284557818063440398973251594198739423904330706855295460566501310028439470791024888498102874511843102832600627909271266540658308354093440020838459420957287449068961229297623681703230000581773262818200321484319082650458035407770048009128130248940708291261490087146505051225543731430667763122091508677449503620824048637258226726289058900690106803943024047114339905237217998737518936560531881976016376727752155570550507521857516841540575181087038485813926358303546233148116023613586390269496319909362236977714333102076227649712540120744021432384881505912006049276907328469331954926499841198395546088234032108287947820079240223654877951445221008646301069347261886483418606123083221610931790924086514218557456916599874205321391648864451000733728721360346922593463363749003113499038233116694313310111783018595111198678895213512278118112542695643394192140553942293565995860945041420337702518977127384062247393717543546286586261484803531016255185702316277570665416223882215651091813795372889522917848822899442070677366492472506236820495341311787577167143346481510191270534210030015807610494486082435351117398019094810759340549527890959973253968902609149658686698386025757402743910150589450518662462276505134961840112995034628600579752483914422430639968603562696113954352825904901070122975927489556846096093720194439236482397886995977751733061646532616326042563920004761417597020817069233236284520166899632396188102250129288512843304615107583002647605846258319528391909340160184461412469182517253181849208308434748807599301782112055491765194289169238545256113333760331248439730046371978131336360216670800172907056854334840756779136174920313950969463115364789374662184669833840042196206684863714175180646791344622962228961916697367605434821338821865172463344073036382606302786295082922075788723678998529041187322974614698694761600687184256977908140853767787593126142821844079531338333702384618921636297590640118755906515477350931924447454322992962972298859736157357206576982431762195174624053019948875600864233783009308296832959983832603918825173787495182124661806477768901108227800939249616628917514546345562859189950273384847948269862035009030928279062956917694458435014193554327628910981357156101489591570497204381934436815498207061602306873507834461601935766382702663324080221971809254429648078498249820869471864998262366773194410784237222473874426028286121387677387761909200319824620775113776867246547611638929734983994957069657623313468379029814255749964930415536748475525175411015363279430585642146255772947554926739382643016644410250604082070659727607079056685880926966542841753273183861759503179140333942690972982470245456871867385136912233042474180514937159253942040580731482527852582931867838026900575602599101260839913734504267888562793323619576767739358854974865255425042402180101681710375578716943776133440594146929069166802159167225520577437810831623407638578620755693579665567790838863519515488108732367047434818362705594682393171581405046368140244558144320146149316528321382453245150103367618995615548171098996644791907572038503256327616271423929478994255547778910040507141296741975379294790509719777777669810343947553170804014079686159713355421498194136901589157892902780738272122020801112106674566062308099074037211930487342408059023191133033302840804348070328961431920028971741153223667163446418668969450702475167932447055132273744475522856320419762568109996744151976458671096087289240909834207263620009887207019938034440996943427372969492181470360228266968631659783228643773047628305524239178201304131876998583978686581172062868861491563720283686639979889279781907452374600837100048889950424525085979257059961195855981197106447541736227751411460522405426434883977226943309428674076062047353043786161602519413633279925903312628019417868171086818626331732140330881542461484267477080951207983692559527459071275170398774245425786248982887052507063791069867846272766038916123889220613156477488318191450509204549704951648271946267933468738383056384231444835882744360595905278407731172149115097613285550493418204674200054594621640049531834850469624703089273564254862188819904914980629918690052022752489422823565300553210181863418592024959775544063769102834179590671043011757114160782482094257944791720091499082951972067548314018954538136239955726487677879583749075437964870139468497000392963981220046641772714064020943234736232442273854036270277314969095304941298011654246788914027912217386476804269411078200715378305728031536671131616007612677437344072942812712712623790643675565246882621091974255181029960842927572600224756707937746855072836544833161745392477362239089955049801821744090964454056222136375377523440254481063134358009605672107898718199598342246890230370024453612624726302749699699362035664785800983312532316236765650516819217814676064712959042759204903783282639287347569209653814670580488735778950459868782218566445384195269829325287091406875866872941729570581983217622833638110709519726302024246393419321202132850100458990157038669464265718562380813832830094625985259973067296251058139451365998530474377162312345700138096874481109044253560673163390380768020063906550923461522157916867275478469930299090539285132270157981885848492783888686947339194717608580546127760941768834753078558238522489883692597597298483188033579577530222891140308997812127114538963427440587513021402314149749581924598077536412345210185393867096585839496569807300300112975539946274226929952672262299494427479844446251638342516551815831283308943747781059619813432786385341850875838068337856657436799113947415461137952830269595690568570407810104275555189475682097255704648832314449457413565496682474195218659083221999647001476741132225319388810008575621265223038612311893165106655586287853749522594952568507162637310574531346916039137455417969437952936537153856808962953740549504876305175139558990771112080002586920259960172866124469915556997296491340438640699449281290508403067573080680410724492012900923691329184963475369475550071074926905344761484073467702520996215556803436024293649539026633903906244354110947053499434036228020575428348785617708832984216501311408462311968561883584669757180930705682032347024406527005523399221219974906745639850690028321943124499463258023646693309858316230184205083848440330343903759198874412191113648785245005820285978377745835084145592454393080703601916051818056927591138572869122050040377330829539679301546824574546831824327710734643184142126057426914422395262605372595755522367353614201802590026152711074656922946089519872535487468279119887596295254448789609925293061303843678846925454123005101431672037687786930347982463679540739311391772276061678437454867279603235926477346725693742815177552226651423951060710282547037703596515949044022367088253995995201482314537334386905771986974538380216896919303426503007441024204816675533033841604054906914399850897643204806893048438699073596134351347276885938136896570346279211997231713336273202523173661819707185976416733806102059954180754859791140388494836832761591259501876189216300225644643987884755056190910954295801929675585246233367510348440242750371020785696648135043962916617306994715230787544375744077691014606462972484325137399078116072964303006721533459027929432988728938301745291989338451005032620854194037922748534462871067353869244812737077534392026283986087504421506173392261053471582231527353432013100010953184372010847414896981778063855638678747123718933425946816135283753695752345173043385529299902207766626258054133554638327574735379501779188876425844002856165754703273988019670229791401869743643547919978053424758101234198088229025172329594941044015396996801692574224345631798631701799818726656871344865386286692738439157362711067881320000414716768114899018419173088900174381911083006751102071635545567176762173727187117377329086071011834003720515649630816792824563004959720932072409893603012795196524854961527901496801580464461734713393361240364088857166928456451637286311776780654946324295876696506417101431970579366307411915545265956874330058835526024615714744439884087672908146220388866198856065992491528581175551267863810823738453248713156270105328060470093513041529258679651930076997479453843392998406993668854231568605964575445394162728388012888536773880887025884234120267344211310952466682070227873752419625284177504566881015761594755201097377553951747345090374786327709271191985383589810281689071436133186895563391522062003997163426989033655764839375107306246306607379853733186629918578440699815418005731140005535078203428120380968611595392927974904402975388690434955501596079968620737755482564924108709905790276414941607821316799910678595402273260623339176740101805711599827030697089708103321367512322782328284225127379141106118759262399570549021440705008683338140698609687837843962002251363641591471871706414032108694963295716678750303913397243892736715443540818651457265636233185823674126785386633654430616456963090607688099697649473159523107743166067870063100757517940043455061391599071776842424707380820171422947410883002507472220765846686365948408780790745841042698313835005740595726546747622334287954787923290091710043068307422666738857364448368556486235712273908211624146556402897688019289877348371459656006939101877714814374352277588553868547550356965581722788468713669265651420437923022227744849162204869018786892485517108308094643965850912542218128987560497073756295660895350834289932579796752058442979580013927078959507288503645344409213786144937811425961035612030200630709034511275471369756770745085218413674419086399267907559814217055846131048315518942266615109272092098978172884391906537541155747204261051107469907921885199024771940424106420687324146841542669563100608857237194494971267498485098592947730665550922677432046078951730091499158816843153924686784169783542233339217913119485977905629671525716373987663313072879893725184865493628490287453698462723932126152434147284788014196755072888468138975536857479829134587375042640449735542776012954810512298642310721982249532709989438331679956954146094019766388275883760034151395643478136598860219771007992287287536719189699538379552462308788101155290359188522951292398074912427719021823910967884604237972952661205243247169387287262159966679309265810548352695691833908630128899154419786635649232284884411949370945560765463628836284581179329545604527984914655147519050861904300737742879578833340627897018306529456398018510567543598716048780497818326203069733862329669494503149985067238743022690808864121347844728304798221681267058341916669994218157387872584287701176248382012816674773831734016912260597020554254535822110957372576020563355489066723354822846641035089946052667214227200010846176828574484013609212185003068545421274962675122088202041302788821358607123568949504855990280479029579274280815025020466583699146630680952697403072932117039768658118863512771607224452155337208616775607006689899229225093723075486076924943099903406090595269963379445441492543909628684204023597030882090775308715768998131541384741757182105441019941369473274034298400404215247841378178284334351917262436814562447862381963329434453148654447681972612303804629809103869678104091352317580107827799081402718063454135314663096072353769228120842642596686474730182449812180291296115146914611410624992226118995731715839257189181378909249199351766841485805571612873336919789264984916242448348647094058174488791059902894606512177721011777605311965916643186593009712998674786592214700176628726257582165435600131906231619887398971672906973408382513442568851406085682019509445845329402776077564876141946785169461491810264711944794966234162179659132800600902086219298207475018461565423964612984748450574924597651848369857978894746740964441128480824495079669227378051669318935520363348105256425675865718967138843163440433323095898072569456120581170373218863370570499048042071851214688752016302511534375623732149654842775133759325663843059908004388323855877298794044779773385716964518935818076170829222074732080787417343594239753067692343217978263439204732557941053254273868793577388707763245805676941070689979481796393666495279530451319545116725982330521124071155413464749447477742483888350848306775715805046664482642037777786016594939363228674425620206951503586630085344847386016509862575067197761937586824079924132441407505279152879873674859146971459693840749971408884025066016761741336933658243873658810012643841510444270785240406298781041222151509633818308496039252375635769247841859512728381397946032068139147744113534548254678174618121651368639859011792974298206742742229923842903418121035018345996579228883737082452788624513202486337107107437315139687501825397468971915232207916031903913553399067331297658396104008333636842015821195079821104498664667768432850259548868451325999552529212727162560144752145934516363080414718165973299344179611659872608404285944995145540322752488731323314974960844461221001345958677366904551369382816629107515397088648764856473086292310899435133717039671461138429354244311059545359273268429055001666597316949364612302600478513216202121926191082707367554866766818641355217906597783271453551331092727857496988962468921061281766206225435534919717591150656883624449685776154173891722589958227169454329986735865609011402275463154077448680748606141437272267719208223498396997196137121511243466303776103391297091740037194588377180047516392877214414077716026231447823069459008463062415014108133974192567513860952161620447045220284276853104548210480889044705806160581293246855612795071722374497574958146114855147331432819055410853744894133673480785505940927883521247616009616125760630281102535191728928256896359896923768379461205735090624764208676592095170450636190584033072365001736434460403303095914937043835637352582881635998350181973053063263623680249066129062130662530222696991835377400168840862927159320959026513810405114522380095882862999719772230772529252803222962459569878810004101927374923617792495478043961565191774133002491459999206034801805419133225534736007524056950837251849928333010659726742352112643262000071726679156757252587889848121465774154284019624895331254381011073587165766810844156669498038549013507447453708830716343837380824294677720135232400638244241075429479742363452656727056769213232279733306722215741716187381181218069297952820119566599638120641178785766794504433744725249553911303436395941535391312940024208582337452681761455389526818728976194049475507866235474512733167168310917043646642070189749441696584753657014172332152047315555211650560898171274382339921292411583705489525182868303203920791539074590991953503351293472863932034334150205400128988070147404078375134766910581968674387645889258224510169719160045234723585949222108173517208021081383492165430777315409973306025355207376379759487436779931365563198702670145681982089260448280751408090179199780857526863274754910206408386532520023287908803129598938282420970584655213378107482838796542231390722263540961592105697546201791496760447039356726744185783026184058597722794878789544869751949467209976709966306717671151622189327227755132782826048809200578134636513691144418370880292405315386040157120456987645348414846897004817474115625296291658129401696762569636575905559501153234142437781838961198939035514648694497904012217387862621032950930992230451241279425793593336987854991687333535278975972701404847283886510328151584438559626776083544739235827552141177991772392476226566168660921247840023544445963013774841844363568362311738936923230750276213812404743425777953628391467593302741549557084055746654889201331426641947361539246200013707478362207011714379885388786933476147385851605947732592031905046832559507919833234076519232443233811303948899429148132554076218249455121454763324211302625417198629542978112927485757083391269001963034160530767149630057097117676246422901834820966968169673515016659996526499603705797994233130224294898181791853661859222405833004950753400929534511546502638667165956997571642159902297421113428951969371189783902647063817662894119783102689350317295059498664802404942034441370367538895500830063670088336348232381878937537948169538605165870312865112133055436521014970605575559484323115498676020208619615162347921832838932664655500721574168020464742815152184274849251702287234425149554267322913000167250494289878258864439193917783366028514226610863746941878109298369859923644688553878012670033600874510033452592681302430564766780059366780526418663402451000063307902787843724910830908032618889618194419280279512676711670554660838605353289599277964296683477835780291231680700662849255175269220736168326586294508313209115769075051584278410658347755812123293200556459100902443480761193734459540006581942270578066279594739668971135766528172489689764614507579134359804582738912931503713935320091694211231265155314871107986026625555650661705910726778759613468569552974768990359244668337103368720659696237868286673359548877584768531529361394250069443572263739204465426911486797318565220268415793209134124796967622182851324249333783791854332696585553429815385078089702987631514625028384525608048991495756293017065782422729039842249270867820085355864987367329755514527557458374308302117533005187791610418656385593408245732276472740359562328270766356857333722587571050277113519771473436399207671915617833207135555689919288195781310659789833342700753768071488076578286338942224186379697523596405302597299436661525232048530526161732418987162625092773333435596415704509932520851314259978334762820541767445731133638006208574319676625395491563754444261969996284838542126709520784744305754128188300717383050374472704813141107539546013058282863070212349789483002038177062006039772159478891062277345776977700559640009651998241342145678469531838255954395908448045880407043486813396179253285410049129095511489391535398295205375696949578478223664325163010182204304321906664921123669976542149199708526542405487101962396493932026930875573562088688669771217653597055221130940433289529206247303796508659559965933392182328001859733878887081063340134137600507130264671160818296248864817355576466770615001113772443182708449334813874963961115100412566090198504692810401939460211787342415700211429656493452727748989633255754034403871652135713930263260405038162301343346614049503821754695200040790816177252369856186325526861060007727665653467094924036690445502233492618973032393495305849910890018305151184895816237333260026776717859401710711317284860460413566029539309611210911018867907752721989451629423694269640479399152093975152797514462228250341991518543323689856641684518882899794207943586495116994431688500633147321180938006083002382265636070057445377590960600939415729422529050383514340388960747797470434711950632328009409314864384223588196916501363125800245645459976148512944524978462821736414770638693766459626349581993380679710273322291251035603193342212542945620773361326534337359199455689600964224830775303940116431676248831808311862881223534241359847155849554885198616233851492381628529292928381235768394609362772430637767684579472208151605650667605187137470822543187588197499453355094591184230504293080203759286494189446832692913812860369956829216089445255705581744172779103167085464278229125373592512566350902014018070875029062348291918533820024187448605672898058524299265519252380649994579400263409316806832250333621548701837686428788707514765598248270783703765246695269238635219951653052103483148922918147996287427752395838460411854423555760519766383962360627020395695265355368499981674008062908374232394825187561122220779662931512469055816968490510882406497238072923898850653154390168887653898549732805153782363935286371559457819559284288723523644179479569640585190220285662639544474371495387364820293513289698099501083213764762986617760928235255259567164731619008031486739306058887799239663449612018652733147715717835901689233137121275616512391313563032432386267486648256272872005161945590022732172628733824705301564162593386997958832318391014585179628306020740241700978131192394754386731540610232328866421253193475883174092034011702797638195321971280371343314845291827458943270271010799479150956454114007655905370091766094011784238024873814494954580707507294811937688038675865198375790607928879920964846418746456595706205091325996907684904925194473209237867590060697262253500809300311732254598340018342196038131788555942098197133160665775155333542242232962418426868693103376972474685097208901011375042134655314207203537828282669741059678530287130784111536040175046229514108412302004489634451802155494782587316202640884462714826170966564353157275284073669102736404703830496672184774369215552265143213155052359535073757969505628939969877133924848975742735757165091425857956244787841284379679505979980758640424632734699587841364787503370144308668869419554303972116505870912020192167324130827066399339053630727804320733767029995220267870634823724541028081880857215983464645030089555856392402887317302697638621598750882675602581913924428320955121037089238474429304425079874677848139663894077682919660837753997619964652535431509232974231372369987187300525115955354976717432597103181996626955739983870281217400211329088981231980989909868682625824272553305742473960953135725546043277203890083953237925453139364801938115137808919445600853395527188761399297487663459532719946587002144860977212322377232767709993299202979207943620963782968572898389643345956231460258042819769335001832452788570299610034392755173981623751360630897136422083565044690641709040425127329967783225628798804039506807336742078570767499850837182626441278516125874284089702283309345073267435094929753945755462946605628256327506556700486682724115707163656248483844729824316467476967433892607812318377998013822499212443324015212746234606208617335183019555265576281375376393791887391230634321576777907466978536085095997924785995710444445598185168138060371856276242897502418869970966542013813941100729712917276715483419037334921939831045649607271266313272511544891171002916223766421033697423741799384208456201089663692228856896529122852602721806374085318409611301069487132075426730165843752216955474745094797859655052563048906053186808367336873577043433745867519695230405546558975364253305345740067215931707368167180082386006510277941460858611436615743341189059603122816920540035384760791922310772292803196856833480485375590820065558478506373977387810808093144423040039499107386390695304137810338938777268421541056519916468650147470140010005380259314311636556004109128587463796196854406000662347294737165967917823454193541494529832386145026078683616063667778201874738076791098044001407069426112314966125253395430095803105755710919097292633874968679633228981672995033539449512420476690310821391107391097536065632667606441931681384064426647533471055957163589406783139421554765129687499216504502794152373064309525688290397860279708952488671511160804431110076405287746088397055013472197812842073355610743308214824633406823027237918669779314691994255308668683691543125585470886020448054749421267288489514692628629117986865857464417375438885278312687139088699975164918151366760167715162037572947349923414424701420828820435958874363906924389470961950919363381055000344295364423708921248985198606781275721261901040749513612421786297920147164293434072207670868023215022383961933871591800425448740668157701442306829914990283701262712933342560393514876629332468694292613247265667833561506498146922383260244437080494944025788301900703855397975245798937242039849755580622292905835996455572945034179977461510086939021847499990500743536735334119976514405232313610230652214315486002319900476247154780912949891015569654448314478144311321533861069353303572233756324556874331549689755857898016670071679011260939077669612664173594995485634984532806152990245636669339854730060784312838481907549494142507060211276032733061614752865682324820103564658958554004714517622530962485403579196345844309147592498543331032928609247595537838674242757585881952613488308863880521589890023119646113877236709079202074635724153534626922891549745201782359083512905040696665673493042159958428493304073730938735371007345398553141615619463845381007380219826324538421746743191941935903793318907388467274569511672312076811051555950356839412021647608923191532146232783252395565921193756557779832671351003256902246303344110675067172382253812735257491987170295810768980844193039508009501590036357558187516295773837459913153132124942226077816448672553730875492853161269201095579275451865281980974196354920228654697543425369852603540342615866842427837347186067187861875533082510443593377799190507749296704197019327481319333129559972294968449660569044794815607239815621776959802862305787618132197640268562272480000369628803021855654702307590790311322558181663950149735369359209085142219141145394527697718517163249163592457410044193275521435863859341058499711802759341283405534845276258119443555099402553155448824368478626218810444036742615259930483527341166605343552944055312054637054570362409923037613656499791900875204024907572011207063679148478522289709748817083755312173130825885499989440492461761769468418800316160339699828577725331421202006984775396219745398345578193879320582585362670631414317733035439344923282904147998379245664442722019533396071839612696339018444761742383931210424434313011474829545882284210649120416887026055255046442834462322110446484132238504989557883046489923427028211886840268185986413030118321123179760144471704845434160032165955110093455570932185095493643683172181519694201083496478112647099852889671805857784351641983950405320498591032834419046058156711855948066090852347479195567850119894532726675016275864731794817001052948454619504165174981709515138267955335840830552268499941118647363644948156326118591076925506726672552218680142320898586885688894639341415039312687187792938401906543335615387814691331632552384421934469191420892648151572492088503582611112172128320593215757203071885114573747993240606672806548179964685081833862212048806696229913041960859644528415715255556082623057516807174201835349761734771352290391263023503636525993656382876832184858221860143785194398439418377964469913319546071930797792999994088938109489844439997198774590923256904382575817426584762576896991990969905810700932637333204453680567757229837148159777614926835062945135920975911732614039060064248629241362916565999258803723395126858101958401115247182654341178809621653866207216416831236503422288595764700704395906066669374620239891811740979964590989118168824867146147456659721042567496523400586724493873066545736292208462787172877507381791144824169074243849504647982258066800378694719480329554189252364193894246612138450880336317274351446959735219317137062645956564120482823586990089667198503662163722312819341757184453671713528104876853569601207212755847597700537367911618909114094765748130397106308062120021299977099655929507727344167154611587638712309682306651015370989311301842265940342688180065060664293372951374732078160617908445866793218387942861120327622946288249462006825227076598316773846871750887849440221465336089099254903803159731205967818717361613204464177106105398755632773862570272599288443891596528079892910285564114204594151231233097731132664451628159832379058917662190544235817834215452366259905238695839494817907327987945311988333325989948227308171635215527009416155390329618340228488493382927238734053753701765203933756450070650486141085103949021304366713639519864953986303541879093797063946877702799105295214498223203693835129137818773378435713453328505370333021954310632235419518617591873876824584039530681259726365955498903343215237162721642780221314028287073930174306762212950513942088028833246315106424970646365295140585764951172916692049283859911184921363357975076027165478599401363269202112578546006311021387642702186828873628553330429401463989851912677006826001728112444201557122334490614525141806384201227365404658664782656916847912491331931876957317419871422395412017020163391175740693674705425246265156618989054031070113049724235550997189009999713030094682612241770116367112015804019904082703005555799316477086652875069048407219483864566714694178415350076596092815380527953070646090682343204596732247916147372948681794523434860805763456685015372696465830911517857010743532281120472907044442435752518652730253727067844147925935987064102797111908272542076226815899517274985857165385850215467918886519381882695490158246528035548540656632756043989733651093411409797504450653637356844388538369160069739422309835926448756829150072012613853632271803160547425119855082298151573696698866423330075577655972061797253619990543734438916180675185039834014543525671146494696692844305881963421926659621713908160378854683098805112473217776468787152304424970837029000128546372004893501731699116334694026753478898128984141031756749597531314006123841219558954821682367319684017812633625576648152856001770336809096857983503154047660489663675156590757189886823760958953606429960606823656987070331796984279391433721559474076004116827735170453677731862439213658982093613952388186409073849024895640085968312454722910556207433340744564581003643451448708428165300859019876854855259858406790674747370663444978146106307662788322074278865877357309940718418714381005734410559943900188534255383825388049676775499675990401034432861199969845133240039439145538445779858761175351231800637642078195687681851671695901860182192448224517357082949218509961860934881533043047436839078875130642486802790091207574782671427315462280187934224396873410095854814143270199125124600340088870690323250821318609802229304100824302746349435418968113991068358112853873120552182866434518024351331506693856806426651789906731169774412029357311974917374168177900888305534528894823173926340163641151855637272001277829582601705968383380674377057430126042541515194059163373595451951287441040014770918149884806772046715795668768747866036506443749256662604776788740137040600983752404210984262847203882063722271896756859803293714060709903445559686804978318457197386072213759495258206534511059807830183128396895370929462836738989240931239020715071756464827096026621828258970698568113731032076669270622479600766081265104168162786946866350061257680108846849844703855292878934721136379463216902578875053767598169880839663099280520952621601723992138124193220587109961464047046858200752624625232291669937357398048912904235998482673136043864147469273258749103871005323212299779209154772934983727738281165077871462574408930905294945692887087759365009960441923456842083401406638174066842524449530235768790158988172151715860059796570112026767330103352673957999956481624781577892825749395851704673017393559634574098069009584915284851135116770015963217733820946323611094112471117611746920147582639987193727442098295607812166268215333650295236667004276275368265098869979508291803605591866424977301871241288693431728586855821217156177841876333496331876415636114491549067731361394285510711547816170667429098266845942277594644171076893716689601258223866284578037216335586905752335419693607922611804495308991005190312982584828335355125476871061478669466409088809213079883501044285068686683087544591405534947945133756923606140311151385801515383563180284270006377140523475521877565426606389972258728173743652400524286006730727350925133612635533309166120505541021634510824471687923462481665972582173492685042648747445002582394585258263235790066966973065159163266672156675694160480747475107732757927961789040787545998923545288400407355973003439285710638103851211172931394439359946192847763708544719292675143079820450915768302116390371150026727799827594234886017625098432399183509537195543980667941733868588475604708502437482133145467304688231525324759694721855587131166730050153009108283017552213178278746843060069111927789080326376768910265408475316760800213623784421977638081518485979586255827293133848602507514148375305542225547694483305368582842747562381454717745469960500910672736871192922074438993705073820538199549475466216211227591929823991177989230798142405428569591636427132265547822566250335912670019580105301673507179133408581640760567289726840098827324099079498133774457404291220434427302011439252962872415839789763617777798691816888004967996956024708377734854468151048799072981426715403835771680737605652720051636929042460608618653653311933281418100566440496399665658200750425194951069542720087262863446003260691267405635424361114279722732677257047685753378277059873727123500806490127075138405357146814382398199764800621302555790356373788460944061130483661674735287115921393535797744653905066991987110428460710747670510968840226449647477270321041541474766023012715084807719831806103664213394473843537726561442969339153911713959948241565181246916210912943542922796689183144652750643258435529700023678166704882187349847094312050616925959328733906370955001793255055743955361562017301495095139857221804717079507267172416390241810616573210899139708860710990394096660613192266490637190459789799287030453682938223543040407118521647029469208016617355927336175024211595125706093684102940889881635307325665946373238229108071398582692338035227463314534057329625752534559008013935396499776639562879850939507549314924055815900835958754370745215529835831446788246847610167862269903750066277314939279830293969907186221393458987169743642627121927394056084913798037734772874238999008064934145634116413624052622199593945875570118745920139672433379305825502531476904311784829007572634205374738085376714711460422540726447639287870455545903793889400309815485447587381374162484772407847768025281085812068283360333799190308915976707817057114035391882932023360049318153268205058167237352012466457103932996861313730000025205321553177750331602296049442825792343391336511459958534456507630163433725694780485779390576626021667626579554453713510981065978614549199329375551807441316323059631597962104290867672884283535682773952288510556182584390984985358983829940793083907634187246196969698948747106277451258666407104277549982998852150197942404586654816667610515070509362612263764006058746056202065998803667399622774024929008492684167237115314192017171125198108315873102748999604576955200556328449312720416475235309307755216448078624329179240774992040290329070073204598107380788608006876873278640665416701342243708471153819869403269880310683531633275168593445679470435376287803233486715921205386560607582681423646052830788960200974253429612962697483629937884964500400972238671063264948037998354581277069502546401994794230213636045950431541052104140454280785127287188318237312376631114669636451178227538404220217858549286800813823271981003909042268970305482180025354633410517927432530647488647345244002436291788216750909812301188648002225594350972611615139302335545775920926572563597923761758693995993637805793360711174561226510858974909927177345684694252285848845541783627929248801574500212848051600274022272492237744254869378937893066024233539401480482042509410329922472217921359792676740695347334995187301615381071062518212991681003561474503618798333121973606175847828943475363953878363971191155531486295449449605643476454661854478376659131618255610500381594985796185285218743399105338428695122817825187323774304338512446380803577934268901534466235846054022633978677355505163621776846802111180575077646775045324405051729339396912757123727385075050003595919056646854053181902459265954988430428076409287373339612637051815471960727303958677890964267821237271933283309880598566187104776330911907373156784243169223490459206899061223257130643594531888282323594577963095532929148274418218858364888931226140101312606110818038134193965741395907175122747196966446506614459669489520721678445609922504855444983667405995096367772390459990282706094370991743764557203172375622874530130323716998716715146329198303342684962897547282931206002510569499185728467691417634775624900242207017461663964503888806001697177443046824050240003116259796277384658322756957550877736516931841215353662431278667208332132776621732733055803760610233538335681598228312749065231256258466666988829362343868255368277867606080741152481540257000369931040728064190420116688603224023461299828247157073272931502952983679584514929068886642090599690287248070389985565026363583674133698037478897196329189865319601449724487781755361035728240837690375963706578194586727470077525084895044341867521692239865107177403952850438575656640372610423822175629776290163138586466368787767783408438755606153292337835776156181246800345559098539152433962570281610780246519979179267738533361913690371589993218696639414413274569107323165422335992932919161046910298898334848175452777157000074079558510949557379737967691151679858282111266625942692803842444084467818766136042765613783218482013115582893309732847072464640133189293977044070897730567442093683186002465871484026727763713534140296083159335419665426369974597536953173228845890900660489503328090520531181674893298963722129038992004997327449182213929675909048735614071375174636538206804737290915262097353757568586063691883369996618834219021136890744384356120531372578641525877396668592424403771122625510804991857314949323611861893328696614265116724598178830572717331984673678079638068589236704914941401578081777874474474012764043171899884428986877277354727367193594688936431956989716170768833422651107153931382186773589050868508873783954920626131093906146238854198482539073641236557415979278922978066577210285511135723238347613127498662517381264053486384509530072784789819079460854034288694007463688622525214593195194435312142538398642916744100440556484713860548439695702790435835215982360140686643591460270967496393609071587436063419623991731314149316395350042532671987380386975770589261844185683109124023520023238358993248265572353643611596983520845267900809967600309598290995268063196321745221540727013959539223436471048435247922691822352164497538264110886858886102088124976911990358617259668719306551476702665783978155961380554350489757998715502582391179896714841617413680629694020927453989671755152169480409897496117776887635826839328506913794046761962319205857485165316585949401706538485484053409695932019408067181872419237457905887331518128610976818611717815427098751231951802838296273740777378944040391498984968155597750660782074201660121556680730942523077552067757872058861357931830472475976632403977524475975123346216852869600404470961936790652698792955887243280157764494308582653862903433177924997603518543097207493746589370631439632217344305957535861901345482130814277288870415463478815539672196376210560128881659454873552649471614478555073881879292988244155523424611757182032428224106082015484030404753596257857784997841630867732687096771154566697999630616164325776451795308061595977058262089354512091088827938848441540419794548196105155640100755959652488922341082489372938113104376753382050092711484283585579272261831277787516383153061775826355573053805607402383825228572600970971047007990793761528476091002077623088302384893751768111660822896812091374370145873130876312361814425557136307877528450605771599960986736783840103728915055162407788898533761700681530261557047061597912097499914754654443946144751047243921300900461257307305595107738334913859724643258001245923870227940993613672332313650480867319984826010555092639577730733189050694198925244632468370323954000312398201666802184793896489227217722059843899848578299774771090045019502981958321870691156702599682400924659473592366765952554458851541257276499338975040256360614100354232450688530689407955101252313649278996731753636215537926936787857548491222229649701508141363074774988797037552001944604769480642306206752066198961844066926265981377870137589225479071898729923463147882183073636149026259303719132130263953399872555099554264139564185805003964254211102819356954217522855499520945356947114768229086926937168060168476278264807238388100600923281568793484262691438457194131317231319371102177502266623828607495231061381305600933151323316112735301721251493167529921005968282756664686267774225262408867781172307453995693207270843516235985891855534336726331581791187704641505139824368433981873435527466878514975426911769183158300603987196866506469175806975876186373443600697599334720976298242582750053282560764189348142950393631492364523732560732968327512058837061466793613314532468100596097485326524443354312970456297426859194017027027142117867311499159437558229424807150796812008690369704905035442020608350799993029393182971161788166045771686787636593647674314047792317953349410323826364090520231675383192865281918362225256227393844856192095881345817708034592588648809429266969734432179275877045613027121719158286840763472186209674336159928845013669116579811781430795684383530587557425752215214563376636381561697618814755142972438652902859540638499800520807439918271008942038799532051193058018818155526996892078160889253552879691512004162759874273939240604829330809904810582641216002237798931226155042162375268139635963937998723692203153532013479676464861931254703920438520305859005125002687455188838766007108438952527627751591837896959893174549360780701346526812822729009784406880473007022163436361536580176673297949613730544230177950099854694029891380144796762650963723180619585394669819278924809464349583375299243000002838247031546213964067049425126908445765219908154719904394196093966121459325744729971785817017791427853131338553976268688033024931233706512521676674115212515325671424748359164917724798104571453197159695678934704702136746835985277561794875198873754947231613995010417548672111836715749908238449386695807357953991204375833095954592548626733746955724753610124450201436604132548019685696294724309998766271644494288440846577767915620734581488102661627578241559793441591576271269091865343458844986175551871702581300232601347125554844603640075552058354899840525094356417848735650420311078117804412217007437656388082316598639942891060943152404611985082845347611970029291918768230885216379718363586807407991346011145001161381867674962246086466306296953609546796932995645015469964989341048870675571799721388870467391960665695897700775373939576424818955300791445747178915705641543632059681447788342387039343200828790965749334566316871463467912269763695283138924062207471064568444144349114806856386905516014379692157185889546459504696663085101270833545876212717360285519845490790651355538009529520334779243090505376241371290844815592715901925206240407454420870015924286066602055024124629452937887029574867436977222497502515254424511898692042518372433879678295774640154320372063478046976982295163666209051383857314935571823615008087862947601353956848957992110335595158958129987650507401782336924978117530899273887258602323688856020583586988602208035702481223322657013434675066725770116498740390847669975268015104361191568992016077783529322879244695421043371587401126130878552494338992335386359411902884701203364058354380394335721092385167176683419708095064705360613344680127439650465694231848508349892305857770165015538834267367298070231449143757929230376140279348733670480260470627720737272548437998500492647989360836476665459216780075762585580440195763167963472453375847709900058903104756877370965314419478154115407303395770328882082230634973138036396050278952065746429003291275344925375628080527327733447870348621933475021451606221921806821278265591639413104680898641359389861252888185213495540974383849595155608624876289684545955814624312340446985961183800245954046591443393997148813930068996227450254573394696310638539499231126381993683129524579563979680469391469962521613887991128559505160753659067792129729462444253744102521399291245527439748979139805591782020048391678241474438726946935351499440434043060763418183129809872659630393438150647315860327621902676007846047243677875970881755316537751397509644412251286495266940628948489642118153109040185401291948440090750170441355421216160866724356465033377409170517161071385016226561232661605515202263680762518550438254481352895660824367921800846922416874821773589398987004346612849115945897814688598216794136935678668200195116535728158044815135780176035860823220213464708352641646985057274224311863185840616506150378578994742713758645459352016248956865846543076055789563684686183744133480538099355649292069285005234333038581798638377397158626471138018257319987065187649248213904524080488170316338503690176237662464952268216577543260230249558284597987147952831110422024755484781582150794421060511493446355954362488781382666963674784178451886261103510107730344904104923470885971704391333921271397355009975586601188120637352904045795148278416669499612832463102594780840839354897366290180807672664694123226815368912584461227314601931010981085022712160877659918180140175524529369802617898000257878429833066058420078264605410878067809782053081531906778862953234890932295538003592947305826959271942307129029493313052392576125080906705023558185126514575119637188094058878548453079713438907551958757173844226478917408240847910026454224115281681191198396527132694841540441941373266904279394444458840501749986783267598384949771287096363538073712743340474042469448381392871242685355870467985088777423091305026528280623503025539553179489892891711518150180764140228167869963206397321871275622287816560086338052276770810947879103861166798093834800620541509443121423970055488892141520217346092597637544580441253628617864331550572765171699213180104661887469775718870104786678404397136968358735374024176469745086167847439810601161405651715715174552399481439544365544159920091698977744046431853031238354158483641448951687566971920757609165534040548297400613491909956385829040827516678024927362533748622311036850802107746310590096987060042322018987072719583838073762181860141108004125069388216638920447841552275379204494371451787756738733327063353550151632489208131991182506570755292691898537756473780340718945816579600311521479647955216760796266275378909328428104283854283041093406108814906710991090790763649241553489398237349104514783501880758351357884864943024968394281937726446987439033943647868405676769504268297073618854808368312493042916054950288989140961499291636392360362883520908992871467613814458363578996759402784682290494691352575976807390444881827655760967582816717376289273603199905798735844475997400834462493756278432314008005455199325328642783243419858130550666489801109176125979460980854651425819438002023748600332743089671318840371492665270700897543899469274465332981521560149934610210917580616525155197962887521605857981099016207354090286429423691396914445796948241750493111901594628099003616058003828570178732823860368144848384039921173703479049405808570300380554480149501283320503227618385344075408321052187790182965753213603354108975477993017088826791072578491442468411540450022217576299185909145313709224977563106109466254532080552930732473265305040105188851202596420037467458102843992066576053945406743196253031857454707312410900257743005319527411057633956259985966310248166204448256951456420324305829981501477132181530388616181122203619098641585737231482389497278418624519427758972143726441179408521336035419822861964281877983770782529847203099546413613544604071471136895384056512988604935056107891868815603957189814028604994980788545303319912476201577508974230605389658842610057398283452737638952928018086631582868189146545927172543734050943406398090600439597793027586268391045790575312338600357861231583397566637014685612189858159010982666135051857079927019077565522301898569612984453752511437711344396438036130667611235965118298922729964109845962208868948735473394606881758974684643077857616783374005578761371297924508212154219314695596187114864474554553942080899777259750875970076141286785572304866891511115308590156248671525765483531642592716464963114128229924159310691227772992439883640192536305065509881398252679567442563172251950008389966696410217192471924079035036339566777217186879174758922157978820944054181387457487431180885275230203199546988302105624545667552861878137711570403780171128431655343488467195239054237030364530868491513089654711561557602687053169059304612132125556911049649154445739682720001111906985432291909914511968311717996941590456051123156029788155408145078227280767416019956759561064976279068607585703010880940455393625483628556676046642276978638734535617168245219499634311044976313935838034108059685100445411932981156752347961763685058091677320298662447353855781631688727442782236185396940187208739173298227932304899540804025818312315736552329441831344171717384036623782751644175642783746878802526952231120748578454320439628057607936213982258078766181380511625349218177397338147708848902048065509359210001968991428361608392241708933380606918285611676018673424044823409747272989130156864428084725687357894556829562663523911050300176651754249113427160918062516111606350880338011737348500322327603662921652752217627740994132749394668338627807186471119980404505102667092348596421770547195312837115438798098231161173212833544558227908753661115960027186006715686328399130070889119821339305952561640344478069553477953174050177338233370465908746586342560436275584174490446218659775207082591777237166195560269546641168897655204128002293798397921194000453050124563643541928777990831022359853361713677336603016423315568362680449810095030811638151143262475276494815758886200939714168483070317948179659381842063688860459076942507081201224460684319137521439708106540114450982894014278109470709299184927317574946587839904882991358045015243341407867361887137624996309030295611888530435927072596470689603556500677760933393178167148660279328511426822605609401405903463935467678148855734057544965333446675120053525957865483099465543476262856001042754121076473429321952582941803153449327738675127002477219669136944965472434494796941365871285815626404456690955711344080279918406697802131573895850511004371232144578935062626640887264013492002304574309047049809283497939531652502807183853699547250625700644628458556083471242677543956348849097993326790549435167250786810717982405688430687269184831408258453457371262751787188806795988602982768432636334629888750228048950592858311438249010486299245743977807498074781649278014099483002629717758653327973855410926798155118392897821207516573114595765419983521673042361452040663223952939720025836503595784972393440710294903239174581475109102284269927060446692989419110919884086290741130000611912516080813160506303577543928945536286698568051736294780659786736813845761055583799077177247999069433158902013897731361035961504906665117419799367154382983651656021446858304981180686124827758778938829975690605417031135501809933788967725486768705303259474485786794768184120450972690197439617610889338663935845368771273390770686911048807420012840673673274540992511644151217471894606446640506334968210020367830557950241453438518298381725029355424309503629777136831499527755437663215333053922704790601707447579487733320598660937398182559048739139569302229618346907381429779749799271427909103201312266980795353004247001424323530024318620777527187928169588924439858350982284496862361734552239057413313247281736549249045813538789585265614220828381303885353172535049810061916086047859836783323038871190261972281641870393106268982283089528855884764731594973685977395930972060335418912760117060599328371150512899620584333305809968111792858274144205731159433599908721614184941535184336647611708608549630929935614409797623191141660913352028330156475886850747403232584017154660708187107833746168377688245623986636027210101590945105691196039907807474743591857905474043391131317204509464524577681560294474261803718302137793692875014575553138318684474740089322081391255788410178891518749956688506939890974642289742239385787627288422883209714678989916511251124052726266378367812488563141802245178436980588007318171509030334441121103847811123376696294991525973885148972761430383939735284561791036642313396391556829236788026543447400952707729452066741841349812209981498741793236568261822445411328232382569629729081344099423091761312216587222622172543071923082649050678263189729482649145097416339490811034838037035871190759221968384207828251342628476163864814345891400753988147415836656842832594652847051674534712166224863662010746583584124955060684199675664800946864746964342211523206635438742147334745622380846998569692386923172503772156616419920909946067976540173272258855292999829146804687030718972585517054569561319892949267021319435233241025205982647134897153362676754433273459513137009320999730785716350801515359635496148475383491524125057641498851815626732628963568980348239799429337803053482558758431213566446831117531922835112320852623593666169860647167489768458733881191656484992354637075866303518121737923641116973603944837098654843334890909814579518706552255469974674845411040856953738963002733086298015049777638446356796100574350763590777994771386972738851208584058492213666825023806292748073024018910141760943742728254861407576752988209965702274550767588152628728089597807353500766189727181471495358345686251167409516915700164878954756623212359283645023334710791285625700141690598957352689199086928973980233896663694983791667036280875613635912976575655617641896826947344597641488071967900229793410804882720896785375487543270273416968756553923323155848067513976455854611053284367137612175307880705252384550445522477977993297407333192716657465761708246395048353754668358659878019761116130897595606483223970962026648310132438062768832461798651361152907842741832358086950915042827444709875074675391836495874532160721518144401032307712254782233052668094816447347079747344458064574422273441701999893966460073665315557395480486961301057653779932738777567075036897190455508582806300556330354852111725182644845346565456891986821190687983181609733113105356365860532378828211164862037394416936741114484531434148981059360134596370979264141406666297148293105744450421256455066044402992535580899124471477740794588626155139041174945870706815899372388519735365578551962371205326396792519361230970747801767283581095468267867185035077779049540152973710115592698446516950226726324741538347761345735886685128986016086151344313207030266445617283115097347927982481950603289334259333162858911456115850881193135199782251989853326882389579222573546001024207185497496675443795745565661940986613597166016096045922158732548111307538587908637640010190933629684591453407028245449049065681216029728157657497951890865892559969597656551407526341976157595800984426935277897263898868884399165705720104913233016914826732393289980396020655880624911310838002732007164125412238609262777328658604933396274553784060972648108300695741816262884158274425556842952520723319621769720518649445224213691021122010953628738770206760023738544081805013832734664973588728682662558791636332198107792905344915344287866177639170408531725428873414227733150288251550681053596415689392794572149443856909145988252478998782695362365259254630318194531408986461271242712920862303384964095439709616421622119323347068116828875271187942898398941279750261246425750142334253681949527732453701963589651829627921433618057968638160225529799270047466970882715055629747543491807077990434937436189375066463727048556369299926582591577714879725860341265358961412014509040743487452488087751954441598149405607938435093209140320670775754855227786175394323791301622388055641814058989664839126379265893770801019903861518478437898544678874859008058723146211174374049155775070003263223422290340501765402098283128450786995890059922984214101142588353227323017888765894252806315246004154273236146134340429564191160496872857860516928317458973791873501715764585370045716632828319810407584041815266097349496531449845001926561506085398849243003493370479739276779710277041840022923952748428153792819810558701399329045266955707622451388551679344005437685372288198397845246283009185049070979833587647486658195216952682608224347958589329580904730305129895840867379097635727441267225144411422109775866141927240179876707066170297548461653637480577788527451117188795342382090186360347515624240134953823103523119056226273967644981809895706222554613688118444285842170711227093724788518877544033644057713573700912933756778680548640366405044215973758088204268995653344537163001608379830046862738732573753607291952272279899563038559564618386143569922171346548107197567201264946312920854801579983279864209401221209519140119778300468187273307670139322491587699045398886091232067521459517111330675295579976468263440285006401493815696381160361357625512465737463966992593547730986583183750570594069914384048986282078826216154975014963915283973131005258404785078647393784327637759691921730450393438709318512571115448497841498991238802732827201794220884408952170338695556852511996925039208395813978430451729785855392582253794568958181357642026772959357576911706737275278116708195959036920533184244185260292576575171490199627595722366560687839127777704938968456963189571935943926310899924404887741637179607943049711589123716257289248159121046630887402423975051347804790391055971835031447416306604522277664451179837645555254988724065574107630335825945967354579788179215943395766890267399472129752180623565643904526960487612972884593532076563900545724046066738545247338342415046931309202938810123820785589631932483156905595950699599700003084658851276526834663974536606557424432913325094512838036591062110209982531210908232316666515286162754420007535194060688831945848049750502967938508360266440378096108299833597126454738559448607917440029219298787135718825566681566329315269280909041411215787487683511092627435083051247288574557447003270892024832626715825823819634839968460147313460905436545235725062047341948072764996972297442908839633246275114807075434506903051837418265751781210316574309026186902178952533849384003176137266839363718832894516048618850595784922512485547253053203827218641267571529549824514653265508909050266235399408924511893211584038595731948520435761639211612744781509328984946747611362999157563740075093248299912919410664473732712219825643791437250469812741660422728155263655181546277483775439909154582305343001004150437470832174508147119759659937502245616488726963618685868341918344079560279037342389523703555375179293748249254036042327168580259099891502276750904795250063109798313363562934307718985138293590062010147894092420405064708777103510243452587138200327599251031306307841779304460897393935107839366193785983017042203771559334237257122527318703880656017730788845305002109630235840085717287219273764952248075367566183640784833743093782852424751149511584977413377515914585457550351403161861974702875660274044976411782262550027235730829177868662616289898972006558522313407385812915131179280924950036377560505706798178856299472012375490007868658790556100991602501111333090304942355324999700490154099898498016029431873567942524098515286472202698012040472230927688946945397159428649333276493827556784090757120878876521335357585502784670324420247043488916014322438911526703349570252574386138072211403080905172329716888915941753818266036433253220881912598101675684332265831010702290202163577347230698257476155749685023614763565139310357661191070391761438882932413814141414832527368617365163501534524004901877299549704199665897995233922415666387170183127642117554100553868048956420212437466093857089368197725055650044542696852850733437846499237010299790769818439555386715777453390314361995909690772472014373596989358392225771358070158841541240945010254642010365465220593433228207148152596424050964534053188221001718422071886633707435052942752669665345475037503194439167715727985311093516174055598357862183900634797634336075570238128141984603751460971007139479948377051775276367895582071772442707013510378303180995655342111265316883215172752405576878646693967738372028786535183759497300740793641341705108590944886318257909457274390239129126014397336997676602029638290261719927237826630061563262468052647975787849990659101048046654790819380821478877184645460595485571986198924939930008017339906138519507182189712793795458470577508629359563312500427587155823810520780916566610885835980037685240181608282450657280424644258163778889029618247493442469873742098987862726273853030480421658279608490909768088525215631125207166013351318892290585191602650800493173543982238014800112627920610057531277657843171597778639427742065136611090859176052198834911255700571294486979224035081018001059148938213761316561030581223812418319691237721731963866222721694792338418017449986750295306751103438790457471408970753464081972204840199332946870277296561970796765173269950387148963702979039020556381126967076680252333650725275593451519494317088677512492405449247718207511611746796932966387876685518451129594083376923875125176009448260939541672471558677475450945105529168479917891718935054409242410493045805721518623510857536198888136144180233154674168754577955383928548044971885687685810581322839080855159666208776730490407948198652019539267333643440376178153389645184671528354210040610801039388064015564149548726183156026529913335952303441445091812051595045268899664718868300342341435676847252230317486708652703014078288595568441500874668163773345202402058257527577642861454825029586266685284826208691416569551273184088184560040588911478555118758086197358152955716165390914383540670194455460028157773431136587070624965462478559093108761782382741499384092212253768569691277784854313471800095493356490715294240765732217667288886157240177511278153197824271226987403665007854780613651268149232676707076788230841955725806924853027097794551007003260973706175845919574189609197735127707055135367422492025571772723378327591147302961587752499102582823065795674850519045199902166994253666900245740143709236851057104566347341340933644467472629865002503457936141155284214374267526238668980602098599117039003311619657964177839803381732614173788877921424427295250559045151488192078920702827270878443795378580315355496190801876990114400148909239276671023764838297399509660346825721089521548176988250976481837889486684424063102911361590625239409307257969550071174825401211061370983458709331815702138527139905947392901610892175985853016209023416262629681077005865354419965549946457222155644622299533665947927066795582034012779784834362605497592290707368130141777189144264188381895968656220054102870910727431519652434619962545718731704630720615762867706661804887364519044122509959380083318491163427071678871177388880259865946263227180566937315106870418317501388709548871202448766639365568964122010918555624433039897628144708743525050530879733370862439157567024133040450959556582703287136528011814005510347955569833292231774596664811123007929393240622337597768796834863906049972460807528817644002292989278795265947134057878617200871162462374071312530768550005437601981738552574417887672863755331823232833480594598741120360758556561967520948356112450443283209910861464124160179266215461954205651261899192792392298119082209019132350151178921902068370525726999674593383625868120836012154929955907798053753565290472186668790732824518333978684106921952351560618140961547874443655296044691923968894756010411670665847508387156759890964065451507336512703026814549027141986893639584281228574172752705610435797015294900833464842833968741399091200492264254023155078971015206763657828442870758572595691525293644615785845042467291721575840989401433759601603482717221747485223752820465176808409792914120415987909908738199648195839913614949624043385381343706870965476207861686691130035742483864506988972161172868050229310191449615557982080507380823351811984245637587342117318846311398131834481904819532653690039820292083696322548761518024785916573192854290535933826218346983373192054453339513457015342534574643241096205696615782149881860274977854566766489864545259259256561589082678953367073673899574309038820902280668901162527821245473108585276037527513624567337389923184667170109913296117766239615496384264898495122465528090392840405315954378988754234741416631952139945191429536912304560360680038028197921002949948778194180693087860832241340527035192682365031704729617940227998202546353717270696599053602084095816458921120006520416182179914049181510102084625759636282267498073906168303349645649076852339447914821022657081399156375525216017779763728018642638910634702086363730134040163811044044721043883084100043304444434149563780994759775837333429772362639181087917405142151168714915612507156980063554934877317361441297828620470501123405423360803576465978213459794204143204322746972393925625233190507499086970428908626704928401089152378011164272906798588529178211751716210458301504253861522926962915437892934611646554120465522621959501599968414651076064016024435966781909886691128969479910296260933525711218038982844882762147201000065117605153861834553158320857530342718746372440428903705959412359774295492280102969228244257197793986491767385256465244829387995126985628887282649859152852069819709023842134743556627181046256065511461986581667052049943302856726729142169297675610411306576853940671813245182906523993968423178775746407273379211657820466525461988530906483482696610725146153782505634005539597306025004086340220295838750127851464031644186963653670318140525143546969692635253547407906323055153992198359109383657670259041505330049607354721197979414031211691707128058891897886984236736378906198101750283969914586633278241392620154101984103291037156245662307639818633606043866636929899592163933196944733614415756043837713307740429096111856146533265231355324437372476359778661909853394081810070925589785503094581190659534875861964540766878245879352963522686601847632039045362886436837225612156392013523244701492803843984373768395732933542512979518544083719262388758494880476591786307603176664068353421185274837782291798568169703132522754417121307373213603469700775592754052353302168585867837624465014482189133504020138963342035588538244797289230919721932551581682248133299843078159488934969275553682354042219179397752459136515975695777012717175833011306812858846653787325872433700908866994934579538382133435490412184437918810249107018321298902820123063150994758517076366906121026448170337722703267436738074690316834074725130642066164454035387117201453004798474419752295851806562491975829153842556578531006779332644407296722627915105213322938130068926840070067638323601956651748378521254061065159701915747400641058771896693090242551814662561444160887572081119560843531623135717358688290140492819141712713029384242455257618010159263763329204013765392303471582707466920195309852418712039128223794542770696047170241887530036457832237558163404954542564390202506756109391986278623195215616645449764789387281137707459842825250854743125173547973356111215999523153833268946432711113152280345795500300460178193827379551885058838532490616509691288131386770581323458012229291271913696185315437111449035168928053025152080455502460623423080351173533955148140637918118242889955216847386677135689768008236911697641469278082122156959685928170202929006578861862600494947310801792580100062831955363224462866762881820193312392474068496571831055512110290699452407305569347307714408636251093106464931223642441262684327902902322892894212279564684490276103849950322705891180906081499146247474498162607863082017122607463945031501856465212793229205945191082109283643017292662756292570398855486165877961431830099423683138381587349777477945555996848442162539783427042084660543931149552191336389396281270961113052565423805438021163653727772090711699489910954727692200525000004606936961451572012660046469809420479288527302321709213260240602711475832195760626384120507040909856969763429466448231812066157284900892037465127397023153650168967438432052309391133918016527567579694045636835132303785730911904750610871111142374357545515632344990872617097655573340911763381809262128231734621402390645495600283267937232708529445955512272610569513352001501615023868504927008834399600178516091007728130380847887379320299160152329660561356159861933254417587496255117769243562059866014137204742281855892917055831782912500791882335852623371540653877351043358750982596074938933166804688689193893813706536400436795388170556135559518633833113567183064033006973116514404251057131980803279877875242095809793497469691797056509595233179656706731012210177364317824793557212457553092034459767390978392636522184670046121926626278244953100879671556899279623965830924929172788839016848636100616440683677565755784934558736752320902475296118800672320865616700356254463088913338169318232660338479808597334966825697776174800826675107162004026271234365117827713869103351720070326777795396067986779294726848499382164158334150610301022990907578232625719811350223739933707009660353441076904876730313104169377295804249794024191537667032626660666088316996736209299258924638775795969478572305109045598566541833477984936163890901374354108235504764581679516008931440110525606245327340047636664822027865198702177154460970835288587007081125818117817579373521104340024328084777417068698734443385460674836758875649432233115001740363500874200159768016989016571624432545863544444599547785394746102948442680754792164253391396855605573535242608318069433660680047560528591706835378050909242757059138374077856264661443398829662873828997972765459182162893257611882523634952350915366949972743189050128036983857335228675217324414846507134164631460280406671053292120409575766066523267914527715537930447654827963538525301229020204621079202466919098590519441738351770349634999511544948162951162892823505894167861652638822407720406216934517777870127396565422842851513825379639856464499665867308505233279803708148476314106444175835897338943906253171390579057350681371904468099809996754904434586067389465637256509496135832369615120492299683793914459905114248619263090519054890184198810792037453114826452099340829993143772554701268970817091622563243776921117474372114624398738627837000460263283223738264650581174299052388301627868189121492014667017786215625212738269929615761208241890773927197963925055886252695742729631564839415349067678722026815632156166168887596539083207019024680251260411512522291628602532223134847016412225189418701317246746558759927863021612593768090568596561008194691694205144950309868020585264823622612732369306470794908652945444446866336636156692890643118082745417240024039069242525182534114976423632730294055144905389422330689389409518390830826309588786174130699156878224291175161559217730582685667261041897514974338927341509630782493252275261252599466675274084303677290375320983050515524496971425327062106135407058081924074753113777986314202646663093012007058177812021897237105920253068103713621416131977752736059564800144342809621295667107325847950754730359462357820567975689223035386214877421045245838057942175202881631438879748699178019013961013458474063166235664771211707576171307071602446164717259735402824790144146131040014483840779905998136676551808539670401577011733722671060260314919089416866249910665882651432692929540607750721164085222971198816684901854835434820791710766691330063593455861122064726106285166348658111168315850133181331404281700536296678584617892385715517797865218560819636946210331193213590369867357402403482637369331269627949340449310441532863670396391923678048515317606040927969075841341239187469673443054417528392220354065229781122258365550478910732493363807165826881627758181032686917871961208649269968497967672131478819139502597294263382956028199088169923927237143072070088119176390881766100079214522468019443323080127054965784292687195766429455453096049643232532236555850361838186931891841749981739329868349668692975189682551151775406452884674384770063913816045650492221866941365134298400161966314375741976071377288371180556879635782376044086558734635869494601640117398807692228471006833750503662111584561087728702209822661376200977932276125271689003024564133235834635584687454637322013588228801806987840909459557532988421938371115202552231206131199346366935802238405538402346385494792639068461202370035597727107500584045852841029409968811471770240905892985887955893939808170741365708795654649273674392190337643700072440672037642965325282270847329698775704065488344906859307706817573258294825244037786788705172393463200609896711774496814240853979861875148542859914436923171066958800704874254178994438341918956590829286683114468952536591530478854828072993993370302241372044811815936533646150868635090812594917263510902345619373517753381685746221733310504097634033330147781431777335909079143509353140020138129133041379027927676671442287367112836394940769509097724551083350568660290579960572969369958334598810364811493865702300964967259582571483752558723052166638535257668411371115879502509967448327190908066939642318639509302979867865743160827687286613637007455341962485694384460698184448087224136216527643920300763995220628203861321997056085167606723939359955894368415953347075998158258369745173552564074745467890553475573142241125165341428349945196870748186423672758750635743079827956482129589316415599317116118215633671788363947481063226584690116551032165752397092334644848537713108226372785340286392158547139510697361889447199958263893576005698456720390274508046269850438349970408052018844410142139182919400478820769935072321142367806789297961737439839257749640504875507846939462011403161579870911254035207399863650999075399617256071840173438670519994262546596627399376578248284898432897379815388868147039492602436849637377886565057342583303446862783149136960354806338223965052541331631192985590296407294751690650735861458939917777161657121392725441161229861148995372676037920042317223369502318236077362986431800929436518371176571182447844304896658880401121232960808393356497306795535671146159012868571367369811522339675287729310899393752110353906866193846547665159193372811251142543217302113761232192071181841566093423611007730767400675640142663629625690543833877687881074343851122334290545150972671123387415267202442692225684746066223215125156547660835192198756543345344562715766544346529367794556069952955062277172765350629882448172761007919537257527948656296436979027035030983012075569831731928928998105194312304319708617456388148925721230971888496948603570982586229486609214321431731639562237980630756061251801748807024537660609204296684670910703195946355256138729770542111290713565527781334468708379417010236908163987559560262459151449279020601621368353012121057794021761383351752476260139310479200015510969582642299873039659686329157067920486010377628656334223111105135226257325399890588502434296179891927627442115426112970083389900403975140537108495251862756527593571319960552389820262694354016073730419733556961165931161494812624537891136642376051906543979353371107578582795903118605784668584455755950654232916012433490381961583124892971526946729841598663785359422155635628538178081891513591158059878681564255565458510395769070266348361846750050880482876106550040485543176553438154105483156331408800068201098846121673291126657385909696372141297305050457837468752004660831054696674771107165963401870912950331880169940888722820414401836043993337590070768828079447199712067139526172532459825623216404608487907126134561080047310123819403139228522056208447652669983834670788180797620760091485718794816384372081027955455820011092254208108950952456591912061154911244543426535576521358701299418736927218906662506161394582510513811067653202674576837088881803783767409577423925069548290306553375411450104076299300876964648729497105492809304511418339777660509153181122686880518514645081724991984177944292125594592616746193334346667792133631582261281802504673968303881368560607796548753216716143075478078776530679457437881320731158138187683218822423550384476977494672509441062446945648230127612741047431405265315252559316451500123108868060175521308079408555019694575131021167560503650659356686825733583074406499027189940482007809883493145291976048861570349835327357903850419755097882826572716509417115269168796597672048276760489755116799371422159726418789055720972564914668032721378767335818764054352353362557923171008761161225922465881660689662320381699369293556275608795499917647914116211497516864614016944274943244778296255803960170473849834834685345981553467556007828980803607257962521597244783411464873172396472957217575325293366281328006802359808496139522841439848487104261271888399011577398412768198449173600605719745378813739509474352125371449006531187551092058711260865273433097431798860235996869277158772924258361846305471397753166236075026503393448001399395755527052136276472792790462867208123146618509004495466214513211220878838261540767244016254814658669136751321353327282537226564575361695642593299220567739352191040668490014482097557210497182528311400258210995610002234661462058968645866513608229463077087954324649004637935431495515677692241217772537434118268555778257700855611332646096205725266833631513388885494126237356538722187546936777286586956961810864766193704554578373632629873542153534661055044724704060408315048259702832740162224512722752969461940258938673280270241557374435482889809475095116203744572205118846574460638069368589578982927381136878309406217893203906464260188670385335302872769407113639040761756690670596661233532113052556103047669045169573756561324440132649104358098108422135024921589502970709442836939240508564213834513968719265109605708542550865766237394737903846754340829375115840028650945410850103410045274505341025290177938922767860798097170173163393476644208856625254338664933865876721365663769517907470865020013364294588358408397870583457893148545758539046864604393903577394607073001149463808321440982873560581768979049761741813944806967115420381343299076473363975069338747778939822004065537376267106342721420412250670930271804985461511001219815354285860276624191511956966152273366514589572332115990992824201683548376013662864472919381235128700880086122266329166699277470682247119128143333816727189099128880824916436878148297244993783246315656516078271825703278098336025835090826879872983409611869824527801115169895108686886687772308725412419797487706354014966403928849954682554129612639981480215246957469075663709969119761145050409131932882296207242808704679045877037012907811810009951843883068425979824223744618990201869039504097493589750997734222108271170621028404924893821934859052121910313262773861034152849699498693157820643387498638655767978468653590980227111210186254535577304999616243573423812587306554773664383113023260395370867275644092331771668774151493746609257744604121253427697296416327319655103775703685697420373744283262864228841532008695682137161889065851887378062763958348836362783518362508280164822380058489700997319997224226867075842407756173063296729457528819378877556595910020229256914055362930495980950695830648205459621879475783831132558099686934913787202045960296012162140687280579141987272204274994167700790469448687207204602923250974161199942655673316484900875705677234934086450986437374153960978815100005208700049089836294458050488255458321697761589968457380398169522777082935430385654312344942287524756223712849387089695714048264849989293709298193748440729030806946730013162232805626024647553254170743021660864520235447793688449017127128101981428332488513226504420154150071346558668418688751733752732449471302759214442646838966103164502210517889965529923181750657775635792874400299589303926917378159927269288297474514593843821472177231849884839875685510983383819347579084071404341169114842982832111007577990729691836816742354499782681126969346410535903204211011761638641486090392052513951300973044366826231995307807436641538317369986262499937942220316451724544588238872274193541987229321203369650611516295892065640967433969343676756576662793424676138783148132983825576999016113995803000031963786613734642468389409549724973597902829831686056788286412071310352647352413156301578566845704559562223655998754061932955724067904808609551233778879202771217951425126067861370890506430162656046039365826463367556714394762274037055745745470211634693468347843432225806214177265686880242185406217647016749917050206768757743746344047740594955721252829916978489823603827694237354270932245795198803277153427078024591472208709181295957592593642667668557046182941446595463696970545036654624770954981809846619838661800049413114166593576492150663242508630007530384346540333857582680779094504036927090247461603847898199193231752604219648702313506679905621766526665212535427081496779826786708233427110269813064510040063524849542968671211351499118473810121671934616200694790409054916963407320510552367073442445314176854878539611974163071282854858841857264576558570477415131432704123509395919192996005458916672427844194673942850840697345556729355251188311357865954699926905689201213810710997882241374143133923529214003804864963030148883147381730486365095521232163235559399658815350551414305457962841316358910707808113008886960914962486222771816308586622874077652475723797110584974512276973590166478319218648196710199851290668719870574604885623102114924703612070870479682916995776698542779207479646616095855478975855686904792303364170390179854226409380405208749226636281364420272127586986751122194984185762993912396454750716172695445192875380730624590632593553255920141813526426395991284093056744896638554224294327834452405097518167071431324828060116950472850615337431608959206874860663709152933733514659158349601092518099017478275937750136105403289828145506462805233867119734998198303386291166962837822969436626745934976158480479891293521239177870757514500380507539032429923973802000454109272291524150089707563749164866884395484031152328412392622039399935633627376979724880825855322038634795105000924727678747039431632304685658541866653730098577644511007212628476954795581576260547997422638164043989679292633633654039720392864113530802480473625570186098280424363120359199887878320270927529458544326906211510318731046602404091488664636789129670086163206187061674726767145848987985252378637577768858710581559964191232656041889323950173089443894961712319386960198683409266688295013592442870718553271262334663504614376734110199607686361896374324998072348858664214797092642316816675474735296048398565313335138731077095960045729865525010939259673368477894287400478325714440127174885082224229993678584522552550936676544259406433433506247579703895232906697203847226353198171470044587098179184827359479635336697342841268537689382477094138206162245780631091912896452897685163339346094432558432887539529611747787732022924960629522895569879452331212931446951327905393262712452541413354904513557495709092704231160429906128498693433264185514112587723079983414958326029119468613660516142765078048380302479722584182629336636183466254914443506834800297438589625881675859808898395267504169898815866341082299277488942480940047492153140173459792699566231859337478884625306773143909620747230195808372543004104368247598646625382117867138722749592964504909698295856820001542898284073113085128029471927696703539612329873646241447915102926408412973105922979473490049384105903594073874934603921862973277918581632949574992426389327646530162726300355240467929318499624176201175239934697069377228168971183479176445177584400210092193485224168629850157757903788100688911187530539800191638907226268761301628482435916957991325093487823111083551398163530953279171814013751114399197009183146467539816529186466770946439316089090129202566351584785336354509978514636961434966373873206138030389306622287308128721180298916233533204363718144052120881311166606720652899067607779364544747797704319633516295065501041039652458283762751838738089183487376356241939077906955472907904776433134838684392699119822140989075736761011797669663605279383625704117651272453728745507010103816745619861575816704744016967565649967254810742445988213432253332104929748233329440993694525918535943775895906470616151837869734016967139524870405692578682708199855298165810274292086408251680850339601877465330306547465488544996032643439278660840902394383744816088088467066387515070793528456728223774452045523447826258787080960169045739635090208670993489800041103948145292118850023197652277015716271599928359013159146746103970407124197873042970277612067026890191289619922949083987636866991095155903202712017823067084070172373252730331145448360470466265776997338844769347805997748771480734652627809646574366623063002203101922312637260123665028658892044216723616385635968395116483953196839642448266856030136517241954691212622158798881634565170814578990058419344496924529290344651990070019201214213731685241975820620993805868075717336229721512954525332263014686076995915071116573327848919174493309041778244336349093601330503616829133557730634455062540129550893333896729030655807652086200681667195575420829353914540368365580482925683875937517311432392434633500186154650154885090009655848653266898750031517390610189765059404703162978431838207939406971317669208566273617327238519800613179218223862489000113264532321801825244528007490098178127742808071339317140749812803091395980788976555948729015873470429964949944601188907763516900349514889681890250598314478821911728612290104758609638907011666132591412003796703772196406245206051836744669101050314314370423769646525659402907684585712494554919341742340387519513483321960546488110728501499843036513011500961980414301064454205809374335661537210680277646656863136667526649908349237729499663360622181346861331372657024191581594813119378532005967803319853907026260096223108051813932145668971583790022809196192936282069315097651860855178820974617657949786037538119562757208369018106258529710185911593253447073119040477776380595209453395477403162236934156595878100578622848615419653048744208461563510573523212305080983837106365461491705909095992732319606829729644019379175031994011412910898719950972614142602597666933889127745151156582638743214595949234807364299467169941018405218276780308634371247825229269239668807623720638306558994742071990751180847579351754296829512954170968523408198473791463723069042948367571455708323283055025780549339860367566277496537186831761468723991276923121605155700898141514660630097304149715929301284669271319347727463245282332302996895303753147961248234279656511837039743319089585401236196719720681101874174501167175541956322282054444872837315868240571378626239192191914780694509422651417221245545558210545112531627050482805495793502860995829347109561241271083404063997274357297770673334776783537155369714457972981556597770256385313725283559892534602133565822444614451782603021879487670626980958072924943622398123098214893436844075239585221432220051266486517146506833477864953895089307771029490239239904523075978589691143046502757680677211695410710045114103567316338780360545077527329858898323956327037174951663495389930830435194215765887913359158931952342268646094027484441326362653240339945461447234861851176116652803674063635346608319780470544338539710419399918560216049013157424934853424963429143360431324852850035635824914266325829219143247890359153517051811835102241399503361518447048351501873798802642509297554288915008731560636741263689650034688431426960248566269345675568688749310975952097444808857422067805033033392023534184548455856750891770201749489935184045852234001847654338454359295940039759611751018117076306214714089025740030645278180250492916524269527219230032939861340653716493714408954095177984684396219696574111714884570001122670202072357960047738197444837604844906466311309718928209624566309552344942156452276902720126836998896409275230851829356394740763019445062935677065938630372787472459349017060069548982141716577663254956003212975098625453781985790409551288554778149477331928850173852674518587122264188272708359703045457150499718036607782912435302332621054083125996176283548514516884622264153190387952666372988615813949758366229458291226855442693565400711146718091133427085834667190742954908989518177156977300015929156152477641057719420283485865689370938692343052657548625729023136849637086955844068774566352318438464430887832665857269353689813899795650566596913779583400691418996430503674333117292920223835572163219940442969493995741281955457445713065631292349269954534929824699794432825340903972231613872574461012999431933868908540000143733087334626149950590477978204156746299592295735457839780687529319313211371165318578135680851269705298061266667349664430879905066320310239069193733503496766080357313119295023295008838470747802261740734727472244341698314365371311535416446510658666522210879094512883627285179090813783219236122692954967108196784480141125896522921185521382251306890410426680702111865262356395463955443552636733955272842476111204072813605903527763574718700089303541487664170925058995328193803802076292962103521024959741151112923694124476080454143960145835422472170846535726677044510560598693621224205464282543969445599947377699956418797181189005107201673545540113517404307827963460865527176457620531477723802078726576761069701727831717222540139878620208135573909472112878083370589944919344787034218487733280876305114412847744030518902410497746241124365513050716351284150816753160857662717593447644732049167663813417732075696755146688459809221673307049021317144559720955749396339236255332780011808087328891994817857159239878448353665356526750902085936392256582308615651791144492095071980911514663088775507601355135400119676397958144463049236362379433893623740774484040751959786976661716113544481907299043006603825186130627723156404305171974719645361703822466535633879311687045740886359187796652372582363031384723237514489260858400517213096705791236752834725920544897985669517673735842705175452916497307691398345809380328816378241493457894368613000169845634622142927119085026090421061849089419145961399929395067608563336439023790889000053107592674440416707716270371265435510168816994731327424020698354237789120403414797770875816377775785964521245866545652628805792653006597136428439306239829817514636092967191381323841882170179068486243021622925079980164867183270214943809792231273019318597453706294020157965377920355630868080152684326007105700600321615822766748252028424413029224341502179327693361540722351312148478143236376422965452421527168441227252606602043632771449805589083552670734450222110291676792166540088769650688630347614674064392759710876540611611200772070648879548101374871214178912719407694750008282395194805247982045375723864721871519731048116543237477286658662039086490048366018910762985598427575336478395833801389494079064207147124979816848374088824922821835234793642265893649379246001745536257665119242356540130888202280486969766466589492013052171709223108465760982048351680768686491417200586504154208827333867048626670113608763050579460387382099863720038312982337612196538644148544726631342254971688555662749693181899832347027478746586022400488280754453407629390354203776710390645960640484329320453408414847372811577370100735599601968779932296579335481726220650275447136016297207694990695742735001991896850555266707101394927238518484564477054038869620805249221004422377279913146848269777479214345087925554379551853058713979862001585395279414678915805094894792338907643278640951952889441839562218495477538507502648613762424965639155300442403591682959439372985378730260081642331101403773594802266893404095234598654065421727042297481276851873565858779014594028957810929974499628691173805986079283671086385951261630669247235276439994319471940001122245986174878791567896825392477924149854282852402689167004036939977786288369858785453611424601827342227405960985725811560486369612459078507340984348326840786923519341803125515563993125858124935280147242140563322626157546627322758199247913498304889110049990528736225923107278075273331843218473671875355263190008988183294522225368009241414317854477477673086646694727933564243130766362712513640184490984551503035572806639092290427544407937466038291064460659180964408204555907722038870907060684006298092864074066798080677402324461801912621163334879369137110172503320092942505099751119221861902366097659567268068862863788291612227219875263869632318929049758669275133609583531225583424905318290743924318931593625330471118357997673355552162659388961843490005596869719951017865009145367654297242024205214207681567798514861267224021486131956045830601691113009030470493239905943273807418168946918648592400173288919478586397360085411761926157277550897242211053654831733921441411753811068569724273353637360457444510925332976157232033511875692095741815153992266796515672824465718703503835416720383220158025930634536930145803342439367114689397760637265246857067570030060799193202392695214420108294204068069032780993614900704826171998646177766564180498417846318114797195967033956334469547703686723782982243667318378877310985026378164232496519739972889272324796815570944166843790149277367756683472968530492907621512935415750398642102951601640179395983677419420957132337792891016479764474783135064794668889166182692128919098774883330467866030893089258709615997318317589288093488172628077743801211788576534921088704479399900015926399916975257484104064535348564191343214461428180894544890760376090785583039701119352960517339620483022615905219304521066038825157009414821464596893573863430692931933203518081586414640964934060501392702805651003747845893905048815188656349530362644940558458953569747848289598976334883609716555902006825181914865467500969767509350291347531468759375847813635352511514757019482191444937325860621653918239510892601927042164286434036765007999811253162154588093155567650840098112680693925481632630448315427402105430345269530551802057622268648142817245896506436140783643027951931022101364732996519717880508201797060390051730264207614292502902532769045901502730687132660258394374047362623337832324549535502967550875480428793385045364799445925297647494018827486710623102708923009245979654428752999041176633006568884741514297689522558791049910116427159328895144108823173366382875643436159587403394778099452229187312007231779037603500329434068412003746790254721341065114125429853119251307663326793089909768842801616647575659087030309536003227301974598781357800695477815148612019908557534430372574055703476647834015996995568220484498796914458614250620970965758254623882455288723209719141849743144482605982651527068042622516634776100969573457703295265085515851614802553635841361275411702477310894829017939639571941050788590678566749476284718937902803911862934540861604812502458582730110357626439232463024441494849200100296519973734627422602973694690601842792945830908169500192953718511476999439702906364759139910354634173658667207980690636928119845796412488746735731213104285704035115690617804583122988846927014006286951971838426359028520015538991698290153259595571175630036017228022255670806381812770887783547679910519183522949166132267602039082207009502739981950119646086308698508320546012718091409877817475366825118592902300370617707088211943002885291244255074783449489326057946745162572867212752767722760840894789673432054899332081527342411105181553907334778198820933543941014251943839467512658065900660173812790131697759278645968060204809659785508124114398536669798338473017942351094747419177562615728610246001224833532602184220969276898516137229599290738795709384905638769537763787664884941737317378556077802016359880936637370960273313550592319061896934088288623057994689714957392652697495524140596712214440432442706726008764710683773169395998223786446358355143149039922004037188217713304441196871618864510575778590160616605345338453411409188859747738235715250483404088114962978969220175262739218739996117780939008404240640442499911089358547744524013603543666731541334323893058884546852472157322622374112685304318825642235294326632134613900979926795223621658357345924946631690424949419531166059965792746632020637993640579806711101675990957985159812310639985664370086690782296034210241007432457947298203830289095339509883111310118491797791570331764385359981094291475770571043720866552736964534060136540254414455468292292158954035582378625724296284975023704802924483134769404057181727954236533899200352941671724866708848805339496236308841041576011799057181433953436256788430633616256489554648367056383667262223795495511742560438198133114832374759859861365796528018249835201009503854377868645287270842068883750365698979312432749878874737599523827547558338717779475965424302069949146040298105510822261913006741203810714144872990366486922690482798497806429595428068524492998283941607123198050563538111236867717200604746044621472749638645134323491976221670662656648430651003219204917749472264068944049928960412709487392450998553574486068972528433635054695093831439441137570554550025416456226124447016429086063491062126786939850858563375870950651815785853731215919283999411174461499343755315326906939044903562635709472032922399903749460239573469669337180556406964320288471513246792522089312326863359957017941949331839963095596633779734163981270445012374947865816256814942524022199838890467426474948080859580900165744676721551454692298048130010217452107998052456408720123497730018806272225266567380174948100821538969279026265739876017427016698406370154600234319228371135876683835888134007327605807292452814279507315806717861502709574071877102293124787715757507280446508486608529535217959836882197439456047001828691228860872889057125511057626695593206508558188824739852710108472137921201007350286813456757701982635500657994073126498072163926155687455593230577311721009839027699460600882081503015277333468655186185575904467756606539956799226225617724592206296450368693940573624929939135796705687088141593584774476017721474216621164719722758482391336908328890685251052579852440649888206614529648482866770424040793181572281344060199084743897426918348455081503652845913769359750479727697747649935164187710126077119582735168647596454435695103941237957637687174417546525645569055043877880225834753931675627257551658914147629386584582176198101448569993901978672695893292874093132882506616306960312801304845166494781836034376021612444940472696180089010603934384874183724657801392320823742860486724292210178223799744557839881999496204507405109248782499738540984283861603388009925939383846053970189012656085797787972542724892426410245085900826825035210516062146590099996213218114188559636003165011164903444985609405775795094737813072972994293177734243948791329817689879507440317913398595552296145598556641482054301830181633121730075348466869564906639686172774443061808649668717539882933400469534601607858805561841525719486815613790433443696253836182620302152229737325037789650960467545142979408481116476352919997497033650536621525831651365357377721809438426380326153665371158891312683920251125986602041449823733623224385572088439232076844857633515458142589550310876737776600038231854652560315717804177731164666398043341871712517807642782270789387445913395824564945361149333718145065517944237953169568629238446911943272824507526053538925056045792961114831545102213140816783058484965104530355468576118875277106906473070951254995718894131584879006530915221022221444955223656397106267606077316531911607745867200828018301026405223095535517674593640336014260948134549443036165792735851659953440327640750796498355380222697165338155901725802297962946309767911174348342328735043070759402203839209229471104953080164044311040959313751366525930212872973026421816941410732114794883082536176388146680625775693274522656894109499251465427420515876827937305721176297864836669760258807436851722979487902084046945283844566876633632988244117720856666804026263898471444746983095984712493578275545636824889576333108832048392719560359936960316384996472605451457335532244044077692039884183430469760927781132511483885922208994151807016064702681231130013083840590368767605928246218235249036995674684288716044619379904187784242894656543753149364760447305742801326186369009900388848387799776140089649569776045909190673619858409428924297755172986283569599986664124224232147300901986540374901597164565859735435184573287016118841896898857469564797000889673177677819983691978140843256561307976286905940158212987209304538389410590124151335216781398295616872044588377179944846064764633094596792212065482270650610215702527768291261711214393591559354897906255457919553043546394912847487547648344364478962197379540763319791790093693859291178680449480309539664062488165514970146464926418496047581419061584275960560328693184498551231433556210414973594405878676199404145795577850681291618280938737828918954390776072081842435937018877867906650546056606882967268854397703957256811012454301939730930439800911419853916267763905779958437854536599354457859334381987684920273663473558220529956865356704458447989935847493256606291721548143423857165556987537764726980942025097769495328522740702046522701578410099513723320387272876765993761341512804982276349958323347440643399186306104739363402889777989612729678943449747426257042204326648487787487936315121867257728607967044426333267521169581050928825307012268713712762342847283020776615584761185863077063921883041996592957772248723611016647496120093858142700675971499617453591845906217796630842079859875889255686165195058875055794874823680201765349692187071154466702457860028417824318224603420675320367968505220357452892003107490558847823386770349699720182774715093237770339038313714909627301091949049772011423996745537572862355033607633933289487834854409782764063034025690055180202541607695129365344177133300621931200018920314934535190187671807481416820199301011302855200557193089379492863947365626291143225889139577912008499508087989569773479119070934445017325089365368305246010119573622946459138572028559896094838464612190841740175702442753279317074921024401948627691748911625367870599529575109408660074991907274506013227762880350908807458203117164642490846062258971242584619038576504800054943712198486339989173863434885821412900340924991717091513310614172985343160145576533486060284622914948760631819576122240354954082635930788524957888573901326146124447174799169338282700770311776207932313619821665319496319310695908304310586448184691182963333093739742942195848030119926020427747757897024339041829417685576855089466895078693223429478669360289028208024529709541455839558628349314932255347271655057017866243929578365896011183551071770263504331562490891856204541947721339421796773749509071564825784905839632890233559246998315778915852674290206090007850413849723825154938866221126115632628113493497094730254661105697064308560354957822606677863101630033502167247018915739332723195555559062558390132795165239899546271805036717384605908360009124063449087509939879811064121141496469035399726631118618154013563492578177777815983599661294203901833753825511265703201017619738189372375620152838883655834555255954246104046672430997397202945802982898476315123291465068167411534170586754250616441050798668195525914577009605369571025776731614070999105236214076044805233496174186757595857311885141472351415095245483548645537274947611837164915042699709601882035811326506005662881113255930516976086828176037948893549283832052964310696597837276028652923700954842726649229451675295411292587774364377304028623521885625395386764224467259038283246392426794594849618225253936904452069391224451340638984060058878237705708265930467573186229340851365907845167731792951422837634345537656024738084588900390138074719129452855858567135312454284547520297796887558352725154611595565457273928500424340203266823759838754479787185103089215004954439774130415487433211977207587906418514619481536975283485341063523622926353002816458391489935347157713839713532337523448860226172778165235291767941926202663783705722671722968016045795497066732522255026421565861365264414400327031455895357649315029261468353648753969995054286807095917551278237115059963419027985470271563135130626719501113755866471741149675130631020336190977270032962827124827364853884749630465998438800400569539528618386362295538853527851774643540597812835990827863748638177682856982601326287836800238977410175421620429591646434702389357044902866904954922768394751180562260224646083851546337513658909824335401851769683231053376793680710436165660556154514145758625966559060812516217627223024127435638916124871039832877660659481318838017777456214635941424375212326995203664080336676097333886746995425976446111438781663333888048932797654779785275557653104054930043659149206840507942477184834016375047694806600663440913129620991518600881334748215887306013388962483668254851539219917620788154080731239493704447742508405976335484464028657510984844583103297340373336353512735412211846784214112793310949284353670527222190936033887908068298785537342921765092652213860597829450845103925880768792570273847905444778144342400731825935248172610430288363826703880458887941881072549861350788497320949380763692968462131387068429639359091623774051590783407396518638913398022571177387021358915652888124198630495044991318008075333095006841563701796938991750833863141012855902012834495891175216877090542676411760433599223379208082671107487916015356167290932083492019481972788848369592892516563281174460135018970756553318085413176848442945833212621414979588370696846703359990175486332579975030016669760306319932220380099509067540322647495558263785800355692248072218370039627738289892544248307827487689067912787396876238094768345496956764466669752185077589998359826092336877048541466148763165528648384367217044642555848290100032821485818853074865775947694645816065875794778404394180180401921124393775062126630260890196561517499675927380936276978040548479715624155269441661129331231209424497605067508852393743478192263154073791313607314574201172077177188109687386455229375632806378323733895795148832139257929311203019941039430381597072615194893247986701208341171302288051270911597820017805589781858256367928740026177238136818490709126120576499046843061606110853143344049822526135475138532620055212115925495291360588775092809768423531028899367506100761812568443145715647566429396208752064506841420446943516836767490516760012951530362014042632050617208513339368676196795835274765870523281155641318139258883224365993723606830354588736214310719665425242022054170093043800451023882637685670253946648092846603961403501683670727481250482092977703355057811457504325756368073534244777861057418234659183855300731891667296104789432663962956753926484729691346912523524589152743627552476702392688583455924891947277123132463192944998676837412801926030260870929513963768945598208975115007459091846958785792246891641209294284821770800955747965462429479422148541987226582747685972382165738895418200455809840384662553395247437621964855169580504635037221515800587796676798073765549292916699611990394707637034407263453688077053138289941239284229562801743998650766635201535993846829549728680891684047242689287169363028515879052673738076050674792656790108169133979135855346291184111918949423213111323803884630123988387011527864107958951204593974117286211358454462837771425563490556406759908880699724429113397938321847755121524210904384483139345154844089503931593927807317132635953538763165588472243237143250190209151171329586483286033423013178059207422787811824549275523622818136896682551837449315107989250768009372420174256353710317046266555483246176808955580822997584649578602459314279734471794640518064555183363186834155977402796835879578652352983445804850757203030956747888502202683410030089798769964297200461525134048179481114728367177171294878274001939330171490407606122850013282487712183323508513380115898747146684123608381958930974451083827569764564628439604662336709996916731331928891991487810739536172866601216683899318030616138526334512451685445566941396113464547322432199118783787202176440860726408810141155498658918889658234214386641795337834249722322725310090600711384714884601822574505061874102827621870695180545718603487369392579078226543348777873406074523697584164238104987830105894139633671418674725333253086877369112788673369900846275965420167619456048468627311231003756679881091004834624044516798861269427503074333879088341209092047815170217906328066076927272012887802295919854398021890965224107973969725734656676984026557479887372678302996632262240897825240791359208103760762417522243196487626030394985445410350709730457682432435639700946770660625065836656903759516452035206472142968726229197275145439486624071226726545625474400526789795711127818982852004501135722495292806293778240446948301581043339867376552818326184576775419322679583295147459706002708907513418002732234680308325508035886966507580044717527584435732685562540246822549423820860548109125851903430490718399193436830627989368415138933554818272277730781520980163473275407994177719681342357984528042143284017994402834827964432421590817423950910618411408835740937424447441020504600394889218522251848857336612401962938340569287477935047257212640237307533014131862653775413793140558747447167262056944988714676504378116167185050255719513804316378981178030104622369719766128478249295169504635146552255653348772508860957334834509215161409192493412921113755097977271313100493237040292163608752305864172289091879846222369754022919309223388972662764589844283476331120180966009155984221386557088457316855687813267208373721754932967159073923788551349545364473993596502637393389182686487158458948125018735033738238495621836553055877251126475899785795875532700240614278268238534771397065291940239259500752446537874052234064878726070616140207126263188269974625241026106501326282451169348488821645135933046440886752709279513244879693579377557794162295066024310957008773011864956210037025916187403599660480709523519558226994078693851523541121999892642420218071843721922847755486993911584833425279932884677840950649516283231613971507897237923917218603596728692752193105705380685034758273402631608976085711132602682567513689716085887433745702434494461228718381599232524648774977316528872256662436907864420573884754667462380376899856759408222425524492628681304277360827885808011157803506350277090449819059433128892154056414251449567533174678763509242413375856682300215188474259618273406418668371460402750688181485789173756074230013674373285218075571319674905823451624013037617045674821555520543078195050886916367487222830200150435554999830969502656233961940227448085574266224709329215579777725102448151076481383531005222704130604075001089977806359269733655299594255051812615554316104000551802684841474977119621377392742267543190506359967642342975362427186761810086695137583086167915396636967658746528928694531438532930836915277293708729540052849375599445277553139068366089649012582720854285482508998190516818700640227355930336314174268242871116809947572761212934180719416439619423936490366032302597558111426761918787986993447425328843477941847028648190814877777905739851236245705837286122960957462437779989857106131947250622505992297332666733518269251961327508294266034463552808653561226887246239041254119209591794176531328032576013852886118012793758629501025338831685751946661110488506909437878605424395448921495466444468186075276453029771072815239462051602985347084318216657151526300881568140101219948795795534632151850810540208031143677860739242423107676764405711377755688589838956145781568699836298349291107578011571529592650642781511902497215404318172929807642306706594638289580174771762885269088453886833095012451882032045522451307277096759578671913421025911013370961944227722215710369973520338628699621387782371147055582328399676904868778630023545020502568163655240432831096688914106030969192300979503681303904973383290303617097623897323734449759159493354168981947708577424765090391548189895545633895620609045140669165693349553533693078690316927329992874651244279940457696024506119144803024474109523876154345220000064412426125340997633793862989127089500319098645843489198808499282117010868584283832325291901311799925571415947584976326680846171481976334517368145019428881460660589858519574299474757383288584121298181894897730750480908051831405482662310119302566185565782081987774045651567304660569604458461286180009791250659198614331058037962960348071683317327023814814686072633485440853696859586346019043045157721485276036690075029171605945590041328927888920015301275807321734693162472410440948383181417665302419655235060172731070084607498528238062938356360934308042733275507533134095967096817280220616479267735549157296620317726435180800605948246053072560123525131128037688331527282939255852949328051160030404872666141121221776556593404605471300338695957989701466237549744649567451925069058876794511112027530457203284978094387718720708330988592214390700217895779310716486328214297767196292485969527777670152176971007463028747543155741273290803999070255004817880794914794547620320036671550482433080633251141930403433705816367844665209331589978521062099059300080111271614747817366321520280310246628792610159205526607711023175839003988593232266587008370677620572064033590255930207595458683987005593753137480073300200091206855476421850354817610585701254397936262285903541437508664364151517017387128919347716814508163601044549446880409288386968036169938926308054899253833096349427817226154634868310745852257144372360932641936142709637895095786017264023607030117257376193323785895808892786504966544219734191122657526303931940121827078317830247855399373044082920371603449402143026937534662722665290233344179512118892577378335023841853156220834254181394203597963935160614111369556353664445195469906766607754651706736192577998583393422882159592428116247147524889804160092923464865637974994712417023792032678197669241246867677205762530470020847280516467218702184209450527299978111279908994863549797818478753451168464908532946674572677574055628916199245835182639735942493867931302245678748060329973510997690070453532874975852697101772575979178898941774249212582463129519390317429239342511121238339026664152142133347675873806649421508322371296909175748032155152409548047962473618136231732100136617249315891867239080108641326081424368328614923519369633612368367693850419032383993109306368610117197098921578162153331143778427750772165178010034332965285046673137337003107311450034001678451437459272609762991792463265091687788951327232659123994355879269201037782859443722332828589012831113473358990397257330456960269439512174845901550386915697458644933525710062072486965208870007429278592521503664187386701884838029410205017836506218566150943875244706089327502722429854847740813534863979137514719855079314307861401357060091959992994897807322431593704780336080932620127776526874655072929306603666632378083351583362021805350679111995566649391922239818938092841604203337428403125683858433943886190810416492694593019259715323763375339603593929375569002169987659712389012444307865900062314875013705857140581256476134026293114757764217795470804129518926927007130695598336380728568718004645546097664285381509459399935072314210844908124643327734572519860544462201729461544942675961917402698310001918273793946872866110847637992424647225601336204872723642416764497198711519768349570458093851211858976007052200871136774012130069163268854309748836853884589910799861398788073720038761179676187517033227280378753403472151272631369868159227134859152693132195758170208189301772988639294836745419029805564722642535876813904297756736573740346734482518324784483732684924779803525354548756282803753070830680554169167618125224959287234609321080438614493709497488535748256146373169678842766747414594447418798265150716323124969027541396779134812265784626811381619507976154680467703325754382607167975226377105625466190773166970150048763326848434852072300502875883394323761457343395974478077246709085154405631295653700925706819664942146439535430715744475221786129002489762913659254662883199278137268438694295032116948572357274273985836530641256456354109808516545838773859919929467373905719317359018625214979191539481193230235462995951699722332143903784194179357405729977207928714830293627632664772125550252318184986062157605837740720627136284877181763453150060473905484300584584658135857745552257307184483023135822314740855132409168618280446294800698991444159426808502419251994370301550560730161995393932924265472317973530909762008541656724258676699806960561431487728764216766833595425094682167193888507250092672077992249007943310904905475528814990867526597198103667768160344789090747722995320467116968763137780476702967914668035199656876339708624528189159053388841637129443909378539267151307490866109210340627637633932595845230902922990392140101710480386718255738847099914611285955658396193193492691478821717828621864706699587073501728027228516498518189361034131336510736341057106484749804283245318625193239600257377268901386180166082515913197944844349109524276702711000370130495597790825002687175068676556164343666052910953819297586304736427939522554266066301310897858294035143888908191154528193946034185295252082306196279459511662862762475585452153495858692795997846838662901828928176329282277583618858991903070535380880650372525239157160337316256892317634729062341545489135935446178450317362356297427242718925377458592444394475740778871441174153928335797264374324697006340192239359794948513513447524693810378440158675853656684309936769808179758330889965312763687006346022551386535622119986040710331246551741140092920418024499080073800904655787087861829047700835494222572572275608387033514138762667509834390112652454424782435613991553298668929495723422744977791064522305752212763941010605947838387786403791369715314664925440246726597151272739777128231397074669669083781688906719236151017641120659196336626155545394680804106999445609423652148906770404296893342327752963155830737685170934063706779072321846802250262964313197455351566399389246091574181528010061751433202696039177365075737228165613797842097621503409396145058384477442753108818642920831654044949006031603341704615917703442214132844089475033385420673464407310815877724259762608764141636135859040481030342816231587124711526555372189304552360254297539198892226193053394624505018310436660632756445427194741562766518642271604146280110313688648281909399883474929811914433822580237354854177609293269225198882005629921018326073085413219614063155355394196390222317583215958253520743274390410414049785752381139904077079923714665789029743465252976389366566973008344127987798904760953270608852199812257453245015769809070791527398797417862876687737792710655195320359149920304611755129364103510081776267680392916688760417562595837922877378624199769749101868847716867406717181061584367562731939087419798757194852621400784175473793539226325894686511902531640960354828531901232022155946805734517146725791469355603362762125747227323714207641344418650105838215002461444121883637228150904243387839006449376481289552454405709097387159400339091426669587966943214674938594026132765238164755162945017814324105121494019553409475789665627091066704145757101871431358744229020261843234826487619115131197696410524505319028347213401487963587302678639597649289346708740224385844579608912819603910774574908703521764807258150687834222039101606454962881588583366429113271558279211972075650189840994496119980652058904125605568527136544382719328730791052188412323242142605305162389136111570726025584242553189906599813231221487350211424010826458839507335398575835294473506152411275113456790269045365357400946653818131381512055899210452426021761792266923470076037853516246737459335811453061000352545038236961583066592701622265886830932934283502257311759766639103341770103018867913563812856660193418470209626109075201484955389427239368688518147077649687306692805948931993479620549037285304359827183744932302138033138163519223728762702874544967116758503462280296690169496804118614334383884212852965410176205406967754877759817383611096396636758130724012244347481630979323767281645407127538881906534287281272488141932637273605280364362907053647750486575867321977134500784389956638569332535131598174183813915003976648991858640795979964788736481687208751666739428447951881551503821119123720929266324982765228654769863498466661007680576031700713565119961779376752141362485606831743794711738813850171090311292414900245262036331394264771866532270207828544172478487942762655190434999126899213153461407871191118112048613070933131058528853568962254202792456802009082855425552189476958613713046948271952744635110947462300333213737611272788213126762536086888204541774771098359962589082881822622685977661127730122709709127079099079974374246784018490814021694981786126195830039566179977704287295486423610249304897876215427773860689256364326829947480109734836899528587975949960280269246529896618210273484405807683340186515305183606132631961425476333899309860348430072811940152123689579311045872125496687033995843342312133332801805156293109868154136152921117870303933760514531580530452944371126632392049379950798161659879155274592855620787087656114453508818488564861822404790974465841554486665606189533475630378543576027623305348361474132999000494011760981314241621107068173419048909368383493513187600859333669640421916400961507180602496476422237354701385920999942696747327470540958666975834313118049761928820629996179567002985350233068044486934181763410970926140932831235861775972584535292177630989744200199294231765436078320293457539964388037330545706029347195955434794910462031689364252645783004750352358201990206531443113533385828971269367834706937969217787670200060407856512035155392396860436347196473926909430176102950577722379447566389479274259043206901318599041367161250084266683556863590813524176369071306992335342833444375914789400078182297298492924410741930410176393568146166371497630749024338837803511119417178719854459174884640643854207828056704726531423605500495991202628383558872284998825380882366955919908942660114499221344061074358984875660876529661354789121876992678641476690863126009317441340704926568803845491547247050670461419798855872765606619347438225283346530314837819810479810260161277091065092941000978915463809919066563027015356371104381322651589869394030386115109919692846614011125472120064627604530018579273819658988291192943152218143920794836116414313198842237833066303481560667748012518064267002464921837828359518489219656309552473985501233907835209525836904339658098172560126787669266233171078596609934705198271129553046711932435748462906916125333921283365963419833028780305545231674195014842659890022890378377960914835296141340683232890763128555913816912046640875379608693883037590420491358732995579752492127912162808560148488607862284045116131406208753150064091750984707040884194564054834573283589568402131594520661359843260339241440567169644113313061847360206590883651534656440078725128203547945875391049608424532587025766063394597928245341854542670192069423270229860619465001588249225960647527497105698655996123982944250713403691723259783912682173975526737858353371772732503782695273639086572137286048451285832634299159527311776616857604837355161980930363343789614175783942449905260212987010753111875512653216865089767859227415495800620661001288100161602387710388613935581975385506055251308038944589927781216817580186334242835372695177288956186326036636609151102344848111773494074062425572711922956991045638641085978985291659581697809312181588496467357819921867842602043889254669248813036218734295353843194959846214034559925601777328183310620466189422472318425490132997130556474877881825951915604939501389716303869753990044771027060834821849193360020675150984667214391874303979764262755737182133335621470595610291824519590677561730098183355651081182337780471751367529283155875955452842486170491333311116364507983900335147130699492445443620482497955509980369206412270182023458034651695518491570225569186542710933671395825820100024355478649837418889900976469770616811716236431881110506221766712712257324331559066124647625421134061900668469411514132050144187848335737333015227023989728634852605170315538927048053970933279292885772194905176090926407112582832708108582479742920740828460311491718454984698459320531147354114170165731955406541670277352188492063421002123793014547774921522958927009266841000626417270184283908000764805722468240663392350768980736056903320789012474260865444578714954190859734597810495301684702928513709949881123509291005546030276028596386313520703042034016716939950654026997313147270830590325965230916788198539527734280509351860119603881738436393884319292410207953074911387147364634245253446779764813711149038093029159336940374931280259244527014819378668974926354130513125713305010814784485716600119375960353808255175722068539797581766367972520111052464474710403856159705441602613546771998680419250638338076939908190874887912221044601733561079323239036707188861859360368880855221163859363284478226419863513766359826590273313867123829271241797218076383759628197891877923159709360539033154887584238503240438080713523430814927862528410238493564686419201828189659727253849285458457166648757402729315731284834066285698635705959070078480447031393627249706149143664099808654154279267152933091396157428784778259694824572450640585289213166886244292006802888072770856509064544746903975197062705094255334932539585827657546688847518088059120198104343822616388428377588314877606669406092999835891531138571584655795605007694847215011369915582927589532712625297855435482850337080271044520609377361276442432075520428176831184593171504197137975900982352063685330549773035037481413709638972115112108302167950360418916746252793093617137879767772445050719958058987566642378652820970223778904565415566178585710943168306010834073807241932236027965322039739197355253950692029375933300844212346194912185450430389105140272412709474336669498464599006145131773796777632484671666829536405648268108184661412156607635306411656584684740926326873504786210978073304333481486528081095389865242924606025143513414989798372012850982475692435741287614388002165425515782636567851478885486465087354322690887254681055472751102205750317219312675331940779320770829564547901714082132625231631891454944795199758228370388014383430265173445501840287963992721834938387915143199799814954918534146659949427001113694205860433323886066241677336779397434441981000573896628024240885388686315018364161060076673781772139144505840460159454078180604269489266064046626662183443257306111494179689466216812346565955440011909232945354035360238871182431469562366141995273615649209398802063043689018321920506011799952005343653003883282915363339080774620911802906613606835121748963229599374930103503487486194373545151087393243811345777601592644881907697162765310236961893039800083436739167181315365105018097532767728234547448983606140928499304606553297572748335589025270313491440097623882513435013172962884389834064875840019825184108908147308343270618398123861264413611337681269537686982559062121495631160807203231772798373880740516435974174844341182677170780052542018812955447489096848320365336025231783481977114327561954519194120521120802421611598969601329038954016472802937099043449063229045663104003136208606666469158955379090506195472512911840133416822961402040330271064581290261941928050589303449639705647392747873888321719665482691330028158160047254005159346567344004941804512819288885330731562836640212042415783111341926142456490178438662460380127740202729728962038843926357808341190319787639183154100503077516426424741793036569639103626042691748685784158223171060421585941858004452356486775373330999372186090635993862658497739433731263325917514218421352560568202406827285130513255411501244468518596949366848192347274662848665850517378474782947437508866636361113967667500379591890374700881119094600701395956039694186208897272242559628732081835078441719121282070446379313146484369249627536161819484166932699844055331819153347720922379817031543185107500409204994851029518745638222273334992768772341530442636527742839339187849439450399090895014258792063317412396307833837450937004893399266752318970025477265867985211113939183421746960457740204229062131359138963250043977853320759020123345509930343185382666303421668177303989265819041506510665754655432270734730582335729186205191190062247098892394934887361347516224828603105473740369959893970580016065602823922732681266804713064030459537141904324638877308499586144865913441856879093964505654036197030367805652978631649620871620344566878789943919157051260911534634627392217251284116820313448433824866879624412841358319733322481853519786337236546418131282076601461466437456860841321299071617529522177868632239208968467912458134867821695071205777717586846049605989337006233803491686344315403338017052287365003182288651233299683706185457387178131462678078430745824118612060875711853377439784193802673991337775062302086562880899244018236679649257349506124795086126833327034237324858385763341401255328576759147851008178540683857564850581321095616302117029304419001743855104842833246149084627947319799649991998663709862813161651449210496654706384417153830157509309595811537612165035511361760056789563660247061600040595529665038114325490258069188850305502184035875983707841720110916387059562977150414627782103696285252100040039244580482476951991699862531351954504183516311116513524104971739974196883384328781717922343097708152381845575442597787350470887585550592838187761335883057666325642930043718915558546406333044315306475912126535406700644097371436924036061430526827842490520738353565538376132732172958049115209993310280407898009329611071420579819254041361910082676923544633778394399047338318026250917113182917385771139027706491120601206637234625412394996981125687987839010408496963647815123914998780549306857250209598050234117364137959715769438913286409454703132670057251007527224330105441104105312735619448056101827419238728626830213187946108522612645915064765968742059003700776282994040792292643123757501833799445472738229152854541125739547497927718173385647279418244304718345612197232113000659339398030567016187147712561632145074825882459359214125941825337336112205051326803760405948685030628578378064646454432003266158254662375481516427909978169976158327333822725259098196348493796561831052352699775384867518840830470265056138425284029396036360836111031695271234580343034376556194241398187542736149107904051277421753906675818610611996859615635188110651581929216413903578166170291806702759396706948307939861265667666017071322952594296658761937374519022812041110723211133830053338702990601240469413839097667743853088814948679549708300699782378835547774661384418354905503168483703293496600203140149024679256707837612434004722263610428313937021401223261269406251051075495222422607501092684999925153937964426351879791521681490562976873240962257714418136895476904825056933442782735758525850502620667945060541870305339509390637570677634371645374016227421496332680509114998593899495927937158962201473143507179306661940644578458632298503083293754113033008059268958068313532374637551979450281695328309235098495900165866235774814429120909788150953548866584632201922412830881120207811238949928313369033754339921558661692032144056187338097138001506030919367410222185109867145081742484717544729424712835481713016103711648203749813689048389751211673279770144168955065698295756528150650374678720499508192843476360364572160054014432699802500770739365518951899770189678572076174713631447611712923264125487447141977762234517893427511512884829232329124638462125359489249563712818733271402305705044680780843002541033494361750647551918390691373978301136651309452974347910003419739170898077167022534147044800826314070519750614891218300339419244722135201000015585223255917115002595197302960996280095855549002974918543983260537417437804351673312495854184675287725442124056013759332580443748877395766984742209503345973353983841260718902276615186559165303155987551184084655156053562862335798237965868521336618417626809352109956468942030547324069120448798146745830863924157905215239249909511787856096920372432514009362501346547671047597673294728368003126929280438369263629736616565128586796712660154606638153559839214319642179831734719989716155970629933977064689214097423077855307431819651427771672312223206819462278882227664361721240008213613326649479897890935705812800623687103926758319949602863761146512088788271557659412004556969652288714219642117910778590372140502525812598935330702056764800925512934794484333357393134543240744781823580228779519364831074452762541716856082167872278920696092930839181414971299365501888794300217664810725213640505541432774401670519123934525806109356447107126369745465235216787727837398078044288885263672601790241178481160226277962210297734550692139644471396244362469338241865846589071207439296395302103535281349026873596396327027355865884898506912931622945863081836507833229972056632817308573858663505514380664979697128020530823191914994445104248624785713076210562420934850311127231086665761756894586617139605931037396518360389646052052739424492464686089761268437997742328877164271297902135292910162561608031599660374834366560730352171436928502773694397370841845712707041095609002685576425650964997203688732053502126722801386611340683564028656207154144038903636563238429351132628157116353032513498680387706863165398298243534565295632478301336079499701915258442723732915522486884152020817078325201029275020259196386126086035817173555769614086812344935931133372950321672399853606004482789053128684016830157188960149446150258742976137346013538263945641467107505572399029320320399515054547461764060316410662923849409340883845233552984212953341158963920440880064185121853282971657488302358331606982868392777803813622539613282727025434727737462495050194128756396517198206351471780295583380114280831187941961147564035114088199107454113787306936249086699525572452732826972980608649762185548817836581623737856073528948314667683697611859017339838681702965042235623999349469312269340350813779339690812444750615424806365241970124579152921068019292181876136170374027726049255490568642797735853199193854257181323069578694735846685322698702016437528967409413853100254916307056348237952286127699661054603499185691971120854489323899968516755179845501044443126851183710683474174693163955054123189188762020821933476446557067685391944335497966187729417791765206825195061130472003741942365800066301341375559393770191195394376038546230575314362747268206641706638196597882114707246322657643782830387739077102335875507948330794208097410522194446552919527309244413489428964770606895747015066386991164516636330269503411978082841153860571423495333930557388786856586349366852329358696965839289309897681647745020067138559735242034220144025069766549802786596941964057497292128827152489127403294990579361172354189225209433192097726452070442770357308090524475543847440345097380074317765255967346029124464311950143439470528164352360553581239448017105555062285033978564557079451772680601906470189308561184976354201435233707465916712946457715106045121143276807302887922736661981599426166652710473995646705660279983424143115057552426064608217459997587654266563337561969020709501714150240013334871190273290979462669136035100183616799089293009139574208342636944360382391218462425366676876290309658843220828038866919921802298727313449491349493860384498928492536799225816583110138676986191709028659525438274285425717886803565394491926272000793278596814357016428456686958110188475119048175929966427520034583697074866365259025597085692524058979005493755168550118196874328732300981195563165938535710687300128407659704148126034041533892818424440091587195070301444075161264754676097157421848345959297922178723890151616748284158485498970170465687879453190786630551325538006193034861751017728951591416341505042364468174198412020284035195896285879403310298182789245713582310572761224837689723054355138609848622536258368636622569473502512318146119311903175425080076258749890707771924682335104571833947210244763613683218635229700063679034445186551781587285161404948488846954247518911939989841060116458303764967768453000227768298702635487013949537926918982374151947098777268545411507282389623393908102494530776123768100532545037893992614008395437070621022979086833994668677869038914035472350488537556839494927327962393047743303430882716612966546202717794224866807223715082941956178967105570284261195362587446343415484995856174789762722697421004332798851378642707883854060779949597560096908538340183109820450903702626668420708425284406747193452453307289169378186293340464879291668421365023608009867816618905303105958970299758050159113032513023034141240462513311208585481593576101588878506040195696208372811317203784463149950864192924885015769792895139245737342824274179915505800793062870688732468925432722907068865965107931720485730147038062931412151761223124434562465175879152016394008237037797346234804127890792505565336363814619153393157275010832358105873599075394909314420608534755312339327991001188475189070135852146969191138333045696286861169976513980648957389119625391274181536143088862923641948213584221994066908613058984954028187001871359935215412150289830696432740130867775340167817291616265933639956375904794235958656991080001264981096720888607988211191106563751804658050503865865603566409714044511801350302370474355050991100349078830378100259978771857367651095560015771128147265976904451516712956966863840001323566005846474146273941208526264908877115597511223786335642227563096461216964372197931827127868272614331343326371713816836907715313384234938486332481239637374290238041595999277909518751037136770617860500640037094803842240185995136547830564467125938215282935533544593658983474930706429589468032090265766515740016999151719676089727391765264290552113111666674928704529330933087313268520431984832615686887545556926420098779678770750943686921310482591513638715548211712851200745835933796540361169761493259521698357371380997314911212512484585150891834593461373947928924969463640285657946141902485406373080182678254009538296560820120451427484888912647290586063893777569953290114377071018158646189930158743355281904547495907515805087838876708042899949523855697011745378089661337189308929542605186477488331628715046151141649290378077226886032445853195996042264126187311805190596429053296296133222606476950914141253655607587377626432814797484134212012436614340994873067647553882188910454988373652025619594570947770284498029730263378537976374981050998561267237804852017489095460313455183405346591244339888867624352001588570112981739182176450812573459475831567724756344321360170266730995079997362378690307403577451766895737704371620083643081095014627356266898927249741561830190046475381663684848248642918056049802173821525679759713597883083972627975199429902963743106369876086685492296163166664504329913570475451213506235462343415980465320552694822092954611878556006032294732802460839234686091248361007901872618174986907637676612081406368476536321695792711793141722562438763676275319116239906849423922838099178228254861336528052882051699992337545115519700263044639261269297039011218135113139448396156024418092832716534350485691209958414203554171093034000645392624326963953678419196381140135224113453501405937446414627936993062194370982548785343333713267618004999380182520615769775511137050774111418558140524510789987888954802474175213235255245602259303418831542396576050758685777530260011970711752119286697448730366262744042934710647563147182367637255186979546453736492848225063047826480606509021509349690880461334389912269640099267210984833229998797766080409735475003854433592512507102920663169815981940910518236527973004465211712045243196145298565924496656892812378365679430916739881062190646511500876995073323466133367477285242194118521007946360878040222503609290819294244776676408898135492648881007533047463863019127932058309058764628803674848492024156712332272727238186920605113287873593551840714607387518261564836726892813422735232525366592559090660249623752031269341545478936864002357667010526720207049797892394614596090011675072413706305276649760373283322896403457277704753422542058868038470720952549246443481232101118463556741729031906441531239486615746853841694522119688634108558336325028210756478687185486428313236413413991617990853238200479460441032660991307221484796018796418356379212666857033016815650115115349784836208107559395962866452784084125872480765137768972217018716316685987728789871233578863045166169747125522689220292553689046399786959362757028294480717462589662805713992921022287252826713198298929324197207318684529590519351276263776500797932553994392704847560613460106681940090258093344885250753381956732506931105368769642074495526391570158528730409060652745319593452513516067453197526605454494952036115007150413365789963925343151737442671034501719307674868253047008307183883191705593127541040495154050893056750758168647386484878085665156602603394614545589565065105937979144197630844752973601060933166794943629995163502722386658779462237482813656814343187633791207791962610900976818510858679939938249585105737916221215126571916242372327632793100733996487159645352058471899290964571899910005860633673738428108388448274176319085332485907055818085956939840208173906636507975029573753234878391423731164503172559522345863128317928608809167788027358815685420590789156496095905384067680657088103240570652932872062648038510333995871995945786681866811092201500469902045574602007301202095986214107017664776841631183203457335116484462202332607877939930861509193014492332174684166699741445119824080696375110807061342703127336891358952479976230458839843253385684248664845550234207600030222357801257312465871216474212004629718502081288551504574884688235096464579776875124434051641050137309933650570807822356521718413840608431980027006416325037351646341788519346104277569728103159074728426736289294798852893542022396314724842591164725663775935475311604468558539949244970487315527875402769456202142193067468571764493665099231486493509540584994173763987962938420989349470021369968407177424744848052772484002330386535476151241215984648555686147409017255905510328909563496686664497303026245174296995310995962042993749431134260757137677788617002816727658156433166472885185954252030097590908070885670800974979061531985796511365014798241129199194099502963652934649399315065534040103800357905918429380834677697931225833573194330602233594274353572138573413145427036267767962322924103323515207896235791239390120539458886680027452629959642859969470813107878940018181849991405500176144307103118284305711357559758231763284294738068807727600916651327199268708150173722128491126477255542963359922827851762755591324580734441630696400927331117251486757063895569382402281254126741691738201320134078936578274924558491030304007025324026390661412932096720026410602412234939486837752148293037077044044485863812143717319118000424042642397162111445919826696497090570639661020732912247176960088367977795906314511723033943063970350576811518905192742526508120942221810241522884450579185836957460379229678393386094732907099983150081207048319363248244654316653056722989329122411739810016821395229644034133398746790225028284434493478610177273762732378727846093592729088460874691946085975821195011470474671847596077621922254876826865327924074159875854270454385614123344057958666446212885591135510409800577164004285310398148554824207247119399584567553713300195464290719378068373564366248739579425340380136256920201291033965279259424171515689940865493229220011872284306944351778618663442033308288315754056197964614472191035844761368730735437417823629209043776449923844134371595202284390423617819665269847336260391619468417274167351940917551805791807612519357615765931275377865902998496455114625499554056239106296109241516914543059452368304447145564268850629339214722383866560213543906737541323960001339834312861572276051236263703020990772438653966863292261863634835607273476577248632371293662000486384326278170608985576587141820831610646793942253338665446890426665226642872228503262199044294622397779628055135605547014345440903558615775899354236662651443438921640513542256660785121634987245620681805623659288696734018840262037019790257027733722921206413994789213013015920897910322845743132903781634707078470227413404343026783106346205949617860022532962583155406343553970197399540558645133118326942206461230803404181690252765610207578468538611749425368091634240487357762029195717537319055775583101167064238795105488997916793309994347393078051157530934003398704980564847592681711415689217101629704791594933035528262273084081305554155387712031740193917323392793724516613839381108440621241484365159116868335712958429631120818673740394700305483450813454255468235152890752657412960509005316250522136596339943467905853911389843470499067166431878462185290771805853834911835593843678633987805675108155103965454022181885865591278496507195208630720825757899600622564152856434250831088588298678642588443654496013583372259874626575598736220782823911291517685438134067645435334715076928707089692782616776237239358848749346977987330410991633481307971166779930918459276112244501986292088888140531516541163117397959883711676698114036868435632696262003979311745809178063795286600630133464227330320560176675429780577702162705498297691894048238820346896792611025681384763801741268718093375930108058725788458000447696053628563609165157311348223224773744453988066025402946944776975548083220367018967465111194361718264976031134458933908019077524543958911225067467438810357461961893872546601797064712854783099152387930514755653629750397599231352339476763862969262414381200023744705230887981335752127384729296672887712935661045782142248007436119532066472678049302245447395468298676874079731204923528199518184682200207534010205381996167642876893768204419515419007469666475720572851885935914265346408148519525671017009351329677821364714031204241342776014611987629071022859015108040862233399566777746237553085665267385598967951262265188247210740430350093597361464983696686715613917913632627328539611746428897746125796707465297762514478353384775890047877929254370562845236353145959512717399455972215043974773164628461417446513247409087386811352304318289500542342437482400380732461243415248177558417631106756163816029080877693260899991538678159673704549245062202529247678978392535690002145758463307262306819627399646926532678295333496183734634686765365310232555834267658604026284195713775003725162424598055361868791294438750390874268593860938420210272954306895851726615856736774210388712225038549891436136203913962641109035553063823647625077393434665165323070189123257825460514126633534703815398844391243570963757993054661998893511677135528650248553241953046026415578507697824930074708831076373418336157519776494902423501564334762700703153931317399782171328257269842795470380465360554727244991543283690184288298872158933454264642010525821719403323127934770483881186447545162412590815604824154467323025629291618122072900964967853560563756674090170646307598187185689195033055533916365915810606930185950103867973795789176689416025307547430179584083512141010447597015917331523076584909680634587236395149352177234638883913737036055320681993681892731529763930945682556390089816633138921214622932040368669076724605327780609099200787204238661310927239529850952833700681325372626704573800843599731026120271936368107428041859387086251359764030498047305002863971594122191092368160199732742830259529071878088216466133400936897900639894501048478281057335654944489754706757044132198875321518839277462335017746969912115849113836164020535245216451519437047085923655498379757003200791615646590122989554034921525121984756881656678759832455172220907949847315295704758369020907812435254503784303485658432452350785611610892538281589279318241514261086160963544679582542829856501095118843116301401033389246722107904951547350553340360940173572014115627921726254789081824200005807473389113876114004501563576891938805454267887247657565667880490889864348282474363434747661958797000961128818015444404457847379571155949170917584696637102400331154815429570150677372393411852745058248129751129511486666167930472520930622832037763752681892926100595057331223275960380907116579453692324893946309529382731702463780592488616899046225018946801392066546047102452605642146821096792873095284098368033216542568780172191262590683631710992841989047510326197505392635399443457535964930637553487421367077656465970256707801408337294654853979371511129168799996509483171961936315717444790657722671594433893033524174081648211414540696963751240189618548512480107662221259148774807838608730710737874899856690188626496728054180147674527024292023091458212100924456086757127051528599069057637554331047032424939285241507309329110413875899833018593935529317074912056693128237310857814451160025230692987168779406483407469724711448494420550706139778595143847502791503016933819298537909512068730625051276555609286944309643082806563333375930638995047506268687465528734167451264104340853594627551282610073964646072925702653040933332763347256193632593593201600464399775967572922470224006704824126321168784137505918495367398369073965372321633731979080557094754640386244790116151503392153900047692452239396138522629238611913684315443413607974023771265573945781795356412728520683393696959600971208877637953225884430141752139432666692268795789805379749003899140608160051469852317158337659143751220796377616063576700437349968154817773727311969592576045447128871852812230552826246542148623112656046281542990606126915232948037615018188932767418137466975624557506818013335205753535631325311566376889682974691791660421401403789444386584492001046768761665967158544052417220443948157416418807193290956794644628481361687805969028854807584841106318405741737006793876308076934497615469079862673714553192002609727282575737045785432076749818561680670477572761213180473469445184901123379565586049698226782289656075881706190141357100439396760165123180768301835251420177094234695927051956617159294209830994545119335300283707359887709711190777020071778735894754986533919267373181212717165339585076225003088330785132706942904257407323632412201916282596467362493450478840374439626823258313909733160661708635441711275289782116325817474630698289697450922374541805294726072956375543536842972679872667487352421934892895754052253211947561672466571900943862438311996304713668662880804006325335029811387824693002203481741540889601826194275639497895215823477268505444426005868382079811202728005377496495404961228816812475950572588644775981030971300965688945074887845015113194031897907037039343721093461196749564137519582839965283936463663454444069087655631556905038196760437703722762126643941895201633344067434804606674031016855284145702496228276251480683003739621902619900598462198655221613252172627466912057251850738067539948823925678696552984656823336718946088873318718233242431626405314677148219078863572840616305557619071986927706444631389883469537490518309155443337156990764820487333718224208907899934578196471436427448132819154251212430454781387259748598001887494163209447424511202211550556646783412763896136012795315421377192630042056442682640264521125889386190239830706458926926062942278699060548026625116462786951960418642908041671898064042328672628241464897736597673398435117625488770804330207128472116664584566727127792240687352463167890733097981322692140378672829024241151566786994981357998062921001463178529600480484163444262192169532265066724025547237262719755630238585887301008140028468203008701531648806003115075397489142033431600315466652487986121095703645101355156623925753057430168634064640375798604489052570878953881071756858193103374122627541793481835802592693261617141340165743811431858584698032572663953782693761247022980995878107532934559479325872116564002999531634350704707217015972688520228832864186314250079265247316155596039937876031957228048989604541888844080799282656584002412226867046535689671329137403999415439094157452815937760159673829082149252705472517321403995302676736929438183282980888697962258422902784910451441322864166541367363989131705942107219163187167770360374073005392275548287954658620426085531099941152221929865060280495620438096368718235232412796056729149384352574751941709848829940958985466136815141027772108248581178913357687488184348048218148383195574368098432131329318524716350654125628094685785231669942979070686095562612253169187986999866751992490778326912627760858716126755644320984252633932704023057989320813317963180389658275065296373492708589100186684950333883821335995977647267426892921368836979603715603832600324631052651659294386060968540958767220587127229469825270437138517413482736357105952176479727588950455396120028218614603042013396481856366720310805116207667099875566251437204361645942351807323805588050833727215568431948330905388521012397399786910662204857333197663156053390711712613294655573726494612741593162597345854861880068758745774626117445712077354546741246006953314163750325409389250717485252769243169362393176744055069378882556015375765473721451764984281306982855280525845850139239937120407348649199292385723057685098906953177078609304850596459074494902710898939337165537005687571919944453469369615384296769284999699767635373831871919274159053514807947703228820909611619761512796668518642866448417764472067536651797110294638153738847143471130360820684217073959187522431260235629677057796126056091467959404418270592328002137957823526561356161956458219864980391727690583561410712989891946784623645687442069073242505811141253287654560109864683505274132077987218135830238039370008720887485827034597612767939704931816265236969969160872205048760823882670693310702359896799652114064720211699958522333585724524654300329695083930280253672878190639132553262424143442485680156356747425506760287171688794874898455324757470616137907239532026470008656491737378484101548980754229947254255877109274500809992594684515843910651790138476644578887698210136133806529662844092117205803266204364711905297856534370070481270288036289308728964197660064690653626883113599077877321091854146467450883763468062498116088858365766596474809570905936243558268411926303013691794623684707687523027949535355376175746361607678155128056305588998046588871081087759432972753037692707917575015089688246926842274914249475618808522678816907680926472304294196413335226026618073816696343086338706163341554522229039131333159066495128057098743168994498977668157707731590425793013641330164120878424049610495947968040010560420612357564708940874688985369794515453125476079868384651734759917872402147192882832860738609976572326583572030478263613819218561420300025125408329949697160633906201260706811268875502498359594719808683603256326616252837616037281564745575088479376554759945543623614224520051197110245065508164379297137255977773830257851870964866811925644774521284492844884915904953540793386119737626888149494406084163324214960158604825289747222591237261259416485154807869306606524691863666769652954427919149000634227583245736010488031674957507613880693051644891074744535146407756361367824895076164069988153439181242967909997134414272350405262458555788692474176262606884223623516935460909003807871553275654190088104065666353599604997985368157701520873267272528439783953169220601786932390564570598141783952840986277628316743627568622462852731550372434438115199283833565312920135288663623303142600072045513503204776461925359090926611105549669635974561981103105332053915661633859442098322635176452522377861092313807839460761138047072324246616493636771064062324012037258143425051104228843530810031159805245379291766097268367616616870960572760600569287767960375519270621866490378068715730116447345852590501251434293035319394703567437188980383958486533673401507025917493212556092444586214375643983946937195394805462309280067699947225460312301977457485800332490775907493427564388106032618868168279152860292288961168712613470644009378896894184995112208726625176831503669849415909401042158927464679688915795229683047966835139142182764962680264431133815079204492495923089285582566521981552553000297333535230466637800994100316878999619052890610899231251221265592536163055877637374044993677236332173106237311853336427845810918882809875491248240618564828430890278650232057630619724404818566220530314475397178578688975481998451023170205100860506396514364764383924723558655667029108541544738936873079931174830677292638385288845997682078456768501345463932819416463497821258397013966809467819261268797656491614250139344732517101950495384562729211036605088981748771730648880412717551862814042519700068934508911969548748956902782060530425034427724448177771557632397087105363785811556190128033161749908564003715690779567896163947762418074553541771410328643238584413297401615543532557138071448283598997181561050585002575833094783903771269183834759896378400537667960579934558314968007214706494928353714453452390282254483085459854361559323990580979783750551363328800970002615518885333273069542371781063500776369160595119038462393616334335949240668456765224641388247776844529565065169069119023103827885730229246205823212442268552192167731762617185123970638404222172365842307520024606836911017217028372742740177094675167024205781547023611602051037515628172945683214404979476519564557218834841697014251781106542756352159570953047285568327058807556937616921786310061110479599994551840856014262354377030777544485073079385015278640502139026954800876420922613152835085248237336687504301226711055035637191459230549353549771995015757537863792068155685657131496739949907255765915556534626611202462432635914880069923313597551230139652537141103110577600075792013863184068477329952509569941999489298397850066925669955887531961125433473990812288741529016456680494531485469635673808875292025202242910554869531196269920068007934969948604624623346038229116314387661217395932666111364668096904338895495211250976577576766938068692373307055873186922128297289805817946889734033358435092631268495853111902267890047342625054764743947187215314626759058684849526188015716113757345762383168601165390084256565412962033549309307288819951899441266984887270871451069400936259353931365622532252581121161034814991410715626882884306555196589044464458102224746615527216751690809361339762152070009287964749293217743259779439553263182889876638035360336011596655277253961258100115186837777011205848255294117835637272372540922676124328855710069804408269378841264128011828544498740309860277407614643564421399458950069425093396806515289749975843466484488986002295179256751783845470089940042650977159726282429879457393875443424798564878565368898638398514904510192313425291775510930873429176661185848362486108163806386248064375432610215968976030511659864102642870583347000695587394934057025182689507560991808212052647586534898877148486974437018794896397745807801284471341517695516159191377287087904367828917810558289092215577900292449808780783061540495356000327206222828300443836792682784263420871198329046326446060730496944012661745180866750344184686918669353406661433706319867262207259667188041874419115105232623725489322378172964084637871946758329990914840625797737015311843020314159536963795342679923179383438063062564303319084705971957951868592427948730055302750456703844105215596036671564551162674189916935865136019528156995727606621018405600758355520629059238907645834589916601365686483083788386512690863216879177647801059251811050471670705629107172130634680860619344620735330023783459021717567076162725890017573564309389881651097540936313252176181055067101959351061085824030601202225457908139486549392527727436259941148675758410362289422905243697204184077375923739392401924551770549141176525821958367174837965351416303100885429328003756460344640431518868510404152438397533223569607201221115809075015980963904336041144919848129697458926132534231033361369799960895976300221427897918138872024741205918188743536907164137216982224648046233777593129594606786530930598726272579972436686749170725011311303679920196803896239009675087594053216591941140551836294848069791074947828877148068684646625331472638989837491417048062363726071865960968666739555621684600718587899750379084931579655935420989590321693923627632708209275527943261729888931355407035333739964611687839700414990265699187266883767753531831709219392060192172410139659298506009264321799235895451576691692173171659464471483838891176824439962184332490877951937818343112930443566191763926327336386180829257445956016735442202102972836179448717963835132776922200964316145976936918395566470202812702006177564077929796906698491087938809164005897152087007037154298098490074531819669539915775201044625935505216785813533670035554770028657926854800145827667043163190231941376171733357058425617894544663366513060525603453295539533431387126095574923031389422651592486332064222140557687655966794185856442670583971525847712714120423995490833169652884882955669877425290055942544440357071621869005553926368629851879362529453011109970520139156324049520164378266948872118997316304223042646399098958364349355829302379155734572734635014669223624756444553820199316475499673284306389277563262161834426702623609447847528814768242272223812784786818717138627670007517391900820609970352884406243370053415779069187001678033555077689753479319274663023578545033849163706487067549501441643968215758670852894718376017034153630791193582789067456760363443463081708484116901473527268204126902041893921543661448696286461187135238116804768951353572216150994250170002221419561418908281161707549906209887652080647305749643574751844011214731778416528641984460697614680977383248829374360634276778227165557158517165346075450260982575342738861234329087252294022522491971417907897972533518988117748702586203953431772942743888636872246368133764888627084086095719545146117547058358261481765690433311473351786312494359898593378217592928103382455697922139255840825974412413112003351814601499321426900282057018948236899716849544175043877870992681656802012232848717717363316489871978355896136862421074182505671132139726559882236066263718071922644530626095995163483672194132133704279758661465383384250819330356169743386326647834898596888741284201506015529765408532509529425550500323386832485178488068033561632493668247123677156146407949510037462877012923437589314772955826913872658293501079752248632731943182391741758896685534941337350216221677513241691920049605395709965686030439178531540844241056482702957986909721568730663793574274812648996296564995497580223392661748419170564801582897760205903307236285956245881900065950334557554085436047582287189401200953129507730697136208562082729155763542198345631343436352812360804539305634779002811793285012028801941309818378267200639512949312218229772166582033606716272567681986466486394189452643156001401945816092649702172684179489924994779679304206200993513088400418373622416986889146798295973043685708355616099943652122913772286607099847038626569449327106555654606459958353100137416527729723499107707350862411707279117318348500280594661332081895407924121025339491488820310792084191155293313578110077404321937644116992346528490331938759690536387043903952479417527571322006639844639141497755703785872953895972747984229063588225086833472563518238679342921237359451863369729097518150291278126342902393237901451536316723348251413004473105858519707705097001591086676157002077311044286031260377794961346176664834488820742789379667612834325167297271476520517915059063633685747686672235644225720460568279874731293095257601260822360072648494211243093195860289898232671712486549513553400783707844265134433940856281908258465098325893338955747909903455808941621202803372142878156193273564094514853983894718543376024909504721313903955008229438069421728441478126902452783597146505810972994936895983746222105445392297785786862078204715185567393313716947271258950181924767977729764214827509368088446158144877916909510539721369093545014311370768871400646644057448501139201260673319858935233109603151591671781076808339862795118408923247737828201583060340466222517670171697211229099348233234473746681242616631712997484502710088093566912962616909459809130482963585621396215375068613105254161945959819413895617419960008307804335074628915166716776173711382479646453461870087306970051720437816293484321914149408951324992776736005446880999157809122901576375739441558923831665577890813137786665190504820283851512870158227170266087916167238214133925059175724745886484242156119798849960189374930731690101563995916059556405917745756942366195393710425847930310992744966705166485772267193071779898644144767576752439314625728910204116703138692882270525928134687277265931121284846762833267360075561752050316596825016904493769286938530615330813101423556719197509036789059107858964610036641143634123705964364450878955446440232089096577694825162506093161559920145296701784420884790636904890939219647355581563923462799012002107973233043248281995062827032789764816937398131852716761405260926431821673919523508064617926837956431793647186149725514394356727427069274136585092458793280513704911925703822000100565772339431108568281019322657521867246435961557816779414996765294621807392893771946130200277823334939455688550093633919395568993958757372820440388811349389099843644535016015669296311442617410830726270031225763170663777712219297698280362638836178013025882938287665573932256292352120585581842412254202201511564989211302088906543638618356737603243433718351755161063986285166183510925065659676289753910149308153260331058713074956655825908963408106960417272286185734044140790448491413598330172222128016739241500259374160218047086782054018840864935695303147678354614429401224241608753240311900399544579976455131081866308710202280616735318246497256731863915286968690853668003605975307567574907758152807297132955255054181678097601230834204024085711281621383626782335066950653899613029088744585316095617041325757675818829814692561667063235771424489770335352649519862142784073103192184288480752794034342676966372901609318822724219177119139224272058217241732578246908420248931858362551848144121959440531480073148914990549991373023854783916253527789116615495151715492281275080180716035944053887603385064221109405237295867375829405523901150703010051674623266710131299925377236518676968299358141766726782185388050895995509776709537474824415869258086001368626518533953495979822805342368485775967648160203244665540219774954506674435404135612520002882747813193639186558929247152832395912121955776706120099591540956356591178888889910136807078861207284863969667393007133587942249725402864095586310258953573484311289837483060352076914536909081187403395575643175517605008797573432176557121990816990174689525590663976267166722088942305028983915998987368403628235869867529201500278631475660349947602167462399589335309821321464513212931115609284998861932846980517781979292478406105630545309594000809468782557829410441088981546143204877892696179711889999762003924500577782325872035798181383238876691820802029655766268839516023723700489913201420030143785635220658959534102152339152865457281708919801924873118550302064188837895006706395363943348943464551429638845900030563798718834724495990838667628624642537879302983050173774753761035881502390323565520246180583798348081240207765580819575951072164245978494240920799289854649036163896346123875148287347045501114331086813984058511073676122078716037041390736963554480539091084980159128390831751534897014805461947973220112888590243029866235998414812704125312024525261266673856501117160097496358976663861441661707961052792493549045743424180224400641667182557346211167355170459770485017500146040491783646269902726537641287195207566635339189762408170469682803669252503546355681588492193128106718922667348206603255386593478060177482416863940883123873643733320943109994604468249053082684438501664653446038161630023223852857965423968986023320958878568080028698758598122238825875217068535295326746529881712907015060804398530946218397423963703269107961161806717620248690112196332852918055349307347714712391409220903921526623627564774543215338031640663999730539257842456726004121118484469586764756809691787619316812578906863978868669883983810423249792927136997542567913331191291586781173957846478299217329480415151168396950317461941698198844911721469663071618928279310003871480501797153899266674952758863797336055172047996388845058437057884533872237590552522955368823772998747674932962793149844329232179402496447077215719984587516729989624570348392905515127052059184075394822380742905031730004916639487547489419647839310932372489590182050090579468776133132534880051102397693098215062005593731446582939623965216964812779199222983444053902829763505381254535698642454439041038067807842069714224334780322552309694574178259199151991840498242772503335687900035164063215867600155100374012909630568226632832000575892470829016047962286157652373207017144310539455173770317835590522405761737769396929129560185347650218290590117785503903396965855702382052406540948604701479762368642923282088333983518551544362731073611889786623643571587381032754393181620416611619411062015755873386231990455287940894335738114216597733887233032718714011322127907953809890318528593932032453990066419033513463056856757055152591669183462365376908885898167072423016558871504956617183381727957090477546147437107274291096973112042177655429615637664806545788038659843120946381460257159543041370720130313462589178752021633024996984917784700926930651076193601075956109916250868576164113649117086142772836369216182029606216768658521531958699802583161638547790048012117523574265610194604458187251113235412568066017958577991648135264795226374696965472373750926911874391066363102545306780816136238055690052394751657691799921203881957718681746430907816672906399398854253302819957865767796299104271358172418733441868944633334324911579854188906687712977742705998882841584475846143742198009567251082428185626172037598994494496919198717095646087643190914090832885571219377712916882765100108600444330349709215799523413339957793584933824824906998796117156465734285722521797827602330843342117887038007720068809946749191247842536161962746879445436094230872055787862883525676719663234825755482937932658816473460681188369067901775575655095434311386459625989646484523456087320052129324916644424070870027498961999303586582736929764955874170240571036639557792235598875120107283997098053043229179743603354956763376850812578784148623003361650147187398467290929676520997865501611386709410573410828912118308512013766841199327784174728599392564743814367814356453414489618146339279987006225540996178174180484656830180363629027386457234516408317445519687532390973430567442605342518632011995546414497312163695823014798356385651611364883414922548024669605109067679677297919405488382583801160257413527832409813912107769276084105610597107443886194895840051046315104022119884430605845835973351773955283404673022906530201198398357805765793236047916406118841547926975289888327395793002686393651635301341725301638529988498745821388863574534323788546665723590919621218413965759565281003225336369734762939181429189722760535356124545123893539492385069949315155390812221120489593773410328201823665432571013928438655234240183618585266692852912362474453354553377135288211325154866257481326083115339852047715129252169963290194594628121880712472142630565105137110487263159872292446288999793104273164497557951480970407009314375522560023824296486119901455396889158249304057165960945871053929005477015787667147480683673613938418188973728589188487832496633564870987965170540358832682519993688777010440701918243519393181624268672134745156710508296098419775978511184208575392525543512506592400033778559690383405548995794564034446329293376021080396877204417240360641683643492379080146271178936964708680434307186544756081814955791701824128395990977991437427913180345657016167608222369542084096122370523748458463768702159966993170379030064472423154675732461508634077272539350476535712969637563067652018588698165062821750433452311371653426567636054160729302866675158699314618695428222512205243919492171578568195144762132831094304737604532603063987520474775877678234416687965635974031329481249991168316122389734365067973146478550701110176086129059433328361537022519953164605947352133185732809505864078242076830983144942846839980627582835011566164626432172195055995780655558297101619269535532100034885201172469019875896240374033270933766141289172524185140219693934234003861647848931376345252005998699466001575823254566062717905528916023960599607278496118940010010135643370300365324037864573234626220564964919846318483311232018056103702347018505596053973578139992631419805726440896097968812173371263199833991813567077016939670276487770749767658829257509220686193115314724570976151370887326377188683819444503866799172811152321110265323338355400400930899451581338846447289646424912193149717636891255827563093249200494177701750980881241331281434705119473755489306536406223658626200485090687437751224933096871252240578487909707014645703466300159086233908649599764266274323875359649926106697021416863721801336871153499445874600827197313197325775206081637715148393929595773124189797810315599415052527523247823172868778364935867081244162781347493448773117186167948848764976648000487406232742782685242809048991883378387671335640390677025288484663475332822414574691307612164129348965513065926884286907860060153266456540846569809491527581573297102514642049282355228518550498892404276557062477177208951162054409889621519870327411117119408383606522238680652149651776584245390207778224818967045488949126012872842770164197826124998069958169774627393482128137824932134701573779297071043812992777565736308743792415547938103331855707301138084009165745922442271481231329607113404835193157979207583415322774047060355058464668843124556767337076540172463084359300845788245900756620301517782117767882162862957258232482723890545204767442423160101188646244565512627612160495795420678941514177209624773650183749282775470256015239896875445283973559492156844219064702214992845791286282473409188299548646686042864591968340583409677507229420018432027728240719477062609842911961778933506292720025447885506299891018976291967932776490866694760145244792392618918506129603438990726271346112730580110259642205570083358679380279757992277462966951354668520928731510483576948593544406590260344496525688995644639038938189406243338383288892094186664812248617735086553700152965648687921710307820230665818040956308760750867898203921781671024536929029475743213329273673464353311317455214566954867954692117109865701650096065485511570026092482837603736513857310120582462936955518402651006582256802788646605175827537520287512989319299217280158109675166869670107619163700430915744574756324346163326788139384032477242971948701404624061448918543268484632946854424789320088526784024948159999133051385122385449601359017192205305275509862705503099521629699588389524088448451763039250514570311343233953861156025771225771625967456938369109624990979711239961510338088661823680327331748457088025869233917970723026005034645365647999849805101584789515557379703336648443777150882623033634406586408548260043873341705931661688712795339526507762300682649920236735525104507269180584549922794853648708489091688995489762728010376149174173365363507852545145472240699502515622907824516718425021582259604338894314883461822631031755761327103865882226493164692255052269706625241886004175196435675138884161254944648525018179225848428599759975683969423113472832627951991733060592616308926063790937616526946995773403956049482048538917607645057821673991281065048570957450602705991620136529325092639778389724472862376410957935868615756960036388620731996566184219916181246250878663873203919156545559081589951368209342641087953251873057395938129291709214254339024345752223926224052879257153004047896770238161584834580817207886819799734048617020276399840447249946097184449769292505671188575858651989045846747625235254045256188835547241954293944774832247347743745807195215464958106785238588833005781270771257165955667583679043960752304607080592843589902995337816716365660621372673687191331570357752717433728213315138129630462866408491525104605259409087148719648276412193641352853279102246088370710952109216056397579935181453708432207914699926186555128890973044799487439648155757328191740563025675446915131354616936584837523858129766217288389173202675946440105420879532020779026440864512219267104267018782409461822916568459306116342995600888304624393225744985834484006029182413390423658045259486362988758038094942883595186737988745485596392168285663288741749230783864041848795428530487848656472615053533671958253916968799618158399531011096905811683394191269404768156547575423658969008352196919926638348923096298324166266792263461190654702501429031626850810971991244477036149002448641557286465891346462900341444514611460923522048689337729520692024132616335060225226055414569834127303802580430764495104219492289685235709076080589434286944730899942096564381226454077429801692698859688934696396947171491068438310387927963434520708948322740026530513205612944820843865848556129333431354410674415750359699295085050898601894741199673701531757815142778661601085241788041282587366251407580198159576400854874242292250642245335267429590827008482825605146811310481716199749913465223723834581114496164067064050387583450194194744811891942021184796523427685358863759530203410492327572958476794009688250433860686797045064550949462610846448027751007946746064836415864042180889442681332135362085286181573178641716310173048280672867990553074969662595226494132786278199746725326273373351317061265075212508362351703435421176875209551074922958424586466133602931755372159598023567230849964859548092246311715198317312158154516499395222362908140732582492262896147806213204123682548389327878662570078462794382307938921679997906740996629853114197296995800720472232322460191134801244066644405820316192300220049168120772185511136042894419929880247075369489706859922358013082819406459428316705720346082306287405009472541045529427778394277835974890717734259794695287056263085799275828565195477543722110664700240588194646884181650605321864997632426916697170599527141313752743797333356750707695735460036008864382613373685918534165115034955415337694128209833697431098921911505013523793958392126059533310497337690324510845096229911530179003617368952403777463354163096037381151589076840655513843476601179533609938509404584302932988170915054769871259767286991499482983117952500576831426065833898358397760253983418719483036293351880604257060786408011507288243899773339386635477268501138499450407759375575791370681573760917852077050531988637666463556058097053940679439475361391465366770163553549504821614154809529325926723556435293392918649823032836562604108297065986676781992834356535537852077060889263856698045796677901479434192364465901022061022446220859487062873505104465401610905251057761202404762655201115417803999510821167064478316418429207521164696815669701578661610724862745569180429465197774917047361116721254513231751203856884817004210195165179914090540625122358626737210800951516036536601435176507233793649861464682430286873102834970439522287390963031338309867426493706786469848076610835221570819451233429962050107055913656467077150760267947167215760041164100921288235912390093739715410215915317358897204722036954474256701079990428951469796980802636216755458446422936128839726646632528675710587291113580429269925254341939563937884372565251090135641086506044536696161580838179856602795513587618903979919642171040279171974976594892240730113288160993812223711465140978264061209685827871480223138651006299274759346963755466726388204844924929580973929455632309887951846237115833588848680143774362313444856468668634049948403355282201120079814221551915148032074970739815653376387041936636349995019757341226604788086681308805543884095329995487205116496034332602004044615928171520637482811554799610039031715256360769766815347603603083736795487621687192958481047539934091025638630839305130423747096551502451849277158133126941267590975911540345651175623595009018498044283378688328552546895895634998338195627191897339285619927198385167407085830392115649292172411552253406263653715555001816984582721501161640156756017749011987056861786772580610897080464532911897634536803925699573409791248777929877928822070691801947530500033984366248740813215447187549701646218214379585202903447865459237112887811078046223668091049640746343972466278779283825917618432620251066286329564253388159783095931844678783668945934254059146576614646889665189112025416656663166069105130979579191269987010422297105135194397623150839504696190635154432281119506133041012851504174868385599212099098639072320293544646732632156554073210920346649003362519271096355244161291329206044980688061051315159529524807512160701086058082546518621989737985179280704590157023963946843777886950185757107886204772543460692925997665035271085257106048942518937858886299955825311495939251873490363839080616536840393664946701989642792105523810060921755375210888537827976934233437722008730122260901042973736838403942302606579621436601695273458163847003241767931261001836551429321387501820159761948600785979246814313543660405518764998886241663382059956443696764539230070550568612812359676626934341315061140175813171412271130548252990699929062777106540248496302549165349294805686823555788458237686110654012451738824636924193496462605462263645181335496867892963502488536974125973897381937353944076516209600604272479367201912597397335933624620586951782672241166566469040420094163393869131622423647977767338139385139063474560816339648835886489700321008044455975924809871993092744973549958133464256634688404292957060984510163405645876148717478608871565335169246367538240515011522085395184019851846551168108848366212960148122598914803331228397118736837861523391209717209307408308893348883249404802151808552305529218230963797215576135559894166784940528480418298313880250302797257988588231190558852415049991684866043656850164688264967665275132098373416601102282095207375576550148279097250155721393681890425672741810652011824297138872045053749392652098489057280885066188069725131900742060747264690725103559548580249693853551323258840929515072953312453755272964873749454888770868131976099272251695273177657935809526499313495836460069597151240326639511058131120681370181060498204133046545852676586254183387392255246543347342434218584310778844303481697486853198066047275186025389836166642986529547114534902544974734915835949086408517552454577471587306007033554353972949727327215796768186473507801877256326817956206236299206323290640361487213789834927003617024139631378966790922237682451453258347349074321702984705326989366383510156188805337892527165813881933013553479506367544458522175125180137016025505410831839926507659315844194170772527570580314174291912029248748633150473478080101663509158718941532356471040187171992760598389692044883032066153279350424372906687551096824791170716761610731201339817510916685447587584667212016685714154038436779511400380155064903687274534374855884450470773101033927119966493171699782055910060869819404148645280756636836813430780536260305742806450008887729983591481650021203393460959949893874847342401591627469509123045949606836696105351510111246015023084656322268348513522495058058481517750302104732699937023133748085446272748626860479029077392357222581942264128764033944288713117911375239507251832548882052226389426225738916987415887595251737627530882765899697961392677596410613062525761402582839698225450437319909262999262944873142616984406542906504522095268255577891843306586248582829202063594845921359910106557787553848686642900055589300778530920324660795429000016657657024523060261799619151720138006818005247647208602984325171577978535619367786978977844246562882039262298763130739376667420634251575297562737001508472635250958498232342577072697458752198954799785333545592799741393491600053739615357730625083160718083162980457669117494120294969693149135037169843701281074681920125795613183724026500486950365881431127423820121105303494711970714762171669953895792677352131898196567973432648820073931171596634802576278003678771780306577874609340045499502076708550471872794653933827238138458456290285090580805489101579715646186887184442553041618131136854291157700941154212197948629087074738446883778730702511843268124640565326975054177280044865838617498588703055140149484447900768779849666632583607557944565371904578098610338290393212699656065823035419768051251968621559004260850812590179279069734486516302798302517545604140051629053109771754539060557947410070899913532961833879569080848909880951853234607810304557412292649847105318007033350340806995641752931364152954501691429679180246663147076276240552787389001326653193798394040777399202779966239321608508814060485013707667807132563562442209145882409090543782370952766740671360919581880059591635539178162226576626158779269131837333463186751209162583051560235877463236583497494391293296633428596404231731881135550235409326585253833470779153254063224221919735835573901509060367071548361349316558019668266294158209397706216667813951284177011065214810060181507709801334086488841056328870430088803802305091219345076434480113057511303642708056014624343968983854557239303836382149511059652663996849321250991549734523909113935516746538252197564147112641686149520167320379488697647552910311893323629494208700442644200463169804908726194516491237087773585407521447970600792048789438556300901638926830816456974054062680117535866732034371201223111515946452715617608071379842897989232918346312678434748667288294322274902282085886336077472484824967883985305530680125187123195962036512838675790424719459704942470765186308541429474838886814357409237033834262046169338090978589599409338571074225226014835743672642053428449242545785648236721723091053030601390774278168315275648073271516548853264748914581258102148879584980347296081459102196921595620598575605269131733811094402013203592011707994856329261333667920881447362496511149759171227244487746675157482319817220903845255612695864495277778962778127758425141065852554228423116835667089763406637189498789864981763000383408337130896377045594649545219669581179566059673209884065554876959651639183689414096862513804055675936544641868385475802546671168814160282190292148268011104771060936349486456037585234039636681821177758686104740543817017319532612700739844393203816761214757670786746050503642633389086573699884999941237127745458939540497987826301633640908095026520069633912258854340919066130359180701806371021948605289350720016227568196172958976998004032050641344436693388040408818919675987589672904119254779153577092617381973863483457204296120813153135669989867659933872485228308088456903478682730090798502673542647524273450522952278470178622311196469283023933333831105307392454017650101239734725146651654920242948272869737784384614361334848255028190118032122346889633283252239189858510588007370361774535175123485804757079608856909313609048542124840198399163118732704065135101220921520642363179231345323668554692947658573989963782858907885743270940621188086633774371826233655146302845096948086851918650521295188949786310221446545008221186757701304840440932759707635789889282719522829254418487092202304311899446985092752472649119129178953076697957349414297292800587326030893988683237535966079879623355847888591893229273719551284675829149340127446765867856393193990595423347362643290292953996067713950894028427817119141949629254473599766519163988895752597221648663086167899949583041031312327741827594747671770659380655688674363710940563674138143670306034499167460472544311482766450377573192105845296883807715255409386860022639807557610605937643429970487974129188316569577740890134740060039605700218123973126071913041051687261949692846367053731602017348496651306762173398648357702327328811070695197208180314082070555534937982509014080948134636084222706930591120683548600357471856281628673948575223633299925349469726769412446323174433426062798418222250429265914869994356609904037502438131838763069098344329853278265634614791598269580705758021175021383048947143085215269669055814571558937161259451008285612608866964599555908576975633810678733358439642255327666881033347566934293199199391410853261453334492075394831035100293734180829886504380625166000144743590823431770855238945596598083652686402453207978519838517040191496773511069119485431921104490319116041473882026145539820643103519120501089887507465013163679206049254641057918090194373437997610454394181265272911489605683061756446141935542539977288406658654659260649203995685691688129312740672395886436934817231185531011422521168054790251053541714804743191407568901743228742845323625513556094170338358658660173261033891476788013667246463396082555577284199830994760104836749395235314750556609650065908630348357651401054434319373895402849994111313248447844799094101822844831853764095343198102865484561422443822065497653621400269308599031045915311335452126242597288801047677581791798838817400625240200180902078904376193681557004158118440079303034617550412086115387384075982513327654183811072357279441018306290489043422132681214631791389904035956970089832933943437723374674009064358680040960414554617704723478198818253488468779597497524625806701652482270364963561922863470404978655963934720034599617828354156881685519150278950581553674976860003651981945253622628759865175050421462653852168215644124785736072304238619215109555224300951786969689315947985667792332015721049912379575412708190493851793262479563809988763410384686838020625173256629343146712890177223968403044413221816628911288510375479778827855444829084513715917151805955926867540180087455479666641468587355671760196463786415741526238465750365823351919006912151105502991808424613370219468720729845816397300144940322171506802881783957264359772090822911458110099813430764608048435818240411230982394822929227158819153447131793349974252775033480742390647770127515405706310523667533842612994202237369279709598750057395644743447552655543370499758091798856131371207817440107806716477307650506311155689214539353947074521600081595744684336350662832969355459188566621185282735397429624668997576810972929715599924837196234897744909489581860894133532014513479869113125206544405613370784218880240730896846987557542903275578894188381281401193324127857428353733647748361820811625100362423908965957470543086656624681035747258578828705415805201283596828622351670267590648046761788434058411548248296772197195270590605945783437954034973006554680861102960243455318906291275722029902058537708260560926973497121379606890907725402083209522296254325610864679213617321402958936114899411913617414918904281104611559837188166266502288390517099853731465016710048546897803828616073507627278692080085499271800789366169276886291187912781041367269206392048968874539437751407396369591745218259123630973847055579424350218377160158871731082695879985712248582717326972226535719224749145180340384729896307951932938469633640020569328131088615681684926078953763824557075384297098416938387990452715188714374350529088258812754867125773873287729120656018190483631317938493421172973069225817771341147208301610020342804668176044751506209878482352921575102260558012247820663393846571945763759070667617077027214376815675893615121580197279875907182606321395315512958007128466121574737545261722975816995647546866701748080838329991557119078230055215979219202770761240903189992780359270540208697328661213644602704973523898442520881786663050053723201460783924603906078047223594711209720083784515398842421249712487134850080618672939939855173803609937471873644831877808741607892898810270682290245117486917956038513583792601707588670456416391375177827762892941072962489098161966814352237546737531147858824541335730545675133811127647024365422367888711411327600146807601850210074498192752615138388649186998895110049656744193880204463398181863015048218764980096802920617528361968861789298350997995336208189759880865418836490388078915035774968882545662202256979908175172870492540300683614708228544528608937406983792946881246263136119612323576804167162975111940070537826061833176650089416580589627511451022502158620930148310916464224568013847871794359765941937433204352934853175099802577760179307992306743734228713299584334189454511733077110597196480495549220073520230059356538069343335225126797130456530818379341665234336717038447489616651551370171299193647321089629570094606363264909628340377116121318364324742903171659765241592044087668898175166831698911581778616422622039967161580410915746866482702203363185709826886885767595710507852883970693643035105260999822058311531954450561770033205085654007558123544023783129450290207880501825633912699778816770979326174368810043660445384356057045455184321514365186628025659249150849139264763722245780356342239398526988182504508646915769196652984526508514941996847619684423794992290799077585692219419196715422655490307059527829767821205945472711239283062072528852634386753221959051391219725077633203030687456732682913673045682355817183537958162874429291439474957786531253519241931819201438021588280874260813007501045026695360138790711722310830513762393686298823887487058612467636213144666346733152846222907037894812839580032751895819683230134867868837972842230634839859963240358776815263212419512712353100432815501646310053553251955640099725259462744029077132686557839865853498868576043926251464622904881087246997424061770423491193656222864762598279995115825244984482393375476667994028155467365097455650068390397170807431166708742736244573592751471592285314364039388854032986308355362309435007870443850448329598145871493632054403749484143656454928007875930415164487201273058362086883906979631933204744292181160718771109301732493890156550713091330237742832945294278426270355318623773619325633536947775819776654334684930845974647379974534472992003210280065420779383194981956808866767835462902657225290218592368289009853032251917211087362054519981101900882880835590957492752611347077662229473236717255895855578781871793114243604046940495489554743009122685306982991483249994009754128260168019711932847902757538443680491716101633004694898127573554827633341279111167716064548236284388698871363387791344715686568627999212721046419348349511593814797365168539756988405119126850150275576415475550359648367474256901662814515988060814346239886549114526293383545839770473516846632449133176552397873755204719642804187222755461284673827426571648297506302452104173944722795077727554001716140969089494563703196070071160894329964152698337311215445486781715782728702065124503624660826803202836922210539901192361896833391747676523693733184704614145451728519597440908516194893921126054106063782891963352635699042212641892265937234687692053469257881699485973633306785300669038466808929883013687446314648642144936737480830695950047922670429332874200449212143775915890444014262592555662904363676765504658108563426284488674300509372989901831032066398836516033340238451852846149626655029410997784944663341956648119437897585477404054148095379094615910664085726727003414137680375030362829456831835476259168248664925978762689835537029073133814561425149851070303876358866431886205037776736052515312601474251555210883646698279386856357274215701468398881430258530951226235402813555067664694224845623958184326337758434727345517805697708946024570073558259990859418665838389677353355390135378335456744133069354044026790548561414804256268083478452978161972697803708058338083122181747837059801621589523340551439011990295937556851122190138529452821177290639760536215755574191735738741138534556982683059560703274828145453916748462009958658475930853998716154105877518631128740431124887745517377857135551461961014720883230524061168294309057955544619288970255105963138768246685796295958036450399573216873774532708501781770822674740361383023393884107181922510179041548629987821368449717089047590420227135006323498530760991307089315879288052422726499217553786082258052197221231405592750093555422162175405815458861857483930595055139305498928335593937377861235687584231180433225168851680324313382619788539761644012008334949803697005378050213812116247419364991236689126583908105371095949934867796271944277218455968309289310070523668261527277101246523558207716264729016036753633247544718902665525128883497805980352912239456551808304982329427389832531693123098918568454444708004277997245993836912885809091683869176532179219809354450020485210251084202475247197136818419714694910711390795605472898657136353796376621048868000655075454711687456027771696322712601143059760345616952189240416685942309783611469425683185748846326435470596291103623024688861398386517790348924217991204303828358114241093018520119807496075591759628689371425152540990378507475231167733771135059792275045487505634356379401084852260460375843399587909537681317359935270106946051481638231691121674900120952006059932062748095199089787394875545393267899658213569382679812762604939281356285003737478858696184655589257259719733123969912533051599382476004567060224785584103231422900138909081944130804928523895999996068187086003243056221746295615194245553943330464916434018213157807686156342181068961275105739577355073282856069147201676769567152303247035837878253534703454354986656818727282970378277602493286478543239681031014315025197546886486843283635222934103023729884500991474862653559201579177099106559163153038039396830189199345962501361295265870721469968707580643641061106381406186213423292124348779448806668070500648953143999896452465093044449095990902231643667351457711442230436415013876359213890947769625115142288588203923002299033125172032681762934386299782905228968379676893986424965129768274561348366920746205280038224766105423792992544615321674856665022106159052991743868468599930662129873994328358848392999619215412638914634114220701479267738555125912737392490992002654391302418770958650841207612198596875823776057783048442579307394553864034829496776715224834788129225367651320573780748402902554938307281490730087866558578413497672511086965286641387678951098473019274391738759442261728612326515586947085326883700257610492343413275039971204312964205132907675508404566688561899292099337695052419041929856938291580701878644418435222923480652775863155079347900808811787385866511978846241838809840881582786219331527060486612237563187971726012566261206777179374296976375552011140935678716022045831417071224861709864571819187141037244948964534784474676269860001932446889381345785369333570794666593587243485906854011664259913771798935642532250010796716450374104457392160730297632824092259513774070579432911792339593198362121921307490937238507897616602841814551886151657620536623300934258770701126464600603378345628774127107706813113120509658683145288715820398538329695582953302996196244497865979483397844575576416188470796708939347930769131431463963633774333992351325529373871203745852218410871158737776320935631118869992250169188092785328813464433357696043265132153013194836493964519642531337573369289287199323519342007557348267969984138790431454456615066502275525154458252553561168976495326057457440001282400986300252612441450157703414249955122640792188365044788954882165454617494894334657816332554027244600417186798792859221864255114485394164334212196305184858887955200785283615059707525402731355860378258029025886723395809009716230716009830622681048656927862142629543817619205407540853985977028978486376305738838850639598652604105245177890978969140418475736420373876240493018993780754869575518396554404128369820924903688442937564256404136644699370058431319313933965388133138104322666310529849897734230670027557230449539217976913782764090868397977069956531429365655039186043991483769841920040063959083055153012409000687441025599123881978241836724625570196981473883575824019331016943245456806450123157807136544248481039017582553781244877591804047953712508698519366650891202140692766203492246044280879496362456301469344265362951991691270197803228748149752891567562447483020033761204432346581365994277899322639228776909556307957895349436052478147389785577769132217916261847133750755103850731111181163213642947258016738672402483671713136922030786563435659610609054551156548923133818052366721765876782318300372040906768171956462488612816803220788092194613041274053478837871855150610893814617679729029236060480987949814992128120058512608113388659554547418799840468817303480045408520798084753460284814399237980668980995961189798290483067606946482607594208005720578225997073230099291160471503484506682104022685197343038020286003581721718042951184509272476691999819874046929715131644652547550156897660746646597517997534950416696623626293206137650211196847838005461263155005887949407745199222969491720903068662484019179132408583094511461895110604528737653463044911619275700661191342149566111584535030820513841075816157174465039092438384572134758452824188617613038593051439935191900250913748797761162381208858548600968319131884210498974987138721662901794937196225406380989026241686215068794469159828524972074668681339273598703455043210419723683041822422482049013194967417397021341198085119656483500169665807902564918165099599072379406537471023296485920895931312516405975307783663782923205883601740158004601273868595852162244916678955496808056364429926018171684086088390635077524604771430532696791845290020021857081596051756420690097857167871852071052569326941877932651464736569563389514774198702262769563335108473073883521756712799890618870722293675449070166784667024200876584310795783680165458561550729345395047007692588516967837449293755156374274607500119355307694098980647315502209908452974349199988624567549355799382325340092164433178878185173718638252438498934537170951609872203489216372928939009887190240128373834480142127190831914488141850739765521513808751117833578448280523728505369981395556009861821247205640986981673884771601203471797311507936228930652023370750004239587606257447832563169345790258043437075694716556399477473487154464490842189306795107432552276041620883154488687561833181184636767760103719311089078885290963243243356653213586177393981214288288174755265996040642487452049174364939883348807724068661075057106598112447789948763829827642545492678506007099426104571140642761030215456894457016151691021432098604090642157459555206486307039378415977139978308275818525721396960117495559357121387222349083645641455980409721296199108200806624991524278083630605309317307509221971575833775300186674915991192538751429047810311330836375411500514175077393090448549862276138703019524032889021821133229207506977259400118764930041467292777535422806078538501083241202648324732853925470207444413626525163970085852953697784691530052310469483443492696091589316224991588064663997017592908597475701102151150072767799052814443293237391924709068573673346277659727756142678755879984562039984863401590545692418871449611167827714779734105124144540165462308765715955858772843562392088307566412821014857007659472281089797213633220714420511275130830665598911081322557363646766785357177325209003485289260004135290182878572323184848701895244659708654564549585035779735754404781866005175672815418277715275320884048043803677380475574957216449241286559661798576543672030368890925546276375651101164952413009931101798828075035034382053353573972310205919131131635033908132017233207721934028431502697190696900119164926761678764929363917424384136474807291688721773088876166636280146232771306000470795308287418339381939101174053872871696194079096788884673867275810777360258475912267324810829230238826302393740802406359389532148496679043611384039151334109412832774024161709318807136514750865729717180880958957944297421586666637830331366839649944017565405174863665795152637015024480915351181589917724142215419687010813680741008272164951942553661393257826038007237674273215184525419683106733605232466646012424621154940639338389092261787923980830281454736333472025629644876515692936244953045603215823373383319646423816021220401701264278950499282647287538585671079733274362929787007402676243097833191810399557670990026699054472274527955899786997373256530440545651050345094722862593840337937462428994727289052674531795269571897581672668681491741477053077876448648455487877190155206055977235220017028002048356422208784992923702936423228475554052635670497199752773269135812978197732626473034749589324670144566879453627923997131834249714368287332008101774778608729378772800510671404949821251291248930188984458512739116866825403586344232108503589308441023483095938562111160194448011696851921106093385841500575867451367703310793151856118236411537861713340095830145347044372063506429055805002676532326599300885170932810424525275614311329512050178587221796652335759317518663457089399764649439234757769212878216046346126602162353256507145814277914206320122258777636713886791971647296892518194838693212926679252487809069541246189710469765463233599453153772113890762791279392005335586306817909399704721681937974947807929306910976292897048895585200561905155589619841376400242289788387379849942145501659842311238643592531598668079612321452916227990498778632089506849208861616093776446579551253346794973014627377208458427577452437170093731485241628487500009654300303880703088986228890866326994457869488691461060518661748344226712633206362800140613278035437200834999694017732146561234508057325802422472466337219128742587825487077062392354147113678607744918437774423909877903726971684870619545431313122194105274752801801135702065984311076187879140380727752822378360754624694681299217455724855017606926137751240359775127749644255693870776888283522679351186901321122904115149134621199834481032367395630886125663297045304871023524671851935572916431682195954373448929192435531571041087939141455336192129663762351979516186218458117027310462602950780414775588163261738400115940607343983959435856122771746001940495504945900132961865920099771477389273954726074567288516524923718629874814596393929572453865833764668092968039249935053739937829723064580113082361194865671093393215791084169078030914876559304385906361171497011747492259408479508419724427386290406575491955887955898925473551774061061429586369253685597518495692924006583375817562963627117482450044641683139440567544119479891411493952366848990729258944620680232718208780469865318530907551757917797787535934342536166268691572803302338548199493498600710391066396778760015477987310462404049833380622939908047787722428729581027205793669245741631965446097858241257077155943199353431137926646040451593834408120491854074963670168009862851577232073071718409108348623923595965908583336883690579575005599061834872400790421634220882925636868534625693774014813733587045739491228672824958857294614874924867221110630920712876820372792975686544531744876945229258650603860451411129071467810976181918783603936570546088465217911656761999289524819047521682768982836472037235030209276295569522992689158554045146141462553900387276910698655167217367420724613698064369110755704797002231300213995439402807431278418475159975157727880654880205478095005572632145557351587089247156728423850360545205164726080586321516983304635362472575048875535751175428974428468060110010355835003541249028535737181132528976530068329891466257416665073025652614128952440829369641765582978094616956068948925627658304195148769089669256683641157063023306020648917788673863680354529676737012200390063722287335788380032244788050216229891358218559022155241882653512649776979452147957744703431154343325471493904191333129971105610961446987958871612234734492796820372561587735623301270131937912474259521295151717882098949823240491594859822751606595700554473436756917822601204497836757528715166553933405617519834878828971053236340644101661806456317466688693171303250266812111417966215263650213024211633608641299929297989876460006636300795760830620732632186294597628327907093215232106828420122345847847310544184189685906819634654069992242990054749478213418806376251062280833883997272034342869122875525229310662312710686232451209064714296308330432182404851566551334621647385636525361529628454386145942737350309022429537186159953890407609556526346329550242601117208088112190073990164940577953022454617027710164178480089736161034522533949511026063049413346152307929944728343616536324356046400683942739736109832040012813625357204488692844077343916593831499103578103267080752169997701065657882211419045164184162467934178436094364107667339321940136648704258071222345877069213445342092540190595674002340143633906150782429274524585780062346911553811090835903873118031239891799292905028672694541822454860332589208362114954875454206114791826451093019635650803974706545780940465980073609212177862709741942341100408895337305873455272243306411483991862912178261803065666153447470732428894087717400679814689546298499262686300921783456955629405457444461986338027833192060123048152119326610417758803138698504481882714817057299299939659816871879983418124123584330352515341208392422405051797286736699519434798554124453978615603535760314570866001533687207221147995776616938574632123276571876303782959033118350912707941999383037761668755320648202045605309596772731681850891960105472940454495147146477872770478009055326898900104899641042052324589866162751282561954831336227343666391760837789929817228520361803521544093282214379750059480443673696581367033838083785973867828319280076777257957303817770102716759075573463890496485067529730136238204388267347642914098671989076095490155689441965062654250501349440318548703453744503780398973341145916424984942143274431868456741827074786186909455758963608466600712433701316408162122993545321374959613780891354747871763175818335667136017556219616833851348515957736884249712678098842648544525804325692642032767205299693567293951028451558877310744124305728028075490403895339155347342927427231489950493724247438196383680696125323593336879906973119109587711325084612042709218345241547022461199762093426728258988152680189674076527963731828783308253388186346456240196560125992669730222108484493824454363718744785131597214684170222197172006265719317735712755050495100854527859311309457120160083684179030536033345188805884087785606491279847680152281038240182348230931417402113293539887604009698902557071378075390828831767680459698211999849436772565653579479190058238454660937635377075155263143918432421078751485437088673535934657085913937973438382090074041473395372941460467910189547822187867970900859235541004857436022714904088361778670527277898971856697241383302129706631261343758827816935833154492703510663866637475647835986535804080019999501641291770632242733660176247628179342861134299062019478766228714423358314768050724087815972918730460394300154135744265535618961964804583647672794004409387863166834610363474078323650496044697538745980695086160683333496209187247603083495817330067449868280982353539362249516077650981065514141069458728377950290894142378598204596072108637193083898034541248931246075925271069194657007250625836911682115742297630447596623936587276360127120801680732938406154248485355096083852748816151631376364027106882682673383624627413031373917493162176951043473757546968197120829788022338410078954608107285836147263465020969904410615614110980983240725085787068580423017264418789186878171043066917822564119170657818117750349685027525961758473806663771583711060462749301732775591405146353201601121239687052263309251145518371342417046894561296080265876094224829912515826135818047424373659879921998082979588115555397316790861836248475069393516067744263105898282710413380464634894923039149580296831790034183303611149769216140490789881353048996036898044883283412638181535490280006085401440962098997871851179783842872693359003425370453216523130018591627629468828250931683650764421729183569362352570897474475640362084812512256470544108793966572927293009172629628368655743087395331757545404395776973732553248039533771518532534595063687765536171845993417571426535636884764179162467736654602171557078900438659838286869191743244598955330633293285679854088797875262591100009046048686054013538413930276864020726379804198373213599052227744397160703642848358636058441543112166835320146207802119178228202410868823660989710940203876708688580368876921933594860333321012230914494300661023928229206663326116871138707544307254861261127370677450294233316445722071304053653877833619195514037765465242259864474415754268866371714686252796725844945215826359924488260803173514989928689903647088869610686272269016338420515371077335748939926169145046085168644766106453304831207246853146562100980456863895350729065774999171650426267587259032055750639276913896996391668412082001273377012167253199643128762217222661340551212688316416069726691381282609630588571030415939365174209710339808110025243499351986924618318112258578586675495160869691998212198309557032375405852930878864482198124618553205168247573829274255973089369804971649871337106223423213674716613508471854542377089289094768246720235588346014103674752341597866648380360065218969001689205751837412719843146811836922219794341653052162819701212708304582446191268730051261805942057719161220807281462574860522207069408609714966722921218776541685432793693627123302387323586616337223131926525069889404013042827900455486358662523983268159898258944059574497258562566056992524704303081939618566680761634725214797305166202747756598662007396671917445270394062765625566599313145192098318941577593522007480613637495349909863453308405441647016563070928484539587148787408188083506120107921827103926635618126824489968742635288868662556417167548965166655970541651521064483270539218996931587232219047742935951075537522311010174267976038180297714085410140345958113364661535289296646254601973981352286827234864639867994973659726981416429047922239253259721076514990819987947724350930685723604950900215642268196028983461095492532007817857227529911670505832617613561425465879757466572189984096612813189214151181688360330577653538682782399683527260561283770143499605191396466256682854251877575649744104812907665907612580013591186377072232000600764826705703062744596539657736344848647586622378620871948614418838788055145058153375870230520601889776071872384255335505662628762491963753262713445969649656521317309409512453899945844399079634647568489576026695652884704217725251223197183111314228133158273230433858162680532373628544153784585935063832758915748949520878455410810169823131540384371509663648956108783638561833373793848348111142657232703356548258261208632043012187693000162332938152269053176684090894058293080693157623347505417195381176464351908006062855804509839186380415860544201139103410476051910016479208690419318406541733862030431577914994322685648588255776633555915406051012856337528349837610407877876168618913456101233715317022214831952576111182425480090134720078392470271068524464928697745545097473639707513696207319679510795324043823132874180460455695712888131304388572758401945119355716105975976355058679008839390097221831195654474398668340237198854101222023863526533440820893354298480963895211490336422065685622328941848281687646499481967636278099563163064291511067969100879972776427070901957024135241218846735001061672382909267029619088555117159069950523877258610054219543903919287727648484757235506257033301911168185456361179311388337112910980678111726106198902951870336919609281176787944275794479593666118194686005352221248061495220390435671418193278374968320107139366806993297510611865859506343853454718035605104183453549700456372040850808214283293969046441330682576174351101222986050590889293482210860172905936932264383769465684926240847992057339653737152991796828633755327196570882565704393627107999451875708644425212901932870440378333964475176057077506471332085465796555756625299956459782212066074127410235222407943481463444167313623730847354764666396952146170048546353193849010316326611591212704885118945745009357298255223177077778517177002100283378036158805864977726415923095188823960768820974796576486156133810861586450650556335735045732953417279860834488639927093537795048492032642363048343863434920411980783984751268965876207685146544540098342783188050312780702481067769150328770157528984804046299687421895994958693572441070006782667793711866338462059703315631770917008737594838448885884877845437320864968410670440096945845984387777403595159232003781296927594722161237046725073995513414509352496226536782125235002636731598707446929121886657598912224902011561880244260244253666829359115027167302571864884200785999019989023924879182348547478952967941982757164233173290715342758797586984298340815623346591757467977868426644278399748066587413538770523116859507170106251259891080631626634922846494738964278488421014366723892587261196202645423868972954825370839667455384805531324512110587222503264110917169268657272545559737348740053902599069338170228948698019904813893210366089912739070229813026965108354778617906971108374998722236924598289807849717866547417282074172996807390596919061976932426019734754439570223138239917495540389854160773636420443610983222103317211701882830824061262055047696373545618460251513195474733316793071206754480954758367176526827357865886068701136786940837885719183540381027161359936749692552303510065927515639038500847950954772149203478332162686401848807108205883773110014463596453003062509372097980857774757261861501281260538920070230558047436598775435251438015434171893279777308976899236479712693543100904055777909499757145239622961405160587388668736350345279035028050206578945841474138872609906552075275580600584609853280883221202245134670612839812071588301235702190089779886621220827972043023245728794233937434402552503663239824559234969542680234980819792229181119322939647718537131583710465570225462256636151585742544612590821736294507201556993170344367218543415724462126629389374698357303190453550295808902892164612974749688098653186666881024713220356213138740077511184833744527795877724309599250748790575703977878885438841449909609984752709029769308364799577062359731933883809586934526976626475606910934136294764448232828328151072744142104018760589525881098490576961361985021357281037279556472035451307568468837158657230516270522543778654615161754492992161168093824073197659233011949766239146030135984725627055737842790802819090266005867926907864042845590447920464002772937202521253755321610692492061449500865905075754083381884643209686764338321347919069493570098082991338148863467844033101093906801050866617464436967852341416322434176549216091063656866097903010075588955824717132358321597506208122658005035892385156505840864360739863795579548805772624945872236390980896006703924665654305456753401181602093927133779155598156272719868421441930550554364129073853885095952418186672595315362791657632371585635770003966764699646234843410937695837406297898042365935855415636107712060846466297018219286292951691594122458952328112897346546436161229786304102361947641928306110483649697588113628907009166772664443037573196098888561845339813008884956259171626212098280060607150531217094885417311525999726728869173118634854125401771109681219634068239769291413217090232971516881104512123867593410093142935373903760889203190006391719604990187630710979029741641832605326631431682818281831899864208945386100603405841470488411305336659708550480497196311342529985610860993975840095847939516238205289272500086442051775374436552469232286721885464588057398202499914793768213220700079062458426676122290605887028216106602333473495398609255164337427672006160260391921917095354586488698396070136668121721961464306132291797267765917982417674470106897831914571842355528779240232113663088449067764332403502348266704980420705661084702069771291987031603352674964133502978488334069001093545109049455943322470887220871498594219370707293261569470467237223816018892891132458266285332074164078855328445041186199373963259443349448639057085732162090732638557484046196375506195805973739070718124083511521369755692111409864479010636699597489175035729631000431916084193222118945497186106061965417361407478496333048243102215238959014825843545995278560944996111832960837543613207705466481183204316113554468042930853571662755028088316470082631702475254873685471098143513461430378649675659712103867287240617564455830234358016024707996448220757361261999478754387850633093742322129014478536456359365761665746912171611124123052381852162693224755359850606672041007720170391508657135988089606223456516604876327902540392819691834601209553718161154568006048428730102950417692806455696217835255363926808069296070670774754950984719367962361935404517152810252403459803330256243353297005481948570110107540685984046832791914565620055468931172607691986517554629950407452699728499285222400370604705222807681012332399626816390079119645413920125744477994282000358414938663624591011553373810944171736510057746766915113422336114850822267806125469216490017722042847712744782039717178932486577858902317649993035315836819227090683801732040725891584487063969119502522035464621205722020299386953286911663300513581559215769739029355620545466352682633768788444790212924859055550264687840551124218157855365406814366858774512849673863522108090408785307529212219271747118585926196832443921923275913733169468267329473229934176880113516264820119735323843954413903086191281743736915396584490136553305079718078288726718281731691954065990418419937323106733002391013788128619877420885131845158661166661459801820223653282691072167261105728251922469322091188733191350304637334768896270979216396116677688166185369845501006359213190837276459344536937417734201040830640130387437301770457146789521003564526305837959937752474292652360364721398156138779839435279761844071764884829409885425567791216539483933221774146924899815775293482367580335348662303232198621125446261287538614195053576659914649567589675162616890902973537153934542501337527590389373849815767065837354026419174764399267654001471467337403543910842603732292776754325069715381650377846086730013235487094614268362026898211434501474613110953586993009293213021052177680109850602580182236868639741107491375189432918722991744242182242163046102519518836445404180715153502868404093758920926779557211365936333217005280283774281824700982775853808569002605659704561200173616411576625896352469494174459266266176093881455400986743777930430153945497320893473507698479040001365941593051402737092454545476510666663185266762149285811245686666902411642094100238488047853677829859929567495517537285802710710818421853875144273383524266381812712517591314128247743857701754612819337838881210593852009062993727147388886562142956301515634744449878537987024243652459994998847789613164230019444673951580195001405491970157570365432943114489113520761476694220614734363511275874297237334482317556299899327427256243648588371164162796129822612004490707888799812739703885068233545037344925160049914958845316056218568108054880224599097340110616355356989799647581591741859674282481173908340657031898034582514225875704076833627236458643061660426695045497747576109419359905026620879179653582209952880308498517186071700146945272929751800506043653578877503844199690483414429901477719439170876648849476345513654116091406377002259068713958574228880429307759412725906830719660484360977508896457501115302758943870813872321745884036039258361105582886337837964533333494395403766955077459018131826722677436305457059107112715294955719680061774076823578565517888827956565186412373316139424113239051829420729021404646977547297432208013120116092235505331287942241893965629707804251309148917606314483328066803703891219731004025049770774612089029609124168043586185743535772397560816571636355566377338133914296889955222638073599706362100546853630052821122628263351556574055895062276925273241405107005550585057434940823986372251437916117791824093466065278202624395825249678602448138008540297099950351611693038240981285841979060550395374206350186348540770902946249140287710861098297384457083763600247574231102371220741753068262541915678317488074199344177677557005410375255292828538365074595601304063679575135341194211151891294551205497678499931645010892417847432617111245609256300671020442219698808464296538344023967305545248528122267279057266884986841887657715880241193323667577034854630149655908284050636829741170584753398590137491586118996130557798110729516359970263881695219830530804909696556790105878142551334424223575986562401070378603817080593240387973397666393615364487020994016701541141002920655707237151214361109304627295548670093325209803118566719743451801215292312527377228479313483139440627897996344822857005952290116432564345308100333311294079401048529327462164120983312899143574097076744643639271724695274636015686009182615515625005102011336641841276906637504297501878338444624917485367283788263768771492554466118662081489887343144613685480587465828116358311030085351000246956327604342486186932356612067214431322606709196743147587486075857894888192422666906340144914205105169593036746073181969101421597910661998589411908930638123566762907396469786212649510803883700624498871618896332766133342660757035194958069333687882765511199673458095985716737068414098008659976106785874464705090112213551405592449367089681640698759994277305410184269744908875315201120464510938748586148065557730571146017538235280777707121503123184875587850552809465632454478184482401491319990768093937526310138585920608431527541950540387881640358310511145741025256686737021026091398602779224078037796746049104207312947467243638568102422806775227752393167887541474961814114792903299022410401540916304813730313488579423945490365829109904372727511171432369910506934531497510568345709460354484386722517758715401828557892326844172451834852088130959624330224191964990493291812096180912673706485638135079570535245129278931259494838673586903716849785427602865113934574184512306738442215195877782138617220694099462494069703974863347781807950608987814145436756374929247381870162250289912729169471496010575905556391616958500361894547337443045324629979689150345310276788271209647087893745944313190928052694185049147191937598141502932753997643507918839615062374971219113456449347343965749427588664390603908676536403582831899861116503553002321979785992560137639275211129680569664899675067401911659787898498753206327701508869038566771282617090865165746970552411095225231685613798784226196549237328679176801176120969370579224166246559319078121766930036126942207871654257270982245261714224005850775338214918593278269835577806796260965490095213955319929728314900229264994800361564632540535083710678909420783581251770461520118853553829170555269938241934985463953849820054739224455385678466446499962102771950443831665995278233530081283886146279669114621407592446580527058430007099797947956174924198317334416508893692280513844994456307334751005309720091635732101495736863643101506287375902246481412831878311438884502121169958347287259052373045998222140210532660184344843547697609181971983194096676485205763294715735935208608635094449998383669216306917878409400480093318372079789920366559738011635906546805497062012750476793675380033173408220557172633154049973524267765781353679218295628905463530123949926523254562706153272224699901510427594752049382663095362320964148499926043992844351904381281020035336993746539756779455459284151297583488784153398694822393890508678324836105173824317815956617499885537258066865460758658405309770461614378915532928393516306944690345648482781631759423289704144722113582123050474233979920766768927877058712821999409853511091947469881999147278621060658962737214706188191590688427172805236571360523282170586036490685490895539042644266501462887010164138252488197550176072268191084936799944098042852986717519950191653807912732902291815191234474968342659999492821273270521475391845220479192023166114499004545929608866560890163424480540156678691602512369737104773063817734960735686470128663069353828234760452498908382613497374053622572395397867837577382140022990782550609723279003309793280299681678796078932573542726881359224019853637513442973325708627982843927053453906214258706112235698099735519333882299561205110865724749808897734808959718322857055336817766226190211326621629444023610719227077694438355592695953173959094055450303795633774939434778684974128275582981642030429385818657020350888893278169047802976114777119848265511649422201284654591055974579681298632806157174607093449679417545960001828895416626518489051201258033709815863794314266261427012399972461314760876519142968078989917284732775093026946153076772847306293849719737059988433140428395813066557954992726079237284392296392655673486594742226387228061476974786088019068112691026279943708967277280161519222835727872670231386511305308685912021506633730578878787401673382507022009556433778343470946206147183863483407624133141610262755367331958399194702605366761941509789771730654676662851964445233197654984950298874979256996421723894559525119051992042875520744226183154649964575115688665368264329435840687409292047549385071450853952794750045083484154066545999682328945545578616622344032262059784946890899181240984740818433637645816877607636347668678445573013250536851955206178791083182665885354553846120120183351703425030576468510265652599760431387764498329556164841918059109546657971539513268755933208506018615969487566669168823387476317160720538369860868344587382370281240994959804610313446696544133127989802385665671521233958622071293255850359098454139078532674725423556595948824747010792972278657025751860627400662695358082935750905726644918659492381843624687648354517781876374768507512848374049998362366883757363677104764844920529072390137041482910853627548279475297199437987545290522444774695040061652993423356675905343813953381691657186266991246873859946774017834550804965175436130347946929320730901955785994695729259202210699915971729861060321121323269840824028583798246136695145194050378199763660864281898798772694458060543062278695348015682622604297292284773572948901105913592135233344301800351778147057798800865417901020728259680639724502111713459436010282613459490403064101442740816971818633375585452913013905207881268319187712209340130145232989053399677317945232675229244020814201193844409095708332793113634044996644509883101626780732444683668222153903279582565437195421726580770955934181907149581383218167659833007898908701977568210838531617940337317936218028047001944346143647561138049465252540128269743724201300131225929669609645459584879376819833887399794752937082810091623010515915372245300081943170051979042388232178000071574012826476862233534597438018474670872689933183664437734527696716406045918318270591454224937193121639618945242376168616825892930931909231695717054905111774697678605628688395489677462126615637094803825869866057175671075002494758261895554163892128122865808279453779651823599444477054209505252583336063415456764345559915300777832868944441200800895985189382605135305374377528629373019131401514268710690523394527284709923677902082192026336415316843498094809620847066297448287944790790224700793079683528885916935619932014614310429612797909714052530148630740035721166798810087183254014328380381213926918506494420141465310358109857924476979508367303782974660891404539383524636137359474105089209929059427316789801989944201187030174999457106375090639480052372501089389618577226213111295081379625877665157575339268402294249099642994445037670859704357611235720896109967033904684835295708195836271205383845507552367318796703791832907743653038332601210386065598186713935834335580031401898891527467977085448214606412252599645518178057341454854614100383322565314137995647788004895159541178115792363926459670115919852242939982319783129082992200140388322045007870216495546267740281343514011221649271110343956355421819494938707143942543061808772355620329852841377538467555577718739436267874487282879648972697537540105347736060164561161585455517083693928450859493161505659621308370060222975962944725651072300536498245825961904533491758807488623000118655909907699921492918862498187409383912079492983688528720957599661670819579662934182972148048065559211510995064959565795209996606531829015331832352322404785627169065595962299815649178994522378746147217756074523004007673906375015567591206825671700644827898479571958392590450133977962337256000280977839988763633577804398913397728996345185533424861608386118393963432963439948849984136831558931313462104627182047150505290249749326995724863498910604461684174003230385905768610701628932404849770240978669914335882393784854522283055600315428825754615355392622286135821561138209691458397752166513424219756186934278564804816048776364762315106238821208774089972440804269593841061789011091204704608678219262536058852169500822938019374379872657088754165593158914194620537880575292938654036079935636185227705175596671751976795993681718836973587581327179018432789955040244904681967841978794632801152338491738713240685070660531794598953800918759431388979667432514173605770972152621574099951981886863249100967608917093163457010096884022768405345989209472959920406120398368000154908872158752893759436312295421947144063141790120938116385141184678784122937555785417088485470220994039953492889324857217678523700308601299199841955247423023365931064418766645751905199974774423159422740527274922037190536426514816797658707860557979304226085282453545416368878753076533560975974030252486495773203199676791563420972955294996350031930473373340427893391687462080062666012888775811543268252930160686098909758474380913144081615634271923498045970030968293637156104568927817890350510145842159984272276553485988588164275226699046547350742916377072384629079972031863095750099652194463638042770574259922687021945016550921351526582869530794279140772177756826640684837000110651868472615166714856802605416776362418038936367012946500234634046495393270909763695182470854777507762168217790487087203296648840528902046120035191839350953560112810016215210330921386544318679321860989132279949482351849739331325469201771388101691006913685238835973681312942087399625362379732221566393165860858772896451818962112994723846447903764072458118135830239209157572272938860240639220434120827281548118346591559711572913462685590036947369113698854530496493589602311510440350179191123121696644390520632420384776499179820776488682500366031283412103616763017272852423150753209924348579212743945186542422345392666294196375991802148273768078177643140183981113059723558254098652396008016756186551583313274201206598826034661277233108822482737802527254694409457944495783225330763828667918802906219348191791546191777855977327020913757339134885256027614089070644416400524007867493090016714297975635736894150334777811379065880182862635312316791387469257720977167953228489599580962952258872696561219516441734317958189754772639326619363433956280640159638399449084228368766903439685655258823663814734888428620733591806357654136922477092891202575820284187138031267531574689076731759516216871347102914995747990186687574246606753271987050772061240284251828583228329989596469040120143246090652792286205010633534810653649588654803979124548680241006292730398871790010457231127185186179009402653987516248433634791436221505087142690324479640538582056541423929236367251755799147558601458983935155034730463215210143667267023691712333129981829423570134941765460341542602686400192684652762751301749246330558793435016123416021525747957414673697304767550790304057543926402125390127659024319016230487825323981285919193582284623614132974680573647093384282527781427995651380784897539317030216163500475850384097792121897532480814906358376255293005596141076565532767000287432381656448235304605375732309324716129415055152834251964863266753201657044155905975493840036295862359722180060605028323781251661370306400476346747598179675049973412983608628719203975889607027065095628671712888407481307267092799915111867672805396477168452727166431009867455034645766575614064957958089064976147592188066508597706120921537616885995626021134086873049946697183056325778728099131100510657350157282215523328409906656460977759027323732876429994360163856648900302866061404522752903529572051313226071892660066912035273091623286568279403490945752535024548644345795586621852940583919017687505669645870269801286298397170833381586808604153914452401627818430495918396601843259940308429160481485122057110837383093681629642313115004254797040329815340098306516456796735834801852576424008457249170490151635613823850767280496581659308683214064879951169745005902692749858686344702859533259753537588189538629619067159374411373334580147445914001082367131477129720904895274806719242792145780067534351922083236331375556153845185855216113170605002025887489885660526185980680090521533980302302514756510275894160971583733407996367674960572141467420989189016760518583755557133933265630693013886910223527226278058301216235869163869627324722660609688634365231997662842288250261838822561953049965507713654070314545069944787272210480827894387478937996809074158815177032148778813553584545484989405365540987161476739800310796126510166157121886207598509232516020885285693909217499261212952952509975591520500056305350001528495051533643477624664433628464328731384783619370198176147544750517269640994959063205793083171825056745412125606488919155242311816296086577488710304924009242777791615037953621176532115607173136372648354826426128653221168086181395911213418772478545188926265386765237934027789400542920081500779816555355463856581542320629498267582020524002561921674891463990499288248565240223804494097386812473697778618485136134010080283749704630744927922772648154924037929281431474998541840462323904686863956609793236714772189141549393668390807334982463013827856578933611458284991057732780435169404718005301225323770783005884377216771685740908238829088420634277874237609055663399863037701199961949899670166712894239989970419851220853165542549970279570473244100100626969593099516499815289773784216119951488269030516797841846128913121526622187103101340506233063393577580659869197585589399106395125293088929433571732622965472553612235278409586441808344295053355303026838233014391908714268708543232880384995095914453031408374117560260219808475712802886482543413729435949065754534140388935348408441954081692646397658618087374324081553350067204690104763002864584184378414176817384895442055151429121527625340037647101971094979390605473869855297651015292140149600667035401481067356421411216253659656098404605817915806525033725686169128681893382021084552041253912738548631490110343733247704128350347752189454278311408104958452221801485343377227052427061259633586502691433274714604796421565545962878761110752664291079893820217751064224903254084030302654680809504263503599248352479279630795805785234583909203099689661798288732222522111436846779505569515916882532822152464785258185509356986553783437096721251560958560924630180595206455609287986030144322663399004075363088097360425072863446395493087789718625510120356566455060630197991542556810627940392203801436014699684154782228861075996782124666245231880988159113343048555462688708553206866660099568442254142816284651544016173605164376664525984135147459625119371159570857627447934508209746166781569528952599195423791973930896548806341042027901028478951423604161163727630927232051743370439367032728426662671184365331239561194209742052324522122732258151751264969349996843520145411816892100748513098274211348494424373478145834767652506183793385708583083209328137924459293054174377874554556431404328874634901581078786974533074947501592723481466159523414140142912779902904743935875507425092774194320277348067676083756754397694042593072080309108716564173511152736175565025425852999954726172617609399528989601023278494422148221593316725573139434408196206200785854036446212760260514345911623693346613914959176282953176549483084754326575746483056877432682275603559740098294109769568260642248293305829717405742355975108580494883397897503323111267713745296444827554111125444641313448481988463146890157389176280750475931853552976806852323535758722457987477903599631304449753797557243368526984376439531199203445186892030125494144060107474675627156837540604297754844376224764253775420022823709717080130726301177552801761565661914743048987267919809107514720595323946302133362536525972124404886421208050790736561647967407768119009577407762859953968423727666176991768036134492985611309319271903283041314736280929546660126722271254290537010329105913404611608732418987364414082826818729375463450531329851343113134140519839752674263725662000960990131187633863244581757613584603710468388716589656817879007087906572499452971480972114165048711365111004684938193902208201964633988678804029591677252290709876577550452235556858255282782556804286493490488898343822869353184459391378996854647825486984244887710723368362311081018129589787682190966642287246717193374395779348175633977617839004686659727406430109224827959853803175524977180290510960682671270143240050683178559513826161562596053305768406592789955388143874828847526817569915431447607873637216689483005298496147973585763414855634372862562210909707912833258728944309470779017301145935259714978425494653028472465730864385735198142155050136521226462817649179500031802923855400372071617521207451603924735357429562585448126605800740453519250090355947670450547860115606811789954509803515086615599579479187082672375501063374279635171514924351585421157770451459939172769188864896189768753149971088793101726588536389446747930572252597217842260981924292042980584201793881942192441976512163183387571545623492114792078374404230481777292976715718864126413786549385607140755065589915635898044639455337414101648356726844026705423915845431146346157146110507209169189607531091695186010865129053889000352011891596133270672062191835750038557937592012833251827476226271699945034996989012374932844869705584319209474854475899541054178415868038224634291898435910284891426815285266888965668245749343703551294368193418235175043782716767540180625865144830003305792784469512610546409001318291001660218255982130912017186159019788827083344633703803518684169207548577600920852694433915554682056626262004646078215163692874536576727961707257821381374925532166178967736624333478531942678792353868014076945694314881723280281439947747398923649590683751881918204669148764848992246358802164440999539597765429309069410203182562926683103597687757595688948374505144747389050322984522438776176562814684566360575062154802302673448280004774241048397779119201349123386290904030248392614383032064905557693987220918057154195075705618021501795131264329127868206242664327975503275109990343749528773280227955994298991150347595955226401173150256776750976221141549039160009190122774585733203647734812524601896664491921497953807557110777559799265325338449231541372862548724068819051728508333091511692070678678938650494561837198129471131271733900379170854302459563944756363009888418600265744056924806421725351503294145800497004978082481738543647720415251874260762693610149071776503428310902534660496137535016509902737631136750448390675394437129675765809019857560038911511501776278650549093452924247933279146531744788257868218870671903395432117630106901694604990762905739247678989118396557694973773787413511608990141798821716684750782946655457762858883587155510119334209087667687654426661735465777416666381891722844294972152560677972404332275649436668457920046437258721075308260942462269541673621808526821891925547749719888682337705727421201086747618815924690808854344560957165215113516795392871412748610610379969001922743513365146958374990543493040386483867027122034952484371236705703426205994361422930911345776743366222175929970455383504751877726996450915264645724435184261185507262818747622807358788282331682743243094747432264570864721090670782896078268024498189994879587872121062394450157515029792837897335610955661225572232451347687316287352608100173678476103703514833134616735185734925562598523937271084819702736455824555122798900826842622986430585602851903319345371493753206332674168428741596553750987778214097713116995329578395057068597537453414701740638924378372534067945958217206129057456076488851619793304787397567945094218814843485462069345934507684310429769573989038032287670814106598764821589044615026282461643085742013539650317936170494097289850780147712832712103994171130445697660615395943735432587105660716264573643450364238211076718547986059062032482160783943943557155733074881411851310368190078038929314344124753005101345980451794889345785499005471734495587490960889288144806601080052238935020794399975799776072947042760980877829178281734322222910061613268872823391966641418929258952035825780859068999523672504710807582964680164697051140899812969181342663429625166760694626775379956921607080847157359696710906709803892827878956849347585754479866682756588296509418561460057997532145731630388799488700518386125545125174695580463129350762603627935148582531897475954614046109735567783458394282995032890699534225323960322902859472856850219303936440985695406356827250869884016644961413944245828327296700916942543494766674538008199373441413125568065054770959657702567524539763545178961283696253848510824214306286621941697794347114627074906035151333392812873868769944754957334165461402474648006853019403129500394707938483536674217220797126950256126384084932118366049702271868304071836657001338755349980713419659824505165651779986662105948303132869864865956360558130583721076167239986038671227291867798753142450003991741391967988995085216323744666336150345704575299352224060972410480700248941636950967399547393659604884811453087756919822562635341597300498296169706598831448205331470647917273203928503509013126646204385675247645984936646876805513236132159053179738640336240428597804283455071463296941199170029768971883799718724677675806984975111078771469280967531491561205800556334162048986038882490895642647772559728914810678044749671978118249712806707252229378933891869267488179589206303551871480925320387725349067031638019501742139924654459773977177521368811926668444272126469307717022910089628762162799401419512076661826969780246817161718571354537432412544247953624098817801990504793548698363426997779137585932961138975558131996722281976125829778490817991780996824580300019006025526405063566907834057923497539997199278057730990803107662556615836619128777906720618484485702412424230353852477896189702162222916473298926818266161871367208848107514263465936746606082741856163773896813010671457680880911045997955614734703160252933320302075448925014548654581883310927880434704747354904671863863970038615665142697235922742621318436387217459646141809634946990174046988631100171437885249204871283471244515346989994384141625879664137813479254868928512164216942609465224333831867623455173631911684986485052146219767239486019508345880703671161770489158015732306400525799027051405984683059971668234914059510262816665583476986335153119166855580893158281725528980450509198519831405922082028837795720166728045463921514255799193413444492518289989178834958599613069003698413054915697054617093510902494165238501747063463991639378064347494161559598407537162698245263289106769912257574119521932070998958778812800243081368296009129207974187548157287409272137449689179147843061191627934794402998440132739230081055119765342213028642881730117055324972206663030797174038994797451913636266772296581102225711851260313253403690753404810257658294484499180191159149131873994226845565434403229986493485806364119674504915168581218313946846315431398296971552228053132006270157266678837771154104401240553115335130568100618443573786771026964927852962384664449628472622821398178558930799330268354107172332126230686889157789835197854615627322466574991612690259867598400335340886874627462803121314542922994339584599082801759419523144595028085734211686353152005798082523466359260243683485872640875918128414629915368910272171780554586456923389504137075370093032944392091364354772651001538014454798348191635796117485110247722186651388101451141767763722425508358905825664167759076645648230271701371962793630960038257505580880733611159281534571616435802385297780511116070461380527003615024514533307589656737644373454252929370193779457912982087468115125418029764299307230319705032684716430391991452499929564858675249041483602665392450735390926199782474699824264272950919373790286587269030825737671275358959315245958985957359354002527999381328848156765812929170170172494297277342189298391556483610967440987783051283460490217728898672023691824718988121859852901198156519296720906886609131027697373150367029128775546677143921100658253322996786768687534812163957735557448869854793870800470015578555093266302300552406515604901335006248317354398230953556493605022929515393464200069306723165634854180619090176700478662158770279263079546151604226937221275240852536035768462942411819336073076018941115197315568670521479341248992338349985384449908053061176939876942137198832807133845392812286241861313728645676603768895930519247754367026657208430722490414616994575412305556619805651330090546491730575131294380711487815247194596944601165239495801836424179176068593533765131055231952286244906667829820095502683365094732322010935591667246158995541473315198075354003600967498776959457566106416711308864742214492328931982039760609155705898186452315639095191670660672427353934163386066198249210365277368873746711266292797319442825436517930052239468730844873982390675399072116553371067901389551778452473733990986687765382637773095141696174835217692451468721583207761569962768921365145004799174248802118030986365431050832910412891239762107552154835197319812942104519070820438592615027931507653672039044947533126746158026340618353102745679620533423498967156056723345985384130361874350053469038351644560331308667450514896482093457652742318470025201451707512021521114981169347524655890304341287880213120245009497028665977214168274353041623638601054776687151763626378978081527278458474195177287335723299437588607476785191698843596727897248274774718587596034251472952842115949039829240367523570684193346552233124043933107585125728836243287050438014013363075769479608809684564536071404409846177011920262419263640260693496170499746829142255710991578282870822856460436507813142289851008582819544578279370100067048842132654487130465651295038900693125719781113892171752702501463597972779670278839101425529868381534758983294949207631014688833034393321689332301675917490377339584040742591141272708483401959881029693333803929279822194427557937363021689303041209180603851333556199260247059268322347044666871756123084405136251684291784792133436668862564874619153250885620362661316055736698679027540151610451942332348833873134605489597761685259533965813370290352385331078883358739485575626742634496058350388950413976835707018866753768660354917106123785672565963839886287431133068661503964317566483715265855360981543985937817191410288748270681546146771676467642436353171067324213168603738483344100051643946429446429405803014707477208369028900145880706229734406517826875727799988838538560501042340911705750028282463508669454387657491016481733144072350350494451635717755834809763776687594557258044734449580903300311936051074594443563924314694771347211437153884606459181495381985590331008695976455673821415228307009812990877934268145750278178615485180285149198883385661357479056486447965605614276802806004954265077545765269346092390490140631589184152162706976921394909573719212976968267830866208914926635478484757024516427311125935758612521269201289411264735074079684631651741077040767341173897136273333074185059950488791721134358894531114962746104021115623367445887117623815920947210628242410046224658976470840354771181156749138766790019084558348409499555565073688414743721975942191179476334995792373591297618075518277733053428673239701341895061504282797705022929635313970022162716433985089908186859704548988349208948913395322203871549964332705595367892956029176201787215180074459989549887090687454221807210212595895041132233573537461615353509170798390612601507031696268695887658755013542033929703660127345259188903589064813459437458152186041705074728889994508774914647302894753455113692920820217634431219167067624798867450054807608706953944037872371742204403386749042884378557817963651686247012308651726837100122278798978557268883201560149483277896751054466762663025074484075636359538423674558431624250300728052534200760420494425762169836137652785376085897033192701085893126996878932471036616728294630878852577809705730092104533329376369023411043488529356707555763170269402741631275183428477758585452439589970710443258380048262294795439100401486953739537452664392772262888504870578702494576140341753439873587328272190174303968871944334798608194142180836309323426960845812475778331759253871629822762632813931268088907627837916469051685465576135356902273318169094590042999098052024385877539118774135308865570867424571884686166815205237140568423300963019201698974013410725893432982933955762591782332678018776743940367215506469228564387185426799561879039565552762846800567778839992972627330710585005059713165648140837308538226023631753112085427840221269957713158978279275771559742909378886334970329808135886725624963380640773457135524811208712175896659900145194876304736005852505239926843357687194959335779478733480385852523302681272084945260895645451200742735441954164745626189540599243836108137893397142885160467881070579491209787752088795135151817313468012777030582814377157838985518111030543268142576349947315626138841937300215790116985068355388261587986853059216167591191008878289435954826464764756564629637427420645537616927681037344683403006111237372215198674846107314815450368596830785489590728195759931252168271353007334162567889495316895139710349896538662413803708272143313073522612983350782526745445843620466266507541865993799174101977743936079144141221076504481444811379592057852215018801833625216216258034293786794161026560744171373296606530141013948223182169337297910460213692351397264826585720178660264218499278058775830870425649308287346321271512277959513964473825087750029917449481481289346761276533737325552460840772573481717910581742766757612785752037966839261764583279606147969029731722220420449129800632948959785558892131142982916289925187092523333026237243911021450769841561417132410232950947581922386517081392045372186662887533834392803761022440706289206046482206483106498558905723658558202074080342633428061176731790489719590366113797597069520210136729060612827131800121846092369572478957238474442165520045038605705431677912157323439322285695673371372019366788175793284974717205792321776170956241396705124621297071277911931681395615970204589382484276960221396028729304807696957843382346126620815709106580215808317843210074649765108583511749610035029370711128226523716759860376790197323292884896154163829301940022441354848066827284303879207355472189770917429062326764008001437423381803764009574697725228589528140514898535685697719878849518065160880997682489942838882195139257509645909384344804828046845135826739282003612115466048808447241730829644139673150642700022445361030770216582095993646668390623977917124466078470365634444289367941643544825006993831515450592039737684658504894269691050763731339997537657988952102450333530647578240945027823313833366254400624120705754384944498166282103959892588347066926185165165530278957534031915463578407038750939279626254030956022043890747303518160769482569572939557772607627733695706125460256481593474899559882238617945557053175647283949082310805623469611183317772949257839424299497648013335677267626634392286406271921583887247252296827569066138972846094436202489531630597159085298693149557939538373893038083509380499269475998569923394935652791054268673458744839556297449289996717028114411573979671161984045161423624379505847680890415290640373298672968179370474678227001384400270863822273935650592306552225229850633822067007467343681063833180353601389280547490543747010377237588967116262792493209244199188691746990681502398465425229484200559186042662293655509741016182429610283024374253097458088359020344021658044062220135353630020138221440140137218963908242167228209356975228128642500529325237519851300214947896056828316065053995030340635122999795377038646160848358885152146727643186240248102733701125598565153629955108741915151087455219739466062140072096123617227411045528163312455259038154602922224546040367550486572321927728577500038337966802273175150397447059382816742931138947127785984334404954910965331895711772638791766963005434226642355909990107326800426808512204536566743588531018117972188321455039258179075715431899476099899952968763164651109394032333764399800246660152038149708822570624058028869142765560115166651216233115486509903800427920295297186712450647856425142269403889410468802211794020002932769686768749278823555973705895437983395273457478867920653943068528733417939536264826213041470994971019137552563117467442708856224940716968927878169141620895621663055176096189248057260932372297669683452962423622636262570554154924776281585606540550736394219137555012855223818766369584679896865148304334526766639443372165653546395237414154524301751657347867047342576230252172262691724036758761824680511532462198411557081008774107642548514536302611164906100240754343926657504469820435385287646700977624344308649143261827514527044538585228063612903875135489841684545139888948182148452238625916939656798224003635549905266674098725206494266607377891382115015080719324770864341923028165563170718908989535285304538094105781614831466181058984320441936130190386789305873742225571572300071735212954289103978471152525071963731800214254654314201671305113996770817674616882271808259971388015427302946440890428412033479349887722372368508638288745610602333424601695459182118606796847259237958283120069624577700257757329762494485304364557254337443078315434349714665308566840959693330470304694710442731890350354908039064302329176279363376055781087775473767141666041449243124471191042310095207501372552684421229286965239025256712143135469936343575549470858094578432540383360879821685897193653798742442453524099961626629797150496661567983170088900156256412740416668604659458754486184102716955140056970539187902427054920557713472606022457173180445565997254242541355741292757659290786711289655879567724149698154319549383286726329620840107922282183124719546346195264385896168713295720630642374313928829875658228825524974982156334330828873720293935557246674207919910873056288046798830406308284169834702685063292409469952814401762394909342042530948653572029952652840781661529704872422403139682092850486907413162290498946030690324107428731856694869581775916117420412457354035057329367731032176149618571540715236967855025379222717025567504011758931059831638126073931482862942917153105538470003944760763127688687215706801011444658191377917695358475043142213527310311955736750073428911702247741630471762104110791580476658618270281940992942723209448098463459480387266752809053054465679416316345804870941398439775116592577323710945061284348178049901281397999306782795959276528451887273292973936284207424683905056894380048925671940857443424999441651968155319956676986133571009156371067282293757815739769720449374370051340665400083102394128034212393648704638222868992588695165883843082797908206447311665546709444971553986886771628278909969502026669563366100580523614905642485906068703103737188371766063209811773571370160355234073171898394930700540872973169133597612877115513051665672996778337715594602446287339330815637551087915278299762449068506042819662308191816256322915907341923356595308738980171808321845913381515545353553832609178927952614671188819384373941642554429428973550804200656255470226719718759042083797804772782346449850775597297458833075026984866860366200758266563752132357380353604643559681500741612184254556214759745298454329211107635862923482218499960060802803722667005147261444584357228250967530834280908505232752889796557921567080160973671583667788983439658564742276122578685815605049668064877252448834033127143397356436153689640014894675009919956793298686327582900718212507647029036748915372832729470559468537333246894289322351080520194926915469527658414908541855209334377121659165578406891464328205580623523603904554124238609096071998720837529818148569756737231290581290825338349178338600901536008658340841136197316796060715757521237339596373895917697928923251383563821494457836261575455947527710448750928875436273405320251485191859623612560616048804376707573081979541505414125135460488222457229161091024882502436995075584909253995121061851117642702097037868477708945015891556368993447499384700969934813346106384766183591070484877691487147664843891935936802466410424603696888542722415591147966446723969095569308543460338068724652743125811834364066663066130184352907477843487293408327683745471895348100112429802118783822889124122428886944995930082102371607752857965627891475127096399118228584628690937921271455940455406444920795499732176593661631759954431335540504908402581322838879387501690487829107489380956136157904799939407182509619088061655661757648779529624056310615454023673845751533440094628454273977738279249614773274458494126942803458887377559918668117781899538460325453862659822515817781580400583249587414283624136608657481399688832769145320233870000154373923602933321726486039821292464260530729350881604740233890302784221563515234668223376077290253866104963856991915869875984605438357658438624221577200622453086364825851992011071277586301307765638237676464511471948854672672044608762324477546170008678482552320333425498659891698050311012197271710964757655668401339263541668120034822417302997922856421244248705820909589508748831898291395583663151208877106032232248244360073546884086211582086856756598430073666150389874941370778758962560012380720085006717621906752857581547743714066216054168244401327973092046438164214598305488862555366469271602331410314638494763841150896965172997329556170199318447994207334190070612136638830681619914222354951602028168167747900235013533182708085850116148450149233451542577779370611433317672499954009911157225545958971114533028640740576863267926357891255251314756107521313417324686271143052657238991844515425894217498115641156821250080925404791327837659128629141674104183349909572851524950306901032493793661411645901949531874257291199806683046863632560522433147528597198260321928208075335498544648585674317413156284886535617640604009921506029194351966163183666466269959480037948545132786237511516945806934226368636675617181143782818250097003979284468928360421146227586125405433175636130617331479594685250309548756512479958037513161940225667855107163672964802108066450377285406927349170816857457215599759906593571446410552938333792600336150988787841003612368507641606543761490064833514181127632469814162517365816805829125368047357158191837038983595947888343112618653071217718707595069757829283235731756666795184152257724452240682086569770358483523458810277735077334035258137293915229020788134607942252611068234391034310662747950682745509276836762740283842136918160204204481929482398879646481269048769073440208294843920925266490186975870215909703994706314267597927857403083933232544636411128131629207886209372258798792218287402948250198031277311655356753980450677845084565826425861031570726645190636010053138472042614889742021383740593489011170234209022543932306937126486379217832445138456857054775796957846133907472749525708717944688276468097919743009145663933547929242219957506228576833542531507394753726906939471235370900868062661503925098865214632765159083809426842569691241178833422201375487245806959972024912426962576763959637428733617061370773898445043014889024364728753301632428901812801750876612897884368177614705908350766687254259940081206739602569676226598150969702343689564462209662780284127061076403990958593644704118879144128104879921462055917291055822056838232848109108999834146703350594131374123040232095123139399637354034793853601546591338988253047405377480922584483506859400272418042486960804772529319857891662251643060593273421199191061858528793225815898238089692905223706738652241983927821067168876569884227246653728096971036692244778419580015668648581912652605705819599303404164344626771710984718975432466163253877223008373656756300108436249217850971157386825566819481582354000249034019803393969243629903777723138415713591069218971037812294736448914696280088571630669992488815645145244687207259584283801411909074884165972285828619153560676164422137797710862146785512536380094064246030637358903628124198701200102543221096532805906115025433355805889861316733029931669655833089945164203851351390733910322408458230178763612510302845508732948426970579415612905251236739703577018149102264794172574300764240915945544060611473434342000697352706169048845521221076856058880134756194052706278576499502254913070868235244161531502936488450262714388933323133995693331494212494124661197894195419392583740021867332287477150870563493404759964358666088032171976403813342571357261782482559764929976071456965968747111869761106679119232782082324569646923497955663485574538315945815133036988918483814782052042462009829692699836397152617391211839200142714469835091996084564244337673629761871936652089914303699546336253728506693938822410575077748687394099701928330219025027872631065589452805195949459874027833824419594873593617484997539641051875465942977782921117533236039716342831415867774836653403673041309572170802204815766321065926215407365752415714972859319431977542392717584750819639574268033335827391825254972948194260930759612637301458263751217059520683195266161306083310193303451380374311381940334049705936374447809685215691698150699791163637389226735446621305345722313586833648420683673481671212147614990780106071194982473644492925360280598987765241916360402870276978537171239872004592547316847452924818414912097979023477084638049586713427559523935347968296194125227422355758988517667694500031910492312471460935035535608940530276665992509958930136089006643289239145986173152591282346243634513523919795968912869393246892001460237924475021015556960054758473897761197642899674077944618303497905338061604668771683930657459373776041564013079701254947771249312769770581493381002791204148731246171521235654411992638067613421940252736156507148375836002424504761818894649830274243024896995617646086375753469922545937934736536798352376389593891111087865923378798803357761582058714642234545564000702760828407558668384221954713733581643474069839920030484568416619564442337820380246307847966099770472463036315394743737570681473825902124131281076707429478806797300321500149441869757719631963423093607731447378248154053999185519382251299569982601510003868824426678126747138512178985867056587501758532353243671673461925586893379290449952553033221456650171328912250994223768477941910658707280311826610903192953768048108068812580648452786103986958183744115864334115544543131395368148445473554263994566672846011554154936323011397044390495081650919035891704561901149182665776544635118787191777580305167271908235008307734136212111573520813552809850084741152298935534743169929217440613435535471523912900511955634911000668999240085436682183531350599763154097752222096097481332545713115203946271053581905770369924425531111646914877149343438905542174819221417966822397790394863774035017412415712073672013573094184631942206811653711413343351514179027530602010622484305114450948571644502168178591094108326098023713718569503450864162318433366786322319379471130313523239320392592701037749291808414551004033958530516960118304583943560418086363115931389637337631003957864304845495772448009423189912121903574332009518485821002218487263457304052562436387291889176571387008317428736662496593351890206642222553578592822617647733043734570399125589993288307063294168822533641048862692834529188800831284581723294633221397610991851508573270754245819034321636982371976948166982563443753213358679971896394937989270011313843961766132874375301727526384750755988789949607837594639418689182630495954579922779846748185083590070463873462069578891686818905575091684683021878830519409714842816723510272944507175603074677805635887827252020946240407708332447938544296266547474934335615099162347830415274839500113663387367197430180098014405835556780062910583271827120984101272523213711285049717301053211111740283036386460542044506081670999428465243430068099140687710287995334980051645299981702788199681245866451309386047435532608142270161862988585526653276391884473677693349933463648246337642291825527739478182387047928931326280171845636680520454915323048332519101072572332523704018511316997292301596084431969054351732525695436985852923170557795402782886608149084075871562212643244312946290221726643366083650607389307503557481626992625483049184446313103400765964960908659490827952349407159120373770867692264523485741657100731864589728821260752304403613416310870615234762330713318204668743672534222465285654843012057710762228039565008900095803082527699752115687012959104352371156652242240129612304946547968633920598453996247542514792247480947542138182765515043306871315657705873599301966980998873005060359288322798276460340967581295091840997999728979463270298960457503209138728118993880036012465247928934770624391259947698458793542036558522471123204739931952504082810294089925319256964206300577881544630535534680227445758775133407609622359961513808980880090774214942573952882810026316685019477788517301991991728373713935989383914186411289553372897532670819711092902458313423323449139299969273983784275218725385440005859084789338566255733467295602909634698606368358377260625554740536377523837561921327413510615199781790855199426592689070337657131609554857233259420646847945828888278846967631886034983622910744554807439125062093292572540676575893920336300167361080712904171140699128744187028972749809015831557774382136499437562057078247324982103641949097680978041246312559565802255868054407264163648760453299527276135715850785204263807910250561361058302391574153820107906702110386085564692470615538642730749463269017615095770478118219938263426517064106358667834129647631210695608637464427937707720783051741757191259256774060124373826443889917845556923418575722075462491745376321635197865768466527946625606795957963170437162234491053820326951563055785582385802164254751695807557756119249885897876215975242210932964482750828381180056487706354364542880406929278240544866786163092448678563112022037300703943908706030225399021599151710934794874050046715763438142884181671408524921447659995608016684849207744148969877124964831429654847231484980583691773126494317583705069900763728539274598371828053135540813117887229958861573450270384361295379791357279616670618975686265852198838688206394204670999832508590396623744993358934744196394013545347487334577193545623958012270600647640614057314897438977809921943539844611666110863966135003367732001350997398531013882417213233905518781958071316725478483319915784352706616409275808913288552797880439762542426388135878525400452998239154277055728439002404296912413157225933855231576173692713550995965170285951885675563627483337482948767399711748120032541166260190673518096475133912255762133061020079743598032858850229106986799905934822516416321448368505371871893843576748150418376216745520208499194323794087458593143257421157318379086396517826627082221543563194808129666060515330819701983181631557331912217458008972454869612219948397204333604717794100523446461611042025321105150339385716943275600593856888406624532822100019081673191533868267561501052860375405971682453853783294672775180709500073935841885235579012940005511065576389980321455441624431617943765407341399243993987520739290962985195223567385014126970390783270022401650431302568261375112772489982384803242750072426793466887977697699832038336039456308393795873199892574781032700311706464170852621572949581187824941492522573251658132878525834679703673876853301475310511852450630732867325163910422228778764588086789980515605928418806223247152004720055805043229989555350884185248698028173179131916577282813024876633715459404174960454749305093868839864710391033465706083003645123048914942386352205586343221350930598006596145445220904470911603806119057268448513254910922556143279046467104214701573960750273567809156886278507575207431958958428196410670122227340603838137448460943534534019919139581811904158165862483199537212331871005391102688875380750836080792820506392268294812619356090716408876914144113399065753433782804937629856907472200052186199989210335082312559984407021048030666308237106408975974009952092042537752563418273639137854571361682108326432880050252542236632077753898425172094171726128787769122119778394230075670474903295860069778928186846462500654067626674024499400667814208422351227076676946573202418823312903093568042859671601210701581045713530671817283633625641580420701905687270015225217312384326760326507192173845290168037914886724560406108061612410526369187282095113630906876846338583780821278498236756424781056106261044766674891923086343949632081947990141691183938444942286343602773284180284313874943481346208060700236322556539847714987295799127658921356896975154807106051030983092416245371985799408174742293143576386419630402631461100908520654516094060362552509276026563899997312530360551014149951014100565648359247855657220420026663351135755122006055897830029287421027231221436116863563993335637221289669521913643364335606827039769398150528521911496841448162281832563434842101953394591369339674022811687652655057344276470089107762064530957662916923002304605366316158197986260308019179264174333674956531044134565383038412075542691361730080274296200113216787999178921819570822398547142502330204853742418697494439514285256895700879989087758020709144620638567724941352067608876734424754599061623877538336220395510000307083986075339619339752412635593967046435068796428815762919355658238166208512200032805846985510939248160773653476739530281873161886245344362160021976463107079063412119034780939035758852699306837393858851383884468067279733124664411615284728906978442509105923181095638732239502074400793590814541366025814860948852058650430701572159123193413926414590989322745231603048106078358008373971199107951985968273892598837126764261790336507559108142920684256311235413681209809550101682137117766420230957896747154156900030174992248185741770727042149307253182273411976112627510776406755809836823876470034492689502140533566845329735499671778457034164084837709152425478872777978075983891892759525298075240822461299439281232764252499608978706068560232813449013604061073912530981294130487656365072979077219465352554994775821367863522005019742321776477314772909966685957504645653719214152212710485453848309945087190516345016151229127439266034552617248402597261193374476757713195507001873944902870245164162613206946313815020734588603850273057337508881406488174077448961572829294738340129884952132806135694306409495175503248441105588887274161827034651721592530272602809558717030935206898482060644824481833128151068810270332986285051081818563249205372554251117240569374950285556023101839821490788061218646871218825017791885519681769143667900018010844683297762829420184749498952185031725501443583501853657227792631658862888051911141263595045270110411876189693015277128596599324276744393348946845561688248548787587324277975796211840161874590692519968534089775386836534547477319643038557203428396985568266605636036411924879527566583841083621847464021902706860693700781331455834575927642300259711498028816379274989762641003454580262718158881810563016042299565079338757011365685200981567081323966135124602798459649401492200838660367398145196721342257233262387389114355012136803409875514035510317131722346049616513504478944952038587944509913759344344976039114020242871277520591307940357344593026355480143364948566599031284668455701073733145948802485704361054172831839386193448505303957499852839645341147199682465484680983927754900998441056683737394095046766191848414984483115949092271668850337643623845871806033368310058514721363141315621075471381649075648480930518923341097379104156466471590092101941109347990556934370169635183554991892422512573990152121656824905165437669607829397913598929277764431031831867519568336728499835875996487407347852132142635731583008959275967499075469597176618661933743425594657793947150085136539026603815382282543794088555143443450447275287964318264170443829829498193085252669286439507081526752159661982951728309452242635375124037253748168778056139348033614444267761377547661301670818957866662327931488183966205354220768976349144829020510948089914522910091020117648568199461479872360079990941699370925198105724261515195692462737889662665802219699947008647355663696008514183780456680928241131601016550332740924479711939423961114407505209271364901665056150094355509973414620618839017698717110594841746905634072395645290004245084073251205371751158506860164447351709008691319706880770136660614548554690158214539609623872403628320286138391763834927011553900674035384459753257714944148115055418620947614591390779590769001020687141127147943261577313964882452103448868655446594723691703373446462826313327324068601948711877190030383831249824710913160443119691187237147064324991222617360065971833765296359462766295124063750663653520289629616283720550541699890732514851168963180617788901970822722089407183292905934198331187520447676190109558003354731106065152764481491461402917300084292112686729842265621732787983587541391749293167974555073445710795059440921929800103137399676447692943908476006612985659453069768756353648523475831041143231704235267425145167538244207962991462786195407307225205958861126604112699791640414916480577229891040626913449189557244967736864402255874172016468041022182737386137019447378885916068688933527493184342633492564253086451540578631786683106048167873830402738745410114678781054787430148052763783559236846835158236377452855050271268381452119458789508085554239056223997315875017713039482496920486090907563588479354370043495719555603038273836536171698343250749505604973233914913338364708002955178599445267535475025479374185747544752274877249002844417905089934260209322260431162580864245507295895122639823450161901244257340411572583742328131845645775877482422316215167311647284017909541785713162423348460926755897437127762159473299477527138546118843226853866132021099309875774509348863453148419226814324180193303826024912724694225179325258929820147467615666356207873323220393096587209362765407605264050320725665864445691330106158339041828419934534341519092203818308330376713751896541729854928827675067140898921623558535527513462951529456873510541274011751925544551247344354092877656297170631531755973697093938317361411460383835567715629314354515413967782734237713404619254007544547502099272185911710343725899431261374220381155075750764124048970957382222240082540450733944282203045853947719742642685893964176608693785816048770106137402471207779747824013148294749775042663353726746653304097030531058847905795855976974968792927840161266162473350272811292936714898245257397966812941356140371643761178498458926201221561481746270564663946140319004954799244237148506332826770073225776585917615515393182682549021578711118559266786062926694205375766566467744658425894741297820936130794132259763355531567415235088983864765036317820305775339034962046954005010815255368267221371692310403479914556184987711535544592830485662001840535456031609343938512363577106866667874919943779728551055613825438937043850565032726453521677797786263687969599195032308399471586457750552278583287730786387536906144380992174110836985677791423108196012691326234907263758889495408232264810323134628038357527198404595830499772567010232494753914369271318398213170764670201280630086026159363215870791304484243659590233837972890421588358414444195610186928072576909490826368928656918309592813411602869514272106871845176996204974432670135991321198320469714800165881101959945568745528919432286962247447740037731870535953079995492055186621324220892796419977080511634396084607971131656375455229554682632464230437369141708797990682437345518254467628738740275804499569290695226286123403479684148826779489546374371590405039293924532911875950246850387638242519942075992805142680556740725311041687627525210248969011515146173736141615216277335625244743993526176909992566106698162092552994870835384471030430481827239887309574630400398580141846320671265279538022330185371387995074190615037764423187904347803604936225138668141842032970337767585559390496359677962812492499273993668052313303873390442810164315807401803612403702280764847988279723954075022119700234201790437766181659726561581745888591989623140427685427613531516868196456747047898371806399702962036385046992156043534766551444582437600778292194498542483778906807670160632874227808547901913558927958588063303151778677244502291016912025733405693851432445105858952915216903278481978474549087515860815208755393450683276194221037672641458729827145187829871646461974372331294429602100801271795969185807865369185262279709686217066775022170267272630177808339327099991630295149301629735255805973112070342787249931623008131134241598607324364467514194789438425187655495773225844293052772736887409742333867371876124116547081455496734925088094524686132195282642293001139545981993541514790625677439491948355383299605893679349708420964050556071307890142190442842019793089793114459730530524343949362411832320237033230534231970987267029230960657088541760725857353066631441203852274951044719208246805787494688373891506211754586417447688149642574197450340301362914767487994951948702375161126276684027314942205356657641727238856596567453614231046521774350003376614529167420992590365529496025691789296408541792033524552268669752947431927303951317604804296487576669081609221727585899334479959884900881289038710469065857514948289864289547248391207624992827234125344847997558289535473052470858970129556143368770536230968747355591237916072460558909495880141984565836942904907573976542702711506652043134487944092982352748002387583940658726821658452622746659701436507082355219454441264974580926545108193316677623416005265136641025774262782948312405846861364539359091747425802979569468709439835955462689587275645285048336762715934430388230426368734416841170146018026601160304438570240602704722859279098282477154615686522278337495295675343218950727749428406597902928182332850966315298177471756031327267228171971364878399216599464943790670841516070270371028381870222873770279415464900245806735515315379618707782092022712213340489686460043505621890173043545180950711194600262949931708913305202326951284164782298057170790259149122637864414772382939426314654386756754224697878511224661201880882737093739128257694937280291563231040698581365518901638173502477445453057374644313941209135432068273637083977469197802299419867593245307679574926150670336519429750697370713578821199644904967821024267597772305603425473291017423953477327550734892173795230280809114823111958166003478877320617735522043384478515822977404462810178829828511471963259697182342033420970832974039574675332599450940212859357383249525173235224902609443096799180227160238764132574728681636729048170663517652437137325527140764954241997901032488383099630323507758487515309424826819732643974115657942484641008367052008140796268740445327913782618292970981727169519276465251281111788533665459028456015474168513131891274261093428435823708638417108387339274025192023018823687716767305608769822742655601357429820810500659458852077281763486307767853159733392692467242780429410571756933540134447231995409138131716344841912596802050969643148346745561367393492242986765519251012881288396757881938895233841301738521489186199252413290325760134839341099476357911445745033193401439544349235885920456918308544542273455725826091287083600555675669238595166351469454645005778883214726804324897551979053955524321113825248020132541660712680455461151339546082305890304102494849057323828027336700171344652576439089502988896450011426794352559805588624530771550623540463892510804989961604134997881692112934156685436804222000700701939571922413438236228420834532242691274552703101607659438835071305522760535778665139277580427574664901944070627044635470430033338625615928156353330468126123602855465409728041880586611683216357461627791283813536843589231553026285950154034528218437904216609429045756084614426479445614016591089229237394809441410182182787267545706821841907766090968501460896117040071808323034826930248580876883813172115332401134057396080605983277481596586320090161938100931257998767057110941788309488081857263153556211821794114005170096890923676114194680439174516942590035276945897037915140172406346901682890601249683525272341083789581280848087675480506874557918659760476619652956513608965757159247616544243158441950183765425158453865030979396374729750008955346758194119918153971224418545993628920886120062273791319056032907546596384413490896985713260151255221365044191914943000311327894901086647232817386466071963130022428089954934512876340120534218401731532325034401966107790678568238990341061320977501162603197936312188203835408461435428461885079012219398500720981964899252262143349223992196762457777632474588480546577077866481280875682801298832665814956317998016127526490413334498115930064403999287147220422407079356085438904985348992114575990682412875244766168233839485723595557124951479507686089657059191528699683607434137714498331689245882335083194778541640837035615597464125286049361804310253599795883812270266279876881938236587089081606888395619105843689832040172284279675365879914631815209790869122641607244385068755499320863351839925984551541516008633101915368610191247407251964076068941399042666496477423233886706793665418990535891372498329730507504170181060104198677409876254020529057489278977916071266500153019329008990723611977551578257053789240710582610793765780862034379347621225081631562436003683626876587888480879885783168308174823247330497534204135826757519169951715719843055234093638442599839211556405019890807151086034197644660437641028990868106108557335816019591261308037526202811923800448736756627404974151082668343171073167014977951995492511320749153941565432085325663904593146907055030193155809770348943423918859114021435822161804140857348812578601942850990864052032375589676266335092340310351754896332217600491980493023390494902159071213724513595257964788174995312927062133832138821532211824095602024192190275566296688459670616319556311690731421631474243310013203390014223209510274740617396254685095482831454542844998665013351332742681046923445675154463389257480476835921737139651265184953614784321959345891144473640979554633581811273746674801199279918221733462891196605470900791930034241170613576173746714572859233313403634647294193216748731934808181344504910770965388631006510177370126455564971764658624284526069504820049367824868300439523432483703218926183331835642744422944787287302134863639834092626294863836558904619965010246509660846340391783825988922989278317770857055781727521811978414341631797902885838817920253503671960269623055002958117403761774237062502798518334794014504451016210802186866235829290232358960739184090746427228092639586566927713150067000785136194463143508704741969200395063320007050080556977410062323750059201395165884826761978067518590778363318825312463323598399499139685981824232539663545782338564820059034937476089948959530487818112868423472140306227673931954179123465264119623123677759790385705511426080232601065450288373936272161390818572287335582161712004078944893808518515086693902552748357295790349696415624360114244104203395626421527779357555562243394469796957763470007432822578765655710597837590027569615341707997617435162475566348523907541048376195514963198246719443646284409345850077077287956468786591871445115369974225811682998729331690985932066880617262332465021721077247888414064250094726604763169505123980872244818979207117147384304740593890221593021634606301279769018494850738296373730963095323807176367528420427924359832961662412292144690484115537434288746808618266185713403944403591755770857490540501082059254982565237844745673788100343246156200721279128787336693194545196564265813893751660884216663336116386886886422542279588965500876830300767753122295656243952367321870296729450845464578568359995578145057634090095457957619867664604639654016022871698135684735663080967360125443244516739008158444930639408603875330420912846219641051853651878551091957792744351029450845245882209904993993098650419819793135425461785440108752561251979673518911908514135162885003046427576470342491645200862632864710110131564399370703374171892497687039681946240484152013428919576876561921296672781042979954883115318711608951075102391896632665077269507023101611948439542050759895591789628578953208674025932846933158530866218400574203562779743949299886410911342977194811488753399898605383964954652449883813781383930975870009885598072875328911567273203427461650029812303057842837638876353823705733479891360938864160507214853723305392514104264872795321099863804901715569066310019761195891782785757415134115403451900227094867729506012525230013229311673282636956765558462985017821366476831616086620566180539881109821546726185962979195659962289696808291068479014155677994524612601450305047675324521746096089162191054380839011038317776397451107958944877437373009605774682813937433031258826534314910140272172323651683430001363721514165093244098011371980160465944600150496796071532482998323434339958268914271068319560941478932532797315979738122746061177700659254161190616138726359199723088249358163144625184255961370381965708674011920004874682939636559156226330001521994331494101208129307784618528242849309993043306525715701701730926770425955323633987196633280368287329972296398288246798464861010073846070818262511400888131775546194281495953593184124372164868937169674529629496200166226422188325413393087402995395449612775098074113507278685777485027696724236843700183472891932157599315468207898376376121102167771962196024333407210555141096096395946249086866374552503333005345166305302215691725434565863808017176254653201706042895129732988182990775263889645306039903967649708225950599448919368494773171467285858163456148427662471700692789347222423503917970450455592038759474996473567221534729550297038554763470186826333384810360739787278917403277135266937781454401479300850690114133845768124280736019469954077143433276788057818482325830163991297600305542270898207840723216669966180810228159258553905766507332043183796250810422009045067970326042743100633473445279331016776457272581938987355873401779605661792119848979321741111428666667377860583843637084240299166240974992572332637671917254483046558966181205605766605340012790486765559641978717755433652789132564775036032536044485772941257241625748236355875976849501760058625915782039031764930558481699498788190774482309880456395162020431555043265661781275273396675475889496168228499440891254712807698274112882782744063951886877253692299241222633073235015726361870442532347404155920953262616543944714428642224344378493837486336751803039065642466552598782449986753569889606689821430209392122674819357152683889281799649044632804253057997098055186941368349751430278495894377842361866710320005023782651024636603792797723195286593146500891962625583979681548369204856029959155935193876595980994368010927745457522640433051638569177918513082753348017738561106353413199967141685445615039563223667882332616080664353560588056855075880438855188928626643764393093067075808357701551169252491317414636261203407865291730155930628343901337487220911342018825957866514927869628799566258305746801545540632958708051726375766188285988570809511447815306256970453433177863724350045770922671734308084935472853934898328224796794579182426697474506512203960877602542097942645722128801332702921916564838909396286709382626848674237765673492009547787027646911509847208480506798725837746876532909216393573727949193749824427589631665731947113922614918626583919928299456265721880589861430487562223485454173811521704853155687539205094858706566288826449058848964060689653978246243968860193202790707351014087974407675684142925824637392732035512219955038883748302639810564623133758155616698224258589087609256737475439929926103563121735480425428262970796049413621647062127708963974039557627760175595669947836677630380775378826980908482866811007805574941851878518659793828203947516821391882869489274835448614427189163823985466945136110736674295627048755260576516071997314879344984238881866543005596341434498741578011934697916274817429343503977993838860236444293300737299051330218025651441087011380626348108300310435152452039800380854148877165667539658282204670858758590323310701752415125036349134958780892765700087259079103360114692163516498752209030386982261621429393145397652149435054593442903264537633181281977239441344008658558838784366980374668795617628451101993930242046779396032416796697584984405432879554754159567383995817469688439485510763510912520205410193033944149974278230977271062104340703147922057448671461432291137349070849169453019793133442032529220543606518205741916514821600395506879521376537428479827328397419340643852543069982721295471178215043978250101034341125342486929490036089594441147989773359841747650573975459525107324284220669107062654195131228054527075181456813846655107125062743005201323412054960417815568836763987563976089764762872589748509384504503075249970463627951298813971385635331406224409010679617432750394510889894386741890013146858118844115416885231774410246355059649815510686429043251268609727498756631218602391541759188457374747094164771604220155641011131010520525514700598216329215096916573371757111187449443646649781832390289115102425187643828912717440729424280476320126756442878766550692273776530258849738750439801417194082681926768168269658728762458020667069391687635627010798866200744622624774770959788444117998205856806837401744081862296175435188341837233688998028402239005081381251021407796900225154463365491462093421439941130764473577046638405829945093345645738290910243619754438357067288510831946250570746446992485996214551624672827522523779137451634391846729560367257143839604474863591121626825253712623706513379036333588901286811122063245285956862580195696181883196871585424015871750495920169811414788747623701873626978936584992006700454877139721601429168641906080399428829621177673456883527894744161564339017762850499018415902487334974764479544829526121851773658580862932014057170728929880909604645695740206809219467151581434121981801221355994185067797998445135127789118453035726163703026134905517303539114419287765596284305546636619103492587550581303140630873687618174947182591836623070014025622319360537038060262586518218485064684895499270135212054734970862687933095599270041923554471194572347758635499485410851300133597725616526412008532158031414479399527945782144756625541191119314502247172649307372723729746840915452916591347813213033803392171562883214254480149170138941213090684177072353076278759770969449592958250168448395020037518799393382882082646988152740031394664246346583766213568061466088202542124213103550872923741428989121707256594156750180737627838749674042469467922845086513866025305778497070282065448690693984712324106917431486810247806133028072847143470004487728349256646140122899007196842271510480883732198173264949226069399193786023155641021843475033088645013401284772518356443885449168808092330445083731236271109595692098961209180281924713712515060077878869312184564432768106724192230510496028659113301924044288746076444258578221535371892999035430115484342180281596263592766515126701768084631538558577556166138343633779118231117360146287984832637041432014101698389302946206150043369679667411733330349471223214039354545799241883677175031302539232583446961739541085635902969239679301757981570026880199518574567323566473066012717473253525281934515350248683939761165785886980557810464607264661719268771667297680011235960530324173226295694686510940033975903399012547826222140065902791573893581256666119921948759296224753627787244622133321652363069860602169954734102469586801424209123395052710504234657185099948342277553763078556517090067697777793816173786034768468875716220422201073246511429784363206564024956590200009063996502641393193872894860551954125122548722566153593783853419368326987377609372289045897553035986885010817572617764047657975757201818629617173544686988464338687913579179131675211953678670083687664905730763316115752088341615369236469230533513069261503061907168010908332243762632348318054695600716448886163326057289939200181780372897454726224861458501766700099399756207294121258819901842595612819226440102963408366848583095580280026773815028790696445074529606160414544059102895137597913532506367500779497061269384164163236172448768092355569412315439705532185263823834748292195486079103417925826314779627512737124574766922871463511918168225231586020745962071895959159500142340542944754001327207308016348218528603494678312952592307784405038555958089570645225856570357945440013800615217728298307319167866910247503170082801474951238656680731133197239084993831120495781238516445434315262473376096745497552850702605222083598901982098154491013911209133743233771557736309840456829313358155078453840541019603814492132412664052033817826279355743781350237143744515094634311968523337552478990603072924474420167901884305802107818263141302469563467938067944926562234617034683645470559977263962844411115449887121238743783683552935707812918095705890142111971298164413458408437592345825970857652858301358118486521353431493166982810382222498704641168591955609830954388418225277193282997058398406148594453097425470838391691850056587855646608275789066015136435686619518598786139321885840364068626555564531433101363545273778424897180743361715944320244920290257894917580291795719700965500212185240704657265857884932111569048497954207645921340305112957783521281860980618028915943481674974197825877608664533804812003895921575139362860618797238131369536997600509107766380896425323020779175337257809452899027587463752246070255683841270787575154426309507548326151468713395313666882627294735267651054965198419057495052584504349193421465259360788117467472871886223627249816163390904655165185676267447342030824010377491866393055898532371936551577564160612220729685266110665301975378074961670213543408440093251884930848618596971428371618227360737764684017371148193380926830352954343121532097387273140598429943194702181270283973921930486474154381788824195813427978095920692940238465823841371311367438109449967288615867531693986999066410064371210910207669806960346084087998727744514214015879135127101808119402103444202315077164376465533625854770517315394502547265732483350566060422484655065944662471998529648640438488138089255512733065499857236861989262095513496336400590063476450486932478295961592529987928285102687289447096836294710230342675451746948122848942667299750660475382448010288107301483440685190923889036858691973689266784863252194903571480400748464674610829317098924617747534914237662536091257897079142119611636333341985357743239883043508157550432129199413795111936412872565912246331243890751256771922146910315956701334945283542296299357614965526828708759142965207027816959495891903329782932768285525007983328761210575762540334324699347581449590077299713994328004404523872030687434970688263698650565370379467565510107516493066809155074538704058064657183552638480095092991370083147308886413836004136838300279419395074285391475166374201193580854146407247805077107864225815516328860259758999918744203593053870060800943965345150094195318211291022779812659364742656617380148699099564310110894625222390197576231931578002964056872746042408897163526230408923956629602369692116350262456750812014488498270017551936272427812100833806841081187599698587098479126422642279789716458067922014175970871407277966437441003534389844288156343392219535756285393899991747831298067702011800788151155235883513507441875510605917877978485430374472559674978697790239596780071762137881482924926923659680900234228571549564146695290245171133661945447921943266174737129842525588956010750894592811972945739528105326171468601145166873081463477542158580023405933791273282472458026150468876381950730325159989521966018977076033455726092498245424022668702969612816954042530122323601491397363053933883856482412651149504710707117919903120136009333925817866795164087081681222769644039029080125250547825775912524929344715317564610063029360425887686093928806253061111378461150028034149675128714052124258694675536201678046610477427855220665394435820952276424276164254998538229601397246334919295095527425979366386691873005127621529831260796968030124807444915136878824057150671112371159729608995021315842929744543330991316281391317434173687982363769724852293364258850905717876052244167826874834493099609570275714439986465365105699043025413787178047529666733642714610754330688214944061175207710772523303348795571366853648794103832520722537438659377598552860703583885801916925366314946806337768790597412954768712037262154162020402851989963084874076223457204889046680960720829916007581838905022200267502849861922594285675270195426520183614844402711905310357457013725946023629752187142629314714303406864661166399019484223011191535069263902837608961451454823953011255552516485439223772484559414308008274965268905305083774056392367512485203728029654617929109944359251320525692343560372285787518040280148866070530715821666085225891184755635199062839569742306712149721514879290249974027602319646902969801258559485248691939119924447155986215452540295081534302164194923780954421150734965368090075458858612110912984862703535544560668043652967681802721312562954448405011044962147052269851670013015153035189513967463481543991396251171716952884558069055746323217623507556532143502402268732407847676370119069596587977747722205097153853877547802422182593533418635974455532644884676665591804462107222917002544526838046028176648638619300181562535984909093238289843647382489676972303695037711642186455669650923216980555123554005145732376793731059010946780951044582532463346271490090063335265316498060608744584853787492056113047554193536392703649254645133743870174953438481229734773703857494903983673009731764944971907104545774793698849028644544782593307635021197374816534582270119127323584833538636039310507736128899675824438051436362664916558371564579737995907739664687656537458481282715559255675525418577787272335603765345635882333139258568994795326580290979111912451952406098577121211244734784230380139389381386916794105267533718689079897527805496144472604144858569729455790522854069831236078543020046138221639256674822385458496296713036392598690411827310014776011618656246708451619368009646630053176619664211357536534140254866599071700907332865763421842365385071590854842630486428334381254228279443229910819369055168472666343523797667416505995801064119555982433177415330935928399932007731710296619399398286791362243578093770108664889349837594449675350632257573839120210741994405404715555807412315301535772801208098754932736163093334255651678414045306746978561947722508113225940723007021898655186179353081580112581119561315546273034428137629730013216254196897841747780952015478039062509186805332378914874549565070742618174067643689973207609346455079666081574902465347279510727179865658526175618825013220740396289756193673796434668143006138097293659435330254705665981052648810158150681608361157835471246663186990345325464695578223623178633201682641360230075344521856747625814650900796910511458686695798088533201080306590948924456245043009110970434391103776204812057790117890032351337831326409778838075453416649700990008138358774983027387285779642384282558863984485590473763604662927481162267897756095454777722401061361599331652088296238525546620384843543101193826570363307341181832087820801660366732840300471333974673461822620389410568027411675755391642847480882913581904982914256357761123231637150254349532821011330908668506089303874026980077480012537051082325069937771067691955609375932518645152664862649589950940995590248907610491064756123743934012061730100372947154154712082195722114344059810868478749708793417682976231019277767532438917124947856930120586407867189773952377205578484432789819710521529735496098887113245298631421079811300839397055590150777108600143526681474601193167258668720073688877234060366054351500163469368664187928035629656221861886255776611864513048694949020994629362162084085462796467040521759409793663804389306091308717298021350666040265761456173026665197265334842828132183226264181177427401096918279096193803729769190211523495578277703992018456327543687223346267908946419929544240525286414274944595995262418782061332934332353442604674968910157714782062896525062851632646784178096348597290787160825591059719032834224287857131458810071081110234031959408225503102703605315338561144960148702520812940426077526552486279785336098376345774983142898975318774618252875517841804372922968897028292682975042480532657975736733270989599343365683893707169173180914911785509546370266291636817716529170348749971848239996528978189271846861128485077276963822578205534739991298767368431160106314673140295626739023111262296718093621131376454683523963757412430735092519877270114800536770906043410328164641850295138311224222647810057708206666809955879096125369928528865810043659915693745065097632543199671516650184989632904599196807132441936259640721279535647212196770816390118310119042778318310133822867231645422253121099260873896221004031380644072590661311989564895305388972225689741048896910198731861443846085648084281637332322543711569488577536732588032406227957160213179254350584332561585733307641093427031186215010270669808913557569730745832170955577282917052491761430655178292207614243167647907986317794958747894461053666791710045311116382927971520705802088244099225646460408407357560133886753636536773630809726485780983556621289022154705795255329749938670199781661677862844894969127585624654051825302350348431019727920947047460046173012688774647116786695836145290281041348097463543831423110979597701324260871042658905406174305385800183185068147125836091977307700596125682109661879445942671286241129728723858373313053470712394881432555004981199486197891094518219394159361625731862847229710174418317186008859407415451456517956321871400065990869523024324676491876268328910883663837028813766325901083151264007369686396174628981365272174885885713570586851565955561378792196849356639106976254236284301546398989220112222125344877532507583479826356597336506922228881706558418541222168491745003332452348987596271824429295242017885878151883496344174805626583168795241631054347943386510970245290504777433195584356364803038650781890009991629822008069007022289250927125929767678270469292758418114089634280984211874370100433600326688832446256044650600851927084345414944380263967488018770799787768820027308788537213287255818807429052332785015168983788341190934706723905797350123054047568889952953169931593413686193812540583869859786966373213983827845030633445602792030610150942214300181950962675901597968185355337518235342278305204310262375815148919026463682693838591165154637954315081010003669897403672065897781333811770219638620039214587705303279390814407782426356272805122596788865897736164694302276337783635167897964164188309886917648369434477936031846090871178583236292344901494458351451190468363847991509526579115849261892979738264726656781586134213706069978332151348563751871844589767994956952844386294205212521055484621490415847914426182929337074021700426820363707338662152042400785426396034831547711728786366635727809596891418809824345269292066083197087626137506850973645743236703357258396671779391387331070090369731501328104755297454974750914559796708921824531809411567120131354993005518667172896595409838123325029243019065590076832190038465100428940331942315945248440751311244086951410604699076850894922059801109559443939688809695686316828984026740928533909275668533795091282982703071936915937338506333012881707605986129289426116958890449942468932245943427492435490560525264703212411324754187310966040810793055990027377013173328824171398291208614672580387696023564600019762646774578984672417950917872476261017582942218660646308175934560013252638293181014443527807810859383216277455080527162722052383189437373075266390093389848800157987941410571488296672011587613786969873038753385697432551984516940312018414303615251122715976867116860384332069276534085852276894489879641676407018457194572826218673387508286159199858212314675992611364219892737425712365330430013935135836239948127375720748528983693399814255995681633371436837007758393018101765583833319804068169412090273802364276413186541750803864302345370489571572511933921295352742301449540174617870188527170765532040228657511621727121111873018321743616043871632591435410003828583235278364971217911028229559114392368390530697911913828272224251730634570798154332992398047330859409314824620284595084248826522203246422909522232537587783293855179219360713417700916163656763229718299486179363180897682499555270175623392535774668244160813791071244958047274684787841977407778571250155191626401318830441426516305348131441857513457287403115369413755282927504578431304930254689644743865916928027538308678967638590662508223335412255993136428937763718076260758625509069792094732973325841257347111612411805333622272712927143994253586531603245370018040471169868013010658813164964884247718641201508497273825872447606461208543014956023498131493531287734216660925718787164575739259758917988241302974967043468353585521211620595153246943821661363444771444593990249840190377834544810443986039986474443043872171292543946320612095884873592473193761274643369070339262522761128770104527257293291259175681290836794236481459556746469833076700139854775639323733132886970084281343629324029053472492666996551470650153248404726806585444731902139655085108116669571031873509506408154165920250305211262774523038244642162409267618952455812277124674640178756186679402323407718518874626824905063023103490677025799256662818189028908805856489195934232650313663571856487616367899970269678440856174187216191118083567652548398881289044201146621422442442535526932102566813994327375004203303709331034784895253939523211287836239004895231520525742335037584915981567003893469765747284511419415072196962207339476323007330338692887933699951163086457914183286484839877029649853503514318330656283289546292675892806811643635736336625810505600208766196792537315941919110759597894735612916314703551239993127919265033993233490476017726245873876834147258651369117790771330213439924107498255507176874561687519301806679543129149996738987241934054109457659981405931237576771945309411604063708851796417277787361786363772462430151840978447181658767535986556411990329175573615359575202340231086603017908684023026820468278875333986511310241539989554918554155161685037267719810093369930115167804013734388067057274780548561602053788258752961907808555625782673348354180964914919450232893770690135976050662906720907871993454413696673733841766491760864881028002341145455961057425840032489176586081807313561421156190084134287561692563740370432337128537070922764993064512183490255279554807792714120484139946728553191430258114714665576550489445628654176976011872977122969342958284399187944749928828880791285453888403743004148259836345152048953048257184303213162298920995000383158753266987079787956726529651793372602135666798650325539422414551562995143886820170124684173205814320941374416742081346795968494845587080638854262830240490919862144581871005443687171001522062503237326548610109628842610279974479713932872837153336142499348695443453737721669288559688378543982876665722578370298939011528579228675112794004993094536904789823849049445990859841331743792392876748319897746376077715186982148673174819098740926378879876358490594897921488854608841751211942023687730511037513085756861684768649183438505263841892813526312367619636459197910156811446467531620652868728987004249285165580203732058421909699491641027487923468415843875630264921096013243231982003265993896290903606557786012703097195623701387158270476499553778583179207023692605320319234947440397642781478997881893419938156171991190235640328847595664764964531194154097814708538554065895863512863627952503113829551077690734671741597002966178658322000304149274151616054886977833555481893505975640432630368360437219189360110282196915369337146482555287760890978214270035074957880033924567839136575021134672467930279393570712698963534981474897681181692900497514835444810513272073887042047715540799497907413195342646129852868299031018642513485726502536276903240709203014665313132143695207270192836682876677849312827205253387444036117006039692338161366960034339706242908746017883958720055287856732565503196848922449850867136680664790891526251923865298904499085867818875783704655839943128461012819163281100644790501632820500290973496978415524216999908695301385804289339291878383365748549105285280985556767959102413002787147186422872075125656035914944965066218042642908692652830713457426833921652069581966017440567527472569306295223559259232948913180748282253125456424579513585936879262636841297513617114947881737223292260739180358390138827263341439722320313940945431843915439117853249917351382384492434891517399938488954276173683570537313433377712464827479954932156731028360536551879638954354271767052462862510229531239686518235373476253042103601196080332786311549719508330377764513996745121155909701333827850110209057748661016442536084076849163387192288496180195709535936967953995443079911156546486768165349668077277909458587891914688217988378639874954909334334626736735944512019997424815820028381357233788873643973509590308954912632453350551181061798291424756740318491203284150218007458859906677686240747324195230121648783623377408136182460008361151404078556750389071522023907321280026643006443985600048894821101526047320108710303638752130109051065000319618809354266085624219972079088980995711490294891643940166857199007148548944869963648026399877653252815489393178983135433087961206839729747432329961865981699997947898719349388397935952398835617668514298013814353485507751716775588209374151479557478997425053150044726785345617147820509846087927664574893872205924764965777739451634337702994403035503120458652583045800931767637429690458657900941211633862668922656046914361273791021493812492995039659176842822532846595354950698647962918795810854000938632459915900276717036777583892031541598986493032781949643773927949593028867835623925215102525081020030749321294000102075083471745191720924716085955143751747362200104531266122361001577695760328012160865752903567591265450603116770428790186548912487229957679043972559483103718792310101546548354777101764184674978117386138442051364948970643093459169141174583862819018312562399942837390820955739087292380310990905706728894978403638105088827522981368306178720757775907401686165443847344083594910349115055517376207886685624047207548542705398703760181365597760805667731139040247114131636016502151542316300949911686805006649360931460809302767572905079067262353347951382025790677758382671577990605691868653009331529997545229892997552806661703175045576123364367593271620790882382157540107269800302400843534688131581685660268623217047286272134011285773070224262473081730511485379249465648255303061924573870192803707926834333895991929925317070908706712297640793096593727550637035067711209821497477274213232982828767076532129082774668202060094371223928545628629842237626439152301392036995372674244551879729787989494973549448641271699606597564447354680219859127195289956752897605163979244652354333601842142397224961789994912668712476180208514325270729549429369534412853426419648630119933902163974928196606865383872560767052826294135510078341993227221862403634374399967596316673297310779250864731503092326521548728650470463943880037895486320504692209247088393115530039011520959813088324510453502516300089437888994381349279793737296995896970616438193185294103873005901991805382459911105339015275780200840429526520311458673507020440792065542926117861760004512015990483628737469170127317303725962725853913653260651400166763290387989990348662111762680515815689419899630854526457704601778705502693669693997177993475427416174993443952046748397826849639345014974092749135790950572719842866652369118590657922651694511640889078876107380248828047402367032360171624392638256317794239785334511571309817452890501349793670430013656631932776000756248981382710865352950156055022827473859728054565188445783646877756463152296940442950706842800582764602312312736944913541581357318835420291406866770551347064074258154401942876968637976760266735794661539367083780609870788980256706721819062444819044366331596034504798702536973219831121633830781795694712745080766754393736484639763002750654068945117386915866611362509752804561864698056428790146401130724844014087653842603763012170538395777423665779003936666110044503375347307161440483380996870180198080095218137659610485022309439471360476799071817454760664808687325961968898575345981892042854116374464289496087077763689198891254829762039916540595462245245310693917577450970843542721165582387046007496713317415721057572141942089403810877135077136115376405551793780060632867613182554434881396957362452094362163822223374300009895857422824138751561450104831877434081996362703396065638383270360029222373260163358154023680165091397045445658682614098745755253577990695547773218038392655148464583241014039762122944022492001253412421362188361187138379576481462994931898961998703818038137902245837035445602866194689718000173906502333514407637852623935093486624104413367386702325896912362634759531302322723682442803351382873316098738404494187024145598533593667417502845005587916964908903837919087920685981551237540200405855146599214791258549843834842447484484879993792418159629931541263631360979699364611863124830106583715057475795162238236650057195561989410280052776584534555572973538971520767869267273721144715701513508796718014157283139365871110546606688645254694446658485258909748028837885143373097861524068013742893821544205898065736586918154767550872009623276532772561531269179670185289844779208489102922995890831963373727403771439115688014147020297478295438143590965254825584912656065642681326252840187205742453413436167693983563991984118849968000487680735942693918002131043145054513958482554339934799860740752419323313651306624250319305449051995608456935709030506844751859062864702305935629505911034548586676323157563420111335090635872187301329663354827135911752479738397665473684725321239363449758393686738539772559934466317996995797718944064533293935513929711766736660312314997499740622344535983726986979315494539031031250983025845450890616096471132352173953360142395636032071226664965967237587243246097565348225027071438064603639891750052236911298316199970364020798143077751585882369045256386217468577633824904555175296214236940876888364306935148818730179809111508732158861194630889080736100885381324340486710818080056654992360773905293178862726374020363807133091351211346972643852769509540608070013060732668045813154135741608294917073590679995029052370268868753471018518653852494661266536369430841919564779106772601950166771124766900081710380876862457332770502505721449080756302695145519618386821414140330356489013547169849243905937883421704891644053506141913998667253864730764959235395290283807519128357960864219552586665255548624937572185708937429708900283136592118180120569043723205684920701203371164962004701819844787496218348959706151661337690654482336677285330808295977739357408957420243850185977705911724738696529521081456883779163676691129740055178548973679588613564438101635525137115635457470198859266783832218817680698959818311404550851715010774921378176571823686711160648134834081113591448808286954176960586471861748321761835535461920435331683267802260762967947082914480766800673541949781939847799635710506611499507379623333897788086456885082847952260140821601988254903595353404495049587023589446733611457768747496934242433765300009832857850317980876154512294347457199880719486251915383249465159049312483600521626908439893339375977002939941107022120696723128967683115396521086547881677997526716407844566399803751893703531138533493152945455999212630853858014423662812274630797103207908731126054171498220727602363759578578623832057505248705784249037865021507978456684736322421577183306140156546171983428773277141838010796432060033013441428133492511006365139870529844267992256616828611245749920867064667297556094314173335807402082751611223517491302305752890488133500523172559055183892948088911999404406566735207772549793164255844981337551916885959834062647988682253495689410116672021450050650532894646301772187687583514162025909695343637274524509928647329788699514959911649644183139813968691705827931954691590042360172531302491079745885265833432823821161524464068878404173421496400617211774043297193778205238398455912801574230041745830149471673632420682700159588668097162754021477309045650494725809114659960669927912235928023790988671713856025272616341203131647211216627392082049511579569750546506755626832526238407223354464079159681651788194179035737567525902000774855813299152050384797809469458950708985560767318690986432705454018849296245054394354214192567954043918279215853620757320310891546383725904218639263466082459901505894649822584626991324698777363306104898044939527451408842530922554603071717045587941038991156326217197443471119057231395101664519320142443559735882493818873338982003407271269037829930988785631096953491922470985744832669998379955426869099821867327516705492753976122899759370950793430893413720199657099614283107785600584870661588927545544857464821143149960015237236661456584036370513280705145687115202220678559137036122507327097123887922027081773272841806747877033065437028287380754104364143533860457706951598447248331542502816471325077336934733334421177093664022244536492045436898239799757286292705687884534109598977019036756241417142697410427260857970331436672427398321921736248108468473875817476443249810161297915071057591192135250630127829130099552817595717610312783460979044034274650956176338516627021463213346201194952488467878762936617586318083832392931720495575211066825010204647224929087318454447647525759544546930788727191051555355813743556707836771724480293091911282033724113749855907065840709136953868842535163877250606026285714484333228030738420417901474239446421483496978060606775599352065930854404898494869466147678659774649355743648344667133382052648314317264457569230573910653602988535538366600058887623864233515700890235941855595190014890364730674516844151468422131929295714520176826828311950297009748733462560194954149936102173226583494745846462643279542172066651810451740330610626174542401165375698095648599590759050203665280867484121482074195294155701916504961824150626985300164091270255151590694689000596539868501044131232226885508946196951712832719857763721151254736447584590988520443464023529800352940854177648692071435583005603316009367346596485375965690596222283912887027858752718739879297877725853630729434425359624954984000720277624569138320562042497382800356153367117506086520246054636754455251627069808551943909095718342964120581689035176686383047927500041040536828651277616252910708227680141013051515107809406602007377399918421722838981151111472988741984176352783621876160314236000276019024827040190149547851601018289747776902954543360274712139171928208960101447159785953203976972446752791689234762437201283726305259185122152703940211859134269505696388977629821147434443677628881119756286487684839736627094015913934337772466325063039990641655478674572264011242542943144042380320735134498258761836892647977898035545508920101938598740043771774661842010749154206765993301108489888347828648722163850964630007320148894566208863681120682862535254481331271919093553600683905412491080560191868604136154183362410710614280872542152550463724084275904637084418898496532265549058398330588185047349287541622012577963462099688706227097102180397437443794142241673834002555279632334839102464235380504078427554236016272886246403214875892451857151745324613550206770792172496108928139537195731783341519525387885924453670589260757348091288419454367205734228305663603691489751302586190393425570694871651631101730509765607529053541038803169834678978435070549247010428397606164401233102832134294656954865337652318631107373149979207910085469387611450596730376485820773830921391286315610471144666455114261601403989862085470247570401174351516310055812078698884495151032675358021568254545060383293364877972470670170789337487943579562896540915031655833418368279918938950477781956363431862814172655783408630247780498145527002484475907432664435594131038156861965621142744879396135124633583656543081427662582090343479049265415811659430048102295030616625911409417194025461051808981935123721842782572580740485252978222295829363713080092792692643758077924541007894478342763529694290406969481830780218148496183430314724939881199730209688276593132155525113974179356579264470832457893161340807939938294843148822106278868100533350634001646958176388546315113503230931438504039109380105709795572423892188036411595700056432369243568619873282416821942687685673859371183941146080936999401486954074350292437521973737062015423360481682547090228230382534988595701293426390073677235277384645465739525881250102311097648258056716631499860773062529455844449672454867805372123510724263782741500025475953463603665666312459815171884454688205747893194989219350069027168354089594043306862681361676873983036123013153841991787522036320228285012285565978498592182671873083769476498685110924407108049081135128705298584902921940628254907699534875988163118559267356044873531885616510215706589483008630286149787933624860370632746580909515532208579278906117333597043397955043239719617948258635380938920410128070250734855363722818828615589810656510914673084788847264446612410569322170199884224122414533964278736610929697362646745265929494245209142233566668719717117957349028310050323630143215539941493968836716385142549758608271845716765380547861278545144469852240808249174853353764041171062826436130423541386913407160085021234571426172111776969535824657278972309481420731024709532190429495842620041407436317979146461283128283984643706159918589254074917626436209780107862294221980257113869998252525127957635390035973666772640486217205579957917783554093127985952894792994538139911797021944123910625369905176493918345204457802058215996852617779748402616608662635059972525177093234092835004046331634792523260903716348473704621122108772889246190569391058597745313539847955963144656724274482926795819149841757197561868035459296651433706569033300527061216162094402877029452968015699975827406948180412614789606191294090348929232689915880609361205180368169194979179759367237919137315986667409120609317859812693295696445906633681675667330257431062153303355839595820530737407817567473024309159608527492956731087047114963047900071551157707409490403057779085159573655013318449819067086415137152421925510749686227282798805254758271333586954633781662840521099998579973783518947167785784778265662078350790464705943534207380193149304221478221509319458598300584721523888984606749558620572346778864567464464489502724887401675319894026560282288018459451129262178481438760211422748123128362723530859398408968106316664473195916907064034653635587505998466847312028566296982311112326136136653508297819762033997993815564281274790355785706290396845388127268024660716345898884422107497253242924359831920906304793164257997531625337662575115827202311132929645506145341034123722604083138126109550860643532435001356048916530399788725682734720111605386715508412175790795716895101395293019984600105702549709177580330212746338252437697185763251448192538023747185202600488521830328424675877770746998276676148482497020261239655792655491889534208399692176899288374613897474948883571228354432917848688100372427026237172606749736576439965192936077769639866662095026292906203513898232228279498511663717773007452845158018790079502443139867656561834252486430822861596999065631896524540319511637677425672996634176866250032351886855700003926967780792747334743854438747070029985119191718138346211471064906168194755516949235415287168700701430501812195233440369561739505955971333952038146832897030950466102706978646086647261777379787134830367212487251273649305344474350852032982050664404773499135382029058409260084850629617052205280315444665785774876991805403937885122459549623465502305563361706222079089227577346611519158420941608994099472970526610464602525260938836619887523609565445699346177175162621309544177317724317749174205566077178634832506808682461956164887558378817568394758729541286756131493414527582464531341233605220314940071551762442083324073384248743116392988532604065566954681527384548112287091083010606815853725884534646240520541458270529226110205049266504514481340193389692311975197577452438492583543150574492388510438490672899010663464679788159972589109746261340027402613857696532941266630679540092117401640452656698388061709615066840322552216732642302875722739254428679761194250026782387322357396979194640931684784498198039551732156614082833042143753043554965635714491183836558601751346184335669327774761541476307514478776666022352005505271365962868165577347226393959378692675175809491848733516717341777716806340362705136223316970835349823472755256501255736027003001664901637928717568564995560586285181948872366699035787260398223254990799162691151726978213843064066808351878768719734260414201480510598987602626059910959768128919636489330891004326594729115190513956741662250827364067080981092661516686588034953745790327273157036116247815672549498302051209525617431855584016166546893500798516448669483673609061868067510144347058427496805550842949397884351701508292818025578288787647690144865832262320839200303625539490938984725296578330747074844180312420012515049484921574329097419705585993792966671835266816576780072052730539201291711143925861451820908943755922183430292213467524145936998673294338217663388761101914354290080924808382687167844424925207680608909633538267542018850065558698419565838765547524100690422960432449844861810213545817210828824546765633367943076839824940513785217081468558493293617705222912977478231394865606360694450182726421758237410334126628440774850380799189313857443367767919074185694413496298056936394032437880552588597073654259722843905348959260716530086043510524908418803696941419311984060657994094895387454456076237086518371940742960716815465987537649233226862856819261485744943002409085905688593714522239976146587664162559287376137442772194492613307853058366940816206963397592559827922888816615128885393527705581605245465661367401271995245575455119564099089414520282274099981189741218933017383846746126070019376951819574245241069918378023192963455277903714157714723893145683383906469502544500632705824255052855125466159137774699155865884401843518466902799096030562273089130282754060131110345259162268701554301743636169502144897206749542180288296784950915684196587940887497479324692520710677282757683392327211191935503372527361521764209410199699096956222912770436424794183829348429057397526261469033456420822642937284913377484136929132366991606120892400646851357179812169747698716146942486929927905772238311125570523010080234478052293341239478744091235465223416620688977679378802663270656137838619781036539041295430992641047520595935272678286634301068492462109635252624166228049619572992794688102533667712111362419158385065106103116064399562554215677590961625783469850552540881684360142040398755459387081669763836002582132428623871003362354444431421970123049007130710498732031173410110715861801484516012906634473917952157555519262530518184715417938464654390603154228146731784067171745026942403299947257672724979836443182283386650094187432820014226481821283959436209123634327420118611751218102972613249804986828392669429448165530375597526478868137640933945976298490297386224628114824454185660270602856209918028419101925864843656611831678625555262237839774009729698689015891921371765355061198912532866243948313759247607638775436971006012289764777915258229501808073525022946414541680016297841671661615279727171682940881920235383267706506308910186342697462816197629394121539796830320492845618203753512705107268525350484271037922567015517882013598204035598085451636010177647554283277588090078960117000395840835262968181571316824298048521069157263576331897767326700565519649194577384933438621842042358986422659686426454418984971918209507703231919275498383259260927097346020342697307764508537727584637570401845666360067083260846680558456613315335094306860500653348144169344118368866983665556728182091252301785803843199813773427937183110421656292016525215865095207736435700514887730700552838246395889154412893809791767918811885098771934053261689312957156203361967979176079160900396327624440370167445507850481276331738915764955414872911621124306420058633801788827377904375821816956490757870199112477385679621706890839370130390403138409382786328319110925077926795497351018827570792409927703085602072380179202863197339643407960029457566959039615565826904363390938896062319018215181359506057473854473160608066105928022835293724125110232590490844349030965330290765028734387082148179195227631622372657440250209433627924465316457605368871801672332201383539543701488677192506895013949829494195391898305440981291889128179668296285330976693572500920897623551569529079746890779128779736744897074599165296121695735006048798927579038732647720341839175670834635867112822123526815385150758439445822458665074960901068951821973380149237533298862046055378717329780910534288415686438979373634091551171307379051439696704325883616782004734796276923629029346603806053401049946318782457916650962407758392695752601144077472994542233817370120179627704646183403807545218196875816260742176322746741218274127258234190378532651262902936977891817268031808270756021931146643168913452390565617687345184162534628259760486740283867075254791863768060372956050245148783552712525476983944425890750907388754670808213992347816124849740510041523371694415756745174967052357746377811241907961536059805054781599653834755779357784850592588859496127664428114279252932242707930343030965218564136731667313285014026714867675699567252932869694770022735423623007507135442927500342003603316397418044031917808679011609477863468189327443422526093469446087259609647076395790692031085266667937584095554689447596755276669389637543616181824649211958600755613405593139661858670055531136781563966498690201037862195698211539405383121132472261238574575486330391254165290240323177951651819977967384717293909510098236709084676916366206395848437487576348339154799861280886856922811200205462166091055376728248888284436956189363117490039663549934496782368418726588683697887138115432683694784797044853309247769407461020014802724033645465056286880289348322874582651682019220694044063822921372733155850929862056996473157346642792195808782260425384664811990258500954877508742556425434383301160885420440512577944126375353619262937334079918026264476293595601373897451100292874320250936237149507671784228756580441575152250583557361790725457010974118641288835275953431581498104928011949217149467963831648329600008100003031345669869168759895317573524701542377930904924116101873066258983048232371828400991837167101684361504387129316408968388572706720437218572692530786505605196491033889604603020999155355165823819284840472374712641998662281266886624569649560949065367919705671156393126099223744593840188608075481902218100201175490204056320911761139897240744675346495496869340117722615364726704046940133918888817453871355369281016712815402826870002794334550835456775791987493460701084600705524329394574463836259288497518760042446358874903001099205573693263890201790361870576222828541630345788091978710945100478580848924222864856289464958056734856444160899932375400041170025815311734118239850722328159020501759259225760746793348960870585332736163280396618716735277241353786981401499801540543510020141254745137147509046834611150707166307167765925166756689016391517923416639570166284376851992627172270206271875696752558899506388851444233176243475401799256662195604999301617633340719290250360242060526821031308174731085288694318859910693890368021701197035063967614551248267513869440504522478490837245448198263747270742460955477903781768952060590426621055647886644106916674192855316844276805686081102379400312811907010268938396085821625630706389657225080851145171609886771570853826306627787657771378855667285713181568516381438389196053883576644495345343287364931137106319652479761752014944754106813534000042531853881644683994354660688876125139634388101523923948011470345474487692650985398063435258931921354214860047413154630365489361334614408248691495339691980080217134441734979493385909692023137990530510812345644336193260287569421611354192937679706526696789842441599579763866859038281197967950353620923347832303229812596199712588583135734727980161372941041201265851058464172093012645675795165167186249946780645721292207395085201087841502105662726317393416772156375422283157034588148334700212706650613546891918382793473888808267598612994759480222471485808923009463374145457609049934353411974087058772237943458206279644129356006719751101086674186663830917558746452278093500485237532129572990234453627952705475674072735476541069610610520263922118546385743402448534958306092271745223659567681331172619793770506934832226727192406407116667999890294969116542480937105237155296582725564384171969823247821674528604463874835242739446345494414715428213551504573711176196176320475866613483592964250294497027400651779473584718317434189405954371914606987430192811894994282602987541597037765531503671090315857253529032450844630552152790079454166795031980398323444938121342068509398743512597083495230150306859973767204500939917153075556588238699067305342002917380322619036708797508146348519626397196258731750992228338853594107997474382661935401154368310808593698258533415657842398896120934641664483111549845443503545218947154260707824950775515092644456017037843275647245534663892617396934758883052201479761707780102939745009252415879433684243515363506096056842692170426680710936689195441110426693852083747015964877965704073990009404930081315411426394007796916038525462761341276899772296909516887097818142147530069358295319460528890617639586877405395567534534974364395023688924929514730872538582922429104611471760926134454205178765993583982325017651698186314405041978308801727196279718643946906112874109134117079555999216180337483806311136424113361723970757209197175309783695322476092972578894131758482514883672369090650321041442062771595169906022250436433479206180955486358194777393555865538142742922958489989754120725067561622665305574143603611734681860918586077476171454154623792583124531943424426030821934126446748798443701701962523191416119778885685378057445511053390394905760102715410512087743867523274489218953036831753607436892769977806148093393000252158802874274822863853895986869295965806030252688278186223754564212094191785605252493162853411223964916807189551743301591166273609678994652060641509872972655573908215632531829391153109251871713062825418214883775757467397281696777272219400896582450482141044796199119576884083445404251288064316747441135871790169063943523059696123916604498985923696100306445638454045868786334299269338233456830479676521744851031750427171102774759261284905875420809865752778028112400077370583929064605145777761580691397894799132522605506912626857113149316010497893402843650867903347693657646195125119703945939858923347189592033417581532458334539268810546770171397282081153589884421308582723631030150076722300139364550401445441582672838864903036603868455652497693388382595392326743563203608013497033646409992995732121991946965327687408397874220352349272619644513165056771952752447875486356707463962672330791272951453862096152915242275409985723485928041178710301303525803362633011183782646470887953977268085992967371510916007634125575302642682458965319843732126021113926613501152517008538674154047403489525089575703614964740898510804964193565502312379577127091606630337218476058980152734963350365406868858747867283254431902290971994261640910335272996058319587199491175537332115212674786414244448276485954699806549299897140026151326519913454436124492454253190246685984139870940414396891466537218817718406432642232484586952711826677821976470042821506441896161389787542288417403821036643254837834664399365176174947009297416800556302398865654309372145275512561434067743572734526442028913255280864538618751983298169004206871208584170271643264796619773377031742435075802793174818520930790951458125524424053189034249143157787142582128975178928352246058146284631280515767936665179048596605820195230544104583729985257672522725918613774764488249233697025739338481762744553759309660205619990910235945213156327091044141906956720067038773163045414661788332067478709422404071994179265959354588048240143565361042570072676965560141513690774856422187540180694362282958640651471160967634041886893874643143665404037152881460375871627222772089555643210926481779839668089422998855903748815253638853664469708946594371224316052421274058516324288094052655042783693699469666991078756602803140608361282210383109689615404820135116578183539803027983300221199554790663683073774060546112701772969209493895115438798107608219864529005253642640061638845754771426342824793967212535884191741930068287495225271069968683182076835706638445393747159614797952120618344745009417541653273263224722677868519508009295305690998882218105432419835419451339289050855295861028048467079255540233831385444505620575100211510295887159464496419208520208407013075443007293711271358434340124437513961505598272703294586805981235215355643630191516436888626753824504519665668393616252482833792773720628649267639493830863253985058638798082259879939184038853433748894515050823769014422164224819700489612188368279471129781167991686183944395411137469074420824186546431558333554162968471379190910810656485632989965878317725590936872582396491460297748954444349426555246871261066736787709556895385215037939624417357233041501410457267660294758334815240938267107212706468719225574341319813138072749718868976235415841742346433778082561618765943050778460526532635304936945271648927962218148503126294882142983038167269096011282416641106841222078453462450021837093597945833311608507802879822568186546542101160183654677318371938554952261658633653452304726011465814527422370375343035116812414078210180287301139276374066724562757437091496718825645329308099632973920664445300359175079985105055102696283972952703134945395563504172854535161572645008750616571750468822219817795564415191750791319415016554202370266477431638811091175129626403264481452563761773781757020965879055628371636647451702546281354293867329855010877765491179069146915026687982061722752389748635503038207615198594337114371930367727113891339148900797778532261004265542282175589701595020747069263695074434325987940868816807404084232627228114156165249198245148816839632159612916080524106942761494438588056599586360323728025374467149343416171574629445481249840821119018784985931808246947351086861357824915078603893435270839450828642684219372644238045258054330353538762558951614294115374250883271381830005688618416216669566297918389846946688072153488408954316598502184531271730758329193640420449886959462283328376935935480774528484780183937807420142345579289669536227791073924463120434342369988225534489236443265941695664179392552560826769021278661177560752094083289578790431564686750728997768693427393120965268543122614113471931347908727445853379707171234886942713805388231519722829317176847907779904821510231269542657657555613191929255568714763709633350865682835188822131336605348960042261493954081949372911986975370198368977545557926765620259810147735877708779923193750945419768549467236037561788872429171009706002723864196718675226407359296036045091362456346730292880593790988897253983035003464458296859043400306005559215565036515180559891382958314922204342306731744208021564609945082542926969915075598021929981891640062965636453702188171867831889866635548871362074788175046343041891630166951500211086068451490185351233531148624863971251887081205506674508025254361550161531964433183021039374091476870678997355285129287441120310787922440371622694343039547427171270837046840933248548493182125755221979223722084049136189640382110826191796915386534230086959518613162803535135939661772407755062657770422340677821659142111501535972840599888466388249004505567211599065595511005456798691431288119710808518416559733093611633351831393534133068764998286272310884456052600504053958338307128947490173345534876924440298230461169556262895198672367437357578702930813343415354226790102977547153286063081167874959889688513388354944829933846861068352257452224871577095986168491683146905791404646934990302387966048343912435037022591110224255300748782864260752759122274708214266920953025524751733172510246318506563886726530063847379603387745671364233533835006709785023069442121265842877889532785969071700335893719098691473418331741659287626876975527694506323614839152142955334992255118525906381460507647175379602579954219433699055407546440420897937850133283147628752351667658782084685208409583419295901147456147225905812005019852531530821266217075712976964656171902925443806575079540254465246559881374407816150953995384064629455797360222790830461937883982683931771874449486432537840331589176322763751675193938926561382469367304841773845982072033361519359111309825382251685247378822639533162630278637881288697343388376729654778372444997160960288192479291459210704968111548428536872619079100024488583677920821192134949546107503519702451892917297141146395978924355555695288242802801709449036423828874915059133656554358538104838148197811908097137319770056281825382818854380327602378433424069908403933430552676861321601965474301655760163458203627109418474338887015163337580875853807141769468966899382901031138206528429666505525612550764313285572074407743857410027132407977155033485133405232558981656538868313308007092132229680361384598668991505999924344562791837194791099824083514331213752923046381352113810044124031510446954837986248784422262566408114385511798769645041211580126976338344545632807438101086912331116739911808514464737737087904622379506682724771782374296222210059230639351165254262056283260326007693375163386156801748294651478356695010554351189072578893516498119671070155529571436613832407088198484788826651877469030367689150053251031544013328371870640397431710600916743193837222097003522380240092507644383765221003913014348571901439628251984470028814353679472923476965274442667872761101173278195736941747180609270198761386261988253297573187656492209181460938059923014388479252247499621925118769610875633382690244008406242141498315990271976557402574914295326581481839108329487091171226262361436786655287281379246598212570985670484452967752235251008135430110412201705012301469966444088825267516574299596985377629576300635521002039817305574115883223803106796947666885921640235557574057215713027788052141381899047435577895698463232870450703999741898996388575364956264368109108636294009388827628286960572312302140801767104411723282806369654192708681831374269352810423571331650575648303542139937806370476005293861928554466407773652659092399571911004067471634689929488637839695678131708379524958824726620510331804227472256677271191521368203310110154501643432034761638747407104541988704463179223618842971452630154074180712880731848862206922757490132450412210532889896661048756172263834667203667480736197049091215865214384256084209819008560462401957411152596917500805248415161720789576851112654281935228507110703287399367072703695583447253464273602776754151866849342502741763357977105848739322343587968521345791215148298915689034268794190249934500144425559017331942940800272455066311521874096093022820241318480740169781398829623816360577193627939030061766483442256704461143760063663153430577931498658530397073449523762432743505509253478625753355159775556236327691316180540267297426449744862648189876094618481909949336390905324462787321540132326445885669172952838251496731461550945428813166313086510440398098742222605700574758393757059950963683253482690355778116152236639735833975483466396722030257317568509690540156898944795399041267559997932882598501474244948337782723481848439771140550414316377534699743626166617106352335228171087231499310012549346879133584635049757591132623854053062744284969283671804878606048573974181404509499219000832954529157344577096923124131062056400791790617424139542390676205512376594603431158023572968815463717110630837335499120840934600612999240463054014588730418876994712177810274605435787284996731849057953161031726855092146503921228194481556793936863945688460859591697369554661132800294686593690568184411730060800929625790306614612215994682993703530614739657876113151683961473894809592924681414137669150276481497770246543387876622911177167261150606501179798562496751561209933149960701732849369800339222032700446389369785286304869653148541300582160818248806534465959205261405890829068226127880596651089501917715471010423776459995921346383626315572742440051560479487151639573884410507731763393641600509262088172677363231317488547028933053143618103683455841389235149186200237919355623069012499633599676677715254918595225094766967079205435906040052805238708623126764561377502973664624003769385914829581434807705323130431609888399149811964632036027280090446047954434839703481062049629418292123370730004924070026108124513937446234164367218396627042255137311900498304967172887886773803983898249222109355042966058378888013926631922014969820082358971483453879320252752346592209658535123573928891338922254175470486752111133113880463492966525146813289954727510168485761129863194660236086683761293566943505744488578970156632459883829737650282851701463749597119671800509344660556958175788621818805003374186511705285482232325682120878587679910002178070532221047558863213670037001887251081986902828560164105970966167266586451476760586280975501524287249013537914935819860001733416789526734538511672006645530374707655140991276824712531579763380588241391196793439671324537549574547609726716815035099779765841735678517177909289390632260487312039090629278695247238533292327699219336113062082508047913833216218039457264543785753053898037165697034589371354947603837305476875798348974258651985002890434027647460716312818560494669874184947511953615532296436073955678619285030850817711463191308547700847759154322069675032554550346514502755392238483506940233420053125038459293953008199832163714033737972392373209430708360103724067328716813639141352014269790898671980149023042834076026641240501183020182871913400145442113624144041526381491276694157515388870710419062852019847352412740870066713130073136828277807747844287981849587579029952337487489463702825711963064174162336087412450697077291358062076961942467820153739245781902229410191388691952637031578255557404425435717847829708184142794935114313703472283096739405555309830090685257098121014063124353129829505097044174859679774272755265478700037540735776839378290418467404840127090103681218732237935198311078176517251381068498292903989042148217899508910144397943852326744148675207999982205124812146117291610758333830535106552107923251409576515180173001258416544939162157650649239244560820742532407429114225615069035555412420076787903743326257582343751681637169991130700842215318592887024453393337851329636812195621017328270785746782616457707666736550194108639223622570105020872721317298356332327773384395233228048700407954306632628210394936523374908844146748204660719420983685867159504713665207699151454314694428549808684360479437250790283653802051848008918672807430560091843290295444137979672222124255596941887963880072685616654870365611720685405949394392296122393000463495660463537131647800138301983555368027525947711863965809785938119841142855845438250768614471298710855506322720334439328714757144593625220653001455116044120731732493443456319385187349990530563516060135638621218022348205640866632909873340660711597144175147857499654849151728769729832290925466203033874026183865885107968768343451280241684284521798198576024890796537298076565610953750382331957119726242736520648041024484127800435173240174020799806981289297668470405277042161813970830620055894796083729853382142705177351788941416667779616180360839152574576965948089012699824023838842759793350389510676791102986560101818168020260329579025198192873231982621581588710990560599460481136748142883128592721427887489309894938691395962405044034610654868081242730761154939751886978685294870395767689765965446931239771801877985220142700237751499986340626646911364459745325475323180995322964859215897140312224619733151054272732057093204406366964010714919165725394317041824779312384652631263207452415097567712438271119795617974251598131124798498044009144529246911484725270478581999466046834400725315798436220050654377875225622111767643325095086726757898360439473772171674460459802713351647262473779212071792191806217109922205419741617469670528858415812773649118216197683845564976407272914802423635120873615974433653737377546139698495020041058904700666371267531255657816897893656944790008351925799395441349709251063263234546510752399985378087136604429764476930891352581389110400308714469517065417785732195066430785954686552237910706886382811608174090105708633509210680372575990430579176312467121274160952737911768734380119643069019657730836252264906765048194191339099062411528265148522829017983977957448170335230030329641693141853396447474969742356532073897371758547439837800118619623032969960089446015333143958693912095546968595834491080630720775568108108250951366695566500379337008583437901269906726542810487153897691633454808982651982436905209275727498998140529554996269725651080450501944581721227956296402605958381146207074569491645098045101647044586087206842764323977657574787444166722629414148717508747804032617736834673733589609164658897877645897800189788559210351001767661550715570965601588317397949027713008843573392193828602528811336439228061749481774029438837224417490201819044384435270016881535151388883956240560740742888773048193378006146138439829369348373808666681448092068224175521362985311988810911848436160907565024271055040171759672757857691355299895668348813605171773812369963027771021444119730545816160779031619366430838431505470789897097593445116988069561995818666980028815315188165886394553226197824763270699902702338947617066427591480487803661984361207896222977248673083997282794574292101112925237832716247823406862262653358728717767024404072586919995341297986389259528809334118283089887530081139909900526847940218807136779467471785541948367659866615182319201742282651511635878420929260511133891502751433058630995122992612161345174453737858709318989586126597710088398241024702335243494286039031059328159007077261268899754839159023803186836612536740856441971936749371535053187610484024376534727814106114608408045106324593537120654730381049879429913107841878359167934730235171632245526909183180614240821119131606981287597154599013255507472917723219234488622770949964571631089602681529890865619670528513674051101427951937983813439565293078865763748829168528849308473165090128726327567851032823892432531176942932585703724218184416126199827304200198402414349528056702377900947507061641563442954973048830458262324591938865436581594466498913145497974636760287433400919902516717620633468372585582022041109193683946891351447599005382259084037368602290255390009137941468282284178931200268884972079098467716389166333507914731547041769903203728680122027941547088903932355416917118762815075836496718955488870216583769907778739287843551399728502504999148556935281567880799380199484203515864023158052561937536279258974984293468047525388975537302268091057048985294011044777223153394455761706200601675377279202144193378938286742211144588847748991259494448906947144166989905673842636258701127128638860648511954037187055692097215720082876224650382681248941290003924556851138545518829641176157212230802336512645347556790610750153411630935264223407503613965883946043764641770681372612433434860384211140397554780374556324795797051184205352816623776278511457513629297980528076321956466943252445236679608650999909012299897923009449804392386493633092412849587484174170877378674260857192720275924605607869739587567050003953956316686983413781093676522353190891555064566661895987341538412187342335338405047028080628456352854399809036438487784366690075241841804212852279138354055135171175254216550678882560701996513524046296662523806393378141822119288270835571141701829150039963247691079614008277460815940129976305756586427608952172717187659574815032191511426865587833862015025844253447744456141929847246123029855142861533967328152916502504092615365501630728311783780916779737304220802285935265847537826875733163049361430887515660542031359658422406592197053552685579124373466431173008749983700016017929658644611734613582678015704581904948364631799733255130682139916586831608525518739027288564535589837364916803980096797180920053435443247139693027245455451862564865514688535916815414223852241686602731084904319220971720250580578370749561645862423775599781790493219807976423922345238033209855784924106130355057771989415279230145947011937017835106630012728307048818838742967744743172782477622759828439960598165933772997120308138970382008654965288444100953830890562537002125321093168970679884206510535963642433669426871169884312651449690718831315441381806327654306018627874682812875489306045700621307561848234845672716030914195063030022332809436932380405221996503230876182347526850735040107013771527108191711187587886389148311136593398663619462808770989756635148911626760219708433310048719149187443229349796980138032126164587916132556428171871374613888306860660489226542720958387832227571735566495903539791725401464021287035748906630536192577036147302064466770911805502986482050237262243065403646263214537215580875738578945438085885994029535290121617912570980141357968901781156514722327771947252360637661238453852071837495380481451570934218033378164603238342967391197719079281600216275573123134505064797926728772412072353753449318522160438179594625612210693384698653257563763374822639109144302311679656587201594781407868293371917052325327215998170091081707207607991503708259747799223270735773617489745462324652242595329549529144136852319220437990777726327701558870732190101023210053214862819251816557429536331756977429367323058121212996741470112727790905771689584530469244435621563164713784299488461107049555369912020710208423051204246271481268862304718896620258118342267288348389242300946548022097561888024302032185310541647777824686321806474567927046034163673077184265865543925668076843955119334910913601477471287904406179642487065627802278596112493850212845393301256764985316466719150811696239174042190458882439868936919074297400026478799613529039943886257333914924339372368951942820980374926068955077973511086481521086330287210692320380866352746619161683541089444747918265760957491060350394935961591115437748339754364489166716717649421522118683591542860183499617268856843706902408693277377517792054800944905258139912557403245719772246457722283431856238106688362898068407784837752082923657478312882423769743811360511081413434238188996147340513945584646958093036722558253052091098284404185980635855098925732030848572835216328323641593485601427075228139864014257037861728388421551250403976415969461636179234511114145544495026840256481035621024132450532952901496841899178967428637842611277974739831660647370571727058460373106400662119137162770503715020786735526751230042505641510106621197627947968645305673041269994677346065349479359373522944522791458711435044276929081378328411216913637204236823665567914101664939833304570091380756883537515539199676636153916623111641779317558235772628524062521327549667028499126469023038483826173229439741898416416089980715419223401490380254896430541020857766105487938912651543313884867606470458360279218124142130485844277575125510554895018096175388678756021270771972911414334238141151906190017282709703173382457705757078419101497865223517805405565954148490927361040583774810210454292690065997869443887406036904821526602531771505004502114409979877892506763220928624590436362334451735341420132011500299474546702596776666610699051582851896229142062206467189209674659255310411410993548055699335135516744164813649683205233814913592033648489337702595886547511945580127549280444326510223747754952704270001235045256552135530098731149172938540303690011356483715168911182773402501992678611353723782896870866245954187900845643311636235520199393661042375157986214559164367127747409512723188015615805034525022785868361761418680654907825519572866927389249851871395704250261122044384017565301416272605288757726569026296804137786816369390993968883233821563395411402419694839779803659542598739785001310258861739281611778135428789193694294604225863073279481420437332153793477074875934403182583743445977617673280833516142841224135287346036770189578752988301509819212150391082820106280846893969309125909522525025785277405173377955266998899336700751836657235428149941734652091966605146020285525680856732831089401112059889713546307139184907996262094569981567159934716682784498072306348683200887409201753363328472128901488991126503691582731485268751783877134047508334393656294718095115764466592944150600594364469844958680982936081859741042278792148996035278749078320093360316005556227532968147923360080742221135116177473778972676529477532288514071816727259769404511690162118792687463913448422105366759972039632961083273898378119313432746435137029819704604954953864675204175158166904618746226494428732188310583553518967266668258297690413660134730562109691850571837449558928893504860012316918698955340888104597053091978148738298127748323927693640197110933774039149123444085779237461318204495146305347909785673947089982129223220118766675468523809457765199436943264879196281080148771174272830382863963822365007736332032598022940912672375422277141436769455626513695794066586092599975063787365604672381755758602703982603142801170953733324872046428575597101972016108844060184808578058502612764359871305987031575149949187170886171580652332220205805808788070625775418323075945410471502497621944863970796206460736581249098716133654909746319180238967064807901574826774009645405010212585557173981864409110312359734165585004024820660242765665716386702229720362669886226461746076537368426039643411573168548909452989436890141997715505425105870598376975115485767350780099016715220121803687944853107829744553730783925378740922626650140260734948135435558238189718267549382131667839279978218518611946783414664952463392533044719083749540293416010840184728485620604329315177473481510848161488764372696017596272802587989751705168695835003314854965555397973847049732928145587671563277462220623432441230823233723904592634707844195984593930888274789382123803329987110132490858882329365865254725909473901327240744664371291801037456301393684771524765335594596307120072338378963425045040381956502166608929702164466847533099029098071573020943089716718074588066861841711179892768298447572323034704429261874676757170162605750579682478109796390196874905642720182156749812591430211395882342292797251954788564618767907025601214068531273735652435549028341704569719399064360997507082907806055576993790083288109925124769218909043738804594346092535239900394871646085524732028721149232407304478582696849120951953270978728788735194178251577900709837749609429178197836088454375210079566376336952032316449035470042044757690257125357163657772668597206636949282167179094586161924148938868447136162001699272454419086179113055509085918063308446478019281934054636490112435290409649413050080803161158834012768076158298790350803772663321939716971445236716226216404653309456383124164894451252765984695771512941785000228898580509148300650235091014579707709905069355341611805255173890150495006847307299893277601973347784319659690581797170164782645552961946133628339809714157752574955226082456243797629699752113050109940743803435934889820986605792568228506405835571398477693967565425596097260828595055929542752792458772120578362367105060437915933509826885532462096142571871765001662822337985728409612381113963818459410273103892157169546709069003248401323464235559523243226541737411094584960500108667296833476706839140383129159694623852237815431175735934523101287242177845155100892005413283875190605922915565381999081262665384295649321399007270658884594165325837876692310503886440556654605695959746299081741371158455961443206313615520582561889618841782442796593613560694422004532475636788978202405230094468250345446904645536266062281315867392575758555162290261651419818650439698175428306536391435264566333836836346442458686971546472997164107908381390280326677558568962720112354887722832603645067771871755459054307495446100346475408282350265410458706044338970008456909759031357300405304837898908309280311128868044407017338076550628335528557365973974437531743663056244289742338703709296964022022446885670914789868783562927069383203026902358899253657217964906016874730247348633605391859001703057047224026960024320091472674154285889607702370375092081766574051754529662482288074469990858795243073289883052389458028006591343317567669956710719242366742299601102001280473718750520893368938610236902726421864247303222352239384279917355625345333018479761038354415298914858433260749307619410196477005389665545977962386672799737417304792228391301580292165372091519741221529546313964121428778398657386668869409015480342300515988113091333394746237294941523620754064432154396095336183362780415668210262817686133229703926503063730712472122800709608662943749495395733860466709499818070641018179524410942949675002413520340182621533792733109262688918777597414359146711730749320267724720494173011596201046750893172532150009246906299298616090771665989801240127439170779564155530233046420056577481995447296552683975660635246588187792090242939364126262688344060211567501592562410518860925548546120812275315588515522144310925759198362498697842564039375297521276822066553903404301748986873037133969868257912070563814137050798482575852759164063000461281069562120527364281563246051089541599212427211812641943014966765262332465330198469741418067321768889283756396059453644466514439104352328902559646920759185281756141820797079704820871916154382026515864433112266619356963043029871771131086829601328014834337999292228881458211481036485902290651205922594492160045596033554450339225397250755324256481636625524745988507522258719660031988056282102199723413591316610879712780075784590693658892730968377055093000721916132438546838304928261951134440493719741454246804726752206812511597397098601673559651371860767457992447726714193736445944082474990021305084033640277934202038707761478671130145240765142994406230042498884543117679972620386399602737163819842978791785094204534247640815391631917195794333947284940648962894671502110605282219580614845652423277737125932571167897072460408203590881300517739392103527394120964258599234386581350102686688280451137361713841957854383959156718022931051638415021030369537181731442507683451405841796940746142333601899635907925570419976242707467589034034383147213064586669577867668218568084892266131416901037825624718174569242154471010206825860619301642361200668733067278085847158452170326934214587991515817598753385726761179526325479306300468547808027211578352978733627493564020462911988438358710935431331299383817306993129693386585672672282176423335986468631955899862780408335568779760137864151895134231476004366533788319887894611969153691292618263295215458692976507942431879956691405638301243400007802560048649534743244643931559337111021310737348547269696743547598690452965719759457025875664219804741841834499809847000267877976973207880995380472010676119924439053596948990433165027656334253906224763961225246236862366805780999256945621856973475179184835311169393833649567450112854082281899140716411765669793920080697295877092334395836344546729587910294038842608390662477175012248784263620274691732100403317694429471249015246129015493280659485939675474254251810784143949657154535805243674994678096997536634725851794903886392466120153868331413446385751282600020249969310420772209050476193458904226472173968859031914941109878485741935632262871232994600667535974945408186582568056516975645659246627019639569135201138901917631315463466339821879344243398671140431395870265091770511129379351365992467609348117132544854184614686151329456095804736609443613284999924504621036738371055390361727899175628231674600812770463530915770851200084378662027821338029490533195275437645888753231316890153942455699560921446039533185293129876836092894939831173418785230166985956208753827533572427291083547469442708533597745445854656636839171802100437216491737700369356493815963977478841473267175913843717526340665696845443095623006157451271607030608775065099101378275843599106151859457942913064971555075997765011817141665857974197381055780714697384435316317252291750023759976172775391047858730550295857658165785103105480842230063566096223752225278627042516338772980273515950817458590129583167009680095912398672125002963405753592034937256525407304305502182061191496984290472810332142367951819305384064187771577849629210520620461328412147418533510360219703113571639661260792714905547020292341305607985224331156972026718561301936759996806077777118951929528164822783075280794247510688497292335703522995206666052232310664474477279609523803294320894174039010347869708626715919237108280281905179615661366929581364696224043271971247884066513339048402036742778566764680034756270016322352414013418970055547221245124689854009319206160892375686443545285980784924411985972577046785099136864739055826065483575264256705655866416737614872840046677880955505332476119424444069910837713623649111601191228056246010358700875320952790309715570244937500847197432478377296044243807772602800097533395308687243753982421492981498736218782067498756276970316894897151227497470031837957703397230454084136294268939893383060811197299983983855992006631453969047842430588006844897481969317827095100446913273218211202346833482360951698238278450367836225159518428095658218213842527387205619160688293435503092270724172702260529898521658212332438403708496388787307853107729130505811951022044276637789890369013229047949642816518612108787555475884343267881677574501898064933952694922192687409913974433638055149530738274897641786855072984899413806156891379787710819914445909013006436512323015491533646496229646230398549074534680396684344872286499479268376012368189646429843350311706457201507266191309397328029959813875278683436557252658855195752016211005193550526702693538104042273575728129898561025788924574447640350875832937639207389146698220729685939498425926020033569364941882154265778522800846786258440560347994775096549143892866663180123566769679555596101254053610741452638888264783493153100747715770031570589741880417576944518496017353049921331728404173129102189215371947001007807276460338321521069424192233435158830706139119360580394309538700340034496943509180062715758869240500643686175444097167576759185897248824534480121225590613525952823446957206785975549908855939736883813761472162471305293315100896285485105743462125256644365718497154948868277297252940210993951127469899434148060153230001043348060937968959446967201932729450827461604594504710929869566361688384898012821987567829872211377229212523573688993159825217620624079607137378235308411693163824275945925032485905070002249296525334980781481676374748722782441555807671365755985007565575184194876189750001983546309132115285677932813584537438227159849945104615124059926521312829827542240942082723278516769060584780583760404260243559070916638625698388871239422525331649949333547583613626115123700735725691697767028159973433524617728079529968345868081217704894752094812678006450698927529110812866137312024794169657083962358110122645030201462248808098236105004163254937189103115423919490891338508378391869119788229369812706166922928422669693548128505216629375207606301725034740810714884691824311469285434573507575189642142187143636636695104843643580854773417810034432819014625784136059477788592464991784475099932933242975817714099221315393458231422181721322130706544842959615053770857375986432277146212723121090505314335250820238304273284564257090849843118886576042035184117063754417935080068453821177726650900808226334205449810958326239188716099959040884352547742766927518010394079410706048920520570569388531026622443536592290406832268474133361572314153855259214959173631076616141121788433644338195838084618616899218373428826026017342241339310032179081542262477996175384415871564582302435907396279080289081159831009100468977726024287685070931514249885332470534073616181355837964830908251769946917525843626500607011144782301047126167757275164300941073314283121864259761549065479213379380642552396413778171144626403176623550688531049880547172917888164135714027639026194559126479037745081224999678768724297502132617150239662089306024143919652468494937968276718980027904404793545633192935134600125496674060987755171853704410369024641325406196236115305895306603045842528123935747469067893864502068342115371657473885114825213656379797013274562614806465664977419743871005765277267922022407674281940780008160881114594999753512507822843553361346117359236322014137850590730492438281674541922261269297895664186147017619629962523853771310089835337976201847689099492823667105670798920788346999531156479652618313244597162855757094916208485215673914037256706989949631183129216612930294725290306203035149522793730442161384054553766421531103199179663738733676849776714392321171518504575306783562631750903154928974784355921541109674513986401799433294288641262568192825027795399784452230402494354155999646830378987791149463492618469890448671060234978498958236319759835437010163540499266408731929697392981263028569683720368592389279276231841882539499007755217744721176322995187328084801238623586945421196835396272051601030619296343112521919187647329760402696019576586415134193293103297806518528944901526425865799597076023934579574220525166031081744346271117675380220755545576445022803563551840110426654254297094365904027222861110786536839911417337341301901641256176781465464658203319133213197972841273568190878505098736723632551483806054270055349706997122534462265341840607451348845675977660853885365303418468783884024710870475570981172434581956138137246058053432752005525659321085886836075381897624394351951752750860090357280836631031578114141093080538394405331556919852193750703215264595681709120024097217355016827557721698822705139427386544698495779548004474866630957546159840298246417079216810463691129785912653653998281982315677076364743148746086014979341929906861355483460185164816632770855155473437606868215209501225857141426368298927781537194002472570599587144718699140953686003229707534459980266378983957290848428147704219673371804746980541375591678804101606352885423907524695457080487758075861399927200830626282441094483828369365579299242040189157134905915340322723643469875431474086225598725883393654679617868199182934377303091213896578939660978002675470942525480970871363271074547767332032704048057894667788299259517076280094842362332306152662359850476828087415539495775872008243377817790789133000009882453698252088497614034321627031814028104851422377663965588733409792882853796733738814312588079250393852201289303677652100500789302747003767420456604485364168916165185021232847478041321503938774519901479751368921133363311196105141337230536597357986098656938617638600437513660070841331096129144821089271688559501509836203137124995901927035709315297824047887343461225690030567273182546170567285234828751512475311502163964513150071449453268580520024854845200087156473716693449761907422023774055452716902676928009445281493536028964803430279196131469094462338988320987062021344935467086139071054975501389228466817279599597926251023334516511187543154457028258077596579664180231239591617408057811654524939952295940343917489194734967790705590351807520934146583320071009594191917555628838167488059587458683955101659431506793477731839636106991858914677063943379341409573517525875988494205669614216983696096726706636597783520597220830625720454163629489060687479034428800643952180703122467727679664758237572106966672861270533938086648291236633987846813259391704516178195862030047391559668806634260093067052031888142487550268427450703907642350012491697068263614481555488188049875605337574429887846078427827436219660104124715965602317112462756737033833078110318210962197050858435825921943811538959647366966283676540707485546422245158484736283348180064414719843741969809327341225213997652365554477455387314603072277196781492051558666988577654822604646193371851135873720064701238037752226245902719176528217416750647803206472305218174390276550970488839623643013270160053827403404489382392655097436587593209705214947350810862999763124699322658984811564921501289517388324560294519239752031554865262593156783665152514403980456055998886112617151286009741832621916972101189893435031426001796912103008290059600151462849559121556852725935911912848852959610270536975857634958799464632306164600654338004493935762345665623363652714767463884031020767989249272802694448074712145489101240270545558692794079085172217531294173141448580614506464566910047325074217026241242173953878284295726910646927415349614501255307326125187448031272755231869735337008564131738887647449814752807991347041964100248703788418229699641051809823526152683536357362635548034261513972080051260197183532161069156958835920360097663076254047609425304217459251005604507547780700554194222748361064478353272658083446901872673002052434222714048082819318222662641022390191392709878424016207998387300222676703413394175502935448337238984942001757897422386160645935492410618778282007450695420985229235814853070087976933703883184011294697652492364368828651477493067935904696224050709108445932944844079927506751265950955829836224166634999735372412631428777568533907890001326285085567091315787819059206541014949005471856225519399800162143548688111763688366034118530657873821932734982106036329555278892399663749091647482715709909029714099159179702090626423967919718988368073279177903741354635111690251405772384108525672907575760225507290616839721026735617891507004559377842230988200277457847414684381122076953699766478322363860015107284110702474135772303599915625262277433668922966239020481475757329356742091129663461313883735753685338410611780019624320186615124136862297753881342571399802532263828315433450747026373095110520221828876348767205631999456107742797271966808141939450412289929758429783974972901661831629876079061641791201062081868361049839295824789865866444729152167796958976735744687526096829122812659532063395059485102361495507172484532125845021516035972729592935410147090410933615382695516467222218497821264513846643383144376968924295026412870261998698971805412268988433582351197526471008681234372574178059818676408281507940464895699961986847953302263712459364989279182794650241648390847073186541849287680742492672024709241724803416807417083828789220400925648131084863287908478603211509921086495660431459483343251595828758511974611143654306448038223003297129421754065591952914375160216670378816061045908156926317631043043396070417697987837332299849448787492551119845956125618845344312882210577223853862669318500336886637157750336206354351981478865436294417410717713180168130328333510014266019352334843140279698541521247347608266566530505079566373881361129447979982650493405793843942807170615974706374268929393120520907509950252749196803470208077146239006858932257527440713266877830206658377921122860067809726404826750370708209932446040707795986872317239380467124189292140324562915625933753686024633249465406439939324260095834489986446115791209677183739693795038946509872219992565984277080124686754976956139237476437215674707582428491281835352493921416246910075600303126514518344525853825627325356328883936971741681781259746260726687577914724845877687537582355116100175841326565218072486906860931360320369136002997375916502059443671873716718518714509436379533232065914575250324868317069309874820210973548196891025789101372892560031929643904869464340300762534727900469572003712893340458492030458857531524944410016400321443194592310630836788926096608970515141768029866199910001919957729814506845104865560092622442008720821662620680354955719216983404419141602887498130345713672147378505362690595114461256072575213956030752623905191548574698445506572074030655713172763745010813116292850314903207771804991346141619941260479961109716010334145541183672453984213738843688590182164926204468607761319436183030525511819095902301516979422599823167113167561839974343024410532151888765153830339467860302119503599947983401640262854261020933369675606018566081285786928874868688810104064709259757044174850824131144502778412090401216093781861482931892482805700982976218754635078833693793940165225507517578477643910402075928245985548768718089168643326498150006917533717939640273142454795170912552829462006779878454752206054213186983517079747896483085773176954134870305935682560787819184875652976005930875129329193247548858221276506961812111404373009322748409943667168240807841942176273474302136343608052993288663127518952187061106417449456797363485342766515303702944935963072128625101841464270632458865139827047896832965847380489192278697925534964474460681615341656746643235010930528958916018353283946751923852843681577174747407663114123421466751415779465737552763049839081724432912557024987688574070960817482454535551161923804141843331805517355280389166300503631968193613020758224811525485382708070391095268704720279960528679634451438032614024743662914082930615356931424368663189111540646754059985609498759517722877680430868557866335593540721375540446440949036274273535331338871474602784264441389660939846730966460704808394511325149044480062931917636626838565514452912695200378116377530626994408778544723556223754030422388451538131382488655594498499413010337891681831568978291252576393444218484366265920537520842102737044712636982135653895271016178598171157977013337485323587933566618554811698713827258103043545696442896346135590360695857877676809806545517225680236570920254909432051208130354089410554888762092248584501539922896287503952333412663086844762594170748658407052780086035705058848248921198521994505611643887333628357496800193236586936674503778914805498949706141817502800981952596666998057181874107887062566234647435994358665812880114296963352594177288253474246828430852762877958036005565887037073571289229691649266639174685283502584728212501988817645022078410517128295603548818417548882716472098768128404232546202108457830974612479195441901724729337362458613878000130326546747909469499706776621133286150140307427326777423049724192735929349023853606259378940382484460288379417255382182070459272116054463172995743618032500093331595437474031607803542193381857518916885365512855236721465372212612222185856999513084708054176216762517218627202373526058158393603420332685695812064046609284041739380833497152124053220888593965654432675030893148515408330273752910106293354415058594700804962830375995603207823745353592950505044482635119585731862777636938245578792163806891900601945215011957491053998560804697680711041008622016271373457724155792483678916071430617058176530252945881887581633345374631335536150596484695548745903668085783963680291941302163455469030210635345946651330074494924199863431516856212384549546084099384996502801149052987954671778699255538335677174769266117871663229283262656757271511876181954184891740591922942324525591661426343040399944315506762791874995458184774212784225525965883008326350730127352741261299823065022500097969750508837212301937412755437289933811215093029642267648019192697286812358197973986078598180180960463461458548842315338417057171365028775288221204753168116373543465395173741896412074042955174170752988243729631706155770633449017364697809756090964925056148989432694258942613250540036976218999309023466680551444812979034183812698340046153069028083887120111924917295022815676639406625194332536024795344153651120131827957763670175777548009178042243196004242351782609385885724067584610666517657190648186081955908335078132188311739365231882561545302790825671264193988841994733200059581981407106961419243627620969652910766891177021608911203844441028908567839557418192101540573523752109013955690770076763436800264082003081690330826875950035551522895530653871052504546371111355842056984296351897368126138053461637565008728747591195369123306890925089752168466497290844557252939479857594687124611501281597297209431806515975901877426509300030289882269876790501154877139617835901259551212865707928827060522433295779419233925593750777138637189880013478893387630330608769935351263925292584129621760180491798619605584312528792353800517123405280838917411319127827950717677940422713511021081746361516758443246795028364146832933387137362203751618542960365900525615661253671248422968439808764510267444870372232982858411567940278443229152865286199682313292420813030798736361017456132163093786521726296578267891651923826990048213379240406985579358091129272241539132636583891125177358074849146856881900690430671319788985125251812706549557238574592688124713615766434915464528722621534485741726049379937248251061788423897779287466424825365581118621241818661626912714967130532507806317753608114981683557926997760346415879810739795428247462500429397182021888480201063734885993599900416291554928558105891090126580979191935428954359555717984815175133412412493050158929639755656221322209307159961973123489992424492001198777508886728506955893047810440927099833371550425785451984539700356034550606126182190872030645574401305617482820550915127037933055636374960131914030856478921316559195382359541781610411170911415184017713398303934914667009905105990478552149108898259502708129692791024436563435348259533338664322152291203330557205451900441257666338856984039599783825794464542085119355139659252021136799449046861901989197538674027406607738736369537308102228876856157676971991619560186008553694332087068342229105136229376096119043708153770713183391442068236791248556419400788365357059135000778126098180166183567637011681069242667388091080538836112124377110324959781246128647913582933851585490648608035134157231087529801543649440423891953749163661738652903943593720098616224676576186736928987266888312096289724471511222427085767278404722347439774378998199636423221007702326756869882213932484467293209951776218167637069494721549991315364535033895277683293732972365024611774751633258704064043922803370372600356637359108872876952331576747991529360238865921803619854520512027272244727703564037626936664954191152814620724659770946522600775962256036203793299695503877328822982482678839487888975928815816624138009084516161059115857506372758258202583979970836504612994559343281200674863642180868905030460424853875021760191621492640918284530010956378954590119442317981415496621735953452453713487937287759567374299288617060380650416911266309566954369226331557643575946267752602286858370252121094832926722147689709284849332294311910348039190752363285367520388834003606467539161995633068288121613368126330065621539409985967093768021248006111655508243653135216090018707007386573476399544611466373023253449830866997279692665469619089110201377929881777796260742820118128721431598404588111413708445825463808986621044081286275530960916675001759927235532618316226615931249994748428885443373468305096848915664085594615178318695577767445963581266951336055743897967656385271652095056410329416065710061144912343586650073841342125582347793767533453950637340675186154291890081721953063822517150846185932618071585257217594522607991855935402074731676451905451809813890315541077951629004507577326860440937170242564457788403552901484294570032576060998564741493436428185635792788639570689788640376519466837305846317140247696565494280367821781413168659650924413035050563903849395422281811925351164874502165571655118871233375427033274245810995209948342583423139487478978155021558818099612198028353267660383099291875340124109333865072811441653524699441553433889762272376988709081981676991614818792231502211493057271079587725839526496761624020000006702082479080364345381461019364757029978631357468328389259871606675543619256544073613462155597992713214524401232950483249661906146916642814527954966385021854426089746895037988910276945817726992751959482335687796992749445911949521788158440009986105627803157762235959120457034195421592662844835070696466280941965360531933774323905974456302083923045759938584566668952378309012874114432532589330605320597721281116447038972812735826644202313760350289618642338017094124814672184528579278772574988151012438951759500185728676699030168995267511427639273884893283340129573188567274083405819917656267516804898631790444413468552233816936433926873724655220143785786132270431393255572184573121976453254387652343023966405602660320757236854015300728260091962608758229714258710075908917875275916664133949886287702000041685475516522258501728614285732361459489809372726407580594258485153347469522392938158898591442738173166732255878220610182677216105968077722680262503511379477653430531256580862202350538842748521468422910598556073919827454141637575574163723010109043483397427048372306785544785800323147808398529426982684575911515689413162711397927947725470402701496297590909961366164172204646658409032369713857310702579331593580816599990775556055403961423493591935830484019942899584333043519728509886905868454344727554891065326495724165780759038324035276825592603616460459248093897620197396009957170627483470518246319480278735777730288519789388621630373087262671075170708644398218086479661068330185437443173829721220665092917586440448901210214873388675858064098659797191706730614952765118921571164557459666537437927925140880492002415565229437387369350841620637082987039592358478421554131918616218884306439253135697439766231005882256217089691396057326350523445232800724934493425576398790107772244566746440645202109340586944309942132037888669663571387681384714889044329170475499061764927654022013168641401739058833579790873320984997290198921128755357303684446393036597565994356569884702490444610530673480960734579518405486307555499983217980259054564574240040135876955081300082657849050711486881014436735811247172214179515670072714371380137009915237211635722902137050087056790863010134669508858679386044389069035430030110378428818587138806334266309411747441445091440019834217997359980013596289413177125260795256979783913171053111815710833083946226987031098901154324958400099223962398640378399462041719206396278449501652380284813896016418003999574256368407542181919881948833070534416617333611074460133966573696465440974548970332806379700722423929281826820302888286587590372148699141647005281780733149807824835740015200553770641186413049398199954074247840966923800441211204131557911540317285151024426969512628939439022378214614200228679536976893652137720983108513833111329564024549877288121644887139965670201466135170780773271934712929873155131216824381996360449255434022355602233272168644652880474790397897143321407795363716837974966068181861871276296062818311648173021269789236845462969089107298277993641447107387973302660403921594541652621910926196071650716343751125726788464425782230049401592377934745228970841714257737842216339941506326673010091075095905708831099297880391936007796346529614488191763779145259095297353297488812774227900870133470745406885009252585668434010774055545220338420610938910948277170622479444294150907298018567876544209421243757930749495938478953844606325655825158714268890918305282313509493427173841841918645486762099697552773125760905674280558788066745938303701029413429330588250652365298202752130194709036737517628668721870669490258163460470264439314745887609698948931135836720894242378351160662681676830783453508590267431971930856149661515141144418401966178000964752945743335428113273754165555374683289193826707852737239235001302734598428142977965244451992502278775866627784736175088917481332247003270861942695766332162249578005766321604965106575692346445834457679889526898843537174265595289616944729349013390364320747078060792076060050737656941635377679167922179546925862561876401040026776871192779783346387443977898323772215027977417847897221030919024997418657775568536576508315459776747656588000505515041581877505733083266378936854457792789922018253641785464889448605947940567651611926779379655646182179527021932978829476893507647130675904381003424250213505731173574372110664801895128960878636765850237017176957709843902289500930884113886433791547106468234232284471092489448929837100700755158393637823442030515517698557743364084966333469315723317208831305772130188824157791981374439929884362769625511165040247043463544642945594886381616470617296765509823251832376302980503639492468914819209309432245296148383251857136154974360421757840004626072355832857453349589652177121633735301332412836045070695344930977372302759169036715317270355050880933424940407690519931828914728033458599012852181681216429514328854897845285002115487463614169020570723624277142368353300485313713708811931756991696393449577990684683076486576959945269589717740883886258829038212820286962385156696325683342187660402336074654444117454736529200968633544540344303986885596416556370032273658908866643834733353487000152825528710879748861949621401213002598389266730487068739463043277215211602294417195869928966320801988636117141731533939467456572805940113807616990384985483513240653394166829568801883805147573825552218814626262217244797101996289108491396289272190024317523550811730241487238050711974911092728821717943871857624192207455121454676474150979195023414418323896063904079168575719634980306246875629455312829033098706816018677898864005576800691702629119052163064006670155557508504128200665355894220652953547900239468530256803757350298334687547314228633186682725285006800976346835809627739384086032484171282159242600138525426291220933327367236135121520279588961691469136140298916138940452287407571817872802841083901806100265766440937457418048096946582403429949176802379608112539540891249225537383668238600706157569786514092705231551913657036652300821158538099824799636292258807398295836718977522072103109541832951522867994655549392648504824498653346282293265447426087758876993546526490592758334197283692729044412309426420361557940496468617219108220756642559583885073377555976548012722069271988175319045952702874790063561704898570853032059423047593259279799266476232739609870155926867773063695189960484201000971367690987825032494129871678252490074416391076357083412380075986440012077774378112180698397695032755672671544638251626073203288914936144749908799811276069069856017765238222255579501084908871032658843819354695679558422339875262887153002647305866974881886676947184892059937763225014130246787115965604503261264987934236418665033939828072963203213209839535866501688641392386676348271023755343770608553503115649930357489596887691411666310800718185035954581999756674802056363795365487950013458570864418342866881550241820623144421270511477231674152696258115904417195236453068669652390230159610152113019575916052233818369953033222386492158649308242150791648682067406440494250210501572285863600957660953153642839058023865921356417176056577504895904639010573350510867242719389249146996073050942037120539557402454983282547625952202106512287253774160686290941132963409463630746934240246653790447445732015086380192403056134514936661216004500468582066530623655723440658671607231611962495246977854824874971385899418161094577695293918500900371606445793515015472342431015417615298530984978909282780049499556423110291539237785047260719052042234735288891323488084821449601476298992205746405367025920068195140977653436373558657628993375117193875526850761952327169683339381180586004665474107655806214999667775399230410387521645894349786897222522995570362662398030991842359114573545464695655714015611216165228573412270554476915826258199538968389668390251278838962802692986823259292664823928014349119742108059948147978562288568509300728974979108817429225113188381941834311039136574434310620438009626519774230127884191165614719260324414181910926859422091603472520582805159589908755667340356091828425365870743459478615000986320377321098153315912481852184006585501597504619810333465587875997052742519560711130118595563410774001933463019695330967661787039994071231742469667617652336771349113226647134141347920294304755371998888613827436089157469709142600311844677885357853680127765872694501226837287812508439178185303728940837818545723668606232742737652089431252748964726024351349870668762307223919912131624163087487732028242895064468466143995711335717894238696992346805655911108284846089169903851464265420304310722033733805200180332526712621075417544185650539085840818206184929845561453537656515492817789337230200843511671557999448628354208298188870192806084131088035684127498591746544775073339369781524712783069603133042446133715568585412991710454741250065413064785622141479264852891495923219047826146636556236380054971678755786069589733303867089496844157270423112368114449388948888556160260427077397919664178487028849237982256523796272287293759268428212079708914463963116518624496228647498932982953906805694151299309269389366892615706465071879868677260229211250402869234162205002780845666348776056892562638086393913108176756974523159314423835479868053901473908149697935473953884339433217420400826191140366045020964476653950189593891564174826478258801497973799981743801916520288007719765459949158661949599730723810427547967012425419670439263324556823243106921317370707256507772967558729424626648526856033982471925702607642990204166993631499931634730091226241775938866234374674157582125652550532996526987350932503709870376853998798054252461169469922404553531330028231913953805440749880946299571910302138684914716238676637734372625747516375472411786808981366817628910046063373084319404723171580965668424239733315345146223610248540501118314396678193688721889363818561588921732380808239614574878864351730050360788759170133059300898426245244891953187716785986192392047774948033756708514830621363908462235238841161217999860128132825605787963522702959373929825617082490203567595677991978746051974736263010019784526358783447199293324409532538320957713971900378379708510764888231597120272965865460180366466723389147519972232494511430677871346941218683901839191716476631057686518978802426066289617512054205389901371955922975502259581291731202170504475378333794828952216218848073909482566739856489040663676629052063107287729784254003145538141695209609425936495513542201554980514314595037859053838086235130542437422829528303610864914324102196837653655764463941872007506962933188979445058314236146369641381104613136829526892865296856350485523441471414115670357723191580200964110217798468415189829139959980450090281556769730263919415415345091424997039838377527510181520903262036721327351225803256809511226278223854636446816339091281170379508009321800990715927773108137669056570363390285519670505522922298294963457165667865988324235655900785711120332985388324268129234357281959094810111179038953217191043565600316985341799036901542125628960195710733183055592524566450787814089904811902205151888863925997241387809990788142326208547887065927473193246281087844499969526566934151355042704092656939010077060881365748513453899554172330710051413020471406467967097683491274966536545930259061339223034374635304892632878786011853153740519249480477560205313250549035418169724660546425060085410444290214678855238881728508216567163386541313779689346243843239743623493042030798499244781067943675263787998627761990995451989997753634319827958538524202234538066922000492824072299185784859817829626846513216232266326477700011027427765456848115371950422304045340296216375815676986936850807922150049608673207702165194650836895221385761698111902435796173530887222487292194491909664322559282683933283175715844297330576730130970152242099794770576891962991457351944475860751501784397680944139209262514090286483558223147219689943288514562102497172294882485469081863911656670900047655421915560222590930399637250473235885497753981648644416143684119336784664578316487905339219508265354234368353907814432106428136165488856625543117357870839108656801708392832903557321823715070242413349933464307567424730304286437970032030093444725098315968306552306340271951566663256137590753209865541231042084483696285534663513950907071624122025522182389367563778453136035035558953805539544710545279337444593010819691416603258934810659144009864516867546658834650862654656742326109169016238288470122611013562690916037434950282881084413596462767294807921810132160387102789423662138316958278534207701512102016906393910682538253816717842704307411512145413081224466890871597286942088356881596521489726563325142496414252566036906846750712113020960910219075466915019274649680030740725781856544997969219630249523304446399264100933639123555751464254345527825934782471168530860246435682766709474042096013532822302602456670717271058170856138021991736469265502409685188144539775450247169493667184025621268673851429213770491861854396018078530616992543156959168863816367280385952538149281609237336106338026576037295811729815559891339106933038965179741030058501138297797412947869688428172845284444845358672897992178904964945604870156058172735863967315708305205452445483609006581078867080509653388548483197011069777752927898137062590807698482195588078269477961191550628563154414123802523771008401836440324186842171427607472746232416138348633290140129347926435897153509873982930159272418517113805098265086487058369945132025066212540902180295560245373542838191521729811999784425714642415069433594368322577481065119619277284918312951549396883394879226805403660179806088892311001443027295401328443376428001215537385897119844366330782581295666465205749302739691006309749453834977776038140617437601677400901121633686619491838853566979313140098859811458702185279107168340325688328093803060197343434928192969094101359557219014307812484684211645778424577947679246429824401694269268947298894369404882936915979885365005939932085879124037728344878891176150286995590471942365183594252993631763901952869016822135863505024660987095114688121277408488750843446478726537801390376451570403741003974160813127494569500593858353544079636896266030046319272002862851038082695530799093696754454483045929860287694336157963547789621971001863268767175237532812599584626717849117974983220063595313172948340625969096183569748262971481803377474435017992628345418046231630646834248046086039151010483858653342937527945476789918940173926633406737142941020981930559680950893480387951167579736046299367451568096930834125236031304881672660710277802963113390974141684845261740098867750944748138517469407923815280859419691203842027334315513561182137871714037819879699322390446414240737510059069625976005985788563749423416504491132292467830499046672989943068243588100050113803346133018323077708305297318014981217590015867364524392011578250551588137789925322274011736880901070544709808591277302906065419354429617629849665369239555613485316762869381750818894477398102135289329945754298627039101631990277372405202699792029659855904260261872153621231041536609190293573000234460456994573187341447475406612445874425570617484159199466448567702892354653466585873843395081903451685886834595348012961391896764081960997732483765831170860798840179792634331955428288912980827550660329807103197079836816726458523056446862252143817018398497936504976198841007775799048888532080123344203763446799967616970308498283761794289819642967759920695462982441197383182953835647525027088805214741720937585007749787853743805388174312165729479936299270602621289950038103282921392172471746079324196876836084270924672100267446213946738550547886281793407481052842670369508516421477483514484930027675689580911432757894738799220153669929710668695750261708603256822325852288386393827974103498909894901025234575315918722571918741867974094502246062162911253470454832179069736169109527932464981190180029075182223216675216219259154850419558480626322869061877004498233900807857703129398781923646124446207524399280730176362256231806939642765331853419803904111512692163861119164353803290494956383121558921820361710212734058049344106503194804389378306755703620837443709568840508762830300549448827471089941423131502590790194383996962757558787681820731579555067211117286614066519688933162626919879708762466439473666831429430370681894506236162353418218561494547700233766886432193722400323840428642839929889321765454915845566954444222397564476355486502701283236599721135203486814194491446004551201466556165463656366059032637495519048895853196651595249560141874525581929112050384071956454998544751866409770704332242200353305843524720432334527569976995869685874527123855420377310315223717901955664327071893104081405355335207371242977100978128749893053022474365042094692397616071471522591821436580096282248809985111028698705864378349107170670631793147967910020196304781656108601006679571929612290457260997426575237494090150643147951775268988199113050856543035567084353035312479650524289613586815621220988632427560596444278078936288458182446949206252346626865481088195085162775875605896341910608068100121944596576885410135588443681540754313070078877300502374019447528040241643742806196400209475139707413575813457253319560154401731481971871654829265288285833549804374112801704178208136579122435933200914527615530040322335039829168206127577435353778791724683774443015850855069116899443404672982728309996755986106864371212936410952882836008496044588649101390412215951609213169556312737745231782880669858060761512397058068469727121296557815362913544534808801487144094051526346713929685490361832957060000793950540694529077207532595682446352607406118376151692222150178107047383181556418376038791640085228869104885237467838819522599945006417022840170454227741860372135124830821265801033666721757489428070053453117324857919393726068512256170695960377007110782746043557568974985444221444830134645362492753588624817659292588709619087167267705698597315554027287289730422420981218426215208218867553602323196343391298310250049377955950795001276382883974628833079128494802148040131756609373816788441550772969553027900239321223194373537839441555101941985372067298151923986615597759737201343931072087705670060829883129864783352266740335111987474936183813659715765504015693059502583665514121126126787973968487399042443299816950145190129198182533224290294198924262998155178350010986551515732865105061748079720049374247368376445849170589020709158051968002744640946579376379163287503497730576374038598026300501848760066017001694184733255791458736894214882003291453384359056162058243438589893482495181556849059211053333335438409622491222802226273073422889314449397949253323198689747204502986292155785522965274311996363075515942649347405562277644358011324041672339550394715784997179661200529854013410589032694984626365049573082579582918918895397557727935836649080009331838025507326925430064851704695698699255752843327197225266152896978837224662581584055199767039989048230482299192808512440388639387743425243398478949625360012610736975213772424590161857420659156704471107840285500377114160799212026570013617029668466046053183129994196312603819724796172086594421589405537520250283809167842974796962660393812203543378983448756029332219321404397979337442562976888053432850718043658556283161346034591941130482499158001881044533019069111859254637869960722330533917405047562559390694955898938522002749060564681739898510567262057435517906557639310077952596811837036483036183496494369662969347082780688199155744229147119070032495576582148833680380483302805140319964116642305106450803180199998022538308591025360934632477458253668224689413515300261625985509346087947334840793366605138764192307178255356645462918975571379269258026445204060934389252920604071477155543256781821442618344989614524438525548685008752476029356886199486273047607056237849470136874737561801775683933408755210617121104389443679879865998801020745817032917612550897316208591006454558775855488177457689132979247724649268138640371276205321469634003836582231832523743402528631498687638063174125128853025321639576988688363890634791662971900014920868067739651454082357343795902217847309860047652220372924708702227190301855820629565592555022817944490671786276834991357147901945623985981083922889408397442129738987710711105284411782080349950543341465268219063777842998144064966190910268736598097598032855558886436473629890851689307630626169515633552069073545837965125603259369826859765693433677840165679173758668497839410093592926256672440351101328470255380437354506430677090655923019155547588081469484127666799559915949356962398679519856423647357146499888032510009788939903272595618394415890995126613834152956303137054933521450408924602141681473299462528720401276364496725511003042688204557217934718824135137296129300348112040393753923651985609397077268420373593648213192791226499955718791035201342554322117652041240454999333637584197377638576966757811472299302518368553537548880687745782571287892952131154770267159487161310243548435432195934235259982238767816853806908065492290045870006991939248204834719054432786060782691002645685533882892117094255527551504618315666139534207696263674548108342846815675700688176802580234121522127934545823527448995158566534219548606112617977764423514754760461101069641505614924038238188194158306357128931246737916857749613366425549058339252652783343159076580635907954005501097474278209734158958778176183466663236911773544764275641641822893174396919315983532864348069804161654717274898215700071129938366789985968962461633506891849455574038246405981400841363028083742283982904165589314518606296863023913094242251320291542927896290299430394250336215333324453501336521424032890446435085520103838236379725298355798702423367728623345214699495867077639857096773102221946460278375017209814082481603617172013879916694945156806053278710592857080126001809530331913854848477902853696754689284842542544301350930443993050612006269465889775779691622007060816600438725995627728724481359353382609636507737973001993643720789651340433175105124318278895811746932313870616668727748208107101438456474680916717359750276603859441220396460927878636671575321838897407032354644934101763395386161406583980886418448274100152191943558743825076509670669675599329875118006003615191339304404774966622315768100088937823540636733103927010281826209944931040549845501962013581106384692284879654814809456410020175206730349114349810699559687416900424830322912061441080696242906104030288766997648980214226107121697327524277203816887328342113856945665946420846982585290118428613949996215708134068309609662898555161326158672588974669901279093782880589535139220741547171459914725373395051508092094546421215767187917369093896243605558087856295026267704052855503066748531369154268035589496154988528613362771737081386238053755290790088660827003150124149642014340027992664313042040001316553805099445866861886331840352664180707127596273023872390852514436337912630219515624614502567821118689309938439740981892643032530943932633773611233604717067107096677533087210320455030683251983436551127099415140572816052848815725449670918529521240721681001071629639078304525322573997974071579615225017501010497042560744254821717163787115873883143954080923645348737448495202983762681926634563173715641935408282896107067792532286744545379740257554464673569269505721267283059197562902009925752681274632512767082508981203329515730842286326297766717776596351732759348602993547644609229405964454979655167519955171205517747719903641557277147651549396891097620826760574473321995822144576162997113324577826747821453558671015186006954931334171706336378228449389693677420906522639357875494669830378420491521364432759043086137824510149080443526622149888395134967487479641073437322578878668656935569876052837702440186876144186866269562204549391018814486549966346101155547349447881516730382135122136957077277228175207455246874089951053147735863814038430108281394433203110896526213206319680718654538897318609371608854326285985674708338499019449061775259392787081270209198839080598215721240162797808102827506573837377357237990116287185354919589689813869521390713917379844786783982634922601434638597162932277715398715708349851272206684238263979326495575331522364349454533668988419447217046936783155356133117498428495599071134354702590802625006595211527211602855844524482969993605692184954505565314499941612702560192153666072572734574411692256311273740984223605602715492680657922777913554203703061892972318735253665902435332928851089422873210404025134380143090061789097404490688918221810417474362923195886839121343984734563609659539575619992378078703033380768696094712948454066051421426836060291406335442039950851849726127925380079316611335295611129325078414214282889843605605912288436215342233133355139263082676032093910296452697687611330357937623785580768325566394039024377576743371559151541796183376276295911469369293711355451243812223909422749843186131687577059289112207586849836305130667685827475662805966151336683328055886398103341148286045497626806273407496169162140550256842001964449592954159897666821180335863070681894340117774941453188533831353513870739639797806364561287353827198061448054871428086260685090260298433955993688511864797777111455488666654743120659908227910163415708870396000994089879843762192937235359343153148006562099001371758563016545195701528308410748696041672606916071700290421197757248517185623853154994393017307651584148659441659329209872553426994343065886670190411852884283425022165239522895169740659812502661557354144969600539475200927739628648338665720198403925724412644554581021622031648477868222772862788456204040493459500117941835402050717390846626726818510450983802660416127577726612817240642551928543459215899275121090055634685188086612703827802403917378538323278883554254018107511764844039414802135626962260805526962206369361398657624087956753493073797827602465827753931638042543294427397301528198929800215566815070333797033721973348889751795391635041948741023658669453581823878198315045851938764743490978739562551384093984746355161343251672025584976096478411891052750910075175272817123165969716676385863723083013572426133567496644998514968288480913346297950364455795753938256601954184298447015521155718625975774871992235774225809047616934336160269238626171123302545424245355182210689156297417901431894687554275825537081505320229624683098543952902009846318371429670996896228607191193593242131803046748488638324572525383422753341543457825339693105279810622922591983534396308105354587743132994151321955481288981984163646290343226068464327333996964916909758455391576718438827260541936436185554839754248970463184792830048649759621196194619799819258100790464806931702695531788238066661368178336728703173285347038111272409409729071626177910298394961831428699927111154563920695807627963174438927274967990674132399386631147416818200894137291063999777709769940636586224457584014241540365925147349244784235174429749054313190746059180450420004253433702566769690084305623532469724660772391567898081337629211891551100650312883429279488403617833724155680514137868958362959265055584459947521376380404362567161337402053599788809512594702150546758511644252734925449078924631075849012952310522353390754137525935530693740199344194470883740639169351617325795136031200394234625979249708723282031872877012444901148811623418865209434462232178830103757875473781631094043828568085386533340385743417120324070992763101641384391573479376619404803684445289530134254756072670845997965786074547763304652709779881348602589563174410207329258815851355612025162947503677683305921678503065092524051861956495173551730403954707613629509645216184648084351850418413553776468113611365172812465265810802184144949449010435276710666327778436113324000197803027642627526471299766639828622136941187261765005930498139797990851710233816727581599726264045880792994021411594185577289072888598598405169889925359528338664046268303638075612224788920435151670930737040054525778575171893452796793443068798242731042355839358677221206974354440693289306653787645127260814900318174548701353737246581551971713766290176529206272063421477970371769636036927932672052333734306040508556023702885360547000369412630423989173072039247956759520229936126855170703742750445361370192239686201192569655101045693206954683441841058465869172877295788454601825947119116932713858061156382501193624538762513503088823090617482433930525565379088934249476713189331796285324428313206478463649356611475916126094539099091650302927996483778070870758400006662441650529607662236211380973360755300344877895868369366571341652258240406701920523607309944395356374757028278722085689799633567424813836267560864205277117281041331162174258210427907950983953366663589981080897657998095581118592046357314578548813117447660607752623354233794053240380119113709619957163960377015358540564446920026025969169270929861772359967855033042505752549622400043324522703075479124690419048927664142242306902061590739934382553967742783117884099942363432236184483863471471776055892066980126161068607658126458160783167775316626267186211779027523848277625078935028522656824624175224429622821877742260364517843314173177219840533149296747011203844019435821651875668346645065859367195281132615904591201596723509460881017925867553688145904964729991562028653759304675285459241879638177151933859783614449696206837365491049885334663126794540379872819825866997913069544041752716759194952209740044845588765156934650856262393755237862120203661457147560101503895156793641929062472052510748120213351121811542139725939994384299656867961182939822699543958638837847502541136270148417890297677645101443473481041097654148156004006860841370837457193599224568511873604949812647530538425178100109159666777256361952149426753982153734920918207980236223493826263562993191727841290882463351954886627538690815414414120614675808772446925151111612595470344513617889934156654967649448159694011969200503793031117647228651903508237783888035918492427091449300452329390740339865838463861443965761316617256992246095826989645148197284911523709914162463387905246025224656970323976197716551014700022459132192809917393898992678819060328103686674369038371140023937335243884909154376815291103702486459478124356090808916574920724402096770755252061884581189057462319516948815406086927012030157613943734164257725034248247658570882535661629600211089131240742732298352045774909131502505585419595691198043584628770375820768560940475540422396420892907467085149112050289698081067529222324864923316500439229286043452654069948547511654769731501658005618244300119955055410014905400041558421076649275546135747625611257278842402537570090247931795222517613177007669646366476879921796093841098775589792188100199637932014179344142232285404784439560739479173250579315902263723583523262470775974572420415646814503028198487589744116909326905425724344301149188234826315142775434322248690699215709379218673992988756034802998106567482964776849564781775879133533934837009884115483008332027941920174581366452887593178934108913199652671563162674608271678709015756103558483433540734498790207865756786739489818810091869050947972698305273992510559918902873601307278416653682871236779839938534013479196652463735539737793944605368738731937680798968117109085349063051905342434327350994594965210526416391370898537210217393668623321805602696790684237303620932108546976241055369082877008208497028955612592533266155741992994816861718751955033801160853726208022517007591330664789036255137641589750475404015425092512045510248783612635111001119420188747529293187153462848717286107393070105378416814426344131503782860535030054417686255710887725414238811134771049549015952414579845841353702248451003953120165421513887835007408771525621497815119062551032642891185738069113848042331508820405344325459000854161663014462582463332083606068317482422461687106615298632753246115230109322812704406298418910925175807041308480574929051419770604904513653287395385936880412704775253769284447738954088863952980777410319842625733977014905330733161221969160583596227911646514761553958801464888331309959399533622383938928341946474892427780407942666640553163254429974398832964380478025549437784570682056810320520490331750183550165799274359136976114034245089418824708492727624601822285281425051628375367915631413196862253006184858290890550195812357642489773990484933540251913692893671781761208236881934338733177347379768218504913200404132786902746440555655761760062978658875426163236595579471454113491100966940470478035543283415041632993013378531715634312038740174554713470907027544442232574414084233195939961625497439357603589839309891410459371802105037110251359978432221672071228171224982657169187913714693904326293624255138017517261342410635505719231411806377264101160123164906821998521203254802153083873938116871126813974123166819132967126043994365270670087124192495398654545110386282503517376469492195446761765469448341764667477986207105087870767567178950683673574021567778107774361040655710771096732412766181515265540376331983319310406432653936797305527417283091727438580278952048170052358630545149509794831896581986123251020372335242642544829330243426308917191144975726769594894434730282447555537723378464300805900323799775928869735018123561591246933273188271646387015392040466857981960611095878730901639382746238842881232391861082963899925392271522158969197669782364970768848908426902535610043349809144383968669267130787148365222881536236114332721773012347468492922155095050775081793239441436730095405061973355058594604822727500553588238972332950054913270901094030540124319013250356387361702400539571422282014780098484582691014025652536789145624674779892805723578303361750254547328027195306056749407505734502617196277001371431704533283792793483076578214392929614111217516342362057404623262173066494665718930003076072273293671387114111272644453837633451311310107444028702245796666831592017183460128247778700931601484354168491671974039638347111560896900285810336376623118672816678156273217819423932154684202788499398514183184451372085013834333845915344922185135981620283763098564691070819630881023271653934504383698734160972722806338483148719718075354920074517497203847915862026205693254876920443449855465757792661603123688237815284757266736059413508031942282873030307533288377051942587468980990071361130397843512397701440786220296408454922795081339182281534210249416901110581499673604552179434994513538592216183459011264908697982265518591080781513420084589279792531911177587931097787087051317333448014275865976643192700420440947972944668433279389515298398944860329593239549796515354353692636350613285940250425246758822978975673894804499535087741650934258195931582784444386233321069193092308771218716055447203675860467600613073306743616348538430954125776876779843911914935088310391895796487394678740757018096095069357275960611571215047198280445939099511153652261990884966618835712503541091271855541558562344820789764417061181086531046951948577039221315347104658018479119144851063641989926657414005854226620927313622985892294697283353853083818725312345427815391248185646258086455793789587134028632052784644035798073074209353836707936760507682438239974531444137770964357162349034769764733136720851817315580116051966751288721810103754231743302000771762727177124512624427337401986032366191422595638996510687031249577393329160347390127027892124151519457955085161300977719329883911755848401805546396060738194018790037177246282971417166939665611993670605599995005812612174549395574287645482961604503904232604785308820228736902437923691737994438919910064073727948042067490039183949331951175489620890431636353730490484383419166171535743354558812772926586059332933768154770626482094503659176573370508093742660269345356318533542685812128378584075365964665512601050556091984960384640298424994764128622734733304276316871565114951186079803921729747343561016899519918699704131170268825637086372280511375932609001079063878047355567912425981070759843453124792029046909519007868779773279135710476099921450330318276032228862157477465161991997015645732517111910625326047105346623492929602587187779760008927767807200530781482490767197464627600598382311497493234802993903952536916066023692522328759452499369926513245096748742199386627470729222277515140028290165081517116951216629382325636536167551745941331227470328388758229982367325318876121637963636799681604847393907394559774627756621242882131173600434059243705184010106459246649336456595250854120291696740182872974495488804417433616391374625929214702666965123713174432784026435572017361258446746394599331270437475270687969010472777481791089047590926454562816252184130281259820094318678228997705652622709115323717540509404090159139793364791707307735972223294221835504435388876133412250998961823807621288162411230396273141897786472655050935574093141523459602525603129535547981361285155146101115675705676459315680583467193484086181622749534356227733794724655701227259026850927826466144761474334130544484989769017267465392082695059347806486263897676396472309479343008102196075844811484076337080625800793895555864230944290400416497826211141632946096124927771838392861150914360720290449089470304060945361981704168127938495416828308385788677438839026845061496301409779741138755386919717752876748381345473670052505977667048195773201063105599711320967313217478771530199737958812739559992851105031184240611316991063534103985858907663359879956198900905216171352164674555806171674387092706110958572830879667900631145867974833693485924560878262704554032334406529732489317274691481917026837912212894634898505467047757621152236269968406427555752662122798117077004710357339830120443392511226011700252385180185883332365873588013283934785681091526867539461812206173814623871010738187294327048727496084123271050014662568247910162242029338690988591388687727097564550687072228146869214614857586515398091410274068381067332275961333476326122195914903418611832746055065155289464105647881548772358644657899919284113090461915036578809331584211447318490139461389523729704505806190239893300644651310881574055273801141498009935329582180721080002378254530240537542967822812713124108246994216089123736498942038381465399974149519391961616863703558036361432117115276085281391493865671242191897433832577134521224140696458056345657256404749368659484991049821178026355466172814742987321503149577602216946055335772690759457550502464799855090687622816901084345511688575508702483378229711726539820377560215157216815786763119544552400063060991873510570805338146983027333799279441232920338041379399381731209687119874966867722519985010105970635160502312501328210498668197461311730897501637348087454650840489761693844864611627454551947114540260040553892878548534284421663578836736295445399831197101686412475966417131826054997426408148907604158330558252121564029739962407707690197650115124553512381692171827533732381614502780564597341308542470276027736199294776010223596174936357121741152645130614702641144801376352567526380039068673282268798934760423878662934577608767280058482480618529811024381525725677818107816525537966928079912061275336335230594340685924023266342321578664613351608512708700985576988586089141733143446339779626703116036731893578498385258011210890794286857292013839758929438881063482014723719642220915631266517656586060720535082980354912317867758554212138420452502478809655120111489390074308078523665784382845772929282171792151337947653265385170059092432965233843579832491243032353428226415571671831715186235861152012337396840117135091882598798177461617559608006626996718795053524260838009008565073449030418914697684912343952084547918643649174828827179206501592837098351382440546294922283792261795074724586652415128204033342884723200719652591910034079576979965990295006198860407673612724650074549838618966580659813137588940192915118051218669076624903479452268407057980730468509178900280064317719672066979862284244332696400400540711966222566748484185434585140466570618015980214924949242758632053694618853317677425659116468997840521215091832486148039631648186842752513366099844636214710216168528241522021529623794351570326658483733341182922687452842140029095225150917513951146606538153509742950865660374072037452100733743070969726158710993255310241809831199946436787381275842444267141232311504938878014011438682720512398554183415043558332168390829289073454903053008715024078464071820255792746745110180893037939461257280745846389003786631244872462460364943475121567636678017147453321900762256640831206405519112402517800535334083744186652002720244542953632593118320394793140132508204935933238366753542229722819639720221218325320292509955730069690352018655908417925541011042211062271029486112507656252365927075184774466639106606741126599338967344100539278295589009622107038659756699288435217006314266394675899581190185972928984601415991600822442587861866998235052780469606729300054939931964083463389262188667569314070626811545974745259425801656179229448159583647654041848034855251155953450293923563035485242511060701077018342976560747630525462595866733345979356146353104757282250209309609620362300470103507815453174721367967130000736445054293306851123737248366231633585296936009574772814961504948068663698483465069619781278867575423083452733590442087323586728336585288966679236182443680932121098597241880150413205054372592868667090150992405862720215969384708067062446592272778176248713988516408350910642669723571793932607721658490514607251377411345983934432314570801534149796990987106770700463081713907665944006852126040400024268799259321069739663757817549840179781471357964439757084905998529304467595293133075217885584869487278118352230014484528185158740276533709692787136815001482396186270041638421849630951816248267744752215379892542023116982084256714860042639347752341505207635200751980856958571953338208340545186308668906159640725140703162133700431930523160062854629614840870753049010554208335796856878381917243499404756122846561630484649244107878262056411966968415458987319462118772365634558582798785194693387523175977185639904791008200045856518219139399080726710571238520459320164565944405132416825105689604806978300466583788628143194899941748479160169362747652714838139635843119218597093341347693313760328840967140264373192578250265244406186145432498091983384075324121053936191693794098400367972210223417805431819602609488150496408142173616542949534618374781181066459596863480031348322030640721306270250567312919482015553316383999034249917752105271117407546709711611445257513674750633566182303888935901380536234957220271091387346393911242774142208623556306776209509822040729495396271264290389635034151283802631549412565297364659141050169467355749566061949273275898348540067416428368639776897488628298383924411068625639734727886677485039018814355205895703455446806909333994848613345119218709548721403632167365492766345694797783667035122862112212765584694910821035774804931898478823154723247245889236773735729228673823707323172926745810812233285851816808393034990498627838825730208749933137933997708253397359748865472364926623052759873390727698438483215337246929313207954846326873070921256473192565979541283834672883359401146060650805471651389845549312347525276105530882290929202897037028546528459957460889349958796559106340946459365108903365240944272430920471345820418908435511898044011541601589406364935906359745046653450918742649605226190302673859863643352193116212923658002640796963137788983570078272491537406762907246988117930392410166033304790260018300001739669875478759573615396884475591336806621693080591799595694293966840001706852877816459377098206748007484064193646767122193329577831965526321812824975488368152272520506094251938709758510250536009228552160288205760883193956970522926774246031554079642798179672557644258272356390592363993998977493031238941916453991612340841029013516347108890714003468936510949494600734268469570404611433558105750497994106344469527484373311636594840576980035325743960125388031609731380717425696992869032908386038470482786917165690682558032395705417109261266197777406274837860223324611955576933586675498545983008579037623616137556090809048543633781645729599547512242551080250691489574604805597350026215094131872608001799613856304130281172826517544525700523486396508233090418407033889619095404520084099061087465389019072074483818102249096990149016895033768114326956507513280282761854088372624325073655531678586370049514712319586578492188604656659026226077771065712189499811948671062432611548564778400128299220240156462474339558678025012941408432748964768049389853872995372005659956137820856396510274470982057691616083176350946893324667147758428433502896339626212209347676082363370939793766816978467086618418682363578096170089828135670228716254649219279176849378114704500239669506709853917375633892379232675259365655607266801595770692417685840716665773202242677066028498972025312046284351823861705065126781151797199205282272984256664091337100633383932691033664117389244977829772668215783190766423888177147510206463131841069581809227787499574170318546674268748548345768601272778178935711942450225554528118098149286271252445822936637392395879828929294397508455582991844291741557857838442759730013643753099317772328825674968764705789496428559844284201306429018848218880591640967695107639985103203737045740646713506493135603372185563182734055515500160780850722066250002619165654518080442657219656721192180348970919551340508978890971013561162655904133540161207817108156131702583984871142778849887780318114005578978308209910515030164236607523648726508586568450917409348072320298111581988369470619466501910312065548290355432456572709290518125970177327916551236487407081493555879610609302613541815021926106811755196487927743178094352550436103261086684483200580249318508278418241328036229253171701040173673093496320161174715764891625563057970529104362976472105573634587304595152212980788883570426496031627273041258633482419415530826517675083965773705327975531959476453793067972874029360721313401064387399297500305953936707576730103019130051698697273713570528978697276247956045869325402220581417653592874757924454567447669635919103629705302814725733889760594481367738498713302754864714287576922986408993513973565071998655041559492782293194206188869774486019723429045808858066965467858342729144780608734269036890200511828028630938030963137324122590875329925275093573528097433421572154943085465349182037069076815836986659835561382219384385319925436364098762473477483166928283652782852531065832370302240105872487208317536293799532828833498696238559596363497782858175525405697713256158769475678934282459309935166215874797851021316791159290246011434567639423194104336787516560797849033074463661298289155241104465443455679704073405386386923721519145888405557850669044999886125961420485148155755304158372153634704138378765841367218447675898746238100851593373111375168609519820879645586440401307000076839805809996067611095923804004233376555129685517002224499541025399537998722469583961350212532171831338012573309024079928861423589942404807929309458960636303976198730516596958800997680039116108831244809155646026185358643049738876786188644681347789474314798618879243726554051096249891721287592406284353853167501852611868030979264281547020410274131506203404960213668042791974736010255362053621565464232791790994834432664806867757296107736817663068588434040967153533120845802182184436728484329692363517934085798896753575769664294890209031904451919316137739120236139896228882725408149227894531753388178992902624971885724790464063666690951267326235978758875517677177092245878313943601117634036179828650114158185864214121581189497259396318278990576282760993829689809339041534742843194024419369997005718279307369802217268968141973335229846141978083841634222015858218355901369748742412899851632275987704960829108505883687291062458100196848887241860957332483992063139444769472167647182722813608585594830529643210761784101626031855891986429687461161000661583646847535609585056422676955026496204412166832273738067431761366215134145611357439967604769170477402773846886617702745573221705016311753028042005511791186738084679602270928532971043516463242536289739254543605693606845384780374166250806775356510469976820555915752387819141657745867689615027393436199793683572834768627937844855506874354342788376432919418854893662137309010650803053869734898337298065138736366973515304879971337024561344824253174027092431578267564373764751119936505263922799811193895928817996463462262438232057591629079662754490729984929241036901825844178578040584354688503608570115385578678379890060766377178289329584319947748653708547343952096977553428635845844510603970827756718019330602212564335869415067768271950296628276673870423206177013662174032657617031729828077186758726602617026989541522440003910485037716173458577305511706174149286656910816130346539263510416513036620744735550220708768534443034201997361175906422664002204998901255276527111494132043070628883097984312744938113834770500563795728818033905847046105359110761322374139972177036567796031391411033451817902361695702795087629433315788770094537677886107314327510042467235398323240479994397866617049138499932659120864292728717193558558052610959215876835841191811775765937258804523829364426015071522481735143307616941600528591424505922297926013899256491572406742219310326864709947966982846875219069636288935114407556166641782352004180462020303239193020408284097228835218606948810437984195877549294562003316540663041185845046323570276957190420875721141048272897315844646494451735564327730519976509459838693349320342766989805902302415672781240332805165778983597377879652386276852549868634345305111336646299552423331307771212133519526577249399063666100852793141918058936422135022057993300362870781150766407424965485914700573349237497888792406032396499559441426526691925837040901736231520821746670331877304518331380423511151584387885517181001329363706927394695311853111762447570163803323399589443036081553211137250834570953660690493497157795457897242154591968469773853852207924184946457118481994689770079646006813436275432142214848737123321801858256175394075620169414316745787087378752184884437456221987583460558910586036366609577594312581241406963022368418310303034665822584445210618392882301331416730743037985377000927727230653526976298728426675266226807139671370304193420697798120620512995534367490203110499045072858920846402227481387275053341926709427265966634199236147633338502973813707372406300752015824426541449924566482519961751533491816427896181413715426189826287388365525304599954732977349182220032480019350066490964677851271319763230468584094310680146398985356413729814213722758915059575206532567993107704581904374082086723767237976457164223370703481930800196439292972080604653846126004780122598303809829688649374229605730921298712794069128061338386914316843874549799905888091977366386031454538524918114300679387561461865229998911750973597512659564698528115934237157384472280472625438530654879368035222926552499248330791639834645901716783220544029573041703403183841750370676243590848578878899117188739005147518048885459843361228422082011410978785020083485197313153937204720980655929655564635392801359663257299667543398519734179600573399386228273460751918133668608014183283000636155281560628024188719065859641066543596677356535400459566867701962419429265294720521611086377275540116227013240875624332455942823544549710633405373005474675800270703981349516186261497873606322317612349139526388554740435076320300924347712162613268325222222949810059195252901732421168248074867677272195714799811888849925225531015887852636551118523128009584008015177460685191573903384828702952780681328090418829858625642442506009831125234603146327621717611136541872636571923384894781938497019521829097440059459350424933156767466563453961496767889107873796084660569531697874760901989381048813701883891942168435449674176929551318453163170045309642593976203659588725185099919855457813727266152919628210463429774927582072835050087452097536295328594491611524796265978507381388232567261746904405142624072751392185053946926711829840572604422592568617784239455924093000415122179777364867699078368187957387262363469753666774052103231417646555324911941777864653000598220530709383779048385996755854926731598202712945334370561950466680053918006504542291651409902509709471747867734432082310152555302736117339126325398358579889206394081597729588520986335934062936860239202214148124015613880731102045403597641343727484860569944291644899709805847929740839215187785770613625238979167004709332951940499471373809691192154023764224119202437634513427707079581262175853579736602459850369633905501242684134342637451183600223425494575848111648069124064431896317287068956470457572817108546399658380284655524286545058853678614270975162369642075685225461021633292132936515449461764790168814084230925806231488864614167700769115028197631846245892732092482952597383213035870777358320625719328377718615709001305657746542092713151898324751203573888314418569087545801053967840015645972971888675668638188159503509321245291904668580677439208130905003560418930442554469711332390039588972200727982093762252438920997913796103284255225288390881997000318795980758986094398856187234313390242279235955299533587462526758369238754220645086654954183260858995970968667041810845390655248562547905087909457018398725975761249074301905550256909616162519641371234234824282375529436608798215711281813106393141292976515626091549630690765797074989799004157278801551559821898040887480157851693742101299111999173143451537036912871844756030314257904714936969332777959037041927948839061600319852363427843637891443344004552759534303656230352773554769623415493053280908070496816950698815311352175261276687429431000033139408236274066150703311004034174292252281062416719939602323657797661594671361003261627965804788236432210240731130563367646561997055017740442335978978352116408168109399253134719695865791629654031661046939147734437458547184260104330346094557482860835434138119326063765308337026192334231071317016034312398638631667619476373518610496795190338088695234627174930742661183331040243664397492806627084972513333021527216830591021900461618328841766894634509027032167100249267871702738829981120526785410762089675472170819211407695266687377476272819092921089314725895785566046581217079991553469732911605957412153253911807880686027023634295757147839180828986535474563475798107041569024958799688238696514312993369973650348363990377953174551818004555099966758163857644864224762342661844624978119571197325665041710996078641255045720710578707491147494223388326156655017119642123925283151826187263665945612953677667961617824865844506739238030028082634222954745751924386998890012886665398376149770284067527426450165832566218914313576248358424146098291950114946864897095028232624271115195991456787193385739819874446935655106793545378072514938167960630021724553539078348176785182978238314437076506629411809219324867855592968394177982481509020081583772574177396334826633643800297112490544386050415401248982714953579323425094460046274274149017832947587078469480442671021869299538203091588937772357372103115981906258027286668402290766286649445983825170056294693923645738423249708416979613012814991517468723755875815435333888851519936284889532909845516106480831398765455227446868304462858587135705599355943415399438848927913663539165441289466829281551986852804669075439735259168121275639887412099176701985198010274936079046511900882319172126131496214281027655618332689433892785410001388206459618803389553050521992164646331149728073628456302441503778998645137640525499195867837556428838400477983961796836814194417339061204468626012941834813108292211826624411326433679328656646843264501228280791019011457591849626478521442196649526061928001826123351813424101973179867975299976109050353332319479616975974232739446137959145601519126063416335785319946865203575227194794353657795476201069272387040410990857385344769015414170402085324932160957168680711499573787071290781775848696731230986761223604126579174360102554770026546977657905526623697161443581131257643778859119360157483093434547969791908987830818109177454332416484549303249822027481346176207016616648729031991158659817037100952850133189287680914476141988340050018665981091494926502415134174952413410662488506685870479418886501034485159597630363658790872005502711080209314957366743923124223393939950009748330535743694937854471705288835174082500925801892473406958704636791370735080121479390773376788730739406366626427247220198679525744520190924606508815646222274280921312116152067932064481379635593992805765058187833604985073247243803785969360495738970473959725451645675361812339400035369168747630044041174528624267464130155710219999142720876873686166637193694560010739006473057146456964103155793094259710740864028559605594221393744305155709904810010768911161265450893128466585273841524378970313845430480777046782772760941732280327405031908915128799452534381068072542480591184768051057096119459243166372850395658760639331026265968787381699957290585964810707864298678574167187102268736999302722141267627827146066378901578061463366221463114456319003913960553497365375504302768941656692782124759046350666201928507567346337825449178676967951511017849260487014952803391762005078625829394264069928991232551118845409750460724369921916228657079862217627175045736189745598168205297111049168447999300750304217824838549606836043334863542393819478585994077880342485033087789935865696285825420117624870933949276169599016572092414224283508401735629294769032853696208143021149810182447849685366719626505211370694220865172447117928790947823603989312449812417757286866772684149604455092849988390881468591932458033309057018881341033359159781629636656913767001080020014604373426396898554658123927773126427865650303876873231539612675780263322071707456107118321843919619060128680592731115302112945699995774495774497920854484322383437592639605274158893671421164778502135678334939179267734040292797295459678475330566067658728771221395553092174758954802480614002445676523399070104731535036551532993015624956585836984687235459770298489048259778561988667686191139238561974208228829327513690549524651233854349996569567473001509913234815161152562048649237856962819452145299590190812111636698005491931219906813017396747517970439785987413290332842891873906057133570006722293095108744498129545401440276444610097279881709882405154745124785469788136332176834164556797369955260149754199417697712302328677136975108358845104290004197327356250891685746065394998757031096217576513940263994403594284259064489597122441965523958717722538039511822670104796759869702474151209333954218429971277226817885600319568202063477242021097003008425779428026189893356678631435268792617156262348890476408989368951182609024646545458533299568091852270193601008107537450620372708806485880344825554829190550991591581241264984836075739796548124590303120286407039964708250234192209696322119334218774139201503953101894926034869195690053353556727123371581937759605586931183818025407557898005679509310620352182367702843279274423258521477113631668293875907643789717876143547274035236292694470847393415504681767733382608673760094390749792024918476573818526005396628980030485538413554974224552230352749884678324786886019569055127938406802344574275322720199687160142308519400035743990428771893379949981294590444489261588661867596984377142884154614622708093084346662164088833405729893702962290429611920569204396360270183248106345456630362545263545094606792418054896562452026412442511902511044627617180155448238344777155649653726982622286679219486568287978081715535943401842953149975010739079786699202131375634568465155723279505893175761126412322366264696422569963960947397095074644279781310135550010946619700789695983017301012118132697018123317536900954348026625818079817836912243260285520153038786917957088726772676464904459655449065028847205382281653895014839279727795114296469681766091812790250119059103292705744715196362319185404967066683655493607101098294764814373930648854374704853421127603780328060994191427334650389890575762622514692728650046508572076987464260594112957087373773596806254526049433500001849213201334622383780184373114585126339974840846779745744911366138115834780325568346010607941385959656079734897578619876111371548641482323740255657648837094746853866531293884417886269692184671803111984093766114070089969648884311062731859291473499617848367934902818073527902946876510974454593120053594815701487055821075428870447359045764969070516576807546454872746488467263772998098917180673234403825642918891506652721289123129829985868685907886978556445596337197199465803179598141575452244221385266791063992791820210926801552185958802741983204205594520578571060889450300100026522484223380195327907674204844777750332387958794685912392436035562211239601654774552867817824345028146460056471325993787115843039208542491639339034269259396495014106099106590536238568252933266752543381751514464958534119439574590781556510775845363574539291993451755962687583021895051003421730420595177241685847759095339640203931109268407086841993301146827926394084005364315097488878045471953749431342198979108739996350385744530794202842866670058413194494457675099944550539355924573674256503600872465314483580801599640289242876296862717994253634201118698970999651238362188981174032696573763808770040458695347741595600332441672891127757776087584169573596075776620950560602632679779095551874998929113613207183282761352795511368496480087015754688184011873609540861854573373180713220471737142407993622792952101668480028385123417755085765834663923308845087567220265325099139454944919144297568106123601912901571067385787227333091783487662934035993435692497112141324269615296437438121252172995798252332664847670734751663395769437132789601915596031366154179899097266874666658710084830529186010848020517224325355143948900678152830535290140506201045751664571988280959083920557068339524006699897762277616884727792177146316138902878202487269827706922431424554230565319921292152833733657990942525375206604820630397039279638038882023813827615295361256776326707812162156754234869761962483107365679005439310246362744672934036003051840581620222532730203409436147952949277905221856545515719274998540378911942136208348457130209577618495010643378141506464344560945911382001887565162242450113113819450213973748679084964023486159909694859507323321826248956009436883234271030702023543602011257540723332882902518362355615693555599661569500017433213600464043243978092486613065693319975786493149212371675993493973995103033629821223179212576370858882923225198633118340700250538862346494873711960516698923476128245507724345396144758297378324730022210587477848276716560103741729180705277034714289948119745535189592591300767902192245035492057549070277883900959892078402047601293818998766001258449964590190297731363381902549657911187268464090895571446017286716132610618667046597852776563248241844311614444297614362235506240061859340028513662227201219872757229367938765912054211970355028794596874988727392089457172356014185284431845683823272717212877688258642047469987996609346110244659459466451414996555251654653577014278567561384657463760922778627362885133508452290161267189799254234864858642431462159086264755948150292531035367832606613784659535174975922507500066161555992670674470913769544474246255332702336606789045420050720711983119923658290513624077636484221053602013024989690199559263726900801738936539591423212922259223616714504240817452055683669169920347702565485066262314930876039176470766511317726670671301505816447001215516430815761801123632348367808149534472810144038881127880830410768595313405794241439388419513044929205130048097005148609336542502001002269640031470805312925279949743261972425828176574655494502274430918264914737416445973913874247718611500291419867090262184795742368785028289336433615009327558355233792519825373898614059148711142584626850311999099904397673482987026611866012241965524869578719401643926372887011972428584027698427066465728196387763098242585934403052243239110933245570917871392040604194966838301741285057850951407525128646740952385768693437239386605644358998843746064881061150894192222471567292231382942899698846301108007785156940757074551294440064595185840215252976495015872540621342852371403996726354245928129983949307638240302675269317935666758585798863704445256860740629463556753337928597537172014773237944764217769086859076327794851229755245039384315816383315958495416978220181037966807007553927536981384851478102080417332107463804802069364496529498220583110531251455329172414610285212438832186044182164937615532715665383984608254589152926154206896052803672151788841451689799357613028748142179556483537805268969733787982689535506004219611065278781051009324456189852094611084751552241911632216219714320350800034533845737440844377248413581769343326795937429724882913974280625511994734552607215917551930519099459329867545536962639642491543364785818185341931479664233189653851671313849842008574261463012964058126087411104051835822194089689729534596442710224507977952295073330567851010679774551894201054043687159556810057236192356142976125404244821883925215295887937498434792225975491549025997537244461932217832955569732984419504488713726954681343650985774393629101139740620987992080291094418185816962545129245061659261446835808196934175127852098351669763523364697264117997380450754578348298647419239499426538585815523236052951246744858786851752116294553178789522571170849738536138952097699389576053388731856658085658797991738397134946212215562159859530969967465635987117479590698161095670859159895503922606992339935611471477918349754266513619144128301167794408060190692585095846006267559531950401421501067289455968118230978849543959010507885898236694341272650093203883614883781504579181253169430041054146126913741192834685297053740048215910947739697070183635115847910009415973675455908198990478582889882145639438827145644376357764672820810992735997015971984751983491916169946276480198556706599704518469890385692935558929013432553807580194192653271872929910421667613776888457196677054774541761528368069487281366207951379389982400280772275156195783749857620227321724510306846719144990584866022130823528638194130981598854926053970582250243474404428592198261945543007141612529496564240244309738132275472988051025652156445015346061282763436726460134971272806352221933554959125764904782073598062394993361334793260700147138812358113813498728755775422652913258254368648260368671638568533589817583209458690087517980895555437927596907608212025353213426169543743276063143707564225522504774827877426849425031753235290563078362522639178255783110303751559122923388439141870041856179760855455235762449143553760543816965573554867049584441410180804528012443942054444510303825446311518697817243716768826334831802821660263691933463231331833879288010237601130304183636523608275726289286190232187139198341061058912182863676355411439312071520477290750417251570557437428838405763307322135072644511209858963742325698488796017828398211401987221358631231002462733077702346330760486731208559599218035739727913382993142269077991036976422690114339330618654419853898818548479072452169532607200072501103072369324268273004715968158932421088083770557037248929449745200411562641614308306732481032669180005706712656992177962540173294608935391180460436165665054761614168620480799080952483492472663626956680528315746238191628618960159814378189844319539544165774493336622747990471937896256204668588519976108918030849945951254567334077991191162172712505518658438540089532507059478685381837191781514705124100605658652255039836499654536248106973030267964066361129620898474562365004405369970401609498823147900477787521126652024321189798215806213563468444654445153218542569332958462414305343623350601377510204814509911849316136678913233720365189828019144068582004094132285721982406874345120320047443228333229159215094366024497598888455179487172028562505917094820302906163678457881320567999587241163639795636521813452885194404583193246824989393216937571640962988937918205894496226252684834024370189791594670980552968114211628278525214604536275313361347183852427577981525527261467003883259693147718066264310371147072118627083504388120115840289967216672077442109651686357332570718064967627690021495125204576505999771845609449259069814310635891545878797818935496086721059459207041048283332624329045195674205160822659168164277661809521968626881727612350308557482143619797075041417164598912272014704388121736182318493835147034703030078049506428496720924892918686592343760708677139159273610995802691402872626016937501954864503901091195737185543820309462165454521631543209082522947935989755084393039431636167627577066219000119981482815356240038500064394616911828305131936959353223751561116424309132909754337039833107194922340621054124188315521295642707972740190863496451603733206820869555469718044455209159648663584579152583572103011067432188644975469710823904729044154804543420331703684465517236563758671416070593637437300020433994339878876923873487159274199298936292678662898430389333037559520471881641835021972099172700577732415574722303405419793277591684886777530735251896930705367645644346043200865721132880519107723213934386458609543435141489192129834825525241275477964486075316853786523581636192632580078314857727516126381584230774666792506110490308238805732342991821883096791239238863427373965633910059204577243616176707453149399555886315893048222615537862299154384651546610995139647289727419277516820809393733767845376005081298879572997955497424622250000521507482301496436537691453717233919331449462867954092371058303958575670017297166601259692458531489878164546013059915666474148482334497086818337509156155890626489019660165079978507963996164657971031373756969796195030807180559669058622455821333314816929828490552089220275372292890912851290074300075142995996381343079581692054779516434132160166881176032779656042218793818589079369625005525577926418478455312434949585159184910113255402657089422006503025242176291292421847989537054844042170000950382797340252835754703939176060839253206912119091931045661054767749155956879965515370512477988933948832027571244894072309504579842663794597478927004436307602041699038431375034081096138788175795021377878061903204848836039677117592332027172814722243575244871905149204321871522044044594451221121634552548341754135398707799789166822541068388089162187687445147396483070980947415520551131709574025344587649260294724890882041404013693458389359508196020386107862383440996428990131198027829578659136320657094763128035855949921756511118442680761486570932966276095147016285213763238362353995061512976540064660156074528620793925869531928845210480931749043956760909261567142484158340732045911291468467624146327327097180147436041214734213227289989817396097132338575645851585288989834726303922063880053322530262371162066901428188463933767872257130678623266825805967589334674824558576953200020307888821422554611768756075206902082519726129898677381426289945873909221772660005689746550707173458283950991760745350042870825515460911095939642669136152621240404980859367119418361536330959882528255385818604780161700830803668405722763631452387463178745461785698270895106127153586617374442088259063307081353281972554684789380923137097701596351919920579102248605155453180644219906842833418638529854094198175784175505876023279871156718207084760695469241134510378865874090703849255197597466665719018991921333984224610116578049803038866313129115981198967819257718715733719565253312345334840682661888951836558067319450675753214522437301815093836901480096591300831071738850113448904866190328789241857185502836046959595496632598135452747844727694297330762849910391908174299179825988206357251723997728737402774789597697640706870074735029323338915700298535207899826080412985597208971484019180109890460188803099230766531879362276790206712998161524530160269453136910554518485021311581071037426393330902550920397299204922253150820738349657972120160205243504425004513360305372472105046834948768840460950271948712812380134611918482693026268379412133207219858426210515733427054518015375972432692703339729806890228988027719659551468173720321118835009014713244096952522000786646617733440913572835265686401248927712366367530319991514785337746822760080292919816486614478973621366730430179565039023825331619788486414545715479450310689192954868923247823066997965684575856589470435526007002472710189136136841673162477752183701221276467079178833416145507507370587872278771291941469345514663649330779797531265070996766234676946811646449176879215434473515148504549537516264112772005672110356458193910742898332518912245859059019935145303199428592934268121635173249409699358312246274898015274442574384241014089561694966831413961038716363714281673566768030639466422568777886845207907822888205037099643519887480332703077540503419851796251578851904945393318190538105904716479189368483682482779778334356547621759441623140775901103553699795891227055528829164345958786744237988684459909887174931858953921722748918282525405750282058151359217507138253339255783397811076347327598472406246497760922788899633858968988454308737141421975516595643752534240669679588605313248297023206674052010250428426077486311228872664537330826415431821495311209544011548811949601207661826933815047442362538747415848678978341713682553265039526071014701565744978117149716047948825957471801308621316205328478008646320475411217957878956113498926731890791353527074511859234178865929163686521043895571280497311546439671587991363180519815069964830901704022142002320815893905366895305277960343576528398363779357131424527629053128915384559177363380532930485268992667476388298375567039306682179749309307995375601223131184975877514517228282186320161596686701174774398211811551112225636849121214389661376499329229236039108561798652637045029778938206682015792578819798719040646953398361627360899643343210466835162326031839269574309182593792004279378775878162649611385565719019869590674854929010885021705747276179429343009713989273419811624535123258403909904928311404982220186180776579380401236228582525003596788519875282786431205264427403616089992547702349494739552959975040184728836942522415612129906804337611814136437211149535543463015422311138659930901300226858527146387363909899956474880795960365478547972572545079840724302682685187095631219829963437084173113282859081521891799393798134753928775738958596470899091494350683370505646669206366530086939348757217719804284184092980567514145012127242490615143020721901522051303738089500872501918207859391174985098040665704671285121239452856292437241054972957563158832760361066228307243793799041260507333166966429558905733745874315367411240628603491940398187844901844115999975799458467877543113688951823318552250567792072350537403849839166002685505029425946445047408565152452735706231124564694865525753707516932954275340673267930576786052643664008902376192677733312215234211189584603179805411306415408203655191414475517625941546335155722945435648413694743400600465756245556948937224911269565397433870751724609329917476871769174809850390371566420401987301662396817199428960904787056385673065961490538522735595603199666017394960586460032134417457830396186116196552482511511425421776097823024928560355511846628090251516988996884418765901576453595159284009824751968377993328888547914477462262493325733833155530643213299300867434899261595850682194608281064539513579402346965289177472072762609603976719223804305933356384458500218857824718334216385590209901753836671571822380930789760247176348342123347721577253832376588160161462143678839320140374167053548471268854235313330818905934229564213268984260869503863344027912131581997752678028881533369574062336599070414310512685522896495387608977639035527061401516220725190487150826843110211002876450090370715920950533174560594797721899652840401516717115181899178624435931332173030980921269868117459953242387299397423867676280055915918119241979156042897837201569352491455860865290106309746740297940354659605567699810457093378008309387766960566369687344460727506131123872565051874158610938231384043928207510755754887687160132701660455373692001945565098337950731289779169685809116243535280532337064411948011959792339182903389649952589268470888746118299272957839608167041800261636118773651029769727030425901320299503220668316242246933484164268050327514494574547767546426751421985678333249243676228753069801853831826413294242114855408901261325766193659978855079132441363910115921741347173872713634475590221143397916294557783689999192149383791609247855690579222907421044339595181925859038751487516189879069865234135967452045022204539410806723832164738790977375190060334264221050081263209593373734076146947293355369914459587018805316238916161625116319515599200386155047465756341427932226384084949213112462041688336887430805363040481434952186682039653896763607934343312579655801006859189280717810937351404597459751685669926253249181803493133405860410214610707796785180396845817178073567931561495669687071593696410266387294621521870657281914119113755676619392970752189109688300361077568425586891658392765221089580243107660344286979463072306486676636499335991238382733730177219465345477922939061099854602702503728514412924381903325338328536948902703907094928706926055536172727076154935639467819852706733937810975223318474301233250246892072939239723816108423157100664433636210406563995297679166117380823856986086398949662166209322762385312760684863262273729308023229582319029311517327433148961056460837230530105740269759707300319483459053517337239000405777150557670858662813901853491127508609982332608937273461813598135023307822302324234249682092011823799217291764532142073069736991557589669282089701374464762395450986315906914260668430293659321675596303563859204128643431517643521315650958170393984069302404566247692982473226097957923629899367534372754064302150457545234637816610527962121395751695547807473529432508512230788642704871511287586291998755718472896870659646457844370748724551806977325638477294732028132097925577147490189676910070676582085385199580370361584283808020967537248346665479579908323507205316160778651607064673480568832668928480936772057691186888205985113432269293712811949871625606444786942545537558926999764647355802500106183599516126261475349896794079390907750890335028996636552080427902513077601597995524833250931301934371958664870459826024135253577780521790494251650722549202420962569321187614910844405240550307836487313416847102386678762308645623937465756018553382041040933263838543003967808150104673057093569256719907882671388996060051063895040760669282489190305976101902757067120649529260515263835583536777612165601867957075392776558123185282270344047130300851920192178457767194395750896393823082342501392632386015671229054245577050780989908199375551315457361668880769620804883441891085936553092413607732314672178328284120835691837315843246036167509085588574272141917373545675689868973634504829451976254098247218893994228453174571581638911668119347699076844009812019906741484807124080602038709721002277172336722095682524221075626040672757881348334415566202012993518251118603830263985429861624068095637343493327000788481015316615421413204903477426473344336038740923239886723783628185531547166200249541921016662979648394165153008568396353115407920106943637457865196100598969346339561849807792785593839330362231871422916267049746443110232639900904486388410179400321131742746978234201185820756979545480833216903789496057681531231486400493053208081802566905114883345831076919838789741916213327416460495969055156297937858151197722393745407834319790474563844186945090028417926233652893796957010702677498972291585576470471755603139923493761494493197592905840357695048434158779080339842661789623670186705049531009317381137039141774545859435211511065278365401558910196189280821689861222975395733735730732012463780147223964332324054644261246990348849914641841711657442128589681325080827988598732706205539131090979776703110759987587550087884060517445306265249719974005996925847250464082780416608290750835357046754487321431157503183213087139153583327521121695839505868093721440725872332421109094218592189302034382142647130677771528890072112181047647955182915930809646078728940869404695785637853497541107105223307395795820817089912351510400174608570707039604976818681270226489837541216062184941334392686756141217027812820263572427643345726464520356723250626059432918562505232150632957268717462722954222369720389985439272581402863922550508865061282182513729440730616973055726212157931967310717820246119597779344219066630664335117736439148221087782176104252525423868703112149368616580804387101985436576700222001425002714762774216016958683473911793528973043247542935887665531629952662344588144295841798155750343448885096152603841514731496753312421738701171321685735642166969027193057196211853517821885484033096071520113708758211369139870283169050254992367859592342061262203202479950335591104965538232990856816134100064333911374505726930139311643066064386586186472569213727072653879341677340936642769081098344577620998889666715576283264406511787028295695933158135657117795537116011960475057470149173777729346674445230517352951185284842466638726724027646054876142700409288710301502248835653524702533597707366816884855916145118227153732906747852883192727048708798712768995882024180707178554255690735637511069220990052548844827319514758998759299219981767853172667884410027906781609683634558581140943622783547357753904124239577842552249865613689121567595433618156490762398143188980025276934150689067634678872561473969229141361035238749437348584838253004760647148241799842873143838750069566165750888335761102878816050136367185427073981792731653550769116392242229566227619454391775815932838007378195403255157923504817872630426144153856063363471118061977394773946862256629313126851738387071659082052431946172947650848148745944400954870263797651267985760147693592413596663189153749840791317281322579943853758237770049284830843481144094050193346114064087607920422327098995866720380031651651866426053458318453861103770081882425575181115778378546082770165491329887542074041684108799046306167249774198573981695169126638015440883627569770428343021040770222520932387515086099123330403534080023501933680660738614034639776451191485872608182908755065176057183730372634071338810109799578840274667856019140618063731498815889699082965633582026973149902495352530040536954618927635244581094036525211317766921138642986460254965388744221022621476911848055600411665637072522069515458413128867886109338093537035197264924780580987418103708323246420803984571048390904474915533215127724753713511529114652823891436736407263345438574518944922994565032309201796997972813334611578002106482597145377473702070477583204040058739261896465876306619699647021371440606704053684308517524123849661172445199928046969820742791457033828114125141093654939029740827173909452947216016934207963400384057979772500457012767709154984263304487695923309885616161003183948557372704702885782570560134999482652278246254321424735663984909559362408639225382251917777452095621465757966786261075098290208081299537995485633950877609531844433425360314459030981555933888406011748402442742051522293213436098353049134237462531379376870584221423632421576870654500365213155272787790001194142169382767358360384921667371542671180245932068111420989668680063173858443424521725101105440524698909258714104814711195658538130941187165473100051684709692930072324320511920808723028850518678905823478172051416879204176735100043574865730286908047194477895502676133633433456659903341386118217947652813528535736200998549744022572394352801041310784740122667662755673716399937570435210704670803847326683850638397471334312777847485533385707597072255165049469838679894196782054774159473533218240906310836482218510151056166123758700212403327693168032224436220566036815745449518437450003383162430763747191155039537028317062554500662388848936161807999745960109385606723964032485982424978648967785342694610564537409459470216560273614348594356485657464176808893661621975225241407484536015263547688309033295215848874595925767620737230233598531854840219014970845693461617816870080846382989279422110009567473410888010916435111913041755528122675288256811056359893174417829858496037229772180557322068068700870122024300813588803155422500156958465657077394348893424579453898228261230966338184510527922079560034361516209091453927067333171864905991226822782146494341662082628415909571886915697356708550737886430435109501957509963926906302753235101071277192210001689646712509616759758207151084509997513336448830450092288313778807469187015900920520927288277546234010009082758484125865093498386519050852988501607260331183230402608007389601452324123112055633020398988003180377943996984438373901487741227376766447793232316507442556701941423031406663084133816965423508378034113266697232558153520057153468212587777843686136285582718094814626176180808999936514663845904281889834597292949962697283087078521676213256724919314930715906253738192354601447370113113375612199589036749435436379385706168259183567418931203376799534769023484473628389253624463215930654951026188934153752420992030177118483809611846254208015498489766491131777443324515490775198684599773310701839420586130239679603820484749596437530360857097858576608599837845533762893239421957715324981058614370423607958283484329128751352076855454400778504227478580519640929421239029657247417134586028187435049270904676242862158163854902094008310401368295315085745515039726376020488423885613174063337159870407209642430858418095755053582460163441761949038164007877678032003781603061481399045390473863032842447288649160090774587161300248101728718091212735642078741025084157657505063386270310598851007850495773821903128430557874239577363632313702424722436735843529577328904707800508703993290759104061678720996382448557074474476086643247379163343014491976754019970511343372553538918335165627251088773847120509573535529950992974891738696991933773147246356921994146360507620997577034358909352359407824915961616354783972714511065265457098191030547231606834248747714777387657664169832405832608505104249022683198616943111717415252927493724020467525424329187732408278380915488699194864118657119764070139107829492790224963445296170154492125337663886437298023916544364071834125658121442074401831750909905847986946320580012393559700551141433126845682437138794641629833464373496043275977706509651816672788817004826144589704696547131759437169111825426241886349620114577494334558081340811840634443358264708742903021282255912123168869762393463342149724833884451516230311905724722783067714516037539220852327857009321468827613860418154199880837741859751088491599979419876085718096522288039683228661202680212202386350805484538127502759007285470800150427679940008083781166354290740582369229950452159307805172653125116333110827570756532726206518236828563209757954042104295839220264529926346008867664182675748527940144823043626523428149659293951086581821715455894092429006701035896499071281045292398088820381364423447933065263527826129214325050500319416300962488934108236389003375434415740474865846877691396191941978792451277420835182360413386265382218229182461170928274618468975676247000219292575745422979690828119300571376665547526156302803557056741860760067495977606518223596466311100315595710140256451444893276560899457983154206185842461365249310971365674067075591995724924287519987022124537276483557080651117775796941199485377162108199066964967555206037303213753673335691102590505189469093300636732775731640915647685847540685124131975112909349348793817050766969669417132137433126871735765911560219989049223683602355087978411921190425706671721365515248817109367950206271223383714323920220174095292166037611191427099261775672005674485633130852870003138601522405744796222906183070607881415896820946113801430419086146353550159580606429364071601259958262713428775159763837049710331838107180638761804369454994605169581071056493245568433647735141332657635683185572171761212166422912128541940042564237397124932934387009305130783335191043114392804399887600792232226390682916281868447681162530384990417030098775740641778894714226824154000698704071486312911428508810663081260294645811791236546848892231013193972666699990075752105355365052131565121147656159434722295315822542071167351170145210198316563218169201671571976493224617923153231259126328863275640003557234525338964359680621405420430637391880105139638082578370083227645352387887768184602475331299106187845915738757027439465666040630349423391629303666627308025487707646110830945389558735332949515580622990710201342393547552180917838917367635830275062578300794918741209038855336495822152105834000259271845796641402849350995965247894884166404658149840845071546740823892362436925929484859454247781329400970635894870108306405115481907570312155712279395193434055419504674697245771641305232666667185379921085932057607080714466899201465451299107060217980727972416461446587733341239809745603110164081031555351950805190932749218920799037156744827788357009757472821979321542134303315866086243706126766932308404894425227370375210487855231167901885511812464503021920290460646282880253982697039298152933134441895766397533119748320617796704877805885555502286204287945599303123503706196423176590072291690666961518902600769266658258352032546882101712471948813847586540696678920268714052586640600600301792391268466775171966824383720269659107734026347113993525211536893113708651651160141443121173815165783291123779581654809361856975943829720655009630398562472858636023664882210879288376768904046278533823933930849684423442297405200163525291612333114554710586879908117451430681304814754747815242037053067203842840530569061931424744855508087047978814511607663683922390588387249802118773755083403556525989795929235671594897217204358524317899599061582654408464679425541359624144241003043065273381073097831932679461118375436337234711056334932783087461597709077472924239861339110711657628078028580168279784008440890036956971287621372924553087260889225133029165910597854937310801410303886435696951912278027596042791930598835720932338214586378291957393991642894931785355414388004793634208059693792939161192754535087454866258951084584567565354676113723768514312267259063742289363972728619373578340464290691737480443904129464017566751228812201216031256445124562950645348530161295621398784442990905553632267888924364054161254151245972935319377126935975159998237658929129129833102018398001045635849203846667713482618949109033856901177566328689073418174898291713907368903704308700211964239834848338076878538796162936935121607931139537647350707879608856609067458946346920142972837732546330311837650155297193898343922422112881446165622770721661102549345789206822147102340639299349680987853014873259971244833294280077127266814027798584122456019359636545442250554992994320204028881246736286734552873657932823897656701732623880942961315959638539290182823023270270863072893859477147347698102211458471723821226741491372171184224987982055922095100635891269585695280341521239793079550539181571023268607918974498598169357591480387638878330165115282661381691568749752364539374578327624175278439637927234682668868817396026748912453186575162462569710435240206293200457577627120088825542609556403329935733166209167870200082103613519264848739808941519443169477354302879921248146834852023540558611727074067213178286958709308889323535684575659830994419809124270800488684196794395764696860691785462680443237402914087004793747152014833409554260578814093316594662889329311240119108683469805567755037796021898628428867095857053343787654826785829308215573407239557135572992879895923573909664881219434805345189975486887748040866644794266684308180281402228056664566214004384626711652281615864481998917818856712426227676367470270453712366975222738773758494636828409615730976292319069678561112218033861792052486908056949867499653102414101206212006610084246106441468166046666456054511743602519316109167444126982236071460108763360575051600476409621070811975651544796310985252269512438713687898178009975886805496443869508706038168495628162698177646428606748697004915070584748423869283971312513991869758901415033650082764910515262487073145214295111900857366234841958985333542268522342483617110101816308505927496605391076813774865563323104849703104554251002071596187226010621668420894121119033738226363955427750156468315291175419560047107909711750329521506255757398954035724375887059705625918602923196336682227299833496295307218812407565461410450596233494317809982883478502109318725196572072721497470741663767427899593768903267897872772886608168995477287101791246600482683874309896901393648430691729347326239572692505337942112332560347985940441814910214607930854364615689994103224450422795048394929844809902649567526291739502938675066975090833364696249244948143913154258685348817978438153493841919166655883765162076003605396405989667320235872427657899882500137114244297865116247447285942628671826826572918672018423174733726928631218486135239649698083999325700818163440672561281628213815358105930095654805767496671009373896470384054548638901214201129617088529791133101732643006007604386911367807495596842081829577875886414832800013367176237777379816143421378411935963690482605101990972755660965331712927440450528636625990516967378065877018423033254899370635086191219462971324727743365374811312786448444202856975430136959102135183950687365183412769889419847408245460460194048100005482164036381746301806428166295496270633567239671729083130876091354059671709595113759477137060517310466865875385257397995469482673758008339057036532632850399270680032533508347611508926358718688483613763101941965239535709326833551097797690514512614186218556109789753673487838690745834731997227195667505585577421764769016684934501316497010538213181789094865730949790563907116930440794545812359149678565900401043251491332322610865551198893728169006381100005699097441849725493927608381763737176564152024241386730068892515268031290087848138949684528524064020639536229415171177918841383291331611423588442191320572894909365759238270483985272796409727618538713344058770450122699423655148298615740679705866954717429604767329490789840086414206623317021025988228529189226244260768343731985581033825479407142867107752393671849109830062642066213681130859572107344241781250138485957716839527804574518948271776105216491345591720868163197579093968442444684678990878345569293613711512969472151483681156924348746455645651448123647172644430851510521028371602010627857914660437589610702988797428376304654169769511153487182642665280138321226148069103155642972974968384456469196383548756493171416036064910834921059743376290879528393302395791142475376200683357952018325987105153407655862345981206670827217244063854265918461755853351600096040121389627170808701622865560979150975678719670575657713948153101968953023943143444212178837536214482214538526548652649655146828960103223319841821572483276043702750246703663624514918301592863159743406896698727344777682981128468991101125813440669646389772545393614436324411265110679011031141212002511762484439588619370945361313474886210692114983971152526915083514491020860017748326072777448963524860001727669289459372864094931702749460269484213032856293395494398497325554948070886203555290435146671221895550585254110875180109309892932758562018203594839373876931987247017981648530154919268175029090997161209949733128043798231821280881929214926480816230889915598285917740301071594465155857380010490974110541579092798015364961510206810907288862906990880511457915995850374291034352388031062395787556725423987117414654362836235762773755516671768535113970962596704153968426170034741605283047496113665905649912531418539813573335070603685032836799184985155145601838932872329104795142433557741415899601962112067670354570534040089264024200227621998792307069996705589090949181773055479221829969086886731314040641396975204974635283949814814473473597461301109953423087305019168150001719355857592364808554795886579092572278798452104983996555311457331236887162325243148386896035253042112394466909924921498986529272210936714193223050983360063369663624947218418003859881247183775742592308179679905525392342210846227937107258014188716999272850666822640694611109224706656649479465728991084159481839595779316161673095303728125355585345389546395480970764213267154648321414037699526302840521198936263548527225106361893050980995698862851430344456071199641037443547720880444094699527970372444899733267298357613415316980113596883766672210657327200964126243824773455862520877806013529393760941869295832401651973377594284147218998443104619922745122525783541997103736183630023104518745073873857837356571397204457374696476111207194427599129262465173217129203561845774182373946995631242094590045681449377323273052388221330382489208552929452447351686954048060986978753800900280619685689097141667000040896252026578655203943821554468981193331526009119197021225218969328890397983530073153752980587594308689685096480491189959947416112113422628883410511483538862513187948971752277582203009159671847957082151141493402676383458851740990143341236524570565161681806546135200617673033274258064423309894128743690855780168870977948994585129541724046828390321877398346958866220690048652217785546356257269688026849911773661675106538537910489969202110163435241288198441704866340488671470664295979240317592371163802565287339919300774299596095840628256033152211398875128750066884667311309329689252624288581888376604334738379033632247953871288122307683772704798140610001160732604951267235200685337335673864946560648640086075787128000016479460266344035041675790081426047093578087211774815218792779492687832131072295171039975272726950812739385026814496571989782867687384441200507574837540855573250437004230991243382186680186944726604112154991432288716137316410810112910130504625654480101423353184359884832660759756359296489248199463498573836578585772928916910166865291147396071417811534674602584291008479370423322001434243023608183392504291510846091472643584298972940485177554239334947054595726373276504474468840194236492832588598949577414173400775054305611071382858447463073798532634392007724870225471700309944239153154991710796684011285751290213262755963070580027963611968572036629342275939583618130075526554263461617122600192332421310231394026729234653741177913373503796483406654853908428923247737585364986675125940605135851521194024278898803850461863697359922038643637320633545236241370909053110798651564413619716706569657635871445916835530601900940654981982491935483318268366108868633659642010830691702480719349043927567852746838768492681915593021351949536166584589035074058246512667029778064389269017020403681222460193941499221569615402602348321728860429151553813396256411654245827926019388913593904729694128987564021895585084756458349590112349764998827392464800170654587114089152736520280727047098076010864772713671976492087138966375734358207005187319212412204827423978545206311165408714936109476182639226404547359290395247126155412348446473124773654606184622317153442272472924265124525409715131457692417509399707452147759738083795354445533194402284454840447560731420222867084582391819530821028673350018616709150280947166076286731107210845170347133121590531014523952346472518811742837253809296414062403320906845446925883134685653346386813985215881226085501592785693832935617049002349722472233525569556148557166677279682347629494015202310250000903089879208767818616892283009305873149049666078637973804016983652364783361523554107273101229240813240589944372445269431888193457332064465555282991860294006928345694756198111899843704410509224297016271755250741460313527792658994091409612759069326892053654792555499782059056172749767354492588432338322005457964636895103099497130073058434071218853448746657390580130321749214418341664630184477562193349304552280190448374642406423213621767377644290756742945121472985919828787127361629355903342937955783931079897900030292505364419276301752836467971803074681539546242371140897782472871724833687797197473330375370648353157104098786118479072940004305920766403140527312428350132025913640362382280478084113835215688758680999300293818788472669901226699746230898282580826266929832690980137570643528491897225219294868020374535490090399128860479115578690628220566785214032315972831911018965498464598228449940043812741385536134579597108227840984410371304915351822225782632843916443335701401100162669995421117475108617281890123649776663879454762833624325754164520643886186184064224351114192972599362305524652877058783393785741636505211380361968013234923550167492901278920468116482395080067726189144293732126313195968176997622872505024910530815662526013181749347565962477964234387508909060947969035313833876478498223674763780920866803016351669712402589064775998754429307008502455343444084001442867080201171186240782525750079033621435721420739148451585973320614440715300048303338523991618067525852907962630032895487182821302456904592700071140414447648251281550935025991896550498450015085705604466036118128555005682152820915221356160058488126123323906055574364945581127174757100902807762637894929349560109777577881496706333012843236323417958487972848572678095548787053235149883902516436221610519542512545156547364276772314311951003757912835189210024910051053824198465786111630581115501359620657518041390899876381296810096742597158407333977004076916263095595743413015366688267775806278741518074457607798967438505679754783373926389552904759457583686348655931521681541241807339373319003565225198431971653841961573271008399989689405198027414113292676827984497110693232724858954110088520562138579067269572152434078595524097126048967543062669321201032280784460894618762561756870736731741634549431459335513806932170974941700954787710844430377164979613004983841713187654617427378878800171514080741706364710940119896546800061638051887285885612571990744993406879191623984714314665914514289064900103377538714377987087133042516156044697323635381127052820692017152958873514254339882724499351548654023741813191551312636793522131700147857966608018551723315061634160166564624245160993057319304863679118997925139609777373102882393871233044754481705766424426028168086989616277114909794050859492466160565470697756911518602344932762519445746160779849113257079441296170362275324001266793552091352318306874538956546997788853959207153403323735405026637120409855929575463704838626299402107486190872568074898790880881620135091092652815266567862015114152604090927552020833574004689233599964385774199225723763805605415005142992431698296955516600435390291863909999576031400248773627774679463786786096282256764410280519004758478837983756754823488957628210076785274713041910399654921717524236466537272905913507618838853428494236746810991015814928598938998584286612994426588313610018315969067428256474118492723010786711030562695869156084101293562371645004230659119657795829844393470814782663456182827461251780044643853663279978730077796126615066926812356060974197304029301766757244993672333035952206007669304586215661677785382685155772757686167965797210441882149011817836846071939364255055840949948363223955063536755497134850017554755239326582159538634697527755027601904733572555163104785629456037599252235127117646845604307425139431811947708670965969883032964839975041015976025106183311548293156311162122620683068230703240206566026220249376991352770153952311989290756122511498305435049686879435825874065101698834089647330685540872625859671511983716030940215213596709418597233962693157565534302986431401443939591911745806622361216669818109146763438564444167499402825724235587062251545142370315013924560445237979092829313005426336209904537738356328176509319754427330188367084594709116333027273415196372554785295555662434671746443672204506087297601984416633789768014033503007400222796627977098785173323292319705490168502559459432804774730716002713715763964904058491935595505973278231859449758149123590694853188562275428950758441437877300049803004337357553635410172801712594779666066948082496520320450797620843154794331980076860874540215244670877675299515736167009259645474948226050790804305646129364705280652472533788755541266875049857797677436170747031130777882206034024534021720336601175393027390425264154382484765062643346599524066506991278936166997489507209676713621778424924487068339921224060059038397376680211714241888991502938897388580091154749440241833316131025841011150194918760750697325420899064101268538689361931829051367259219300528649731184627468900154339488853952501228777078421710951219047305320068036760882073289940301354060721627991542469140323150137204898763384552951851454905412827174826333436734434400071608470841507727511656255471260982361945624769999217271964515810412821464137745350746022688900798026620739945632348289302026667343910753974096325716250132496716137738226333836739273509764798460388450824573919491272983099034950804307286166825017220136653256261985324393573415611238531586667238727874102440751071044153787893943080651818454965915867310396584601907354519561790071642123187971796749215496384619370894359997559235282473886628281197326218684541382817391007406522009733583104655568344253044447836291554298218891711284593605240351684320984008585509532422277751166618467706489787737526733093385417656677011909852288178472471531840893627346720486970851268436269438656983126435989696837765987557953644368411694644206645482917410944110312244524508017057143624362665436875247741870402349284693721768199799531945300190115823074329353110983408622206312806617925820520919266864648386940496989702027859533872237535908309958888202344058089081926241093115174661497197280320874698977130793647178009300543313942493340323905212017599436321981285774014797771433480194914660720090643986837213656763533572655353965506184566222304954402183149733054196885654353966686096476626818294413343113473239735491502232783685006957733760933250019623299112767131021859779838783673130599300953650101811040083091524639611771410812978339750237515344143270997650745233559893582507818943586806158904921990662644020593590598708117283562658596088594812754851735502063607439316433382944985426237588919303870630893633546214098684243959040981474472527991398053930480361401312778647075820341293476468147099736219846378177087266782662407600916146703765636376275125231795222000703667826619608655741896407774474583127897818194871267579042758567439683938526323593784612470679376457395418277069207536731854850582778740409270123325639126122995646404089423416388626323858349444238337344620479561090118393402824257712741683259326972978699281665258424853472020341737228524340427640572251641240270928694369872673946120302511642182883132643107399387136779461520961300565500874043763233815655742982705462320686464422346207147657620031459334332337953274054336785306808852961817470998401759530092270596129845724447569939689962478585606584494142423850082349743618825538968177961129619702748264205838045944578205500528287109681276778243430660716637611906000378141224176829962615526303947812733549586517210187809338672755936948268250935731774086677513465221256777159093087946217540700844278624610446603762716393017304543324622531376745227534381879145179140495483189247411096305715722951904436701946645885899069584220312287144504894868389993855686001823343245610738764293264070580300667950478972978078353842588545051220540951908701639127958804057451764263275815793081803423347678805380513090019487014787968944057079062149639012439648776908313123950977301006379935841947526581763555213019114954362094760617023257323426187149917211504688627712838606231031024497384603618192087245675605922545119839847600738026007099569989223645081030311610032867132963770837477390178540660980313757081755495061700852895768355982418741927626151725343428893763940926808952220611224501744278707309461195511049562834912451926274713283780740402979520114740083802468305965279044796717396967597901924054165364450930501742366716493376558179403751221625157487345401156909792737424786607005107513764023895887468748809955384960333331758167001030213339332919459721474795102147770600513269308996747612750493427371934026156903645101097521036381832024682771779389301057885845502805506403453923842938956979297512435261837937923894484303858735969221327910302255036802915845840200082354818414625023781271623084406536002765559413350321270031536159222218757372417446450420276553778384800659628752438929735053772288998425828501638227606887082505512757481884349148533077129959238066946758599490745864031201641783615074607550363603540393423899004450401555571113720150265857658432323329631391438767575078859659715665581963900268460949106608480160089865173578390870916425728660316624793631461716121418777177313972332835759814877397982190310300748351289279936479591537843592158530232618129446549411677074281115028099287922604153880844181815182187218574809690136008884375333958060768082612377481330072371492708219922609119938276328131320526227887855547871340199423545809410724978671382880814028418177209464525580978337912911971677794075670079765684637635232209273505714870884415974505539380419825120907977011018254140487087631276510013360774181704867939298696718004116127133085856048255577496896258429990575811723498672236494062010190599343426019636793973474693972163141068856690988465136549274841908345181059654002560310580843989028815093410528996656924778611606060071322048046036995551948335284694358614443445363941938297200782235977465901359546856568575764164075948425978455807458391533955293507596080028099219982931392702211688434768792546395242348704038076600704692758150432012925463956876388084356874067229574781322342260697075230301180108520338783419261141957718029331008560047390857590777574101298936186619703828248434427595973402803361790968681869460939417429416259098937927383056308598228342027048971919659223074886278564252695756572531368433088845130196831688244476266250864978630575135647083736077753946409792642864082191592700152268767751359193869680071214105130353341372282358277312189271253747280032485771601214528913176114167997627789345334600523974641670620375669986105267117095418638351032087902159645583392072647483894287271255731768099683191807359953861312235505946103012341579898885423215718277199977183076918177216779837470304359977389833362876117051799561309998187795229423423429677601903629310466884044206000047269196176498885092372036578717922453527511200125930210046628712358926935329442114988243965528393393032741609372110097425460600730880932592094377386762752034321846326064954393345526241117800937264859763834234544996159642925106828521801587859939123772019729069491114794666909758870543976527241742267180991788400959487762066816606107818234757642836976734708677642418662672627579988118492989507519606552860662398071120014585233213172447709000098381228830575891913132134051287884642847723060917221875631386854224040167079905957774101565217272266076565164095585055003540690355762247544356837067683090088578088955888817967139949395498191825943994703929352945050117675384525154383238772939179184926082978460534828359756456837480494397770844481796259204419497218250967729099568350153383617046694762986968578810533439049169361741019729327724809039927614402052958793196005554608581610671299274105228555654804354856653113506678037591566991525013937539470939042964757357853038540308561821884657355653553952667987672124107136953900070649101586092986188381549417960949230021095214659379196625975089050478629834611076409275383617051197782646579654131429358038806216559699813787997228480391758851045136244670401526618375370035257789056910533575799995094027627935083622183862229995600481583646166526172519213257179940477183337845103292444128199819677627204565283028798006491892401773634611034029700737283616661495980239847587802556435012549250410141246929286983776769429329563764850330350093843475565598723286607190249489373057944333376877636276246476892217088085206364677132374322671991781700431474467040977790009561761679009487890806129557159284004611394251645272734665524752607770592671532585157980591368087076234791883902020307504192779222546162947366661158675615469247269638434809809018081814497369273996544636860320624178101748796703644376980508265130651833349505343389227959945342123030591270380047176285994521712275080462552692362536868495409746323094595641530620611892859518112190474637738672745348511674702673661825529539998320250538885432028499048488589809272513154245527653099906166826409513982173642774954186768410557743963193445395947159872156531765400216211425084734166828608166981264608806020126621931618047636128931491604448210455616424774821030421723737925254510476191642302398423043835001632625369734206676737365184168768606994805149587952726262581445884428148729357507532284330671636837547956760777928811809677534329884604676271276396844954163076813505231712603207434589093297336346284437241271659056772070242440053320829556202735599448068310941618845659383493598133859876226843555401106847886883727818483328019267918122318887678432329380238974701615857681592872673706303639005459256459242785945589382916266757124274362054916124145533180251528097275681019685776974172417565427348153220902014118295883078038752768195185778790147638525807812132216215869183423905958323321116696969883504590165008437910122004470105164928483444015065443591642184993070899741024377612378320884231676018248323888220223648880497720499236722432563049841791440937985844802893131325647853066043181155106764383747834493197073772818307513507913392168591011667667012490303093597031905062445738871260985781829630293293146184889292854903035242430191432313415018082322504634217349761781524913243560727554878425197886118560896873168019038366852603273921759228217351128336904162521651559544390269596134366348324700757139267260680068558968408037367551677526282119517606247677339272853985587545193297722932663650229219704676778413964015924715638564009499197156995604632099080709352258807563007933618663180295326820100465329143317142163900361524610286452719682246233522009944116173343150389955167813129946244604884906006891371407947845516439092464004702852839076129347099847247273409521053995299109779265670908853941637177838270217008844295271067202806432388018584962235103854926638954919426996497032705714401245465137464256152934333423411184716870094331334388374862528184399358448319806985898463358737330484491203379485586312475283025757226095532916559301037526520659691794491456640645486921053282092423310871239762748814024175839842256331568483442778545175385227726094382462102015360746741981167267352715447302217370789782093816893998955422393140059777965850827241959430189991266092392218846542045489134186084433690849210030955292270149750747068372430397915993235701184996637412676920284374489790860440541069749483106052407581769932657836217720074433989855740111959232550244498314616952699980227326540667195361341309174638978732411380318568988672403055848764257110872796439831655606233694414169246879290169376899648440741981036868700415870894958833782350101769232107092999487075874776594682239638858910773430482047099681547025411045392992198649296883686174527364085657575533266048192081724863911995037909426691263375373286349873531678887118466780162881382361968507544718167974451021309491127001416079337460839112718017771500267298712290259049145891618051019462082606992186944342101348799598190435741604336596102951994191586610228991727922212652338445029462776972945861543391677029919218283492128646709486029046691645110039993523541144367162560481105648238701033933038132937267659275006054458974508322810310278646770572062284119558026013685227645500111641096761428118283340960246321171965537020708351689684757407455221325323762949006976629720335538047839843699346628564111663984448999061726570175161595219866604639985281765652423856653280574587817280054773760960883923000523713106352383046228257784720791430135561079166998609817214574854528637149217516427031691832642593286784663733125711211847421941330778069245993945244844276683521095463815847174485628628479401462501737852546061749576381238074373012120800393099255261618737265104158054568909077282249718405441183915125888119785627300072917863629297141650930354590642289311749389321277112197485445593217094362256455776270285368780081382666895070566499820312182090249595261981508422792034004815040147280349558255307755488329786392068163297326409036042487173069561386574633289527009529971030399131146502357620140892226698914147248799233627814070753738936746421331754832472984932607493485982990083738377848194579580624830242410804247246927368880777039668350063281745676203266168139351402859245342269717037334764007329253182465699791633361377824635979270916664939277746487537295338522954811828629768305440643023875879133838937941411384101834239956551054336273640159026820045606934417798547518095022396170749846582423367565969751217397215073194467956864726026416283261096885954066236701365384193777639078425922681416960508282117357505220384993187897849060200613775914451700672030328811225524732260527505139743713048054540466232924611021251522857968809418532822526087020156410650801113761665958205424659267759360381408109835344929649317353110585508803888755376639051633379252071382383352420301364211323983860069607525329311700071937611857463794631988584126100924816900470432429735053830493824168372689783210517061922240731524493849788077202604266944378900751887062395218243107045636341989179167527781873382619529595538462643526602201392735067420687079905717299906430893487192978324305951434218571566821774832772492915181553944131129823335633921637977681650168221871810995079931004430299945227958649903334077327961055126968772895855692457271169998283639709329032768358296964355455141021718623340821662227834478410637865290035992777738209295019019998902809155922852984451410608195938245459961430331528265171014418671842923934062340420933126862446391685571013991084549462605259573375775666818197775732884245197969613680145185033193615025786022792319673447336035684447031844897990719080422380917184286155560740783828831242756934564036882207864790142388531937068396336379058165360215593296785344225158681140059064238015514236634163090044970927406919356839489893327721681604326956002890442671166073113375190389891713103190542616244686801877790425262824046198873774396532691954275166898286672922742501183862875167972920676343047353759334086467538780338518727155432715651778533846719427127768031283236429321932597821898643381492052990705278100515531470212025526528498495229067797013797633819967924284503712346657458561980829615698784545224478276349001499210149380794266650992449108746768896690018797761244898190416810991079648090008188648922937945591442796440944263175520615877134705844909306671307490421880896331443389925898468605927756838687659766424666286259520330742831860411557962013342279155341185356263751692034028751551073135351595550118324475235916504975245078739424763869105152204952655698037242910989519184907286856778763809549702516698362082149358232090734946110543863424460884844053425931770732804499826881116956740064223797008854555670169438191166650521874459661106007933531511153102151571822297743395669558078193183778850214333011559456018660237496748689187295184530680494686905108357833410396882145197658336702635261543964395943521659738676847845352823257147810247464901493505966807398920075737115256154649039065240594709910283380297419461334361397375424699524654539515083196488068387986986669050342183277339995145241132193342660390093505574131456558003732438049131756758063012334586043330599542213072505663045314754604551393650657293499237229529045738173847019074503891094492397167985254307837315589988782002787032983709336214018769165992930188320010195431425402224595924624956555909607177570328901645722444796730312114591686115835481735088197430254936255936894037403351153819900268236794565977223870705627047890981139554503043916638651215478395438455269153531362417868873415573571017432682858681932442499256167767621140885063732224760848684575265643871839448091476196243462471930854312845821490846202518525816168596098448358478308035061118069364568729889415065792396227047576548879014249381282362537696761488264681704852672251093045378254711191408975178372418626828268441132471493184497205473900578167729045941649844841215072052749799419456283139893399281933113790490081947360961709676045515992317735461570364861117275154915537141202179097938746648794358128788256865400784376564472607054467874515789836809326208309781400025280061209382983258066597954142789858099561931394605120300151465241861925042147416880707429322496172926335343996282597766578310356120202168093444023661189258424953763628384017424036946192497781095791328475407189988469613485209607536740550223424461707254433232345975499222004985829371959438459148752647117259849864527721072619369182902008423260803350450873341110177726426645059945269051197265274085722835979418433345476097153814133176738156336080664508547011454886942692044471200169115983183302517750849254903624723734869574555645186504429666292380422256682888530821310226031254680346645929397403560886156881664998777608420728069514537648418367495783164384137354338849152798620245887081321175291213839776977913164060460618587211980450552434276607049733418425209380738439794457926926709921837074262608565697467648379285779664152503478922582712511069727351186990947069059158554764426011128397375380885471989795076187814704186790230938617139874231906263260326543951880612284300949391609381096641791560422686112013613175842485263546812988599588145631186533083977795388198607895674349957061334713190069835957144369102945848264586058579649926785537483197557663000648442027905423362949624450040762890667545139653479742932899908580440481271677409995441945465585380663981951536159811029850488557138926050963002605230498120899899690591073547672351428658081477381698918395677955300362256413367225238788218965537977358621976212471908393322728921589255063527678229425603103700782277284190418424847876151094581191067848869614245525836220378541357295893461892128850279145752607701696392399023663810676136058501665729255789329200341071679991901119985102285679336469973915236767946259251942693415902368065602727867023411942698660867486505527476582698556076722124363986453983322683260823670150977135568180074478746929540291878379508242763397996554055663104494194656020970395538784038905584848589095812235598452620700018163001821035130282912357068243335831263009340435153023797335775736240874358919390899974494719043577982276190289541034280259604011695630911190471849587818793762931896228852914078097817365071660068265021004836816374341960128466893256928866163529212254106880701394982927158763825415358136592227095131783698321055079193723278725349852135002182396819385286754457273314861136750798409042174823365959729814524590694753509337530415334471736702809284666008635698768888549774000966991967379260275248462668825391452905533871344193701311726116071375237622288764993141960070841546426256434097137982611332148544083052605922490891556066143571951110931513363148979531415415709266245487210740413989715095375836986109477598257216481007841851529209085432294121239374934960426170140264230791228452733244695464676684657774023664804452921348689732234423055425451169915008052849574694868676649990896395088006545264824761031747612122871384793877020300781778072536292679402360669689348701392240855754736497912932444351290466003085784004398831565119164442155225524594575529111351441959614130336836995216083936535326103445574152675428521263330985717947501541159177232039398000994257601074303612854315225453685565071477266382925416155085388763354432925378455835294123894835335847839733805200258728747940108003498488672330805088939200624091094713533211064568817963671066895690577630041398964128646948463489266055012343777721007715971603851782191435220869661632232839473156409530560233097579882878361651227825563066986485069983657966742910419573334482357420437396579062415885090427793679395757621885831663072636489770195806646588664914408733193466859843929651501943783926607234647567864089496303843685156454154130287633453377827656317601680945796716204474787428460013949104606261844018839694454070617602380152865581773931356274299376622814934019551804533577076758597957072129721034095837331241060426089317247569320886100464972333966450088062643624948773863524419533215504032392175505250101720048151562195135824546633720227166435483678811825601149481095092903975297655734695211427930389594303561593741834814219911533897736053868976517411321161445614545417153701312480250924767939061695352679599324360432612400788666026199112615446998391608508450076270571114259010263703150645659618044922972838838618177992566481826903100710049552746854781096618057355326084596126703883170313085609539909851710929555690639496843570431210543588091302671596739036460434160875005009549113947250894493066921298156237014394456904172037048474913679041370420213679533104935244637268428056666238674268513901435083471846886185884216172453431324314119866892450577395402879059648708452332146995578319783382693213735274271765082660994782367969545419581251836909354248993443342193932307593957250749286457739157888278749397319491405180006368937871189204442721767499928467894405990589550506529614861856616123828215249716927321601615391426139273947151701736570602798953872807832864538528679018359543033867885349300096661717656494529262078411753701127957517401214382860342824533267756725610429778257771607171500581610047461084893483197978749704794103398150232903351478451270288760464111699686096576728337090155387604774924055037711609160629293636040173453801850123389752131071246514059475058904255500653980325167644083490129997151347401170257098616839207304212494381546438385482414530297923639332616320349582431766623142620732508045065248939329056248922147269820893839149945536775314794654147388277822811352596335454205506380514981056473371746509277077457121102527342167223941803976246125560167716563531834052912660682113808623794613016340390344408053146252740618807853462268276344780191329458038134818603482458926254289377518536075830413942353010298092744153797030213485144943955150315352506471259443613705391328852660781249722445120458811955542621220705580293670390068890026050360557272316964630340813321969047642302768129617746892200274975717083447462529491087567382693975526293933411208653881077062444574940200001214876666750669436026703649735373225038903958003706795101478688930490513285971369371861800684849418359321903125927110328821440616021415301842628698548900194525096811532511666906611805407569779151917479770770052627953018195881937704926402969776146817084417148617871011976854088662885543244306749983561181358861261722349268761473931286566253171642640638254155025559185670209993467807339810344248807699952497797352608467711353132891319325933030617923851193389033088333133569249790908867365795220052733564171373431256910438725471423149198448269181652630419332378908499994615501861182209570003417803838815011130853355785510553222205634696007212793523405808460617593433103585961497251088442150284387771080582803732457222002183888037018488856962854184269072473327681972122352139567372475436773436948746233179180395847027818248422532301860158774676416947820622200798350005222403790183630757037648607138139863612063170231923707497194751339392645081232067625821409766149099795738648267178167751123196431263623840507756038878681049535168488276186048141557109206978462434999873802976660055303186908085341419587868654156914776541134475247534691532180569912216746944597280959018043772392834587240549919359499515551007976519239679791542381997329495104985536611719562906453068878755222308700840596456409733293110381747899176323117322512023919424590290967031900101111866027776755377873894754706670404096352723973341237134028091409295503654424861671430350743159976338534002990986460949091612901328939716993519661686462975335368581410084148429598350993153763408806268881194924904559311128755522007712016311869869082948809906030793022456025044618223297983949000290120303333154193998736351287978790100166051702369398440937372232454229970713061283714553806248345420781550260810665395478352024978709763112286575335438889603702310801893416105104135275701365133152369884792157192550430329199671762875503705063037529682585887868251931452553122227994315039494802157862591339175596919593762446430811475761360840251966997782657172860940470128020655750591942307125545696321496069780670171201127915796226428754188395668491044570305894366353852003932675034578230784123180307923959647243601203356604297250907875395777580167653452355278874653711101886896252896599154377387315427682511562173670796191044201547249369578226831259834473949112698687459159253553071620936085207451671817931882250099772490107222273139051635140120807879550818273718934685355128098752032726559034906496982246191721277935777981847388063886641947461388893392102328248233926046539122531599898591430292983412517815092230626091861709207540847336164488726918873608552892348711963560267570475620843787654824199403669997740885555508597714064171041960789719992405463213760019573155355665226238779696199140915852650414664025954634414642224404637227121800794737985296330113507953860362751337415837134933070257477520967983234809798506595761126581970004761823445407778182033370284567307350561822768026633030731390842572579492382009857043475334812467997584265236915941586537884598694526984334611595420799430823494037859112106131809218492700292802368536119193887464483572666480811393219476641634589062867335682675268701857918601588094917241671910821919528425510032225056174890016193936500642220666110061775486096464246741684503579867224503931499780904501516890594799009799020303825533288053496391173521105392937446285257955960490957055774026575853839028980316272895402288406121475385146084879670737719048011860384539467094616437540564837656670507201078960086152908765514305080325835420582836379328705209853332614802209406580801475928050456027957415108006972124055290624865408442957041747575402503476464309779365830319838532078103335987797117861261437936379566176329683111141600154004001117367358541691796671729831699985563630698513773439683612199256236556487909328255006745029709741545271330102545380648167799975853451032415551189445098016368306770565703831881445752456878707267571518089289210964234299355385917468797390982934371932182524422908267509042552984997165342720351834074981522617123070995907086444200506533934040424389531079581742361955913849387131166929489588731894229613278575786335465584887453001524228101128973325054086552556160353695509944703011930684623959150247302643336979467736443177996337800328812984410746560591222127612278088678520082337975791215284756535282993452577226663461030720397095601911648274645728932343905470158707964778349427818767906355969606324204309915654992228369562288426328409265677487374645007270627733386761885447149225510280969124190334924332641579195281301137957026909281261911220955548947192102248048216432164584647975119746134775219660171384109019893849318333016173611713112202155732231404179878454901409623619864396142198086413139306912879043662429404998617803363581119413265140893412856239215153462244132054085850394260845038260876766903412728097533109034692652832381415501169160549318868531318601493566140538003629668239519260589370854099324569711552722981526529832580157897273395379563050577163284865436108664169348259785274981647007757315181042321688953555756561938885491557574489195154249725901344931839949091682917924326388745128753355033457920818428328308792245331329985727945806477761776901466035227344854674381397659584233198103094946132166447611211839585281600620157000236929781174457663701871592521609110867751019816894056568828870402570280467646172376828709674638312173416158780401574027757986575130576576166595299255218346955072083942508817403523379090289097842705877696933888904977968971105023992454876467808311750664415211599106323107548582067859690232136363098518279044076056397432063830136634314389357103008579173484345847502591556169396148183297082570439117689452541207095042082909561622943619541081294678317609508855357885097259635152124547333802839903643313016292802445305362683172070493633767734725117378438258921853362568527037038510069934382473150434663120379527229917408417164398844941225352738038885086022819405888733478074975929255110310612425281229348497474479564020669468181634096055300141422274081250660412766203851987246327669988194126127604338791609146096084935108137959499180544681207272553868760179403880099999565899480884079653322623890178258066332685372987666725252539848270649359950706668589051663598729689826506254481188941331109368040328507956459818155896085057297343593450826379446190570130960829022203838704756968194828500356578401348509610181201503306872023349817470329279973034296253491060791862699963517413130204260423953807964101934727982868558997832862179090834190385796524289307055973203160951025385534673828496399465854168924867682639450637049868803890818062283645584062737019294942883771121720577350140658497156038845528338797932886799706070220965980303062607291992015968453879548697856669443032222482405157854906875631272038433059436030546883587531051961340787153743334102977407058081948749310743406607823107793839272209146069583656275799875500250532928606046915567087268035050939067973491086578177219565157749583535402576681152526297755259078380298814497846623754142791688387406052114771491273485544077944920878364185307141311508982424795163276222380149401121389982315205517719364807606445433428848679698054912563716698663415632069606471108687251245366641614986387655287023964059628031229766445888170243823899732494939966387392995461305679722792067590205006622433862294527100139637733397131458058350735030092747431259037099577860920068892935942802716093554774117093205316964784251088414781924785701690847617125938315465579222325050679274184546758117227306401494735544592055008376036737265162791963652023620695933456549018517368082431083684880150042906996560974577632749150247418695304942107632054595840982468742490128097308882508115533180757658565710506508218240853585995582000547418143599168589325379035309895898874915294997409369314580813702814535875891927337823110649130032362466075628655303779645535674782912530578811732378247459990782093829386150909369943556357351931749248498979498401222983473483304113172088988932804341439574587165981368323548427719166184406230603234420933951174764011358193353125426042998591071710075535718403627163048698174310839682027093079185377218409748170758630276137590235671879237368474737659886394451013836494350437830660529909795200896437470335581169373476351994887562584530358244440806652599161241061569278239207029265078453198670090361619998880124173759188995946067782327965963333352783882342491886325147881248435566290429620144474520740654526132198358434386244069311143343202029607519784565485388442885713270677364250522813812482930533255937857088575901843451473772890129028327797756095472697153708047969750749930028859750090450532269611944879333561699447410593347933434258207935301406195135308354750727126373680196215179290251621719419526364469742879377636718947989000743042191905764427066868790193204130246411719526366027421413394567771060830058741794243613582603236923668471135060597814246739668200010211023669279533678085985738629673951463997918402691073872030641006422895238531028195753272676216181083729055855526969348936918532181550415388722255081367885253287081105724718066223413176134274950130041014189707232316074837368643471102442859751485557776662079867557065369451900892795204775765960277980339145582204434154210035565302474884535359455140984774419996695221034788316325226424140994762018784285496162929394750426341770740594831913113260268798673946675943899556910784035513535027892822709127327299741130174521912359712804293247983820320655042275595791527029060075422714338323733162133264615421396956187249030032766988253603317505518431499018369699724605180341869786646116048953732929638082460148978709094981908845957136325179118189817295703244584129006066514088139550584600615921969971317680374366288770946621033300310297484120628964535832117422646997509224325620400570740080504306867150935685652110589505803892029483095405134052943721687824352094769427259921734963708581928537150569118170131677429248244563814566968768887195731012448529651242621553404987409237931311675714401691947265320066820226182606675568946886758833733476275119664466298978037218367102758135172278157367060750497706507450754667748018656438251793589848963263441070204858772403729508589234878496808495892059524837877728324812964391453137967321472066685699851656918241151098255896840427426751385185114053759947101144890246408677376326997217538235060236238912162273536276061737957490779412165090224968786169168782168649787285792556637636648395156769017344226572491498962903604560824198904314784428750520727387345090645914554608141726278031685716993430973948512282359756261792349698129651930828604807370540875089807941509811895968513076137596203937570109202100771036613092697328586282139816654185963294899458568813448120770157678745180137681023182017734937549662745487277940153937531181758634008092238455335779027726753550453778055365187502468375902012661256246090807187866658626749746486137507159868329469217310990531549641903543423198297360442461203435065279430626756299601395506425019280095253783393722425896590973342577269067370971944452493843186728695995331998447360626286046525804797088527584361861071314629359605307163901920151723821519425783685724214841631252739791496370948658951703763674553061483140639455282650141171647620440779362724550047134976944559353035172404175522457849113678792117092712758587925680174771730538177235608397515674247097787550846076441057512044524305308455018885720213253178217535020206263813962052400227548998043801120617065702922279373020304420033553046400649379934748529680053339496815433509436307585389575969832496765510578422181772120503547426672678622037671240375108260229821195012386868979036476231740769780259334739622241619536800678864373569694465555058458374132813004600287619340893267250341309071972212330147733164902973393689644091384986939829144977152175756061580677065358844285820069993744500725248429202162554568151094821269238374759574863886647209520426225521308934510444896738372170393947790286839542004030062645712206150636188070634679795557974664059383625978385244408425989024870404894735178707549213532856597304025744021884243300169594832775833779099291314177755594686495690110507503660975108334490454726511815082486991992591652222500852728820455055827941740755992775060051915300384361019392348705207376570997509463013490721773724291505052280221658075168425401391119007056654996607864929794345942122647993378391898431855814173393978390085477402295802128512744311541471886290700792563654510693793437440148240891450413542370337081503565010875608882858624139502418747822062112404338163141362681928576149225026477056346224143377524367226090711980370533928812451282595816655043282573526907866283888709141183606219810747873513188018113727566185976124287284771241932327363407021643244275043997884282370185396366861410086009442986321279993225874050817252119709820360973496319683283535656064557845576600738179922782926843566347612539924814992954112398470501841283084108595533385611629675309509163152581136166850372923319336811684374278523711119608057501669424928404766136397050346531327716012947725846197271366690341550527960295254807595722829302041929282841277584030416360285718502446428949849187492329503077154824471597905815536807003016303496897410194852212415577997942207027993884862712000066772071662565188492048348120986229630704382377014117606073002182584806636500412516720090903121903770012518371337879754264426775256118451169211189272367525142631270377120430186003849052000884755040278413234611117237753133686484369173967570799608717165887708567743435955139129190560490221959338114951356052495452138935295792587986041197619479674096202428482774614541210126710695699151604081356076665089648769710713889082721525313855305037124795897500645103960448091435183179892086790718012993250508166092508632047424016513467320227702708735517901770960223895797822315530556277131090501206589539077575381925111425575586729762584848686627082723926094246835775570367222972901981648113010133546701168792554760471069660018148679310256934453347984996588184151497293773743152271917647792912297136947143996381878281127781121914048142401560732366206540135250172454910682363099933779097021760691701330158138013519224075573652129351120104496795086379278088176571525702930836017674868477045790429464554708676024666277246665878195547547704651884633381437540550856589701029159773138347993855827859189206701730016113640364557863934342147243225664043283556054450084692697996954303594937804758856682886558577671178694117813754999337700328155863255554187506313746567609792268458962653066635208274839204789894272372776668111668772801075652066537377792932664855701248998736560376882055240312959767022905142175778244709586541046263596161981973699138238871182248802371555238420540555413151973797347503669520343971847985695954018574851142188481446380705670134251572153173038544840578092233480916302186893713975413770849952414715189749157306875484897878961022572265626153034445191800495309816573176707900492482025867793775146531645991503048862213745315536678615792221394682695720094017778369162887315690395673108116025155233658375550574544013037640703355001184022127915571188898753082068815265942713944052147129566138062256605272427377058793540138995277630315931324653081830492184269041808684786446664840367772223648034746010596921366734075949688180620217031605435621404407438722924677674985376676677035787176866123173088672426112683365009319350622179624689075405063172283335308310168629369586193960151668899736018122301650160089940584562667298219677947851320610071340690492281272401149330868618410914803870776337966440661408299087588481584353428464840687352792548148378447050502599610801215607604089441129458237747171630260422232387161475751434180806168754617781498812631556200850417600682923539548125943082955129090331007085690046700253879445957407623098455522568380280687203404021797212958526909486683061621340977450375930293147834979495808079591533842441594938557345274771083282891062294913251955648575173460229718631210719802448790168117227570490945527992113566997433498577904937654539054635361682179450348433776291811264478906178796820938475557459845810896062678261762251788559115555131884492013088528227411188350014506946014022101333900872488675265123666948519546852217060559823394305970517043579592584034283612758822905294660271545820192653902071380830331578615319124930991048015219144755360687912519427093571182442516073890094266479398209022040792596266933519168595598345157300981299201456751648887004185001694612315356411628266493539578416112741717111652374426883752016431508239271818051205136972251197190707540752239338551041640173190318321665811328637217930374657698460511514654098426694831428552259758149933519097941965598992100758970293272324120023743118480210534383227693041964058297321849760385438825073460673040121892158643715584829674330956162080902447340510155246876965067154438769027777321366690046407855905344078232407140191687343731876052111486149238898641089738889672130329177736357867955746204599425397864883160182962388628427990243061928995129346943480934104747633634813247037453946415973259302582766126990483746234040515104571993059416236058883620197559402026049908987995208590651740921910456574013856261788529491287829625114521067392333928161899186950067543697036535395737506989211766499075233781449240248633400559986930933760828027448481637050870312212417646702898392197604591210223115914809299703133775801575297163995751988389781684032328526704283152715125073299288009906487563998178724043060901131050636180825793225697096040782412553168136941364947593165003581318504429981305329089026299494987808669057745270117211590005423644275581886233719733812527604815890314918784772473250755781523262068578327697470535196917026594882839302038002248389010193432315683203920637008295402484610322081823213369728511189589686416670690838548163059925057637485815058785555012842608154879336617414467003147053935932606376582998310096357880477929936291030201330317431421877378856885433518850668666490087126868105360259013239109659985252191929643069367709478076753780078636299753063803643975903263901775835573215477259993040655469589381905799544205637523812188932678668848580272773022837339068573859461253125471365788722963087127702156318753840631566697372016985195030327521443899001095055491198653076194654872313365288967998031850228617565201652622246446143198798858039887054584998689421721264756714518661396811381615892937941058593983207281845990392908965296228591678329535852878336730137535991452179859259469351026894715558163459434093626666483898684513999938705608294882348249189435011404214753553326332587568123740574475545199017465344710835495987209806975835951523664505703098865924393408231346594513889823883721757964731176444637069071391114274481841446746540034027092950211660182932881660071363953858071572427401719760731287693187323018651224181683830391191925993182894460753279759318675816308719901378044157733891420833394991125482043236800666397086755949315590269581377944366310750363599023649873241133254003231330781000457003505343286124751405817800560829289554544073100881873905540268063024323815392769369456856682101927792941587968523459179788245652521991889040039789187837002653483286465666450977220083308505270975595136601124262797092770349038075398812095779688876119622757054709489245754878661002491647844300783852446817705318652344253893907914259314716623305947314178732106741629325500765577148373446693380399959175711538993049625200506199201767360808141934847841101340094960839736193056771186823309892519619804259448902628191659187274631379161099522236172793729189927817717973015386922411798000702598283627771975608797350715375344329908507960902362380418525728388496452228799529767672347097318689292062749807933550207204517768488532706581995036345156169607894187464581776930418261999599409764402946086964009702623271234346361037441630365375832714711391910911871105396850662199517929289249532470942588923105431719496987854495223556359874257442948145262329522136770669776148086808535474890785530667707089276489525772080431676389540272044485461980473481249719947053335311780749968737039353970855180404540733394389105373064411853590288452117820538224299698510361844862938899918879842173755304591049712581698269662363001973027724282850582049494708138640904942916864697199809173062879226807945407844923908196470801869723403626089301100526399226062341927380343891457781595358529604245709819231900814508716570509364708457439824018756486975125826628596062813133576655796266408081066101950759586890855491518264176779314336765477709973159405142572593378404922957789462000067419865874152321734154035267723503704546207207764092605113399858731352180937380355258330677740109663375455443705562721800904947213505360903161823227098643018357379935208452665090530455532323856300465918920307226443505878341874591394908662878885127098265106644743731007120414139797340967567633032307669487710369595156236912135978020757416284288418312831058041587015578117558626770966955614484191356730617214771248988145879265607110887560186889301422913464812929205462514073839744827468307466920614984829972577848561187636961335786918748377015839194357177395655224698061444371889084588794878837386603363352008423901575910373735753639219367568212201389267945393085523475472089667344654956092671806649649598632699332914244675467834170954167712041519404114303367931397019235107513366652799270640935736123521413109785809998861666776916772538075196765912261004326434398926111568958643504859606698427183780606188255704657282979756850485356551321091695530027076637675973568687914433928500717859204912006744871879865894924202963601780660349997560509210096510386096899174808420351609837650298535242727130508897119654839161754056979991632760270343985593245084225396521667154412597874491236823888675909652775252021227573278888345067654227492959294252417910549256203225336895607340431676799178291728806490994670846900401257704639546667276502153707143893751758914393787880075486358469060295976349060516327422524362558964956826144329224109932978927867500597166986229043304516958050183129534858461684850323422789390680454622026860499751164317506163972059597124636372485161622508886200012228470018327457977913228315918502805498525890128468251354366819659724961398879709039200134099569279581241045825375083923799826328616597307433392068992402637110756043153445091153657260917944884702943568877725440887974286740394760109807480812607249158485531407527957918893148981027688017248023277351141038260109646294476974033163752247299580638925086429267304214470360299542577959836337352041879245353042468405106603527310638008327289612079327753157944645084098052131572086470507513239905680495201958635231715664368892034120535301850975958344955022082928511090488042307537282227714364381554033653146218279320649218992187430876380695465873800904865141514851896820808860421694437189767462687734769595391784543159248154248088439113756483199242898368969392447051230468531968591668038540404504464320702721934514219825658444667583976988639341068443731946952449019013887871000380998517119349211321784879885689763592808963337221690173472188102288559127507976388739993445249675089638915195411646546307543546015594902536187024838639451660237538904066577206973348807214785623774108806246584603772481889051601498806999531539681333982697010448376724978022027183883015716170652888957738097073283264923266113734371691998522434660193469970988166027663883836564309381780176126532937130603588917084780691147428748416506791575890534657831876983183858684342845182463687920121429020481391537391800467543029902387819282879004627459134806225215712832051650847303379505177935917277536807913249201801149174081834161028030648089507421607781193168563641212848860807681422376018005953913082669844666037876680865177812436174244752954627205078312488041637868523458520369636309885108074120072900774863019603214132687414375327585374386300638130845642270090364048841223424914093461735063614425416781818681970860648128470568382222442626039925788464878534303869777588503691134466889513381253885331524130539014424957547545373571671035986426151184856614090304106613297317338813490636841011397761373503649207739687036434505952489630794918236177630058180938901680462671072768120018311980396276346890183136967447164984399815298132903181238520424977643329877212861245623632623344895713756841228310733185998895362462473857765982014559610137715778068051523997403095064260609405030645322471342466842483285937347561249165853576956244016437139010072426388919677799018437783860956838428323176539489582503862667124331221592644078532412168294273009657077314255756034873216469465989015511095394553587016890825052201052968945217554050782744800107800095653875392872553210229622454295230660653332347260550079299071087467500669003436622178136459125855407893373692313043102719217503644632753187379173270068086507345118688845708672580756613004938497794728783622948981536743183995822358212442073877647384267596936587235709310046952274839436504151720270641257505900151196622378610765021763737900614200853308046693972983237681330874901772704721395204629123611560334030142428282753345835881906664069693075738105419527599630739629355011052334319301737579010645172293230782248055064284728037881298091620770388329725741445577623972568260118621044686489178431440571980285267244682099318772625808397539459878026425936823527994978941801323664721630951858713702533755137929002864291100371901157613509273571055055698084624262492373815385244692504300331854241356505595125978725217941854456299302514716609017165325600132483601171153761765235911855854356843860684903134576416979745431803966589625817576642707093677069849281590426598579966543202327808555979931487653011894266866233132933829443049852752805735242924178116969501337215469924112814994598870652100119754571941178421163764737836745052453165290830466867672568558639044950745578809195564349227571723868137977482288430101239504078138502416074092258140757638406050022369647601103050984242610527282345179626987005866412924334048296282799403444827287183526251870764545430624264698120997746534675434729065664350592967855424186326168972450529869110055948789848669083368567957817817231187034892188439665097451914785282353515314435823713165882277020928378241668672238413603690610077906843269050856151366464472171508896540284696287536593061507789850950035786281231941827505830599909561749330130599220960636529068964450288623537734236701778894622052894314006957965985542880162439088942352743105057660669449341091987672165213536485388723835903956378036933655171253451886159271950692652335520863751456888338835792662653096551142371313044419973248906451328116471510785443780334466968206430880424872087358276796901682609640071941199851040817035397558914995611415627762794969776569497623943465556662246930857043952358429032626222691632973901141726206312569958652925330770126132954749497784558430082418329289503195472709676011509945640388595726562640426845330989578830675095100242716958154602374839121772923375378736110261035158138096385455036735754969115925788208370838591322954513822559269076932503376268123759422871665120588839939209220399930900576060976836056768227849570447372767980356791579801545057533543465224343598099722147443457213877865996923187091769059748656553113554869584373733069751450499676926968634282294781946276433830244834931603247567801483461328226386796032683250584854145777833846560393932653262489506918247128362885583174587297497178481621339282132814254462367136922434273148775117118574695432526159433317904458648930281198069132582541723361543474622582151185812643390044184473633343037444308193306084432498657282045807323181627644652054721823941110557382708597008259608975837206976621328610522283454831950242194149962509717645833296943556394817820388123264341230942183807458599045269333700105686356669715150493503625451202976859676751393768321799441093502816923503681789139180285500733452219868471432548231995580145937255063418234936351871418122154788050950220441944980648418763895209476038631265039934871425735869953177020008276705365069940919810105594578086124570556407517472900470924390531771353109357626092023272960142964839491710670842696694991364794407202064367386603502465309502206061353145258476644925333647439226063257008865429002394811376817560113870239585270176532374566597143480710041176809307400358817214496916805744246426238701766234110611663489244203558649423086543329885199118338630604955514059733769162798770893722361066068259672269440701965627815953666133188338674734175396981365141421798885859992478275575014427369348437711495265560038476218579232119557362897432517427367999214580924927736205132431275467502088648063410512870384488808453195300862216594189239411047603266483592793494757875610706950984918138176715880683432454717392010154283640033114199161313907265575391716685966561927014625009332106047846064344140370654320566398679114116270384037477266695933647320996405754842233033896662474817657824944812776266260117381005926057662883429646797336437974188937426279821644612039748061064642485673157577603153824523247332144797388634618349525524111626421366631136728517549735684916589920322180585217511443062452182229988710555880118383559717989094617112018082337524803130411120611382939810373964706457727192183742420882119540558929767924364615715945947805302531772499367491316317881274658029580308330202875714680429826465910503533986529937573378097998644148761275828933858525906517918907291706201212355505395892208402402596732923969484261780767563832167202831010380252117395072065158600544311756460952755355548009609286031072168336951906941094234078111848283769493016012372488157002669474928502898499786762100877172173228933086921304110015719590648612048908152184981295343186468991791489560243051001966239415287140581192117123327455857867115853456182149863253878494600922381217747139181677040308912285162735717581739058062727789874560150694891580285860027358037080816138558864176018443222542439050792900144818328434294684217020523663792897692923610771750949945447088726317511936816065435312442247215648342640266672298285134858751112197614634568348338729766442949984062961229215118061785978643093754196784403447379101870541019794860045531716222571811921820732995431474723725351728954706196351933752220066624611982874366184218502782578072863399364595291468927087331373090405283480450471831190962439419080302580390399247556174414807377984933297655645930006217779884874987649552990346506829473509123449496447557526187460312604623327795085987124705745442304782124869648542946918237814541232795893916294778000009188444959585973622404449295591945139156761358184005060859732873801171997845333839543492471330533885502160337696415308674427636603994241466077336239999614213393067088101077208114748749207554063674325524360821744151018781092873946128083657448131347440513433214897227715247045788107649710982325893320827630255129982981918790221756458355277703024571162231349631044971505623380918045099439032616992995552675577238944545471312614481296878835683919942029827391275438742502221213116298364812315893138839184656901032999318670269259670065190556959431098983020688778057778055395191545053902685746790032319713189885403878727328428445807734846422163880882884146385361174457284440583007708916235448007371418810330239555481951431640375726782325102396622505908119703381166094309183512573025568363211219995341048074885198241381104788065748393806665014085545370534448821625211670683194251469846725116724148893303638456123240324514012407754146390582118970269671611369311278485006735749872935954587718734769997638008519200651043854279819151252778837695293504833629667337395524178528308052810213597376485845029236818694061426798110704825883418399371127190350408949591538259354453391164002715324552971827424566622160190510971664044054731820606056933446438319924051586364379775023364803707190998752699501371270183062937720019136455006563432934180449914521554460651554444665790725075915988477416842231048167266711519983025547208225657458550809220818009913413268194329453943153751490751554422534468564562807761591843624668991377845459598039333993718592576750288812016237771141073012764431656607706939640460211142170795051225394390614645485030829769456607002940817521113382772646979327620732334212125182250854407565882875901108148796675934151413725075997234442468122259379249203416074022388707224169143752863072686453285707486699660860913526853890266840390924502564879658832112584027316144152852569480281219558958076118964744089844312006493103130766368575155823303058770507942371242195785210571501329451518230794264091686060928505122931111960312588901829031971723786815653068200877764945772723935484986994278915372625627905424886572723650050446645283574859414683746627458420271334066093880248000003810171669096476896944971913864763727841610387418748987554692532522942799106311451717684496115741313257988449639615673468614534704803361578786620661576850855437849241823317622152270791314071075229864911273027786948630297789473374450481921947987333382747351133597892291836427292558259488543425315457770888067346508654196836645809928796841977340447694328701564478952204360020299933751142612361421289627619941939333422835546707574262370377988735615267937442643739549407760741547486603494027187654255915376508945489019141149340856034372331917006793797090019433581747786024957784213189934760182148023845324717650404718029139216895253497029310823439880472854947031469543389120240205043776987266523318337259893621695014644236407555501795747757948360331907487737219209364753268563301781167525889170852951885818918023807257696464748964178980133917241284074106563570568502376978994334579222596789509753338414747037591401561585176172947669906403474241427418078558343885180610025514812648785409140537857796441313769424520936566012402098758591916201164694712609556994713238784126098259497228069942004044578062390946035120737768852452011318917458689320502456786855277629161592037440606224211397367466109950900287430949529556908109771651059209489943459093964536735576456806293735185442211656395120738680725208835258509240661421157316834822619730724464116030576939866257851050252481080392416364809807627515947012583992434358668072000288883399776512815943807243610620698230265798997379471776055266144494583769805410804828650131664289805299761095907129802817763000685946483661122604447289964010177195784722482731481009901453119740506096960583110995445304828788193971977240687185236345796603646463692224354444858958756540526949081946743279478016249243803986483357378046162076794771930967065598315008277035285950833297190364250204893620752362206491047147055568904938117669967141890803940686458356273573882303278247495671221538827661859406361056514309479749465550769487853335274026377930807118642900907342292855194261398407546744937588776283601786776026526952062805415582769462888238417145345302885238817738266365082794506975071172205506488589727359711740834673413292516187789199420384604108583936750395461931285000579112112180661525292638564125060179711547594211751537853635815234997532390805108885521863748905500681953944982655191562688315338076655873910744107139685122551003148004302633353620324835517733216719964734261308708401734253882914913972337561199122070234160576663992780331943781659959099242916517628907692097040620166488445510663017290139607394909892169407409092449329995710846299912551168978342366010113032940053594596207848836322017489446213276541517122865022065736044833802779542750995563101257673305494299381868821749542030856505586009991584711203692309070304373952482718087224787998012891762588612966463241423251189777871747840366128245093119299703820686705226455753602599811444366170942397819256085702978995314154786469080445682283656673485294968787859389459299452388301914900609645664970240842001755443671259570154039916972527279545964540986682283166275266700448751201758905055131619875787823319248665407051037854776933882042755040003950779094924295908161312947058410725844542085168046421772850796517281568281621058057889899396331819003873614459865472993136557923595418634510238209818484884030150301036771039002520754677412743315816701898634457380231378791563172254279054654451885889946699977933960978129785448159785605743551016742067662021790236341115296889735504240455832278512126862467374344317460463466281174553461239687802132309525327287987828862759058184465781678487725575025137934431791568643244155461478851661286375562028154177038201013192479247131888570332348039734303673238710257042159479665816062402056771947881819977828199440547403084745329307234901093998206562914604434260128624663480029913149213632399723908123712371330549223213389861807882107470267460514416060945567197357372685398327704290610615319760686551190690969833637172004636604838736584516411439340505849773242254732441400993854197853279781176274968851658388145069258084691109026967258662377065360783708995253858928134880935983665204636591987242863008082469355265142147985565115508591248959736056063420846163287576734089773826748132442674686638134493010547788599869672110118490506692732223198602786888632993947537686227037577105170833847823819726942749587872973789554064889667791513584340405526925350656619632421176740233780502705989766653086899756556857671611104029251493649149757844683033149692607485469508076448576469349732895140783195800912293266191100311462913691703141425972546569531105099862620203291899264314323115765338059825329550793527937518313891213151206944926049789278043885781103772635813395102555680895010577484759957018406483709119945355734617332394889583903226215414662884126231900079261304632994477496516498991094935187165056085976757050231040759031199292614697767394338493814977715178020111376891543405219408169139078019892486025766873089455813090627225630804170076168933200645660554334232042409823467420178707422299792801032379778507914175590747819953747817747787898943755788158964408300141290483583216293102605995578534878117902744602967046479771914748762763416205831903326626490487937957460105254630915691888579112675682633972695052444729112812493220384643937945265068195877196975804133354712485009972472831695668632180632623498605760735877134141268396411419972978928753943795258965267058090270562617070955690635659319167774118623390886461349134469661723897853074047903751229577331772242094035247288603850022536526679955071548859032446447798576770534420715324730284197586181558924911835641466183572194471942498306920088307769563472645662135197483780298674200914416065822839809516019500931766874004902880073505822506150450915572027563316031878881997570979469722663834663089419760309904676485293149993626678400097331179294623253111226318760091147420699479475496717743703387184602916807721545137994010472064180552868264901909138162259219111087516386461560437475111837216215021017890990313035251078956919848662354704799579176340153952751783118166240526178926859328314290260913641002590840890688543330494310008587323250759855480911714422237668173025201995725070182145077111121305072137119942300603952544006070846213617060911592569085223036248506455478418250912629050694487504825809263741901591534985315635203739486127606017810570909637535544663276933448544517443178325411676850624253948622539726579796767435209363411277617423839927214957399823219498288821117264553067702304969707035969433154519968197577337497230169438721551572881677900828596002714531247485485665176326123270752815528240907232602023474242206851297236366179094289642109293150586071441983335763973593981283774704872260814450125730832955853120238987089024709692384882625860184232359292821639725389463381356954883492862678767186139106012183845288178483507331719666911282927340228515001867005332697087624161679326012300503568627602833501239381367979560676713349907580452886529988098398812349724914421693529865773358893542767691515229349065427228703933298479003312884334812776376256264452069899543128280877869308067034157514532360440997316605504133697085334611085532706497849366558085879949414862812905643235605965084930145466828054468375666420655119871077763504841557733258574794068401638519942136267449503667009654653676479233543416227023754299298479452931105405333427345691062880941237823988391533405233303608056701122280700707778666203197229557227566766258131611912580434694792029638292906461144382400308431182874296492938203204616347343923055130361086831428634679062883913551931226599818969028546462682817385380344013998377196437063974384715053688356141749905687626805342306108044790333404470812346804446223140355856418561415662494371987269513491847666958385464396519703627388542522682104476836220059084362187054215309124533934560233233722559320584187986286028340524094876969951792687292031383557007052126277071421516819324504774344962783473162688514887966303740723752181457831546396575637908304953031754649703537717070186582533543398684719288590170600035447506446780399090486674606295050325578338603148851868196818868235009053032508979252192342291385305835877367487479084232185039177134908074812170012775166892648257830296528887294677824163169977996620103473403877034156785228886649770102091269860529475680391660272689696871168281722241910345890905645502162916600698824220987858723961205326495436426902945508849029649873070175633070642972287195941035153582008164149489927707766387736442046606490939131107850708829312370741516576250339673115358001940157891765174392171205299207047942657014255164398319778701636553241784386956072764170679439973873331310004717000278591347226563991856199450457554213999322790877999655394642063056860353505475372347517631610319092856743425200876120032533022151986544057202969200202586311882478079211692509152008746554446957794980607813109817149611517995358810766989582005932043480760484831192984877983710540763609805880921268467980722151071570124693594786594166123398136786916378487120803050682982790682055902522323378857806516165187758125631234464534360987221690147368080394758816833051090233373808133165117669173447260477050564719121460820665264703004272057589805115967288889360792937499801423730134329554547203598294068475544047966441220261758039705216576325438960846419734804184916471395761411856396965639608434119017125931322440147834002200470692805022565879908691893350949543094574136638786097067613916742713397804445193849951463943277350060131964025845690936366205756780200393802058858130325221299513296443804564555341902670625254372346388650764042994704829939016617093591742719129766688442096626036077599656769708770573848552272328206751613871050640983540050891343683983901486237009494596039641522265446307601115589850971992900465255003499887778327750833897727973157550331400208550931142359130962856288742334552345192250779555389414002068337815151818070298664578570252132715468697196189670255489202164053475587624183670153282694262994102083029358038898047855143183775104320235487251422429557883096598222381127342776094515753780048814504815412520163925193570291556713077724322376278447234198057938526110946358043207312275864687194219707822135695892566477566127259768559799086550538478244773037860883275813382204657605531997000035824357725426451533390533851710223470455336380183048382503701121614661694408029023198907936962945074085943059352481936254106012168426099242689267821854226589444121364505278604167631771215847488365296352632046824470942917595108752971574732856296125674246925347739641063284102739016235485010636390609367870458302650915757682670819201231843989410053617566049314637820550882405286858114612860008968403131982500460373033319040694160605034716816712281194056646743043576965182044687280011841004689683396928142889382001528098561544487314752552630306767441377577196690878301060369991626311955132067714670224635948507901084914218264514576800280897405818243888766322049334815938219572078913496658601877646745406471602355254404072590658948621460480027744011876892550698262321392905016129847646222175242047903383093964605880208015467791862482352739011697949807787232051696346838792043660173540271726624082046017996680100424389173852022321269127198372727448783765447048601327444758668817281140665991078934468864350489152447667614065707454252248449872220307626582784283115619512194653798301901624494105639927637523953151265845894922956929164112616104318888648471492578212976943859067377385899733762243096520588085184466733957571243245746173880536353286148362566131602542445638304317581287669066765751654669710835345036025449015245504152357944513024018649020405253313669064720551420961611536765463226652646331220522646469218239221539285773102467646057679238914337484071025761612370978880648936877749813951322598484308459622638332184396014077102195886692891323251308483958973786063471124402205001895619095576453840307493940010676972889856155418261420159158348954651805301993493121453567778022910563935601643423793026349202965199419692119348270111098345006964842886613897505404946432847706904176051945768733564493102705029015174682189147229510202016459313383980844199501030769982327671445407307614130651437402132514433749530083551019105763083421232369253563146066693516823614589478451631249396816982797520028271093534420369125350973666112533159415233360006076100711326219376269140784807832744875224753984445471989117319560187402046047775680770305179456269173951094892306788153578920251145741037838662043576110827177086769351920796691709085493979619339147882923622482110819717771854900270707292702502109088571097277972527293393908849606800903627824556026525368552736308629557493014406454670276231339502638188903953509936369058874990663195389684918716581221992018939416870934595397169452785071737872990852224627980858179615631187612791831041688682131990004900460496480713039247220740552336029640055985447264723012961853421053104947165330367262769522651971494727038895075742427708721341747690105304895217571923927685590649755778023833674963889790647100213360403123338808593228646212747666344636669190735194263304149918867375384409380947322558708843685391021192487584249165140147779691500541172030297719677355024509964265736981995959972917843597412581893214306641446010872016960198685701718384595453083677372951436675385789156484976627822488263583269232869052006724607851764370263102167009443955936957921791503529687588325424330872530881964317484894383980053073654600839554207777333312906259535904284547680937175077366769225325379724406163023183941651492641097681112528051448769082678883336671185730767250545878675122759939015360937519229758724931351083496717568414938934230641219234520096413668551274281587140957477085178837286047060088975911416251459176227383706943117467995089404603028664707782555252233306923088592780454355964200694361134930194104631480637871358753788174474567445422800876359903904218686650072015629950765464969385667490257192926965268451639775102558036971519703081841029186648318773166378541141970426636575544168172786739574649320891789647471841234465005344986907360919094858582809203466195056292936039957371157722748415942276052001757792619758647232316770614810058690213994936917606244645231575968508597573083594850391184115165149530935729231537461373889081998747602187139625202360942675985205619618799165113277086447152680087739021694533942033358931881597537262388377009674333553593559416104155416472041069522235414930651404557988886674618480367443624814131468807525359265716986562902179755611562834355250269902926934473248076952620335387643393768865857437729241654718821588738108765395368054783734388587853860856024105862370334749690226828708172393791546829328066238069204715017328011553183339332089043014250829988817151684899210339169318527807691580666420266914929112190228065287234483046562564726517474562572485466538965658189874828488472434574684104170813326403626199360912502228450117727804003225475830782773876481899852727935593565510497013747898203250065537954390829653347199743372610483864879021014014274438457798448740964248760917772158276578984325645907077187977029518558224189354246535717268853523722254600212297811018651432657800856912574953766627725967777772077515926630281632023299290526224032817065861795663339076927672174696943024885268390410199110271272806050587278598456499057836143467062722834647179903028778098491840329032849794935052951653658879946627984372042605847911528862054531630511001352136252807663935739225076964111007371409583829053980321547768270233644236226210866077630436148341019005360949128666588641313332269825283374784160968779119508277828140452244852382025914081249607053156781235117970670740772409642607091464589300621849228368134100476782822846867080808038245883011330912551633056346352403145070645349925772708444463202566242055911983086892585024815248556106643615307863811527671124466504379490177611852644489633510520375239730066057939702554320626484917569834396316371280528857361892620666384709284900484668579907308996403414152268387854749322093687882149260542976512509679460968389684173253284755807870049646769185825429357669792873951740742276374773676607625712456453865169805506294881948015343376641934534018097068284643760952934706888036745743875214552993325491482552879683762500350146510128784721530533610369841574666114356193152361624276530586307227282567051739129013787940653722114487436443695034826017082504055584150515957110619645669667897469518868337551909125982184430780547965022554254614715185625365641666647937643437178480651817143577107240817145067105364958494638925827377074308949088809900496857750032239502113458665678867535934445764877505925863817400988228438655393415995034086461597839748130732547865124973096839196092067547232971266845929499089415486121002895796428310309230387349618718876913188952084951229155755516000310584559023210306944561732314907321473579979459365337068492211448113204875178951494667423093309239015596328935579597769974519581661953429571964421524697660259693397835271039662280443081343413324253562405874665227016489693935483930622624810492859880280799292371449024118107933634141464232121313997972426507651096156781605254807053951011905712916584853770239421457279275756090042952629555604270822248625952119455962791581916808133057310670135517981985112423486363599424240600479801771432812733914560264793954153801201371276013231882988288053244466842725429352953397625869194942169035388890232157962587160525498972442854113332991826557969099244574611648421934561000220551801477120222346472354860190625924983469624000517774782879425294834439452861251439098459219662453654859713254352887144619886881258421891427039229741527142649391405990314495075092039455133561719517973106526608019373074516087027859865007582443031878000512543891776769008435972995914843516251482206532150775346771986012146683291247366144718364392146900123127975916941306512113133222633017775607416160023435662535731692691812530000565110806876299718733179934988181586571339592063266447067710434700922915750871081656602537241294098130291216615763523366219124640344488245664348400591084184345486911819996006295625304496028530440868156618527896192597820623503486863477142988198550021876488545986632083293908366805859523483660904545832016727194938025552289614280127552110908396239631367776113215067259092420391441071326891802664305941904363867342122077298954956004447704089128745606164889625967001977941422288536320496435770020613531979481416054960347637194379523178153503230325623990392925960024818724167626974025510870108134298166260782326753898382516372592732198500410001450325220265620415680974636772279369064440307576105458771268701539751454138176032872865477006953036813659101792660319977914863479811466070736736077614522552123661010126231266998373046817275883633640275118518816757869254835468067540025899766167094008899652196830592717404264677526513287475595927170693805906929550599100539920614238958658770007241605143643366180753804098506643279945899887029276252627853776101927530808682105272588327362823993451882555109288974884184096205017110649267213157401839193358658923546889718315852668059447427095827760813086721914424880650806743446443868635226675901599044753138727427962721377819286102729570902225683282180069149026610453049892115382828442687301204997695493153424810665594062560254121370772924051050667864792592211600634445611057358584320673352580623942080843800550302446699732617152627520957750977388550454232441231516357127659035784374516337287337847920519221892417374632723096422855421737774687673424388184877686613469690696574921143023314498620466889688919651244606681510157644625387934550300195496870983388911468497926434608984468530301468869509013307309336668810595567595540806269084697254483602557085162916148691188057403071140885752319430335748468892361274252586089822876878448965636090470825577566701808882622798865555722556440109678548950951094627415507097191122543730374336147694628760138533677633071772066370181848935145524302591146785041720322956085056263290160991036550902990776078726631220966142913320508891329765879322562400076971560010278077564688342840147391508348350448668833976392365161111620302298700747571932368492403792078627211334568399087419597450821571805339476651424441783486781720466538429601566252885806027941380200920685871997856251181158553327885053181613537622428480738201411630728531154504888070060932942905650160469086542780012523944680876765788273440395159114768539493780441514350559605195084363183124397720587142721063374278421389156400728702538752592182752456097557480003797094043466289207521249345234544160604922027006267504254773383067294412989295195698055125631475669056826182488243762198685153731556573960953763685695896218854603314437262206722058945138307709265255144227252713986685482181130346933108600656088383069098080015898683542918276139897711341846233246820770021839229836115566848621062613722627980933820040339742363191770204888501983336500069896961222908358456533933214600393404522630254217746744831269805511676129127323530568682219561721667343232769654164674133105372547146941183595183656351448169218460434749060793210857151899806405888826800328043064601022007767015130926376617227607088226935863903883585595439541761048000234897784428144841687164009901356982503312216135856136282064144688609117211027701735994512881954325695207863773351230367558681260795864235130325776858682610456529452175251704534426131849105027778376671222485925581631073675001474196131780063955865433025448898974676865092720789282162624910205755603569710899882476044576082178687337700044631607614045689790429977354067847883133062633345047960551986460689510517186443684964721600015326868669884198374208350372947862523740491838499561756165458254445282812683268619688667568562745356943379865018965487916859960189058672166780154484380077463149996060119497294431531041014912507176461102387836290593402911194421072056908896100994946076894513107987582965947791624193485028565086229335775754722240822675028524223438433537277143489852423986024809953988760021331700384121691592793311748423719205604967330060221455128297195441516597783918824086503015659600900145463674112418735884877855332027607491572200953206580921508436274959951366417223141089719436085834955146971630635445036144618289836377772290079627534973037749737472760563364472082198539890843738943328592744936044028899549331680567629609216331498162940350316456299326381142063472824989220586704760670044227890631325448391925581091926066187307466861673983354125531281620446280713707859494776203620344363352931865643091922332670474002950612412620276443838208452119731900046809167479778618456916363060503832137707843028345589322543949723762969960152556682565857658143529752812512256242079165545985159276703140882298757505178708684972555539229703325976550250247329218544047172851143387620738303725054293727427649229469613425955890866171112618696458165118399195682707618299516604449273493505713510712794896805098790804610387329866507029837019523419890881105545707169875691794701799219232441494180343390214977247994262513529560558788748224754085819674015651915579086436619783929360475549610742288074217651839815324274059307972740936600970066754554012968319880540857221710865411340348111925343384197265879301018206619810488450174635086920527667657110242670441421786491610626234845404631796762568925971794597951283548869762920714049822419953100758954252743603273423279805644358546143289281702260021319934511810673514968000469423332950331992256311375307920223541664580142696577125501793506862299200477664184589668459825292814849803982579767682657172234240498032624686839446651982327791479672497369745061952078901450473786703118890405017309647265913972457320784949247884904397639970681253243982125356755964165529845608452200138511363667504497689567533351085931424080084061852842354691518028581522282218006076370922307912191641935081173788706546613958387682723544826419394873695699734807242495431106692266603633675772093369948505050888179976111651456928896920161691564606804720706764664121357537771474110293078988205309510534633983988492072164193456845764083604895656265276883689724778608319354711479079570183914775046802533901140315195580482170301372240940918799902851727110434329059730932516498957590809496620175334160875828444410095181696888156168099355530281998738610899154105320610312861356513033033493644447902774066380468670906179716832774208275899606153107406567895905400919548087702743500288083807677882413820005603182221783825502942726755853453242951914541607216316562269237034233196970993899511480480794935715829875469346842417467818019741868750026246875165018576253011968162940975727226379749408035556564574678443408208662540734819243406670540970445327054924010735697630381311507832644271679612902569632907391274873551745662920826707293122224220775789993342325904507784627024322434578901093363229894922153246104648577893536728576072601323870478020513926651883975458944608247976618972834538532827045349733341622777894953798278124202044577739758569467712542852371432050589308703013393572231311888461732238984293778916168231837885718432365061715698425370600072490979632034806080858948890333202694070785303220576856997865873754777747287221855949347255361602155120033083859529346769198264390034465497505647696200694247551852775992234370997370074626477859806259795995989132740219943524682427055270456785627446096838573668126830992859842920367116381007554893970030139863851630512672052840612565681567257706495933197590935422802403198266871322691898102153178761720865010494516318938061521851955849120657744483141216058013136691966749407055627856135623838571654430898010749465016994989065407927969060075120596561059230624099822153472549939411644048282852290666466588651656091924176995882467459636908914436420386811137261712958922671486014204586419199301084971432550460670611915682630320144435472589916944593841642802464204774504039980952980721287609632175279656999837584994903874576374228746471757081806789096271673469379398423016096195068164500881532610515039375798891205398577287782327274430461395144379989598317763329852477627245210355405807994000720496788628100434457040060634241943577111444747854318078418409913957652556743113673756198179716020155789074782342496285071214063429011331479538162208224201825418703803883493546356980962442166386976491209437395945825721746744321098928434435057110299142871639986876812598689145580799006043623686548653917931462621778806270099742201379488237278557262238839508064086577414854377866197442981235159888604745743019019300745339305144623924952238971669474095501571850103250789338783664206321803138245348103091477552006860840600559411950911370336605947108532568031849303727024575269197996990981650777955951161365645386439530806408368418017769244396192204678486110057591004797841279118940495948232833256853377021782003503747807571438568788829011100996033610247473832661492418668505803724138707319594947584441206800870506130534960842736037945627959649766210478077966614841939578517718491211036489695777711768192443307940292095833104821821774853076955238433268545935692902304198971484357602166697372534450308360421818377779319333764138501981628328781589854689843352114033434627598364910052170403348474399636013934512042843605880541580137041749727645583098896248654118041680772843415753983605243791840442460167367601077298650941634546383255921848953651913506314845557925447863796951719741744082897999778353672545535365571945869866038183418738909078902646888591376152622597188030650494287811372654513248094188525480623535644739405216897782165142494086268402746098095646878532960023456470833845481426401201313074635253856190972771013672702195589441650914266695463247655241114807830996512474796428464232794910694843342989583679339418241077808595038313038703123525646966530800374297875895209402793230540853608200444809648405178178212247850865983427338515609688269269948234648385923787323487950103986835518254269483459708170327637443930382484747046549859605930019284416642981906084343599717314100005042697293515600411117560569368623775836381370010586119818639670621814246334084145033598471614448688717362705728134707186626404020492037550220049497822844355890284372418070807154354744719818840450784819463548700144982481650847443341735236334882170894988670773109135037652609803626409248250448799352102884611644842224273494991187460149534854132951745841739755025426839218076233425876389759491798596494197087746057288140986430933493336095466130793384074269822396226300963483192322280100703994544904065393849379644360369515237208533251113828442327111301142199052796798389436151190605432889600596952204461006936952097927959860416716480975006274101738148878381397835934289887534561510285189943952627325352170072306313602934313505373325152587301182747014251973960727903514502208298472044339505904503980772896957658960098908355797387976025841090185911926408775637802905358573766437103909099182530128332027031104631852529502170426318643604434799175207498676114055151743508068048778369133683384644551313478189946869890931274757546377870900097922201388870006035938025681428805616702584762505031647927982958177028409087885298979489756808376402732292901145889650447278921251356438292575147114358530425138290064890836374282080840860494829800364121796994774336154750807506595940687993197685261283647175764744463585297059281829541637772387861073774057417686904695649934905402448922548280734901968550599688898372109656534688387635528440965028268287081716000193594016764045194999086472544135985139680039365014185698156952011672517613567374629759331203229457184715474077186518281108772129280983613239263408536331338045242097605885594623921678378674954350088876441470066763872975084192943105867155216218008645753334846219009781459710617268812133996384588613855086614418096245676596010882356507215978921458275229501647142540994622591805700760534460749837125234554861197730439694224634173212918075208680633459202686240262187284347539484870428147990389522457008863219739265272298898194048901598543542174372141335930296677655662438368149349423596160350676038625173647466277299719527007571799263956886109395519913648912103240698391413950072331182857601220298273101212138963166233260897244046768795875940526326051523858449607540725242638969605947066454250944245071351910784292625970163915120183893659973678846010500499354755877256550335183203504041835172103004120185604949004224581516812776750345716583328135359166460561110947643996694174746000058196391769429698677772299132831755712588991325793817806968116399907042415142502598859992619862709453834908883399779587797469518383252825968504035784078597879175562571640776070285220758028978523918917785368596109283994833782404063661425859235637875629159244752650855839631347202766614364388038953295533176316310909269457206847289302523510319437316542969747992383110969466913718247918390704564461502549856159848749834389110760612617067555761418011138476017578644909346174524515034202312081314920572883930714259727232996506019405496125437901742808087522977975797209849755157988853875829707245365472447496400333691643423109478850687436978520047276250884561550707513936220686025758830807122795819347030317732763438508982795163423731543944059220098690251676367006324767519484081871099606264011554072425195066967820778058084655817365379832488534777563066218343629666915373924008570613690101001943910778922397957032847966614264715958377620709877873461589876979666653048429176183274679423233852707688676178435863439389082750852280033975813132330205650631707855093560502294118749573452676690186300779585460158763502281415554129427023867872286297769389313287384529488213943416440764180642274730647039072255372679174306569302280769503978759360245107317488376117288046970169030174590718108217888604023377109069935882881693985583383097423740672421796111155039530473411772618994656290970661835955958634695095689750276454797712130887343012050896114198453834579279018017714590858297585611678113539090316973630358576227089539838683767163420721043719323761833159196263880133484380536774714697998900550548665252672994624745931904132796353539956429115745790507177281897476295223808000573830812768956929583395404066660972774563040197642769111417434371704026866854234156538695551043075070405788019053672780316524264770203116800653515246355653987036564581508789880722469302841939187151272016060528554794491775346511756660033007776467673930038250645885461293085428369167425897322564871046062341257466816589025820335307177812824397864512863974698851641868365232326993717343078244512950807951154209898586459804911454600298305419262604231446091635284119977496732149390532592002454197968108295191037118593386110186572982541610867316457510295826024153398212378698367062293040212576451859198174934711227588579929034902946151290138322110788061804719639658229422996820551475473485737778909942568384598235657977145754018159341542040828424809101925343057354195960072388920186733369215147080556934340830019816425417215885375928277513703620518916859467677317884003545637243784924339275990119479583700829253577315444870750415278211098834218178159224772603538803213986537290529534607809197563588199668544818085070319593953800270276885588431761696478786159669733164939722451595128227420994033803859486247923256947150881284815608845265748632283235467290854085029827677287940139249264720700443865786066401162280568293510748301958142069007488730910029657095029027887858144917071927282027185607330844030280313950169168754983124326228483684379751705640567800385766819019613404996978501298551841794878790036748340952012686168437936803488650544055523801177137061949970077215102475673955895914009979487727641416003825036370183401210837236555379592686928503519844330846790428861399283698268628635182153907115758913463890950999043929819864640203511501216744299330270713090679557265857785990633588418953219557287313321283397569613364813389912181098398466474087182429767422855986265846260822022931931927306698337440812784077336400004696683550381251473140367044548899400703121853674177730718481297007261055660751753654573767522828013420727283287091048452296899359297042842574824375723790410400624064020038429857017889074223565942403539558386114514051912199448092619485434724432484705143197274263680560279105826493812078036165256878910836985894804761116984405587720579324520250004229470024322468351147731816827989987002261348384768178649910457921639101461710483316146307163656275643338586742729413721001196178802798088125274343973631913865998231983685388413292365526349221332655890508025455385718848354802370576000270460707412198573163800334363932550077379550254843656431423606781915638783733097866816258320416015394377883584286707342414968927416005361580839826509354019089399548846431100615230076289555708413903092814799132102427132407371031792280305556340638933219412939976444672699721085715706874783960002871471857701273343137306081901093113471866829539304279473120154146355281164128246826038091596142169752160066989697125900034326294635980794420138696812442450686386015255080570114480301356935560123234827633673743154037544900056632948562534740967621235864965573958588655327109601372959977671739917292872052426546223831641371026426029285848322389471913988707294385309614798405605304566430780317041290660946992285415685245917561321349957107109967427410185077916511965969659697733171920492232525156699423809706189265978775520252783982648676548968502090247061178580277241134219417722791379562011910388724305386464314335238393621398987598996785119550703088269536994149394305196652742656830785177062149163710314263266536624620568565218022284026871030809747993129507986507398597574056458369191345263616711356279432199897177379721092840890075426716350802458513112392938912550147597522299552120964851049719261141465239984073504863409277257744150395505302220251748278978595801925281399758827444720259935146365995814563863860286988069819876629124399988538599221145738845579496911296668741079368098886865829742115062593286310271510908961594820985774072601412314802801178053941926221588154153209971928987810197198785298433463052800598399748415616452590461737862316795012641437842319418820918861374385804057573903927054867078417864485866098810178298696916540321114236543397591135877624775639463225707268873051640091314510020531461533948985643407023284955406303086036193870100845367007011756345163370800812557060181760358066584212013469950288761242950203985619457061993870233828744127946892596855878275061138132526463141660927851381970734702122285136085158162131169940755516735493825056099923899908788660743532562739116791268658386692158170053053095164083291142786141355927155274864168980645120699150026458104698241144071177682915403759820344580891522857344633442173090136866602647940178040759367831967916897575805228841975398675297100951312326323917345596226664222698016243962451616808914662789087824557646445421037687163978563869660760640546216668583397885049246976266221518134891491525749508428536472626190939781956375026069273271092708726199002570699294370150904715831508963288712093593373075901400054371872555631592876058763492385299606380601605074204541233942834918271258023022623704613372622436256604927235483689179292065630992143918409504719491133520907741650228839435018341205696981902734739059231651823058469017752896360399301320798388696329745432943261149927365243743560442389712391388196508650377186980255147476460493224779236365566257886538820824124649923928775367662762250531174989313666343813882751829812305380851514044616947702651059705314645129780202805994693333854393905572840831158004786818235748710856258607968033700242815037987371787636764100342180405880724054028247565453984891699915514828561584820922717135774906225477845492577559539998428894464196207458763707893514033939835388710603004750525867933245401471121786536277711782603825160066555444622573654543537085370540435764949547242701827164160748535366689832905974048349417971989526018011701199663688190563932486993073773820951844413133643169188501425983832877292638261349493883490446961080830289741303131966361322712926458608655380595458274674565142000906867785661148008670135539612701374212832999595267755953701948102111083316097380894344681079886310297474566886166731460012498587727338165430425601658397829289320334893385683380530102822935614763059670715701352480594537710831869214931856441022829041127729952729658586031146262506606196700674411613463073349480234983952169383517061326390143836905940556611597274805458190992993767550810427276088253892235885951993693142953869873274874740038392885625788300487385505154664547689860311245565198840744406023120693902428931400404168038137489630937539819862025976923667750759833066785061331380490387602540163569129208961432925871673992669287035217819170351472042960040517301124884871172696537718482600388579720415156800281695661397504077413058187410062978117386370106555685653465254226088642673479900520690802258467879298393775571073598252141860242060643634883459276550170827426745245064101319394512877171614894980126885888783527840611140588247031951704146115575151950972150684984851129464847574171179450907273949300785677166577213210955412535075653365729862329404019392228457227787633702923526074356757045073755415489361698788190971734938855118883619043161986460341054044892779416811448446958730324524468876650724926767636702770988979207717564352342674947145145532740891328759176068851563021930501757157214862609792271000332353473509872490530241374160369983878713342577619395200444870134113170462776032786893162898898786573403413856093851364009136986057061821314455267570976190250751194476665806893857475052517742222295185825071271887929179772022704403423568865590293536041988637622291715770274852051846474280814079402629577860190645653685928310871930823824031763032846616182737447552072309827802233726111156141168423055097574980493470714950125646389067217926537966939234235106917024689588974703486469611581695186942474232241102330843047799621346547977169617708085824249776583119053175351739283886663857918956835155865620520575066540915833114446358613385619972856909908906575142378527321331309723100129231497371366350847732489414857987101500598418690789218963761597720160114300155337480921157046091577286585607668573592508505611065207744359687888521309266042987799525242559878998101471214951188201461655001381192746803230153395325528353132282312434173488605467576739220132201192738666118975436091309952276039014486200931372854660095323705780735535114761904785315470756917233356260811920002478631690384818524210056559241101893278067935281856501660404803417731354688621419159386756038859166877730735834429494984309049751168808766767261546755135109581789819349196758354583203673358971142692354056467541354694610615273170545104096354773673203887752831103499030791790109090487047986148254484927107353966213094714248194596754939988660671847879618196177465868420782783046637791487612349270616810825311619372396016709612986763732130449900668385592482483123601806576167452939953101426924728369266780978007928372845985122091840792693052771798856282227448326698764977193035658390521229571916332354800087865099352303590156294889096565285146241477965950135649986361728658242247030528343478071006500082779915268150125742496888821632997009146331487552727676150193086529565334964417244217685259528899537572677438513732801092120050442616188515550421501280544880849041803908503220581802702925300435993590485629604707842852922702429657387909536174212138401885197039668992304781592131677143297783356104684890332108026628885613522395049494351327972908510967567725579448043978950902487317690664226756762989952654357034048421712778479472166545788766860441824717977381860348125222767677404270568117471898167840210277602459686824755900871260514051256862902458507944586207868595973370342146446904405235165057168780234392267187914450281133747654675104338910662325957380418236398962115927780206114356363140850196568724927380219720878490816844369967910242841646574412541818886153194904707991671591619281863515283248602295120655893563251996157849929425818375781937684711018346908266293568111726835041485501802616839899799928616493523110978548038427154572341036696003394930798430925160189640070546693856983410371577618499281417388999817549126443114157434820548540326791912750702497960306701449138406592522237841318972066550754346380852551662871417773764210007423088521232549094012601487249065355256236634728663703030322779010957014050857592910459158534269675284584805053615593959451037354335308522175548693071581515791536271444345016413407482459527487493594624708701509225196306991054411396995013077495548835289242223139141876956635959895156646153409868990994122888441130925704075505854483867617215390601047850565788279193031057018026605805348089137850271698684511701553980697170371184944120290929686442250783970458850840816911151896801707108918362591561126413784291881842480704532554658930104783260745163688394645266074944129862220306204111697716715334995056366242917433943590358235570102691312805611537746654385295593273076417686942897201775095367074354630646802854227099270334786950350075521326164876895078169903202722678073584691078766829375877215328797109437428238035857999899005342358999349790199836477901139848144076215601460283213771003624346201333239807655822307409149557256540216928699590948793746952456971601195752554647683334802003802331772410706631822425586264722287968811099992949444721657530891552803983007084498763336958932077771185919930832715067168569570080213422191452414637172531880777389099732160308574785004321238639896810142309642385708204218327244852181716213266306026682950650677218052021293043545463938392524882498210937739043400067892394173601529110057742690214480509374042215979338493821989828209930504702479978781597399290116795395606015439423589240261368145180606623962200211079389473752157854031903613703085578961662494964244644014060765873361431143513540505870997699053382040729084583007849724923010410243764236822433188308732101643502028065513532325064179370992969010871856920256052528620970816782505112158380076662322551041958672880432897005290823683767474284450526356118606955596561528713583097935083122457342567208682823966646346544548318839137634608545961316270330324721020692199040318957111263253940352740163873576061996737486536906579936393835530594947413683990869116889140974195998454160702609612800888025941408354839158459484750935370623900665800969352716350729520300656950170777395899921264458115699320984213503863845795589888469847259105628461315431970102665222109842043001916073866506828627209387632421800576803166264052836400893732086531941392223428548056659586904500266677983707189422755522499844804618574368176113971966921927012811274414903200437183828711888259463478463357008609186875686424911472082837432407524984522511920767434952972059108378657701154546303943356067038368416784115784421754827813597333870712795359790540890980842859148017043099892228482368923937188340130294322778902730022412573377205048578637740448858681605037031032741056325655580931894414147668339046928207196454030819814617555381270733699577856672882835812453973667136660516653014347380625076038884286659134632408954993067499760745500583479479489585896617770698981911680460766976109852078510085841041897792245227330368529305030704479541177860277548888464889670294604228925301439577919468107772936875596634169563441463870482426682150575075177596242938357921519163905073552850904581286179497163163612410912174787171730057570464598877146223052996044959322902866327644313552807789407579807456950082039426358347636505807644724070477052042228487254780786865770505963978055485992620063302227336471508595342251780277507771554549210295707209227272507284836055109276496109924966207771324792766907384894740728940119090789602073871091871496847455992496288970444845244107394732011215117606915616297819069812361501344468969968005003083135559210252298019544127549538913281703815678930009429805349516491484985460720291946485374645650609262120696633411592095504392972604623602490654450447669653906573519106317977896464498759763777945419670933807760706424305523661668121943009890403971717041429107709869484112934028403711603678349794960026552715845300988284598216271992054267607041461444346386539009071852291501333907402802143895155999996233380604364321314081980090709851871751333605595183713265089044677171923480550460275816911955357553665049587296675292885853635991232045083107200895294875625225563700636078473626057263110386269787011050623138186544600115010294776251451024814802976931256889029531006507914553688461701322466554388827121299665525501113037005842734889502927748782358878146567347145825158775000781420476056153839592041587391074388394164657014594253947114157188147576646546228935906443070081250050501433435496089786064190625415559074851961204138542629305314252325210573716255498532887945133955867106410054575204041917290895819089806988247886533292984812079156204721984587034678879505704974850622629452053238914039537333994299827646448610004203552411605180065605235506897125798879841228582202988915586006751811252039288436181685771841032364700517936473059956974782282531143394329104206713437235976749042737167573306483826859823483147615838790171480080678064249496480407756608008492889179434571888284476615282787482954196918879252036277671120086819168971758769570335067260228741257222830099825818226996536697625913244330464171703716631270064631775494205187149983688573522177159465903977600409943933455288172591530421869368931434633399756555563597247911557852361025831799069503973475322746983547467071782344610249655564047062281953295601057917568265098920601292216759396455622012630776692030691511107096783295001524696264858611584035981809865972944209612470387519027200320424960528569700522509505875109829062133467918069385550643816153125966612113863839963542340109398939676789342065891295095919115134711155785816396504304255127950807117641618299122977939229657505541054314568351451356283786239850189411123359050108864215896675724449860659037901923789486887785140733765430518531880301542715165535054371469141268914820732832698153526900495402486900257855324263833078262385883568127887330391753378278461797910880238300628020359922025109583292257167645166285662311071312469428213862225397354991666810181852906491887971210155083159902437034204606141994854635420524850332591192033932600159254760726339208657575893483701530832938849381463222117417649923559620980905321716666972184167631101811384153412362687294202553298359963194032674059453668188034285066181527227244236470586123294728801007466909965424475082071699274293458946364889028237262462397503916482008164006949360623934016652367990066949191033798846014045554553078785289185396885424509520481297710879669180556984523242715140410677724349174840843702619808110933393840373227657937792593503709896042762799841729713163826884733931588450762372586437048571612939130474068585475400636359436501997675436172840407824030444631191150838281882326892714675066200336305345461299186898549402486347036589185940702781491535783043826458694829937166195781272421685621485982174874885044886928844137798692401130062740214434282781430721504647461819529926493512443876664959242146323961004467330656220334109402740148946425303910921981360531845618405728709255071583416373157834565153708882148917701790937454229329146861549700701985269732744412842785933426952277212781465215872599359983712466595280779255929878914828976714495404258868732112365169315243513419534867933232131046737602562417394145498515755645224960428321884926788627051567907292636434841430191504772948775146140962956787757438680231585606830738491714188672295661258458544128868145499689725611742234269861723699768433558424539123208539722728780164193482823289282135327143013606377899190657353060366209217609935868711064996013553532566864814730842790018709562650785308058227467252437741084598598515322449502285310304559233788013317431950958544316551289286592060202396121343110870081263657020446074466306313133669241782796260036249802632864011715882038754147617784305469031974173800945460917802522360132383351291624160842903681723632013917237919488772270057103172170100037909843194616650135428400822069667157311778242830242880341207842397465157381264486926311926405215463425347376064923716803045284618474856354591521535080297930360751725704765581777281225270497937963744099191639860435351395591990850276159936609482539916169170859385538860701813590986981661873756900120473903319543535391613071090727335365422449658038556651405488040148005325980660573795765179072746237770950516184821569814787979409669786193151527063502084609977083614988459693355577965223409413942880417743855684274711875336981860200702350333815381303407186842125068692736566830431743923851870846075476275328412060850979370778184916661876539252011166802089790312884668746302645859844727092431296581384759971861363556917885414382845093494402316872435350646397553275931431842744967087742101774001078511595415842509967283119785618639696077080700987535024727010266046620321352962704697267786057882129200511331837669972846652514142172104007943234745393654516617304844711286203870629711292310755075513323446359732509158548576809489241070497279187497498501424195338178372880357794780122193307054219940583009979680341142205193290632476815088347510617140616190395980268181520888479044391186068303027813543778781805715764470010744646053657945382086227580032007216608390670882398487945424338605426996339035829160925626835047196500725004278298324588828484164368595021923738343678370064968849330682752026547111401010654819511749534895132135665318869499680685274790757839683378964447084097519293712258279289418935725357444055369654173166255974476195907503954070262577012607719802314213563486219610269811097521867060008469084274865628205246151085610204734610805755773653038719147976907749907824117569370956326010264222810502859283950310179637660750239486983457791650476035994716095200013286374295047741471015263883233489662046783046229339611676588604738386398090657034745694397183947931438214647510659453402804180138186258145132711340129600742900509389777934227233604294369848835901863058232785341513268332100460589550903567994654518422039173865523639507760802984935703465903430254659232867138879211922024848646126134907914616660453309243480064488838220289600020352557802875309563180793076996188910911008636684996152601229994360824324362994010534107984501538779264445361637592472312011546072568478932909205475752917067609119493126228222912993769154826714624539629001922671949815192759940902132379110380928214706154212621976932955762219590103068684712416388695990105151091872488349341617253436670689743490801988994582631240734655009381883331711664537218199187967312803701979721647251165614929535788582105608850772688092908644760697892218187365922931846975840367449326868140837719145893005609534993884567406475380837968152853989907030222858984285506389900751018351456498321762710520556356889545222595831441949849027111421850953550257390511850783137932880958281601956297236374114662684075780087868007777955262677838239704810542499971866607633346733027217667980879224028767293748170560346939277951601503346241762765679076260278707083887849918077089336736497513646530933475552446723237858344036136603609602579629601888356385789057330705809850921048029652310294884453026327705790113296867007020665666275285732099421660750410116908299309769380559064536554253916097144203789592224572322407719378681084399898899265191608042646825946748848488382642512625827457892719982387238840265129642731339584476324517505116324406626256570199052739130307464349354758258177309180340451416758893179650417399895353977127526510540453507822649270125955950247299721869289426069949502755896564106103872171396610830981627544807697258582790981615340262811375367258526762309598791404989970032788796861512352411433516346236767905861763341593743434933094711362126338783145327873093868511517135627999682234797011833261788432495350721449323683346775039650553642706550840919956891207632183828244464169738271677793733514299826820578517020537847852679219380717497617426989275524243326560896321895703532228395320955695380665067948316307688809921185192246460661720651626496454264877257483656569735385511732194971598104567891485656323327577230074280092235316319393838792024649678433085901382207599279528830120207347975148408402310308136103005570356042960506070589644220557667000559886565225685732591276665970470973765849146607465648869904246513053651979450254833628838061144759060371715028728691943882111548945042105213703074827790048340577310772772946647497919432564089469882399116938266021964667303188889864864415418289534601073761195350598052945938613515491122839803961477684077394089239300316134431045775150582744279538724047902485996500603012313861572240052234513923017520875620645750227623312944275772273958956674325485887768173269922827534227121923152292314275684843661938811991353555715239248513909240657536850912952457507670985049046769220375129674682568546986228186294294279969017062630152287450557541943929986736375754556378407348095682880671800274063599950938657949794820455346059789022938512963365134093767113807199045211961271425075178747601564312011609141559484323107210373320230695462276727057482907065379619018420730566237476303733355214745574106139528415781231652785367610705006394340227373276749780103898343929561865507870879923187079350433079011040811463731947299259722324662777363767580694378985800265313062720471663618602709201950881329637987952472186206242075103519375196311344014499556994057123112637240347125821866990726600110910806542340616020673373726498903292359741074206397521034428309903846880773818360277868577871108775089275980286028239725143481093975874271023583139417278075280016628194204273768200099383680678308837164486095560449631613103091468515510826266278621853160093396485960621107825804032802377933201793078164896983916791094076001211153644711533754971525924412832939067764331709352762626287836674304359359125768897602278510024165080393117850274111988322447718569745652647287745867279474067441379862257302357732974528266480052760074040068174625395644695267471248247913604536848167127974960642137468386504555736117408782963337022791667910944474575720135751478464204345512525638864106869305685172224913492951565960837079326148682829617069801611194299144354518170976323795952723619963683847451550097820411481950171686173557913132423231973143617869968772264024665624541243945235227966039522595173707610014133940996458556497858388600488701906012816050966141550564699040580271184089678304146861002601422771423431808229486130149838458666498316271569152998946630101569282504932201499016763189898225381610475366091813693585843239901636429446464515473285803190217216470313085192635859182725541303157506773290595131617029878794830574366217718030488525321538886974385047664264667922890501160778253738993830085318489657781156395124267367252539123156855643670865400675991245218871947142917155931513549668377941608179135937640351795206088332524200410857155433741573194074567430456664387771406823476686996882644178437083603025047028018991150387581890823676984605982466714748424667618617044554653917731770050778996169117703776475338215932719146510603357721384341267313268528633874084990741821327884563052342746998883822595120992913049326017579172208531350477952117634207527011209235352104536215272633916867973031525793103714553867576282291264818797500022357917478310654035006221007118279058345213464168869818503767491560537383190325436059586659613050890534163000931633892589694804498162855899152359542794496444423497587064245031066061063465236187003463478310519537254582353635882664611411176735975086906935104230766394302189692729378518292014759473219170772347472977730421368267897681094075789552839315519850272590074685819425322893232094506552728313322923846589845283099885229104985701863555104091510602452631417436641011788396633851222617466977999869057710997709708583224834754428171828799031096110287517080344795945410570939292683910436058721302405336039358287058367662298493237622876941936563297775448295338368064530609657236734037875078803376737459348106558377404322203149715044987028253562995447031815570175901356016422243434967639188276899021544214077840550813831339549381941706472640843016855121571157881226063948753705175232906759962736148199966151492069205055605887821023181396123025053351260858147966524833721947474905640702167036485045051760134904608922011992009790560551027897477194885795967319263866802759608888748764374631338076448763685323273597109571148474781235645550563142008675400962562220239990398749528253554767889341840055857911145458577202952440920394051367687091050294967699695094653522322411651872247382587464170040707119463721360323212530980508153402837734086370276091841345468316728267084823623327939230593840552812713442221604208240013627072132273077226182169879597989499787176907474055276208483793906880759904284446009340103889665469925050765738525381436862114351859634249686870977994825805613879674115266156791247471125066302177318859534444040902086557199506746280000539247544440358562091231767775544329087148824718401744697059680502097144502598507334090821521265965605513975590963804988494095132895226230800911168399900550024988855639786253072663557793126538550083334997134210560762602473190807092377917531388408819104333800678155407104925592930716116327895001459526001604862518841250423578927610497157015538500259781431666005445575932197747399276519866871732023239440579573643006134303172485114262355252744863608108955303893698052043533030734907130071468667684552310584552138614766281244437636451964782916013788019356374967606397440471703378915952989415980319827125929757367776042895118645724285491185399168165937809840443648157128933277709041789082576121136120404803276105609221387599793106605427175283334459464268645976116587460856473319773554401244860792069023358679663684558931506833876015773175229696719067205215372097401665794183026740479831004438385845966486841620118068358875014827576834514401183245349850201307864065287167096780061235048392549275198563181189686188726698562366462714568484573958083844120908602378975156167777307118866863849043665560723318879631758129497536104959726756360093639186073586470633960876053286959637328830530449123957211083358222033907462255911388526588048404277322495618172027748280969232310710404947709544051612790867669679992853267241167840588020785184232079514760123254343528554839814414195990845172673159212045512992340568997554667715159698426445771006490984572816580795270075481324026289870167635070763239900184713971607272635134773963486143689864921769644539144803836958676725401322038023573514977501522214248423829240688179286270201246246087866499591099350827157524046138887362131586584154642276375074306998877286187159368119797479381254025150000835653813385413125962275480313008124283424240551845202316684379471950151066226108034209431088339748928887649482223362997879779676578582605849933958177639548410379405132998509274167088540075398623784285904434341170607496758560958075740586493813692679832868418563767070297939871848371787582751980727593209307374508756441110085874387872014868939853264962787646227477728558661677723596050016829225419171819953177583250418552681484845471093993322899523382744965711181603447074390345320833956922000597494195667053043230795466670383461174640893344013462297869743006395587016178490684268125049309856033087044610580966673854802075891524642416074521285831452763548926310484734910749004510846508756292929502911215690205648340551946915101158998326880546504098409511109351276910886773083323123174472315246678853797827620877534983020881953068264048683642970236006424947950225029814293234389531691460789087382988846201877728497500392008988313237106735561026865563965422123156646824569398114583219467643757209959453987741555601528606179969782140647945694477643374282983055008436421142073641166983475606141648552347138558437206247018176635228245166756218972320816961536126398830437628109168726979810884139454181388744828228764317377207658699988985127824821692834352354319223114297515039510067796208324277919542140726817800878126565067151487182014478629208897002515011914901797041041770416555919853933638911770987371964793987516348363944268527324216728624505184685650343682938183700068843321184030342587399318750413498542030967440235600791964428007964258289166192719351252101846675064165397836317501861814620154840820905855033656071748799912374433126565584914630377883825241477828121861991319662034404509492915676850759612959471713186423926267031975631965546121731778601384430596631905332451518981457778247080002335527538573078337547119917324695016641164401887410310432772830353146159263940877179100074327654858949106625375851787007618918897526706496983846003929750134848280554897351073053557325472903772574134789241189997092886934669917562759741627913211095825309020862417175503737559671525979744734466488307579022161856936373352381325179117943443454081024687043272793023915167307054384323932913733997236078530945173916749953218422234541541128399135873228625279891577128495753396373869829745014161624160379607002571900446498256456961629534303522866893804306400272314463665607243785136160227213370876910425684684301762939178567080481526229397472641310818509875503393915332363620580638348780763869742939130878414461356478682149573361289979876556913489626909816050348991605564913074281183531901302839117209656329450457035540473333734399910401041521831569588311933099663152746745208785232168211146517055287614151933990128269961711132147504863414243608349818686061358308444090447614775973295618254169929219454721839085353284887543472297531617610297133615191307164397479945710417720286759782326581581317395457855768665066524553577886640587126232526316835854909282098616806800860392960268075211686872088354820450258879255350401695273906766226718281444138362667517133200684568025445050747956727029059417233123645180565380116841796103376726770753340015553703066345532793043573778861753220528986579283230660035352419524777363130053479183190837415050186692053810556689429696657211982526683651244803776717009197165186226116226712480477521925530390106761758598571053925298981952024773437157973837830570872999493912895954634463081338642975690011988138785789390323651312929261376194166165034663890051187586189792810262239204934172819482411846756550820036580296172693579789288754551963072974689183340545463423197218870574800494825671240633383005702734138054882840372277029539299319275108031842703374788837122863783392080375157861344840872993849199188296409198165765800083776439722143628349613123476317273075249462687654222763282988091758559576172897245712186675603943000087883388107918337641023042671585549491871166358538126255180886692555010066176738812103779476191854330639864525467945776053709010002399931133347873132487521768775668158451485436103187729314070066912153892632735359314967461615807419964080720568554028985177273817312868830722180582390178372951030599876375405592514684907711221034342769491918907016353968104344637367772503734359930857472702142246223748291065481262864644824051318211862781279131437674074835331472936976969023170473497787481147514249691400029893204879023650664240919069487522631177006784430962462131497899034580976733489777450701985667941291050627567583099842978233453552553607253724494881033626991587910779676149364913791069486966764644611601469585872018944467245628302844785981601262202216426826863403929396723768054221239517457506803563441049803298624575702837772149180063034830892997152786294235706150702547271652127397137458254979163853948127403197631568777261093225184585315778477169852250743769922327975151026353330427424804541349405146203104241460812040431387666049176021934635103354143299854508387683581248983713662059157766291866345003826870823082431115983067201598347473906410047311487030560019233155406740670450232480820890853634961168681308678035035096723327561043897493023726647172678408588389353741082493838278222025049286791709929022153227950836731275746048372588219845793350960063556303153265456106166736536497046496490648170841576953685109140471735797264697473660778789433655058658629782516648618762275448150167096524144991565104858377681162828727534314448551064218832086576512521965308993333236775896909151190049689852360000988946940975757460483611563007388057480139119731889786134439265667476527630879391244697258892742110845978364979237075768849613512222040424003880000059339126936772914302378559305631656241979092985716854803334430438228434168509549014456905214233623062974365826265594528266434430312002968334273621099293767557841325970508767596339629079930583633038018367546056438137340286861091181100452554633518517002322638881634070703799430297346757563584533761758034469457439667384305321413505458884405216364532190384207018401938335360963775304571657158683937353118657334305985249952884037998772530002536424505409904988865186625215030487134562750486780527816070906889976186362181723840726633864205425595005385148637784818750075588098763261471571673889980626584363292214784209603807867091199179328388413401680136641193172742690645059852964330821962330011383049769796244204569882927668817386979127888162812945474721659207667166712143352684123968289060946815964111309420856685797198547101974978705527979084959888979226707826999893533830506939700832994296874859654772755977553389361218581214760476154940076994772546369584369000938982084216075879474495241343102983913414620651808558004616721945203473222368411996997164842187720944830891844373219707656408586852600138285505023318752076188910727918512127102215547577328104527005711451753825604035155455685438990493432743956372995752075814184855894758681216487450034639069731400869719378776038004055746627942334711214371456128287520932271289703558221459426929728613029529580015274671010750843690914567501092352919443224886396298125711344762717683406710287772808314450784813920345401769960627146842851680291204674057276331619443896190540527958031698597044960450685583038179712948456386526137553325374635937395277256193369210092501122057009409070029186881628757515396877957890604158503062201699039030058031943109094721595229839049566823348576865840201293677055074623572496799572024168325325027375530604539165151568582075376881311487790957017509034173830335500969201091960403194591000443782574391508950866578069537402959063345577513379601891980101066038737865351900215683620830776734285092852458859975628479988270016797893559879979267995698335367208316232574984355821164773545477038256208994874625873717432468566808565678030719055240822450866548089823444204667932547024562634870925428438558101841453274532598843885180306085952083936159558097867774286418833973265151399217060428836014021584999440271526533074478422493178895912603061030602199956009797016840247540352890839557605727464970363197536373343368045311140129262448799105919246595410444464562236520572972986190290338168098410389618989620992471026923246396963021974268783950711918187245102015835600097161615195633408597771546195895909444427272864213715044363649746240286092102844315080280754034664896148754624383958661990039479613391681581515823354450198539630916200255195990784811324201747829461694028642335609021002931784191868904679191815846303048506288370342423174463483924797137949084492705093923396637247023024997773646808585365261851662806826543964392185797475460562971367522771549914045348787071020232417837077586026177244525037117344951586023463540584871705028346504531062812916668885114684778748520885534783714781091680286869405395971469356842936378019589473347732970378633815385659617020044971496296186159149518667010297268683271816073642314238588558442371483056257556918786966506508566357257913002638175147406272300890151768261803699864644913396951919195308063023271569774952615431268916522345343791631360458072815471711617165693843510342170170829531423490117063837679616175696819433913825500250425214607604794134033064622938941198858642779383625320687578087321577397134011311165551261569215798715201007107852587197536360990386935584945725812233223292868349501997015167915443773906289691933521326996672369176429735743086438620993170591993403495580227309431716822282989360098897283850285908878226026101234018793902718739828819299482767949578347159929768403416494626985598458753021436006619592343416476575141335471433035830094956229342244153028932020662772367534716337251166643187377072291464919900162645950155754531635189807014305024605442600323357482460826607269251180279442026328389427851977385841593238164513334038467697625147256872893112765241569085589719409251345801701004362576346456682052021609407919252705315423734676019077632267534224710789100666371027097301744650173349924630831773025695340162876213308628523161372990516895582609984164338552457624546818791172838233471435380813418906263367711606955500357588843481799815662580813185056061299040476613497324671879126070316613705961765938071939222924126170171485550629897618702159009417800451350595564701207317427419751601170995849384713062222189828354831267867092540946326827032255192710118572189120093349885367491678968691647858739287245587420683126002665309922492583953870900700593045982587089199851349307853025188845837205695763012293235828820816964492400698918116139394460752636125146240789089402674443779810362656794709781578818163190571069684830165963169863174975398862311529625475605693132600235182093286362037624534203360900933996631754833327643821486073258847933719611185281352309188291615689181329800301177026860268827237934301447807943998378936576009420028036740601143617137220742267199960685765368866328067829709805145097363068242593788599211810688123549415312335906907802817682926011452293378690978297082571044946015272763101660519383147857865236887548888524802226830921151169839480427094094357944777811116897506024793573031782779233863602672786389527253926396721559726313434842430025961893697538077389616371113280177816809646594052893583141272009023924238573468291017792694130771597221115873867286509291259771889836592762102643144809651888486114199968514190247376007170831599259246970529578707866445217355678312706171812457897573624730361788989614041269815190906056090531448363582369562115798320248501455695485880150713914873624781364998776007962507362271419733021736837170514843382614436005992041329378558223343722308739504580017161635741069092015733733537449570875498445931651112696698311655821573760512387588999410828930530903406903933661548974027384583549844505574985536793133647988306526997776538813650208482804011281398954670699167854554929602404932919145294363719096180780713589457063342823998392248176306375735760438541994796922995419620281755620752672088843363569851520695447054657047456434200571676545299863877888159638165245287485534054328979147851817988272876669077246479053253792502194386394514404820438419008412201581234583330680436299944134764292471850027281751771688322993895404797354127841528690252178433659131114997794964926361905539121043686709352409728070956308131907216434757437115144044533969014470187270751451609858238336531098155582818235428711120444268804640082396352267929387005466593762622918682338452573084815513589092385525632421176121619269974011567306322435366388208509141932880290577172118165718217051021109774113038999993767609201496701401925229778038683194985917331986847412529341815707080633309279419356577518021610045083231790937647333111638794518517750734263928462502528102137684903407226736084193407831231522517027492967083393943828332294253968012990478407724199031120507723620294558036521399135767576902539258160809025759740282225956893252019876462218101256429042381976715535120671170602847389113150461426968611811229325193478421729761508375703761669573960757044767597771129918355225384789932109894018532718736253962281238450706473054550797226201480149575468600153379500107920765776374086459218398959463888733584651267861226260867015955230877554319521856685626628875086414730268705782837011042366151545633157089513518157956239267739096541415620799091607131184094994992947144638066200451622075050634736244628908430516885433593950701995668091476447548563369215613395041110369939844679188590260309705186732957845499105261237361523889474955540704290380057569838226434335020809229347800960103787698039320294150755358295102891174895769374443323763123791962371810456410773273805216268519157016317762885923848775471841645900774801020790608969487628011475784649257021734934479361813918785107263479044636503021779375799474599943023461661601748089788569109462437293815339798798673318549918182728728357309217320991257291387122324932423579082810748701250010278288683341704369812571395938172862879988394939230078837227831914203251026742421646820922834754315299151545854587193020765458795572418693233263076042517063906433090727359550045281776592027731364296239796411390751231917095413846096444441595682718225461789370455331284881812615689266119244676746680126683645334143821695603010213841057893998991667588757295098716078268536403262649238482431106530337158988170556919730401041623253494150133049099553980386781557243200632391238543769997098915410872155346398062490672967207022895145311177309445259896413809433188023245039911491567309296901598252747916921412529472179011812217994203893790110769848304115778400629100490388968807126682263395967596241552469282166414567474269830778971033334349613677365119246747481706433991194870525993457804875771998907599313492629268788608175600707529555935455614858066465079336593076817200063765607304810448677546024532255415449783197465937517227208212812456695717953046863058397693719095157307738462442762813921875429170034930090418040455627957859949023017570638422673712592023175162521957691102432129792818182172429680860011264343710167538573913692563208396487697244741677353766255481592514214341290409863506326450424051050114678778873878919425260175958996558612287034333478462654199046985775406110180055357655094827887699205876583400634143483078774536987706069865815272921557364168056242142500981187267636374076711729986462800898411953843488831299457720895736786774605602453203069776166205341237523745764267113540139102674447129721783819533132229785463253156794205401877483506882172795951614858992136622815881155293548227371438903400877125844284246766318842539385246624658659454442704432081204004259841757795481613597707517723515948998786761740178020033552405423649654371372063068186044258856847620542695153684945018264029482090492855324769628957303972415433189881363847122369101425353439087995471164063877120079631373645720115795680517268325492468145708429142143704000916947411809557550738541246473255669731786639951124691837171567943629701027156003624615877090603054227934048328074952948354425650069517167750642407688742444259476778066921738991592963241687993225045865690113137659805590789764664561967732674026964731131779122599665423749942529082106249611675869971752172758902006497134007635641887083572149748404390426983700765158916794837458110713095417030099036528624178830024604005896500585631535150889002086853364994147857382256218980197024226781186055036897860118049458373392179339841792446122681356294405031819355385253814190214696214633792057010000022154117793009667772962173069694488630171945627126204550192482908575368583331974792423090217343726147582901257139007962493831667740244172040566863999788014287238078794871964831183391698138611505198630421527398234612237393781305156024184323306206934960373349827596411383547947686696293340775547809729283859442311779178754167244075040178547729150595182417744758317033910395460545834959262942775020627706321442504598277750584996543448958505691339883021859823370414832103907419160968771445272375642448490597359648988387639423112829369820865803885701845431149372254075926823210426610243460980460851033224732227597555242679229073150499917018044670339921028022055733641283429066017230918056935382667939620899668395484480121544261371021491676812553113504975771266249853254344773535119722113309374779517620062509835591435593397538781317653164096935361938310011850801778650797390197035363797072311660505522740959479145767178386661241330563123487853316929707998354324127057365448899766034643537121700056665276467294107323595972811769199006013415285642547072743633986053455556718190515209537464193739262582669782911326707763145837458901168980587008023548476267615311898044277319291299745066590772276195443098042511063356984285204279709715471122064909899388187917398910603598568457962456869324330856872146698135161819821271740047616761980804092088538234429767223819467539453796529641811645699302962902757275683615637167473731534187039945650171775302746507740880045074162899915048511180529474201449725100490745842271821237225739980534293351939188523249386620655514455340839678758071400969371803002145638642129574757537541980598049457996322751240944353920651727362956427784371153659803094121338943882454059088635067830885363272254479751534109495243497876281507335132327065938468878209994581956616699207697955403693847190713567170233295276922756477295733292652729822743485818038926557823306111440522054725208253336845577375750626845276548127505151881397003181293568161578616945286172914282559139603259412927721784207622830942643491406631043733816196342695999105729166388078496262453727900406499813868467203684524306620881399042813534638660058183049333498476692974796377291586032251782094776027621909226851565937242649973954632071085879173290102562553626895062362276873723399169462524828697913936103457125701366013288111907468649668300857945335543897986731658558182534065619290540810815708098962842138475775684465771754801287821267119810021771003200612275604363995108313283118690985474283369100768157248879619692367808296400811049777914566417094443362393252463448022754034530506564087859620210288142801167948752263340437906814286238694951405441128367177305021696944812860971521742086594050099077606176317594964094866106936980248643424791700080960716876011583236277746818641612897027689121341246051366582218661565035666908579395482537073928459915788378733801815642989231196177605189173256443839716170477807360146024796737766550596158435515886676208717015706882906453180638076593575107554928203386301370925506549609883125808801832740898739563586355028165694604067378604386258483849920087708566900995492871508189846307064731709677095386255409110008091469165682761479215913076711783218609920464540106653785462909623095519337026058620827841330769974564642367253598569638381617433204145316043308915429060008813752789876915184446691112309775258595231793692566478596085893082898636732188876277513253971538416335485988252054386115830654286540201686511221203336464042786699083620273347577585858938498610211867805446213354977925275020794690750137001842862613975439033287404018163451097628478403314536867624237935916100021012196143727397777300273472912139598563398477212733425960143093103800424406636284551037036722449226273102599383703538918244893579761327247763487349170316470731252007968114212675118474629289743945768210634003811450692761373938783335392093525085736553392451123215949851762917464227597236471130989094438486091660026393802005937381642667437430716980518020836038087940769720955776092192941292781339715397359039509972734204311943996787008275401419892968395968969880710668105364718474533523269269236906087820290452330251392763681691627078018087284650325514643917403115389833951199631645205399460221451505555633113890528675214748262026440109954883862149694792328216905211903071747065855924944387044209981416621925143999686943929806264169792960709173824466472151271271241729268416210740569748030080858562826661168668822675324858224288676848247250729673299378478740994959873057002388357654964161639359014340179338508352784894588126162289251429309869021225103122860657500329753387403671300847103172886737339943827986013953643829649514736207494742472262780477706224353877697694988994905169304201539759658204081638770956921381632973579786672697522842348211586122443848268073403153594338441710249648230685949149905771420816701093806043234520172853405621366072607430740947579599476753694572212890774586838985222470711132720082238070291212573166651443814839976644275876730811763710462945357019426994527864981456638930966680717844619651655555447885557561206260014143986778182458231447886901612986898855608876715598899068244145039244181636325364447548904565517924498721554709328429644338040032899397154962839684791780174005737625298891437832603615613125157804969628038837950950899633552017466080411973076009307549691531070146664417218597503752683360027298245878348035879723258989255916861860179670079605509593899464934925779153524604798300303739239280933508441330462904370896614182779243698265124379245269411329089267561501496971654977315257308436012979233843278694254196533820494910161036758636277127340437964891254986569721569839852774444277494023676343077994022975526031354328772411179989126154386336400699629442387486284159071471605711845986487858941367077885954112227681252831737212825538803985025124481086021977648662652882757085752046130971519721349803300674809680639049154894450113589243735558524478174688868373050684343321972917959813774134040367055257054734348581652459189149687947360517411135112877858762614410016871107216342826065727585535139018479364546729716046622916116642057001563890688225400824203680599317673275029163192893120933741661961310778743756793745790665487220432441469273831722088729643216569156556671022662778529722970034277684568365229249381746721458356461234237056628175064961601057646953337187155240149094549220941643164577257137678983256984573150428698155288524754674375513092334335724864345363339229713903935599205399036761257435620357042288191714323674517614164518999741256994081269011348288807027453596568780838045682311420584390341743186529158673364363168312140450135639270814234234522435811154517088816267979688794177995606215329872536495321662576422634584534068614953140221717090868407443576718948062099476265682903513011469031279344587934641712678560478632256094892938069668695587973901892633617873165137154586023639862762483279701203220064596652988139854973780254147995379227790551652487459795581478597449048392164704040430604857873555167721855039500118618514305847412402779001908830767805157452327668103706379313074782238992947528843433764587949630739227044438971101413882618096865281144510312058038267857233299381655483393049038442692282124034131112541729957098720678725039724619368084329813463637903554901157345962165662617579806054100152648723579858125091500629930686664122588302594822941471685697578363871242741463239258938131969996979766813284967279196513917029526632970949004864135905007581397954212677346181892946794445755127198954685538846282307788108506976079212232552834062864657731437786572724721071828911205230360495466431296159762288412733775803528836842869955140825096675387494816670980860885831089129196777464514527195947105257309058603756330540175155370169785016808656097527924553071521822498319766059711993370048536554257004917008907543446893327928018746362498225363388861742436287139541223886913009099007211386508764323296553618608020772434218950762625198103085006228168793353729685269335289050436958516074898441802675948881027905216165402631834095979080507263944072115548096485578679562617887563206655351092103854970120681522833534279500400513367548242783364169832949676923613561218752123642238117559253809874645979781924873287310763504001018958786683240094676120555937733433502229069732670199850491815688746946551172702964652073313131642243732596692102181489785375562261970857304930972247590286976447823897814581035369278704002203609783709354794846434667987118949296254852488696841328952967431718424317669561903368868843130400444658905403410911711306653686674055426693597488656877227621227291973368097644841773470325277511077409888260363486809357390519159531754740965979070296897664086157122677586608150230057900902004714175001554352872149167290391811537730128099079692369306542219352601578042883599002343000153008464069092275153019380070827168602710226001768182687801299470601408174762535154818114261871766716497863470544965617536198656693373950523961217515428450019030199193274160730561986810915333364449405588719525158507631145207689911079257577775004195861238969195553948762282456584816885959335714342558755567518932327932344183154500793420145600897097528557651827783298916358639864374619000356675617628753423304441989197803170897544320151949729324553782359787211495080592278270852922834096871080596339085125886217013662691377869586296494890365160700101996239856544209678812638700841421632641746567402290055467501020267733135410870942310621985845191841813626522474325916300165934959934026950727307902365305549589231867229431065712390267243897501439542115541246983933630107960101696298655260495559736735474991181374989864622925901916286618643859444255915402599671376780708881398829266932024711671645147199647386172134209428316178428720192530039315811707132486299360560021692521923990948728174050343601509102703845693558356327558083954953792269952206841737427472643313190234811316079744755792223410764415830704959499322166710134625661138249199155038583499018145042245613283803016908100852113706007974466586905508338127114260815220275469805933015892267128479935981983786519439216290368590781603037671597341816233575682531001430996423092243987711803265188989813642387240981609335368183955381160680374936603817046648544825075521367028577654829538982460583783422958075786848745561745140873594807043533447763200013559145690345808550370177839701247215937364001472947573955213847353505997036084104598253633922456716214259720308907360011417363232138202985930602988998345112296585614190724987076623727423892164646723186257935158998926875880126151911788248839067062317023597281367906869299522615432583856067767905834484153836423849610403023925935203017331553734218176891456952734592099087782704007750262414324073550628579205428412625093000268505262687294274926838514211166478244866217765719876182517870197967347047354688328334750301817842489827639547291006859294660511830445565320668744158116323846405624321777696813142924620516337843912844672612373686534646812741384248657766276147631542243706411605259284769750167845495880448726484305199414381433890670165436558528108336831572796408434345187999204614115042300522496424520328675530770931986375465365215011063169354254433262298968241889346633912201256013954416592086869153454172201961469747827457372821622861940927380846740465701932705947566215560374624314114281010521180370864837147914850107908807673774200097296130140982674804628378846357438537699357478561768929716440820488905361405837001501349289947978290669795431190111466729556115058278881497561676612466973766944533586811910093840021434394908718505210739329182278839877303667812285353644194044204191519442996468046154272046917986167445269017212875349865224644066405553265566736991364997885039856376809952886791775531518096470407512816031733902234862496559284908277248331506322458434958245189791032815237808469384749777609103632881356120552858456745103453878899205986646914271102192360188378191548620220833864156486698746693073505010958045544319773746451369464884712716830123516906358048408152095928043443567016798018975613295054503198037608110258825609856195562375391903761370003143036964566347693323639666967574420287764454211011271994026840334949364484351999044986422379034033613121621413918284730079703979103540172769712753488963557694199358685122103441592270758750445741947889744214140305472156439524825554047816196886126308452982543697719369039791695160242497806274290810172974846913993981567738038963510271731265467588575091642361677898044484866892598344877560744396293607934994826410798214552086079058837581747869654051907381977009654138140188322790578557167626383908993480076296867692941350582083650712438519558575061084807329776640566187430738307596210896032298226542183004629264283752290081725473154295884088916009377058558441486782425471354602465704239203193002253807078786775790927935642750324095385178178995158449361069219769561082971207602285092063657815305533923792442379314032031541920862079039725922288447630437601154844135329614275033041724282530493084335036921880324597802765860460785666060713742146600725136915394234920214346309863957403793759604004542723428428058145607033482398105518631995809087423866087691937219189960987711702578294199944457552957799005079972729258069696694329402237044014106051747951739799739329601475367700413612195404897677631774684101647535191863444065440003701841410356842238975377366548655888597439468258072456151737176899156388700718092469664208221301398723491095783105849133288517073189052380866846626749523859323724449234661770977726295207825484729725794501704791938121461175798209531163447442653865516747485598206388831924453805660858449817415603897653666283150771921796987567173789984826463930688203435021548538388917930778017757444136804111564595336961695854912811268409066687160797499212587688515517896615926925367607031423104846363010418909622337451375849900081896402599417147097675171728989675442358621512391282425209670263276459718515132891448582921758875403993784668989317872078363953417872424620840288857436458802737660713892819258932282883082274753846223107440464508662594418876493474693794009556466195085439590055654567707887653343726531535961247682766718704686582741920214952557946680488021011492116912453081928778208199659973952392828966221009030785059809358896251583189703213551612456980469885166473590760312829350552121249725871803209582666715250899890505336142591199400887687024097607886900351583983125740716726335269850073264599667104161615023925815230240225595871298542644198942716460679180479295856102114956894915445894714169352764956976599959900175285287889814108417008426227606179763117882390678750393344291512069470975370444454682262496152891017486623162587812531397238807709522944840625203652740264466746018286522535276913375260030529099961685889204047601116205643952821618738421568392081314473853837755485214356634802852282691746373739468767190173572282332727345064306397733732036583027360972852257313429028664556153990987341071728460372048728137668062549684375203263308207939372295536165616435489096404102861473285231323150969813178109463464364836701575022687867501981174571765867818494412577698865083394153706345026547993240796734338066618113675840073556909271009613430249278564898642267621411550700516619923271249207205863405680106203762682817804068968510184565475353749601925055960592944074123960239960410436717884632817680202167264172862761954006248997491106127925178600372605867796381747156057572607673744478181179837491728417546539825767930638241657081587214500859784892368852154833841173434375213730309828251621211017128132162210620803437434941393159830808219855585331621633999953547860674682356025410506572897747835825144181594949006514021859067539814823599647374478570394030024696061414869794305522286267292507687666808681560731872402455306846092311469076062909742791160529563488957124914915857800723319565965663894103617805879224209871701042777951508447580674880594713495780296352377481103660477651062324144809334097573467098684560196900175010996538995827869838752409721927481979530680500735292657158167538167643807628467614663152398272345780392382536114152808481880259858173382663293724493596764048458066394802891702792565790893193961492835433577294994479412818800830819584490352668915148879447595265229463682783051841882301994712227450309920020413194939835923891214832312527446061507961141771747145401594904637591947695004857909574581733875459208176189647814929462416883608039925669299648124513811850301131829187184688345802709462245046486275178213018865728004301449937957633279393228468926734714982050938098402034433651970311577117727289207352350440045664480713737050810314089781556564112877062130006962487829902949209586963901847496630434750958360492465986591654677047822176083460327735449051238706882516528909564006682517282759088126137142736201558797491878002553294930282896667386877842298357678935220106247120276365765249552879155568446907956704093822353635658814560059614098187424023581582937561229466352426859469636035106676523094476348476311692372175518710527084693774914945588834881593510842968554811587698539171577177370134098761949673378073723623505489278151544015968788934485055543631972471801578314357607892274755259622239839551228331789760351395039697709398204244831281957267642316421850494872125139783652021106967964653120241024708662642231704442520310484562686758263037448516082753421193558708279558961866467413379636785966708612733448595011076288729605191466954723046302982981862486978372552612764136855589324410224409093457078543796887843289339541541079797018895544637265327189055449073043906696996689725385994070831879909794594572377013541805463287025206680925573274452060456069645525531496424411367591557919144895167299551912870391252082164504696252928457302617159520232494928939868976554539689291613268230412471486945604884416008755290730366816077481106218047572943344356335403908894779558652768784008802751363353329400092736344064469797936678311308815864096545809564250079746628922263130131227579479490867226798140801722171278448488043150475215098110907054241008182670921862584291838986575054623637545158867060459723347412536700013719326274809675571577959355180812988242783711362669909286186350317703691425073226590210651293298951301163874348655283803880374880616462150914323088293141663785746447216225582358784201839546394847426378639147847563609001010756907531588093090681620400018701893770992284162587296393229334410798003312664040590510122966887230365490720725219866318029481645237493839550423443853969410045166709115315613031875683624590594571286742068915960463880443273501260076778902832378388342172556695111463531616997107313189511732441618898150151795382814768789899454170033495074549519484316027310486210706029863270424931372345334786195312919356861259209231779279616343584436520181503191902958999557433546112747245299562225955750138749527560005834684229502611463118668339757203682117098696515564597825377334568874611351765569906896447264577897786964059392545720109084000283030700752271744788938414194052072283543173285020330129189004104567833174384865755452588682420462578536096683545286826126439377517366937996669932102318608660225972670424417756284444885914263332693097913434853742493251574180237129541780948096351543173096650419365190616930848595313203323074912239792119014227720066834419282878349809929280715055511084277668331809382195964433427600831264860727312038772159165234455375082689269389713409546346309469147078856678776109824730473264737262404548906075247193170033653628733030067854681092775069559761869256867334096107204328528068797692762154003987366207997163783138992917339858099059125360640178757620756427071038701057695902132330042995643027363703863035834235804613654516428139607033594113271304093694498975163165565854300163869408862997304018341672235278306848771112761299670223282246578074670497468651836323913131782227859849015739621948839631981689192516769926450820635803324696761785764963032362306592834536464124680185725343029336132910825805740056366519231736545745207668520328785849068089697581756371385572009077275701145428008390026211361251467808279184771316734484126391969561937178112293968270497274613982646885722758459029313231028929612461229490785016993138404267841245630188217285969029784113802522329615412244392879259608870469511048444355139728631339019013304715900707160569824610308142762053775849989545420879382046088338122228181144134823877834191318740590927287476938760298977578471595746563739649801640013940051444840990765518141557201402958461606200495642369377913593852793782580860166068548298842160630103713802058967030269252305637648452349685459678674711050491647937803882363511775943785087818187545261454393835351663219851471507370834058476601602096795407930995863233011353674548169432235777056154170371241888580979411477252623950772224802763656322837340912169731393060797904488567428911717062089765263478993465059646087448577401235905163756426170685180368337667822982126992812680642150107215923836586917330611222794712022959937897119027814349849902871558054555364596931047634550788899162306251897503496514706395735355278392891379236048496373280330813049726822604502014945153512462350264136361169412842876065079448820556886274447460331721296900491538586437443921416286345056195369252147128538687329685900672948072733913721613562724102021697989589813036045543305495292163596974270368907706342720731363890408933825301743844129081301755078493638300579979286777628193833837655785881772580352889411207368643089100149919262801899729935281583496586141567318736945682455582512152675384146271724181934641363812274972600519924922421941965321517150667175788555191410570087522570553947431955926255986063823380310470856862747677709023288173923193937382093244939330557181567741555048521631663447976241324149253041153350568059188279499904051595479173862702935571630063542950436446322665213237773989587646600415155145728496772301467680794882854047948247744408125735095081122777626973312432966335895669294194487226107966426264770013943704646375467382730426910110019124975813485726932444213172537838471823125038062465953056572236094665262047648611067155187669379270203687138274594648590795202631965068177868832145988788257298388292762699458781373732587188367338741465367114442056656168727881493127887832920855220042337795063005657391652630533173213219010324547964941036750942438112245555783748053772318931120535158922724886162465676135804316742327242052763397637719354745453459662176944511210568943438409236458606613329751389713303267709775089996237510166223111539000718118240257457653444543288869695194795800535143432283163769682148610062699089931749128762225204123148833228360962604182918644800077847471229543245297628170698532623192662142739441988598195315879045537417933552377558077902621250961749955640966521473404028875093046762842193340947431915435342803611327301472358726377195887342593473437119628610785881302222013471326679003060482905159387806489178778790186278012836422670063369486520295953589072958454229496711876243040443512392022251843417734077447440911563555012226942785165607160878945859080436315679904467052151200163617567167788203233080323343437803757752712796163036808947381574143071006812888127195194712276535113417553364586217211944099798435651833239996770136450515704322716926676911703160107502335070048942606522055152123043850521220688697326397671095053459045110425380616316900592535559220620585240462571040236060285582596098783506308862459992278520436645253937363646654524658237240780340825199361793460778231297530798039738080397217440473831582246835442143332210067063535399478374346235081330867050444626853763345629013352743818654170794661846634134119773980282461632579930583422564936811966440226633715488302745365654393143667336277559156581394770887970992958174467259531414975015403563917980386649663628744737657327552099609571015114443148286860376782537285819305492784593389990082128654125990795158105261276999569812482269677462637171039923934573142781980834380020363720310939026832032152522236572130494814367909310611058572260429752985757448852646868126324710027422949015290596204349710455077020473234933099597204921331704908670594297558669346837229714237663933644203509998262189418897400081726210678254034505494075692775029957696073473280228159150837511357074828756973571087536874698119066002963122852637976618329033772606359229370720441300072883949110038524913049672082711935068859922098653076716784462868902127698365007992864810013405255173270241190976154240673644983529476198755667011417098674060204827996815498835488757918557197228536592901883589073266096579052588294026160301991970863447188186936329168552340067734172455408640199241928358530318622195522324745027191233643155307142091540568244050536965749676117913433318470784825885226737651142204814817938391868418619617758747230280886433592732678278146303879258176928648007902894466662263676364189839332848890301009918209472301883572322925605676435808723552114089908245211525164828476103655460829856987717516158053910688203663214974025837295883058052444287218414475675869665453014204162177466756851998773371560136018200228102531484629722880179414173706155949183683112433282884447329953359359647474001497428562639345953909660192147163178309732941753981356007429455827112757633705902403819863984034048687393862998890174151838640400582261148510808030356569454230833621458082349063137038523808732935124828680268177115552063629943899354742278593531829759013478571771212768806481408814871840805447327029269697403442766413001448903916005166966942233537858714105379751065712413967861582549069161727278478413263290868155662369666314744084498699541230380990177580985834310613918568770849578942740350680738516149474376780565009809241321255614495188409239560410403490556386670030461490370305783555778973691827755663389355569301341193349575273595566703372475072786859443763805368960618885030282487498937179557606193464842607492608678212193735067045144632825985362462451343367059319336460771754802461699451969721439108407690145494922677942859024836100641837494599968099749779002378181994694703391141368338930523188199203922219001356765046533559449905033904266316874151923524455227292468723579723918715677862730651472592837831072655494878674651578854934865460562167849101901403029536134041921412181330202222501632989124521005792681728761620435257343001745109860426474479064946240702346085958475225964847372936764775379514343043566357137268784600174513923498366571089465587858006959489696083394486005782164965241313847878497643476104766487242132092055031307615913979866857655766330859938738778504451661977901885605808617430886779336120718346019889437431419931024858325396468417174116826675805658255910475163069777236332935892632383948373726635350748303505945826185129105879198735761615720350214891723603101074677949120877771145527004895251631141741521344555145437984335502617079085685901461423972368422725320566061963266846137461833716325657665308724976997938185289562796450200679533751943945713382169551957788094824653789389163189735768152102286005439014425664752088848785860298438544972742138582017362918001296007321393091150045977846823018709670747661674246445327740644321526252616748572905768452375656832525187781157782922731476076519135774598833859329018837628819352224107128874433984479764575483822902106891392978641047135159159565502000917250323974584804510421595179136439185809469401277460590777638931091246670173569372939628464729857270635617672795715030970840612694925110240476364839264347738674123081382072021602220617271625466675779444636065383545887945193892645493161005525794173331736727703734287735345434842525054891516088577939200387757998043720626981734088674554993386646695612406722675697406629584249974310941878287508852485516626469200702669417581392626992058496930031105656585036606235080115870201723406193827537953268080066770141659208660258901253627652307654383461855332855784266423181274488309182011134039665086463501477692749753722037622595606495846266385882895852846643578606681323489418396337585831162442961115408368591149723211324555398229215840049895608051740536542113974081310812464672060575132910641711945524221152639784513178142054810837594996595208252038481439442788743249101272612849918324895921346913511210460130023654473108684514841968163157348123455859536257749595594687239843515587265393189317138792790189740330202320572113204627065419643661133807169110030915264906667440106110650265022751864261832714959328262949265942562364463022262773215593619845901496918025271934271499274417694698801026912211168787733270364927906766088734871891952336445131135150345769720073462254813337395345199191953471999672940464686200767916504338845005760793074705252251129324783636115925261916291134852390368387795524893608627097983297604646325504587704813154338095990817512979060433335651066986876570417007399039754199028712855782135703831923755471372879942554743244879522577599936260240322013283504419430095870842149765886066967291047448020519639028634384818545701766568141957944728231733923642537499915329471601701893518622753720193209865962431002272884504347609609553924035645037726608606952273169076083423670790020677638316906616134485570153669945126964949913556654117854287672018437116646706973947524177897819503685105275447869661224806248904064534407116863264013206471817111340942367228087530491666299882046506212570984542840260186546172729794109765260898169595388429621833940814214162630221159563515076847322143589669279420914135806359312477217006304022862062817027575546535471712389867729844510045917979719089730762265335947378532269799945944932187320395385687786155116461565111788403389028037924204089050170908380497306893394126459747870995795008523339646164713528137805197919448190291521158812377840701574655223130136615228888271911072378358227893238195466343534513715848265547185353606393749077540691441105989943213629638166559756900379006466262349706290655104404439108230863650785644698498836092578568878093714156846004917995188377867749002704505742681169803602398803483527156690018978749184402104327285400489829136472981475708673751141026891030766215375720392383428598525485291901459867070634377122246053016077100153186615715015762658506075728902348293157427796634632008666599690642349209364616734602152042979225362151504755638076863015188910726289334182934718892499134962327483630020359790991757261543544746581246030239345034999422111247708289696455577494406039857314714176297670632024804720127341542860856846657631844215467770424503531824144552387875429079182446769477009525624219763700243265799665027070888196948906591010849726469980754303829104628254639264844314955603501827714889510900529178637157938732024472325912519471637394998737949510647422692072833060419099426991407832322507096141116930993556108010052465469570836162976140628697667938672333219303088264288419902229980583843317547563708541163380499382490974028198716345551488448135449503422584809704450420163108103810928748721017916835925858989915335749743315072172180123514852148106918422349536465303473928171596810397666027502218208106343286879834758788804793058500826898634887561609116728166708864449960970058707971981433919084170906155445068457165452493603846777731182369455687538820332552622460132352425806052211208584231440254532623550619407004798688948952702711567992736357046431119567549401254552951243505309659264139322486980760137643305161488223588874994165881556780515446151782486382744787127523758357356163384579136254329511250262507518072228150617980385475040118553253446158214594297328347620493907400438800316383043595498052943697711946443782539662082763888395235629139340142047833807790961672333972269541087434611331984818336712819896087576108708739570709016990160256960803996828423022234955377722384075984370056875963403690015650988418830007133894428918836412273392589029770680595509168555964762737312104014250992321038672440495519309154128545706828352561094513293953379335565497020551051965222056215638602128764920282303589291701473387879257851572165243010853941522688010294500336318132852945705332323771405006759919774114390117009975661862262772997089418170554013827153461263197910315898099953908206019577583724866121124658429610872508402105608972858431782635406836356102444386172173501797343258644199814911772887388824676882503779597806972643863914058605724515916933933430797520709885577465060299908845388027600073041134546722066613134612007333557174785672129493360777402271915321591539804189665098385628635633550600031274278270681032558130830804564304510072110516500590687276965480431257849792910768623934565163906774781876237626668386490412319506952136446076918501358542119912360561559177935289017389907806907223535130258340409761374202419296331648769908785544245750194811957880498333754932118006488098625860187593324177298718386018175924233396828463124752919772290288410826468070013078357586391772824126187103953155394511289069026362132424041463011327293560993722680605834904691664190330433169108360202434421002516965013915907199996171089968016745951074965582161151234074253766545566498300992716446824229263030556692570484432600009945872170180944141348180236022313741979961032246802052337241029068207693914729992292273338593275015334115226052221323041374878612143553549830985541607743544767706660955635855780899692315096897904256980466068741127980502302176711133952815721145881714958340208367880714123723513964586837380886535816908726174899151850292190004414701854913731842406286121074934874534105615443366285181411392260192629885479342619179961324740340006430795702369786116603979476376205093949249099039815333405824258174781031289499193127746755324352117728801112277155982745425350408102200310419492507482036804805951205537717260027841739001634879413155288305386483916126072629360895192651720094958919263013138760724065348097288006912179258691356567984954537030286651044363722360717394481254787556805343809715785601133206436114922970571184265226117846350253651956592599727095400453633441506237453321513229805622434422224611998318528068667259406799951868548040111299805944677634344373984121543073230169361486076156936669370412774549858785813000592858119909147624972868966036297599634880404615898942729130175528662743038510460480986064477046050854546705780294857889625509093268267077892547668985832570632491786579730089854402285373938584699348832810311865023605888623787277044931971991567918861610457688737790601016569914504659954522225347064672976801455932776244584586216533826500802123503703603654103337881472343160146154084370498503308964216414567771218746089953483561190848683660069541859653854143961722791292117361139620770205284986934054022760672423294422123305659227272478037878903832026519919385634054079816018810947171615924007613230253423313948902368086261717919263130131514557253010784619153779324195831619341330778192851374763106131060053038700614523765298880871053828099962873921772073430446606160483759274405738131211297772536217748779739688541012416578956658537042237619443440409768190388508749980082246836845879461583059806542797485245195364107649754375018106521950351433801687486774753117011384736492235666823460529805690739344650300089443040053461264995062601464422099440575352796232101411269497457667917164779880592919494497683103707920627104541732396375753160380611805331148215594139651226127503225858706375248025467609980670363479249269980385311744198710496363328752843133483576169446011010206630391538375097447712356132899550051512814129267299045429282031574152378710945008945746693933740299790401394792201856319031176404063819271669501322114878652523048984668923131712470147233209839410939784800500048428227520167679546106932594514914849913380497571151739194410372693029703647157509877493801652117376523541284047492667975117413533784969896776045396197357560834863381325430852289168745561747597342084747443531027515354653003627273970235000501378638896543822835420033102959992577304207007459966896546401431033770864947789354474336196574180415065342173868771430693322875783487672398956016593604624211768924554848004905122463141424079505468991590144157478717505745925347601383994070464035076889863680825265579562027771110063817219766193155902148044870484057451370017494941954913234793598217973679468585324002506691458580015150790071748958859839376937346469101997778635106311104951467651805657571848493779884799400759825249112112767429106619363927946514714942314045035845137170622477253983625269704428840351880168506567555553280662508663326483028119918716526928813068063221669547834625132074367832196524605113420998893483159326837590959234499479107408847610393874568583560807193973941481805418967848327002428848584690732845869431339124708056895832910126147328986579456989202634621979764974309060323635181740557945009894844121004000329229764508186983696938108775219194103348793416965766332163183890228862534278724317973952518727243754861463120289241519247115514164812964294106147462698644630765701226729582144752189557041989120498990693328903126000443306400218837959370478116160493038788080489130807674566494174146147211450088300930417902652150394024847904838946625269229024916497288313890883661919145535545615919682368329964087178843557366707665835870985100533793044209555409326005885374725859819073188763764818143878895245014694720715799547560759808574602772523124404088582113754497949689675257410583534587190054469409963375691491437764493498719832788140435949708324051259884852022655358067123525755314815369264248972842440829419378634773684532912149408338568814822420323788349693738285896948759243148220996122036862044699760572954578056470350218387780966976736838013112230258484208047669403933459959617654603881659344312521795024711076501984979274605628204313508832704699622611373507886159346029476478880543004432081284157253149447372770024633857344556058036239430936400903442592135109707112538627330341686076090194542015997126018584430785341929293764011992088599043240235361787096681419225687421333575380748671258770264497274061162291594457893747706182768164010088491864823511070171262553722732835630563943864749677758705494246459002009112369290819872257722085904534463788557609590254432791315907442832184978266413261415815526697906538583798788929708954865062544336267717996531526091343424408514883030995784653131845495206870688178100391079713170384530609963892344291512591538383176155902397529933184214800449236394073348827011957753979662209477219958069469793725489257213306796412398015448359600993152061014111741193082402908293139075731476844878590775740181733025767155263746601393262686606122167472949984813416551971941023612292370694950823608435618315254354063526828214470657162952914482722192570682247690940752894680423220924569594996165687020684284937212976613837835457387818246752319780043330852158660403300886923594244981544767083729519189316088524293578589603081979191277068960291126554783344532046367757556116829532099589706054895277085173284626181749964112820790929754415138709568671935768887608402775232180729918550649524315891357333604357754301948430855309686599610662178826137216217457382506620510695009813862132137282237118031061414745060007155166462162922359302281558664936267500592269634969370837440565711685034955761922865318754575126925566404073839033991118311316660255512956597824986495398106889140324858856646002585256648010404740743130528679197311134669163480505715509946894644644218907955848946522291017587728910618222371977116514762724851548927050949767127355031077041781855415698906836890041232012933389021938263423030886125378069865202806133076050792555060755110520468793601168439872451919330613928916907335176091302471536407113810173530923326172263181972788714461220981285537702933336109477120901935058834738547311382059365148278915876512720485711305407271089614721770096014284487008743259666982481353652187563832819472936148152303076005135835296107789879280794468750398348993505931002836694392351397229273374626801608950512317495365310403013682181492352853844862161850866329173282071581688932008216393181875822780200806919483826315887365159309381150527946454509656387106218534061785210331274772843722039471115062428577389639756709088445606565799409734413046593862919435418395439232316608356266674471530908116021633757977610059369738047835118538468577456408249920212085974987352764011534115102695593582690536333583523332995365811883165379691143831822235963912398665683736263607564198952302989983275419304466254988991061466329674011491577151098848853654700227552856155524598006721041964265361727333596328992570436326918509881910613315183561797018016765111264674685507139237510208228959977776346097717870097646877781858307235235019861868325368596908334917974562217582544174218149134674962130179999147635920566823701874105233283446387358260762390653454058127749428715433400706202656861183323580258551794030873191358809559537164103365004912659158633744295835404690432547673148077669036092811486276428701024929324576578934176495581226638218303120354661577541318190120699968037473360136968310361900096865518869651207399806366477754990712522488389854614190509944085493639329635439374382677415025940601065967397724914149217763177741609343359533115680700259789054699044364144589322121430879396935831380949003298220940374332156674930530838413792719367927944291870081741572943520310663515420447480487528945607726739943558066870535499024486438353445219973017739622102580679853258879673068027645014321434912287833131257408185084604846621772270888040210041586142355180933314873632792399354322733058915024365547445227800942208953305907030462722919038977303591930013512110290964679287118494919243055857860781711835605728692651143030354022945444070830191976271903526681682746658685394977702506394894471438905553948879396387619961412736015542634594483981539945952561293751436198527606420487308700801010700236734778126546159432848916687428593198857232828279073673192919155925105938792224885456701990118453485026612979914463242953349738417727302823219592278721398990691266329806224202054186532117623742566659874035169661076681284520265945105322717127067827572167550056918908504713813258670774798491100092409941463594113979438680201407437381618194046590482067192778093289892905294040260764567887158252403552760231909721955040878372443066359873359539482361903273230958556297543123844015216889710970026871803505788626577195130486420927302886783531904450157002740770950079218873568870536104410614342230537495994930099162083640700644979779265326473370124685824806461871616351755704650550545023325947927875698832715947180285936475728482180893519697205593478329511675116184609633244153945008124199078529254901808597653940978712725616402571612701638425589311797257656467627737317115961533612194711409190245984095172077359945397750738485745110504064682934684501318689488993085413875388039913560142395289500634062469992622953829896512652251567803863164816132290484647627203597934566261931655595672199996844813375041958343839559789178253374346008121268737806836555765422565439055778905132015935945395104167582196712765336247527011690685892318391202100219784585290523948406926316575874537037645514568091355084812213549949282134304365696008218826839148293174979743339559732525784144440101858633393732866028519082972257639291462987809810616474449717334144046289566303462362419416910020949816057994398942717429511940321710984759828775731269800706494374133402654366590610544657272923524748729856315290265975098433777796760920630418651568885736026959085498083981928230355315635632061065409341901545743185162351867061922917723823896502858813900876463070400099095947777899812696723708869410432546556708504488886974989576500912985298570038199040254320006356729875668976800634146128477534831858701087233912659020167925838268580005254744678124470854729731426245081083620094418533338800866632020524876956408065842623309512914581117730771818257288725232650963355477061068326440157278262358947527605439768169331051154216827792044671437317764368105129926997188534044059788826370796707679170193546903626583807630636948813132634739418062948096979332421031111519509335797934928389503663092428892545161842637873466888962185474843814424537111967163328041728301240234826323603358668140831878935453022173779886421816754532573409521135667097674494573056909416274678359953078373977332228368518064569827029166437740015393256167155903743312605913255136256414724181774604431686278086723850797364531929283783235027054680822873303651231012997202889221556724834145896460798690927401298837064335580163461436525530437416397536501653672217296785185112914269753859976826229342482172409414957058059690358536198667250520385658391453272509102147689605267156102847349041619557840307837212333599545404615333068343409848114863780434814884128990387926221590727210770357103510614629169962674662701691305249418962619754490834887668144867064897631317447019262047198404084763270993124622506352672807758446472907896404025491253715006580246622482590009774239020130588085837497981438480306152622454344778957829100628468470778171565402141478578067826868786620881397951768050583378926207016319910406628603265726510885538004738532584793288002399561701765496166120254889170237611218275399898553999667295839541499977411293275968866364910363441099378357532637485393438410869818166994969607655366218578125034609877553961636151502334317383513106669486578135069197312444246358451958853459007917070651447576905386876329468564580761170755788734116324773896357430320694232276145219872063950830113653445779309202412473132068765197070969495347754926933233309323619343903815591155774647768796374955195713350640077569298435551041103163332713955169001434277703889112035598933315657996180897910304696182466130326717648273493188085006826774749769547877305155554215328682388171708338188270983718905633476268603288397915694485707760888098234536097345784664223574734330430934750112504682134536083007164146691275828124416401286670232733834079779605502083927538572580718262958576064876180573463990341745199453346191330805212519869234527753953058475062362671304949015671038133158918180617690865969121337198387528069781924657983147076866118112393082763115381161055929344488387586782657149786934421768443158819169231407550891855288554807860744439647903123954181259858481528669763686773124774603162656334754591895814642955121194209300661492663462222504869062768074613194054081384945991408595601429324043254659397811044155145824249640567344901409944816613720109728955684813093619853026184734225951218416094822962067996558660230550968236959115813889611378946454712413660925281266681343012769532939448677028170041558524720967234477132576830292581192815508644979268625554083910468049616131729965895361588397398178733276768667336267502492154820391174467515031171918705496338701513380275734881033873575975688266901516610448722253799729080054019601723949147594501525757330752637937791907187511570625481452485251838591207085685181079657108873529546055854952813733811962776289403597256914469725682005651772091299049842590189761894177789570353297740014919074711073201293290222795438036281491455086633141364483804551106644328254962121588192065640000235579196180176777931930576412893572391944779180236916821518351931499136985410491813840108889899494913403146816972322387972331985913479481525787306907383753171824524987527218967615191839522141666605055581428418140389524298995734023389461682260211184898540993659008209384839013740686560802917571924449311950078011153409887057054348195675242133778860572821783660605821504943751131090470920225534995036617696449332971661982739329776923730659300798460331891153467393965097614240638958749975576530758840672213936525055659986049881380291606780023915549633534047401189267164733844849584147719602453990363777251315292039103487465856323291741305030240179482712711650035909639640805641566683755820531817654764910631729952349843597890209014772798520346369129026693384480598594383428812716263426188415530798823886557905879393974854262971186443193023122082430740083495757992193460630890911167773875784586036202440854062867487983640532912538703039202366710069645745736785925402921715956118790277044520828849531280429669379403963563711921386555754214928448872583022600897132677752110632361979497678512944766865591154481078026701773790942971031808921589289532229304134498687229664271956328214998091361637837799052881772669047595290691214006312411230437897261469195056426342899014696939962002779533817645983048872194721087148399169536935922701014111146552984039019889339730326685511993472374504628768883486934929322425479411646081538942423841366906081085380513001448027434171384551537997718726912631358058035199919166062964049098004277190699297236659770459195656386699828071662957371980862830847965480244346618636466212945030382413396250805451375497810300099904949600102101156868955797816887763330457401951862776768920026586721065799329322615874725846327171726209035683983982156867776155433228611036775235185580378000269868844866300070136770277322677931795074775119756400537101148832590309028979678977838745500056194170697825989870256231089299192696912606848817318562255532755010885312423517595259642184210232447803744615127362401957565958017847988474917849245784504930969915932462469134262714007980012828229754873249872486072513995589014013957839182324268548807286623300367840795458524854234515407841072445767616655657336388812046655443352049034439380332011750737015077430162967245041300285727952305661001491623896654835238809449992720624529453563366844133294368216453399209205217094127306459003156453236870495530978669085890354933283035194823270318040505458900935436351904178846261380943270428766340582390229652314509789093096139923553521616958432015864217055008799503304111763348845029166172233285039737723367708291587807533898771255401347810131599088518998236760560625029669657146563444715613334478103508851014971308297185844390628433950411030619546472580655398100771842772113178353499913888442420098518777381830391760920443107797500367801804929557861946634255854810796166716242076625449581059014452624789372881250945564180417062176668564261877590788484879156695753153673304481703414211333461558521854097462019868076455688587732008164924168347755619598381713903535098473967166685261198516756284744993205132998271469831171753735593574860769403152346023822773216561387407697862302321793822008720129151880076501493041296189832398696736788584875473623525706237629084938809514431266516627225740108909055350831660642273831864322454112066835608794812717773215054656319086434806007225089209994370838212488476155191293818220904812453049956928977167010410925285897134759386261581124118799760287721230644260610446717426858706168439456487412677481650976253371126643267816799345924048808044678894552344303190224137740081115459975600777836060209629443647806262758277543166147088269890751475006226734606509716495572196479820767816291165451929935742587342781128771374537289463093500811745477320892284560385467887449084872267665609047411646703214120737711302361316193732299099963032743666489777638063709024796542990314355163665442128013758833884027332127413340195536878111857012700436257684463307684851472149111996010447519861211938916673179799206759086107381940663464791237609692939649930071353011923274572213032383778870101419271800635924257560790165275345519663770209050300033857590776944950590886690698853422410709145012294067401795514851463885689487882329007198211715004918658108017501997454281523425777488171554715049407611095828758094212653758699687119947890831043409061118521516769686211274215436805551157377176030686371133292246524935781793050244193608301210262991027309563354318790183158635565431209250303712773011837096056908986404588017176178233360818193504478378073021911830312448049351442290694660362371631995990228337074937433467694787098910031526092389426931486473846561568203836303355335532013405192880037944797509438976652473310951889653152671559780472017227093729983668866133026306584012552982618246332441760953638242717137989967882078100021397577533616069175703489372902349632731300829250331818882919982095845363993491840939138197053613750239293996240476450316899894965690433032924310371656065024985866385239041568130040804178151728603638631288966242703296161937408231407175913345167277427725866252299899920902503744691380014083247498789755426518565690534380359877830987340760987256454354469973951423235294175129323602570863105313093272515934569734152911017599445874621463901047807213323171597800935154906698747345258309572224959714645915398956068156822746494452643075656015470423922604868990269818273582907783082231767135868738881172596692967926331083460241101469954077609073409839052887149754336689512221375522720797028769177255983347045365332156207037634430633997970505476693371670981398317473661872614438917316304628813461907777696417806828046419514655404954416782090377114906874613196990472432956160946240323559762409520127915165297560295153053156747858751059896848365768859615487405434341849312329424466094754642661895897793816460520437235473558023643098007201491508620237357598665859075119002834862913388786664739891960140140932395053987422784015245909557467724047660920333370082847635987937854182241806778500942995810791090396082699485062639166258794128239038880363484221214423677950563798376156663401881464190592367976173348642599912158747085200556398560018212381354695888022528689025481180400923484237833547635657892609889001171129334177194856090090135737698822557835477522262569518979196085998349791095055932313602665854653801152779441078181404617235319495638192341300839558889127608608418842606364091400421477189863627353182392933828908477240260790682517835437501025199064060741745855088270344035991071625414359901706386952135365908793694726891451249047551455796811478772120061898790794394436276738026628441884380814338925241634048010599467381392907172312502973285059259371409384200703932415194420059847462140871133321605439849024130003008054017300307987708081829535313640424847904803390699048420490569839177293267123591871211106762450983939172637042024031484985924397230019337761024552282214234374892378634298199570592849984137639241778039213712747758759228056738637883180344840752249673379034110817085263134262334776910554887577085462230758690757552791155240420359229504263405693078638319851539581486118526557202743306046532868428262387736713089240329417094580983705242368096413612488655786261198370748095900466958774958831697673564460910833143633718427971039877469130529405553785941946131788033693649032871024062052247478219213983528413528884030533064874324987362750101264636896173416844166255085281067029193396021673698824761754083242322915724278988783274872306111311073774425976427669816584857391046974849759204275374528391889291103709101580830885863665378080169683594527492538223301113789517997981785625153845227379792514358112484634998954595788997202354424928495768741974154382697439597925857446831545868787227183788112141668723208590253186150761192213206771670981370465035916664663875516310094103451042564853570293656541215504978998028470021566879092654447380480269219791517106508912879902223907282866926786743668084510838698017460304887864383720474599018466648679835884378937354891528852235297865124716038580466775336923267496884509754856444027015561057851394088055380242893044932854396418771201982841125393693340320260696186858291003098213663455040242122894750650907689679629610874823439950024778467813858693466021961061793749494137074704248976179081151264359291967899763938089483143466273571856469320470450980362403505959151995026270588220796427207322803234812727470360672574314406273008707564933735836589763471424410265696451436563013634259093287634180809061749635893293270574744304598800959788934308657427215886973657830977890582545973371256749945112560859883754488934378071954300835884600510382400090987673458750586691727504945907621781877584231722363929822674784781937700504956515873365071228085115884266324387009594019823080314126021008972999213700859227558210223614778322037472459633267976898376950431303375356238154281111825460293401321446426422024048026150445823984446579979312708265861945957928938216085868575589901180959786056856436928572086971783543570268344452557123097426825955247093167765132354467579246116173894619929586834669946951043992353137623284921550726989397205840381959193000210331953192683104534005071254272246563470910994678544552364068880567145003998234207560098252311950636970030032223500011900178887358024777928775571136358753764456768055123746475882945687677961557080748390711097073095175401259489211805185965061926239542937376455789448393422671389314247405588246160168147476146365286483593471231181663552502635655472431389792015676488380826486289881077201853442503276307729363281235899426882423626467607141198621356180539754796649076249074605696740499891723918484142867035793870729501287800477438615562686249194327468408982318701484417417439178499008782045821085682845433400415129345615252116647620019465855196177429533386211573479572392636104254378903302933978591336020689809464372775789606667077734385983313939804756760319437279414439705051535447082597428852254728547236099562267411734432297853061262038884226011132009565265846980904338771947155358945308633648925095321847961998918480143698728529685472027187376883639140659822012547313802726338685830173793434952072124220626645028424912793247247051926640456371386689519082468949452822611637518718024671082478411651354529959186579947407949849063491471041458390177655329022952711903115140924608306351822757517479859810266927016472207465131743050905320552686316152933562350225980869632009103145523104158097416334203769600111459579309146470862902804192786348535835638941255699326577363660992022478179660262089526315742677526236639331794571982303614734423521437583577724807818120252706449751424200120576506904197292686000428881714053938854992892422851408512451083542670725827939424812747406976745527122335799811546532986200632829526330981202685046393031351925507280293731710655011004223969860677001019751242991964927450064009946005066160328760524784582363725004399514750822483946853942857128119954621224544492250349091462469829954157670668261739524206480036178768504759806364560620192931302903349220836925806945414357280951334007827716161304021119773798793747471577646111347600000750517996855546787737716632455318875782280842558894897954763845867859844195669597176374346203569220076824553417973555326524761469821651425435144030854712328997715429827120386952872725031873024424842256893031354174920490816689257825011938503470696571203217901210858028536848766775727206028134236714358712344033783836478596329332154635004526170986445085167017268681417540273454492814223021372900346613826340908457292235172250509565438303898117749447024486067416331638826183078338836375971695940676142445194265109735306778784901281451057573522404306175536441494802338086210943164057640552269668713186259245649001568484050182659598788646157048674058943201417963753683857895972684062035599405556575751667464787558590347788067081064273784708068853508652017881322116334541938629909561197362958761668122469993909167266803532408238615719927107598047242210228750396532871886378526417330236521051759045585074958656955654034282077937308341097518739536691074674677088401164383650968841043831009894729810484954234494298581535437516719954159746879491809941465554541540571260079548933551652085527425687706060347784269767719071231208765371204856283464365815092646888670798188826808459689203432090891867638780680988415343973864937455129465610828959113082720166627013436257324251534267204013045488490078604023705680365424527496156998918290699679682079701268799121929646837764160075850854883154177198966804409368737325496278035967312444648265898786679150011143519349565464419649453220644329396204555597894789172724885323038913338863682573086739648576465495227819222700280853474300996556425166573905807029479952536619399858512944663062027742335193280082521017086584019581172333897738535013119955093299896817808358718117402295405460926401294239776495844708504895690498037932717542719172046628741697728889526969366785337835380446761319141073857599428609097520774939959295550389182301227162458155626737394175397876067049513364480642352301351956674120157629870460101694110255017787847366692868584371434834668539025199645766948463004813054753200033293085931542014595291913951760711520616098811879948019900596166840630218535009494888790031421448640125607664444885364945765448449140876333980699026566931303515038471185067662695113252158167932282278260011949994877252989445317958637679371066872929848408870120709799211931462833773061375206825837970423380934791697454857730035071032459840150180328125910013527303731170176852683923947248505305524676041404643384494957229790201886204282758817533289963792044423897284389790611368990918122322478432614916564514107649788657196712674372783206978873108406859513821530880597508820569381538812506899220250218854294048261277313337029592923673720547746083115065249315476260992885387589250000515131674784473006388274541451143488582637193866475481876060463972401272287365602190049520420121165053384525386256031314302148363701673418947187695541671196850868184525636367842968565755111497506183064657145099632966535407258728407446074223732501920378786760076676933489756116799079550960311445201611375774987518784624001478461275273419058797990875087829251984591839706640643943450069929726205482820603657119066912904255557073397342856729868725526361606694807415587348461171281549598278408836744279384148572482159702144912490459451231811735766943437929285061157345815113284266808810244874843599656555329876594930300505899725156577528437756441525480749604314013308705509525564436444575437527659332568882118562252260136332506271581542464758413297239892677545916019559942902300070815479026194937856186582332147126042624851589790434794795702833320343101880417649617078368453195431954673879871017712421934668366170564207666925057311698023255686699870357432710322434595606454265743323224211695276170312829213089995523490656676973396775019955835350606347276453186160534935499085455805021651051693726377410723885958582466145570423920413077362076070894310144653283331165168932986326345047409807450191084834817596689750508009775309949149864553777675954341266062813276211902292251487699908183347553995285717070340653258468880220185276035639524485607062517595750275115952607559841774151938839992191845980967072768385058197029277000212856120826408437473191479375179276933725435141385291012499030511365498907576048602251595168361721785808551567791078278673802918003010355026698610621620914194992919645870919308842792833452023698827635667169561274021104298060679261942539332843833131652805808490930244805212187447908362357383566658538360435991164190676975701636038642563339066478410365337231839613639127207319704683542308020162643605604210899964388649243052942546922895949835491560549987018333299915361888833656002356408185729558477776444683795298156777520394561694674545316532562313561959677583332389867901541123372009901682888777613234654765314123971438702386306988688544695506251396012026887546849150190172666504718618463910349130766597550970654806911871856757713101385213387554931969917242451208544108011421105702695229562476190741048830223613599196297170827662530175074363681014865041737810160658763847983427572622794816135064246014489813183604262904694583725601848553271409339795683360168526312058078735345538559361711340887028527826266201820180460765268340851513684756998980526949520893881670302624409193958335479360730022642124580018945220494428119008021113767113269869961772692603345816239818687723857449152068185064419551033593334274166410874661411568964543262028805311816705636839547149582914383853273152498361584158018234322176277880138054414065009463553653710078843420276255273377541108154533870724229121121264149583892876840861549419067735435633663777012732007711580740637814824539788167524251192838080493350897953380564942639911726683735588809090706980291795665579466315875235432780091348911397053551808301861956712498598974379953292240070529546161941974277513484301703857492601055163537446091374392405589861030004571298172592709418948781835886576581432665571158995006655328776579557253119596104474052289242790360482078713076299285403032868297145985195740320982266485019171805975992560994999894425098956053994330583733604564909515010090303233346928301426309850092874695110941976850680493820674003985715455072900057708527778629169204770399644699594503995360096602658352811924142361680336372426092085035689329131907957362616320883699979411828604536480706260488400996887763623617837052988917261306628216885871545052098061705689352224535133873588032190187703570592636170970176857410767619197226927178763256253414356267881532784653392119828646506091185970047611189007486610784141568756538396719523978261466237720142439400738647787393829517610996806438752162770526988917055343392139698003414655133695457453516724561712355510564947904667573687125727438644941756054381034314162521979463401297596225530212003251961774806692106944881317171668658532623977925432823528690649051384106810573431660436777125487927202952704246113848829643089790715390037119440661132938870111353175531187270757620716553370826361586870156982149493097367850142553085788608818280744461417863598494951306299543946187796554098104216742352920878072741395886801081256066914982370243466208671871387104361109344701639232461070529516378765771110788276287497384830264184039299631337151065260621305814358605389209039878946079558770229166064730551320611177403095528129789851387637959338953545396423871164019511343821987575921378231168438164911373876620926745236274981721659828635245438130244639081796137983084681882347539958480710239568068886524915694917049888223849134084025679830173679291944203581459256626125780230673183758867376933046954655845797988218042378581374587856485419887866692720825086280500061418260929800660458072774717970626505395964714534123096113053355496587160331415207269089017037262444286758642813562372849101088580474272762273521242529330651448931063735312686534756324580460991705271620118268530108444818149839222759501143885726204498143556870657318591928924061316067430355391738970436966391935324264938825238996481981556857657310985582259418647572682381017344755486663722896932810100925369070704068264215549748960380316629385329641970304943058340174814226375061715798047247094299406142350168521277804054711897634537292385979046922867918782420398944462200230790047281717554085277191799286298666590731346471067946426388374424370262561214707749725629662190740350083148301300501876501459933853281620672809984631272677455094449528298621063341398184513789975984741419270969729311952317920005720578575841077359976458416473520152068682906070647373522812439967503475274413274653757374312083247516769866997475567026696035352504415643593588512306966710845520369938139530877941190202674780073560338519011004480525398086389996094010140035346525837624983448385332021210766027134344906934312094252397018059760624561790135299198819145853500448593758658660339220275953238124174958845307723317575705097087432538072790390471205371986796366085780959079996093577953896668140245567678661107089430123093285116818804691826873452923572858786367217350862265310905846955045800874069266166059846095714659053626937847979084624015994228339823358069377029938168400657732955365579015479872724191951771132007381761655412884273454896985801550774913164024979281156225137299510320576550820331031725646475294842059277776350975178473819369321269777389814670955935654164807876557141100260754530616386136360968414256922018714676632120344597893959819041735990575741260066747289771436239773020533922550394376623839804141399952053899943314264056210410664638272481893237424938330293718367700231097226238840574008061748640296832206306310460646619986450465862226422698678568131273688212777460906220324352009898612992246382226510244630986155920253047340876169768306869154991279577935067471443270206344277638403623235064231422225856652312893012958141700521483004667484884466046383843554684919549795692972646022119156665748326038442952248022420154431234341651456123141026271974644217678988493366808298017830633685353359091148972574442298539768065922363078668286461102500270761079851512945250841495210348186777774113080305807896016714474969086516222351726300687854182285662313416479354886881637695497108415972909523496663078890832984809685945138882684624555613915011288206063161721559614597634099652264677108810596509760448158130887242765345216076784698887469097521411080251391560483172613882076551147296952811344801891650895976690409223426169131874054137515334336718752771554503168150803023056256774027984732369490734205492824632404081833629789414737836075477032792334212034333435695382589345813043369410967526901765570403186637276346575213508726965907205868015718414076772477671962943643348444513588061077776995387889074736499867736576612153431725826966250079655320887236601521479502376767701839979523576242403657519169768500663809029203338032949791647551268963109077885054639084742351787386135586395019567476295049980046785657026303619274685708346407451340983954144066087999211645904223780558515183782699283283364390954787825691589002862419449787535958915691135798435526056456659384663040598777411259549501879382803247809903715692524410015088770374299708648322393806942828372107557390976676147384926371930107403691809988339225941708063713373528127628503019300411067422158558489124276121778820629743366162573945098136131885238445796912113467255920918383816458579328725834370588891820282037290919182628117192171304914015699195000311541528724458843463098674186955695383416243572357410572933075489609428817681435589282517172437549641828560878621729519624567597679480598666957396778709009740285839488023087514425779478220366965868531960102771060569477243068018503757564053124583176935456885188894177254330887293341119830893414946371020032366987334948190816856361345370590559952943617143140542422453668198426481069609041257559966119912481837760522087448732586147247728443055363395762169391863539136080284392305211561012617537425372351922390931152608309134623595713186809515025406024945193826212682352728099870010192438412971760075146433511716790268625896005858783971851058106943367516812756587416457623938160882379759036056003678862350794426204142641911191960009038568091256553725251054583429627965828816064841908609007221414975600856360067042236777812028605111741391882046581367450308910324299602023548415223490774981407498260072878440920206980102849480907006861443162560973338492827322605212142272090968141423279825890189309794942133432861623721909993891381734142496562304472602282377468433099720399508470493525941600306615935237378112108398109589988029042678152547716882529945732106431159387815310950913343251087112416271830229753508618359251152471138246523475254517064577300759321484048008953118648821844531694097910557499475496339336016162035953820033370203917265060633126338436180825432228864636198168859117020820087487295573142620084566420950155814734429044414891983686235669719270541254746779765612973586123098025335242169743610470831694282756569279333627172973242550519106836917121755423262359205469687199095042512466704629717779207903628039678964027301202161547396147728589098662194735264384447300019448255590114798167982047984088812548124885752420208300328763012340685156357949166826452679724744084084772039449431728958207576723731063860287302110065905802626794472363411019321235249275738192291174396319216465576264618106049339774901465752457700308388396776389531927188558296359803335234184137201131241104743777498798065435161359513073047380835858732980575457876077452993758988770993891998085695231562012180340449613332186204066807908202800673375961456308620018069402955209583097819876116219857906357241101864061115683137288724279362031489581665095200880759800302869492739279343291942840794313930430422775589230556196359978448791847718184165471974469113125897563643562431078071864786632394812038501976742624554866807419798233067958305697233429631123865611906972963848363375312608449665796419461110164682738565285052448871322999626513983823821296343287496913091528999762371991380169834022695182172006104279237778865201548177434473943381924508883608289493974367245035733402792317528513286683730499225243480483461621274077602149323748394647942984287194110810108686576012697793940633654925762840257385059244730855328513967736738605433826444550329586715674332822532990163411419937899702626146278988572773553038206134926635090207351496063761000030837525119987958606321021239585148695369807144687346541592533846689674696113241242097175864017585099139502532320624758286130377970487806807436354580168961956762274027645705337120501046484947341352544606657489152284143626426706903551802541069769807982635773044919257031595062055245820711989653475407022801066114903224970583220124564051222225588164398531504641434146046376493093876843981479925542119572687965795442203602582129498610185298496065866265356861900801536126174776016835296022580776851721964502526501382069143344902054589773825085308132683056675370959159061003351350285733113494002764648998869433032614953808425138527572741952909581273302307798868024076521538593561946704535322894846113764827973194523617403142026854768461863434317051870513656571811735762168514795292055995311318428968369329689814004772905482499584501326856013593749205948061812314229534307667872113498411909857355101502485331884632931370221644679968504566927287255733478550837725561152229678561023007697777352981439139021675841126335616583908252906437233320828370291973341486162792124503438128320709847915692557826134413563805267530880090880297418130847708195014321164023680924102045366858714963167970521275149668024351440394068528506036724977794896229566408581325752722306558228811380094561655940974513153490911476551037384571149390689962329857016886496819382118663176220522284049822617872389668969696739943756153254496169380569433422172981073200519330151350091868187771038630817320263484083052159190293277315996466423855010231336975734748603238480472448552340920147958007457006686345397939976879988607348966360078388271571249530619355978151943349014731950254418131651261016268709707302862080501334197111155363395673228554203365200459351983515999660691886207648143629489697420976503437762637160374359720493132547939456045592923095451882149552409119312368835124446103978370612680844197238966421624862804680923132436392973421482437652804128939187427463444723519439681937554563974127719023638140045732400941515349398935838058034113844472585044309506585323952681458487143735577660332403360583850371663933016059898595981430479871954776112644045120350893097547666227375199388902669739014937344585945033601745996954525979741153742446710916931318961309466535282085907603372564866190599540193453303919879040172579504829206433841597466847402400589221084096833834575992234910881362976740300932306188249124729875793085668402591107046894454641065999551673265530760007733899239799235911236456437328930333484774506939784298274239497743788430996346648447346047844036549787868343453346210214960955943590123183137837107787196007362231526292925058998745032914657991839275503486193450605330856707708252382582658131197859076663665858758559609928170198328788673480456481350415098800676752769288796402425248342542784008410281466961629789586564876315390770424674788660773514439957433329143412740649961592451224392923962571664647841241605359344208971921824848425377625571721544799299619025295387540070111241912593322681303109978963816563888707710326255411249160260889682947499879333968266508064789478810923491688268678996627100382983221417621494647927155572209269727135906653859250093375131165796206622827461249375395859661047852566555958010932681350766904550984722121524289229178988891137806128730053853702329122054484204284226104308605612934429977216928195050992353859033024910687368775522256344280108736199933141582787786041587688380127925054056206473336029076287894721842865190230511018820094676069329822336688608211395079266605166628195979245084862214253479034433529932410710423865091518770746423107380958597843406615971194690484413218038069959976384066408261280130637490489929168371774208048945652360529080142059343639041616039028523136403014301358696474146172412543620940959744611426524993253289805836363422675484893947684727021723234461288117211257363856923542428400788815566173162161730187312720896472290164576949979079361968768211488868681886188545014484255451285096867565246355148057737073857034602019585979426110566265484175502208934760830389098940228977571078789492029390784109087853912833345757369776745413163825732987024338091032070114541030680162313619621689219036102018719430141037045381373159810653161227718061123228541965637888602993462516316599920672163439118834912235260167398363172245780698149023443208140752830167421544733344892482419133656647113564845733305655592129033024026970604161858332770885206692476975648509222083509769666473604054771893426669177314341283956188553274229391098808862953675956184185991120122738991873139601202904934254950978497942520533852094049963654271321488176542709801019612841138461313382128465758554883545783649902096706286503141382657508456576939700833539068222203007634498126653057606032976129919870458383288491924622467179917505349478636561643365910994920769056948162954223542551534751596052955288625311992488037435175646944053154896510108585717680949927733985149831212222919680006022934007649805974694042437423902068055845888853765252113973290673559063119154853930555256631334678847054843278880094126952677913579164517686475892620947756057114043244398476385284662279387194638305277836231547645889677006213186486092287315491521860692045799804496335486511285136277780143736569902272211141046886474745752914038059075355314905901845920658559008625485981448332398597156314551321419390303452876831121684278168793198587425308818786281453261948740626488343939560005537621827221790413515706119466789779830271672605385344374516440110306072605399764298608606482945679663938735599359514617714680948234459802632103368092798668712979516224437130333028162535282364663923448583241726652031590557908502937348848510171197940806455941181554181556000891674631903898786947634634004514870222670112672151480415834506506539315976799172978838754392874517107701671362536521214917678344966172465538398933977838648774496625257919032584168517919776121010640131915588276109364020017445166627466694151929374410166500797626080924788923205886763036043057320076656664033481608050331099382724356196630779370678284874896561884915835809079706337425457021008087904590641849039428137466451474514131181396362078415680935007786402036519697663800173911531908363108608695486134027633552811228106103884026023004682405611168602626481540838526515667664301262964554892671488020319395374728533436175065355553068516492883369978695412780800036465155614625428915597447090390029813929518108473252759018123082376415638224384434665763514930806064482361688214824644024712475939863796756987123966736407295160216063213584557432643800325337295167038921491808163473084198147176390988888724771778421368058452915374195360001559957877621803170445726986608922463614998448783535206740443648908204572304591766841935623276163564313504760605668217658582888131595002551377271840010132272149889067252938337620837212923110801701150350536626432343083601647926518483452410075971101019931018611190030349344516489680663908294480148030276621553217074153514520210238563410152783773589569103711966121806421426445449668538856698616668070293664233109658852176309669063622252910121581955016238853968137216465355452481450674149499996523882005171696603850248049939109841225814321652982176467852036687168970374087703630161018277479813744813663712631274076692921691472345952616551256830523013443404908053904240398492566497042863047184866532425610929601672950717063816132413076814006348831223349295902191950007221738973761180025815898737215466785305597644005651075580572334466865647756955606048535350897229543615830620209847961842343466009094669780908278515004656220076415150539338953876408641649031620260878561073820943083240565225497188302670753444403781644044929643358878187518617340763398641453842737003268063727219776274184103633470482949477177233455359616333060850982227547773328735604545180621659244085592437923899972898744262554943866939546381589951321895546357386365698108535908462149014425501436838901858533449019532025626620850833518430148573192067904949752517038363488518754341386363348642523965927204072293705456512738326615186148872068917140154305504789966457964320665039934192051386214161381354597864393430935170060003075231793747136131144577937895356352127011204910823633698750060617495320439439597809524877811286096418406999314896011867005901078543979055999232029744073648513032335592164351655540327910445495944059255327330448924027151233068894106986151880183596192066790398689407185977973257494151057179287174307215369206035283867951573110743277664521026053444254881907035836821259998816427384393966195052993460804246051008225831447736880738589836495632410454333496376381426335309648620682976465553727625153492835863541317961083425289822628792222458732639101404068215189534891982420095899475064988701901262021105683671219490045160549071237063798756097127071811523507615179405518482963224341300523029516623488094901446249927919162943526985139674527819408120501092050493591535425864473630776467829475683934726935868391366695979654886651396245458016340193008668125379661559507314118782220363216031373559114553061999855600413906185195095245461113381058962514650604248681651012263090087232597297988620316844865143094988452840782036742947649984612265401029835974015802864393587853927139611389218426980303587753321247946753035547597426323874144307457294914639971138981131296007908026240318570465420355586954371639871748846256935830108164811930332973716971217648698215760615407326492177821909274224183599152197206302020581612467930796751455612691030406157001910133621087945139348432864125878701762932312271948697503050264505973801384094129738387744206181469594014727531116507210415063118041204269680395836044433545756172277389480219685047528514882706994902294806929509282581863375688385167252263650495659513762868976893566517925512752532477234321475122421072553143495326133789139228452733023619384585066287568761907094344096065752129992438133143885954435610318017644808008680967996044523098042112133635702050948875481071792232407254700094677810589377147701098795889139046614799094810472113805747785599013234853298729135504260660497477903501166057087681529190518895660683564472520414554695085250378914608914173448068663075069019166516404240773038294642472313017171329365904801709684362848428536102111735058457406898018813937943600919506476191959138771620005015769973982032220748860583417158717216501024468782953245853388941411257530002824590619256536307441822985916721756614325252319070551709902436943699960735565384102243708958593631584109959484422289597334145205045642633161608772692608607227242759001425588100577077423273732616105046395889333154639161879213581709501825336339791152257218024426424155936801092153607925327209450875689591719527628239960090351751260238058932645279222516621893181575292644312029982151445528342831364376882539274272807452508701266714299437672454194747629929444349331604890989802084981841490394953564153693214406397526378358010618838654458145485049673691675427008913317009913396370458708651132406145074890376748547911308328633841286764669620286674903479598174892778782979995957316832879674116570058125700559671748984611331879760748348499481093700107297728321466672543559344397755421468213325474458673667714274627112902594107188062480168891803248932760949849751292700308407796448326246856412495698659445956905319012350374367245136959629636983684761549420911152609411169790970667627233451008558894433242162757877422190442225810897260079363169744018406780112713043255879341775416764228982770621496774527089387040252018182940833413837697342117817381447077711655550776533983222188865851935847383942758139181002169156151947826370278048079006450110145417407163605041525439032162302047949741710112765055568006731094918457942187379526270744671800924480342017398360850060280783451671760621029186923839981044937971683549626935413661120533352577295711910367442702807233807261231296711967686549485090279087524910243935481560426845927034620462848320332797432362180053830340060267036000840744646694816948126891473035836942743020527043978174968528381229064122090095566879611688225787161561474402871228830330958633609622996834788315870488609560968534400570743903378654359487886809439968385260175126723630913339626847104106299472789486829546831385953050469346318107112795708469506755221601372796680524487134777790952234397900846887672748080099671403038092943956739467229111199660971851982009635246867798865547583541238668441973853890141861605690184548024059737518903164882721227178764147984311312459533516297954459527341184926466934531510165529148020097117172873126333312477420845930932284153272970000087928018071234023000035169425408097564330465499604871053240640984912067474931983659068933785764031594241042943738440992465466603700955700475367635299832811614788522583681639760644318546092127642729746679562918020847864172064343562189092878486722871821569779798265634241352854402973434486935868491122968523033426949083755316731567386673219139969404834628094686528040593544490131110232496962365220900482498496404165744897720616202170603455033888054348289590811111882571412870359915773558779839086222692901237706934390874621247822544685439296872633879594622582205765988525061798457001979804932381496921921570567479874496960084072766946442874277548816271880934834668134949967985595088079829191320308480641680478742746435344299815736101337086679614543162088254686232078482302338208031112971746916026652925153367422213032676151398693357666440659459382468673020500135173521317352736446136156300777175604514589033548322081700601989279019661879088052244777687692971606781237864227928627347608328680970165961339928475884834799193365391647021390525543327131251519629499012584315631163181522611825444871451980309866834721948062316009303724225863674390490644965870002159053705651736286527214592613709995625958846516941400313349149712154505307305806102607950103826649931937113932168449395644287532362394599067699007575794251926046180487959867418207793354874994923667961287118181834365605626860360385000948891834692936837496929241414594385880156015762383845701553691858472623528479977218024906964174917386012779592287236303928577488684303986315064524193125149546099449714761283625901885954441922034870325836075672139846731604384319379997709491288843471936880219056811970174763781892863057204423208956044551648694126883675986443050075340589205917639657513465597311151561873206832160712202806293611031281810441766772344823700656785286819636786368102310817912915271980472350465495578633806188364628192486845945966275077702740630253323716738789270057761955440196753072183759349483052083214125151336838603102625717171490250003939453006778848042120641449064637043906281853774393406977157031798334241695653519460694614250917036669108778964539428114693095107937943896242484014738093717717844479340268679737044133898658977160999960372191291308198969966787607492704160492511307561603369934721868032710885499061823630070275107920500182592554090434009795673168127269978240757655321123430609481263082658863752051122490821663890922501377279570463193362720575540933654316192504148203616854883319150808441547023590416255338682320823700526097928600115363426689961573173638171451037550688979914661747724856351294859784595656569375573464584720123377074160868816482098042689872156576406929771539052477536065080405532781234783901295571724292359135000505572376260456376822220718316117886021747287929494044554191939911747027588206710970655461874724692736244763976947208190497256750869176044273174013308619025877341912393077529842486388615537780548643512541753853854095354564727451062035145327889640938781686636142593665281741707401949247404593397641793251815358507128456793154854539539599624741517945718579638335113987725212982008601482899406864144209557967663325786109592317999010465575335788261178959392401713679234621664309193465634158045482908116933893890404436248165116822558039957404273843250938361102165733220063545569364860294879790741398829846624124504157858811732384878218332145828674545004552109779418928029277634644817386984104662002491361474830580359005723844453916116092098397936852111449069225946178495646701825301613940911245467649351088706238953539954700368237010077528079888059765200845608090227263083695258128117004387433197305036211403937955443279718047077635821647525642645269118405901634866960232270407379510849124454946483634397025122246317338293361621569672966388031012471192024420428330019946483377411598443861776873399441057538801895299097635921581781669790559234022097326437419281901007029092584887690446662024230021498355625486766168506293954890671800503691825570756610604293213824586268297925663831208579851067218172805102494740305151511455747387620743151107216797004753665195715094316474442647939662987636620354316650843470369694833664474525154229659060277874198651212209059648304063211286122388498994268592900324187425877467496889484569881511495728957660412386737266703847580120522334796937354925205958019326458995760106644795233004305441129738884753874693763380269330366505856203758234789978324372641725759109974575144721780769536237694997521871282976960613785269738794374114894676474005666341533483827695172792444233428208535176083125584524547552268435011327820847115208479386249917371837282555168931664247024672590075939107308677485169439142000476869640121359235476644192621703429551308855277905120530694093635675380212556766520513338057426959091546187236098175599091825398007939169189362667754540703768785177777735542156017112905395935320329135613815701714566330919844045533365006245685075341548705067675661736664895795584707240345562557770314739985437494255223589022777666908647195980041134951667204399213222471031922818263330497273472793535276119910426646366532199626228423554484569788518097633772247367042421991694478322029151231632466099782612733042085748293145855154156077119548005933558290505799689949279868963366451008547569276808250264999705236207781104713837692775922685634511380635461644215026706769503979588353718504912559881927586071538676342201627805560241073936738058328462014765939712532154568639608430670162374460137165429629013311749887849407064635457519202297880182313504039253392001749692853956111868718890131380805280457928710151988169565427652095884196790379090671724082139492926799160751097784023740674519981372656023980509034339889381467977480741112191993770785213920424862326016396956813165833518371671977012746765290633191864219055817182786738684476150277097736082872582364177890162761076345502146443894858617881257688791586905696853843712478425464581989509874745609826927342047830332553265864956302192337906070265849317462426572408142245491668973794103302921952312888500893121313812402724766489007078964422445521559826743403858292215597340081821328304108602463532734580803064126806075972635554978074997913178496913397453450260034531262725935335357004758465016643349069646907406488356845099547905044601412098045382762116359638976582969206064108012019312838721805523518875517103539985049431187532386657295997871583331399208934113689846613007133734445919237268421704543869881752851191103898580386065609318009967764858676434626513339167259797778526078756597800050626250006399601372463370817520960530771914887278926479510424141040326408674833405425758614777602129706315332901084619558095183120097208932719723686884644038298396023210171193538635214677939954803801844896121434116954585672697829690604468696511386637634750473201090272636836087953840593915150775926246514463475309252773005618659407562949078461981711993122451401166551009482636512025931690334432903926094076456228449546227684448253737049319655632713559788269385713572437761176135226332339695894330914947106379357784683522512001974463883569051416698172614606827708718461307201285077134592664564270400314066198867175143509439654599956492476340539668377242316700724051851702880995568750115484147278483173361595400240750718918351453297700820907831173624830737100677165882229187048735709300239642269181685211910295432449015958730465439237102864098846009690607790699082150230379141746790254622056130496164895940895149846166681694597370088644717983589959076820523783573472315076192410044383572245659997925660561852595705414385892806210250311324009077735024544108400766084503305370130945775448651705506406956642162459768351413681581155128025934897447746522937973083848976277459770960600641519252170785414961384459103253233079045320498027788841528948492962339124648906892634133012492800265601455790433450212604084561148093303849940970273465528945584680915961414586563805338992583089443729611782236350358039893895386501112025866699848243438307275395798281541483002451176865092984556606498040284140255768300012423974282504443106004174169963600121072769321518344347369095055917430492006633609698849594360664376584990076590021605576283195555120822779855413666153078878648019238764291928949546936743251117622450893149528493401630322934763227720284044227274416609681035849937909599505079413452253603081332031947946290324495049018191282472397946613877699915634834759407404360237996288122158066448270924235803149072017511899244350827066298409532754082536635131948312192006366080991941571506635019481047752530738064625623522918422693076247361230985740177584981292358940147040994317217233122346895712381026856629231310107131602389203878077540353583487697367521652677364358934938323806520279001682480284462391651665524899254882447072875376863306678990105202819777504446969920267988749047111972674038829062061627297029391238852310588924012140273497287480694364357410216918284103595154555700889136917807774956495301239353852416067749138515740484907989673951066101089907505193223516361115205072801359618786448949313582276877885506852490983118912061820369425530371217370963685197195117770215695854743882669157193516963212447700879416489132430418397732560915869036518493705270113063500541023987023529024137963596068716570617153291188658046806240436595263717693101698174659731077699353776114192630047660059866656228668777871291804751987363337698950367247178515658142240244331797639114672526593039121422681382716177993932981387144029101308609136542579107564663942917211681546010552178159324169425415050396269708129119746600519689851873960570476273519661931529014954049931517268662030605858080241975690381213591666567516882844701084768552620987004243022554492886459999932007936296463522226900505703352082053275322592241271211594900663219690662764945372201978861729561595786295768003289021676885796928342587312682877008645021216372400665676836328970822172846468264899338004215598897914194087492093207543475610883954904664617469192478121125791495628999561074588752287848730034155227786779514279102275377750558071977116349622619981691892585955394776935082697276761588253878365903822848743237598761433766535836947794786284446322122310990833100319633711343412945171520549469602764286605999211338814879040866597687257440803044087287751472667091775266274704197291170456672338666357311527225305684041757073596445405481762409672663227647727540621363396891411173386961398674137040567542678422543526968191569622288096931693761068941484573639432549056393503109626207183843613891172398295583226255390045094164956202260502841113262253681923525498516131178295282345573148244048231754648541219112553114062806496440216432277303493542634944274866420768127011477443018361328922062805979766260500615176211697035909560175309912818170178188049200721272507152285268804516024009920450318615823145707438506051702123695052673100885246750763030982170378375915123965984775261502379882469093264810637450936937942671969061184367067495583733834782062777664417458045621438300496313514175703218331151792366466067875037725177332420776834095503437945962785122858771330135893167473307582619082329650528895027242205044432554575988367557013505441892261832863311809660039442491801455615478855130804350781629022516543193750150196693479388015960099650747690093498076943565064406641560045731614584657598388744025337080776217549626598453054757556420287472853817675647176342513761278387936617200412106550254075318869978669737956999000584980955623982203142720548161422382805760653259468808275290765349323440429607814203417971360874612487829418537921024820685323955399073722331074408140627906627042698837611985671548041329926469309268845546365452189093331115426318926256615877817307058002831152918403531138627987055278876222023197967342717492350039748106127902205702073073646564139748570198327178366531011309379559168184219384595347525720307847229174010031203853294951981466765393774914474470518246696313585809180460607159835148677012523366514819556991530384972612520787818615831218938561521089686771678439667277126639305254307743251572332335933438612058099960921961993170638964619021363820636377775021481378682231412673743581381630258391086783282719211061781925114155637938663108840437659981520919021023675464742792227171106516047150386056921560870832044055545109462782106446969939342936378189439861299605422227311971174214821213775815187056693565922880710570286998473760521178852830116414767512119046175545730348220065895579130538341649188191895606737205268631518950348129415773600111219465934338434271067826986396723027140924157230462864641119969332071737538596876921496463236845161864525466340167217744451938998884238614425366145038826729041860900677841640981556742639852769890441441212144153870428828449269766505674579568139829073263500623825672412251705704949458850365409982978824510541840323661740439272006117908652556211888569739610663897950089014081409553662921191576459498630617901645830464229973071908129302396037871917107541126991216748324523105920075938743680571163521191585910886662666483790148092689735803234595373448850569721260447410663414341442156017882878914074711339361333527435414640038047827217527923103549183169381649718318885085643348057854354612868667137071492994091469078381272301397895425131599183228790303568902941102876151640066139821047481097308118395851475685884091054577807866826892993905166558325720512230267003848960677625061114447377441322350058908294332181166642182572574814099900284239784162183403580487595608161704984341278941244849072767988914193798142736696106582304151315492931237680315340842127428358882872641350084385312020336303881385790242121336807484449818987897972745496486110446124116777731448850468704551175787076569058674621565219607943450208282599823532505331490151740150784849881076726215524704758640225625688958661061048742205919419376352414981149914679824502655967492719440028662744203190526009286678468489858810337393796175243963928018963771984215956960578452584389945174614659901389895927939429221866260095811737824015829809748125074322135496376701291582207273594956899776766472894648289569344080160524531855914935838364492332140329939561009265070556082115672945705226165200104467507928828959892579159505905498420381841298079816952976316843375055114912553871518260972579423025081308592823031244727455026086885288733440227614944384326661581884244363106676830622636136133558157291758243028854591529354471149378080094268810720898009266375695620718057257311114810744235885210592005616668233372145298029423086153926324659399221554078333433610802887936131509813914490278876992147070454971549016141642268812006677726841111196422014448183448261715418406051834541232364339102529339445232053615008029984234584363051216623318700940287683687310660976174514719526771241940818790004596918886464040922528710458482204115401804722244377799624565913204639789113769705166628101299374022428766439654103603968279808502554966394817148959623632979672012324879722184802066711757362900879757290669616686933917666943129195971708219306128700391725504914267025884497941399214760119781643597431558696373620111480947353476914207929506973279827421349315869446288985575675813520515138060686166001452678941882455137589982089860318988496293154484708669143365734512079888842170573482448924207797565309668532794372829343278199113206004184905443657690598100916086065744010624120725446187080786062603448402916281340943638157335785025023843144685962049612404541703069639801533841120034985138881195425971364214086100837216091779907995859630566347769298363850953018431235925142321359492496942957780541057189895450119582520833629700915656118063430371722899197003174495650004736704704830170922761532864716314456912393940608732117443519407071315894637297016911571681481925302776672997595854126419083834384830950989274181278773969637958863525158989966077641060525880168336773039506365947403999493653794240394274964058237815395577362393402979556845152719711653014559883256063898226793450337158546000087444289125378741775244363574921896126795510576492675893321486189060151236489396340874387239304011310157603265636239145596480744771470007744880651504043096192979284498918965613994319433972869511519027498231868976592671868836276720355488810631254081639937173864809282931958224704188854917103637841489830766614322778722455778151254946728299406481336194057397372951276246688253785319632560997596354421301622237544032743535510274238935325119588252713756030488947668131629460458579113978703861569192242012042641690626527054992144392326128094434832510303844223489255276859632985549819133230033716868265265784517716303149772773699666926253219750890002347722044575513741759306603203585946852719236176944279397895671846479280141259120983343679814111754190241983149365649630292382345196596642695647331428855226334297247318061259411051332428784115238343361459198151979344606540011589118002433750764123845984836987196244805353218381146323457488956331715221146778435640382483739551618517606730597033671703253391077426043809389663883900127266856262954282870832335264669437978797324538691192968571178932736452653835267844958711308840558202375978576470310682646299249164153247355004789025273612780688928919921876479911122868553291722585167702547883414726935258640192894796655890701244513118584347309190612297172855533454098324998913790808729736191504417483992927105219726657085608560641212139210120518373325784298991742923029157086530314142195375093955479178081905948577201889751316556934709543629328561266377468299353746450563170483619153359742387254893010906653452247630356447733584743905071406526390351056995018900015953323781806944750269404466311261855259901212797679118211368630544626182118683683719620004789511858764233639185839250866351691313891642313459877063494509254786045794880309271029537369868027523311674697878559812486866284267252433764956725304347493270530769707899295545930133852625887902860227543397682686709493400434254707263956705466915713520176065333625332600329193010953537885030302284261558841917810165288801906002563086607222312909288383006551950359100881211344988032327626311468403927390998910628020229585645772851621556600696066589246387816215903255450924608285842680510637036956311656381779277465081249539025767554246860920926288620018012319073358414130810357392387105861012330254280324246019327060156649443635442387584004857968956645954989658546293478105999699506435702049168558346361787252498310228077736406619777314986711792122426576364930329346548852659566041468550936221019795144312930478428436832035544940973360615912740633395315852954747335652618202186240874042618310109250326486687048636022449121443836927075747881603685511030268680418462830923946842856715744481997357895782330127782930445945092085186356791371662309563172514662801971647658965459558068495453472966030125227442387542513950261426820495348803468524443023783456724076388463702340055424426521286621187148366504663297857662835609262020988390465080741256095809396229635844463660870798754535548104262396605168366366583853892497238369447800728336997441963755859554044606991295511108327187972734917611542093356205753000661467535645381508313138635228053638365412333691675520088272171165415649801352652732025796396200335042873585544623322826757208661592607107670846572918635315669013384325067561413721136261751000399411544407393741855922899933620588010071550943107125041256279172426846750382872895180868243516342907861409250240614442129254149840555820674782188039314150242451107959885398231763948666700810623740887602577502663827234941629874739438987284431755697953493846242145314173213703057840631224423259329652081458097193778352799418578852570666524890026287052538807898260459583353518903024040189275585607726772122573438258211381742558255518863119212320307469161724675133417035932615600089676901806356849592191764937798228500388809307912339748582849424367475087987543378244120262043313060448531264294017640594674391615186985986775730490422394438123327625917000846790486631577810474309895223514466921388918043050490189762762643748349293279649651041284897369209972820989659731908273080313571533017752822206955552208988472935521105475880780482359123301189950575442660729766481935495824896424738421407120463741137013153568017002505430616743142638503223800237947681650774116239241491202895894068076177130787890763417360386056200677064101275763738805564978020605041878362116256312988562234320035705700950137277622751747746660206429339238471622880655370223201741673151745273498257030508329378528160499110060639430993054356154241402201948314953691130168503239578439637881255463997916984228292771791647528511688083664217980594635172915344936150315808664070771210444749652612347763489289317686710056203292529461273331818817564202354076367378588228009250845518920570801980963901570846708741668049132126150277701645319742288477918286333872507082868638346906712877523287365089119442377906512277119263745280962903775780066566728005361647331020664008730510969260974044993639817040087549840209989695155208621355329666622687659658887271691994521275835506784727115832104377122411438435273988749665653479613873588671746102657968927321235668744804572431265321178685693004892160713479840653024779304087920246549481184555402752527894972951111350770190968340694055832616993226519467799322101781001435567110245184024562109491294685203684629754345802773381476486162529993118305996238182588696130886852301254120671532369894350919729795842296330858789275989765898674734576066231241437206714792223618000069895794515753990450403137402396160741485292203643809990946431559921287403781571925520284403196172040444534133578479013289167302988184162818256676075933044227371426194566258404187566017581966581777721990892851894322175494896964892285087204287489458160823797532149142162786590121665027309773765318561885093776470663413277192084169287396146141450213053083760184841198556186691552076150277659372782287662736362428622136302909426349222488617676452845627951514650121927975219578731454293986299090054482792043484950384933975008552350351299644277999155586071993670901570414095923724247913869026171568338404117886458670865361381490343273974141608325268374307120623414946464921826626497040447143786206469471512643636174712411122170295392158896383468587421449299352786394690088843588005757318959429293115111045880256636494839239452284848899169749032312767638783335645348205337922341266196107065862606968317748655031626796854044257358457042968731126433222027301208045203605022131396001143972871112165135554440734422920104667108552902687951360627639210984786988723716501791491901135285644406991272333047875132542077068796403610412997193676694246716687634246458331356268946316883040842026472465972131752232267524661068630205481713571660435778040030576564361529317520111969754816066357135508952599294047471056432008402261175391707748950306856775373701125571298425876518283254701440904006497746567331411465878140036668496463010347901448893587248653284956961026247576758938051268223931119393070099424568062803417733013619738015367284712352812230723831395701728548493823838817367536582193828503920553785558358600317691439770985770356268887740362726043702479024613115515845392425804237028704084982758093410019848890081654179958211243902865993416212365110512632255730808902894208424254505809371874332764165638819090134708341626160227220281770084427501637279642673203404282972177149062392645865422496977561342056713415979814933872212413547133562066009640410894866951523293284497558300333832979403144050149024515537496025924400607241355829945955312658705033299051957118064454536249512320688461126014400169324756444373057137032127171577563497621639221419587053399828235958373013910017429223894002072774778212127749299569527213071536958439100157319623679870574032877002543677266966860218980302527770800414071572761571335858010420593568987256518834567965034401082886555919166384619459586956723937428051692095028323380832414837346304368997789255056621468274974052554453686843920524626959694258414994333316103083100738129017518605290035509172341794528127486927386136708721646119951102759468099652879025838358086979965521127351981310830566681883414485287522389983068015973201480810071679106896237669551215257933265106825346768486178337935814417736439440811372155962623104016549011466412621884515661468570555277958823641450361563520576844583420537600392688670528765603269754129451865728355984595119578882173832434194097726097365935173391565699388485197177779228814980291012757752138858485864428487674397287574793453515868894894270509620993867720817687870612069401858335009016952043098272951610110281161968829532486677447277286310981019397725761927742674828707755654809879765686114361016231728828912660320342224308338748714645191675546365162529984611651337825539545833687117409331746564859655279385002682562487991232857231620101542590700992198566813592087254786772358125902176980410786952218499000658043382088588235667755502126918119260483716151972653640222879658997453800548749446095855976905584171447945091631329673766617951671162018662345240686137051926266188577448751529515131632011846643425305123462829911332859657399820323318552666038969227005249012350094133221523206883264316314222538195100858687793229394645608767335483105466923787854302818469845809635417142958426742278156916471304634465526377472670000387792156823787772562384292601444921031899411042189924532724947398671072951660632359105294119094760780556540067953182855714307400520497981693248197718723991045349789985853322510435861276885580322247386541671461770884010470730780404768109220848520920570010317964595694077082592065875195996359763086777338946331394731992190411592656896446592983447968659180691016506631049937476393022236116161358432613460778771783341238159933333777148633520079746350115623875898336785725761345205551095773851396985754956339535738633627699268907653431266152599658607032550643982212980869272323308252476525790320663642788806201763273037609699226336415912472140740764165705412218167423083315743572835661136685469474680801612203583642210903983480116452994822624624949438891444820748877938553375416875416986270415219073552665968664896966114480885127439045888156457842255477948583555321685382982496240727980552326835145039628210859825370143753885286636314079813272260241056633774328609739228434662474861849032234312753217121834965695714583085680990375170891618707852093673027322245864559937352354746692939848588752078099674964886330345307278443994661873149170724920742585620377300024509971965471941401863295803754549168597845052474453990481770343149305010646879797486498980623915546036978682967574309321861783128809590946426895949113394249649224970490757100867343345742202120830835149349019134567525126861495522224046027501829119302196775909481861381142970005699747011466482006485906957027914499090604542449061756306943268216484771011230603037476243607445329596113845501964729059500305821409846235553101897815003723959356899003723193067782367411866058772855005237478320605512822873888937976890572231593936977711238687364890421789623679202742782379072129007764614472135274339455654659187189422263680293763011733091320639531900030658991766842454107319303936863704304629545134342919356227815272079419246949723468403050855777167257822843041289828544892006594208266454821850874565336206129433645287833086788415356268577307136165147914167468132512342186824496087538230552068059563171037614399700051412583497767250664865464161428483883273519290759448217066857359873417282843012016357765954343770161587937160865983569371715874097091019308854068447992182327553579327236208320019410564475135148652818156682786940529898776081979812823629239999068025283422496520820949611551079741938907265659921788156440831504604950105181742846434343995282836887484108331448016930542096020448318931776286903906309647418027976712936776109852957395306404395674350534452560299698937778733252542860344933614450675439745208263211881871878239299049352854806833515945237000139178175897844924124439893876186584102474161704463992908594132426721756453795874300871228169846055165127302108748106798406665019079614384695954688833560852414585624386459016117264816048294189546315327343952538143647477684971616219054370091109024546138945395492725921236724507507123153981800266756692923773763145388918521857162017642639619940475253138699219710268475853336520109908652997179917250520219387058478534525208493903930616801478485845544525726705377202422909283062546464239262826386523123629549308327073383229487477031611420393665370795428858347806564106286414396596489584588212380563301600485156920276288060558280928242870162650710725144377373423110236681976437681133839453302422558816461146209605026065242821080725355020140556484796196427091728396637919077370883732196429524244709252632585952332057181496755845091587006558857008929364347112625617858452259221195167096836797457271378120253533629481042365500159136745637222107359040089607606661964875941259638618190056448995924681799577392250398003639983243954042172578280443838376170959357278156274678252653147581704787010522135319413695021801962525032287065545135015160942484938803477749360577612895203419433173814900637050238307889352587904093367716794947591403700586739840489363707530882726182254800646345940610521194530630644221411261036405059231892406460203969796921431655639275193588606805415291410195529148740182322051069805167980776735284783662267044197841338985385565466249033899886440624484968502081864796365406909259945032905227743105496497827080287287597797809484142291195814141533061899640098508194209752906723932768402365584932088815431555847265892843105958998525565603080374453622095612409823555942647899190229479296190370109868521088813192352068417199506163462392209088580222983910753085597603296543495405159551696256884327642654533061896235909108124314694395961225763324576112340478334514427533654893417832694723044578989594416117839704522464440830452426781642483965163000812727954505956745270942914492236100722696181776061831283231615026632143330798560338475292911183988101290424490675486032097646428231212718719786794388552284558451716767181024011957240547854001629341568109676357363490811691747514054635228187159754053031475477621344321056166225483555350684310384465041753050457837166390644667780739976003488595609188297139822599905647696045981209117840496270538116164878072716722474961494472695652789835539356563454198652721637864022852761076600852088666639458958594121656364413876933185077526474661285131227275827551743023297307839230952443487225803717567612397427941948637833193598790488872654114581414481972543095443547356144148812220001178623803220201869000548388827246683929396434664000854075712449586446486416755225940897347180385244692112599946417473568162506968495501259494716046410594000085874416164997489983963099437642528135192127981734958492861897228636913071286495351361110669969441721054845484332955372643197409569690304648458302397960586772548814900238811227086378587205980903693751621601521802348305603165189912947798565901954206209637581501769684553589517542302202966847274493762222947259300820868436920722083257809794116681272122978722085447583458957906084729723346704763151814508916145089872339087143002504896234455266423036180260607121879403054013415004595605026635639154783262618727828552524615734180036858986537537581098327879390006936589416983667648830260057690473836614162814362055373385820225392893350138228749775667372055231724955107103233300297586461447832323335350546263740508277723878680232934434725354805274057150541946323948230500284636923563672848535817585761781837571853831040420140485248547736098889052243922335955749374291331215232195221381254822926080051006137954286362601106777826099312125619006854054227878689753972563610306292993953860964764299476019818525874231465011002443137899657659635084878586204628987376921945906983707413289316795185142156128390547488507204822794358479882484945708158696189562628797073426268428784041694825064353823956240398352623590557147350717172823268278962551316868818675751960255755073636299607123243938785816961272509445770284467000668595908184922996715739552933700559957387810033393201532208918313759707070808229675110054589348024231154930432604762874813028033130939462915459419484698929338090057987308214689200145652578325159717813925992334821662420525023198727633977584733179459714675833266513510830123021341110738255117808558280261698879645944966355026255440876005450738204922982793305640633394693051490173581809052162115520578710997886468372040966935283534108128693965372035636333979691669349690823653407346209829007577339768905020689182422940264729685766417981165887036026087155431820882687084018774145648775884101447284550545541450525161440486398665095374671525340568452669642920483300718367603172818248825443218859869423670992516757038609185863437665730278279101944301800115577517966693214428062729597972642937038683979766417785385804968329743628462036824107230436481112469994815830182310793200808499629965940113909183436411280718013452811452547120522382597374526589444348764460594654594948058739001263864137273224003771318504623653675499219801835194846451248138899830459326275781395026673122224675395514652677779782557672729041478712203902092953003901024578523985134305827152346632954686390881137205533426152853857861251718955789893380740364238847228007000593287698094391163034666978691652382757870271185071115461416370946048530808700082191186492582209186594869907364268885186192274842315074964911401146995528664382411662085522533391152852368913553226291290147784791185830661515849966737257969719710635104187587773890605176465658753490082392129713214831347726240020668786871839077350095732307121418232426404519911519024034461817020108885620985950633947105779541307362784813163051005370070050530870447395332215605416225220877734087484032376651210351993871961113472872498346564302152704801398262548314227172230168017420006668076772370548482441327405842483368222703331379412429265250102083104065335113334312679437970854888252575637095931303575953931419260289432033524614360870193416916665853680063280660492656664458680802955127036578304568505564741597057163428084561902366835772934958901814561029670273521171867973524575408863186602564915442408872872191947966442573585371397428322214531479615460423624406496063851262474712221243255516306204731846768713221074444998670611108865839411363447496586523659884291449169108307683691918894919534544255562844320075199072034946836281593149600900563731948644886084699868319267088691312708305995117962174719548907079708934958688547165578014665151984051207627501164062412704006851699058374224061633046044941712706715283314325597275138668973970257194316952814924219990394482426021681435337943735085838597551593276910205377551948521050202376898159417953421023835692253516201277446666984123529071918431155155329781251912775106732017611086439392135927409873079203608240325460244175237278118600634392469667370388634620594669619068298268681200041155032845772979949696384805600111940180458622287456530857048304966683644565450087694537119391259650075223747396475732852004847404894651305038312559319244022204077143097434809668111865128925439086269484933952500508497041545291862446321428027321854836766938031710064900766178587899149087356194782028853788759625556143643024918599655194863359808124415861001467582605825522577203031981757479509257244974304424831201682997488140605883557335628302754302950465227279278161183551808486620816645663754117125931571720383115496447461118514981764039784776461593675703104788838516129538797103333090487714352081783103218860720497616431092781654657359374920402144992676014726104047893645863653668639725960150430239320421707772387586087255503681037337195119274423213143446807813688389790570868537188081252426072462894537525238557042852146926455570335903521779842756233214465040475200425497315440095563411846568936645648158418650825342331778542690231049839469575172146482872101462920027090450626891149502185162519490071570378936832441724745874414209332615733976541563267656495316027439040520261304892422597799446956146637259391932600659905269795754605345891151788655204014163034270215122811204938464491883712766802894062986845551856032370122117049548597661705110776609077458140452139971649796567376031391457333937151550253074074145727749222533513264851907890602061046232979106508897612407985851414296732443171414705221405233635949290278287553750983259956532812306547859428842126701521441621892168578845727546132055907164751904600647760177617305886583251671212029488181346287871778734450435648366815177411718161474908275005469919950679352393531306216990577820768296331721278756959951330696349614644320371135212292652644502048206082709003420821513799360224062611276747855595501363850487333220164513323570453239609385620357662469037441494843134956793443446690624446797451463161174236239372812480198349790184205693073266295098476542322729090597255028922388446559433413886792787446865024049461098138645575487230364908710085377299607328819924230608401873634221757796138873310726595215956759299036163153193108895400987611076696504640319468123582328672835161005303596328242234501714425020410879340978286231728898488238292007031843505427545574660365624161404460038438570229737962295485729578942891772429548370547530256137696214647615105819581180839137140235226895041349673202957913648066208383146803901391761991658149680543381109132643841862199708263435544449463598418790713452679478374420079479833256860552571076410470813202660207258504415391839648746254905437858885100632921288565308411518860077382283743474927073303504234090666262719692194669305372546592378609106744171667888291009976063627216857808816173195115315250588430409008501598611992189832910698019388601039243919917317503257858156901438643902350131035547496409553660105332373247698546985024525631306791043756323443113244559728779962168143493309116088851815930405156077842529936500750719921025648127434933546023689900536468939518288088084906783319671603571293858909605851917725503336401055149944332024008502200305160145633530904686992449382041555076635139707021171677028628249887071646915573060155332335850910086798249522093616820181149837966008774586266097041123352185769722180966461025653818390237739036852097853958270370250930712841501191093085520545050541364805912729711951290854228192725085563317971679937849027608462353660993947672982626667163563757791240896814165074467991215125348263828705121444048914351114140612135965330183994799314947292948473554246156809081387680405040097373589867711457046894774464068255475722610316049741297425659113352713139910284010650938896529806389552653390650571770123653392994083385759645839453352851741874139344001662764789195050965938537175960096818951298643985056486767351335765840911637325865738230336832881236405873637066214250351904445627496237394394377427801550881821818542651471295286848715610838399847247839005193155671776848225420312840218644130384413207802751413693904379111960288044812411492472732187167879195388522232557156763293521357572383468278265028379372080271633779384989038022347916106637984376053080885707139714577178573593636622599042305292657987921575691444123400064803948293435121951004745297995065221025155450808515877829517337893096535850623315772101903493315982112890289687814601102521762631945103126139723080638530239887100797251838302332768719873418734334895741398131872970351020236781529527693551471044393485253877725232083801065243234273746527134694408815945407667628375389282434029311472322661759171408978717597450933568615728766060943900471792814585695845244456012467068470048677208920052462582155897042348504187687607912057267573857300004580751334954992075452818004710882976644068885200382605773453053289599552000175974931552180026060919305823676098664813019567515736984445541622945418845954262739354919862809113598051894240083305345340018280143209116051849474183976706520516056277873225653449848617336472528703005062392068435809071321387543900164387741972669589642118929961245271134712064132878864571837530601559604581042285431922104569850193710529142481183243863081942309249775652536049251094639125670952367236116512577129597707649884100311599608105575440366113656291654067739327934256873074136273030722172891148873839078883612440256723110745855257121738313446658905110254300372479492330915602542458244241187262876271474651966425313245221450793214016696168795643667129311517627448716359913407361548983038372241614101270046276370420716846146253768475486518714345465985615365373774636923673269887234027014221536092717226971879793944533587813948078456850956732141204179992749281612570419612082835145892061630188433003522101979224969770608087923376477395347152131638383429687818055509199126797378624121327421257736689303903151065690374511774896532526312196231978091056529821717967939370888494041661071483543591640926233903194425223578271876145937022902278166568289175222262019102931287896047568673430338460560385055590116688602098984873700883897195450086482902472145552357310972678256745981254587326956910922084508977594464507313697799774790331488521513154503585987284031580669471648801518283469150108747689400519971148412674843559993008359745219019098604982423082050494352952960370487187031527168005283854109165997266629228132487727080868918217039280290252905482913869280883251226005832245573251594366214832281977444462065110729723530143879524900130608663332729422686800609252695473421858613024415415627541811314508057624397733064314018153082799698071615671370903162743312542551328408238934342903214161016102984508467266567692256480852072945109538520480711263462141881296541112858952794721708859660308350995519548919394242178756729159245785482239207881805598755217945578811028152276911160823154052390924197987367666561302742313473524710113227789638350240989103128194794330853153560808921142219875143581661380967465298037600761733548697534425183731064167988078587060014810870509537760883089024643551626618585131068941797687251266592443584046825728001545449573297840566717176454687524491295901033903797781809244852100069246348675903438273235984411607950175593176306565483695259953394055218923657398709764044975850728631712181083808702631208234376880146670098088195989449731018860060121237339358634264576839657352647177143163809434506699381483229547416505423380415161828387635505700608582485233504344653459782404427462032582628388390359781481930844305544887898954681725639966050468282173763019340519072527214239544130895273285057148743702062503342628007927510802282741860330701239361699704728634758032803653126691459078718838981159489539883388780433547966123967277922939444233573575647782175231779307487822541446623111646031555428710754848697467430158159594790049000654684583001393593629579680810018384762207104335170817004244416367590685589420734473403591892028938297797393955893734921788325708706450931517733171536744933618226715225756401612005350213270467983161930604078428717024175207435292192733816973534081409477835173871030357560380309269732894708461421647496029526746160301588669722846372946128206084075577590642582143351109296823663149969185555060148656762249973655005498575896725602270795972525108721274664490654972470498984161847855374481417038569569812046544845397650598893355945259858156125521509143431732798997359956490856148965568366889985017245593281394012087440202667864590313816776855611220251317389446564677509317711770566725618092498886538836743896838688708867679954449173680935754161841543976131185634243241782611398523826761505251408068742057323339467440143722440726190758574850945709440631155356610179077333144995717608482321350790751653927456947704366212686275682084704238891171732133336826226154032978496164453831937450289758474706232293032220308709988961101998656842354405205521830271960897898833998343350428253836259273750451771569121182592446474596604066078048711679216369999398955129631331171084171513753762328195710925664256966352346514721627770508260879395096936734976923967609643408956473679349199155358990672904035756100223497409720409758012996313525129814189344035994521845570733892356922319149772310504633512397880943502167031523127155736484375378119752758653008297842514669026973787488598423118349017536977001334746005794859122808200660044349249724394499556658607318170369507469629742653020069291129870517843775908066738057914524569647559382759192324056527689859570246379826254609926193092656875460783008180980680320893438661959522771027109894147235412713731944928013085643265032905923315570627495343165041988094505451907104544044565157562249404056390235676161919081423354176324722485704820703919059236868375717513574333230414335681852637592098513350561252296427375354516526298576753726532728282970660164973288288019676398336041789570077250418715824636846484685920137646244830036527053118916315354274149905086453728096299637780896618086948236521143011432749230078481539563918009556580001279904235282691420904822594282308579741351931687590992778169314027234944248017209796594834819325117381539586446671930595027933273003776852283291274889633484626189161653505222167837356170418562457050287451434231762518064415490561433606140274360468556707717773384026642780264418453971310661859700351955733636242823272457272429877055318488347395395205581812231495275596220960235864352390418070372465209480409991884634096294827601288508008008843037434525220227287951478941514194602465717382747026413505029680534311019020088492478309662381664354137148444373932273424968319139972034261850283468617954963790196366124620187801021270911911055710564924720455438599490143819430053342078850977943922768265646075192663942725160351194735710214545360189796112385209703656062561134459467423269244855675393453932524884898431023302196020490913910117635125897060835848813113427418522303926490165921597429989588942425493095421872173815029468756800062919936796569928170641568646394329306382688282806191239209305900632240455961790448798500189598473771122175955256582489184298252247118271957173409990667584690737525604549014526776326145903836738614223936892672295384223782591352653856739788020451621238653542860749666479852369822467122751525763864136546550377791292870254780537545763201661476133106931234589744723145113743457352107781433530211734301914301261026252263258583314024171922324318700387296940355017671401912953973402555843096677068159566642196248430866572030456700787916570317449310298716570542703058258717391501354144470237435467224750932921190655562370850435628832640900899382218497567025392811935094557346772903408006571590957661449279695386581032817265020818149652675452241070560425307195528006290296970796385293485813740201421552197967847600491009157047809685490788585816577051774269687101317569393230137731176340712856103354779294343229570600510795799701803588663853395741545611137201118493638261922417101656582990534976879758285535234172102817127218013755392247016867273817785931001439845477847854845471070568541535009297373961127018568372809260817969210724515186000439522204243524460664598104972026162215675629122649351018053789434812488561270622330785714522595882983835347841664571217201667473330654960401947573940971647344755875827455158824698857600594247806531256639337055130906231287724793676258465491816425249944336845621050374700743495549466646051208976173013138894211593751166090995815570311587851597612864758861504466902639182786081009279170151545077594130359217728135506317246169726833405542955484611301404127014174389991623145431611958285793337361968502852125537662883437613388762203216963485261126014365698052986120323812724297537847356338295208735409527142891052924239263441686223209474057009330652471640461714690437137275433391947903917706095592202730395748138546737854173170038534189192125267179846431448949395584745501318645240265977070941678492203350077295588071735316936324686836752597965220038112014205632890005976779842675264095836309522112513883873967425680961652491177769870845377087199383224763101197126086459037635324921495220181730595352807674852105404275139916914264949816188848790471090935223876404379039639898052724400200489747721824620499282421661765472418888286766101189240584164759295959270364350625437499047387285916271684864093659937485932005542444705348963665710772927664884660007726507831375720970805962828968106396902668063342527171387183961544940860426676062580536904179572893306296028572919700142089267884437349682634984444394944856557105319767953516900559705295377804509093112058700873831742246996276531422894687429457666862758613792251661583228283164659874992547376041374571799838440208228566899135690553862047759766144721430659712974959126461986571301122004383670419244704045736171725720763357319792309350734606885492037815664541267666013547140028574092750031823334508223476777592412527519602781359070635947865645900959286317867137709042656582790383123421340329835553611967655236453206951655830641244316276734129544610512061750282946656144191528074789395489954384491646942382814559487244402652391585759459135765613265731446290187209825044270159497295288071103836283450759202576462715485066663149643666734758702159161189433616026510676540382484317483290402583192949376874425882575367986731739333056742005414608694205893563469600518989376581824962939599806099008048211342446612649680964196746130354796525853076344956246011808709308903522099103074113525293834877351315320263075122237166332970948252299270288552061107744839528648042946378110122908967557979846629323238033372310667923243840130673352777311830417611295265638514475327587984725769406447369564816538629082666834528816549047307572752041263428869795956404956299765052876767753932905902614426225949689608018386466578294815683357793202281454591571488295362447178057096678880510910106731112176992673163772796986108892050512623290992065926662467858026214500467195368036910511534065530705805380360797393648246338694972666885958256828301587544194805264187589203997704560769651148502642153345275000217107371260954938104073091495789764969373260601703038196473651450433641570101248070725717743457246054446533271443415495293884861637910268159196393839318902643037981182404992912978980725229655546184129649734226576632126620786780208187851726036070063223516161982145725324068592562336642423905326702588278932106340285357668587681917105455775860405706433263931981810005430802204631092737678203360753543809536772214040085692247345513497852065255018165034948711378074409446803087102852995796321517034071035803396439496220249870435376227203487988621783613969313628314891238481377836930610975527809056078568193235257248867656806380728201737562163960617592409491655566472798365584420284812860269878980126812233616118182620380708445293081815202468306181310008739457469765769601925437863636895122950387883809619480183929852931725878332471168508034395054672271660890614137792397976617766196217361643645320009822988567873223750921448902056664757423822457551415995157802371989951558151035081496591889558605576624426081332523146587919678990796692217347332651151525848959966485428392779728310219310121629524049315287407919586171010438974266163732785400358689227760790797975769031343993288733577127143260441213128717100061114601838113599669368401127457776327589907813372586610116724883863169912935318648645023541491900380037321649050750357590689442994142598836696554589234652401205430556104331962795146048168507969285667623834410017538010583485505221327761713928427398772250682603445985649446511222623079688687122268556736398736529862483576962315285148996060938505666787692279768913111933228975237352103210843423920526509706464497069774053034139285543420949687020941905657335452131017470934947133679807091011663073031344962105453072118078071469089194401502506595329854029247139345773635798385659295898428723667358997809092810570226206501187496724462597085998621620539328482351393571652196115421832872642003014654554070153138875975205273187107268501444125158007365035196884008917621316102634406220498796066062078558118758870672599493460019174227318193427528524797698199126839729149026411884763407139771117032689213602408239021273883803144651941565441084074842536161346523860972611939679985426933710700487026083150464777106255595378766884691395562903136405357398037518281636401478762567013002819178339030926538275933574006576185483480686005481633672695999016302726442462721128106480299315976723120325627965141290882232667309550544720259499589423492788677341286762849202767512055252754463675920592370022123819592248013792741573571659191400426225429882913423872270566127734786153930396417320066683877931286372607138368643959285210021033545493217594424244592570143915770563853379042699492963873230159331118400171641350484638441484805664375758373663602069964563662194698351971602039092750109697747164310962217948849620958214690699696594127023933784584758418107480326214270724336506395573181359745183230910728980262380850952812969215131999560434648016083638410695912571436933722117307857283506285086361468032054222882240137663115364331620011073785244383866053704806333453477229847408932158231664804334877928184044423260311561866175421056128162638419926476088073481855374006725627212088843924384484834118157318300861922277011631948245749440768777448039964312507523506513352547088588573563787388451211142642597488975336982617824475623166442634527534733728044485032265496105993957468095173304456021620075043393732845416421337802128688859589163263809339011148680565175967259397882388779724543367218834842212346479490207990998676380123331137567304859134076830338137764720657648320825654240816352384182873323555425739035136642215960470089070843918188392587808893338361734027600302641182124623254335357185615713372869178580014027705160880013196378401081757605971481936997118301347043435592065401638965197898875271993094695266406561131310757233564179932309171979533905370436410881526081023117649765927237430138370531724464852018109506763851088030308335100861129025057321832685037178718537925566020651400583543534661242471510241004018812334874897567338620475222939142596035643053956087367158836106757255479136663801244759413824225190720552752829539891098702843317482709302818751347494842856379623310543247401639255712655702281602811229956978575308431798124970310044496852822525585048822534115269057441118140360870874129640835059059581834035098805258986043406628550953028924394986949751831201367929054464932773495914337954873938682254993296687191036937553666979054529141365376381041136718347522202651209133450336556992665661842541029690130629795939571776941364250000153904717675118754065892839265262236541584481934217454184743302220599545015282669327936934280856551406615779381877482644066889539003468008848763597999119553354538007993064541903838550597140026899381818953913979486984581848708996924761226911409592847377798326907445119529783138378453085571356156126204044374629035989564272424754308598281712159340909531350184959657717297100136695265851337795717081748597472678392786271218489158593534868791733761721386463889195160928938456681586073087933489307550668502539508586015120696435961525121128475183269797445226841630551869218356761365580556152844391474446322732863621435013289405147915850825902132917456599197398721044099844827993518065346632949519666065137722406470368552073160076607666091119504627622455782315640337984713020872375382814260454121087066833721299499847096981843716997700506817893464222948956771959540747428916653387111785495762926230234660587306519581584976272600043030161974505192066982954027380046289972273655895197461463209730714426001242484420657654684705590601059271146047202435863506363748033833955415287236083410890010723123849920888567348924511045279290461369096974691264682524471215214421831561970591862621082435764369916250903569448147081296582052900293611398108080555119517206208004260040720154589130447795106950238288578256851002552185418138035145720452342047306246575377873145257937110530352903411738307866806174233495893748520053879628138752267977474155915686896214682436332634644722417187796776160806090857771615289666144184083724730413201831266260289231490668721301093680923744048573764634171934123395144006404791639744158879999182986906030525148520568301343877566902646643151832649037697071562552232983177407375304496025148859758927631209728986356364538187150436380523994266397193985609191722070813549125387678740092890532510016145468619318867334276996136026535165227835779607545594871774849136218399770114072619565919250318274531414680626430473054527493317378659363520150225878880024682528315531680763364221632752424623486045830354678636729351665365273320029054956884016959880832479662704536372725060898289791867962043159836122757158649298980824922906829833424552110916533443082870653066881083729909083523181158717189390342864035039798778389073312343344933344433051118898539314425371856526162026323743463602944669614453907013034770846042385486969126400381522382583197561916897606253470535551445190395030607714343513807309127154859984459896757998172623696034882091478085964548220659865438976823030384624292445513766860043079815896530042678125573337592523010499259281938641178318183485426332400828309160112204184701077569524767637678708052418761194780552248164170980147327555872751879002151950985508616299422235836319327506351114068032493540236504317692947319388692638327111697634829798849333952373270956500116176447289695877959064464603473863150791511715211317551845521212200069370832052424986470801358244265784107042848583957786159804365244598232808415740608962567543675189200837094653786358911658253062381092216378927466820147381490710458857381270957569916887251851165544475089976860589611971017107188926451617598602334264970278090192794734546515033921431331225109533319907170593481270138985056864618375663693411333697286329452111731256238650382331148936497421993297983728585139005665895502469378370221714884883965202471443839658165442348930808820144202700009075325983808546384119367354068678712275783886039679664708774269602722194490711130321328912145590805294937090389094771146868414563795818613334998884061212770078813779060353536416587790511683489805929928851531146740660660154684331056166216146705776115595198359623730660123309269955508682166898646520017262100953901143563861010964388128402293730862483785418641062624026005182578623409377496047710239511119558783263288377265947554034804960058575270614266186395921359447333981300988214550295631153923949954703647662788227149796583245083047380396242256061062409379578110872349366943205996179262504829935180146508786784813070594681367189264203499925911802499142426174344883155737562787061896203262901415700141530945495636278088289076182427680184744813517027492254078579751974935606134946524088543283628650257505725469305031469487797255979912666811381078936962741638266246324183891806536732594310021974534279587357303234807522271374709278559749602309887289977919957578804997502948381013729340717989049809621183528953287028376547603842942377288029373435073668524571203188727476526776397201512091459953821018976877328569664105519255376110007267846074176972161184606106962520534533193513939075534207890028064999415086506429718975603340764604502170384722377645658699179501514816095577519258097827014150016450699058476014881107388416827237917109216535831013639728660994052527689064220629050280133368235333546612783566255895082447363202096335234328673499223482117193466473185175233705702343240054268189835068844124099290428871641487919879461617291435199588158170896828634673257548199851753216990690735429773082838244854163423558490636179617754654859682887257128584351053726783370472625557457139354299567115688371952749239059454341970407026793937548067823836615976892965661222861536519266937158752389034831083153380699605968637547504686371016487608779374594969818829784042399546411469561615111226763927857902051783610525426837783956055288594037144060651428453981952276269349809116027456792642155679065498950497349441251197612684058518397046001522153300971888538958641003250152314065299265860458853229826688025891466238232760655953076536551328979335457872957839329874846250439832165653712242706229387509403009986599449815384688921504396345117123172403700295370131025720296514683408925839106096144658374123301044666268964509486369599716599263066869938233276482620848657244841669344790325127677405471464447522990039666997277372105305205794753504136837764466566407825971249806449527790905484049072676929099971657640603653366003680512609390784286236910284095385842174502303838172806634037703363531277704989207731666403458078813466761320089454984446083736098231389251568638720153288550179948620770257582345794956140663889031623774382970972905892861409861179744232968080597924961089866273274058758004580012274858242077441116669400674451404950258935808701377104046600245433669743155862836755422509084341730525662055832965548401194606483845568495268792228704453747162852700743823217586710187380530666336037459929199604198331086046712664723042246630008087703098677548662829004197719464962777317772850788339231669124411765662895119795824259401478788366208279326432076103637359211305003476682355531187806722761942011894317439563129466100164633709406515790654029802635488789748378539620139018586888422582000137142303505341604504415700824231801887567598003290818648149357993031607647655477850689204660971647823642896829532137526714690070844676651515202932349657317984042761611475274801024993406954372317679558527437500660931636628037053237145920401878685155731936226174463875439306855633723645986578026615942615230058495202874798743345292100503018035951321361608028809718793716364797525253764969211564073565056871554920785823656854376667284317512223480928331038262775947848584568979250214646813186570868818135140496288856255550716503641939079441349436719605186312497002161172923107565829276888612501038688706446645360848341236877636249101359543434718398327919253753479467379666671304460085955335638645489429696877727629468977691536458099601235166925347644235196244873962838602528373746312357727686235415006251824225497374687583355867881463348869888798906771722175622699413758779463827947074662106292374922666150400999817457013992228177529516550225868533367923938861390645297474596992096288448844485119852427103012966972302274586461145346585259741442654970658821674604784321110198284711638038740398272641003589872189400923888609921623177423139365797127197995317705608839917415111983726954956331219851244557756768118127496632170349812294559005132911673032931738153089823882263317331138020527805551267626390263674941032224733025398614672972221605882162691065658898255078308967013230055526516084224032604743396980577552451244159857783679133254455304018671297848469028433717550223647350016913144077754066848079991403170150052233262541296971973707982370640147801029852894383943424909513683433607855225167784870369500008725258134769101872822667084851428808047697146321504488527022914731533446065194721560808161948497366521270846460950030980313020910982444177635587284195288221404370481059531753551396814168327872294176371475709890949163603447317769112138412554361990228245726982897599594656483286618239329155617794888980212837830482354126361370492687937897185971818074573192727857531396235212067484929558569229416821888268446974712849953304910338502322636556326083357866546144521369353732292964973496535763476348025223512697057015819605826116267877837111667522689941011433366893095697508082313249760900714634705666783960165745734693616429836408470255761668149087280277795114148507734846373747186609443104460787228195837187039880232443331464427976845834687078692218765129467984133124962916979882901504587230602438315530765125054477937888175881312072409512419502173732706960080411962049054350444999320823164502072150769574515761174492756799116234647040590228268050029093157666657077999685278329529443300428892532436541783587419421024122444097901182439308544333224884166377463211670249273317888814771635347574373649995056842151343818456264972261798860390181237420342514356762637816847888154914832295897387355050295633699046554224029334609597014628658271122775436313550065294601704212474297975935258860281310446910455300118281345534717842236936226237205536126265908836501931543443769369115597895564162980570394915589061668256659786840822171538072501336551386610162638322020638442075757633734468673792879116765650006048831330201687876145683656262666913263325372073566723006502526957005434818071195590748690098982921042585027274536551703002121944150504019418333652494641836426302353251696735869091952184693248611460191805150342510907720551059513673253374752365227967525274983767054483796833830742629791376585596905070839730294761392150945454025057359474459714043607498916894266550089071841727313499348620579391282475566595569759689266337197060951850755168164362726606571484540100042543552353325524930987842039977561759333729610042087664499414975028132358061861365342159727457275777008893442004100685879500348732746368850889431183929477940635216927450165319386943894039701451621020613816689411226180288440448253742933922055545493995268027647891841657022439222054275818726100544715079226262250478514023473428646109724837669374373717460400511021782546893774710509245882908978291220021666965921760113672144059868474086103119170762774896963546239240053590752770394254610793759286675349778361222478229779084198406410735969847964700628335160890669206514512956167184097930659597101055473529843848263497068494128806694661971607226238042378420189682681798148490302646092193430919708170190114469599064373454265197089578038104077527089534905730909514306705547241171480116303213857440851678750645558770249861212466353267711747750200190801506522970591135191974913645235908483536479639869862820795108166009180737768638657798293942273985256333687560674569402653714524668132257753340128802422658041996573073057670141308485383433498747987715802625108791759058888686912749125206050817907746158859482656182673657178290262863637246068420392840368308009022032170368969841097212693762592153989678873250741745746382844367036474550190971969353616837391354564866604748266367534946085322013921087186134521812508680411033460766488646725443316882612213175300716588161067138493046573769898577067855345024936016631890327685494160390836658631989829230166337783932685256083030272858060189898645540244772586807605784322748769017600504749131942039802327951656617452778199395190783443235924702570376376255910652363386749606928483569723355125930187972907861934899299389344165995713009681221884054290323098159817520944343933188786259971524625516710874656117342282696156578266268581159702527191424826758218944855569858906023829922869999116030197160153534518231860132541974405349834099732252693992867337477710206875250113772601759039416948637227117711750707980399289727979508972870502453757311508836090314079949345279377548194633891973410655817539092394704898754533935104069736407903539371833993678359180633239167739319530233651253801143865753757451935545218261257936675309070847461589927402434309122188877472724765120845495411325777062284604217798172044777087317737466277155275446955478438654737989245569558050155275660812349303469791885606353128764845560847203591680969170929925683615392964350514780415785564906057098492106966777052980261134981227880616280923530937399507468373104484470184267061591798269974732378126711641381468637780129811726100614181561030033991935289430477125113030514501442040147205190816682655778910991829671085171314027199518068897282769772882303270539463518848156202493225834589213548547096009700269787705012197804710216689749073098366113561051128666059531278739815613183540173239673801871810688593496380851070560103848001111214013150678842116469700898455119697490317028880395823059546030536126612034952485244860776198873036831669530240048383075386068359184647059127558476747617449515914518812324580053805059290981282440456598089010720052488604202008566591124185218478583155514126587650390870919967371424098635353014380226355826931813845792086276576653366698332989897474516622394633030575678908807477230453838313542337058610705599985566369479565843977108304177696310687221340733527724316885911975965488016519120130402057618523168897476886935312575568381094311145514230788994475458818169199069605617920825991734661346209181417848783559936685778514717229537687217934659144855242348862732305157549248673957927555595964768274867694050469698644470211676649373521365802884979837889878759888578035481617970492092095409087026869734209308533440099264332769756190952497624369236722801562192766322936115465133667122910694502550956358097393144370709871115482774809804940790236659620881207335367943490136912962281860176862941155283426954806715658549495329034591169311789202948991553119263466607762902518880889612258614265399010926376391506240230895172358500809567644370609961157766977117393137725923937908481033506334935913741491445585019759660591735195162814710762891537178238858317653322561095454391457420909155134040901805915920157643912818546235519578953598482709375570904259390418923263006167062027308426023758058586222009234954774608709820178779094825818829439631231178561478770003763828320118269267418805279959852769714701715859513629021379481028397032867560151748482902124541706230991273520979702097975563143211636955616964733102359061181966227701053467383721167641855921947241950348681142950109199857825983094335467125963339216861169138408132296313342165012123002562551097561729414060059428289518230687299804694706370504003966943357892812031633155957193946307392711913748086779733303045907576753148503948784492526745190296478005501905145924893688574373286478647313090796280271662225829136614087829065927919781286597821568411949788847399729160732413130719540146306812763885942277202367621167973924068089441595728532545264351902408346888623438595548436688429097322905416039294636853717350457994318741136371393207749828354279071069804493626630416060856173182344340850811277459798698052042532882612841486199321612184909022669301943043099555950581961544727408341301716470242734277806157009536354710321083393592635534017445181590256425819653200338820084375212989528956505704545861187689340948696670255967439268040835512855408215353480976392731682175607152089992879658492931244273871363902694554053209665531296657406547308581150543196069380676166740879518100358506690241380042067721484719968561047839314000598683275571795510718703538127590013463778426693885833983635878278705853950237507039429366089043813679273901416472495683954089887437692309877329951613402531591966922653392745797939701554438254141383281613847284105079915011364097489439969060995565655844127129592841209808222653980798443799168325113381521308346727259757791758058005255999351198198793659052805644539535108170849832287727296301531209465519948204926143934669549364932933814096611122610336777171340508859724679869089321679865601094288087729662896019183253638556479175446002301764725126588416067319770015482589558928809778464454144575049788281676513490562670206592677321312054437740816908774667015260002168854045282544063092566873223023492265561796914462062781702726852622977423148829555692954266543872054794623338908547752623554645569873440064012821426052940294439317254723649377235515127047650219918392304990861353488424606821311142440649246607101294648703888642929227853076906817704229434937263519145141612996818632996599520911322484485510298908868883399061606128246482120406465071308340381463232837708429689635880356105467292918112612007774398342628376188024751374320392957485162734651871084252160198268201627855625783781431495507650731388855436448473997594452664725395154613712247130611033402364399738194677716030279034052705406763234804504717572668832925075253074793760569669696591667350819917337514955219961853510098469146352687995822294654539143183457593687859396528863517784149998091837331830884478396812796620447221919162183125920552325493737837535404588390456552749360053047276680123536051020362085161471836918925905770023662618691327197261623423408219249935239813031991414940674050678803484480926445689375097576904390050372756802718100619303969887257535857645017735653667782561142476597744711825493419658109367614563422615253722131094720355000289718942107764100895548267471549195916388802532668405595289974178154798590784395934498579241054315243174445055385190785599598025927651845547125631417630463835227359634385488049026222991178271738946645790884247955202187881764668850180071702041285004636371181689099189696199452033280620495493250913719725210105330675347436063406420228444988320103314902433712165820748157317488343222549342006510671854300031318836877612865407280054801972156364580147477765280773934313438087662489717284589747111141663480771102334309572231656607904590104087197787614433981560756566097103161054213967362509153352897568329856729558358632123075161065041118956430800477796590018907016361887541856757776550659294996422946667527879251085548649566426669163919740509567987454951609383100311332662451820904918978077287834850247347960427192071193455768782069184966775189909768321405834879486843409336352098237744802337637733397366453130783867698547399672684801354365504320458688235083707243228477776015339737398772638665882007868044375974281983217584726042462243091857222799915849824817943260081595261634231017462229481863676303085369582606129529960523136918334377820293852523874828764590938673352844499285608622496603332274959610631148633416062011227947308411452308826187430416010991497014518617647455844720735565061138232986686512605858495215554528154481450361063835206102985398802524625725130582533059414929606569023278011329971845199427316784145555247247875705445721727339845454953720348402422920418519244962431923740940198045769924373283404190128763298132728263644457901809552088673108786970973563239754758079393246233878462759138984176897318288133656704162258192550228412979621603394170805875427951276529587687792547731188998074349568060983357432686285488200019567083174310896985026306255743453057734348433258506106530438161678795019322127968771394450330512421164683502867719065585647121542567512125092202090223018090638426115272266860854579155633675282670773339155654416277306356444464806901413016412579455448376646315995704214303367390769113937006383869020490789989180338664656496718132345178669083954943093802585178438498397304087516183441670846329907021409230863713089983685972299932850345866314115610331449164516446548129307261263875372734695054389840893724497868680078705255340875390146696718844146065038698402820791659673933576034148739998053021288065494183461186055847239576566963214419406309374818827632304615072707602824007749403687709467380974904593596397686080289322244908740984813665914278849913550718560784766401387454151984541185854501365292546629781005502206581102327082207416690715590516830820784710558512388874005362257273655826146665577775746006222413261277441628040560309213291276704732602878611651958006531404549381837188245625823853517006397973293392903703387774637487171859445655382986042238363733423695422856625026880628131074074005240002880542132813173433988127452302767164579696359925876339013016782322053361302530635891496706998859155831034582479945624070382531064497986794015087247524535382447890010770878932750351011179350905399690261870816298051701655590412011043149002338908732338155813410469403849131903062247023987640946318366204815963525883115689456918606005199350723859721295274434148037701832531924531532833422273758745248091976972246258889668486141937147115880959431625899896360633362050699757835755753041793273265173218105315917972181077074743978809192854405770766321680190101756989029945042254984323208635703969943410563335401980578327829187815010143416039014168468156526896991080329180646835142742426935049101394140885535068288324746395766148687269538902982956396933520129927667194939547537543711976377519545855056689244919617643140770656929636714831921258433452819819551094461502600774497795695790098486841553377932563641837575042623030030275411849711171276668376692708611484491290351540708939894553455092854018723668137161517205563888611135268639100806499678451530136607821272145600564524502634476423954032545139405661007591234146479522104129092536924113489177149916167773101492390087027234017043685326612414593046247104074333302047639238715074160171545909889542965246914016662437372170242167879527622838958929660413260704540757587080033113301648126677012597543746174571635684609620310659841177949674112653136690331391213205855778079141630955360550562266756964383759351443846181217911539268826586893152743389375176072391942342294051003744784632823234353572639656529371384473457774187914599508323120686091082020446325332369432495016996352968376644200496998001730689818315707361978791027894134435573890529201091178394956780117459973712909733129877719650145071586121459713681671290997726499635883144752093237766931018785156122210418599311696923206320017851212198070576546757941853065580376328269164284642813969896901857834600097616876800215980075090822752351711842466428458217929988331976601934470768299679834257541674916656058910788236299902607439983706701286137814850184579602780716789529313813017050192999359156201460077293667240381423368563220492804754186638429021369314436329882002540042466052829647471954100821223336732193112669553929131701783922747532919567415971965599229265789656947300506749328352491414902630059505713814537361285974099165372703786798477743356766331999696758312812678491170219605104672309640622188157309315920744431116951044588212204227953711814422902312408924720560758143549731373731492979062845675354391719395182638401167514928681534581555601990625901092995158550303850234396660626993103964735543796752545126352372420330244088083039990623705871771585106688162379812043369771205762998043474069437879118642222224192494457816880838141028980230455393837565662045995035567373462483338338313882656217127012126579689474583748015659059258436698869182743256045085671590649291130148104928386617826504708984100475084189335316165982837228161600125578951038120293545454869207544883759360586796899401987942089486962604320437811510356392837664957159654837268980128896142374346361444931487474198610848867063805089102429194960484918475412382970236059334587070540727493090274538425215159265904565689508596581471473466111385771382467932265447956411032347028028467969289255751122104216934460038712928608818737763085878809511543354778676411068768327101154666783516700820183108456687934057396923426945683348160454665687135409080327348296615078020063714975250368620207796938088549731552581590380034401387604219667388199385724059414526772757980284068241699396512784853381669950602988982117255216699600697051489329176215631039089777593143239865648297683182114142139437211653324878406261273333837864402947513692116077283973731791985625849340619113463831206744728198368105198157106386542617591885024360054620438202316686307688017599535350364320671640353471855880060038552493319108992386530051920976481455085873429191615540105661146440653909609734402701071489025999628268317540518066517104970859001195946591418354785412190696045578501974999502596277315361682310137852103402062558654688831202144190963782409680924222923280957498303291150605226106989801494232849966664228490395745072413309688214146332963791069132951175061261678975445377039035133720750425107192193685139224344191002733454953742515694893879317148553568444217212159490559457429761731432533770966409177281839261311127210216333520335344219665872840590930415542265883524400016383218428794324365325961483258679571436756185413112408731646987680132959264795773405580106812466450806441137767144240002495799122492729978998769724517419241114340863487570469204962631709370123040922637143275777548677530445056188121749312777126864028579911083876954388949800751707183285317184190507680829145956899246904064618804022732019843741400237245803968670094210390880140788249793458785746195688330765956613160318470856803997803393023959450123228748944268027763797623074297062943539515812364189233130413878363281462288032729198357261476047000347832082358451022397483842154681785035098989855303520477172244531064621319562202322828116486451856121362739679453729994279603265681646669074005934668671978365840565815459882529994952544880979414014666791614686511531181042404502714015829168015108115625478272849881990043858827866766129678429403796722973156718720976852224484520078985185013195847827035641914678164709712858356740885916972572715538074245698798200254884697867002733069288090601352692378923613037085335332736469568433363556988867948776062597644028269752233107211511617170112586220160078107662418903043938743122003348404129034660057141259229549956769961940801731079911898139197182483845288064260754345153190720356552791970468882488292794058624844956333187162204038016123050918868113006842115262147115713111827641554262404937662904075682471436717273341508904580479355794599476966455553251599192448961400132198195221103403578165924616902546842131070571323026269546612110951639462040718191823762963314877115294209798385828160222814482534984925710873736211800687359293430867897761122847868344929326173835263577328729020955339697813818822614349194973842062898167927579195105703378389562255105075781687641258379502668016896811535467686873517498159995711864701273659966473396517182248640639860980903162849043254539915142365922372442916983542929130895483849951358362972347820060249943134340083657242441368333487782014036096270748194225568294654473473443302545512059041914722140792243683638926894156707119937957341777025528026480199885021388029565236131194492746165175033977641985517492313144937669475362160481761840198059976410883455321532575178335313678703247918631076080318988190647099056214604615538062683358192047652664755568644262409018477499100379411443992018238911244063883042215721365121424073846650194315070125454111234297078764974117822563780291533603592488254811100236470852524854591088262466813329741939194211339919690433158391906490770186638843808029414971012154809064637802400195551524656043454153272478886609395404559034032853216722653279271038740767191557845072980533192729424585779825520190786649980588087241475049065368130628739459904021233718584965246735351199387426469761256461309148070885620788231882152900502117216754115085737153074756061899453104335891939219499470101824794380641077318881373671133162305452378708518348762526589785685229819004957003593112730149241951590585825511721983602068005420431167797530425141558938239073576556524481179017350322502490309462742466734372523228833512193076149974133626907501081133238513690631261393247654392952875882179096133286607037292904982323743382525281773728807706052332479333743363123033122302004759786254756713825912658050526630803058467218784481340017966982906736761286623076713651639425354830771535505024429019880923827171544988699067638791796190672825057658529979074785004258524256233115817733460655189871603351742725576860084027987662661955141883422967013676494226697626422332912736362308614348169613341178631506042355928612791564924550662216400347592789912013706322533682330800492117631512535252121816234099285617329315187702369196399474620589718170136974075638185345628714980513425461229678977862512816335890858711816941780361811198109515349445038833850979992202333147063766271390356262766822759158682080526253156845072724689694168984970197336652848781726296878129244950264657316213329016221449931681251304406645105733296069210850495053243213098091378181953194829123919500631135001807467616402915873946963962585953038848656488643663046011303868404761862310038021862974068199515601369396810011460113151745367434003831970811096820025325361482741826449593132334216056944536950956076019615566016574853963752858890951310032004747335745121817277361954738919604894178154737771550225071860750462728581142933221817202110193265041056402630829382830431952769589338898653895665108705655852334475245371577848347315954961568106920138112069691262679306946776386453791365150925268450065719064944684059525856783655364440780448674220035671597121821831636755663784170808007616595605253015494018592099583421744578314522209711395098633560461875956229779300889789250252876844760386222645910482824685335215055559295446923324374578007099214934351129307308051994400650240976820806583291624887142830873693924590982117929496259090290384490504948715974933155457145211954642957480810829807939254310049751532743407181616756339691180034001130920997901537416779061417781202826649491525084467391802690128210040569245793510303589188493994810978953682490639714431242498969967565761239072380025734990769726909068889336597875490042836996485030510750510558348598594095128507203449050998175122690512544284495858649642576306684731977117756788243651697202675316932498459823067553966314713554999235661940222335976555863196834921565881948582231944790460635951850319809398776795699541815990597954656360743584122206611151666025740507437688950096835775309571692473218425681500079643660861551147753948031733404464857588792378043995007249036819261997988198385837118016327601469067605595328459978920803782561814622223567634999056409771434659117269185386870916013408503021434962483791848523620662360321149833739918242946921110665616101681952180775652969950944216947732082289774876077343686717037669496664216466522496034516930321356747052975993310776832592640048426863550681144409290830385875893758842065297829672002219788947020517840668438132537794214914561488522362893866822099003049186056605348852599994784299601854142531510020509786950447917548696825901849954334159582469965376236634931823997202391326395453949987295573220554030308507817362016493344623781960488184207835032160155839583789571372532182228067375940720964667233929489960642556659833615790148078830423804031665211997815965120724747165440193907403779392740031394640582153758429024001744304887148574170663231611362085196920915364299941703840925382990055214225154644957219152945416181755175397089117826838333257921048093237110293304922676624820131014998947905734870989021834233986995049108202155602349988143790459528338336000939258534522942917312335126113213540106320209406890042378000749096107911753255244915025055111803381050129221116512129127294928876433094438788232020306056013442505751107247344849419472015123419447589630886735718027694183640624849242776725031466783779972847601394270932358001711944469540115519129233822924292656465936458353128341245152851038661819649032164430817783073781092697253947827938544444943992855018821035273013475618463392258487907959055661085594518966591153928042880921723130083750445637969935794577592753337329991335439909817953834302713087343166251020660330835131147522891594730307480423321356780534702179887089146564807075075773866808784408998244174196821949938593972051487954929215148226483570623267467482574826710089844522251052327580097855637177744504736221076618191646572845612892324803257570824702746056695675272823703376114970011135716089378731232356258991599267231245757422126499126750243561250021230385933722278984700462746153761592992023018180201688704947079100019058033422330082273431141099707004815973472019134473090680751180552814269118399186786344066399997845127588946204887242630592265811924860807540086157929578769483654444389648248762477873686208004895268013263241034394434953484146734052108237587516620562382971543863326359052638466128851117413983616507419407322779483798407485015000809410657824736144640197564283414530757179680925989439114078168892462223443720070441092695963147627667809616699543797674634218302303182325653414172077752773424389990117363306155248143048056467653158886894084207227803974232423622986269866806276257897134561270958035463890087926226020090070160858376674367431922724689480111502528215484024592200210524031577064855753516661108768411031666374951688362097156826766232591467081123812226509703139205007846463801308437273439745136467706413024525486750617512065031428460247100832552359268446625861878667477014534809692643563209307566330926650923745334856074984589968786481836908863298385432151142380918109634409430097977659740932697409690617530393150867800176236972226761748703074578283500488823108052092891830381535921719119033400636775222665762225587541871253365110868245463305744300987456750954442065047692855859492600848788179823042213014975392954749365159959293262539717616234038135363467890194118133914419203078584961328367896220979067821539211608323415209035134463651881829587103141155530553769120421855157612454723571681912614383769629164877748753960753013758389381119325327383521703502952395724200586198973032246337783408388553015186271722240537646808046934898517210438980740941563514513297705809468281538472221693794030161677135772254898165137822491119663957358963748847475258492292591980035642439594658517393055852401024927575543505992260984984547891970508516606598756455320497769612032505058483533748397808953620723764266825840235873871943726240872832424407153486826746749470769970461095936507380997223864835756897062429511272773461077877171097501350813908361640177262369188804417682003269625436332908246908285346751692317587472749792060762097056791720694433057719532830096156282128072928892256122471810113522278252637540711260845412156073481171801274230625705123502668377509432807012025162606344612177641010444061539778878545135059979477576329470902475433824977036350707112423202978259114513393416832784327159694005318417222520502630472902955576197021857697272272174569278511975839435532650255627510540110334223392248950304507678188760145394655555780635451665521746926311973836562639524034848160042005032284500014348593901091014760549063655226074890884943531497622191014409441332026972275096161387998621531237678862619145493198635585194780620141997097097480542566965662607681362871238841369008422161265125784359603153463482528422973806153060728056234376122383150952304836917182851028337457468267750385628444444286005973735427561254816545453268087683281905470008634747555044631837403364004042076659138419923936012757656125799571021382198189282305953171748787386278465228301823743516142747187340753906805005328212278204210807492076601754507461633080862154975355043875717229689972476714889705156607182429077077940752991776236518453712505960299717420733960127763586334556198550319400424262907194021735078306711641871689150202059850941362647270215037972980394554796580564938418199687494761197211185914701069054928107611149949883517720217091318355928822028598332917665296595454729801783145350319341940773585856824175389679326419962019842715304905690705166812671433287357169900988320325355928735967274503826670878943055148495234053326593600605570895602229604991226821995818826866501963150931675426775011990516086356711262878285735331013001654901851584368337631624043124182932766319383065433112135061666731739154324210171046958778774072930093817877637475041939395945924233126005786392610866453149548425439244081979490985958243480368544501780882146394248972674777199305698303196637270206832354505365705394073616600061337078025376660570341666676023056064932122180502451843117412800889173506623281186823438802800283070094633185836439450170714985028024653702998248953161524493698629542265504902459387284453505808310774945921295864733794952992339027419355657088695816254679620005096027394205324052864867127890310513234613275332758572627713110393539468930213332514388587089133295040793316576179872957276364044344301681235212649470598001497903533196781360944111790220036419393313873520355973941992725712002517395304592047459793613396189198553105756026974523898953712146794259005544670234074289163842168816775075494541273528182984286543223978395184574991174646278744671687199460070478618591196013900346126886682017246899272475972999489479713977830932334735031456725287285458224277227027979019408103383457871365883195210223483977878488104165921369463680458171904219181276024721173431805973058976452389612498844062661136841106068961402497256151037363739259609372537421867950517889378321145292826699309792519028397461085696032924820740672008985916999592374241135258749846748082195079413969062608857200043592046786230976465592441091275788598074727123464171321135793892914935245584126611929489065595739671384288342209324421890536681189982708885865194641348130239869469552085271905770972602801821935048748585091015022727086622581030131069360169832908494203184077889688193476218832100960858153331693694632348979772797916959944364386652372000043074652417275307132523951331584784742197574559994121092926193019822922786188043325756193749085772685764821106321451730426835597857646784439703115478660322427957673672681927231651346028036635605459220888416393342368033347725048354210835547341451095134781935408370657775112243563125888986641354765814520803947511482510944551533146023227834923899540880139609335890585987162032306125716132519433964945143218987488649116761493557757544138117665202567344290059239118805156809473662326694402954002903815996470748197961698963592804822891480504096758494143728895826510132028314533868878516915732881353433623409771615465576224075054187405096787187768278530375563089245867100004026781668721591215840808503998954172450551285955471516539914948142690020748839842300491252026223546144793387424788137799925610525126030406801508639359333753733178861151661543969120175105324761261538609922921076605482109622806509785016322526064846531585277604713013415462990182870783971072195319396178599778192721117766955323962058630452946258739713749932429898242085835346338734493767957788350704700392631455070242194125586336918737914567915598833461839579565589393462265874431086845689356461688524791584378871522244268960529331071554507241266703697943428451771808898119841012733028707274520682773347048528398276682211652855789750559196273067970625227780171739496709432981789997920164214974447930300472684121690390423820756501528323853648993256922635904880316254489307038028406640272586913409659763738632914877390444201442084946075900665525241649188075531852093308485501912589835140997289300753536062437949405565525661492749865046485293673463956059885704723527640478566012594027290003741253099457338439683626067490381399928892973466002920166944732612260179717268444740031382636093835444567255811036646912999153547738932538936158724315173220743972997664478258486718749197444312199585680192049283076563544338248771822489981426505391712371300250330397188475388138282469349727661408070968726521668483853967418487350569785889454844040357523370411228585869597596599466320984569199116170953965539299537329149792464144467405244802342449723862697736623190880763027645646745786091414391200859698240916673887508656677270083030524716384757694360157771491106717870694453311096876857721529191433943370989866734173794761253456606906829770966628457006494845209704272931825819760824076449479891177502853806596025843022484234426060334233337831438644156097468086382563539889107005320112111469594005971130472787784672062020294799681827121590425741591741499191351719583622285725420371833170918503706360107536480527498787055322762121008005237546897390045576831871332295508263839988425059967242616486116060622541125856363959776903089869478728102074715652653249935739560575804600341301800942954656527053629773956908783956394143740550138786520757925672851269638383542326348156036513885701429634887893832082758874158009873371917830006546213423799408184734113704587884784746503043243170169945893586688053840230866383708417621520283392334317463396368870260897466234366083588661546047480239326047588247931453312327434527984667476490712562399588925711871071151833375342541224060869666211674352304125751019303247480694519249010754889468916460168357648453553083713282238245627029476762888264454254398040818058865359263408035755784085789773820985058166121811838773443275914019478825226310837795215016272878843193355110992260582721088306049430460548532049687200704695518317162396219353579393929585006750166054296376256968778174650960920590001473098582876031554887416483692566701428587327921201068123416850832610942530802166534146987656752427251075545310642496068158493948408399835158580994538483535621564394102767082855286137391178498252880506375826413717591692652887378823883455305870642044466327834583028552039390489574801449952208910975103059232414400616437625181125947474186816462605578179537164656498176139708594444582725426949559016823392808706865574530463855722072241058094304678720448667226999868671432010957992331058167934942137985128068377536179095778724320618676727327237375750593758712946126096093198698901456812066688450620214887109588781570071946201681785488143986918345853304366056679042672545172569797482302032734403813808028620547839401433444692223974354349732049655315133961929101827917514808694756624484265256293079510090004638011003573418293310250678800769581093974699031388533019649465134136828135798346411947025063151606215526122470265178936196558555576592515720001567570708509617025510740489911896387897632377947292394419353724214799217073915651139492272505969275369513067075959843659248128229450303870841978282510219092963749053300152681250132045608021971836362098669975220117782214586158972718214022474259326105617901194876791884316292899758453360407845549065977831809533344952571696733998250292712207538379114174792274505410996311332295824445525288938915321945724192473706872367712749109317726293888684977166820715708909702055028421549440642639513228216241445602316669296982137661593099451606068904312726552522291852658412254056823333896698920012469164458946776723434774117724112256236084787268019369136722236222176754112009608590981120776113003522518342942419497480046631647030105313871334510526347450063582394117757807890196037883631498990221885834036721803765128147896035778159140780063571444295813807347507745155147967577288388527891401344717205393067050094216433221207782105862843499757651112423683827800783088314665831363750687735936988175222457483227402191323115695933991675209796707200956024622351739869505812845796254985132305015337296888855417212743680310842826683564645384775210920535441663043068725044802076138478661842652463491880348252047473296682012719698174411929294405476011809061031408043631615769652431752473312657545962673410312519786820667102851689180911675530310260485478751181358884063048232705273066225923800882371083991963614501811894046028609752812350039783177616134805492031142569863127511930585635248537627631102253364082291899925019314396302000153408855444158653200949716487744664830099899935739945589194017116753039242703287047463358241864505187221771689176008090624010482167309999864529536247993852185476286956189703596994694581106294382426900918453506012281704968618120285723095871957429433246893652563871710474763711826709968464084903545954670700665560726311524210114474645449540119239583875808578406092723702145051009348039783205090009975629595192690725402818685480824868077140356709886637918257549655321341503545175050890169761079208956893111485909774441592554402655355703793290854508262325676061316753217759383240464059796289752422153312505213211410189451383158785332680438929732672685050790256756371683946722849924615819263674571258738600138310244857961484947922225235253698708711719502949121850356344537759594955462831358763068824027871409570360658434413430037225403313867539128139621948129747128106677806337639929541609402861996455099566030781541062519641283349678802233458077823383208735562416804868752791035541272679731293722854102297841422966335783655444903631398822609510685617892966968573861840272744013354693203786796512278856999140124639846309717058647872136578331501134503811076089465450724806054080562246550135180412099943350684337430510991768186259922858965214380774399523224888247150513628948079934913089251983132241733157841491472773801149229981945054092950267202048748466716474484881315562111190001921024563862761258306029542493754757246757552589178888996590724908280306339872040893560629578734257499641650598261179637208024352042276086947912840291154809003350638064680603093134099064128620571136556828102539081854769222168587543849933019397665995368626313954496772179282490164619853495704274893599592560602730888529019073597492007108988069112045836005787618719772725718506135598486953411428214786985920614170386103819907324224051344070306421056129089573148361262556418996170870638827334249039945453677463199210670321899300601774865050240651537877975390911243936782404141829350383613766592817665630785471272638107875813222985568580358391169686506724584090865486992809620278378537563270000929579253680628870064052577858248750520719333109450566825391261310508047832167792869035258558899457348559253575956988042387014234997928703261687470407855649901355949397647574979114002992495731527330396502043106706080845639659553415843333332728556261640723343358425932341206833164417092863274788459943817145249712399823295560284624987784098088844598211308069562183781385110667026586486860401312599058351315804750714564427990811141065756074423297134509364539656264423491151218166985471508012370394983952260518517037023000912155389767954403120685677524614173283278643868139611484621860725792088655539178358747260002670641128989866177376859128702223049659435115052088738200533479938486357350540737536914191169110291760979487266526079282738795517591168022829577322085312794587584600372633683489422151506873173643374973172533583284620576288079999340866214741698133096249011754886711249580682441715772146733996971140974932916017726762850619800776854432056493227980953083113709265005349247150863503080278567714456124829618123675919182003687451259868163039626363467949054847006277206169889703218690643081737688912162048416461299181960766577556541667529274471649520748387462334102183310613082299080523115515506799152901081743227410892524831265230427008604680031175633130966860414794927020039764348243938950689697779478694299330145130003683049344992568308551459647700986726664889100751770842440615684308249934656215125277731293340193560245139195894648271959093566784813095730035759363682497217850335613804635492265419684690994741771671533910150125190561362382718648210934615365874274019477133245800640966134478539995448172851100083366805595607393685984029505531667825382514526722045511519327721978069455929196308021470647073792643135006842311998447705486783772238793120526131411278338800586284263919847982860921203970023918947799150010023120924409283834300086542082322839734681888846336413857116035945389700358239123393046385594893523106177696361528434275475626663606879264038859504630527906625942436860855836715033125114502937577592101961559725331807347489088448485626854053218032256257560835380985944623817535654988749283311544655926155854451148235936364449966370443380625917358967477121030971695323088236385563788004584372022772078834328091736259144914538634896646296236876396659568723560899115901288351834145504358907834497187501938606821167593831276877292746008235362184908699683979408374121407158577915464899108673922207939752458123961253920821819337812390540166184561429057918961443927689366282317654641699281490168825714961099545592690719151203276923245468232784969493674287505795469086356816155269139650000431292126098390777572551103795629973935641569708308363895357321975480623521973335329046229415430840330706834266691020310317092089630020492642821504571725671941895662774146470191952791293404587287163399699085104867527640924084920315558842066341984391946299060202042654413901664591014603908747861156065267404491979012642642068042676753315476738187207673745501875858604982154146630381266498132685914042954195192891850211006482902200651325688142518211172010332792415855136557347410472959084862359300783586627492830833985554818698841317598988143880957470073662865405100204449733096863104475295784266299108267196004398221836012829225214375802861177207830671354232584219424940820137797524999043459648543965081751326244374940335858423055142080258156092925369775914077462223804466668877456915574406540974196017457900499387569173393940765556146172294896028183291921897817895556045112069314567083432843855273042712198274507215499161496438521606104457123290090860106833803403692821513706529713707688861520160671665737894675074220432130367902418124631354638859655256155087919980813196246131577109819550994616921105012493422322496288480292713641408173817538945791710371147628043348587360592305550846834041594875939100650921623773299945663768487318583913609120247149246694597129549191413456101953076256211902819128515994745159818105546767109726445931228045114967768756153251674577077175018135911040213114314612709134720249377864136288635487457070422075962384997360965721950525938675987623121050720449598838442293786037388377514310151303662637114053004732308388083867289464198594828487964338472210397612299620603151783611763782839404131010718564976910527295076859872150585576744594252730173698821315326139599229126438429356096936039278115917099013415819848570699226999132492512555561073935490230271780016404014416750024578396464021394018510225772533861797189067028622992822675486725432097256082367142219522458968283647455570340045051846847013997433764440297621118779905757841333327400201520990224583731724868837191446268037584104349352679918206783474880096334140798213304927717486480354514638464653574421361991732539754862978317231112900135410892272712718525864810929070883482231829273868000431076676368951653511616592520345406019374136399149451033074145708285505439901552246622697903242552918414501217452150446242609386878059189611102026323251480058027210575028504354276682050437901815735606113279878695007026781077167288252515337054728597651248862101073444904804025680331350646052654935666752324869822037856729069068980574719356496771388953158192109560609002349303881964378348083593223713481143989035269267056950516583177075287699861233967177498467926160242662348888699837955788014593568188966076106021075007537118291873292125640166998849990723532259685672220030109972197340346406070090952796276234918036617054080959581003282651730799798335562261512089956790343447569709331242985090994331416825486720311819174910028397922349384317300136203167716606670148494344234906151537732369296422768431372587831686624163666248387345676822052797276725252266921589259578567290841264985013187437791152105353718135608209288289106044270542464603752904687022500479146937728803055092716806760866918099729336498117164440449386573807020058389321926099118262585216482006078649102101670629583311008533309150575446701936525984139806830518831722286201655390795830600888217792221364916132789874654926975868577061520607411794383275791698892452761693620170199676609710032945504956554230063281145604070966559249164312543252895268071644436626661796195785925815000431058272097498370836860297904637860820745896477206132451609076559841335927718019701492673170189137567124932116022169075350979390552002922722751035965596853444384758248945423942310941141045051806825434993363269556562270775091587083427781597744877572466472664985251116090282470296011763889792286011992521729255535850506320673929937744936634588395595406900665595649702214236969791702805143902960703491957823196938671612233355039476669567050344293780745201436117607526410052651966957594271698066308174586403869759666315932935165449220220815776900044107490292403082377595389947207843483840676006775074162034558055493335640729091485172991527733154014435682446729139325078851214879886289834759711437661773673608952309392022421135824725372969338277268116096632169866433752197731926308570612891134824285566800955300352808852727488287123877616432424959614314689853450557179788168888825255147057715150854499166565479985569110508808133380145863511812697392805873130298328877093937953952276420541112654155424245665995942946132771546744494960403936999127358051607036330931467361801045646690563936378241117768623663409425207438016496575041483399849109230872205069685678121315695308958791210992488017304700052698145513268126550390603573891819243428494365893495214982716493334012987997288861299160676314955762980095572934899725676022189170387958766169662394723961392787174074310850029691488771059088681441566157393854667903340289887067305257654091263371881030316525320143441804247740521178263230173653840229350713775397444479064633008946186232756641408162985097853117680487167176108039176233571088894250739158472831515334964754182705002369112740321508720278021591268860207818097690457994981619283943544201310488686593035640415196148457921106121131870918984820017415251759512578845422050143846331055967889111828692936319073162529250150325003495005165776097395558273519665552881123823067555945973914846963453326240453355443402365874825208951952932095247095938336179077156737114171850175799849686192189239777675065016754355994943524171046312514690425721941176495984295339143386178914119310513921101001244126608106938378373953300762622262717568618640469394459029883534839444816980881141811807902668255097015884134483442252179213473252614835679371106961233738397667527586912560356061927644282091033295361144166113888915976425424280284165593509239839722178776441151605049542954310906643898004618683748352005736703991613614050929197058320786965177861479654842578660100668887766607971543261413470832563746882197832319360208067955995067352414269782663575642492504929854425783910669440514789199673467730334547166204618595720598900128129229871682112367714089653269128879653017954157244696388707694098620341327031945388342557655143248231224470146019226974129606744558382652149608556829447358937649312011291102249214767956901884279919590745997450883021145240847124319346956778234320799598365650395638193655639502200158078414486256538710300079108878975399280320527190668274473158304837017217822195549573263329401201455643184756539137139638876210812787454577967186069601776185464873768045333611889549613789861633113720634740945271406475610596883842187310206859105464545543763267453213112052354054682817871131351819444901558298784440539448051433144164557845449017729101433925354432011189139761063288856150780239987552590778172853548421462770509944033742362781169463330426459773332241916090600386417124223557418363271736267991599663874123224709413432924218090840389166394963387055843109118980363926375284573114069633647198859266450611605777669183606633062264791793786672215860934306017575753415897442946636581590851269029577941322642243160466926120534977053270083033663859810352068447747837574930039980669146199413857410384547787211355531284136024213603109160573556187634723450989573458107344615527123687619610179690869706128170987460467822735419584837103495327477406777398821154555992906886046624422918926829013261777199562491889838265135304855889275913775905397743665557031685826576077384941704086975876371415160153616359535374141636274294796109727179278724075879559599028687341024427484935976795545581886337330088583817980679597444187056209963677063748575576946216050418042797056861161508169120622789143616130945049419958130499145059112889967333882372309924837351357979586473630958844104677828769798379705364212013247644143813612713731216860501085118572597048859708796687668342487693276484837170783681303729993544347300718871491836704864883560448083513451068150728835463665493534367608165111043906862539092928231209773538936843436249630788947341614415259164635945615772182890467385933294448393279001533405897697818351119596415337302725049203587274900249569321308592419632407211443923839073517102345410710778863611058524320846894070068384919747802781453638971326674297198684202749393042109992746928752226663145370154757359202955428193479208425250134207653894206585645967586192386542014252704341255312108064872675304299495048179940779425882542149962600429904473513373309702752230614234377371924884145148162112385783175119361525797804076879356890935687561636073403426886559939357812268810165061880749007712711988901998110660528863412407810474769300152591961283104148190523375349643926849327284125613138630728735101186866283751448590149984319046906281406540415849099639849471791523824867864260839822966931217285337335137859020246894106449585492823584844928143693711228557477043029007424989719678378135458247312265089154800864256261210332623491219435404147615487073938416145910340285438584024807316153766550791254687689540586308078847534369291649699701450689749236566293273393308103136742997749431080561415862099748295239687044207963798155182342177939416792905607838280288284134601366778225312180005212919423832317507177204664319455064325961382885541651954218416484677382895109938112593155339779042562211365254945589475886773748316119945376099947798297631247097368399573642981750450044669512488934023989595160751119992887836054113143165935120479769696163513434740552756995516839174179814003989376508079212655430193016406796725209087952223660590774466313854409433858943481722192019084333196464374646752996573777858729366028515793459668977027514502715658452771795008854485890519037809134726335178711465525931769637587523851903660170250659585723517981916419671002946075035694253937265661801549532846323875613589269546343839346164870993723897713872832902551222324696441960962542640651023254500817231393163885221764765694029276959262294151540366096277793598204891251994410276988202919729958463417565141263431993098478366479529666117222883901486141573178310995469354207198218862636526703320697686380103739927126393443924381764820222391775662575981305601128239549951761213475421340214554284309914954502338156028173325928524583873051036748793246642707474961561342807423788823811685637545385779181635746745201088810002642696799769708391095016676108239464556422366200716312560308554217959448108918129961221967585091178042745697638538114917912563097713273164794780412027892740464707775389698869114959742629016553035800522945764945794231891725380612979727553251061985170816593998855898196677565078073533980182805083581093208179343297072333277767489956442886287825828759850551521437545601992456522396275801491679291846775408719389308712706845940948155671673893272538254510953269701320456031742669950678316115961188671506775635384037116388075690503364299148463717622908529536473574762750453221639061445218209102358336881926000472320798669583196032443757862535685074608413162433242945054269936088462599568933417972059086137326253758529153115822534219717663308723053991961016745566153780291412787847786352826223479808709064671885511020712666350276802588917511474084726387008425489685719991243119229899662704621973138758512108437885210146680827003252316036545782490747791422443332226496945701286169773244040199831844513036287196629933920288987883064318285107765188358268478178754071548785405310431419227502504728264863486411144899544274942681792388549666556246091591053290671746964964575780241395698237895304124718152088897356269020275405749555642399624134469918748576211515166877364917575303336991364826738072027831773104281973488611351679814120653866113866277890243314013048836083128105073850411825918644849328286415502605610461305058922515404575769504171091620535957907040367587739682043678214827432291564069761394083511320650394156845751459316706493081681175321926243329074451407311522737989831391829795032545679585104706768820325717058502758404597100800050301197911492053689685891679908352746833262086343494110150432387606463607197527690471285387947327807909970327725136153770052522294663942466591904722702721543777180939823870970428726882346992449652321902747306655636824549503693467447166725359121632641628998667527888039691453236718779431656565879841192982260981537285597439327802226522229920510992655304062886942384389780253085130415309565116110405423876723915693780963509692729047176996133409981340748027812380655813242471229086808822054308524447132042102710106225576414595963869461361128039882675158707736277210802783905607507503333833228985217627849879136255042469520977546314466922538408491308062654091986368160765209145420170743938826504037085382578554637855472877162042608507579900709067276751186811494277607550140041992962838946515889357881780550096988855381304246025845977256670230110925198740700881543584783342371100129304739621984714749205807320549771228965337282912299514983161302886340014511058079462379126811496343748565956484129086415154708321803086209154290996286642788397799340397815078476570870608225714525366217717047697606849822022403179578894688297254865721040491555030155631746514661835638934772466204675224362918479897618993035965622265347291670698873857539893428706863370894823102944033613688884541495333894736628061079778437551166350500441184274962597102779742364413944233662389421227932329933232098625784551260307568424349307829170521815565610294624642467081935663169931749173750424463941798712401892122935993881791579674921745353510030496942218111230562444374171957087277247278021220091471743756859806441856805264649704227063034243902847702369736986628558302395369221969058382574741280810072221408844734089923210039539943515457633674150471423668170380397914073759268438181547642116050711292430408891247003528548503710803778575656426078532026990534837468180216013698983400647459766429448527513521533032853268509847532262173300764048404046027928856879068471138488387683394059999236267016527089886171544279369710027144305727262886858645149215141600467447055364978223961125189580144350012301173334833434714923836668280556312750273454711841467827733303015679707864484079316914912014202847980057141355227297052908357652519580112750937340662726998673629347514060985564044011851694716298053898941866759265803720378288729431559673336881847770271846384468849759033893822761890437922658502633024496324647405695325322846453055931516289483477849325984933111572489355421593708090260084333731203022452916806224452041161068975315320143373378266100573727123071439727626198811733077213653651572005271067570932223121198652323466455028433297121720636596552250620993180947341007120169532078947501819768778076097590828176984428786352985483094878885616038662877795690728480675365851089599262444622500893865708322660626459033992811255136374788382526689258896363366961613335824888490258404522679061053266957532311823095743515443226290256807444845369008612645987553700216564769820269814115886208536649423332307278452854388729110685263163327037672903130385761929995758213219344887736826563781122023664398638180820426762009175692499728848572653297926105693617308339507215502504231890274729972214408191805769634040213613408504358098503009768370636735984163242020300607407418746833080060436503133767384193459641432706812610481275585079531293208577955118185471308395252226024078962168881585356115694273590913119291796385696164859416883153545017001109963550326673014227489614895438394490107488944880658041567140355449911683788400849338117176912952910303880119460392746719725795492464949009180472187952594248143559768892251256125159093388748289976721531189656632395406559368427291758110138248954851783274240830512754949471465991745010760413532263530923955178308909431276245578749020229077930865260958635635009834906065279992587547452548720435644857153514499137772920274105290155303108197271149018683384964341389216738331920639585235434228786092756728872986728604159385438971874195593386333472684004503077013904552582391094324303247208078210228394920498923283506271352226356793207653803639205401901792751125250933958704363337318668063823141684542610700257254237092040437720823889929968147894417319548982165130091405938928638893927282071819608889426952988139825851602771501911697321254902444286620212636720715150279502191836743855180040434228606199402123379911262268260354946005364477288483313771862487767102951799522385758462843167176509530398345062058758673907316063583091155933819463358527650361390018536309996903562550263731840167050107386356583929496139737442880886794124755377978040288661882940005439564255403776325904962723385988880066095984534336100618210533415357376448538075943591501745482673871746876517426551545949676284433942610654407190223272331564113838112565682654468705835419306614914690595776451427895668875657393948011096462353841257170248952084068219420776523122489546435611851429757137226133656158875671699992075496053277365418285687441070084177673842980495552716765176487354814208532837186891879809593996966428708941330600610130185717616236478383015910854680651100169614224973534707286041026030068213803673581015684460125347116555365882946620911404173287082610213234060958029443612852165094795859154074635370502535006718302704311251298061960238223942684760874142150174999650304281270679785254654092686866540027355801838157764170016316810024816710778775226736554882171735222350023997847665080693913912595710362083032834115444044649171548413651587836694510532859074416537936707929172091784717294477779389438093002062677687361292512077517343708473808670675226253898278047857193535157325710948639568110998687890464103637030181143574874688442276680037864402358732870333463259622812745704368792696315339888876562655505431879945914982377722781102735992686618921885376845945175055981793148957684555906666086523618930094301380836916635361071013970795992323072790103058008757908139636195494054018308623798439872828910101778172126364588508618953846764880194984687125326684119277584196695324714736255811939030101349369709349507475643876568680903395592905858828848259067970555704471911107289123386788506519552026361251047044781428943149466485513962659803026761754770202079004804594579864254860050159674883729905810013335427249904683841458680607639384024491410746405608803526536853889009161570228300068732510327693427696136825034286625797562414355943693486394370287530682420207871863081181353323537660290580493661749274203355286749070823513382442576284508108384590139211034724213222820429055013564318763708869275038813540033813483585721629680117196402667707897945021337720520994893343133173072921919502589494332860776204915918962119354810164047849463815173285015116084359958756073144881183107799260227418571556965559465558055623083586246402671699838311671924779274450369979729288756533788040299056467193147442776519385472522743937917870423533625433096210405407905848416990897497381707825656157475634571269157864833872384765335721616132535876303362671338193717761635973519002417429936687531161777113708017022060033951270911131529955045627905362791117465529501271025951505264325178601209324141024797587451313466312670426319437018652353614439227915058987040456257558795080449112270113124058865142886646031784490662520526917659841372524149450522596845357050944884602158759349664797276627844463181166713830774895651270663148860751714518910035846516880421201971710981632369360703244197885599373169798966916165600593236495586554628959862922568632963767142887614510895229769860542101612338604032564012307526578928181198004055108961697945588662277678316733682700562140048667791803343924016963005288163360630955262717479129624856102831456234962305581975640338722576074975799064962926381998256421231999531795528283373585203861915723608585698635325392423116341315247772595581589552655286996271697262941013975575830307715932195927935825073949968466630038273826385694780148570533653647617196553052064402136217553427057168547685928176366143469106845942071455540630385369464002524058265613868170619976975793916968236885972544791927500535704920990571794889139820663541829872875216781869602398083818082256172251571930602374095897379611838258975130956239407602907077608092042941685805218631672625359874652962612748063095161021236339719718024205943696387614690898938727788859877336536793486384747582536287819954187372508082358200481639164817003939960327275867541735076651993214672899678270438157572425174823262556997727716882734504917360120232791791583726844060649675994810793757713458995926022311868229828504064820134450774225323139709336007689589645007655894828937064331302940710717382740095265421641071600940884100179955403125219637445275445094504998785268594894613160837272881747509194407349245858550811711733619486329697767162441764219437838457104194347537532137194471506373662660367238831035150694926740361410547226997904980231181153589143937951320460646063609461285448734203979422440735891585330958055842330821803624991784222115824077484216578386880994074759053892778667695788236198600324190633151184859154630701273834256931073560456594279646319562138533392115773720538692997413608048733239202038337514140515210877743033026781459947263005832667599901666460090524954633234520948791342200938907768037678074586414864530820822946742077976876118717423254507820072695466236084136321871195316882691771036843075841053184550872205612748253578957562064023935039809472740329262808100260816839560077990616054818954559788616841437393445150613049062964431362805159990031919577141367946614383754793887089677938248339306683625571873448713251088487365639667732497177955352065610604619527657737916844865862584235874104317105372269883359151531113090434955537153754800275988991751207507716154106475482792661015017060504503161449849854365961516376867301241513440736065826233941073883153317685599536796646465745107210003986680855974125061152058401850492573511714725402817695634836859474595136823553540253760223080920654475701543512068987221638319509651026597623546400057291173661559195269208446153083483631581939679136445407284381382746127457335316127840254507966602537543550359418628482979746057781988323956026605841361895645510599307632921645637289769014905437135337014709936743435884927004173905917158449181251409956765398248796708062245016800251364832650758721709761122384425280629333985474312198671855580391040247234452908462543216014972201536946531616672957897668589182042199004522249915603918816923528437587776055302691355147102023984382454144270139691952124215927101145858697896510402899773485433176750685885399008093814580965356066587653896459976405296090952620461227858755242993672439210417768195845424374003703233168221874388914575504699484237502009458272429779641108683428630467791750584840855769156105141947367400135354512168431993305487232702666129599346287908406303717868350243356424964678608878045791154034775007600131670192371283961484636624608852945405618852331718329201080827334742488524740112351728492947119724110128862765451064653630503451031252945497269279614904243914251542151205897200843434083351510624251724178467203825118764626773484618104970491665998984917495806501877320017454377166185149198440820056934020215982164487916297525184339984384495934237746151315552049646524067892037743499726922976743676806553326369103614642604188523888721092136846051242397228198754028723498600335788578153449332227218664536917232191490094682648854048806518785036208488297133190265468314468407255765225845561134542551209091033305033550306497205125216337886398803799636787239148775928745513619606347539465119680137150564828670174881095783785284812511106210766362961273596774288385402223138562044045026764089622928959466043225846370637965726571299408132086025558408406657257079960960623053854146230983985807143595139153039899016671167287597796507608248827387880897605308634226616358865305483090074730626314515314479917728755303895099300343838369580920805508852604801009351898545653977043694681892789304683063158377659647139694882717716803170572334454813722435924092289386082754989738018968128386632761764318382809541202144155032864357151682561262407229939026028537193085974991958944032885806649742396694593494015854152639262153160296589273140125762612651029211583543093510968646187306375605503385417440631114176613506046390026073248579564772593833340802662266954352429320040396470739308717807743954850037517718156511067822729491423355855219656004457972458708971028095108158007908229688632868965728297846381083954167028916183165779166538989917467322271473026782325154101616014350487573332006095829560387893125821742447718247196106554003288613575039036200017410159608995606941331307859333362590299043313788707217322409326297355684006975058617834435735576154699346936325214659710120996798327842081418288208574511169916234965473712755517550052381326356406922869423839641876150287454104191630166082398223851966628970210620523101552012571838656636648185373319131491778147823491731101372785529985263149377151728172284465995579542673510739563197831683390909286375781750442132453535917019611215979126449451400882233437894305214303679723452411997981988752490273872547983029738147593562544804484395343524090430778047300343506401253812489162113802055612734828423511857375456043975528676667144114792297520992012664884636956275536258336998497424086100987324194743755316331938959101397897747479346420251659795633268057563887326269611627015721461432623831568204427039338248049180020068371925380819885885499065776107401037151770894987087007830302030366060777512859773380838531390478782985731766968970760528288448088734947364517090495566997772837248002465698710729464179000256472392691306971685473274924038912848562843366897855235598550076375471472687385356656500280206611037082393713790718680655367961307043126922319251896694130504890569496602814410884235640304120572397543000842212421873557262118348920663571285838164258903034554680514372146794316981831740635229833072660400460626057800085901968476845152311905074473438966417541398189799755118914339409544769452506635084793821657259956653421954507112687459859914362801643570948112754561471583568939966447344969152012185373425500665940085822181291098500407125669077304526132466826229720096472583649290281695606618748450100765109187890610395285883182175165525909099900520396861933158871224306132879567996835492665259423636920224078274252852592318650194355579716820015156595918482717048048978632918673965439017865656941575491298645436938507014224351179202638550931306697040638738957734297675244638864695221678131547984735741958952118378776379181684270295130671845043695595137585634931612087629106330507446917051234331947146203066502788906983892465445495726684715646823831053327163834731218711028584761887713919711105904980296952377161988005123996841861840961181781419421813309806371387260008512647428238870303129028535099452425747353563924070926459161000712741310478514133150932248306743183120117362759305728035688892705549698895661281065316997836464321167894713706513396341188793578439422813706972719105205670029989826137390098506125447396551551738701101751960255444942321487611795732502737417222429076259304211975388840959339098292738597392265186077073630764955141637724329506606561845459543456244730370299634555385716929362299993523662032523531857377427696158626667453771061706177522464190281477146427740833703074595643210761245929454214025421936088508690663259298486583197683755888155149049829897437433011976799384134444140584456085527284241299553524401312675203928212188970684046675209001836557878586641317716274501370364402252434835680194842263181612342159450518459171238038208532715099671182898077249038356295508189656583936766943537903013131214860904445307702404601949266599560233176862908532755436966940847118591990192907453860169740720905592699699593986064360716368887194113897697866700371842056683853840373445115377149690001384420195046343866303785008761022994120457090555832708589423518363947869362830160797601085306556128677389999389052460216545912348510916395823232161762058680786785629494404442715366534135372837767464020479149825870811373773944764368404062496374017468189436317997575965529121499201898495693950467210748325352562022344610121095344255968280607656262649640252665449272902522294536525684684512871851821675025606207473525866632886696440204900704477498984246611490228603821122002524409512916487084005036307553776654483881551210704585182839752340813002901674708454672971693036899070193782682703841042783511585029850132726968972113228742578950137997001429098963332971950309576483887564182484977357258246932638621773227657477224574240963142555797200104221694354091612645641091208630132117196928262543585378349234700945995708084259091544225971333556552708884346071799556905186191060993339738725030503127055791996719489324872323891527093102241768199168252433880641252264555585933256804295000215299909149270728343580782208957306939129770068533964070616637374547202085741954640371641298943573658327377061098728968998497793551688458419015891300301324891639899902649699528499637516763031220810226154597720081911882184267234078551621628647842125168993440751152809502477944462934141426045409201597014765896256089162517232406372713622586888573311094386795732540356688093617099181371638795243427990192723488186952991856805757671549856589427110009121632795738603584000880736759286506541197324298023404654354683899122142500951613640843314707504506788179941860576454561232294281698872773797582079823177695648206211192561906942638852710836968182847654118508684805832713880315319414410713060484041092665905118017908454241924078759914040293215607835936468851116320673365400259622977505381390687099464119380597355417210478426585014920103003685497166497372828097175465874735998388087835549552363190656824139075372354263445816248535124874204205300341465800947375909388058821038985264928954819484912204176955448168138070166935142236867553865500696917511674588594522701427422606295165484282516991101645847018327236395877877884405854271595756874800739653129626447956091312450530067225255073444428829734836350756826814033400645626091398510730659761944252297383906334771059671234880499750301700617924830891214792843700989725614713544301826673710205698837762214303878482808381974087988370121173996949214746104906320622443660092649563046014008120056799157060145745399657485704007826195995738921713765195273669288107509948778978835632517369049283879626899152505743003320016848190466472169869451748082883362462282304429061130286012191033412387373583444860876771080000838744171686665832980245238562663508439242576756079190927684431204327225727971709579470123088883600884402909547127149248572042428811196419125628652508717929208408013680857461912839682987270990053396306710271642345233061669397836202490398677488753631300294052119958497426856877967487968975175678773120662364783809463724294921589603401936480957784247529210081673355332720619041781110342006856569996149347219175743763790861343577002111478333946031637590080744557754780574979850340721924813099986632570863958457277461159426731467866127995656187872639175298808471151388090725312455814383226917791985313342093999610637971828656666482064673894235102472082696328936368123105724191616086696658943905973536100856394014948117796702470105052201521721986349202058077796490905808767602053692114185671110946787205861718514888829669099891379270685296430251003959662651103950767047290760091910351656288575885361149239027573709443540512579113192922326295104259748541955125455173041571202263362416945409794777208275828926245991449098019648061015395862588846822533328281164619192258415911905412910002381532543194045874314401641992221901688405782309106681712220601505989687851299971766400364696094939435752026456347217728501093552517348573656750196270231897731997469119091150901842820469381817385468588867351840341772332892213607891308253116599386696456977997174111405629565483192172331777698314281138208780196611261524028186214830119081381131413795971960980025150525149827566747514688449481114145014374330132490073294431007413196560609908735514311766152892470066543409066316419516674737638683492240510014322552676265553725305453112600405352506283771556730394698891361201268743075040596812115211520862805066871001653379382015371924292851635457691528567081879344368146030731099270528024605040818156951664928269226167228803577507185071467092143555110075311782669391898441961879708938977880778440348916904616588536886294296396492766936244755847963815134937284210701970010162433938207817732914197427649712587815350897109584150102214824612735858839628519667486979455235958392970854078754972734952576851872702760624298957638971637341489711884868550586114351633986469361543968516727464841548225197331672892808539038249734937522153101000472888080331384750776566627163048797462397568639448976785326749628400236605678960405168372426922089060351706612690160617343892103540177295802411471347434254912897437325239610661689304062009345193574003052188370654986566175096267129626338998664048431251930540016356435398088946699956629794766492113904417144544452030543649111084875839269520722438618738929332353809605579975376598589692420497258603041313125290480030822133349129884834341056259979952963466318115096287763197009034615686880506442590743286525125705782151115118677780985147149454479704016714412873960134615977236256736041866374119708184585770861623877775480328759627670017174114865693623820565228356511520305573882354299175470021685772814985624715701791453652561939311561240347653421189283212976487907529227966878624659660259094268790980054580940472927842897250026978709155053530502486416202702828967474459881532467709251392920890764891745841097991495688292109368044551429684667355505621541097734982828999904009641275954633828285474419637382293344561245667160498492744220834636279496461066311947345967670572570837588019366597972415935799023367299628525586535696601257178842645044316332660543290333023449014528729710047254736556928114854368511117144958672040818201067517509664127969199389171008792291509708862271868569197517004384973716498837671448943327033674040962021829240030668924519483816171108039961236776259687205846183765964842986569280725921755100980226645206376249146543672862249855093375232517582779318413394751099062860454899109802618606772453388651635493149540999146329432316040934775148200347784891187952688682599815303089984546877488984371206394755103092946682876329202213908530608533709512573158690940223618089217607298815275670821388755851453236442203886431884079583037077396908901106120836614997848839929078821390089055613338416837761802144898840802559438745206551303772379457774728554961863408738127382814943078271196377986698395900595702259948974911210032754445981896746418737938815460237447265719658452210758745378945613304258363864211558375862691026150754127859617294320860146195681007341818708742486294760549016389472380418855621450910675172386946898626142661768190840950500130687651372678380175326794108885272391300562683484060278148116380586123253107071543881461407903932512874108101867121706721967987631944363133902364734570480372837183877073695842063399805984109401698196964926854792843319483713336673513625627294004964629386386831749024859360573692284448931813832136965241366655251180704957653248706939810961993766187884895122960513035609089881414667656899598074474591532531403452711050752121904290740521078229776666023187523608553431190756042594161091151966121257990871627232341343985551698278312571627430733150770676661004130064725576393737344925743045723936877942111588981272454106236512606974131707140751200085192642973739110671530457664864520734937214242824136405632726854052883494671427986120156154155115630286800972781367123832828659094639993768205392276296992988294096354663066146658609985233786253181979218182519472138836055274911793626307394560875015175547828726181748970140096309161457184080330617388947277712552243858714437896887106540530106962043054924103978223682300037518299853667623958555838175727486950322982430352932756418916175627055939978983920426543988857177368539786570911477127974861122909542659728497638100904137859377428615495767247387796680071256509503665351382659115933777203174239840823515579763725534038797099830466199612048014532711985479588508812175842769922072713931939425289364325218630274774852606111277160538532990756106877324089620489054224091820450225459809573092617308357846114206270223778453567423857873618000837141453015950757837877048214164029658536021800570804134256163622140971718916324435558665009309497607707502158434967250436450026226538417824873519344690386480847959651052249541728245953520625286974882469945146454081319453760778866480257386494327937581262038013990246301351705380464960492156311365851968972787261378802929337792666520427885178330206814934228061015004685039247203295006600594521605073089251058112746738182035278238046487542561152499202764230854207128346281315261537599814498229757515529612460090917762602351666713397166163900887982930413177495416756528036675963443094321941111047930978896278028125573265670063354248467942698303036926649559761005489740526373519610815427475358583466832795901755573196950935325065537383318963693909816261143371032146175057013469342579642030789968458138379534722345481756982196504580686402562669202615870992882976987597956263761720058655734645004567302599464394389024007169099805202650497715375350790768368450571480279977093725733265133430629991426841292715174210689121354430789203674045042246771516783838644362257210365622521570172034190626474972024422136326581252084489924861407698431985679548151316750869694396025328572795463895840382940501551554333657104146192967543837105576043588880452866613013166208550415534443751029281662253985104749546524443756106594054798059077229699238315797601213860313126020327161719006637741512503648244098060227544142881507491679690777712503392514327690835241260727653607357052080999923562543173382456317733916871741064766704263663759005233534001168260562049062019100010818165367470259719881056137548196292056123064809955548291105161401431224719952614097359828531536472848283017535068539864438091380741024329846295574318332470096428156153073323307269783228766839772435758206034403328880794431198537761387543155533225275325350527274766330534940274887999523658445435912845862930596567571372482739425882970736355721905951452886664768101736838770886907849386031787699691679618459271551412644828630145804828402882501372442293827703063743717809639282225012133851478520858046362204214379015981784687175069503889538263173092099863474992912641229675036396923085166727844575254170906113381499053249953962498245070941145248123377802929630983591962767070067293321148231280557164565945556380190670234493012051270080771696433179720164449623188290171108264078525619803564775754971253047534580916625600268170548588215686491673657715705025695715770506537348282518149265594052879282650349431893577768203740263919588475017153252240498694263924811793147055596856309824458874712472130581286091302573030786494972838171792440383132174086323760004408965428389639868865169492853661244347069397650155414691872597987363076418369027706647063251710764491765980448771778690029855237651660776696932291771252645689037422531513651848600816972035145556645134461598023712043683321619661880263399348293257163640751362105046850533776366382340506747199102643776922789918275497807108363399121685656986965921106434511879078637393495806086028895209602174810024071791623859741317484766058490272223646652067670332219584552287436461841347026846125988722623261125538601446590629289431081823474754894213713723369021755430623259244304514489734378997031588516304811032095501406282539567556333809508892187978168749959958198181803361293375041775155842334731409001204860994176231259841917180874270921495067486204692020166953804537103013536566045048159003279144203075094386979506728718604835279838569920143869713635089043954271720091963097992107145098393392891399539688327538763817571789774286905806300939332437590304903470186646068967258967363895016018917365719757879008098168211845097609831265748609508419995409404799554397940005834926056746812920384905847987654831645570147304449867187680263612977525227041021766808373554135748880954688070318856992218995375932420505427085296941485511605414133281436004846933884513666191020794313290394006003707186679395701201205987731352159345674489856006392091776418184765304926184949865003637004158433835297165874317677902934583979512374594394067363762984114170228541832681575307038530666083227150179188929094482370862268552387012634169690474883730472827799356226242374508096685201198135212459855114550847457331806591049191542562189151058314079945986173574387455934054500905672595697081463025010957481147114344443936129748382341913126107743424791267049610365139562386616905983807061264096618308034271183201437609447159304441167114217900508755411296175898286836463737964565724321852594401574086575940185688346835920407194872937684669189021913949917079938566676674229253421698646298569604393697052659992739736570264287440944830600083098181720933243867230543808100967670074604924057322142072257405467733192759699230608990938712259746933011378322496814552757798485383250940894788556731364006387085537258410164783522899967548011689678611761226112816017113585477189834990731184703032014565313929107278168988700929284199404658379775408479349394275861882690048062010121681702451853517398739420045769520278944787290864421571809229387193688266622929430444181735315150952202138494065463922175109063675302568567079623436909086319911012507927158501635863110275864939532213685439011881731305067651128878717689747203681963132822892793950282633182575662565031837560657639179226594458517810132897715460672823332340190354242197428387898022067652982971522078311968820220321698223753704323995590311280413554750278374769654765642599616214349202455419012321999154807287029782240085796814487866390619343796719304332688316007985513571464368573561803417691398515030976332766408122578467209493445909644974400524427749846582941353470742990443449052203973618180394446547612789351326879859133785545173370087641207103458518474690501018768377604070989973205835335567172077501275307882556756519005029394277470666147901331083732184936622431415552124009372759847582262100090911860465954183569741479910293618988281342370965251073135511947409242249223747290713005101919837903557224757321282653165877637626540160391143214493090147139864163367399197067770242536029011597736293573714159058592960983428907888377152318054249601557530472984985288864656367761907929805419031839861888263996493752589766805617450794858142730077197378439070543739273231409576219723453213476419163398936940770598845394835547313175595452425392946985585386881653686238944062623642207654284394607012550137539382281465212338997211877712934504954676698530237715161663561527217413523355090846103410526049405700794656228403045899792388365348737882787933037593556108663243033465074227830305365442052240912133148953334109797316218781562625798896125549247921009562503236658665108088377151652198088240011014194417376800027922961587070720945615941577574775827425988606302360403820005256328843964265839785922962702582850920253037024473957443277581131890331546099642307025227441529627800459755641012432565700364729742119315928609640414309879686123186680144061858514838620600616053114650845268625846672965258302436501398131317975269170315169496122031585983352785775896343677893129496240435356236157018727240514825316108739209470669715024149139783119480735025522045568706434183168221884757930167748167418656663111895810748615554530903983910695300141195776427048021109070037888037386495977061908490076101943289591432201448800889916258272850940727989610044175614049949617780318901153094355765557545703737310278531271808243800446091905080386247565742501926550548543800626707931687771334369213346329992669785761573873098063353935933730542705587472900663049017863176897473909932424347748688579502674186654513747237022112267175571497129562688347161404565748572214608991354099103242857792524091210992305675453401193878217047953745333202349610966936007302274676841525375725693628493835846252159016109179777080572278911652047354870816464109788564013487314400919578520587416368887263242604548281925348789477824152789272295758319674819513515670327813808972225157599455157992661943295501492026438247451988254284347352334115899057066532745509592107473241367836159701406468169859868205248976383169223626665519417389242227534397493604100417581488209824951337356675070782473689929483631939434778708677325823763716565657030461845395302453044308489400815854072560509564336234626884063784518946926673391869149183469641359463099807921846393573370964343756204245208176652930638148239425234693645140289038236164579146137523516679504601960804925064042996627794643734520412806690915394447480403812484309656397079187895545668431724357224067596043688797199631621507414948914393335459043913112498011324795425528076807073906012431067308115758985408148342502456550555620543936404744099739110037526646620367356545484111267407706737123839203956497744364019272752266971657197921269910588414312388193330096631132940017064694272289952061096629187109124996430555281560286444955379240075950760810458309375344493777742477078439869251718657853060267829347404342304746070004694615484107026131090185247999829063307634491482563491358620102780086067720203353355440111295922953636981163733896732707489025208939787981480256805384201038612322634557306606087439339675416457857288190843438073753033801254614421924879973375357852301296808102862673751492736657355267600884797438858484853866219730298741580689902740199939755054681941238572322396208818753413147052863049005548660216640630577403677164462288234253631463706673412787851118994531081352252736776708149449759265215868790882136623252625100790042083108595808581385921870226024247306142126393007839369834663471408622848576966249477760369719180051762768413992677391016833940676304079293507326045218732410378571568392967599531338901961479206965126913696205042574801372957251368288292527586180007574467311031763815551170194866487574973707438499426083154673527926295900552252093671713287738383242068108766031204608938783385483048259468708843845959363195925640457864373050673894256710597333495212659954910737075386124954469407587705857314111146900689495890575593737104457510638384330879049458677375138810759420508897995864517011576191519130132058328580644492237349863924890719470264808026359077753378894430421718642121695852790655388234623236274274780193823132033222240889271193153397637071343992424777302520725423178096868156183414834093564286324765510613272741129541244264406418340566672494173938125086172588750570287152873366879478144023286382705787724235797517325006825098033239288509928848830453739385147768330218293214133550238622682225661352967556748285524777554650545666874785511325267175490769528910012465719871153679953811438745357076159910330901226725906941364800187929396529707830665160932276182506961582953738142311389071081772209920081128231790958018929879973918241211286594265366975723129834586364886941869056336694785647046854470295233488865776221262586641740573370224727314003922797447914830916612007333095402406800087086504465242815319920598546282427397188754471572401907022438546666386858226860808908398797290187936417736840235656860841778752136427182751277332057536239226590591221857366150345920997051335762774255728076370568752177146933563638526826012596985667967309543541745712898361037302432416363029012963498600462926060415292221007631609307264465903133619121399505836749381474915604737598491847834634774961268204569737725796939423982712199096835082735609118300300048009952368402799370654691868936316432601970326253325128028603273957198132237246733718200241866361314684374121215879754094780327271546804046573221493564170895102320083367944773725601974176809931208566957240579631641513439292386152125657925598568392242767558673654120313051867580761048569125716072835366875529605181181605613407175562877077880600908854270008741982286796980182879865388191292775884268661512136085615190955874018179152068675279945798112985533186628455429283853984564855616985876885811960772305432616994080211677268139907485319062711682537091879596386422539406670114357461630895576360871247611005583080489996262390462840679964841203085626363520051281621632924957302209800199066874111804774683101308451961353037107784015776187511270947738410134674289636361552492385635856102366696130414320591743114753469836269018522886731248685598375983482460713420420777202946280518931253329031208295190634233172094623926115036265628417112694322906674483558799867300203130430075002794137471830098915655187140773041511092289406615866889901980325287463551270549019464275813199232466918785723746715017394983763378518026173556494764721747747936379530831901016063547740546635817381609286477187893329108217901178424425060735743173050523693174155974452997179319685951878466363656544470526083226574888164250479142477339717316423685644337917969973629024823160279351851263028763745419650584106167372787221544427270388767208991726442229024699209738330633263640612690720310559773323565177215711498049361750761947589254616120524506270536547994325552666760022030481424132896850909770023932259139854717808993952032186570979793852720991984116489584312541549431900141389944390625805931981988999843608843471035185989786235610723306513940001314153680435865365838240102516656018577398076645227927486029613621964956195345886076351252297500057606666074472917351821692497742198121698891028784504184590449466788967677962169849485866862223500427246544233999626146002951867295726410568575069576971469788095080981864479110641979517450002600059118442159384204182810171867661051978562506284460611068390232149565982771820172962357579496197992869888708053191114799477564558562392611171672154480147779571652052373908721381380810352878391259741923513238537681620295950060581218873098325193017940274506093083139366429191178564229024902351816402415929814154489223640801865508926408751919942426831128299636403851312244536021557340606404328786664825526825630543428288877448022078517974420392431788786460365666644789970556102969200901218135088761156578378603350203317641553883595982433176752556258918471904151272695165071100944118086648904163151180769383987848296361495835551911535850297814959514870176818447627840950617625526657268943671813767139077318413188303597206165807123802120660930707458581788616035370645761042680668418458266825237514142357810966912026918535704782345648989750488595437153213304633032313337340578373208211080076268861454540104627907876828366210357016421339265663579983561048600799836954682761447557785793092667691059635289952283777109587397237645559080679372670698069542591467472659365317095625510226915785067236380623920890722731353070221160168532190869162046266176575487156069568591947171383607498588306264857429042504059061125160478843986014176582878477217084260981912480307765408202963989147536605074671048017537648983123127758817740068807433500124289942988976949674261969418720034440414205484625922809906669077552870038086635991562926951348912195792001490837750010875165901084931559656920824296222113999132339618965887164385806755060853554829455397798053018732303411603008361982427229296274811421434902829545843628060005277453519125801513486261271864459869635196123532100284891613541293046141162961035772958617051457779781144332575578717624531964139845494761956559934006325954151276788659095519420951492984729504106958051498526500162847647944427520633393567753413384262329706336514400561742382878011289227028595190883540361784812703551944618739247312101087917457976570082863800018510852865403257084394405220199980817900840436531969500928138394197315712066256935852967896563991633466258420744643065611215590196278332990191110821134833683760969911546956116992482664766682820530139645379337868733105513447765943919449164930545460176937851832641827385868691847052500248297654112988026758967495144053332234400238959968709943183195542768639139976952539859538324090725664216432909278724530679269062920475993692068352356284729234935198586833591889627822081949617363616684397642960979241373256853201110617905720438587568784371844035810052944953944491893663824349961258116156601236752251963823196072960101371922365851182099046719007009053164418035553501182345787851344155024274535907905142414763295611948400908666372064935728922588296452994261925349393450030633399209508918164348747110751363841664639326129142361170442110190443035475518905587724418177132780557437026670030942920767269031871154658444008866266426353053959774814587810602607150355017028156784471731328996074449731363280624077104109987427392692847157533329481235338999502648153621376399339572906705798098373643669545182120245864931198583375145040903270956319622839797358627055437431084144634683438078077088859379117605346047486675099299310810170933153991379851897322164838534416216030802563350203749148108152983140263141393979660639017002542315747055166422978582669214627001570584906505646697859190484574816270480334588706426271406449842339730323244015587537235921176340751309403920831113966738223120491329814719456902837634316998572727709250713124829008570549414742480779979224553466278573218358341741040894584402239780022737415310127409548893653760006462168424215880860976544405280722187583900195677696584503400561667889888919500004972148952290905966081253718986786296645222545954954336952458024370236230697514698418533398733330206764002313342158712606824381604094776787643109462458900767577908410662151902692689872422132910773225018229109321021165639580853749806278972801482500650472413585349855073372374035270082822000027052414893482319497149854935301552660975962137741673405033579370499061345867617238070556706543899874425262819425100352337899331677172424804531381484755918798921129351231863152639523498727459854939167694578543178780149846217778801925686246422085738823654560688488540180689547084029922637327732766627946009771866567927741519265807548378449758680174974650003036267776284159998032810051804403864717300780349955303274349551353588946041672212599768248254048834118653161581068377298003946613579590593898180045335591489091367495952462963802430020660057247314305786277346104485030064867574028395972826339352416280416376319612275446281527509706333402160451445041722934656101932271074944072165531681940535449823031498303942692983845662066303924424392468165963029280855820989696423313710883297823963066959364222971414485748512300548267613982848717000451083980819711574617437735537172302072022985503317243472630350401110473514694660044097341990034370466043969997592568673900898695514766082658078930075179711133344294551865862012329542618544234044680456412939149912301674547197131768436283028203523546914083370362536644366172913173553537281863824802148852314988883423156161822572070250704961835882418525728557978757362197487921421474891421838443058097009368948269147570262646928521189605790795176600059882978518695091848317836255794492695747713845772325849735146133818013060841899815233879618469158462179889255769393331330363299181995330235167824356425957020979111239714438836227385677703834163570019709699233590337242349856441221378798815625007129976665700826513289761639029881764946629353857236655512533154379308263135294366383943974559765864902752008660857195886214689202730866725314105435300791048272114198825384230223760709336150676826257976270824238460939150978408561627644070917837361978750811652769033509185738874891939680853477707521145047009590162930885036910265797282921697584724667593739281471246697664075008301735512082479860954771880084903278307762243907593957933651592057349164496660684995678686403752361924438492019708790092937294776973649686849737649696254511316240255055356149515911321877397353717250989324742049973962542482691009520362312392206521541331222374844554956622454705919432961062468150596865219728492591386021959348842520728419300272769676082534022773153026756697307564266787127789204687957461517630711069038011660226799316003618457848973873969061102519639218315454515126391937533273555819767782435839262465673802313602349712797029183251705391391327433696585986414019646205374844043115114667705521537693418426424103552435185074574330909243972072909682815833687216355884777334416824340354587025810654398314470292247259305383709639030596450359592713705376364696473662909030688357298896276114790709803425678998770576545594700417645758501735337016780314071849206242195671467856973407774298154726433436329790774286344938805408518847920979657273056721563678544809555403483289408396677425482797616908855068879089343411825186864887868206117960304854778592792819229721864536899240643613002683099105040115673775037501026450561760210968300529640263960098876241313075674837175102265763405757541867830204078489943906471096638295349583255670805340309117585854169154880848060448330444339109617049839367561792359447734429091979358997336742211881986898945378941368630300995938885469073211829366798487938103200737373646022786299294694032058450793795430643849119350647764264276742013419000179196762881554326719600443666137995118762026262396046074203566618904047311029491654849504160153899856113889897927282361140416875468940202610941067287365110454418434247327923224152745790965514447506149090085301704715681885583520940833289785404437378763205093167437580466315908550827819250543834173089291754307779271639345647410191186252085997111528322928095010063387300993151121916002832374252545823965310725301897851485958453340288771138298862428704308158253205178620538146324606450172251341676362275304411154803041107411769609778065642724386755628429759910203946077598671420771274236027726876458895860441602368307449062497562264242797937861776846051873686566964722891936710750767950594236676816055042741461814512785091185567686412351335252650666969271241140782748730614382309067208103152525784592320907750276172338474101418008955144707319536486825978533325545368153913619818547587013504226474555103240918260422496946212300318248143004929678434241167166495538906227947884796569092832061888724779028169456137825442603507815945556791379649309188371944610467069173295205645310029524431738537944631668909312239216176769308039936014653725083166408264969824834272759892672674112968806803176275431984852753402327126948079658354251824603068835853250814053898967447298487143651515604963938559688826594486517941764473066754906321459853656428770744848798363080287492754482173017395829903412423803364820853367205060225835232411711547133646314989319453072926013281286812569833775755282744502881371392008486352230603225296185624026117248385319753708948935201725255166590034000983702680844600461005045013068545704734537580680806819697328507330172229189730659468133982332119877488105537175499507109340932382295686824712462800669645426764909153028974778481322370171572093494535975664377723955497802524511137510317951443328149274606222171214564095834425192662291385682780437330852506871030671940772690482400490621660058779678837368265167533133145496461618333456776054068670335480425848524717422398609576192979102901210891650076891576559450535398366350254001786770808921863311926807027399834919620682143056831107241329356465768592332816385098864642005655570014823495042541712485504913290074727784664749398715663120855700265850834950352795874555197607434401889509499545622519599051268378830647609077869932021427276551059726326724555113627341254177253229092022003877740651008390110416092478122271044516548236021498443333812770720518751694501752785307531895464289104557332218015613775444939908661838850029106963203857282430708932824953343584228307671766353060769721372069173065717430214853218372432054930782612628151112237962271721116232280238314969496311002766449100064330714577078525065056885598092055644289083750644229243403939234284994273636607297624816200953702007977254215163426075627200938599789078525611265321290243468258902616602744269544921770601436875788448907520844669334926183099853713954542121100612348968260575610995724212150349627883955479765049539473773388937107820028248736461568486478834450212227156013141943694395789300034519232123580451432722486960775349342290131157562217025533604381114261126584680167572334391379207657618603784103573695316638158076945370530545438537088101596334544224369123523559939442750781982036248648071853788807790492726229572236725757892681948810035331544863643924093644970695399431372545586104042413501834597452020721462378230062351863639052499123490843627640172596269837079306151542554057724042731994550035414967756588483821379356243799403027771042630632825258263626728397937008506909015703619451624304373044143487038159124883948197531279527479198529807343871770699001988906487464440621158394640553085274592687158849165524665416955473148847366075952401010490565929824672967120174783310731285087994075537969116799495163005630187402487681863181778018532680038059967615016590751009868517289690302295008389964310075490513089837432926366878495865873851443475819317476564259380433123003630576339326508702187325581428367594890206151662000376668236347780115001636842400113547492181153118942420566228150002943731558240626666602181915365700214721862288924973102889558722479996763359532951125131691851366543784710569204228130120582443859896363882533462124797863950575578355815708863194204319187014846200081637230360807199441352390197640639819019418076794599085865737125559464533444520625940980628720109570482098397112998998968553550260486371887173056172290301450618640135912034519591854192404432922966596315449177130304120623721263913978668600043115742353279547149437077973148069705075934516526847966074239862566234555022497554499176637952937941140552180095074176931533614003519414345898767508114554600364374273926185452202226726951582826013930776476237026063210011454227616392822989076944428378529954414587557134130757886732403296706494346649892501091905960820931189163070322974420419068397700495525944619288673330412784861234557920027092208332125359859921468646676355746980367620067291328196741099743493269692531198513937692502163771623940180743351235565765164466209804142778188962845552401569713677909723935635343936595325481548349909021957685942004887122582302446169000729955321420589148103206476801878425716866172178706352261509134767583812945418424431338151359719406373809221877182340659779609495246253872178554577172963379529891800324287660671466954101180909379186317104250469977636479900156145803465340775983353443377208130783451810036298948888522708216167888766797811130012163408923107377346188079703039425984737461437366358095323264578610015439714656996936803670838192490972159495684094191864757720024941242836323578390549624480191703553044284169780501972775939639276886983018973245134559035833989318573619562407401826230336277379053019867592755589716696656649127153848422969863422257087345219470556458083853343793019896969220330589730475303327687774502644733115605267293653854532477478940337657464161119239646011541534944989095299006097854156776047829552653122174626833537855505221842787795130310911567343628095823227290580021615042730067350845219662720367360101106728835436591609182691058690042168949237216348899272811917385383378806689430206832915026338791946807052478627694171725219154388842612424260376148309495255338524670266233975782041902194137070497792448764661858983663101668634984292366528285855008294941009840305124101879175968722512634890208987313479906295970733768758771952045806846512917327283876592109289915524747151472863671014865405254838470419515638593741460220283594178928570640188342247712749242252836358395724492799073881945326527436611861685763476091474874978636257985187418138360336492533161665403317465580715968806558090207559990723401654156415235873965343168244121603486960744751710863920080825035594974840741965968041150601417059701364855561550508667264763678147973511392915714001594078805446008417508591902419009956900849416837763901400160671808417268433396133571315564391928463932200840544606782839670473743370460019437536633677430191061430408951694023782541298284299802071627676650242441930972088459213164664109823162588271963148945841930678781476106131035043566988397169063813617294144284932660813482958479841572890826412173326866699696633738738609756409923405818244375963964486288101945870889307390170533754692910798895668718275941192367849895069296159280954846291428075465366481269405911830715910919368126089641052769586852029830324244546951728387037720174402233689207346998902445162877108557219188090979226993243893917870776477163117807194626353195798164336934771301754904564633277852422400239347625260313960978743924842743504931964926230506162587166754052253470910917124856763142164200271437586692690691518838101904092250680748327929003325752005670884729975600992303284852653128831816841394321553208351776408857337335279878895074461812783665957828643828661712214299273983837726771275157418447647982515852144868654412726438253368039278653968714580637265133222882577195825080878304795309873802433378717331772800271483463428767469433187817301258895140013657737719072589162957535261240313886925385030668154641167414785441359437940374677270017201498122067549892826674137373894266131920670552133932105254595789246508069226604815274074209711569596729388269530902179940374922283169382784562584811122368061829002842495915581493915683155627078970354158934099320738314584880556918867719571518955688389630053368389988547355451450588577305538242097012876264223636315285389094114116394474550375155887386000224743740131886394985856754302465829888801159145599494043279364382430921100834525856223832720660101652975440626150895559893114891068444251992550746404951388408905326831211072365320158530938635275248159437667548264650919745925178284891214123669988569058753902008367347665372734503061733705138942653491537819373543838195989105710377736624311993688446351337077770790606429127260129769876819003242793637540633051871923619652699771968000877210369781572307605531002105270391422692125688764050542292444198639912414898404111498540372564185833955658902357658768771706999841177629562112250678134032827266766290173791817095308839473711113055976948990895227007807190123975741528891913786020190038164703984054460681240937702967351158761321246882424935402668440173334817554804922117857017455090405927751462115715813661619627223331625322278671893427565342921370194605912190865543666532109064067411550872319401684766604848509963772471741404924260380193893923495275414190718715809289175933039197726084377111929520123285588847642447236377170492984949757697640241996108468298590898741591368858449252145178061682444136719585355303057769940084188295988409816723439090683383869629974755850460447094961356029260524266063445874301118698260042844619497354267686327923908293045387604778978537845375359565812025254645970554259235456382315034173988274278072170120280215271755310343446818548601007265795917713461251303004458678748212085712157494212303107857421284153171557711694146266698968103024275932814216778740113803987755009486758390980294721091710463735203716259431736044598263811109342868870791710592391670999320913376369422711426264842136306111210697653544016580410557068250178188000971438420489419891911434873474720191315135054050083124469340624575637690016594309209902526254155406991277769903770694751343640946688516654979305361013694159759935406987919104043481157681971445195119383763349026414917615728725656595217244691675777940391621140725661570424731115485958755991106294004336126104924523538164265745091832950858739386909165227299370925742945052879980233904719143788903048194560093564071511586217769724967763851125524026252766672669230954492545643483981278606303170167292625683587767355781581159923034389526714386013503217948741960495814088738032790327979776728976814178363077104942211442036704629323700797167942286637000412740092792959291642279456298008034209520746171486744193203207990186328379022856810097809162620996466929182772887005254880012993390389922642829979045641345338288167304935488301885349684120834198481878444747098245178800471202403680696662094449766404020277106353158441003109062542454022931793177106382324241327764794659744542579739460442298141505208685718326623121508963457807427401124133416060622085627941256562374464538512679290393240964267499619398265751649871855635569527321282713997321549590909166398633373637146072249515322667558281723973044234564370413985649709932386143337485232188379055754324757916933342981168232981074069522581470327006499990566013450427359124724141961966884870336932906163063148990591491142290634362714344113234941388725762857411663965303635409650181635961545117817748062557590897974467644808010044948330916763977762721894277598567572608755418124898064405852184147208019207447645728696386912810305155587359142707942764051411230435168160396244103968527238502317729345765940191829998823150784033871946488695160091730326910418427073236011620861193374090536160027113542431657021480230681508990017814741585833320960257343986747636235689123291003878519337688095251095732218072499158811520513408550663199644798018354760982739858269038847263099748416560527978703046930938353718799863774657390780120689809576031877095283949978594894726380910451052167287776196682030474923220847615758754987520065710700668656740815205959056199968437917351910983631729278906986671962775424310302685645905827577157802097646597341335215548022422215826515162811247042719002313966849284842811293220426224991865200032926759810228377378513815790576321973514544613216036581116148698693570593829166366956974617910721481436654549785240574843561813365624377828427803693012716895427132818508818976024240291642410296425299561650168102011814951191450850586512323535575253954195268069987865888985656471867791155922066149360963144106952563651115383852113599188846467669314848928639260782666872345773506179418322316288132360758316216201105759015259882934455292824378815610463979240873308135474835824928293662021737057115223406195082811734129842766797115339308822173255193568924888558094155220961426427517532311074845826242503410352926409829973295163521602838873962170868252302055202195392215858788509553377596622677438452222134612107980823471263800434723554281962240799417798758287167987106057075654247748280917516151312441237885685063336591250126444821171643614749528947584330699219630095003180902260967292177244967356639270898822737684021073598428684003422183975921889813805485640239289818344555831541612610820886942995214495946768984251873555454986349337628560398568637929608106457611081960176393601169274849466287665030658069616471183435450289093463602246236507449070271567939182308556020240896071939647667201131885146977210357233673194130217206374690401671377867040490516406222412052459831170798955218893597791491513692462472985641486107027895689189826239266117676115984602843183315051110591037207132270621379998408231145411726501424555877287830535194785975180018248906642696736908677763149835106774479988848825139445241163177845044974437990147376885016322571461218293630130818039666570209768989984908117972577769317134259121599995664615378394150637850046273578699452644798267605108420775765179717041146096636435973387805467833772037826684027157269129327792731571176216444502158101559507887000741232704058194394338754314502004611516180951606451138374709031976046279540107816805194329431584286076113247011853042418022518887041093285399827075017784932311399750571897940468872245830247173304232556908113528374916396074999575536688225437791577718732104998914238737773820553071757248806289137305894984396256339461544928064424329371350036379531516327673107130852635524977375136334633114922343489129611180664977699770850809186013562711725813619695276063510255046166995125559957767168584872437545603327264423462051714457263567330337640282639116922594579160384157451881831046959610815073295772995541490834667578105616455216104822218663161376818699467144886908904357674449317816897932646288429853519535014600263681214193747406349647056056515860307044784281676776260157277332373759216460146621931613323540597074507872574443076637851565947065491004474390627603086874201680420228926983270453737676383040297117887871573903462104094455431484647467760379808592041953590594418513012651251018931969895319544899550477853613553112564603806055570696811903410346890605302584821558211243969454796897964591246018192526352451302515640980239172653721376827443038769515896663966842869129580162340460181876638782133908215940728013771564671715492822490096285046699929908262848537350372533138222810418426483054342578681716777711209820866000082177019351065212365033092069555254639880979186353270972681055213108533270342954821945295114920503710676450329101181003590135965698389421133424583360505552886822388516101600075868454851516230823951343789610362083729973783871302449541697415757192995246988136758299731269733069630836401399732618120415864481914532828050809841889691962839260780126826709388703404131995444379003411292931249084424480013657322023329744289767599902665856198027084165600901149440065196226070832652777225582529193768050442119857040443498804647715350016780730514645148596139355543255856595124929089596026337196448435607365573872902049622951395148962956600921509475778164487876351233440749650233003220318012417583534738329835803328711107519037330050927651790909360159154094415179821250067621177600571819757977221853483216147023596755357252785837859535449663655312040882106700614427752804988568470156775034171452782369599096359547014562210605397813344032896957421737071076235078797722826541518840959500314463846573003658886319522927998130005904815509229830539341364071811871399710849424548087170843412420700860878233842255796112108418597969567850245932293328767920821050264731857716142632711042559109755820686904402726306386512375523558550876627095266108549629949254195885664157423201480170416658106650509348722998140279545575336521021203776187348662291422682934594452645647191731393488206182324400394940109231556424045262076498122892003649647135860096306499805236258212598456318025462529274277998991744198221340823622665393244621863038194562091865581209836125754485196533733579232118798069916389566714469192988327895707179823355696122658279670138790157260239051470339830400518616936925868431564187205976294258097841781956317118290114217762175626419250105616334620005736323235112810673293425916459299387264706269252928998222965878329932591752538535301118848390573969087143375163091216203547545213345070529158243466027047456760893123032092526686986397615256753654828439237292225813860022404682496245434515057075252246392220095605930445336128180450832929415149513932882038016376414402794030055028496662606241583646621514811395462589380963619339143309842006957336304469401413219443087338807413841290989804597274595258045159426753235723025633764958901969224428487368765952645937835457805205115398859759104166362942001724409073789085529170989801170273675696261163962423537043417983395135033068434383152297990628870760431520986984768819507602274230311271384508098434509525568971126218497313431765456792687988643764819369905016141544874575997972427987238186242890097555895114812846933857834221410462992217155833685088161899983766254658260856470908930640853763256138382685386927039811983445555020431696615774339416290952405531818910772786919343505857636183759509068361278573444973104952494884340474508870794410254135879386772104367463084859249355970000744952353918203917443201520546980878823025418029501080049231866133110924327672063225746705494311467063008444080042431511655117914576600477046307135186875086701659859380826762995280433696101581248799819792473517312780428625683435977373765887964194348042880818330725090141239222156118953059911235985434319215111903513554465611755384228735179271353402889863535034598258367722715080286965577550174983143228281253538814017370014950750555575239208350684807184871955939592504332761939335166633796119430055826734542229765545006133707073898666238682473230506261126653785300219439549864657878957517386091268703448024626445238068436753663791509984914052959147479365453226200870109100410385696634856883490910444951574829337238564756128006737755634017099634517734877661883297032319859369423077878725234912889324681937114355501046998576473273939110705436300126601491584943913334802679634625543427170325200379100563097904250076813053808199582019644657661159308772709941600950220792620021654628170127074797921407331025500535148193663879381178175215428316831715445861458050788480224299435261393363485076842895699633741475025599220025975630892718208491811848955666481633443572498699149686103361217063566918239583414056797361769044456355610678444419642076421291169585229505108818553393647105338170613387116651898270518344239757256748361108049825786140420042998493441846432049136571381720818108393604332276640815691466228547628062350970342757619079582294872424211745914441974500322587981243753441037097611136602979327838697766235331423378505161948403936366468840985747045493959789450941868119754962485851232980556589493456078904685245473639851838610955226962103525011867808522670615201620421288134024284320499141653366204794584948578947637567467157618248808045671591639158462166557674958977739694844576105087307989839373218225471354406656642813263492590895594838593696789867318089801997316351548323132015647601344460700791033547863238315943193212792425743204948481873247275776369454493909727773769430737244503060183556402969224721282127298338393863409179803475638825034802801920327669357402007798926578675702423724963724913673274765754408225834066109555360681891805449103601132284912774798797141858059573009985758913224405757623372514819101332528919026441072651387782806450599965108991250863619347694556432104011132959969619663133088028661707645969397549340780760380830075687410804283593152022602347879323836821295073693816489817146343546062873066171219897356542498909247382673613762799038481929774518196566102740017198577674580166315576635693915538277816243376434994491210785960110777141777259677610366298996694621630603326776294261131872729762137416321595875987625723076869707456197851540182012255350360537034469768880846613620061548552881497611705369623475295375208993263502493766127026988060629128862282940276657182140003421504318981672746929743658989920676107633263418423378263587045458699718615307847940277595361028905480582415983991695099034922017995151488411800740673316107080336302406255836398002204436442338847466348839293344085637276506975808625470214502100245545731815307928566861380129058812183298771813406248982180260463235763007096256673997114995175137889140538819768341632629876148361847617432706015682278747460759875883503382074274369534777710107361025115922879178969957217954426596015529042366122068400811030691451953440728760393289474942300804314905812597691484410210794526919861706264434145007543506716691067981093829687989588434405241290666945836547242467161853047004781491673016620485609047713772310518761406383862641615768372485972309527503444832447626281771218890010637764154992552913933245816914751609193767397237743004277535260092578127674428418186051917714679043660726427929121592917964447424616902370785447745398882470058698095739881433189124471496515407050715557015459438675614943251026801483264082842094181014456126680162441784134030144450989613852574002595370356493948492924243661559306509230908121700024422098432489402473313063576715603525778296296422802991390793436057561563901841937019923918633018236172081638510354845349869392192295573486398534093052571403293973561574610802455278006296304733122511337741278924910417015607486003874584262350320638015121321097554482551041792885103703762583825866031071401331383956726023182140871106720731030988168329337749339939763414756303322052564374283877255510988375687942415545305261326927291829718054023196219658544088492422641455461147666937987519860183474928020342279561121575976398995653400918871107187274935869270169380792902343521345371159224472510455956753460615611514964873155986629056614336144779359630294355113525132633430166091613645134337586237107159650963192950733559738211362370381926871088717612059057032309840934429695995649842888642376717599504736859176501162507595607628395142883466998700217845201024674383006898111976398482267197979845756736231542042788411406925772050442000928411922097753621859086252844240712910962163264249333604680089818387955675872442349942178976223774050803544456065236585101492614222549081032647062995547907802467212938330141117903558704737504079400715029581138556974332933072433495486103676920318931699527077755274120674331673587947036246337164257821056533425841480394245624303938491377999256651137642627184035071265958242368899870536736523194966429330369638704688574104381967835509186619511928810516736643972655531036566531901605426068671479040362017850938898057862425947128494387840419573877113551296244284612188305497050342747582425235168606505089031676585111740492142094985022141882349192582548623902076690050083305770251188722293384528225577950092589943196691029775596009550771541825501592409930205938572532923158960554819827860299881928657694652794555135786954923317112208724329304116801513643326327818551785244636033002903882757854105451124815204602559481872876900629681901295348310459639088162130001896777754827334069953731355461566350847884192274374801758178773817789987204525501171632383121672040049491520581371080354315669985727823719725639222442116605252269459631740881094211558008446662968228211963828801815533920330867499748335589528457119458858680570250847936334844830358519605142340021337042624604353446690256360702504018613648547069003298576754994140355423770174778925432245197908586347760022438235663805014295762430821836355105698828333731896311879624808214058192556349765826812158198934837255191871723613947639837918074110372963177725351605147298387052685607368146540999348593502479916864034564369699534942933407626213554992669560969235756507834688474353976390362429203651925896951333878170493484010337586048725231555000166537651213933217111994398848145291532826254415048807338915453249277109582635915223826069732734529740116570276737314911478878804389552658194447248369002437219301013782891060969250368903990723662203249947550633621139755025803701677685528401843151019778002466738622581290136093903339768159133467041120941135938278544920184553108404230296451346802943036653238330403039063753919711555866546494597448268391624641405738573515422732197432341339955485714793849264840359954893497591455789106593684186281154047120126104409045856383903854037286047018673481484889955400222421506257833037199113918103012695840311215904191406951232601864354918580970446179526890758839601179849578451868058007405993218114150676072360102000578616680586227174770985980573235676264023679235567472842105816724566832936511583483823668331214632772958598175961934229255095488798307119204545045409704627971277181674857624009247971301394440226452737869920903798862817161792820208193161548872505449275680386311264590535706982236858791246911742192098422960476861376565399358289682349227753242852162986262830087573596313959204192955983074305870118786480873046946198860768837636152598910721490346364972886289477967176310354372484684428309645934798700387814243912285349308902412094642301731451978830269899359764393647078306636194016433122181830968610539495888579306823635205523765375170982945054129712830352014058081064008923718849181641436143899584803391933959974706761046501628288193793321028013112790266535283977530876201067963012946265222297636931488957564910072620746496962358206119052053863743016758312349894469557574204278492155429869860330247867371969994576668979595779212284468137006300689508766668527738702749741837976625221316653008658208918075540502683703734999522712498730209430314387434111404385863949326321858948262981502622174252720133659430179396008394382405015902323158476075936922540789113923788285236637302331888246420432738189993129778472211115352391964028212912825560996331299512838786335846219006906057722009046895665482914550040899392288182323768764260360312666536379359210184272589267136357061726043973472394777308357947486790224476687250649871621788501199313638160681665975735332294412205790785807643140749952365937885727236686088554403681798584412131175288392549041708116551333844415403676797192941250965392498231435728390947477905034744155155893723546062467754897803399110587752909554000671517501517204028279857456048673284075535239568907386845607069696263825513364222655446523124347044134844173304419710642091538175339576861524335938475563478122299292666577419493278953830295624614282858572927037031339885993272304726750459161366990379436538522762683688837575062462216880349163563683488227335757698088079699751511746834969304159908023394792146577462424162226292604139645507951003056217893916403364774380719352667747479179456345942504582988778915332241840454075523419695047557684302931122797265980552507965695386707681107355657210982595044374656931693366184325391032904841316950096979051470201707494419846651375330172465111230266393765595114127066782732702924648670861030702705003612970011555522879703733087190370694266161948474652706000641818173343064803984347579134013178137157422779003866968571714735425902644053088914446798552888722365145411618578492526351953849756349458656855460911853059095252300069664904967880763450895629218302826901557868800736336252836967140045019062063998229127903407196954618911178278711728921370841029349106607229458682721157401080046308126130285312299740564513661657371033087560009085213213221881149760767696930685550553284391348948944255681261050597568534186573999483128143061002867103254102861829251482197284910416977602757485206200989319370190899084245642245268722822084139710911349071682322381397370479711785963615606622591654315854695563681824119934058801687604555777058016228135900791672751363196193810813228738310264451579047894368248477440697552649314396340089838053679536423705460857592567172030208630748426869045149328209044312234690843106146385467210734604213653280963940861742111649457668985694721393445504617941404942134350728690990620089547341091184377649347889147426149467992942971617837786670946185764008540431437217320792161385471829258984694379464202116602801282851002113396068822870926124352574579421499205188140660041222434285269137949484317060581786118005895539481687802935262544724512107480574656355833688531771533648856720050539620141808420371494391180041229654756766122692393246050836432344780133259961655892075784108156143882683977472960084940691680173937353537154180348614715710747498140682470162049314634409173565931250442007747413290839862658755740756024917218874913203039116277441048061166230191717767888712946115654809098627023534899073908187162671347819274402526916916929411161914211979647415927710778973783776335765221172588237565596066034658222488660416009872186745279042888582871969945960673132143841164236126569722498508464030114909185181016069070482542502980258870331562189753770583362593812052679511323173082275155939346899112743567662279504868686966724431396260207091984157926367023277658154523170771973139324635983642454992762107250185093362413306635986676950607912509796195793628250663851732461580178193437255076451166711915668165241277960917700872192591255347221588986360614938458639044116856364613680926231348349930569199965972277615699790812757080693195096335889084631428735582064249756854774407024454609510697904146916722898122987414801302869687593385487892907026347387865336826176674125091390095634598941706908551536784276155708849102936530095369455432302904984434530941765172359456352954145099456509597218728733784110943368792938279867067349089502847333550976945079032062828945682428265189802840558131674038090356373083548800621454617887257106214494177935921756094301567232302841587153697602317258477421967803152208735468673054255966019312646181308026876179687386363324842211672815099445293736494412504424495468399236643825761444971914550851685789804164756078778376845513524490584738787427013079889010843013060235092863281317530289200942004961614269302799082762737386983131935513348866101802206221630332655640247871514544421822483990126831943783457773733030026181482309549188092100889352291207922176465080993744556694960321074109722455885193031302336991196635128290332807297983382634599963148185177017341949293572180198681698136451077686395262537242202479472180952597158726668038865505786282113711847715006936663874193658185715426034922659524669498489341513583283442189152288147933925471137738455905472138605882796378243698374739700891417215837800145061719208597151773867973006824313463929658177395831308011054011665766203419071893973099113540804494503877091384918794118251911420056151616651071311643821363933063910322594347584274505041517288724170831544889334116642503120247843830231411431214965623192533529979817581622476056448603937650362069354043578322685584407474138126339018942527861333373386153491851278718359580228790638427909802976097498728036907497862492269831201714402192953763875545926481370216404275376486599166050770655610442075289366080094099311387806061854822118887754165692217330110799142375952395063669325584295351771943488572401713794161466239297988810707835433700509988724612885581763017958979176953277826911172933578242684507866395748895201047859492988404325446777602779989605297021254177019521232022676616225285036608368890492935296941616523100210491160845044099921682632560887706472826914084185069397801138432796244543465269849540720896550979480453656056646617988701258091896463535356578745192197190162440005471661093138738661064137335390207367208170462743087261161451855511354347642339496497314356032994080776234310884129116815627555007659315778973010762440043859175071845496533561134878333014702867714504966113457871217388949348516891124474983818465288432640562479572978388972406986009711632683090438445619182009890917937832688149166953111487806260842842789147431274317625285774585261611379263557040867324136035430328651978293141423378869141800377708198221454076392596071673551493183394054022401411287209075714844881767393739814227782426640007199040542948825342455339185794656576212738275077118839607316295585536805765208898477573431107239216232281086601470892104988604467802900264581494129155249721646098522766262163615661887619221574336390330108659370891932784528714537503345799433004784549674020122715073480088297542387043839899284228577080019321744177170276351675439587464168581267251618790365694211648358783386637864972763579976331843982939577009010148596567165058680048693663195096475594447801799872849879793322325119193999441633633149231852618586934952405355771975515284650062079215041626689551991114594337372072729242127203258018553468719451350468391341225607683091071717747672658783072235954586421342926282854137792739472537054784280798681498032258980357627047185138407080511307935222826441626168246841809647273662191754877187734653046992862846045772386867786071690065123346988869504679634850163706651836723269436226697284926335007880809385453388584001136733137565428931301741972013373947036132206230816827323461531420488738178684746364299973116096195927104483016637367570187094519718697128369212236066944706764329803848773661338751934886471013873345508590568826677608324150920805567453521111373607220859168287537619201359160346995303996552140400207980885649472828773054547128015723224703911793685248663020297410456832276094578904357028366995740228053296047157600693818347278268931506413616536825636633731499620880320934185558973870592308409092572833752389430681305963041286440627966224821834236267975491190272478643846830524947355391736621493726537136456285948588701236756844750012616859514684920307795006076016649550467434909780741515453372186219639939412294931730826307811056093881891998482290538905174275396047455874077786515487090040409122389377692616282990254254866998205419783276308312772417668142556208920349153106548061948786627813458521148201273346813091492150570409957160510351183478394535252419419651937706674332170382999772576409167890682851004823764581568655143687060230191323207787124152966239657539699163216400141626386721994909482191372093481252261055755760030731352188922630067343184130118983782009515549189054382149709176941158065737594900281077677582355753046858690894184844552076453010161252014842516645488824606425284865727252970576024944125619715722200694889987411704648229062691059939068636510518537934159558771882718846885770847626232639626049173288670458532981745208325673359730545727621744963025647992948213367011961653115653970177650702620406180205542278145555408399318537448571620423121983989364821421044719223835847602437212738660100013822458473898936020749676993739425249876389418235898700081692122768439947612027984871299110022133486749146206496373806167204222588246202385106477589442538676491547138363584620091261297770114338896954755987447111837047746387037663869196752359857373520746432033418260561226006145301408728926956409498386333725762033652565222265628319571971791923125796831716453933717627849031736016532672608082893811208937549598766764141504242207841290708232469413995279044414388080431064362331274692053778858052852285018123714715467441322474632275065571838211316146260902225966824719432507377160786771686468451195412910392562865330549725383605955561109658674788891039048943635475835853836742957212218761362613894319102943853348856508531497466853734544205482947260966271094729201151102742693258948776983209813550577381401282811778336881755698999518478292371689749623962121612436883813854728377389944836046510913498159655030749950846373455303793177155024745000791261490809588465178525363009513250265515417680970609036944641153787543692767360344182269017414931657271019728868557692580230963581823156549134495822734816307775319399320326476617046828251112739119531640559689784934727043549600244680590284530174552469195364875422223852924606109070001982601139031356891694997952478653685698130089129074595338150249110069178695147556009655556787457319799698698388772570474690891680379399359264374231628337917678415991929498261729107856170522094898494914365488135494606514609511630911355975057817189799391027521882339758081483776126094676218230344805185285418856414252217825811304633533307196584897270830432676985307587717179262727283141343744031705985621966825419944735881705847943250478944380605722455518111981804508685067061716422651851921072489939571473577731029729247982676217413080771841098606675182488917330903472508981635847314491903666832674759945955760975001627084138136531252625262736224827624435001910219317729285705955557013649415716296891073850534189738528042764775051388210938627582068925739323748980363352670128826809155085425543227904013117884856487978601297339402863911743663806101247139061411135060362284484009874103193821777808441896840093799233628091017225015198292266410083701613939809251220169805696793373953437538681421158882822760892408440228396925064047577815913044958379239957850915574936324806708751793430896916553408352619290436207043102324291253737696161673587008805128129051223368438760543796386604268300267397045930311654322573083185594789233792761525614581141877001448418771998481153834602606076870063052924093134571315860999625797801684209618844815069108870022141342567575834114210925739044777142941325886491225517542353614156771890223927550218809443574466579499868378608445874958615688296182372213588629102763810596921999303438784432731020707891811149548851045990168813243431390779031996041219994051656904630575741410439566245986842433042993661756502163791749193135751194261591496709044630698566686853212937920982634785823137121814876568774058332138556052226450952651240783713958643307160711936743419521140372701807909458837650567506255433687645314907088708183514638443428529246208698809672033856508382689700914259862854727841240345679377403944736838056805728557130872041278849127112049481367111936616799407251219789502995838102829778460962574704866359281369498182911264380164877385039512394310300683311397556443988140206049332087699860167589497594224000630487121275876464776267824997108740817381540167719155205003873314528124006725868006099886887804301442238701755009784479443638842035129874323496765734956972040201853453657334867934475725294966980143355945598471817346101340891457778803045639939885014337209201438309243004982077980135768419515818434442431275084263718453786335378501657907655104279942126583714609731023274487062158285467573058266282732919343426456839925187853282004871880427246300476862130528493068483423738449542238148568353092585941983027771333379175273826810018512694588897937866276355619034778685999517751307275052765609104823497825027877889282474396333625665681119202887563283944181440205499107168067092665527680929877369528975689859681452833209025171639459135128286567022161895599723190694486677168509883152171870588651771097947708824096141739839356288217218338536632705751852149947260905859599306734936974466777175272617688355708869139906244174947310237152650912347371521763873382838853399995044708957587011827516247632337533834180381414718879531277863096196042985558546089723265964311615247585932913269415514149549177117869824856517614019751916607687685189658898522329418502439094995739571716011564979672997548012960277867520126997238818895645498236821249484466936849030371085379206704044888894897094500916562902686667109936347367281938492331236176940445539048453791281805767826424784122258426645201219953293830116490047726241719487487751686910449886295310459236167696696845759044297143590896914610832881534496607404254146193634919769994861062359918000492133362090077659729801953094669354630451621768797231936691834690910771378343176036359207819496655643211884336737993396796891293476825978930247385159573210115467970995391351519582742725266848940141257611075268125176110866002668194823140714482925696212162612320690720662893084851258499565735828845821696514503644632548852988151819544686641990131693936833898553689618314353230035538972998420157890611275286924080325372192247590134948849861466364256190738730130250675565881661655812722443846603708778229619496285049609983900633259412193284376452008482497025849525192795014570489807160382392446959857402188642360500812378235207639992507977620703238744422302560153168571091608992457412484742729813915638890260425336365294518152893154287892617411403754298125511811300696358037693477239855238556714775596148852505445462619975312947812663307419198042616389896729215673276973066200379935106412152248798544237290734734871490211657886171154638526937080380151773803274208915763891254043631367680461886423506000315353491650559564757331035816529028956027394635201613335682730688841071339374050129126175415142084678834175744845251401256810141970827695726244751867364822670446377842501110786520577267718351171146775009758013951158129411173604215795024228775248453330240795363168141624435138570786707142225182352130953405773034813770514398877644397865825035379729946702665949100212404334136249578098017746543071843338061292300172307146035903915067330102467136723867916062689478977768436759889854856127033079302946463712556438373617630173618868895916953901924248598647699370518096594040554248770865119904070745161056482082898604219267925511663681305979262411776256725696803451814937237341394415756774471350663891813149345347125500492981208411946621770013561534645927245356469671568785782086273686551334087640755831088845597199531786468156290429875943792700870403152505287438087278128691472149144982872343863933815735492410382306101996246528124059394678531876976406868868274276967498635343606454972423130916111586853796235215546823771526031074394110056471645553925146624533847322792709944077127381870880699082424754129470242232273328879181419339575014933767805203368323594792874633676531116314486389377874080995882017562661300687332444135347530751157434159131038236149058990296906932354271689956949240550210895160458874592343932459244984264783237616589139949708458021664361955256142868932645792060506448348116486146759732272454391784653877127520749001005330361886308915112884910796572820175578685864759185426432079246710977395264849920927860538667508894042603713825197368631383945205009165099286427909476046695096126841102793886574157561996528221914168747805578683741788321161470417488769049577213912103503348248981981111889155844032347557215252304857571348987316616868823339384053157639711047349554808398723967176276391566866488702469195747414722543514248290578582127671094579987194362483492040647726294315760695128230959132311192306253645349307810861947315399009760800204230504181126790108608085256215137920135297684449932042464658793389763668198177956290545621144950964898391062288364087951729635440224405578074046907003600331841919733186969301041647620396935699824889062178665891593467569352449813942101246487977266971084345829339395607179656437561734557859883930134581987577654272115904181990671387603192551974133286829912339803304445342977018219119351808303047118153302971669974131003347965775847621306490576129181744986756215013272505450708451476398676435471706382073229154635379423253575040553139609048089429348310079706175879824239468853126826987776692982435201561239648785589526377583104480742633606582101146823460250128083067536906467903337438669230028005923883041400183002925935586875651091043523401500337869705184027973700989527484780689766883286052239138722958571989274243114612593826056786656887955803679006714042294083455727793422095595448580045485240778248437559214439476385980073295901509644019837374657577405441534927732145497853942792785894444093722057329996616787671307600027437124890352754305064666134068221368587589414470216050787518586755630656585647678995545253800091076369692921510303558833759249396582494948828264425551047087183359469134852348347201876359829276079996830935213933586635397094487833672344098509975110160802240907150935173808970866749261873604037879445032315098775933871573478417144245486779228517808419858998637989573088055046521480883089117841931386854480854228085203344295117908439421387213431274092923437029638548936053231473904565328530476653179741955163192498915032546431900184513110885325854690807281920188117616302339972580713631692281565503583840740674562801898280479719938412430298600516264498732460457158619107244922162822130635205070355955656613146944912123299151790787608160489582319519784711900479099630750172849426566251876313642907382833414608050929178553150023939169924722435505093608359840854290944705719359324981178306194422964886098294684276179521467364120855247271040335990273975850296710423426242496848730084948860978582236654685370461486732922310971465127788427121048834396224381410507429295367177478117639005782500461248883572024959824054245318703842661556184466453387603418805926582312547010083331199198858571093817378235090476480262546333124070929332191009506157670810020620731250414049495433378242507976865629042400896259680192509106113554465096234656606610354951585671388460713811554832294033455022978444130702607382681534681471952427125773791820002240350302417223303290171006678289783875701865219616944268392742755679788168538702337664597955808550240156047009856260041800671958744835926257424932214889511691831270320500001333963484271673150203924147633440340968465199916596560080384337014687597744779782224074829191184215446927053176738297291597378959157358299357647481375064093239663958340116719603200292113374532197083079999076358856141002606989374035947010809828885079292867375729218518113385357604685926916478098881103426250880131485371000839936035762425562723914590952900658833428923403975603930562404353517699848428791893689013172778905856006428995389814055713288976623496399324999740973497859342332625887165760552231143910865252092716955614428258387277774864010361029906743918194647238456286817390719059702942309369372394739466514626916027327538161968373518329670370624777586185885546211244312351392924850749419768929591587965649883515270019923164859704387139616858101416940750100964664644822841636673753708403240806856903648831118232895463441212187116778746458832659659076280596056971744965806199287824173392564092868132657918619502005186957266614004484634951517096957339111355712636473748488975253035558135826696654073009258103105600953913842158758092419510087564209536685846839461208882297476686824307993175067514840901529546611895528268652594087547589674122509224897984389489175988142820816724342311473821531387433137142785079872971438284940851604480599571949668639485591607687489186755535775144478865916811968308899409758480829196734569131708509812860502958935960832313151713696260103893279800733735377657082729073337365448585158945561611133591055237672251785160958627432607479208973232199221408202483148885360387782838137332198423028697386474369139549930820679200681704922026748410756460442484467278381618179331321045713864703102610975238666028992191485780884171150777358008137486385654928673700740054818455427330647075208383828236090511856859698961828697994925322615646229909898856470843580213172973404126616890378586182730376904378017081475575305181793716144370934841119372474040471091493424097628851722537363174346896854299744567965119877282737314120825679533946305934265273493044547212644694650606347882654286578480920227641980117373919874141676085922480907558071449898590842705087009815218757409119596982701780579450041663090588016685838486841279267798405076096750421064714452662310062467317153099862222020414298922394041684861077815843421385995064840400237925508432145957588096905197043895334856577307194202535461734048474055687346521347586616421319444380148177477219176275374194846577880082820796605129141550481544894646369385901121557888749641776401290717271877734797783865334667288206880888088492350133693701288959509487798503081566677989468325077916687705002475011748972682813371296971301575237945085594447256514654323372396620727331280747260828242182298873620020182278303938015302644540279784075284150254373082836605976182844692202192730329971540323832488569395401927783325793799886799500392424898019904858643097846067725338457834495052212885519675860400020955978949866187162180100394566504133406897107052583854703658704369532465758105044997895075167913479991610070574094478904541233437498474027358429669960069678650285401943239697163958138193411304584802922062244775013507678431972292290437275981659345256454349314611834765469507188093927198462148479246084252471215515284369236588191599700515573950429762282750407687904467675566064440765736920066639041647228402224895543958452159407765094298752197674824612341772061731398648541787753500821257343803975768031754709938463414729048279375685611862910415952648254077246764076421997734098621281115096844896285101422925741909320918598808932103383947664869651537585234405147356884732838468808272669339509180123570502879405731710202658122282042592856260757951407454874308793000840358817349261594688595681267327487310177080139396550650056163489869525019099563719773407648486078251392955994424161389817365327637758833796964437605214861108719310851631699004672612431428452858103160152898569163533156688269928199088520719410369690584372636698887151294335099452774810672626681625273763983553127586286375823747279327894523678141378219667592935209184817246521736618579477851722767754555793939026998454860819114988832714280948045295204438812862252150028600577636504379768871112939715835188798836708307967413235584279194501424461011982673684355966541739035539186115023164949821942518742109768000727731605225140008834687074446137748363840296886724183253362093787139374439231300694523414462029877264512437864925368246944094954786304720808202038832114313674885532710793247802745332779777790200758913076711757244898084781128748552931743493553957848339224132927015774268681649753253069726689861108325513783580546672192350308494614153430008082966398262369630001690467459559811447686563334364879738686234798108549302562287389236936812073473965977871150379606943172094249243110598005553529240337078590149118115208538404687145373587286382249412873559242897131828704173982138863560076406053895826395780656101341416040802281004123715950932495674617509723394360373828321430402818587366546069305110470448753638678531929091017939503509543273192909154013401930662279954804745878112673390586905757709739060787284298267555667205651567173162321586036772684398552336752475057971818625653895224045224087303648289416015699256102562890072163124580842372978720159748656831726229399395781207088534068300821003353595534101927205758285864994774677885809054136393175024973507465292212161008059228439454224475386794173596525864866227924606517672139167002152005235899330802429826661909151050347426069533537497496736190024340539615545904733609654998797289124527690764313094369090266332411099226872676418037792414623308516478418285565515507968650716791967149255040719625253292092034364631994523468677980719394917813115358125892838136141495404451100183301651103288796373255722286323235576456517245084391398280373789793951862108218577737702082130638492921938462160702219569589703110552515291862691014532954775522443844132223457876773777470065749763608845125904542014378971251673282051695189914111016644069299546336521958823297613685839223529583358131871653754943768118490700070056344105110002569534555082845974754666819932681532787592061988595104899578390581141801194924565973087131159106452615645442925119306103071313201042010649417912148592988125159285597991293149096461056887554645925326862868975889495687085260155654319230771873301127192771743800072405968128937275949632684248921877917078104069439095173234338427857388832575404996073430765256487755394963619199642696084180064162583718143427858126020618669848348795006749773205526282003741714368198680773096072044604981873977222694860599254290284289202639617287729451005010710888166964635891296974376390849659578952003750534099870235302184592371441853220646061156647592190089289937054085080973493769497558481995226413180487278469698439693665498812568202567008557059181686959206865474065100030984277189364388646779977874913453361946414966388412093668263526669543654850108992565619495512671239487020597470767634496118632034534001515286944230920412145015240380418215979937283138065612097014721411576680103626733216592957704337039217227144808343876349265432824809280041593984227309733942526807564560704738558976889150678038367080663536480193002800018022728219021837038906552694674021161894192423205459836721994611873542233242447037065905785306771126894233978543059806801490785739092111469254928543877197117031166212463727922894794740282668245149262594261137551005873427686782008678737661799268577255451282766523856822394582857184398115333837667626693744138788727677634334953170934293406394532312513395315157291575146559392012629017727854416846008071195120523589534583794648762353209801296910817565738123605134388262567057691496656987823526570688393124194834662863693662887230853708650603408613403178868147657800823992173488620196857715084429139131382902339003751765817127582688023184308227916577824169171851858329314865677088852545162166039905751065262994434239397141406900251650675304507959048079818689709909579389517777835111434634629443115460492555812995185512174893951346101438084186865125352359872260087515517955465900522895685612130366036294017648203330164204107113825943837710331511131003719342094187017274243825537511168728753566755278610597582791048704878522642662534806578444313260344327633320331622635228144384220461105982633046865378899686914558060847690207592519767162017738268539262717819905562497192796597881006428065417193039226741016422028528498813390721565253755904181477380843857428362722722137564959990554752903972108826226818460288374094794640617905250019761437971666321302620939953678466468896838712257695364541006688773225927984923852474755674680313204580362689066272374953068992389037528361148425328150202630609819450666890792842983084427130302701375068019300516168018511424858187817018997865464244406294027209498778113581993298066537569190330093429002246588057733127961945218724574601583127103932702513068074227857851747787509644776117578239374027701267663307484352702715853313413501463239888190826891563498257175264177278570520579611459906143095088224236838085613586252249441736564569563485906475774495188777569310299547322926555980273210045035754984895233003939770780511237318163927237498327564685335767537874948724258534488327272106200090780029902297823207345777594338233943662308165153011082746438953170722860722595691984140628971402223519983308552413572327388678418127175565211579471139141947929739538117166472531890107459944320398184647344942529922500807222650054477979755060569108841947505265661742403831515063709107896415668125399860891036936378019604675745057537041130019467809800499908942105834849166749520519801924091661704567234373490258243036146199610121132196708404525097335656473642813156899766314868656594138254987837418773360690053282123720686672154081804118199094052753531900275897967856986023277267775619800374751871634837618943438918625801071098338131210601422219033579907473994970645391574652462413641797745182806786716647165073746749124376967202940742769535205266014397071345230475969034960675914918233511229203694093548188074161894809654892671824898483525198979612214818135359529730594913006252520245462180000273952019110777716592842310071311581856304012683074943830934093461776662909231034136685652625757799972736212889422811318784708672572641766981562775428190654484942119725209626981405517520716483700587393886497176154632201286252588714766904637828366783722608694414894252024774945105081596727836906133546701139210800023683395440578717461433674438149626477134691788568427531030119025404448122067383696816422307984059918766272819622094993565651799345029532451753629396076910185612434146213443270862442128948682717083125645565703727891699469100664727446625550860480393090123369643872927852457130207991707656969191973404783715430377706744341245744992559155905062766476263822335369916291981709230293928061132764536376862518134444339476142208170062426561562861128317753284905244381990036668236924124835488901006292167851937814208396130983079336113619833647164446975023902187016203555803257263848540956698448690303087015396115978391260924188600469890781395256986410620620553217725215394360757909492039629949399272784120686238506341115773134284207263841814716181372389841183596130562003109747782548146731255235866193970670971473900867649322606336499712529403442596517754357909093248215653970876462996718345687091105555147492247244802736541882462248649805520210659253624931418547614052107747604845476059409640946348680952629575562529844284424138227764116937454510371854874544219115549403449374004566465252461299418079725014627176325574933401186132276294071235199211309763589691229106058778521443474857462388477860469269225814598629919849759738379980214829045723456988900219534998164830877733995207544717967573803531664389067231689102507333464614046882249507603247878458851455310771319645175813359447942219616154853666631385888929385623067360773361117456054786662113881802196139218501020925779722855785788945712796859775637947365017687750314817002658044918407997543688174307088602919416836072525279997525064233733584692691506415736007104544184065408377079446799080746832929673523912451971744046293806568889175817312661399335249930635735402283524929009883829172459390197890714038522549010009622703318750782257872961896099840936653745343867294607368965268648463410739408646715180748093796097183049808857933363673468384325973014926520260105624250720065306325517438880150506817491391870625321251535909688181785861406874495446637865072458979464745454313299203121494911096901427090094243363982316008433693065840034622221843768949806167574257887186726726634289828394341595398680617313271684272785106256639531157362976982639778645536024587318230598430053602813718187701970435392592426439125031739951495074682851067035731202429563250784244251623699114789600171735982182101114294097938112970042760627077616086258060251108731612657708242238273221465224208238174081775359584470528496287128542115397352846212906747951988817906474110375787490316257689463145315843906671070037085551686311809874729408922688481774205933133656079713950247508113284148855818292062578288007199930083237281647210015022124405904014513063325784644144801323299787534558769046219662742237844998530562643321480846932749592751837748977221845113125059164746265675853373436929830788944365010192330162025271652488817074084807833196337242138941226884987445013194351305562261298700614770581876024589776510368797651231664097502594187646251326833252934110602811307624921710555938540500062065061652556151033049783731640386836781436614047756912651343322752986028667186030459018977405343303592233696461152126148307917937067872034861701534452299153208001600210916484811515558075804094633937345509642894307938485385821573526101733532032287488425746935244185102485096815567775251689825805148725877170473445604252022553086045446114520965628731150242848454842287896242284092622620443982455784912250223006480752381366575596210205146296603175338894432899799736904773987377440970471119799312579995207853638912609548394324168543703624436669664408220480746813098449364185677374400210645166124124207784667258644576443086536967655488961049455168279537383217890850127216553671153452192588519373507158115929068247268617698722831794400040828052927089234902503892088022363501963715095560712983781521869700359161143856020715527175144402227455807183255205519526066031140502239029525869245796169359241142879905232268219445401720999317279132513606680103496700217477640518799584197898205446856770217184670535889295186807773097144593305467555150329022354645151005001267902609894310063237414377313654868113862862150864636206063232070977517941966601055239688168582616317180051508459642551474723120439313710716778760051130441161459685263685305450236832070951160573488378037573047175061901154050986289758378046891526542228382978970201984288809614117711413576764103943210040243712954161224780825149376589994014597298421518189518062845310074684108221573081955726784806721292937503067341347973699857813265160295672562415168496561008974725211212837747684067558954367236175107973091497494876884729951304296766560887660825750536186046737953516181231106446367726157780230444668170351293221327130820042058780615541994317957183937243581516155137328082584702116611024528128500120018124577992657252322251285833524110446046782466406949015875217679140227925902714101899987269766235225719484401779553400791535375184310047708933711052025107834240793886078549761554860125852970709554810880206153000585668367382171582057123473694770155613580998376848227850508362890827676120189048734549026184758116414630109736730902916089507218642943219234278274879100437381119164889646450753000950306261317539123106303988945334669593129886642619109929043856562180261072935977203857023309875196725816825350507537440475783145705851715379533444438031625336187256438802591965116182957530837240103913942201468249214684726126031105058763691435669114564474174802991704834651685620515223818553256660258714554319431275997884951110010554396249429910113671600891829206393826668951607868845108755222539003708271290761308066540837601660870050893905580529182890950098444038789077817639014309172177339958991603985054623793340731253167817725735813724943854589158000190125872074570294508469217327198672766255298374062924787238232663700043499890263213751718543539757362622552042850460077352311228795579512668146977667474564199487579030461003219352724764221568899712473385362077339736866083844596944835278120348630005620570155971147819374249229419991151409592178426188136629433601353269228112746408971336021294552444510636840778411541688217771098643868688103118486697905639051664793014005503842067385971020094595339981529357031053733611482654222513059034055765436544023272431970538360154829669439516749888404432916049303593094152148217189148823022536914822379086430728029391986662859187211258387393324815075879562174476907831928795750229835643610221660391937445616906920985051646481776217894245611316487975563700718790851638722834341531372550333759499534185779945697556633483781119703973879205510337232495457468915487148673089160742519564509216154063044021979710639895177752682227585638575615185535213615324188750237058415278016629155343663287030159641209602036717638400929853630012993066116451824646918486339498555250202555847064556199044279190743447268365157637974429718491321520417148631268462053182276632482039322220171962357916278212378077052878792614149745554612864710932198061275308442313009318655377621182455021981443266678636471416518002050791715437380731239466941935048130999903020176065282542814140071086757567116742650763343421285549359736594514054275536818542379631960756658816217918821917696164112671471670328824688222664871673132506567148772129513582907795848160362754688455421537042252560936090304862247676060973964825046347669590515644401588644123614170751749112077278922444645522606151839430277486377413220362681565302766302823750493626885841727986439134708229685125668008552900465419464030359808546969962462732230244625609862234446565566531124470539023393521228282451825160955948114109686420479886925916787081515449355960083740196067878739366039881970716470126077830111781675676823996376792779125992867608019706478580959515516128344443333653575197449310059196082212661074903475426135460475903646320558477412760533680735661350260782543914856097001751287908414454980156862819844027343651357102329462941180463519269266359520054330845394761597780737877702629317012054648700388721946269885154837702679794582619715596573691223790725454108528585320948912818688584388112308249939163898841671260463200494783909783227881520955701713445082385152594780755615569122096015470855682543010101293036328635082768795563628745188893787207130996291086012949415930858659419421583696990550072578386780730657723063348512857699795978823354332828243239780684617607294334923976150676683281189511623743302320665323515628753499465216945732588692160125020781148212887176076929642715928580519876368870274471742124529271087548278279349105795104993359996629985805882131577863228761832165776671406514476859013247016046421729909235792943642133728610734475077542938709341849320982866200546916141520805121676006108454956078197911567909670709614320294927341960433749411416510712651614053781307244794823043150918756411231507754513882140372076366225838828399767428737165845988610219808597055870133597365588930109276285426406310913104114199584420589588696265159026782805061205014725848034043642000176100786792653424153488001257818990655566569746894060911273727550591145114700080239368104955383257819050406555936737827963529120574639152907379277356029500895914571342350294668146707506353530816761704126236911027462234787415633551370993066311417467261639618945500282505018552607503336508613693852285999487481585555328143819215202861741746113967997252930987541314024862814049483473125535082522257446929993118994282995891040458479088682873831515822444884017550639453265208903853232642507914525891679273852224811420791926150303861730581166886971855985593168377666511525382787279213751765444713995495702468582401868453964822848488576229986333138711847357598927612016136980085754424944956945803127805912647874917529247758724548214288728567579226038888065198335394688536532175263711323501832364027185738830187703597528070316961769669490142542172910629046551904175968142515228302553209471556351069197588014898694643753485658551884546260725138035916282885871046843909920796477253072666624066922382558571428977705990992674208453230196558251408214750966292661018289819309768317451732505130434013495564903055545418621797975317489181796384772850574969200631889265144945383906871555727407002972520577285064184293509198330289440819950996932066528679211687816851802840538838674623164985712493042880183550863083822067563661912903647214934797784093717366432532131852927992259412111488984982750375722377522059007638099240319602499744555042084848248767633447961334099924828253765881682443840225304674841743680566621806540802796783735465352799419995805332818248130261251001976255692932588054538203147787639918153915312068464313957883387485466664070813784284047954792717538996833255112182543408083630036627760266210105756907930706407415197896260411081928300258897280118307019987704877763874649139543694159751018851434871442950091689246435205534351807598482940760404847231981446765357255497643966704114186458416032351392708823624406240303588521360522677147307560737888997003854084673549057941395262572797557879943118048119758256430439563565168790705268121888311318559267316934944234849410026281943726295691863088630575730309940189154377906126275899972926564114106391956379054824046539809808257836375742990294106525648187379422434879641458928351607267310160198111192572549584989697600727850002837848377697212274586053325478185905486477342703869505111235753298821693102416190478571776584502529400452317531440617803072407625389795340855691653496627951494217816532451830832219904573253398628501117589294203682318273990854462375359656520418669003373010821046947179974711437630141168294888758148391400284028738603223898270446114324367451198125381449511720461107139536248493112629584296501104495485461616069178866132135570737210879515661913058806451548765827050533826372112562287025198855289153030952311451613427646391295818222134116603938809090617140407476772196102464734850386866689061209736022975049668800932912862042008372981966459375005389585867057072519346508670108366405756064928405556706083570531634080786228458405940053127481308762693424623418888747548670668363519801914970894644732005839502807529123773901789314767342141307080304965153066205552307075743037183523329750546104657812681849661606684873591512016788022336821350578660565173678643779762341809887209967773614567794366917073540917261696723922908795226184619173310396921901287242859453629387473075524815791906165865642206948045989278489545583775624439507462238954419545355206718365555278931338314013326280097469605910889055462826558396536790764629285915737411154737718092991678414616206241716629634798728926287451342945508586476325873522091294478805399298136941787618137775268601293429214874389823530315082828233038942042992575156073560100631251285790147119513718162870983130541625116148553532757613551924327085177039750658830650233379599690847656579939375366629154732467126833109550883439019152511186732046872161371124101988708557478304479159733421460334811608482670792565276004667469989983709170588270004730143597048121058197646479426595006056607590399597152264326529562962793010794055791069123367230154528754163168326766493206176885158082730368018027027996959354603463801413858632552472473492242304491520442028148986558123101393319753321093957077658622846851453586644511513822034784196718534945351635085066521857898626772446135989782430072699908609581244147348827827333741994725695640680272310239902560855052142714836424157351413388172533200719059176358054655764683100911659066845876610285494981216731567851627387585978719578801587251146601835209760457629139401587280532686936640452581192474045376544430482113355322395239605091682493522469836484115034472452782450325680472575984266965811007461833688733114550477295582102010685450297082415570015346551176309575785775308688641503985503502337311364385524952880347558958208540132933986539055448303739359144816614366512808423612845230610099179991523537245120569194855271864348143045694900744838793909020789637042972081897733828717967782808342896893074675153579814822176997423179212109721585764146656392441956258780417236784927640175051473062622958375544267561791300916934615449718828242833858166930852455280891413258846684385555121473561365783338853151424244276527988963811922557365880467848118464940670973449355570616673297302215748173150175543389858730924493938152744587865979109498934404174416969953788621225220916285128016807151208896956105543871561858060271123441150252903239255161103337178813187701337050087200737176516129166002667805475290194114037831825352175339928459055874140586861894831144772635532163625343383920267951578430178882747648721774025929145867310361392251733972752032327155454078088063651673168840525096637898779264569304408724681962854359218153349594234139269122131094220564789094030242751866264824718490444345452786387597788300130133631958835422066616740786057817237846476369226535339842533909137185285319328063251421855334352338543316921181289318821834944176376047554153865704256620132739299740611605486224449146547322112922460551895625056662698846754694837706204453847140770113119522556026201908003304176304976203958906222629979820194045283214784103988722176648270037769484846715604443229404575811133471855034396668010916097956691440749442567665784271963749454398594291302467436240389414299084871926450761534132451475579928379933193662675447098214864029145173864452570785327952196938126645035395484658460772804015466039046268511219487614556068877609256360994939207047759066415861529378519095868279147479528693515765271741960186468396117187321018644908345101708821020821825874344117578042779988054396619079659201402141824259986549676708084294366087313868340546778078258973574522164425598305437713966122381460348544092864118577073583112561672371930144895333059608244978162217937719806554758027624557930003290374316462145151518057683611662456188232728056110147846903059866129494658054872969811547386260492673218850351200083351608231599086021834501689137152831089968208137720131642804258953171444594583112130349654901848014965308616630038855309271688363798037562871615103857517538811670712229899020097505849422597797620841915623794242348732233639300524952296217634386397732942929245740206762102637091015982572790509067107616324698696237394895147352284003633326809098683093316555784313268978365660015987996181570993257496932434267371317594659556486818015958635470186041391867910897918977033735891692003438470302463407000345674399896752806802928768811990008023736080629110865947517503833125609141435213059957673592483954197136897180935592772116079591808427581210789942910979139339603000488355690768035383007422381064048832021570936641756223516217864668255674947523280498093079507835517455846334713975076033665226789149995534559984064969930184609255476545654185769451314697561661558493094107214646757847877375348641724344850889127936045141744557781952305835643578716033679919954213333318895454988203656549160170848003032365292552020868557416225329377840495079752061641673586716098733596211550606175213528186170948718727761763649883904059429506691259768930983665966924535175670321581429054602821770748318887866277140037842184962736992610272351995300361595380437018670485092166705647573763926915362879520973355598155365221293940017090533880735708152169396164239252207683327899805732240234880597566388533090314563523590881296645651960679631443060019751066170876074691705401979586044749540582616789262159171582016204132499340358634122442563552624257407074028986182747285175078931286746017048293738669282170054962790015150656327484634389921275553433517519747119921430591714577151634153675165132091749248427065580201448106274543243513167944581440936614870779475693417023525154954678036352988941713164963562374491820424595872436077200227861023782756278933338999076627183675268349630611896820876852755723391266113790474190099187230605035839068846955359377039535020379195490247479900810871684042085793184819358859223346132195108865700568531952069265604718964899992844058527756425150101963397456288380158418171483468495166670979366991277374066522247446684574719051782651627820191329436381337488144523308389216747568322159503919794760984402368906091910288394855040528027864427585450741264169865633327818186216956529431776817616307001808524856677284971545203941490053680890833311106783850745434451213354199543058551551550045888832686722579914087757665118725161049561872620736608999063735486061579561580049275606810326671618162017060904800650140233529284399347820704603803674523745773226122718037930242979019687047865058280971559325321852143359564472055743457323718173110964764947386956367107148210727655126216324417148503634990029792271178558480815851607242227749389395669405627999168853311251939885367059596535211450320307153236084545281638128258844562783409579290586814544624469899962367885258545919391792844207122404201163849672496619670579901176612127418501641203526450574119234393279908515553345661915814812428280076058944008309665755184424340550712470952698357760413927586017079341787923401313453486562622999388913555205492876238029623939568477984438918636048342545743083962963171782989201147403944651332746093853734151397759920762948636177475002155857923625682471731175759525873648867124340768600404713973676944346682396884362641179303241264248092500855717794952220899821079586435345946764730912730228342275842396417316945570563633871085083012232582864995294925653991264591219227769366418057819727931897296874643575661686165464422123466847074757924893171200617769986798724031334105608485618452888965324239545530302691336700747819365001763085368074600437828705559073503923793611827568454158702807835210117591347912629015700859388311335031979497868399239359700168532835791797890673249675134146346147619478948614489657058708866009965433560482585299809149827262121734817804886331613468007474608619841150019710203664588665249949671689353189272697881126687039630344751603170661672356133609870683681143965245577705296824292709107254524162784694392601907217575184671880993449099686059391279093404147034144854526454507727565021956129641185722557447967583356019082951093232268707351188737822511390097956783605853235925965486435123464062091352224445014582342540429276612393039044071398332850166434941378021573279459650967823422632055728380784902729982545649938610593815680550809299715492089600962981100121253401654410177689082013660559104163366626720738917043905204318852735228713786509121518019058982425504268821649329211525384816920326386918536324365359558569707733691013854051050653720677286226661440457590972166986614570180815248427126214661280939130302305200518271196426185473697664043848640939514834157906759676183228922873668502600269572755198010902006680484863702898166805537625499443653806883671827913919097337067300605931507684084048551874373408375525187168814120600588194817507721461891092015511870678743256188116950487394070037429623137660692218721279529893196962785005905445676619666355481907863360697660893471415916836543041856543558623024977541803828033487866567468554765279053261226130035146348535065421995344285353655368190177377874483774742617461266859210972120154909840663951966860749547066987295118142859236846197457333353478485027628906810668324445467843208862719276373611385215331261973422854891019093112052582635053320055040077297622390978580059136886153970014839850475894560267777990925507086794711354760041658515575329199920051033178794167670543684211304666119452413870907054148983097093632826516462050566857425248060621555252838295782052025269720095549649469554412358388693506830875728738636053521763314753331705124350641345579791620486018422034446738323889415770869501603612681727363884632202751999088655460109370648390790661968596511901890448041734810609371018680601041188067640703031301557903918006368287157734689891531367450976185489600911485657798098378244526858521551038252618370050431990124622718197124801843568615931164459450650805527434384574037552772049406806597785446974674532821944299830043039139219623165394653475996297288182941209882087467259368230023814893265309706469467700305635679284100575584413516223536931898818875993131385448137709367404343916458497335236225043863347083595261998848208877419990684604469421846518082649957947814677534201804985736755985527845990372397651948263808415419612700164779525782308978619223497795563369013684064996533966471579073439577918802709198534723575861933189589640028331845628322757522696530617013602182740788649547556677710715152232728795552935655330238413440076207709869840349899863092196513556045408540716109117360310951162699631145457721257483851553156526052511500233190582383090043256434938497693368474270245004942817203887844647808795581918879201113754040587622657898605239452744890358210910707757567274950455826295516055941593909745968906019811824717833914658494874375098784369279996508238696262029313537565040785422053093589864187513188284515370848294856731577451700081328400303676581848081730753483000230781327724453637361859557922194471705155728228937616211477699710814863664028838690610138531283493806880972615063698520187430636096493387430939608972171068127852018254791607381806984479175376023914483407133886653201968958694221165647657646668026242221838283958582465244925904042228695618504061795257314286265857819479542134030094131252557836643633906589180118926839055721354604896744698926542149362586570615388910168473730399786357434847348148420317689449465687634620205885620823487171366070761277749071729913980272148027185620593295287752686902095540670017015042849125828163700396213479887408436968081519735514886353455690446756688990193933652633152871286707576024953771387580053919218017916457755213199273637972627616999179561268471975340185867476317373020357714785399381669701840397072050518682188832959139051297240338322473695221273006145580775134094838118992718968178770271989798500719117923998915095579484951094997178015897353145062528637684995208595674314052051943530070917669635381012627020859010227126570038243511381320348753242786063318699075843200503167887763681817253966453328774081604784649604476162439504948751516636268224374326105204265262855499848616643639946113805446983845278161209500274915144373090222453172214651180629178119958452491103244292273669764694159937387969254046911841504734635339432341796898952357036151843232609252823246002938084194982345981281608453863645643131265245272058264544322550794879598982016670566389393742812249168842089887544173217433174368390058611067267702103482051617422953210669527800322201250826405776683034752029156268503279934296989627642168034374637285237293605292438767367454191174583397565852409679362278825995479422814739770161925982586392690967075988326221780724073291302824507648266884670247888106448162996267452059300860310004111899263108139947349676578852990619794998677669333611543107920450700112911979303754753141108279655602350746501571712099767525263059457035813739582028791925772704406404060712088665692641803571654372887052676382119143459636149434644836539574064939261706467170048269038855240801284576891069587756329100722933461334447587562608280497863131498390891512456133364983705158203255801971762593279810696101320304810561727701000525803020210868801781318351183138080013256937327632391830440023981418429154191572161344853685764892581144927805016397660645184938651395189693261292074410225634335249505610908535428077972399194868496866576001135953772211718681901935064726507515526344585190856430725387978028210872323937001470296909560473133941000995941079567099945449630169906882824294206433040257569800112748453411295636887814649826264075691008377502601597993011524121834373187217374291963004279551197536100292116107085906732973869714455177107083057198216733914754887972232609317123283653915142411068276085338842323378242875971944942348696833825593514490805047188529218147153884875973865353616732160919867182509650326562951694496320838515596933362026914553663034579212705696688006062580103119797508419881822792195409101922498361431780705123080757664101051577392136143468567925487286865698276482428638141271378942209502804345777802623348895671625181442540947168165260170853472193502539235368246244307149534501845353651412510992448093828313596406027171517984218193411862336807278208262264310382415554190719698759198279828482174106041687565057733233653796900004239417901004833860751448652942737414879158195501857351517143728532314666368701102372746254470724240342848749025440826681569752298116742275319013642084134729657711756762994948878360339515262546119879367983607267438076030427167575292445740961988001688560116461137265095687476438031834199786459237666114824682794623313418654335144539928308257267398481446682003472271813656674257901252278446114682391489587669953779836588498691359331960098745133416363418323249180571708500933693578876046275222940808539243303098876450277448691397120976448296967451391181131331553891858511228939306615030912108428912104291963539563482292426743937184734433281297498014038168816605739087108378244789196242162419994117664723968209693192186187059923957607195154563578102241058580430642753641567077708218288155981792458988207037815802042023763437368415426897086250291914864197152076483506434601059726177969491896040203310791520443897139128073038560362975555714449280532025752576730267459741904421806745513729051059768765101104562952716721015660460236952679759080627848419786107802422905482560493691712266134993854434073822819692031751618219693244072340484756189911640500256421239110251184879927137037324052501216685195966243748221441198954237817936752297289031791859830268919960509819457469863907748844832412093780709885573402958006092718641082766389786350735615939942000535504241463068165612146393874113922861243280585152213206741912638125352536027031464040851264806500137036130332507515421798053259967758300521782999655568290356549216238813273480276594108672921318729655933269623642111545207486586408315414792900382909905899305860781591328218242025237119014027002429649737131371528963847656414417352799095851402161819525364262722198322254881250164178133068582804631106306411068408326300757852386195997314065584124926779749005553570072652990460236641926570383780013613854216006248214024049744058012823552340715322051076804694281173520843757908921929740107069001501229726646246523186506708476053701245469326698462639480498361371722418625242283845506598465080298515060464197098337644929650732866021964645273471924453142578917790388268519837008466550007178132327002473096132367620349083587594277364477086757909616856638421943374058905333521986358432513244400104601555729523413525817008796497843577090862496424455724255464684911506853813466181141949064427396685607554543493830005632784728200256062727319660164414336351778915253838934201878712588342416129007780338849324576311748664759111459818881527409123547256464123352649002074183504949956001324595030776502051985765774396196783532667995493406206084073683213753004048710979911505299871409528204953593599599513288901589457352827226533274058519557926466526661207315376245470860905647312746506211017228949748681442872153630098849697102221128098341567122701661388923104649189830994618607967262559841181865417241425267689486531414033397153300032125458691359256194150693531955408804662044129246013792954931517360078916854227723959430732881399864194932541357545969763207819093548144761609340467342475502089445611874562627779251488495401653532696206479839865435275222274654381239551544067505181454517615748931750574090845301640852012297603083767359854545250709427660234401413265062887426700034303044084409790913593675321369691280982533246571444936674518628818739808041506098784266644925469341153333763971403723530372752323091481228207901727667771364402528761726982516497032518068369977149755103408893149632441925033006438857454166715411755856472866304103420013506689032021611365710867446140754914540434488831581629903761428618509509526493282305547388872489830155371042207931952909266871866696239817009123721368930113528950234432230274088478612623404935219023978407858810165858473801786052810366413040129694407770509411670988321204576571321071360163648293377809351724505357216494948002165556016847861326708250765119060278546297034660690580020793021633937991609244043600312149197329081319295524762742144436953727212338300633696855253786520308658268751145509159218956059693256142151609753888452929990122394635544213995454793655396614965122456166334207215947741164616716593949039200435275312741563578438150402678866946606943078771425399253352127921567664853099057423214541048742245624139403247619536152233081500701881601741219102637933075540722893042998418783445681975954081937243791220316778227663331381946375118594155649296012736245756716245622981753789841836678976301811560108623177528720280123860876688458094107165385650691054115222161361235828003297428164608618386722526296724599234592792755898545242016208564799605992578350398876627059150008011241310727718194110203216264996618197886673003994406413202931731178983351412655287391368776659495595854853362343268670033438089249012099944806680441232404671566617188684084817870962539330200686371236264518359348812973893132400616727316234688093487773656114702535402632187782013449761267839445169323622856336196848082510347840701757989752319187941240329322815559482885953467873336510303112046021212485095235030905452171463650237695774216805127459700786879048674033491263302155630438356363090994055141493350096789744496116887560718814398040062786590969228849652177135469936269497471906803974401274027342796975185411928746370701487834414634873644704413006849470591608639289793387363362377014001441759292220255934445041236723736296255433076135804866901463112299953495003881011963541163690732470906920015540206914588889893354209438720853872475646173251973961239320705608100893825868914568258623795081357902731087022410526885577058123382284798700957747051145923493383561497923857310776290488270490642585851652933258557617914926591580583709574408500441660692713302748255650479237599879508699974708896735527987269640783752425982135128492420805079240749800372058831552541412960732733677677064473478175600029527710488315996351976547183636853989180807561978329408919647589203961062576273586989185611911450878923235438795054745674350734916199546998346529106049242809385189003248066785050183762071172135117506458311687807470046525850546421383672589499743750603210077777578059893668664372395624784131393031633275137865426566476586113292180018858592628337824120266451854560192588419501275314609150845335352146697803579575223446101162771933525529033221655113583570225903312165815820006993226853904095011232604171077388567819994444881544098868525869407157825867623247764013387287954319039554470432992551987527805087728187545723005766379640677598906575972828665830436146152419731175861814470350774743455231792469314245563072356610744462978181954820430941257482200598831039476035148393772918060425940250044612985955048953167620748185958656098991970392517637273476087285245537380002764775537309401755157698073013411714205233428853853894420033094578252106157934533506483405140898837033977734414074735587431672080068977628647335088396300579701411479622259864385337665746004843331897060509720151691248749868674481810429233952025180431415384063724687254896426057302486802333440660755987535678515019683075073115790955349784638888387885812477089337847346118326385693928809336850847115022356457328408176326625147474315785549037874940349395847235448112373159662381989289394308542249035227593655606424522987182270813082928289768899051394715065476283483325858213639534659610281231874311960352882917768531971349701037316262877638922739497766258576547136198644145165173652680427458852650686797670715228131154461870465312155019009185202579325467654169480240975501871168173712250811706327804395300239051253450858738094065794949000846794548936057717230007924511571634021031594622057741152648695743099575461609411320283867092882636774317206660607673906000090797009776721425861524967076915408581016734766929385684255603735848379180228102129637915437170258845833577613210500827345359736019648592686786586158703619394510285018202745766890349590490218116942697043272687020526142291639869520952559600047593001522780551516220791708820353003317826193484247728968886560474308200029255028278530824605473522879584859095346859679055500903078742283107964902898760784720089560646809309661694846806185991546256735731560451041973825281337825021532574381063068530119256456162830542695917744865017732563283582597759940248479078456524219752015240160515348293434875920099875424066234883406193646563641058531338352770089602254705549884868285675326186110223641314131213126454288636995860701046474855329685807551641258030836464902506025344199050523508893482387494472202701828853042364284126083171570514359390390495327137646222840738250491738759478138263666285290482950742244324997437063039373391460928281476233990580145653687294823252161928410304885181673087362435397826837736107238419252833702723467872431767419356225604342129173183766561934604872854086213085965198303287497485903146277141213871880021766363081672155826473383208329108814246155722494877499337951417308063458477170984953846065098640636381246055868952137982366094670642427337301931641170810561084324637512627926609613625730461474660048481410006413631153743079076580671926517343236827244659426222961817559014442975008832380746129904932049649160068065555791920423903673352451428126623564339403721506272895180730372482645398867287539379185605120892424897529726089639812025706544143122653217802631335991269983937607196403619993426780863047255372462455288501713913427530943372515367244722287962606485007803069545974047548800850672501024371114798658026146418551632586552381539723375292019639403678434993997690655254260191159745805889242904981005055139302584439466199456064131911586642694700685811626726307597269458140983887779141951345565137382929581647682159895221156471100043008917580085547026917317641080632783431314659882324604001987512077784233662602190644439767767362786157241387149812525463059672932709832049594088750313773665024967646021818029396359491261116187040313531787561237794885877837479452583139867448461437869566610569903168927382820495301598436355973931975210228501710032739365312199915341055970002575341359942413694168086994209456392709070976075019359756230438735775753492833866368490382884284514863862596409445452301830937890822526792947704213473128571908356381390561092359962992290302025283076663255586071059838002779023621546252459858328132381228426443851147210686285479689097045684278434132362455266887867852805919710624044610479178505100398805511704712947896125175347520168761191736307375513381198490515634956177318047365325654650920046999834070375011793811822655364030394343504094297981468502882209089039495543627166362759134121034710997123898075380591910724848548002564999997489568071504448390888766710275728820250011089483617025711696220809396626237997639557114981230360465402203677126414598099343880079524989381520331406173038028637555193381049102074951787216453277634267729705715450667350773301759972723795329907483917027727323286259313854969168379771156518993817523637775555990752577771529066860975493585705791549437446193547555830873868388163031875692334446149730199422563287931300953737420815624643848535027226687431929330818533052013928167110168363031741389450228633465508693066539418581621739070078425357180548284704960871679998820890860253428542694171249626313843179978590055445698316479919272047927603437019814800479046940576658202772689807498992878856197969963494651797481691433264657122833421685896345673111082199265709630418033314888074622571076561871058772327547236724299534197376564766158796986260311661421368071769611202803293765314799541623250621352821280403858934534511266091172768138604578755736643981214378776791464382255904777117622594771210208478268222677436563115202869902842628033277160310955056033201022681718484989481950458804551803921537097016589530198024204558434633351908557479205913241429178603682188451244710537192896120684866353520127194899711156204052563657930783211297098480940871920720015664940737908315723415217038566965675596051706363803903660923779296935896698201745179516706533280458127321547629415212650617259298055703609666228393930268227565003235593388467265987824069841641483224966261078518968491426012478032995737118138346542806853556140651755856803072546550642048474827577847843333330032493885873131547821324404532376754006285280726129940338187586752574534902169922778422864534162964082989646590344368989254873519754896767918332692838462190604885973980699857889361175517641793392447031963224815132275793914723364950550727204373816834372649872411400843684315511529726572426428642009502608997904201720477167253445005958427284530145477380117284066013298668624359637987563601541160077696412895397859507067780694410184233632390728053916274523716711997063552628892110072104796662699000442984122377861091274445713131016860752908541575588231786055421539044439141569898089941532136099254828795914379649979144506199170661135648442517835727211050450286112118856791063223670778004475444341362595011434788674890041853035871338006475848305291426014360088145690244410475785901932651368870120758829697453449594844165260097727669815437201526801436049014535227081005743849976790902153386409380958339555904920269958861759586205284233259514012454357750099427999890015040797225826866476875880029918757436481418524230550039870193998850961178497248502005454724195138465991603478438182516822958105361103894069309819265326629174289348460043760368827860246995940973001580513399143599738686866322018668494562565963585618317390076487874996323227860436353415482576832047130002596038775672927459710996268107315423999054503609124885854610371077707317169733290222809324069821954050288077095327180155681737755773049796545228914876989296273456246980644632184462146268831952952856258440070992265460486915279639684547911657070761395161785891907173371342529074519345453182539233297172499764057121394933999669827753669171154497556993822165206858491559116207799040562926354058864148892185516940700633015325456401846745792548466285866650182179711254752033359669640383940659766269002317013590490766337276125558405242432635851283268711585119216067583144655961683394375675342403777202220590065856371348463831167185052978457331793888262926639019929014559614257629593157399466128551368365418407793388162175566450697196359473311298274655664363819601549230381676518181436483133633944330787993225388714187922712401835192886225354419719162019377885685474810176692777218262794803072193419783473860680758577326961968860413813556967364935004735506568044265611366002669685180277110184853470996376108607514921404039688492047085168200577278282828432085765064935272821465842924026516750282710153331493751595547386621128164603081751049185637644279728085207482158414747259224804062348196741264551443713999601207810676019254487822781870046521851126731131896362056446942737900326312269768441805942553127754253213528913271126317766535974561262167976944141913888135631342496709982229896235836365078746637081625062002393210226348201632875455732001514412491891417184789998946071476392036799949463461745341493043039392894471891981683446454780564730898745852954872310409250655401148126321207841126074701295710203461714851832394615331065353661623046633114465707705106414799573460306586989435983353072055204211783283344876535381722376401020150944430678044145523692662417296876993296199353998690203353447878869724025775820557715665133007508441339144393618359840119209714275592123000879566717086102224069281487448017370410241398003220371593086046151390166646952756790498454662523563115445694290404354087737700418789437965916922363709461891756199808611208573835013189554205418380716105373016289805116081844353487290077519696177877560511750249395732441885553982039263703946231786682506099118907790523175046429490088032073412606111214434230705693643555859674060200802019884225590359449177497519936618551287693818942142817883339833560720829599784288825664957338576226254567204363212359062294267265042773770492985183524218978689631024562012649740850845539087164178807591830537735802129841251566257916717716001989182540107829477966577337307198005842622481390874317692105949598823294523534710988278555848090289460320201921522404880765147064068784779385334029800492281168089285956938206154647483748197542741177859499031237052067723405188326638977591690775176268843553773540806989063319405823532549887121977143022977386087857218576862504178773997458812405197456660706210074685795555971666293971419068701145998020411194305564991839255682618880070973183205471888847190444050374193170604111274161050676431975656617148880849597754932825004832226863370526240656375862863629501244513499669269443009390093149054483493731863390416772368144628638316169846890157586602389189783584895588813835210445729390190925737853601781900545511603978471550579285462572475026514761110512991499746676708308945215823036709547548402910900198488345559975054317657325916341836750825124986588629631600662454250775261024660891414628180044034023710205822930154366695588090678899511113873162153154308871619171492901260628704929647050539218269964636442719385224105643559135705803570533825968111419676523666830106861145065517714050013527655134987411756869855388011160341017881124383790409660454095663349429651232130668019116657774052828351148656378271917373767300326362215013345094100726489266404043134969459649489846738017721107458786921436591517424645082672119463689710251216795115201547996672068095922398914334730678171948117284730603884531177280487034378147550069250934880981829880849819728372413034959271028988903344236939242901253581035490006906182545362974534950082429410188290796285222654266415451389530786975335781401843018034260717166373499469744055268624688512146048913759571207171587382948404517565561233413988784240416873372375478024539184121000097487417774477889586057980404356790580099833217871074874644936367113874302142931829515711438278788498116928011415687387419279320958173316290306687329169688395088991948996411392315783612596272986744622486380192581648627800168408424858863230278831398897822907195731626812190612795665041658141359557560015812945551341342367853686748345118809031282550288045594365758739324950153144583553540495105512763130018171920123792924282738198365588103609451605996983822392274709674304989660985491616262093936213454623729727791435120470025083757257290586938848538985502728388129986544051817152082674783804607709037297343439193488009259129845010308291739321864175350464175722291543101776074029945160711374225384566458976073997380490350186201410510241423375097665346516235593180807352092091582237065811365873166941571812735088339614909151410800644287580055302676263495201661156480803205548672657244816370014047560239157909418974105878444900449945817701223251754583682628549466754895541000355828243188634999074713345405545610858983791763532845569934152332638545696976391987409216453112754732958902631658849086900967548967861636329344837361208654292666362201134588688609697204596248934804714830489869262429151709554202730585700090405029965712308875374794059053286669299969974450136441008687248245414146804446736484579950912233362139102329919952007241825844330228131592262500481903595666277239799590567626891217188519539548886526721654934540271852165609189088497785183599147660900010011787187979541143829161048023537708934150043536628261611742531989687883800996718277307328474052389257965460414877406166777946542472448745229104493833193785189343456491560133788035195833701428918667003277555248271913270934309083401397272197810671034999144820223439798128345525536689800586546263447463951461305065275654265535530118324816187359211680695461794776500471887322861527069513219667503094410012428000940905609869243890334448475700266301656974765466088415773264116504268829422259818477028897348310743004769540358933587417912355598372622081788840228978725931529128817911468871639079913520379440949674633328170186176170505733197265724892768452143052805629940039598622289318796110780664059830284030526966892244490174420117435962301568142391349174515715692485370211573643411672030811309657155015680075757475987548178062149400431259672116493056707503222878082813938081752167130551568752031713702266129043359484614225356239035977326916085097784255634423399561488324274957647394906458629382338577436105205505923815775547866516378262619005369826233367780121242011460030604139700841294734794823452723885087632362453295193556929823958774946162031991644865442699170440731660283250850090933228712521850950325199796075137632442473988366837047420095012205196275014104081176978206327448460066209967961021770673887071578787076616569457505930016593162096082837804867056123131911382737938644076794916178287272097444387486087721980953043217712293689927173742023456451445182664247120262269209711009203872990200548513334029497417768180325343107278224478342025362278302184047288921834800097434775756454511976272497697335172724584760547954265519732429361077462692888743499674787447801901770454952624073624351549739730845415129407699477280798752229225598245177629692678835625322322638040879787114940112730083253513382265539418567892333258534040238478456085800298826198404909891483358176264240888760532447181051099185957954743860036596252509693337310676968225319781622034300554706150725601604861176972516727837112056950914284873285059066526932680074427582651391641657531307003215824007630679996064111202377749119522119287652475834185273095859851596493027028063432628189264730269674445454222311848421093428065714587233771759321450551153675765456411674915701773129466035080101257663618821078111739340467607439871878640961088602549942443935558789152158847003535755566763344655430910485640067515004501634230190529793228568088299634480479333589178375202989099959096597875415366830870883239551592336084134722547845290451147096182943261705851990699617499285396981028647609366736807585058122357344360932302056445029473030286171158386560644104383648129097271913585568876428661674804574767902562395086585722659345544215155935896063285679202886329035678602912876120245513185614701786701533277778661597851196632597865344896849533954447380867636837866006956579228464742550491846836309680673881858753636532230814292339785406636670868553196532123268919641750737264585840837629460412492298894603456264285640559570477803290737310983984852444754757887342938517629261637944153251146050826155078797203865467842674089819735850577296308885606933650581671916086865207949666940899475960264385811270554545954946116602939668885023925267547719680724498559843050281908117639741435779059066278996500330495492635878968227925714868471058900287994622585068323317961075256456443510897336215568344879701422667956085622413865485929495090813803431131128713657324460844905537102504453440252321014735641461811204284432769421165396531921095060534306607819417574337127930468207886007324493521412413731005579531026129195885981799767558704501932037087682296863026211097720230838021521429274403120719789058451773166717068643616751576675401264232427325137514089522075335715270518688545868135155061978312971122895550641221201937217645080364198104692832117741996858055552578781997368394885328879425277906476995955060576298019986880833930004002257678562952869022620428053154325901639790777004752393718193657143922558110308115288690986476069005737792739454203485451625769642348975626093054789748407235591312799470127674410388973962295167995477596584138626735671308599088457063474702797825733776713281944542490969470761893322054909016317438314006952250600113551842216398578939149798591167243126232205806170842302236409224859977975616893334025485245520027945670868513485053615037547933905012212554431217810744169230525828074643228175479513013093030905241709046717664167425021599945348965498744837884076348613901757117288089265843411180775902444221891374965419659735769607124380426666291961974579658043916936200555336453910827097532268423195130422775357134084669530499330901708920182659327355798064723821797631805736372713360929090098528093624361692488486570504974312400200708502473781458585892252103623564736698733499170825591604865972373191355300477755207390836933562060766168642383382612531788290748917478177466994614141136443770027545146607913114086571863492300528443346714822637410930327674898794647337685900117317186397156112972059125887938028849256164008568875957884607216711898936783505095121385004677352543469158813285040819196381262646008960528463034455324426519377260402984282166360517863985255452802376729598674054962504508357777185863594634580715093491042857143932744653652599867305603377362169203472539903527744590330484743941555764552147004781622889147591316640913572132527000533691811620457529537983738822551819558658092497437287695464068325163208530657534091913549934899567267422570137585102625675461530196316688808615727143421578856461464822985285890566450095200876424147136458224466169508028690248284165335870257334941602660861755749387476240729706492855715738478953012590154187135514200440026529840781514542450369306834990769885217679569807282258690848577204676086515990431875888680365900130743690525944624427366070720505026545050415654586610010093609902314696255164917826466675758812058977797804366790664765638413741262443660601572759553296318548959344992016475850524331592873705431576826387027738903906466746502835522782499336086094110086854248785137083707547768635374240555400694700600143336257934888616744573857498421972874310227225940334143073648728642791965510063256397971926507519322468490992252338098282739605491851205718331777443437095173655838294942815008757621084661489878772054220309655672585607182994265142828943642922347347514276527535440936208820040427467629482051483124768240121252127499499353575908140358209865410919617796376589074101009057922009284123338737156534626197214200575611925000317637712796346506401626393801034029781926229829060391144462465073653702870307426761586997468910449612392140424947164511900995284324844525620751022793970045888291432555802606028956764997278520348730099968082182664437431194754586765815177337691570247399953053172330269215599120773919923188943254072930982098833453836856018597647842658539972174679157695137269730389990620851629890144549218552968508712504708702262489708335452221101440567797409338030296197816590302011264708161306246553962708830280567926742106239291475197116317409813376831515231682621805443754714527107993619814350435771442117136860267883469186333858419417824105674896324430856054672521663216951576231141498196648876409178648131590816685689686960721585658517490755935509508280707908472012397527390448184437413006214783332821811720847662697211227175274336825861138334663334617626578938468880833214926905677817705206297266053668257807632370866407290402354442406583562418503441351415126729922314408878025803891414799698505740915207201039040866910749694399117175409688391871128803364596265986791981065740649518486584877498932835789622418953068691872013721270573509367034944601839560548455610509252534048493677537544220472576824980368927250382882145310410676524893226600041515946945815435667968031000098538758432116012774850671010163428685108991530014244647553857519699459207835449836271490165784882712996573630769569335751421575854769626763676887629107766504873897141857546576778510950851594333866101347407926046449087481701031494354700585717835771593847810591594060555815585100867292177381483929012523361905279030750950407040227567600922403049529579470687398977462426113391871632534930189907138091410952102888187921825190810953075284949687485710743359153863140539435634149447125790659919674572341730092374826391845814445513041836475434347856409309445167893694789412125221333615434451835980808945524772560384598691540846077834428632084580285439545580974263974155291591320622692698588172856712231081538420623930371322913298764026528657063404097231846703686368629765854829547443597957233253260309130176831776501252646688041912617944688593324396788992921313018807343311187712444914882361909765097845574605187102340915281201044615584264144810692890897351736198565119223662580628645579629784894973532508608145527844405066816355933447597998300675153872034258325713705354408903937353675323288907352713341848987400482247654784377783238199829234373810092277842139783467279061856695429278221825091574078057034546070538199106401143931419278696080166224060404607349474765546907789046712573952874435183134306252188231588987638310367223636024878349001873977201855181386973443165966156307633342263113960781585277121305803971201709777367325024332535588745201161652524476229373358125633569389062019930204944937367153686252532152952630072472066944909837822103350824934822213242541787086137343150962293386463314549024600474443055196729032506601816003788954060335837341741253840305760981478032494616408920333768891241464859225058451453000237832313407891303919573033369842491958747495818827414407766415539480826520257496348607369456617557906126460686477791328365827125906971806229223791727466610352996918326989077569687012126278493636596993909360394902580776700253031527570868275273233243499606537415119956373107245542700073881121715185815923120949315134346964432215724590829574974305530652320765674801078673459055671495172478359525225571806004208611302558596854206079929926318120318061194883016482443894931059352731018769373675205629521540528072798581855879368614835800809066517725185183282227444930049126836419761731212592359395660083931933896537243976729597607760218038487903355381283388670502945942068635116936455110550409661402232558425553539910299653524654093731732812648981624143294703038556697983342235370075492095031876949187713426839126886965540272118981411571786290330498277766549772966826487604345652152486258694838852328501379022398772830312441756737498684011493579289442631430793482893113222221948668617918092228687945260490590616555289395798876005321910522095858332037074973272798579540988734752217222191709011139006981619869177882702265167893371048423113260036089542933332941423328729683990664517896018282672710405573782931033999074585252745897067868446849813443607446757536673424358827307559894314270673194114487727445704164497451328326416206294810782741665194688633225815340082002342349631850790986723008276825389545551969206862104491643954017077592491913151811409457371260568578338723021454308757074542958584605580647196594516914531976517896188179485313087907065487165345773967636840421644130449743910000117847009839632175741505869114107378060016659964675978603378185149936893483997227132675021030947491797905814824514097723111210801440987558389245955469343772769389694407334221867710610192100871248101679226785526048172609409740544290701400519344434165527020705365304762064072342496915625190638151419344995233470543592556911479382240479259226244517530501483499862133520249433750717373927726872788632523303712463521416628778316148649374571716762590683704164071576309814470305748829038698625057553266790551263204486220157860534006108866941410884991287811217780807660832848490512895607478128715526924784789332438526317759066436842757249908296485522049628593534531918303381385442466541269110390329366741176137328873368664855625501549721614881238067604059929725136815565858291494909672886368390511074905514080203471165113500072471427483603036460312303641380861450722943450866557570893176682792603736690185998373208723673562119043005364772893923179608557957432452772370112959220432898660993775791365749825727305936223852094674528462674306425405289381161868812304273104978048151871407881275669084585095980036612638217592960157382190600486778192915098788207527293319195012957121724271202305860137045049979690204078818058849210736659797195808774685085278036520781670591739048653202408824723671406820723771812473169442510998489002348388030025178358162024781069786347927195585343087124924926982833446006191994866156934050701462749988359173676944191243942742858120028911392643506266248580293511558427918036708465613633806419972987440625014389419157917538377892438326090877852964134937803271167371174194316914782575401651566439277281370649202608772427925741311120237773697078670473275171382700406819549500689842637536385598111120321246489085339794773787140991875192228189047963426438069544631795010299576496466524650855411489980446918255717158688367318473598760189608728011926715501686922776690217991535063294144669441458179179059815728328132534425452584425669579806310086763976919438488756082914298945542690923450340731494819244692626259166036979918519929085711871689885420868749610990940296041905823236416308407361144375953330128497962441256519908347420773090502267491219139205387187496136222378949465077112161774115058814507376523150245754330282005415177760132025324005711398759644984377256374729368794395888181418206669807500788919423833533947487929179198825936348568397245108679531494150420910383972724806485334507133906210853525383057456772316840745761704120235613701044018494036148569554495179726852661606684715045181015863350246460730293496715738165163221610582526280874421524003969948971197629178277470456089786001056403151651489397150402098228844988576196218674025007946573535517724278324450835811343451538454721942945284307896373818999222379591267695585048222708505629413883934084075964685792708390928003371015376630322883250567484484024603919782928758258611478211662302855074538468419767021103375528139944246476326264474307506380287645687875079362277706040200169885360279241270500867333755189949522192469908377102059406714632837180547209893943962507070599021019880211206202464999766144225203328105349385879209948649433944160897221174564427917488454862323908982224812805007697233086709956691902534170638596603350301451592486556769633701449587385351314752699522555594789303566832804080415556125092733300161707757175166893659102123351640909067134632901259578698989306477586609020923426958649033922360100801280848316484117175152369830348789512190869770652880205764057496229189684980816591918310890515719071941911146758625647080232120977074270475716601437389872549527609219226967397604406233176647778609702711527980828719972328217065854543210450791876244740303162049189710521584165691697591684571528972998441636677676188859117859032219247453180372151584261129979416260560287858664808450218320049123289735164913418201386930518926923421140652428240240586385533476715446260442380591133380444862772544617775927724271787387402810386200364156750807122620929145894740393707723375506783526757772697592891654357900476799425984367472941848878343059594634321369338913046650418922842928802553664167031005095029749022235903531859354344110855428450734205391704050693322695107408656441712015394111167605003250254204922279219640334921555573453134646444786688088069888545113728345465592894739084626055369712736975980287918407289871759371209392164435119285785445027606434438167067332588050567159165871541126891650544170380245572870531814587517856978927000399832053907954191236955093893123422834199596024161304603657732885719542727591257220593812659233965212545033934580248490743330025060561835959924047985181952891708410191386915668801014745768533719374197476263412197148729474151704703606757720184522372216947120091664131384593406934191108068590946668906755859476229236885889521578463991021183006527953315408709806639311221933567198947172091714749109271093700839090162869598046970075328517654311222891426335320628039361071960467656049005446562984487674292617776126212310897589081199692032722858292857248115020301577828252550931298943094161178489146826845321430281676297053490263301762868418622090410122908253029908527599783652068982148565443590035115328987954330146859010071841068338527089644185267592839566642022742414875547125402223462152745629476748876007222090933450213278669974435399017002879835256124254709602922737494528475481385286934548085544817587074748931465277297306908577846560314998732842393856617307421386388220873836800830718758578284777625264909819387072024937158194400014022568500661427420392948420333773191928128588341837163941847130995471823352638870605752183736543662157892610526889646628905486346217354595687173386193615283478844784686088388657886436088426923188544635799210409947866294897362301424117214494520134285576575090788544844560991045890901291589313989852725461536190981085973031063314839325879622539991690195572546118088585572769895603360757279303034441742795332265822653900510604844391458716170117153477798351780840772548324465914676196310176160180276043346331007703708475482606264159939081301752548533580651122146920115706889049283009580641032467973553652332402262774497448098372965449903593030808029490440187308314004040687903611280975661759045458330062125283660202869630863535330506969812222153172384818951518729007785647805292994527127913029040337328927270565440990957738657987983184868823558637610360337625030955409483975921827778492863320817541137116632493674232023424101701784639491640554864096464745848062836960011459292334334027034834882935153363610310006537201934803649668400703468820799492121636574738410195843519290210770864058669146790759288518999778089445034902898439493991589586498509721414919629592024772072345200802909458807860183307189881612617550364435179197585637799018846125285368531959842521768659735168910788179131412909969834094184020432977150959859214166315333364863622306476445715585783306673524244683971379345420047598854829746069860238782837424438760169433613353091670667874868190030924116645840404244444002114364684828965709222553694399154065103573207190815156050281292158912154795065328985420494032707135638868906406713172491806915534100638155651383335749214152365705664048376367473417679781706483472347087026407845036351649791021695244772787396678253275087772452452062418654751503569177981673750736320929818017431089041774228022895967256687218735917087239991336053136907219485642706926690191109341386245021577049840507241467718965633663965602921656339142787020372906454378102220496839543504672694553888220089091186366410811524302703734179568379869445774091666874149894600022490944596752493380166785995958824207530322571198240970559453560918553794990096692344288554281399886382539864855683273850624174254200528668515363480502985182356410422767062855035216521508192704188827146896435482664396550935554217089862316924945090665925259565572536990721586907417130208917860197014116746487340022018605319593198006931765949715173602812773276005616114358896612503939536348356668213981369331557963429489491049396098486399196183161769564829734439676070625802828701980594362268876994009503426196843960521949904563075149112323462790329032037118894199385311101809510846938187807755355134358717304169634162074750415228567070219923678083163317089955873159413133396821498998029100239648529446534333096107403308403148473416673085502739574326520826144069009407668836686919061744787608294357328037028640873326352024096287380300469074316969061291936419743807894276251387573931411953673443846556271897269348772089682829357875234594715997040513647016308416460051695442401374758499038826103622513023880966148304753203727336953353834565968542475921358037915972151608595480333742500598890192304719491540236016987872337023454775398418368408876613168947597891928630257045988144643365872926821333357534988328331316992113825933486201746188463049030812450064243545330820408695158561922787156056513881566031185262774344856418001929455994969423175888720744670094982335015714660650155006491610595805399004663379044523408298700579849943809453243819219854881234516427278045807415093961495133432445923719046133944104912526440378108723373481233847917038022067269963096619410443547049211687120886982906719705336363577080515374345697579087196591277432751244011904800720724996839445784778510645315581601812545339033775981795178410980690632306659112331854196317286688287013887012409850099378213817615512189474821094879323058362812210279816644312087504167530946394134789847584244668252544869002315528957730213418537381305080992175611920185057232929484264456901129560139618694469948193005230511922153816955749029844521285688097581866665309803252654795347058417927212388582584001292731665242308876591357301262704253805890684462274220661527213454246782441679742401940224811984344956950056327694902069632296514905064777014107615746100542073621654551743100651386432438904898702411733266315303654906071455074468177118563103081760016409558822147048096535842243841058247594264305350507230882890623754946022069619626501696085620751568133548062057873123503745351553700820138879255476588790537083453618492402149213240239963182292759659201666722760180800806049154111739398339995982958953960847365021143008850461839694936192283283947395610089429661192621537593594734884489016759587158700601010725148834295481274699500325093660843984194344112943907456353160003064932527418108314853530418487016370859904261982339534017996511194989634432284450080526932912195924866976400922812684679461752939643012438535249122030115668077308776846740107202112436263031110708592545926199174584684024559149178790730871653006739647647648449133578100811664993648270882894629246617600206228849259721673172436484807312706207646912511347047636627512461044293163846404446593571878605052991157719132218034407370712268775159217536855068165945277594973983993430441344495510750349070906808642216625308059816229708329168793181758646100508530909956759921218298874008124319410629067906588300415398584260222627595746347901155375474659655953156920604783513907699657802334423845997984034428892484564125057122802790562013548448670664376915703549958430233811967780327175434909659402307281600344519813140296664010943200643566038084024380649415089804656376930700613707071128208124750363522475041178216272291026241029010109449463344619634403345086082264563826800505834252045450861137231621165103455631662420311250949867807488135981518550727285925695203790518976488209428054316976797581566506001907639002247050865723592149902885503223770436718674555050002812585362213818510605318264240340730828429437181950899008005319965151927395636930946907840105003702883048924562502672843684741564530633381199184750566658604242361168414265298540118188435379598053126640842775680200907976510126329546115991913382108488858549411403548865696512279231982735818061953271107675237703444152733745751764089522967764189497569612363570439483517483564613489180536183269772473691937027221257615956762159508936414647413653659473618485188210501638148452172513486843235260677999985104995989891808763582768766885430766193897794749785836851480104053549520902688017408840169436171939887144374803868009830403275161924947184476813734932445683471209832904245814541066998517763261697855868388167030200854016525804257699300050292802831382717702397245270067954804296996811316607935017718653775812026668116325521232528694124284813376049786500177304435318235649784423139986020246502624914173476000407575102099320312104206276766018560634918854620517128481513611362046187609963142789379704493050075945289782661237311829186791881838294224660512995691793427873432104016657171626171518467085691240965654326451215983233944770840874666669263803110994611073889139578718702796668320614937508049669811620337763097348274674940658650406092345493186856173960579940799393294164263795438962099686708001878516208114413979069619687156485343344189427017277168960986086920874997373829260304722026757276069440296537174870378292857104784596933187344132594128760456845836661735033237551767725776460038356530837075709712168394642879189761595225631896347880922282199847118920361214861862224346791067430977834319134414496952562243528507485745293472829116547876303930963627151516372066989794423357372932391925224818963048985702849903929511463814680165080181424867899340558203786058769679015790548252627960453240790612797586162883605950069974191194089639960162044313821751218651092558609079339251279583701432183883494727841525171675101904860879378848557022445159978167446246115271550600781153274085350204355321508292946963841923353246413428376263268266289243746598181999107891348446432624268865402138948074123759885365374689270240175906518168204504419847459366495526911845613277360520155600692966627477941278151336927247914344969118214497273320252778352070239412064306107245298515120695802007236397331897031344474834234036167389968368862651580582122418203437985713114539664428310285530949680829975533219205951905213690320944954107131457145339560843149171038981262800902059420180526967552494352318601740813953711651971634402409724483086639134902814113060552257241842013812745319285712088636076033744290998609721845033532148479773133700345547950750880720488122666088658053632443884756221517922311276144745375373122642301366080906313327091301792291602239906093066785795777076321158174721120897914727300507689820654678207668005415351104725871940514434720719602550534583887638812569694843738024179661889066715580912132303817437479193362528968354889386749032301623953700162159236708499216310363802611557058968884628282458612236959328754353848250939555336886446512619965104068384631352503549223510141718312474592791621853215386606605430605526082152153823085488743012265951360990924516338865133250480919766618126754938680600352566243488046283735076847935648764513430112715518863792133634116336347724617194920804103242719867836640132406964709906668973951692335174505834361868762181668906804008711462250696687613796625065349562487182850421385812878231081746960474681283537853007843384590804404218463471077989046579994096258502211495935800526641694023109089303950254074645989397063346402932914431714729079484407129091492790285515624641933147185805434823498582591717603200984931276426971346493957463952991664725485847870414016963917042395117661235194599052542368928803456812145913638425547504858071211153176897491441831730320789204037427741758142400270903872023591351791959755904344444628942699387159692742283261187474804526138955909310000358312671758532932479935756817604534232480677467777782188378895005598912834100945680186819549994650259737917064545691409305452321107891192529989271898677314567560600098536603372114874607530661310693217092842556791489892058141402879267132460624555640541011728963784098708670575994962335392856621249988561363101259717062799215040536357436319190178273538539897260279853791157568902067227656028653915883017223614845714221978806491013591881067836971457085971235256211876427037698460775463557571872782509366442164212583381602332245863031923520511431361639137361178096118138293844330468264972068669197182053732858253664929627269507945311727567005428548634568088274771338232863954263989098589237352380092382073515441279592375439760302817667313302718008948258987746566123527551497312086220671821467429397196828638151075990976285538120463216502050654128846372153592456888726782405104820028433971919316713565397171228217107807168704943255186210965270918857182225878607988997480869683504906380023539929269251593490315503199968323812536211851601534709328700236262152933277601645582526306690103289273543476295057850681609364867815065159293090463936329635944800548205518459907070435347992194254893991878194105508714161014505830874996517531503523050171734995505609332819989471067815132897827534981580758905857004137909672108326581317662299350592431039165369127621665538967495779561277936143201015953186910766260583987372012333758986990467323929700492802418203918449458694705996093045696793091221689415215969063306421525027920867150121279336626612563033553490662914458710839168162371624037567221042098556433988557635527964261306765237014260566783919248842565424348533312511717735384636608281579864388564749925622865931999342743701322605857641770141077600498233565881745619793009491314799740810736156620305859777014833826075305171760927041120633588992635125567281101220320065642981452451513499637578520779508261121813672872935905749884695156272601236079435658021635651995927930267416835195788826407698693868073091637066935473689192276917172066762610861017591340258520257933289623157471492509033744234938552952619844710861791531741335947833561976294581120570943263447941615223967731869789196031240095308007868157620205930355931693162441891400893599228969985624238538271432957019374284174480500781341411273863566758474308310039810339779778819472040030835470142487657359970890965077229596508007165170191786410530928303133076383696784398071664654884852191468591492530256516341288251898188198514374630729215684726120628595909330156089775486861995076446516338136020132806229733770749929738432669089834445505892926631412533086707496741047744803771127643040771830713230954813337067019922405956329866302999705640028220194989279913620512993063951263993970148335745194148574917091231441926409648136947596232039591476293423651486715144841082265278026745985694687105892642461417155883960367215902188943917116423811027644723905524130501755553135912039953845234447210641731478099338537028854778156178027144881038760294699471439580383100885340634185302488382482210445665947060543009906896258051618674218251586980472043987927607779790666784354699252796364117212454849046306458537579810997553587574957256304642862134071392641773325593274624866960813460182496409183181361862772666847000200212132035340967550094129883337378919700517797277122122386425505583006469908154080196305696736741303991040005342829338152818784528386827157150216544757021374921246834155805982013526593760033954804980739641167184172719813112640119493518008081025821048680386910967277694800470892825403682398872133728514176536989473497612049820049238912339131042323682476422376100595573030907893383562258520450873451904796915255237621367349238794793883377057979474371922596351127345407021680384653133358895590654187766027298457762356822254195473415904453895308469989261694736492650170148684900307117859954414772399274769845534833897956118302892632262416298902039970214235630059155016113969169119396554358157130673698653280077235104667158535541877596434876659813622066590469044858000837716073057679073362096924248504369512219087283006076655348601280937278337332842582418606273524984842580771106608124060197259573575611326342320235312957193685348279604992636237121967291713024505974728923051125160287463083515662184522903892592349491880975370341131849087534667208787691264641492686085344747780957249815984709799587046626010613745132621492675661925746114717051920939478615228116095193464098890464412696488829621098539394741028228383945314923064458001328920357362257564524786958469356282528300810602145424749924133325740913893347432837458958962590116108951790735364432986429546588875518300489757787886769212216922376491593558491625120778904327922780800500735546562269435079506320837898034116648128648593181113095508256849115699102952891655655917306910600994846046551527786184205236517383288865343641727855251509991890454005257052802216829324945706376764802206781473330435208583774151167306564457800919800352795248029023975374616883032723624001018366718568856507279826860221190982395482527305390454920996610388508908231191255997202346686224218391941835100985020045315719811778971151921677419772169221169081887887700919166546948695092035320527022960871219870809629645827449197517417855137127767793925016130682200633204904932494363452579615230489994048186835579725951332889611749359054038389790230314586476607697295770310831452182714955300147875536304430043000262605611066004863055227953044868974495624396074268237046092519712879824885040357862557745612009774665357909977820810229998286381166113833432014286643449940518552504557141675771589462434704243999812499956602529669688957919131416073535469318407582098264609460692382909442269206360099946627374435462256183976240431162561381307095457707245287773721619406568927701506759033960095924730608056723168682205061396351352739788476885821127485419115440078057592655806197255954937365248098428107149261858871070446821449188644584991218607867023736431286854966898570856543485122639637933394868604211119820696689740232364543770805854662898057960503075690648673088345028865162912889303529203245870304069221303153667663126809681978980860893918397683036663323775503374817874954812277895307717511606423846860896851572257280590115382719818685234825792934587201028784432162267700946342719750488384171748062637405071332408890056855852994606607076352666739214312466091272918282467575482498440888480237056844193868414647221480317347246977511161015094635053282330271224031504028048208752965132588764612031072620801523663683143580014447946614049154259061965481587703225774579499700775068386287408925427713748613421818010573975192354008603462004054965792330162822252291845508603050672947651726974103896839462153175464255762708604391352441946592197232618425416173372141020524905209387792598265712455247863056301112914284573607268832994751850312248366891051185333486443453005664784089179310961730894402750946760738275180681576576921611970697422408680911373295718994374599289201322448603547361016805944147581471359987523950675316085578521771624282561937789045602254042270826911659814744913226760627260196427712029105700706415985862733907503489942746262918472411423973220602425940046465448485198570230750093086741034696244599778081705249388370013524771453684763676931507125237262188642730416404792994237170080991328326924375958521113586874721811717879329423878526052629332606899873280641196276110484408427142076410435408217921770760023808526522623617325266996269611890891472925699313974045875191086282646660363591611258700981908878591227347586432976413123795723060730713986433387678140858200871187563667102397612334875894202456932676540676534665916097218601591373481388892623583493506673699347905673746501975799974598725466408315069198196682176884785830860316286886903070160524704299504776670021536582208948497109231104750842303123639368505298511912459136386356334274630201565331313172153630087312032818925576545006524792166439032528724794155018009791341396033900102637283077656804409654867459493080130883329282150033432460010122854623843553266170124731619381760444698800497532632641054025158552958023867937876963109356454681832182596337762145827573060465704135714599371657229893927418011229481519567611178930408110822412910717100938292131506745449271177360026950361107585389247911802580038060976451252599626623966480708918460977590178444027769781951411318469854392594505244256629732956185178946380859185827166916097298311445383336235183251547761106669203548319001983363060886117658208446467569832309818677530534355813244504543844788952008440240692448113863656114560813284584468136029900138918144029122318234470847510584435293902161261533587130834810386997106418827412937568187754120080338914877138072187738881505288733758426197527441854689911625754784239818763200126054636197482012593578976819664098706238004444495784017458535080219850443960082891317480950764655157962945455140128268321030246521565402557491312820252675110904304143369846782339640585846856675723168771979787578787807972410935331254657063761133134245047914754278400403814036228085948815534949407010006737560512947752296121060191107227231586581755014469870849518006407787053958193147967497778028288573997742352311645029990479351475788851857802312517828883058893844495831816955600074309209371973298314372414182327546069478515519336191169041218409732174694273295761629308218053908161290214259210232287764304722877528861248042144843824732018494299172214470795588183303855912185024793007946135447205553831962683143452441377631474498926743130492288453816099330847199743858320218980526769275701400813113624407538059529147733360420534877122942357858866341761912142597886063203927879281939882359779030930741641780718753425150239997652988217125773698995234972343775991367409078682517385896859420876718651261317935079284862543606335565390560318962141793862291163498084419935902399021234613272725324974923900278431887789667425837231738899631046811766575133256961602868375312777705951434148417373644836959340247024138235324619571334864732916450745800925712439523507792353555201352735265498773934817617727239987988569167819410587167906832345841057451097503246900404037771041262881222801479623873889130507545975607129902612244018499775518776510222252466783698570653833797529998917603195117235176393721112679387519303308958282226326377899428963598160349376740962118135096672165254522249184516834453340991433346365733883856272886078988158541401625533774507908126173674681316036370380460664578422966893640359968632557612322446859767389506312176938375177138603795535304228473265974306293056962108928485814530628477616327231194618575142266350975591653443826065465782354808906148996734919136504546874024264258902893844869936316199127571779004865619136967772305848745426179854566140017970430499839285608397855039496964778222153951067988787041458652894397684631180284853626285217840359768348362248786852524649046771045295029316425413978824388762184764241827724478571925514779068276074468690351154507669849230507072257434207991933342640672032126064688641303926296457794251776556456435275460196799697963735463021824688066597375012412455218157716585651101830025710837714021229564589938027914353741216980245963515302765788272972139442003206250649170526177388568907035646527926255939603346542832603378328779700311931028101860622932276030919272046891437230889521736288946420899946531625073478076292002100908854201221386973810916395533323550891622559422887612315652132769674331241746537783875251010065820610575594351426494249904500039564442936105719937651875182212554819968844096503848630109764282277491314086621270041449830000747534854526049413907593995978229587245832152706915657528021455789172799975195340260682819088164333884131073734345010095320270551521558154153761543323408829675333817370945774030342668061349461320129723658182313142538465497405810635773733158767281077937095721180638846740702646111989812107576880112351716919538779524848998750549187096358519501315719513680118648451387125704218368502589431800106622384181917638261979476130059047712052741636753839328386601973522980036999544284791882200899990425198467583119092320161088806258059337629777080330947302518441994887935226315852859904631503756179619491748341517141862714678897396440961444251604002664603940188489124776147934725888729673397479612983707470959410710413711201218549256746344197398349858927982130977787668955637725863256995596215221390368880569102058349151501447353361382323312763531425190821582977860655199456027784113098146544403996519585837054763969186241950246368724544478937971083096290250157347497091218727641252576050589481778951274043054579492639514668172304598272145421479722513457650256685168119693645920760204368284135834381382435073660932662630795596054050614345827783188325230624071126417744101398653205742709570087706219460627768615077322833562987166608117385770549496743337523011764732478388778776479248507165329754220498996369238482734818516161372710749663804293892687020606195874627864992465763069108823392260587328849780018273173612208769570874925195760313947992293889797806244688935187895329736593729612521899329858365895388886144438493464040820714454097427911330531918100264118279750225445267152060317932460260279008054439498043054970330616562710100193514430194524277528810371491062209827981536592790268448577235019506822283500943712523239549575400780522649117950613117390225869036102143331811403926243852233317529919066000832169530676303594702681660438856494783339825171102845402730531465095778416576074202495240489585633349013123124113006359582874773454542252110431860940990243860343601571317901593963479926128494568718646591349001913347661437155334990674056598995798361210914755274350998551224619438497264116542181259264897924585836706642610586015572144410109968917362462024137445589131975161191285190992572133807799492828334798941622342179662963738162573319896178743185387083332981018186697747407114869388741095654404935594217562788233794100436478112240543489969411215083278393887648703578551351823324123216542818301645819327243646666580038057265538458295975702726469674171614503526032718298409822564077380634368402426106787309851847170080807437197093155322703839249071091746808142288253197966708256983607484993441570042358462582962132603378158325621104679247348272689021860713487421231109706847076230964967830759182221635742910189455179846350865678820289194232122031013397263082018790349346005623851794082502953430279824904879689547120862067231397107930709149681883414905944127366169468279418920750660367211570128626831251128390272034027222109131848839044494983414531093287768000320540475485175407071447087760642451822028051854240744992405448931202053337625467157839344835525355151083475333086021351670652727207128542806120969193395763668831152681223235210786119225293105306824029129690010716620655711458425723952930406347390050438482500998572913826683004956544364737458198448309649449029871436880303828327014559515839620493540091879450629871351391295478096706251852338009353305295445139139092903718515359122418747296497622733149860206300459273908898176369048075553518412056891453100583039235731065802623502407373452603317134125060502925974889941498449178439896034198376264278652365500477249211020730668416928183431807250710308985587562611716252934129545037497112550806129450710031489977640545728980424202999668559124462169502381412055643559897296660352308698003887463238203084224849897811334292402558116235752032021122826127268101287193438980957043009692525627290566305903173919155471628248965572950814371306091826771130771668979314351141963144268958498227594245584253262084553608086484510372748073348530306388491966641531295375285121086066533700480190377554807303399681761726609459213464359534643872815568789299266890682073095140206960708822866276694019512182788904778336873510083108949888560224431061986337153353020175662224243171742472650494700158306996852570563094458246888555869929563019502235144536946667406637874390074687037934197395359573821454371253692261836240771999049147347512792696486315565491011864361347580873683042620108371200556099943202407862526586400283276435348621156296559661842058836213574455156327914740798277139986985607990877157854173259636283079757058759830682043896364785423064294118803272873721993599616860272576132383043489689231273065576176684114757131406400201335535857366993024088068880363153945654705020932592006181620690040391154249099024326895740760367399856990683176935537993685661524365936657675750655107388075215350480238625194356994106424310569847088442861079613308179188173877726315712138751824844173282755631825383980063195136215962442521387295255361068498686262211253944995581381753992538107932620013085405499321335040992897783395889010122989170531671908749228639583496945404794515255614409898438346890642688299278369809639962296830520271201085335895030855911493477829821748297789398081821683110327967848407146768281051416852870744406998745774928189435858216744720514956608542000073090067559327586291524348566602237035326363502391847273712603124074711368482576779216940285477054140077474365939434247054224881310228117875560913193528196886333737841895895390160674645037228256893003179387903094596496832096669174365045437421301235028371481413565962301115888444987430627457246142338621499918719613254942578575748798337799031387511949551892052600445797027946370144537293346733380614378025669814797213775012021744142696339820243201764550601681124355400785631567835872681180358974703204334582120610190274941509271519848849578196301372040303956018918391732430198126206840456656280458693527603141595794887916823368774612108064871031837990581727406975552464727647862685312783500937598664015373388437672089684721112567208252713165173433094640928754716796250033794462004781164749209256832997811270466066289510514043927271292774728020627298111872522567031579962390224791118540061057453602908294879649116464859602733963233025650697433203250622897203019111168132775139859979920775912378958347916412126892401693373690384574221651443855323241135474343513288339132208641565310777199085235524836919081906217738457988388443352928169003442227995506307480854950265768981146415423724865628005261340785815986608256548245491109136199280858899230150088843804314569180650829385600929894253190032949252635488001927103496287335215356295984135782952138573128992682923802713370324384313309791926120990877345524450370401083697534137127159456193023980290788801372777174111964986747119739860650011579617787197750048235697528205100317540334378474158024060791494901953308476655688101310485635910378550655772731761543310045933835900960780146560967128626209196600022034046561083937748686387034066687534865197895360615465109066920568563707819757905273618951155316884344861593393423636375258411018758136790765792326028624499429352386609682354252489611380856926810497965018666608726079729915896545736206006998873935597520126208152935156979390779924406082334273430953003422208920545887889770344059495677335160419736806332811268180643125705971468256392636017829215234121598763047814914547470427198673630989318364276154081541107966428558591983727882074813108084068234851992510072046899746685322044014903688263999180571818591219378382256580630509064308408125298348501945502010123304194346529705477258060169192004629144174651047705208427614505659711543029507158104507924790996409758892152273066973709567428909295141425710494225162426765380014275663285020253669758521151571102484284505640596586342767502154087041750737531228950492110289295620655363658516517595386423663921925535000865894147701600836505174645291056715867816309856008716497928520944710735849711940956232008951374989536956196399732435501049121699805422844879033878175344401147808178811340048080542854798434346303247845704210331727785830098816306329206984025104300683394511811485879768876902176784615633147108469083584111307468458733732837040055604714251301917245996857964619659749250509193386898550028061089102392178478130650570753723391533136140300030712651889381538133729855767934300635341816506039676668000775199934285618109552554275264476978684648485588307728594419747190059111473445531442194441399077884612828783990987224493507913495858163085579342774375443003037448872229061847204897721964853675623801153594164980094842112222591506734307722711525210623909374595190219230566891548247332123640555029903458825986526511858631814888829657026079768025364490142797157705129556665567317549024894089248886651019937962122272823366336063137423868192670440204705096871735344481831167364342395020923235969603287031176941831468145476713979905026522491996508827972973528773121006573720885249726968305289123610636228647895787418051536567457745601976309685776521995139346472555746814141278279649707522714300086023561645569384028166550167128945060289447260256650334550105568208317139916344141822900472676074313248246123894526661517658693842246123525684590397205120597529918318436919538397821025692567096218477829438087439411843778572738989529434464432406614965322855382098377558354916784907239093935506100699484230508617536801170025695304705966405506197648518191327164453675037838344137971695682536971583575633354796877028367012839436598614591063917678795128991570739812389128840318939792141843863455782159607307265611479165082647936790667978478874726966062509813292686286547724739975137671269168877448605613453966379024513246907253974281077924605654856658315973615610768825321876334343016927609457399735741830667495221968064186216349779261227511359243626374322819366520706655265413668435323584602230409003138418342908090455045302058764755526195325403942467463487652325063646116778868235048445526106413652907895469929096860363121877267576755043892537412489664268626878941228378765567128206551239495973766448052994041647240254552486270670374295972260764272660138315774568159251337996781617785654347924064503536869168362772677361680713591168718765155928985627120728965912495684248768055060094787456153095333064798613930241561219908697274581458423360087805998828973397306734744105815471845361770197269490070466609586577037299329037200167358377208922157466221652143984710438405096404171721855867567805449717841453090295325758688742702443478509772769904506242273100268073663039926237062790676536973035880662814032442205223884747047982643461398289356488465266122518577695957735019513956635202098182374838958809031418644652395504764674416826017399611946958136475621406446113696444291171557356482787926647425181492745808113639451973254716690141876706547893771785414118109234614149126012642070014646141653308574947563626533965288744651953318122057376660138999244372717484708599414171267349735141419007007302917696017250512505593171769140052242236469047408194069171830948303227000663240629458567563730213676177925826205510869980838452067998589651854734082359400763181126234291813339061138410055482744870206250594063218147363553837854256827944647515891581407060220691132211753776100503967264761940826474308492799577065617090150377895252217295760192831737775408331337570651713503617731104452033963529284740275340090287087935731300552529581305316753032379879426373789381833157731809505966898933857906101844876620798230640725410918080290136532293703027887858703692351112462412597290379919568627757033644549614402600381746430648308365711650300618241416723861702182720237293514894199982515398885860989043734684926419328739052587493527452483693687868242075514102721078929812297081231462992960757516101204563164063276770434505091793135169416972209529577704693205888840134619309078887020741442957872023606122549108320214347852763974709041222794867631095531290789163266355759975578222421139318872940404403125709490158246699326932278393661742661175469610931930510114618459025698283478243640898018222019631137408252343062630050134467901263395595360664901160637698211932756065839745783230919007504940330731073725206395206218988833411822295541449070068247352371384553033417048704218705412475506905035268258397064313094178303369247382879852203693578794289547679682143603234190688997505000737568716845647916781271955931148490468232847114365390624013381571302665570505924898233539316335519864924436832962262318816645728971248196873355856726801912453429697502162595371332241949579651805842636377070348963894916068283312792198980734330943673557795131234466699372078100087885005353238545618153680538202288035104723863081020598654107577178343893888390715538851867410244772556999675149264735648738808205988318732847192634582122751670919654341891924023610391984283155893930920374455258682504969998816995267027709101675127328197083189208572633797410333507254579920472805688847261289277542168262962728933417375913107227599209357151506899306231005192993645068109037491877442781311642109381962459943385303737586737399695100353131646457945648579026148662869394153684579384380162660776633413602577177130044734264752313908352189221863474172166246140339667455279593842142227497859983272493332325643981090431115589534266589693857451174773736104825820936296084945022751705691396088888939817139849028726289006798335134524987680758234168455682254139774001825629129915610103943995119156688197947224544605401137099273385990450578629188229888558494594606771915614007035067169398342461013965826703292088167304636421149491834051784942576084715229973965170243069628234182509493373430807251210726117359266913818633100748005493848190148909219456297250712663217385717806480946009102059345263839948875520035324952722888536458583057965193197869937992622140182821331296060201731205356300486877707915099916391065799844622728196292303252990147113539286364189855031683210371478119021856445696502854627439052711405972711178644278148066718570292589518766105279329485170152319984598257327196046113031035934971298071346911264295945327558286044097899516829309410626511097885501075396508164946501058908623240482357118433376526917966433523090331464221946438195538354010401901437466419184676276940914806345081214195021712685949219861362646273446942718580620448667856681204818601414194767864759132764474618525992707428738568351158078493891895426760264427563353652238954698670316143992624232732376536170513748360946552486286404459344054108392712994950431502560291134852064805570634950425551638307846451101516912121829680368341999742097715783974573514725237277698345118750128274226591950982714261099724577643487148781443402630565033820429294745481178648850612865294713842860317142245798189780888186238163436706333233815747691865131767928413868133954666256296271064732819797174330403132829794870439294946217282155886175913199314169113405708517400545017180673987551025712668517590875877105457699451762693856116900523293609476331830411395226747990670949287232165304166199866359455572536037793850737436030248309902092770424483654389870305479166320083157387448560880629273320188004771893753943248362095419316423650336731270972571287971073946236334500045800524452558197871932518741726255130104346439709062342142683832841625064327710574440389845586173876872017825063283850795212090993780503468933902440347865621515202349511861445209724401054441512506549716930462586918852754293656900492146179413689748245323955015010751140809620330300856475977652079545892884847972831250935298248013964261309329356396704194316873183622779181063662697279563647038660668930767714289439231602288941856664025525890612606145704833992655712823465419172183847870947984334374742264087221000799808098614007737176955953833081034394930318540833411904090921576903433936225511080748272949555530361050892238457290307059582479111332280889599362346846538810313934322288744509058165134980144034515259556408155350133158817832999553925764199585215762224490330222474229193476504059351736527761937102498679245805214401802560398727727243297665721278782736072313352783533321805552614856710580476313207049481091345535696953286152522973859453075641574966467398054639734791159815046566862573415697162921454822991093089281646036062095387734493034170406497537933939068447518326609503220799575503516743248173574594316810272995295150883847980606321999832414034822773618423304828757339535272106193152062285229134622648103548430906089663885713530132974827804840579342052693292475986253911990838037686180551653196072997240604299521101518277572211254347041462297270585738881815415998176325429123029932635833341373517513916592191239047055514947934634255358661274141028602246268743518562623328273125647442352262410581380175809910188348269660599870622719792871505298163396658917058780070861247849106133078576459889043332079805016994624159726207578993805671060568110857946286645647341044176959998545980910656806584524852808254042604852559748017026280872573310452886972198827002192402082893979465750515044203744246496500297356170254160088864187879559078148825013239563078722354871580170355846155354806672033141606436048394141100603996048338589678808172412294208712432710923153960494948634472355330874244124987248712889795714978491589385409139106975026224000476576792771577865829697059062936507488778100002022714646395365197809547117745397318975686567281431948275011669460513685495545068625873133068244981736132102254148472597998310680770464226997805039499708902727758094436461014212406951134987029554177123388820517756469942431253594034932249082130627376613421673387613824390515522652349110602428372593658024059065927970960795151124506314746402261567560602065082700312284591766755179440630088781603867348744260251917449780189291088800474925157193171283698704859224298844256330086403621969535436244619468486315407154887794308270035800836650124775426573724900138319539591000946721816838362452877518004921554786950683872701364670052059522577786877520008036030761711053925632664614049482077984257775041644680369403081283722989456369794435490778263697382742843163864384732500864400063853871483535516517896046124737100266324208308328633813567937710929612833405239997623556960058947640224122153491395048442528886703475164699053591231187091599118727539604523485945343397600680669735208883738011882046037245772710810821318253959000793224080483724376848437667034292972374579630235180096016647001823007160929838519367934005620345984350664384447450170757045028205306750617681800850747461307351883757763631576896395554415977685995953701060538272090359961985986809331724447386785387601951807048095844630071423397043335726456923790166030713319839536741811244278267449233696810454903224667774953244398754457808765391266807683793759627156716615339757884166448533110399598239997311800972578964312132358123927550677619197300896710033113652191427604544732646226026620270571824603566200801200328865802984212048624241654959296081218834571928493076261953666866662693542647109714408675830709749495194995835761584279032488616454469882756112182468204470608297658876222025559079785444470299441245868506077952712889257421442740597719331297482983394838860276985627892391276679687292252398924313526018539461870765990207750535316800992170949904123839170982628818954709194410237617244672446109751693367121993222380501438857601121134209721152428975797608154523654129099238466346845771337636472426610088726763350393589785506570310473223270431502583128136208453921417493199200995604904676213643586567788275681897423367655373568384895288269260110499697306362436520142671430466978143810052020365531498741376107132389607017741618775089179542216876861654174751496507662357768180630038179779012668123644072243601645284378011958315945146629039417759754976708103367967843761529497533067444136199649606327216793402481406747666207752621896746038163607225145369460700761524890800782419466055933466298507974358470535180642284413392963710489887140012873197625776113917410914704015247191433634746188949440766390742982155256601341947236906823445016293230870534266120415706679440976851400732175349980164621305975672043842667629585566498441806339929072556430099700552203226481910682854990326855529935191199020446834686881775128903960923772748526303362617507099885360688854667306964302573598905254838950694365407692967795153258931266898857927182409797718362578052830256208223307715172476925707196382349625452595622366855064936573381639002266822715766195615804452205999574526401095072661218005811665816246026263180237720197351845389199655620727232609318011604316487035995979884223437139349288534787737621387607978170078016455668410870384096018790712183267841954840600976307544518048661697966549426610746674936595803916579776347981248077117505935817212741638760293084590345215436843587397502778721800862031311961697422061523099396896424767815208902789547384893677985429889632650425680125704724412701055804008074957940869482274889183669497953303884955321808307798859810953364372699326429199916093549317895688348180302948572800711038249079181360601585179423299352716051495686211403686201380469712861586900078364863234864942932530914970298917688856608484442888688478134226474216744512534669498974815709099637037718957014163531564392325278205161379112688801262570968048910257418478268973417068270565208577615475654069811840216879519706728294178251932889800205231603339661283653107470498175832207939565137185574231604122792813823241172551906875707546195022921238083461167763228938148048124980776321972258226958069085515602804245936630379112998685967136076763667264161929165078863119131149224453470028784138049502046584091193080912489309518369281677630468235359914571639207016456172682976052648059279349611118534424936108792000154358868151709249258178842546504109947492344193031101006149963163962157435667214751452435990409425000654538302111306104963359319418751567466508334730403593014420074056894120523272936125839179913827024411082422842300968371444729251840742905531560712138569782355251826501240338142392867402278840334468799286324664501963930473551914379730207176818712742894791846507393105636770467107764570586681217639661548899521338262536451986395995572813265159420398153288638698562095800761799845356136280721996104288206249856176330007913569540110975674772445744549214621112821694064424444997481178558939005399403313668505106836727687914293172632655169396595023766299304529477677732928792058762144091746100192411088750904956120903020780154228181409677465521597014618833672419777327285580934236104752131150011770721615629135585731435883759984803483378476033077101535975231951468823374481521617984489368567527923997142502981049120407569360669038767008021214399757768805608477550710427970816351485616393030974944149659355372183795664493447360242194572675556822617253919519483661081571007769971400716982322326887914648876023566870306966852230854809466172982417643087854249857406331316811328845629886140372710405440460535571381440255446607060935708453525973854760260951153832339019866293112934854828897921893924215425642212069008150449473415351260358991431941711900483257702069255440400439319776685798924778361338796969363255717945388237845910310971525590638249637094562283547965581695190820791219083994012232695779985939525755351103553034400719204223653573247313188719958299521562269574385421807107823937518895849474367003080528314314927116675102919469084340194527835574954863447781582067667743087841633829225520214434728875937625401641211792791364724034745068643317675615238144722746601646791096380889493598115024055045053649833050310640115744644713055419809027085198364748615157716519885871221375949366050400293776996628324218929737375419571895392298615866650219488551808616900403145751823084417526917960144291812944280700091953567042856029921897111171005620234024328596210841416044431920212729050081661599839603194449424275096952133447153052569728824116012779492283641296640081324280808169598916923008930376834132902802289715521010071593135730652150911524197128969446987445293180983732782116405853846361209266538494498515630487441672096681442628540721756701856444119339242980115227310567758308711585459802285190319167147308483098229873097089321165380023525464341526324258036493519506089601878950484349409605012798601783337588890039244873705505672226991781350036705687132068301082137849529935319586111220683142466982922054567805126936612307513759736311574076445720905018092912069989506052574837197747192392697048954288520580765131024415692219350705578181657264569286750986229597812350056311420562045631391924496669822639097210628433720732079933414084131188934381694689125805496518643375355567061661879545025185995837690971548016533283403211938634456334798895198913549536303831975370796305895947942454434081827506459146218549870553507126690399178096713981834106389620020162131015182160603254559404655778686600415636707841835038025339460682866400266191083585700247578928573276953088577650759532669329786046551842065339891507647506788677274522180484301444501654887074483200644684933244325220084326734864867196022209786861741377058893810931985729738489904774700281959096887450915372248373405891528087212773759908112948280700219254450872869929713182647809387227949884140087513323836327493632835536173226761017473275370163258634450470064876129175754232366514593921811117132010641887261092839747646588451431001878848268872114066739396804868941359569834244584869317073574113091982573720096925488594730783874636075403094639758196559379286967361987622314522637938328909840186289021078655518961645902675771795094870098389984931562700080985618191339711021857112756936235961777713799184722948970015935205698819545661728770224302631404827045148650474385216970076091018112985505643649217811170148731862387589768168832311476955641169047621819860542740577171900367759036559675370666318978754142729886851058694372382150090270657842083475389659373466916995556272797464997522433879948148152034788562589027189256531015471895309574771992670457446687230881492396468340342286411172271140919254254134145246848498408063788177030076944758680281502479917724455753091013769250812637746585603114553378446066624915658704017049226897518901761839081832736790460637892024228032121334642280672754121470510031587925896006540933383998413248714179878644208179460938459722718871678005923648587035634576789603589122742016330574637427620293563960383918850759376666313179181467013302029107820659867327279462733676020878331681893097581113658355835875862099165599248117486109496360953438200306155213411151771350326669526846931624833954983534181827396716839311295635525368737004637382831374048696236331089493073275056003974163378850543795635870286225426242457005937608630849175424263744263727471803189761287925229968929643742865856808182422982231849392219083029771799213982498189297787910763090468638779955526023136239852415375370675895396774131276550040793125927463406920971849031285420925295155918351138044398986611427987895420582573734578651775169995671906410514646298157145513314181460309864552935010592041302696962215147499091189871173274399865796584282647292868730748616237915322012325383082025692128457151450755315066524083278714208820641014609963862941713009479517909720447982083434671059600356508586593933408516813490882789641008295725412442774905723802512969949547300074293735373810129288358930977370000592995994198878195032920180751912840668959966622721240889310955006868597539360421325506157660550625864969209179933395946732371672711501503216050436229003108164844585425686539880554641648811932554703318007514016052414988338729690781554510978826796901796325474204615951123657580389637153612658825107204025996032490058779936118070619605529814742526969287658550179795950114218553143023017363150498422544713878955410965276046800267047839630230784230024479128370026719949101751681206884072946121900203325186035225092552292604745744575706251186220996612441896693118491708197275947237328908905944208098747549901152696120033846549770651587931344690257905960585168414137507103359184361412776181670189694843431316832129446286560106620862020922749956246390941968546161244691922214156461755410201779701348520852633932485553623915309604154105168851435336026615721259318262937493990368964667196287400072674289800457309945307213572789810438408619232180616800492463376795895487529978051186164783911054054009264283692720872769550865564894594528159062255282796648380430747113971462917001375928846848147891715729099789567065661588077453436539016628621470513661831191949056644504762926253028290696004881648769213893227834330993261997261212942445663119500157819523954665064233522454508095691388382680938878225594430680933803793502239597790555727247204082100491401866515316709059726658036368769750745108742905551383853799568500963992137032302066735084659301134979985037519920793476673034817458961465123455039201727317625919085484385560810531236636143051760747128403353793040239799278362559547667800344367367080154868220321818038030771126106141509260323487492696713160296998213884835952914778753416844800542062376159017941464250836781620902942743946462781917867759303734199450185484041795113134340366782199263562705132382042716889060468667557298738165669579433987354887277932241081192021006230003000192916290717132170937995912770130878899424061992413263287564191719192682369299848521054896170024645300744238944152424236278437123948242656483341250724351316013258744193861605797060170433185643445311100128391558770598123364834257370625129784254782258696092342118068137302726503462269579921728307742722126561948160133147712459655868721287378511624473808753543316434944687497551449885194234542186929574986254023059330768976471948873020692877399893878370156933173122334959596037868661203065363332240979971482844357821770071182842018510971597062831691017550375593032517674915803959524007116465330983944542214687898099882099583513577472217952734713574666792473058395040176489447206596711207842893485997082026212482204642910741621219293774465824287817887910790146088129106869389622884342091808427155368211326321619516997214378404996014661468593543662002393384602698546224796036038847262233053081026303349164375701888074160773269986201419261233354369444457752359146312610425297825872389821471419854245316719201046905596816694190858793666228638229112030528867759435455414145828197570114203863003917413911562866781116605886004507349686639491095811018158164089256040868222837692885574396749729330359638073400385510123451829700865823827855536923102410636300940043709940931964270650155924389485842441120676742416687906053256419842339878276637255869820577442008656411586774993727013706733853939124328913259882062202609441396808793869722299140288837736162256476675720676178664905131045004823442662440526857312021899787945177123877995610106714498282832210393500991065401589892472460226671188607191663779853119666471604107754597625159148313137533692722796264133567271896978363560216447358696614635446846659815214725212010566098272550976546700122021078387078128591082130666336000293958754090600447761209914304474221845810857177455782015434860050463950971797942108252042279072425055327195982189011275898451041911368610294094059080731726520235764500275618511364131950599772445404370289352961064278622588827721527350541095664707985038144498823806249101718951476580129807918007664250620403482487291249737180855251455208287624223290971101523578965586188182969623487480682971437059311851836621002192031953930690707497509785764846089776556107685485689526490423580243553032479642188349970533326083515967586733123347504939554912780365504176625980432944511888311247851883298970105777531712136833193258087634834467504891294611085719453624588475730732187834185288300609801219818445927120994797283725250411518531533514365374061259545876737063623730583176253058661869520103996047159322899646807572384216086645305128051814668860782294044533948828950680957813419227212798770286919748558356389824477034027441698599308571113337769239519007940749350894640134392805750504297713649478643566527262825528531473007078606805573540293618061854801529730975239964360314585711484388139996298888042440586751383785673585034145895093804662379651381697098674932869544999809302218085757521584175373384100217527683889148420327724877527859759537895657752993384994945332809728636981186150333716864365203879029553914818992320330815582092025301092721601780644831104345040267483102801942296480564846735958769639513984465779287405100679776545619252952914643690192712978260987202371177903855106441838419284640480798759555708304258306957452929937189021333484968518841243501027121360842511528984360319337123330481163232323236231457358600961745309863099194012886396221828952773134357211657914110474430445921549546798063924982846738233207863019411635485405345683661916069520288323261295292985847820425251419116887921344751816266034434603939943642182452507512522195382346445990008008059322682495588761744241980776093854842572424189684400906751959307143541224114834207219502713360882653863057332998578577600809948869736749235557307899843026206770902155082093909054390153361609222251566156292528310169169685769372571826297631722224532143791115895569965318229593999523357358640362007130453588032391937296331055136802695814509001418426435812765193636770533581533251930904501427018722185698870873202654849045555091050849556023771238249473763707118395429862811644976735835299635017772231771979513680980357190431585768474191335520977828764475020847355877830712769675171605825248552921762052973320806622105800915488161190025666528304755594732455183878294815402570305892835767148064687176248841829168374699863469243125188317488692829561334195509680361609102745964834371452125794927381979630108989858272671371669675209090023631099571400031141229870483803387839493195100382377465195121738628885778069027152400042376234261696639711129829658721452302874345967097757133803834101745766134829941596954211616759189632710218642061101730466963082029195263497980374519489859878130481737766869111677829095912983767118367430240922107867001837230104202095435710692424340390424134289981118508374448055169630200285123524358064097675368226481166794079322508840079565037830530769511546078812004448692194267535485646355326824268581729712528475750473620590737091986461530277076916173806816704134003654613594799690926705594012482761137043818624891265669813894648287141434763902122490545076365284826652863035348634326200673965177873840084798687264617090835953110089081441848273745445579634935975884135236671890567769906103062805447189255620001274307022753887464869724455947966428297386198930759922573122861862095980271362963295695058912444014572716153539438516908471160512810884164640624168921874378220726433432687699692371949695792955430407840375315184558590009083721950695740789964757040224698536822931240505658842692696268476447312978758011497420872191693870265712089070851174300394037704106155926529010306057881708368252339942675792822636279920843021928868668136929220823672088529976798885492436792768880454967858350816816905087246526582299051514058159408512186803658212001923084142592248157991490638816866358889386393361439776905493132793793589308297390638408072015766070462766191703750181302978023081147184341603552162838606671917407777080605177035155632433622050664185314671175434490879237339340895677890984407407455452902717822943541631818830891732221065030416986056823815672625612403731757061581536032613277807055332329340917600776994223149737870259195825612618307316792592698728832519166562543072301939811901852479104807648059597280131455745506514120707144163665440443258128946385620033775590418516973136898353417795390881411545540833423317857032392576932344904740953640347857866624390725259260058342665766142063835529722168407128639566080718299827019606975807315024465733351323714548132248209133394212696703697566773570834331059953260434521693497316335945860152318298742873169116349230568461730824403326734612129366349886889735805865398681534794900804662457275549103766162306679239518142445314724363862115777456138123231376938017513485370064677577650725345271834034088883797775589973977819105464840722382588273706826987385080321902850104375989083571822075154359051672039236672760567489610700293172100731007655989836431618231648337697917763114669566055079318141142420599357918114680069395255494419383248602008834213852337653527993957585471980779927837844131680819969240544781467744684085503926926920548299948959302649292636662524053956886559470275343491604941208673895756663945561869213730969607937302734715983750635805607360467983022339854529007379517392684019137989390881642959574552684399880202171790919932044152933116629760963904818977831914624016624112186749866289016668394698602686351001290939902869458903828432436705504031727771293747002183379798406098422120271195594949903591204135372673863828788391600137410458036576505003889233684482694142695371331410948353557138580746689733058866915045490459750039889957097048329900739911416143802326091981257268062446090217811752598826633414156106400962506306976907154410381075932392324741701005266121273137512108834264187027255901782115670929557970068298382580081362273098482582281480230155525665864280362011907051125648398690632316726066103286471685822878014540228414693784986757691564317811582250904448238864273333156378565494265406482803983244603056569799975744402030743457880635701471741405087680348837049963642788311914854773304445073934910488331937602382858642692477002796511237699330525728769551336954893095255705257276488283546840444628648383088897545328381224194868539058036088393377769441588851420141079710370281472077650349144295229029698105648017664269827204282157216038332177054796598797705669710136258079985362761454235593939675861678129708984936143106049683633414214417509364134671037466022406802409265211404108419449868284708851165543493879550138907865526575883348176635031013332908179986814089899895513051863644498339124542460144572363257366670212598539237661527080249565158936511339325078940861095563398492594807566963578163088502742649826902046616260238278686472848982432566533570128986843579334503946860298454471150517098557334019739882670932687022246265113246177054061751855540595707893238347659182196011657005362296706017056248721827965639092874617396547409382445256774083345321639002124020782362724128135422488258399516271159629200921466249360354763591538171168724589275975465400021238448334916029363399299031418624463576742973192570658468054917230763898684715819944814351371620061603019025507408857510937988563482845743258140851438123763747477470388345894094778769645236428353583842761819534818182095538655864258297600716427183833679568276723469340352505651226351810463985852901196248744360812556465744068037319829930365951282552838233620829438617607762228727716895766470201226276613525294758981488448307707337786174258830448038440836961435900411143967697342637364204129048585296651235974051633424578129538677906240525494809700645288974789764477455992689821520450399570945376370951418412198848324968272855172665684976325467500338294781476027161023483133681595899536520142416711454293961314105726933373879240107609069831981876678801040569172733981420754239863854143791589980291115997071554238677225668868042821874536753709381608360185811824587287850645546909451584644887690564072036533026958257361825128015955150966502873079478987132398173988707888366461793126831784230345981086814601724643632120212352944679178896603282219101896899835861216524385803317589549996543753223007907305295648540899095081084557679812025619521835301129597673074541797738573664111669091395833954270788134885843715724347609434077416291483126039026717749039259264759570040913584185409441938370643061272591573670241745713970053192843262884560686233583787866984003468161535145772485513185144110012237307513559041176142449358404406878647763850399709291476297255965779338031910649198943770128887880372884775016652747636916624512416515913047373135830692774881490423319173178316231864243247598715046908879958260238012370549813008379326028684084414695535308246109202489691618930249858275789715507994313892201370306149626435133637741055600164164222247185892973724970784621269189592127929932049186548726039010342259456899668839404078919912986111859561503826847651563575802834483855627176135308345284557464376437365599738523316695016685778453853034643481705340321608537264997936353820824174644806617545073736470981746771225353796835763340775548422390168503833440861051244281315420014060002461988633374578236851655682713143481949353211569008149317451839804661236109040324581789471992009259142834997662544849000661313956063515861720516943068370257261641191223271590981869286761102573787094390503612320734937886326343798252251603141128833468628949532968010249178637327324986281683367321510071506030644897189396900727799309910250852100193559525818812486086275574168321831029978189907136581144632147088670714661609014193174344643436247160399961196929133634237569487358704143631475219674796653441816200875963108731700036058332271223968437833703876845746485652856615104095945977480691371582019964368132055117903276724671541643320241672948096347722632418442317096236734289132245679433688146261510656836138752054406269457217666040500715985498758902132075821416735788265481189303754114552924649916064684289777034817959876132587613676774014365442700478463567411178055730110762225947809677573289310099555844631789715680252942084414929965031256481900915743227025422782386370419251059240304939861731846132859507567299871798609213119208455721980951197327952944427569154899691233124612866419649121076415824123883823477611806226981608759614186613324919634741172438347040062927444780597893571283684378787897254900555578643559456577251956633879107390095974814773230287923684620805720585414913390710229558720181993179348938018565472384248111278728169469016175316800792305773746780826836757055236450910359966846338397460921184554696012942211770760021256402104328996440256928558080989581136183363891681348904227942459547813670660536206693936607809708916875037784785038011347114446789004626271218464447221731095260160970135502444330036299353032503576643979737231338495651621623596300253801149166575166807171515466860043236653076619276820143316395955409016135939451108451864236846748730881142456941712875331049085370180786676397926693362953966528181776335391810520764796820350763117844533867332566768923573390635892963376934612714174235201824158541325906160359021407019582957386030292401341797018086210687847633516549680456275310085344690740582709625301720847255681251212315638728190600006312774335755058050585232237109391424049244417296981066157719183947921482324119606553183632303512275086725822815305357695208820335039203787800942292696862923647390738994867891537395147521350067547125404214585822448682189495163417546516440971239829451353522857856208036311908495767495324945740998244511971838590853816525795167166302170473308090306204471432065991504419912956226362870413740510290978350704086552999761396115108284222502711716543120824228139004876525178215110015925232947435678496190933599071499053651202478311564874358791787809234759546386252144972907780482124154882493620118503555224176272686772529348780875660757557238106400925932208978421451279979024007762657307181983389771818749010761062685796297265802729237764354239192504975370173724488490526171265251802960259935614971044071670679793383791973385165100409545425740988833731338315579146763407975719568405682000855129828183471655033853232968630213070504365197564680281709453231444433543710746126125158675287394636418551648520014868315755478878275372213644510134589475907265112563842336173520844983051909108577679530162114301375661099534057449193472100066572165491536346352683947843790583828978404935073555517925847038310721177661987051818872867486844730359893018316994982786503876355168381087889027520932395984973953729055272098276586824692830078364499077264993693946659176584186806099279298913680197399737949848129217914725015957959008938421449055093223246833054819365515028179708550672073090830301440288046649178291639944414594985646309748323520728262184425024731759094404213266595567241736284886429519729426304948675432829553080061375391227356033897319737378123281372130143572194482127893483945806167730326016236482416896569674239490037718885034222217186829712914205073870149369705014751874885271918423852173843055280895063860360576172441241933663318164057493243007616730940053140265782884594774786576992276195471939966182832550672782633968902720125961911691606290068468885495657266302360117355045284116329424324899142276457977512521377247294786581010814475333295013089564489056726122938777599199459154010447706484614567191676061724148491561001893257044682931058244831989567940853117474059838960722433526193565172925514885882238395722538573922782457874412669765020636211253365897161066292210068405762911175223371372823725190641347393304220500012090353315402113675438566450662910071296478408480563839186192742692812982380175015614656416761502472099302577128507495980263261520156448812857340094699880658171007547351437886526090717209095935116650098482815179681081603792013569660182815788235118056485671811762925469962918415758093245809551455002146056758413533962831829116638495276263668236053074712830353641287549592000570926365055505460592739113672458321611072136404683484015478797316318193974428854813517190891470236235748418090000008621063944024801503469900476084146686341873138394225504909303996405999291726132258854925459460754803384547030571600196025157875562845084461209015355698692804334131920068884118565562060252029920129370152560882755427380612669661882468421032081705764200690903922939535623944474760191580068185260655591626289178536073954329645114374780586914758194799245718260157890612011979451660308580043738168153361441646989887519037833049514504232330579207082786224792748612200029777200288853206991487842068424641345985595629846809797211757143613218026184075332148785484082896159303576379978206490226489559124408946448660175830969327825065698537421968100911090656020807803952772766682768633985641796385756006996811125663253044709969702432911425381873757907257611686251143409924330663653568779998658184743517903459247996924366525566229413588647976542307469585024683209581105452467998153796431226428773672596717232592803832975335487531608638015783483249445886393498432757591544095100816835885252704874560768419697442763863193024540057986679716961519834118481691382234532630505143367521119386109110370711669131139783912474558366993284030924542863395684212213378946568189860485675680510586914000790691976364321545204820864292211677218874233435875400391160650717667996666842867343310180182734382469345129767308808481501508779374112759501037499754865436230801741092057617288845603736923934066422945183765393936082416484743015085351635594892461098258681567002027741651767105868791039976056571628892867021636925084057636419432967290945957164203096240175282579619119124121246250301032170581998399882807128444689376733286633669333672601425392437784559053248596145626943489620402167617827741239899286082120602540678892788237496790759962395847440223560013782524512250302957006146910435773623775138428404607995790097392716780101792309358381703969370487007320136933737751274510261807125274668332217913491627544783543591505971845391572890136758266519909009829734441762237471730038959069382587804028915827187912957958414154364223309458880711364983395618634574031960599184124935741631221360100149115748316397440909209722021105440064637869519786635924727300066700601129100878254215217769794430667729884962249632119749990348124821400274675415962744058304432641420865883512192184029358262109919596006302691299659938743147225217527275160202711753610661286900143032128521532537575889948350889985439110301247774820524986094773442670946893556482082511253897498950820836599832748648892801562145700283649352550003316892067925334253155126370721537434739389368202546720231780695893581778975036814464034827393457120026399714157727090824472248583894358142424008392650810464396603747870716192577995862779555948013461455994013454328646316635747201730473852035060684582342349014498297341641562993949750529958830408961530890381438595853735807859780459502439892177494871138406763431770315174739601372056741466666507806139668876228601991525226408777407370170873595565130464382570651848996174814184120127041486290219102851734813092449836369102679285462138734631690430907626192543551282297663375323124035905678936866625714235605189563078794513621630886171667296053547561338776035026051730106349200467162926211689998232077095995617466454594577121106574035878910624284983065845506295176956616403081321490925023421593167755420668944828487823613080598944238553065956417756057302483304889647306116083288176783422611170045141166222598768973615868945390066893138345866136570631111374292544373700153834715908675572046984856774254600222780254770227538014335838261925595949640868992541134762376502705896524052996457563715249349753976779153004611608759993597260431886932116464490007155211180222367302054553139278703313326213852285360669935085643442994777060641333742813156505176106440103344045990027111655611692910441043379241315143852758103918902044261782782018797954239259230485962454888066925832891817898250084018919155029468874144026927327042990043004572344131067795294674503342005915379136080200391169227540761392943529538524004763114249167998590734141462589450146289130019438087406409055604115624626125692472637715028921729341197676864987128431830376986928727394962204556972210995321695948197502311752408775502859290523454266939747209418637203992239254403086360825143488214412609246569477914383005461165414606154391541174195649526185705358700959693150069296815574062591006360165409172210213236905124705419554058086426552401449440020201785555495999407111540995725391243704417437467283047840351746677456651532021247102597785329873070490344228663624588783738906337136816085696180930032421599238812387708560608795540505801606960003855066186526430250325167061066058803225439132383110143192382742444844204808743555427704269957438131019577203715670912272559446541807429541866948320612832944764720982385022461585574678123480086817121823903169332977884349424234168642373254570032736097266745788942930522197088838089838561258958204208622878742297791123144068974545360436939378813366337093303105908310424531829516071195270479863758179195713338646384519946841838892037400275117723488013844189849614056932969622070814866932909193363528082939369552136335305221038782312912679848057391718099372827708624193526298151482827086849018934820122092314783095491851639125695397496861288118470404085995560335837139267632596885878086309234013797442360952196126005902032217328998370648786024848177235744390909723954965788217157714985686020320745158398180271531489587867586678833482532708981152482441073326635803273840559238590478290222194401278168828175565268248701215358861655180908294746874213140689901799025138092189294211486865391159945021095397014579077188943596562785498802044703273958674562149637267026808019659852987852871612261479272138071994588394903869933342704200741673855061770592341158905258163841820037916956188665202737914945888792383439569078943533039889066679211463565623739693453341580030566054891856237932421877137629498679135076346863729740661955959038062062901687606774520035711463671553583095219141719919088333308572314941599122093982402695994508512370898887642976329841788105093025581809044504016792328499460534946883208326410475288387568437188253373375003382725529048354321704256997416850679650380899855864991858270764454132068421427271828808790867993501059297153343812087237978256024396440431234882833048078601323265902704652081561442074466497831011239568087895150877200327787599798368214069949420493380409231464627400606512222904907604268307140254163738854384452919770512579995030784128023176409189811230440378963910873374145875793714031521966337654253404649316959495033698823967590776682359673926784769307479027546863137760961674674816896368310954781608251677489982009052962132919703928157677341174732727024115399119624730982032521990017932637161024124809846171548059938131610091427656409874035363010546524125712366149564889122316387963171992449934099751982754461053756822423862338478816366455368623484179287758094811968144539180318155434049246112738515648210576993918822817370673266646166858731940541197675578649991355239525526076642667010332928101498601658521479313662485931891752655188006865262511652293983541084498584266398372438394311894771925120206645950297002823723927461037003398632853915533687748592439877167633804803783298634191178846028181301682440857980866706118200202199867543031079346390148580090892171849833981434338720553633757530583791777943268910489876413245501756877926230595346655358456711422234978163782209992651467420723695489029505425288857642115994309046977466450325926907134735571665563543949769835198691485906284562492576153420209442778567400446900165118019126720738687110644222466703619080138029425504261612054438479130454235837162114601946929293984390572628210056812333265632087487378504320578436926884549392570832092903200162191850722610927782923847340610892596616035424636548471059573230559938505632653913588603923982395442055027473238419564323482274785911287542073528857446849381281607435344077642431467916698047489838304474471342105228910020945774504945247540520691557178360837352822103589287067631894498024511873351256596408589363888872508881281431610526687518018156865148628371728242375342730280567808972335744230006929456336280078246522550577335873593136292255120880008639973786579056949590627641475575390874420186970269299022511200044852871734255503012863716466740428234572040957967598381793271050684719681649140496782581257449838944261315691704453173847397046803567863616348878648266562371867457044900403364367674551392712336493715252263261853864000347589294471131389926640250107083320631293029659667539491621940433381292286937712146155857324495562551428740577142786430070686236245719491672841237062010071256490605424210473436061416352684539534919860004058494705895791357406229295119171490186154738733716878911701484910641415236231337603945456133134872125176987884219555185351708020435458954107037182601455197931166529485093562826546771281567263716187743831422742013068399906993407601634658881282782126544289489922399217833287621622657315125934914753109249063168095748037532820723492351877095524467549457087540233176449809783293425738620774346172174898504960308806613000578938658386708115564241347622664614202872197889715312676499000097512130115678893156089323133982388850313254481201806524453023484593518258965274606168487957272802297476067100388712934966324996081210635169889982277871387032840840807240703553273200071933966841346880859528655805349901921361083365000405206236144089571697705870118546504825036895790088894847285242114064127905856687601101398744129447313620695220429460425243206459588884459172685152472917750972839499475342204646759357534610244547353884098908026691157639755626522913917163808349220309142605597152551209423164774105657547282553249350914523742229159273028050875452952591624497607428408504317448893746613767218244133656957975387360822092777478881721961832417753817522134871858683614268874055861995498062542266110367722289979819245749375668926230177854523535253027872422832666171722299705875106191368063261945672281944145138810792201567932214496304973595830986073263135921172910008645918149795253999727979022836928122936251998706234505715197342888980009852146200193007892485296587344026152688754904139614526957773559369650018140323432649258217708775786882928659885307812970144011733251082920179967020436592086813437391597381545146953787467832762840986384621327283624810823897089886953076097400579180449350872378777079475188713176960605374976015551455599397936533891329283374362304637963772135301805237637458692527496997062121653051071536938278206834005677067653240993849810864901805554946130241651656242777614981550881812178131959641085239528171292850428914115273256556776444897081608940811581028414566530481910757875994780935994641196563428970451524719794979965280580567087194821546589316887894530868290684708446074023815716335130586542300413320354002861391993840684318042729709071875484101303641609573744812555962025465939657861161472235976062474314331623515008164294779780063123091914087370625927850647134505069311482147565333631061583252139466753336596972637728439468591370710131299662705889001587054102211947017443211666727448229001885969604394217911831639920556122625593931548323115982710348045249965528693276391886550482784771249627431370894657234312905259996965303954447714117076211444371048354444977259445417431299859207885081611901147032453084554967129922918924181863776204105762003636620905717450966482800793835278095913072618122157461692850959390823482338743953276411804676599533493778739525438319776443125470966216360961131480204784310702251065475067915472457722594929425650166799921089417091951324737357132506379300273916888561522068925780638367442863354203457000897663365709525205287442363645323055159405096528197221113152569067125071292201232271526893288199767490718547587232025535611226258515779009409603862761103512741876250677914676897226008349941265980385209240729898926734103904169739130471012965806575002499778740709701360433668113123493689464707731655676446391825863308307714832963021385614682098308234689032687974287981297343625384215135583450809119419663414409323442156444613598145042961675504737508837788667475271839920432676442047199724320077187971675910725365950628847973928800231490458577102453655181188962117798745098930356221952791099949790931834764929095379514282586767997761812907818293892695026957418979104815852840796306430814951911975351583434586700226361550465096561757389264278289024307961904480939235819128404954157951123548137755338286042766618029912510759078602749653071838201865986960288588555137567265113485537818251285104462047643632658970351668037199589767059233541139081644462489664460056039552437916946708390435390659298667914561457842592936675325509742960343772934083781433803679585686559150082084319304944658970423852930734124487518694795230215887543890094661053735595482142226498605745366854336832152500545257555622258060630797116851304937697013380840170511561750879518261106876297972014404767384935152122411467273704820240567972655110390593327643724077793339039956007761739706537507158631408063101070645518700222793097970474830189357632221205552664535000285546684640094188302267031787126647360737984341649013072702095711088272368631352897261960915660082613173223774024295764683332025146611326745787063601340322190997860776692702318990664878893541203123472783608463886072766130326249165948192468846241754359319268288432430058911418134671793894757671795533176904703880202641671739651821274033663217707202896244187851431401134815648683809946051559565454144505214418744394099461692195768783909830880729118434050646074034440890959077267007757590000784780022134028344236376130195685683234950792493774449096900062976876120771656916702413862390594733233761551369390595267797217712743291913127030855651275480699880681121506089220594423093072229340414550094181989525121273909456742885379761993701211657356698842069971078469993808921776610158199463525357381305531393095575761238989138442545658608779677985982512553944799169021726621836249489253601990467377284479350444960712401813020828457844229280822683038658018600684681531906878636378194520710330355399943686299615844731110321718222616721289059218208774543495637251556118754416097313099613497637618835478062557061462071199949412671886223575221583059961749658031203365839114281662747733220782724237077500038591455857925196876503539860493722761557127068302124764983788332684381516317068549789686330532272749332843688320400575247403705101316595381561678119629290586546857682274289147764620177042932095745930052600776836374663854525064650566534678103705055332900389029982419234971292466133838111406789863392674483812528886613689125728386659023704570118437270426670140578608084389825493679366481595428494012908403990068202424877736153403863673239778461050502891558368666592740297063127190013883476763819292133182094172184252897017981632037116347176980954677667283219841232670995772489491587658864228372273101751267708647393127146950086556089746791228467733130451286798018393251285791474295092712112228166759576050942608375403462939806320838564935100866470077401117968042839542599807487281742120235862970404592158597409600995025552938164889584345305855363056737333494220107892583497304122500521162989772152578354992134708010236551746261768743431446172945435350620849754416123587659895713231541297790336551324092759857788037633355001655336646185579751359870956183537858273450933155047102073468223025704506853646756041307829106561330527848501951443576944209936320171129928266252623597309210521692443658571247081560639342804955368458586614741348538104561210706281923374480240285316229716268795194572507189615117843911230611224391610601069746820487098577697915821014090387918115938922690435120739029216035744366521792443403045892210168278468254488478141098374292823551117341252348462723897189451654167015399766734477066524163686046015665852172837029382413487266045900204992588369598281390354949353849445696277590874964514332894303105750453487246512045754667312405275137203208107985010269303889642337153462888390977370110646918648048382514975253652078013410300285040283044016276506879135608982494420456623961750557845773039008058471104148535993498865818628355414603587711037284097355097269257601575873617448919403716722120895947716035462317301652041651634214520612038914434084562389817382380823050292444282226050245082566188966121518986276765601228368171068156545726704451033498802812660671222416498164716599742451655284912662147817011623300695347661328938388713509512491744717934558538889443043314300767766140552592690934354532004196778367981122574659681524167802220198494993103794484882479772673889548652553986920493908393933033065741285661977555042070995145509094319074999125182368340435410532105583393364504318167531249240624930580699642736093321608751855425784078770979183656217393617806312402694611076388139685031152709491698104292636130643303511205256628808314920643697171862653700763861195251380619811843041769668800584629569128055097747058432793088965739570369905004825642500647851645735350147016003070915246407221156597575961709139378645594552746513609910128524129619288881845136626629162087499013923516801173712363540665997687111053861303067691454635302587809086262515824774287483276853272720538585315131885942227339212447677354701190756337610895948733811070378472176303161787011551970693094351602618069327195741907750034813852370300745907400417522767003620535183547773171059140038247996981877287683604150665438178294138247135366520684049981275365047426307522181026591914685112779964504623271369099454314694593138201738940281546612605689577966399641509179887763069885820436588885957341405545664001611484594138857151978062617599679172988379519858991816274641466479124164576899462317544589945971316559663160961900060085676162686913099978597917174685565783277027615075045192448518715351326456729965417362526644991984541424560932594637828013677116229045188191425122563562073151627848082629284873995259823963710773775569272926944487301109259595192833720527338226546262472869558805809200513098569852418926221516759081832873221105663669292477846971252804589478910767787159628096339724271787953566730743484808269375934110730929336239806833533311356039878291400584412422583876207158440222201647099806604938859493409482813978073358814256468865730572560811300657458062777899099508456806887557132009255396001550698478598894739403366133270222815309441342160028054719531688728263358381270933687306227072761755311716198320328886150188469465585599928521479144418041189082938532886962340058257849017744041556573793913757949247605419516530943668687531845836398977289713359226506141023251685174932527642101066204613466528507491083515299991335791349869953633099233580297196671056275540395264133657581953971145931741441755900908870919915607790695317610547104001236014511259005380526728503971257260311596194909641784189284245594015750935808527225100448382967571187802264410145271930516470010350860751909142651603325143545795248404071802768310956959773782570639794480917400828250235841527696956432474166298046724985791394433739935081627864511560927501753742821542282275947285447175850560073645887453626222556272661375778452635617237547776516235045683505668257095785808242221637683079701790089633280064508589714055287753551226205010819092621556048660844417867742409583952790030183918332176998743984448250012435992639920226635977873795324722467032066211521148398359538923044539114363868499639895085233931282971996113323121303153341927850830549083523112514332176797787338289691152390378661928863640544468938968509266647014115762774205793918924951768152242026623618917782766301234400897921610205516014632542440707860856311641471502723111622147760971078603951970284993906799314343508583177378581368305396064960773219947821320654436452656286627897932732972285660943961158479489553400209952070506189586801253215938745638539126268970521238692410488994084188200467700543079176771528950160152237232109756140668298039786956302577381167815899938418037828821153474706630627359791769965889002789759762096870837783837604581925041629842954444897988267266658783706938450717978400471710145357973460314577049326149100849216233085296126162566845653846756201363708626073597794699926921157234944242170205458624009418515853619757059819764744793615970953224780830847463164096769867132442901585607227430893958235967805903512760658241849264116880932368756411792514199286894325628759973407802832020549291283870282589652880715648807329685143099363714238438089329972018638971874579393289876775763116596448859077362421172382683050366991737503245774074190690502193313024906989366532582049359917140531849198521286611741362345270392094364703649458471768855069510615490780246766661119721902441251128047303200733937415197299461822002468131680635073845906490746224393330240217102768524986841725887034213570206315209821599087077312808829929061690162939675052707800932874723073508588743054058800181829522322103607480500971403665065561060180071501189561311446711706480020169113065507056354483282718581440483522317858224756442574917331576758728124418296488716340566813298798190046431662661351218241818812691700544999077815424555981614647862054342965740430310308901589528846323579707077288505537452524121023617548036629126287799905365676278851435248988299021577539410285520073180394909343925746993956074286206872072117521358735553000632445770998992946980494759888446826922124943006394332848083970868964947855195279581006774108154558692972104207003907420584887276569067416580857497228150931694771748580150100897324522008887763765536390729251366387953903618472672458724283738978097844245100054489908489630330698970412116543018207935068301809199327864395651320280195033774818415094125588496832340557303493002007065866429431180217772771454261007527388382951331854510758596493070612103628010038365060337672099931658951341679826193540821528574248141929454392034537493438737537944284406026030597355180399546533364813843501129169453132088768844812241944947866564563230499447271955318504153819646483828299849587311885309792691617193869865811725384501097902722484832796340796146684534869317299538850697971725624564508528839488506941644446376972669584163252009234324809091525371266289308266099968834192780961060403008439038342744461980256815430535233610764035359677257516565565637196979298354914266255838039707832332804043242543140363015651632493728063428003601348590245685331272298535207891250721208635816665208691912059278305690086342922555322933433632289577060238208691040382276399413805555066275737575604870447878216360120488455309449977290609593736984747708205960690023114057716647424232089284180800907279541972621668060480421470107410153643961114830241090099792628397911073821124681014710993986895190150720388949916140148154612145372971180526663744785677029517081927303642490922631407414473583578469667869615328948969115174520420696000041798005464429669487718211884096925123910326143214842511942963334829371070021562209606388288958231091531562534313040873838554006117405717790467934291346111909465909872906363476383884466670666674772255791766343488420664969399721852168824413942238428278518728923869143665578007100830441875915116969016808688399061608769287407792421540590093167757806620922099726998769650057722398465705359336889521875820090200244221774272410042186989077032636602224561421828690866837425606875438167823588635339382707640565938551094964999522897527849130100576793083820557725099099367412731228654342878673684298257789026946263788003100414361584662768803189527060144850212372186104089725097769311563135446217500631690622067610507981055647093009025053420791898117840050972421406007978955728693682798361296431626849288594024787309107192716713150371931438110609968595316849708037929289773335676651347138488735390226789952233381946003571202103055142845829955203224786221369095509371992542235518511319430310063332843880456468645095260915679649107618197756134260593649473259138150347100337488167001768280937054998870426189674435791880013899238430695975353668643257840010207817371680692603361690398460778475366419498450363959777204376360221335788938269534560142257176261243201096495114167172559767005947936825858773253546154770879485577092316601073053913988039535896945103574097745564339298354175512150040121020501380557922418089311938553514378970079136606816178756459803696867571296496991553120256934401378103043010033380343670740607376158257896556122039526196470791764949583093398488201975062683145587678689208534000910532600632203887259703915543656108037563650649272480519886094050555469312998761612575360553860504045839079931584794416047523633866128789368972234256960038724306002010570608534441819279871656211624280619360545776288025521336980816960958329051201296261480874520105468859016014812653495340137239745475708104545934336644769398690337712234247706061193993478710369801872266131485625957744856072560796785387302248318464092170838581012443381160811992996123543614510931103497791535787528587055504597502710022309504145297377482092425860779882752099848423310440203277575870169839222304916984849833562656116193408266412950178083515657874937920287125946878406221222773864639945575020698464848896915991395298374254963577967238340367196540639981715221369310801556311400075481191416840514037737474939543932241469743033948920583888886755888195898863910124246110569537471095538783377963381078273089775595192149829909949749999956126651002038634639799862735720500454991678488295830528868880845582418022075694699717073178197441291028360524696560379253431390664267423731230519009518273211168303771578133581808316144798438620982964161944198891106240956002938047638791332638578382564138359340716885109714006396813826130662181384750706841951196007021125948569969448583064617902645464188538336813755084448933839604646941331974417598461398120028010360755391211633374523189866946471140148597228685649046666675265417531240683789377757473662765968467827566889152709339852359787885459456639901314212145469969618946791818461584673463965762199915168700102905668387881785461453929853465218443988029310946795798599554593658618998712862864665121803198845326476330986530961943141560455157849751714799321115745211867037303705017634034547123414305525582025135530725605509852372605856901270214535173731352223482407384451157650089918156728217293734203899294512997272473012863275094693232471055623298275965855151721566358556576275545285663062107306654567914463526982433799422714076945690267843828394824770635302223617408696809103625440907994506358666369833767317090267780288274813297105426641547852045630692455500703515302422336314274524199277530793422131496280450116043765750261787756590741467700001702804403086395498128620796701498155894985639508502356267052173448549013495659796711788046790042060004070232063528331413680240662403355598510574054739052125537980863169227127074097458983269669929522187590692987395385523183441906769886029080538323645712985230687358862548451312812733018146306256216822267110065658362549575936856164944769752426354256195395287679647791203481889363255074264278018799665802174232168101680926886901109650805772874055439950381128046390994349336974583382337934969873127134003820322029613845447890453297447497235279224190402386697650614568908100046167644567249732549019371031223758551409227779495721462987298650778834890850037428541636861112751891865009914157738166119916287116264272027590336728580785860107056072059871569018435226671392594846955503824610857882479200480902973048539872296418896350304820146202394220185818069789309861140796990137118618900580839442737517721519687931889614619969717610769795405079833476159636306827380511430532145927307787260822856965561557111678078688100523433649877091864582492791689443696458720357620033491612807640710028424829862378643178338035710342385117032964672923030235005892655379790592779487664932702326227487368711430402665130288291931680601705597530076243245364935181393920188459187283801406162691353293380929643248015240519904061916317298130106528472030676536670652948676193651570297369212712033084046209939772522096513405724598421340762313404475591711923427230561868065287039855094115178724450976294299713967822933270918710394865565680307891883791024744627025528522173188248428072164128222871838169599643384094604479590601178145017965899955896065658035153596211596009376120257705861945524786678406661264140791297496883383485281190934344375254657336144490720382556434796693378542177855923373811407157050890552486434498755386594321386274391449843200715870292183021212761589846924653721716102947531565015311448442643946029612174530754654234868300356856467696242820506151153122495235350802241792564321504842994938937838789645814323043832992523318914286956784885163603075093274836356291113458674799847687703403051697706458459078976922078994980666910242475937436003889861641929859667033793655303075081267413112421216249100568670687063080424900902781252981545531866765830342989483785606512474010774549273602122588027066229145878169044582776599476557904287397466697921651486555663024573825576931107214075462113210030836187002551104420305159806233342153858792798845476243039727016265584426320141946028889926986409696656300385087539987685729376119594078106846778520049906814484582735740413404599367037981487256000064865159910163340613816393207985203398474264840900344283642987959908288268784855305343208856136479341520684353165214864489083959823698548514185550557120533951582732305065693816688694836802635675117915272241959603357986789713818467803756981397952410086119405007842765313276201079568600793274084920489666227630901122810861918210130246530544009943819828354573944605046592695128102940630836267844542941906759726203914611107098137102587484912075399980587285070567704167749928186884666996229180051883172121497351363823770744190995702345033000781785955150927689169632279076263441032628928884894760076098495328478348687083959240409687307196656423959992052663089080016892089890406701110739689322187248227778173019949026361656207560283648502897617545121053616111778496852088971349624020757315327731511945294481773799845174187296787913140699921279606586166741405235074952230396790789424993788180028494576940971843144343702726599808762725884147107272062624239962720298926156756012036679648393698880499366462284749760631912652632233329966376571630806578607812777054409255609354353975765124801888682626628185655646105363426800732611788294935790812782820613374699611403938061226444452750118369692851062540527232772026572740429147520494129496972195991150084418783199495723020621629683103809491808762513039510607225372583958472688945357994456799364511550428350469933206065793284810298282926653415826701047605220541743500719956230799594326608263746953403652548804695513520497990806747643650726350266789890309709924081138145577259059604691525699965239057765170476174053112304822960675412991212341418467993874690787372045036797324873119502572240538168663460874666237510231393062124970357084931547702054059985222401268380692509985331283881338229721227096395156094521037651957927978245454938594675869897439904868264743969395830958348889403111055782170857612814164900763748920068595926189545669669699563987484334953845844471278433674360344386770147162732376846785116878570086531723653902108312442720975351562590927799657634818265816342227709630228108865316498734129296496720485348593315296616742385940503053814295534668640451610211891435304012688095193010545128475844620539030241530799992763472958707181822533997459126540355811717879921036366660991150183558814727195115258389866971300010628189728069490338574930966531153017797068521642346547805682652959045506656475957834504377220907086386923885669675364414842932932498854694343540579049953493898758483294780816490337889107147628937054994605157712598285455385157748750075778080990133585530716988211505263905649411337430717430050908020423549115828320513258742231555351513507987268511058485589153223874328115120161015330405742185325762035273079557060567038221119689264042523232752075754790387469077848246308404721219195669609097571591675506015610387016736226823176023938724266035887989293071612674128229221663218933256173330109118606070301095703720585580649622305271683962067632180760648335144046919942052856256490717559933523415848002395862575332705273618685414160677255091819096682643722366877567806831208927560917934237363259335204467984154703564352267218866209019354038754528638958827729789776294224707317848525536692919573633717979915653524733589006544652717288658743562567341878246520888035078500700803241125760488774725260462991369434495078656588157534145077006044163145593756592615040552625298654866128161553825971968077995363745665528299070271575362946057984707350609390627552424139004004628288952705165795127839074255397860681765231221387788838401254062771869206338083834591497283824379080837025597716732054572684842390331486610812428056643507352327420535704083189958577305386592684656110597852405231961017604265992306717434224230441874181656810771856039124471283703150286409728115377863194060143455995543432697352924797707737984032439553459926828522521133396666475998263714406143988140463097393564376340706586030455908348515394816767347494384007026772803174396288948177928354225560775062963831607470985485533451085479668230845421503495789645975300737438713884628208493039044196052329858130824406329384321170865673708317206202687711955900120161669156932796322299870671915858265220752996037879309761321634793502222599757270013806187665260452294235891135685566344610614762968582722577380706807669931728993139230290530105343082580614241063015930418938480927130055183132437521176195779096997106598895187709015751410575328180250344787801687375367411360676599865713761654508170578949018807779854592157043907298917976805429587936169189962148574206408222854942176384184650281267451703004261406375493781124520134277135441588886281350200463892498770456621147999144289832864360327706929328305660063007948040780969977540985594983490919758448846648986224804679369692778004423176832569901112437355343619824195563062010099900236017204404468687135455995633611214163641750774622216559072289210267158906729503875730654307544961258336186291904255130756492541138659758003260819891035040993007398039504927970569380897352520059007189885002605614509526335461941245835636701454435290787910496417704359898386484858362863011675577786330620001911547572179282382346328492970160884613321684835670450738370717761833888131178414144363142947228619874504129613294296232221885101186893965698247411559011224312946985084512616286098982026588044693498616899468640826586992592211546578764339345603511430326785166551349124200633721826942378161441614386718308286692222794963766137065599034399829240729697371021722539834377794005011542560461512460639382708346850870101859853600156681110130732923208095564064474457757085721655674477913586632046782215871714554771466963545001008446246795285553749543042103413179919505972779822803983065579016608953535994703480348920071971371816584442726218016944413158048846933203454713012042100594366624713604316316728983457552793590306501486150297624108670282724474738227153358838317113035221093736682503936378936967461321289116377155170776927769893147447096305522541010558089321095284771961220628041437457614195099640190676143542295314825705654597703146387534393422021210486099675249916834520959227060249418882813255444266325977388629299279688478880999361122480048412914631292023875479516964412373871026979579930306407990198058514277616449938489308772587113014310104677559728798376398422432516891463322055510303886247208657816289167329500277866171320537769484628962407410067004253451555976214269932387554514800565665817305640625371149556628505795062560046448119876205550540214242925227275625390603801223190122118994711992942340787347965179532344540762676465056332587593099323463068922306499246214612050120570776192431867031002678497914699105363086165788151269166719939443732488802322809321888247579679301806329336043741629754361883580251930701104605767179610096422930239986046839397110122506380879439126442186262787841259896484874987057163621569820903377843664703046854243629911647528015749157312406791460456362341655497446979379695973803505746414661507807413307520126633840006277163264768234894630217812227727565231412451619891167183908946836602662143912739789324449748149622512711932956725874737614091619339083777866667801000508011078120575642773604897508429809274534417471459155175909286918443793295894405665714087180148753908584152477871079917171102021724638095705148101910681890165578018109508780141036559155678195581877456042136634005231059489273602417332565447890521903879036686161534467254273943677885703948835317982687055135335004744234971895231609937302527559474347074701246935887078680268789055240525181959532826314151631276640659869159161110321640192127414383234974886536622911090999038119715420105011946721525606711916836231282473722846846727015430629150876477256547749776805981911679780559808002816346814034719669442157384017109996940514313514418867843688677228771370551995802046389266110279476031619524646530537277081432702773648049136699837011690612140818247324473199011549901064703752263118432480460681134476634591358405160765494813914298313948595188693704578850598748040081209435908265614420449723444657722570991324197826488500369469540474524190926534901162324677524849419278939926692443969033721485504707538666176278907154571877358016385328229173563379826832684793792013452759099454524256089525729133078984180477568933239357577426408435430348997699895417018915202316028833688958191492783691616351584869064364429764637679943184580843013874808522909759517413169526338475121559472124370780664486500909894375619652767255528043783999581353435076829599831760428277313772456093533409637737385019987296186242579046752410579809233017474439508071105684258871717101453871875247047247961535112142067409886335354020630529384199126682435832522252661667257852339350609856833666487784415645541003332785483201395341101603324676538123588717985346987691293102756651065394732966214627802494841951499048306186227517211709249710517990604976678421707678752733370928360367463204521532868706984468216499948946639573140413895653842958142840248587749509601529988420881568663799689820200979379984477451103051266699658177595250014231619437204453950233687009056902904856714235790706622985653801141596594371166102315658384951766397989816597037428316372285601911462592214255277136197959647642761610537041300418693261896090392957057044741636136043344203432628950610365157057552937866232957670138622799894887125145747974681478682203993122177014587000383091052298535710063240307554079723815435919065818629823898535920507952557678001451564233877392931036158287548208908271886920865133692838692297816558540542647222751361932543501420287961941116755709970233379146737561923821995210769097533856195979660791013516540159885031537667979392663648621389916113970286018305101334966849806652795275802483008815012898005955572573816954176634717041753184326341369417812074489916522654496262829498175223968467373640929805793864550012628763739162560193945654164549677354339763789953536590437481138779785564055073453747034744639631675488313703023020153449754260794142609494227513178110540737678902191744946343392580190531642062324545621864836836399187688832413863111246670616228543786993734708544006363551039088024402848437619284027933224436027755760768944635216646564508996339867979878506467773733099664171708790240075801856270740244462141890966863255451123358454013681026119363865397985810330408836311724699630622673259065687274354746798500770993482042642183651856123372908786085435427140770715033457975167748614537506699751927139470107281062570750498993892187159121366601240712274193633151540602841077574092454778601855299301980869646238808843125162599289679851616210627447098490203336118726668563243617370675855551486683399333021811121440803311461045474652893715292236843336650073525266107764366950977019851496645685210897882925494061051366909908102969141548171382131833470734037024517736081937150076519620303445301459568762739279082540637539601938190846260347300420527504912961100004386199889010516038426087471188331691936917572902680189180033241958874802116842539152826030795534485854763642869959434333816752452655336306823441911258813381350935261989900302484096106728324002957473303781540922264056397136680672910404110527191375300468761497053214185131240689400827799825831654207913529299912103893727957286677099841323915778953618966237649061701998845286776006165461153830224736449393222889908913152811151093723515070759615398239183361419714157956026075117195662399200168066522956011512588986229244690809704410313098570573539827131789781315965403728530765696342301850912926059675389301661655358312399939882664432026486598724810561688398324601539180632520064042058909857138034817006392551460508327080542700334524690526633306057805055620155237098766574348977227712737994772626121619900320796296702200347436677477626966891279518976399621415120587466503539465256416257984481674376113695040892287390404422315472916024686000247686578262690466996328130663742004182885308405742396500022694695445195080523503319186840109691242450804357584627728419051809880405199889919956270052634459950944795274563430615739861912797226336242584592301729772375058144935404870087559533296294491490072403570672047323868864491052731707762791913180214436276721937964321720934215897429597720348203871637353967314002980789075979853389018624693723873546905846531584781313192017153345390387518873535046951023516542491594295508655015803801508992054578733376456567796880385642456905839271650713998602831396772596044088371047494837347896773953304011012544670078354501662418536340645503342041686461795443694360026059215146572445713870192899327332821130386230484772599416610413604394156414410786335623875826983587415013026853769364372339188864869270374475630924476228531484278127126575694153168496571217343667244726919994315429841302186930669173552281637933477595997581638419407478228448197383391096280950482177576891182993616540272665591319159166770506594989750961097356291397474093349205109623777641374786827796351526432529364408771191047296402786933620766370507531026325507417421841989463542678364561631934165526193015548517144284240755399027772799908265287057986859975036041210043898605142694530225680431488547652170333229231316320054555807990327173794027636980691194823133009141472425664415752972841768068811707524919949603996227923750865278503907689628385121563251735377155781440523586816688595888837301924573707135321678709180567472392275864655895036484914403287321719641500123495072755945672720572930814729282408073607175559651461018643220984932108795552422358959576456755697373840759603846867281490714587320209329526928102481456849976917722789509864468339731479882081543326707677608757159489066398568294199417954810142237014624809484957610176341360035487445881020354360025583517885565650218921657769107840567542463864980813611328691235263447258547351223656559407455804184928167245825504749960727693829586537689786977144306725509192013671776405584972342679071035905455358735878190620097523791341929476043071220126003551224475089105746931835352657112059468181860461176470979983628694846833936244078885577428283803432840616132053602503442947068363256166169119712060424836052062667105224335249679592664624306930985699202200017571926405415355618217458266372579311665660138703575216440867471182399420172811570547291022038677291004488886769516267665428854854705225603135155329064854481167531227337620842409472040087924694239850486822414728898700326808537853776957027223756181985492158507833922301775509102728504477404024263835075512755024191256716210812257279789448148546401076751258783652554659283443472935007682828774810593325782215027286550245773227549908104954591414390304661774686517138846757040672781970732853572457145598685470039861694713945488982173164677452322613789456013353782190806453275556442632694949954623484698774161113545623791695500137085514373261439611754204311233697543220664009141325986018644145575075726453018951724433843598176206288195030514835357743482364098580943602937354813547700978566877178458082426700660310177882358901100660474837474223116330529890181385309141612343581358742234077941610587024200196226850245354589133584324454022138390957705023385195713486275270832399235006170383585747558164716170545612585876437149881726735856842075210168740183690859269302411488699338850438521510460919524767952608224674118807035877658807214691775851736220305242485023603023717893253702712721791097745995830241039968239839200267596691330323711714461459640510712359522632768998100860602949746499322174167324461833431819312917139214515514352438890467602695344759709173530874656537422127279705811128384311908318654796484257838098557675991009291569786875845534226404019118933226539655168276045460325636794211317443534520555336239678787118594656157302082885545317376916180717992530225282481041008106567828213322560934639218087165880411054626702830361872948630195262724917743882487764234765836839438557812497850002499769698192794820777430905861496090966022259106235381996400106820427159750940868115296862805111432785504847484318820966064281898592301523247925249846523588608744741810085017371009748080517947253927424370256579676831532297996405086190710682758750113986864936397895817390598203926903954262107049336550226917339981391738957791773882010345641765389012314614635621728635000822297049528152792194078840567808810178355162024305658080248332643602571784323727611638472200986317604738413832316764339161638234177386645055458723214062614837922450972978536654611711307913250012551532984825391713956495677798424003712368856710664777017690562665749147958898697988027710485057239969936269758946100446882349172224907104071294757966739734329955598002941188082146896479296200558517519938281423558826162591906708929798184338941848540503750119295110768604752534616314208083782371891127684465820693958523714840132303903533722477733528445905226424121221062727974915809278881733987302516643263813671026768050533844149460958409252936500484623065787069538730927513936088491670703295921507339358599395078727398909222983626750603556439259749033553071844926675125588596863772894784383282240267725363845473554869736613065238630023939133766213393797874241335088490201104411121411014232701519201851719993974033449183886272138460620945726235473601687759444014672983293651757752644557972636131281069001210678671678374424162131807723318677090622450267333498886113653152717299286379685034587719091996271988723793683195557244861152271409217665033983998796914207094063645326858358845717791492660189643221954751401796023734033100814513235156064601340502541644181391089395172550059350822181326024970531295093242948382247686910273358908857760572011555370979682091589356861023279973594265509504842900694060426166156097303389262288187096236106093351950382918877029711298392385482860202768163009292540574382512191164817631497208533809079381391466908097068061710775231040191032276656940346956981022402324468629096014427979482958745248394391220609764823939563321151783173746288620191703325726474553598721684948556090303251119151823732684564131725844074894301217371110450188821875590079266554900551281396233706218687568454141178215248542663839407345560272103352771294185079960181251668625960603342088171458077480172920485162288721916216685967237861282404651637633083839286309369424319667674904444996881697298507484183795979802013612650239707424448900153092375092221185226558443698944563956997532310613556822003792372790703115684372662022271713584329232287277249078113190909099425426477003975235935941277529787527590976203245564211919177292440854200692648822340964785057553384481818696949466861504194498146296882873726398681566538727759458391223827769568190537319781554797410454314792120464316247682365561615582938424866124697154578213294238285608904616446719321803471944684402702461196425299990937083042179883756832883290314280572762143660850293232649637231532036867413577576293464657287923199066186038543211360214109052244441746390768294392824952473440498686639592810186718593028070537172544749367628691373994069963108946406697228075795316540286669130927578784404252203452479030509396069943300409016007853965620924690321575891956587712561771477267918581563031572722038360917966858607269233440072878906061226667767880695892609660632319765475551773510462663633684136846188276118714088315353156769604073658457160451832512217491647210052615078754223924204877426931937513750618723291625637230231332885329613147377623609194409106328067146769753223653649445984905730960478018530882651814361811092277137927370159981104618970099773860967471253692347762998928910276919270546235336718248059497555345109113933720451760387863987799239540065455467717305210029305467749072960626561032395819445656192040593800503190027549963127638138414111174112577010751345213189284815798390964936192497918410832628062381719200670400739306566208279523381183322655857725045047386290049431526757877498369414541773208858138512747197924907515372077966170610408199828848751184900818038318558653885298700034903803024564453768600713105416156735008082294803783906984668303990329473944372338351128886391887232759494845943486082311772141465978925771690033936628390706062903068522120481396387653823712046426917119455764843587843877354285040573178055106723807481120182711682702415354355997297047948520691050530963458348636705609117537011710172268559356246974154552024510436422786614753085434712854563118661826950182783819531597598290109337229664047256086551606271686569741955600879638996375109505220283737554157731288546112092813422930861438101172721778037488085153259379316205082066037431789993545902118182876304529024668999723101416150928735616185220911807619903088992333814716262474243517740783741267544214398834192405542850477458213543563213355123961835335190308560767565876433955245488559536474538827973016977512239170499223012328275515326573750106399229468227261677043458606277352553671232587885789727877011667679323816782381232825742905758234992713558561755690722561663187196266416886638691556750272044508258500960665550186710720244116868043602017228286895627477987256563493632863210664918069093461134928150793835954578271494238946609517027811321180851925919482800113201044252016513204828763531641827074900204475801123568774093053333005042629247096420282910228440950573757583200255114939212816874383426659388201769180415081257162102383103661314770935553118545485575998892449065935858020448740694417907512118828103106075475476035030544521544633227697088365818086115884722742930779625291823626331610826937467149533346886904674038027814277348275441029616442064384783953938476968739585806078654853161661079557128568164824716175218257360477002250213560558176065781910885426612452651273639867821420518611257449279102616011753514312345604842299209329862749702390400882532460586321981899532576676483613124129327763818244690896243474704080243367689741402290273471494019355350881803478931559292831047950741437439962860872655497995948339483667858952618724565275164897985825936163484671433713293015896892383939739964583842610084592876875971878483344142744364102214153782012951350565225760993170954169431396727503247208731112649671996529529614005629414260155625128397640276190766701512837308525466197323443882100889903923071513945642452971604976703941687361608336547120347544641528016709301974103606609685214959633137203032242605857734953821304152921841102179575302911288027724176741275333541333427927836529855029423481489630006389182835463489630757663854539857099196919261362075353815528815054106606488987646253779662737822005839580933852595475426586579908408322707145384083243276747476629476543927656652466928614895377772809176958703898698946597757166356373633518416625550410295881356728098469683097116265939832401819696314479279418707599002159788342821981742418499419952119482339745171404066097542224847814523485308464960670907437315420571702261248173985012698052246608000614936602557927182360165176187505073730847987621478799296021177361126262813892290170973063100648436549421388619005026441703627970395198262603889142655190010446575387301852170316787307423035104564282702614724766194741274647614260231412629822454130797055330213779299727198814797904609236187061609852854957914075849894793239996111884870038259042108550277469082901993685670111031132429466334034813160329934091146349096497302822810525265143733569364487941119186216138730549109173687127385001365129082658303852361777463315077139244786447516732333041807092427702242434834842368561794280319610346052676132425022347305097049873752785756851630803806760591000753851756174599116874085943496679474412521323349768884359584439160763240969023999506771449091804786557206589926664169191275910250348476044697171787257310350146286412355056328278485103347629128445075864567406168937764261603732768404699542901278216474202997075891031488015564032301473342694322017383273717515165461936489178420614842138988226894057664570846370552685437513440525016752024821443204374539316521788414982669136345026753268338546635834011907589506317693156098111541064958415551392130547498573918040378852673379380550061191831936130925879920137828655998245118856390458951886136334588094190426126174815818112902835303525195914640150544199893855483140679030707961382170328823156378578166729117846114170648924622202569594375383905933051189221782362377564164353178525732885671036918650600320847308640872847498364391031319668200314746589446871079342067648733467291305876563832402002198980419932658845838232297543394247461751721084382577568659808692987593945346746943792905327588263271578173321715316602127558626788512167019772645534222922141410383913133031731850904768609355272158195174013828730951841719351263188802760598339881629730139131165401947358028048423334821350891826533637131357068498699797596238561650342631598991034758013543788255775447268701341649538462334624695109049612062271139803500773773905193797881110842240906885324393099438948674164826850115009640251553546671139580607050814290869928365638996292372927401679296838409676672957250272259758446637967822147346652720560387893383086580087750475110674918528274716245730768165731818796080193070094471128312239320549155210241782220179681092193098048537199773516389424227863921584621175229716500942658957968773862335622372465519963354187276230414319065097693901721546613554274412381250118548310024079662057393084580155028370870292603434582767939606162456066613078781027442884939276514852245196515707618880032917795148446337836497314407416671424819867558388419287752905439537649873909867393200395867695288699517251314902558475796194279416315377906606686570495995804102809979681329827660171505455343584462368258107845459365180352597767781915991108326049523490869607123644600363734032767182184951104701905008271632238306694731886614599755823614758431316837157439558496607696048494806943279227117733233797096313859477942730117984324683691937367094244260150007623437542600844964105810721859852083300227228154322316572469364787001998495712656834492957313204324464400894935451595693927968927687626916285795098575586500837216798159364961714693230804659439919140318333502669192629867331260254731487991921657907167078868622432397951467759369581605792355601865356733941002340736077681962347605856647015439406090194059057244914694374444561105522602108175695376616013797147850078911549301595660859134119785321791529602364700146420986380517445567341564062824946667026189011265786998805905008828304257381835354705357588920493239296828378229088522383989716842999377404368670367605570595546817568506494555942637658776605050554047844963682187525951635750673409878380775872650531278698858740538341231921607778074367264228383158475252682864162072929135546107825676748421235382536080168849166695176957955704964011854244393318595562317721025389324514283877328204500161901349879834345838752783914129031933136598727266367931019152043089731482343923802541572889008602328647753946347739819632032337200504831882716238730921214221748371352318023402130794504090865364488237618349159393377498428352097211397507242993266310095955471618916016946801903687724406606974847636745341534866372619938037399695951287622474819859563081207402470293139493281559605370508542479023797850295398181870828739773686801135113323645404918310940110587938727909029063793147638217703286284214857206103565798021449688905877667107075328620509069969815075756936040094882320150302696094566505816333487344896758097538840963631916673370525182698035240441115394555656239125978175321387666520576658502445406045529106529561791412427169768928590963730595349320306497196524223465935068263500799899656668137688428704920527520821079631884036685474691492714771483838148637492784705539787789322912052449171898801230009726896350747000855532675990591408316862829985308320274624948043015534396294190039544178668311176699279034728185156533312952426540593966249420050660281543690166691907109046982402063436411733623115142404879463961421718237334708951109733039408650551253071109762158350372160130452551975691311671742460173475163248856062106116382316128284848058851349153488057476710770788909597010462301510187818915409129795516839606928608570896376105247109518052522979353928454550780373871381597706682065165315482272268246026017090264215686075485262945718918094855572498309113332807618021400935933411711659621566204835235663848393314258305220752918649157695733697695561784681578553452848188375121156097697103288739464826217793673139989279972350457522711462450672565059731395258239520730993595824094969219922701218217672468456578697380215995941654380104369832278478785400372938101969811140059168506048201285530113587100467423814202549279120430463850182024515955523015206559436986095200651798948493387961093929612360913835968603767200473342189695862061554292824461438083314987192867572882342186773409590151557846499841292104361692471200422199091929087827307351722999154085254337403707386656240301505450997134906242899760653626347347642888727795122666334650711816674577294779786113449942946520912181073306179065563279341328467851334774717845160163062582523916599628585036760616049072333281343756143543186201655320515370995739087420200885304885347998439328598990505611284460352049144655181698589841077002460902300033149431582012073934580531497931884132213725964237985255121689711433930655300118227649186155453878131266468692320407203165309581690631442289055917995150559909255258021405625671807676505637937031156981068678257996716496714039092159100470088513643394406389390299849279588937991464606814057949068670602044785241872454321187936154648385538556783944061959184406572840500843034991498362971752080815765409277220949511692120941665456403088749209486319628439628835432432066880507425183529347805780037448236494025572613501295679756542961294036622601684198943725954806490990439458820702770030190022615427466192676931192866125015073452672356168742018329611430597086036627409551503459302811157420584093891387113460873367054987989862836951908734115563928233992965334845832572572223711718867064555914412619596140735960508892124190618640067416604169039321547604407189743527711989542196279505886106873756949719832854924146440265504691730212351649256459819960953272751395497774208550586154082868457886059702843421042518050711659820234624005369131936638796477600480640668836339041777184090594651213186928479793555214118738244892750071752446677735468848427078523441756371128937682041264812536329894994361581414326812471219960603476208881967892574773273599056063864405583166562912023212116619024997400502138238448171669168859378608988500528186797299155409400954403894681984675425168624246367968575496718527877922424054013863435046251807116221388658380809402336733619214847265373097463742550242681651152779627330875951039826334202216551404782186466167939187452089476685352378733092146199157535760659365482897466483191094257617775933425444614372178877481550309578847512066900274713253916193106617313366574076201072086456821704558276270198773798553081256462747648012150337032848315816633387530862692037992339543234026883636576380407023785576842426156561664714771884591442577510169545489329606750622910644022077203615703237825473873244676552834690961576501885262728015631262142772555811278262134117345917454360666586064773016054695566202962255759132214605338431736175128921408228684728272324655159189032486704030633754427898837044162450718616559940141131723347741546304830142824000611270285810811732660069837989639157243448066820128198490884098509593995692214121274439650710078105194794653801134476729592852806835699310111381261109672225141476264518362644536723137281489666485094399523716660526273792028964156591782663400809417404032784955293125434735756603099647972274665882931552276631851675320409674785817751645258634045783558219541010807039792064771708569274455805301207842365648780323039570873663057184418028423220057144417976796012175124874546443479570839658214057465330904616788647936155732472157601616052350818405178900332838349152514133278912188378867997932543091921115821800536833185365242079029446161215070768406360503384197346979107277513571776119547294898480387823553505379501992738261182406986691893725585373460070005392772583120583969096196388721893317657820679335680350905925390039336321721736443421274940036887331098949418450720302521224410487988801488884567858598288818441057299010247299763782908310740981616254849003947548762142214904391077492108261782538935831109567304260251025169150387445569974670307350807685172924437179891244669319438154045983069739854116965792264659939241419210082780382634365710489859025055412846180398818402962983463072868520057901161940205724478849177483828719769234228283398842589865025978126389805608348666801312007302332705351957574282940236781623024161302433137895760450139014995659894158913831672270631225980446218102652155067512851764545542509819227915480131643287602146417304486774570148386123500441419874651150566798407476714699634146209711899181409521904623422809389501828561899314654383466553264728494138238561332873582290353127220691452501196939250116140573924441461402647803113401766162440113612589654705131907808910318926030801700861926907015922493112562985390730873255892751190409953109847122307325470725564756474923325597311071760693507504378016130114487217084304652011993225924268034121197726555759683617168568957245045688916552966546866356651570687719443419523006295780014293334779679857975049120043844070433682367508719185823200869945689378197223122170257612900909103050439710423057420997482254805510066003802640213154056722008753797440741666590524546244169788146352522290349099338841869596035362154473645735019646682164811998409904966020051083476624587209098392085333806879856065965031589193888981659330297084558194366776567715287102539717568890924527725759654632491964471418489243639452086826336203136458621808634244890452351181270230504962156928741510691501913456911729704692008001254580174853463656174524017132395205510871365376962170079262520267804491624021940688709573430300364807664909936195074107659633120094533267504017805411575414747693947539239991204170268905740802685749515305677134102222108578218761255710259259299472609514612120453148868764548897279044353227237297534760201333456886264019139471859047371385513369255314551467780528644394567115975483275491853874407233218697839813981008167665835105370671568493997807755071137379321683253873363954872612276804924501452875770961042760116620205063904755565966850733575223551886709563845193982197523538633002950111866285427438637705875185356482593794135530058103591126095024864928607194271949585427336047457879721279318521238668601758432879721511853088879480161630640667767204768593925453711041195690318900911843948009393802486557265208656249555228263145461073255136038706584558683434443308970190260387690836519901651755837848514215232827472110867810996412381531138075378624333155129080107166105483321903716313437272047179663780559702594773633388671240233441033130036180508624870587875504048470860574518495840687220566402940794215359110572404352665844373841862366558515281738436685851724065483954811272255771082240251753635356207208796477110728997002038834366419795973517108454016074042813970622045609597134387923402831712509032224391064606147318517963302531339570707221965838926302417990233364457887189947758167009072183578007757785653851126954097463929924686227151135432452990996453731476698409629135488982811930642001920511917207466203493406810873830704665771628710251304253063915882772506925520337374340896515808238769180593854099160844100963104004539152674876936836010607720399017563001342603896559091276781357992725478474774741504009481266734510254319031108148089095602863600956191437350420342749382229323965142644522401862015061426905198621575257625412714234739473714142755360707759253857725922515616905265385996034212165353463201465745685619267428160897236224079913124339201011709515519298784023835277448606383058157070274166250622599425949575786312919897700653631419412428760826075529274310954666079339621594184178318917861122736391378186130579885828512408071339233372326509500427893962601591889029576227840835777472041775645595002486000909916116880914823139291754258432295031197188884049675645068196383587830868510775911380028747831133986204150460415735157723631343141790217206904304586391990719887356413956511615019437256303204886854168617717909683367728585819293975997655478373334467847561267333726395997644436916012040904805005050896624123301796846062072902645409955218037006965234475973076514148560103145414862846579839344208112071367304734480772641586979151372274486121479418899676449667551623139270630912591152813942621160997266523604212311901438167661047708853279917899218094924016883585013711796059905625716183692212273795206052414826198548980131623354416715850094895169085431799687927224354592749965448608610093502607201126500072072059949250512857276235801824779096985607065055943010538084501339868444269256073279932552348480394018198859983456249765131927643411249086082067705420646203573862230111857535930255408382720745231580531142538264433768279223686612490100960104390177728144628660020192484651720721488076815810634311490050385768167359106092349425717611370055168733847063507219450415207295439551999686946820563944664880989031785745453768549533904801231600944584881480124396364789991044487320176688617869747972759068333121690374235624727270021389165433721984539722942879482496436825672291745757060590545758290588443300805569379840306548040356842009214071396510478959458835260682190443399291630722045075578713779551467725751635387436650712213610307535486979748546471381398081538827783900033248749709095879066145124237424277690925191948533332637165635228032933953187696795954811976243759124543346608055673259834706080825639624764753139433494166464025451176994146891434878967087260484741902687163605559789327824201147545686365095044999610347115034312172439505008404155737667925214362574583984599507566843664677023934766753374733279233163157492552426006870428846938244625310020056798952310953443444749939592740742801624297970830514588957798023714831432658551068493107422311851466462628496463612461738655162131326517613727287853014613527778776016524515863866981201664570428937071850230115756630808263574052820097456973668504009470109264188299512071527591345015425700809835009921964040032243119793486374012142095607286666549740252816149420140611395871331526890822062763073481889136888504321998157877303805685410415176479835035511558971361830553829750815777074353768553631764555658150544498286900197734307989234108420991351954963733652551531657513618414701998158655281166401774062519524809576891566395077219082207691144741222169702781786374495599854285908630474796269278762677889406703638293394231415902603311321356253406044184749955607114871694743061252954593789139952555809355349915527376834474838363416042203778498834227783743553003841778466404833246690714428274155658746437788514388674146745955920262232612844291255306052486028550022303468629934423325234491603880863674187034568242467647410987395851194069365749646438296881406850867028355875296992388979844296143056222021780433982225723943880543203058933323901370376829195093020532184450108003850930830669875975695202679849007446143697209244794433614029088042251808166857842151392050437170702080303124546133497096419130129706943643309271868579369813906049449141302923358895553176631222314225033329869334498870976973832229668825179402781586150349495520274661927589700524396258153833966551602086600586198155020827201396163150713032012041555083153063915252344121318256230203033515307818443168503557508433552662015834264376512068481853114505220550686960450237560667393375380414433111849725732514761414870941876710431722424618644684146986925419494187922578206552280588125767508805419749762925985073092214872221244238409169939169129912677797962960160308361939475694625018541854014528662083116629795965721884740325408980098345624796793627299492219107866460948126744603271814493311998074272602907658674819429691961903157937682625394481779398366151752674230012134085766413877540503525751739521835958593203412721363160859766716363136117310766796963690949848248561097029761701661259977165741407357320009435270633393634838646348900137210858409561315824692232504621097617185801016375958738472061591321336210647242682257177961367050456292926962885928752695245566651247244819482293988972307122017172334039185511135564754803581123509793253953782047369569640308644392071519735161689019812219978334216524992376944462388041491176607457364295232753373375876182371626805928901145899268560117240301086293126296282660359888387614188902254896053721886695198151157559003592202236335238338874625345722326161063653126885607188271835880918578191078389576749232459124337921219339996162111722300355975638311380259415839331822983107343044210794826234614877058701982164718062764087014397162970512089886887444420352859343771624192012985328570041016106325519648364050356161599393206445667768752545085126114044784731406456376788980532433869488730137553430931495052232503488750690112165971868884625462932577424809255693922721843482759693946799197123032258067696083712897304335689758259385507673907332794210134084619979377583911344996877463547367306569632380696370221742673771768172493309961559924027148702093705280567849670711635803799529412054357922400478448747976186469707967500879833712430184424162364113226964615178800483134371408728706815671723707495677240084100131277350542127203283294319047523644548452356296897187157809227451690568977943564968395461790542984211677301484252161379957026294031917320850620618884685869209024411337301827540905041548762226719549543414472871281873559326856575752569319150725847624421403889808513652628521385489954044297620332669633789772985810420418714737411911415189380229630362304408714207712505258296210356816475061217811395739294682048910342686189832975445782044458238524455238058602398170976587852637618978527280294144108089694411060508991910625360993212258754141378283892737339246491962883996537170790658309796655937317271604108689739053224698715553258781733781605361945874212473987109309662767555013119524133116135901450788446905123341526043515824706207856549838191324616856540123151816855142725357169435270794387217697393273750754250895526410939612302583775008423536318213811063264916166432014284265344500153756327401078444112851381705637001462486696683265485879213658737025772895358942858968635964376439031377275261793845906896579098301747608298358225658071413325027956775996050313839325644655488281023847997932897965009013236175482363587545119373341225491499773231139745350195199314190346210869268733829165970091828587098536993699556685841368421688917158488058918398134649875801782705623677129040582364287248761814766978397592989368431305255383286465813782571742012869482247395540735955634332392858622387343579694779967591653640096628970978333388056427187551888410971629162323726381476779436756688964238556793874763589283032212020540893287328715150705452609209242085801078538458592551010126475814080946648113637693528879976036502348628658931289484566264487718689159074634742013067550437349706431022789323600563948431216576053277565858692788479421075630821818523220011645827171804610335506912228026402522787078777497571798258834240626741557430551635686530020285833530778570184935222510712295176980758114502041072761176146736617220415798663271526050345097265300012656550330455884106083804979696105637773134037345450033456324544115876617184949187247651298737534577815958217254256930479367772106793811903967966640691766848872952301267640709137272777789525699038459861362162129054282987845870562005576362962724046526810470941268352145468576119260965083794021038228973483537157117118877794456483198510290619635326796366423879760469069698703856391832222459083956494517844099574561252237306652864563163875965315682727265921701472378571725327782040909939720560845021520434905563686177161940098503822863785236001188880808027965817239784008397855003052986707104276237800694087751200965773937381695234501971874799048521384657568738512802297650220574826350614814818616327573336652469562318607980404014759142438832696632062208270012172272787957670432947706324070748655742172266211683560814937016767456940862008487107338257541438620564060761631097908897472973231295350473248098197322055767476437951650331237231663195440152260123935823645215010840691136897899524229333563440951076640997930307198025681446619512066795414039958789377879487598621967135246866365094174969813144923360900136822977577554126630460457304534138987178209033233614041777582544314889245078775524285212818203127462994401526531462304045154902954476275198619899161625346417842150351508814910485362937326489432911169683764944174537977185172041615864431883659478815910859906460570615117194367778734444565939799497089323786127273395155583766534095169658737140352617245753343726452721076259902449829635001933582917837917862406091890099938644454518712074653532740696445500870910467632162655678085489034435519574939502125049675708417477448698367586458378834774399224698791572924401886855258653142769328548439560638109613383957385314062338538617879029607518684761335288557385466715264021181296155090688428175329266225251491053964940056130930706870009379569596605778296747351487883580869922382245035004026135100471840559294322110135807265276959661621065382238829415305258676444943530509354149268529495690554536486728158352059173143033646462082547155335722727430044241498058848316920473018685412475021527788328184594739073102163751278460591298319980076829772517000643038923188707691609150512118926644133233344553469196183892651112401090221631804762943759668850227471086743250623874544455566510455054928293679116917845830333731791081355422476530338935460959767490962512996297084689451204914041571313416386185345616845235654978295224321669594495412381754174971116367512117385786217287571761395000446268351197952456444927895382261930015000515971662480223256146008866279027403850228828280124470616906837642168664594594556120042670107719292780205988425045531357082880673595669148567796566277638387563921964465035787432667623576457504406161659734181839772421779614799012941623370259349707094602483690286159504700948122506736236309305609847081216663412480751814014722580340844504671688893585851287505833805818400972497223535377137123916671887867714223626746568637224309428113580301019500831393551187615626245766945656779231492453821595948004150958328301727658520875016457023431826575569972880247140199660467033715997760130644371656191303528754598546569654404996448014932581328235363625952945525018566512470599849232352284058978276194607395729560872067619453683043293874500695396165446161555513082208335499743453439149106579615719250759515811440307504869090490455543010166423784756885690231352156735619332166119679540053026766163969165254558785705661816070627285300056060115281596431328928795044096732452544627305520203606766552427899838349355513897125762373362309245571529731751067638431381715923356817939909042365796287595858899273637961040379384319255043435165210528247835798530841984598248324374686497679964695212495770339025382575539304917128368406518003683944673676332634809443740996941046949183637035943386085827720974020492240137384933685788358923150546562865415072226569176273871763225722976304439272579222710197230555769979368434944269616658960294508211770123686957976932103708597407174028994539108093514288295772025867700406226310621126183064624303967627553996478514085504238210397013167501088317827186258300109808536346759181452465831394394585511980781156032141023791410206573406669932800817554914373758098528158818598083578157941059370385479283221248813618920202701533354813360517595319702323923547796527650188003225597169243785349324914293582137086742491180569874608253672098230666302050008149036763567407941566791016515933328773584011279140413113800628563192404867195912622845389203954027232985580091294064804903759490597010896005785711079387978320403182335417038000755757696286752436347023213247700732448570753449262216956062894164643799690725062542169572205022153928813970937808202908380346317075319389489002800214939018141543743653747343628042358184559320324697521345366649689432771991926367690736606203566605400088467094185270674172096462954808577475896512961253113275326216751590092400151330136911552079628283600294837631932887355710824006567604627907513176453917077170781024249436569550148231412871877175085793091107805992757984148143309826967385943650099851782288268549006693040154273803103082460094253531274721808564610555498519219838683604995192091541969529956900276889472738722069244634456594670673801911694905157636429718776094987329582396842453202687900431429065045348882264297521608311496945898196738745150365143522770896173053207816076011220567993091927383497876403262142000242641243085961924509395828264464407074352188523972242793985585168438681872995004370567674239625972327029655440772452513382489647937185343092114380494332692982578881582274062676517710576954767036994545582046516477685222527324244025910094239983699770216356446587643507880503081854776311737696946519871255308096033512362566198297910870002558752259987916911715434034707755765017084156865154850221674655413492391927911061790195895313675733774961064193959811796363744390184958962422353983266939055752240267830594182103166483647264681135158405322332641705590917091050728632757594056052870973609006746592742646074340110868891126610825048449366722264600216904065092307241938653118181719373158412622430376217434879679887768355046241971938633450305026724965929748321681792060151250748188998378954579405382074326197216689723195712233024750264951661389390800704668982617316723481280172890624663795134170640414814141423630855176256559109231325433433681905317071077559749195138756530043066721804085429304823779156059948025740280330488820660958024883846761805470386405552770227857502526863421804653828545793023733694992919693910097192764248189402013854620275672815617258636491364503585228198143621629758866932126790895709878084876551957989992561592387882798490346978060368236731234224279453494282830914095749993774874954880999948061840628024698192178901540999284946844616847993802331598675111535716314663154240467746238717903717173199744188547461261380388351687136526467149268974252719173181439493563519280550666538218692558739148132773591876872166016291457857038563325827550169393175039211521836892740222635995461784434310886449670753369552145736494236746744516926967007728100941090057012524361975077266759868566944595299634535292846017552863065994453904582372440331884190245039118255566185234603845982573155735414780098878075309319978983651832463022218168469498679063950754905972256714699103027021263592691683670015836169217437677294072603787259602433017137702651689819926435642546747690555199390222586048330711476092219724843126530996488958381676019851472219467115605551649739372938948020687783968613581434408752986594647004175069843909757208332839829571307120211563312897776210454888952136162605137527982635046522396139347789331754892439732029630475191566308692157460403572472292281898852995934375274743073151617213983109991904370040742185225607066879211649292775683567316098718060008387264922217037882145565091885164920045942082686835186416973768517459451108016641562483390425305507789386602776179274601435025571852284872512696231483374846357156693632479578690742663818420456809923160938352550305635465362841958061243367660762499965242606436446373952023687839549928685529687319839732294586213337096155772238145950701495983446991649490939949386298250895815932943220642985981011803472297071556169356575685272813778122876195340181443895195816837179012453183909934281893652454176434166657342968871926166775849272685397914396150772868700540289487929821115110412577650691062148190303281769011163584870081168459121515805285872097891424757343830759794955914657804800344585660934662515402938628906544301996338801969454451403656284052535694250114204158967124064895139145472708625913930535691458863175093460241353776853210030222269841002374648532046876905246283493706181148406965777550062500490884494725603292084651596084974088615485958583743483753793920922757544587160604939233391802765359985910664212054872972690418936605263100502765455835249294154670964136040939683708332069201017796900781593677270024149016959323890295322441641074295052927203118027539223939564468942017817466623419174915287878077079294514969428900045113503787337740134641651994259773786493155430696835366560079212188093339616308395299147902013381338546851765197366517295658924436100537969116801197412959585802469246501457266555065321591323060008611481646617428434278005605523900598836157901803089253049197121292244930863862770329988527993792151886050895550156652463214026873229389844851641389496445349728833608724988672468236143586662467976500397246794794765436471733847990275957260635705045188850931502223316156957501432719425690735116208721727267379279081652195571470240041347918449728041636807706188218849598071728184509459567155889374158971475970958341353546602786040974517323334720366682247138044517924123681022444828521272893680018566517929452387339389925307897699403773727998516508253041353813519149495237794509767060882406343478745182304362595031751618050484329343029661328946964752500741062879342139235111360092005545387032096512804645559681264084655503889175057358155883666173507903680008175593511544312432971008626884433770557980338689064532910029967653397193384433133110906272538317886030831221133185429121877328500513331890726974828751262221598618360490080169492687476685525724357454368125594868453451474116016797718420553154814730966476075331742156895482248310034038028238425295346552352571692126754919976896104611372852587412797784549134780304665423267164558590406941533988820586602466476903748990751631654695017594678446425384370688526913237782027277997967599730027757532997142190244653974087467523947921764986364733756829959330426764273336248111689119472527520192358411322624643558484703889083268635809799380720459612987894204605230480906039529905615731952937568635712922260216123982562526304115127076665994559288019734004536244763686015613151675798803065287565299470560766366959112689061674488059163363630241830878803959289425485546424275788337316871849988411542117969774859881150770626152974616602816208696549605404914156880812720320274974944931063849196169892857142821393677910361173975916581474936192666072665049251033131498961500055340339691159562017404243346993671786963190906084995448832055738648706605077608245997394829641566678436603201525767972143257376627011064658005216755662303819927577182059708543190702378148584280671054318211505606187490998153842262030660130665617675604872532807901820211267458844163838963629972137808409469091083264360508602894773904936152664434544111775819995413036626841422606026469469646616656664765347388974196085534463369915813129314015650344775681836786332159360723969558160453717130984992032735248779093391890796619835297543052396306333884364035494103461253630306526036628151715972945181347066881702387478577342125808090828096869496166106094790899484427175082415440988639425834390385337165590138431157673526286106016792317210649307227967545358504831453714514142757456603089245000954080666719594534565942024805833587314364804299352773109013959790752658225663303961991444054308446060827141606144450914664351241663925649492030066054162045316823154358703584695862209289982130339071414536175833430271209510759589438260397558597548412855427675502531855478174753667047648993185478958353686466860327032329600385334649281168373688701576642770157367306887137483181593215585572831251299721198879769652012728814522030320337789743659707348614621553225121924664663769319770513457753253771935624909373115324374599964871192045533828947942195931827314826439579740123303908594264162174140260483588222610689584261095255436218649931110527744072514805841110503599669284625889863743112048200330674396177724024248227157419912515881968169483690571635376339143718819275366675723435406088300066486821809862962901439061767994814334662632697898826791716769430860574540440209846160726585312066582682011323980980845430081608630323326059074138189656558582891358813441100094476627120490363290166963373770366010923436746412367434172102629850237889294143694733371778439337406436852298807166445329773500002852413351734091755346528292345138296344635886073953752055830332885351825283255720500020431846007154485763214112483796850399050615988032654842805415750105028523339215426697081826873634643000484465703254238247217150320704247830659985777924747234042241118645356125129548893179588647239219447164311369713459022754996125057163203421708687044549665399061094428815188087248895263244838759279596039329315554281458229093856888557514434190353691193492424528205944445380374363035679957311712871854863162181107931812944304789194305510229665819790957334104962986321954505185780121670313534338225402585220391057257889354043992488200845471957403046040168736277474701504545795309611451809219122345411000022872703633287924522465758214770501666761005809510910571784084455964479569239041308199890565412208160851119412369439782261764993880925070500058820343218614589641450334175331326339867909754353298081437773149219843261342436403854778912506334084863960167255017113188386456083053565406049012805023375297008754272039540805417210569039603342853180780535812869533581883426923478715344481530987417445119926732667978740118718097780468837330026078633453365755247664372345839183551234800482977612158753319923332720469765611774038982030276989016788057367483291257916184299098070761112541013688350324814422316798795086058675936633851771028753087175616827011107929667729402369712302943433660199190591810383116156020617268561393278316809203761417984163915400980796631657038018857758116023866894088347281254916775021786515356270057086836783614683930683213332942095020669565767747505890221464145770319804628369915331869432014646174631556027529393128176156433605701811185527910189728418290301499051241330302817200093250267360842472863871841608148735453668596722686642656145646080527709789238542271354000826553240850735449332051418044442901845594356401135981779059096269167204164933835075191414181190538588979291523148695576015971910296087875087949286797177599915687781126162385071420976977895879513033800065296240762808011485975836150360712776664742531497096592223871984818057885225144534995443266950791505925906085165277580558418432831031222102836247200554666842601543408398834869370987699230712817948759077665659192583502756398851077680831953643825235658258962428592350097723738057283871967869852888608859710785806483064066978328670773379583575466027324152927402137318280219075741325550882861977366675208721334656535514950751418328069475627680650050632280961401700641925267044501521613698839233639674125935513574850295873678162143312088184896717882353528223997190563657329857303366255946425679187406157335092887742340420600820217151919555618455478704088339405012437366446790689825529307399800046447466531968400093381259590072823300115561342853001126957144340293367317778248844103693202172227764162279807319821681494868995733625517093138706473413893153836526495205165759844340050952741511052613297343142553359167007842073706170662062490792023985892456674962735400063270134524582588939522239283612651442833468671983171439751029408696907332971373934949127030069455620840815226272118275669168072447996289378611459642800781089517930320963555829511891528882194838403093856514709426887983591279759292311207865475450690083524834701224408133670453173816558960577917117969302739282311510441495892358055680973230617830440761416692933376043059566492867947735533619909756603481903910756511580977041190394115311284709579972653774108564028726604855013211334249820762683257316947674672107973611977632392300188653134311272665466475347227904250496473401055955100369408626046729829033772360582381164750623819494895049157672762309049204134814880463102250112196440064816530847773259853124894390716622903137223431268389735865593590021442628881359278223374255093028269817913411788939307062903012790882614561563955799979201025134162781235813831941043188882730407239357790141623668551483561444524239570577363363490082374550434610545697166950498869386719803516448114802600701576131666461209687521914598022695927648708970453896642245302486308843450284218816554444105419413240219799075427790996092775358520180721676293713518777285644136263310769419197233371202220001267136609820930531648137748781473112389127703226935585434404118404557195452812581210166702871659789930887559674265510845137387729988888156237292756287829779258367602675469093835711781269761901545003874750896278424698641265801464423703499129783770793894781553572682044527504676913046615987798416378478397241368035467864886139698416773080049536717519342749015023767914337200525633645468209003755761494278168426224917107033333720530377999245673301144092906745416704299935031361531215707192376183883670980303507858569113271702767094153949439147071662299210086711041808870978243924671195462123319467578593694495358839742432024352561387067419583669584150300562561275215247360635651482352273325413898331876568407760354855909276149389769779228550675058235333486877133459997376899068662437112347550489555809794515063615090919212474078157380831272130316386945442215918921388346176926091671559008909082402496896174565784856150935804989345494221250654015270355560199939833239600578902147075884844516318668145150213858464305891766505277473336949798327713672208818478785367330175894046243386487537481277303302468151635825172205810589558682051352645180395292573831165831593123135383241247293703924354914597142728967771410606305405817261566804157273045450546650506381890226661735088953793619954870957448672636341396133144539276685272271560125298804611249114305122774977191591349023243679601739625325986745078397894425285197844458613078481415893048191100486551296307068731055507360154932355276352946732936673633541184464963825109985182065561898049154375154205973093594214743660018194972538783001863902527786862002689993087315978741201905517396396171684521634933287352775729847832416418947016870193141382231550130208386290272227231341473386674098798578771804262785245969247515033081583381473707283743338684803334164080197482177421629569495968604772348070268001910590462115169821046008745225133458025615106269968683011040385960161196503020761595005173311912146199518718194172530518954272232767562882515541445879102160669591748521793551470697028239058061784554647526809898165211610818324377975767133110496139908526789208628522719623410484346214945023652699093670749268882223008878164200251122209128651818628438828539551596926349229099118856118533458385904250575684500981334273271622011546543193817266130483258086511430186592832609162634148635189322429644615543425503727643496447505554301029292606330696037303006969092246711124050509336910039147711932895323172879096063563508343433025192021459751753327320692722225760695986903580962467916508909139405451654412976293603429274531709787944198555007986131011321976899016761697224090119672358798326275112803163098557136498431443823547416299759178663331569874161164827275120609056190350167738146289324393832745216325782418773985424644144634108628448463022933752480174608703602341492707499669499565247407030304262877678501717695436250203623519393439295047920318417462022759585699763754692447677809234313186248694752392380721423385314170543951551811825134307680654988085859023100120501233781724628785724190955674241980020312095234445043503074235119328806510032379100501798408982561965582880288728277875923065024401542165421052700822149896348101572037782729365112018005717834579911700457839621275536011225166407138254688352096938606935669512970703206832834305742379797117097433596527521835695426363032450683526749251321909200288656057764475726658851515237397286732367654644059533373871419288213707890070846159580075211070583258002076195143390223117832714742145258942586529649419860527594250280342331784693514260832763469682203301395717320925690681538807742926186029224863617569646974039182069389508069284391563550699262562007662332458736152956561111467540802801083827738137768892483272124749783717301689235526241855705491674445544415836939176228771149953823585500622439233634253857718826311503971171898926359046592914889446193084072650577941183601697083036439884815311971425657754922575752350550725252082324357159563134977877387101041913326311013699842390213859301540206934704888731467513975805793339684765478101144125696136787804041472077232291186105322654297456670424469109311561758781356594112745102779030329679180350535782064267470050914115712588762874043268907856400898977245177215274440127326429391754197814992440910920639966944425853066343188964088505271053868421780044852978890683050309170729306125432325082369584326813597673114708630220988789372410539023385823073382466991278046939350880675188690391195701848968708202474379163278344936280377025745614828815127049983766764863596817148133563754589937688165922206242862131273124027139647990669424254880719753589980538734865619676206095749971083256526215278289060403110166325550233403440746246557066597542545311758752083105064566476604155669958371017635478187081277734974822312057178412093924142650680364632804999357236155652676121360425070303776224277390175703826597519005497557813046910216086699188096203285378428254027519197072861240090119691936787323982438938984744351142793964967833262099735777726868700652178882673027997415910761933391650162349893861229564281176472095516377993696755058238974965368714361788361660530151500391276427676537774092714438892500328779675736223580742017945654181226916349562441015432274130992347030028462417737701442669361512187468709463815524992334516639395490068801661175088549990360557242498333729093072498443263982858176442952592666871238305746665766069116368538025547009725544970596332133999382653537582784031606921397544360429808690222878319687681292816586407206511595438563343650252764388425921485100797958462783454198473343975377191110157237561357441685197299893848202562420261096522707412056897153363447416299547061015723171092320367565266821022429520408778329811512520911750294574883286378741236835607744620572025665366105996147818449482830268602294180351033914559953537570384622578391475717088351361654734481018281931299539811246353581726109424851413005705647839314060805468960161416168161463982342523787798130352779436433782079906844982678163109941286823486115639953320623296299183058082056085965460061165448868255638477912410506018698688012573871668704772088412897827590831490607308675784511984662120372510685658452435686833282784697515737664567467095718918191717769662571022451357926255969723867586282939102663835467027169650517317226374804607289143323077182462047496736049142527141602140626021849689454115257619505337363009197446769501855937591102692528830184273805774166944700630094555963336416625980659992902821371084460133072134191387997342896559893622814667787706272761840958899025067717234582303844205627508138680470450438346227526473686070175424485111879340044063923714188321476442446353963380228431204356653304491691840999858802327372507125507595330192461110522127899932249628716565884716048840620499769819683453437409033139719646490229122637128364246318186843891515780149992089744637335929877975534270728717038072667572273085635535141622367022112656003448976674486877765415074404193897925218776760433193969396777257980150752396741913454519088803155426398046031873459002844438688483552325916578398393343634903577842572020732144003390153354548467594452708963077057166673541496147453896179672150727167605652904471793642104749115986349508247335427535928810056688849810500192653332675558210275286729375747733847029584662793310238152541962215846938084596232494234714060592847434708557484658971353369384468035735905774819938591577334174413165529161471178513523688757833303876483200829292890047435153609197154785274294895930516844210477078432690146658028957968336299414756247345000892767902366985667050985131322218687173309480762371134503174260872458028734089540876893462713724640288916501428830760431047207291469208207679174340713392900176221796531181064206517946295343918957451422841333789114397955531943915509935583972804142110233377767224472344860569617094551116228449795760332600941281829323546458590311471976937274620282984732898259945930450819617542612863529299710385139750079448356290297737908592418375982787205930565870360508018485115542066569297380383363407493978582562316391802880382505430775580923735351443272539111681700501302111670209204988999149860615399365789414710162991124215127891454836519521707959046745975077461967583601726163841936977562155637118971451870781821094549732267873168887164855826204121640305899563759292117265117614488354564345979576098781573720199792869724709287943675334510217492332501163862539730618409722750034888389465365463893134639588104506405121553276682000362022338604672864044295262977704747992670125468587444533891489428915818199861908984070861090632047838739935411384544990757784885387981247719238132182483850826153754573699206200565663438792517411370220361320669611143133317764628051576740059797713958397355256266536294651955104509127171600080775417662228881203506043957305376387975933374403590837351461866065825419516061172982655932273705279553679909588952783415331837007415031922356923448758577231808421903463150156747526623349607522670810631571075504207647524141424377576494842498736542906575811610414429599749860069413044614080470431343317214254110945482401671911144963587582937183896668715108593997478869478785251212416631595398639633307236997846327947466112617822671365813659756154607518007519207864489387434988505285792340413881305096421628774409924803637919916635734579783946133194491203368600545840552674353225180180589253499791223979881446680710408418385331621782183913789432647636365906753208047562126728345936343180302694126593147622448626899089008879894560742020879592303647007301768768269563276739031669387358679258414433460774765678477970174156683762020677319666014127489818255902131017808828033304620849824934783970370508477622921152702121346459377882496264058386178268828353936655909088528352445666802560075588651524053896826923809520703569631545159370821922638363358612480061792349933287067106415136586783029151984907500811696331498541377213723230340134366381397957328901571664700211870108555498411913405628686852202956102958977157430240891904570957744748341419560825510786015068995923222188124662976799592158936297178457890903851184563267714980626322729634364931879244626317858564396108820131990087205316296450705294534690150504132820271333997194944591690327476871343306715539337475471522632224714325877145777977595838657071673330772772779360885082326752874096555003454827688641818384694637971768271727608212087892664697430185902799357989715288590804147391008575959497674327941625911127030313430943268543769874140410580907437492888290828807867170951036469805345234819310429500419815722413774840299449810329299120538082693732388623801918170044526259655286334451498113697362577949959805108292609125423124733976459868947304388474702769845769038447360902609244576873326730631923485979371692243034938687725258866700429710755371666395353834196094157485903199343790926760479788858506643859224318072663458924757857730760851867876117856600457541818614788148855378277870069932603069862745667475032041242610107812973593815490759310673675507654482848093826345790387704852360467997526146210421972244165945771307477268199676445131221664720630496186536905840411181823873019201369626063569750210132164794005197063061449370812422996340506074734168160141258221810453509280769056623135780221471161501798476098746340166622123184461750868409409374811739284165983736713403527078349886883390076432306293528732562630485720054044473252176936203787026382964802588071922152633555653834457824877993125866985093980118598408351639004833969675393133314964321650593234538649589443649052363449277114947641192982243096838995491356220021339644682869644542604717809244736780326307168573642380436579304953115250920809110877095122581675614751825737182942708602023802137827239781903403374615081926986328866148448217945071767446272211723238063637826932982395402969242110714818420007882397154512588483084369091413207178600347933312860774085274720852878395718718608760010590422242913215861285452672901391113315827006147946859756230224103073974843560941336499245017591483992121783166593168917116810285510090768466089406913557881330045103096250927486819823591090417578889828840920723344655804039118832316516219923425195013163575639756600876832769515950906640678679093279501193380394542198061787776803834128153505952618109676834504380627670447529386594971036951758061503298068532915100470342304687801828938507067812542564611265868983417712305772069482594887940051810403852035996944640489697432036249035317928557501765219718710647391237251275079268210021949874502369496483451184985920461376897539324248064266328849405222689076333930991329685185385956339674877860565345334468867118865141815246528367681635324854904977333834438762286511630524558133435609963469242441382510033803935083341446207721612581615625590318369397606721658809476430326565049788211332962651254240849841368405868649963367445891927681639643531276220588355842162529029285403916651661635840640624949341595532060054074399289696219184198546280353165980661220726141555803315819743006185343250251268344721673035520603460293610541489532493269235515441190769430069538494038482340817075854017872911389724743744349040479487972620331183575547121593406896856396476466884689530716825703203341924422710426747093423529684467260820113916269217447297641113693146891330478005048382537015751885327508518025296628225403180636474810389770181931907312738144518967710850781935901585254957643452803792528803608783668631148079174748116000545514149593279243904979588328052909558679534604229781696170736920241866382628522719391288379665528081713967361158571248564091432561591117040905932329891171298600231741980738559176499944036939309451835704805743608262352796682399394493983286716439139481218406136373550346137697898646305528770723885729847559150972569072309587050197509181463200705548105691143450025392944580317386496257164784838285115900370133465564074953671393237733943514747721538001735732409856240264385168467113650613843941008204357937304139050849071077029729091994831730355143656277707175646483826371415035516969678013573589159071747444662530674873917827374740951528216476239716971112162554364408361928717224031896749975681869237177446146549492838407088917113482336394501655713654145578614451535446175319844094735381905892077702351786552765663716718118451812373365980943907536338917258883974951627116511557699172708655393803885116120614420784222773424680241547256516729128886459147509644488851740706873600988571317118077574606342483514514428796419709895237596273769958355975425653669622866979726866544864314666124375529560462844450245816424446807606116868642169364407204231480413503839269253280128574771241382337917759717274746790214498237170864859109203040049166720912453488641526245621711626901374948732946727051723233715831662258718532441093939528474656692987310394081863136318550738081928583354846859297670472435794666443822423481154653284049499957529820895316959893945685214056799759553493379634353277293254389658454199393844593062957777536500392806313274419795508891443624640656281608402105549579981813785990610084500769499212925834920684420717083355497710152972819870159765498054394934801426316953685048756658559416977914226252121953928807381905820780828865818876696887376317517316439295359127472601995794808816929912576797097450927669768116364003241205614033039098549991203637395443526656014182365771390112393471759273057331074403526931890417939567226676993561541928046055931156517807584529443560589877555791845895208746437467944062589319217923763664927141821702051237997916869077726489237191452817021042192090206138554380576969192022720109661071655853232213535675745138810395545158394032146623277222307564175759831808083916032749172373263211939457570125118997911271570185984207480660421998441755597658150107145702817824010146695579515140222085667363983743403654664048532816504548860001147014176980196770863764333858788408515795346521350544047398487781267891906619900744842410910339051983048213481127142834560353952710965183592162547562847955449334415941091596273316727895322461219911014800651066124705492162162756458532938507969705387888682983783551409053385621434285448110174091884106173872928809669470571639026815262050692892466377636413324302005531566846208455827145835367394854107133132240326720701776856757291086100625984054356843628913417976684303810150754864222971572509721263803906983363913430786589958239902281315954466821956254832425189341282004506644882933308631804777447949021238086706586089995663966071648905794198775170122952454743719249676807450231573349500409212921650147326567974989420340336412693866138777280117610675800574053749857475893016117157956788626347676205415675675994095159482800223504394368169300520533345471603057655702113927995519806019157665064217811910783927006155609839678900353624502653306167065010610851284893062987830321497526771705927092232460354111038785300754871302245257603807190822785961218689191354662485602904467877186143763215308895412333210335767239032319908184489693117058568073178791997271620647992709947780162354517536299989394019146855088939729910595017858103920354763740017228505096502672237277827898415518240876562585686198542539634194298609124754108504937227310566370099714136119735740634274521295401362280300262275208828086853705001760153056503815802990081959262060501565454875634987108786935572474652158310550628065500610788632644958008672246573251563023576860429320858700659459315570761447500729658689119286974254764296353047289417124085163680653093695329764450343873599654140140269360245606529227453181389306411351121600118281443416380302223627333969494651414344544580852891903280276059677372324662828962712640784449172087761086836945082872295341971536453116537520907761509977569595463261378323073975350053926629333797024865647116823966386174465350107902558318497984218153262619970489433302583162775336800560414946949365930614143608609618683842904928511381018236448226922153308212970957355570773599641108661817714118630032340548023390634066676303607194645314635144361767510173874713112139553550899375832809788644226719382556712546559948097107514321774309100829570511516400364454191614269915663426973741039956288452049248795511033905008021056079778562292860466328644734927208361171325737955115889171812990353512560642986352997959681096563797902151065581139700525333298665251384618268002786767709350370235323673881035956412611683783755370925000433581854736598768960922792380084871348032389874647013084163904189205702514333865240641900121282021215690010086021630780597001346187415232331598614633198212815857861318863556311510270290464474135861897957727535214284174331928652499148042121889307209773357316047293023197827505867396404810587183319198301785722395423847127659830498051341964959489727846617779973620072677929545468293849009643672543264693340936660187418663838806577036477533964237890864674862887476691534284402392969877815506513173243812511308861072426045300886117988969337104793864000502489644457956874191895847946173621285532065952498823475434390081395936638455049009090540477162926323291739011899955160743895097922084540870784666416890185094068021585868987732655476792242173435188395211042613031578694752597585889944901073101706139961844856435128651435697384025332712627957700163013987427025283103636768264206185103937229374406380304002162182520537401591002544790209783408128741923605827693273090189516266724129012458680509643263159294932843843830530039440829144024599304331397557890940881266549317953502027408923126662291852079022523909828472595646020204397001677453480333316108999669082581952888663587845057173731061893027308097422814979609922537335978467174920935840438702769922989292724046161037128544073592869664333365727366434390693426905129197025022212202664298290688340270413941127801722241859325725991487481352202747942413546876247847083086162043774828713285015501592420012226850364504481151147118648888622515575082557647814916320708452369470065171666711336042290067918991680124001886354161487660952368530627954539957488118790067345565169907940713156870819571070253229141669671208493818060011217297664299957765742651213925114667863921889204014477162642031358140140697771705797504481185404627749865769025174033564742682500884726093385597631401554566423208465858878728023047740420758508441449668882059010693479075998133323415495500505628517399164532882042627992697956851470884750128000556331120921746902617438898776537795870514405071750420288268432160341700379979408573221166455392754423804338909040919527400811828023796820090019547407800523105882493610068923768896759417517006022618275357157573325780998143685390477572081942994144342882322861713748248850664214912577762086283003842787601487510893554931413196936504173505633663406112070717641471744671209999610238584216522317774035052619651981202253141768547606166464963946127568553920676000023998485692151492169117335608371744856067275091891989403639261041884732036615186281345340177498650420644290133437526966543609670025257842361844585574233935034119112719698352264084352579644995339435773622489538181167059203104599004636587348450635584269077040642711229477778674151633973966227273636003305968736849785363815096033688543165656049482883322802136941030302913246452631003554726075338014601484121849981275146928232562495942133214042608201123032894788613137427485711055920060503670715007410052697706351590743457001548694680959335025100366681430827632062751546197757946235619959727805727238910993633814199548570612701624417926189555087995002753407081058432872339105974201752230138049121509327601592285215931579304978636708978656072505858831133355638333009772316457952181211083781564185811407464333458420936553110681698893480034050333670460301615923419309504631030750522395008346866134010190969041053961095206782808112453703348794998640196866445819142633234923478444190495767019227176914685385285607702561527583979817898547422851577341595256878265692362048426575710423938414137319789438938794258147888249254476832577524138465128558565937178716631719190187195059053777786946664603211334562144210526445367877968472186682082556075447415643048683678297186737538973264922870834239216407180286463382745092390659701398914395462948062631996454980794229881178780264991011385656060195223394089447200183417855847532094753282423737877393128582787306131692436834621723161714454034681667901333418717989441243824115123310179193204602713947541853981089660641746019076767725587553739858199132419342451354758206993640496564979617022090346973817983386316332470133576754336948707761577513177477429575298204273222224151979218065685853387229932539942930604678261878406608578045795626338659182917783689960241487543490851542445232692091082305784566933231301219866651318949208784704893196222346797756705158453480344451624880330831994201604546612105909297211913375466340545345981957293384792682055514100163717362917197981440947076527197620344408636614781925813212746121335598002371458929812978664627660236071039473372789168598359858306696531085353350334110325157016729179326713689664707041308276912177300633946855464357738993744829664054831700274717989865832957756281617592861388475461452569359628687127408983439840804312546470681803985172083506071869303362053640967740615851580263577299141425065115340698045014746015427739144540673370899823716529757044828876075429035801549601929626061780997621334543617017667272080035785830182621328524908192241333352543594291578703370052158134228319621178006209818497971686530692963922196327036633158168875408689452078285333729083390462473605676937684234086723419973434564394295526951120377841765933497497690100878706861305579338429437973660858983451991179064141125774594972897393988622412659185657162465635772976756061111588984276764779740730856767904729828448937747851659705808539773837863624368742199819785061334198877106841177443377290089463455298444267760025036143522147385359632605397330615116093889472932246943975877855256882182169306643421967148780144309988546237418601117172946874934701702897598059555871115921684539391820975315419700068162554603355341769813880000914543566482475747102889241465750854364874279025314217069398277940150668248415668904654704812780048010675543883407803562405092547706480694549933142711394613164199587380786736174827034341976728191287416391604601767571074399161825376186670197485119179062402814506951803765949022913941069006836326674044418726286204059779165598497427260833289290383609564695501409231765682542559825443603376237399404886464875268802031237083612598611502790803105921294708175667639659589042711319466225768557753802045653181631997703238875169475033668063539660408801687176556280269162587685239336419362087178972648650260863927229164773429654705074581281310299531087501806921148664550069356021037656629676508026276048708061707032777079053517093531638321611642101838038841147835984125450934538381242132073015508970509945807667019593821124521190488425600208151308185484132878940257316796132974571945692771550149023495590081173221527602005062236828899073180835236941284909344395134051172022119775975688902324769325810137916569518681003188136363208538636297145358042240721973639767627107594879377833430506254010898898141927245398022463527341133584706394944458772471330864004939367501966667471172316173161586851074094236550192734478545555961973359354523725944794088409976265909510275482724866823701854243178383311153104338941850005597963057475152328830951049844020764266397893269249967714147777263885701071927926937704360405279039904400053348239995354775613110130812273797223675959521128682854295652978781442733138751409345598578366731675053879170548689621913409566095110829616642312989937561423753249494230368013938838704835697603259692777815472267915703751566745441169472312767580298978885651127761924455646050381182446927391663250459481952393630681868648061746515532663825124582222053326415709644192131851389944789907838705417877188648098496031267624085623794393002556925125479964576145479782515881912724848401522389065147503577609290791501438111471395024847287399492687850428670297024494673173579438193491140190041943365672169589066807366700876409644117716678689274690222590695777462609789861296351634525034389835773022846060108384461262850591912267455156333879368349601923550747646539933643889898444923601382312709727000874652197244578990258509642861516462780573198593524192246886568032434948038671154956579064139121078708177592085879937052857243275950059830652671316017095449003986494862159961843354937734594294766391062557469145824561555471192596456755401346815094619363865953947941883334875594141551412605047551356157360587214891641034700163775663134161005725843956835958632832021493707123516725972439252825514182501840257009665189188044752921091999912098019243522453250223460799919827346421378951467988630019550677753696884614900388077232030939087529924633629887264941416113045329432032386997787330342872589362963247582932449598018061416062251265482053509067876505448726924338739470951926595348012112418091107842382276758903181568095277263149474733398572003747802570558098524296269324911173648971577061387967053347707701095965816199766007953682223202704982465138944432028938526189719705445036451701516035043798255289117685317531376507525138488481035965237606965676538059991870917971443778280472451317930100264538197168447497560580724217202052394734538249757094572223267671274199834649922964708560563216489125360806631483968490121102434284314600749678951887798943819044644730938552934658898931931934949688018156371797879647104349606121155251315676995521536015689013562481393322865638454386429116909388619550017353719490381564270944264389222003882839130285135819437858085220936870560199225509945813922697463304632078954543517400393809655303814704152260729585767415870361868229337236679620067012488785138670323689661063886514951659390020476928874657665186541388542556468179531986156175253657936741183728380345792362939730151375118744594090983125377027226993039361887577939377525961568066080073372932574512275201853181536581237486818363609447543542547228682061414533403499843871254706250256766284180727547063611862198066104581008299378967035760197632001878456966937992163264474523280465756734180171618847974858722631629530177983720908871683001043229785598123813110822442499216058555720182143985620658853018765437849627358902950279173923212665137755734239946171365587439127073204116621615162505103704836112156086904138793280019887129025646752221556816815846416838903721391594588528241114739723931174782926474424412930566453718347154305484517396029296077349500421823557194372211150542039408914539221158544676989267789925118427316875288913156485008541278967176181732632247485307746801320339757931490247548920097270153421852072686527544139986646766997021603033709951005751917218239105890086827487573949971087298807292779723559266768137356432343764870808350682721272557824604673231026626472216066415124929696450950981583011962250212743139823520578526494318372210238345121054175059950289140894858016178125574123130170042637394875419573698149910638948372711423322835473769285376882159857248809433601961162059517602088532301494923267258688536247568766386025444212233789422832536968813732753183919303084137155158276440954967149872905545421202534096856728384630630926147748751769834590524223485995923265974280183016893607348876814271184876571401426767167888841471489805904397766363129720787682223985617722503472903151033469612765149068805521891074181282232211232447254081399944924364865600023489309662759827028039976552211554180484828755002350046140538767880853466340832580293298561890456131921119178898462063359387621464000327524268817420407615513519799157057949420118045267339967748198980657789084774645370631262133940605234070396958258288786525414736149315266827321172555318585209347054753113702147431915659202757441141313332985438591547177394537102113110894629178102494429130372159582337549710694130548454495192037895144415215497859904873377300693576759535486620142685271571501229648224882696537718569657984078828465403000557171626136951554978199688947806848190147631973787895950294482250774617995741361573453379440557193804972745006070599904218177721276207066495500050533174134857933008091602938658930907424213966465154911303964527153860366599025055814931737825409790380193961018888291356473976251523020633603386374092361656930271516139909314785221767939323141185513094060233758757808574647853118557186116819470671773491215718840213346028211810912276172299387234465097299812789497472501759468386969767290996342490316327358417827820869775149436404299601395726579903498683531464016911726325715617812308425659461843869075813883652135689632435280603947822259635248603881025913197721024558435170793249638817148441169411114014860292780745889710591523796725643515757650475988091417632218538727931856634347229750221413701323045103664256282312209848092786846949160140601437971426229237511372427039690991052366196326445806176215265046599751386984945919304191728483555591067448866541090124535062564923818761071904020651754206799346161958585354200238034582672429019831784893343114202383443612076686481445285905409511005194903817159726834696875527081103769407301180628386919954077301753370816324680196213734066465877975659003137046664022713476099924765590079217330331685719366283562945851839847779648699104246425626404735287429066702510983135459981863528601735677174806136505035521796370926962401920424138706042979000208727782417300095187154400001939738617949994257371488452312321057863120313275529135818050672321508876059568228018312878544366748553961442583653052379096794111719061658653734811377587990657821059694997476321082678187128474531220027890375543400089618866738150200304244296472291408811743197783003195394167397654779126623624888912537680402117893445780690020820505520300299507501208234871411570171238292028932561947660115776925906221917028604706183545230255039386426315405034915522277106052252729565237016794640329718618012427621822797998546493922010974585304217950163289967930813210376687489552574343991503753271690626552187553693896188399640104591282339375581376491041972261803283112854083177630155866690002109152455421510077219613833335414312668790128166542615412855785415991659785045768858080161946782143971540136161277627418010056498855677133036894187745407121351575693782945402461577478607386187508362981133265035439524720316796029334168052897859373984211670526955077161467702360295920004462922586433214554829493588808030575200729434713524521728913134521288397292249588243550060742415146798823728261183198661177469298172183407746152389111750426306366633516001977557383185098821129418143451639670844439639745658006024001516985932293814664514724940327968776700195591168448995811117740327182074187625212968052255926828110293872281046791700162802450642199292906644649882649087816273224841390481743388916593284066604504430660378233219250281288218728944222392692237431635763574706645228303798298359208176639132311825783011677214519866750744561062714742185385481380486278034646145725353375218499482402315704905161883363638042551300183388537695713155279171868372972585736424505862159369468101198299546209647402174242472575026787078493314188598314810463882993287313945874807145623119844746303342341967646360635840510343600646245498953545739279200050470725572429085569959942671679087870026669149150812494838441255141610942495289786726861078816965795982822057456991631027134376958973672729531828131288377076163777116012698699458025263323952230630994881746425491851747343384724751414842288446915006522416922967326518941427462054485036726697427069782611849005275662333209521091832271861400091275628095097442949454879877343975963844480075419764077365565415810134061409055824523140119055019372866592423466774081388859845066728478466665021416476480738214954673765642836082424009521760621018159518003320989230913562311927552213377466225031679963727439730195881112295004603655315284013171646783575151407204191798669876537824319624427251713515973244841776292515733258669687255535464616649166109947755691988213833128899917182225172154989003712315887485788830453820571283700537463233411960140034875587674680474775384387486348472426727994330125004409855604719632344887642085738302327812315676799318846542208954917390213755200471403755497152333990217412631604166791873004504376661654505210969075137942653447931887156469188704250344302048128639529953616615046723613383611200974577753751240146428439090318610005306642846782001976818325408872539571492467186156880203190106273991427341201545552000793621585721615563661102969453567407070588630684303728418917221739347514267534693119270164347218320429941551725317331502800893542186084951826783223258354712706343636775038435892991730645247495474204044749839438209775478658798787595823007815678140949876732179519978286798326676449639734734095956578060058288756238124929085475523278549189318060451052108905284529899649747007899205994954178434024496315947827076783086937843975278998679368591922216852564851334518773800708812860753799063737333086184111910975189127382085167975719467929528050550180611457362743231657329661122654051423959114371798543445557961340868036636019193973343389785992001928818964003796663444082950915254959184709075659014844575886203449795753201458827293979066030327759096346326596538174693025049567551466286827301211327863938401930446474867766857064797232757944057746442704633196597866662247451496787567920149767350593647161617196952622130204766089591622234866480545824634297479117235628192962527302818732787453290360161056534109562426386373972843635647086829065399343485906880721949087505570307475554434204573667238796621868256394304567456130249655775830924450672678705184018316173311585338646888473812965734905236412728734196866316995886419713108343008672689342383973488152938801511291525380932300938197523723431701958437009137712504008216577238698953017710501518340344585431208464719049840769894661401281148799551101786622199548480940171573523271325601576724872191144062215654113398145353465736756775159589044248191742225190556934629812474389038628079975605864776981594024727888779627663963151362803917025595639961380606508221076871189650525993678518405328892921429460647955876407759114059815336588416687994270560170394504261740723393324946531670802614576261228757872826824986679786498156040619597153834294183129405541480555568998948934623395433571792483776163146733631841535139299938838148897100821848953149130241293064295852027215673342693227810697763045860510101014741741845969107145756464666063874260172999401166605303607464696510463731423776967310192750730827292416431275975535819713440480470325237858034914847331039459001543804938628072845374998257202506068255242705064302394544074531185275165208262555685203895632825813803649871612648752937200029475555584694322889108623269618745581575308580241874282919861994455731106572405448352589502386262223570210929085979003689102665794241882758000897346619299593949136809766477133562568133395986878065409819637918911057596686704203575485055342815495242304967149899037199358055535860908142358680558297089113616431135568877033536013897366330386486870392072812350369751854525944640770563788189373523577627729153340898726851789695325979044224316465712034322474099598023277078841767191784767011713585943441344849583263246636499784899721559151342693236074859353110383680357947341628483989800030851707880640502298514612792455573210542683692797262282592667801200880729679188695687742565992925480408565864328479426667307142858649511916405202223483270599365051543322000621107990229094126232891936362226884278288834993087540442516067276534068558944664460657056059908770317825188471080273829347292214697054701979612491788091232095273739892612467203989945989075043912679601909109708685380263652089740878191383492808714556656339465712476867237796297906020949105605090233038396920411557992627195287093016854556552284782304826201871781847844538481658067422642935681080510696961736009725482219854123805298074547286569297020022197555391531296972613341557217226450889466466797271563304104009853465642542937393378861009149081237213005105461407260930566321864692828166694103400138737812355281296332931388936525579049626931363481168549714041961048883967494361512760968868997059633324553434082737636495506674369324198502205648700239619767460119588965460603444083728975798140496582376991667266598997807627424740730033136564163512019565694097474390104628616490812844948074145407083393709833166825999018394941394589686832472807260391755752298665266273942562514046384221148180025360313873903017247095713653772289517928564317764449304179309585647545195849153969829007917750703936787511380022497936476495630451177298031559473962684817698441904137147015603878358084391207875611366364464074512916987677372434093622054026406464300023640513366368798064312463090228730361234272431092888541142654284833505790258278143759920842784230442995380237258235638693679765380280691207425449512224649915323321662573899608368679649798693778243072306165313244731977064135280351104100869526762116980092573243898364371405369481905170509437094142465355611409736792307821966496102620260994170550541924075305715805546143442663455739760810493470739393752649477025222921770113679536585347757740453196263376329597651165229098216072572498468369202720529285220308139594302488637381455409700863538161348581346309996134721894316303546039670723148285185548824235744157610779493358260436934444461074319795346428666151786823926583374042367865512546644482382512610435490229741033895256942796795984344158813009050782032173908617818968605811347973462348683931194277974389908397295090337383111687275644464852951721855646447234842849270732243932711001933695129144455425744816371883931002097709230433659398282189694480398031168346442430003625033501188460991464122061612102123479022241805459168067165564562943531732963701609307080568476370835051607174709489804123744430194425361426100326607820876151564700590826269636899163458594795087393728200926437645028475535039896568056840490178759258187042289256101062424650759107086252912253054647872345671474366789563640972314925225700785728314780802266067631298856395769605787016325821499384372177291698039782193961210919214351925944232900900082651392730257709564970373214901553644491631154411114940788746074443128389584306262266771880536238000038171952527101408604401192037901039130422599037947854195792012456013932626488361606909626881167114797194896211056695174716964398078897104518692079952268072054629539838974733822900803343260241835353966098798238340841625939773980143761095433959084591735403040697275960862582066847334107206244717341343764895653408769143890109192395685958166092847426046542638114218661880236836719755771018597050103297843854937396546295361184587194803969512909174922139293078808683689437844906511105989002068304028729851710568988316098193328711061100574987085346087670858481133055484583118476301237699758560657626620078601712859833884316544201439059289339039656899447112217328800434752014990707645710207997274642032910284587985285338244489003246148830600938021535070953071714126282148254072237687815862138912212551307285181138559932801561193489662704329159582593439339010362628352213902335073276961384825852146072581356986541810537603101572768671150691946906979391391041970733655023543632116541222730449390984567027532678684889598321091540576319662475576665986341113164141745690525883865856330790998897772815680412626160404991994675495726220856623676556087469816926925128090960405372875126797270258161911110790417189492670219778737458405300505516674363478165931663198960505843783474020462475402278015997336472304510529119373304045986954015873160156342979739381989287342472323934764619951689754315768029873562502112602280691831354846171193663209611494454506583746397686742813936394360150333830141979711138877390124362692458354822901277104301700910596047294698881554285086162512356949591165510141294487312644206800626924982684764470624767787590418201183320928097291514409950733456092009147947419189481693467194300247459569003875420447605936472150109193489257093074150082962270495330418424887722518251530211597380039136204621889811632587831442470025744843224900389267644428084434199666218421998259764143556405007871862803917764566404627394991405871122552889063986046349759950350944841812464552276727384425211762228891512552807728991909004882692748842810312079270917539514369275972814040128032498610156417187354460538753909833751998393275006596166414842444849413153727449227994165368388442896041201912367774122253627682749959965038568892737276994498194025152167409071190949572654424875383631183869658527097261208591850662705688623947768012422424388474283233715183077877872523876640044558877158717897560359351830585339854243286144052993953180138647623664803235827593431179802890270978448727996994168691771456649524848840957791922676873667960873475506123250825324874206361401235985766359522767774398883231003540716593278136042980520100913377598499590492585047642534696312307896117454752869197835774203970221958067074036782203514158073577206935833549164454210258192188278639138961356818628615054938941811131822957339171199456196546307098450075511077606735506306716863163375916384960792682568827152548121342902927263623233689506111424578593933847047556241851534901273183744792931938705871716030715756666662188482973630774843563145488288608958706631249715511355022392642923344655920152061756469073096783773942534569609303078001225449861294392948383053111414840475714127313763470982337119241557252387887652761445659133754832320180572374684463243062065721475866399870741251037399722800430709197418115013482991036827805660794987621345565397400163996369302440383886136947789250798016851851657160719341131080431042712787622930708054626674908951675270023905154112721728090599853912875785876807067268608544802744829679238937906338919703206119861036209194390166242083192617082695830914661798014516431054398055616265637233695195928926265549705154187287707496427891038064260124424040552622137507834897065486832211123146909221988384659931772529020141055327226554418325463273693309070560841510805896072006039380817196961735076685899839465667353302823920678580202238695095474035169340479233926064419737535297230222512951660518317069966909752026924520010851801411822486117286323094432533393080363352267166056889627200867278890338267652573364081466690073425096717536237497574840068112800640518887618791210502247816860737539570085867634434079504630083798176503116155780432742189670550334368685196838451358646258611359126018074415676864756776254580460099920661339845307216987200984288424592816626343917034737606622993029678372292912902952023374195333928631743684186473558515404040043711547980703569305966707093053560807806183670444228330260063473357467604051943246222694294583659456202756651177106828793206143677229112718690274404371577988810930417076402323972085423904775591455554813496981414798251429302057643709307590251320646924758994838620896634763417895998634778389648550928147963119228798445429351512885464676696931031961662794376540429673292729604169069153284910480529229958155949074393878937202073844682938033714810889238437388491974965121753057923239046295234684445357526355294504421918781679229642204494359937624413648950799097857075539973336531676889090283785175421711757691188691189414963303804075423639691050873948375791732113182687156877109751857293927218717105120604744191221063014880328668692012629982504514507597952466976957690764750330745920220726907403412414728829406416903118680663324701789408968867595472608675915733645714847268078475665831202718192768237787185670187578873904676754757000546488038563592141587006940526864968123119416919706311969721664214302717206257889320429183933481501547071344774852106918266131292830420970550526043023651405781488996369310712274785943882389242637243625994755160062456131436422072628951165647950697226645118459802736162265900200812999602147828266321279187115707867708501051698351105743231164480887763525744495029641787921058240486190001095137888276409422105304704549169743553067158577782788957736428771347020970389015310560297091080511765160586740500918408043874819022346396877088522775537555316971154310057354985066813907666753749730801359131958307636133049951060902980495006381655980698591858625776441053739266788125040346505764447743308696306082541540386092884102996640457860435110670470491252657139193942255371726500702161480420442280217920366449368772580158416505125348982030634405526961479539654172926030904835536420196309735601274369786019305276373240771791468436704729546400628787889992479474002609355085321075234375404437976698914206740631722436865993000045807860902603677876706324846549791156071589418132250706210211017330408619254466125293535841981385481821052459300902226348596972498002804131636366803430062414881031102135582447383363222366847613553440927833656550309900607282584648455204805387328705429376149048079872760860467116490323990300600898246877683246387235064848889508631936824979373052510614430273967805139297662391531592165683847607434680684570195191894035045757232766306301492810250244981407651488258250659196208348857774126700604435844011848085262676431027989711134078118714066306538514140211797714543637823495234447106813891210589709526671123610736968255196342192591702403063097417480734833540835775834917239136049235689550280534951899330699646258470222545733375616338025012038313283671791861130776428540779525867517699130663850394539288647495729219227480997499944144643507494714115593911899450207457593506980329430394668774053543106898911851451751542059409635907085578563586235156872259322772663098269255158298819335928542813186036104663382172593259412817869204465936995418140834610265531640306812931086633134684311671206278154664775326645770058270779761713464256059588611720342916045258075403620441832659495417124554218734824355686698979341364686893115908794183216697466872057772523526645261687316497830188586854026908327317969554529137535663121044450090220102472843952155434019435102789325579231159304056910753549103798895329472644835872343931878173588574096790866802628058256059025372061692615245991147846108927535396859883113621923941069214346196558866255583564158438523791471527589133576916271143723908686295234861168906132034524381575310281824798905532616768051791195694805825364023346921369564455628493261843049937606857871321721612411793307353269157515129710561013724435649428563505224194457258805191893908967608497022694811861494658805924640949376762952841119816790205004625854406066604007150752377548863861094677211316813548840342176395273612233235007406188856434969915389707594836746653778389665695908425957628577581715139015822762326002082616492788763582799150545784724761509038443864439823088711045549714745768309638256128800202175885699625772215210924504498986113698503258714998469363967657662889337647453683348092584094962805237953784157111120414080892616838708658452661110234765492639272946243484259588373267233253222998907064946989643055981623585532067933194398482398303139683959656929926940540704131907595464884406441086394303944537775945620053658728549221694204859175978298825686257751709648627688895440310011111712082440842871235423359523154032979837499952501563568238343463775418254259658554692964925692401328787993215528076456720391115867011740088390325784847775869324970529063476209141966336834849574788834885197171264107684452555694924617783862722444349522493054369722546986680731952118372217261477663073037887556063602987367375188127628273962036793683233957844700278453627504992955813932503263294596972436967824170423749768999620614209284957348922856929601929665037407968951637814496157140988818242345847399871294380187209440459571648499802522589765566578549337489185272825930719070029699066868025666184883512508895071726293375148062705186851307379808581248080383267005191298525255985208193363927369343807848660464378195007226295250295231505381226090162672303857573043077272019009895609199892911260301954948441663712521930575285647033576718387208536718887753803822594624042357690271280160335210648537995076177520835135356058372939126523427374821262817169825979021527194657927694185307601258458215192776525351386508220618609214504925289779885260983865843250652929983676620683661416907411696502928607379380941897326560586604856671562774016505878548449574262061138416292990710745382984751451460504216899098995829075238357061679306690754286340489998344167204468396636246695820271169367903261892599964842662504491606170030609473617021418883850552458130772290344083617522276540201419139636834849994118815799275567755429220570449033941275417580688942449123980419516800970727282586374868986198033740482022892153947226528689268973134123584322783535012429369241963071994628558426349034953378916885143099460380118039848480974592323483157820195629738494681687309792352957689836256764289145134620628934173397169508554242235195802369589125952439434265039136550645965015102106896277301588221071591941845510304142355481040483918180316400539602096204253995124125136999577324470780256515603668196227351238133295553807537637455011880506785754333125499404870196449736153121378773075605826358954708220813324015837825922350571135982530553263209449650759520224075234936110103936929383109054633293909308861748231782369531009636571663180868320583639698093993449490992218753141824658983848629656878579531839448048461237328534189073213526616894785726276568316024131278581488402880817106475986970281487477421833904613602359511589366733650710706750420619299125979765735429720887569476009031553229879234826502977058923195549786656816798095603661874871862119277464192058333141364726677737836564263636213972589239474543781090695089178103580956470544332684913650261931524888783155253374621125251215513344239532574404439331216884731096285392529265882113872459645780954684329752211021344076573369131827442035958944384838823544538411320824076171099502100128854183486800724661054387441698290307054038532571410335649568183149465172947684887903739253917978560857732098598718378964032533876241013340780519255763569051432315077503561190714796006729249737938138912809039507542032328308525452431156082858205273860581089087249990280420099965932098814339736007660941702662765928941074219836726611991446572300303041643820973031188868253338984413596487669080211406715752566181893810878744899242971432404250217430166694592506209102547308259606180563492452157654306443511856469643817950932735912867893761301034111789092460966307133873384364148917621666632055924118895317268155214352705595597041851584118008048453980637662244038522684431960818935361819648278422672452457639982497771629026881636020115745645455421558647286368661483213942127988722565661482458995260750322596835392001040593787889303400058132527628888843671825613591371967987756122341123795736772944474507873240656645468163281373908758009689962981272112998718970303651149418543474305749081921009812269880168686556792451912757168099351949771513680901394591044455379209317922706152520506925300514868219375163832539703962561518921247837127793190569767571110964635619022814136732246391499519982279429709874659778128150545215878303750029900625332359683642622963676856339385451818232971685659600658919195175633824404923524081899825433501662103530905129843874531710828953427242977837878493747732369863954830623728050257671212078509092949677909104158788949603750492119413060602200010623609822411237901149960226372850280009313797524297817914092417775203328198962551232267796204901091168819394721529794242765222767036971471089997194753600558061952387551625216287443965231556956021883607868246682103635976816688706243038723552788856867051582804308904571576271495643645283065547624885527756974230071170422511595405192586179935151711839046412631388243783931293595215219857696514877171822440450757659535898355581666334148056539514974827892663095040434563754401508846917285488671447601949450999882379081613424137413006558270466252937553740504177283791502441683269658917913865742329033462849817092354025815524856296885284300194781203788368330045042443992297130324752102703051900081974563472533227450145301295237516942582566501430647838294326127769526559192846325843721827142132442666046302500347512807359579812702263692050739056229060650128494048637833353252771388685758263165841738497879096837833831026149649993791516604967033138696923042446600359869639678241335932627498655720560408614990724509525035089133376574885451267497707849337891238930572138445600020856429997046313207738393082898253887092662461897215734513330867246293907706868853938057626791125658309024387400447388855098864942235835062830921311994378428011756339633961138335228457233894121605793963235594054517353547625531770093290287480392421401632685690866856046975826222314142206835577093093104353653418697490755033422639173684448325024541563063474710609627069199365347920712613502693163225823978660368710780055219127947386801590175073944598113755134604465191819234338287023189305056336513958971721113291292426719015731006753717631217188825028497799697856589019840043732538926698846417453144855091733200520953926191925435336613508330367318622760032965792753366764482177344217098303491322167754018316407589764914672364703346844527428858973833352233152988650050433117668330954664364477793291430134750374875257753335903409435182282407155854682818961085934152036508600415700894699702492416612647571205596035413624511222086295065603261545972337500816573571602410400829492066555969817629280063145592661223406720921956802314837179771701300384287490351971801239031730035875092613959667020854932114095613592657678293352614016126523810227559209379433011986473295417340710885149561966150364218547357518932452424269972614243544601975092163226793917109506696439620628316211472122803689421050966833970404088874508417644898575169792987194107191435307166116521204687794209367090599519303868455136096329997427182349772017829370617740309451172574767245414095244242463927147144256552259914348423567688418767086574267380762230158078609322142392166852519847138122989142254571924269880031489577532283876474471838913356026832869070657401218769586082266119463782270418453256913269253021563275233255472062336125742705342244809720401187399813907631558544890774285633695597744441968176187434035768242985174986355181010593132831786761180970456024010228596858273463708451672467805230027430432035765213936460796905673601869920387969657349143727058590411767344859075511501054249923810065669414100617769929499479723425515336585648128564821811797650633761733901999123478104188540017530828454103608041627987455593971846984551349076556706342341749889110098761394243958733349919944822694272379496595503475814506163751987515976927669293855542396309972608204556035243201211166670745738920177228863936412000023622619535470329640822512965764584825206295753785191386234600859492755400647877782043951968123429178150473967269228328504904058083345145956554099227325556888386285205690668995079566444321908031651274530660618887126834516104010552041960589376927347075619536542601646970846452171074281607716021597642816663269855568864994383343751989832740155908099799070038632461439850267389282192022042048396685399689096948975930322521972638235866231248436458550194053165281431811828673575819351494030899603081864465101449598050849046962116167471603171791702592297050422887569843759960942348088829770496782267574481031705323592597737019833134752364499927043392608681919075205218362364312542765354537470417818207486333893721533087102616053362119229983528456895685381040771729026390851392273064213695180454553798690665339139939269489801060904841653970140075219882315567450750331097055325194072005082692099471893518619140265372646576495089220274684660099808947026833733683205637404005045054544211579077558175756898493210475168666504567588622273242043839189527664990522013852039735577208099019107781593240105435941308181459753803576176988114376746008694221218817285596067658234123041023028001893298804194908576318253525880848412363769315576167547957086283415048140950987188249464981774091344393548023440239783418208296694825469449277440742210807052232991372508138196404000005036054933345802526442547887257346727828480529283528109428504020589246774307061049763772693080021847587435579080590260950851508503348181460020341599741388607720739595992119180746727912497656302195643163602679572978941264565782370766065365069559098495775349125179636954086853769184048937005536162702142294140707650739827705561968647111031139617588072521933215283633525240109618266223066316034005408461528261714809793399692296262955594003552643936166563416013205798658232289121631755556325174668256884848965010259967795775748626642835282818711126145534667272619774886211717147429690946608757822595601681027806472450939645224883266646594336338645322590335978123186424581512473631790589600394912152488972481157365667448797376323514206046286185240939452223833012699397226975826834803333385307393991779933586599490340709307661398822035402663774859846658075034452941393232647773791167858908619414389809600706263906030644528602758831685686878768532745221556950482380026266639559335123702982164120025554513344348113735211231936731631261857343784642264869066395909022255198011534275020976451324145462708418450028542193246045058751559238734436728534651179853044477684806290881066860188794845082801891357631443529161255044101281117663756576060545204267016234633278796181596623620598536311833888366624668507317255208828150880421478541915677831633073524970857998814482968530623646676431558875566840231029848228111054105904579428032110674895959542171488488635324566281179252572010832442252474279039460320886671485115999613776999586993029004854208099935805631370135428420574564491957851727917465709791820550742452836587063943844952568816299498189556881605736299683681378512458090697576254737024404897210504934441731378347808401096739277772605223916532840559966352562272497944537699881807577229541202307368968417454179033000855640464012047450157505898044246447448906884776800866497716197667565790516682335069982985963432387335085581253754818383365724127948042358342448322472712359975832647726050273071442442037753884680660122809886430047782280661185870311938568506738331412855322532840803301607899067188445113480414189851214225552001229078006472452410806883784779553638926708765608729581906415812425184767255161595674546136257385556438474808816184008877867237213060579725059719988355567896765858524321434879312961298821518339889367703129158518779295489541572122758815707580006527930082997457998424358591900536530016565741378971106916727175193386904595461701235628025575251659419020894610582258224034582665703712352193752134238823087334088595426691018868941502945130746587609041177292933131756914993679963914981255953381266049971188468893120245012426508044704951205708196627349321254698287746191662775529761705756999886680152238147852135317411354020544015904402865532159063470086731806659055849466363764946763496657754192245562262727775093994347186255886650370154609219968084948696389133243230532593305624889810078644363029956682594865328136050029289734125760509102794133953696527269719856927561742770835788448253019798695066646073538949710177821065780404066107134478573712927666111508851533535068412896815257159905803121892872027940126591372899000072999278223737701685162767697946016364718769545839169680813767703102316809970617186550644725980731941384923115232957614749963654052281096518453778371850792492449220590597793854767944221379667705310264134180902446933268648004268194177651119553808637949187406629008821160866910518029928943888734257275208906643222819749717758424014112596807892747088881475187102725080564389536884746224657233775356563797210502565717276490081639263568238072445085575548473775378827817764313567721583602323292610264676790286328227471988438850773532908983005070447593913925929662398919905418274853236922520025620203836065097411907029173164707010594489346096479596070039120790324913841032241856780065712989532885322312805890728848449742650977794242823242427646387720194537218057657319150602150696666996000516872564122876787118244629816644831153445862064671810619196123195350219761226506620948189319937596108127447057124502484446126215601868518211314702517550337446695772574774227160824440866534587089143690862147501324176954022622306509957253041796828152424685785334370229736093780434129480492821600124116263589718402878715249537900144489313994861946860760595918015888248334968619576198148352132515745026603323541476541157551079408989116442751251276513457763492620525799975443504434705747549767839212772576501187460519396322538107905647414478769536890325299611363512485330339085732473499461902187946014275235627520905944288360283157247564197152330468964147752654387136572426365881148170110059204832391290012443097727358248533028411943124829450172427329451839872476840289837617070599847259462157114824843208048839851379669119784250388334782993592741369369483739538965408430058997181609879133901082896051306444146414754283107716086332150000583954990592806986793392884851472673702734935445229995884408190423339981043875802151272009106757304355261364529720446240861970361322879430042377464605558232629570762449964938736134913555233605476985891515048814048691898134798346949651306300060886450116529101457078173496954259521683621713239669666865043211416284479790533560228422253348793843617628266271356128429777095501334036975992897256927161995903739831903168754292503385871311244477440976320549215720221589858263523495435740554080392458113738500109128880210303500114974997309023009734001161183016102100764781116807041024585355970381854886860585189869737497463890427366347696459894010977947580193929314270199991214841079573288836937109270003561340086149624192017039116124091809300257620044770817004541923775802929620266493447100810370432118832455942835909555543113000850868035738546193944322629845002779454962393395718054423970864898568558606523740036555893713308877484499905763075508357832084281612558526943456452359797296901034755831657340435710420855272112231537605257818702444534737429617622599720820581289416607830172751525766642438674062566478551762942036973792344108666013957944859967307071669669115677459463309636036496337894383173611275648718865618812126860667649455659622436607761376242794002358932714721858308375701022057042616465216266197137809666075133842090888793247077741450065341002171090877182973852837838683528545869182087731764879647979998548624615031653167750552006167726833144049125594104833366283564151440466304276094475598078054144700216175949745576477608184702863751767564667767506616801928954932564508921666458645103864950035468782656426144137243588333278216247322221101032197351976864751592733801791720202455224529665034699884367704204634795793142817689937976388607912022736100965607963911152052449391867040766257457736596375817484761051481261470078989543593819194941969820460314687808480083831742535806809877693949276512496133255978294582608620011280943487506049121407893638604292733446780995185235469101617753086212216221769290283623646029385086850903223412853569040112547787418722411628284633481639543207099407382914490278082359666752923002743185566359162116992281180470767572999993447344635395621613750987770851450080952473639366445795909632450310340020899571388208654837884181852246116988926820577827767311719860314903874843161979667887713119342297186761266128974435563646134271997818674974053873874287019847345516964730995079185433828718578910251265893070422644618184932143687905135208773356676777400526302093334668763391345425337292067977484802694143181754414435487322196688934143019100643601757754812377677312155795107887586637376936088835988201996218875754518082871190538089483859015897609779793365452014558512622943433492761090720487051609804703833721636246550139814406611733876852937706594295439873926565356153007339362416194851154535949826449231978647546260609434627261328001000522884371906314576469559759858212116833736882319390190815147343290256308272919015610085280140398612212760467334036459535031388855642867610996426570603231995521248019866803197629010811792977602820999097339653333722680723643007778547010272039386744337697617642346842519959916643380033515625447460542122271905712621693029907044818489288683816308354782084241086870091858513557777653092569854144998438980503483126127086213680700457427754896390844511513153553805729635202564202837493603499521426007503364147944117107219027158821070182755150689289171907713373531660895341565177948934960313735890641871907599449214567920917763659178095949282426300292772874487015375804783571085710077496120833022367128994807338650490058300498948511772606029810879420822402805107737646139712270506019404051005682565537382005398519637063810593651383435626797011046351229858795688443032798182519488326146947086200915047537183841987358480046759261426842133695793290454531705458340303929448735942451029033402626109951281702879278305882008170738787151150507701370692261095938992361923902159244734911860920072586824905050062923679313853792808417390167304584218125984146227643812986649925244908178757234628878294673144123049437627960981579507767404976356296964414855367946325321989885303506786641925197232090967893377032685688929283035655723560008755333985917902986877424526300910642734942054367328366948834780023120220322288542772650670406634089998296159903596821144765635516401042366861337984026673146780702942465414836795157593683005998667276546963665461495287293269679677059374476891153162582603573596581795116174914799737138132555630509037411903824251557111964103404639917825648602943635620191685797120773119791996232662658614180953768078985336033316976572153955515328617404545961360813512714212861955469653588987045293401514733354750108651424742502652436441403790887832029320398645206635022233430869353090685832081647573274317997433025156667233668494021388229417718451128979229544341026347873298067010214874375824477256043330441552664652844040020917011144434646831418756067132838608770053864835064528642664379189783120560997095630332246099622356558385127873096154014288513886347996165655213834204420372950711707235231956081351640777043521915653516693133445750823665173688883886336695264231878033288005501824787729120741577790011176286513040583557500527515325642701965670001321459298737737895397659361515572470475334455994697884442711679374649004523935458082823078059851607546669661654001913097230077707547967761801201642935532878296777879840941822594881734291596508878535785504484557172389505705266839866255188580607645588410622208138697446038925598481426493539324236845435483991439655227908912015006742737827214210129387289610900163449644713522110033597406988546360464083940265896399876098112426535703365124560800460210478898227289595766384822287898580569980405517417411659220374463872508853103300996112584517608796392157320884615761092043444055995735887215340492805817529696490763537340064703955523359809137195151157292142475367567530934819964646867262396290255875066611581060659147420388364065285157778704550455925813322908366085688521002168604885685035880920116181136820784295608017766551295098226199635690969175233126757082205968937953666217336204572203547644419256143878665032107978101362949072647493540103058416797096847484104784669638223937347119321758598002507819759043003327500990575164635836302043031050211691173450198272594696530270137789170020662380542582453465799269198301576255388644645075114989790481034493053371353606927907556198097469863367384868929725292452401107374795633597245298247527611572481046066658329652704196660274401225447279409023233882319125001182400706279943352565183001258108078324819491997741898715807221335273356261450720089351420807554637433682361383944697291684335072443420704252415348660552318300515582136562666498723836782199277520721834727760012528956148568860127936116533760839096283436630183983586091637901412280508215451196635728785821344380127260610636329783029811074465068373150499890892573470284244233783312650265704396580378559625732791059792549840414721152231541753461342336934085532100342377365632409223347914917031251680921351383154268661047873859191291869796948618243113600614686388955617570045783332074222777357406722746879878099712076168436993362465175919031363510115477889900971315794897713920321546363164943790587055137738592345626851567779934537733171639925361975190780659931021351914658381370881496724949907464619719615112469801810639387366235392514027906291208414870554333681745312195460059406438356303461386172026280215228681048857585462552436955298559081487222740560581865840597914044519421321392925185382598215105322049909925477263722860561263088468077580313184415565085964110104665642757244430950749448739499292727524244826258510909003000154387683292430039558967163201956594354014979416822580918304912897539952704686403909520326069974876272467158779106367650499967714258402555988116141112006828766557411692386027040247111660416799980573108863176877148431645070052117628583957738415453580143181294004308045340013781029889815247526221450938370460857034770309901075731812297122603761861088357399561163425725973488949245183263785960317323650313703855309798347166474899814923862759818898715228081184325289821518085412709812302433016822982127834771066391047878929840604982360112582287068889875577727421612610277751384764192974777491017398479839704565054664684224221893531905797888008540940671548574519781437538817386483033665910499106172351251499500030823496475332517592692741604451502143621648233014287754178847978853889545865235851592292528368742872089310762073158879688942287389845342312442994476780558290975828727643585218204023315964021544255714205252300827931658561641297181991009524461462272092758215163450087226121071064939933384502467934197273456682170106392363550594033874646067810097404139686010675925849909121243435410304814551137638201543394667115505648273610997186173896211161362389090004413225094376143082925802575295351682846468865964046082321641898180244129329156587444419691782144538394442597706375533881475666275910988479143705158517870019008614997963656784817218715494983506653434687761031224579164025009306262818371526898486120454933592333432094675297904159155155143446124973188862180663843780374967792623793870978816354225079069754866027010137742891768555866971729101839414546723221610347622216213925248463937033088687165558822473011463605625490617506410897326781715666374670787238534997766133033525401534812087633143391359102527740103330079104311691111583012962561054560228707255822946081922139323236610114484543407185895470324107277098583616000301634212970785985391227956595855975579673339785031397406127471454743407730739281598934774201618868927855177127834278037323009504406688508076332049567840466574131449353321906465685876352396901881492927608691244523115038462550787874066720514240244175818809898065716887433212048940840235658885400630366675299652491804228769592886707244683671915757406649977620302555997368222620771357342945806779237590243157097077064442724378255382158507593057908116528325362367159457998018339454937358595859989736718338432022928677672962345560926549526861733273370317755977135553668275027855870758046790170773461374639283346608775688931697751049090722183048833951603932565229682821162649857290648817830430254858921048937015018408999802526607006455068526172659382575432476597379158505220554651001416018416931036601715341421497414387509888538221333554240158206072172803137309105163436367384070826857807208902004469203196167721242172124680290383420909670213664123242530135669360691477325323316541912682297142152873684302723515141121111244708449735309195570919177032338024500240630500039286974839996193322826921940177052454379864887788519590852866209234877426848399246125488341236377421541008266468882167475838513079926144277329241351748578097424413895026824448086053612492976660425580920991104696940428578889115604350499263070912749184407532639332180760110091393855576432126338234543070466464272008981712814411304898108353948960475068778487421252062909178431248641754012760330829335765238630653016297205577486207302370332875604600565044812487686410993198791978444997218043480410306687256607048157707489584465127135817489060780889675757511331425625992011782238464986014926997546506526557794121077056967391554898845288764758891644472311322868036974771333699798260014756780936659498404637083880083719333340877167998477709518982100492396729183983126387909928093731387651900601633739872217852393601634547565047399315182854688078434955282454777592265141655834867567565408980217436482309640619253303756566020598900198105216345887030274120204649925176407052756078636172159815832517657897668873488003554755956160194736415791252315482445050431492027958706321156999119033153530625980271868151004581629961594454303684841831953065059705946153388874135261397470029593998744563085971835052169033222146485049697997259351307950369047986268066126591447273185128864315184537758961389400776701623300998461692445687352682564564836949240484477118601399270957928785280113958126883001146487269618784762308607208941190070152301616998108846999898039192640855586278234073793501307880238438697586788252187562298261811330765314410664957009176893923409653570653325770429688899778250568360764687917680915357601519366506037147812006998070617181831366344910377850875358200939724367035239534528528067948339101099808118999913529438034341118063930553690648390394446149094930167058909542780014308157299488706464094685660015850549707713177838898859141774349156689113833595967405897293524077691190584383140235238333081553229401053833465903553540277931064484924844580469921288557817386797245960005100462133948141031230812149022806631388039702711075763275650815550722992189193216998594800980242731272538884370609772255612669196743242880810880231633915170866036141731940520131810194023221641831989784849527898389971544384056437907264030459710660399831645153894790919753655227268511878457307653053186509756308773602172737022918218145346805649497461662993260360722125157041416923358657069465866482266712651676770065016617321865035623472297807832404229413599331116113687899460264874981428418444983991882284804869349909349074006013846717344883243711810820489470550750040867838311298152099313915722226105945346395124194597555552974872348439300427976275514943418499280273679944782599470708051617151103026946916567764378012630455930546869628045979254909043638656019639903292803617298021147271216259742010827109734144711310872858236081808516918145332973571500389971938647859495737954306517231522895246056455878399568562729761455681208307520778123034152630431315888895978899793965776075504981030545007735076732881425329053359440754367966349526487667315524507064420090818410584293274039076577349338606141738648381623258857647871717131161497386602791066367286022204553940852980332665812077989527321471821545570810513971602632298704424463684482128968788604042330523741300301880839890341065256494725626055485293812527528279730254635226680610831836407056530322643736984575439746274402041157008572282061737841799647627864407089380817879491846300313234695108594456158384650544951970057861491125246766532793081074449191123706648580271821230300014496971388977516918641471479982082831117259294529305515575538325128697580131815447332853639379931751649311773816418757415315503197031476695641288102315858034816498178087598359023380029641938271653920893584466327713671275677185563924964108562439685865768151657902194189469883585521084280509759019378634708573687829150081075503232565293008583896263853780155289282656924348837096353747635568270216439072304006183289735029888102354467652444376866383579371882099292766545740075266008269216904767630510657416569761803783005135081320092733680194271429368101550896811041134279516194623083901656498593326293656655949655485115477477510869832535221365155490393547571242021401176580902760012384216472948122866863577030846259049942953243153954646235355380718295177964593610966686491917312028800077605608038870139034392841435175630095883454975329611121961163597718807397132235777270950647173893291174064242533926448550036264285745039039631091083387314325883729020991716761578760709714047139852130245698935726862560748947544589943518828920260012602886553733333495632881806377060292336028542721445792040488440405485550319510110155715118005581001400406991457243199823143885165035949894119513803269851703875160353847060260594587403837397292817532424439194087747551266989576009693471130368011783055107775093281484478098767858079371814997185791728841381691148243863460739854534525430940752062829933594559251289525153959529782437990038657784997148379043153308267562352056024793446071616306318445603882539243375007633147879989041119875634680050067461018288884405485733875524752441406381325556362985980800401208622912670965686074977714085081406785937964119479970617499279815019831500516789057631042818980871302728601074043615275133859228486867171826297214015201508303352021905480354513731193786556661821437822804726401606894065448170096780810069346408922747813836300001215511212667304950397926991746189747071275111711933403743970095135835287820455254937810925640915352506391574338605275826988053224988438140079858278470937139271282318164031008256636225880087659716105668751888503165474424497146918768817753217228811786823586095487095279896339539041108005828629759269782416526952320204746777375163244826417925512533756687786553397001318782044676552605980316607789684920847098215529958178347666978380307147836820160280017816835870528458172993643461809082760862274740912954737882176067535670909679152733583919083153843257915953327065675165375721887696907700612337503036192322579400863120220268635732989156146346162454525521475992141861145922317247259779844578236274000903602042739497423682813081472985247881517465070588690079580618284662463055974359598133341319708825587961151877095550550147812270720991446057190868320097910933368157721676135466409212330188047061142994246194749431768399986717408366596711037097769241431112709926008838626245194513638364725006559724744378785251706228422556112377798348301839722604531990521054170188560308202149074717340775257672031188973068397928567310051416118386127632512712206385706840782079003821908355520333064764928050787902397065057707714207077328626920565798388859950240742020197159763792500080108532782880143861972650710283748502948666310845305774246662582257116626923828540370371495500486752709901961916441646576079280078085457679867720774054204227439803217619823698270893331836022784710708761645191760493107217976125666055764628729275163896123611857863057376765758536920439828876251924889919013532507372001646794426085751764747627234271681073337095765485469605016109173015529036000973336524058306759229627086095728464972839928987461238496265761125969605195477018404146434028277500521050600050728380356160552200160837788191496484587517392891986889385724433315990749402067862851590685653708535001994656224441592090839771847135235820300316230388789877679508428067710404601137266126696337255630486203458281622282370347373337694192687537910939094431071835511725952822616252562464054048681926847628935911346879110957580817143038681982805432702024406273230813745784244167803079583406832982060805237083016867075718416487898733397225840868899348070275709558187551569438022580184809615735060104182858086281044244065205770161022519700454677534791050270956385559000310955534604823366778547683950369530134104172878599616222562639281876750899096464163389880023517916901680625309720288905105934395387524763002758481383980299167491737035115949458399515123338980003227534284374543190038546975392673290436795239598378588694311809927625162848764132086483354702555392580610515545140006441531584624577041606515376406548960295604909937899106237539368886649412391755117814516910085234000311364745706639099378977262115639486479136326914600950460217920017344876435530587426828827242631896664866944821006567709418967723864848851444948931115390272361795474987284613812219787968713489037717934636438027744945738590361698357903565556992166613451137521872415377960286685283851181269327294835797340535366228995169965743582283064422141668204122637697246184340593787494691590587328999849033460997620441218764428012975506989354573917106888114659403991666388115616039065836338043480841684674428422559612555934204605387718187569469119276074087712517563887488453612932661482942982382956630203808459700944404626852152491770341458028243366103631583291024268121017784419682622791352448237268549720409236359456857498007943813874314909724253909201109097817169227310899890650312413904799592561956847619644115895047724631781066821392950809157726506747844317724426541190825018249872376941118947025557238688187861347681953562754387161348900184677797448574540887181448772683318023866419582699917395445805924329772453781852465598949159005353842209707562654132658929660958540178928882619003881649315854753035510151337167145019918528908834245661599944095951828296417376738580016541723744066316705138175984206883183881465608769013122455485020527464415566928354126992524042075840297867025507648009472780758255147534563982342696239943382035106625659031788942657215294768502240606649597666439850875354568794875563594745214699802958282617281920967987090752622573996591665804284812005543131687748162192656379133362751258580815138569504302344370421879561525285484012891943905713906200918785352654892245136037462588697311665902857487814455284848643028520554907245019914278216134033276796473205612201952883696157892566185781813592591676417994459344558087039200101576788056370706506787374233470613225447863751545053922723691178745974653015346460740377687834135492918364587966207613509727240836626956995099560156189066510312212368521366203606828170288659478990721309242448569495030617410233361834278843585135184681968790487973636107031913865738339240283942669706916746288315940682876390110600255409193868430341714162459943113331295179173963181589721582140791442667777009471278768489525596303318322791078668489205603334936183975587409780834980345090296923474052005639294746856729974346660056723850831791571393343517110375955276213580722307335194766121360987157311458492525443734613831546589092353113047072541314376561623164810297153382109404741454923140761733737506211768803558974126726753846032494738979614568276699575528619477094147594415197955999127501806152978542140524838247688463945022616010398408106285180259178193276417725509589011734764664530993490783242465979144139407945991247259138459608925005870843185724318797389988913741545298467818992330937839884866275928518325481506741789826697659140511633436685495354848459642946203316978465933866169395041578630602048554765403997187034928262628053933681039442072318105379129613814135461356432853239423308760412199015646008346562774243971058437973333314340233211932071515183132263726715551175421261791507004201607063197472675808955631690336536724932845417263140087309681711462488186663255670340746788468046960162604548581574377884742582197265028331661366908787707737659339132161130586019802171349507244937484832655605308727261044814090008300890380573205708237890903005548920917748211684753820400604819201623932505224758612904635580275764252045652388559443097151283540334924707567485855484347414112982201482079954995486172681702689781214935090428859672941576647106753683866518603366607820699376034842464994257507115925290744403878902070310306742534512607413388614001160079005982273959442974322387243379572063403365228472550062784574942668481383751407772081968561799643042228900296566935100140581821677477670862813834615354854963299581656301942153096028856839006549093364681294021446948839987478035112252233679257651412873660524866379937521245776638015218691682906283743058765760387633194019432134486964223616993409177799170898626914841368119564360884693736193777712463299878490810497892771165828607674551679925739404597456367835890742194273687852259242961927769873819424031910085028482619323241534314345224790594639851832370705105711193788212715354742990417110884879070557698234530781807324449229797533534789071537538769200203163070903622459334863562397006501211283252837197990899695732954637091202721566370503354603687802062174023865070529852040793829162703078860730510251081705578172168538127902622565478572710541013398968110281332004514744213014531957897333447037800785519855972651431450351025823283439506513878408122675905798999954529887031429529614077385887883862710854092942080619069661164924841462119354403413473403862862474982037221399110676800600815014432224193849097453767296719612246141390288330724538816672735382343488996611875186407727474579984218849134850091247533262626819975252348503268629377220286680444836246840088138638605626275002297337382203283976939344369526239448092961854804611249985392635106251934385179494487450312073866658092123335991255711801059540057684673492708867514673180870162787864955728699367259066758680675748212036136857352832517926314323597605398828228239735561755950677526926170308180806388433405934159436310038034278380469309169923710149666639624332195183750953420630114326727617075342169017943861572862326080204435770087346243717236802527499417525957706812709445341208343265888791555890413411039001616394726557115529877370973317892818682983767495401960806523605971684030831533318627959386038995320894487009404421771238673530451117532909361178162237998601391948941220046004247169279096169661650763247438947964360702849432727151151380946200279720177100948587372145676166572589067081360719706709363500006364262187892079662083462795481015890363685705236288871674839005414232740934123730729699167479411994254487212138884494839998674803204350086751076916624250677251093414738376124399096430153245394253245873241025183760748078372087198841769712161168001620213631788123549773640465662019257442660229878353360633964577912239091486692358837121044132469797090944854647857657801098770466693855684214802733151211368376179017418449587524770189476602579567493075711340006140308359372276007840468856887975416651347988822133303890919675261096017526028454652255054916892920854467916901177245997050908688290370651069786598492251529826779460346970217025624222766308806256313059620556095217983177243842484610591205193526777294147453384953137812885114237455755476963059969720844558501422865363535343512891347588012274729889796986079884634553296410523546488531926426321296263434624273966095170308810673021520874306449230086443064572372002402438385279960086827974757106361979558935655560001277583843421633017673992458760551660292456460839912414287234348354032857470030300430877517163544922669939949049337322577083642848090153989571585095328809019253625332140736598872567124931802809834331914535247500047538703143041193255401099503769099550930599059707844982816306511164847176033029065706039713789085246338915268679310842559629093133035882575964903907910567521740285918017743086748600126141555238765880231764594981080632078593629128290759691234050613569207356290961884416406581865821783860789895721333463910043143995657667440902042849596738956648609358596460711194555895183564526329482390403339947271191671997830333246593513449668979718665758424368501137508205313396601085996963207565551147262920081806698768441544859103346339119047487826750812239893673854704132366347314207647886745563972603872845004659661497062796976866627729098246869878212877495275046147006402145998283119143471214873029475437602652739933178182497431127743619882288592510218071791253897281171183915949387490237909394709501833025716851105759442760906622614607265803897397820453383272878826041586435549448835418726747168049930709118468747963448895582372506410499812502600893722467897718213472212613287129230711095151782463009973828382267901545041466274846815535909237282524849385315636691709253647104693164029916504430279570370739568373756030392664301561912319294776745485237589777026472656434136604772850453537695910771725366734223132485942475748223606439880610577185763385208431393617973944926111815143895712236094690755700740811466194242242223904930609706993041283862868146740423992230914813132654312244351596973370047640637955790102658491396703002472304064563312395551022681674832602895698062013834928978651537562143504092231941372144575702919494523783789905939937491623805694574304421499992360655403856716707730730595144490699834057970897404594037088540166129969223645939960372220829345099444489308596538760515833565519026955890098600259667601215723890523815532642858609559650343767087082036015105710482321694259860986327744972950485990342049930916855301080308381131189852314971832972544450090247049182049641400374590997171030718447022011746059164763883497349158241918372435580918353497009813919449875254703763549121814825827537725605827809972442702237965663290427273714852859659787335562163298446124986319147469471385507544146642183371870741034507446646156822797145161879261362863812877267266153040990700483397758126219875167167447803355153641487224700442148734847979888574249107423550795755283770182610466548729373446108344463389889916568777314960801958304840159548074638636950734141868871278530256189836415079293343786853743116991421250564146336611190983627068870033412040304155513538711351512757030862177572737657975752799571986469459492126956304394413296483700632987777388542357049657997106781833056634165474569607074639625435061956633363281736453227681268229492071653476187848198788840578857639955657702160839410113090098668100430649646334288369309243907278151769872956605204605549712096907674777496897700842410291807924942465211484515733935774442739970376208294913469468481264859381521602793764475555477040591030478792582541959364365161172643189884678450879919404471382442949070232159088727885670911884988728804192439136910829442928804951450663156560525553070428830398612146767414653998286971178815359683448716760350102923608054569289740772464213332432348378427526986384939964305825773230888534833467437874459673660701293233125984145334126316145463351907070513284276131616013824911631911386066672604081510632630987508125186760587290113304413406764766359888383487635939100201380643251182500890240402902404577819706950556045310621010351609118147005190293278495474805414245288102556716521630760879159640293880278802064044426569394198400151771225561407733523951431529648088560892630432776088024653555425331348884689763467587744048222867880541832012791316447260941981987603675754228827998831122778575167252524558576648767429086328301324810880580406720134832196051772289611433240783337742195903942145561289310064439697050101575197358401177062353998919604676783996807264250521662589011337609874269612476193931667973343136072104097463107493230669651248297343793526234896529958371716916235687720629000598973636045686992497592342439406942856558126203963654004820696397653983946729796126067289892724253618759031262025671529855981262830579389589192051291651781688971991650293351284090502250669598433182759575065153599264398416590874499988935151947113089323758340488272421166651861657673853578702644506522881079492191735558445942419190133314460394461323140867165708839190008023376885322002268337931927696763125768029544772534295065817902295930427020894509077099342143874657246365289509609656006055164719360027519725083490074841905358696151744882680589365500093790740534669592429428076862038373840987334822447268409351621882840009362803411830655125177829490721834060924264680853473824117800565928297066536752027886776673706457085619856172949855527562012775683863182271821044111699989253662223849789808380048856345062253197479645970819429021834631441808791686107805477128789352098457468204727418387850719008157912096886028483827195086376926266601209006394789480734685155207374493110577781014832934711988409636956342000524452806754870430228374614044853515469128607425814165773379086260471604688662767112258444729797695095359681425296111282634284482839449484226892739751835463752560823651573083238559843508039982473069625260546669350921314136433961410753700815834170545890460214331097789975639808889443354227640012792309034952502463736894779336185915502252428561635186114860786421300574678816251484886105324181168246553751963430878742434306331019444993004044942509790695593795504662832013262485270679174279514011155544236876295756566676735863816077827618769903990189655556740568189754502502301707254637931658619001986996186563106175115545965986932818745018111551007849209658070571514556758345125231031248628877964645648903928544930283123521961820261909142908810842093300781112594711704567721906958002452914002820330077275344321339809301526589688887694732475351975534773211437465332473274452357246237316020809740096472340259843043964046755467354483407164202375674337788396471602586174531577038618406655521147333658765497891657167086068421301137143373405970129238580650061074931513388354497451858670661335471923679992669063371396547442450548134462596645363803998437255202255107098934868548158362170146401084539331300180906988668273273706061074311568549605614976742333057041536254019749772892213085804875743018132272761363956072273003795847895428828974974559518900096671258465742762397617308689142106575439542724968017070017730532505986614374979382149781237913873165750287439513965706743121319215403186825864599462097102586764966909639922327571318918015158249540943279189985078402713237958184267231144308375086325928225049807262406239689566768248142799082210463781388590835502678293897654496075598789378347554059253768603358583481240765253594211647733834521014981930549092728986415525144985250254601456029792854313289052733337659623468738416544119699387651070010218638384564326386122994360859302225242783534398439796018502774424008611698762804595167050351644148739868965330199746094653348139520311292882036551223215661027561584699958057214616491690979752639893993871397161759338850461612876476546040063848551836128897110387960951695393435506836346467609540588657526015676159477106256428906462343642847346849437510139860528146606427275309742150192804933469470914815076360353189889743334829479648330716315055737699576008369101914439144485626628009184265748304990124661975553518186888528256748799586925754967407720245449853024128072161874219811098397356516619543280776532920897747239099475469311512870653442581398896868720118233902011258821184609459230171359521503046458022955130779084248419069179640994220407572114703034953449750363044600548559599261516708060201350449085011519034333399219870039435776057791538155807429746650947387238022294624854754211635727799947072290068466593684410345860441476909798845483877483736665204726587076271222845605560147574965837519696323473244317200897423670481029032931598895172797192828214832129144300882497589103277256022086945203658116545957659375315456386290856767238062048903115569603196174740450045841307288620339114432122816814383016874840238835841519746980969685772292662985063783312727985255490369516755623813262069090350926119334963953889137342535431092373374187654259296341493590104547520183768771450420148360170426114816773162333322091853071978075136492945296229057632681053558745830957221323319327305694142339893770563513499827549783907285377916606799128321836788437990089931555552571055634831780931174541352744783282210630526642121624705496284527550213730694733921433764458649611683690732140801281538923351001845033201392056166642359663438028562578674298997696342458018840984816211103912133469313738212194477833467053093971918677764062971907413552513802234634553389464977049042481382462369062886125253238832723242493973641050186312222766588011268634954526289121813893137978890739961050491865960601249069780451626530038927282831356343412463690076682790584622881282047048941885223169992279724895484354058194557461918086341455900539078994871128542991156626821410709690548687974275603402637156236839199332446959981851282971193756015340868933341564134389977307949131578388109545618338935673121119749360696841666819567354680839182986482247247577698247986368718805870173355020782540319713377463050110923342937510246620829860116098476257769273567852841075257964198873042779702972450829843105265318325337318047066653962653433999392642036345893800002160778585065684713394899701547636552421438184622700297936552107418218661405729698673786136022198109201997235726044929355253851412511644695463053485048183194441155635907048592545083061841987583121236859871555420634504392027649427797161543039412475738656525516673898196994671563091949337940833781568594600783615983960127907007277776101969004038283940293682259352703162972190386144462389269989015786113735666066206029687615158587372274727979919147896490910385640748357901028839098017927431623598766464436487409416844356785085450764308187991289167748826627902604602768909291753573653211667369422573663121119645179641646511832374153573103386163563533589730603301928531902800213286849903769615464143683015721013641791208571541119904608163742457760527282137125751719874205739168652351294103645270071816438214480736319315643840004531051783584230274707714300031066036339761388131070599072908898970062946427700203467740819079568637056173674902250511640279412506726866426861158112225655715136398389980275791368070586758579187213657154034950148017677737555547155121581020152052062203586761961726344994229793471262734933977025786450210833213734517316720196139610589546022080915710022057401384670291544788989331637247067640844229408770610368767462401707393710171264120154417111599590908561996230151442805825024407676144487589026439245531871819988572315155713798840727150809701487457981187803853567609285856883027614250903269260500467030352433513106612056443488733932586428158402411943232528427118238162771578620108611819348618074658024487165171591226885737744955212050867847093418016686064458404494326831529396492680427923013406794541957339675774743988509969353964361813196084928274053746920229311279020837225659044710094070083871234289602266534081063080580459584368852953665923979886764428617474729736787491551201592349077930336313171746509770332333666928178302560399955960844973414701382439013877255515124869715233720069396612666240085768639321840306599347809691141068518273221775920433010002459472264827226911499317589970123208554081944358975603883418789227403023052920096507643434637086177920569634895392861620391042227821284195825399813442542998442938035799041126214301982612372738719497865085941167613072748787914781379192618997230505317416872512314181334538517622449709332859298823504629931660798700282136035615412317769687794770199458398586470021535798804996715282372683498211186019484665150203447003150713452069359771711054563007875955599156854999212806243583872986374541753264529600358901034212239530337247705940505372192647750474499899534737193383664734766536815560225381687483812626210094273907543438562856552271851214066135371591026747350816741211408984282953318609919179798092500032214954131700620557450609171341894277637012384417219847093870699662771648453595259107429369870844062283889762961492996252076765904774742054748631500324530177544852216096167683790877692700250561903809040904797628403246091034145874523890227110229687561043848701761354159857689276413339560882261888106578289981501368956156773118603506180868249405289924573595686495771100188787218224572307684664392439820203777600096792545901018090121097491957557261296221400251285638948485242125656154007145881608826300166667529742698715167058880975716251760224806768242190917866858998105819094698531848371295901135610871869287361157692812870557405727527311211649128851159171477678648656850124423764463010444651673518793942922921896227023065984195192404620056766049572188831215079679949016089845889472777418179268743226996773862623069248489959403345163621154729250433285500138872359462311089204121369075612861262555311676580105737302483054456383790830915171298424262668136929863188145086579098053634979103967891109584761023298160699455990381896217806199909281979440452130793842033542714481140577108458027754489394238929251322579026989088494687016426142656686539564177952176822499022526362516078383870932405034568413658615520305976119524733637100767198606132849752698576804261615306995891313663794910740500045026327438520561721527282031315604877516942756890686512324760974585782798168692337699609482870451689491467360840136613210197120265727038555443743820695361011415527010204483846829104331598713347426173322095197839516509159439540990688939017873394319155050030639748264076350585977462273417865876379371546039512277337686641782006652753787903236865330541601552508408884254841252515627986283152720000429066773744149480085231787702767336920236384563753250912567297294971598033161774801835161096516615016033122853882274931520078492925430417790944914354640484853880333560821036400608954943709665754656599502487644432166643780940272887962187855202079712607307082764917300513630403239366996534328025965419813052748721773718779083207318014115641989548217930684950621157638271150012140536632843525907550122710080598318345974439896266719697070947501662804479990515214336992343612665561906116856248169636857376881268272328842955015575995977512318539144249928495442588632397266316716467256074352329262923216003561276655491903115624040877367869499930188641897214659952249297496013109988165797569275990324317812717991530435290248408380660803313594196427022982162858433357230244406968595674724067515171136874520930791742019473718260392634997676926158926960656902454541563908411686778827244626181172871668863833871596503976533349469328937653859110768345761863233449172250431287878164510806264307605339895862931822430518336223959412444572852157076610103784678611866513506537938450028590164449318242715836167742381691085763593328644328530889226931726844870786465430677532972578766321115120328104423351067993947219480815259241809040229544569910102848924680507377294042958446144401842296199900352921180696047640932247704072800048345432458016259973429312732048127378674146507096376516466057454682576514817005920007165739048469454011307743967085039874142479262628279968847944463524198723501980414910215504471496313081155241748180470618070505958922385170791884404416803441528636889514976795591414843666211233228516482571300723621957268333054471486286002715394750217389792801969576245006822682226095013557696829086798357198745942930956055370424870004857648212330384292522338994155217427908301953411982512995485925826927162187439673410276661723516483173027881847748437937336252857091732616515884655927848299282689266164804038762412195506404213448811417755451401119713038850043480823402831926707056184237758986724394286416167330633119725802785036787352389471770919468479551135466827739010154782355182082092408284002443754117333467759539000644361423464334610843577826759534321634734458728936509693341543585388522900453470894487332233442244813374118200314596876149655354893953482888766109955832537362923084345315368881847372633977896067223410849685577791821324168648359035370209084482079265804601535514613630938343229041375354089833018562650121910387840577084787221527504450364437371206650375936656373359049487473627501348985539195184562777639068453965199250206193652123644645012429246676166606878396816394883907423464615493090042073347286854227108209947488124982243413924804206235324458547619399296384676282845345936588563413568561846757801678454085235268199894597304548867797515783268425055239594563059472154501042657368333625839147761332418480342043176739306421503810690273028621595219385273064191682792512502155282646309464969854492332161467708448814520251080912586348420559045814700461950610326606296977925179888691834215334766869610159165202687009264647433224466395936021640869710874059223519671056198695754828363790947547726253224815220696773116694862153869165983787004514509682257086204805578236725390808741203009709430523079796591634306953355803852591081507297934554753101676273076215028257012792885824751116021784239952732365151648348929054530575617188085928441966042178833117676883274129873464790165132614875407489002195066158475677386177673567949294961541950775598419975670657145076892881844876536447177283775582348436278792155527856826897339906034510753519408475206511905581539444390223707224048685906943588790218439074946227046774275786875402875118850587365545244689574484806046354022861168879618267206380330671363514432958038705012399486207754596438449050518752757831809571936508795934568990453134405337568844740538330132448874538055268999906726750185918547177512795484695347091313582258154509484926844284587865108629195678139665374834302794491684009208269805590785029988512809839832819563930225721462199752614897099711676469678035517187888922912203769007341081861814202855385528852236760094810264654973337713579030208257153138432930219910573909242729417432534923653510476277720963474871952077792193817041473655620657379254711881568842654337078127469770496918503018264178531566296664345254928272243528427668064210616598092832646994248653683278671622042809854905152167847443223168406112754111772853683529225862004735304718202498282259319789701870269983570985137116500905987936055405035791481390958292942997075536335203824338651298773158282508967560242485456349591493859764508839934371109064486666402592626507518061504929077199754383025592534455485696622662932124378052967903655020638546218804298397581657376618028173033495234178537413437851087304716898533966673595585239904457420721522400642165249035334682398613528805271923620081318001664049570686954781188907289280944498747753505391107896495685223398824325604357867155948712623084419236162527855912487565219769997891946959357759110992328502135535586092133155626199688307102333327229758198606652325626120966279646247197960904651760228782589454569329452897934257674230908450464859456636039061773819857473653427134782038724507447932676043252223580761981852818671321182792267307601343421327705852147456724110288740973972007243848060573625637862352367713742317019600199711933859443790358820229294282589998263138947646808045305026647339925403754780960304583940118622959306781332076863616411743600854375654629953467807291317364300923161734374506870539143063333053018512609230517128575283206559861905828090714939165843060694085680853634169592805796039077375370944681048544058238243551733494416249603176321424404821606063527612931906520309936537518852856267205033489430283321777753327322668596774083242095129853698492105404116942771709620048899858763569773230207646149479392949886957744637685930073577092494764980927830022553482199878142837434656434925763269846835479387698596507306089323804175089188062630596688691659367744249850748109087465094240444305576478439558125364350937523876097512910644726277839222484335700782978618887235623206203759316722928514014997855358902556542395726525315856682953474188802763178045540979234196576977964535824337423763717682943272344597116742409207460715081842048380934514569026991512957972154345738546542687925021502997775736908565090241544073763221960982309470829474713896887032458257019262772279957463473439443196727385383610945871394080202986114754995742487890212619366756542427828605153217182970987533616257062876177633116870484397254980874560476117047579052512407381177650737813029626001018889236568861218535830092550503885775637214143674980756279048856186222735670251998076390027887382176277786132507780318841049212275747443385181793539874281119432629610011019717797196346130874684481968603615153358203953652007319906110016913179901407436988801642904777665230260040528404069423401021464770721878448238937613854735156621477890801282404568952098084897004495474509260131362332950129323753345089167306937540535515008416585508719146007696155436948886769789819278826488124552129081529801400390762157268555217254144033667072809592945854285572218500951401709961786681854910972909385200668076853855100968943784435436648065990388859933072820464170167738098777330617545330924315389765796981093146973982675646501610535916776875239208885454548470483052705794150409938305630474237847846013251717124444864033892629901948254960389898855062882215528230073842598095998170096129750681138387529481258748816825564535359726121230365396618551568452183461576229393846238583578208746974965697001727458272663283825825881265135590737262080968298402691997179920054267226705776364865756561184782194605868099029703821375313922105559207572284332477306841588690180013324106492782787153487316653153197582439398207946710639046914216851711625978349130117326258010286210736327708001277258267484887661335735063278471470852591573122864398486967710126354682439257929527233782291311847870634997763428001921924701647641104372274664516572410242143346804433479376423241994267418551367600696051346229943124909382954080484358809383499294406286753538566565569414456580622654982534349947544111191227571460224978514888972884203995954073783105156655133797815675781700535254872348266078107938296375470486827547766720294212038649394219176752057247154052716713947359430088883304466982067882898262408796087538177598414493771655918151126051830729363252567194575651109107615763675674595903267772035596413114456290770069818035949465755189298487565269628408269895367941168880903162814025928092668365184196534691809109697676009805261858772722423404291213208005808347736576757517997153672329075283172218677808457553547336053455720731711575441220957796566492526761326661671554860767226452074721333276285603027845010905247918837500967248932634035919596080012233261271423154236330793813552998058170059775689115701069435393010337653369391945819136463238417529008935934847044562666645768074722329869795715375012038711430642344679252021790675832554282468883859993116938553706941573868706649488174711616656004919030913449046735218347397500478066366333499555760539125251337879250219255575832911142600487422314307319580458670954125236258659068083815733267251687628982140571724634714250584919681233841013971007128436633635620261270222301985012573533489925408935390497106114208082717671247904125162504507965291673358646356261971436025487490688828477502722233990314754963125991699901388565487503852903601691030689849449436840636322180407636139480176644773448084914195046175374399680517028741790030327065946851243134425224816843192811498935518883763587042215370295880706217284020217630764121866894948081640509629640126883470822484664634568979037736718785024302851502106387306794599311799300151385674504516464324091688001330807021223380579072834185309863687907063654956851743756005150249170504776175487612056528926973672715041224334231154684930010542689465842803548740002773793330785238068237915694671605192758843151987037021556147113508598650428518670534492898910094934765736604153633400292259847396295866132984845246547015133827688201684752966849349964857697459928608643856851334291786178244917830800308714519739270567070583884477414671212315562692381651627441355127487903845097912611229402334527858241037056349774259011298824957899187074745629809084398706667402716694778125237352215403190744502204493168331278160833109615784104928154696965458821478980248496561721387275316572646355866519136427612674380106338228097705210195457223247807267519583486686720879528626367796775906198148753598294758302716266670042796236074452570543090219053311907864416491338660888134123608450452309349293493397826749679265982562695091584335039148614730650492616758314564579970280007162633560386814931896806861295500150869800060962820822776370089370982426145678269058502524031818222837009053568721082289001145789091949641939808168823767016458063740561630980641584657194023849335270024932432143451749506208290207589126382765490567014353466670221659998753621352855638578203166389480154525411110588764453701498356522821315173170787577224109389516408067923567117868893366053847165845610144258311427146237886390723179121692828681144595705246602815708191982953148143638464726535845972727614809133019578679217056311536246058532032489866855539538546962323025623290784070142479876236501554063136958445341663709622774594593689125967735959424283263030531938336463578987051055960087389110530815733105416517646180327617887520455022322715128639660153409280302248182871646410708245936456414550313320479572520359734345929032656030181429549743354674791022604188028810550487508666060050874935624769905211797051594691353874945314498945331639307540799862192138400903765056718766562717596429496003446547350779743421292774129870219572327085111633245678742707142334982473006532700242333713379593159702394335365600574965414322987637535131833374274382473658052088147021242379765952536630758206205579222221824035655442149563511860404034510776071129327145896625402904779241649783489293859453398191635332581439165120662809433536770633138056234521494838288944513980452485601500358756448406958262267416142024873508317655075735234243284130469906907631278115921875269609987018168685005279674201337353085648426280530425678080892407072317940497734586718098312408308397309774897036159319386878302335043587429445977648343749487281900185637437234776059834393583444618116997372628075940226106349933044722725263632621948559089419220946197176375800000525358904533119454335057645574221239966637968208851665536224842182937533334398777617575839765460564323664799725728585369288495637004184116133480983388041029995270518445059984602465112697241648437720624877557754340028567591974272170268831228347230736981638594368875694342495692739387801018339449147564915981330684010597860765008447410608142443282477473668075111528050452009387358937416237512663790213595166397235865193869911278803890168401633571450203454937754866102964026942784978966511655162944349910974847664150123711267633827387490022879545788122025285759115827009570923572337632030455403134072961963933807995222226412976230869174232807328493150189808513164542796227333592834104628665601914467707074854355819945179666118452349212501864078720612250541993645681791696134909357134061947292283053067526864677951078946521958584177975378627686767219713218271348415827719494499332429824301783178253352779104328337143472860764690920341690174457019975284638176099980767771384068992274842713963790537437442895800339021634840338248675933433541941823304481262128982732982734029938452750713825534813119681915206941567365670213877566330436214720838874116423338903719464657329496109626152180510254599520673111283918635155179759236978389940726203795703231310095917199416038496143706974763308376265595298222393620132909173750623206795753481136357433753012535359747751951960731980573603810533977976670664701338090001661707518152653181474250951773004096907523962801932286441573835256751757110791860817956808715464900042965886421739209520267777862804415150418348955199955958899909578782311594046690346853501119522734154792094898159737745586088228309986518683557582251762253621588727891233544303817193154482587559382583511945184790985083094066446775286483446623686602145770932631824532388289515499718454308944137607321563807683729209706650711915829920818765545278107440867942575806816905375030266962283781758718994922319033227803304268380747308589163534054878249046901314902215088756655077935805865211685886755279537070139628983659721931455294631872587832012514521547818953061821826866047725868276642629749398410481976042884209178380503225842902561926373572522508277547198978670742225529413510299950406621693678514196209751156775518489310154636256558987902709280072943436598969268701887347614248585920386056689467185647487944459847017651408587752601420750925820906268236710861464035015512172878294483202211051427138088117946232175426061150345227029863817491527739687453433567098452532034408338537846311782282720979118754596712516605994849741562913770902978277083274362127755886281964340884862900999568147384829974388706059318577223314234286436905794319216136264048036565958679404729574990817281612462367972325911272186152302015410478046735761086078465516472211100108614403277126636633665009429961997107132277762601079424193340134017780606393979964170746932500674347196821127064636372394503394064035129590564369517115173394603760003687756969858994380128100498704526826500843672491923225391657269340755289870310998142444889438003328611030350626293521326147257775645447253258909258887658961604304654563226075642939103940834842661695233852341106478183824757757859754407823638055907503099803536608031822390992228671708022994958926647915850885273951423370341512951707642538063333653697502079774223348629012117356649758225998566552348012299508639390704108342233233767765927418501198100013273542591278708509477248957982325058012863493782999550144547272247879450974427984144919399146147923316757397086443520260507227814486384596902237861896029131713663077683525786434789999947246500450819040006490461957275604646321628146250015004635428800660385883856176468821924023210593016094862286666788047963384116127980682248975341600775845909801459178006036144232063326675054534150574957814511188066855180461050538641265715471370827718335885211582206419189959576498371546019505916283980806475355778176527071486662247015573371093672068502181491732427942394890710325025934488968331035083863644041487887018375673430257445624214536461900811279475909089496490014141744281235130650651585413114712517221093659779195414918876061764517120446288985119688288613279244800158852976036772290174801148120113148506825378806692997739290983466773271109048015914425209370137626622928503551527096730610089978327141800499239868177342723687898207007041447000511183934885862612046525446442223008254025219818492698172403786355294954757353245238032875422004800952282300256810475412746123907305337932287814512579041377303855364876527055073824603915250657867751497747984236765060386463295736139329847311480530614986500205283139214951618271911511862506143812460224333712571371660844046313117089888138911511678487948568992450606851465328085723723893586581706260907757743316685055937961048583472016497783051139169320202670707202071411240604890843095239874018940874163967279819748491621040480573310289723705022650739186696465745210069801788526966880415399410890685647180597483940052021903169931414183315018457603928416178143607708089748203134790594389522878829865937188797492103232853785833251467249888456899078637520977283802478178254033042903092527354540794939440939116628307722433059611454871674470740148693224249921751529141213633619131208341764508541650459750816878823799265328666182202968407298615923894911133378044032254304608826118612958814816663621939390201066455433214347022928837541044785488910585101403785058253788099399395092428521792642138978765949803642843587679872942545412764376629966944191341910810035027523360961349299118699905297245628890509997903124222918782383929428206294153199246480695831474585496899906843231907248678195414803105877508454400221227035593251209004685527419860205296955730786992109216207614242403124116892820073487619500314846338136279902102500536602855566008420058031599068793208430743410921920696455083015176139394245017466014742062078758193875492962252264064744397647953207429176013166198345871962987762308863010294005312388874102812526316368483526594940170715267074829435445799440738565774850036526587390420510931230416125025605569857486175607781178628234446262522796608648597518945345430102231912372280503771854561693715010442463678663933233112758320323234879758580670986066210214641039706036016249647470893682368720969161344367863023936142050671852969505112202445054792174269195515428342130926058325074977766062848868045802861414507203015278749725391954519276707775888285156077125754795771741430705623050177936228289247371622552274302361783726475169207887227967248019477716922628705879533935491198822067261248989225579660854346068066714467263218130666565333428180199470371119649553952867374290992336161989327765055206221538888457946762424605789165091338990024595319214322767592440054833872838717005295523149723291040210968782187881529745336236861006059350128809604990842704103416498216748272263859014702499929073384254850734325230094089189435422504666533781088211230669114806059376491447463570581584451201463718382419006154576109880492446608245176816133946432731332788560497740596908194797374062992277790416311712042837817826328836311634140029449777199656277555346542050144741760885352456416891183406194729224380516058455320842979524827389399287573451530901382459210213285261309459587077716731794056719787861756382404714346856840599583740549167952211298683555887919491442665966563348229009290277573483251330772842981911974460834196445960665965124213432276773050893803780100718453349493095327498208489428772575410984654100212962483036816043222548106912593837099055116122298540504475251460659287196131187983217487681345792880443920118493424624776774171441541829284565018257725254210535864990481497111188902650359451188936399462823393386131336986536264654714472834846293113520660086374769338712488654325689548979923873011616166304337883822722692029276992232587631455270557598518657016356822648623182845631441863932919705261835703993506489276396687705446376330959180335495344786022241259360757175509316849316647485702859669612870305184208876265932147318668298815755569217923545411465775336270864910503839832624662742664149129006928524237908945894888034450505518777798946234637559664606696104292542919242212460141792967053389275434404939238450494407104982756386294267962160884164617814941195446427964232963689697444253245787458961731222985339218883731787363521242717968939595239841019810032434459775091565502245978804530006472123084620173200140170736660324111851819837172271441727885565157607007866633944196903254309394406837297652688441219951277963370482659803364858229571132438580214800438559609343480011807949311304637040268569951391587183700621275892990038092720191500845705976505537839002428411227435141816086354484807268711928377150433767112344736593859948602372833537780795124909755445728558262822396539481417030962273494910972744716241026374365511422968350107615968005773711130600676405075371342740923500130528820369124753112064405094512613510580318988910431039310901225775274659661289452750115891736979029257576328086865112745863835865654333610870686354701980309228640790545749756441675341668096840040971086048777781833102591661484397851314239906158580979880487299096131693384522066907913016835244392236226203401765775730132096074057140309737671579058665381846169007614743150506824581558398480043325428309370471675243439307873457476357672528255156549589501043127948711002744096257358753692386550788918430697303401790460075697811747647661957026879927644056048602682962568065707075162955666358070622651979566855880385871230065209131726454993556553497893226386822190485420613991836733505129676289638101015282594635140294458863666286590759024206936426371103360893884890173832973887413544851899368396056894052887085120069053867968978111950570388707327223381410525972607667399791730545357480620365674585930813190996348693360776307066454336636166298744480844724999769760932955048402022424381448432629027615804854624096221487926561377386833955622277084164238345442130637056662734576248100185246546123417189079160690753311916822383855175574701083991746679110574227631357427876412133548122803078226796568753483896556155723045447444799379722421736130194439056277067873107437285627914979343873399812687812175027570297258772594710133732957969103911983185730030705877946963783808874295624230047604973000561652645809062137811164187736400249389405858695084312035838224196242832775971051168712615146634666030004947848784473627121597019909242884993532509205151641779787706289039084250627047573388917809841325493445244312477131742582819017808571849773158753475528400590667126951913949512865351320488613418614192839577948792984249240971714389322847473618939813573108131935955806783277852438621575973445905651081564910993023707668266449252416389208004824076877061465870879033705614952466265963952794925919011675076246942730293675383063041294496337504722316684922945795491241490303444008916609103635273941821177834511116427396995100764598754594636949176948704233295495773831090904927141969969583951028166085816180421681196560814948982100467036389345756341863241832605896592752654701172069536746479565146246779674207931126044918758948706881882386491005802160895563936714771343294515961164291792882497914538018592566176535817886890356508282190952295709555502426329311620099476955778442749312639988850231573056905966529812610575291076621082495022470338387108059119631576117345695921473202440404553605738936568291519281627020185494547385508489932783636864865059749223146723028597921314160279483070745893961513538378771536564202986515234509966200600145176082414932149315843958126930658488735551147696618185277877481008555768575202707961637559522570224514203061246793545927821146512269135651853009087413039848560722397152952415607198771852098589412981267193979086398181574816444957477574508547120462249311626626411329353787336763197111857492943788845289043168168024250250377520946106734080150286258558006862755485419019894073799315528666284821002483254720861511018434615081972525752494102478381897688617345435952916947183457307606671109810322759861198881513762732868971498477790231655772125471355875227886871260060407326685172205106842444715561694463851320520631957482694072139065569323615223718529651525779755892416806217881698055351400015386948000423625299543031091396949644186240623389251339565129822852840017663243155433750196239236612601408662590534517775802110196621641605616436904678413980375829823046469891928034372743800667676636395215385607478355543400301543287353460182336715072380366878040487273741469627323841044123384522597431739030827361518160427704496056498155849218242744894870322316051059331621948159669546340577938519485253630866341824664669491792266954659099132914773830765672322900685197960774005098713527448743420186810446754094720910540633004206344735522991426613560110893352961044461513697682272981773620464121530164078107498709082407110007958556764518497751640780927886858496902433147312949811121393041342857897880664110622473157313316727276879579122383764140288553172377503029994394728074725940743466292608448445649362598590297314630308825272852317645240781935315506152840190263321781254034211998263168028258224812717521964957086509393028085109407315326700922680045937702283137193628948915403810724935673129247380169379252101633280673559339166108327277519246337915328070728269914037075114816692923766069907721597090634781615154365911230307144426426108197194729613404694420488848010605601662379906667684693940143091316716295967634356282894634938474446757011896916216073842096649318990039082819683764275340702284093880171863785662781959367011032894890884094174163041217758067425332395406559741714869556059490210681854333082380081486746919878128599771289350558916880180348286717081045177405017103365476188367306049029716650213610428702374319594302332387768284956865220007362654569530620619663979480968677799419292759443768456360000607912766228337187995392999397265326621119705330682207165859833092511348467075077946745667654984661569635206729451504129573987204847502352982415612799787806036257738055350105280170536278752622189050593606069061889277060240160148891163314387324696623004043996268251519817981893824796422313744950999367798909781818572085407167018546415159942122001233336399612706491387969410152731306993492375237570442740473066708689196480585087490903020100705464176767627536981327497824381958983025877187927992266544578659890306180759793657290699197359977893884351023348474959848615593424565509920691924941478400436669901556293692201698962526674922585379714894030991868229828916811179626982751493972757954130076389740522512283078091948437326473526931750640297405137782781756276839401359313422488135479515876420389499216325653360443460421433831398702775751202118051545207971050342142579591640121998968267844117477691368556033624269203957053353681179803182071356637387487182573427994211955574882989333317821318666142948498254630657597320209612892117613430106346929117053373279940594845405418885178858877175878935786801492106955404836951516175813978943754331815483411991610807325219162008803846510161651086893095087571348969342602603030836348148351740903367601113036834083148471568488007488718102712816337433545883081708189145897046093727618007077154198106613661302519227280702509080381416940622839922176694002299363865100790698729689259780441462664669464503800690227185464184717871949855177273529050695450099380540649671296988859977780370173552389987602522598771770005404062264638994265378482419607772068187448062641441494745505077097576590729007987193632802066964562667914390320052972608393951012876907838111497051179715999360333759128506329802985664837621473194981687929781508658970493288370561145075778691815713260417173203995380012815876158556388520878774220199963913231763734577800389229183002306332999542769776898067882987158378787965949267075511959476511825135067063764818842375846363381133160762590623784319402483951036173288567712338789228720190282676940903495894739683638364602379912580615943639777319234135967743837110569705737210645293526855353240481490398157182057452657443960319046453227744535638605473986241976897223923992833526559600595402579816734897611822200067556281550208682325204512666762841249666901465650155205552105635358318160283290862175056243536155096522322575602391967860952581434725721464722577030227605556614132355187972131436599759527550671965518867530582180264270884724198355387683704726024634280055556719747328879833994842469550657706965995477237621917201106475621575032584316955980704974153586066426445014007871358336862650256165154671449346771250973379275504581558828454200729477964043523117114591400245174191859627693350919826479825978393924626562321360740554333187075093340232582435123514011631795901953354092836884024660283135238907597502301908779515224620152890725540926370614810375891703331954240861628246817922431095416643211737835225419374396688436653952678961107671544934102701156184194596616646640372370893389840387148060249162147264676436955073401171205353998419023066396304368066091578227310286702360557342539751102322946378400018875620026924441317439673144736437905256308993297657515114150382271770093273461969454941137658071328653606234627122430523609347601150260679626304555667850248862808083890934891059187974803598274473254015481839968533455921417742356452856847591873071855112364099595593751513372072798268935529733115898870972194037881719527040579535393795594374414139194744066770258547625306005170556044420278526792903203241995213907015918876137251399136399278406962172686462634262489641260137940649457577026435637576778182554520275223119810275539040720647709995814261964772644473632562310895698741951849238817330114102459835021090424689546548496108869103808525283304594082606125693711971426053171819659212156052193271256944135931808036685622695517661421954919979500099715537414544150038209635334809475701414546148403635512379854698585893591439829126397957198243245585855452680469478690187025026671330002128078880628238054087434145401326467578428082189957908648050422911887615445471400903189450042792660019683725125479937649660339481610036860388096373547837658014638751648118932606337135080355896138660174992773475426508720447615722931436378296184017086424783312004043150834724781314308508583176110396807796941862654188841599121541640330540971954421731639418065711892863751893679283224011739632243575334577584054082012793684804747411090151618902963960816687983439641142732206353618091108934367413013190484577349023230070486445589735768192367069025833040363538391334355852329568842081141165850291616399101511915095394344408005778721181850614903173001575567269366366496398610178277910561615396780414164595603821204909393411425841233016651784543374597375834800783905991379747820768245166918468033895937260863162078562313772565062970407615626472787460689568881631598372237749915007451547234354192430403064451546309415874385088826462903020456167626852169254664226569105950709818494719313631823028743589351207675260239399311443910983381292214796549430081137366800229747695918269743144703715552847607559068681093448906763029259502318009957652931498174089106562614560843482838702359856012949151913556147054780631046086887954325311418599607450843925511064040571934129610720995436814894967155653113123231105740754746437508747205440233825097883208318765410708042864843323320327436677481139065335977252267313106936727575080122986438755621603274009428758047668123771260637619197751689997291245447966141497475129150301839004365171762926883221235817898830572704831486773924274274235233462231155424804761666858303560605562582880896231595539560395914204551959086145320381334769859178250588687856975034888591681273419279479382142661282316738358667383832362569928123906812361675574433787922546914403628079022912446813805300773498907421882891323673360926357436550826472807589320405248894692497073432395167804654836339424525807593229379648492510422428252294323029830819453489827797362031803410040100909661981445884957812724011345640156151639582526803403616329306543503519593951912021456968300886326711314439751486801864804646926457646951728837136057393713031569069265739337882838275278174700251131585328475207801900782205999974193384789851500917641728604104499673531129711718710934422163177140694039270785645848051949198090275385225358389190649133202521462764770565800002548067474266199688151163672381833019422182460676275253808730735223904977377774636099184923174960604490838005589301669717499481369701491840369194584217047198198264330101049284954113480708840629472056865776298728441812500904592352791306784706093629612098417397637959853252098061122690418330597029261474677363666416859504140334312245199554213524056627500926121581263177141407382231790522219742626471185806282088970700123044366255094373525389955278868659146538156967780532859443926789065001400703784993364993144783012584857655497280022314637651474691972264047564251429119255100391879337688371409791942423907639714320333040821082353441498057841560918172951415884348313465774055476856899769744873963131186368408469010248323834793373709838110828789591264706261505583922479349425120249450891836710350873422354499217063325826611739943269752729503117069873253766506209478277091158501163659244254371813106068266781597319878432256239041101989552443055941977620335880460033407261552041730874860756143899231464133760597586398350836408230359516893935286480353413620364120528632059490087027164171354218805314440074151712459166201841532788831440523044989357101308205870599159672913669537045476686155555010034121543612387550076204568774079166995177022852764104367106907668663661460939495723161329937980645099060006667536831509892419500202749956500782849256803169845138385047943084829622902109257932020093106187046205439307752138294793904601364360803203816672183151117465780946232709127852352712604076610845765141134914623697961314587272204086618077767148665453131350461441806102990274756414461560716526057879628325811315211517556330158317979679470137879438072571651995891734829341083723417309583779979490237803040201297919253845530070992517386988505352420598775630371987789386663206495943368182419834900163317035964767282622857068093050888486902693195446780200356074598524949065682287526913839910503124730209035054139895873437927253551331796580234087270665144966533015402657447518767960767822215403169790229117874883307265560682887361388681621082901725272953459419855842541810755942026565393205632977965212000373767158852809756093808326050328358651776143260538486828470183143781108433463095149909760292255995652315886660855423052059395327468318235454344135429166726072573294577033208932820808392769267468685583589387120747766064269380320342127072397578050464694738529044390060184075403216875202822407376704952845096264071317816031463221830510278976093728073784604956323160652854059605910578659014963025716945410682660962664972407166522667287434613681094165675962287884421019138218506096391291418559774017753582073985228795274789096567544741534171688663938742826063977978701937624179044787888972490067089406699060571461661247888982228141945235584844329256482488241178061505413577864050286724414107669484778159556798861750006419955031037844840832203159379532552207109935980964462976120607255751988395203228992206687733491412733410040896607762311233304066692646629189676708961848045883560962875911800284714737644038502309725754193830289382055912276248848465622609012437884609901086468810965227183072860883175974466161438346554519129384857633627735624796385236454919240278729680130303156128610727283648777138574516408570534476285924593825593217030023457378892536997241994043578347806121932667490854013620858946562919791114973628836287977433013717769501546419571532621029123090496599672152921807361355733996966051895929578242682378931448851680067111855391179367067657191323610772883081269908537489760254286474473932101305523859267485223791653470348276904954573695462060704925597750758438712900243938636826370439497225808528265180834271472480454026469178219368030564152134688961294074736011037304974164068867008304708234483697327740345653012438238114475902972384460503042800535999609225091104563718451965220375590359135349886636384323639835907207890951969589247664109893164116050672139296608532384935584308563761857683721126808714759003658167490868573310085351618865496889698267474747941877868648357869647582801917986857408101337880822363740527930281532755948356956346283798581927779612087920787117397197003131734861590689829510438514859104736797844904608697646704025598541890169415128785100089745856735643953506197309519054077943735953135540267709161373907069736000881467617834448353966224547024757060105605683026300238092956089449385689857383699476412536695226496431329911611950556623469286509732562042666973360054044481759211370084193385612682523908318328609035510704622953611442140926613650271194412873114247468665962131322190336631286672718246097782394933291036596888338242156494852430573959009497789548178620801515183338933568998073372237133237656311463038088290827970794469958537746988480145430986678592359812479826917368405578051335889265323237553196295769305390147279449409690873412596311414950154663472059992119088060046970029399983494430663354094386279013850501842993641212813014875063742014427669871102055560917533353941192148651685215329141749048892800540377654942661246081063302759117843534692692487284073748670927632078260693958489596612074901381063820529719129558945324608797833773550218541139115945464451872707657276901087157514680144976119032542811717889596163598125645120298688211934789922011963155403455158223990348197374271675730525830190439679350177449085882336079785805406695848092918887607116333299448185351775010650941740239062988214820593756355733464456247394551584509863778039009084034796814764237647632855157446056236920694066187978416883560385431145930142645951233976242444845457004492358213770363859079065496273135213975605559094945503638214150857015012217981229911706610226442143378617563838472594924978500036333343142206243482624796728164687233347146634680135413821121073533194587698556918259322862946343470214966371867819884509157376238356068423886323786239113290663992681660437854213272782694240391345034985823218332517868603240964365713351017533399207482418587197071121605508573896260737977064500271387565250429725494220663782832518725509941865519775623246795645779872488127459252389703909885330650758401505215733653478769731761586636456365096015887248655326907407503236389970011466213849692909429941528142832516357566660032634106396006315807379792249321664392211412690840636835990051814673299691240543216238043442475267109178535266571695985608081832118470589976616991759024588956100946582253193445883537374758355035423554502864090935578531610665197303051828076487049163097992216830924988203186259607988812441903688512627223463241978233805474769701669323978095861611218439353439647312636267865813485807459997837905052724869372898105562592397960733332570317320213994731298046697823701097588611887000318416756132053773032056599764036030769297330110041618719857880612129034966881035354983641110552939899920526638605536284924149922607930040228424993996116764237765864100844819164264657489421643123472922213084895784794940703025824699988105224997893713163120015320158036287557607422365638730318055367512128664434588833639080329795559633926958843141813779987566020821743381395423359561184569724324354731106202212579059649215088344594366283825149893945886494629907267169821496613756806811942262267046779885513944087288117255498899430527750655646636984950319307882492082304660277960234070945944341119726146891827167941935772191249780363757462951478183594980846013896439218336232100676073123663469918731082103863643854197946481899289156239863603630099207498624728383483727037115354314128750817659507154953831591149008060215594733300704533623187959238153793268376278831934781596919334762535673190123788009141828290633004568548107331352631093198456778537996884058917340937409138756278119660407969104232141723586637632200070140741611411379391134157632948032410701306713396767361491690629173031967396225042263738904132468216367751165929429513332097959551581938585863681885248813786090882153796282283204918738515599255632161992386499324237158430338070713250385727380366679129002000163516445800658110043939251354149140047193604956423929547001880268848720398867906548239029519220486390597457856459673528025067223052121490748320201112417995609777970568351841797353680523938386504243497720734738040720369576087153045908800373312172658287177361911691104697935255295607394083349305837678712919316817129185791069030721986934760087711539386571144918584400536836328792788706935452565197573450062036765173291022546290476531704662801753768061127414269510762866201008724364440716459380731806553445459702709915439742237875517361018715978914027449981729035839075238281249638918974627238332465867402428147704467516011605233104871596874417727192732060712737091685618232115362537012571347702180669636898560842026270359507083911414085521215742736340812232870840492000458337817372728534587747381644901912665282964977237770449687655172033768590987289037015017366055746354790184145924718579479127601640486099107435304518590247858584802831205422155471969231110526500839035878185051586983339276349816444105455802050420115288992199534311675934469355123486317702847405935492245737728125932969462303432792121255701950810159131215559203711358895435143974754640377056574647182299175022335632826772680176615778906633725037827557158180452702288339736858424697917978787078462011794714145896707653808761166880178551614885769881306067986259451321714448243727952455594163395215100572220930955856218388629053215172731421884118246899239409488931953539331816838221157559403772367447766268133294233946109864704460375760579615257130811963894800410230073822100158106788656846082873091120151408028340898770381816271303295841160081925364565370615759688160044664827375749652654151111743362483552285254287374812329485507600824468002536848690024175641462378641784452225550025719467281167278194374701927508943366963884937817841843551505668351556053296718728359705082159542698086884231138109254311765540612849502094301224668686308205069388314829000144764882880008563480290911730707088878681625057456017955222495314851945462713938306900972707873491855321562153760291453737812783749695623948099557188048896250800057118934010444131250480440961740284489837744016220222127392889851125347253363130649945547781414987268901001510840800626238611023897267079526048721690273827846986909495893388523225874808694764599297208653106721558691170555849930966573817190100665529949510052441110820782658870954973072105545576196322313159365254760845085901621149620078560397756020445853121178127454950955459130812297516862769081166127252917814649464662402573503467653135548047609315004177734004333910622163136781074754004931331167584643033282481819822403307358660712507498716162664088543442746225686471101099897555936594523419049595243920050938530984095250272170984211852015766484672141481549204392420924001093638055474948142615562504736633256512049703207942273734159766658273623242606758732672552135070702799937908427610995523493668427390506578929149244750341155512818362633150735238380946356203536718766933483317812895345818777056887519768578518999168243672932183005683651440685005332163115461809379230126923774506902070835876832045042527145430724939527774865488901506897462350775474668991663946960052566797419729812741696378553551969695774410353139157714963279002578425114951032336902774453604671771532096263598383200329232129216719272043893146922336445121806447765412010654022588358416332625298651893361085483967664471728478601390016334442987923422834879650449331796153979711558124569726876769623720494855279989065866337257678403723090811053556295610865915357299566918929376973385541923633246443558551528055362062823814401640127442978392547990348618267163364139197246528528624720239961283732442333476091081259776369929505787347708190248064415882002725314984549287587832133442558042681916117596702786331689551132652060391529234849785418785203722742003077187458871910507196035914993350509235812631415472748047789106409322081771132494863347419193886692541526265795271752175529838706352609953482425055325074875368396658545411093143930037460391039137353533235099781006469900760203604193282933812855664905042498408569829105715651754295567656020591311074980318529574291584109094504387564835859075652192227418432791952315641950780628338591196468006246120658867908161254046169671706312824770089216279029143556164957426411436610242208672840563864904929492248673906239807626967000751200572583312214612932138978856151884928569491405478234308081711411542574202389903280424986997038002229881570239606618868839894717928151369158805849260960574841464683706189289190763904127328418497287457992814392507784210348596485766135070481531701106846563270646582460848898894653280279076917377468368647121913180271323147595695353669076928388024091208719806033011228717817670075902390731040503125659293577343971001094035831748104085153801115496052096043668379319696316190187295927880985868997786029941633270652748594705653788264932696665299862318471973691398433762220963042061135984327394022801255569203270716887772306972606516168133551196155083602445787044303475914716031666942350561757776586244506740433839811415340441165594155720753526897160368315830378585147831398106530851769247873021145102230886783110545270114150566603312488117779337955643046921422497073063590356959457271053702095292327957369820736338117179288562426439616705205966340864637839720309280674773675631410476786274221227515457951145174765441851303196221069491145839488385656019842404168367709944542367815112431715739940630252593454908753532803917249930139332300920725403568442914783527275473695832419896165488788004210961712957590010122157019628836239681866643390465155180378984911309430789849816824787054389029132911797344087920987402089708790192826649183061806883780698688116113967601121827957346705851277944678488592853596286977384572413811483173481258963064008415222308105545731121993608971187914687617107650996986977151846525285694982927030448781919538763062806485020393775972223207709885947268310249788654283852057357712314823376369236243399701602950807516595356285865049355804762501141764041321540711011275869792157083528159014826700716832906783470542321253748597328930501407099085028792182524166305423572500691500070057385917523604507640906409482356572919220143222677230200370802520639410687320617303402647358130806407082953214661020205642640765155097395391209464596651942390897244700384122377643376222804864091754412039904964542371512784289889545714173925310100204516890144602404450177853991622206049496679990105661563096538883867764278090708452136130421859000432811693595634098641737603496663491308580191648675870144294424006019541576592487972903238176064562174790934639948824501551631481784415362031348213507440879480671900745206788780350603108433339924157996300184671649667312261462101084466852266233621486478078185353516557835983889238103874280497677118783051584389072069250541343753367661046417982596843976024316730206740290025439821597237553400598991238690989833033723797269422745627005173954167959364641684807859640450139814472359357968659862960968594027053060756734825448313986084254875243689072450640967097746256031645206257667443593809960771906521789647406682728358383644099563237571559156888150845668570240436582720105909261817720980106993929664706141520242410474618334392580822770207147877834842266454320862991564828292294133208041536723620909912090246002665326082646515301334177678338171739542105914226002613134864840353302472395640202858175616016070837567916964316037840608875745594441227269287283531406221438084610031481720664188123045295688083054464824775023385879223509304068158963010683682690553955533800476565947561363247108527287785632969200493550619018633419549071839075149581877999646952464642791054958507387710319354009610858634477469903353079567083061644440899383347155993484009293830425899957843674908421651809307619910343813129552678305193834760389962779823436062998744169283794264252614055323933966007847066533074784108963774333327975781666641471058845572552278168780853903727991988425532550033683429295586846938301522966800495698642752017308595293074491531962361878740168727164332914485511834386591090915132360740707284505555825492243784289569113542759858149274329725560988831391534242852449092319119273877076344970635401960453900610158432128402594127041489864283728296916637824595801567881529886161303768113870670288838574226553272875780418349732232889223325120490339820483643497743294194687893617109858433620895195402810819505983357086028839299022180045803889678487418326771116338750824828767012044377245773063443078248187225358323652459227515712505000913121047082066729287866369056492595477727567926532084306457689088871287577790053021967378133925593691798176317514133221797845495846110638541324790329943171337821638121025418734961980563305118129107622523217759825784637478222931482918529962807930515321424539245537945474748523841664410781369085110376713408111859826918552388595570960614381003561278693253429399979475708132429494129809224419603730920464707897878614943394077390608947166830697650756030041054788101159632082804163060055312954280225791647958503398823486889759530306935387770147988551902278761832489170842911512865861095909076715633409149255661960793614889960435419396489585025813025310739954336210507228492357652901186043473175408146338807102997628921789049388691013785024358313729553845735994661064572946874037432452698637220355994134225684865111990437943620809167211531592491204526580510307132680147474477521605440300629446797393326624721455292219509907086335558576984197549839437097988482705282943474041181151735896865114604785900368057999703336753871949122119123644245599786686692002042100344829391717469651327649510397941680355220777580981810171980053216389195932202273147386545632101488706888637599118971200689887111578256705586419536205601690333046405421614565753560528934627982694377822007245862770585558580150501144744789559243213661413234176412665380111619496388737817093174690034268204531696600947235364879732009871657250731625469679028916634292625918657641160392492543492118545562129661928775723561857868227532567196808347923302658586644077991271299835402377323413342221196035865605708575530150796201571050881067020298721816627283480631092989054163645479415164578549100043114199300775415582823704905481869068830946525907336704342869980322320165188514701957214580167699239951567981701385932481412965630142299404392956443984632202701221111767774336063632431945811859792648794081627829422883998567115446171336414009517111157492765867756696878439747387330301594273624494535830084414800937331670807417162481042226541964125967192638479586251913590698422510635095925490504513255067817220876467282611518958619020547214400227736929761210470805496903292790338052660402535089461340833158186949243644195825767105051550118037077410789477597489908237658006013210970128907666520719146833639006068847795914368982878456815813162954711136796399565140187763305508029795963638429284009831633740134176181993593763719745583347511408101051474395036323015561596615380537399063534579587703785034238853001878943491344807489105324577874562821109755276507099951447626630975676684435989179674072600724642294237006615946468814473174663389654931008400482431684370082415784955649375214845306109398935632779741856301194974092443771683515090915107758370710549669735122270875737170942084540839655880470627763147625018319484540318488258881412349961789982157032386279188260543673428268697140704516163981001146083824866148898115408575557799555046570490360602180190462704223507949047702658210952006985121152779117075138685109838914893717514903212259022926835485646856141693021110937818859895248572708710500469116381412566622037669057877821989821108028508429433161149300137207196754936609798712120680191339060873325646170138334042142071557968081886750106815459380429319706920457886667292059540856521064298767952931953354048888123052158524105359080728101540545581155415250493107560500667066662176709191802939311132739364239028540609076896917810015551285600349692363003646154795247615148681969633477134212182833019715395231839319487646048283095400444034092699103718842071802418814752235081901119726942684189403433962541878533143019657742411546312863269615633878990136169321367104329828629141689003621465192413605567700219221492810596727540527139414702332224458092990562393366914566627371593049846634225410673089923846294366542975464404612713761056333301848702727313893230717322221027219091324661402885953171888091583142508980744018707445444608910951402150915654117044780560420401575927529664224168219393640820497169532804216286823378534503787525949295009657882324388904216265143328389828052636666814851369864121086886422434758925302907205367618211718802819817510819783054255111333439383178001520550605192975462120373185278427785432658993486736360515146928267926114707217047022751734910173211085471147847357257305271352506072365436890366869089658024313793658347811505874957983582395038825526246667392721247390114560741802797048104651152689183937808046527215902093246877560588502830605497536979703677998433382006044274758677771172463589947711902130332166656713700760018337037184625535207694260370418086514949582411889708119917782738072970004957205053101763885289590194169816352916999946044558887106806238430572979485358011132536234765809084249568324854930858110335002359355287871867909561484525531942776128534056473198470932478719295105123946250588958323723799211808914620677738183610337190924559700877878987783930154187879210371067679150877094414537233492282687995581835788436120885337432989108122011801516876544233357060597891677487435353437027009786526675035159802179741227020354865648540211398594197587253160445056294262604297374767624075840468282286367204162457508653021107432994464107547027503892221013406321088616246281669636737527538493166443910560073090556894306051613000625915335000033661791714765574107534815108311792738932179074282395093259857869794527756610107058984801491699393411010292711698806623041039663485563306589711303306154551414324404333363656546314662358639566781494888444947515512709110014909580761022204150703282013535398882237498777532073140640815157131781606693941478829187045017718764530045014676766900419628910077602486362623248788538676129023258153405014191847739331188138551897257640087786459760035504551003514313180702207823444261159887071392932119707123071602430728401933634609428501170563626976352738937408321292639911477523689283739666430962632298731163449432868758244279499383342839729327696614786167859432050563162283704165415854155481179038387361022752166698720777899793208023612289334693662320482023893594223144290472271230381597790196133897993384541944039794538189809483057153165341564470469673669550084634733384030001794616196011799254558881673162633849195741832950086212857739500334407561635072895889300717437601354717593928696820334582732155955775838703731667644867033248627265307187511179452467833082945567320563064278143914860090432745200862559737043304612414082299347251615141352477697306378134356410013286904101332285867825088299514279538599576839841171826499836775834044301460973184619148637394047014474525327886534288875328828003022587431189651822774189851031596381032456979541391935701290316011022178769260044704291430782333001018604488972990651646792343092989125830064560756780569855958325493673086812030005229721550779159116599706691993652426241177006194021646550806063753530513942828877953789563748259493105243885243980425850775442282023249946561103295768485681300163864110741159456591924265378080962075679211878504108564380216890320142279227252565820425465582190475776993572224038509206129496906690123354518161584459957447329562959417848808791016864629423742730937650775822824926831395882930386130426988955334733263225357935065640636159082741881129374611799923595900780787158164069631505065904060400754321768596084641843018162718515440204695626481404852386086548516224991189792950994023552191483933860378015804462094737343294090631946249499771424784156252056832204785481036755139599765925663872136837882893295151129047803576670508974567890763977323290753867385101365968194700128785661245410524817054126084179127163463527919454593310005154190145526286368446668604107716208506154217342294976985447517402109607473737830891329510972116343791834130377940704598120556676952788102852022847743086201155900081418510802557232220459127631154702952333170170938654070255775964557371539274979917736685804023608166527435303003656183147942939679598296491413925839414222344381310242137470303989401827725518645466575183526378402216887302407544762753706123832405906661225337576466026514566290365497786083709616083378376820802710216079738581375131205834706204483749346589203351123128177491280909551080599851926383654874038319769760674235355019353970437808180810159477939944445775995224878759702536681988573169204706016362273312269119584227511892466185322332263533591977918279611885796227093417152104897010062186464719249099878871673911656527927993192597557636691436285587975188561440654483612392650226263520215219020069492832604200209016777810255844016142755665278271353061417407999607653656908831807567170652202239948541762673317236178495044735686004908405904541221448582451319490806942309269394786101332667347982514048692826050190172646402331781255100337583950572405265268515424669961784074365778830760468664826413866205229850127448016424438327916346554880155227778843091591075956738277061891614325847131893528199338810932392909308275440584112380933131680955534800720845672983418766572443050747212843063322734677324192848808152013384876777998056696467308185479945053264691294506211201128466617239504585330161553140517432491882855285044588755455444811142274227191678364842983894785458628841945728541573321767216787685541243536346482962783741415031702090056041058190471095422679998862029683512228207148597823999337151485940603951342010338798592754814813074080148684050414630670842859260935688903920636526446843244271883496725261127526446332891093004646860276463123035672397384250232147473337767748482509914771893898066482741580682618675650278217709091757420881129874879296970951034145675369735360460342475314468779081907313363282599043844710187617239007368420784777428367871882232440490820311760652539446687716883715538282523421634617148986879836889469222407913201895672484146617918257654302427134131028971028199723925633455424316324312827862949992833197220835900498683872283035866635010107166269729096816000889117110033929560596595073803899585031903404454663084600148128795827170870104228834718758692986409420012428802765025715560849593108816753788047477209687677697206753444432838796880525200765325235572057334894152847177650174003512579112506198598974647834070044584750607557213776173821480710571147568044620479264109502353996982294245577071504617167342917916989605163971755468635461159574144129626987254859145103313350269572740866058955113461261239383458068265026271865894942245291085829805838591614687661417276674925320804908244764695486983658731784556506758834577405724517268680321375591824796957102594749179873463538249070881217756908752408183027002016804717032519251744685343844006713769514324906462037128150291391725130709562864693988658333323763678689319929754059380835296493285444889264144526402914231428844775608857312069814180612291184820090390144478582120551506438356117105904711401357078833214454638778448414766518175641970559773427566482256798756886488182875708409456196141412849674758606663036602859853625083336974431511899750731083227371667476949177770247926774891608545172349398357188879622524930514711902515332934529780763323119351580556757651671431434735634252680624654275520210956686223174462159610137456869185943037646715747394715682509055663953583028732264114133343359590908295748940545261619019090527859210050988688052609975182105217294633719517965385376801893748203511394691655011446603086257675766380327626236922804482222778300153290054163138588182734028497858050817638713593575434299237326215359153028970016424476395451087769345531944308956695517407244928157065659492047244112324216746135157902042801639412656006547161352749861373234887414769776775264476617747053086053464015841935002629747967787164442550475767271795257662130742003518040354455438778233888439740827780812446318568755458148290614427687404499534250702990925474556225000556694403085134324117792043478582789901833109879902570227331096958168253976867503230591544156983706401957625582647945522111809929483704637619168792131727221088047683094865314826309749773345747282855083035643072108572967697020687630242376056193691531456924788527700622361952119982403521747487736909775210764678713464176856802006300821446099711416856368265210458602607647636922092026778779892712248124541828857693089556944771904377503526249982214989719219772682471697055484940762839395535034451856125190542727108300055145310959560267865133095136124649752475714187035316297178715492686488270718912225931167896122778234581029944979020165593421836759804020412542867975987864415322817971088967888575598959418683437457626951718571528326934273189947971109463804584758235121009137687448707306671206193027906826212933052824258172231433494065140531740488298387047077357712607454511471078467903605002308703164194302617982060116330333326319299734076333283895564044533358324516449815451839042779546046079697551663343557975954640047199419106494091015408385067152980361813300909706546058784726544240860122498926113894153332477425583812905584153525891604795259735571299327622434324957791241091428738389309455626909683294713536156668681128291074818594640873978608970646253543719652006925177007775393177199815486048202950456515947676339669531490782487201667491734583942006570949899860242274652042784244306218402359185513736985655984607781498044313943611432652403486672346840333598329100967966377649128831667266282505444363632000428239201937516149223325351954471387223999060126782242069750754246143226410197338694134940266270086592864891514830376995376035971152378536186340153439170680496342064600681928233079659688553789998682551276366902279022411693321101812552999577835824749397945678713249182145407153003359558768133534491414629785094014312124682182784878333502991963962699568458176438856627821759928748436273266402831010757430828732016310129086249371773559104539082094425710376630141901559917150235192267038138322721203275345183252465900134831300431772643578816959196423047542653155760896120189256033533743252458813437649494349990105661577365339436273824809673053024834035080024596237720142789426302856992447420485020195108649577310323998824742697308157044376778594361575440726413623546295385626943029860508509292064761086261265719982675913936587773954406306376037437239446430069211029745501652869743225614356090350575150999752180515090161049605358245152970619324927494229499093974365644632863255356903718677465090462074960673247418824877469449765790776044221050871088934980378689938496859725741525672542009232765944940219169631521774558954595671921800375601443466287941643896851338182700990937015465163925403103947807794347580202664868909891068862332931682337853886893432499881058312507194330843143307649930742585629191678568702542700237390118086071347423206313744649420315973905058973853695225250736066376020268104906089871892150338877167955310121485371814251558969296547170322811069695891013437411077998755427401132651652149533377470296621226701919343002090924504954725311266889426439510594803625740834792031655301660406940763479699926018176667828841330578942850181026712743623288409322876072810082278672957835823651769172777162921737082307674905088108687629597050398224269353683998727814868521102329650844969349769067151758579168593095689961097536563479898144646318036024179238249173959246216256346413380138021347209059960191505271166294682423260132930060953243528265965713146236927942668520966054326797384527782969256164013357249567080832314137753633618945795929986907235903546220315948052577409311760055435464934720713713556175711805149232804388722054118859409987221750083097424680368757348829012923531545659251513048192422244157541764043309629314323928616068695677941320140254229821568810509085935573272575063328308985405427003546250014837563935619384875009687172302552195646586677923045407169146688063273623681071204884941358349512792878196668176816188846773285085414292870127885549207119112682301605678795127187711056708704961744812310311723033552418939017216518325781638414464185084641818448883778450764241022561164680587348441557331784634670374452996084303243214745414563122033744632296697361098658390947259444609250093571974253397828280068086710832653735633570658528629029602737700219939398585568774678023232762870615672180843600659279074260211158598018413520619814273659442519862491948196647638724670607571244757438302269275453895765620232114128031048812837450944017938849253886980162597128807241351480461967441038014221693033493942977542727119187753449580153521808925615358530130857525180156783234541222155335555631311666219721496290409554344858711327375522547850067414552169686178281824201882890295655471652904525784757486432157863200880380056280269358116758647579943890671570121527859574721273755541969949173702940927920787204720122207622807488361415233460840051028597285467416242570192013508945163519404028122221009286133046818510555429389247133740358281962920037265293187633710076921036957682681500496136033408567002950158766970430563503912320380241972024709090132478525258325009508244362419928054978721343667146441286309244229781063233036920392525537786765895722591095234036440116119999251938521851815090673673557490423345229692106500265218799892726240064411063616342756858045787552477043467240238127684183914679440359002653428486422625525451302442268019147667819947380650419407801887811116828447798920603432099108287733044034023868571567647015982474771720307466445737492339028049626794431105459518206993158542077214292361860202672141911133045011705329398829946966740112655203005796107621545186445112089011703537978458864253963708707512905633497953283810378694514706198724966863231613987153824086034499924697074789396002415727898294905604068863463883323130501521931416397767105052020607505846614161864661455705080938965580761622518707793166661710102106056681752148895607351802282559014724820815406656260682330668249390884678906005502956709575569780516082641413105018142670267824302094406985709795623171471963452766249049885757226582428016488508144065820667726790863053857050878761233458109818102717080928891385824533054472519797031309052530147671881337453202137588627664543426414388482607784973656244064507921995232345548916103708953326423604463671025183775023368384641467073491319083998210746322956601053174766695223627919403854726277591332221105146652672257450118030824025555336014424084989757021264346314805488626908704729084467810210179560064458300565070927223146922079218185274653456241760459469514480656331697016298079900120301278756615331364703334864288631163882247462836018728617048831787719851559021417848609531111094898956214160626795436251570881772670838809001484395743754302482907983132456669588899197183050317440113424448557767156130187231173514646161753150116524308265174984991947925716339333916188282031339948804247215757680626000350604735399533463225245490533819280593226686894272893558850788682259905021377972723240599667101021415972557169435461595166284062097634107722177696082228166867869957571152021909619677636371435601323439728731538371784938354768196080930282384658073255043016376348342435105649491151901178806502546971865579984633039017924618379924757308081454432569317969730769060583824348412066826088328597179315184315840045140341774197945448586710596233827762852200297682675467088611758280394917136557343336007908112073501326874531728964244044362577363821475416997114330512683011645396957669294726431543792538548438247658746549927903252705008817786424434367118072246679136623358202479494954246347424891730972294516391789385040438093636262428188150723378216089966391220021300443242762842472484373185060337238494297347983426363551571609923235664325541079381532998330980234001542270070386955559103121461481956523672783327574307735776734431065198695367949478975719713490919950577653505178687170283144631243688129228022039104819963414880228025271980817763904267552335100923372558614850617562420999285792158284937402138556015403816835057792130973724086806315720182110691614590895096436771491401289548358657842791154723261234257381122520844914267151232471213007711600572986049528615212860325993622361647423309997073825688731084371049125715457057127221892286992157770742044130532648978976480308265778645668206291992870478415334142827759677400094456901321581570205727606562810753702037543295615822959852700660071499376614793994281471759650531923897556984023551503427842495556805244487524157666560023751170364213822489577838343143763164403987223959344777520365468581735390384864382040875560158067329875062484083253374802433563432987624713130833146111091106407983937261987450938269471259425481505594588591085296197682864133088097768765574967175531837051214186366731799938604023025074017992528143116084998050872226218980806401422535094535125844841338237137881019679898638492913816239595913440728223327842370894645684580652032065718890646441370976509531133243169038780795439817699765586707089950974666192108991898694161465658297323035604390784552205558469987602290893302694520245721520000607773132849379161470017481201572538015565352331562383894489754238259503118995604657155417536427873648900935355763991096145953692857301564083568819647252325387394350987309932554272496929875898561785127968597115462081977961083741370688620143352152321847202627169996624509643771174720994954364002655950057319848262460021924016628003803371007093516286907264302872693520777997062328039517470047542419069835314626372661821975992431602597634876760164807046562384301116189401309818020954148795059472660514140709487235626672999174319059328917690622479483607003806336434130997733050634175238401473067697746881071671686886230264704525170233549055299558517556946234221864603375364840792412714895431223390117984401169435944542796687344437192204768713995294721115291947196323452721561469555681049530411097567507929770042699587046540578005852311973615699294452447099117950555549332643789336063779190325255069648714091602834949947156670810791396270192503398448325928650200796151372023194191650081771039740833504690325199911035239527830241007085297666592537073247152516130198451782845291851459734910446057411145981087491091734763026366089691949613035992693754579520884677247036481067880258990234492507770215520684737401986429384157314669907329090185920855079301859502711363679678194195109751158929911038430365254278868722160220730759888684053631492256153794294292785601551899964039078553368851196745171838774424087977776149759720665791700903210107666388347002449421733646557575410332752218375326741777523268238482451664917057188823296402163918778223423685019647884682475405725784203387858784905633983775621190951605526047276255753167124652302000050884324874948259307291133749002697433466810427174516990591797188925935158733094935395923205113681297666188254808183735518968045654856128736108694085927951777738680232023631475361776323725331423357011173934232916665609862571744582631776831197854180063948019589575374244180565641803075308728372465474116213552513775648584042835598140227009975430904152750323403174446161134287813610927444355503532529176885380352096194770411916905273156249976181895293601347317631646092016427540516789111070496337259929163769912336520488843156745964288250350376834877698292016623282542602853581362615027024611022592902424022696828832737873755972920319449473855882334343696540013284194325343964008550207132680537274954207732200940947009829912401056142818922936077239183992558901129792727149341241832369743810585450931420945294404859931762748681567583922089350913027832306620952608824619434248994759836323254877887820670773744493453201541220637761852462724392664534160058808000714121255726019406994193068791338982585292802840401106263164959706953606118469235256173957236322787990150479077442755629600569941036016128441726833023143082130248357617175008416870723053389588325011855951017182359141117570607888581512142096487518594752975865197411232916406250809922711870766222389433447830974828031141939553640041742757453545044176819469742637928861921875670903513767927293061284271787085733195911508798178995218357316658295847296415792588898697859542737242477448616379014806341125176338463765607291693381655001811046253672295222301767895355775823247263852633956713113227903833124370507927763394259013525051559146572274339971315365480605592266612421249634402887871404329536608172920472194455916270928129074527060093470859397374531879564673930112680519452015867060158178102905876349122042938624728492819199541173299353207812460428342003627101390837561823228396201787830702636110947384105779550629283684639229639367273868667755819208024999943680389416586281624695653273536800977476414586701841012847762867429760459461296653278278760339738336878622978171147392307125280221524489781004802619739013683991093028261341739949503236206806890640623877358787067748773617754914427319919800507493969124903710886157204287863837608981187592781727510016716551160582830808374778292546485830985880609937026930980830285467388959212288778878720596896348798899677890182243735449918139744776554247162771369502549329400190441507017671421318132771071785732755754966566437115292549267400115073926209166070561414395667064343511704592472445346709682802330734493457156057289488972863874779215821504956522463478720429279693674292127082443033541723480889466390985867780996797515907972378628081841898938951685383983194452208288993259330066243168488787003239037457270997719734419868544762219244673220089861143596202854279469057041076483597165351263711558930050300870626170493656887028748763491551526485406700864812534895472217462565785890364408515259600940302508120102454431173334471013903958185338228708695754548965479514257516717788104305646450014007572372218696831012146159633038169248443650890398095682292220775577872610997646406453410958473828305758801297192191233654960725254437987465853712259691085942101809249221905409153270946020363760574932350960590365356268035029958976828240120518499394122270778483762701228179863417346784315359380058613304806561302583323265316231184973804422491734109216510152952596446991364631833877901561289386245604904780875759565023382830460896462038279977266980537046878134967306303315851966680083589104097478870899793574741039206755861480845105615139774975302630856534077001989065286065363848055834462270325065432597048552353187283284357488741178036187429029253378082441735969848339465755647662710299678805174210327071450489745135789225684188079018092613437650900303599491147451691115335823070439827356931940131486508957877464092320222105389727206159651396496484716337388930846830927205966123929138481931115093921489380778857601930189157083986285178842688726372577194617811637498730983672958263543275111727087211359599909222549359841723780729685367776142574742993958339246080608126202542458567297972489460316486032468178582585747251563080707469367525724318632610316759351712978168531917182959999989647828443342937626624379813527684018275218048471730919799215719862177837639659841866024006520556720482052962741516980455135672226105697285556759102444890061154968357345294230272462633205664664650227453755778417195830664057257037124855682031173138923000292878726325095723845266368415993798086780440636679942979432462045815159256957002240605459200522891002021233956956433914976196638367444449306805919687616992948533758256999057743114497070913749387268143143163724024183633320064274359172496751628927505686989908492166831830177373396976117912187373370335416024762622349189993243735105475180422759206378665692344275196000630863843799712060356400996672803154521923727414172843736283988725412254601399892007797347628303168526167743746544225749711157218100522425395880925636407327309287436037840438231910685023284890872463865574958047507041246128840098375112826216696361192517558822038521214124748095611010228753272761259382312764243112852274039515081213403952520076497226401104459717074631467738713291241779960473385785158387753526113343222606177969225433674068082975640451028455146769717856678234211750301510053104773449305799140329146582274786665812442680922786941536566277290113386642206508826163966501056139033940124352308693651966137391708394067682519563049086890970669193273375304406464518719431299741243573481941007272803700801859062475217681790383017327505458454238835687295680444055967677817519210718980745606382109153099346515305554200701613637427485122546992140361640542968181110206559247085965802314136330491342731497637079996862944126124355300544975398425475196059607601843788310807922605064911189920805974101639628563374476066807014895996843387824010500025023449761588194462145965992070005893815520097719275800219968011004429521799397732658692513030118616278833306451588519776460678034355085159760349340220077091867878070261575776901610376558321750692436365572474756217448196854120921501317514164165399178521249256792160980204929062866317518716351631284343822554948296176408613697987053414181571981570238854530388229485692706249976359171528728313417705166796914328715464165892984285921029981696792257916646399574298764860231194051827131278569211956507379320705125212475921453471565548344402747595437568469638700602737998125128329635287295315450260424813301317361157320443194548783592227893321391105441279980085178524892141146709024635946561865104056272863068093636672394387570346775408542947421738714245860519993273891197693096075622575780165042461447210843022663177824046760949671012518567311223346807063615409919001565027716348631890883398348607798731127310197881667825155497979100520542100739855107925754059728719864017164134524880763734265662118268441954747609735529399004475865949064763710627932146909432377927074720783779543160012763394852114282366382233298955142431454889571218592789722613764618420939760103317827818822454514403215145190547922783291547774716350478751479473470136878640732751216397601468297955062555972388590121737734410379870334930560668641169840782518024046279925291355351112791335553775244999769013350693471319948455601554206053932501250070520051350592903060202031980350101265017796895933305222546690708801440798099000308194813706407576936487147936113923845776901213947605312564958605446100048572506826218361461583027920303094817002585917887366840911732724569422760393633432733202732932088792960674548503177058463035768714870849359188182286091763462084305015828465093552991338237081277780558531714125393777366404133397830871112566099920583096936327446096615628058020073787808767281105524853216407600405631705671102843009433053398245067522847843834180675733799063878445331867500429489203207559549445651347056322567409760614223743039002078911897890758458466799793904224358120045123229001118589100780483713614330335941882248458984773873237344492392270559313273718889463595184748349998873935657494726958903247700116766634390887833107288042301940250251025410101332939545863357342318339649848856509582908684520071553335734696559053718786767271844710716659653235816136622371469616672153703152986202486264046470706674329568092093704291768461760284292254292365069809421845390138564490019277151191723419319049410813656744294991045468282400863959883735749774002481376720299785670443376514971751212119057640120156996934910188065314537388726382057844670035873248130342696506772059846232238689827145534139710391380425378899200718157580216556448486923285749847155434098788161084210896376759851738999637169866421133216225408363505678405048207526335632634740279658708379056596029383894810488796958115086445800192152984178955761849601670431728473367377681644405144078956098293457390165463672322191892428086763002174338301552161490851834695205343300898497345871151495200323867190483720550832631327424830735489524934850675992165498216770014289042853500890803836357274526726335017349360203821347036437288412708882919347475332501600865307787258273790883546512013535378384027357120817661000790746640233232271353189631628311009522495451886447767810480190915742172121149915184496561059315191988318653062032235280829362094266829916996660396242057241761261505519287923225217317654473354467795270750581193578488192306515464066923414179560323335362129570221060816480509989782988146148771371561921179453480404499861889806543992250754826075719344448226092081182548035089954662420910956994501260419983855892963722967231944324595697421348910542154851792340436670406227450985445408248610891800689466890477879149591891401243385353846723424187531409938601347507184624774548812800056795543971238741171944994901085398844259932432439465464902285612704687682920124127559509395511571083760159050261979838742515327263479856425814715732628145766843692047495026498252640546841258635174989016593688402179333941190278170328959215679433555897710829369960485141171837714375538728686460212659424121258491896861451432305447884529527187662040202065562136259597602349503382867972219131648113579735305804592599898292217202572335295808774018646822896904314297782072622647242183825317325123735117331675650535454281647089684106753503650814377375709221692605295104060554921453352882519008903641516875033896329736322370546811870044648330746183104836441111297885210290866054115080420508973544720961148151082312476378570579033938866496901281818367014955248675195249261713474073867998538729452670686729047562724893997134577538527268880740615536225740980208774540195412082835009506315845248192096531528206634199263272199621756288649507414940125615379273898851592051989554913377378492802549053228932509957257792158038553804349198514180810583110385671888024196697819762866657937559090649449235582501587226651058020848514188430482058717436329393897992050247967907366072227566921505681433590358072687690906216805888663404210350549335544155677643307527125399412707561125113804083422753197035217459419560067516648619428087980551091912274744292414294637599775763599599026144098381031117063230005702355533718259657687846990204046684981798937322042798183922195718153654269958931545596969718747016293133603982495981345063729741003436515636267226882265609620176548079173265251695228533261448220950161231688779782289046443899536238959408852333432951299815301726704938334132106627648035864520825453894183577025605186844928846517458518839448728335311181869422119011574167957645743318363557776702335661185215960650765295924945080432818928902318402903041580279005016239563042349808217422762585150651434158700485465252412614527892326385678562594698075004382691232462146672800281896326224370935178264929362977615168497961770651250774213404666242239441237355317469585515263115759379576707288540032862294905984993549526209367824807618509478600032981213843899952339614437690599344939830559687105925481870867817662656481572051104051034219750512270577357329769525019348490010224225274269028791343100902126207403716868766064592902764305813954486414792865705671270980581305597381578122312318215173829521922263463754886178697694421839738908124910049500822053182302224377753244153264253747516450603027048859582138806147595556573187360336440442312691110917393517844476757789336753162639394978320592013720488703242395839156215694503414582518969030720284360381516720211074721442970538417151514530444863528619606782008395990684473012642588194105686914276809042761676163214838443788894046139113937388209001395892431787252650714211427311110121019992970201199103070969695586553849945755653151733777304878856367423607549978792773923170054519485812907544348436024924127042253226613626428957126709985491075819925387303628135006120346710229109464415483771206314574748320543665745862969882467099856055233486242043324590479783086518626182865126781805121859101885390614297813774059391225328545311952624355172780287601897877375841924408300281066567731571356584833774458773534723857958827667543065144976179670792007023808548700103355855871821389518918007216421087277015747355750742817161672404141859504155215271750383578837435627486879264853683298589840412850774377426009603658063039658851368300592527330475778092051378101099840101095989153898850687293503175494321262450777046671041192920397773927832265037711756270975522036470398502856355155186427011969616458166121367170593658935007938695438852499735429107536281151969282083572057343488688945033858949973804721748781162121800710636209324079433835932830908948390088527355280027593764922814764424956104063052637701259464110416973392605377420688290511291020861267821155490458011814027458220729557906012747957198217950602669017668185369017057577309054705489072966068755151758436752864220560439754897222324998338538417655259828464269982398732911353199153431285310460879968940175324727079601107422504583420509949489434166153075381190773703166539273716945893885908594365701132723447915557292311715527791349720774257397511675305586593172862895284665287267999917046251652530131070261735408839586509099900209662883021747734763223066669455101954794716187810430235143721297050039626218894931574677902757757845453199833391960034468696182767553022896532032315580811232128404465478600299800941873465344212823036963686353496213245518615158532030442303053197669104650159214103732259313446927319170032006075443237935586954734707093706052887391306902102549825596572550946263295246565623261447523973413330300185789282328697634854530060149416343082101989439742414853191573303131933195945882507636912774362797649939292212865174817890389925300278393257692439966643095820063542170765771417516051549835491822957281453718024567061477054181211994805381233445142200859521601954277686860490469780491063440074984485741395111421330572785094840512137835909077924580015991718774585645403422203060228437532350680077262145029114609478347134389719470533312046751474513535308336167342746554488573146649865129194813702611699289668920413520982455964149627538627016045909839772367644106473720659820402071040117398316690948954057512165868961368700604570049012362553033776272471111850361871167496356914639310035925341468552865505596449831211258136699756665952278663406057704559752029629279223073726560080768904157908489919359297144158554384561490515529069440679480882372852972233348025320702438452913951607640575493245143506770380903159855407889976927434715058826518567491346930482942245933659186647233579984387112384838460801567744530659143607440659950116973510823413314912570641073288153185268027708770864189567432837969023345367818019427684151122312732264044628938591449015935780801843967829494159999711134008526257047616534881653998617711449526633115282232801801487736968056150689467434957221883349275776843712541866843976200340996441227805111428695385785004634242637716927879500453952960575824129573789131971085007751652563801626011882625320654322177873115574370469494789657244590837455199976909783161795872053458444756113326181431174964866143011617149622672388354864534699096664342710284951046286034651188465608382430645261879583935436515567322105179049565603835844086492039105662186223939713665248802607907778236690521781300278184079097546529076678403418234032112934400682512849544053955841612810764836802748170279343686247233183159625435669982878598917830692261287637142499159828954465334124683446347748709245302367755543995400883000077025180024070975483832181716820794537793180175859360892902151406571407766099324570694103448813711987548837162098670914376672769181965447280593165698817399473877275622862030048540387726172958328078335387120172082107487454246357052813736855337413424243103651280470822007277660391444901853390565405928697806458761548275283472021493353277858026330001798024982199916278021080581113620263557176534621657222897728512028047767036452391068085714578178105369036847092507794812984609166736787946352454804544943620245752246066982110139445552400545777655118680144847991901095741338728673195633647087055877528845547966761665722956727168134045444269187557727637097537574956514954044773258190270537490872171212667201108859404377421887565683302873302740837551003544151443963383749298694670302681562910840994163031051269914526305558161123259193193942863754944454879195739275162356090424986695587674655890777860145123133139977875055237148090777646836044704517058446783311459767004846424656416091963055192136130030225643612844599764567060440649519468010306341908282527129712726457132665127539552750670128423589769470416932299091525092824982067620818518453868545890264747799061458401114791042181516272930828908292704116999484190364542008719380693318852430879924965268041761143296103879068056578223284470953975411811049287100070901747273829037044126528541421322801856171903829960634310988731938260382230908999587553920930082200797519229026218476067478937193915583550743055075938752481593653282313675108803495163741965525594700250558442293579701465294858760899646421228100980015481853493551033129858645115833066533043680434068245440051780224444148683735323777608034078338136416542051351037667963343564099872598550440509778486580870097127645704858329977435488396794777038652944508644477551768112388355114219167688392192350514617888698801326819991384478002322461432797639343402365986434630559813810767558791119888823897634506121730205937537682586403904518999162805216713214126030848434084038105167351255495387335964936990304107806007950725198194319258269017320460867832033147384637496927072233809926091920345792511358445230048256949199782470131797830527218568341462446606060594603531101890522729154920731729643094933902490893448462684495517099743952408375403383959053694427847076634102186441934162026684664469834420287866363054336618569259614359784176747425168340965354590603408616242525537636513193892477435455278673804621136998902115476031560564856482294535483477230475757088434729513162297155600720418825082419205747650991914698871476006767797256724223332600605460040097513285103977646683905379390451139357293922622711706846144073899894087017288409983726542857106167406790704714012550307605165195197379840499310285649193754116383562130789238456509639606502591121741990368111951717866669572618270744193547351816876593055163008104841246197024080958330388827784463894940138746488918198537444767547157706655204029377447785318056545133057129659974221864259801565017891656586744607185108225077453614684993773506106094841794159409658719978724145771011246278180914898837826360188379649545507256068636592754300419836292819637454340746562305132158368760249263807495869507133483296197573651201815492913723373632128679032462030751581341055071384105712096724059906548384102930720249243265294169879157184005568702174867387222978887419449765605276131029059837690520849644835183671107904505068150445907570413778144690124274034649008504068086406065844822761112954965417627684372090653236666193202990847563876644090675481926680228864418433032980035812279707636209615992082709161508308983980427235269000216280788890850872489102256622093460327569531846720393020009272429378720508956421595642627462789555539867529889314593220635680343815822351073930478656270211778161830096828384077054465608606108964448020126489743867206689794050078761678822758782186432149496002465688012945762206709088231836144297079503282096240401802859512767563566485471999802193263514465083796472552829723214539501370173350316793784683969532574569371765102459112463072990302837810243335278105552868056230280704472087234137660958304479133235447374657245845803193634445701305390005971540554416909890080813575466074259137154445251624480795927934504442603293480219890605856483809251036986384083670596169706941893581039327436221572382946324259553832832031294207284158981941496344995993375994591762138786791601308473560221278241279834056575494698869739360118589944426765253853847564287991527059198160539103410442439408243981330085628108597686223570374679642713099654954636688253937689579063151246216090512093628716882479309312187981656328221265889972888124408526140189801834276118328538322755831701313268992150847283948164298458222702245125457923931666448565179280583941482331885545883216251062483537074936317809200409496621977575261187245513183760119079759190095565309450031349244950158800104703512974517923863752617407055750404633596662963628000234854194877037551737020722042555253461518254685235937815021874931388128613205290115275854891128489054287560818267971576177597634786865991064435845026580333803345321980533768899410037217193756771063206940495218774497323455656197289179222811095302938189768136499845084083861171772904116992059616134360211026896186538052202929275084583931748268587607133062631635635236763238219186330282064585889860349448757216194070877222367767201435901790295897629592302560644975183324123090240463540477312571532440615764780167228694565348999336792154380701562520720910604149555285319726347688234603029250462471308168723729735744783431767668511306658949617290990069393776770636182427787630614327845015126160615703688018990671719760589919747741144544086611391029467786840823480717311018463988949384816578151390997468163424001901681010589231643037384300230839391157560241279363011492472192260098909536902366334004513933592491544950476375565949200455164889384205320477288821999578278035037577138337321781700216065042181952463158350053706646457567629186310946741384789923530916971272331564154902563782830832383996566282546083343954069700033977609212810875064578191510261450271852383429559467396928733465399439625182438021867107942414042451895866406014548272818346125500888025914569275089096726332280692731622625798080560720833363036317827801122331406117611714488762104139405212803977051613740166319682274953376661129682526927267677664336271973985233406408132675427952807539222009089986410296550940097640297198730290362734801121638028326408450688173590648730906152426659557218102531130333631128412741838898802960307819715030039333183122151621974698678247219861578711962322886314169096197597974282338431037752195185937797862703607199718275129771514666905214585063004706688520028923005219720956628310912164865788168752449772106390626842374870982810750488266262848650671291967681908399996896841088563132343132759781832160326966869977775322274290526433981231958684306903524379841485024276254148701445588619672503469553837619728791191246687905063336310927786737316488439382666937486080272491903230403112194545117016386677775487964386205546835559658336647016735027335374240160864593196883016669402110168844245260643450912885264578232092420749311394315391901659362683974556406652009509418058363583192404257733891577043467730117337947149156390625816703577880945293700952284082374916141244120252028253583326048199529371035913485554461432948873773524706009046523562586215355709172552507820760467814359214617253687338507682814167341841187750117342586214764478661145530105372193665927602779641381713181868979541437921988630661664016203174082015687639702844624071370809454292545022931346092064886795430376983543033950886153715629639727537690350285854702336992475098815289428099167658217402851240088793055775066559848738411231299157698418266664203163058035896113767698512908078600004436940293227061485830683399022430526528379237220277149025838610712863601167288230854183860318781213908108102666318621366163850396528594786099731675980112061595108755068687079811300149369310823761743080800080892064479767515091460900546850143254957795500183948825525430099775840916302926729666767884588170769361299064720357816174286664394476704246267731292508607674576906980514143651465893892493254882101964257447835681113434045196579634984958255553334790057843107256938990932599653394940772195490296434850566631369312020591048286108986040510484503769153062213238577981294226536573704223576110025706812808906132391651528704868993805311365600917822028398064907614286310812802545328143170871634863331770964511424153103585031651826092059613161099937992988577712930694842540819259500639189459522720958881678531638534074959162589667159354010000410773356106453311334169386980605511551372197864190131844110671448386963896720436112424504785250646340203823778021520046697915191367189914200105401840820969976868233124594590725049591535420199781096810810129900493284850561611032135091125192837830761781644110360298266522477999017073676319556889004416147122159773658257487532304030983751857029901930967031398023862550577012392451044950910915452236949042086608561174219291736538062039877129050419040484143899765326107569816515158815504351326516420187864902082324582545987400282660404310687159928658550114672900156194678408195080035176250745060245455332467889125930510997108605343820757383935695027872244298934144717862650438700416013157021140585264651937668229645206234290734103750942107934134243356844368268588964675310505276629751930029748199430284180308342486626072396737513541901813369131491379798389600000280370051487683512731731855389733795947912717971839210645184881106761196409723267951128128891574344844189242314677676325777438209938725800972189877798675484043797263565302792488962328034486956830757390535901182709458788194458696483122860870625794922945254691411988590361547946856283776487581368810170130309938590392493203707864127369779241083241651195065383710284899784392579694779096308461586172077018714553170488867561419059647131867651862166408423797331337075564639669150587957468975645616546164031366199009742821758532617551559644032724908190523681887021649857521284790457687197807683839772356215787607417229565347170053725873663488273687562102015382693120913755679331061474273043723968041191089496984044382126130289856476374458636818223308701596778637620233686247940857725987728047190209929046557677899380975541295230582776756297225556203702420374638051447589921646111936274691374038128116091359767915464965979967271047376074318038622383225883292750729604536559659868280936493833632001983943430341874039855329515086892929278338536535332759598041801614618351251828971336045946754197033032629497460820006939589407866293179769375135239064417484397166762144761749921207171369346562588440177819655644527797286166267319116084558560765482374835207807238056040526988300552507917180346055260755023383472160288135013681782794968732591534638891789002244516515601512092811221682829008020122003288321217980177740002532910682897345270708036414053791261992339087262159216037296692649595867047715661090648591711897556540613325782354398216036671219899564791056406315336690944517627141826639438270969603286375447491179579042269771905338172179463917470748192318964702488581731061547017015714036389872988419492780807828405493318351346782454854175248103099488063772577461415997158274339373352800217809552581739575845540608555505359883152380897190926956679756491848727389912279097505265722764846957132819698492210659502321967795494825722929474638824046034047057844864367732043023258549442814939548330656645917984854358165733943016970035070351129658363559355293357298678717235394858281551027509397067274556150735506781451515746836900060954087467106890258096749282230385631705032601898892922123700800536409495865954820593334963345448921466816409432060847386534075754488096103698671162514934124260249051397149341618442054528526958318547705542190036344512612217379724586525801180444780972876651582888709127752406247126696919394800345303929821081552705996744376478824241987434575412759142259196414742705778542405395224554930375315903805728400678547283110335681603083511435207121197344050551489278765555044673858824565355006214372213104455801493024150502149784001626999395379025211421260756937093759995269444151878089726745791278277133679565718270924834805447989269107968537609711303824503806399979116067182664396021744481492308136786772738313068510028911179996666360298627725150755475095823742728772274851064562921689053713651070261514217311384380899718819510239656943808701101631090236879911961240283537750886909675983599924133040782802359868545399410146699628511215441783397508138492674052845722500971338161610420861569238452910589745191948672786926803092348652522494306238606247772825790638416103269119163178615250870753009348561533735511510497684521581390531280835188700078521800891297606605830062591879850025883294885865701856745747298635685365576716027254566701197793142957720099592982399419916778417667713224321063661183020887089017041860016199566457070822267116060227747206772136293010352679852122489276360754800770211849477921951544356869008631428026430316797638458019787411048525446078326900428760711341761195361056921779270638890257427910478200167286775049047950611843998477766312553708781894718748753416324365281222473021822551066877600088016232339011623745246800148818755817842692556573520036911548003557286998410697974364520179088235335006452609431208099395920987377515718923884062453963513940871359247576367363591669609493189238273975696298258308864407406059695274492216375048641269352881868774359061690976212562298138916707908921436451191083175516613861700794280039512544479647935085436445772405048175144554999127099718445805524176542508509834721816333106926149314584085371301050021567782810717924969175783100218511696121296882155071972007835790712692121144350996745893289904388717107243442208735141836012383459439726564925404774967568536603042086104810425184754262396126098396510441307124478469537551092570329105335920853909456773358358627674940622072242027205314297525327857603062726516927721267728197206831066137735922710863270843973724016339170292759732875806966631541801009846396636065405956129919968995396438447766384669108189900894394423103697622703717776301286185602693165209136338341866752802301254920479710690486180894594153893375217644389752971753976411568836447202579272657648330406753366270766781391890752177482969304701794953578972853511375406839631360569446045105613690232498331073607144801157746434545327046728318146280629100731035886327671484199554215361057093506705366581405547206525593489660086914219778048091959605448983675221797690907596505150923024816940595275393428224473117112058083030707072873270274275288589394680414293429458600444084886467645337874991234520111183212569829461885284101278959686991006443495306796108757276834793908570785736904813578517278686912075782286340592793259672892473813087105591106548187906456122386441116519308755412295844332012344282988882524161374538714468720974887199584481495068488636320875395285366266749315689003313027285615665425617887926393064525992446267472329570526779507238534013459770595957058405060869663758477651876431777839494054951681655952939914686917220229332108270912254401064465408277672013007578397879072796195806927689147958961915578546498971332572621607826605402139683540436955939657580736764201505788307084521280362813677607377138468197932912328683899992464175376425488762424679807529513464703484580750496981121476791833818649729335843516981802931395042509084568515094582885031030068792882126560190512557261849393872303047233144849359485646632708714096658295046956721652060626521841900850104791978589732075542294349875167427091425339773899860861833836489244569323379750667284660554223059620902268838209026168497798005667820714796865756486370650736438262147111364540335210769807236643700444306928505354143401768080489713950506195141345023182575203048393792781025425952145479773724526884822519157889804775088881236765607906566367916469527924449482392257470453937986559986363364453755604744090434370888340596068379132891204594457266375436738611623599463464724450810855449568717404521681764677969429453991835021981323130001487146256059433507483941895259684534495259465166475323843420533429046858472465377830112302489507424641662627828117114753548882892946682721101742436827420949714007566798072182267299612532325486457513642264021736248373008157195739864734517292959289354455488301441778442477030008002690809759951788258856627825941778934258099999470728990991418973790775535704395202212658813910792411474138762038433703421291636072252269945911853757272371109006728279463108869927568599683343837620220997546947009598488066554457643045388439687215548490777540677229222672911605036424532918362083471959320860395326523445732316457199051814800839525597147001080694611109363585802226831535309451335364058837230118020618648917349727128226918978790026436143097486760830927244631926274188074677856046881327201107831861952808491895669145882961026109434314560296096888355637803394228112227574685875799860474346259951771383478877871956325316670748717041730495019325271044735726934677540355698358485956398202146084876028334280518574704655264740826263536676945799618184939422348819045945333875967422015847533197534401210091502341503434235631081745806266172910654302136663096173744236430125472396465969786200088461148127229905102668163015640842382496078614098052213166240198923923213843944124127335175792298630569534223860639509637131154872728419572661370614241683102962696848402166488249980980566225273165664332549458654918337384240028556184094494331875212120226128609511227280581289239165774364854375338207044848514061678892181792142498204171848498234718545477620154376587946212314989497528839115437389123595918822225085745388648688488299175414447764477170333777077869081383625236104325492441460115975390747188165710404784682954926152707334250277077038113106468406064937131882000223743269294209647860529450570642082224668784591147927976896801312459604418789097368721024113945343000106380931139842487508559830804156276746114985590399981714118708711639987422132966162105688333819752289207863531418257192910211888861553709738280194336586550995109698945178586701892552908165668011436233021142655883711857524742153871630839186636752856440022397501492205885803519329259652809007830536886862373033004409478841011631105190165548360913503438962845489514113619805927221306092907757683867373539784625236573155924292316956125954109457242233561662689972784949295033779560380920251152918968869074769768897806724043937029998229961895611365104465286382697231477700751202535937446322822066460605737885830147893109062708004209267842529322387333008909004016164475463605104638077799823226071601404802734617366666851708196388525387767805812801484555470731899722349940235191818629057954685814043596987794667211859331830826677592662549880008049268631779853768815935321427332772318216775724777445320110956498198358774407525052738388082500894314141484874784931066397527795480439001660325365612105597823007566611730855623463937810895722963405397822171582592234078516382020643209230266954301735644208414365555998559534314032778299633104945309316135072295169624444588087926200283362707749779246411785345956456242803353223007578048541522399489396245776666118552290159701150613693112352179430784188712730987317897409024885019152785945179891968661531514679979839794701864414535711486244301601975859779776449466664033796752515192878160842000316911907105774342967212746471584472846929038136430263963382730886799075781914145740024565314266024676376718853966612533723113747551954174129437381719494063757776759949651781119922489857499955165652740667328775058743926868016317710189712789277707657528236164807769089675750920244865328000231721975095828029663412129481929609627043050918568373124289847634656056067521737154631129912053728668646229568206770189660789875101812257320341136778761258261731108970739943261956103881631374973780380635660161287198070753303985937272306522353408778706898574153163254326684387784419778639983842935847129082716836428728654371002415423169638686858845897703530365757201568693375177086391983454031356004616578724719484485932277772360410575716187616600173632383196396306107341195692318795404111966048571687315465623268792154489964169749871249244508731354143765088688305775883301223878034944039628880465769260908966320368925024780134825186361378939666263477378753312929471136630399822421201523437727143217482030792532861479969893229288805809505370079273826118087326689091652677510167147009077376432921831544662488095634673110520360756097939868552397001238074158007406717730998072008564184759486386800145606019683236983760041016771121834687893846464150545126778594676030780262942151613516346999640100251693435265227703419083235788813738883901239611447010955992121468117113888638405214054564092616948683231829118085882210876432312581493768218581846422829709283891325286060577877034093331326253847536047033569652140500999513972869926475058532701288753898147265550104243673231155528105081147086380319687525364694664433011200465537239498866031160547486429976863694564971995879656891992921053208259979144168604359191773600431280848670854852800405873923163123606447688689002825797894439821795731996773712520556674028727939046907937813942489260731844874360722954830248538512541819714575297576477193434367459580458639988405869213138964037283207826161002179720216031927466720909400512567316747386630671852720237618944886314738119321918426067358078868091950262350277826703431478249485177988607904329363664232302833510143363283273360050972831219032337365529386945317541624236317490668152478673764352741229847057867327103351597798186943520430350124425720733728505771452549980776858763063606045767095960029987037813228464268162104203568760417377071833553415372561670784922523748405438069280200528160045672479130892162745725409998337179654234178149104134567338350912413127639953628509872344870361308416473668601124342977250913792804829544705961047646025248532904561908774569451165794600425084551741203168236783503611063710328525325983087647169413374945735361185742364517447920751040423279505019056584304959242882692075771731798306117243860854178260349669052936639273354244724438502933064849147159009948397715127081464904658087845314573705695892323531404747898780048715630093796581594074494665958643624932725781975071288107107806039369451051713577166617262891440523284454494882246857236616674217515565404650624546090590588518216872903011020114282047686713071733699491849581383547441968583660254325286810476652681229259029680576831610519929943369414999969684781527627371615164283920191282023685788334978236639808508269868680423904703990724726376483235192943739731527699719549171378486009458086825618184008446143108460959811154597712253842356961401321050575760345958159447150810210385322982509995171547947038540982074666570694055534380091963192734431458631908026211871554413606323950928262575995683876879775054580981222429549686287019817280335128344005173991248007575679324255348934642769076663939866436158300947037393136921025478641033135718517366711785403661301940275752507263421410960709639540924849060285023051846663439919846128979942114265926747155651446849499550383546571651124133699004306419609057614466784851925097953428735758617493662995146539228983813176761832627763710200707272616145644544185248494994360083963699176351206841179838178272738058431402047793820577888265993051016644753087033929148986584113195306611051591672987307941135686016794332198044192179043388158311545123969910597461394279943662212902552080388029963153799149858290591587213405205013762155394151999133864123149426961455148904295181052671113989267593544140386245644694880229972360180714132546761665965776161842499202213214751511057347742083617741366017409189671972652812444669046636675957991749105921389814842705187219857742113940037500193330672905393734888293419075139437006471729733840681853008063243002730235357708432331257507680265555836459585367254356548988573070462689121907962637308786975390062726456907986539128650565022418334228828243659095135661522187737709254619529509434454863591940574176422993701074906629667591538795383290973553526282517415307731281798234005827376026245575711476259351388844320893371424565264057328365263510898413463637309436675949797513383062797601190429978469787188810262569629316756201550810100379943681910171299110985897528486505982969018562704234821489371400558474030464356052170718662054445527955201753465569623297311088006172991224869554601091205038886077417697074545276020538700204553815579645000648694359196502487342030586956892363061691430968238112970446473536425658376089021957357477392879917638618674452894047830561072106525050629468245305741122750253043123315168936110666961976389082491182213894660117344024759340999448758698402687138358443250500689693318537237148356725970082777360501636045324072412010478851558781284460536994577567940015990045289019699455063997586474300049005423907851009717913760540648155252763927971315878593060027846405639864758666955463739893333450796399057361652439907788023873768415722681628532619643646705339463495168756174298357268454442222456934134088065374653749318747523178210373497535177966924151219378332110783257464749912309590431411213204437061004967987427213307130531388116511580199683640167902759636019081339083831761340456492505961795405342257401527482850285193140752373082035670787640557239283620805015862957165678521647538689567097180675151746622587463535967254135678198534498740854380942163908809630144064495032072877200275015237028524985849204869177578867871721352290667436522455394806075340369808902603282107091906946366442270141558625415894862617799258356681586838204280837956463947247499346570269852982943492880744694058005105684762109373070221554980351495250161112157114869297268537261639173118766187648086688229885249186965811971550761423141257002707590618998837034389698019819168510924579551898060942331866220686849895839906447758781121296538925366570196048187236584142584144812524737064709750096949861388368225539650352227979569183079406762215045614945748031203949642651491447742565340037531380688994266114013674964255452605806211990106012069089821715552787952355485947124628393918950759302612368819129800564177228515870923703383119806568833884904924298620207859193226808361163706667436593400317981424235449357386649570224076637171874343089712861566789716031532686670761195332287782699428471034322160878849422389133683797481167612430196445280956242053988654976071241334897182698086795821139330371946918966614004449523505557297942900037525946949283834038066321768111227362926241885168721951508664988576647243097491854247815869748136383516237193555992298070713168408972222179777609082834042469074140596367498954073913711305724240346728957099401252578686106529720180972588036189947768428069404035746216833750743734734936067973211868375085173916813100474501404175743965046194417604659723487465096631307046344341688507418867796726070698638903586070472538198077659775505185719702898201031495522412942274201467197698366143173905678126599326523043798808773953994154346169848113984400800245871074816603988129181107978595520623337178398629993952232976223351235075086090562659348134363953651333221227710431591915968042017298994555615478317382668081684511296166501078830271159108614540508677732244445368348827350048943756729438059505120263006193571194147531768587796858520539228193472755491317732634726511222153139952346476400754159949172889248075375955923462606152816663623046891894967680862522158035160403023020184793879310789987410937660368588816234857294155223312147781092246372241700336148345776423492118682068928677556903291383688958805346805145685825051825969079142677069506334245978248855401736090462205614271094538228607388299533892000131433363649559483721154045989861844939454879000048371194202287476356680564502823299315800909301823735118180090111599147867177871646597174120656462823338140428580141929835879932951459446143668623847552343108482136741939835150182407929515035260840093360853215945950284651695194705334688403361652310372874030942261792616780365011588665035466318877226490690241626670395071060757667305027041535484393131965601212478301945918652576029468022972361366879920456617539143567446435565103400880162462981731330934404830381189313348386919557099285683870633040811872354703086113370821369120609482198472046756173848871952537597290312650742453009810201687441717932297529321024822045797209481315785947224343190512418270749860071503325796460639468669639571040099262465645352495693558501741396229427496881487127398470093937914964911827260604549054722256423630733795518098008547472198981170672101772539978780091252287873244022977871422735290216649950517618232101644359883164152354920595332130022302875265759631338261608918296914711304846599627965867338746915739860735896322079124212788274584783950851386767448485403235526068021677746116211538541504669584758265278232948030719873988541104243869008097186999943856028264758795412033377287660937638680961228734629013678781309019218585333912407713082767103468636724323690451066000977032744729996216892970083221101707983211203410029012808924252006883366481215933208237105998085993093939667203842972849638131925641981656966641844845197915039686469834496945555667989281679529666270065567026430821119554951091645586594986153384647407597521473936707512139745361942999260676649770075643060904964321567267068451534467598104783215167260302889556185817920875548749232320286810296943744515240656338907007442451694170109572816150029567039852585362649887655742266740720373831426258775380538634714606433834738065773472766855654180385679395428036854287335269126357986343060793346683088568960357600795340830436291333478075281360883272140873533722554478483507814637213537789776795590635446132474336755778367950387176118280047030524789600218982912746025626270235640845238702807283443622866991172421021373479412046297167826314632211723046825446121342081075043689601180787941294820593852850001125098160441151357983138724125234064945488511891848391998945012242189304314793966672106346218745452972088162228247142285028162189390411676412633624331443121822085923024665975980985025185044610121012205442239792477473595579132404873469189148433878734642964539262316655697578332475763871022879552712481049527283350604236991204360749343842295480052287741683703432087509663787696250323543378148753039542438946000519269005858307486933434592542733159648184754425509818920750723347826879284880747395883365626349553903122153467850723354309728055122493391138641179258053512858693025262643682167348486759460835579950507424198961663510652814837306390790177087946897120315297450930934148574446301589036014096401609722441263817396043665055547133967186897622427425280836586218213414509775273374294280419746687836838543463233475924405837341580827105620619892674532156441390781492697369351919895815298612690438745899738089106471023610219844264032609706568780083527496230396759503481083406562007186112832199647988295904736151015239224027633169914433347681116653922543302152261190781025758025331737920155490141017269270857904994910528898571670402172129985572252141372406154007265065009117177991169221746423050195598188383530061113134886170129947224785610289536978934952320931739737182304380839657205247178232568468855343563924121667634182108647377261693931184428645718444872386276153516970905399134308975906777408027485213995618470998878531680231829656087021591797818997658426799722544650266548589214427010523946228477936043682230184753060762403673726207520168464440513953416457771822035594184051344806285557996467213780939308646216602330524259185936522446812467206697434820673310561289243184897528931710676684362857011285030209368222875922221553482419921679561447366922923947842812721130028780362092175261209207136946175083078877462127846114833141572520687065814822598574512678484439573278140755197330386541751359585253645774393432643287977029476464885780198857325416252410157251806921843483226835805190683260020041946355486391723608434541997371663749288115115031781779046604710628657943060148992796459779876793623282525162477963153581695827379094782467327637381095945197981761073581625103499119077601122129442763571284710180712021366572778070922435257041091791718594417076897661761405884933966665086001038977872963275653208634422156620954296920925304889834696983864348640118592407469669185977777648151972668107196489433854984089079246728659095475770490291217578648815605203264627828150649777701505431837239836592777970487841271785560887119106035821226390337660704268002319016497940570388112849892786618255351949422921071549999155281875231764493987967990930498303344243351875770306583279453646590501394865849680697165061854921936408739281586615245939089212079849501820492590887192179310790733164904606406039687403400797525756367893159593344384965333166521816320944887998921011472417238011394118697888147427180628305022785360458862993544249761666931217111500898412985188523052511518789052552446102986405865151274879050711428765503631891249097600195888191759130424436357217644190565858610974541105741202828731634499197012506565944934419568648357266761963267966802111459748882143062376848374232695229508520204260489974235611637216560032296891998469746230704528169663873916613855949494937418558252363899214101032012701282377172208970821369954727340350814110580336697135267184698954053991469664735982742332480316108132116092842622112316540744173778134780317450797385734483157955657048272648063467920339988090272954701582378783437388269913038790755421014115499895595058343768935586058379361782011162382762228521800453483756691473452580271101896436756984057625717275685686438148842171899844585533291894377787644399837547502853420203236140513523430211343917027175608803191364375858516811165292531057851546757148408720886830401510248658969452430166058201472933342527971304216681950045674358433389436549820415378443994507335727019059731784234320038364540842330070124097439416148455562721613990045768053654659437476570122152477384747969380192039776416001224598501306925407722293920471927158307222170153425691645387347150858347683388820246776057591040883759289851216123371038763572798813071921827472998994368898894807536820988661607526998104098976824807652876057132064753166660034699625623387458324230483178874164457823843619284648574550880903130149065826234163795392448777318907913124885003079986783720688525159912253627570645568346786619324127756112710214611522026147204114256032242732258531352263694666927810791068548478176807564694454962883047316875738116587817263891041697256704185152959087273304199234233948511522861479284516244419356846401478703719823131516851897365687766362029789443954998818972979438482231479165990800054694580918577845690615033776697917856802016488873228481655623174032137745795379272731814031612119496227187572554717782517897790581700874575409834030822454681596848767616511456337401628760715310798957953861219372975852123769517689464563441281639714079473649432059367578790367674940823884395153798309743838786020763223793870695260716462749686583216834784441257359928387759774930894125343632932728207129760998367456779471236957763452383453933623675502870499612879774231128549006964600886438416933234359626917129161000899376336686430943821694493620183462580095081152131566467547279616888368297411365498092143142666602885150947566650823334053843809638264565018138936682292408595093981969198339283851479132617622380304460699136909268138923951125342907018384059864206718118281826113289656444124187862047786979843305054479592116897766717133722396842100851541272680556801328146029488360398317013453363470234345910195650116754468053414233541358284636356385802166992572091535948551922116915920282030475495586018070765292878187026710602676083385830392443860800360517158946129533925861047877290369941938781566919477018796030689135349881638100426408898595767348735542797563669604584795907970376485142507297247874207418706810404055323658571931707738942462460952755089714073449887078286145786196387077206697104101516978414227422278408681451462955354049697614212335593557771244813155001369545694253955466755733581208533891448545629783333350351834948445256941711947058944525201776012509219000677670884934897542885517874982667462677354671696339674449030184782475944902824839772978336860976464841186024536978096236778569277552577527194889670524147823419340257606528686527556936194124151904704464176077635184318185320189036948523076112391906056646257756552862697515783046789536647025808842899359755903783972519118103134285891539386452412811538646260999354122900620877286870851454299616888781843409987901123560391136459256635484845558031086055879982483583877188536158386776356208866736411098106194147837209716180770408159977560831231062452887552514303426641658795027031482475674986763144569981621902763050555129380312402277595353612932608653832865382013318060523798282029600321312899115834628990779697593478941754343986727884438462433290150617749782084666555443208685235031868674398268123630262974673658346592140160917229314352396204499515575768627979855390104637363914129875362219116367272303025717315413783008085870304815521085570562245332426559258301607612910054701145817575079606408228767489730890049747206861729485777077668162421244291700974071404681012969573769085497915113851270594213784904747360594176980323752314973859177999105206812539393079961918587956123441378290092825722244823111281856186391222203504230819603127214453271039616969981910404314188025987399543106429158325450747785876186043198838010996836364248607789926632518397044182647189366068645742815444581342421791758354703908979224693781573551022773089103979752503579204368093515426296716684570453224177453680059966156172943252471044228813336130940314589380369116936709069210084588707367077746450694629375685018620358963090239863519315138335514223062504444018481520453578894872180320182451595176479784825333162396042390750371263414517987441661025997137407774542500146995265795613771879652856925478771372568034280196321397683050268705031277713527566965603126933960570820643926063221330394613929395994164730015519747014393562394220811799387720791150825744496249921225986136387750719231958236816127149516046252934173113568756656561338629532407874976394939586829102001320749850483059908978624219461077859133036298342157038660987721102762258335409347609831626814630210520009495658497850850330005528326393267539123391799436550001146098284921238257011303309539962538187046910746162201354105401794459311674349511317075104672871583291820744535061304174113373049303244839121788427844702508733456530878789960235724538892793676577879062927420386031473569640620797316554470980104455893998528377394900186255289403588731877587568284695353599115352438372977784837827611982931380483542694229001817550551214224263665033829061363103592828780313284880027577551088475187109894690106117759633895589113599798171117233765255329770363692048314602530004022906592114942157597154321220926129071214709388369471713120267000350951197335454039887904403815201173456868881978508487810043333093996981782632181377270892656903694236591771932724471090505132763564553576675364283361452128276741477380810477492017463579952154895092763290481477626112953096739669359496168387686208492139697330044299083923214294429193572167962339827841407712804620219107902455270783677389701302810897873446253866933431233355237763171529908974414623886141657601060561589373896316591105766533653921017452824889225538938595992128406402457786623174916810576428310987753398120929978513652571482609674702968885150950664311411386159839470910251580387497845570729635091300422224489020770571264079394491799953788414851487832994519592453332102115756250626312102955664038094609336599274776397144501177416263498060202432258398400675956142471939184312282460717996397730268674753677320217199839955752594731658865721755083329433744959614956912706926961028983121911162470192167247208764448920401554714562462802076184082662394788544198407778143404665131187439478821693533494694659337891234659674676732121430339538889737118177539567756000084533556242137835572703926534823570615468564596046646904017735958085757102478103072020196803679310691864272428146039790844891219537108427111147962337263907090681902385481396035559189283652568155326111634840149733985699496107929629711766309154179757942540196601792293235067343467544289957146878364079093376713875643951600070146626604910224502983285843264894552107910570537554682002639685136009684009715486813396521976412702538802114887104159574909542793179566249762208718929724068704024103208866365615187214864389009912729822300522932525148307382049537443030710480716744733853608257896713545598314156964896512969743187237710378102493249114106553706073333079812203019747111201480713301000210886036203732570549756085380609762077954255613627541642265875164733108629352202088446137207435898632939912358445917512109516214958308636562703198704207798222976737835902475766941418740855647362917124504637766596605353361605175672330257864301510315734081825749433190696855788814949950761966795704527382997815507658676070892422062008220581448038760720144979904287389520159821812975823005830368300357544989968738821483669279795591624216980577587184124639452193990804880982550158875493897942722431150260862027265603686699174270293116709030379635355034628480071962262905881915025239040143866120911658220734638729794741545388476577451777373785140265628338771135279634401545511733334936760662033961505023290676634488844327717457052918950257047596446492654735167137767489108378183767426413068691102503718810247443388232757216265015701671933506629417587973458789116875472437497820114418180391296948115208019866704954970691758488349123611438622437994209072894918474984020808778612482469006082012480579254184937221104572654817567601242651678395599611296846643985165131321118097957245697565099900274699762953651288952123056799296799462073849038508355176836710810526310129633862112318236459709036065903533101182233851476110405798444562456319595897792217096645742393299676542468160477974809754983124586954664934662889169863736195615758634122713471408272486007168275684390664696612678625396328903890649509582624608334183471745742973512279725442050149709009095407597492785323796157716722413505515116143203910810400595651340009847882167497888864746845531679088780563355802065223204400081097345557700711573074461606455013651615405829508188235327593883929697839553777901281932631211798060191567097441375592212775491937837518453071066589536091121364746830552790448996670200238978224356965967628471164136974874926807542268861381837700027256371151743485640796712967775434779939307346723791476288990889697092178607198670554862576488376616894485627453468631213019025108446342825212348966352357970506366221104997256121554287753126412631805326610778886937917778657177927288209271863633003035705761725780400238675220838415042620432027022347392159047824902790473197492252164828505384014896983081037246989091653040952299018196289643865466665021038614160303239853620900856676736993932198080681598616257618498298318765682556102525680293428467607334907737853892937521417010264251606381838685787475183208444640610051502043091358631435937717275880193663616016245254268662837679642797384337867154338461303818943573589508791306735785256516278506008305404646441215337784605798797216799138102912623377288167530718158083420365558016041408427063579860539732368669959909112838221539354993773819081583273722796416624173548234228614609482884597890353185546092903528450834677555339913137297391780787369071400030873327933770251474266758646496133382455533362990228806409528472947554223265617399857256406501557101928828265684524312598043944575962346556436275432243734610855228159664140612584636181348907695773031160703334779953376700289974668231449917881134990412297243157824414938998758158951317639429589528913261273888909996115673600559657090984939450215984562637872436455853303294505059096808012248552863727879997400512901650163914481713558702338291246706258122679567036332237952839898067411955089250262840350301368621283959692122000734323130470395264583636249311497092342613612030718110023578660906768937930091491669405730138901832620232148489228108705326085422786091804511938371225573299437286523390550258823028585658636764924903423981518977862736534096756381649560868337482088578248849807878364098731950115915675731932038947824229474112680421294247890355130472785337640616537070569722879211222634072351046635014374216068293574032249238007684111924991527347840925886223250774032235320448200209502376102689432074860650900467851280222123127704225061388971751560335687316028581406479530397931991866494220744405380604339923524772662522962011878726781041450835421223369193519299854762107000436701265730723236560200251496168844000351297156044301901541915434161936385760404012426411027530448858503634827253909011637395442085588351363941877323269186623445337773814926091185115996290429157791841174928417281934103727282828300075519371443455954121579488407449230674499361620596436067646072347142752713952645470814593327299301551080978271166978643821336442323345605727489640586603286629658174352485373993629747870100810074979742514699729911797230599529463416644351547566828499745039011746318644319454627608964503450170174917970689848759416069455498490714599132478330148435622115221830252635435569225111223865641253424196349591925940922008843504756016463949343044799085270801190793669085422192873290366590303162890198569142906782296902112241182467628211000132085986753922712420744395907002578170923835954785424456506759109844950025948599460519695484803032806410760720335799584726452757151370160536997064437225273703025288183832790364313033701582642220594938562551617570771270632919271113666146238504376020149564257151380951886259732718535192175192603995217387955842375404665822834293558253283747124515041706337596185044466173001634648836292888512769767697524716625227664612456239599256776052527118185948900016765218195382096637514752734419753776973034304530896949743957811641215637588382441505660592201234096209927675467962920401994178453114527892661171152724732216570446397000205754146410620746301239892834746006209753544014574340170483649209466758109109301420604809421113352881098928117990410353998464220017368642738330078101210430914786246400907278330171540058099962740307195581737789923394804823227785162429600368230150528027554201602182251631689380303249833578636584174468268080075181068449117726516356577431535734489751671015329992170744897081282175742701061691968796883233089984256359707501362562749664751619268216188555378823857471840053531529547409552765697349823641881025417522564106767152201968098115621372020130498668942222685083609615583083241779576074719128399160673681032455278182709631992065785950168025131119570361546006779684292822788793498178560610227065345854476817697738024059651290075869457570537033203157253206021601616058743081469351580318054838555247260346769650433005948975669275315477157279581384049543664063786965095070340073612383566704880777913692999747230711583787543611728559755594267248421987484541493919760420175425594833941517438932119612357169108831586385109986885319352767560570733784778587934658917122559240469767579971311825181563307571784713609043701019728863032258238790370147846978945570710477323935269826103382360577402869279274919758765526151694649294941113102778224691608983971746352064511133269671624681774635931657811636579821069634430296784621574746081105132240584462097954953442411600331429712843300902853003511748593229004494444895280287744922618318856144026622799190757309505716119695525710468579142728666029815553618291060314338469670905512056199510062469144738989094962184400271185598497785152826055568234371499884273585520112717914395240089949332022084852825588814099537833317001513780378825844154940695665892830913038614477913817605942165432455838789653943575460811960554168270377777677432497993367902936851311743866120267876832682428898617186097169943395531323016504600570253644616872064240078326656545458159249984590702730292815508579684561140099659799723426856938663331756897627439212376086068627660329147954516100461741803884563726633908109820346389083250021329694775641271394385949366504396566906297994687674844735482958269210552394756677976615556695048829094516642102859744029317227884123749985211129810830088367723123387338301657004402472519146222497885626445482966506852504888856001007350262884216230636528599488238387930646200500121749735698698378057147449529790345012428815442849546657493093488493843668581805431685095637689599513795492627532918457705288106459257452691257092209743894237803592206946180595587413673905194364233273901966882795218301930175001057682334217768679714046134863948713424004132241906830173196682917469006969278476499588050507734542195122418300101253112614428840355066631007574997301003135904087757934273355197569759696626204007673728540869502210364327644397073089673224803414260529772262494292706680702744267064079054897677623941509230523164333958159801516001877619297215907964297001834181495427133279685922315564690779742269550594280126128264706840024637891311431461169207726111909070770733585147258279983299100615532795377383295575159503795215024195593000380565751523677789644749664243825139989894836862583394945028899428614181285273190259500623049769952952517792488992101930557522670233129997822560794309506158713535850161839965927977607367868559516231984925428968594276557298940785057007976428951838156973631140729828773058009784547572478183387362208742020602338427462970360219356983237400072010194474705263119592732774253922885925165461052685165425377957338875466046372994696574427106369642827290025771531696777248524521582729692698306107542124327209643467908681006906655309031963351073295012129859413150301440843992411189459698497383722978529852466176521747599380266073972375434610374579187175115370170309930665464496515674397204363680952915849652317729738585262996374228050744224357124981108300739195539578884028049383813112550436134540445677307939770459031849672473523949396606879188858093820331386977141205984324313162882584003071915124367492068472470444086591854656634131805018181434898000428197362780672590862043121432311162199166264485867481168019192009819308489679778528959050923226370202618139076074074062733118972817545329928579137753395755403562826532902638994955595179047664211861454568980404618979661566055231123505693555663774699403867877928609094719576073993813449311855958840751737995477879905267665436109837157278278661422148032244801364814601533927257026738868269352322289247625548110310325322073757890793897644750325393769164718874718397271654051393741753628297850790798987932535588046010383334146654929119288223160830327440695932408050103789643036982017396122161659898984324946281081538873068896040896040539020400387178866400705493253862515260611963638553988585189959874123469994807558242461660850063477537352686066493449612542564037919208200011005896820231883313147343840468334310596293749780071322303141225531543175128855991507352636935048725616130443983684952007658822630478996333504355669182127675521704278885317809562143266818807853287564372794292404431326224111516612534087281058338782407028946385019300729661401675218042358877300180796688872535309700701014111021592981279530603856887245504569015455115772610527001127685230835364175261661046278965080593403802702457602149235811179050977494664839764318035083381982850395272949202258477635150732962570849291552449278209791593367751051629179434851401395721490264859158284809148516059498476383661434153208905738870366712346920953222016242189632995874511822448377736541132542053102650414585719938258243739521393988543915658518410921266900908452125394995852449355553625289879787988615910781488968942074957888102290058918366125795453079995395646527525151754765090512867411470600793151520621494424193758644630999185000357442141191674652556325468534395630883992541010636599798119080904271825677018941312627556462864570170154016870061191249876742831029997160919868715346786844447984880355218145759944069552368168503520450370395455459174739527322534084870272174341421845009177776224482029587687315363811493979099064097560731958887101640591201804679390534616625622053804190064829404132760638963939806032432924081473803814482152001989987272211000963669789424445918550754808619048219579346265414320990556669009586278487469916382431276814390730148582040974735727449297815647975450252843587707535530468834480502440900241531427094881663774107162919608286274297340098838957191372081824984579935584995627074871628547683728124763794203685461573896968853292140165151539096997907977726045228576216493722981602944916359177110263350172010350419015603999771618823815811603305036647850139855370640143361911973345244750552948079542094280406739995042735591544333950283155690139947347767019274156073541461597580102015934825580759594116202209733011979789825614502356780820768675402454063622936663651441389985863698930574437813929845766933725658857399666395372074397829909881578302571380734231118052655237597474931789289014197169569139094153661973492530513556111224907480455677725613732011957254881390331589339138413704220389792642390413016055929007260698422618083983001905239048801262634048393701707840443232363126455108833762708758097257278895901362093539107646477025824414861796251530252287072067621457545007905681682011855336055004093606275951095347432542931041241597497522581005396816217205684775946507785048537902803122414156434491351586322369915453062918984147097161890269908708792440610165700168289043523526543280148227350134168454785342820275852092400353310440346430428014456217247299844939460926424514284598000291256683096886528317295485285174684022383136545402505698991419294331955881143883626725083851822521911299383061570462383950655064192186922712009872254478181034395555941099416370852836121672736385319920321721729956049519815458372971273892377036024173327363240233499620481002180173085346574995675830357850188560248176691990438564802294598833400895531021051544409044384423214195927966281795081016426814115741646939070385573396376082789991849419828404362413985493653951030115992365892758716590939573553899721840514447782484525854711996882313907626905917685393912892298531602409778035610005063046774894135729401505085038622966492502711156757886153011379947881258522717817820936685279783952263201629169176896835561809869408474538302357583828133841527973978456741226500170237370071685948250177439231905154997618258075839127505986156278086456267770285094512018260735792000927422907192665992427918798911820977422392266586816905741316878873134583421910377784279564712200772250199442377224965799773538536805712999517950500113101773517780371187527231000912906311983970078805813261847475824157388486263011646925782772517151915273333137904475300313920160277511265083377824279310761257177731048578937896596763433668228180255102400713561752948984908392004929105772759121828054210726595267660215705764921151722783108626651724033377738528853139814842602079238812230563318679316673121303140061604351719306630300561548182523034653581579885934164015159811681155583081345542898981305582605553009506776812946200065704476807082478349589098531053860232267197348399810861270238460217299083114624995349260690953848336792572743593624617215504210943074632400839607371340170858554899418974131968420303067321078228858516198698407609205144766449669773919226149124330008205752794909606328952989602003216487801350326622098879391412394191665472217942602266056982251410919832123771253893039502341627978019671182238669465213062300326937570438331107087506430715291288456841242134348383033292728377946780469508124329438379621303456450301068520015428100939025190229912299192176989233481598003574898950381251853251057818693152641556689207359233715286754769194700587546675673103008894099849127506131014839385014925133906013895154561627767952528780705878147357985293672478492608460871309851361373243138287057198189365617209025307762595749200658709441860727883149258722034794046058902655895481295310083955475928898999873016818485597208016786582625241022233493877795207127180179718128033698775802391907677105209534394991503943433830304021782005932387488685833852633025780610952545120262783446316737911879901168538181008577218141744488916061057523247367259588210976766168795038800403420423804524479561599810051361505854630678862178619337727868190669169611189978913844055938804713951942372147433204331758704404285563623487482729703953537447566599476719558494695569208715101037573041882543926982242695162204637387496651829468456324931954126810571286587393634961638356829418032125917515222019496208302611921199326539680240438689537959401017787770120012110411415661148677265286099619342279771263825651021152429541642747426456452708053379701269948729367664896494523845296302931076581226117326006472519638203585056978409526932876823606487838558787017810637943283970730834939159522347452542505269138296853053045357353353077509406842935531552355974798390704638273640641947329046837582764921445921695416622708330066964500607303416873245745152213075848434129859739728096509960308767560240068257001507965634612874734528652807250748086309611890331000240789336366994458006488332352931911557882378845755465874341299972467492476872313615750860112540321422459767611994211650717600917259282411774054698875606709628829339461167326210032600469773237778400938273235570002549654275704292614725538311426806613824301278534928415006776552751870808287361853217579593286018033218599606183343752923379086684251828423026148021406919492988798276908865082555543780813616127463513567165182695642252389125102303239267777116626118949411369499751142041044194100511635631764262529134995185737019372194953927872389887336844544421380826377726596700389333097867765996216316608850653488503315182670789316936704110726827230463554617268833352934243581470688773477908010244464058922286119492104032478069356989217475354121355381460447556743950776055472493018426243524355792663591854165070640724207264454110998830014159809864528381923095419563845243754863862778800336982433533577621689157059959603501412284069040529824412530245612427489091158864407430274128213184339633940460849204002755614176256377602453122522700060353080428536244609039834716800361890865353273525405032761520120613621441664459140171289662572902666547086468921600839695119236620200390185103550810224622488311171932345333794951210155726688834534396163407647691414082922796852597606709252584826782787111005241816250580488949232398057770371454847901539309603923443563400564188812677999958861253496717919283258306627373156899505064126630037783205899077888634833244790973584602468299262989456647419347541596526749051937522978437758716159866793451823314176943208141575386440436420546381095814972214966048346161557840125356957888090345015565276252279856619014387591985234753089804453812387947392277241995449823910378162496107740741035261592883143672760193932978026819184915671163065725194360883540392431871217232961202372638680970626790640623887730556526602804100552666337240767212188217083155168849266708950431039493850066326821810865532487122547324281465286240114857743307308919076495910495717242211895292688545749610637384524230027984415287734715424939855310950287407933592734831603468720391306045552409917402933339547869104517158714525248993859319961723157434784962337452027729598289861906072511467552489030935113710935620361597849375695243950982942336195368542703884297398097458147288198067128189128972544683630118072460636667773344343170350708977003851048883475570491448690004496755229577898448906938370163511553929217937427429082440613372180725555411691659098478013619652779018658036785653544579533850065706328312123023525648508307384544714879873195393697110085259395879003426450298680439467334344701913022036164977320312892482554048795123050706001248199620780791129638076724870978372522531495617130451906199103405649838263074282602182319272699224636016192477129449261534842756493249176192375973644007522540362469154340208675579924752655705467257917353501571519308628563040779473103761459265821922355538791488027229614870207237765070179485890925379929052847750084374912510970396070052007266103997613968314569202413771743308973573805404353959542746460856406526599525560043145476159591954874225275297206449545443155254983712859509170034294467747835056832161890839518630087955711853459119885643451515070267854590113225001191750233515363455521165890207273448212263139172846380606736543225301004453611953012946326238195175757660954560399252735064077019827157481460280122258096081494538610580283636808356349121452744458584681352497666628242219537455017437144379624825375366735253634108994647568908179624502500140543803496381662923586328904125127203476387977445410935351720730697517842272322504561763620983234836069459865218875495046056972257559688955028525334892278792303047668708665783851737036260523249132665211449282748179863577128447184444505546431122759623808097937765472266993081712443660295917062637039832919987564657621505834792069373593666409507167017934772760682016538653949795156296366395531370415924399668830944247531133388958636428819822788752778211026270102920216321462997599571836099183434835842516030519268873678698081834329830625055883020930057430451573789659057762082398105654933420569271411141170269202210934686084325015296739947579443578714563189210726905213907334642582645827443026225725144720161707617506703221317332394876644521684088000051916116599532644697258654669053418570183760198059009846007419876130863195415458946976252331991439616972565138977663548392998767516271791203454363928870487461381259757254979266946037301119904372884779494093962053342832302231319598211525761580604593875896069342275007079924803468815550911924145571929672292665301031779042893657791306313665035757168674261557801903298822773159597404961996204489346490309570166773589162446424534210779609158580470099339071448525039152434310407112478361013236762331028716932377011126093930783253809248888685164214073945775243011576708628362152555109521603893164861759047683895006327550007996578954617527001814911507413959831135419789219636200105889528938169567293508082501160551429628955915139508547187485756477305984400482335436650530564332210496866166437505583634855396772830628817744962191536853505057673483087825732299577789362977325011427333055420195760729648260927906130330510477521226034549954464530736114946612320892250333187597544996821359817539567116677471786089753484591137204201791395726419401927764191053944663459374982986860345754113693828254257172202250315118030866188609736202706738905446855961477120026232931334696123034824902945593048689650059572182450644067492382996569178755317361444264675914272845122840013732109987644231941883478560077579501270427592268241630507283483777722487353459384333673571134151637719624365019100141158230263142018356911763077997649422389518116609641930322830602196454786495674746296032255780010770508695614309664070173315512063344097594523117867014588721266596356855136063292219533971405292833878754211334100804295308624904522036054023634066993771882498741094021271110779590491420161537793193422190573023529897818373070636041657142786768056488585075198315555321911324490380272971349661188567087503737779547909862267384005447916802371979345349310325823383825856886091705808482099658949734448862604505201557979983532386260792236776004479419666344590203938884302396128767603852399696086375333196539835503734547560423671640043886294328981027058558300132625181347029325207577636906913696571302353715369489737110024451781277134277115570413218455529136133577099388646767612402970100797110261759279907735078052683626616812320341440206152752373485962440707944023142384161642592437644780033573848771154858435312824524074670096821214241611759158691804000789535232679292490684753617672153539434098941445219628651422375934099755284747815404867697372611247659802184050616421671601204783442335899971356084745094105616658325166751922309765981135306244170693818615719060874003106215510971921497405437680780044897958271788787935048872043118172478112393619312092779355300724028760100850062541019932069334872926193437038185995398611812668324016419628761472275259411238412723395655869406551824588576189676009522679049669969964254926751620763185680130267669280338469404585272416714088775345227277738031219374669977175100009400324760912713883454267285559400617369032051540980414262305393157100497900128744756444472495659503269754123844510415686131352170269121417185938539547127789786423404498499438237956747381232337470045262846352079818644782633423661464960673863337097817009529424156160103830700763283213658785473861486272056737011062898461793447623493538610046552404950828273917152459545214703683081605688294607711116895156879823062094905928342291895847806692617662827679308109001336625472089067153440825295495174187852172558710059131662647895210686749358954145904274890996328140666308054528497916777769748029095100699410677278446305375436692896419822495331043974892966817309487902514774252884180275563797735578532724195216495540654209041261077243085174888857574654059301891723060256918126300993580274908484823366475422343133994323877238766585568607145802760170800694039346844177870371885898440490713716096098301981954664780102151283296952233990195760607831870379879062491155085348309337813520714404233169242833428106496879932617380501216029574709153744614098095838710288636199892400138306703899784984485990769137906531295504774631088257774977900123670572911091446392642877444700578852104834806678301183842893748874643807066231996455449309051960252171883741438312683723603062390105748608804821118800542292173777007416968291394695319710323318571656637964410398964426647581324755027126750268296495096430380690208458420456081367342891153826010134217651647875857908257959336733617658730047413298405411950627660883693431721633956730709140839286807037223872673696092472859832122008551599414618742219340449570550774697338421646014195745724364721788786918881342304480390963740758089984570944340067933555402901243598610263733474779438301434463630474776008740989165132192275130943398330973691509491460828766644608192606887822013559064367468423376340817630191529830480368556024708555356057700721513181275086004453791743925106150836147144192948728549620733721248147678833788938516417207987416256043858734870255638624677760583062979684526200029992353475386704500796619321901509965438384166011228854244142518742404886506690990533724925584390374022807321214741559383813895713064251030262213750220801225381335077218488597570380590263783163328077841697417057467279674590952931576636448749851762315399789295874968642885020857514016506630972505908990112830970726413947026678857678930354445718087659731003090548113942260574573843979899643108303131094765610103851100694661614044455749380625837057398629842623873703357533316928578232217880152323113013088314210521905651265207098537480408140286692849024429638011066009941240156701065757840584536349537609160987633526626156334452456292103921739251267966877572591292332614974872988520033666136745941212937322928089205655506504352642937244485414795648388344617952484582958161957590305533046371783623440165306861910299705167643322464475504284604652073864951082874689532938842274551689265574937271447287389610524253244694011263090294481240747806914399253961944250347187490144192207044471877866329471050819578296222627723998012635877236998305293493728764935468290468934244054950283234258884809105046398181103780303095864799924007877510268532893454732754755872210322404226478933147056606716389654379523016989092284385137928667863595157201507413193376431147923909461982021062863747226643872511938598973147815955383762493922273917004824148784667292416448592278814156968548815034351268288751904334779285716591144268080656198670406109816367842694407913456521982589260306219698069670424546910944664028247376095203146230963908395625795916023010977437951256690290750655281823161849508320570271545562412631837952082177396108972053395135746354088291686852071042054263414070636562914161108502815661304617480456163594444125262050479615048254280388378628912280933889384467577167624366936257829020056455500416234438972627144340844886616016508144718756055797147057371267748093773215738514996224590388444032518148885409303560547086548364595264746466025607543895457173882872539889098214696881373875266000965827457910772339183560215094334542879757435559057421739130299991106762988083109426471641673362045346676795177886299494099616893041712936416795334604163800800843821811158666862791880041120611500897449839518307026211428408890009074861491686805498715781202774541846777991188195973063469631058482275337935451218766160740759324116736685432045335187715417711708187823240932528030298916078925240451420049716163798385186833727755114183615265638017512073483362529806422350749580649070318197237067298397293703536242309466367534608422382394438489828347375997513752175103883200310140256891429817367126942468197775371890972886801092586115615236653066058220351861705744912896550161916594297554518452521426518695337591202240678855274628935334134780275568959820582286420637983630516857222533406667292029824756497107786444939640560617035279455733944828879523706066347726986466797006644228977092628699835019801029146085219115246321807738745084589912172978186704969838445501033759406531207873300391930043336851971343781346924439843024873401259576853142372578008072976136581891833202767634882057063456652995577526345525433783299693300259287095701641488380261748895979403572978318168770130623062283782742230967556133131736108356899835579513120188743151468480086875228900871267644911650122758544697983789240099889440097820384218612697154379984956736017945593909377139049186437797339033748630466055470094622030550074713775240308202847541563687349209271142274811950334857013918048405207278572262293952432957777835916492869767799856395165916771328026399214156574941513063308689197225632410291585100381864392885724908107784982100798195661202735858175296783208890687517073198312111151537247144901224130548174446395975961347011570844194834110726690624677683544649372398066470368799705473679078453103911919258245787764685479010014605505109781857736727609291198722987834873450792011835520440930834166493578970696799286100314258689189084735014861227596253383996271444706665774254854251604720736265474477070379416729348715544776432921278107835978827954899296232899591667503935305898118639206670773244201479609735226115491828152408321641297338991067039089852620719921487594592395057811916929797469593354446262832633064857530815667479785154057899802476503322461990848393305467425733001693818450232357744234242249391511588605462829183437807611837532032137168089911353381068460271762402215753682934123596221079547261976608001018486074118819007991515770181908120077230543035022956571543482266191894017124126516294767179002242051535585352225200585219203991641013713143255905043818888737943727500154670514195172528221680041790060469703035434620449718493130718874115951011408122949670002078830687633637593327666158474211955019754612950740944731979336040609816818747317138135257515824651914693669308523432026717212585367962467687678158399618282670868107191850778403052933199783668466527063426611418906853634094909905430368714253445505600982728912471781410684609632429509692690296484890419795731768227556731418951212727944413136654768568038691356154893867663116064567439896343218840822003749436078092003032755473564883268451820393515788560689681997553509770687841060088136151672906329541147036559700740628522866740020739895081756555038738681957875093955856781020577142049266821786729501358480907775528461954971106449191246553475025041698398462443390399160641472760430847922276951563360019368916844812556829204414411460889716456809871536317181122345525697154892871208728159813188074838150799267896816649091340406845938112569925626341087993403573647114863300376114960332991415130821021751894520196102540571825894145283200485282788811917599306300671964786806879575990355285276668769748011033491589975724866464289908592583880302046662616773690378232731326373637949903402532727540572620048101416434994781496731792962527924894151869849008838085509539323775485740118656788386435404075035701412105897953896619633623843536048089280937334951759216400112758403200147075818705867374775521843793820856330671361155175619276628422882115962572727746427576425977743194820559329268574502949946588152362665087496310666789788009625417784661435023294211404865813110372907293641647029648514323766787596145483127540721672002085889920455809074391729896566834486996518433751798249775851412897145229072213366457233971321765817626628339675068176296825064631749864381193117198996357334801348530511992313953448594884036584067701388870949423178134966803128546102495467389014598177088415622968163013493019661200901255553227624614646674365854575486107774323658656117158967945612005815397586413802208864280115527211335792451265054169281323988770652240283143417805653806706256740858247791377381842322767165169437100146471232774073806533738141804732155605227691874069507475962672329661860440012844950074904311031816029650394657312735708295615543288647663007441175671011126840156014295883335108969525400291677303611185189028997749514053113639690321394648799126011008051524587524744614446321314938496207065877832254978300194855676986012433304337259033693077685054867388604013911736836919629305247217551957945626316852866442775943874526534666197777447016850230552865286318202712161021813991843341829586251713004630779866493447336349484480946174245618010649997870154180068106537264007526840222868990314575667445912563238226216374934930732788762390213186937590057277744182387637568451411927739839612851077311494059303224453481471102765227011854033660124970541062347471996071143947533546704961008339326731857348345779096273911198085129912062727010083259477936020432752271704826972069353990106385095161412227059293399208035823839454428295338703894433644282121461067238000848531496239195376403489213038199864589112246566597662548240448817913547218128432342822908293069236075571217557286940700823171603757573001477887766866153613322993474646922017524986779538911958148741860846200987028733478578923900449539468391526540251712942085179235538032674241879858175503322641462483159023797820880541503988864376712970714514784950057750488304566776457567199810886641307557115915962177152756915974336003183871081631894326792500475335744836893446413663193904282231667232828135455968188893224348239584318237097146710944545512959873395275728614866583667192624801339401051279303022029381936141368779240481468793591569869018753039275215689883587881325988520971402225728968715762956569662238313939113375572658330129998373371542583527663250678391122126229227438624089895323620771557490319342604222972993732523608912842414431463991545969717058190521831302620802070229120242288574574234906183318717543412251563222083517944987491036387631599325535456991609649576850996464851597423360944503236208204203722385618006842335146134742473465961344584352902029592398453892431818393324278289888333006620309354117018948544300839236747604522386958741515230472042171479430934769989360439576007888246176320335455714190577872024843350594042805169901147761323298002916094847051067985158336061760085468706846697886671169037986409990206481179495839446014935312090157244005763421009898981369600950700891519022064021692048782672843500779096736497284982282965065604523745081214162724914247565845499300449547426594687913028025505092330823773239589767713036844688003087181737924699461827010882160485110922904191334967829068371016262460874616312405678150570337112701769266030266327153443197619190147697601194059542703071124112259911681033405837733673432595717986739479868661081186496577024548157179205510006808563370945804429087738010924524245326566226802034915314169413452741483116564052222029681779167434031977983761601379321038564774502553957161234465348924097485770003794909134285344674601148326026759052805444658136271203792058866775625978377261146618066199183709955016659247495052230348219839204580076311097416548484793617201125773809219812925942123201742277282750096674129900763966162270592230431498776112721478331180450012441649577500615996525780475763425610406200596137349768970523901084659410361702146218317085539209701585603132566173205596211064486549532955595813364675665998886572469968859953993316868194079161239482683303437608895493452165661898962593410133256219617981082078955827942591937199790789758898456314310825407145522633824948331983405668702095255581712306245018441447503020529055982575939986977352231639839256187223715675326540862720990805455452634450768100989111602020879960605555994436427530035226985193239356897378595327401041790128988870631343388830139696909300437462033904354885406778628359039960174055297116638777216090806564157522179725642540662034244676505009696133881470750934321502289824923096625828751565353985992864817978494327823070989013057165833327216433019254995030500577902759576280737371641529216912702853421924791445137798947363532549299045999612483317960837242423228939342676568841925635849573857182970892461263526694311372022334570716131003781971318336393685671878136166227881513827293494622522400214959219595459375247014423820790109059419377735776181785859204026253218050483124548926776816618318645490208655462033087053991230038165377304014426116256576828104118719333730643811743243870885878359996322224479668704946987913299973838937818575018696108795869807494546037405772906766146537323275065636024011420097938742282395200973856500420469779246950551591131726162444791712655415502151491092404399118318667567095580648802366420528476792872029835813531226523203818239985992181291804441687294699561625269750123452030061225668038816761224302280065718806762745427270229992568835146348504390485486525320532005706766670194204670398912361580612528623595700957909313798635183597493214164653282713775926090630502830546583594037849602491315685912868005880110083067808497011606054973238545731737268429572112260075764565079720615780419090827546405658588687753279273683897357544138637481803946236870529301128020219817730833958654534211889426929342903737961653704852888358369158118044910829087774735987865787864589340571592250551500355720925075285515878864425551790559577139459755111858841691962078343757988349075514510358125869076047756655042980007328284501430893849566930198679780594874565877229705598266472472262070126771986549903067380227097108681485077503463434548822069820114517301730076940457593246475358343376040035381658402000544312505980466770437475256823924516556707441837294254461086872637620168486585864701027623208499133836484173851114707990090827641188199864619140317813253541583301614180027791374061532611326337941184620668196881793182399328086249934142450069298047220811266829455757960453081353652271148792982642640819453820767344390934500980506704668716699907128872823917281115304898304877830935278009778766083227942704732277959248045406346171835132082512791806704240577197831841303176331929664993047017819774105749026514134758418522537810100463824114078145855833663216684926050675360978016921321249146430684955438417440226038164007193235448655930810217526471583478293899909092550097158684960511439188978491928981833765584746024889625935344974655321359417456577337980129098109236046458839050499699392335483473456427912924291888952943301215121457277993544687963254436228393805015759157054808395593823872404840886135691209489722263222514735300125619407464508274837057493947194616529922148703468139894588353816760215552643557841545041132978810756624277471667424213463250672985000100299475363691636755827200877279797418582190333058017270593635442024053841993999536412656728719115467162266248094114197021786371934953761485304019754718764219864668426976637531209329859643506800390923384452352918684137217464607237878109679148897756472770520824360619516127447258682280106488315120212105707358488084889276187121470621415574936301674377109511125621976296478300149006807728257284480063726334916861526572310579486113230987211173517207508566651800991824854273121755487506731748994884068138223767907879501151936236352626244633970248372252909745669779846964292379269345967737977251910836307546593591980532742239363117217457153279809523800910585709283177582792183590271045901965184776019707369831771285296839381945275311347531617281931099475354577456796695352951759134649510000478994416060894004945860496855439794003302667728028174178410706840786255759550896983556281078672537594809174925022265233541034271123012774096619495682358194795274972539395394702189713034244537216030901346187952986099523549003606424385821594190164831216497820963194473518377048432228501491785297966607004364040798828638189098811042614625383267351056477589900985130411991508913279721606600666101436700480814516022302711371171227943038435130450029136722594024710636042599728702206257070338098593113524691838222186765512364689332256200792106072422294376735104899602338515709127325731455181735486347097401239285058853445345274006395940336492171490933728740640653515007670310178156308954343921746623448957380522750002965809016284651587390698167600825794355425564518937996357719955790222610732883972281621749999384809474150764254018627181681155492993205038623382618150326904776239113052525404497501200207173478445628618574006391547100019389321849062476440614784995516251490003941460083189935540668252599429401001914982207880109537618036967422605778504404805258317181730627448602760538847184242894660711224686540005920099531058949211641996289410641511725160070328887755715169693896659151277045647061533248797426797078797488177007364573604518977042130956985556696264981604992528349669293501683605987660674823782298087941401321010020985172501492849892596745105718511136574018532629394413105291979943744899776204138657484150344039034862796420185229282992304295241347398749350503429032994308862792424890259542577470175799194513519780640984317630450162981546929985238291698614551849310549418256459437626578413291041599883481293311584951345743709160553419121453610844189621038578006122353103527625544014055202907417629250822743624204098628236947894475768502004155480035760686942133165324520537517531401597962111083515631488161312216647242903300625335625425486751467233185495723309436321100645315147611227067370363069938164484664364941317546340799342280078739582160554721000295663213921249475231362368092531301895004009103635682394212873188667280024507693216483244125676991989286028365372293601985833266790909393275839754999675839690230475471549799486879004799149598201833890806508963425186567584499850147795487252892176469575158954962277701888255144625813627454515505348032272946025289846943324126210443313694879594703688154998009068814035484356480094744691524242483983460149175305676703286085254030851665685132545772169073158024899734348902286315181676643865226546838279279081476009688575465335774059318423742872209289924506411318000269439272214116273894841894577030078930132126015849977606401335563810440898461418783775151073137842408929456416087956122358915034214849890000690669416908177060572419973641780711989712244582453869191726145822276887832756889140507521609684221509924094309100417284259520264044882414972793517541854877272353088951129392193617281501309154662263928911294126863899138269559080072677738942621363028303755901089476929352224577545476363767366159314683367133514938832688128514524203161805356502339440259740717050024945249109487246384070610503746351469467801685716917042659848917532311706688404994253816403813061958903236496133798877007423161488859950303141006303595442573408718862283067574012515734333275662051761545813646336209323511019916285328822576266316492583381165142526002038532432041657651885394542970077538011466386610387302984466580170513541812041971513375217467809954785840866517390152411265597242596325169165804631474868657746738995892194393990967504394205116068534841910249779067226789728006157537421398304401776059447967843065473769377939402885222281178503729541283833839488636061144922521813179472133212303880631530430921010308259096678799930573828507648183585910093485052541166993792985971046521763962130259581853257944605086699412410277356931617738211318871443659157919843855803491247588281306365011789646552701026728127947336600265333787519581552305921521047990966147685804287513022873221278807844425006329677221445716421451313341744144824217145234549890386574491647462810619519945017780827137738004577017029137609298358461071681373162432828721781214879433992672366030882549572868423129022277496497141685169528021522591441439946577328491480512220311125340506695794345695048450406061507904772236816045190252048462358903406810824433300197453751029754110639134348247638683713413882351838752416406379038446441565522156819991689305914921212545568386221993327153911754649847332333149453177713077553424366898345391467437562061621211348424924332676449825625341345803967003921480278607704141185788729288796431409595861876109531589070294551116954256033467700911921380093290826630593478123761390761270667067268890070444419130903098920181797195394577953076405031560186988544008474787201847221187508197683920642496131910744827305571528708711473627995634036375278560154604572064639029394133696194413494470527239807428434615822947911454012127040056475014646568849203770199845836167683092458899511042962995649321904614252955209444150990903440699679649198039774209206835150310898169143140876215974027601119026169550923977429945758864115840606033757614420658160405307238569604096498842499110497958297080996695339361192776673239900898377302126270228586802820799044311921971662445135009636371073877049600944386833092143778676863251418701413642812354357044951593737082250538318637098256094789688010272899649700591607730019685956482283064331037982292964259795915538702716915783312334575733149707224742489989069100475081900262954472277442277858145714299979443810367497581816420197874702592885070851463375429269483145713818192383671395890826829834819283281713340090907333034897878296410479869448432137150253502290848499171139131540407243374658924046268146830127465644220020271873247857521594787367286974291668318670834747198594079708881564560552993314096430383302969960184993007433148898640384917047749832657223350487564479335177283016460904708673540285788855701291010768652732660905249936755510341062474349094607397921618562350850228108474274398824015159784455866268559313196415941416839651057116242309180700451282541269288941324485524485809998830545357820862785683516991030552730649690913109255022734659789975305076368459901222372309676516244755928319316634607197315578243725052962805634751243693378948786254896520020887646255818933733504957418877944564083681682910733823589708035288266065908190190560641938858266620276505906802978981977465279738122119604246091884515370487980531190255219156948568200699618619591878435334297531344706635270424901955007983732740212968952957578152973480379501526954826856743445988521987793975515878707301852952613043520648471396788165528994126555865950625472094192194980039634625960273142922446783659763977700666584983289505595786635167916796216044209882257796053994630749782023537549396092260128298704291391258020466130992654506653529569163715112371746757769407883134849775616675805648184845571925502587064509422131000085199115698287016893118792275680715718047914287423479651449764673098562769232497432154956609879384788815876580493292967713712400376187200546893188793735833325577555395245595165068305499571859481738895240373951699527498736089600901605675613767825787218803214853123711618362102024832295895763670499075434559961856370220153612665787476708222118034913262258656057582192450108844156903627086016377579957276796074538057650687182240944252381051950274006277684937671763417070776226343906958736979616264189064073650062150172815771063300514460171080354192716515149455797657450764315692000025921867312112978414796119980968169916061808941394217639043472954821657376382190398132722675650511686210399774648257337546980750293072839355010840039242487037715398641981644780672512863261672411523095757570792019694629922897438259183046579918575339837837027917730742391203880169844467187928196472631218308697375618195353326747088691087515838910888623975065741412114871089451730603329267571460849147655460497678261326444980101128965194987916155989524400234633851767761833325238523923338765439777908399106078259316484535933560452261173514467928757625783755404105907262895335735662950039214413704247924759230147433207924113104397710358969418311885312201172871714646387015794913492797082245204916682386042399440092790665662679134925998061828046918451819780287923713789100279969556504124660218209125693628126996822896611233899045054385959435667737426156731963198134875947594000112400144490675724234524236363342116907830906718985736476579608187538053328579916357240878033238266021757303510915623887503575312441604744331583676084377960895524392802090406314323947223163664879757378601750926809185145525376080613762469105267938270001097058928086222323559936115491776368620913095406963951609962885825732957737225808452469278197661251078495090538827173895650287894348020803659800570686167669037262456415816584981459660181070966756559112300747763410549723376490988607812211037384970601685323068194210490700515645201524625369991428315048921469596893261710110051013187969539130678646573804464816099623003196730021205032739477762963838095666716656715785784416732451146180362788727934359377728689937321678148551986067478890006113094070319265782464439319114545170772444914502155812803861785756997135048848158929414531272942930162979510684101973801606184589705130998615970658432435304251699476562192350797382194721978347428104583042169653147028382661407033819790196534139371597730055424245044156448774508316153470462319229613832849420816031701833797132254977304976031900880430948595158651627675225474432921501097061810754197903935082785648853517221455015056328428462965720983968416022782659225779907450617060316296834398188350636707221742076669364410530718371422516750691591493830113479987732305571872694411275656888031897385122226218292315117080003546491746535944226161909772121400106626092018561350935221725989553306930372062221742041088322520591139408372867969097806327696727146519573582724190572130041522972787631941615430827516766495396776982885035304005244510976009606786569036756417042726774774098956404897864404475286945447591285992244703125423616435376785391840277138058326858187814592274072309824769226564969888738319632377015892225130542226145233666637966391384673458302061724761050170583979444661026161090451266976794102550684614736144457331194283176007899184376200830316073669874842471104241807780792174015264545760275712184952327616956388289628363591045055209377396857633639581535488955007473551171481249435274856449095975295576000184853465908423655001220838222335288790761898340586095938899219944896126345789061032553190735282106434102402691445688237811532405085886391693574201380411656917259459266384180827834421317500527853881856848728253290345880993493731259016453039236381494253292387367495899168133429920540359293761734518790092752537165668202189001148285469498328027955814416753416907396713685650038930565587241560572567811830605502550060970690497981182144877714279080225073710056962589393947311927709983183645161717067714739727638028213787309600937654320699460530741008641786433572498993785341331436960084274323320054105798884917116596835675445443924329957367077503728434710896624393224099969383039672097809729289062387286599545369174797709861701344317467153313538345413068311783878919322386669964109933163972341877446831581268536655263546890506881808029444284443846049452613246850623162579249044683521497216715642461760963800000160469425608622221767311782152586701126380800911353707174688713940788940685093932840675758564887351522279288639157673479069473217735789015901106586656868431367418809796274707132672891578628185504186947905894048117066139805314742840316824476003023058001879990143021850088590271334267516422456400641102416408031270216600757952371644323909591725435567656282298033027122312761441777171551455792277924783117731878040384500322243403142645676205746107770804874771419921036518737431124252677778991016656291867188282281911531123174418991873393480821062861416793833791824466703421431059268156004515771438703159360531644107238181682358009443716574229519226724656900844675801705431630793631579916202482351661924414060532179547499171192835857848383163335705460377317592830692927971842065067201391655184817611613481334625053761169035962461325172035708701000651461380239699156907155069310402009066646153158259431481569286230018869170576059562119973547434546901276559489635622843670285387695901933187079083890886024324013465298252571940460209295469917532089527109586342600564542304574287881470308276822394124874347420726562883681391185358328071120408575389222616263610401359201273128918923316271399120251445688631716360960014368324948776560003816707010144152389312571242220010794424598036754484655779989099305680822855669462908891151068218902106925664661624208331815642944986745982284918082179313113519839918128414096567639887279225183105124046632919530992916452816015709332857941340344024396287208281728490659405483588736323904380949234889320652622063286522157232538694992278899052121659548224538140846632529834647690622330971804947560319869846924297091244408173704993243689760622050183485056708470834513945426414932920762603968417670784768855278299525408801031806652150913883498725836355965039327403004436437689121631932402062702737364180526004283521813001821469411414359372552965256624189689356574172441876541543069380588688605072622041381346205644886557536158453096515871456492802664560883272171232221034462480294323748062567470171497553259871939914489753749239198762386291317000666268042907788997455286017515375480036874475325734617242215125357699884638652818845602337640377618848126322132952414688921659668070188414243333417496276828261475854024778343030678919606711756736559356958268728365990856945137065608629955830172811421109017740539713797285952764366423161255809433193635020040691659476466858233443820773907766446567116284833752266672420432813205330529720509479692697599185296026591458095115227558870743065521959350252977366124829520952026841924185221008475311041249650649292096394483261414792090072134809265467260405482165753491626253558529346722252686501610348495472898349074969169712617714482767038174421087322912152901100470425609353858785326466018542268726038470900984482281935388409836728012093166060621266777837090825391555491020469392753728270131028651157702448653174986208545412912349809722001322135388068020877546212674481302370098006935156935859748744393134187871903291688671791833432546796668466426571468136640525312682746974582028527241537267208692126807505865726124347528191718271162972049818514892926474293388789088577901566674186304742091415529272945004756496631953462256318458960329718090993211253185333446308603229139614335619008946673497718487116479294499763862745704427846090956247475076893823763012466535412545008642662265579770729758576862063845644426089191454571917035853893762298173007773560548622460611981051523643153571622702518132764307306882052362958812189392628758232379272286081218794195311796228832719983172836777378044578731760433781303610212658620450503293927722670737023009967073701041799405587932759356616439616665202343724971641674979542771599734954698196683747296071672100134187477847318308998715863211034874179913438254287752351790408031917834636767441342491916647770227572311839372768700536990290749603168730829537912085630735956476300940628956777819550325881736372935872748290759509629373434791378187535520490921672214665242992648134097228991324156469687311344373509245048996233957299410496702141648660740805837658027279360441094522644536283516655147728635064963346948013689496409133731197962945480147077294348502902325668565016508833314776650223499160559080483306000267821524704114174361172318518479602957297672449363481145921068093301081053701606152079696337602559539248824462797148091883265532600925506712796877149355823444191216231569267467973314004673120386538924941748692558092888787992651381555731660379535574773170178123726187263609358810145023470689102150975865401043179304184770897757339822991195574325967567639902036585365490875882577502410519254240845055512782516231475015570334154363161501607136193965906532344578062803201847218520583329705582253746462336273657559104324119618283618807759378648240099995427524202316973079759162577990173717141715773439218342482161469781102109837754251892829365922205382002189875329497471807896695495490732059812946220799760646326250063367321652565774557989953981809076084376313956317733198536258331866157496638222875136299225579889327444744379127419263636116245236745225724645644153443642137260162958874603899566207084319107715855464975236113692553690019933262554389114346774512107256708171424490849717705799379323113784604929539692494071595757640935234531096974734244866694685335354735669548575946587563669332707032565013051720170874466010951987373035644622018351774586033305999176600576330693976176060570897781414174827793428834775955894581507679231765602624117996464865978508849588528859102675677978773514089016482654142817711384061244822176322940341246647209087803711949150591472075721663960918110536130305284128719335122590816423867702935815818841302413583408583951390226443529984047997400968271486126860528223908893680132336795342963996357675120329125160365134149896178240360727895341901062615701457830584480333695730985456079551708998882380603165294815485351987355135050942010692130661019918979779390498949482226860138080473890578102940752507932438732724297303181812376221568543055333649553495315930272625845470427017444449757496424030940625885784424408588440775634803940929603273908393617085131885121218483933025495316292980274533548838768706818158945972992335911592581691565231483276037926267902273940528322942418661123259532641744964161651108817744129417347371632488085254224946597002133522596298098454297130757673739798422591099358946083672845996683368251916978088910021990036954652056873100347442649986523171674370308972577883638066861848957582040062584697986168451872202894450787612715405488289612432447914237802520616806679467164711330994239216159751386497758066031947455196084000075279076798561106947286108924837975966245804048470300869083890679219544541802893240627245960252316251142492832432157903398331607670698052441304192135654521785732819691157001019980194722327046527726793611944683651488843686048504728985185999281557021102182452924076763028924503754580643477179821908907569107611530759279033792688869072011016619998843965220257609153866646312506491827931134804147960076308201974712895192984847341900976844267656780228152754113003289797388577199788098926709829108927425166909192480320193767396407438432748058012958876966060650527058388636330220753825957001773398054144457167501607376839747296979262903567724753118337592804535406440149270418437303020622564777730202765056510437244659404033208042737182358039749677538426790356922363487017922859669256418544527573457623934813191805543984481832390378634767604484507919800970270636782581118038960008379646530386151750543290184126293257368466798997395384773925117897773765995655552099200892249027207477515011263421544511653907091104828537995454316221256952107925650928959802774035039415374955345599158395068779661431875303601157055196714261275961177067877944369106137208357654386931926232099058776922024780886604897577430067505094960834197579606530088413576205233668760917552280452561314419754467056954632618391261971355580669668562317549390289601814782144054753079379222789225503496880454872728960308788081369337715509705228946987439027554458539085032696780173175688412672906322438732193390858734546622267801992885204994810443367144713381277938108211223972432103663088925086252984655238735527823016066006433826184786198233209702567712405765923653716559622205470204554161338717162288221976432104890443973026213790601415080406920437508732757587032745191694106035017417524372774778978091864581776284171667387553529183049262883583768696093772999920081366066944600199732324066411988348690001322899543393711151319981743393870621457470034420006429040114305774896765198973361525167041213840691292653478615842686136596162186093172587945694363500508249159331230028199626278049013277251015830995618260431597099347023866508381071784739729530562949048545475186058779847697045209452612436260808454658740563411526107447757760350286910950770098751877714633440323852064341408986669541394733077213772142122904312744972674714774360149549467281382956783168341642143955269476890424224509370703967899977281315692505700968305044506528132053038159766237121987788620636214560864584484008823510870228550496761378679244583226259438233933056988184031920253003001310869584011588113737626050021276537265114624559609260076994657041121106792488937297867526975712065446971012109981909632294728188147323099905614539781323160830554651462921594057482886692272712813339356448573910505408540097304527489279831762316593535707374132796156004591838645511173498038910944336485897150748458517179728646055676034042277038705058783301641715166200058237682189524592822341432016253457204765956692454655455738120548885412310957010697032579931966513070967821891032683840054670311726111957800000589283985006266302049602340170873152029176038892202914993909631174562168602184637475069749106161523051155142742769886724143768821528886346078480411833230570584081200006931445234661334645810331873125741936014622633105508972707402373560239775198184415177006279719145060716739664224784419987360888856284326904749942361242564290654960369378308550081203900671116554095654702482087749183842698168942897823304590588534265237066835722677804729942140654947506698148007247669310880422966909210345392796922206998861769024795917373961799824322477935781278432570506436088686318467349612377859434366395213071293076123734171412283182349872288876678463487158882414672288362956624413711667673438863994390612266179900636468082778348636568688461514785984699794334006219928332060058203475700629484838048579328518788549334236477811450205547839581998269576145320375417027477573797384379861381531919007526895838506504539818122601899932902937293266803919062530717285787816021566107931418326925083186700696975659592242995866878486259311617259637114048774758045311952411815880885401819964324288539725276145767063131190787930729309756643422369508667186525283216130012534323458474929140438896992626319130810922485820624243955890373669062394987500686006265564853496874666440608192242963510928081383595143780621883660984060127082205333215290822657645287940655877083790415210632828261428557718690122030372932757513606179108621340756464620796717119094400731183551962915575374244782159928013440160291558756803864489138397146419117485831272251211709298613956080266583574484727108857728046886852974454275037235697204654703749018713786140315999524622729538943988506557855563074233419528033388175765847843649565379003143558503040354783241367093541147447561264419171023926037437541637329049869166732226780192677003181018551298648543198868770068552278398467936431474943087037032097247252032596276745714191992891690810820419620802413731242387572940168503521689843441307529576137569719384387834170920917898079141238805369508931375486296675800431173102460138000129228265369598585978845053440023348377912985438488417115638606777915725679504459293768122209494548740064317770705446844891918819944385898013262873119142921815685547905766644585085389838610448802366833536900093320566689983880902671404585947589507245303936576057115753298814654933061177041431388619372959423666417414679832828269264799481507070791127882525288193217704800481417901937193825846211767531316378244434624615964627683947502651670165613395635054492588764295791774367539011970585711251390681668757371845197699910448860330334965391284846280591296579889001160027982236140486994890944411824825756420985375272951216870002899500004579398608882181447914034467477568165508965570841316144913702162403875845458815453950916892879461483393417193039792491414833387115661145042422067708681307026830842145019786116856530797060275943114160884478167086424141198938378460414468942896367375224174972521313132538625736360352803083973786073937652625369910105180253189694859771669847783775932541239161726373695254652716834723418900380216755073540732105004379675925085769817472233226624402596177549443674024837533967587910752982763343638735337383726837054962981222778828368871001444456033196292002864973260349802189740768236987267885309801911325861383004396799937313102788286471209460447337550433205975151346380755943279490289310132894894493612828849535124588951438031614911854861932735131905642984266576291888452841600778889602679272954959561417521494539170432484936314550468649489052998891845301260492978947585896527509972807961130354378455170472715074130108504398731149825996589309081790421309084063605669826364032847469775939165710964630221895607815240113203487739683798265808061806147120492733742071360224132746645987851905317704768116853752953339527681013416967123968888058553919972246258048722415123594923397979855195224131425646818019235533011175132070122697878959434314364150993792248666005015022101210403235015438257103750894862230906023360900322230836723934423307398093008153394118230784616601455368314282780489501439093440786711415312633392276918533021212574088145363991426106102366008071579312774159417411175832229715465554581238847818635735388512589106730637610610988490164357671632863356157476248108867422182721575593378404387320252555012876592171907766635793028136445390966635802103374562540000360637417709706258886207969824926629029257878227391341694359589876271330042268275899557840847445935997924902418971966275445620743284897342424837137552510545359505466882815223493964302783200315956444358534104007958431183430440580038767714686127441877846036450384456741667852171048742800954035618294251740266120951462452502792475497930492572235014540313093081111146632200019957162587632990576905492679390194138763258547813371695980607584987447118157433616904013435104224857728726978724582982429949455806692869125060389508984293749353465296786146052300138351758937647348523635752407345135323072628777542468419479396567978986583502474635398043310638116813597109788645179759113670739603532732243831708324447971048955296140568837783509770300226799701485237818206384843911632142052939450432132969388337164242739140883649759495927676448200428024351959855991170480554918074460418944105559007228875596782898518882736655043919393996190718580850226820302492729413389610756751752175784076166603762314826490727509252115422687074423869283713627094566884441216981906348953137921191431455004970636108242807214264972945987390737367169526973637624851094468563649024411761814312724246880282814960468181511957346776093002439246629158155093645168545828712980461724966596482412758325265754834607631428191449149790540968687724429823288508206650963967468494264856123613486300890965734373736129833177878548007374727313001045749334273989922003361605921079093805686758752023000612825481881845416717407554588637570214612609964071030435412802465251031287520981391944841626160175270780617504303992015126291894110966282638194597072598606212062899337623065024066667261480244414380649666844921074703764294947013775886332970945674024395021254683435925195853057699145228072189645266505716749259717424378317688865291374238798104116626605900452522289486836462317897975195421586969109573912559572641523615816000253253157628605071246498701999075638027389705869611021137433059769301805323705122654419222525843053004531043844094487145312213020366494158230639772347617007077639192247982793213426361115505095690505331141338262654883439623628500568869269870737517887214506129955029561389740644285559755964448795667822731085894211601315751478181006817011253599531318432494068617324572418104727036228276679235697580344672044587223103366509732629536797238106292229274348756008746746667141664446634479435035372006862253928633498759732990255142520615006897028452472296664298966241770654118932179938155667843307469899781093664075895072231062970067653982386291307569770091817236588497375746898485504399628011302867846717205864927631452122021282247307815641255027345043875967695433585416909358307347612300164369372797176908029383063406947943700848087653777733392598878050014979113376249753532713008058626335755444983796339064057765819167593064268175259498294646416270361203293074314435325601415933506465237587340160933300544179419688873895928151245443690280054591768550262285091667717396987288572751791346820530590415103122821733382093040987468466430257294607191710596585618595276096471377552689126698295854247606697734903157524717996440339135329010947674405300551561345941724152856175485056185175300146356971142720294999744338635440758203396708664534549746620139711772921414913208418610350974080734146502412953884004096853494215781577423893063140518046630630888280767041678939670192374084690276765761218323210008147748731341930172047966532993554785959955517394478264773532539943347523974305607656104470710454128837164575929366748202302099182311329454656542422137400839112606604358414957931474954299493481200505201134257661331532557449458257298437777179544811424629566762873772014656958421892164255928834498261449356114795606827161352851287203032802526773528766974263400581484447322707707606105078672048235124589427358387358038972995333730309381609256804767564153638672992677171526376075580983843491741267574255753765504996690566077768913196809602555734715234995069448479285660235619689059711382561194210157554521656151701714151667008895701689613304610966505666639293057075672040717601182084336949527342574065927067765422674452218588750165054935550853925875019280703421970835859589754349641640741015632714804599947629775447293078097021044952252362178014809761660749485442069921240571035827194330346710886995763861961595317943074572341267831858690446982565759894761393948075744670989404322866033393318062198460543515323511388459645775402988306919689944122849954779913207240085514490504086426873092486562740854009721864129503084275793187179695380486641770542769581346437100263607904464310086806135191865795626728750884380496633526178845519079402473160655810659043243872960982937500457759251803725295347502861394896802870363518092454804065847277495392582234550965532981714813824267902842464171464530182120244515913252188163104240437581449543828968083910849277044324210750605455930139442621313974680030910811482136238433410029483394581597909523828701489107580364518887215999818663841201667429047540365681378607322342883946853156666508082869509082148792788719362442711563947811847488943034940201515844959212105692852350431865068731016112554196251597945972846955793197084119290743534624215134243540527315328350121138877946289018380691003384102607464599618164838298360788243017068828894864405170592595707901803117901074295451798413533155235454835937633200052154473898266304242821668193057729063302741705452501349216782117180284580237630379432064381194356577918372777125567797961245140330024180520957930855032209568285978097086647482037610521698871928490613866147077245976524938890244152343483183694850446062060412441728305267198708308852179755513530702314365701449952597134680583877071463332984607217862105460715734520547585027941510252205349912688250278937682825651740195966091418282382055844900870118183668626968734246986518806676033823512540588322301939703076484600335626324877067841803448604886009421523629315798885278379141840628445192437320917874248562658084010497324372227726262298080763437242623499098240155940885353322399520518605505619385842719991413923247270910013853103172241474195539232536522210371223323666485018257140727829498701179290097533817817769942445690002797032743182648401332574752583357995185119132400103760560827743378532748414366035362638392871903502458234525145352495167327175891822805605921824453748097153382404544089496838151102560636668656001987935737552612795049201077282995760765741583178848176155714483818724568250974999375981175799321626806324551081877974019295902218677099951567501570787420824808895395844231668684237491315273582130363766290423773594284295950705305696670600970430929852141621158618086253535455449439354004650208298226309396560050013283742027446194656458372787133054512003727796960020118940866502785838541046753840634919574817804792870825776568226305120148255224374752031847316595488336155603010242549224219372062808241141826756087818775578786167200959975795917666456240239551868382277450966496927030945209005746131106559297202077928625048157356042221686284432214744239844950249721444016892956409066106274949162042422824249639511613583410009864385977487386834876544505761130008534398816247144475291806606620722988959033085445768779163394488249015009161804539871989464631711823311812805296564189938722194675113016050961678606511950629549168957578507063558946534288244876597398844293213186800751203291630736854438177164775666065577609737977037137420748798228336757848807463542882040235939256250308644129145547222799213307771480227938480875673706286174017352039017805385705590241772220731088755591175838517357860274682145213417155038301263397665353796404245735787352135222908924174654512681652835543058786292547874465064808427011647386338763313917559333818608581663423482173893618858584499822739260230348768011311179526485004679079570707528095192869368831729107262600327936926349679985800220351750607815132486734313567771402072259583735756726476962240430867090359538664254401067493537472683248328365103381156927353597265076116485797850853039133982106831725401940645800047700989056308245875090744029897377864561290161279810101564185661382518303735945806960755933556208625325742077238289484024026941986978864504537969126742283233064933680973668658840978623491345336955163642945079181633183961348711172175243601174950125195855137726591756102664887904976960725965705794054463089372777038080396650848804245798474575871652303523060342796637811203908269826468483667291297435848090276987876972922249102760179409011802499256265797812010430650808093958541398986279312400821923048141781989435907643151572135430855787210425159448542753508324054617309012515606934305199019075441712213033361649321586441323770116677175303049363327610478930588411052768105131262370273404478600059772698368648461705915353335961970861580692668684548319197486334024421576308698854238233602166569297601912428002603815369404784614863106867133485363473247088073508396532406517734741137202958810159458832264629812596970382109266734212834440460131788694146564858906266150212046962127892847771694386315505084512288897429595727627675496772687838051922038197812844902840810680458629192041118270958253869938483945885745413186185760863297601394083803611108217974776542237054518726192666887847592306787994862939656817944050769840638823969801044177069272954508270803288739070017421304932493568770843006592710997892625709100747529199930681935851746650877519202917340298979315628189573542773960426716475290248858284431931300827999448970016741118505566169591115452673907632435732725587977473198702316305022721477997334977389231394895989938899446289837478379216624065296359876650026786098464563839514784613208115925852082728216446288490624342703777733749422572288286080590535243152429909564273307329894918912562653276352542530467463526559473473524621423633213335877441872870851580940348520834297103531317883639600914564629356163255317554572693338072634060766021583493323232846804411771305997105283282992760524167652221817911785689753817952321317126231978647425236758112306448950293092565312409599778183306533548348834653388500361318286520155685837841942691706791867506500945215205370126150501949906929779161438218995271193195406489228003751945191370122102730266186918606836076034834408151038920447447216074100305807472687009400480559354348993119028415608498947276636485506653975432910911652548219055082179887504894570090450783550161519674351331204265663944728004586551610677301465167437091487303618918168319106825457160975319031972451804797331376941660979730721159135965272212100615517868224328340893477381996705776277992978336727293335417197994057336907259400765391071936593831805783244553315768066772828681575130207595096670278911205926174170172418549117829676931556887804352631575132419756896817022018749518157928299901523836971998287075453778257750953596965340881924088366336467391657097728985235934489364731268571087380670736102256365966119596028328009382435454553733267563758360477560648203576362209155214343619740144209563224770299831883919367097529318116933123212430406635576545393065593894721390125467991351897862381155823811514258647717891098142944651012219348039781224235151498925724491573914306821159842312357714741593445200251225918542608527810885688448016701685525624855449710495550516549040040371819280188087342845506736281360545565287452415835396463445898286682061685558459382248291752370385955152574425897184571062822175869456506508597635901558277181293998610086675834279989156770304560766222107722633372654273963452694027621161543499085947753114809320055870633096916194356920248054568914251750115826326516220674455129530995665536870002909925320063240263981493491725230765113513322201971916158915982712511487933221145856236709809670775450112797501018051036913942246922010293175126337310689548242911393626564728078861685096119694332617207539275538191403758810970455436264322811086464748069481865072601888920473140392082161426207401748674788577775807215072313168351201653457951431000187207664086299331356052136417133102659880063770428171115319293659500921889243355921255535184109746681389973244475741699363288601684066521162733105357189757333233267564308561324331943061383094815246899762052515236285886708047974252802960434837547286189814581118862100985928913606387481573788036796146096845898871753878262043619193022614596657679387174161019185086213252257243485531174124964813672670552759495162926420966560767093469673083414562144036342766978019654891048614371700242424712719414197598038191034057634114555348798689693659655945558192229168990748759602397626994275258653115366790701829246963911414108077751127760264740905854175276258807182748632842794138699008383940848826448970000311923343082355772753799162245251156184311733467669646532722469601734888033592311523843987666987841726955827177262312285094240071448650706419454627471227519465947839932245585619652761558657206929181318976753136979749236339132313465025164271047757939317453361439304470263616996975726509357739078881451188195860386475447420669152786542487321222652827191595287701156080696036713223142846533670792874945292861330593560553509208851621068529537368640506996431442229579475033867759106850314981541426766421922614652314461197707134425848650806970714643885154026541957118836778343471857152614423610264605807931430474068293755918929077711354189912147875691463388131397413269949557276602918750633510959790680775553123329681352223481297419161897143516528252681502912925612024839998419384677563943030322038334254392717287494784965803968225450749370416904675067941614300406538704993094797590481466589831345379879837307851822958688460019103326008527676909955334693627604607629809200372348452488699910466269754709349932009158736195782738914005536680822767116963927558527172799194296465156412379924921881196613126361266126547537752814037656844454476603026478705373280258458513516727587869342760397562272510026471494620570924762176824777239888032130690728608876694448344573027541302666149365344782311457069718631492359771861851559750027787391132047328944171717068496073438863086604686072483922972661801226223993343063710478586052354671053064979935009783556991931141128812013621246780367278981896044297304374352036362677587339402019653472911451419027357739133308592332641986806676775330958433856081808355887480142279425548664365308751595150703027869926918210836611883275519685499137032065001752685918411664064351221699834334223653268922573190126104294809845660742740944790812246742026444082442456421064672193780039457704080761292652599372945766787992771370698555336185388316351579898364437928829621523650552853240551068653712951489239155363665492522284800432391219224195575668132817940187190813701641307401352178624887704430318032752209864244036854547894831458375272703268132506003704703798465247909713157904572488585555950045461927128058781989132567550070709329360006859828580254819050707254895162811457983364689033926725239006261705937035797510436331064990540478983155779510505654383775557663024420155820480763833761511565330441712320566749461846492449707404471779144202628264120740481040794971800438087469576825872574519243723148364721669755043149631693869104103099850276327183946542603260170156658078643475754439603238845746913096262413168175524753767556420353315385010315816144207357143145328742703938222054512862781939574298254734279161981213932349554085016209541600421707803948974558822816660590174809676334907649235983295619504843303297168786881221790971375499373913848055912429227855518410179788177051870702904592561293823491704315259299956819049147195799891684678717859789078857116124093600092295537997779316999032465750149585565472702176518703615579348734777928876842661028139872326152038894067723906319660974324005429688749156681562151367290384844764452386114961487116400893244921433989252894925643554037280224057593316962174257170678238856486739123593823986494641409035802607307140330529953225754449153403518585368502542525426813972061489733251030545414849601188507436482250562796960871189967733709915718932895602448834744880804596729824937482350448803918972887403401919827526365481648839014229514981189066186443283077040219235419786918760979535647951289507667946440992037338113819362409096574160799961431891664843623667897034277445630226112070948754323571292003167091555475241160566291922455677241524554894713211854240993691707108707426971150725466352671557386642187634011678748707885161031606758078228986993481916359893672530307881152287421054563661444824629642897643130566483363136299236896024448022167548734574632225759577403589298983256845913342097481743205620445337633571282184221505819138734106339906055695258845272654587076210288586312699377706478339799521485257897996200374942058308699391856466614449637861713997381263346240629982433647502376205191725614896840070481733927852420703700668909174101174785924639414894110109020187040084589376321070020863495317283752966497885240970245482390990941236763534979923267128313097381179981247668853621287035505126451209649385192888331086122882556474794484534396721181760850878338354620640296993787710877341818359978978150461669066455858282348910951947580120935045889234686484491348163243042854020009898777195805246775531809918804689695776188330827802072364507983869734511213814922364996433646616439478453602715409186816538938999874255241423528237458026894737966043204800779372277073825427085685618474982608787408229967085578989256914711944245426435675919061198623020031640307407473246630845240219358271524652907638242679210271065503634607176542989811259736117901696706254041548512826630753136657603185225833912846398687871273394483358027574555504070860029945829354080647503548278157742641433608465874018735872185179000784060850503947813873047425387455478074571198315639238255495948359477216472139323847544564044312713817015945166804203381714101369856815345145024319596387739259608642871644305382515428713747891985250543719478169413161384244579512351160763951174134127622790526917945280867101248079520788732673663283388203907265225507778375619134363545832500724134901191595117344054686803001029153015600667152340582068085830976290264895436844340712998902560079592811279690574267401979032636702473975161501065933381787051236186308767423538498811859454165224210169726336272506929003042134365653361215681798096895196254619646171064585605803166567306038540285577040247251427889805707006124129935627544217623329057841498985311163687779770048392370349531861071198921994135760935896083908865850757460308507940418830103457391999146582614240985149007061603466285356405331285810187060497099398754776420244153308199370446442974683863986247698337966236500612933791177951858066852406895965282724596826683031232309963531882750370905599218562708385381623039365187501306660521806947338106022774230353878658252544643530923639708732268890121501059212280073296776577386782864168056424415001831556920067962625086812275539989121473379969406001559285580242945665725160790947999983723001671454208164258412310184734933717667238670541167533562640385963488283421871917356845744418573468134761775040097508027554673961883730101178174300175244966116513445666943774367672860774463965078654548549526343030639270394576566820518864511643472576414696159153482630401269727248485717268892506815624572014024651532636782746741540565916721221521685880573416939196619267797227957713986327172450579182618310538901665784495679720444472578149562833624558895797054897549481408489730817024570171227720666014140313982596036589378449346432443580527523846912716855355094412047570115215687429060604779846705933057846027567762246359410393129824432139867003309906587390045257615424349095535365796563854130576162647566562101126034452973621635972358517729925629473072112151783571342773645050768264591538799134910672960174183859967362559590529271949855241370114070346696232029536742203766744899030699722990777524174304409715306413856601543845855005617321313925174007209591487397119860827361925758125079796760529689899437783524103668748184874544218645039499818137449758986133948658067261855064735808334589741071042255631075167295579521166680808174645744574984212118771037396744619838946833406843415719732184810505412068795858411036890198867489055678453066147071940127297035830918289094207125352291025274568378848699621979239365070478105609269147279375919239536173912892857019942571638164588339392069323602948521467580037440823700907940194351426123747787378999871607493570808380066901383657762161467565205352341681459671844546449576692121559482064112515920917883887947929846731071879323188305531678610025925325738260576319437589587558161154692858549300849761388556093496540702014893733671461822646644715671079437153810991327453801567284195618805496777618497876269692599437627997799972309642887227389700563904865048939072773790123002336739025896099247096634775667584716177483376075575014857822049563628498195204821832882581112256388586348943904496748788347359529413252003790853957310455954302466825270285787081450778285733418485215031522171354892476800975619483383836743490729738254779131483511904423680369005587264602264004657016254187475434106511693464678846287082601075027578581757631240088151162683776085182015655857806692256236430537798614139998066848046280427562175502011734652047303390569076557734286420892418493319381730501419474897190925820181800032791897401029485571485216994373546769022002096828586413942218092073593468738201033039587784799351705177218868009713929489433222756888297984154087468702975237104850377761515575387588978731678004637511082188167147518403875332069021277223938700076327227372515574436847641886899031741807457379276568481673040153427163996630376962199532450833413911545741772266488032096697113047164247881981320648674066845384530434268915981425102556654717079235338555698363237855267273540488567822083724297495708227995708264828189441494325295116173684549922234944825336396653571829293975719484810136165612148701346811832410146973943704436147465935335228259535493020508223776552887415825430405779570681074187027475470231920717455659359078646640736762751612079156046028562754234188492006701053586618544769309369497048718471565957287648271394081599720588899971695055565238403776802486159939992610455752565338959785199497975119986565983224270067597412476019515505463514008052608570764354265089891203103648386135616392340205929806477395485380552692050259303371777432338913721432465678685315736322090019739012768143176817640609521203603282223433044659716215464649332859305144511466099476794356405927577245333360551404740696644611043587554152594947386174212019634070782783871034841070514420454593134814291279403965261026074688295680730133154598304124674930568019097725265708269883958912787126788206383475431362369475695193381844283883272215161383224373718380828488539839583157133837233989294143256474786168246616729914634465544361793747573668476446486249516850698747408351324032935225627074003660438717536452922298156475779154521231036954546708759727683948469763927497214472287667368375173790705159020049565815051669269832651526878677604685550908655108083989587655736171301236997611112857427804816252182364924820396066251416484756822389215492829623316178321230735277036676382637423475541359632905414554475797883588642649984079632740013777453733365707583285405198846608336891784124069152303058981239462986219465702688165611005286479051433595827510386507508074361095250390907764607098339010172585264079616349326063412531573528835997868295854879458916019887487759459169329549957987120906844144361435969862489669026749663440731782285626514013206746851621438931995926442925493426784176701011184933892979765893795409618176894161791442917967276155469596092889387763879007212359479527921350803234338431740266627538572757428000152020552095174081689126296777799109196587838315830910010686598278866070050057189218040168138850639574942676087923955543032411679445679525080765665803811194174754648355652198536164325134703343551771722891379079100281139630396604196528256112602020664396589132147628772257912527382196336310504331159517370500431760540016652434526456294736682520015768628813248183501226787886051418374966222106082475292586685879357795119365767829698906682727077489025257044166207476478303732154368316371417346340346508195497076849217465902985390091129479699588522100514532252924745422455457973902322344255153606839220976459555221279281475564907620878738380727089142137707267274487069227240801838431331321297047798831216225744255949968563416897234129550737376723962145474449406011323802412762963989876949898579588531134207651939613725028128510686172465755658693466650022866649650609085964529992791066418482345536917629789481096052344567964555825022739696833205699513732524912834899519045267687063751220212830192504324222558702189907911820121536947110983452072947875137016716185123383770636665859853704351129694597767778380876930092111882717750071603345110329704227746198515596347997973113946726903547443221217015930926483363204397416184744877626343513597078242255280012373203645967142794087229817030777055595271278338141165570268106683284514503839911255810002090837034793225398516353646478037773648685889003554197430770454906422636823982041307631646702291512272460034900483004405382575157164436450826100783005002255116189604523197522176495396788448596482784493259882574866762759354240206305477777424419134684064672842538232503380645684663834186322492037268300188508744871821387334717403587708434479820563041224081302739558519019946074630017144411458956514079462319170647060016888123754378933099609664602061806420561554621109942721042220948596166516786374221186087939604796973019379870343097395667708007730428153518908425667040497362558762193253034946567011579608611147854587481752074583184406889858882514012344299131403463441169267359482343303768633930923131828683457368562639792165290878224188289226679748686431395465018201749764744844709822156610104546725998670484695537489297470747557847051545916098139734687927204154563147017919796950966629359904555556415452214817016235125719817433554559695935549266847439677492794754926782865483517211095704754411032960118300168735387028751678531448238985090218984651248704806378334704902992547075954251289216021898232899176375029398278211430432744421937437984394837110645745446775826503858631170938349188566468362437157947211433894158810604039006346576690515994854824733430263834109871527934901728521494422433292831451499075968265036634803515804357913032093524161477088577195387669359977662611358775327666113322243195875251000620052344294966796441680857493285508124492969748051447497001833353015245617454512519802119733134356837052079926803622704569522773864570009012050919645063803856551926217197788079409341148904107672574475544834512677467789630034391902958348597126217916612156589370604838625316670829834902965895744040247391056171388931150823866411903740362827427618917609494398585423366067422980619786341986643987696355761577035812098114143035149734768021079300473568548869333477762878001853671437989515791638747941262808135137755902644017092222910629654522984740885892518682412285646605285323216712828789682115228431135678187348994459059401476754166688036921632222621296121058178658290108029472762668225320118619440235314710751177105978122671351707662543239466613308362478321167850091574982183356373521036414979288604250033400299807644597507845393302164118350594375085796751899656269047888179736697907569391310141571987482610218462866037727830967113162639814751763688817278492396629922863882847354050205485915117930145246992127890958165830117084202926692026705244048900601348943864546188813377828417252852457021889176276603925746770657126857505298135677286563339165316953872345445126414816073799587021026421610017115651131238992041378458187168536941120041174941349217976082430407582452294026279644929665170343004732899247648684775497558827526093130760796940588490262100703430394686805766467651266384661730897968154272660567427922145148454784384859006145237763148192932841555873954445256595332260458836408914203916016480243157745410826472421084396350753427714872569801214376549532507633724659724468182027325045317914330783379926590143600483912450640327774331129172450517759775438191632786083840528925212115342694865378029123997241866980003183263383425902931138525714694271204029229847267689122372440021131418814231011642256766157052502849235098321423393429045401909248773642566224445650428633975695945097419991867848415678136439803510316412572182885839585396122876079012584945043928323214781463710158546456141443560482255962536322065582910202198416841384459071595628903639864505756166707177243676829799007900277961074902521210064753862868672984135335206512948950692084074991204610822294634592202729533658274804198284819153729671623865200126134996649877744769174178443131309300289802661268237641292958426588821068777239483756447037402461698005085084811421189578792563083143899528593703688107908383135150676982205137111865794794449967968018783694244704791821546357777203025918570961627019038741020824135284051109291888235155265317574980823137498353956017968695253472370506225011282508386121493545632395851560337929837741576359913587436678891563318528204337028659963547614621404504058718259026562779396095727418706437687159088147451745095345213868088298866065036900229139894938535125776959048095393917426670876621742289888278201188688516950758955449212112938166215532945204512516868138255389879691434653065505878492848738646439479813997359303086096448068249880030448031211127928453588608372756364285635921252379181151905533592908850413075396246765552520734799023926776584075072824158364915578966643003848219714478098618743439204948341282006909613799801316635890438358041257006076326701871807479958569595461405552535344821152973098652776168657434829055802440410600844932843866338840423874324199136978014424093022107066991514661016950213484859678188766416980672795756797561303265523516734973629520098561274380575999844930879838356624037071901394111284934876561034418749032933061506475220740155472265056835025108394186590107576249391202211959403900495361145254225032763789200258286818757790253070700041520129445749314493920302411495571591720044065954002005433308620345669308027336783188993553948693668781563312920498278712327519747703654796464115987560946114990905505239891957814741458624405798584400808416226861117611352661508036087131005586800196994394685235932629941048787676138208448234354891554523548267054733528212114226634689221297725959780225608644924624587106210643312819993986875285180846340046679420959067666312198840462455441983980713005863433562805371365141499651609780665337798337647492264113719239337323415400313677525858951825607829397132738554790955063405305977860948569990700960814228485095594747854097369793906660221605910253784044620801612269932776481015603692550301692138877121302837857653343191646151990437817445456103545299286336617415258641027128400682860220706188736076468312245784914400379159902172577291700385869194711024084815832351252624047722111081731665220584706158286945636802798398601866280669658490162525477949269718882335660035921090097452199320104749904209028006569812038173458527245367499757975833368871370267706066079415560817629254037232519601554698017762127757334122333764632276930428711408082278586094268108827902961757407265271543871528552134316411484036002117770969521953468504085634589289392658907711095919847010506459916908794306305931264965406666394022611103194425583711845373095733796446482796175879452739427448500112495049221876462622820611487059073014481751357953708341972918040078630313192732594935939227958254730005246864670169117976998509340397870001983447277626129415732977101737088976845281874537986367469022767011238733366369528484297854861730526660695936040179542387263645638150982145722236163610817945506724815401251423103596596742595772653262104375527223949439446681501215299353423192147830611537542314870578467924565813489098153419768265855120766183608443067716950916363560325261834396568066180163490275006707742404995666074732461234075624348433232276518300596731874549167918368353768803932964602698567060371992266424506561530202481561479969963036540455413348836874847631611419872549544206772851472800496757972363037740437426820516220579798983567058948866193427870005085752773912643960280098888702389335068294153222076543666973882322340553952624971239814285157556731733452754962951678928066776753972693394336339585561804409303857929427510826389493391617745160319320761059559087993406926104171711273034423963755471941464535045094339398311865482483635523640188131524604641900901471037403397901410948232629008538657351102433667300624793961838523788384155980129840097042803539086769486868917594778222259224863705914633654995904995065891839224112708957897749973097177205414290165988111354840772828754638934656450711241876715200715837399142926122433501328768732475638312353249199694108653597512134540006125346821064902981102292250848311718486595985288049879477028232310715941927192211826137070555637763043809093582585735217036415591616811099274856226072554425548353375112748565597491286672746282652106657000724768534720136640394306558621406649714883170128910014627695761474222888481937564320598640739528568344859184891707880926269770716688299853340136441515709768198821406261121740612786945557392507980263156473577058494044714011569414888981715885957473144971962155527084421469220622714792260972324026603015389715317086460449222241182470538916399866395205533799401312064383084834393205232974052871455071112790054065107087277519297911722196661224774465561101583600665613826694271256884902785811423899534573682446063028929961670405688972604277945830041999006964286553883808975313940789405238492163566529799621208381902321790293443162158893433832636196209786172650203735981546221906401570520401442923079702990621666329076251761701731541801990843428861539402091539864063998404604143961395438297217550566340242508441161765646774800213984975009508364791013363835274131596728489081183702689556950851738722470339948786553916271573307043320715081238591807467598130097959033564961242362072719519766370564063444418581016051950580751916386412561204165637741868092450837697275991584321960707778920673497460223572600091106763121664040635738683934756375274442484015772634659604150401525737443028011934133508774658250686544370159746280747269614233841613113816607263465607880192609252413066568743045332166407024225414397460140354181994985793773044900253847046468108407728152565218895386163575090783883654129291179153556271024833011152149899541397784456010509237416702341927868108956047015501236242590318344085679520209418875181882744510369855307928413346762343497673284731619453134240438471682435759176221044726948032408492063454455769665547655165986275325561630702531676313278489074403810663307456446519106861939186817091674661368198309231967475308067258094442405633513670888730561090788218415019883142387331232209147707112726447538728507397336331474739256265592585917735744570821869964726332976316493911133929256369991821732697847259357768015744375018606948680390819535914154137825813984597113780615042025541960457877129640400599222005479151965856741842686196838082186762969722911140123202833892355616733818978183138310725892239894453521881725577400353801101206073151247065080362090379775932803953481371719388144578520033251253918824512360787280892282488801118921520497959473775374178820282509329961701102213135092571144485331015293212337769027854138204128868201225758574758836175372916935422555803706107414725894441836403000229534725608628642522954557555608036861087964327320689708609220393325045191059237505302979702656149455575045580937250862785243332079955604255057406903145605981478708039277623913106121213660210393965148323472503710385767931730809824348445545464278001458684382099117380686271647680562272162795103918785216685102345545066710980256491244923572972374401544995558816596864186378103196755873018526370259290371093250226224833890160028023591351010373454135359858932437283808757958979905404009644778868120632368659745149836640734328536939753662314538311187861957431863708530104410486960374779163924956996092032268909038517268913051460996723159131401898571407716283016411584103522339841983792969561492886378388379447080037623551407998410319128491448721450175440821373548791221092877121238267025340049560360666037637817031262480038228599766680203493146763358961996273923788225570482595111220033390627134462353302025464995055927385179305346296224430917008324826204348568980033598715715933666647984829280481597068268976982618218225452582955570419970081006659892501246781154060341640174048110519487264784735423378625657811498462526578652932192198338451377037126683047012421928804720387715006067059373768424718674460642047058690174041354601001539199742237908291462522004553755217008577847667595015916208954193006295107207685964832764338173710223128237519036356274242504795910452917093834723898519548589954286687337460211691968464466392257652748883078468991996022751221236709795334457771773808253011416905193897985058502346895060677661253402565918244129405645226002096728106419816340663532131961824581767472413105368263629253434435526467646397159883835850024210029493148444927988531141418588885182337392036897118011416630811708314215414903297212807912898026241992234002846055370440049984663745888196416335228981905483155655958980166905259201547437078218197236070012384422467772685319309619526620278592148278008970051671496002530082149436956359008443266802863696197521368738677951895876860168328021743571828037040632047187063620255536711523751791992291289169589332332450399493862986776907495917123244499032942484031912291199040767870279266493982289680603644163191293181366217673719086425980469615101592700190435561901301644576654764150040397683133243551609046079689440339356276737900767623697611443903794940251795938473150914844730810642056379010159277174357071937415820748326077583405013832310869791472986279882361463331019385221727389083778156870166765348115444787945664873198739566118082626077039094308262071609068545580004403641369162883507775877400183621287593155675680905091505578724428593402002134511366894299522639362176940491755926686156699278858752865941099558714637090195280594477107705748120663185461965170875259495364485894682417665874519171921888277141950204052670312374018064231343258933401578734908422712431069278018863134768483031798623863710946249207483823003337916876328413486966360965301843136505767062153347381722738809065986974154819145966926766447537905199912693519825118251484051305768479484580108286340577336780719386570763419319668263980674027926038262374279891138884300347566198638283358254220381349188566181476047963802739066178080317864878187380310180130354003854975802245826442731143787920471935322219360547768582525893086053174873625854651478185040524796436795842311326835198806955814449654444369369622951042084663698236025504023441970704232686630961680699037510932343975708814526938909031237126771953292720403464110743385996903844404119753601069159616393791924791168108626524942828343253332530685118691827551970625835390035677647889888623349123248291813694116152482761012369095412924849944700280310057514246579972503784121019594490249733433906973454827574731358597137158737336618555632177486328543816498563671066405140855641771944410139240055824731980717416756949390250947116969932698051988715310850369120976597762087345680334009735206952066173927386292738433012347561515419220080782096779146989245396091659520266964611772850832344934007624907568934690507187151294712331926244690894411583397722217186688535627964591152138295403281333937416335633560715547536088136041791720268041518186259063790237942522138453304442177665573080660288388415037474718322102558459887016667936138267452304368866887056380324693733976446666654178551466477094338481356032989146834661097505316255247109310730015075443954089219626781269055562101186605495928380690480061833757260236282385840029619050560645247322831801061455622007458610577978211625472510857416755517544623574011808188162794077352249344902203905561691572938549209683652084223682812811876083204524227895072352019390145422510562473343076351352655849345232166199157297591430719614267556555213326600955270703149593596270650304268520951743190159271481775448796739367687916875233086232286424818578391363898053528463631367719844640257983856630869002155342841825939806508610551695255286848152672924568902438542798225570205931091288239080012260972828017595728573226335701861533571760805477180958498141356387186979740938762453648281761980476498126870993230647729608249923027612153624182679546968205242293478604843998813580084461864410020315666124145079936766148124886266881644351958344159446631964186453172087640147357592743460986302959563912447795275990159019956821692700693861309001438881991340399048498063825117177510782503938743305439258823968409050908289153110441881542092717847398027737049363445959659415100411259996931940929303355453747013580636961285257652420492126910728196023083819376017849936384011485832607419634168467814252820590296217981010923730971262294045951954368254430530793414266477771241056940402427874576090628914464149526441949965357286569993418666331355334455956424624613713264883405754789131125841665915875458062254500014004881647359581514289887659165899906560659437304720703023567890237321791271172656041085608949111832214235855289352853932955093624757985991736612484421223586346528829124406118293216865327936712842174876180961555097220079100822679209299296266431046367503296235271604613894709646192882435927809278270498091946154128082322422321998805049100027342456646053016426407769474917856559349001436884340254836322969370865001305835147932632752274419229062136825638077133477975275421253841659355556638436445173651431701112175014675436035431294398810737394985428456757424338420779247316082976917149841881825123971902234275721947189880900459711590119390263289545757771903830323442326368222490021423882885195137552299142098182107909771510520341273466733493989481313704857935280804208134933421532981722396694432871869594012131507188192388324357796430444140036120085203992170263756971479988470703190929878255918469766511445473560411110469412339433656815348648146436523556018130417158361358261911278956696963956689005726680843004913670921077009283590162277050527767436551990603031148598596553908437486350884754525447421050583748199083102598435820481860967313198787214804074183013460439723210268410145891025895673025419173496135728445205265598155918787421839474794475357434193612654959170822564176318463074246150583113985774750304849983634470711635126028175499787373812097123068097865389316737118333265139456954087917765066278101193258035994694995174895828578589045781422398620103998839179508080305364166105615995922092919189743239249179644326831969744149216070185178486020178215521556296316132389011205043211367514752504307449170953006679382356781829175569496069165890507952256215462702334088022769485080025804260599222952115850584912393711820642183726143210655498832135742102801766534245620405369098612004878021865929488451091639215138577687255255755046896095913215199876979282820792269441175711741561274530528656177615356509885165224717813498726682049908619131482486729902415521853312752854063127662717664770835111631466750824233128302461717684481902718729597911595222632678255158851594020198557020211155744049842021131817934756055619043224785655063576707473789322112396004120618603332907738839249408319971831431014130643301676663178125357036121166405602915825490867603454680831788733468682724785639833256390228406403863967184290496516570339295866667642835392271451241192554511555694587223717678795481383633334384982689539632513379762352643635376914464835723155132736526315754200972964050202827458344541070956472942989408798261346495727747129689477545766860018333853999781711150943909231490519905894187680744120680453802385189942273661345888518039575367573489180908321507576891214851447819136198268986170662109699670340150937491146699463032627735454896187689557751160120836129292233597794476606016010168747031092287068460690392818894155093336045474782156682877583340965343397677972061907713659376795202427259374776974128236488346627738357200418320896886621640204048065004446887277624195492079378928902472372686506964258068261765643654530134247473819731240771561064295434375487939106191872486681552432980355057105045833174564426148185556175519540931475520746893815837744565538950947467725579406666595249572660988586830768992968036159761956842875161482236775273993538568143400073981508804622671493827912976830388558838623394589040039744554108213444867070729977815688300539973935121737628317809756021894864761705644289288215047981160926527525586394058152961252097866317874345032807925898357112781447567626769902762427209689589248208599875417387318028071660160085952313450621583123505599097120794188751872229323204449683107510482872093208457195847620975726424373629723278354668418454333180281935177270265308846128989914757536437929229390721235275264644429718988214097443408902765415630115430818862253030362054970821981386793358185723026941435082851928117236217615039898401240241791243549795350179284070394511432451377334952423084783557647532119119394930531931665556518659609397354500928585464237183001535717677121566826042758245561013337090879200018562806598214630966330979147048090333143889797059489967733990317242215044822089051941229782844451875263065470364786547943929041663824638274908868310193591279620104259838222290611344161901088397332860834079897689873066978996156974404807125554313957280165180472034581820933652672380134377765364763501867698843314121633530085271317616401716632252952228879747594317198541135299295114340293741289423199118765896189011205628344609894442112033619917615183568072986059930360275931681830086397504445654071038869343362215621010430583738716550690500498039821792283809622580151800087721539353346765026614275923652106004349619561841925570204529659580584329609496927107243277901929460232233008172602240776832344761784434788575194861480530281025869518372586732819468040986789028122404194107783423177543180777397987101500871266260129920864618245475758943079219115290259188073799050507245707051357262020510346883554705382065855966434676084803606991120501184969559604129794191073776517917640982929097934975671725545783288274767603617383747175905915957133146479269499262807800232901996154229653287940404131723445407287451226448452366294182003246396734709604566666778454964990022817150720218636017421263770462008719244591642937025393940134752762857162428715232035112335294487870280418312477267646741587833785418428446976772227570821891540560873459225988033377436703888801850280172222776680018770309760634711090385028705193583192510413781457282871679020416276906411000566179891777114716430551574362130774057330618498077607616327635043800736094732960714142847726947731462717630251462469784492067162184160846776062135990660166074869650455293257779740075605009338231607796062592236550774000022295167493605766033471264908866294250794645277600904539152970854445282088176215327440742942297970823240462806481704647071705078889754446005018084439358328503908311953103801272712311752557134695948903406545103198023738740619450278252446136811621513102804552885305003407431553543498134853340045899681487085520088953686509362360140606150361750103464040877737300760073315370626189105535940009205835027348649114259301524888609213195168512690704573767761921123050468282747930986823570974924781398128355041507352967633230805510035558135446805610694304379257086679954963152773210885003245828141321937608104584763683439063811748163220279302252777922977400092130712279563735871485156513853290515103074157304048526573477593628870670486154096852703556757894958982956082845579641796279352444593584948949237420676889272367867590023474886293939224593889835009879445877296519759717092374997103526266138594347452702764022315536056128351130989838449464062972918312408813292845707190966040582660616751663135185013144697327193477188859607573350378263989642492013383766813807757741159149678312572966359200032559805373154200237030199465154878281926853675795374828676989576873018158644163811044574403482346666157330357822964863980638558101628965580636098310749548767001720858801427455164747864661358562654336345733308213001458729091004267914306331408753728164567111840896527511691165815336103318779526294817666307081406839205616346232187608796767765009714917211145041198598715510066602616505882555105502087223477453306824492785617488757734629423595376153620440509720162494584454758621463807605355649120299023704011191281201400575954416408985750221986641666992499845261137062205371077258666249201617506252166340018007316211034158911900859142475374251878599507802894554852881752815851664175313099334960919127061907005507000253092304865176659654688508401499302623771502950722146299434614231811037652927902484652094726063566987728220700055374586060740413650096157320624873638437342101025594301965281769426915410052903600454298327831355248788426263634126774917177591828098752881406783072545974589919326779151451101096041567152581632402523395451366843993063089806113794360714917566346883432381900335722593522837312461096674684717673298374373783669536718928666638903969635551890253747289313552740130760835592416215289933514433639218483944797323578226008146542585063839210078740491294916701985559373700866233249333467250907337629611998904789411451565523525811005787526649402955462126981987742058049000490713791547974042458647432481120846405721177579384847454847241754672964279849353864573498884937005001918982083430259753751111361939402162640109267775704297640327349443556976759260220642116250396911417632929383593695950861780021760551543976476351703440445610162801355462008825084753419846558501114348440091178483959694973796038821720856524297559102914869023591157239288653357662517775997663775138090673299253882356750007332742909188702357868418011939938308188988332880222445571437393153049736416495435030572036001175367754371521115884119541125809855950954036064467080410359547463537852192691789042384778725388024770440250091432906750715211506811457714741679688562181116370454403492098631450735642118645537028841002366606522207982040251396412636361670864100719072062513034730500592406578893650357678592834179239178030812042690821168327608169762768257640686088310077395006509440845739109593116179629543982994080797336817746423543231334338401349955179995639558428922066305711617657603366437531406673855150690246793421734308109929119765954123811907878160708595680243330617992825963376623543603071745698826315134461410326859758878860118136015999657752258778022990001850856215314470344215703654465315754724072097850994334174967346379222922533101323885997559779372472536207167168796189893731545676238838743628289632267670893425465539652022028618697599639181622725285564990561285217295476880104865719206999272724799840969396813273735034294937419642270298752261825132946714229951315107200871651984409445544657836264895577093512774074102544083463522697872144035319170865576038515442919765695444702956386027383977467727627516554033495755628843524241795413926993062044882639058034651190407460352819110905202047321625954890843253420600538561588626428638442715353537971012382552802917476088759812606387587177794123470071752629154176489496659397830649163717224599680354923036466186147907224098301339754255729771400626088277514793593387178640568701506695188583369301371771108049162409993862695791600302080707676299816705531514850637963637271108422544266960366384944672896011581367206754802093160388256593145726452298486039301307038783753451829272873843173661050040261652107004518066115563175169185744099486455283710798628714640137264704740402948157278475097803486359110219077826988516302969799399424235980512336846344388428836243442615858000941269080761251084713174526691819962791456450774072264598070891888156808156126004623388290233816592175129254910451829296251121559713013719775889850190588858226183429821964984437518214031175068058970771244730006082868959265190460815827379321804152595058309967985458551887598371527620848254053168637284944284330667712221041185602711781681195881062647724922154818857802444361490311543115162658526255459842728421698241243127728017699222458711139969509315532311432646309528589102442987082092536838624073336659793879971491885152230182047626184182653444730248642872366583505674911519134043219657089951370165161020373687555253216267003765876408556716620959866866340067288117198632526906715854872069805243923747925920411313779846687129720850282815173720572943029907960686639336596250539258680359580132057614252714370211473911457434203318373816228967603020015468403507068632112728492856188209615493097188729079787223654449559622068206679702171455280365798636674344567448256371097082991149421931671937855851521868123272777088464198487975741251679530418542751983238324470966934132751119368592924527031030986778686349289935250500257141515440074754263522633859050802684896000521549315925282161319508436690393831829018249535810263353522962527426494610343194195943598481209502155556983771340267568131202714589665086659591825023530378635482119303062723466605319387154600696088060963359017498153345110175432448374690349921540664573317652273441605672003830101000151989573552173809813827041537784737642059774464950468058263834118209665230416731147289788153599005507462679069112876611574548958276511868526762057595314573046724906685119929854206721711431671300264630367503193108562828792788397136003583399578421237017732200278440419032418027320267341542105620300547251002327128910945880453847290587108027292127170763974823660604621685898464774342630841209269679885156862810591823963621815007455145789652073490268775843102420595216991421249063347397193043576377286168269884094140806656006285528394932064562770060911418931263139856234690573991291277709062277631365487741045024592590051691441616598784596507650614888613718456147898170576880238017874090333846678569346531157631334904179014373214305112873557260597587938208172279608883365306488799978432057329886944835890193006512332017875327129767638491273025500207134463237371003100479532067004357067427974709247466677425036615476760249229002211723873017846012332108891145043912146053132578569844953897781656146580662274187675791622027166446460358184483462023024000858024046251931483195812203725324928061890280424760364751429148339923459371792094986816272056258678344756007342416610869393015335959404919188230405249429115952717610299626551935833519236791439773571038884585994720207622861792046919449957622739047087238103068815501944723947754900367009660313228939306141966939710745304838381964857151697808202088163070343057421800365242448459640074584415274929580238148263703345296587390535412238602887507866844958879746433792757880777935844383235692280254206938156396192180497002811318852209853613593508629296832827649274281490510054703652282228076302913014395927984164079214486873680715784542817053791858536818238930821367162570189106890731778869197812557154032649136173006242565074805507066834551260990390699762617778232210085609706288514930991010296915361429671208990853788990760825491643378604468371371355495500030993710822376922466469702045585954446531960299468595098380918072268550810092297776642707339700055904086422946003339364827392297437115728641963423278696595627151332259404535531370176831062921419432170898228179901857646977097605148730969895852601726773952296565790774682661502802923162267941566405423492811782690407619134911235162818744767116799325616315290667323698883018250764684769015765167174396146460131914826686413472346381330909629776630274474138043909073601817555329348649245501836415997853139134769193133469161639505085265285255546758907613524695173178650795923458990585951332497913130423675885354685726392119456634973726319467063507762885305862849940183127727805829805397715591765835595548203628325062498495069825731022649404703608613521723478170124776533951361721816355970288769532315567775220301138481361583982672019079150329783684008828248576810093221023585852084899016755376222924613817650942858780758891036042730776528778577809935415992396026689221248295523478161312178870237593864230381301843645104346962756738379624356333758618235354659948032087302560051598080307274268592833442599168257487815506992126618335514403426121362715241867149722185553112940030213347991581500734150004205622521495851127842564457817244757145098085697918931511594472257255342106744255371645471150635323837009428885738191610626373752856037608667327963411047911689465144298200764499341370576457394163324589072851186259047149960144886433611176895003599608038925245029007882831777404420234919898948504160780297818681933645531816595200695642871331631192710708825509385013274841743746622617848751583756890855503304196675556006515254470808962317070800203437409131478129085005603255028129480315114007006035981353355629839203074024415425302270694803725777016280457899844570822381334034407697100618186254447901135846672666421272462546901728613700294176389966411507684995241848020246898101548104508645100249615038286999567138394324062342158544557409603703644539965608197584623745483593734188262970470477565587188624801488251780873968157598266117176373259712243258095911528878181742351893246443899489637141238932383666831844788987778715319379800747510618931258265228605251983425529631058815929493327120860545605220653454827145833786431664335379314841046190470113233057292065692294971075366831257423961867684281032368894659606344239421617826373930054633453221404281720326632919096431473821690404656516501393977974278121522786288035877954303215009735523356739084148165955634757395397808520756567734970767281944421596520054026467676149735664340363000138898369076125689506284349116435816160064418422542368652806715813778078289419083794074021108299318597338589402624054157868690559887356893921620109413177559962655075536950730454277576720871133703543888568395288357328224666128441285656942132155104701815555077357467260967827666682172509660078545906461408638325126459490310673809010136948294991223795679096484768182770687178576953131093896333026881686933823758385208235363054820280028982671309771785145509268251752776678083764396191898436882114750389600892229786267869564585992882381241227238715984495796697141002939426946068496401964426196456314549547898223907913152036413646557069997472651680484378801539603423304088547495483822336673643659641569926553214724029399848877895312762146499715864960700060801082491093801784734942175759978277962476830723337529871224496344885276992794047702575006490772695019850743061409391834216571621408847335663792637960633989372994197889359302213502142600938246772089447201559963925706038119535407992261475645702387702846135678429296123206002763737563039025234912163026503972439509181481754517901357344484747739661648936658702403735773233092340146186197082694383455528956320955501123970579298720409722990059875018950361257408919837656367738429911046827364075200066453841886900554927425170085804044096347505565096810797548137291283723032729775249621238443092140834385802694072782705874176480528998819787869691503458510688486106649133190063422050240314500223167103950056759151335247600448692849667018025256061446202783073977941300506231145371313013303961007479801306101593871704210108987801007169829149428594591922300219783207591064471488419599000200885196048036589819058642366080654895799539005141597709521300414242266926093697447884362753764847231882081009497879624077795534232244249431212743526894749967986544291427362106025746097222779792794320899240207043027354439213400196508090008584810040850933947635071468021009675547570364496231323848189001106917374663114542660512325052284994997045202943257417655024069331881259607975657646202650592173176097420389056109778470533791369144961576906739399986514772798753151486514990914522841533440480166729114452935972569487962463644864795135357300940828530040329877531398791909043407873392070261075303266841415150003713912755162176459254776333329369238450449924662592006438112592714796410780958079299940803756838848129355256665358497780238471067117937692751345970554628411510302679436794290020181415777872082928482683616979086788686079397264859647229776460138668262273407050954028415195347991965205695439528495297578580870441612996895843925542676035802286715676391870112316797020304977401728330888147810213219150341917607923980613849334868326668666479073903314000069676735690177897335999940421378545859316058623469096086060230249264436350730281227959437957159945546537141693854992366345796496234821374318165166973156354388741562766492894224633163436299120813797556947292083734121467249603146787336556063513783394974786265201337987993095250838982880676483269073933340647871788412055773510871045843191664061341505304457836775625826158686450046264093449825769293662127418365391771364316522078035436497298484358117394044064236047798713219722281600308653897465331606009878460753788555201797572492093239996619082348473059585271775266314911146159533431762456535725940990593802690928722875922558102337041738501466387057070338507532524579771270268592658798934432936855452182501494872848410082356241867908161204016164399445405759361606552288267243072230601559199394348016515817169637711141404804069155050412555773879104285282203663567290659036791846648952646761997017478275703352004202871811980395856479907448175808392760189146408661192362199389325921161914975181964991810589660227168922484602694261659035864850163145926481580306899076108081403153733121764482540439432046960659636298662266387970846866620888385961735906782316447319989998479184184763106569875929691873830234939264680966619209445757545750517617796561311583507619655547733869452416660570946725220777125505966252622079149033385139249542083917430088602877654189397393730926117987651098048997614562320323315952437969574095818801694154583724069642003939880150579604288921708128611177165652164912473296043893309473978011503082831839058978093276834086163691676874120498790610929885261601474261766640217907356882903499395115675265981342887423855295476593729521463039740419760655603448343119932826034311073187866730004866548626826316431083694659801800181927487933946113808517284667816338370677838556951789788305258051035847937526820963154754123021809346089598075642190057769093823044310211094233923828345606368421965773137194174190963385449642175246882405764994359255407866078995195364893023159466926413657672302867829755299601814702163425781315469177438384698797840698881543243959954269391495715159748546810097179591767597640620140378213941858394803157523480191874306085884698992875941102509304355635036175792661851951358138232798886447877645954971875954081288255935910681850697428649997526443437678751848545084374264748718548206575819531526575363707837578616087149792819700424070071544573904479593607773944624963039680716848085857455652692218608883058172395789408022554015822098329799197685239179896931535628998891858967570222241033715285159479496136712855603567137389419927830823969112718188477007843066840870076835843275187534067759632569920514561346647218855573566528806672499544669522306948799020524692591723965172626957542346716401450612331995045106153448600998430376643545621234950926436829406888675236501208096016823359781314743783597664232678462722021199396004946133224636991181664553953146819234591250440024586657412321872659866654799921740409414318309890430872202003169693097957974385256760749546626712647903101581592606517130062873294095245745208877715583112230757965830504207808416390434456239952437928993633100936090515867494484106205651170876348728738259841464891383433926862306094298892201944247322705699776453575449351142144809014251404670645800577748761714676137706136864260079036372692733019708088691410326710027856743690963580770022005503054740552279843686620970302772189538555681616356019961780518470533947995411826422008569768472947403139884516523096492427928145230101644752845161402061587436290849274220572970268187455804879398795318156090227991759770717393416755934718872020032517111767676797460803571401807290750068422284239691771104593644043200079886900867517339845620614311351344615929195981692153077814869882822131250329760442789323689930031412771591679955458349961193349436657501408642859705648079482688957863141943496068760011773957314750587270132010806615192511787368391117575401115949133054276572911003929902778295309179125251949674222183170476560199703832325683559044914647829774810248747592111352633397908835209870007230178161906224638802996281693716459678850026397911024753831500753336190822182089423371726091237009971066276841176869649832041156114664167196433476582073426151240266998506925720327949070060474285714661711600286913989988692254133360804017978295460046725528764228993561383435643660537567016882315090940780860270928182638869672642856120000979842613180053937006757168791288959035873699319267801337189025959558037764060029596056393070871902561638430077497499447080161433965749833095308810784068740261386198596348236647826471174659029690937932577177516418011185321403676145500855437619737526279145232227438435299925086758707267513937090748120900799318386597866024635680564565047496423455440036114228352623014255575507734689116074415986105330995882347764080161162346030667495425699929874913048810091908913132020226736581072844861839744862362599921086923504896527997982069051942038951559684347566320967198416666851526565252466851555516862786663304718286661037343627035078056053125204585529737408986617979267275176617712311137314304463615222716409869393760719172172581254491020864362730865330837236375953292167874143150638194512394005147209506009264886464988178399823300601959851806498910719946752440525390035612139971712345408213656874284076320658089647887736794096607900259547626985139878296175292860878055635473388494764838664232727177298348697662465024113890007548778340233931382314990642644570214322576769469322183686660672972254179546019835080988160331163521434723218536511058720840646771891542520713615381402061014836429279226678818806128807096743796192670338583121813966838811390078025920026374918176345967191770713257786670163799109638773208000752456502716446889905851209609603015348274556371667041832082091863743569162765933729978670709493923668182254393977452618347364775018088804256839688445183859127109710558681393384735541511749280288488932940133864149827203827703762325560710386008022610473609130110151704159674196603224514241531318352550723838053277535067441977709152300542642926431614774303641183849016591459228625229832063501771833103882551286872329127486908322371929812069760052531179562762524319905388118674780782484286906989095072427234817365950471241783735126794167073012197189099190521070867708715912883365833764127307090727858720570469697284516392503397873268857464020261591521002943320327620095291092483434640775040339627729847587567179309600216420415786449915537105937399763185779598185656092116282082291756485822999914506909684801869495197547164186676327362733265957391756822309781234241141892430737980507469552673029642619051499251536579598763134168041247886002375449494261431701639955773187225187033017801141827144806164040348002266135689370040395722149992292232693368753293833072057350618637691388991246512330130499668975037993778767618231301925148985147810457486153744104004015427809725033224088355507306065870199366284002860810817880814189731659573185868145145575686228480839844904298573999159873877670900305161916879324461470616935003638315668846605322965120524566415466878577603995278936932258175240748074490074480292728999169449579808407639993824888842678140789526315645544452683093582263545097502753893946984124330287382851490782502145328269007937753855899169416578340705548341246805211000398713385898472936046776022601961202958040491774617793621463137799172050394718027578274909754987063139428231270838756162078691626378082020065011246677680747840893641522150293015787477457606519131245776032475895797122794255709643815967575547214050911252998352999447615183833794979037412160802133124803016085424009969504582487166335652189917327126022752015585264796738455625156325991731366428098508077168563013520307550440311439191907714015864387038158569466512633599995228059354977388941468636503412418323391338703464875646467450173320437314415823136995525060379735663316338280423376769244997278700319631996364875117391590365634235361727955643915191445603952564477765065682911576576407777151988470107050749977544792657475683924806050283360253862183939733803672981702310452906088874544539770835877076195163505684060928677716122042661746686126827551951544527586456126772168972851556079788126133452822644998139587000130639799341863914650117172111525584080646067437879201886964366354653497197148842054791211089996306820790949287553906647903935169345716723869868710329464348215695756618563729180037149591250548358794752871221254597226477015371864636103562992501509761560014101015942619447252400286961004040033927294538546821171536958473017810154842508395442564265069107971550670179745010338012733257596339807954649728553936946705945044404214809859412533485730020452980476617892036985790674669528791879733570562712129544378108085378837062807191257328085055505003294854799494414347643615729203995354967019529888797341343547188681918114742448619253807583952687850300035762787160687133019033037388964397338286552385349042599408482972129008487766431634734097178860294000810059529476025984431221312000925020755056489421837509300153821361535772383707656823400061275062296557069354395906192109384171522141366405207788101373110742921589586315998549298241293579788625562604480255597260664190529749755058689708505540362837412488190707274898733115466275797272421948137598517139451992247617033198630899795048873498061539001995436184224294366702382541358275452960344182014900685661647373110697522509725426389743580163735114732679865258719947661407121778297301024831562295665809088269942306155386703870549886816207683873446456942011494552475901880963882417338331365870794266541639372108703771341686654058597844456673490730539696761443519951217651832377972385738687538691065181783644078807887601317375522104899082512841490732128874259119068640364627686099186957292997661789387254222710936036387232754503805872443331573130736878651798348383963159233251389659965695677239180320789282524884586841713129293330390331637483035680168361743321165438331049584928063976635800798531633420534402999691255948749759732561481553835846561253055063269931870236663324050496180079470856067848775133275905750542276837530283159306557223321930913068966693020455324113571094675922278077598611125879002435636572549011051300196440638788447022076994622373787991408032469755418924436502252312237658369653638652196308779317696513356046232956483986902931270916728076648594690901358881332104615062000350183998706367268256111125430766487164909386057180542852417376689646165176269862788730745047724627426931166550594279571368385871877667271270493008255463708943800552084085208547792508932930722334959758413366862980407466645783489222281833090264982898003422165812183588013981425973277191689192862178388953143959620911129133735662214264829081862899642312180281362788572262900162985414402983407463744678515604821833065237554734586085799536033167277732321458192659726807937180730948334487534311618201958495517562953550669387263660466737496965043433050888262120394247170199225523065097519527212723757476746340758107849605877303462622936003794273331935399202065159333593677632138892025897485922879764302805327520217820564855131289409378087724518338329140277309065820303730449006802591800020881065273818431870502061133803501395189900882545669458614249965314647838056904290993301795103746231276648312964403516663955277999607030433365248993400860842662076032985910408755998438023076737805373301628629145663557579196647986160332549316823084091294261998494418175573666173005770850614860643411362002753782382017045928466673114446842708039418758750713570961608394349944397008654388354009327981038834636709137659215650536415313077932611597812201743689695119168120027041285690010117884516307188116600297760502850643228443951204951280240715762520547918105314362377266584393641815685343326127828258638400922642774477095945430188636027823153060692384971438758114296534718132584264239382646387429576174226614473799100926510632752994164620445268852742016479770929602898114308778202993413336939644758564069960943391195778791322905822329903376287822842651315291023260339888478089687591155124076117591834128557158344011119339805357967326395293467117706269735787737519260398811548191669723696902652786831630849790432593171646735547528433686427290803473169864785998835563337889511451922497966969578703567752093093101966872288820477338894137470310017322593301940042900331569224560119746231573696456385904295001698189099382094380696568705680712988798034775618198028858240032097182865547822744200479612043809298494714435202048751876644382079036530258539680514477293683501146886822760240785106163420698794197831130520289245304798620941646858404394813730111923557302904117617831554081947186974379999973860208442740602203858919859796865111558750363715080251203445050240229372832031379113505303572559152843871890319297996946717974794489682363177375001817534626614458677197951360035760544118241482835086623038915951550601884763009213124517842497046912724842286255894590942242987288515626108210565739682975273515829083768743748136920215710399400740468681433097409464484032014639161006682783946290418986384664388066089647320837654360601812091596880602404391341405174623647671685079023169756655763466632602157994604638298133804283002762696742322360803445679284493508645953971014222500360442787669678935194753703867580561391934100712582268868682274004270614468634761952941369939383307895254610316117611548170441210655066502026884255436376971456343380401691847978376293595379643935750397588851117124495098171008985443756889413772994794062618453777164696326502444294789629990937312250565840390361677777652457753710627183080756076012472332013759519347638946248614696265005216672020685535217757935530988484735623527359056973664031149707119971154643957675425981870056187843935964235356366971384952389876962382655771608049402714908166266384838077604119229091023515965293617107088806850576251851454104133496370126475730053281917662590473080130185701359077628492928568517768029306318451818473824919015073852663711580524709957161157327090158864114761354294344325105161223480754601964734696713153925485540514473895497123931460993381418119705056692853108168550062507543535126253509543568464340901834263980540776693225511424094089445044097774749265020806608534315989405165360926105352241455845170977683627520351222209558811700461203460888682018298935820918085111803602883892644937234222210698391483542094975643411205965558643194153000686653878629862290727694246961250167447139224759840055216119626840050815797904311516029927263743192238369529238226858058984970260292061580739839719537122177063854689697701385372343089273763055900011670083661527885819697164335198779770255056219251970978589598217019740455367997143459621158772511097422584852168487440710309511757998753437524931227286493088660674746510640788596724810193326953168706091111903967433828502998559983887237444420619825441230096018301562536438828848224437093736412687515864841632766262417089977571078019064279774720517696425965616833487452483524675186784511819973011350766071232007319304896299754463480441380817774162681413801275243295064117155039707588873033157807362601663551900204127779118435038763106746481822886729755188883398683033795651133206486301469501506473631122189850014307058325902938692932934360367298305579446481356052786066397858321485245597678191386168977362718811746383484070605460322913740110772734504050527598517169121730426778751423289604445606087270706781911456781049445145888641982217887435702428238000301148973241286506615455258231158043822388676824704901120223588759645553338034864788606027944320333610076185532451569779288619726151065116000146874214627991359424768373879353058860443412620527329348358119931197907112506299232822725498112849072170778480858778014498748197909253341962466254069076891082723943647415168629607615760240323507084298757440635719404153585536269421963050537794740906805982433749243324770256245555107049563116374464744322705821102858866519879751722320554758765875785006423431290157780908483277982331771891976730186023635596790705391628933468385344598435715851772483272538312296079513581014832839284208151314869133047474711163916921732585489328868214916640397868872625801262115811766641902138283660652220920993947966101659962691916520502526425489101704478580090994390158968391156305129620470367976070284356191838149750421154497736313589535267356567206200711304924402084590404814481454504570688308182983006325152435488686303134990681644687204755561854158546295389016923038924597709777639403668670183266314189158503420485374128630897674330337951657571499052006590912034831778375710778677981503857544458827577259388479741083217276518776362399133516112512954334458660917815646411521621554489290781862107341448989763381236228528473657259574012934024939332509794653938381994941402609617524886754791578760731088425201502934096337189726317864492013928479839752541688376286289992190742846107149083656289464860567680138030277666393456301473220736535909853730406131050359926525437314910832742558205394428999452481968352425429244408159355263732763158252730624579829655790398427200278792971561213083405760595418816147127179663168562623364993382871812915729648867983546727809707701732942743367629189940032327085828609808757344605910055362620945455580955692325515069137887826310980851666492759700943555441014417295317511215477439751089168097460547218654617676825409259348453124450895582989805943471396111843757971696066671878493196609341188735019257269212267216395364162065895020179959791094085365849946945144197848668126801144639444664107086952577163098903214207798390182757894136520471645398748348974963896568251598790504751453097171963826529474993785734638274440786898683551077310034299554104479526960653688157380379133300466056003146562290034134229067921784114781870540659568755608541145358435864835268473094746914435122323074537007997606065310505270796403405365158695917317128932511869646182717686168749860505585611055171571725079541822854904428972512469751966337617003016227161791987247508842834036278278292819957543135974004751609581031379113107593491999055274230650264213833071872532554985131809335714445181110083127288950807310023125559692275638179185792766701578455149795074446464776112764283656516884430588511721988293360082481444389707356386208548314346486400274211709855511800943801643743600848694448180122946210743437102858326027522309975980314500291145338769203747017975381541676381757604556800774519352475333173389372314510703616814090206500268397331794794859525398797489611758065334890353088647214043994515769278840639403471023690306666367926582391317269183124659006785761439342799159964588537173482534056167385357095790353932405337583640334854002511162059019885468559057345639381695369812208446062384797750564782497147213980296421419226328097451206972939063322962998700360331939167173588575472329922436441910506658197131016562289724588832885895088753527303169969153958181043110067520338076505145537277422793151008348853859928623644786690057219004210460076501026309950452876868088391984735854601721639181114655589246641624640661377920699536663297417804655904285527506973539450631967300774398301052471798796584255468770472716892628129214018284917157637398815459525664272684334437264516369714567214207649440560062508657108351103961346429399005270885204715907899028717360710020374613723268611713387899449066113216229366187282562632561740352721931517290803870062350332520336171516905937587207550199206873375804761024165133057407337253020648075742379730367508934207559157281950781731465581371785785708568103009649885806742776070031379374807268285350929730442505888804500328363434829359207314558781922933170309472043638791639059283483220945229634318913543705362731200007758783940124540975539077740068663756291617887983528126567427031660934392327922434991338688390983753907635700346539754023980404351910998145856069620293257821008704274647656004099754595838906781829557741223567680676671558851692984758875389558035403574374722917751866823120110131527882434023691632055712471203791703644625578550341687376434269725339412570824937878093226158553760729194871817963676528655316816187745503672625668465317012109157631894191972355479597014102758158695237812874812974426901802650858207120478795567112666709190600361977677294313943401260738312122520221401362356721874533057592662491718493839185845587366272141219252055851451515183726794478167317652637377858122297134399161203210230774929466224014669403902932017588669849390349799678095363124679208518684796786760012404612771495730019485121782232523967995461519148440718419619946804291103574736922510413850751352556550986860020508964929381550459280928530074240101854821695208484420894067223473283764830219851650956001587944631683149648826692340896323493958622269662607977215416815069032808050950565815401972697413386006923011938771230735114701574001517982302850909736856549813832097010119392967861455275158247441052125921249842390624705959879751378729481054268020839521058042660089872066741596265242524497227541531675293842810559330150697030645075417482072933092129726296433264118263829779882816280144990407171945215067145558322830990555250240348903984974267765234987252560752512928842081291421924746891219002573756470116659896712329791716297975785952202668447513670913912769452807696260544916027994541620369371437945190284349785479246836388558936669540642358361883757844207589870988786327609514616684204877701788446302235429959433341705622736133556657971618763272006976974171155411075183796632199298140844495070456639174041556249703851747270944441380176354369579434437561950945355496104608367665927670359050194381492285838580538884257088655369745046763033564515772883596399966543864262921412792541749373524009994137572581925299239789428233045891836732887198996878527875859911194872227083399280823907260522032064581979640081012597200176572144536852095550695881492712472860527856029617088402349166319043866273576845184136632658784638624501918463823373217826462099222267599864472365712566777461574059910992615422651371322366591109204157563553211233766947950325496841062843740876751566392168974773426220017678480258766285295584827380914584223449166569663201978024563389858727012162067849058059919097803232128286087318916123251876057827573229051572206400931694551529601021028089602954933608749156154401688412757979553480125069461250599041596583381233318703705745624677519888730692039209737566661902220581917581203074357804865519389343564908288223282531425458271025422527767668195255626221933334023364669919818336860005366174115237659711643441514795255825466651929343437017274274300097306472095572710859945419815522315559161394913838043608930743840939333040695122176749762131773136789556471448628167649333229362668319482242114453383994963329542125476100394074075244370796116944006313276617763704292592794098786408297372516669902977691400159162942920786511411445417499062510637633099224586231541676972947120170938948439906343103280819117558113004727647448755464293663277022038900123633915493428101331873741075830844532929576423416225876416613051366983165053358023377110203436018650893346615900999676936396676189805941425912399875727754962828189396884859122883818885722372832349305112213072041452128826568512051045834279737183403383338009236303859474644568285534229584656795901096910751236666732664947120398050638751577424790109364007396909908881512492939281420321101979649473410788411698806149036308756031349475881160111758582838601268226604097393258544928654617847519597566465080377181690047168282480976004930346339490165024128426089488933165665324259870430263341823637114595539106396393127703979616456065608175821722427391749688427745939982527257582898159897439045887263301994805529598525635538085051904876959811829674778087406662253034726840881791500144201456960840732272594366864284320094529433326795229867966629268598765837272750395043504036616773527032197438797767166690364151597202895633134858981989015064124094889498780933554444658711304965446170157812189443356559488748699212059263344555405486310711966093166522479445012286703462667390069884113606776469802834227559578189943335452776375536829504302780054552346843399831159330834915043621995404520414203924237250766887725614650728306669527910216074633798529801136217876730129013449788711427223096764837882713547344195172098108758554504117776863055391913828719981289237836210502068985871699786422946142592681776628491368042303207193562817738977713779520909164412874808799640863588335918304765944924019160383498377581774831962748400698079598662058012140619053849779822832042196946000038895995428450378851178158281078489846175148236801601026662519274863870427553891319965381967105784250457649239235638532036057101985811489693183211539995767539873490974021261200009830809808300085685436986280761479710793997123150885680657458291412409736750482478388080954225360138334697583280933948440531988525213612549051282000810884739936729065344236492213309746251643970512191809341892881666492025345837241851695150676291558682505113778177238482750280646141521254599631381234643107709503418701785063061932349540676453604175682171063672760052117836091006245442056148146394834943044132055568963295333434250749124938474556691628914665839105168813383584754164942981779534042937325164121775880374632875609949993646537090101898066410576930998347872305588578826183773887380325241767148340432524192072183863762371954082089145594671333106619713085500260115190850499806101154594339637444852533975166798818201015788723901969592066792111719200325904134410740134734399097802947813217427894676010437245896954917291009777410550129055140183046727924335699830937294875827518401259790054957690835840710945149995539625473414377102042666751863496501620394904103670949894863062139308295226109392916535049207541283032888354057673639530472664542182920631394506569322237551997540267306633318582229981104531030980023335635486423491336700730126843573484091244243443999228253900644254538637717863430183815421156401047977370586154357744769125779957643806153345177665356695430801378734395400587371456664507901064624618746329840814323329218431448042190420580389122803248106526254978775713984702444578811977975073198470676872626705155504675553488352540166800122973924880260292694938375073410146971135678415158134600533614206794267428597405202337963340950107415062743129391306157206314312494867776295898399580723672890435661777332535409837148408850128909304135789635236889244253310778944749346409350800032196894888983833802939559963746135742070282287882580589389641723213636047620156712785775721623291898051910543024824712215421134035645198450471641629059735931253093567490101879789762662593188883947781247707488074673526452767619079669390372417255339636989093683022439825529915192057685908530339675508599259814303957566178011910702236330572345138501729962672891565450619117809925844942175206779351910490809235343744996541570070514631189467825377684528484960650605567212934484617607344340884583450899672291965865776669284101790305776877033670874610881810314879786946797767673178870672674022552003559072701489978510390072149543110716514488197258864901295511768882089514940015414197165691968479486757426754081243350391912829886217788830759789996003156622332896807594970829690362780423079938353043885178601686325091978053347001812043381375858274035859594740458137967629166430440297667960935383401355321540203209599828669478192380127472053896272390757696126890223755592256270807726254527893927379707322500632540141722784102015537885626443989636691324386600122001145011298967637078807481746174868300850085584121644686273078529683684702582012200582047167172002050079208593739796157165349807471518645119337571138091516376082221803097236250392303479096411398734111260318219165588279551250836876579360949605442717559202446171349681348191621496603104194952669778554993130419476805749517728117985876189810483539484423976830943576426699155404781224120241682284311144742188300461312057024570801380303660233506860180292268200798008458776570714138011296002557181919321942700639835139253996201535117800831850692473391139478637337413230493855407860616081326954734502940013082166551168543704205811176428192753750690162933036483873680988057785295221063075308930489541539717166311401774259093403368061019313033667405508602717548530318553103702328458081674167429180880093448997784683196528940976379309791440027834128661224244012461379323833309959347929417261132744254741630484895264428226302929455053473498287873244207833989553337021650302024050767637117039284421125670762837741883506288189835412660033108087381274213754256588479128156369687442205020904988577487349268959159175649840434470585255481784045537108964615048838992255664037965697133791061218021921304807426480929558737677836261631913787897104606687475265943643476389066392281137244523544135925492173282634525020040195333697829056607272003904610207388121496184840130653056154688288338715393570203633176855654878150767975673178703686015760013798756372589002492206646556505681068492372818514054326107586234370447753537565221595626817032186113780110115588869686453314180189943848053187964830073757585513508363255485156695871262082655273175875883498855895854914083203050393717785019325351408531411393998110688068183172168575314049867059504348914804268800424746686419074859723958898416691603589188432030200188248523027673315249716025864286156655197864125083902236393582209179435308474887659790237376289467314453930694046470549220993456628858595398110219103974284919145270292573905332744237064977801250893715554811882533356102390512889067536669948626390436946692409703437065171722712487265896572851875030632385217118089951182774377862272312584065459142368925237375146584583984024312601604621675614203014696089965480039909815977486088772544374578737705314592200180992733584205967993909379478813969412708464692723654756270738036376375277038674532901890072772873483668201456269181192457829692535889063821324085566031626860359729412996626793874753431895908851376212626676500789855496949729365569332649745216283683487129182746706156680027229554163189240085818854636460951459757093567682411304319721218481818522399451346378661284145684700950775678824814484438561926961808524905029608584675153591179037968454317294453568054620089084390408655185907911350937860872182964292478764565448963635113180443854992701748735607484810316447371882688978243726121665503705654827708966914535620402199979338374208726265087408398463631260777042711758032904510316943381397860068036338281202021754261103071090424638701040870089159680659726847174521769336780496510508461380729878702122148014703581643020875868887127810640555455964518390172752520051780270353494536585335640761421520344836890154067360570207039576570779804956301074971455377378086998660813906681439013304563184155016750407143887396911163860710848909503029566153058815098209831657602655696789336589013007955952441740417436604123931569519147954809558115043378108930660650104601232532304604660327129935365774389647982801791458901750341619060480164994295733827621724865800585877312106582960381492763853624916295086193717678810407397325277281638303300874720974987495203403945810883950049843223400941538914182984529951663552814421305030507958934621515521626094248999833184842536788961768107398453778400126116928591029232691365653862486677593936793563778725387838302112163486789687842166359029518733897002594422182130391170651595640550779047117092806387257769327036337036782681116237311627305832060290354028087397874892290547539111325591539665880212789741386487023211299849799490529853384225857251063942759567374151042811231559657391165580067721610869867177131711034366568317296074248286738530236093983126326120270626947302767557033701343588256477030254028628674704063043134030206371857980134883243330684494642587878838689310276407745300198170882901194702322916336596731322135703613370257255011928675711171321259517459071043287982025442671490273846103683432090042048383255116474432132480285552739374159700850262114227819568121965133863123619323536811542605993033354351579527061415677779565352092362490697845962566172948630845588613515526547786951719200086602110719531164731744505402332053417078551508425827812614799380897429296304583951167300612372160036012954939511508015427787463625619034605523879277946513744899718727309733121995712555748361055971063950270670710114862875062622124265046715155005173943854297808005220528627214278166037513397587571181992600262189188571338044535547509319276721752548722618259058366906754125800543807611365546972565879743502368020093804766084159922441118359544852417273702101657455672113765930557047830243434392784057860500105306505959229624028400807861953725541739672863291101426774721412980191518307550740832361637599264960248460856134280235446406518763677450452444922087563159919495898154865376323664044480275149111437536477000570627206422983876955624756073305011215065363259989712682453370888037458130836967258397854278706966474410876200021917805450992618541943411699939008364955673599435483488613302319353973207631605598717522784736740816976902703245284294853923354063718616132323204653601418500594230092374152888420659758580264638807954983001120428490345163072210097263395711296292173797651970157940900346627739808074854630269813290673877399893834442817482719230886456971031909597312829862036386897952453054595927884127136959551547302907448876924485596590548916002795363535991960489819603581454168963306098652262791931599266588068121126449044258212737807460529540689027468165214965425650320836461857885301150401712242085664627984508688628750506469268496774588381558859326928786207993523014395368617914754331886272097217258803990375646163379025264488404109100301319340646025370470298221227834958734550657056170445780513155667309293035940327617940326438300151348336123475989747724825198811863627378729621071813350274503423690837527454947261623925902324794565123622243724651565793543395340923410426885660009350759206948335704354329940797900295724928218197865538881005885792499755822633779321728705180312132329567223842476604783286899335824064994884622016164447271587478743767819469763983730281042160268573942401412138010011466821303120681202801558828929704144650490594488555404126649865902475897265705176335832811574486453188442822198419784840702399225489957350669151512526430639299202307113447282123013596021073777690034859916710198563282929936868179612351300622084519893295682952658271213389827489966457246837157967481505088363016195501243927608004287574204890725476117062105236453763524492573621547992950380180616588080910948061353626370267995466549340461268057389124351490403190916508606340989403408221141586630680061890514047419278608218369410406566266134397709037371226085874719863816858213208204824289438723794399882454402474469725786042736262550797339662093633182074644237683107610494877633823505022855181086165523998201710130571455349636058557656863530341791512399543823285864707447191274477778004577530743257734731020239413858306627577655220978814169503524871918036720948943983755213100067983814820877188194880386467613929350962336664114595693272179008854797309317880283871096079032591763747171054363386440207513748253031710576456769041132235515136025452464772075451676301758629395193552774950430819233584696378306445656953864517050091726255702934969241674254518596462984929539327902783373641231619553250641707778389154368988703546133162893261927859715859514429970560116543988277342703878906085623718454923523420106378379969354725080206366043574187163024691578222515422307669655881669186462684396061299279464242646406334513007165106534402245867252555547895537424997568934533047484712566242713368783191218091886537738267768683404600060428455593719283888674769780637669563806219250876865822621969441951584616474662120084060633006442471327789548864773456197046916679179701344734529625648423339367795025090960950221495658193306664366974827274602648408996486663644453914451452282550719292574581063394045163243318691661435450046728533568918934287819570601460345350760160825658940015157062329897054143559047735951018215375470213539929550864815598344576034665803206828189732745650410886964961261409191424800783463244953609566350687960410024137255846458067796716809941601732320966394221700891004955491682851440271548225980244775947151858963791402823781966170607265817367466255470029157973918659557541428740933941401062770393005002539560496890167503100762579053385245749797249733172228068088901111328462516112384594019146377623614368178078254355891668501637928298815054516737330546995190470143983452853360161083259107366536687201843365949626197613790618837385069572110271849067207925275213270510173918798360837745915997262352134329446359201701840729213848271606289530827137848676969400911070690675924592570531772639454492090419991488900480016319963422533162862233507376371880049715139799286364230891734797614478922053679945889329099677162172830771355720573519912570248970411021845017049670677538726668435082890994530199681692723841779303698492655106515302967629725628119528616094568209949345867386493390615792866369517565834061327692609062270350465212692104223646251774886615224661577281222006713096622070920997240429081265354088029149840327928963250593936107830699473806964370836403038318679153710547406912665732068313986516756960103835678262703688241788554361707310899495679361136955875139932525487744088365409187477679421871220506986079878291775687936549997534697184325602002254670384796867206330913719653504333715807754671313004679863513042111198104215463074605506658825320842568077280757701379949247327720799377948815691387626695080024204163125969161225810898345570833710986507182664958280403755258018392570796363488897409720305291965239737369451888642338895482356977903490133355135609402187362786962691678414128252748881426144268848281819983692700220050379832920827011450711265571864992136224271115303518942264760348354715323014322489079205290795372757914384209835191182317302440808988856643310108197250193372293700624713398807707950711973019196292910757804998800984623403036539718749427990764957990374974503737210902893613955720139614332437378767741915998139475493801947762223099027882105261471003664121266778229842568940084505571333213507209938098478988908364483899713787887513178304354439669558705397049247249211580996972304960845235687734536096814494265515929775612886716031339261920909484076874194917573278660182362363662508473933724140775663668536130404528176542329515497715955973288088700682360713542287534242075526324086159833206903565141994387096167152643249536229898578702280452508753126718622980796076584407778036007159817544129352186011180742532775073983186649226721152170906989926567572902957567856953726426994261687907797750933600809127253995013311287074294184259167074768558685431586836558711304217624963438427898483830546556268381819985283721818854113819542496926090090527143319973973208609116819081194244527135534515542310383974435321871510201739526938374097191594749930924521089943490057472640939911846269761369948019083327906619279531047813663585430861196247179557944049932407835449917259366470376467127167300001624181978524275440608049052411038768754775483694041921076146207524436947936964921458114978452199960300614094845342741187529135822978091228733345137399662450959391112812820917645856670520040410400358237045458102251953640560921122381185333356784557377948361146977416287653609851021708457740466993157344605413432037425290259264383363760747703707934569938518989754334703683652033283611100207094816145467581116977104015753165162886879129920739386856190415270183110369996129500898416520012695342732890135738097386445643675752410030503716339391873083471780535996955493788175075608282346998826607390871624557999600905490268045181170424066208461322692941436977103621117782711155688684815884593722551304904745280038508154879787313830305210924993214342286021835351918578745865541334749284113738604819894875222078813378376314138136660743379973922699873492976940748918214325498369743746500954195648050240472867358213340944394105663474494111141827040080129761169215387064891628847633979964699767777183863245395509073023412329165206120937586302480740916749348044094743685794234642618946761680697335051945328994515821868359671410532872354503407502840972601611135816892939555933438806338775285379366249489946713800740799371122773430476173853785083402955687308792923821875615846051811083826100032812407568970623591676820844734139049875348398332114879000216541623150304552656470256791708502695212112888581552215569699387972282943079335857453024627941782736196130683346227998414091555884451653928406279119104287072535107374953037577580128324407299715116347747906393351382374196117493780234718943181950935820277110211432857655018847684678488428476198903206591536884752107822579678556176444886841105303051104268742579316107667005488918796739489954957520917441282032253525902452870515543372813410441398947954936440600239519629476341253537478488494499768259095001458883483701930950897617020330676265697876219253051067886655623822745683569956842085719743144024088271719729229104556461162534279047808663415740840576499515047952219827338538863764270868224779825410333814156085772553027603434699796268753921338134309956968649653743002484668461379806735227167830861257381798955890567476776125385062255581382630645498838101992686398673342454805352012383689757480908393473881849541701610487964776514331131583000595833753535548825299943471758362732541383314371696514376941650812569705858310536021547260208216797685616329603425353957804810777158496679098821218600354349777424055140548554618303001075029934204386692979420615815445669880693450279631778071484002614515023974019553338371457649046152535551555457136777769284494628568463409672643217563437916207351220926787662167678445701963297923218441175148554313545552791627891563559395028425097751246189286687371858431131375978622479963769195687685016686303927622225644369015535054802898044745809053743599125169755525408844862535847828511914304377964340311323809740257559040412547915968784439924733170722177584296036900544179584929350173164362407193485722988580196022585723267962586013202432757517312143545865212800033199448217215994061747376996516390788846024138303908016218112232953450866803046888962352782294647594469988078052160418352807283743862650487890818604820955862257138028985727263057716657012535647473891660352489226229573000063356772985373078828535627991519508777160891616560900826018084552052547463180342099485126891877305028446763045548313485294771709241506108335758684666409362522312318325204909555079158151730961671764267843138208972984637073585420620973294345088014555039181939651944997295919563878385991244916071540029713507400451010906275620032101993139464693680895558507184536155086280975632878640444775581771894618994427451137722935005196972393756378759567886724931402875602858808507273665162664545926086306072344630635327245310611175345113440637605843796714840182636945197956281759032799985311515552932523992840348846488843866141374275047098514543068970722017710920590735541313467319612086286839075420839325372051349525896773060917477509308838727597200658635859860845601457843566936208123086240624327284562808594124974354536436118059369006009515891801947053189873553439555958149058660924627879642541728689065149210026348267665446807348013883265545285563940398340526024342618010760140395619289414033157892675954173759636746493541803188681411787892240269992975986978762591855540323499141051664316706089727775947699217886760091856720828729988864519211655809085437122926096413351056900267623776503279280310845330662920891534436697804340280447791962572973840267957488125217390502407974002770946501675810606101299687912429297988148427546877244974985247836212291941740384445777468420735289634091343570352495542019333242299648880939092852689811320759681391988481167395168288722384342643888785194296398347629446566785635654029845465835747891782231413890701521545193967173913025556755527425951226335803528530282486963181950872042579891698961369958497050579757241020889945974312790042893759400836465818844878206470931857790108663505892755787956876265650798971870850484544076771450058705449055824418593284973217154254131661281862536727193421276038343510003961343197318188270474179421620920597158528389539372195579611524296043153640848515933908540924415789199846439588626277330155913244880951092831855171397296084904414533435430222744503443413656636383116510638188462292728362548252702061667809423788111119362935671176171483603805982654310583495551765873720775333882268684257372084567835284862183181316560956463293048732773040686359193430742618009698510963183923144740018727994711884049647675840290307690161575432444526835555416830753369116771655131242830535067374290975719358720162619376648420660834609002901365320780081276739833727736894852860166836781746836876970117082412689857959633584741095509713745066653990157560160251058706112460132049466486028532414394720204385007052430071726418852220144112598925613887430973351833591319182975986972901592154514644918758065406905315587652948355091769154943677956633602199247414715304785828425994358960278063050180831453682329278792875147787943368605988496426125252986466806613273329822525706077042229812391825686089450995558324424298627076186381706404406388521395913253219996430782269417068410070633418535235265102737896239751584386493202429779719567109020225302623503239373421358810102863167110619535206295102697828342370345833709033062678732477305853501482920411947971914729138577313915656692615928111503296300098083650773478204227963407086499702358207311294277593203146964860058522480560656399811207959867311534281375222459962196787212548796863259725418707660795445450411183329323737781402356821599440793396356093526106006336121989243570230233931065434743527116094743174608589089133156914188629338605761626858902625052373073981928726790005971901408384990632398514608704139771893132511946115164361101489095602033672347496848407841484683205352903390861600069334034251502788699409196544652449186042524558469288958795654590248065198404301179412910153012769463601701703558601557921413707742119443640595444036127907187315829466568261975480725548416047574443403095585535747173373858038660067875485000416522805690325291952788445181043232477167552430743941807103615683740670454681362163211560573960742503052852358401524989572781426744975795623997293435783635943003357669864765050449431358484458775372193125297930432727104197715344617346503640184573900476838217364999369550306339483521884376598657851430856738556606686391610604160346635913741996117006707216950395419894782922940225097788882984179543001689270606239434088722601497002901534114412358082997821381564918491370939808982876563954298192151739120553389305904377585773844607598871527101387216584706636254077949584662774756847966318914932874411483953830013922856911322410135553628996021928670702926954928720181820722334738280087412479717272629066930182616577017478351397984348548559279202874592468903918644498661364440512604417568456773859840094388230790991570910115021234961147300080378106199854663980540860095640298999979571523844199477002157330147642020447757056337540200948965254924130635338528990083483161353657885342591846161113427656670828532926943663113305187874571224141438935689712801529954825358096512559769098659124911898318796545319993219358252071866236544866147205239481442107445337744508879009664002668590152295455339648293144352581519868149164802206132259544577035778973102838507020922814654093280428765112437753536447566192129155696779009226970961525109237928198209691516894720804642697007268489030800885440758850853486572746812115141096816423144495116301373268763774642717497817054461660242308819971372338172416403031543902609653879278495830160679655550426745241531470010288167113232827698897330084481806221885048231245750308337474129262780186987944410810470689323793354554445413782239098097395945175092180726690174017778680996477044778525498585222180777941684069254763890214452882733606702859829553616413769178885306420869915203922704728450785228952061774052907392103316758476463460255988125212396399149188539438617637880332390245962610280991411502092283381720365250930107695315545963201201439311582842258229870909065405337613353911427421692938684571881563344254465241853553592102421622307536135387849204065901451613759897554931788886560953830399087541353984187898945969862005363851002299248779798519193846906753425676345081254522003285531902466806788892001453289862166141014627483932321829169064974176242217574245394251687089432006388337471741881105470344856067040321518077702936174891708782185119442941364339483339806438103020456011779257985153272794040119009642905691858881047388714761247855568408372649920603398587830301547172287715392859625521069934077217357551594396835056562796156462609132012121495145387754087793781203785508975187187799307601632178139687905614963572113835035348945648606737697860024007359188705465561838970271508342857515881524642084417974876501878605774842365931467902310832277274770316057193904168863411117247947942241679774465603413315110731225389585744635090612819431767717576992559505665329325370844985506622741774166532689753951603608467137412946343454305535057551544807217164004349873639188175493631937356075256259758428129903351561503646506779831855566008942988702936156408886143467666571457251142542340132745748734046465011938439795469685779599704344431625401695680049490808234654657231055102256481592667405921405762508044625617524555111563041697923017259792703296952227986088005054604831573191274005651735213805275356999386991188261022291539344177582431563728336698621121150844847952875504928550674976169157361845309622982505445689446406706002767499604944597227768384435984834196293556226597879545692571879356356037778775700086521726220314706981931649168477111332888573747683915127869733341802798764600833383851043273628240559480430649525501217509082341967885252347231405612992861914239810632155824856756348546667892978184759973123127587367298232003506583207479122752611763932677795725439707602435756378491163319527432921158294675050587777925528860848688278358248428806167129024422060752772264611443455405540955388578385689540663746051476004457328342086353524736904875665763786000357891336669751836095614612294210641223838298040546249752031826130089702098082729890776790351996920968240029076773402688886433364920734715632930140850194752548320003426406540673556325914146808419045642542714652137477546264485783460935416550959412050471649074519321940096859947659657280516960850306716619389768189131403846449936165088925022698281292047103822635552272758381602113059371710687886296499108099760078797611461526183402157473500579069109287818743018191947783661851626445936181482157314576719414865184684730365976215645081882473361627749694339516349640660956458282559689255740696183759218368675259498214568913305918400318610920766308159280210450417617366266464345820006969246106405190953601820750010543982885122879618646537778188999516097324296262643499298188445427163173170956700656185774929588058622134222132390813291337118567047592656716264732666942016638738615119162655060270058737996780041429561874346926706433934320874334453421289650405351425346356237620616715905960920164502600476473511350858245921413582054204119036488671859607125669285136611721553278742207105385206559446480256298734772506162882864218517729958972089605109477601843487490551268477738723533372818625758322869744443959615596875775097441632689083952060559626476681218190434173951012201034354626169144326751438996538596477027599748666029216202708124371148392880499601538769855982329304455422606873074233624254162201000962301287895383362342180146506746176204795774338367368455462255302127603500349716967000961865277650159529422605252318619988484230865377694548667256559616820336756360525472599965532901270910034922078196997499831398529079399942047312209905898289740499781473283537045035262569568181687546916408126492147344817060295913564969055770058009549832794366657770596183053305001725290736170858364045080396142876972664757222781691242370454435680211638670204936866683204460540878676619277293024279733927217763152337768907730366723686302589570213872735351990334921355551167513431490870127229512452468631910276198546677701248799356246361480548029595380761819526570714039484093596295083495692525962464784832476109802672489121564564400674885733207072916226184448538941864160290388277576379421654457358641958491260779877292640074064944506299120490349630100638587215769071174535826206146820038890285587646202356910279534272962499339980533550941804940793267705413601630204509603627352175181646890441152239324067844856230647861648085716763614396846047157108212866752052481749929371220219768835216668745795086182023303653192680517551805028291969264786060846034161966055912136067118024326444156417808771768372080598198318664490931167808176688525741432370547871353416198623608422306689721925415901954935659927761463539171604309766979603703321559269599870766443861557882591422709656921986594854557505634727471873469805034203403525778053092045559871439262422100629055334123790424822873704555756948987735333452862744841411509588325519509501202846650472693141848082144546130717909120688064449203783611277832395979888931680619698769709596256637177210369544655056326142922237840747082318831943571160565804957520182586737228492026486182922620514402244237397050680164026135329849169103739072931794731420078971566723162193368791322310773791837159227479423457066180129884332748235891717521184381218896683154960894389716087936090049265660594898925252604244231511495316590537830567121343593297533544154559102658369415174224380456284455667901334372716041283368983274247379524585899305446821345201223265318157630470457534230855256394495422346461712151454651869182359890252582379177930454869072273233726741101160542885384355696273902010789725972853597378433204652865234538365316872645183441174449449953004407730140695843422234425529091171022122112816017757256482236164826028561181901992666519550118685794416592212265341775292786823524846046870227945926240297655019052456253879719961127075586232344809403777647035817242021209716309050110824807510018875770374767983479177299153244594531603991295600977584793583709124106240817525075293437621056917973704009348498767659578867383067024187754478744888923346893779657410491632911697149636967133128284470877968113239788007520555613860046832301959657612527591568566971250105364338839819820539545071697247074947619677909977865339812125724164343460089824879755704374838111289812910097627979319379335322557412641619970651408378701569194493686330222014893895531159136419473055279941284520202663250546731244725905895133406454608994598084656818882315328895948819075413875647589569176584986582331852849178596789220595328395103965073721684766203490313539088333045429164174191347431016863839774618071964132796260087984272612552268462949658731935405639062501912218086410076526959389194446022462126201306175187791312262530007331629520182559114264613619263388980413695817330298343226581321466755398372964443683352113474102447109636437530444649917986999797914151314020549583256633871663323831701154868547231334012624160815294575533863991687382834625051768369905168905717206249506713882452895732721051203249223339712292869014455961692102072942357520398098617896430973397753264987943850267154270721418691781622734884934266991488426853966529541107852570075769810797824162884045195377003871317662060211732094476384966286440913038207422090230987328960740218137217846511367332593883857911163422925307859510269985256612578897351041964852521772910676312693658905660415641249026406994402093975713407906501862455668244713998145840791565468455906259882741578520379020611193871202319651626561499742515773669762525042698750326232831546825675151139675649664986296068600145562153628709694192087211369014863557034365992121264331730861101836119424534034317293418725754567012850171689093273896407647368283530879241458112285209191566799968710549264139373700612101013293285549170184078708778075257280368921676332439529844241677054884011798209421606939811690501927398619612949639955526442661656028048980649521223088184162383721134769256347909774327090598493624524755104110035688136615636415015524750153103903425588132375683766050683242008994778835379922408826050512642262416130222685472304681001975073712388610394836201317315277915131912672173666721370746890684272410789187717412349982169654839717221200002693155470005224939165800520928508294816643097807462987314425641245688083550190075289411935875101463191489958989320745519157806178487447425751095808340510636636500863122895169730322131297775370766083621812351979472417321303721832086693464985871810527931186180242616221264573779112342932195602250345196033597931733820439353375259167101556363783384172451405296362682509395520162502876158656468785581813962583882654989678630704732366860812963699165345296403748756377764456141293256600149017888355072842595443831919480700023386297502942530185709358839344061034352964542300167731903374085762307865252254327062174869812938100423008865388381754743722526940917897705282976490676312993873344061016342449013452116238266706457851961476461914218417730095034241750354438443371895861302029281319930441252554682650462547541776102850075802920271830343181339883511652336080213882947713612360231447491404838860598451647308152233111429299319240624947160883115721528415805425391226435648458811008440077078999120016353265822257885067876812646316343860565483938810511639235214777105597811535939756822436426287717632174255824094562405111153207347076572199105079251166384251634020474443710764170914297387082304880003966640007661821316892258439964950289453512218314391299858429550389009295388692418057219230456602112980929300553127023384513416598892063154297004356117942891244537982772556018011640691115418813036347616618024051433603046323008678707671672072355604570298171186999143528054405903910055216375482974159322842058769488919277436999556221757469340182888414281537835795633523275833265471954807957638079697133389182438117196778470971089071542208061396366553894146059445931711001221873210784757965743024822573816240795657924469818379821349750893405585067695538809263458303356908993482868734566869610010249291932857066467871328914615982568321061343584831565131914523896075780937306458050065402038051306053067706304178767460518944401113690751432511579644912629226259800713101771027615856155278122605041296111058790553668545438882322397270867313766185672219429902559455074225944572904101651689798587936139890921936172488253438371403248026256917534150435613854621395212418161217435474354323441344194558995249158961874552529654332809512886421609320878535560686662878629186050374395746640840181301406441512667876688611744713237922177654637227872948734851432167471334272247714545238885687094819436104124024644363396926774316736847267901200345526078988359495477714627346422448186773062317165964946724877320951269416522030631834123583134256228064667094678154028482291288809095153697950924959981899482463065795474773167173141602709659102257793918370789362856502548911155358526696595965625685517053587533066894918788055490901218186467624519042848785100964464714046518914114515678919429371685276754282178228045008434348881742676765862470875484430458903499028520746527773058706888239254361815567699736664261400801880564671186823495938086605053301606758796372701371789585589323824276454734732842409205684472665471079239766641344848563277038282253492987138216442877678562373575116887480567041498990700828118436685953656574616764040650703281384564250316084213143963056072866184661434741195081641401280800728917803816925852573136935197052741893481569627074115624614014650653808225556084532597477169966709458583370365121695604071132089071303348806803074622396297000160197940979476826395747658463456775348294216593703070646286847820247405418645686734786392518312217250595799592133998158406663261318981155437087469990500165420957771829799693814021274268410247729196446516663138588306932234231550527640741656426789500330645240276363012687292509937445099760002275191441824970195802140067512238905145129256262668024462487191804601050392987623481727925793881272606856752703463507453047557624950010054645667017433665746027872111435415539208539757346823098759370750966437292257898047260279119924951126391957449894322738578506016142473905275816202067171413204796322112342466820316916019992017631887388811046764637199757209844525255105283359040126281705693010034251260257104313064956739375043312681233790056591085850719382368186507449930618422983320054822949107544009769730737475685351180533737440456350100321860070778761203363141078646528978152663371403621147979936437120096017073165407736161802708724532881331447012391796448050721221351725524240023950322994528786283739628082976505846979327513739599344035747607618920694703576530033560191697132761331812059582219717841064328978294136612315678862205561378129508469554707791364568681132366282731698700858859236983027469309467072093960633638452935679174580049975226369065036661514151432298170455476266112659393221105735460901439114655979217720283623282974378098898429245549588993746616382946182421850447189838423562951751944370498633491687871177843011757077639192668310649638444913725095283357983170006251724398807386584607172037325517262260683396331342513722050456945231175928141734984587152140797065276446664573968124375022050655980463406271421630761713895571034369943770841003486326977120793966009451613059385655626424676571898556739336192681149122354799388433356286114036807853428737946117677111500348156685814772677445070727174895610916916884090576586116149196737132771420416139565948669389588244640280677824043774804124637368910184124119427474812811991118863354869470127390944036559262811344763260618947135931148274563825406159215527552847348162134332840751560908811722155397877028040560468930962530361627102482291924899807396591138700994978014479951375447834545049802987335804922104621608288022384715764535406062965283454919796146760132506604033688116353320006014715546000238994244662787073774939867577872144330282375969807601526299104814267764456498114116420036959084484305073437615803184515674949107747952921986759168888467044002123558263689794713198815869738856234493797447213036555654839514622746202692277061569283951795494957665656308090103929859306909618711009506239036008864073078059086815858263125242621455102805861273114643473806008946754070189786665645661042524692112248762001139279831275677536181711472835070476859411996665204644216776574529252243283924686782710048771858474815720923226679407722498366454104419613864500799474072887198235551051295904462457379861079960795805403941579037957973871320317406623273776650953694570271408197697951354022180062087608240468613819738289598690829458734410795261324472489943751895238722514208630548471826284541790903276815514831496292591761065770308051736012882996818842067187467046731749978305284176267111548059296026563395108024198200248632385714909148797164300480147205991119646306211754095882376204548208925568522672068513286114850124453932809831523115684984542799242011190090673757442545635353496859511897594737699023669469887266281616615366511379209434642650901258641436142774709409606338299370945447451266379386558342049952958954923739139662058573339446373746968739632762526224179175357696945469005723608098826314832988184326515538347591059173325797029727768301850307366139229832969341660537143845641664069603060309271173996562444167289527077353504945713099902887908820932330927031697792743805741270766933183298348077870069421674706624030196996463402719647153550327028063826644334605874133400598934470758662881600761144382405685134478498486493761820423229555034241924841107141379464075400863920511375723804521942638811378327332127421082523518500710077262832325874923196388880812096937961828766308583400833815698958135178773876955830289612597730388581674733288926953762453605130368194996934006786392944791285450841753667509990295166544446723901794160052800526141062271294354674784093852990146165592205312439090766442435370407289850776310588543189057241243109076143410443692959593186897194277729338161300736824572751870586310847324432224052023426642084502769473109407825272696809192284929232642807119087829777896811927582846068175407898384298501774132879317211139785437906638755866694552244300985002067739235643402590888356351337440990149621304276527476504634856219594639346745220522380673054638913187722490153047401105221340391280596207210505990495657499432313346737145998323783065979449964732207526438610574575088009468924854359200263082156072884966057000961763637776080813490507043380147432386257469858574732690017860095505347088396367358210081558101493473722615699901247235580707019130629000227876244812051716228683801843281330574466707318553865122612569474934382466299806863747010822420642258709855926445515205743669065709246794883220567476229833372441177508100691988789003684535009813189395611546844140462610451178455523059024855176744650538294263434825628371758629597723025139962112711403458388925154945908746993904182993891688048999951217967394855184605660300152846677969858089955259544889221788062348845868648128700076806394477880936575128833957021057427486924651955150480323613666959390935802623504226377500398596405518643887753490872426799704780244668629559262847322425473979077177868480365293971563850558071538521106537532614582803779092347991395406750303324389588983036269779136084114419854931739481224293030479277434192286402448643379755459695284105789767925229816993788784971299891345014174254909998976191000718145915181424511371867045865668755032413324267660110450121217628824208654114806645531110299609199792543780629664766195799048464893347774999018589135110001623154513161597322374682073590333711593501339923828607002585300497106051850772619344218564982300394803372272137910735285189422954429837021840957188399380128067644416275490408479287410947970478651332778450734501150943600303804463166683616966706165328038875999747485096805855483093369185762781744960595407361335419339097572988551033472184316151694591788740817931091000728302880813168487644264633830772463625330054591444460062602260053599236943200463610181897073205130195349520307460865743108606171251036964576710224184120886091013942451105582691816885571814001581346811620109995995513305653946476814168143096239205868806475135211774436872302469252592590930974954315116129944300079531319641917283449900974668326798908398094568410419430730073176187449568983806414090555087585933716350433692542253520321957084541826103210232570631774335317091445771220762594015328077500813360621800368615633767737613632408513074018635027021980545688365421696987498683518626324559239132439095076462534803011587676233791472524105725433660961552934260666646222126530535097564725421032932215766732426680084448917408461765145896020920558662682413388172328698877870299243879151863951455507259568726149013254061706030153937388787539025631673897121210073925254633988145288384167701420351852538487887242036410981957756143411002738899982951768416566510082760899506639039190500073030238539992224303853893974000270056152890665899591603851329244320795614179111533328988082316083255107416653330637961912488900848516382417235158834179718172623825088008349248244058722240141462257321952480305221846774062965920868358410563379322253065128589152700272885398398619196536466262824741585433742222759266174130490878036984480555469820756705404358905303443167931860961672412556840646550167362805371508579448388612185606723421964848083833969087222599474870169423748794382085360184660925385096880201275555338202973817224075527217586920734473229311922104206542796077230540530008854702400398241465737531679950058125527217793699746539401998562132379700436515083406700123109835822308175520727987165248004113336741000329642650143159712079249588334593846232789971158709793436367387321517739144292476307857464729575852874813601555205025595273824621571182699848030301530786544751915110683240838567229667360050088543581370835767523691217303210560071426565574177164984455190523358368434838429181823465299165693772544608241068844292096497282999743997479981105624438781850346053018592581484796735088669943422719769865222222745368363998047813509352600542882313782429467451563074989189501724729953638650484980240413542458597573620329730547901332039208539343417057231365303209002036438835199343559543436029284148904816861001772883959342687868366206046745966627273622374292982025472443417262316492636018400369195825401208463524422762563037517273526673533864795941432317319794491111959232698832740757911918443527258656241941990093076876509980068472328034495669179044732807509959933990166736770476434441234424542534436842547231337393337561755872621761195539003700356495943991133190530785545307103108799198435233323082583514309897067483959978181716584061425736470641747737175110520919276472477201467369894021143226020710527693826596045400105990350565493798868286466656955215723855070336748283501001406669821892797091257441300514880923653970097600891784561596627281774432471955262657707245883361894358081170264939720234591636806241072273210882690943612960268819516293142550266407450787671769128497470928003612563663183865036584640665672465015689553656285985926939668972252847021159854298794977116230622563019586183528690616237637916553452948331823525731512011456012560885786735062611268233014400121318355961669955122878941263883855170974163499904231498776524516265139523081324221126427747794293775972526373583278756185210427493883117966024649577840747065972427494159967318088911715950837779661862532761368871487516471686205677508384083011275665607219548015748082879889474112335907391855170934569459192243837682631952177829889712386726370471608272759563486593068713458021880834199332898222279183054517191093732692814452721387364694559510430061649012547612485487006131783287126760645728176463791804040301082316162495341854439136725807522832141864600955456716001904895442859356328881948292274492056799446830888049828991984987713458386931850583974825981329238556320626091710581312254979166523296431710938692838572294488923929524025953948979559886289979810777485271495779279914807509223008010773377297417747915951137525997647838171356834230758195188004346968837952228512264255450062067864357823811343336035844665692868934105369473873869201224541906867871770391362141686436552401065119267710846082294119867268085698358334177395096042826612121687970707431512640080171807648385397970807269570371432071695318816925596273820480063310609141417754237117128524917560245046992662131969201363569648881789605263483905210480583599518495101925415962018133295314288028287969936985105022724811535498908316122625623871934057272496330391027809942015089748733158761465844044362353840519708241320221028638339766659286499942533044544268010098903298808773775574858987247373808270640973508956887405701630111649801099149726552180953937654262696767228009736597290302663531985335217774389958870917506982155378549444195789781897089004585028284070393894085403457058951306540648163361208874402569558300398914046473173023239371848805516814533648969474041515607644682926829975531546217304334656370329141572237482609709831592443269105267800633508464131092727478400033982266402660842146131297698371159289446951551412829136602998328935669199900139861525160808552482512083687447963097115130555655803036094892411014708720136889187401978950319410260383420489464628217859556306702513094240570549113178589703170648066275480157262902432685938627050346016565782452602641162456401182381641889775680073220452602652396427494683359366655345165123828198575670533594492125009244566087584732624107205216074155340998759400158247133236085086461029225697284745749187471188858968765015591624597695397881309300888649229592417215338656794683722923647141819029767222916253976133823839520079048315516797598608908507275784730301360719525937784799163820072342961775697389065526437084475345705046910962003708987550048565079451546025106012773943166906155626838988165596922055231649098274031857182712538447986576239269460588633000157251640445564274763467791122806486920413228862747237246684478333795042227318009091278181094629201601536336796632455126696047561983663380930352855378400775117258313323594100398298205487971925933559634187745010017871543072032182044381227132860744159905442139324251538749649240654514729403761944915123319663589166100590590904481720727613153895545669007102822715191206764229748153544174547228597002684976298075717224738080385622400805922636654917386038783768550285569583685688717600052698244623197621186732947060854508884935904233510037720696097814170111546301377540124202988855439505542871908550405563837651608061366669807580680232151646954115087034094548025768789413700136837239872976612388003203807255501712130760424477559049330083567495727418790184158705401721149506161695235301750047907520558501745249087752096446741919279568691139172461322125962901163153207092889276005279979867264960074832759073795807401352346384969329306095379786478232657927960208349962435231960021359281825585888410728003967597269090377513374619142831492978894360682132574739680140451633717540745747059600371591329906533947205053825257802665676985162646977868253356421206890398927795039371220051117461931444863573398026951695080565237437864546818240915902998965978208722338112475704385454571973703163400961303245637832767770334937220969705459370192403318287743368126104187631930986983549619222390074434273238324869574667603814849181440554213249634799207798487423513154092700506906954180631189390080953985041371649238167568477864901728966359688632061226224724258765174361659776172608724946294501816333907361941524394988806778936973541925663654747272085719802148224534390001225093514024950624668944325893088569788391001928170003458062187977135247310693696548075644991152124604283766511017500770881755073797219795014438184941543266809526181603988652565203387911413986022764903690379359324237834029611391312494607426116632904117164438622205821227254845163548235060915534398177139348396669452567908644680313238010161915649504427895639366253324811879964387541761495583477386173707014686364144418818490089820353427515864744282514403439332486811228843269407225871829655965594582181680648026782958234432707810114256811899526972705832119417337966803452104551669121371158390796029852817545351728445062032372033010507246459929846296600790426514509410256140824188080782512480692844131695530135626148254600178276366830360471547045621718738728152557768359337871998298539123639891481758090472830005890182653046920889254450895402138603158124721202900943270811237166369561618353861487318286097862066223959754421590580506859197888994920601334766658351050213747974139016415033074230699667755677774708592536107033307768724095117462333768513823852799638428420260617010817496305913738044731171872924031006486276542418480346262128982362087431709334068872175659456304942172643242973105396967163522526994768694069660197190439424979940969624666642003399630821684507794963767298947543887481375363270545720354891293392058357922062895519986105302904984879296499610300295464289941148474553589122405319391476302535347494656451144757163587118065753513861954133924874711830685763791952327496924822100808369509547735825424814658557527558881090424081283298556818096165110582939247054654016102130755251915809251002896002749758961750001443007110928480386207702550171714720790562907058643381772881591508929483483498478401532775503194281940473849029012206855992879893593285005489687035489333223408121648947024149995115525056955949077680503804033504808722901223962812771312745019119703003620619366164667760421280967470363069887244666129589397765090195247173463652054663103677554966437050200794577974721572163802340310263290592951608109248885796591552338870645673678447329510468073508883270112589456296341135776643162786832521946490769412130616312030849458029486790939632828609913372264286728090211575245272059556857185002797088135893221361900190627897761827022088875517528157928779847345949529683088551254616459300484930619727005165083581280410482687945936590408023126215702593542386605106039949072733819685363646504794824577071111770198449068196826430401651393370788019287167881836622811205352035654321272317804196013629300230933314358530303017770246978032238298364891821440968077256904837005505628009203727663732291404219573838581398032649671963676672521122432152504294101492955402017240989115173824093602084314758559591827055241941279933091211502619493628316922795285086254381006371787330297167390723580147396270747465275856175201398869750758280386918623907589754089522791082802173255393717711871311754003387387148259950453445834759531708198359391530617642522618881195210177572419841484670790457146350402247729286306584916792687418240166465040468977884126185422844406800962996692743029594869073672745715351011452084725994194935606997142335278322624621216952738893241736204359153699488229217866329679254680908749075958553866952683764634626266440418060560064848778478898809250994575674557634598703614784202907112051342415269678510594488073866863336648103106586792228947011744061235315916579886233683092620958683949028670202178004979843405951210835270127331117117535244828927158922329023405470626655641518712190279795173535505366951916863555849720630953904873792925268005805388679160619901441878088323937734250817214044870241217148482353580093968951487709813715985738024582550554404887536977504394039600088052697471353806125423837271246633584896988718446943166697336327827283836673807387143899739464267901536106147312670638018728123800681121715495155772378094714082823830741107086604844597734615090384204386812543010647611536350498690370876898293978027522189067465124993498394698446235554628952135528964336809662458312372244200938825196147714919119054460962221041248131532303873761903260016731487125783362764207239894510109566015710894141149085091571011661590375661494467874970769237547623302982276408341612205781696582827716406824413873014653432965277898197749513935809731593720596099636310333805109892154386938019033683540576888134159022951452488153407239784265126315929355338866462526592703690212852301302598691433086155901818523031226931924074328182987494908235476040546915158552657321871089100373604506916906694962671431773126256065141789102592821407292106556996272386463442231348345652512668149561819022234185547833632476750001930886885344702700188473287097024457837650560208720591275502503483303432933145701951688438644050593883846948927189514290387352530499778880738678355224583844094918780240342526781267600210655808993711518834251553086965272759344843895659173630323967616699762715037739827361841655312776584531574555592368915393765567205891250631046184185102673744201185054566627377496651482678090896920734040139621125544389744052255925425315228818389692679483526275910981983933449426572036462109891399762239222331531108753528309404511900643714415105645309879433710132499948764071719404195519120478035302561895834533506674301369807674326980241389849900082890962244708388128339864818692844356270575516190630357681450887626961277803799499270823643342447408380558763137884239427384834323803748239981605014658996339045542215374650175062466497277407135723217939172636988239352340371899099415106675944065238603269185407096140459012544235526992883541051714417690595043332919135130880925505882158984449329007885676854953309518653955114975605566118184455037279484153484395513738406379751723808892854185662777403567870581986767000366284928122762654791602652058402650846851195498203628873075292337351559463390553067262552953248766109383379543592567014732386748815175383484090681034254429525114305429039028701411267443327324099783043033922116966309479328946970916144398484375335871869149204043875476528630962328781981566145294125293137899242989704255556275248300725902710547468929354553944267957108658055349981505852126964353161373036218319179436442749120725213148896629004629685031435976062645026281686515987058335682285938051481374674099845521855248434845233016629079609368358601081751555659853518918500963618074572657797487670188342665730842822042854484879805553973172375963128632525832522247508302718164735315212045625083118453864011198605253984391793458112069978686922336743827090598170614150271189706342509629319512494688314390246821422520678015475407753451930827303059058300091552185934934163341269178407874153885744300443154029862671805653188383234120621207702303034983817544360221524293048185261295162375075965598483001770923503283337626353211946192181350205330422330584074341553364861610043613678111543885865539654927207908498856025775125252565700344363442050489840386403445599579155066061446099996635006297420401003065643619626597625932038013114485080069814030568585140488961156558086548382309833472376124818980188828803709449975315966115239368096299905765322121374265065885017755869080379521858708324581550110159550653127635467615409173354594359736425027185891332051312991699293293138892045386224876910259599204841494936701520306959904133841567212158786104782046323167261586672496899617293285833105323131305658789148399830742715815154723119709965354099547099167421571125617417562269942721743796653381116819904996617561861214066192887129570348871280913245820073692144965775334829698846248928824592888397346377353447545417994731181981757622643702296090748360336214273205789907102120253443655817996481489135787944847413445166914913272797276399413217323298318406171338533147360742635539603219301355683084037621329298440512359537498976279129196750500376497152402843901777727210668920236190439055110027815097596003549734157908716629171980960731689991418281612493536820963505051801462671231521989265774572054585013529650877491298461030521033271827941252494299841166823530344992214148731652182539714191133426955394583155164401355889081451660331280830174933129286782759216490777144530880919306338535329772544665902827441223983531699641261210675962030248196455511056672284779529705369697479613740276360288274807666221104186885711100611428086917049789033581798829849088416043005658799212914871785753992032356935577608422634373681989081527815181978567781441934383666167114571020369883794283005603815691705499805223630225905396110915726675582506912402662600795848415548298148430472031428658680520951888292200787077154078125123035160675597363122786728533107955143286110727921362637826703661526765595679492466928129802596436155492271559284942111872598135620415092437518651016689795812141970543330741993491130527427527923766258997036976940781220863112690089547541947750181300244435107930576742117607788733351564539460372476237376063636024257276697471370789357743634041319211845267064071681318536341586236045934079045492545625757129852073883199928016199712007739436114361094493537835289947158051822607591480351534637519671799719827483016955517821224575649393449743912694227525165331461727384686127440850562625161763344126078452525893383158717639794709354974405851550996044058136006125785569097162102241105402001119173461170659973424400803233855923825801935547959101312246979347886368235778351172552117395813088576088452144215581326731826643441184607617714661631522589421072992688374378617302993230885769464541010650135056067993053757029669526755239615325698339029275739922570818182591342801038608120750906246360666497109365886253755756297873943541170252431325806397348158236630048417137809247583696755632558787049043138557586411747485795460341127417493624185401133619684114105900811311385012849213400968510856255769084044078794359410527000693703890613886958925019165840934274842092763896924016482129839024367390931895218447335161929484354185886099853925508991808951161710886083262931190792158977368031672790684719493046740822993001772448932180877984356103624071538271079890327085775759897073049554560253521949072380037566045617151513144186140104603477788952966543244522092989277377037088657910898973106710370110702911494027375306704829826978769705055719925257332256654949883120270318845250920778224573628958788628714992298193596053772455543223821282774215787637290031796343375099352963363302653543530486498433623183097747350600253284906010806915407163197938105634990303134040940387229947605428788306559081994043954932864055007536010691300591116818295579419042331453954868865284859523667920288613495855880289780393726637132268951971168971536951066827950253508563287089055294663891964783280603678231749697023081456172838282502101019379026773496724366894460436712269037473871407760160655864980521326959365601749734236866955541560419842943266428572977646448546690318817387342508572102334778743680568463017628772581871123492711750600792727813742819446896089323739020340355210997912491622197236244853831844538831652396985147352220887474019549712867015082591604309356999998380717051003582557682064971809333497113857074072219894193310625335304167235970973948002992999154808304394876464434183877835430063699377997471874401761268121199346148210047713832712217813625118949727472268961760945225155911188996915722672024600311196948908409764484760534317610102380134497958092104937445376724816507590043334974373271378012820379027930583128657301995777566088743875310534590169439948420077121718855355700416546796741065789397356666651828899296686733699633405013711219262541513500414348948557353472433608158641985049294297606897341214613365581072612166652257041318882825864375611160676084600627566196666678101433777623313096849835717154630729865779698877716877459261130116062515940063136888791348003718911804714761621801132117330276784907932813680512948769645200539988756649540555160562493936819436099250376472367322201382138486139863073345883602364083841868980801926100130337087339350749346796009708021949485031845403224970243503863497690022788949799439574598359463135093567261907327338993852617568803261003130620797106825905100599193488337399410545864953030742951641767663030790970079901859888148587119422536387502258029660471490552838960936526952230410455322470199068347644106359437254462628087454505720413844227249039799341985005708511723288235616551322203643934957331261809524346013816924914318923595377883371385131212254660995995939530509926642426681550597862182073032929200399582750570415736464905680410083600062905261432967542569702396433074018624289519170730368039708113430169632227744464261305946325658898533330445721088163903512559720069186737094879955002821938901368815845964863891258995483793754735758153635224779628116758356064620659883214857666308453643609316766286679129555578297595380288516474606805626382331099246271095200004428236583524451563743691252785228714826727082670886422597959212630884405818559035755104381271247265905191995391580663897123502228863844073578029817000488343471689977049293429882257369216637340446147463821027579880924915810741901723582565302987151646939617017190684058822162004777637772735220856927590851337525727269916510632163684966151457964982966132453645044331644422896092194065007031025359330290434077367291556037998425620009984901134549755672577530561533138501824592772978463587010172914330731050255539945732611133745037511999900863726085211477228137987479501018209395270328318512501872726962754794502049458559839575663714731512724428712793524512747711556476064847032782058504834565661765645631069631658047385153380646969914487580345340489044628922210943184910464699814384916210135174050809293345836219735930308381080767813906655289087083366055332652436849724001388938744182150289911226857715741688051994766951389827492872012936376018487685014136896087025776132606037727348414915236378368692158169385567366446618087420268269532365427614531662012729314458495427788317429386939709982209890825436076572230387940805706126892700518595504363638347054106704962256964582771359518701663931379106084207973162927103738362971837303099910008867484863558838273542849422553457688471391161575999529754154820214836164080780683258050530386231104494739162720439607949975415751730290732789513849065206305442689172286907489481797365992404686080957674269885942008037484014230805675404278195170757655134880279994951315047661757786900648245560073759420989988895610401002042793303965178783183449660781223353569139969072609303432462472590500033261301021195587061988994159610620131264104727259724355487230557094038621256166553303208058175540413339088282480903565240602913134718317908232001271785093885386312336104737243377797199982227646991449233447382974278376205310618249998764755030542339634798942985206664060853437661101847200396209035719085173400288420679105096933420687481476497097161378409643260758928520448297027674986705404091903642413535567242923162061059278432486008265758872398911531512043281496814807011606428216189856307288634925569320611551938395658731119353990623849179051533838161028687815499236386314328595612865715552145415218461459757319121905164843768793949394729203242448445574356501858301547898013144577821359672509416864989665284982686543770586661873414152728090767671264783264216199037060891854425695157462758098433116933254569430376933159173748181382205938229948059504629048343231342158379047870863853776423424597461911832349975855160391274732780912325333111335385141144583544247185827220119663794802733588191261476021267487949080775783625402686778327534354855905644536482069931291624335707538030097960965430118664559126705565260877487482035833173667060369969895460976540877811701215832875433490524544933709779974478372989575222067459488529079301294492701251684153575079394353803923563036530542739308925468978194332820040031309280289862288910319068117224869891261604716346138171416439551598550694770026556391243542181755672617044108819988095756267219576904604284142986383779713638708704183172901760756883077941461174747995557393031973717813635820158693539972319479127168100339266508639346953372785341239976702805540581283016039152776907166207543414842057967480151857219204318322499425564689374252458173244298128128973444568904322089572846027239210877555228972840192993133628695347222155629408529853576769913240470187261761380642739051929092646070334634589590953417370623011048361010321815084357951193170277835986435479676570317506071921568995465200529738930834741796782171920960542069761945947588262169430691724918951540677811977083269339643598671884832592766477986279723012305154345961562114703254869035320760265269715327834800179088706071942751275699165635341658223172045954424106522034050385247906880298975237204202334802433615243312825657744871485839820730305303175656358273063480958279737970602683583109162489315932423505346195209956119205960563482341254841560155695179862069512321394582924082677116590349718065059265554834593276903752940098581272011043193882216863104136741987348650249749023379772735823416125149056026753595957459152688027185156757374597449621445681030372082100775715783706461867522114897767767220342371080123092940393940939737227345947156933631129963342480141764993478563400519708319859747045188671517113953388560552593998014000705469641613852162915952373319160891900336392747478008405385690818433784330181192860266882545571199910686634004734631785405535309121541059824958877817548405233835953602298671473139186072461460790079878762934778791366994095236672394703058064322112452760499561726088842576088341009555520881298742461442074723432016482188974836608344343021290836574525839446287875837252368371344913036042768392081515222032641158946484502056573250420429143699045341734139542484817639543084151182221191101643007055031255294107952234930641718796210097539549729044762677790131046946980227518622288845830462686543695458117150323463974953221915048000491483851446259772693087418584615852202729952722330179306564242345933248472831415896895827041724079353835940795985208876613988845256245166970226543476416912985626432112662348723047410275719998690062561642224453819864489294882801286863028740816296938075204772462711711250891913683076093605846924269519542098262043171044593909762944947893409601037043425307726287213369573927316995959454648934625312018379595767982193587504016459152213899247236857190803863690053402209647257836481541846277357463273722792946943547156890770476287857048838139855083745731694533885866136056429807862465967493185697264130277818347333729159422702493655845105423291579230555965691729994508038900254176931014207346712036547321358320512930758715487606912527847949896148918186468903127547258553734848708092610024915476066226557383323303186451390038205833437228220919954179049743923239882023153892063215374702278949158699057560386900913075957821083456619736767266762762281052756234893896697422564126171293635640761350089770899847383929767185740794150372002001923634163841644609941143241977893136626153856216755139632154063811967835151326910149533755599791192349016562308819084816359998324448892292674548087885445150749861214355256262986614507095121393460608122880620060795695405314253231249756236484286182764014261555046304481101018584406249636746713244724268846070324458632203660717246526072268905182905997574102201311946022782181454975835737324246264761028827630122345901892075436051232901368976596471191992827837266450048993260726471794860546918600900365435253654909634769013403535756226442744585293542062764355947457350515293944610714340089330922919054920401310974909366510047589812192831642606410030115325476486337122632676820040857098437629988891146213423962904681837778239656301255280795749085092128876276537951037297676284375247489547474730912462485410858279844793220388679236926922390219172753542356291524289293163466756715121762680387812105022862889067348120118104604637600686631822862530050883099245600587741630057746445398895767013676377721989249220177270448853759214739106963646114220809533265567160766242479957552614870318665019013231540872383134471841040633219475678168898777365718611422510502980375659635666501511269586479697918153836659208262940008556420677466476146379607173266226614837969498560464553913121085451011659493344652128832418118123634417527919225213837548206565360746622540670320982712816520228472974643071900017028653770266562363897741309306365778603974338267634398939651716046472750727455549472316508616576205473315414892973046736298221398138182315914255609203413537837129920409680544150406089128149338738945175734733550933020808742279506859974733882936010040390446482120987003810619970304635887658338304653331105195135175014288569350395591545661533803106421914520209449488989157671586084507204909697343350040702793804935560061816439426204213726875080009396007324627334678712781093163564620794574377968639165764991795812037288655079560693570603354458717047983761792770920021734894164442519078911413421285602996679435378995824900085772739534893410622343702296458761929099986778103357719254914456465077693579133361182515546992644554297412791340716992170508627885440697395641077028727065551981944947811594874600247062370877084739018770136670067870207071405071205580699878203857760200879241619892916317075796041664680073586815310518115240377811296389683299717558399645268862582612021747135847423434357119095653445284804497867000689678771561434861733934492227211399206134402539644342612215695380069553266225687751598834094709778094358267367919844311774389110885507625891523565282555465896560043595893502557195760823227746164272431463073560783636800361659078021518643027811766779861806202320489581708783285848010136672688676437547279297853080201303744769520963811934454285323303584052415722725360472935128890799978167356594308918059874455450495193430759936420082930658797428399771272365122330626954502797806097740399867949515181682457733244697427132917747522764768224049436878696979605555350512897513662740777801500658785553639667289027119156349395831631796172560180024732975939267915932307270733199515233500119734573087901228412143397686097618876229066736484595029053109798381789461503141636156461037720629792317399263223536655068508842437820564993917142682840942663770296705033057936119463011896051260391178072144550405478128032874815380382075396950729307251456429487745687304492815499338201765179760811542723720649091186712669044218384864614792015403984074618604310500845024058355826663052667783422846813027224951510646801263918414222789870376588677104947271421928718428661196820681196210431743179939708024425929184482875404271738398850686174449658786664380360460627035917053840481583998020377594117696144938839754036380775958533057783354694577211675712179212993062109959003210261229730339011696820317329350404444323910398450548771908204672037572038531911411596539992298842089596675935009123593381604279581343787864796855824813493194072129082499820179076670888875893810315093484184024323873067570656656891216037088742686024042221445400196646831161945569280481245312566601309827879363611938480697122864712896006667088155173728539259155850572914889607515592168740299769284566079744587329979861564974162668488630286334447590239608631500219524147647157057464563060314522796170825583662431951396972044521043153117937265456557566711294523943666782109490706204152028901820350774346761175406554723170989070755845459350538299938460272118705702980262867982366375990404585610063240610931503275873369980298364114660060333609513539681890509093827120003649474596614434432350662870922873448969452786259115127809594890436361254363984449732543989201313145904755173927079905176151788269799134461173835561265298707705143665151472657026856598746602382997607198720056650195760694375714646842272318467799786437772470233781825665354357517578885265565395939058488774586249580164623472334342882035318646180720133557410722713437556190043976346925814787183767766010149424985256870945450340688571272606608359102863132234347656467742901307694999796457962066602676705728092773219739282572039709696630701532467874979624672282592442006578474347088663186865921314392178110002701628287595552204973045869470840617050174657575336058539938865274981501761117695738435034710705135233734462803154497685115495391759119329140465388169715745856250864099144990833852859044130392552408360401801942198371053458633793857041636824175080698015226498641629763804613162275055240559220870856119455645812375352339541134962555548133378809599572698248442304167962248770537811042524090742549839954661552554035196990604615791570791230885468170346950972964272623955013108874088100018593794983806408800026181227313839745761078619366575373321682904402525305786906473663875963900427940809693963416834395206519363892833488538286532804697909119200863251266090656399956248731886047350190595645866443624022883578966956766421539067945554190710059770138669250933378876663494404962624827636386273023956583549256081388316006302104184663223830221798688221410030783189060000219384171359066173084520784858935301238864425444450145971490753999308356680208955110507313165262555752624741530599150426067305124674977603172634879081011748567636471118359054328395074158341728641587831687416045274314663354590308100087136764568346661660938892402100640594721580485434807375924034539719756543236289061296283753678718673070012838309264686263130986507000600403048635656175529855020355856912414430964265628857039805311902675258592703043549369783966463387635287669449526655878742239783039733820044366029238290631558665172933619368882629895195256498151320214714864410722576993096276511787260474510755831957357892422659969895922133421792947447223139733654531485526798735979111414258517156538408484374994308913847973442981764276853049728355708284455612554223571335230959872646770511658209270997907199495785702756000452882296832440347721629720201061497545307923185499755883699978579356123400781952203715386749937427448286427784154210042282523923049328651626716255391475171066772537524693204759950071821432708110601564652114249372282643889521313498280407393906916851970347204653833811482426154887651919437668499359760953973982050781389201812062420928868540742808533564300820026514890246003481822447081953493599222410832028582419638913657049121026594057166051395711821475137236284638420897617350803408263348988540232362383993353645323757016636314205263404196175589244755962100769091548596409053625720053464740271399164558697536181219534285155925993647199080865445031376437507332617809035163581920689203175515650657174749926306389928537913387828157174915455385816250815887645420792560355947211957618933180257519856046024659007780751464348696559033551967293062461058886547270312498131522462537350097365627874400283848832474346294892502992952363648141562687544348515266599442277425201477819261204519959634159227229478763853403465764074039713201516623587146903854014750388074843561871542740953342216333699355205530868972054070105828676190813799221857284551464773259979471886056541173543584640137820057298102259177887769628836328713192539176146456257530106423705755142079687436514800289941509447212269784678022591299353522260600271405649269983924754909406304843228772346391533939218795914200905459039466928836744103539184284645118495010928074438655411563601427229139710456917535536289312050485790346189801762860634784176963842380070283615407275081761349105002590547280167435609099976159894950714544506600553602715972135755345828432868909134251664969282883806151775085538921273779047219463319479066211406187270318162508498708711068166884846602190042027051641385437282189673557309259503729530122461304650289146219373930198186725440282035490027384808897793141806617560681103036862907433591900407072035197423572816749762039841718144636434478565664577745172470425122677546215092387900289535715389088563551627685076282114224691380245047093971840466586198187498495798966714678485685734361161866331487172495978253377665327498389806738351826572855304607557546536721575690063505287580865011817411170657167386615870160504674006619445059239171198392751304424550822302178810650690285629819782973979731091978719838905050044221863000714950177026145951967730283306823884861731600066621738011376831452034812075625269943444943645036964299999443505763623620973639882015827956810718327987943858346896169576341353673545736878771835134948845112356887725977972606896169402239684021253391984018931968279486714171610804554137010329456384346376184060855550946599189196176030522632960140728780024760782868492671593395433995220382573266553869726238219121532110968533676762439846186795429334206245747955356954266298892245178256242621542696082786269299624807528432190280644671739035538694231639194387305807302149724027503088287987597590091723436292162083538861835667144550484630675990044664325223390493794081854166093789364502394421129500762585452453721839268404554204918494270464626025446374848071609815877045508621406080337092634932114848621261053534105539402228873521656588358624039538572780220771821178202730165016460115065400244134462621133287036507450836108863074989982647123403350235278223830492435393742605123818278836612784281311147468615219576262311920878889740272025552670042178065516785040813866161240856951373337702824027182738226281877475493665128340315754568838776576991829707856184220314250123073016492153166596350556767912635285081387521323955503183067329178533468648752077944489898290703269393080979936254189402129608875503678863229912641365578314107847930769861125668169265195308367538836088446935792420068805997620221814730652263351281351764090681774388354487138333278972210529818308354776931170114700726505466693042208651698417690586209359958425310902056506733991805368150435794480743945233947642915008749694245916114265116244535516606094241641377882443084271523658045831270554875660603064647856037267610358061355346224313861635576465568135372052403414602594460346324597171261091109098218064264292820211602480973651093195895335681353292895925005371494704884285002983220550713484163714054809670101330985786624853541622355641114900304278613579569823363000984195535986107384688699239329003223083592433380423453419012425526804117248400465307657897112540812986782646954771616813514682300799616072718117948149802454446261701508144680779472381410409504110551909847572587610197826941353911218483654242239414523103107673157967505082707858787075084726794663621205226484158819433480267104877849689367229739984864761350676422896304557470318439275387812584484049548197781801090071761450398033904329501644360363273167726688819458450273339144204803072753412733618127762648597595955738593002477020166467774132411498166095466536696730762518447705281902126935471483407355033228357628109217069469407758190262414104804684009057639653587609238985424688904839008307498486393515806903750303957506606292440582081887234150674794527717272225879227453550802520326508965045967811831841301708047275476053715775721888163051762828601519108557669095071587563005734874214494584287135779112599444608504905285736416356358347928014760635975121232827694839856066436119314131762779485514751266326297249335428388970583652318224382659167875231905490874655838251675384822045648471858787334203054544730672599323170935165169445783429436660302277408995409010438410458743829404868566904706927814767695358692290014933006560017584244978926090168147530636382487443150517651833359138797529618262017762914620298188186807463262423574513842168311278221394376658119910504736111887093451874234991742098440838338977033364353001720614213013176866020199466021912253625011660168753670321630195049329533328277971072414947573472610681943732552246323108141003224778160081015210480284924747094400257682034475214785788934163125148454888240866122305026517403071231085193513939747650203232074259641466899178239740080236061475903293934939524371714433714196694098600210059945309396334848268620873433890970094857065170998789445355492821812118538340840143228840136027180829103508798215451732956911403422821897325900913414274280097090930993579800259398892126072771893860402053291009018950855473980837780487374240263913717347288230575459963050320172160994632774347885746429717402216993306027967476073221051483370873679317896196596529231142100530971302154912314887235480607788821096415415349152536816538192529553796408307739093183506572611470447904833682887756916813596377992785740489247243323164765643876597003015977828655008002965240148566509107750894572288331962888220118180819964475319939099327470087888531576582943326491138313032583560188122238833882237935855384827931505954028958937644235427395828702937643129270420540503380735651047801783307943765832404142175607322941741036678306215918316403272523891501975304541913130719432943106858766108776134367912068367293818246813941229199337166361059189170195814169337831250890792485805915729044692227618857808802376281063047174417727748928109342826364644013796437328956857308843249358504511152160670575750980635877943915793554929133118805020171443196047227922993295294329457957920162869958135163589904356047455312385282767473831977638811793665305795784772252412905522754685642026693899706482324060552309024808667921435824912846171461990108569510874087708150944330861992080020213668351735035045059648507476355455596433033765527105174393958522376683978267473223563885097167274239967041545763199133053526587394527978617039895805956963604385869209881291840356286559531998340450694746818593587036809453180517914941110337064221973553786067838549549127883793716341919889904143451595301687580035758009555868719962004219322015100310758786143981105042876690933206710064238442133441017815949028193630372614487700687913851888329810176411087337957119850321205424682812918829419604568689275542615960663076055430409508599484073752822963500145549606081449686637221174668528562280705011048680120206966896985150751293867827458307916641136228636940129698948078101883116253992883272695641965554667030325914599550257812989840994147885870477695197616836957203436050122847120507979718552305924092625334662885329373984043330927166119008522802608047723700481833042587681047600236980789261052067301213158177923074410495566205844740298412894309108978714086990556591961782716336450783171271055651873856324412960435853591252094707249025512155375124400127473685353713234821345516456274276498817189149127220301259259251289898845417172885472318601516659371288173266667882413147177810435301446525051510630453626567524832650545387847755190344588982157172642940135396106520537946893459028162084657887984052383326892963965692132757502518235251221115515970462878418044039202680328334853839592874294672498842628234597764974473442923206448296428954032928116380274545850728937720797600494560066253970271871485807085407434183203806843739846415993288882339031814018492130130975027884069877163136291590923656594450211143531712470713754695370557125532809826575036218355719119827887481304671240009714223297928412104935231913064036011990729691596773913168356521791745612736003310329630553488711301070956943684438567700891539683569804446619192688171142441901766462846819218516481613059219988338777458256099420184823308307702295062608551517233659374960252631115925349779732522067530081664602663068909847081778886658653045632170905462485129968064667019593241863529657559933914333031663490481387326912251791183440198433618438484500031271254166972636652713780606613166358477184195719141083512021926616719329391522670530869522538769159456728533364099917310884389134522413355588863520229044509248153305579500238331241563818481066143771198197108722311848615585413168291244967673848695116601689886317399765407719361304113930993554728432883698180397352348825989625965759800836994428233503840537278546452357255100751404367732210412355201478186258697533240038862093612116455835591303874963209354084969312669844455850443028902217096837111215980493013905569154219107737765787154907180404366919144667403934009698423337881164382973875694829867715421997599234324060942752457546483271611437075927325405439374890458990979195706232449349111562045250793987465615063643482440287060930345575253494366985965665266892931724923607296977021740024662972717131565450240313340899577863064497149772208155999158079645574253654982126195186252000039466722481631285234390731491760681101629322612998773567779446122809611616806433203925477226863184726354151801614118282951223152300584336649085960378302780284786131521254109657571867932227651110426559982846672452570289873065334522067437509675437266114611827498806657250698830207458689327504310949812978679877598780139191156496594236256510726201404862878477051362453668452756350012041004540104745938296648793817514823182372715384188266186531860352141429848516601004992562400431878781668671170367771065423901628518839496314749877191196055754148941985560818507418110643563877086423289548566882241672438204939392350366521535612248613792481808983186371856223521710007113493072071034829203510475039242754776006779383824521972304001390530554697351325733841754846206923201059760584853371641990393207200578887989846921879944527277354971068163533052212998789711286754037706642141352400295346414050038520442114271396044556468111617747081378924239675397119950272228592165069862770801333144459658422363169097846267688546014657736488560538183438165161726681139028762242760516189622967991281162960018398006474547910155622192269218745122884477181365618102661615387257181716468587449923012688548861809775482386325467875902811326155723644972346446892036358697762069896538527355348586054815058752246463790840749029858446930320165858039094242508068206700601402524343221424342828052927180790446399855656941857683455206054867386582129075803447481530266431138475656252517766038881575734034356421629422835962791451540054499894369410285102630544539934768922165336543180709263591597600922284660903148790484177028410111763411581338316357844725569542375972223403424216690051279030560538058600801671733790709723580877959795677171323903013536909531050051564663214732241230645813324090332356738435851783478551233088652280151800755079123387217194852243437015668590169517435172982601986832037700198904060401579080919427890822944270425404408808676057755391752887721835611059076537314297794554366555856170909064881244303185628022003490905487298109020495830678455830750236478378312247359610714873232825998178557671404100066270844878335605743081957715932122326326206796120443577141079276229074802549671968646940472359819320838930142766419854095832275179246758138615201735887938832137368936411291486525349608721303436010686993004381132225699255682893919515513824207012215163096303697060998045199157441982483600597088720793106812627144097320495747120625791667330713062461377452744457571023366078445332853609195584340495086346756418434778113468033933304545497022026719809774439096640266349500326559951837988307816734300839361727689559588671973236610173081740927601837892090034892292248896695925860376125518837547845829021996304545998455911468358875279584969080913690793388922873875361023444879986628533101227081117538461062173137477379468714241059397000263614589075042163401578390773555727652197607888375358360057943476848283530432524039354355162842587260767682068279917266023009580197166133270692664601979155724555796593669954453337159615021674648138456210182433876243459952838538981717942409050790369623102070905375847171589243730143291110517248592030376925879133837809845617864895408700560998872817943890100952647996063663311014410745609745247298902377458216865503467844685785794188588555932767952290147610708294259660997173754974290902009645291070322861457206852532601169273884570162938050863291158836842253815852492032538102513583069134889126823122970456367466569087009296412840051032019393403457402103738617315489965276480438149088240908889628747872953549319715527083941032138730346778757807352620500626590380888915621810488538255638218019088935085364045037572881750649745749828644886570021341749093191652312481789976434780518649899876502654058427899722761587351205530919248954100378362529909435307314552778564650019131075055586081538970864061754281373583011619513856602833974481388846996132947762831723879594820783506190669760853958115601773735275726689670918788957067959409075453261778294426062267454489549308790263585230227457292309163430128138999500185224943644046001637282861787683756084384614561790140611447347485593312028345536371299167613925276701197842034361955087482327052574465190891985848704654406787443326304239119703758283859838946197793831967578184408202513595546801804264642342493355917080064280827038521850154713590074446612304265461021561386215321551515671190350003537164471845049246732404470624010363720864479735180448531233633578166450257963451186218957981766158064704458789715103164371057331664412484932752340275894775013185872712129350912538896617093498364696206814434947176641609477031032224369191095724810186198669573394567555454642588340636267095822336297196299196973357609909771811928566413144614233371002714674572228364483955418155987167900671876643454707690834439504151026301721175555264722711791923661343614094361804712686435980161892314883353331368420893231770610421681700941272439685072793149220238462952504535492528316301104073679445231530452265172627982810200326870687928978938417521271180674882357210871339483363919318850880607187370299219414586753767087094385081443384888617909862401248275460175249584636756253559231139283076612963845972110522536671573388917605424214326127982320587864290682908138070604645299931552926319329957307123053370235385622353729567957481298589935553850059002050684918802078154201068870686220145001347446870029307998271422709529031266979653097938852523198838468735233208237954255547312528991564792795503645912593596925240637742165159175229453417561204270207164428586126485994318678646254568541031902152007994588628095555619654495899774166137327551890532514455661260589260789809541621213951706335573694903364166404601499565576245429521180582549784651949359567925154500042949369425376191925659521608726683122466410345962460518964994077003169946871796605439004239131698149021431160212714220311025131876793555103995906477915406129479908193853668150645879594524149948098922039489401719719545900034782837271892430603226853565405274195524714965750427930034361467227425854079935987839601979473064183371671607426103314383846014196860758408951763129675753648253939760232591734316258850013978352800858941228387844075485631076776464223714468117834184112458245753939197609340849590881689057687911683935712308335629485189309651105149138175469331435885363929409228460841814385715685950280610099915884925793342193616189203953697595618771299733342320810257295593377979695855398280114222452153593142923210967472865129922939458393568649893358852352107219822753319440065025195739886405811711256327312344471097613053337020106634125054535902339317749754206713804923466057171603263571091068554689400549077201708242624528161835402110448022876303809134291998431432713419683808675897115126329376804008895508910296588877107862515211886145615315744816440974917866196834459229454957380915611857675563561790918379987525339340590988054704128788961286202211782147801550448809433854211524766025579489963501501612479720915033235351534788874487633629333857162274047725764412823981672269944715287466680681381622787309811857565469604091800634463785521423263892300098149338514402965638669318691996537497542518946333869895735011599719753387375773734938152339543129104977876103569120604291256857935433222759116702297558198878590555663137497940945947286558530648467779820155054786449738519331971850487401571162337644248363511305181408937886481905594918344089283752902736461096895604962325483947098210073736621980327987425077996021675305314468232379596626959891801245541814226799345314404465469318733112183375109742091939524191926745353646574448335650366055631905420603750498727066632814123038415560067741022756332421004601494628010427179238687003027588253129563757496348649847082474857129941508926494613892900776286367461552432614457071991080188021353737249662780570586245491615614565367272217647265667180343122159299796289366928457898262185741197247868542068767080933751756614124817337489058739705334652087383587553216997783855458628611892716691497698179051739343307760455601960230969988675510489139624319960139781030930560444187962964012399554214696657112579923470610766295494449780610728710781491918794645670904500552100735709648374008292466285104493972717945629299123372752206705019931111098124481549773020311021443101714542024245809078931103153443438489042684030758777748414337205541724364754544047658975686161685527514799089725878081001397063652333663185988597033837482792449964489861420570355544118619193940089413435997225066303727172241765915516882333329353067029328833182803245949919572009871651287127640909656977562432536794876298393439910663360518774796620489474999755785875656968581986042000571297875053416415564573731454963025621893389871032323323218879366915124560081515069195552736723404612224169318972185659583894883607167393968751630705124428227708458363785669112332756435270537949431808046163499985665747648116600011211096895061516413942141624983056923146889206346611184857075784807316827685095528360335042996833274591943227896548140403526187133627196842259689470080373782896386479486284580318427872554774803802365169581320068635295758537948443379148467909760754963566904632778951076091737101370783991232030421440351536678498706515140516889796222846390450772753729288163964914784118785876865302443167540616011046542242378842056546231743520307895736284929628086372461189914810387761651242503273864821762283645781417326896014028996503362422479287976282891697673684030467757765474500493280056044519152694548435152380456732606182578676905547197623915214338904851056944847881096328167848169205663794570814865686227689587750387341798397990795524414764522697808979992549167189329367158052376827069166583688548712919260730203628352915956371904044223666772036015614902428560920008521899092499520829419656973974713723311474901940095169528429925203679990838978412327696553159095172680244154528873271345587176800652240632328605742837935397316636382514516971035593370739315446844334905395371720023140859406977285471108183857209617433869114584679074806615985906390212311713673780881576353988775665548697581849982213152242582395707939071541812429395829185553593714574626209731810377739522726179338463383014632761010984802749394458927478694039996661111477208676856180144688539044160118748477683501004489755500965409000829315677477664236915967910516937640206826043378404545695726766207040399673854227529078607812499535592630189754638883258946709511178410065135974021606943763448906993081772085181948661998142336548477437462274747349567105159410476319312950810629224877799235570858487451632874152326436694407555419567916345232314531522249843633083099299603629886390044993777175496943931091938867722740428313922341532297412711864873662760650593054055038132574234378856757970018139622697057982254677667395352674869578526463757289534282147696285286221714372119912014903342603594202572694934141155499694672704558559250396070586210253773085448984251416188460127798733576115197926548852826112616875577098844115253454308400453262728000600615277936345922744442390000548998912017733574473302494688959364204529069900746830611543997850864929230522131487979696942736902952023540895411337294326918114634498492655630365147404209587020497044799133147384890757947268847640720513568635470544792355407812727276905444027819642361645755727212389589513816294522773735893954901999176182734153809091739102087346154495587758685777095733146283302319140448857681916648083118134078729587903712074240703534769865892674136261138489113962888789048908792173155971265767814777131153730099035215153582503821306071689010727598553492038901651117200999103924741446812254125259556653420132363669360410382461485895257560023406209826426296677929624744835195532586602001055377480105506377407275193798251825038494611635961575083517646256472047967809267646987079741180723982369917639793178577687429940038207325660250169205671582468731857047659132732082568592675153079795330316583592911579074383431820275068740371525120610428154280596505194344597439528033804068990979241164475549977287872645270312265980851515220802503141860346663615236896135521067776082949674644567531319591822264361128812688146778535493916096522653515478087602704777022271281532814090155296184841996626971540962257236153810752998316819183579638892059517172142564042969270586165398099938692815448906799939529946795610442212815914679642100265525620336140093319329657668978436159879602677656106591989824866175032433736552539209354698671790735495960610328673657772796828380427354774177699287643126765915706768926180885309078360652203908181841251753211253271044593172055199134122963223402511504694805315552776606330288278366063095844319067287504807070262920218236447644582946378659548212830928254729009119654655287378284802992656937450731555633061423530733404854949768991334980568986055211989076246929332742810037119107991258085997192460783801464153164011758130751962297659892890313576253693428429331324409272421817010104028844378078842989576134952091850276337869375138150499883209957043840314858258189505134536923591599365138649714484510277102812453665452201164556210056076426866978225247251227079479495546412997821819300531389107800256095270016598480480206362116059235780027305957123258097422629933431692383515001071696231481501034057731017222180873697721286385841324141944158661064887428229079216843193291161897656653001438702613799850496913681453145300236800966538175889200111622016491749402766388298779637036715208935524888344943077009693723677646345582212830023539510473551797601634216744490619390018183293011158141779569089846438060751089641954350078898186373673517762275680272438310058928187878266944876811316506321917718687209948423947548599511949859001148670755970155008613579513146900754194757243411612621716549585292292957578663422850319036525611542166657506630431426659620040972113414988250315636111828403621251775299189165537297664285197494691707309294788209817187919591824995353400055406253007165645397906579800819414241504225723270800835952650163043949303185134442116096609211051358938178848962200770006218749392755003919476521698773300915416383349143867187560791700991125082147593323880264076992795036051580706051299176623668137235973028661636442180570046097044768721846806321805244575955196562830322071058790657881828675288963871917692916666493604301092659869247069878176225729797572778284120812434339496165069250990476496869369246956237737785618866672598153697840507763826980835997857496424213811153726983471842158171019378588753070752083183095741201552485839602704218735193356508976615361285092063919170685418953457716725703846440774963859651194615069586493707465723792360563430467914390169989129780402674790545472671119679949744424222303561315165027668979305642821855924491313886089490435994452391694317848666916876488771708775480807173982520056179631691550695955549622078348054035887155824755159221460125855221628252777992397883563721264691677104476114199802756725615282383769315210580112238459122792475591816449873814842447714242713620969575673540994603206038264457356867941992330077276001573382493860026912000409288512133341173351633571388409858574832875859881361925412266122084004394539756422061158701883875360715619406858545801751096766671111452165385745599575099655679317500212481100903715815415215594853523571868994563201054743352286774658999064061458981540542905177181969568497392412795561460798644239063744481574705484656494394948378919518450233960941793319502460598701054556583214232985484688138323930842302863363769704035749153359128795647448582830684126753144215654398605926234764279418653765205169481330283712034395707757487128237985640723850287974512908438213588286589588475821089079759810200238632128586865052321975133745217753176813140241865700532746688131139304434228274326922814816545513974937143425508919669637597815356631728654198033204860063010534251289458134501220176934388623667876769625207838522595476871150288334733497937313632491281584301899361062319821328188733374699989445181706774500377116751315285444377682606045448155953402094666095182674697478248388595073516561246066114013014463421537597596362748307755606312025765302282477522823919146145810452545843741959988715538690494145965864723373186178548336601515026030652387432678854859436525105581479055259680494070311133916538044557835607142074867915329033939804290649814138974173217907620273127769371770943448626812048317704970754274913378050083233712986598428008961205939236381254272074147690561762501770992448584146502782329026932580193854710486102938283453261924105629277670316342751576716723351469380798412363781022381832600436964244004201698484608046519815821805421883694698231579663353521722843105508876490783158477502061778533822514497317683069048085578613547004440220246370023533466086980696222544295073846119471592595426797154304396862274944481154590463857347193956635266369889812306876246534716013601400250283352623149206026544422962463725254897308901037158050372316231488646691067125550049993771667684649557592627211110112241008722973425391419106567677400490782648058479547267817456457996770633548092221008765835359949827339600396118803512581101567330954074046381837429265118108261081001595392072566259318875138464402307766865297316291545542060532636974433635357282884295427099494672045968605081418857382572513128776314077378785362329811362911521552000554074901179494451902336717539856343632388093733693692289115535192509679845758598404612659661176473176755706828253514102138666516355165776579264510076858904586247264301345775628901556865366190495710836115439792385487707727630889769167295520064739439455340442634710367665228985343990765844283128422433337532060983101707451080644713532574122949751600977255228668775349237653717040369977126101512200517359942862747827101513680346635286834717386409990542436154786973174009331410628955682043646003036570298133869984350884664261676003084538099392516651829507582875788539004197494420371813893640906065379306140101410906573624164897415872696899044155043351244915732477253639861605706598221913834864325054900846632388958975755277729450555288396926831517554312938790620839753088131138682405311732886105705019530384726344238965542618346036819785484283209465561945536939980237305127977543683349581242163847415389090913485896070713355866848172288090792519369966723448848141827016707542489855118572383516308320590924681655218584296938969825704441015923580986688298470584571265732097612640027727178514825677581497322199138820144783444574114833546073747076825619526397637408462775957977810906553263999598406194759944657380410438278863047114895302494940659763183747626629276736325130329648058997206136730738887355583564223812581333971841047047331679937720125485637146475282468756557542809585047355554945029406761510331451986382419848928304626566573481775587435848128095620614423209266042734503943721259054795738901585503903559565541108467346756211188682787446562404945227432124563596844077640103188454336379588331573720983320752884372879779948014467308892873286589628525814259862465437071253373035201714965205847295911512002003361400905692264333264416573500653905666510557010241502036916525256868996699631948995588170529288154987329299185164562410462518311859739538253973120351601747567085381976016751496441119303047615496012960681480066513305349509155091454863412943602012047439683093424114482656395573384549253556893867726514024699297152034370606060267604955594311911758882295458348840522021594426448565898139534694639145613414607618868492582216584565119903544434068679318362245220620420033262649920460679515795543928130981267888185962963071275275401895238809525520956003280172648399259950645389367858743819069204139267886556018658016064678133682887461874953989152699635627918693713078052801910268539468295961817379113761793625449960563105271872785201767554244227704395742651562755708378798856815477937390212941313170681847367623854146858311147022681501491606616396161522406651379094877170161892170380870621756613132265750243144870583116039490096802866626695313412429794367575212993224791589691454145035414821621544127346053815803560637811648544738910489545487771930211955044731304535471373796726991180097502481216205340508855422293697114452067017604966656324091636377611458987333235127445086851146998968773161511410035638241803056494494646038919623381128473663134692864348740276097591553051360998468588520246929926353734626493041429915462633239275095259213631393932161898945154485701856499591821328529257471695126622819298590842101542690759118082145572240576255709235497696096953939283051803645455985162263846614606635900851196056119414189692619131571502030376030683195203300779793520553719267723869712075134801819733551225386478500182932045107591052030442745304475059256151528775925228382970655442992416266102805495276834181076809622929389077255046427755226935612787218365683558491212309020217057615603540273125576904155236305414952262253954829076263163313297909797502227646760031054069483348978098371078916436216417693985107429609536337027779414005222480326226383567781770287502904612610483962445500056565639108036683321557188231059522419839222253535277262564539364014453070500683149856485439327386737378440816161312565176276005256129199516033125663449091237578799461177174609408988353852818593800201106826825336640994814263578885237714502281774048511144997102916706761009668211547104091914617644492654158945361237145605894664429290679262778225689173183284486396528524192308921727260869697203627707677645571655367781085458697028242328743600108566511443136060657394618607306650466699013446125394065087621907173422513899190907234988672910518230954826456035635879310450895199596597343963692981652056614485590201836062592829281965873294236695279392138443956298643564263517572629632987905845866546240096720867923235799191715340847525030745696485226522662799261145183342983400386420046895954073304341240267685445333508792234373635631496098339152782886517299518110206861969116608796683685590467162932240340455177710844945378881534171255306619816115648643619587894409662231086396500275889964148343550178437297381429840573370315403894273032273418713946560709295072129535082138817876456807771266885002003807684211198364641500536247287382978743007841582394425570653985597391535627654670705749331462039961292066312683839607145174357130104088369578022988423397746161286971146802477470349037330988694660043979352473870533626212998614909561948846026987453755090253480917199165470595977531678300988808890208911229573211110410091881863502744668815157197157744581689774062969785789547184938358344630062881729651490797980696872966490280261084990876960243687932770755371083252361613386224269987130932908779336723160921902196484894020475305607498866713032285087230023146220187844009701633595391821962680962322136788830460881714534832321541920664301508485496284411775468398649079084430897287262718252577653684875184831243227279553734474006731027063986582375384775138178813810205767233227283874952554941620960499788888624828700060612949003930408788242959736017568076577098436957156497038879838305473467998682045675984740937029757235456604860731961784945010032286614722352955717756743115851787837877208062163904458477305054557966812096096307097117371656918924779468083582111511617904903694950861949718226059706038293317164581113581309751431944223911872922573994312113238036769757031398419952691987583038708858190377830746730125998232673051371796905532925896062022299832253138748853720409130468768769442736263791317755530026293435950170218467901417570710744079020026923502523505166030484402513114191302560842338472908403391024866773189977632481165057699481238209735501474475418219879355006342012238934643354324929320777862737302350456814084091060599725599710613227021861107583095449455890125937663035040593831853477139225381246779003283585224554264067472725618386213867253398325093133855830299045176764146070629139688498974332169771595077322647493322015204680493641956256190540937303654481389720063992719338666607929304728450058329422689433396712242706189012736255512028560275617786330306993673566787333481730051030737212323524822269050707503003572610714834351248380574052871307145346546694941021778442430478811577266079456752894038371274012210644758469364535830941483856324694633289362073861303542440551497254884445631308013988323266588574084818114814336353943702759790257321334487839405898537584984573063637634599781283066062504115356246090246728326082114237421532448306892404905630117973641496051300295458354974288454035529239574128647874363074312349256317337334575031551925182378063771931445325274999168529102594578373407962284835139756841651460377891779659059973924511774444831411574991709549176363241238282125684319076787284177965747076891855131634224467507226219232635791428334891811053347260316299023798652028231860485060695196167808519235847232482167953387353170203125474204800775702729927447051597910045843168309064376084779669317242924412790689589001163808221472795474788456151200008544180329414860836077871640155028314205674127794742040562055852198309860910463981240309797861522169026373448408682611539517879429061351253457457083194572132724075323977987847001155064886992123033712383753431384572651718471577174573245039492175997024106053742715098210700122389017235936378307343506699764813898731519771237869155407686280979149849247874527809314663631929007112675951402075152381026758933388933770427596949188886688897291573287830355629703179526081636581593133245354795813314033062688095938766096397967859433760597645846635343633511980744637592545416339238335520872265946200420723802745577526854084108940133309996814120396036322251223466005785117612127192317939768869007421054908783391247955773812481618133000362485379253953034386177697524766258143517116181260345187472059668696775823319943914871022425853543890794541440110346831736820581173628698076118012451487576436795935213873383346569679405050322064227066106896895873807423197445229434804706975024347202079323125729349549695502884109915387733872069785818522075806459008439375070036253940194963020454983366555349855821908853257663933438077509302354758754893813711658112566972623414137662735657603074951922965525395540457925245232796459239137782851557790679635516917404937459835796595610105892460298483775153138668554130609052496569016003090812723625063250710844086381854661372027943732935107613038183585428152092127848616756247663635819479787914145427802697582730744954765868424858723213281834927667821489869213455172359889480265880058267956630924348805869083868315676471947906711805629542298088360078714770291444644464461851206677103622142014261859685805323449039561489377774226291313311740059125349300485079489985639639197825412160688855097141908316701108222728705835304165873564518612851352685572022327542221741927400292899694471907906712705957115235184110678105046091559852239143031802895819907167187953712375167268338843162620080264323576674702316092871312604086385044106362248252113799480577546972918942430332592914653992301643973738120667099042717291062169613166118263459342629544221422143074571870360780618313959335940581076960593923940950935106374912757933393303918636318622465963761760839166016999174197247284887108590342894482334749850193576352626656142119166034433201723452540105956653760232306821993076237017148208173211969689144764824659574697810705239075849215265023839477319850031834444397589093188854833596433346987194478415575334374805383443669797114520729462783977456120766296931634632313026022919901555350586563937057760096331685521373520223236251960002972588603169311528792353404511772866711077384889460001703005996847457288316175245040685107934747190064512013954345131971659096279215055623244799556873038072789464330586493796079775093313061031062820701397030990378703806355271458646796859191300874093693162152813827015428992688653299712135727873587116790488714256191618434775184539252319754846947611028470859447206712932121991322354996899650399694864117689855665170841108969418751637764335860321212686195470749714360715259000781534043054549883279172356042632149658392002020273583654829900271967051377463665931027609484444722547515862219643655604355350889968677483659626630461516975271586789288955727888563487386939345852449490014597653751868475689728844504065877973159229034293972696282958112407679406254717106928252763824480287345832931122680437780461063215026173723193863831200206581572452096773508580413729056356969279708024661011284117740911418341990964091723327702822021870147143754552544840503165933226347179469056632319180809877877011913045330080819349229244316762510140218567842069421587420458675190961821398271251298916833503209993768508461180174642657206973860467551259803898420156236930812439198007321520084020008934480234470861110067330143582408333514700277169153698988269371930367641893911414845316404408784977483907084121656031256792184729938312356623265359790516564104049701188876077901080884891335826738988010555979141488810649147600740284976925472042962651381544143384066025086598270523682920553161380867664905110649460464456945334724076157452329364884624444020283529550230519818088423879693125257881299011009299070369942430608279550626669682061612080564948871053073096285981751286993213210566135134263668286856424668802391691405580173128121636867857270734353479092012764373709087380642146466789571981865726542617382301531434897880313326894363636368745567177095178710624035648042105466836605094586464102100397850953500196204555959179450721888559963828073354725319947957105782245279191748707643116240108696251736571097436086068980700111137612061658614805190366139181122886769275805662158508161839861620353851566743235523629313465220942006941443822211748836443229497040511151167670576155692136116098607218638602187418794260477900547652597251384400638037096379034059075301279964139042288226001424401694910343292498693708952759058267966501737001623387336236842233443045122813912731752971095814049742671518638088690908629378231397096374245177947180032606797550293393820142929957983588308598774288463878975987245716960430512482365585969306357726307684219132739969107960394940975760061903135055664083412989268940830367896347107811528586771359289167713732285883197262574042505047741054982781720692415128297297527286359493652709215379644431735518055362627962685106447330424421079687222005571237543940990644880751379630072847807356874620531536374560466501506108972025837163503093444333036189482691789222842515737678962206756886824662903384752117464942707382216367274116516228003233655005396072832941536600668330479095541493332842143229049340546581871997842483075662550856890824631915698230641879197860841082768782370771708486508734555406599086644120915758145198713888915308940138834319440846148024159361463013678303163900241880223134581334443766724573399789822542434400056402217291729646773434835630131052811825535099112583702145297030619717842260190906953690192634696586292852262176513130810814716233237013681045580568844789843056209174681923045786622773657862135014239183170979724181364251584807438293133509014145012633224031678655147427762913821511767676195640349812830095579420036804445871289002867391987128787839040071719798639408069864561503977930352552782072566033424461753186522036171502243627770348067873921271422627686665038308897736802293807667665770094763283297002126045497421039836508710347825940853609373425963153066521562969352508421312966227562169906495241799915535379748865349490771157362458888132943233820861966751614999721644554005829171808556923982784067335604715738926776767266374161417425164350240243097733879507218876796732707541536931011740346967859511862160484244329271526912395226830221913453346967706748112327467424074036550273665055356975889059067311216170552504884235954416080436299490730772729088775485235774515165748876092438364237979103060393662817128367673803285578810489755252907877968862189173741167548173613873183202617050154544020926211700313057481527533838764874435495058386112046174747644848880129137708556009358953441534778967976530358245455212576606976130076751070698501976701144666263364511729775370077815640752061222920018210646381810806575103746888154991812743704336061400450520906110821747247244200797681651806768644180851087424176165848146204094126692556899757742051745562963814308884250359287672030893083287806538094871985543946434649045465030206854772489318047549710616362608503974417698327329650710555325265611449546702157112543747999575121966091591992299169825324120143325335825500203678127290655930004357088986725327525768467641941224733917899088989069986280250972614243258615564297793080882328588879716336685856642459722376823892917652364896446348654318297546427977760062622898008806844250235833867243381704218196619724744974710939208395651401608721013886261030316437587670642690257499612006622049684456171156267138285987197548673436825483014837375425787323434198839026657004136475789894354606166320687359460101955819165468934004355069652158790987031639557347227023712928279457010509309696471795735859825407346181784529190271270979662276322820401951057794953898066220322751747716363804054890687551132734457913913281919339953098015462060571105844731918544099120163766645007542480346409379068105717083122299903793135388229105733573974772892239373795422754037811399409604729202352618855807555577279233307575244392397831738070913048494202694299756903913110662922157633208929922328669370384623694891250254016765401545192240013246031703342644269530520672528150519286541667397827292688148331994293995978154154978559894135327285028924681050666797469386365757560764295028432098882196114586358964799667201200328577164121074839103585356720264649737511623423540632897506286766568607233289944053189631245242582456999062845528803003237226807394437108700326482979132335772802737955205799483495452976259591905948820995079477559768447614170119653620934737420750222530447579401044997996980282707461875665794071681424142101086141600430474826387495769913454807218269408343047265364141115210316269584089065522651605123461533553370782804922010751419050113242152931056075545172501542558535191994381768996143192916344894604627439473275508299385582143506139848021725573003102615361379695249080209353021324570083249472954230872164973297607784651005745423415815895473118099020185740040893019695032733160562066991117712922294993071908067960332325700592739252156205011133284134771901882301397506723376894760095574545827974137019981884212517438029890544356539258927588640900027508822875545599266236954718172998196449099493861697808965289188040543248654044763588057955934312125636568279851419929794438148386977174442582377806126237873644845478924807895354289740254991875922450012921710148908781036529696111246980708381513079702165401678745654663601997763437322130182122686765488834846752522746651328265852617602309536920643527377043093074705450447526126081127941709503677653791551252771636522825811443337296070824741457271489266204932040156954781112663575095039099020713534923059165321796337825381121287899594937422342580189566023003443384971739024285714918338286222229403995781268180347240564618888787074855141143054054511326134803898458458885038357549969052251539369986169303822486121377638427951961795487930528203907477086557549009164220131786221296284982907032672359609076265302788788227354450034495803264237432451288710597174094673538332789841464546182485951270018093925713604205696973980933456358044184972133619209769884641595280990774047703147245524212698941671249417705782334588676414069263494420698466407890192540419723430883410306768371734044040069197817101191686528566065366240850988044180780788064052749157962449696769621460167061421932537761122671326943831964896751004929294312581167751273465369437985979822918222992177550248257378497218069472840999978071833609291848198046345073076156419971587854218101981832387487923807481065007087307136755682835095959022865383928511302073648879343532793781417505446129578157990864097240700418768562895131353016394868280844573635285792096523865986259470490606120948613353194316022636175724766716347982540595625154968155695448567948444336326974056022960954280031025885479101446725571618982767564021551142701451953787764670090509622451336878413659589195985658592270360358484884738063178642159931215959174080301393628506299753376913407874613002440438368151870530137952449423046464738790287418713517326379289788994002964878831814764954468363141915373845489401029905736918860922503062112287479535176059319248937489755349513298669675902937893622567724458312772516509125710042694556230353355496749612742435595943632607834267266760792990258062558450432799052824590330776186600783373988648828578588813603810694253826017094377942370792654476605637709454610707446923576443344082368267721846254029730370030662773661025757290864595790376391475408832574479538684897619795552092002844175940964808390677005489344337992974717276135110514499276370657207056780997888673122105902128500855373734979864321873901398007566285380763473029099777369116015981743371056523828364076430014240214844305833400584889811772593988937296348276899728567079012937045135168111625207376644830637313048852348038934005426882123352974021920877725260515812009916682300835895830112208532619615971466119701685573077242749912295901043478822139777181822433590967114358693133637942635686776371109588147198974347349883054968956782777681434582925427286906844502542633911962255174083252139229591675361593181105942780742341368215240073050762170383510591559937275783316435681378337537196940642134645591028577100949042975462917031835120110483943703521630790747291776605084878010979245323513006448694581778641473198810303155234118013980616077085868712570517680799694080474918330990507411791978167607732244037533911238684612378555259121080049323816373271581986659471504164745947211970249848480015244918681533287722772274648835360994302043678813525725222555038197709994372655656763849100316506973090211727925744395960864465811162542819768018187827522522448683492524869442619329531039100622874251736558071109464413116537655564006045777175021535806775351404609991300864209673513789057394932574126238397178911506582929484902496190301015248212788453248885601513188531369992816582320948930953382574208197615526237075634619556950324804130423935257482436005316711429904451962879145964593447258488890428994824951928257583745017721708206252956691942299880120537897232974891324062658671281475239501151110859993073502166980991447926488685539453208016632960768034399595870320413299421486299356981345188580390467279348510502120797777855958673873742205841198273967474381306700059092472772784757541636136273900806489294312058263570672792130412233765496801447430747049203075567996494405890359665665382861712528305646379367225153217041094233737880929859731378418369770412889490156077702693604730295709857228556069454073308726211663317045929934313903582626841860023311547720266288355927680544993560948667298369084086492940658825967611681659453301972751273674260692472198119362090901806962970324358661178189532627184017763097315552982011408692121449227802127275004042905805652056769102542998268511270135016208059558898747604752107523490480018665031290372336518864181585804043898110062634328430200250295436018322194414851838504659551336651647686901995904593138516415675537910635851666106896239797597861808394921469252863174091270825860348751036277877685422231579552769818099617475601030430208645907914666408372125665102369781433432095796787594040007215910774746631688890508935048883980946244842115476260769304882729524353048262504094736968414231161276925143825274888572895103340022236264390485086959861391277238184119148759052689955407081905773911730166358532409516828049360098714891878340430777502288499470193498052567240938960727327664956696066064320122921208332843340246882826072889681899714602294374932183301732351702517933433544595558508782588431263670926741924147447064926133834872798445609107764333685316436954339797580464402278067077607386505128867509287878259442436605946234293930495602806223440910547676029799995909190421284053763735590108502153227901260571188212687255057440204699310013258226732223895688478644007128750951237109719548527742432736936653962974539288721559083096727048455269500084366739833205797473236448892680522161068917892912782671854845111513868366128508864717230633168084678341175653691598061078300326272986563457251131068580995128498946838548077652523294986043209877835800584731599188378847699632237240633389629519975262892327578998289806402181870449037608462484705384150551035303033009812825570533692306907671146453559267456764453751718223902877399455270594302441114306232050016459618477166743484779835301250903753915272874808446679975654181208797515569836635068348126762797919811690300556945875440948371240700375473891539933691506894634476687373750930713157221329763096252338526989741134225240681806554370123843029065621598726891130092860250758527623756960622701479844882380862271240108718014644306167889322377647925478482200414853954290990046791449312048825193715736107097795930920752582646682620248870875342308462761937609355928802188782775934283566508791756967446259352179297447172733433892980041966016831832403486704504961495236733950887357303300168629488259696041022659222927875816911247902745567133855399348870697727941350794379758065453745893786407526057187794707899279989488219474992736635010522547138181801595462994495653907972341022478135388454203342804771856462582106582538938781408227360544303750875845904651772517901887443587356047986245930305820522860172175069818201163180051938627520518492421492802362716305481092964759140462773565564427179487206384424184902746873907927566016599343179965064123667335001501093362864536475369872011300602053882526511432812213534284305967727311074511631349017144833909224702130610043440371716137516398817217121506994514159302234071093725609201141603567421153688894468784439739980373878663072009399505701216800330098578518879812695450106892412791360860215762416686793597797811554640115184954293161592812186625812081271765319019339949723389285295015545015433817284752562261579335854524577462214312500689615576137315806867620333123817591493947330649063980943805323674515591272919688029209837416484286921076045496775634144559586056431144494678048881274719233987271502414544283929195717370523865563171732831924657445289611484742642759570001302692521287176851489151953056250823719255872817605178845086219619710965287026067712543116628498773556984289465424712861694608194729281062720768288236571189483850824980669642921649339378609394943538428357303988303543154889982623041541795941408047036804430540143046554477363042337281233897342720993590796079731325940604509960318862670640223715880360858600380642578925497733114325063987007238862588042557653678264956009585100754387735490216605293041878790734599930717740133230270700470091844962278174598446628426291814570467613374273301448896008828891135886376306608537548985650505927770513375020499312075547530038097709062622689156559857844219864480002652298306050376375649120278823336859921389746391721198581485602805261818653451185997532606867821857890344080772202136543420758394537938663968181778656784179280989739938988325088024636932299240516165260341502402634485581990521196471684494684147942229086521452972099640720010752532314913383070295603943573924976078726640206805402347976918357421557448439602582928856692740313265956191878136228916174046340589124651760664867108132635551083521255972116029223812136143881912917196659091964866432626933846941656205063885910184926736391009289319466381798936587724303782033660998369503871555753101298875790520430270726676187722269483902224580720763616408982823370742453951264049160084652760387171435249408995588470061009968814469774665015260448492479237313029338613777792858397456716512850666488314163067375101002510401047916159011560509679559743395221263652814627972721139004832638111231481680751651581146197583195861787619622663636502995364657968358745425473846704362496046542923568407165919737215379649361047003695217088293980058701825235210938780409819102871623142467514633504915407386775529212252472405998349291437078857634432690836566573923637525000418366374246283635792286897916653714419600778734738973747899660633246557800158137900208577352799579967042959480531749715989017915170052838193041273716685438536361206933677923805584246834188124466687827270708670440643444275397131230117347610066375670114313765787923137357843955376936147671753229575077376636882222411453987240548084123143774907106619656834752261472852290157077442547774338614776173890019812750134188517882008505648515289443574665425923544956515843296951571136063710338410510753258751207938968684473685170522319238493602917434271152015902495549788593552189497598703318412857886232154028466576139718960888559405621089134222774083113157708919488420868999901224008112758427332649430530076878724818061163047131688352423666867026340403559246866533898451585061017764185422992015864644797312490726699458683593480983204676858549278179792151602303648002147047679864559037414190733815332292173708744294830327480301591120392715123157514778615785374359646175166174095326388416592598522761383851724575519102346324241014836542392019803569379037397508567013953776320006267440969352992624251574315820856842022027487825169881210489518326671554882508273723015795166123432591522590499164080528308216855914770088990753214428616624819379717427312036487057652094607345085216077077573281356721883864736539573650401694028050462348844465594907766204600661857734008915474224321632636199219777943031020777271901661898626828055368682774545800951285413155812645324202864056052944126508796916769420644531841196374385152429660002544007407002378118340975788350419553277942792280872810989299374309316890787502128877655841235609580924298798431343795375971910124270211538606382858095258402835185062755057683826426681857153951740509010151546754434952102678024285485394229817990020322691682641069815497987597826295680584650818398760654871827104481486139243988595418983458658945202278450304647843883950053784812041446798507082766534917369422508490029758957369625997328268767597703861468107835692534932466300851967634038897147032594972416207857782787809543449739032372729738353647397761056482291227449202764676929236678467853153012127849492901883646935769173076869416078806285545454188282628381541238503899286192139931971405805284481416828821806730649334867983008261709537482993740023445050378676353159656883414882100133813890571341457505614686448902992288077347670568257395704976769024237813867373808492490753318965120090463513335730786884619277465314692917930587294673747698255696573348875829287080398962524586092224396574925864484924490258609260459144679872424888772033746200945011234474934334963345407469619397750286692559928446085604030912364931973730426854320634457814922046839093040893764849075501328717502051393904207884395889611448123598171841290874419228091658257174666005042327164909943915720379243832737900620963128279704379686301624981928660135777500175402563548857560934715944437927808342426830033904627865226694600029934272149283638985493768384523112958478517115119846762125041137476868982910226489878637028320255137147364577474014463023375810354327612154909836551050843051956633302980708375722010025888681238728726050004893280968421211515458196446754875649655961362533496757171102664740259210716669396192891879919520431721001501503303517132160605782587828855195266649328889268438650423990421959189759623469399084759647164254445151575310643906417474775983584431559091886980836764639659829507151781221924155301956535786701309816127852155223306118809031557446911354812027283266072725189832032783390181243956925371477534746136738840606431244368163536024230584731429646581266074999752310463591075983451212458514476318274594975468350080381253413749653585239188367373658711187044851530445216948817374717839551541105360098619835628435095496363751336224806733383552303861394602215426656947456910567072704362091927428196094875694284295973899149423109175705509872374504338193456426286765876491547711170769679899809320626615625719333445633407885842380003358272761653791210513076077179226985700925675717700292835352635935000185487256035563481324231420374137835972403379338431436281957454595729009298722365431221154816481254790452725583198783751086010992960443924050478258000824800739145518979826131085781910431753349007861862305077981220198974577125716519721114570809494709174275829832043261659492869338933216277497388559767918850447021595238135158711935741584746721115123521544015151829974873679622678760111347255533729431243177289103601581119084623162014397901141413530661971356465296806265328133348514195090338755828471495660210241041520667854954545804530812618257844984686150069597309512012195711123285420915703322623692717552991021179287452152904622560667901120405048793074861034537364592739822391438048645902736955584365484195458815845299949872588214560424483997397639567733791882691524040432694417594129382379574688777352461563420370024405162969135721286190895439730730894402974040841224170093367687059926789994908812189252613594532133489076265332040131624781233663597513788629129421814451708319525941120342679534129920045266147748554730451514435441394286180026017249483441681760697382045000775501987230164352106736601307011436101776503325262727346028811394770687594155078125890497939114318061777400079535305921672315148826786417021733454589022947742840793363376539479771331114240898062987750350194789939347372885667322778647287865631026369521304606190107618819310127226285361694980697626991676540404680345054289953799995215790145926826904550601546862029148982865373345383968024701554703603373091949257685065013558933656988248324486176687810517083484119211395935183461586830248897180698887417006070300885918165745916498562674253718905209097931628386880339947372787160128016602009126952441582999090455820319804473267520949417397248851684709186047514416706736011011624395647906270839757032304584914039601589394718764004370162324903483551138589116368830064898574128300588655558831991228662802963856387766992398416594487115214413313476038029328392015150453358272183900427114955256528289659272734852921649038058459462361761534279710526835156388428127138981043302602164015979230676411701302829472371142720447573347877511984950750939597804368557578081422122575449476816653222842619045159583094002397774366581791890395716303851480813598115602931366806955043914434016093053996377754897599995169509001542810563778121199520697604025769807108206190554494288512365892143639319541673316323548488853853504868116679836543750540531091063835273261604106470847857736793507834624686854095292800468625559488361840915289858977135136060030015955411520362729088956394688065043453772346955820380659440743152088216331082124678912185610584428017194031136002068410846227792233356371295982924052731687631361031944107694772308694231201324132256749289745608751101302221155946912887625737442255508974930651468897960181307873041555922832466434005059512378595731927006979079259442144601315382057532561189373167523141645307313770155491635268513310107696464272163051199388984082223761609026541586302781531525681325087276342065384765529515060374543938147373631225477221086240327787228461768119270961739783579795722114867156958400665150012227913401213751478313443046912767523525849301147492380430718567313276231866198946198688481978889621906244965820449543389090912482196814896202171183121216883011730153445201167034719087968450483182142412074904403326072415178391286724946393817174653786645232456130718136251574057070201279988856091394143213022938841408598270362350548336699993630305624497562667648049105990992903299219183353093319334018989763624236966419321816678920013730744537643951335390362474806161838509884688099353158694835149012884560774433223134889177112573672139893305156825222692865228729479039331057513501981150533443841894978118262801972906751976942274931047316857955076273508338158953510358345655684447554046016012157698160247583288276427195569543018222870409901052284165573252292980329741323364771597880633794234726855402773160354501952348599941061152587371236904235059980325772305754041088304486972936519946602077523275720751409058044679994836704784301326757470447476007190621312963031128348165282350766568571067958378376661161104486136684052855824841607949416527390630480619196838337927397246869265886849106943617172046427851166062605798146521622628614889168547996350026293844833555347691663209412054648335301042675388250208618261508459794656452896444649167224960887247027233247183321975093187524674081469961488636558714417627930562640474197405082651151484088588953476977535987379166302640116196763476558138139290716909771566914798106651412122623943728712784799479236438077543012370660238566917257490775223152224995772346495588460029259764535563491366191864446503620132699628303234120066340923954180876415701153636233965178826167427381199451831740088355152953255981623119128075639213050316504973807796248604080048132966262325202129861600013797522113070481937743940865127914453281876082095188723481218253517852649640071117653279064462920715895280921767687634819165437452086551862817010051047921279246583323139533973661749658141223615631508850936859492979189724372008285177512726183183245870648361299477672236228914198774910630244312813265942936105369988353475195609246154904840673060434325073290317203403228291806580400249992459296581316442082072767824492282179164018521559425138316548706897884378156942506558459476051147347356734132357426149934505308797179858124706413158890969822958369702443118994847530978213944155192347632467065744150084926659950647803755437917339184719938886332498123515550065221798995802644037396867908711020749993991735917847078233734973511448590481516759111199453877067635816722563598529660982609622952233054421697641733780887711447891948317051076504645699659911041548632286750564618072117577631748562080847470680417547363030952760677661454347246654907861885486586576879161699908067747866562427613011648927941996128762589924121120628234827552902065956188933126733523185809537700325744151793587526800406623492266683478717832549616596908611217834957931614267654942405443047226916132955820763387637551636327926030230803777717018848951302877557214061961164964970253492752300604456394207442572886179375681778601684426744024736003653756075454168216542357020180293465102577410704257814264387465142053567034146432016351745192580971160923012481880239148736734553404327685579739296162123423286878580793228571808507654452561381566994036336631532520338941628413448663126838807222176181556848530003335706484604219774918313227378012788702150108622951782591137779433706012287007427104328503218764217807404993369200691837437039569135102865900532484411535410102496556315312879676892598496832181004832739463483581174149614861547527201209710043318907756372655352155096241272126768089798279433867625268051303333093810802251247789626120899359623781957901034816045267679572801565322068702233689669645534523864226583896966243152010323223781387898090185011673437611075339786985172509386364655952401068984034321637860916883716165975741456741306798887137555116841373834524726397621614987312767458505901113706802159063144824942692279016013826157188204381446655444321356700345417890465976049902183224262877321090255709080090315808781214262491057416335595152882083587195599922672005419601005835038738125236838776719185210843063593875587450350474987544397525554855254965464514514935074778738812737836344933538413946591910781802821550859242023825662991382192838255357079859686077886858360557551876801624545999583424353910668809882311388512782100334793370412157192737768934147790231566255996990410421436337345254726513213615067132549358337851921369894692014139013892090824624001588703519022526040489728944138878462477978913770017820885780747797637229202804286094847602000952132105412177219795110506453072602975824504526987903459047263652861800343739596690931014180855919900142940558558828093831572179119334602433351680281579811722628670136868792084935372235751194563598238034785873143041620646752162286696680302726026337766454433971335208488626095889776458585211950270985874620030308617841678188225552348729138215862253118343196818423944210837731535987123960406671163994001070571784042847681567109157360674524851169994808618195690196015542535871789894092525043960804758241921631298249448575496514619518429544006993423355600180535178453212701005929532275520765967672325231256875027912273349045670819652764159880744752645553183540992230847724335006236271991726638393444750464446064789814462893608240417882224537160938833265498678851087027923598596015091638197279831844135322101513583907307420461551219161252765884733542571333101797638469068457735403827776389626848270439095295154976677813199565677712260804482141506945955107111066220012869156039176998458735034789863442958703395338704192716418160872226841207852442065809052969757966196592138564400658279303870423298210380346057885340520262435902501002987518162550320811129761509345463320906096544446712547930000698793887896412544933900937514571154209301751332470049198214720537215583024214782815743546057375345368419781537692176473107671595318631922232387432898412747149126571539139633015787130438085385853090963769574619320940286206849286268864511294791352552546516935301840842396016718935537490248253243736577457445298455707113984268737721508415346790355254226409287673322052417039137270174283913692248710170090620056164632360631698332058786915129362412960024765918931169900061130261908334164546236262269584987787882336373169525810718252020234482489331709514341207417369835041270775769694372747958875445899405343947655080889871813496825662578462624414683826917948000946127773961162291428160912895329175392954305414562808484943358173398128247150475168419323613193686051833841125751292252393228399043173335874520777982470344809921999365717208085559264579247341983141704474366639869421708300253742778575775129729222771092849727498817037711758237381512525935693759889313322314945767047858200545780022736058700533353438862867377512051596160970554988616045321198689145131335039536685221737748986312163403160799612932906838539595645946019292175179227663332751713185373109423283875390021439644885207694153665525098143887831006281590161636760810445405600552714153263719544926381562395908651479404351345485591406384980845182932265987708585672379687167904251600634626488737673753635332812108962204531806679523150139047848315594486267682373728120409992895061320512117606610437878145860661538304852912169752724306897199504020599645452086312201948236731550305420334207577026291791610322383679511482452829105961192031685121931644237933368031786773501094009425412502366392504610310483477341733385127330130349688261698818933973763426012284610483260607878142085353033670349722721482953026909110433599904974929586353907703790047549971501300532817142581617712669874721710648246154277976904477586739405947433543226833832380072823330850398109497319132911773228347813242939660109014594974900065360848871216955825903431682874458647340167376159495632411034528980860976798167191761251478122528610230850079602589575773597051004945106605303903109671695059704054532309918538281661364535744695403118271632941094455395505156095522936839806697922211664010498823666738727446856051622875698719171711254704064962121378963094316935238142012186592175003975813886473895662064674903406148651628408711110965399864461462734764906686411558508267265569095225336882796430754906225377176391675911586838801599803325771277359214234689747659865824503987955133134533962246160583841370155536162649264222131043207509445442400760529267574593519214998846961971098044246057226749406439406891744554871986067890211881286558480215910644608309992004295241849212055485870482922752052533126336998457755870709047752776798897073126800260889715999094149520594843883592622302505969820107336094672506949674571990118890149280637677245947716926585693756633122882184264618121723266582663248974746356223046021621302792483253561255050722688768012852659005577006670458555737912626227033586017051596811298131753499819717585868842911676798827795293444182361604070864509881716686773676068497168917419083992297461269039508906930159807083853292445137348888080393902244455005822175833688841385964747110252509172051846372961934276569070297223236427539324966194168523829320545623278410952594670305892480748410980699191133553525890464906626445667635358051498398888409648343425211403257773802614167470346161474657193022218115811235117835636989153375998164551904002519422519421357692917490577927989431720704251824557839342671814331904781172476729603896454187030118435360997920976634650915075338830343278499545845649851870274476210637628804061790799006864897958728936995211639828750781204678369748150035542186769771501709513945627830239559025175133083431246623262095601188769469689852021510763162954502632949010550631895330784077144209781432556438121778180026512592215873787323769904303209626085770770016593834503987508437858995782105577172586396351230719126211226947286743415240842610052726152371182254163237539173537693658125823517997881661631241370512450204688138111496251861457431123034904947291394036330215249698230459595322787062199329389701928221010003065627367055754325732311798580992640193386203585974149426387322778273050551085029741682717201459361064321791802331053762116609609382196375910036595613032479133792407564921063060500106850463156437683146506907576866866669933999811903993900232066986398003994919214968745479989851079812687010677809029153452135971777557866854019629481358903968941264797725471011485260498633759158083698916806083234702707426002983136078959461895823290653464337588686000968372994176451258084232310096514008449683487950545132156680145134736624277781948385602662331275830064119832709864217490548750162219060257493463815424763461864107321100977646571572476436051765774408393593049155509814273504558332952219269238814672321789416455855643668477541455678101172427825798468616278293495015907038105228546891404847359932882833729990914786584224478635193122902125328652192426202836176069025830414281451236021204534372798114408531123081062446282431571313327443264391524130025771075503916261569522411172043682391089824740542866097333722040880890697977814790010899705984225095618199145610677182727908982450452407880383971755088802874301935669178217092773895081494883098017216359454643969565988857604603380474583990848137162116544511257820540817609973369852051933296492204574766520160748049815691927228704306115515202825751744138431918847711651355739632514099791060991901205420215580960961393889490377558922430429634159368899322022816818173550265750286855340152065926220481181135696556827403753570533615644775650506815053894075997666410477186490181503755694797901132208635188927044611910981761031516846905661744982320826355033231482882345096791424895908816477671774082170766568594892975004169296433768654380387327465804177432328215431122660909240779298600343833931049255465591350738419575876764000907022774745149476526129969226942249330707687626241707039510543839837972785762645514721982310953389055251171620569684303680490069674945448251059390924608734322777410577657372600203764822243930678568523240264723528531927211409443899138674143709025503639766721826557321738928054398532696270125599256763581305547919610154824734322659376696624118367451481082710117595193154137354441686634694690033322384994129317382386937491979486550263501459934361388122333237611531308576283176553474542395482036244678012005649303894724701869380581586528197112059877516495290738677672603006476104743713925785887121368328309653708332012515010923798353199088611813413761102461817482796822881370988782623409384166398185620264008693587174675137114589797631847443757244063444400591089772366820393350234738507852864711296184348878181080985920217317537499393216536485280700118531855238569695234152438685841466141601544518495976173871036508646209331575751947021748296775057399011033120301554449618845384639379724447626294937092112695040313351805066114037321612732320104871799106351245484024695742239060488822696019679531163569346910634878910554218993458650700809946281608483632124303272963147014782546021121310571776826428650018162496236638906704683700728338774368454953792240959887593859182359671912273363217774617606091225826465700945634483475928833928127279554070686088413364305992584109307499717627418122602467030569133881727983460346721281608667216451627719886511199114121571937018863743953046855695385019007933958238563795711686076059674600218015872152386731031142285488832438161234057973322431494542246777275749199322903881968067923847622587245433281549499184576957951293102846928544582885817193657118427085831091655079311786184672396616023951391817795055072734349049191189289110079480928873349418936210097995482410283804597007446189866387874279457461837474574113970063036099246921433526011465616544549487813917551995366063794644583686788533428878515190627956305964914899566228103938353750987312830970074491464144808967400630816131263248601297918708371913311552080642016728995423360431835174347870634008942511478600494722106841585737792054612117483653111568535349037181000344580576788226585329581617635697279804616455884390048041940290203668652797104634670170943189949105189911686284784715566883430325895135100554380763666416686910866518064196968279222968229472603345092861842836950968151915835672693826746051327550659783358686543902614111914375246585871475572626756093247493640546034772625418820898340576084109923855197677186761938460463544987721036707730829646562411164946030771374867984987845880765461510252994244486746036369892655862357467448066738787501690619732332639411309916222424354362119164517800881314000609574620523301606071927161039168569813197432513127282909173797685476092658505483272175349233270129747045186885074683050327605341301330778774008788284321256379262435590399536375793590642689591945582035897855356784177925889031902937772402918799239697832674844831526636514794433274306025496306820911860507128640915663607623877949396339698931790421329354612202456745935380945842924892422253311647705605435201687602572166586068614470703803969290215342667925661921954298708851986950677908051464988429173122982003411299141720762670752718345857443555463775279384070342458430964570338978212640879699716832129491886585088263441784557198432142465111552090381860319127552367496730487466681915047013596859740845014382537671596257870048947830324390489788008694098278593934842275355620741724727507284204499120243863578881044695823793072062833884348817775481175087909004186771399715642955880740367025066774277543016140054271837359653223140267771469424957869261418988246917389395862834985574481997764849133102750991755910663992530975267930813709488819313894585291232619377954777998065153774033626274909922455075789211981275436552921432698626434007715866543588414923129006088713586334925215389928298427448645041718870220966700886698806774086316515607059739264898690591516353078938934462160251064382140013446224167113686600965066693445985006951793419561547297495694830600061293175808896404962706439948512206234890845282634623767978373772952716114746319484453806455270535386429495928781984793360247286843561305685161848585600581729720666147529216193121125333859402692684104057653048719742486585620910901582507127575439053208698677714259601546303487019444592072126285998771494309796179375134295706504518165502617364592546492250000525349290926746005824117175362113363087167719931558696783815183988531681702063604099046872389744633173990483912074560296713743574514696737875368704780062835757836653143568745273921353359761448462946530170696647669563029304238172201300517750864052498154804944796885474497305263326433955015735443422952814411417912384696936645247129202223440595670083791261342498067361574815958701138399750311679886139851214973103739320671669456960721511612217588371811068619511643270095529218798259438777484152822469801192958529255360370134827387043098828123228579626273083705853110092219183094968261111088593898565962380558816981925363613129037689537931069254085237311108776239621019963245821514309667975637350189469342489086578577281359684255332469659360806734967042196220126691951989782692134893295731175443734952927352949154588491324559437137601063486168359715906541729461330053456814334919795266038473736286309223748996243604785336512824450003384784643910068086239851308823603578577328879808245697929284602323831784175089161739689814114151125039684535132194936355770547769577843576432594994384626865993456578349213993087545882724954025193165945677710095844769599618944137510497740873826090185291850550011921434803434418911211502115793457778685273254821251474189660938919285278967282004068376636604531916074670667040741885947322692236914063946771119514313436073489634619399418838818704534470406665290137849292215621911579529404170382783273352160991588924244480377800417842239162086412415375646160939733617449793210809737345486966706165589010897464894936987340993637028240406894112238895138179074705626883333491038695428221579573053179076151434874677271076902719108582489047159449522776860785765429002339777850845046724648451451135964195695621984352550552834941588988806777467814488939686496299767450695325434673760717165216211553224431820839753057390935080561409473243151591079902554950803864091147736796762438506046749040994268065671866727316236494165807520361673062344950463265340554767242421681866038131315261598207520635672770903795881836744324915279833188965082420119201233042252363572219014555831492315934734251365081370591175110486752245235496102774440429869527326841786027170296127452943848927904435593843361152877678430322072844379532535591779313158132584332788550705787071157568302581186883365480479694445055506310024257286009778428187784313478491282716275070080274265211349167623560900864518108359306490192195086590890262321704198358815974220260641989035513753923941796821362320453956865417604827961976811554485550194874072954304568450488684154096538981682315626846393470117995844097127763267373780711669880411036888033719836941974680018719579646252360710884274684437926815175871412572111488730602129705842157383054349049648352052207916922484747228656220794724968342843423796066416296553880632560817542671522721893831458023529771798305543406098035040738392601846673680397882323961948877298675221731324152618557086358926926673870918393309751600750116019840016987108858398525097409392334076063598706477587829940917745807754920440959464909091086803008224256893677040030173704673724578215529895336358251038127609836021291829843000873865856304160169290781372317096383497040987532772173529286605219962734036124875920357187905325398101628200104647732766967345496917092993707945183793870542495318861129198256196962171628894994050078228325821832356999146685443128846101968650505847252501168413715300886024633767277420636682172465857433494853149026456459900758566615728283719835249002659228719749233945323291654472798138712708160102590738879489429242390216227422502225902593892831142893172120150200617853026940304604747438277326671444412363596153834635757021934446565496337076691639166239501908779436343211981127695216847646607502117422677092192778284139345548250433265558309276673980792449869354626595810132308742617210702382682839520116956806903505394085902370803619046825619103569862208352536457750008550456550753317876876931055076529556533790649928161090984074752451328685586324107391360462547329193216313046255320312366286769771876026162637718937452061446489075502201744455956841502601024521897829281627992522166193473683294424030377635878217600373245046734149658824615931520196597080820135162319475679644679664363125307106490625496784883198966289588559261563950070952164732336868484530520040200387251661196059489890311548178343462371731782475074610499714322259797759630807305209104559019408617911941307860271610697733539193327745053215206928415970537823335758425466309091094546999090102297488340997445913061648350688799375867098289236918312909503477568365208310501337573803663615361775339890119812422684568669207446946452010058594158528999489730782098988627296097956267051719663987358092560807790248141820737055726111575304857323839763089800865936706564784827757834759374954193896868960155265857715789087331009317592281356204332934279187581940077261309454589770348961472442053912455913996747825094129092552936774741094101859117702525246703804720039816521623359423325479370292390200226402149392735249545647704783856570585419077452710600412305017311562061066906033907298274332475489459250441454250206404106126094982531922455029395531183924312056422635541149351702201149232757014343770554138107771173497155518562802954086038686784015246134632949568962160743768683551475634014973373931256102798879940293174490606082281126263073772629022786083645100232544924894222959811087299408738780717586448952454113174796317887071329257703899775387350738330384768682712103718632642010968894338187931025726874305039881475286710902318741186412702989365541541424037990199293436101244648387995817783647216637072768760814200007748092449349529516683081721611961582248760437843352498059165858554689649115611271521019844873975527414514219198518748846888128775013163277612525358399478082076150011844038454297184034304244253412328190122415777193459064689837643147455332259233564762523410260734793243740398740844081504638476726802763871993339006231998354150767541455665649570870780784745615189999065370640787492610518384607430248761698672508586865119331675138977256824726391709728276264201212925945415015212228538376077209507274024171389891736147727526612885566833610733113040634569065147389553373630317417159118531963016302538113781034634267091083503774246768087071917326825331790016484434245380501980116041492790841981588947828454239272114356343881263244740681313318186762673928098473535346239174670280739328819400865542336589908964307218567333304162050869930960731051138989963770214663096407157080782890167882263626563436283521035726292978078170532221703639634071429524327577517011478143716059506080187283508440083528667283898692522639910474428566371981377524797948982741770208097914527078324070688095970403852915204791996271087606762522443529685667882353763977532079688667138700261821989730871060176222011719240465337806157971256105694692885883164843836545041417166039760508847146856196590864614687985343097009739080972468294762594798403113213026721666943653383045810669094622228290639181853654124450100024668883256579788249227893596495130151502317030276081846676432556495415618313885628119685128104660227945589688745927003414219885218640245937554095070324217796574964083344092854975114391620000853571228404982567785732226233807971688952625992267862457077872224262996166340820044981708721271475308975510011204117054925034920392939430787120576513854343462557597696839798526673458644249559359760542278081235657628090715807741691298781095250851427808826660574869838570299692719162763178058197974279060468231369434928843899887518450802078506049618758078385621590790254691450313446704589092547083032005809939437481890319248347472860645306136887852368351865834837014121129958195679471201055188204776107018337328760462843010366557018896568062859357800722673352107514006541261986221188258940579904028165213860914511362604344256999062207708031945416645654918168832809787984088809772320860655693523759513639842768721906073975219479084955156275211721506195265868157387045919988943835765817814494114883179136964193993340068303339325817691849988083697015103068196929011780673576568147631832485728176607662947134717052742544638523138300662557747830630873871038884914452634702984121471353794531870241665835144739725985654790140351889811399610200006063830323719255581587971390064107660031067684634777897219168949232491184875062612962100424524603039165745343676781170659098257497632624319259146888247930398173321150975299240032558993021290523360543593165356768746270008863596582107295874241323344056572866172434448479844595080718046876669504621660774103358347187434207208999987168172226436968609877077009469865858302273834769642886598317229732844844479499110110470713733837271542437643229907316193851957500571276463196359502670612337431690168038333040002875479677725304071831479937535422130389369928181946015818945772155284451592457146905681506595888120506620895363398395762470962698258344987667588029549017074122823382768470073259863443272957024251603693840286989276561790683465714604084078915151434206841478907940068382276266316656210940207193219882757380265604206773479248656268443086233694473445382036641373793862926860540403214439090115461607097170126347217045342180718586248747663527599729090178363847874497365756943166246311213166052908650580115010595096324183277997913155006712059722002196384244187501285119705740412075725268372498138566412256581331739029633952986952550994403929940197875106688227748096906274586482566440295663557174584105161722121746722538111981521691951319899990415262812315846361511138315290061545474263195733598688524544252285104761379443881114790828284717511737062143487273874203363988491748857753814110102087870934016962284792772889955785832573582917019957118004421862127292224554323651138757420544432602106020308376859163704961130181540317137726838747652710310046149854089140537018362118848977793277227434854372507664509557207938438356945850765499776675143777066084701279811544434128139224802737129238309389398911066669069580850963033839047040217940058702242332494462005966016966822176015711806798347491412048922130915282726197682909281845630767316287906518724963981004215363231095381977293098133807736237847626584718865499158897687353099299960635406256679765628714430322848245545380524302380933017542120986727776094296941014911837339307356999659306911420112977054998889427625659292605064357300469099516798128493946162083720134591312285734728674558203908569346755257728639168617121747502215434388402944121390504620583647719027589991379771123068632307774862057674483274501253417504589950122548414751794787207684161960711333700482404676965696663675264136258909755111077811635536772979115876572925394121489594608123290484653070199864289505279112728476919906166220630803778351321228216004014553776121360903026490850102501188273491930665929115521451623377217328975412116856772424013602413548001637776293212164847608673528062247167390148236501634386090576926874760074586432578401505805359222695239862382367626212987438002418814002690351214542635460173202120017852267000227760199048315831274956423006939210397952542533845793642650993484859353711198043947758959092910999076525021387267891372649813467132984613963440383040583756986254019513322665742591718494730808342702630374173393106762691868054288412713458813810270938112315747278070421978466602281153226413666906016317372271504213246716057038500685160113460978320121657353427634361343732923826341572601212521321367862909756102301159921586081015814636455563213248893190520152626209991888916225155494405215837263870639378529634994251486389951561743925236314120600116466261354134954120778052668777415011257014134275780981727038664795230421293750778167238306934597942267950554825483619009336033857483817425410672472088849887489949119308770877677524321426140949577930945223926799322897131901018691340315537892697622092680839362580976723208249024360013096895251898124760302041905821079201284322575752675604456065522588113460049714431650870902953397270838382706978747136108569980936251038066783874549951082986614755222006421706790495450547514869154429109866897714455444214266369258555048471263073340649803139453461492994772152674519720339355672633098014390971935896213658244152869048369089235224754976269029788663031743835179098229491696022137243519723519556198703512756807434305601316241490384495773430890437794193811959233064408117629591783004088973516500104967567609803957154667824359112302477783603851396385782352775304464685152893845707419403577468042093525026182234371050438902210746419022835199456542771304179641440471770100836934286030442554577002989447496376647412806084449043241882144320951332081646389643154234574738951110413542577730511800425014530804181847476111263449645748920542954355178435038189054680157577136518410016256388895007587948647002058442707542022124970820349915792917829409212665218468198883569711518285667722154937057840831698127660818342770148275896379611182029852281956684446703340953733656485454030141379942955116412931244602350714700752914664593425297370534900651481517842837244855702371283701376729711657301263498257908585855716190838112457104067044539713655774236116265414558853567941498495340387206104932731435553967579187739707373527792029054381261310625182453673342864923543802992814065345246270953934125323093678794766034925047083794179225753035826392992613517554747652743122873842055172834490049219561716332581799513412350682585932301644652828766412835124031493472035083748494396373279837957870338290528252242380338562245418179222401544933142977062706530223580682039846990964590578289628866929629668668165644656034505506928170010394800005602641068106747517751388884620959338361046359734153751755568568886190748533733736375581001730806362542563974011983390840702929003279594428657620878286433839938827052692947377216056041386288062279763054981720192626533199538638897252355966471347130691329054510450624652247732493852840923939116982842039348625009168127532601980469463118156513888892875350581335087343019230064310118127254710467316729944052117251683475218259656242930783431761735592591529095176718290555583489996480427213417775394358666085613833918664738348167877548156170591467772178314104631960587125604317771236279321335286402511852200663753997369306874553585520361854192441364387872417246557135446053986150767729882401968374563090748995498232556978177803471232497895692799634197790136358477758275017140334034430226064661130668915701007295060498768905450037950363757992152631506495055637611227389894159857095874761782695236328068511943603922760033849266581271113854379491601290018336220036292835354767679451794539516110546466095163302590903244974376011511218620389520041252028780657226621219005199573256953994517149289550041629306502964654277798283866214192170202235266987736477381144768510135968767999309930539020710062574621628316709282667035486283415290051436980466590399981934146016252170263585281966002936544809453578597957680098686515217799321000477296029991196435935936611557574395165165627572809032925314176160066852085231502943081918115929776009079493057777532961677899460841065061021205925575272430283468810326578699920621484077690676907227170076569193490412701081098264218668283054130957329569215651568174745842127808602015031286841177372582764428700913700353414358045793226284664032410680204790892669760734812335000350875899685397689131664188979624839228782976311119228364525804039445366186339646313576173937969126500620661279411042454884976580692582021830026953571180065267060007951303884775816148393568881837643468152706672495310916272057729551823554586017904713084279882993460070683201937317256919384155973268253399485277596215185920960983821149994710513451967507106649135740202474340273244550861210935827296516321545150606302337550822132674265361328795343731822370554964813154716151703291649706359292804193655968446163328798024772292770609811467059764620933253133941049840987222015128748364203495772584590836699075478490530527958819603849031037340356963131016734916103080613147116128822098160176774890688600356644936540146863175335242527677185818513692165089615238955076905315974961414640300767756750728725105374019736787816286688078197220034308001267511438043687129825264794696487410489201419602479906786144515195996253390690712219609557829568387767042543021744566911771967649870445311761207612806977839440005652541973166792673503750675856871398627087861790054384010344144615700738299489754201465775403725667135039833151175891204231828270628655595875581118798368665698244551444304763031432521660884105657421328415144369887414376390326780342729196027896605992814255876076012032420786072857780282378799108098625633712051395400575582002764873052589994155757905737762153215131550152567133922070932556119826650430713540209245310689993986611751868734037949757931524490606280329266871036610505521907500322983330700436738660334709438534273441630429097409484759181422307274245230126852857060270569608018660247301268173749758705272228891093910181339022097107906423123377938576718933351109809135968316898314113751541790269983597808794692558316755386308908033992078136258179737878852549816687866487334647563578655964623709922081151532760947959951273524256817994684010046535023321508297316966058002657547370835312339479160511065062808642987505482751404152436919233323462909153889162196875117864658353416486455715097316407257739553736452906877544757204408677706335403319882982173228727233019715129828121180568904484374171045281707768843113864941509193593340064551857815941784714957423278038189571313786830849136436129477210890931193684042401810420941737671732483618278230763195555293931427784711696253244911466265908844724185298670943826266203703918414885457349589979061971342611810879337290249150924045465326394835134521352935683834493977019315324224925638645086074154386539807176624285889586123104995686116488769501120865145750048498638385512888442889007064630934004605160921974741910601783020117840340475608827667258609836055396210387284656882951696814508413789459884010460393053800581885025181132025130425034116002522380839063834237780558154694979207913858937231889698811453567961696095348496824847701424007259945374374436331693970856549083210399602475230824500665871559389897032182799816266603785303650727309681198172196889116770173397434557659476506266765261384730691797307171233881627382364375529679595335291013200774154200276550713787311321225519473976839016196682722332109103446028775348348908694486099438346469822205800150979024011730164882971521195811070066874264177026611612457109402996412031709221045981028873579688203370097613875539039584260246264059693285953312072734404494736005332473420766388204729234870577262361071498842251950465349954924286051879948751776926377085135365114509068825319510635147290072890926446435270250757012559489709917557067140996788194092965135245851571205139975385362939919722414156074355058205056604079137979613713997368018375170077118693312324714908236065749175576205456967892077776640497859921482009149724607458340446594299514946308555834199178934117507091194720867299161680407978827161722418863466979769186724279844104929136475508074452670354646010069219548976337365145789153778024333321012771652189127853633562048545036174625282312797532179301534328875553285476820297924026562422631236266564816099775671446895602755924299486546908112805858709479255366063027096621035688328048245223716220789745113520027497579879955463813905140155801711598808944738396594929573542408799398196681733324397718074166513417102143328756439305537427224990907571200373662604591440837728315713605310790547213156691112268737670481363243395023457538611962925043877327090592951741234095133482843370840138338323262358830694953191592542131413380400941395221370925967296963907569271975160773092973613064909654833506053234827680628118286376952202952067071105840599605177719504044135856102427438882283075485878866949521523233256292632355657205821798608789740182486115514172525797940077044962140445224859629122829556338500134288238297716821471587868267732121407969425691080088587903167650318686316585910623558667391554737494764514613439845021830879245106198414022196299748519749424952902385999617128200008729870105040091604484976124423881930720488895123146034616518982436308089162350249226652727397872409895894286811154378535867501858386383895494532939869030655267102927589447552543582242788269573189079219666158398375188420099435855176524892074463810733231568178938065543055870898679577922701286198006550595983174033350708880253316583376417230446794929026540873751913834164858174688157213090328982993394467019264503998097730923204158550477644937803056520033212664386643532748577212171472472994618507539044818096278054309163667680485950192265483515725365210337282756082847326086234442684180784398836555700047926730694265183715334487371058786814456604012072798601483340114400492934880006652049265451230126695268336793501847711101077726975955693558430147486514153393299729875036766022042421954305340991113248627787000282897304340012789865286307060739423980040577756332296222616916796746388582230068394857620240565486306462737269059094546825816521447932422540405451641293613475157819281472457496750639572039053700682317942982340958438572644477887766890104521734047891711078935481511398728176507796785857655223958186261981590818931869146044147122330151058931670057733110668891329278251114557981388732318291286839134558173671566167768347627572568409110057635907952801944145181811972720738408592552650211779664407761162303049672295390678364049863838718828656955696209752555999764072056313812289561914319022782098196715903469304903272495555060141358600015111941386161833355770092014476867875976389580734437075974368569433552395294905831210035802995570950976336754378123610665941293453320867108323881257774390090911587866419727620950807956371208789315281929685187348648455059328647069554506540527824664802025315590769829554478313634297833192908239991100903401783026863114778152008470896601864515329743487178728412155653673759539002636923966244209272919902113470205071190238715851103096828257858238209053581702918245458969686483979613424386359654752848409902240293289767242217495117805943638508386029903165157751436683010243893225544412764136330787522876143030305923771341371781608902550773234492574011774823398909641469374043179411973927714262863854691656782448792539207184558239245224737769715496942030605519863483030973027077423716897072144911150300771632565691484070274470983278467807952302011772813021790607431487843627602749295587563006664924436429531273224083201721680231955810892909851437338788671496005056790743178943944035482646015446606808558877350377783909598873344461123530479268752482628987584433723844272889321616480622249802346826179821280665342512810744593569794029313405790846067527381388801446950809523378597618745315526352199307934341918053396604468317349630871090274616927460326874473675720456276193322452356325314709927425121978632658624791670584147461898914247449822020150754555961213328665602088499203419368411737311282789632386296857348491222542566479848405951264815842163350424846103920459362329287128179125954143764010450540291686414741948591026398833068697439804270677265956742589100914712354358562069648093835551255698370153844356885418065959951194977438203065291988320910823202817010750389181896940726266466274641565680162758538468722503417418571086002161083239120766048057475847509824463611458277315897621551029587968602287668299315087095617139865815834052419937329206219538335998093334330337106419893570651540156524593628192968915780453912688269673874599280070250435527716384159883455380239250416952343354976628015243865415046996490104391257597477479444860521830102058899456107876799092507307120867818222073709652722974658073896608071224311889867504354687317825682360445071702094386614259818928058835477230421190191580036903054600869245309462557920520752763147584801361627394080883458264639662437147713907473695772764967524933341160757697526285318544481822180902325412755114729309535086113277442248678083708202492940524779082703141862184850061147734762945719652318077248960293677774037777308722247195189840358397331758665538855903021757100057988977417236575076292560638653755509712983279641657630662447247017962622535956317552608576195595792508304749947893169178704333330867036671414048300027730004557036659996418847794896932597478754908411540877040997817315954248119493719326096967914844293801219032792364455885620539702955629110377291335393115392834049483534751405293441287956029351966980894090315377271513441263357475266294847095165180493356795832780358506764656658191350975318405144731627942050217433337219744400640724545240028614851889746828200415273888814054864827944764306600613425486918535483837853211600592137879278204205898639503355852713098280567721851786627508256491063695453826027792367475446731853011852910752706076021367725541136210532577614092130009242159416356496825770948113294993447648796223777973603761871528224535993548048227105174556962441571517496913937161281495159037888662177970697234366650401089385571071702229461574574094519507126520824930256952185305520574556871695685895861497191710377874965829617005194330663303321115166358680973602247637866999246010257736353925255076334851992444219503840222658520825074956748531622171967719869610340682497931593874220554639709015922972950428568468836968508362212167586664091221164423977403860673831795579046589162738553383469452698087518910823950684778886285803811900844977302580799397444839679693909447717408648552488201838414695877713011334465918244342526335663414766524971853921428720770581374507982482391199151086154113241348540706307174889358001164934016879279218491994791578822529007386575719977278261594998373959574499753552523492781941628608076462346416508208237482088303950682091330604152961439634261992540434783830494436047543024113646213471606155500200195636410353977017377265686149025039072841296552912298954789487009197741561406099815362320537764314390464629900539460342460737827897884308640419315389673519457542966992178197397447993801151562269038901991617089603844796256137838123804245071286201054929467181058682855189318245900489149507364492905783835715552757869264755310160913203089820421126858231765310605715945115486952673487365006937315398233257203366858767394064543255405531766250786740218831437774557042021298134954887497412806672939521975477808983942729721276075796414155889940591474542544341312894165821747266384487236443194910489940546029865593599344357046366557129645620565058681204668347651445646876518720037900339556143224191238703854298956748858844851673947995976483906546919114065853287712299322878118486641371254608366865317837198551180528156025249904865097302370691811174387308726300885004327792650796409399402409521510312662534743797013263291429731850276911852550586350869112657775114659881349488640948985899709042366832270152624279739376620716769735306359462941023982604780031371867651823818546005480581794560471663022471847033233914900714871554705974814001623181946577172314357948540781818596773333605468883506085808395631162897580242883975480419736168713479377471304066897226218413580093064123017582042416289915125214913492029698994977173884137618287474631373270260676118109663048231663027013192817838953773915527734136065656315106117896463443621197565601756608392238711803600636055376941290576740796482374639398016165519383765870680558054749871316389774918173975538648533953484374046720013624925168440897707310612209012177860495862965712485120850193058251551733870722408589728076623092437396118087425624214952105457739880310390415564508979015528296846323720516586796729403231351820021912479022822306216062346893215857813488012275125056507046039909087390370676824921869733993775521869093386998385311871394848016499543488060586091086492131816775828301606944132037614367242257787821295761430452073748131424505258829264481866983022625125100788574685351449515201379738991350725475564600110833192259690876481802573883689528934946626877387457904244207493048052904294624580377757769250043373534707901343878832196468494977030369544694150876392229164233813177292689312453987136369977626640648306549180692937821396098690604331590711886064198491220258415986814110981134223950762697480779627450350317678793996152750420886047573458104517239513885720647596204985496832874571343922993108984566375787126342386957159044791918718374693275101834344707958023131585847767506710559881187779582284658598360996438118338865926240964217892826991391641767120956963861995355350540556254369779034068380633309331650594525764753549646746047185766932463428880520531055422156687073329357911367523530737558522143239193789486149321863719693013942413583253042318615752453001300136824087536327688305233035740882396686503925086534167095844876504639188061598160150005938320312967761895901890863229837165592714895258858027118868320576708306422270533480260630498517844469988324318312772434417561845281023925515281078910037212964794676742224964088146209541280588526344231480467405484537276725858255996144781231449051857247778283117665928205920539854320772190317377744743678847726215000770324690633980033522367975766846289152955355799734607687262153017116659545874323912764999421262942701375613903819008137234673946334520614542996031893774406690029380239330668311124383915586147660368707089634054028924152018854845301316413144440308459659771382532215387588457533101058700840771218585130707040198439295128144740937788167244330023405993072476484822343565709594002231345630472163322988045429249504019050426316537680404245254894343694828884718648338241526064974664356707607477419814158538248503709611742348060929594439105325711190633600863451802636031973210467760742069008259211858178977676951090280036788222142160958247200254213413175518962476337426789681286236538809850405243519097222074041814773595148976194256985881252047587368401262270320616408779652105243149859453631230782114259554948230709721757919341066584211560357631278973153613164202094985703359493201910284019062179044596894582487233694968223530810259202670607603778187143100109152540849918846984281823148005983990360627236506023697767215762227598247560025235309107208846359277445698850087665818164283626985681103769175655281931234709422599126240234837302164531692109579683097378145951562261489697705435721606466276812861981922529483120386583738204967371192722281887767183170576610123969275957088373542752871460293625921483603120679125621091122182727884237225608189805704172317664304161513183478249835986616863088250989786726636019136717210903594514478493604739652911669172274519000776413095705860386319591568326875443762043524117485907370913207409296455270272244252324187972324933173346333914033485858892400383711418953133037545630249516811570362894017238868606742218763696527169196579794364706435857436005515778406467870373937750362386728093356588601178950661468180705770658984039266724506850258593730785525551603716075087518601718613587615586822344698390532512863672372338293253743386016962158912012413484573267375636181948108841679532997911971584412732374613973522194051805307266717791478251783536645876763407981534837115849262715492314727895279344008512048657667051053425289187258948946572313202863843891940263924974000910223657297297312887779454298906263305565807470665594104409913251696110301326361956655767292852203116430756306090285362473752782203131467503195371342509610236108340547150931132218972984690599404534533893750940361593193576937384209925835518720870814247285131876223438679633199750653985710527001696347329173901692911350341717744265305802612960946974627140252430684591502680809745127327308634379315993858945667033073431297472605421584608083076497818577623989536377490460683372379300006298789201472526976602715702590554116670338911451742021040729834077316281363926571299896770550046039311849087282500162647426014737081734649266910475427617864431389055733939176511769971334988094616399322063129497339827645171611780165406151544739458946897814722782208236018868730404974820302136659644111425064406916916405684050942509182263009846592385952414363431561548814449212489283156789947499839510811589649263038884522973249519022204892000308566068509742244330180594340247505099725050284703733860850779621181638102265967608553555042575429308838501879123010071091115143121797312111512569523368053850738609703787036202801165226028576703695624594795454389915588522582169071717642062703410851666350415419601360311965400295446064591545151638455348967206156061834851420963067974484135345612971550466714235762319579251749047207072304060277888737961941452530930277792684517773112024712026114011621535060978336584063193493667527135071609120723912325837757324562006066142124023516022802068659781475928917529833001711989893331406080106467276869648845605357623939583165849147749292247936113493247449092728729239274536316945743737818048984560911321198041491189789640501153276353443843715532692883946232949227368405347391386585132258230128412624051045438273400901486731878431179527945688695660363037622590142792428181655230571436601337728565723712195423934439170567975441408208684839491071464620100584004968651049094282464328543749231181015004007298067718146113532054179164067260964582259549044725646228212157156591028853599083873750196905992091919042993608284380841331152714031480552566045904414338755989258660853487823242853424335605851924457007288848106729101831366249321990872895437831996270893641291613875175902745845904718405001755211333747324793912034510652698087148379376916881292860765826360789178442360517509584188081764498456066873423235721834291348901333488176484288968544218440224454312255853749867710441659982386882959012290708300854601771064383850984265664212080760478128233240158049032782868735492606286563300032782443201722928678357035589513722122186064952956268749763792572144950705391268703633108606077391364329768959236801717517285453408714972629417660179051389677261464191211126363397485293208555629107217449837220366177861487116148079868693116743543424737876608047413171272396269329459817647857764952912095573924513068597624704047739879578058694103208538487722763729863845308856184588081514417391565156523610849594633962749577498332101584262489267300703495394350803253286707041968428710600800408681817629104911792315108442738931391403779881036100518565472545356779222305647352752864686041843096811630425623583114718199153951944700443036876366044687257319528507996794080487320555590844868490776680402848795114587581637616276035524927815909038957423483297832658963238654617490700437576025105458637763115020452224961990752442208888730055998034042557288937020394658680642693871098387761187047669663023363198035489560808051461267639254982372364778815333111367692878202136467484273206936460482732422122616947962104700361476907911903612996647977786475721238205881732824354038286950549028661543179529618528443335709320175558786251845015302119436310710456612127634045328054250419149247815707255113905817948066584672145095339721576484196786247675188362366019299162856308453467183297788184818978120311872232538928422550033737095730779573922499274462308551527759370435416530147578170935341942613861682545536743624138428143160685782082789064124473310715567345577940644798501840175300781820747126007965930935124455506315456954745805885481486145207745977919571733210579413301458496692490687459908483934499019932271708048786850024399490041345313600398821077489024223503333333984636160241579323611036288067388613925733519496177024906941352621363268150874241016443147202681565970899850244689267901834480480371751645491955716508423023111171384123553540306341732417955265665091520790150008165684904056632020820897478051649554338235742294266874773837185928151196739534070343688285361525986483061359761069950904969410530036435194181909106810562032618833454643225335467164240405576042457456981454602016039286314349451624633989865762082813349343943413663979022711026587765200215660328933721462325708576042584777677697513298521883553047540817023736200337965211636978529533125912560204270949709377603331871528411646751252838860793198110206228981269720285201024985091573925443864746887264861606566239483122113641363659859548315012871891621612098901422004125946132339372989339208114056164410570431962873161236613875037454559725410900174892166016570159916193906538657989967916687712304576363754297436594519937842366605246000951638612883556442636820811576674498632868574962080796019530595235605232089919798321301947458036064888380612492580720792523692295268892856022721354428356790144055445280012692737221597142295386444130161135749158527018277228512083186972985664580964192864337572021280477995910476684703578388569330747961242530083205260481982403243849161848347544634016174579288347974396959865965218939824570493458842114518382541639623168607199892718044279925254589577051036426683953921103024876387698673250990314990236030802733929805839103798957210068540766843864227782016214239880097629836139501760954236625855397133373482701807122299567052539701664797000418988573886926612314299511278218397124785604124513478572891361801346556998506783699518673362074510530361980983455936453689092728343660951650852840242755389172256268514944140758660177034905485521812354273729379191755454355068566485346822052482065716731174055481823929294282806654241674710079343417974454566973108055640787703716836232587581812056750093700373379178472075655893314497967772391364572264094849743430728056308776534102234555791171513574754969074320069450725698002584168615717347326290350950999126930945010556814324768988060266572582175083165692829434000879211734680282505028026792324376303136604238010209829267302503692222154600112277264613827983217436389172870732134533374415418416980755537574579163948142097672898380129989257168663639771117937773189811099814525882322790125290304614455764052362286515946451643359059438943921136135678306422278403289682579961623802848059638889973642331092666033737393560772703876526764633920448126483930979916426689453164795974831266381324485629147445591383311582899982691091517950053889626312681031095428482520805076636661267441634663733859943449393073932323388432570895607954542234829908886381751709440194278193521342733162513003244007998883062711433473509195760168345232861202073936895631676933275504544811723227504526469151026972971765336911617023364696430406059353585354527028100707441751433630845486402235637530048740986925169239095571185985030025859533441635234242278575763311378082171117807115251935311972056220055681369528847875101906550276107942798619460349918945334980298138268872502764696317326183840570656686367928563032821539199010383644604273969646885017957486299756403787371238208848417335818020608804890536041977561651097947417029675040669191911325219470806740704108834497866426366785226906990417247471082741651313181916871928300142625663251254793725367871298942254585165724538589916162022291118103878106156581960551012486554544322891410966337238675389746984519967467196752898579126886233758367184891704208012364292982065791563722724620271773168506179801265752763273730496311425610113974062590419059541368338278649066131525961512417980662627429164021545296153530701399752239990163379775906352795456624984331588032982368392229943722359019587971336336454184657425975103866199937118697024797732908462148175422430055272673695364117014518568370136565329587132823835065302172206161630987634578138032720357196721807061104393714589088879159984369463294927459200922570314938741882131578668853090256481506975680426825482235073331021137456108165123409813161401290118025432642609058467948251270908955245915630097732175815082546240225062716853286626886854800371148148604853745879821283140339842664211208196674527452723557630537196425968180739784793158680918943786400404603704843097706202097957800920286445405195213374034190268744092156588603026220502559140905098578246896769214777455535590401296817182163497794605327227944106664871520265445211076489221145440190962054244082220293607628981621306765282874600098694355239810336049362338348848758637513638835556484459634378495135370471710647105485202491541909419861657317898407472450198997421300247661849392026527188675707628517858941747462017027003700824913645278101726860577345971142407742084537146525985713353264012525621577804735126360613300621905235435747185368575201683373851975225667382825163616611755661917313205136606901322082755937043930082911424986513754615867477966307603196054367586859013872719141840781805503688724545376964065209719812197307671098332965279362589340886139725200982110559161072664069536751275592264598647575511511411580044791582188497384789591171679640507166298207027740319381849612331319818510056084985076027196715082683237141573875305964257133043025422677307252137462390641253104274083664390165311628145937999682662643071576145646387558375233136904721440521461115235944283173816877288681481863133616508303574571764582986366310524643570563934916378305331728561591781517808062274761286514694518129043217077431404071521322647794098401280839858974911589287981373687649074509094301021448803402383971001736057605191238030372915976256001475838044050379120056220179788572592035288035758766251292621743313407189644341774250904669085670131587528813850693840372630604285622786864007490768303788184492834697572117516181117717822958810116057197010758083458641543251024849832224150064244805009284550171664581939574319804738057409809026454610581629149259311727847137576145630860310272022920423586074074429321327421874206972666414213502457430999707221134186121248617119427016360856563548758226984453924837030968107780611310122827877530827464998927746750209897929279337285085433621653727126641842395561860908147213099700004422592006779915847227879765499991384810318331300287739365568133329267230434665393779462615254048742981743737577805955050312315084679790607081538014394328482755175299180118663786922353862960697275226925008267906619688821704685394078462921416232966871585540552416762980044640854753138948803626326992224679673048812860325354200344290149135776946081092111030262781473126547669902236961665399960618825771011559276203608339284181357446245444670263616751581845508243079897368071623525701462271596555140973938607719567324651114991150609332915226770557421512397428798278389818396240831239421150875222066897540556161029006931273933614171884463337226122258341149004886382667398837279167097192916916254131910364214975886281852505699583415890376775692150611782204722235440579081285498521722595331681142627013347507952592970484519141780331007723676564384192693686359898069826666262409056103251279222742383450003678317315685003383232160520158859225084286229075482751494018636105071958830076399997504213317494764591634256018466562201629129760177995228285303315129905666475758272460995527456978967766638448419839385379102268711782379707971672410734438471257584842710772403413263096533524031342507623484297124722891243896474608685072238501231351468704135650833448648651185705422187323041715413556321178222594960214760122720838380471591730892003498692258899149571330678991281838292774121215482083911059729498947939991710161859548795211375079865096997296028582064310070297913966976809398399299637151263631871172485536518691779801065071523975574999976127319457299655444121516350660061785374401935907669868825829914009641863266693334169814713174561180997609055312590647151106104280882131570419352209426345908921273553080152218425478936544041324820846124476475314646961303800472978756037923404160781071271204285087416857116161333578176703870275719396990693784599356849794638990915445412642400902833558463631373726925088463328686533528401551530209636623080023349289432657693327380765416197801634026492174331300131540841064554732970797476903112536614069335822409825312546857458708475126438123320244394637623142415766656801867043054859619163535587820372056848339198981053122468397648550734700949487816982221113542607601081402694443808782248859989030352321477618948753521125095820941899180187452479045766572447377744898323375304809662069194284022287200724915125662939073713175265787030503503893323831073556604153346430947208290722188191032426916451045026145751639922651045443615432550775697223205338254273388837890097276076523234650399997716756425715768898574389967313940555413664682080866572684820957986092375361198386300962615911370765488273144889805201714892920973771330648319313303020565236877906125291744885395057157081310698433013611340004192840824473905126088269199756686270949908656278140648024230522025515828533714636167041558668427816618875248158813591450987661828217927981793697691916469797572724366080335906313594802056415364977878266087775796316061962043418151764497715913274912327301388702364500134119222568370225801470183377049054899064999050087754229078367082864872181400785668093995569106165598091259139410422760952877464164391427490745794985894481131989169322388641877638545260218308452084494197655093060540156824544976073241252440719821446910000504529524198343263315381668844421642444225288111091145160483154238615870777604036230453416833360938579963407013815368394978329979126555905033844612040926203379480824647753052989507277406049524126313987510624341400545203778011533258314900749040745516316842536197139467861520183869981761597807975228100978385877035257806542945185817520581827513803141417909608982246204673543172505059035817614218540042301137022920240409524287149513613860393656367605032545046657184996474010733020294358061655148361343724460630559473718638954992635512606896718877648480514527384487896047271782762258239598006838457485575296060027547103471062739360059099344749106583118702207207958182861555176621064871814024643048863319959856867565159006387789475569775129502127380858438572463289680438338902557568000007825457698003213975268937537902407762801759850595785349679915986039328166108007127108242357403830274728988901021661655409522230423932531780670213993921293083765586897971791746604396419532113522928493656181759364366808742996335251175138891872139709711997960430312060066393804731032835721098869390300124810021249964364086904541778228297584766178963814779593118035437058252376308499527274525614987789203488479961756109875735935528229650942038011805413692247641640312442639722086966837131528032884378902045773906288760890800257725680689583762663313121497470347172478655424114116301468356318710057653473434932456892942124518357142822442037438371928839466965778174219236063390374519434077836122637093780575376420304622045894608049403174613628508023166734847490663481866913068194608061061799917865205439394552416638631671824909086278095739485025050123037685174938397536338661083588899968094389634637718893308706071934394309033089191781216038953166799518496758069978214779612901015823033674459251232921079025756087236751573973151356224634476679273974581229770196897969097706981367954508022425334179530157157109254828514230888939174695618604908081030516537186181930529777835813004775764445794209903757792769149920524194043058389381232332098041246227288886899162759700527968152866490884733266468501038345572301800438848656670314323218646696217665526264819169039161185576595093687539152024809471266181678457853982768862098331201223921525524214835947251800292510332200178215462518568121472961690104162614886119530198321714287212222479973457095511784102914987938619857847891199888784155214670805812761017547063392598847369735813094651634127282224084459332419917633815725826174123666162552617189866754484332011894275397094003670240979457832088298736487060810524155022009488620645915229063055511986415270207702817878156263938811544240896808309504200340703902795276857877125580195128066906221828232401365493857044782240388228293492434630279318832549555194403158256931407086494512168863658933037000675532430803346063155732066503678674000391732332060533673682795304963179755884244193137959673546696731788194399917915267155712930468571780690725402052457696967523770298625825833993608680270061659357835591621444741928522377249731602420118231643947759260269679241775510212149415738969171980150601507728413182113516147901583756446056526953560435431340060495114893573439985372582171251507239497505982653297052046304354158076546347203826051412085720892520230056142376932423042959374436746642810790658435261220849651492539811425939400819535510884067558985309810745454045613686176769059021101947921434087480665907516263457621768792383322686702461126856561443195868819378697471981401519872335311962518142099799663342944688027103590842392441942947400726019531954657915198207473883366537282601790500253698538965547892792731283252019187753292581002553273920965186363450586178445969462973837554226931834840402704781858032996241786721059471270760436064501690764521344906281685346409937634901572607416893572040209156463329477116791261024002262862528390752307598103620219207429099944946107443101690082632702880333087321597398597750074870671119891472548979576995927513974543936973576216803160669586818843618817563676635088264962524875120535967636533589837110742528313029097804174001657408082042077854318197970760591173900347970821127662513385385913545117564384530517376126886078296117941600919368178172439865314368922837075056522054553821021338724731449020464292850577533309872316444876433982809789663849596100777517855026698071074208877674251329016410224452923592576196319896774378461692104499908478479760154534874121756550279487436678922523073994963842486898166149781754543258408695564464249604259643963646770304462165124922875772410957485057770909277061973757193636733632236475925172643144597233041386409947657120451793373430944083839164783718880051950897743636587029965741124191610241146219151249160455223271598377989045795747078929444782703610657668489074845889850054362947136184331926695219709904988852096995969891136767062231565833826637590593109858563432377458954243007920071918516212841824526093034564362668105777124859213389368511916704187823688567430082814590933290156600047223982464051092319942279164061987552045088845944755412625669349336460600425258333965989302321481532204692666251640134097709814195793656551518260186908512141583300803635501063919871998675845698195325331786695059035792270431174320546634469177678569154478368039212279761182961228673539169874905905984028652334733043022024035872612399465982082497612374267112683079468339340454539928354044100849692982504141822701657476482941901394844003675592790292269253263305813035664299460056024831727194097062862472027240593049258168843802617665653462489734991309557526843048966952706912190469815855844353742903208006223794460563297370875557066803536603541941458416685142510387925690015150964203436863640941962562193844484140396331547980031253539344813429984606380932747826739832311917490448352224702740074413705037595628847396125431837934277064467938538343408413658213504657225020560098978540024827085767652069981386179785237050818367503948325342608597508729114325696173055673309107380733585010748251778030333757094459879971698115687377045202902349279809858102066636683670494730149182021098400037225703844320892685762297463197334634894383154610102086673411385305155384676969224793882283822715513454226643251791540580487871763963361919289604738749367277163727958623642122289513999611327619489456442509809926942955121479517347727021488276767230278186296371928243636145495769093809234870240361753345739969570962040351152174352243920735066860447126446223786106257807232805164338604809679937806878717886016813762503907234952266337117872616703691151450056069003517168722119458899757999707962503133770956979960384947743117450235485138923164469397607738836612580473536680803942666447978349999995997084938636611729111543080464205484514407357682858312884659077129446665955532494019725224712604562576877051585976329830251627211284579406627384672494156563869740689106232029977994510639954188700851877862067818087585268713392783579449593610778486746996504777261357074278002936421895746558147437862585507078964460361194981387742254966557216217082619442016468920133341052995089614309894982074127584557138040899403779402683297359103000948934206753943461528641545159049452791162687486114155595243271088952514470644552557994329166865469969774014407509626211992298563505061369689710227414766030618869285961382202922752268815532201044818476722297433375383605744185965390403627175853971727652786305722281417132429169755114908656430414012198054773058557328042205304793646081379059660784427153138036067711804450598252041230462681751434243830867931868673110514383269566643228232097476004451551388904926204402011606420035281207995703831222116010424046002974931952259249280740392814633533737564076938898349640846446335847070755335481727006959591615883892239062125821277019544124485464768656591654969960301189715313431148031213262250652795233259433347724242353111593145393615018013147877258473450770411947484285496019953923203653719645042213694563071552367703099786505842871173662915829853313769266439352101519624755119845479974798228491344327402704311495948225063717607710874126934860444863290831167145591809237058179799028870282138350438631401367010773613701303318572964387825629258608370590394582731760670015016445847802445529274385105286138895543074960769581236394024448687774474633326743101294761759622520897674036956915029206327322217711555775464731888918161641775096165734743099977501613556765882059923380897642267094111670482916185557265191065451259144639412745649272504345149277663508145334316567543932815719944040038048703313167070838102715719526676562028557853264723991161371360982513049377131457856051121200904479004593490867970557197152101236202069324967222392922580559290603364322713948470535891466387199503832837452894963266459606666567311958209878948768142335803145738756235184097866997354862959300375771186117793745798415662656489964105928802840373816220012962722733455035076438912606188863308139065921872062795499348812749411397075749465567220865676403005034428920703341019015877536527608063368377901416666060266982810408153215770749668353842752260433174987480226612370513091715667490363053671375663867696836805454501010524062369461038704696442476221987153520388803887995714833301594634639746468866237992316576754393215618318416967629790827223514007756250804024361816206227432284808838286900780775370276350514451692385875276282942935343232312603428701873600540043923990260467567617393205604665799010432274273861886166399263939188126984289129454410264651407021482261636610829242642434042482502601448498891935064046015981329950603741909767518903170314327829757585326850900888975036910306210246585183851051496043791865521714635864662787112214967210794420204314274322320381703765946684800048631435702364594216629583572964435742455540246272168343633136915697828840831789064000030235442119065490984273908511523590390129609577498833076745516523677639852963577622146241896399327013318825773557612189284551006614062777067663897052995080007425981226922779507873932932621757087079679233747093883556826185488886287752720455082615662773083254538946403262210562123913211052122895946126063067186245490378385619728207865076284135013037480579423145367194492410387490797604345998790562489451845244953978936490493258366059451048760510039620651411326264939572208731260619957992464177350222389759507044725254864804776275182688661397262469416854411633311216978250722018920172004617002182079976824803561118448695889994341378015186042332376946031812188659113665428782723337749103843421692103111910358825460887951300280788212445635666438125015494018667636175251412040927422768795746635965764544598679580101579617691608615437482651661803443682840150089402226993290025784665364205732675650674813241415544090852454573264323502288005498816436071572670249348866780794474389130253048581878988817121995756637872178616065612261071182265186429526687892737017376501862574422141717469748558482021178985278478323276115043656253222984800866682308958417896434541060793684941453532933004977561441006597982528234226968545794283233887349588896808475328412314853986161444973798193483189317316668778678958566418778246658483076798632726657658585113145249632982750869533072079568936020125451340246565171945344796410829619636205293089294019233330505568522939674704226602675985626732706705017926619062331489070642536847223852262275446801966414963236099620370971737994962308062917654619968328035152843087083116972645762126371199407429975717221158445704648235715216910766198630203597277307016924153967598816634180545427006208573597475476991634911736572749184325421407322566899949542595048425721867939818784133773814611182532139943059705629938113574010434992603070139984448576700672547937141450284117410610012980445812627782334887706255083334134072348732875012409725800380628154532473228156528813008269766038029770693068604636481245458505802777305786746677818690047061934849348132569572328701420559416895458733971123470971714510570308369210934310929915034185183255851813919231484615469982318557515543182035009631899481083252461299177392348467817227643351338053471507805592171430926219325158667253348062132566046589451301866730152019671441630022367293519120270869865485398277570492656795027250602664546169753750860987823774371397551361886736952283728225176183367391130102881759339501446700915064426678367874157648298944002678322724472092980521576347295624918260995674148830932706420921688374213152952378573152640666603996615422425147113863641807735125070064166683626077373243982151475887973392516584145271590792410614702917635880283220608859739588067434254049604604417326723692640196631132859656775966551858693619500791615015997910034090921152011274868939145455729292018484130598873266659608406030429718819677926970285548778447896306079671651003065549616825101617241177577319329223722285569980805225067764531967612126003549366793536974758242314287460337426134522181220894941189754377127829081341778690901195015978481245356000650811520631563580625746890459171287507373797162773942342355366445461800964623093815552291402653763773541074877002229097535533758199916077855182393338445619952489989701322313098766013602602672847186175287763770353012080781312538315616973532217386057138687761384612147355517700514371507761162571191041570351645991840414451608863264927078795361964667536494683809223284277518409186874801398899314591680904686462316501495704374285840823429115556622090335190861834130625204406988061507473122374336835500733992752604444672885910406601676544973627381889273698121707854494945750165838688433148319335880894392016812403905716096892385002202888549652800946379790666527685566403734942500223627348493143596148024839278039483683785174857717327377858321304591463127132152620172549005267964649153788214755910108621012584119370421786583162567350632837392142260545546583870912789990445535466826521682128729050077795106863517392113544107939766376530389624723470244115106443221819700195089158835666209009867066752508673024465687793674558867987089949069202645092113056363099232663119973852857643229018248209254235201065763340383955082509855656380822764652086715586835518072551396423002133451061664499020175984159171258390045127580131608151067547635870154467373269135533011423495435462973334446213435163155839056522686314468314594439424168306975276104075127207535266425698303857448098624525286049429423964028267999596967950004706548161634034252193165810750517777421510524396854452423516196584862812730025844019317694937990353857567216021482482874641880873784294278018627020256076082683741624177191753898902115797397249253724072065790871472193137753705650874686114483968375461468503846036676367540281850557005515935748697406921564799160942276875565408648696258110777958610595745311379529651119601499126471731150947767583147379260908438791966315412536017373631261832353097984072767248707480983112032231525781651700518041862467956859622900064552440917205580133855378547529307326870144633208076828943165800679114771436449453407359553170744133383004324820651929418449547879247096354816670414269614114159984844960193393874155498663986321746219928740903359973007298967321865165873930368577508879327535888225160769512423574212913396357850788697096966083511325296904852653063041692995788832210521284651390711431959389750726895346240702044617777227663038958804136370062477210994764529332606013805787416222931861948768696490116977010178331735846928101190910880096289231412766929337737493568762266282747687413962668035003300394150860407081832254993792035290219781045599729834886337862467400837979780785049588469273471944081214961909071640763275049110267063116278602219375824647427271296241571192158752243231313631367996297235005614760799446417238431217845978082118101907459273978382260099328845737934816168386502993515432395714679214455281836256856460252071873283258326460697118242908482619400839781952751537621811933965125348261412541231145372711861582661018653246723210101308748827929518439522670085261392753619309316324820273003367620838747989190660768488828295495182803592298618423377551176925496274068638217395250554505723791110779288727471420581495112366796835612053264151562765626855935057971308297784340961283818296191603389102607976201523578876993019087449113818042415852961606861899422780873175013226802000853816614513906143480144641628477989018210464740691114752820678672465983333239646116236186157081688972207162698107456947200096052435750958443822035688772249719848423450142160664575787315865412240913125023690701728979218644012154173840699417686427717008934296483976154879643785391082068545096113963001379352027203488670302429657081084799832290927657937236291160397753176270544729540498473723910557371974076798640695097575718879974956830639403940723416491315369689286819363704713799298671832034474202649319146305192798464096527228249360383777049171178025463205049940667097844611741975754326344513201932163109994810046355026004865682678555435278131990589740554623458659390882619971182277147978096815672559265912961056177165851769543528384554824669035534047276710300882825256348383859497007896113450127409078019844228041178572730995125981086822089963536734386588531260746508922740703292222923460717831225459972120423587940409829764152992050930231336957548015838562479424879795123873058186415055032940261110445568564702150247671181702364893664318672988396764193833619202815729948879563632961925452293326699016477688385170124827873003550824750435745859021136918108206694197751221513435188588787800170133089026269593478746546220141110540294038348628365456143760834787428507615544582894704722717254031409934960679671256173480003594087387841217422343172840944802730109642910425561222750240416342818199605611268506909123280348405212549967097579626704425279659172814986610157357521765346431717304050842547029582746036573774540014102423479732391231956415251517106452744035348578511017945707895884103045268078254936402338666616911982853313589059320080340367650437192662506459544363367132370635746643186753604676295078720688049443719493563188297063891489614574455237969313057967220492668827833572088954283994027039652462406065981807069919596936637319727805932899321202248438437509592829681225256148741339029660552224783947699774203600358132112082308712744024759262586983636459705847534211977793198874171564365490534868197325271136998344073024512788828310338788168649254471944691397891737484847899594399537864132349723990389729096307359112897571335832909837802213033502301094210922270758426730831684255564823679712501105190577959039411494904678298058786659386837951533037670675257185315417844383923448245404356256498644970178100775807671581297929301344902477639914840638744733246590688335906542255381909889076199262519932325705671151439156110542821869782085663187395263131636298570543385605269610626741266253118381798630478635117668394297399709500529122039689309093098790039014236382910935506330670416872790716308881348046350606257888230040350334631756324699038654190265335059208842936797284666553026359789289468815814303066156029647406632356087946707931427850837671502529792156203361121207491297339504375650237853600068143688074177468639430130395542592894053581883193912126885456292369246769159183873437232599639726246120750078936011873727696662461876875216605154249645957140180168024785980735411739433039686259298033466582507925674155203439253774975170074220891132748595079102439239159255965885743531977980910507814509200233014290326578066055323053389029776133706209594181612004435451434297445407876452411630086848252861487366776174257426848243278713879700559170366510071043862834332149389936456991085310918887382620595188616707092549330253357903315750279778700401707009998490930855337838680799228199531622286359156332401980626543816669299617909113089025088988620520213705494990100057853054052278715807590842675150136999180937474505749786730656958161646214170596507611412203937346540682907575897118381200144763100423187390557728349614945757720910233367660382628504532014550359149938948013834418704039234258147115781926407790793241498407497007101857982581029618766410190360989540182808351625782226953678674220250152820238894299071297334932526514052550973812676162428853299706633451325388634637443768403093536856458291337240306648490214571926700156966559146489210959038627407994631134954208060563286514084254122156808621642831717261686160879035268649011523347729673878170885348782673939447845108267982284456048695961086488791354669482286149543649024068388945636621368291231385134146263560682737250436963499740406262479318078987299768334466872156408301829278960527649590060542721189151162198805760586774483594332704414369605780288136736367759720683850183122380782332967818368322099755967217941007827690304123518443515034149223839156034266790116725543123567148397952843487371875514718177440822867231255183833268442452863853937053847556042234043487765996864251450259250190893466386639478141852721636568606561171293163220817792055584299722634892538525242607326937467201010004044798169391953783826891355041119420549900183203314342236313508198744117626893821892811567307166623326546066639145891773070899220184283497691278997347470299792386885907130499289732246903169512199545492326646606183758362767770469994395631837251686175869145265964704586629935985320898183009646204771310743653292586020057857211106355255170231907202430332325363636294832887910089342332722055659111778071734869655047026908103182262968980469115693901850278785398292555378791136585076081477316050003350668712313588119839227450139646839748038098678467762640226650624027167407382218521484690068725655951278265734703186639395604509976392992217801472620422228464878262028131613660598692486635847400912581113562348380750503447519155625461639687252562801845586678363957882747294775300916804666912858030055070197446692631780059571553384587838489566048979824832821560754853254598080380630683647005267006596637398607566687837397103838077209025733484295958425349848909482394727854559002810662416376470869933817810947030430096556960237918843065961922449891845628830076901432339063017511569151144270855287858525998956914326331915958819696170296353897796835743404941513232499079375733460502091625645720360312891591189086612988628342467774157664298022965885834754084578341071477605755845482728942627386073694866100928982697578198069746536133744164289450887838591707928778947157655772132379664858129145583534016068496054083355141657970652876688845751082281429397519617713736996166078831799516127805373250747606930366017897457444671210548212816861266600708852450769894846311204784456540716962302934612830585416311247354180424268477341659910945976837054264447403370565329817213275297803096498606820697267369127438277088885357364500356094249226730812153143773873203987997088759897573797355027340450291328481947264175207981439746447879180417304169707558378393176959638266095913870268385628859635420998469735737433609224169633538736081438346683457765298321751479011643018069588294909908244549405201470670402956847843942759497239172071058681317399621209552415845519732952521700792696565973277003286829567943354746545841400155552632914473369041848459780469806006380737531611226875503697823834073241654218011899080645204486256105584681578885217095321397423246462383805199810478947932860476763953678741410738820143324997164614897821382527644607300096856155313730971859924033419620187837849073898187970227063148236059541409340496764322627421228160596613432815947392481340750055371414371163715885007387069958443503213847997349576776150232330021475103359984582925794138157676798510129221442517727763609874601024465123923009110091747327212410431896490967508890385138059579855068491806856575341614013751752732968236092126682074396484979877932751684120807292539558521721472601928972678280072430264332636973575385983282859379167291610494082677997003698482820036948191563938241432414387366795448391726790359499014360099354647346720410392175497522665687590076581300088882641259593779268084322485508475195565226634850318404973128987705250969108366762995320534887088767216360418760861576586530367157451025893689065424139814955518416830615120557292183020196950270850685430456536722714195966385935282031003690720537266782142365583374161663788685482148322090655651705641922926555707226857176249009735817617906714358840264092441306690876776488213892014246956389274276988384474953082993895836811258901465225351628542311071806303592001325039887595003099470612785843723662326456649928553622280056930857252111075208413842070486847614213055857801793838362330119249690062027543005593640125392332613000849433445845490252993683620490397795438366826406589933703263526125883217404188459687016790672092193485577265621482458573616190667474791246844500393945861056278565573204334281334595854003004472720039506799679731727931118348556721107686309042141038314938730273693386801285770560074415287956824321666319433357642158769961087191696012807417617843449460119454936355216528335381155563349900858095807203508179986345194110025013623414575626548492549811167071467942193178141589670908832022996585613832194757930087508454727071197351332470330282744764716999081930641893225922077405366108225314697988098893369213050979825074369563650671766788850344660227097073563831862368127739081951387299124356708394781960175170710054924718144667685448974456379142697932954442096936653114252339538111787676495065456470612923714041621660240162705171947500878760275883443003721899329128823804745450432271263756245778575615618096866606924516840135944679323719859243105323225356188148783562885256819336665076516834535619559587367051874025039336584110711005309907259256353125275905762446502250372222502832179637117280702112562497953024355866633666500162334976039020680610283661797322428922453133162526686941821494178911905713221013777407205299230998583403501802780328299564024277775939233747129418480886674088587385815971955691469925330721988888953976003510744964695576125972808942205961618039191671464545468590689966055811322693803305174918232620994262494180902912780479509904171090925774389180714821240960180588508524693796556812508402872881659337385958847463664023418464961728201531452127917633522380311689575835752419142987456807406641952326120402062099742549171819757524452305720031869665991312978746965968030663562862513430804019827232513539216950882057091807653404689076853651787803291753941318234642275233293810110910921319821011671135672615300023588633107086832808250309595395021162580976294406068051007646125950976714611525402715305387208478208618684989145053146069233754414902071561383576665828091902599749675650508895012491870048132853526134899424402741253633276725633545451358876361648380636295743024289529604372323112160721634115328418661132742828728592117024866404527514900098576790580885911256830508067081806299778814623943603166472947669473797979715044059773299948339907378997090640315993841181610005218460485491983816850959921586458189263693264916067295998591242702587622283448073375255220730806104691663523138452795588267460458170384020893192625494662934348686609688316513011723101168000377763169285128117291075782111892480995658413831478147594442212458513162616557451136335577474994158972723984369363526489599698070180562873113103353646818348301311366340099586137756781727162018863031439128848124463226760860328612151165351890816866033298451369612351682905055044408193525139419140858974691690466004034985073963374180223564880251609249420429743189395019096086649198797777178104781418435764658588024481246291097930443027512914067688808854733051909595226859951919498497689665564787528137261983747051767508542376244486071389346882431049702955371971423271225183953144771677226613373491075258906812039956069181420688281062109391174910147925018517856681089872418119228067287503428813347502722040031120755930386199226413944134460029307674061101603956166849883793393147573658120384889992590986309666777744030804543585333750682133418404938739092001160494606790992009873551765571394039842302426040778078711001553009069788335842140791409395333125266091251698012856729693363745843815989313684023085027121547389558455849730307695021481615234121015957992154122031978154274796815499529385535569182922944816806921689373013345874483231927190015283394147151678060482475097217039289725036100136825844120917118574445644417479151720671642503341491620542727908893578135133618638400990864667867529334162994556022133450882209060014397154551430300188677250045491151105218178395802343286137997277522824586506797504834072241374456867758179159968068488898585270444536658420689034524935006887789538561324389952670113614612623434162353844750291784417443112829328043442116090255705151927861737891582586899130024943529913915999990600999429405381198537898388272406548816221694161005770106391956021067638105238871588544677724157708540471812170657492316860793622775107429811556710413651786177160235961234278326403551186121829406754593243119659500452591616528019156884214737099220824391493550135456587591443964472682560088690376227562058022604097291839178644746982753491394560154691227482153578131543309441346284294974424121846088874151599911911161550201173586471055038673413925517233343809618589499977424896092311529642566977577547783426526582177534990815619831319039600758153250076575623211572913660612123716249508353371874857710199588626432600712363670659134176807324050265866227717210386845416112875680240783168264228586990075943131611945779798625273578925008321067751650273578423406358124206431711935536306711398602484040568565063810106442034112501164707591237570676225843210707254216997903905877327925926406701692376904708010014425510946494575382703727323601427763333382293693340895577596954786498727585338898362665759258980945585107442090799848913969227672931124793535624756632890068850027371267125328670795869944845332197019387276628353714020023157729810483010562141226519262205566428883935976742499050761811378890836157709607131583072760480432270375684619463101310236600532027145495057201201613592311433770590653156245201367594864901873145338464693422218779203356160519946528549838669477916928617446119548679474937410790101068329156744942491169111765666009773448007299973300257073307131327178103262366453961388784026859437593940209050760847777445062745268135531523921547859147103653980219866165418263371598095569651483354493165395079826451939085242479776270592646311287132608451599950094071340845776360984381554573905589716905729414731749656496485000652097079740795582718770036965055537821410582665330410930134442706159332721803799003386827090353287471855407957870339839323811256819834844008593068176173062657664490179127565490983963189504955258877135819219739336320658445926821453955598099965500107042829287332799629118194552828526354872718547398641552092815774082432308135628964361511274013495718965291355095096233297452689533960830986735858130427088139037690380226808045223357301617251360911838994005612041150005300455088806540396315284796932818934779145824739552755789087795073057229843038868544991465255575842215806300840961446228458893282933070996811136703839315085362268489463978768301101465305736042826600916530602463044330759880122323050523461704952193378360130603426656243633421501480250643133825315329595813715567589502857863741105203962547636804086864451179391492400041393194525639536667646270782078676062411827080227594624497147645633151462173499768648821726585371662874461660695695360357741698510138130673514749484329832929146227099988761465884930954736492437307443462838768631615851629041310416437899946664210221581391876418299079842928175760371811897026642758017543099767890026321310887935202489376350982723988756457513523400672064458956058932535823921914555582600209104943412106177072388133325422055627868151014325593417640851030595628616229806804451047897055459636206160565027201398351659077569002370954315362902085501576446720101307948694158164126646462675948196806108044915802202793976341788710255916665471302540217887241431148619035559740218142553922812994108207711012101229035136248366672242985915215544071273463258598038674317997214881190206809069575079702945479806434458962589087756822970992080427350506951642271718324475325314682438017353100581783307957527410858351090240813756100851211080856705105363750887229881689356283507821652709032349248849429308085590393444755418192383649019746718863958143733086080698315526809877616954823818389403235859730004817583107036042146498159519973131255122273917014963730153976742036731860156837894166094320683915435983855383977936809487068286477296764689761795454969053529748424240621667121474015497819555858611069285406774236726428859424955030559304876083681475168433449798219291841304917603380405460599031370588678646319946728474338620098948000124707164755382446097749674193230322538315247490802673439179697299900694930730775659379187726109183141619402366471303415701931762207883610037585225215852831761383591874689565903301330825924966666412110270235925375198069077732317350591590724516385516281827800997483577838441423419478724611882063191822925636347743517047003492749583581607118184426340518079946615821622865064740039146597619918476549289520574917521217933266723866281295568676531381376948322616213004209072405723505125485182105163316808977917787098868836162375965645849388858009119875799267563762923141088637739255131247962131239486908799259337550985285665123930042929384580052470990272213496484141598764522977333266071002652541796559214741365728058553486179343603721463059980576186793126827289315202635468696371605861473779018602271827882042095232735836512035595499321724264176309436696416606217996803997864920512162518660138574551857336927289305641513722796020321468069845942110539531976270356857098645121571474439483677470487427380938692681948500190847126928665185793923814329812931093953147140695766062207750582368164178475875738176390834222972922285487765215099752439113737134281329990241495354645709548765343861555471001769314647810359411457143070829116729853255570276441249771442025212468518169914110932745521955441953727391113705971794267660397406081462085727697790410230962452493758306786137836553977113266863109518903647721923199177612972422048958591527907248937989005205314713792926432041387398366261051552798464310072666607274917234331316467060284478242934330201508374540505578392716042687900144380713362797493037960422866204072172022030801619167781910271172463334884965429912543700354087337460192984216222415490901682700168995909821433278353356621071122312760448854377448495918890170389810634020227585033496118609784261312621398650662008168240599238924514736360721470383372609717838336122129746377572336331346335173645103527244309491098358078678506650755477116592408463711669629390464029767060636558961731482346252309233959094058085927505992710883170433346881281467895243462509685670955995960475293889388655832677392796730210999269483139008025354277849237202261147553524575462170731651762783145629276435454711103156056873809772964129160501544169739095509583554058132514396993687403196519607839339732025697993078984482076683188017074914400654145116351221740144096328080984452048072009750963992659959503782604209490095622299080583548387009356996360042986294793338873592385526138009094619327060001467098111516548198065376642062239431711366545593496592557035019603522945259652048761936288003140162528896776202513099923852212817632589379186493177751994117457576471627781660255310300955167740642391288708861427439360887629958564433316915705696148125054749551608129786858204091466451284464627727352445622709967481386304238131695623499661856410784705775081619453770534162204752946298910513010611417355877627549158127089983771439345709808555167001104578503674916414876070205554254263456586907513989316354201168204561451686559773950807302394403554032402848002697597157174972903669200526947293993300201049152929866403937473993512686680798702787960502233121781737686546188284316657341533048717337926528758244078620721859761518316533000618478370102205240108097558234201758724774716627682543735522487258829185944357372578174539554765112816608931871147513229633789065843902686913425523911491487001908110706342056995996354776780217698031967344322670568719252062785723853894695178551701196823460983588842089480337651329594869745538188415787289591153711939537982635145248815569624448567168497637814840889603866576252813707395072635996885206331290396384726736894332349207585069411783298783960177458995942318271691490088394588812293653220930834478932227527520668694030978199374609904499481944338043640686953407806506519767945465368953229538790995590564024942428205218860866276906266144297249512168834091446105827743246688921232390576237981362719465053081978940685919395371400241908432634061586998080005059260668190810670074259232278829047679000283303889057680991635997857202536382607834838966872672504393149445092679393360067580084808447385013468674621520863592123796677724242252171797164730340331402410678333202377986070614031715984951697615562202227014498235796271160808624667380432389092089966172107708400362603169916815101105193353611881177303026300581470371106837026520570500552936866896857422281810593386087855086497729042988124632765335323649234140578941206132064833029378408929658028088443185082493497637486514504104343187381643584360674680542241169095535283124761814207471407839220722165277151680613985884077277228104762971681178437090652554323277036800082598329417149807019338278418320146122891271055656094380592094600399816423373272384135375561009037757368253211794431000246872840842581532262804216128743262856283373897095683252745227789537511367411550491617745313839932295553384084053035908159641349375943875259848563365511602114233120751903589591804948002567391369188410629351763586071158511430904017087556505851007500405904722873328664790002163272146876217687492930548114439960858728486373150840863473941730485023723107718435199299589971408574104387639582293403976657732284652548448104921273437790052870217660334040901263030850150063697069710770402394342469398006277385243651982701354289350743338972439665682315643100925704871802515338159643353899306683996553096194844012371977837458501637523555788271503907055298989016624127251752611116270051056297397124200689066433211506414286359140164075487764327008449216743151285501148592103597942317769029996462515066330259959373003506677658224557431372780747031333187238503941997258064853067801589687520225926934473455640716745259873794383334935723442452991048323118181924083668812387436607037637989433095683990851261762163872076265883802424957084840288036390550447489243830677727971886151134733948814753024240415437875783937999610705827199511240369557923171778821293698840275101043712221620697986101687099872287931705810545258313307323154205579226185896626499854230999114140428444705439277598836805093592177078183595812369925380233777365243237772985566263763635752297772991540584715875522579147517960432906384079777629489661068766378006876996043579748246989760974384821457561251033321363396813600725682407181357315646751380989348007224101270382401823795350117103518589750269612151916390840888833119494775803343532692809414247484673551407293417389630338641010393914270858587868445279516135739831784525615662561406013825212504782065025122209551650202251265354892966765355157122642820785149945462909249002078256673192092062819208688084488095720829511998314233229539137917979299607071901088748285293527685575910336334160376634103027961243289698579946419602295256984577783002314108303522814303844894528366550508013298131534270576386811191427758607383131295369554748206544013615235415518317732889519394194022654993418126378854772336579804883731539563022827315716782291285603248481370571431613489524132772497319876082769624150555039449827961549291541668180321944612165696276050678478675015603057726021312244651385910530956060607706244052720258411729722784370775086941060894203928345243452067420821956715077344043784214326841307656245224550444897037397025410821882297950579760151062307114460007820387426182016672594543648952822574663074532875914334067383157081841056531377936732948617783160117106217483746756892922654437992980241617180298899957155210667484709433476084623725265115558332998277193168127499866890840285951116646880009558445761095584315216883689898671464899318497347995805491145644034484958716742608828912170205121818107969011674670206721729496340315205716794786551798104964097944504220759765883562637891024776694858961629480054488432178252553189425960612824948324796906273422149508342414667251422369018116353375569244038100887931354944153129953552610132409187666116871854735840770517242161682966002200231755878365497176341202300948850882432858495326712099679666688630018106154745261299313572084575410377959919655897954662284472622999019538066158233938493020880306615693357108207882785889895631954723654454921565539132416717614430377909194470113534079621704735696322538404683728504923633224421584265420520764668967109490145186596408102550076042385469700433527343226287940205156295116412486182438055687421490852635483366217464613926092639760270249729095121253488073259019138609087503310978799257490522654443130462484603982277520541086497538057514381935163914331069017828228360338633054317377055366269707915897418817098150469059603939461218533955236243865269868413779780116526669533519284780869840773903836675788426115300042412210118678151646462569118815637704786376852011012843828757900712202719684736768646193721335743177468043069638002871795000585845651058684421969242567575907723185344358288422257238212981821364933988338868036402065026865805211199065090686418939964153990884917214893303182727478515935266756442550531934654175322676576606682964700539844632013823982929684836379808972581000813800175833104465931220068727258569195607477797275661740856485143487571697082255121261148197376222035686697453718311934286658086957710429248559176217318506129906631952274194709848188511715944143347693514213663392458394622095278909642770088420253936850577935973475066095749127692761081160624182356383744964271967982374777238781550557805805345333815259177225612597252987942173204203644288096233641609856754225615214901640087500626797353156367352726191318256503115855608956523932160106357034051421718143664286227750304138565955632572028829796168150795517378171434285709736963519118691706833054059523717403903996278423444134723085878466052639496663931962454813405882678693001085080302550215457065104898255013683834004145077795156967019017946001453292522191241920057902763274034405101422477405636785657580897492359837572976195183162308004223346188714211682448755747648672514033734950343288987927439289422976719955642086863215353034994234406989547098111829491281202245639857793160056796667740156987944917700346544829525287959153099821696396450028070852557496101909102647276498050997660295162716590760058292261587568502632409542845838397468618505546873712809414898042574288624374867267984260086821088346172938641460609547397947992327469311302354118360916515464023715879298143005623979141800744556615320351437420505793441636746310598136801713612300038190656603595328828576842805320762118643661654898815553838619032490726903309987761174072172032429257477630654773837508676674813710795760334509728139852624872137206612345131461622893033299180951400462935372469209081136356176454466270190941959269946807040860135530553299267968257837267411943825405888024297878008575269217392648611027705653913245216048510986348059691373267025821560756065322962519634505302885693612925246944571276542315872498527816556104432452597021787265284879607932196177103634841951518303052800819458447046554127221215195223245510832987243222455703692295492540327182137341211572230608915243018424216881879307160079644066053457642720578608929078242391837742854507145344717603517344802219460105619478062955686836333669065207622658010677228325009661403889398177368661483935540295672798035032568188024970784049080603045610929143129312321927556657671484716528697216596675085667513199540910777543069627378200954386480242742262020178639592346353210042745741958398913554853046455302349059432928275526274809931315473371069002099828007258635090768194007817158517571441637315466355281114729203032850137518733944830635266047775700538968071916169766748544626844362905508533975558278278008341159984780162895810616266385727635044634586295148771882451919711781929649674462079748062775164705482500467799810068209581770659242934271297542352013173647636254400352765517387080747027237256698728768311871899148579907810973213705234742931714114807988581650938140063855258095919151246203446715597410420861998945985933320462373650777317686571745699336556274624103739125311273086384788456270430687403230083286627631324594298649835975309524364549110460906410084321733325069387300880256279680558536234590604339360352058987423501573667528589372921065686779112190928592195629703895411767859719487684866190787086712502385271288197087087196782700383620864860594437050241880191155976685829551647715691294555530800103564166309220628886103995535472176484207204723191586539785647043317275789592732901375713618560083747137393628398248424852587488746344848854582482388925013283585959869960971673750634223225862308590872935307383755646068842536496641457581167249459166657842585096549048508778170335502178413616801776726848647431107019101413975601791945779567547684576386148172201222353742260341682359645854529468239363358122937873840038986398591109723781391345754683104580619444971660838033719236848184617536174785784700861860434413850478981047946905146552002804711862092281660758896492234230132126917281157673240768270201748943529152371879913995573743919976363404164124717830119677998288814140440057986376082204785581074427600390962740790810312954172915110074613251280040605618674810742094696449353961480076642652984076383239882616529034312598259763380160662843012681238370725893299479509573024439296775622879931656987670847193845292592879334570516852239326123591406335760843435039372566131413932289490924962978325148097199828324727343526625372365388411848577702120502032699423651408048835661320119942648357135518175882568782206510439657721146049703072145497129882438714108978236808646314523636086926782085477288389169677866963414627705612758687371959231944254908777807817569717650539751529144197827295603441132391844342766298658146966535806737141206807622971605991394451895558936540897534192637904354583347775142664827528257320961535010779968865089842160342119439199166765224068400275778657776952121971116610169932977841240343480963348736140807535142603013898113087567999894297211559912507463236265855484771655303798751569272626662414848640102949887407438869219632878238610395957620754790898045034690369370558948993093928692994157093103685056104883724506131694171254638972339923937878199480919338252499995426503536439759265898639464335465651022959039721761768585178818691677292906890724808159135419208214618672879219218250138333655941748077464666720802112912743850740502793080034672156799265905515598277842210888742461842371489320846349251581851648861254099903397713524763101576639755990190989659578861930501428964867194049168302775764566874856595592622064976355536130409950997766638308876748414901708403373556736911170234139800162848724465869418515042631831357116555501116937738656185781774172556576871525681040951359415040136767729634209172185855660688998580187915463920493749030415656089989634038205782698620856832316576492436142592268831418881798918417124077632745993030138538839800679330855758225127568698611784642047623546843112467742134024660038589341526098686212157489447326021333894773952699294113104209845880812181264674922124900980529520938814062743051123235513382509312840967896638459449282803411833812130763075779166421109784161102617386873673572513180064474864622104339458814281636516318828753643932257773816107587578678509103125316936954876323994613246585802950696429331758879989682500965979183585508093600665214489227283135858538328913985496109307586033318925942823369142555438203684715276109354512891614413063772752351825819924957637956431961924552791601971454040631986988559139888248976953240809936999195463178787768295285670710269834583849359738182031900738646516651117469002898061566162077787368475049299719693310649709296041509591856273940775487590205111858694870248908340742576744135496345720683669057753778538391719828945996291808300920652330852518666738120538977391688618314512848263893191660879708668465092952846956996651238451023178397355079336972155041142968614083001882852205775962249551458168725709510019554731010762101734699365901599667649542645554858298234823415529084580698733499348385561870503870511809442191602244871526048183909903381732324776303973615589479284223247943158465556693916218075750576002364305359371438557396012105015556979526335642460603654856484923230389622261405766815654502020043879878321193083281928354951546831274369330130483961152456768257728955591742396629071532083298364401110027124257278664584188905872587617319311636683217901094783114953380704623303287809769363003405470578719145482515834564724227225729816615115321916880519158400987132963760045503019774809388625886761956789152574998458524616957213360988509896244254542083102761265054060881546665379751475716672539809749299005268149583045066469506597202719315844926514080815096667575632170400338531622079155658071396614565991986366922308398009595433716133666789315681681006374578614040448828759467033305409054936423916382767906431442874229723507372260005250131055928679095264466253849790429511703450046152327969561786847162479534924827414386128697559764651150629669011315178399553572297657798565658993663229453078339120959473143975252419909243047318881748986681495385377341895731078224761681766468809772694475425505761163073439641838637505458542288296076186321929122773122048960806310907438259762508120546947351150544925716412804342082679851593934870872683781683559025092305008977911692483388928080447860136599951240539023602931539812633293677872779803150529777846466399678037340519215107018258518341563021954199254672414210350923817737162643024496130603105170190601330088770290069850603815583136451885414796712230326025668958337931492146868603846944821585269355779081347072487009463527598103128819333753099534486536498874865301067445713246093396769674050944040282358450632443402623306927856911719920702318541341707894216553268717439424894491603419658097163572925868591185671647688217298542179626889276705529824045994964072313837884752850934524377603276993786738412505928722376903083082939591975358364240114890672657713529958574962221423706262732808279734117980048836612068993233041036390564222021219707589167276201011847840600930130658734115229809790191119803480830971645003764756609350386831668206704055888474829627580780818308018162292563577606878061037567302756045081011879848613877224480612269573237750249369647409298833111735532760163374746734932907321275491729832117466956593623118356251866656726660793821875756879903693361228127140959028451424498851493494730163385637079575281191264131300905122229883909789008677658386993439608284164836545303944617447605090727269686507350742191282440863615305462846471161341513970606368164182871133031400968709605076783989234107987548929673097224261187916582343603493979683174130210902297992327800191327005555825823187411706992251938546271411115042062519527485643640432296342111551347356307692544539822028113622530012607233308568483339844921463147732498223415377551951900528531668648833839268789457993489734218457145790606864870709844449693473304511433949125247776067118587336332985483845640282408530518441757916621669836104460744994912712873565971884681441135356930899044198012988112967334995586320552925600081670828456054679625449863524411813494103441658207999260640730645780957032762908109827726955203763275668416635620005231065376893730988220707421318483053752607687000796436281957066806438525893789681390625015116683886102289192210046807154016185928543672749711544878254495386584635747750172807272582791118676810163508494455770050169454294134532524666016239128910926226369878292836393275118007687597643534228819250740015537663753702803806022192818230480551485543267500870371721334614517702009045690938410694416610342416027993582342357610570288207812464486505084183077517260260669079583894543095483126843179299188895370322482982856957518776304452097970028817368102181051035393230488255504492984568281755303182736192509847939957867983294616420546706774027426835011861010622495374285508637019170640072837593348777045612672152666105530998773485657904646406876271476897212955927124049139437975663492946151485122748966248590981872344711789504461109490310633411923390148448519026325697396788564388382569155202251479392889403646148475465264167398676740016931462381538696901884186327351015009057823733641012927891099750427725388708023611564767190198110054810666002620008474731190495636437818925588989273843836106156963459136808946228230985881125648554300639080263294461287530830376676255654488421360783392361657421904145038894039247987681236412842707673842211196927948030007551078406336061005426841208299710656637415597115651473114116933748326911440315340862830967248108610628595538692182394663827708502551843462855975789940101820889501562106196155626244633591844597404498407962463357288952425559478611636912066407450133635759237098707939545623958761736510649932130196308580741337365456353915750666357214460049343900082387142531617528138430309662363884507397354140512875732694362524835493247658600763754253273266123344398505928012514061021315944825474037631984000228160580755090397982942356280167947982213819631246841659039411191779569896713991176741970401489393747835911387858144305789971842367707695960286617852091075873504735554132750023593053891637810968307574861378659425120065566962517454732909830251354901474217183706600671354097676431301246433236575193497028419267532902657462291209176039224618565182585996233996042224780580851053785835298313523859600799783995457698900610832406857991891307688187278611954812638190554188315989784399707120747142781713511943659148120257375320042343247776296434993242495326741859401426835324024899275157153532841262144481029128256242614506125484862868344345621982174874181535736863308056053897631434958497229962552738574713874505868319109977904859906537064000959457794232338834655604974773227696109810423213156299297701891135565266029907997340929276742841161211166039602378735471194911815430256538534098708835308183695152574792615104758311605984766689323904689622617069766535584183445805196140140396720070534945149237189752679853795982805983806306915873529267841423051137862763079265889221271393154017315925388300052130769982215802007010363652064809379989370454540176754715977226349393116838136655478061996777543248886411803272381775701173542147951743687399963229588211447738980555118568019574339610403208833432713806161923726336728366929555200883124495077745503546503811850454389914004340049972266503490215783685984809722668681630147451401314566410330638186535249351401499741251617857680929616029600867855846511857774384303060613860623472516444806151505792254002855122241748303880409961504429610534804000897262755626540291808093795722003931967791918171371963240015161450402205379414525069218091368284661723435211465217274551139001550549939686983794290458446548866431922943743706373358285395635160105754654055749959729874579811822482610359006139141651241246410677865759822929146976729530582874580456983273996485225787142995162811330077644075027547702438881224470666536232329043732062729310382069834426416238474889207817181752110489229694324184318236537028393672857276489526007727732290262778425756409106938601937131251469528870380605571399508590721564062700868775490602041933393917561066608549973600905101327464154446534932967271530083279757994570679290311655826973907307220585720509844055262662472614345057139594349639035364192170882937579860422261058514850610934594378922330147740448956431489709938929509231556811112743151115825789758060226010821015449425892967381364599500085906885348191012410160204852078087544885951685747283924523346480496148035548057378624812769454595761491209751030199510891051119239998208057401018456077760283431194102161480910814564925065239558302016298966675566361362357693323560588968717812307998168515167953282923516338247078667886444784835479644491218639978478070780033706414472772870312498687528819527279416748223858419302075597044041068386786401903785258823948041489023654769248406889736211801289690736335886525846303054394240076563067390242744664575162930389969483895154877921916811823857409450514342567046630558554236416204232051370517238118011828233908449824058841731261062922847144843316400780796870638697574723268873525159522374403628907087850772234622368778540690406860914659851842273497617516320622900204185421829390450705121082997999492564920858612039575488370269289586576683471823708213008886206798066529869868466151031439366249265283826772325717730693009269364797922926423333076673212733841852468950270290355637365647292573751390165166756565234630117725280820716424411790042834801831512982775227770801786156302938393616714757744743755470354782169382752818533451267279078816011774203371967131871107187302574560829467811388605554559340653925601353042949298590208937511489261140110539901013053776455985991802828220461644972752183906328194589475035091008241736070300626483215586937051045841687570443139140641588872170052134275590493606649512537495342401359309561094104522063306168928221153924861689054345698282590515240748239344666761424733583935528282966349969892761570000862102507484196598189580310672145306696555697916250308431944972542313037982791098445431412237583425963967451922585608800273159463165931002866007300147366586139230359760119378830860922970441580948925443164180902187403476889808848394163003023226355619288090388792137634518453670890633898890255179695458034691203651769023879496523911522530378001185312621489242953537466676975191634234509536377383369631175518917879750224235290929363832600808548708900229048155497625831736873520289357920470469049461861399042797488631175889839075152610596361710805362260219553840151265666330415178714202327661315086909968162503743732854247963964732998541220159793838129235150719207183342109222709100253013063571476354239072654400969365637187584278017336171246644839130717334310637262993215284276491867883168669750229385773595213400210085284752628903275310098226025036575572288411891973973787880883379969934723172308566412220700794651433146414416333405485599994635704823009556374794678565956818423268641845834453670984503496443308403127543856493947156760843678222388643700430645823155458905119885080064802409693551643277749009761787450826473088449623713612199597202343476006770954610516647576898256979563003350470379355444354635847656969149563249362101732024678233036451762000391325346920959778767385070038606993510638911598951949300958185531922251716990429791321702680830733009932837636404888637213914955819144063576260881904103346774019750446958333940921156116595731942944296918918694578996751269713838117666725729442799471338869997766650310994738505040107155901462756267837846910201716084103322965891785362668936434793519288036751697738792589545298435991125652742072274326681584918225957741578492832124450708228741873616936606047475329433173005042600900307517217012497723783883065112547199511460674422564583281596112783065104699708720339136047016616182969460745427650676156755781225607686755752991155417909705481064850565353716662807574102670392745267080498485359569723793768875274865313513709054911766638503798121770670005215174815509326013227878045203243432457605303518907300777246783658134731404272454112448133489560774574861602461630566256277599108829895052274823818767359012953273290148930610301880674473676587755014310958695523729734071624238877676808497701650732461627431015895117805846658094414839623737850821228782306191808099793122113143976196447873570885805208121433990826179931662610965364674513783344383700531998604871918051998266260292584084908242832185865028925890897120306080527984824585678935683940847669453351753679040237650836155001111208881694372275571161426294312964499706844245224517442100816410454734186094805793180813855944414768805742667530301751189234377976397706704009040952635260073914479089262484762713596006672406268206977610850588425816083749333041072742905612584645999883971396532122277945512945858067808987062720921941117307065998906667050838200886399205347608280694437771572716280584065642206155305516067481721883065690395640308907645755508845284840080656797457042463401152783095766199747575174450796489864560096052964864566316174422334757293264560911922294358588138983283325044294710267283309442736912937791764380900729871083803239092106197480044915721262574725913563274322460188619380453773674060375792793869710115395818248405218617774752838893043929893563190642409240097832230947982450216992341590535552078014632175279651964064232439477182102882135431079198820203805640739816268930631517342786455254870635460618602363399194118731984651249595439917139506784696316588597538675404401481048713582781844098965259275185370137262241639277072582440558444403642745416318834279791575909993788244893662676858804655121785909386578651664434816859685319719028788106374582354746271763324713748982475983821380336483296463398332758235989510017565758091496085330260790757791189197275046350132859342580876625037457239359807846954066798142919837772826697951110779074700375835139963492242691008554253195732847308768493154792059595979317332292195440778168410833117464434179489893563871755606955217190873006389981525292696307493142942695721138915357743150923573090883229718520545282517971173990887093258974562924617905087485194804450288276784315115518977730935242970030475720103292965371046386900430968113127877168572227565400669784124345755765209919741718803119184847897552417279248304515464596105994724700353968276190458940399388541149483865872750123515702925435929736269900251050012805916764189390707324601042482840770117199324733694799444496418335938495123940312852272338223390524412501686225299515851372731547047866296672828414982951412238527070510693021598281137538983089405787575161263452080002019496185760859818835019268974515085889264693572108579176998869034931377496835977848265991238453534020000813797205855323109571576066753536859256418455016132647975858189465967293551944762742395761028541534768733950414353295421167354288423457479715275108559497501004487319756283429157816023552578278596907460053813750351943221330634950760445569947928429649903133112633595249812543187435286008351691332514307750558563413751171768487602979376794566945378038090972019376615340249348341267344967731408787024095144372114499506974794054071271363431505276763932291725535183096514507079495538707974380390189822140871598301190534905874210090463990325517393008951613429041217112242645094267516772183795302703727764907041138943219468915459842140202073437265232458086499214022178791356209055819281324721509249988973775971289551457571696891461374478989027286845344377881700660945865277488217100656422729466460741602900899319672803973591906394600728182030714226155724903530514819260326240756653345709294248216189780942366506069959505527420643756293453916903546276736201326033897980731501263591028516308086401370699379811140828311701671380071516293916943218309763200511324994098473808383397653694704548597473954763798002075375920501227976863789865361533579619516133532715462268251373883839838640353817928072197639445246040942016580468940098372213609684209487065496535778738568094981026791070490454674334785368229676419048570285831151251889275851329306264224750997951282356913470698257510192073219477987327415608790642416139817569573974200324615108038875413899848842303542380747313088471073200709928255978547494204657748856341257409648528475509274986677906093074071314661260287685147085814340850407199353822668539767913087071932369179553427092548969952263213263820159517047872800937821763926432364855320297758016002217207247623500383048230009888557474671293445211441348332616751980786754039822436538541204513109605792160313181543447257403047483012985814501879054069361729029865966412937653408924751909611319927151732211286282350973145008642523651692520404834733201946672618123547219041763145023885286941690704197779544687005054478152826631032100305071543769007913982613066254071898650333733888445378193005459657996226605741105170308703555181501340140471937544846456355175568864935914845071363095366140097802829329491290430279170707529181608718936781134680109748518889140771553502820097055033851760452561445620771297128794681427449322386950470121335465830191501251834683427809250972319349070409662509205389766878605690264822903504275645342107627723791513752951401003321560611654352005927747759289263273824654784591574723857342313936894774107041157125529546765965348370934526434681539037159849811702717574145396065329343010497587541022515222201691513595550348509544686619886294782539141127962377226588073275239402515097438243998635949615242490679206593058978560762255002801142502046051495552917578338170813042863146053310170946381984980269341234931794149986491929760942471478334717134285134686485706033443749921215949229544287795878372913844090061110451513047409707134665872042968728342633740324302553960558369107857028551712401305799570643559885727792573699034817617569892442666920051127323143706870838291927603306284590680445758282586798251423508526043192645128848789848408487391348653259965571187250935528664354878065895187263695158555734280554457903296565431974213322520483810046500656487890981615541851011263950734761851109987145884426191903787330779392878495165295335869334648213160403109276600119779628174678216156561889247696726696396740959377891070669922656031595610539158139710671945648863062421353520696566223914253682835598951894025101355951647699551522416986414352140242936536610157600903501790541912946901982841023955897870481388309372560594018791681112567059738051861600847221095646441507688668172965152272749943340232272944781113897079467181807721729132718147831812339875557275687697266466505597159738926992560522244746524740157788882998039913209247157685023145805591332249616797315201269669571126254009639839912652384684707996091329497077197276332879325304474262068273346333453902856254726684233083564447640295876230009725239552958673235354125199782667811811747842839681160260745765750203497559647689363056093245039069520808034768068736741589053739339298978882919453923110530904109634008716428614703411611111001492022429142765609308284528214466029999988366913445931749021090067485166983767677386230887788199271948529743586746465287991582639535106301352871375044364204416654033874688168555799584538631128988051846905181697130974342758594016207330925298613240905634418580864262902997582209238204192620101827044623944459754990289400661265681219178059671205531758294869315392618183639238009274460494849609421265060757056706307722818625890276102810348361333303272623537365627163355048170907152847861814489768973571164466746045139276927479490730256462191294971080845088445581012148275932315720184925439757205188574001234581583649431031901219744570793016275149812586160103646252442421614978327752407465161269473292639721226946401593471359256757872667685441832253450118863468601660312584867885953374961764110018524530618842702456076342916499182886417799648808732266116925572891478411638382427963956427420260334160389165850011550390860973273807059010347277837269733846005101202357946831001962031833126671306920692629548049593083022564249550830483137096711272304412601360232976874333296269464441067976200774097661284093981637983332887210909509614730714964264934331458834462008969050459770451033649586028920284969366914788769494672430418776357626403091638676465893916910838985425985098197159449788208902661742840358782242115072055280025590387461796836987209581684780400166161163869289982680325616143284229130004454641833148390033823740675512603522468344080195100184117865231058697544370531253510708418296044579668961696871442069174860428659144636659333251473910342509237902117985691331208351128040086229397890875498340499949055254141060973744017320808675492150671751540225020345250239103438232165769863837321635292363107741498350253211403100032921721929798462667722811324153056420226622106572693065329459329261835886935723944209600328491792027842570460505047307237725506580194818644988448880545373320651453075248707890383989725545657775659253158963201920134598213029155116765682500287585722208132812264932736440452866557609409088663571497625283116817435486868158012498398824272208934860646257286364947624109978632815241013077954172458615109968497837219650968493464956191200311035001374247475726711011475929224616224736324638905099812072358973400662686372698088612462476838996199886607251498997251936012028548164117930600516540092099527017935475297250590107855137316853323265952106204942349966639244454663091599492932285431112265675688595227195392318799433430129366136813068110149723895058697630968913800250634047537894615012364131614596160691109728990273445561878632850629310337212219482052658108503726771726992782850357029735230446989179618711892392147975838215642907628117379702868004276047432956002108226365725629806093403449598296050424628500590766126772608825492229097502781594015659292300833012477613337897351616653776600503474043576330050650873865955729074341325165873666736196454939235998587231412535012097668511464720720360054064439995749364396979712781866199360089129443093182635000651200742450579822885252417923908535472232645537208716669099267628057124115836466793516092162792260432933790096619512247196349512219409081630049572684631341709766987716478289396055110696541497720786857069057728257402979863201663408288430795641496269633085750994210677266905212468146976827509154521235632552900385984849650798821099834904687588837019338623449434356312646815256797966494340826250250141168871773546693293302264937909969453609656719625801908022216632922845253585621856270003095718911059480826957634511851435945126427312110080983640716961188359452490717200431428756243444671148023729977204297458543751519901172276209612050537132772998428571549118033215416607083890695593942812257828460203318835730538551173135388778030581112717683460618239979736586129055112204924852394064172433553725261009336775149554266792015515711344430522166048052395591476295049593568518357710875759898914781276987966244366799252964849814258107761443932142306308724187704313814089673121013447112177107551197978240849725308668915675514795876002253324623445774682933705265270436568930211982789744910088500497323606168173268482809319583009468869167380682584975190992484653468053601737820804828472801213041834831052177903221207701793569738197825913894227887843454760724421161220046604816221167755733621067087111917313223313921599162902756521811796364841653732320971102269460943573538915852733050769541322605448574872447939324458820348476121775046549584188482595094089100195618525076423544818215898862095633778068093408750105128278843503633592743665282937925155253633625135617823313436783810300825344458090644122029626366677401332381524068497013380714811055733354252268487970126674480132423124212608123168194010633460690558802637616058581951442991505950293458953051535666790878584479898807504850471310862671453106008722388936845005833654937272876506064030100592645864243251204347534329818848521736968943067776324445553291088801413054833275926353338792725103063701585505113829849668713424129793023913121838140093395664026813956291515824728416457388114213697075873483701672748995939974882152255472831113148050182679223008235514308304012703533690263699139884807468854383825147501897481835129164918883626032896818179259490409203968842102175416297490464861764043045884756056738135758847957671716384405739784171856095345508453580201775974234603228086060728094600845726265368839485401613496145452824899839339448454282052555330829824692677005473788889946348269844934661288560656549625906001078431100366989737603485999090996515226419154163435965442638478995295700672940589386277528735659944736444619983650168465906929096523975789193830549256713536912265332404279629576729675371440167369225275193533096165350889258925023631907849757630465378181921365597560892678389332859841772746021905995983828140522702044535153412480914276093445201339069415785728235579639748744400930538635750719950722471314237515922310398383499987462512489869471285377839796171244460348190387477475381410477538338552562131059610195202573102768662247132491190759771189635800544044934069648666036285517074821821781378759026987485540115811326444886024851913627050216256219250326139099070682773221267320493659010391846950648267070579852877286474650776282808570160007707929339462670503935032507247170199177085194933630305073929915738020793016791407774916318470421384784575628764429570983093417781588991850007946494771875339798213094136483905859686618445475224985777474979226536898713524524873082680263947761182774106805698452374829373894907046658377398171868704979880243280293288162791725941128599119888986271596845613018949044330129968095003898783878510437548398488171253635875669678577743652890813555625498680774227578026616810245696192388599030065919494437999909218516035450776943969583897449899235688047611505586649500484523890093588913397565594898421392259545085379573735044137673107863539482687399488713353186400796356663255231563723968985983167279362434374267911277368446407173395178386317412933156573286075205699726364194670810672134110196481518066275376446182736165046279386706684078596539872692851479099388887214270327795842770270902551278251000109787967177721890709986151446672448997393321383630421709985922627619254778630320128602539678999627029471254498336757867312265377217000099925582197389610292289904245117376027142927545048936421807543631937994923049659672986670602749952969016519664146367905661721587516902145344080223973142910596960874195494796068843400877275192604656645425140032386997514031782170079330869593782651815673319581650146880099042002762392668800289533696327864835942525182752779062543122118158735319920198595283676421243227707019565826799834798544410424968332645563253043304941721535511966078376353409814004700113646457957713351193335727809546059920449845485930351824849607058641162056179029663000777647267016551550372205821063979063937610498705908332786902479472511936695524956200037392757345416352427679957150082040022018478345180263556347933175134165920943660347219993452107214943719520885913738674641306440356912766462563660209514998499295876867206080689765306346098811009068666235394250596376082167554718890484894503375456117819872849745192741259206802241914482530744774324214796059781271052943966466829650198941418187336394483542863731198466465491393587290553456730184665375355691625341628022357425496339559448761096033116516701848821332810787514442224535002808288079470680419411262666755203944439628740707338055134644503667500023101666304941844554748073387592158960956937774735488335161131613708773204946915650373666148078447209928603318930745393407179475471240739174823452925198532899568689834931560720381590625165669368916495358100689220140889403839945157131432681202508379846724190621334866509016813222725412061848578364918026137253762600586380947054311781173890657631238222320220089162200507680831252607038140004706406104089613885816672916872471952819083308724708682668461607078016620654145816413116108779761261937311429286307302106261591365814861338465588365088361051231581301106883633123172876433486994059928737774112373710013015973935153413453495960766043785487039437730560090209630909601406986357243117537265942307866225663126207092322078911159173489195107716504809128305235078993734802586531375346277491917541711514403749995824377096705562425766086994672852406337306361382228131519143420584145926887596281777813446202902998906975909767152522249754175321803810888869542262293204322115411336268841445534566203896140379911550468589446970187497291052571122065164851715087040275107437608351347030478208058118892272119138554978688835383073352795952844693647242140036510174972703794552838480256182144099875011505218660321478970846968378624282953784139981573912110674416318168633647828365200790542677470166750506316208541199396429393467153036586058629012742364986085570934346804576434844321747399947451317014381062802780215030918744401982322723361061626798208463327286376515293603116723826035236270936658242460460065178345938912485936683527144242066646576262268227744238782847739653902231484695888999501311100480400192165377367690613289098555545157759126030110923439940841814090674323748245591393895825872873828995735947323222854844374865968209877018693548204886706252832311489720975398444634571779242820902336181440696043275844457663958743762860948178959995329627572977394418502191938664612901823466951271296516056865121974336231727461019862575838554196187333700893671313116168121034891028940901895484594768325927708944816424819749021772051018798003875816448164655244979344126909853881503447082859500232779121002370956237110317469724379179293210949017167140621656761467022321582569550547433877603159992067740688879161159488901999227408439003189274833262675496547494089774053287913251604560872031948633441971363361385242809551720900855548401231969233256313608251950241775545705477582875946791987932921523830735787840272761436065908191922138649445866589975890489701935838636340571634107487810874642108456131831298223143964088260555526365063585772112246129653535236423953831081864743635878411214166020350849169083062105828662636624445789969421800004062011517742708204711532357395408747695860777472257800583960765447955725100463201997330486949216441519852925053814005041781989649846528413050950102540412269337531290008929494632836559799764935644027156074482049321510297743066860557167596241253621233091588730408841316774634486080202014388283507171858757206585614723290550470630570651620677232348434610966312133715415134483854153584785699403327875518409637387554559661086272693188065491558552152358337245110364107437137810552825129880964276813005190412406472895555495118889447571459711176710871343916915273719936273793198779085602319348862392952505552222248882446506550157781258753867773656716170160401915310579858374110048543737354736299356075780905319097804019218464692559263524110040225667186235841510003797752968295259598682155192475220488747899996460104754691986298989539614867684342794763691012689297044428519426310048126742647973425217718509074112207009831021319152011953934250014193747550749025486589058846403198623324895411989194211226614665284535062943790386918437521852009642806836717167813408887525520365367468019073423191794790490178848792389246033716601784446951504167543125957978915834778074533029175762047788554107403885844310419144440183932509773429447214621682358243443779088518893470821235566189623462430526642354770055835462005075232158333680150663327681328974682303740111393486441269074843780889323001652624039005195215175156232759499151267479736137520698490314892304287629411479298924939447311175246498382140678803216218790067088941815857410660455247707704801739487241826249732337019213017962702382655664057196254471343658483737523168543306368882945435865411513355705183859801719197565637918307252991657874335354981818307593719597956866205518043568404874529343868883833823857317763682961487140957519977282660163908579380000346314200482346402044981173702291365844731198309091940072788207549428355034628496165403226600478339699557164516574337167685374208639286101836164340555173850950678231117705824201259630513194993565045770543069419728387887149124451456642599623536874639829622169715626597215329829633908545967347284655398972705211332335474088480429166822176956960717172765990776866181003681582147166711489481304962651201901981266402978648006036704320247934272019397419001060547514095728995835311182393163827400522289444661861895469812056040036192397590836340310908229106729563086189655658350633418138749128693837584753108200499094740663442055675787527949020072696986340626366165436880794534189642825314211267406652353963366492303726451777074525885244511943985952457764148710889351092050180480357536908488019681990409272515885750477720995127591497698511904138176314898859612008977454449504164954704351982995957027162891901588902897964062727691759093077904543146437977791792928993275621762541038541759288419285790668349806381750482143949884099346766394014931882946685736218644360409635502220240206644547475469460250424869759978175676689787624009738535675242826297671122143768864318791204899979460184907560256447864055709157105698378880194132314179590571063764790014879194210742443449560172761148157139194787751359099998799892360649686996924353540308394328749206456763625269202150174365248991655596819627691144470776217687089875490727046587991685886108148439512528033889190736634238093576241609611103535416261381003292942297542446086286473232542296751765250864570041332601371790110205552264309910041345134308548843614310166640507912814423247060696187796733283059435757348179533804449809899360627512524686111146849377868928848321542427041942048021156789498859789143469844268986301629922918591218989602860302226313261846712160083029722387272194671101124764361781606896265011141529310915920406884780656603091386008951196052117376417546263387215906068528150209166469640343642793933315556665357549299457727677032134808119382757992849104187741185355321417953858381520458849446876171456867101407009215815040089421752014251338003541202353538236634696645020740054861360674443130381228286951507442045482970141611787130245403509349648226237142497201469774653756851658381904825108056361783069877068158163167190865241948563319294261849412978571731713869896687268222956834520297213445483097524558668995673670693342709061554506196141791752178474014365799850118399427994115386602063411075700497531609445890047579360926386530736016329044766345196379780231552596909407045598606894624882181769923684004509689193164292136410042106507900439359266728465928872884037241089418707990944721630977864227668427864457696501167075424857721832864301162142225926687511955422450211201671512388681947004189466792532323541156124893317575263313044442168065599387355541559078577341622754723438724193279146772577027848003062021539875551530465455127489578614206759293739540936207835348227181256800107506582877449051818902285589502017697976030425457131394022808528348194041516255911214623915087738787006513613180855276996819649354119440296943712356108423696522324724941213279048784642160201453448686173110966469296460869394131072578519963852576580162854109716476791460935120673343548259558822409386957774930958704498878816721114702788353247652500806468976449463417293309783935365609838490765306179187952949395504135909099347876573274730653046454369935555415291400155927420125644811459702980335651302297995808185235899141455653164731085338130079185470598470269279280164745792592574425669749432571688562964656761923727657143183511472155551733769648642722530194045495644498240775284323627324060418518502511739619623793577202487791752647302698552068003989058706512999040460434750800103800971898387369276451743641840267538878009137350254192185379447814863583538206773710246438701216070833301022867550559691266415441163957510818245953610964416580556675447673861447243507061421082512736133842932045005297292190555000437026130175451694967232421739903118462071432463751288513458415296162409360498157525552784775530072955452299458294655571516942973780438444889363554040421614009517654048349881075128362136489732844915996160974118455907867196089283469189007994349742253478626531607474666124535424537111065258969735621189423676579766633933958444143748882134612760223140890421963337611935344489210694502507224397958087456144819675132423656912748892671083643889405656990242978117378680515909031505274183327403272062346223680429985655826342044300049107517591058292034116152177439244517578259296609456626718165884825804086297704178452224732950723361865158483013753756332862444454703507691371760806895539457576544684039586449456693222893879877459808351917876409611503154592046190022160429596903549545708966751708621917629267562590278354591129303865308078964656293990740357768791234074514763872539180600596454020694115438357231002582773545343438177842160009340325353021204557215441699879323388937435608762212288471681031429037026805943439997637453028803122869533735988942362599893401225320783887990357728494390169718240933224453652827930288149250949891311953605004787477278182926175353017413214316844440650754873841717760598014430259711313415219822147799037004931556184177808577143985200082971073908310251017233970740504608683005512688126867703140189724796371265258265021019231291202380971320820972301903824350524441585293591894379850184070171640551898302695318000145687287074368314204822936422113144691103020612290320319726019038961501785315333681901986443189772122622222430299497074890333203074162952742692789920304342869210252651360374715976306394678303173209699934980516068052919595593124215774185085643344415108313353499876049960823656646366458460082510600186559505712403095077838665044847035222236661365000428228080509447033344764726759144223311397453501512176385177572335145864897718813032476643616532992992541823746956951596344954755959005193259574256316186753910272565524962723392102387134712060690640208937070941273406768014251102052054098878619416521463150147690935258906471674433181370020364247851754992571802497709650971632825309489463769377691895114099817562622188879424830617522327747007396835476669455021425866167728258656120947389867525408025267825932316350023606016468299244294000886730096627378113087674836664421864200406494965737199884981334187082890103029922682276004241539793346610490628908245847029941913717547046578803414827480983399541546736519060704061882960073155369401845215539212570601874240315651947847690158815468409722130688438785654447340008114426779212700355419051657438764991740050683632599808807417140852088487503678687331045899102527567693640074830094252210769880103963838356305972505271478227108576981591826694476909503114864210466911739220100083091531552579203145342195000468419984355126530441226066474089257426660927430340452466145312122144771660696998295524503766390300410576823259839699275559215099666435118153194632245135108095059567108195628633243623236671973391622139310792683202104267321171156024075050081689446861292505890087290750310182829583994583412248954134237525051048128471393352948721433833421085641155842969579683317890428310448473654993344241252184423421445318920852852218697920190315749750055304251484591512458443845571359343901265483336225776836783093058142315267725207595681845030436974515373272210437711768357998570987866253328536925542602673876295453541171679394383575405856771301368608235113800612161255233506443964885923668376177942710216401556760885559496233834871960249875046581261208680662452504348442833991398891531690624437981118883107018590374667495854306046354728019151282176001399225812757094289086231179656928439740729750685451792293069140257633621986889454137602515895347302936045498309616103802384226482293311975304747867435984573848832391443295437190376581100988207263525002411509397124003348634186640857480483748245230563805611367131570135932327870651462711871840304042198733460314543248858603759723757185381423645352007970487476313447689079170192397163721034317171723832531746525662357978561375675367507018290233023165638887766594811757034179151494597241002695958732068188945323247269356263879364830693319138090433885540671286040736726003856801212837619220828695577757610503174593772712067476829671779896324807961403490344841058972729727126950200251541833848862535144648142390888995675740327857035608890601027529214223150233230934942888037544918863878542461583831134336516044319640659006214396608503369060826360994502304535719118255463511854412062329291164978056717532862798848216811228819799843257921508362758100646702498414354377649223600604962130525733306034828257166212482966458401887023644202393368317130802504406323530210766704742228558450658566277473178576422824427604978135328616253578069661905223134206065051450253100461544607984478598777363194558798738051809460555563323559129896335080437789471344475219286119279745773371353297988306508316080238629367452198057078075622531959874816727760684077298057495105228449185189536191144914715284641599777117544828246499833441888350440371769606641281979217903920982647472668628725694768532213880859640042746735315939497602743291957800870906253938505086600299917158348577203479076883699360840931010861312258032984651451135851017777425756413788772823981329999968345229184533635658942113462682773168223363235045374091456265116221046412315861173953635063858554456581530490492826597755822866367511703381424768744301678776165408737384812975242631064682128221058892962483152177403015509364754040905498884291945291671817807867902783338231805997478371899640456505643383924324117333230292376311026381140643243037371101206835033035848534527750598544229862241454556512214337396428294870384223642246260278036289324324490966302701419741572702307996044485472683251935095374580409622806717475093265747436506402750901914217705278449093840222008750651618949362991081973881378037651809597080901290446873817326221280641660505718671167464530107380305029355425980212079943204471468880698686451106004157213564402737439506404248365023292010057938370657615123078436290528723934464172291329472125090228581709440093425588930696207595608372206072292210073567906044945002644401692715469574453885273089277972451297452657905912712600920632059369986383613532147369091287803599766186316538023601327365157117398320418475869956267267099449417324230860613213917715117547513350363230545046060064060098321879170896447188141055823229860036926959111156756575501256088443919580472132914865662376977671880579436099405449397601112292866081267858053797420569821462054396449489114105333873110716619461926957415883697013544168070145924028310292062362733970181664089753224476481943716822043268174420357362735521488318647222156537205575417996107135918356706542538230389077318374859314559472765421066547167471876513738538960591917298921833634373646334393188853833169084027814453356575972021696708982339045825844450565414083326415879803850695760879783747164183949010236630910595759739700270793596135798051679562116592541170117498921356732708337493322873381345863748037961271421933108035161618250656838287952031975532055984620124836469730250473904463968438038003212901552897920253496125709033881289613428908072162775013470736914505634936507492983201627320678124975088944136805599567499225387990768877339836753148611350053422928733068370546077290801111916740916282693906220436460104862137232902905126437371343275286482494869693183052747534226822387882831933072213269257473998357820267594135321671160332250295391219015784336116345262732241866663498390093397163948714083292058115628173241787033961639263705952688626762503466114328073065841738972469818820237450474910498094968008565632621531756564432984564639866990369097535102013121327097508681279726576049406919920012592982800351337526185591504743856261885228611767776608730995146357594513025322773637607797107997441032094194743557689304204168979221441152947232424995919299326050185102352697678811246598983574164927463498687302708655239314591983843553608318146989460241581227917769747649283054824334280120141659147507782514690707812299769031182682985184306638138998402213124530269353254927485882323433882438510699860646572236711356190661655116027648546303655236979274677355379392905853579109080267493768565146178763052551158395318482044949896111854572286235550084448140939506034576729550685835079649514979751750295381542209441040327060192893122013610753534020927243855620902355069923563133736117384388492953695897808743838928281139819299646743916946816748945826434670429279242144039879985719082386311076582995041188118290601040319760516703422634961006294429609863262018480638070163674921801192441551739889953467497103321402954038540552365420574854152125380350932237559916934744419264458931031059063540158345141491743199029505456562798456574580679680084696667939637270288049712529338292430952570046283564712205174668287011439474978857476746522782387253207014007649449201142620222292510388436086520670507369584678044916598062549726350645849657843052005236462855264810851036331151668889052159138212242465905358214887231967998880341748969072325787404222562194320557054262274391583899762093634070328123218380282666126427412440979154870387563596350607109932613376659085109143656586453580046829549863161498434870714689491398537327635473170979697804617237277156636710483753118947018669204469109513163014034813781619751738542889633846256792988107338443467044227526268027259591784608765976040823608509530099497825362543375498016604350030733120653869931496697653388280860591615184245617979355932822643613580983979832462619993405772071302782384847330519180437089859471564775264597378270128361237119447662426720939220244265629106244389389522126672050261954361307518401871790021695498429570686621943335524658046155136992938046393083374178290283572192434346900781774090275408104046436288241701194859105685463220071231416036799894184858348035666767486736218831798019215992370583530645324336234965325255582813941194223951976170859501453423432259401404749022004860948112030946948323001875201799928447952908476953010411651281168243197227477449868704210888542634899161120797072162536957754275710403922714153343067313982868209403559509212394715203882891765574143529292820899870424311056671508416310529285312729383499989459367068663902530078458224037799259380971960280477254942358020889831149113094524293944038871153264747639128956451247803354878236870789793944109336531268064592607812360177875976040288348139726367221958917832744788784173868322710842051376811131163757400578972420268386551822940072445347239435789689030477681627396062849669246368018153391386417936898635178286286070146451191584507174730052149749476236845268055252812110904218320658311007977565166115812447628232778785765667045392550979147679316836600813594008861380783817487635485694596633522479945295071289981567376121911829245113657127237100525288893715202502102760268379023430182590794218775279534401364953752580104605009520035458131235460894140015779899606546494040385169986173781948759042535829970999207790115501123108541245640174942396595895035185990439252776020747279102771729748014558306848584527211596358693339455060552680821134665002744527641757349754181965407573101925135476450758662491744543648602502925314993954984967966730790520273157394704592736698880286028269947654260988885307051501132960442987343024281494068945495470515206533578012728914293931224545748185022515912726088449851066526670641906954787696588100706432305640960624130946226070514084800472947485684889255516687590187508418154132797097176838723776570061568209636013927197288474893785901944746414681712674377568587035777723623604550462998994138116718540163428458324237390907589194423758477513881986592389829269833287866848124071663140007379931501699751388408957381509561218926584524112014340853905453478993441185300985899877886135204174198365069474683435857551441384169357470798398669098636142815515907677648006630431272565015669715768979655919989500758750877272123296383596911530716034115612633403831826509631832406384854109083140876220579039196858262370514415862342564047764671084813500884854462469122788623800301269249906351929766706924045335657959178754645629464488551897569526064909799028994592914686912113069707275796666463465438045335789097353996125000171535200086339427491707583802706962932677746715807418604299721835775343258217162143118688883316133002467303716879014107319901000929289114728417773868150242227278088734913771961062969233524882902637530629855521784342773649814603710880238063896899576500562007246272988964276430070870116847841399322861302251905545466324417008126996546241423519621734147346234577386913248526521766892307476475211904878166839166249003904058757859711113108028807412538452310780681231184780113452769927382580464324934017965109447863818930998254784497775549515265354991476742442415172602044377671143572038152092593128448901281415062496479358120851705396637333328179016082898045977742427484513420232954955532225262962380974524573195364813998412057253982520108737219789882624894320359171680627524120235325496675473347614270548229246322744989827435959166839897103944827550010413484354770005090079526643180122348797224960263379510968497380366151591972050292636292822693740309693682022545316552100361373937433053624757943623537115427448009571782871786660532360413503650655257465055055950181893848673777416408009586483965206926411381523658137520009985854495281274991090668702495106948002544458208420578872575408027901808505076415515642466194144886914049631869609877021180462298839007729278762169648454211234774042656000508005596682464199248396705684324722127970952715164565641441740345875096701015755604398965075724975306611266030060865660645081896720333733044175796341583200005836963523578038949768211515773566827297618078646573128227376601754577394219340231931751202895820333252254713343272013672529535252475640308955508230231805084798987563789599511800762414651785668845980686002752254730112620976866374097937933601376019530236831629691677000653809466051337260760564931569133989892488517204722792726874349639642291217044046914588311654342819642506338011270217460979624943155328780437335888658414342755856923690153427467684609755364386714003864034777237932293853198434318651360243801383285164810982690890778797292013067340406801099864520016598142725554170127810695125716312953030542479790177299000298160912716546142430341523270559148963498138844754587438293800474828717896380821243050035383013614776242690846919624787647722663868768583501696399936813097009027889041440931639326435515451928036820289210285359697356779571582907951505418668682183600264123457692451871018741596798237906936554716544834640575729302130562125597878309987705812200287629415355482663711034403845035268241228081771597676496663275805341236173669755971464055262537416224993872771614491000071218942547194714696611103527875436013345457287326945930722903672489019575446174447440225338969453551830802574316258069896916444609361767047103234738783975669425357883669514010763792756928157196299779470231025927044952666805851156245748684313976204578802001910960594240917166940616157999772897023145583920538166494569191475513057572817713379659790194749526622139480082283609385341807724985288250527635542024881971494011766689854299870698437149069116941885637300064806168232771804748646802074479340436601251070608766045878135387035246684943379513470998659299526267284315193935589186381062447450116119822883502240362133227835844375384497951873265230883386853138063204509689283835247824516119767187409709634151989589921039544966096072421648116837870979516099534958514561309013749083291161445409754510747069836299618780229703983409380424433168732498541338397331227695198128977942281131922478236828727293158815056307392403520520550555256469499600543785987345927706559698720602742553098564444096516774695692518370054652925764322983398482434047081769941565062837025018778908653216872313270141321522093668862406966714008486484213439040632522714066065361377091415600249186074500451499509617687757688979859259468498377010655008602659678612556306114567238624720117670591516453285585181892793411541881366942378633451910418870178913600838373437554784400603026970252436448296766377667984671663377965554003061972972085186193224996860018206792178461175988828590445947339098558431802896488847002409895078921306579873720620952815866276080803895906793064168804120783113289939866865002517575850813064701311510483636599046549146598831850556362927225802113056157424283915575595196671999233189962212379868171055270192592909050981804519136101650898577995418829150105057156120435247297598849121922166450797899907292445711966696070731719514575250082247847508160583120312873434675965138424198821661739514646932679134119304935191898618810825594382119278931830736671069792163677128871790118757283696481842170388820153193680059484530153177653932556759064469084905120287793770541483628596191807544417413898843527636870877213531769256205474369235593400957723874523063974118553936905090537378417738371548494725976009666720058267695969307885271590075362112593804198979240189406312667444482323668862439038916446137129129238779824587306746473445003222888921008413701464312673719424906463756067839125166336933904707155215763058376675212770732016223639018234098634565889678789134751116396586037163904209525706805517679540827379839023124597949504881271222928897918227929062609798982151497569171765346350121684152370359609056016301305931742970818585519919868037481470597611925391211269326479395151919012744729074966123126279545311581747086217640518461261797385793012896008777300088571415903601259603689087035232139987998331524989135171362357044852752162722828422614899363170800551024404416705414356603202869073867306914360086915242101110943253836107580206546630494270722157939461280741744048895810585930763602254541814274712522855161187447066806233979691120836775141728566717004445966694986923264624074428938897844354247561898814299746441008791312594978721280282462777181655284697699326425034836661862119716002629338477999730437386076392686708608271472026918557714549697860635719152297360565021794148692538486617285652392695340529477631789205328330134705914726426918985915483072740770448526534064917065575272114517621746504250721331128153818965590207747439413772244407562112661282265032449524683168341892314597085897702215128124970771455942096203897591645058885948764347636221327280440055921475430188071743048155942357287556915337469066335059298670139763313521195059817585395481243809118406576839075941993232062691310742492862914817900432365978569973774487725261231886510198128119298243565769368351970836754772953056092894716384081250277481552492013056380364221211347615033311362604847895855861777110893844598456729224835849885285062332422402108795690423265809956898481065983328812340880005465240628310027079497084863632628393665999506310045436298291067294183677485482724899935493712278380506911679683712354345325651315011983645558023671182418112288965213864845230121054436126406964170803345957934957297270318018124448212555013497399321786213851947245159744429274661226093480350466247352137220969133070319389571171670347647397558223510920402482441263001748800043266251266032274094871483322464507654904618918352617196305669940992352774313439482106717844924629098926828877561698328320294445519511222885603526310919797866887340852559994694098772755251502964130938527473718954411450037090308520377380050191825555644758530536413398250563112101214377957014755281324995420604513324156109581104560913193023978120842120995847639930050387008879020768389246146158952562755034175480599110127856249111776369335052029976463010992305094843774993314781385296932980137951213310033470552652613340301615245235049419947892262150298492383778631066656496783339447571262461835318873963775611916479424583831082512993834502185701955667700920749090020438664096522531749041850141654565054863999678629129373623381306577083430815002374787170766504231309313121785598814033463371757757958410693596859937160705080827105643179340878758644131171374055890921066791514682338283317599748902421442653250558708222625233740497974285022148802808865541431502297858272152133942537816477741972295781731237305506677733581047623431077103761087717336698019393027827636722859363582947667600714325072694778241877918174502084567254581484762203738877690414108974896606308459192352684612009544094619944467575247591872124307279542723866563477475735023337084403536841547384807847944306986115590357336655424783427045233385429870599179726365190086235032343264630886723371753324901177197220336887163990448138409593285306106183210858733701966042089954264447958647384034131503410391273863430466852335260137105979611599777398798609592912984019177894803538956751242889001151986120606276617139846039917475713557000987739602470532545438072338818128697527460979764780532226553092446551959488159884394235456602746420117511260769400812966889464465955851282424629952616053819055142181139397995436569916336926157286419701501705355544927754082550348812340611972356189189184231248614312560107203026970684304240944633967759605366111319237399981684123968309773633354290728633272227601358944797584776659091275661934175722559016555602331787984419697984075497969329438137518216486101044943009466025726447538714261380159465299901345141958601710346013088152747720339834530433994367366567301797513215222871261348222432805686535195238408720508325010134706060580400503299122642888629641295666425075783692053810585581354912838141217392012126407373530344597788915250660794997759846610458616460071540461096966901316316265698162233073500460352009602806918331551197593304591066797047512071227244787174327048128284406229941768587633453490317557848250096784366295726345623609448251821735530578084346891427692111717216371008309413601238123233057694895846841837876728032771131165814468565850785764543410182230841717620292614612290664171365837439457089469855654679938371088129034073073336755363220412763191052854781506928786521280438036680991126005151442697663342339156319518678667739295700612131364341311079568171820402838085136732863890000631283606301655046378094820817242909487190160608371187316524118955554209638837818307718176859411341722424876221322417488608615744132187850716229376129350639495127600902776105562691175415273601424380548058843644491085428257666843201685472039530590077693973730554619205382492388616408651327964283302264682194701348285725193812000281361751800091476802113321782899447370416791313434705788354154759899593512390628219783717421232958970544766323459652399082917379040933101044380255516335925744249635209182709955300290695935394689445400697796198301015695393371693768257367847946734828334409272903871173394322709264729307044600080429841980457853748947091296418830012889508141967486017498973861888794371280995736210690666318897196533869819297850961348247840925210593803838886510299314142971511660793421774537668837982977732833573885970972354131570062249104176864694153590620812872186757117010263392603669400641096943614207905656793308006238966650066657561722364829801657850367568470262576440552496178394277189919890060294004191432345955947185139538989806221008942499327840453518174509807107422212578371827559351378926294228444004819437969406442185777061908611104340260003880695995646250664003905542886048534867883394668520615696206725770162452661865753954233995560758169706592222609722883553298675406041103652252227089416104811378524055668990459185314961916469840098438835913125977761732613721928695397831803782282400254346726486809073388322283304156650972451171995329153081741419235399698986687669772623058701209637072563538090776295765110382032529665162898908421240567576169445686394565087902987736696865250684252001491551533845001478931269568491093581837295026934815671094897437505617242586240573763064200611981562517771616739302152212238865846470244810297347285685697727826940706642610584822707017116756207304111457068513935732828243528633271215460851441078485527490588562201563222308412571169293735279968384536862933794211642673887602761402694705994910631409305157142167041739630829937286599595728076529172156032918945977260713144545254273814020313378261169138808299170246161327270829804189799386491546788671134724577324434446240002632860362216551628964225921634114640520038481722742085558863753043619961202728600909547647552227794855687100587954628939800914949310901827828221585571467981072662412493951430113922303776455196959672892090924625368575779115218418362565425625613694138928329737429730228106791943967246544986747516586919875950481086211489289240433042491648777465899172559247236693604406326769974652767287339971924534793212739108682000385858997509665749503915060105069673717018417433661047147691310223370522905421777549334756379273645503112796028032390838186998146566362568052008247921731316492451198718080840217092310926651972173059794590803754971028037415853435111503231394181291630358901622604654706387844052315452944576413997183031306088661281357386820129428472425993427080145899405681670259556844322617667427117561457543496462252585998826168785477051979821566498527166951363229614580445261301877589868768340282962639430880722640956912327104006584223857681057511427814878021264600397896241577204823961173048653705574544531990329885630596189067705804727227767880821509050194739496634768877608309810165682544144132744600157222188013049853980187681204531856202295948826492862089339831833269574697383169907044172565123225402483747953024747560738844109189314083509108254086003556264709281896887661833662180093392667080169519773893870688794805237845282979949748099845244390461982871293045874685681587011568448426844017624545621428713919538633198853909644248190878013507048709675719774084587572971773533882428567006425421604079766450282713191507171733570691804715074170433649285832304153590332857850690513082274592094069677488969123289749201675110940402502747373574288581265575525343575724387802765157134500441987242014061293478424065780165439277397346910090428605583397791957493581113829388652658202530482807748844743238620814804804876448753578111142265410792103420260723335287138027685344066339363359367885690901255952019717987828581534422177576906000487803990748058982142848165742514613148159553598666815982990510664970873657011857926040538541756456693292758623546862540520315481496935464660027781003636883559067311669634972986359302741680415045773269185501153833981947867025711353574230638970530589267805927920081751513018505399955004777137345500059582400882124818115446869951510710187018806945538966461666826028235198358187553992375459992585572459455288176790973831038434694032612666621755666050360692859220817051740605424435390699495154311994695963815815723441330997053898509346520455995943044696737785830253755161447833239683597777840533929401153411203802659541980934001743339838179979157198142450802463049479796270261942112883873557892756784072497022206056467568962062380977539721952118628036824917803143255904417307942644665553627778130512396754020142550080946008537560404177151885242009753982919882984037460599167711621591628699359304388907923293188077218654684596304144491718747021420275203489622268348280013732772634392909557909656234421255620329204372010065412402769462809389622266934936410587521911524466725757531938534451894752066951077646536858872860458104136430091298987950372612552888004870701913754844205912831709097988559001928590942964605778712044467919206075416390263308433037664942086992666948619356247502960811862495574249242925899102354118140651548105678821123768363439463364643945796201953958144724861472394169921367493034418832058617892113810053056914577847162566779941154625876215436867412086817429161365668365312540172627888003510244949553095086652124574940363170085724525986997820438125800826740665966656709694844207678770024973795510742035034485765511294673956017771572870593760727240894657044489823455616471876519988845461923371075245863731677593527279666998285291382940955208031880952096854360013100961362162555397366709270635208903022498699772874805362628685943704201445430803207403265369419763145612214283819080645182854774917910916940886157622355299432824843071653356803630993525141137126745300283194120349374996133008062693399016138163484247696591605640927851624487174322529288046014828669221161705858246178673390329189781028831546730965673848040744261430200604950644107687925336957760547094406541123857500549992645623757001248226304464330022786487190743328763793129394738869281579748556663688783620974131898135703163157910493069168691192928380421896780127460686227221891449961340572389259808926339785551355105026879404423610673505257697593562474607064200314969239946023847369901305564171363913607401617186986820145728689250819006531665282777193509781219989737506757470225316650791681275946128928236293634824393320479933310125269851601949421413828556966540421255082815422006818421084047421160312131207287162567022260946972375140454707589742513885596467778282671342893921538173371253250281559028573273689672118586110332063344145703213542097101368359698849819101029930705181987992477482175142617606088124952819783988487623336033521181603205320834197731263896267364885478479013752069501117644008787759241796394932655899476233326311069531780345594564445662097948026634532960852261747436801117980938220737921796941118521303132660183083184373810090012237620966411942862198361853487157381274117345235579759738704665270549174579449293546245863982394065042560284374733421561595653853370786093012243652500288803096792858897012058068926404232726033866329603728665431610813219494713531059342657562008163071826253050642356666676703298343292716923513656757445743197996801199985282031186818183578249946514806592903790333714489340342135055699202282738720079493563125957134769120060735413523434563941519645797495204255512269413969963286260230075969689803515355500795506531208408274956574337349705385835476264468450465703846333125499038486628285062400336189197201636720694024445150226141095304287434227683506528424463925077217856176508060308198363708840400673238179567429872420232812718163532395600309710393489895558326264616294507995284814582590304922977230506570642157527170693552394615557893433029006559253844346741446406370113458077314006419125857553922468625412769664129367572928343710651312139501316499646776046144707120012357703052013554296223573436292442519294447137369615331164739315808906355873845073929986806709039084787139487782426249449678523716810108654279784058355552131645728891644640605806622207751952701830657243781887479971256077332198849368186774325196847769237515783096078780521248735543560113753958920293566809777221818435640893880799787155600505862664580795220694494643528148912539246462203326664257767866919402677825883098486257611179987838097990316875591439549498302630684140038061211441479979072022932214710693627900650446313250321275132920415083436772336244132593817489289750096601344008346497031311488961451622711116371790165701898437441531575383140586565191597322764043715937101898990728259221620247445435431000287443546996971613519940061269974942710074727931841995691267351831169379116635976195816214320887533915732914390192430661666627556358162001472188938171698435402227889134468349625229845969575902257425619849781871766089234638967371335849705548410815880498893451499335908307378597088739532896452020564901954272752609894970308156380473495250681217527301849705539057400913958598420965713665140232404255814374015114765315406214956691351735901177115713222672413961917473134542190151608824586452243052810548511828987739012834077747030652879974129243789005144453058398489309223863952426542498860563931030886774353330959500948946348143322157783894415267340919370228716559100050477990113575610624801920246281942726756016138632136323883544383344152097471492796130098820171161632751426019895241475040084913378907885594639098610218091074152989196533128436096966453104572156990066926137498705624957951589848735874305480166805391660280755423685251170782793701484360544026977411534577214299322722465640576468347057534133162701745565772928062594451075104976896507845363122852910393534363228048393315468142738436885267873917627372226610841434068390472858728700584545609715329794313624089869384102762150644987595802192836628008124421031452715945868395491658783054191688328641759932264510815536794325615800439269733525210975755942788299678811930954367092338093963648444794170152648493977052640324389248707773505710191684839710025284896288725973959387276132207767359362656885464870664501495870197223384978906396113523293567870451238662261886549413522499215384618662075816205991523775594089171862781924798630363569375988077312751296715296272479065587910993924182031357844451521494416216389103620703486089417598483412311408844747546926367908970971398531911606620730038975462992114952216189325108451058599228242308766096356581987305011598979037601402117030050877793956031210738113923822502743660275491115805106315424965637643294429165795637309539203803776405922121111074172339926930121336882699080889710966826134748836560720173766905918505441690659682617202980565092826426243984135588174174609193860235347645417267653840710074649290958052743815719311166731427779330239171911574921488837091104972512433122145083742492312200946641997265795022787740307823254622170218232669324369098227454443616503023532897135319041006032133356554800691197018978689681479547698772019044737236951899176131798312208093399544880249700567219833808174139870852782789660021644837876923994397025977196516347190576831854066210579640574963872104619805445780722362647093336053912067886226499777063244672081693058226781934553313487886586971135818681176074022096414969870130457020654997853268616229708454697492385225031975787400738536986814645582790843871827761819864973443509374327718538901679501226112157649863884482571990868509657172331335783901389690598544002452047614889514474246787524967227432113080669555569977500465192190836119999469112456093239807930312153245969091139592513233008180703582539650986770772874423916660550506110638966984761486180131765910057896247034783778378871987389635100232182417670748225792343543652035762863504661396820615772595024369269724932239266779921057064919026036559212341131697392219269243093511051783610380393346139068583628857956716576751073521395989146772497637475687456573010757324292544754743658267941716252092582254448707615601275595298701315509279723009013878761967051996843644945759840488353349915400742916460938286083594366193173245141330031897328079773013421626963572183941461461021545686315353621960386850387438371833937237205381532137211812072236825768325547722832664281314333093284381727410173912496890729745979300647703357869454839369466682363311725417887779068723377092693295279929777369437458344583039192547473954874444086511634070781685515626825477314372435683931204228975300443999174317852582631478581061029206166603784594401059217551676439507558771014095787763632458681942849571768408319558332554987174964294792947741071335916799428344693975773494578418693872309836568225843560457411364808547217891285449397194756114974653755124738033231364282662853424049877743047326578140370751289886496296790345475410690548172512840727509800376187966268811957923617399758558425443077358688911636843149865041334343511372696068769556677248488266254335815689960698400501064963223552078828622594639671858843244225100438670576116816336666801882496333401685361805572908024902370322899823254765105442657624723418263063972092380452906112386503690923491639456337024798110880974779746517084394022502902424941587006378211172457818076128694654326388429904997476217380666189461724790523376314793013570498473743947042757143952095752876618330556155197137901777759069388612450848729017676787452481450400955851415804796092397946115892231297790754950042076204191988649113606787965874076374830978738974327859904384511964837713727680449643440433858420262659116363168067491188132769477985177669173058782007944819675295374334096500642943921746710586724841200876704377453679837084172915939989916125026956075099660680430407726203895690108838294882177372616841342081509815925617084892838548148856925686881565995366109213143584308385541572168627807374452866801321626027444443610080961097697116777372987517611933062336400769234991260086150409531842840932412747490359600953838945178164465677411621209437033576422412048907147655919889939887006046811555368072305741127103413393441791592979690547321279331615855344907828702503200551028611958723365706739383873053702637074430189025757556780604724445533359115175752194414086965352296048766097698028346712965631894412999859750187825215532058158656801869386558588386786312379802759978153172591479898376072772887192944978562572170432086762871946856773168968672601419868771288557702417847957295221923450617719588906870176119415916082331074603486283728228495112264936593028805315622707562699693932561450233580951752492594266924161177191083112164113513517647216184499482959540137289976227497034741431577642412467972674231296155218645908890552586450183519892621094792698642731981892007385989070905948609203049331219137427710490929605515776311429782851527532986936114907168766113066569470488581195976442483290250917017666075234883873525552899928751130374458231257417794112496496266854216177131373696350307649715683567373094839602787971297143578873196398270132130454833231669860877752722704409595212052295581643220644475908569595942868560766618266102072663814948611679644091045323076463740399556688826420984127217752690711098839136216605592099386002666829539769704122050034275684057636840160361450915100021112310836050495449544310002390927050818303621408559157009716715675649080954265209640312648488602192316998609360681258092430993649623410936730539869638854279229297657670281976365393100070091831506072249887099892429819194618280471903015490526683220793094748834535824885558117576826825256892385798753454195561185100903728576336550126560582466709751557550318270661758215112048358446789299467423874076605940523243948834885388327627359523948244082843991305407269221770651852668530491386698349493535438009819948413958595735100734559473997980775917995510041126087429633696220642520927556035890102015387471437704638922125380265387686580306249434148178008537410356583769243182113799665128818084090011850214586209943725075865535204960076760806899787840796388688116069405459054619996693320440644124197175601048306229618764353985135820032134909020876044162923070470984582931684964074177654806160140743923814121016722774839551097675851042343689651982982331593667435738726777696706171414850134245220382794888637801957625289269598717376699066381263368189983050756333178573366109828106542110858879153058499802932325732506028020494569817296048424287550294396609001124648405872217541750450235294988183910809943523143065026172680803229517518666923435965007652939652177897831667366981731652471633652262937111170044850324325481770029118073449339065256178780213520469057915690697487660857117331106818563974625546947671142938322781290523173245729667751062922195397365174319043193497876481060840756788161656339814010282035497868805133962879752705207284001628277155262887074075439153193123253553207435815184924573309995523034551528782432864544574071167293902095175487258145084086282344451802704316135239933329524157030581687977152533669229446089251066067332792089643085006406487193904271609143916467448641009111106705574843300351044157389953608096356501380678374592779818013362575173070040073323408274487542716657801291223778072640434296197383535112766087608768474382265163426799907766707167826808293682099285856541597265902506568138289232891154839100604279965941325018392927373896717676962886589998191226341132453359745798205518032988390421185343146854494297557117920887306289800440402448592148478401597010518466427192037611716973033131927110901700060161156224067128959784268087487294896386407636275301608597682426707509694410845105186916416629685641732512719610745755848200610231421818842750735226990150427004146276431379845631924820679333771786749436856657395149321948057420042852177652373659797707072043319051523684941165412234919076072402323512672621481634305137071350775131037829007665313728923754905147553577617999940663767884541183287905691300106259855509546413144992995558732366205056723266007619182674857970046076657315302306059794109946094248521709172307020309231750373021342466607708336854817596013347753283808659208163763005653643520456819008278000327051873411706353871702244492190254954224963259866278645098059387666844891195595255003685081973873245970447554954086125060165220317637177232732288296969542679903917647010655784027208718548571755168610019808374911503298806559457083141451443504591135721869590881170137473834219671947389685283626094006030369084522112305487886058843808328205591505417219869900515768985257057480534589369160728937458589643306409610705801379606029209422612820208605579764348982093242263689723320525539014138148733092331176627626256967439229209353574949432800718797628778517413804481315882345826971104101278848817568790632717712224281881045594192412914016293136721281028567615927468558670724966959946515928309899239167523243951916442157015846788540906881049982534982137998601003133019721684651542462276797807435564229438912054318140959159088668892755855906416918240254328302546855400973495683365251130546733375449825534005348781440619699852983682370616575435346161084119425206409224458376322148580005697708740271686480805741691120882391739880292993421310862112633383494719613857718116697238737531773762042757616868134253996758869915079973144829675954269052269190767093201948882145717068494853254905291877677254890662771550109095254297024078421400539397930418903402179594794191459500064126070744471490972197411061203417811824458304876612596707442993113440601692776193993950193623917061642817813377163341323441548662635983601924985489655576726669457288352619390977594714221512594123786311640578843751498016285493093591500214836229327845911466933661899070890617810395451480322570509690357782614416692404571172798422650071253411852010434019762723385718323064235741589245571006945368847866890145866257405978042809694138763350076762119086605660121403099092999697689467181514457764028685290730997002580537036023492813901412881835345556847523098965625823697978011194654995341663829247737107144406065909800690151216469289320223141013815659513799555416718928226355691792441168402820346192770442354865734921544953696252031134436605947900307057599592105855578940138597639727641956475110578343389713926825038646308090904601062714132377449763453615578588184706322643284314094201061163344067391996292186335328679880464354742998313479609491264276502847654075604314743328566335305228241342304660786323605611560758599544438038723484717289279564312717718856698315781707698528702961268332718299769046696076088167934130226779129043872483185234945152985641128534552531928211718713613055436941701787780652089210767788554780803243092034905466392419845842096830938323103759934923997284594889350970942595511551454220779759373592067715189835892275272559994215190620894453251904538484012299284513738848336915817548920176648283781154165672448142730051509141579885892751038722070182891207328005615116893299701412941076701327117769349509803856730398480614706148021765401749589236182412868142708920297809922228699819988654363452849696486716324778262366225966961452339039028506986351488132662879390642353184914424893791850665489851587201437225916264526766974173824906162877374876896202828385527592110048839176579300623932919497910803003531389147029102175742252947552114934154670445539303489144697445028866026327368595016101276907156304700838684761944504624121297624468950932298263603403732181858794252305708055371079290158664638313275033921561455942216209985768916756404710595397469518712379305331096738800511512380768901250330767433400682349270088356399706363278938007334056125439543157059527296434117676972477340721722259758267882902544583305836434467156688298903812401584232192625786532217831252151633636741178056590402950716970195316733419786706055191996612013929166399013873399153594539332538086015519408927616791873333428101641372216632907646691688606287194976175029142491445994146127574108944315898036905061826607678348968220247972864294250092704640822006424078615799112673534065074607910451516940604193141414002723498198460940331249826980914663610050430808457412561373533967694987398313621789000079661355578648475777492321536310795950461457235260510212771310021203214133452472290862207188577884269879963821716012424420812094816431751084397970215441870889990922923052044364553069843968598580008321912006303296372157513219748223210880314306364741050744917154011136455759079067314876618064402330978947844557302280824387699847322730637861120428859169113800968036100216021009863360564761180227693437850816782954835416678297431733810814313685065806209223487881045714268609144570822879505018237223545951303778913173792924266067082129790080766685628053540710156516376505520495715095542408342097924209296384156795898922993850872546397679368438839727775786054703430017704782225964001307918992081309212406361578051754478444270975213520535185624402624862543434877183673069841075211130681028584249784792819885377301764477112568974134944363263369734517199737099118942908576937320768858353127487851567724307411739979097148024556520080202279193395118481491752145340260452393493630079545669353272705068405754650847553055798561778048226938194970528955582117063070125488406610905387866193394761227170615460401332229197657442037851050041832963271237030861869769162553695169611703621173069477821415711443911034388002407281125133764302322771872719412102208111745939340015862897747254383403653111942974343857124440326630983836123726196577233632169428948062840940565613998277273811664076515798546029000575068152531911279197341408905670771191425183669177293920895786075843418287769336981895537936755124726828627237114880404890178349281295120835959314181061626723614359494774436271334986972116022871204116163353288350580412608155518438168692466748760543630193972768845128688972105398792289274813911354795729366579071411440043936848193520500905229641586283613912227104377135425228581042234101169893410457865520595343247029921825435610213601713746191127605705220164275363608466772662135497429272757225299103023534054738725923182456497218042257909010794284639657929427769404281693383944242445912800533532867689207619059525747969923053203911173696757197811929030777398879158090052625179437164906654449800809689002804097166718164442024568864262799782383804080297498669687821815585323748391629326150487284131505378640682077981194892416878647081155379302264625648978298266252655976711804680659034592424884228079826415787936994180761697748245241459052880626181809062725814917533428103091217522937527910212370540384179728879540191529067766288302187565601863189599440084050237705953530985450418689862432368276779836585965922530028794650461493847899596853322089300719553904278426524284088265704577479602108059032564179662977356870697237307013173955406436458851176284344971031045595983873357342950305534815423960054723443665226573156117381010621467981434528907710271053789035018114674639480279958319222645175320124968976417780026537389332093926393832262796854612347323569024893368477337953398106598819343766767922251653478909811598265126075941811819847271398724200087153092338393654906377347849064544590547444456798290497367678353352234016532107503254678447235695128849053307419073817746997848141031276427330311784476906145859891295015470042485972575320640175263675825398448722406312103748535496195260804971564391894808143940737035787448878465818651018785008270346930987310508942479533123336714454503076075408385498545568336033266820153167102101055895015895938494199421391510532811104565190997867291879317153241137843178334106215219211263527935447694564466719434107241199086879943441845373560125059042779960205204510288305166047454992730663822112061699510114948411290769765459013816428437187949567220246958332362223939533202570721500151898981773318604932032429061774152295510430509244749312457592108811956634054248890902389210645710708715818981815785676872559147860489703135165375007993143095158898424601816327066416565878720994758950003899937741758758372379686545698631832987158155538445304609992587715647039963966546611156134816909036550316572157547482999895148131148896698511616925582214541825110900336449360493175205974121266828618954013893660817672368990280797294635312056559098822981415640955812631807644276165476067652605033428880808459559475337302963098715203308260418049210138517258629501400605070667104444594986750861963944966691795853862696742259375764931566536166277015603904583306828007840442897901041971251490292614855650736033080015306034919168213842948441096853535083081983975497961237854032395375872516253517520256576765558197835339251225518788942422378699424139634286154906139270631558191983034066254553035744080390276159124802908778795474668766151884409027680408429512702478986228486533330620776090195070197295517796654450034779579356935893619584976178843285032104257791918905434024780243883734022833110398444271183512636523088676907974066153046111727032144772399174184185876230448625967881467411760576865067610899427358138607118818090558091010336402027629675090140209780128106951030158164405938342507236050506818510665009411022469355098107198254426303807215107311044854213385251682882035516320404763544804813052029006963461118738489522970926511324296035660884587375043937257879002263019554955175717108614522205366013884948769080666121848022331021668631719122070913683081718194987212632902137966012226869805582962938859931337959268961235182933091871322309533985565347795273223064792483809428903061710224796581134673449986733146393420728232563440972003435956794893583741056315043294657933447122749871640687746964906556789348448165766188241757741813653605685081083641228634555505495052746530471094624653739097115239344784272479740690681417242055768251877598532519702630768773253503959842665231858310272985041987426359677480973675907150265833442980656991012735682113608391841291548415192504529973611538761361735257090520125425895443316535861840260986852531289430762290413513908222742295617963050079857766828478191897607573460702700466297004962847191224332330982082397538943481645301920955881297313822258572526881892796686719314389392205554349909397165357756268168183919707549727145696355592810589939954271102029470525896736605761761587735836518528644771478011211831130273083089824774699063881398769939331644996866298169437272928857252540641223538254128509467171565942265580837093099054904775710444049687513348702963326443103229110823225793682797565611404807303724853895889722441083919108100186128691653792442445410289196964536509570273205639584479313583239491360639850299805522909880744301617197430764156902774175795326942181275099683220346683139902993852609462795525958283688134727353628592208935030649027077279683839827478204577922947272734011092934046451621241021970110760448316650422737173185406878838760508107894111280982207559970386612464379525952192925300511797029133672445775586967247498742993121151396532201484997686333304483450917951254178131260873659149323594747117090633959975155625384784766158098523012280890496597922033895413660980230541293103176876952850978870491379577893576195626083795365044025234286685616342164519433562505502802781288346837800532134348904991411478929459345700890735204016162559360481949578314258029183798215445582867949730155412378575678455380096140287015269249576772849984730438285228386309993235934373790291549573811085226447097039428563090577812031159136880641627358439473039535691022914328428541068143262856768898806818030754068295922729699680962932157877547482896326260912542717755532834586189391922495656125907836508852516640332095320528226539914355560785490985368025686117227328408318206980567735207185672954126723426458079183033109368977239607604737272021311932668070992699336479912535882245624643345311393513828347390552593704759709214359461480017916843715379847843227651524409496765635522953475880415084593208688227890325736877503019642812037626301050565477619794467353739178691747543566466667862842655352496662510825781255555867748961554722514269026622770310112880094596831303622057028986249584590536791504253268701163177437681586187992677088727128273739968869244090500174718475201039453739660961611639056992329500667465400770187723450406234101722283024411029275585144417407028623845360571155780423509090159329630550638849675820851307296392848842570626298607030890507043174476778486374916368121811143702003785876767887800414641265957658418040090619543544857672915014770312917983389431716201747028596853625572936616270039456133461838038789182875446920584942265629179048338051228908327703868965212242192663458634600098782952590724268785055513011467664010525587618294587886067427646632013734108713185863279344043784565597688064331015660769336334331239227759346673311754806125172539499097252450353925980374942532387322521259083815192398360837790172554611900545925069984983265138534633301706767307006482569608518525433361158961117187641525827508278007876433013354975995037769158622915310052301641231877646632512074048132178037515496267102113715823324888000646463176643836888921675390680929530793292557688252849731149031658989302321132667112594499839060581052571971265956415268353449384330467569888440609663879907242075630029867815018400253133245290142443492390830195329189199319692260905339522996119883606336932076226682049080069616881250863166349182718277029253051642874941983620435522633319524182457767490879901267657091049104669196998901182161783251045071525609740683477481981119592595586222250864838289220196684329733420329165443835079180829646570591821940252534534380671686516595921577282089678713536789889275116080215714267194777873274353700015552462231826938751649054268401594850049208975705892323149283039769446770049360491043439569609395620888199412196670133955892166279129964427698093782094125392176645114745673750624782107639907166987833221377299966328633048452644165424268654735123075438097890095016317031589169880760646752388605720479957280035502012476252782578468150860441183375577788329091609654757561681748737237927267406038274197875605789264657832085555689682340971818902203604751695962827180750102131962732959810092361999449055276161166514127691530482734496818514528423838028869434812614449080755718438818916201146565764507392896264504980355738335819659848023829180001952184355647797000005348152866507449688722536436037444778593202115965416275898772559145847139681285485896761010902892984994487513155850001207890287523269611495305211914187761036394740280789632426442263352287131376342482683565409356563566651800714302009042041715541292192216830347445346881593069567870187986400584788182780399738707898005257234114152344286441879710871962040358732227832550754274664341987122932356438169121606375405991255277661727746225276592613840650907415204684021579021129731611566304903688938777521407321490584370423464481678678495933874802305212828450246725857222787400312129813249135993087953620535586282041716340365589376536361585615291602910008198640657665580950254713962563773616952620746832104280569443006006437677306533364383425766382788554074324543275947559609979458476685055306392329105311548864693213189241591857891046528642893441578625431522626663744042648368060400563730839957834913509147364126516596396445525388424909480025611449701830809027146748839018144056405393971282372801640359284582034958225804626539442169768619002026117781832145513307385343817879833723190883110362167489473047527225262558863672117140635909222327362312439379541808663946338665907666740977647362883960862880545719636633641577434922596389637245281805156422413928605580833833574737262281655584360274943098990922493797365392429418662220207010797594716954064407463045820690046134633826922192044821899725510032971019033030146935061487390773915945910185837428591713517416324241146888013471488260616283841465188359455126713781201756318311219947466118496546390550058181320280341511837117488739348757589288065684370096399435650384041207228048170517120093827706312035437155481685225512190051093033268740484064828210847138517376168202549904794641690509224687659170119719560048544199057718007491265800508288591300914227168231485313720239838579571680671633116879985560395942499538410800938290645158877290813192910113043701092220572766659842160392192142958789701561101458913990069554110277711204073897789873358525163491730013856599606153117482215220813612871608582307516143252564268251136089487900443705334148468888013245652735800248053844563441285285185234065029846180949232828297629173469401948598618724356367754248573286138193375700522153081068424246874198092144592812766031710054554618588059260484375138330483360603515362174831400364576801136576328366219795258065854851711761261512960280553658538508958708123174710065744880370856799039369951183343756503013767458225022933052406617494267969196899895726818659613509898208679206752805141895905518681493467319946404322932970451821668353654266537633299658202027209086908741951942292103596861847808894719625455093902370344290477135809762839168381226648114421251723362245383513964625805033952988340230665293524357987058892367029770768124176330872637628657377946206265119986740703493862730947301917438937499322414038367827146563877609691371137388584122140976683909262230714207521505520146865755720810626348713828453217779325789371592419884118322744744799428292606375806796126953948749125500026372908132994282514265275944510630844012827394344151218591514608128189230620905008213779265053646766782897921606756023928961655998941373138356737006633181621662273530460888094515264354407951387466266227463970381789069732844523456853359324219781004875039442500649146579791516809375382799245207041983973598035996840460976966200723552609991030011314867906026153212613979711331424220532754568929804249379753603206507764659147558601311296193287199312292586902307621804494506840175102240225663419434506142138041437762160042264842751637768147583588701820872014892519464745818759651011958694540802292002119164582075358030328003102020659801029266731954434830189975740355153204401618975843186735371224252789437785710484490732409780566924511432274618589061799065179640124553134130117494209876968179604205605965342567248871058610501242720104885685479427750915881773243777824532807545566230515577959206860708615542320903563217078696027830171805323401404364408450493544459710140803361372494300230970468317439358349435961462876951955390100925349935087972638562849874351839808851471065853614705533727577080471839014720543564271345704835287873473161821284508245540420345509777650674605959872205590847548543902763671676526931609972898927780092133144435336135430081428719367054099623173860404992549081326938909453524109336481058215917572619489729328890015753697333211828318429861755338405035953378149614780193999289677781838156113149703836910522339432714809486191762756094638083866227119413508220248009432810096074557333602859025972069718436959885384481089043235156708478832912100016191132819845719988410074919212657669072150499095048658717742559710047240504922317947487891566131371654390947210057138679788128852559597708061764702888284991336886034537548595908489851077984936593666591881546231706254267106261635132926206843125120628861432199288890591743873396028235631704142261126322518642041954201519762698933033413116035505942004832908105003675414052394486320820278306647799234186694817360575553065087494569838110475714415025502536156109993562160278564113920959926747213891368933464269430057478877006603586521015816931066138518085151772574239774807550832594201835050922158472619834526057811488674958776809415326744199282049865758286982742441281252422140483842806592488050436051683887445374140265978258554063256441311141769385681960326680485250337906084207071250373527890980229388096356578357694472165176303552474963587125563227118684920708627900743859666895689681260744517032526321139448676367097461221132958550677622900525166121285827303838505877058870703956009558886256805795739779426999050592672308443589800025535595291227495459573023802610258708012312412769332216732270791563340908811297152633051423298773373627288917483599993785074382492292792438871966079163911718123266614925936684469613272000637654751280595934472011699806857820522157497991538306583238193935289086556192523805456925889971282166812911278144574414042420555771715568098076713838521915244244039426375731994606958033869137225103830387386473856515825196676370954555524187884277360787547647460789738810762711836838319362162265185598178080107603668985428018325837544938673337715311416917654594735056999660583657360821297373394329981090592712162873047830605205636325084817704544783196003410034284855741115439236928668129170620430079624636732330389231520045824267730412733961893151124748917841079686868101674221350634284708247118081110833227290911542046766490083360626470995405278299715153260466182811243549621823045227041225195518105457033666734302697689679655000557890810865271846343424499296338519099545408247760886131131170250743035704063213077645467070498871367282602798791479083874738722938484584773228843158796124959490052696946119523978032726047530341323432631052009232999253418360117260807971052482689569453124133537465249320985345894097814830316283410048598063384034759972263610875123608006623910785475659029755349450825731161313277258854355953829576634934562165696221446195455256516027534382729354314233926706412791250937511092988253066923534720987525934960138044432300806258512471746163101169778543101663114335623492102837187374645391177730767535837042661972741498223832767818483359415287438323065510217905628667453338937544172428445923868425071513278067838495329435492035498954624365898461501860753196068897572787286472798415062652847876644962167499254051616158937857010237059168372680638754454268160498937238993749105659968632911223311674521220870508227940291604231156878526381302572466006095420418656699279856058842054370552860501967098757453641145899692523403875924245116500046980326882599470584769321476660956934336716758838647716931255389985967899526199416877050020547035145093856035552595933980939610344782001476094470805761311212571236353078693609328537804234398016660284805821208663906725733406081370857915467110358283829543580246414491726559793066104127584165348527042371770639690059115752178310153390169951791519587973026950890640373978588508916596395965523841872445875948901821776210974354936439511680252229334245580023366425985864485962389202003261879828181704525172690108024356847128680935813483303342210012808223453883653087330879242449646586570770766791387413447463557116553058480517497657531616902154782434755696623240275432436560695402242456776756135071332525047860383003878007957787565828965133242189849325052077947098165543125910422611526426308987309036812264745708471314561250640303885482402115890923442972778480163652820790100535730913735075746998614098415872482532468451409613803463227249430845451542850915553135494837159304676844348131325009791062515899020218063310157086523240093388846193418845976895974197530668989780675655989484456546183518110161748510076926191403372374561231575668397267171923654154984676804651513449014310225383974308573641446349479075212005916723994893132872418123239430000691027222424306463180625235097479275849063412658790650426411570724169355682876919818273302666800658005252805272519020200643163445097620506968293134751473988057785420493707267388034305311892838509724909076838457150142475142653980047740829538151367594748446746231231465504557431472447491218852474724604554031365743694010718504994224400446643477468654032691393497543782325376573010435291077698354704574310090277476103238609860617860690266714477813100132888865150539086746187305924254564403268094142776757194087635529702548408389220984510784765131447667775253729669463786604437022482638150650003976479738740812005846099506881074190085094371843581788321356547255795039507440663915020062216358203953821486672392800507796422003582601035684311376135055824869777107909779607969444277551779347442226771438876206149644784828106568954587963468403177872039465680900841624437359278676661802244567760639505138697796825304703199383606095267687854468304326054737661707821356409540028528301748001316107878325438258173352827574672554122273015720628924962411165532089633586873674034440975475829034704066583070955612011298124900311857092741748094274374686722766016419865525683940165641900209066846463196890683539930995792270006741328953667823567778857401326528774436376988261477451290775363154607751645202420486764611313612173904045989243988071436744232053025576376394476056442848195544563107476017794236055432359241976088263383245434027964413303556286260239754997288013131870657529329126638334845277717883695948813960392146233094106316431959614203277267854574220822324097973924581098006622311693434262378476107042467787121081229867648191414218679211580806967679142723399138690111766164489214612741474834273138273153817518086572389404658172763255056947330106982897606550959444149099795941593553977163699566696233458588169090592586674161146825645109480322050548474945459429451705827386489784742815405529508305879329771255060095689011733076035466225976556743763240981610690618147415156254897424286490203262468741642949225209157950845999897335034127949511657099289496406703506904898914868235810668131818579241629717295955030195806249646027832045716450089001696439170269067497324548604112873454788304847604540694693226539988281496912259835661841072571928686591354119466763805028595513805229249362809825646453469545392196258867775149268517607018020487706200518868067950153813729938308382805199522273723938520998188177633185081042573831845697546232167206884497684752824424652953555413443065401119322586249086978996716649337791542438417053682630667526361517082253758100695720522972633830415573667176348709183998892316942482124373669664785307690746912527060088596872562105701557577577037751452463330301184459121781707750544920293553806493863097872207880487512718910382306058398734768777525320126310705088396766224578460243595746393363453412173787129169250667618454712313579799487783480869335086077721530191867460829416232881560111781569281735460488241711920233833880284555067788500067552696643954230219399512478948028444428410272819307978564007728684269054384049593461087869501908112123293327149016291541303116622196620734108701634492135195315103341734699481598200818582770629862407951415348714862239258872691360580908057485538316067714457453190874898904997083060802218265138905119371044019869179765758089693828240736021072015937786999714280885698946248575456627458019918419185659347384390029309610173489561466779627123292136717533166403327726202721772900096783873945903911232329584695287822206450542966639846026258794050831651172324190249281348781080625215319656905843468631774241328511737329595909141706078762292771368876266528873211252021502865121319589989949749619797356915095653636132064253266792037812402010306102439465036642326756668895617878539773157798120234853205622135074600543993424958918669729338102298249847578583701745124339017920998478071002349958055752312619667417174824713307942029747751692974567033511377300669100154851643416941358268497215263821642595999787946530648771050037644084856843968291025646167120316925135922394743256378517289122173734518633357465777170104000713180937729927798799642525360500623259835182931466706336893599809346629715517358301637777127564039323011292288728013718223074828219841503268422385448514387098537297497228597598714567381763758477710593738751687829501292432418863335506964438318626745584172696412638957076770772459955281509360448997740226590432781020719538270377863930270013471532774838824387854469930450146708233859948629351056194381565221531936089562313072630172192855000542785482005220908821704063634880104625016036707574620439829853812849616111247181991030523199108083997650454442204812291722188363691067331924685224862295372855381155556393640281484706609718774155855169625174872852575668688115969597239614876446132194510001003897829275841591021825830399616800877826217858224765399765444801021658697121497563941963366217965031664137593144616133403644556796647051552294506783688475799185794029491055395004130961125657244822772453689877844371617097775973467041107549463653292496455049191723220649578922611013465374152144131232151233595043640461804171289623624367051215473569659201573186635749684923956328195309510377847281012005220980609759541370168961241850549936626461387250598846777599106165212171211273698077266043556324238090440829082364978121658839123409089737083741576690334220287491762610895319483423958773194602745529052672078832938243063810841549643191808906375554994033254122803238449920603103379460449700003980109082254978965146308906674498670052884176044063396093114957198377577179910572001048109594933170086965323161819194360990476348976068503586552121866276490946393180906778988752236201200397200421086907045226137262357586556037692680198074528952367351970254375256461493523985319440061250580795507534335925817041985243911733858593059948596424389994888240172408651492219882971390010723970118610853655433546440012241657215761010749711660073339925606095881321261170506843639703742558027327157985316328877730324506073984780056142654665575386009343219659921457607386565686934813902518982089795644275135015639529914918009965944815190399177187076188308427721812866893404570242770141778915637718270185280747276209686063141612337965135051459044986050561133726825049276159776999446438439192693216998517041319588082425712784373984545173788367791103071040205787569090390641841400029616435013842476890221242947332283551849619131951911925789894196512811994475266140090995003683264111002984798836680200845182793707540639447516884061885534630914806748889542139825862984739145623768022426653284506298286528893306550792693460426323463650177987467505950557675616574234170346032403744242741640210841004969952780618419950467268065591847630533468350815118027870864574743901290120254312641166659827817218811993292474955874866486860844495930236812911099527467149775188432781108330089059066735794983288702635046856052298809536535445898768175165725925926113853237736182915382358042294242228928120779406228351218905339266055853838189495405569708493977637367467065982858033698112854094680919419439649864351974804463889115340125177232496117163918163209438340111365330926332813696610411112459552061398183963240543805413623310696993770383422411160843749959017945348954354285074191372125404317689808443920080732371400603082007417983850423732581101979604750574288347629691074388145826241103410339865699400763817967439555034515262377749510835888738404263600064242355873280167876906998586365523808251359976907187825293410797996910946251466023549933952757998672149488561126884629814371330411997526775170038883597576044453290770161095226725893653634560904898736518667506725343834766795940006590744648235513550828772055174214919555989633521115941553941380288845952445397474260610270772294936956784753338462915562855039079186537436166480193211046768112094917582354853745110404559714555676827711402098225603776540378218578811210671686567406155260389431011306560749202899530921018309424766037343956374477973436835211389511713572994986158652727557268073936061920371318143768230123386978974829839620740016644126836995642330758859843572933228888102126473194862288038928147657460767007818017335934410319214380607817700520607425030148616985561546179664954391005772791779226886192573414198922153101300487993971040451369187614832605470562757237699267060312844753933440695076051653455309852469143550483010224216520608419619660382782562207686394942809373666950136484566219989811093233735277351017575990367663895481585201611334298960557315119744026299085089103875305677980197521674312472696308330330017203944552996323160934512386674620235345284796488135195738445274218204148111165639773773509398312365689370350331289594760332634731393100841599595167886053201212678179258664796363839754786917746580877979457682450137580654617086107267182449064419628737965215397659348210390937653322427920896902058347836196494103652302130880923143034489364608475501761701218050141605637662733331327002016804282374936007418033396138444482290946056167546441379513928823429308943061125421025624989505388672209402655818216112632248343950497023835992898156558271227723403744011680058522952152358154186562672373773640035624546485703590740583664614023908481110007402229726223282110115182590089866211597644137291146893484238787493259846487972135602157688882520683925020514300604780617444229869291078783801002435002492272013758526488500135377712763021276580610990446888591384977662220609321351708005535214760395948644471742093289634571104537588720696135525015898755369024865786262697018260971155108755035137237166758617194879765597479625227998180591484859058506910615443865082390131812614687325093366127362474550958415398350348348271954117988689482430358028635798290038870221099696621765539444486734756854987870902567172434531061262584628442406136686530247276880639303035788134343559348596423954493345140793413771746457792316914560033361511093165167853590247477813355826064868317677604435418854363102030873294145539739452357933228323655314511146981046536763328251493603148099549942224772539286682168418593827727683088911889532349589914206724800025339306260862695097163231312901378314360670126575807779866837234145989613597199136858004542298151638926513933966879124112811025778805310982619370612742123575677102691544146739320790964349524128925024055730885355392605388921188670710682741568160096766445566037374827139472466710467236782068657486538947421928026487805990941535774411375850526184225259406693181006877089729265963051046471237464313704778542066700640839310966982542298084084183674982485214471432623782302517140336443139720145458991134925786411954027833410578193073224514312032888191615701908778723350453983540754232733879479351154557727140441672642150838002550558109581281400761695784309525383360675300419334088351603733112347630563292551028148085233741463580859719220555400924516103119218671887991982076730738256939746136828876684049907779809388350145125600497404134077306373056226402731187464836238808149290360718604436677670886421969975325853228850919585243338226089835600092318236194841643200713810917265339535725128713191238581312251490989749266163333465794601824382524535215424461782840099776251628692940887164932467548373670158457804127440742762344784127982338142317878943112845287797782160280149660474222925667204937259252159616987458732241127359954959331148930983209164135864645356559696777186020515450833653814903459984100408650013017181729254280787505707410115006810559705048324895507496919130978008167207758084637830920683752230683754625246625849153785676946936189359968914103685913043478959117248295937081775215959793902452185160610438485468028782414779948925917592378935980628533574531797398142050447149695787886450664349346338559700562212183358212272765154766634460631024903033284432457522957023598248179380660309291651813968503071728692031805760871127717738613389616371783250523769653512656976495962101346034379945108350178938624595623170520802629945360182710184116443103316639159994171677578589521141762967645861317466413653426980338221969781982836674917586454598973622104272515036860553043937159286530839172037991014444427748499188434957884353507645818335950203799890423848662150198652500681720258177944984036577542070328980347618214114427674439843249130244610015123066676143682918050745032721319554665507892875053765611121100151633398150074224977321869277047926360775979951167643847164182476498626835328472419932785986308358860805836539472949702904812767705304648340412897250750877828975473017016995012968919365421182253075573000889591075944062908713951920846266087950331832070293443593736756178885776542556115068683630255839766264427735682672039134663347816121335311900339219537717424929855200871851686440582829990089003827348882164100625866364359784685743828254523094070076416231390399892538937990288007005163290802977630678050723084806681790974162466881436059555555233756752365140305025177096736087664935935172602783842050118164623070515475399016407649004162603362851037249362950763953794793845115764427049995967368935165226911528027934650825234902477108293850245884751806902924042155200856190292793414899451659050399307129610287667281616325983910347633088153411935733643406311705184629414641714197284417723730178886453844787925057904890192093253823882078672246099964247509335254004501330838356205498383432457239736046203523523897795671294314977628269429463514213723574353435293980054184274871814611541106157437690499384834827389348741065820682596671308353664680077118820862476641437948367870354037274115690009647951976329266737534902273034465062578622969092021802111614514714683632596805622310594855098452669843301911818540071554483847664992941953360142983888597233073340258552230083529458455306922695009808028552867387653687035469138764239385070035040320758607197267144631962235874712176677947982691377925854856940459241448781212242216647079390595125693954390594133960930535047730887269936854479054175182074576474012866042133447076020505917272963951518470999874954548408612693609864309111917722663403273282204830265882300705420303335868336227914665092683675998386486366491996957310407772404315763141996007913108418592606867923298052992831393670485854405815633532044107921285781529553036636597735873960242053135871555249786720484567849886056374118333519619620526544523730054694131465003691783105133513741177353588076164509566340408359275764185488666327514226161855727482522612836651950899413344394591928579361296583332017207733597505813646578857381856873065100011258138458218624457702025453864116071694389159490003586587335384766351245855383769696252711508900113630688333825681817922831688956325165765334204131635528525382598441728121911812291294529276974984252459952042403091014420413686118838092253342863226671703144640454490804051185297488728181623892165421227052625039078201201800833173792424128815081739713210456096567277808703126969034640119602221421423570255765286360694740616952490128470569152485842032696466991794755710948569102670580293805163104827958958711781608111966271818272906899568584548278864366509743784876256278749889679218300992956530220241278483890190329453984610041302618498770049123293360431319591529626361899528039726478207210134656345707480716270049362987506478212406101596077914028212796353353866396272309470540485688289894078851746334493777240644715581633451618040428401945536252217049387673710024955932788609361115900282745747845862516824655119366594838792117622218376802740250292081593208663965042474286903416086742125092389367142343009021171324697150726748310377323101099417579640666272004739580803880161944322279382850421379584174492682243044815497016295926984757895086312135396041571519785918533257105843838305692455358456939970748107223378845677333399173474323817076289479948928890927324290084392418642038074633686743930374252825156560760472214231595314802796273570630358824872231521440205946799076942327360645838810715006704812433172197641090110353364843489913521710775577633943787865420200263742415308106085432110095095975022237090261720501651702099424763470642428172953919758214633002895317130809469817789411016057088460011995763876118316475453723821598490785176153931010326923666695352061100871551245332261865792385452711694765999650790215937072663033650542273971158594964194524935468474843861779868730664467824407110300576909729179838718204502293912464543316162171575552574211195880522473119410284886085454232816261106596647723110304778103291739880801859444576696076897692357409338120238895972234223005920572958028519119260032304532341579242048048457677139993700514523960583462698369065997125351345709965564393896873142709472097084520566803672347184464440235239046136667524670396171442767526117292243274943155159103101837548652705119823416004625007093658026052933568865297039179825008427693884423882073379518493927230329573904548977530388311859221160567417907989990834828369197862462392769310759132866186693563450944081169120291825317858438361718607921032742560045980522877192077615194946383213849880827198781240135690855277999478256716931419225741558309442803679890295057030896435791756445035645932505348333139305307559968589602092863526209333302306757668895852156472423477283960043844688439868153398566895431312698196071252789053753524070606434937930002630272120710668872137392042844390767042464114664792653353505467893726253205258377793718329034729081891801380156964336399067641722958296461637581874550217313752230588258442449468680994209310580519409439134554365222633342022978427717825073383635789264864514615810333423804162677844676742959021467309611180358632328465549813420817981555579950996319551187281704560344923541439264659389493727696443364555905669121207638212651388336345119088312670425913829977254009750059192929888026716034858342979579222588560289910170907557715308704291469213802902139824842841699011048711341085405234525088514268466200244959477661316644572861927339597221958547457900047617606028699882028394059308722806512561743607018181992997104839258295678569915295084447499859933314249444789699375406233041101535449465575447497001980696915465846537297251771817253353038444991142028576337869649815642994579728053035694248096454105102163932465072283575439244568531684516406736264722199515544891496980553316365888617663405022024576473235207752692435597986208448443617459268245335048511930998294031021709295843658316513983291513067248554116992936746263067322562336040967362529157538522482423218208137399520508649895757777060263912581872407626688730088556805617756699498311089373267919856790842999057558902604412365095843163981012476847144947991878318992168729651614267811946359190514351983507364480785819863072244141864526353883750179036528667757390543934477396003704906157257195647594160864605092737982861172024898962356568810612025451988466125974983970573521227773284694272784867128347523504241704899931200696820798135309831302903446742827990755901955874546248037642795745061178872060061198731528700728261801597397195127591308128045673905808879765562203891392286407091946553555538775711641997419709313445838746918894309763074273121067832117527607023779824668406158361817123651105292776102065762851439317920392447797888104209668915358436377665943408109733962065310012291564861187016616521918066072764704495064092103471770480893540260233677319935160072212813094255228399587785608241694679360921279015547330393855809222547401793461758604264081868374458619622147313075871220068024195387381141716753335798011924267454160728997547575974325032080064497835860937584740446265107580382592278946678413102579357486279027555821205957085021092615235409928187133227349951428201577730938231979524547515245225788509688616136041128672288008698449235252958054659052769478717424751546610255815788038125168042428872137711834672239683073774634114770493547012678106527073933417975439993178631099640423014629335550839602340837638438977698680865555339554359373178089752147825914562776601417662873103197349045934252435214896434592572449304059452121606396119005328508307170700509145290657341034255084079890262541434210391621008577367987030965162720545042962829112691761009706729069964205382092250772380093898277068833413915006545357422423095583144562121322887584194914809212418869476370208459337574185353390907837501298008232464440568831371847464591098335449579153621022838642401289145275321609204214337168918251330213404408720791088427252126782365879180438339977161866023359322392598695274083896648839944867719556094840600191573220605628741230966093520784029438813972817751065730352282330181658848062730590834865052372411753315313442626832795735175901510534541764117275198316020321035882254898712660970599991167496898809329764008204997970878376811657458985663613193321691517584716186656879621787935290131317176615784300279999023396142404469532705433082943399426024750815777945870710086712827409804862159269840069135530292666164704179980516912945690917899274676689071892907378468133563325793470143069058331139724207509418628998691759139233750788093446709610906190490280368688881857608847852294521737033924723608118394577308354540885662003716071111105779345014696356234271033760330238225531019524764155573722634044365726113045930220965090579080182092656052963608191437182945605931971574174081689279799706696462841284752885611315461021208837776051666093392745217618715351467136812696276911413793088296311894302054601194077051383946618046809291602436567963149611117850410442525338169156806440468791413961971149716816918816200687981035951184795835618950673103761902301597566234451647141570230270692085309425761653954007412307839874607894160351032038798664078550622058719629592963590590115145974527256049149675166634733675214193697187765299918363517157575586029521585913620680222317608017041801381656696356959532090202869791800129210818340821732781766984181853096102211968229497877386510806356188474108871181997358339667082477769298000063122527948739444288231558735432662202248304678333476841863274678798154746791196493945201498239318073664964782452253174469842557244867735143467974562422283923232538564951018400167450352265324595700077744131310679350181903082646134143754240988311731982567300934483439310353457650026292204746433523106449194334750464848435976007108819274619368107618980138643822095888013754755594615990650451197694721254809567183524018483282612400029672011913924013723059334958738959606871952206575231762621895922805367461208689095312089108644810297926467661904646462658311234707478115746968059030812395053579458637664272204546798925083293980020426780505938120063588717287600241268764086290747751291438275845130217981563372193163707414969563031512240228077390063975243987682738673846363924701104454290582181763587694771475415569583183387338309187455706895157017826923272886567936825652399532816543666488974734490950331050037962224420109572520269167620378895078748301573180047726538168517784957788061677461385507718053923446372790855176284649883115339952818313375057251621527201870329084906563708407546129497696541387442144049486710043398685308612275128818836285772395004437833431227117863434391453325525537514574575887391477750350568391938429382192525661119012925508609413995617761621226081071437742271255001277671618604268556492709992953501009370152178077098819936282516972447303607571374394697166712640020066116139156810638962167613367987236217281897130091194254401609237414385065277165475481862346897864454951943826535353427252629730783621713354275063562627453567905364948401718431281899111883897230370692052496571914696533884243754829473564030808330409088582280140397634661373055137474851540387858600587843818872438460483251881817002026465606673908694353221450602511533392200879227172386974185084515652141832889695186520544572221727400985811706095361405683274058313063149490911602778536215531690323197078731320560134990984013596818203660024499391408538495065945256190574690648828326601746467105568583164287289328855203536514182140783216366420636901896644700672228781253109548473619333794184685330894528378761811776961418183853623494574409690814633070132506769741431081612903588083550530153810662925578503370205814235915132385565975127171265178537441958835033071571279565273197685093627527890804501575000571721684960180685908390810903510670470981970791243386502821414717597645512881459936867057418938965013029666031254287616107275805374278932792653683593916920956745714641982123185970040422052477262105848536286742035022994047818232250135894470196004043467410031031383840876920908418459503887802805551128463161651588980848943709751586918270611996257122203744376888368367072496825355788207035734744851182962276406943413498879295425585042023418387130831405272711439096456148946000146247997227966152481372640283705131484947652544391651021519586789252431211554034688374159048664846221627674214694594452175573503319273897131857346101595774440032898128364332959444685158387985782643338934871867662430235785403232743077008706775746273438280289128411394972247169435890817343332824082402437250937141959570937251936292688265980723734607697355482338206586289624072909101660278637568134834347160186954289500737830461898637087182305801312436871219986679440506727314211878766382850070229648363411957592653494957484668705784883677100387904725610085113726167920349283761629125180677821797233770574737320090249767419240213120266623795321432444480714582496391798046770107953864228903458365215342968603286511187079413151539695050698990504906567773916542151791568310825977955232108782310579673276660011716461954347988213197284671416312399667375625075653472958747229273194819112597963061247164630997848547813191759244990732076526748931976087019544573450281619180653364168673748407317220552443329497137812419275584022379925019601209062201405533896308738836422009798798687374645803138915169956060916100790571734645125511302950799762352282580798858674420846406922568033443510840107437362269475335219220512551920775135817396644496491193677211935180408457886662957525039060629745996951781759373806061908321020986611396673345926296912460030115889535259342139564664607872296611559048137857775217832212134733949710800133912648819697892726794132191829734133390697359378723087963789272670064551120926322161792320307696362400501761901130572772287833969564925003617271017639461333998220210446172171590083742016909134417130370032761979430978531793835535717823079100042696406018420619513745189103009802153688393716216533873688072527994315060441877522792520223563916341630760553142973075685363767660535199572542136490753338913798213750829519980317234519908992667385752368508236355076954775813742880577981871927766797198269896913988899690476218837282914375311345268185739427812042945849645875037277737374483750358985735285799954529955749345190768720273793974585577623206784329097314617178101674954852882062269327306987152440160623686887522436156092373051381696608920333783650123498882192450392276242161115832625710316811997600902308813811499546518340487391870070370722505215055453620186233373769788123842565589387153047834461241906230211723508834064404891424632438201693866757984117535423232406149046425170213232831808025217778051723801124034988041091735392253422778581903733851745273132922275081230181276149606631573426612191075140886450892741199711851887704111141139477738700021896651111965600293149137679583483307856453218574115653820712218865688252366317245309469217642597850367215176497194119206399811307320610585566339745192328194572931571747741090365213070989644115275338588185561245919295813494557545127931949342191646230181482558528931347224477167670794355912870996696815969370310824832083792676237950980912787943811902776597252886144518350484760803196895727196973882389220888748117261328179817444375947145467747505644727893983295119208418458899079780250288060869930556857042562493175964826823433159659350528637851010543423521907376887047699582973151314122109804157391338995303539385856798617597762053130005799000515760368837585723635384485904001642478811729861287687130575345151960869283323730613088132023985676752987444200040674293846688878518594840957558322070914040357196691605176330643983464186562650831121585442360001022037854630049582689994896049861231772047209158042862311268233311878556941123748113799426309303019063474538656359174753131323673034637383834637875598166029345872543290246821813975242361925233056009215472961484863175652865746721547148439210439792111035195566394152337161257937077881487811491702068806878447259552944496446671732355377850531657164616860100045299228628418139901808945351240238303840917228463914491973342097523292873536006557544218593479556212496286251537377779263714781536479249556415084428684833140908910400767788261927910484727596873493155402578649213057645046358766429567879878713797775548786147180879865936575580720491041722100060517726918629729477167612250450815717866541817428605623161854443172563020290387625412039974381092896158622495746837449740189043074094998032054595950027299936221782698989361074516614779301516859645359054008704153241422936717550924625780387611959030380696171288584164373773874401200113890568159806601712374662509831938570876708163657662154020028094383375019081057443579973546391633471073839914825210693380141295220326581772350415405506016130179559890734196622057586717447465411959071728239681843074709793991418046471566471332036969443046017560525020013520415528227474971925385398769322695590045014748237448592298701531828783670741149415335499715568875005454650629465887748608925173204344258525239323172563902702936104962701648667015390172294211270659192991951982185844741009974801198931004458565638949696068296164480489990085452400673532342365473978581165465215460128954543719439312825564438696853608901239032603308930083512106137846248979118644643623640791815371480069273213615293452614978918406788904356261079165363156184245440487915195233397094122400518195825561207482764922579550438914086805441510764896730527420589298585874057971156576457229135440355011639530306685815411517091806963045037776519772135249565852061009653593721051575115605457507367406204507925134002436763352102775769439303195983226963982212252596388935282519380077127901842319273626295735817722760718508832248265725623639744674167858201110472220496664638165465744818217425086196127961351071517977067361166963717623400857952604764398057566692063604235749641107682150597217085337955156567447453858317126661396819629622326190079493001889256805139716831460648415826352097244362690861725224907066143795067410546694771706028183367481969663563938120073368619058627735143684931134309643898660458474127467928661924337205665120764024541524136776771870130190799910817973273491154544950620325398790963665363607198134413408233663327902444468422486208902667984639211460693818044666699244136332453670823771671653182326807649074331644410194920441944236850328172282910656299780770364580225625508464481507325779748480442383230416642574176522313631725525306494371110498882103410682652994197838598578239174127527817433729560435804450217958438070772166528396116804130529923214618764637876232790537227285900786905909711709350808575155976409605266023495949752528885742916599996893921571315209260125691570240443257088595466813827087753096679934561527852566854390088034288351887309516995330163628412160603095622933016762904881981096165979598767675578964506806458892634103473677054890413550851498015111892965830430265606223270661880399091329086360668317928822878086581583521349486545770831282461334336736409455200323609056345783880613829842242681614477020156827691072525507972765601332142103994822102435553484874181181031881895667674954992629185358427750112915173646990318097853122994880039452777203532551565510423799446568113818078822377290876228587125649059633243043318518971225387307904365896062769994899524704458084695589488629938527043376991779286258318955551922901796842625374612669557899654718983334946205412045177118619516568149237483357045868767908791208400642877896199488743182943994435209232765984929078928308300806129635270244243187077960753807220718944619349813239316366057188850193345483784516006773681011785947400987722493942126233214696449460745367434136204326110057371471862693958025634389475819090687058738046670082444982417765344916599804373299196790884108692286058341089094790232815830239774603519879088847050292517074986625552448490157493245099916770059112741282504101170870293482920337398603300098251539983483197201910952896966526489004611799914757098632302752424298524891746595962703745147063820858029652360342120077395773595229456610731748615525518142163736088665664981360734782998358172784070971038099486342248606957435250869496810099998597620801512403007420960554628276724080482817499878014278823251012627112663230399374212655463148936047845298957833908731843096582754815648714305522797508904229897916661193626815709230906851792382869411876172209559215292373386556485296786146009530343043182689925357644217915230903257822137793349626589019477850197621391210998875603857346658238966698494055064135725465183830443022787080899998050309053896669424216738092933081520985555439785736149125495821805787050294390624739891010437803956331617771783834075235684676482713919241946851402068941212785331152093436521848949110874224756101210071385362164264433861465321839990580517752816666879398579879602864278147061064560007447588309989926871829575652137546167078988471715743602268496636970699000913643134216757980693203482849412477437871841078379600857431681330983140069098134182496176961332606969030596301056611170062291634384973378118382118322489591627964330325778750961717079184914577966050860083060053805002526611090438981606695307802942588573724960919683481882158663225752087086651389801334979141585444435651539046002204267510013146873255143808777828196556447292041874427995458768987690525916080047493696849139338957200091908910257693887143818141672995368422787112419421729575179438840532402547689923320923142071457428529962796796768866172716759102955129119664070358233661032746902121658270850630151470867662055074601799473878162842651520798051278756420482348017503691062918627259182630093802981912502407304770650673589918769407670976332874919036687613836783264499692108598210552759209544733069872497659639563930359219570841799109057253736365919655793379159868691069469842508771528741463360304423136021871234421801282636343804187966586918473419357015058782893250740486738239002662658479902497400655208515640835834782485423206427466073477568625583939865729184995561996560858359760652840419238437460589066001318363450219633814414831826289205582597553050477774293687689909581449219762494623711267810353047263715820173487346323778796620374464637392390685242055722535471856922300674103611772460951208761779725090401672900069150139252258929157930998140246083987847592262689666494996668246211934195241893166531308455531609135410034551283265538561305685819441422246076063235558855514409773532204821110595035583139397215120776942670124506719197278385955790827994969385850613548065516796667890973751113833645297797444316475445215034607518134297418589647744715967821810520778725470066999669079737934434686498832822393273169364629921176874786145458896586729391970562675738162652212498656921239384718513873762416145336979709958607115450415714432983255665493335354611255292229599913691989796051368878839304466405248508491238831646459490677053232271575900807267946114690575040566436895381934201075647435584655926221895567342024142871112466120768624680121264862139377881732985616585218119526311828990431257308235026870651916556464069354696948736571941282514286228300894288999966627428328823530900986312999713988717441991990685670009572082239730024443180803382464421356134888597719497749359554960812602274375825629920854074362055666834307771172817313969557138455244780108411222457301353377207045609383906580234109238687423639992357138385237599685356270159471416799970668282664724168555864782460974524944056967736939925780795480441980546526554596317429058970881030958457333220132123471406117954516503196817749099237831636973293305986791469811252599556275416761267634793705042391766315433095111057667985545410922759244286324085507792338516671765636626673764437294631109142311567863302381178150272707846994043352539646176838964232582545717815163669657818053074953076807865535688515069357425628783489058881659752913955403229088240584711597542273514584370223032265629678036093615180864486928433767676060781692249418004850918654895177337316253102616138191157442752088090516581635364055252423512708449843378828827766030014153000945275628748209460980325355818973652927701643013888640327401117053225793445189092111121339513712681704789820098420543994977113382176541238010724567469313996669630127219542024341520394903076040398634331978030903591354145850937286364765234290145935796729461285564780270745204633572250544615580601420446016570665489576718435818134240457962545430369069881635237143893866891565645055717443838154314735162017282446119332108975960773958967538417071824870410522390930664887586404556954304206064890560082418027540358206366276138970855403904329885814489870557782699218880599411202800468278154827786104630565867852447678736166859331024097899194597486029621426265726269618681718279013924587537697744395449504637348525351716955988829209464768612918050703384028262578911313416480217770989747607081379567848195474038516587852871104389171400468655352988817869040169244044639508781379291814084560022932044117533220946542703663297961058862270866033101593440946705737083375304725067835841297727764604721960623358352055905909023299670096655322779762128404164850324114571849523988926842666653619048355930586894127987884870973269579263486444376315312164066170801822883044901713888059300788381948146360150372253356337228703621385346422054276436380282337986433489443032473136632514688607483826671851247660501270368552175443895960756432732115287848787248938442615729024277774398374254135710859716875417748104086233512544314153436537964047264324437406973257496464703740602472892432560652299408558800943433511526920970434314647164189756483833300006797248677974623051161968880731906639330429355826927971218738725032810028689973999692877781534171408848922937192823768317038327018607189137884214161210095460373736505154076731110076608758744158767022282263920288988366937506167405579831761404981113497607671061479583618269122174573495538556549488446336757353783708248307076487517314847883510309090503833250997034322843257459053277003004860413251691560796802000544706886787765027513529373967647879256578072758552513022098196789500086787336284024309256105157919637857027893138954880977270989696092056784618250695944090320233764957772315505711803831257255459060406088895389415016765790858360411585306971314592116248827513846521956522327096882726175353093395943491155284373536413144307981045899054704441510833970424638738345351682938475218172148652777454124097668586625730354162258207093082117714346228293020696763435189454852375553960637778655924017348554372288019286539893651808676126079682436154269580424300619260291054366693113780135085648056111094494410904446741114062117965307595415282037405158430989162806197793360862627876830784847009539221105844473657006109850297587686667707979580204864154878347071490497847210885115871200124270933866306645273492654844703433478333891894822924012235255847229326556802137976106457880390721635745661673139875548701368847499514714691551617187496240401222044979087564941325831839965503680914946276412626961288082437540564384578691394689291257444700074265679258871323389949630399222886854349515685435274689966701126948226082486543409629374789780124389006334558959820619499950312789602819695512986872611799035075252740678953886995190106464462961631390032401464110538198177290975867003442660325351602560771844443817604806308229571863608765927778364153812802428924209038155779389464392871324777531340663127577387990795862917251622535357970122384306450501195368241881138669156185691034438550436513894738424626512408607704784524177218053376933450869704209059748215641727025708784999482072739730145584072052252958321503388951167450356219524846346721580337700980896000388197752694885157653760095285807867590587288876075141217714059229886128064680582382927287623223024532275854657068804490638789193129622790561771796593529828487265443623157227492883568021813681428769517847963655594779088125707779410908847477878817322729435894040171907858081381447222101535660991802811831686838593632951665402512084625140554610512341539177940120284614088205315438551200159173175117004327549027283435289880497259933417543237575566814877556365335460604939586883999853875130082399532803343633345648746222046807587537227252084929505921252317987389113668104299136526826403867189126144662658977890047093761846964831547422558710420154197129529083163973980917602970166547918871233849153872984076849380569261113987509876939646551822501179273508981172103852582368058787963286364627416744848996776732057469917027812122039780862942062851675704313982811046746008176645850204237884446445398329736305922896341636761635413232435166244350305378202341767616656976384767119389688175560477688928858110085368166935810321439571389317000720304075021427528274506874446333558855438425501460611401010670709356500637150683716807051633874958466889649355403507259955108858127339108042703474320140294080947282106680388881025164684199526944852803701057212993680312705698170754368169883842426604088504923911829018051671446118695851044615400681462377121557109079942020512021612092972603334829266528353620830869375166444429344243628080382159288952295858119153418121077740862534040441362390648096390943817690598230591272169471188030792599409569922396058378294072050883521676356481105205244585860514302001962695820112262868960157446324974946750060563014063088533042898467564375409552383615096932699483235276691862644346005257067486102294788144788360822180097533064254640366814088800717391531874936625920166256057601570932743026391224290850229835150683773992130168751440059329354346902646433263963461062576291498822020420362783196297445312288093233482127084352365564540084314954626974386178704115414458900021537830330335476656099597134211201005619486060478941779754507952544003317086705505229365686673902828913079921440940167840814956307139932675576117733914672783317562672980649125433605888577024882717534766796869752847520821882921932502297084708950863960658037740092066739506292566301243465942122761257103324293922054354792261326346888006198300225344138569528484416187146878243419365019394618921991024184733951289681132557556844775616591587836434657607843817092607315166753671251573142549197433612225431517681594712549719765723193134046818005723880204320292072866792045896990320408558096116433408339774740778755615312424352245724274324781365432777422725718953817201231949075154357307604122524891510637753848527415832370322112724572310956980721438042837916528689998159501117354336730354087953900318900061826386430128874777291356196847832025816259818209436434737137130043893264642708285953080284054483588709601689800984110696678769767121500698432854317295500658957374664168307240957634933408015863109695219366477102624382047273481984568658475011016747036960231234747585341371524330958801792268258627801869533748530098158410055108133714793485047684148370529388873792142974151385855137405674817963834694241459278703370767481358245314311071541051863815570034155329026407952519919521522564694240696914222075507502956629403087785486344529196571379616239805266957382491262547923539063691385961319238142591718961995001537497561991475180282529604874026740548161322720053423289918172492297541574277706774204762885145649908664455413942759168281073858284630160475024952830905456580548985834413737459579367693159231080965733537969996264196780466820548915767940706151863618890553399374052804353375983709794714443281962585729639568108957144911973476561613248378314402382040703430173839851070711862818013075228537200694407602144330597999016212176398025355601370247827466209963137951130385960457633097333820244562155649426909340862292803761194563630545931415441321068884809251233723465506911864872052524823771847636238345980373079492162464954689293699214837304063572065293012680524769307766660692396449048882058423579939864064005679028079029666858931354848517566342755314237026422261271433171683001231245147143754270168319309642565544166469489584250954008418681386075597974274544744278831158709695379775494721689747772999852147272276402195395408020449042328930375230522818645022469127695858999510184241961369130092583441555513554033372157667643964676744000673680363696866764623810847319454557541986701977963025664810773845141806881504883881537899453002771387435446056878656020042587904326597875818104057114444695980856194233786817415014362472046210597658185127566849756156768158071206237156330883174802354404752155155241579755971086874421398082257068432130245687280924230076921789552908615623136263290318400328978393764112641651575280676318128117199321127005605637140095328763643752925805977866765079309475663884513828860094979642861351706480786339453901748337570473206004693719104511357508161405376842773960804811315828495830200173108459366195479113802331201457321453092248151257439015842316545299596375045734637794522689706036893807263663289772942688035613607392623761460501736724075224364846434933054192878957521133193788227921073202723423766505185365846455375558820114445657263982173174537453282893056168931082337638430143601250509712334306234102127118198505817565381323581026947624793353967360659476076954844472356290119249210674496136198801367071412730234717106391036683877574893782323253453600238715921449664452494551422185626646197487473256721853223118644437033600116848233738506150958701227110271140812338442572615234790771564112500317982115187009461800011668181431375499086256875891879667764038242112858888155025499843329337479315176068186533805608617661087732502480394217879537877399575122329256697847935036964050392035756465442841710413871214781224779049076160932157417152063230863808059318334423198511057267033047816217226223617971121738881975218198565210494578656891249065349657145242745521018778795038520605613775019743203278665059644940219901037539259040642111278979192115552949032469307767765459718079261305639202684712135018558466228621183517659593533739149650230741731732453539832974188867637650031238696135479453918100999176406851799084078704814736619131516537186582204908962559261375462457901911808813115602737210047024737223455081667607281620690288551700220264218968700118593684491864624832463180663659320977464016596124487896587440264231035946942508339163084954643773576371010091338647181518337482732157042795254449933874360357092026772094793891275096785752274487870985555064532166074267650825317167081302796679222853054739654556971498291101506254653688042274323208436398478888210510615702391172793539282116719330965769413737071248288620465602683152301874943295244390092610489411179383673331612732194107134281875369435144028595735509483550236171784884515121621098872701492126618767156629509900390894937081772184168937603740168469503926990660359164209515055202324900854833672865483447912256161942366081444065187951192088087719093361155096490491927743859866644282348384506879556313802173302212919998368156592652901269848112326988546205106117020703025604802935865985923603128639647392132072480971681046840042783928702153978889733335155614467607593557720142930409281334547213721756435909710651808179105123737637360072170056514598258831857500951997833189540537941669508295796975638929734530015485194127745376462026442430936849385772780339956912242985505303347551945139496303119975043389572919936841026317541257583572495392366116787366867031942778464686135862604129306096066314228214661928112097785740864338913937988838148857794477958376213421461138906337561121451954554141471219245123014777762900541446370708246712108113754268816664340480356999231560696703807168261249777973056930437418385643594899666739433856625487309947057527704917700611268377672370810572703224288881642828844031271525236904563468559550749628096285170190956819483921648033237677902483751418659391961573541220688939005687775797931774396726730577894528674506046930565541545761256403546345977209858470456258540861419135265882705095545446845508855531171958569567447950959740237659541713192797744077826123124967144145639788511769961498022840680147990385261997538524598510195245158597422300895947479782175195839327517148232992551318131688516531655316583594392615032475301345833515281606814800257239958793865762054405425440447772156283959372438332187952318663038372557059742084380401109079261840221013385294738210888529084041443872488770681431464003434811343221066014667629069490659158063734148914122991756219123669823610843173335898610107578363870986776307474077741760265972347336605433288817903470197756549064673153243415064040662641190567948713529879890497202710517293201286294435777442494766657895183458419858755120290444670679961532272772976568417653462918222985372218965041370672612849760532979717983195973343477203468736136015870873614793271321396493274466241012514355832353651769623684309691835719406766490187539501189249493710897282116457452509909653716489236985637298072579812248423241534641401366407034639376593526428166107188998653154556215845222284110807672951788933076625238448953189499284024704736080058408373987195510769854811471507967569055199312196341370738304879039376998499955746943907566075778440253531566510310565434475351137121459769599879274011220614658982587219616035689641340838455221963321066582649452096355801014482395439953365875537472858672271640606703178107866947385205185625029128700949627233056571389190075780233892262735665436979752932784676593678888118730555869222868017432502198890094068397783254487626558714520720648548413226888137021552067951250096433516445065366493988924378682288390469091522686041123356010076525103303915510863031670718007139338289107382396841314244944834168797555291167497370151410678126459036527533183169646657866273461827006206566959247706093041250828704506891884252426148412063166127150120063771640308832352625065840645702522053075214558764991226152388974582261213928449091776739398659251098974352974966135104117035928825207676277584443750704009881521151779242073671002272740800637114007573724767820174823177915867400990727389921314345741531700915202816066684986492503346903999975130283099294694609028571807114826498949671248607355271129753340283006412804023779085945661266572668564436062183854858725189315588733262112842445985813663005106883258642037134611753731895925808006086193041282192246357976967634821318420128261890343551535419124796477997588450373840966997579424727882198577813009846947732855979283061310092615059874669145905228667222466550756743264495510756761110464055611631973014187389452596808934992641886946561113740725575927371617361709965976132541202203409200070105898995326714434555591583454804067300332197680873366136092943932871789324843204208109034702211021127733404116649994722476547399854940435242070286292577431117222818019003533111348656485574746844551297778644134946009746632923660828837635290774714915549072938451063129070695180368080524008597181616426780786629676042980710106043981364187397968590361381227639759479955917488463103113222683397214726826683577256543718995891926517317940151056855132177474997872188690071730034269653942151820771144367996628569355197332465819102411776390636797474925780530098082627740455565747096263182057005233774172692220915867547354190971247334347309441034012459600797820945371293421911956783932222341229238389608426943688770688898325457333350017235763604498350730973533882203154407995641079643790149489804683828189139405649554893733583770375918499366901169583942021373083745320591446042486689518443947979112620949738988169214330929135654374093319972610390176687111078353285830025659380892594455610703648097891150385953964571578919378468473397702127230605211932180859875900587803750407058924950425630360971609785141055318915113033553801756606959836534402869950620939461754916977466091284372373483298873442758399485323200122530196505721225063798673399219542046479162197302810759755480682004136006724522913115637652870768117818424998664607884743682705652237566422229393612280454112977338907996517751623114211959359599702209296996243490238496347057414895432045207978479175985340901548170050580221118340968401966268928537000082887931522228615176018396756681512800521263687730466099925674551876818418445658780111073361451188229757671334001077625287370016523204765695201456541386425767191974737949941693172555470370993672271312073758112993692233269216184105486872338981052862568306273593233022661020830926034096654515681498605282933425065475971585513742078598293765011520039176320249458254145162966005232869962397143652653718358427682687575303256418342232076756888471684920788783126466653216272037823989904999692668243764999108830962395733281028019376615480299328867445026603633201993239493452231061923893001452850256032206496300982458223202009122374173491332065338027540742171092884075479272459450354979883653682305469008124244032330418228316888195025545138077434817775347934894918775692277571629020993732635316485393809904300819488633180699897608369928046722723349495564172012960645931531278284982691258065146588430343589236191788823183954079109904298063013487893964015766521219226695135876663312860570068063851620654183523436267117735044225800152166416351343906838999597548918401125336617038338013496767016364727299569388895122441337648422009644360980387124363438126578618127817296813470760482797489504045143580518479993476124047733463359965779521553668514979336150509904703041050588497641203423909507069706975143327254063234897545486194663130206610103809229857915297264745698575545217991040268160812695944233836673290878603445299163587441334105190041669928347299322167317634116893005217804533179944803748127277316575204186615189202821958280619404939315905351673319467634595850342258640333394009726223760345357288509280379894510406689286223227360788132294123513637527222853327845751785133245354440731611623264032507609900989314587186972410609705521720008681106866954836946237850836650792823889009090148180082009127478643266067410942208501169419500193344504973683227686770950401178367152217988090579631318738810304933638234559711916071246309973611052605479386467238200127631404997820650343286627887068611004827875260535580992329637805657406599026318887584428696980161382886611507652253755420355505329905267963404950595011736568302360224539213219539592088140827613065576306098764895376293944974682222795306185135417610015293477796102124225899648534198089038634760151899410839605703882297482359292105993356716061577731585584217713701644646241128650178301765866022005539851311857509632977830901595227426840895973511035486248999167138867680226258358388757849950426853631877057660923479790067173631568041830657566164394199522461630730409303784069968164086089240567817428716363006520742765425831699052056906013097617317851957601026691126949041122067082708311680466386437243916281052583842759199592830782033899982995637719276502071318206648340484542747244887278025437476136046918337380851405925764679466042814598315359242676317122599050754540662617577207567298497262554694935393528259098126896907667372958299002689110375705667271261882386560518969618706458718617967167694222545924893610662513181030023135200589505565929457197568581214189992112161595658789913856527411438383905049877780878900084520165673506286897122582151203233220334367429680283684736255794795733150487837656051358426645031904856081139778181227759233101393346232848716633628573066872919835566433754734776087906952050610696115280532181209821057518830023502416916935611849461609105516728027930017756791885820645052905043610928286793972427413049251384984558073236041107251255984348496979018417462125064271787165065727988415829508495640860006858973348607633598760589093202717764361967004797058747767591503784690843316215516035073723417247995764181040528165996547373869661915489845501766347504014745301416527540120379075296212514788718152785445953669483743707181758143785612097056557174882290768596160027312274864566965161254068333296987347195009113822756684825745679750894506449415333239933141886324364344405856472348279743445778734064766778626915438639929734579719609489857898058038354289127487007420470873736220301193898060681588980375003100919144995113385075123121810933266941517935938532281429948118698239325439302455165556867217812136164864624522761474674937164580718072504875529632901360169437435011621224645176494645574646822939795041852133188673871214160127025098665932888176416605582096338639311127683850415735137560235615156580050887774237306312740973137860951236247663491392638294438718415015103594054612603167473497755307902760831847567402774270619739787928978507881684910965866995614950842135834363532210433012557804383498617132188223449956686524195994355007772934037152843589365182302371573307638592405075878128487733688267684955327359115400722995986218329851109509536185655847145694594952485387180083092371707639835207882555666508097698122450879056252633132459663760696838624295536691512006170257210065275896537103732394860479085449549591149827203965688174116123416364441556809383517356867445831044878504210056629831273773866956638806904036439258190888349581462126040692629854100225946505998571560337642132532065145892240540010163970582711640075888312097026148997977829900064565592032509954180951795199991917649803241159700989638581347370543869603610466283542864114244050650805690618438055608728079370302711548990051687746581531008583959586531093473272334307337165903569041292949296181094017345812635639816681214821279723559206580176466148626445303541619449681833388106608011160161281168516035025528484182026727739917141758160517883391450831668815562599506723007995076386348309948958762328739658333548764544360430104302844992924453948570065756565350889956419730461610290742819096015322529043695169029080406536073161261088812466841590760688410114431964318317208934406723196053074391739401866592491041578995356635015833195390463933686017881709369529132976405835607429535495472497917819378317654367133187082166329019635908547364167076847796387190703979862499664715893309088197690063346136740455062105619502425070529846845536755071368789263917498582317847027271278288991046619059601212729766120214759392438647753738735889726162417508946793027350743845767360833716787266981677481845392425031852236093711923012176372348896954009364762634730616908795003830797533632354646585309035360435066789839676082856791616353586110969799054401978113141379821158536110958640634171591977751193304385472280283745503415295480813499931667235219323429815983575363919659559124791378833425268532434749017753451568862274603969470229990881464390582201150651931369200796550490312305619521607485520547703510250039161155482011976163698519778600999919833429081245782773241878458402846312601381930349704492906719190852686542113801566151769423238604659355112988973294485530266976286008390503831527653127233843075354004978247449424883343615871293380434399706378030922235647415726062580684673109892544044133267860402476859422597148605280893267603794463562359144320548346001230703297517850627029557795735573392170376416831343484767197660048678789945653991763777578292823538655935527420741284074602221805316717642985050977079725530690158169123871063108129272748289931800958235645575997842497924541420301062102947143963462843618717574321999822837142745711925686171866473210312353093941030131544515317807385224695321408128698584737548727747571531133373787314670157335167739930798468045482049498935492423113072488671581757762251035258999622192818668929874253322256028409773205693999349850233003234740903545175145645826214447072180436546574529886572046487320622179502497634211901858278540169896019801432059562678841408915226219230936048514886181471410955076841864002712654248551516318950121643138795783276454105237110872151168146433988220415987777035138498950299179658586087088851659827706701791176645356164703067482237330002029805380166312121023419806075538519190197250434999780882296392183379321520212141059594749599144108145091439704502208006387378076394531154377644380854028250892381155247698336839639964904597494285781376093442137871595975559238358882634826124518802983763282262043388228682345314389799788916810228996827088686752384763644155970151908796413055805192331474017199562448041527497425419632136547080879074093007902221618230332266777258512734728531678351595648876874004316898219439309004551631297225620681373014982267090484873535531600482771824797113503050046805201795603145282206609107270282567426236390619492959295026116096972565829333282935721997448898450681066914786812860146328072066794926359256701428404537873708683152114847985656314004084344456799561386137765181205815654833484244277972741174236559666576240465715872371987927736272424688412087373814458047328216761574173990903067214848553452337446733997751181040202294822664120834319537115544080293805846775294671903362548969969323350454196672028225360704282697248285102921026852742055357465343566615649579933989972012110519260957086119214736737237909312752155003690288450336481507469876757314569977439423494678802280397678644273965677529355096999154921254299140914727109710321362778303507141751042712142548724198080748718754870757578259478739351071228961136386367935226032870838150041273208058078573407718613443443599855478316249957938762057427216551842432983695024518601738603780616223177828816092783189103871763404452869955319434138106282732967323014227067451201158655999426777248011326463244989465534457006317326157703775127800929083110919730610490754321128293337025470712394707039300374715123108845414228763294542159716527368906318601743657689654873631194798754786021373578833149577310643076340307533155427243554764086661197467627448586217541573882874793725003315332860787226677167346649250934417689802785996851370569098911050579722754510542025335024397170944262399114783389943921823360888948343164865434352812984464818410129238066730531008701312392525290337928907804971425671459514807997705540384088781357221343631272274859584640164141538467990972312623261566710383389938734690122194997195489338246476421324058470430375661367338167294104874782403530574659417446336274853716783944395417022335326928980414892688330829453509802413992701261636558491076079399043612244944682730087049477681674776868516356455727172882072060712362581666475504091627102462175754726439028533478450848312676937020305067298217180750179311202328940037917483079694523219873416117188776133027647560558885663561185707584359172319048047237559619899851855267249853166292375415879681575183429150733003929319339185945197919131840236211793369429656515191025768585322557290266240100066403420367242747315150363049386663352300433953188580089980831798522969423352463206346251306521506765697710814968635158366499155565810577912430462809892751909929458715614587110170687656746858829419172752293324904522210143544988702486162472405928766623551174807856839976487387904692587411203952514242884603430191272713302457009312809857574340721437955529736581576480336205528387320658273850129480301486440831972465431046022383211870677861519354028355383586814796530817526116916774280623247496114465095940203868685284545561932648955554143597324355076900216200746648183075981938624364155864538239524669978770650757456386691549120697000489795913378911293064065210482523882096787256891535357038205186107520645511905750155033326056356945106087051348286753152900799168027236755333991893316697437269784318291651336591140934702747759120907172343956667592453825675571258767812006183507954866631569854978315401505327004015533394800070299176911416062926987277804738762947880199323549500548799365447228847986432908666484349425281199812914384187877754275740987318811898532628065167764057073384830883267198019470397618448502785071750867417221550384456724179495398413219424559971243251107550611902576129540723950160002664092299426093323600547590219189991923535167610329443407051366204859826787708859692931328966451214677504351586923006529671536439991385035041032555323124264483834430472659812135424400124679457949399917178799897535888853936366909040576228162472064964728774315793226996542219757012519624622207718629495496001437388427111398673981073488308080929791758422372423833364143858836081868125910616157514894735535404205463301133868731602503786799641071146491331394333078171345700369544689839219474326581356434535701118490464778683725201649125221309816075829602085534683628686934203865029044832831707652432737795791253663055906690949395186806895512092105068094436457164945733874599044362312349409103743845734610565849368708558106719134880696843281021485823065948293610506393976681523912634144688527048879208169974659799710256461755416984184168383513732658858321474570194223760233160589259566947734444062073916421291681751366149704154767266083967906769338833630878973594244538230656624633986435601047858668333227681363929084926155497149641206464546602324904805242715868326147355519665443557828440228028185942377474134984950703301636766704985765790444886490254597082392562063517680858467184935841156519146151658840726219700314632393662650626768160035859719490922900055688231184159743322758989609744287824257627632605669539707989590764961764960870883706551362793629084210197996687760014434365067120257207823177326462027206165034364560953644487068786074016557778446166330940601639934774522170375805403305197042723835665680655080521726402915944758470111831043784958401504268813265002473146154290387695215577229703576305038488897607405674887292188117177373279999971727346426029498739445152301358186995267470658467406243400640327117697026584933143293285447474057128251424591719300812845890887672578349521790666096935108547413136202479041795639170807466155304111775643744877568793096430829588016961839723357024153061858489579161700554771387068881969964685158990715744531363019227805843984562919139945712638719410174974882618145515842362912804149763003581379344964694627305767346424783157431926249459240117323336791712638623988160475928774605323879449982338910626097737753540593653515525946019046670395567006462437556662885746892985711460885805149708044094525245798070451404324778386167036441873169614867048873744394768821702310393492377487043224623711014730830944084266424903684735180689472260305155736881756822176463510395330235549348999036229273936057163680517943892370256954931165402121833174288559460354673560602077999424033574188933673530711919782369698902908430725410399240266854318698805983374719305285129266344608506138213506552566354088517331072088100951454726178175123489843730940478423738110289641329167371693985995392328597786855034370761299428031896190130881657515197209805487685794812058533380548505532047301983383188958404362184106132533627515701443736502086903743903458743691138255631744305841866043579115995028904421038867655026361729596957462975095544511493419971731081347643071223085321563665680621101037830999771607356079824994212004915296676526539162523583897399290965813271512712352266799655878565805854239345146775695557026079248788416525741229694597923442481482397865133884401137062540169780879477881385912991243656864704349453563492999214454308674334879880487114728244793338221480017053288324448662608016201777423157157074478248827263089143199292192768788673629299168997229532434255891802758425299471451938056302527163629416173447594821376851400179356212793454044761553454642590663064166553712470947207506966811882863907716091996774323957198506636692715512938700953433899481363362452166753803677767761740747536368528782994522749617640636968189891808106394199974938749795281331084188877130717493783764979798156665697682745557248898153097689755359522603905099979533556889857883949600391686774735802438637016976414307258783806566536848453959424377957797265120188759633728805445067939093360488768159689717744730271129939344878658102196950703185957166216505871550159228813758233968775705748658939266047512965924979327544812997707679228199052382887889792886643115239991082048489986582274856536159902742715567446167571984966921820295839338562566091633622541485598691150698099318288145094934865731726672732168112830101843759060996993420849144498174340033612804052900416555273840921557468740518504199849171774556347554819940458945170101864542792528545456143211941873267672392051987108317778220857769576169243883732598369895913452632467540866268479279142474012622666246162628068240618858364390708589606731339083669742849635605000729867102807937364243462076718921408987272976865906721557740705526999948057620121348646165308245826659354284181827868441278663776194510032325501945988329369479325639869672447083082447216667082063295881899620198072875772621583040922220364618123859923508598689244393398713137696699098355803424785061014392196424533661535278361386260366656241278758791104218176100596759777649092928293304451289638782525077282451626276212839436588392967603970684340160166840961739211036369276751271805529405801520202631632880686682258660131905244902807339846241560918320922369572779220203562329115293884217918374129851261686260198114888883388213755639111394237140804868145431359309128911742357380096045446091351824501836413313414367648126927704892597687145617592287822695601320742181129217011373906718620748259173995959248198527712864301943994561509955919158408271365948861519277826648613713667079656745309958128859413974930691900847702467137363292035811139783913275399364873620155533011123200971267780095789788871097932876849813892730150844328543791407492950506753661728069691068460135569425685031167350153219043508544416191858581483693556719019893314753946261065137744917731994069275053352225482469612169429917771729834965993957376920536190596475998627559709189851718149437371933866489658811452539422966627448041896107432054661695003473165684495568700090502138821176324583101299664354172545970155680190893558168844070620994844725499583986127144195311657365904367085314841985932022664556154214507672821445493494525180107742703812933336665990634163237843856284833093513114812385351789693025249665717308335372288274860630677801015138316629325298684029279818886011331130915930513401245842356799176659668955260722393013690784588417806524605798358779182083246668536631129226274706202782556135934369491047911764986867163011924969735650128583622213440350733766752322680275668969567782192805399762918261180923770596420601808316532734423773079973419344799285917474795285983682238682290669973270377483297300075154701514520457032794327371926870574418408405893397681303292460388775353697816199652466233063864675783272355605498065115997699068822954959482560407412855105839400705497564455306476968508999208083415834882528283532970404113176377772787680353500758007089831411278221657132002918622498930402099381506769892524733204976643372467244772478652914337384897610445525556718082763237884327498813318767560615113098582793216693088439994600689468321730429160556007537367410691783029306416856000721661126587928745671742958126960193824971252121824038304024641015511213714019105308268581415284414425906940105383970770661741056876446067441490346366015003745368945426292342983048359430638732998511381401830601916478604105215032826413378893278458773339711285673135653881614445722056190528882544426598447522033735895266949948658471205115349508734936099354642463878180410647533564680545423404600710729514305755011291022965323596347800377140033699423579795209071775308438934847288727772363231772108305765957805966892618722602167580870888167714548055010540361932004851048004361342671957997647007142849335344493755025197874463472449469181879444889369753402574434574309565682274697799328918454717808230966645994325117006093410910193216315256227244691890062324767985721128434426030612816915843024428115407472070516776707669344995333114730972921275542804345635185079211454724737342081758209346988863676069617919231120417918724042079485086028417792358706045293356317392360390304316656785796318286983316574378097389754499139394905071862060092420105239072438776400283543057209512668463756476777404928859417355497325749249502013461848558789655875029084177770218312651537535438889295436205113400222163898719109659311949434284051834760535581492724711574351490821980272108941620753134507701405903755586176059781957555367115198520954812425866847451126948400520855947239751527887121010365333466540663268221496090667941348799096455554500960826539757794740077623651106099187163311445486871265539281444207793791241807169462075702271896647813973977799395255656195188151794045404380462923427253444490651291811205917292624909162665970212217427947377630705003094749464404495019102067234335066191848707346020439733091141255932764206960947042200151682272990818787441622834985768437798931522944108567415956423443612246664993594952729621054285276171680095721675949709917951344084150818401771816027330955491517539387849982076265116887402126063541374121714496762501858656167660854583092243793836489902138681113354463436256876418863711830191066556790833131483002398327642624937929346563308305225179853534763045194728675545111939262662535509924340276605797890610753648002104694244968356849621540708046414213075722397083712343994359930578467348169766663542710936020071398420688521183379718344443860591594432508790169185615037119421177734104393688971162359086141032710264965750692638432865259719110367057005029992026332248655555742804572941368548141245081694240154558664623893739014279741136182397316402562269067953732077066999009668213058370848772209081792221479718431275430495401806413290003193496534475205782675394376189388965995461839307779468791938744474668987412238105973250734866685089049793896414489532236088732525586139358626818420308386056426167961252477145771233440662496635949012832320811466197223802929943623359612756205408775889566686342728454626541257961303004121155031053341296595522578726298197048491217166612364702744060466643727768279225894977494632327943975272362965169482973873321703514908746272746799161354784051752430316851976806858950015417593244819383180712009062131150775672074009013448457809901329442791889396523113451723145577170447819551882687207444198448824837687746234047580159963220554459469567186415410643133060345516345729169457930101629790038594438983526744413375549864616512680071628012545491428328807863171426027477294429272127149670967169984619760016616688434228846940183464321274678696447336327773008917695100693936868777716694021357704113733612332955293759426973349378707916197444241325138840648170596997533073665638923582278984955101535728367747455339894148707487195916191183394555280720426401421990525463642132410057220419247420846777071557752578732266361852288911847475675084659961209951134085384439171457342390498036143053472467576655168101451974853152501888281465115853131629319111434490274199749031701628547233811600674175947986451711272106526602629620320139642202808918885742669260368994522166869392356120408486685880782344997824378828652049308531111379796225091620418461953892118600101915268096272211796438561427491810898778175330741814220948446292087962548517879114824731260193125905195614344789148038494509817090984427758717592628529777439413118439075406854215064865432718462571518526157031036113427146853648543778150926688913319733941583656413732850895971874930038237614604069661842097017631455401882230306291978911892573527607901909716498119680370132712137523842763068663054022757860922906135422643875865973357077515209790248205296828907931177930782797148908914741094350066779788790920936607751841916793746837065295157925469057497206420673343048144814062858795858407179049435839656383754365075620419973084505017567082780537995672749875371844179631438319406748296365027641099102350177203914292906752995009488807424991599381199850323587174521249868585819776526733295996370048275847372366590629355382456046760790291696453735496706286604671479658935964376769886983670449054797974724494968428295505381251200802528072078003306268961667281575790745602577669106467695249511047877817912505600846505542423405803205318628860116240379857261390295372096123157410800710647661630796754956182098488507379728507637664967926516425937874294598095185240399588196007372472865814686608292290058785396158734342470431518710101643997307389641622146705374380860668917157822533427343105891328052283901184603690162707164618459905519379287178474676809082715391862666659831612493317561417754790300268013764480882935821205504326718155497146316110076893918863074659606810865663492857472825544527683483807652190597890226030369861111170669236513710246737411314089630751182228083264797037716751226673542284553066669538184015726577875397183414604786464248375032022042656518253477091527735257455116570477917040831852597290729828948952825164299046407534948992926569603202681665807745435147481075723319172541684236062628702521250313534848602076260255698997798469581364948574855960758318873862167110589846614513731991996655591021290877400804015136862993059297701519337336549513073864450941722952569146303612873118748884284746109583923721836972569441861502255856413854115328955993707079472331728604910865860369190583619555885746762397939770565941094909377897876252917082296760703312774245289732528428302634830070054483588698209482017240067939224824667766087617016303327924915972541928158382489801045081784457322999882102768823420658357551332883936135544904074575635938224661228487064634755501145956225769456456555657367200533728355842137970696367491027826662855069939145161323982861659948599248613745925113638288603020014107649998792880026436200345331138978921158420651814270049470013158167492994168765445861355287423082625499643979806248025708622762244972552211080991334713329144014386114497020402686468303608853076419807218432681597789275365741368318897405420884830651042277273917200819814763203447446286379876475297641969286556022216905438471601229873891072438633825926160203260124865831709872269997178993095418105228603678200061266200619767724117114953775910681218573985462579663557670989517294663981248035983316150181768827310250322919736004326665463646295958177806563406234770546966025199420452208237820033030823313320722425096702084786975518792750134341461479031577870494411541528962093658222851220229531625775436165521239708797960491925615624114684725427565916429068754139383166019045738210550512840290372956300464752979845056963296133179170430712014816089926938485434332660989459493337634238031814157463640346977126107650213222586031420094568348237664502194292847419268961749651123627700015347606273631755880591203978801440016060259302540773402045416047933668397007655302947942470048397244329754468626700404778812788075328864781816694520629615648025113320662090030254429559164379553947566251818470591756982500606161345779100401430525379117345268129730963147968936255745540336344359597255885257304707604120093057518802572165290826953446524616047055798459381402410834897905024462556444854910241419367651203613246393489556925250674171042152711393028272122477479440573118172749344685350963097903551365187700339432712725147462561785747884325046838534467703586172791370389509562040812588627256321984291058763397086531893785801492697947834993416010172537168774227619006027611269806144118170893988549729982823296056219273859540982632138132747899232709080572884054305123913176038018813335045906934749551571343075634265350040619416149197488361021992522219726669464295384906861575064735219268389394775379104619521661363699591022073498854052101112846354013411819250727095854592342909271433119681768098171391903585899089657152845763030401157358251304919609808704017016272838272300997722946625261506109104797597191427163982515847766100242952826251052594892944243605192407436570981646851475557430022583508214495922109755366361936967292942397358604837733784505993652548149385941419259434089517369005960239015437207849113413210440709373236470645139825452725215885858328940805001624983398071281972541281998789257997869759272861470356636877667303026350436369437770281905202668640924067636815208434887689383036859377648713208163151509055764004548336414993333751118759141243820861603379800004714308215178996748727960008111022001203568813018579674263908660497593607929316516241007066436035488609196036671585465904696366529814528027229445895523837386717972653517243445034129498502669083660732353178651738445045277562425060863001462726243742315307283615871724540706748591903386970979263139362922354239811331157836759665200084787940807975578933978370889573952952024864677820976160429053150487845142350029287657711563313296144995067092563829232474356997401668205525827523404771920397329839675215771470519547524236255627167757110494238715821231773174009106886641688151237562076481747485430503471558777833133108354635126740610656457671839822515619152087041592210073532225130709085267600768902469790551629714676255589262387283652542242329587644977153596533340606678008851741059088097550050137181789144849513620633464550947216046098116698888438757243027992134989095174853307331437382425338915749367563712744443483372454303316072200523490261233457371152094743679187462579563816065231981706947504060490872470102405824048434503985104212735064310276774055874442726875710932498496298386356512007879379281011232592975647014262156614473438770500354502152419034909677922948785302002191172729770283155978831212525613184280813417974816715124026189374124555956976230998643402837899215096412427306574797220714997437687018769084175606820537250357735963149222740652794874936056141471988207002820600223083415693347246722568791336286673412938262307121497244312020271183891308030329400676931354065374961640676065970474725004411485450364460753558238006270819242384437920942422023400803881705262823663181989027819636637330195104122415561635694482617520111577047079312929077837804668283116683668772842154044080750079474696522112470052199594853099432531972120033824402465241502740338848293688718337980796007119299516058824585883037238866413973810721883794452454013899890903010028179041004008764519532014030162620855252872489111340363067619932641150352343599176504255203417126268015227612804046097458845276537636815034181885364704268414168668393278844241851460938699758956348964588699975610353928416639472252817510357786195828772929627838749695924245749380820971708437710700465682830872694083624011730619801386855893696669727330713594254281779842001366113691505313393331444393559903491054195366245542782972617175899066549731234731048296617304856876581217144405769802916531032136644584022965494419360503782244579851238188631439017161792544892215858502696538780030014489870043113066106446954422742389077650441735411252849524410147813198626363501287824533592182218779174582355045226083177132239066048262211704734719152995324931993324213104310238483360485040658835423887714335570014152733832683846745749701455007039525268836359745849089677342590781563579710640588722467708961396576122329496913139334425850143766061453498956541036026339433544893900809217470264194645848499266701884521987016127997360042669397596850363365521156608162487427325215798935666745626709543025147370580194227805592825355913562320261317897792751231816549956882451774980184674496021733234842383770915298467044695727427108794495617114764738308697659986877279697446795574013480200809197831903567489189116612722640321535172581872230592121850350600800131880999714042976029318580344143708199665385579752431903927336535353269308496369703146980368891875916505816761467199357161955305781838682682381973759262825208481607788885501063636765504290095699724156584352200177441759103736336890900746236869747458495933581049387044246315272668977761460431218295259497019432098165147393427994915455475024312500851764177251401290179706780709940492603868429905073286127885983127059560584877701221688224543116133764129944748607664600915396401928046160383257123561409074227672434123673287352555543578091505533805375122823722541740522686331920324550704616383153201021536772600073361975399845144291133741326281693261462826261798030433108531892630685930604418185994139386038270109494440752723132167372209726494191379201143255405324237945155384940579390148055141556633904625030635891139094569520941456236796855436564642638505179429173183047740269092241617749675668494880478790338410317727898036360392542659126184380497668108274628098679084843164902331944766401761203289701080561120407955280881952100250530159097919032264426770811721126329711270947684572618158047093204452079193280943482025121740314854418962108624665122912905775442457886073145485400217973776945824582391083841814837397748739595233536135571496032051429467847971390570982554317811058788114444593518257457583540640171052838567105858259664695818724030747590822621994516967402885460382002603818561556783846615795227156892290117496330005403095621267553492175394384961387280565016936641268130057370976985586299317588926146749195717990967562619897136750930880884759185554475632016224936627581977265926668310690274972082355853719793719607030781155932088690895215981802506657736944677157745728937431750954032608517848352184024068774847378476850215758381445269862009939929959353423712518423033646789426681649099405034028838838003162217552145491711776398619434129779962855970629471334057808836039853020924657882730713892590123682858906801441913829148400698435889240507800066364474661496768654158284866758676922682339980980853437728742253719705927215918589539780934299590606065603705015606780902889257092773155299633516396372439300693340843960457987164471564371747156763622475103795225847689052415971742157822371882683872108242494158598738107739399284656462153756821501499436224023297817581325515169147688166307451692630452339112801847099811426674734286692696504426721497155832178272384142351265747711321978369682515418017921461928316428173792799117570848601565154505628865644947930885749063240600668638551410062701034171620814575638406670229427680467557294011615937471567598916881525751325232381528350260372423090534948066751026834794932552274189703217115774495732734288800687956936327456759927318819481625498091281353130249212326996778943275059713011670312658207066385645938240216260259421950771230805147550575826448003221911590411583751168922240498216571402040794715856222529816429794665819807435135166333207020086284252102001754475263836181853790635181659085816751278300393002725857931722350576212430083081209990519025734734123465223093018397532454960578457305312675596476769014369344405195253144046770793693223847951383312082012188519639543176384553467939914936629040889930757541449798583733477004103614809359126939285998479880922359905087840263520418134592694449569007476099522157025407342595329192061214581227090641659567104721165904766462430095261794234131838992031330112910298894641804816617159461570332937231742500753595946751233267630985518472106611467699226770457258599791436726244958324347793333299953909001286841255645811282968002342842801186169238006609177921320471077442829402840908591127163949338478763964960319428776041571706848149796073300125187149515417232894370514793977975319947203709467891638508091694249443291595269274605150628783553550428533835285063318305837894118933061075476607654100903904752643473317220863844968279147204461278979257669336007256900684223269064028945023893785488525880647046455488934004344010198904340588821769112940313209567485239981770102697451978111415233934613225522480404991977646917243014489698737144807569686790389456735928716998611126231710882996301568135264172713085465568546163746778889216010955191454591336178473844208852741408671044889400279660599374491734488385019614374625043176324841075398897680293392994159657066539684418113772978471747964181012826509248228983960478334288149432798618356981311898901716770250102188992357108817270275246302754673490001657556833190309062897372674629237866912597385011541332193557645912092951561799226246368954876958889308718226920180795737327498655673133950215288417276806525075954946942789368059538758527151597076986710274403812524952507223972223320926090839273846746122305867018535873928261526179358037457863424525115665304236748286026809744975698321057430560566052118751526793463442060914312336900960605109551468546800087203989589040654904905584133720715430713729240522881786449020994583233710868575251628851226376174203727856961155171595419116927085639665797904221114724796965302298305492454391884155976377335579499177353766769615452322590445925360396357436574112377092840273268225561213850384249659771187042468516447521803536883381973872579766481034940784488010752842336085809576278935596749905826465504116875368183435403547223373546473100581862049531264747004740997894622394092154274062956269535380026807232444475774667611478141438000441617343207873955282591374742328989261565853871122045540205749779321322944484603452708634330771961307316254292688852146416352305940334011447216061316252684686102711496128990143120530650744408085219025295123678037355109714601903103525260538983531708475088036824959117616429430485424166733661768657858166858527778359989488661797231364263281269164257352137144863468656230940037061917616591258463732971452988356219787997341805445200105872209580120806229681229449567438068046082332763744268308410225529404596027274241311054245622230321639263878191039284965720787217757074235633009616732785187971471934572214844973058783502238259819186152757462543471285002504366896174051548531027988474289101196012434126475531845694357871508878609337441587073854960582908100700795164792082213294079357923444015183499969981067112678466896571244979765093147565563128205670271856440703409710344383691986606623758556154601869147937114495359625159611073059689791531980457012038267444255314651795575189521728759061944178235515111325617547777055292699179873619997180589220923144935021882324889674967728498584599542302587129021230884800780619948902083254115481214751037615417572346660252437122045517821644380872974385517490560278043360137332847817321488208104768973673515331486769614299537874769915551914621487343171010694313777978455855529483940021700489233753927392703597540633956086482192455789707055703264465457886635741437543453578999645493115312584936783979712396802021941780535817610320458974823927067672511270384600646247281375601202271630852971305852829947208869332216037464621999880248758861581838426250782469452414827666856327082759745433274700914525777661977411084664796226589227704430538918137379646346107330309548999318974875963595704881617382377080900907321313039294433126621003031667966883797480466074279229939247414075599405716911130520908520905033115057794800830885470419270527231983648157332282649412381228849079577198033018490767499763542764776072400621216988381658818803409321076978887093481226497980913757555906325087797400460317735658005378662847749900732940698568079765038193233392540862528074603002684399885813935622493390335483237278207818009197669551733579701112305042069629226260146627575823342094734372799420567667190283823209573091758193312090577348188254137080253334334759813191468126170993126671413708679016869233332591419279961110400113711144036535568102387578118565217029592309080589715390272740555697882385598853217543335529621042795420178657632322889405905890336011231819025699542121089071075681631946908238718902205271597321586875816309758586039036276835801161173413211267495106073236774480012574376226893462696333648159258412114783746851857631740129738592156937962289172862219837819278710153193685026529963339784526372804446242955070810047666558203826959289724101344901655307868678783668615757195146485351442045632760921744355755363151476345083099437254347214985749398773100569154585805547228418718333432501601360318671292360681559583515658773205652346394986308537671204130227839421690914915748430976663149166817967505586919655385766341406445676476474018734146406022742331117523890992188959319194990695072386545610795714999385465242768453313357063279706165794420296529642833141249083169070814589541712827089769071055968811340339575941578781657795110879658634684889991783113847768118457116702107261288873450213458869467552560769238583152207567240880846299690411213084411852202306602543742160429063787168516261943804035984715442887402299122704318201871149701058886145900554756480785700116169023610256573501382496209566753974117033079733814784175595016682374929034034083062663053189569612397559593293397541824627673744993664944278287874465996170178303684076057971711296041543780892433462719412604747556320632578855517353898539294979135190031930837192382980682112651724511836361529581493862538099354390475368229365109022882047049416165321181504034734024295112768662326635086198068477888831548342271537138615024037776383854928708280373300944021977280503151154093088426801545367161672435137663017283579211582588262696029020034193711396109819509567260600335886898275866944916609265346602362856749095783630170562162909984571890373509985351622242425678342677393543403419393143003926981413889038384954803303214018364533614683084265842638935600925747290112055933501902678807748164846463529747858875839085271920250272435653183401303778710941147500436520956749364749092053616095563050802907982290342468679267433941674409010749022662164670491571208432365969122466082883611418534704375361576982892015409978821931339704250387473463179410656426432517963321783919222056879447417191353294178264158802472562519687179764477747340603805157200092779016112413869869352333236459728938153927391535354391652399290153093090318571073357486437219983629615450575471458607208188893557916758683227053366491801516826243757583671193032185715136066855721666554112945159985968748760279116483709995431968646543535936132188669541237942779045739400961733068073151758507778428277333324190406205334242238505245366521377610703493364226493654597519647127093782001954576829886576537305196798325257643110629926318378397434353981373638379240024560283852135456690598113955532537571761220155082983323823701522644288647848364472463094476662999538926644255203739585471559341317820319721647460588376110866231467506211308295426183457830579341114190910789691236357869100428525849743848209627277850693053112394207284180617032186780576640831190892425166532191186024987259462420824241965877147791652954792844500012122933787352563594237970695868833286595165613966122876901789593787512417123178854204811834802940921234300909684612257331639439103323516174653402744473671678837896683726377460387283636532829885545264026725918236551529288836234261361006634876413686594845086816523595173415715419376152945937563688184143308011580006025246174731167915180400255700091728377236588803340651817468403684593373373647855407634987880739773446168267068163840605347285176828772598803895904924978836848830399809859793388341858263080464586895210778159189558485951701951676792047513932737648349524752818776874862762128624196554401169176881622112179325904660160384455092371024702981682210684265075481076873499739830330092133854174248686371304473149034147886699903839231656582563817604544073140087147294949610060709184204459185628858230316756930247403759840889323598761433477419323345838094283840183199711629425827777093950952741952080323970662032254968069812858638699390983398507829269710248043920353700006595495871909226096208893821728881605333753671581150164990903789646722210834302951657021192674565969938222162224539401609983670151856027618143924622640650689685340769295665354124500492582270329951149449634200886494981775927709580605108923220052230820582705854832381915036863479366485467081413767683555454594689113650808978208443998190921868068541745426825289284660132273486363980774362091793213391097314323316552993821864863332187008575634235542572826472267632318322356922363708706710828004587908749306906507021388206446939643481112194087117931062951423957577015679292374663474663002494482406293509506456839373709473638719145390242214811865678973072780820317183450986138641854929492455842390510046075839593346596808309494719145027961199547894000923114775032072473685742721266574220802314120487813702766423670167576124049451339636683168954853725770505116232119606553883517853639365089376707302936192209170683522792850049771790800910117322976206626146163941952493473946780793057020840714056991320136107663176628399425081379956723641764212302839980661794949255967794924708192989648972611382843913983276569694635753607088340977888793799424461364450758882355545419748178810538742513123267236569583842469029596519239043681514513544372654808846773025341322656127337384230765508019347788255163993671419217844536425105769631537899189391922738572553057980340839223421880724779993066315106805217350549039062958174704015349590807255839766313009959784410848601465610976243187674083857257402027655469702011974048218025274387902084245950411524495863551928990256130891121574380808375959363724171727888171506787313865525452915885805128107553590349101764419433101555347844107636686392573428280839715254266554960889497852618326656097019016455397889822800093477130484067048577361840932704899519496372810251834541562250583152621572279104790732582439185991827523947507471363574389427049310426953428393507385758308349862352833417637394000433939020243097920541520762038701403651681279974357592939397614845318526185315905248548745398618457062941214955582122786830282385368991826943370045528931944727040586869875506742740161648926359109483608878340274959122818445431807304737758605082732481983682459121682826201854078102729606879557524950789734411938376956557961959135450478243520798184854805806105065930217860943732783212664916143405753556682536204561750382769705744311607389128784943787287826414948404393672183411705949463533297196739960756425982735661092387185876067037538472362771228486387830234344691905137493229766953119394832070706228996846910129590798128502509156801607245604712000831899168047210369762549022388149457430190411616272381233223095488896966980741218516634528473474118401627878160246582995223876044280267197202545222174974256376203538126757084243161715304176431702534133146523584332652572079451120463976260093790537195505646107261558630944087159157318486376414111293297559916835082167839834557613129403330862373549893211428797438029390563337361587597663611690755092570578931850994284228084195300567339217882562317704202228070344830828565394061950298753482170935066635266814108769474774449396944012395821159217208771386398900802074826525278550899761159729974214942863217615875221078335949029076211267919334267324823503831147120200991179243855587305432372770424056634953666907065711526192801652827800848638398494180760460856368318945850594661138554278223843392307076313189773336090999826946824380546553839645051191984021624758957631857547958233591410536568977074274631489558251555571370242967918538204264924070428260060892540917802774660123396807008712425251736417936886954111224696092392182768911944137510279152052332188860002804124435881072934210170770780791923426007578605468047374161052298000724499116709023041494689205627439382565492208678387217781300695352970668449084521403241062344961603865827359978149341985653638285915889209583613766354508913518015437775218268558363617913401811648293478283455900111373757701485389534582879546183155443974351800993608741795185729089155945978577625230644174292813363280104017962228536374389095277022385942753822356282547692173658072905591970845639290095066316572331897352299272239713565060850080512607288700910426379649160173291139060338289396822727322529071725280050119829900886982285614055593410390657603524010669840413228093814994335480471659754215661528015658369707870950760106288705314349200985673206202109909705102605974025454662182176754258288289773498053056201102880571934937339975155317142571334315180347412683812580776683223959325939019328231491721675832985421895150281227609514399720702532752779809214467745939912800382919775181731334438278460373166797866908234896246658744944791238532372393573809889918775092668270800619784269032972427630902019815572977222486946899817075037538871790180057258307275872872457741808401365044043161606069136443981384574488051916334973932886433024448716150845785958950397427934727670466465409791682735612213011063187756183855749364815140987459708813145953065337480562756524880412413532698675346278950190496334548059442144393819138413006448537984416549519182505701463428104118766627803247101923075911511958599417027376077381960153472149767101061765796482259825171118941118161851865188135468419198335477818234487681413676765112768494741726867821643802024587732446035422344121498163595575821545595636402526615913423336116279599231363681908504694543258461583639264394742963733316863955570306373445194961135430220720761634885635936702680465033538963751313069055387405248031394020451485099805602743463302707608903196763699412480928001426676627218052156507141649005555929236685710636994062030456254324836502734225913483025651170629997789149725267971283173379583406386384930080805009640590974724330908342011052820381463953127987043874354336469018687966193100225171583176412879057830840760099850686388451697396177073424116452209430740777102522171896541106866219025673918604088552066016736459462053129184227107682415757705969088575061962973916824862609443301234827465905243698314997316022264645917098657516212202390785708212538523265683660419357832911629260396497106488452988822231537533666469837515804110305995606828002829541249261121580830377402945355069362985825458534284480041751304798193194713840454872531910915251292525066092053843644959252483000221938598904092810944430115041218490844100385693491330938118589294858980418615556918174441985051481927710273340784132436586677029276885032700109662111801640478239474673632308138883595155244296863389098472141885098543590684226143639669931380167305159482727768336513870141053984317393415422380370072927265505606086127666213531202378633113525229802694944863781011316068025135715560370852301946463292130016733422404482304589258014360080872954568171797959843960823066626344527320837425812447812106387952517669741532926455584839027269564438050152805291471696708231023920976345855045645807149005127894973720836199036816499430407230950084998242292243718496966484867536320400499174832493216688344073587714439606283560498650815784178627553375373432411962532469847313812386976569529490086763634206176131459427481577341344510724897498244002061757103329020152398890809804948740030894879793947857337184197323815264031462673151138533760003598981533157436560566655757712007383473165829190494062108520772411203917106068138004791052829894252593490454993071880077138323137454231365532790761284596029465870132436835508096667215200220748700200578903729182258833623836100025202311478436725700262879323799870275250477302890903555230272265800181917525480856441070438864508842030418496546328447040163834276608795638203034729781681381268736453512010502571504991310133266102235332001920696639240473331676645163852955243755131346034464936833524200438449977252979761193361259314402777367106028805304963574465609672428145201394769812106093229172100177825308949030018663637116828660890795176617530019586757591103412618553496969790857939340340230706491150648115905330199949919686555511636078768527041086421811913916967785603961252653570303602611777192900101227249801184542199189920712797201807986927372640176574276055937247172308175993652993473502040347936627488621193659956607243506051614320220584529030966663059693813248773933838419415304039501955819787345819756313497827001527661222832793056420941223694257756619969379126302901224339251527667949816153770512968955222606779489662287219589246139963770530504221222415913830585924667157809995893191960373090062684532316797054795311934055573239774062178443919988290962320865342061529821616512179360340311906779534569494361492339773833269159080034812385710235238694851594979169195459667338936840945619626995059567584514368078632741788162228425579725542798997625227418220755352069238916417995360276659345522586665885462951745592563468600853229514682685098363551284306757020924578963504088200732883426328408332994392498301704522357022474279555566118513708089348435372910300940098232603227344219778565229972962639369320738448729010715622335031144298074250327869588414969970887793657275682059196375804803901390658470202801176041833448327221542412656093098666697825450050961499747326105475923663915011486470477387904879889214862129890840281240437737737210580698670713825146527183268250497728809563217352681356507079789707716767931188775013438879453837185397544975160416439929620979609704689726756882235639481676525764114800236746618068763576810207313722453336893001651462531949720739287051274425720305624877924181662361264481401168081485386055895817478614312808637667709109859328748045003254754877185689933187079831251449957562558790924639565158371210163798216627653700608418116751100103923709598869992511960034045164852723053957145920202723739834900741966744588650077824127915645937390726038214425823614031093555853010185947174236169321439870625631944476867671837375059195476429461431689803175131759156768186874960557168307983087259109751162724591030528922364286144634659855652517729817276842295286679890896495121291973751630654142128411660860765672293610638784551512878664978512171523508832867382658034053912317454561135849622786881854074754835608580031347784733485059344708834647519422941927787507383952714191026395459198358536203086444519171026552281294890768947589039999139666524367290336728552500102015268088078027853838186443518788830131597017105431293794627120719014688106704894935937369703153013270364124931529186989632797799217499139734316193303744047663497260258252902796377095767568629765570496447678055173728228530829360900416390799513345156026705612648132925240247433376873608782594584643941451598566611929607210505886465352960179737523378171620874601881901987085572680099529441362546905877075606543144637243506915037000557094214946758249127806973485854083538441403181298425540577084008414092575552238117413670008236850206811792094116092689601817164475986761096507201292932325730167145574661376702090760530542324350823999099755967282610427469617870397037902231753122449675246151220551512855938590604413031224022987484773453475343947169204373830597573335645788918138807680843878381130624357960170341567055101901571907026090461000655624160408414881111887327003097528399385787681073381503322947254123196089866597368620843242067633345552793793633143438080280916222714571220323468388415279097780830150139789375372464464909697042584051522099168537814008381801185029262745102210628843401265814731457230922060753488367243795162409879198418775575459695146053868865227918355100349646047526919195108516399238618423497965088534490897053229299633141998560799864330722453062852095235987366544910214911918927468023124010606532863203773537746381652121149836070106757114388303441792690432671563124774237831060243054051301785096746178177173080055897458760556311798951743010040288146360185375087954359043660358153219278841353323756754438533064541268944094190898672085133437532815252687465413991983922950942453208031720895145860465072416527134195706367520596417530809433934239253190965210344603603329968122756158888867162103029298223108396316925784890155163342595609474023467868761105735552605507794609955277529709807480639229660380525460199674121996280337510933499844657327999287881476183654134512759497101363759176939780874885601944150333688487391229592545139647752446285745235814951620680448664362222706896088386836029779989695214379118069344558007575279621618455290677564439075976495337079915982781598912777194416693673127926092144661868651159728438841189894317888861109263893469796613509061531037920249955430186656320043292884144312111655593932759575036812836524131370882654285450787392495281863997991962996293040979214322249844977029789795359825319687052831682954436773473279655029867398027192949543853835655822733705165208340558237758929535368958357873223751028456021513894960646273873044204220600621900298904041553902525449084120576251356476972696032046016620852913961418887241046282835004982138604410265087937589442273314826376329878634287400379145516146058920138810352098867227073100905808446123549239679431442213644951020964352207045620157436552224504021163450490645528307225767087550200563517194094085880188701650680905316199029537828285433864777704877229349295924468559744253686862593825173062469046370613733661109600760446350940868418089076530596852360061277419608270695257910478023103301031717842760724640074615986201896209911904470638708324823109439247463286999481714114184580951590378836345321182492994037630191257450689804733725968113848179509401536415572595509000070246657627076740010055652790148709254944615095193502493992253587840938066510966659645164002249356100124615180415152440798074686370550195055702291253377433525208252506866012161846568069307619103643783113884127281637829736553385009104735571593335383299552524787271552151932933613257034823340103821535871285868325021140356617061281496718144020348143307333988623190068560665258861903274609695950880453910572105002188119853323710129237482803982427565499339424437689123608320049901586414381956631444994968724528240348304946791186151441998528032283783149333960071887613676050681582762680093162804487875008391899741855492758369596152175723702251656821976140222888552141896955514478250209724439916131671943327813446000569868264099848171817407522008817864154427623925927080219304600293339502697815820560038548513572816928502279271640374598384169925972939279082005182466521160856379100701741511495225701810256485355497891766599464586703105387947534079836860674252547251463620374809010730045933794468784489705244905996052180118042521350791380754765829775111879423593526899974328757777280934479424095850931652187515189861452882842544523635453883411910404673379711010678436788417409622850175635187707025349063953666037507757752856293338732577526266393607522112550691549594017735624191278569483123254921407021198822845487186104781027960508264700859523376121827009500190100467338086866806046488885790986991027120459487633786896566474926962111591608894778428055987593776461184663730678368957522182589204710709487286243130057176911286490421214144969709908631812659127913584307871910290204009147379055459266236414651461091070813351240930054045542462783358570789742661024369990772877284608048751309533312257461599584164137081018054451315548526493801672397594777170406014430307685135820249372125194968991064626391477114978713307947641483534188341775842004671298605053878162460988786639139783253505230232786030836634144915504615746692033515006661680534905895065024675374749206930953968156929345559643519799363377677478643810604821437325234213695518750352888098529024692082449334348141751088004765870263828154614763336888374787575368442692335636382986241368478755398474055379242459923932155576227844954986507517116926327620665649240324064199965244038390579824416800816643138141688047124069568739199230547547979260960107681961951559650193367959585965800405847436688265367936343992931050334718332591248080964048276215514840485542213554501423186979443617101399167763904948913784463467710140064015108103040873687619430517118309868635828971587037210227444900397975311405300888004349488236408633631626810687595284318444100843583779132145441453817303186220944634986784518809407630413593899336060549493397142598538233147840468751761412293510287211263972072218886834912646577576586884290540299318065055045527013969400206131003941153352525915250696327744981758875420327667026464709021018300674481503889816565280997511989770512947348732823246185042232662700445198680497666523221804958896932280829544273852891903395293717950880912141222943244045638201121252919203694615927427783306125224568259355001657150754059347716029376124420760060981270329877380957557606924764889731667940932897908786847520291869684129153236808898434625960153889168940106998721984208369141916725633963564614556498362264021940603329548632165799182546114007965251662760241973770924977171145521583964307652462434074527986436529960656367314797838478847154058776070661723806024979464028457868257967997639173394551941530889001866970240782082591445231331433347315403920111166729302091065521340022069495455897917050788773254205908458390376611013023194123776367192799571046024014546433863901346456801876259477801915448475499294422699595888397484902939596870945503289042655543065280045124976187520780354743257141553815346100591783542311453856818549797440047773878394045561799136395231619525276594807337874952413273027900618368927159469537034974334218312024926340585170550486889863077037491788972931892400694674735965065838606853257087506685665510823300438711845883895558060736623989503441409156140172579962334779594692847647964361298136352943822327293736498228065643928945436382055904093576091216410113347128324307353966665710879846779585691507665781700397142175915087967890399998219498952762390126764264446015638868571721013042200063308317898379752351121772046054148116397929732516660787367468170725702473865319673040172903170001237238522674944750318409119545370827631904627833011916952183742534346428327815643051048001794353930714777835972800894770162036123828037147395630596595386042180154101870570026343474357266273527693996271831530227728385554592239079747423523080828913370686058580801990437361787093346933487560292317800453823815091138726359952243311421645698560997927543992605299954184472624406670961942146388140950308301401594516297044412778621881258466332063731063745289024765734049606351269855184276599388169733433306794582995232351217956189560104289463770927722663326159422577857850921189773650067827808059037780611418925539488815603037552315432877748409143966290477978587970609972949478751053413054558017902719258760685152643605008555567000029436968707279929719788536145590709589943202854688519524436250383828582457345916657218897153354188709507099284667365426051080917059429456951759278667455004687113683562496754627410784802363031684774948738727792939253012393599603994940633394336403620534781182048301348950534281660421972178375102028853030767012807105701835944052134970717447083645745452047372463916282977094081493387799760717381827646796780724469975290898329564511233138543901909467645803722509114689743416098505812757171549608296682611387095522202751052225321731831074994750920445270166269891190608796093182606309600033312038888000302636607614918211142586661312636640065933396349179125294795149295093815836480747219048433275942715692977193065217464655021854622743121395753539253910523994671095060486245207430767833331343190105332257707432609712766611571407794868071525531353972495115640283452782312856101491615833697405277377136041527736232182483406304745388365273424720179269538487654339214387330142648067980264638480885788045912656646060591112726171680775282788894904985495883824504723742179127971062535648221009909274151026671700380618652653883888733244944131807821284014299665215715820024084303778965285671931238819641772751817439204083896963730064275000338381783480753518590314931662033547893537140101888334735693561861467548433191180418358755013137507552800552747035190145799122002178564773696420300367542725110416872618984396139035785544992940122931027935565996511862091912998764073646223863655028445430609054275006040294344552722336450876689886841763174025716801885031426902367755901176974338966380714983204560868551576193141421729839022683168103126078300933703059632932321704624428324730701534960295043930003364668475003324259774061024279519211546412740687697748474812916389672265623237353824683022063170922337530493943755341901941819470511192695031937189524073690365571426812112852780398191468501477529430549709697360540577356107498148562314731979131190884828284885975160937143221342457326009431782270617598917324478410974549168542159428030100805902610310154280071140389589422385380738232175518739387193121683034308926543203885243770329669589696232773032371777290056387227439033354188681326344054854458634643758321999090159390645322120896120707369503630042205031972115093655003432773203654148984218312280454372364984225730908012124230437078080126374496420797560767260897280100232248570183079101848822984143652930546707442550595260166393476071138582995288784877277444698494978340091920785055098377019565042102730565712943480259221396516568797166623481533973897707641660417618932764177046246617104792853350117729035286652455904125783591421845690390663513934802547896509800710563669097794407605521040243564193386526282994832204868335196167016251464415943686320723251501276309441544744246433459581723286198007367740355838433565805365868668653111639210715934047333398481160520207779705332866498000251022846851223793560892197260652572096610018663716244724245747310502381211917228653747577142152989411238423223516314656534511570542526210829098903244279610838514199735646281896240934348179254216646155445401446067855133431320152070023375335110675153606838903308578347242241541307216009134055471943172615686168307919576987542494955325616636238640635373283416693871137121250673784321759607595815304899265777341102076100674310817410006909789400216907989338759784124140343341476310881347932191713844938916693531108158108030209380359182694614014091595761517735385582768064631795848815411705050471273479339814689192250969296489742404628761248621030234313545569681647353788539756101578581967935073333573345020599286305300615147757082450415531421806939709655354283020179622538467041353091909348664339529541719376148162678143809679076787641376321982244759110486028790763627072452954770472580074483477257192878342736956525496444653700095919478441221672093680690812860385872024720123800599959364809367037191708870673133896471074652656069954589013733907474335879278682731548714104190143265839936321725499275040537430666225893202493161304141404529006212992530682610486276454224829065204391603549735406173402842820942722914313763107411541838569400443319926731366834883832873702942056915010734874238308426641595114642309334275768541211560323714347762706913080211045283841210295075294388570842250022528114000360195466642284742950359124436181115632360741441486998974826712293870039651606763643664343702942829859293497712848436298683814264607572958181087425283667001326647327964640762972691775309777565731746022364123970861519468347020726896235387226065424564023403448117449478177333411728045092410547774662925847592039931178405371830753591876578944991162704668608316187225278375845287273801676858594077579750155767141657344281802219070281251814520832551183416695848762884381566008730282125640669196518278171427634859428461531745163564064396762322049679194872348156211030449570927449114415237420486294636722521977911239554149567580473094422794293885821499498346068274985021209221968113709192216453839253467634308527137543890271661256813272781648508347830234952881421402834103110410205548898120143244199604344992405331199615037295519824416599096739194793037027664472638110718110258578034370608850720049317761021051780041828974912640258080482263536104335429963292355888411718917202698909425864510883623093691934889057058625790504276011923098131645222867856508883981377568320022382698430585241118608595158897224324415571706656821101114591162761120815940337691831038782570349012000161346337697403133357813211635837333034401744594801274566973614659338201632227479233583330830466897215641662874556432502674675652578598812847163198922558218495851907294416215734516190033752909108914963237177971188977037222459476882455149723512463578559134582078259524381202358170445017803534081813298077885444377723412837077435916833855024903839128804013964051455789078200520521521800193185654516514372361737948683039070822660241651810204010104927399170058084438507499829503669177413059051566014501129416628024088500615095469490063863739433368405256868253806619692809586775236196992627179756861057368788018403087352722446437301104753464108107512783039335315859475430822685178397030424642450109241147969759517828902940402512198803327319663284345118071096210921167892363221763682042088594000359259835133902692168617836812187034225857537757657685714902160523677957379545156386907041401688598979718120108559975572070107959501175011909726362520029201706777548236878855103533949568741162266651349244976281285383557754488489896695525572325635115222013524761712961567793867807364245938401222006362278223145140231170497096078358731275486106744456677019268055876080272114080665128667122701748381256985106054619250998320780734607405584539329100541099963825162447465849810054307969466743746416465221950096962145464010116180386318315078239657731603425926781216919281610330338506989337036873543475132345164031613202460351990277057667067109227079673828018486288318246957283437826251345086354230916674972988924752270365720418718123826706550986727905558598780757252099193185115509731355163379640473131132730326056236952724154392824782940443117067961507421325586346162269296740353913401473894850895506694154251186386909354280919867674575266776413737210840182715080711051781168130353973931222004075781960641379432902946908007958145202443064322837305916156975422833716807177736225381366359774766502659262193148444978247063827882764915277892268767320010643212790597412610210765158372012606445764841535838583734875489871019336575080686125614877464243297876911992214616571672115252982471723773763773300710681205464963882629879887238454901712327726703675617035894722780289642967569466511009210356375069827118929753857608121899323131799540596688856996327374455178066390955999005199317324382074195500909681237070723766029310331586619967388020978518125862707444372773625365021364449440191840798881596111200196067459235736885234713217062426135446693301771868348086252818301649807785507544082552754397043029743995025711491165773587665135583217091639844433817054079433566033057097381582170230100168867763260815061925381660997155937245868058622306535265932055345544332436712341587036303365921654384364277595777955645565166001451447566296418470750511897032305747532326248828692852206808196082293817374815136725895752569338065138809522938037294884454277466410167117021077035094980832357697805068399838903987626776977392715459534046341292548162577510529787778308221389873670024872177733892985764791778368362112129297108818554014880076431530674276924329188375774630554834956182748732838551374266501543309281663430903075679388152673938607026754559066580360358955971253996885863722264707521609893587554969670979256704730123241516287819083361850558517994600608174690426359950671405047593516160249523759757064022711350847500477151361321676990340141368278665622626516463455968698682650573492312307606556943817624030523789011840335983270828252308463451056884143121107467955408858945772179844714339717872379715129790477027247495166287435990346584825290963711243104043546874191632391004697796819057491021203425420526360143070144186396806748593322868677780494018358811570090625908455197784578505343833208344828148789584457758364238254799324341244588720839344125763866706154718449035294682755053093335417300970755363854686890307746692415535743862500303493700528764889402302622412955871805387328707464948008392903576838513810546055731148220788075076159893506671328079904908909235524530695851637280552655101971082285234080094928200569095233226270750464068948555229191236778238611434850531782607780268344813413533052048048556222569699705338661173821374875534168517861964225326327747284331570748370717834969857002071977720294521271778601640511580489339403566096679344987340445027043827192614400423673581969177158564263189798624285403420565859384897695339084000487931054086462295565066066367134705110204644725478142714519411641560142879896209340060820099473984957082768606135197460794492189260194509874757371073386787845451561007891495692106520044956434764348157434347251661041529293415803207750425091434186052297333188551839294863506217669976391466738897133487033751704901064261727850214236475433635156965829129845761534694184884575755600635758897904271378523812025138332454642373623511316276117494017356138248075006353197503837917596746066515634685697864146039453037904690583358043079902809347315258342530293486577680198334701247961269498525665221034669052944186036022393591791096034420564184708732523511817955730906078338630389818642432764522691980971152173643849457875507223097685143014823271814675387587422958942338531615796160580327916999820066930992131604432202868644474658971280945187800792479668240833628927749408015126865134059602460645761909768484773244591735358678642243493438412024564987266624951185091799171644323890466618825992203792325306876247624526037650206298154401221352107151786343375699207899448439290524503659332688405805179157781576575369126196623110980443020397710246737840960023094439724142083175117720585074543642344523667297776096641497039113936897546756264582187794586113371738826778641540765468808513139190020468930370647078953666660809452087543139473821672199953508533559894418458896889026056225546944723434881078649829058375821127822612706961861123995780557880863839766497215600096325709927966455835267534098080351020473686354538271839631682285996179556847986382750659200247762972489149456091995943992683455777201264036239628766025416765726852102641810511434823583102042270314901608743570375017909440459511448973845366743530317624208600270389291839918661270131076405522484405488654706308668998340029346478574956542115278219234696705516322488708357059101543641987885094374965152846443933151482458072411365362636291034124897688964598085281597661330781693553599043876353879722845502409304135634445948629583202317373242899657465862708865615052619975320863487432348509158651102828776369235468161413601769844505600679872774881913118914230651467582151783664826766331504452636648657954416788226757134291812351480182579013832475044014139894319787644697198096043641614178768917343878998891721644538327724283462772939546406657270696733541142841483816749488500387788866893292226245884943174465073654831397848857926046820654324112526042349499486440837651931609885990895520536648181915467911377362062847804377517530278107354334355923831999901447873667086948667649180521784705672682614482159231744468861729874816451045770388446593132901254463118201840009644928422060494970556019460306607655350761317717249190048462875586457687408582322478833796283706168750582975094924509501079771990887273837984504365102132127768696711903316094407081937273431379045570267585684297103542476955918645534653565661347655138123125144409026721167567134472960821641149922061494022353261035848894705012231292681927530962307995642526723253643030862729811599996303228259895319064346825758459325821606548334576535914949681425959296833476870237609790537272789570007745378112190449696549342118696927310944708404907272349099681281712207284183594929713989034253185191223124719367388246365346731784805323828047697336521072359157667846909030182570680412560552269028630827266638203201975597755331319866308099762660788012961611726430808040373270668249303400138341005165411140406332140601941237509547428431410396448018904636048672297667547585081932664040578092313496252314785275475577814536208986980406166732130601577713849805847365184745096972483764243600220584752694921778370794981089182730056116872934704391669165551054476370141968215767397915280475852507974231857588451091978488141910189866250201986714692134185601727192722500656204215894861315875467947951312503084761074458110885949778646042583526431262268657406072419052322025776803544675810221564785931828290367492195488381506692261527539947206938291266450911804059793795240042235583242025761599818423269014062363648731352931681353501712659146073894229759628060587863981788125574602423368793425284083119075530400216171213153299242082801906910534970800094561168007126780297670099856471335880612541590615643714514642914272025265774371568790748538334247376693182411508131681927175388341658167403027925282983750128039650849384756836617782757348162394036788270874793421614613076041948550244688514435305186789608720788505807184328539841907981125098160361409115848357702537116659954387750725844025187899149620869203888040904701792609814574211420810714889234756235768973333107599526544972856356541821681649818937631665332386851398299606814407352038880876143154981887181613186536368490283468558081739445798015847850550738722832574300728113564713826033382984418027448723738827199506525253765156824375193894595881342309211297408776073502509611911608463812645068461042845348419193592273248119623421363591848380663760127716552661358931262213333460893358796979312134003803104932252626710306682153949532072873573426237706086216264254988908344284570520275448870262472679848122642290599148877771548213843847283165404351631904306565254658693353730549823912555337014378421880099839487830444918748831559852814713034144782409588932030576375102660123805203480872595114671863243062599380139513330202277131805424294152673264946749455292158273996407653987543518979329598534857562039509031717460127208993221026834519429871104007016144931193731932432600237754982661012786573350815798365569314487811169304394305900245705815866566327825810662567580665185231312202599925020843521868072050613291494814026489764215736510449556805170028411178724754133328042862185067722133019130051367539088559769572869715194184441264156774503881771972500912241171599811326733027720645549087901788655714554284061290941164257469697203726955285975507581892721259573363346896769118153263359516777520322435395550224949709044691874293534668338649619733983496318925322676553020001517263676613064957511412238234745321689698902331138706670192085223728505960978915368602933571171530648174034922636704850222249965978091184797499421284851174692171342078766918399851279116366034711248079474193333104359862487315974691086318170864327451484920904881559013454561455351670172576878988466734269826222342215057084777936705089468077786476905121239728821263805347615883425847978985946921336210913730850374198755488585173185721932966344039021949002143139388338665637986437929698794122155175882168966576205420735928363908012793664042030043581837922691406675378279889241779435980185526065986800715909922312681892049458110756090344882185177071614876450913027290238610041005831722945769755456895022955320215662161840143755150427432291298724481913742417619390468570153066322826212568584696684407144678886602575661294037624970413881475427803860281395067545000787893798457395708948418742456506280890420131637275730658586342199148455615238351236088687028232084019917924695345211805942564770082256610866333307128033327862876413294060157996657049882516937758329058105801294924035038610497016320374373081836283100170803116117592794738517567262479328131037914551757679472242409487207350854318670994402369995853853384536098972126083305023562547258567600736274139873940830205210545635121089764406904919022557955325408251441885724753021486038521850293069195575426211969541147331292775538442284580293724551130697924633843567136752110984676268132624243558448602777230521207210960697873527871525016649621585332098378309646573813458452733907760873112356137212766265554869312700362901310126431745403946140453522296868419974672396766764914621444708848684651690481332767779268429049589113624551636358546303957165215938651437475971400903796715964364706520993858300116707368788707222740525564600543384417446154676773826136976868983296478771477051283738868367450897438969269483479669045064239229371238578310073044907757303086894044043963750822221635438436275239087650195272057916115797580941993230120735527532966005223034006284462046047628047362918186016033367830629846309160732920630019373560545862398205423468335494953798381048900414574120497735912322831431639358511641593740564639258455071342237077989115323850720006398670647973209312017556772110006357479259121799797312870135548314519849737546601837893237661591470156216038748351064285621560304108831831706678628109302479303070613224076579853485212271172503653151229412336575083347513915020468069861294865901621387386317543547455982340511708004342746351094604121392369712338047073423712748168508593416707386504884147007000569671452749507789593346887948628408836761385771122845917793274446545353170406340253146215825413765538948918240023702419804638091600285985811082038318023309969860917296257595097383726694132553966183252352068021221758836365479209556374300210994072868213212118175052390791802036478565091384082775305525218593376432315422670977562376331192670346493370416676070444984275328664310990683303193547917181943849731429084445183638197783355906410168854793436514868589930885518188253561515331618936256818441672441641181362429107270206678357104629485994900015448512180211798127440243319230966839637209897548171779888218633933302500743484553222768958736728310128004333795525088251030840780045951096420020379825237362416847144683524183723686440298778889822464970916874171948789700886073799753743771202065043638679840725389645904458941663480769499499708380376886250875724939479531527073413351195472310747049962398446219057717858206533907101271132310475746460201354267921021576847652019413627636157438833585623020895200416774976260922583088370296426343720861444890483099421524215226494954639734773693327889663538481713344824648713927653499641217618133328947503906615837284654677372539919976867188102751858933306332138801630606028693990230870225301295984551167690243551222200875757905506780381835047106083121254900146045108978072101789367523704877867642854249799505408015066595743103654516240809452005015708354321581698261428230030651571813987114378104218350180731420845525251402544137001233758033462645094583897474566655142747848978496462784357331480035658557060323353357783301385083812860891381469051721626277996051628238998712143248069779947720295342087641575738687488302670825297529049239300963289650187390942326528205941625846691642832446029052661209019667612242317952913711441371782636264845291401063143199846407279413067603593673028246126652232987955770114322502526230218414986620500469764835862960792255533022302364382942679884275859167006230009268025993000421273410489167240190258241041569149244898460003834708859827145625672945553792042701526059570433514292578328977575024965541925623004588904795076342881240779710212528823984309548918715505161055787463397228314507502968767956394047732962022986225594498898080109501314410723424242735406559406303200793585060606369291966485221866608628928953260751060339434342049991359148679763643086253648931534340824948258146751129383260112499477946492748090949987720474670741578845084509460707447976335161592438488151376940662859170516370050182149632061981372962101319328106697013740923884945035580696842694968269696957717142983777920502389609225447962544332441127198404050105778779152479613653842554228451139247009970729502740485642932773356739438051286049615486398258885475396341195872790170367094170428979701111466834148720436626804375172907376410415552758289875068248140219050672793916555354497509121155712426257087130109804795658689672200795663420740952099194962586196507799908259129299860089360600599592979645310594764877921787464961481572050678336245556136685643910934189044529458640488090316429588584051675228730972925446855669284383458412969443919001156775091150543184941365432547860932002239167939308294057850450572058325784559247966199732570991868598292125046446609978546682806928148906503726546755677928051374626046362267547661757834437041591367443587461006707399174080605821115362345490569181769686606618642978922238277342944663700973522038306514355447954774024480528500879731231499558042883792493997416467945649678540820434926965305619012853323253098935015742641296939883895994487282661899272451325407135548553733827116443182271334410654827492222680041817146287166506685545653484135755466774096253437523933608016140323903979574408955253899723162655038174802321138936629222357563252444558148363658230909486779541250409471156843649604676347915164953547966280578137555693764398858620714537071835221055195647538097481744654133202969844439091207718158249479959871883450067519086113872163212983927711024951562211924360240512879554805178530560455536982541464170115852891150208986204791194243688365937551686849197541955218507418908904410239261899709160176540930044952740963607543346328610004428039243313288788017271122167055001922637822367274963805592097268068698361342218907440554502156012268254550864460518371666646659512335420361328190637369304249418219504617943749591450607216442075074224505030115079732218367173194634144052751589764131328832654965623156242761598455139992228875239379925551990294592673108716629570490633591873750921419526617603043989513645547368029836886022941031494467511487800525071707428859523661196336980810611658361044163883013198748630919908809447861314380801721557921472777511168035657163502253105039453541557015142979506120245089414771839734435636663893062016353291719501879281858124549175082429490415147774240388503533641188190102666647361544684765688586749405646055786068676192173167349738227930660494475069569171201088960513246233444654835281663642828750319546059296565328361262870682681938040919038219105606961558634970600874684817136198216741119928101644670036340843870827378416074304490835935640590858167373242444773898105449588909770197914243677643403822600835801055280875436213496482232603486611442810471038776215923201700529929678813440189353979540982339564163359844447656273602594158849028765828133370537193761388638680621996612014510140377421138463901501580998992479221269326177235866392210446065949486460661189608250557852782321220896292787811810671088712819154371091590521420729699407454988890727347893475677853583920897128199670230527978656637158827316468278299224085399145756597867805778392646901630326800295883616219687709051602408382457351366975079751907233289833116580234560494090010000469132298252922109959514827226004276801180247189322170113076583415171784828946340529808396706292243337797812550024492118621975438720255866872595199014818333884282645670449188705235197317904091788905763099589644780759459441027996737826269952424754527733340572405775722592669106843349098468074444457320843305703012895332779681768521806574548442183388442075320517003618403062607470426084407800994016383858441410006879893877214677472925543623002384071784106200704884038179421877962160807308073666599446792656554079950809668940948091548563680550137336448492329438978282185530923941265901091838788145558610964849975899468899566261440370100032646142053680730921829312418824030784241023297365032111910330326882207603542271172067568511564071148721453431122028054770184311668914900502605474040771241505223199782150247277008866764887616794955140994087547133048332042340274395671925045593992230815604737321071563291405843111163625967448865971373866938237310067507303295782973929682465325818484766047466831152401728452721406955549054699788101307380008137296835924110667845638931012087382614810309170572797483941985541908963703398270088396878856240230984273862692959020093978167847684819491074592238936659685815395089000382848215530512493368376648668775943962802784803010683184800322197849447677451438850206865834707951669205078817973865593713355299419009526284067245870678972766500880193090302761070966146632054340412961762382107852287596859591284987927155617774873978993889746758851375028087389424512186879568696059714912614754242884996351984494926052986174170138295945047251337303334485797988771727360963243991357970129260286072428600843306551080921747978591929602661981584687696667393206970486608438052928349523747095182851317774756592473049133776889769424297244094977043917899204882311004518371229193369499513807439233262878884461693156628357919819283786800896588919957509569158315369267585125946234586401489517884103491044215984372180027643565086528061436716631155668267448503269709644399012384642393049290405358957381366694431664647280157503295201792325965858136611641639484638194852042306674782467473057644296054444318618315579198285463942523051457738845113963716477994084397391954893193025460527559984110752604326724705303752882906628184958720260365538175836508357701396407200491134639726449289867620749058753559099813978443070627867075238535761134891740807146064153399623924724573496923248419391088020042870115648210111968512507835932732761194799888241977191236162678344644068645428395720921878318217865073753658720088540675980104660124206248544488752485678895536259996727388156440972762395163527572237791712857915776141266491676969856722229432915241297098279509935676276743171530882273156571693764844172864938539368504258884699860901651987277217171091924061246383602192330096667125514677483073592298200210787159394062833334208498467856871918667729993089608415152058064669844721038386352352586585019514667560269199461155502739294293758447606782879742843252874490486626138441531489811181250075917358112366699631444159308796928737200469171239764972323333182071153633582394506095433748667995554730493027809484897622279001243476364677748403595009995317562278369263659832234738772421139971527843601006938325731236615669201701609602737975922151702935937590707918831577886048667282293071720079441056452491062946433415581539510751005213780098402809111772141994227694966430511347490113450793606054095488499455276652657176657007877722331768935132302489906451019798937268438448474910247175538052801520002080070264536402976099492400391513244272875701061337699560794687867514134567918369007188615891163958096775725992753828123345172212525719925337325414815495368874399261292218881660882019318945915768224556130808015033268714999716416914365535513672842764459361557432462725374200596926799686702280287754342957311917196076973220441444509251413507323218635613736295767111958841917295516420538773402269409490993495498420784372668572974799149074996104055782526364388792168271474239328470156751216225932854054970421312731082653500219612752932100174793427495422199475875532820981686614886903343114791001626183563546411220863910513171460163182990076338874325912338226287894886363541382285617402813282432199366740463926261858065018359019930886958103670405885581353243360858949558412928746234441941820119873073214412377485402927769004458796118869260650220061441578185400894474128247726247652790577181910604498645980451063313799145079112680431755632729387403381520473027981192470037061676191716838352629514934752971066431851634119190320803242204943133688244373046539324199254813375800569056865869916910050954567576305436851861023720811260865918958844539605125852556351883309517793228471989209832032575038051641039900649176593591151239213266307491785013025210565427579848817139597180854940161426838969738210581716968251717076215059344766785627852413939029219145492971510992950851879443736633920019111188175849787092322817968936074437503276166215037870660852260266008625573498469634305180533398413903870703294689090343094796122326229969494066653264337763488388250074944233494752615827375277253384967124847196736421547760989539961181422634842373552150643064855156372360353128217318256399666392050189925229270141289772279980670225102548770881832713287989148065147203934200946886773971843639356258669691926092827442469784477490162220848938462075520455293181064247524919367121187536855635858059044022754488565787294676013191852968094265809675112721498802541106106184852981724933837888939630376039721587201188670311752738067530118990361731091790528998890237384380448097944237197123184887115462877326604125416683775444667480953733444507620375498121924664947826603374629073078353448379591761786854989709572170588874705725232165466080266833393834887206090458507769838928781903227306510122941047295371338382509131125532845617411945843937225382819121296634082458931974031295282363678490231512401149673910474345871034287882071256320913695845607558056949674228048151882376052441456103187545997623229927259144032262734233662824368994387027929889292734575448626280695914402538578449179086130025484796460934164656124587173634187781915090888063812462789283496071560234540155386028093692149037682671450080739938633523938828920382921619106928818795666562488054960530285691414950947311343072956829599244336822564404568693729674821481756830029172867646645060715919924681525738165036116715875835508920413672391626725375136658494749460966500975740034141354254516235084876107459206357161763757956278078804705222137764304475973827934617528254458535469366188855404373422909395087469742670849792244740382360303490085311400791331826569649797617578114624524597916821759272622215449234176337179234331350474918344617484753851957988836977246316530585323908914394952477539981115393568665603703014255916722196805478645931306056213682471917276546424380062593049807008457040062577091294221314218760487085914505511305252233475726358033896323476136553039485411095562230844121149239400852035692269014920987602908254565134606247615741355821174217308761724384422022767116608089446680460542306908417551166508245189935082121405018797388416002504586425354227100582370594515894520364445514769384836571039836526491496735204616703741254619610714336375616150640536398535186538415292318392737292820358875572529494293712508656100520032910800267901053197729736304511920781896275331431820087910063336386437437100261980325421686305210487414385406371691606499152015079620467940062495976650620506166950004030736767249461371101011774372046128872664157457184820259667347110786167441120135932658920269678731236709569991416527071950644432981479777043370343223879710523151279805765386154717156299812784901900433061455979644209152546402999117292208040429842550210535411701160956688443882165211791104915253455435360394502393156249176727772979834271659633990457448572160131545309983380142885564507689964594031988455288022175296703865197538920385772384408851505146125847593501819595836544442625487122633062483426049734655771073811502544988484923789072024488330329124394591971902948326532828035754606066087510932292858574096110787649457631918677771910965925902222228476579218965600956743559156448537840273740048408739817179991921135254311421450468543097481121431590234546843069034912614937099548279465953879831541785449763263527000601918251426597320570919301204412766543598179466047272471525426631174253085159213008700782352685054791130531724383718377329790490406702487966075911012669166256388751802595501277724431521355853202961258002368437369720797392064067753196854748780583604967359909006756896883759678747370835118288622756144063192882298634808146817674642926599958121557923198058787198617832458267172582462977334050226491097093248927055209547971138711025340788208600606330347324779768361410638647596982712625451118440099094359273937806052479857686604648045530522795555676305442488196930098897759163153889100476023036122637114691599832606449223658743458891074563811482825138286187659744403367334733809062530013663611694343789373390068604234737113630380117680776271001244606427784436367670765100819457666418949453324859951615982229003250952252525557173550923011507271796983724556526254044914812243665796806754523870874982795390981721237318849231129600421861502572349692522303844016811481076629666048834695708131129856208084774656549899924696912794482239274762746139720125505884653530271021375992772021075022158272174093492018546162613722142307597296605453642409553873529476020749116273797711814541830350102478224199720447659717404498204648544237035299609806713734757548408470229271469776815354457858406188419924658157013362261709177643575664131691382664192248755445737653513345855777435109093259556514174634623348781240940561675017008840635380356113131395505149484282760672825962053850535105045725267810227107071553302417153513280849043971861891487766016684376908070773310137048631423252708463238997721490133909151082407984803927037445238673600828206318006565747106250053414731051835385786723437634873747639735582395734146468268795853112744161026993604886157196692784931082547434219575034601393807165608200518872484265664737836841555199263774495976662247243050307534831215605185094572680273553092432708628665201326732705678010389649348316941544610126642146081745088722357903721788019002640665305652994577461104259798499101501666504017334679313889190225585440040517381880690475767700645729254882500583557889239841530933840677097709191296087442103928283895218544157976149543557745359171189746226909888401286061596476739847808277505457202971350532141837232281528491667952964222157038332680383366162540421679903851064317132910306603621129957104730555180165716774083394950406229081109741330635624706509367422134449479228326138793985301302015493112435177026717587772768874583259442149772688125666560138452086198233689869889138769964142798275853533227337273939993575005773334766954192704977255025934078888980424740889261321429324255786486661329193892502239810912777890439918528496617861969635181375791686695584000001576524911852748238496859332941782949510089309666257487294751184496988138035167668884998005973867044317719850914334231447660433196390938189754008083498211092653547589508246958452598540402017492807309376131558099951203133192192022044489636093892706653515683338798986501997187361531995444106762351500771979423343076578890202194335988472356776769872488941448575710330707303907523840814818645436155799246894130337735137248503751587671198964635568335591318866277427986305464227931679727731333537562489072558963629656900733579611561689593352182899464699071175757530708167406987419296483632306824795145766403573958043612363478343439682944626131198276126804555090279355255090181379002437690978849732121284908540132946949737185368103309511982541020984046825161364296389455224737876158035984483643350058699047033173106138164856259967640853072393446441191978305555362601855265155384906709294524361510701179807816670779104731327346409503268310220635248222590307029314136903937938030992393443621928756760689064648035755539333825531642528029376211404067841737284443279251129602311514065142312367562811955177668027154680135544806909376149624899009066578310187532216363349257144403843498301812052239790601853591636843706822694365906680104939903705428382892230540223471751530988361068458806956758917148855953129654606495906971642749721310722348069614868689293796056108466390906909290306568305449867374150855986410677208698238846305100794240757608780205938310455834513974475476829937498384150419911846467109992101187337058854903240253041878710218418241637001010922988813727987792136468331736603830204956214465429309597920225689398880734354147241226854948694012961613327356814838769319936160075459895901758601848970407461521112621626589772819429249093202512788868648695012497533331472003636467214586816185670035209115376144402536906531835666971907823934531250582330691242960494052510613381824668853535727113489126894865777365644034986047375525413101958186916883846748027023698500664788092294585181529294990598050395908238586224966416587162111202517011433881308403893262841195919337493506900981127241727154053112634454896277807654706994246320450636064939030135062741961791782269232670270111570719916859979654271100115863706917126569908790708687939571287365665397814797998525651977909706438047674178207682527859911440178559306984702143310390595307689484169772338383734721599768301636546321592030676990279665797665683777217030265877957678374311686048333200862312167413715500797635833290109731000061525379620822127967790065071865971795762089513090411317787550383149985179989967576428349480645453422101999878512322481805054241379333774043391039286174696941729621136067206791647156246635314945780685472169148448056456601919738004864850343502892607339629452943321182684687599915441182538474371381815588302755999580210047061648444934253126634237878356561179044801558642404792909383899457343762293581181822670579320792145131920403560262336577636407297398187851566658115846760736664112414454899829706691760243383037449846686143703668671408476789817967365032918731752748476203230161437432429768300018075918762162032387869911758599049243949352942426186180533194346669507130077248195183525090582694408259276845387056592720818597079706768617499630509341728517625692311125823487679683965604103802668195134949515990909556470667208805870618084275457159848145461005851239317693617230252831528422714939855925778928932541044768205379426359333788950920774621158842062154958615286768077335813457698475007544154701294767598781762106259157794786085152675365747341508810136353155527281693007960242529839113302311673933355338598501826556518072280103047217473455573206820113988831628381186497028850557910055759256314030324789136053860236293251906853923845872373183919679634526458189037539544304593453532760595678036305285164891000789700179601277008939625903020415260944644050501799301642856056506345019276830122580101144749511281171505366831295060968867539616243108094896867515761492946441045873972187204720285366767474658149359155713664447314902603759060168123396044487641105527118169007704675354724100910706436534795353483248364308923599316462481762614737988817264466163799615172138577081786228910056463272080943070515400933890133889440684629006094696900494953397757751946572573332632351115125764469355868490350624012036764238907588440184211874071782025065286003870269227968671251668707359435978886758551597784785031937406070847815297894185614925884112670885818399627304322404455386429595843120735530012277494878982920442376456899642139507904658648126364095394282081114653826329849001667480425165519582598870498510699362152151109463528258281241840133140844903768943047153543630075013460268155982778230299667505296260917171073852964206548649098948602113946478897445886846783755583217978906520122739850187109227272840749898813570309431235926364592672288705751833683469247536130542151704044011684373873009364253785151016881631300871360116697593569730359844908598643735107770890112819775157272572400716461853407336162255883902675412756961980216956831690330145342883460277542272483433525497418325958654765901247646924543260744362577963259529140601590687589964487971312705599568367342987589841492070708480012185518347604604532733841353365604912994280519891013319872584337377228478766791049087445293020358685467066041999575899940461092562113436624360294830368512425824434254337774945607994135200584020595537336492153430612444960290850540189274053302066807608572315684035623266809671352778803584320938918827809630271786903548414089725375921821731340255712334139675835097642769837295996060682494791876350449225135125155571830054040749251610633550409918455956802922872380778547563637483919035271820167762533993065720824757456422955968042582629661138222605501181917619944756900895394963953618546905115910374599042766629103775047259349056423400213678499808639612600340643400226062426206482229587664506955865373568177473881812826241487963832855744342269311843035647483018704635453804972471293398083702140809979711015048053334950626182097257197942097432478785981050779709572561380838662147011682321639062913421169016974600503141682559195268392029263150152971373144154199390296098401951494908274445113580457447290283466081196211229800078795551626601591292912242785430149001316915260943058519174607721458171638229174899538748068192997766288022720402485744557445716542148380859589882442806654089531539705707493540900110590381249439121690425685403187396030580368117356824159879970428742411722618656249560918144524725791755429597150930750862559609434407345462896284768926678254294264332267627079197929181707643028374858035381796040003091015739864087180232297388476772347906836660475147901845984614836938922958095204729140896208391975857645010283544796405163998896033560000752991755566772202301557601715926752324748738911396990200531339441335257098930361671925308256990848395275891726659248969642000453153051370902740115574049400781715555936293131032868210905155971361268702758114381094451977957824119488512211713995737047449485937278226642608302959984313675850842790833948967358476096205032908495289842162717577616376548176187615479303162197609624174685740339533799109118051073421575127250483024154878384959193681896548577417528219325696492416487046346553679246061093047864896418397456911102955387754892303683185727465233070177419306609670063928310172451743040188157558987539668031515364353005371970132522108011803955523412545388589106129305926850484407130820786488738910404208723079648101680910631776808041585916545341614331394373230746982990981034458942184277316841959224619898137461651477501479128128698829405257591910082766969456289340471486702898041831738808961876835106233706484427393380602176482590195142888595145985588979851423786465608337923979401243251175423177380454489433670500155343235861784616630283727484566381588874848514140346016755212151927772344655237770808300956514661603434652904284935808276498040313539488235235874189456047048238857919445573413830181274585077168829805852036288710906798090724139195716499952695810264059134222609298693665339028251299259587826213417439474801751091909511544980628557459747248769200583516451375011588824940717748902972780263033599169390114451772189633814689119161795914484402842663829471267876864278209358510167133972951822193123830227232056735499448350385359708410747077902696805385152981903692016645089085990173083705028048929877410791683618549623770575517082538175679677142536885878158001720067401009970031177744115085023448398886928557710049804625644639366534817213442922203038279468539728060342661846729520795088862511574856952731613301590145176422807144492733405327711236186523254742938979906396257079547099678615820801036885386769674509882377151110609753665905297356982187340872420808985657739824914988457982758812491765308654985776393923190948543377349899332165797904663169809004133130948049339512840625232670760315272054967474253180448134815328657621082047392426042502388679113317287575056265674288026499714090382748207929956477035925008890279725805287309104388809918836405822240763047505402973318724000419916517852618714392047203689716625184109938157789886406426977426226162733707783494933649063072820472399276550687620569043397658946158947274451291184344389644857586709881970419135700316084698864334408023808072781198245151967040098164951157645932270882460987824639814404773404560934177289934916815006387094349247841878808938552521190446806443866116019417629648593669552122165015570503613161728541518134442810221289678811989391261247153696578357167656868509346915133205402424308662025367710723733850277194677263900227235684347325573399271490026424161043864461197410302911772809521311660234128323062045874034716488464869247698931960510466195907281913662312913718900110773863794097249602621800455553871581376443545280781504215627559490503048587725345054863558552978446227297517273750815861668629924127359957067508233163804826354653246763597160815843155313551525322054494461804594787755392969438441892510396950877302390628438920208335371859811469810303351520001713423036584064713124938750477374951135176870798125710602484536021595993629332780598825193842463331211693487867516782321146144400346907465595586253644681526601353767375139110713295424450640049691719238074547214177503596183381426552962927353382226690002288001992175827599876274122514311661713351921518538629332796264716967349026889020023514332071377394026079929594492710186473544413698774831363197537134335918726681588971747582315884009223939669071439179377652227638071284165101369861266039974584430277599217259919010175681154123745521979687615338759916230589963756753768359253302876550823622543625443731168638169011777151393709804096178742760725084475397806644918382381071266335944327396077624124526554468868781697516108347947128545259131144082256488605998695250092403441498775190125183162715282732855860107703511234315152107716580365484141451847067325044447398362397377949887842685617332513709353132951974302414727309200522487088800909286483000995042493120748322553668965244474220179439641764828035723787177109720832038923615633600700469682740112311717136715712671146035710304564998748841024743658780711315738090645040751981477671598766809190383963981902146210249322301004306096668693920967663762237582664027420166257792419400148136412174413091354125324327429819954149731594977547943263883414979866867107173871194324959557298449123406964453819512931138898447774767148840002376085586517320542484123656667089570825965499643572143294331796523604389360231671666944070669637022546157316248782809428924843825605398535944238564793483677845763349460834306075781336266925594763642478261940317913562227709538198917252810226362473005904921434878487197753509178469739316237168517579653796423786943611970647384282472235923907372556606088159248025194717716500860735697992640019834658322975496514140351276836006303362977227490785208491814128794204479168076788119817012246846442233081498395026728471948547896180429993975319608562536307372511261252112785480713064107130075712839554431237591906533207899550103795272644814815399296695532671289950307819635590672195893531328060427149218683660460946530417302887392455416165417814402858936942805482616328834660228685306301440774377658953202750877217077935173227706541728432428691316643813789204533430550575351708263315056121695997379368393260450724983659067847950238549247759678404713745425911382065816984642256745595972969430664400994593080234547979071346235718855328344111966709799476395394230632080253312992424491771086778744600552877494545971526392733416120228874727550129805292807982555026758043352498803251697694677276988269594493988783246138210817016435376116852397132784876030172844315852783695219951837035838956485271885059026730058316837575332249489486437767744157329290233965761626310696556276304152235787678443029636910786278488448029650311649388978761258152760542652100504594462426987635987099098420692488300804734259392911073448578025635221317851784609691780771762928547452562236664203514203576682604288045550569297476698846176457155905317015136048056773870469692635626434118376889075331013357153517769260582155968321165127920859388223504414968347500842336835298138299064000957824895594283293610023332444497506412591700768306598362240201612068535569312876730948119791120442506075166620231964665424184106519232592129212777504186418830699051023660827169878093266862330807543111401484913204542515411381079616509724208575183565543313973471027233206900876600672644830099578647648934463337661228851197132947351889371080342320211512088280876530204443715503981016530788236501211593728328359223550968512076544107069044659513395627650177545778752417103358670617894511480604961179695800959550525751186707388298981114772360710007770800976285590227237091087454335099522242903800716310514000844378985444945297442926483186306899169679838185990138538243344296298746861432848346858171452923286673540278184243676287820207978663339686598047309015756282291568614516454760767601208253130009466383951909489602338118612756285981697065748342037439428066875549956560244295631407467949362926962978016717701683724012587484427292848360911425709549070673290482043117385445752465124442567941444498335591257390351025702529721002053909743000617405080382881836930202254445734800187745417512052428004055068032026495560251783358635129138866457635847492573825056950765651373164356314833743865918966088985101468977797545584113214165333778428174752604240375476454233258689646407976753310334639609376447285333913928322650161074571479567584986859054923938786608285725253223396473264532590928665777695507703734150763648775645109740041808978191862654442575186526134887081501636567383722519352145091342924924649663454861831012925604583798470358466734214682139215199496295879489897892338593992431718593179687251160875470686104129978425443022197901460077516565056534657812827422476306779583515328408744712093789159275724067696073612339509862021275151768872174786357279191627764313306940478576924284324768923607557260471590333773604931731512066072874099030459833129309785293523105724996447028346096701396671905182940292698834238603936623918611883882007812450648700491478947302490811853341105197460291216877304533079983645039478117787087877357365724825355902933863626676336125022145229809262067139919992473913342953619796396165173792625248828176017960776774174678662823056799126373212179523928386459012074502782279204162776509488909378522566011814815340103110736098833051875950945298029276921516513084953708821452442957115447300471575429818769083103198817888723419148889697344356663517521947376439586108133349005682718848078316792900855448472730650262790204697174248652507342721396717880909466576536495691338640020394749605760571543474650674337492348854619371687720344796043124735140529395401068095248437705118322964606456667675614838725094985756088516578216157129475873442163329636284476802917266770641189647176356793874581867131717658322597527023057128583057938117049986923140784677419240058271647078506386435886982297497987445259892209053390722336483741879579748733687173579032947062143050688308321673003282236897326304084424880859861645525157825762013913048399439929290973835908239181618989584883583094161781237367913919498742549721004768106100284278495238629399399408234130314566971570639255370670521056888559253506825250127590169142160729225369026694566240305182854371643785350560063712976150868787699000028317068088118033983018663354323487470068673047654945632846450458431337560397422980466513321004135002905666735949801541692812043017171623274598735831000193449758191702744878287661011688889888712486644440173949175279314196837829251462437234529641782684752564082304383903540331656302160503372072305472128105904509871461216659427869514653116790854497749494391105860313691266027968341920782600857933614553489293672964324386981035260992305887990799692447444610933254982984187580354136549685101968898750391080417282388120977171632105770436981136823109463490016033335777307586200216227729691707776970319103122983608860892694838346040305230321011373754136733136748392080607051513754338243141190885241377302133442496161383718289227228620022310062619558754195134017225860341540293603526937300827869516140064603502106696151225125122868511324148940973444437675901003353267229355906586324995928272645833632786041032929356929908930975775296761195075709141417269232787174242128379499322544219325442128063599071547838136487791409710015473418977332692311391118555369682800541857467182940577954501556655740018765047273985076631223384585858320050204110987484293495630604110559445300538463073760891907853511337426088151956829679258018993151930096035069952655402596252255438077512294333457345567167139481113133306330328228010568214260733289351373653728945475158729968179863397223407624489702457524283911524669021825829325835503536324720793521704116296719397445126451877280743134558334014282060512806993474286410335787553720587398541890174342420819358520158479913280082992442807519868932996386065369853988358366329611414666371390329193524552508977124859553124521333040756051276484760033611780141437024739245767933315477097880163409059133831395533706742611041883313198970881525717665265764498267432342269399587625549978123333258175328672928133502980108219360104631326606607506780640642637920672687439978690113643340614884382917688870308165589112512739432333197340125224301786249546440239108736066299409546587557200507362532898971796227770202215079254285725090933356636837195731191833930742010521998168218189013166883241468861790170623041991820556935019312545685530416931845286561635016349433666970404591671553527056773183408481932253003917852438283558026706146474504433108414678956289109490884538867508948840791453431486412881059470679941640341996754595681632387960373304278174033597826340757164322962720864346496682628284517609620213711818565485303150441880803508373607171877980065068207158072341004861402044573329916950683166544835335026832078523123818124530572924213211568023554941813307608644950987976507151948618105840395221750772162623726340502468743237762477846139341407492397009092558871036426517088446146096682929586775198884422370354571664671313215541283401939816045033493474865729243791618624497767789747060869752618999966579590208045004297069726778179263782986423054247693731016358919683671598007637319750548889185771852066215294598406795532202227723767042767827662410600267779869193450251831137822378184822006091754018371999632623747002649481663670263953030925032216089138127580634122923232977928604215320286816078159663742641337423689426684565654939984695755954937073403579046030934100855586610091793022638940538096415108976438107221981401428574425288827053076153359125408451038503278579572379611363736951714130564980280773296764234941283080351227569843168157476157880104127331765167659880898441048156791400504234821267778505644545272042786119550329121557245489987242656336640656049259225818067399965474666342333937924163793721532856341111844616806140181720297802753354256236306396346740462640831773440542887368931266459873312120312759583037893901912086526972404503901866508203308363091079086551509216213511547046442359569174653146237237462584033046332740834251045945808751259075868891691408736588551585189744171013865073542089263206733607327987124487139737523064637764459522775051800858089080773075599719600774608655893027886750638899414261156508627905840377349787790808465468971255644130640048460747621179188428780613358849338185657991706647920488171970678251536628172174274045806348268794536663897228895035762404818947642972035080910459488514481844400674662148482889632529128803090941252579615330275072701235611865103936166896183270436549851235245304911930393391398082232730446391472395950509419454100259754952896489875623233248661571919724557716819419307947384058633007296026480988344148253239262639704120051048914457560409792081361774838855915747154980128068360961571318590795631122137471319006103246895001012117808344323110954618296927568634717183994011525639122147307802715723799557480988148788348740516261311644584133290288831162839757559194910178108325776521749290988404029916600291210868781623320227240179658751552958919166143625999138512332579728755934467841970295884127959938003582605899144703748312477252108551076580386954025631353561148258197825033748045613912625750708122085304033716096876957579281204122401236959421492018238067655076268644908678654006639361700723337831300968776354276116472622531674371447930161803088312827894804653221459151645790635855660814464594278706922137391165031052723082336135903717714197110538359435614351547471782917518975370814120191331064568114648006918681278867739981823006091764159887059604897616707437128595158939645155975231224718697327278393280878162677957926370830380921325809292598715047529392871788343699891840672303524012012800750100341227567125736209533446284582909538368598318224831348713427860793287916911933975394089517069126449934343858790944463140927774583363083909884099409850067923970751737484966598681630295106992486760909607955314065237599245817499561114798701041381633054523081024482413480379876389312798530365196780772715612496138020894531112499927449072874378034258047717654583278925045118308649837759488863253181833874604500891045623465615498136446631808395384907699819045309588302806971107909276910308409952474266286457215148758972424650577126733936908001163122296861600933519530664337525982330678247052692715177518720201865779177593304374277053302285660451769215117227955021386646348718288660712058384860360397317376607250542851363604753637756755352851842335273923028243247208566297907125070313444395052100889873349132866728366417536080297110740891490848001943304205567647967616794933490072621788395020807056571527230836078832882535593729360106174334047581271651931191256688064037823019380806684067755113266514466870489306626176561462797885427875176281077403816227486935404753661412356589339069082948240145017823129930343053351093184422686202581248719221673452381015854589540360837365140888387440411454582296989672480972829676543633139431874313630633930559271114140814147706638354770347026183885315860257304842993654116838512178767031481128760460302592634048232807857416033225234761454605443617413317060738120312243833684130788184300927203851328234277180599261672721959449829390530342278408002262008292670152738739799104515831890120711678558770029049433486502510434990673013828768035215715358853908583860571428254181682796956905224416607605152454345066965633164788236351199972975040139955715055536407216403276548835264643227732304893371863062181698753944472488114330917418444551160093564377905103484593489457837942981822769538912974656891987037627346184603188580186287186734151262441434415713195754693261502154708595186122597187754343225754457993642553074818411053574375448103584750890018059522735490833492533760861770091379492724738536608630898027968794038974430668447731809631019676220894561921387642237017242828588771289883191039377626043423306581267744647132568875859637330668574141059353900452060246373462259481717079408174641869014970042962484073333834707278057967241652435142041333382299603375680146959267011777847422144647046143541376734919582393431313599539375932110223580814447821018523338807270570290176771968033008651671069598778403077999595169986183662969793110642128861440663326737383292299979810760092795742515187787043491591276202213976501043303109543281532015446153274085098854138810037039086759113669126592619721210579274266145197329251074191904544749784361743737865274264077555365893467811981616427638050433492964772363200825342483595680417847087265015324901212167601184201431948834249462560235598861835482520550974775042064672244017648616432360594919267293853623579236176966616182110390540780159390340635329086159976585257465209974739750478192415169287333155691488801452335737603032675865179395151334859378994234823343964995654349097142436681082571236130609274806361111567606263004322804002444971442248486583385532344521104961304132973947155632197113792477161411013414765423181142477300390248001927762826136167690741182856766793004747557083850194370565148867417914749668795796718767237416074435258350670171208508233936244380958260442101465561155600284823444145339800186362259187627956001407945356017013757387907781653051688620438191545180963098086403401617560271045166923830784811548620338019313543405507276993096124703421748178823232626450048544407248651465844570908431195308878395747420964939925297121547651678644798911511226705842193719500352620722002986086863057315029986887342564301217532856757911961257241040673493437636298977045654673114521013015237896821167718920826257408089297501858541191152692104271188393667851067746761581877626318004350163560865107484046140726350330420293569465519323525378660095065339890880282925533317222154634162172063262766916715804272290514292771708592641842384255295168928589854738725102166879654131572904830433010211485634715526325539715612480485804274602972598429153699334534165429684490426381900979085711983083068400484092517335692908257114738707892488875727886327795157393572726050681531704877515388706105419160600259382600410999128757087762556139210430838517531011532061936688413212783321576439925571988615506285617361744041117076209995607898202985778937712283231230708428746006291360642109516766583278256789913621046412218151874664358305790341980798732364932379570349631778006481967093433081006213944726786827520712849936444627224467346973559755385351035689234626751175009563801205941599472548924839694594938626812929181365861334681527815784110712428750602479054434489945344495301905175955270044359693728671081303064140317379026237629008281833748400656580263084988837423997238944518069582023397247958865515885346143913680351568226665461557676642081293798150184467449478985960123683063334053897523493565457778147899031446397989378849553142796684341792017838587767607403873816561476306000526117376968998298906400968092802126660076579654729038349128344406819783836304522716285067101938698887908437986851235257184958622557066621256324407338579856731971309444652301441116324877792058970443275905280433965420755951917222521176365146898039667612357718488891708586352439281260235220973441593484820042255596746025928201894553242734310421296696200369470675395835029957420524443267413591452512295060351921278630064881703863006809919977383270169816126487924986543415936062030993508141148363737515552155650759994459133436494700307209341627932055687215685399982906010681560763755728454509806108683549646217668748119713567355437551993544542659032794450578453717915741065477601229302409234215667454728337035908442718382472806198740057023218907605845103532240919061651283025409307780306672240100123307211760307787564469686866090067178348387792846911645229594752425182398482857434516521301157693185861541884250003486193735774214944858038717680404372616696312172912829466573037003825506494110080529101493585387259901335051637213235375120566880155181233834009729706649696263516653368838278679526039480892346750763543070829728352717879247426860036726753082534402379133752689879159486370425562348918796482664427975426647333461157287266677788920688563458149303108237519205154968175443891712347166657124466116862809398544797334296696327565935266570106523517043441568246375353488857533442977897611023269091895319149018882036499040837319556889761530347472693834750208694996146430008272384324552612811194193345871232287385107717659138404440380748107169957510464549133829434580553759636080305998645396420556353432824903329439662418840275372545242385943672562386165175405797959208161401111557252856944697476149339217479752926766626461466115870220641447640091360571827019929465859710375394859195503883402309527948754293361459493085257897389149022069212722765724809051414075101530915281923908696430178295019175314251994820923669137504300674116854304766151446955113874168646590894131374994874839605627752896878518382616719510787604358107381055251731944735733030476820389434380756466519691135461908145698430121834296986894697572367144649725627106051551030792676373838980014406473239939309706891433669975188910609609517099432479304657976239686471620593068514128339145960310980049492919045277734087359707833122514192018359258513192480370065224240300895590056334163147074774002758565635651435201897349956372996055563914393921742263675697897356531236606257372967397135377359110265679209568758840940061955811475184415984565931537508487265915381312653415937846488403083140485636123751128981980812381954013616629561522554348975867601877344098887528483755586623567032927002990478380970153419848595000075570226732345675888366498689441608970441508861245932145828060597841649650100795122232644933139027599040863849804999464183246779588072607483955572369354437061273020683278499990769232896107132220959787511399642383479960334673210213348188612818274958156065303403954613924923931103105207716123213451932233465800299017724879150745431950622547002727761784516615308065538618325938804713717662020185883293361920418447988834858695930505608979378747183201517547232913742493602575760058921118845180027023201697761239178988070801615481945094131561097434300894122503643350991543474445101403882976055474463967079873445588082267374763261007147758866469339327321991104887915283017129145738095550171970910236747986418289829810869969665216984182390255636627928445379957443141784917569869146860622475647349160508291202594075194254327025949508417791934978142433575690759649596620327264036477012867404899808166810558144183081775862087966320993395426442416412107825343786040785859713560084385498948860604326574668263404417466527900180206795802362219481264020015185748980128646432570284481649768775906692319446420816642973830856257596070666563129802694952433134552527891142611245140086749230176700474158218605309771722452571962699703006509336304455799968122792397054339851070227941288523424249901270835172827349585941380724789390715480226967946026394944481767458882880105678109299162880513838684786488402781180258904713701362520345168057838495001557273786762770586220177739385401423505329313596313212852197842242313255249689653994811562835427690808756672777030026275347860555107510834173843745670300662346188383813255199371501267431639361830651784053812211559487485915030835315300206808918194025923009235080025606218483586629976019078886164925070258557372011532039593601551413103938933027934882747654260372617884264682472785668445659083766479865958915044677636298145840710726510088383643326322018004231091216716584389261874342739228821432309280211263920054299287258952777463783317829638735773069666372516678411183909432330268728011638747818598291713108460598968644576122329963633485579234600658515650110689294454190982600221390751916298366748420405355190522810109784659944891291324002475473874759138816714632708203127883962093504243860136424184693186642066956230416986227254737418077096814403052370340000429157331688918761719600932270861043372657448896803254792659441473565273928654172702820721366743643179942489396291561170808572210993217792059478384740249126433528044559338102016901497560154362116864613580715188493359612364929413665321249291611822222005098862299476773422933172151102881539814390635214795478887492086297824549548502523428469084833433581127890976162830460290151341143403314113858126667864365978773021096492635713207073919855261547652216247733732132767564262712932704709237952979624516403452003637626269814930290495844858880460251385276104932013746180964325484552452793658453928453885813203931174949918922685170032419074050637143914771865525513561341635835731786392649941793897867342031377482964196746815710000014731528978175986666807766883503329896626307862561687397629746832353641457522317075451732931087729223034600713702317964960987278012968727803122114714763848422919873953140961763995351828194025005892967965281438225790166654372235992175148268200549218235827239823950503506026118322754546181926114304790703885821841083353341559142035136988031584821938983396644328226914515285892112606743189312982540803198576385905304620883422775310175533242613984093503566997923543218396443456747314138313712840849761096591157960150207705797346980179060196740321210455574372781547436382336762323868611387219021050968894675561673570759601863710032225267308396395071060238743928024757881055898844444013459095598711920149581299759878289809250637316294659745372492802971967449658844272638923881332300725976997273011898914421301752129398042093006282425513911865685751689620562295527032802721396364836609213750491762987999097896310994972514696649431325418981806107952840048550973948449214538677628563622170696479256198576413132770423088740038111356242866118541840771367418172296854052986294667656057325945339592768966945295501019210739441641819330731724936016075686241518961693659992128362309923310323115147571780017052482051608873897868389350977063419520931732845521472144854293728831860864132032798488856450163764518367753783308181460285462025854621425963088099105938311647255838357930593344854564613501945986735000519892692470489566466102073743847703778632364272885114548497633362834059475120330258924249926410227565060761767014514393119371927646887629067401627362226133749835288241813323688963536786179200862590709937546593170894541610923890496654065294961618760387322831581187781348903768474397959636936515562450672473005796713432018884278649808732870179084778122661484058783992859298987509016472040187705711565334115479178060383777641180227967327947356107447281897868545369137999540283637794309101105256861252903588113453827888518035809557293317205385934200373002929264289235600119291165189699678231185368262410570076154232305044346379832767423585662817614015379694101117199932478722734480877108826636464482965218999513200543729883815114526545901585835645868999297433290156557294067051666262267254610942421589389181245131942455220271335189129423946876478414447721624769508513151708139346372093372572517118245188682954045264848162984146861333792684542306207651195596972919950804313985168022002715522494541703046122104025349948416495347870431885015501602593626740520359744736744709233159746274218567036089806417626527735779521642957786924529252143393249201492303432993990056521145798757003138240868152146999777243232428559235647857493523704649357522652089761517359025277819319437441211085757838392503927595585215076416275264219986447572859947497984420260832628734727101127956501224586641280998051275654175262769536636378254399982546711427825978705342862407858119227800640331101058361845876673480782005001504494132940508250378104174587252292437746542300411340559992444814555217046000508537972374217391670471995884530729472780373451569822521646153587237659367261773808730668057906011969393229761065210665173336850452896097324548286579279156513588693791934135975803711980749601215307445379188786785366279152746569555692002836866838129730885920360478363950941339020938764913092513699038106751333979866290807112767527835817753824037027226626471489991528510794863847393392788265103312350511938074748562482130421896483383940196189163097288245420872674468606652542417312215196852993420630343166091428770872235011427331816430678177972757748439580756612429680784798737008961627431109191304377160561101587526438493395093358326809777778223885652231100103202921975623023059207421181791485176138094338618017064827498945511858220050481374763694095050313990939350349229232635768027622583070168750132742945848601722062829460934503155405524090440916702300809697563873574992303720594275048993510811559057931133980130327811033431993502123237317847178654024023428952006129639221207440184728982691841471599730365861733152306473515265581082801460562825130082917406120134846965148692239231193302952392192858889532097287684894541054522117741411347502407168295029836856585093636238087176367314841473345250272309251143270124776840702107855638350546921554417846904717930820635556909400180299622635830700317669796198046329464855794658069433690994654873670967573337055997661343858770314968699996800902472433337091277794983727254490382972092732364204547652166185952052596653875659370953985287008647871102731769107195564180774824367163143427535907743780705486354415931038350955285500986527613182161810214442199295255743366081123706132044017045201687537887345345143615450158071268950544689133911596103828593443158344845612578098306077565513055320371557989480085789650172960931764512372708876294845796536832144758856821798451102984675439405469312223623677315627682674539337631513549003623743751507832398319830040937928364666425892674899697405351761102021703852626544104313245779759529879259379219285181886255047608666522447426153261404189069381793711963681610462754214961581936987444713242530383019736180485257023211532524430456723337352249107386226738216615339198096620149318742982623477834379560346506401311047753302757429528233295063122673785774385657712186107810207220091338771130706860293321847280741054838500197894418134737905632533440485426486361388728362494982190041228911241428491416304713220371447978761295007475126021497051010642942026090685220340836300926581138455235393020167178500942133358954392354267705051796487899162051082129379806535285105414103832914161037953998804002669340656156289330954008755152018094916341987019382197106141946646788455756576843508884713768431175884354207793821176100696123047160824099443111885824673355506868605711636784710834908137181785172409891268890712828750893222653975425680724553646522042599366855512351134288948492449219017876112298990786305983683209994224574929339202834890206605527135944987223618086020583541169206179009261229152108791161318283994847315903175679732602836589207370142919771750494419978441838689618703363207922125589540411103272145863144174975314546050053188893709037287217325268890479161825743217641182999067299067652901472932844612984448194974919601751871743429521300072857599876329997589263360989079033304677685212720044198714574618568816341530616947588042559854678316565751514792543537116936879983446226815514124568327946045654124181602674483693330211097797493951899394698541242833870321596099436127684245515962599931252462171800052179568161820184854223196737795661934105902378072849635385347520990276967155099519480690959966908882970449385898377286735226867330984358401764694503890894044429428805650750906612058019626696479906236989574681448286128965044980812736055548123973335992522079725234088973123754470655263923303200934974157570129580446504650543987728449004913304868545850745658320850868634688577554968403442219379461363131835002686902686796643839817092866383016185793978380810033832611468958064921131274411853213320393360393095396692610598916382812151407084444908494754736160881649433256246903183427688014101367703839725187435708179273340365652948208298349952293215892781150514178789319141441583134225957099482252601972643287457666266671144299240730137607610511060370050026799259433579730816971319651630920975879233189441746084738580341497969933902722091165616908315388743479529344006238409228866926968910309841307708862372666724278331473968932648118769527917280518828349781975002493655435348745326458276231942191753710023923592269503591849848067913812256760661969977825297771788571900406099375382704084891885936759058469544332757700978924779909854874194362710940402163788924748012084152469474122206082861381305196454097417064328215411380191329118058193676012992409174345866085542071056129945568006102146099769966470055975185291948935231868577069552380801653187372542862691044912625445170655400456821277319823455627098294350379966292116668077341444614565805576661315317495585001016961474456586950923446437835973539400883016236429910446903550117953793975432896890066528032306072816933578438719352885043701902684463258972819372874992913926193307659516721314706469736500196802566898398699333811380546187174710563357910793165171912590876162169735818182235403743165867840222232536059116337552153812148615280896898273541642408774720182599308408272851639456760470739615098871745229988504021331256201940814559479601352307762372047260996496154674645424179626979417707415823960452541265868904390907294941809719984627828425303999076094291327740107909746219311989117465695198708666736319003216717395276803683659742405066262344509577039280464255736225355307464674236981185436489044064058891517436629451489233038476768166066047934839184254341849715333638082410719071359544663610247215889104960384409007946660147157690145851941050937923346266446082491744258382629835631921895012845037379369976813301066621769223310694281156427833884134488359106030767430980099885435607926659707977663996560381853974175717080214321817709004247545654875189646967683778943123939629286637299854151397687292283557900907254661512937497946102143516052937988593294711199518663130201604719345206299226716268838960357409481759769032636129310558810027509758704832845305079455337578130294051375365406815580133511995264208839582135088619600823628459693523654818302890444868383508064514977573371962205476890482791214429541374261506960092918574557359077414548034942804213906566208566361763249959512414640590550744223173079496707617393068600652353112776888713877477074392358815070256367699252201743296195453808486371326626916462444442279438528207574955734628319664428157280380479291235644788190895598899790964867068326147303825278218845745852956009634243435611314064708845668591257101551781367586410530303286629561484928909945738707615269689832458621195248799968185906231747117238012491977831642984764150538955127483782482254680958234754053597150951542578140924604690595361966885602817007863550874515164790696119350019735518116784681889601399335229591759756654977054617165244008702817920406513643203622688083380874595977848892256688555783919183370909836509762162285130911550355677898336082183676760246363569063581106720042972940715729052605151583520612636453375011091835099321814716220308094303031073329532587300478329495070469422884010260217150334932895421399690383372905516530062426815112548768139877414416917649846529685403916443900221237276184324732366132723172254215010634654901211996958830066010353885106152201585786319662365438867309708752099206838051072774745407363233626870334081719459579692442590527500507422970289069218439669564941218398908603711585299425871826257295778613945831503448900829627961998829307559151600032887773521509596009553817456683175048061589131960378869323833894377419353585048373637265465839046388824917380331258611567019736383698831828909271847937001254082457921899686796224800424880981873576503570174420110556685324138610050313721130115797703460160647476315279737749344962107422901369545213264880872953101466681953356429326936201538116342195221231916026937631942481581193666444052062048986210156813979688652719536913198538726004679296407956245517235842722645212414392703884295351763170133036779280335710421410202296180546503602281011130571185239312625006406647252647903078590758132866261904987887161651534236708823069232624791943063473151343522620134958158417523028525219842206893956424890609521426036774035750823087216164007512507989379539669768427155640822715447202743054978652635266214210877250270903763096505018501024548544981973444358169625368205316638633771583972100956036592713334452714484640617354196922966317055714274009187041428811816923411645072327903630945901444649776850418650719248447414608213176155131644120721637064997212954081218389744900520628153397873994510385053942961251782654388274441840307137208711958317303155942520234557230488828953651899648412943734704643901506112510797037112845932559869191749239890638624136131123377467961628459547471920267602600516171697558607600940894280600374252131105952529439042784280049734852060037639451739127395228730671312048852155341029549006460270578273577571812772964632700463009147622530746256853364861004816991944827254096200895943251682774154831804018860776168291984651006033790704080334912345050443948518956903923272330024239249028173404591485674382147961550746994284019932398742365433299553462603100575542473710661162819519535057114902548413329620611821092370108206806953927375849105235957053804161956149684593094595366728001013162254252864186205811014688424964483993314106414836008077934244127273660476808727312384381523712925165969162266662224340459604101132883742286501540990186102979284524899967768509865038309668487511491647018137385614269643326125534751219183644541753542841136661835675413540122481515250568768060662739484801419040446691664802876400534554646344844748640893482359877309485350129170183694316072485538116776156435300933841462152477336169901700337635279689925324673722230876312358607974365626285478187949478500848840600410706166226357185220400358802579726565526423753368144502795073112287053687299683131871458383666053335441828469828492897105168435478614077522428405729428041327152930374608303822333136205238815064917036644831860019337421718783502780615297937778083195381138104743776230036592165213228848266732767988291027452632823550288873552163816264275917090046844102723085371896636029530584906971467987479442691492633412399027174449878103772176550932571534303601196578715960798677572203437932502959483367712299076016305436963912903733031380023417858306226966255214405050855540681144930139051480957877133972205757495218592703775619247782205209265392285161096583554376999685537923086594162134167160903515534149891946741213769502784995141514315023511220489371243951309094436227493608661182491390298058436422319167298991581384964014705120473527442590729522821911835030142768594132467929435011312127981817871890285335785640651605137523801380642024150713467646803611457476459114422191250957656093021746957036488642297392573451036393269345626200941188495617435919355170381464366469633680032649215997440464210713809535224333283848046322018629654637062557510435668123434400393416045057143955957651592375604769025670886999118438709268876476554438817223449888506131112891825214901244732012034689609495718016515363026785834352065907544472312371418786013539588695058168404394179632796376034161978595892128840240715770613732655188065525173165183663492989913786442038285514838559129771591115914772555377273479156409437271507580052004486264985797133653670204323019828450090421109392031749994827708208097009078212985543549150702662727072301639974292578289459187114022244283131585532071107521087961153281831394309508783490579195164511209283735225770427718953795022134335851876692107628260111851109869257861174188841126292188965215714272408582161136833590601771685979409619345992850501725951865495435278721297688378174583216637541567008886469781889186914801877361471330941966488494313237512019272998669300377686944694877414232712680493035802764148563963217974130171806104170786815585691898674733778214950758202769334697212273410361556609403622831658078481977328971975658573045155595854055952550413730183089063133211305581378539768432696878517810761415894133640660302459686205531113859550176072594644722580861279836733005634792956733489337308934943378397817110621009958884064688726920188231531408974248697337451058519516284488036917947913182131605264830196474298335531986134252706712363435585585861404876872883603105625630205886046463235614074398468109703554827511249078768180193083106985673366923686490295098332198523310061744819151221756053476946654628771150251787279165770971747318500753387854076059584846248511041525623013203686095489975229192513091203676875220153863110018288861627891999660258868426488601493635648846070451721133939225270552585452224733150638229640216944345897427735610207203595481279929237604262553233836363105032426786719705675615780129340224542783544131793470492193351314516578182061943023819276635774874915215766807153915695445402859120641064557017549476660022045855108564645770691153410825732703716045731442911775997566771376681558925030694298480538531881742225470584448210679196358263383735816783398348019977350901947623617104258735627864977618051413642293453363724775406682040705319945226865889497095383027514190296788048922858861830634033481958345732022780004328200998214090182183846048425790185279116971681670066923687975408675271654293249832755402715682703738474520740204848540613177895388062049458516488178712415886799804420318405369656693538850708381959693043353816320831592049752336229802975542328131863076526262921942128471111013734943406069177754476863512594558179849571620485590264450934822156928056017100947638265807008583061644715383791545365703225927243703476985372317090559819614200321624425745777064779925266606882740990800845137400329601759290892470339065533236536808775764395451008144542045114855468017839277828956331616413290749915059175359571740374128266603801503738095357039855772516300638298621080834653867519447936616310945756182802486803086272981815739035106397631889942842945276164321100330271703932778543005078738299843304394607962102938466451943882567884061952386096890124180220620101436107098424688689606160175215568321200430605348331513488600230926907402601065203105881007280758460743282216071348120027685036904930108812445278818081552663137986254723555877347808734631974190588005829705422846116544274546051906292695979604237699772427634080529936583522029870444651381685757606560534792116979699382763282394226198541056775098841172887948426130235258831696501935215489745073512224894360073871491599913646172481431551556435683858108025755332635650740994616785492553016410620004633918361938261051333168967538028542888539328430023676188670217533158442956708613341051792500023776029005481830647470358654038536443883769672732821158937271238534441032957726222342998688979302542340569198626334631303884964573280479293897888976011366050313549361336799080069249436920300230543574841256902813221091094856767850674336376510479775293987046866407409957599627825888301548091170751035818873407434256649764813550806515609936090305635531445902702903553189724006626047509592886141017589271988102900638538678596962344102637728489482639467437065163984666322036915193690655547379540132533723233556015592953507711705202367955829259535237941438819492037338401198954090072719972195551248051878398396627031169885847215257998776651411879572166200090249074340676343777138035157247115194067241886430120656998753097646393128586091252360134913388039192263142147615838400390489224722278270141064994805327028808747730079330205305466998731044181047688798776788825214130806487842036454433039434636482659962397316577335221935071321167359380579793222186146419804226666578731514573808082204313337350340857926432644093034771805172398698922025562315522240474755641824743208737105557349488211119151627794485841500752386274078972886651192456170682682968476574254136159524430224747091995853701715769257682143814913568843771674933440535594464991540452028933290351276595795895912764718870139113195649240257745323004127885148526600210817531696926870945243188382538682310328081193431700134302337954583634542477895269783835207408852254464647887729121760765713126738386606655060423517294492876816487378734678507667518409695366863661363195072881085218626259225257871627125876999933350442671455099586329726132271829346168814107987627098650399541806882853795916955277616366690079875682393531651219129306988915799483199253900438024844389066380221599081854542519895827574927737089176303222266472325204740235228344718011771556268936693281258331645565937092356680572717755913506153042181473442760147566355014884609353712411565548519524784254464557466409107652283064834351593879955792777791756821513961101929545052630379848827708250665629982170259243746219049520036974430361805687183295007139811349947234726810047797010088771943828396120253839954516577384725264484232796623809184474853867243670305736671738314922811862502901874807825990155587198135565066605884744785460334290738738753792706300363256537074663444459458538204071343719859920574306766747953749526762589997534406229797841789297333013151957770618817676279373675431325921347201166894526201522058069140706242771415774076906921563301965744740694955521797774458388930156789169813952338504812658438643933571977394860135032737244582278629062359429082142772918876312767348949709432557317684665276911522052969431368389496059722989967480455956694786543057493067093374675498254636388849569085520091145679366685726126534385448333326820317650471641140948536011202134054595473059350923153758122987144202035850125930978124757959769818072984676071645548893981881183089985862178186358281578156240614205691418995494665168247356740339019403403492217075922380361294793582163302092262697282715292783250483768157020743172988593854223294459998415144653696744289467481340461759804820216704816534152092995099659588402393060099438162193327268410075510153192380893480507884698871598043077196498197919881573491751617984900107766943635256970661405887186628080851811535621174911355032017801932860492787726096841051807052182474570738508959822370969528103752143401512667157432137488291874694345066437581476869417336601350123026830237875317697648713980925939918079005607391023857447061631972645180877578428285071244937330936525702762886761982156360266514522377364220908534357935966304122428545481622790511569400390880303674542052430862801955390305798460694606756675658394115457438720291710421267922318454436715013855360780317630175291371432611787648714785171352831850787235902453245326802141439336062077555282428807060254860067964418573778445944406529141159614652637758176559162280194847933373382512214590681887677922349641209854241777380532933236632015256752323143877498863420962565111494305235365152146351342569568046953769186384744051675270844680486428057038012959397789170263956630574225242346041149552060656050585690019436247518060689475119334009119182066791330602576835850874003623114061297588458092304715514764590731564065137599951725186287089741055032880383547594643442032316223961413633398858695932242083710917800198201575720499330786498519935927650322747636177527698123617434003009453911279077814690906158165665671434735700303432654315320057228085622791006908370590802759596610429198409604203066701508751802556404410422499402735972696103486866537359212213569924037114543302395060509284438118483474161401115247976611392935672286631321997758629762314435634372782001258853760423593859232963478105035988970721957371642221827807956027272031715761160627908433430110977763225781452063601282659996081650275355551528735351178884196872758108707186185425654573416417274114984719495647227435654896481626603934800254815248514439409240609568295178073082488264597360589210086340481278821410363880573652418375893526174985839455033344268848596414354939494892412951704055062118493972232868183077894436948749531459401091034072895568839576485493083255921793885324010970657998043444104861867409036161032730359598486102880122844908357466525073606279498519876998098731354359313923342742699813954402091968434277591333414813169794377535487897587819126114437344571423567327928724541880408444099248231655263181158582677759305720739276679959973964555596939527283893269001872916037821227976998239838129792875515765838484558834724127122142812150244437556107017766505521509599409530187664079944644634818552959733192695290158912179859707039295612818115373494278749183100198930850887278857276294495719903088429003676035932663122264825619236144815730697339894470345070646725077700706455560735285315828168374227745896218191067470057626333809971048537380246253431546270848815809982895282970381479997438206433150342753352271801505309434827259877771881229006278765606652271801594609230573370035831556382055833275360135427290827122281086119901547339510776651543219847375761330722597102363133571445349411993709178886323321686338541561154368123182146782118110316130623542055867952886744964706262327176644711747835410936678545352728910219829231992042624001670289159141151510215744092944239287431267433491954753536946438787943291993843129476800305393105293125239028239206993773889282607210470809768645053767015757752004071610926829479563074296751008979497241137352116784785733027183883279139024878275801799436623774951333950912973561515883443874633896656492049141258208686633708071173040173886527576344535632615943282285715828267112055795048734714768142424084376133039925819127145724129927953963116847726063458794343356384243003016923268046185459280884124194201160872316684904865619781850206980356741174147356680326801292526316722730577243578620077925377422259645321626530371968436967314187588191084400368822949672259239063529523756362692528506618793485362187496664673352943494770643952625647221975809106486082616795932942957381146687406862463104330695797363653405015770058411900067223968744886447323088449757467740594058614579850714132691911277833497725179755153050095225920850383680632461987572044397765875247218139247570654650128439061459389124869175905724725430928368507886831856759229005423652521922890419982554547799705585143407259337359488949636907481432856047653063354666954314683923550920913244571628387260930222005783229057222869557401744664798086422353500869513322814347847704350849140914206484734766164024416000670210295052913385443699802837531221049046023800777845081593303850710860774452886114870657753703963872676946270205423359327608142742161741688292676481188910206968000491733510942395830631429561815658395929550552473569614059567907789425358665169161216274514965807604512380171525978258003879465582878913114928399521385222462470753726624095525951018827991904314462714280078909267477957757610710628099623018462928995974751085645110458805376653253237782844145985412878125340065440152305449641089865056285485712916120313037104521793421132918201073200230520818094743268478128813379437892994152448270961563960552986948409863088434268974701837835421882481431089975174855685301103130447979324225507310729986192604687032230496463879568763784604286866014566037063219540126069902535267309759135619166180182639847153038808057128349107389638415407282498760225157566799150171334801190061179892764080596820055124586447279311784295886403757188824015817337421376714037066636364925814932239292948626111437269106053964592516143269855638337385498151442639598178933437293696171908346596493156662096854599670672931249922571698415129480065349566184098378965317545066772955387456080037486999347049693036052913771143445010925046736818113737341643262530004000315633479249710793409367985560004444719246348870838859630073599752343591235166044625965432250072212397698447095525372661137790222634947782642986678948277068158436077672015226484197386906940695222905472445918630659434447191696497550747164396786674366523986438253464388561976343963987021737723327847686721240216376183419888234600902905871556024084399516525571657944694781644060026633760967809222930656784690956516790238610372351382900516309931659461300913775279623503587899698331393432233421331948931268817011398031066661474794136942558289537139134281468695687454652011280711681887486012488214760496751002709576000577906740600003873280503510451601866377979553720134453352143267551632076298022213403065617920404281827928969492827131561650874120686752049776239834365075683420169674294481847535383946978001168956903026807329030555886800373804116592805960236115373774676001357493855593713385860251461451338487564832832404128101056699922852946333249052164769946007779731699906452302660487980829145591783782400200322686988187892211901481836964031229948551339921426192848157579555744479636343716993396252124036014691244142382112943004162164209636299988620055878572652723035751643647857888338296878611378328506095827315363569652625438832704679176374633868178525272991552059555543517293217729437384937894996919339130683123999554609747089047700861887399135823202315241117946240658832127799157399902181419364932481009056256471893075212785547814439687897306717295352934186309151320222504540977023164330912861729277483670798858865615267071095689309233736563686506051736625806250394224385074050979646001484657126614877262889542104199876726659418093216078839023569217499926718283559754063247464413471657220590084634074657768600473123459487174247238282796750400998960356770585543768336157767702477810363250050853001208421277676672884348889503774675336238993177439817530399806938952199346504033588133351069738732742774016036410926925323204294261436277945564729956971921139548950313533173625623501469109433430147025433833438696759869754960449060578614139912292489786271602889419052676203953991576587999110546964432437108883633620793815250794779865525459251234369476034324862183000251125714004347180183319426506588671710617931336938696169501836199115643501131657309978335475688470906202687233072943370204036750721669408541722140758823642042821594431157001743740464524965810034752322285387458387820872787350103334003904425980273888288657557901854287120041459448073597181846704242285627509437528391544491682951064043936134508913425811753685011112086026464346747256403329860597648854736735549097586091442454569542799151925400767962624078436419379114521896474953040649402249663057295857971613021101802536989297288776137979801664913415060940552744323995811697378985624751878115757166579531052397546584510903183870141649441699726758698834296750214918261135024333977016161468576097601481420608785213916484267162740833126507924388551180808892036228495423322121102490423299042464701339134902018674631289639080164859305623511220901294129157830946531382964151898229540060751443277298981561521469700032279289240069433443321473035609392892625014272510655427357170287177911517262072108104712190419660985698730491902483134302833015956610544375345125325815922508071702535678600758035567720444014376651689360231549236684468717095345461770947257131524322598355917890123745071926068026763535953670631292282400081741291485143962112569235782732521200739579146095319683306689106393670847729263308068030404536010568518351815678286975251957777618546846727611625389827765139219435185096347240656126058177144793344349547285144638489279487805976163222131723531036248379706621715307383793464222563819030653078466428871855261669142251276539006953223229454953660023061626497802930571697910874591465283132568972848010485169465126513651535677833850376583313307843114906942923972470586941936124184110056465445695172836277955220767065502194544622306309603542560276735162561510026717599412281240837758650834686883239774659127524978164514709762681777727328690982153935105068397953768632961094313852738696796973168292694941645921233306937878304752828941068110393074314862868538366118922471090525485013754773360634514119600319768101364753383247766533442940279097885091570226342243051374243480503365792887952058151318287387993027773048556594563291721801636242588066897303947626797215160266514200443652445695189207431535596871069085026138368851889855571820057570044836164381484829561518968441762842007457562025758138444310370217059013836851976005643904308948940134086867065716463796050124299087669855215706637934981420695612840320858602985338730472729689766274082539872890432404257256938895697410345420664069166229326619431721600653319793822496339743295090203581238449358670078380643724816707660825333530979261673967465240419863816532203445484253686667514450298908783929951991499413820421508136035977554632260027969273681975077721317283986968455697442048611813644227355641170573659369785257536992295516044554500706700080275397980854290420812164983324475670074080383395748784655754433258979986535850234744941348954628637759080706433984742410880814247793649533142664365652227508765669706019418081542456462772592770822632022625955505923660327916217423755189429728865793114405851384158016897307578639564159948593436316259681329468270837933719642178302332311424424938596310619171364473063414671882390110047762959235118189132932901519894454243139143355916385544735710093406088215328567127964288283516888043059632845917506382361924997826379853663951055861907951830527138443866075976014885028289269622626361063437337854188384077061007828480943805475518311646143660489105764711183656993416727875217801871300633373809589747961085716685750761394643914274538578370054379919869425294446357520222341516986749185158666742803814527784434998557598376659072898734260184473248324652034242445333491747247182817307722829288333937152557301690059052463313798879219421815389573567364429988866283807641035189652186651107886952686370387081844996221847025302025772463832849869027579375154351632867744316567639635694226988909838807864306278282254010981811507501611811912723070388857106714945730326459934267057478947464342826716647811428034208244794494374381597097541643095346668686205984321557946062107460797447003588584271151427756525853095985579473253526564946352647737934467293459816254826063658456371180538334283336806925049713504575636499751112374834720724313723936153708606662091090250683728849261649821105390381136957253977884271212595215442486571618441980594095532129819846693344081691829602169652255699305795411162334405707533195027817699307383070203901483517109747695292567358504341634080637859424728606589841160829349818159383885975008654510473769560576552398272613208579165834087556361703805202964782766339221565295170910284053553843107682051212061971732316345527118575703538341534542076419843367255793328004788232746561039978174728159038344806445803691632336389622099404893768219877045504930735777210271767161807224513550274872320939890196859047488987658057953360624895595308233650524155627158266419635818684680429575639240439051747125740991365865895019314193154627793223459525214675257282333981536611946914974455538631238864376538792907809891208161589694663777824240654521862986189303182845877063073816915596536345402753034149465212893926403641489549913551620010206337267260321933402900188186786850769722425890662385340785815856057641355755428934336577680830414798057561835622355017789187587587074725187037811618417543698748703089429067745982205629861401345722889708019166252750084274155811909539220346058670046237810178984995391473509459362475107324683983631307349984323784331113270704314979759180691395724378723632082264875918926761666658340886595075223309426505574369385122664079891626174470024840208944478512525958488905821258660376703062155913309422378744922885749266135793948580980186358539622867407443076082419880052776663968960270230450781721778252570391297664864093682084676369359830861932267148230411786943202641306829875437303980039944557988343712963021658777868716354333394678478464656296786473208637786422875077285631925721104689949990660818622959572168128993776759953658042004911126719889718175909862204090590151284367032777195699495882714613244434484438699510946360604149943753183789517506062626655962883165491567918613137525493409368383803357428717550246259865055196398078258219010133748017714920826596254589307809808147038678128409699683768323297497306835814795789525266974846222705379827075891185819535210771447098119576330246424549952441973714877384809078430438425017698773926174716500867736669050471649557595403499408916806238007362893243230932587481005717794283549773688852861622800033879818752747383079418101828461360020265753115136675839094344740652351743750900437997345642296801778694063523731341504780926968463922001192659223153363659946712455183704746228345990265739543631558767119379503838481479483162833830093745814101810799512873528407547424041825435074265356179759524304781086692402217202424503164423372707924680613402401465325585921767804886875935871976163491166032699031907142164357241428882899026092933345857749383766138874385436313756425081394287832447519661650499331473552663226830381455639612223908191063214900086627922325953713159944885205003066412207571913830290345909484808565660339201989177534306657098660666606946012758929814077168872867884603233743973177466146388370877755318004951228598014770224663366004585960943848339176493724134484608391271631891000178194020447198162024203325845552115595753162379795560409219078953500139056216384481424014347988521062505512166400969627401400066854946093860358708829402883054908532164852541958017956279017354528727495546294734113178200906743534413227914713908843611154872105801626310251938019069304644891461053732915396467497841322394986862043347678337216168776715296560644597325632704005021240337664957202516710647727815757245866313727337360433222050983867578902394804271258285668835021301002008645881381232691163100254408691052394820447507211402792633860051032337014261192603847415198824375197064731000227136914086758001418991062471419257635033398795266669297554486137267109286056755303294362092105256240659824344924931914902123277793480854066063239696050929030614115499982033862729411222494653448453786998753298878397034259635994436702278270228771132580465479000730369135673592942664264850103403114493780811861873615637547401977695041899499151208284075876315417942870231613415983313779978294071129822296789131339912483692412962709801843056682521622713142662068016767159229375830831129724875037903197100924567851514078419202842312131954622150023207367911353548493146999728797805774455718080831147697540395249639401908963985526075157404770682812245154246801831809551524756572143873499576448314651795897036187000981330996925108631446092962483652329265179304210755802283728237820050670937138923671709995057056235677020648830848958710617525660750662315338660229523574710553239002602352075132324983830118406775739546291154280309068447363726119403481542283603498525112814406486387353943189986141581086373680195054906398470765735465676854567371312583035011852611943266231169734102324274351659821028332706832152871865394387083770238732162378398148730848016211007953895861333825024621056947015881255430065992220070786662095692749400802581491503214321722311743587993243210589550701942936802133389011611287939354124203817716009317306615201758018429661583549355229319352154583131979879119986145724958318439179434266617002321920532922260736324515018731580298732950316623159490593588209621323057311821662480065457964155345050823855693473540369234899075568564963082526453685582591546765241059423325130213219569696709928452264134866177711217973858922448542813366928165925772439047883173987138835463900324706918120353814335629179415918567046954143257843267829649980737017604199266331523783800789492300461221295267494706533007465786609600287594992805292209236764819900139871570043539157497339624610605834451964608451402875461936484577385343017672955278110133560336079159204525780874314818045968942786464028698697028209067744032699761474865795152019755516546458354326514241277452640524675368481490365997331234724776765910698640146336529723775357715230330755506070609133990109023800863855233459700922724920509292400342409597043634874765233793298819064472243591830257446503507804489634300719824897531039600933327774930652004467552116056727165380007920303332774005123641287413763487699190956127835981762842579602994167964870267452358433147314259845898003230605602583344508825986077045452491579445492807316173543580602889997380475114033011476897905327095974130559354508344376748838925419670485025640614024881129198743419234976630906236157548022195811808797475147688829249568945818791970130302881313495205679334039373989268359155202664031013763293655405747896366245974460175417310664735317024286398052618965405158400771785174376867040441042100094017935419209612742624322342290490320893417134439975893295956446823914170188297472241216891425970149056113656927002730837354073626149665657263444150567012280549371240681848148184976816004031597522762078692430099735354130602541648630574713260650332716220772651288424393370328179707475609861058879558613198794986971623268891311474293076026777506418336280811873165032288580394637829820641429781230544346088619184086259828425573351353238176159771187210073811793145270609054951044591911831748294657270319874166015433929990179297767791968694702938258814118149068859377049426239734168049031012245715909954318739018818192866293021178072557869792199816484395430275221115418307476199205678077100000983709666231691801244287789684861287093267146406384028850164883281372245052891832710860601729703000606190658125734816952250347490786067684637684476988125681609176772695362397527077043071412856392273698849566905656579297205844866393918462101471506773731908213232992675110857285393588285141537463627298404896117343694198304568715713548507304625712632257527434396693118709342219216553885183929017818012184060101069224155632348985828031451927382700189932632827229492415890630599481564444746267280816378472207292135661417513349197587882114121035042413249103394104204115446468250746210177417277339998797251965140345683355012146962566339771323165592112582222208136743003348364632457512227669603023620850678868324982511991439944658868776464357595169355391621517814701211160914158952584179454548548523317014148022335978651280363926174491659712642722986569166820244045076094401992962862405895371749604750051363719660603009818586050768201184836156698351520233912704476861037488313540988957515976966344346073786025457067278701293257213206145046086107981446528904082961811080390969919020160057221232380950565071603414718674625873211134425437992254866534791286524625794416233740184241125554552923857823592312992787077979617930680102213235221413975888546066084277627038448315029238952485687946303430902729859558346666092909314531911229182067523382052385771922054647032406332089032683236902953127764778340563594630977789021750485283219680053650441608282425206362339256978550784783031903687057344008319275237545807199154591541322266370153472234961187728381515966025982720964168104845905386741548489675137309195870363141179246598497470631116053462133149550897706866731708089625493822315339822462584737146016449038548089691990747426801795724782824427031735997102413465492498761140922338487893205952053812745292376048089542116917912126038067566350259776071601132024730100622298530933811131876123199643598533169328558360609101411368489223606801508407047344480166469097115933366578088096447450781987286739718800293602748251360265797158617995469636292225137257395813100765179102894220083706270222949233837653975359841060175876083977049891561152625128612208874753923001374059054802671871810855695637816090285188892611055792357331028334822960484452402099716985797345344727727597654876248447318614369438402112309794782261768834424453867261120637484965103686536937250345762819564402681552125064981418501803855980103750314094649999305093331678496070105864149769107114579301487309068293177557221644426804019829162195130629325369166072234880980498894161292048894723729620352867290396457801434712739196873529158733718740075713124937398775828170161484233738337737370807090228802675364269345188396267843961087823575633997874471656549726982454905348856274235936686110876942188960156952178597535894243372363184799206353163012150534383805762537036819620663235541034522749518921629814465418063051446367910870198218036947861640657472123503077857000637835963894391327085156078866434251225900022937482351001992837345364867027994486591672273700163324050756034171812808205550048791555731979005081826039834766717419660389876533578157742716439394987006982146877798529530411340564945038779138721155765847441099810706538239181877810603696369902570672013081745552566041998993563836035027826888833150561980224764783930937490016713250594035775729875229523240857579879667869831401959468102965696236644425926014706430322769231324591299344125618239159814817877626251017770667866481247244279749311934475890020404132797758473370539684811016303785204613543166355001154180268745779529240173645725454324368909368663128878258876573795964249465644397558944970778331196614692055557601586682658599117607315062401010561495482939631926642156107656391363568336003615899346941117394196033944893919465082822397527444124498971786565469707957252700950837260100944642736013114160931132508029798968907686876809448352919137840791070317670913191290858913139558160787773478322885454536558841788961150651426607407659158165217674969895102267722131099795168579204160785691517080353409293405008356663382348162613267360003776859516686910783943918569298785107921220552287493059993855338075095130991139473000384966256178346048188276088287311976636239742965340811247845663558983607841483999298256663958040862655944231458739733471239693725501713432532980884914520463025305925894924435986177783706075003924428953484240247455153390722664716652555557930099654174580243578338961286514092545586727637978513479946129133971238813884491640449650164847781296666535114238626827364138269291581638599431468770321535936889261282128436670946932929074883613387464220181733935070084831155089756884064371629426804531379141582652907615309929292464730215691706611218822220746916671635230120214644295222262182034896101833954528952964954941312903466652205605473969001629723035750524897863469349013606204000913298682865753473743951502411187692105494976246205179138549745980731022930979985631891191594867192741029619558701852121534783086437368609328695477745008362264727094263033775672426532611618732222373338896599452121259826492369379278507384227923291846276291252951070240196281201774068484179842869757386529804058415959020049128201000433468482454596501061918299678818356114706188104553185423722709858834419157335144917039232959976725784196859360415528275210586580326350353701181693211684978941765337554989294028784298585966651701303848652843696366781408077364629807271340611523865342639000131479524979855948638561824553961429404313175110945456464358040831080562983474303429122453561697185455356015167131427607840190738050617001890845589663797753783267261717102168375492380770956018822329788852022965056297139991579525886446390193673260356716956343231396459106074862284576043936050792607557151813422761035724216928419438183163540124709918262629300911428774514499814129605994720001609308194579799176859593174189858115406712093598425580445237082556944568173944273620826981601076901198849016331667964170379391945019598157244846092708624508142101326209373672196023097072251431474070816821764837884855409871430085710374021374314391815670668837071582472692254509282729556876678206133717945837337168612825029550453373776526121852241330984921122873799289623743554706186941979887635214626903075047887444414294409149791434470028251492081288099145945799118331229042317835078835754127879468830340519826319337806456077009497861428166652325382483072100906319378049881784222467950376146458796322012996502581242324415490604836954794987316063911605072265665035674554422738879793016622116288804091337243736129214583660639002061761046817141216166903029503973103498775645943818384934814517255140114568880878138660166544832450219232921495818384468759348532842452301348944068264276692556919863159432702988431739203343258264669943996189965987706338142731578208919684912460294604643884128903288383299248323081972396433690354359946903524682917627621117836803479875780941918555504226546605264018993643730490514830015497583973768992922761452287367115893964867470234118090802174355469957936857333731321552256030922690438342184785549411104443936625366336566721469345970899434407539314475416016042183677340030366599242611724815163793519026199017692816056149916420028304611156400668295088760659768389895855834648565442969777390631706255274236302517928293852660843390918586615809483155150029864207435954149583301788447943340319837531837151599349119119755963385184213391634509234616869410553637828834560262595461979283469785760207168755405477874645831843854236848618573296788264609354948868595904223855690555893675665951853730187978921913552783957390232293310724703341837280273787125548122877343331321191366374377109648224606471059230997902020748555332284393275799799856948447244533615153016514226140366671652796701213533876152201925386180012297405260243418033621304847939530702351783212503604529608970062818083944488697262517854218681145409066746223700014603951510609130448539091131509474318616070149692145681401716690470045459236685085731478755919269936167540467575916764578463405440031525412050664637334147914603675369557914672659970626126361900194175428315453229822665391365272235937075421427419601555046623527689321534423801253321147570755338684706578220386915354370719565579696526625850980581613497498357833882418963774725810422679684625409658867679174852298959447365936930667653256858824723400127989766738688922164544986064738255919136698645612944653610934401533138252388324542150007853821960774096660635828511235851730182383738842043140702794394824367768141130095390411588520688181219819736336402535050461437018329145366074074324880658098563637427847136799031018969351345537559852721813005890555198970640507208185143519290753082418634442006381030980157194623899088511241738433210672989407824198003565667593453300272644484239343094008595309474834998050852113851170941976461022763740225672167832980440970587679534523873602538764389694275006319740074187048840749177197597534273459635849113414513516483636345975012721583453527878296837523972866601458082070812189084107835595149445797977970558558325970606169646223917766803072291235494754695345081785026944779056134420039108093194481501910136103803555499587430797837538763902553572959416999577674968223063468838055702018582314178994272832655594147575211664289929981397402829678506237238966109145807625947468153548409133018231667400522756797256141698875516080527854551876355026137687565755883259514734785002305243559000399490087151403429894770808431943719128509044224093184681205133214498722336875230929299952760442106119725327473153971309526042685285519792216573204846737234503883629448942562624278691690370863891644618308080159186940170346702515163058515330482586753765431799009511220247536066747047360180108663414784982270134212450094376604695472101808565712597545262826136093447135217966387590118389733880274904006440103801808429930612045202938786697524599774564254962424026744275932010242340023323244399053711082864823323146510899608188720576319248730981858175909205356119514086703111714002783977117728831654321150835209937314607169412778230185345690537390031720961809855827280298841790386411135595991586765750408164674381723298951773176794093329881522962519732378715305563400080509427182507622075483859728944461613747087371122405874950310547006657424419160107179342373552765732455524598624439652479409342044576520370685343628010412996780488317076131600225175738348204121119277852074552453829742105135809176837363968441098893815230726622563166431349798494130177835411481592235324578841895797748750407111749383618279480054429108271971289465331077253990237068697174100949519415295592258124045394643331471652910783123994375104150530357822481407426927099026234671821854218401966031154761142705487725751735065509402345216339906598117313488534573073250929266434621803123899804816807518853357556664648665924734250792836322249632692365046134802253688119729749591509092607113764857177993275482052579006761891899855031232519660610850303319741372204467722911110390192434168127469950310935485090536155275454155475004713598622081448301792096919971189680666749719253510735993106344068176843124562111950070033399479969504571293992445621365137615938919987329744621257661813593793484705964328367554052564884019389636290338846581860910867613508439022083247823351160308606580357709335348630432181213748511526510118733263540689434318153084498020382484794369070462890643454752002957270956118262370806775515225965667212053565186348487781756075504688359326767935812728907435871013613465561485887354782235713347686896939823945213319797892791964729564091631360566431589582917817691098641527844735440566621658217539120449490157870246922152146629990973604004865641711800410754396862671316632480664909735243940374786288154855507399200171024223864592998583439983913590480322498201252845110568053821955074853296921136022496940275997239237869268681470790042855576281079276499525814405299821866508933116229984826109021969888739986551389087240394350778748563052586813152807002252222151913223587303811895635296545663501089962043544490489835209897466132711078201355710315709241782180685822013804447645986202211318530572272601085386786402221172644424841953415516119445719246785927956769165022754401281333579270101075292730250622900171264215346915315130666316972885935547774554600463186706511701766800267133198913530138029233718629281745098321344698959819358244625541107817277652026552783282070329068456529491227927765776839150602527967208367266957255323218518950751137776364363913156934027116426478132942590306658313366303700773303565799760266349475581187768181143418319038544235296104463948569957836559481773230409681164888877994835616783149282388276470366120048440966503478686506241335297642413077878585275769282704741863327876455852507236084592288312173715938979273420174687222261055111593324246612168172153757693396891886947150682335770238518541710704793294670477081681649205693297013774896940921184639114370481033974047398741107071765058982642897863978688637744981607269016515239951268222149351905249663386942946965818495188718258230941851803097692615399537172927900998443382781119280628173157007836547660109142909613239806098420016210953359699192370821499759023091774668714925251770786673802615536825208151889455498890916849513489549148865953014936134922974097727174066144427337538788485434952677831770037951073338374867289716557736272827950942257295494047253870890170761975136007676878933688485817840054890154767034532125531012808379607087739599454240894429654126318096316330172206659017247618241609537362817535887281775497334446825530613358917726697580648806327556177402757781405625366110697007045904768920518775620653306803263275737289290092124350385278051509781424398430307852499279058598134634316657529252227025049511100567351336473422268779849473146932777279155309218167540601635698615521674625975909209536078323250500530956461532357735594894879699501757292745717958078131325023104258528592597123246299614786255661530586950167473659676009190021768231781293386867275268639311742698630638196373834095860080394353433775763519642166271776444455718364602866997625117404422397598680905036514909845304805482369178840234373923145842085873860444658940932639612171656370031277509067945586122870564421040259713142310564241606098023817670440209191930552926687748347566644240574063693816965736506856485361671780811085191087650730760823981704931595757060409467225112189765927270119672621435879095927929976504423228378315049945191331909425558376308602104608867076342484276132261669567675966409774167721941290931012283398623096798469674731279274415395276506036291294510744675212571236881037482538003106572725283176562938251678573415118483548284445263228940826597877380154988227745143620373115862804496269643485945388981213045583108281992855784161177744340053782452962953635775191351858556572040537015614931469926023103028654180839241441233330582562178028568679126669670271038253888797614718854039886913893237810000068576309705292059565962489303311193356541308023689126091233394331304802175381890338770002341978620089234007105142618932269691592887251763981796835251837098124423375643194382489702489673342730945154680230496245448173392161131433508734823434745451300139090432586951443646172445787535011651630108204023050165125570596345220320397290551626306787485412047182569503969202284510454159887718458960252216755874930849839729785910539573002702799718890074014119927850182928609985127756889932163036261716363267011168054387881463300685357936181207080254813776024697118914671733281326401828402252102038284087683603232410686731717154716641919079585932017961505410952649138003576677368255775920351974215650293694879800631719872094881483766044341522789387060839552726503306951503159797356313283350106595613634270696711015825338630234443243596655591241076868695615913420533081634619366856449962521380879098374988332416207219656206161661282263225652079044931779757496731971688042781200827856244580132615403264477059567287716206458319124241447719270290145687439441538725666688906030230700118741355123245002354575855080758943806215343108639953219184028705478777870811135627186918776141479499113969497154903225502434747996003171671873385899257935067747223083484309345939109073609382183937873205696281107517505648780569856851304596508892826329169089283459235149247170190044479814743128878375670008753105877021797987176466001952090199176024374010712050578668541758686154213597581673589802394952866128440495954208282542910625666175420625183021169235457156245974914051009227344642654146783236908482056478303634197583665568307092889320354759381962009466587049972845212650649199894031466814896542185674391728930720671407867290810140277709748162632340101223867812180904528782789654883251846939291808145991315524237618035706057468952256648830853118394349321042127073053396919606800652282952650134173632630742784324833913728038908181181275088584368002768423529155076165319903480374622360921525672880654482612623811278647849758888897397428187039647327668496508551868476090566630798043681544607083521191493580231659449317318208172205803776021970756637340201351278767902380443797046797448298043720251451537388151987233206366583545992802948577094414405364746398350767675055770093659174208589654046024888458334322397557864550976522033776074614281415077866255581582229244558597246897143509894660194935656459133556131947530218646987752775877547707142630692153244702744756828216727848355780375607975648799051575270994406451117501691061910913015546251476759024363623456939325771060980017705121027268315913895165448923136560238962293648330875188494355870581359923153374526743654622629529273827511399174265922856339035871944882232682494018563680327156394631898683527661684212591711516837560481547454590804800403694212326762040560791448905367492128553056594329766380947018971748986155063972499407217651382226667044054517586284817025710216253963518076577255813223028790362938979443205805576208583941827419166031456789209952349371335172955637165540308744294897449573648895144587580297917123340470451641249527251335695345989423765935651078552739953750283246107084096641428071439094623753637502588237385342140357143951126709527973576765276032462281669979676764096911832888842072307061186152020103012304105571159462635569476677233941533198133593460083317732070695897371520929175968435846378833364545448410421915160335266220403090144171268029852641394234734659908105262163509371092129569940521699582931506458856475103534710196620254541198520477397095315923358168461316685521843283713863021180944331861687300219684456574611456107130206336766424969106253673573632584682291055577147835098778512834474242954764424834154855392507017873260095304560447560411308180274116300920840999867576860196345835293436239670988614517685191863642648656279616837411299064234627029078984532084480692960439736047636810820509287310959477689184794279982610104683976057458256056002922779528562141458577201907796831562683201212738343234384930424851229736657302285111672961643136184650675083840957741645371389779123198330578658681455033640396593641744427926684517695901609748721644506692461868426613217468253130368796747258434611151713003816070298191529759327421401379969127453685463212712668306182323541551081455330328201820736620091064664699037577814608506648200470690977817526625338060721393139088717709927256996756331363756112772057914555883459590111580335127345640509316264648586287565526893504846138941843495304056145323357685315903403502564639582672091857135700778795698878063959336107326088825294274773381139194185976257219749433126262582503934868600030789215854719516046782520121560222423543143845531188267978582994521901475605624630446809854417045601230023909376183183414987644505106129352990893887379695147845808653736066754218295820624129427112132555112468045037828999430689390722183701396972532724402774870991865900094650416471715118904566581533926910840370227950100633122838671984321607819639558430272700173657659511603605162274330920182673615730481864721620445423169092405581317979664465064908223022308544427453519751650574115768396049802497244013180623193123365907702031507391728589126409175237815750401360767248075885984969284696790092493321344629368749076846450153051421957649364119789412877481908170485953491072065992012077828461016154823282132029448538174357312251608652050465119737136490158942806398861513723793590659333053868641093640065193420542676556253466020781626872817221969781937744630512606835958661557764161535486841912839726784120824394765724805572726336357980469616831281068495318640173734327641750197651150836512783360890237018570663308619444411798992118349983929682681655701351138648081316377245944865873415871884005662020899467682911021561766194967193878211425519756546812929259403809962742591096444397102577060892487469492048333159140207610342394359957129441142878251978223779826667596369116903741583205095229822844464990587635869797156068327757925986871964801064842333670939577833004238153287977984383302113675621327704293745630417757320849651572702669772820843718359995431145519289434075446481377127518845586563004815039920241467731682891183210006934862148909180996731124651139074915406178448409276746809041108250567807970811922785501863529391101967120676667251808996090063126030300153979568380257471102941367449563489161036658744837449773306870129865028932668577190156622995443298284217044054731954301906889985954333115195663746244214755935498461823147831736172823428480231199269507494254666256752176665036227656622660157367980305009970547542120429478109415302989367201559325475162813644934215841912968792950550124273470822080106222770570362659613048435154427290850073552172719924357352620992849052646790764020081072920269166642831580814695207446926953068802094675836605369503923623338418488508155749630975639638240384285654005974526919684381467766080282482709117172667786049253616066089829774103386064412692167508651387062781298921966778355786592314775494151517677481222260850570676916536023991176185024033893043090654381608206236146197420770454005109566600530013080003021063482578715880141035721341967835048385564438186184661383440251454015571417296096816747603285282608093341248062063905960841847595719403195936337673422971683781042385974144030125061275975089270681965002146441449088641142034332688665910171454153313878333800316640522698374230276004764721805212711883632024042245968237873837377811024930241634442871448643781868180073420054373889668262161060608523822484695085585023891391851517855116519460530625323826758318766059301998147705324276796756986320852361471991946253212338377986226801942089571974301270771237140902350094254290637335783912609963721818968522288431672264216581672840350418106089987338016414418085657028436197501795731309332691959598157732359637455038178739800179013400869298330906134358036726775086198191376648713291812943925705206889858946476167147214514008183704614990877252176589897022071891612432017700910827478481548223018298138957369476616464372147113670576037636705675419198222346115631934282352258600822020913057687118227977132721238441366369091222404166797887128640680680297565153806501253742132853469151907403625414081222381306847382339913335126182818861542658805714284309495943877035289652197216648788996747125314710856407064913067860946929537459364164056817074950545504978957388315602318087591135976463009428179642115187227418288363887172664853911168999673467410899939837877339701460912139438741615726097287606782834396119587883688271179927109131220639760317513965842456707660919021352037275753296540826103416254112990355180948045228102272961372824308746203839247947331493487503798947891492772826566691890769881438980254505104232733916550212980390301375075495465841976555832961275693102346882066523203975957635409882965942835382582679194889788263388836439315019728501968328575985610271655949842180201488394983970849691816693734589904110886274850020522845496985763023646006756009907707128235161999741050519398634821510604770655617979412724882966671108036821412542554729322623556537517753520856482668297712310866370797142004373910995806278172037721629177192407091040363831262086401186393101203523552644091502156816134106432990104881173627469785648748597688508343273622089413463169364715155792927234446005900233236035571651587036154960865463003544374904991434896480532609946947609744022540503846122816739205745488368700571666099806989111714547060865581443671840526233220759178503080480997837444779031838637331018318518407346065770819539670804511697470766212251144644816777937311742341359354366428741721450871743208413356200287347744998747615522915627740172250665952446269476866243719540751785038357876060322326753086908529659709975343852286277326130875798516850877814709710737860951447502655166374987425961148467393062087393082888589887261276771678698115973468904152704513116610532568138750457330171928581571184118393677462699255638148690102342604248092061278746637132810702322953418561242076397084563516568491245435831508671587990500351975477609849491760524030666292928758476156363602151776875148541121219083232597183385749602928820361775728986633224079504514122991990981444105215615941826171854310278086887776994716672482140020427197454745445828145354144449140093382093129845215959132209200946862069062049127067807184332119877934349241606762614629560785610059587743701489002472887665711699833684620265216655084454349498158120976779145591338018261433072828321093764935578616728772705481639904919610010145273301865551088136356222672980715934515503804223738071983010660233565549523973763699140830462293734761996615575621380957248900646764480302349598374846309994568645534696134178326200457105865742609876893624840617403486278113310521467955045999985517397021707450584626404811399133695753332041733054041871631863235328504254420999020911703404508751096380733575490990115126331050133901200585516481968133159074945046004580763989166005564386876445463845107489412391243630260703595531210461727220336367738776449055375978753508818880059277551782506456257390551331962174105286267671946222202205740531401561064906379950566565233798343374466658919783713898358807305215257712480694365680263691254575398877085963531631136217158677956868146046242430552245938066523989727894690650757800734855924233923285445036761740493723282466057989379094881849881221859468434118311871647499882088100091198074798767516378502841109034172517457208452459846827772667552475334711294250477186229457061760980590225293155612537620299744566821753033983030273837494256060001347758352261983183357512226174170689041412975818099342627237195926530807310173585691890046023150176755633466280023429028597743802563228342514943596489002945316630492062373041238879101550160792474388958507533279110211321682923497831262470419234548617397525070368588413074009097106291154708149378736885622595271496052541516465126627307183916342313177434889012091706115941369381837871394561852090323088526927405170782694559772453894941323771335887996376951654076229239761961967198609246596923305958769512801741079753344589546188025847083751521722596668462038909601284890465489822086645462615777038617867529339428705657503973037042826822397548069957731468687520640968776865557048989603074684680491792050383782038783375439040666114533760187352343632161794694819396489378525905026851234763322223913368309513170054129167730820625271092414452907953170623029665782352246848931311537482977104912981579786295186572916633609850416947190968716609514945209368710682722393215010915556934964484264149061355104322321040391167292892229291342814256630802901472891244589505117869561758897826223883741239315405975815375303350712630616134015963883252841294801626609998934177763050214605943958442294898678925593069744603388197870883494500163760681098104433292630056925951909474121566665746964688832503601704920927677372831211936021429535613627956738886805009875367968586681487312102190952932092752833469669991293118584248209555724686341141570285510525448200572553939031708569599039981774917534660677729255354063909720272926203578795342965613351666055201279423824374340560809189558478321134465919074287460534722835339851905935239245176884696117824902985590616012374982334393968475215102879717151264287818308748201187066552791032691755320730680665048547873123751619250069893348483480627292234603790881530135391366323996133352484242578918766426715498930966623985789509422502724466517843144238085124047405456297084375252439320776825907525365101136620665677218424673779105582698955141393483339524337412275321596070985978128643265325985523794220575330875373257758311353541231668709925404781535212323618451891121288745546615410896706148384416716561272473860680241614540909592369344998965491920406551426790080607780971845662789102798390776796965052444173859687704277885103249068894654864035864131286958500435604732871703775392364382384226317902434727498491257992176244081829065847093675761695849463202970799858739979691680492051740867124313412884263196192332879399699152983427760544357973242784857787238194236748967400708743436977773201110268441607670692913876644791325432054265065904060977583666218769584542976982176237306642799840230513382240239961314971431433705099634276652709395333482998161600090044049145559027577689247723829404246115616910514508281613270235645644529683337345998928154849565896211111379413567804310357894754172205045936000108146746259556694290979840115832894494554822120822815802938502308584278917823989961892122594877015385194305542404542049715865454500385401030275772736930367859325742375028731461891274384595411987154815716985483107920939107581182131914307107848540985124914267572863952061407362487321954223215225023546581456396368207568108285395095036986204826634773321003819437869761399323694499140315380321767703284959051849384178778130605216123725385361224506023486703191841345472582010162705578114865306380987727126896180139766443949902468634010270679017806189408261611974628805080067645343246073380325305660314661460357519973378121417777977220297865351535760126524182791600140000094657795228022754342024655671392574128558910976043003164327160435650061570832326702437359271954500599807581619518722162735243738508163312147406765488110571543049172959646150142679412933723360131585598848028870217898931160730611839011439782348913344844425797662200956931147196415412560368931485349881706979356056558839104169606083329900568704421749992022366485793658267255724900818661360952609015144115443805550357296129513735725350847744887867550977165773291833602473224877917035482355835469151179000706482749033223612651449570457990024674350794961207532635164014613834003547830605843307862599195765589178636908014364810000885199179770256109408660964093649644549928195187193547602120560724723014604697220568858583988437853150169750455628949134217067090891738639241783740979896040952036642500311603929404061747852430620862744759517419209679676481270469228911576284178417603524424104898861179443832323148285209073248450853941036875672453153550978117208466451307778711474152236263013728638906668336804970697204292179881552424555807280835384166078642404104210310492737110230746648013667672192463216627479729124797314816007294994986377614037939458624956662277083463897772769830849747220966078538281409897072594802218496580332433497551526269686435761969420816262020190519172148739295854016519608600727214215196065529989480642747118958583919072063101038763667187082382080823586099039001327326238753818834574235194331411914102447997821943036038749600533894746185135490986580497930625437282528369199557713704017998350422773744306340436567063146305992413499862614778738350217509084704134103057173359078954656334274548084671794134074602739821139577876444905578343375768536900088319276874411494342077558041591804575062345740162941795908275262939116475664653496123617266250352518535508247595582314762916607123758461369831165488744598372298795830407897716572123074068762471162646903233982064212011968971471918453870823353589128353234819626551198820836387600545526692299453506296247678240599196492815288350496611693623032751492594106935290054357377365079426358897782914356725135254014011973241086481290583805607337656822483379970320176656114307832212919921177619339349448179596744326325772152669738916843799361293866814383948675399292375934285972392546553135519769006968514796772500994161072932532291684608832494967646690072013414374970835209854498960098996612489018435214528516774477893703237150352394813758625268044106569826443737288622956518561141927937916152787056258950967974638752704723148687936279672848013871706307347314100318693126683832988293072429486054810421341685129847799788842900964515578287823895063593979371362599209560957979614878080109034731487553525060070439856333973506831471751393358849463766320900083729442907455665487575525341834912679772513535051542378008638214572949525027561696691102170005328665959373678729167795992647199527184511538816232974568617360472932038798093459616894792434304008202541313924434860386581467917991211297276769025750344396035717548105949719260223610232666752421705964367926536974698004588963576212262131689202973494012489962224775408923277200805495405446426025401296361492405699729529653208926646956945656709720659111608007495740465643050729440530073590289609317863630525690111523398800696217256568844524579375407132141842070380376319954936979122211550151794014655406394268966703975608194257642641245360063830702854351121876701651486001366123676491633662837067429850065607156285023591197891379197356859952603529728621800497945869706727474646565757721185671465142010502083037469751902745040457242341107236073907673719829547832551607292814802861270135409640879714217284481275738300916095766318468671975194109318599415541558494622170740018671461510372759579261622165007156895832405777816560543135241709845055165008617038810811278140355361044514509426992350857804923939222911231910730939769127618259113137371247535599536190893599447383820139832748837368406773162509319019151251263762840202982147091096672021694248461673377476874405757254570800757333729634040624874259830707759831247814083814233195858695560687228856878757559725432672708715766632710101215418000664941158846325607889384729834127144764263553697712165977311089356368848696475568106984876004297952581859679293845822462811138448684024606643783894644712877998925532232327167305171221275554838209829316539820981846565937759009515119188062629565856812476747992223257347570618592609210354037700132790334033517556535395867399137897141832289033829705585462152581239138529825021392798054666713820852188585222546228518575909857211028222637657279201942689720505166723288060301982326111209465944072276342222141096720604735459465608550274741945492781110715598337025127109514299801679767150647997969920624234995782691410191341802097667633038379833226458410080867092489187395356069046891710017101769647481039094102788807614271319673630480688672258525044981918995166902889203870241911112656413820771295543099135902379160521926992100786672977387810572068655332130322699733078634791097540590156040546658518276279908551256672799141905065688150680088744630522982836033638258219946283932417833366312456096741463531024900433853678286670764469162847755358307207108159475136954965289358306188130078834648961393857029061753987747135743391090609034090806960683991299820150597363804918589605154783139086462778538684504674530496957125287656771492453899468582640166037700934110985893199683747303629258775102734626596968255174536520360910398665736707724054322636426155912868942966920374879409417002270305287522421858854128175286873213589884872885012084353709591525100630342642684122483507149190543079718041848279108136007228768743574139821180548167877278466308630589927383035240344321961515477725397853925575858465947106976406448717881249738322388501016778142106213051660307258189867891722704366738464410323973282289081345846892849691800347022853760412294439316957972396989948959540360699505325083969311835027919689782734172090914429321593113224592730561672430529895668301545765221508973213487597005800368425734580705678285020713035185345855002885866468645964070553007069998392239597018176709842174171079590583612564986945522433167618374489656048572888225156883040973757941646034251954682320444575280681904028051223451861464541953548801658468800694829802523015937018344990005492379667717467241415081776779852245570990042833447241113953640349820782720361739112745454577618755451527878126855761121490186726185288197662659578144604388798678488636583368261163621686114915416614115253858239549226377870211203246390255160715693052959322472064338295891608561568613661882800369274320210433947553481792038070449176670990993084261374189463195887172503076767249898843363267183725930847560576370813979803778686453720267363347670947644010173227695572580863357223163820317339744663837911829550925133975044114150199246310431406708927348188951633595297202736567502655010653566368828916330090088463447537885178680884358850186246793244466736887797047514858856945203801862564344959741406614660188815534995934113145031415335172511040359919171672953055226819856365236380037270435016960879895824286402020234218814858957116805415723946485881939236215302598611473445656080289318990624755870540616824133286014781208535308767933472336871373146825275157502982923204563621055368027252926756454241079924174628518445669534013408743313031508773038107101160552331555588229353222187553594875076906682468163927354884107446544238400345862637598115723228112854131280223386945061367260671421062426220410182405458165084942989361829552673857484446602941132257553685567500508965593305460013077978509548911417059436789817518076355855718216476915132318303281509706697053097338775439033865834613664601610504432640357222566233739403187558701239834525795058781891051459960097444998724752658191851988817822048413462447656533397171057755682471788465401852900209714352113980092397000580587615146097490441560044944892741656314779826839224904133844981605884182499451784186227340450539052385932694021124497075250137172386906975976778929671367740949895014375222405582992894608516786249460021495141706029522813111457489964360179928470214231986105937445196867296092742784187358479435794478008564675659875606974969712764027975194690567120020088938601704072344116814736906872333069254271255149292478507037223098441968152237577006965726762958485760126495315927142937095604696014427924763983543544257579179972725857000506897254816168266706621508026901318027715512302491366391239059796641084799364048276004015280962000123092522900009752475164634067589250335549237345970050599373548719738427355329019111832916070409716461380878744155406758315640975280787355488982996401014256090728484337507188151569157483557774185146584964403900164151319160743435356975281424464509992037765550644639169565488347053703656028163822485399332688456696954189392203169295861399415107393567818194658510234360211951521888113347846778692241837814867796632993370487566134555391158524910565344576800878979058669119743639742196836259425713122116525926926651191986245147187939215871748324092878314003152092562981453702212292869625363803387057742037736806893793268824407612522393098291933339594053709156603765015559554500332346266588588008028652883310462423310229207893462505679439423930567695558269937017722920175476089245827622904638661727500710966818315302898526055146025345198269796903300126018328295236323319987543352013900404605784587105970960408243120187874267121540892285144630032953957289399700113586272307441608163488270889993791326238038094681521257305009540347273221010981687186100295422193658593890521989597374876438706697413649029381570586816291309870722613913485989111922433987124840183389945233590913821408800105730063878714111827872988710118151770120812592942098182572103206122363214012541573678434040683155784759619713481338174366553636727589975706581111392575715841328710463070667139225852295930236619809040756613902572056627744027171088020420629008657587923587647718273182489558173046793691641464583999947501632726716690445565038245139076545549857360770423699763791582273310040762555543685592485535810371054467808646405253710935981084880260685925241540987175871251105662955033403422838801928777178392193622756548181999593142511417793059598914747200719497662397810868401160015764373142861477925201048135359211385211533836763282492277309309558417268914334308433957581301829599906717220165961827347996991714786499028841768570001238094865399484737416094036482640518697014882828818700475507397394751045227150117494797269118398934713739445681806824746489674584411720788141011768233311013057678136739416535313687717283879332291070743889211671033059659186679536598578021941331318879994870337158249174320148460797521357842467469935418223849159551230874565576495979692815547979764418387350060572695214148579403034671123865864213295160717425497749596788209092002838752395214776397372055866696325647650100564277676731979638005853289787516125453186654060132025652469132115241249936641595485678485643063674145136197142700384814083286347523681620034332405452526388519339781199193974046820526855140687556237005334919037182776806569063267863762750748720043800816357232966050333914366791258663490245471590927779764195413043884857852274949863535294057838152444897120547936424063174244674375443878072293881160548611872324751804103025212195231574232794219644816218662962156316575678663708755458853654200832859611290652001203487166989666806121399803811451045709509434834796698286292777342541197727998019312984825706928209028551775978062213021498823037682833708051446442054787627210533006144902942674644848141303748437802551521365891909125526492381655832702488369793950920407841368781682659934648754137466742197618986368110465049013043776335624834006570940917936012045939020754460788871943879771402406615519565283692660794011870510876521850351168916650991150163617909797111623570100114356308334639165619334284288326954635302998773395538996722216988664943774973995401821136779358202053325813059021535854771500729409476396490679463439230607368091640788550022115060685598921829273225759620414386693433509018887496357724699362705905271897463925997006805678732775956961078334776555621042349686718206131137926303399635435833749858421790434409872866441635285242064533993890838744825124506874115344811029128604037010525735439573989920253746027197353334116942395340936216288471672061466058999779376957872193748220346504240492242138256180460649769555157758004286822328549102222410820461031882634745524331277284283896322358741772470746994326925376573725821183493304280387484318372298402131308705583010808510919218374368676308175966068978762617669566027468896317037933409086985242774260210145454297358168993948218140232674376456812154140112092917161396714610555217910848567802971171891111819597384259217400939735865391531026945652620758393169988391160120958268534403934685550259537054558340357790601333657339486706748215385715404398915802518077757025696772894731902267367817582208523168919421219956495994750944942251391514802764034659446074066021173389060796089053972875387597977423766359523455002298966154300458405172819181089610452480505276513623608551607231284137961337238259171871557344158867459511864095136424699009109526488338973491144881260256966254924430498746616102633129697099072051720812042630071183301073323551225418269210540463034331568265253921850655467533868410852812387489063620487570906711138523924319832266907036196318878984234644578075129174962964450296917435311206252880266634992536623409851070972164538213509572524594723812546831423431630083536860098493136191502808212622750848343471080578358775533305701184566746818872485915890097209692269686106675297900850964471294552069865502643860378149049784090718282762717517396411543857145077463536999043800137588901121173835595142543764260964916444277705396950849720475999281724994530842688702950443469565944845269403679181231146754041701098836864653415974007859689949419504150376860731606228959857302050962572396987493127460931973920962842991431099510620799429468417985126564280683226683132705043882455137530288233936767753673884574463374024437451991008041288538695879563493782292155933281355570632402685035871032390759845330026865393186794143077548129031405021978784813615480196942708133229007243881229316449853567982283673123868614417096512763987083639016632083383054731302466199591645507599942244057972284212163619407471801478813600584466811670578992314109212352628738925884285805789567706407843700166516062066738422564719553838236616623248608178672773288400459180469304466386924162200880088114361546923276209531564332592637624089094279988034205064461820159467137561146440283101118661723956176599905055884464018816785014556357775059542844195920374422425432488906919086532316709072113317625426331909473881956679622538059980389521123945505150015203073452266977144566921729972765587103300818136805175414065722568769627947979018484909909194831306527040371871321241277899728843636871766900385799516120423105959500254611743954820706675328591177715231428192635305777746972761713550064026112914674398109938872422346189984005685006564828724998673418661144503061507304637001877912007855406011097756191325464669035641365333266492016991899208306936409451782572345366205135641842038680645072329316119047649141498415691300646918810213549828184096426593175546984141375719212262560720913372435338821991294915060547269452553526669719412172856541418918641690858199667541456954431249492625121713922512037532604130170193665242083021002762529991418981721416503476778921365696101446759478722558010776111640951094892001573987833041402898235455347431609944056366322951145582309022615020126616649971143486206947781730257585695226586175354656025074306992858922946123015961427926261407133441438491896524870727041795692285127909038191439718176977533770502669851657171880290126897817814751415380265458191453123155233487237619323076640324976613691790227991905728545834880988353214891632306498889385274943720280625283695661577140337113715456787464095341299981857840784464635654690666338503196819045778338778808391136152110322105684015413881009485205788022798514448204484814603338165950847718580209423679764678555476972454653145217140422475068615627703196006163253127122340295026473181830762731114623609249370582383189295201606430826052277290542826085712078246795518735904321426249837845899285682395265970137330844015643625166018224927547566424848782381063820671031386138242564319452503918704463653332859045224165612525231394667620049458281721319868684352226143786198868677071387383433596980766243774599013183251984864306169162443794234386871372594975662667731323461717963825482617589060004634625583661989677710724491016413993704821781289832714610586532481319307586851380996246916492982867745046148381826248047251559375947499814124054712706782249795906060049172729493050766896005765081507717538576108606802528544537318760586108454263832946147094583486881283613275015566155373765409795025925223608337661113872501604709734384119179787694083179568177920135362963049243581696374279637040398052834156266868501949972307719707208006865266371394379528173651052108128197248629350555143836815522086264979178138687990489851130830335375654097961605166014511194303316128874457405815057218494354146396111435790156194682823318598233405767112421926820231166475726537442439707877449941604225578465239058389268482629967324970026252971930011449335692141683848655947169073485066261805185899978678362012430860609956230102969189911802622486148192429974843183984323567942461595189953375967631498528361707902889765118859266428001207072353223617055973292557666359855525167930953975771811084794917333889240969439880034212474065715788791190299635244581261641441694636222189932701865101813376448162694088466973746598747570298402048056687847516198658012817029081009963798531208146473941808036795815257082550065807502643304727062928545580730227150651956119519015239672164953920397380795769441528711891749786291082452123974814441651347210460231856417843401339308210424008552404932885275003560683459689853635729814225766382996287040674679363650258235417482391058040044499122858685658379958779545383972217485528318109655205531769604977469180292282385802231438088037527636808011791163917173557263394046102123186703636638444769897550584204338993832170308553867611417076849619509759241476467487966234900995205617964148067192537378506258898813018209891129577834494757741106836369898584468497121332384062840518906361003430610097781035900931489804543727921715469396173300954642920315387781903369139282691460246206238384258474180670577336894221617511644507493530973696878834106034601773010453630743423149452108642729656981991995009304868924788678494497670003125398435164589888943152016869249053995060023128025696464918579296013019904237568074922247614793549877265692982726410761634417873559699114303519455595304796368259281448632767783681578063931988525716679844798756536181454726782011034713601695957294785070583039902250421561572883059969823220220893616762148449994230336287862592414265009381060617493163416065175030695362262421829123416369357038529370521263835486847281237992707990639879459811100970755846805285479938162903998058703406676716311853822076159325048912547913923921402445914245358662622466473655165618448918851929999768999924637706135235559534527418185169854365063959560493656664143564692567268620124607969500200502179306402687212127149970615712873039310586125940241189550320734879183999259145149733828157011721041064264297715047758475254646536302272897800268399212081461633914204926398644673620915991564107787212671722783286097206784496513233193201981946558047729299414473165091256666748407129008754919093831120694382084715106998118894296637087537082530327685530913961353935785544650721276420822270136253758156511605825371302557245478606956550749285818762401823206396281906911776907681591186054247952468761015315194966232568579528185601928720688270752783183164072928341227682065435227082895627090598256307518699955670957138266817183537610990410592069841462241640148721043548521858604023714598930063472587394271362713051641790357129221383021727632177153463597039587043770522103254580292830479285055201050116873812492694635790236529711061562494804313188736007048505847169674896031955492420388260552930297699951751080394597323957405543701422401764207733479046956169616080430748401633882937194319442027120763600445618858314652159245987858170892285178766282217004422621630381158485954399151027884200717440646381476515716734805810325180553903338065458263211717020778385475330600527972803398043440639513167689321624145682253335074331258660475978940500838005288654891209613294261967854517272060286383423831343507534601510410485967688305457520514675722968752473806822454724288377120655678692287285988727282411067463890734395877025483209614813215682127962923355424936298864538278162394214504504112551250396732396761214111561658170693293974908150018995101488304063884871411984923614352461144983181889443650913809571760607282006255970066037620806913268316596160123288789320631468623372336076369203620176953357342236505349880396714087988952085886833358591819598868594123733286318177649264034606519102024889811760140657672157846649501936174278212421223163022227540520597126337564160906169462501085936438294273812503830934157674868707052545211319876014633257084731903550018260465471874637195985266515346269537950889415735706199826835477728214647011495457010613614561803314815865539242429949606225035602506931401092860229027285325285852145105081299507120140964496153773283823522469876790709434237521267207683723351762655222617380451629655946009617461297577912941331702506687009872699015459050913665909394510660315412107356579246400400419533839880872659669592242298015036484272639783690530027577660615814885874966334795764218408907272324468103645279387440204209339139000208906282624016451043273051330750505303526434316244166078004755601434731359666486437349185911704564555948458585276632032248174254232269243520163935931784474958792591385835340982469197711884522118987691202806545714099407686140912439808244850985063218450339356505541314037450567742260701376175876651662918448418032022738631679859638476628543803870425679369274679856838125197051606335172672398795213426522600960516027148671669819618962701466480953274527555374989740841269171167597075971420086258770182296537723898865407873925888074059842502492772633110614227803938079518998799408508540026960397539173471796172117638681968067615116683856321707515723384301562474796532414163633501271430157619640909555548272406896811517343423933947374851133105176286767558926941108452706932711633230817110491552539539467377796429784892088157079865375586559676598416279853039760624467859669588391394690505503094969972463898070562447935360315805877893383008109220804416646362948352959504849844232948848354064945890879989708241816249557719783925485390969907548541019519194955981375710275305056814182299394110361104132181051675539951751695519560806965898946458247732578934246842644682204194273073603734408480473580749688525282383523105192305638536702566947779689977480212043647985521669562652561098436998454260552426728498691499403306311289991659560343148671751713355101077898517959632392329953011295999443950552175351812978960491487301278533580772072909945290756355131412804896389225858292934043518953099169664596469562914868010994610029265920063136046277702795546861390165735012238514067877830738198018033626836268446420251192866851437762219239371871885458140942007166552720188073783393813919804341498786131242621622380621785835895386744672756988494210880225545496203262164658107309754805266449802659605862156690858297206072346722237042167250493535727251020883818264225442156942217347344315079467210997493432585232665673802571197271386849083962780714382672877619464339645545372718989998412143682021760264343297691209302325877916884643711983398791026505201968185229647681220556756510918942633173859111928724736726900865447849321615480533784438374387222692850376444084192604969134037504438205169217598507133412239514971651559135015901425832490949999362266448305112284738696228348186627673955084717403892808925065756953796402415529047355095015005191660004007251632553567490996818185751004983417342185764460362398569892605310279506093644187548173881651817009925251249214571301815156833653470465591669345578109894705051144697573442955643942171325717058482053597730953775822067665020607933105947956140724615273842548121977815203785751902149434855147171923109894756696705038655885363882442027087803923224747958436229475857852300364705449288307502196533287217810520352012331816423630547499628510913020949149503981068070060007588422282034088636783190424069296367747232518569569124954291532326340457038916722405234255129133237193283897975473136930931879333316190507694753880626560474827181166010675651047733545843042917640037573613542187767371024537389224269102994700967883495967408601094949813401616134379708920189233771035274894498772237382113205853569879252790026485536623620278506807913849704596050912242066797975851776050492833009342896678722086632882119870701782598965407008488684352388866833514997446062503076575308497201506946383524228155736185053597761124992965080625651585261829223690557584699589082004614763157235702005149404691746443525832443484222582955164497240009348938314425484472132913907250731087946447795026032215085300660371034863807272171083357180886539203259941867593177849167734650179621310053342348620747155307110673323358933860793823215623017564504607268578132151165233947428753569042594516904275624877608099912616234890240790215472478894172269865211988605820851692928718509921788759698653436862437684109775061130878507564425594535064467440189408679365659030522023864219302805404125795056694749972513709646104271409679380058148849277974689774715539135212065364912359820845067020484014569709627747043645169989959866593232858304544914769751738343572978442262668520198111578300817806006293255745203425942614522983953656269370785791148491722352711073701738339379865143476671171422170520795103239008384163865080121285001462313475289219062895952012923787409206948174739701333612526820808694475385960384269607390657618806676839124695070490336071865532619464278068599068350817941811060041135751781611826694193422206657183252823842703765573611175779787591991549823874424782091121541262120366736511828400802820531279515464962610206083707051844284356164595047057728075909160356277101275319031108822639875092340671393260357930236678778945960315521400071747254405377357706932933688503876529636269989818460934067822925308999205822736313984289880572482304725944869239676809876111745512616582503059295434351786142310974187573994093231275222526685107898835069484701319770141313019238342675282042231814470170853949902887268252597121386825617249438503656815548135639518661394806071970220613140510645613764438346887894303041089747505452457613888057320951919506860983770589034686848233317341155608308823686323701556644945315523623568493347504457974981053514471420824327552366508164549463276256777133733851079642322420388350623274273449678930166913016573820944374626951793565256651909253914976587501008357884289567292143574049912446038484501995621339311404612647011715912572257288183432091226022528949381177340480716509068830020085598300818485817595332407568370480445351706872681094771647323763092562991682100241999547424913974148915124047085929977559710068625419625603919994578395094587372812111770677293759582123504330796687988851720392009736907815460875301532308996791277788806725804371420965821408808160180904836748938186788984857560002786009226198600747361882328488887665275977362699777684234926397579262853566454916812656563551272066109728487835082200434218270613634148929456667247317413696062318686183647611780809155254480978185823873829376695291357073674538405619306016783176935270619332814685221209097873287488922542283947218238835700815753843039672876942775690523523118324691393099719681328012740736134959105202353753173731882058381933012052046359363156993246115160684277431857816623186780413287365907770648109239726120506293870034583439466201965961827766143998743091893716003459143017498254434984496299428427514117526711405410056535340989352881181438176609617905082624396001723160283083353116055151949670995938496236746909661047755398464690801407053830380350122405873865027415158696771143060373155421017849992094536908539553678151055010872168793510310020011471027505945284962831889286937330976107948889424774082538847859037743488541731523539443023864843286542210590434186584879013778575244678859637908399816403638958163732104832330116845004482565508446026433795108785432592286354022072220118541139587508947021614583287780796948597720253960586898601617660768140270444758894535096312123233994471875895395061907664346797246515089200138690456073548855690412004147502837300495210603179612968524093340100627321146352083315250124656549041998548910567369320201996810208878751916234682671032830946063999679754869914493223625051871502037833842132187651508769279696320582327327276514947138239921448847457086238563025185532278890966379572158666632077405416485554714634302365269044020286615390407563413601077229757855674310439244554879136479934176466438164935936915289121398838217389870386665527935329342443412370704756231731271427769336505350496551850766268456587611179375591341367780048147781344119977653678319103474999109857141220784133992022698311946406362983049009876355517554299640435475582821142921942633445296664545849650833660453979920381112515855604869053415033144069763456031219354225112340423794307346033965923235523555781943862103137518238967498537576444903945229170959850399361887026802822897210504995783923382026355414280294348260631768277623370415632661329165689807761273215623830299883976260978841193428388062251018731039973420585310050004419525216184020109729630105703434203216602066161773026230886848128547203457034256039094991000883383255571863213144223560391484186248846208484519082950450936938069606520134344303074539771740279478317881281917912626851798724583237449133633001248469536100939066049194966746758527112820992581086971430257187909127747349443906662730517937997450067883361670104581199986135390377876546201504871375166559377234859551726620714615336127303542949929569820841174616670446766009309559729744190710301896814188770527324020764650478966139329662118533124973073117272411916828507867288498358912880059512100096355665413521644361129746927093512428730369065831346667046394866924508538283145617576686301365911725884262682198344202357285371764958656504691355589941248211929031362523658200969734500076655589490423431781616763331014769017892448036034684722090655978819320810563476655473591054980218269035790319555977642814147705000214940479231194934974103972423956445353531489887273937622495088417054692691171122964752677994386878253794735333190068579732176071534729734220101390476995490040447426413827897839402745460408074923634903446008680374049244351428407125048663289840966458076883501348758663747100981925915441211527092938677644285806480673725321476348518191250382741061766953598553687574051751820731644963339879243307517997427677769573544257168220909665802646403543074484305348282315344313640685579330860552677942900648055343409226964850458976580094308839906116376139130226559470552324390050046629001789461525043428035548401076374107742989568684173204493958850860980610753021781163343864027871216918685756356443597317904331367022793944241703363529678677177963623172009188843392898838238750584957554862290119769330094494643355338348205935725476329947255359874536444269250746432318127060404133036757146348951748221006341625195718812748694915251803178232594915781307800635555268186119539879060160900630412417838782341877856344879610441982997787916963217114614580500718809524066127852321186498412585419163795392617438296386707656487268443703939878060221810143878374233786868966655592147303813901247241535760162227377268460555619091116783395233172187811572576886678971739887112970906028604502437011532486480701284468730407447347081071778151433029341190303333306232879070863291605282506043444816856690935882686592225373057495064308621418450588802355817765230864090739468937290023824926660078574184924528325548015128433308099865560217161052262650590245403205043180391285681962575977922597950883197162835555363854625676016047559438803128473563718354160836330745747210401600987733132676925605408007797592989091349530399375887283025797290799898707021168232112855850627207625287055070580330025789203222651797749654695180051132918140192507109954818945514189433422607494759639701414706761428382034984045695719649193287443427991582877995678474689631398163754021915560783762233350480505228995330718659789892267005912554334794256600231843894832302960228539172109283043172941250985126195604716789698500606406879181244467631061931187976199472191874350254390388336716192840569697118547523369602839092458487920070845791502221763289677880077278223218196723784955974226138594784619024404516238861313963804270243356025607888098871795589185973881277137589081099550811457303134135761519140180865996872347311149278491174164960210839455351297145279426665029710370270208991638477884611009365019092780876195011644571594831193728694200081964573037312099846614592840414792913499160204699958759692978146444455369098803987623903326153300414570744447369345133058443900660828362914803149412199755331234956926442317409942161181699387104806127164097263749150888821567074250592895853244374237300553892595642317645626688004072219538465325556219396616192806940952303137688244179178231152767930042909760620523941832011748237255592871320614320808687615555737983079546884794445001640153301804194224339183699228278973155751399434075481579950924654671270569748050119441343963685658657596063313415367504851539554108035336305718775626881766810539310089555066839247889128945813759370018025280477045656095592494386848462432464540703369022336445421199567890103189673435805192321424924126691207649866497201355220234594303973536604350509314671333497133484088375376157833671767989701490060124847112359936153805524524759024274222169505643092505960748956034937419622383089241214862333211577336515184950626258102994989311078195515061774613603341981283782945306593537222040285020780794720405271063174276530773092260384950410647669939685569710751862581907949660631579555879407801129959303602889294809332396781096644753751014157229966336640855411435917452613777362688449717991059254400187596956482290746590315727617322229738299385866145377756454674655154007609837558494732990398590755179942151938818752322236921132774491184355158884203799749880628561393051095769773821556471353300035660617211738578771472723575690879077979544387266449111718834635046003773600210131496054036113364808919451744216509752268859968553205680700436874965095243216022993603870785541809531214493044608188668034285289400513218774463195660382473740280377164469509615315538377143157033571554541968065477418743809892106524965865309886636627074348745580248168249933041200642020868938799400140151703899868879905512345477055557022355215825003858571340904030107224616437687972996603703932021532278836408663924110830183169860671271801415409926760577231001585223601569532742965501495401661583152457160334182158736802626737827056827912411363629843257144866268811408083096431531261025026609648932068705162532714514007439257781817312892229310905972162765554022281581183219741398668722359349669375967244096886055937342760752623592874338723300494825980476001013792923138489471947236880993604787574915386462346660314008073669715660706024904178739203270850406375017981823026215505303420535726376079493401183362682769971402255852030268526321753400560809101534383122128624642615744398207157322289032106095936614579220272030513089958146643268473143272877257211135866901943313280306910935813718249213235891085617432899877888691651835431539662389652839929000477200607056831197425917673917336775784185495109947147293285823123989804989699004980678475928185363035310347900591765668527532504096815558871161775024285738546753616359700820920453836881268588236638173520442949954273845144602512658238082395228781888327539231733204007415667523475002823927901271701976658253288008784817290947400350217447651408450064603577975061127269954042908814810850830258274595445585719502276916169505404982858829054301449076753543069287129087719807013142729733188194109828772832456648895183436132046042364986457835219984857908537456223540207785341181092087574949308183864585864279116455262771547799858346920097237540112984210115600634352590097766745188019019606551864285802371930249956809130243766434497064427308364133861223339166524088439409565318411501554026764525566444525695671512319566818001704860640091421345627806135888357527660999847944438293088972557775732833463866990927594078259281103041091200667858906157541677337813395641512443464651623874421571535667129219296875589131961191896943401862085742428676838614143513955870012331468682547715256375715134387919354018727175085847358065339274052933652794938737043854334418371440455759038498444519662764921541284128218676072371762612659926920181141121125613542724587722974596292639744712412941028470021734447940750937782771087108661925188588726670118797645112766636794834402270352728010290443869557040050804077904781779129030503011888941167164345649113269256109485265306684171510851497082043713951530734807424107649232381517463822680758809972614399257207727692759176730793258553685516735170174619056657217773683256140868362327953983426692521970420881669103417458789760095808400407337641416197208227627781761669989833261422566959172580092495327948908886531704997521647897536176466403975490993212403044025454537510707287741979085608753781396483509417684714148529474498387556180353196222431347080166600547091099002819138703570853911630704332031520433197549719196766961199523259677530338323884151244694308672773174915497903118143248065716323783070598853235827475616651262716074897252024091219240843121068119009842838238895526620125835183151327651857200369232815300477988998506715510678591598691754577841949608624142343947611449617420672607507911442132330713203118989834856513622882492441474624958768686296930152081267529765358301524975058619842324151687972684270783206939409910878149463715181434513332704147904094459528781157361380646572363963643921244581859357146071726293995013337691454488415076568705064084472538185358808673649618260786954841770162393796954247196536551433173911220985203878193243976425107291285025051786961470813293450718018218694276506537850673533002782726846182629959071501632478428805750240558143360833613788774055158157708201652336491660955514077599229226484405989310956680711386511117728252464428570935456009096681716880511813711683008067576065142672883731203839366799881891919973886802964099556650353658732769845267243296544642130540782065100059436190047075192402654837435076218742250819828578839991035632689195744404373845819999579159606638924332038572761269305421843270346437804880924039811128621473647537531628728446064375137602136614221611105625733430650413797695751770481717938843827049407652767166310255498127450162961790951523426461139055545813015172573261596198301330781098708045380323954605116062774983027648363108188676128836124550862749561239236994884811442780198614517360910896194491892988540988518143823620684172078181586971339991718076443539929669640708929082585674714529715771070580879296280124419347283008140473190003982566327606392265735688674461835157004507681507465048208924264738514085782479404846153286649748899901621310802503251522288100634960881097586385119138694151066691157938191810853515736407236816735190233501643098575228141669134247583063887433164657073585689071603251060213551965724308634612570525248628087812019049670547458412907754774629366221041120948340043406971403542201215450020111738621969325692202921246372851162112190371359968589848954586405152135610609035935531935630107826112749710117265736709707000654673222908154021917821103689508952929380009667516096718427533276287580475607723960610982687154152633450942140089790127449619555606199372479167284697516972282351398412901170464246521735418621219877849583488166885513383458066959399756431439627723571179087059240203358525172162262528986669098004761701491181932016456388023486763458679742674675971706188053618806571314157567700794915934757311957762081591424214734387937368782858292195572125094790728761569985024616039562028703862747224285996363049209070081148541284331063877058158978877893535765208609687416380600990317468718520466734319077570144149076842842458942774049687731347011561928608772883209516675836480975467258580327740286999883330617611785579775005644842239224569502750650640380177490665729521612746218330190701300126284917258253756192091809411502236733479223464831491637132801895567074779402964900431567324344247847531017363134774986076428628782751657180456933998290638721272282444916889901251584316706216711393485363804034460136547749947883073895475244955887465168733024024720150817675299116901320203435028596936325263729419049687451270915472869510721626148574764869458493197765403791556484133894568248522432736327943845368907272433979605173410456851805291177525225785094796253188825728762993975379733761082893501603671705662617240442667350098415156418168793964933174595725296513144771455054343463040490069111388482073787840065036458105272204560130422821754459201465539876151386558074315876854159954987067103594745358271521781560448781469369395950216564833188089250806008998428558808186343109951521904872239794704366954098163241654715398079547706815638129075436006556857986847708499511469386335707900754235544945776722485439441955872495048428447853802747454112574467745191900663137870099711264218068412916551954084392381702308633609181657759246264045711136708949726427373762565565446902749887592776743511150761525753099706945137508174746722981324748723407672192956461738426312677258887602725085695346032490814671989292290112727359628991991864787154770583244778679033528636080706826474238446635726377727993275903665062886045746835605428084040309165918777073168176383817687659897430086655357503023534143579582979637076632693271859755882202831287350772804242756052592138947680228784986935961911620917048272962324204468642622070945492939482154988579400585538445692611584239519162925734629267257504401043623457081355764156761368669884132960763833162858270413152881861191490916358454508868064545734983918210970562343465044261577681618260590779662854030521185254508464876595623992967060896732275894875504073380034640827980652284122280193960154647570039672258581972764023217079870902334796361188995904661533574453023064767206109660565608282784489902573333857608528264098993697828510730006911388386897693081355614335842285624697961706721994565144321717172218605559273025676865967588188483812355486821040601357373763346862329888413509941735445940094058121121429742267115053332507990737370518021173668430978971944918720643828545563822092076378342010633183438750216895485736590653555508285075058142216238479875702969161829082150275783701112378862817390576277271406600664955573135268878748084461344550500355239261962925446760084576879017424201105705241765363140305456231194771042225948616002086624551871457038251524886344934593672351299548614330220032631227266811826507821561297422786944782867922631993912353895741989066770007164409479570814730993100865321626700617337118210383509544392734229274389197644831941832889828638894563116783371245865372727279637208748518339265402986934661344920447790246465132148202670860410940336727540705949952181459443367572882935267374159273607962219714678986007186212391978488906818149747329052965261752913597273600240589703686946635990564736316173213938201725122669003527911720984953729086060212347289928420667378745918305761470841994295574095712049222032472768302692995949536116745008283626424754241561907109559069913296803946847727103439005792828696584476058125310160728894169904371322172389880482120640376287226181604176731039905764651215233351373638787122195692216591525677233031902586978961148399796041855234703194749937375178065646009662108404171076391566569847483408694369299342758828952058144293970608632457253940817905632909401913904043212241489070593250992623813929775236677984542407783488029876621880096436927304243916604022524699728015985323522386765372544753921216900305308977928912417515333993632050293739145914507893277180177782605452294318428203965192662113797802730497524558845279015445875749033914017796987396651144407927463971685969919049479885629823247033295871288978393422588855055256073645379115905698170741211375811130417203294216519894426172398703862251480385506442643048207871513706966030932446550935179599725819097386078888524187068062605478685435946878805840922586857456737859945452260004096423682757706134976496077478219214957462437325507730802527202917762688588312159841807348497034072891776715949341146908981085399465566678750124045903829230812389791062900383666020509799454168577252482428273808466473216725607512771800166337847020843010482631286003219260875520912808360831782273012500582604620607339153658678788847746173729889574366748624251856435299983156607548393009925886718852413972628426785647561312011469274774201550209012369616792134873586446050484791894228909451066961931536716029888779032524874085186781438180720599273695247768012956043297331563197546855587238143368066700475919912270052695225551961421695539778736875820777901708067565323057978874080082231469176797295560568638959496787859945425021458856628399165971802543326022131085613765772742113384512559093853313263602355791367237907212036966757337908080150048392015690628323825757069400076569343188752876615774771422395002094497804804300624694418263103242055051042217243945027517554240197190721658145286107757588728839991831120181783791096790723388214908728304497034853579583045593528623404014131944228787092530649249700448615780560321509883280350298722782277577574342156983833515807617707428509337591032196408475611767012983245635036148987266928081458794382846961894753111731449544821940123960754060078699399082740689793780904006591623857055712635139704178629047962483018192517468370358740258909874019182733195115917348514320217939646956922909587879905155639782049600623713914017352195588516598039210768266845706063729383827022381331323945681346706718201766532308678455443130548988195109750040729422053431755937446572327350602909094373010032997384881966221951599647757323357964031478933931329967530829801258286129107403020896876788579204158573759783287375607938947594119059432584767500142269969434141378547332658758896995302783219280661959170365131024777873382520237884033285871124585142842825907818236893715008109185851791426821032062469722364444030691949676885105658293608476324884150601506216162199653486794255856198013662203845483362866748880497179395232032973637390923006878909419109244500235187952627900634210727966418374343126016999300724913803730229088170250081032415887994508861232121718744479891706117513416903841159512362048004803472531299100417176908493741988647291610549190940142829890343357424173247378115226368468325818704424851206415354783191090746237684532443804584723313040256814426775209125670173007055689433233459283197176455506988930397425895835639977502179794083845599022809276361868500824959163014286600122930966874741574999100227407301432434236699733307806330105891326768766943508154753302247102880384139469067059731463382568642442761986724964859311905679492495194943064041848075008049383589349521188559546271484937430081288225299027736740751662988680362597700725408334838820683619265376229828885914984658569204716790475736193606521112957079206162833172468343638323776660266071918839839650806641769881466140389938411005555442863795082416574953043685204830798827608740595262024023888991280568633975545970694022545922597817911651653307062398977681977890494618383333224307619218478475864900215342679260790825475731300337914058818458588947492901860116617324593388206117083750315016207288907417298457618614759057363372891526945103772118945564006365749788294850828527284655787567790786005612701684023927095348683787510747247835353230152097671456073105596874573442147607978007996792658487639440679533043640314856011897885757547057285365715569383310514779047009901473127500226283475082093955657157260053672533527674429793266167460531390568898899600262631932152591834059376840918683658315494500606445967213766956782506971388412794832977782478573761986280814957270257902401524716660888074679210350737882992303833932153599461642781499352712538903021566128996513407907667336766771940439831517279454701314358395123882502791313744090080917724886546938162816026480859914260492401766632073137489512420660121307631007798241723452359747221227679918428742145801301991434600751831388837539728779710993513314055181647634099858018790670222129500773490214474930882485436625269623111770420463085564365607542629387079102932545055077445570240536963338110973450844341830739556947380168478840419584313663167776226245912156431163198957094875983044824374713883311640097138886220765413725142412601990500635142879415783105636964019267510709905052064119944169584706234087841902272401940679183841437440034283197916536807735482284508457685357950881740406175768230451718531113080351118967895383837922999285845230076682250795229161619336574520379849759492915296650597785635191797891858992547649912857783533468764196948802344845523184184278207201128447029230215921343210012867269816781931342025466940760393954845839212633103461973915509089259964303587564714863771093994931173676552988675852592564040222005628963639189470614013558246197014487487816825545833094035384063752583369609567836742070906257881452736620796460938129127052203696060987241359177670843204238147944262768107776300950072499031519343491535892778209326571761335741674769402792638190065424828874702103591644790780011987257295003552143294394011008462480081305374567818151751411187829383022129869533620597025796159881264093170500593631135621975482094090219020339895156429274659739109889197380150645708800869846710808318879786464231728402226302501509787018216701200637525398177411516738684326711586288518760837933917938869996569404782537507803130207718991696261579238055916479691777736557750476103942292923858367704918513256371535067457037249277081977727713232296312738459119458663782583125784897192766572302562066015232088322271108462650682683945600730650513172458011004163576796344324077778539268662472589063824192938414252027462056860991104201023553445550828631157248318156147340251595645960959967047920228197908023532971413420667609898586608528524131098573065903510696288066307778642844391817114608440828856689029575728489340282591082357014669725384958220551904872537186811407341616162590204982102648276533694269991138623269124950820925647086866948023619486304509828210403036095082767494125272407073737025640076072833049354784601064085394918989581548315740711807390971108567362347012824912178397053190753880008498834858015880610025491310643242196740170534274154621147165414450075915700598947204182499368042491816717616003690072509881808152455485574062954621501069965166786711928500599558428437946061971531118734064660820312706981016807062031048962630448191137322499826642461901742083130831311046444648352121793638805858662999529841265356402984653859440882320706937963326886041504861904465875690184092120898400747941623556223156322112436930226444094609621334983169409388989237088102289511722489116657126559778367262296789585400879440004435811198617859592326481951676730252707056055489058864279633399221073399941253927973034619732453673008049958904153095105593119114009722389055635759833352058647163823173245529958462609017158458681602116375648089526751613792207202754529782484749897018012919301667856097940814906512729483598052334646318331314101367404985212991383789402301549304784116987536184856204490456708399902758491862718675216172603225849191873564269787005403574851622648546384566065817153318443248790856125898105515470313836931871293030471742968106605892809222616589818997103520040415145970428871812521455566260401218512553809847295374840855148045686972741992671916236883746395557205630229991940122113943312929935971953612500712510167398217577366762395093502798392138918986165703985853293370929986365761946436428694144423772526330280916792725291527952712646632347632910183163029172865693131534720410207512373624164485765200466860812293392314538882001633142424698064990041426279063588148102720084321037437015547234525328666114745996594781140357312127927452993704395843152701166590806506119048179415043901751124804214999836472285171658663544179739402042134103046101541637382153872916876877439623202828273158271631095230564526921601178570778210506891646164667005338720495810993660633514345846758519012981384299090096295662277305959150317940692490118743916207236231659830073959648723410601378902260434060731551743305690614258069861774439695564612727028314519350437067321934806991262645841838809249151801842051553532330957003539166286129169037957829852206016361135425024390941069340429418094805612684146379216951022564855418330768801517559386414016594907673018709939930769529078838422608167147638068340886199938525705980721500727698877699062656533807013205367257823326164497110777404218257905024269683964426488234206805843569743931838725940609327496054679484695856208351497482097856589304094072376687540900404166097651499273113265079774793348290864844142801658486537781941540821810304527990854569396895203866560270153947376968480967668139454997414694925809761032870131765724619512216353948813797384490271714559677142122554158542519508472609292896203008783733459143713446346360465743279820303726987034829599840040260929827669663070865911185471954515686106891793094564889285494550572092006077870609401861092838143949932354848040953595549590243483671508966678926473217961641314574791341582779930277734097816454270734737518928188196789005555560046889765318537799827617965782675100156398930343072285396184806531382079216591143487251697820132074816976094345035640334202076001780158920770163655956754560094180745159992496787614325660118494709977816298669008339354610456961974117572142393971689252440974370979058376676681972323402827022938814117388032754646006062310136512489294193409908976697917031786548329762640802782016141592147678729078615987040282247771317371242213870630199482820801456314744932487527464975853943203178661235207399435980908320377109589928489696480622572066556335944943088775383470279253135363896669461793263510467672560989472284962367128436399509368781816622175894679638680114119998784384246767390966722355984914036593366368656371394629008747148713112286891575962058278971502848247375099321886994813058597508008379120361287543875312067410008276946071310766599459261209960263005897866340821285696328739775166998767451802805542779913419149659265102336442307663679922467421399973258352493104477214157373502891401893047308582279770462637492653121193255281704004858963165035229497138021951535912551629382323718364727757936070087038952302207157600194152671870939391032752025202585144563274832106801119361402959302578193488812371591198929213260535307641497777417348768550568756524236601987696477274114261946608187153003954131487232257438313716423240572806090360406074515926177902204411484056921463466443513965987843099251629002949575075887697156161934038879673261207320162582641915621009303812612579982387043434490642058555015882901627193638282101345414362894505317368494186598257101408043990450232945801103079000276418414350117007465027088260110852250959006286297173730776384987071648580975346565905917964220166150217241035321580630490085651120902762608109761437139710385063215034910402244446444032939999612380853285296774840295692394041318806706015502961499934500791112878896686105342209137276690797198922769758197922949692882178532390708304227058674696943790412526278875539678188637498545031001095207790155432395321785412400168845284958473761305517740130759315843040872659203253775274565485487476084108679584758065252682606569097331041573463514958903491333809868165890568081489631348964831240093648830936150783414789518631051875530148350920727285251363382381054579107111699493236603261384027145657623152371591884115091769817556616790866341494688537958555025384120723411155733219540288699293047934766809141920635010245915896197718442938523941171303042156583632536130609215313475541062184677411881631478124492937966808117397797625662758193988901614051115523955417032536729160908622020927030377722798400150914161405768435180619739647078016431794915111620959371830780088137806103956418391914720344973505288546072594432252981296630457444366025754107240643188479452830263651769501605149042610249652181679885544779322859697599232851194258666380843201714850771380776423467909698813207742718121160056247507172394362765939774054232913967182017414024370209370208872322371868074537960632773357458122438594645767313451696639949049219813765897887950504048909509068382079983374756107106609097529047011056699059176595608038278298513716767442386143656698917906095482675875209745109520624189096874582620258810787734455206896615070594269843130471373202814707117842962756915156976241725540713186522997030960772062071631341931559248895071300014145470674830894138372947377343875984244427073933826818124311889911899122401272723450225137068236297743102483746138985146772380050911726973726484426365130944786780079111834471517427864414652347746975284993609840216601090718758691696140592534407317075809796753207467885090660621306943713677111016884100449410913357898103916391811956374626170612455224978410744751901653880147886800324783425164405732601029333190442149480261970894802300286778968744482222233706541733805214880348827774384641344241274478713480847966951135552266930640711351465144926268828613039613466965264888653068864742509602597750800716463392472634211901931998119232307515351861869894877431360095614911858496430678972882168573380261205333394646103048344160710851594851691068115288582329499721312257498310005840544060178787121363538135766003040396171001591416502449035906787355208210969754743741903555546281311265060311528378438378236450555745757107196226169635358738979551253739429026654242777344490541407367567672336946525075570163088184116461221059888859236950333983945396851296678574943747269762844301135321940387061285294538750455225982787565534949366288244887485666541930676083993559696466313739052270492836835967239007852368524624223188393060462889946774675986550090660419124332393334306922167244290632462918027570102683282825969763907237942628430913401018459007585692682580707343131813857363098298994092033512540823550731192118807936068040822638474961704324779489018623852637165295309827542285002725080091193159024944875923361770900486982933181331955453424045646323006515467560181671651138562945569004672042842033862819394929965449762100485522077305235814731551452521224747852024206847061356105280364634126261756480591192081408861644421605398134423005357697842575470387706766857503242876593489519958100935395028785050571828938292004480676310783162984074181003393748828129202338055375488302382269318375025894818137092844044959343803574607757548073058522101936322907682328730039983178020377660453153592977845508647132324642338986958354077343428583263716584598170815025922872401692700137939625604595439945130235150293548029363278153480727446529687146066693675941162546113433543462527413186708930965036942753784704864491857221729610676892509807480031278462006762042038191524184773901657168855309252931571798029477694483464629054288303311585877928589616943268872714948707265168069919613911277599251593247512168695966478079918785238258188579376653676676227029310028561109177806725212448333341003976991515946207742634521280050205060485457653761568191039680791650817323132090189228719924902919634453250312035126073692219210557261007568883996822446878015785763649875761767023571228977229789416281637998951870626065523129424348381928888724294706878643979616689730332101804064767046891337006452554732259332466514869533602612666202752852814167907897810565320435150392958804500092755796023485022536050463482849357735412643843989914645881900434784739895929653305530557658068345033280658340979479693387909510379486067166650062634442614834462920318290173312632733004371144901784859540053755954678359558639356214670486800002993586790571119555568989861316099960210290056143756471907534013181709686456730967634635949020300074548075110171839754244497846679009212615211410313615733214127928664063607159256482215709438481668727182455242449948476329247163026206669620608169959497259599075617186256166592846795477761830448957072426782654876537122811545889074211445042132658903261132807364827990910710492587439688341882349695596876305177534682052529059623328277065335395898663441426102235268589856044663934354962771525575114743591816711628478482744304282330899472617952733597363882256177607660858366611434274525203894458983652759649701998993664405515789766718609895340432081769983249285705060335531950335316014172163756775956144163033046373332799936133003905830438069005280379294154103824552679914017477550306474239989120467595173410189446870407655096332795484199302022357694072243804180419519274763668532584176071647960348584379200523789904809656034026721702265558757553347886143733755126327373320823230938272965294239598044573847496423249915978461658155250479524488705853878329053455562219006763894669117888235306115879046885316334382787987103088369079351945740648253568261359939468270969167923902419589182585874379711686358127072176304335845372941364151437005292392163644539345061224377777579297194832131751638927747639820497601935521914622032094975065321997267587482098689356697308919389105632830571499511925561761740190675135164395592899399873079828856236423734591903735641613957878357275645388122653980704289685786658543087078241127299243094289576430572853764538969165122827193156649188265615976706202526279228108957355975030532483720665344066141888008696450119380321293332628843949057669251089813085269935857525512773503932891875308378390917748867742794135330363505603560161750979918277220328139600479290782090068014636535302498336268830757658060263182051119467600131364169948671327455253209490078876522234365533551037370212410617502254641328106104719587899746655348994025872193289563775886662043172751458920305070810478064769179308427125467248806982771925291669597431431150118382325055539828939998613178710593598877113014943601505014037739632482681737787617394650274256981349788416491391005202872712996638140833923966502197573760217160394934542161732865245211259218261513197110565598597695141049583624574336166674028933796517729896198851879112497584224582169395259425325095510092115434699390108586667276223819114736655402104110674427247517882128345106675442401801329543325160663103542159050466147972130342049414843009774644659006068428170918206904003433509765832796874563890662000288821667691146158325002610998912443315765498290068332677462826004977709260374057260833689637227537449686835215699082737640975345625464986500207182391183456995812350979729091233287932876705252672441232566813446860405070039086979099943705325818572243016053095015507381855461750098920828606123836404342691277608335829436648635683420880796658734889406540653590432190833661125231787056817958415483169770338590204055570281841569335040792794835640580108353557787140659834319534355766986306474609082227599207847069060262280722144460335345637030007016724500539331069389849811832607438302329095277363479765466257303435395856741222545388965446042670500964638980989953082036755120526693859649920002588976075511813102034321241423833295866748017041990250795297931762628213605354439142098979664481657865883074205201191276706019997225826548749971118692534286445883813694070793779471094388633559321806060696827170248107676887194808889142355573893360054306038485770552048110960712818732698927849867016049864547927381808959072904814514169173913444183444227532702613436297153573500543969577272567367975323748453686130685544928436673971585917552170395818726003982725572530798954726004790620748304298237604374536093793669620807731565998531094319214369209129340355718415671791315569411741348592616747175209571367519902352602405650712625747813693786038921880081344019980365939609259861810658977049908891645526048212888590601716442330637020670409895299989650443238028997213211638791164378047145680479245487826131646517452901666214180599966242665419558191369048975331308026300390887682530660130377595702868859435481117778891153305083916788399460343713099047695300690232873345982197809411491575071657981341504452125194414744535511697581983777537037062298736116840956584226422224702561629633514422295565822091259789867817779822827583488802458625176021856500732081527436145654330736368512143748230159392926847664641054132496544046960204971421175931246742451672221668000124775857755075156675162335994923050010641333539539055091335812228928097605293739938156267326822855207276354374180312741130602822898505791536290558387301095412309428995785305868880556461560132657045511376118803212399488277950685366090140429664282101938076592388456562047696571338099138695749472711691668745725277129687604499720015908775111744337916025987526227856260656835561634593704388542654874627168278607211802423685465125784936558442202892818878633784089043618630189650077853095260344864311659269911789251472203153310364244530552057939532593334503068433427459785943571215079535267433354315837086992336128320255663067431173656410645884387462907616561161887194335933175536403939509892290794783347366976487834821364885575199738016232566963457047971793727921347405239423724110404273445906694374421485983743576999585061928100157786560960771868708299709060467629952791784730054916168714369245360952659641737231322900077706572341841808109488681327242169168700679512076541666631578712153249377135537281127855777077234722548616211238675590559377969484755110614486751502466047735442404246702696952987783253388903568429871513398799217901901920026668327007062460113108173690586035833312902663158459194497520692918259995931089981018753123333006877436612212230910178528676121537384872514680411974135961750197036153918348304345104355586016779676021639290369338365786075724951353531064496043832538004232449660426439009757692111230514095009493219289221588611098624543926346416027242214602019474100544218538787744560504614173969355997942336143340602368639165230057216566929041930172126264777334286856230291760059526535450850069129375460400473804417989457953026348210645580282960250234378150773453819534224071034853583529428915014986404713887137325318472751530730139675574912575832492872642529449631395330505783280643748767450196070830944022057098592868781867028530269102250762070224037928827719781034769104344606645816668320170934132105966380683660669536552762608259101178477371704021073423004813445486556488057583159961945774065182912969663876857341348937287955078174643390230712650530715503337734312384982213206236574275825983719998570900434583043641009564562552784901985557495362164029429781091565150643045235653724254208158791186767429831143109581564579036556395606882375603717243045380638264265767218110211779919938026914820936426386022055770236605804241151107236790213678337533925698437485405897288488735375059847924808700636107593014794521872505035117970889537241353695709302423560020434498260174939789062439812440504764533962123026282272529164961685579931683475494020768263720882538300704535517161134590239969117265888612753764690469649330505682439899640400210458310184416950392740351940942660880693879070326221573955364593038116849595391600703236964546316793988581520589897269126189166959217978675508652297704435785785204839269064712044656940759993508902718062080168972925462126421515759343644292491436204567404913782424584855613878596847332975383573344317804547577648278047896465280886973558364425582541401810174596825429075557982544292116255378131116427062865749765683932446612921033389213484689416490645383490674604327024173121228875597932659738261361746631719529428639170448840695797925825138975637821881919882974058049780472170853341942820067649454781063940280080210369770603689449812800168906663999478358731711156720289765414101010551977691428900598519588771615780657096215793888281683594986564552773703360900969287589507683513418844021836998239086470326726183234806079770487267499396388370825406429051493311017863705435988478503875554437250552732957518421033381334811316042372068511067730208503893416915416766850707903397025422908639159391123802462976523045059342787688745524792214891122884701250822224561902591437021135188877261181588713777868564990872210646402181739445489795036033238728732442208168924034305303764151451327458907073676826240165235891072811478737671549496801329738499224495346462133920680805456257166797445567538254930832784088288045704069891764748403023019990963554853576393981156303859748165482746483389641532759058922767565825393689614763917551590324579513121958928626677975290166530567508618845477923894095624357986874784462146192585640923976004605556442931450364070147758297697435151689572669511724347578615325270625244921169872762063014852787748550959808632325472119326773575221837625105867220865576804721919551676316093699900972656801964787198484598490024751011946878972795115891153119307528671936456377131742375110206625971809141841880697757625994444744726355906364544548487413341935980318634256275940946977161384184424903376237214122287562899426372076430894320339355275090025673490001191177502866202281687572616966576918440355330294644295538829422235542468636873768389039149778252382029059380819726169183280571969790847696178395709058597468309906462399555401241747493820667152646225446016781466944749324334373901097798110651966886202539009206860103306071203028243265524343763822758641146290191116749671547816141290135342674840115252351295748140466745331016541032563664362222293179391022663782916741890984697827123399972617151484571060261840471859438938876425807466315232264573259541992013764413960804754905965089411855061017023413514157961352544530936905811049661966218845608979530191174389179659690648470673583712994834300423956053874133830467891126930655536328998298864087270231947321531680424134310129798847010263368483992385979216238516932778675402954278474823169412466540014350909409282537499592624249564676561764589939865438089020531189200256564752414425259422792755442294671542451963427308988225446081742066486974626425543288232526399767391131287874946074722825886494062792253717651142503048085134365058292088980758181565054262852824156736427880821699312241351081098423523761109333097869783718156321757566821819261047531421553387303119360003789722069705594759384315394678063548746384579755449697879982397680794847530905672064139726237347896093020794014373155681335575077578947641140768810260881390717918354472884797681918146710787306815619305957714964829349183601102281065976773299590979222108862088506365754676830629493807553423763927546444829807374185963586342254705836906801826492913530424436263393464494284601103441746058224721684807567085876746211682469082131068408553974480807796081181451972870632280700844484383123029052118501574341117699629230340875294899123197035866399557343411146391702637008148429930848826510788799652272164880574442041881223886003356972601215759808170994079133126377973360173018076152988224820984931969373060936946112384082196628411690468020226591314458111564930597843254249421866616764505942517257183230154532323172104507522626444498615557531089576133317029562628775744731492924739696524185180670125585073851498042506756118074502804806822611840918677521166409332204868769673554341125858614955067324732796583261897526939099050287802140057884877777527113321267649210887000137535811460299102636392749212793386314699573697576150021402823271048914218910917363952559147568795783649570722735978626569636890817918003426786369408141788561704873427716844922633213321711967259415211925228032354236527335613774311084408658577670288469365271509483985020380587341405757532615914299372220800090861017125893455584097310351031484756075259773611173273900752977939750905681002786951759660297034681716843469304112777925577237991773944870917446855093770447396954511265381332053322028169521105576064672246552681415189487552665075610645893881976030018607352790966919341340255194589851036330028542597080534134739365985456308533692504488475394447376368721536078669545844765695849175077176597031705292514070465541755968770666923944932633068251208956050776155325636330955903389629700608983380688099940922896325535140607436023451910481149650409349006464805005271082796730743054470585697338849293585272207428700093786435590874041392715353761753991995691160865383458872497124747982814331667740154037874200380925829599470273782698374979483601528604843563775112115723768726974873649378392969318062065263964699057038027234832030636630089795317997264167777072393351191080114655453269035182906292523426965228647280690041494218557050275860663108958349234695630796268796128968787447552265504706531232392887034465031916097468184447439616284144010851663526956405668590247226919176826961652190056921447195547120062055873346546492567729348359334474923453499648495038202587413727372298879924232168897324641297419850634774656983866076973728847970146309774180682591921915907449659644508001529628743241717012869878600223355527112465061012048274022168485766843814893580821217709319734150728508604540906278275951236398650511085494279981326946112568064686436367563644745320550850905443805467359450461475596062495428548948682892440934156572029266013719323031023045098834699768319556227503876335041150107349679591940242863685046617590578294027048588693866816398676552388969351925799459241415521066351752478999002003739427499192748831819273848776920721815557415092301735266596987327367297035917560570431012931885314339203894856973883989490390606975481999809739121022923593133317128899552878983750309715792467424391042353726206280926383838834386926976585288021167093882826963008442694582484082429145317160119466728561543737227273618447099732404738011699783721331754733852952210417819583384259290264025134396542104208162437430965136811338843386206682498113378300726732581702452620015550640978298248757591255669971719077230029740533870185548856333101845513904929610098163056604634300376712625373493782745738655855108305299662640315164018708689681624547278065658511905414052691335117637155250377485812659274918302744016297486738654097644011757132408179887841614537490873555536058149710813671570106403963954777643971337250889301313476480287217548725459296397861574406866782376947962799320980011446661754432061671269100732111365253803276203554228741834774037146160415221062172479478706229554799028984854671920836984424069922395395038738757646674017338772907720016990360423781731206178148685499441207514545996906474279988224988039889480982991964774939848450208824506577939835184843111246157894977012994413722138736375069552587526604175280712403740636399677463882326369603728868143185395649018962910475768819848737393408650857498991139359619102284609879336544543809854430174427243158983654694265223486417347334288851305047861015642213679873195104873714567838636428496833687686207502077226304491441779843066450634399087881827871064750268302066923841828328211940433497839635208074929823167283354039179042426021153161739749268466866729095679443308984416491535160767350123408724653630718611379367561183606991588344915992249173804319395446656412722021910120148282668659457156490125239153883127463641200523072752867045147484172171234711847595330679872707464016941542229076756520754121489541335692307776714366457136933914519305843178502310939166971176814684910724129999037880049287614485198773046757129112356015211540789487829870141714473761504542771227071056118458021202821729479036160447371421960212905046736399973227558345757619145037480133141754248011463283818867035111289140472754669107096709728180856011251129938167141848929546487842498275027511984716271769249081559621083369322817140252732929375568194708697158346642486133247130874317905559738674174215218364459152492621823516331164920237745119788112463213415176215490312043777244097539596055321439627603793322858393014206306479270696897320930308937200506511345304161683816639784276093906363867581487941151994229675164550810577588374358366730220948202977906736445763383212642974033229071633834726827550063370084589055841995759632783492579983764309676826207695926333073208953037625523056346826950713918835177246199685361661768303124379144487103076536331809308478636661101693207339589027865300195126543620801441229381232577558313613562091955145189110469615847920422872669188993600733460026874319101305957937054908816943893420829089078864303223021845542823819259943863806587859960353304609588490902593665496376076555419559874750024246378092750747588764244288228320542264663631141627252772277911903917955227313594293701381978954502313440576449608096989768577373314419500550396813372606197154265906306885386401725952317975258349926308398655782966133712619588550727878587336073956258550789331271722908912950279839963158318996120536380430616430914064144065159095822275690116032705011685250627438615565690989879093784598675634779551203579122265197680867552130055883431355998437480103638430667948137851647856916456389297318305167084780038766250819294478806471549717589411660581506041224848682921506510883473601787209267175672200022710320040646380236027133331892096590007794705116759679148063085863706553993558065845994089845245313364674981354297427667614805570130357225146126147862098102822642514951601220980834147684083567765179047785740818046886813741716305064010555103550631258662674486276008667307489409122253453107752623613492877963091743246304667803332494920619130445167862800655829382376627827730146631290675732131529829491983847783758460782322351267771185445237670432755692945305821057845404533808058864700180646364175334202835238069050101364758812197786386195949890001986294335425919330379708579443099541039049944802948406781471512451750755196386449024518083024862382463231425325257334305857481693932631668205892286247179074281833481310946452852962934721477182478949622066102886790971165103518284257187847724807422997549194463339492747052377270937150582694072958716669005027813884621325062415663077969149473618504710362118007109268667170672659965531363866998360964472716914432451197220683918357801017639977745193438654080542365498042571473913434249055831947013643314742020218788575126013754428279440635212304562297491626323816214187775275982441950946882390137470413051059036828271992330759846517969582467688987678253453739643225859700409109572080947541697817443595478963436077123635804465717708147058734108692655367960404865942896411085878269204373603116401818543869034346553765230262491231020262162535086951573853933220219029995517573379922932617661699612585533366674537681319973871845685717982779431473351526050304574578826548348380107160901960022418281454259166552971521550793983410809469732572748574535809854969742017142321031779592711146947578451229900259469361866338173845303118016306209614779877779130165296920144945109182738972544139632703501738896591620952562656391417530161277861051273304286437823390466677357193385058606199026900490342691855400735408735837710152777024203823333282255170850313565251410458031645935362080202681382458345062069211009390614892218853514624234764257706532998085984014227171564644306480542844625753403896915626046964854370110471059852694654372213578518931483699491755840670880227223171199564120233131065698931601678086545582420728725348429036893487057164186562069262881981938768716897170699886403774104353124436863139299383435280763576159307874286759138185104518821816358384884047980776735143963259173628994352175172341040452891487820969981539516971026164990721587804774112498585441043508164558541133160261558825772669518703634766713175083611263719766334562389597474039553795736281335488322037771560211336710804209998193718032427158103948603723142712911568017022731645543282638917829721564698352874087264834152296094516058237564991738225795075791476552331824404558587940348121451946204491216387903209790002649694677939656711390902728705995744753906586480330193314617926432104768313125833546621741671669422703509590599292060828136796355867413138658621149412827370393202601497013728639695419292182823025676051941161899799814125055976044450027254999892442431812358794801999773394024149574361775476206304133905037194560669024103054152816953470605949949745240559426704137443248934404305626753761918136426551692109817820744341306120899827232409053862940096750361262064298996828296400412772167948192059503415331120943682659432560449008961462522107680417358016508700523673467118511220483973923872841766585900332032429036339254290306064328396742931285498273385907467554203421127670694667037561905705301847714210511082399180470133488778449285213396236087853770899936369145920768411016742822811369419425173957241819334245473667932427380066149683484907618248779867942082471519326659529788536207159349007818742871201008612212284416220148453666659023589574605238043094569975518930249911073106419802301128279124783006054632676308605836028210182805681901599384427909494772382803773688267076209110290276819574216529656419071658763522517380219167190964731143575076543458663609138666511801196517098026508627144462602348285011850189910291094338889089489920144224496093351482046196222512271299389372293268425051787682458345739415448538151497611364239343247230748259062519131663992523952758259376305874230463503657313434666956295263369034025115875104033879806532150577209378685985674079828474197634998870814468138398820341379632680344141524538361748694373350668866459312585483427533154206740131859610847716712512433257712675595700106219317849887521382725905309801452470686977781665581540137556370639235706346065403271604177837850363798511461027085005357249244149907460315354042326455578745278832128128615847968712974650688070227284310738638974215658308783894550743115899964127163212563802002057649394101723698694805926997597540106028448752258019831643346891103996426991762078763115193189886501030802035492050471646458462236889458584775990097518887063861060414081041566460391376315498953172786661044405796825953727157159082339334154625862362553665477422775937527238874531457813865593246127531991145528507591871562103371323008546793320360687762568997806989452483537152401668963543532749550182991290679544033914093994822297173860803554088579087627517124410064154316763695952136464833701756041542328606729632063517252697704560174005632058342739023798951913042210250032313061386172707456133333279807951179764054002747355854536464711959755578410939651524563892974950302778478092221945704361000611756240849635268229621174863255549225085511979213581309413475301692289001805760485460387323062279057347591602722474604192793251706828907153115919008039909033194039863737604623296769096000978795013159090078257489899405150702742975376976962467396695224054600416220483229437455338357108777660568192119954462872559020224286674166939469486421922079811337580581645810628023140181050894663337959175790670179575391728521123478285559345584566532408098831372852137677251254197805784633661952672591845366045453231123820223475976916279089302490822170738981069440190474795095763509638008752629337598709575349809288372759584013461235345174425528313067175729161253222814743420443396143263726483053041078448114311439349545979520704707536681074284460430272883103631675020380106380202026161045994260069365631002497405988729514408650661053501356674464307570645146290196291314613337317830674367072111311764758895452977309493930710999711723197964428189043401112312938470431662780102357714058306199573739797189892047581483652054084260108846119330992197387363620414385012662856999122511219169258279782417480232239138223948876191593832821707571567415021043756705309486411811633743046167697881821304177927617326918733285142734207028833950418982294805492906377491310739927391511513236915910529494790799417990310122500647700665907896919531085559698774482461640203369355799719385785784831251638296612497796297127930647499950229656574382479461927047057877011878064177675665686366638592346441689651629332208906574402447029223938862722106953414183753271241187113340913235983547116126366904353417289539239016024556430178083494060550852187238042795002152152105272053468038202252589975389261756506923643560646166163894254405299270075718736003805058781537794608059363316558047965915242585300720865298219043258404358975721441882774019439401611478396133007276229544186064030911964550962727545861435214319964049411872286879549372354250748617168909911142384101203465728859330857659042211319371342145561446218720775873292002712066453921907814892309434667199088363130223834348224368644129024081472882079118077006742206896793689323904515124666958656359758253000734801453952153114569860089799399771632729656362904945775950766461045618725835168290919110659672945943411787844311604128798522029579908552894752051667319273821154710178256992809869818597819005423177605657647597258753905801189910928456838273196253224710871301895624544858331957379270857765725383573534785847649826391220366187679176277397617945864713399050237055381307458864416399241854371822561202208378490842647016647039280205439500138100707728112675748159703414155547461173679800083650835593385885077215563313402903931645879660901123225733107139312725205147778269703928897343635945651377672320783235812667535661412314954385976272950028007210990377643582339740007039487699798420618570046099054771560646745277053547011707860935000869565149252056543368142443903719387547722816642916455078166522107856438016827052017026137590015727968647783218095692441916928243917247460871928573093329522637892587614408212844953547086392659590865525852164498791266209817051508740835090229791537819549793238896545672749124366340070823658424138598277549498293763658540454739573885284849414024230065833395256432858016784976446526531068403441846367466537827406807646265542251331385770512419215238718300561571013050166946941141695289573471506716522310197895683975039193546782697771637634445019532900857632844855829720220704760343008274838075844678811231800414256225543355537010419231358216924783954060629800460700336518171190474533903463449518479109701803235352105680678995073266465883522848263350905611232982469118671994231862053710507580713757369722407639874407233045106598245851630485700175408803617823347633420168089155009138926126787933967016827162497869892036347071531641761741472994421302984265836181014469717479965555106515815574488210203779445264447843467723687459778964274393171221292864378747623309432699592551171386811906883904585929339865055557960852063479377897779150771497960455468545846640340683567756233765949799987795531329632679216323156895047521272261866701573488223246345713004105745923949075001460066414182942712903834236773441157005445555832801928708027723837063488571847347677362038087556249838181260333627080721407068641193633914582454091766661164721430128849792159374714924757386093483886583372329361248723984136575446536486606944396749754030293534272086940620966690072835058407833418718861149414530410710871498200329330808056804882233028313898837735254317698422866013342965956666656382212619559807298961230558895815092730820581227620095161946410985285909549557870061730443961015144550271256971277184325147606713484469991375174573668506878415345405477361925962557675254288800737968484441624111061281575481725554308925238715677444673812601813552021017553980330314117565565892340105774218098666149445347665512468379939262628065021905968934846010988642867559482825939645777707389718272100612694883741269532440952798960581155205465974501863672930474959362437761755446886646325617265501636130726320023128361731065138068592629544518642107896906579193158438282817956245597305526034199526708220085750576661422802298721205379832912118361392912241692416791799874086374178017596902164920343324140154925503265421246420160494482469397049299153207492723603051748066301327020111216685044063495990301167200412345371418167884779061076912346380654448984842523482407274698090399034820772657833920576431693708052347261611407597263867888331469754512031808172711970564267282631666446009654242136195063325594763077163225076283647675262963665080308842502350302305836963152733238706923996485891906424893435888210430622956773454200855176048352342304316333750217028395918232004757403317979183398026941487396269416084674284902976602676202531804868534670229328121700612912791341407985243036870523285968441123099366850855472234147318887307790213690735118359685262520547484841202731997975937649594512927248183946158200154112248770726378716556384951221370376547609510507043840979890298207253472763983258299560867464799370854668806799156699476881813854552382473095082035149135585082842718133370217623313759198254007978154774613066138794791828802499195600377245854385828991714652549336188741037948466997997002491684572792125433242182517734945909319016462584694794398439045770129559354804970962418738552692195579504923701895426277318616304992666791569448911772896528040446004105444260001208830197785430473256169607470712581277847626997864705011106648566087126818656715350680371588686912066711805290372643620121922789103601581815897259499391785964519271678373265963451088821079626996301881500996440045227092699139183389183212391594572412974095092652879396642112558053236833331258563287962966973203940942920233488064192082526755954486322022687115251396579116134396640687304352262261958587098182702765449652538003398953971462753645924076895475857809248605392787983134156486853370870059313014836631622096257371723420137570285007834327773239190628181098366192972402931202295980268639461228917349012308976103613432812162333268376607672774671834248218690448631569405342189525830599286120304571359130778152706991468031326116155145732594703015442821664884949041110158175173597607198787274040312190317851141902606868241270864648827225561063430349314022160892632164595160789907760709883128847892914344998427534563338336193060944462351430172845873750328916322749102747100779065210836634594419605164903277972888503365702750811267628668590158203204726622336445268602077126551083424505393406033539600321749976423378512981593217489636579018461656270615897194490722744363349254750983663506076040404469260427930280985392793803544432891410464107705478762928750448888962456414913163334967107320662152215736836966006683334152896099498324361157529086666448186918250705973016769394716271169037506122621761181460002477766364312196664253497426837824405628288583567412904905072451312354474060613973943642109801453246818041282942441852782768017983405789688725398443112706127940129190935215246264438398113023236670757351066824462116261249328882325887438388973544092233408340091842764567160435468439792107050067528618304846185054137255161370066237748402983750567630981151172475545292653184596169150371982525135971697166043888040263280049732699866312713067842760705746486175943326503101660359671682920749339089454202460207593536106233924235045367229462799688568710287369481756651072889662712780634471288445590418336853286849952832175659804839000386970809362079890845337553369326782399256190205480932762649509998043102970100215309671846153035985508967300059187990456881774564260838520660912257221235695175098483686104826393720359420043659052638006761199109471882929745738924390640882089220859844504191110890441031447875495913495772449353149296308575680648202793645107790556042928962297453768024060816126243988017692889031011649752251465712323162087966510249955338509477043533550668351444651448146228240931649950039135936045902383755998618943376935117031317138822328497375893312987209523133367732142239247705217240089614057800606329330220332563008843058431215769716008078997801088888651922882216334980552143661859193052927356984746462385325138761617970563420027679743109543896799333391743981407795136476462737931062828349044285322622046023299415546086737068782280143878980255702567437326218760507153423386791993885177770551794089311954525270781804370570124201233148730614899646118399194199119482795839765220300647443511074399356504962242315118725489976486076524183453319883200876427215104574274570806208264932766165283239358050584745803395979738285770110729383454748905939164807478725585886678867822477079136644446738396905967127834757745084019395512111795872704796377305698462112616289288506366664016222713080721874921728103965834108274253592915684967264052399048365737586371539408213166353154898260506200364640875551113759220081114427889006179934424130778534483346195693550195653347925784494097791506576136936923618668090306189271458294309842219010065755049900458426194877022632334637599342295574270827635655012201496283726628307386718708241236093291927779549217533504758985666057178975491251303300968253279430949648346121565193406705761049977968033074111233491934559120782843836651787253562803074045591354453680836029893140860332075858164821213356008797960265552011057388638876828836777527523168258498643890623238274228879118243251714707902002648396899346784210481894433457970553822887666663972526798901118267992796390404103861167434451780733896194028264183777704733152747699212761335001952449718754970788363146358798071624094662577666987263135865014620531727565131564591429141724884616578542001006958882706700288056504421764764888623100701343152779509884717396424906568194746549202649472439086822501009566532065119054691263771778298529909138139531542433628407215805359964453490934077434360849804587960432229785862012264074383454521392162206735834464904351980249091500197536079726960249608982895076794769583706211767704633296971509078180297462876161197070586614234869966078397789232013212511342095799145818700778433522192373729975973678726055835079129983454906517579996244790904053008968245839838016262392345539537926955329549638784240910030141663809592797583356387745731069431936513030555011455627903513434058527740966629074585331881976229159548749231534580978710344785021156766109875391629991694033107561122874801331580724046537490172888518006085955339940161248152747054291738998803095327188355829036802965300543782468537963157786411971863429143552153569991808835493708354665810730126764420151393587225186581044025931512582062771629908437013859994097673349954083397617986715590618262882570402538207979824925953607254266666543460547012878013243901784020792224371960243188224702114021397444643142097707447088175663606904378386216242318099341926650381441236008062927211870313812873242397446149288151028641007649932590104668416293846606782344426373708911737185379173362691855074141224967953404041603012323438022304749934679456437737245900536734018726665025426448541637128296184091247064415615031268454388380325583498981789106035165373771655523625444905422085869131734975158827063839762628745151445408275804446912765613985599441536473026122089646724844149791691494974379346667512626806422510560606621302428746836278192365197210444439571475302135630656846855429545795830474465449761153055567342656565223450562780753207680470605111976604227727037277223290007536746507321036430227204089087227137971074483954343042790133229382853306176915442554650446602587264817897668734719905683137296622354517169504246782191789555879539166916573568210076131692768076545536758607256470702468578216560930498120759446679920688535969397494383992856602294522277013265890131622804362374353856281914879745329877060735051504925758742026924754203919020931992711112091988241371185413595162430937107515774989157619027670590468804845005027084104404744336116794930455696101154019980709097800815708804988855353567203215514160284756894998693773388536796996729389920475735716362986958075558852340264693355707487757794465613941288987432113251404258860371523347481754373124137549805650305780914981024233856790883450646192343789966262428463542801091333704239010923759581468610352823883512452441555573394211477483350884509848475467300623422936217574213603586558299503191724939457247251404747699313577866557174129002687497520216041134917264215553386148597099912753726879620358913745621141680050265739179555897530370566906625639229672612526138544170293644828346328582963863955219817458412932851890786671042922979419935093305742253182840926657209176539714330893397612306143178798652763737410795102763112570810951327255874055891118929164915747579976633067220198230701871345921140154383950268927086658234048712471954910230994288424861340423746992861611117326706832598967913534975785933903913470355586931949066406040454994369664008943643135309963515088281643123190015389979252148372075677046395736621803519180376457519245525501663342040571245300612859310588824501754519413948876878458417437126539838029492647161561554865038450707188950933880422330198768326328193270680761746016885499581914309583794632997876295995768518414555604066538886507626495273389521179840775371195373268444853403995424335217607867004940209953304256043931607142709849664778388555181049167002942540944556981216706437802525621459968516705144838670463122328510610976802613594684447977022793388227623513931402320585083481663039013555240599722661114670944282232898580674061602819274041576723014043016534200545731066143243731224740290498683058530520003316666761081107564875800533629641232926057537359845188075943656636171249073184891212513705456663755513255180558295324977988689327408042389386350759344509692348133717932014423927123164063484616626387057499947574965697862880722966632270945602584527968044389775758271004794752974984810981486456225114779866285965062069432050299338567700258787427792266080281601070379689413834969493569099064283271120873085113087219433428124819536958728468616848771816645372687013230304783029829282679175352294610775752873402507587705987245442954390196295131688032964099714471537577286128833679186083697636099042738423949509964122941235541774673434695366841532979069050352249551366505449721663443332198002103721999063109392839089656159468620559752810127727710570643308517182136978161582522866463044072314653414358784752495600384483311545769100688370424870317293236114993621132568077306490862165038490015156244136577437941832582739741478034438595669347094639155386490051540301330433509339151707519449127660998100857226203427834654869594722471283558878869778712144459658190873776635519548230667514276069793209156898309283997846936542627695738209260199241247826556666748400159217072725394403597121187065888465210934078999838941569501594274465110967136916640621054288350420156501974874170166549723797368723315840336907610911297757801900922043498982816796854354853473565132041352501717703508685426734582786624638748702911190341280714423886680449445351495311307576935606490523434656051354143397672803122003057651255533109787725181673931343486819931289218561208840463787674043076836598029846031082772597574046441347440482688672018596524322311662648110978377784698902160099595707500778668618163373562754664301726216542125507122538997156878845740368753093910131697503692364023460193554756919724229673120838424771774663214818182984219504162470128623865838055624240285327031818033089548792600433908784341711817139638497326583926944461616028336390758954815870518660882194976571550824313495296764484796949284464061931182392434699039660608666273572898124820272475156424537817091194606853381730313884650613307284760533215561835108054530238459954930647880258958208325636733498117294439145454304035154973060224966401943719887761628282467240582365429244751834628194894181924229978076237062477070994985552105839946653067538367343185317411225709800815070358272851184623932317895762111136434392924156775193840758797478987212432533401210690342163929709727900174252470404628901983792090888437569104713139368575894592745632914549318204418982605093932427712551851265790131719087517284561158197200322764394072908231474486820483174864303503507093882341782221503492318663195399723219262923668193034282375157443482081712261178270751665953648666703025192564212399822258271157781226154733268509828829895466434975630641269432849431236768508191149131587479852602458059144159894335278770654503353874118801504180346335086664255770123674849709388955219290318617150751410435907662027153089607104843070434187125166241287424505141676375683599491274043544904392331360951140849503071533937873379639369538061362504822713032806314676715624770668956870116967628269601269760794678681814658037011665455843838838457118700663044362843474511953206576619948378204357774685189291030828218151391331369907286028019496921553695466661460126877599948731072584133176805269351044946215810311736089415517829367149718249653612263227384714646919711937333274932588534848074252029796165534071138203767603848805007656849228719020016855173980794187925733204259028812011114126882072889907026655859918905593524366373063212644419244072148916333618461574641501632278223672031461916569001068032211692675962007047303044757692958138876178717979445048365392509157500422039574544922070491785759899431805039822591627510380409357876607103105618913699685878876484233280009919840082991009373535636528724609142669056476019820363445193218573177806614852486442568747572367959515612193461699182514647067365576997046685785820274748439121879906037222946934935577914479195167349363826457528492107257222764865467472134177250089204998915024248696193722776613284995652468963686516552112472653296912135106373975700308978832280430594853328755692269702339272884723888627248913589944491147033044322648844934117685959959517130318150192029594090351811997730253476144026965922004831234084305091108356254186332488849438043261891646560867128228209205089381436027718673722097172954167742179811540307306564786728353494874109238515473988045004047099507487980938482454358474146878369503406512266545966924521705838416390249857973521762888661171103245485087977930404578690306241207789050134542231886828031236890204599362678303125683857863109535668266866458557945771926798047811905739830839220800817097059817897842914041018397454368559636186703600286181663910064733088917807923447270430942793540766558107684744497169853025378783117989867645007038373089629786985358800250246179167286148187897918780186125297886685488623808699048481762602934003838982888731933379453397223833659270350499544742965950872623076300104099541028911022703357895085407864371935306920919701754682246690744860975799441606673781176943767526247195401535405584970437788419099364487062511593549951309489398573633148795664279352197526804477086152516368268756757247278724894634681860015470466395812530239379692454512380278154707475391406761394023467148244786358596424539356667420828828283497600057601579471681051843600541308427450460183650890253060969411095851660191431909112879668364446678026779632822323768619196890137153191176543824540010790447346408159448727415054645028209311867094331737776822985566089991596224532980574429994215212621295737433859345115118628613195997275555993717388310334441960319590617295413424168691631870719911227560474100317088112443333056790114930387274893552985002658516077310791849534626354600244459316659408473323215720321960210924271040010951591788575251571987554507074862870877018863016796972091208528831556858885532477301195663585505026238200826318920302564607131034041443342674333569982751662089842635482752394943202945132888890161066968335851824366406201100247546352502362788485085068911043729158440606180447659337541158362525969739401794644477420285049114788367339571224621603527127730413117190828403696329884829455773358320108935147497670320911822835799978654551438596817588074230683008102971299299242442554526895386090237274302881526030823050805754289424116858352708459953607128526792734621207429501017958685394262127655596555464792350676176588149070031843833949958497676009440882666268217006194480169066507986183571885708270014143564394960501877934994823198045780715281530319031195351993709903264013798788832499827139508051598549878846778892906953308714168576886499315324259457622240954491715761010344754785460438376299917313198857704987819853024767508719218601913294358459742741360626169169937963450150518965939348802779792510777505411875199027001303420528008853823738192323238405217970854928568578489707356488360020606235658697036021128504109519504484424574956294517903051814436955369241506124891486817339598133969910169576664453259783808269601828318362355100365831761696273118487924424538039154650467848343341640417267369636649343733473627614375670438561693179810692206803069131591709257716769993260995470089998302078439765391193687525592533362835201754709676324304640581544238896511942046071481898429892449892714102031015223242158227146780659110002890723312577125987378615611564701444610570983480889826458305880185590295469196795316845479721917252074402546529010160760541593523897107296713556497539607162313956746269623904352590720624453667430751714215488791322461582806626270494240989862177796781819271840931773205969626715450517441484231194413886758516965806482114460643844427525862481589396640693108836845206946461418407497155733113678044421522925519912123449871116100535545845709222817436167632878587703526771739733349854671412096992412454035614783791228017061226012123104140258201584273377960938547403985369249727735396700875622291741830471562052931937430823972494109166079142027719494164894636380782145764416846398521027792916829308946318963864542928203852797131205248244827961743415051617582803506850944274135129283410293301387418013297738100640431293562044611630159018719965196390130184972585767811243918111864083259750153078683955340536831683954719485475623636579414566148811325842124729193312978586680500254576254068370963182711879541996931336429367764160809465084589741396543363943117201593901645150268774520423721654567911625416776882761107767658681649459194145692432346258086002965955562265194084257730058897941283859489625716479721165167707447876445166817645509610984443827315514015129317480988809272707151225383384386095661340121864807233026304908447305064177136397859209887527964092981219827757219788575158203277541667079650594605584875919381812738467074664427020014909948851644721329953743206759397827564833700852599585787974710042375495997051002420240792016606480514342916395790765496279620804071484941289609712974011142342324772732925205596127300131592693333127348967154000017517623498391252623396720237435557592756173684510791035516192772419920279824820992083419393253142726262739597868067177665448531250643079221254227920826181407641911926392792274680612406048500692823932058611541114067526813600865481890020881582639076259184959202716647752860748016868971122393843783907359342107877033737731851050692593212054169967337018882629506989127950496883822291609997348313115486250730367335540888093114699442161627639764597281940140729936150416399466352664034862427477624683072395655899393032710451238639851181316897154052777536471067440100372406945988055752294676731290574318577004161214889359502774683029816315014701151718157907980936091371166443572263041622311348152290365279070856294258870178266679589397454110790426801431076856948813826632363191355031726107599513057116574997415609293169531661556756085725548685559040730571312721079538402511428777991683708417378305090520984502958147414210384479900348378339306507700016676568836787521458977596275722597401896135877129984494763710252746300405936852710950360632541682383088392141585925544056464162691665911874703711821426577852612878708042952474703483188807376836668313307898198021790406798947774724762346258344716449608363889467332337756857901652810349931362792136405303536668426494727295562520043496719831860824391338339419248808083230729851238140963368456718438731368704509577541419101894222712941098006614242450580953008140143525607763286624756847118339714291745001338775585728883640119440879979654125304409024333276012265830396704228134041665773051999721182861236389351928043357304980644146514366264146502377733106210143320811613808375617917907789138261334794106114699061462456805932615389367161676742423881841213138850649297589392227596132149474653081615050836569742739480846465555642204569645119316471649162208952730640964762354902263389051646411129588618144162503389016131573904374578803214894928148653384498852595411800999154764008601156047604203158959420751320165128204232592165489296283211926750074606887793887898063378399003176158675203882194145103755330222281588013054745669511386805278650602671139612010453169713157412070831195800983598711942534734309838440629650194650585162618172496452141049906910160828628204595774313286797527178702264338607272204280915603235293715377015767313223364463164468248861897971454946380516790117343517358845480463861861730257987899232121160229050433626632392885270984668267654554472272852662799310715610355004211415405297744232849871634636315890342688952811524715077540977935485941592410879546789757624880162138974803011029657069937073729017435697373980851012705055925927507859757952916520153228071447248638805681734692173734059108357312179228296071093743462136217259012798962123440264235363370017998536895599658556513223713577325916575305813386974535746667761520561712341097189996477833687737556004239333727224431992465492436586025322584108703224035024394587312622754547410821590280669563993026656063827323589683356834729196281561891079835736831460545658338913311004152636105133423678756977305274944095878061388853061558367570978246739100010737098825620369501160521758952034231519683823009859951141660733568501102757489916010470931487171941870759589982304177921335267983557360506706555533065281313970554815796550553395903972600007338042915091362303809654028500351586754590842293729517248928811718548228616062654486421114420235909869379698466082544947580540306630547182787149548125937868254866028606201752024239938235821625805735591175996520884824297335015357689879359957501243996569956688477798010399831057568293961960985677157240643866690322342721239120943605520587609499620520145402773628471153416772113963190341405946014937718450014972372345822382664988226032355018921188764988091753221808381818563196098824116819962015940105660224909518742278495683766231296431135132850026896622217923334078409279450503167376556271135948401098308042703642843531817076303662094342903090754230976891942730809822253948730954123257447015696680077256840690401947370300930622014891357413196695056584757750699862906384015698754706767599325917008597570925325224083311593083491585559367513826412810064429192511667969517283493375523124644328945160174846219519376415665489245566696578000439190564820048480488326671789486839423416929836915971957257815033333135813605876123359392957691313002416972129026324925849906565705817909659272595511540444133480942084811190304834690133005611886566960369063735519691666260910086440183914844213353166847608874705744551622591261460101062827663435750075745607213304103493922621354832696251807787268259238429459399742391432946576888847963772269111993671295364047551632022024193429271027870881284043191730764907573055596341198379682352421177138810908137208238729326949416742252234862735894659663999474956168486909396448423716213557886284765807493516247101083490100369185712027367804627505470324677973636290033928326866062020864454250876835943304351234995361750791966679928607270469459878144635720168677916039140890977263772158638231098264361937765225197068841894319741381129172079640251332903923989837852480359267489318505252388249813404021782455651835364201744920356693027646942620586006825244635677545536633060820194001216461367624992961213580823085233620292357325648357487020215561177306928202731381228736924033723579666587746704150374387330401819614974231019538696888695343235180769412723465486244498599101947385561100965705657222114282036348114048386842606983435819235420531762063582543075497365414653435789982623781484308479361920901161622617817985861695435321151604371067980748763519258846171537809183422742300840653318275987965597718861577748599192923859566771075202539175395358034587847941787957942718857249189357588102290481898310741699314359564220573798573336288080590719930336751726626637279234004540710041220712532804136903366994886153766684667367507670759689619151295935018500270100001175800203150345871110347577900843251351547434005491028166879579041521780598551213496535515348004676405921758862097545816500349996491612430014555374238276068854414755874775166565738832899848696674652386710793332796561593559168721930795480186236921217034856272509824149161999739390385343537913081915483162894041651528295438405084685882641599611592592971210884726286071416666796934225858865840402791186144041093164480108445660245206154049790699182731302576705712381630927773792541718777411622190767149760293580168344043077961920647056299515030866721964623243804271298300040545728570564463905319360449881140735064411488775986319696659613296245441180942854817944475540911182558951089521615138395545765854821307759908736883441598380465105991596412515885613577088600841726027497335985776175542471636359235537343515668576156709574571578014065276341845847901649995559744810848796085607268285773751487145134997856875170984583445540173144810949531648370124295993400936390553299811230443273614832410241800015543095372611330357398916345486361142971994638751352774119135286808240721913092296617164290101476934468048756453228733876536869363554506032482703935583305940696358357680396193131394878197471650645588461908359354955417664157816560051716411680988713564762156722747894887771295313248814014503109225217478472051280840273397601069290022321880246893042725400269984899126097290247196875309119551139409933215161383588802722402704276850438033599767656540764111339138884375981093409290267659875914882362719834822161537827481524368574503741920628158897770566676658065773804532903205449997813909441589219915092394104699645174303744772070186150477810265053724239775647152675829341503406722648209888331414767102748690084311957735580133277221426356790240444336570936434818752580780257987757348458815104882692661789249350288744705768981188996131899950554978387838258693398538339778258422953642795046643409681594278556979255584194428262680222605836828336097723137999245383067292213523171532709763952462600345646050795835588635174239396438942753760096090012069608112132253897566545638013658077707208559489600077188996289367481000742342454306717698687542028022346717161772782639840303310982522105247857230340350650572706209172513770347575751236263280480202327874072503464896178938054502644750083076093522420585804900868606409827482081351894072697042381780833440139606873304952218680001208381924908811584797025941441993260757568526235711708290284811342541784217213251560675303099660868321521234319176583519764811586605938119740372974665768333992994929273387316880916705031258671105869665509530807932414778067232508184867907169500300852611783374396737827004863333418711706277277952281568294683721996687071761029766338731364207646399612490350668974059855830475082281564671003025090095308656765667754282170120297978000866831669704703099998703058224857745726349459934699675687874180600560152649674031147307389737200789848306367722907103327551109114027108147064804807032461242400928399036929266911879220047700899452340032378112194487635094211725679898726448591524485426080702382217085331645951361503196910901177111087650486995900876366994216908096656792029271686875775767144695869069742402839901843615453664948111672170571723128907682711975547463577292561670771161310838929689675507392729806037451406096804086591433335237065213028294280125475195391553721178186293588420855002154029391828285709210519154618278102710296999309664751828903846667683715323611329964986568228749048541116878063098090930611739953067882766800474940353534432778919970539611714240268115423181750598445759495099736389021795503564443830050759852500192589303039044589681574875890612049568541773353377590435969046543523445217777152344855826085091706776578890146986318908346577483228775203795339343818242650705627600356612213446775656524551394326827142525455158969277009815270193727876709312459007061382296313719178595300837604403368112361387788583558839074432255457681566507367595193952996583455055657683735920371441120415354236833065112600352206734125254832921022154104832158493739812158434617454508654371584255975493767889165160631039801294238309895207327341731945649559466620540591526369981534713330570283065567389121442949949005582360712483112302835512477816951996850430887426944127127059501736310301812931442409133638513068678778691986096375419715242173492671030365540815840930919539475249415449393966950724241980671224343907265064494764054737270139661130600208619349717635564166445380181731947685294932874390994835974129755564654102087591618338380882270212499391304385614349663754392426846748133976227179955209147809763606031444754051321969445153682134033585829598645275437975218022210545402431688554317674746320016386638700964319180993440431540550097855868323731079827919015195154191364726148140866509655108921956988788883358447670847080353744198631059207107971636744833621775504105615505977865948761860133970765065830746673041359376039389668761287442295348238088340866098205013001395335006962681893655762755544008870041014445954876936130633416125008267880620200667889350136305093540404223613711021901358935280486110327426523424937253577071396383175839971243926671711163955430054944169628717274701198364868945992723061001312240070706116835904305254737576255662855421865315851763775316155382012031102312034624549163465720191609362333936611487730469839632439760699953192848554776518154152977840996092511002947505303660317273498624720805344094322341962592319067198227443309389069944642710044008811621877729348295130343179587942253447199219948477632570450870235738330171720298829090641174918226388706371633318906081785982614277324306202657812072285251374937048027927319687657041453156558013788417944132010974867920002584841118464443951608756954085693459323325879195695734771950743427780388678679047145536927501866420651483027183632054043358624544533071008853285037291679270700273353793484091128334879119492985098286943845098318992236547119100751119324583545604057084861249257449334419646548839356376471866540710498351407640667706809889940830780043376141482819172007972725032662831419162952672456090955511491833165785529559690478428861296637353223625928739761348231441750394415491601583367800943028037861728592253319407696977214881940463451086439380276598206361511967657303597019060518122120634716112517185949707499372789153962991987767831619953352145732348107915891547354121625817179829655014044737920693864541172336602978472767104148549238040571764265174306147713299340125826394717666659702275124739706464534940662571566069825943480057691395074629193006178770563001064974024331514938612449990676928680254321261474686866862525560232516300518578443301428022446814628483234476895033442473690170475826275506393229961559903089889074348587967414463267224871813338558556528332242195438433231363920044544906353217596101077617763321527021787159124936249423235485614750215157264018033772457817433990843063835790195518720958675642260848448450204527163333658067562737646058498276650910162476595249518064839517738276279006969429082577042242711791443325543442895468065486865691140317706775849855633594332126511571221476588683681862944261378805499711490475353660700957275307522357536298279402100886039143958119557111331504552825430124436107802824690472297140975510528202307205962533281268674878537839002297116397536363288404299334516778089582200222155152584720760422311044210479282768360459339523085803180655792959160708925686024608437027753683254538655173265038539723536960169658777121381895228333874338960820604420844001260624663074637240372400704833771499504510912740318730623042414451773073458773022367046744668772253304671227173319958436141971801506522495147120103311170007129402033767330382167211527731204486006313506580998949960599827971373829267269665946580464330377523291264247279097330844644480343718820666038866314215305134227022721604796191143496669562750453754986346359600913642419316072056637415353184100425573879122546694561912291912683175113607952021953872666126611170579482453279913707635737518150310157778972774363359186375882628147772545332389098282263202434037319258081064323766893664588667613733638199677435407617953353408945903508189849778849519504283081634474343198019042119638802772022480482631666496917729707550347113928316427923228935825297387984134504705204536563158475884262666998418399494638033410627626979758435095756916797893256309127232113575099016478960519695008183918776467580982871223238976372609500243457525109973882791562681128873346894291595490114712269409909590583695133302574226742022062721499730479084923738596370975103541103640507817554548975821660449902025847430571312488483105765351681273190125084408275919105862290938210764910562308598846251778218234926246124583453427280920181676884260138873961163884043895868753796827517025365005888693629169810081669358446758858733246153822061762802423270844580480128857124974151312397392825943134053838996737705220501471212613125407904574281295967435059090570287631310070241387813314277294933543726849135866336087651446797418949584472420918273972417653780806162739300565253302402831031444607535832506082116622837813424892824693994983007324962859905537636244458199958414847603733800385028215805895345970176702786041533206251300789718186111538854645962742999630541128516623452044926960948276234744995155520108626243069718472659433466259703339312114195799780366793092313743608514231001817266615444417719384246385249225572548350260545255849274325572692617973710522457784231471581928690025468556694011971647639821912278592252244799105919032010967700606032907206873746814396276234729717274946825074385605014199927550208990657421782266540223460613622518311733130599362246638741590850979876737395409312768182125577857268168601046790012149268336849800233630416329444118077845729417360490165177729851155790230732722215222623149593184177731914096246909920627898971181366935420411153336163283509380159839218578699591161791304081192596621096227385100340697900417262642043716760583066054456859261954152920065978132821811013876457770253681826799357418404416788029060197912365794257764831760452360149338502629720045623758127146328604114695307998843273226796010369556484588263630902494320297613840616760851150798622816790606935605231882464755114292880305813327914988373677923840195656378547987497141095545821873442550202112369440899309107869319854909379837977208555784429876909885353577918872893084598044012831766102560660562618862627335544183215849730017944146927084282574145199148689698176758019682381856396043849417466035677201854627753509074013288472753558620107891176105108310699828504636919923558574428924224977030364478646650429577815599986484230102153232181970653712470936902446847462161266532632400166948355080839386802393965692876503200379218696144085644318120595837384309459205647821101635675317781392767851936404056821427157272344017370932655978763905319621424233483752933910328952573382202710235779712494058156255962740905995738807418408547176098368960956633675392649401096188036207581621643282015887934752019880741616970218709928542596601972942976365012960602324866740568139755045844403434582608452805617518894566796296095391987458207009477287857239683879131468220462123195334555209193851451281946201708163898106269306895490370777961583357321733991781637013358439622358158326889295994391431851788283536913856581171023935167097281963918816560908308568837416413369834101540039062506314900072786606839023648079359453264972852395146348977005887512855208228283317206928133521041337680684180058558168175797383135263203396223161440361467733228619434370824427237621162407247875702279674342476022965200788594076052383287589050497719697807463532927273297790764891861970865280231190496132974418359850827914604167201628307076028943610459727280078767733704518363204446091838214855505609516969398676823285870096521129624598970851028981697035120978909556665656869413980173770151925948445093348224579606236199517379679493424870333026992298848288865167983840740691912786786206311960955820885562242366463225905982602996326508720293313874335251608359090136747371431340044010354483646334818052171751953643029911042157497997264490961237956994143218219269145909901045385396043852569110762907593186492882794990246781142570469598301100063475016980647713945097274706808503724383951163782530341007524234685591290319691258822821036642180651230999676805263751738664694685613439143682237250383725848691386502883154465020363599036957632926045347432051433658019903118495024090916826403698909277458119167952116869744010336958351680854200081850762327766206837167709854148023709123768735277961915324057761442505076355310040024780061557979597217957041006873533798972641272907093232100881643570778211690862624438084043569946618407919332552053945921653557354107131221390952767399496265831137235665348676382857939633172811898702114014936527298132579348995037770684933337188381161555002558001636238705524711148677545962149794082338493778752807278686499281750572103057108134278718515428141264433861132908582652759787561760147254752479387474271337954274562277078348286305147328872108883190658301829893478379991235040751675931951031606374412804797735098667589719749453939575537336001624290965653967619524205678047236334538906749187246078604782187895395974323037967463732276720337867052165655117412413517423310400719460997244499780290883434113875428830753440219985309182519614043014644141871498838739416365117464851897702326661653463534850633806138056246164900310251169026647391312246716212722736559274363929144160026520873635879153741172922778840068173719145305078432402773092985452117364492282282878968406933454022566995672160622749905741284828039106313501678848229156254837512832204894220570563303571774500794725910975956807359935843173398136592264560188538667856473938891793158327163088776423395542592616157996774233497503731041295992270204491793557590818181270477669398494002605757864835509267158896437746744516903662848598286503194873232835737580243686761495953732555353010375009792928219286565006293718431678487289381690951269740508107334900953363172847553494609786085604981290218749650742871217953019029175575826090738914140104693167561624988273519959548472616668039463176727992554990589901129407411898533046104363769891336019155193178977835819049666252618100328563617865957112163583690571988515769091338002994955345118732919122443348899823547894251056220910549609117385840819903758015579830444620160907962381854433924224684904689822772742090849542890527378958573444718954308972845203865861553843827961974106533239256862002464403924058969573792521465023350119565609365219714910472613761383091148276444816745064026878286025957666198617933811737769544641563955527081352584314235930036881838768752500680191074416244842137023293198293171780545647448713596291625958524081686462248879604134954567228489414377103770929917735154408299679876311072561943147364472405446258774613614334290803275201555698225315984212477936818197929627253433593108015965581794304302531740135067855214964064719553788460991951593862267956673433217305379587187643188697148453464407127916505388806046243107844277055006052136446294868316444392543207586631543064878330627569829621230595116522532017153412200979540864502749166503107326690468491136064179928345101559304961084184452488187207709049599286090234828506525297164734608517622771618956193384072998495713589427638021730426120341718362880288319497977810403907366627730574217118533863862282986864955691022107359142079916158836117758865785016521401220017655061646217458756338896983847485806269722719097959473788910135031085659118559647170038591745936208449916472953708003087330448813968696263629381138088586324645122324360420896435625801096895357437513512638470188981975422665918270487999842246475719308904072513881871650964579304471835527144449013485549967920198234503551980030596443888371001844127804187474984929300952913480454593402125506811445379836247009551494440802911484665449905674315998232172812597412181138793643941610412548675118844059535340341354460535208892711454298381365346183407371955837388444114165653307643347907783822397225778103956426987764928322626676127754805948106489879268109358944505418558205131478463243890973637722116903329208219056061596132190517654481399628326826690978273235422663580446838395102032254204282577828157743156760061893771973707757627854109431525202402897514135479139810545238455607213419020031152599964991503594250149953704647913817579016356921408084372576123879536665536209490536087625238470821908707479678020041351301400101676791019286320472291864925253200736452362436240632814326086874253272010551199168281729789945330461669903776447026349685458841493093361372986023966591081839148795574263397872401831473397768299835415258590020962745616626413843222186224581486854323325727308621778306142085085478067430237715087507859789076808452265295050277271084038677418649047344784550402617840989423174502946347755703212829253208396026387817238182893285527969825763488047900406277384169814788765684025974247128157497756283753351914652350813893527366495326209810472156706554573273684960092268893440057167954729331988844497656394213298388211811144359938648662140953363755748049891796111376216388247167192341513502712564404166635092769370910320166494461473941004433347408859958477153742043253041137817416613980627438313915147005934519537110419411841636762872362189484073903045972060755986984415987418204318533632695883578213990929911958664557050503272753743524734064978698485722922791812421944931220021022147682174261944394463957761000791495146890012457384589154193758103210583008968937387679244198870544226911204377527911997723542772218759742460461268683817001495370759745169574646266183017071731502170763245838530591767999006876649902495344580342149501409954589793096130907109735725300187590741191402712934428454937405258510187705784668741634982422412785140263566009677500163037705875646659438239529933347731455435793583924135056131043079991845128091484454320022250657356595963083131291110108810693786506353449337392285919983583996701364620373110307390291984695619215969795067883789273413867381568815830195358138620489269539650980798462001885540274225855648567987458557790586154092465841238336465148156964600188255949082125349412298916472744630167065771625535026397325243388028291969847066223929679666623699093154028400647767668920025503928206723366709487829705712712185265464601975388803476801564011818959994544468475792772895590728293722399417936861893941943603773072069806123148410213807908890870443704751670865998881012198450781330844687583639775083908264039852734938206598202260186733223883460179363325712153668951611701411382726618680054219618451244701364864956311187742645209090863928279818980964067312166086588865632364030619081148863286007794500059791505891926204885192160617190098080843140092354677778484333929311828921730514155873082507057074186076695897835802692029018116136082708371050753903639450691209846523338356730240586278910593404713763244284399014620669737198653078037268022495388739425749659353807488287666873922185863238651570725406245619988489004836466475990084623677493613692980942708178594882457530357971704356398561647681329867190514255964473431134104385723782415592952902192635870335055009494321636147466903057694658649275450777256696081330800837341633026066062312445461780340065802757862165121379768211788320631068316577853679151036934916376360553743741161679068479547570547513463983081422707920412176979926916714260976111244286065958253443219023496383107428611062457993874240386990326123279046202989897003835922556332631725979521859607586676432755424982905848972741007820133725216836228791977226453008999787099170893524875253300232689666237722468029886688740845886511008725767251909697367871402298032928095626482068917479168433794641249495557972352278193403382811047362710925816350467409523532943597704502974532655059467373089937003241351634026233188810869798007490085197395516413070549735665253400519966471524919837892003650918811443712748313394010958591719150311659366309215576392436815202314410737635527473640254645536299351306539975124999779028636350552675013695407400433027954767114908649996281540643849975571730652645599572002665309508770580826533375810972951915825718558254568813994200334815120668501012176171858132432219028618597801716434303508237301237043225655995588864186937295104515090132521355428841662700463186326225373885705006761839406484733537601306912339344035899616451211150374811370740703683880646076032909419183899291523884803696441104687602733097385341693972817100386526789086719014233510227169073478505648032819127532859224043853607357252446096890429926481556159425398001772753526599636778635672154781555465400566082736992986374538583891595336307887555001727603580649926980615801000619076210093562385813851274465676285300168067089476680697252912554124139643076335082350748174493329789394386772473225306488490183612322275688114575063251829218787149203628623323411354570747924604361558999840780901239785857826197337644681464169807537747755039624895248169683353659479577591073897118583178649308736441016178700707073554878082629655241590442823026404226685523913065072059425487268603037014197172627281304224253366337803317849998590509540410803721255166635902643158143743455850904517401879981862594441661260231190496840348629782529278870542142402597279368802790794433049786915506628325026880640808787294952372006608483362109749876113302648316754499364750078852674014223957779721451626069957721307127810180574576190635772543511598286599754154067527590110314103991140438219068828753145478679747953102167586495995703584819623764605268148106136445403572281173286001254787764648285084681857495982603696875973557038003639807787623679636619220659539143606249158003412543718909162423529888047854398353694106498637113196418658163390702914121832374594288495167348696622319600562195215314478075911220018403195277408822091300678145363174106635236781019532785297660321843413644475765011361172571420503738725622495574423433246261088309704182679961180740322787455491667595899169264709933376334775474487016803827525196082473428188377540731039106747709002334507914267296916079467914486177331828602418394442771664802739970898097009202724148212996970318506764838403627985826474998376262385980538709444443112294135650744108661025080205332498068281290918462144118397104464735971268586400665991586007084119742549083164677304767480811575866024468637452848370515126241101118461283441074037962983049044603012529272300915923321544784347177274259377974361919779587770802686818514383090203869128771531873338562325160306707020222215515562958401946799889836078411458731671090122897293770208141989593642588161552906683097778730327679588729761174201873636755636169393484519943881919974704497853233075769846751983064628703149326272585052786457547467492392321664487727456485296749967989744103249652676154720647403315554212859399679618906963839595640217861654289623969592973956293302346400456639872256784702001442858987110714600169752237005022013673481160912519552782287235672655116334056024166125369511889203531909757200006903539094026333907853833407222196190131130276702343406191162805521391436722046915745060066059152348280929307324771770285328231088197697608823757784493087717943934161157784946698165814765581394934836064677243089590619668285737392048839149319713051335410008517225790715744209053747363393739575406427834436800801402218224677314442144045559116008126541744409913305482822766724332049197997425918800508337843049691494526422017012512115806714381188950487245247555232733168007761817635808458214027010968089602229147831965252751167893811478228134906212463005068751675273541225848054377933349394509193409232755126425330201845038765230901749191065685616060560728966954169276394351270538550381274552166894100186180305351080103416217382860670255769549105088719857886057422286832295356272587968843582227658208622127498557331350431328856616859399730534992662540436136362770596755627161398802065074286521904495844397524428752022527271273916292016875137407130629006215203998327108255587117995401966223318583555405005507418526654018805798041868793606999025466981379360383502902809078211673787928340311079892236309790598747232719503984900603431585371976887913115832088953413593941161611408624149124183349190074505589087285508245969115840673935372577702146652787444137389905224633207653344471126272678148197881160316199189299310493057685743071723807925252935461859916778673113132636282253044803954985750562061358633470198142598831229875253734275920188039569993315594897533056168411473512156355424101680459518723242383463103821153468075672042717550484708285858315213834144268552974358638157718276160889450664676816308264958714131095730686981498746871278832758368640355627565573570801679125707845132154407960459265093352095783282079273649268122678929582730356585869564079322476659458544207754108741323825854718309330970272378523510680770832381539450017406656836932245186275997281796951834336181466190744949696073400607949831194829521111717130157534509319180678614609099582696918365095987098254703279438807896625195328279220452701553680138872791370196821804076051841056978105844899083185348244407386096669409409400171512906040877124244401966525540751122695944901926686369537028071927915730985067204578832108013154898998721356036771612541069906385212000018365873326059063964741812439097324382948957513585412168101824596122399041886706473553362840316082333571511213280453720847255007841452693775292651907558190097502527104056598355714727197326859348478593060835711533085998131384471147766781036550177248483714459550836714724340467081832529227340076263313899638978827354776850133678946739539288779698826359634625351331233395127087908520807426052832121405014805922840433971028448098607736264001004237840339304155650147116143749375548498548018892851725355937894765052705903985152965696872947293518948845826292554799414888443941241528606567086073773880001745838615743285813218657665932015425524043143163712621129938377145809961351979084196847566792653581956036395209609645139292433361909600388558592060216079052206056930646266984474787409351758614053354665371651485885045744769485883729214699985202371514539660557929031200573227371217093933981594678733720949393256568124383770090485151301369165104529368888897254623666138823043168854478247615079950144136904528688521046927960590954335701475895499066469625183497522686535687135956487269764247688742529055065592638545955677975887934975742614344708695490438522276668350433201297354452399206809288471805819961346192404115093224351583702277904946996650061266983228282318161970654209313493661588457283095405708875708862919292405057584868401417962318252969667295405353674314971774062000709476688724762786386725226471870198567714738523035840316566856116285769326466708917877215224612974520915699249607728289062366566602519678398175016563495184220037998561701839224391805902692826676780658457486849169215241685832396195423671076476897712712906552615050582878118983350572062301372512117726874724660792068551499941233663789008108097327438303803334680881594145649605553451323984298890197143319304964131836256992523007331954617438287368732499674030988871543356099786466081937204422255999354600357499677350593383290541236369728359509368082349106767457563835181680818937063665629991032922847175409052358978320899483675750978501498331719096831679088372054637264606605982489578793857618301550577233119413412293661894275867376639974521375491680564520561568825625371032037565765889517225861398916266846251747082130298215760286057289197198169949631749367074390144761641520267717084315388758290861306078276146101483999716618229381790060040297570408600859639323190252383628264312043388486747864792443833011037059066950851708642301740561623413123433012361219706140272158724792242166144115799640146734040683352387231501653187060879960103562817837951690000681199858802015789862639572043482487846307752045386902741486472495323039598228592634989137168299371287464917177348070621999076482547092529096917273185227600622465548925889869397094926815916185135680443463902193956612806561185796028492441517388626047848343378285674818024049118015722895997336108180764233005361137609194158981920483422107970102977717736900047090057155191387746144665205108819158889227384022413013099443875486730741268715733706121995536688703271795086670318257502180945903023638853158051593228661887348699679198283764753478108301466599552567555305721579873794104711823696072827332575220219957735940957881565695401125450238183550290361577907284622613082520896004712388825237819139567276472156092040172188238306562840475233450946973514539432799112646760857641713653180633627002157481631551081700208145210076024196816057878413148594195869111874607296180714102093942651998883397276234764606830737380246801939222530459275662835093614176377372355311679077738459915826609475758931001093900498820842234305514032581948909683364946936300886762019987081469483755826133626478890414472585300299375628658779022037504246745718042499990510646245554541920031737577664911772771009050000791652914586998058955511044898471526858645364330508553833981176312425793798642359556226540223119089605049915817683907616419380848391690628677844112231004080750340169134674599903353860445015644751923520977876742097962849876590996017524671792044548081626764116018359613553824977077043266211050933069520851518561584374413863431122895777460288974467681358824155474440071839425645151562238304063350398644749250512411918237114653387872558636177360906547174039967294635093284048916677895185573482940396882273526534556040626281921195691527318696191963067010543457752079304880513304058038210559122755783651464020102540410263087988731956450106344093915083785995497127040021400465778707850184453623148552349462729583974776660006969320494141182164254730086307722963809733328604224111515157456827093075668840215144627068727277486905906848345456900258686930403460955675024697196945299471065669132953217456936346895397535699875987497320827082977536415388807977527826125751015913370205808452377111429894178494016194271283184337319300249152398304141598923171526774338554946875384780814220588261235705486553727317546648507372469110152601981664905647105353138873227894138766210438936508210635380892693158335248906542318358710366175254653505041449942361872015018826749300114844537630785288855394627932365953694485086785943069567964226646143791711898595476530020749160987779860442526382721544514527445295294476752979345736624401144870263507057525066867236820089034268908089830294529516021604601132717841224673496823921998945783680197230636659978731091555092070713639941610413817068288480394434586656539677432204826623712662177388342918481618716320592457901735109310282517800814200145919287743632747543994398672354466192490517813094614717185915348855746851060190846591510553905255482697764301215113255058340566677796712924148342797683484662714328983667948920429643126550981618327943864246460938004795139944202778207985217284376249078874451278215688486659706990278772207937158220918914622252912377564030112560335272154843899641758057123753268990341126443913110613435477977074536565765551430121630382966575793353459087397739292351597084298452056910964038231141300821277547207178559643903602289166376929623098556203836977698848265656153631574489994479262979657394048063083516895393938135457027085668629317737315994382702863236001584479524349173629914581053741390635739908169328023589372653515387807008218657334049587318496494358823396264975337841028087239139539627828939240871023110235181190209968786406728478486905710557383509272220900843492653854384465629490803329607055831991147155161542302380859360145803993619778059705563146074221716651888179153828726586810133513018149718273654824783397628986989167665910432031120389970413464311931861753019632841782583204856937993330729014383950717230789689600444095349384451181858287281453651662299715143388626070227000083183259257440070352071056449892955745113356590481715669285936088519249999002853649863028217925730290304248711902177820298641961459376055180637600273400431821077954941920104349053357953557641746702594310580820493208131518045082756841982581189316842016036458782459175708424407409598558312203216106074536406486534902831979116355280926579681145478830191566811561136003270399177025949289507902350697133899270437940773695460511287957824029464203170297419431167504891342435024384311982208680462689237891477879947675032019522437795162313958387975081098132828755729214129338834330380336031470100328888268519125170853509395792907168497459794614519828678745178439334664428947415086684014842294600223347970437411017849914939194599049732358314974440791639560156651319629283072533014849685391934980791507680320232001149524836229030448116876231796930578254899114736535007275582255294411224608996722540019904687922167217172038014027119775055296340789058387811692588750955501463149007570978189741098618879045970963702692912773232978101634161949443516275772582133963434979450306095120489746628246540447230480982798818355931886230364450613033005874020592378294299821133833107589874454258040784785951699363888939758182755747666585553187516539425362882286103820221979580496209593295961631415200428025688631352686964461960776321365644952391832189659046129264101109476352956638142955201952656054433641468742108717233594778352192084835302834759016949700471936264825275699011590767562102515687913948164761484672479710700489604992895879804658248172885271384561482630820554555676001137300312815800725953472637821980315385594789056614402513663637410643311810282920154939242033727893539934209897014509347441953882161786174628177795993860322270069405912659590307248118938010473691407168021549349149538063163756493127509015341766577773240067192944062858590188564243752030129446162268023689922187277656547389158254994033393027018241054133785788761227388041350462838193795311130913069064465467467685989625670939048725968327251200493106723643796894300175367486261307931153205391891269733245548340390181483264332627679604877985243498558919751597122525535461245872912426039219987658077278555074536238879660854222392763048054521381115861494898694498775963365615272309844127329415589381621402013638959816697820916785848441231557885750656788379373576493744072778881688863326952012553524169059104548048648018052275527521787997587976909663695359603725222572007778993831723691309420346863069983869339385778676447095306981728023175550560959690971335004691386110707651431400152113972466382304204730905394927644685659255237576915327017958987629545224691286462678185384780501946801799757905583202652349981873348663689013576646190961628074691940804904304619480991466973046235112205495088817196754221650142846419166553643962369526168724193519755599885322295466968398106971409169966191846078793063659500989187450141436466440277796707226014472641368764036207668711199123065407896553826088094642466193924511701866908558812018336960860892980681712843182375618992936387245429373261377335077768458005881574909862491692123284419302056128958101812459775910895788293652399134007140571702127054135422296224441729179820320875146235319677109065378181919173780953649758234951161643329103636326665616288708396005737168490718623604092719480079739296390101216893309881369386610319079873320569962411473582092070730956791780807252537062489485571421305596569047359789342671941281421074222675423464106011215119256990621300224542859481329473613466114613363747352157789265399371346864234037338577006841856399850323325366747869914803763336917942676974432580339822265793516146517949026408524117934135465617328317059793199454798883464532288561622962547119359134521264290589238849248662180497357399551728886705698608125312325881262118392190475805966862744321364411594622665262762127057463242227417948268916743877317384950244182234214934047892585052311736261742486404434325152098091172172478030108249827399858061528892425318836211242911586737861677053431972214910108152951845869510461037303433205155782086317128976910703601155743127646375420062429846086280622873246543853230129541637823188065316056593296431903803010981345217291844306018454566075102898854499901838243849967489927032722907420063621613718120087540471433322988182217704581469336637232024085323910375458477882975514024716977166060759770121219601249000620378095361471800983577175238594624726919351492833959913524130808649470708058270752228743275407155174710151670664314169402671710042820421390997313399176750292942364999119161137567687005112314976269802833999606514455420419816267950187681108390441475916801611742858770982146314538506444452263205275587270550633537339174864450175958028411385055263233297821212481225399670423640933210995592444797462090140398145762454173192314790496182702530889286749803615026901113975095496790845325036604980432876106563693300095624012025498300893865675704845358929420118703258759137296183540903618112167147687990471865490944249365599983669168122460373948332317654177617720203839524836758365882111714282434242392731180237147904536118054032802354654646319662127704017587392014079525330543304430772256606391921937812274347077028532110032394899737465946600762530306374551851091364553113887391483857475014139591169901148118284874271944795792852197664692615941839940992130615484475851330042117712966026924707620631707552876248770840257584570089461077339183002827738337653474275899228314966336598090630550060659010226573887877833877410664565827347741277527292185379083921467127498744392854417355756554746509127315858420636883597082263254966395243412011677862780375272295235732564337378232855339208998839937192725606169743883168020199739900796331520118885901688487749989355195747899710834430845378069943708558272012688746726794547206004447745077056868325338604838756598661278611147908635130612876489049227738181261693332612375273808638171920359556565482325295467520343929788165270029773977801464652329696629943154420777076569290669171466560245371280929732234467160402386686698309596383731931380300290636873267372481750000973242055597252597020880865234006155873752818291721868336655889977998831574575690889566699536818737823639043947585361815083416376887325503636892210926862143361529426301918334567685953520921761212547979642880325143818545836988061379985679898888839257830325214431711187237526745847238677620432839047340993534205201977986484060679756251203660596343950978859033352548867506678259801703963554565755212625043021768089706395113989966882753298785837916648176912895845625915174986176785493108935145340510701552293701704406881507218403868663740240275617939831072455697893767000258274665439760323316422990380315860335633284291703966272208895393828317103275191860051257247929050087079145285020462790750839159871300897135487138957621921588836707474031302123712173606064919706492774416647947128073185566687063919342486049941901902735718444967225161697373439755955582852984600157070129165319894549546069168962507076951014233288769640644966133226155842891217018447175146680721220269931037415185145675793843942645023784018279887000465208342589908658264187192670228091411234497882281487261004635304778451448893465636236839172650353759492489748028587993778676517373279757825335355820672493024397295041150184345288177558395048416944327385579496810734329887954059301214741438312443338811491075610492297853462191736380050951655020435701776802645279419208525700001280638429883450462317788078778184495966875942346864802499392164672300951783678203100854570654729505566295296012508306582927533578597937975699848459636251798555146400772239823531441865489294574684805659481366102668276110973747390155179008751950243913767471488485385030553118780701520874060496105714466492020613659300413027728148992929429472230657235570726692431235142041411048837167885073554843354298365727690909627914176217771879053771156991062331197521447056716076869494524397663707241628767265198703660712740169700345127323097009810503258240785814486598801072157751131369937656521848421379079764494897163975864758144390340568092231247136768608065578207767151668808286190994750269790762723762418629718623235566882076602643296930387774534782825561317462613473381883543722698230033762915216036891914581633205901952980306847199950693848689593142387000289987076224049927091132533179758993272570780833469536607225701283876088846606667968530477916327794774476877222633216688656008189768554720550868184115233123416073272932284275419190712083295941670565114351361164703848500274627125645251102123089264986280327365571486762908289842967947796382659995619197401879897948643234083749592207288225433635110263830939603778300198116901618397149749384914591870456181425880961584139777417021509473272996845183825471627976429062584704255554038220953896051813335654441054564151307561560381728273389529208994096714119141691645719660262746714799602449016388985628702156523306931047255096767318969355234649853066985174779649500339532763319261779854394074561989462766515515850380261914477066728820318101501083568984534407734660430346656170382801293649846530341584364180724061795804866968838713206578789446597600524285512223547369259271879581868037000871595421138498327543695866901371220639755876495802696890764022240649252576204599195883205361457174439266003878043155586356441870376564415762411537640453946334566704683605610567818499236734490938007379905723843957524809314542424896724046728947955837132978883006982696906983759445854066137081087530819654154507038617638838987798415876533183687958431835760914798513378529868646951835310914339930941054166680241540931307007391815451815913561071075607680944473786237061485710166741701761532213098826299584892446004907293042069558034535195505714411480796881563105303639185068079977646460559308183416177084716687704733889789789307170733460422060007445419483777930264974249672762764374780828666876617606360324562728972682776603659895932609988327806046846355010365943998033521432244600903456459827637682872041847595022288279988263102745226152456330400912318017364139132732389349607174576523103330763648848764993827420532162464496368976292110481525343093590864965873548234273666815470517622803742038993363002674585701160641840981615909209802824127607817415505349636774634865271052190408417403425923590560048835644290856090737008493519152096049137863585705184350032202876027280997591139918794045528233880825241014823692016091127106087879289115829789990357248959418950956542047852024100552395412605687520550566980030329878479735875570041347087776673286675585319182261927051947302280480931599943536617448978037844122760596547736586193005226029435945132683011291929933211804389020722748329569693548127747733256471014894547825606304506369820131602761775649012823744212002718458511897881644639725525176234549990237456177326923051003286117997371630153042337720532208495323770414695095973944720545257369932785676029058853741671751480345952054272239429077372407880351314278657131234009782386561129654556674522322578424258442952618608772051985961732313504975467863266431606218082140495239180694400893176835076809136104758144518046037816968482778490352478487362185094875664076589432935323642617556483516469402686277449933323763621519658946602594347014520689289085629353837982956526092669377681310097866333902735570539300138651783677222724448311683844979954361972459711614195744890104007957927962018302351396390146766364530705555506371810074150369397300627283325404399994956212698399537474141964062431991243651938354450304119752245649605413711249647655723303772808309089140218275149365085952550583100571716911458298214217329897096669184274657390161198548365262678868270567889853149528446671568056792883439476009903223345691836543467797586940833710006074095528848519495673456642140209649911764157111971938949796021312476049457877854761500046361387738503801533342204127193692007886402128048441238182548244384174822465970329589937509907783647801222128983712255489846618907952236954019814677772564707476777340614510731716279311157050463770317511994010545090354605925696121477088547929599927802669265459369672989018257190861760469640823310203871515305922893680602055442618275392797779518329708140701218032414626779418686263601535816935645039247600251460017216264035982422568880109815383230689012300695380273488580407489826309673913891847798370143051471200661367725426252246984354751999088999173814470680636746413961319028063533486984342270532683165906699496877666671185595069726591044950781476778337046577115361353323887376656375543692162960790589766451327801872888553957317538838208864862606022222171231577793244087356941587972758575092140722827636441019545952198360493968874000957616953912587227865221688115058843590158566519191983293134183945169252610836244657133529934968507319050351704841268948333633271759099477633320054630649791254400148694650788666985769223074897768067925464439433652900183856879216989237528307430886379987175443570288037764486215379658553802665509782780340264324375841242025900590125045639883712707945765496712222591746375790119407521356775591519345467441215099703456570287866743938656013026080196414672016868356950178629927557795902050700703865721879023113793929854297422380512890046450605109556045076465691288065864452423721613354127642886800437319130229490624690271606616655032928720050934081977546384545282753147398006882826058479297868081557862630789000100715886828141884776329496155452286502458799990403830346992284550857618717718039471778161436150280333953683650974684031695979649379475030959621794168137111881074401526739962983472738777506210807733560966088868435501586460324785792871065208053502398805722851315829988125326944846026060119290781079884496998526246252306132970078984211612474248242917196462843533122268867807315802277455769894262719023581418747060786170746590877833031657539279869433685135868881761334833328827254350873077058309735464736618319626679398385247755962804505956726781850639687857321003564364071453799931136720302258712723598120256317004017347135811815047957090602967312504546140995017551521649818275623184060446831208507634823124703531172751877975492165048949353922820143060483888604688982930737546703955286825804149057364570596817013736985865806649675640157464606559198931279753526905315884282333448270085228777783819144014106661085767522779523145214552153735961256925427967121253631276117022484868276418807431791712121996320905580625554553389781437836331042930753257971846340630686964952824511418348626328939389844818015780474866490139684094789662297227759829765837444130607848446376627724776333340186650138353377585277015475993375284415333169490351115383953037964122415241450293658355807563351672122982807656080734717105497901290008922167739979236041829966891739836831710098413317173206160068055269713707527143491296842195519216897618413747671008574693242120096131548461700734701129257340150876444356458916490517185162122248898414783851043869705288125063977635418930881608705206440635534262449081035062027466846964770913349885591775334029361908823466888432579708106041924146521932714147936856927260942536087862488044746487510094734224586850009825379154642919508479153418843584656892423009748703449244267703141008128004900931140340826107193190409079896507133652654614561627624521742148913953079403573447825777062734137516245839642709676222973331699057903107211078468956580050212275137949864534734829289113766829861611003073698478809315873722045378954868093274116138126177164030773716842457149157613240784421035670944792666113939253787134929594133510318692758122354950403241500591799080645376455456991405900614292772970613574811275993551677543502830685156417696368591895062696192691569250062574284377839558965415527737242984224606281132373258256225804239958870722368572118754170110618934382053382625121135160425817289360221822085895242799884776738417596202906665389683849389887900289526168023040115688830895761996897811778656029687533697014886893701452485925287166150420698769655189539863552952729299356255883060162826301040375899070245864053172615583849463689879697111930937000985833082000193970344260513976548603229951599002387243091319303090064479841129122702933515730671013886145154521676869081559283378565326721420099311087619965492548617318136546700136500801612590380600038700913171222363652710943678137172819835552331606340488291049223397829488458316248472804655278216285036732140969346066057498244812371656470135880412305712380062569110150251642629221063816430594866734854852737872744655267105576287925502450033894042894891418566533133030919692780049591440388720003265851117746577313477916487383314516751404894802112890106252957644454683267415774931380697593339166327084381688964338839515680913425633978817838254199065883833996593027055788128007526832239770622245349242498443647666227284737520493872616320532508897162014946497549010731229519001667425648229377648678644514706035052318271801551003404375374876092610883120051484765428699512163864509024375172687883394318037947116362646464716712235354570330473843354553770725454662167463407373084714828654462742850894650703878004413264469582377021771667651113985296583960641628068839559643847861473932945117079479266188469202674548494395852294348393043871892926708269530046456281601021625054602911604290145346384462982196957640047327018225971728739219940272267392845875111946094680613706245021139292863869419672409957993339728686240790860846600745022224649242248108443264235025647581330858637373921077179733663856146325037617983771273962205986305193343867706534622336162361673429650080147517758626432315768760923290498563093722949635620555776844893665755539974466017828206539202192372644713561356721993576015797852782641943996419943310403409940312690365963969926361911827423607193451539952339302047645457965438576760642005618030854299203330795707542223427875671897375467924916986401044994976127441071456881952545501492253007471228358673271241172452973920723855359106209048117479154576489243503275556796594149557055518924832841128651945017822651610111389316402350088408369830533385965548473183580853293398940325208126485327712320344478051564616672307808491338153575544361324848012578966957400889259943090253361894250492083223816760331853955824264253745536192750319752427853550187824800054137331984264299746071733139614228257447914202091387754439438734849070284301077908806163287693344895264794481966913144124032179376398667008993460631451054962999375566585092461631234437165626169735255565906073655888815979548584992918118124788996562333231639594543404814731516679522936663064814293554813887412492261708859684411378720787268154536464119489817937462907221866883470973103009315874219065503271801189943383879927183204543904336384814153766435624347159710603912501536693671721195580257476693520829099227434185586794225356442293760987793866409524033989346402761730190696530857392592236980047757461749249448057335186710770111188884291693519217155594753536096763022468174649791369974829140353689452309020127423584995856550300405967968703402495998086592612296094088622648526027604964414176032843651391268396403429668089395374351869409324827880424641627644365993136158629220473157676124674313531074614132391452182502721089081036136923045782563048488074150300446439133673341546434879300403303394259973740646540516997699176605005302498665616940173843449467933469411229421089971880345029365713367007972318161172019126599655807063739863108677475602087249471871010082454938477508246378480172764490404598124135375869010061490531628278423851474638547623783563983118885562398301297084845720943675778724115231869691653493633029620105828075991502722100014168577790980753084705298821770194431473689616068068366450116589277584926516728591193624180640078595634411427262666870293137602937868125198954796906739759488603788935621888625121031879018885472602661166086916859727744837579676659440764193489524622323950684660042470807575187651750886425400771559505839186970956474874672805935939394961587321432592888841426824967895936146691985662239129358006491404045717714486394486887457043983079173099461297468536326368682563510225986276604150367955731522003636542626754589149428107613314954764834256755113943675538041686844787672659974105989854480188228985012069233149041008600039776860118450028214591985452723607120043289552049969252119970156024143502353748276091431361368037610527302359416512094268900999363032743261149265259122560595261993292141711594806490337250647328248258113370394458704810889348502415285746079807361843399514858913510609302073907313238746116691596371382535579621413617738842748068379159411448800578868588523203700844084107069790237336324970282038803786398627634856998791564123290513001005676398973075134416379332312176048259151381142719652218446637234470142483180663990408171494207031491942848957632262186705840325506662437039437735206319679109176959371762458704434914728173748402824795353586468863774018986655501968573100812644101103905418813038892721562477044049477131561050339756540440767776555890776398909336138539806410703742716992022013631793520210474077723780539046476580370575887841161827912904869254063147186102408758779758246257266552743820100914198982395904274417857423058731362357314167906502568811183163815548687904499907823207862669530521373642698079253698168579037069783069813879606302490363726582539057162674550587563443647024196605141957365524759518339892079870836350636767787090839424733580361988034732138123491393181411016886378002291672827013557068048660436828797539256912234108073584136501513558219080377469493407339166038171558786683819407327721807886326442173049503394324180973558919050404092768715441125566497081744768925846018777026473646447992278467539191962133331760812550317555233485660282040929261173967002959588446113370875752372893088067148775877944185053776432375893940701036684758436397888819394456392826907038567311751835234009667370744338511264529405093435745971754454869886193915893509868332270804151697989998471275468760006469032876602230501161457669918215656524025146835703931985952638530692058305732209612781391082297594634396372717136203561557437933282773199529766690637586035905748469922449666797079996920824414851791653514941503417820225780065328414595921916181141981742112119279110585266796826073443455847519384987002115919118403955205327570346903415435818074365784505220387627073395521141603349224646843452123343209047218497445551230291030604493070351208257326263140178031172335325991077567103242878076016150697188799656389149728492096326821117644246429639029627648135024176732375685009400525821086670822982635233031585506614771660506863062515406135172107152855868138262561029285324105338809168911996272572548094110192045429989552273485079065481359098856979593889785315986354743364988285135302603175213321962348194237543422199130738912588966231302921551552483389652184076741693396731304844254984532053975481060722157043480578222639154978010630094422103711685628430642662783787743531264386868485277008021631178274936798200573291308683933439662054863621716150325572966312073350604425003819779950026276451736398528554396375173969628388498774850822439223192781995193700172721004674768330903061238165239064128134164180900969499409794421776509353160984418711439714070223312982595358875517924690446535511528694595857017198303461377350417453853813841537370905805370375743891609981264317729329975217613207150361701764491993928388479712712607180936307609432841376632933048583329716772649612881574355954779864374334442913577936568875107456558332319889699804893170101533748698948569143179269080710364583902544480754847566439555609811326681613926936237133073004522795460206028694058222842257660272332172353848881309615069159836305188466428437593985137520300880088770388472353758610049466197595323294845479976863048385177854888192304803304878415798084084343074317516568132380483289616547822097601580371262504158416568033302740887433685277445793806346879595473374456561714336464017930808001938461123285645869379374411978723872287916429460445704535049978137350393085023691492414983727026518478106971699880737794126630405287896061084867336737895342393915958671919470940533554485471512587360682771711494821425498196940122061173523147566046543428789013656089228368729830560380239791839816296374110756747214027067212486050993074283850463766429478395246183353111890862196973778050501916292755173796143054780121207932516415889419825222233846754197110611483871008538177286835522021050243677615564328485850755860994540392589341293801344105011542795816197425024452621896541831772383590190698243395212856850591150909683707396354159413920542615697759888841087754667382641155312018118749598909523902004134101722187971983226571685809956402611269995229542313388342463041274081093093853777941546946711436339965984474245141471897797898115568350573810606493790359314594770955500123000095119916444040427837674750068227263902804081311639545601992095285791694875168797913189534070879244226043545079303781833589114555154516488376388421661475250804905699691805153211334579026875216629888370487297218863269832314615478034376797662192128488550186278979431551244491846282702814357658267249533989667749077485825794478535308459090696088081777222897060603522676587738605495001365714832107279183719169392394570314384922048684070960759365016325572987159736718872560309855940859107450601100865361871875407424271449183077266074291514354535229765907870188717384582020706918953472190494075462851196234557775310062818367167513358062135105198168669863211741860860862240396617783197988769704301399998018028420808971186283670325047021816786851467167568459907989638829382468012925731489426932061279575909690723363514362442482871003884710952028334533739870672174088219922780058518724897014696857091149047245005381024064165561535592446221036166874216115010804848376660187062583250223943649362644288712815116364408444519727952639119481260354120891256532262475331592516877968259836542476550787321334113303751711307201948866318414096102587002214427203345555292130472054594071924913830706155792630704957577067692378957966950508333919408502810939723024311576234801388439557643728978495874891152988119509241782154025133050600874353681792891903046244963785589648608523596916819177427379842930950575883420733204198002764079385400321987219812991050846123641082529037930410713945590086796415245733675830449704920633443451068754991171489074960943785367318781962748349386624139665122950425855106692662562434307479597049704040851528915081759434798539090769981793327338800350915610715973709301202904363765497699657499140406521049398783468027294143252580984557817889935850823593956814006684301841646569921880403274466540807101594067427255359948838012766971333164827783965970380906176329914227551165849335299619832685567217738335478617387444643094027774028845887000559630141608299502945360962944068075616479046367677635709963426995034681556403975073813477727473896127624737869561219954133682138161642986335891268001635326357860885964687014678261488118055033626180590417008801197261541246701240796675777252324680809950138258902361514495889320038321588580739764064991897771940085254723569923176386607353235890085809376142515730550972228733729958742591010144852272414299960311402026064994532399628558282078429676383397468101666473954524845631768745209371603239531892418587915407099099729999127110584422469775896157140855430709642102485221220263554620781932019522707810069238508854352922340702494088865681308254874774673891908692775839586410754220479161662920499580573102759550708695450848996080053914682278985561371857295947915836898259282269792174924411954087237785742326401274357611616932218336073399541126735323289892488876317843706829164682209926631084517301457562291804780292486747878656499014077239073336794116405076875424452622326431862244221042185058268592294870522474385034755377007568588826369156073675154504115569379283783059053122894712184664288208353106518168634032138610976748681906748301706809666063699686917936251065135500671326193078253916856329840339326227925551387975092634567169851453951235749368719500123294318997384835161687033004100376991010181501456464757083714911941839793396083627653103370127612791761861418970391544408335300541999901996939618117306182565725395431832329758113506481638182295173092579560653661671899567078335397116939723511245374472376787415063194006965959640104424038854049746402486880336167601851255891469941473340408051730653021908596031146564019587795608014650944128385314954224892817153781909368330256561869470671871784489928977298024582586250060875653221986708620254217573035641741210778920189271161541134595178930078854543554431393083582699001175153381187247454821470030017326255932060070529666719897739125547133381622206572984169970701651798291195551077698096768486834755745356103084215183285005844210299567456741854367576125278178905586357231446105132811652271501129936602168040693582855571469415838409913669325608697299937469318318954597056660411930431390452925788633849613558160726681962343922051575183253513832050440808474621383294997938749067204113148982118730769453950458289321115724239866583164206766584459063396022317116999718477098454568457137135747024048242788191384002832801027247477456790779860913691459972124540827299093817207720616761925779901092900834300725839624328363538386608814833957672056876995898801319831867069251106430652001354527441150596708602410602241179358693318859610308752012190445689501366821014535278317169278012638455719392133436061500517700035913024364287065705592778796680748025746488590550357804645371811194880988483427264342635053700530005835981086982111739330999742873913430977307496746224197155710489848202765349231370222568548663694485257425339585159685672291062875052874486478181348684052574495620545511762173198735811603789773052865097478764140956266945498578956305523509661838475226344655066531148458965994974278906230971823627818777302520468888766475259386114555242672736611290802909530231231536203433804069086648125927393564505732233615064219889492100558640466728257911573500223600078877468038438079870167178034997361255177081622027365710638226436638594853579094664228264008503826812120339983919316332388205036769358293306982918155894621731412131259626072118950111548172759281381656661800959464446434281983934186526265763861829821144720032458476363131136905051561495186443399408408351791607374243079775394322558548785311068077221101282583162519747136018537440801080868570051078446634773150656188367328927843471305856517517762263666387961006616052381052485859132432887957324213142313306535535754635778864529869154350827087051160813057507344649632267689027137099163974143212204758762047313682177402122197413936421651870228550314619253823094931275476497913787374275142167992608814880315461620508774607175293887405236967199149993347763022135791935334045572449340311490473102329334680502896623523562777854009306153393171633073151961424837028665359138912665853182614669097562044301253094094399691282022276967854279597270459879478727628685806850479215305831524132835713174715026867304602979471598069467138285223474744705038452635697288475063649183345359030472339432279524949942435188210713830340838145417117389147661004061831238814186852694415465513814642387773049903983842985376549278033573871130809387990235183014137763067946554369833746043661633055631095879190797671421332402798403324861832883774050156948171394629935632706260993531839489925413771790199899233342845550391948337738541860093236594311495071526132160707198883061026406828505480647172270884550176266627133578621563134696567098857720780064700476198975870323193740837175952410815468966650019542368004788512986313294002602705412382947938871657345533328997777134754605211067395650170974035482574808170981111225434325725344004388963640194376194411529425943539427199341989569358438801887257242343242844436748974330485574143971728000523068158539475194396179520867221633943823614388747617243811503797371385099255409251932365390703675278593095803245425767740670294570607298605274239871384132172311507410145951389423114608164929382148505271425679743048372593920670430463037796420909654413971829231403938769314068193120706689794499964503446232245672253906511158571568138350102627440897225731816086611605951006914387616162228069311942569102056258561085184180869136397230095701999284555212248332408022511849175468612175194564402484983041853567492921610992227735818282162645872200118396400141413478827814642925813340393151287335309093290746080213710969706288577449888297221279305534760021952300928917752100803196271396524811288404601334146127207555599543326576476884181251145266728865047613974453242103709470639548569659719814260840140325481141467057660530598218714400700252516747135972407777785219344251436757290710543314289213193542547109351026993497697255772070344044384432028515844284071951004961032759103229342124501336913861245084103540498413027921014937154638696366274962204648900646707403806077737579606723148829367834805631314937906571905607608415078686990722470129787651105600584384773791809053883716870213957320568526824149250569683691829293818906222615923970653346406864029790317256248474310173117919254421013076202020055721852542700231664743746556511403294828140213752116908826862986021281442957583649373661260285409239421968747671204801795397964124133996538328085852618671683714277604802444433076088322459314696308146982515151649176767710095516485777952642432147664593914349219391919913576285924305974021626225691443283783130043135094006756649762993265744308034832734409250068471062447984451043062736602774193445101905434595689164166044812943473783929127361111720217182874977747034271663195738434836704132059717905011978125424822997727757244928156835659997451625691713331007227820335777943372978141639927560399833099684515777778218277301314823716463857617021715921191654454055671122133600987838737514215885437249945690213400935929162815165044411392584637805548905295404902385918583265557323383569471950104490639566003161546233028550815042185430322436398470809320498644034094735653677550445872783552958389560194465916894377743185114370894417361613996858340236977922041908768726322420980039937897841052589009382243943984065030984697069229421657930468434691171354680620846187484408024509140827483065722373118956005846512488184646728482829719133766426503107857086219162271540134541063651876159947568256576546804181505017696423026919674332547772653996417126557404768206554932026796249770846351828232750107557273048413662794488683042876227640485171693568535627536253319003701608623929001438996308916420223568487377579987334004221827239689154739924834375532831612015070064489595905484422479093705440592020366325698443890553962628982760854156500223906831614815874171429650986235573315713259124668768491750284813620074076945869576504377130493239784905382356831181404440057302612074015238913462976241629819351106260243322891683526507778773472936605589323896992818838266037960276869357015799817292631585531272305215089165183401774056474196683665490109727306309926081137447669163682703069454273628520287474453583424357475358897624489645155562649313813456034178005192694354093151563911545197410156682949802517512832867292892554295437310314777203227578065613213069434825642361562085920824579799035210437195088925184594791795050177139991063096576842433759395903894571797376587717732427814902793811098344069570120810180899138397850538548051831633849363878834363662571457672624821657766292557719368710908821499491124067936423997537179507951012750923846264479952275620403879447039701053274819358589402045843532888790700670882126112553605257451637135296963719284371851404972426494361544526736814266206215583212343484039920906227233904923689990496060604299923817290674073925370685139500551639194270579719612339339985488484962914105056350452239855037554782925122545650458648821543400212041446370031507052649952194752843202268425574687011169369477266239321381012391337952876576207755261983282715928346733443016565164102721548257887925407179717275214168663195149494240831003108260971073380796610997301210788857214295025972747814430208085611924741457358785342542954707264632849507856656150772982444210082253886375112664503925545900133755242619833119944567842163609832167146284987326354904660543434642427031615373457893901322298609217389905337702896151921383423459377174439736756855369855993620462114370695429798705957827961819267402782860516791034672325535780934717626232802205052433794203428835735752628415633745295065644882744533396840150352780775120779406938564511027413024028199484341306147688667754785317451984320843909079630737282229416369398412193192323996625432495131749529878678448740667815186525532233468722557013597776008310659964071332071479640880570998220203500398716572227192261307073965587381107656390551393141818982191512356218998555588018749774242817247176419075389658875678087820273297282639791405070427294397284951207374976492411694876657661783740442138437827233437354293595066074867083734847972162825081549232662485801151964656546596536953186015731351161159826492716135994241099257632697643044877061610293340657068334007954621465633011324380735212516011337821554189840962001603741652922404376536146191144943953179214984920416526424913378293086819524089658741504494897850194357398622987481361741766903021390532579736255540175902944255581578216361829667559036952261202616760572432821165940448499059289503845390312452784962080941393050253053225207671299964943517125737426671448858637066634421692400990486353040602030875635832608555077785134739271042392281326748021506522887811370016691494272451590781116487892887693919459854125258480726316725440526040464438977339444782806381859580209442185073698493878639821762263136506344621420003415258170738025912231020141567319233633403451404873487960356006415172360172874080283005161908680713563484490298773019954248923248822263235746322980677265297799285256226618215590081041362085799577860911023618607673403913812707626108560015032723053096456034059247708254284384234616145986644903870812944916981272406376793655212643126865936691628839180367803932249234994521824554467591881630467659681587440934890826748437135865103921845688596851657778966575722570421046405158703795424944713489379697068467595316309783529389981377415140938825228404245151656689774268653493110589128016733183004638677307288130770642015664426745247845154615371218491151740905458335345979958813956700030625403183061828871120809438126378786278453814741996044978499950766749963928069084649840428128765534010333553751000745323654641144284163315626117425624619374065507528260553803373788987878123958606709539274704089170490237460851796007215510516484430885397161382011170453819744944608005065175423693241871141214204622908120884938397018894704414315243107399795580063368844885253360010420835625305159237456155700582297964448769725723632017143745317695478206764145846260206878762657054121184184606714026617160098067280542352307538571035270758298375193514448075671932785653820570455383533071866619573508817488416121520547208914938931161114606578895772629963726672190606613272611702080352610560849398062637391645734387341935141034682313196312180365390523173104562659034614786123318201961523047127258616628851322110535047187044667448129832424884878821272408105457571120059919938645953826160984192415660081367672162349589357545396960451779476375129221399976747371764083411572400754200248518178483009833400891536593454875331316037542060421749377777039096858601178637232453052505919754692985212970816519003194432969371157137786762153102950112507840926160278132757618521954041649832029031256677991097899724001745760077804071808208801918950690801690094782463359444230829962259967976142362621059823685341305677131954749997540160589013976760991576831768940640761270706304177809809525758756816188273170011049749131567592171882270419300340737767220954692974745639062365223368359429393192813774250601665200576430134461793456983917644741989119347242265077352688959973197410937019026663293813418618306314822188537557945691793331587248799623454361488244426902783314705405128581869751360772833149246487353446333618299121141672872501360843446336376902911020881155345910277106434015873115306013700710753454857389495874958506484639213087364243028978959051109048414951050370814649815550528348426713739248556873628493433536738899676953004029173068006558618967361712303364078257132819419321871304529942199771459447867845586635678237973781799130570812699125655858073936027282832612787418977064911048833643606467290046994977169653559745602793902696649176300986602644033094750059732259025648073401922960775881579622705517509808921816812444549145928121783711938965932161713529613345273992014006124118860898702843509746673563481654702190120783228904000351722919587276481122073104401415263400083854292869573861576162619947335085931262619284523267530852472474376212454522150465275043145778678531205157602295384064771715328049362952664441556159051261457559072147714250499514489312778029480961159588438619455946936942632786994918070004599624671137448941646520297250259400048111702347991456079829139776339799465023061983047399271770488482524663285367313404603766544323432986028280424183881429488029489050189639264211557895083874645443310505098658787738144788916010103653673370730500914120911001139792393717506436442051887805176456427542782672713690746023730861118333955789818083158374341847005570330125568977675172553622760183350688181366715762267143380912809174720587312634318408199928222183445789123782877724555510182092471448328780757791713846437634705919225753124756336506952552121868036816165757606330250663423250638595993984960156992251303444404329342511654780223502346543067391760698555618144937370632788598635380124184889567817530804388279453877869052390111551621668265326843564244533598313413448117047351018396910955143580495045950348528669380653170762719424962942808607986540539641780949350657257010173505269731288541983206352176482789194906358396365424455075096526458560482775390654932207414214976950446509788221902232164834602007544954442200536396570277697410935858398650640582810587269370132249446799951289909068654337251496419003012855837228530819432476756191333291547953006960697486413625620360044459836668723437053719609491709217030716893458658418483202926448600265187244498802553388079167039768695277159586424983300600365424932500995780006035853628568361840597196316577637492336605131228625589964338921405399881516784938934478729798434137763159555767417681529521343530932618092745134622013821708403596765100598455985509913140610198180678033279038201452326430729700033751141176424116219651090211936077561275009823671347070517528379504100770917873854693432756302563170964125948348764257304865817744201737452724439221446096259000521831882480798271793427633631913858987195582116138880105809524691450893385605251080712446267865009030687543870577830062627427152594075226838654692875075752012916657943852839906716569063710378079943253172843290164788312337502077545868556578592122417718983445481864789143671833616331605771553192472486186671911086368164088634148762398482068193934996117857557647024254581848294736683694015683161736002777069160586413322336619900851229892338856190470616043612771852249077363455886370985297636314037635227637775108844128600703450064088248015774319271948533415125370637538483452501171937852501522216864336686322280512743711343773303431407723603854415679707533577152725449875292051605091013659329614242439543770120138694782061269136901203594444507518581896922376972020254290985176168368028448389111128434705772392218322547719184192316580646294591671311940113803293830069401210365565574421341821726628555108135154016374443744821704136053073007371936246390949538320893150753920105014875797499714869201790365066290283787376619702033426677177350821087498702736127722827566242914744089122593254798649693256435226104168035409825660201725693190314716646634800501686559274531585991240280291280526492101063553036362150397944440079962814767097074559557777503042149655712717181078699970223699248345417512733987276716760499797866125915279873101618450420740732334141790610319017536596906984594313459052258672600757743141514874603895686702047390431967788159346167156156549231548547504033149817841395018819418882204566607869714401092459061948326563749627819470488297033215858919112692008207241545051431370938156310760535273459474266442694313682116692561340236398837402152066432366993401001501183854971027396588394375868037081096016364587773721377054133714677845507156498622903941722142236004967297314810227927566430871255975728250906714774110828239824878618885881076013381099721504944762497145849296226287043154333129121676640250480878960132304683959584556878531880946695422398815473872921803537469126686380699307104250198324610150139172994063595934627894503192027512539821150979465729020132143954322941992956483693453065110922665443566299886200300742844691516491237193425690408468490142644657140220362337804113735354975767822803705450243701952521575227107045256575205678655980042985490500859200761422109133902235201670270971274771716414111567684105858928395981380056488213450127896848668935357622979303356449855134384801507299033508885233353199277232273872505355701598295005590313162107352105330403137469056192060512225927748604600650958488713728377835400247771101387888205625049533515608697857940758200776867310950050129699710739560007381267127766487669290417919417680922625381717263097281273879016390620093093529486469864368035151505023536215067832555834219093391897718055924555969462826931690871658861742496856227579208686235958040116688238080281228669053010148017394479713480876699288767761983716072890288766350104523622201618884448149573013239543286928591098545334789161121191146241067527239779794478640184080239719104353754198100642110545091550037118126660762793696820756789851229901517626764901881009601532500667233268082781003723395988540886319516779690847307418615716135016818284125933647285991799381348883447312602564180176628523131734226831846062045648638955478743206373333654153902952539900097648683874386340069873055992851229721635654770117646747992769426875551253936387691192959011471283057894652916626904074638975305081979920105581110516164197643032381067515524673315843632837585293205657384695026014881753863697909271387505890761368030275517140936892097784325512638303545760298366004974040571896506328216997266201568406032873978629388599417348878251311722175612884762071794373467679757515330466712808275980886158958543313722532627196164437836337634503618117914317660079738681806865262101413570008159185314726866210767384901029125287113687149083271386811746968450586987434169441425516151387076026787406256660959016643721295562267104264366072098778790757806114559369484508328433493633386441917855370661186932018512227373183391511363099451047537494751679213691800493712521232277316733701381967457859192386722595053800654476331124486244441188289769957986763782290785346195178414392320385000398417561685493238872890353522588479813331570415156476582327428291337438831482093328418838452688844404777748834380446817708631546966918218605016777575567883189009675760376267888719888971584876962344906893265881745931921845232981170225763536867146205963300800204271253125282065350447335334152612421124516906680400062037717261119690196838561636611507031488720990361879177086575327256755083043842106001981773877762388281413754234141507783232252182612550012131922634609622603467938476175805238175848906715501121830110390546066803037682683049011112479483305114613691374392651225988841899590603406365307406596171106250280406413897902253161479002477112015955014490677904701878717133985195932099051939896265307370895741099476739284809643924792291206622870252206306302370255159280456681580547742022698587664815198782117933486862537692031620446040348226447618371729162198466838807165372686350879243552299411265995140957888230744855492568858911311051520416401948449008377607777383556415398170379418870280517670347921968659639673359338696096514893489741917027569109393824794184868544548820506556133349311204795744726871549670817538061775577900820902841637701622885882711221806024730983888210182364367791352421098007476992697301264559088309780645402066416847138939756427316558260090380166573372635863593635490134369438346757076249406211008300963360333107990056668518406369334998245403330737784828217202021216858380738429654648888142654288285473107204004690334704783148256905961963309602950706526193164896330382716053736747825674029771974212156555419210366317146317168884791328173078749585305200071689430846410459645877469922850690818892197658269361900091411073916206302071592374900764129538387041588799452780449355719658542641631309201127970537485556580198552670577153657112068875663403735380944946231034567102574741820475985827042832825541914327827676741509303864817711944058113260610410525902804425392065853570120840863642569372796969684802164484656801043480003310785264134461983122274828803786991175707592895816586591965599159613710217845828896317124661911058496332290080681201193056062534130390351237616917724136336275866848227848145499194093795277187863048251763081962497274063283253506911928300668435042603623852911433271358202153414096873219230360718946804488939882562152781654131856896080581202268355296336582531209536728551708130493554833312609482381343809035622635022584757261495885893175037365617908763479080227652030326620609475162505810792849251070422917380917085118260058253321260523772271699275804253928817424654934799669809885535835327056637648635156457110133191448704955205628650653432879265088020574159230133915000878617643125655038220555036778285882615514218433408718680706039922299885471486184955277805133175951873064708299585239483336441078105196215178329881487189178693867404596675024642943398707065581186663851107153238610826156798926861973437639475688678145423108652818256367498142873514912869878209123481101326936282267536201663974597672277489941003908428639953418622479146173011705539604146484864607777387404592654189174590287948972968918456930645605445909183270996432558547637640838884577305463963031063534992709957445492688187276824290735966941903540323030802632809108218220792045808801322387047380930620455981001188387674471725287075571454808168609265112510304567748684119170462693939993752462792093257797408868489776063686220130625978821916220032095996327666945752846152133801764321701758929073219407114865344686614022297940835218730539762686143735882476584485909443961952767961674216019640841852695955060618454871770855645102034707385516367357027426124507140305715212314161234105346153935932563730101955389648344881879560633156720139804332725384605879577003221472533872678079873887401871890008051023731063278761452852239672596780637872969329118068847645236282695831866643239030571988840457063424262777949861329099522232921524130170589763487198773916042087685677557258814752479448058781046446571730257318264607659921956553537297912573374938922958362018196575416414550377369146738907815475884637699687891982757367250698409339531574667688643803433530244032336490510834976335939039669572752326075580485983122182049262191611274914425092493503768290666835893026197589399317148398333191811106350694460948594100359368417643990383241475142651022173447372729798619007425805793757736180256381853102753610245230287874814022937376237694235470307113809497169978716271687928717641770097138985817952813034801531401841800342517920681294472235481669629815157817019273888782397315496318011434247879476607486834888094161550760986069183720810813798927938721526794870193521714090530376397411933959465151821630589409375741876068601663940100280327444022666331281490001675352176682729376603356934861215826172177489395691138797691473805377824400139269263946089159911066883343545503414110372547043158550985558417887823898247507167653838588718495893185873839693578772758524514028126552258908367867576717208808412071631013799012836362212043706291999910607663614039651159870318876127522818877494830153179403070704803532408486867255964544060005689243386803615513122124769748316116655404235518456733127131703888063769414527209709493362532370156608530188199906823182253628387503700196116598398050843451563233301258807076550085851828319224798349342764455434134839495453700684090371109296657511658940496288449836160495444500179138276399439110472366185270115851828185564858252438319626473816139170944223910107895459378353536854446270570031651901204084008858430294487119492553142821856792130011383769419434193254312493994668686204518527697780040724893698719841018575303834870380387212181913604728603307668205110091311268555745871882856369661434815803329161913960992038282246070614822028571450698790643646174900696074913968707366781310932276086173491712925496627872276959719574974592844958418465880516520546285785910987959875475473273382083804570639580355969690347909342977078552859937022356726129712545682695016755821589441716669553389833305278235417308222720343450684758971592570345691993100773476301578083359831109521057835272179629480130078981415745653260224752901735595642744377053157902327282648804974634643654357271676722151724001091515898736668127081679335617940957272647748825019480303780081299388112530973491552043285099396973072178265796327748503746695524977038517923319997038172479539797442790061381663581425292477638796023695974749476685179602813698946085199618490303525452220432796978512967706214378472005042251080579652942757662990877948722064374155001900791326626771783986361564748414238133609938243459065066882397255403488544301426755111514025668268485841332059469688029902576348831657512911578515550920919644786550861045618067935585729676983760530592251142613111672192560104227808354814403635861410594980298012304032879141182301398248989214568906066946471170539747561138371145172573325822318498780038232299371063408567255223201641531687675663924325384024390876649532905934442962064950999598801036788919772783070331630199066453995105963610597810491794272514748450318030167671288118521703607026756623220895068237823264900136599060399625678005411780168233437416192899197489913088947440006467609145104187195932452280911941081936791084296874676599780296673889045446520480167970899204444530941696838839366543660376818559795116062581614634875631238192526463942524458534231235910394416833443198405512297197156111353599435027850423529189065177548379818901454589426557164932813678817238134493523967250469354932000720720734108280786969166013744459113482080245967748553506419921444503986869008167452351530938715560638432969126229969137857678920249127999477900623840438930502239804071988310033354378318253074143820999247718638352933460816954957417061543454170788057223814993733836846651971331457870119975170970782939512659818932974836381853538624468724259793411247894565485642131567104319328870368217810433848687882682210988981489479959628397835342625969225926537765143392194126346884650311085328224812369439153483920776037283630630183989266743852737382037731182893161863774351698238167900325300762423778085044959232783454423986498546500164138946761015970138763922554164308077567440425573348931389696515692282670381622985871122165641097665109968726936026880850447045733698550766576801146115779466084978992511968650566762082475553825383500870207886964723286872095315491384100026845667294948697258386995383221295163037419099166172218036741305638412670841307583554542091119257593030780057043915561925806113072169004932169308814868025309843515107066263695111276393805779008018546838929041677591242998343774128085827505544962090761328553305503610662889169159137054484846681271408725555283668062572615093532804022874902667884581069258525171518016354697172961958639417261791642133296772511831938408976366803105468423157449999166934548398111114555772452634616179700543295994250472484465037599239157200936984658416396320023922320346140250101855047503041287607715170933366836372655876480350506298168695977128461047045172562174558256763083308699411546728477360703964212881645237514121444091216357044257880731119651066957384852071028622183643848852586974776539854759619383546275157043271106264449043208085861670001553926483988545844184073576130146593269284887558327624456312047103209869821771595749119766795386747222455973387888912789662931189335526343629894462811310922378632277712620496665806409362646200459886006248908836587538622059405811497986018874224799214503756148417209592825333804350522441798276881980710584281293989142260861508992704110321460562392604185030921373805069423608987146471124726086475282925790017457938245472900828575807742405000096447463211445401816897045576225089186231734156607046253758523324589263273918638498992511019659740004149406992038834581369278273071476347328958915482484368644859025119304391108644857778974258416890132831510958590461717570398760258065232276062532948108844732557567983616436009805126823442524394819756990358417231006370275103135048854597574907338744121038971450415143651376737657296029240897567417168758707745782186709172425434725494983935788202615718207788929188409787559294536806254735690163084940204161637319431580121734073197047561054274107894010480691865568307516006844860873344345967266273640515076815746132157571289451972755283216457616998995802099083568057106725529403697402871671766297428167751981681020944061838930082614346453077751663924317933396248200000454881148326019123607103158730256917451342575657612159883497089520503203957940076049087714032027577180204478715438002505599284273982374289996169369035369889547075438269808972453598620067949178602952876229352541572648047732880405602722100381106387525137691906703009783774517002794987115082354481695164714911298053230248856661181152557364594449730764956456398204772558857359232167672226521768542229673417174044070427872899050213538703839454043441352357075038783097739611126770694242458262894118127361667711607720178299481866593778448788040726812152616325418488357014852431763981059248085261695275450423003862311430302752055307668410668004599094594075805639831137300380237628261225317992552606164135485627634813834490280617883311633039115285915252931685249959685588131040928943786154069001592380136884027595345057096825703200325264196440018507095245690469895626949172989532127530021718406037941300519136592927694859244140750033642715732600499848327532815117479125062307447872073159002611423010667386917720478942306744638576216002290225921612586690169977483298644787039698777755297723997761751730254847779431788602411177628212091815666531127178762393087902782789325051632596506942575517215627856331307374345133170517684892170528539844745097329402648281948371404338667551534944505164179192320544869667034454755381158512137043690272724139667141134152100663356777454137789392633055067291847463950241955953752659327311083562994493583531527705555236402437140937061374093194508765640193782217383763380822578614881818028242482403745540591486552056298213974186175751767062617170147576012948995729664005077987668447020724461093208218895811998286409156642890365247087688869285661038832325936055799717723184891323990339780510267985582134911463283139511434199353819976761655089604530160157902569116240866232088898850828277086046976132057358723156206098776130216357304668373458546635960206799068556822302398843394390801215211270425920824099291487236098597223808916822072296304394583330087489743853597263240379316528412585957975022134223018949335390724356657147175759129690940694689839319413248086028767951683186671410860987943446460964012426569863940223310046547058528638420280466862656292047269104343786201040441086253228529783667612921711794516349826452246679551049613786831640466240026461070594241575254286723144376858568956167721325647124167729107550081209928050638967050734553530074186202157330199310513445675060396504152248234655319204742309582157940329923140142445854496472668320850076912341207219314162795284129696422214745014639738090499082071647325629090832206148326004708814730571231363222134744131470920679443109535195560994214951336247361641678518648961345029706642291140327139966362213701443187470850192486208829105630253127439264752279674265994041299117869691221611141962666859278652581846390663842587284170819204967625194185256880101945290360144210471352968172982076193619635927538194442858085133791168213138467445674695687801594897006890559962322195176165932682329971901132449507173859217363567698804718012145127139258718765464224128462227989884318924559516481802908893603834942050037274798015167616338496128491200987103515797907441094307713237359918671086881505064610021446433416361132461653116544626191557594329930281829998110005198642221129101325780501840261294155800167993727185559252717752969156598964935504170804809323745379228670123965517270315074569165082980157565792514430731309567739697393389050230694187487998269163466295915393780051668903233347115099655891343394200126566441286801929261182887646699762315199264894724222857530760481631575009631489870296367159341594760912523264265053733670649013301606280928756392778580438849172799756330977576203183663088708820032767644103211290938517379469405111055867560029152093677771689592125201002040167320629308070510728458405185969096688896047850983141265570487977416570460126559756323477173251914001084175820263321475273531115033234820003937007900435407149951546859450250352316948653477647514632491015191705431238981322627481550122312372544197156802111885076573186293000539260583080833964913558813827645495922052080556980586393284144712563463726074290045793963815168833515076649702416584283095698280765114400670898238092707023921547269504828018162350448582372105177124438730387166311938033514036114962972057350897731950242176937539046481248143416910163474234579476305955119333843503667251416663963508909680244519262269261892847592072053582195626049086909131798131825468189173568967867072750824985136254152734305063273216875691822867273862431157601737076496139775259250127066532954707481765173684754422420488374445041266664156523168708479794880475418173826530980285893293479873420722869868643799400486024829563901179251804162274089186280861969020574347608732768934054069965061510602224009077600760478544849368120614038692965407538120042910745693634589752466034900287712149804026579259046368223337667735850542725130156416734940507162002374847311412736447249240199221755326295781763663919510650268100302151885408765542657021250942826040187623413656678846386105196453443760607997069692736160372751805103844952291735509075885820417080655519424905115874386241378588349187729541248972350156596044250504485342674627981721211444096367469669015983012347884801620290905140648984081198700886011311962263197645110801749012818484224080729853086513519944611655827834906321346993200634448081800877646395628153640463259775958204076093856495754776790924548894639286244297647686625894083547397764124882797519477687547442357861954208579592303353686010446774605577995921180284159278256096794325057888156266579314663461708311233629757246819832180576287973585597789217676568032929226337101522053441105473962707394009028315078939549243948862906063635989284515259873047554873820655868604769672655849602209249587277128861243706895796003777189333942931086260232794729774497249216128171248114044970685967477666764986468419554329823694760313227908707484636160031029479413055436495415113589506277765996958461553848491900453820540268252991706016792121627097497725442118984724568733585029813289884709977740224179910247234150727777211803174274219460275200716628053171966283325902931058901359735775409683376539800004735599122337897052824307141027897696060699535513231494691687778283006131671134917034929397521568688361453707377119255086735618780067983615201798360016321248923059242911524758831899897459948863114325632146461886978684539936719671803954991347724132396441206653666082394510116575255507819280739242606719554534438126033305660812674025896475386727495426901612916838619730383739107924435929691838824097525010146535075080924777351057561000503793315944376459694839364985329777217443693619923566285275005244169221525663701924943467280987353897313070393845333643681501707483414316660587791249218120687148500087466224318510086964826337016919737526515515486391544849757570348621958569907890751514739456687207265540988645547187843080125824616377645544576769897748277328406116685877012611534900014188646244445069653713914006046471797595720220705183050877147687666284209723869316828153646579086097141989197106078037226403623683963331644047713822253173783498754395425485414838873815236487392576669673346591749014957198809543239938371866023718962520932309681915730903293664149434581507314251845791741332842649794145955255948360175771136520335654750828274450712396031471173824825817333366506302162580882309757994607501174357454352482547334140849284474880619790190815747736670056838381072539928760703995440662468313946896082125233280708140861321282585617023753679311272273498036272018886406489380606456562601032394491947794173168303010373041860733404820036402106145518503015490266436002545663453150825524439380649856799503859951990329576112967633718478471386581295844688971476653376303996139769133507819532495231925381843523639655008716189656463018552439227967717195938274953853599179849884078199686330498162413856545411682070030406429350891828728363536096519975265584888754636124672881607818927207851477183188715770762733667265173347860644132851266638469552214032105832216683668397142819692074618234230197350488234113514887075862362630061347282742830704894513972958441992527565270899530150288999094122555236353307939380693549017830137027077312978179674530512517438972583691611060467359243442700510102241297590370510495908149463546823779497227258574260923980396465118700106472997824982688611788757921551592225345631894190900059836934164330417170158900100344913503158617148317287687308051065079143279957971207962707693421512271690923947977413999446331623151076540231338799516474588847578906966665632296746219847243816607311949570700441400485271993360066102257218048104745321335439629837093649776171992956766401241395558813051100594661234131078848009123958375726259108500842651066351813507454909884639958611309105770360265958949393929238705838291357679422831890297456118128077012785243657262096711559328539364849393911292936139818180580234929142509579290526866253646179943870816750596036703197663024410189098087867079966275708065598390645059880207937266378287563015202421477233393947594339771763572038652985610705914775877827358504978726597119494660270510793999791776213850984330402437881289070194876545933824622858282393778522974310172905656678103366887549649327009396764965970725378381960360294434397267479265792719556796825628281332422044080370071981431735794867751950184872267319862083284714902922357328678777401018542561560699311934689105366742658715887238114755128346496834830339985122700523140398850006053370984811544665123553976597724519182577835211780084852154830876314940260976449608909587549302882564424250837481018783074008224052084004380721634308367524017628011858022489845804765137077349915123548738133341154569851118854496174315590920708004616976520305966742702098312437569955625154338983428646647898242542061031224442691157672263459435348211778034766536040191361866230155334370530622660581818827012136248085577871066587234728143438232611455456880843697830654403751686166227598170994346816518798396804016726999422776432841213321744358514785956946054728840009843676310429719285174240727530432406154999785780017760076885612338795006213781395123851085233148711573689274467929925597035071399081544190705978661819145562657319550709002322062259437471306153184555372822739043640250496182824615714378602890339472357856614587386240948405742212683223517739089533662767272741677598878613458136015191110468838064985723068365670986432314772414894409017326356360539817821776803999323128336718129180788341876494641397728695287949180019036595043672155524587180672524339096308818412404995299868273754775658267551668220040911186142981082072363742467934498046100800950062266630852538501612691197437606145569615288416392651307967504974514923109802544031826238053175753481664457176916085405325341490129809621295666093742804578279739078871955239516792777009448908580133190197489397276973698675504357704051678080797775591303349822595888339727861732108730035927085779881093188314814443323938697158537406380524793901519737433753883088057364024533597665362822254941304208322966683253112015540872319906949686562385159762352269048596329061655014603818384773640890926318537779105615349822900619642580034097896139818132144331155106057107182947224554369379055614037999429820263676218695408860744638567050496630342310104838496114282409688984447907052860395829878296332428957635378625221290948164338636769695662501903977615993175106292640766211417008061353226491213010403329181829872202716333133764243992586195627223724815400163079103897901382197582456977396507567498340886730649163976986920530347211326479708100147996740678570640002602697767095707429664769247805772094730864195693355727562372857167160700696125789296360612816351762451877899931037910388328580807832085864732637627669919913800687899992477508205636504342932405381242253111070333769578646825444051645142229876216097054799237062961694623216002690480223740851609297663632228020504114713116578240533114367993827308722236408356198615954091508768031981523722286239898743137404446910774520304310772522215955036976084463367679061512387861043833434238708528070635463885380882841550536727732268220176744597920146857986848382866238161568962050395321404723509628173126225686184010442831651355455526027493324594544519627140385471205608977312970486569338314465136594862889758718628620931494078257627063523354123329158413160449285833579017562712498018008170377932847271908540482292991154850551094141899901400684145827286234288330418916388154772010938377716947743482395184826890537032797068790706178157478181504321001154365089524636499099139424234042584715708616852036065726019961542119964136422210611713096343089699345041269391586422293799099676369437497616920670574574058099726325624618805015387846846456982539697051919120723444346388394726295472479479835245713868808626904166125090184891856241438708120506425298328616647428101926902438518989441412398414719954524473826248243659522072407074110686302052000773163396827042156222321286220224903678885124109216110986521648424540047748935303220510582962936381062069478747041507144035002684082510481830496244747233766962985856890364996626515676841857509638938187463588370056755322536746252980967325481316182940664442323669089166982588585555961460469080740122325241669958392171098721051729506233325980638750056819915851052937726871019911228338944083660915499111609921454972410314956538996291613273376680560999213630074734284604794712900710602651272871607888477902364172192584649767010212943782043403096700586230924641480630560192805021966523815039382965723571782618556634903170243440449776374853667428269938965087101153770902628225871573024875805252433915682593562629253368780584393230188724104543613125924778384956009373009358928210449517471052175474392679371454993770380154823535679705326597222350725441404712721818573822629933648410316666281458783097469587412319254797217383737692696233079336441493835885047789718157228989578686454811824727135835447090114027454337400352667761782829691325804734793904392682500713599540931097900845162087904696750837666185436572098011523174853949789073653987623848430584867637514167577952778197736128283252363831767058699519348743527380693839376275280517321140071114927018579108187977586415295288146804862251185823085767218959877875324868248185036969871709859358827438215243555766327034685934791338802106590331151722984973093681011479318213889483554799647348469288262589921492388277245958414046739436436509576825050232932802253772351282919465721977897959605228097904567165021239959368220381468493214743099640191456196739006935312031625990850439770279249134835169125119818428747657346655883717328130021146716054641419933433755263988888601403241257320955728530421801890667077502834157792371190109879714777070102861469172666626024273840845495394405067476250307971745092421227541120689328521792187372377722824666371575416593219857497016866938950747507968085417649875091329507948463983220837568781279776187498285930930711837796176708568001889690562638710421377091256347876939225454534303703876409869585735979704877376177132979094665151866742978934129293074327678922241872119196461059282013860357644505316938027454421508554947476246280143188668719691585546168584120778464996914927528271380126070977878041454460070442869637146836449098608356343153659178591738374219710209815773281023507895717743393581829072610194159310917440049356578648907980732937975881524662819115394184965967470279948288610382637721204570534664898206527124962926985873031878922712379907955507193182563313107039417488104926779550961296831574235564334445117492156238013680087678693452630338585567776429499995657924739750243461870881558855099511342256113326853559380788514713865362113805766972339177962528738115142571553402696061095839532391784249874786217279619759589543910932714101388128461916949797251147086655785216039882008936985735268417945065656200813425299325579311766531981732607655716835149484728145889486406724012534475898278403788382072644344264807062252784994075586383816899464607772225005044428199633860748900205053309733934375329119530276128318828679755859772221267051035044876223264407445042303655096759786079205166663860557274478076321834579075330966709464014137862486689322407119112177168898203565236463793260821338400367990386447513402937307892499281591776695112565793890711786043980221692818698462548944295425374721440725635038395410062442766710273737577296673426116670954359052294271052999695833501008593150723672118725981985228239786428957311596517547667360197430426679625429347553533738337131328108186467617594682297977276595661660351496388017186835966164997624011795349124557039679396931965976947412579988272084460492671293348718669792210323645307605553725871623292837490253127510141507559202162105053103847577629111423462995690654908304550467840984932348076489867270318689334498565088974614908290510540098803632847058514611263159424308049529198764724134321052360805858573684774692313587881819258792638964364815759210570446081505856417226779119558907002034801635816886879713062702556474291629547062084035863507291623615918018200498498633541366791110362400840985052404147126904758715779044451078294121931731140693708627706669139730216146752166823698399561988762641361067243395534462296370801152836830185794030046816756437442099778016112760934036789252444541593950324858359411355338061523543559532553309697454852372635264782137669341869562721100010191524778069665862722821724311759721728664831090579756275764934435942469265147786917425747652557953892875315995482773192565667842300263419108734999988627207510983791068441411648793730795700889407759603929411401773524509278244388240618903689970385544237102498650252047345053369362441648690604371461532810196173005269711398845572823754642703500089153795329561728364227251829570220068270352666151041110069689652140227697040196327197779442910373375139149062888511412945723789080936524927625583679510737145840460706026661018263835912856559726156930328914880465468701906323762941749380183812258455000808986509853395762746948240768820400540798513909526901843004450655707555437209010042559169906639550640046750767175236999155324597810495073644115302136795659057321270016016307691869634133888368866681198258337827227521640958145716662875593899415868632164831124048165985195667263113555885901559664751058147729648843428651468268969965961081319250248260563768293051159740538854613015033964506288266468787477669856858476045415705661889611727382354674213325352187131937189466815487886319803329130887677877237767885524882338486914717914976602968873840159724187998337616552208960944106720437230112126810807441690171879471094971071158379248958243718359511656803186848162122477019205783179763517782561878938984260850883406420983129492919130467211183749417077835916977046025078346558187716539328106269881754822907824857111649913622522630357062629387671789003635509722671833544118813743523191585489740186125881803787401116911297745593482426692583426793982332426709944434624297739831888543000797937843825876119411826484357234664359690643279346963857109952571932461559030152155575041407381055397246380327743728195305597164774499388760256622476784444940141430552921910571002114542280984419047274394227168781615221135233214593864196744264182343183745800654017511522081037165921458426262785185703397694442394765264173143615755352290401541887345199886676196851287847702199841820679096132430141555769515078620006589576061062041395280100157383579717099818525857989322557326580036208144996489716036118806260403624068999867489095714070426509892047615997044399654811995058973914256989198487247988599265863093955009404408458823051842099587152192587089596541270862547118837426785216700254691020486697374557348895826119044606456556944387770459808261826080734196860901685172597139040574107523445271478507515468375720962726404442572819442174132341005763480458134676882710805101635458518873253028337800599048202128782590840821194283534738852390162823711493118166478114360828521515103323429909866557033565856293023817599072147158148067583930052727842266337059825735298339856410310965907895021344181858155497282115501708147447328038474964655562962750507826690829455970639163317569179356654832899698276173860862376834567510346625190808870398463700747071842265108084867995071130221101294662300631131131094133788314266616034084197620696239194168518182784415352870324880158072992465563609951997723035033523262078084056552032477310819614534234585183863347177454246369163325029203556190680146762554430662392773285922822703478071960991706250182160283333797841147918995653432562814644347634474468410467730802867329459037667400980225401801889186692727597677125847655995549941516976577487324983063916410271481872287536779640549683334384657702919712067283342352452528873463447079676122569043728526057729582001665068092557594092996622785612013216963368724718371670221912716287954824235101860908507480757308877514322567798148318296863420091601937734258798221145259464750649860874461945817607622083901672246493168618546118067173830708504610188040412818272809103571789536437897026314833354783060064113736744937760598140132977479832705058227271292602415335212677398142666661022607416178755134329523865800404225170147817006044074817032604998674996677671265602523138258811185548177396983849716730918584748967027557116933038695936587454528441112169373885529293613802155022315032835499973596784144943118989870696065058312055158617851056290426138379199933112020332220366193926308641326153421574073960234994739391488099571904714521991553272457447491598601807016323170893269086346217777696246578257202104138901836714747591532988103434146329585328404668494807653168023216816042175531323194043390388002492807017982802399336560582643618180150191268100602868352455912663346702146790079823251246974622225336470919978010844384307976490767244529002554462718848146359136826118972842360960129144425595344653239687271701380140171191146250205137197992408877860308129705063327496609657037407736019846804258414462249928180945822617608718319691963826300765004976258042401975414721015510223153047004525240915355670967369416200297534709085217913581203712048927975569089787179574628049524093553005805365533855431891710865870827615660865960078006237243010305170439382772923946842198884262102332087001177089052709414823884115491527114134423027207658157285380779495782330535058594584110676708062288095682713988793039172847945752302566489116821470854967721294341726267288111174056116919058327560487079888798475783152888728446248409794007920522093952747167575444783796930884605500174118928199891446285952902106287097478755517863084024045103893743373523780646936521403423575562140235862763612009370627479372507293387908370901381213017386600599312099598767018861105317992929940229072239958585353979777929787331840982357490449723246737828287262567449838123109950624029050122793525354739045781295581354223150986260398022690823638776198629087376817245158351858737147367593652844127419330200186634960034231606604183713379062476397131743733640974583311700006304666058181714425470886061020142390912117985156698742238028106320782703058857604654773500929167006486874736795683235424476289564398645592214050053738682121923858560960169734217317668298972134403113887145335918591399726667064523138338983070839684664460543132389897112025514364624100192095181111833228886960270556937621698628329221017994419509479022625262155073442599597022937187900068916247206215382180330621913615780266485034637825302866757556040358019911570968241350872181434368776545343595712274168164553472749276595929327628160527480079966063632908389613539669145279637374390331552585648410458421917467084903011015177196656179548765102514325352620783687798625392742952494822196605961760393951082388366173560529143517945837375606871179796178974965041257771759930961900685341737989571441234232207393164847427062155478197842530769839732626467710662089346991121786702403134297597270652966535389293363675886299856320739891551005386169973723856644812101290163886948045400089121536572266375146135249761821691513781207624385647597093642809169798537089824917353006826140836893369106981487482116176976684332195040725956013877603087401219548773633572917519880837588759674981804491062327433811710971637561021347191208734508251080217083754487944435487763093069712220176098222734084306467958421755593143076031442413892658822247226299562032510521978504551940784128367858566482557031558247097134111114446155548339212474473747912418365200741752150478798613995208093037214470377164280736175717274487499562127483393007086833936646859291882086095243958989723078413831515258383990883105363332953977666194834607421073584304114917053055931523536141751625550991423305765509742507154912526760538464640573992080746754391969789134724967123471906568426840240163737868704991528955763495565883935540159085314237874033153699321002937598356870159343835611258636572053779093815374562866115616692450309008400286461384891783251605344702342322905931236888092742913290289896883286433402161686709398850978808471876063487653387327837542875708722666502730640554131659625906433808944975804673420778565453085825826469238813838629352466560777164242336959006560194690686956429111546777948090062380383025041766201273376455194799611826936743826929944387940205585624576569887688134931406794656174806900812098174940704146900144231223387833543610109104361835796548165153486212016020339940804673915358221106010979514188554557465451951433739353232893954293141980847766344630187413217880990729924178101990295162830154640667277089419226147521495748298027147793415116002990280442026228780440548698207004256744012073893191250369349184127324181948837352010831382175128608151883042814965392100052040624331367925109588357931227779986948732726371018332248114396462782975786315754258922947773143023452489971926142512931752425888149558555211084625272482054954931670369462773627298596932151669045357859177685384139926860053625904605012340914505280707034380415579270043051453788495838972100499742218712342524126874953731634615037566705532462187834495439232063990455353085011316615508968689419307053510592035735148179151147371655956246849097791690128678269594675800729116721964804599572992737253505346794659728865567928804463377019732801453880708208991753866032666471011622896691967697536096305600898568264020214098662943046255451514741542552230387675448884765193567364985168255806578709592610838012377075365051606868362864949334360972246056333521444487386074691118011858128693607671472559431555907286789616825331511563225690434331246253091437462391969777577550419344921102044193516404259291661875078851633682858730322920613777815119410867517093135981106556922660387704658046863782965193567318170209805661241577260331324274897299687347683815467409328276089146823044500800165021141809208182257137207684647244331259097348476738138795943154766275260203012882932633352737522881419679448436184769160056259901295732973642329294634928159655440658525615894140769539635061588958125493194183902799707086910031657998786620898870851197643408885075307428015977021013676452164402895235341152080113564470692243734171935098601307578847412196947579495377739643274798243004549822542411607220400264991058167262907775050758138382759725090575655537053171857607525455014256598154539811664353463215323840505763212330362349886776905984619691953577210720459875928025450880387050177733238496645691918514075194131476545503903345002378245115165270203964666818752573039487401666002975248113607724702478460971799142681020692761459880744823769408029272056343046639918014063498376658950077025620509547344501229382005693712222608999647253466449742374741214350266414871547846964419543930332473647429443453243205957927450050993802422930239112362423393864504561599127168948848438354578947082522508941710591579412814606286117386198585723212953431752465097151069749616137555049571716971733665447765284578385596903401135330227097436333147721981074835584793085511647901240495784005269950227971188866036346309831513941123428801656969314079587491291675812190080562258357412737676350595532938735391324935091125792687515255512977090217667630162985367184809600420539155827382914694946813757582410862895026190221887563828434305260953616050685925356894850943935449487533075848134432849033146513903258545536591052025125195187204493324780961740498420649409933779650393824777859419485812904338470763903966846575067985265744982247823141394321877672212454778731268314127490615955071906430511512028142456209326918475138976347743732223274011494606275517364628942938437910993973296144420321108031072052716729115685845110322410337603298439945276374472962948925792378565592505523107190507659228778940781038963723369272179041697656736099515851241062580331057386757941319486594800002009468299632921410432129373006324371357801530286523639281385465781829183501092403097467599972305577964371439831471545731147576118057251531901143558979777953801837260079672199404650406244872511554298016621471971955260542728046289502832789325184757199798977241650216624677659066489110541029241387386712487179759723501857393783620817869159682198050914681090129844380736911582441786353525885995500810071812371476321689133700798610950083962845895474644606164923282639499645245279879717485000883580220575731842691981012961900402895151699817053539894565532384760738267577077474655948865069859968074460917168779723374817303477882472753459417651177314946750696112298838538323883038063136241075429469751744468568674819948005945430826633226032384736028819916743898832921238212722284109567352647611255598295428666309633773548289837646352935634072736454186418996275886068126155197520136582042504845108939437141856809802641676995943252131689434278242747289804582695252706398434368651113575694343258048392109129351635831630625832445469181666091950182979863168480663802788607029937052620972972561002435180760134265519820654165753135168868941079487922628468402541984831476845652098199045298526632713058418048360013373354888568695431420113462069705356836332134520600836523073730966629577709342981420543063417295101170547649499304820197157243353242575189320958695305128363027825894609265792989062978095348481034713713277425735821359063250977953588614559372421589915912030616117834150938568305359924123013476568940633457788625748952726312464890078225097588419693095450611983692748004893000552342630642136984175474899599106853708002423929781663615443770845542265313613005731888490338780429941558173454274053901199380555432721766100380362682136162943250138948249532977309263778365984872806318344004254800482415424424816774856223728447197643454562398626498520007140875615962895489966056555466544771167643452543950742758533349431600390940264052618852833395365159475245643604649552183762559835393348928124232282770843483809840796699646028215427156271173586457232925700958581509619975664430234941405561354511166211036101867976538021113907749280520873975611809731661031534041056916844994729481173942442129133290941333689221025291311554662615493196345956501240993377205023825778732037280319843551030022003607674374083219919206303030085883516617140367795727693555602408831348674796884739569252270534140497532532221689610209042203261539432790828013781036971152126742562422274342659196426661694716536141148556687767672699887120131122242043626958336257234479092723381006335941343907090395413194537846208555781669174044252644773596493515307806932956177530415809615372131890666298466335789636513526044663874268806258583031199306170632704038240038859591876818933658086593697137820098321450760929230248675584805389126147672414541914650774531728177559198761575905003721064744501280587945167661741171510817075549962515845695256479259368369986350338972269780374135030896804002417206966745092790666400305436737361305447938059958080844858272300773392070346908980632063458438229632947923335539150349234309291712880774509534902309525857716907729452423586913555004232932021094012091598508606826486154223069517695771735629408544084106459621557399060571737586438029205996849369309104020530014572180747461807825458082576090601846757507968792005602167856050935870406554692615363042627703309382611280074532252877727722331001402835685248004639677859048413613596008416972865520472147245998891018501723224029478104934124277291179918849335097876373891661217292927124085536934167923177768159666881344203303252703783984696157417084613879467739292853270442271253265464501663930363975674067060967348750364965557859494330328940148823154877590519502621749166964542401265741772265208495288060964338735601113560785575038205890117565796735065726916277590806452558912143322000145885998997628798684493570010345533266107446375186466987837372569784312666394489695967639773286216189541554624368276604042940596519730033508289344303135462050927526613541633387380426751777794174041691242686383716847796821230124324929177471480456127313519846380845829770460244012041182344201524056485421742705782539595020018786101032624006693276150304410606027268966621423417877597188960574568181096616110778063077073084033293322944295660502199830299535468082228568878076101660436295617513435679257350682545330023237330477605263193537012219765484821987695436205527549436547300953458373268104581025125486329121472049715986146154242193019748680500541281579738614194049580220087438951891917638510025502109819005364949920079809995709794981391080226346481742624978409115941184539745964545205889054532583941891461390818922137701742741477929085529004918544068022089623201970602746205408698995000792112939011666622562187240786882418483151115252165422081432945051446303325506979633460393641776513217835207672572387272704007710264254039604570462948959101136505278407438882646377738439925177796462103164699080631587716779465789335954081058812620237216584877017807901226069592409620801002732441995738076002349142289199288598366262306030497153166011341370319358756536262773077667310726354685050632658690921345603309727782625623558581846733716198078413138863091102329115944139969002186005620829118109394600535919317565773718343264340736479825266964717901340563173280382170762069902175243898108173887450265786176121027114499026081915923718988123493689395345045301875490318124564864998934457556717572407444712874400750981251192347832594883862336861658939399733987152490561035017616696621084203619226023882700729068411741172252815099244386132227959590018243587074672104160220698740345932902770289327072206157339935556579157338300080753154117556564872779382716125643178396060338259052034589811018331473089570478027891566280513810367873452637514856418041962797542588690399429209343765641828757793697934226041918798355284007555327086556408772682626250118653975735196858104874477292085352728705920445502138405115684177061082449385007038491548010835668302531426522412775026412104046508387728154635579959261750102082767443287357866079319807103594376937425520770065832866040544376273487360095198020545306860676182852484145117728725258762512978058973458472914182576720038892152793195205880217990292631473856389064535407462300755771094673002939063196583130545797017330641176785632312516180118411690205913940050410992514821449976271297480893465007580750663725109321981883963034158655557427903542015101177692637086172457625119402048040036196949046037668715638470413867066073634669062263275816232279702156029955307286964921274328508120009045686654628144824566599680935863937062579655505667765280617195375495365851757517053698736620185117498002405325921356433796707605282210702602855871807362426824613982364245785111430638457933671903560250024326995337464447530971849940300743643619699543470477689791425479572455460837405966794766110881230444796402602226832817337330115671448370473686290824160674502697289656717398544994869938572882840660143083996124857768665868682842310827915556868228961248539625371083450378845041778876536897767131119462707920365624775563921429527090843692751982357101166355921585011409623957714262193762391749424776767887548736756524048558308992169758179128895063121760037385563449241890572067115212157288007642016642021606608898180488889542084971476147794005725760452672999278992194931913365275892107818090980750043471620875830432489109782404289911984467872955507768429345046828412484035163753537389471933753196997723790278069483424555896002631096641109513378809468141660639472133039301245822329377208302430442106004753262747438162801014181734952504039416339280196945822882640371539894232583417437968811002628052740851799285506762072044214221897756582810352052865581641942139145069393663549623416302528381242810397356695572448769363244157994396117859462153616063144754999729269409066512989053762709614739148193928057183581109791465756135860128887108211847666289630135424078190266845675707186769635624318278047707155399312767208952585874361446487025132200945567378678162117939246898633088214041427145286930909092631465271991800368563323093742439109401074666088805687053787879616167287750909010719047911109959876249265392572616701494360343227871731950888827548940061211693354225459896599499726755689801324286441606472582384520823589011030380891798416207269572442248404655327875837544127029307671933977757541607802140349859646419055807452810741854914285349298756574597040686272125024839435497508212304885984234847677829386050079457467901248529370937766045780851824282676608704212206109182297360095418155957785062795579113645492833113535900567595285659095292280071354031369276813119336821123884778862200159320188850791142313120964607412617890311406205244230644135038635275865472142585318127800408681727768131566283262475528807388629520330572690311594079618569787021358480711543987693192048100093530386222434129149185663518486699666241886954122041194906410365041038736452894621319587237810764999904531128094363701571498045283358479705209948694131908366005459222985823421176976839772110902161554338903641547723787575661795824472039725296227081734836860192622442768703776704532147169875975467696229560754794200743232066281685345053066588150344203263511606817997671612190200710061326710180295593779802328088488622306772231997368849033336193894041293744136433361059264843530678913761912914694241961578846204308813421648623931924867945032255634769153041004883254900071956036656602362827883988624624319070936035407285057172287328989491021581527379008199671998995329510086006622548503827518958617085218097209203097465156810327206894916653154136160379587413772452266996079186555186161215623005329714845292106788680074586957683292310022941457269462003834034579905817605633353002880087106975338365366992165091386305006462646458801250262554424363042025759974773663726465897610240626492249218628386723278186743751397503246826317360857434617577726412354798633144063346396983868194013609102135620834160260474500391793940652047253725343665986339039334131163170445825811425382567953052423888362879072027946816315654556721544766178222548715537122188574266003699624805109330381593071495671478866558374752824958901720503717161605063102372423530072210310113934033664428835975465262710770795875159589724474763250641306419758453851664290537889542411665391119265000142616152045186532095767360591581368540010948287956616739571518233611775586617358524445796279787684449173987010025671421632404227676475704555400339359146498262604046880266844988775859906711168659447907495807700440418335329600567896258952068446100922697600268086941397561046543277033752504102105305270330666773250116690961167919074874584902679847410698652170917122753684144713372899851816342346104787330937730796562885434288427745510257413323886715248119489102647712570366863362393414957562594842078489597869296675909532799585050764318439770657022631211910064325996680527193459530477221747688022456583251114065237843660305246668454628942753056253846978110043900580169023595138552571391707698842046126298533501531375508019890649228749093343811558026813312130759899672215641980051284533712052529038145556788402752765690145833415062345909483443913049243454607255238226002881960092933734466759294804637289572906961049365696244639760853914406625341132060860408678248351984243756511422867612643670026232526670586597789613311590939375058850774141979957399120087482034815562562403200470865698920534156897684514438377947084264269747918259076651458757407244035603508788913991917752620416604044577329066010027711789152057356774697252743583822436553295089378745474247871110918307903833469009181913659386057584358954903140572940789179632153564051545250966664804582703627190443298563205607464125213000027510008456946812496314750340888522538579328097474351126009705222926926400097101204924091939820259236986702159481423674116241029640804348557112974154424660997318420429541403852148426093149092200468004747957954197576235781698737080855695803176403981812732232722282589781296758542089321503910436988527335765700655494627460518758196369005085000435920307146115330937914981539691432801375509199710220001096778591871644369326055846998752438054690331070411381197489374768686285410455373605935541022104369533954399112806952443796372995179218158666398218324871111124295374310134268326129106406892474886755975139012793147652950975340017011544460089526212367221786530669664561531441636573090836597971737228211882723688458376155766933578891675899903977120862247859763404152665664941953049988205590058834103157946411495495594660084483666933848613073903095549346307045898221501922796718019204198614854306158920123825692624591162197145705952620618340712315696421255530321913478139663030836480263750095939178893509409917893765165736455632718568013547415175150226233481706140959823558050331884999870755067586350069133037745665618325752712731531021937590010353892782296979356357507006116086892122647315653914062423598130304780917802390154984640340810768945270654771370346313122257252108494301389099392421788039597109763621731048845139156542134766799926566376077984608948725610302056219726797868344382727095232792371447052596510439408714211826864620301377540692933442704108673789251444381705276061846927790167242377970380766086643735964362186090944431332034414578228368719498095080999020464638464589058439087789446802533386348162037686240995220910230668767785097217697039661494418202237362621366256418043168238263664333658375770128228950394850915460616652686951216163465701566260877816239024976508714382079906989326814338090039808937491417034163719405534903275017553601980158174542681482780733232875477206080917853233051937920467382765920750180876206883255520257029613327506816333786568250196408741595546070987826634470390693582451968622175635077775682853715772321521483041441042120994895299209794358114627090103998436372557393165465558704616062096683478453684654241973531606014243797148672142373291379702683470254346062691099086106324453505513164941171872303906741887807620592208181528082570063475263368384700365120605671460354815970728490828889614417361487649575482713521430509311730183235395543191240754950185708734725716577288668388945595138215937529266330669738612721275957319667028578199288650805738275038450379592622628892996431533246976666544044508400379434533193080617397301595967186006832485999701297972502825617464332317551821902134677187766737153685210031647468212604544366898533703918428745232737110314235634989770562616668861699629606448146103652534529604844696780991281222184798506394386648987839013098468680233478277858353317270447417769319242259937087282132759796856819577383550701597993498369740229428081368625969368125908290748349293436886576497059746757514229907634280933840198019188369769525693363228359839656571812839025311961795552619719826270042097902926016589936066095314689311838610945375704676249612099730346166429320358455386690177585710035397745660095002293353232783400940681193950087969759838780146874418616614637002031157266761477927298317670108634200255173754464936478763772634958897295692189947582856297568680654523962210257602290103472355878855581600339244607267212077795369995218906743804873145246036018424200121600905551855684256696092128327303855431838896011309556090607181945380107314904723395149455500715105822446169353024017499442365737961015126101730778499766051897601792357214472602040006774516521192303683362542344634529177852959323352123763496715540356994767123983462043669668764146357517559605071449158762878351607052895468562617035356540461677703524855686662396635049578415405821337895244422207083531111628555971375697245613491467798661847600997860461543902311610528673830956558850769900152462495683480403054473858899092425009124855604986643784853582521270922568110537623522015576768937023396633778618678565700911526905032915244785786475189645048505921371583249412857010354240711680978101018113879213571682971471166813912100102992512014558585912985015240999996887303871504257730654626435024393460554320499331832337043086955795792898423914068251565770139350706076666699515340487184915159402752159525213050668888914155947441863915409915111519866571354493136140923398700645066376889283748546582046439917744142396296010697930601057627841347520320600589240722928438630652256215360510892689805356917556286851672644618253964533477675999707404690609325692639584243988340905371769484069774083610984896535241603202295438847180446191584010411167177643842894341773870582684593225356975660460000370672946486746782251601137291812041919345254073101026065326190400728318007095107237757523599995405547081317669886769938518834673478806091450105350273282767944823079260059054569521582794546186308712938779020936460314544392459820012877367322916189678058228198825721025212780298996271627050794243664160302275895332863158275963003930394017925708289089422332445010044897743466721676621467732136609815918907430966600460218977049407427369687167143764842061015545756072315418701351649588996259869940146543131784710595569554126689870313561201059540367637846668122994415655924823389407345426742019100586766682465080854062997220165839809447856002056665003652545704384060095808245318194916688777747156398111167464741657199368451013666831470392045555504380580169608488141127545401987216450273875015211550052669444253083369291444767509793126899781332766235021888410959181654674309797369932622750817162932265214837195259561033543654045597926447285971242220176029842819429357793722713936259245145554783940569927078109028664119258407712978012081383895964862706616623760352193672262537810360929571581616568836990179093083930995450818585902303874422199462768526431508411996709213098637533041643087983623361547228062126240505920197419998957336112904829680088120404116803211272814352531126297801400243453755869841072118051295042962985434610290272485352081016812984963726092004822494470041649743605257402397312743003175314615883197146678797649039008856258074040746357684749365788885818845393159931695297262267711473822088267378668500069129459821594503228096704764982922699090659446650920166056850722584694926955371601990286133386121193711636337374469580711039328546032957641868668045012194344185091518738490602177515985268854501781125758836534804670234498240089032219163440380883923040675767159269498799643468975517404224209770381801292556125725993061387885831385454611327506608666378363051939395756427978768748982188521574373931687721866356056949023999082101445937672174651895062657573093706308261695747071837882711370091899616447321489311154359122489372360302420338920467202483104173463305289634309657534586067264839268999373036223991709467634721290070914129236055014790627180680904268234680706426816812889936430684321221870596252656214138577712804438865251268951332865591504926768571015052219754492026054913292136109661439005367999647264607166390574494743511005197644073108313924188054442972660276411844545130687816537933742890724034928254144750315968287414699033314297760823638728200596629585892341632157018581319834540185145696466036764655569065656888586658425452752691297043098821884039232396868217305363110904531403976467798345458621001556851036326057087834504859566153534947149643070346331495589869258376919576038316417016983089442695090565032889825102475175922824584768387891759418161975380154691064528437178899021158346782039077938081165712022610463662318388646680568971541888092203098149606372867108455964233352670927186681877445487939157263732251668354930456642690468015388314710048867001056128544887297843581260529074014162362984973222896858399258949352883870010346462706236707070984897230784010854590360723900247800609152084477256028690696594635175073776194174010367046993286804837680919621317157175530055300967286313295531950157253149482986506773357260548605273417454096829179898243261564771379813831931081093763711540034316242966046763446523309642239086846704672144772826903773948360711393225474783950862096789709102927395307005690438545317957824406065747886495413326332192499152789725085689746946741396374229366331676451976183485857763829910321147587240570816812245039120681518949105979004931025517300710951259791662308177861782914619851395942636633573164872200865030258516816845315991097688487907635338432446007274182029404996912714771487926919157320236462273069869513093240922962476732421850786968202827009634208260087627792197362750432189597495696744484823439747075613833140377824269741973912079310091608217595529310998892794745040973406084628190973544245020512527574058120870053238233739696097405585870173204553579016327780561110731191491246320644982957007981534483122474564793073788942805940729785311119590263002770925554051810354701887632307516938359590787247876381066440990797767060687873316895869157651638969247633952964983812795691149335027627135260021105930568434345264970609055088846407548599386319936906165970482519801131379552710741201378619862070332384712659206368853617256384387471405148618166522694768889648593404969076031045961433318736917716195181534242907296173951326363698091240615674036743958292875094851219097496873654373923802683938236023023741351209184796500001254111995905120986084717994931138107549848138395021162473597659718632317553685073731959116534440114771370222784022635269239005560423023276165755832540649577283302421458411913137750122287692645725811234329704142169448864654584242802101684238056585034550366380304274518401965457511619194836141510656654144474196150314571339495473722265187854381646672004030463476854781113738815218473135739218929021271230538143787330896699989820097402180891640185220672949105527567387212506710733408281879943349297276124629662397607473943394048027705931387593341850285453672433947126857286572254430515201926873861881308859021285032823395026331729260567912814181534196014283943801317853688406605849345854858376261076985475510353688995913227680348374876881854625601709965055464043178137576511408314770851022249016296016050805913637045623819824171326643725772161035254560222601403959592421698811954598270223850371228088895014356966825928069847650406397823053618424538839601837417418177885991536596511952767642224934296551876830970206219592855657515893565853426303148461057960995448606924003470638176460804701964562324475268942756408767071356636423209036327268039675708362333683503231314442541071949039457469586712560085767142111438224133574645355338452435750258660180995529824852373624486899094749525442575941733078268811642640020565003504650251234863621085053802950922451313303965921887621478330893881590901779272252028118623754860244875082265981073947793971296399548145486141038375319405638611744120440900349195673126605368041171361807421101006654674393265249178480896286079571639861459234791793504933762961561473321321678342035281910866922048893781398720696239358668656339952343965641101807925618655835794244773097691562547229157910612453714888121788601286701476154186948858626118008571057083440547014059774661238357789741022375935207677061090837650623172927270954631830385977553688447618750865848838200572251567147371527088145073242494304308135385855340740370304242878826327390967501992835755633180973401424527909424187152400738528987538553755965314779662593119344113773147450659810144374263455585711959857217291998355360984664811920236685267365756456036670220544208050420816132597688647006113115536864992052155121705565265766452470767790005561507247423025819168865166009095107757593694414633313837512016099385320861034090819922470134701072997340880763394243735185844445718763977055677234196224561841446715063907709511042547395597280002808053089192371256796910412282473753904330438489705569171553944890988732152094886540067836573612211994494235121643247727283685181730166004623816528574778833183910203907883855822757803931734840175682265812104600221761849231711077029008719437707717349455876636983432222501834375839582255974717252426064477645643453055151189021665704138455874706496620902033353184756111732939531875852400863752913028949070387840905729105128924192280700495234343294792050455975031358948638370019447785638977253615929836271713939822477481576959155532936475406718722558977880373705888948151833766178251022179876243577706445691910338971401692717445844672141818294373863798350013308052741748151748684938422795914217649046257654619096890817216760464479424541827527266186453203971925755543622380526433174079614025816373678354098893045906448759338805371311582020227475035995229150619594672635981745575950173925341219332731414812615637859531922251213019578721437426772152738663080762755492093592555490323569791680115661853487350046382196771507216625324758917601464473908957668982761604908382635917892494560230076568409139359179653467848485139475074512386914676917241603058979553280076042204005166189087597718521775760222665512093980689584472431882537232480693668868309089071311282963201171002164583660610957709163016568550736607897036372406261661433068691222709255451039837677962114140866717921030003361729608143410020031107628771272726669950153220283145243940268869212242979030145056269561122254236684816838139157912813312881113657988827892694108694194625155465655241926583207195449868074442253048708800605842529080400158375762395600169229932540930145795485759534210812713368073832397884703617646629600251295035356258908108774396437824499852083353613919051762000447772803873905546135806280897986022708327359022610431971670949862343745385069087905220227025565495057691269573262171229057029781597534690584751840723699051078960407622956014952834194103887433735762323167453372603805826796839209141121750460048922471548553477651628538567270738241315467240477478829304857606902580595516998761723453436751975756057981624217854866956225896566714206245035720827775382612519962667742944385299087468701992446612511057510395369064408652895045998828809805766249461795462196328036490575371212400063078100079929197281762153239812644168156294497026226024352164047048868078666353714952413957768208134998365040590637852998099514451558157126967358919995762130246472865730248919053621565398466798256095861852193925351206830038188943349674448566503923633260996603539856046030392217023244927914233953295070651153070014507868039400901190443726041148526759796621653586957916225211342050668815056416733443422513291163539791013264179378907452435017027634278819902486042962307931033440213925733549847887192700450888586253201553518915419912029124427773320042237344743280045145799508840004661645391694464026457279571702959705656265523427619430668679123892743753841350148070595292159122129019379367430567431271022963141147934271325933876313522057413836120093153699759887007483659647529517849120336276041194183752194600140841132154733377217701198043518321745568596387410683034962083976630173880188461736231925880341531332580148300163729040484223905614470288531434004847312117109670499161908112979017166519961128702268002040958078041779146894537334494353918062320799366727352471759380807586707991080219173182975710123352127558645601146517104582350851798442737449299834325826730699527636783261674967866695204001103365426094912012213942863890582151886654362349381432848581370128467082578215884728451355870969247337722697042563165249977018051766944237169229732720271693887483428733743125156248078465934739967494503824884407558293421973814271323442874899210396821434852265100409684948994685200210114436589768969659895016129697551036474402804123246764173671958121677563271581843184157192321333216941422630195597323655950622085569348677669793560603242439156338079436751307665443637652114720750211630194982095524113255351975979591974036934220157267317781083402069607857157343383434446353793482562847670203093442870786854494784423497860639406088123469099906874749636812603658756578008236377948374699872480802496640026174875865230966091684598825880038475872198757198980199005442537062677697877612913563805103259383687881760823777580374595846459476857110374209793256526543248899749451244250676072616712030139344351614591744839224066725575798063493205199431454538879476342642424154800530793939637232798639959771004737125353523423070164595470153767404348603354851896586824186825832457310676553222773579475115963807289262592908484210938272739761387660798719036968313295096424685083106083029280032102582594682898821098890081524195618293686825059046904517324692615283661406174254377448130960649284976925636469770201691791653398864356195762326328612175427070332015722034167721067260758980904294732544513391665515872263307542733026100572903378053999270081281594929126936898261645210639855558555988313290646359351967045945623616774399183670485701880077771676241961685047898596556172547921927501424843488106618898433452062945379000821644696096642697464918060321872168137088982897541756906615755817091114898168980726527169552892615067629228180901631494630107946453978330904028781172308567778112174943381933681510640941114181863791133245828731603517065910929097720519230991467414228450482505421537872227526577632014717043097278897508909393581702904992443845559972932795545973461910948966973803645870178179693698944193203957201772108308678459530194849749465459023217260465483620640026388946766350875406435919788640661488035767061134651061485283630631714370272320911076636725169390369410799686486029325061190991386987625446781898606237457763959636235351440215125870302570722874599426110622904863591585676111200615459860740505884476932532523150593990549050412724950344543060021827189175393410746142352180927010276974458278265879189601631973335483163578725127728853277860987847092501400206219497954283352715797966391150206489212732201666373962736310298584784692101464102606313921876662901821765798028527451694932276632547649736526436775797422331607438964077943838039237460929333608501130799149942810229390769935336081150671805212341724121051156775187478371919909574968244615432534408766297968124172098590452160245402126230976511449131595244931679754636346595265260325675856198182993719413845392306878459323781073190194314175506708859836053372172840264330801406294992232874652176522804519943494430959989523642057310970258872026144169679169584682012744268435481470217856333224047237531405747208119552403832808239765761722948086510274230141009666034419225020650233731033691142011400210062886539667979930828019661052495751234625833094502987048601253700519211462066085259702441059861539915800108086343387516827664799338365251818337143832499066045041161531578442535438932155837214800083504437006622233487092269676226862191802050343635483674661957784979524966353786520128614790158553934403087135943361304500199047729465242676816238919630672260846004602401935099571778273334877285776533507194320433592586864063594878299526884737922352772867659272860899722044810895370849322475293999971875546731412787119225296554515365338861805243279820227491166544322275733337476955096024985553077239262048106989868632508135736321493500978109331409172765466593978457110115905074624664350930982210303689734849755045921640678158151761224919481218217126104576582243405238266408462330991097234969457539223710650086749060708365277633175541769930391034501984454609212710574766392833363111911799462950346418299911337572183349824698920130247827301814091662330533407594568174326750047308248665056227712381294165252878466731860614788577578217379317475199093412353667188100221929930650510217784957868023943675691030783735438811810634827969934425410109996449421713445550020093162084895984035566414836292735547164979383957170669668581389256732059945011554459337730458263895935972462501680514589125768264346738305880454157448236911442802646663186241956891207177958475970602422276666488664459060630931609393980343469951530779724440254373172756533017467967125812062878924829646678420534408358933081453743117815807941359353206485412713016077676735999713059584817425221844813009102202961822349259724451675754838653469814271217729727170185915146243688554799799569292766263966058856710718271761274297811931740155850791553682739702840997401411147476922816345014486912049439483567706745169325183750209294385070184138770751717621237430567510964905187228353206288394117581301162222068771246489528801503669637266267368197195113624565940350664971376190244071794291094257562726037004676569921679542975740266131039192584500629633467374683932710851439558610722617578145053055950527625939978200932620016005120091399144019718849846401237098939486816877825624097901813413845336485889571493366255856779350547068330360465669661293008132410129480968137713281633167602790407483996663823591739683652543885788746554812312509860946814765118059400433916013175978315063571163994847062700199967329440463473893591172180273150753107330141791590620053337992991828537209147422024876153827913831667172394755889073608940902563034544736083558494745662992540758582778213594758771000236527241837076760891749850028598010301247132051585121935367423041998004486360651858090348937351909975958620583682809801221416525005551261457237099910686811694228889394226756632508317773866566638333063330185194904882087280571541830413931265083819087652962063156637689431615250879260498038718429599349200760924732840414825606770663907202916680399278899591781543556359870930752861200407541076106160520105412352459777623675597515439336433986473940134788228035142811465681138700822431637735948229035922534654805069177664369867043072291720683808118895245397450089904070535977071039343266940316473969780761195335020050141145469023075595534776345098638937323225670991584039025260067667774083253076497687418704704303104379080406210808875364995901158738738116024009958148083799218111471643712293759926569308068480262043978658746023731735682411247702195446956733514387208071911964698709471420739631181985720198452286533237153263697551704760758466502523250455484846601454299724124727951480764098352462773291627974013454350461385394533143582021356221715463471853868721023083152059993895277611797396931897193553265580639920194492767777971544844849533797940128326656110527472430643141820551298294076928388850670627148523510273761980089131907074878627438025987744773187357618450963943650066042174312066877797744161318433567370567095936882529714958920563441483299514590093484791422996319342044731930969507265608497118839296253436179580719494392919810752288227419663801527065636244235233177306911247076503344400606624924870294408166439022267857145824107142326103854060449857731511696045559411665024162063113355318525381512987847646229945082314636232194370941991564619484013305842120703634187924716042392514251024772402089006469745975156052041014972961560500879752104751676153725255313640772220466445324041922979307032048784260582228321485807721774202683509154155087539482452275670126933232739393406640071451065115991332698385312253155114136973440195726893010218122340423641865327473949028865778884055993422479671855973012098465095267770235389681737738625262772299723484337615735701679585498671480453514988184550995340209322845882950935382639173847251439522850759043541797310778819072631493286967078144319667453264130656033069710891060332445062362346209672990715274471325494167973595637710083527950172120123484994413420841672215091392086078043728723526870512644495105607258908317894007608180920746077133814457611369138989812962858936975335000402780310426012457837772030000617909952595810385863529728842958920269571899299742637203347480317194449840427855456603898335058692056938530498380034445434807231872293789999821826941427125918603600178105762133021719759596314877586968811745066316507525057435828270468001490334613294941309968889817717834714086740617415064428206282642915311239876976430438595390436239271775522046985686999497683337465264595177403760849671976472379096866499654811327742826590510187141794366620475390082358020362948452311472579404071264031327497353163191371873669811671269817719835694867579404189566072943637290149810031890839584970101358489201431578245524876755263823275335917219620772902770418636918945162152725565588708872647420976937254553527136100235722953781666089728282428618021303947830299367576717708541643642560241849280439712284081798629551675447635892986769776978199438666897289392838588783712190038290375120055447739098555549769678579888712144718070801780312149523528820061051116376644935172308465755523977377869472888875335810847030866698494293632919225322829171982641766150102717183319628504451674001131254045767064399356396233230706104408307580070845182636112849228932271956552616443202181431263266809212770212291638858970459405097181596753277027110650138919540239325823491174763301350801607625407619814185329304022693616033756966690886834569592344996021574256296048946893619285972240897751090808004438417842380106133663340121688748439936290381426286348851269366836661412076135943079378462254187870687673798413785002419306619629458234231358190844176071758335558650422446151627606458320074006160115241617099010676216991417675893158390667230085347886253573817072386707688360150129073709369738019252118676379262316860722451603481488381507690902063278023921579217440392772901265403551254228371410457466885276850128481325106056855813261127724260545964923253315124104613921410204245094790016883985805691040510519568069407658244482438203324898948442968067875131550309994619117644276794948691232067423528393460626281387652193095973732743559474599730075968556581347740783197208444623786639237985693794447549475617098348268164362194617357982142121244778697357331148938702400292496160472338794346321771173591545806858931708948051316143470660805890852012514628323549343209782782293038333558529597510402482329994737567361818533920129485629887815551563810580497651544956407194823472996629639013822676330200861524907375386126162868363450699373946885660056376382364388011426251933615380037198819186324778556806709205734661648534994970113901948695992800775508182290407099685559253705626139139207536490502985337580159715868333539213112608457336653291483700442886315078961177267788172220390202716896679243477814173866409815912553307306891391379864630002597085609398570327792541809341510299327979624247070352663185584583393453502122190493544423001035019305797086554436343519823338895378955622284905250824627165332632878595863174747770009790639191129934937406106488638084918593245509858070383924561239476950615061186787091259395709109812763489727593287684158143557820317818993259846899160590091972932155960868138236815895099002161112246141239460367781690060186900528663402654576811828066283657028518179584689111025101761101636886969791132234292810285535418654723257727674095826699793120679692827526788275490331862843844199707758877386305917481459404316962946059577898729829629462853652447346371683928801090882308895073595877054655634683991418957347602333403596763112352586710609072390265595212689684294249843026169851816236735242763170958429055724937698340901683927939797445111683659233351591367935569756051888423298942627403955976534476310823065119977820484731350081117666048721423153822275189493773677250787365851544411904042998072629247948102837574745906638661769438666513682635135407587228888830350870022478837190754462374648729120415467727099328177134970881402708318892229880590184166949121603558904773097217745622995614209113459861447387252289025911539190810380350435688427837288925108346947438045747865730631396667793908006304599825973122261073817221947512255277020378932142458019991525960729623967279925028336420837187323486718354363846668676327669180471440142822261260232147225764205320361411924794169150067349276691131287231131108914431793549886948769806763905384469148254478121148603439654861108451243968686085921859583926467252323525014991122470677987785369759267883943601860983078933651834436298756548230013614279451460668633841066465982144689046360989494935345985474030204533605573301421578230864452680400421099670011218566000808769572423187271982884820977696421909470049190912438673822022522892004961937047403774247816668697687212826636732443146016052876510045806623038828898456124939518372101309424498075425020201909224512675577082428837282915535460454263162286164637843312772774749752721314962234087502635541985791725871850128098129764268446009187425147513246308758549653638918328598438745077794946389962260306364586744801709425887746631471615972124813192452233376775758787702591621142241849344916979740815643132223042966804719070443813835373691811441921070568072252163735099938494817426991290606807523518986688173835495862129589316528507039050824941125163899314293611561926907713756067225966863140797008573255232308712235919941552272484459162895012963042376747518959896347964434757619128245658985712016516533609424492476267878223614993445121470393511805076149780514361867335267475968972621487275839676983556016508858514987910058412149284538328493057115288583710895522347014530347761065059789161975345386508064660494061856514312195700921678038527270283341484247515355205095882869674633222843641519772760682140352848520170019339242487380361231803477418413168169431350538655001566222425270892371764491178986505235489864185465559403520333160571300243320946875066692958142351934160021551664738476598755161218032337560154127656849637639922186903502049995921022828183455643409136819287697354877089041807752395767829482476270431745644869503314938761239938771078070480961614185465044248874371608870934698344312468440497721662426580344181215910551004207005090938663675910358637460130355977841708168286172108161115713241355805433817886265876096318641521224048965727830106595864077977419275415282415573398547874557129550164423971414083738330198824927872066686501392694582689439187099999548907227150845863635299630764932982624816695497446638634061585140981709677990808931169048591784245904695088977517020000538468673165735967889494474948139680999778198662116040434682091463497392745334000752418623161951840845854161305341800541409824175122732760939587974317466181289273101739680216240347265291208994040753018950053712116245219156278663358491842519775948517424056902035964358927250686645087008381827034552437747584441274323652680613086683784516470203551883112354369553703990979312197747628297307157348260278368442466836451658767305233229337227626459404961125551756625040535943624556506400335743061106706651708688024939892483102217691366809646946242481929065118666635122463020803277579723720246518157194562718346612617350478928568011055151644106177823085193569585409053240343375909747331263219667947476865923823595955344731298262742194703942749743538384835494460322135542609093532322027009902677441897255542515876958415679970765344626758410281906980904858614410131458601740426319836447918804715000567684240794683689607510708381573367488893763092781290035434752498281991665620382679706871451071405050169260496164589069534321191824542098163335274881547532849872547743781084884641773249456166435124302716039441998307184595148533254568601287536892458509512495222307022924414192500612713183666525318713847081800539091738834051832789908233735406253397766449591283318707252780310599250108371232948489745205030120008672257138331512083112413702532592752190362047846440052095146772305736012140317765051934064400536200389937949211202755344521198023693248900931260455237882710714557051990353136297808210746791321924009815795988904911666978023153473358477701116303265938872727831673406450682947143586773179290911565483264255410121090150679306616909057766887968004217802103750663267467848592277104297920208982115197135687830925261641570230063350343064948414188246499141911939912040013057956931056301560241110648894705072234221675206662607148290954112064068081251046554142151972204552498821004219134389794219952513836967800859024682861649022660241868435432509654471806725659523287102441399844149925002594203219734522834077006194160217034371005993786148014086468345470242428004838344779262757463657458567681763183969568019463369024228125865251652885233882407198836018706270571263369831536568854117787349839834212282840427556430697292847492685990387119135808807079091828906294527216106302548822482451989115466486773245387104228539324560284770829479730375433873614249555545472609062686682513069960690354209157492818915022299433082623501035813167058703846282094851573805513727228827051111073333265929684878717402849022884567760289397157147392976063094788483645340069039302907560537050221472288822533062734459604062972737188509276290067264316938266261437053232578217960383209893221542665214447461617620218467539715389028912871625896258381327631702312428957379011414816199385442958558473518334893869190324541902734852634815635914650354871378887300496506792949419422151384390899534968196345146485372846101575260245087854904979861168936586982338409319838563607091534008634100653278079863844721982521726269713085446745471226072765230316535826843368841203045170745753249024349583568290841578528528170103624525372000013674311545743332125680234447879928515423067727391328493693263456885599213055310133528625537925770573610116459890033863813978975303630657988547352338562386970286586934178467897629565267617156826491458854785241603870246793507931130933091968837505171997236473285404988634500287462966108579160396538513262952405683468255900460061524008229056262258320128440952768019468769929804160076805042261242387909207095115343135335472940737331745347476655428759700320772048045489901735948009298090411752168017068931250683150137374435326147491663720293806315348713614747384749477502082359666320935313058658176606669902513357489256531923797292577646012003543848523087696297867987972925707470444272444173599513806534513921600213251245317784803861647467922617133097852503289488012655597528033441147210450344497500068468448078252798633543454949606357009878625224610202670296271459347967662862809173152998436108960887708136205562001942349428241936862257768052913604731571406858392138180521163992349495905936013967593852578633190503530500472322750361942584191006550865369209952125682460560487987072279618323088428288091550379043560619913433461074633949548706957889565034771771105055108909413532167138499608032878623303388886712419994893869565388657273938872924544581102899355301942836315759157681041545666650075162203997568455366451055080520932253332784252497817278276055374153218679132400793587142824534484376403446926474550308964620493981365704161994257887634374672974475949684007145143756874518707513750669335266215055498709919831121142171732187612222212575206269889323911343429374601484865344282242680399869239281652568025473614002660485928980546586201010257037726369454366718669775994880171419414754711768542315663934774034290679777468138791890039349951209186916720508320429248607210013963022894986782322016985599592029889230693612313151728073868341369005960003705094286626381511558958921274506166610683889997626829358920774287235625427344942996382123828650128604092433082749021938363540440751988454770832179563035321326087048867226941503552368399735466174520015915259029228322102701251126159196884747768185247675627765452488379360650137036297341969675698317655452335532719750565441287660404746228788271037959517524037444922137536190575697149266933166669158221966049062438511353687927037199941125522604483331109344526283290917339950518092656485349545565765144216823766078007754579456414337775453158979395367229285191684463193349861344524825521097027079153134273572038603251213424928252246842917743748251507310335922714289684687661389781244405783488258293161011876129164211174809754702591420284669712727548789631543245952666165476077243245031309043715135234044765427959399497679241023689670405880032915268445274085581859264284079374101817590936068940570149264590275745412192228037455486584652291039548754809419637142563745505408540579692886196464265553076553660031942893611574326185132797359012532787613673177695842476543698482390930240644754762316951969052844364828355132482544651827168603037139332083736465841898855979249205145978145459826477663328191768082528244726989930760963862820901310865704080805939956795658366282627344615387511922761808358795951090761933748847373829048670464372616514310769030739846006896001435128516146627575410988463189993206595617580795030802065858209080487427492430108329495584540259392567922814505138687377088343506531323816829475218583601172397653069686439281655796628188304053302275082621534745477292123606655027569422844282891119207780278425864790033558784435051158179977658714240317443083502713315597836581096032982287556795119972124811666449173598296171721620313170602319005497457045556764324891710617422182490930292635080369619944689160948409523709879585648605335399723394392817187087855297872854264914029368344388444114744936403969195299062015384150735995785986108764157910372210586887074224533732413374220915255546899687349516331844835629973151278627669147598335141087420241985969113517250822876669802797255008474559646417302010429053299624490615377797855461754261967140437447967731762252059510188532618411068261449294120877516967830502280307298422308186595270869067382447722163154937242819615290224207552916805572399891854574818383288737687272694371195723081472998211807223083830837483785605553230673549850308418153386432021553679004214341000634331274193065716237418351616753727248278833698028786433076831872921801725994240420122520619555787558020245427918747192790338877761759792402858521903107970021780870016538150254894400130950498078460262860796528749585180936126192476014288860666858092358749609192093155714260612083103232830669837104924893181216328523978143304752019223481062306339386514895447207691111878001593033182468318135403768697585840448048270138858066840197821612463375020130658113270103754976226929979434114979543199665795448928664674146413284155414826651060705111616431786693407086144669696969328289528509669525322228092018251099900959971291711165536136473259763849455128294716595354812144981082608699038066604376742165765804697801968565806721446772772050269504814099551156668261055931895704313320910454419321207134629918265872925511209284392970495792583118803565292870399021020069419620059646092026830754051158627478791067649714503323337418711424067940563121295801263660158383486035359269667739306160611200847033690364489645125801160267165198865371442085063643642529157785347136375884700476598284273398705821911698641052659277298808133258883465088222120852287970308843133722701978576456567194501294863974368194084082386046752040452582514327924933061847801672648266947944040625383950256594835258179292864047074128535150513468945889759315096603478202651982071114635140600081616629200166405235658168609562048364746392268633381468801489992384836138421999417977070334726785242065698962269193254373615864139437658872278173801191423233414856817715076713932201829037721687050532435574698469829874259001222439910571094140584149402119555320582306738303328562259336356423895007706677415087087812632325812579177480546100174986458348663580561723661407287340265563975804710548264126263277923775944485651141574152816684992950687001586564251317879970346935681553585496295053316042385791304205390987603310167449558588933640843308040426254884910440816975866065872750619053711760642664371232452610093577098038522536854906415255499182660506070661953348585879072368993660338163857237103154672000216201290304889521821908533210546167152496562538611831367194466399743466068925488049805107755441907095637684188274561849950518445744620861198705561597116843173204634496091387359098933676017921981998681454968085144286546313598575970725365729877191281694263632280039297604225936765162382408621797057661511435876180033044202007568697556536758838598597491026370413247421811802362205684734566025655809437768218591964224279018890170843850161091713230100429668592560622591241832751087403776067836226898770796920683276230718025407081690402899036519676005047190848749809801464694853334909995381138979274413428967659910352169260328888610820434800108753106233471383346925173576067752914866941325372725017114504309132247540785658105290345783649262146325846650075230876203988893027771181400010176423705137425810755649384677967369461854515216941161768020594062891085051220138520376107267314574530665768674632445039406588235138164960806841426278935292870181594278820229001543220157954858114152289978307528874377828012906670106073961227201964847275128223579069435345165264776130278629665941337218429546283696130797909923520182263692706220297272424871181696494490429657086742635084683075366846516059893518820663157936141406069262959242958768494099175745325815823364378443764964358003399818937233251820045770852889616640768571259672998336233126758469772492709001157831740245106504769618457871857249350851347861274747259245178498086606711751975168525156531243942946187593799668911739167752053933057195149205776890939990059701046577954372989392834502058881613142062204625920290361904985179517262344086927121410452417915824235603786508449653975243587509130865885023493997893535679104483964358194649272324175461538313444905738136871510665459107362699030582850512218602950242633115934833449358081818318523436691503651481307098925551485890192028522503293489541844291726641875156213389590911889369121489658905651620801742313814084397846978806332795502189828624603927037388824284659833992540397270250985979423311500621106806690256187367186006808115729133920142678417938380990606946974322494704374372112129091620270884910790362511586322776611455970018096705303564671512359496163224270651510698414991146256848232138073421397542431607543053914109080007586839450302243606415489943444647309605498676897780405748751065041036680882903275240122965807162955042794860839617559772583562793664178453272294696156049263095635389643331516406051501253509929969526163538963283067656778335384156270232256418395869254570371446440121804047339904980339289551463920446891731629729430390386221183262987433199346293034868590723798017848907687194045463983745286215952760790697908715263964498035486265170447838385040155813411036355436737623724089318541988652218737749697611392332253344761930940408262985852809926337717725913491884841557359854700325501508640268961088189443248446701176086472017957058482975516715887010848624447174895416422521658673805473764769289841318070745828210046290731469362440194507623410539622570487468599322229971753149060827329892706767238282811097534521388484195465905178707006624999851607246609469404344249178064813454178316673347393653157598429512752890368984786405592210563376818302772507610001197624181134968643468844562031565369796912834963857659401543411514817164076975656865010388373206665285478060605882798862397264210216588716038868091021578871311209520430299626964033923558805608751679660834249734213939684909521958343773590229356200084940632238645697109651283495937651963846663831834036216192599769488976006611929494306703357885370864291320415964663825100132479397304900883236716208110169845113267083542180175536192003712931313799510595944483996241902189483786740165160175878539329874087017325813864500976301912425294325730019555313091323685885882681533928854137237580757244597677880222357051905016158827798069430367898591116432268236905272450872476662994934851014313417382374579180605961855586010907478946736966613793066040861099776586421716417037384152412492739343433751789973364166922048853570654598166087510855289446763727201621355352490051598699996723303347448480171951011409102080138197913819140670929459439208711373150282009183756403146269999676961493015715403010407357768454838135919419172231764084878206441410138362722554820345744425293289733912436385957141329302024009301655530199844956368516804327871144125493343796577088667821727028839703810129213895125926757535709284472970350434567526887606307246037132912045876796457982384852289928974970053749512657471185882443314339167983693330968308253367971001800393970777251086260936193190564269830992451258954091009824966918210102994336331848585967222336375294575550499214456098023640593450885239054603707097210284562102343915925809393128016091317317979690901350575985675403998490873473443903280979134038667408538834155113063516450583501898045305789338789463222324797475823858857291560686821960136014758121424230250677042478003616256626201684247954166745194251178824853480387226699295788307144683765897292833812700554786250101992370368585964662715341815938095084912492093153539141162000389483909205567619581746297817838319381770799958949429006723946292111962993293337551611880969273404207490278915434445032444485659465352944006943385959844483424368484860147939173853552971822588079343800295609349582230335919834026743703633007222034309377399147866923885415205220294194105675102251459153542360452393971686713562959073263776599278434238826817212707062977970326647859767491604309279382271732209589002349150583050359952761354959375908122145688218731669067627859824903709528327248166048140032466938361629447687867962672827063775226613546966725766053696526957324498755596797383235943877665847628462393274639053474517037917621299960123575191626850036157889138477608530464229465291018297771279604283310796359070803571407568614613172032338596208223017831580159021861482791413445826787956958696051438488024164715162303049374092714096785363986929043109555153853082260919656068263719180256660506721172411354555827026369066727234686554864830920947285131278670696767337131870881705320223890558542644984314983445434748039599518763918650176308809862159789553857160142166290763121368669505462638733889377728620868447808786521745806063169665705294488312594463571499587887157523480931545290204762424989205634094211929512735330668450136040078877932100518469345644208950169213261687753712467310859987696004238525840459389508944880374710425171835663140575843768931424632517689373932418252889605247008550210346928691770036844590955720500999882947441920762838562043301452493269119596156579500104357732712880441955118138409047533296798397245382029053289965066954947819621006089725111315578533388947411958252318838308491740300218778933053817080159238617191988859800181407325659284178461379728329434696540371905482521400955949461877280514120177784403549759317293154526753615298692689512448374320720762126242313013921132246070912558032443166847588144070226940044321877350485364594152766065673804848691842849228466562581398556810695798791622855310811430091096302936016383128540909820130670214166730374831724383956390496508177863188476878452765201255416250117806665088684262074817292398603202234206674576161051347658234490854142969865853614537285383860039354713055898925959666840010646665949224599892405846369417522693501827732862082423550258198103408755692209090756498039992959427710683426147936355430323245728355169265983991788974516143647195051582613171255688059896867591218746809672110239342633656778802354748504151115056836819304169339508510544416364509850705956070553418489454030804709482521021644995980701803461061691169089550733874462129969853034708963464157956333449957926415783567057737525962202863842603365390543402282731044216833310912578232756664409411364022580232458648917024756473482166904330758684960589260408342425340761121873120227491119381996877905521068795192200621003199556409412070583078448529695828785483756999415742131354983154505228631146829096051589983842448009834910935985257536927260344706469393314865710124720640417149326414362357310311610736223137897000719723693408601082727357205249884880553278878334868003618960646155324732410441123658292967035431908416467843534253148405555973832069930692860388061548926919637556326208412638642278978348343412294770593317456747552818600694416231659256372047624964063788999003060206230239319075588111290309188119693721400345095636733723458418638741659363091553204818521567887092383511276157891013726023042525115910662447425249608975308517450537716616279901644553477413540318268833580882556638504284382288684954147017506794545586064828378029344015595607611884771970003080993990055952906045291840031466858795271488434976568210130855173334534430219716446371456036991144522667189968703587877708353249892987524163075991121748798390152189221069387759050771704448973446201117186115597945884616599719144443419731096171200921631767778010588463173889780518190686876229904846366451693611761136894655565655766893826913994798646571525069826748288133373943117311948056304609407387038292245599122876327661206724120192559574281264108800480610249530166779895216810136282780488533982940727865619483561588214716126628632363115416682836946730534197809124408549552376090923345015973153307915877658677281190215540470028180310916637848253793213956788462622160889853226604392876528999286779320051380251302577020830507340150108931020653959673036602372883660608254053494261312918490038031645141185158966154407853406560629134903179872179194277463790803371513988861374744994348299356703542917028321531040858648488190566446143552824630865405337159427587120976753966191251090376056362154661334403672358768767256840295557142149389745399576890315368413211408134410407621697235284182488037568662708333144334921960914273842137040735690632105035479440117372218747715879494665533128262760541365059711296900360896745605144410058688487369296057332300532706878747016969815203913335174186842673130384839610730431109227567342162066506131608083007690942182203403238805711978533032068855353346466451677775935080499364364566531634518739692243978059280752045403206329234905538520905876284805739619292932867083342026377416261166856772766061576899447339219036057199262223392776763876842924143460579510309215339096097048216777338978535550404132577365542111044447874123705585613306808482000763725217438083659310159674955440536299058026939227101713308784875404336138427921977197899824379401966271284242342408321734249545419869951548884684286716067553896123162315833794658858169234130222453138985755116109290353795485204246570712011114218436853364300412630245692285650980390115201809204836410777012821427442141585372859189762640395094552455645732938067542360745251356758757411387035105467255980792917556487565138271201944861266346604030414813873063392833162630503123485952770258744568773912895048942337288996448278111092776482841237551680341274388231757857572006612862293705546576456875778644227864584235288543625534316779640850754913038991618441589293354122359784194819306486756787263515649255855368356318615599816534984329352113200911780628666418464994372021924054037952741054499990823422040481104753734655605704312691831201587126029163572774006094224072218174642528020137004072166332059498535709314715129618293255542561556760255589081526617169980657846032073700050490806719365651489868261875123137133139859004565314577969284158307559484194004780718461707311183883164852341698775194472148343176033086842640552881968845720275418717723451775318989207044991311489027326283613087744849069863703042663781494681036159908271518542292710772322042968891343819659553088054966275145341509742763310337392610385228730575811453758605309499503485834316370701664061954933853777518578921030486741987825647569849037547088602915610910864619427156753962167777847448305022021859524580728056518051521000422396659183243172307796286445652309209010783809594475545577649405767194796622673566854712405796672926636281738715705241131342394572665097146336539523184672599667583599388146366889429415202686329125326920233484917614514203524495390210146566535964559574880033445394442832210286863710001481200038455490307913524847322159565266348508417134672746567648338219700434305110167115346670434593054778883950609192253181512905334948526771269529551974180088530862474123556640037002600705574297844435069061312588079566801257546619380730008602135840516841110617059309818021841443392145622638258886600297480497579912299822685774886801222288769942130949519184012292869520576962458378959238804570917240672104289377126283687724151283717457303646312907665689800863909421322700486731309556383935422091576736006673029066584439459415334248320420808852634681805781979771465786201709969916459705729128923972217525544472546321584055624040063304775319313189435640954669055282533899685287950394564712005610456673727364572685674786636740486031117266581730545921994620197634951225639248653770718131004583497429616968914984288482266354150801055307891772279722042326204002941555139343529786777551599077167747229945864743108031718374692632042469783513213219084806634168556781475947268988776976705687249411755233349411721203334158841218066248203468614931413289306261229889250109841850524502724100329457593519084766136076373836954507505837761445513833445037706883823752895140857823634648924122695511184372982328309421102031748341582106120597095001642540086465559965575603158956292209052598162894241682336176615845872202322703318368360161324041850109929937340299357634251000338344868746672533883643508165084099021526067881872467416221687712868832318601582379590115236021287124867819714762232252984609409177113649953341153286898031006529779297356967794754222675416530185919472285468181986487175137089835881446012169415655297197961848428526790700785773485814506336253465461640674864168211298553647270709547969795380698151910697284313209248972462344744347001821295627525980139059874854008377182426942932023529840607727477756753377933417303274094971980205868867300908364232354438338427153679577041791463063430044028803728546082450017627924661743953973886630989868902653012930707837830750151673753988861160638150318241129524757240758138032642807869993729807537650257531930076077248958269162177954118078470025750595354509702938373359108526705346153386000617662763418578091038558938583573685386592993075420189722744682858420442303016968732029031631210656771962050260363577963197189388119090278395978681353215629322006461694970937197855522761071030640021337498065801148150440854517071902979646591053456616607019609142584679195957810925385495119067996648102196732524255422003741048194349951722401446087331988027849802332971973081979029592986942398135090884714186347508380477959740414204509083414047131976533576130322185939717697760764646745761563831507611642377523123062919044553139066883123704539328337473018430080216786417331801619687397099069554144842297461477872138805245842297501603977091956682488090347857295389790563427861021890493791566162689066719261942348809802583722716211701856737548686383617555799292794222647922642392996262669775050176397974258969682778310079151601316831083192737732561590987644324099910655911564504817407947082736240144547174800197045903650648272146372078033285436668651191491597647239636272210202066240101529588485599258210221093159142158116794107021876121440431229569486259840935418389774755629086976304333560833982750194612322720570859822126071854061000356672369126765533372548002880468556310394306734121530883079351467065571466211642135104268605324441526233390804924607949464358655161589859764296881323625862566103888864576743032415329506474551476479798502803541347977131394388516845184777257659751332436065751996998531207862894792326405182266141884357287488263265576287226810848523133834257430149169778032371133713068411313233807992495425548458709476776660938575125665077756351808325552213389395362535487539155320061953158964592179597739776740065295969185722085348292469740480316361570310870105749175884351619474589772098178428614259588574715617890839715586543812599207871865533848101612910849445446846286558553103192132322124068205694422772952773604033904170186197002705230405671681865725112526902733984775525026534251254709351446559922323168357948841804144653003335903023859773554766758645894810173912094814332549479427995453111374330578812075426391244827774891982351064417532936771169321228243510328344763594660269110266307458556296159689460346790336617160793583974827500543891620169484158996793935104160342903417264221521888023269615199655233777017116608907972284428098711365107497953460740077645597086468454297096262997716454695119012412854454175327092967317013484733290289988542341182321344376430420089342762099694689845927153595244629008228227076819527821713962163084585425531277529490171699401883966450803327598345971693125998956112387576922137076196728638431917689811803871696177616469166973962599566891613505825460676100592593009084401508900755162002089749744292885998942018721395878732643864943684484432447868461482178275761444907085468140163350704570074746479843604246515779107853243178905001550803763989321077138733979709496986642146890376450717739561706701677355611653966669595625765823254495302539825062996151463120950436176685729497557078157696417474038381908415422801890846102711980440919110478373705803121130467804283100433041523332673147009560649400862465455348430969324371520671600443005711277196116732391113601137426447754902389983710170692002705727505436337223948288819807272484475742347735070820263203026401005745874795523217503745639342588497818212061087217875422675097873814214216496456732597645677169751250425683662425935361027923136969716260092496705255621006990915680353942092088733070611541767583710799759740351571169002518805132987436105643134224713755041087526883378570104973167405410214498355847499340059188132444048256094198265232072402680020673764929433013913417077429736372988765374992479117990906086216299406141422036830399567934624790037187780427629075890128207111092063652191748331204332643581980535030969788818551329278101925841813089845802191557219648889623913177970842913335494986152945474383994525326286944538778267998929684502646455484042910075289401833528457341297253077666392514643286151990517454310799993405085613880450761157478686174660680580420863791393076084424606509798868645240248165090727997845620531113399888244819280870390927711402475429335097240625258324806495335631063859388835852963972466986051314489345897392698778683281677248476416765079981650345039418043707465349953866997377387291145116110827846273753314325417743213202348283273869175258988609599240590326639218452903660189829321693310561641292978534505300979738229075461061840605636381496687550630456765737649189778863555800344724922258352018085481012210810364362379612917201425045823888976883271759540027661948273505582560921415864929549102230490577599635539352401858991774172202086897124936673365209376457758056216495880002800542149745033668928923716329923698828790859915391602221406977403898308974908760092365562105828968573819225871664990671582504126141072469931204413049028502871207242801857881748168799063278566662208598495972122832765492061172337544309071590240248117325420992059783388971395378587424318094965800401697420425114880831604594915549317290438313076694823451677262317368725686333355533524253381485301906872038289750526258941880466621759489153794385168439646874555330667637195397360049450643542465441186959134468406508732237340612381151777368436307782953950878072411850686692959437132386145965522286680521973832224752498556763523725060898818832284989150450064471546981869259374203594063404889926116423920776489264425772967540845289418209547459959828490173534340250979557248867975132879442754691619938594204771481103293119708111576871567952780089299116920083953298487539896529371680702606706605835791572672696872930809750477757295412911857126531015311595805571190628958413922215400765943365309701214395951457472316060047657014561464150319783751890182789073462556693651830542219505889755996581364921519923543178044159041273805764340728449489696838862868394101041956751394163077724555256697275324608398501246717223803695238429926376557397417783082458245013766514472810284182052162589747779464661790123868085666837214185161819754485287053304625483600830489177758040837318756201717903128279576702690423498350302582343930423928579091049973695499191506127483762385474985005214762831969313928871480506565529875045663495866298920446108077241705440469268886522149004964552772509094040920434502903786803316298513919187719632695998003744357218965760368064300044579253095056833129093660319859430164384563727483797016076860870371181570416809372156736486566802589486495250053830796076135455822863792662519680771025110803413579452962085480269176703787817753466545947364183240286263287287459022482218164057346582310485450948937997328605249251159620842204336741519398982053745566716804311540117662807877943652374044712908078845408477733462436320405944216533216618176642583402054787474782427839857606393482202168276325181250478978975507745614271594172064071330435967808773589470589134515360870693174836711320574784920229295909903166667130411975092907281321132355108717027424996625697839639094069423583053123477114168334917846959932606633414559132272043692534820795598504330549254951718288566017048372013115437876964150100456212875427421888252343075623530714622201519393589888701041359307859028614136933354315164032611720457873510763082264657948949810956570104639512267665963281977868230660574264086734067845711410241692452208685365471408269397440568801681344487738549713168064891249030607646901731368122231778469832722198697698593273778681548836070873951512496211037399982638010878431359720191618323979381323958441316814541616102497579911054858498827568759867256730752034816345959633285024205369727293570224797695963794688507186987831864407472296189826789452961388479911280207738322228664248105329767799524543769782217184609610174017630264605894056934645197352884796626261495596477470081025056625617580796839095582690083185251650480135324371753601856390347598854618357907389550534772943244123029250860389492102504059504498334962128598262781319551766120860434705628120555346676051880740769153429203261193110016341923010123141642937160869346824629398869091774184669118664633501635084792110537843895444760442807535000480701236231173497305469568664158701330696029812406072267829557917343487109620075888829485448452711037984877726680756144421102451200638796511887240293350644244626992345309333422149947925005250364446182088702767533645129687242895386464541644086174276287114229605963887166037035173933046434212870469223780667868428442532052697456884955736767260097219717304911281493461154676012860645780133142471589454691982522669431812872439577955093576668855422643527341819655229205330959822667438573704840085305928022298538042754073197799765416038752006843427434002843783540057106989646146177852430871010262674473534471345191676330301998060248090100507874956082091415355146899613296260919318822263388667754529763364055194655418202412974336371732088986208162727740081888389177834784453115202675830149247891972109388671295978302170616622576712693475911046763048006234380456206399683798677601208573626538428713790967287596549637038570391313798386110511807546146780112087525211579486359525305523962356997171554295485619269080854822060539520580129938499297233311611982845282739354215306456570129584069569640174546076827627701830164744332960694153472174503661474125837389680637897607768653734726258792085576043970026722717035077781876040841542381614309055427615214650898301046592542644566164510890429795217839082628981777859531914361690475744894067227873326280267027696484282887630037546512440713282871850860058715191331297190523659357341272095941914247246145105395571275392997947594848202883360080941299701530343859066070941272460012444669514066740231718670793900997674620342389750080794265788602588440234173845172171885153475232703354240810655775643565802171543043413669149095731483056679203709245636563334626768919525224089594378241291972329434011685546362487550924317165520765973411874796042753268950234894241724631161036337027772379916791227311577639704197432472063962999255333806393148632440288229532126796453222486611337381300525900895882771895891578635907352298585735688961252686037825975152239831792424464177303420349906529552150917342625791841307664139714776337551971389981827101935046584724548297960693543779596162838898816781848368330385684891771878957409135120939404383779276766683070827862178144930303691219313209795735804108479269264733569030256764833572937965955036930502607514503344068299630078657307499998534192659445338808195053648038448289843827306635396878136099844679471401000876525800754073939516472933817065570236534883274783610358122338339297383479304087895179333611336725934683928935494232530515006016704677699006724147567045676858930359149647619847888126410175759139776893501073420815487181561441072495854281376361388721318894438759796993702958751930521248730075009668786214183522191049098747580405507008938855075003230110687958833974448272241874352736111625063773064840824228632568494652641039975611864875638370238230103884392417012156892367753069544793367500957613927972042547054736317398121628093484891281233574770038544276536124747450697191246733670333863951586017353649942588444672724559436046095676531595113523102701209041453028481109817275150518274767623044341016000244690988790528557074339234943797620770810913938831200742536738218494600436108477609167167963436491273946711438949868295563178021666991147376195735346200530151414448545609324131900778475464639541760647289794442252016102647265215998156140534746828189153008553961975534376145081456793531234654375664892081968422560129516134953397251179009038915021494911428625997103952402832915107649487518797731117803567494762686590067540387328345146464244290426000841231949880808588697225233473495563949260284727200912203458263272440117872115569825619297660785471280432816738186378700152347059236386236909542075900365549308661925325361186414439651942854266186378354429651688942665696404818845899451251022752833680864689256354778603826670643779308685625266114701202476600773902661352174474519016033547121521535795706634121297591699483876881043525396665099566412362750143396651673393457809605734719441079805305485822570138214233736537335255260251797876301478107192140987475838038188055081324851455315454028018259179997295082184644550965553188603123423354707144148258536891956289026893555686873937460671065271768286173259671605460904608183421339478802282758959280873496913586299603130685707691075938326563888853842312326382016800668152939584641652620565437320875741022458296399249747688519609442472185768776658128861359076208331118658665567865960800491115230542977894960560605456768983709212539629470128237983509788818106415663608771568905414757709816036792767842267887065514605316868688833370627258910254183018105993748137107146461653508718358157200058241800551627130220662801190366791641226268451489207347167332061408466123045899908159639759395393781452871416699175693310939046336397307990107979571542664200493235854201395882389481350315559140362369908311723458419948415939827544337080744867133904749381909435299992847927558752041970792320990559333365821593211046013325981867198157922375206986585215443684646801703122082474339956842191015417629892087147408218185535795772490504568719470640144931994999540517605048121303674378512409694029706039089192911813897673262469295604355974701612236544979892820292217906946827650371994030220874144916839887874627089861935610590767387157899712964118371966811103462199077603536841868922798966513202242930216839821709456677869207707346717157828931236696416573788816615119533403158896252698394155264626393706304240155776241577000929634626829176958988881773169150611919999968837314865181705370939173035644977388035385025741070417917364639633720736296125245436237754328898289855619570414768918728938198429814652268923564411043159944165383038015805475879809298296326178499346133271194614115037441459844080285434417477179900332555991162628803352619529043358043715560224481216201687439655078073570127869052797410478432760038108866664817186008930623007629076129999528004360252490058530193823084466905691283647487985316140885860205959372722906811267659857680272289611839308588849859116633418037587337360232849301015293615648559158809254958389946929799849598899280798606509356953031780319871034979315423356864622814770157460000201119803945298391592291170932043721034716784444816531235827838415545628953496342209097864404209933909344030415313120713589989276506249742318840646707182340766710346942686053263194938359104768405348412597360440249632046416806439780529613182274434995769338094228712806615090183819903949615366841123028985430012445133044455570787918961328801020479081634538098409500071502338941569724569503631001514095765946387659999871847955519301875656426638574603642896217480053836997039305259915719600333958207226989885657960620657952761782941644672833307608375728756901413176413333642459962425096262632576120563668301946596534957608804330926150729565946211373791580895627888011221497911300216535616029283555490455819537849090842618500914682342551509035688867571020512099798531648364276621580289036408791179524304251833049708129283167497570506674317212342243257007382710778215017895362538628282915004963033929630445935530049719259775638115837230146198851472063577721459490398930355889216720219297882734360084455850180626822866390118080754049660595580387062527997821757667476996553610575151751780332200629502194609617763423305084291187404382683372112555506145091102419012387959714202922101967063950433834287606023298035278790554800946999044633659977992405783748995290949864036517471634733504309594070451571422268577248716781824644934854141679742631096418344673220326081904803082974505692907835929253091475647938907508365577948503784639954582932116094908082237410378321293437112942842045361918547999860605436231762993913383399695865783459100806283738690458658349791088517757014971198745599818161448284909335080181241463917766891557199508603701111181221434927777761687947209641922311418826446715874606228770159331678218758560071721647194101710509732770271546005892055751572020454095552019069375389617285275168584398918961083076831344326260864957910435736752387535686631087449306524428560597820958999264824271488908995537330999879995647114668863064875757585168964508952099743655912864440362580981025303881441903697605552383427440958414946811247136650422262397709912099785286178853303245227491276170864234461653209641089340532857022003506722521814660626975362670982227023334918368333974221023264762157718880182085345376618012786462763026615745506682100202770540322685105413058728119087814117907521320183997803380479469490893302609172473391349042557367081746895405943149624946302104212741774956710281032519937543193168262086020335530503804000486883408325142159319533662037029546305041174897066369432666961492578599427434188521775418694606158902029038130245040456782513832170382483737028069197913850174009101203285165249560178938624845127259943781084570777989508292687861470323666733688787864113917606341366127546491101028574577159715199548416776735480241917454362180013106076182424131143744587620502310917880958951959760505955545913116757262830357563367986736537310586555912316164451128766903528647810349955405775120879603214197745806946021313161522513871839314048292286080207192811229728365005140185915980387535676724696205106848392597618836891251235495324777723890263973676696548084373149569694717457540237991238525317297239156159619908728922724145504233012386409681265282889884842726515724915945232736540345541245072966378580925861514796496760596668776170610714968462050688662091922636744445552333535082597395879798048004783839483104139384466925474248912477245951242709325948403282466121299986924089447169958111188829645138426059739072687377158717270726271547413062028206162191044832725226469504210426572620701394658606609576447131690769824177756494491671900285434471886334484855435310203238192525964335051256627482057066592822202388948402938554665222017189960421207158778294298650283958333131517044848647319447485278334668970267227006551038140361734051918225498660194399371628986002516958658973631727526150595382402373519174320730241408953879103919247751480968855517818578797735994309455412122769899923164824932793407026993862885148058210357338599208110707791515798155006393057265044114399348267533602775349087109290212370686238896816357361323954154163982204338472762743272469576834039319533607507044290056559628411522198657548531885235166629097374986187572021885616960097505190570058327649133054004607067733829856378227905372107126651597115461250103333341991732951827503114591574714692836345875417227035238237005942118654281639655874661348702853908369721231968386535121693421839963971714567809015564962084676075354650014669875493642506195635202973440305332197285793902030274619168435835284883972015024687337290973783010981177348636781666043444016527066961887362073632232994208528445287653716911005217147804665742231548697503210306250132652504772628901343532345769120009346385738683174078582988487164341759582247635122177093271506720540499107695358632275099240885181942364638724671970510050831185513752271258202560648515880409538928574385801777004791594979739749172114347340875158957742427506600797320823052919362086571890099625672875786304389238589477195570200303609023169426236421064250711595143135065853100768857242088507176230424217101101294754038818189907358864123866111187242550590797100168256760516258066374293420600512262739790269793027997480678616839621200470064280666435497149028532247558380880896187911774183610316558165145936135872580758655793004770948491927353622197461473467016027710023854813285553603272096719774995855260850390344051064920920230315388627587216195255333095908916465840437654255567799717187053583192754280801574929682340748935561607294826331758739474117309368448987458168251537382469591772061604196026273805788119194709346709714897623353406505765685416951285854400999462071745312880277778460347747766939781166411961434963545425139626129001805071738794716041255978842860067551353154812082514372213636093050368946802101127078039121731058851389999093905793833021446334343234354892892114131342934419479949789505730676479731638899811456021919981385604988794117196502479400527581993848919191201394159651518549850765927184016326489658743139309773062908102834313705058959424108604715312543366898973016312579202219329876143960384632416295040746582645610998747992858945746586385633756295475088516058167110581862265899670475990003872135341065844657452921249233309908028040699832392044544524937865263597351910108231676921046870271069382018640281988924832221188394819681104118795950142801508029354899938039588510399480293574918564922514524177199659304157809781726879488959922232056992070186775200404517557328923151962163253007879251018063348157744902288241938023914673072973413285802695708944018882837175655150195069521011327730027063433347604882307792149302475746686745529227624158092753351596340397514719803897078345396533262872017369874199823487262974951015457566318165155680535807069763090273313625180471097652421807181638066570249357019357808979281397573137484119242342573080012613409600637459936571236337057004141516581196485041895268682706620613995033748684489149768614268053045839234312423856516498240015987844081656403143007701565352670220906266494146257015435220169452782322084755989401381580609450492565941354184607033843511972941161360459912782972137326025832097102162459858975998685150024051750975774745047574444404951616475909068752486694909821326360158321651819002049192152584794527731767862995908182257046732984446674634909417424929742528822865908816325144710220211886665447637808137987212774815318083959966587534559696689341415724787519483258894743417410445808177615321365111777698257276210931970577159652278082820640259487093531084361393599687248278795454815683149737998186536686626927715151908556578743382766702997328920951546808922748830592298539472957636199831203067771062296732558210195332789700628512223967205049648811768635360320018050625428792739671803165094371778307907453594541764881841631099184633401925218873748519704167876673256309223620615427840940848104013459080365287689627230029131122468909674114905544522727334986149701558100804269556862438369263367610797880065108009364887321018322105638068066158583734654371684606710032886282686864715269661145570498381412079678275742169473955380074285191298531274889307186771444878880683991683056945195502227253082888971381306517085066215945788391356052118483270559624574910580166905611902060654091565969964280666793889261361571427137247338276432888906224445054504193106792039385756909067767959254932450191624030418322518644350743445121972382321441273212315605911850480617886432403840757088815768370909372282920875875734061918841983560218088184407061807583681305123289732736704698474964339047123014875891240984807147385782499565947686081931219461365302990674020917148727240204560857560895234104471529299329732696743807117037884782487297181791398217401105273486104908695469658843902304405433895022404465606591913947050429264210841666777099378499009013429093053959103955598361840482032605877657507218436948918541217602382185546876295857251045186343462377087364471774591475067756386904513898876755636069773572283560313499133064795474945023892250664500597867562064574702556261973015949544442994539501069909339353627691520967975267473797789494388424186866273277398044202754215652053589005177295690364559535932921060897453671318654138193308146152069798017895045457227786402589968126251495084069228154854151494696364696738699165743973411357932878615187834592670002840744516227776468174914215946532519558826117445088865241972558361566752137921972764162590721685833337931100728138227567461606986847634759801517649038855196158217767476395950230884228740685724833630788894201865592555602869381442115473696754725151981280380262355588723021048879744654364381640629563535347141629589451169523185755236187916348213807831407690237711135138753222317001472506530484753096763788861241554983711283533129632493012874118723554119134412382067940634710728956115213763033922649303673686511143885086536320262721415843035429065368031851500940200137786713863667395566598389869493412569538263920227228240656772496700486051960184263600437924214505808244827866084671051761595220731518850454177252254554670640340105979868952830403296794057022935198917760668190271220899957842366590684020182648664011884788057691299518797745882047665669236994746096798672135447996563981852107153775435835817816533933029655046736545133860520453821446025177611617107839569300043685743679460119724503965613371595629345760779656817724753804609078867718179666039246639843361202503239575813958858002107279905730274907769218236224677727275424463813693432670407492642115529022654526005355801046177708299846980765721948882937790653239361036737898257861193185878219675605369170834774786066867626152855373688991706944702357183092558023833537691704113589928658039503346322308670652280999292069871591988032537163777852989570922883476615124836256189831697050649434716241104520085804090090044239511589266532661872285622386350162282815049967623631024543818642240216731155826523454070289437951049743025312081893275857063418121336694622658103538315873723955729990507507675307090695148120766660060897091981052630259000707983497478429440899785262116159137992616674022096473271892871027206116036025978293854786204524851887646802834257885607413206288457420787461152408224884985166231292115400688809610353944524494161373402347443381165075124503290137418744417672420028366229141214834256961061584379062147612368462924838267013316298685279560193218016864115798992334636485312743960103083799914115700557595033258283213580050850688438504314023443858621471834485374931131985647953698887573737806104901709796915429298485139593480488984445083992184128606830311657354297704443673998771942449732708036823061652721212954897699431697935302774297180880457264569208306880337212300516216900285599547846382770538623348039804639465882969443180609962768919037512222386037041702502521148108770041970815707847267255814924315142569625181049659560605101217536771315118838469092711548564786134889176582264304754003052985453524605117567895899743119489401520856765398879524057834394522202367926522112050419321148476449591899527716809926881112401143712684657143289677787613486630044993391569204576069201247372627135635616392067380486306105177661040127503447097499050526900305243572706571733721581184726858002829639609397843525638122865598312748423845912490395002836497982217800678128337865623936415154962020013571710911344182658229869230771267589394594243961994302838787848300033948107092039885206006192986046776934927538155634650840153559356713690195357962041601338651988805365693199599623928073237734880861110945179170278628518677105690378293109321469100847633124760986359878321752913151988648645410609445666624274071698272853819242303051774078336235728954361929193953714017545423327401398128446564944707913483109895958096731023708391086736124431440626388152743366441667737888382673612929853155220095399613878059626653954557653321788724020344909858727513614230826703316912315310218507477418374104417463528418110456134186583379891008841728314773085031401791219175165877116821127932893173191320052133950908333761197941681291241388351733811111846562333622526702606145738222270951423857459871367110247227509289492518637491884555388088460077052932771634527173137307353620244583191637947676617676326185000317610746323607263061679452276750580221875680129539223789779363573714050363723324969182024097731789329748859264749763502519975178133406255667463617333618787048565121206112899273023108213414820737049575232980055650326186581199548280836266616914560230514406470796773909386855461476145717281054127086676229707112059633396946303406009504754633797666179751948088120573973880606272375570539533825552413204901774312869197497036858402287362587275716413390402371347946896532296128023855933130536168918189568944572610138519815413653370108714085362750053705669866497256324995400408879762803343820121726586488461833065015785259261336435531573849602103981011262456932258043155628044592120657301268814749656718160530484419314210344407850375407885832952282244289104994119921377850464794322449706910071844566608375954655256169090959876259289405276914695203791328307307193788564051729506116697582647684728506033787962809936305084034047431381140455924085719817943330368634913659689454324011666138245784837458086851778951357096774149275898056608559746499136448030784852874459239043271103432304712848636685879119916345915869332889107130683245397572867719626471099117931011067347749372022698517250579609099252499690781691212541487690881418552882124666158877054402237884652458154740387464663135479473472479230384537641175250245185779473674225016765612314189117032403179529195193803480512733065661683177952969599854424762578411264846772899389263896372993488537348918620369093303764182852947868544435260537556408598203091752578168035052068756775758001667006022928777988814567244491967896982795282457130451605495350179407345870401585306066457321842233531951974953395977690894423188178933150958720182966176241456789671679051078927375093620126485869130676893443155623880887059824529083858184149376694383663283351970990510998109628249767347181243615400693859742847109768081572703148318252898972527076275985536038656578372280425933912142201848403932223574965375143975604279665361412682464197750145270763842321171435381289996500957832803139266313242677830128978879673933332468997777839075707511908684115653949563690034097431630755783518164988569522158414710271314197559271824277962757196368600104719958989328830665995238306399497991054481657129133520523776478632893467746535869780276257326042381653784589438053621942038381670327296447086423950562375095768749076371306908950420367989415214513223044326435414930689603828621923857028571181689215609790140702584073338671945716140843843522817335320357193723621343161535495290752859356962807334536012360277905005014804648951325882365825943851465495547872970613065281953742718696913488708529989789669784426511910290627271473307848574159713296491129320367481208002707109590903029069156036607224650573596991108122045012456632349496311800103519859165066163141045209578874303809526545164194365919862748962558462227294814328906689354676637268659477916108185502265273391577105452942991251737304815930272370028758256362165622473720457639660135013958787296233211800151673181127803064386645416845312996634734972941848875601743348810222934950547307659487639911468897871843974604568946353447295915136565406338308276550723121052826385501889520849542268282233865180287591357030594172073970632482498223094084004494794968894593901819792364987079887604767038593253548598302754427845646705650339044476997490309010164963184287286073660558202379016048569752851806393282261599904871627489957540823276850487063574428944717719906120643609076847515984801923221559921870504275921500650815255330052570204412624597616508875112557966504803402246426564993470943666499094547294266058854986523448188390765300040805422060941746073545482241873149849167983288966073786215374322469411164338721722775835572558675594750422899096631879092256894351226345630036010144228437899984929079658456397597935753713723870979123095764862313802058771190738684805701366651843012678383315423375400282063493449907084616553966803051257054641413336743922835215713243287715189109776513649836551456048208027094665834070085182904398129749776132831891843620054768544869932284478292132541780538604147960807226858222735149650198432497313583841772260296327488937200634214039511180017104989247305893292570216489729107133694632937152876928237921948078048820638115416904346592945291454696988409808979309044825532752114193315150081711940294404328165522820926911988221874541205248072769042571433536971870000181229059055341936269459909962305444394873747854202762078429411175713187205041074200755566941592436219941059218886084057338933336399307277571524178060432778677755218803156212230761050382932860959129013623052590865907515317608276034775020960015013943696620136806486478475945711167897280717395107397756748808957780024263414575659399498851771580338157911077440148552074155942344176445767074257338419141842056403232955397062528981525458335913002294834441835589258607024277992043407088108542945504482818748495426167119460256541212190942584070610345129732992477827100053387985719875568838786585494715378977455715293976615607983528962939643949139795411416419595804337947023690835639227528211292643598841269631702943148190442999080739836210229036120573698229713883203756564773064292840009644708178554948845036640940478387651066493860804420108845271379004306882138820371321178750827009913229768253391687991640415366541570059771765612235647596387884632268145163973765952956975154222869811776176574493819800891461935226772961958292328673829737014117767554795378168172783620756562190502092517270015066611482403713122511398977100226562178524151533411648926501662932814819169262754948732405982247442452065079391702019463429341228364798629207770426975246637961477303687347980127296812366965819835819074762301485427160604316532753275065456231115292569849625604630390725102725244745369621352017485831873432460056161605491645178517687106534802056026689386051981069055196427715935952082531243143022161468107060890347744700300875518505737101099396972153368051359229599049119837621188723563018405174781133464178633520980418575893057290328182240230261097916592182170741636231673555071205918447029993574921466627023556604536001456748887784455771601975344297103164919241481209079840458330456659469221635737744696430540370462355480794793091656703108044541287476722096301794763512527276229873696471404717343604966770039802265551409489126468569899116903313472451422016975856472725690387519065465520890989405929245897110291884264335677063650259834905982393080187032066509828089084729748322211002970086198096613395015778860715146560253763354999365682625590638512043740212665135562817807226124899433710456040139158368485091006582230187671164498965617402783708602233361261415627671933967879936131047168816835318665004008587938331495157942165523015855488421223777189295364801442728228727569128774809436301102892358814241537580913107371956390485538812202960789774138691005622894297828320679902399638587215392961585545978305343098326208129700614946799265875135079894186766727545960743763974680052909257709453582274828898115932477800669427336087847882217423446378759555303761359214343669420126540469721339856502494738722225242058031282046964724062192137013581065452808193367057099393047320175600396932152015778372648017203143577069027457377634411340519324019140420377638293678234289168822521360300818337409496915539139837383425112743635771413601124224548883086163415618828063745968645717300427784865262110016388629170668839975861759420710208491854423559263125196019318265416292847753088095209890017842129071650896864286118245161433880206617634683200311408673134358187184690457262062509584211178457796398370483875411630033328872851370775958883183862805356818053620194957983109198698009088971537956671279408216116800279636047653541060817934974595775186950837208197795824968354887877619425821120295395284518811474840425831492890498012902629038318069827358819276450642808597866243747688351115959460775964170751866551227959682999828224867097501851961042977479875726078473980715834505680334638230912141577747717786274843738475945405392979955096419489862480027720903850781786811732308428252916793291364728842160863510504898671585279958830881903308787013601011621387944891335265656279915701117741531404876561243591596091680891097250801906546174980549828022170921041903523221769300711863399911455296598536408470488154259797470973194555502443162667938752187111972234642082528329237181084651135777276329506317812668376742952562544697297773352894215799560698439886608582452100736377468219947872026297289728841847067456385572466542810087837243793247165234079601546369995765046298833510211463804160332045527139297504587720808884538134539214507813988880120351604435577130566477560150617959317436631632793118069475801207979737406159086289673373989177682271395277415037390672261054851995506439677164512902495215027697693019462335309834368547426546687629715199428647366451359033332333821723987421345717409099415418710785425576496073767690288865260690610950341604165032139294632700574533807698493791862370902154670785212932391034498281802517780362914577067966697256751093885186975155568991172968050276815414320746506429873192072847744164004949350243171864806414235965894240320260578566393964838711125752362096013081059742302190510035477969123779732714983260037991058573481691421188539913311600655237666867740828249800852314978570113704480693773514327320125840049608930913331661700839477101109398537477432505495855808220458064792564514442134336496683089938604301070027639536527602766111072688541454183943163342847485066400015260838710891359495044337902688632556375353181736709164062839691731153368675000692709072449164017372814520320381023757863160956192913662683574207659413299175432754783364079710734741973037755171390563415097160662270461760025319109976415258521528302781460408582653207905230501880337268379219051466614678553979523395985016088928583581188884000131115282668009936017817193224284911741033880845420732001810938899517814141828131623983402068972601316939112467014415649938225085683461462494532961804647898621155633280070758480634809596430119000344542359877863141279400046478059596728189795412604446288085260722659285136379059641722948996449388147029727464716280429766858882269559817442281986841720695848663231819717972848117915130749529314629279887490559615048056158908977878635998268989660912070358720244573875030762699774454479944311640371204201457233965249560401097773665838813945419431130227957428540822485839718644698749617782953983269959356142211243486388144277229672178582439328165975573891425425291460356870502335047452249093191964416397706764704680730197640637042255720500821213569183808575719457894041729527685078448495480569184833483677714090716013080320129990756667249103464727420851864979580773293723734210255814692373761061799316677041163647400789354783405672526276693908513066912412527439292120515335140158729041768061883570616653098370238140340652264910732577315128485754582170314035456756872436496148264783491916991168312864662993148192975376462707214007470578960078023138865475817757232241121131341855530331071772695086199087147303562685276655324511830459468742241956726321518317957066177429033449063648347138349410057396786381395674327211666801176342642374368040012859094638585992099361774685442599881991709212462687320690676057241720094989951738087112417855183378038818677759941466446259110884929059087663197408833688003329333048597390302507309264241205638847898153421472452494565368931137361913376805310203723463579388452384075078797419063690225963752141615013660063312020234404126301170959091674590819497699970243976197167677564332198860614847366731948282129809196124320645426403260414562747707009624112385128057310972235953183801430821600746293217105571837779481921954237801374431883661895311480792378320581051555188016227791351228564086759776894420537697872397119570732614148350219222893445298660029541950913999846624684413822891372207083568348605325378131916454876342487275585094580237100140547273261751155451794984269967735758105144373513402280302828035809055016821338390045589534330310234769478952927897482642315544274801917887987890020058619348606225611430903358924622093634629917587527515111626508705671769906990704923482474732442033234440277381898955446452428093754751129326572890364300274142350650277239687164100855125724288276131130735564278361426062855540872784241105227471772061065198161858505964189423682336922469749577525091254888000032872347331687397724144611625921592789196198390407480718437587649498593371219192776648328583088039042731855297528372089686074537418337880552607524370793633607134689038060172362587610377530580817601123624066216907863712937337163745544374755517717904132961913405542731529686590980490784202934017820628587042617325431813465731257485850204796325492264560390098554831144908124367585683446629913000094583810162583972516017347665415150563481262194282702221566901205152578605267252672305086914179296346765705826047379549400605846329295151823892658901113109626696539946150776930141404923381825116205281192721932493990079707598864392464267502266902892360166003058620855465861056394218053569918417113441206056895825839409429972926608097338058712838165888425075442317498063605944306080884936388210340533360488806213242115158911367494942390976718702896459174703703920150100241981888836725741770049969692555980880289283478926693671276734216818445707750593382751872450919260392548589788161864298833268772242337766799245559053749130301016245021879329411599951563478653970470690188795880153054960153829374310552544517899181042922575504479443878107972240604959277313384837016764524403707546842736229591142016109373445567391916525974304067648917979190702316496044694170651177248857441189099359712667457263654725707787713675418624557564310164458590536843083450165315359443593843276002394236705167880982228691539441943902690811843145353771288012798427512867235167974237842601978058108281685589848190059815462421474171722169004176588188378149462048006542599845236726174362749967186464031474299175169269378500473348506395386397642725714807267023687965779393329733645664584194521367003409418366828531155520094322195336324310614341519251138239213483233848461608037179037961112450820150751588912158243355737666520447944549938719578824875440586278150224487805838382136930566899837054393368221167613943574720129973523838154993288187411654647055063763081999937140302252526155917329634578155050698137100379969039193074332236022395159429475042430202963097041318323502413018529180532751071349078194630937395178930052131204354498724177352814741756059140726313305006143328143323733256602361563124029451889458073336641281259754340846469760827687369896315647462075194218014587447901356169495554689768854300987004474833973621031467806224068084381034265994768826702183342040048628243144570076092427562044370793011995923010709737046879300334219516277666634196969241155235178604166094029820736696654485965982328077823787506180017116666541446059511332595794097643794279601546827077924565670844143501748761752623124810165437830986054386513382707266317848109880929277559342027352176080072367550476366650579263347677306966596297201652527865276959972634667802205699378065983857704392968570605625087685660327197401082309669178917124081846111505879780592881203794313414035030755840370831049895344995416271678854575822594571716859408394671374878260170519029558463734489763570596324534465234849558055599481121328831087193792511262463555064165977216490482122565906648517014968297406037160819166535797338146179672898711783070367036380881521890629140958248411249621399864330874362729762736929892433890599638740166441670408475920107016584366519421501828771350698223647148792697791401125047553284174428348980802564953796250686169689504669385217082014669011471122711395063975915998596251173762065501160792792278361295781166272350025819579069751783785561486260920714736338891988395175931650847592880794576102906547607011125413279196431687031022487857328643436343988519697800991162968590045337756014299405932215903567162667220573181291244566992140197893859042729162087258493993889777353101674259373547310862909628789245220845460755707064980900724542633317977100965165077289235356612742002075702252052066032497688935082620332282926413848507709785042213289951957024316277601454419260730303585552392441842068537814506037319638400375246472288171950904145536783983879429065038302072293021654117009613931692700089292443885704800889144516902145326792218518751358320373181323377882640182346435149200543159335579349144810914966709406625646500771991218932384076918634390589074582932339094628098414271385964444732325803334812454512256796746198488140902219404978445165347627413128652819134856460968706893508571530238368457067583616065099230035271372088857528241975105942237327387663158071426444341161092760834174075796276480654054723181470037893003554180647536096765140799581342506261135897271161235467450665969537229308596759256047575429393266634222174010032045992431184584499286255996461643348500359866584157281691591654266440773637182292569739760160942454670955850542842269092125463617465293733771207109451938214508210039049776404928146158099091782410349124192798557158888529899276836808457943785573801362282657751685353050162878069389023643231069972059370133293402071058476908187741252053599559899427537738473613252011743689691635661645026352644007433765173641017769202515917985193802365667703548872546289602552532196349044850179576597658374963956678538526550802985220348083310831003202535495924331268013346748458791051599909171129370367519301491170249027621567868055377546070250118880012713279952245885233608779284693689863053997589563047628380016053769984637511843932617832568112530697831243569306773947300310626606966497367288751228774036532208420598003712298459780224738643104746728821039339825088277272351062411338178341198984630714393743836294559455270504128489810633653060626688171360931510092327307689380654426273110722612516327880684675582375524367635307748393475940554229262370863779498220930564175008822274287590993452255191176372625058292881592996561235555232632031342100779505850030107999479845739609474274082435829132531893457796485204015506667900219512463251516647636867861806950131306615137550172893135413245393132126112278903126770941167228014405356032751953154825567437078195413967337793854937642843005616373095701979757851293857406272516611498495525294694836685877847197526910260357901190132047892777986748069756947768607854908419439854587174702817291747561749943421271235907104118307499456725952301952927385578410147746084203642063216442425442120822370256317774681387834778142961942666196850276658205940500533867830695425748560074157011647380665731517577644790913189767773517446508376831134414828850733836492303745370126424233476196702070059546874221058889036604758583096066779753863613203254869151667120140444570927595998248390907856252569453533995569772502182891755474348762746885021914922343103558772985670376889332094769368903619612940438345141212612067047593104049796516544269461579222079142737237987055142607174498035531010588268977967186215329030224366449314635988441835285653931178442737645639659984009900469208763960073037333130697989240858203356873625002784440091093548846059948444011824872233135579108310116974697428895948957716614229837931683200491401664403530982386526026817355651583321858769784572295803361716876338661079996156429091847789918301232859107270234769676534239705814170273747737729240277968122115597188269108639347805387038534174424474650890819444794252631090755323549705814949966037646831893500339033568443473624424799288018465732462861569380458788805352545113085307116908443657381505477185465505751821492940313611821466405823670387227010859302430004255065033102274343794712873306711384438992728880232315426416043510295906556323030430471846579344641576071975294237497850577467351516385222389559605015353271970150746612446258193282820483245325994951709323838554192891185089343505910088980997591967459528921269520524270148545517438919183291234143799246959100489815448479915199284234794583762479316003260663881015002716518882904784664228477999319601231683801284951074129156053672772243603446030282834001665419732546477572705878333701953546991762726107256357728875160391157113481712375003575568400907037540170592669188900547736773548584100082891165745814025951278554567081035424506069793937551587211290651890300377979693907904991558122066760922668606143929116514479281324474114279276486592251312554786403539205722372114600143712999833681469746804628088990360506618871718568097127467512417700133680371600141831034871510824931821387194386473092298835907732722641309499144148031558786937825430018233083820270808382696769513702122118937498120345920906288885919255019586963574597224178693851146385394658900219026665440306221004213488362891386544214080792384272851582674475328265629111576432310520462312225843694155071659781175253888256870829295725815742249928772279123928927531713429630758206587175163638943839519453664168870800591845825892831954138327777807570474001671326290329601567074294975831467692567550901561063343008399986726875587096030400857222420066162906825840349623086090445061462944652594534420397779642328835010823850919344770885380369608295386414278402040595165496341946376944663630154195543436920904763132463605603884108135304901571785298125939534854480949703806631849627988845653100174940936843290663250319824980851137093332959009484507194885883036403540121245241629334197412750086261607053425505659953175621249567694286051267323722269522607541029613572687555014552640779461434687048519004477302188887059623248825647751308750681948222657092659393403324649148927387430221699878526862138726090374755676720732020520740163787863262334282217342670035357099357485573762012520484013880615965254479535285274285606232553171891580486977938160384643385320142093701448034512910041887853826412913231730235166319677457638516623275651840247888668554713496816611173208578446987225186911416391524530897417448565376078880999495522512547825529953084436400592156404489741088982947590788736114132505723962375395480338644563139221879589177176417571186915801351504061575162456094609231360702863569654119494633461502394946364499762276474454939953224686354425858095950624089872208694339587518228072134069074590535165042734211102777553487237517406652189380210223648850516441972889513944758656676020930247782096569368169265941015459077710004341044072743782673353536156455018541855524920027582345046083919978647862640442746428324179690517092854958894448385968366907830782613031695503255447669777646123188826953635793332892184162142514121010258680828463023238525912867398139836364037895430199400666037756655289346337453593127434702865006973185515993352249353725186484095560828174888674416359661010291111235807269700700737002306178554454942862330005685119923255159017643944436248733230996763282157516935173513968842764801482693329951469214737184284004506040467452724429077292496788034115066049043683012692923248940811303605118315385726853383514323704973608290745624009860287019406857822194907287744205919138451890823847358858554167759850183529586697809947008451759770453780794336528158773172278700567814709850418956942153433171857007641594578878806606377134574605424704785426327669604287491102562371332938459204672600494590985495578629481848658918710233852642200437257763014418210129031166701194306430342637761313302568924759534684530220446424800037728542411360048827974910247461887942538511648303375062104444765893096414693162327672611875950166000633870869778528927548354745934974749931327945152800360580312927611584815992172575994569442378711616603011264507899310904541648913536529674681687665059701544259368605235402307542973179623890846207425139111643810273912282237549961351880962482887672383867014047695277717586749179630824383885560744522920596681926891694320753304626381006796808963118076023007249719005430292030373010534691242270149727174457557690583436004721344275966806356602711020547041319246913404461925798106828040527779784879883826156405147690689213043271687673735072679660410241254792623144002228955395308312823153848477956739383021147371283198235172397669671456861894879972210398309287422868780378669105811507128561473800904486946661702221277081786761324062000851218147208684757512770079164864186242546514589757488630817631294293232738343731112776257770880589223298308284708747713895036526668817561660552907228341637494541142551796653626948155621029267963746232330989471180161050552585939088825643241621271444990846110535237930123951065801715596885506873375453278648033297177779977264046869789702317673656976586047475281274040601560735063587836807344312630721581268951734097851826412574253399163230870121348868479159845517440000999507329237766929025204407841838973747886586968081455421978473416882741682630394317630227460114834066062611801725722173862963437975747654741089822468003001976318329025459381164892285735532290553041442367037367773267320472227552206127583226192409713972911252613817986738694306217157343041686104973241952225409019385383691982567587758129087890505043458180604222526822072016009419563627438107711842316501086203847566566615463688187648615751583493567873105875841324402470920470711499995948555302535027351208325291877005781891571970813166502045358754064217683473443189819727806656511438337116216295790867810687008495300022824185068094006740554575070330019644239733691259647517865660090168853965427089587809733126191520782164552992851037686141741568495157429585912910353227381684153285176879821135761448871221707353234615784793558059873093331980415431638689943991756504166222063139691616400938014188805165664867476028633096492022445414229142103022190625489079951650618580118397388661666453646978114423911134288094637445577718194211586047807205662901478507722505497102019893197664565614269079564274627279409526462064129796813189306722654669734247348158063097031030350684863333356085982000667788149323058119803833477757960448726048582247868005281022749159813985327521737450825401659117840464655971693952932197867093253795725239098816662161840653312732067927419609016797088271825305509802037734734716547270556942959774255077987750784027149788254523269215100910468244621300038850226958804976162434797766283318028008589748686059674076921675736891188849433238859380370200883883391875709901878760568406001131057871965181118600636000794408055977183431775796680448891784908455715488874372255716925441425381846134509924785977583841557757513102046658522882893271505083877201743727274804598331996501764312084989610810294403924726751762318162680178905665008614225229675170685219399832853229098122098024610731231916622490925930827810337433249226958545264475658230595558688928746545353232476765452192314117465045333339759933200763085629818103214325615593657804002204360204940209685420932544392628411127930600568244858235879311121182018269022211234741979674371441939701811107951983794405876196402634499377682858188690563658340067179138635853757477734644270937003497443571520515051178787102241697744547956221791138086764579216137489607768382714319633766739076288953575773334802275214763743517981407667933465335197861726124701550478076686354413540194019181945461017564616346138658104476825379761724799056287191494517361895276740748956720753013717648746632906496400765875984828503015352703329492947216637344587734199788485878260479220502786845838846793605893177074751390776637551483407424584458713471480042080244950265673314974733812903679630033372448734730930710556472032089297088208392861694076922363654999598426281311195393080261483622081393450955902344504451784441609378386014816746893875692759891534245789099803713128158117674304127836211081338182167997183935927979176938009404484425756745032349284161231969331278324022824750797063585578213960312465997008279740653362762147834342010876860905090146655980120005710060087862848021805214748669931998895359982739993402621253149121643103789960254650558424629867770913858770988008291333059517314361730388398617115169308513710040774892345955210780222280082033076732648967416073512874653754553302497563370192733395217887770151995501094694679457998976443584645063741212161584364755048574482772068118889503547128096380591333097551058670040537034124356463935540586320251831254400691593135682080749786046221990638289533081517485633936766288292582775408850083868596477450401754904388069621242877387394915836632981202423296934187948727971067248487830870483828518734867093669996392634355462166112467312130482244161568900182721362567730733930849133738888621905367844002870212282632523294654163236033356597130184851230302258898988035091926486345617125505347301742241963870474686989194874047971802778680793363681557156760231007030895449371301324089220089733198828222639195073766206477406505431209889352971605023096486750932703756794306052871270024790726047970057605377472249898678780602634127969526203787665598710060119180032083905819075647328532868688798430636979833506103843766148286063928942396283109796295732773604806788746424857802336339202725798423493876718262018813341111178029464078943862176427087109265451662329718475935154059623356497597392496721928720365896128558179432465662440394130428504093734807319931026970390406594472088826415650455508650751246919568991599836345244708141260611100337322701255385477023400131472684388868340068202999446305753191087705542207077249880053567206426689833490266328683664651577325300817690030801774397582285095456348943095773875230622408952516198915317516793578313395010350794662622625520994388295835307905899851657313323448483055198693166697749021110427536877448472364342548251183382310143231553760427413053696343287891215182501257844213149910375123784445831034088723572406445427526847880782281326582671600446488542794792835726646865133902489649297913445168533246927742624851865047194221693301280486755312373108924511982297530044351035643469531018499116971711537444645772724363051502352448750577024911151126102146502804580099087569712153428369174233196446114519795267494702169198205612587722350017719832906403471602684578065464537629870158755478185443513286774642411706624447079370076767584688038148018450598637924766472695360257526358705095830952920198114238642179997495047295548771684950164833662513123891798040206715305256346542075506817553349648494433919368390638594615151614442184443169454457468970182697613458071189394550949613410766248013434750366965185103745992785740516765549320499927865161101640652039882805423265059943314548602981333238036422850892371124219617319734771333432995405779405736838387901114083128361754457036423408114416349610809537824750708287855198404614549821868393434321914626378755082200184380873147193084555612481338974963338452959718538286996004360565965414674669858040702704568136589873624084026386084275158523813185549152576278754126374631616873345054722553752866135524387138122254416895819049766668557580618356049526306383516890366580723895064906104796267980736942534255155415729164841734151853955792883811471906884145439885410692938251315943636643672453823096761505920256366075563490914564376389771115707853462499603353094299665885388884003772144658639582413647245844148950598083491460003083930039839383700259901922014923097162600882981243494696792194593994871189228974189774840750730425275408837400893022684201110557448069762564921957089607980764252776640840566674715765971118683084216002498649401578640566860991219152673945783326534824744051572355123980296939370664767249315125600112321336663138054745153986319119885514435014071372019696912474076011926938296457651243479231144221366035916353514827699525201582254187384728092659889459584399636476030494388100461296993162849985941766108678278333541386519406299119746435727358542418538619997729110817728949755168225264519818179036023236700871463373300780085437963806564506499029058736639701766902532612478747835925044426261607035722721425165997891074782075136088959439960176514185751920193786038967706015608305026628241708162890827193384090077900708266058752684883317501328198832465020656618454942918296347021521702059769306153995354502772689408078330487872949557912127415130240089024468494783241870651898929342820973171422932141753290317094235133638864183090636530747072558795129819814367166558516624962063714745281465518492452011727666515740417152454963778326338909792904782662220951028033880583203009645581353133013314001615218638068822672245071483292256294044349524190226167001649039281214667742927534009898620534368090362257846831085827739728410986425574927148576790642473684890438084799613774047335857716864424340209421091724429440969171607595979899301804228075512728768216594838214450233385079994214513028430075263177234181276440557348711436223022577772314633491271246779750211498893415331462424312490131228906775231515905802138485950366062482377566122654924731489097059694458531397878317591189087975263888991275973305887112437936676520971481475663707666745116973558797839203885781569948495413119502750315936557037704037153259937854609270366551721228527431874293038487934811878196472323903651619619453617014202483694122231252880516190852648428249308773501102498620990242027617399790351972854353488269425648579845256178667749312193610967716906617402695961861868917654437322306408400828852741323359286966959034281341981163042285753380590725477415468451742973062201697380877059253248509634030546286253987783357689746348947149692397782451724093993608548242723350132954285494555057955142224486194325833419667165316801029317671213419806078186567016015168074600033957399966419450167608831621718121243864792012882744145839631217206816075910302486338526403650149296007801434955400174634738509194902886289620691182124613400197005794077485693789294991296775496243633630994713623546360802550884626844986875833083088926354032966137453637647008326327843762359124231948885434250915975119574149812674722389151876388082783978032595010871662035949056790772534358266289053762356502205279926257116207581813145592671783253214319902634265771257734104053271384373097553523421838630526473150420207664284875026577895724865570224969214481695828704814949030536988912472845712875148837811025230627817252212938767342088035416252687414327479939656668477889918082725519660268828696273579007922373160170471865784488612076878938080678692198543484273623183511485578156559156346576604628690668741746366980735153097683836479863257290637841205010546233120925628077464848240960917075235975310831338174976231699312591233829288933061594736101180626398135677087308203502558804808006076339356595229689761637173070768843822891729795924155839389120673112248442718549759037761955374890694301216596245949052826321298238710470561967237853009648680114756631611666755821215524795069830108627241206531581834908388976766708492705027370392777718328240844476263230695478750905027365331476100556217071049784033442465399219540145187903187908758414511073511417291046427211213573335578925536837181564400718735615056931163376567378105731019582522662136775128768260326580382593490836787976425654547397731502342457665623237622751218741293065145805340440311017228079405283518097696426180727195114466828459705884694099354211251612296323219893927317072581060762332618488085287316411201551185903584146069353925086876719924059372362276050755224409814927254828214729130842016218070971804457289236467527042157895907224689852952701235234509887286708322837871595632610132102002177383421155269795581820774312063831354156779931425068848394994388378218538228186013820825622693985047709106033783051217843389047739138977754225020004415477702739989094462860436569150678507774046781688698158807172875820071038349102566961657760444393594980702385755350653335037446941591898191270768746014589257996242969047835400736454286381321083403221669273030282565403377708668567440463768104958555411269687335414103096668594949285608412622194345031382895806222617928231518929132428362728537385271435898944161622783095651205179242833434087154421291675667375744923331044713649288448009289303041957358809003332118995685679502764641952386661082154220651856862531925902375789130708072234803915086808435762213533474571491420375091346642342341032410586597375349759602624730912867131832945314137657236771769067278117250387394740149119938612096518191559504601185642271905361891158175589768559419742578316980873757727214035121869212534843814359720774140407524759288314217979680958623982434515405945149829221671123157144821908602879944955913883824861086621881626012812406912226315766924609875324666548329340616062629001558821887048943428679810154877398917382649166407824749630731837375038640312996481014478378969394133218567579898410908877757462834325160310936887588883442484247268497489534566049868521614322772558119090629809887756109463646764612305871595060776114103555256008003396490143211933948511459204862654603965765579783266882229582883345240828572751202357227235445679775823823111110644724525562717621369101944068793303186425166842909084216706070488321759518851622865265860381520271175946361022131435127252498369279651373243161079983935572356428011030804277755706203252160005195183498118369765991785180986631089734968170095273756508150195446530884471398353791876041562040149471573905731609890134966860974571032540965002764296705209911505341219607597076761183967465955258677373434291884882510207111886777176939337772870954179204015806344188762420003314542905490138737971459430267863181099733894484912130251291662958831061898933527169716219129693008958584986592576954367774618745608843754893014011185345383164444085781304932299511660316653711623044972698757392135148248771697768547118664130013586725400579293562484153080920574751956690977988999967343949439891104399305282925744808413668292095319079370691267086133267607050277978394929087131952542594319197797190213062825486407177461964439452110834325454076340894226744696168033240643286376958216801676362232878463278848572888927374492848131013924270080658883352768626771714433633927909742845235286439849181875783282263443306356219971080932478516519281435244309040049936869554640779622167270473755314473459854239803418123887557460747901342907647458583530426976789952431712524494158698112979035805682152475898460355770659864621273145853985694038120469033809299257259853028678774613722011433192120257525266232694677562343640966123362650707523250202223702386888797705508820164670971364008480775538606289973242878028762934911046475065411923788083056677445653911395092617523266877588607376212534997982197713178456144254989549717394463530195997164355255582640073914782553459377224062777906425972539562981797653996896522760578581189203056159441047871072371154306777722371988434666334466412392449715835111384133083409524713830168455198922960226050218804858658432283273789654699087396728628753980084210324108085082700230565420974620256822283392686116725412172154853790729732891164770846114343313191194267715208085171413560504834449504703039290500226279148609811748140868607158120078004647765064339290766122966541254858308519423459332736275966804413358074994053618718091721713614383333828368419023739626271604095163194707767979173303831016436183123132290136501610038021604174939387486037380833704039885140858013305778498168539633959483621559221181883410807424842615707864360488863604933541755328341641621271033608168690462053323669697442923647702391384681880429345016870499815001003832485751714297721719832539096439178316836019897938245879631763665949622122605450775437618395408206745567258304079675166949788511422823890280682079543369445190053167110192581606709355856605826519309194409987365022011331251240917908706218969756209809811443559492682144878866464123363101396802187576086996217948802685967566350626488374616071877445154103717288984402418947131293231402603600139849515401408023537480600070178000180192991277770621230271859828979274423874519542993812019259784923717335885433218450942699293427889006706072095172578645305494621890692536727249189122059044846429251322804381386503119282641182114145260300469797753674930399491026694903817541462559126033474322974421896195385050523741548630942973529502392978281810742001560337091180237619661506376982770459409813768386698973356697208927527393461424052813681932245246932602034525734090512869742152777321550532516217724243246606305783619940650504417610530778780739461947318077538858711388555208801748696487871928999396632515822915120438102375683691538370623378297323521560257703211603899450813893005253160960006070973904215203499182096634353127285506969324544933535304205963434620486039331252275337625930059192447225801196030450152731588667508773424622187505745033015468018801026087985808871994401091613863684799698812738005851985289577664528818446960565857669139196084754968651664708359404635288131840145585558509829276507411865792488159395401894300321538793465116758610813314936109526414526508442282663602282375792978935523028445396808299088913420485111552912423299149279661777758140102935345727463366262594891570193733696536537597719760045385111184277250433625840435145806472791223580362930740381666579137812798264842582855396487234248812846352965572607932182431915967674539583766936315064346623621381131685981301874334397741652898012684372982305078304059819030223434886937005819223416656241794751689713062125639653034945498767272496599043731785102676511150728508341842340896079534202752359245764498185123163465088796025218712646249863299274370305669276940368150389436649628973635194631243244493911412267370318829907330340827040799281967913885765393504124189012457028036976950297352115383499490817935330435430559036422469546769056150724235727537660570775676273305254770121725558140126755787923055297938158732018668951878873238632857449591454030419619167839608350983086638376077534743119527277047926951354496966110629910759048517487163521071718105320822795711284223126633733251060560713502738248486825732381214801865235909104932103623815691331350319446274798426251301913193933521738897957410968456592583944225070004915631751891285891241170226229938729253366481231960309515839734064379633213885819162342415097754260201095612841835018331754514951432140209959152718096656564428229269336633899254683403307342256189070133585302596700256846964036067918058360288559090228199804640662076591177545393946793714688740581608287602265528783995407747639030045407299634869596274787056942253934212338796071708342807706662394850781226935349149079644777021279723504763047977357845274989097103145879956016833070504372150197227468322471106650839820627542450205876731130371885461570524951073759104568196617008777305064557607254290422191342478639259249640054120581760294597909772248003982609127431407275188135721982651735519328554972546959659866761418979463547813302007398638121272708953977245877384725096584340241304575144131556899566646665808764017236096918250047545369729336329704800001001293886022293152759886347176118730588452392086356417701512184724164475646175899735465370949606164489087834634921854505756748486250441258675002753106135262313838379341384353642597765829267293628335555658003938062828485344155949567177021925080912210109973179702074378571937522435965895518602356726691471155550339032858653383454345904301441833963155844880468187417137368838803965072107557722737360323775547837543748430800541546612850149156719421239704359946752918566364524224110283541441038728711646993310606806767553047535938879959370851459406507042611406316811467874526649754264568158801410385396765569064134471392742347295644178354083409054173305545969823539115426070617353355218264393201238893160166159243143020350554027384899022333237265165237337392866383164291932458959301433509268004552610300115312979093942365362549459332495984069066236702037245232828670036691016922689109978800936869735414377214109368854585064143524676626906510525593227793700281517158339060622104184857970498027041712032955412608845636410778887032450070226216867879038960505518135248640508066210779315065061979364286386371092092330379638047048949782616941524860268322642652596272900642616826611835792336107532886866378531945340356563613979545241530809469381077940000717549922761416990647422000462473059835698260442522558177321199093610335470393205626167653762894267547404565169302757275029972540088452032973843897484398651641328019301252281393589776365114533857914714148986552758051773301473811856156779195888033261840652706813183265070409698889829808226660977910966096314322729161562396978205127347966345990602226948739056860593047003206974701580649195795151486081959361293141226548442383233765600048215736875997240459932460837247556650651955494133543102327513565386744414321029675582817644066921824031155470166929206031027451721031413271566457284912112215425263044604109930584820496299444088491094809990715653596054488086874179797854970092246995437535288889370953147682088881235810447681644197804799262126703942746300528780843836876571970761185936030124979505978758178226714360769861886924293814921694741767350634977914312010063319448205716587778191269920967040814366290602369105950954018397096987667951742990346539502423328738998063909784059061000085577473296743234607361119938020763325633206497869275246517439531494885433975154559630515470506207146277614262755553103290063301011901479368567708470920217953285800642771937788937123854150259951026026121426868940214324617383951851765077503855985009689380420373015925384017824796899678316187413627678530618162520805466340534047377597624553041675449013523627081022744264738691863468570982918462563047916338356055721491857257694066460461101778505791306801675350962024657763289445157374393068546982036841176519096246434611033921735094331814322863424977172667920623924687425862287244050998044975055355336246707113992010757467206767388236132529515685461816195755371118847979131210583637267825139229739682768704795421629835347738646969274443801327565591259290030417017914517661451145025109892710349638314700063217514974221395102451841259907320583428071199066146750023517711556320304111441074543724607706660596205045685612286280302352104444831088863386839075964862141066647096792071993723897990241891810652293625914029731478779259557518468117379792301084643094763590861626196511951331796013551927656909567827297912247136074310902459182555795737826800740687008531485225677570724056077610449630015661373799986758149941855398568257329055200758322056253052166726920244213886617007454031778099104766810041362135629805495807046169230581670954418083710908258934681452225721641795666639782208861012223128509712794711688965625109396150956797167695421591008389630228869754390820146797359170897866340503026265306832883029488471360089425069994105673310587886411250711676693683593600781684230976564423191343337601241064405454898946767809381064580243246762367073781705163041596078354935808156790379649147381203571676147231470832623655659900938376138469044768633548326728617054763664586385328060916876191489633615287511423476741472148429907861943511881812660264416122449829443077092727833929477716297840772012696415923191930374161184353264371542326740978009148218527272545660549683366461317006833941831311715309029437638087748826850976885840387091470215053439558473903839201498317774201129948855071022399603252571949318015430397499731257082000754543739653214499019131107569623866952169452042398865368953706860831097828271969649115762301128511579591551913741053374576350053789972655592449984154812227824292244482347407291756557214531746018944222284106362210436500202560240158095936947784711124686159607289016216771463578300231748723581760547550175552493590048430061823236638972396321983579714413479165621588629598348424248704127234885685620921860590584040815279502199241211841062419552643552888245898474551216122978466609984883655017497795617387556140554943391100918546062391971838650346046910734741672659846761786546116234743767813616925633820313541698007210025901491719650841251267211153167033883005233530014117295590698948644545957376246202197074324111966692228832754698133208244518180946619598022657610826183851567298832393101754905621541650469712231295708044883075355199576075392790523879196503474402345947650135394863792993605421907173119216778608399951682740095329627340194370651531450229704465151823491844080386698110776756875882037303092074665488983121282071505442257899856177821302734952868308696801764790727384517036130048807772385402457776388883229449852915058602183518984260898783762004826039831356128186619779979680381816267270729004880399034274713758603319170053418075869865937421443543711055933359797016188981924504264628295708361260425481214207380070626074987256804704538547747104065463401328552217944215419758910284615474190943312947560433933572044391734818535563882062272969083931013381664477599326375002858878105410399868745056836045762228653234230944048563659000019463424382713982993108930037594824367544751447467943248019759489301453673483719660303965946656033726981499069640153259681046367629611736260818934275081109887869598763804659534996313365821856741745737992891673443136166018335431429616190916187319970309167717447835440321027656210880326569209304924394859932379870251811754851125622918440537479572555580077183415480853415481194523424553206888155908255632531693439811941421721724493257118277656291884979108422558534109938427535188454575888684756138884203933220950993972916739692584022625144382518842359149877005884898580923233045673804948955394211197069253236613057031845091714049526639655636786239399837511898987511455236751603916085194932896351660133418824057042785367105852085611944863872658430051949548950753279364750172895368877524946150526320454503231803708640585151749807066442383566605698911813324918224403027756450294503392944387542252122283630416675002186474055445759788028025707675791017477741301987995639091530314941004938663668830979191023129143989326102495029078691593116772285737405681201609707289693576530244961503927865772027441045827886975613034669000046844340402147150959677051888076222695798905341163806346659097039814974171372174173054236997377741530773014722663750935853273279261448645538860227905399555905682445944235798214742791840634695517213887745444020730647513981352834719315386054925199212040703167509484748292301941407242407514626778991509617376911322317684846628814949590392484731688525254200849931076927243280620838140721317322370602613630522757105100076202920921812780285881872181241704894691338601893339002854967099215491841627590718832329562257913203122117093732220741887280468337190809844062520547843940709489687525337049712473908868692899322609744023496026127594664000020158047388983422429275068508374344390818821893453721224250487608286363155227854816004168912026070880123373551901288336698790788404748612227693321067180260568122219909405948893714675614966559988400798154568762650516980256849207204866865283652399367771490904226473488272213525087990059554069511026414207776583376119196446788856790614672517987275430492815492534186195533149335056367413596714495902870587353996976273027622479591405546508514869351426467849517520517950002114224126903006403313977459164668077113952830929214987087070115787050443534296624589833078586415258997615020505273260255536108767861182192841055408578621314552520279169327820290321228802381329345785799415360235829402614505292145532881667969850910700443569056636547393341022076876611042350033095521133169555037672335795803449856905221490260447337182056961408632551041805662783833368651831618818771093577622451394494674519488151775785636041964253127973303772694814553611035335257474103430674136120988946181151996195985363467872081105856043905889438658238736269422887775829529086585179513343208790225752775226336159071491722667290795188056498445602616422713733615749734930678525764077370434266581673057439245768804132578165982335359744329119918090470765896632588174704546558902397585341577130214136359286808728294496113412101135832268881047105562704530015257798717485626475261184110192828764251974736718254323116355155100320492046787493301743776447945597212350591126161104463357503489022811661851209814389237010096175341419998366785668734027543233602759425553041105558334622412528542190080532425402211727059430140423215487168062349623764324614980668556361188321242175551973706837276007541992492506501603599633808524666825291068638305210685272062049030102426937927229764125171727868225158888954176770232135415953174817837788951300048952768863782390228547102864896658589307556333615484376772226339957397475141614832092996650934190363523544580881315304389261126328614230348153966832282301203323151067457655405061374260627790907322993291658176986177076646492939233419338385402854996148438250940794327224385722434588824208876325681201805717095879061632005389019740900706782522521659198309388403003171888738977156692293074728017027906173130354302169496806264315560792497012803890690818112767803705059134789884171738373750035572780910353400657458611990652445454370921330832031020241170046609427385700577217545223380430917641337912353693158969318538043306195439777757656247214307346090452406265528874700720584812694661040345423289590177490296624312590196234560649117856282909970454318730463674475423897076422122974607619456146836873619112317835547939404959480515726906541394446683621332621464518078012667031763636210179994133632775929291626159105954193560787929523145417590502974868953083951914904396072729796000797241542449547456285514953205013975084868057841492368570054037415536923904268928424939687941412616709691070302080427817852788806324739641859045716171573232229726996656817999693634921412574047872688294333723978109625379739287745063679205058183066825436884375733388730898348619207403073279479513339053298790491746728164521639079892332062039861053802396818481266167375917338610420970042616332649679855321225666862179002860718653503100821257402691102514520544211571001420678643358886108601393616208201775344059350675506819142541518387225797310379243275830197512117733867383891144897728050855941686024095560624808963985534013035964678984506286287306337257365158346467496315861006182435306617349686450914756388664318837028883117483734838545733014632454796598022724602586719016809174721033763367396443684685301106740707337858250336285291998334710819053960269645086255436825732343351270725199608744776054861440072676879236736504176950870992682965778081309884745121846037212460278761156684671193597974996308137068481083658609079561879422022636921655206693359848665020840767201844375163046607251070546554489708581531169327290229790816820303559528655338877122298697288873673727849606012870076958917394529192849614516694910731434681125452841087611365841942951367955090661876612568322491884017950008305594919291653022617172056286514086865983883864318188656860495265531355324710212367833323557328973906546095939664861661616243374306572888114118362842784315268503708188654531140101400037430499780460812773463467741558623836996069964360347352763795570534085836109819308459793947611041443851824967798287991377819849086519511773859012906965735599708434919067855307917457488360201368521178503217895117814540793385456630110558553873511336198820065611229159232200843789380200645014651455954466397531078576724479472209039956266588734366487200549056076852128182581848420252403642917657385408274903773281863919817412692858013075664685028873735589361704356731443893731322474987083826771218055223507832005407485204996268825826961700270472526261315125104515828162567932196235166705931295619917410260973563306934704684991539847718260974054505446994871251227047156755122905723247328023892378322795742060852906008700083956037105847355289182574783477732098096009784567777007202642954530561542633016065447696863741350777803061077340545957720456495939704435012614001696337489753425272066378634229260417319575954569864862442769880456159188967804272920885137368338797558352373342367554538916860650572958953550707450456554225162287171604330789665948278444232712996436306834485848178825981323115007851775822481632905400057994252471557950359965619457979334663641261829952576601956904505260062293161511552099025950759945332302546145409484992281719550430553790576537191277323153158987989592255938910565579751380128514509062293337798913041118453508372317723355058080011007718081668900414205156831282110467570038665410146324675871241711785311922457720375073593830526027556501036170691664961775349784401425613099549798715065250416083243251032341452480005277286326695007527590751789116815526330887196084388912455840464102195251427756465528254149061218363888879622951249129864420903033493283050276860520216729378701118799072499901933762243187591290496047739263788368444887463859804320849012895291023361606334786802945332639925119060384121216697304917189405137321501030716818200214016890174560957435973419811107058405142477608997831049027738278056353743770793507215886287636483630849144495074361721117092713308744653359727521285476447020059820657313834758118878196436564556693657132639701194903632294534739102008528565397911341233588612638814872013999994659350875099946518286314551198663880635974859999452893908210590174110104028573340689041636794061630302749872031837438084486867946948156847117798878695477499516372919250491394669608798648157354989023761519014542807169830208165374028672282319532842967340040777673222732506993504134053548869732582287669981328626844759447028270667350889459350805363139687840200121567105461316094434569939108425597438353862515490246773678483266718423707184053599127008034015119853012847525875405345442536211124182828304702512783045535376712673625382444199153653313551040966177212811981360761510280661899404256853007797230360994777946108913530524521466440154228010820632010892419443975874765854127320249039451147796425188252133391918625734816928716514389627657231904846253781688984755496695040368006642965838266483741899880516396047503345742183199215772955891168539479189764691377274297445951481397457314873041674493050058969727957828259177515781107358929940006689864813475431560858036428901373932454594630962843314211449217493437745195947064565730129263491155352754539927396450007813638081042177135428538318428075486588036138598659771453307159103491269177099375295682060940615936220272519909842994566226871132134556628807223475343697740107591402378880095057770088633040308755892406944259057397664667771917191420205530327188052960368600408776602091066746381835165991422377125422352541846120551266689578245973028135084122131685144371952700913880944190650933777588658733517907999259689245429215670307798281065688479966889964542651417456010768057523841687641804003051121946323328055287964795592299276507178093731529870805557978313039390945492001470072621406331914016878031323703581029077561477776895837264643474081890184186197583274138569647670561319324391049638207974204842047554673563091700739071192561467314942876132095899111478980082138200436229739752728225022497921162167201332057686120248150063716797736316870876888445291127249138324105373653250017993483490038248315518522965193194566305452916991176460995325432250184743391215094610142616293724987725793100603366640966523153210770627280538444265794460583528757459819775049534353231727452548529069814992224858897487696060435638764199294878138133529007030540784775658000611621716556194435697570852932324892874138637059653974313224574312316956533727149216413796193009310172741692838774896357815085806818013358137439246395255509113733081193579425713977746584825042769648883419406020901722581786776351233926909823668109747120187421994579619774316153601696816038844839980792373294299515092988818610374812080574542404114343777439651530502699647833366758014836484984117473561165073446059190966434946454181393801763861941352250743057101789672497852840695230208578862175255032593464983613478410062958532669966608507663942503023619975890382772573518412640950701678453486423362497537683902316731268587518332482298032090031752175173222695853027585891406688645211191685514010590041073834033525368050301371797430962911053884336367580873538156884208094714673639827721789201030039502349707979147833240459761255995530848139657275052252220062545150657548583920675702832644189418789343949636381591221367898256064995297439714310803560260225036504888428657928629521148510841596296489598332679761984756131506969266334343971443362422146273906318446798289075924684492893997311493695179869927018260962447658472279226951005174120318471125528203236027134897288555017520411144261405199738679553794364864566307324060572347330286828890190522886187293688110282668584305764226603883325351124731981080304542052962932868270305886657794112999077073916201955829775967192471710944801241197920550120507448486902696963637521705731851124773467824018360224490819975998165570056646198019789082076198566805191134335240990193408367744889982595367821833082691042428786420819758138070148736962028319526025564269066202445275637910917386241753479277864980306999262071526446797043491545062385501767254499070450628853029193751071515420492983657475497286194252595632247005574347218653021120339229392991691432078247176727330472684938399140137286253414006120716312444128676930632432817576266114857797901676289041386366482872414910140558195375671618112468723179135527810182956777860474597827129346290057913487960323150014589079338613300242101194236044211280198533494667115904838021492327837289268234001636168948309062735112139201180448952904838111975460435500332114544648096335145481715895854181823522158194709419630386264822991877976651123440713415539235876744571678166250022355399160988462828702495904024215909935159517132333257410719524991561763598390869117327986600488922930988517619953474183393414693234089665261526240646010634194968640487780472755603299407108698402939061280627035792333409174384361429314566977291668254460610973736686547964157316050780425618344269188969371337902037189780074713877220809663485414713227771021020540240515157276699899309165817703714480520558248280888684547589361972623263316215944609646630457434906288956103613264818619301962063014800235080310201555063042308152002098702683518025630850211115836232856428235607403147671668554471646976860633006996842018227892308237046342405583547709031289649140966339332701174083288113960991920792723605102373397651749942693608844559676529676060907918045987093689883053587985612328671267658897209597561223251152516230995399240791285210027864045720427446562712374200915164779568006249507574144965033796437914465158343292403756446307402531949861025436098862707331593870174025209604071033984030120977738157882102033158155848102483838627213931180367742838853245930971134677911394306994974068880063657067970726303757420173454361437291022429089417496609489095905660198434707648400682915115071883527936361161446608380383777519089130083886740420871717586079204917835836799877982594906516653639961841540536953027993301767787275333969628442696321326661806889008983499915661473592025249106237127330929837030387344106474886125611210960425705736633017058404131913325082775345792002850868895081590773684186161938718503996989245007873056468531220544243509307705324626325191350087128084154442566407736616063143799402852552383565936322200310474401588444965597950356831718113574444921152815251106803795468967586201654592152927223816765132630181622890833907366242772830046967430162146663682032979708106451583074644852227359130813541030383841186488406012443915013070895452542426882922798917487391727972558608011148822894232252330304789910013064564592702285492289310220850882079291257479463798587770171536516299239285808938916966224718383139701903921420820279097208352391146283184401586983020229080481373693342484782182038289285366469945687550715070097252721618304932942665655807226094314851951705918056350818519905500757289625953757619441525424506351930646061998579827369301641319548184338483999441996667886754577679589173308841651814973585937890506791449489927123654541414757622463016304357965877678786105502424501514002891507060868568060921409676269733271913495293006098836058717847078809880785572674514965275779636540204039658766123477938239514391833770471637361972684362786325172838046079178456648543087668626804331213486482338353990502102375780926693990130111643754323377392327556236263877260686747909062552346710047640740060897568984033459525074562365622845660189494876527632615045983945049719517574436576824026979111357102287410591291420075459408700526192079151459097701923051134724444665183579579815802482724884580357760318441259085608150851290443667792776999221241157425482747094907238953319749836883973496649075073982016625642895531927366408240093824565785760300923143429909182910158675367244221250462363624882331099922867460228188066451473226549433751084573245348657683509626144127725375784113071533202362026695261036180628571446215949321966677711548771705263995645364690298532724291062278334229712805856455220399485184310991806182933688174684888638944979432944426008514097330894537627721018609402959957190933569250308037738959811631851157212369736394895909571297353599663946154394745298051638638905991281802441722240741721714264732177001244046134486435758892840688300251002757722434018064890457958062134188258788689154890036813332550181760694635501888361895160574549154966469770308630847955642743768475317370610043949285927359568609421596585700707690115762384493863549605863863458073963433281259592513173199474528993036003286884284000112871263872874955204754987607833724253295056981753946992367054309922197292822342849419268233861729857714543865499464566594840255152710214206387823158995224493776109724368275799204653787763053479967377016985764258641487247109089101809315571191056588932979816329870055849096431808894790975183083565727262388706089245998476861046013769952616446343109683202343468091757746610921874330017479540462316809431684882717003041783402674160061291631429150755952300566425789055682432880807001177359865660479698612756562345943659462980736211247997529738378116397937966333797815400417298023289140466276978457360313892488874243414412563730629489595182807440995583389164423259900205444377219086857489068274461750763137450622767565869797332211782036737479909801677246413222384244652723976355233855614890385783374581469334148089005954040519227770990106330101876393644037885831470180342346072008080272206131237687872587633680404054491247563748827629848491254401389579666913006720786679192701809847535754502869025436007658073447019778465937679854269482126886629344094612504944932527887141572162511792311841970205676696573957888166744508211017394360757978540458260456776787158459696108414965822492707722567597070606442352217212653100671320559471427018862991743526714362113200113412113993130493764888730970297914008873072400294524853980320020335975195867351643379188598619883794520870735864067369508131281042610798104063668685641505775549526063824864205180098506391055906402420247020142604908053004480027419266935499807516914229337767974654426345029469246913644657842023129470273135738097809667837592766515611862151257824466817300926218230012908488363403880560981506792664396757304017860740846915429499655056529534155949815502090379177893356874493738644089146945822492681696190925184407207670564140664328275157905336985693240388811974190741901451399197550614461102431424991264032285543085998999599233828845994283736753588913146040772161161573654129713100830624188576694783140471928358369689090861510947584657981414772375581343715200732211962978882554252274674159194597369943282566478974816465225675044850466911962035982517919996821893931630032239810757760496699406126703337541984903014691112461675813375187628964676707539295941208465809032397954658039654903020538684922285138523717470232397528664638404843476546696507697704811495422384047564449009625484537494365714303034982559291170580221996978117778286486772859073804831118803338753373062258777067145928361911324596325947878020647983104561919619361594751497832000503365539617513680117781884507387635801652415129524869165519342176733598105248043257543152290696353160381980606723820711793122091967048025668529893233803654242366371419904258651817175053699136922126275876280032917224858504197148675319403177444574123829924476423141769383498555700386154114358233164667940141452469640949298121363365799242677522659499428582240122134888570417847489322775755930969238855911712026917447816234903072619179460899391303514947120146534567636709468212542286027062437471140538326176521369228283578543932771771080340629592590476015130426149624808495530522346875226444109114273660658498917919202696679447288536804994899382594583738411416246919931409565254180937835792453539188457851745997634157391573981531796915115091643932318241922034536914102345929774853858535554078422990763758043943670951436897436914908267312753146867963015854416227706732486807007325138236309795088945886220169997765025149227813698431613972656897155804454398354678234499645974841580558484287652715204361103382493271799109756880754105315104086605827931098963601201364891094358292919165932024416765981274209815051774276435370332853212296212064523603154927030545722584709510628124923663012467362313945113528740338355180063720369552385466990759115404522882204241973187400700434806017639721808711482026986311430062816397304581708511812767763781467660674143845947247273469628096721152649264573285248716474619163031992676309447176063922231952588147892068705438534788650679085409438192812410414696524526589428153987283526505835069987560595156599917226136572300090983002887446317297631055725610364704814109520506941296243635495737730768645736144797795551933031020907324792177223582288542474308245301202205577366584056478066152466109437737990641803214554520101376006892234268099312347196636894790050041528184068656587738835330307222985551245721390614385885569794068449606138922314987065833677407358075700139068240066525743395403209191987694227784458586296476709420933198136403175597656027404829962449003939938012083179790115988955020230940647843703905049850680328555838381400171300204798203493773414058639605322522662654770320364432140570861940951155933686432003045163054883529391358947597559839272700331276921762980576846430410095431289229881445502747276629797643428320607086936200624850561911313921322120137359397615091122927215122527746738813105314434528225372435196080624785936161771449454157651882655287146607128862170869472931814127976624212183584115257326021591162296670372510059460182734655213182439721660268112538599827866201285844347494619390173945330210642941392091031244652726438534773460224340537503888375350894533240179758861129652087860115776310200938220144982021460140865433140298075546329067640217245575061362833330939980245603409470328540493808501020322563393607945759989354105806059185489790811997348367549958098704564454335200598514018587747138654044269171434886858736497634289127265878277754023827168082866384457690760956873265764517784505831765393905931064184824899676358778789806591497011062079957120812175543651086119399292408860430879424299137670379213923721935865750972330329482254853754310577301092642314252283699005309744003674706539379879721257947397316669095641149074324352219701400866670435848862468073348494318446248487198584894690921866471764276300023175919558374459959151782204701584150911325528133027077271560488152346525591450773045836934487979003282966819651120611851096142028489232397725602392355180274021763072569906797866961576157772659644303170018112081259998392050973826400592089973562242792492311479236028787497714881467752660515632284167289504692518756763487496004961941119593969047494020032945657916292700014130297692186506120557124156965451428047121148350926089311563850974037181147518587000172536855031360329131368597599948434406626343296655049204404439083630004217422138851621896579601869165270248638288653873143614380997768125964470497258285844804546764216449602054083738331336371581243840205937105150342822506717657115337451008799600734457435919423191843333372279253770103317718816595026541009516462716462760009301653279086396948203621743375091718982027164328784698565634632331430066221142209955312501125404672690285705322035212031108793723693304579555029266316754210750775380888219535771503017513379465408852557343745538478843552465704272094027015554834240713994530970682119001419626371846737688814614286188352978582689150215406274214377175140674490489136621826064483770126750940092503503291344679810469460218551345476378875122688392173787208461394108333048102651381606267963617172038787895355447921831244242538523145670297625690723523706531761430837568206029589754396562652984400597966446279366283633185861449264370949542365297231171419466937293141600901650159074672633650643961053569564896768219371498206805133250627924588191661956398975587350919458121522250500041423530078300479625556429299817955444684884984523384731537359057350049071272727355781054125625439280297592690026922933561843484876533552437665705797248480385830583376761455123758755259961193901817127193132489527723769612448814225938742928913098337137321014825229589800243088096546330481690056760865351596347413353187736454980021307079888088596155426498470856739512589652282528802459248353907894808406711871677795342400997726164012291141939094493570677184895979124431752912766765138632714372727848236731869465831873929686339492822145275927872887295796491725596875045223556128477687224153079316224476828073817421433870638353406785043970730086815633907079968359742339421270329224479870595130605246343758551987989457602384952575962906049229937464888121163000806053870738350653248626777698192973595818918360595030060643882434759455498040299344620835453870616998465582616382792982923147759360499534777703558058541517821420973680271507060453161006914957567093986107148755592779710321998898983949946272674892005763658190499795968364965232628840410490817990277959392372201295904977445918933993809205893997201250364533459358220388380442710760103169883218746072140041346787229336045209595084948568213703871259318283811763547885108274505974935221799080678011165386932870648967215985962733224534984123715183490817241696047519552414414997435043710004741228524048661467994535785427529640077261106821000005727772396743360135477648390726696150550828489086649807259672155074902328933267313082967820375773248925239936040368432116645023797262660344168277849420622225501235286874998836575389579817303296213551917121765362735824049829894663850883233564751927358154898700498537195858981152452442029425431963696873966756601680629474806018710253904036989406260112439847485945158716973328488779748826888483313333927098825539653950480015485626203002817009876735661633224996974322247536167807709726056850024148448272450091188261380191185473231775793781833594540305082753353053759177657555307700716765577394165201082055464329112724535816752090926187834069479915536741573632489091833159274012730415550952327200985215337942118819143252591551382519350190018431314678790267037567157286788814744630559847448013834000005219939716848263447572516830088487849593660605451891814046958237239507524130849939684828766661979962690809289882320214976075542445994280461015874703317351735851022448457899593266505293160766491619154243333200971631085096546858479962807678555783739396720288909868730830057407030188927343179523922599252864025781392875645980793398082311552624460989510122820605000328852518348776966378626710102544591498931440635182458427313268908429973306447994841053603312297710935129241196650424589656131543820640561466636402554933383566540231997460613490559761992498242182946979143913013184843942785456793096536471532928842162666091008982843254732372154783189390054373513097649951848246626676221664509588165707572178209678249034781531154263860253417625361877611393180111538976373799644914804065902738981154867361018397442921650594729386097105324742979898893662754316948425449438278756035898059339301885780456511819753664282429021577318261544747517734133657037477530991964741031090531238386161489814831351816540710019199643658699643100157078084011036140731276224952751732058498108298248455122714503037930747456637293059059425160391214934300403761460959802643105873021931895960292674848835426340201657085217485178726785007756144798010342561496835274321925750703609667221167032771892565960645189687553620138803842623038010836286520928432367090435705588530501735757521177084367490055371445405742705608355258513594438587026734843595640393172295957993436994001658789930029753099955174803677616860545198825193345859204299068724073319215861850147924121031379082053737011866314518348955394469727683464096135604587380346849641701434558893342202856943301995572660717245119312934329490347551854631089556011447754814668971040112679173237011247199306400757802628026775542875812421267580705915511663073097999974385798306393348698177792583355500792192821627310290851065306220522369309895549759200476877098540550839414695864404860116882574773892330171671796182832689333450832459558928943068803386149664507863212270560014027102517013386245691560979448112539976538257435449303685268587679000139127104907542464133298879680478409726468648522022015377559437423114698855556796638395117608260329832716023883171069975015410360426427546205834891790419407003812872285999816736710886451730468472702665027943672225905813049306079938637568033919497802651298293289268771683852239398427410461776829770102264747640259046816065658682190713089710334261594978618418638718532981659210729549437848786785465903847731195128827141132553990727401372004115130727627223854060074635014911974957903543466862229648154505399388572587731708213798615795495070689930404002067599433064954971465805271858973527407601397688161573891366032368654785354607944696910191488528018140222574782383005848660192219471910098328531632462362503414847650383087187163688932436553441162901875933613876633066873622347534755812563837950543953267855931169411312355973414633214168589746880877719888427650706146203564716205700341890270184403544081629287298963888549358357870881108514780870327712065868030182911495916409267736281909093461414567772515192025056906595246186107659083798827911150697639114891282262514900412227004285596354067168246234019847160389129326138564705325782964886308486331788120505988998941235298841546860920222594144189661376240720371565526837557959823094507621274168837474837828377587960441152671894832639245062308672731392490584623825398833371007377314347852651513561135337401843263120323422317274097664185756506561054075217912218700546972877602291394707267010582860595289437266315715392923333533224437607143014606737996722931184897204491662394606418768719239632110805016450210564284710225136137367676915395752964272448907985651267427535612100307400135518790369893664095277603645119383988300656006139458059346163626477032504191037922331388130881871898904521172768817712532316490918541009596824475400338580111562844131566612792725583031354460353280018592965191596045405807647486846888240204714718250669361802051334486518428195114511461037685705888540969639825867335276849500991060101320249671981241700588836402983019903051699282303837873070211644675649153015733225023205089759024716760519930486844313489894649822667538892757557528872930443592862789015740087665838701294428898818379624514641191467571875346541273657913633194462035655978179853495093500266863100562501492900472544261549850132117526335630503465167980159612981023943943494499604248967017094910257285236180378933811695194022110522436263088818339001441714507085403949620488976975972078346601354783200401445714081755490545174543046140106689243319153939807643190627147077977226701755445089265198973836186483963270458386782830705059935037411059430770977317377903362726833154561348317209839906760160704930850719836674189674062169173116145220619318647750975310671622087674294403132916489289156801791980738129119691463344010271692904208418280941586863136998163432118253146221146510620146930750108208291475130951025408723357820241381416092150914742513586704634119721667556868961607612231929673557156119717492302542863056256976235314517880742447107741472983652351940884185727896175100523599001651137379660486968074314598182850023867652118648571095658975110875323812746913507379889207365964041442395390730533076700106007726853704059375346814485103820048617383555579783387728991565942895012843911147343984563032992522496293390255552982673355473000321679579679463045953465806444347019110006208484560732283412684635373222248015370895113526488436513238181359291028128630998483464239133684539133152632290674586560547763086990882602875935054025956481745610958376460629429400580350111062948387935161151303020251046792367300912062728644915080739776023217346298242531917180524557086979112247547383134443830267642653130432430066324313985761039991989112739973393492335759547363361208028531635470284774328254695887183151106582669308814643323179443723063192312029810420035212491939571033756130780689964616767364474967670908022099535529906856008457844006925102003042340149111912221966225578257099236900885039056628313447417437447757407524690349476619128141846662198356194916401129936814445663514161610846343743655715991062952185207522420787768773117555428672167484090700877562220548908142742727108724471567280647909082227218026987689253355184812164413314771014157284146665379000453905316522959865003134272304299079189922799136391240103648324835729447760641965848401640373814413666809525620175074827953089920566506039855603307687392586140722858338057336698592571538261923022757322822000911424765481279090639172170816663263299319886072417323158746473944368435598402608359614021777747872709030778785901715190208146394519800974788857709932927973723797349106705104406070196909146384177825456092757546284398336509030203183548881693428399815955185229369325992264413972990836785040384800435316157798812980150566263395546845674724478279897035136651801466576604411495726208434559231131530884365969351259296771217497182287678840950374413405514902212393753817921154289816457250256293886446154321953879209982072028323695488778544414588770935410110709420918567148998813123282122581207170622141722695470875531275154954205112330783185743951471111863048789925711052208926234886614377783994128146873408430081272894811977086466972189993284882205866654779640478152582006251566421709412339650649920267340170135332006086412021588935812097706811252986529046672202422133651991158396228906178344311755744035682650342931500003870627590389573178103089625386296178986711921423493908710552867713687469317190443060913579188932541838009744413328529314864948449688597929471117286292511946377075647943986193126433324522405887593970743332481412358999061789505141759995944287856645226603014061342033860642764263457081963205531190028625864439791475916815218959432402437786310632847818965542862941606341716404691775453805466261380267664687709705342191053478984272431562966279190080155159405150114876724400742703793652755634786519441823722626828402670839936337856880869111006476657154576614905282613366904489448715730297191220656446609738032370183408289534039835760785718160010785131435072319906062479281128251227638582031494104307463399841699729971535201631763377520201752412355544090420611809798079368183011325010742800766141635867310685007086801794894907363293247867414874767493020776897781089910371497629871316098481333124357372335388751857683077805264873716365512610815822671478547916598886544723155689522349565400877374725996175907862935092104458845720361585152491907749819860889083331678429098997027892092161420008241420722077228913016360406392304511810575291343816926030666827861856299693951470862383172388531068361177784496483518731733600855991901228218067806434941979044039094902774303541692393326924275180978650745748198373558126019334840196776474240536129289554481317415584208790326574668864998150949826363168521769325321844302653044649770649414260421830787524923680786329095216712902560626604732243891686352205079484828849342784058237117745116395177350784251854900007347243247400479243493379927836042491748004471083729740429970208155452280727172528092175974141407483746224992713547790855413592764116572447072163062355147482741591851595830360745191929085335974294105062525179259858207168181260716165226797693358157978173692340442177492452104325856468857264506000315122477703330768932296010602282781677718140326059784305744617810512076555001272080595757316946332417069303594282288810228257714357443051683460542857472642456465590853631376928263433336513269157985659104278356728621397954735368275703931590504765174449036430467072346381494506699179322510257649900872790854375352522961691954967172905870051756331857884883801448471940802929055464697768284423062742001371106575999054503300399945620592125248628297967593102355822371309429386414235129929091146826734613376466226244247009386934705714030326349968024028930490692479234016940707033434750029230905171879157705778188306247001517670615180328581288115230676116292386993820028584978174536080274341765789485342184943942535684190090798941236603463513532122475880675845101009824443563856092419985782068458390672714568558340229503821552948424997728303123494199340326220669218519220893431997491437887278366587588044374464801844073544934884853226260348511113377103964669216538940999792379406229551501298051936891961007366408034592298241285835144733086069898076656432807545474249400558640915830935498656207428473512046796475831882256068346948376445984935248610455189844561198877000156514565234929603596092092344095060720211450610908544946028560659879185979911766564907052146903499471466475176221987595681205575343460748292411040800725583455642479217951565641518379098607251306128847299957825823777165640678975434291543978813104303536698163089050476660707627661594480699374719259719693322593427856428289961897755594633798607394798994727597753938073062680534564896815977889227318204454662058922435909668990998668965243426106270877140239185266019494678658524252429319203045752302542797634352647199872043581153975381919278466213069326678530986910358590473649898244187274942053319656632459890627275999215791524701547260913873422399741255892671255992475965845462066763744086606830207432407109737844013772799275474669514573473548441758801717276618656212539037329814186654602709805960947840780978227119476590331322174463303800059130929139555031163924735479064381428468326489719732962152649671435268405052008287410956857878780063750596000540107328321877157940242042333509362915821217172035054086730564638089622653092231728306812549614499913283104041647075204340160807622728798432044492954343827944514347080504635360907304543824827005936255284864119137881811273131613532364646474607524269730957148231870740465125780797448483004863408979447657359231968863941647766422388473445307346119954971405936683485729759400345702253409446455628066885840180156882832844340463868866097616388356897218500976575400530626786805038318869061969140648980649432166089989730091704084750406761269275341827359377702662759203331364177057292271867122943035454682024162431865717331883000269809084325426903200097381050931637228112823928319752546159521452636430212963172934489214254342193232627002067562589368211604766819970985231149007744320588595296527798947040159539152034686265023446444705645182960253039300347993346943643066688342605666235682966827823014102915998057173734693067706898566787813726578584285085740686447126137149321640916804445978275777483357590695923225777642524408615003158871772266692469631573651069769786569272172028629574452286710669016461808792771839309574731581789207158180318477304087767745584362501987205304901146139136720081947248579166497747803917248078070682081699931837658531937560300895039121469248748068893652392990384139488907669098670351104311529179861166142673753426559588478768259221348899595739248177003535688035680632467789820845173271803008472028109753836191298454900118552372110358403084272554558761378171310234936483016054409483236717851341113338989868209563277085488247736513209766441069724517711395666687416454938069625651323506175648664433265262762091550719603612228619322499567924990646547546751283880519441811377303987209088549234909742608303870074489112277139334525191166338599572132689452656149984230576130039742521388619993430370648684501773337684356935742143939038012231866875706159621530051074083122538890060872670807003910115583742548450792949643484580191987679140180970518083378547789340979627643816455913345948797511640338696561017369759344129283052728875263630065792515562614402046578610328210655265457347811406408820606015210157465085890938351098175258912043462911870595751498967951785764177786013380350875229334293497238202440200027191374796760046546888522285701426252360957810109960984678522607056278349608891113244430177793300222780328341616432935770020815454940907550709125376255972953708785651250987755595395743574245383626535411752829922824853731244590993225126889075206560923009682872279655202402995691479883279817750265118102079562049795917195153554171118761185176695639967449843152224900949051932330489589556789684132380650902280226083979257923957389903674995446024797068315610954385033158728743357858005299658690166723799360388715676540777073510629719712744187354138681030271946929575598170421357832053735886924712647562324789755188579265511518681895582483110530656290578316798849756944985024915464439772138078153164718393628998159521872964934429208487462177187149830196113194408767784458849873538332121083570282694536789309700865998618754088760679835532620513915092037844697306050375888057591013601693510576391859333457450984601663829789248559739459718812913382567788478839516761492969231621387859191478203748249608711226229510412913515781673186316757857734927159432109475350737036122801516849317340815487721332981272923284324777342855864721047290488248926419914966689574595279000945906932467830205586539275316550712609145684641193537417652248542585063824149815103120346385025046372996473888978133257411214782335398538330443402692381024554441837235497394833714032981358193042027929381606743321316831687640795800587077514627985143346618475083882932181532293941400388122145917181095191321501098892518277282140822015110704147778230049290023490834104428571198708723395230304829900805266292043915241767997210183589689792775888503711458481255732208512079894921072043583348047973728810374235393965773954832238332332182002875716176812326855992528232063770635796912448755311122981729553048396153085962996959210063197146190837830657123891893202835471962524790958234173451579361188209011765835554692670301559811961770300387998791929384832799908744291078464261296717664032243881258861282160154535089294968530844163305511215655148855038240875021807033605755516075192825812421447934732177550961499291468555610621329277395680023269830321275954138434462568025676533303962794988976831693410198067260045929136181586278597533277347913092159610264067799581986771178559038690648325138576948059988884103559544875442442284608697289802269482810964940569429543826415461141419076367671587594971417098412893609159402393443696529057658360034761943797315505908212654241548076654856662642175012284016138973092762510292087346313110948011720694857081932971991282665297427317637259322838338509487222103911185566992492248699984169920342036889902205126804569987981439442371509293081273397633597343459145444622840143318613317229904184158778607467218597617959014010120723830196144890350786541380016863933719256728970985301043747762251983427145604095035973675580884497295357060389845247701474771926925602433019146763040906582441775193494888060210750525158398052124948102910485046138930073394545603870883139052457490338495019529423254289714823863276127055238828414867230682324559174885740286874444127554046412828928541378577168071311576465920015863242435099900691796441288469863919138135807414056766266728160411550089044824517517292323601739993599676414283233551306210727830965413994816061231287140482992551958133060140763337403178790983216742746786374007428910721564324171512043228502034722169942502082931537152004406801030443032600928895997280599361270501433302124837817209212551027400824392304678750528211300949177280648852833575755071803682004296102867582472838227126964376190297834746843914076971966052545717428917386553418950351857946191275089614866283571966271451646669620492876434678184789287952598135140795154914881896483985007832707529246944291817393478246497779165878073133358901598289877050202198285883892663861184001631768646297562589733033915223229213868946256449747915949143817410104690232044745484984213253205052484591654118582806538159700812962170184682185323973250208316457662964151355402442416565188911812390106273044312316133568763038098804882747105727008948943546094434708607658674850898217093471474872760166431912945792473623109781691707534700285014314817485007477559219033781751683653083529197128129613435406915784230515607518170784042888497527320183125484553210891012215338613294809188533546650838754840453514345794777914115806017706445264923738187907472575988854305907635531094712009867690601736317932562272501628039173132466491730566585252721269887230295397752554945311851141908054054240793145601647682003732343262624632319722905403104894351135281407270015221151697150176428043984311141940570135245277216476431754048660611546416975074028195565766230299496861105434610055845620216205235714816262822421414819553698218914564906419100759126622038267475068361848913584232680026447894909578512602504240843878012053287504542895453580648852482890651160399714519532691510135089396611996234884050911241692313253382707531861247986418546286400022222614311314017963469970056351045725153953688733214109805788169581864946805350374352963605091379241803904416088717177128979820188118467483401103140203862121819776112848610896934681980697118069172394211806206827382155044603263217759430164882000623602479744207313147160086832210660833219242977568087343001301504416657773054423650565585823157386749355178004806243715467179868966988832066711352309644556313220902903622442898682205912534799407129751109052974262707814547700838726948798438004728474760719460631927416259893152772982768151598748126188439372142069838859020853168286364689954746693619933988259268488021555781730712191251412754245242451638842295296600231228411654542077045415604420960311183038353378169772508412076044652050282657888407700015052077782516268494000241704533594256281091773279307399068752395859629726146069612465770682643768019059713124616937246611717477702169227642971319914289540758887361924324779008855555643239412468417355849438787017755988778103088591531202515787431301034632752376013739558030832737845724583718343017464405384085538123659845864993024857097544213426912744265568647101693628266400890338342359177327094613393699699352356571219011100499448422571099014126455581857111506739237225845365785386349769018187266799604704433033043315348734062145351116267255779023011577332388490451517214959892017927025277726089069181886920082600361486084225536391984947992094472435137619014123934652945600525444864162972162220738819545034901818409348179526016897725701167834105170413679753553094706765771561784764803523391768809995346458463249519446294546674754690948966734314645417689521700861331538763609125747314526119976409869733097965556390214542300465225597375884853949833903712405118314233477267165011463711290234269076282926524481202848213279167620882274203215635927734989444388173510085237139288514681409955505745492493567267827232301912592959431874169094543830111916386999512663498381787112430455318391910953773074963595192205953803934562407534207676025982812857378093412255056767954416124140585503974899938255133761353158043722734493157726402598885138010745122664475564313048524214192677571915855898208893029855013173699579560472455726147827415505899594681700061251804215393703215161493787040964200824739818074315838186548530112906448395358892092076995227862911310123884373281073400457299704267732147257419455549924898019030276113885892471486887930391795856941335141820769600642882181249431240496456835803244993743097679809927227623138297338273726674666853894608058257759777977323464827114379303001482896083692436008400679690073346943531529083975291289304890621010359665754490918560670614119264567126846865736211615999651036552822732081730908738926601614158179940971254798134847006379517740895823418930060773123954673473110899775092766076627510482265708593618389838640843812722570247245508408037517256094389975043154652565162450243529103378005845352911999425468065677655106180915876599454563781905029831145480124202501343647809787128927250164021345928313563718046789535380307382019467223938037289546112829508322012061080640536066351377090552855693011055889241221090382310505059139393830245932579075638079918586886533537543107921587894732992064525313607457355106760247634226561390862913408102451547036750853277137466916303565286556120908651927852728109038142388186233899362630670708955676722104145735951535522460068476194109837913764354014888844292200139451654890088469486093431079972092329674362756352498693800020095199699000309564418075634273317325572548272329675177662883794795749122242767563932200857761408500854552566311562031077991935536464035985350512527231158552753133268660027157461470031884532147236320983644267761732671173125290781563807880367880640249544268970140148828604434505517712050277363276870335862290049666414812384012274950849520787912716234646553139309417507266599203293058037628674568000081636998630353384328848765668704504982162085304245572145250046408370629591129965014297991225281733378418142384375993612690164932397110725132596882918751385233634695147957764298781397772887034932632168578187450203922121081057108918814416741405849308107263309951179884827767531367335527427202122438689696301162706081308666090253927322146344153722082424291024279502501449031995696098859074006652598280379143937151586219314309484658120968009262364223994985982805074497671501065669539488109792213084662838374668387871377240168356781847499148531791557002521793420896738523063976152663035645453545293627959367758682539748886282544684234242873394509905477970450216469194257494554846854859344815107478229826445516562643107838863408066744541051570597950407576480730400750683156356759998059481374757697325003304761087210280547615107384425466661694198061768442327996742258594521664084902528685996193606665010823776376102266119085914016696462695733288323925925633707709370714426845410228654441036090083259646195959597733107963617695176857999688974336889276347445779370289963886615337438871765898832059899644117141280577347349899933012295824418879793252460901760155126290097209251881124066351871580167655466715408492959511546926655352613470290669266551200177991763558739148858089512704446218572384006831582725883109082989326306035231007897230124977956638598970532478730390094689527525225232651117245716589195893522040520581631199673050389015781082059388127371617781314329670630814631457338006879987716218854503261789864410888576209074456885133808046399519901650484262022761107016461201722890704479069014387851993307922722603801974308553878610717151074987027485149039156752074723322394797785659645496921186328025024231751012521920611424900088219235401717908672368114555537517278181626348643905296345532939056913924485861367202674272937756011603532811957470797542312599331432403077840840986194862050421238248745728474462215748219141970787169203107710225031585851736246491131725237529082056497070624352091641121416681617765591067620586187753314888690261298703326682799841869538428611912630456286183378368968548054423430213838826890380316902932288463661331784537378435789191892951239070111596514121336390719687814064560542726362545408313954124701710056197623865262531910030000808490875937202352992866016219092133955010557252696644714839764619587281944227149567819391531438637781976969476424919902368513257962034887826772601925311164152500926936336641088360972513190864584027534798629293904374111889877726005974549396266849680940000811614240604078543440480939415605481560394766868329983766971610073381188863468785663680472247575911112416388227432471275256158915718419209229529648348493232826989423406297401968231023653729075572540284597175387027993739081157588777700376056862581044313526268964263412075570293361267391970096986055469160266002067464791182474221013808497892822673400706359324980937567323954183200813291170041824651810036255258769105783290340243003552534042126499609235419345233421281961580198557387918760578044071075594219326626074643656113815110291823835896965402942791851792901668075310762258722808458449627608167066773978910253790387224983556408302166086668458529801844536482898448497260755960326317910493731211960813676369849759218838497047560610712853206079905881208915814091116223509121894864603912838747153129709448748030855627355501089106989529300611491632445847538013333435584881512896166277222287578618778400059561120398651515760333184951105192663466438415206282299784455782979366537802290556634506914075229365275223419376457447591580354049489679378899308034861587530227653566774160022788574502468345878687665413305549114469655281384197980809234217742913223000428556986436649283966418995483542710735922144393010305563997018794630503845144394899951137485483955253842176349178594515838175162564989628560853519396180706672987733434890108850528371070373339936710833185475747957307318376716833278148472634540869414072275018379479097010547996806411899126404209568917196403879637197708371306353635173447671583417265413962524646645477215660178470001207520641895316547427284876903202052657435728843853513247099273839068355952941038762304077655738747919892723553841431989725095775837270697151227124549940423588390216153147780692314631398298579582009692464609430983921711502123381196550507603423477491756196786896824216681189285230217904034047963058936101395209274679834643783965310277837507664215331907962584306115281600598661366801404812743920249044409314945989738833698786427686685999737518573025353995608760355731547793314015588360794644574519450062604413796186673900207733921776643235427927715546234180469459887295632677036038607921263794205111380489008340888058071985686942181630565861294454644558470280473676846254593375831514672206259102951522838854336932409888374190952102325360339048644615765123408021382301468701763866327484939225870906153978410552534857917237216323493885551986040029450336899073921740565873772378989829774688263743556673308218097279072494461639756189354079051094135096562266525590768158279586779343678835151662548510708842434222688160047676075214157437156635704282972079372696523561007131537166189647396082323245922666237108743540120624610714010328268392044065140458040009312481791726436705435769918477263919381749231494239652139506559589601389991386355160418371733769769692904882580310141119640933847069610722135681153545546797500385798152233739050996309491715350713892678589588116801149366851638905425619833400850781729561962397045356861984295595234936799981519200647365025784537437775427029631532171871083746621867437122423615348273627313083057839366803837521712369689044008918180189683786764954103906274883051128432195893197041863529805973864601052029288121703849344401732889178524088798547391577466237678080650340845681991573469692484962283575469777529573226419988117485618890641687897327810350983075896302270834719632019051585609062440778643510763918691049348597550395163988171016364767811876398483710298642025668705254579384742445310036418997035809126325992391469164955254210137902286453691912568816413000567644455542804798371059114103554221688974699794083199477220389145900305991050901085915386772659894978073315481105547613027700369560413734783230698459266031097346768501050665994152111130921434811794649505912630361167468339095295175590464211602048175105834995842876442388314468455956654319424813270524991443126112241217461729858090916619116489481983949511206049667745620572306922950911344142995830606180773162439581365012745324637013454545106405749468981829202102323104782612911282158526664962003083141063594420488558842361270188709657327957062538792219036685411539488655358271160857942104243891202652584875192996948054534218575637425753846574645861765916930939816147745251700046265103602686050000679259672621486628833115962423994431196205306060773715072299561258027356365785367610908251674136770494853179427266136472007210932566116512503327392742913585440501385274775127231580810630657040840593837504513348212842784529715083042443898974022870032096729146134888258024162256813022955701169771150947078763637711620096818427326052452321345482983779583805418026629570651796924880274031943463150505125921487742624583864600525119027804544716755601260667606296010690805298501159024076709500878291785852793770398220741629153923674323481578754463832029593856197110973943264740374179080468302524777756154032030289635838266844359985233748068788185016775523667131445396036981635897189749059077526928733128817968374952602947441794843397483572915220457384665904647977635944042304057295167102127248951135396914566953854567925460628061251335265377287434901367757769074137928386107538267002125444399415047640263873715654859869956983495400300552998364771190062307487715520468704843777809927485855487192775145552762323036684664111534115882211345798628346367381412568988060902178167889355007158114112042858924135970024588651373105072307472645706209969080889562748233065395363737312715273282247526614673613064639251213381846595228272681919761183574011860078225229168656227015971667475391974983959123339900817525608683709516133260466591188892611562091072579904290890334841388196972608657781633604502207605876991537279213713074082516916849282275816523914123056019943724874244209881334952304520917777255908589734533626497861339988818144654773699136476801350099190056639226441715617838292274572955277747931219224268915628173534528048941625402365819091212248464575067471768086865239499411940580753952626316626033026625019320619547727631683410577502223972458022768103093661826673869906758552044487563648542021116952118326983088161658813595024818245025543641129373298181226422400362820356675279160078355260526982158235449529277192123303660702474116409758095884083725869644822864262936773384443323598457603392107269067115326063793585409781352157663605128360610742735121675119560728774142666520049203296210952951539073168815753828431776538419286735901937592533323295803758777294821937184863630104763462542887331173214390648496619404257689231775704403934389651960038805367845303175991285924886441981984223647349863075943639161293339165121427906933791622043236112614485623095359795870631102597717700106878202598236133183665045796635733599714282963306223046105524792652772227779673430520441371991350441931277170034311873944586611841285692393461862078536540570101245375892315772746530679370194022509356274309382775322074693813650557401376772617407044323353883530019361313189905386308478123060698482511081468698179255510216348950689042083336095370356432670161706976316074749645207393750530558095388985314303786127023850376042589439305291664622593075954843560614749574661259717262631874944757636059053111606399666302354771844946633955640388601943724651341914225277251377814846830157433421444155861489648323778580372821447202280034889897347849755716027163768949339814915407722809695597905361385250627857902082550023821545680904505470733651715545021413571374182668094954452845447565964105311937846779725815893642976084087891075979627859898700881577897025887174244272470111614219184278129583659487362104170796752715302186533889359570057410134270515483590108827503128874061406433832629906607225144714197722073992774550587973827831649640746245405493776586888812005199354809635349205725786044014916339128815790460650280947986575926568988000630715319733609559248189904046839203701695301415121265333084272505086997030278825103339722202942907671862061702133351098662474589182361111172985654387399806946293609631542374988935825335211443387422059651160532486690934678522413697507526924002839847114432820172995203898047150864031343457758220823530048890937439233175391822205578399855093035224670895484101370896684066931358102391919949415177663427398592662538942421536550890052702225759964703878480745120949990555944118697937128776393816671289521226455562582833079886901353432259085693574548348870140163154608851640203045204285410811046483496422051311696714445873036776311389672633813420270092710578260883919496735486120887359795774659139000878433990839571303175992021598224241091075101828090560526913041339541326214953397006864575842897195452510642781943740264915735422871628785523861858105220676487795057641899681238777193202285703037520014243920575206177415399178886613982780758243710494461881074038232585313895078802567705913078288571726027310688631498026727325548607367863431086213947390340439811696326757193639723211485288687400662370904981098933291940709076005660953123130505845873640213280481064217598993537868637720914944586083300059890163397525207807094947865347936572648677636567745915044809820679758262314565301012351772956897848708888788092832587257490043446257045237317432178329031623843259569054118123460755792623032764336296038220548450757146359365698953582496214721793198473158633776653442425538868676686162073589776073146530525308171227034429368252355791961351373330041042861335682325561545433654734616374628715894016424927502587987119032753900739196822956445008223250340827777435446580250978397151922964811402273853425181247272518454456908630079175814393878499728079837452412232814815790777994761695015068852361622803894988006913624486473507714819034149279141505853076063179207614677319181420622367892403786416498235501523184749781700509908975084027116812133793988080127868226454523375586345196448526946823644116179408693528819287519436611902244039027787308998025446689998238030519823136558449526757889366113417579204187900838405962043123615068211267049607179095456259281030050717548683903048134195343991553408355436086190209970633928886119026078518561195767847912616710899161107033477546911445092495399521041421544975559163004175185589355425765014572257729936594280679628294495000660662370087275643074898352275464785455120500227788123978492474306256850779090092352238558296897481648640044616112862978941203864120307502135240762816406865460274968657427578631509739890588495106112077131948828398853619644383261785069799160143159643536916244369858914043644589083991222825895315249594665354296256560811097495926424229974472306661112983175644795852564589925217857817454666991275415186576882383858036837518086696555553274508997147108842961803265567637135013021055492889960289763439066604248657650035952084499210839107952676882897968032228867089718196389786311594289515056932254970568784892583916443722761820750251133216747207209931058070615474721228002392138766645002689939553001302485517141868106505717642491061105651755212603902456968480633217170987441399972377109167409190487099424660588638563943158882533519680595599802918901655540567541515605987632693027737831225213761445615078170504130514463550993033272008095431959681576034105748118843420461344671778969818597110074763155128852531969653309398901595680380333796654262828414251421632438770761902742847825752001070868677188577767803780399365105908062619948983578580411848242408671179661810979261115945791945427464336549122524753952015176977555646144639081200594794363023555593667806649448448859810585025293285005232343626770643563183417454079695502803684712392448068919794699111443589060004702445591831999092802509850389473879685191908302035379827005769416716373111938013640017144412665022445650911683453940746747265505467146350979751715397548752166131471789985353810776247714513312580625552486199308344955106613046021487364202072606516735417985998127789132917607414566781858450800136136764043642755524878153143922874327493266079165290290806421852399087874750602785019965587966830077776192860885282889341266848588623113730156938489296425551163560408692605525629217464882785710067870868284743928999392194592661017191899702307488504770304084480685227737143896693269700709845923092140155040783088460260460245965250332674611079128558990525561546896781518138883905380545591955752915654680433652482096705261971255735574653498282400464880381924415675074981566642776771945816458421346776976138041989882318682339407310970024356845181683456484759630908709675334004939061720200443187913123472037729121416832085990899958185455877658851810709419203440285501947180613162614778808020192999444257573325932581852999942370786427218304172890574849731108364422503016288710636397612690456415635696581675429446228356559014912782347167020785963730959849344975026402365066717019478744706915774305155476590073371661063416814112326167469551242757085432948806655931193440670429226945900172905978475787220447519997673212569675903890191940615766808325239749172319160320787708701920829590531246127997802060165591112471802985966774774113347598728711626244403490684812200588134375847640725394877848169190572479349024278837216404802271242865980864792630829979276342707637357701185528500017913451409379184091694691079847306534757307632219624034206716846368949777040164240903103052110214730869617933012432174467169546933077095016373011205902573802733052461609268318350025234497635551176834873093593640801200512104809694951686059637555709834556757599513129498105327284768828834240213518362535860555179576236513875220071123741901467768048867477160773511397867025249975130043722995183074641739028082919136212099819587723103863539869416252924960944339793899916598425104361111772884430733276959100885712880156839119315071766155996126111865203494018610612604705522439085467847647042060049075215654115274137028087126241880517197158146105647983192015878950655834677897250411164751641714304331651180087335195808828276281865399871049875547486673871970465228936159467556750129936986171372544450438310857149843525159557958042231585549045167087970074253450748605877137787267429507848418797738473049858599137450264675294812142585544374803995616033414339652672099543192355405864260184927416428953093712594031390753708120948980469351689970278659133343614120857188263984583682336374621205781562549534406224248733354853285848999877218363652955580999352495798771862976480410777536197111171329425121802945050735266812276826795076780164449580338821317911851479121187467988292722829931922470755107964266365046710999477411493304333632323084470297854441178660856859372821071967456681302540135926492164020638618021830621413474045746481715759722979383668539458409722019122732302926070418066561070250239487273733413799227125618361676580279023220660435298925288178659065969676085257070308162235702375149286658072226821693533970718435774948648085383058404850754482001616153232886986369870040274529242117220007191970437312801940350171959416241579161407979065067256968265558143960165080208150921317472168571737677012063276036813612052713952921496631551839239297808986607696101110013367053110248802209703953904669970755123505520689162136703436908153694173029802553665766114604593612945213692397719031728404734514980874577497221057279785525996324492671108739394711807919365454242834761222292974535661274239636252089121941105812290552837313032284627628908026837078422865176179019971594565712759752877099860527915461208529742450107344456393610895097668857788555766129983052209050135639793207481480995444311739621245456115006899060080523936288754623380586459569525836843659657246066462613890504035170367692650443214106408748020376570706548439095737223775767722343840414970189112016753613110045465903453446036118395248567452686157592083555399126402832023664622985775110127404064557240817198449379732018015696760612241100726756083795035406174485358743749378073320809035959936319604025416530214392720566280686445124335597104294182120731563195415848389751640159179638215448294099230873649059625626335935744786474786871518547205592494978650274695033456752843390860700159736088820762315155749025376006775513429359770512905858520201270315335449329597309518068516043123807933524354129539963323000773699788854288984269626165810056440012919056746888687876179237968759918782687723381403985572050952662275464654737712622461951342337646617317551618070277830822808400143457326741121204759804273648945346770056313580773060428236512241059120010406655042013028684462591399004808849236694998795829631724656681337490655037787638921186780311853702253489960866832309521371120807000862864893409128387439059636119530187419682430095278368170687593348824994421176788015771583139950669190093990063532259270075891857905941491790369136459441505784529727440444809709384977763083949506055266006687511676603517990620937817304907323887431063384252620297163557798038920668815777150266069858631781588062392610972953121473362504963507940012974038542493734215314332071085422193540010837796409994715283688533780585851744118348035786331824563364657705343448876180649322610615377760417487243227547607301413286641538132601299869058887429253835161171975465493174998833303406133310094895680006526516229918448220639358357869327203347822813647524082174957649725784573107761975087673818234493121088658513433286652105455761664408887703152705822558058610728570927231026822945193464662249511755671460694528926839310125044546952848277773746152219590745826587612182149127584795414817215399198319538967798443006991874887688825049005410894886281851706110575643413641179204422169374015948185128571665636039663901269258671905723309167559969117749085187862151517111616121579262584728165117488415983010247370746814614532806881465468774621144505289096696141979272226005710663245951098215453046190018050227378445965830702028123758960186753492250506067627896261396810652088855896124558789193814947559170506134168867192516853395669991819411693998324314441604912324842101533195800568257851258231172741169097989278523772718843647728637690430134989829212172316487855624583062693495048480680708324926204558890913045913081620206039511779458565011080849698185064882953679204419397494522968635377735991299745185786034567969465114274959096617626111150124654079818653798814958607562840892210223462247148099557219208129733136664498244613150237985998192851381991105811668182160652630679985536615594820471370138021871704202054604270817814134553755359269340576732267313834264531386905728422036014269228231936720857297456154924768960554523538768527053436446455064391209552973950612314299705515595474004310059857367092426103078267720640636134249023378150211238048755149407413858185852743302174636866638825325650502208327281352289712479990794362043152071467338446252315347420981578945870136680148765510716777068596846231035540132419565947916939384944249160692578943332402791533755535876805447131618325197441018318246800918757104921691280153324090867984710722216805574346622931249342273004923742136437496978346132393184208314361046296978028874239211889786564179518897993986317754621837700512512437305410764795891344288341737620329694457905791770632217717071486359243659320905948796475408468666070684110973893457751385541058217689611600533478410136307108104066062628254954407147084887394916831074842786461076519061745725224764144660255506132959377592319211301392788314453096837773667480805162617937389017608236099213994655697733061524451328610074961037790349872925809209508018396312622099398344359055682185643852519914409433289725767745807195800763305570013802861807466128740922492651834601297681215336536769931988825950299645163279965277850900358735301302416924532303995757153784319285730060329116736116502460876433858829700911914846762073344418263625171814722683234420593509349119300996063796778173298197166700560784823295030323322439333135062919296353939636415052373926640384527684402259751485868573377573595391286047095550183536697494955361983053293539267628813045633187029904699531191520648098460112546078961909453765606606058615798591839488165117933197221678894908325587375992294000674057681004313945049049553557618235493699396363562287536568111591134943565781750479541600891579950903053873733434488541349433047979187455159856584985256331930053368879087878108230080996408414581545758981257280636214097789511228262933992064713726135136997274017687114326314825695428390778215842165337100271642340814027057938239713428321802565829036906940740996187552468883490810178803947708206709647973351228437011525171551081518257266517678593291186976105596921631295992071088503932747713908463989498300437607833319991056275585849198401364778634194942090585731221647416837567512055156857728034950223166954287719624312824331762135331480758286815673321947296576961282744988222977258642841048527214121377559405671090730095019238053359349697384746529976944890371842605804540460644801551479332131712142417943095659103458353116517915810816720102647608562156636813587061651589054652324830471717442778232922586151415971868185836921048202872301981861326416875081162417206757339540860815697715694235343910383977360878706975730028461894196889298871130049736364088700289996968035549054445850158765603600288462852418550238042155750690219577435728319861541444386109111462803892431880970014390684071793177500291133532368864762873410171373842197818152756356512666507280145385399097597989985629793918797646089578744064764351880457054895066235351347736842576220875931126977472829229223504848067904985416386770778480950670765722055574479042719560852833130546964969290901953689484093614364744265582724563198838370700803757395360178525896054406772165698611325566855857648980229337515288129465476233172702857203408064230475745812944875007694982759884962752370215437958079840424714274942043297705821588173550465223159362456440390314502883980543793802735083162894977035586691108640556993422229426789792568899993834723984719142866178217723592935270755444273890304819325469549456354754367572863157387542715181053430113440299789475226881199034518201826264361890354506021053717914560889573358417621215974069551343527956981023948722441437051719197361464027187703712673501772273409140524804670538788131935218263281428903680644886297988692057471382951142248077802014080880920354082080937069719133086735559864435859998392523027242145852267746429368675616609396315543855006720862366075075957848445962803024345549737656910843468872060353578527295990052130904054334455724250470983104318675845146717693077770728716256972103512724490934420968836467581517202959715790087331869977087272684306872971993833270504478367690215724659623670891162401421476563452430525241345331997605099006894003941535100705350358217071155846251994458147897777347716883150580287403749533384653072729967722165089594721645312926115511781425579684568823281397547577495603982786541986441743776869005384682999381274978271232335913795967144168743353464842683026818003831766790803155492494965602423710985878035911361037109757509820317665771789162655155955919754563423097505798284106170770881899997078483149522841959323603264543399203393452054647942523321684541366952885375566126919708586640728341589800129375551778875611810816348846288094864121889537107198810974687336512417684762166224379324812840994082395176674696696036387755985796901337468024426474111029732820171915183089269015468124833205048212254464406057121985447290657375945981727332407897776930246715796862316422440412061817295501015047867668024302875609882595971020589866106518831768543071678115212040202341960787998783087527791675336660822308955686181321654007885601369120271971971111047806003483999055520402258406042363555321760101439058761227636432996139794562106806297186232092054832478863466430481964054071904839094297721514759290558627757113254134722995541931890233348439979471092140607532058563722753402506623291531838370785766071996415116248635057133847724440186672920590383709141505268173488349891414448170707066268881036190409091614036897952341359833334035379706364547655390890206926237019831009972180258652665235899832156124404933790567370209211758158422633706152838608190610349945374512481431643561985781126179938804330098339975220195839556766503462582755747049093615659635380864037856621021131061672095204003685278761404466763527819391735640188643296762601876133980593130383082262642986962448259228037101696167751569186455626293380262435467302873105884410311404151988652165321923120775906447450548215395087275316142563079911950965703489434685773575276043491017922084213629016997483021383521046303921045117690461147936767714835738316267677198061145555112558619038143202197938886888919208301541753485648106760184956697677551739612802530282714257428321080564197299373338031622230591521079922003675247354621512408517260843305675877445438267904630510828210599421032657349520079298470435875936063843150441270180321697451572333317892738969747236453875093237551778191533006983097503626466036121969907826139268585206901544077488547132108798194629182454250412440899089846612403926676154662330661883222211642281738613423164386685024331771095786498667762712654469353194400367448425028320487733694637638434297578482405794391999383044115976485776750178137574555550754923241614991650468687928572832458802878770771559593759878682294348227450500936617322003429118608108308048830901534585793050532935078361892764440909934513446827392915426038241241015137675768409153421680220107839860841860802789134243641366905777726162087903616967966144778573413474463272037934944663222321259620473704471410893535363811622999060638452246030419293514937788157903155834256861050133585443755667702193574240296160610470306436881029904713705625137741682843869726283584986801530597795100802040115540688583204223171780584814903299728407793582306750218504060151687570193336986051911281246699586302805350202310751128845374760596567515852656925522640943105426012475528310649419781043424414837519537900169411400880536381750198990934654999371007436323208268748217401304417023125530557087114522109852396116529287987366866230462350420600985830231565379121024811351933536848540664166598885833022818738226869967199568574067296314709526237708562195152465214030912124496191212528069341240676026574413284274806057440993492885919835801107674402503072110456671079363373524951005908924644607161029349989067906862361011953098981165788485018657908504845252259256957940314917268392652752715974009323482096483811204991305388373285509901259194614238566362122685437991799107732462022553386983873170988432165758133305814773145725366544371945592520844823514230061047264004654377618124270194602255132673746213140697577323960882997588246352680289779059869068198957378479477530401992567209929545789131472272281194175173586737277853729874635324793263167536302923968470746203815841743349906301769664588414606707273127255167772919584801206337530937302043865821073007765774726323898363728395393231319079838243335977817841424252878349208230434871577063579336261287194268897430433333977685487963362818831979097329405146364290254627128162037964953394101098716164754072430593605572991691268962458967552654195837742529052628487106053982498738077258539071462973383664520346944879386673903295792043483502560409787110039277942085877695158366491776996462426968946673566977487274869554930485204631394850492658574653996567696291215942614957150171418254443400453281076751913485089335622959929806068429555792411067866275584413486780701867939034733030525284618912134600531969233402908213205391489819448080305858352759271066447479773643547089137125976983199414789180142150963608559286660469210968870186969699355325930868212421514788071209644087155093285411965111853728178042525364411346468794409226234341329527137393170682349582934886980812718687539792574811115874315982137028916131933363250047978494107828785284804153452260198721856791075676277604440865213096830321035672003332578620547110379093299662977027392765787086181372559317007785338467623295075536520776165312554493016240951982901690373800729750900407569518662344075235491104451623614099078989571527124601079226579789188774846056805612167409487270781911377338362720867676662137623366010128548232236196888996030390125849639370565186013741214533605700940626764915836583174340901789066299644605278465139170035399614908244966034757104905077609358933515432053553051110782009693232348510560112807379712337976230550213632290954062303229733557948833814056198388983295252069499599841718724267616100888382686254061590513727115462267375454033244747854419787173904393353311012441251995719886915788264417887208148972884761929833448367458294624482438543530126510560812817770857332634001440390860861391470493965387722503938282303696936467364335729866326979661068974818323796238471783486944743031112120461187553150317676898549732930119150723771916891608397424712385254826517929073242155317961278978042643464111147319401832935512143687348042767118974524273057150086573993995289966768622573313178088877484871541961692871098621232449658227767612382456957485000340154050487872844645976982644838434157924403621362496419390523509476518939766370127255461099840554030232185525140146792893201404796978784808920004996086113192626657418004229433902261503280837763220308857958549987607770365615303662105607724523906677578812249227169169953357383650506593406536118145498341386132570236707752023479356425834039422129543201084811927125527765601511719421302641178992097853517707604361286599635353453519475474080560903114708601593680961895049174396358772218892619774881841267718926892667161387138171265442366378098008980049278262972044841672770665239709772929042053547899458791279522772491833249244298698909082627653789368503519898280965195487127307632032513231594808144686907499997660708448284044608959510633732813975072823029831108320858596534352009959437799062942565848107613946625637450987004977918558401628365961832093702587051816480666233726602640462809359998840439290742003090041239316742982207767484074640419714185164044153671474097117129766925345440468469456213628648067816064920981660276748905749977655247353627204244142560592040167484625262327686433328707045605993264047718767974966967980247790074132106131500935096750857007166350301046738623037286624244802368601086837496322174955679785556078908297262861475592149476551796681778804036539445690733011030485187521996756154442693096731624667813644424525274204061202946065491857289644268585733571256652180263573070408913035769761445140546846271209472032246305485289351680683962859282289284050861696030207950830135860902247027949595758038549099797029171997864960980924493703729002732197594217949166537145026801807209452522398459034942937754833404134231265160314115214576034727416969257961278363101133638193221334243538060742291102929992294884956793825545937003121568276281677646660004628667553156422421561199151140535156054108900362573602213130094878416633820023228670258068794464144067124572031033780201843545344573206479763350243977941844832119398141085860278853099844233265033876606655621560757697792868181832906428419587337681755033172522226047492031177546399802160805444727297295043842207941193561203522574510681171708585311508653534198830647921704833155631843108434672926231968595911486795865497497871719889667604843873340130983565964509406102866553261169238189915196155733750355414180184712177754938181023759138882734757721160013298293811094685967672143214565488327222291970970397929498802785702005172487383084743440094607640579691780473260780268020793960449761463464957928976563847792341926085515671998346939051321695343345198975357407923445820998455471476220678171443355244782217404553449486775281530724629246872606063887148460136717201208734910708262228819958677995201198254703175572601115612353573537240534258224488730845617034350121254486800298900058314377159969838242640980817164667563088666084519745961437884834190752354292996290195674589352964584906144688215651642915383037551234459151321434468815115786322706201910730171902776446521283707011345329965840296717338200735767300308999543798440892919994500857647059449654499474126146273069930427856031407854237519634553559356075761626543982873065134005239812234304954950302990842665189500094482256443160699256972921911586595937178583952343102006113266530590395903465643473435494377383949134848106115354264937392112308507237569565118189612220833204254650689853057763608968943573387737364631207151386367098254330708905356930323119905471874057018901462945381282967458661214363425701697796832244780546202216844432882565721439325085565683641263393894810870887570172674931931507398702557246054599872360371485446470331450957958497615445611982442462334887378747307176377392713616700036112006365407054678523206691332451102942224768524554477569089285113795867477253103599477076106105149966998173220263967227447103475163362968474756670592138251691927822216873772282787449810338111280851816044514005559066050450967634677997882378328944818920629024064093594598368918409990765903685594121163521957167929169630711481659448012073034091376244749131579120310485054688070694579139502632327842329950772263505179471075746713719639136500211241337629486337446586762080645960748014702367113668777008689348017897407199975071685919311437180338818509995879956490574342025018064723176448384809957745588852677689891802324270149643905452814462017654294420906961371101183282553372337597316780721681480602364690530852003408059408410057778648450996490553237126788092400769404493240884137619183335196765908292185631575141080891009226946704497337243990354335821152382667848505701149508996040019332015185557016348141495569399969813138587934639949179205671601499726433970345538657035510166907022107321075199115504069825528279494161811194287870020617327987159762151989343549400438389262790136737433884701874543675100128636682237240779311448507760108934455971619828645138064219479990746562824953355402353715601822434559017631252170015060780773209521616432264142749457694239489939014448942120412501476553973580353150839684407479106981632506428352273559106469404502375735482028926366800810284314737343037955096472753559737371832367965683404516399894428988368020306955118282715042396978716418140786789643550103739146679233286121782566894247962553099999466526878039598982501418015317591437951582308514904731265470297450531032870696497558841584534277857805638647564469908565536503548995547822376568356535588277108122076024261393535209237721300873215102175954677652270969366496616461411744731581294816775791776050154541042365609941584120673434827298885257412748844356108146780316123408890600240149394387904550033062174833650544698175566729385509947606460842068381124571062547548853231458009799536830558143953392513609685996750215087706541468604923092276334711952686984124458267011380915251599910358278033891872559629260757114505390606524134025066011395839979589823008012761829662699440981851255950644070854796154852685644905863454324253403320132233386887078732298520551681973713437876795094744977434328555552197131194063013061261357401184733765224903504159601617815336266466891820296800954821219043349356890591186367567003380205244742562032194061723477244583807862125936855993002212179124552172266557119884125550541678784653531397209975551124512621223409420954230809308543230734241364576267342531477666733941743845965731806529550120989286321560376127889882709989013390915679285493933292602757085282351565352411052397130108627923402513356674369208648877836720496630966192904267586782332309455124512227164737337946461711625921606629585808110456845547942035457768114785381390295006464725593797236012178830824855917688490369676936517323792717747438064944928134935228598233727425499035229292981486875475830744639149565080177968810916153231188317174881909472876252199220819092346565877718498399697371968722885491812234780846635034048723549623606493317085617426871271444483502385727005485225439729810060038019393779576537529098179738328674512296803402372224983668775394465024774392113134182238588168769305870423018238514611656640833060493984847454002828036003001569435227474994245874661612140482360595703382577541469173735849599117881846291037712503194939990753048756821355384398430048952313018285190077608869940030509409060963658977174946943339465264244745765768106912731962171118589094488722027614252434925863576594752316732846640858823737465871535514066567429517991702565414027546149182860588583818196171664062365280258202594222433788678899726365064596304137500715347421262110557819418820349599610908180698017968247276107265048629604663691947665619536337630537776910490672644371327615648887691071897970117804231037015119017579451764764567029496351347248511324178660292917737052912217173760450997273114417819182812703523012095238648442993707179839093802071006473146213389881614610290227157604393860133422112743796936053885181411822627607701672142473940365699568932016949120739686183188911584851762765941719107906123063302876738118078676000719186607086718306428346083491619931369176949150362276200957988253027485371600758270543492485888532678510014439098401483138224848515287568580007382363493611652950312820279325811827343454833264786160126636703024478004921703500107662455619982154076550849479713882488316593005185827747279032168802346747292619412544125603905006927159352641350276615579140158594062928496302162729633771705418880455768537625155502008002690723639419747895375826746907655861994385649899962318804840922562990934452715220995098788130625859752685054445429585833099401607437953682686192992251911979053759115845768878734161988222471848621427447839352707210971917039262706637145340777550127049240531547881720855105928211826943652301419246687912155557850981178516456592498182843098888678589278359304372974849439280374872290169749509367675571407433636766425996927235857153548602036043392559907782048580267928695251019116535619963027788072057355608573755827778776576751834615004345637864173800339499431064174469619834002384882825332307108032574107182655483429718560568218001933241570268385192494580370532948890297465908509764451646230860198950080376180261133327803146967667825427487698454307722796699148188444925779404343742713437966469888652712478550087722649244869624661519482912909290212581956457196622374553830634835235835718570673757024004858693987683884497073699555787168772373483032481244734150253583678573602429452431058307482447241624613601107589617056383347837287835626531220443964609403420148551532556841015710122562755188341846220806314762442646910306587351783947067791135078181194314438026144470975809933658426546010966776829873661847604609358244775758426278888100547783789506495524181727154458879569629670317133337883469268969662119792585689583567089419395307913889748553207666565246565490016605274367891592891080837368001037824462058601923116350508966182850775140504789316386148911614190374608394502394154534810886305326655887326426332764298906231332202635592581708593462744040324791154584173925292395379216071993329452210115006113489556799290127696989345819183024566548055292549518528696537610113663889677109143718534473984673983898852893213408173588714536665149555716599811965757681726674164577657985246106284612788421499639834959352877354242221075033038480421732190015681652989973795559058937667753572874300139461210982758917982108507858450469617257938447138309631097888084443181604033782414382794142485678551347687765177946300353227288651191250080922727791445581574707120263130200142934679316311112509868814174564645725782600071286291796507656170188443841654073619383923831289760854308426372413573901812554807529636210568753172061556304274874818558119353058201919517236529835616837838550707975144428715343948426685628700819968152574851150815640980796710026590512742863129745078099910955346172095563376596017776651337310570985017052047304532385660645751074269061199612601000583646231254616361318031747796924856431008004500545694561806078296292179644909828763524192415716936326513989209410104133933418730924671978366406505247862096305044811308313870184227589090113740863834361058209874091205432328888609831213391801339796419893418218878064394534206800913832078267243069041814504505561806846282034780144093207833414862453107483716095670227411964842844240782173711873623770819098003965372486576445680593770036179996298411477678369874710965225232676714085687873012456176706429045846226724390895976581118234118920074611730884352980521606429805617065493838065364981299866314541742799419873533682797898760328405858549471200512631410518860442813485644688804093360809210920800381924470730927674318852890192452344541366792346332398008560092292318797165744581529123910115636237826788886070425725729921524753630399915276882314826923356044014908515931798201029034212278539881446011129665838491972078196807877732192199162515632911150639681906600355068682862161003841993235773400793181374221866661922475609766841945022228056231762901636707643277619433499634403347627981446981119302389335169579240039026621472365759194694998088859244486701677092122765546716665814979071563933493603154695575696981526878853733467689950822194286040814861726596004924765834140954038549216497595859266308771842488774467971171529137441900846896467453484288230562266136755746161457508258049613783633918242872796725155515041781919592571606904251255869585674541833508246983850772720574258741925673153191591014811540400040460881280888945275879306687194024496288658766523553844309722892432192048991642388535558494686978849048305470972276395349772751746379795703135178373322101266751061814056716319517555641558780596151814298281122567336827268126328985604815104278795977855132140538988036750930538617065134435562881257240543794331812244462237163403390721387711942320684152688689387039652121809533759067425901263488539093847994597926714010318878513561595379398800922684998311491642041115273156961732958142832122739006535181356711843034813993815785411018433908610749825757617685992707061088345275017260604149928322054789472078118122089339222097243250513237359168276000298206154577129593807123398868742599333792139156892008963966229416742273399323442931339974416073329519329428288813819401130408525516279570191587132222515651003390750060768051876119604255839375184524997217515760731081460990248570702980125732099208543456809531005288973109681810355605526479160423668689404859313691214611396157061309275849062947931683014090482640986431035464606896044319703497732286450409327950249324289268833193773445293015831269823687346415960773534870165687703235036730548044910618537713311848125989490280075036774082515750870689552594551959231566092299428124085767205118952213347597548067048720789845543881325294327232161880677370965104059408327014099890888808427852422995174377085089352555125351131164324687477694663466163298190923324337733024770995448763336793267605683796392961694132696251453252788867466078371448028021670055368009031092282731996013584015927633933456898591562505078234019278881942307387724061162222991216931392190425670418944295454138376893745853928666904180930282709757019909877498563528079266399851392285047190039164083074857069489545150252337861103790687594785163939630798337308373458187891572335633863969487553766025754472941675450495988502130735566918484486723632787011036517377127351048582444184858138891436204660456453282712357375154816036218766242362725802484822276429383300549865879701295941357716903184140755089130306520365300604612686652459881467189378685851064738865750707202151483755976003463207882316227007659651212207430258287997346232470455497737872274168797923384455126291374497704420779632739403502726403072961096840118963924814277022074546146262001029826610818632365377746321921976348326385854387904306987201893726362215816854297719074678434417483114182764596484632711637869590177616276094069571428431266401391845548066606065389001513240709540254687726017954864234913621973559307831860833135840970694278835120532225932599593437401118942292065878374709434874306157082682483511919516196010489732449480630771102765768572258633272986660497519605389115004680665717875352870849922462580136864440562139579722547253710949688447502567778015392906574587661796282973969394613055753624594981122114920912823067691928339356734383471614945852141918819908919541529317067808314843919345005123072820019802935479352934896787731552517419447359471631799406053127567795401070870298522973630037497008942542797208068049806313966284027704484158359064903730937784210467488521267275335279520986796958240269766873338682724178151355362923227656118223181079170980596070849717379171226990787916353844322043424298510920740598587392069907925851530539830924061405481981725128725769296202931651612857772717112667157405178095424212922167710586399223023700115176269357513290935074596292095583985079356630058209114775611366305722419690084155398593388970643626549818450030107144042020532167409281988330292438224304315362057670612867901853200993676567170869753021902371874801814429666391331698984271977686792272572072537883756517091568866069580691517462809555969795360466704251143341311230147059927301083115346576847173003654846543600234386658781732664327757362779978945591571257811483456506657454801800329270916599970481940995851797102094565421640302377691559795367782035373438164489409626163254510309188838954530664969166115663045733977992674658238327872961561381202942426712624506641645690496077302584779204852684767836344470923301073583383070123181390167924717999898013076936865856735276426533072936555182982642373780174531575552078595206706728991952627577133142693351547830300343947430446494820097649533144286327720255396252168499412648667590526993679539214164867481464851765272040653475299911002979075721452760753202586976205160994550358956362052720480928438544137639035577664280095208181228532699107003948600842125693402345165816762123081750809623349484777330072305158567377465108355800743315498920679974968743481796204231417963488469431401942144842828685626341922986333541740227295074054195636744322867979418535225770735998550437653148715198488352074896896820299371967582921832274842766115372562612105268869956242847221344602347072279964411860338466277561545743944365141898893617535808631002645955469123048860772523949780703194879042319201028660413069766564856418893226743098864079785562715447617893263683555252922612209500892117503213539136012801862129758525153476337638099229704011398789525660811687734839376511952457552049193425844413065460697153850868800663446161716527412060522293052080383807426415689979196506144295871059911297679770136665643422140625817766379618452801898428287365199800073253313454695779917489758864887091977469635879536637631912642042600411702000282320942234178006561551328651227546787503140654492089387612335873241349845432682241581000633685445370110160851248262109442994824406779822553841558827763027463537315682483237227786922843791964660892285462022374173984664569903507243947137018560116461250218059977793427892180701671697960845322959355048958851102784102439128343383568645080484750659489384085611191919641130631164786404731808858681922452572029743049570815214312489301930206728084167380148560204240614771128406381851098099417050512754331325529691157137997122401036819541950630146915603839379435214792151401440556843168833798600058099875051274121356454127679529154561152893498445123468844811927192407817753469039697559981351330992116988244779576276457136492167219085833832143142622953760757712673250135518780623681497357656780490384979151240306947114485167416425129602101080603579491634069413166972900535919512301332783377003231297401484988688850536825473138530220854165075391624042311036094689661237153523159572890502159427258601758804597971415682222039826852466946029323868540422388825667044309800723949355259514831003008905962395652655905455281775383607000558173869688411616130755988987572348358292083909901505092314376079399476876471500162479589376021011488280452939336823158509205755609164363284820143192567262483503850462454480444031824858221030773491723628487064245907894239541166447899980568047450461370903329921637333063294075619190636547876368925054550603276242224854045839410028630964989797319239043368780765630861973539829885065898611815476113094322869465788540140140275566425015854900478396005707439266004448263926655469838143296956797540703283670331835335703902168370866599239684006040592600924141041031127551136944505548240793668498364221040218616407984860099288701702462341489788230493787247294277911542178534055890578991266953155256446375488047215079867847789014002386298836735187088259972435026140710049670722543411335461697350058723126272711945872794154546775728470649358393182972329601196502534287440498091188044049972782158373284610761293308590464464814725346615087949673379194245624579869481722639224357017895679856374854803645487705807833599408964826993776338594200305690384833534967289066540978275229508665480128008180835798098996999551735925059598662417696113331717569606893577510289505716528606417743869161852966280954099981972966394867826299100760279696620745154446842331348173652976720817907087910135903566497401241491011064814971082588290429599438043807542438217507776938114872252002352507761492215483700384912321248271555282486697465600318895644218309383533249729972836693860663974985901044069043988440221267055911627389485452109634552916096368740434499814985450502814121580970911710793939783679766135835331121445504452418771842458218455787516066728168205638194923173404929550347081196764618060188355551039899679290713092711352144158176790922433579592401283342952562953423209874072991099662065906417503425294508853514914690281772667253232225207646262065223424945734582782813442367093147250773092366610773019777632101078848476528492478114991420302286017838952552564365975340828702755767129832154232121220502782700825792682460298078655821996944353898981325819686930038902323841673821797607403514571006770274132909823424719153122249019390824129131407533621054707044014755164549705226099044586536781839658321875745051692937973816392212918867908838492803024090858758547711132019288980812030270715276961652175369050853962982885329058933397938470768755685951820617024388719036353045204597124707038645565345392717144045926942006134493017063806993927850309957536632262228121697728684235567441026299197822689151356308286024595733919689881847036464874739862334497359335993900756005912371098213943572729759476516619757567296299610831408972098815119727629299455130447229296574844237443104860130142870056717738177538461858718205436065303157886871900251685321119086245785671534336927947071243884226558407869919533048024710833498435132565847346324543450081663620748987911182978731947753024491505472216104624415621862402199956605730554534914743495260668864076678833133304206507602049820859539930620790597645362994232462351522935352892444037838047576661814068497430911198897014822930794794860273342672119978470647527649962312620356045405451772540815856067851887529702214945031743073607557551227157889734459662527039655934281336792065224654057059552620991031471877755770953733411836814651036133601952515108710038072358657624579703145466824475647847531065712333581604642596631844337021673475312473677150194738985803321846845868003751474277488644606583156090159612084735862649311232817145873196801021495436366278820985951376740962659079459973537969605433183469682884217205061459144110392286236480107964618197837357195860424388749105301295156366387483891883370360300682287375210929303797786148862769197430575881154449277255590518436596117233110797734291574209923693688227449437151197846228415304635588833955665802985709940369762715937468766751179668411980554846034989328293685029604774848814027121239597846723294888715799469904289956102873543488575792010215770970955784481022457957222085266961102271052207866818331584520402693788521231271607769305025962427992954472680695830808268633878626810432111809745062148771349548153526308087595266805568525799609867117834362164697590435685290934985021426463452378129032877752666943396787266432287019728234484168596724231006630624250421582599091457380875952950755730136719470161177584395390989988922955992444593192379973832650222928025552082423948641679566864245435589240413667858273609667946583626714803521529198819052271906371516318410528738084162997220507790279796882105740043386383897480807148136912949088700009483725808917433664176247701722336747989692088241389775802778192921808629144164672040490565742224745480351196216191863921218927599396077169612854173471969973159109509847700721752422956539500322930019475882981364114660462305105351623354012974534202909088000327978272391642372148976431664629866065485908291701538267080134505761893670748325560014337600195747535437018785793284084848680134776760598132089948757234492507700033211726533240839580884256730361098080346741024970575159656015018844760951297716030360234164807635823153664727985082230243468820569435015081170627233147207953098215941429225391255180904641477268471075939061560813668149985408078323092859050938067438189896036230428415138937546424289679134381757522238105853359041295106887180018776941761610910133278178740199791605057603364264156447715945840632262371042043421860007213117550118010470548431706298600877857199941701377358971359041818569802099317323915196274718365018425769875881483000193746390158116696908612119134037144965141964458408893238044994805069407617447534960034394886013816762257038804007257369535880727551878769721490943107128917715605766895296288075259583231660051257153058244376570444661637491486610747871156702640581556801308519769201579322899582330906421703357014534357154493626506783628227803846993195573064471854272878732660382035096951223083172519197223523531216279701585927852747054481871478269241983382259048510936469984996399640996147965614400253197880319481310983911539101168802259898924214379091528415099094804220533373579950336990343252364558896038695081045407781954184449869756266372229844218850185051705317510877068429121437188042079501484544186835665106043343608571455121914351753387771289155764977029593114529785601067021494391207086147759118527684180125273422065754874685198958816789645521504330100270430087915899457015375239980242816184173869573522216419019800940599269669863829151213919973302127936105139656802811441655541070200808110735880533957951416924695111837708752576692175132255213504008564521097710747822598669835271855452907530344738693108650657108750464492090008446692103847857540877357917813669499406060802390492273133153520014798323795948826260033189979445477427768253447052870159846218289197527733510923892077839399781298998651792179409405636998009033469175921684805191139038725625095773616013033195850796942080778042067762921973794962778846963242399779841647200381325890705347361377951563152924123548841825626465615844397250016363005650550541976110231473816733142153494787114427974473022363312995128040461851818566651139577133080320144754977398168442672323851106955852397959079666797272446756065680655281744161956801250276965866220112639555967561299094861916539106512174203168471490505485925344430607498582219270609986267083684229940995322898849142626363962200350827004535129544770251878882408159177006638338600551972119151526383520198727224555643147901737212216386721304366560846124414299402098098425706992779693601972276907433300027532671674637259278621867506323324126281047626299436997495504035545596148844630154397758111799913859636338631998659915217011441219335563752385604642504087910169845620742109323447174816594281415331077677439746844581485117442785286498571325624605165709828447130400040410243363695943829111374972934597488844415003115984824771763510642340773808449930918380900412122294897900654856381797898257365333577786279826799722200535212477472287527639092651269053946587447194847420398858292861235275915234500403002797066611281773680440388813467589544547343696184343410178962981228377753765892701577058568451185770832804999310153397755013667718616823471672485400544842620358781463578177301766312054684052987624285534228879388989626870853223238000780845776690571427190677692245619982513346921070336412867705074252571339708677222635951068329559327590784826664634620730094589343700371320699957881320934279392047202526881356787749595918055818895987268065813166233282465926367297204130038168809824909120437685204304901561924148305910010210801853901494705689554406940013576855016779741903127499626870312245489470222436039065143459713783195923624988545143625600776766350129353127135970183187173585164513988239929203525978423573163310006703382653348925635838773810114157526990782715274733709785331501486760628557629384763373127192976235218973837579193224018377713979007693965266284304910712244207180277582210899237773546826012353240056808638881161173312013177421862625632258328704122089489853224825648274077455744634698650853545079758850256059389424718724105709347281294049148440328785423626414036499137072149246184840131866144067072727544392223866068829265614115279834036414501126085910428968174789690673251300869287007631828287151627539144257983736052155518288007120418893300359797830418694113938519732445302283237678037797319654689121487932315530305010076526430756043406271808059845788431029605736125756527259885713669792808853645737340592830594582274850637914991744495899097999281061389578774202182446697262563584657633793014755863255277139845400838815493836977670728410085666895987711690371999877584356159763576128396312231614440825668142160222720437574383323843200352606574804721654708863504242467886646328657579755042392034881137724423473116159852697499583533870742800800705661191860884173875938900657516181733719689205546364695016594918532212320576462543116148996421118183588526471438052689821086845019125659333703216228405745089979366796899066519761026255486472124510262381149184973160962262246294129963319004117787325886096214598650430052386105882083433088284675937125986553461227293971512173443578211992916330715843693765857828007009157130481049494051354561227554047544032567214258877310811023684469789717437774168981619172083537183810004643349974499515929558346571430510313146341972399932164411271267149617001718982806232590856225097920098077036831936903407469656680936309579453420133650144806553071786924213843283636435593733836255497832195762034211405469460383620730189495263159257466267872360826771634790253939163953149769775078533877863790639843268979607536322569137033372809720304648002268928833301626888527527632666986185313049868218949976699271813408116479301610832134019794042884060132100009956013740735142943485651060143081438643574107490235197165124999685144178075690264694540573499558402461721173775285948180442182594106786626967805613328202983535322193379138637614312455688023544612032092604071382089201055763230567519100726835259789118613181084014059497443174626231750010707575537763235465480108846702090146036949894282297754141507684003973970391549599443128017397085064823441473411610722435574367574959982832851367542829662124732313074233532098026844719204933951350541992801233526183595026538928921927270652379209338085282949048373039779512116193271233148944939395971519863484672348784653631823122629457094876831880021421333443824002872952700987068770813919888510910161555589960761571059124903342383757304955874949111719446759446676823152845191307192644680630144361265958621674737768716444103309855432369005019084197160582975438944694434605702432381663523374812023845020845589990625881685736112231403319850758733513541973659467795700651322096762101457977497297030783266527972527596863587487557985114463607205881053171730747145375506689404003604470254807529050557625732704459226962600787540268121591095320500764375941499115756214978565132950232410748590651254691582789703872959593470959678306236604259996286496731279770385097313024841147273771068250193413472713731572579930522220317447822352495638625920275405213068278660673668484305057128068101518206519712808633121375890627401941331013705079505209238125111174527308159696689378764680921673786821684523935471038520242785195142229521012090487495204690051386516704466207600713108649310996818516982470204193591302870980029489833577152984999639269971588873024713914785431986023399794897510482323970545215955274089455180868547794930951508217741709484388083374283745150229079407832500538920279402852254509968477814505583123942364142656854941663635024641042710866274435953616901293515716969303644407484019642879446223869610769444783658768340520877897519464422719202189359460852781688850441449737721637914565293482831099098244923685881008076261386353228820185336037083207496894423895294795782149398672978995453999902843307619925106256351350870318299655492066865759705603846064686023079500258739305864897895941010153334277030570471590931326172177116119257277470838415426918188664651479197304794905530003277252624574898610785033963349389052030224109055307086586960012897628748191759115018090322473575488610873317147552046808104910102251138609664934975675435478680787879633302614870326334817657438843456871723654703892375069166277724319804379997863440670677485514005525300260630731051441450393991545860403623202091685816537721059901366569908194965097820309657594998883688065673514352099689560825152123616434127604521804611029635164433142268800393546048222410521873383157769400885231921607152600855435761970989953031411774069226110668412664539041707809021449727168182705641860607345459287167723034055345030339769362493722040256715745578825774505715208683529230837232702066858438951104418381309695172152426707619639925581024827733233913881274106282159386591210184568921788586942329248456838891499154076306770059217056646076398743813531586504808450741238277367353000909701601796074883183054807409913277866187203559261844704314645257217711987138799114725368108035674512742899472489266233638825543097891182289824920004167935668641683402113983423792803495797160768181741681730287969451742583939707424141298985814927039517190944398592529833147304488980007401227216043432118196534547147730455330763903645527188210592553705488019963613742483804055041960960935655726730537496452091894745341990734251128907187088345383457838723727995221371043238770178967481577702745366771081575558590214465402496853450825793723516259318296211439358226217141485328684827343003017016276056865423137591352698682467469834705126563293109525782688653296503033108306402865547246521252048986492636467974639928748269024547516776216283028734042630208755649630590458401684170933687854461788894148765838299370931131012038327700973731768076128247854935285665691508643938866584897164998149846847456436250418183681480860110112310399864121445084070683624069714590099136322323989745986768753044124128606177064919550714415023256471598359494365418905565836014688347468253294027345584440595010124509293697310262384818465533587753379719015176717750375078622019385044107023146944471448564022350613452346800096845088935042866714591170581442533429700976795781900888502683998194755901804369500318127499723773738224731395969966429846833017328801011888163306217342771305672535526488176637436364792479990850257542105006255226310436090263675416338073150583570672670525497650590067000768082618875700544483391102022924760659557268253763124840519097851663314863324704482518106447648675048670346749443056541617720223730540370743080746434688387973514331774877177839398528236937686976297981784328878152431379540180872492547046386393434291050886905748211366099153132585068756061364648863427980612196656427198210399940217669039645690507927649091929012764626063338906196008352239940434872237943160308333880041617686583109940389955699083957136879185234383241418266547019650004822039560012395935240712405645693742451181006772866504104330209789038754096647508543638098879463956890717516703927488906753485050027198879906576434706489517504435983140686902638995478038938441118552625016228558396908107253515533864844026416038653348751206476083723988749044978034121531653798286296947790177740240580122423950663715826270855892805851329153160024387152280265533744885758475567581772091984420555013516881447639383168469106871288381801809093094365757053498460168853706779735255513316989252598659737718434980873502427092657099778162201139550614153722370102431341899774991181929205410880238390906212016801869492345420823672101238509330743545704162372810756434139217790792509523423046323692696768499622681307232386648528738206812405603531090514657605394224104364375232982283146215992052295879205540374505622386127027592069783713941966310315525160903790820008206936170382011987511902075420358413219198485386291095953009334972635447876761420303449474537645780528061181257076885027193621725782069798640239437640424760907187681335788048273203717965014687462166146835286448059413612996433443115731524914783865876060144736409970110599731787149569644214083794251205666686637638804705309053316592709314113544703663115601052125934094944660683035843442282890244047346002432169267353204977965898836929349044186478508724903488651400515395046764272178060232394783187022288176244516434354566540894648692822908393455347482845184265772687229398196827358591359499371488676155719778990499417808141354389844459970176884110982589012836895377584889338219833162012450910474595547016138462629451964106213767920718274225331131091747149919235898689840625081787434740127595701685906362542441784080712809297471621756096919422432904698841466600724676192323620636502022615565409765000810270104105204260635840994336628863096467947703343824833278196578848631703678298327064402284994468142118437094992903793197086604477735386757965202051412955688203856017362341561487966508355279054747594284535460896451518680931544681215217818321164729819817208580633702416609083266500748214317442188641400528512827422673300758963884135491664276817748574886846149010310772437573093286481249854829360824111319191054978166539193636948826969488025749810708451111215756826330970576411236349686801599997901539353404593200839589094760852247927096252490280001173753182449563302472296271341657371316412992124298737503854293302013165518642407125012685011603418896109141737658689139376440938242068777580758592635522097029901872445396357471201123032259944916130058676869299706992104112786858816611212860379382289681309657631699798678528800149484810368111087403269932354147412952954097833138399899576899440343391024997274168982563476657810104368221739106367625960774827999053861172717273206175303133965929519232392596896353656934379852586145384587921836728087048494136269129168292513859404601785326011068693410253978246178976565394615197654549316965580884513452897062107532363837887727171943197901699249562075478112062082770061525095898215522187650622493064037105813723986967103734032221613274373088918032505051391228034093768676967073356667988862650959853322510769225848378696659639428938997485990988128458973053591794587598225160179392455345697305693912787670534670716659003598843268748282349025512368077619494792468211488307030837890537945716865234474195642321335826621700349715932444953332587587438779987943723104497088967540707453166184745987806187219875085892540077706787086075536839790641369611303700303154545453154563959343859744519436603478882983110583237693556220828040278772025243706046164880905086848652473438493586028964567381110879429776015448987157031211798638107223855315132970223655171503893031192052509093368444867321013689065838693329521266100295536835309487756655670324792918635242285513868275815225116893309246119040245251143342686306497746233899432573511705896565115781534970223220702078266104583431535409721295774628659414916231301925025457037901619561640354484178411112249569097705647241271956562531104183772322261294986083512299729030074728155284026279730531395523513921554363052387332993948876053994575204863477492822355851228852570963863076958290222814341694906715571912689839371622277690385995901860745225733503604133346056709003929691938092375067744347406914834704322680109231397526981253016258334641714517299459034858436752777935356602660294211598639122552197124079888406774330160577930425444391937089088816469339420150723667633306481333071110896972273879690910689146128215190991625860933169273309286933176937259925172613417409965721485036044043440565656382957379707801800552458447779083837602927149242837643819716819693372775350899323913649345439947401252828459645727988175112051416047782436837838180909296175448047407399523916908459921020047624248011638330902251281386603543262315438635942418337399990566289412892250727030120688402943288074680799362835820518807128203236752618187104938353724136182018584984422358738104839774345230801008397385903010556661620410864214038435523154408273986759826216643710517956975680389351607385981756432022268081576912168048045208770687574310309626088231815762804916838631878916731007077693619735211573395279897254205622078971478944108639232331207349772966704178899968612690080444546493231903949538313339441574454390357497926075988697450513031090653141414648585422619987357325746989692242077446693824582257078988538550664113689355117301740322837229512844466340751706183913473164580532631221374817625149291885139838168434928612541762636082700049501689196449247467509911813809496139461769447293586347353155329093110551656526257326102153371418125151598041167064896559716919839351671840304493044973581882439559071778679951289138719961679192110034285046758347049713458487996168179381892452938988165482204637776965143594851847851414613371186627170102954170677825472161365748213401754246189539202397884345540670765224870842220518120236740247749629662548944661718686279998521744280748264537085296466238309132174225044327715839379418986276279852154442567988461556737930142167950085480534023232513945376115205389628945044335148364770865331897169079238300227619125622037396992637524414753581518120344631984840575002459514730757890662977199163277165438704351725164530481730542360580511342827732076383078076966303972444804551425574311557026555524228406233972140906583533690519069439638146691527274622813968854145648210611785122472670898623510879453800867006151249876168903332148312473293532483951326333627761575097361278865527555340570113718605578671609032138089296765965481989430337843090504759794779462825531941844793878343928086570030696017894704333189365370730532473255987428610223791983156473958277982206410620939245086287566635121775265984727702916879490487694656164248535365009126912488102713411146931442601440786858383847799817252407355643131461173479153076349785509880609848071046259774139537085370905735524034460073279533806597397189595669984627372498045624570510884699597217345124982716631287886885257683249807180991459796960734006053042367663072831875672831411938254357114315831511148585463715909588608147057246885957138696756321870638737499314718468043058098736293002374974472794411025822171684897858505079311665140477181261832411255014397990814228059294140534617932518623808856947387820955022432167062253129780143258179183301951267914575307947882523291470606801620272653190943242016978461372768859386906936685364408791440906242805024144971896485732364766252823363161960314569774082927936726730048598436916731911162624724516504189676158141416335670816008669538471975710257535252445268088654708580340044635218751867231148078815348912674004302959314840315470282932979332317122610313393930827657753639840622993921167599917236246342380124260663218367322537671715878340247754005635319519292118268526456269692838595073961554096858483509853993928215102759054511738178467346972548148536490090468581429633144566463700953643637683175897787091553051923031794120116610393640652774912399548363626814988249506001852783575216526245533207094148480581839294979511126776814768344194743690041807780372299499685987469241456111410604165657266282584877413517610074006362900398752765954692629593033132558040781990283115436673765985596026843033087781870234389822384891848791812619884002909121486788320939763912524505521347207327966516177359754834113002659208664808234364964634032539838734376865984373837716986316378505954735268175828225851674815281080137807099188534373030676419044564396683520538748431507734923485757324017088519608336003117109199727133387699916562737644933699207651809538983011201466102222388236006426330799020100352310518980344570037489743765155508604659387502330889897167701278852733106004914185585004907018065884281734847773913996200359989139512690723835074646671955165524167433480560613434649540131109830876387932838189068361556711376955786094612478241029957339308432748909415306146022740702429645516818195463118888204754849673641689328856825587820171269181818002762811074504842880663245998440506957795911276490454506715960283573319813192646008988052512295038634202287256779921834660969716409354625691058386241878168735793258114002106991317699236537614955970428495397639694755599860937415391076085805762666346135143693393539835125007189451119089506267659025715420484744267469713407369673426436792608961972128120125146388246045572169654559587823695587138389394498994043684262033212360261901556364527472864581112197621670311199180028587339886369736479614494987993587853278186768872969855940240848938100710639767493953829612097303779064660304117163175370276410708517498363599767386293407883246198308283034724142672422193381877195519172786293110443115642365725828240783897168856644038711708422759853291636301587284425935645691587318944896470190602657477621123935301419029824804232532717643985332073642706756244178276091245141133119509426646727290776735557325724641070774635419770692928680816137498926672627204373480322896964410533385934696552990228938417302754926383676105456260638371839357262563041169925520103944426471266979326249644673468530493144573861740815779777139056468294741245118982657714955675071065823203928739483521885522285438400307724191789677909196412390120675257618556049918954161184747872730610626265858497050601299769439851665321642073857348934211164040952413225375200050539549300438678796629365455682095833401748591857365986070269407026940245589073602890558309657829527621587508621847642108754309977031425820847327600485654681489011943060366907317212493576994661652862787751983517707653942426068111041405471229564246829202061515916038278368581565619519544367180147132783242146550304351453044175287099245755656731257128950031672276223517491216701398637410640184674330466873794780545810172545420073444372043514591026983701534279555565613448477693735117338909014571760490669770511146513070180737693772088635060641174274724629443575869500036454280124150045163531107489649458581024495578469416867888141639386106848958800240511324222407395932844330596207844122166135203907238482670480757064743318462610612987351679579515647750518580683498758864430160250527445992056019986287155565677437114809923653156992399532150083603522830289461503052650244648960527968977612404202257263393685520957314756247535679618640122966149075592203055558229449986799837268303170029836550413236114800924034840479210167640113154818530491944020043121831560260967601490105037705026927200733069992338655717833577781304321751777956206676769091675902686558554274579969761327531449097034080005387782474562283867390396491957214196798471692407774203077567755105618217269965436395188930471164619198617090433962140541623996129970237277498136906925506046610057551250849648474319800070671875291560789415465686979526468507724106886731449010785545703385437708487772256799922101817105087604715123082119491668607485376573551828457541446143869052243655483510959222318828473318845575826423280776448012610879130830995194651117758822325041846911238880818794691564396152675643923945943630897355472843561252626475949594431149994419067844291995906494744985345311604541265508599187324400760792391940792893517220154267108584366823162033796483548617317520135015955403177641276892608724327663729690583189847548714113603650076818944550757964209853948823244681433756899645577209847962198412718557440362627242667609465641326224225026103540779237563223288445824753645009794005625843757402426223205444363583853219086428723392971078731100897945450123636937810464050773253359793477760168430455915446106049363758233883649595807691749372171766121372639613070724271447618389702820101339271474945435577178993708929160493293153072030763561310360584167149722636563907578147555630922387482967592416598526430734045740559409701600699418925210251611050470894253247963674246396778379619755443257553588695022079250965344470726837945405873996346699987770252114255442601602823984602988353278727040596834447946469402241583418395866741305295764266545057051882678271952925636037377750699353766869363921657862884727542863159808910236514428360762204099326049514023374025435765175418047456934830783935422710969795270676099479075387379261466543671862768678625627280031487214570602035022490782633811327786099073836965884263343730812784119228219603763270951137127720581799329007547793984858098746481680570906386292606792945752406831139601522009271531841638107610940514168703071558380206813801504303557054051648503097744023344367170798049739697033445207006970575889349061956760391596244003744454499957091089176878887097284421187545295485252111231354436026540945460252035809071047477386070491240035718195734385685265570726102156021629943430884406743845163493348077651572550855358558614318302791218888605426772955154762179692751930372743994961435111320843105635835817280441714351249125766920987259415381962628616565772995620636249855498642101279569239632302999091892301920388383638571862913799859912150234397507120453544290890611053648751454770496702764403779671253852362744702006997984274899697999073462542004574952715544459341246598916431627366180368699646085821751704350117768468174023772993700759451420756288220944271681416608368899531441564677264550150687745053010725460932673916475011109436303806706788938710330806649024225081690297499236440345425476615215239413049678820401187312794379163264837928231688494188443241855917524184340849637003166786541321527458880087094582861179706358886131068462537079886686406769000104528398179349427649499213820107277322040523322291034037187753247768805062638145159369974838903399198711407114764613719492863848899772663152903757604509508445324968883287776967148425560470381705828117663565163305010890194110551542531596360261691114322918221327178966177316414002634747214153614808408894332048252287641227390413220626409437979695283166100333404318922277507061619100421991863031610658847821862325052813761657341617318884261170792662620053421252418481302743588155936168472910289646167987150217810591615189139386509754555632928639453800990413401332762494465548124238901987081554668443222999762597012760652801710835677134321937270227684411066081642298922755488833303144456318319255119244792606249098866024929500436841380674359754746565500320851049759734300207281374418333603624932353831838631430198225463054075515592464649015190523379602501493751253561253714719908650613352820635848363543446010390358560622628673102729225416453731437973987955470689919251897726127885427105363748872644734000532124149653340140711090041811806972387051676009988877604796764671895617660957864779076473000359492266270720882226050104597847661866943277736956329092421186624760801445713347992494789323960050706785357495506327178517483184858413289120052903382688472989893961845696748611891128539404963694601849378744611857896842273668906657574523632677979039894211838567094207580438487840298992116001548097643614536328646676714534953046649426962399239396817739690479089438671042897659171375722140838936696191373619150483248428016981211395947566133539510245787891627613571458088922042953923317844548245040514522737463776298848880928986500325499421737154780966841860125221229077300354522498585321355898243282222594593141860166542578005841531518251900749689537928063460984580448911730826796938289337616721756136526079836240725827204482772105440104649216354600135202506998680587992483408544252607992641696130191632450583324749384945525662015403625987927261320398961451351120688243436921224801734190198281742331825170588684542626611562915796196846828179022038272769532025416399605272623432455858297930249573558161729770660222529763671668542123548545609297083924449945393238125137872329803118326609731145729242643606413338756222079096072305889112429931380907860999121435998416263455676112495376176979473809046932057280293206984818115223641295235216018384646704796534096178050846281181056876313846577310340015931731818197623116628416733770205477963552256097732478303738104785328645844027391064401704566480361241890578188068956697966230368550818092733523321136378429426528185297332592356834229012105434844372011122024198015898433728854370519924169624015940541400792058123412673428153679514366018609885059855992809472791778816884867500337924781591751640163410098007620923294770735856016003854703490920569444951327236645745353918141293824227399764747440268245287244228383734776270227361508671126434636287770644496308264921990017901787138592636919206150928552964354521465876067527421842821524860685637465454210492212865275663126479422367275796037205606460014981167883926128399485250799501164454872015572364013369633597866661533892107100025963256116967229703816863504885753396436702147999971883988070444853056328216200092392435284602850603338860947129309786188363783327710371314884092148550077730063876794898542841757693347062001889769180446435104589164756837052322428874797014534148313712540643379861275434567904022180111754801866516397260258269201723654766508654494023056259375811114403421032829161654193778206845106157397769258926493038446342201756300071647735706092760620905486030984197516731765600656259434180966698293404118342809883669606568679805128418013369253454564248324204507507640636688417254501750972813574039601144152240169661127907017297795932325281241646517887847274332361978432260978400158588944522130513965693387194913509435022737061668340268380923015026448003940954785151878106315026908382374072363032177532291577846701848977749360263171235049179767520714764511604650894956532019015932105651975034045016453604845711204247943947623687338535021353020249796403359352649754355064514010783550500811543129321068219118000553732465805146627283298865478279898233918847653508607092489607981381246357000961863692041729977130006867110344896346910132274346583210218362213599352425424866147016762017075042175365229548454244522955697243549303610225204466412318381327620892958599537335133971881005140420153915167921427532398568759908016518819462071133815483121113990644776465290935080407292821598178338008616479510804774449768478100633218024566269247456858867806263096118594434813955539028649418700581657083327828316864503096269867032771401323604031846369506545356364061417121497268437942582352960861206268079767152190427427905745470265900329798184069750892598764655663092263652148502534472925807889546509656668489106876089678925522285603314638292015649855629268918237133192656708430076441444891981499424542240491706821246511159156914492033470055478106998619226687698244143749673804663100880547796490156470738837038064546571945744279970470955095970903798581672225124224848046113564772992203793480589720453443070565063595366292558921988737180709419546775648469161518427138417583086569745227808973426346797498646159121303148621285680831431178700736480182267716233970627399206136691705656906070968751793342218599509415772715758050162856036562733025666014100937666486816204884658489368552239141038074786869121136806643033837969512944826891542485233348016134637955059473654978665684221273793177854301468849215223838508076333157730662909178806344614004829407343349801990967019344656066345434837909305085713344635463022974566676124016767135030006713594610033996271346414391712129261033320003206698996081324149716808646661731973678673738874961605505552142865221333404305759479778083569416295561779795805412174417785192341318806511192182062379407770413426543026801248867807739519650028183322834378449571808750443481390946789826121666203040723443787505644666828866592142952170533645460887456068615061450489770553074392532981369729536974525808336201350668474108050098987485391725455106269378531225170023476276114146642595727024306522931045719356173353554141915830971129044515492078290184483727351377294707584883753729733941474858383232717983815266039304089212243764997151663489415288518570039467368055609464020474405064984710475401587919574073693930806098426364451703478730892520716506755210015721299834835609077425902601229404421231392275367326270447400348480437348427373521932185584010056289953246543718200259030716967563118944135659655870057008947965087296180041555736023242707769193564557089345348928137955759035800507983504559687512025903848466956951903815511236652356257933153257741622677758761229749494598328821219968456663352462564745734783902469027746242080713577389052908876995021611381983847542054649433428753327225894049857353430122557436261385506486332565261227673293748821505196506666710977345500512238862022597056471973289124833344952761945574261119700706853868237815350232713418597790162957547136054647466818341868476031040955857390107896386410650676546683722018104735580986715766397448661871904482218777753863331137648488237915317786353808925685779430220189254075548472225483532371996947945879434046068380531359246646629522365780575502974583216694813575785515700976003069298393938998049492108976360533922187266352787423024436895873661160953647371864804124290594795717416228743528905096368824487732595468311615813741930242767717574559484980178717883660373133447516039614474404577952628536707409400802575848102388426634801447120907185676360237348851346728828259123221511373414288524215273555614227192882639902487146549931267972172141027927011409166260551791374970268543787734731043650990211899767859408699566306003397906586152399849907591747513085521151276710412409846176819935388919403471863930791384444468641210303625904349887697116275435381452523685727499265310179026280040084300375695681647928013337627571458588228685586620181669190017873731950742153278142670297907541189422136078805035515384371708421724061520868569714918861466476288238715361537160591418287685607684875228296892844663535300246956696985125619707918223948739129409814861496920376928147989593263972131220093142161679973592798153210436133004105569024369814269416907454846107119421030333428785963145131876363411358831013961769416890989561984870026641898779372896187018267930660677458495251860991660243196439241408877820897649877334681468792397934185483978175084382608517189120800003672248949583509793918915092836078583318057033239774417161424567015958840528928919836941881244925472855655308709162544946135173070166861026916668122663970579811275054489309650874683301993317990403772035349275179280399005576248588461308603084509376582101636671123664131575251800224012364130988006296075626663806420989741729871441508198398384055149759872884378076655266178445194406797586444701766527994456004435811832469230340307207348222856143095183255200455478617269166229607665100274021204163405636258209957149769398274985609934180562029546678159183587894127934895519170880885519630366840648715454497900924386245489013248350818323180403243375421746393874377775105175649065778713764707491795486888952996434763667863421212406825510938705455526026040817562916333658549569993022261013491530742706923768543192558371392648244252486325076063070212497795390700784150812186631259737880083834384917896635319006279786428824296929851742363813280363944950503352245145688287385922990672964223204838321252511739525982410837638868541368734610579413741918060551212745390580247001407195234612353026617375701720738170016975940740448148373431092785398815284792077862174586484653471992536947383058234455143404469067860559036439876002196055611260472104705986861047828620945815933974239301672417976200780320025572951387816505377220364607919481603386227837040277737700558679833004391758076816064977280355490427110779737118711045283573743378881268496148766829913630743012077220019723277678279828937814510358344624014177854104306625117349752545945058310532499128283460381327015111490032759084113068615830317530835214869439532193119350659057865813464033918013732530563209689503927921465381278347052478731511322231170583529394594189659558405431199641964675047409242894648705816856832803222405451395063729789437777298496943318491575215277628997465014695131426648457739520862715904069720080350283758475427778599777539380117314127492432370693458230761983638501841593451777457146203507341411602070932873426477100799950018096222386184627950815922676710276331464053465419445964120405254387375353181351180092646243507807177494955232216022731301028720556790807482070640471245618683028558688830050802854535735518781143719427093907745141501846793448560119616523445357882575169161296236804627488567034572272376985974891834674371534278347678295289208356696686326659198239930567526462508035280732014618433403125508499036581291553058976965790477882103034381454265847940713274711749076438646775917452346661182566169849402589301620148355618339123126009615439346150733138829801093148114216181976154862923145230617466760743808110544809405061830620739534979160736315504293895671777437580434318937010983338667671116137731414383030607898119546851178285875648483982032653363235752693504588658846592152720597962555853502518660344283512818568125834456639074980410566203503652989544316015155507564795486931823205077588464350991213135659025544517965161326826601745749116960673214339669394728457569159953729114573808209722139188444794544014347676078121718170371104114859406722978442137039979735984390586520084687779234024385940711931479106115967669739634568777155445617549783646234517415962410058899128856517857159389830704308557576560719062043248583862532170460344718639074503959341300211013212252443350660529429355160674950127519837219854018485252742875335710537492658882128126887023160576361483445603136683780404123409105725240069347840409632136430705586190246347832912209724711683700517480175568440960184449115877248412834672514948535613972761882831863972059884103706002188165895506563438752238228037045167218498392768797906214465857840692929310833052556360669169183992032802289159627245716795332222743820757506862144055700678145607972495399423519355232714206809543686017066193282386199223626900670737513165543722696434097312166659868196345119043678161267917122130008909114473134338207511445193624855707407235226233370199768623670393744497003502311108142715076523204911845363130510073424495606816996179039667825746518511647908650813139947424277752640883019296314493272949530715199544474626709095521261260147995959286428863310434248262192694666170260896220642731996292856336273905711059430219562229555304905656247285454677698013076049047581732372481027249481468083024657577368951628849997341701481479720367158793014173881089247153568520910666695098928425881236400047763428171959675860238972500263793461438530042709162744903569154190410555987621472296501502531750709308836397639749785657756295536293534927424088411750248808867841014548944102487134462983559164436557865532864044140059575011694631351719331833854874145479996139241482452447154370825823873571674393155759696398797428146772756226262459668658993128840805469960583984228465671059771148039493082154392986222336217225632931833777760924465246287605731421061407470572421042472775248510016513155752018555060428544809742134864846390035221053927896144324887382381196142184722933215835415081693977274777076441004887502348504845513649459427406019175184947091850786539689799536062728969275857877123135491511205576021416848328290832130165953915967677154853013484163848734307608205477210152038582749683223543132703518753826158916592153789460382259144444410087457180219200908707991296505762778238972186492149673200842154499433299379241746398921018072875502721391089983147290189436071313048109535218387936824773716794102957134247916701068672643094250007127466928839792036897370364036775311722613431289798470302810973049377933890058534099143598399862951027016995018715593134740467693549327743994313914264100974681044059944522748098247011543812219635459973778207530838255482559490816341233651119013773493555355076130531880725564666335918829109967596825448740144608647225237754746599538241422313446212958324160032219877192741743532794597476249398099366461062722088484268819426565600552869194166242413499416751605145566889725958782139087331501519968382886913053685771712834814021444171790222144329356795502139396626900991586465529831369529851348655016012842179954770029288243666602283302198871147642569991119947103308158838241676503881907754670730325679653654910560812825214431173797795575483304313864498266927463771728365384530745660426603324913237460713908041204962871668082305053367739097964335594004458577262825233632076023299120362200788995502252086490095798847861543362913024447874036818306892514822690564010932531498198976288539200883910616793343590297684154211593658407772018427575203048862122845521373518854105070891762077823735356658487222297779061816777904442204859818701020706322296235221979803198177677997198071022374611750805792957470034808768942743360219029032321846483100388048040247242876115986348993026943114128077234475801577405551269196389381240458696882381329920487434598238277732712670052199948697572328351381591929747054723578251308296447406336977924062959394856895084776920201471086107697850685904711218188824396552307312553710328685326129412070665213297477124214799052815644159577498637746053990570872192424414467524302202062364767643904498276840587315111992887676034178604002649433126522266997158775825814648831378926669079017577651696469158943053163264612355530623795823474336655699122631013004067027292163519418406361722504663833768169881873056177162157259832374866109339628107676898849100964888691553831273321320458619457929820283419931997227623868828757088214926600454752009430660186889626075035953370358965488813275416309262312123183421058865744290158752098370524048102943768780521956989432415672768952521928167070663646282840885265219042572529058200737275584183120374587500549830354812747812557714578639197151710563603775227156344910519761640862363315902788879892667380295004418664498976217525628796525216289362294633252636929157929991396913993516840655605524215109018242121218365569932619805447479765622579549600788912706170353678691298428322423724192410177114242905532205608109942753710335262561056191633085852942921101815744178846883038646940616033427832499996794779542028225839777569170649984564813087334335444968491808287837043315068835399923325130322062543574980623332153215992090014631014990252462127454020947651800749157253928619320084233768724240258685043704353378376337055735573689918180035729959600903808533177470933019819171309562466326892499918576181380961306842905151753529078123511897290622665813500385026957473192623780889165790072509004048518772304322596066647332840774539797816928748593494549330573582248604014281981745825300265315623217779607941398161363313179523293325973877156984242704275841044671219681520382466780769327671358194397434528316778636517933942592670374887203565507487582637804361834187684580650644764938761512298740631149543379054618273193374238568667097159279661784068281103705727751018084407210633814555368845960113570962431712699060972245389123192413240413360645472466570273004570673913942175121932646662493262774332094532525432078206925229333871855702608221012610266465371280222763350699460158455188400362668075805273137492939416087296928594809561753993910073217631255832163560007365635965215933934210951400461944940299456452875457955632707280725819855334892943863860583670525731103707307441587777856100673766177722855957868687013123869916450406046577214743428247844838207760735507178656736923737314786382616952374642380154000158031702304195568686577752608290241904678756243666560737938218737961207417355840779135111611684936057672919111515811032803441121497912905038694019824332130744082915214439339182708980355215346537535161122918609662337991425450070949720952167365423661271842777729069723467568427115924108330025526769826756862555119930186971428144180359189434669339406588048174270110399494875296668958986278446446144939011748865087518753077726323682118600909757359811404948069983873355978534030892137959501025826153140044606593376474681791688200506838806639622183732724462672070069518325336574080751071392441204848258822447917213997563880229437771501956300872327385921478859693765082738127707098449075780894735647327237944841066841889448308034385778818147223248665605385514946119222027649979762215926140402487310996215022845218704029671555368346092560885210117860123834715189106889655337833668297244906161730940714816913463048572802665957495420675546893129715944702381707310195665453673569607556969890463107013645969137468511678504617133472965303511279340974671125891928257141519700458695846909282135502694609628602668246674759916971818272329178591979830120275119135882465380584211632137731757501047248773388830012765204804502894429415133441741616996578560116593904697754704121853327800769994772096289334781202600576374170511894420561104381980638860718521889374711516940280374151458030257376682714744772048882370136978711198595546332846566940848083357787008627579894590866066864124886911623962229100558957397306388882846161544197661210554195196746817950223449693760051133200491528044091734170219422044052856286186355596662268802376430115111575682784303013773275053416519166818378809964419080550290678379297420577508603544178494425499209751603526272773621285779912209022283587221681681682774526339758272403617702388562481092746061067789323943363273962095591552719100994916094389340591728590232325186962611679958197884136604548641615009121652600289791575612749476612478976437492415688677731216203823850818765282545185088248552194733577212836711848971004593362620400905944359490584528182112303598087281335333657826158784229478963289490112884884098032144787252386548816390296331717876625521567717617778627366113786195616652361854485313001189416461021877823920807143694783632029647111315169460301712321055675884573959831422288853114951891764171603463903111734157563563256116432076158622972693513634865761077136245392248341255371401628367643875745614637224831131318744115457146883316959611029963536554678961200626356166277331706165677549463341464319728857900932460874211913290867367541154026211066220165811564569493299999383253714233381025035514779442819949090921578779859948095822697931639398965029182110861273106666588258454465849393095898665801552864422437953317678798642171731444708853753657771429681473224996073913175854387689661047300332931537028646340920956622266648481096362768866735505851138253563289901818774931912296323923580650801665566481342428334291648085209360085099466504402450325888332496334301237218712034811339778271086518346678757300835193929340392417261013319907534988045033281842872616077152452414570268039545429713517820548922102490660469769595701792142271506455891011505016941472638564184127418104693406286304790037591562145998158088936541111075828976340463392938459088069846230138811200420710954167605571018171022851292481938592782603943427462069278621567437430693974132707279464020371932846168980206903546532025495749739626327305526183841400701476458424259058507884968301144172778257226542982647779366182997078064840765224499442654196216190770957829540339402295124704884099592164147410345008046859295457254058402267576515509865180055796869369221590882678303682300886639387766011942786911381930767466934134599393422140009720227605208075668681031397691528208382314364410310525291672295790655956938897667555205638728295699874031334511726272476980564756040967637925835314852954395911081723651867316830654882270745473911957002073231345843378090610085971616101406122633240321109690431756272125162777262725587191951015985605121824881246397950348798831403527199085455195451334560194274384045049885843398464439423856519196690821910524434821741572312450959345621763152714955438097975930034734215170305790420218015793412408025846691648292701659938015785849769584080901023825275423224994110157696711345278650457612997125984893414104509628359222588696716772271060822028254086322998618026901451542307030955407201026482018957577439223081774909517784094674695087654877469516427187103190479529617813992649321528717772907439594899795455482996429194961131780097243556562667443249965927926359308348787443807916206186729960806569987171247011606933621257185593417090837862084291891740832947708891456622175235496056818795919078434760992125765940985431403333606051901110354780155661596128870467752773433987849513078617004314019712954005496464203671027078987900893226160774520352100363522734759368276304737785739198816500750291739987868028992006810561285319656019635939861573510628416377133769548506551372688082935474941771049754900907803871056534815882455234644435157060138878346788120746661406365955370532454139543698836937837389348829348296856853064780469454125182357246260219941810616370333631971314535067670643402108389943386168392214751358176357006857016400663971818570650971432138222201553680631982900225689761179785138570022226943279850883347682850514103967782227104769368971212943709255031658158708987964252828062563421469486998953602551165672290690153714639435194631616459729102350125569328326382596837238326654903428469646752912895534663928450757000717819930828913243804726578726779137890301568215536370567578729959064361172113400486279799059582974800304091114477544331719094871130006532806485022881094448732413740834966379758855438552061663300014435056826142272915847279736615265901963431027724797338584019691357904679231778524161866792522679048131083733355210909004153641351555887267235762725660132527200899760799899122430911770484560339643218763612744201947141128203002743289025773649045437281504329324029989440583300956804299797000352434450324469849434661089535202926570991319877895907063132511442215472560459656115245994038250265625828921819725591518656149627902005407319096911821096103307153520739282478320711803813840447158754872545099357506806708957769884172411898654010882304803879790145775652925648755377038708282653766082430999836942416794215087928163674468229256186417068257725012892751833445757400703967951145340864759061779556469040510556746115971462388747381763277482943954957639398562713509474735228304092560078270910355573496895430600436517197495607312433412803721104897730087596805568520661582279314064901385682579901117580352721516288233539426131617687020330369766801059520867214005064271770472825909002902788818931819651773461972671668081774728402834401491638447383955369701852773594249726587837566126239688764275092376070711706491544717252674668906303944159991644043689594252989209626317318537818607546325940804489224683637450574394539096059615678715072621508018466260286384433948910682139409055052579547639051995393461947975664803103134030595116509576035999474877963418689086341118361616044893746991808007424490592291513630140227259766125769314743752054956625574026590380248886303793089539156193046903442516169823316313637173137475618406083717465380105577509606029776719962543804169409084549907257663313680854428698287661643371669763370764247302372088216824320457504332672638365176006374938171449488619349542767904805658114021943788399690901808815566183184777364912334910475680175850935377607980849125713564913692096286323756976935415420395493214295995955525328576448198485079842122153478670108825479815389899645856938600870018900583566924436847991657172596454432537660834838573215719659802589480006363259787764038667577812983764502338808893645634009283652088271837025251492568071752667088640743614183820804237553216443367738108800754934294355642413474215673219494704426056779640457378460009472526948336494860405337695029910041990019190427463814497811691802034458512040423546525729327360404239640638103371611029084148436011797837336808018779649673378905093201935904481702974673639985414400924177704953643553139822387145275633971743049088682954009482330810684592178293463654347246532685210485325122727905113556138395609832558486338165887697630716586839204986497788642775337334504533626408319153504925638657356723636773664637690850956010008731827251779861132229134153650202458189049339605756378952357716238265387758694472523680111899542062933907106650417895622077014482607659542608790641971139780746245541437543023802950376460013635655818319032009270073640004461356961219288026199506472850845179092663243781052743437018604967384480779500769092770555153902958797009685372638103021842106402558013993504690622979050908837060656683792589887685647394886396226892519198442658640126361363018223563687397117168189059063027572783984448428107978474666394366391633654199887888780537271127719613243087375193140949827327541398609730938966624364906103821779076189255621780112766128421744053213176532439152347532235033899836080498309072655012431464682549938197364356428403057596480728763981296293326194569067457697493031746880364201445270004756005077569261549697352934687495457876797291760411563864330319082883917289847908161808175616462207918171363402052688383129117251583490917724067365582819244631445216846913510283088778814642554550965027636669302165486622202110382910240741613499590151525640949130706016883893865760449884144928958794216748756905908264402937573242539541507056983879747308541287750925546130783330615366596908674937513108196737066778057666828550533013665721309303603204168244572469384246156549041166532014386466871820425309726342522072211750092746285777584293223587342225421725884984449030960135370771778967433586387782784978421580726527939404278927802106592744132291491621945789390314334455995982177208830793900952440903987639697409848620498341672000498731760211135470972474933948226692992648387017271340407832476315606815339904664041707562453777778364330396559215469924219283863709096161216624883384780520173140749536045779445687971200822742247791339047226191830999009609819483597097907780760436067742663344798939498170678918805439652497651118153357569793910882768052428884814494663856803905411465612411283071254065038648375344092985848978877685017344243341046868957028920953711580351572987260904498459529811887672122494151944291665949674870934061935641047104607493059083423225130968505025751506036381707323674292204459335625195121793941131580499808674378963590769777787675427598184863190979045498473873837390786156753530701300458449537463341065294693334996319316891334217983969303578915981590956840015125944461016906269148806591114680135139498790467714273257289184352360658179145808151860142410318858382123416633957091393310214367389091505105769518221452628601074708802400077882913598958739759202177399779832319416113849000145426641028106307968156999258685653501402760023405048381081653330286299247850985401744572815574925534002949150631657227253396572070417746418409620046017253914438158500662426549604321662037575479148428173593093749600395489953854774182247502550694107585505942419958920955167028430055776816363427168663345709854750548286246622157318999026900580969108486771409802928134635420285382135643271471615459453194205693424270940534382077642053402740863468391411251852956101944608201445442383273253599711824959591343163052631527042826701494501436570934977954359175313548681708713898320335402210386484498370756144204589650651521629015613633955562980342406613460189997099036037740817287955670262586340551781606876601904572374832254063085139558948388422209937598182221373049896198890626997349843010112391028492542347422211612401100920051692594857710917492402806981752592084433499620801361262860630780993789826080520673038308635469921760071579215963586964374898570352082228951852616663596068252539087436962724175225597654426652123115136729587807615292702898858419384219234979784341751195186783449026646705304416806140780461067725284898430359089503865177775202302751737244282225220815165885830261746994282772727917765980206711662488960883593516949350511810000004927296178727246093643473270834704821803765907013367245159245889228633811948098160954998703573407513791743608574195354472441499907660472051605737706187006435106195939419833750721125969381716675773567611024715350156807413035545877496150573124811133524396595793748722183095672196476820517352574699916026659418411713051195487452644544927552367540778108667664846103965663771343642548482956788202818556872805651238993854516467826444140423124904174467905146124542096820602805329849940251201743138736985122659361553874960058139613784565459330635130299511596864805112353443720316083702266867415600369618843011974529078004232554766719911559516351809631043652000952566784440925021576267368067224570089022783011399452878111453090082706818720502442725950118929509437965406603382265262110596678951810182422229373901261143514556963748934563309101652615896108887941809822269283130320815774968399174589832278661025965063662638437304936860758775984235645641741797030235230708968249428986483534234629238977945361590518345282886849382259746582312114791964254200040761275344647811988470562008288208706590641771806288392717327228465201243628960202367462004480686293959057838242241417542462211605120972131014954879093836967932312732582771215051015499069759316103136165837077932744836702513913755360997114618116449012424770636165053586313615965988744720820942151128359819241550281480003883045480233950027678045494551431268520955385498838565886783515044495967876331151342576763852576046978485795567310742344033905600669660712992294641908432546555747297897926524820033627546085124899205849135095405759673896335450480731099419822732818020604787443225931110909188315485890374854302475941666299084443402670112177795073968334894374682549932375611522449990054570109715090999742043694171861876754023547751507189748258002908984521424744858024274674931227359408286951412605823376114181394260284850834026131116314986908379689231494429209193479196403828069186423921371138699868726355748688891526531181956788608374043123821049982379392667588082445343994520413682034730468414085272606046495941896095582086960491544232588948426266808397031102042713466410498553573445819975115597166001872875885304708841305234073847379631469718826595349224032070782507538530013762609056524419837191798030681655496960054132847627237425336837096902750912271725479087673262634966294257081763807478546579094422521019042217168258105991084814047625137807663472232205263386563628627119587379936562392663231041831259938633746751219532199842562058757739819728319649421449923292773725793868791132976940640144726606303850526733729070965479479030834246160961739205785911334709942070355164653800763888295680723652789279346939654969887002729998977711563030315215903228551208798614344654853664253862166752424489192717771335725699523447263914837382496695135872501940925092006516163536435524000358140348538521333675400403052648547233380053238557437750663004900030542651106115662962616561654646089477518974946691480655283819525140349681409740088334241028042686982399615730269867275630508873829804087958978188279336398953733804318230428995142110631962266946183634488184032466009359110237693498850264747945986299409467117799971398952447477557560907175344042320970695771172994751768345820750794845244765125744927745819337043753672362829507290275838786718633918546465827261880056007485133810246414451364157163902939623773725653734913212463772491855705316198888771300973838822818488895958289393203710075381589820698173812804493333775411192275034860125406176786227915431115588705659528715916337530817534238704891265226902407638823026674571023719037232927362658733035587551653025487164900081490336300225269382145962041765776452730842058909072819795026286674579778621396815142831943834889121596270593905617556389819778900744405885770112984659604333834596314761647252160967362496518967708786461141224757089472849799979761762496733751372586061702671460211933070656519359560445958129800120916731480247569212035900705724261805201710775396444449703538940732231257127576741928173284699784355519543850119642292298316071964165898385025436986756171204485360697671291941357127439111586839486586011219488972471681342312482294642267985158701076935842202289500369419109087631368294530938189568461868935224549866091748765433694742939272477738339224528154874744053812942992033656832424881950466314395871019022928911913967180843118274715643465078793048551245069044715861896086981713915775182591905005930869711405268647644498006184072273759363456296138889859291938812950996378901466124560540798480956421814460902088864744622820494732595975571932872567220786009385129280419125834225393550654585010193660770539681499135984965951390003379088299835989668807157231647719529717057714602877533757213139942806987531469884012269578710815151457362175999933977846148454894346617606574753163273694245332738381178979512074079229637602117023173739163449714361522276319367556438616052610310560019254177568052668070572209703512337688214601258852163853491111700232685472849911201916267481390944878786493411483330917572137113102643859840764067282551772327783117525703622301930207556683330668173570798079519106856837350661124000389570323745512134766898429814372356826543917597852640761757048153700674988703882104562013894829140898696783827992010044691117688125886615386216707238158437844947453307783915502953088679739288233292022475082006231144453879685858403027369439136307272782400819278664638230228896088553239335385005730493007992064688180508959271183188202345919497136531032590646249788338057729147020060894505487656750707172364245460702133086254765658497045842680882794592448023857258158965556016453046514325885245145112690007293550780785955121988624654803023663713877180966481913233315096354374401399743923288334543410238047288841591995730329967617105040997304758998643841764911752826762619476578131206991441738760296840910712056313040632083857332785940343723701285372794634196116244134804684828290733550470939649459976102313394654824399276058624617716002616608156215166026001249641866771161803131345884816555799312174076970396298296785303957079286175853531541162972253148591904257658515497148310919813823669448918027409034709843568267412726384601993187479155218555827591268761581419574612198807336066757223004942851550820727897514166977402646455404913895214183400943932273711353230543429815066753429857933077586511454984376590379648505896796976681739550479698362662044452468421132153099216415769948384267595992735756627207175056365270873776294334232085294230114833878141938915503696253363523419103594262507775067513409965725869823250771676497785576272662327686039756581558630531395567212462430533877124299238428233997619319131455203763842972657260160898864563793366522026521772042782264290041499912918508254761764648382896172381204061568899029661804431494144966673721591641448004175020607960818800846764053316286020320712481523534050425973591537908125322078198918279580071481647051639492674605080149550752833774582989803793738523216036954068715818723009734439149554953772807836984276554906265433130314802123672991592712092270104095394331133020958862862210215076819663635652140154390014764315337954604671313626649929859524813625517844716720254730461899622263746286320135760222906944938098821151405885582805946100197175189644374604830068267882752041526414112875023634236665975128468822594965941370311630079569614742660957850056316760257556295142211645346508711629591532515671434993244764828550090248186716939112519493575876538675593133044400955073373561164073167827862125888927006039133705654123088114719187796583720176444544303488008652166407071898972349354065493665089938082274341669764983829368523845210218706209246335853383804166637916233282253885847952454308307451024253161535392649177000746447525506359746924103207403398351256158497016249420114130176487790018110958329214945493953681511547602959850431674996618341154258028920788536277350833101556848636150050346647461890490335903558185142217561388677695367530805142373088081686879708338915741016635281638292744940618756448640357877048646159897758954457064833238632728501703596647852513048783548300232309717385518392657307723442716414240483018862341909334747250753668892853634020513292570323279601659475804850364450721836764400518828704459928499725649517682982334039946145674174779294163617308960821977387091187462893133093575616681189156558027796308301450865668444695138875806145414208733645257796138580665558076466486899804866011368334904670596198276258366593979858316263615750827302970448430832138936134717107717198338924478587172517892555648283657144131888192280751350502427049884949345573557764527557402232131391694466128289144636557056069067920568295329710815368577064501845086694506026242524851403995480318882589722437954398557111594462203666333466844361263901811604082558981769577632188232825474593771834968592702830758084358239272035036256544438039380363741422828952764396684647707381559698017783988515742756061116020156016828101969342277344183911124264572769473190000063128152244413465336554206761002231290487295725367600883075329022397199642521930304146103789939776984911319051050608280109766501962582655170086245070569393591257700880518660053131536715810473017113338201768801703823618953103025060920698940411864216163411481132246169884040698198223409281680002497809374684585060920560862148156312001586540307913378259766076026688995741555031832703660005234065896203357592488319629867996231322594762145989974112853804927972551400468146600987505058208710380880597004223127770507649367249272789666954303332656049986995650891605324504820420852493061257514366660874896966208427275116667301439949451618754860373321797682648919354752187749264143414727369060240769360674748983616803012768878308848652503834518587062327425959017237201209215271428944668591822594544826227154298987606265010780546297116786027972420004322420125707893779949517286039044754739328059079300260276041055418629838859947916995865679706837603920300452823713315923072459226885763586595022742103198038430959049478951058689534045838419627729498782995906745219060368205875888419203844562700850490908414219587956280033768847773872030125426167229108140373199124509698526474832533609813582150273423352023019539161475642545459440027518025285116425072210338182535787886372804898475196053781381965954789711873433770452141724401554638745637327853054265506311835326234927280507072578614887131677904415798395727736930473531622243836503981595037600038691497124669603742538932191065910945161300354395731803256112086160769705319522053642590856569569637185205195265387439911520055240800099146419968935172594054297740203390330283750792333323970273107942644635435183920121537872052047276738182657507722553080061014897250768529430607410190830369705957673755509691798681369749218655084231775011410129426447549596234641876198231154423324614370935718200225919263236935910372870198181646909410896578496283393592073346376616643359364229910106633228093092722960241842610395680275116365492372551769848998871404177610353834069890347044565110036017489450651460301407149604302492792385346623246544513951473683324261434329043098933481990265917190137721688405438066836298372194858641068384429829870929717324273585070358971744314556418997158070100007318141967804882861978420293217320300436935210496635782614110753012734305839251230947888755437751157567245064149994091974416261983233309094808581533791669725590534748615230943942625428534586322024364813220302701991220574587601329816825619189241332826873074075981811266068490843436726427120750871058992394408158269873343233576862499916341200588859644106076950649966677662694814081838517301697738918738965440284000335608167224699285100872328755148893884597749220286856610913886287008934204152341067282919108023354454298550020874128545647976945392986059968180540496527830703700103856826523569188159489174750639594548721866497363154158749310862441553247253842438757727800515165445029011909528925596652784615392673017703656910486218783398593338503749301701218092437133073515673450068572665518413884071145063401042005764746679912792201695855291849830506991812205804155840470030665047014947712550366193187213422510483329883401409567121263752195766699967906831815411617271715424340210704595535070299932672658447964533751202678889127125239481415171665167094955685867485433755738879866314736985150545329149493573955658087759490911940072690592231075580382009689000398453110315780728330524821064872539929242242276386220923516218274260913157549770844776058103359403055913875445314789205739333123718995456058106645540672759108824859105462764412053952670192061564083871702143399972858274781673364827245343823150097342698485831490002935574812711788055377347830505552738021991762146171460365079718088295899368575057169111300996670004166088281703100147056489363858884778974367807486554376265149997334207243576291650624538714793797715043100131102253784240034898488842928099542941871098623245781698141857852535578755307207865722487000976934982393563940089824819274529047034140812779204329480650911753503977257763709262595211146065267231127183975178833000242003198023837889895213798874134516602968005702819778963774626641419897432920663376217923668621042344002400347391959616344009677686822493438638826988363699396180114221238178177027828025062694140264278393405870884154793785672224762651496025246301070045782379573786028593779258223069470167473957208307842099486615402110527966651746787351531424630252462214714131809977416957545969091853849272729989682253064760827894919838204718349528434549893581573321549658633456806307351409358233057522337913002062804349391287852283502167747370852216504126387826966319907878003861218652601387434747964711054647434827930201883653432388834512066922175105046413857757707606018640019271937027425957081204425409159820097761559663630768695589676033474696205743521961844670803094853453498156804092451707379511011523163527927097231996877541876251993833674436186385588478657179956224410357619443738915465369059040615997860317685007153048084056624992540545609108002310900542362871334738397165717054128469711819471405356170639053614830214448699865429121390936931088124157612941488092196888045566355777657211785180702262751221345397666364106641576227907599423535376954983615414721139290960848553716330462863278800630791000111567680483456600377870280626270723950004675989718497555809278326126614075345037839482613430766042691543857987338992172953816457199591677801256176673795366585417820739690475145138293436971064269551692553839709870598179172973002681411055665234407257585550701353374629514905311565196639368671142854189170495636317691491571574031903577236237059041000755897620209352505474173449045026496042548496382662443778645938433103695821734044820876553001687778525004787628715069505588490586885484471187079172634706360969244878535832578958164639996394807194189477793356103676659115682144240911580806668550774467081807623749024823087786709067898716120739411432297766655530864014707050987652169444470072153475121076135705765344732762667082825312583112344553226440029785739608324133032978012408599855086971951878094486954438153634232738975306223829401842143979088061235061037877361487542195561420486502781316779283272931650084898209729345370241274208821953301994987870660735431978125043057625051929952098292209753895280044227262357466773215923932506008814272255569157979734122495685116035597375230288777693505462782869650427306534909424977573344261565895975271608983156732867443160444077127833620971774133554206888129067748630196261984105041943964373375518432713620077947437640595933708370535863007527179935130735763017597797439032932372179951351404932966836036221372939035414544815988124615575730221390788768587268485779456895011363453931077262742784667621944117811969548773662683358460435876233721007727311215640731185753944953971133785884063083115406872705588656338610999175967203502361046544216919184222786139401393986455077016921309102893553928868371372163467516405402449932962771243638428586910383321600307385525583979781896093789543895707813789345679722541116626086282923938401885156391429286191436256263177075871281177176307400087350379434439081582041776786278293090777318185983150254566106724700485482814619788017575632831368938239306978767416447664409504351306928874902107798111104717591464220888636556937649048476292157714550682558644537785476759123444084381098320064782190066398175934424693266021739321608051489375699343142438802004979807392605174458844518050495612472997549055898006162049662527753783020486969561061688004982472799085995653590750374017247303439275229573296478703556172068766651212365087326250121590193477514601528729732402841262731547397320980096164899361474262144872778577416619159830498914903408854566550685679101847474359173691920465186935589264888486818789765219365161294151036306981117864198959361078073783094774077524529367265766565826442855429199308033367760211501725568911431922021506169004663031386100744783272365511844136208246880939907470115527849163890514699143624928576326860859196565610312435073782106637895090278686820272946407710772575684237459682829894047129844766474517592743317209296497706233643247104909939153016846998589538897648954231668247490274241550599186992605486974354955837823496215667286070812037863467619380879418448262490886390377986699951071947457546786887877634899555160373651668457560460325907091052651971260894905626346495377918781335954390321934731959355204553816856231704923759736639868607104584723176254807268051410386274812033048380632574386553460198381896230073307260864733294838265604206189070022502975672189488285699851436309275886521170920183714762369737431676861757518925374290288738301126941816204901827041760623806257830999541457726796809533806260376349431488301280761946999585010234362378070147665254522136924957821335103698893373896668151038468057475274831318832276681102608638451647231943614188769611801513083251889067078591398714042608567563586804617763907123094038870532462489884600796263126978913100848875875895657587815385805422907916811409914117244590774782874337799295915031360230190471013454272381582376080097732559250405121400152084741585665600746535282067591270348122680083051309454541075246016680253706294295009520032026754648247584868948534584108055731759914894340782689237109413150655400340533541841615557245837419849324886484101052710779289545132428953623898499345896235445368162459970964179554224497304285936282965361689243496938465822294049116145462540368607683291163674403783795439801233548685729700745408984022387881166789208679558928689591759352526386954129305569696902678307846951064899900582310247822870440424028841601306036287371037267272130117383972434758020814410596120544146903833857841601669895857526213826533736806149532475406125638375733961090241090332090994621569730291973649960172079791469504974923863264022220387016399434407962442881909296210878341106372600628056364066659523716529157699387989859917015700276802098060768002401626492876817380742345566110292542207755946957928072716064271048475761133819629458257865680121317425981714617188411768846782608749012729270276834092747617945099919864042039051497687611038190823120201078742549824363362281381367497896659169443578207933999637739604262066361694041304795863467183584994888318307003689695106312244650673215872767373935034065725466740332483436574374931396311802623501768346662830346710879964095530962608096365306213340499554640529041936409792547333727446667747307899101350093862455780243759761613842588100710282360860337011394524901282950937432271725755476907383671997290007425176549196451277350629082014174796409610485167252903376826330445254727689242098703474483842356141337292268305490446582665680444029678723668892286961433960421538686777261062093829360140270386527114799108791809394163003942379874206663170332463126122166463522581607153975173057623665532735006340372693929069579454567256809403814556018344208746375924820746998005150655859264353745448678125806166219479610115833017604825182823484568539322767207327930730706567773051280011136082214577630589913904214677675470757110689819530330880119648862941921095957515826661577678858740852162104143162373710358168944644934284599815914127581418943272923288053656038389163225657940168842166066960036323112911515286912586543924355347190366936169749914560461414012412261361584048553532564465676210921943939091754458322450982055048904291731738351980039778801945686615289393488642369844892000684186442604481066520558830192599398654369519248117157109107680040130647816917726237861426078901971075881942662582904062996995058849890864984989478650013100590669672069528126069619836984185438075801730527957484893571677379049788686077467285041044759095588626317127202044650816237989892952617619385467115479314168455163620755624662882083554129648005232928432479836623227015390316997852004785690629746201838332706912277156054408721729361810318742479400955025990632833447520806162028995327279691761519102038578251067853382611589364416342802005593878135883902144495617810321808652479448968981816694691019796154133278577480202593369789535916330422634115956508825883854849313926272917332634077590321975776669390203497602416326185033812475572803042762782174205962095785423796736351795933266645178988202711563492548685185362432641433153047558772785898241337613009716650490627388234466267660587019966401435443123774008010176920364646786562159131716811113487730883420948927440755677948425318357007185987239596655934168200853471663845422284228941537616233435551523105915573241896188028995314426781595374430085447420706727129192366594124231046523661715453889340709441856052650673374398999821251568203897991578217153565640147046620270934582819334480577851379390605734261020765457885877932413961052770053898583417343194500015996163740493337565153624967769758773360937966329906231615093655266960257711171987738703351848032734815576513206237215728657999839167953482014817697329458500184468453268878869699350917476248030603195688282308174850797784388429270604933783920632840604416525884951728919125281681039471838247686578216051452954413086271247544434284978347236496247306309831127171702877628043896428724947570601640605803316903070731758944393439332497895131984849616089233045778595444619709562204401293817524235546535174243547498046978046343699370938354334722655825538258929742783561968421149728176792211618700391229778348724039352604203681545859524343414016489680225784993489905061095907406105812138340489666395032359503006588549757584188280921745393941237970138678567127654435423292629540280855366966957003970667884011213669420628679001398446767605993648218440638195424294518170615365856772376699638258152880903121386285978800852363564540300158122461695949408302431280610972326334561853353581793925416528672351999093891489601449025786314431948897906622795395858451646044879176145958584824708754576402914357169554359703838400872727602954534373736546428023508397303417694039063745754863057330258704583247021184888128068097654198596872488882219818637641856007824054323511223575094344828575209471135137658062126416540116864359429639225666849018751319632182013043060733111617080172800129216149857273378525861270454151252736024659981198467050538439633345284666983199764036605167285642123943322765092177850753755371488572595122491843918169672730219371696805528452122499697356713732341816063669772546574135242944611784882516841395685951284025722969286824199305502875883365927798607830841113278421094068439486988951691933165964144761435561448217613686705560080388839735419551731071292026232264364054008040017005853652467634669445410370597225477455248691993361724287864511367813504979522543441224456231294673024835297139187823473073881705445191814100624817565747032102683568074447476983607863139343869640675435797740094817623912805232471264062120501186041562641446226962124073472254835764183609374918192350137740971133519152359699860404926952919471520248309715833037257081636502414500360005164464821015631899575586193955087155583419972966769755322621103965679631499287826799377647979500751383035888982865225357448990983323594524952633656975150092304329329542257838845320793017071935408808862199381734800744154912443715547731897941570296093584254094684225142954471982487856135827898511467651426668845972853892982434000291112732095683949748283441368015035025948308300555303808794462698016707914007257222491064243732990149352305285589666877481670415939293704934615752491568192112221973387379435636790657845798348221783713797351573371429254722887000946185875223088706620376928394730457952973587646406991576532977977890036095819134516858058384795120210005863443908853253571425707847859911570507305959643008358586381907664409854657319308575591806544629705898588721607743251282747695154926040353854184292563517815178981419879351924011784852585224585977420643980920051215720822419688331251076030050729616755947792726442501276233257582793677963881302147647359337168652164954508513650642248740074356908770398786545024734637995702138311551066014990801625096316156471546247652681177948250482190758831118346001997087052893427354296310732047172573870416816127628594556035139802412915063746280733451723558198357315001585080346639791862981002918451344401349041790565975096388155907269736109930640906034201548121933030904944719676737217433491489795249094506670129524558725453285584342968911426099059785776402801364655933726626111881171738026608363923663325802666548800567287448247980392862388061072426626492226698648984183053733229481741456915887118466085939149568298915257374440837009384150073588438054006726633436499732692352244630869426909661762446424437708729147859835758572057293073860958534325132051723512079701155653328582422054109999670514860702960032957909591278998437472025806226861553414159958322921618220534490287638698907261128764583967326441395406896709662542724758711910957113971986687048122412593270906201678757419511799135966007903691781196303507829139334543555756989127975678624916404781632888311081927077147951367630127175130167746141985073812413115205168480790205721416633406234177039162163056445062465715944448209136523207056314747516927861517628735025600119364977773058155114754483543980021173952552718791786219965589212838500333961685878909901188602142329146146165746926399327429556883202204145209860817467693488510648616211075444420348291757040771515542924934919258198335701607177787161056450646025710198731542025132377275959196362191938731347097616573779715561662693145891844849686224753362097121012327482535833203741281074987122978870437050647695722593963640155548074571178920646865434198921027297963535451370874152906715600853607189152685480677884186407303321789660754873004438500607701665304969655624138469317328223934362803561806542647739797217017368685490933750739533281930114637178597204501598732419191925327764420172613855534521557161988468276507344404323550511927561728129134098178714507110504974789938046139657449817403042579216364147616481046685475810973311854039773649422602556437192006507602773913584315479934906767595357922643859917007753614887639757571164871635463747150606121399759917315969212046845433210077267991281321579546853793434512779865400783964935148000423425401523642232096884653191859354568606864015781104906102167751438441865883853554601700362915048161812871203690597382754873887451659792963800868909068862383243825966917126736922562808714521493430841822775829853312259330884887420532413987153160513520633226286818889200902990593347894915590565114322459838617305419452634194401544431501291684771984923795861078794925813504793803531352231430585221904235181233652922843968198950647358900287068506868760608821457849931489646121950194041035827870232072835781265948404724839777816291619118322206980649979386658975272895397304568439492086764063313488129248060720159638631800308305842801595379925861707212632953271899428376512301141909253911896119369101857031452280123463589791801360875140928186072520377262809639364714066634679976099938484185849899483259135657012530040149115618037812235461048734778959230797762514689293607764027957203326022071100128080532403644848731301643012941368517627886742743777512973302619200346218877352804968352888898100263085496878789135155512415959293317149851292310524568382064792528467538908942296676695547459998301531906001629237411162040326007647487760361981861606389680324928917405350257348225291846791043747454332392196568440966268071957162084043773342823978628064309494621159037232154898525461319373735620903966361034467722552470495436851910097395618881064775632445582262713662234503002691549411950181665205048803125006459465068272473045315007848731437803681264047835516897104157335559402242350207132915720851140594064432687577911554140604794662961723518677646812571860533230856116512449545875267658526165915341470640097647551831812410236721292745629291804497886577402652483150006214764630069168198873789731710506651666446310974973268703500209388312819226892217101546988897632284710651064184239492697556819927589608913997871727531244445905638689530128251734387233238182446496957692144912144290513497779206702702868194718781427089425549303361377185422714143973665427536682888362318453814909793168917749359386743897076744137585743670170745324107331847641090808832103060280721634006794541848615106769927994962451236749732175150983411829511306475855900369972307508324692064643971014693865791030072535961100926984183616757352163364471788919823286136700664385314109634863801214178939230667667592742034258639006818161590762957600239493839048252781605641079587460515722357179111886970644238154482400835763262851817234553890006303017315870135371142537288875486625558957672308881377866339309974959264834863988464466386331629885033124721028019098190757185207404561018999639999625118242068070837601929070463206625143754398559418546403114864635260194512613864340835044127151118118877490703867007296960103092627656041691664810060763451991514886852149535841078730484283355621015803942612400517849735092590780189793001161305377530569044540871364357836134992846990332479829082863152165279090806554999158343001898009041135003109677428636253655746952593016565316453592601949398066519987024703688120620104430601661693971837884747896716590935467519118247385336730883583087027772070908822240985398240301136572785480534532417172526076165284156932888143949322472571820165800881806458502315421958521729006127187523528270410694591547983550350379354385553716853989405306003416148609705772706290268248846878398369491257747891410348646145314555042655228602555912201354914701017218609283306997303987948858385072362207410320483111750438621575254117180824576115881292621988640763302138713083631503804392731480357465674619734076602709111302809021624378162905661575833879982085016419715701125909178985907580644679909213555749229097550807675343201931859936347849138768888406440102621825839105441323572431921279736631072238541419756872863955993421726042950812413797385224977634375212849515508776903914642093065653562045047318707369296545420136209783681977952949357690916536662979531243255444106190637435577940862195226850770646834933114421356073110967536142757928347918748663023273043310669124097259305233400115194434749950761325608189660934131624758116064619144683940471159505904991426873294784477473714671727481514082652732231328559935636232187880599054474397643004320300503284411996294373258718618613612505646330149757289912049978436893472282271470609450936091434172622786443584312947672750283189546512962144602918089712186479683924805821718418224018581803718762569969536950087419673442557659490670200126253781990928732672426327607077165401860143923393363096171031603882940834946716448573837656436473746442844284587106432336907182850873868103110994029357743953600221096940687016832811136937033740586596370142654601554704184907957122750595314892996822654556422816417018368360460612835260970417266960499453155100721426579959300242165618064925128875170095768216699652148056030682872736733133238749262663549864123751477327406926969909486384334847695303731771447507110000003283701063965007332980833020863402190027382875562034814386587554376432543851703600695577155284927623033289693399388659307050892335239247794622923875780262634866440093717837143697316912565884132124357949620741779043414810321300207945528418107870202314238062852998631238092175475874167980934775969694108968909961947870935392049707023127201913212187385452716335817908600842519710167349199491426835744168050325984417835687251518435919633974763066973842377741697753262897588657726253401132653685480318163592195975998689409278055235744903723764271565761496334347299868232921007797010762609586849665364962679409322218973094575125203221897767104249277332799179651170092634519755196085171656246768902378805861670534486056529537198845538041442976397070225508604646639042213085028826722305766182546274645867132929755643935226687373620962969392883722906617771740703376476119256415114046808183818310865332472648867288909197906793925722228258157902692626440546070786947619897286572070499809100642625761303099846442254589067166484218005394383729603397277282779717580118201766886428523483089226753217472059821491234482111465187546702777494840275389712220411298391274677336001551802211137603590486965196971850606325729480198876195222473509445062702778468053047838139074574493566886738632315913418729518560472042099829264637661593444019668528072967783014647241359336094868018708598114874757788220120689311767985782686503476403170888166824668945520310554705139453292397712554991437696726830773731936746463126667886230333372823991217734172704625112937294727210506109815344823098518043010092795746209310058965891524875130404075869215364499643607269339594079364375026383727315431592156170699329321976938766957351530555367100790052494929644559094849830831497155327443966798627836175274233243943437406149859110451354166914096395568726826990895375749272494186541286601936388025351577169774535065413055584389181029432905956984926491138156692462649516064722879130480200834974641557494364212443425403787704309385862282195596099687379416187974582385679413691839774430399083912881827998733943716270238433072257500749819416590098277130097994954264468664194644900430571535143195338566462637469753801674549463046013919016597793068984450262746531445846476174539877391499690194858243251951974859993333160285680784110412581450140005318162723426784186793492605606273087224740076974145528404391447920326457767473848885808162296808995985772031738840878767320629893078651732031472665652023310444218862547686612279011433998464870542466437607690332003775587970844991146213896616443067845493517925446144233525991168695049637163068817928296892246181981339116813988958617257232264215763270337261236388817129647076522137352550529316682733209071264326567464737984417491617316222655168288303160646121653113727802082453590404875813783031081445617530295163687987607022525011624873963268546815381168118413594073258278079089954497477363265207025259655993494532608298150714209834313676917998830950022037189442513306169078666761739076870336111183768247469092736335144758589699414614690688791222561053585169026316711120275835941117268191624410297960092402069268485045652278603508027224149406697703011360972748391855455693721698501368951737092311810039405654330388354607170798988083715976442301366033546976555151883214497757503825822890910428917896680572336993589575556555239830366339637051536290165876771011042243819808038571051302448526346988506755728419134002407993515474865008747163350297119195829372557191912694890670604522507404471544740938767762205225474518502859371120476959978752929062951986927871132865004969230640453341964884213790862347734947106832984355649914250755859694461375758280277232930990917453883798518512800352600259921614577815524534880585581196665457378319424171558390665845781060315460983452008015347840387959644081646686893278198645774053752104250389453394997362020118562998243601589371954439206330488935432455798262063333190371084716531540853621049494741830265286328508453368570843809039535136746376699068978813072412782384081891161354736318227927345894488750109983806516069947400776976099223630937823070901067064371481247636851873157489383392920650982108630482876266684447333451573530442062453149900188670945281919790098290860690446231159894748362925997024859521034883719621915952203872437793718914367439187335596531056614986111819440058496191455051162262740024094636316861026917658758977760696667842048840393937274599476882387798247639961883216995655753979144227039551186799792433196895139870716224164776851238224108870952723136275442871659779271430659266956050895722278716989139438120260932023312994850380011022654164195913823567054421793396871150366125971857489556605251591889474338327063965845289656192633754604753062627373706809964442444448416552984720480753993036553230801013513777485715338152649358350805859538971946886658173270418638035574338348470389932859617571759751165134458438211240489572498404810032834343023960136272641086505253317193868332752209232749501387382175535476779889285268165622495238366353310392200524306276386111255519542827232529517678819613024693231352646248133390629631979970432803262846247515814340091856803987422605536931957948862427065869623268769824253660037487372992727425134955317387442874030674356881014990341243906370384952033672206340307075653588155988134821005201834650421791514387506037404211171317510863265478669810689413659120938371087123395298468734106525673244715518169713371748221342190700170863297623891646469515509087722669757200588004217746718980606965721392492303999744483299865824813006642633973546551602555479779920568884062694514334764892726989787215576211605942684039296699058901313328191509697348082005695758650341128180629820003875100388320177378831093259408431499829712638844288994068704435558026157478813498970940886744693412180927521530465947260848423818251510212879768944608245576358356976611678569318993306469679421631788563424861629024324530120186400728203038443086121676958081376969996805541767488571849664432716145947374676234282241476367816963992812722617815559512182562695598956791984608307479460797498826748904083576558623496504701684383716538944398211955812097876003215082763582912094180970024126304223412870215412195165022553155772461683004200154442498481198764212777553053407681139531953105624496252733755899584088030663910356781321649897570922269955990853897795043817895114637332138639128001017946689266714185191904923163514581776085539871323175031983559525588190101266515540080453374013078307470958837263882610388325172045797762885810330777376845023295217016749606532970435757484474684166478420950732715875431512478699122425072731932724775273683402345582365971991964458957256521115268000883671792760459996881159676910421186258273658310672938109637305483833210571968668096266382545406892915512807397688117858392584912257232707494717834836196618562033998938603581700716032720968236871729103587157291113220110496076510757491523423218501206266016827929675955911521486603690766357634605293850839207033678810983881255554189759451591705025013292126090001473910282658684281252097622258394834765595243834027785901703572904672029551824962912801202873542947426738471820268382158411906322758505153116862927962725835292396862911201158121598215385784510224769740032008131520588759318745543394861536235432587571795596953863583849125531971073431320657998543136411592562354469170693537376003828216519029430407645716295957192621383320031865614154161526259428830351849189845053246794686392940973766674587440344534797428926569156407816064822658210769051195171561198422811004049067044979968621573884632583047004899626008626095213615259049090337123774491866438369434400021581409451891480437132611444941626802351688960893874004276160147054295147171936014072854230981795589473447261340088947312834523466858765555737833018896348341079461814095981007613173755176484577122910113045390998942233610249684658541287523815446696451249454771365184382334549356408209259782074942092182079955254006784705827157204720575934126455204016829901381975396409124967070129945430006261264010114372586476838056975869514236551481098224116926036271515562813138430796314414109591440256633085100054450173386354356135160088439304371899923081512808616265484737531989001932113222401860292419544753989686207801512074933481135725971768042131027909957135046516663877515181341930193325864690839046952288474485477960707417164271845555925268473714173016271715076247627256312745690454215296396081933425366540821232276226519980834466552480971058452904979971333274654274270440826727394465269888275495098254034739872700498987465409863109632342303990852096218865876835640976301938739505127404486603577810030655958918173047630131633803602170149587918607511436943765134956167094085281189652988454117882188175666048159086370433530999664290161496523274285733862754575503643931787350768636893568821548758830591707838172220690255661392433121387242227358837416839142229083341705694939775528263369020656304017701228131062615792352679394267313115330545663346575917663124765410746175326433029710227282835747619613595665927260929169440737867030760901217574502207363424249899470899785859414344936559751465152646214238312845660434428902793015671936450386737635417293894548567312208321643410337678301247568002126588863160103694746027591400926397140766903197067769299676935402754561098939973756807675445404511125396527345435510732565017963124215425060178673175382503512207011489753712169141339103220026615938064871252146184465261249668621316017191859934400212581965954157015741882179384067854561715637135106904297765670726532415754221543204417639073478070978896592552373013391425145750995078360195204705453854773711317392540741425358546080040672224467266483987509624737354788232350148089790065121000124909879681127570443833298563129295770863482468667299233947900496424389770118834420093687384445975554751783524257037857130449060666370800825981272715064949702930752189082945346628209799236372191933855379935657130185296358651298231422110620521510372596661423378619042996675761741171759541879824986346428184455728634170065581458601786493539199732417393073051075865454366597159560426014262823804214068275603042999038638857762443058475514738036145397195448900324940183534784672351609120096689536908914859077078420293735240224058418783967390227722700670037745689063619616556201753203276221407536542675095848149486937976248541457181189568387362070867491685730397816104791540643032486793326231604029503418451438548520062789729456299860468487723647935731129571889043750157636157175507662297179944922431577987053465254484343501583682064332928120177114045563348640847382469603145706035334886397966359290464613374758608851495330192102855264870602397554960905347596890313917323563057530495805841361769275960067744492321080408750450871228796972545496068397420248103464584881146199010109350360579271243060933543294196569471131136397724578466267954270927836694531096873430159341651335999715333978916941698435121118989181336168883822976285340834332727128303325303289355734197795817067603822552558796896698810015894626050582794027989894343354558555874185690901778612345436155241617041427260308139772574522826710947845972390479948957969522472830650568571568888872637781309768821844914559008837574713514965518414300995469578058659937097422126778438383533759972388577251302290071284382501705747402288156882559631776644941079602579670166682431080296441024963808472700947181642433923445506592339889495785070016145088581022902458068513813758403694046186421177806042078578261279988208064649299124151124290803110626374420264039638474043093100073066161411053510871224548884402490223214886622254912159656227988760332767811437277251006105678552712704167156146927596103580972669610887175277784998019875367191696960011836708396743635056289185231714377068001502402534540142612074991027258185421891599532899037274480114813478981196779349000526042646908125569072820717188291436566085485703130643767033539612232094858265755364814273749554802017880529158653580406267030435171627268535478110001475494373084503478955411683435335614162755163102783504508881761090528300371792841251540466317712009880690379523311980254826550199643777390986106710587002246439163705050045729962799865223287889773017425487078557866200578564849049451304416641397883175072073839547513484642621768824134467965769879882913559161822738269088732640822795623071757505706541136377165524939275424641038757677260862990240757724472314834103848958651816736529965461689121572732070518577576486804855385097418035613097327553568796623966832801546703687631147707192330308549377194345967910329763460899301993385108434143410225816939258952620536975790388492028931714042919131779475975716848629334778750834867789253441779252975902256862816222982758694598171525922026232401549664843270783221920991229516981583171655740519973360593166949603682759159683667625835625210573720723965259850549791958751762300311065198119691336321371796394442746306136867980099958871929593311165072416187152057991172235794467952566931255051397229988350886151756943438581499556623880093819428895895527553955056217399076412209244703253733239036684420767623101652181725118833431701660163671593095822235690601646312686414208306432842688102048267698165433385302037278427806092473199229408044198176814308618683585652183098885917242239539156400935077680217423576933480232180660514788920317442527897594526097848920436048819867397142607772503416889787094474888680010692607540820609153294809325074380222018935268025610663143990717773345203310244394609584501222160398849689696932751500220459077124008370671358405396362624392071880051555659320949520649661830976603057143634964765903665304368833062086573361190669095063147177545515782895825347881771694258610236161737101543175037716492798100071280749495375234688963879376827736265142374512171546998540204253744939342426663313271007734303942663913989039436476147929183752378166218573982900901016953061958987933880210446231236066451942943037660435549790943280052818178449310979911271267128098815677894950470824443907118419522375144062259375115859685941130851455065782855745155273266832595297899619626115012018981984329160655168124380177336306072268632732918270848323926273469472376103869971681173603217532767820722036290320979013887081425791908212420131516126000529432347349761874816250290490024879481384407098146464805975003459735066674392236584525842542413173483530874737511693785698939324337379073397459680429200430119508769563623418348575786714792898363817505154478578493207607452766278071209168190801519870726758853574472264576275364133113793370038241023980758677809871038179417192524946092762233717189374798414307618204574396752152305356956146834817851724334542557779858682340019638679908377796743288324916586256066266001676209438260292410316943707186231289388562346390209306588917881268479656833615661281404794069443144519788180501367424993529075774512455925825370993980853433650185886727426554305411319026854275961439284217484426674656742680991864061894829954831283986832189124165723778928186728520158827410238749715634598006550630457942114313970459483404550044523247685133638119331190234845257293151781690188071860020475540937699447080008427596929558948827913746306045063882986312317238880628228495512841741483211853579260433763386231591543225681267330220924396618077936075597821516555468906606143824587946377682600482897967980114668405506515681722616391661931709638633385341886864363197267380534263546870674338791733783394019051386448855960201880424663028873949033749952734192697191875069075758447963610531715780661065245477122314515947477982580841000353814638699488879785851522575937255385526854687827985360318423837754693752829183854261320638914048543457289233560775452233039528525665882754946408200903555909236371257215195753461991040543909548400773547337524821620684493412103238513396204571235882057541823971412048120984261184383952148410183297502305075190311061303691489707075152645676995894259412020056102641745380966024715558393346444408333630423857891110056632260963638753668376685183205421293767342374981595071904422259023802359784607672061596711181702685443498678812751368318335992127521652601016952167675595421376194953997638089107037734839902687955862731808339110665146478485425691069272868186809180337409748220156096884063528300837584230248477444291176323764678175273788683311735375803166932653606643272042460959532171639663404055626393845008929603916636505400455966188482499110536255920313664406891144811870718747354962811069659007589110308015067069850558229736068519116798823686795808515730790947985889678898668114912587641809324816599683187252280461673095884768803162917512723684895684144719159438326493849739467433406771943822928174128456891063143801313143935533713594242112097750593729405849386978233255756544165931528993709098242994792053760035391750780519609813215420575173998894309811810943640220905926269970651791782101940158174175095253515753052541049672658555382910224114313785026618496320212052861963653345302888117088142462537312038245356904570665056863241654864067290065780743554011638053786007685502347030993982951255530668249362970295408927408050932751970122985170727903682246405458544754433950182907489495691897991019810962196117738412932242664210984735735340499807728697545290467814829009560862511100246291819490674259876927035644113301210163309289761387265979738688822575729065040383967637010503602030809271514581482506382198891578990211625257276231668344634574584782447035439666733037787054066038093570841689108118400446152538537290100332268781775513419290724535239182968999485287653064465659198162003435066179352326581137631752486761303059071947638436104545495084288850654865907231185339698825325899790924575357459403959125741303490943218171180039762105947092520951948802187008388490011473035254288536144617828011555985784695106667005953922096567762396060788042310439625131937905056766665863369442290190673845975346971794539031069513368899759048033616964897130763552777257109237484738042135611953593913893394657970130832857853060072491537236653398869690975324352284664360058627463067225455774122351392556209151144941683178501722220595094850140459408431790831990990589722820841780506478172323145648241241673349381836250143204460112233628276381566277133370210601291049929245607169596055660846313961043756498921525954705498602716076451064861123158091950184354029107577258882265198207655049312132289551789360110696057716721466704789958416813706235149256574578958397126001958743999299391574777294675126386731125697918307186559536451793773849183622283729936214434186015854456076942945760639871018575804829147242792988051818340223707632695931870292041382657810015095736133756674597402769402885052320103965068445592031782667313058578741653655049504140535062103825115981680634697253950535448045936170715840957992853055586819361261804453736721693540251212845876214799980372856160866537131259070452341941624709769752178459706858688392788611252052804774876544714980840304659110156756227454651796783429206960871743710108699435327258742244644413126800098594221352661356952637526941948076279904260556188315176961137729474976986654427684203381109246627699332390754931535988409622473973737523615596471725905127954950950676175405724604958427881746161416433320126930926466350373043851580930830843848609150940160303627363633880667285287980470366915515527715538058550744714037670956346325414822083080698508536290486796478783664496739133912629971426301089595151414281054239874769001293731469563418084374362176230640384341965163322438576566296737592276776559310621307870148993252014361823989174434389661216335924134356346456945614989533729696143131058576778515060878984618045142593165607733155507128423097181322564852415095674173024608097506499393186882700100263575202881956267654787352655633818243899559024993823411637789629056345278937763507371071495137033513675307510840455011112026902050409165217956360988718956592675712219756766260080987102469113526462716345209087590545434668632988709837201804635673134570733648277703154038477134978610666808239845601710809709120634469512608679670069526387477529658116943324606605908542123540387839861817044876875168335962123536603688895122117387670482286605383672022484551801538806671654202834779676325655282229660233721262014483626545818834903985755229132456509329757405949525213453489713866784940505930948622119947329288599477070044553310268003858531020365908431627007042439778289151378288726792728520642653639816357071268033951614470236252901380765546012315252049122342614360515776633120543255941076353644317768781617457784913275610533939944538208949360270953626777740121609958688881355113072080819706793037895939856460562854141052944911657485795133330677651962649086646731502252577966280541040400974241695831061156139091464260476881383061551898527215918489879640421450018495654777408208157081687535917847888296626594194275698917732677732904292025692043555035143208683678276238624942125139790687358271431010136015645301227127023349320619734062062156648681896673151782870257207306428198409742778820108235936276262723477088080991742657068685225676544176950162187158475972852557084036901920666501964253800455482715749396163329444767460609291304505896450713983050285838890514979410031296086859636600601537614530481717160805219806157090153892253567764188220182306774269646890760152104283584250610677280706595779327284008120011757773485994987341951842668141994620110219563014769104979897277766471154716672283680547565784809802672378127526420967532740656550569485841139285381856795218555079964465226490571285070990211236182195146486507028143542131155102451380696126501170028099229334159387435472322787014137012355525143226917256849391966406540980632137761636461728749432958925287322100755634309900799560663317822197448948600845387671121000302870621068393439222577380146049274947703472153118253908283922221339979811557052415092173029068841374611441937673138295509180126941968488477927297734553228514451800861383837470002817863426973686767585075655589516164448610933641497046620934719232397467359843781512566888171494939719311649931753484140555300076485974110725291363927453123299681588447258442851003881469707296369824693579693556574020922082117728141163430067934697893344517220879236701700618485389883092152463473693430187187854605588728994293803813591176239050852460806657339503304100822603610800893040523290503978243498351230694908703491302678914525768065918410154457097215571861596167488923043687106547971217255392818266310387885613809886974047960143336662183851988268853276370072034877876739510565684229871775838323423062797028764979844920917420138814468118616414226614601861053492761818260779837907033464038994359514288717304327139755997306642946276702963545047118870016415500881888080626432652912044472727845610040575414272536926775434461318824907976040833727493501222551457557567978475871598417827363888073407759303748043703231212593742883398116854067963996977531730107799069830560603509563447190521420387777683183030838051393788716545139257489999341923844917872058151390124578049814465276888088832795450733062193361391115967923932066166863920834106214669789568325490263209898682758027183214668817726793832602251410328814871296357830698892635679858660177754627474688704838006298896473016908671214624260576435442913621450480385682239060603101169346493882196439546634246378521949655050176441919725389444411042174667126998640655178783585059703154776849470808403080931393614456504999486836307404265016507891116214291082313323988688801811518718361162044656010868900108263580115415994535596573720087524542765226140737967825523041930822250115257134469367217651423956803413048277392202768842920353114028543344767161521917335151717808231303696497520418842559840653599962027637829452335193128146023675641545461084553429086917730204837044020201919722856823682136323309612308796495504569603526909997789876404275454625629919966639714752625312940258791699689953642774237400135438696856141176815979946366996630209889153323249004288760501646892245506397737524396428009894609625904503249988111404639500059807229168463187331926480388449533310564548312639093468522000678152715565406258830138978402645883435772672594262301771986314391052328475240203707764880909837664510764197960272174261644819966501247528182239816531949204345290910149499030065377545097191827747276851290134304136815773472599551183594472781215200591230604369070513106623535527702704226868394403155993556095554860014053712108712545599726028461134651010944696678864287391640459083325249828740792564858631423468956360313815356960808430500398600605517662581101764439336322599109681893199033155262268375142708126653798802519792123649728490416863923020388465185297777067947020533519051368887206127204098086425053372706608444575928773081054457474646651602812265298373964982209727704006161544623006897896417796255747512902145590897803181303278927844308571268980217516579294784858392075721131406597913106694769764946263810586900206737364560728174694109621734800951784499574272931147364594428849879797812656003912784690233104362811245950249362491615422208940247745987585988418544529989518391780095508142844700044978330238869080895389862857409717191833490837240952391281015702727950421870328011915963079758390702454699659936068186100034243305123614741840531693322928885967190798745326723508678417395290979855814738642033356247291406578671382127231042012523096520676232498978449646663604258159957833379723861271807868055910691836915083733612530249124109908418436453327003800050267656870464321571600497173507925127321151118636026542196543577601397523611058799904103266448165347219921887344454706914719221742543253439027252672315358428874004706995670625363107295520324954581912599343120033511647374251338402649365979775387010167219576284279538922953133880408826790828929764724464457106088434496507115624903809121800344268998450128188544581791824248435095120827445261935789671763024032364486380742314878282370586909211324479051479594032019443932308024812461556960978286402775563779306867355944569623422802904761386970219849127989331874247473295191694543803266094772877719686124003631450541996030127231674726801450784093686800337064413676681631106363592555286256995128934601469596239236401764341282124221872081375971821211670197427213766615351537996676937266657220433642523973436945518726594463757023960417418600132887756762254068866680300565192861275199650336107190064035217518075111881546690992145740707669905574824668235690625611501917354544833479252322309924273921098150461503076543393994755358559186585719331353771768829264683333519236200225408324339252148845887031298802404148313974362657864368021943104977746568625082342025474614210167600179330212954516611590948503352829043053038848160158191369574932438797556937982378495717886405786301358146330094266982219987080335457230999144462705839166711513765910635823526690587185884992283899385153595188886403712286612491353301333143132793414845816855831960360954927811393568114815724683503793886940106068172273118200489384614737304039279317181508591375393992335562800800720904150590588635681339675371991031201553654834167271590591649428892674103036876249363661645474444401821014851795973686399737550707652682128547608262400393329824494642924200335985308799505083840677386603182753554830864207612961189465978805626135924447934475613210142495022334429830575948235291735981055215230027135644739552258612612548692124799898495671826146377688997212346012747035193475848546683101771285869765622966924296075456290949311205900928967138819788641099206692077707478477357200860962210014353141407738703926138973892039799914590194200048833170436378649138701679497482446957392944082426439142141153702407056669567101782587451290249955297179961455674503623293653558565018952482917774728481436599983016430014431673758594922221711670470699932709042523322094880867226422346294064095378955057322157499664170763146198319696904692372162623510494272617066013452013976923555153840754038434025177427446598188986875334367760329171534652959184306494101276027174490856227300935516839827629846248765856619061099099149876828139935708364101237268631638552624399036160949836154427053574763791000811461669191003908289913768714323165511059649365224653528407729071912387858353431938567739826165588888576439911683200674421443065188668099640349135327007956663633180052565059274778155927465669483169448509657013334884716459707991686351326715949065245477332991771297642441833781309622807180667687837488499504098564988206453341490196976209393640053234204303768333428391627917397081924032786813242358943145187341341187951732156875710392750393468537285463271753261115635972175526129358545541354253907478772795767803359653877111588460963988165849338110221076527534609612137252515462501105402322798713410596047558641313222523807601319343298575554767701533055174814266371664710812423171792811804457641034944860670360364306042262472100867286527012399734167308409806471705010079799791901356031218888651666528640783396149834094395866685933202802486090221835076726916755106068804659520320692653889400772524221826440348383388943217405375102545874567118909235711819817209471144391439427723279020671843826169105677680803519793094572418294093758425042337302368862131182434496890179036156669264513779114224663592300956878333053701281251933312588939852229949473082086804536047611405307712444427215449478083838809792180036511639092587906331947561860697646201238975236019987267312251452471195110832810406376241015507689073846494036065567099445136288287220563955557396173815214177335745804568341340365133597903907767575520186672122194382365571824808265911198381551998779258303528292138544396481705865663979173871664517430771879769711209879862633487908955886922686898035180081003106204035772172414834577186609886993385391356101369418400331456459064993898237041951490488491850896256655309414565820218819322776091566991925380970510172086226919782493759417245794450307096989900397799026240302125264534729050573888830494776235268362570370048514346481930155331889012476777673023528171310900732045728074375836954253203199932974301590307078142517547377146989831217433399645255588303705722913869800490497846473853524582342359346655404961014890793349207786282439892774500177439854813997169099483762548900935579696369270079491143365059957283169237859098219203561433655259269217286892943235794238066051693616292373871064929446966153708390122910083943622279149555981986472844511128413106095025963063316674643221398114127337379052377485979991051776004192095732277313386432493151154184898969807230400097083799203853448595429948852416381456043962794434659876194574815763482322949508428720230495656652173051956012112667465501729117208358141298634317265261160091917416270815411877700478312690560439123718301050919920543790637019378602459888997132687736182751618547528037309182721714334866111507513921436369850668494053887272211386377168714782815657018267218379285966310478474976460604603237229909052600415781116560401099142211447277512153236880601208653314135839578079705131868176648477582911391043106855373763023412554794296684822610556225704571969236943011193411170102808138167252922808155165794483489462930373238687897363046871361540316553718387314785115003640210904658845650836722885883518388994044552225756080456449776590592135052337858874734653600453045420671228354805748293811978472203508933728175852867212066657996037590643915196949226841366712326447026062129359690734570412186558300725445960239776256691702788160676065265155928379219582839825965362184499265379940537210014367871459672230012444620471759809225570475397493579642240259078386770453370277493525901727671011562341640585464951445275737457610961768861478499636355507181484315462624741792958903485754357937179796890345625045491814225091200401412548895909610284417427451014099198880427566970058479982955118388384725683954965148514473173149760891118799141087021806279134660539477836026895659491434330259998798043400260513276704106112265408758481957686913719079952090270718832001833838268765826807837808342705759177901109568835173840383166546636069846554103553848165760645329069758908761826860143076407586276866179112538779679051023761458218896244266857259630719466360843515158706176233012577406486381369911055321266212039691898308958525289889898424671812892614547009845729813050545553956707087065009786148587369978601955632721465865226617418717181274077779635584501262451393730776587828423810489863427028201734876743036898348334674758986497930565080437529306918349760911247493789142571178725042678011699162188064740989402751498911899160431140383528146302576181195555325149031206205554116198044048604334222361248263748052467686478114476479450628343231384402760132259848988846092378486884836165754025017988214366636302811101780448852455603394737688198740448593123891336368003966009244543787705162264762419355651184435913175588050740039275595491594155002397335330864059607729741549089718592094691016452016280618397739148022236066212841542489590766485575271907465963780854814363028536807085357939031730289883584923011048536170805858708116446576516503532965308772195176795402778522071005515849763699302578552069856839377207971991854709672439231804687431855963391684156114513188021504245148783957210517210480436244182217281053561642431315133067610261647548927592068247867711695743939461744966169518226137197110949298430160538169636882861314662569646472746637737472358387335283743984968457971338613639296275600593754564470393510247730650489400004601028429917560399798573308142750972393725337837799623378417961667036997353596780106365788869576182474341274673265797936841722835881698707732856285822331342815387189960305338714079306630672141034288738752285600124930561284435626373004111104810488961204007059263667347364511164243963601831883662336304217612301046336489313503639001543291813764675622143761192820109547513740426423894994767741429129385078067771171094844917625276631985286792099512685768816134221937585807044871191110273967571206101979290525382196012273085783944029743711526325982949796636141029034494041071410026408642107999890636588076977078392868885531174711253794338999831328078399656301620760342788152187088889932008317886735520835342401151936683213887319915466146645420066230384555271309810976715248131290512163607955779921339952354062223187899886277915304123499495942880466804973168330675431106598777929994124562697728988924772157016683129342225153986670300610988864327171190685533508313271312116691480211629167171351792430706125907971914239533511194705302260565930492443209911686402708695661603490363950618207416973731949897198682639325727648013371765014540630670695014637374157975331773354044690516736861734548566437324442983365285113742289267126277793947503820159819587861827757772886063295756514503011905334534759994124561450035521290644151438832010475235165081115917809968777665506389078481068762093899045009577796315706938578328810150889090835046412641743933593790677405269564624262942144164651885320807461196661089894999615925623149268841927503018804715467218098434167903716314327272275166716493924877529851806520494577243373836044865553481052241847029755394212076263825643091623765417994813314801489714159362740522105337937859117439384711442645272631754201868048935629500079377416479209578595867488397037234934145431996545776807069723031653515418817481170535390974773791788232399504018420577085171247623000692195984525658953598192366319017835002442057139694247019054348272231544387783929743486352019331662343767854486262743312208071157589368286400237512154308810702718015769487352955917160323175050498375598140998030736850130063796929072862788165198804769557986706938626790256096201600765307153458601949848366372678743483458527396048666966872436657849756764457937033218880449750923089077593725667779956255859914320046400732286275404303414642042199292748437578487287760894849162588905647463422192319985909360135407154795688640537658399296827052916641673143067598591981976910027837459075542550005429928397998747562814335526965046415485346850634804492596251277042235142633309738962269868452656870716149105119270739477914000110582485227203378828983524360435330791057558929552888952937776089419350375855822074548505904526250190305880434629326991509703929019938466699905683020588317497887188597941111977443652464672304915093876136042829527497079291668405987352405592259960423302332758718281547739035729415814459503532656451950305393655785174156583533757816497155283767836458123775915697333323388424347570084202756712630597822859081303999818431064823696327521760154263566921979777500807071910903845128866595375321171950290308360499076991034907781054528601651500210049302684104112121664872685959967531067025700123305540566997208915607909990362103097531127172215756674639902023842890523589720063758078036780127871110112925165948453616572564788368006041861108839270327107163696420129121696128964528838118061093506603652894317502366635549192970587439952937037903994251400121509792747151197317242010513003274378777022598995129660193280469711304553391179787020082814811463710861790099480454073451690110398711016434819896463182980566452971305138158803319031116730798921426895291620336774419865543099470914757501310622593620207551490591034359031876450255213953322605170001830093185575730754863682605619867328907434565360079880000673904022039184557163247555865571158171162118334727774089360495558280169458350558314547396661679057470538545805710928173739510899822654704316609816505491260368181099212698917789592675421153033791717198837680976675441650348576741313214725926307551591297005451810881763326178077585580161745896887155223075874160961086724122127898150340473632611929612470366722899152036909894437194159923328776455776076100426996271925973520168222102379058384327012938690117913131743602481247469473932718123226725264688267897694296086931505087341913561832944225708318753163604580369035027241569487630913415180442378398776540299422239845599406623553848865364241552928579576972653233467057494772715185131611728057305058187546169865202536845353389606566536200540684770473432793395476044459748561885228434536913260568292573433545949929656852352562250500062036329653150971204440398393044793166298184370420754668229811840191127247459426908813116628760812148279763534923502885533734093686101604558903983082804892705393193542579591259324967902936887372673921599192812378746092242356509999134224963556696083484366999731083305501455920833177660343826920149149192290782763771531053600804188119642300849911035569051308545129071271603575558732057759971361015310744435198264317256668364240616017472920433574279329930395347406743621179250442308049153616083329686131916409060166844897443076704546291808259240674050384024596843105516575933675613531226406314539163409935360015018658675560543227100059898223582235752858304419833248118599094053959247865565013085397980019954358432092097818447616330515425651381589512411889799725484295300094160157953011949892031187157524336133107927484225616915367912700220008173902184397895500533287459850302973383913981469543249441271273099411872761710619345187713436028679689169902802244852634498527263763681140660084125655527952067136570043628875696889033851712721355566848017734422886540166261998823142002975358057445504655037431784117586399211964026921202166184903096670120817079401381060777634898648294701476828714644222363489150398353927657123621339076663678687256311584322556694218590367297576599710616335250566382058097283727072591189026959943069264603574224352474885162869744255236029454322888617314315375098356947123451852702158212192487566671220762599756496994039656224829612245048372823889526137223115070303902094220114973886713862828193277152067918254062012615317332451548314824243222417667766347838289698563919217062547533960784171825795567661316036482875553819815261397580252996696929587578176362631319829775233223376908185494883347461468202390751153445809846026223921185866522464188072149528458042241282621072098331202134039165711966524690891084322521144848211701988866359020406549975031927621308301595456245263931316222055958721719529157977810628354479018736180211916777639845034309935270593193583837135509276250645444952877645942378794298510377913192767389721184957871207250683726184019314490259654337225159697710699150271466530073414084467549620587500579418424080673261751230757641657472535779605282097712599463018672946174830995577648094672199124389566932183735994051906057120283275957697080542279461679530331003457750067200085674801092922818155107618186620204010792411565884971941211916702337166797470189389139943589183857455663613810744052226695057628427385068604166526459608816496613684718055650530285100902957940375347107582150290757415785700866064922637540030512135493450257902512958506851607587886437874165573237116388793157639377584214139096992434138857859311758153459634999497209254680993254528654728582618780854066498132420283343634582636379048847689812832776760037456486879924437618159064971969853034461715431538597664906186584865127262340690378352285559694700653235704081550740229210882038383100134351983523675544350094303271796075843464038283755503026113772233956129878114620231399850367990732448207260896076869717735849022295730441183338023188819063407934120177489418090966763490384736776719369294777051630074330889793345556511388588390218970513011660371769308231899427069415558787413080241230842686871182770859365585286757555803155276447258749332773856032886984555393909994589330188946405494792844918651263108328229050884966205730814329804738523400337021656786193755374112554829205166873340118773820022472959739807519851360223754399737159454766969687489398081828402464138098309363516114543653803315084453745478208311820017577306955443173124019795750236046923306656091657381410125018724943555140455934555107479707340560139494902473076772545450314267561320162599882245818141058305164211670806683251550053777459491539217985872089091279556069085215004933231908036985748302081224602468359497970029259783637645100611604762945277067121806278737299272578497197095286811432419537900357611292325185731775924129829005893514383814693846337542471318751445153992077243759560230759930073834647695066085217170482280481687014378171306036118581745718120072781942288523463581019278591663639235954761093874268629942123600178669834126194982504022358611645434456455074464525547241700445212662432746570854832151617790888070988395900196901035647355394983991291518440559410767087725518630457689572881288136373270689141255962561418897660586221246965350890438624276424807533198274971382293084646050305161661441621973607434766174334410424822102014271535574349794887708384682998793209414437294877364048430590841334152977013177003905191285913789549348329400038122649271992068510338728358822108262298202762099612926423406013266898642227507061324422351442583272637346347537641442803658902619718040611137946661230968104793643079837190536131010503207175525896742365307959903343676469297236386835119664891237714967890276638300913241040175800891280618512887592192216336607970994445265739084206872893681540458059596472561533305602190990818384587247534459575637019618604976356650870797607093195738289433143350771992728982467181986810929379021556912130519444974929415477110410926173017559926232684092605550869108241698413339661045377738670919138365232745685474961777055303891996932093611628644739748339531859558911483840617451248580605908711218068807762110492775213836729758440659247144998637887812628915402823891179701371073005145088130407508678005299303516578645786528031721782992695384760831967513784460355310962279394597711805196583739565417628406922138254674523601872439606844925436861897560387554464005432957212952403552445077920554328377547810249114564269738407416290149388347601708992132648268227742104192912723180662181045185859288253683290812162277393114318959878237574782483646358389343502184400745156261717690152225889434026905852968956405870451464225269633370420402971828254602202684661331268193784237833264152011747937551214952584276812996435402153548001439933836479959946582115130913174985368613225404343599780146684126452112882799104132366550791313935293259473852667239813671259051872692186788931635631818894629042846514745705107063499858697664447468612975012742179014383092130514751045368315722804142856769486975192137919976237164231987476042638887155290589003261649335956057435550375176962245501787946276052772112100309829768492193000028396559520929878980816767339050600300840724178321661580309185190894785496211468161350493820188902393976607011187799867656435211975675396240846570761152964899927236860049461678041283688237902873621126780942442188280160612931062806794390552062788134431936547492854283902437597069070754102171158750484202223648681134287253860522748356494591300537877452439641612835170439998231862050440818610745790832537444035007535831944873313292934668450800594778328462396620221227370795681690797128185298076312066063398211254839119487974834045406206591698322754596995831264113473975875571655493965263729313151312460636583858516737405038716451096005362084819878962947458671426622721255429600854351182257939914015567465373067080522797218260123771302190131779479546823468251148391160419681200399181489363142607097591841617250882193524275579840342497436935466862810094988809647774150519700644580080607805417612421481372262638596631659000107294233996571513494213430181196042364031496085951722702834959616367372569394019566058479433724380263035207406460140245994603881586358962601753643124645257941825504087740917760960000646164645327691187695228548076792425010927155068791620962409641646373234230084523926684940272298478163007261952847351392693970120587769628894872499239834412354956288498727594918191201339641314560303385699808845139658146726539928187721911555872208657466185926101946539747361149744343969724320610051606893143047018416093320066821208923309651260090523481419792649184529875085160364106214716755264429541485687262886757320806959788220419639249099131912407950585425043677504195973168491728060012935511633350096079483618702481344471507658731810221327857382472134542026931600879674184698104745632201663057001601643741694318301960514804359651029197711026680130550255273953086863836689714885118429870235069345186052603204045120271239073350639139356430231100914113919856257178430314293449738591949202116979764138261435982005278900373654286959389941817808350513338422679840584061003865006687887242313642110948496622682793640782586256827954352013587174070196926868716202589027779192116914511199668184852009462575325913325587060865306994417606360991856295622951951479853777828013910622051043972660558126944935140492295995729806428634443130801679708899596041020680569628590121126431697209985883123404011089547715682274233581340767856199481313908722876815243219621996955002719194318365723883532528846052598337965595567785871667411011880499485965927059182661620787035529124577023106982036484424292987395933596199969402692966992516633741230989209467558055226679544237108012896202188673650253732336250959512570935344065236048253396079522321148039921421384120399893050671939272776636389361915891804833426461442305588201753823474243300684376274438225059396226241652315488897355921845216844632205921972601101351670389720610150049857620531029136063361743631335521353032405225002889489144944226034219760016397349312705101695211637126518326089580614234811192987753918675374506451241139783367536391389805180292749976911846764062527338386777247756332860714883929655592582138668709494258448993565604216297913594591037783865694159927739549158167531420225999296318572546585664212637167819079615866533235166456084691349477484590957590187126611677795480689133834125656733290824123115225433485362056777115309794681531999111515381589990597351572999906397432071519308673112384551210027272895066008768118099076808218396105183148960467191395408930329340422988739696549056849189685352584024369502911131431936479813544219200111308611645746851225109666167466127731591177187238707818660213449257158785131628943973863697942609990120416380962427566573566018198010052316927141573894995215195432040804139667361959727254341557641998564319815323236665296189710624603366695231438992047847609515533836027434063801049736802517738302623911142637534003459684302902276750294663715191341270667087270922311794866015059962600387711088406668875406094845978136237656008053827981866857567508756167021779599680995725977985626870358605700193236466033496441497193512094293054577162297283792696440449304338345762180690996738856789152239103299198284590380032010700232852804882684377396383278729359355335329131990112779942622026873968181227215429193832900039762846067185048712532176329306424765714507329529042005256684842284501566952206781442182564813708179999295273211990402263630619352859646884307836375277946823306775514036651164061379985160739309749141806349793365796953152813691203149521303275053837362082227612867791886409613561949425765754369470347067073644606964572089820209220148885049666867070926183012506699285829523110452065330834634903578046366325168326966617999576957814185503100167852364495747461663931813513646130070323783717263712776659284768654790596065351308459459835422403713481927748505701133423307343692582267518445093798257613210164757120321093214758099429823017634537458763418267701764553846165350744817143785657099627138288327519423962571044792135491541651781064490586848305703936449067419025270119601378501206853306793037652523444785136305657841832722681356406335920471456292600476662006836078083212097268543643844569696791042697707023564525916487338570505791693620419157843036254463810294879568154320330790874114017419080301130518410639243392756932143655235171353822367283333325642257913820474870640306779201620854001285762497017835499446585262830257072499252458426148364107408779135946430977384715694630021251549828257936794980025516143781515475105891714339250935281380881581097759320660137323352377376018192972699226445174628813532836608942680910748336190013711997979750054019993053132003329122643987489978923721727255905574534592050105968446218071371465982875302707163584853575294137751942462875212774703563070267543849139476892151582804764602205898539801785587826782070113822437816017863954431521472246214249381022810748138342858147638328958518281625082667976230837243892961546153403864724309539328256974425267464084749910277089641514029567401237260074775154706970211097698652455341947362786917282711295409744534365504570602177995395019106160434570045604835781957748773619639691910458859957622930664370798638385701939348216094242096767895144721550315820693999002871283730948186129820438854435778869643585106608509104187390341384704820859252564254522503123673615718215365406255237755446509164138213954237238124146255411880755629514958467316134339593399043408617155465433268282708601040404095836962370018160068387466290923119423836230504811974110611293176977864921065453461948148737050772291667828863796847828093587290195126982302363088699951479340531007346736110187672222568908649733835525237699971277042524363687379785781096957824858677686369053480906679382684452669088542908207270477805543796326413072020008855193595041146071798196970963914124791410334697612854945355318857021384666087818096288503466983766209170592985723851411971238780461055381400307903146583796582874753160947397048965179153164048547680701446341579516957664723693078319354583734301015814768312630003669359157537268047181137464532298794708140180473421219670006257571978007179442417521394265895583483036674535061110009097742862638549488393872603667667255871820059186316971744400315738991883282097396872561688198365189340130672322809073000132454854746641401408541892441834339604249172753606899251142922036901736269736332999761017458691932878147944532657984818306087931997826544272232518560095279393187975807353124624669242016083296909294234267712493135143905996286882045214136149516131924957325257017786064741598809648593477436094282608612081719205173514685814927627956123687125697851510281779381271874432591842780154728360578935268453115498817818908506107015874874404497743974638924219991171893547744745949930684639991654978671444868584994028459277313895229951828653160847032853659772850386970102949339082497809631545738005135247279024779901394934374804238906279036043037454782360175877392124531223148421942589468138002331865690009395156520077523705074263149144733301435001570676938824525985765818348387880732888472622940920859775817062255855962727017689648251308601994859868267565991178947286998562286251287002753776702143871291884974970286799906885407637848968726627046993161818003904637636204902516735602038484908687023973101701897365873866373889176754697580419549290678925948775550161834781164660662072189317067730351212092333656096295807451875700742187197895465690787678378503269123424182846879000170570442312889410129246215403570721806376391896897158540151357344158392813285610133323290182373091688142977011844240134328424464733524073514656508319589052938398097308635101805217474150078804444750980880341333026052953625343807805612512484623588649944381270380575461537868422909639979766744593456262989752241174067681636590311124250293992913235935016155466380604092050958663922227344256110812544757280579432108509613527482905154708847262710859290453103453693695071116312033702699356100266104649230138638764058189261635522568928719679311427852934608592279585636510364901710534448837234408382027755855106477314365931593760750811046763581464562767772615629346374018323346219468453190202743983035906500922259386774748813578485231700543792286927812763118841229512384204765711443938133965100152473381217879207887762784592078652357485263475275140688262545777328809510957929386426876930611895887156004993813344990858301198434219283931200776312043067185729185298561044347971050764468939741698723845593721252850618822270512301649312016662236537225318171125170190468481282699885490567550721266079499873043227323040868771225524245620945794348037170407753780213627945773007515317921280317436680363615161332181533050185776395631039648210335802048143474034534608009944753159714594027863181519712801273513850665937683030256157423027263419196799935244367365799120035191942715283346826139734018063135192725478931974567013950387822559495879445492831915383642609604205536818555040568018431734733600800982369584774895120282049446297552099270112363023402479916972359273770322334355997210625182950187098312720421851336157153064856720177869250493376925686869797873245711405009144168888820649212664569201209099198933740690559614707644683446292781619023476255035065770672892490845115467776416443794602576379617306580392938078958280833833770825394492052514894656991657217510368535008602489075308781511355233913180689433114846735201067845192179981814890850322553433610597778475638872212486410831224554726572160323602484759839889907081654444583370386265848070277617415810264565386574558124544411448923651500304996610890932764333672805558282313028620822540877828107308655258274503398565554642604050748393768967750651167066482821730416763422809448185894716236204351581260408631011571768316989121564603998825723234869971502340405838524452191151033876251865171993974925484522259643554781792601938928015549114516340435551176909561653048011113098355135566614129327829114203458759311179828234283628401642337851516525102303141761452666422710571866401911865036950690658405722225348431735824050534389224789550152760645206224565041065151976365303995395597069095602671920878385297418860280140322228102121262134097273558343010961672055722458433306297546586645093866991455477150569954745664015296261525890120249157710638428166556889859356389980494408556538185875118631797286640635584871757741415311789331187287361508890087364292334624773975549712181797179584034019870684626206825218693260175385331260395520294734874397944708990098331415883370475538055328131558394514334952587786335857326732693298653487277589420378164685334151890239673393064120331703725453754514245502629158285570985037078674958108027709936541225901293556219271676487300647092503959708919652243161095214900493474088890614209084174855474373728060601058079068814458579280382875460071426385335758427811617397661374545375370798957810887794252912077876306907696412106860037275512148385676627336651548882220506661404893339075782593844584925560414281873799023902002542383212031248333126806231984285138241342751882209284347132957374760782406729848628178514365482203038626445924066117069764215713069964405665793344610932124279422207595437624502570148783248459484660851593356011768934877450074888832654984391162365125035475390766765206719494692300727334095977738901129191723253224194625049888987424931084407521504164818203580337517439985491143196583268561892836981616323536110373675878608384208256871211002234298825719735317054843833440112880693210183191536876524993216538189441060838408111728037876728465530262955357760974207236925567836719004922367081115864039802942787728875442585735373445046783990071436742303509352163385736471205224020601615650075945967180973625498005388020476408749417249863522069358824279812678406486544620810710601642224523171258846032618918297220086501286148374711457820693838896728531585585653507487248313014807912058759298954925465179531152659230971913643772758027778928439107519681995498798475423736741151830640833431192781456755405571737141706537894659786532097389256631643350384017730623826751807222342976269434127352616799624867265865468764416853953634268680469303192200831435509575901434388965453658121260451950564445085944578665294934245379620238433022886499231611984520404035432194636815032133334265583467434840248017245720483237238673212217252726480141776729398382894402484082277123004377173358901924580201218081188012826373931049867010907243005071275011764066387811833120043436015661300834122617124536423904013780691846644897150791091982166963293805980122602270968739835764301268816312951505604509910519227406046420564054289213185496686345196293207556480929506185198141327187738805556776383139754425543580146745307337819873157679750415189243047730901130144270507383247846467299720741624135773835982579172615305055243368185559789779766232247489277926227706295891494791135452829123959593796391230499110527632441084439612775791029947757183870890282266387734136142863651979250401205905026933071246238911471117991158121521168192118600663711188078544778459550509253299694764426502911352619134240241502475215667041464070930517179233997036131645861276698486318610517309995443863319785063945926124913869970183136314886308629407156384544433013795061948903624470806388068988928412082187968989699917064080135037748244732168589008681869506629743132402819739280583015946551771315426181485800855281473212656310131910798868617046434205146988365671611847783997641306799478209235768094390341034279634949819201872669892752683657357866403773059301062584022075478661751541626274492664497524590910635284369705747809919181147691106257203844930834746486925028083762154068215056286970862203762402555677696063237651211212229357665441398285541206786230755896763215957717925099802255354923262142935807833374582126616166379637662339421537391074365610673742256544734484651352967153826364827914878500495169106643757742553259750275466762971857977258076316488249611580110029128405052277002007927122314345206026050608649189549840835634533968547910853931612562315265119793236420858743304832809467947440289906846214371836635241328516544866954794392604540195118968348384751007198512043886166671797861457700297136419517405332699765082732439726781457325022258119994461887459439555425229434067577427326537504771504116523006897374861906469369996419565105601811860170088440840616833847520453080694800286899947260309411074279221009773129507562721183449276305762516211440220339464722234655371612540224353929875071555057043729937471916983467057628332638138567525027319788035109707069255166433135636096231463218245567589845440997006094095230707398026107132059423346504816238415161648252269622312095519371985899295418933177882276883997300371331955520443101091846059217217979475055062885071270939429592869583045542600218252880117329358031490906374246025729764425931641984030663752522909479232859208613012813969447745270818998935596503919337265869927074507194281330768839466027490539290289573151298082230022828278833979205733962005341612045568612598340865466892246191753899078371609594141254978308932511712653967245178018934787603360541779286462604730225415875984600182215464302195128144662620476302636328310087560701407884976918649818744296413131950519337838429435884809514390940028806715155117567079929194672861815078998726531244776294143525851786802103727442866424016749756921553277192695956756720894644371248276209216589336683375197319638544281130497793305340842063623644973861233164650844459986935521556262991385434153210659150557057009553666623825330851622964394155479045473398035362087347711903997625977368707210217962155093381716528721020112812481439390504666035337524840357605987498472511524012708836223245926026278215287300510448111232771403166806951044592606893376177989343192321413476720439484330463461914517412468364811883024516280124928056079236894615544711338576656503169693503783502836477666885852038230515543002068842688598683692061828595833963447914543842370547694496529293266760695591370988811790463519923490090556464481728529466139878099772520005326020862966550996529431802299679098908627118811201512072784205652426448216953652203276028370007519262726714053168933346420678739654863972630186205067722284125732388739924330303429795683602119012620200555738120114747953764849770730186537766836372923383705594830310557404068674505323059757818484399008762909159213039069805419954057518695913005220538561006475281501824188520807728174779200453355525918963553957590894134780061696431115053325022928252615606054485496898604638686100213475925433135111798403968341587462347393463701401410464043025707472931596633708915927405841338260756764718300066958055570115129744232959140395940883589673774254722771661232347305680149764529986412526768144303878885325448862744630594402226018302897051608553606358305695464210139875581631823258926998350449487762391306103067381244692951423659477566609359610892719208087811716876015130317092689605384456955652860469065587455855551426647685122000635816300123691027298419012816613395402285388433949440230438178672365172935180373187511277158645740766836104627274335035758021291745561118934606875949216398645839807930498082096877552664693332547425902144369313451746926530865189728521227159554722754979363582426255905646277196322994939415707946409340571988544791432585636849185567613762264054300690448725868111085853830969287276577310486951326327637578314461603770889294977001002593715549239255456007307790306047473000272269849027550249049948025650835903860131826509274925864624277830512439088847309015373173372866984891231649505841403202390971145364815852594735596835643638958815136378529356148376600777122527831353826637514407834469002919720779756884552956787899009721956626822633765327699241198975600976400383237366470931935622405826641354269199092585279171579711340421204340112807225324420941081706241269745820773015917957776955000796336880841654261237481720799334398251209259686716240987588971360260389155198158482816435994901827308141646191280336710734100152131014713081381100234783343950623379687297192986912337667977573995263197124137526564457626907260736523474645746029372234153622137789578694102170733099194982064967678775809448558189775699285601409876599030677042654112303660139537096032278020782652280123129570508644463571181930820610128427942001975634557981978624998016167905563990460414756493336001450152040024491972147751468336454656870731369696602555888166445703070365590261626297851324683757052465901340017818277937433759520871672152188663819990287331207602151988327311494525042585715367365109933860937549140920433315677575907046550119528050925075763622481809640315470013158778456901951878450303957807999123243608349431685962284550365193462014487097874051432345811180712708556604857646828557607743412705876763271559244089672269676805270308908743023076721814439260634513758668168476071969701797260165273422690252833384961701496844081540096230385399860972390881472016019319132861654922008631517875845966640614198386870296760488812898587278987009074043165355294706358090142749255555496876851112946361904316696835829745075399308098157623054243329552215278767376808087080271921682225484885246329682507889272802138821201154853110229709962168310213530213732528550231587313721196007816638136303268560696964514063556491715983310533731217923573154351316659047658822502401707765779211696391365405914155975042416660567588908889578511637763147152084525558919840569179761313726339651842286584592259213656811364125318441143057561945411464667035694998082357240524769688917115862980725950425560044134195644947792701304302793995841328305418758000176473679450871689375998903726338565607443990554713447531225907641060159435389771326309295760480477252876035855798693747664952429914643758470698374164773343892914738669305008399016333342713899583964141662754173563055262175474197776753916341355918313553718002859800737354133699882324137306002718181709269439455807140661071561530855020281319139255166241025245806252560514324836254724259224847793383582909155268007704477900989157919118583479228991317895835970075423986935710201416772309363733054706499431352431369873666847826660214168367723336114597179714932647950094624443898027398199364452459429725067583511134824584795114999845989617738885983889959330643141227093551916668119430471538194121671813205981872900120617179174625777281374707286562005402492910825486999893035017128333836499626989067858412241540766854597395252273431464497655639001408594601246965122516599122345850548248029067792272675240366328930901623611857293975623540646430806311228195445527988365984314317710052643649674792383024148178749644500452884894587044059377361453734066798629123850282228292541833941468169841089752994062565484127801645215188891717112616991100948415982036780344355887651263334030414765301115435795644018351576589601409794421468076875376556870745735052259810893783101759076063401183788894485905152677223655074148439807187873926416592925143279356436865461424157840951797142866464703379357068332074863639792408906118257610473343916763597794713035212860801147449825996586254622989026593508033401972439179324004316950765595333236136343951384863784407808267670856768602268602870732465459740370644586841401793259160131100354194619773778585837540444898516118982745393055968871831935197566828675242825945101839657777739596856734609382233911644438108560256941986301142492576093773719292886154954455723697629179973619194688282798457839889026979949406586259464266747582079937693102985364354707862833754107225631790840269884980785960479000642338318224137391392882328496972249992831333373676067678766801389367095010979994945650939964141152030138693248721598591206842161056719346747395432535497553557634081590720516029196951681971495052370941715280115471580016720439028139555862978428994617292481771459616425043138490293232193079917281111675132623209332044462425783268436836471176080895762986359701326226217183419202039601784226589988859150334030779780160683724617874853867684079803715929841101030973748348740813660833671269412453640026912833192431099331721988364230067936149058455822238024289318559779355610130567528698840138403550152858507361674571781791981097079395629398183819210670504026814286774606288754553028696615859624127727983739190320997758695620470271123137855858978056959175123621478630130833913299577927310429840844817351830687984201677366771009062379948541417959868257715090490055606638975721400500922308073012565607236844728125922221669342041390362264221537331604963389904632208837895505354152380281813042061702083049479001659848935906222832276198489827960902891012982846905616695379578179993751535466344307614646841877404717681866099598387238890406214902770542044230798656058620092152492004725843586778030052580414705756567313411995382990150060180142710765249133495066378439774079720667239619636865293965831738164713293065330745339019423813711788769835230606166687856772322302681192791312045937125501055912115051718102184043466966127410420992872852150574632831618577109860729880917836674610474129964811731243231517760625966131348355244446588823266208001470804361817832001214343335427620787590743576926944921079101384277882037249792653765539189379733214340841682234815557068828169194061233603330692248992558421711478862088593825106043397952864947637121323900056870133235820070921887246673644895532524059355707124958175352439425936693605904456591586079930220811521104905032026805234254782702006734029602216826600167085718485254673528542500853384279317923361023532488327674239455816181018194520509984852472704055945056915058680194493684901359378112347330152079689978782427960022358684491661627967812092612450624648214952638533585085328215171162532237126151524445564732902549864692065225333982520417064380126479338066000817692420182604499203589270172647129223739463495409939239134277381077733527020280187029581438727240172968734388616253910296407469218820966691883952258522827473723435140588976657510142635482603411251154246880547222907313988494508127182359876339554966302938426264175635175856494791139524190910428556333423654640041152935644331814276612036635882754435007995682787502058520978290165418255306832141119674977529690190353414540794123257167019074371878187080311850373572365880252026514816285701214676462893038272251168570818756509180135058758751942356528858269932319622216693723160433645690175144272635281938236631973734426972083382300248677548367824599195523740456043080834708821091161116047898618790152330064553130795010378448892741083328167386512086280556442593865408451048293624476173867421125129440404987670960240560700031131353610186934034701277609839974159560913339391302973863375552720087674512503677592155436135634705307426116718820912475533693538798470978738878082094875867936002213351477563763177283546167042991007353731346784189902103317225191649732902093144222154224631189151702169051368613795072404992112839133584104685827077575970802805268924766892249436511011307070318399167106497647166011320724333767423154159975598064411311075319063428565284372829963164158143972219002267233958990379091858004409673432104410170638391247886482676539896680516699136032027429089633983945427454451355497627972859101887207703392281400680259814327005125373335619726147697989605708764264769397700687881138899590398629531861160096989889419380860834650315764347738175731352638475651899205576860621984342666853670785759444172201611742107209482637471874482756093498196716971502396496245106113770479278601725071354004459070419466781328945928265894638532608226567820708347383233932350234349547561628256890071771121273664287248452601166541532245744537853536961606571809465009155168740323678114982972397098839872110510134461204307283175699211087434799453056360337690534508260415211949104972332045934271992103118315258954658476159049376601605964711897262178129309184477455267798739009039934615046694236202878572868864113595232311137682958489496369367012073024178251270741513062322252565969379212638851150933598342346197949619224408903859678433168249776719767074449357713333242706904473786694912434915571334917892806172091978945945288872811839192416495531712492617080317809123573953428562439426965408443691528641929184023588976264496366491091480384383483487394169323298438856805888889265211445016860339245484494922819348593594230398408219441433260863867786877893767723736886731266075685480116659034002815942959559419258080149929004342331604629885154201204489755277913839660176856022046673799392734682384408680441622997038534132453093547944175907916045179475942375029488921001311175017900590118969883567612480813068152347183612770707606041028092225262526637737537298849890226308761349515482723806432288225448927769318223581531735207064036105358930950982382142067747926738950887625378405159791335271909448806130640930296945637981684582741567148756374729314273209808594154312378306387587685682406209643159295304754473784509430057493756416031187542787331990755788620021021207243227200736190320833204732737896116041331197957404020989075547240319377023057415232683075725066950925365742436236743792344712573037279800608017373252986819868965244166199748115892403180684918392260991182046452039292818236205489251516277973598043562491470800201212957490963525152397275213128612390542151326651216714492212061123663807832439195022652807971525561177757646387089480290871335695656984744872407858936187166442634421301983919348806434728925374351034298409110682385777020288793272222642979473442264486077189841881670109728843291786199974452032711224870646345713861590208157821120057790337255664437388487229865307423565906046559529447571783981724303757124667648045898771323390135131741384647749654620955510867286510078190706060472511509485507396699215413142339754121629580883215026783734420407947358033830866973122503748094282413965614731438745407634877791334111849922684582751758123826900041431268133507855836971916054672034182668231091430466720138895524402058507747865906847194497452755081586080310598967815739809179878369958805221597983982619056834089680092846553287500730510576998287620106031608891275602090996823709917470796723512101141895070826151147655168099395194095335082841160619229052998261708605261816127310890316119149834168440125804099072026509452670002496551860421056246134956721336542230774439146144866044604546614120169150570588374783881657322772923864048365733380551711391995114455174943432322227577792189376816756266046481345626198585787507466920886406443395161194204523870187163178168704890045872082774898173544955049454650506998786898692293614808830389310957892353824537956909512411185321068290161410239323147269761229770388829536608578117194208560768254371729356388974012394833200615328441033398353102021991324438833829218740051543096439060420163447664835448944192369924537374521947058608099694077950699193078638149378133811103218943154277978390714090533630106763410395953279285406882944738408091424131782450995908177103782949341780353317541867507437287999257687925149154205084472835065807655019009287372335295915257981228698592597828529668599851954393153385129252556542576475778723495274526269967647609509609373725529298520242123432802225822046937208990678963360277884069626026144449686184698574396791382572459090896786214008326666444057045452896748008313180538453261184522830269962533208092146599916620797259630292674680426098113145407739236019927293338356902473310389218491960478889312825263867614598212559278516593107220772309086270636079414029278374966395293658675116561877324526634594129322772323431643317416745147284184679405910165909658431309333966514232179295188621877908736280891215361231298144024657561092061070453812322675882575771008861247653324443354189762076694198769953802918760369012501236920940460074139729424923533941565999434569177582460998917305555413442181621532718751909850205472989672279071238265568779834318448046602992518228973145718581210998828637360704442143770122142747365747898090920383965935602344401088370124981413782151705260132383197989807559671473483218072440830805566213804097514656770575201641498558611107692290479293061312015198828588815098059412918132113000070254846798893609119462872688734331787378907658564164546442204607616863382587514668358771243100129455527226376153299637783344470887594798370276230381139280832400005417915076721907279013232097592077916368197411070035005964035149296882085183711009522715259590067943858145706325277166404798177441007787412597745790563708184697804866659535297636706622574293397412799205165874903971980413856037245249453457166680180822315743600730158426860842448073232944999092688090766114689418943771315502500875370056500551217165927488166244179231490411163789035507863669805708841179450961565254837907283675388531835155621898999866496157458481569140907818452996019381085450037370541970479355681100777696429554866929035039804050970683153962456868134952620919367974814907557639896421468145117709937736734471442649405972936246534066950313293745315138157149021143128482436752710348247992772953056706532699402384364730026013476996624611646538158786647971713987867326584713138762138486894163336839265679855364807031723310086423744589804644488906437128584364918152629702173253012025015585042079097911102073406231617192369723828167748809974307481750000851061955935515582019209082748071326979420943457251702368462649146401294625469052483858158478936420552647301463083931650539383246288580150206453543450714337352359863034805026686930648668275286947988639058619033218638586231746384739479011026317871522515287902282647817049617742997084690902560466237561053032525571742103686003465232788293165327481715887971140061552870058694785419952743016031593405223942443863236649970043817636856784043792098675391449021424461317209760021043931626880950994469037641335203592549425456194238531340490472041887732964909582590211065920286021446921789527590094890975214796914062291838584450345860057776704919102349740015596154307732882772073920410260437146464306004209078626517588145776482938000886137297118878270653804409108819164333951778830322396489082055458499066718915467196988908890570209066959266719294220693310635753680069044707756746244557373771199322802701355584851981200086740499168175370220416599627859415219494845901247356675340275672965167250121024702810640366878935912939374294464033757539774924458833938248153589437136105967665940680025289625581262597145881215903680289082285030554939568162624888929176382298411674636932497073260196956222787271725685554160106372873416169794901061199770664931920194905111672481462246258298741067308940156917759331459278773386883285624858811896922770238298118324476218392437647011305408437344400927614676568122000031622526163809673564282362323658329035573042579859792859325432407074041490305694247578729304233034137877816857361698687557552393499048623637363276526026752679914006101000455093223375477225073991329280494579556086701930526002227056839613129112448265966992877056558983943633093027760337059321496460962563239173203450014483257487442240933986220830913798541925276684896993664225423047740124943899749861300844463446923361633242178669816582817564835497800262942574940546984137642184318447990081047479020310338290890865093732464323652988329888526174280721262481088670256770490147234219226550459819227261657729564309416661570389848255782786573419379521679634878288244852101410123074391700185100047483828027854197418107344784815327715643205486541008906420595771893750653298822890630794393375916206541428118912328655135598697134729121223579459825720369246469343896781125639413257168439665645551698594689752638873772504105194923052374938365552202597775381522348647907648756936747687405735095839126288687670897726852435084333618754997213076369758388394611429225073732348299035898538095962560857335681613496187329735750922428468990924099346477977241148819475293869977306562622689126818421875448739049125807526866674830869224882796177144736532328157862658424588941295463969876702394487171731509790809099197574255209565641596142835647252485325078485634977338613929021100976861875196749573530356888755436989507662573424667383556906114655192038767993344371332729932671244226559213237669556580661214299172906300378629280693871989012131819146018353347323268859311423690990831727601223481878678921551704258166535649355653125503630274720603224393279854565495424693355442903669755276652995150766536960071528392165546296383173906392348700181857016052049604545803996982376348105438286623343049578759687538169725103800613922159937886720366296766189940763376732260667820156548485586450769024060935707394449283116121742272135525183590692461167199115798827415542416101523386663225294529503296269130432497177817259698671345755968015776887214509518030215023259378124499368617792773777773914800476540200578531677816609608767831882077206573422926410263089861576483991478383367839858369852022130003996465756268349647595665975472656606421794865861748939817717470256470207367714121797084644847514452733689524096689949684470925320443062693108065482027452305545600339986768933484329918900389850159600697424273577919692706223352339308658233354246167318228279315100519932297445794562853251530786138161854339195837444896379772406223540410600297429924131514915199949803120171850029675054435686134364012147867365175601443977852131565989008147665565747947456404428782196854854247799032251373616087178041566755453325581108506749938782972870499236788759163095993166803499787005646515651136966406681691381609460648492732289624962093409289859161961559547807423983275649177567972910097656371093945265765671431246897448285251530124559116132171624028163883099247599731556717853381667725989951429310998563198445091921661691812622272867959768446183704411921903329645088134523302895071448158792654326843575820540450625417699357595159487862320576531033105784123420134438006150281103589903626465327424425592354677162053393702536752778296278789642013495822779425698171559603100803451456518246962554325890131059091899021662951579692275220454857512848597970151232927499422165044261619497719866901716268912081323066082997719745499502891929057581798745421360245571847438234767219960344256847049897455716354175452510976430420938397958864491307919709085136144346667314944001931239321239020647267931813114237766707620027529606833835293140114318173186212327549312782306406305192992778226141052466522597368218863225516787712008491300200973551039129310789270398409532839651747334133758006408524338585043594508730891139808406445896704211195970750481798418009587645227405022532269244573491076698940695506505514213911324028156690770433483822964320122394495402493352455380841183335592961808588647798285286042121633143616579876924219595502288900263860447207934452892298034008317522859380239848693424582236091070104647304763370357942986974067517204281311955447171009232506694580286817496000603943595159645916031569050657560286442179486983901880550431713371539840546326708249041477159071620239586540365823315289434305637817184757710769325542008620052807355275575840933765537245172501574876416850544175711198571750756929239622469213720586238622322292064259096315454487371436320812544111384751105528851854804976636404612966685850172707456188421943615875207598531801876178977712589111201469280586380265677184961150606345094970381597862126874362720702067912853962301253814931420913773968289744193485383161592760342967881655250869232643598116202514825996727473509638538276534217929084638026000124443574127850650838581891741361842233934821130708609454984974106603768363171257431793409861490964227697306258615259459923446104705528503166819384995373634390084896459980453174794032572338665371050390631172318634029940529986465025835450695043694912173389342471538172025256031889456627965537313151901191013854796270193302443650124940056662226452081897578548797822854027939591738097302113976552731523609637878455894839445197073502182634518105706747584925375039633208761132648928799914578545896312457728248217047424327852358327634591846845405306039853752361601170682532910710357287030592128208855075337356761156560564117706359250282406844939233119920106567291453400068909054731995529059143347791918242979982311982502704230804834843403002684882839577188392400230544741022530342079675290763634651744848695934951277096708613452859729164406783929010493822990372497201069193772209263585889089953102385676844102816293543932535091190833863069462129733580850996122308072724856230157291181713156107741370910854928002518754737535291009837103070041252093080846966515817964719967153578740516128074992163027952599287954157661454734465859113511134197939662205397704557358745991021918373254843150099063223608670917012533093373064472989204801803608201846976835473008055110116320512253367246659711114821521722256290042901374681119409460678004200506547893299577415745800153560405795988091462898813799914189821539834446978814799644082616207704240478121207127218302975108607120639393390607946239644198647685137886316740935813703209844988489663362446934168356508687385605145869210148972779717673680339600994652103818172340801624524042462891740807696345176762511214348321240326273652788558513751381147023086451967676636698698282384741751257634973455470649090163874885410234516418855165976648556426795636999665310021304322896850587791365852258824489104711726786632151073460195723043370602680128117360156508147326828710999946496468145886313161595921167548067545537242886001131738315345968375200577688425246472229396643436277302015108103159957688127230979331971416569485591278526938838752878777488154063004187936706261305573264860231623765315895415848121253744163148009364585479233016062826307967820210275054307279118213572023164175505753319358162717525772377904181577641811386888346074256004097795445945164381643369521225100088787852206732081846786122518715749730304822318712394469151366592682741953082601896161059680563411207496813571638744634040066072356526298808188645365179112317593056583614322722080550943451500270451446383247882146180479197645109268750599604775233833224393882583086005368956079780559936343224324854977877715065975657531015606032267536094504137449896311920750619867677148276620519971376784497143851582778772190111728942752565072214296228700708811744093158663923262310551119954504269103708152138702205793950999658613066904534841549164997707032176990756621798823289934238227511965666413042738358758348499352465896405918237368481095164455121854695814096532789786385215946037596587342526887107008749042946934043230906762626012422987645699985891459770994279859801444938571736302171193162956244668542426357025024450664857295386593838861711225614157870201519846449221688641820633974468115081653858795593987194768340361584726752503397685058992510390934497348401367515157221315522316973557199396464004729482586623551764973413753999167710963603885481320600015248508604432230559494749014515785150118109261192804518522890749733974575866430018523053637337404014577326600712759276199778337284875478064532523270896028727335756764586300430396012545678596223628613134443511320985865327326377681460105145337182953389814013118502618511512639474279693706211804478073743735043597358517801603224982531123611934132906947336803486495746204264337921468995567710750696050160814300034075668703666481445984670920386355018314353552323942809898891723294923904288481998632217598338567352043665486183073964427227099242475523846014759279007719630496557488569999782225874174825349465610362142365984388562087850595981853916311885012539729333834043117534673964050020669410360329899216620687793293922268222281156686401072197794845094635956448858681075414240134137028317353182298247042871372665633779861110281760751901730483961470295611840598319962529217875953919902923499335176610580214452415234445741339560284906690910295265186116111143339380408666958043948688135898309893684942547361082569698434380807512757378921148974549897247427182920718701499960423658599653710089028848019517127763005996440387327002547710255103547699790980501153960579781992720091006704415702309247475699553573482240072288846485233950831432139942135924580911173497591456806057153724885201418968147144649856938047787248163288274459002450316482708709535896838473569495499380001125055269986201514022169007447048431280920185545992022594637788436324291923077617330487571983924396134257847986670017494070440333742804714538588140318869807918393593429794752950219677624224250541062990886443120813358392878397320868580736041010182232298690820734420199520886963937372004565947277831240357989012473846582621196067476880123818642266317993571665823163155687339725047402619617527335444591396465420107459908773041789679721862391929207809996991149383047904194882706526907919747240750107639575938481292486438536078482634016882601585898926002216386375351018326068988237187803342187682826300613104786249107323353851737053249572823049538537929850963240182833871414803123316889334464320748073483468200330376472378506641549762603319855252310434825882320909627875084593200901520099878234544472797581837113656783846603206984949368210570161628733170266952783635195565772026427825966084587694443082519330628972713716663633798206650860564648831718413664982500168070432733729029088837323354478673176960129362596129356710648108078975783453393884732374595932946982649899315692239523377701693097534424173632919478025282625220502394543234113322844773220476311547027159298630188718126547082138217665029421738464387606033823747357360539528344301813459469569683269402667201125644996430323662231642051057283960975391883902766759046162896482431129855876715441747009217021384080551224607506834963685065298997333612286038187381039981053749256768586798836671809220925386552232733407758603480924670629990499353366785380804855651352597259914863364825807460087124526454358043596019239403784560300966234187990372211368424285338813911662453659524685892192490633020317700277734260943816221799590761955482535580867001117318264087516861208560657528945805345889561983029306885764973039112320169546268902021680964143839040436829084079297972388763969091239739666536925469577028884211929954730785140621556022731027247332576128174036322293785316607406256404029799450949687221300204728726676782868942028839187354156977762381041510170576496735037713625372308117473957332386217127134003417766321805829419583472845371022816836704434456688983685463003086047679231554192752581042510853145112763857036242863611264647780012269055934808840448488727207745000122617513222499324406957948243698140788447776277558691291343737779573879740487183351212701465036063521325418391440621195353586007016775270029218404021285652418314404590862972393456312270379602076271939258872660382030801779074738327422107203456132909996773954507848203579948336613932071491704891579331387184604054249059046053883781698460471387368695948465701695697156707867382502777908970509403394843731682600958183835777272943861488609460197688400965886884464092537818250146799077568119156758142703484561033730957842999302002324689324513730332856868519546189284979137095696879844294436982931531154398979399767579941224693390809004883007200109118447599499235479183803676791187155131165292011731458025045331285009291029800709413278482584979200432383289260517483028104699659346904100535026873215178436860132359416095784203523093223195887082130754513494281111136731412411133481829711464994225944920790786219389591920540112028519329037630278158055483618745684959131795411160172564590210828177714398588392437821481165151665235396549637321149361883792079156009205909932181562611571278626925292776701754031989050210018181633718416869846419809568139965084884122492249988027950683899287472053159456180290192051529293525745038716767673930135826530867498995093571635963975517280142863880447682405049404611472890886241264429539599284857699831842871072695148039344068368282230965297670269968744602076751347910933847017714154038710141522305079278440429718516275460630055239579254457359097468457803069295072513879235378987750481218461354087790316777009810433938404474980346087537125498467568316360172070060780376185408185103718623639730739789833903442718147090635043340669554684992369754944034195181676866567223752592503075598923318629314026313578786437488008643150522660602038309314241142881739408717144359068071267609928425653960020763002981821372410539638839380896832100529509131706908202861032777712460373693321732818787484423764282251786280356243019528147388039657368077243215117589230419015251113286840748342425607141722038490313678422719174478004993680997180572735201008426619748022058162573671263418858023845371908102477253676349543991725012573017775376984963301471710271270600988422067160696398362150830598007808366186564742792261716182891625845503644688978835302456935241400443836735405836823330000710433821098534085949986175855468783845346267761409240868788819897610400560465812449033989943393882831714338701205640182914688141116781369252193703475881333737887250665905479540848706146337076822763206660969312279717341867217634987487949239420472775377272036171374597456478586122096000751413868812894595149816687965993674901117906738335385290216628221345839195255026249731482721310551880799052840868061906549839249754315363160532653608668941792573933212815287047997245504647622727557498399182754759872548377508615883602101601589552348872106543979261968162962852049387948716468407197345962339034126758718884006141046794021895292777372505128635783446988951432266454491848563426073891930351632782459014917856613029570093310754579370006171689225858301176536223439939186804650114741490000162177773394730422216571932128942532649845353134439733341740205387491493860271782766944376804256215228885554742181751970818036910024111976033059585058193576198991930382444365094507739042726013542579450543563903144198892655510725402069340032417577276619271742629965293703104500388272146011602147388418593627233007018328223786318712863833077925502877982011160312531478936191018274636233708367101338397972077378266047761117568394755171910434695084515026290149352628407341200536528756707379725874032701338883751754061726995776326674255139051006626068520388660142537524009485778308755615246338103856848797160450584232862542169668330052427378451981210344815364076717829833661553871083309768445343796109744948816292653829116606564598503657561231766891831683126564420486867909664523351364913764270322174849233721636044925841893293833736492256566126395329174560003633586529572443538883494500188752038525971172001649425791789102564654816066298197159541687466174882539586284355925153771319243230194368059839291540976306036383737797459839539988579208006577067527677645492341214740523269338581731010500184812322610103575919221718216269684532031615180609388399022699995592490263976570695322294607408303317332466640217587556672062505854585285234243143184046353159313853721985995653274524727597750727760890393215867930358202844234566753486412364982298151325118648371109418979934304575219486876173938443186998600886905447734744161106348275120299275424135692423115532801320921350507434795709799096643211899391402167878344403300977872317605487147719840138801816685805760466887894314017985985439844926581238189543209455785502724637087284058160607965507173018748582114786316875770671106160986363990320080554182771156504725750226522221521289529325417257915770141891157490194579988998159097575370059080809967450271641546467863449292286917653554650833236330246046409710012087270854135194781887032693975258238140789675978138213306409097910559228124993363430309902483302799315694342934317804924229124112828354674766366113348743094444170741782338627559820631544074168945840364796777453123130992832655564827879898113788787755459524076210330268135127148241510296205501218909403458811389087942168359720234381085372398376898676324431605692764528202424593579494869384936811373741946462920743418163793365338882833758488801309674368941901003389924505983025441431484877866910354926174008831816154891715729687450580352243282948008105141566488084540793418958496655369665988590924882215413555375007068888215109459893011298150311813818673478588394212424182628992520586920436732617059670745608217332185179092248137202204996488847211677927080313801481314424496503703351299701479178861236932650821408027993637176227242739993765453035701448596669833320414558039555765697143551490582691844551606778260529489624952881090260562463734483946770600088031012049458470761856529570519992402032350650224625738078859452677097078770349346618646371551040604932049266110536758156521987441640443044547889236152156888395672420933312680168192933860309584065317075561103858612292274078037265380912295445097735424869148411496436306538872366210358826940425116214123296916543683329410717919436695604235584497012678438226018293943545612881331256652963618305407085350693976079682164145959604924300264365246656788218354139694513130725417175049036015306898776048506338189244421495900906987992952840517185557057542274251481175292791295461224841687894504950005735928353283569366216667216858039974152918184012341418843958698196199446021222700405821379857540890410839910279897745626621481915248761722656224600878380591011826059472054825690526834383859951154784343318517769282399582298876432319401948043043618501085154998219215380354579281602251412442962774602322041468977623411990743073638173380071343460779013834478070960395036701757313291910408219598154978806280047884059073057300936552189836018986291119682294934663725704101275826411160609491892515656526298210967347481725753655907878440461818033410855125092205782598755556490142388277897535524553558798935943935299930044997313988767873101742338027766572755205768064005183507250616282341103877486625787406525281551760261462530871794229936121076370409213137784415267107140914564016454883243573955556422968988939155693527423650937198361501875083561426930386183537347529233551257160610364552428180928869599929002706775921513427963214589509302282983099169115381210348717877341432618027464452234378403125505160261420570201729322692267406595326123035689702325549694326616431857532119669990937302069648532602328965549627688127241349272580758644543134576042787719332776921948213382559005432828090973613541126022416726050599603924939952768112798484965781438919513303768897960266111723577172122832270654854355137403111261862534276149789561937137015852889422448181471206646052721053597924462188069204837940459628588662619737747723136243656201126924503351282573081145634559898606405651331316904716863415668992073009698005225252468158123135049800030313489771801018789233981250302440547078816878719306709128065800827257703061215129924931711385703182014333577968569466708553041029673543814813522544433182433318549920202980594264748655022101263855329067897516482200921524487913675846409648825865878505897019494973755376535376513895631502491567269008188329003084941583343416061240643769316208536038936385407077981015722205339665049730017309899849948829380758036712452069253624946413969336384040599194320030781440158141628441434474817223356621412332687916857040187300081139239857740394566712493361886845673037815211501371164009057688581442298950317007636017310214980759991696453666292541368328129093218874391858895401659152800802070386719107800657430637420096480881353619643389633372341325436625504139565562067697437732749269049457715509071315040339231715684822043436327157899479806552052853496075523103521108153666999851356854100895161607916363139451678818745422101148064085086516763422243125150956578051540252090292241573795837128120424048483917878168471895391829194182829223174933887417398168306848032100945428705675745394512327626944255332735177898342238909137790181679296094800285268358857701844171562542337955879141641244380296779607589427094343166395901820650618576946934415123810059623928499821468126664160716732033323079688782913662411182055778767447175620656351077852617293056188602297797400173930638783650762135172937607548571506979265106114480464273211013077774952202520811738079761080838631729191451381117333600348443523137755334378250415338664254774080032727803033011730291412850635580308121475049706242250952086451493570948763019710635092748917570314781889733445995676697967399971319084483277236595426843245969245384204245177193205331350839764092257221288204149663160483760593843712261571705596029017321415756817582572105529125631698921668472011618740501598187507282244359841200827838236991242844835224668925820408565728809390955086987017283319692075724754502959927362857334025981428715627834662923844762013502768323380745062872349596423698535585223702417689140637494080527965598676906715794299244756523029974288292364875478328024489778077972848824627423908632080284684037271295974548910523730989570819905749145754207842178144538712095151065489924921050210784615527128754728221317288099217590105065597342200137043078195401267831167315514671618510479535710880675389752257823284485748323483786220610354594290284140933290976626475889609028622298460305343270926778487202233989645063306920562683551799477605216781443350704296361960105624447309124727406504818067485718122791011706789968192296187690068945891686125719832586937821375955440041307878194144036326514273934819668567017607783461646737282913192688255267873367526078007718704531304722162987470934867799296415375311060447494172634225471894069943490173372710919371032811195326275292343626766360783257544251690238523582920113247618395252428621544996208483615747284045686776261105366036268298231102071364998738350335670614977813629562532656182123970746137089724172469779524153845484440718166295810320780262624294284997902314611207973438275095857541736311866817899807642198156486666888245737713799485954528288322819553810017000692288883729582256667371606928812682100291256944903601467979832735956724772406222308595980823527169915602321722918303971512063447687381413950462274413451159904128002940338775167237322361237554645441687756628360240421685950049646227805603930525127278535747802105598861460546538184340095461592136466757455219484306319358063840566721605706533687294367110607210950651055483858017399477170440681317357372216829800284557218647873826719384089893802482315872074488997190471425002874166460564938085867993936046030602273577491031548949655605515846490762988315636858728935580334213713026546377611750941511399902994380935300517527639131195568191072622452703247663007544297899897563312138088401100582836537806418886278889093150010964107199928819471813066604907347467602747942635286541500175560996019594121234824814073588846101416913728204081490746648093579998146782459524161110098857871651489913066715609454434677598218186488740237605977938892216250361214704641747522111412007441936156116943339064216132624093871794888521584589694128441777774533883609550888369780723602928486614241226219561722121789935212228557969699516749656139147445033794041505827171282439815133204039444610276260446706786752621035623273169912955207345929376026254984960822830862584395804661911839610083127250277478916895571338621708176763575075125172586634169938818179768580818436810884015765089241665538571588205101715186177472453814642989399319612924524490057698092412619698011496030751650258848919976235766856726362374745612935713657992467038998236314540877705622138182072233860513140080639857585956647461920487505189783403725113922297573368397932724931003241426783941877553297352265466313152543077270739347416434252181674692603804112275552274303386669744442564750293952575864933516922059098353463257222655408373384803932507309364868826675554489066744789694656639902292829839598124538473603180327152438021434286738120279482360089885482656182799952523912309212406074571375652052235164963375269236969611634096878557739066802374010524636378653324260033929714718826579660587908214425682672869651246262664216925364294410657334754830067070843627364673761629326518526150925940296861048170693455654053864582341180145521582608366929332845916714816221073983379414548596038145458609069379349063205927343288858707074080622439694842658570582844402371916279297025154528459951550394431211475435874517592749827838654779844927228931992227533819699160041407222850914258842157765238966636796793001724568972650823810033256793718555590120022790034780014076448886086333580539639211963170152745548427548596138398604995445937581521100298200916047402301924629631513682927505061956631645467798901879401642724988225049452779584696626005622010807002037118679871271911882540624613395213410623908055178266164488547518311829957901909387469662840395600292590575231947965675387436767316149691208926624937804305099279140182451510603758783341395987158952683163639500175080042647213155511864343480522320840163490336036034611806686422737241049994392062739044164804938491107281800871784116089417158054647450418456439804161492148188298347270723353898695656619994620695348460900672020375798215378522354869456140873941469204049523874249015149502805108189913865387065140060865070370078524731146994536235010885345755400344019515248571088205610300992911784860035647114424024876920407154266084080680956900708724171148567614467867405915979680280880743615821101425000024348096455368409287478534909889359486239223282540029920764950598512214409888908832909059903291813922142252714166028617697214262698761611623766764686517068428101707166133649099387146084368219946308387043511648752178406805934652390680461674733894677319537976923713094837385603269087391209304737660126671284745847555016288560026649894526515671663351791807320999462060267292490875522603649552144067534357321339730088348469296516641202568672657596276279474377076993187968356547933592282995874628428012850333385682123220113512296905591962541907789032700257642293384837241379617106736132224612892938396913481520917297542037538134327208204974980175031005559150675543283589370267550990127849254395517484378051817236573867173392841508686110530631726867512817128840072474604042213789649331112005766911476941388846960319410528498908676028827864670546431284802892747383524262878459553812523710642424279468410642271952638967105866305056004768996512141921680776757269999413127059611232244828496260884425981789320182669959351149663040810018227121983857229281551167202397025739643587631825066422753283888157071919671129004517643828063658951365429096812249229410286320278329115703918270477985705859202343153138821104797402373729222224701886443831863705477844792169948266252886110061985277783073692350635841810816181336819947209782643936518839102338935614157042414370660293926473708640645573641372004590041140921547446828572561509535179512827956623028319738560185292612422438532008536197624943301372355739217528837531846581308776451006939745252355506398290980234504746203579476962062382420726888436022524794678684122641045514725656478390751471656407721386845779215207198049296959449196371059617007091242204402896112120418640911304550220082686620468045089909658393732629967393092949499783506788428677340365642148092862970066051145849462215849361109840576839926635604586112759876875693350928876140328265923970776605881805964298925504947243830583274934082161474049963033441996708738205384717688159725348002919666445064672119407217218637260291908248228846681766458733001217192986953272138060451688841603438270568837933623505258165641024802657502497709786642215637716032792208818320193868042787809345091206115408081292561879049608716913657509356647539345288765766654336039228560501706451188027833367720575520473249959677921014930834018299748030214460408313872776409279410010405692472540210013391134892601511585258567363156770083488170825609009163149963773416500784567852476868166692960400326068789802448687802024043654616164256415439922685863372265675380785557820779016271803692395651137143692096832191397728344107142010067279746473892107952499117852844564503728090220899817560147635694345456994655159352332096041265928105763902338616462565792237695929226338539405494604532344707310661001246681950893213723308924459055610984969382274900645938824580369215126494630277391900295825022236288227639039552455200224509507279917354330416939592386825138219331948541094917618911728746267827688122445511447939224742940863661292109526480915586020229539555911287629265610103603178626220535009654612394584280059109006523505940052930623206112605191679702778142534239557641150342132552578927564414210032105769924750080107745461476113384721395260709244165026875742611938794686534596602888388222773735861788162428604258452371188342346064341783943266641520267971447962172513612467953036190594804006385416982858920499207781069134872244334168486725134151361823718373150311746850536825848139201718320920602040100297923579770161587725328778302198959836504460495080502209735946787438313447359995483388905630612713839974295712607062467306172683942880299615156490003464383108657212883730576696574648122846129773794910006260242283484786852301378574655802643476152368088183439633905043924305042958603009441104202561418734589912568994550008830876643790410723085850231110460501082120718903564828238928985674717360368504490116448484062810510231653778893343695121890497537250960107375522692713191967526834872622712831809881632030561881085232386517181069616188102899987780142840542095611547074521926965086526503979986381998670768404451813235709882633704984382877489172938567173467048415185665984770456795771096973143146420501426053765365621034950474590433754618415912538153095645829774411187403730269838623380106758272686909880079591275419264966223508557273497621244547756401514818342932300562332954456990579503265158746361005573665331368114567499499480576449710124058415759641947015259422219084939990288445796270084003528982893722308921068929423556439821163547045668727891809394875268791664748411042323202674461023908360091630525598406332738459351299590102111719202997942352474887597440082587748145847831678250684142558118598049872295741415971194962710245831830458177265952100112161171313092077214718896961167979897690124960193509493227180673567403154381911482576552523467454959489736891064250246831644219345675658220644878589053969948722137322081614117918472003376815194648276123308198213193443879931166000149303852333810615143020471078411909823740535127721548416579397862650849331364249740538030403197419495806760873933551494945722100163593551752369306204078421207728014965361353827481815073582917141279047109705695105872083746701103608715002888297658931318384764298971934867298200203544039923738492674433606746951197726670261939697291440692100891145827342308749884707332364261495721661782667253962895888092040570921394803981533356241204462424131482244664001505740954828372509136262447051347999205666422680955404591718033869787139818792882429565589610360647214256161770953388345375396132253242992063390746002243866499299297913164261232124203272958341752806944007128010211344080573516625057957316046635187639754640477910426107526850301824518389066656971059884910907581927934814556716799932093752851995434713163034898243018858036513676349228239510671900780339122794675511455455509662260045412338989334330076649765064118345489828120787652324322628532790212148820564722144637098030508314766956580710601338973653298026533979708080218816036156384373188734092908499957296993938708848563668229461455238411200422748483888340430515346617579196365433154663531967490596064019674420735099796098224160631633923785566248268572069969437817998569041197193242545365242043955118268067707922753495368882632865586391209098102400850633416191652354413857721192483929399857887728661547852537667092163885703922813916445316249178001112979077378823064203412843597482355877853422915488621307268415559493089370209448857006090760452538506738163917021924221590408884179745734668167910739634271145080983776134802055907510940330599825317623552805617716255804987879761177606726066701485163554759580747999176276806575140309439587985199786649921950628055788639033848960448825162319423151993577286155677629946576897740193518062528846790005426842229545983337514772993096843815260273095807112898769121427955882756109209358404367347200936243539114585523312073057544976458687439850423873607659878184429515075546672533973689623799903267967941383047451259085933158420298173432191534863964621907175693375673080741027510056764016846323935106983731644932013808861687691054436766649228496079753089666147598451747225165209810949200235145975109816281195931835178625128404885138926888586921593867110202921122110391987950554305859297734790262028767145987020122258498142191298048187619769837397234397145483309361867933024983032493748777109157975308869517449489690353169252686203170670905542883077209506419231924058296914794452109845060492804041270479552097279054041054721881260611027957011611166044374678537481651961219224394564032063475821925257909074943140135179291754734529680911537540671895506206113736227185440493197335173596961787939815523884369478962429030524313408862575826747736109392032864030139563535467480664662676211784302397350229309177018693004916938913310250473342043124627011924089313118268862688009306220565888082165592137836136775316933163233474852773943340565197081883988686762463273422441758667969294006585679474650067374204820107584824430445568294699108185215763357301430380248612091422249013440886375891561164989463265385469338719846888794813770969375164824084586189741802329028556947524523827664179604860474567935160630629843696158708183510333180089506828944253660786882676611227621519465152288156787280642831608328961784042663969597272979537308788898700323864051352206363561026412142777724987321701291810979841608490924749804757593448170776311241716251378492612852779967733251988013775306581653270519404896137530478732465612713487243159545310174326356052700357680350074087009544990533733886781289595665532646451273344201363132797176157294461625721171898162467531908728668248973323524642045340728473513846994894653074326569479522102662171716944992439573039860968029130561908733110710809713472996156887092533571987815029395021117411036696487831030754172699701465611827864737211722733086007658542257850839213885546889153401522675112368044133396450777734559767820486173530354051178213544780914991729513283323824764188704725509421714139490535912237352074930264264007600872122478163929612893321581315934415481488145570171149962551008365064937137537749745031738772000324443261569557855232338839801453334313138734420609738442713480238711447884383017106023908301501315320397000379423752855029305132761629118993050976584816679971637547832050776061099659647712466619161274743958676249789456850666198558664066195723196162218695931543924971391520489215036465856234021637198972145874255074031715915961031473199309330041862091268714368122553306220447451020291270901420447515244844501680077572655883813096308571866400756445382671359278285796467070069034026750381325130956791298763107069241432115125518057320697040005179729584861482400106957019288436138518266272739489173543695545862769558201335084393936446778364575584838093673509112612816297370983851414863131647518957673683574900118854108833676133491601199762526753028700179337264390009781855264464841249929847156245430818597609707789893005899430695184543886454364231902264325955596017946797755501537592429988552547702123303361776619825413226198574001956893396190883650294195323230954850991222342181999551883177083046699289708061623844896301687379592339249708662285318302528326230790957092588331322498020986413628053571008584506873653499520011481072447056893505836016739398574599208745328366669258875072855654882412669854823056177122125862947930665602272405861339829422570304440219201862693794934911088928725218877961824847241989559636842604726021961330874458653014128064510399298928903863549350865276095002534759837531242922888684779773699790482021746212807245928583991974035104591190247911140310425908754769663810560051676098300324967052000703026539489486786161287187077443177547926204468758986677007930780401820591813726764711364994314470792992856718857289881314243059826545460183617871404445499271337087964558075223825089294169627211021022695185656514932621162101880838240438424404385400634455536115506147338351778751980453228304843484656495049937526114229863556024922339883988902409423802703678789923270327213626483235641814870914464198774837798868002940467749315741987167093357896844902006861546835805297505665373818398476785939446964682441281261489272331517897590799143480342677788783853065478113381850111898043051314825309065636483403158201638318546788237521609705443891535801798149438764716611110712616094992752156883375312148030526149846917364494794384645361585472329215619051916064172619280707693976735258867430862779569273870783495484985860400597665779482164230393323429197848911227874207757650451759650898563420843164426702754354579774750225212092659474536629304474253700568143410469311562163710588170306319206265212146443403813713116179128855746009054927214537756086794393626336978432150152084284009817047198772956278807643834332842956065829968337683987918507738644868914287492371319795118715205117231713476020202622921777743445808960121471320915360049787033467481422534182960456070558093026565192539115024277066184569327142809463184474824571575017675279155542398610324139059152427680622027489485436552167429163583649290414014592482533888651352189956733939766282190154835198954709192670275255928116064199283815753582380789092452681377692562446785750849233229046142433117602593858229993869428437075805815776574420373232828267361316954654592404983789793103849841352982184765063961652828297975523259502106616747229119465008424200162286220028368083535756492530495010281474301626515646278814246077718300070577050224712742162698665261977696553314261438529060323218506801354419865101182706296434810102943656832135518404709569595242871947543847956687771843902364652995332294438818079633571228127614475080471891004522031576064078727572445405930216565990689613794404120722412400851318329085676586968995444823707410465906010393552556320734493599856260007513817802901221997931032723205702986407397030369648885791425259851995077125659042718793829116457213600068284497511808612798387045657188538604788524914434086765413827138780410325332567504918554431822789773123215513958546954039190479130075467137293024687159181168581397906287755054471700925652016830162868620280061390138993832471513195799372629983772019525875883978493469701573233826748537807921158298852127940216460813092224924095361099663774379260068353875434465782428974614511959373682224782735757830783818950917339237344640977908736268250510778926931919206865611304784268057246667312923747260652396841058707483782560979527978499015809027471537709583485669863533367587437854518340527262706779081754183729572753339026103981406858504805783438861320762285662793688095136740357189889293897910820382443998631754443399910334102209474285246362989717078814458755399612475623688242595630083571348495211119957286383797894310672963734121099754458589636151877761229313827669234425203706743491328983546799366315236161772702800197701356252980071791074386708781846539900396772165576240353991630622813773780190758035837808614954624332303625416985269797230107935851399099817749487487315726185412560284377616743388398226111671279302683690503421926458033761501278280006477784891216186156004582489869535581565409339704545751200977785543460082861718733219363710632628048051511647227298883995286522029942102645472381905792011447242861209591098271546302497236756763940138215828132559578125417180859548268064459365852200930434824567571748674610401476755649139906973860368369753988367464857553264985123010388953641735500960558647897436899774812169860482664816802611294244797552905314006424728529565238205185352232048597674932013437336378202893454243643320374470479784093251392546579407343101401527837980155512846472253714090388640491456821754022945417444296004151438645561105790103031994575499132804001494435514387849693139629079142947338565479800899790581502702375871716092200413060637914790578372834462127335266514120220725112781468641657615883989326367296722163904603810730509605328939384609250690771323901023058339528669790308214520047251980159948529827345293835703636845322541111000657174817770074482606876588363239326368918299158458323412494513829009585506335006136117759503790190534928027966357402636040147178422457114853430348212197044023398972724354320861153004338784550617378625531748159471970771094870141715157361222623872197124647580207674277677846629550900839075193041481077683498264271775886721743596285615512394470018793203804071279629741646152607900789736361097833287079512270432441928624822996231340531577422891872699175114654462706992984658256943221063347471377202942193233633747614316507166097328082926395608185238362600543522819792073557381064257965200486047486863178063810798520065776536679141288171287327217925063010570729558667323469981910800226957319077090815534172745683456286699070972409970536051407879542051337575766994305820880612618218290793637761261951310893900816300700487182176900751804991231314573173574887249816082828881907735929212488308946876735536971337805166143248033063391288706178605973177556112225215562463911300263273528081894574313983249144957473589167099151902043184169415328446833559374853352622897921368496556719527383007836826464489364340651915999327689529136714295672118104810799601285737458431283983681465263005464185030618191843048604349011133583119882395473764452093016111493341019077760536330335864320829392110431232627765926881179291560092268210038825055018128823484836439187936939306005942541649895769452293045868599646435713309902790812326640500485710146674373709796171338285381269131420974058708250235093915676594471371366779268234273789486568015627957969134272873680198919728266329568720293236089548111362174447988944829850428826486466065206210093171303186501873874593342278940058396756617448685820371291993722564762289660050936199974092881759579101015862596654377188781152645388714385666292811956845863196271882616226564332545576310627657326578103429845851936384753236504109666649628508579990476764829646293463254919804872582000004505509545898675992787985960270423534612948920546678540147424347788642226047281951816003410576864800155100126008422171139021766729759292157411781305653887557422424112282965325537470779635454928193908070419087075748790525607163982340116809719345482850256102572514449403928492910389552789851033805470484495001776349885837877153083021793642930057499000934608968564695794301860446300781060322545859466479151784824614957946578400068484342268386867966948944650945478489932501841391464255660910829400922220996600556830587257286023553773646664927258727115020373238458981139029064470200513753360005435175590943443310529648361147353766314085322421592563929862936573717643652583718341482196512502384306188475302401443381372172323952023011717708928115894469938394069914600963912855036737202471524711229223760537992642680822454707068727876466365269876860370865197783923184766359069506527549470426153108951741662268668148230397942573894917163242349807652567445662073090467080128514885702097246708897975516307310620452544171049885533487071962464112937484739164505949979516068355121120779938719540905226971731643589031043035586514295457166921737657836886133945386760479794940470806185847097041767853371000958190581359426569722793827503316036168791834935433378863703217979692200750802641799687729133027428939022508960383386585859179302726790149667103669557861422616613355245708614812021161225665217961952585505229720631299350363302435862295339071256028696458634914507624146259357027062048573852708350581528573523059870606918291521829554662999657251984604128801615868316929301499988569655494508166435656494087563710808920815059394017136350818792329567528452511419995741624979645535415613617992853682662815467815209815364930463486012449332207053028596114549582570785527188816084306187329395726562949310841501392679742125357313996914933009839751031901726354738417494647859931282537974473119512574953653071914749396265686723118576486451557436353437756070849838393510692423445679097474441342053301923219041598861672011811599426753708560654203336944679316005630739832722406191253871124562570030145753725233157785663823383121659633450054940962048890978369683074260060239631627761792965659774023661384022173319682144694949788980101222426111305120107924225441438140099597161450646565894385163804639617557918328357726827848391737727781611718632777652740797943227426560040128618179518880710927665722408376033072658081514902105436101034283240443103501572334413024250294048140672528224061465320295976754968364365975470143232468551357560952475231478311927819959646763855173623523040699118718312377935505740711877581824633059005924422598196796648846602641344510560773468942696865733423669548736579352365194169575385772544186448285074790607366126769330637227672018151753720234142242581778128217136567338696813819013244646860184440489707592427913694931628844111682368279007884192503773715254765397524967537009532210312378519716404704780944273278228456693218673336483556620546920030359926717409991160690637505791851434939594187697293948748054405287736473356785212041163999265170810855537788355764371766570665848629695711377835293754682609760651904045839699204251741904535472990616138105405588141208160336357686546253643269077764489051809985176313811563705933107181309057506147541646263773799521923983782956411831787804270564543200333605182264474170024727650450604221187429989771016068898973567928892250788583223374487968904592103799058812559063934975715098275001475026061219378777236530426517367398190875162542346102850987163931217904261189480330839146565433545025415291532013578088313831164246816240430586549161465834098199849717564697933060160681065979531374294873404272695040087958871120706674791906591590688036088558135204521367805536134410048657884156165132197610406045683844985591199295263919765068365017467392377792638520261943283353612888688093775078629787643505187236702366244816542421537438450436506136959690515374756810500454303226726334262460582055891841136339979508544183065123596088822847419749281994312946422456654203012110804973146736260278877693227835618296578464487631192141403897675220960354161522692565195803356194415584257154619692062356195896821116029424240072804124387156567359006895090998448153166501603370508111358678142570205878529217360210555161790015566379659586808749259499149963122424156526282412861073595900806473515775299651591528153058737627240511997480986544911240765487706446272186612971426379147787118781570350869367729740760533165480266301881106643864556465819113591576474629091346445858563909828647048296538339778792634772589145727849128052525331598830537599982517467528739142128039734156273819371822159503659639014265669059675699673559765482498300190938778452598164053374658191527783463331089470232645800957961565911910136623216339213526519882152763781680446919494158199970340140521843829757900592570954569416631483161355767229562791094565692398338833242381685926491917714865585265661429092969380105389350681257922881342813539949503620852587185350127881669711468296487024587927143293563872764514995481684437402498597997093806070068476296783215614575504892886333795468287766150094975209965724863083720049182807655616335701208668304244434895542243145793446610843307524955930761124796360925081354011273922371142588888562090418717153852506464354560611644425866420164529805079743161013082282686655574624258118163623566434191772903282259908858127533114311167997432106433088510154967364310980168393964030288856468685737469442616576283044529553627574667683920965719345779370593929366080772207073411864617706650684858689991921587249463955297178851639029365871516118597310413405760169661516111737586140686787773417854690137119448401364404966517685930024571854641214725413678936340359307226500545365315996274843777492602336790587306456295033521749665268507073798033116995353070857934735456502373635649865615161001439227754925946871715293933850794331881150432179281558455648617655302573187043270101195388981426572402717234610418401941297590506797895379004687665544148887580923515062990497479492104115415282492299527523029514407533202179085919351672328426124044576473306657558387903663996217163710236146307901247443948176982081109239430379157111408560625721211458998458993089741675682895336534729364237518891164147524848961753535640195951322328483182324535344908881242630540934892465430358362714748197154175373936816831978354690120676271669987832323064205971700075683500930866825297134764947305862755703700998720433011281726650621982657133882357440417727202347564381473199081483656636084197279889073915257853634304688904727448257549459320433418946225481339279567896393188773146748532906784746728782761092943282048736305403066038046057593546230514244072894892627695211229199833200258463156272516977646396526985182758071800857910037424024312107349427093637078188479531161467750974357086847664665835162168806067700584839043910597578896600189055742875755431544767023422223606652215261806099888826727131647176158810130351588975798109462706860745969771382531104719988492138493526362486368957893568599544868432159026806959886057149970410572020773185089902530439638558748356502645264680568476771632499661714748684479043350187526531005176578734410673469103104106273793929658537801263545575033158534460795888292128141922489440987854423761102024665000273843503614851286593341478357562206736375627267101371934553511148056049892819188970783474051474175238378352542125199424267369400423686042676730893968987621683846279339308985175454150391156235738216570673649485001006608684334007411424986925471899568776234790910051772516023154823184494748514170380044671002243934124043680161058386986484747745521959944051394804645499862652737788116652480277008617666714654878856729715994870932380796856240220943236333190696313998035194215568684019427321974464332986754861082606541291661892134358093177538756882040346165254399106416309516831921472736549625562369817310268856251217665036195888440834020179389141097689068190246387043423783219565899517822905549790804882543610075792777564598120274065280604452272369621655973416540512344098789955031173888353315900997212315896107866970320450230376792800320855814232978093795830647044405589097244266495338765629684190074827325337075065860764762308862009039163849903270537483772828901563787418331669520803614585050627673280703495623657678761697255201158421864012254511580853421074311197281763269015206028395381616690287266517881226594275216026917695990576068436700952701632581419143320588326834608035343651888341610101100684898803356684425369481499325100298272718067935244177718521266216879411970925827819014916122418209931108786946851304657614332757491197423514074546986024153354428132793913379813000673414123909875545096499310512798023019975410118371454441140112393770354706985288486614779819507422956301827910084478790881206559503825860477439224899822158362972401779516524271568868293909151031823892338369293592207939494223218067803926076479586547027361738741546894202587574545188439758777491831929229761332579110388154731595249990631317328806703152020869261574658038096331203221127594467089866506795959006828378098802590804744056514667126896971861776918459725347425331851656487016037930269111986307398568044541233697703518126187243462622162475534170130274840333037793097470319655604256099867443742464929428036923925191395814694068469308549713617211873905752318816244772639847208843360355399187241905180026892180750966782470584072334571237185802182317344655021323673497184678094530141876609621800998547741506832740273373832962863869848329016598421345265057344120708425370620910312838411439706395376234834661885193675826485893538717400904418911442301499636587420341568763780471057879477574892321999319921071667802535326677725056071137111458301138369987148232608783661269119723744374631875704632676854422967704111809060015009066929977751774457146062250858407112041301458902818493094449116466562871581212491066764958837730474997528784414203651376695355230548863329573577006116971233503736126279835950653479009702505898801382086884999555434695430741439066742559908752769645733729794734535868966459619147572051185674768911128706322949753654561299768313045143586567278742750167892759561899686533685693109426971807322087974406528344609283122746494567146186848212450467972956882073240424669746363042768502971933165606507239653730903473032215851249652253983931216694459333500804328580290331276814343263211389324187740139253433038838015384833269661358001175141215783055778027657720670513803586257853546998754584596958675397846286022500666659323667101056689060442147558072921270899380992823675493336498627933903607118973360964511760526733412720419808993665664656348474837443003991956152742332646155324154022005298182569132373808112947968027733863771644029095059455396964769770638568310255688457258035485951012047618442911250401205463009117818860930740011517200215982602148861114249767458217240601455595616133486940844557892114068257967534370950167045595451490551600622525539649752501050928604117885793671660857852878648675023084652166944707800571265780777078875550902253971911809170235281050346666457072244345639876002314200432819573819869335326588844601128336210603164645560198528616298999120993755148193524930406834983580226767051259970790273198671373105822289766299038282867245770674088520617901032734226164100881582411282800682256116844920990372045275747280500150983431913139249403138783233374847871377971281386915176872476952631681478584810684525833018466073540437146523891832408884437041464674210876771703316332976160775864266997663686857671270236941190511861884193465555421302403119952117464278812141896873501485312251604811699193549536510626166794582359602460670661658897953506446936002337566105878416333888796607908558028017363668966048590959203971155781570398378729287880490898536852491985030055526221880942683612867733229805471167779938182575164641487214319475868728425406282474705706515320854225604988374768108318137005667365618558233720921097930546044576425288039810139388930312499621440282055039841221064552540109879145269961754322476536946814255724618427840754269277014613368444695518945098844407024311021596865371135260823602218791111761014248496653826242165997690659382326085611596363213952677786194606474428393092527315471718127735747158098581123687902696628169763125541028854251926610300493647862497373935532628868128525321416309811400253616860328626025088983879639380241306144403866910708629127253522599433826675983387952128121098496954716277546288673275280944936647113147595629621192352893923509356327390214826084064245803892496831566398112498953862276154498261653414973759861934959461093134429899660499362991819960227883610908902449084735839503615070315589941084172870380188906008185582904918260810065915260145794291122505051473555600179384622766613003661714681982463528620919230678711203084059565722442944701392754155116994986382178509272024355872568558769335611500343596187274706528250085919505219243811973870925080050053645864473187910055083042220638366798002783733570480881852676868643110049431427429306869939026372015058839326938234561082582039422253505267073772229946321560038591112700080362396490205384281545505879369742810303219815256938720759008418568211576128877912550144944200407202986151955386922033412605303194037900298684093586588440060056895169885821014732932369549325019079584576124107619003844468214894142622794471704176885529625258620881231411112770006669416863936801490129083599490205889027012170617504904529967240985703638876942783029898535838910014462505716422863238961284346165852187884435579812888172345794889118553757065804140260172367738426351167782702103537529005089735407910943553445914293514575822635900570640208117334765616383474034252817222176031311380695836353807874063046501609015769372318086706511528423767555484518587456354121855389949512705875175894490974613267405802682215383270433148701119177553869231804323816158056928010663946942995612304865607568120685973339543332613383294965469018489226051041551954587795903102257440303642421739715933570343349885903218986484920044034731283316433224853188504577605131423710020424287870681723184658705711963526322473414929260694946341319737814038708797791079306078956824460190520535318511903385708079496969127769883697913260538168504231313491046543201746971854008872872048123580312217472948037898544705055156609536372069081618355601279658255916897756160077078684985341132095681888367982823192224677414599719359567204352498957299715193646298538666556211275718745826201525965703585492883838784434308432301928530061950936468950272348340024885933015618133672523926300426113870157605253117682942686980597552916350882154662892006502850499315178809425141222125286831450998372140767294966743380263380854936274087643127913356957218807744337290063224049747069351229002488161419926217716430995092817669856185914917528584334263275553250629133551539656217232733645196540743490103674189066781231233207510426096507312495197278351251334933169177713034617145498096060235685942160026118789352235907806284631289561848014618913307345285306305233576371621739839777003189879548202070697050480536082647595095129369095517209046642413999441816027111627053522495572552618840573752478129994518719113731317371502994795946250306462888259434165349938743954757776936809989710102342324033227299175797995479347529067807894155325036422034015343677074090621857719773487100845205675961090159491463096152893663821204211707948840963884058714440069661544701381055062532949736049320010564550231235875832827035703544520826522299017104716269116296755249260946428479664851798568519309915589720155840824428278488484717298280843277965329144288917343347530941000115467562203076307521188928685296268022546442185236350106761557533107156563858016134835918548457179032635784743397407869051847864889218754019462265456164483907242942174188457347027588020123599502343041550157611674570814223248753341817797288056216479683806898034323828527358455801180156429019720718226374783861106165267763294222654849079806468425161362143396020270991564911280979758708644366165738843625387615662734604036349514839535249396637850476288908612922143112771631446538901133930438254228802899576777760996679040045490159639169844748101542501644616495121135194241130735346789359190330907426451899138567442037756283190315668710286522569999586696615936687049050499365989280689973991615457207691662273915072154305388467058870962447493307711180145382255458400839340157295668082543837732732716513619855896062002021402176304281842117277320229400703904222766386682650911057881413923027306471299727273468607378664011262182067037131008385662056128283698537233341882960282467980893094344424972421571822303358602553821348248179563973903734256687067171195400375923943634393842370894600669120433646899193131994363190099050027878093191765574403518638394526111234678941107452787377266295929878267065169200075539280400847713254552751026937489116290948396053698031916058166555393327506227113231093865162291148147155130605853817656535053262819980893938316144283848646086315511687868966580872414899090530669055266342430480309005443535757645723639413792195161464759376409045079982984514129923746166005027026759101131040756660066604805599935792728565536463930202351627822293923908885408257865226983004061347811670736050550927368424996289262037080127025781339582287347604134544284121298672452520421221428312395922641462230770823042690006231699427711910995707052892821732045329798517103516817844811330243468890257883630937362754493515352912148077954902462271104558421906631545515791828339528060083043664337323549607650014733676881216460433445813301133971900632837917857337307049036708165406546921658005473666405428246672012266663504042313564127918025959250027234769304477229931538367621848380558774833191549896661859387223833946946857084983759955752606385386944444156777472783982619295418734491133517634316374767312234746811066639351253289751319621412565786959768097993770028890306028180692423859340763303073042530565875108025905609942102820492781255923445502598063696219515769881688172910964904056423840831271618997928464430879510142806749946681031199899580842197448628919737929366952918795117086904519456753736991782136242018743210381711512296629094016598860670059574729725103656816027873728581100671594198044304991649369942050771558020268142470528041438958188585352304967091516040392511640181498807647398245734290825792389037681529656274857602309117892255470448643839454651241995149336575474667841416168954286423740855519325619801412757548449878369859282334890496121899443276135331652383821103311043772004947040100037048989786311433381296394183245323065838990840368945845968697329220622175631251789645493816019697849787630732643527104914611085929674378227729615682516579558370152778806432770535734544139561734693090416776157420921904426891953074551197429243830558488455685521575458166895342771828715566971768737521587095477365634558399688508461940956650353143328150462280139851780972820153731141069609063408396619785415440591256005151725254374716544557797898764985973504675730018499850520298339942070543493722666923178947203319612724928990276261687139124103621862579810842949049046642866352413811596439652318834506740290661417721306677462092318437206340032110173395658831790571659096822509450026820293577917994883942776097860152338642411052833083300678348844925354836358447736993868027842600749314827047958974811290326960677403130888892659349966277161261653725262705188563325502893361645884184607503800525179503232577415235560416706472490746668859203876616126585536462802712500862959049296136380656165482256938540351525874410487210670966570307672537508601684122836831883475029696331387026559136467868037668929577851327728784291480403103602108068250367410588807381225041194704121849390070977712758515689929268762350114206702901470274884611280515447733514373003081765109401273105633902717406765115578875020180647084481101774008456076588292517791172709432757853783320588563356015171637359487136110091601758135536313998736481697146684944037477006156395854665268127375549795986433803677629563230959027834272859767629141259895411568612918165675374916939268408103827598263931774863124635590309571052365357378979932404794423247109932003526530123968870529113122913258995544744337482192546655575748989472285572701962007953933264121966449759113479219019458863411489204328147947301704096920417270901099336491920520559040536041243964737184147485342264339788075662239819069664378583261766502393253364717127872181793550068022017429561335557141709672562584948150764364845651909744411783950334486641054383258265802246006496806863408432402432697218697698083351437506552098700431937476160928318870954793194409864672271936664086991394435142669866685921140454275306406348457931529667536616931383868424832944881935032005576458662702345380406296223400101778180328173414317657691432633644696499501560354502688444881650808625161098868121005118532379292391580731603286136687507031222750224659843085396591488438521128006716277747889917803032092349332595549400405208907382238336636118331042210794905373790535483124949139139901199694887190996816712050532875796058753307538767668023009812211141761242348282828075477851689682290632657894561411007853258862720643024320894098987240862935961060398495537683061940836598320661224237246428922747502677801997335938707865100809152386521929136282901424003320560063622811880194543901270683068377119407692267581399360528236759185192376451616415635399657793434930846687889543219257573447573234813912955239257617361466309362838231001385664197491935004113086970998860021243159011844169796012986294482108701962213458957206611136751883284076550746059214549816516842627974326767096780993753434820191687209862916669797459308684587920790959574944714123548789325005463357638817349498774560748992660058844174914863436776676444262875086921127982975194561858054126450322240197213112573045132936580274913935462956480456893741454759970960405776802994603798449906346214891167047513182004499076040695767794765554955248223612944017995795849610279338729998570425930326558478925429324800385212114836223801709270651461447104490187590669013213935512635217739074660643574148644406051674489543144164891730761583051804087436172001197118595370370370662354791136556141720976113229908617744424882034169614097352668607941974527305588750557825683201915678329633387815035660186918573428944014344985122078746641091125233548647539681457104297570683017360643746403716206860664968574170975241168694828238571114187819279680439940843136668089615196277962851594646852432661096529913715813259493396328169450654420171900486808298858253959021568968776300263175388428357975978619425323272627929574771586832124555582609715999916671284221129319135100220244297230168883170213254060059807029355927464333911411753988512656642894289645697686228324247909629621736851903556070237657075039197009592830620569862258684342314033983391653716391057926403182935006527903589413806200088066480398636919356416107622740377990623035140625050865308640648281144926694614632855423402100739412900375327965284658416331303433742673873902377278976286488812330868065459916392945445449607750928808113498202112596030037727906031106683375758856430244940815939799808955201686104343571403001591155582753627484925184159348259359595786082529258790049335568108506677229386319604158128626105439001213279951375198431629751473400011696396875565997732470101024135740931034379202055940040650428413698812858657187241390421786001247647980847364359981066230851378024896371619743313397226574801151248200790607420593589694936114461294264114091487793901833061859160687812935818323758419179692269399322231495929616614340356536706587293518577742391170870855394736006196731945495668763822818993157779926539966046682804312217111632840917963093219890959051740601968592854393522821300386632496324724702095874325653085163712731932347783322410212408224147968942276036151582061465747499489203400981177274653150196685332985294097560930506639110139341300735143464187999197834515282805853960621483301298389524235222809732028252295154657341177165400281502608017024885206929066887429460109494810961888156669828721654094282545382621224745536092088816085826634084524913212917793876602172904574872011229092126957808425442498023696917473515319293281964390524030068033697031106061847825191127509940009238020485008821227813666348963021582312937489534767315990205073640243359306775422281897700421594516224569781834142638021513242112306534783884452725554132184026873074699726571100991769850989310753240797174750832579311183503462772565642101210713907039486358616487876133556748997046881577809443796608583576658320116775138285557402802758788361649490694281878609063486218200632511108688045326081734118435967960799989630563147145407942737602127835512267841523181328624478820708026173636721723415663240672669711423988331331235195256330724586562691898583602822313177364228131495347325382901064970333021931063340296416159882637527187478493540040073230144631468089029961436747439198734671221695355650893893023079146316034195367511451989012630676993632872902118682324111352226478196889648179847716145546877876823357517243297500180236614325605256505065330817303531100727222094105452561195826009563550007583189695003049245830809479226388145938420710446932401133159824369537292912394336221172824103830458387329106847051141221688543173343785162958896336164234362170008372015744596548878181302817405579644931702028464590786203554258742722552597944805081296551866324540653705809607872422606381592767312143066533531339711029206228373820544778945565462217341221982248451786972062162054361358996396800156454712231039974936284799761268607270945468370870665865746067429778877542383209620142113142930280406433153371518057017068560410472339232233644864213440667439846537289767046100666772618996383402288152647053621274516159942434391988959991311608667326356573772046515848687915368867180435059675802872084012211636413840333418791812340340237753943044567019435968507694686832597844363247818537324556473156312178918512378532968518005673938143765586629731879769818939526636788682318483436895965600893142452130267067322235413338486435461712693870498387990207811573720244162573237427795670647122250833449467498322249612668351883952494317072643291079414964111057258891339165582058668443262391607604376939434637449114178607988183290047951242065791963618263512712543500202650421155737518495316609234873573338166164779781571019236038357829904063573439274501257754536989232171787405797459377094065957608548209674735057093962879493069896023431520519756156925853720269571617671594621201083840883112414387745415083587819176022209622792502677192706948776132454110947582893278923000209342314006613410310671006280914824720558321173741774901152864194344965052207933703214376330037016982216624682878229510246307839055558330722476547551489925219850907506256329427338631372613515376314545334129536121081096456285544870732692596226440715446516848680772510240639255531370562599413129364714211420308455477311193995069619918425167790822055438612739671635011952216328810613288339596543834849416238886148626837312262681255659938551852258117956361778637533328517844252202272115740914201392226626634195788160751438295781003769837390883204483020435276545197516141701208901346607083847452113810284957292415355507244217340763326421504619774451492988825501783695517644263864144282479549019825973243333153051417084722463673753753741331147483461744464455067463318806117508159495820768879505279043886944183277308256359976244657660511114275848796421232282724538383450626464736178212720826138738336721658110310430603237056591010474203414300209138798108604219448548412181282132612897616476852038520405393086957734378760235510467348756988781873783616700425432469044211302809933190703014734356498177147122327746803451124578396498488452845837459823952725180858206406302465850737517807692128008288388301819971956091353285692455590649700740423885333988538755896832868879277971573852696681748966375232442681745888337729410436179714190805202169437790077656226484501046511632327407168182611344973147937374290650977620115027549377653444879983560607874124432663751108722530623810450343594451299149565892915333090792290047222392044842744351833191485211494171408880797158401187268258606588825531458574323003819326996567747765810845041274204234771709388001367402927696007205876697075522061935915453540104277287995920441761666652677578111510831628645462556861193891061029250503943476173386161610015166869838845943805941936089928356325026194379866665747232483244687598163015917643801915239701738445682839163871806108606779642142935278288803468991730275145856041542431091939182652054671255915543322913097586572142612809860988607040317877425345022360162632508313376808366463695547687048488241839139645936943899173619160128001909613044117130417250803887756908200259740926211343943860527575794965467942470738500660114721769210631815008566163416068241016639857284466759807611864276986814882049581991575106579039584289492832686650958388925719070227524200855420534641028544828145602559435624506550098207043903955124379707888103165552636745059939982723690051443006638241104549108114899955134853382012313799702662213835787523067269982074341418316325229774267380517426793384311796885644042736109736500685395284833613799981636303997232058293898121777684158232176490855839554900202573384141002570104524542498049389121211200517388238187248397774874404614122379024272185410232644526664151763810410467178606727755540375378219151467195267210077631218041519643577858017048032765612510873409645159314380288802624246774205637038419028785449902415368363834970992363251472898805698205921242436396465175420092225724335521972436954793861050503394991217222957004157329123940863881687477347247279922249734091182155176697020449128154468372540163448087338516480519661088405051094619290474912654088053904243149841958388323394058628549061330223476474825719068780048223042697648722278639868336146102567561543974271240522409226211012528983579941248428784532390285669037576192965303907135730082622210759280006013226997903369435043414692903475446368577564625538063276441940562373468621532441237544559797127358843241306868963022239396622819491578044030743290935278345822123004819199687364061852920531745958273835698103389280301502166481153896997804249395115979029197129693285264757284157961662828950713570579391316353934472165541548726130674646693937273213856394765074974194469289950812944295963222982835044987864113706946922403863604647450066033297106714373278251786055099594754804891059407356678327448235050705176219681773687752435319772274286156232133611377769684804053165824249204538160936344977442219866605058540617085119554794469861400250503813241865493952636365024091647869491495493387709780889180606570040989291378003511566592436792212295806088893857736418324075982332759604674547060633321128460833448544909056851787110876426047107814936491409833753912170121532002943894027918184718090236748220735634501797236938445802841710084034283911013651726381834527156710304426036897248894483778026347627446582510149121319873726416018916669451063272453049855865935188383450415237353892502715207183245355083808174736482476775206068390202895042741637606874308280728278186797371983136207582249655187568193834117022198785670862114896035595350141447310834450647095772999303785648041520157283857342052801093592889564261009973995473527877927495979438566758668458085562787951379007015495949774719704159643463100752409927969368108397728617211234746597879321716036143745847792490766156676625629571674409586370125715343007845595465970676323893049622943272654249278034030301978391969822828361885145645395576367450823689168046946584241531602233502105641634042953990996101933648604866706586158052192666367840294252469521519493037611325490526403639671734008286086606912751414575704615198181870961482887113925573156537915340704927220849483216096384698343431579074889393521373233020159067998644208393716783262001842504683538505386118422701134663379691235415978820804131919993863181381230382185144776245505371682186157903731144515584127797111899404311686949404573912275322087870256595622081591904784490835367905486975527789037783978233720771334007408215397370713525662004320192370392388415566807212750046534118464187722465044774481108645187127639935669128258089928617059957668944577425238465631268018120711397104553886457420930710053039353533016140897400197679695938373444015595827166172817649271803047745345711905587917090857029162675385624851333256744489686788336905130785373694319807654377725361752690507765501087631345819767483562305223051141787717641537778178071424770917075365959860233901634025043494727100102228410322022443188128488279041179358188355212730799106065452539603553571500185416818307487699750374482478827719817821876855444636685958029099613978209625411480797410049949345393354130613430940259102201633505161065428527848460874383272354795921880697724992093572476717778006305198685840285870948116248652857335207961613315255288566229599272852829144732497088034618122557167386119985180349006159162494264593108418474661341965190608537590387820375995704021804331953565012946758176632756396763837522256759532773285922888095138584904736211527484652849036611415839521114441578444307451621239197357849820133409147635530567177516036410138627770281026798231284346274652825880897237018755050475281186350249888843473074354850991954578298581781005185318522936486241020052855207289195483731467029674451120907368907005213052003649837881544580929835253573369017414843067349001633964170493804409882953613112748934294600764529263114072764750836504165493428117516191053790993687549133102239245517683323205756967351161383601994975916364268785857541376508909277328538557091653991511879283591317954230858604148261880766027002801994533308106662767638161531184001362879126221192991948381716868077871476720025244150450173424116305035318556164654131898480097853095363047663484479810265170206500334444413761746891776075744964974088983213692349131177444910537656767390884639926118459777142605528288129573963704517478866242433310147115665985563033730310011408212519839303094825662085383752640866200009538402575895426760970266511578485093282524278154241725526138708233293901814265952605311828101200657046161863704672658203731922965876349990626281674638967745589897285921120550948826999961794786119387322445724943503696084128944751919810407801153638720731613721714929759253676465023457053154094481467459224673827644208102851139926271070828763994655971119747233173173723063859216887593394170883162623830646443440438546374520106359240651023035485631566474436291601539771478945690081612822741390414277707203342591179530500159711940572671988881961223910634346837218754276574517158551705833789289311589922132492732760014974240248745414220521150734002269042785931732326605935733201063344278434870829091944788908219666962461074946599493252988190981886504336234078713294621900390291512512038227426896871339818780199552462814680732794531119183226223872045768811529582183277174896843782955289652064678723209438259508214218383748974476487923181999171446580103172038796893574369685951549706804436411931181377401432285123568118000447173456479065545729897719938232374133606439912399223085142516443247931419036654751508266593954278137464593839609953887089347692818712634005388869850748572604176790492174084701221467761885044065141648962238196255599557661841406598355923126516214575628545113167266700851913565920738814858105834520242393689755478575947817538534505501780765779443623427222556643963679363953692865661368509323840497949889844160505714950031932149206144739618372139089784047454007860974446123040418274923299403873598604202605486240332245124301040559066734205762140517284897170736250034967541902416042805011248791632255661595268174633752899871497180119016373666892597365547188532893122971920103067234105640811818618396840089759893899531491423500393420944946588812991069848675740059807157599020969161581452743852594589893661920877643503130000545845833218100441897762562163357237494232202271671692121966942405863887249991024156221207367308086426635021130352195841407358495946260179611176545460519305201853063196011361448979172021167810471835151448557957877416403084122835371910760780423379519559978022853214266883761326770591064231954804123045816955445116545838385291130570680227043327312104691540055290377579594656878135214780313552073708900343138611679120145947487170791963039904081507579991658457763679489028436008743297127890468606388105238864795281241911011379462076587424693646072835389939680110600674622262252890706565757778058182104579588960321152804705304449053486886478374998098830910522903064564561747857879318666288030011468112892053242079585621965176307325100046957912626871097741258380115521825441131570991759055241048100821100433788467032643624588515667809478942694066933392714666866278311536503479697501039846609492442266816117295256443364196703010052042961894545424472306254146252176062350665100071472969577159676981446679723205710877497197920048389787333851539477052665624209713629109587432553052644731131325595407947454217313953480792006708775722924632674680522965331647134662575260253560978678279717015118980174956695117678062084343164061970720636464614938276125045542701196570463106294586686020458370462325682165397546179500456037807119139508274092288120339311007755701326941549330466319673373167151675828180235188650703390655662897017436456035743694094920524671200556884545502477184567840806043127304322908628769965178426126814098809564129557116701731227312467202131165876771239242225496936334580960403346972313382741025440329529456918190503913563547324411881339991250809346849605233384292944292154239198212855571323666714307108151595218886047113450619872059049297754800690655716165072767585827483522197065310210418568957888063724112725671486198050184600030765923899463531011382062772727315868168686392530868077042347384151374093770591958895916159144236885775509776328690220504774258655833622213612406361737753774732407925090527276420005687055855756704725657609216579955737602692799155472891442612842998458654577607734496055419770934115717295615676137899582515951253215466409413359026485696701596379531990708490130066773337497287539410490482117014364625605176578232772143296756210786884965601922037369884477881801462427350139945613895440365889496718759782638612817919379476315580011918747960110355756302643870838407210662280281899409650833536969438038054239276795352710948439771922170999916169285562091627053239988502903175795813934639685885449474687986570998757587747914543100929951460533237281361080525387668900503953943433369738679980337759353011359590823960794685058425962903603313848220415723206392008910016209245647356678309217197192598704701541365848321027372271217920228889870787154708493816420450280643548211847343603207274063919591752975409815491242261905202854139436168320532881652159231900425019537512462929342853820261510590234301624042007709773447399300587951092557297710308081682029608620972620747196915699629609355198661920755018470694849383915428963780797879708705776428130006245182884895125931079366214912590574607731648651126496452119528933001807324559002721334898913901719818140456159442577417720241129008569821245136425956069212005044822568813289957061673636443957036380198012393943987128874199797349201073021254639470387293469815472882468190495589403224473180568736666424338749659534852862059671198280501921694635572551258728474526229363565857675139262019855495110397210288645787069318319753492364578633958103350925363591581284645995615459653746719197236389559868244845796835041666119649449737547575846963718868654726500468213377675568077777819032095688639768912457932419672258618681947836090046508714836089967444762228934679107576706750533499979405558218238876740755115646558999190297814955739826699555725695779283387321599202298630457698436143315056158361476381652441282627270027754339877358055148987450106112464722271300854305838005204912483482134054856607474667633194843063841742291920118382759656588140828967730831177604504422316473840155896409771349119173877646192711556921071630827145734172288674510353236737322065946627559773021817854557208285475409085945611778411677051765301762316947269097956873776520995287590098037995826032308883623714389670073373269954414590506432480777033189381133039483534540961369215953821996702663788560689270856718548613699836632247358446264830100481800298399890602406068681783153410068872137412828691826099420078162631555547095726730843049371900247156425980144479280322824091074038650985798627940313112950111006121697911139720381287844491826218535227073332185353395937256063541105574883553065138694160122903413987682498630201901508318727703469448940807430653703821946344569799531727626735574456295015026192239081222165862388911774464094132979772906719311744335279495388865659575157463194256369560115610481015123772873669136643422708767386481535525480515033623261110316002436822660144950495300704639011239009949142775696785217873873584454963352314137120884806779958093583489724240491307406478349423982702914784271393249903156820322933681731761195470982155653427738954778740749378479705115440401775676493062218329022472195593484893802703461276819244694890409600004943240644357564112547766396464677832285151381517967610510467518484626889448026625247335823343046860625455540290147657025595161504028271993735682040084710219270206749228348926883679151476920957758924598175395990206106563105421779971103043561274118363046146497190350293889481585771985799071276006973856558101017210571324563679312737655315341356577898417756166383823843550438943651877633253843262851751041701018126125595284926905056888001570623544651600920034349910935320042740985458511942527289004883190155957105227115576978505070364572379337258192958913074581967404482951171799595609929082653087637860960077962298179794748019830740685496169697371113699064440636517075052165008531581386776297315457855003135939190031226145721549519528758010960879199567930161131475807173790223201266046241720808775843989859736453862256768299994019502106437441743761709171905708798426199941300969081794498685527105919562216824971211333583898145993111657940962942353346244493182019819949367304213316068759799877348054776926443161555028251585800865042278015732340113513367696688348727323269956832882657150312725175894362751022756691722094164341433011793648339581089205814017774252549140138620510099596913937268160936685792005611537159379122925996931762378065831328335227076343944358247527008448447965084029866485748210703276595909123695013639924000047381822049305783527056546742962739929489420343522789711766987079156841101117017122571849714991080279886594543246371633514087962662630837299345277966913244778079517742274106396072231556528146036915202146997672205328096513106035258443129807967577204648692954407261578429954719767889054192349904446998895125878143037698379041897108983205004147983379583481729844662973013029503682298246237946235852796294743725856562337865867736028049268477451426273005739451078028142890386389734680090397905128546805579741922133810541911751332800971931591929737503081083658828517313429348685127454045082470023075439932485794493291942886857018326314368377537815905226964434838938597843939322458115115268293299214136562952888744790940373194066094933212484472711467180496413687881122245936494369623978807448719326136633419793659367589273486757123765427168405133250917283956309272803148769246439500215439789132027212797053332785570570923611420203957373892925869524557717947818223702896399171244830279366286117452460731942992038167707759091710078137907914293165026401276073735294339350722705022365118411564591991023394021875518551427214832908724037721250439072496282357151342306770259454413916186637895710574722199622294217022544717004415104646709700303677602908391283401708825586168830003676528345012883417538553919127154356440769403671246843436780471817066502918527057290070042263152846769432187176159833421466413857538239016210204282152042501558349823867534658771634427031078641334830954972235890139659798637592201787343038448047601661676773614821055641076559822273280180852105076440650774272643792840191607285324022383445335881452246768566736331573836508561159020283223093062220652413249455297092439273775227917332653660029546122166947386470094795200233040301098314813701897070058602389916807562419345929757778016649673248091612487513477057419139817985369503338734958534078701228281554391449585184045683108343504177962672253517189030085635570220568139523432639812988575224460684514204349515023982906615519018058296842990263884317210889802324352253442379768588214091337348772190138120636148302366575187844709771702124170298159711429444853229943127143535558539988171783299210502431495555446912000147165664434406672220515328604928285059910833003037322680354433517761809372277972164883309455771540051273872076230382918114183911045045299499803157845231264886072480285774691159725797895912802206928424818840106605930021410370143593419022364801259999344920402926132584599462329095724221356218663717907833336894657726208632538061310644338805558751069348665842563858763853090232713715012162384977067828459242945004798841032861958070178575125631742702497738336351877385530723164933310572114819787807015576844970702713147241035773544322819681040424078096401364642204920109187884118111132293905947993880591694509018787694088251123598020923413743839530187462581870957382338383593483497958792120728818842265714334742917478896168752238157609406814516571928892411142734760698595537094794736634478992543326865752320040766129091562894538901516697065973066564400874176534740438621469996114839652457048310769303825256230385214762764348683314730290127053640738783812359383347649017373982214207006569111824517515095604274777885652241426847651361598938089792669865802207810084551540294192275591741721655979256936132631974508296910913718092610992663713692718586396523216546960360515045956948173236288172602022350686621553166348359089318048313666702844511953144340017753633880144735942731663134211183783163336413747321354061841219877477624260690506398573618152465406720543212380016520270017790323720209075481774876542225720788656605297165338683356236352323210796351487115187602917803121102070511533430043203004434062160349812100079355883822800860593828175494318096386898594462490728764053215246223734243474004363103818123798605479379222684715885007934183428561469954842860051174605188661223406976216761617500140583901982810086266625366777643333742798261524801376901932150615363204270011643484946070868849351912024675441566742257505023520894337034093673684221155323494632087067890559079629118753137749841363155497283612474209772673408303770342574649355337878968757324996932033802810431130966491388850576610135595025105125098109874828650635899187354306564191703977889192572186834506825652227998078028850441080350250507651211502872631426305476266683385887331678576117977877123102325712181595965803652467884929812652807706399455715766058777833945774513789937474290618991466273294169424882360021405595934018684466841035608543499295455438952792551571373475957476356180922785120108457595106543440221005559953944501106087969711101701415893966091067745773640149637492800791946506042629160637768234035048940999837220539672888807625910891601125095439412714100806936039767701923362486012102502782957321033759991836798874072651601648657030633451626744482895707427139137941906307255681218257164125969127135813077216516194811959923242986759165756862650232971832804071596838139615372805354807681653043143428258082384962305159856161406770286871858227166915965286239220796774549035558181175205631319245742640783298154108106751292317927826722483792413691957329458310403140816339646259455707404442740026561917442987149796610120638375175520933726984602598599510874590070370036607677316948875566405738822740722317582850722126147405254529993158081558986353827918590048039161037335039250535846756764291948250578467156775809630347960517024731083020581239860100440041900454985582080817313828157902678533715689738652975862022323501084538321646699601517195676852978063894748918669995165066046653325381236879624856055416329500701552915009878396925079889428293749813037660595413784966278967510413398783711486197209404833806406149431872587420192966112791536302972235972762960865647761365008068224918326932988337415401275304370707705165107849133659702668640825490985121238278169057828682194674773585575563444041145399942274612411335509227331503382072668477431301569722443317517880273049796678352245369522629803358415708938629017841862556727028841537745699208353612838516031428859134502993239359498595566116039827162720221201777663780223377988421211783845735137265551535579460376039654909366511156931921935022731554825430282376805220011662990399675262866853408491909865006025934626221369365173613192267685707259693717453417028863068878844149710481334517998478519630017628229113296523156291702284705928733829188323184240292389329030469484461502269419570970463503518788774291861364895398703803930165946871842376493488322264158303479255890534415185382009121861529214613899590325382260591694133116977116639999188805824986830853808502918465205938203146951240806071975286281579036710200951795532741495047634085607570601047675678274115558919308626936794884979169207736475538450000662220237144996723312119619033451598125850895952637175434574131724495828671286738540167466666353006475739913085097393022975350987986533964816264554521688931123116845290693067304294786812469818649838899636114018663495282297447170722544656576436637167773522553096051572059821086751924567317257440100314033181242892131378405157489384996906703171686058781495905230762475927308831619507070900055516080799645489424979630050867119332385741726241557725431327869137316788336517988656847574194066790513781301485346113319245506164240669111983867966885928403151892114617463558011307666932242383676675770685943630367080597439353934201809235554111979287270235997889255888642396986283476675843969664290219411374053931465878334519901160157518756046926869881742419177944601884510566188177294487576254556109586252365366044340056952800190428442601230957471910866075914719473896380875446083800443532971839905878875301386797927692250195056951709137757733755203280908101794667512578827441411486682684613342846343763705278784049901778539179670980541909912290602339356363076942961885510157230046965873315188759421481148464026228849101502598579675958746306355006791935681377831036197024394173686407667008069605583443955982190753744893213733730641412350775234555049539308880456691824343471218152566596201174868182233339445801652537038957472378663444065052137676650387808410978137517964209120587624037075964446213668439903019920262420580110976387020864982827925720232154478875656868320690941681177182027060588000612195833711853414779993624531325160995296701306985020820107349230076221971520643463727144918763763068249631144845830143367392681698098641283904211631134156767658824798124327124193250372109939169622720164520050813631398223567526863537349014147501027098131038695248989709070825342419692342251074907150578749477076730125145712267789777701999905848408621446842284358904235565353365178970987292384008783928136723011555126557199889056103596869948246027132489077624928697841215060127261445140216471485141518572389863619880373411854937557468212046144897691846848249370045466744607923360965357228808524758632763773659571257066724736109813841893837242902353804240405490020415586345934854442455047798061086817205061558756732545702819607662698314094082825707909140294355833175828852971308783747501384246956699995506596532310460980259543641178751854776659540589834149645561769496781947757926924407759444664238854616946626182893648683094738234740314222364706338530022967737138395177531047821600943839875198119019471463603305840850289192429583512357600975377142550080054448985833408067966028364351108706847219750049121615173437025762275501181313705871925755614097496552190133265859167012980993053118218210632899167675441835427814404022307181274380123708591420837462566972653780332283241723181879471930744059844822723708118241530960773155020293966824013183758184569217476965762114666790278104249208733803124033365645247303804503779093780286623946330107021577420740265164531350006403976821117933616751583883096856419122064036655437529839384943958384108881581932981641646053222435332692207318934275949191656345817663404331320562699110557831276210366797654139100600421233340525975523461541553173532742300790503462603366889352417386600572827005205928687326079331278397909502087027434853596273221030454713543534279408411509611410400376079846507973359035905256595716863651077753661082715376809337516644857859558051328011184059973627540030312608282027409545872964773302050413871024903295065738151986490225596939053398288697739885344259137512039560747225738840423709220906160880837385247415533812846308517632414901576051689029925038010475263478483394679513184347655860390308394654236142943464545738532232493278436016985794395881759712656779473554248804826576271940340946343338200330210109813811165872697554290785546328368527458686706167423069888863627916681931727117476592125774896203503414174457164728782261030582339774759035940344125377880204717948319640861238731543847648833047757002921651142776468450631305860380018992681952589338088571690357881697979720700997803115948202276500107964340573948024478040027528088008941836725080312531547358918486983458111265075426778907938128721960891446975972562866229045070968796511809202394440482205605663689347291427675528175077708602499544166707966272629914459026831582289464998863888470624181950734570607986570495087650071123009648131413264912730931091456205388891596298281990702889158438125948006149454379804384951521389392743267184367601064205357449843409929176544688924435854929933051380250450135914151320587850430362706038701356495278935894892365219442488996624687886215600124809897098256958339543914871936073539682802646940357169641034428796583781686795161658450132969270105628187871869706497427993170655120741575951085521532538463100050240619966716063584633558191796960414289737564544363038792955067840522873392904100435509360315657752714176068736285884022858255354689601956889924168790400770543356534020934588773978866861599832646948567543207371852029804879278964855040892426798819445598873424931058851859288427128899957664970188263518181076355117636165202375087061200840252985405715238079681024967927872241304817871880041408735569939076335557748934545078643428792756487480022364907334515669249390771693560043569735610520783851094010888172237971987304073034642398288308859193204149026260625470423806724837420806980617821590850627783060548466436800166978567690918239079845588654855137420564255257306349586004553879082995124695618135338942406021250279781413934351832168242746400515540634902795624241976930059632320916909126558316270514394680164920654890128728353778150401143170012842057385001510634476194594381964826935021713506175025191392452382079628658125378398498904802332868720200962300422701581046844837751434639926422425303376089623378748210535540557333115271206172147732625117162599787070192113620027396845913760518663594696891479093510163604765905198820537564983709825616567503410459838947243908931431676857500139506723825204393139455975319045716804802084739569222783061332071278736048507248826114036547734133108699545300155964492410279020018870379949868177709831888457346191591332628175596049473497529682079562158866122904892994925295235206534418590191489477936385939174895005036734006286783748141191424906259820053735865786532166333097675038629554412517499243761391230550329807810994230870134741479319018968730303853338723221012610535081265680141723494455525759291899173265404364023207056273353254113061397935700778333611773536391343264859779246409361345971025012603122072843013815964495180785402945183444737110720199094544231907069442264047757805862678045547377819496778484227720864544001579860264926593276936851187280089195025100961139771374590668095233735959130518249231969668395439442991983675727491508569987898344349766565739002266714268339461563359890073921869094406783551364457130317999884763111915223552252624439418913969404544858605388953686802273832018981147088734089828663130387175376177538646752700849270026019240619283769117821723185520566913903029638442871556502969721915727347552249930974550360740923899255672495962305410834798463811075938501289522062869385357154800895395555278463916714377982352557232726540903558063494572972075079846534281604306458325099278813556903606325203023257867033195919203635863228229292783191522646581346029593110132673296995592236098723974026049108159434286435841133697832712017879715687350654305703769520750306196104633589206921804189720665508503483327826663643804309263279840312117598774418482694440928359703684024678872840084673040919165302705165170073854168131270007235372777858517822654238662363897012215848219612104825573863656105378215733147648800444701782187285681806924619409726245924274286733458764237770127647147320175250678538915946148719762222139556069720028670988702016028107316647656614350302122575572176029667511291334528688990008240141751575549871643274090695229142349571357932478007854908080567390040238953179174839047624150858060142199195880565636877859084878900451904213824143525116888429617494751900727333068287439073696172536946378549768829320107840985614114133357318827665961013012183542368671922404420742563930217765235856366005723695782866076752907142423995362003955471872120296220226997417552656785404675696914204592866765960178363709483099684061501326632127751483022668126141346898642820056346284695891561643990458059087349167793209229735360033411196218666467695222538776406291887684654129155383609766436498600280063202433928343094120186344428754628058121130536067249644621802350419011355918093476024600727372363297405841022788580912895698155130954269433362307119147941209621902199336088011681804267771437283921326218398851862915427887978739568765304146616688860861797485785570158686003397468972178438808600821951282344893943380277348243012760456826677763888430529757615481914108080380683613917044193207928510279164042672639777280174726919158677127478928940122683628981575819188007055727216277024898649070909463984574799488720136695025788333115318282879200989621535727185748400614018989547513362432664748254004078740998464473193300309271159153368325047315996857341155011515733962681372819799606748668040432898764338742686866646624901685917716459883701700596817248977124580245708319902247725562900387317208490900960277435639645511335080718914451158632800052314766499046086225381984030757366207032319607280854919846206096703106932117423250746650977998407853546643147533436779609208964519890542471820073197223103606156270271020517957657054030806947556132823612335363568331475811348128172623857836813978678347762047223482539036578854871847599777445483010839626808407886174208481867559985357581579100523008702973117595500402349298791824650578113320359348245023222233758348761475379922970777662540046772489959585258393348160045141429102578414621047226966883757549019261118862874024947084012676338749566283707145106711128753282107328336390853730078290287741712636045237255506003516809557273852172349260509352904804695378372875698867206019116591378890695611139625046747633874178930645644443061988182665411091315006777786459910245329787191088146628269309943087245076490880827358496548588444663647379846503490246591913089088303331732931826799711692570719296769111120757665824144962053806448937322993107188108494760091088720281671429659788797029231839803920310340116499289468802609375446709106555577611152334688147723646049610368908475303315138731266342651722022317831078325010619107312917052291811220636638221498023875384436659658415256635129947439774212412519459697626383816897575091055533128387867451001589302035343809871397363133306675273897691811468585007267366516139378486250442350523499223797547239529860220331145192409725589881802135371716084749447170044379575104446726862271235952746559400059988367441859420805392058976555986731981883553139847161483284900447467382902350845702343433512811300153725824068983076215521125803165611402856543139192784581178620234841306584228798835665034699685966798836068058768539269862124063207118946619546086878170614349307619961851495658168272394363913136038567237955447827111935652165180377287494871039387954927279885654497252274134066326885294102225842667592409518765223410360845847287549615268144306401898558705080491926449349847614738265146982093269675020574859928892625250036591878289016438664227934945614454582962123712858872019166267809374381513080431484813277799784510495716095076624103961664401362843847983663932669081358166438099240264311170338509364638857442633542514938621556493079034046264676010513317240853399720031046359513882732674827746977472961701918838193719008143054696766391090412287718277529136792292065682241444824482448318110280104469802513057827448164905556831812529779888888273471997485933801375215512134298037862485582544944484153922834687960023596899504631760922443038565459477517475558940841465280402761524043894753546182129309305670561440096935180749217848602853869871899774754659260149736336760353033329026397976837909359351636748839016195654557249517532671252702420885014232209179662007238366090676595895549933431965496158480480635582346912213040949174486581624698429527288234295990457041116660795923477016999165624050819889952625108887434191082471606215103303757069956817824864225503359108998702783778598264240173689318498118760603924043426095373432467187877539399064649570982996272903589141415860086394255386942819188341400323775194275704226813391181633678100590078159293668130199263883536554551641851920525644250955254213897110975970319106957638000519485187290410104665590821238248745617692133969086022489979010031603479584283483670430626777834414552256964179911406465089059984389700016682567945314611161653005348178849279680934588248513993372173349914128735656792223133699295367616742946553093099631862651204944067448000382731373075537625455662945071588334713196638526767596831801223641421620098544057976364403201270968695108812185847013470399141660816071981492326439257868832758482995267938190597836445004212323247575635401016015556444463198479801158655646502322218439345581287383679862307390268396235389362062390130858958851017065449857280787544480963394112595155462028824373081365533102750860214626819446837640186310200511208511163300913885160092513159246640008714972204396300732353138185305567230658306042291279545508932166259579279825674543487711558862796076413252705586105181317115721958188733669769113005099311029775389728541550011132328379671552347925368000164942763363917137487284713122609969293573190858577092125989621020543469200859897119272239576750689493322603864584844693289761442053892370552980557040605945234783972239725945138022486795920982629681386645216377386819070576751991563676658561881243420307071443947928277118467937420523383421446835730662055237653779466145546223084713149053810570549370847503743284468084197752106683102222455867765947343780433157379441349480955181263932811700566747870325256710882799338509577278832896106696311708326828495032712129767598808135768660339125938310990342648256597751766517064413399557790249591085654977522386833639820201283537543515274604261283845981775249105649130419928511035644072079140979292486680202795981858298969934320465261134984653762429539519597250581813500402588934597439922075472590129119410626354585138563591773353498128195674449035699179220728509141104241402080045404106930692003756481259436122009538141498545014515072981345721546258807787260179109571729918055701050730426307217720723497299617665180430175523975174599685692621397160775937609344535507335144343757133519073892271510139561242323440048779963726938819059061741475321362817414062319734046021087195714680508489319877373824952996004283940655099946221910020588008988327338886248906152686570268281294332330646391473117459154334662902599725158822951906817443085457502884568358666020725003582237630651077336398073690237260842123418661323886801882176091497812261132063157793538788596846462006653810495479139313729263822137554124672935660105787852494258226564335860292063173783019095795795809503577910136737849621896316887618071864389174355956721134913039988248644546154226299820733817811909547183224843275573012936041994564824252113987118818013785384146100878628945522788420084272109049812424691484075849820753754126446828457967050391011060955500238296721420936020939111117006852250465736168182612317519188766972519091867105334325257957676108674600513302757360394395491105551796304726877664466775933056885214176620888277932320086806409688688219245184697785118738562633446899789361238496595821429042131787642700253438321726251004053481246645789869807660556618358891877502938346518418885679081170510864476832498572504026686003978224753991227955223529468698428297053389855506969376987250154658509186093805324875055906130360766140147300500738814142600202677858933301312442096789176713038722174651653215046573654064662258046148497462588018073468531469465127529617377245166989887950441629995609065158165642718650875801390812770173645943158569116578295915696983319400536519964248231844469397291284762689438989381685750282689173230754632424218746444366526589789248522527225856912346441127486452883895723632802262706185626314989918294080171382894044286783615998508656486040407940991106008204573272590479073103773308692470782690609890138361801472562152083038422477111803308315018071570587834162677997748219220388760570081101682822149385408669340551247004797030163112907002026637293738207071175114252183762924944824679889784710913050240544762518348958517511806775754589405970684910506087063918467086373097860230678031393616683060310845266726317990859724520454158240722630229238837081037850651147987987846363829287895851780419579250086159807456965585460444993731902563227882869350653588032797142279324032699389198465126517133080142389789058301885509845153191086822316722324786562867205521392322445486251042820878871787879213952859633002968194812533967854364650898145193488983135156595613166879445608009482393899509578662140684024528162466548342064731884663417171109823124441342242508928400845307350131572664882934471984470753685662865168970254289896901005704270598778032698285534778622776031389438413731453259997989252004988504147060093089653231469081931845284400528498126125911604119294992720583831601445964118378134722167679984414757949386301077982219671228679393184973739179482201681896796607849245946293721738838268125502506681999021276942514144106705118690283048698044808584576459402181542338322428403735525844780702952493660933241907335330562807661619155459235484167928781921230803426839706588363229629159834741406108810063853805503972480296328805521014107704085853207656014909696567444180076363754769029027197851831499366997642604802075444790229488741615676058005742806225376738627883836889988149946352611388394122292884995395429625079256042125480613669414268034031621411213341397964903947739383156887082725262402359054839888388719420791638188241446633468608693783456437782405596899454648278520765075515734358430332459232482531642825445791555002783617190582528720866886468069984032475988459922490928173685754174026258831773124346925069291714428092200672569241815988239578447471845840962689583319811547201371963100317998863718146868351035918140975109868609669521171679906537030877810538196671234436281007292784379745518453662802266214291970769775442223628164729540971694320008231727988015075520856752036764766491213500443671700473808589529611144198766684695735752713412181437399883337510455940419212379373603782670672101626075195628237684448700401127422203877263764785505184721060019959597779133442869376576202220998016889527979401954250459967020792053261545353197230617211056911998564341445995840697048960442222576087730021393734136676028596510899176179971744400530403083839583007185718444325034270128829358632719484614031811490664860089618434827310845526757428772512134506888329297527699314740914675120710042594194526335332061300141180858327211986771845819025986187986511317858520165077927753999547264497432331586001780960626505120262906682171747297051867774963192981011821447640756387425541062216503161582576818767102939115144015075974332966274088720338934675291321786425331599927159933801637570973660084115490980434695287915724509046201725411605191759747883716809086125006979038991766796570415858786846833738864817825304881820441854731298281666853885506920414686438847708622565557597721309894822156634552075606403119856933675079707513362715294221342346043299289310598250381656128030459246839249135121961131148631568500327169328862850084965986401301914861215160891780021365526803363930306789834182229148884225578419896256150613770925233103441895597965933253196860118835528854586685360315809072039984199549389662998800786503954771465084525315469391295204188969543351448315750569716751162871077386343964923534672116729383069016919829517032250039990815393525548266572953389355707600422394232854823187427861610251879452175106499191802785539446707522514346683730907841390005634219213925217055990145482262273696521006748026679832020880273472394495071000411584140714038871356837706982652204151633894131191748053330926146045666301969452516291308998980352875888867142696760913042479389514056407115281059226596283973084722011750038030072221675431534465215021899671276600520020099790578001265503298482089654029183844896820187906884854416349539545015121785690742405106871937783491608480848803166320082555655972343372971003435812642153594149225272157339395544722105518456394651695994962307511970267976174722211997971199144664362905739184903689269920341146136097419701095408917751358980015914001340790013845890314738736416534298058601300853390193836710634337325324903163447550371588952865849178784016748257145587787451986778363843368107565741021567791838798582289373269850387228053782763837888316857630038779228107677998289686972180291592992944221711126661109056121194611060653816784115111121960584197125255631316167308513280648370293291041408526701879431372158942764109654659159152167113687113189088071830449435667542368760070090008741778381731352942285155187901212106385339346873685468172096716733572020822894809690774159347994531722011769357655084240387156592279292223101175666832755215971714815652398747739555357710458187316459769829969253545316554293958549633142421507883389332757108576936839902659041283068518426608280696672024164170826740898501430847847288723095666733410229387300214198451252541946385658563428427342754899947866626695810896223127772801491734946836402759753857849034117340569951618850175133728243966230394652011946461545524235166491162287116738951644911380312851163387142743277734922487717953906331767745524762211000445786833640759709029698072069942987587278319362952641800512702767575008250958868844936025640269677417052349141430693710604079964762752053394945772914625666737837948129962706317749892413606543206923118927135407258602690965623370402054393982057022076159577214291684891105094045317059180475102133088795069968661458389904788282822678394656409800127083436847792839102683841895973322567171401136419522249066042706937704743844139300401800174519528729071647295164509736521242910178461772518195597439570427205343206664562119603801775176824737845794222880537846539623027254466850737928301022203216072691777628813413511128080802914416495181784393954907410024087270944436972180394313439442374008287073569706239651919641350338415829132524592627073961011838346002662217728512511031301842768500272419773851188103131095852968473888199372281699589823246262750299658356874535854956290807912093611839706513889698174053626754418665336953087336506402606614566810148380661096190171274780850051946759419693198480882657050918463893891531437420372732467945476436581572912002202145175598454988629316299587026828470384330798251210691929562342317735967544516222354126027141004731380778544784148204249984371164144083921196943572501994030325642052852172592507926831989934467328871436566285689972244257452752789552241311975397529738378426606445440539807951820306672367529487167397500278689224571818122730237346197168140888690120174448486859180370302544778252490897488061860198363345810482896633813524796885094420955969819228410283616415168062031859153621646811870512321189558293573787630660564284737272116728964361967038454501730366571359429645693650426003573046439214839952223672290077447862713162343209019915190398553279701628133744571150866905641333562024093797014364881817092187222949523074028179725390954072338466758340834393127569638045516920254208291794297807080301058765221468073179121446653686233186946661357504475575739974892681000000821774123547140715637595451390567177050912076223374549486901312989017737767186448220933084269821210145340804481668567935822765796449158956314685706348512302416761856444645208333355877212880918408339623039396698161899521871819375417971008116827872932449364229119017228657859462744954695905304527882716959532949657044568811058502987255230908209042975307698442892719282145801839760101500966245248851349298429576394551150589851034269691692774114974389402946795401318445342070377188877117548969940036931555914572160701780890297785471168656943791557144210658027093736211884649454317892219115470192139588636813898700780437891076846411845036788473389540465051102711545983452892499964224762098735343217496160040677288363971218501216307122616051400552322399107710026785229371294005463792136605016893558021113819572078378336042122835072794378752511629007919490269202265609248544027040223451995786170596863003190837330519027404452506546763073944168809849901438802164309243931285757647974286519540045670177068499433295238617134661014042007772296203897712931787735847839423094825466426275189685695149188727362993313660578149268465185469458443171433303099119663251438015140576523341709822325799388359763737673913108889895810041820154546783931001184104389973537099228777370288323581183842883634825859483160405991544999508086691099629402737153338506896674553702343046148543437540185225342376851016722634093356979530093281066869697596801975343286299162039652896669354308426996407490199582862910371427021848514922057296986109808005921883944907644880105927337469958844790461190309637765863007525053082460991224451687764659811632153496065985220856873247866230765095994492347417854134545319449457284612845136518961495732858178956891497572699163838818922807197360542206101222608968945230847343208099773510910937626556467375177478428277386045540705375091555030126397693643876761720333866751098962728167037414510463416613250778340107105223149387300851222412763603067736727295589492847175287240452159704357286040395035083251054090121650675323230935136867403458325093038519502065203009498287794857249550645949971667850409924653729132964260518406975772749739156993897262473822313707464780256270397749232976375797853340140060391735125673616213087968531415708734717194658548407291351550509316966502363976708149378001791266781070793997380038194947519760322555967248162593354752746254281218584177850415259465438634667109781784244494436979429924701264624586411231136517838622380542039023914068582190348076435815514619441067533049798226629443551715342984615790492064426823456109349027267659521247908155397477087844748649279517826873988651576295475491603462614917479367617530268837875630094331707854145039011269929038206091083857263296341061662443558719612186448774836878404933631970432763627329151203545118370332190242346568989591617769214370809808373758965258306384797036513282396270627514931136398656356674576567999166634129051925781582425436646818100405929273280077517531922730778923262788088969320878196610224678042482124745247428682775884004070854319437366217349150364180620267427306405407013984921230932560036091470852480636881327337616668489336904400840615970205137762515850261313179336922944277353778469913538710330690317499094144025565950929622809347306377214301643111581614215831638563707945821257427794253225769856778010187601451711513961675835889776079907466514720576750214885617960047192017239992110220923745560796867737930972926578827863886640082807819096404721233050347181771045980437061089035070833453736131601570853472477466558776566182761207219362947635025013788928651052245015851312472026369601732994386517474881175046871910295393926448406668013516098215408813375871216078664840755575236548202834843811908147885081091615128548651917706414854992440233741061166082182967242217195867122223348736421578386610322284835405365654156698447329676985983565235700774844222289356942018769116010549509637297048490707209282690540506699238388437393095147667835035960741344076444808453796640834424682082681802491355518111820743199437995777270861361477630650054897799172708622156674610808737224464782589097428167193855834383126581256829456926378686111790866157066856411335093506958338449971115543520488970539466659890394946971256141343501326677716435631677680061558920887456823647610714716661136889434722366843805475107982145457442490418239275304524904809120548938355779587643793571878261035260361663117377608355581047862537748298358463365801384779869166464913153771648022854386617075978657387303056689651086243781335280647197859229134283991472884233306661431148794997000940193826187424846868734024308135311723276138252820077171759155924976569136995924615874298274879321193035409319267107172569535139050225778623728007243015625612485276429598619763643074742341336222817898998884388391923136180962260505543812561089833861071129937073470455179746708775903531909971961560042960017073950315426123051469815816684169479130371436451347703741806529745816782234805866051342186353215299776894134374718886510043900351360306564181808089994250615412062589349211793051055299895898747048145984803664432853101779818623660904020611215406269580214697231147459961067161154497198930309455274659496245087311957213660378106201602546224234535867394848489014323527826546780647770228454697038290025269012548788363977059501366012568560400599464816563814386802665523858321072621054451336280917061266958720568884236368749907090118687119628580084644136642067863380869612098136036987890498884513323942014581451020099814458078284110592366496360364816133163771347400074994151531574675147594854065481750141011864315535276912916055654154180752589312978405253943298407124811626608323319142224045436698565668548427833134866604168151443019128882474235596153980925701204085825761160762785790771200899751962334614240149259229883265712763108050026332050408620800726362126270811952624567659067479715249437655979465658114123530074203013826215340278964559608864544614288566883083978242350387658468793945310290826522927588550740161027990588233594055280685085754612433974658510625944330562402109056070666262328825003277966220406081233444452661162960993654766500066003376138875644269424787954493642816498867223608931964507115670015377216949448571782194535416351239618257874815740250365470770898405382358882840298305873157644161414179111705959852682500542977852210515668842972604723369633584289436951830363277187970307909057351410951844373524059705861248755898538128125078848430119363644229228524796463415889991444738495765905456760836334951065163604753016109368671533573078913563983402585921465443155279198997162741030424636544091703033853013319631099460195954581407196061549294243715607856220399750610979060962682352265451657251508089173241400724676314465619594959553793665883603572422540840831139022292727866412409063086908840762454599122665141999162537921284433845019228254265431769207250302976313636290358667573317086411493644107108396507070750964495869179728571363279744097756188961620726722813804607386098465109176822881693123954679021473613017759033702894180475970538473005057132569833574616783234242012830659825230716426990882623549531877406183922234204001532422400669558667740119404257670867818205286357748249751612996269390511430671067811142357665971679795945843154675701491042783402177431124638353749987844920501069540934414547110557321030369130486985995645437468453990788395668309650200517290928453895417110672523332709218337071790168183231695653138894284192891072247151572019093605196323097677240922644177883590034740747337096086289319121622871197912923056424736011294181846394881523064192126149422625679120500952202458830556153523493500157192314765272122381408976317885799316909529509384328034260363752199179991045324309422316869883838301189694628236064705778669477868130892554872964960724683441710702605493444075679664343559385112500342266469159811996426782879624289229949052722123208765583940227819786414357840223729755580230395245153542785241840040633060128756429554149690981925095885663687647994050129641766677354611004565932032131138860776438033595707608357883201481506781304638203125002445059525676207578740865025926537909060540282067861984194566091265438947148663800397326318869762589629887856871598998849887326824635901002546728440964119127160460375843891856254626136824482814110557237386732562345632267773421508672021161294397196188301169611560827506710740174240756956389336096459806812776103905201927437550100887228894314892081433198600163117996852835855908775995361669302607550729426935412780665509990879613450074763893550871721423811022574798927951169114401992003670538986665033464491513421724530957871334907663106954139157812013042380594078281705481615763535696218680206917491849743528967934556422176408754329161756538210891899046233184915561566102230332830039854539878885853730600665512942208188773208655192131580851310802611733115410313278770695840658411104101505740227761730590818245097481331126483226894117867501282064646809523937627986648102388684541957037534403763749635171961243463929139631109295512583343405430295341664718484878365281660756832979447634202812601290802980046942955371041353451877276824229743080993017546039825725455430556618021775626854309322581796678945656499144169770651427316852615586506228546181790534670661201609780966715041632572012104119251627578814365276123483289592148922941664507746364405616594848228525146967985385210753108117022626576297492607497480264467452679670157002692053360715698402745466901367301886592479667844532201245908676234561880040683448247154369701067936463158502505962108394813609415204336099518215352456612453634404589624526442704161692114853943257440873059465775271513205117499269352954935635275038005252051750558576375713256423347200955081964679654562682082255646528585929917170720848896980279211267477196434749836103604898065869216491923119818067333903421188509244866941785556228037095322538763026269165113199002093741567876743064594923137976481471954514421033059691677924139085151181683325657534699501428517236403135216056264637631692120195081317869805521762826738644398781077527514775409749212261499138385259352284886937417942149823936993258916299992944940827203489738354695920446225506025161578139170194607441292731032698732147126312165625363894900717874987728219284427625979332823951646258082877533254152747670914593312046090229960340443667945312382657854212926000756238140337703118945094484742322772428309674049030990468048385740348090026409342086112116276149270629510766595809596655146088525267541493121253755859135637017652584650472031739357147303724380533223006172529007533537630977290397654185865613558019452868020141121795388047324647037031667535065259768565810024967204313207210538743121421867779046755473895855305654875098464078197160175898306449481918265271899434731448195450962530633620504142118618656177354515410979133908553177541160277365410017192597460848212190654013512161253074996212473830694682591484740085642286365535711745076320215630239677125090870388628825236103302536279421161310616141913581752046021587213970068072101803529182338512962240355696406340260253451618176554931301030434706437302306257069583141005026942098959941980933250977096091573548093844165905098188107856919203412920623106409690034059947726916526463158289006883836773570263666674766528299721167298759072473726610442939692011247895664335918840306343877709954894707393587083588542082173315298303083384649613838634704092816963507106818039074174283127847716470521060391159939289064669773839846024488349274654435468183355420513072385389745055655511027663431014732870500740257435489642980784254111754110647486284782923495780516707892001849967506102886045457079321780037467362634386152905456208665243966946690551551497483018156634584717741185327061516095963396613280191310816420493991905088758746173169025604663206423261220399825470528332067947551685450927635697828392852861068219583869140216300195269405517888218633142699210663070590314251129996089389189983715830707536861576726932241501106640596338286802604827428903615176926714933269685884448512913329099300460366675973012254636387510580670898378965081526842051441788343237009928087639725977043144409165954143350028734185649422883279708828735191929274413628503359627693221578333083563367741897266620559252506636423609886594510778351306730839862477414974033241104159678797195348387764294352991973115159852565305157029902083343969901934188333369198785710637456559436060003654238975098078120027582322027583711438507873395779523098709865261791040382063980893636704357228819792744755557942927400485961231629018623660688131619015821337003404987194567315735138100622486081597552553196030427230231557356829507612042725203097588311593809070577829421082937701402957058206819983201963642431666582489445610339146232554104024567601155195021525754023013504854435043630095038103499900243364963305436376783671226081510772287234059013571950764927587202430320896112521175108926739962848084612961285452122599574112308966604112088233405618119464351322101621230817811321379148226717182491340812583195760693981141542642916420331034636010238278970874798791546502656636192447646866591560188258925473208638979774393384530794795358971392676532997541893047248534440990067903489516302165780710071830059350563020601429653750729204128625701887362134880807173423575160168453254632279262739264083244840901057629691708912746089387425162879610209641492164972378069707003586893225714185169300370225475155958379947375761691984244567487363244214180832393007470159336246611249791415225888051676653182986651483929051954908743130570735182754040504205683516272101182014815507721834605151726309130084519223219199968910582714142350237698403933111373649007363967277094730323467608803097595334698067521370509520692148693784960752033071030743068578921104822704110495166159125852702919127870344075532945712343373512205097346473679793576831239394715103259108355089888192083862056265196258787637987289017509727050461585358488657504856734155145413071160926816481463824794975949317855200912569191703693281511523677047048784049895108449847140217718847557194844558070844371234660709888539208322051095457089947599048573091743177250391414760791017970830414146441519580051163353836576211384393033668831180632102153311953040113156368465012062316276988033727122151707598121514815794883494213963456617872182258057674333643781621928927762392736141773470927359759842354460905024640647033512856006771663097080537119154225682723071102448272067537573436616230346549386555534577985498131015722616751444296076027379313220869073461770036489180503328557954689533049481654511146374704033313983207888110996920932658474506061307691866232425038932822697981369263155290715968704843510774081837423051382164154274766476749095114634813247374067127511492522514716157536264443014469175321153617354097613732271040171668759320498471778569702023707197092284101658093720907281521469369483603056950657289364496308086605608635121820609034504504485413562134727301408484949570966243367052991627712055183963196056776132530224658632275465838155199671062250566772976304589713749340555493359430883600282446754504043469694384963272361549369237836526612399887549857041815851100903425974276077126451594537598252093774603154993674758086537424047959555926794784630227207358605942502803043466322746464408088314948495937409956121423472983477032252883223684858194547590370826172752178904177055400629798723114392658834169425486437708584691397888944273215850065133114214017966831362024771235559662331508577106014245013269564925419829916035934086983077938446026660487919288867963044001751226773515184454841159016562196960293687415659879944610487328928153682768461568388601941887685099267106282667278159073013458660401710130514427665812150738423828622458780448897094435292621117855370548452515436564741725190738372709370188564441412991774397176748609860476720260624212199582619161052539587084557144542261405580430318846969747761610722924240335839020523492990693865215897218519633253183920938489487160088914193423222728986841002398265007309210341884892503774821448085476573304391879582789308875259559225781717908297073930979973697064259268307164378244518131318027682093938327277041177138660275194033523744488098865186153450938629271927851105147330831460856249950786673582254840629696053971130296107209091762918668440011750759053843450778858435691131370382674250091012952227911865149794046749547703542965528036343019954867919285547572542248896847061198741113639604320624494901021744130902218163577445385817615200210414412668971736543111224476737610129841959547169255311008702025918367576286404360062894943622669098940822619596975928232840626042305856895260227475308494045267775823971131073740659348908184599941622067633680708282614713841623773181269704759299519004270935068141417125596872811325904724477735061918516585670599571499832384179364735966611585153103297192576526908398687819423716218114596942275703158105465969574096148717292013553396677339515724478504057028041877937292356539782618480982113287374724112608957047962621998041327009546512530047998527348246669316694027596806972850215428130381175235237357042491272851829228402554168483484351519485014182386480330929080442648884635663786823697233750257519347996826044778640945692601971911485098101489306779229159457017495762547285390016465362579317656482402162191907686520617314138758520347257427276165102733025643231685300894720004386272101741842620279969009493272914076287287838522812299921046448690812409559420563907952436444022390074356888170636076039699833753740536967512428471932404149009432434254578403660997218420087757348168384552993173299661094513854456032148812279347457163895952467355684137046444613463016000851101334856702207967334129110780617562465331619994071949161142148890267581791891482301228761816313782341724737595340459014590485853758070272528045071525073719483858383406431363899201303093952096018419471173559382829027464036871256087291864858491272847193722820669776516072659802810851222693150039098828735102862173491734630968946558718759571527812798810201639511055853440871979915440112649227446273811173839989844914234380816865442882955714185792961771934032527036246499337600115310898784648094771728598564946076100424743214121898636897124696787802595870894561177963489006249540313910890104096430680033290318471865050279441630555698978072184926236037156204422699440902549882467985364417547305843470101354893695378311261235934787964435929419413939815819228683572819340619198822502531599773754975930792154637233675991929033062251356846109296775965752158033494397842176639615007947081213229652009609269464969866651754263778984803864519870556846171528721324236058446190746962463385169493766708338290062304135486248248928118881612737331374810358679192569360396873870487539240493069629346555010177046143903784792496208222203296982729265742051690595966598779092155845625441773094061004556943615020527917519665870419326905483644310348438245425085513336421928843919845838189742005934711186854463628643174767842943233619872725955960085023728982885350032217779461206452417927578801435250311539447078399394571099404712511209245921268621618460564885929741204010800799603972230171397723638704639317844443622719142590838368667281002114465684689717674961057497948488022233318179276749101822274963161189500534668075622922563633655809976893522640907902028638133294992941201594004768409188332149589116240772673688401018948727370707841624645990588244945305526607252162226386937875878018977909037037340475689216673589936431966722402758024656651441523235841157051821255396327897450783679717137587169168728820592790798826845674982904569852100674478203232364410784126585565728631122673263662214636549219927343874286111642808540993662934069507836586887078279954324442424099790762686089374216109963565686859584283772039636716388812606128098831712717768855208256902148365572763451376907518327385546174957156881066071905508244741617704527318802263810539583776128364070179825133262812921980612328513072653151261453660650769771366548740833071714574759658732655932707957728986307601552694531889411152462205043605951277819872175492738778124541908996007996547040579010984254889999421937461608703468015680572499698476664098379140588510922824188474601264541850633488965343872197890229492396326594258666648637691172640778797224922716881254776658533124628852592928164706849191380486089725417357083540255830089386999879574328534083907761924244741803872612867803555376878547673945526071311433515132873164714874856392280873072542787907533138773998738267530412127467903166751639522028963541779907648534856758136486859821809873017473274646123566382702390408986223051470131185601720627094887752600838050483927448646961106374454479110079603168059795801181822147389056649391611527555188879129547329285121283822323955414717630836425077985295838198035467604566661142659494414790359326872854140903087480619957476279180704289484238841631038112375153630053193696911121214489722932064040285260661233995615537136933633536939057384275115808801101626394911394263545068065829661498646069954574294980535156936149547965823337034775994870528807338697389628385548118226972175130813779378060484124069979150564870098266779554075680011846449591573835871135845268437694002512790108856689886805191167104747549394364633264076495006114759776778416009090407888697358690373596343410839687232485752287464666842961194240343698715058882027883039060059722666682255270302843355057469179849090595363620864657991515651669032768155747106753368824317462374501235048254645090624225738335163629576882874035287998725965005441216176287323939802834809457016693249739203374411367461277869715484487755931416911522288272768916445078779241428471232981124488925513025504676747181863529405622494805954891513999005480513793507747986021049250326836493306128319967524837261758971379306334098665517364889122140145983471337615563922202568792949354942487189007867532541488442330362141898535774162082339359868661567360663005834856494456302009509721407011895766253118853592124402001904882859379542075711097474517066051823966674601538978118859964886047237801700564715290390191022770007526993704666732186268201545254502957473700318304010905151819577878910451258547726315328523700248161212269959936035971307485674986234202785966286551769535259183852146882401995435443510175271129503602637710029153215222408621127724694640244128614304065266766167195869335938104525762007837090112242463517250941220331991030650744969926016597871446512397365970417665641645021135121590481128600391183669663245139386744349966061841911959529495657979863224176086989909233099689770745262540531186212620850658726861831710993470067939423047914381153071728644469470791138171844856233737600066728653473676767427612527670984932890446514588415106795130778950350863079485066289750973825977650616798008829740753392667532497955340908876179436763655806798198827894319760263370647113889234604375319797890513411275601327757099811536762310816601653090597561237875366268939912199396498673898751455029075597023696220512548981664482831804522476967487253123299245414658621621876184569716196949557667547507126538377102171629513799021163221409956859198440024697908876756895977316550789218596757029588272800740386601757109335549622505041189656152854426381396134001118710128281761459584398588462755738067023342647273325334129707071821876235510568114435054082225993852238820367199419921511050735417710658916182306763989874495801291110234328718228063472618682987153556443425998157206215579654996901668747874107790993150984377409102902456296437297704780798176562455861992640130286048439557544656394889880625651865133402233305072818987800396179304589720358759220040042161005161772096880834566458106551743859986191534763353759714411762698723947826473230494139360854632645994427545540786562020318454939639742956193086456778860354490554160474979869527269693940843461283232652857147696912260616914337206656860757894148653822391627483412326467155275525194088478550864268875445792265078670135023191648418967875106853165188897188286076548497999689824181920379535476672679337889117330782503522675435084486268674778442796216258144985462155583454307004248057322767255017278447504160315619905233344215140058372053606683970405587566808581564081938983047064319357685206387250376162218512687648937258048187322798274234582680436339042027051989917942219294701794539139376623354372164390763970242930588977792105356366307798113516609371957609407845509766100847936953798369145568029929967626597934326629831056216694742651050674358396905699152439872817711335677595963068179561301276123123547979483386297503744395277041923409890361155636477137160467812439102185641276872785515811819403276038499159700490409699864779358127373947579155763813364934423754403861134134917509655685742219737724335816222592507899463908434465293247249785319244366757745342025111902752019599126907380488234748264041528892615718539411921180541513833364798706151313717527646781637499281082849011670270188091430064832934263505831053219880029837674004955305890968986250129792428612993584170437692029414237537237531735218408752509782649240657485512744682303353474856196376643372364990662588229001845358562347407108665337909580105512511003699508178109442596244829386699287825991237226144552945412383093816906875025267846481193292555771475725932085506666558506276824088973009452458924099290048527042104949026355398306153464231545300174542267005237119827889752013462975280257879780369818628450195848959469786374148799751930285311556720468816332679884646575458320632806426408525242052848504994364615357252077079058073065235986000645855871526089706782434841826367838238869447777666346926517323129020044544888251005744495907128270841367940150756188969319070450593001582860998384993604779000763479958669639516259161477400816998330350196158095128169785983501511765514962255204253422858272354712706052385972677037168120155073843440457358088410934618155774722876277816838164697083026211936642426621907559608819795474689814547928108828707802559154250136038390392090457515426428138356787189504776435154453035770113269012491084611955213310785962136607550786270356269208365620415500761334905167016110016298566163676953498642337122569185007064898638226587124945870820359970589817732884184514487076365297511126912080306329702833011622264596503610414922322247667846884625667216232733575106755085306244396494819551823541101848232627855785344163323888668354197871107603389217190967780335124596353381328699069035553536164779144253279073379426936057172070341694486319718720446462197858159429872062165993159538162330830780043918672201376891366595103287669136629703896751719617576077746086897785208796907210079475663841638533175411387314692636433875270813338464780438965626722459343628311514817805361352159476754988614300186050417102037935771621955077689751881216507056140989535454842950591658315182334332677343092854260807281367988361461127809753337192033843573857724349921400015296389481132068142509667263483843799490460872298573019987448053826541427316767026883930022862645564804491335301641109086826687637883799406547072789993434124396191835458300344915715142896312215581321010231002961668649883429272588385813804436286373354645863054252844692289893855461812041161646308051049680412434649258062881508090864739896100042779677284044694035092899348184687537399599271289068757492333509853224624586418718720153584040399421813406650600419313981111564447183336082768275545739664304894074591969960426567439303078295156368925573635507103062655516457081901754575067203464780816683764853791996503188427141078533050677432328256126765175631975832005814387478544018154604851318696079699647414410156401389117338900789821506006889621938573580839011701079083843944369854665378907578253017287274651622491561277505791547317808158794071928425095660565601756295013940285811724193827327477820576337536890460398107892697476731287346886442833691026828096806265561965298054979488794995151798034369486751326124509958620418164782236358291175163759289238203884360372482415665059858834579248578882637590983519524959790252599653934612602349497473597391231524493449924237630961095182819255214212286109997600104856630333438950716489007217854944070385227994791268629245216133150250547661440905256804331528103743320139563919208363147094895968741210171273626584832878602282235514105481229413359247938355912720918867448563978891736728003116273858469872038503365437556619367825434416436402400687844307588075304454085932516543051851009439726910506374462683203905665509281964360990365114828647313215680730524017291537137610194480121319606783498267804802542594673009154746246856078527225797340477902223948557732408205048137504162411743458084800419246229292582606331014234448261204327690086780506629686587327080826924870302654280000526985300689336593404567474864760475280677207796417058421104789937382568955254773816238911437434559101372399799963454203423874062552293292528659163164687831066215670838846102584731289315625007941836890218526569620256311220177577826749627305707205212502687314523026514103216003849413279263735528621293229622698528884280652174129474296887255451540043609872645979277174253894948317662283067261114655692220907353378757332138326810808912518211221184854198307996366273829301034188688041289917074741325759647963333926779774961636956692330135505544855015989699294197408596263302363628059507434370733646279180598593812289085337410699147305778118296658253850611962560902856881956224619868903752623099926845912418661494727347399642995008733505102251772407009164765579259818344214338005615312205970542189645031359331466045731538642535906505023943260553979610834045798262849798548872931578696877127540234057968262898703343911131135615123904824704131502365977573669195226803208838480117907678737197201213433701440255912117160565154712443780914366436712923112438367547882872573995874083712592064087924180654147276767146355186606039024960554214908948333154450229138318077079397820287558944995242803758022737847380247932800391466549591224626087952743923429123595280560489461229803934645172630603519462954020723761948308388261442987754504585042047410190904877997795532758010962311857280444092684283066685055803141781117364910403822378125845997967865275520421764152938731997684335734593804800102142449679495084775611046721777203566559792707365631674218033327558758645774123783449090292521272553921694649007082900100140224079176680088241938259257319024352281907245446616582638815903707120625305307661402771062134998377492822071490022258620922932912001933595568332574804485200340067437983856842253877930890536544506574262004522305616416266407559537059363049241152917031060899062674392282604651973224170092755488377387453816874793926066392008982540387494998472334207348770810857595800278570914366662345925301211810047834056565023494166081116936103059432663319851196402324259965284538597902182540523703826921430228180038662013477118992770448593317381456197490665537259743190886559413550652773467200831612422297255771888234394082396447235929000455646146278637188477538428566498754352041715925598194126220650383052562569035881105609037723740734391227526429938011460597162554379201883133471654266063284182410666499605872732197060928652873232187235771840469797221099235659340749202114390210246991058240415041849578146520230285851456708292685305456318481381899093468036666458452669758885980467454608838245092441550455979590524868124751572680678754836793300193834120135251412785912057645822858670029642453620898373110480881151998366733065628687192006735453068866714447593085013796075844612701297349094260081547267009293280426806382830048440127209959220513466804996231667679165157046414022090243942521204058381486055680849707921248918044280692673611706606237176754876667810958541841223391086001724040979835242278957498773381604870150242127347594088939437479113502737215865554667161896783895977157510173081919990491750859430253185088199443522705617644891465282580875267443841780866569445289078939456123631735813628303211241754518790312222245664566058962510477906431799720329713323854959574706084723713811498459430947219642953363716189021281935705867049230480774109498574538715213718637451473093251294457112118410328166841766903727842894624427867868669072493231545778701915803114860559237471452643814047574599285480920220215841008987687852091184210078516752675756000134607008487522936823049091631750227767195041444249442534003481565796155993226868227562246071207598855821835373331726250444848409499697169478351872107316697635839292260952725176209016360616926596854250196689914466107217606336282010247458942791456323449233399301402940292716625659969390510182643669947082511972361811175547168129618856028790252168797814767205127255102056430800041744610269660843598763374877560884914168103655711945359181039759694166493291081713405786761057803378800345316612342382046834893790779381256442864850655149035372736861507640873611048020484197750234789013305208548486891597773595946031251224321729965308180300905920479702710407897503554286006819269944649622032842982915430314924404553525571481948429709220223284429571878091242316189383328639596004699854331719208432276237602762679623482459185141400206600377013308379036154031156552767330225531752273435108358850148551255549152259435974573367912415031483244301767046409558077173423985553654755254910134728569876580546093786018691840686785207849227672268536062939876100492369475397380046790365678451953705500348368795984484718928539348961896324478925806971346126488117260738530623275371344853579668811074299901010928239294086819861913720810703371229383637928957698229754417933515489201778542852940397149542453411561430302481364425562876016863836311386452287090738478633717529736302366086470331839063643843390450931282705702662882816773821586943562555674755080894553357455356356852984241767609116478800164038795762442058830234490841225148054258771207418004203524974534935764385293637634677699876447992182533792159759043246358908217438307244975909774384751225473435554858662045771828390479100072268572170247183446887865014734187862316212089739529357128828091877429404726949315598176244195351203164418930997620832673403483493835790934731474369662109673872065195733288081367093984325426048498709920884094395578714339996864340061022709583329006432591427790192409445768517173472316357266622933061376530902421028594778426882318610018493771717246126624144787168841421660346574185763661903070517209428067426885658805899357221131148456335228352128726486535986300399372105240418774734742849916016173035597667796412247923367463180947489618344560974481054223140261152846148926402941668768967426143905853208068723816556893510381386937738561630105340276405973154980586404712155943647809535131192761722235767295781972569969908923471589612997506998922942103195578434429911043346565003742054653099614455431321726865196455581964073936296977472293785892119484724223286119860524086637345141265408922381451707119009552797115119525287375937038954110585201641879908185655863636008512556350330280524574677168448709590231115815734923822746624836843265858294484939317907953887891727725200803154164421567305492430791722992336330083496651380285936972337078371134021825565810416270303212666064673758226421231015482725053474107473417104542426616284163272504489878576933029375765629524814443688884288146496895130097406369401707937484142660478361404625909359620170007471287892856499297271242890176087675909808475345318985982266467295851118768528889443302169438852951653407969547041420064583162014853100297424924645130045436778218443182284980472131917413708033206907641229434707526604938928134837286765801337951716274349855877932036119554985740538065049665245512711490298486341053454926795137062799378469920051060861450787901771217667388588286740712003621897906052233875726340237010333904212800302763589553479407712460879652600204101859769674262086416760255834439287422028146485262784731529843851014604087722058119051924650615950018071186395714753128976006819543687871166733192510201454343205088923659386756160197948715575203546772834741387873298050395162185607664059102026309687964374396486196903269065659218520604042921202367587860504941711452173115954844557244336266803455397055939930384131300547075618190928088187642194010158074256388670617425615904039741793740243393263874557293797599338787523132924799392589086986603683686218219551053527437527407615098704910077397696428660185167698987648145511811798637996665407808476477618943852174170598267049754379818716293254464517351733184076810064428527364565144857171361110177645272295250424071155440785292853522808022109511028231540517017913912952259326943735880996108227959392057146539452389348281009821164882109767446971000263285466959472582040203741804312140823532575789138539096975462820871836789446619600609699998750076675283432823856617191336683970811411405495761990031212503273776975986801090165033047515819791591433498393978824501493137839308693750127660796002102070014118904557291373729912071561047668219990142549579217465716487537455078084928934944808388263203495569527925111160982440704149848816552392872022752583728050306783826848288275334245784853563185533804077709234674630632000984691857748909860831680143208974578440769434159724116110325932439393261107505793605296237568701201706270215680997627785175329108062214785484356419923717023430126505993946261713567249705508562326331530184197748213671170952347910517070571801753929524879325965716272766653593257520859450489430716736429348359661129126022283271486815489890374779391878269326772804406007997650294952067231541284351907785463505625844826727806232819212918302408428424277778194124386927131481230880848984228740465170361571547271997119095049672025589404984411612591808843991977483412318610598608728848343224968335016284117713217850874500240221055486958574603775884824431036933417394367298028407429713175282686352272381679869829590656792102766465275802367287029222436519078299333460209606318528090655772716023970725266024505481059437713722171925698035171004432470666456622985904497516222153817963164780563974647789363884161976267035452734596168019977454407269049058599680384252443687732065500301213189058604766767669495483375842636819274566212443933465099368461948549834987417165898597416554224896235535841410380969555789540752224334506540212489367796178011057136230206558071534482040360229255908009079445830232249658813437101907841325353307956952483363671501203573181591443723977463873785195454137394608482142180937510785244847191124234361986199462428148918440227090816487624362971491965544850668480185308881251748439542171574701546021236415041747579495063252401336961458372738223361452169003155385936729502065470140798464429882643106712479199055483560902464199661948142060541226978373436001494623836290740152705186134767712663001163567709792205167885039286782185278513325192864800741822963506060450734094125996428287874449484096482041794506200529944268346272052590772157510430450385639333162021864552322265458050509810801189436526932931971330869779955728917410969095105661610883580707264938602793459868884388360474896617834911810539990136056154020856176775551481445317874733953300880582562922774848496004381731184227981727180176534078151965884284085596690903463159351218505414689007601119583265677949727146524741789874360101215934786829261197800236625279615336732053285228453612814663874645976133857468445197045267860384534454969101858668015728544694633136268328780279396818757183149447674222684838436147845948333848260559891877875589787066395344866072558508224954697721090824031942776564849553028939123433803165419865519989869993683243392917915623913832426553203044913544550835819563965547214966573259807682556981119372940873593055143965102009892195403795827111113553623586837793549646419172049094804313718375897239813757058410803533534539662056707820257473009034496190231750562725716819184716442218169017513341749626283128839822026030347415585094552097686611802143843650932018922259526569822715589809436277615764003432925303232599435672650733534802286976738974879825954964874148181789738032085754302562498258186512593996337704182281080584202974717919051883199465927582449236962318200201384676217401029056831172895959463947048702739194853699369713410551003908459644152123457602128094974017447992122047628993646319992716520976290655538741028215072254220292311460194474242126710910506726697295245754836172409334565306630822822792835790033321774602652803808072159370555123456580145317101064622991273940418460103651843027968988019053690622870884175190537540287397362523658510817045369242127994715964988848217938429843549368088222729967744165718723951101856711354352427318525683880427785332362948215061772458104643972149445223148080188609335558283610401938531065863091184243272043931934854671754680798521931493424641043711259842296408606115794557337893609456655434066949199949007057652100432602744874256556691827023305011126889704105727466449102213822832301238384434920003748836998329504102694155266283812604290972127587412983836944589240540941100068828659881989591947053167975752539686591472698959937175836332836445168553773810236349177327547510927700249661277487687151176892851143208921644202462129595268173963511808100615631577241648186532762019393143982954001244249981192651032256825250728189561978206568070560082551268801396940107903386276006759591193277893104594986655818597430651941596900410566755585162428777762431184920611235126521964858476963722565487217066815378156899785896608664427114481402762449480368474763550002551714010017364100019565275243168613095587380121356767529063038166955437016630685679069736089577055528696801000726658884785377094633934573131121580694675731612642746204672979993285862434813867166200365978666060277946963031175944791132306137225730869369471234009502752109742278301596427771289825577586084273868325372003814806214349865682042025823003132151372761905010107925984568984429591944665967044463009038467200309575912144691335133940703547243850337725401279660163083944507474036830202686550653203914228721330257855312722567427075500955039870096520900723548259346623628905809990268928126227810279848416172213889987477456512490415592246925798856224693595826624863922482583123782685504540877915768896116432094879375238518153070105296309409230810479491495257529549674567727752688015715402871738737802669082494471454344934589964497076954014495999054226721899525293550130461015506697551100415770858032949825537515581576440275488811945965640033940826508345547199373104372922894445931777802345593027000629345010563645721543269891229158525903240462175936195287031107257194885192424537976464505461616932067617433271344129551243301559558701422488747764510601866616165951750950621394471053590582767881668112617848733618942352302331550607287685211119125902486130342650480514765232825772910341543084384405995994282306074642796237637677476218057596941647339940157423869072415936079373017999354478558578836166775209881972160033249498126316473911333038527365917162805538420339503249319099247138339738166541659728450525610313527190481562488633539437666049939331029691332154086327404362389378376379604684568459575234613683114120649275201686626338920557336258837256374059445313845406825381566415010609578852930044232972604791117741097599119515964813121526167180553932905481390655976637704731424513881737379415779870182955493317215401584218288599354987329421703925492383212772184547728779333875142213309709328986601079410306447119861866869637055600692909294082874213151579852196746198186484275213782393280527628715069103207788990820227074254175258814481429463316661056675757464175155647100832255037547461537145242170954380806619808004150878806933352232227626830964385711544412191043672586934850438577427881247213977551316783880057229774121172707474943132579189367623126653387240690377581783530433700518113528937139444644416682836199719912156102818593962646623415858616794903332875123623861425868058075647973615833880971788492568508844461233510722026624798251571126252726526319261620712352582025029056716769296628475059674792856118474624080981018138157992592218630150069722853919653574440578058654994902159700040620178526137927275462429694478889357477544679508549270419308712702108490465869183893844421638179735369525462107753233315395152052941957470532966694918755784484493112436437934894175378099665521719405507436591953197857659030238229724802736358742448328097392477814648696548063929634941111999584886831433975986276996919084751285834562934235032952901472293753531647883853868915593401015822860826432527680631146311576274179015196088447740859482917957495567950755635098683273718037386612098300788576247711308610135842641041716246513324122627418436698333698623943491395978767173830961832546879540264564374070724856451879378199323842586228062057104067167052376283636291646343497234151438700055675892781970364446614293190664717317230574089045180895914498562843952034177326329285754615780029211940132001477382776181594624293618804081907237787182169762925857433169999643280457915886656043346265013201345513526728519429241402736855315814382806164554652628128725910267126469126004086242038159677517840457474530652145037569601766243869830675497630816454930376692848421756586658315979259435705308271144720931254235170773887761621138591920381278929581167636471347160165369255579474244711700422456427681212552729137781678275327019045265994804668900915208232890993434778469198514602923195849526864635620289051336832552839924796617023248217937253309712018567729339337521937064193116343504797165129397277820369469537922075815465329697242806414792577534534367200598789475540341535530631388761242142922774840423641718225163579582492806996719130707147409825515137557150714814907545153176583396015292991522780611877642321994335187307486383660600030844166243121161454572125683090010773855650666365648895666933946370108813235286331643170932546055951204707914619989827388853380147926373648204646643610258725430295316893934389162258912826212352764739207609428220490706546667585421593572945832973748856677831459077249806192519531707250680682940357425547647205884621892490344686150791828276113968157076502234641526084549134573187965587606371567844206250928669697667418835619434955591186080283328528542912877219501319982558898673555748762890171108789623805079583143973093156037498911636918365205568056801923767909121949680720663425878618012995519580983737850404794145585990846155355611401186962716120390136890307980043463500647954864074016241119295523258217457339856378251964278169246537581326663318209893729539565915944976535461764138745115210893495422298153342790648166098131298836310061995479087401302692210070423994259043675603023981563077607665549606519586398079765462167374092652259907546555610590639525082271730753545086525108814804269048004647206603933905005102668988550253403287073942584679853075205094586958452871107923663231458963164242506126758402436772604726415097298498237452875711759551442346262833681645516560857248320599915530633480816376597985158805779123991159755546702023773463698150030498779599938585082334274945331222606220128054566105284323232019951874082106453398202394342175714305299001071030058206749741994030124718573775774136443408509836560514113608759265347598938606831793478168682112972067563637621759731131678899571885108976413703765186439119365343485840136513932300280756269094408839258868618267104536636358669406843123729037111072720161377583538848584853627421785436737501871616327944250794638342041579294221866169665048811183211269536340494992918170174125918974005588616403987749194552428476560173269778770316313125020696059759682683440588246507810918313071451980809502445386666628131693421588839147125826125218857905168350467025543597578997278581392722376220488558934565726626175988405379011801272098892149454851560833172755220815431083927626297574181043258649656737469301310833362179836676967006154120764596041466755350746060776790712423037655952172034453483689998968609913307159724122316600122117341233468999698825417350012103565309773767800763333167678278178851585285934181133390797131886335160057338715208083902028964294264846904751099301683663028936725126950411471230478673699551701264715054459006438454179684118137728058035800857798836146692799322107871693322907376372064508168523373316295123364661911846823567778320755589693620523415215393180213363251935602452791803868773003540567094016370224730516839617140735136639191893132657336228196365817655630964524659239174569535495307201041977450016121610780647732120692366736877088139310417696977803361748828592699228041198249443782472502154920756381699488943138790735349601619313418108031908877304254357655587124330810405104843964442514857067050302365702775948596489404096257904576143081331175049528926144290496652550556217262463368129614701337592308595106885911191901658120175399384578014994793957819964279294024187829124478993510511833213312717778030835736176437207614951633891678068219337504340265036967457376575684652997516487289461806757999771203208798057530095895272027639874949040506987284059221672640399041892919345127698195878924754858251864835641471396855418734942477960609196806486919110783316710038609491511340742129308538934901023447481464297899945327709711739966902757512634269269013000858302334510326756781354021130215681559695548235220081617791042694841585367306911535735797944828696276918750614386523145990010456470564589234641422845871905342593134388871727556291526310728380763148060133125542856496804521318200932462544346169063311402044998265489875834049766705515969012514917183655275233440391825252674757661171175090422313103716234153408879969652786202148168641619061034149288198630992809321991723954353995568227444142732684255600758568265266210736447041526347250149214337794239290741731490883153246839611392078751833736003706571707312164149020037181870144605095392904514341152995391459931073204929376023617213956522997474837783742595338831483639542446034743939890523819653673555011185412452695188256229545905619553785632721787879560768888540616485351439576502240282221243560879482877541478850462543868257255414913515902043097966494640703197324295136981599832562673193084708552872275100774283144826538192428863061420058039222357368974306495881583811834510225476719575189997883689978533180016756335897737153061477155396359716589943134185451976158235678982533979877937428138937436386071278865787572781776251632348349525264376066782306981775663199107998621816411528310912434562185976093782149271478775187553648498355892737629295193238580255970183816747747905336741024333955568295348574233275324307712651927251708117285128015010370781915618762897156737595184198737696932327419237317033314897994425457710022753599557323254443333298003669820160097563760977943291450818630571079205522111135426061471499797502364321395000865811800093884574434928128023028738961445920127036256986698160315624362942941880451693234519992116741830534095246964216245426930002141456821045682020922336684850784796441996612555366216554783158308440578354786801167983442510550873248576223715320245491483737358541091346886235598411278348327157911348419907566677313334594960529698127309192230888484717401733323371444774407852690428951497946773578284222195751711865438718921289851168683189015464986298904889741516154768996997884943963539754949313063150383482591495987318067719123512067910478626216423351402417108668853825958276527817097614405966082694568972299506452410158268651151083128368380457878561201422429840679931196501712354070916652100149891018955986937783584645794667431250333201809947498667582401521905153202079647196403804812342287451624701759620681452414266999913819932216126095786459461863778522706193714951064028218778360309161931989678974627110253055276554372655091696532628370339032358723714927072094695999913037585631666694154178170165280223951742379653252581263938630073927719175466411900879179475808807360818543535426737894270576707079590110502458124230494181616780186582369752975762506876586694841206939278107902786949699274633733947395963914453726030719756381356531786274716621929061746510979276366852297713070333000783709812931682877496474516224851782664602026746429192230210080135851974998804875458384152147477148302660296376765312497653685275494476651195465924936985061066571169918031268359782857474610362062030849933001368537338848722299130565244359060650045407674260908832246622656980048478810215564139119164108271267971467420459506197709950446899586948623733929252418589645299956328501294515467625866582023701556468582823954379597164720315598738163041682729063005998445635184883187120182961684340677800420798347398173086808634501653124019033059885891385397531632741551385516953937189312475325422762937728100273452217458480987016727135641266044708893246267911427328142253687012133446270928060085166589451922573996581351385639193265750285561238102979103650133964826118555759108071284372980735109816843416436997598238995544445801442183970376351467931597074454685354266006799216689951183291114693710607626172875975580898691491468203986296465906590584931222927274869023838141384878946325743820204315957501719208565266619694794137311430884162814427907803428288786210071069344650929965916411955743958411332667632195181902585015890496785617246843041398410805163884609091450887902878446734158710395727305772584212267449346744213462060669657796384839386964102312169225033879020592064531983046166475135868317150481816533369063942084056669251213012377740115100819086708781916534255786696210607316089404018809076683453723240216608477975942562317977893022540879488717721998625145213435856416128450904755853732234388716116209960199029427655949129542864687970950085961538539441527148017363695866945308520089693960202057621020726398685010739965799368000947763607401642166767305410797906770164279745868722063306038754460263291662510125363669417044223682270254265046199687217030313025691980176145631779603971405341655917420647433192685429797573796260955014175959111830356072986343975086508540888947697077628602705133558237961510148409298583231263725832888319382009865074167099112420027444877188876960995827693642640321434794136940556508745557039475814096148997392345986539792117138304994311179184898665830281705115787971837396214780643774773611582738839149252924133574078811069104609400335404525597689353628379289610039203245157615239648379689407350143160949716177351003545650826747480562841040954891856435843464773529367459956401941993521165313859632687483550193408055706552531555262049092458259574897219617068130512646416852212943521610151946753638917635387067078137150415090400111003541914259645514318814728498411669621157789482277269324024313046319127515543257267487933853830700152846257047741891340403698889001697607488946912592045006970109955676597525258728843166374787803229927108591747284111641857106823288198849722103463134123497617823740862223458611321419017890937543403251759729105207932569637890936285237847757538890852411510069817087041054646777404106995701300904699623616332019691404295027637254636200364496832174268177370900576039431111734050902671634023874378334501008054488067513787981016496009613512312195420392459881207778542900151577927821959685366909935819276170955479575866970708303035560593376111659631185029140172190225600507725526695882522588185990938446570332528914451871755208138117228081564718735548777394194179031234060412522400516846046241398276927649290915782765713245245803858710842850996637029058481373823646544560983355443484013730502622565861511495091489273811173622866324691960718568462620379297771013287300475890306071278839494457431070813657347228317527044292781565838415331675301841082546829633299915773461960368915561631086559689180691377451266357045579799717625743058597505115709689515765091926287514845292648918156931327984086491934756065150712006625837095630944364231484841090549588352311930852197289799625389641225218570471990008218510058091617485323727385326463348534914118053815865848007775344252665748758223110067884929351564681386514397725868108223876776786033646939068667767818393926956515088114173444185916167480232917763933759644405862895110779996581383884035864816868664849472237439395760597856539114750575176867254623723030817817765226136791982952018623123029225717524951163513085562309205790357906222223761336396737439678030163557563080972052458432252177655275131581859215892329412364946741901636959814177124959006148164288113447196971614360132343290453608271839660876300697716134230470551671343146489466216046120250653172044314118079218632968532750472377474208822052556393773837640842359924988945329845313862639696738456619490531582431112345105495271212293031862547594698543421849355172492493913110602812174750071202700382861665721569198784371952804040594620716980741042726822042697311890203568412791610059597896094286196989687275222449424155101505359723570516034593643249836950633118175952951864809396449598541454561355344186768484438070998637122181500497423308688913330372486281940918056849311993624289825873407983624374633696446901411980824253956371192447300767356754121832021922526310404134089207462399973279297635202714680128079554463710658191239225998878202715227444450528696035028961343664473827807671167377676395399344725625172112651543720963256504636444628063700159036837016743384858235668982025986654984956243362341256377404597407024449112672364684527809842569519596019162498090152421926357904504841061700553150600505654821117743353580656280099152796615505604141731280379259943876400083367361694336245661923927644073419944855162368270851758510164630572770773024272014279740201870617107786688319229260433861669686049343536876300450799371480172326504671205397341535292307253871284605113700813446780218578313326725054815386194605752242198365801647943243121095202798039676893639928223216812314092013727645607440023695034768431795154312847713357770833736054474412903299132832596044471103415891304978027717319660938823702278707075474720778682063776532935550766427251125865425693752985374063930164509299430764320648550763871878478107873858748836652832544427497298104309694093475526672633086095731979456000012866072797531804254703751868860275197696596062135655362449331230094863539951302259998232657635412416486029787511693143608543991215539221333261514592860375909459804943166005179158272219816475039309548967885765888209217876951750094888345659834345386822140777156815796710754345003034916702199341175619639054440798027512414691387706881109642680594021111422789679166942353554054124210407076333496063231865571777476290497031070845439012938803631613326598279016551000724461052664170534165960154880116631001816570103991578734606636592446156218183626982999761929353321965774389887718755196233873766186732302943446711545779285690307018514767985391460504365890115704286566304984520893157324243292671325235299343695732132469602258690460006484679976679892472489894932181019824760987847380173922328210281482234961845337801910072347018844301582479550471025163327529380487994215295068420987327472346761666794178543188436150603572168104250787235716871172872387587127362706026384156155765633606606871417546177037710283680198713925469714848894202035911748266357878260289986284554888121059947943008764267035491913327205309752721698788579644693356828371385379222813685106667214422912395324642674981962915373935806755693517293678533297199662322452025315231906284832089665905000910771335656544318958767288033870424467132666351382003953188270816187538292512896467070920138084631327182953015025862390552687617808974787660154279334896533042275820015776543195640029294880643396396233481058950569931830816059695989383465774304821939961527530886211529122214064646368207962376008873253384882001653233890407790096127925572102812692388148491891288447231753152953049184502360697318922293487148829646756012411699657191285130687291454104358947842062588878798723711031898027971317543551598420422089394733829276082883210489931024608822111792541561665082685876039868900022041643139742766630928481227527664958163813795984454460900354749454544215773122557534808505451516483338258843094698670515466917776462326639431976657608822785954833216990443450788219878777707916537116925823839732652471597041490259934327435031028102960108268201007323738010449297367317614099705265657854701625975025992847808938845210898314441394291490823298062285170949578092599571548159740682712972408447941006770058309010844775134868466970288613463123993710978718678244046970464903838306370071053792094232288603805020914026306812466730706892328078857699653863273321721019503762845623562280001220778119278285148204949085024674218766636117338724865634890939843520251415072961171475113663358977174598835626305303900960949577460179069094244853439105729496700882942850424759082698452049689529308285069735408370360964706865603899684590256338898744222037219095422233281498132854033088634691536089522042331057295491646571868694226950343212530573064160963104141420270242563007783653504637555586330298507947906913185198069625997093511600494540564675084522315125384863036551432054005977218104140311186074817177828660193889715322330084959044952995406165239299645381109205988829468778922065454580196299704196778512559378563969942209554129765350381663875006945549170009445972802880641701714921869255666022089960172645174758610271156159131806083049127182987748970180311130123874028336414975610423161440386106461500879976691494421416128691149489527014785151775596389036272729421611518489270772420439114538609173502159567524099225953289840431375949821012039178344497275931760509449812533083986880868109630943108725616729948628254551347901345175431424496307389235526981197319851265855479228816161416463635506974197678283650206007363776965175778920722022962026894892120446887773647815983948447790019144320080701410240329438591614119191813043006579754921348033363138030008584221935308439738793946301748313864599341145417288633432584883634268359681896824199367769320163091899254381225038584818752463772929104674003710401836011004196373559358589780194723591676904055254476730237682719601335929897534161568320148892804336280753508189793824959113967118338768645079756125801534495398407537250151812246045793823485287807007403617652290027780047391478277556720314780433451547808956987859815508985229578953787885251265243307610282054982633923996688916493530791142542994463403120701199456086490390650301070150614136677468881820621805253278710498285334087308207583811747844736115618866634753211469032035320595469607097498739674436971178108988770652897742216194937806583221375634811133625743400685107309811740949584313632579815049445287769156349509243238462026680613412898924648868394062734731542200733734349094480490047285321411596120488746351304759952991024749494251627721779208985175715259137003519293292555204284546263711764939847486533468685776233835840798284457623698980460496482902869638213895795555371643247504885887250736805317603500003033103426291347119971757514570524487642956581957886164283548668997903902338275702871740632620968602519243880091992315327780125253963644506061165078865297421447824964909135390272391049809592584611173731033523799059605692376677400626025345089353298029296917313245421763108415086907415299314410061911187121839910458568587447746166209125668347006537151052162130451843465553146000642004256266178337650716644820865495043177941047131989890151246150317976876599705036172032054676768799461666854972145224876723400950068119356736680766129771722371373152876281665717148844485782535037773637043162798339638562252197426981654832192520534720743453452423028008158215182563434761924148539301364791120218836672711002960810613985012410514766808123358522412822033781011970537324939753999752743812853092067388376009433237830895699031412073235374257547159967313483096066336670213755845584678090853385630052956907918386023495774833334688742252742427468584182885655738356611621534606568736768102363565317795578548269043766807619489539319688449563234285570599901548520347614623227110595066404357950314573940154597462476365749141738153544618811382658824653667773376629970316119962106471361686339575013428457540169049165611868765191741854025545880729129149048756725860446255074966950675339960596748632612868451475528647115416056534730935541639278272154460790269572872571453999793499224508945802646411693091284412162284727677689943942041521505238222181384469588855580555386159519408771628861377087149026614513947325057559332528371324080538429607425503062830560820276311477837459801555647395965618446789977419880056261650904028259025765459903787257835882085363556973816512601872514492783900556644686752114129720533664185470569666521641623075007412322167419701614082844533958787370182688363515757717392853660577984886753637623318605146642073992323332300441359912024593920384013806990488442275153788830447375397228210042023782687286655812206258778465700212335531241794189552940967422503646432698152838626954408383233545808440700200428254162036010977682521324577149676765506014100526780651930108561961008768692303375623249732926099609333940760256352537398570284080261201772551412768991416382895131361383971547765820166607158953328157028932295802388429800994326171795137832888364186205113732694782779154064474321384243080034490212346761995055300501367765679857437706219221432933990510660367277569723701719232263659397817353713116689208058035621658122380041886664934164171172136686944257780745944147832636975672095378505930642056788208320119543351543801551598020384078398313119894486579602612908779488352863496571647329453829666814501284033619595951452381618834736825214894746646477814020936239114966749907406445659857011997305560235908803502306159388782382660417581389828481006938736911165141735075072281752616924148898357087920695352864930821053373865597386306024837845191461769171998780959162443682499040940535884832793283344343480124293406129565760698887867662374837533068689050632864756594364929970896267216731939851437393845538889205290705277688324872568039567297492676131410416928321415385085246549198302034572757515199046690371101822361197381134643312982231724277900462011842810322270292409253724402844954604348797728219456313679638095508598551048020077471538835621012547375197577219275156296852371747343212496586751440752230365958846840773165416414047036255171699599875196223862085732104875576637912565277236889985189419905768177944383760012548005664882961804188386582501516085904553159941392027752404293331195569270122063510998712348243517899550413926258510384222326953499758753816708777860191132757125298785121304553960425639567374777278553155164574856293440539380115913070982278764986535842780733142996403807159331496048082503959005557598156707761352275256740924360529553636108250328334446940450517007825881470460941731787411544865967882567481767093156784271882237290674855743231571769475398788295534181051949575274924901153593407362215630174766871956310612086492452134751384390827988644557195052991897146731397118294994761077332312328344713364025151180109391010575595395284190801736303054562172590531494596082281967798108862044428036218075022653141922138304800916073588158812753441397440305676273852870903996245590395293837922085934458359405512681276953135511712701302065558673167431009834750315308959060851896178848755908603440286276004388666275037028787182481011933941885524088095856117211702839162892532286627815871994880023958734538585863275061338878508606230102344191562148367809412211943760316986202717328055856907898517357959474796640520196964257048381446545436949823607994654874467328744842825908746855491495270714499367328958689405776902639340602030501634349284402089722259565166452546865892163702462168706483087468069668025332308845301314018359989524742456584491164154560198562553943228213365922329305861529250601494687026373285904608818502425124448091979345803217948541171283100665472581558504905329387853197654059105041315723901119624624046515458433803714321367793302604362727883171604860979712262916583587434470367322358759325758712100078457545815280285262776187079138101288004457235828039985160623276155457431979892955479783339614458792147453412957351921790028245485434323451846334632979115907297404136230146621411596900382365170770839520806560148724318316068984879138623422789356216651502361607401931120506873091580872770500453429388535597264064348559417969178831782613104165144844676264043684298290744168719694314489805178091889084377215257489501763428159919917325468663570755064072107196948591023638550669208774957699916871646782757231394492547741204677806324403426203903998365988526368046907979316435715199424991027521903899585328126288052854141678555851278501027773816284445690380909666206760235230409176904667288961539230305537042599528861841659129323373202915306687008080459499840905815236861593501566528115881306985156050750169668617576344873097104506059299827316494825766019064382453286079315813727897837488924223324911995104492856117471958516133513317449598978726370377788025300850130689574702921449000665704665734955639549928345127701363134696304669502627325410166372852472492675277147355750952444685824419878664903079289523265070016195412229574774769481552764015443830486623666562625748292470956575135550330489417819957018825280504298160400546240893353472634493010596876982683417408846264351283835453637920501296778275905876354983736842002506855408500032865547405667318409552691043786791191124090279531683418411019719084466097100558105241883254176024410925609221902978906086839067270558229386229804583381438894669857961744487240506380215810852612277226237099675813306706389036212341833505596832486080641620892350385715563889205677985208182373812243457415553609706187758981058189488019527737663616992810471738722733748218608157275245269110755155264869406091959390438557878007273013864243463478770311686982543458787203100618317821168805817306280105017078076566039149381328365908994754642890388625021049148133856879578301632035986077771645672259763310140726963819127687261135402314809843762601713883349435867554318443046669522559870359095840955221800795000614444522453264983897902573255863380853652900036818200347774626698982439797445348264374159293654256347521486849652866634083493609133756363280682982866701157420107369956430472059581048490054337265014816057996229685970423361644994671699699238810961022637637104963506718014323387962993537442912719184514550866561271043517363115664586156325735439220431186130134653968910660764394333921225469123797332719552810898425924246396174261202464519726267405863806234610917699006796849716868706977008344530181174389302668470745957860852043462010095262584379646661023776205232671920715980441649260669087531832795703015974338799718915878566093843529585117204542668632648798527229391129260004832454898175564664831906245422663128026443049762230433802992027826943522643990904542480545112062771036032627720766381876150422346681284262407423446774812838022182486030399430534658249084128991476811526572734572127098142008271140167744228618388513923066936052211366278968920841626923149445636418242619985145301176943303633819215012187832030470326934516807017754797265794734675860506264212988592362923336873978714683693214313825318336593577833381612767760195185390825728677661166002802742720461595287073805554884573689064000733670221708511538175887266071700939983161314768589816501197195273200573370002596348199181814387807744983691789437764926081515117323081430403218527517725154117840194180741846997589230272851453815853224766613163970330402457478676861103802968448076126949555950106932178884019808966753105513498029790168733571771547162166189896173984022015347104973551478774727796219532103068101064831969020084734943768227071627135654747809013960478358726652407298713278692075409142558263977382475285438328026878654042479139526833535736946817881609426273104051937695237944477885141443469020994090240311421638188649447132736587516883382770952712201944562869190985254578685172617557613904488729495413362090406231749373899916934149881367380052234245356735149681822945214405899537425159422832108568934487044633399516606095956248675671140644608116485681573498556427585178482558221271038608084339098905113253081809709788545284100962398536131213677291179982168086947250040606993637124174629556082930964982102354826771426655624195601267036427956721873920586147115111532849350930805499193693922973969447161244016403369313349219828287422300241652301482149695909382701180877568827735108833130866058257336996623880913186831627912741458328593277556041071696037270644971126596585707110238385522761998993686668405194871699315064108857257605966325480203010113614294655742787410162117574560158708431007661913107701515929633677363001567894713149182592810132309651197727939740325959494070676126369406143369377052685720232894570942203753209636492696036004808376249389290046170969244746972043962546033479395496271059713674788209481866855900044706371538010337820674387856689089938330542853302601650576047709999867461572061317080096672723192185590350619094353428890537229942534724472112567447878870668680355058342273339957059032717873687332996500067584563131755548108412442243855402598880532450247362148677936400114033884614171029266200168783172295495481349981879885210313850929506936163283143089588933390466231460248654189375006457893371398410576127948823088660560103682655316226864946152713298381589577190101748684679776827981278343017453818366272869280084499498036609812959816036659028206555034348581283022131951567017126954386565101144440289475537466835980970603250472340762494632175588514044983478117639411256378713788221245797009287552429246633679344259669301022623027426363436016193594241157461958333736664028698923457075764460878898627573408765000207792965784881716169841023016954194183912233261268638950193537762208626889062813070183598611694330349153297508356259848343475528336465091835487348953080019376988615406933776371798776834954886593988510009898745543502940315388705336095058757897282687824819478388471476632258901586042943357540525835908191854166401089582092350402274201879381178441413733812714401321204435026459088489117861869866872813892628020222946467386762257711390861994382008857873897636342310968099878120996390170546780298844965050570995576799297212616277540918538134017416885847161491830948768913796148672942457919414478901435857833043700811942121124080447088651116701226019417023074851080632847936125425543887387529489017618830142952117485333110453890879867890349598617525937487475624838733200747671211021682409866640408674140338543745872807111329607145997415904777745635630379719615113803336461373029172859132721363845526135487082139196497947496531604552191750683619244415761351083241765736446485051275723214285985611958358529720336029963978743753684734754607928172073176194494523095185253795661743548262552757024984134161061201562008252736374737681118507782446147122693679309485534963263490060504002196080869013004019385325753107790614658033822597356984524206050471816507468468137668251811448044041534463624196962321998776800151231445240525585596402715136407005298816279005469287693652297762304469170857732227988797174352034224184206839401278078809729142817772241541309381305131020529414766041706754482892208615921142109521490834271244725988620853702680862268335566595817239070960524122831317560199750790604755544416593269922958473158672815411604927252620150653443108629625715438836344239237470642778458779492348846692225564350216562862360730034263845022038682974096347510549492559106740193357463673095170302117206124558432152791399042376748140710581611358410363119086999770206277936862111574716409186789178353456486274480114352528994335001718674355438206767141287254755617672082355620729102936958942797981517198188001142265654308494288470126389232318433285717034790344675126233575932798738192185635418131112882465927065554126987201460682587383185826482066200958899700771608526221116843058656129485585943757110823473789214322464864265018360725303790163390410469591339365940838684299473275777494024164652989257509023338725673022794290677335883901382772722364474102252773046053274377539855238985060608599157182152253194738358143267240888220692289463377450987189159565956004217795459481973361935224414296597580179638411965217940191146841208290969718099710005867905536212693903145354485257338973184909620442166731437252315818220844961816751454860432750901991445424709967953205901750346455147853698311450195704269488437449607711041608846203055158704820054351514641293326402039759192782418634638801900822317214958930811270538468588779113989732023614131911632055265826687912885917578555930316241888890763385328229132353593803235872731529003278503250168696401306240814051978535681980747507207797635826787639189609682459503165872032058198313614332334536244697210495229912440593986298237162342942198329947173005900966767001599408187706715787821725227868040536935285866820820926040861784291069827522975100815967835444048701759006989741595989455894773241451593543921834293525204190577324274858253822722144547243908045282351420664646507795638458098199194981017011465358942664433145547305016370318592894717768706857431188049406560294395261930190764149478456526009073879516314901778380624349961099292058494916619967889977543258212729340641162612918453468266087782870866673499023964302220583346441123903686685708826045145983593507891750631389229548374733638286216634546464851846905602041016214769764135936158720303794667892355924034836607652559838912702140926646803205444749708765974021057437201622438063127812343327605026170719254454716273919331504568689841325799760949971887671457455045831427120579648977178348480179544995087929140489823215218775829734434145541666045848851448921574100147688427348723107275627347012396610877925560330547699252926452356014659037009195586765901847047415315582523222362331656459809373206891421348585690838775470534974057015345608013783868041950551310431626351472250867162230685960921131897376540717829122559737112751112101106667836677536451605908274063716084156417761450544836058131387223730483842799833799448313657942491087640078193713570192572548747899677215521666105375797650424419843203874555367174380758698613641527672027692261502664396099696000996638280236876794013418357518403235802671485820637724513579491557584051211988446505668477237383619357313896186616383192084525938800238438793748591434267919025227147713530486850657834455437693383090825492131587469643843983713869195030044349122923700656817473650536170443516550961979938844642195782999817224420227945599067819876157218385329834271922245404590274545310816753226126216387296340949909492321513403180424638692626239189382799944813848183573875568124416030000665289599699005327092692303687327046153229078449240179480746261322394601593295908778235876311824795776538392914973510247593869332795791436910459018838920983290655935049761553824302475172980573002337340064444940844582735852177441542260103214148227413771150548361735383855040319771439635390015333024875545531245803489360796108728725967856372885961367140203456546394013712374397024242822381407227195594843218942300785050382700978498169168885790830730072746430956129849751846545151435346158190398126571094932511201910899522957654074040426120364353744898408321090192504999959073146562072287556193975750397748961535663752012049241505522796452216691525936137758402149771586264674955409132634912917252992449414102437966487787470938896131931937192436180670714163498950384460495997952629570002867831197430794300593583895363547892335696851802869071496975067591187160069557194248726979637977588222293417594054324484201047035890339561150254061082367510325527762928893615816699159952512913433154500364631737857795980782533452977732399695784920810005683236404249188737130641790303244561322787846669810677821602297977327173194003675153610342825790724519328748000238848101420966399060712047589590896760921743991153073524876831202793545430473631131063287556419869513997400672215924678845417756086891825032702602319668576071096226343534628577443015486844132378947208322988384229467748938009941704741810441284923037472470270789841967346527471870654445718193424193216620702484094519651256045669001146102613804722949818005948766671692396273565656664545605313444378502049461232967696260943820187788976731595490483341090965484400223843643447724996162342875579652425864089894550119966338498091778545932080374217978488748823610188703261399361160585167174452634025087868705540813259337312523607765854548153303626480479133957515471875758906583316935123425155863110224425511344037226530937285162184813706153504493473280895421947404133620499410391671450308443550879844674763876326470718544912228409661304257216337884902673201445032635801060792241270303259129808840938965405377651165190576843980440234295689047606397114432887749579448791292044199899818017189507317773052902769076201507678884891642737258934880767121107099733013192796646896068731566360611401501161675008013281320160206864190709814584206192118377529517076262152544685480145575384590397207992685352673250250160768054759273900554618117614697637887323696106975656995172457252990740593747796958490743510413933345075896609432910484734002827205828831097160327331224855998181821581306839722854925670329733848430526151921989032075867922494447541891820674327490248992981697265483107203786491587184991888029923482888149036390842310303906382555425580794504274676826657043808226831584083212139551095881948571246558406418616919139751957170807398103572185747770827026223536865052016023198932268443382257076613484291799385243678939886440301911979711108661072644686097890462772532100750390954578277862691371806262839912305304052619032913514441653867239889215701961878743148420147324333702642114417391918433886748528210556111253679987222062731671756761641930659109976002853571365750870649185443359793633036162693173692618483595713260170734352073358176015655203454737655057248266552565119487148830987777097049952371267952067918384025455517578259709258907043832419473339406771373957623861534649012150967045170553298408887156380394636212902405971223552472582992972485825214278980512950866182291455287053499428063693682203403973176824888830293868310118393874812667272760115274552861233928395861984178817511020936081401130040864725758008205562358553360986190368483455156495120775133660592518215878487214499389510864189541210906046806572765572451535352406081313273753623366147188409144738953305107357617095705214410278732613027409929199852956028261107680471889049260952733701312389327086215181321957103043066597346727686056586004076278626771564781345201200863339202539267320111102249389901853645805906779963674094950472006979120190220178011087359901350412650628302568451897264115941485393443665834065189100737997534528491563824236040610096256810235679629482473498398615954336685855423205529927576709324118333325835078411448515372173748497692632086279915968850837152839040427530719337390164757884009253707576835361159126186007126992550996816001539925970418833668165527484554343652485207823383655962475658419108388924259453619204821124852483394396925286614580103397530119797806692045567606765851434564733843506716959208641525399850644338275369981966391416866281701281711748649570810481408081487518953128787745096951835724468849938382341109614247218050741081692265564108036026278547066997672089514436112246808160931037097232087587673376085905639803201633545355555598098213550882719248895097659322649483839010393383973671190389350538096848688117566566613173676652419390814792109111444892872302677975372091180945054239220802938037980472758490754075496827215554318807886986275853919089685460879870839490796519203720247928509896856371480458292937236895988012554404325228331774372147239550103609877242628212866038673561327384691522466894575415534498599128498562220435724153277457456247185972403325546517783580598491956822825471617443534207080947193854168128114751217937857363838483402007219821271003232110174881493794786617591148182727677077724250299305591038195724155562376567482015819474263295035109462129121965537042426370746066560085482979103947203231348074304471489673871593628214044174640761008289422726425118431685842599531002447570749401317761411493102467461456943579927914770447907585349483114567434913236237395722206985252645042176033538564863182939380139946083097583145669064872507960654809008002094366356882417697301506528097105536040748048411032920315318892104375887373360337402940145416937157949053469581151406655255473685424169730192790280451403519608835751955839247787202162160879613187795989493217055497019003045937932458486178690098884412521079845683374689582209411819479637604358530502726886625755774429002121762822574464259253322664916358060856996361058759932241166199211671544441454202993024676814692162741810475772191973140124685486742590042490057911717873855419923203167936456210727944864831697777571886020513961941427089348120631812258377833231936435821038865508708502779591795963527996561540089414645094968665032149596223858154815742233019055718767496046434047742436970146221130078149896468240068064221879457490536760889279657088740961664618385443169686512831741286446693275982635590226497966249618858086974171986351951220592484782528979016759538279264989109630825503738282690970379397837684655603557990119973541700736937919125861568538758566286294781961461781078281732057346925806708183700045091336367533511127958401286970741649359632990815221433821101751249898017617940671444839443863496728430090111219852945850628800364760088192965737517580191494706172316421112784601975859753911372142906979877922731693188288101003158272513249110132481144557538304013447764564343900874152722416148799530003025137852328803701160420890431767662827441365310998721912759416166747673840946877562347215676760276309557709405082323593063986503435549351352003597496185502250971953493867662762102547733557953593728054688157101686014442143204310927970720270954835174011330972253098316668420866365234710110392846312190374427690185453070470691396711111445154535947986495021251686874745592183020786865818275128479314659304090572770110464722575534458846281538463252059867797296284918272768468986896831672556063915993353437192017002034024095416604460770604210263020105870661231322508531481099941810405622062976257854598679481780883270631342831110809956429666119001567761885780393030339970702447856339950563491767174185988751758834189779585281412057009678844685779384378489189738455195764966823160638228901316558799895284780417127339951187493126384115793040991715724205452309804551321441187028943309317038138133312180921026180035072124924733435231015288852657221387083081840396828614024517920969399610809651248397363062394289162378189224895546193723820835158109986773442084842603668946271979866817624205194875386001746926732669137195153720959171287124969349484380633190736569701667115663553037945615499027677586418193200828973311150952739380231776927226090355149283865157770970109057686730205101486671594021077637362053098578565040130554028627043037467662778521787592720845397412057632240774616889691349619389822724218088506158226860581471675969890362777961515990882077284019182606095075752508907007198331952357153486851955707461721560481626796525472970358502241559869576075173797380504169652797661210407377885335995050634084874145512876498938763680985202212125354723317014419644551275123737512850958403535046632966673448343795999960359525754099982877108774735689986278336098635609244695799352842637228047834816534222529912895068343707624586300346194496029824216423766094876088660977878489672192480177426761409289406981289273136509669008008752429014290961472814443886192511311608777567140989318331873489265141235373211039740655712947983122425113798516192561382365918092869342295304312067310209988037558147337551648754247910715268446923947156934551081586412834522954046099522765277453939386991720802628890837786761576619379139231938993394243691963880428894774504399216954280262930752258947554042288390367518633490787721233678882770998498212199855491986991198715347981739455635397831988116491196483965935349966033732340655439629402344054071645517549517642863538987529753392279785812613860199178416673078648303014643115267894860590726197034604570599023473436867196217131193055330949870073109694939134963822453104601249309572376060983952926115921914316317112332990765270426889238496931343113116249387952942293775949308099065275854885224776591912362332535867873420775141916286786280751622981197161329962058706035306354731163002075168477838423775521475496487405952269492959385134031786504863078765503004936917721798204506568121270248514355907422489026661757667958377003503141916338182563884625563249124892084553294858464612167566763262885227775452800633803655760082448565270132047326471402198901250297822785154982682845522889346637835063403460300078427431880545939517289396996413811386610802114689954281222379186839261826183683441837727044541819336363298432365149300853910004169774959152665093588977768571658973467119809319290815132614147808496509664311706926941858718817279469359366587916324310104348239273308819155954029823116183070620794533219066514128342115817203605093179404316018345476240546359245275169525463109126729197406025958469998774380841193630712711603496220449459464651466454982576620462915688336990593751145727773616524194931754488984186864181247738208663107337617587972944414363766519494062613289972276618696975868522635955876028878370250054036970708189055154574363962074525225235448685556779295080778041852299415016058556911700862676773635214688160830455713030618528170413187328412969423827867123551828793703718009748317830972495493198717500736362759594780002484116264051081658796694713324688043347190978537710036891773150103783775575873406340108845731293678082389308944546975636775710222612475130338857167896171467639045696097329175858067509752452632073774925714228595261819942623978411494046180359509318462853277638519161211156086179401488775425798779151711188325251694020080328004370505899195559155263836155855417042390935893739836418459556193569731668857098286561859602716720204210563386836988415877531803740932161483236472486248293763091366115602709105245192051567439104257858800980972658488513940672525107915868656373981706978572598132699770273154199551821441762114855446991254179041534091964086136843948227405410848689041326458675128841279047328232375829411285295163320742233903855814996018771344438675402930448483893647470117208125954116404359760558652157745444183048030745594859950040702091349769224038580831728238660242460752678177032485184910539843920934189125723467286878812526176550648905829232754176811073296463863534856412870777781371775995441381591136531367795694076575280545093976979631524982165377554024166980023072150560831055096839475561631381832730281988788435438269523040996821921547278875265244890013584858028560533913779424628710257451015940151953759389228374814021263658566014194839859906712776362568882978650144223038956520058024718293525962522675374572147508139937064997585974454755860618854558247994900416775418475390680060152414643223895670661606514530757334023909263707331856302378957582704388452436356472885665135211273516897543826070551035593046589912381634849480603156007543632730795731111860328240569771846676056569657498828593453384071019136872487758521640228358551240949265937378974722066721483172324695813921809237443472964735500781315249975796050000997292122413613457616440861023461877854027817513901701428723922988528793154398700799150668347416084007597797201420070091861816221330054351640596637118382580203301738065987033878076016464842876902838521299806076950726574657253379615217873509114542021669191523667994159797559175459380260249575143804462776421090264576065765998581448889345235622873705480333838009964143685891790033553315243007113135028828397881793055291753282769251977058496663595562140725852277028359770012096153334890556684308572623910038117822280895289531971157709209856881921920678021340188454379897728068749890584805861753666698446152349674226677883549624218659144343820692892016131874156087120661346355728633832782048602755026017843813180789441475532390634897541048337603279624455770803138542794534173007226553020953281145073827958581640583977646525197781146341447654970276515758298885304929369755787992140067131383333078658994569042358984494002283348777702411040553646022574548561750984592583977623946743682565893225087032266338971404832046768791005605531986823577743852627872861063650370317546858262668598740244607667054336058283600062192571189160200624542985993406033346557642983664760181754938236844226280414711891278766884490455695100670436030341439152607884365079236154083959623037116434106529714830591475880648190432563666554285099812719722565563466515190438236149903697467910334038745393822104022265348131751819465515157810032908690015500018396324706925322003540926914223666174662191137977944169885839591790693077042812752833578087815036361707999865847297319966441696198706420222966594711277394629993380278526249814856416337451601467380796175117686624870034756642447672718233544108262072811389388313521482252478543956768002569043045382364945635478478208162167654765999869450876371420929636587514303164618910338760865122041759593029676641584234629994572521156993211497722838630306570619040298788605001105144314689072305694131442645282887652644008787377843569633759084563376007530641027393673386515358902751315946452215425210522607053673285782537626729692247635736061100071056129508895232253477927411323856480774854975435129811111997836253759025063997361256340143504066199073995580089141972359592542117882694628046957557464162935837856980674170167826001645234873297468653318337762409827487503104273794647268373629345025722667334899628406857251902459055610219136839315164796501789300143955635275898749045274247219392125003099631855004114478736832236501138031913131531937547015885738754986685063249760522460243029209875529952706111096019844492925649505165837514294291305516877021215213239276519919206690060043462286623753559445820130030590505800974625251351295517327889264343271663438958702001495806303924957809525512159930999052795322185469203568274555177061757092344211910148020350772901188791951665652505954615194936506529282694634518160868020383201414314476377772884813396254166830419541176244645299806871961285238468867196508850793128240849729424687219911405973390630110875201763511501593015075920495468548584008938657516902518225295300737467369817131522216563763352785143013316045731738090428596846539145058503775883644910160150170861121463654358099028598263573422212450843079850124911748739464863295958598500712469221228062381561607270507302412683559923871594336949733673554826143447552395446705023347257183714048916128608478395882286792306594171694762178074334115049478222115484589224514802344177634554910884752908169373470416394323923778503357079441754888706302929122876052721874806463470459150417102354524556201578066267085294995680391132293960577330097656860815897552051814136168012068467682405526684698737942224342115996481789968184805418007389286762574506510435262475481374170845614901839232387085692422786288578294806783514581863457445468898933235492301637120924218702265893735106572699132659192292279777442303876767483684673537433699017291544862616839228165032653141093985791912016151958262129702750243392800123649769734406264053586449616237839537661810552374269985074783235979905824107447688007077134750118336742315285916169327000218918113993495513927523560519443537368794654477707088620288744258729151268436513720487156989878611763629423227140544036971640235109403306203710301745803372879867582371475383897128631515911468720667953257492041921164455366418797741932974986965110160783307683714108692379128421029958824230035372247368179876804312026837617187776905816921797588365070217853119984109992110582329304902690136519781304012513573678889954751676450198939543007961576467957875735246941176725682463761510242697996286202764614633297165510255725728259797660235830539642375000341807733504094766202530020742800392335256963164051462560061333578710467432163251891981058712731496700069513136401938472987714991053074185891678976627488372498398580539537449411434701523098517153774157748989786351053675462683738467590715871196635867169539922274946391837950151235836708472819776631763209326838858227833293691426683877001874466167257137773788055535627512435511382561074377292848466289072698223134051532700800641452910423274730485636835109079206137308563930995972907728599219095543443008063703925783939836206176809386936974926773251598936311733201260996826433884779148728007087612710321703541968334654553244371395399331922912524440610997604802923596462165201920721881045442893140542952708252699257954371726133034887717418425092900918963342662621563717589962676255767942576902019646658447374953715071417806366620841688470848721652019053809184043779339288794889669327369171678971065721465095993081668090014200731155515633894513068083903068704605048697828716414813714860067715643499188107469352670688194050651970414354945004341925867196097923258152757203831729038545337698235423405172459726712974287830062094945359303604004766750504066288555482565449561193549789987608943794199050297495242047788277497559156541820092096213068709987086135079094896427525332022950950941481531806168445464410482963049102635106941143965022663581865757709215347065735306680134713417041416182799517672882322344509095067114625673974729921506841151463145224744413604977116850496596170826212570161903942953207733657227136975600378104819122705342167489865562054981753495511927145680248683717515186165323733496080900564439016399563764534570196184447528775072207319668464584958275013489872167492166500896428261253890939987483022674857008905372612126679047189138139899599521613546876860663409734148926948029468763824795446905370960278058813851262849911964128888355290351340087423680217057960270390396656351238245590894717375211396280705805718251653002708212865965101519211134854541936692119770294287227886442993687007999744887550218642804328828359270002090491950759993617498491549415861362918395768681255444362949812247435603832195165364020925004713784736043607014834681040586542312674153172411271064120353544155314198041319619851491993961173113485997297738151098929796300499306920512896730402532200378400116676278762503868619771239932627297078812308587010837482555858928569518162148104989139077394474001782713578790038777221632289141232241395290436366293067935313304226683635931132977255462880387949976488596935822839795067524618182724544157324716081752448540822265868796007394452475566509421962011493686324260663992373365555279819329527459511599899680455132690223570258402174129985953844154889173544011232828606013268279782388247167755397387451715947350002508478275224903652728975086434605962469380776182980359460207121875497275783666248855480354034630913436861286368516553649629084551141006530451735377640816208860560779332105772083353402425681910701163334115304562300376799810250656858460749525255913847302824052908503182451357763501655688091952266786116820692817233518608224772832636537666255538737093898903268185784740039762392689532933107649759310554157371887481166341916951623168032383316929712317158027355890285090873188918735720477772942913158473560550491815012921609891999277370206240133352056071495716826345351897438823258844128943247538287920855176006715538231454401770330188559471183488478252990135308289224086880664844142876740779854526482160801314574411521410574027387999786795006312472510390360048780455861456080052328829958196293736489742039218701968634830730574777710910647811851055713792463973570483502192192950708831834151948702767996556474966519492450873624945577235369639639909905047202461852139331576414466150114125223128181087088877884976086714983019012544246006681836898191087144728746726983966151960124847817776268000618351438156734067602291129724616956462910261552111055991444843786599685823537884832616544225575478606819738986167957132592842752593718559424355068678552727205307347992719295044727386813135775915251320465069390165235403327510065132647498211366277914251661540359064268670908097746653132309660924295538083140391237201847466181274872844932668356819651502540316006984703002985682545329896632058676205061422769128846629478365903769937987170943834858368845594624037604759849063833205918593049442758729365466103258404449450097128089948361021348607433731436889159030253716445826388464463372473194996619043575436180478490332287801670534557732184677580714090848920504498005043497481658035060609803624000468626152023359035475157086834439460972233201402366445052249003090024213321856479182840303821221484150955106472616900412025553076565924075177743457890090360410016667464951646352194144698376457477662424626400923989061349090244738449118917886049189893646096742388259137955624012988717689079809091797365560100675975714363497436997649889166123020164412934861463402608794124899714686199111950388054020869480107291829415053779396297841586303811377130924297114246976836045742164929695123766371910921167121872271252457758805423074500670580759840151049424673874826927695211976782876935586546841885064454251083953690466075427554103858230124453138825489671381878973568561372505498720070430294990300634880370670090550954877661008432726633209422099974039264705265017649467745382902372262873567084162436063130971619136127812988888169778333787740454561288465035590222221681318799053284060418014572263220518547493188065702604740782512098790509113687146820545259569460889607158995488606977893172318659172138314104035229037201087340478464992829741191817631817929884334049012468155124651722320638782758496237942436979125545198275779018513373386293213811925345930111066447153581220662019923440115145684384874438012453113427236535947692182306442289583582576121926770549503322216716968171085707885860052211960518548098143551971982593596314191297942278800158816949633967612584988663362923698922734566359607396950630715217960351806202494969233986456075386738559465993862329503080051702144682018089491024907389227026279285706007217100321743507937072477501068712849352880149514432359188806050213572484688153451301819048768029252013087166776031008137470079457654687150115313356995236396272397030956457276638031650926841968599060091214876125734001776164174145274686761638399916535715863784040892731608613148746427342594563835689675530962336583192310304603267650643384520573868712249427893199157432198940346833305508090706459766588845440635769401010094013838416960606213314067938917799355060112083910083544563414205367306087611053302714121613669194400673731699983088351547782694708101414900989512061046442514792804621660119181931189078983441004940945205661169069174903668937342012084778304687247837194034837068546608118013966654954163636714853608486156971081104532043456071103600905820022504954739028819265403551777634094986786194329612150798301094372031442057497036196354331409094400005418105319321869999092474390220902569909722276043924375587360790706278256591773494141252534584731892985123535791205798197623207104939958349491907548682858263162478883263908703843906056326485861266828389467795391500654763700076314134101831949758882437472471838294586953106628199630011587635713090610059197948065596252983021535552034989974761778506059922264024218857796803300820823897879903904500221815469990724549811615355172661842161727340700296204669449353110447894134670778771525778221289424018270738017050611265779892597001139842992846445864091576070364123505013636140508401296782613375157981765416281464091280854167007549552902369130667162611766649172673771481420236715880732324774330333004869260086737137036394518749430938806420127013738208074525917514143080614028778803546253348877604579367084372795535434000182525373206793239787861986163504062482908878061180113826100177633634944541155814993923531786106764662479567876983460743852965933761271584460362667007449465452486414469971097609768720586175817062941194649506343024572809056523749421359113086826159483794591861536394346766951079101670326267141199334729345981119262117457643552946431388065167340342405396670634408492400020516126222666763131609304260330203851517224031828164153000241254103381962822154355439669451756673636376382502528740681737391927279971235357665236988131592019411179932096336929997001597800967642659433291638369321367532877738294867312111816079889225472773787063959677458538358214248342678642426982487165992928555511596091858656091013911581718045493169533798750929836061379297462021067618708566012430530786144442310519160031749639529369782204834715953989113607124273765083930074094744629726388847988231046353756145421797207442809029590845853753110112025113428176779590611188146436842897779320843665327983361586039340035611668676706948461741087899193867905618100843843255487928214429630670240501371312568115955242009568791360756255559861133599409067489893427960455631612587497270699005769539377345465592633295407683759061894854730935519387196489173778804111719705673674537598484900947065821594128889931615358212731606591923644778598841189834869326276996520154409827724270908798433213816498625263784641131631975466497116014829928369288707232722377643119600525124081224351234541097059574928225067656899033864325884734754408852416398534176733467061584375052615527286470465018686310650120517721417880207510643263911583282293028334839049140667455541008272489494916242720572834385507645208537732781282197051445887996648521575073669644563781470292945503126554638051374568552517397552711009677785198480116789166323455313938088692361912933146866154724640852598437289614684558115466277051114803686193501482027158335623583730834211108277614089201233990185548596274514773549154180141460484279469149751232532102968527441192817481040651434976148441453633909567166568933467257869341690185180218314256231963838134945030669549488365738222210831771876273570522128119241790053365316404391897453924103020004611113884454765164825175096303506389146196300301602306860816669849707295422632378580137777335356968053396768990347620374213983347067568972867789954363462561838164031743042912689826686393743005778706949324567244621216455223042915954348787979648741336124913408610642402458504205327294020269299269614826797706441445345589809025700573749268606896484277979033890947537095970696052187256341372686131161726210274955284478745623245428576604495671959626409365200889649125107005583859520819815320499762675952430584184054438109854489943842939117224430959466357854758781597023068328551126843308077000404286006540445328780917652575449518220491032445717730147383271904023007235115627506391451516945076054406704482395600975256706467840010080565825615880050715467238304216674576950414600772708542996587461633232790664009731059694254465368884246346378799132729441715073356668752623456970077458337879528394695461008963315539599538322080299178058412703054965503082485008616940724159966669377994513125690627327728214384676512756963498490308798522477438181482098677839833212341326659080342714727375730675806248156091796813050418537741585774155105164803097359856582013592927333499661770535757556519875116856350783793678186614247341682134208159912073780406382116538111117962850445076302621531339404969689869063380653947281604333447390572087189736122114234925043260834316058863788405647374367923900538038893729237014554510007566851304588141506576794603029178216747656679903010149174672023806697481663902868366224663537405215646981719851746158167874261496255080943097972359506547477669905321581695994127590423517335083729367794043898821679130916366036954965023679428766163631715439349161245383093375157227890636336132770256592442998417597638095373828764031728744353779858580435663542580373870222802022975169277910119646953501801626882124667670561369916762764628212448213878860802582429812861847739097947181857771290199554773447756926701978667401279821279017452922614984296968373482492360798114642185618548248498768419052077647413322362241712716706007569939325166742701740138901979610046599649370988046088349752914347054463536070862408181296943398806965282615544984332443575465805911122257439029134698357415951141456457229788118073168416381234338597531535478993884496214625351464965032498564916086282297519725238985222478529097339256073617999628501748627877375386841967863419204699394828957032269209111223334152468192292840755817929477538736785856162917939758942386729890182903055712171259201837913658790753172625131334246766820157695614782236405329271421286745844014213776106002992521988542947757159713720814889041393108677964450807823371921353829770452803892237014509465100691250908240331861469008355356077308344518162446324712844949349927865465845014704800231063826941304667350013822418913172045115495390688912743972127318252476961989378438603251597861190340943255824480549734107917547075215463505810191244299677888770944707058136827673505915831025952259261644668697541187183590386485668075615419826177412877577924584757800095259843971741068182042515374834931034097018423645687989474848564579378027495032252776757321408600248289790224485063459291729143239202831127323114792475025823875181446467377982079932305419391490075458498707157645693489557188539260562520879665179376590784496388544073552337516456016841850296330829380161161962150565467977598232142703359708375242837241520250260676181919168136099015731336264633821713360201877718958943411505600217493584006460778355707426288679502304728560498182907221739868120500990594189918051792880250033706645974906239903257741378279372097799615217586710805550176935794577426877217091044382281340090738655389492656417339629580185058441075268091980319797302044902354583338995145375554078411096877636294114546874951709416566663827001819095674149262785271023907824589429485136331292713549489867183123715955392887774938944645567788230832054957659842358412076405298986585496335553586373706068426044425450029312773889065423219942558775300867983551187230445759649447153723686833152133546156984069431248746470345973205293883028366147632442518151597950040331549699262967481198052652503980640376383585175710138082543355331389958861969900547102486396058128216534958499987122352113363671682069487343102760355049202586443531915375574180199122821429787121828438636141614033030537568395167444529855458238605199083485984364222624575925652214694033330963469214262812176847874325182966524421224518010134330523358897355649766831627639530048909271796179385078234272509175802589870585929015495177705802692223986516619483818441927619602921899253910441765746285108819032781978542949331792639148261133214183858109927376279411622935581682438738651717931776754928308402773957484468782004131262706563147146491392681866520521568059784234204370226406214087858875998290250877991661210897883259247863625711073279480759996854258862951311669187846807154939595643225481271361364504924819988969041206593519265746944648206352973593069410724871906447552295421706528507558886206235373606899194446124949918909038581082021308683438722601396119384770551712096097409897270278669238328350701955438057943725613545562767068101818298538579572953699965401617058340445837838004367846978364595434241759058457385635864337592660668090874372511493493622322208934113084868950208230391673178008554974584674192960598973685968196874722386926691795260360351519102561477276072704234999095309164118000722692508496383310854900375938960465314446062751870702023065896966506144888628028952110224849146732647845768637810201316989573889460327654795455410571091972873828480483267671366120322374676457659849732580534129954393202136212041570909252521053429012858668394242993842064647665655920464902429272675595077267544692837623542403967422860613829133909788792822146765034833444095178617971178754454131639113277817286029921177248331225059152276526427248402830679284021659681561837058373934955827195059066281813530591439493383525872461408373096808407766145992636471483793135995220634122679060179126157460101120287349964360665131725558491512331528786412910229522068932461516209760522593083651062717477279908856619640691228149559815681121927838048278037310365664174633594829874836441544870091616837282889261072025343145691709318015420536305078157363766875423035344813773446573748108434354790480679736727093759424533091701814411875689102387208617276063009191009525296678633830930480808773929606123238139731913998534075942103288365719369921015805354079636852042823312740788624754020031135191104968121905689846220590613051981293100406730249428927420156204825093145165067330659415624771649602182229698851162841664246276561721697214607616959616193352894141251748263846694934425699506765899637789427882695708183949415965236236657653163516188947571272533176091041803170548735045425497977783110868542334204895182269444354250404492798753152518092730700990859506940825829620775903037173178565210277135475527491082383845769162391653041880917027248419209480195202293701455537432896351029213334021432041064278387390271364954651962842310576318256965496078582104729937839016428703628034061528808402697222509277663995135650733349926459267181610029346384530735379720899005924927382813413737698135538126065683804171481430116474109001977154379367102669516719518630592208011359968397316112568553924855029224907678481912455008452821761462276576976141257772603942484692088524975191006742160092987975632356587557133905075454057621634349574118095191642229766892177587075352663913761130117387821876143285377338752456797305838841711994483345341535881705789309188449495100353470860568637500188643639902286047785145478829210175422033670526085711761734428367041763056342555123995334960573009544929067761795817312041267067301494393918408687382045928417868160016233925445693999546394575355033600820700163748820218314513913965032920416985482594286720341231136500408325560641708813193151199602865318650677949952026551844114028471303447072352544918784348087245860213357348490023870285514150654430853683575244798127295579259930918882839792457464849056248627488792169884029945081370639365908537530569756809493270170798831230968888619818260838159680630058096795425294781475012281583406156860105454950936602157865086252540129582944221609859952488182248403333834751728654600398530223601626604371452841128855055335709201905401016899026569715216759673688846837131623725345673362929120115464207302855217200761522623578787662537907987507413485886071401857414056481149508855038072064789442297470238019061644740305852670314142513469758105272880828360802898629837577888040175609743845743281522394680799554393923848528023518280046438626159963689806119956394777610066784387031463239355121976146675414826916412108421165681466264669993393718988770076514945520106862780264286856557837556962608972725243807221417282822208796600835275318045385625437931747373494510451102392059935075495518094259428732943209243886271833918176655284443273169519797841350062911099692532389386600025339054945834341641258977790914697783328645503758223188525689190726240230024025824589864169854411074595580798664626791210692758289681869132583610238090797052013863193038184175388222047576069623658964951805360136752904144424056940330410740413621794916636337860554121959970399469376371474826985414595040375027943358616738903581134429764374139777061433438872007618913056413485627975763012262792507123181194993189518343802802121229012477501254365578044296225040316077672873510174014371650386904153287578321747031175563143946194095063048001253448238740669499013342329212905319630485784820734520737994680514241141275068573678352746576553056011447034035398311857639392616358786464342546261819463907516471878546844686118563089610174715787248169945420125369266838281421355640967136290391165084488602913245173035850965597885146853978540889685221912423587633429014337651287690428884187994916706455003166183901579337120766434534296318744999171648098701704339701803183494176324155066815375367672786915602481099879258991188077011461977446837670744073803707049755674266553047935531568327557433325728209373557494933094217342149387220245660483328673463555412943370641083728703727775621029071343642821005046989329529843397325179904096782902245382322964628551513048204701363964900606751325144570521195315333303981238933531796979426709913604530333303895741714657483944286990741227620404283948561870242342985947395204343215386225975561601417437781082281910199822216726078326307904608696245133088561788924403039850804717983529798308040227009312649696647621308173415561491545519913409132286945989034851450487054704059754425018355311925388253440473503016049879799149563183123972762991628685450947851672016858422640106299402182828217101270013164755880667668462156002721019780620177968190810654501853638767197440316504100561522750022169435392476109132816514644070494169054068565795230874139222319080899498297346949155334227534162256078528154821683699349974451568436054881231224184695784157289222484366385211117757689872359173095315444094010307871480241989858260652739845144213416319500711800054373235075855965928292798313014156715084672491526157501290846241004620866826253883492267248968147029783469220896188509918259964766858946955048256883073419192087725309232532780290988440466532273393009053836723926250330788135048838546128944978821339235492510729697870452730555827123148969480551637774262707501393384561741134252441444376983627308916236051597013810420653451316998700107144774007824723482120770094707524220656979213918713692219026089131865760898961243022768781390259391848145998570081556805598242822879032624078786500954729110729234338760438190267656504414285712081055941005861016131342352063603298548630390521600626792793803687894777295666156975619370735672313380306784982021670249602189764657391327134612014657384019336547882468747232554590947761189096055719248409680143551034726228147569616274225328074774236852653067728615846902022235780388064287656295123251447181310418102423115728078333318344740305244574772860160358457873524500865687639809532497442980391424185275134669127640322811766679538952850578005973125036812785313585620628433257439568134010523193829942816155371279523830896441614279812251126818443373713219871605312264333399042353227078666509579167839295034677508094486979823688038088390359702859266432927156029171802636090364447515922731064069319562287466850910299026648027588488251942750368512308972481789401824638843188619073082355837686723707903309517048695489885672891268646381071026067818374665320893167589839808409211492390665678650967120919157572690383675814729706288984449335229571249946499249546617617302395967470974776027570237505042257396514583638034375656418932519412035084829629005695894724058616293259963513571193856417922885543304523683085524515060115015120045177460900298853805943965393048269465300849453734119818776324148970001743135249547067125642530032029603054613783477231333108006086520787096696839827312073228414709954730174276114473275425564064556964488068478665204423387250238082000364430624174069481904612960947269083135824123334343667082344534221287936398023330564840146050139532264158113050237179110512134056082252219613731111740623311269053756838593314054330505681432006184840868230120142738634648046616843215378671054271087188126177550134868402015177411329084366532639690410681277798951312849930407533376755093026432080059024996600618660566229321111385064117483559834532315063437515987478804964729914875408184129658773464453585899283507294633787215132289192577063285640036998478126433739617953458343567009344178764893479501259751749514787694065941240550887626331981970120759868424811346754604114630960022062236424785314154594672060729795901673164865094237029706970447183111364823881203840671764315454578324138186984815688012841290485426683320088068061345656549828199242660322074384985515615461287270734972997299369851739434196736423812363233469734330280985649145871332028185488836530921321989551940944640051795692812114652249037765359013598400390566104171833150852900541151279282216113062650432925169879894749050992458742447831036483229232353902998379924738750736687342568692638718550008896729245040844150802163165013360016894949412483957282275116663717447070795318293883701700649542391954153040097205294133455077220191347240356635648059211356570763923491476992979465538684539741136060057861378076995082413983231954734210793948799759679459280067042863540550033459316273803568708669229991055129537285069395878332344281829633333146077072021527186590491313507407748102472979336770087959538075377124294284660540594591597204721246575276344485816834256201660471006606181234949666553717894259641104744700696597180928759285754656843219035344596150864211537746848127851618286304539953581415855613160988792826047252419884408761310878504678669179521458193800033169530879515770622321511313167378204464651967226058864389644721498036592602487945558836934807383561474656295298672106458737916463190220166788267689428715469280350818222680845361243515079402704277927339156282835292031314923968245370113998392871543631040544045052516930672832792634627786649540711678395141241988018385711986098177016674617070818884350289904525489904202021025725405897550992645425574501202735628883995907122130062116910175257887665743122167139981209685880194491664699087154258891043209104330603868662974428502087612630797959702047169619097373203564534675712834550243685472750315681545035424698426920579954154921293762342510049382998030148336461911741923174054547670670974899303888769720239133545023836299485605082027036995948003495583261398270743532189197227749146283838744649944587898166840543909482150099216955161878742175648449373084601886265095348070518066472703179526608596953459226700462871695248348735300584636717415003379104743860041040064406918040221666916421708850636594334082912958842876041348440775623817229711624966917073390106964328504373833534482035900442478849232683033137881304458605789979927574528158223036320999705612634415637227174582934757031070626133101546746792966119532047926237340043222655977108376263925088147428944547543699774632443523029560998856256692680930712140900383019356290050055818660801960340594580645119086089385902576613582647314590704579409167211089724051377451759842546797368653153092719064237905523185215093080558653582450787605606024633534131204934570407433524430023957924838143739896998083000968022346823985420802297318823719565885226470834247393538621804927471169338569277382664093709087558744879921068855682093343481572369073165341756085740957819413774281278978690487582506719329053461626234797948605269920964277757600994662784177614370173744666473051433427874898492932996263957184765633418370694046272469370251928540920321845046299269551188391773471165845808801494382830560865096472756426227625022332377040317761750838205366883157145147253155270334505498467110979598570621472733633427167668186503866842824434801949913252966912979633006180299818456177870576729020468002837548375544572513756438061325945039348235930956951689785177696811701708409001492299105516595261975285622915442936045740696945519779047619940659919816234210474166592031037867859039300425247124237369442682115108774178180205544317338028214234762023780547040927132741741137593500171261493618112369118387581436550179087982825475135181082520785681480167756371620299037087222909560744753203287496063543596815275227083834280538628119312426350892757887288332343402416789638829958738914769359217560862405320890714131675899381723315839609697826583883223792140919898125748892092730708622027451791510190290085289087989950978192835094597589847664174442975777160715496571094597779239165213895241173624136006731380587196593331444030107634664991333630925652099335812174442892324645373412830129901676857342093990491300798138070087693579439464666781914812247207004860197065101559140200207770940164348440877559385405102579049483326340650347217956667080387365409369012863721650082574975709620117285625101956556930877974350907402611567168203803344585281348388466802359982817631598615974386585038544365266528948485473582590533886107529475310384481020645903006134257795238416233604995674459055420855622639329474395758649813649173424106959231967652014466684249685245396158040129158184339876543388057996066777402033453934965043229492229584287630041624678663696241856202809377593482459575227699350109016504371511321936627674157348961024851838375662504128282241101134963486133635787377854915985661869766468383327081266100716239509302122552989630473808865535608776882518991946092357818852365074957352220212042984262718596137197917675334823390950768711194012571313670011227610071990904274672006263075557885818329075675916993389676918639705941844181059803607396245872692708535526464020421116048973501359809496455835106155422202636668014570000315660695888532097175760236835488044979035364850082708146464997909639411161800179923029086615712113933712509927676086515023188596751488303474542025264268896950101801352412487503241971591410427035310607590867317062243581555746551075989877688029725064772808946781849057661615813626078717566430931189617278633578764169692915400673626053409037173038064040773020738383352467941843253936818466720213438019272277171306821544498624756967968996094946627193847114721734790639546198117307718603500809949440430577781662853327936702672578507526885343519796232818783024383495660154088744027349082716121570628949733102052833999523635521515595572000586078160281296840669638380506944425936577875802031020104927856299964549450837891719911797577337821793645068671409518674449826574389253309028438006560081377053692893121868511380612839598393666566381655763961817309551856921429364598616478657234827690621022414416845406802285190771978867563207560962961372775532530411267478221011402016730350269785453652379148485841765692288123910117511159235759723508970328271153113293338372685609925211512721487522951229392185727014244994172845646876748966160316318605907870714698776309160348100980030293496612662097597097928995963504915732540540156739670788867360229207193040943003902528616592711283885970082598225996728753307202670148240573986643864570708718355379763809280273758544874311348118482511947514178732088965657330287247448283163500260570241019106931637051325198462380656844158653268684417041966409605896714315138371558946283767259179599552625978213691820558944613426898323164362232020403576315398426942941492440786026508364810398824671800687379046558946379102152214457169302862846602706857171850637795229452689279424368583027527750179584893385554771580948257014010431048301166188704784591285773806339149613881614224471804856087011981877419364524580890996623822682827392089267616743397202306215750611242935796306992647564249620807484626713937714998937027135198291884262905543327978560759204677720175984436015737807798852075415970204786471690668972416222150485328758484937110125810322568520385088829292948351373577215058094265009547866284519843158150947219245702184543213498607070454477997612024566967957658396701609983078198773859751868951564432882538047018393922758211509083614471319085083348379604280484191667584553788535775223868084366896863665841410002131213526458791997901903882389750334055687101164778031008720175957117321819315919433387656017584483462312241809178429744367125783826423524460261096836180067015428810125177151388853199943799064407444403958606990190532691431167663394560703273173436781954350419547496381758595142462273379065507733651321460419713310777892967431655473659880916966539055709404793838675042014132860099446036199044199949164262609533329325443167041232444818425333758140651898723153263953965688180491422209773958667373540574119949602959846834304900984031759152878510341220217763312122124670881391022479576421264457240505112259341594056966137864080204229335026072191393553454755496387797349567539891934907950892055865530628301314315678281837955999995595195555879041703166754538019984015826506696573962112259097245581829509142656900881936199783541232457769982318116094029389621865840034751557738092506548327728940258888870539982228360522017626343022202826812725368870421017063141315224479550581018519776014987084326278695102230563765788267584819141045065394061100452311367324788196038023321198334483569442612023755256715316650576739353299602299396665674939686239365993168154872331752306424202715253412473416094920094936386741621817876318830309110072618075945587233908018928320271718867967480061869669036796397110588588675311242402829064390291127738409572429899416143474429825787572606558706584229368840783733948406159258221819733089718817370272945628193474377607167928211823606500947712774444121888709759203805078545645376297354641839595907445931830130567683694790785990280063257340125831822683617006205288381550915259388597687720255486143482000623876201485150782588816154830275171988073735878285754310520088389194982376320425538523707594706700941707100019299947713326576695353225031039183605356601089360121491535362792621769918928111529034326925470463892003495555796547425669624317491569529927953938178645887949270462050188409005961502247597509481558765798695091725833030594556273661941295248640480416768142142879386446722395238910678538941963138089258920765008334037481411125506644417381661612501021214222560331305956512797763653783206940038817440118647464980752293443714787412839137139395451864697430044544086481567742320169168661002099324816785979072340596797471716515340992563322509311906717321824895999580460771570942679057276695877180404909820981724204868916943199806678900093412136624794988772836173924535259280565562562863992492001316959099403229674615166085720706741221436464343778407783732008405718874830074239163633540050879176693700584807056833808188802590929103223961668566254520762818491215404959634022408967815764295831302425704430368062072069769135839435946960176236284092668209333164357758024032615985917291789857477866041226816817400060166787490097409879273564777278787213267420812094308374849782626444610188365910409495255832108784202155356824899948037543783337820410640049267833571486043134047951033367490613352653315287165773127726114721729975125403404960766253891134427430192664842817091207108088679052547310556493604444164161555374904836571416703604172371077536520319922928279799814238581846468453507270039063504949203187051559573534233150729489446670543908181968278352067561151023567240726763818837509304051623357127994527921688653339191649118144058937561575240385481172484826853517561057553372904895156748839035542259296745021736619550857374715062245901627809873269124225473413128824077405581594609617451850330146013192131647966935944183473525823037261337182009759208717498870019971773066201975858204078872693591760968650892324864764077844548943309726732563296996038390755029790436362050609303990169964172431104702875844060166439939979506314308543060597259882523771446837434751625292624232440884110057676554244523710609354286692971028348710020786002407737611090268634007452128442113585618802478077407245457950971238139662178171008509093429674074978115086180277634333020187435193654853180582466056940187872678920493275183370713215309394266176358328740524168126628567572106228392040318261504817521525673731485291974683131200537114869252794466338039881521679717242937900242895716921022692658561989720918763621280356310808290655222986888217455933502989141281539962767762812553052915472957432632789647962939768590581646799501347659659054856049248663616759295394709861870858549402487693098622300049158145392846777092695680836104302913543401393409490066308193314060264081176157096578294107518795177941212398937567904975040390943053272567101426714711854392828613723611933976859544125693935179266342425014848278266129144068492180562770279012084648369008188029816208950532799137632435661286680947263136435784523885030368326343677347918397115720610820889703415882886903771278133575581543320469576777614067554407098709783377040693631170664549611013457202691371596565143592522769315650383840841353711253644161503101473002699438730567768612805305233990767154567878947133651639475504023296925061051336310113073762047075033547081656118346128972646399803161727046988388999623946085327387052981264172040971470865560134405453710082717514048281913977488698229845496964803943288295545464899682373291750830711212580043246954299556472200545950973541352490486920841373143538281047598466579095745631403723507725138136118242258949199776564096024341863849311942381068370675610109892264183875587869180993666408823750388344527289502798303005156216971272401986896055252951429424955311691795323147595792502073464111213167581139071817392210825212317634852307385603202028511689725537726126151388721150936902226025311626900642029414472361739758765687344052591632057093431775818401904587994652976787877159616642646058622026467299058033578789925878890368921520366036049447622066736357327107488084727531926955771441767919151863109014020793360836573456931100726290553471696077101006259050457083420217528027279908424915541164952530700803774306131544798795478761592322122145950199323333494471822393191136177472731702598317693618783484929715266535751838167549007113234301132911225892902644293247167787209852099752435689242049586753204940618899876788905497961084497023024877044617944569459768532233070414073276126188467265301489383585235140213694417318957721081969128058438556454433064137917884918799360228622274906942122751449416275701242332086188668843881629988506382098038759752605900857097712834040373095905317621968045354314912512014413932589696380563937668215879397331530534896637873827907594437849300183295283540095444791513270510046804954120735930203551680432925216901599020691641450750106788294142180700250690544276890501073711198118099855849416956849935420950481282406012513271799586410542708120582140494573784183976856182651744574759653908742215227292059813322916850066597975696206426458497104892978625427020126210026161881333240195615527175433561188602506268684267014425115890418041167711152024894126339117147257161859411749484994568764304479037671796190211260904961440099397893535138313474874893425935147285351233197415593782287007359098713817134085480212545488436213463499332733666687330860479018148069635392133227897220053230396188368320997643771957036951126739701857238149095022985419744363284670497387865071855913393066978482760874298148464587240716725697580937001892439886814914859422634759454954221694435031228057294905960864334990549559112113402220732040718837267067379801491640069417893110760070056634499898270380755375627915649115937405891750704752411607491117703482484124735068416908667784748417757667550263698367501692856839608237138064670277956109203017363541563034855853476750945365759408474362365345989169762917012415966283934664717347557213692725510651999665557984800589444786812200543504094802240289589335234045120997762233967329381813418648291071029190857938391151081537228326357546324604904466690667993954575365162041031672231755748209917284974891635789479000974028292290952960663254937622778891547454289848661437672843137665674827884237877181325586970980648171890304874983584246529105373844324544613464896193216116787022657839727516793385048582847600316671255062796683772999198951983558945765611109065785800795910311461507193304324045966088562007292983971241356281677248812148638681706226263501262587049810911229123823257119146397202388579812369109663744785313252552886598309193235583309065735480229207972012869297095900663755840717143461330424479424965075249962691133579792936079325146494174821680141732491169222874407998444507584156459292299070612742799632316823202489609302192726600779256595348709189069027749406861174990111765249442575980689768404351331140642627217491675926057011593565637083459168240179689893323032430478760162315423914001485632882987788237733618994265022314194384975614486680857663121161050243864025644522203702457605777823047010939550751938205997688468709195310242923478062985948399355033662825525144287422341627851481392155411444262690730599702362379462019467306632293175146863455724402369527982303295080350773685703363204845966299615060427187779129015923027803639116242162322037134875254298195938980420959657238456974880089544575530743163770043244047984906244591826205145714455401766859596769819512545469938001896218643475464247280113026583080646776701234255500081835273174515658469276841124814920628998375010592566678816684242531570390735063661162977614031309758743801841330076935973028706639971898999585893474772877711925227308393304160939457900076643523531718634608268623739977100036400501499860841098910982434184189603773651310655635616513606118671453422782908372714702670890470070024322963181716511874061728922453441628888771891680908533220527400730683065483474207581727725362821637244463294002046813084697885125379965042372130127558276004886325375891547031332962794790195588248672782129953701523589485682743738365882152026207618820968760073641979058700144719989828184870577777826343033983820327942493404823176727600206078594662786324706111781503597345684535740360827617227692322536258637767650552674219484573495501904156442641568434496647199241670717616674294633893666111026113113503271505346071668707234613631948420910946692102382948811508475612439672107454414629653805033003830930308107505480169904645417229301829857636783686989999835871580807824704548167428085728448088926784553533941709924214391971062477653224659191468127763024774250192757742760747039588859499051573089805110830440200650403982259307570270536802548417607335370777331328000600644659540757937309340668573311692431993262376975549688772622786380574728949645363896059154469878474308754115673929723878057525184837387938273921579381815328039243339200729810995123732518232850100586594210495560886617755980606469412466935007816138951912985932008358130968671223597670458885591089085511283419448355274710177727333617781574602014458569476734053779742158413083160879607344219376791001753348079653761252410577253733229345817058629717440849476471324018164337268497019071933947611528461305943474869383222041074710003014595146363164664611103217585559300615423968101602043321151921725414548469500571303605238308791355420590644988215856183491798907448297513523485277232575107554733163573709996871059050781147852034986737394529524759592178532386931760916199899879827038571943514736562968764732792485245939836492406263459385419090801460256853259764495075997045694227778564914797356434104453309366361828820076733894673098021272226611239517067956280024451632435662830502509646359189220483122471411440029539140324271135487819352154578891935564541602198649585229201728976319025252212772733842426734852181062067428980757608482634856035769005658846158841188154523316032433940351283578975149500806668596905667427536581303825883390782741121871642985584090179559137324212759052990238848275608968846974452648477258470693555542771570860563492131630330329550850441452766824132833677446702869858834658124841690036650740038224577834308591266846530597641173057060584402355717783575829382050561295840455313732253213512166380510347322924688564482537975537298018965733771629089559488145964433838006871669071008089675779322644779245996958040088368668650565008857820088083046032821227337611910598821055124024822427203026164563853706366169133495844969112467316678931934180054718587825466463787799204695336112786897663117406178450925744815107983549486985053542067736558386404729659030277791004550181915139816306265269114428709396244868473710825004005724578458862921214762928379072403768141945225796255740638973778096909032268062047800727333959293304550172469652594645394786527941677064499554790744114810383639031444835290381894109494401800630578811574079415951723043133138362720499034329207746191682768132012666723914190967258307145982463992998498002006707813221805239656792966593172161994923654110887790457495749316595316901566829539744722458336578080850446503354511840317944647897058072495169179605917853673963194240830864171279275759390054617994565037495700913456884800882151666880330173728358328796277226211998923298514905415425494473699870692741419111586147785946179474063202437821324905676326061693553966905436219829670141797596911743155352813152847975006650030811702879096483379826611408262325681142192916324059108442878876705303880250765730597524337080931597465395258364281113428536768448819583273769510518609183874680804063352216495337275930973430194212826398501890541882810708126312691396714592403876641931498721551305616078847922668556292980903604923214504911035734312078829286965797473163333647344426788013758639145608548429577808398164783812773087218682264419058272302024228390702026567050083339717949444979826353614343550698805851096711001778806834611116464605033946610071799014702186956918057839673259543297325185237538182199838244286410057900157126306645716320801080733410007713233015443051687877493679379863537674718385211735388970699429556949702145465290631588359972146064308677175928652198734883031750803549704490194375845167651379544457083891701454239150455035561071846765859091100487734946230588833236381699025681885620887112629176259798636325376953682064524601693159991844158367385981806284278463281875681982008008768745680047648819955075588898214342019663290062919207359677256375721701393372760542025678239567881917928163639860881641765042607768969517618122440709809447924372441597130953217222668362001858936207146416897555837058500566223570486462473607959771494301117594699225425663242765966500911171075618597830838721822033796475252448855206314779821463969301867262058495431469646155037694449883855628852211788714134924986539348083757569788172873845436716724765936771705595136239491051381982844027331481285240067073400696744636717031960391653790789226235421108245675647895480927987806515539957578316910833385562088740359687565189314874581384307679335464094801861164144168867330353512479535571418840977006303740010207975203877685954910403601654328964405768187900861267428825365875353717079233436227504332601830309988181595408119938585128412084105740238116020166427998078431496981156546753176601817008977999881217201056463482032201332671957692541155879440980167721124977503714093167965629686381117676346201758414996944324752961270167590717264531749949980573990029239005074657944395380265839916999203462090026601643522954982841477638725167736165536675272784543443341491422094684048720089485608641731520286960758979209273627332701639829079163336660599203886870235258846701493317000185008054748178252177613523863239256966125710663899881922197725855856394448417717078238085772011867006461990494770874107797461922957160172772715908942521836335924488686598628582613166481346309957850320619788337079960989774593219768174810269732067193541365972987226786285531590733968972529124098956999731237270664713828693555801431931309272324948675777832491060641674197996014422863330231863820541151204423265743393845877719111912083664636189646872672999147054127806584812333271850605850391310289682139852144015661108915837009856074600258574583872665165355089529371819690887846550501921136100387373326168467129912751932230253509759334916330357309658240350604738000953322620016001934336751292515742149713013548363851158316527603413679567475969862527639543622781050902034780129369504702635152449627412263305933686531764463541472656921517840180111064587342874914601576792292048311325421749076932058023060900243840352925953000885007788621420185119514244613905837626905575990263628303582909021196380204991505740610885613949604684449142755024800261923405693679397386927722500560096175033138269582357202372148923074572510978578455434828304812257537502111407657025831141073869157810106549934053377657826702569710135246784593480459980020690838409558847374748011894724122473132910929530561791289113597334781422290993997018276808027264258421631807476796397279224923188390113026173553988474227263933960727866370095802892376828535486230829562365897159485098266696466225401258796534242129471208006371934132460886894487840805870786814176146305643443632536624361775253421081332055123920379571661551290856128616946611336948349076193849230373953730823566136024383777928939963628231335283882365780737644317697364967922677132503776946266847258313899047207803816289948683059794090157484265469024491094025331937841541825811203757675835539025841826482487933246597099685005514286253439495632629170542766696131518480284665522097045749867238721083870405746930183695175925608008890595523889590487338235219637425606473213344536400142574608153291053634216804109226885916117752041755246781161041413973912717853979207856240711292238707225150313796902230586301110035498317127485467470529052905943676140549748576986300802535011904731273867932218553539565964158427732607670885293349676456466921820501786466034907663947987129151009354847763165663322299942919750115857837747786063497660772901499455708154347097280506066545999983579115541917952343465408696417296217043919217970413788461415760891496191055503261394338534257627741455534778248961017265106324490996439265229434808480112550136398643251770433038221332230911697627300009667034331258454367477929738437881117548642509104083716008108946341905777307610163673532410169056488404458272403232135266554345778285159889966085911502197889502010003657997452595131819286586885021018351013473109407845999739522027158200967604882299149593335021679346104971018148179347614857099831222949829179235569097258060632535405065841549952667920654164752373732114867217907264365755120085672096510238958533356215548841346275198269047321404334813686374339101802028327479251705444902165476288349778830840488420864754013056842026001198513316152212935682442139107631984422654999474367688155453221280105219495404518789983195401539406654336483410636879804806175544837588982619239233143795833703295318942690165023834145282672167466607918410020716523918639221413269411292131947132189509888964823122292857586508272832218072260819836987439654766036126780510611326217866764784235687293110303723270331742024472057521102538892486506791884091824363382309041691792207413757325620604077672762546105438688413441855238536881542902784030931670566145356438298805948589064655829684963158125885980500792677209986580635561271682276663477997898433370523880571981015896733814216762921635169947529738392998341634641214482204120837488567671172972063156817288253471268814274829151152973887385166340167351858434599792701865940402542816004692493421032174397237155944145834911564108906747032914340728278129502756495747176009928348284104818992865264714053191167873107732677639726246183628115311318787503723389432725291757709201901041237959873222025834433966783861485091898845429465211536103329304073565606529598575085067925169985658061575994696062850954001244907809483533294780537690050250613700521287872711697101080840142477443863215846891234514193961724214815384378030665219178118546265451940734292633559500267688034448059135368203473118147010239269228212207640912931100577377562229283823920648494941711941170595651157687699993773982373534050090387776281771014290478484720423748637599084325412631302245004624243009196403776122599107952638080942298793653254341702947282485515636019773216420091856697566386286858157803255128803324599745479054241477262937546930531262376158504596792548932884265732222744651022431809435227595618260932213875814214485738535510365919415425092773846823674485544952021017684520181743513961204281018641726484251612550922756017792073603349493169919781672645718915870171819165855835775488922180108747582737239847211147743647246851390492967340123772225462042481374491608255454415848047430049042087545182859737809498171299301978554965346650418317110514871909199608596697588674310754410089644805462988776479362834628574076132905227654233312096507798670453641245506226786444395511561969195810187063789284062344482150923236859770070500369151692596191214148666123452320489060597880559638774606151511880652173519453346829517499413366518630592933758439576815165314573878058806185444348660663148566864517970567249868687912360274258579492942545310146098880269799716527412129189210078110874728555876251584001720495318146411591739794972255035857935026834461652263801329703294376600648225445766842312962213463637184726076891322088824515338957948359611319815582858000373001546364825942474858332047013511196440210895000441657969594017286697984695784469519963432446112411565376034985717906750282925755297677851237639705306644748414119498397774864055610207675066638736066968394349065026910301801737352480752686162608143139546532133319785846242636093023200280668429099264152805397835595926979299513511296839710634877280643781585803115319230989971229832460906433251423524745423309307504191429073010305553010512972564218644858221851555759812447242383409225712520399209979442757338233279369368998071451421927052128464549362108066822631445895876849384547492222385234004519693570126137709356463532186215298479250644752087806736476308417022799263304244648806449017411437504659465052463282212316235724270198088940007606245546292002332306801209956120626827558912220370225656464746922294352228743718820807649281341558370136404087531529634856210328857889046690989877766358330042382674833062535355669380099399107436874040819087875140320897887823078395625963698199911055630936829689547936458232557033607151546457707116780136941265341528637642586069690222094938569732649804090691136690578176623978752805396907397113339541353872933662139647890247676876264870669865625690091071084533827671623319984163809764332632352379814765753821401291251566027334755660230978726988580177897529219001420467908364901005015207553896015950821753223380267513108020573924640515835320247159470066448159319654754048930929059925419447040798248530057939633031367211435985149854347587757857669604111594827685706782091260626353438926264563478336489059375035011248053590729198671223679132937215235776266737536060125577844770549813847171430429218813459154456188722397470287720030467041319801091756988488988425487924097410852924525108146118063352674624028775596066648393949530361178653751591766411900104931683412130389222623928752494256299885490460717389358786792900613599579695805614438251774973631913138232535179767733116994358798200978182815214157774283832879754809447443622970695259753847662003654220129154905709966884727540929998097624656879901853688446451347555670105846990393676295561084462547304405501564907820749561598302085272734277871112486382514186794992450941250433033632593770626500750510985327023356943134586396577402807339240273270248412835273007953230288202608340158736917197197142536966506669023618001284253229524796252876527979599228110399490380844438426783231535914993175351028196856547424865756774711254227865653545257974851959194729113694986136187504224606838178584870248332046900772578819913148098400619541986639434301383291246139357767402317065258662797534939559446970092006991651193638810966025634710932303111240026993442650506694034961168788269230169068976473914719025084334230968952710886092155664682733124920669829982444047758081256064464408657289275891195357637011973540680837642530978180095305059146826805530632178113316155671786854260956647918110464851717151358906218250391921917168913417320938141592694663609146033334035910584503419990816913093420347995921612062704589054112840377718860996282593641114537794169480352039509868379972825746874979087890357465331481545599300064322114501395391647829219489996585248866052010353718333588445907411897892738294196681682044441546493084859140016329091904360385063356851843830621110370096928555658910848814691483132427128323108659279783386673750892519464022943674421429973755528744026145183920037451775074937507182229800438844430097043883693089806083631920084707522891692192844916577355448678920877393354121284237380965462510830931776794180707577656627852961651026057813508938619692209442791324771200507935749207539653881682042357198235930566774328436789708846971075816664437263900136100666736976807151119017643851645498587554301798185425298724168297226311101885413764288491125650314088088895667028967843043804523175662092753297383039540596517311117196084425102227762874526818326911848632818502707548309078457597010668844065170261890584056587701607513721840743399411616628355579154781174653420800401335533145608588232323729351143655456811416893506073629314655270178727542707596694281027537533013952234925088054332599603331688536719450599552264466351656137135419681291763401952134081854777274175315987286580988690434800286549492157885333127896317199622607240725421969908217898686772838413931865494413605741116240530436092236083151292102816879284523913061354750286396974689910369323540237866380129200537948412760604165839879616283564350269256210121856272136816578306695814604325132699608594238579195085721480946398704463561291908200718058794140729240586510292686975185836540069497525169259730965228943884720751577118213713501734145460224418597824700362659078230130023864191388026477895503862116601268452666804851835470128572777940462856317787537001418015273917256023035407778180194493039309387675818710737871227822923147502411646119495075807267575703828684965927040217295212761139752334502255200281744566411324701784253288337365296643315316555393515969045312207671395275498908363271058248370512423276330996005663285107891747056779452817353121171196246946728479606722005587010544359225444054353229217432741571417232414776284181312667949616941042000954353291604206000599324451189584346027497245156277235868427925713442182299699921180781897985325313418901569559528761145653215368310593446407614115299585135010393756368089622463030896631437052540313790352154803140141142513004287756643701645797681173186600053543936938034439641761109089351414649381265889807085688331001157779676712851140331352085051618983903624343257572071836174501556806701169455163740186300619924141216920928988194002866048142296854547695494269443962087273098383824479743557159057130732567521504748677124620759414203973290968343954942930933809163161190066820891867470262321122332928602241584494383133831080438414452979439796145073922458868062421875014052211211586304937843963830244558027862485466171464087570687066884212373063445906927653868037380917256970044978424087433544599622169266014028704139068764348528563523330814107230505241274146410844132404582363838621923318413231884056421419101895421497936772154191247819343727436220064448628726740910615415760286677190764505289526051937887416902699716970952849844508773467043153213845813202373937704395978077689823633550190102195969019809773092813568810228555348024323319948313310241142057173055331160894982697187772223680673323055338258461023298603172277604326010544099586777823860995641754050626993450084172919502732698553286402312922189480054988551960632253563061288294101936991496601499618030551411028751741601254993925669976628916369330764977113230230099027941437296513764641707875890243156197118633779011434977452099071195041848426422694319882278173729244214555051824904659833544393437649732015496634378943701870595575219506108474867253356463871395129724586360955081035907486093345107945876953090487870436449446830202255291478895411916392985501621056520064081538029020829357257096495897743585757975509111415677728970152630187829546939086873390865348648746775212865799740622424244082149711581063692347869804596902163237247919673738837254494142926175276923536662790097273064451579040525215776533101290367904625558470678854041602924987309058422500389668415812896765152045130884642337380884435253161155333475934351803933789441982560028296986684592767358676686168845203022171257527818278426256753056463195452605191673988823667117012507652124791883730130894959492610982457267341979745903902484737816018569815341263066174687833968686646719644823515005248750974902832757332875346322977873470104407953544615779193458794391071151538853091927540043563446947998258633180175581563296308026681724819811777056043913346955333721865332965086015646409002256228727704780159612019819862978183177881726688795494538309465924816069168907325420382550091019942435344705970340519792271571975924853488155144860508739863004981435380189487637270991514335660255788730506264687789619717337935756839726166006186199402217616931758412989130556229850742823168309832170305895354383980407068893449309770054485730996571096082941378137213152800757541983782837105915340272488301103337720266832275553498384397530658855084160696192232668863131986626746357950884220428678843644340575026544977494304882033895029636616926874230471490227956065102968771580376351370559799523121260000328660065776631702787252694260636367197578206601676749407964444796988981292184313944959572485254263731588383018703149559146694399258248079933816415579831007688176316869111509341487442977098287281194781526213477086847003825347088606874782411828574609134426726910285516133341970669197261777057106629460560474067389128148189518580787548637022057761310158480833477773129236310788975353679370213195314371922851652816053983218553450226411113238228896270749177816513206707150616689043122510520164768853659394690446344692184942383752967449308780511600047674100623644677116031914779921125373151299212619630924493977321119887023328016734760105798281867585789853563429878223207095562353031053216876847350429889621356155175183681573040324986717351534092304303196605102864550743112487280542311753749566970123256492205638261790519048873904941866231796938480615863530681395680560375994325048365414529846955180055650983367316302729660033793710546470401797003118085231091688515774947855168786183393959039212355059081672854165165857772821081246117298215392204043222184871262382920768764288846837663935004993740799897877863504884556649492088779823335064784126881070681480329499506797088068890906688804893789597863728984097130076741503804786094964294291955380773442331229586867929797113368181904703909002382959143349381579132387214744605971561230148476078112964146002090569471381792358003138173933126661937762885450828432484532933522590847260633992802291538572146679361654174620053711077471162211291958120500122491722088095762407599642409516516479544243582301429161655207346015846426846830768711580161858618880799081198789875514231461139946470596539079940402270325520774913613316783150734592501235527861111638781372942504312518366627490342724520938479301227786971539518248026747228325136837846864237011408051300764523756623201044206968969364848879379734963034666088745358079861860711393837393439708630932350477817008500189716399746053759500292496459510852762435304080079378843256465620790931605180089962233441431472569207442023603409825019327979046260177993064955287614816553417836559283955401853741161972340613503257183957746410646111011919778264657004004831032061984990131222153135596618435452343396921235565564052659453621002185688540660716081844954195626114673689456883130673843462291416644989116298379181457895765705534676217042874517867374438959142896577708417215886546085519161639992418392270118132723525533968806400307125531201964398174256078288443279817688734820705638465975137776455286214921056601409406644527209867173655696649387746134724516227527076491568447083415410027264834391679319267188831441367209709697065673736960993910633145481897356967202157442482825028209149182602605760086228403556020744771283346553553862366190411735378350542048002067889727726509367471462992894742407970686339129569952135234902447042789832971287776879057229472335023435471316454066774333275946351661433238793255183885197133723990124429824272173077771682975285956853930673518901528260154485384468629744974470489421027381831306736915460171485996234374329498059451854069964184591724569121585869724601096967259005519196155851422449515013408277390493403496462221966159540610317468845695601109388632646817907047209369092787939831329810961176566521587411427056359559560599122006326708577947534536615260995099871361628714429171177500148287687257416751206777589950677608083155719264109333591574015558550529965402592365009746472048027366393237631132851941833706541562416628409784547627618250395472776375768472459958732954013998494356112967656968985009254661368234005549304828432003576052756624480115246422521587594594944337586804248070670379440092304678995063897793497324519109823177380144239788453043683570996423084873252311950179278170712386893767069052861380972995349272328421886606939546815579997560494386912899923202251129332235049577720936844039413498635531009010142819950782067143698045633227365722940767203354111187484207961001186798640700419285194977873653144953332173099388929916175821159671995869193817236292940809457560329495024877998806970768265900196816600780560729852174574219008035121543258613384149319420204433065968172862180093770130696424582375315180319988602965353324266943685959627750275191329256407343632892781717931527816056633117889230256589558977606228835957912218939734239250102311812759357008457010868433348519429250408662341613336108061511289268849415982530170449178895623139606585137049974959185559378214119209620097551232172650042335376769713969055742599593314466375081160888170637631889176726660690725420009587739711110125707701226708899458380965914427210442392905199206445207730231677085034835754319461861367904246199787252436473290524764115831086653401252502087104685108305113509171625498000613000910198187806170720932502445433086673352438884105876307894545367579526365425608575879933857204234643322314057319239299473055125474294898469419851317696367285148762842959489982204691307594818214048270679144687715167036082489333185578346105441853523737495405735396716368538263602053157628952598957157159960125453790002766017417306517807065672319319851610691085387458975822328033499877652019133505447492935603367332425923487947326405708021252487792141145619444240738782114191986683549852095770343003936143135386641657723190035552461114212902195339323777549819325247606103601233775165775857887254499717585895314991261966147912895520566612107372254582996053083233386163048234695208243669963391370793380154451518489897296782780464639880466731321598858111326799347238199976759681852351369224167819111282045219218726053206473209269442961381855961379607344780591184739728258331016965854061137079009096838780604023429030510080701313968178419136089108425270491331301985822071863766756881778532357192719892872114566719391459489005135195119009789083586730651755893473030321350798096948082636937785393808621762657024671194638618112233078068953866870447835933645279987676257135747487360089390235167015826149116492783127573357455318396659290092968006923336584789664724776494562496182081084182793404094446430732483372266994789859649074188601555810306704287630213515067324599390371730688976682730313480436234470612809506800652725202842751817186824860468858526899521759043686611117217540217825271398721114794213482016487697975671960010587357988292877823251545915794439961542415711658395769478027268492284859698399126368414113922896243821738106162261195029810009053043007604166730764906907141880143330430457136480003881510818151251276217556772097308123197506674401158604331854253197930665462800075291108722126243333517473039212190827592871384599168094752803277353289501286942742466026887557755519831712492298195301574928438858849050621941161762491626898187971953365086436229309757898055040775128729950703295787792342826596923780922189700494660663411435363012856697565754673708607214542220881757344401915269022862094812921230447644819550714268028638467489718186773499176028104004745714380138479303815086857863684672535018031382167126383007480860607635001081605306543295705423049216681719651066365523250413679913436583626764347785753224287111620203411091611423858894071945751149548466400069463258783497268640665055929547220957520839487393945841473990070272821616353921970163412124041440157778721826913066294870090180537882768703555909875396317194266026143493737846391914660313276859441640189856226127056219834938372518957567460471883945661051290221376699167971413128205866442595248139692290934730573293689993375416519695199896286434672448227203792180288736547727875869881584589747013361203000909087088628395511404439045280316108868122792089290713858090997906786913577916879035119912029373903934141259981917254696989384548996914199731946651540953569958607378520292725143152987748071726315426271557117989242156213124628658418133323992109455297479188259239961406316376221433775323260484359421841048254090384131970366971398015342185399818284945896613032771042970381510981386498902090470708511586365405563222433874920694426987359220232181269795260346114023256016989706153129982446604360657688686431620341316254651093221984082840063151357871629545733142804958892356253066563041666015750829225729753275861357968426696631359332141740172367191338385238910492493038542675120885756743548231547477680198360854760969343007939475529452792367492124662282721310775531481281140454849991196796121710086056038209444377138381980269757122219363930497780267830516699930075844883678000755489655349162870893219627564706605555679335977722231215298582795241057916649286546889048831192081279494186879135555941037639162659710796814040606442330908678279547919725626282836619451285999076505359972727570349502980219551313537754913552718604055563573050177954360675648908443638231830981114817020134047547226678200669037320182821571329853371093951838059027427593682155434168027152533181434588467927713985202164629286091130590917705392511296418928786528996403425134680329567617530941019355721554513831784479390989720104812759032412960715648205812935085575142116977962456882988205152851511625681613044551648803884512587097343878147602930770829047679070938880026288881220556197887115670776339823801073355974299404930291043472944271580590843140698478049402834438279713408677228759824456517263599704711680828870295525486667262915154048358460768090137122687887025793925843537399603038690244621839910617509447890428135206797919005797281715995206841051614158443255300920634242373484376231515828415489827638923192512771083921025779399824653135491412866793229505532663467034593514546014548441128865184521017448024796013918496596725682922729584489365864640001369622879362248805042837648113322751110618502317685265770153732458256679405110430519829741145081896758508957645555989154446322428622247549782183656180083581602562156571846169304090300414608113864404791159964725289959794238502901491849069453627504263888807589656247417510046871640281875475356735706482497770730406044988389248538983170166508579464927274893038366601452228463313241071436623808163123492369850572144645382167156083507557733471084594301684504060104148072029068562850299602228986489097838822010602850813312043843162126983564173974181801483202423802302998136008955433223081009141967159482358822566316841746403312428228341516506711763775883935837874779991303873561670395885585133520359695034455928520595888153087175304203394561511472767020151179647819420286407986651169685456513075998973061555011021921020375120248222006720492350601288851413788033659265177559722022873674750206933387095468530756034342597911244647610730343749208389501060701831816697788031663857712826716690177835407268098295842004682030232136407393003607841729616713479349899555418561290246234251784564858942830143533590981694748294179885927089203544464766705170323923881818889945633882978582250534966209522380327956172419997894131200325805670182974463810869684627077721056225682312283089000254266494439562716349401534819949664664130579488047798280953273213328833011093673820597177871965555850370083685419891761395993865263874538936850614317002343100474831618999173178817659197385863336659662361655287161640582690578781129212923037389820298562301263217982840035900750214152994055887229416769672128994992364117858631403340040339789084233884890747000670465085682360686101397101325479591772573440555080628591381148974912014968476867974026612668017382680658477602893666430856783469557578552084960557748441898595846945820643490319155924713415581853477890255321724966490524133169656282889134600854385654519039809706799726780292478083503138961569177019046385253543859948013217457718580954873858016087157577373184509097433484937507552016302480403301065732345814711695703639055036806387397484364186306762647772078691961143744767514098704135859313995709255870775088959814507791562812249021266881410229023083944553863627769054753318609686803536651669032217144044121369219102475099267349334113381983473425986844872247755596312785951295431256229808889879717910180470022514890771591696691951944878802084713935248605778153875282988001511449804621324435190444674847420616090552641588564517017753327373445306329487882030136328654541293970839420932695078590807110156698781146861275371279881893471118943201863225231606104223489864414087206219494490203172155895588309527728496693338203426131803348136208803241281242551441619985869163011189464680982202710797769283062385158220787938120000386374612317785247732932827037557503000500535471799411932433987675243618371017739865606357534733106953338979379976592720479882409963690261100249223225740460931849029631480831628366516493276389921204420362925900540939140529474689567435142582381658560444363485305842883613258958526336034181474342278658091673820165621700439082913123563751326130824346707544340660756925366232954106922483741819822330494407668160670290611383287708205959368893665101992420629167620542312880566545544009112892930531582212831874170545465279603521839005729956868291065680210102229847856681453035896729456183083670978785859926947867950103277914491610226309443358531722227441711982353484659217599543992739657705290429371999069780627455192199939669836758209022440283849790397679133901525029289077263028035999222205215410259972735238826092625699886351594793727600226538238161483271801458659104051641127896536127469051377134970073471859125321788749621007439958509841563232170418041170789018792712451687432281255871272859213068808848992072677125356975300093156163259039265333552213858926616246200499016146761199426789150492274739617537987709996974627081900429552950183188661758841029366133370013437132352224110083915824538076436530394363599537786574781047504436505836586153407395731019571147732388830877983498328306891904481627042772827589170720505598125263235974268977841325216446507051583955736978811678138590516567535184520856809875328863296232975061551286554703007090471492080178846677772862841157763657309663270286029866356529476637109730705383493695161332520161556381594432215994838953384906120979432398659481422840931970296355859721457539042643685909602061825031903808314283332284757167847625875006105713142153410119882976969402311493554237217453018949940927418852463623913861364631729123278475606059685450059197136175855570018664088242012589643705986776147340824598809240347780534630457936045030102731780321333816147831829269346413967466998260300652373399057655767413830375037811274313997873818699296259382570733567117352317114687929599233029702688564906671266352947760123821053146262712888183717695338076036456352316327608777087931838703230505012519892153059011820808155407875375728546696448909777271255094540733215589345748391246210965349060381097520974050299294678562489493524313712822885597268781499056850535723939663502298195554229738883680927023031112976936435521444630814297041552681187673502650016982926305414645662449976807864013837889195970741420556879061041968642744055848512565141274988552050353198015117546911848220180797502560532216061606898703946565163170996526897657891240554166915069047455596470816837122996170788490534195640083283878072070451730796609453484056614015311099965327822237032275297626475666217310487486627633067218224248367598452579683199658112026439762439561696466059654172709148076455119692648149631255937415788364147217589457137529474203922541280770521000215520108090527319029339727250100705070060477811833049822834750485985160002375740179722084870254590307242915416428992643462256682838584087141079582497939086635554705333923536003251297231407405358658905778782000884854024208690537732286218034426225774690782874524684290456231416799997569203919947015305006780698952981177031697740578535836074721302780191263336195444282521122370757497496873394648602340175724539182076639202926619704210549282205859662139667389586872827270691050885502130518711003015343894886488645855664309403205014747417900311461281622916654627860426469436514382063597532241445191857657896953205222527107985603317870618645545563191443132443527141859725319762726604016379539000922895588821476254111052169723192982844975187151910012262603663218190252507888145830294643106966770446192396075721931321617356150791666703270461386100497768893008221767360229179375914931165893033828925860844281616097411572478980857058786238967560987600188048088364974017497292473709036607011804216673859861236148646078908942521057149956769165741330243897799659592831534384985852529577549714082572970256669649052678399518551163972680089874076980143316454468963898482413978894172402271009814553714125633739466538876597537962979835211951883599041790532863481556893235971014960402898449223589246568081578260524058799041217119407344183416171431605055203665828106967281228380076260323771808550689756192480545608810552058423775585023916419378024767177191780737451948943818378146332470891512010506460224810201896725122214867757389990779807130942177584523782995707331836294794400550834765606897978097835243878857857233169028128096542604382515946522717339642712493368682281103211155430129453315073913091137962523882633848740387709034220809298381856714545507317480657216825103900452463431727524042480477609654271704805486833752265493639647988941190588670345811421467002718521628499602523757764954756529132342042280698434694999746953249925311508798518055562391537267068844217166065248149814382182719109575590100336173281312375359091812523531177256930098222097553024719784953671510741325808829913260725201168082061639100306383278347559553039706759914015152351207509562765814526894882509714709647244767390121756910553120148704036357255989316896932196779656005308460245081497519145272481301029833144636268440076107710871889957221739415468254345375485357305581240045151458167371831203756812610984549017519838635100967444108938429071575637676663755370828249967240591389204661231438067164108294220132822747938128937167512479448006808462278552998918576388630222358436944525219771866293467786786870419760558010648826885788143666464641570750559518199250020277368735299719931279005838165216850898487984877600330030632208455502847955365436715120333209767571022672905752671187185408431168885513246021694318174783469100110275074180685819158183353674960918060642754505643895088919222518690679211863660598815027867496240366229686517805028965249400439777170065343904497612752158459571398122407883462104734566936497951507276622794483853055759566221295946515455279817017139599867898112045853130333181336069282652539804832517505269857482814636185956309704442491960688771136136164609057733756877361856591420776461549153786329267854991230956892685467487507185407807250941567880849349964044843677074359048432125003552477061448202169860549109117924913025373911496556598295091463761144076033011819691670482857782592070313268409545160826298830315388540840099415264022431357384818804906240246081720233383125786832328808955155405308064341838746546064991386918256788102213475236422649114537169191486398070417399478080671522714386729330954606311438733739859290426807619974690688214649479577266209067658191860550666585192005105812315215225448064000660943733892276854281341618583563261133352525527667436658454354356122883773285565217973836827261382604509592374394003615782014895911591049610282997969218699061157893771380249648043592489655229574359249610230301625479521429926294383135115907728686493928229429634410271120595302992545297169284326599101712268935033946429253827634171590099170137606097138883632536038647940641407303138428333158008739130322719589390047790303526955248970020009804309268669502744539461668964499040796381731463230785268114691781853994436126375539222515408114046638226187748866339358448226381405774368833657843169354062512378546991092995874750659735728818563334270436546668525586476482301232047505693859419721681613329083574519625290961376237743082074786852415845603277165416112744481708284268112238341204001890754735269074105589292656467062226614721123949219659210170503668066190441725982319694467346956020591183904455872452499913567829518250820456321333524395953238593693334422948647689687378470100493594546264539534867601198267106872045299781159038575967402498266470103488845747092627394834243271531599822726182635863658300962408636246637829559340857510438110603054937522456670436710130038016168541838377296918908150976298931940136678094145604263980810815554953060684282024432071611861286389403274654225357717044313146536617968889131587859621462862807154501475904262306952483485534463045355045000315223272302463980504055102162578614187810299054205710866450181318028126809421340909655111008398429106948782589882817442666979692454026969055392668555230942820746852587956270707128677272484008611571609890689637058610109891116092287825077659591671080540807647453820789424489969682130781433827771719951963335441481307300789998013247222093127993572396207397248867047427842931216831486450337212125842359658438425591745218918402643927594958411983750534199801520786961706056067900413225092549509327967884468253064499085832397923704919485484820620726317819123221918549904663229840602345552151670937119785533442900874508327573800458541330736053153323597355689367434505868147727863238571410941513218699132844007419656442270641540410878978853712110106325639451923052465565225891515254302348497111454488400532565431949128580936430905595223743035023757373928952326583643771996233294595981273386125244940022043916182173970134952615403109962820690542589240905054454691417370114506310676064323589625257707142009898390601448811486734213574021931743313971000151754211384277204506968709601236943823167609019062624444322122928633859987196137238541400016204543221997129438564648437639090301378125253585324028176666710064932244681365284355748384239067914822323845212221747804798434941033060855204353378175248869295363641675973493162978964411497956710791033101924844984709603889178741910088492095660002189712566679658851037789435278068393749951498288004448081366531098835069087394693147544951397554706749741664880523912378721756011728767347854005163413707813304397507727335880065255798029419653865797466231838643380769680591013522091015024863271126510911782648834327770442762308438822728273849471596228200050234154870108633600435745262175419801948573684841601261947682665101872752125716920158824111158316338879131830589766792909786760818954207701699898175021223186860835703539235300936901994684322791120696456098816266395011339604227507109967401243101038454390929777285085697524742490849118804580532080514485127052459540420892356397444824219537319420616736868231424568552762619123958441754472633003212573305117083085234324382917926647390646220544280135823681141571947693300400980402631911049469045453334303480353491521064245468437842605919894913124291519061030336557689709385374592123700411441989518509128264219200664982975621775347422919946824110080135044558867715351987988123782248719342772720680400404886687307076774109146375927019437581944073179203570348364665040402182033219094908990948107669879677483655034314868350108599967897768709509188870539011961193975476311407201572413349501495060388315852939855134419560320183675915883564794167683977823017403544006116137391628323620450124409558326644511549842936451416882509400706898175368782796271672393321288861754663722412496040172820087170871585425746376793190032887515553758654183668482240485496841315308830278207328577327451483675229808481043898301913987074828105115041599781392925532230707588438820957402988648939332065475913895393004361441344401612802567002212683179758308907410576609958908120759619967959335574770981376238696734680464442085232406422026151673176025272629640351399059345435505953873100835901944330381562415055007757355253636286675055081914718624510095420660973647091219188471691574831982490556720509494614948286277592384082515714771750405773588154327053528329105599835084335126180735463760440829392971639803398620179477636043820279303475360933481634783983578520471379264808665102817315377848100250015663852975984024315930749898215732207874681635237507674476812943546607563294429768791885602886602431352634775005934413406543982787148491786755350879646303311050423824299521074556946444996325426620388953996780883495534763562244516219858717840911784998589034380350038839750906168390761836463774418750680628643971400751742761899334586314585974014838168493625694127607514037010124789301224252963146729919986836171276193030145886388368965112911800052006545160494469730564248937972212621682704178431971047208612497426129784619159753767381809083781755897909636260441619918744724818077460427326735279720402003629596042930613573269964294885930494067712713900220171372134622124631896087580716408296499265402751638800749422980940872015834769574217269388215572322162250946798821520475426304847790441458927090968171680339533659179063194345911152170782463564525933214399167670239253455670101039416623931624835537631309370927693803269622754573109123593282662295351023362813916892813335933238136387581253898713970261788240629835312484596284416278204272793410162293403804098570238808157001425387957772421772274698025225087776241832911784030173828188056316430536465606652285218382307880002570444428350944768990592406771380439538831411006767969716993112278572960485103143572471665864048371553681057992633128218591986604709479698226472413261885702322769118342931125739473943351709109191978125419353965092130722629264037318385498205634124300278099155491929631995637896009538508399258984546787514565172119068512310887009706820630172767595203218474116553972215697278669358937655435088595797555864097363214887377763874852724780431509232878566694710466657117812124012146619012527450220042174021199187167778715915723163619516660966411311187853809649210673323935148503750479060634862575981210715812925925718511945009413299546353766681044105921456876083874619500028230058079254368694656912528337773215537282315077047568918287213033312111412070361264912348615310591124001132852593838348639630698338226036634603792687747003326888337440682297886746874820205320199221976351940616909083082626468513182002193673195526486323936396492128427551363702605196063346261931638056603577255879340182611917192327268276143644946216544056769795857128940757559293816045520760702700877485865436221488266874761929814375097417103115963905064914233478331858464178950105993561874210411307794410143633500171595338131161423485119337753708764656327592185041429661376899921217677153772815718852324228695545505941985948186630549887658691600997788839636041475548261711914260476092434532799900274849441868610185543384187640740094402423451388169518168290656792786405287043625514503850966454329981132316037242053824490336892322944541202532068854882325669255289603448645509308589590549183419135336134162908233193364242386893485669941119786330068357611632020816397476939717385375978559224588944865239376106964373565859119153609325625221896644520201589820517814957836843275306316326051170693542087120148215520096645736456075532734681885126504764992484116314916235388668145248600357539462515799421040685719254933230055582351217140561756014147847380597529190726809749083577021235959069246347670022643910461909239779566414005305505277800816272607350214159531704717905641857313646839409175523884967378720757828531958245607760488531859536003751022205647315502075900279342795250584596242384126829293105411192639668449157405702062678970485012422055243450180935346836939498904910050002340543257516667818034358661768581937353095845317962335039740808667695021570992837171564122570335089348519784690615448001968479585519449074692402115089681588096007788815169128151508667083186135386119419384949537142205319547202086900539452992614779901010912671887795594820577391270715293493437175371266662577835719448689307060281751554062592832528402928305355191519436080754198523454510475304104624004676357834977336914308019857041447983327134266647613569153076965661810236053425401381704897468955880697896889805222538749470177572796657963915439508184208587064774801199860079512826743188162266890519760857543638442628287669819984129772251879724295262098920558698182222946170400763305539843878949820773261772722169706582240768738513155704572834917654943206818776248379475709693525951760096317824335534478154633494442440613234018284219846825494512163341669216022577033066330756730824549969225353101445410866569773432894023192762626294316549386467792871912764847965982309547946804721096408218635111186275620088070083833304492016218513316455925939662324406192414645945685943769092189413456077545518682286191478514534258078739617996083716690934853095820010831983179708883832317560356663566669141159522492418103846073744554474333532904515435515190594526959581998160099398315154401569461516473327985554648998318937853099371002867844295173146196431858990490562032700030916934015228442418682360283974382884829357313427012709447007525546514940838590904436943540396801879121721873216989271809992758165891143445186940266722236309641237532480101471685859886499165508530703794637801362517836941502397663499945803412365915948402897292243799527207376919009305107359402424990761769141608843856233522067881320854665689270029977750999627096164240918201329514959954590196036374243038378951118228421321292852717836662442904397152059842227125831191545455803798874950925457820054042422429721814917198484627997090092028469037355270193933483788930047465786989458066932773223543635158989346593848674021678296735994449838744347564114853709422022028598847561421383104984323708498709081438944377290062787385583773040647584530110466123280959631521604303772130177553754129405716377456035344790753583057931812756900192619772300883485934567052863011193547562740215990171175905544651296435641462353205652659817782254298193923101571703360622469767836421780062085116940750623430172183496006808458515855681193680743902512773161826749262116298619589941611986717185432597602112690981533251694075714162811728118701452424972038346788842414059837644693491967171745911879929779703523245138417157750155680923335243090577511891403846426550487182691696828125291652069106988515574542007778276785458323751511899864064601003388676914840126611993003823933169789881253887987364563961284333219626926315741815088744482791995246637603548587557026070488598603063160877206738797661051388364112026710637541450055089482023997740365905278606773305731371756270603031702698715693793077734148624607557956741638248710371970255213174573882681333866383674667569135618901120757810050816110366899220673590340751502820212337937096605830366830629414147058538718420409052134084447791285899502240625268253100696828100152188069186245611813837699488971614746233615664699679903591242195855829285495494613548874430775376628249846414173816472738422991153183891932670569458644787707793086471586541735557128165549509528938988099890148554829445799232549048641647392459091360045467553170888027264438895264515672898380520698902435420661093409249788168728646181030703840116217235750408511432142647042457334386400962932205840357605052699723092301480902496520745395728222385657745681377318880207001297522278020122682693082957023095164463465625290253378580762363571532541999059584311649637738876876205202501888129940164495400824183931473466448433254487476008407683772705548807073456205548015019691892005956117180652786293227827408303294812595402564375849258009334863775236692950183630853145880276676691565884852624381757585315672970959872096732143709230725572850631605915783846392125044478127497778856933940288320952549392108638175621837954856795239676291951139178204332332343429420949293306413873399801463016177469428044217710232038784816216862004779838763007017058435659133326342704454831291367535732472002756014399013690157795584152618799245215884747377361879478876855814826445887170178651176417781558655703338422911734913244068614782371425815615330462181799974554412889653385245271522661035994254438189564286228789846705385445961945375750881123231558491964879443493077627997243134372259889690413835202819794572234221277861212043517480486007360894299220104758484787810831034402735099965069929483653231416146348736851150418706909270818067510090144874223093534384311118209805270567145673483071579729545880744765917326455429362398434153042485421504097688842729260135846147030814941342986343870671166940943434502645716997761523799146470907742170575767432427786148835264877818013736182905199772360969362590330152828981552180998891771348595320969958503749516658533180552747581030304730145066102799776338473552800461987337471810287590335841150178313362411233423429783715900465171357223713681276564392273861072944833598094274504785032164645524980133319656409841468062621028419963708090645973971382133722406164270051961720995991800086139292672920433104616015622447816028445979538552137231155131811049886216617545891063776675012633990680019508008650181012704357857812381378005810037542256042222186838823153894453269070227406767417708044095143340358736247891351521674068739888547516957959368398262124870525685371253984152313763784596267479518404926315428551941504539030679874908494930513306926940321090037723763187543990868412038208961120746043584433303461105612373495770272691161548880492514538608211000847734516213765491830109811890625446370166123285491311764665256589187306793253602276977678032515008464865993223036577909218705227393005171206414950464313948862559810234473931428226228414531554026363662811209871763553184747640547058266556611390071970150618775961828154720550480678422219020372991638089692525562772845452846540855336294823683835788000312499314937610202544122883607004638273339660802221839770641494521861474923007468997569301084459592066305409891038938946824982864540418965062198466744126628512575702142854079454435530648312702884602692389005460174854749193610011213002260940654903160843462501048915780221080673370655596178263921269831322297013964812402402054808518493067831590897922392598916290659544146061061450232171231593050013669521145820346745351975433119438973624647011530562198646419662245907145497742203000181810420681679124447094077874685702067338517445099564844271617167921608025876024891123500901716495368709745617108821161288302412768949127922131092415574483575738157331298767208750829684799977861024783874171812014053983132180998213127974444426089594951507203670165783003584804244141579584059397886515581758312057919355806223377289643902222181707468227248016470116817523436115761784295409131356184803932781449186266534758280743441701227370233714681251221765923720578244503651924306140836221234311738275559823927979567804930864423978150573950093739798849290856316109753628115531892172840995421315565696397085797693376763520980107501588715510980330535681827657961222253735070286075316710448419785404285301932414788711996808734539704651256945731587935214742425187630303619317923615980168440352922994509377043251544204029247763899540063634229142148690039150053378392767211569144847736935786184732365574677330718773311719147548602656382449910810982122030166550894741120857006274844009624298119893913568961343930956197963043518726981280863664675238814645137224397664711368663595316223780029207701064962893972475733575685634604157048149255833090952369743260526586414324568373061936706908600779962213833388264198402187314703492289609048385203231662687927406086537550492284712471828980184026454972380079148741233920217325330013693468077991370631938329536489106626012154738823057782389749137306537888578750479855098982446227086478074361124262089700327749808335348418815935017889138611506580741183243576965235501019974825985559850225908068447352014556889237906574100721445319224743585787245296594991968262394424870474570337343232995787826864714476475608159000558623800436943798583455237441833221896292309100060237280616682276353633874143062634112601844679908555039471544190933320514986243121922219181554789118952199099965594975675548830694761047213624817532882359376217102388424860431132830456547240393991053413504134626000442763219671740914258451263548850685933523556730971099529389146896761503426476442382871865087787550188172199243311803531380652190176787795831645509598543322540248056477272276961580874966487650241581405397401991832186648087530834482849213645332058381032930577042033599082951902431812455932853502764873595643670598321785887202599995338762306397024654463273138988693477635523046503490621021854567076332062063123804119298977018853515593144995669839104089231178582672455619936033664743888069181775986693946230329384223981772646388786960505660262811174663611210152293648820922258462814090765242870084130086194039478238111534096938765563895933694783467291346664629182775337888153020016589856797031751150563182713581103552798369167121142078007660621977981031640834195541732990378886208877274026526857900838262121971879622704914418119045559526181056875388005739636999426275518101425065054930960231489741036645468470614162199669736159293610352110791305015219852334992939706040079531592920389047764772704771419829153563257872681813265260089051315988611410933932881370907150758739957126477261253125644546838412971900789117164485826664570978822570911587052650284862974355691261173013367886434965772761435037010697967728501424183127240543889844104969788696021069432312792796561838722480931192640587161777829089361985566335666260306337793141580236687249783938113420631686756682129883141196400883774558971764262016963965865701789915295700097214419851048821628300095752766837949797859383775123029667964442198432075250850124535613782861906088839298641629459222090334357376070598080438103610266265089915840993074007826590253694848039143681321003968136385785672133974857921388315555549395867821027219257718788325548270414302576827534454860907743870429889101131802687296647701933616607137410349286303728234995596405221773051237909670149308888814987342720474177933051711130676946116109282915330585423910124887399988714807858423410734234499876119306844688393656209667164634952498367821119106068828968855416948421633465900031601794995733039555595511750949392829447732778903733691023220115096924765995387944902598841545944490500476890358105167665400725802651469442450529314637129253497245693763742035290707252007618922009356852733877445215270130249381124450203229522009507801830859928497184168442358477042456229075354311175968475030099580860953322749512564845602863296887883650769761880671288379539490547571403461842952690419685666218983255783840925913453329745947612135136117628987710856683653308465981754529546156073497584692443542896502251087089415211704279778184270511277097567832301495553711652669088473936902480249858313053842970465629882181663534478900940348788166967565740643002580925531179977518058586561873517273395936949978281380506876395490636584802885759691011717498995562787474733868047694725930172402617282015037668613705601880285004711269104132377157759194018113061095187048212336057569776207082707489844189051356947471506256053435247800134839801283191239160523757724519865480997754863677272261077934830378512635154957773184620536239146305687366971386408821778893471987401849087789679374584736251795094947228237119153144993946757543712165728811377507189067496975374368182464611311804107420657614831851516446868059766345459615844232851837824802717504392462447137609411410976946268641022734259062226279619238403728860062827157199878003629832131759822354647019428308485959118869880402239777839762352189871399326286948203773690363767434275426172508580352484193538460158705037383244384826005183610029945068297295591644594131968161680133923369322698124898594143896224701759085564300710741648330028796563742710382436732506342403514745723992964348149134589097675429928932839492716467419793446509662821469032602010871794476980880008382970370982268945080732915887688020197062504938349503005831548398698166145981373219776913162903748263382044583516115386764971702180330182810162172020072054792757945746752128815157551992338934153565812280261418196381963582079627962972875812573373273270153738046461301194239841313297200953595540395639917583470210780795589525751623197505021211235406458745850336479960420506543902272649721328400297152127721680590631453860942634305925444748726980146673858649631720404989250873731003995371298149846606430923821892870214545958935205931826350220984944547207735562114085860428077748033871531203218034473694699278324569035143519196568854155964917993720853793339049638576332880710686438322603301466304717504187892315351711432345182143695322086283650326478019056046288878625595418415564480512882453958290497178271794214141669086828878096449514649218118126073018400954632032081829128165206512997521654387176249449949007341641601962725152840139043464093761338404656673332844187176433009899486297905201824402806395185127724555760188752311506303823714888472894862972867548635582066528661745567617378301017550222473447421692694589015556366385142333840174249753273145439559492454912207893310744361149356116659889762344028329943641487589247145232096511766094468116688164283357834609065331834906953758294216429135363949996600968817734933128802999862466009514040077855195689425062192133007169237038548934685781758713087047515147062099584404722906114223602943284969728830322257327322878623370042896456577951719990636901890086885280852992425045593007750988736416060178430623677819645646208200716408076290407384324127565069342490079777798147405496939908501630188741151645816808835890289539784345942338171720715574101271051872217609929337659683369346281276676779815146947189153419720836603079981012403996249613749319193961391852783807320929134877308171203210803138370211593173361662845638359808115128975994799854093815759838126288612985083798456761303168029236677967637126565649064703843377878469652336719460047501810431272543866150813138730197953994177679775857343800629253552473032713982287655121113106382563839554368047537313754578758184468827094148048983546176211182964599126299269327287231180519686539811984116527018380791411048178722333815085093226243553527537559588754250450457583076854497699215447842399754149039564809811824067476979091883783004177924883127599192165457291382017814951468631751486039349177251328338811293814679569248638442578059067275262836865650546700094236850254709422100875397863934036312534729175630262444506117200829076872329219140083486655709656046606984796616490581095593276049528591000900696050470414308852196417525859491179571646525409040785654891277951589473312808523598612301372676396893883799489809067273302309952625222381923152210547085575588888687534312462231848661023197558801976217473437287753503389681101960610476275856244154819098264850292421443435023016845493300185417703577475789711809720737643988118953321147259940651966584618522244798045979608646691771926174043717757110490369735187048771005709350406492516321241173772965799765558919340596434961703283196187144484083073060971768401553821922849994981860819993284319598866622581707524010644262451585875853296307316714073563181469077660222738783052425084593895783739278943712387746593725651838710547623477081469337174233359614438640553099405424122407543795542362879573385663806295989376537255972309230724781534973071892579234192836972133600555811897711412418157317976630877063040974468217709995639801355945803399509679840626563392413355701763015101773070505050890883962153064218612812241769968989956053894395955788654350915880772215182131722060738098052780459471217164151502146432220072193906836708744846387432915278474520868205906998792387904175274979159169714867609164694340545274771547756233232451414629780452359359083465231581519803044205943459778551333260252761572402677149674643420658819917192723315751961139099242321091170377568245387123407013699732888885909819406689950531000483367458584550913474823087260010241826486357062580423528337798619166198614387988818577030836465308822036553669483693140316226980556046658992625535543500965813110240836935279346619804651068994889160220640041591299222860984893611612260036687676755790483888742798526253633602311090023958992770339953553267453392551817570150212334331585055970341516195727025041251216793387667012846812537413725589085288888162737096234498525873781568549041121368410898522066202889369972627358488926082297316849153530681808672674436132692032693150198201304617437851103990084999844890040299952583965355737542786401932003610354094689386570715286320798543273817119778127264937241831049935038499596080560471680677033776254881424937318105807553183458886953331142819643715942578007336351856072280878390898180712154636879853048143122537440608501013086689181487992251671768999245308182261817336164946363990849433071953117366875109029407683126082847663487736044332454487165037327381001509221748167968970996761412553630101717782360790795575631722249757825771010287843536501660441421457853379571121025237000987151389758577296908366858702339107449947297612621370708196009820403071000618974497321932329828840771246439664191290816578420092960715783951342588581713811224257214415909937084400850822206388454466309712721491379365478242857711230627050088904440171015626169368760947045246412548540790680921832280451510747502548453790138254926916861837107442420520479991042160678097375514647673254932670811395421493337884786316172756485455977624099176751492215228544106389378007071061606042732433716819431286069085952317128633392957816332638498574684367547592393085455305370676583720486896736862740159502829480359922676808793961827877793159888383409850200950548737145420585903509275670203099985247427134853288830786517658666007526412766403120054787519665897804416926264105457293215937559229042380146938866746305261081510741122298910591404660038728785837382343956272380295724564551455105302708903952767651005334978593286157787936629277399713307073391351805795088871254450049303227130035524368886435723866532792979087354895523487561719843988281742094090383393807401898197647450628076252829656177007390433355337569140453821610874984220997754332313454083369265844970265220677348875840349502878121681479755940086121632089815257011673088288727773605673752053397166188232608273907243463217893948105139584632798571560355186544608672596108455659181865600962536117523429786885640837849261864086642956307658701231523505965610019549544217790053732888241908297563424447545999134848727902308050673417354168338573042999540468927299056598730197934011651734574907017033321185483629115747910801313031937376337905869414074534483498631533284819806370536443810424569334380768074513713348065519714453328353729996493390334319833621204249968836061537038370993772690709711717942679596764217786756489487397368129216947792824446834203081906357548990689669307101154237979612854300126351889697716211265840510003639366710749339774975827569580853852847317922318876831435639910209838124381191821898899917794205154956393701412219297804275225221998319858005190254515188744160242864396115866805093669249865242160387753565661208288423078388164520131116739090405933204307882206863015521622563429815152021294625272752688556715981431172869172141521148981860643496424078956390091561512776695940367772590670544952862218180782491299290103830969444345273959559185984584685828115311909803215820323409482827558577582724052869963543390772856033814801458207601372521961085929827764655197551976651318880935095306146038312440703844393145338264014970735652451529461421881841408308961769323749453874181365652115164802850955890329798840522477075653791402285678311485168020125797023128770091741497568689321438526921277668850032882172546102952037011897647902773824191301153133250177089370445666697160648251976912715818864386807864408784729367872652776602702393989603566721351889602949494642030042576070592499607614335415369194375261397199129441117657551692772448631025917979559952973789039480416240022435374554187496779588006249050312380484555127250683998010329710387748504512451405123265039589266283375205117487147800325824029498359238032214591035995887268822419483234065441229654318517802627240427921912860028268013118060083364574381178883397767939808102811381838219866196806935505076771235758887660224490356635547831948169157693938968643815863689679947368813744712168923716319925833197809208869230083900802817545309736063761780428692857470678481423197536030253076243087479006403045441904772649939215078386255746359216004163976048195614887495252514323757579162246438861632673171887779181491625347667515254585667758077798512166866356794785445007920943434705262929935524479549276910802938653681136399608494179231135014514440643784091318729099761799884260994949089199904025976191804355513196208248851997285234930990081439825656434663506934712061596329732171426607716721952630546136792562432549252115273195046419645851073372157820209183411733084153009333113719272834219348470625605112666056899598836896783852703003972038019683575273146655069562254637655927072796074900822380281102144827235924495747144340987822585245915880130275326845013329778080342518177414538961952687592245809595662275945114011560365361225250756729556218068543161231746195955226241137908600439092972980922430176904764729251175547483126337828771478814162064077642236810327422138793418283665955947649630951118636405791407035568012458954657310553130920879759668064544773105254826428351030070776851828024633982753303270140967687244280965727461614425535129892189214908324968422841072883553236276196837880483688269188170310658180126951683909459530849050682433886814495593990357144835763363907146437786540157968754562486235097617266659850592051073791096505409633689331536100879158016028902332297687431842300758801640395691697438879548726716467510159880192345921552863823671266543612452519177196810645757788158648481629584128681760005418020146214202410979438439425406887787912760745757020112486992965103702738965263134569746266671984132244810805269021024270772735659451010991155227509217910888636168086308145432122925100172046107812511187882002915746044965185450494790029053417593026978161985102947936221166416338803941909630458866903168451212697428148944830213987640354569722087425581160084399635675814967762437140641210167037761556946724965355505071920858790613786788110001827189556007421780447446360957789607570547957061509641916338613244033746274226994535271445563193067803272201565232935289935956624845197302709519718180103204423536466281755655935229577581527666729347054147990949163493845852486803543985916952683764130016679647569020683327267873046248256165575050251577877356975071444400378254167201867624889246321353478402593908380339148611477534236473222803261251677558847252045096181739904065993438881949542826139577132535281437402110203405969278724399137148807812733107966656540142685790431667767828051985459080582535696370485161526974932373812432052056438258029323492951490022181814293292018017856791371234223505645383495162154954624650898787143849793798978351019033843405000852443872075797007739708077199190541906563651306134719178247771671782923494624704088607749391040091605043487927303741493433438138843583058153892552804601479235724725249632361390281944820262168181573897093957511227140615106980299365653981269110221247646643611798035901079084478764015911986599247447702100217312097710755664220669202203712006153973039213590712378528512255792228629224481226075070105175043830656467877756740823377452974612976244741681930021993847574957754410208128835491045631229968431319919258077238556948818576223245263843395221020536777920043278124053891160316346518720581000796530756850832295777830466115002663732996802834971771745594688219926062549602088112281137715197044223673975904981651844559949976523589273695892448316808701439502233681883186107131070446806910495574056518805950292293674053380895730047740092267277323756280771114409132652051633617400535876195947461292064122179298486030740302617492290531227375479638944703456909274674892973687419794691936744928262791575445046542315880390645215108574799759467234606956414246801164445993843077022428718700975875540456160924275739584050123091928947148188454065521937621946651897180926709824982111025878526263494893883849336851980294752309932928909805877975743174194468620133070187414173528387176718049960707078292503872767978511616888278005199392832781578652971015750564532928040384107541279353821902072470341673373132807679226339561023040314474604894724961239411604701863547351024811465886124537229081092700099500007316828432123629544897582021313542235219049469363479017095300414577527600207499603105147972525660520254888938960517345814375955877909683352857027978866496446844091848370697289404089685816297460221441107454328542814510572677277156223014008764050382475618158506601096713826396470860247834722439097930661755031101717573247140845262167716927455024224838403173713013844329287594483701282356001922129267517801078757201504372726266342633050994380235471916579423278843848456163239473297766165558494375331369681427650158477765442906502404791762821266004995973226709433371273584250648252705613145267585557497675937341629264473045433328997332788569916801331595820700541483886979031139238255258650273089622610758280619451204894141159272509005181689894744039808867952700505965081407993568936959495526820132724721777493467408107930855057393246330929206129347811333820954168376965626624033381542521985506313984956907431941019094210454529703951125706936619337864510145998296371325949083722761997657643832154912061712401317516764121104753556813446847948888089062948478934178330974941940130071031953050172665343034631286319346871782615662626920478851846534952275875524724901322300053199260950265082165058177893766103112850980044424367150196637634333432597009036008481984905829811004846376372008596456418078482045270491584443369071539861674873046807915303747527454232395450484496700119415455312838677010041792572228439038976717712617314131546050297546407571293485025920849795033006984896554202148904342833535639799396685350419495932533438354526434323794979906752623605914750488589768491796634136630800693788223928022092921122011832981942372134866694347110255667659531401904960441082259610578712210088989631059302330393593202330366959140566980910257868601129132256186131948267672303011532522335170938133096860996312420053635273924000939432353354979906786073438202251902873545027417523802507016398470484605600038276654443058954106489031677678749977168728461635276605159538567435746200163290715048022032070275224311269663166161576242376990529108336557809526638657414867642284865021806737852361983508426389758795456656316638332630890749680855484401803777664596797695363588019324990536479866515383270393964169232251200846184510905843766839648520794316375387953312053806903905414591558947591174999235632437337784788629396091950667110804118460114195570579215703715262909621924041695604103256493912967128070956724453154394016787423564274715375695762918416465408443483146173366162996583666385223693958667739444975394157607169873693727610540345880360021160500752977986709101492409693671678231007270488325368743106183741096139452192337704973939749514611434661615800706515989655042491628018496788542266891462925101516647052514414289836863208263807936274501821238773538964600904690771150384110269982719824771762708865404902846466780281467058158541994397824054824511142951908523737893267934692034140487564473474666128421376935653424115317758445307324826162263539368861406402610708120635294521639910234983875359998171958642622232879339923594705522945436543395810139235449335365719409393511609085564426030377022902646074654195593666463820461444210047470238639699569604291403901538195254440491980939543554506065094175352340366262348085439484808187351808874292600676343364897319602321189164017249825251859165683203187830932655296879323611102887441694707464069624894741745174179975377798347379706757183037642496508333708310559442817603977906255917167036880435524688522075692966010892692625514371138916435804945261091328668749288036003136784109355410357286688220344922182482190808932945418816907540649746766846221336863233103620669895373287217593431859144283549283076686787536431502016303082303683045650187939863003653576374291446074559193915058318298979262262783527534202399884427906385706190502987948313953332319872067938424999534221038685675501263015564701290179793036399216199598629973999403338604475681991448715310798819850737917782594282378427109987389648418372350159663471223712487332593260926342874433017934508204290777008750171361340225197861401371699570859157062168392772876882345263850158432315044582390065036933185249719225507251562242729170626306842794014038668048557340543082500651333924099607201958194235657615081711791527234129169771619178154075153555387883262293978815946952720390520709598007263580884854668046345488393657094343333597850846098422020274411586255313781303640767414297922090013735879055663436053042187081728951399786587283287191814623006129958878420211731024644451888077851896246204503323352526495734064115501891094732256451282820022957047425588449922424954757132046186432718039901344838332066830487235180891648839136846227266610373764268026336981175525050034583625627738028265664500195995349122575623541830371103839626784186450581564656276349299274589464181749170867527227539823882691462252809350366552445775633395029570959891976752781973551162874102082714349832551613468840532119970630281757432557537963572701752756156229294838214001655480739712019153269770447417755777687307726603656960285533666243350179657266010314952961610047414681717522735186663243338922872242426548300594954731624039149706079516355147905591069345710074048819214063286151685147750973948900691851518232185470645196845106151597281077279015581245421295624703280083185852837647460585669698568748903693221911407175153984515246814648605581848497307356105516407594188268955599906294563769981916421434148738407497218272484369839599146012252169928676563143773182555315226086386279759331280639301376709619754002674909443392184643674590791361654586693790820615539323536144263886750630249202420108878395352184063583783573452010332506227912433073504700774280816072926453083604677983116710178291423503546008930401386416517732976994094043692466899454612578915808891289919881805001668238563940725926029023680160145954544865680680136521865618252393081727203986369489980701419111270441345608111838989217000861084436926924221551846195030432300192183555714299430668017948355335129037410222040277750512380052490372782541810420633377844173394074839056131137288406480019428518213365831740528816945876616396553077378912151329076819922948760590618668599202854296866805654701248405155387672855957659601841955349883056361414013651473203879868670190048302044204463624462231086914736560267282261121350943718019322899859657217854242797871073679092243015849099115918131650954979373176246658333714778405980681333769625656097896318640249111999342226481307020176850060767392510216757154409146902769740737890531780999484701269147907001150111033257959692550565471769216375628932983742160839208237766534186671915634858234680917402573256536469662756297156562774224833991791164635691568967665079549849632278315459797223022493598205844845241258290484756247425528696352235962514117436729597712858170381144713981349858107088865567518962756040718139796399838889046575293097744275971500078193016397825682615437211406576888881627478326591538466633715008829891761811031336162310373628972889017112203397430912281095714017842427947892248079232968587924959326642314388228804448531039578326786295469373291856134646263651050272985385461082045239442035779605773886497147096073830695146400557970109729932968417842581127749665892418790576452720894795117264994768550522323662560346584953162773471611546954787096148963563473906908230540520223945440625547799827128766347107463350104580885905167077389701185934533181416158722929703209490292364924993763131399250271267637672258631773669939851550176689777004654062388518310161014505903366642387477121281370095386011774574810702347613249089020349002677594010559897876504975806211175895393891053721752590622241050722044705542341255256164975710422032350354649538822297475649649429518542092198997126487101459197046918825176760014234495292170365978607329885602856097823304765346792829982473055315973470198513581806594142361842977679206598680828421274097374745271273192311395792296271432870720166478279765132133785223980349632772747494832436743606603864733749805877969581196777517856405433235786618311804345853067788674094292245010785298018842864121307135485148837537178955000199467176691672930388763649832422373669410819495391879850084888635412755836512353048631438713713953083436255297220286997205644018812498195346737068412053160776511227794922810778373818773373147978509214234077117212525056025648511802024090019561043232040890391931245114972046494328729857670980876092343129636710510284897344236162239875715120210032616597944907729021578722702857663465210060363567198381324098551663630610154449327154831232860322991356913126679839510747108156840989361293725314807476186815954334798816935439741366422109410103234707411555299507383985231926989979512777246126921064917681414821042345210641562740451158223680523457568557356501629917065113903893469654065154159485861753947867129359681767958309629453742876843888364271378878556315366287557171494693826733631337731131443360283153934044845692334670990400896734621202955360650233092414791574702517209874105322881351009885948529385295100340151394014167769078672737763787745098732727603982088597418527757860947849724468477626793413103289151137748731428588063168569533289090367934317032424318014022729530383175934403373275043284903632623692717800714759412385416870620635669640310769913447595797416629463817454256400596441338533964061565066490640614318901095852949959912728329934593176902651901656899870228317112534369059283190474619904616769006531073282698854280547144808432009665266984758130616315757783956007012506462908249201248909481210786441678446311232371491993950495125970558974836682920620942102388258087870944801093227166184300698100717668808728464186401106195782480957689761483158906331225881153094389196978194362101831528868457804663897062329601785970402596178427104688738960017853959949334016908739249510253093659274655851245446495535689506041831781609327962019081937854573170305814884933336694306873466390775286070446480736434576223193500578486972578593390102129028484061104017740893104431649085155981096292742972092046356125098944661825553833456068252361272460675483583402177728492834470438990418750306798535277905505968581616097817618803701542753378391774962101965331261537050415051809463726414962069564959835426267800505292496665683992377399258021724278037436425407443578583562130944816325343319530605489112366936528221621146386459007859915601627005591845816684701599277349389547256867746966932302939988502285382134868634159313775972417519183672181616167259338168075353017364297090775803954205466966488106374529425958495192346183627008325505976214518107030339335728366353642082914084684445902350725858388004625243814254549176970111749476171936157013408113405837651888052204804881148968557251960171381350186584355078066438564544267117937271498924443342117486240553587814776686886178812067268936233218671004423352210250900773390992385726305508945319230531128142073479944275965733567380337318565619005652203258551710474274781312740486775289476960443035109459217555213899386745859426310792012182763924695166013878773543929425525480786271765650966807931336981010346025590887293738173964194600187507078997586161978902846489621498785385431886537086838269496404058437078871330864045894420655940095685648578687434537687842994990098638258539467503629497182429148852619548195394234565029328382146100380103276866217255873031392793102052949165028650819479902509458162626860012746009973653422972184521869950522347481396591318601777771050448937254031512329596289153034390308930182116388917233693142973664111565621646452676577633726911108660582831611646697856794835843409748499707148463028417812695634654468751153555850074376775735395968590668859533180354485347275802159993085106128558802545354713444144421661792799137507258281278286394585073897359654251950958649521579322024883120136646529489818358563907503106556888544842146245330816030709806513735568611144080765796907749341800549628600116082314050869330673044998641449312014843113106236389155860740819400374824588492997777215971367585352812169347550405131262413000858795270017139566277041363680330147761065683973635921976779391975470190961116337268490570334157038450141979099942521951107350136882996153799648203346238222457391426830079944219098794666806227040366389819127055733982954783540942739758878420389534957677625385589556889190002879241753424303919807808140206186096251501323086463210243644726657754232003377807111042456732611710481454171033120421326972902419975545117377404613667837098978941563332349570923128578846352635084204396025023277407881997472601257219975935650219860628765139182491602038712772955022616416710762177433507269933038789161087228733897194137898781498253841675122077315218551152648595888018832505618605178762445807520904578029458811792194731416491542261105642508840707949773732822030562866348698168451079058420004091559662825338525275290038332178674225607863724587069371632457501616630257224600143581950743245597238710940480658426210825485446938580074233031774977207665935270837187733722616365890173841111758982080016743842753289566264877256103498990838616114357391955095597444195794532094615992732861162693232913876813108968163389437294257963187478717839836061079464885033831360286898769613211308131754212571365133490672628285936455668395723182546631162077622441665141661381831272152706434903649779786882616711140064865463289714963030740178607542691706969249419073747376763029140783718442545765218570339606846138715614851001127655148355551504948957104143816286881556177688664792289836832798310262249537217138287497421428527053078610484166263049291891185084558148940628505145961223064547108002040274906521356236983633807571097061736149089303418530039488545609600030216862650141722991867196114453017547109825398045927889237032384308081455132186631860240842506295253919467236958715912117622856533699642121250136692928711726676418791208641932057687246427732074046650150044257796374737787037777764817931912867746320370553457673502851585749143169681658152369601668101918379485787104889452596951015873989427162330163538673208358436067141609836161016993121720039086067420268704770656632517517844800321258138944312140477337659331419721601999092781732655573101433084194272930269320548585008390949388638760255494263476035874092245025564723175298949850502482665212924308375413053433121318854058324301026970609823977641869950343342758408481164612480376702849490664584122590149553090435493725886686147747509810481922605266718563858031547924414277848390400814215287349540641509232741051231129662169173025840358811947650335131906895294349185499098325273427900928433211139317493944476109504552134802297376020319220440640225389305723723296010721278554742609636554390303990438743828158207819393842063623587242908969568648360379076468506198423134212538951171935551312405848220268223752651351952728142130795019344005101253785389867366887352278729430435188834744782551202552704947576141429964146546510714528456052475106445746040953815715626834066800533817048772404605817651330417270357731887919016578128185722303702470145271422735684361727551797084599309290980731431286137724081660430139283192808710319585249357708003145338877693139901102431003113175775388301761571476235096017271394016529203112673838575511009458668556112182868359075488835445111129508011433943122573173908743625865958146456214102023835966886434911723011971790784696519086633670522760939114793670813949293746358374827800807406137104063404817940763268776993325908125233285882299707928704937752320623125658377748385586246930159159878263773674319262494892872825319708398754100554189961567910122528100800204790798172587010155427612163875510575310544902831779271617110028238459145005626800749674346307670860159854652246498322441398593691545413079057959421264366613500274853044791910820322585810948290598277840692675161495629592126420693277990664782505329512754099570083215845564305700087036714567082478929904979848818690080152510114181829516091849757924049944787400932164016161665116331453075937257045728570735635597350032111638440143321983361794176470183730725035559638363802235728820593024253266654623133981706959155857795490147871799753765866064773370655058967954150093617660273918797162272633914434365264127583840823779840677044944028678949614050094356288863693406750890100182360809163794846266901385030183538677959554930383714276670042130569556554206587815258077926962490468371130643946663253842958276902908112173808184942056164448654861091513901208782681487689900308986014254473873320795747546707969408471500743349592689405841910584082662125895922169013318933730541873518848179717102730536738902043856688009941677164537054970919742404243713448777549762283199060445635533671572489418973021484496908520126277540144493448915014968409859059132076889361328582213109629065341212679797984995869646017414560833536020522452206208883911014578463206658643865560254491604731427432265692276552499400097702000368963475816972318126975204185409415617007681228613462665741607573357138203670916005419413539979594331797556763668456812499466036256528551326600969370694946322253376850612353580246065031888269084319115298188361182516829089787487381386600650987277845687710546720830164687697698005214385093700193653585226338724944546824275401850499237843727375336227995367121726164036210480340612536607834302778371112655744604825456334324660493900676928365437003458790623356296538795566372928773567673906601297860088288302413565800746705282618443240608878944645442857749337610559974788827696699272126977099370343223304387594783705408870673746640890532270413957696063458157793422850315414498320283752058018701267008271366583466012090259919990953405453279866756960860625054520006482817979323363020783425992899394802040555337581637307896733977858662900266633367365809074773588945230473352738364907794944664582630533830747940222282512583216794987387277078581379520068097158600204079833628076350736622466885512566341623831841455317777383376474608245718127080591731408121044599947298700448505682325020787893594155368397184660431103992395660778918306331986080528636222115823251266952280518775212773467091097397759085695091546219463921981430204353645301044279759394120541099041434675232608741907104708434642858700126106397532005541328970340094721430225254426627401969657296507238002045836453895809326142438239647858105627208391534848480437819166286280630976977945602359015449365632038061550440899862053200766166564839617061501993038903570712192605536822171647029039639344694906404083455138010180448570545779354878637024958779641929071180444688731034097779601095527210319539532654086564488380098772197272161006839821333510010900800721826413629327665948563831796214281152259851972386067257824267219075555181667930673589503438651299127667902165065341444134470551815835112134732901625777977504101991951489026047330124777568754409697573509766587402631827907008131297891561574802749371456527933711006572198016799907067668123628031197931287375136353381956667919215071008162027037060643647543018903996361900060671316889841001083562054542212205054268283049919917704151061676151160719937553214464300311349061267306976033694791910612694863288693751496971843245573448292704488785643238011543626752517454416698143238174771064646372020213286331644616378374482199685148435742896630255793615051308108584553812013162446065720815869704180687086873165493213058293415244169082967051973250417228660933910650943356072736631121976187592138395906889726792743506450416332002448339889776243127759387208028227158855683274277342924259306473266000508942150225549599190979328424851588664766610516897731551010816014341137827335503847151679136592716313350672816706382032083629844870873429111843352572555302955987882501530940332011612011475924378540947574738136668127137338993124123211694986793217016885917838303271048613621857047267490212679539756627121940383753597967587679550757705893909182727203256970229683826753382149281550446380075066223560173240548867498109868706321193054328465419366752094938220932182672189203858327895564216829019451723799038592289669431419865370819113218016848592100055365514261863201412621025622450934001368600836091247004688497739461043734549033869570938527924401850436882717758050884584608125896342737098586202839090029535568647811830560174769102653119938377399664594112401918434465497115306377578734229276538681044181411817518810409480168867764826382615345274676080344415765969239350161423719774934699492200390675265875679380782334173236272165955941358101289112561588364421709595192664414440157855680397600338827494085165464621259786376140060131788725982673557876890628256064229950466064260612826270951298367422241376840312993961003943741615138235580675667962516891593044529310767765423862583060536511157592679112525960184697805016635625220177091572232124934022913243395589780859743956226247576195891824863667798420108967611377027654526043127806362168555632913574889714766809920042616573969734388188860469617229549555200829077925025824240287830915665686426999950076662780221414471897327563314791673490886748901222649016014267906518607822100306207141765108298457647459659440089519028335897036524244524153987226387443219834341848076571405579103866404930195632037014776129999848655989793402137377807970445123556264480039963159756283544171622117816410885471524455739738401430781675912180716275064511392746977402032824079313398892898429692093010252385698069178028089807499158554476122492759858635757748589597701570031149586509933275789689736875515263594428681317475737444895546219723913786122329034290098677682636736691706455948207143822885446254628027889002784583091897599530195611207791620407509525929179660746515553875592781386046781749586381415662447536098991060109597861481081785981014997028007359146601446213632564979113588356913052734491112469426042308371312034315876333653298356435807972315184722040597951578878307263432459762538079664425432740555597699607527766498240840870993320423043997676790647482771055234785432314650226317172439436659053398689734947075867118484120607368248666231637351702955149185815918144827797975037890210742395228109516646884459296872998627193852690762539225765433125976883164322559219206679057207245042267913512466498273536120429834397565025323780628860338865182924158480162837632039397460705370899149046675359412548724691518005201786547452695098897287998518326025037874852035545178623871428701702697447481544747776272193501122740357088086504021409916993394352218027685823071688625028610316084203874256387026854674504757396613317674468940504478424556853078577187132447532214805263997991138457081637103763825748075667737597996518161813655434334516791471256153100689708717566964245453592725268374446854184130028542335559031744838920445352166331597613826256132734917862833961447769035186569374784767030534463336942167531372712489693513204424206100470184468691027515047087964043180957896695275514867897396013498482857153003402810555909338993343264882297708987217041135926017326710317190566410440294301425912241180885110966489033036532373915932404116659570134971694401870638499246861354466528685158015201545451744505816688882078052373462525823462168442436044840462912234284588607844376904018031000712060976205098225908222569128815543839139658086227619537562275487486911652139380355323850955114910321154014092154605654300289270624855210553650551514936955337346096413484397404208428585858273175265861272389839559765261019329208411050044955288548153785822686724393540991574721220190011761132880466067144908750395732925784355005605126742551808491592248394926483627510786930071874252561781469005898772197977483005468040791202244167123543708990807082202036057397878476656730823224962176795103702006867961474976082424249596978596207366854999326109924543506139039448050791262053645788027657330172944967148805521209278398464237035870992756921661279817007887413483741641836478251304503772046949017638371283437017908475497952941419799291282168425966362197417087533687040562229981965507409486928253824021998437489705376864653746964284024058369944035014486855049052532265247089395513124774643429745588574943489295456951135055510580891843962777753795570644496749327498854973117869876755550816106479863917484624371087576399386535196410359612374237360150926349527115371307695469777969125027842763836025955630277015214247869454361128995219130630588733306501719616999387839673260668517216623600812014615892485355061351847212074183756696731971147481998706321114239376089978375083244927411428468635717991956579340732769207552480988991271896074555403203478240563693437171062802623927435650547313760385126452291587416152170972793235144742264002850931626838016883903542928933062535472335298106793552587166691344672514075641344371173209310681002026050479090691199599166896455285027218783806736330961914741761374123292212825447908285049995572025320356064916095395029510050491720078997740474013076401107570912808201489778922384764818819340583226691857554513994951031655372367463480305121717489414660412603382822669097943246323861906893429531612096013193203913301393946818814337553552825958923588475144549892819231009104850525381684611612385541286172270692462693754693144559500958150741171273674387269221497351872537305471132359046051903939905968477291031163883689230960261763559457076527784384243400090707914715881319982688783513458735534545329172343218689948749238933132600924150398049548663891801234134217820392736602257224054318391392394444095377730370517774639290228286643979187518636103796209356728039440310738858780928845686245241014061910025088170377978856383434891578916214024209969967608487200207826307944569609692177661358787831246215900973856227307815051990273407369903770205790127485357419990824649594645544473025574952363275007152344689273017476877020849578037337129607653927031869923430824077633688896280655735579849180436463444655946753550843978714701447025628184739305304849687845840822138118936398170035236380197690992045654751688173636768842725990474948865298692105584912013828720383718908384070442248346701974194390887497840482043428602349452190294041775063703832722085002287932855848623471554585387765980596640011203394182493037704805333780418330623204506857952288115781832224519676178430358741091290444230235911000460860053256371050212720487064687888692110084202136730195259369865565951076980399067472204924612192580198390017529622146600378250516836277600673706380776775723266745832103603710897897484749151784399046307677766983050262010964892422154926327437646165098282166578450096787002411071678146476546602987482393004196884305884279139484900775551491464102468998469758153797689019492452821810336828941719978258795671462464284511177871661003871147884102146771425383005775628138952419193931339536914527404289204533981898624361843627765339717879166014309022932809524709416958129411064830452476217396901763238176547536370313209068247687873611757049758176818708904418469972287331799677263464430856508950145452034828465559346615467729219176635346742630853315573934649922334380169672701014362835526302057357178280866942437510984929481718889111413732421575242352776967356393632296435796663461674603403345728824751521550343789652879025928345024881319919663659556525223474639993594888312079421478297312435521803504110389951661147750856924402928285835228793730290228062933655864320071059581508075872519151822558769514526710966769037426222134331284941194993827336013130903968801109816180616444764395357230123584722809030091435925822064823253590503791099465188521086465231006126430837995613585718176802392038858326198168381827010618958923192535041912412850317349857526163172961806742351186782738263059341481328567909146191383668387361399272436507800467438440645841459715846467702889911396815691483754764143631797153345589640574177500896516958588319909435223544129674033536984306978033919151161614544830879552431774038691908315652614099460576781974614911537028351958810694285012893301070940155086618331541703708834712481422512397955230462390907425655549530477388467798926123945273155719257590516578292304372256011250409551819876960841286342840145889061949242599758599130628217187979512084734215932565161515984073191360405902698910873081534419419224187180938398326701401249641135072426521143290210519167859249571472545147448113744648361770795294939070402915276591924025366237707458338779595865856080545326383548904126161793088630433320178848336765020878625169763170826303652385872597366768622549350969771405668093807907272037651865451163608614957011416519280169531238437135643826014317548779340997034129561705051015537150691389212883456838406325921978562314890726358033960630035445196412451787270267012522199506865186488661555087396872433906792171297737348443409136855662683260599122898102509527473659255690821178762591997040199934925362940370175074160037659804333933644524168234728167210162792398684970194888492934516047435179248885936721304622930126990497185785388630039521692870329529691210274815343517812688305496536785381436566274489301163657249839662329737131194013299286151985509545805322108307395504977352769703421996388056783654746466883270499893202532968696067099664993808313174737529082615812478100828742170172754599972775114253468789768260558306916713080708984101249209285156637808160573622453233728192644704141938945206036998902312736997407325263721620712108710626785904311347309004874205135679775689172651780581096718694549494135315257155966946551390899133115767274139140721167966796602308988481565947203756713755102733456874662837882739642084219596465541719135841756272597083982450804847968680763752885966786610610970815613016963456024281536082259491195479933882868445667115597240215907258137414979910909401411924999524734766826803845213653899736752407389873173944591356106636689809960900601954666133848079486299645700729945035987061719877804849526104745511555875617227920770275957404965575550431988590357590688905460020796621681649556695516429037849836912789454721921660745611645101660818305666336266539382459392508018915945775088430963254637177442255120751674351705233510731186078998249545232487371302047668122522667135770970954125299683035648741392646575398590537391689509900241068128344506204658434869738051462486321210586583531409592843379416452804844545841810355006530482498048021741865847076776530231611458700081397433314869429613648188758942249034164284620106080175395800552535659014224121456084598291776968744587136904646548910912581943250284559167703734264052864705676882261942109826166301509548362444335255991069093211998757950309737433644110526960337506249614779209514237735413237355270493606881446131057554838444777287836571348989142015197156774437122071046110487306615813688035814998293894077710487225783915119940562657334482776028793157336776405827283855662151126121631369878250917036843263095315824822171574633187837269381741289578833970657700455377028878142720074324633013426548489741445707251623653663317789637366548218764393501754838088424229015582707923861209538877667958559147640817157688733303510012721142287104334478477724003981064806025432029195173789842289736875549367558397130144333299084229913636883451308967298189406944115117171897260901548677398562431341507868940964674719054622550240602183321876566230148947360176421932747455278801986837280641937983169377409346752287648010053095749007257029419724747957488039773141127051621653341345886148870470120948169288935832639931757094570864978645204424362176718152634444073365188813185597986456844438509611279575080078930483349356203583562045593765591199621586853280577461072753878916625628303016371662548139933357294223955740562714028910171575928987937669338017601547217763470631882495027442182990064830615703889051648607627338319917122335250508611329519987545464041610093597913057910870899180912921890316084759762725192321185460997778957569958556669403504928892372607474235763611682958544216720557655994380885485763663147226704463486462909538731993793084236375628397841763179697297702047422554026756243245271249367063125690717040099387075598890484780559071656447041921707178046023031999095685300902890770458952597638724680144082028653837215928058622208990192864359575373130042085466687789318295675000799493897978697527011613204255101580568659070869225036326922668363430903973094183798262686245198213891661648867414431243979248828811116908001689247454746560921086125446859442930169595578671479593548248474192718018821669444254389605324974829226522211285738618007096271466034453265631442393046253553711266520051490819220230738857557601355071534418176177314534085365175124178512409748682771676301179918293868547055577063992821351439934592780636141258718894385062374892378200268631154708101832334253168359570378594754137551385769513944866272459994572914166151454269963590164593816241447416707437479652838882132541168348428138729621645467361644246274474243922157183965483281534540749725948192347619227277865372546076562344783024521285738046944511859470320143566098707659106870736726602893517521888806724915013318489181187478328321351586339152958586254376473845176258039315479867187730524263463196327771968384368788258681288264595597484687926962912439907277892895872794569566227406044264040119246269831281302247402725681562382329963898709097888945687647106573122909995358002782474688163888462194636399513132129536875976913575497814812508707838986655162330679142787134323208076947812075585507562063430666287649168877797102356525583584755642572065180574214934499245633160880769322014255525359646002345374565677262398212962484924743097643977465209539216382215651722114108884673844404193509297460142326825277944553720773743693712931783211675443189561074490894791616148609298306716566989020347798463186920872655095117509884880010224756188431152842132482141474147100227074731776543161658522170128235375767785416035490767227980937624211079750976938621654404841426904200413270914389409857075374938460667580878110880487395173344032475492619813650477586062324284595572805248705129797640882503717857836671058412233452917777953039425899228408000064262115964673202941152891640563280122560531516532348064289651585521227931875859167851322057218667430119597052563880840507173621930883059584501007430487562131835563948662506562228071057464395317631740721670901674857588146708142044800645635226079411253490612462209994433255044011484638896866406702278539026549282290803466286999686589429481046726310736948844111869399748207498309652110895845690170321139067527054038449089969809191375137791102187183099162430606471590422045021698219170480127879999361410607752991585214716376720622286600209838788856351746276233178788006683414324083245131327781186821494001032893321428925463418615490826196664044358411538191898968465272090367367751982831550515017674405879540674483643566555683097885513345537386148170490728338780483555945949884881787386745972598285195121701737133635009916479024127382441324467154043026701699717910182018313319987871712905658016885381979554541063910047427448375274018414036729604690342740617977186059801324689867741011495903591025234997380093664486306488012134253264559453462458119205150451782493940617878755768345088372383427385333393433491869967898939905697298145552275665127402972130269234190329828054064165592380117895417775215136502626529673153299147426197022512284046991682862512264704661816406017964654145854430250757875150116073559862161282959607606755077801990743440922434030637812198850224321440570614751268019868773448180991936702894055449152791540919239308019014304111748021141671760680816944927717843339403762057608281674731734447464022777263319810169229923370506627188773188399186732147550783988345123737320391136777815428104366271548873050002457507222721761129200282108688297331753756887487335451233338354947952934395535199205272624458584671868331224760925675258338163758221289725131066282832403127284921254972521950879947055896989925093692530038922486114210466920061146141303209143475444234807365571654543986643239472495973347519612634312851377529373450314477520994257256502441935562325489431116934672532804871044705277754011611392559089761977765660746155414605223097146387695188479496219694680862975399477782994161840041274303869178832069549740100129519967826012805281878781567527514381920444612695433499580920642230374562183032071063499315458121093571162558020877858999048359753856310347402326041564878678735439596166866727662869625735761960629942889444802977352614650020982277088087986554755808651529644026093452477619104305158196006854884661986930967431530598813285185800688452632308944061569777198447281188509793527469527144241457705846712955895265929759215474394157134391853432812840670022178710919935694842029103677227717051973889690989973426685113813932410532935209712643820204298032167099461891489248154914806083557631348106793156333694540648075802417295333779231227005035376446023710862113532033903448151847893645050880177067877381363297274837454886711276173075730183532506451233391077046382097877286219057348416224290891776722273612062888766745335173202346201109620111040686970316899785541840777188929973454337313578857713260511913732202416119024552936813339326961866895655196726349600864608683244382368894316698793151523529243274705261851427906063709311712570474625468171553848366653721764448237139936440056848582137579152193368205565407045563103966832789865777470140171896886454947416802183577938775827634644333533623401556994747704392241485288211337294617151227217246923066948278735729797826834368839631486746199194180659165851393796652457169710352693204456975091011578677419383515294906324397175385415884354499679852375177393322056413639090982600894451506218884599574896318733606841951807531103344888941321890582403129981895661331568404232107821097030563992830748288616675564435375610875467430973011442070592169138169513319695405133465549389779198055903173931561844477113468414740758399766643834222658468465712845791427369992555545423209646374545721579713381352054703929428185611453797136559820710886347201175561174972363902638589317144242395400273223001251485217247307635447906160617812578865555815052519556333903784369359974486390582456672493430070418284299901676906003592511657375374268241614545789422473973381974755823698427001966691667989172996257409276081120219703402331493125244483312525041258589675730381240378193576417481138989569435692994747770728529950891496863553049105313674365428507754792823703665027139558068006018073066217170308489817387622200389972954194820030288874998479470134658501039365923166794598329587577727215944413611919550706961193676353810100369235755164038358112317820651509422942657386367449065536909304637369664616959990611645391535733806412225844270545317887875236330317407191785245108422511069434396639885411041268090382945347495408020826823974834113424635016989580714230210162477889600972916566969597122679631360799630425082987802651210247051714474661294382678418124140619605167918128721387476472457195603270591705678760499157405875370030299741624364738129256239100477804968370814837360390987995374853974115601536845562976281303074304374343908133384730541087402367841121814725043273208672659795156164589561651179230352881668978659816214383429830132684198093637693768069925421512369013663942662515759366880778149148884543772711205420185939183066319997135542509311257553279192213659324182969333764817920400048209203530993554832638726435869595063770348110464606155736109257088570450246850994906096744421271113771233231657099840652375249483164592335073648498532781475343854294876942910617124389205317514608976347486315897011004815747794897140129154614937679788097617507486091686522621289782925231316597103731726742986808584688400825057845195668049380220681351488776228497484634347189449940419449732778368577199050602447976456059054910830197335632825491252413384535929875747142774823318734916509591883943158955570868486220615215987016457068289391682563396734807030887305815635239468527899505008295160998938794450408417080408844670276388915766202887570767409649032402105919399307294400429494967191905962921456124684713520439583476598100733578559783931209467170553868007053556598664865886564361812197458606323335920541495980621585350725440486136307129157802241294332060239730426264857707824636559702788326083693668241506187385647595205095142832404711205910070623117424867759491480085463100556373443468399982156216543147213546973973960784913237698320990053167641789741909040401052083011521773369451706972901888129132352474688140983602117492963529741890538075431197083898126456512829764204727373849178585263163126245337911130114712857997180735268551020026268173146996349030061180194764799107052290276305720094536373307261984668079624849787308204172956749965422010466549049455845371610112088541455357618136405458719323644253520342606339558933177115910853409250646885123890676578543496359842820105702038137765316804902794773631932533871325352961313938348969039708944498212676771902821116928582472711189679231330638722882865487930471368313788577516351995545952605431285230327818777548411075370233944318025532958338928707607468442491788747792087329197275256092064615715202883439270362008290641353595035388234954332825089745055901764416367800003068351159252145742013056001663310740880759684960965324480490042999800806835391387907601342042423082212760878969499050852578084098872714360596319315647376773955243351203363022526517076919911607791825646332351494147490709880195474394062761309716961022120739422350594105921197994454064187752852120609466894907926525806498724715302453134735963781233300631646828391828071719642432253605405335589113102793362548111050299948054101258994116511897657605986099005510194138816434333603981082235591224713223262273048770114268320925263616771191033807375615715196336584310963591732488152704144814301648761266262152417943177868889924811751784264828906226571415831357283323082561915979425302831328793585704853759741370743627275320183275541985064454144760534605117303556094499775205761301000827370124108781267812801760321341396363078705953548539695588400431079706264464405656436606181256171163632404475295058137556938831442404106892977111715915542707770642817900182036630358429863911777167981351011433338735909326747134437155138545550875158739900343004719298622403911587183789637485768044379312984429792440444196306615390865933293963835216409461956123821204963717455942883041988345611682000573745658972621316894837831989749803905253928174273690959355703122971306454620802290025973400506372952719268975068108480801461758856088119190383618748898391089021287893119290691269897876612137847172561430638577584773328002293688866410847321338123215211758853546461761383883757833192638356345167366319781386081523080858414308895208732183124751442031355054242394991622351395656393932288060649108727938732890853646181286814273373825541720956674531444791637118305826297997181115394627487288123836203324500650764361073356368136126547320897720707041867626793743245974769094503729149236959552655139230237339981043322074118948943515034450221281610571724422525148063054618871117582851940718437904098918921415710415723171700685389129320812464791943463624615690998172869133779436098851800798603578420737185327971407208557972814159371971547585561571827463734206775063078534558865873787630098084951896309733498381846884420249433258127906653648084136612371546885985204651605019115950806774157572072931976399515973679291589300284800131659847197008028178505873857133449889882195950041984908825653843718278370789139658965613744773680709601957270250168074935041871261452716332386677513505381980499150858810374903206172153827305897300486188973285365466512090995172077344948290233509993933975619360489978500969898807563511085888028534167997266773109153476190549246068326397840043685507657193422082763250325081449038102582163784578560291217331559587226815417353569240601537780990717853379042736754472618577273237689361427879944308835726484653387107198453314562896474713387701850664831933247806735516779354837134396737263957849447113993825635925236862715605328629122838507127435209159256789674743482029800795182704037607577288295196822862351766040354670337803809157823365566128022799505585521667720866121248800501458448353958977887718990292341494426368339549832276650386875140353365953185771989163951838953096200788090685850152405015683039211103612810244291040782111977756581585469247824332665854246436133422697828310200421977724258714649973429856930404424739092056357392368278704227475323792923377288662493861052735488704719226917877390249466277021587234487296175952560704213126579363797338475543536640181344310391544272538855120811704312196256574714537852615252167284921234674594084848036821975214828004950435550199493498470856650116278011742166620489736447801172989201141188666068305626596680515401441085972274423745193905009566008426647643300621003592872089359141490450298955535802562844905319800212791539349562559006445549045977401346591533532754229692388584568190042122663526356812724332217885470985734554051918933723836944064625176068222442097238491504536468802786831493468882169689110538101450537678197575970912509582123306634397711425912207592127857934567207242328123049994187020838254596176849340181104188320433650209311677349666324353800647113319416560005711451566330495131528616936429481726255066292140034275168425784979767593776525627652855540275428681806517453896210883109620529800342842179853846641347195895917877080750318838564590734660504746991228276746482361085794405177023681194926694987510063349569415054777530236380453192733023604595443501965800049166865778909609168817811328964960266652950945010546382068193311799315652534518213902322776323023271070514749661714209874150864177206885068112606521193723510576608633378997435942827717277278543968341307879895874748489881535707412274312207380000278929761633439146985633253061238692203981821159515339969835519590761017965713449333387411291478927293589136955726122647594704071604640085771135447780726184813237628925260820305281140938523874750108654803329101664833266872791399498827964521105448336890019029785062153150794554711891266386116102268809072583200882754488820255659490071954917024662676622854302657930013421514709648794042710917630891324820667181077345295955249954582396559597677076048471668511873815498576604438098243963694391787258956979059220673054355286618221160627707559988488926721440253484064435349228933654085390041457760076508492469024710241724581161491116106559089109847668182324580965912662027598471173316011581062878709047749359618887238943075220275341048345213581897624630220755534585425032114849322209868976944685262586425731796942274848162736655212794861708147820730650424387208149450630630581896911629030575755322946952109650380610988519407889748589927046348733431116439418329111794007784716310895673714200186606878708435934249982343934914055854428639802179458943955233793185324946944576687177860603955145837621378665904919399722924937896461436368089640691211227742590131293014151750674385016856380076268982332790440443370761825096784317646758945615668548854564548548508724851254615236939371175986404896099962044187717513140033987647861279686184481933353825276724900384071716866088717399848272037017458905912299415980696665042044834548118788289633877907782894893288773182625153926213749432448977571190593582202746484780568186931679619136767818674754074094061372525073585078891030573558130022656856936349723003934513328654870137856231050377713869173633512609214061433045825238933347929311588133703226184688607444843789298383158900685736381273343376888158545858434344340968761463068054995752908133197400647243843632370612564810817733331793042746032632657328312496426753652705071604583826138205259351668588046881945678578723065945329580581205516791199432139909158037071521132119450638874014414224227185724832878651027568204447307611934645282589866512993457182615764141021716056422701298989697611175133385616242869685737467918087964506754252954320009895609884024136210984574574180605235224627598504663865828021725908622471908853301860398659464165173243439913802812329084649796264306721224936374654055477065377819467938928327741094035333805360017042526987686305003165901609492556351698223613237203604106084593345099314112119064838072855560121797553627479126404131230065974126455407716651003335413239102606037176067445346340640144018239748284827858280543561665021595269765899327349591804648867573911922363921750084074817315360294136047132564978706798552500927110223982838825554932736588673208609657908208198428692961702503285289177154205840469933392485134427417042681900501408945681452653697748730638121374064083602310652272480244622600800653872175039579546811094860014044531693174353397676216464173664348175937605934889548945621885475921022711252262516900491542982032601050114866517834151510316221483940775632330405289371731219270777336248412479682391643113715357961699005463436301324377025309776572021511195988638091292931503132467525877444826947428440133403718085732882528398123798709907297837501758540126631995535340424219429736300118617490810592745140375448154073089624339617156796940480315604426602315091783812982319754026949411531320219462576075680291052046117773379712095924922774895862937675996282919951898796191391751537190856344514163799465352062297299875932596595815536539022613537174897453311048693434430513195826833350247465892373956749170820120804773958790308640864737224225045686573637535154728201914517490376790149932927875508342261542361382112367571600594679837748899154822563903997385639852567477598533038846649849049485605450787827398722585554041805914818834800531600431342551971694013783281278195228222176259347603423254902128544724150794066142816608721739989996034298486876148548958267174705350421551369436484027779664006744013715447737770604788257658084126030963019065704892476429651958531902412319256250354422793921431142388357795412919382437292198697610509665031005588988515346506927085022063772161079667806870097085799932771493731785767536034683010921749604994318293590790636746641723249641438843510727521252618220979623516059116219578444345331071125231962218647763822160796572180645192489238724071497288909657507485511702293482004695451952912569200389075996947116501290620413630416433425890157639260866552943990219148150220017432843974530636984622432371261052401271190167038630207665950375382527761907429210058235665637339490868369243879721377077197149178297963469955199322092928815922784435720774196955145077753241292178069261133884472277970926790589516124126334584514607909329700598299296020527892168770244183138889200601999753774958751375582509724488868833432031172757718682641153688979622917846814517534174214054022778763486954401035520193134099338471254473913183213732756608100193782896805660627516300608482846588500830791916392127473256655604332756934562713562231115583202740780832861946489358168835089452094073659379345641512834865267417455757288931990205952209240810314261285679669416505500446732669794920949533890451363345803221624971657684560758020869461076622242204643670509991220919158614824229712058618224498003295167103146013878145456462169208503446740783470293160841217582725393761994320062059449346740626520624129195156340844295140765267141348292788194281806294584766227484806473452036387783517208365482828003671465088484822822381720937569205996836352332202853469761362138202082813267025502411673175795053572125322374944339791130437501516644876589981104701036825741861588630535783954015184072864295114026019030032676328907579615583878880021366107524131566664187732955983304324481019103769075795930238073420231154834990296212399493154331497410667224761957725166480743521423634967793590005816593774854542297084144946460926210933966881338869864494618017215314343654762202639171226581642792362678417881826346733856199864029725740272518789917498970490429202063134781295659694319358744815044244114985273238017617840047815789348825407284415444747357247737760400049865797209514787093822780455582570621975788952559511750724168310588678463066628312208154935129745126989809855639142683442804771197547726486776401651533660150259477721407219382363300537866514790133490974548716253453315258988717659481405457485451786037135976197045871665654487441184242089278778997316042867061537293783363298902655633861111887084523847541485549206369159748974557267867867474697664266423437648354305238743871125201416263417233577444230303401501534661458010307580620748612327199569289263383473952302780795149896932481497972603801757820142374021408724358822920019371245553862449934828383743353374940749396026807603055079601595583273217282869809027321992238360013619323910396907041573748337031035519470121596919235658047707919948566776138955970516851175861721992243941042166536855632622571714079257931708791846323984418916475641184696490198714924935515681546754600451215665013271777491838091215117440651675555594835205143401341872097904262261098839936345709876962600819332291110703317625594106109689910373472263521800428484398587092883839569951574231548856033164240577561782900494245296121148511900852162198431462519799930515711456600322657956376505276286284799862097654594797216003714793324939225948242601981705356113197391352632824273927802134114140546972306353704916556276733621895441192854806292901459956337192378859173738789796389811113883439397984884476055581292198632649508493694534359102191716222171632691286545214428149859837753635175014998409922355890745693701527191428903783757703092373906444018810709656940154149433063835157649062879729413173322900621970847085001533849836953317321023314976613202844791277023238154214299844072835854543313047197650525956756642229279042048075005877470238475382421493138663675704108424079699241519801880571659924500540814256742262041741815074990543692890393410544612362531430915590218636991585782402576469023221147392334666734238886623704436329475957124735905124036171705442219730004395754594667992137864062308633400262091410702516340769637973619479970065561392710134872634016806357660251779990072619753445462201503466705000134548416729745642559735001435129995588136726333684670276057801283854867555909642702338832441304607226082101866407580107223837876448136322273212476402788687470702238517418269589012893408949010171509153675797447741581753812553847541563547989126941861392580842529880910325951387938271703785198429877497012565001962030458388614311197309855221687818740884755383063016684002723924501824097839210221751543152579077744397389330051084574290009853072368786604359790525483244769102010899375793831951077298247953422086598207782185419677093307539676370250458954995829119381176534736164785845672109217593688204696697626804367990636268282740315569236691275224395149208074192744546699112759956945144585229497636797501056409351396080407842047933851831401714967019792803352104439716707917109706781867859230647973737916508011198497169737564131122499984359808206431338245633373212809645003648080717047481719055205959546563573191709745733382361322226224542040028266768193395738933021070472508219202230250101616667886139389523540565387377720592704657457118498957560416708983177178707278440120270832960581195799472938891482239545914607776939798333831321365222944192511855652867959918609241561164198916864792205266436848154439558522900902632038183470325478904123019803360705287788291170492726038096671281144299807976237567220384204790346859434121276961062890588414147852099500551525335615677875261483089818426812016991234968179957557768898054147004590929022893371615074047098893308364313804445803082062726621682726379865305164661977875413403887297433612421457240983385578754841825387506163204621645825288992604835868348933804064226945916554940627201875989074597685735778660094897956729355424744788816825969218241227733425149542218398703784056260912434575980588196017537819136985111035647753492713236327852413148741328623235015781239547372803548532972658925377500428355633045160720652753058273829692595774214819998309920641830747393425859818752201467328403076481998862854643749011229485714398954554678205741360409095005302181021788480157988404788539964777796617497614086757957992757387126013321462156254828778836738308529512251541867674567138941124932210018999354464334651302784545516757508212125235446617686079364514017047887076646314348009572685886310443487426123784805833923768168524097075041099133703074248183457381880099515578177772910168969045591801179069653290194248357558074956063084539164360854122901881228233520021084607288448600619147786420728564068867106229588542697894340456592547034520005564711276617141179881679087388846469103694591721110672136896620233838169628479818695823117019319400336405566191850856927116881276951816781407784641137916796006019744002485627727316516263412650676072257650377560993673616225195478812240463119192484848708447741747405281676655231317804034592438495995870225735264175138718016229743710211688807908700917877634788098220867176285423183541821434545728810299806653168384473033412345146162634350235716451082006608722147065241583067716509565988622849545481661853978888182965483038665592533108547507891446815158736645977941153338908169203551727775606024859116224764867873125166918201764861602010598559248154468852206218922397583631058114242156783681884131715409768561126466769490415591553476096185509071539241872885716416633249607145466201630072818063269820283218687254539822299378983964031811544555706225620538410978302212125487243998240349664170129503700009754611105733102135621587822789149464609376247653508671399005981912147047864841183049797006534393211296009766373066095166170144353409579273909313821379893649385759439942725940157086951980747120229986604720979560223603923290573352741192969349791049298703842603002527666232733487953819138279254974973167809773770027640222684239365923459973183440194562384497791750095984919584888467411318079496660847307800965633517740687143940468714171936366545912336204756927155755536332580992620405466645143077314679880436438361678100008400332132098015558756959277068140932456518698078198255723149956197906230890745917903742771996403652779063984689437355864904428772317907294820228997291364605001141579776851652434943287453354635068809544042374905239155555550103525006714836005357212669837039216898172188766135936075452372540045237431628791848177825875938726913897869235438779163742374385814411425770154177847118018179126666043384090645041081249008181438603900315523694298968604258385071931444555186573751981894733736532654118274412919644994604731128149261694292687522553272422674969703344543605356626289598993979900939771712201804756187053611482790455528232046349604847849479939520396630274886324628228208610085967945772231518316325546814495822713649111708423079970100402193725093675310666762074991694445358440006937365380368022250358555742874964849998932259475627169627325766650183480134840499656492135901336764894982814280281659824675582561197220943492989194383835637552526135229403186144507291243509206190791054277839731710233007502555745752710519235081825300270015736238941553196757880116053499177608740276650583006087225630935003666824265877255196807525702173031043589266434716998333173165019562693090239915448884884868591667931241755336120085834232510173729851291756360755622363562481720286701623636162238757663952807055630896201817322252143597434860972959786949567856817047853540916587876133073855649296415782310366799867249697638012511039496296568340985575097634996826568535705620153338997526621787428257352727206911998746599766724694592714685459860237180070976970488394490919513645989335128527873826204145423780567983501870852566442212434608199839934017924550985769395568742720403367964162070345727987799685751115565980926518300753576770749509732431222998098977300804844390679926900523129804953806444532429468222660491121388031775339956423056812978416103896678768661841308007431318720642773454282989084799009470035472696708536524718721274477616056365239179198423423035374855979176863523763734275481189980010917174936288607805796651662208013993413439786763360531486374824948296726346169333047330804163097980083849692810356857862659702642281801553367582742918790137489424425463698239333470727084810216686119269417885478988503287216357212021809597155900880265797414271556900631645588340533247575500832483912352205777595336347435928717926504120753709964739411411343934841894547286109487327290648634928450180620696999962651216406922232112071462887357925514452173723779706588712288537260861983769518114059501931644131021965666074078603592758194433226404059402757894195280584620565245210816103900779044584235691871447530482056314327196432490399805636413179280749637269674501134073483401053818783489656955516345653412919518323029944005234610046926988721357785723929838437662743250390455582967505556632648282326992515801091072009129479594827515872583188689959919504403317717070060202331395915177687393018623288586763324110200273128573923353781489291628949785644532668403005798485637917317069137104219834279103993305706078307516279539237236138246703142058292612422863626025259201113381914324279792477558941234848903070403471819918844694796295111049428749436512048005995266971708656819870144556455083962972794209487563391581296699444836155221873890954041573302354719882062644182692309550946418685426102415008372235792307791316725825482718354019094192063340304395682319661780781307743449471425324349240530319682630174158896822131365482381404185574530410254271011688366949741970605684251237624712656903970344933540666975695352146592752259421647316561973349868716976686519678488936875983189140756358393837147324276272453101389419275340685225806718929124997904237867118088416906258904815603864353856842357602024402536837456760640524440878673591555309235399484775753592661578971888534517774791429989025423444659344252931673683994043849202158712126578859194115243716611135478392202092423211350517114097029895937994670680586809308085997827528069232008117088792750266477341297599696880214213584442729429258327979545857085737177369015293126230260054164343785347887856783345850834437155106280813527027361317499488492517365121958994219717899985511370355607730212336928362157655296857407475891255127323895078877921390749269007467471978602000412292487162838608263244525645741449953206852405970775227859280230264297657132602282281856265132886251860404619024377905623632794328752103405821386580015047367220757691448341283024182909238382098861249308610346691017378287213578832113812351449224708453815378056339098410088089505353378487016799276211806413884471685674276427702349738262405431886583276042485008322601481169447221864327981226881158385567639577801127587665792389214236105421514268957067962994803090896242793188676374022756147826725061737725113522348789064683424890854285349073257647166601579378348564448996402507186168505440901376358768454164562646944286105046531749975645914181338757678791134637903347841167368405575703922562386024790892225480877037363839267992425996365839957616555712976330386211040166633213942352388107347555758015416237687258975946091596606226789375478975249807692462201483479858102386326617626570996874688404936305950581087486991110101269311793654667054752214729300394605027537812669124417315477427923993174144303636336055974724901730866081263773371964552461871744321603100423978505427938465485362600519339289764786504825366772446339157008575273321972799559373863931092228482321235145808365157858273453613550383204296311699019484741804363140970980480465888908650629927772290802529536249770096440977246669240062132095872972871226609968888990101834052063925513742092287083769753742834004335085229289643866142402743863337563497063445253307870695157985658889618167820812369388832232256204414852786573836963025310435140639376661052755386216945360754900608044006978792697635429832619739156697358375905502254142560039977191121534194577256828067025318881443383406830898059349440149875119537823512026039204282835329050640951221875443502898795024759394385675892820874922285530831492164968808913969543250272033512374974053544695434847265804603211336545283000900661739201062543033562697309160215028050763865365915293743158591003471695780639062999805985783831791732864762944474443958158075924964691300585661697938619075173656698500131127219822748821293517666709102340212763296738520693898977935628110993399292117798210876950334238989094745847214753300168312343165266217528026460715110173818816361694666189516529237624590595987805411846924965370378859587204186433247824479128661880951551784310899564209014710678787689792312480005446724041526686336210188632793195827795607849936409215069675819715408159394026402014648224049800781545400129502012590400174778839998816408994269780564548727498431256782888602421094349210388779099759657680821884512191039703378946229222697669274274669422129427548101680059826969601810901083343185097760125095175875814734107080599608487146205221941822575807693304415413465023840475050472880605080835774960017810182523859740687711468551244307639423956272746171331384663080979745648510778219928777210934296569016792751480719781038597716021708149520608118267919231630374127993212004503075390393594768127799256592593603504977949479921433812807377581612436978169942761369422972678673342517240295946097408322794554185666035646698548164825099321965258420435937021061903086023813101528250325012429555139595018276685258729148268917546218147837109012588039987889772407137569188725063966555139700101027050522347731322940813809760986026627506084960156495722482191983113297331203993773046004844467597792442739916216814087705202724719998517328995692103456181589354803966935295651487214892114319750131617141142521362820234635819785523425403810030583440171340026819014625659663880409663986920086876867153768446404307253259684762825138881005438052195466713437676862158938215591862696120475194418046568207907214090953068663484268106053836654758517254464712262402689661356948113254024559217596822438808947616935653098769402704582286695210442619451550555174989518908325948959181893803090560573784123125433388099877434390664426384395605730019850610166642902665270746677934950798950725997383787440971357815436133160795618328996172414575426657577090748460870645499576756438641641472877109837892287731524045371488831862042730492270881201303752282441525322716137171834288136512657169428167698692289489037805228734199158203406981611876492037474751347068067392825146119565940237965479627106543119178056667119796557198263914313218398296080209950378616633096184077648880527038890667136118588176967167079679079961913431833976956501955346243412230811673838831011735266510554247688362424596975083448907363376291840459599880847348738846923426089645027462940686445180117721670318807222953044879876790369256537448780906626921803783215913480822852060588803925206682530452955035549733330527122440817560103480335974457046751473528705050083969950739758501562521514707452031399741542523551131197587034492150726342356780451398767571662511515216529065954970891111466557892639956876436699129222586358574129498502348439509707822760393839047820117734043956542223520096120029480553551636136076886797717929534325585976258894098354620504253685311272859844328544863788626919872535220058895104829779194277210804674411735787992721741519408609772670657726670478948871919448142153563891214718284336461287738513221675856082696154354745941946409028494006961045032335997166707059814239766264353371808972332350042326534478721965519506020653594276210596325939880168822781402481778661008155729695769248218526287149602389124207958514303366788071407444597374870709845673388819999561232008867649745899335818289685316380827636300323767850440387743082125591531436654949020086176471126849280761942070533435158888579480752601776240593595043599693272245418080248291126051497663045014198363770731658467287497204665815598453945694078505083136239998639171355175615067695819276056226186981552508124486291453222171226113072539449262671781895851929164289154456325828018032534526565559235014784333274853135156472672110885603676829869094878562047658379323058853249694107775510763445272141977189087573507175365911914314102072162944005210831106314845458222979999270911019946684609409237725550746609501464072681976971349339875311481580295942241417207156476956518309822726589002607152972272787544167766165424062491012495997747339882502561633968947924889167223260691347578912029394192291152348371717126657972850156539849577305174764171531516794098041217828806065202003696041163979687634761574694185507123586274307711454353749357675175591337904019203983909413326774285849546058525923509724583236694271679492906700938273796416222925904162126193678289121422225467448345125949730792119476360373776806106881328051081221384453630743012635421568578127015673208050579244000945363537344514265947223230566754127561039705292896336354369824161671325605847436360751190131249296432901417108289642745272901041104169080788985978162103811978401252091952649145772302290617267788371648174794162761094844078453302961030852237132639921077948647764571672200469693102570345630110343445269448292923176556661057152545738069096565896057798801170528866005168191421418887095421978945654460556144096873328526279821940997932572141804544294922420136938489051682816681246828751102983106856238192538601773588023437129958361646531205947327534138484893888544978588756908445608041304793249799668209272916108573275124824603297052826624898241708726164049502223703835795720675619557049222417337140659382113635408702098086398166632031789745274235438084113863828442515945010239029823253694247473557348276972941705960385179657986248460026413872064696486088477672972560555745243980583363409145354647272192640063151273534587388436972602424137963757033390598052159850023987531132374518161997904041731328174354592956253884552103857512988258949742164026836747658548284657911189433241839942969478308832269339154077314790826155250347956889513960529205954648072059068712334276113764011522164791569143933831338631402219214828274975545044578742138430919690457746638704779632708713522842300131953791638093136555582818384254369840720650211333295355159731808938168249061231307510318899967209286508484289518660167730847328224388470785271678468302842223888466127465403346798804201530848275292512931625317623323133046393108167639777317969842816457567203526369533309235481572985722119373528983602721227299192630576442462155314339405653774067678897331995052899103306704943225922574723954984441063152312976842804241956821120618056384732567986714855588472206456193248052139511297067607856637381268199714007355582486070541449573798239051253041567831795816117719121990020258165483334901934298985187176315555970844258880663304687740263874420370917520717537703320070200516725950359500881377124291990668701279405980711809730340455751452199993418248866492636477773977603057584245514951593606775192104567157242580196303809220225594139025145508319583667554746577610841055308542925920328341927327845099370796838031964134941027415564144816091927136231023642787686704289954900313596812041400948580007585791392949570727059424060562729596594801726154856360727789168336184285323708956551415951288864276321335163055525571010974433983925344503229263713274901229388662468448967455641018707802852400146441925792804525236603590604924230998340441031248976181851735573100576212995020799882587828949102891975456527780350787824089419490748352181399837536865264039621540835560033525774665238788583563859800133187499484244262683781327087910207747331727019679282885175319453742878254103098139995135573088918960873867976379645674817195197099002159261267273271195103040748060762673095602951448088738265023631539212448624810514813876772466665659955222628250316701946207849701513054116735034033900600393905180065867164482456857228663847661776768126681008205361861365972968155256906532325242947867748831332706642522070356020818593134036731296784490186132097120526744438725004364046850943283568349179339609256412381804578716625273976485573675738069437811270607312233049562588325452772720557628138491115996970116738119159646299711278895546417227381985848395225774517604939724104897905472371318187737981070630058202862450177648825416270729982515925538189371796469935556488734798750067788340352171119177630429066248121379540200393263297604345378382138693192885115657881475430818472007989951492883156024161369186944951180735180284687927583209704505009930307444736381190394251570379722132749185945592291991063655055108997408939656340175406061249477050394516477810832321892330425912589797663989326177438350697319857783640325284327774465172097321417296865562610916542493970671604599350129887989942479229830581072378557355620137368590573246162282132707399777026841808288734963839538942912664728275646449467571124787847906423453343979006182212879991000260383020616937374651898587834959184081381232612974013227410996386631824297454592270809912832408553899700396956616665235985593194012283002857592704088310909500687871433367821608421784514079884742988239046419526343031247519906780602590850453624804751929981333914796099082105527283738617372866449523299908662331911712711866274802517590842472984545009941099728508228098842628700333068061639951437806173317196171051528643886352522649722946693919215180773077931857562773477181763336927014292234423063852527807659294296138481419390483813008519341032296590440504802996303501235323166952374344933639591141306175064203177326659231369256589965586022378292716686880765128657606217861510084853191343178278252804066650735733837580886978201631607233681332280393817270482053309044344747803614765894566848441537309498505007205989860217336892892289771951246857837266789575705084592669408157759025833549270351140126245250583615922689548839469126179776869508634620391645440372084121855609759851976262770164427612206578944104173590024086150471778783101917298424550420877249035355601818210210697838940120982815337117887215591242970216914203319880837946319625843099396266502083795408919960189983061661272952679849484632379937349251909665540379008119612659670518447365007816114480066366066999583640906047168836441456680503328337459067559665860260335324838660514532293700323918871990778456334517558145168901319524322023724140169091315054879473024199355706226590676098567934891417079917517542448836742967234790995595397833788273315435971583797215168079223543356789948138435351466403738541175823858580096542380482619689600701286051188398822611308980075326293420247773071183637822606029321269664571368500834289120905870528159090876915270029904253817362336694459929541878382929694100733225776677207712337505600120018805747542773539404813212376600329989054216014634617561013525133272674113844858847336582021068466394220904426696046526852741956751256899602603419024607026795314748465623882563799056128245139110815273354624067918769058925029494601477824250320756297804937066183231836675962400381673897071073839170446716803849732796774810726307190603496903777974652897185785358857219634846712934871611400253844403631827186340510132787683937034256062860539961572672502252654012928753855468509703795716223782345024331327812372289218565937864182741167679157822235528949640784362896605136773193803228513278215774020289210953985601566133710590516169199907749015994473194368492346920677946747534058117181195399083095527911142180384310118047997586977023969360247743970441794200096018099732166228999076814764415602109255677929665064247403924624635964747478376495499891914438144014071810263744182098020080792196470202594256453048775991825197532183692006755308329577208489705085950293558322684544315269056686800477166581032087251030035056417692660139620607583659548193002006873364533381295767736210156513022858086794304629227798585908582806810694391824984864559272755710918522059368149915465239363454491464533061788799748731998466796830977655342052735392279344227764776131546158612293041935578941345571663222094331871674331217409583004488323064538212908039394850110100579964013800604657411342733327585283516979269241279414564606775710149486774863671698010244193331122550839870141437550658644175886023918707182324124902820113136281205043010249230585545648931102914758440122155512456236211655834114685804600519313507045133880968169177947580826804146849157498091589041253552512811143974020350531018713444216080517927741346545400962332066092745723412469355659630824230371169400267209305787937927628690010371775650957332742008832980373290607963299212540200533876183550584106594766372350386649745535402547862350500885083213640653149947783804041165440619701274969171993750932641818281832320239891237693782843223665991340724992661619169451299470034467498512385768100204893614341628700824585563245514094581626752013873811779661161506082446779968692768821359729205222439006311034059962636254220987791031408032379260039268149745157210166715774275443872866083988237373023716287920831257219577106406183656425070851536313704655553992186211979709279619835753878429214819302378722484247266338196324913241560864466032932031983836968132509356622384496787391714870746691000323106881732259553498353404895084981504115836755824875405301707232705985199958665031456979143346821612651044120367226464453400642785608585665801181636036998699048139613639142407090947705135888955339899812155228604585883701259364637171171799533384038131243885009812537077393803524825689028263756925626914457654883680709915600373500541409600887051486875075008675330585668307356909024928257642958754549923005316504500559681617040429011874796105936546057221231585510517252703412232454906959975335717744767356418217409942451888258848692929617385766510068131756457331694785573769729308226352146955006962431994660282498119882795586381497496806999229307634797753421697544429499896330648639016012732609305278897925350815998950174672245004133104780353335528397322200866442400835194400059202499272018853759327887674056972279792454078079831591571950783153438389441556876439528716385512219002165569563394400595011899807461269771431769704434519984435913649630993093616374144018017783679323403989768153627637106500144208510168153609656002702746204369704642388197163466470284251727389930366122476566742301029372432390000308715452465912620576390133157668834119504476667339618698091227955766329726588177842470371607843445464340059076074632467041748047335623620641500888545433972702994519412764823605020708089266312224727983124382796665730205306632738785606352803114749527335029021586419041592369523631086496195104930410091197327622622658527078342757731221176120512326954603030235996544946465884506985092196660410521612207997039176202551364551875507805109250389523087838980680395933419135625624892295398865452761404873166566648357069446757525192520284148260945404117513670847851964067734020992819686790435240414774245443916802681910807928608672981257876037204189509663749955856484795303309479987401489675543144282774169906227063852133908847081476789709938151916918539614740433730253960856086278095963937527879215988371811085020121798158646873584047760602426871148653099965791592106973431624571237731423851125986658520995210385814299707421874733270837421189939586500060927883016233624798525429454550001929154330950095175396497605685987121006056544271425148081775193245829752556682736578860061679740769264235969296991535600458425129141247543274565748489917936761661570003032659805474159370545737434263542691455722268236494191326246985376014624786988015155347533299337625163858864400904420043348431917886084709056392572385320196148732383518198193372254755337708581053454285178261607606962104418402131448974422554900657651466232987813679183868007321452011210237901217417325361268555680915248372586912715531055029134652742022085193148084247684493098020972018576080385718544558264170740910711783836640126622480575288514724859369513546011422650946850810572559196395210671976450655720887487216605923005059354957787604440165450100250474413839629083858675949655179056801421282990395947268507243655166016001901853302485701908282601073072786439803586543314861155676217525781924098912187031241816425630122408581123266153743936922400558316409293399316296490283975099322890288717434776482612659836764434666554961593409109543694848268302033363861647380774044286015790357813729504707694421510197018274884946953275379194195972801975019562330617993276442566090536125667652725792460379248608854130128125113530058419920983381977455526954722772085829980515306413423547813199112846847976812153651143553954546593500771715483320462447044393096148302241127250693740048505340425795238685471934868334402970142207712898236514647705634277435773186776681926769816443708164823143056432596845140211074498230499146565520034999189573047481021037178255301615483623979972677326039381001024156597490620845127029998859332518776806727031197668653197451791443032629710800634273911236879403000864484062832736600972912206244239754985300198849587318056640931575157412333767403633788036248873584079560807628876456901285580701887679233778289328090868459584563839911201265510393929176644819940997591981548151978893783558777759701878287985743181624948664382996882427414042147243527985618748335555589615648510637973174482718302740670099176780648081600845811289611476162594226977972011848652592224984299062365073069752618533578925192069217785343761707840454551490311524613116541791626398210252603858144278941988640460020306850769952127850553702902464728743685942556881407553589110999477946692074663009187269910621748314620045260526570715685414248401363242700912953510915950210436708509352418751966527611816002086901245126600116595956934572108637132408634192047872885981600801159890759643202385249015122761578094208326803244844825571714383373243961384804029413301360982894486130429395569710762757745704512016007462190902963960375249551562354647937351028989291370854396645667633743817974141920706316527300412104531886895933399677316385273488267837133872516672119881149913725071627246272850518904272098433192723459321601832744372424792638354432287672314058778173216994964856079951787614178132400161891493476296923798755289014709905153686967849905727315412120747183790302441269060028145942178470268024959640074893725007091917839428185412782667026058898835918296671057643414476314748294531494237565378775926950556801772719067193815885894479936814133824581427797610311250017043354654169606350133080194068546753510512319145916631990292212452348527284419404077384113728789641872158146382395991675422815962162294786690550143533251239062996005395265566315372517548722007869844659571343647692599671668993215759609687881138661016700264309605638811999539705076778832447969047636499475296058576118545343941693768384771912005026959815984967530417679235390249950673278392432093302435443309566016005550628131717271169429694882897611671079843557499399751339465592982866485258961585595497784017883875352095268088317748585497358640636763317842788171370303701884457136456006757736411524158002981339232634275765840359821092602139174499917017169591530228685820058359864956324648996915297587788937929190911786000027841432475634124077647929268423498918278033440690901419925760662782987062106248005344882259967914398847040861388831420465894846630092632273493203114530313429117189994001668095767164150323590160607116833489880613360183945447677211051715429897516772121119982382722064482640913824829323238287914852590633744648567708148613502683651547655029587230499144122100728995887426274564958346752155988892889516160143535212265776036194901202285678005693853478552608536855759779920239690625993963491947722066334089452377170976713665720939288683967676761857793246799287924144792090333580164283615704901048822818641198113679120902240818532397489728531589738392143862031512288751165816141029738887882257178957352996009266523344494690926733936016203013269314084927621233430670763840000374424729179583375868018178808250400805183804375468679230281907042104396690440863393516288914757000478331939336829365968699507405873661197495640140855958304855881370253914393502819651222699466710963524591758325978572622132665132310071588396266370510926048906777912772105441978737563216005144170893481591239918404433786142543320223452762925754683755508703441716437790486447532481517974427695287456746123090091569419410139305910452924680415021740141748252324768222391560479012990826192037450121001901788086177836649602438434913792926848747059989296893804105921282902473069847708313813326143772734028139234675547803489513522933326650332437459255651806870126997797639509651408840430566218182451582559140618844260219685899824223484579126113332003322372983305654481421044914181122256740489599606557861090946332368839117712955384806519247375080112540696629028477647259979633874980704751459853459588891118453388412461446550323275773073244211940365140840762746564757606514917025112817289964891990601260161359800936716886670082554498709895883860119983813616373258294000804378279107552090911805022963774345223567232185584662496011482541785788585105571755488389114720725605122400965498256607731109781585408816332864959549808388240434903405045275026140947742261360003889911107629697161737269551060744401749285381010452456887900267890002768152538867214332831893389136962937464601011038354294188782822405436736085460349529863915676203798436162092954388108468430845030981590124221703866108484615703934473219901317067474369119914384111342681137157205312958801677316050751732214693321500707133122434784483378074776006631019811623881309872395648682786694077118051935870901617131452589667181765026461007164389596643468887064872116769308884578864660283119685002177901531882828655702187706810036180688460341929043738947913894215630956768344453816780045487907785370811255912140228781324110897609188301999157867790625319600639838316791867584807697390032067171413695286933570868326571239150169086956313353060413977889485894549039580434885193621930437761356334949854928100273480695863562721283631394805414347985609978533782023721690594628669304512536394448675750677163062538828581578040590762381358740890485445303394933967679808867781568422339413957688009308867998542681923470924133758656959284030446748171751040155757871858598103732883845512218027275752404350273442003641707504590844798968164629801269414848263707449508412178558994819230580095162710494454812411855717161427148359068060888774964478575397807701444813050696535096899395072201663274190214918321956129043132089054954213614650912592367961908892235580055309665033667341552129370127945100437118875025962978563260780402317660644354264557237619361650395738280419364864632194345073435906336633791680472997263998898745789302822815921797433946899769749605870298423479994557236652470096379042804457183078886805189182464658012405648036904030613086130116641757319515775310386660662945595234892559550920310654941421359019979488490101947421520773659438365537605890770943686676379162946897985964139260505143006773292588523178508432092480965858108008811003637276684993450992711720073382484016557648239834933852399363440294849227210284170718879519072155434790840057356300257502081905893325498023789256066951180477378876561161571450592369119386346589699665240142080861906629063167173680763160064343451422032902160718424649903598535719927311241698468250287214866963581139367662148704740445328291456612926374344384223686254229208623511533627704566442939373389971861009494339348303593482044629676628250573730019486106040641949968019368961130346253874031414793993841557923805226487720661191094476780964280382024279431518100420522571588054540526930793318152478068375241708136053842841385004563919269748195061040812411451732166856003554304383794475786984518603949811653283853144993555922684762235615631943095121544355408558215460740362093509728412343529275958381108879248849098430844466060223606425861701433774784391892302548212567816374150460998680349916464593067357958935367559534206119165148529875546661399801234254521644049337679916322344165503599321115722533694965167016565160519811683566641270766571452909659145265235591198888378072931832040808254178650491428973925200535900339981467515687468685036964738523337523574985905142793895018578439115740866139120169193064125488381233980361321419149802873522402278245975474929702700928918577610934649613873438540279036633044235047312173716072289417233084789373103148058502352757978860843643953087996963643693925592806042974869104222436213688578598744398995542180225041382786619916493640362539520669708316383521063211066336027946875298471039527020071853057041434112643795422776428761336734092669696789300767392150270229734447983623693165684107698539317241027992545021802274550075971194887410457915363044827223424567762919477982975466815150828911492218078728780903338818998637110683854936295834530312059873374287027013268974073092984927357678959474270670732348623331388886980794957653408484355077955235511107493026012474805906147388387657642978107762538494250353428231916368367605140362693664265310503921544233866505293580452943240677290399363395880050239881016889173749083652552428355580061588528024451730213707378202467331700487724309189275331778826062599065650970228993294220148278959745473953596852564531458417240582436785434533433731217556563221668155318124110764422969123657754019534990035672817731457389299488003751181364305685130837599699924952238940837441758653205963769191066257856545998640573741501695857452480914184889792086172261388960544433653157438326737392839546105424728719644888883384267859704533557913670562003919217412314331774488939635606588199152289684386351123784320315509378869656083067145431043858674569783375325141883573153896105312518748887550906015337595660585765550323410087449801916529979428862891492428855789779548690334553918911015014347977244475867972974760453672187803637391028419508409972974734870155720358607199015963517037974609489931526745452013594440409135765145891528516718897140625986665926946870824155552715672791114704958737261572324690527112714376777243927647836049016864820726105892628478954429943872007150677639094119800389748699191264094677751396347155684922837632110727361185510512843311873001103849070929575102189358623360147355504512329542557209318428404979524665469012867257554686041818114214533306835316291602315499058641396956106694311239962006258939298140304469491319348367759649918377163075740661016979496353265546304289845496398703989636210703738948958892772235039243608273731197958634235495983857585466214217351895073589581991869561086193884609662851908209669378839691361079154790728591767442481602767430143686734560409002842817093057796255826694815520739926542659585476048204263839400754599437013993481035198450109309851524594386212753785343387083475159537456476986634400608677743016736587724748727227581342691043511198933336949473647967589856464745261792244981576953526617162137055350049921907299177125280314614636857365382000608106876324673653255468678076998813460351850265425479018293998554209122743309690996551435771540771907563642470755856286821437615211754807674556676052166066533243335145562061311033664131525746149087397083736549219199093052054178723155283603251890267973602720665177487296071824714745318582159819455226585639952432602173466488471929066878517419476515933246133357642564956033469894385889393459123784096010205596491312073411046316352422079416615052989575073278497859629797126323550342923375335517446384520455029043988348080486925654288159334010462210471639049355764186134605071918231303480281741693525743114394830631141720557107919800830610599228638632878993010538816367741550687433003407114535885211915741363796252699021221841484299985144867282310137446768107178116875703290422641630199483682560719580423269070240711985262556105763992753285134024053135242626328754249085983351521479296140079254567131379252075744804395032420731061586075497377973509556971056919186283726824753507211238869053562809822314335057431933025975189381340574822284854421576423714723408692431969480268540914062449285608859253445334317891955507198933760218131376627683634235412760820467950494968682441038673927297032975129567219337289721126204106745493944392457914436325010285576199954706271320838394031184097457636464082516513923652344077070728817814610135987464111228104444269592057658364518525743901102241019968834322327879386303385008942325345956105312020016018391608142470167447184512746956582791091339198788192069621226197866597189257426549078247799405656795568391589712191709200924257010982017244710830844696266925906925186801124419656757229555523185392946400468168946099477481633682335553333062000372531006051751274923363219651293022690360943103967384406564014285710440958065309371886154426046931705410335578234964942966364871149163887840293767188326510317858481633794641382943830642818056339581846843925212549483517511346145331737827937289921377901691644498805148239634625778936066164873210769333911636595201744896552596936992057115190095867982945317420889228955010433039311374877715967162189076948739761217797268515280293334841430091383788563321653630229165993089862019475455841481006832387018891749859620246049290348590594412616720316912265970947926790760378101878381540288309050294614828141142683412236650041096812678347525932300957010810004835639913420362402306726324163543119388659520633287473924475111566704325045472353794648480205005379017833282280699772533716023391166038550349694740963637282372780228151829463441050399912646355089253696373171795963130829991371064129326569744117419806419586360774367719456296745743423436020378619033651686603878956568481241737860695514890883016570476543672349599548701562776492476835256511801667924300663683529869923747597896066925338252438519249690951853748115323282680890475252171440385912701369972832190154021651113609044223245517225265282010534291310888319460626836805257615132090669100702314125941375654794042212680594955010583492627236848904237009107264182924762990595770606653378310522664850292953945833204435809592181760519612598693979418627106310601535536315743400127208689474379758939284662565786829907432133380478417715184674784753413730344958704927879512941271523872828048564821694154707154948929601793618095362077500481243399531185413390414768677596281406966666250604284669256787570277458035679556882138893207052945218726389409401754907856878136520805558230376602257894620201707192705634579604040763144248060639958292996516951873491702128717897185111899480323230776924308563454464882537713883860628095349083085624166443615856132632901255013517057635466334367656939191816512131102129976468850833561207737957931730757335505883916574859021815519032302853224581067743192783984369682726198218886810841090475386600414617359308290278198561748852569941188017803558574317054173461616124873861441082831573402362850361449182013753329139236896808733393254735151946513917188255705151413950648273226247372142326199405578266003501157525022077167315122147638017504976382662267949431332657564854262860103780840369709307427057301308701236379028628713547325726372660339768487819569952498325211086908174497015927259740258432418023435687355728324801443646966908406464667706309536398610066472258880240638380591661589000544200253268806656431095120677085495723772292474593036216478698284062342373351387641036475879925029595089010929453661350427008821450287355738704597703391649188220770507019171012334246414973145263425655951313160592887837802361217973491308687980588276264772266592157937526730933764856318869389027629886339031611814958873316243308170245551931195315911055002099012507016035046707657982750491177868035968912271861312084684657704833165136336504855452186731178531205827109673329436481117632857234064666724699272469094908899162650343175589828819265234144979864726145065499537381223232633748473142702825394982265217987592153756221466182649072561325044669563638187946269977288864244571928914656470403037347016337481441175861775262272556142537139234439361119057256028800111595838810608042320800922302883430041023493627429082251443578093414919639240851470833492435517758387658359482690328839646081734277020503834739318756390419400602782287412979572340729389899117592569625682388476990740153152910615253950005534831451722925625885668240747332839028424363855053226860028000684120134260051863713634198316838948059691220027233813012205343855723225991184759361701114350565984760110772711497325068018683639681064774752184477729671198698481325890203558933755876617491963381715512458099755770757801854030738779945089108151878214243806745275341054249228109075963763355611836032598522491538178401644928515067051798021378952631564802128267352776114357265336260147723060893404291438209937304003890000829196541096596102547221767707275120961963058364996912780088369046251634633217733074706332937480162218174751395244867209929858356027991455520425720665727700621192660074374462357092550205164799333042219234872300356961277145479363143965886615835454350600025925065230073086449389494644889547273463182157226438801015673179146893050729192152602718216563366344929132466344878618378715119179508395141512965173450455774605103724090498968066382697539380061712762509521013722510869044359957739526519083163958703920029147526013245337280238491625954387235156571683668796360817768109950783286927882880137061666289987527730910226108489741982729111805093451706936398987230740998195269261595831765866269896150845342608444179592137630606724850159854137316796476261600532822145463522187861682706387693673642590232958851628462993224741019763526421804401509743489041745743978943585241493461538423436809438057800133357610651254300080029580191325448019488486463637907882970015312251840630666887803540111044594197238118696087464013643344786010264917722716338329990718047510355718645741527440779163722090623416635685027183222100349852040650258310741706118173084507540026347997529567883034603469075375002340416413287045715864657254540972696236409114406793208960612426402805492280140314318747180967789154998280865733324657209816761755431158458517969304619229086666044445043296258018403105057773960457340472685110405861395796329192234528369750325476821546487531347165345130762341655073423940535299347497067377552481943651605648884313307787922842804582089564736294765062848843411367883539298882778606290958045092175310577042869232654073422383011205846700520730839990473006322757836745830404309092359564288403545600828046225186900854739284749578272897212221950169409635939814082281961183666080579046490503466368319285861685782479824547067726347744128699118228856723719754099173953662485124583900366046050620965583618381421340899109171587688560639681765563596478712242042394502817922802450475701067475374439682111558877785540215358631967306685161029599929137619054178795089503650320726667435162184101311750008684501047089720551209625721334412405574749446561999814214737633980108289945902969920074488728933988907851985300187198332508628888779116710781791325978857931152106098791809094316778592389485598724899969138356386842660589003952144429682020242895717920027611131502415353277159236904175325393192158516241086100758804900353873119834419644562813002229572751172794829243858634525895621841664059157585557267158367859461432240789893321424488368051381699739754915202390123599901656336919434755503999340085567876139880227936675748245291595112357378248165303739341817544961602033834032032476807179872531363004318079850722898604811912763794246487923985405056768371429990931541047006069816494789269367242410281161609688205015613907330663226469399849960448378815528549212723018337629288893688001046072019706732767566792799219527328810365026698334191708838108938737737616738642447368552584044264835055739538309214599565869146630891828527988493907108230459708108518098211941462707759280942832151730163830882781240876357781191852229338729216688606823791983089657424408333388118631065638231286709355053386723567006602404938095282983375631151266066715452239171102584576882758072725907409337492831388088819457661745097555431901629761044801905637750574880527889424912900967638167461757790645346588946790912784907972227447463980562057431990462063384198976176350139972723830278654628854276543735384253258347587650472679346902655046825320979778361779935796118254179058895175365507084696124404297656241037421546187975806380377178961638703565289185094787467322200293879988415389197077204102261827864019793220426794002988225031384944823860260956189832677712230656571563267016481340367919734979520827442727375025549199893461167889413326118347564246462519309137764151959464083599255898113861265618921434593793060591344540430196118088039717342743094626890973469019864688613679561069301340048781386615251362971869065408030160403961863590668060317173740804566928289162431478591342033619028892812955751207269376872300420448032249674561010883565732292546396398647409849384579406973288121377662056649675126803329313726639934720097910683924720989134894007939839239405237433583174200518861932573448903322323580466320473435037171983493727560664010285547521079603646345970365917443887379327374232019796926520666161302886337326927667602494483170542145384049208452814084219279213410165396587721103722607282766778880687489788929583992515436908871810846885343440279056919052505695388478569436991350537647661681186200338427553043727519564626322643146339662471056483493405024834334179657207167744657242283084805820201567430450713637910412515317543065927444374054322876835462542983795388561493602209920591494933214093865819620310335588145911954764654361210069221002657211696657731921820276578497036617626557501083305633511058015815983491808064471059222083418742903176097890545370234267287544980367626551623892943002049740836405883296036713562876257060113743412620266258797300547672019359327574721955729578342028272849597938071148234687431719612695791731646062987482227449148018170356033029325164216071321304026826068850884565065986762814695981334108280757675868574147427795643936394932819050742944353515187993891051419128832295638442034051805402747913481566801674431152130171018305582930324485467491846379484096815990561767141916269283711470783039088326100975621985167179950040772933964242604235460735173245888551544522552146741210450804704825944886714980528871803227434667660427790175844454545101614643857353658626660034103651638143394186565969127607334063525639844501576943960627991287406974202129490127221984244293033363890481910985882628127441555703268140319949902338301614603764661252128106433593185377447581676253284564564022166868432162621342147919536134403674137443431106809694431786770407016159716917366286936181003161065133446307026749319847395035017837239950982449606634769805562660609188169951892360826975351567624028860910724790964636394822741683503624903083304518277079960046283232340952234875133681464043297392490155679680430733003672043416800339384529225682925309455968193334410153399081646117754053322064951818950102081202607422780263039171949896796247718542726968399628233470944476052551285760761728312402753401807248786884071158012886262306678193468863482058685652639601524670753852122268800880647850316356968164927480095518792470432505038637227287339174402235593575194844679464019398044056903589429702588891477718135224507127687993941772639465305643294551645300925199292810708102968061015017226909233050394365233152131637500815215148412735742031325082379690297220147493996000407140188068560944941407496891594716760916458907822944585555315406287276228723593068590067271095984327731245409314843942838950554649253652052021098486886116287285459043579727797357844312506068015181060665161781376541469806485098139011045603825732312148520345303629314139076176498475515099691030047839135202031695399495122566134722986970417641967949238962998907704135417898044466590123490864993284288240310752131088092383187358753112195422445698363873511801112180444594129045063222197988137781407083534219807537866650699159142194916574996167435189037888811724341186708829038913924006613917617364421345997486161297228287517994411004348343243382581883734130934613257905119653567169060264221683499603786728085050679463872451257222280981288162892325806741215379494251410902422112150908762667162195117460453510482733531851324001466551957680903276944300960305310806540282183330718623800947646202187914551104718397316123621244201259828164519685562285547663849277626186848681417925221107138562122215739609610183466913273871090185791964726891306861889132318873155323209938304249489265314898172878688596595672342449378614436057934906638756797028946430517616381821023314827001383077992712369305510001601929921394353251101072671261549884660879020597218397121479638180016338355700465108750642348343407163998674443246403352315994461797775408729859611591822506071367999119873340628185461029907224322608599446496574754340087469412495156749306130867040285032357572625329497083684653286792643784137025648994012995263316050984466710147379123678702180924891099587374066849656385077450187287407087790139481214073414334431890207642617468090748533287124156123531875838328359274567444709858853531603748891541678595373976688984720728902428022136781317185493950180907820087842562883077558169292538706925186001417670472308350864359333370344676709851267786184638448718248015858158959441056672630062566866374068764927390384087719576975448711318931190728808854429395260484194199343636435635749050422997378123451960851524283388704860545720356025023015622270576392266711604947200228993401183474872790332916352045153949672919316563523991807900092484201716638347967775804267457711890271561606862184435805225632154736855734862313332018175304340998624963797373858034044710222479609530657553420869531947051089449066371598732534443785648504102112504429904011528488951474195562846499649662237812149293706861101101247208779461122600261601465235909144652892013078843189316625914739630351412414805518137321415696811791647421252645096707936596326694218452880231837910372906775712401005686854554545186157299815923609120477439793346056955246476248567047270177579195673638634259295940689552931351203791527375393428549470874580322733238533608790968051272527000224590111246710066088250149701626124095324439478028873925201918717163730381101717317489798947589830691934518834375997092911692428556206663086191570759720594939407171357902947726619652476257773452556382142831833189723518179136409388739942600222749411295079376415477460984684978619504186105983321308853863625751416129120045567063771288501062299591482201056607643470348025233230011708235700431891553630902135364233825228031987618313044613666488591382419502301607169524081597745309028796990538741237229615984939460428658499681905988583851953990784090285586078261406118268077732877954929761307138882071860383384145337409172697121362343390618144035738806325496889258382481265401237067014966310927496859436835087994246303434136269308644599208868731271175110262652398684593497246094741196327194204181525534204754371475002382178597552764954207987323582926491570408966122669255363846520538905708351655213906706407621380801530805862028333915435234540055327018379457903159627073778231414121578380195631197281950703622832710470675471824988191644511761182223011103895738990319050295949464873549842673768370828990752385424034128132239749350302847996619157539805839813604695037847793122489407731863819422661039329145986730311351096581068455167107753611499702945641442830082558235060188092985723283780601639081711000076306151661446008342318400546128284663186550545635564426729241821648319456356012096140346446466031226984344755381414279134817393274283377723449219201038942672193502964434652804067818452841100178572153425527238977198249969805821531465971866302104058913289616524500364069689767458700833763004732782957037174769635333928958301462495540285434659510877977676888846760042041425223555305663348810325287309566750255440087454186496316788771781282358481747424364339814627909907686993299489441997876032771399697886842071707619508269475121288005977793787499276357834948061356981708539065339403791785924308615467280596741902360506023475980838312720262352138198987787053786789409032729485779451782022891781603348768761123424751736844629098649314539580835768435598524765143553035596069800328815723358809275167902137274684801871017516079710333687615098966410835728160537169016218182174890591157256171337354230908149320526948626918904584031626314893007324860607724367034333213405461876817597199711883731294590209667936006649164283632422003410297147110233044296214395933703632735318014982814479586625265070891540009319973316306952602098209997782388295357232324356462968299795205176275889555728321572073325163991138545780556519932949796926382555377145685182706802163372945768560925407796687242028426375307788827067318707375866985080737287330408210348853049538702585850942155475639239882792341990064499590948231100188954817532320707783019939247685434429050246897915460702904806905121532512586191209009794023730203626031520683463652410100876068003429953561988167852194792936921986865039968331471095010620817142893772799322843946080284792752033393533762717684657156599760465541118146780513556508991358236895641645053347082565911425822664420898312536462727745678139317954726867003483778442225051865246851342917039669091115133721503516977483918870192316113051782975674888023169376948317840365102272506154113078418033067798403516115609474628881760008988204426841787540396771182393420080512418226397328424716550795111790430424279064669206223087145969444901644773452432790260042182996815292315938538043779925673821710617866445044059218987746983282216319280814882262350499374078860881953324508503293565305687077384551021899759451131762954740320853639844206027578890090573828030690894913871902396234334058017966393446557085282889078393343032088530970953111003981826200915985159432353478360566230525568690776022407854038998047059172968778132091708127831930028254047046370918816477267837175024050447898096492732010493282152407769628497744826609697868847851803632818606819720405971620238802601507808965245819289976177232206699847550531319080903383423869187846383659279194504892938982221497801073025813433700218326252741984747808886571540800461981219773879396644125395520180706513801231680761328490517645132027555202822986741109882206489871426285873591841050075332396903402650871953931473967252323425385810318989626813618729127499991677079456359953789429446562809226962307682934395122406898512707830085553272956453999415522910264546625786128759581503159597926997755267100759448871502077620974860553677314331114892178590035332952917363346085539385581712890286335950908592822514576261151204741448356571415157918148047929186036294402343891888095052659017491971010935860316573219472488254114806696390825088555900876157599567197215209069393113845468747865526566097052007387702914818176834083533593881294360318336991397520751721481706413796858014402249392907347074642073367751466573008457712228523262740295787864898127481403528992906315157268333086762951749603731844415860208259298779054311506790642794079030997440362699706466389568940267997573275797443324756038129555441525877942099238324489172807670092767581330721491158108330800487576395276502682556240541381665922909249202356306656058046313416086007551013301084809907780638084965283364706148323557018440275784994867438480753985404336547136083356808562361117052420177400306810164042707193057988340197578690119105442446005296259491533162287554285641113805521339993041327470375804413732463251753568822955511220943665306032952664821262562072279634350956899853551183088182310850225211271332757333261124849124862228674599990779825011002303684223084656267045508346951595993810052492302807703962896625238849455073748327771445247159745760993530783236208031425202799481031113075785368794850607071487652391553001116816492998676973047738256321396649325863613679393007131307260735848741702473301687086517694123598022366602635001738375462029673614624038408089253496723332821093401714999313214247493301906876254185420419659138637435480450534132806254388763850319732289670431909043437377642330731666162690353585276988595570993279916752023606417019828069299591362374561644887250681697870088753854089175845201044028728646968136270265128740524385258567812813155329752650928751270749564635569707749752276417490356708479269612940559600598508647196913205394366669102268899261431524902491608476114391329494318002047783551716940818772809084136648734074812289838745646514107549030970048596318550253328029790548139613463834994750832359242961337842655897213707754105620974557484293173501839883227987915628070927843344161489074475349540932167642676966051494186445064826702357670692938347070925303671797879933337791660826055766120721845484662054743558989777870379056848543712110999576581161387396590047176207158788894499331203812826744669747215790517346659394805056927303992273688971497748565848586039454221374766146928488326528303562849400170575676864934283287289083410737508362324089300084777374592282959814373256738990318125067236583894891007589105412580152986592261141356510139398257960824343137017816499545925640074385924893457811501585619358683686192378171571752306454862091444080090887778460104014361136074360334945466604572082186734867014364710799769587538110064013836700732943242143874164813869981213256469770563220561042121071673262156683565290289325612863622374313875289676913813198849467172810069105199339160368264661769284062463506202526938281263279128076091078005862493236912853937726630259143676200903145743913907546818782672838020660581809992909374203139094530602494642095768054288741193706823828244341911326697407321801886345201851926272725674752505229113323656806116898035266017806811586887573385022718104183024365382049551144520976440319641260317270620026562030414333485117794290702984640577663097557853089867017432638301723861402709792417326461208189946812817742229909375844416999458709423894623739480026925336043204896334765534139321350907148788477452802849782859549678612006067801127875692173829638232670324344566320140287094469596504171822696789408899797500877876001719294189127908309678701508788664884601048973821565499439698516643855225522177431584939766203274181969481022198802062977660778962407762531790539247151759561966979406318290616790613090724378464143012072545256314080040469485070426207981943345623705017874688853692034345203213188240096030614734306932768269044541047506038020461791493059830799249865868340654065039651171574969550582091493736655414485975792041794868894966943655889300026224169577205108142865406682508967362739286594594201629322993336548497697277834556501927693109190024620541810769759251583828332552691145576700740932088934096826648811036942078292452345485890767352436873687530054519829474761836889964870174174691810609575062600567060536268920748876111474323124205861560536903915024770309474367364165881001414612766697953465081955769817177313828847783173442814672513393990844255978020438488099583526366302249343653332539368113335588665037427035724743790797633796413675937674803921084270572909057939346505972813203747166144560153872905889993585697354226105264323326120164844659833974216401434697801263963439769900714740545150569309879974529769065084936934270588646665511129004488051911957137764150799053046525135627573682507598537431775514511138787913778842894568213471632850131719832843766548078209314281751565231623724297071619687237152522023389573151122632001854856478951161953726734027360627705749001565891748365786708402821467861572658641522404562976903096811770499514438946337301562640603461249605874985462885549563397412774956004791825605501507749841765484523139906813114664988769722123983740013691513471791780541037880126130488787247524225266740779554534132654378942771933846756145258726462831724076660007476141432554888051401207291426982406274106372244252829254593271591739210242477151306135045835076453515827095343116952586437782559662016220628248797893478004561712340112776307387413873798401850497227076410482365797355043375448086638399608784043645981884245324338244254865103384065432478618304486246247960307361625876576087710444007455147397701006907475733888028291890645357106000429828068217861538625011552352505915092538827168943820139222041278279192560550521525395368772929789807694833734340184637695507864272067640873773017976920670304141611502835218808175155992340990392631771549993989272278541641836113054769880561189700542646287157955332433446372052043275803444789452941093193219915666858086688168288539487769173729349067388867767225126158095030377239803530143529484785381173102232580232096608109502655323164439385712659806265893158616338631182852061645553492310674214460314277300007444410288944695640481619090085111380770441513777994681333743273002974793569382552547206272942848428455076379596409116573856979151157882028942657368945258151183697831102984723017722282673240920292464037819638046114565035881423036583242685320041456046797582421440599106734391404005285932134757631359164312772986068548191391896164346529561158080837204755599944097771643624045311936406610105720556845717903509244961574549869640110370385777183175517121522146984854855405016538451924572278026240885831519616880522074100384919430502087934508196080565481499665629815854111307505056287229805040125667560891869939548667406943873796615808717646764873853868114493101363623878186256722354897497057489442745014726922587403779958048282614950801293537106834677815234802244445253214934295702229908016807371709452923345277527280817686522430969331736273099225444631377756557629296289620590359246809390717493338996363002463360698617663702456113444299031901513522536938761664115070342145755433741604159815715265102334462520420261459724176261083000916746567866392982295854555861697763795832523528770993121838723554707033609774050878254940570079285228491459703794832464047815230795592224979729924576839424419570519649721743051787046611455856709906833076001973502399260158964894966589008851960098978293493406544722422594501949771666848401032165960145227477311462901118587064488291905872031370880577628797070649317694886779073462502634968321840519621104831550326718208274402647990568905778829918353097761656751006559086953517052961887548091013112798446910276492158963413988690020158419713655512431006429794968998524457195161371653163167491932090450308233752166572778811655925938383277242333163442036201373267730030896488305327841977248729025206201524447806834095969822238882919441697864870308949427082179949666044334708079097615278234946574883950501715294313444650900387641383164282350091412862952162827680715707869269002484507321207374175348194296302509608163453150820301091794678168136261563867603027816563941628478279820116067479839236075113901513293295717459806884050236712566287120090634121530683492679634115252071229885093132774316841739342283476450335469569353404709332770211931256779078654966998581016159309071878570862774678646649082959091601771641679651146789337371724939315894658904018433020365342665300730822272826535998260447601315719375598018909627652309394366484579187196266936511190796463542197132919912188405197235282275968626527852908811987009771816339727586431714963959365062452232360752630491134091483657444204125863389783062861155417009351907774617153526106425385011034621480247666441114273952489304733470047182326716680574265349573010905651735451197223134575891054615926003039090002074107891584467974473119046190718546179698306803810299184951720641742010549454202279081723086850342653379698646773340956290102513706719309293462208056115933479886804836227491159267027109698534125663508302812101951557965053461146185354729654745272683610535402139241806130727052200046746955506538651438009498698271675649637146013681180909681732794298179010007929721704271575791724243235395825727837776520303035838608106907546007847245072378644371971095795751328351394062035304106447009843048634368202825037186203130655807116599079003622201010413485989814766513560804516553883849562026895436441515081605231357222165083406021376582274685299372295323846401891184295404524524007052449871305391868861239616171686029925813045331978782087653832168895703375472491190823580715101535948553198016364517957426023318475700851008890943644626186247210031596968443549670727429608532204208422094030578371332104064154104774295776640374573136415583562487813135219986840799710292052127914672323266731332332629108979319677192648793291896430218554132618999372829493003815590841117078409461509214250531321182247055507945410060068174025432988216862710789305567334891865767454626882328065145684490452091191433032609496137903373190073538523684032868205443105978255498428657519953903657905786982518324589350662166433704571361022662388925301630159441111523240264925856334834994254933822609024867250684341313903994436376028615005774396128617564039164940880761551123851804597825543143418050438425768953160222858356796170075725173716694481886607606632718206394710112906184900231019523927065585635584093278513006767255553618410429246067366443301771723600887580305191797382018314465301881763108078587870728152796681326339746422154405764389126731407985565279800133430555788492132525498557523701149580874105498659342658184589615482561713840531261313758527756710263304413653395008775750527954800515625866426333627377150291763992792675458419298031829170083896609161820535561242988191052227558380200317711606426262292822841982426804253416135368195380566828174995121111278732559760394219768586069431749286465859244319929677939350056062947517800905142763289149422116102021067066597557773283898864394754066366509724028647742754326988378005218664586825276646236524768148509008486711004224339102312638255975252427316779160695424550899023187214571789266591006958174757090459870247757177143791325765778208671593141899380742020651369792974499025941174441377141259061387522061344996782026938414943532036627401492624781936133166019612172831769127411321697143104002001009282977574538676921359538114034138816446966747325314656555870323305412373996698904349562016270548940465097047863163891061348968373291090186828938465177166948305422756665884152724297791827055867210535675496718749595514317558199347542785521933769304266605969820399394031264188945387886124786670861927383919822597128701490876359922594070965839417467696932897325489382393852230287138464371773265569977073073295606453755075141305330097841662131605510912822890636722944617442787912364349605483332966851219153195159928518669876923133442722499108362708210948089149218089911465446164915481919696636220828000383311150015793951709618019744450578311513886197973087348484469676314677122573364272718282156910729411688879508032913839245654983722884350575784053673855973130326581510001891039637171005787408403839591939010816028673473329510342156818010102338579004832271475013096638455953854576531160904318835573936712762458677577686320370845503815189180877554375898040582576407037033787407406143640556684917803996599203391568972676315055541668281687199352827624400609693594469435754311173799523968715913926880318680833680378100219786679155722359326515715585512555309237575810081063996717598239533530792857020735260336762985247442026081775317654962060240725457730109036668877338721817024087209179640148620907547232413316047104157466440571808093887240915844354701077570243310225640612503114728699235007949303055988241222806434040353573632198728501863094794566895027087670752473051088648072017086031729436424241580506802178417028705889083944652596198987741805919628748853676973204313308040467439247561341390214551849474061438880634330149431117433823338527358145703604710069382933038985946534491315836565778390720638208456513391589837529685720569092059338359555998644951426624991287153927272234405331300978536647568320055632248014720633449992064120722237507977334599891366469965570555423401517651990140425792825392301592367119864403893079466314078521167518300820816405268632818594908277546721017632722708066560898092910917653002295371872976511800182529618432872850340907007035726947102956060744656519824101932268256073910296734654546247927797341748096307944801415804674811372967726724998457184298071323198349896136767566174667466191515325973617453916193990809229294364801702421460388703026745382094725904767900771007142700305038115375817394130595878981764120051335663494933126566956848192017095928716030952682761329118711568246142443088092948330569862036310113863194105604655579436745823937867101422042243799564669273388862069869499900894565664011485385436846141253294521775767794675931475732049535597370352063204760274732407207001996976891841973279704144983137837838738758347678710949561436486099268215878736485898181082287788102753168527169459906081784450988746549428722921578755082228239809327242447791041802891318621796131283994767649262375990992236109067915610976635808312037298969145086249239493282025236648237560581353190238417117959775719430383429380282736476325661104301413714162692551937405729885268674370635870580724857403290866293992019915148188706323142254394986510425783546311426656372001254696673214085491153288044130497669267651470078503646877706130920400917149424327795621558430333868208022638654062998198207396172047930608728255081805544325963945927330866902452249873933603214909385171680360411188958497825700216786342471596623619165060211595433316141037930452547521111894674332427912210895356833787968098407211245552139837575278866487465752630002513729802773284250894936801854646544822318836397086837580852240440449838213475000639003749447422754815880866210322323304367671826203116764654755298241961014811833452706112426055075944769407807104737001080842123767833830373034770902199896246648965468161772822927199537863752548540856599962021280966368589566151373002974944474777305539400948946223499435688037826135393131627466948740426234537939234695994561030397505433483708072494364233645369583325655218891047158602648674501086375428273442139968844728729659626057059210454273219065289233263315457956667628614710641778609889508363036418832335056788738396823126637561094081640396094548528139366808579077540230019740099434110217978290058028959749719201797731661834607312741113227003292827949207234833766998504994914746230009290385798211073541634228427535097103805962422180384543612079353556333130923864255724662306514103960888861954745142468285571007702518330782082823087901387758863719894292114863049648094862399528027945230191832746110044432624489130106981509964894503340007472370013232260607832900492608712321883514486627258389244031247174190047533133237369336412140438191493066991440616606625244025114242633925200289665227285621702357508557910336605876576097484011411883079977999128767141637924125890811464856443444275628638945303630102852737614988002997435368997385287718262913611073359967113044907259480522718958526674619646458820795337552882110925982236922180610848398797880195022436332522217655579496740336133899837828321944114687216991834594779975616453841184578703335959191511446582342766832258590037544851260353096661892185182015556582243941354535122858298187432769380728415225923030426753652595216668903822569161324547341627830290943736696145286310311671694207689462586832600967788392843308828608884903430543851140894818425948880746669956521231152244514357660478221323967226348697526328802857351784268214298527609287007631986007675974951585766787957107104695542741155455707759719386718923958613996515641739548190618356548084899706565312863332619062747122211155137984735620769381270467939060383858812502434789750862445251945769003755193504632644854930067633718304168102916256257475568133037615449860367860907759052441907494137860279229787544254215785788017833064121824722462351894853275053001889881164347825960885241383427297353616899214323277385380048747471273457827805470732529370289581831070967498826653417724403619341380320162952366878199560278207747605293037136909166275715954728242700751438574741567829405745032515581522391644642839881832184181236216776736112601921851070642657942133581852702546882925013795596814809816537438160129918562179170448149478101937913026609274480052118408685853164270899400806135812989632235540732641082947318932285282669259231627464182543924651083054032795883271472998931089677257881319370414964929409079670633247474986955819776453437955429627856476773906143573454329711782589170324711014576214469857809000974435169423235930586787443908981782437018616221272738013626916893785305982181208821506664222740563498419763336030344907617006000434791846538864171742923248665743776360228176343545737556518057771754566524173492458893209919186244020868345331155195528744476397821043075557637849810584050698849080743879246488663880442219696276039470594324721536691377007424890229468307428696730101728296243942658166047733521391150239849857555564520639023555896362621969724307154532776894520971503167137007240056387117066935472782991793505285708671814341407486512195515688175514829347248225476105803708039942458159984992210844611910929357814055718069291303363103353513514820885329419168395307249711877256868446688588311510622910012339101732749223322445495049578042024602287808956796289503449696414417463342719716881271243645395902554672341817699556594584326282186662151718016815788794518398953763942574210647638694665366371568358923350714010171184069616966853991762491846727411312043992640083938773815572855826864431060798772272940484375911663653322179911833424683448004495912262492936017756490727775954246142913750487612072246628237298990104759326638968950980735176956964786140849253643838062470102598282165253793862628017046742500888930471530543042103574387081421728302926429624901298495243914760711012243484300878804022936484204630888056508176031339925072805080855281376960187478683544855608582495899501948056976692673578825796134691284547379883235160013248470129785063305488924070030957347993107944614917006402460658015489607840690552957101440160243169334899831699624072316678226148918994615375086443526018488453781671665377402478964403675410036757106107232996701472289609526935643333124960957197606972470151979337179238673135963718082745483048858929071467219289219776786619427420193093180456232204408936511788185838787655553580112376926306022410099808406340341027349895671006166487029479326483148999309068593704437645511280469020348657500582132888827985508021580159258153213241466663136599551037068800147782722973507447190679953941073681498204256477927297379649171665792587297929326286944290530745505147451008616777792565398982324036998057374576684578249722255974635399969376193187625331974337158309656774379502479005373669046566726223218452755346696190904587379515714016622320904238887701880172615180639699777773975878501448381975036380041494781995190708470410819328135784873834113492862063022442048202296781929431309101497509595937022501540606837903631727491529112054880106692451485476672703554671140760187685963577749057858599263093547941596042364447853257995061145361168079959283554894613817576018071981683615181029457555088991040758706753279435461253022229102949068476835427877136905044732353225982501154021869017933988291879122726414091249339977179163650138542957776285854231046699529478034539034648490712175240984849158197032379666750805250920144962815583929370101555648705974850414690803303266551206378612661307061311609906845577409222333748758653677935198004940917025053627226361707973225418578664469845389807042302826264983228919167995063184601513995352641411086932709944957101295001100124405693894046849570495794539273169315410003676349794583405623648861744135615424641459063633645360963459530419625514287158214205705117949488739638474945485760795388168719949991636736165543612067463154247858317869297469773014406324457144984234043017813088692023985353270125138464574455563075868157762153525099819758215053258666782286102408864512116767026808007649753677289104178862876751643699785049718132937390206679107597299144151428608969663085634574416872154878897935759271017049855694255588987190760320642719504852232176407808241632438978984553829772943405177634742167106586485187083319609786849331524961436153913574600238327007088073009984041519361661912381853339271197546866547186048649358765868535944426644045551619056489326418657478430589894970572067555180743034936550469508861295890648463104434561831953377046669486093962177344621356554379468660942366307573016053796174132140421740585065634911980654021759774849132292296280674337499254139532042885852975727572441594162191292711150218355402670375140105121189023595003771972383989436622725543170044778879235400973494946085579125596824245618395305026089558976313844191289147256303616268442614107082412698308487642967809376478982611126017746592922141084421553832606039433152689005402157067301804466879606864814956002494295440654908140107570015519293616895601351500969447786809997407061306347657732197093371705284018294918564700429145003143196591332514645488052277786612995546024032655826625877929831113941819553343995685183811897753414626450129540302283342703081451389556652691000763091611385561161680962528985721059459066567324143419236617778331680395563620676052360996578595372800838618120126066463999385025214228736689112948717546868372226574214011400023524796935227301896366833695284718135693407161539439457396134265810749386390519518740199434299312871884963720196142682007990253318119203257186950639448431604469474341621774041816793203424559528585750641704759615117545621367285011766955256169253305062939925202487768691498364444420400997308636068189367043185550360788055362028750576546660702679975768380248154904412531689502694844945912837320995479473094371603828446996157173484649020866502481439428624499917079784451901003893087155093339168792572942219748714072763116447931137472337365006702806082011990731724237234794035970329521655845363065647601065448336201998591336037853416598389786785276995195502106631720487014477365100967807624612502458825843942778406775468649490869169639862771953633327427452750700650453283183172306000047426800711434737639835041430662897926550422953910343445598094171072063071001240332052785510247348923994812069615746655826872141036523043633248748085559611627127987648086440361301107537800199041246839028805504728095723712863840211093577166148351577933100092114282441229285888364647239507570563370777089975902774050209295395371364870058321262482570880781078343311448296437453009277455901167828811445641495937243059088126780786871533443855625405847943777237931967402870665690164779845682392586794963750860963775867109611036617692058916729262370773179947304493750626904489128296080957448485972519749658020271787450915515409571661285387143009447157715388623741623667510700978918786351608896238707982591253356764438392411688348100735675621714237581724608872073534301593729166403956904031486793341949770702452671814585804380191157793551576790547717535298709713589881367792926877748959582552829334233017189490317363876075530180910104656736266929724512769852173792176258194937355678825648320882959797420823841869636428711790237410371902395179404460639625353120855697131512700276064097165531500022927473923993201354239486391395699850567254473527329236992045162271453506490678294482693829072893704907924990410506209701453783167825351073659287783379700750916052978454333743784573820549416273116527905501028014107083559236409364452296145239554193509281604627171107776668534288913520627824521358055025365366759455966098134717330168729834855246537208435027795933475492612241558281044868821068692867586757740143979394237830732513471138033982368459294608411464788450286962103266564984905054065846364396017608552048296655226288714408110419463787197273804616466154392223933144860547591498887494286237742507515652765578623818959246248185843894537519218020683451048213686499433625712202688502450430740477278938401199619453014714740855760143559834578225637351172087216804078106855829792550387047030534197531037280306848848993557019161435326324093032806297175580497707403045992687757674326715536675996078952407006554825767497180199931010347177327352047989029224402273341339466503350049128073832368158696705252032848311610910186844070400680313266204783469065092652385749903354689729351990172529509279831598779601607844476928644780970888699163823728136277292583232161515802747790524655130216967274327254407084254836780267145997155761805464503305903729857242744979811468381741849495963523640374985863721978657054723230623011897582824905525750691805408606165399211727752053372662868444646951345308419384579847400607658123318908141765508778724245210547084743260490694591761278330583053668059013080253775693730326228702549979558876913784117716724005315966004845733897354858976391103998651894660164328653318019318293461849013622377031673672501042605448482207959674771752027375220509863827802283865839452883143156621799670790188801603521902849924520233901792119220507486701803499207551920606910735596276769870079243565833466559967795367509424114066585625864742070837661936834764466898022630426049185098448235088506213807056015573136363285728699457231491063553388239968926860617757429116246413325484161362188605925689244807281104815493857854480385138641973918215129333175601701202775115423707453918607466423703121261230288573683814163239248012664891182386307634299513465154798997435428665463885106098582430160971426548111471338337808150475576296591399900203139492488728977593514804417786866285486176614350383101576204883711334260905417470989390220649457275779780962669157822296494369986732093308785853677270239893648487763529518307552794922417640374637388071433587200285078457093831371315754341944746690653890241170323610217697543104925513838712814072787704670775711304999499279210809010767889926691557208426959655540656074003065766405677657310890441668069724095510861043713219344052416779119530953636145162082882901886221526559782536410022480806611965747195972292548539399487360923086293527713297746086869587605490889606760439180158119016105076569884952264229339121674837142000678850329889148167068075178619144563731768649857990624154878460689651660151881263453043560764025946590729340124695388054766733883980408740439836814486379358752840667904520784410259653049499646403308800555407996627556556898773633304550090641686223100388727286792442285347136591331099615569647502332281339799013737747359257519039294023892525400441985012805067390563752182618929720428492433828029109443233924079592314677781671726582772265161714689284853907963525271363596003644636531073115184410722373703069502323066942383907925368805832457378539767350096969497365675621654209349522201989987490161976016914644039613197495006411211187009116119648881342862422732125477093118591008189056885920743433322091125238466294505403912255713271296094143831977849581736413555646234443493444565174725131771432446953567548494874292356284703378858917317429334367580780881899200095294567496313334559673163760801057488017974717603794220856050104920825558258322754519805715805479623624754804764678897883367369023212640635771944535530093653634483105320799259667810756359879314870035265918998879818313131867966184135694267903121515910741133609156165296322917934670938271166965383144847565547848188007886946157361012217481862577335725225039613721364349162011651170456196542137743272105409365431876792569510157576655088150847021910867197304217246213156829651370766964307149962664252716726918590744833035680706584116564892734896607884056786344047288172810696288317440005596752921989844429576040516701271956391406975910610492108986552471132500703842982855709795438086209450344401877225258807968427702853176806411160432195716306235303023352439134739754281132028450259201557497200726681507518827004127597297196735793392220574832076186518857226763578243312412254670619626875868096431465222281049491305875201182589377032985091672277089128128694734478201047065083001546485128037794283430123532285259691533511740651789931555981809270816375667997861526933620138590765421523160288884683359859247020990529087519113064359189252829492605087030616994937335046580572622546851836439091218691794698638415883521932368790745922700646472059611917504694367279921189084354190337356656966278791410044465828242397990482973295508301063211507696656986432907206005535647133494944473496496888722378784623871239520747309509282650985996263124705618104728511108773999193170955642396197160452220467871063733900596050503728252813849478972386644822355301920215010734895905058025389024760407115212659901865699221369436784648599666255453522110179362865115586301573447687714598267567271163957961971105292622276754713086920475013851218858274860330674939264470597253869134311942217156252864432675245923964396282725062727458891330657203242877268582750626283327757219932391697824306364112579416786855819234272515422542989908031723728655953494859322824431064370797073413278237251546712509494027690208137604779619107945715197645159462606322315880699096657564635461759074817458305314942533691843451320691935320532594473089662249652735573952031671504893077424623824748423218022948134054260674269915354809372459048372777357620932063882592118756422721074678307953617656267102434247557861983155504321691213011537722468552207723788866850271875375844633935042887384370975034324976639744372796528257202136138291722698429879080483557095251584267991147852036076130430401704723538427925879520292211680234951987426793490938347283773291182784682643354061213819998383824030289040045869375416599547826099546535407006381798453521390670735903148519171903972388547376294747508216310175764843961633921073475741025318186133805574598567658092590460804268954073423138751255233386342353285696621192544283999310881793806955628994365968477503224990565115196942110240012466710287065776038657029275237784739328027110417591401615420275980599231906923268228018283375874841306560391378289374897794443678715171320596399854264215654646588471025507643792689089131807738439449630111089543981054504704083020503442320838512383047806220458092093983751121041647291279793511698333508140509348001764173015455117044948688938461786242738102722803008562147644034166474342117842488764687009155770109172117432458939617147612435148176791857202307842954235751138124162259539864273845014917181699138772823860187583854452819925525530689673420241914733022400565308165517608867584241980598475686421094245149041101017687205294974061235499682643791875315832845197484232446830493914923885137759192377709341048134017167625233546882401053345066665687117026772819922817791472588337229383014804037694180604534469985984250444537472581289741114546803779926420109225123840205932392429486250294183204189616429172873588565331375476633273474005978675678784512582188345993557720011885879349789312754283489327912137691686476588073776047092530068423946703334486875556249889110691116330251043002308156043159604764712598988138303450923042070937462329035171116034712647617009781662451377650019314911438907667158099521583027154394259210412097743201184261938839170612124129404434135159629493456446600148020611528853404436403900384239975372723355646458137190089928680430059995977374678388919879163589498089603593361356610189534958050330755813111411242242657725873916310031367007371558485295686178746195624804683395761088906169430387438475981547807750171862855339117929355645231475311859316849219503618114842512980615202362224230147802240024778767979605294050185443084470414143456269292296439050540192169879994919692578344597060586641177662661292189775080343182128606776661861044792720860853382139870881240000482639413784195701345211651584836595363421729864114517035520277617496928828225234863649694629374479309719705870922420629812993938043602768172580895639615477624509813065981740933974439867915379729778676789993391141179898757725592829049532214558941601760437112867810554884293578183940960386192208780251484786477131811010131398253834660232091070462864649621867399084108029448450098397631121444603494866253605950618717456179028720822568499003057746369547382544214019961690861610595803649352458953359932039759906447432825883239762702661096590425025318087691661777647036737301751002070325438482091245514516881325780290796130569424662947939237447541216457834479997658436732354950782335425228063904299893401875620534912157733123870342466675615099419701551002079417321939383062351753592157249646408951601516772354555620414681643643564636641727373949980720855259472841187588197811341417308643040498043311587779207077507376339308530047024773918587117218273449629284633398691361623448090054926127385276295844769405019134093057191608745362435029522474627657029496227715440431663465721917901782686901062953350500273468911929442207368793838120043163602928877778908200499193078546900821848937587712342210431501580975581735455480671000203426060062638179666776032930028316063829178891581985067689306808279326440209868779511431878972534924345441818525709684176977553084115123620221174071599027415463728108215244657566328785031947671538852024491360897385294635328919794854728023381618434616699482174271206323401350766296855018209938723948190059104572859501755889672935620876169859648576112969582889982391228855084420070535102584262063008267892557789178895136975405617734487039905793428683124833675190791888935036972618621771862117480551838235193523430840212355120854997676166695451689732396526790962596488148069455319947227846133710016145072327424216205932913368830370767986458837351671791642813630387610294564659658216352642832614816723979666861652582718098817567132136410777123312924967491707431619296708956002847480296043938292751363356956663816897583648633369122373577561744613036863191971484456823847289115515258249500244388766593475865254226225548657889567432449609850746126834206902434947275717442738365171916005172963914851854688828241085856222903456194570967178522267587460123103504651997496778064817344785118455501081279180131585240185403174926395434697894615618877692716178824650644365609575655194942900461420597560781634866405493018907339723600755066458235688877180577365737537429661795308342748150088429889256781419694644344482166579400689391731936745555357541143207998964677574690752409760400474683161234751663473150048158344963726238134870418313005150875212408427275958557031437178892042625764628889431485343327083206196221677656333826660973324677398495034533940445357203021828020859792856177779808022656267381269536847623836461726114420416255773975120457913423712995215710694668535768193838073561840339726581038940464909800776457305760061182685866834292993732172453772834643512542551095577929506054171614650322277746426988164720858829007901506364986912220568887403784869373982953119977526371405370464468205694778137047929827758925888814742533980897759313332698694119671265371983149786704884479924603603821261439104967158452041075362228248909101926858087300674085621228522931152364533477973278502528776558222126389146814333084622176885073463475306399713101760066241802465179978237521565596674215682670515009013811664587725237406589659517798416556383189863732457808324088165575093335296206710312792736243217745502875534785329888683725632397981881506204338976281478690589743836695536553723695730172308652215504155780658543503922003875115988900815810436861182870195296554953246412269991065652871770293434999364726669231155583622486595407137323390591120879415545691172574768721631644135065802488034781282153480313439746338975833244987802086564559877131276728306501505341849118438502549786030084647230203138103759534121117775538567665339408678663728677236181834120003258794199117006649818078445068569058786043844443696102850367893214919941779347628829540393268377687454817839451551443961842903582272423235909948734802583639125951975152313783043426561124731951870660004026674882057571896939741653291687219972963731141051264958510910763407166998505488427103963859048325521116508030322793272512647025830385360557133550173900079632839465365509454092180752217287928521515262130164937341756032536676693804614201910102957956754930277354301420423077699643718745089249386739616203867325622721004175412722861270274329961797045000633826996062310919024865069360618951831435692679384659719174912948823131718152314273213972641434129289447040394136535486828531895661442101902371018687219476208118293273299573015768550528119590969659734347657944147733825336395824243831584262053068097563733822350945298561561313992190952775399446731681686891470326937216367001412247230170555933938689184756867341513080574750068112559936171252887239685563208428895338836082152745347516990602802177329312755505350322035100550899422956527897196675696552329151750568636697560176936341696721472718299169826816148210004102143147599532054188295750964280774643787933979429897153771341558864354003380870200881058679373738269605901144089138058613842702255202570374866222392376969539532644424774982914869025522236544771964791008367109787465826243256587383811051349730983193645821848492995660642430688370939733211166270088185467057923462740498199086367150972353732377640961001878499091231525632347523988464785507771476045725779372410578171456258159314546441247012281024935039953598142946881006570531069602286577374525077111467333490039430206616360396227353263622441947986099773399069233440367645527801093976726325806660002967346776733989996250364993002234000814650304753224873314661846103368931157090642923826527419378761713847669132961015074497184459590609206928457960794194678536015192364772857137750638208124982478219409630339511897175198821439121470923937231322377519188307011960606119068924992845072449339324509769567638310163457851038480620475140041140313644333412370100225142791812747409488390247193435260883921082746865056945009121413537260774678481940965279606297733756049866584832159149664722993198271457819901631425432946709244289783612070833322320168400883413296659168573008169774674805119512930527831919577605008380557778845994922130936940533549570755256502030448474121149508665421866202600112163809393938911232283605239535543497754064154461343584404206606642157621710561754334426943268229036095436912227777165252775129740844395369490957194546699213321411982719987035881426658428394403289335586853331525974027023962813552012068234689509608122628843933083940761913595349769889362755887517352044712425803927090713718017995596295077554551377091509690217343843757478344650936020787142997979584365868773867388553916955455782038080448982239519666930651536371254437942892615687144158316011556287499823851214336664009217830522748313105301122467333083836713787307236977717806564595454009300198765357091420959353768789389955562792501760489602280724590847309005144359811539676846905134335351127405805371014001899606190920634211987958824404989069296021039941467395682870745429953032490060139278795878575923325825240294895845188047331127164323326317058896880789810025120829478190697201593440126070304050429190558658885258528636511869355107452361244908215744975236509402841042850984150164224962642005685280603844163399774299563418821512196881496682927745812985249940412730025282675273014246841196272141186810226120460900901816838433497441247432826612374140556207368834841151412603636444552494575210146556183118902873697549932314668015100581964288989268214047457271162203038939286305398216542826985443554254627919256769153230615259473000367172569555390146511564615056539674117454026271613512343981120475133449258001837821356404422025864540992433264079356140178707112728872360530888997155367913833351956175010590603722912996927537813990709345519989586040537390176295034049729557886036266605961123899107777271949659367442113562346592655780966774602399586727839641522477298963726378424215508119019927757055651847147282246829149088586195302795655128970558404928232383726872990174808236292671115344382972954391296240595882739547243131417190066322920335086631015850637393480233301491188352847363151216763780110218000783289042603101541308546597239880395653188864157795266076757604797876887055581094579092307707879837450181962268685757201028588377281060401082618206092654864640096210915561497799766676534407597143494996330011330940311728045894301828997381177306177680480431680593544316741507588429080886518604406752462623883880003530416113783982449806900581639283329999585576007545526297937249562151876856058233659838803738095411037206638928698224480787625131190025269275032799880970544332759060312670958022329575446897383545204352092775048656785133064322338191406293999707030317070199480959017584979255874821494919573398144745962584928759104675814353262883178216493559890489422115531593188217798623108709130143322073473904857586611465998231160310491058105995106976576997688798133832125086724967881467508438077069280638518412700648794751574120177781971272288083516576039247603308798160317454557302191335681065388166047315744614894231265599018225551147681484804418120823452337998713460693708884857427629882982909875497747171860078597257541159818581362157748109900319907869333706045298920437915193908287739692652966225984023286049642759917568153510014198031720797145380781268444588850780399585209866799661067831805519046683960820449707244056298742059558663133326778245918307703231867429393898347940986550566374212475970426230597502985924378220087035517038250383180698395775881171550654802505070465685193234741604944906030756789414808600608531388263658277179128082256865034854540174856528813078638969317873416662307763606205730683059047994628375214848524271117162814118736720364040879107152440174553933656360802250639081752511753875936741748115231867226441246455155013631601076631252324927526501766988142041062290636982787203015699529199046025394576996043156329793585401670702171123092711145421274436889559092866028294940759799318458069086318944770030378092891490247825524043410632689679109987250849274782020521772046335235474733945486188399508300022693297033582368665965703359159107488071671372877754940116255895539673424116680618184355477627035364172416261623115148010216099109682258950966471024028114099509537626999649642185315297699849298746632574745162350482654891398126275330918398573708509445296499151393418543368522320555446296307352571743527068718959634417670781655422174597328294296327614097233156721512028479882437366200990657153804385968977466136010514815852243872515680246046806165668084090847598722664095061447841977008767830903784225586721874464607353789201891717452335113798756306396617903241519570019045974837788012094074129183987182863353481712905650479370009620201741181172314671400835092208027349558948219776761034632390199810876880942440186957532763394681386372700828646467449906340487117582131837929050933034280225602774306964314613547216942347196015734751671766965696178470183144109342593190943981769930591509090916068617276313857988171540892830372321209177893228350615871125139776109747677029646302708615251742947588553793744406481912775713076068386324720572896141712790787557900110426487502641014449076565328857112049476773131440041727234436685505698796263009138250332066674121816172838607966443706192693526991655436449665638831824821104108618185914130508432128432528819137934410918081846317511144176929509713184633252274260658268375371694388089113999236222851197136415277424883625597892063078494251848549746702569278078143461007781733920290388657683284339318225139601033976011964861140118849909751427184680204285434988730118346620021105986424680059369172552702214250085861058948236898136724615861790254245327823491336850574595635125070776976314124822962348383860103177373651705192181274021622756033155870819115169867942408445579754016166713019474404086756699282361898939300725571342005766164896055334818067067447720174325749286315048502904224685372573448259059675318047730657067544657342779467831178554712489783382350616539267520064714723148202248783463393360252007460096870342755963274529320728267423348414960048919455107741193992812013954787807280323536130220817034294583312390963791716822728645092704803972762793584791006805526481030431954765241013020840879416562637269191817129797077104146075572323029840684570909900516463240080586377695305172684447809911732601403553447471634113866365102271662513720758457259091270992873304765124999862014852433248579204432264759163290620603830713327851708511163440995036747539349842139067622670734343843914404884912755605903343096904398140995758074813991358047571110190933077569058290120350502672120318841013822183385336040594093640893970093142260858842288410225259820997712756000844834894536205081730334388569164158279291525539017004197329977162742935941683643609056064706919455575414278043314326507318732697397482020686316532846164099008688497514260473635635146781547539265838501461458763940733274098939137404144391863046272563856044949745667311432419857064662749468866970545019635439342780941412659915661917872076087497855786212301798213671045708974054022800835735272640804255289334321899283512636187270943728748833799262315558943036624585711198165851387428621873718367375725951633120343588974327421122950479351968089578815336848337739333343611794329534818996484607954676347475088288761014234775394470683110775413234742589293071975067822913636594564621152239792139040994682241785775718762096444052287312773206205459825011231586897203528617387810999553342133013315007549138178350631206751872015801972215246106668632098758477968049901027237307524289934292893455663197509282705105182608543956906166147799063441717623925635135814115227497423048350240837758615976696489491244004848256035106466429866813138103378090499258386287544015274482655871974594513624259329198792179789745942785308426217409372456079811253455419688748437470961031566058816294871547036607830587566931220364469803521897560744793316367193409084752515259853617502040720993750668927235819925455837304574489034213374934944716641410660550300160314692371319164843828579962905409999209969481771014129157695670099759910477955206388297384126998888600934858495599417812785627589026898903447796854735453532694212213725870573590025775215782779065615992960007071522998556098936184991901332352082566439188918336324132825980198110780573057291008779768529028988672520328198866960948984539877181428900711396569936265446448440270635725372868876890362814231527194000217687084462153079663180881488075865659284424480048624378799250460253618232345746065836033578861733075446480265525950912566955168517351026642100781273117715059142235479405790329654305743262126429680897800701071296108719381477283601281246514159380196565023070459228252667925930126665720145542373273857026281782483739877282755039672467187056801627274427494559454056344566312077491795894823341661605784907207560814602335656338393696854610670469244452200837363360381245992486879506937054926992875586716394900010757340426142140615660011204683924319712712031471304197558922374767467193113998135005721890460361204563851971461591838251133855153250251065072395885798579277072708028973024060117184785190714770861852376733895597615932857147634088827578935874091782366652560175842134680830896378985171498832130016882685620565249341666918479244473179745382488504358416793217544993918662258558982063163852685502740116382573498023610170034017597188747001978741562697839754493218514123363447678831782361539592373656526361223731818137820005545596902361728070637336115635068517077957819600166448866776847503586814114328859945575317042090087482833024344369478528578825350944987308269625879550673903384377628102334460428205811349537009600268301740736952187628326302855630808472377121752942952991422430728504448397724086829552359207533121902775628681741253829935942647881824606775201792339718979730951069562058553768556823112091859615232697264785228553694653450204554553944995613245248955149607355185107434925202453723357784787680026381743150605406869625573026140788175258653001773019040893408069470842521310620122936945700514294780445180538052951967400783609935934795504613223786342587256654271187347700080016809306182540568797862868949671977817982476018441117022396600185191128572130524356655351506710501046349545679787055111071628785033772325660588488298513490759869069866397071308977312740228639487379094926662365368544655947330431654347680844147610729189954534103612400742705136823222416799981996469515345605193387325589512547523541328088530780428981880907438661835776789199766801573564015638620916427316998211299619073517567480888179482578084231924476197734704307161066581009812297087099056758286453179506691528292733867117779520906231392089338752470392630621261514407032462806683664178312570169729649202447410191707831176893890686512585223921985145386017507571179912634673437437387200077713777861124677971718348256108322964394078792451891713899674830924648499791512737619594897018625877360509051944711665459774595698103687640766521205391369359576800111914079556444108639008855971541968525318999919615353899850290127901458179290191653950949360479736150035939272903536684737192237999966000938926678156180855752965993404690497619009095482802909378730083537654436404528634451278513425204494580510780955616576263066849875350659079165209759483806037714262913628120409573746456793033089240731524634587125654663833070748522322634269279059296840120884381558301562709925812704482259762342845499276964629072048873349044903394537731087451768244690303197244669328252817857118218787840284930600510058559491982567640844398385875822019533323578544024546848390264757456896493793952186999747070723375142371082376221522727103191341332431601831084124045709448582437625417948156486966917476724783851763266992883885677886292094227814895596919917696240850369598101872317273510369843699397927811541471517699505577693973787827520906502501840688952805385942848508285790440450242532385937603397020908716467970830154991274212734257741155636979622198413058360364815997128001714219734606680867570340462415383105510282468221662338287651894403456403419164744240802454488691330245804271853784076376744034593324940857145561937848820491460201816896510437224615924778681464282457471105593278519677531985331968552419606852763431508288966421802382352361588777178995799135272231067817549272299202635675692650796529522233877902796254230689163680002447147281623482943030932866528029151355552229397871827841613792302683788985853021901333560319463566995989534531937049455725090307332849291194278811300188394755066316777347223686714347653844521863820742590850526121619282218057047477496389344541586332609807621053009500538830670966305601035922910464006871753538843172303758309827331640683115146767700000376288628780973969836678490349797736523598120589954113503088044569516945702701272459043673453881073751647788848841282190438844329293969512460869287405852522075279602015921198821102220639667540274572533741579169156202885658565734628022834248211537803539992040832713852640128636240785736037616513265299222371272594042777270907818253476652304970427237503669358608948705074512077472744105776273700070477601457964103852897353689656039472651711114154399656441080911376588865657104550521608416287593295172512179254617462281397378648056632795098786716395617560783907646700047192030790890905869907711973311901307323270655921579373643399885549728978589340844995116326173280827247541968297385343115165857628307652241027301099020583205027549471471623839819575376017682132858379518258832198309137020310535394715618899189510544261159287281122013759651730929263588530558243674418467591548548460930033884827976145921780401098320310521759659768643882816761973448561672233568382121652157496811458240087975096426362438065199114460613102773791471577740040107022187050885861128924102371178162757167070519826944697791793941095325078320289970504144731747986818186612917177794426913841387877815630759177463581771251470817306599488725908293390279389650126039695266005269003343740609464211274662562329874051360052600699443876745378375934098056557368704338688483255167800623308673874187416815395496740565559534316776475447106184087923229257254238228501239426710704057119682719888858836415823022557625372030531948805138377515966885846912092000468446384931976005392715604108331162281298949354661194358982636106749168398206148965382539242628366709209097030556228112025718410792039557569910804102620805177271406510263657583812066980512322687565986477385909466290408722557190652623207234165281494261999660598038973387831596111182779612961558569307909679800243463367359162852003225888022137046568585941059580158282176502718348549121219390406145171925964431826152179436034347415611650433768637614747204574425723193659891360602979676598488712606556355307936764499445212881355572021284800082974038320341231451834797834007736997555313449833864311956196034739428674361869821662419292751288144869264942783739210456849910898292005584060331578557838290254134828318749114314851942330686701019528635087932461822642508964361821595191002010169196290601516405463652987266658867909424947152201306684674167597065188545065787604509652964401342539351789234618471816748455905601499435108512164702250616092361935197225400046782347593599240772407684384099913241758389512226253036277055965138775493428178080320893189579115577228790814863419697730499918685845706851049639114982704863317142425532010936963981108231672464141157814402803396433939986886549702886592809246641705335695490564410519043409859457293760992791986350180054133682794729003342757241313479708100309602801148082073655780048941966029541454545998234081487582773675318628268195048212073367545684659731625630114098102862231471592454653318534683093579356172877260613782734693591284017125775472823264558637910542331150596536528094980918171899937973226658596718893043611766513443712937560812748687586283818322517271153091703584079102156812125765661475365964133637080878937243954857560017712245185598252871868509536513438187886198719186017095310651290900910229202664219019039382650658969455171006806384383723025716290800425474472864348552985783957220094023543944248580640743877285707646299905650020762279436692474724117655317884702603053672066565497964454358505949914407654560184217031837087379935097623432447215995441971886780075813091835975937516249821308063012134007318465493892095604683605953876766736990344686865107660559481036305683506898323343874890920980444266233849304507013239413223006001725957883781873938539706598741955191658280022081519207858173424467839103660619897231393043704380189070267760464983892878803450243683122446614372334129097379517613288450065983583848649752314078321687922341603015634366972747975805150384135537059524137185034375425911547977534337011645412122539199142248901918517606109536919226773695874593074452441914796431663358001681417969155978741870273220321415599412537919087750164051221362607492627295367522013583857298283705871535721154156123654944810394156160508657068852678269962469530762119680810424140490437304142332336827609053834076684406834498027821948554401622478598195340849011658801671661232372518041939754853437915887973247499175439484184727655831127488423428753753775457361467955440960670383475450456729839279420480259511584902841987877986119710310976100377880761376239051889252296679027255370484324284725434576135100887573674399421165960690558315181875505318859459229846645871973941505777272754718576419636190267053967904879854658712317663619185523372973649031910497243941556766418030025758102442440910587956854649239713113328596699379353648936729350523439148733929514649881452006915828748783552494166957618648164537191554531744977842038072859929096744930606372033792307710044101578237147604116533028711836760321180071748592638121316050901510460081656937413646045793975036931915424808915022230757628411401912163679064259975557108393487077136355439533557109105195753847274986158389942514911143803453532529905469451492097788795817491139265924491699116932650097919798782938392352476834053312341474837547521637084858565677740966619838110474346094751974058348254386586445709445907730391432731557203419989434903901875260999863670169940326653962385273194448760230758657492422476258137874596615166971176880771268609141951788121021813779676513388310267398539946217042874091365844435471440749413730071800878268344573237936955279255875741391246783488620472888673091345110683343679674229265596670039742216192851206495749046143873721584629253186856006030194672192847895057120101728926065961333776572152444285087139575327000483871488829790528432052750420823857237588461441648361833121495618678293607240711978016963196608444032066225170882790059995596290150692956359510636953153865223445835707110014124924106171125698103240195435240107938660473218536991948130350120445968195587885836812044931157855177580963887292061721981766035823242911264993606827092569618700535912698669747171090831851930499485712655879663808914305475966579399627240885206391425245298074204483306900857456855292094056802464695986052157856482962763504152924436145853330141035865478896624225613145411076169518316267996189898338567951010755091741204865984554302075013814313455557378608388449862364367197982933565381866095541210275717120796213578941665630927953029678818730374969889405588939895781341310399008648174827880109947684747030003886957332954134130121224000107729596219896824303998807351548853729085016966141720940658799499674314841767297976835560884148941284887226490239826307026597980261464473907640742957950993949306259484093692492487327893759981001860953930903925867938353201864924158346450486695174465367376942105217020864819130095529614382376784461672955927602934232852482532111017808236415191545016291402395847145524758752565845768405655890092521181280042418026597107613064296581704341424893341773771731814149007847741765854496335950011527097736816934246594975203956917118835110962813962099616713525985311735795681449038693248813514997160105394664013751560915311797260462129865867878030352570736259025815321985661324826954396660903096387935532118596035953605972911453449363925325409716631203721326552569505059322649873615698102052485727930777989331463973472289125261984455237760822927679520131525169912626049145925513194786039211202986301923198076020062784951263981986342306238059112644460778356745986252690456001767720958103099055246417522935066394094206674627873222286078687750881666152913340408330612447362975313523460903225425552628881777456521786818092192742003461140804686583699371310247388170816736160759218776915409698537736881492411075121049754157378558133344822031416937370654586257764119935315131226579683211608006971838655255597425225683502300232220023274822811760778615755406497264655511629377973378181011843973121205468455012752678439153834269958443018334782745538619109365919151581804077075983222372117439855975911650357620480885021790968962769518856507820605686414613007872405708046735178681233364713160597932985434708886143748650571350122921433361822034693568022471022755920483810678711585341965290829641422304721571923572884744037501358194167387238754992670671890899013293031305638407273206672761340594091626904770518580388294958782514540729889196649969680467696504638769851258418140340788483117415982712630331031825813565939382288179302563068983051641425079670878496235092775338713973737779248356117701316062486106313437717064752215130465961855545416127213871284981865417827507023999676452305633682496025797880805564361027371561595067455143948182576356496626488826255168100363819650773311158961609418815383564734336769219947586773543519741922606188902568585775957735070627236805400552842494719329354187326322493935060722416482331819084156058347392461163261185393753433992277883604153831516951977620238815998544327739625704115774779037692744190548386758090850634656178464527253695532489088652721423873826998601088235913521201451991672957763324644179096262191414422443927793022327676767753721928947045585198082404440652413746327501914518108839416677812319561572408175224552256538847564288797343030731703162710775988772414806365714344521677902344413152969409492563878468236587327146352453870987505760025022208471694126794345585168250061847748822310142011742291435250350358036651046593865895316521421390299294450320607300557295512672232217379132422468522626986284582729157271585806557820582215939062825152501606648633192463863824571478249192013239696454084970284464211578103296605906663218544816972458314591770389829330253684232543965966615193579915733952623279759124289371711346258833556364915876592840108027170474098772528893100691257773333266480439180858926225174349689080566856641747808587295556821503396883774219444854568782637762250640852107913762431613609847745618104191932916926601449422486815915679723727073486619186364020526936543002057562406598837289905429039499644066871397526520957057857715396088538657963849842679192450309875103522359728536592850641716008239922167691176995729279387760676419134104292709917099228729849885737355477796295585114992870266893987584506773684918977383066469636020365990584892703762454160270670014154911598613684972589323363040225505111359359204453386301860596128511932153147515394595939839544025506891906636911178301620077720675473765945319290670288757161386536551739762933335273158055156923044212138496380621306406906263746217158322407901173882255968165366738216386466593726573265061805015367691965327216268803619095273771362698062559179603824713394876242462146318527909843095217399568879381262034012367307900372169478683068343650696964279951916031188956173375891212953239675463585920313506772989958392684722135204242137877997015332739239729235507069113376868354484198250619054481328418274463527831933473410278884871574258569298708230639654677251433722154937202810651135657973663607363096161232844744078315083609325018927264524257695364194349637779762052439303047287855301894882015878618632747198309601680420842168960102393711125200216091029085527366196323877778824570246702764852483657632862200920449396639141313695403779530248426303905675901844110479834473592983868120252903351309725971224004650502450704590939661898988402690606322056141408331322885223160060966004697548431868716025654046587410692977391320145804970791940746065402893370216490919454650476805591176255582499222312720129866662969630057865307179842282656709268546414846511057441120197500081016610512408777578796611268673876488739896593745216273124270710117658396272437831581938093374561133746977823730354355985100949579535060358190490215162001221880631859170207045541420275816090899204277466333081455050182039998825533808426368073557616736788802433918129044679217074493127417929594049687525501023109545231986206011567468115804518239951097539101205276574260353447844247771339786543858998940948165414706335852641147112645002855906587853689316731082560109325141005594804618163769583617790537573363330436753653833845049481689005176602303943329737154522855555473852771585981603842101137038325566345737574414820850414943843449872771898899592772297248397796879966479105134998472343791212595794381017273238607683765816608913464610706195502172573937441370466137746679628961668710064957185832080350307052484361880275890747307581038823770150173895600428814128486710871629814179477828597476143735655340593904758326037413865699103775220402694613389156418952145035567497367569274517012419546684059751374398253338828312186900940922868183760877944334298116510637522305500467068169427516005665491787809275629070569448817810344664329803255497777714038930656170088437597217670460822594204094396950841819042835082348522692373999542562632169048543925088749404239528329087751901702631065097149582517755414508546075858924481155080344486904345594441283557897162952098602461240936727802152258995349935427669749167529025905727157120660815790704004302052218544834901729039738296155768883206831510839539040890232824585393287779860101837202603465763877910962144685894447893445004341453424301368846762319232525919108675989555437896472797836439247755815626618059621615801465157795754284518700178666640109017863136714407564073215356078297529729763833638452263644131626815428429423245195855830034042890227447676332347963620701549054004336825005264636540443307908511824183726198101436337778063099915312401603359047732697907902365630733786734153527086472037826985573797820020681353205463746079932442861767570659142078028669607228817138200211731599505665097812434542637783731221639544822088613451574809249458772040971234033882764696655314596074156074291117962087227721367772659768766374937688327860899723639771017066320532015731595480947753586940725848788786619043408441885588543455672672626196696612892096257849680439488923875764146269156140902781504012708365222489043612787846651689815709326621944031904462742774626135761134308162715596707970840040487714632065062032555579637347310124712162497144988581686708388372353053141275787485313794380839354506312872979626342947424667291170655021772014565033469564408568818785026567496418461789214859176036973242173557992370443480704377217772332374255705422106875464848528983346566213777518231975091007270097477438111384229686714169128131820221651313668598289682802311326856993390495012668146676730849768395838763510877854633342603814861079219951005527268839963358959847203413272278606847046780771088399287513601786001486328400042212108592380028001603555374756517698146235894319134475253961713391636721302491931468914085851599155419213124201832091715332817925645865105152548577328396096863456980417447409894571051989639414540228319389739145258252853127849785076684504641852630430395626593506617259095445324296363553234898631618692465832020250251713610821701119433891467310388893847391525770213434970319905100204567452109654682256347694877040047870800549231108938376798408141140042905368441533377698670052184733017618456595638759949834156997735989516333853949615392674415836975099806888064996618584759969385185355421576041662725874197711494874862011121258928671264402470043524143186929688511868729886315833694403323306117565544966062696558388327077838563563682859165529274867814705857106932382011414670147548351184774634589619189693905552300017480121639904491698450614354278059803133950678087392674837019193072171641781394459374001553368698756483344010837700852867103504251926036211147508400104848060181646621167852290003851018579787046759273058369706218935066968852596879550625002585634563876562737597493877804375175363839055329983749624224062063552220571540829993387961323571847824010798144650449228004304937992778054426454337080237659980940289263166897006365111609343303419490477816283421743211329343075659691095676292463571808980677851998775401742456418819863192975518612461729170987120663647514969895602989777185619449722646970358266003959107519093659813374459242878557604733097959939686989233975206209901841597049777440886561295739605818618108187177305883944497401799252963379980053252215616965907479677370614537060504441691291697924222793707121362701982732160273772025478045155509735475615849477927094050201813895040629043213272474902902923407166552768559859049023323801458686393128420245508138841147388850559483233809928719400196473913017547251274993172919664733419794582198417929023580005561957499056318738876530907165791359231739847943753646632079979849650076630610607574768358637656849227566747336151565710986321917792507075282855567497851306226054760215442421004761010251234658543520400638962656469892535908691713869197107585807303551921419646045202774986144150778506817471895944889002775644823428109698147137280541032252984675252245846003653708174843466812174157347471334345945299395493153778721285514445189493901732691866827338240435485562101051290767343701507045416028784470429839691630487559920959965008720771991203152332587196357293368469262160282566818118228458375583030681524107816465671267716166704750542536765996389636897949673268525877453505458365144027642598486552285230196056718100819277325717709725605086013375416266125897914578610288712588024067449445367620956676539102577678370611873293030597548686937144210760297215143980136524442537144652950883762996806519593120777236453104018955055173622329845409956448792822624604539259209632971717754407650639727588847908704486867323192416210071063495543784006531736450347961490441699041470670992603097252035689048014032487076381534415955714519965531883880154930453473601140472501100506317851209094940290117745965968705544112303664093386414717845643179737686041445449079388072811496217190499702019278676627652004909561910050923992398231987345657663096407531035274834662494622153392375835677278958705108668055644470477766264956218675451851130896124850603620745833687931429250563686186109419520567941213197642129728663683772154730910068536663571725863059509105556837955242064169656309998331954920746640596198284651472926230375578720189665545054773173185610932243328814822410992600956419593115444003130072035591076696106758683711723877751203718497999483098665150607786992951797825402437991279755988593737119271401344636074880745739298912284584180887241704814636484252273387024747915447195711530747436366097129340163861206301547539606010878753473294966931734879554674715818113200443052826626966357737849192103396833690253621194304051477147686001586839355267452742323392495558458246356054958393242657430741182093941753373807297951075661007957994614277176504940836746131415242342571407480487079013063414993677335759331560751041917599422527455965525714677939337100044423509417190876780039622058685963902428430165798715507002467558699946591281021340260020794734319098437467232955222403190577553134650674973409141047428705757007179113740760002647565073346291198537061150043082313918410453792312908716351961886656324237097063293687362927471923523407058866711625333870829179134864310994258544641604596754471452743689150815860456190703219308003474649088875651249853237547020052341051300883482253098145275405691022015810898230007004299548928841390797263748711388853219639277563024403569230034729285260083189544339541006759959869803857015678994464730371236116649084845741892692002996672454605016486090933312516628741600181101025891490279947178395374093362343119697144021882361432425110039257707232479805772140272892102085772163637473740098238822634930465060886359890766290747333844991703575850215124717810412543826301301686950560719292429816796728666180600720756344824252292480151330895866159442513916607925917422890401879971743226150857565675227222235916587504526896660463386336365113641401509238546477303807548056908216337502294204043199809119596757523946346044976512789868479902470990136456278379820290761681874150093555741922740702702465301625113216264004759961092547522835222406167000532898407169471559987139593933771027583646282950928187375112313607257673788923937543806226700445926514248279121737674388459719455044935024077353905150499993768099508553053585739065638170168924365790235464494669509676606439698512742213266903513072872313262416605028486160956625511914953660233008055312037537110042488753355140341989841607692586719989036621034605546579436763280311929452306470204462970901568125805237885560744214938610625689342683093782705610127187080190948827553168945660405871187013040851228482814349838694331970101995079389371987809794984462353226139406348550403534524428763297320770609039627916734582375902142141341141862097003458399654178248515673315092303118359632882113517347839345988081421277674850530854519669067182524168337911104275998414839337405107560009451544957147350169724755812313139825461887002735559879976792242091072107035677248939434510223804627788747316713147355886644775182966601039015003554995523686635678909681545668778572638146604214379491363910010342451741986454682475201481765593259613488358236774569889597872795654453188367212551375402317221735125712937386377693416056191696375429101409774994400137139295476570351512158899971025179267271383969507748847227577928164920826861538630819349079853280040528348442364353634489848148672396679804091838202729230709882250348957635808122349800592025046629399068540831108726551379537990667566342306705480001796120063581658322245108100861984503258039697777206032660557408723023776457162099404520059535499422773306119288852630020779950752207957179521818977551817393533746683802094765732335889479837530971217572881893683999104353536288103487965353668646352613569164470955898300976708991796140391318653614163119750131970404911620896790085666239714705922014715550058543675436860697042664468661653475558997404337212126600927126773321519979241827434878059779372735505797840359782945118049791826818451315162093737922262569639297518300581346709897468453614915867545953028857969967901079630272464718783781752775881689010706888043995884846159022845624276192060157188591515147968685220114868687406740753726647077941470747783026331930190266654567555884616894294126838429080164607202069157237497484532327116658174510554860233598426855898541182128762865354691458222526824890540518842440003983790705252359449449074880767591556502109521424956415768626393242842946540257573761213333491252601645341499503215633762017369101931804669495839300075574989885350143036766789281291151471007716079822638672017646499731010973310111395441783272142863964978210834293231994233875543599339584737302093857697874887316415250675983769339479969185663727077200846133732952854338453469185007319974908326013508215998442966143184577293891302980311986593535003075811642398769352958402975106804492826161727692085105514034080658750469904081125051803163929826373451609166136451512015121103392534006206857937538324079493846431985111059010544295287065646223519732324013430702424667324985822608870825879422499784498724581415571319643921413539684438950657662544616483092461893339245720488497601543122547779987409162343963277828470767564534116521214861015738275672792914771803151939140093393882691671503602918278358919390179814080061984716802283308661193007210865796551432804739939248023550373555557380879532268093460594425524022140908378260687380003275058043650733184893601115081582939663760563002201643207254617900278376450041410030462784305364534919560617862521143602520251499054369055689056267623344170962457940115173603563369541614824820863962563122530643372906069611967300392061779962021402110128833348851448475061266485974018238592119417121663543078668394562825059463771877065473335603439038546292357022780908476670696422234020368475425650754948667387879655681859054862219427208332766097251589415740730194669312304171785204305429813945089469830631110258361926336901929846844858511769961863173025454290626594784848020482058522692750949360143123833763406408615082684651238082065791777544145626463203781778631757072553765865385373644078816422555997722009081621471855854383751884521024460677534998064687330800553445021275228491800656460969234354578435906588250529197074012858432532354917832329176441971292982884632157481207373237489824418690730712550632487855772610021635402663839738815083439978657543778203584452106586940128247489874948257178402715225697743688293533779706315311884011593219053174086825785084868365261991016484920452414812907070703028939619534794461704451087268391654823624116614226806330855389185423951184887087298421622403632238867722088541682162019783014951549672988074950537797865864935421450059675961925261042697596216044999577943542505051237198821437212193006248791723767786697533787507897293292927101417150515503737626683675142680577526942728472541019799307698625235323420425066999468777798418157781578037240755806925596266035128205941367786451210848572699432713618175565200739113180540611579800220684449948513017767879710440139284812117144531306148930654883277046631245246725894009439905360741312805724279761794608235281932855376188010084695312202112030543472757552402026972398728099869337408332259536327799840611018885584112207998724472501567283515317521087500303613486711616031054321290418635258630899146244255616391524284286532228157505656346222620796091934298130586305207842684527625386519555029990502121950269921232778153436337472665703603821830435981258795391771787082294122329132489407259912356547337782452869701744438028192547730108019619913820507966531495004652019565841634845016243364900460258224819752211211235035226326981007621648207945415463569685652883062486826077857338192912188131198276204766352751609771496405831326472946054916971467108380709674137851158948019806352221637848256751033826228546363396137238784846072687631141432178318635851211698493984457405945744036119651810506998958319729598170392163095041258112666912041673021442405152771099001981977707213536215467378611269783877161081450459124319984755687875816336138180644635937732431312190121316057059903410652433027800628638330347513705818739295115104308500643608214580793966476036549790973930633861143439804579147871844180445030359749367189826367630568578540754507012053861766603534600097122795411915032266310670680733698541867537548401955587166985882247317957455455809211914942678218575683089045960444282616100107238100286311594140486426563545284703894909689089357763973548130537778607254841344591596913050991052660254327280538250085906939589597000535280288608770945863367897149528500379668900524297818271232911216921835806412714564246354345068139057813705670614904156608604067153981744878571515892199207398499972544570250439005954119229630791095362580203106560136461547974107990037033364868425400683816895443085616364800697205335121445868332729535162378879924936913355836308896033022902539480575735471116946714267308917543000495213280810965492738065556366235615235222943981147769328832017449101483953762161675838786189692600480190204146109521217042798082804506740514147087289363463954505972589316708705667553888787016667819114945401874004967855124472204905739896932809004865458368250478919368410506220735758180563463342943205267274014803392843896267117077995987781190138280442722321693008925081252283051518397283890832032306576296375020640761922063823139825153928337646525412989060193458747893478029612717641769701051886280363905972966398780163814076493957814150059630135065420826668917484547867160481963245700713268709917050469298140286905393425851534600704125353588618506374822050190487276516690961569698512065441287708690937866687885309513179652421014547064905559076984245238993331611047838524227956688600949168486807478770285095703960991016388569063047448062818859623946684622212583185888637678457628843473313465204118573437673731950611470859584957632920618519311814193412964959476247905118267209421209545522814295359340235411224560905641758379076054467597398333747299363954115837420869534170576693293125597348704723248962043757070538120797150071593987107591944682649233143903218188972270994567780650730485495876226061576892890196376265062889647242435170804491912201622260753079334564442399954768561755199642096119103081163675146591129258807179563100295569479951359044433326491205180826753374195239299192435838836718468462207258525341064638616650103186470676994567614798493455757206210779984416151550802134051623445449063714224058524918684351711355203718234594865174612327072500169438881671542739085452944990080874536347944899442764533637529058982800884493650221430654085717444565306913045177028891388056280560517542280052678561144022748808454755428810620887735912407007997317667007398317637344727507743536692902044799344354326872096371727083481764458158950220710106211102581055625680344814123196324386767643045311410999185545170963419485855522063244703048180817745075746031039538011986182953840303816282789018938316620135753411331014755531764485836916117709066672117885183604907614484075156538213056543312522138318682768006575859436758433201244650965073849781759163335522813628556580377409746261481592499667716285231769342581810352760645532953824601047179818443332695446808082572880321484870994660819029786294337462433835456333482892506574926407980396814048571862395092194878616226176078960525429050610793736811262643095907009055527866180437453505300625395449370467445797532940223568166056766487433204687917294104035230567511727832405685747897977199685446692092371082892624226585185065940689862906718613104548416210089416333461908681848808392007115441044260096615275485899679506872397068218731505872940366887524317759152386151132369914659605663167133402936454492032287042418619601955342901254693792659686266737327566264847113207623242849135860026146961032098253785169992617431019860234554619247462967262023883049895525184860258566839648841596149144917747261464443783229171740936211251462962467681005765957733497006238943465692959587430618663022899555737832183625113643750397466126968329670905614588852824703816549989416949701628781017335610201498967946227597821589303430338025593207484975790152746985514462026961727366553746506355921925463184929249198989559500775044221743853747019131542168124059202956801037273763221487210377733827112569731643098680069151966813880346858282754779803221466007571100103816760667587082358153562523125731281459590756207911417429767286450590171577921948549658641513434955971386025289172424035805408544166316308095002769942180053927519879883275865890256724256404029946982830561449986209145189117580606108471450425778071672234743117948818919790976457314216445685737956074237209217454355514184304338124702623174953463672742611300628114407015324468853586791143470513459956405348386835958932354295257127991981400589307215317910274820222834127286952637867580856958880577856891864831548873709942739394331155013166825037520737427808091375692771442926686925315134289047866186932986273902371637710374707315779318590030828636088673508326055583034540708629846259557752881095011046322533284365537983532452318916162732759944063625546729505627519177187491898850793031287521508213915095097095746426604434051198735830565963007351459333494492908352153854151540328620954150362931731713501055933249713027643522901658633541413692001149343410600683059823269185563192487352150128742874202322234995888899623027196473340443131269575544862687147968849555212652065184298374811710922620253214209917699941290192275974171072493426774853593785055729920711247707114713623768203245366390874950795847868720437071387162603862465515214637816702381965306841910748095118606712678369107253897816746200142091960791037258230098260886542550493861722303455522849938385534464199520819770833837372362533461799592286597863957380111268205924755280217352034015571917668643564214083051930403558354733344879982556559294330019663935842293257876997615462321493438355093325188189684320496007466077080257451964382343083432934300193505349004954588144121847763970330787088491879886058106130403783073729932002489525379252379962619537413467961287486791233996958548162394975051979073464494976979551917358956833984781095175379845972086290721730673355926367654572274571516116494403136661932580855670360871975257419746268497663386889697048239417358002076780460785663615418126460551620351029529579594466932061358153300370763287298616474532289591897661399907225738603002288762958166891071675609728048400828954890400454968741752339010060469267889478101341740073609659955721761982804866011181118171906963277946403638555402737388677222069565931305721831207600890746768197866157916364307324157397045311176716597956015793866024944075246859154646501911622160767940655634374318288206272197352012954841551694232891321962043050255069772633907963350340936084872699932719695655094223178073441655362553203643426468522556070657511084929326315101874586031476610969776266760275228936343018073558435822820229571618722805496341363211769475610600823387256304664651696500877811012581186075067900740091781360481565589278838443289642109148049088757298515120317585594284760396997360645497490826230702028523655826433079111870568860727844276030541570761288701907796628751395791975331173757530701819277133890820624456231702886709003432489399096833726664817362300414456717735440121628634416377005117502989388301409142264054234555726572125460888598511667595542518037517141371223645588792524246746075493453704143071291400992615527770080126061095165073106119111068662753151480587990589667595977649781706189279524150965453970078366367200824030844747346857365629686224717327886222717234956751261643369807515480316153014405673185523182394011264787895246359145834192462424297695471859626299547239192887522352097010013501766721635227514487736473839313746578923254459410476554851785758351038411526348710614463123562154542303502191195381878083881970629702911810006106479567176540534425002959698373025732358327201130446220887552476781973933008660693822496183240496818380926845082372845601041841278700691801220884672830702344750332662064691900089838271983047130823321106316750176235613753889043128138916840430081493425888280549698901627622744517938021955225200346253340955159361988441772099551695524191666905168722444989891777242414164969349235478276471715385363269060407056724634798453539356643101903592985325062266608394485220658482384325295944041068275498425755441304649632776762881181759511579338664445241510328130461078501413323124606005266893799785482216278500020026520541157532960295082572842401919209736648589137086280287831804440763246337656969607675010195888933403680212475346806144319433408286465679187515878859824743152702863926026061274647994203872617696602134014735697509682193007790113257585368818295859649025923575161320194243303927338612287691633840814246155648120965067081014756767455006824518460353445375695182396302792236309889755072310169087660377569874565606602837929338482527050686852478015246466178611332387944500343263731737959811012539222649852006088799824401288312017769578666859280188673451163606133109172207983532590129235460932148957688238618528453550786520320602093354968096479863293098684320014003426509314366365612277695250251915248675345809372390703087041711307964942105088105820696362113509414089188276505140430182044343817729878844539978957968356646480909406874685782022173520822624184185137890853287017386892119244216580219396405627119099339455800783883415001326217462662611374845174458942351832364385224279553110546946169344002856236880043262285118534424440232224277958240440839189365512178969809397600173941876399700657851933255136022860298639447240181404308709005914507429205636903151393760571115983847027674970863223853826597771331765466911080651443670008545506320272616277738094341931821045844200149134535747949756037043520993184599699257800336139646044465815172188019068674542727882027830495729201401332422382278931656821749531712599693264253201675896587964984782968195419773152183083490328621680248236867369487544336110762585547657136895848603930832730038595596767573575737462263556151237960802168806339972836893127101649838849946615232667347840271195248819635120926715072566468160626920099059706912810363567919684243063063923385670035495650865252198693649435771057487215850715905479027920495600828300022453170286033872426635178994946307676263923062322716003032229008113225531135239352941568934001662061864511069092714877048385037668932139438319604981795331486609547358875445763034210432231078421551668395404037093726364797984426984249243412391791997165169718790555000444960105815815652574741591173295884808150979518264406922632179078727952238406838937489076973507088550592133624081354885717187796610735324870684440632166872152743337579301337627653313588329165578437938374988252071673231499065832867685708857864502271380694053788825310369645152632046361497894425406552103123415579627464299467352770841021861009873331792412707871239394138726388337457697068379284864506586829453894253303804974022048253385577265617371115735773610961003738217618968050438891331543372059955405721842037220322304339704636984194932888897692310845969191430684782462503857783981439860313187065230233848775637485251719786370617645775590507280463120212570445478781993051909517220458613861882256740248256554355768916918199336920433558553142768271431500410955227420491389460924244096906283415201697757786255944665211657997200548076743551919160632442833317845745191819130683438975381284932056117935331885335249517049110293748579584936031892437996752542820921826939001426430123078439226924041629113063519707490280099830267468111203908797647993525149061031342957966229997556412234391235402946148693479535937001933713993694296681542789884394604383261117033377763310050541621921707685343275471047362861943491591600545284584299758855343381980029825509445179106300104428416357991378047895675833964540910166225087316008516502606553057300255714573457970616185128132320104709603902204432267409835368396596117450978084482762678367964064106760655274577233826193449789358248907086362902310818358934428239684640507470803968762271500718481789982333685970265806258901916933471379436626681681869955402941138497045420701174623459197007548911511948724540252710919741935549482353869151243670635461407194271797817569162097910767623990430496212459727536204308509065218235255403088864545702525472574881901536283469909688900185592928705954948180949997845714006665819715490074431135205209519545553066643289613640545396705814257055479631991979936239321615949027274847339903501267120088732849825904891528424333976452900115240856122194580457158068217656772475868813515483069729021202140684497359259385302569740195012368568000435040128969465868174149015901657502731706975564361627584620916126961211667118889491691189093909885762217019043437616258023751554048553257059075880774494342757843330584961457584361916633685224532302050027675007311267429755496863676122089191112344516378948544770634066521787515492157734422015552221826592980906515166165916924273947866824978019494518585623728210379382471491821118042910023086665920643511806132762165215841114991472035261601990681395742858057583839041058619256146433188690625638596044227482161054519013834452381920226765341573088754193509645293405382708168411242533372471423561268349192632876791750841006543050342825264738511010392159389856202937658555407592989041442370462712458538212215096790463557136003462748181026362340528619822693855534846039146855454322590429413439653120736068883064921529109034179028140791447636337832859958463247805219699916133928493152082979824603312230068291089281936845472066187014539470648991926464722761988331813311885327110941848966715567579943811704446448513251786968718851743365342704427037576551682414033536432281556892835600399315488266802324207453913156250278842762375156366025871638193985252839365824316193795197657912842201374788658030086267397990444857925936290930151881893912750420375209769558696455597454379438917287336949949575061446390765158763620355787813529197365093760712725477837960707581885246569085531619789227933417135151861877381824557892170357023960230290003212672014070649565252404499050690292509693667740448517474066376260020583720467546732049960235795905036198723622246984827558326834385489643586611691345034464160175984633083248100604035964897790936401359329739124390460636121159010736794285217044850231642815636786902638491887942195405814136492684519912042120652520747986083985037892432593583419839125486104709448708214127491365864219070795714169929572412764102280735567334687698800484246677383025412013898831947740291421088292697648044290496629721926139218309100956091311901724118574148365508770856835627174567064486771980910607709484643545472297468706079565951347212434653630981758158515626004892336877823692433267698964579718414106391724390343935009907272854365854305203253855314915107978725575410313186124568348796368657846637653076170853993165268970927006385174476429554860038211250390519788822549878381952580910025536081793186877227924096447207109361928248746458714863276719035729242331840830646964575545228908638172784830870274737385887277427661607088031475069800834355814989521601463260505293203831836513364749576035728411182847364249041134164177247705567087141822506628838010702754135219728246659646071878596780142053595852641330139028523097292815421066210253049822414605352516471220433546809887635400033493937799746736761046923807182302185381194793843568151604671501726118697441456708607353451993088371406902999179935632106445883038386709159840764927699270919289123810797264377292394042262670431809801645164824658098071233957366526227118874553044281967412477901672939584883139507814945539734862845703097051181596240550427622360299155231364276683828472703125423890609354193895768002043294701554705950964383909654391529056885273984256428516020198986283400132653253622315060733884535724828675902113512751342321229964681752139962800426849132948620903035334763683231444747389904082607615831044396856321318515990191841975807293463474454773072151541607692398549506190786367690934976921616352014178593751150334358932182642857926823248289341057009532588710720050135738086170418574122682706238912513433903427280367843755414867709801464689802427901114869575893337825224212551644611798452808013163653970716991261134715472411111733905612333558262340483617312666404095812412421373363674730088193068985268872784584118038028731478705090645995160992393198453502216913243433806109226584018382934309368810642105169809108210734803358756215779571920915357469183211093509514161997680072596747216860855547433232530408506572983335875575527659166895262903402643072298670830388774767875914251354911230464558038951445171508290667707983922350210280015147037472336381452375622448382059211061318388830081618407848264897034703274112036875305734290150907924704899282982085016305065120179476145473412043468589074042601137589149832653322891823464487733262291318522241429811746873510353065118918029750211102129219437870893807262477113759075065040414292947390228069145909513644741005160481647796762269440158000861968006752915099945664002812626467201208320703153620996197417417126341743200966280564765890384750082184984530363208296710348851186560684681334321113696981979968227080337030794521787421732996018242089220459061736690097588761412219478541025073011303950532595469073903071947746708340084887893518710257892407765362006104332338729583256521980421900038614061218393627795866037101497853744009760680047718163312693089776489432979607282172320918365531533294592260269307955460905530831350476793140816206784989915678487876325045690431907374731613996227323812272877115976836670792545631096278166850569952009667847432958028695084672381302620506455218113676517848489725151552836087031986492443692811530853041360484287971969312373249224362622554000470017109663161517251934408003817794787169612503559993087582288537798682130790523067082657704172262323515212417168924601997623417249728045268262745355978713064403320594310990340381183706640534202985473088364748477192581195158945238221445687427653862644697912936946514572820472580091004424924599139996289479011894501229480778000166429076368486798541127304111722017859870225309969203239364786270220741531108615663110117972249497343234882755706994611955448054664269274358552953112849293139954564712216820982418222400569311547975073102748714245092764825800321231766341574507413225867582539921088560136451777937329351226223697886664539665851535038382720862041210885330507922855812234355120918637890013101448040816131565226511007838364618447153131575040956875433962993787809793591929166347023370397304390399187688645811513054706508133532564607561784054447863512686348823483229442515944424899985491463799425518893694247929413188188331686451542699784661079891090468882344301249368257042910874651050274108133795775982451200575818859410450224259785613359232449851372731455409827418217604108528309070315646118277774732955607368918937833706109146986463236591475288871022888194845625853713296306326315770095868045844883492445979484371382887065283611122788743490770194916997524944226241366779028479152923564515775303184460892471640495565230900662624697600316359533177425977884922709598025436576984907791868765302992823906558023524837565087329325533019663739659027778603610495423345265480192062633441972413050888906581533575522959830700421276111322841912603312097430978970414915924498337026058318956071598146525606442719361552902804172037608369868730747246243755483126598108670757561752311521016616775841838543612251057914805211192387119713105403673119680520649239790840654296174786804217326579749768017942039016282543052399219385744298179924718692003678847058973218193125046973083922445319892995269970588950463346054702039952527393108556730786278908351049179046302079026097158842045824973693066397322423234341976734069909394436623773505410263696281851461321971526734071830158882369868606247771807529887410474280308990061492726475361383195315842175480257705067743372333288926343116225051022867263584960748743414915597483604852479367372250145578770457110961832651146966088837826395260721764547350573259350953086760151121870646718362182777845074519791021693683102998595831138534699434400772552010565735781206156597311276357487136267358773239284414464676349027031551566329202185830584972012168838358580233633814332399943149157515002472095568970381611031684263032540738641172598500831965889979757627996868237762520383969416436646685688166426460976315047124558846669512293251030801765122635017075918476999719740793335691261105137221206003097827052190799581962218563942423700941165694470742886917671318753820960122050519767737696510715769153630597658166833115618836003821301239341840559912911027284783522627647239992364108230309128541005937334580654642750320695019396073498248132576847104928019872565049016012705891741780021179600104065795667793565359661600144229436538892013068262939784465350925288810085546495657542043240877372018847736827911834414410383444907085744378938462786274534826852626831128421475268387925119724032612508346486361624107903527919558574078216051519344490956081375418603832532737353460242617648982400339467215732466061997069614938929665584472301647319925224879929829535972787286015519511302342010623720235487120575081154259612361365566339572318461169293660738239137206528359755238689070984690182250632944073864703156392122238361974211299632641612153666972512047648553740369356251332499949390192932246729519297339265023249222972006571059223602056232677838919410770691787436361333899103285943742289759929764142918143530124606757783352768900513437377967829523563188076541972429972031504611225427946594346365486642247438523571870130284148843754560762259638459799392050967946025262453243897470195574327459414899452980467386920805734778661919952688101556783701558897812832010341186598299893730415156709692073204165599627606424601523158517414342844966142917189583674409008752313179956739114459094301533854320409323251855474149553113041146824908096250149062129472916946365542843741558634895318417752652917275416099889529319539449998663064917620566093298737099118458322128595420954983444624646503349001287456179921814941717181043153079452924069784944543152331878958100410435768482140479156540252984145868019704197931385635151797435886704795294918070695772919985727542612855141275985167327562250030645641559817144605869042580375518920032883323599868908478679812090281789006702486095699802753975982691320041530144868724511985146087519197200661887697209249390956402731156248092010880550750371758309678863953875916651787815978835938414538325898287874332441528607139840244868347137814227122085036096305300418408878863804688207750880195519892325386985403180544031036652916526415058973702868060404154525638823854285938145964961489568769079523382885271028451527506621517110434431147098978941066706734941335123958307194907498281515657954895453465851093557119856639040536480157347853695052506170368313174161947699817990389791839807604527601814380505440086986066631021580322206117457563500310819575149663458312849059041530193460557696654310083453499399899314472708944028485810981231608002622673362907144366375190130722828292508796214350385037281476444680775496792345662054528333116982663424519057638576196698471674589055198965287857913559320287102735473158034840120499767038861802263975122972370088690599085337064434423717361091750727400266801465358596046156120522307494831019482273301409444959346040590716811743201153282121466056548620866345272882638519326934336147435517347584374822400544340716376603632648618477414670313757977462590154921226939711418477644847819153317316416798453691506876245783178324799591945125184675422424446147675110615385991316425142895289950206047517060768206820866822562071633114779044789991075102425899467733800215468611574205499212468412809181898545761561995577132252880993056418235357473241794808790683782037779880935580906078519518563983727008405968700561130611978445839003235777531817151324500987596986998965725642999510542535487199511719134224188550499140858665860645599174953697457245607812354438618127608978349126949696650253339522655068420281690257678196815366430233733589386754415525141070459940050833833882735495206478035943131509596131400622242476753209535695413158194714147222306250439058886285756264167850042319463390527457529149894841237137192261465729038165130129698917011032174044010609445876237567283500346337716986432473253100264031754303171043139357266084755645787617764729447266134784549665984146445750583731419090168572457660238366826621584265748082568308507047970976277999075091486796493416135719324644158858109562446179506706512174984349093365675222696728569448448921613757462658613180316194781174100997956933036086057595259187571004457114949281393940833630086958898765661391187047046799633172053932279536282140148042973767571614615347056567826860147634327316965247907089305750852652238682973332270690428750773391345052907293365568044551770113624908789818862798939482125666140868879170382877652240114753385861452347202381777008886490996030113486489818607699026747177138096420095327831564277432352233830418656150495047917046514860406709433335928717293800932830632453845095441459318714414229224905084718854443777241088309173961627060755989251688700660054015334771921819496213265573358437069285838216341886587695893158658816640511300075246774674412749087510601100635139781878428295877579989412366575198076953923828138704563205610326965313874469072517385244539552363244990802296979175037409340176797402143802215713247503140273895793631052843581205322290609750766150964612413220532169309952485147445406809869056875647135243806430346679805469694214819756476695558816171446022347366296055049494384977563688374331521659838503698592382730487305529120262778238621630583314892633437255156974684963974290009439809798514514572321104482024960459004386277053215067036702622782867207877406429000486228450926795252594965602994698475521060430999916429211592670415030298453249701364064732355167210615675997073277096605619138900885698296816073807844259495879144164998379897614734906803258081808091564311763790968806302491904579992844241137307000255387426297226614279715763351702621149535048028788022969456673883925388713705489582340893945791007856376564277324909230873482914601538442386686541068182322032921373459962750922155668255373001108613989514378561238060507235052775659016806525526311455835918639043746765371791519540255208387843412775011673323550787057700353593430667129539947435507368489329595991788859305723145327784230414427341412160521421232457766294056724671174840903360941885510929379033963852484535181509306870386261290780177116818589612869293824222956682969635327540981273119136563164997294376144697390184482175796201658417733418808336725755591723808410704379580342096087492003032435187069548670878807292237501176406403359499855504616231361250644113527670153446926867882929933285749338687547359040891705537149969503290666197279233274849551173196922260280444527558167316171910744833109954819108912903258243785321868675343076730894789972783615018034817279440920029282178816999979016781291811933303385012237998535182158594434168058952633509680808553981917029778412255567274104026584354151470706532357786184251732078180171311919614535604221332242305997237961563404910278204231978876086257165416804196363067402863251588534951750886427337177170198491037701170560747400392499984687650907708019095118733673009426621212498128582263847489329722486047882819759508384699526825833296713270218431034450712633936104158292003900160117534637677594755601155960005699524809223902089591393882961002225868127170898448460647129741844342478533057842236018287116644172853158474032157674471666395321804456387436542415595745153104284913330743402648180083316260707016756355096113232692386813264428967079405191690150734065403343895605645120932808677365522905704114645834773231844083939984730386115817168889766108460668835773859414015194041335122856417302431009061577123105505787841813507555550874283144161452661868755732373351240504439505139446720976574568107066248017681103857804701946306239337032361089854637833242201187690404683574778074473963543092220115321721111447180948147056483335721801272390417695854091495722158079643562641596561367378159047795288806412264316136610059391751687491097201709677380243507317699372489662819707016565576394112585848435197850241716446774808077637232248919527459422085674649918799862822925338157995717272476900660626601185178842796973158796242507025827171236660525984163918980056392804562927834383790385446896584893666409302137865616206448776329800152680620216938300683180355401319577250059910498984028536427039398027159870038591617525611638153893921679714836347585384342285362961718339842853517805443237875616165325304106089254732615632599808822715504542136500813315243655497657047806692561331858511001850457851733985633722707668621848390007503696677803146023206604581931546025030858944014400949990046053677612746027455072652785655526356074378246371439855734388105588998465792009519726691238410837721462722356735994930531442197564384081054824025129470542714517979288979769328237998476362703938980377129544713791849727628082026074522440307767868954027869550443429207211211569543610842137306930160454451379779811338912366564680141834338728480968657632921856512412460409599811335867336530090050246675291319232129975466428232197982296875652502585068074669743723207992210549223455363023629885584755089470535696728553273164582630190375355799597912016442572752466857001757165920239806354487413080325134385585873502806788022116195236037951179188004837662860483485090097265412526606162671384762918083834868275919952740655583665858487972195151649097308002684967783446679863101860396302508310777075301924453807023551658824405116084697518298000320258831817051878452152826172623850688937150253662479219960069312113423968934299376551895960219674359651232430707603706045221719763130153679487304702913663178697244887025306169730320180494577342544639456905528035449183514673795482053684779971934431052233782535088806651026305996348803790133231447539577046304708303536352244198824651507687363375912130851196094364148794201877508721251849089118292389703677441776533717022563854005078477501586771855798827645360990537622057701148943493180638202855280234141294477528336496132240861796573966329942951116229160647136067380902041344465013448185591068440982925245324470268308746013716595344840846049912396774609031070469691092626061557677356508147617616262445716096043620050636966611734929672222010689423912538737771971837934598035655245208792960960152048522017268805595226289225361013488029101590451628732193619071565688136215681213528683367962253712657105736908378995079465562368806919113286697061909952162247903842469549173202580986927831002196419123596632569627486787027987427186658219688734770055739913020849064434852873305003065636015655021888263363049582556094236755355513395058854246724237286695933991712664279314238474016834094977093053219992315073893857010456584818975816118001753950362492859243664525245427710178649655154078246570332876477645681290250997963414028418256697535168498469629405917741562962790767821395699493306160613286281011374042826503468081914203024818824141857691888451689409965257374966481376773568986081534376155359592137439686413066226911962675412013304253887084745706563497759985600958658815019417606118317525904549138010334805566567139675779553787854112221263014883294981931155093755984821509478422508777201685751871002838154125970584527396422977750524410645826444376989220535618018996470007785385968363854011234664714697437255374521093277676231718617855086137619076964122247699076847882122892735620877921962853339350120654654252458873660378753494671283684323508394631490654843911345184574502924260541631562539767681491085918900481176979863086436067625487932488983564444408166657118793083029806939585972664266476369037505696012260759882042495619371463382875252952219370221427370845970647442201800554929486657871540846153146205850958645838968763563123441560350476380281334229750393860282275774156922861645219214063574134158444015340323608199761631453609535873180895997871360948645069728302494411938206651863607451700319793933401216568188903862796870846334145276023502420159962108863519550223305383410788504114091396698738179319286551517408834677987058005403560647317170769412730433576970371005502665237630919404181198038591071092576446468772396604017210124420612905431845037485278762716221850647365190281922531593144029540253502691339070633397441677012020026241201934365488070403782930553043488384240909545066568729865970858274596947738050539185481645238650065554332858136475785523490104752650899541534771282486597623430044484325790197548822970038800710860883613279836090254771557167343116696261997965157046484171535225708747078243842190619862219349356726560619580612718455204231451940727949183195882010552230922496848428697694466426757992509535488889444214235325537273494247392466652218104454777158200145296558827029802486861759950504179516741539378890369428874516062663179208027464561722434896003588141139843815688620260348385126769747774647657603835870537665548903257986045837061526092540982385029141656447112362354302584450425648463801302085313479050738031301016892572100537940740350545963703103097105462301930599271310410407825862950933989476025033254839849900630220353193219742580689837415962665881250774324598140527037679795675404042339116237578037412295094733644451428838770695299740757427063368620149804734373657868250006516289358836997596611581639345084676162009753927943037141403379105461858642631033551953249509117725308866758450711878546440316587147515826740937087651829296462018747121967278750726571013030744823676716348026935633222421986065747638753033986952361462151180788376430146033887298195462280486638253794521335361309052472812014458546586216199181668917377919250003127459054696315601387045850907178414534528565398977571055258058541432196698954553837472380988793890300677234056868078003624965368684088707997305520056154737475643906342703371183709455071785478899239529257426563534865474358024259361326774623159345657455488534881157063324823037618251802743481442537025711301588945265629474435235232606712316441592880425081345276797936729758533903408488635480820867169128157276300783202916162293945873258868128246802331722907218713293141286009072566396961949876946453949216958071399069128475625729447137136892393211375866415677460507126366004697605499595639130330545118076528668087403310027646394187893855761390640836955750830354456556565665886625622554929129186727824133520138554472805814180909253392649689976785481516017507398731958644069177177882062176111967384691651490815360086169393194759701487054924426127006526520726290915554177550477245703246606678795370346031957920104443638151872042914405599469085526555840338759835395044623301510976719872074391433728346456109821216009001574929346247407175584571689340621393674929484926580479133918352126688151316598861503690537695948857954942669729775981395010065987529262451674828436358718376891284687981850110290316547552140382862950067758619787912477324078364844194173392493930043991728327941164390628239007032859534877915153537592420575704588455685450289588958458606923478290250688466825653452761749158595156501809653881750836137883171372230145268349587371352560011445624328155460364189494314964313185126818786994564787146789238988528956827513973586511116613095948295029406133026580846584005762769379381512322381622449551852386817626127641370249798866607967592752246812624030859528980312262177508204774433780905382929110455952584762278334800967189527267981282921082566366407438240743966682689092063051722005292011919566187421068076182749359756477092703750439903463855000610070956245979581452668753933097466646630809011441909562436035280625525407677418466800409567049772384479303671860389440660165788417429959870175380965744964492214673262795178109488098526713232464341128942882097183494973259853809031657952361816506253099804835093101676350065390820380877370147995363782875357436831593332305965191218629344248832014784286229673345523064332240916940339731709615399285497779142801550793030793614391483193073901870541488675557723884872771825159844386244649013043476828791290430068761996026014308941437947277168113101777946228981060449003639851127762858580836263378449144677100723949324777366302538073179246622911569982916909777364091093415149020307449548685868523374563295533545656685895855912719449299486152360652503157440879738539976009404564281833216071790348707946424686945842602650870808876540143162910377126622742351485612022748951712123621589373694254448719509674300214704925693326091242810717290274667680162741273404966527102909907832719498406702470038755974376417745728391264906834680548373984749981836068349947996221204334052455987999673374555855336884843198125435044203659186571961399549611222980940450303251318116397814800137615922903123644707674029465554111131632084571123000676860822820039188183371798566799352285672984144286978783774513150439694052000695423802004061917433407492355979731951225712017520510736057793634561142964639842572360950519113346254859936044945263448739251477284770204903779343551792646158083113808199810446140841886277616097571030510006120381013254702203719444211736441282836387734028484286883324096151781698572063460732097336560330301852322393585949315441250049442108447073986376521700672297758848699851069748667994451214155378753840691834778093260378970144773325115179116936828843199104332822575225606367399615309033227720103339137472709370058892978824929880619412132642696187550198180876976856290949698378631050829611686257149436497212466153828559033749122435625287846343040009086488436472914194485782177784005473808614693949330173995015735814542614821437107421236454916127852176001046939128116643614677028803499351610776780985331375457585665688707410640691707991063274197540902698501622908230363937283273454613835583637050272617630353240277764865693615932152391050401566597384451947206306513003397793788305157420820219902958129639775734140196688794326994149083683058643590781665411004735992241972963331615474456204930786215528643085520394890265623665085502373626688469565595866442274993719932914184460834159077583271820309934744432019608184668425467159770588756465298869883349863657249364914520869547309502033783505061793175849011786095275564960434942771673602936619288706963915166722481629406799143456129304406757164559398691064581828960341776467365332271264597978481327526485489511045563492881865025886527443837221573507481030200831260560436664550852510766752667653144177858059710386311993586961422390397172440691172021504300588290104175036873436401841159948811767865015286060901897434867721703081299291752590538285205317385282254503060292769916748231300114833676753633473715024392207832453474204491005964033177959165805695127317133912517972538444970440442663573729128773010702756436067628278912739610254543207516070564942911947123310227176985847035639015483553920599398219778888560151127374886409310051013944758999133559372160640960301072600105575527784532952703799494941221474997851074455653794582258307277956191268581480106621954552031485687244812840216159940537780943544060655803643738693452526932259855165733187596702866886845627170635945072643403387707712870162184226098800410607867229827607866974530944719869540934942778084267733953088302276028367507072609749865374232371867739343389624666987367006495318797159284471176466620841929923800597976093522246774849198061550625459780584238527641263997932851596824061460397121886265163020999366265507669129518662100855529656393011505402676522244571091174026842023676346742560534846360590969914827008031023730985911374894591374417226125211110820619528135790581287330248452576574340551647764528796131898503553436311232611010510554011350765031013129407275135085654011661833922622008620530413976051305007808098968428528721763622414196651285065771423910677630681152586898643152766095989778080753707559156247261619986601381235199824683267288412004186905526022257405876705851177155214678154912261824503952555681792451147096907957297098915691911665969250726860378822808314230101937160540805688793168891898114836458854336520127892376540933060998448242214159179194147635954191337536235634059806834289315659878571874706460554521138982171468141795529843077036558114656198723052859997090644009581871950346029374875504347758170472326932178355631249549045564618898580017429981009652290641497902468418919237898421194747636627874480132213847046855748897218225088114967581489952540575670802097552722496229249234217059020698448283890839628068118286452623272244290876942225947480367451970129485878866732035488963038239620737490660957075205563146356336929174225083115831770844195372805962164297381722260904697725642498501347135789631433746303726107960061029292691847272687381492963841429538852654062216613808891500897984913765704875802517991769634636282907565344916511561402248148070429446961216462476049666549639489256595411001626121472743160738971112910395445337715210898343841359782476727310756587807234091623469750736002963706657888462697233818085841472478115847347763132144143882664418435272838194135329879249093074752462867622139507765281311018613587856015526990227924827039834125380244896437784361253391566731004404894385919751308031322095957063384588118676520094476025395407288740657190014231606343150294731777829957499557465261036576280062382666806834703281672609591916916215748540508180819495946055563048784020740701078535257060191671666637095995378739237764169094444402332736470785302834852661335658238135510178508070491210693209799902591396092138136992956112003849248260147126879343493313632329003603930518668251348386728835387074065275263166587538676560994229393770084313643426341067504673198896325020341789578949001842831490391830851469486327396726320800590328016142768145094375848410886018262933271063087390110558567104584066060439713897769521216802657683656050825597182553453705149456753640085175485909993157153017841045410853375669660648702727328710541253358081723651293706993719360111382561755358779691867734588476246971950727311956140718719398893231463489756511129530052376343301931273158432207005021715058378636973477872239303762516210156626044678669204068672918280404334519584460539469220519018885448255683255249864480867492799132261468700512350476999518605205390426669399554864042680792762163838320710609320439103868494858923059853522032662920693943352119865356719856639092070698798633746346718468019532353776080772056283476236195059278581584170386650144862980325173167813885179114388767368917219157437830593181196474440080750338671886767789187715718687766320277277459167223734134363509218961557640043423392883342038741951351780835237004532081493602468145110790203065276679632653440698907519605157201241371781000825583187491412738991432189010871625899211841351925232391312414653602168167554338205127568293705343445630150265440729146409321722331046086998556626937016502798741599111352795403511220720537392665810115059627824565731143311799553105540059852663342916224398705789708444568755910313775997939502624135279435475991025318670456941657727173898081606813699717315670370428600370422135557415634026934666524827969817067245709149711985139462162973318916913263938221408414287514639541959743899923945912468897549954970106499338520825849116137395223624284794848304312737722378779695316438468106519835282339520012834104042245119444466964450977621280607931685220514243811375915869815485464256659782653219302403101461787615059974686421653942714422145786590089048861582714364917915476529656268819976093451153176771820264258502765309077895433673419659604637399479754257421033082390597489614924956077211710428092377933680781402215875237676447688382548321633671978181334883178768664333537813903616121511615937163680959824475566149942320356170569161189780054214416679110279698535206899435109039287916005595729423877022881146208713519382202900625937344425727480859751871769722454545644570315285243023947924436578568371940174322587492215085728203260773701346408532576796808546983607415233642605048918481352860514416050835205338797670961773790229362239467037521059927504108066287241590681498230066447491300144374484104948280981898328631824180091287470143959270974061858982226163179635832591882313861712401414212103247245565417298069901581480560152516265237278096459088443924495844388933184996689827356075967323919778330990219749867861870321908012081537564891839103931036329852984647879363990269684216241922468500481568664524122578082972206841222275206684129267485182170716394088120059768134489828063989984276254465076609056786754724403749306874361444921885659384339533497515429152344643047025924325494800469884480821870787627646381247529450813897882431842325277924846919930951369658570223899747761418180778815630087216562356013341817596689989076156081410623159816396594344440441914726277557021831787740409142861474472734203389215834349948315630036445841905304424886291080453259185309272114357144497904124659944327537910813794039737688146584655697924763473712256732137279011286772298483959628120457252974237620952301580470921630975096379527800150304316215500609652639915914408447548392656647806597029568775181113999898457408480165430432467230196878002565331793803526336839657548689602567541516570584444483259517527667567490326713566564446947752149371645976313368618027674925205194873453756958256697415493344442885794426324012965516725426300738408569360558875908898717914773496371155488214263762531585436028163786891764557276294855192882598614946847710656931540325218965122577908744587696547820876012682872325886100959907116167595548318069469030242778117515745103245434578361708425557461199294450047665122350537535211314545479410665279636597102995880998181643681455552335181044287220081689048335228610093375015314381099187059919598447560351555195726996772425180942963991275453625850096073686304296309556477563926500804664914394406770555452123156886794725368698269381145391320699077825354761341220780405104734956955181585185632275712870437476631735262667495388601503712382857360954636911999567724309459933863417432229872045744576268183258620930638483210964917281861160218031251430493510185508266344256656116456111396783946198871507041983383436327948177516058428413814023026890324447007061837881935578498177572719489538843164442414573369112280216414373162030524401282028874254858975235838298057901187518570411112489354747609663236952474751464580670131915715133412952300939549719641872228012702522288434541961306797959274075268250747921853175263488325358255589433024617857715983266221660270442403800202194108817776174683879806216823228256006907310622055959719828434495348756653423455834146443230261394975667299223672657682347132856045821219806334602164298359706855178301086374631047678453283644969920803785273953020126102655801126638008566946858246723854481346390595927343825492455776595554052617928134324910257740240623538349045623058149009952608319141678013294302268466311835618043112248761555361154807772238055533991036110830518972665328664873986748385826769391032356776303179633473586793148334538390465559304146008917559523462510970615565817879763909859613625342654793118359045169320930491256463865406235966457714869998980411002529347872582907466371788824609410398220061312749028226857159578402130733038167572120901787704609911477330523434210488267717508514673428439434320113670522579897321359190245571796921321781670244336791523765855785371409655419742351501583876829072536856679435033045055836622590251198425296892808642492785746797257758111770353494897449550056354326360494197583153428789272833388893032583802920156660305208404478005628827155839082993283271453701861104955055600637206132793187843073883660227654679298719129877332161949197772714782561335268457803326764040625578462595033999385905613995314327701187479603021681817863457276738869079268355539519196316142665699586198078241850274412963494852286204108595147486106807972321254932295911665581132226280137366515180101664172591837917059577462756590030728436181078272925693742510919295033670456902619737883808904902428791123429251959618680315468977100532629600642249895157842304504697677618821075093615180113991788650372286042691550161741335043547652125168709215940783997864434566601934963566902285584991142455195171336422233024933943573779918306615410738481393501177608983163715390307396634015960525751459492533410053618701604149774331682985349930905971771465882653669291402983023704047160915967301459191628481354645399893368667857484670237582690875864355748189716963565521457067666285801210013482546382100655857776950622079095481006081999928734673023871055841717072944123883608779553411799599562534328213281646354913725267990330013024815599048631316101126162876466046591564355810735045310656290366298752932376064020776812989035101100452639696892567932397015252851668713644762443105502175411237083191806642927367063326503978402081555660914591711326440982549367439508823766104924209353313360908380958955128192612344394936444172921816166848214091608110506079127350364563021847754999228564591303808637436632578859154285633740997789703799615734917421856287066078022861152117414171915315859488688706575916935280803835958064770683382427662749135840540714643683325677987066656745138219832274662958900438123154398636861824134009821624144397665599443085553590023810446928039795654758870481166961488704733803904335716194008995133254109968573889245488618371695026780980691327708883408625501751178143043308166948022601577929853149890230094957893872068921060039433106502664855993616819048637727937708254398094571018231822795927502168890219977435336550516847180570809850308973797408099006539227095388261980831988635822366311549063782006299622012443761738861697617543909188281075113098310926341861986306325758292131553077745398201316134718397095373469825741378905539364451206576824147295445395844515478314861333429776694950031053168772442333657575760420566236862265670165791467294717978637410582174472776576892162409790490867944865872615913018059620021634002017452803412235009603094773616735631639835860826536192057825071703676202927992357766944003211934954154084901090125635277838186470401064036496967305384068727498176116808795854793674524636428951664110017879207377567930329519626194934159012955914219999272574968143311627530613346523671103243849860596462072067155780709341602640842336330968758733607169218468565693824515289207365069911315995665960087354199906066088360161067946167988699081502059314148715211670003912424138187749285356189256293239260264379102866879009127922924405284879716231052998806878307778183261457898758455021380678926877823135001455906120497787219461774809491113074559477233741398226647390560052893722855093452856835826664248535056547591221860919218205283447147379713731025500973235695669675034471689691347441425471212074947593802500589010364314090993372762052519626150042665664158526874290236630393317427165769303133223946593557160745654805591942494362368058998665867292291438859687705950382521447953795717250893702377984982217540788643595512327035050915706973581391224303670690862062618631702846352541551780298928015160151339966329924241097283347259761597946508320039863453571894913935064160543846772062510617496724552321752860694349344525762726559433182441167237966320082116041322874425618229508853666426657399411073886895745329710007428713942887902840327118338246098836194522627944181687268811095736819175664538990050777557051836067726166704726206707449565822595326809842877414220478321045212558585239129600088619998052933488725358013934381870449841071193156404637026489183319029653137377189470209999163034975665892484816231897077287230647484393956333904035436430114695536738521666268247617836386408258284969554242536970384790047875198503405367147669506163346382128497910709703226117288372818248245979649288462578287434269685580428600261616362222164683658627738365528140436564132348970018773785275033345994580526976859680582871254926572450467113415740217072737570164289439455397875116808480943307716626869035965549258045174728821547556049977935223253627402272325879720931049774473189775695668383928312734327052569724804024652275374109934916754233227826233617035116997892130247966012155512947307248700617072490241339827939715213880087635771237575905073156541992468914296740597741674835373733445692981074205256000952221945995039722072831466762322441021293680612408568850674066691230468627603552307195277745375281344622139174645730852750044997292962288107598147890816977368091984368158668430170255188179452742898954949905654893620654952113816013897718065936062584394541857096113755742599752267391250269753208597354468562990915955185694504486988193158490349232164838190440332212733478126236334215153409284470476660341923149028645629999563322098011930279459776343195810204037846383616422502827826624619040653353192448823635509363300105219501047235975684033763887816633486908950792656953488355985397351950028712481696865489672785628392348543576286063692801205506634281404998271115618729075933247899688452680861431358894927100253657868994022416113110950191306644222388462759535733434750307513496268129063202757953489421509597682383845730162288612104718193233647964246223998104743164799324796917215873118124867566368305583006676921207696767129820814416260936253173935670853697844635456436439383640798962069522842402644345975300730463860024983448193828281844019080181073854145004453032547786433284566455450627656284967732072187987732525705239442266521775677520083846185290987961711191804086502817835777562032680868350040590656265977722980056285119344057330427294822911372911253878396776278681687533153657788144732146547439336088678169788218437105465345377468056820130050576798802541210988703739753785570331654585436575518580575442047090343570028238504661416653756352890191273304962608876071973403785684096985600038947246002611399039450894386387156567272334945449838352580750666000255820462601719727096503609823074303058277549759131080553822889107965026803805398557307556379838121772368137866737215154987600450695105807813874145598877478115094467948085929694173649165175494253662882372830621587180749328754837480402880634213379770315091628719481413277764468103174483421000717948020642991775860998431523485544714610965562052304302001228821451442492491575287816961958842677307945658126918059216316059021029317499329121947146929260442316978287294991091897926071529305765627740589933057342860447162542401640423943301017960433583557665136229747316885020665391527172534736651450061058176570751281841052905679044635444816859560856963611357991120504875519575591080423690831724746450492397848769556931130410142314734799035676068904783480812665277664611068314023761683936046598098741035432105864816789733546380403660053498278696067802818418181728697299434068678034091495765081003818828772288670190145136782394788615441798784499005671249407232467264741404528115696095508819675008027780401871733022368404212342262125559673878478003580368611982937447511853908507101992560084961571959650598906650759879115204868509247187451716422171467422731243289169205181222138461910576242696307679205911307302323241305327477178147010756943901505252854746011297204730953349705386485615887216604682201985704486321412393408588524802323050225718490608655077944039423210638263647089748217446937650817095786189825414988026799352738187576593527660126684242648789837411219641576896290839488820256079244620969697109291350672529356269741731941963135436903213294433964106904038299054251054011794328885609651077640420695127849259833359651895269671585025183890579455861679173701938686224479123136146101972107317229062916935894266688283710727685055337107223093907784754971588621072925678309621337879959388167684490075316202972741524661389842908992140731541500213399166231609622349431933802403920945085831058813878438219013843621408809418576236454695424090485050001228987649580531135892038519028174610020765953609457610269349782599547564173247748816860724666967924918536464133285650180178130989934134053112784645474274624705417351775140503918129887510700325897673570212867919318134233587081837153920570249754624638022335946700542828859798842285017009425752429311274501430818010390106817978607352756191826962351961414809141969232222528688152550717159096826613710959418927590244057671473175640939105730547006022707778766434036761844879407526900207923888322006277489427506391668244223062394045811892137611994955903800307745421283114657790077319490072340499426591920474824112897435272113165904327711536423733954914164740589948505039842065620680425658224806727673851445098465186702985240746101486820785260883158295903244287192187633934010105053550870747093880998987854128145460813943621649444340868113766999391050675709453326669477712172403074812887048901128566137411177618220549544249460673403261816025221935025631332952944526727353015492262458441315282888523156338364250860822944794930324832182600248568324780013048456334909043737688883506263189706965542666892526714079870265776410524841356805793338170341818264032879784072689179875491642210786971889424978161329304263603704594076966819706272385467484767715174736201919557397469217165372334667301865484888838792408968961822585522274798129615541509827320436331514370546268791554450335400759990055025237071137782897516203506519189483299820831723887076685731482807596116133719083476350584268076090092201542367729755746890807887022728014034650842565127112335598787047363404448965307944055572125128276730941276143767969638592360798022788908653640653316996552477137337545886189190033383755089369056650447435132286647946681163809719768252176879172110211776850645631424319891036518026063191701871798716435673960050249197425355367943565935706617216155778823713935409609175978387126879898486473668682205336041037770378029055034478761405904447005317253612058489959765330569583419320884998940252694869279199223552497552007099070650656881062623146969675801819661309618045708382297234630312692383216674570945143445270203228574184334557948190807944957453001594030413457230287747178918804264027096211707832838691893093172284877273895561689144326037478529457114083371281021184801829138257296832015601855821256803308830149402072516510740739845096670041654947388502707812295916369332974691686886130404974275201130230724632433596956493173995868255218871623149034827462142353629658607974330503201540717677915371137764487471912194177319124103560332091874552638142673168100822362440081038734638828441176293644988140277450335611382563993735076887596469088934562143974728386109244460630844078700741912798387309527922990338261314823430052262684182949224754628615100611720564081259582299241446762210152646292690465208125613296670877690009808990916214918905949358051141414960854865611263729101967459636305328646259106928510325936784948672675037838066937058057561460924696178548391491760401986793772114017310645324573867943230582802198100159538251030918367875567312495860946737604411368004114223883870784195736329661583610811392073700463817541779262020335190816219994178559149806780121666523207040083279409287731579808429178146293505332690987287049606530869414739955346494209020565489509693357793631297938350502732892807817183084327224989656789058012651339411577942552584153461493688967853955022818054315296018647874875930162134047567413832884704092906108776800683701512253874559059164806423839432038505818185847311551208072428641289514978744067973507915627205819253243742198969647336539095067629795532971483391093110177636203654141913758774372547367264327015260959670010940485334460570634665040977662276105331658096846053526672282437312299997494886862042216802750474529149398325919825768353696143304510080247446602617578863542636257233061646114259383180468748652805004770970913116924952763939065941205220025773227637433892606326696138153043583683316208745812228038361308163784829483293659205332608671567714119060974856875177376801358375340896002802158113558299463623128140802917554331019111239952977317631015543821742606714967809618819957161168711717966373116267279351832596003046976297251315206797900959785021497801463710612579267190716380751937996212672228674929145761441921559907810137419461255394549237706936063570387850191347868327643345909920345726871169810268986462173066061417885341621380692639425040402931925313356153765225028011118871824519028086960083115069286128682237562405845750447383170603069531739214213285342598602827330171708393785995290086029227548611873695746699190157351057244972751862227143168248490591702383504199350007156517133333067797186185340136744069311881136744789791538721895195778741058548489784331471229153852480962345313028325137732507101889497814658298838461645103403878711983467300055425695511489965434081052029596660131917177999973722012796740114708901283068316988304347300966761766118356609052852542797742626071280835689281068241131029491557593705562266489455282912581313035398899455912954292154414251488702107594465670750252700395838973117219109510195240699674292464508222514134504659352545890502089956513109361191499321937477989507057866201297412002987089107824825058009706547185175913087249900796872391260110926155684456206052336646281720052390128136496366697133274777969762817172604215165832857113345957727289836487406698831790073612967010294416450953148731055788085417413216041350480063813966292945205417777861790990446457298196809753313762707796096715639347505434486613082114700516771943523117841906098997241518315793068247547307948858922696721362471173417771417193999873402478227626514980473240076135255960870080127182469630835113795531793515998193199420313586241142655260846787227727181258760832092847283126398948443361506409662144873116331691895657120340528766527712361262583278272537262877173199486515745756675648860581647619543367762748977199291948823147260488865397786733847284787885157760434155673739223975461485550682366433773296997403518997363059829153315531265874273496613263767719634639432355734121022520102223204114605262723115321022868782429579882635568652933137546459819801610295480345701226058863796810066011785377138263314531404603867219700804970719916973087991935694664115428768043636470073682456397653114054600895789133378548929483172753321220032063824246773493726381381413714678080827931295471591058097215429468172881435805074630336880040480294135115702492896767898095502083103724130467108004680924975907728457141001866930040568453317142854974826127368878542984812780771663161696627042353996867910167646573948842757955219693902845246366449337112637523896817774443825136077454113107670208598487927504062498460410642122543400211235067846229929233242386232292519521228033463049551305888028117371861104360949897204168735523257930060529385498852366301035251459374683883769493663786852478579049625986810016407483745566248806304657567910144435108761558538511471962296117161025670469490432976727388570962446917811811048911716206631678004799354001266541777915895778554953796076972450882340700415124744349674277820955250730453267641059512029485357356953444821901521296093132479640207752386108213068324090500924028426232369719329399300783809645009599264166093345332825681708490837129426984033107067342679571481440945181896782486819104933355419453511855277540660940411582810699153302236587869401076621935280628694749397372612123683120150362359853986271176151777143863738376453022962567916411431729277233100844989497804178407959249111662974470973205765431603912483047966688733260294813218086820268966806715646126724926415891097451566547949196235671550538358807594585374755065038186935967292577764818035450580430894939218046256768167024298984046734884883297391290502094963614807948270520441325783173164915551812582581771016542946938717120706063188323962126244448808031655550476475255946922241458553273896909467112879684062433176891054371539444016923408966496208304232789432851180407448622299360581935990280560350142965559230920151956748706959537378303330321874575595271951191831910297927749870111938363447706579280479056433215946592980856459479237374705330332403658269938508791347857456219778534845300186290540811173462378083495105876790646777953841296913150162698677772069394104134129684649952415008721538278692640540770765087131812109705568779680679123163635035958831219939300685046689514900068546647034403356147259314447416607317135027751545466888558051576071919513748880295283124671318805564661671477225683576380221878370989379064462230376693811769521224750331573410667601438816704650375680651925609774562920758238446318499343748057228374087463230298300103196994123975055425050379764347463721036508049808310299533000397556416247604252811139156739365422276458021058686561780732222675720150691414090784723815538394167740037056262203450153529341581361338844028244884224623049786880815475740870275187595334370731373957312486531037614712401219253427011649823289810664984925310117212841044672527995275659387220617919531812335127607750260099317250370262592287529215747695896540972396522735522071779556739393984335230373098406380719609656457973418918987371178876072792309065255362760176041388076069381784104326949810668739744535310971815700438801821449096122500832976627195841024991381014406460899910085867105050391244468851118970511697137746421827093255152607669009285281161088471124777897530758153844365717382797887604831236355644000400087864535187591825123565861439869415438405224112435735524287180920817148330322104485585219959773647040681207636843041767656832627951303638754605760838843907760488808071137706584356706614036460379785825647983140799554797500238377237031708172566190124336340051185760174089104721713869671442021322308339021945797208250531705568162333830438761350312561285297628331299525480833442814095666924564119995933639385596029554312841156382715457070937819654927107616099291300821784589074434012543456488462296925582476671292082813416908625454669921289626113695788628813086145938309170533207636024594293878198819129753084432954615814458020426404481642613272061515100091631065299729275489057276493100044804264385463083506379406942841182088452642025488502033863514519160387165650878636985825861205719964490610472251967533232102218187802590749602107557821089414966616137021575062929785357072963809278007941177409899631861266800961249081087163045302923416604750925065613230838372062178081165216593708899935624142367868101278938408679403325369747174714934187103365640086065884103621729059014876017983892965158783392836144088404231389769108719319864333029627745536466239199275537713497680826468124070215963711490816960190134846040416607741364579367106147077864120016586968742634455601366724516164619220041824908884262882490522095517368875389100193754382834855269488340750904846377573081463500280436802213682512506784971094018479287177289491882992851637583035066081529581968807385202019132213681060114398544581905850676513830103913422598669068080036232808757090224577174520710677184154661944690451783341736284486321441468374438022008332809263406209703594843763246456528882150355941691503380576441074621520397443452282212500756240128320810063896392982142390158622142289033760218550214251831112255088699527722294263527425622413526009592608540774671642090186332802426872008492787756863557627430658060863220687640152992401593399161330386278130578578278198768389192182396522447170509679639550046678674026565535050718977087385643205105801554896465702672835829225919422616214535821290052714252719056435693434300659270623907379135244213435388135898037969004884052033094253305284295820223235878837391926013333029061218540032778180506353865151619425895541692601036638418418908466642839193767423433354449240952367766662999176748687835312003586202291050025676135365043583117149352907962922094807412975588117610982108162926393578461415823003323569353459174337394633315198882472824020023200594538914604848205859698237360177979298418858348775380569548027534541440378641012649714769660991385933691856906343540750823080811468960140543682138122490113074888916464385051102314228223758755692652388916304168210218288278570626898820420421514008605191131068797312971512671611799097290750557453845355700773806172949700379035530614767897151423068255849126391518138062123066015072157850264621919498766836809530810218469561639151084986632874212100862909201307411149147008368643301867781634600383347867328216391400943189801185627616872293090281920140623365139041079621085784621123212745696644794851696897863509561065128316503603252312712405167332723457502626946245595571522544943737710457763314482929122397516555348603960223317815119169060879118678127947584131211347403389597611106141937074948339342538173864401194212643658038589046707641825905287397177427380804009302848974655120453365520094515490625451738088189223319576883862079779831579229304916510854902991099964962485214896884261774056990082968473755138432015907490561749160655906258035162466389074388151881753130137994987144266731331425697352682401628711234255997461815461145139093724297574066875305003494469906652918260812905130947718903420635186718291740983422915360900516171329038361304954380091154955719209546074020441927127112936517922473905706764122496737857614266486837915885674000757588269083118707625424140386478006484190267594058935143773927779339274273990840286479734100511766126510460246042727913633655829886225415277280089187043870739265034512973636076933899982988054179097552629126084968503088893366543136140719044534052147013910780485734494040178022907832252087937358786180679253946241115025666268037424092032750005651880811502508268488079737748283425691257304633600301471953526116125886817013314237706079083193823683322782433141252686362993502837202525379412543887716062469996260232004138570554272759108176511830190551039168165482395131145790944950887959740795090898215014943367056099584624334610031033305547372416305717921134294033560458346537504649872168821282416190113162863945962396652808320997132878011734627418011235533971431113750653830832332831875848863370021727223969804983793440540674683082361796026969621775851547234222736487030191476579065106156803138664035650526290877242371828479755210101498061383137467215574365955424202302321081762296878679006464465130009035075080476146543230981015692259305594826662235616139242853746382426115337879437004649463570377315504553352383368287290459214310042883562626159904142062072444192016820929634613751973754548027138102224271972002698211126124898898286674204183596455940650721687707877298125534393711798709736193489088386246965771762266674573875289281634162409102514037871861950030766626876140787881007747081674067996753028364649144020426922195531088303689419204896484461900271480860024632446343505094719461474336071885815255186530771863495037675746721131822600068430349969367538637225519469204865485846136737140890123849271215719054151615800737571454834383554074396208514980740922278012570152303366591716801982170200536831586601888398700809677945742756405415921100169378274050610068220428758972265182530342850966128520393141626992517458624480887666828213480278898995661563029391988001173223540758950926224917773150090123407608109755577225704253631860556016904310789273950462427869737663996946421511556922600759433281687032822710422626575669278741963871505980317504813421751921934819372435023510039286891271612917311079092267096341655760741058009984727818657424345972578281532861192749511617886847281062215491020802262619830555300447106258847225634983011337668730632124196218221040828818667873357854972276599458849784133311521003920587607600348085130795394479984211503006069156365997156330456831119948912485704117570115216501019595308196577662371615732833419454127899337469015773558758133889195663429550565441143355372534421762935870995081693795098769145932142994864798307821760845580318878016603681844260107994780183500880077003996262342608199437259005329105222652330773828940898893557234245213828204840261042221056542596847161681023719556749387558809686492032674736931255491676797164683962077164400396547171474700088772807093964646195937187449799429619584891791628360831904972068967107903780308179524123335065533563040874351535745075733352436575887134245299866955970629796890428006570810164014571694859016258443017152935685820691088295220237344048970287943818881707755123522735448607122954199137178837389471926915816845090044396144243319119986738994543750853596488925762775050807066411214696904254393491159060933966238433338085227596988247294879716458575563489957174750362972023056969660781899828997756848607886673835952001367360833420215215474919120590992877217278850335881694408341704041458538783564517346325414107458600322127013045282017685127452923974844918911197365874377153443773579118874047795911106811048481005353306796494755581266334919113064015784396675655322505738183110382226646754207676708352828909419628901976708859678179116350870066442597597025866567675492007066078823580925363522484967803891805686589201868144531018448201727214987946048951616831311318783206566688920918388811961772117734155178105708735214938611293470602463193002170035819913699789111380335539420870563680800902387035685163726094079624277335350994426460298386449052476290410178098062714722173438004459717563561276424441357125766636370397414826797082288519380089218864998243029161496701228110382111439112589354751218868515510858817186166425891661785601073312904060968243919088382265190533226998091624519834438612158894601889157856571282220294412643767321013682048624423691672571689964635274689153766399459292407595895450433108678965564110044474848862710355120583735721470028958013132476992663888240670338090000305985614414578862820847704361138943665668633200692645702069535340738156913945850839742102517943344919810928392391957487575706620980306191279297429623569976126457827384462512584961113055120605740975560452423366960907123502038604836994824797831147461954485107420723234465414261903154834489287496246161164813555225557324693864992077758511936019547781887864719000183352343151037151195325849207963717465087994805475668769186148583802456027365391393430408341089096320444147008313479148556837973408421686470035888274175084975827123997577346731421446279318591578667718081530261546553617216263583953692712344840330646145177974122633417127728287236841135713840728995544402336958141615414825979698880507237385677506407514087777236510269709995608376920969852449424810916251437179105108044243095973549095352741955186486486010915039663961925407886052835883485473798683004833384483948777705983272038261929271467539708437159980295482542596478715770806605729883040594601586299434964577913281046771674185769194861871282607279661420313921341593528906386671199098725183136246062673624764951319752118504945169747354406634858029867990359612045981120485188765652131663435514059453075663034401541574471170549819883349815579119174450250785588131057064002093436749689633877571584599301483497401046497100883430229648843673397278256595216174651107871531722775380156635500650773106411059036635175690667715689567001099540434452089568742416704309510307240061711588645415662719027333632443916602056348934109375229311560915631326103912329265567409406333655244359133699059397782911476446173423854174803434154200758764975751769533120876684256097178694381513167948594788361476268490332971519592384382356363237863292946210454320759913791180973814537486243695183450236428172242876120216910900385787675145614709969513612527691105811080606160469730672929859453642801003793367613064529784436876585789445010320042503589358295810766922846590390234758671400287656488734413624666000355288469788743562171332539921859426804156684130731770956343457779835482302443527867255170298538531466384076685571536762433498111646515517875269267154927866607286296042435194354857642027673425823117564416117677103989234295262822896283412300906002011446031223867153358476643028913151073597728824170134605899772110170271695526881453150596733483309359049114103303257690611333100926866676450893848169675428054292704980402813272395988568440057576750707897881613816512728218992311511922287943263875084180848328104548781157841333767353493342284545782794959191368631744409747382704031084078629664930458771472744148521888693905333263267445237126672333635846127009104091079574470809129535976492228535408234517261202101883373338238008351772321570372537910951995797457520367640276254468063219883408122044478858951926705042333285009667832320322891026303647595458674969773118727596333625113618370142758746943891293549261574181541749192809529712394262350985439546014387590368713807176629042165713341084905757946537706900401444062924592566198677900949313029658738662663246942771902893458297074695332076781538883402044488269949579343374976994414218457352215195356797766994005093528988830503793682338270824545882144910383056905634608656751397611668877314109858859539396164675211439573229061924702870151480272390402817428485633088449551326945509840010618221142610849873361772760770811985917762507521688315418429093941951687206122867063328976222434132783795538610409714782378825245275770552430328027612644413485093198260079474646685724934919190457534425126685339352052317440158184700058817702920047269138872162090732165854316986280547973925958493401684167694794412047037230845704041672826121536148903362540190575103200917877829342262534242136991669933366352390604818004798393990737967865877505401607891488615674298155032238063960115711832034045151932801603814706804439453020575682618660695289463227223575193129833130116313712482232886482809745439384097145278314630616642020587754041980734320127018321326558536213285162519931019882658551602557299239105954910894819077746629705290647856915300053224229762943627204376333372747761839826877369890063161389205732415939501667832206891220028122244777488884036336963343043287048695759211010312011544445557697969327053265054827851087287259976005661943541118165536417732007480025558585371490828475974850778969924637523966642172530909327973161715446369232516630874919476228027616514374451883225432146111963739101507223943603571925209963873617815558400925156780595274740385368693300903779841711372791373772675742458002250179811830916415466757076102641075652449056731485391180455482689527038050483874029513141081590532930668390867750019989184783908152618833246602185602926199960377851088418575339112112281915373754695025890040198851202403090556915053520009969722721155783445898172213085028319200578849935996154556549164685827655385786596532232692762925279557757656661618494907149713977975592029122077695858189740757833992392569276305024505373565868592565547413170083857466059608557468090313815922143954790372274979052445716831772731476340520439474962854091061122357537498994690889622657609048734387537047555730114927484419397198661035841086217693025654986825501857814576377402130910542039255884738914365503238162303822640677498922890296494764647236970559714433950485435091988213316110599474121102975266802026633681847359770410860011464157557068690982735552482744788307637129795404219294375434105988864604018587732359215539324828632885359929716999050958038527405053078446302003600933959597745242423907982263718800666055088689027933661010606467740604878837144466975939495940912294722999637381525143669779142702630273347848235548252139303218938229031704538075875419431672244677024427503494783864744482297829387726950324699522128256541903682003546145283077181923728367275448203012825294050539880046139553069097974176856763976791912160648991271691573472557224842578044927998774984964929628975475316352997334854774576242379943707650934728055761982223362997437917161940320989809200081955818528380507729788610723822789017780275390753537527222618491820080383798393247007285634606877066926932650587946912157064927874367957366874813306047467579490712160148497464346822787206041390444750598810816642038643856870167178420572096354058686066526381233901413321328939353603376577541851048845888533256404911500684387451284551074839037935163192994160223211638432304838038489190169794734758236001428552570277303062945013480951375328777478482843106951320394600023719454253912172073224547659624363121686028597052532277547991268893556416099253884029307709327360288068358309480416856709846879471372127065549605924797409906536979902161808744314173573416149500358586705860873065165454235344263110952664597777066668034203552790423918860477062224405838519716540223795837594848254734703392124039447737144826689006251635818729405897884034305959615131477139957032047172126846078788496072917700386602401680906620204116529588649581553531431683348458263275655290205374526282409537694041148024495468153642390392511470343017352454975287929089315930306886425771393307184914154786310520619075778113363437953539305792657384848306308730953650181526681569321719045915720077739910571325993848589073343418376220681198707197433474567254286292519655980004591862283423548701070654954158015507039786146857227912761550623872562076481501978706128478378626328725656495832047609382101080702591269372242771886051241237628243271579787771285037627873466517519599724032909034048379776297739923136392081549473917436771923499370799186729699074053619929559262999597883644647774150255508784682436432000835795453645071878057453585559364278620733258416234310947837501973560215591811765156380656331728213617084442099805609596838347424564634114120723918208609749318045557504447182550794752887321570758676196602260005209923356318447577163259322107437200393188251145484165503496336322416141844999635530497407926958383867208170212881289804496410290867152234694727495060024491197887516096379616647507473176053337375970936937665937427862905536446063072196358875005617489023252624347038055191348026340996646906037356940372591254253128303605952622124590273189679377525432128539363093412422309331395647768452528746349721189221786397658258662088541944004095382340424224265933577021026440165860044640748404519916437169381452809678661834942002216087056977383827079266792683774848756257952431463139115712740868417760184005382250654986270158815363008484134849991126133484394515620666548524626503421191138278094703970806327745076665046211539117828421232841833896696378678635449463387334894518028913101831084291162274141171718399649060871618154208449087149831851634401864001468940807029866022044777224638681012569471127550688043300994134629177645718404942472926088772322952808707568250370066711901099147134387262466240457020092138181570855100006891545571208137865621490964197623795839142931363196014366073648654761440291835828771496451885973917449982478674004801425831519925857005367143240712307663023386854768024804585210512030610401580577057056626336517565932207660309548903157543201570931937057690903359581825835069458416354645898627054951583394494369628485506104152796812357887528559188105258941616443561929117400896196324409459325744663101542303723453779310639978660488452934971985969849336319855707659881422517962054003664237614836891141992254105334771451283986723515394843517296712674451068204794063801759715509165642906696446893520336634557954299783948677533348259321633891434298359880579969069451859788825289802786981959636687016796270357512356402611818842182702693324995580737102039407000616019602647629426308563896529661715967619465407346816112834965730672778448171620029511491415498267505621584412554383210695521763462782829766537659099283818384652763304082738470004591884810968763663662061755719280992579848246012629284008160063583734880659314120542103996619870416647319363311944241337188807085860050610667638446006200471956080501206165609354120259598543786145578132092947954872090329563354521034299671860924529086971400049584192268816355915487237752106553314029012365645901386278573121532975361292390851120503072313047765680341848945167104165667273178866042683124123667749712183265564512185407278346622605364580511337605839041635109927508831752469463642965488669623165728452606627313648497990142385170403364913146939575431426950799353769688175525090472838489851268599903948207331069841298340447150100376037425360792239012165893277180511347553467531459981214379726937432668596090586221985476125102262549256304087395629091377940064110455198372605297128261104655166212919006577272581956758141175551171801406842801543403554628799748717380467665376991244569410236202094033296552084709947641881436341652884454244401245310211384097001883588395787283770818675391535478897730492649358866197658423816631325851468647528966923516987314745756550972536994184988619331838049200675772190875297513548271933597859553862006882433991353010723950412341315509512838640836217428628454398587640668682802027271194371801180360402236367107625101805592688765885735017281427418919340814297894698697805862981465651678995587794688556642858593583357226713850666510455494377168989326376798803692815182644938255896104726557215954092515335204338549359143239454002471988144990687661715025350079410382761006255692699270420806647654630018828359630069726945741923070399237045882828999458371498150423638786900848310406736596341215857630821639633356038286971918072598654270156761627554957922075155347484992775641617136944534288251413628148243145362425602906805290890776477200261519650116506849031088230735148917768084426243943526975602304957367760543401165192171239634195167635667680820557154706991387764663202485200174428508384592448057392074822479042702486054621643501471336693336743713519465017699887142497645357421095109089350469943451079279321919958833321295758347908410958224531515494603737299372741145850452653787158159474133327621091173622958192193468679247397220543742499199048575512805480629589324210555379781888102551172093878996395726293288622094155413910780741526972525487806056891029169413407314442005595285546070836514782389818332033512664826098248676596490911203642572285459645779579340264681356573219189403985452824049239608170269062331599392332302437957407897863464711274632362721469844485014742996972691131509501969128197824717570899830139620352861053763450960478918303236562447635557455927359865159780092756487345628917243536302922683596971525134704302231405933203757586178468458109271594792650281157903940364941607621433938305197489601500909091878825584929567851756314525010512094772670085407280341844096550235021421338549026265278545897158458364332027746267097781519541109117637082939488844410859207344050391752907572519624403436614734846163507162042406457165724636358214116826464559259944863012280843725356842587986614027036484349320477104078189721766571378897766618232723256303075076025634534506679729730496382370442482348094386876842685611736469264211887901889750199775513576251821990832446698736036603058295366660367949761207216758223725481326773702385131194859648735981156968677834288273578617986966444887551474740341852261642559015084361247225851413828362923032236568647962414202491792740978573327792191672164250002912068393877549903587592398180895083106004349685974109602585488437423209310653158426603677278452764382713867379064162940250867141332824683926797786656199294088583321132345600184177429237518843026610160650699056332243892867816685311314623847313576019135464158126058814366806708610860421282214834692298122941459347814474598292798727478429869736398621864739016294577893602241120961362568551677817228088776853695006079377445707422863477180676073960973307837421341742245389316798139873632203713461652156028153413078012165836924447054386424585834692981195489312352387964334984840217642813379777825248658986500611884215498217045974380362256989321135904473443767433741242377545952112061872003407791017501763985396869281665263484106766242527399981385259443318402251911337783451773854730846289478035698664838279630351609028950252399260353989584182230520058170048544100737216995911448525292584301466632141690923995236355393075988174135734425718923512730036305839748797927429537049506716588872309947593823847730963035762318225391486069679193127173572341179773536532014018120712073387478307374993929447209739876103366074307686364885060013347100304956355678001020896780909931813590526176558566216658015348437860606875215586448721765707875055912923550871334398913146816205976259431066615886064089315570538895625435134733105907680461269811730401222326061512809258875883813048258471690571841583638008586148570991714651505579301441840858906608156934881857730591641933979439938376680626007479491410646302114434674656010845350842194313097415105756807863429715003370593237456958385588741484041165072686192669804996366720742678112725607841498342643240549632657361792104451963741490006268640625660237615778326082896561344722984420172681058849599455197240011239136127816217074260314358276802991923662876681908373282894757908364487309236045356418234856819105584089199247248811540433328499907553990449523028524129352618548969208392371404938754280063182862235000941308368696597318008808006567454911894425473263105196332475734798270450236976809284461132776155250766015408136992949538374793170067872127424552511779041039426728543675785937366742332027892576631931352233129980212546527567379046545782237892501458582186752274176119661158688707491107216410404056092025133574937083538837743105979453692201149560880403647433796763571389517394830223384027492940731241371291922734500634265467201795341566021246867991323194044825048866240735748206207187827173656765623435331588202083139705105292766024484129264859517125340842712423910435017360284628589141154251345422488715925657664741408630743506081649215690426767353741008783918374545081621447879776017481299815491669788778485524159600352216862131445723880161198033009873786578891692744356271584845001899887429391861517725435864434143132390209497953578779717750537865810734181446276149382072277714343745782398837128117941950096088315119251758353491689991818954481173886902313766773191770201150420344531269640547805540918847206174251607241006434915722239235128600744280488864113977061553324730267609661443568826301542122027954754278541715042390299712041039015499073332884120274918953119491368642387318046063169271649577193600267942795112512142879057717967749662437851096269812689009833073240226528309371528071186096403747499359113542190253348369482699128984156669737564846791858908483785019133471171819841783485350688492733762343136359430009208280071983723897890938365788787640982195835798434059752182779895869858797031524370197980609235570828684420305352299265352662056676936123320443130041939860071100895655237811004091360336897049030437979625819797034194452814843609342548853597452165497736590825853162761434148536912284565369193996818613696073954600369452761274528309346150445554799703047601999917717025084900362598191687983462332333314109440716375648123965911615644787063700481556449425681798751980076071433656255171786111355057808129282788966842027260600269341901020937359863581631836598101593672186513546844030989655264601863111900513803888477604643585127012716929319036844571998793143891676807665416321270938654021896433479428911615335663964618232990150227001043973928618216636055549804405771159798336705115597901934465272475525912547456016741020770184218065657925926335265369595384745547472649929941710503602297004549508816130812068658338620858176098649568173323543319201171879697987911738054205419659387688316168343036633767138493678986466241424996455505156811507223667591591589834953618506949781481720008012983655092022913774924891610957884601272632367117548130346947046098592650543905525061680633119237299132718207426328286128078176508614780176089261099273483514869979923835690542072566488539033707979503949869015748910458518635419771367297013818479528762821109356711684668661428173872756401635585195385530816850568387042792404829184222260415840637210302413301844225647564872073961902750922169952742105276737179517166006157816414952778471579731510076039319359084294935618243800356931033498897633233075440625813352045258031800693071449711641276784646548747016192117649397491697581814633641707812967555401735275244030859977623748118125800398509803268892387301871097794249999817643828261122316520561668993555233489045266755263312987887789951739491716036088142370933076851088327108958724237959154785597875085379750355303019197823286663912691799287062478502916598309231623280636945484487730132581385166083852435303116272112323461107564117189621646485542032773920086515945645307845596203116242980687843301638453177075501083171973701600859793842747410756902520497911076073186973859141293546643480791625406693714796588209608037003196516107536157290609732350235781529001442067714403059585775724666999214866540322456115388551103275386298336291790827700375123681595820891021677623003710455760629382370530125163573573591448893166560634394438741049172076176962135289424164627040751354364941856051316216001165041447572444238191763814420197097459009993925376846750163360537080162254899179883120183037930380410644517176145585790950699672092850536675776715091156727903444769585506430747040129095045899696397848134463148820524288137636569516944819952378377868453614715275531458654916577110138466271423181979307598261420632326396152816394999473932764642247007804094543578352115160292211871006073567200787019799608714415575264231935536834232991870280522661269422147838823371007194595732783306193365061017467974605523078529054936622872368483301018168748322660556330624781645761373985989567190772896536123171726427653200813590264195071090687356393176967712552280272737007587813223713455935885251835373383331238423745032279757140939128117120122889440928068824562515905588518874891779731511556794966119969727169074004408345673322100081970919329985826089463515276362942138937567025898537829491700158005835069943703171857336119191038193986055703100606144948320613890565466446111728561075369804900454350065602800303676100703082674899586529833742124854819090757971611752809813098582544074832121530854927195763882159699412807137346963454980192149051491954569398628500053737605595872342449258626434819485955782714298451169838738036234111927456011045330504046105978961980795739689875985369908588733727054803462012941900992440047349936944410127451715723692378096484486379824304969846469927095182316348125519562396071818426501750519005631104891056747634690624435866970251193490552761228362926521820051480039154811879276354334874346256698490005297363452746782550110173369880322971572009761622305303236958959379353264471453080481634706293775892520123781074935221623141328623265955083219218349879954481045206120789306806677289693242809725277158036421753670762806481338966042720533908468221094258224981260760682241281661829332848758931592589382527574770777046822838918975982385474180849303560628947456117238200163793602631040555420076571331836765915803087828320475213765000123089108964603655283650223712147099730725593510388290581618733365301553522292071676420414633544021497214825455783678596831622225133659477420422039535435206807937247935834565205358779386834891852389132805959203396131990002507054733651180428488581094941339580214589597169791064559558894663458165426962142095581639778346244065856143232897733695640616069030217368410651163249873921135559601542139652060217054908571293371581330396526637570659521490359151482065930331680482750589396170317888304757079228473650632084777564389434923623852648286484429104467368819431751910320999121211520090231410082468623534337843903498159987175171891621633137260779657278684968562807757935655350549947973264123808602982726012947197690051991348931570568469994268870830966134372699414193232685689646674241716772866362685988610371152760954402697935989753614329422936562216437932344498836017032317848378706819391482899170571855521863735870051495463075312257243197611565858388967714132578897422134188279863743598904722986090896228968287313284031640951504310446764142118357490961136326733185325177013259826366346218959073933406881644737570838425786665593499478540925037871039672861582570029409665682388976382643960546194098231952852989615838232230846401465777592256974724262473352755314977715570605999693274746777009740904132322842445056736305292029691187831042449614760102952818712270579258029428892397148962249757068912012373780265975067952509448555048301356136681526184813306368126431227810535210965325770068632208651312022496101854487491800849887507732463741141427195266885877607246737916405081532257123788822388184347884646348808712617254449507284030501839574780142872223809019322398917747865405269351553219276912165706380517042040183655056918529167270429869951365221720908962886301987367328694552821141168970983869218380901846364795926008050862763068328316899604600521231769363898381036668228767622762524280000920044164213176224322677994002893297282221088378752447591597271632655838935349509199690285263118625150574902293968640793297953173134027022941312557486912759775768336804478777480734209066696828945251920375979529667894659680344413794684705541727257532598027544038978083556145872323523827219122844288366946792349258406455936388756489790315823997846126851777774372823947699177223680035777958036467016773191100324753387949856287894108329154683210583640015265098284331453404729407999411789108290277374190693578790002001276500149706077801814647810696933753338190173752955448393354615862050143595467616817919407168370008110414050481965185011465801276853382787045126570032586910070728740486893194668461918190022508235833843463203210163299492762206338150569048842730680851627038284453343624385736880995861983391788769142093306872406749507048795496838715566909487185453047450835949041430198197725938661827113623985260685881475608431795586788440764807411167248691661222577509463865538813090853876073985800110557878851344782133782130194699739200997884577797826008757054092085377396828137107824881695946108532600885100745057628004054221800030898290722519003708773944961398003699098042725149127731793507549347362618522795395282615465112407328322779744849515929094760310390688781960345057183765667287570484546724230416564746683542001080445553870687615841813893609216250853783762786009570695322254384398290226628636288197189033815461624653533242048902189627458264599925841438934337811187689883751111961794097570414546039436961927613262508040250640665033301824625398133290616426346817313638252525401621025901386608865311201526554555655305729734031697023560881671846285435961789019557495953764763376962519559945679923928392317315457202740563721545636710456874195283590481423049167440114690380443209025722746934565582212876329986022389318997696629682744750901796371958278134297134310375209564161357975632634526261627646083358422572442571291256843437260009944277346481269207522545636381004398551912572545347884023450908827218285457551619479444229389659141913072593362854680504060592438640944270333757735798895325836073168466613136835184978941167859720708600074600521677720409448989532616801769566323741067922874618889205821583205972448537489020788190714457039220369160209629827787467365793281559198702144005786203489667336225680605843194130114441571015531447459881803217815084962263673265094357214312505364579597089792753590248332642461007520039898592473337759582959282905354851630521215451674506913898626049794972530584973283389109913560898282296291680055087116407214301323269658909885147475337115750345853799151555111829245539017282511671886841511358238050815124573426949768696816748283647276089675430957606182134943682136023495112256721205884099947445942290782798685646317730405758492753189959183288666410582386634908721687512756056148089805359471631330958137275093165846933499771201329909340308127084181441148216822188521973965871410104888581855599555088780993978272795121768386788917740150844985049333636083241669210013340067816925489002223669965126331701175442761636396179129773587815921017418045891832114435196002149052239989915042966722462870233452760976694890503095940962189688056957434978356652204453131250678745650681896992328951423446195238692515020720170627912511078447981294708716942064183018754951911481838130467678069253725340380963180916315794059881215118942401045854652175842972388549668114571418450798826112378204104875803090183227193450253588885031953134821660465567326689027999270838668364252303599451191267621854864113774873945326887050419330778718233503050025205108447270510150236518951952210873589570003700116766779431802145175624806800647199531194127568327979342837036526200614421769978065097795693667953862410729986103956828706376497079205123460838275864543100009046853914021438835752155977401674627596385536257921095544780683205306511920075298232257583266474777723181142254487751677835524188304878193388925092910574240787611434012438535381807063889776114676884143607201156574980721034449727345311503247954615175572985395927852637968496970765963885219746437670641547796748243787797723807348325310611324127746160376561772359859852371554287212551780312233296650266147628937447374008296022601677474162978974968616353007750152980397432332693151411520633030925596313308502003496528029099544564736086777788491980435659950840282030099488611698076840289326860544957141401350732174774903463290901732731117462419861308621676021406741676676354102882785768551569597721716389108327550962851979387213450233800951030502550377651212282842432553974704567520819696713299110903938093947406391877271251709443972405748498865306530379573982246233993447873915641302467207266812059638448047689832884117064563704519385551851986650984651225870384677591537135019786740210517402583429361480482620316339325399330852026702132978717020312740098120549048812519409403156255556604831865012092117678046432075525151358336639584378873200185022604608009716413296792414712386827196122654248266631644747053615012210977032941489208764791917252190942252443142488387538432993100654011259094558405687066871424132214144039854254024791248309516432634286862014561226476798576037101270288281965132533305007884069188401332041343911788521344727871229076775392004003357105941178543619788096809778914968488867528223196727893190001738339177371282269560781430510680611825021164623682452018129706599824786322596921086231911344892739961883316958142764858052603205342571724464868939049244435454835637037381407756521462822028102901110635177933059277368359395430062977427905656258404250854034976425315999652488034726715024552504344039872864408082950647757418530132249114774088977334662305177483236434813941518464726074257598770899089722035874951548616340715960330385840192137293258683690114765056592501724828807244146805947069445425768780561101547289739919233739203224538816634746305107594974012599368482772328156328537560683528355191029747662948577139592174581988204157097409903028063767888115917285171718718045920238462315488519547982100331109970679921435074755352592266538707625226597142808161174042929689607552569335202859451487401768103409392379054555246719497823608768527131788945756076652811825124701906520480956356018525743737429436942439901086937766782760632825967458075055522596391936502371199245417854463524981422230696712441795106107784189504803511290908813394113411987524471326929340243853767450329097133995680048258156339445065830628034875753006224826295123663476949108582757406951768019927216653058445516985679566209571432275997453117873687769160499102275637457352832357973343926790081132611127054043597532678090754549030792969208533439755858027268102442790462469371552607788518260915074880152141321690135977015485420847734756918963848170169621021284207616093523162231160251245693292694888118309173387691892608955272852998395430050415886169770623683035677649012610898990082477823578411152013303784012937168621468722610226930344760811584528487267196869531923611442327781403850267023464638124017468976921840037637334587453870761477135159857042292190772681608589052242854124756632695490335179438995885595117012663575544901569511149000649456542310562600505336930098720775495778515344284169270706172166356178277901033829865684265435834733410839478865993858478096593133949540621124524358334695699285366068289425065704429264522382866802414932971125098338415156578396603465286886480804293931777030285231492069843790012067214431875226885494052828642675505082204416851205029395136453180562761901744931479632631874519388632167254869923334989263801823527028010963385142363425689980424532728062415645542890557761830304047920182255666290065586166327881197052438729247504125006744547211313717138176718903547113585125234148540664836029754838033306822868887903278448656393758670717427961648542625996695220434314132736015604814387638961213126659250593201757021875545111373989540837449922145510112484181588120474975915520530368910886809762270791381786919688375822302204456328379407429442981772372073451874263852635859327249887274111293888137315390662606722652694842267727841403503964601786063427472358357477375305055170654637792898702350435225269760200113203929154062060361468650629471603846438934979089304957493437441741282682313082769813576911977862010434806810900264092481591636389234241024242793374017865499595215109745658434104628045907667899285915420152480089307554431378640803510757395676685520742139329341411662087267008408270252256885498174488319959708544473991576192623935186022936536755016803998884685342042607202479869998608566763650186238152513408371788873046365471616727980259227062386051380698883223481732040120747802744093763042291979459274616473693152301591205533043909050265824818144811101164604630231813468522058713289177124307594424267188600707598926690628661421610262073132021496959811616574965306900214311487438161816630291587965330180492885355894854431326376692431792604089489237083373872951421697153145881526617294710160719447437083788288808927316072589513881319919646306073382821498191566945662462670168913314392330046908950082845546789474282185288947383879432623245957578439516768114232591436060230460894074731619856697897759621704569247135177805298070805682849354545011487306463797615341568216231769543462736596190184749719075127592080643156099850276201435083299136027102345650517237072333280793388435622238061101359175243878090897854809019503158281275982961197576572827010768855853776002807454884602584693100892893560332465976777456277503816175744818060969958912002271419486353400468644122492633055060225498135704588844319181847704528250053335117576916979525351691860005297957656337670038228600505055617731026020774186414878835107014034017748853106626040752857262078407145138219491367671647066214176638498136878645424142162122838540606842543295395369210583046407575460493932610437427086819376908669540511254277703969012979133077763044697622361692227052939635061812052932780574037551978916268765901540060763914255047515352975850365595838016360926373797920906983967293532194639773084989420805959336939117222667769822794745293916012315626274262259684209224704163909574976274748154932817205461540967568586548180093960527228157337394040204363129094996108741783100385756619206623765458798101246133726702107228644805087462827040069591451025314195924531042918231798806962458422847535922530799164643209672596199044795561655294221565046620107038942850804002359680282193784526827925705796476654655579478205431628833343069524927164847782200382564213051220376635170412561956117906980063336795391095764307189418832961309302494472918069623211535842507404668115864542378269594633525596371005301294867073137214878311402005451642462447493178008702406504696158509513168575762325401616091608233977270366463875142658867689222253107749461963319660676473034413814160653522995650465108454325448572442581484744454093814273827303143845901156065194912470843258892661480248898623312557734976502502301778322725374125027908071802193090888919892913035598682046921024654083721502366327407014957980221718697956882054013232243612034773608455618985228791040373476209875229631827131778765576414089899445285679891319553914255316384255993388064807130893220819544036645139750998527901755228106846265115039252416983038800727826202561735004898981613806375479079479080223106171626234118048765797360672346905274418071258596758141743743483997770238224132397834324261793339441844627277651920299970573296453720159866797458572907330698630992717270765265487817536640051352323766347733537317792126674169980740605614041787573221164019336425094108672537426759915372879047973061218089565236028636317796059339843707073829489732494414110250438394801017557232932794119228508237208681554518225115024013724223783355097360907993940916150600085685998917707507257080075988930073907322039393303543381956154209058282678718865006713789581828510534649157082039206150725197646676116167779860839146802616517317825305630263345527863951183357405890011008407691522079511752971504449393392714817056648973063215996180603886953464153767516412866346998652483525697728565816158349370689097586541644649035416745306581460398266284594971279657102306655398887891978836392992449287436069735750818668976753750503179515647801003519500034779606058240073688745295624963410040945354214145080673626413572155407967006683885252133123368095313750717347818405362520412265277315665074970022675748445878090874503458729517489007482589562840116066508702987281079057715153813082751056373526485565135324826487530082506831756740217661372152228674283119707846574297004531888915583110091306961157537006492228169022701834151582445206217124487042409648740742223072519523168603937388608461466588047447972645564623464483638542616800023386468643840763402939533758919033794922472836440794310848272448873029614493694246892121618004823098970822963235501768418101782698672235573464325042357313787751011022900799661932985647266869708298796743971795340321125025050534628013110753806764223517239718108210220390067285566241783015017869708379161878208046148813113695449020064748533023191184223953030824729700550147013492304743042024288333905332498612676094473221973410727609742568972748555655075271467065521753557979572838478964731858527234413130539648884995883553048274085586576231055893024634128226214700936391046422065442246190514494130156043504718048847837318207661529620940106289782014521409794651886567953025116946145875742956418463205746082070176752229238327025880980812343958271335521532012886545623778722720196735632528819461234433705846215069636115181180997213441601893401575774401410868044917013276574469998377961711966628086697973680298942530773298693748774294859528876186026645143055227781121623653837083758855105086910781428052001479870414858646366093052636437226185948340129568984838212205092707588693157915540734341285001745615985865306556658389680201597929616785250914158009956028930683810129100778783506938418989643957156222531667711294184856267220203263846263037782186866246606512486167536079531468085076656157028088173528386914330327133871065436581462234681483638701316484131308474970088743018841986299305899565114508692517647104119431700191349024829626154951893390549229178204022620842794583062286150696767680046344883883418118097529809087054566168037249674683054269463449235374387358404051685254664217772073575803321600365447452154243655752939930832207825720400317424488462500897985239314965521506459566602176273840417746674597815958615941354019075677490188779381015285077152912710360174032011027738444124909315864980183213407977458836899363527781916487522822692207633205272839501821431409388390168966675893175022846759178804557074350602849649911303902754520739326182398331191252996087965505922943779178089970400506887075858945100446854529872796633107858859878867106389429838653132024450029720482430751444040047651599418974334579934481877157192072526780240667346150438410162471741241185714852844726416466486171607211559552912400836574323698481522170089066705494455894698731445188463748609671324102659436181104710522801956009549625630346021519902379593520677092116809948599394542043406614345356229347470063708700736769654653049875282507407805117150582597945172439160591495834355432528494484743024415840976856686331148930427954591476071993236432728669004309939683217549447533669784944628428975866905343867468631274003491814416573547461813320826739648467721391312824066681151102629914018923898205961459577275131179631577782037380891334761099272504927650004450680648177857485810729810073100183469929981211702910065967819376877941051241440783887836465968974332648999763362701760712200960086610845358221599831855175186626057648200871193539411825725974110682607532039615066210345050251871891483392996104180035798817368913699271666691945637407905923459693638351470742468686201284484776089913827797311477427405592684103192485247775399641760058198146753269897662033204282559134142003748891503559891722417502578760326151599338675500588782453979454564848701939775262293278617059923979487036088860743491134649390482200825453628650114355165072124903212167691087155258972339145630912081556207864694931550594419144603504906825382975224462946503288015450866759613061760040491609612298642731004703657737811022374330159552228622953157571385797834930834092991542685984874442885669112632367543186510009915456669650462024017561204790945590490164439287176564692656294834548013184809401271253054830692974423397647365679896727919289489635779712637427095353507205501710791273532703019012787634554587896362991444018812513748222338406538507175445404889079157076949535202640506296220631102100601064988085722931646762409159304238773457750662837804475865583986747285594040063422356395099116166051642840326447610871489641753091096944173940668785523212671722415509319313313602624834639525781249341739556797305093730329497655222311178358929557741739396427076755707318183272025675191352802731521539827148149977115289322990837246567994813379498188888405952635784967034877620310332224954805449165082150506978935715973290101271946295385140768923799100881834296750102930971278411451403514985880388171106472378302389822133316295717351676888397033796739999527718787073070515277472981980087966419449973853562522503214358282252965064793604446892205006020548235018997992003062914980635395568036323202324168569575324534719973946606115673562362063511528544683403358847901302449464347005665887429418562316501422031121355784128460483108636595097055598091519862388184290845375718891897850153345244211845532735838867674686211273665889247251213029224400639416552673498973591561740752912045125191520994083711728441051419345576385637968053627488506014119234686751079571352819798040495084738345467875222363642935356544894755693562590866733864487316209756913948658345726465125047209595887156684102539737462338451191934612525341564696029792996417101033192612796610519985385804970855884663113074442916529129714745422179058515380568912711034977850476106145750544542527598616362048334874294666487585902588084784825449403828736919999980231430608252766897694544776296319960674378899837618564661732718691509824932819328892343480980088811961289109155508548126376268891051202376318841664330453096948931914735977495332130513881328488397111987846467323457007742513223903246056263019625923156280055533421659847811719236757881457312369021768192652876804666770916777989848549574785438501838954007341571094667183241101777376016495234268740894723958622717862030320466378872492611934573782710487813237000498585847670391914433988489282394245510491568759129907570897345563528973302055783377147018941677973562739604948325813431165154979256836723923134565992527706736625241652727358913978005914982016729087688544767469271054070766993258368391153564484171131792502484335946594857138881553522115601307884406977793109852123142102161797451376686008649433344976758055985367423419954995702318809790511502401666225121191675585681174338860391936829641236420512243157796819151190931455702307695411743779493955588102895311527792149586683835160350137611146227930571508469508501397332372881082655723773303531921101511090455667905822112647372833540693706427816686518274115466545895310948123946289618336040147636089935124708349376868856019077735062414235549272550236933720959943523439813538568234872084820628213996783702953086261049213256901261337871872581922770089243210045008838834574250053696378984614429268698966010365036517474059694391044805086998302168424397160822065748894717414963761733298819220651118294421015300021007747474271564716482494621514973806968064285001116403709125025026671476635238703799034803329037691799417092622474421473718796004335112014041684099913294349606659148748433521941841839090614107077924318925029735375865385607594491069667684025998068732453689365796272371162910795350085803661672049629648086076231188626176260484788304749594266836895365976886468547032320252493972289932733952157956811673703686387050837980245079491050802158331917769874618659469626089676271815808281281793380521168429002867403112102297595413910339782871961115595317897251801383232976321171742186044255034029016719499787682319985638546698396092722303342691483204324319563783626714451763430856598120605549434485201818712912934125510988899210370968283933992677258597397003323493565063694795990680146482496457067406313202374725735097462825665703152814699568125125194428782424205408321826531165221443948838984881010418620680607420796935895684969061357720421354227895598716951805172482407268725906896927902722687412620096005823090806679137361733585908845436245581122871759841918811885635754607270784535277381552659723998595593132222705276050981938274102156137545967187603364910707062741118367166755757112344708779093760323704811496031338373498068055987570251963328679473021539910991662129286767241021900202572534351392737411149259133660317291020098810817495039920444891770700581221764063318486827790557472352634758998028411798038992598763134640834669583242382604054272703147252917116986323739323072620797332042505210201614574463546691075405916531906765729116277339664370614732645802417290729415978991428058067178027063257836696816692608749424920304383064140730503579931381648728344440838074745917028695349695949555524779652623223074568148151136477271374315979169214121314668303811601159386308020059081017435941236588290552470436070107572777654006545013946194555885330748785135809900411754010766369116013616665439703038100621829760369217405322965155594780426407916837594049061656225480417582174596643406258510122897339730188603416713191153869448998482813022699529876035429057552261849791678043049454039020712918018270028673877635947318200411686231757282571636152138855441327498060160927247101946792695542178112755583274123280375086377862025803710041428203984944217520004644055547498380472525716805667648384228876115254676030048031495247325667103050081188739206707389458679715674198133248206520237325785894753309671504476148801250637608175799949674066364572484242822021053884345191385927634458996577577442424609784030947508835614108843398292703871326841946528750472826464895530428299195576966273804716934473717443128976236877609808253202242637984680407351643190817385051245728706112272891666687307012120655526770548918307594875582316126031241162658329679224078660101280963772352069911894401156387998965238570423098277457696638526309467114155425594212490484092919103445103038412799028231186511381581042548039032336052482284599867956481704781609633898569583260449370909305624134966504009155938608056349595696530590986649453110451967173438858287811904034810673457089155991232472396974394192287082458591047456058478216276983566036716695409160199724673642809578477559166858720227339753580689821678586758186706338910873979278413016839211336521103564356936636035499522382468575476589875824127659917628132021904904676997860547075482158748239223975449786027205284428697296581912857329045180863690087766056471567637016249257469090963740863922240557878825179951861898022615141785362649788802871804478416290080584442985367484189214158190278366595729980564431907059150361735353569342346191977066436614515151035415210092794718814903064294720274229238498965786506121514247562837753495911053827144930203346545472418816781037370422587157010780817876181765556837092894328373528295629668031639811465284118752314896680562894894737218732422819406316707854439295170887918519916254554782682395099659257716603396824367971126482413661438560884001816231468611078641981669083782258823471170745919574202940791761261086946961095581242860006534963393894020452186418340517721263241222946347319161439478379316508514276599573406306652193735347907278985035015667032022687272706119895892143796027285031746784693898108869494433126050910089372929439038321377055354648748940573077899026645046782932643983290479733413126529089105641391825048386693679595036433959373955011584013130347006816035532658165915738285606805847060037153853156705229441338594408981726522354287404110681778850835815729764057287884497140340244982583741778448492246196270530630827878749276529590658171493753164079101937114387922687433894519934057323701116056397125239214570988496239058496213780371094956503114509872643077489068702149557623184198327646743704649287736334268567041325104863620934396500212128779106964695448043569176226004354844843695745271471156779551960237295367955382519204259014522588280386759532454841052489794645222527194306023594401510748636601658103633615627331459943338875958915461703737882937583325108592089094616422101151853764844770241402000090620376294194197549804903646724464141677680948141210254213357766637885022997422533052851403124804171741133657900540722256166338752213568922030384065120815045850540826495592415858618579028914393542314515509798874557576222710271916796954090845793932675430841770741856611906734364186555373075208237128387071368800214187414233162845240876503873169002664156605497096589822547026175590032334728324690523684473326235676829267268070970332767035102830632346441988554907045480645094642900639927835405977320541458624579975296868549523474200463733906489955661668958837385838731746991913895777236216206478671509479114475046751628811642233436118794074158828041704507378819447941351636157305063283391757814858674791139512600254266632543504631489134218112902442845018818725405496537605773541404609314604428536611608491503835487379143003955065334520763887164165839536199907535369595453968209317351347622131495742593270504677500709495969173196242806842659517167755614814642825241618044545402071939011026621898659845825404660155830308941117932517349748045955470051623184282743225593608218540787247946208022026271716287193298628419912812166590009845401790537250725465518315959745268579850973730509154523902947387826512279532083201872781454867089029016586341877284412279882606381791549967700460001303060202007390723121538546219870061601784944597914675555516393690814597511264878234283795363923480009522227990773157372285644879489170463173776733769565613687676830072820168777357799325874386910810615746100877746936962359429682569136748694979594526892476565468445751527905636178540641405970748216346750959748311165684292473583453214071454667401267996869205594941386315950602053251380595562486397538341054953795029251960318179264427543649067106594701256701971995703859861151536990239602922161180753076737788093912754951439501219454819934409468321232844467129140702401360211776897182984538484127464686441688708001430517549167947386942477780745786396748179845077618132118595386537582983548255781764740607978574900210418147451066191279054277136876800016564125616252405159816697443651677728532681378020609953485733509648053679927525865019499297651049318381602617829574193631740869139383527746540272653393587205795217409348896020193243434965573850813412607312915412068460386450892203715503031002520542413258634330129633656043834235828485720640065845967990458888792618929429034790107919607243619215179973056603438532133578836098818730004848046795200810319526420508713387212183767400256963491828003192109223930195146334653329620071829517020028827192813270469396195412958192124521370201325071849416015732715568918202500746560009110438813945619426428033906174424661959082839981002410828975989068431664471636383268335750173707975169552588902098358616531883452020020351522026021424890109500552187606828152583262968006108360185880480275843775824383126085177817624233746745651289487143432564168188857117724874944852578570690974023354311853448515374162574019267574616224592892398986147406552673027914852940219918379841035135872412041895862721980538944278257604187123538679171427012417006491778456332943558935345174415771367811866435447495123600470223575635391748270802722904459494459077954978101759737401377204833146752831768564474819384629907109751471374058804628852656004232964733650821372161648182322328822089959221439222154065160133714694807589705548714025291031865682499432111899239330099752702228402857208126962751082915044242736214003015733879302072115035288927851802425510163826181343633088678448720088474316353548625007933687913373054731009449670615866718791318685911327142844229068278665948740980245813777794080364969246676090208162598156839915503392234838763883900749068925120540928409240413437336928786439296973141032189240853943916487194349100670734492506642465795133330976929629134314668438033716612124000454314915891111729448814457307688629862817801827255499965166466893203203357097729796040047817113199472499104155298855996341785398974266064874736543254925134018536690299846880161759188892539362619564502048086937813753250635216174230223517813646329120046981159504050069326950102441704622849760587051838733530391198994339989729023695788147807983032888693826404354153174359743440293638228372346242930641461805757245121212149509503983860939513904412251508256831494020049848095984858907239407489203987683401492011598515069170708098214654190514189175182575166989261111337710609491155751747303740347365935915744317615700651949971646363322742545645949999989762864399837385935352668869921233001472935257445058366786489646247930192489200669187812504754177106627068316144950700140535936098571772101989446420722595977436050171201712925212978602284049181776343894612123236814096751237365574533798630335290704756642425567996955482690396374473427352892419538185460269250388102911092007964049370798216090673958131577240716165234877174857745862433056423438563768796605528037366384932392247378557223574879473617300074537871160722183076278998746105192056235561836097790070620726879892502757925136839945379819253258834893288159208990300474962249454415540405075610545137534211316099856355642894628803499601171757968634151076280289448047587530965888308717668543785572669601228307847289731211746876853905563557572214702131769031658913817637366319763186521525944264113144803416474453518560577365346014298741939368412805251371471129875341606279029645601149024574326737953965923960590473078880899279500812358333069098225137956495467364356398941941984177641356830402856685875240784794951185542888434879684269736246030261010646317041858941469034660143307937351261929524949947448247063687519136388738587774728213120130696521166744692813660346001392803937743921516239285216887592194679319910838218206043648726081471405676254398357770847856948837211257389364245166582169393781626165391942955159436138828719456391214601233988977881227653377325967400054196134584697199098873793150345036137458283283464025366511539439278081027373090118015831244314778604532097152965083178981317142107289606628235335462189713760838751338835223142326090599118645580604112476313882482535886318576642334046567468597395430102636304586224731678080554119086933014645532592235555434642563851081618533713147794913097732456185161897955640248315365881914213292352619744641533154298405448555854212051000836839628056731555585097399780722426726907730759751724237066237366669983584228318222250631919422329509118457205165640919858339088840950869610373111067596857730094586045827631023667023814981673075544133404270119399171924825043423989962806361704050526374934617514270228468190077077033705763695051573578227936629763971092298461659174480922443740145305814187270142538327408176053028606498309106284069353375346061556444281447421585841185844856464878874166900127244001755940865050680957814029675664568908274493987441312410374890102397798190048423791536964180514547408791350490472101969356265007525958220642829461665376032936835345100363102146088950268009760825077840656112691162016517842491527752409016562298714429381163104392955279679531825246647095526407586116421659897443160087337216998117014626194469340897568991873746491547031761262448117754798627206282473258874932572005569589797557825041959613946457082953026049957116806753585425259553966129989882404350688162134073329185059077496423265452514428682697631019470214373381608007322112323276191299273422054349738738225692716791376363398094884003850384096475587009962968680423557180531436620035669760419086944705378155126942238960516176668825926528433741369012826610572220813168049682602599291370572580307919617660537296879818549597611776893592610963358069216845072838297862367045860229386389953657416416058859581827364481681190028019430062852007339964648658923744197663838972258297204713773413687270339329228839029779743005629782378218428465827951461045078093489044679838596625371255012263579558224450962398100483500230233576904490045385442994577547914308624141681484620210875526291571353356813745826004828784976189617732963991220444088859461385968283043873200246652385382809077905312761085847846913170440978985106019385153316738435390188619292826305147167767261167078048652787302215451343074680055877607762231170581390247857093440424539031155500282831234342275461866184058173131696369597728508501885754215150363006726301304059775062844267114071806920980011219319187690791981216526635733045508922512813412629607670721763757460593303411546794403724501923881553505510100362533288342238170928807752705637323072338128265381219889576033477818579214425976632201085882659331980562679858029032272440271483705063108183588919795444641511496578386237628129635429719860746697679398407971500851985065603130462746714113910344730658961966869730017876885430628026507454867611165671008096139371391460840897561989457566744249059790309402498477853740202122648198826286249944299922149979726521099039828158500715153476680448302284244728793414840471641448537759638182563556310419550697315620440108270288673098942619079164982655703583391787419445777119886106138739571131743026916569429380001268078713378083245992918076681127347617576454823813782058449672928460591913612958933552895896388595468601367843032034757218000728257717524529742801070688734465505196587094430360184415806835898322826708584210585816777812492868175580777119971123735128635851604591196164262816134754248668763256688620479157457230895863993262526349477357124912605428088806008852113858640752001640545924561020556248835210963203465184207097648333473903411743779515942394858196020133220777456916596076764637229965352324994054505404839913398762905676154001721136529390680421608313214577904441926716382705235511724795933122306330939694552353321382326375130216753944718994884544261317609790123042446009667605913010342075489790165841595308414582577458175285565757939865424776201581125310294067091549165820660682653661691722389175418101107985291767896157084675450969501894890169664139782673055747465226691222763752016894510013221789644433557095295769978136974502807309689988318025751804042269724248953690027320852219101994371112670193452679005081043430665383006653357560789797825410955477522757335924517266734275321413507679713264027324532255452251264496702918160266214567329107196154597577711878455379794621147580047549096583252458323664423523272595588901123020074279769877430328154198348200341699418085621100787931747098030297452462601383709294815988808487419984359586206885911305020286169394527688449859236790361470757343281248753938798927410467571011732189698687230297433080715203854550691111848820295633645214239400650162175829449551551486575659735494651498788190535337707890586228147463997178280029029207960790788528820301375594064291276415574192486091420651456478908666003195691675265593198099109167715342456391601721130044803552408495430278201042299015605722014047921570212125104309282133620800625150079658629451374157222387720654361359503047854502437438465045783974990878065509676657314424229881919747622760813672508787058831653628356797379585315586014575717608792350772236353898918477435107581868654347301376321719360946959272333191060365833480830141171140873404644871386243891650819719937946676126341115621201388211181012850398769526000632153206866095161237966105189882924504590082378310483281410789669445750236163803364045749323554239488031352904140878491087255718069693558081342777485411456336800834576196909747514046489178727206746178988154018821439660289120138621264636644897496920241672849288681064405163789527875109996964875233621772507768030528253665946651569995584830509179211248615175113024850109858641467732574653348992198738636314561063819982792024241973772204263330181250814897944317100916687323961299452191704932574549211146977272869678969547569902060918485481633144838361932160462675471144966514020287191625265499616825972051124313340358929100228319056875805561521206747809656458431288125348788837302528677138983729164417658758983882119938665938870528014778479119706291249962734009837125642609541573761614707377022991757050201009326513631409374252250475708102899851378132613819121080682499737315475522109234656864375315188996327590375547807861023465618467547476068991528497005626072291897727070375276504506432460744848255365182715076923184451993494762469996217535087017906354312870423565176503269937823700215290507547607436109260919814425355627075503344647652347026930377426161983657908199202792680953715062283493416360042871327235800665934952064679252768860223281817529118277584038758281700374948558176042272067481680799593307077845204116880688985210945833100152010864529357494007285045442158036534253444825837688260910523202909462173613213041970897584831261535035427842581340523428873219489304647482670274204505766843152905329917748258589979325131358745400088713293434598132399227246442629830657519414902298761266420747449583365014436426086073191229222502015730234471358530975223167970417123354297720494936638904724801095474867209365043323923304698953283232430380414949640223674492669640579161313510900305407945413033199777879565757096982952740713633122507961372807777221510289035233945055773931111691670945358267364820533852217600773372541765873984028864632400531003318329621297858458989633524818985561821600514052306785167338338417533427342252420305751718467553590317440413008040370724729617398881096798464326652315870370983322476188159650825185669760640281746056915641095809155710960215776707379200818150892379523211775074929175368909964511371040619907676670383118715611600589860904965869348146870108811389665245799290777393919876197585197085964364768109345574998666796781724982258184082165124270862927616536460171457725624191652172862548844241695849887142865922840346955986864087007723061588900469466690899240262818022523940802094338607246825702243492970753143698592404831879540839390565473184595580977733049971514155308440309801250846544189745250753578751987753515245228488830175825744376377738720395276470597496945029875204128668157341544175478651271549988964689847528842940846356863548567640362880348607913569549401197287909872626957784260498586627045447503396458234246805832707782304103162359864329702157774353590338074301634676335105835977381241852138955006798156811445615263529953139095062670289335522348840233713540664475603691188267386322952446830099674211424136331345628590948039914393127010877311857470259754211788943470903882397597000480085546505117065095834072069272618502813889399496082189541451160549415138199786342413821708248923570434329358366457295345107748512017451355498383772829789122253373368106893219335324558695863983202842843642574564288553120789538358862135136704180155678234894973358692309707733892559601993048604919362848870620853671871291642890476443195529846090687061339538889386103420235141338375423317134842909255061623393939243565699736202946400858757756028316171809992404942770991641220000779216499053553093143722767989947541936698341042724370166779237610275976800691285929713429862232946900093470689824091193244723580612619163152889098198510538883683742155025514747953781876698380731675540075224243599064905606797915689495245584494544950727543060954401784293620407537510095884097156823199527048451749713851924756189433030000594035475885703702307045738668237731396697197412965317943668248347174353168443324449154827099138291364501669063137895574504664976703356729857009640935079522082622964622085109230013884494417164539350519064315222282567539462796171535678769667816222682014763378314021984074873225941803558452484784847746306156133466949644489978778059474459741486718038137117253578265739420401089774358848489485849455012176751519250761470611829462811899895810377738303774976979684810951099263224060503103126651533198302158948636118166180932415707356205699110222851392343228187927862631005253161285375245682253075285245030561834890020042996250746396872082719328258195747465485118815705635958835847899874758907975530476668932496553721534797023325167671872436759808465839245711665782281988158884763870369949371838556999615434121938581243834732088573155578597179352368528380223892818704676732498140531751968453125253185308187262535727355802837752392554983346914038961335925213335603826041138961195879401735660782129488393707687398388946906982471359295879689842073636134199623850634976819517976598888707606830682588380255805559421032932215289692027096595398923087419905455475126464039271094849843562529119244594933223293884528347199086961553689478734550243215571774274670207989277245208287243487776637009687620825231530236845299055658032954145471926985123725926484974831585027574739645861898551583505485482887818342433582914572422061683145835871455251762148665829861624982485181302223382014964671487043680372458560020410749128756970579951492080012852205845678613656657287413064082826366267750098534320793981829845502156727224543178130128014775706387742822568608796254294059080085701928246142787191091086721050100516709789762817012288576529387806824554886139021396234660276347298293571517372135755850831421681947572075728496521995747620470140281644024919309189263858575548340752300096542139338892135527562693563860916815927344636861894583626910279090458623690408476866798645831672863939374566211477803260508077105279901907905483148630560899841617866201467001584842494025572613607233948160695620828222290055883077361122035071712476231656455316565878167782800044817063332855447808405449930425867424691877100886996546523820882647109348819452820871864525535184292042811549987453720854758634395889481048501622312236671298755295165682741770242745392657977252700720392432033276604908521289731593288417661203705426545038160163678104010558373261726975011026722460049628859834532690570589811980420667147047877615386084126861282134410535419958697069011013129182827911252624137040785144646482539824058720965432976341247088541809165720647649552960435376034186743719632904602635266655064747199671411702843642542885449706243212075180462229258396021306952709446088035549196519220133329887575143728876796293850699324477018930521688598573363496898878541815600836783114930295219916131863819704239217793751438130203673989093865473290409440409703533533728447515466889143922316165523627200447051706607497977812303695071363284925528718193171892968783762055041661936159449944258985538188187529263304742125985674902869736990288025434338580505257314216117530966991703471341094593223488570525589987465970400941228255044172133441045023824005491043513376730680369047401683110646541575671668454305440187353373602238567200664894711406250736318914577874438101684968593648232788146136091593169062078564012288382995040202377928373540425297639194567827250442253948086218644162631809449786935397548826331418899457861406409149769522142067929953542068605975320863686426378593514786432443042434846108878519248685917913452119305820895039966785648258190219272371626093437014651209877387119665344932664904269204394172156826669158345160497517390612649876129006990296243439844839332449512693397268161449851322655956408041986284408740415659221248176178410612158322499535827981155395706438107848033735040523393257897837131202471739022554794471464874232983260855973510118863242505478060659872347486008084042212978154703378462574591200068128264776212457012118222235082629140188758905951070593925447336481723417870405092447849860626948649709492770462762441963899628392540630201500610539756052002017884108492595489919938181949401702093377918183872460284233311475688932119046319592915208579257303650340622905505990526392748856756215617824985072850736750286540204412674480579064056586207435533227244182843426756226377123751234841042301670246406286668262394512948852251414282647443324929006257712670825228855688027064076371942335082784082656844917399942927385674976514946476203971385047216747749609239828270326858183361694966025480697434123474570310636745140690970555581563367790348255478205086208802017379927842570622732712615203405760460327858413383541642163606657593595807221937652939237013546313435234888773726842671479135845936674345029011094753049810850507720191172707914217350247451187539368941163678044846760125418909149761463226159002429708815389894504029234998206680123268091799017409359706194953528635995546237959189133799897905268244188965086489936209640645911711652384075331430723926869058304861172884054454704802224144508167291600288597095535412609373380933723878148505530764200508883162290185236201245025330924002582726593951612663384055963655072798498343424134052496526930461870104182518733535794034987713653864535550300591732986594540926023995083692969956314655513136080396741647708794115928642201602400128451637363727767620233721557448637677368823530495547519441299278460921502913216278449308890451004263479362646621796004679931546166393721750820861785195087980605468839232053264100016373809016515704842600189059823529901027387075349000221008843470658065361202385283391581092433578968364493111212655531147977223043460444926806312525228074658596650316188017485975986800298096970830254066133110304476712734666576977696419556117530995017618468682128130505230930513530878622259521855671378725881543490798486421132883151915212271087438947369437059881121809113615890281265180102259640262388611595053193647345586824677601910261647647452789343771257971820590487549635175675251627222200003639077690319722952748755532365928091422714265466275671039073625503200503474733263022541971995404994631136213484422708643432143922482247053612736421852738016091301116359303502847509999406760585828209274255356396344495975815210674754352207869266117245308469773268084025079844624609430501966769612070488299919072061028380777577912106272565756068509729914613270304120518420009759510864250944421161756991169332927143475864273405618486932859226761867637945052123558364402187279599842785930425638492019585872744908626599588677386618290559467299798416639043501743815170599898616695721096634548973277837348203746745206084671553422154709981730070883684629142385931277497984696107916687653570727047195322882980338265659092037512960842741982207822386748549611640353787139479193113175025880846711992498570987193817903002704546914136930215471049421814312903305931475540556938082964844818464590164778895749226790174623318343936927004539702458631369835333996085387051288441647499894384897031546271566057583481830121862694161408220256687070961961421523327953972672568604548246974603670904912774526661188378197477255727095535973917077179367603442974995263697961901607995654032830160154119065319979723677634678590246779552265296807674088408485629006313601903814305393615876692651995113894438501712920023525063623917564540657192842208055388391799020214083274290211356572343044499866492076115157453411765245829027648013675564544581408385369476113824600574251611824745855335461776405867566336864334874283580376214096662253499158411225716678430136691623066435086513555032635719409887825786460632141884233474446881466264866919294389749372573781480003124637927960426225100152701583974710205987563182709764350421897060365810428604343467944823687682196486136085250709224842323045533767221013120684588174547656289449402318321974370026185424023641244269503594239667254402295925143341339821257357193230778981211149401686964878746395287755620206594556043404918237123862096268882187571279019095824609103063271119740244466600464175734757339578772171334099830826516763929606443967329803381074776918571218183446290337824697452874682467087444907798896192941557384191591837747252205596175343198324115922031104570166538287399775715359557339725971502455920183991085648954652787467886278616201698189905823604251341101506653218110667714945150909745146492003392760980065044329978375406347513924157720053072903515264689549828860403800851509322716032236112144182350529297890615649352726383535614162080085660573377468510718641324680305307342659219476097189481498406079790787995535933042503462217590625408151408723053320837062035344196742176326889874097220295066298143139306107747393927119002117014035384987574960220889524043321718467353110635487649985125544466428990247369788076611575886357889747074441832006105854715464416442928142522904382055952435104684167916339436268955681934504942329961663640185220388284102804969523541779893734277277026940480381536675748857108306355930847165889953737478884862638985852248735365577705686269908998329704135842993116311521689231121322774335769527966062091354167118780891924724220387517476406552620842242862701089711791311299677094976949561129667391954926902486352264988436690598455820158235621159695253990810528101807867329600328884901323887164185720370851123063034108536207233624090301968472045799547794633076153025435800078914081839485665599556031619481632201422177172290465939400448327787400073138043782813224212509341209095889761540972446273765808661157149154361828307072615298316269408159333601669932302249625862456870495662689129264068407039087815647427837986731660537730108035857498156877479396857658564437092274531387722893755968896053958827242173672348366688432036345895186641072067661478091307533006753771803534379177283816452217099871869186044319665844914470589403126901245499643745516414125754228258872448788556178357976786788861977177479095733198240928706150248103223696293492849390516756945773471009329508608945572171297884276968908012751663304836782850554019638413721662151881843907151096326755799343222420287028475665469074171618484265022638459275615859678432673840293229498841135306278813238314510677440181451094148071019051199520472905659244229462978143512902252404805964827992247165214194662500623102501652898761729390248456881930411734887936203819599076595229114534885586110073200481482936826112883098058732048344938723077523699067030366565828421898064916513146854311253167074715029606341584176218423856214770476579730648880872104409788716175576451341053999415492048962781707632564533817456018574450203771622266230603496853769020704904801624200597153106463412251850782536382326750931888617714531581130514170055126370423032216609355008798642700566182515780933186133830604720036029750282783576900023069929025812490947062962561627533933006544219430498586036983820937908099364001482134438209928090515772662483438360692289108877374023278701843475042125461344075390632673378351262339234214746197002648369604821638576904524516959905741402997565071878626497188244426758644759066801835847188115371843117147591818778747284737131988631123778007008962041928114211206208796089769209644202406048493054284699341346876729700926815604388423101397285839642884497510040473338873917563914548061652377452963609471049666563424038284825536793522538052369504652763845499164322295225057913237994973805515332476580113983831604927998085299614976637935922244515951499169295450601935762414668914377971271837409954491277340729969809553656525966996845335737112787798229434162322478011427052577445493504299802689817272179545533783948623292666461700139196309220897958318731282178077363853359143610678177862761058678358485556153212836497637056679805230843961722606240995368737441164401914967111475725339573138996898729052203492649538760720231879390359619011791150433390843438271425940715196383183328824321570724778467836219508100811162047990383068706174410664324753283736142005146704458087882643637784392254139732379416612296494555741230613345871317121209097018596067660348724766735140200982865833954091875912243894088482241667548035474604871918399120443480131539266660290164296042638488485242331979518932696057017274070915147473627814654446267582067065645102045240030419430586639165449685917071055224148684947463159221794902926114651836283308048126321318977631801709855670131583886909998031703359162095567982769862799827622620034939729669146867577410274768252060561782944763814345671423487405814246308582578620956680675254469901793961387570721115842274477497606497849066577681575901418235473534940328563780303031902687998781392753702613975030368888851205623022191564403991716427905569972958072201806027648243373407970449925348441105022405769985236248772075684054388564989790714570781374077864695294194442798200401852571096451785213524301031279671543863068170866038083996666137127685099205333591362218550162704429383981711583269245010769420897346819400746148386049052171621102139855967323929916032010692947586986643194039072650943108423042663910244694413426592486756888202105950650074006509781117714747890527904386734934500198444414006036675407781199353007182722934736833139662262789366304625182367764461032151759709011131847919281821070249878458630683246408251401452754320105676305758900638990037400851927106955542802704864367165853980547121144562619852606770872611107836994387963959101553183511104263211811444851382677180733194247655201783963920956689987974175443845437429715122053759901969508859520673963909879804242252977101065314271592806115334867103829420166053198038643642605691289560647062452250517241672160161312938237709937316900139511551119413534323285910086195347166653243973857119647445678805398144480120574999652862330396144995333516830413962577956595164672726620394053666904339891967377930979852508372237991054562566290881239693692792855986284375912977284381314210886671171864588646904367855504346020015890492686592276557655546248367146602777453979675893634061243158914155942254414800909493928725464433491382976246590937559849357682960040367996727067965067563056570983206104590691838585467155791253111657947767219645962050277449650977429113549287332096042893088832442797941154488492114968076597953817493045611081345131035719511358944756931368007856784062666040794198285636066731332636861974502891915622929815698244129344267171779522466261376575582795234592500541568665232318373158209048171172773276004926515632085765592280613395602578389704086620857044961678580187698964827322357039217029738795788863306388505681643026540046296756692240400414864760098252206306867035743988331650004412733630472345483783350490257999303410362487598129812569557009290598328775451296914370313436503059769611177100063063864862697559876076006092737017497910594195585122919353651885693321199493802412098336756963084081238626143925134368055977686074982784535039230145253721029922740043501713200740926732580678524756478695092429071391870306092872190751284249858607134985796844050829987863648186981436776081159155672437986674602023975111605262708229816704857880526874082953515875098074254392164763950917228785317174163569549166226386276498363968977204198665390557323458061931657428446215194502914716034215829810678440890692732281132903518982697641930157328647333624209213914392914444052374961324829342898372027157142912266203212815999958058670728721037450476203190848243483558329496192378029945469358435077125231020958482955473616866193231564873052729254668334587152545585738231865139374139810445847523696192225838274822699588352492294409275372574339347842326131737249343169772291332035716805990433461421526485117429839340451017353019264497060414996889072821867319859850513359942832265607903165567675932086579780959537637642684660572661751814280093145286557492004989117941911211409438368840729097045497455453742194082582119414661418036038325799875312823245739439586719898339339197512462596080619725014374375258329620222467166340381457901866504578145242727753962376321315567543688823865440829273565404029850310695692167177940550584316682768313568916493902388567882499361592107359929846994508748525490985322509220085038469638726785062046457631254993061693866519675905575161149246027289157284485884061969647656713928838872680862181520145367018685153727076601307776021981269217456203455634954954985714399569898390573105096768762842517939526420842020175583121712749529354106181648616702412858040704331046242207191646312019352372759857903905265883818423720850410818706708796433711330388993418555521671937760459552472674874709179417345222315992586851801682179856513703902741567197482014439658646029583050488358590080407529926182793689453484560166500815819758935926727778078274920990906246980573996234005110531865275579332362436383891897240314662634639052553703200376788064011709721725016419945716020501664192254437055349240817668672246917283996591164633433160496546079426375336262985291233682834831775512599713352837280471820131959990900339582095972949893557937758503486006929879485784744991546483128549273470962004148808955117341533718985090208915190745412564224400085761247578085645821697085043825098619875328899279706324303649230693408487962103672573196441521575557421592808963257327924563146673500572927427253809378837691050447149019212161852464260006532140166036589989542008449021187261166251154769580377622446629256647130277640631420507334103469266391946500662300802564252397145504451276104033454377695793762136117254840936777163533867085700155160630816972190919750274508640854806468830947808398507738559828762181445816037611650861452173079839253317745002777807877228676925559248400784355339738805823154745972656860349408912651515508500294799325788782705111115287974377530215732705992420164197330122326707627366557008831424998835263482231245418325826558065936082440838944503371084568285971989451576996181480040529077708309251901738883907206571202837282585992828380770728579929640314091141042341652491292155135346370538565062069650901730327298932279519423890569294978078728025154524382509931353792157625794352928583781763371216954296190456349302568314928905906124842065709136497079817697784858829447098286862732155663280749221116846337046363591689620027333414867820612808382350319097023794284830006932768718551329024896206220650536207635501257757426782802063190416021012439406468681046824588622243809931692896848052842392147588541556433136314285562371430029554193408243986629134455569619545760578766181041691777135503267683721793993019613107788274556263677569160126152067487964036981667232368298683812489548744356772472918289328942927059434557013353448541456488504857077880968806313333767489703357068994010701801161440620651826188480330840001328412457480769419672941610173237656252954185849921247434326618314370689060282225601949206620857865295379937275742921125129198312166406893736038985120080579008396675233764957516086073471399514685119255380952445780452278630200583427444936994002082539520365776731093021514409495452587120593912855607802596536568931549622876771924964224740508161774446858006366343137015150199309910792823274739808423477523170413011150646059065840610296725356050558467026030264609977093840236962567065905190974185099782866201457665407912482227784744791091586792901787792621569106378041736702835327834011954640439236469801580804409999145319293175116197022224079385320996440975986804872999291758583129817983833321130846243552059699174832249833813202854570118538235594666914978569895360023065404906217905555009539010148762834326484330838525237328373834553171555528546431997727525540111640217259755182628304083530981643905347053541803325747470266095755180755550260318038258659177115556563361609729628542424967281656883087452116840933347406551248212113158341971099985392598855217586871504389341009488161159828681449326366350210249943391509802900233322544655370035312575379738466634160042405751163119338007732005913161950379166121273355894175372566643707151340019421131402811380449939051344497606525388719303542350870073920085746135288551533289350713532736774900680927689611457917831407246119830244036910836996961280011316100197614453002039260401558925737824494613018675038923444024492030808391647003316416591939753072828410280105077301123194793518914917365387853329077093284929976528089342864396155438554566189195195547622710316315092176764622186956575894015704508883872231026475087969661562943349467425079876948650266731342781665270933701967574022293900771173044955284718192375806877494354309721779862987324557960227523926017262333953863943934570258354561130022420426378348006883402202579017792723032280368325601575063784638085887155057787178257257608289833239150764350423843832351645706958020673162314326029469064874118580899739188257867908045327172989219077401059539910466667468910763816602026203440011329036695523458770024982966336204665308346409436533358232974878159453342554204153156416251747537605017019253991977445617725549649222999601209778456144796783321337513187005875840130020896972691523726126012235285898269412813560111473830518330619820520551251736514737086499915944885165129364402853649841938458739503929580967400786322497086281155609133963108355657322117357939012021843715107143195518638552834601740344476817540094815033262044965931076863246458924284994263024326458822520352908655134340033644057173737215039697976867592827443304620647682805899413500601327927760600727891308820769368938124139790055782220765335268067552290514387288597305449475480998495966924864290854932079262941428786543044734890374586381109441743338751381054765736259890038549477454054129331918037089483766341546214756068396854429472763396475909269878028607418430274029765118367826460263266304860963371320993232908908071333090621403135906241700972626639625874298926804426086243569674428977564542154194584103550118494921488589910523163767351178699129724753368263898925240842058851324057975329051387703971328705047110375811168265325339145213064348852016929631516133353199857562942280479738812830880498164818880988537864511866380225907870332370615478457395538448210350635893840013896566029660269044489486836722035615880873491551520741680372199098889715419462886238749153522099952429023900226745649624825754943371726788956323195886052815946978631810065980738032689784645301901945693896571212716741671561889583211756616349625494866550072557376932578724344514376066539509522632432157708855552348972853463509349865863301301805203036273311969812657801953514932941121274781772085562223314701661271091812281856261781890574957654391371755428528045296764440816288678213663357324508258720993244300779036736938527676841583681811629285366532541334713025609546323600750683894199228279359742314408843332040793298642010041307671300755237538979138831899052783544965720180510811595341778149474655332589277718455584663504502075413004402931146396470920792725920615783298891443797793068141394836168278985831354933985870273274771873037610716468272764317674777871782957825203491692180086605343751069231356765433221118594103969069681298476243463852774498061135306393756064584899646321037892285413179254384938698277576602098054158736345475828926777770942344918939271183641099135779964860895960545733621838057552526205978129966968042459622738658029336546871492736463243456219406771002111994435362951751507610016253171078319111160104947525020475112766576291476886771974732213211521758541672882681433172994087037903328472316314940008796728272755242866094726902175697020046597333985270280636681133075220426992930007278683296718438160577260813605695994851571852032606255177435034667210718688542490243795802454776967351786087492473871209473849003530899457012341186649310424099178100693783864235433247061270234869593811724681457449697003705563177164240905135041632266290771167397140046705215106457970337490502669925989074986948856678072950001683662749346799759428609289731307488718381304319546868828586109009046290258007901799545174263150761737179405118253082569891218394335868458925152277279170713851659143116218661966091950674609028309233035858754161406744780121573082900327470452695945321726286963538893372326216834944009190367184344562402302178561175424655527505156384215167158186233019971746636886663528787585075839700910500309695383829821768402770274808199524251384846945414695303547101945754801317226602778389493493101088194901223842684310672131666222985329132194805208410176050694988244528847329245734238407209355127697413214398701754952465190184318184469824510919378994570454255256540111665944245586470483670573231137170121678715583010498803303122122827355051008470686330714123436272363988850513307508772666365037768931433242479142020515353221433332807577419675689655741346973508525663171375740151131112445276819074542769513220801229727753352570693063141872230113452576971609297310384081022456141092352877617833632930467855320854216908233600147472994200153362547507678963100048686825274074923043032240436395381948720237348873168242063468191376642388664155053898005345854473701663278747041219156516498732792475638531915177588568515926578075304659148449609382251050696231539946303988465922865525368575852840515239448342866223655939660989879429013534090699016116410636905563012296902392490941726734537366477884388161423242622002532881514409814537933684648860568244726117525941184900534657315539776956015731853879553797041997288549992315869515098922795062191830621222327896511063243536733033751362254915028916177592833701760404199915111606699777324408608642244262371801964206889149880634853688249391047215878224345499398875994185386906994937102995661746211290896270943216752930610973590143039307926087830997550131530031570809941944048859799785975225667808324583398935734668753518772708015680067389716211898736402281539164473591676414774022773264458164674990550244895284288258185668933403813068127939227693988728095833016744258291160802725335907464221967597282851568090390475519483124399058286707291896812777739556654015106911012249932892783670753397555093026595114763964032051970831088236085287112879288736504267039537676246999810379297437276897835707657784674904791073729645946299836669568358075590905437720584584453100624803897683494134656181709062005813633937368676809354169479412638320438009467875099665350982459398923870534315021289436989113213689312510091950225944751298980282613411446607626971566291103739427398974261329559723937549830140759508246175086706210772588732786420189423860946565392825582710687102758153278834242309038702463521137163673477127585135198428354326857695330572228188287306731761265135261264586251268148689159805755675077339711541327309293831458256914495103583522506533665577777088639202968535964875679219198051356232594894473209930911654079924473692035324130008843226299763878263708779060714599229258805157475896285062792146612135014881649163688819723349829317490571944970191479726979677504697947434023549322605585767939745392728083740345200910664765662644458484263936508835428272331077298163565507875501522184651603611120395984361511770965237620132318372861731776272403492172032552415383647804783328039325401915369534829213121549409791518974514239360632255055350875450882669951104361319539734105303564095387779607726495364786196596723248021465705969987197397441292311486336240788607881289082426079336412776598347907567569809464926474327133902737816439912118541998282263584932329965396930243650666940021746654983311105237826808357412222506886616800498107334778828167929747275843720518732173838003987106078038972963614806774460616844854593456958828629220729744400406279185862939583269065820167853217537202494220358792247739152801351784271047699309450350526501503873882240628749477912546486975071164729492306927248685130370860479641986000270390597740887651264699540031303635188807853308311474039344898821866530819271294300101760796576466705215617828346706340497546845572304588138011266387173729969339146600068108777287857936958525175521133153425855170096574741110406289022279630585440679680763891964591221331855135015449156318044945880680386627450270898001884318541461313725930943005112112470995021120611240705734499156064794837124677040887164701095812551379548062972487880101324016159888653329919281587518107872076145137738519053778110210861787623454351995725620193261768655590329833808221588517589477465637274840874274969687561372284420515623714628413127856895322535452803214326924494119999557079151288651555686487437582308771838892430927427569899438278025721214308427519549376712830299961280880417962051321912174789275443830768421497798804769603371573492695499268947388550145713047492113775744086548381312909288684837467957367340950408440844928920142232372153928535102924188718424528218141013382867231492620747440583790278981229382527711887428643633683129334039671768236634275397494679758889128413993430173193855820584234943322499710271625903229733876149062926679534809855182467725500592359874213631620205514476771482902173544917241930013848059365442856536186118204735117890901817313501461792601308743771239999230027200969409599010157879653318347431134787280872594129474708922832609867854252415786361799834530436345834215099023478879162085922698312252100766136118811115721866516454216663966617684664220557834600296537417838725954960415505938503456754510729780574106815872344524822089190386719454113388840332758147542186392170124700952872859606596898557507005118531175645169817200107023527856456594894620370034515400020792212756300635572007726637644733496827291144376670035083880070705915851485063913128442304591092045531885067859668794314360057846603374038707843207376232203916355454553898928157851906457915215104328576609197427086171572042686295604912833874069859453110584338445987543302219835991791637458808862971222060869947134001835980080384709292397815933418098989480246369152979046972311995841142637025357440443773413443111125931851047822093483138236863637398218537694626888397717254198228525999177691579102420960741572395982064616353046145742449227032358947357119121857368294684121874919202954474814241108384295039382107239899237631559194489447123299828493690154506338843037611845971127368096132195315563215843530038989397503563115843412997290005718185442013515623282733643168843408578272120871416725152880004982729461599207002417481351195173651420286721144844361236371114036530253106601824848294842500518979432138840751870376912510963940902948006805975218064103091316927261128183730283020905006330876715725786403065494955536556796576919920484108386616167818887950770396855566380012257867353939448516341482930716317183466149946711167633764842234064122639834236759190306780556818480270559544324966511850640977941447544681019504071680408325002144481505904177766140875704794472749869519548241014391376640821858706877096607400952056142490376018902734507601520772783553851272364530215217098893662722568348938497805789282679635179345575589434959958467232388923004878990057355098477508102095384017886490303116693983148336425574608542157002159431718073917221086347616070713284830393700367345080335572834259608013269576120297819277156631017647347572486809136352776620173922597709651856843894592339884135886140080433094732097191057943938430229900525706479373314457628396474626598744547813505101936980492586551924018761341179995380078313024960869250495443453546269193202066406051123763275852068026134380390931667474679065552278096144059944700181592623239838261765568744880094332475602579604223991480934957016643586536656992783925148296024375105402113028156003854620520750992382645424360615361403959778417775961202662411267598449436646100331092300782218068656677961669290839992027988672375024041202093499996880173689785846619683858773277505945789670211716308437020358653227442159780600884356652798348991590477553240456238145816836789895131577857485526269242306805110180376123746373592826171242394088557170297701856143892616348864726349401771339831044167627731555144062589511989846686963893080921818389891245444899731736132912852693602857347971483233599777301949358626300797606957494333613348258630282940649413244102651347973309779172823457532764934235755850179500893421044291204007457547283556197019134093690106076775970655242115716943181215125154581969519312888754637352814181381710642240958388059809959474369689657853899473272579161096836071982996106749938377536198520034482960782831266860895347592425874004452664479785348268194543400127056940781687352033007214726995856829461163157075245539930550972917390972219515409020250633752084654420019068955501258529141388256926491346422448385936413538389700116604175183291348344038969777763059964634397433545585882031685813390925284287960003677224066261196369169486180334823508631234729950876333140099586057618966485520228076220758107820900776736730154291424445749752502849080227654866626142096228545665178957098682755368436193153379930154322336929179901037979100974576620273381641368481752395205359231222446222816524352044901298027135666561969184981721109944301543406826174436888087806802489069007949930239055335783197057034211162772481304274815163566753731862393733435864940522354195062956898012472267307799895347024657695583696524681048623836476699189393256922789380318951483441326836756507101030958609602199313830654251673476129894032157577659625117113675171964644052393415988141669004992336983425150581699194036665276114631743215850114559065820137667490441797547781494242327732098167230982973514058834627014792255965905645105260905669996473121481413864361582785884460943884794750276357614184936221390925112101494687436614500438557358706185344578124032863726928497815957847713947867258998851141832945539898745727785199274075913351713626895622592866924428099843780275878244849628958067261939504532554322439652443646302673967416890960334104452007387242164006327734907349259178330370286749075976167945949613445225617722932850854021275155600378735044813469844909309438614315875881466681161767486167702065975621780138498697150074543880797742160759011961971082125531554837880085102268022685189029765975120095982566895998981992170895862816006242675125117686983262235927682322211387399494687130306899680548988109454739971079193016927453247412025204085313454160291970944417976922607975198889343655814438088000417298166518206549244737559339011027230879891068370617117846712945542912546337373256739240385038827371596939757300153986463332592837600483929089799320181481638324823672910993411252299714766027621149936342126705767759033083414595512575254394169149658016720806030414147217720210336351867746159096904286376601205907451262196430836024896686376064464469718702028816102281193726104852042303231158034310853862642150778997769224432018219049265703426924207124084654526918992551800670187984179230620635548222606353870515861913344459825312792924517839836934777977063475879166822115107911099987049724394148327874460330396147149256880294314754211059498997154104612049431083063086182826586547058520643846905051358202217123245104619505586421848594018820757199857889093002762841952518320312763524655470925888422170307856568338540330439691146623760397618556757141361943108953423547007336099600293735392543685086365518655550819648249177770982999028480732981587489362209015258123082265484377931783014783746808315297037021155546105976577297658377884666482840607586262566358163319819432898016881288521134823220693032990771673041334192165734625370255437193454540739085981821917091764323808081897311983928593212828026330083887918709706148043027006653519097909320640543765177317889337887682103257914732392855280452737905929768679864680618013598375174475601076025927182789528716166201457451874105099912075367455226477526479783984064581404509584375674840894468772274736809419881197608091527171843021915025766406673324585308348270210805082347837020959950946473606088278743017410609191471297666252214616581003873817992370024099006522990720440335322801493295534958296162130023345939264729953974543724280937255747441866413735733284831021092332527458682026113194179415548496816814566623426395467979065744729322823235071579017201554992263115434505543597089219502608523179045597202859364926438135192645209196085714682290151474311271407987678354607810662002878254483447367111382043231830695247693932072653882364293694924313153566753215320433482181699191747250981547037387335588422018602050817655550319416630789068265252786743539071421865617016755166108214986689115921441592952093627077784094982509562837190250944077669067424936752552046185470997181255178975464254569752742841843093409013674092889527977935083431871960001725809514285997272382433111254293077851709722887849355721224651356713096437474557214438050975011203839302291747775684443537961420317975774581588460108154691902922712016363304622712119142953876215199111293560770245640376709750026249917292017932144296260668183144878800085476273775539631963910613121927076701286150905195629727799446532100221610002982309916745756030347340254298699698639767393028169711304320019368388827727334990272331458803250818516459042827944288426351603765358390497408037500406976737429089035948616974414714265696438306837056891936369295452963807074847014745478497257693625469473965382640027387358343684948257416933705563287600767348931948344404064057623466027057653900258610449754478802092996256585528332480892803240382664581824901880279235336717500085074945329172406660911125813330390144797297395271757490963293239255128923749721773356121483622816685322087128225104053488342721535066166837447410747375713617708222084414544287176450906802495507304784940682492493710998640917117778856673448787721528422281557896012382252440853949182760104334608010215219236566675466029221612815357412746283738431540937260664370681555864745598605157743333424807918277639680837318760924122956752273759337835719126307795963681672757936713721773000775085591981791221157665034819260807594433361034545245143981091509739883696580712076627934149845911304318823721565268452763065585663629487635157789379393931230159745937140795791284941888717429475767394723571602713000930021650253648028420116150215283320566565310314467307350376295152610273749541576997293943750191797392070928644416868796182422536921599894491631114894565989484162908254828085972295523235383186094731591292823881256455016707686291962117594551272280354615556487086769990782104772269358473950605615814091864918550016808464520669366393237935521416625094859538084266012230263248187083747905407735182675951044933091841168152305556746812431162002657751024850976378963191563983837566523725646197724453074564671751401102772927939124360876080820957080751463585261144665488503749045857693206911949561886634097782284558239477896130586472400154176632406887582738667333935137336540652218427467281943614952940691742703499667553418191998712225237892067026749852756543363171326345652545310015062145665784206370356391024330881069086338738106780280581575077143896115605124605789093642492843032596092305268519877362719310256790561572525943544159880086465907531293063326928186935238386691807591211531250889486951716131663889351766699671166056592609427386412954554618556147838500893024133638570651950016779957023961302292355700575771365273753591518023784274659829426249658067063662528770376678291899853959252085774355893734440030222623028163981876302139570787469589767740800905008531369459471615962988674503678897102987308640647094366625747984867561738364290123077214201736409599964419456523617070523564349604010986709866602072382187295131272455828938240174901817585991483169324743807536986265619439032170855152099975680203026775236382169322209580921707413613859839239495714391968447791234069285845985345135620290341511099722707203642809840391391831271693118782737502775353036937922833360678241491816251245758865708365485933081435016633686660097246147995336861909972542874994857811340936100012130057565322723636155821755665988285625224679282673877920378284019699511642624003853434164419780642067430914901367227831536476512709805484976157900657363405100157796826673861498887510800054543155632108864669387312273998890907515809636171467821449834831873589025898928799987867245301670144823999437259384283208275690533267497632692794473733482035330791206374813373281929818483474826586902588158289245829030991960193862190780313893219433394799225687346046819097382248739315440657603181993949888062615887302477677153830566094116075754028621020552948066931808851267411859517802870392147062259520724382843368215075523513340407635016475607823870134256211044392106035195525516049102669842741378140513256495319595014568213784395031102160610761293018611445607092004665405580625755158518432670911863557155074831706232171444556970724884045857912037938072009941854320989845904655822310729658344643468411497463248168724486854250782769654577519469907444846301752053145878102545164929519067462788712284224405390634221628928276098273920975922559860734730098675226583680782037713174087046429815733555464894516726811797540700118037438210124811225155949589678977002984868465944122457764867391174945332309842271815125721508956709353470229702431488086053004883372585142689760164578863489953149648419981181462399470586172383410084491071887755149457544368333750116301866242997169260380106371058696595242911738374907924264979579564826107685651927431213484074350686683238716519322236462697008939125647703368728194980097048964643711883327862100696379885171473145764239468515831209565065941257862177671641740727660978968954788086985311333871643301300355463884625269903452341215559616934912025258920114231622114045519335994760492380686804624348160683405889007348557680585753645303688474647629181514609131163095700271552266574666269980841765801342916025360262197989477125274106431366165482632938644464956765287089981571049595122907465639737406767865015291614955101646922476866529684066360401716208106506672452693905725732294173804467615413393238197166465216954966057541726889828776039341967731594380492743559825240262271298074024765330105386798045891201424205046454692489137408408831550301967023891623141688480067353851705969452423995181384376485448250080579637814737711230023079385761261188480289944887277539056915009054848958863135603100939583841573634194818929131243374116442287537084653478707468160245044924358448740113150368441943955421217296452774896145216749077614355445460114456612279568488690338782472162261407821520039106255872402186466487765223559835240894914308099491028461960134833470135516458911774487500250172789417580297257771156960218817537363286907729534453780835110004954073161006098179215441952587772131279470873365283408769638428126742105636802307856955437592824861687926565787449848832133632625438126944702551477596664881138568743676081394111063498005851048578131198299213994363495103679554666672960914681543640197417037704691475780950443995352671213170510482579401722958305499289505066284853084815090383220148679256466221663019302511117495521492195006158268506661176779711010780925522314681615924215666633659003410668428059598203271684487578490982490431976226342534870607076762432817249430699430174917661445150215682464976494936248407850722137200915153417754037305318069451064624001699801666295709433421676698768682196623090719757636495424708909259738506289232183731549347824070021726025814907220525394916847230346550895292548432955359986664759856557936383913068046755906789226195416957430904757741652834508493527455041300590629875690412012694361634374005025344482791759758983181128692485795981116863133169393145808072570437677331451088514088365742457046393358479752935561257407555649405085657551158542717157771346063472818378642894427605008922411902508012047991148137777299792161366888015387617017090958508417203818482713007790883232784928508523242215523380362792404551457548683262718561696274163286914007611630406301959098767106052472089668292857368575598349218742216835169691195755701953030550979164561787872197924442646624386221194757777056297313430783130489403688346420985388149209568966078972901860791748865111740692700092773743461695783079027947649372909202890965628488957780895119311055953472269887857969953690319811296904529884613405351445884090611121594176641659938562984128079417304800764670294979607570649401164653490114265529897505512468270892289591233351650754016444985294029779461666784433524491746217136662501318137911796541307375313190373433671849986445396992394117077853215409958648059844425842009760295294737703635822023223808463325442699986053999021713050223172995200886737783560884466813500696609379574669624543007424481925238798356650379415166478400921363802614415971323155901892100436718706307311011530446546342568189167015467503757216463001491763754462061085140863735454078642623991096741627208817117760111285251263807975055959980463484224576733600315622035708884691707642619558171289443076355687064580858074839040418901718242359416353935260819914763707743791099342651079255382734643286716026051563446986584672090508484650497918774683930628535519262145145069114802235678704737101240331920786300203886524985346327506113329647819354527675571600265725959927534472195973957460473037886642708260011548000808819277710600688300354573108618807735123668324339460808412681352118478027006436445877902249440070737568361314135458282945455239791874692425691877733142294666295318084797252999645986181093944517372445528493216739278125765824561833385971183341209767973758567641706223433781858898778441448868512214048715659918003826651239749970187647520755527469194753679823339720631459804600685702922448495389103509333540396645352607283325966413383092544097210304224296839481181470477893411516732850030543657516261568452846208688634538998763531628112013667189532752350721760003710657901294497602532579165938644096318458259457400299508889090036424073251931049366182663154983502944589540902597142091816070418062249714014813114109381262312236408880014277175738760897952530828676127938713862534967024829640775112497592651963470559916225047679736326880751821753026832773060417667671553117197566943570664703027409808150095968106572047415582484033983016111652991805551421784032852979727369924124855166769059246849189373181903000224568883786198972763568873168238727297830132872507743312238281957801150278079167173470501101917913527247440745683186305802693009611355686745712009896111682647624905910184246648783395362037683837816776117102277087556581757107625840589060378316092279085623821996967568513515923283746982909901034045208203062241419679631607045689644615264185517939288475589853857326335425024113891927488644054564485250557394782389565795584679896759129484451776992633899913445787933344027762961280194942898193801959457227281989118412198958910838422821453522304374220289395722370587455563356606685604167346573671762705557371774692894365336632927562719872528530844773672810772062230043847704583900861067374296743568791445128759942152152491135901742575152521556947223518780145751357535697010403869029648569425836359827102128088661584658318974227162264011623549202085006604341760205603275931445717083885489964618184943680903313825492405060657584294782124606121080975561702259766003894401759691312450857348362275563519808267825610333407281674591749671958387939049574470976887732143078524760126816044497056129642062155630281117438283222683335196633052833434766850710664670842093471649531665274655113382799825386445948883725019483148765343159681183816989464123644639566080573743157525591701413775208506210359908476795748991258523295909648943981310759218941566713296560784283533782691717564127621608551119684563806756575067531459641639597260424369026560648414482719119438541145732778469918541493098552808858820735565809139657223481017351212559663792146123527965011836805505795910753216224615372263295725536717989812523319788790853851100310493683773577669300059309813868315743656143124930612408105204541417734479686496311238179430235881010322039585756200428039927991730109264329935551420240243884426979892954642082185476014286143344891764186395302681884567871361182535770273920963969065235044920897689337186531130216549763979957355204038120494960497726519629065210768909911928037635307337298106902922588734994322215016199241901476275919438754629627203226837201372752556119695044688235228517872475946588495098009884018516538558678151927968445400606185812880764083651885515910719080324760250251899429825915990854535378236050111722014756252959220030800218556250182727393798575432939072209870746618213457771475920252504448576293980345962865611817252987298447393216795738245869407912803227382389771098663116259129185691456787431549656916775520735453919442304686505832342894567487723792378574171689676280048478877281758468201635826687524452686117593437978586873466581796552179283689188521308918592771505237473713454296451065996936203956493925981107114449883126071556025673550626010820246892351935962893100608723983939318337662758261607878538344300689453342280104027129198818240597337823296420435338661833329320140796491872448144981789419323760750458822416153374176380328277140444943030718882865900152953637231334838190465069782549014478036397529798257530028246331630201636300074581518502403651780842516299059967835685337933286945263163145803893740960084674907118822673677260192720795971787711552497236513919033492437998391959982769477326739128268809193831302781412802813903209571788364027920917354717259664765599078374961757632161364178769111156858843307573365796064452457704210293685219649842559961920919362705106983030206847085108505566245379786651592776796782400026429715876954353499453338862843391552437216296684990024607819354951572421325561683577287689092696215287893520002280144746098165751595515942777734936612878406938287964802788874891292641160286713612917949280943995211526727706362439924168698845050268024461044797280199270388273544039370686750526275766838806447019630436458339666164053553989948611497196222456169468867185276047276148577663498008462725486430575607123217140194623916502081963523211018426998510741251092587645239157649332338327390518888404925328104255003660982790253015864115276238755194771505421523407154505892424383580200514227134795018228818200564045737835512732724514307297535396396301590199570782596605822821969278209258583221988759745607634092643478649224325332429408382136551428618791903032603723974262941193192136040626260984629407806672955633187835203974015191772214275818368594186435387362108469522078510394114751678305855152881930493416660548485773601380696048054680518927678642524744851598464439852514557526917162378517120403799952894183085149953774475624481114757190455235183201143504177014760758633451745052940516779483479409439143552168524989511398643968901656137282825223478380961930743561008867760542868031063999380953714794001769346210407406199902710132509104144282729942239160321130803883116771636841676853231939028958857737593060026526240215115768580929747107690110620698371706828069658122798763375323755363606014313748409389724809664370571888094914924413047167089743575234524948030201153852351870926840981692206550110239208721378856882244719569364948854295453322448055989293198722039378170564647713981407231570380667085364192044226303392505299409521530547954563599708075150805080496504684008032910432390239445412743354218552480905295413535209704978146470704245477057083639493882117488415047994206971596676209892801539466311365138538772245733165767671956712379137749958713779965504749502645644705917046068272343011986670001392718971669804128658239986894454988989547753156453019722044715934556682903197992123077182342517669659616450346087644135847761465291858988389381842985695055832089601630623476705636791654400626381043256905940158966938943078823864211837794541902851241196463877533181209778848257785522842876116290461726086406456685694797915211096671247082286105416423779530015465479085777485593967150870061430212982836360434023677472501852050322699373207467513825188006741775103038872322499453118017341775111309471391677157114848952359205840760219502335878214522555585506278963149501273908672627592077346873238008183806234301338919408018372183892153877902139524621306491210686830996797016591671998121786701361610029415459196222817865036606387623208678744485545519771522782365876604463831140305792280299013605317165362827614038581454518278881231024419861539683283630094032330562059505313123249004514216441305217317665724441847936994335801529936635681687835105421171082617596347981128494693911351727126105607462994882490940826780041393421112016645635153216653128357009042651265127731271781801225432234478041194295052965080164522646993524347848119030996340711827272616656105255184411935788114795148530759313342554661530897193418727375198767656046469201521662820497083934350219260181961393201182133039055880363990420238471480364685637665688517516054238367055152436509700279765960414235672666234583984424120028557712047698631334625834846467044718595778288901430416392980666702590968474186472952156432245576726853954635386521253447785139127123906323358131518764631501413974176227147033460428793780792230183091199617680707704675006623226428146841259195926081657767663350797060682706493868402056885605393665883022500519227307752742531196780152543060344076121656162669869917672824881004908128322024642594223460952807292194733970070515184625668694253660918799553077469933636161282360233261259201886402864778391845042342347702858475651365964376086446497827564685395047485221523903886166677823614623533683864607921545867698183768075549668970655458810301916555597941094245223605738116167851701585256200389509537625963526158730805281078893244569167584893597008537789131331085927544587854359122045840165431369623782958649358453744449461389350531612338574473672215674729255806392148261555635146679871331325892945123529071758549683694323529993089248525751979364793100615778988345805121688713295826545524593807379587861593237113066508491232649250713658259320762468668826700715018957610197791843133806540337680770064685646017415949136299136856502575830915952572470968186305070573777841174055110258982832575775543290344344723229410700546937734414461758245845652107280747686276061180470708469337597141523524741654243577648866906977921449462046976919713044585508352104071322228467608802226160217083690901586890752698329839928700809916377249860186773648520996613209628467224690025120169746614420370185236994814650626863752063623475974957841413992670746016792146394657071295625276840733353884752244270775643464208208868884662009332449691573724164981539875857552045429499516173413068189086191364371657478132651642961951256802161127844728480462468076616639131043874223642454338017132325496149747011097755482914894981988439009347392055177808495105302786951602006687514448714843734931477576998697171105459560894904736497921982166207860171981547874880082416784010231107363390213957498970094763915625356490468636032393706424915346960831427084037711119031653485268418979102349524256236521118075244845799374132292230045453752718411076532416770347053182675831557898228957891450558579449171024024756901789166927184364573885534261329513106597157859808747154478522937342572069831350456462764236990162670235851806331918766810137822286858282815187296641947868310695360565004946183978897573054933425894645419220970261820352800934988835425412750774083340493316380140042351743856354062576605565089042726814344510970338246993827136434473046701622714360021499484098749669152694760488837214141742945332016121415127136272249331923057434634954891299673555291455936227493447160737736445593917318796630845146530262493406691223614338023043191906298114869442750853774091867387628450176191830796206622676080930100236104528027636417313753109459499694494997306775893138050220598871458901995442386061960785730243461336705043460992583010608680001930431864750471978770998992008553895216571565475281486192296109196304706984320849859407632295568271770414292135199042723149266362177622465352723869054896697555639503696389495577162020431203266448654073558104742647363461122476189490188476518467696249460618616156083853617812759467859076133829927249759639891672760227232305893971025457443455371342860395508768754584545995405235500825558399818723119069521120679309417613354121442034425619033258979178277659325534612898630081629545310780178371626221781558361494507267353632131755081091716380960457143854678184354061152784831462556762440750107343304587154958309103673284239619561025948965221167208149524588038827156435714738160177064280071336066985561677946474154145654428489533277337628689941682083583673773866874751244846023576380945493364668330921927106199399822782949156471036571631922576567012589966038505423832733754731359723294381035180671355345479998737036696163209959379386828623185154930508272522522648936731024368557489219707522876994869512266083927499622417244276504066222349013786782246778081784578225866253384808798710749524134438350325951941889930414556298514397181470907848151160584086625175131682635082125505393734141790226851896481050704313489651826867135301196898630100956922463087790865994028811675426357593575664205552680083993721715429104047685364687778060922537951956527235528761696952825531547280878584472691178368502712225717189933280766751772307022087160852678302640756662794711895679000569963813477960944424746042451039786902452856843856609800749036880382429833336056910387278594408343697244675018582251401908806042279850898733358667714902851498846542882894089260892002864945480792475427323892062116845231134265691305744067332426369156445066056323047374677134045648964496470064275182904869639887054661226275920266750694808707181215838340813709129918584398751694647082381816727586531131413196848813343806496037585993820833198628436336098282665160489902811675700486276960605389406037859913308592820958071553878406079241613453158646355175054285485311108675686138792743518223178576030152528380831792656904961737263472544258297716104493321203353857773658602124090515005298929807294799619120327442739263493916659921862529717565251013403451273819906119276638743778135159166202516450005349084876813302264058758108596042778460526016628237091904635284367073161367260826453478975877464651967108612134468774084898724887049284046219441414506023412415592841523672379130759028399847507048793591107753180973574162872233047570344758828923267142849308082540962615236257027786551757781349798671537055605885809216913971436672527433729393349091086229019847380667384414072114256813041091610273414642127411950413015859707819913386796518776289024358685889265265428350630693210484053088001779033201601662341629726351383615625575819658583237770573912754575792226038714363415556873146898239392194047237179708155876335738864079358336743709500352190257310468249664501601405945360921851074659796676560070777723099586076760158817207344612941132318628684077350567781939412786983633833411589437298526147350684006911598908983762314744982371624493605529311330789258011233347089136405147662954863352379456431816166262468717198007982373367261209972687944362750255893747019748194456938205107255431217154639563170676066590938697686370877894130403381162309409539983836096789484550433345008407231320832072485296281181415231628508612265541811329303477401984638998763190095362613964576287905224969616795746546038330445467694355593087416258230203802997364720857681493424218502706307198549525072957009630508165386711832677833378626453047807539688687067235419010905218702766476363328380152399721548150038892627744807653881160529660239471802449876679608676137933427043403821422470059497926503180231683651289902469821088191766466513851593524609473129272696299555941241263367814872530497649694581646810281829960534937594663593956403659008748914791407251785515780717088646119025222641109512013822708376511379147390329281420358775536378805530868537148567199082522777497891264828451959653441682807197095503822509155188302889791636637132657300741765705085917047245993569303282140093163370929671196821587172740749563227325236149503449949381867739994886047777188960804925639987112554960678667383607451272332768332533350127885704079446598714187412948709792787153377532088124619026813739859916602449607600627150167877109102811098336316254818326680110733003938142557067875507053307251870060857954762470581999351449012259702880166860198489682419421077938530138265355098101573659170712477674127259256979386967257730197944757165478313883814866218317044692552443140213071039806283780983253067506008298831810957723704512986111776988688599318024981209956296036842043760613358858105687754825883572706922080823934789788305502364830708728772077983174062732225856610306727878341636716112360576070836265030295315297940095382383086790057376594526056634437029005414661320007399226817004994890970036721738136505461952067211565388141215136629210424758604096478723794120511382477890318715290710187176935312277464251321456710059596671923427894783593172673881405074545810259417673561245772360872811741874360691517843448043639009786339827127315229909517965494133633808632491879961562058937389876901239169030858328320157863829056351317170375268072667319418436459749550167360141719101935262770189321560856363298065666952302716871354837799587593864832352275295556361096145836342705995786510800874095756145537702624424858551709994350558341648668729262084282154298516525222846718509508247607628940103310016824236465626328299153902795047088594229021137302736595310707949868851794825835236011597337497718508510276603326830114740292717351246011285059147031326938609615837861740241554108230050367957670673096287090354147595642780621285348531141052417526242182419539926257945195011710595261103070241116718227836371882893058632748859930769000081321074963903581001409264253165476863119025323324761612277992255122955786066970611555729232279656912955198589680818806334919134671365548722034935462919401172922902028202611855269806864600451410712849328951910078367106684430947291411292917433835953333724107404022957475171530560921336637522332983651990424310770111516205275911993306370266141215953031969751954902185261151263411688249875148750914493175876376837848816383774577899551130140319640489182086745210341928727870455833364847521951067983387899082327460799024889487148928602188328291777910337995483697117652525654989919256877694900287270316276741913488464258654485438664751882479156586077257800255028346734963528451635467073888728259492201290863770129573392632232655796333702486050110070427250932881886023586640693158930951084201467489904235609394118772842349322791441715972330897997421932085564178064635995619873283495180717368373652849739867960767129728970906234983240751021898781395144244103419112178222323121145570459133549244976473913135293864759535979752284117857860657841260429481399815459516983446766816560549827942392991435188622425226130276912560738322086415755854488301836792062421528940802637343254852095824957937048540629815321505833877177710505875060688822654246095548064785236215840538780468146224990366922483035616296102223246513384224877884155360933173750484313832685416585097891362853208443890748196814803615715518868709843384836990591563842206821822177556394191681488433593790929561812176393445877376952989915452558210684258212867053733546971429286975013767078633097267714870944668075321052376579626800370057283477621578617030839093808704644232215498591029783720181837033550463931340707004108959528670539247278932256940193951697249546411241714264282887585916255842840774539327856799231412244780452782906294655882666944054870698142707323157898773687259532161635284446408081585368440097222857679214352062286901967124562102359465642817865298878428171245572676291805124608362517305887028660633257325424898376875347124644466813421922073490573484079393116240775033820325625597862107760791066335231447137327177910092628062881561063195486136743370352155038042321521938269252190045598019560996255605538116302092376815154115912897035409626494579580335028639219555819790601357651896540563879450661406781935042797557912411100893877806913290944887232538307898574864724315736004031594964478860327606068579281992866976884173550184134787255310797602575516375581948045677008670973748252133539833592914600400932113083623034609528596590454168177968895659687036997863110314142958107879686990314262865589674314190727560612756288308897538961344773594878606365404021453686751301799569910545436156233561551397989533715274481462944393663335944467537181638486513465382109025147430092727795068169279312006142567361816381965121963606518832141060527051930612294617627507355152694471704560806587273542769578285795983742973353489907279235446254798709621595347613121415693679366633543355939873629725431534554012823591569020151793666268815149539824125404986974058154955850118457374804353485294416625163653884150228793341623860881536194441797300215811847482610603971462027331900875583563715085987572128920366830891048988219124097332416230606905848405016428274122481493876714008517534834106243907897659585793062109112515660676139828847647380242176883405696783933731186393305644819915880913338536507909134275874359781980933351830720490356106822777515437569905222993317193716021663528563398923000886246825570234040088652210397098664334262007878239781742818272251600920457255212117374871055669037453121009599123200635947004846184460111924964355318989254490729365434387801491963621479502162893694311184447823432175171886587320820222016514675271365963804705883105618585139561774243063253162468334541838483762228793975457916090417628424530716252671521397059976814394559595831281521345866062437301023545432606118968063012775095553617736286525751362273664629671298666516331533097607113784911039561548954871308223470774581909368474577994479573817499817563122167696470708489871296479312182507247585989130856518554978870432946573012184069044508837898069525389265610810481658780918189132008170511001784774578873360008859572382078951866353717383935345435080372048440980988744488096135624740135288241336995354369262028718120374109943711311434237764854288347033285363286420026388092568973072222745705771859580608072032773024242316470202916834672823145318522188082781936977123498043155615925222573729274669614270391538791087176664644235317953321935393316675409585062506311038884287370551391037831077709434147115952566467805574348988814144278298554715895651798642600313717868192046092458155876247381161508655697034366897645353548441696836949078172862718655504885840682259336274874522431882168079997385044839223488989249084618649988824806868644558277019413487647452056816941756918611991865350581973126509333339231825181782158159517964273682637270096847471127085402761447284760838434664772990529039769318334344870054992837473153860459269552659610867763771845929828395245244629961967790057481702820530341579014322161045855710989706705870822593522592134810310587699879063076987173620977392964982076425391892417723227581348215049374851614020355737403570264934540122188734289116060260312491484435001625974291027825637870530734087942856295103850244547320265254970611088006907589263076601902539691215402485889354063289352280987297175366237871895858330710279113040484309950119081010131310579401810442059376523105076628548218198634719431202562249376744961729145724680994774467197531663689333384031018483382898244807483653370534454232548895891546305173410757943562049262568767121721069718068751368263740797828082320085124912860147480051031027491524290220055486300487949700029622590322045642725981269930833803108465594120507010987842928664004395966953223137213271719209448778392355634770563105297581031028647986512828304284208161340350693382910566004913446210744402075574544737780727453327212435719018322777159621450807451451506604633367790360658066276209635502491714878106976355248688936450987099692105303007987370125063019118852903088334115133937336072918169526288253470623907553783507595626797189837122152197971818710235974804878756750308847771812802414604527388903878011100370835034854272006332577495398075638187232480324324444665771059059629906516390913655685269364176660815196047937799170080939984602239331026843839148879105806419816072014115919782899552141483165015373443924465563817540099188365615631469747759651392073715353490005924851272812922881104384317875961063638726935693472873684826252105469623681206409577643848382259952011841627463805030403940537493496813839446688208872549185705445533375540748283071661004974197526923087704934908121406112568933513001163943115779506323015876846053822607748506940968402663034729451415432702110133302683833262685390356781700011561098511309776191633952000778062313744345363772204274491425562957330701271847770606649990253600736667155036190557385579841909856978180008918065273604063948089889086107251817242624876839368393674397052876674192558946822685779342076107401834266498107776367286923462070104505092296705402806889366598479365615283878219531609390713077074564576942583556347511009112679907689676217769945096389746524952417627407976340364567320514830948658440512948709578026624158494930801407778402554774140673536171397385856270791376211964379040428922446983956242786955082967279386585469485958550466384995656284573534927452130889782560127687897816509211246667618585546627305266135452473279712790618129320655542020962599852343219450105707488638559822802511182210853056790377846340711688285077265397552715709583251202842016461509007554649906216990649483718931880658083729790967001585500467577979649492789958259951873565168809047748088552613876664655659970832071919049183322317469777953759745483273522745755440684287536252390548086633518330955891948892663613808033957363466563637373040733379760550024274369356517739920078760335541357533032266170217297600354302666131584660992670361589101599612081615990585275911115514884226305795365465687406437516990784913850445430549937865274052263148971315822223207942860270055832447854874573248660003261812508233339908250444162367549776162421693236703949303447484132749997306672486430860984466352843901399110331539387002855110815611183912445130219832734587296831712173718535045678551040820714853493325509101345911802252550037838256466209759910388250615288944560930113525871593244188369948837471848580648868913055233911263310402643849925505919755861759809064735483689868207276342357284846697839449875707961819277087117854766638030987650223456456091681289197087699337930607474566772362193340000537267761763404070368759381450813125116499564842295947784669675036512932146947966622960597644389737409565218506425707767756006440318401696736714738755098526575688073906909092820514510318767041778745322456879313804448265420557680573288025976750880434681397128295807780804289114379764697802337529658464406842004502468973305992729564607835040118520495371171496149094568848256529215231153583435429576316939399986923679443003465280596720325024004633978911141563328536109281788143442388507843802688291303901842085272206035762903568107948684052190703743214260995432869467038938081379897097628081416582904823866516245375624117434252826530928655124357393612463668987153432563426293713148409645370356016507900536735437795442399753157429040138921826658524139606965575797661122781786095619774389155766474631215765210812011362580727119489810570844078606696669410141064235507017520585118297359702681347658309098640156705389643824813492870201761657331497411621552342863569991268631748992009063994128080143009566213401602448532710580151659351577924225583428787350659435114379544265784269595320438001660016107918250522445291180369526272757364488461643987866785284232090407543942393146625430264191370400311811889731703489696638102275071577058343574142935797514461814097174409974492389430285504746586193492563691424942930082965891004437003448433523528890867441745628257236927744740316531981965198844662102344426885449238103154867637362457953206230586909025987329313870499930289698850167228360933043289818360534470014075750190946979584120756829539297829430774526835490752180298565465615418544628482541761444508939883477151323269612176763112195261237726628401995396260849185658773008100764378468853416832633691191432790949419536655852911228680559173554844871071264766437094959367531015513827937437654767092021888655873494780449364914646367766480248864786114833216150812517238971694717769809643132519313068377885427012337393903096212821176621777735115500076844672035088826193033818962755431667526230243625452654261187482058458717865458364732515613901814621598361875786077698941733242835551216812578545009221442855310655874424842061523834443049102421594537012030116254607275322613382392941053554988734642112125959968209340385381610125131418942271032314002627829836247740140833055588646424736992659251291475123220122726703549802204129021370409063772888375576394638686062500364062160556074324787726739126922050489372287538006627011843777411632659107917152135900797599930845874302003314753091699248338753898633791176355072647173568610857118178055665588884783245406413729168205294328306376420367995310503574157941402164374835616170348471331888905833416401515283879563342566303335481960873175845570729054845840923367572302419212653194131726403860536688152598080324820380998864519870994339114264020650227598163660093506497915323970943398077494841981594348338104177919194748046811950196097648329606982504247391670992745559679623332312291554970663566321250107272641148431817570656314734123315415322658921802267053265543139414447121443531101107452634384874799698733592264576435669526961133903740363551159504361589272393073304441133124763049531866299747999173742111318629626207136177021726249875519443355098802113399402935983249969597647100740257559291724324944286498742059782997505676970355086492253130020118682446984876103482565616510231573323406529888001609452334101195058104632552636517731655052732256890428748823121477419065579148797514716538274942060774606669243788088487182365756012093395076554929747667326806910020415403481999495381425621202051674130714283267922501728576045739860797838829810123565928642887887258149045729540619113498409956212316552230402927052399217201114943892906117426178841470008895763109830099255096653740403686505199933535863254421264256374539033771249752515885157189005113489360788013450128120768445613001607083784014985844958016046725911757181980750775147025777919670537886542767216814792538714068531958317578491927728930635750280790871945292705830542229066668869534424096111169770583452464955839537406953987357149343599484149439432049143931484539688290339847376833893509401861946083883249853209134705525535449261904503596924522697410704689737796544215864267973017481099760367920330010099956043000779577976367354658397672259676480206941954032015385905206168074365555957461056053339530300522686004365177972718967696365496753681364063383715418759609521675113776490780360928552469757709166795861082615898063672861665046126639046114892902279890963866182911328849033972914367708128674386804296628285612820279490591418363685837183194436365904428202855049204027626792497726384192106034993014353713304150907334238707230023045280047530037186138557891287889771713815467410718225724818500091996167627070195617562484324507037052190853580446521047992511058366200496426670509089896517426704983702028475624833912651301564644703640814920594287611796743957843570074221078980242234464493218690381307892266327519892453706956533373959699000862058355623997576509335931314762341056934138816436331735500700435668577351517266100856016485811623911662913942661197950036480630602770608106602634857905816187372020989727154035853533385513127418434190475046366390201283625170392008813893853736820635599025826887642872641780125024832411157484050389179709313798289490404506132072936273854686705451579101682803822854787527474661700277157445156150416338813101097996867882121839446712833812928552758614626209774574637373995737415289660384642713799071159484964656855485657121502787995330327951391593399879884980309854180932941589443867570863476964590550496714370800487055879707819053435828794037662885885624365361388085222378342150490680722631324746788443896108941027795569291657871195265031129484565043325696235286917169257494460348102323762372584182855576067026175749762754295199120101247997625010533772781102942834703068520198410569958382312072068293194767184940096835551661250778781422511721133528946294726454419724594941894486156324321658138554521940112479873350148725233983858718652769608146441012117579456502213730558600548865214753100510464096594237530071214936722896157318440210046238982584559722841565647715109849191510679106219916482519580988590673844133500860165562253447743411796952089083438089641115159390963494439135435164498170990749156862079972307543553333055345413798758441247249576360761854722133973475343755074335677119966836113483679842839328445258110730001143386144618527983083483304120758023391531218502619389576277279384324554591673239735416248703205264810290927374340925556177055798887977206643979262659013132153332502501345962006256653418953574594858938027429940480510565151776821704041850574166015389189016905874094919521632925010839480132785100626528529286317107880834414875477842529892900230430856008894143516655930593232605123411688038612304194380787008187627139805452077287824844547866956973691759988327348976336196308839863793500737529660239124132621343812448161156731031037283653752896007409660523647828634524873208922599963587568873824200920226483939178503788666156843790411191495847837215551173608522181141069953449014540126137882834650092562126538211242301621379219019948825644942189106653494175926648875318260323247962529203234373517627619000861008255083530094619656636199851063186292123534211859654197177551959503061877271420508476199558506850480623514709367479910378782451862045822286974090912901397656254174121565830477149019962047587325371709648631623674018052401935897785767565392523833762317374082030262702589344293999087392273455307306116509407253224920394116359929626275030968044801553353598361980700525208589924033483224246693768312119231694187984439825214111501175660486081984583920625510628885267989955846955449557621549210577731600133721858898663707370827788077052007818037259836210687501149408411023971960561578219148039980763964829697647824002082084451861858328547130496703075222492609428736752745194543371374270191397227298794754715983816289629623445377609241376954302284975665363915204067499433858773209087944612858416709817851115621976441058333396938538750710777903563060974412016556272466513303342625056675609435648883697246376067883769520755901859469978433047472542799056205001003842859802491199807910827753790861438143325368810142769924191690336054634601072948316164758393688293319111143902877218492013095831867263666950977939739292500423124129612895962273700471309562380360155977561445200088446242932703749116362859027780276634481624786366311694268453575264027254176647717246643154293522054753638492824824533164703360335204563667603432821330653001532809073047375795643724426603564227965770953125905673705905807145100494784484346968985580173030774766610786159773151758338834857773370635963535851903507994822089226278904630517599498248341709752554687766539962669057931566624951743690703936479828196791838317125237720480311429897860349507355842372731670364286164181636073446671162725722489282921843819171341764424522324747276745330102242617366892696218343486204705324067898937001113273391606007814902080470155082052387293758743526513446794604996473295652369427386306907396950126309675309330376487464978805980699537154214906954402920403009668935453495261134413418477665506815838550821770779651941223810983533937468100159198118333149286265516424827146400659440066026401648129415976764919099491107296185458194401512887530516802210351365245399072571042207689620042347044716481863929238485430938035039189907106035826982321975928177825764683408918227990080378885738564079997863198010018244562669109839368385779120863599101719848565366746954579007328571198057810047826622925498296187673753669290465377822017015194476769942980569925270852712584623911598865541482342213962799527858056436287984524545210066075373080263479784690984958136330698388291836541009760898651342553070448916436123232308633477122007408351210538456939577929264095976283314808283570997168444635843717760606430506873128879419344371461152875484920969858144277134669846001180179169142425336941798273964175788329395016898505114310285968303719803784120880462354392907739595350826050458175722983411192355410413923342925650465340330123880990104298949406379233859825338238937607827475879105079818988150113747890253792078193988655594236997340977335250322256786466143812370570501499845861964141942480824390786345613712660760679129466758458977910379687229766302348955143337312723173264919414804883291487685699542619446007210221647051198185210055542919892749110268560946626116067666842739970100860997556647698631824002946201072987144115210173625178487861888394914599399266279808482223655807928973587484254512386443225919913152489597539948680381047685080742900088264986356753454858707512485688195221344627973307855542136869355343062656169449963400418257608689807913312233612202881851118791303460841802667123626802138402060684094311150714734046039991074020043887276660383306812326886257002687595768533965477557252028988950205589951375399931340841217941167312144736648750252124537826539003889273328787850877899752911851251670593904990774484412106091972395730211680378702071379646410519567706030779897813456868460781119550197776571461782091203214787287124803515285160173438487800989524839628745266612969800702491048277433910470869685764421307806453476228863410877535287892541694205311310691906255613053209496403014384982612116624032964450216120670892745671323863167594821327794595185189723980096655413051558033518817041586168540275070253653596685108288407327803726000562012054822588926721387656450722911801171473858711345376930135177974528554646665253976375806446231612590992227667657522905807178295638623720743219379060414908370023428334581485771790960957662776588187619758740784039754916644119696211486900391327928959182874552772678162355485506031664382049543555099393768874710438580375105182441812647951201466473345004878342614830364633833685199880866237428103368985585991851961918452002698259985366614125182091009398968451950486076602760709704691029380606875408467464557793565789117995456609217802282558251432207602728135443092953390029446832131009386892780639918808411717073458708532165416370904709601802583603965970523814863249628721768944694639358166399183421007087058710935740062372581219647235918425578241011856822513022718178639919993814762987496803099415150417867383871088701296485132696986592557586268399314866354692419368055794954268502849739662516943833478668336422883284144203643734586353956124993056263219305189312380789592981224820204456018190771345303387429842394335159962525010735517355008137242707358184143846720377555791544656915158605918723259062081547386093455854032040021859453092794959334660862118266303992087224285879761249223491778347228202726854154699175136022262333350159583408527632175355319061392747986466387543007962705940861867728594748971528235306996418317250706148634673868720147018096310507271796123893114692714929147710115026413542783213088272103924464469701415744994334871292549713559982886629287032856345869851648142829795921092561396244179005003639843855801954361340738740930965669741049072665114230170657897121895362298612921334879137778578056740049155850951471706699835109623775005573432292740109548170698302628930499874805133828034970396217910945188834802407760202398866957717542435146984424431903039066462935970776059864759154668714496723548373158395554731279920639588929826705572735563841944362799184591808282898699203503284965568114958287998152755203910901275375371477736650511428517228408637269841646551283646361921992444844490989482575184196582875396226215038881212404235731748018740611252733908705869095422652532393228009415729241762617826394282384900248673433558231438828567106337186110942537229881778909912205783006309939709544746394376840371071609972537754500922325734813233675508852760842050401712396063631451055422730080384743856159119556082870892863961865961268721504393420617203441290872307978848201368536421009791254546203878403970445081209221334417813874252140755719256186750621677938084405088133027867023019574717722502345277585180923691769844384352800204930123519135858666534308628485016338250196435797604423818892390909417405284798162714492692522138453123946980254209235000713212059108937738358610300368293413831547481396752120006966729635968127931233636224489281045551474351730942677053819282703852082542928538192611159689320120113972045590348929291264202736404345253954812997974276251426312710150809952415225563807072688605245174542419915516947684927632540107988749229202104290935194823325465417985817834659099645847219522199339937966165822775937076184128051966966487368443515485596134583589844407722493515967238707686235357587039364569764069800432216598459558236123035360774092000241729530961171373911131586625491183570880376496675476462385447783495086273337915380744898400169382755974596040881528861965171803611949462699845477105942655581891850022041171831442203861867346169386910095766799967495785124034975917446554842002943038989885893998340695119444635661717826693373567380173486476176694464066247030960277881220665713551046840371672796763262646795968029317275798891014835505755753029318736188643026698946238415793557698579365386199908441287971260045792192158928703263869775141443191800468397094179727344504617158376692557095587066483718736407065278444104620079546961724123844274416021624434139413423688875212223586334334212788594027246859504919878699638010033679921112021672771455426135381320784540323902274826151880832269799084044354273058041895745977866779058748041627268948762389786331886038804740900068575759531214342510548914395624031754193182944319839797188063251620842550071533494075809389393655421216435529302105842053014997861451866789936169017962832120257982092086430974762382144602828230323613478369199470006369446894683077408695795771677195289721854616160017088362344601103048768721371823391685701497117051381751363942785000680568952457783493474118750435343198112339128519061543960406417392916669883492275296377237052925535043686643205947673750245411815539462139612537665785099571800273607578394772044375827921709295948646726322206345821695885330287735196513917204015922585610807910127792944364012282309393206898223581130373929892155331383665207163232915245394943183547447913297593722389418309156580937501270621913227382778504208229104061393904810227971013782431154769793842271235618773732180579925847512090553159570335891529363516168182914050920891054715944654962362908726663073226011961073003952223563071773718478692975208735918130634665987166963455696899087618333935314470610081542490057062644020128652297738402750418079797013008715837976071653068859156672757998950151106775603429765593292962993406059396981479200387631438106602821328597914171283616877898607775949545181479167924215744839922683996130740339936208594655691163519531102499882690662781722572521838464074759769410829878671730880479542490286276302456713441456645128373856297942548506289348564966606147075294509575451853436866366146639242953137510061875673104571048339681290934306346989681685944964002392867165446016148410492438646720068119361495814820030330492610056924192181914518638187084945934185938277171309191651327726872200595975113398179106196172441154732754880278008212763524766135187800785372031474431056868894417492804094920596701307691513811421819219739500411590041121333745484597160029103681334616883059489984265461655969185066233488805741657317350789873516149569571609266186188023706312259170223807430516837271737788619652432398474143917618181778873573439900534052842308191717241573131317279897789035880403576468271723930834365600996668419389805230902210148424207967615072298690420286019115495471014715512323110701622628374640484557283388505823823355771117936927909871970347240315239307694697562472911703277138445511167745852898596919585218180240522428222696972522613116965276235946280203671947448821479153113011665724038384836948181263273105786003456787376724473081586886161356849964958016921554764083302221414886544815041179420795400828615387914659900078461664081026897233882391091273918419198302510271630327732173135837796674886590393263779355215747726024392590655990711110474097888131915369209815670593943133355795723337795466666084890184105423501932142473268332447990464673293023528423174266790299987193780814900997729929899218948805552444154585019565972317013126105394836822790955700239315635213671138724472844800296689350822119262053041535101787660069451654064508610915748007952591449432843414485453261079679525920897480018635477259193970818821404399043088909209515799497012846337410145548523963868307925392354850001992495799755756478718635911874942784809635919867971160330357278199081651486954700804809530254931772173780882297833150676302026214982409611278326181890971143490581047134159384997606504316897054229028407618636484543105368283961444773263269863386458754296581897169778728604523648364957243227456179643723400598971720705108847283011639345494207639882945750206007124890280710018660135312354340621904292725099621316723825367967184109973963198788318591347697028997498705213780511932741392444929926040188089003657846124057389416541624198202965214255292488211520641296622030242630910746731823079770298000454979959839356537375967588711217404439682197457202065946005759954852300550785729201463719585708035079349202061104759201992255808042326542618240006993765176924043432818507380803616397685630603974477867640269550228559730710927193306612911702138743936148952785889934940532158346711419771991385614970364554676033739664186596583250736159821299647066561220533066522519700083943663936355703858717876436605344599554103599538381931301132864718593741493872371873068391001700490694280974511556394803406938764571074125548005923373029406394942554321081310755684201698882770451411071897480410990617612575891220047987680835918143780109710989593303358667525909089655430686924519333477365407421818102758082649844757872373977020969648866634587308223275873926074844292701911747431525872072723761275098589012270369552146740026668419644654063042569825155021329477396710079559981819982756933349826789422152943852239566107047210817332418085665545659257327175924040040806079981223504215336978038250425107586108104741228506089493741818690005803088894386252313042595335091045686170996088867832797703209177469469046572789884547257983653715485236415005443938911892463549338013043297571381344810335742442190862179985444771200663634871274496324541644743185712320148078176590511431579434427073536630790492330405958379403862572319121156698660273622943447458150785639712924271391792861238013079139147772129113105544759822314929028636745722357306441826267233190549251749484614103644021518603676578478198837806637051649967329541157201003022543558083394766675006115509922999444129006335389036831569977288664733153774879708135437549544353303616558399652644936226137353778328443173772699965349328263929790827510007967815869292947161284906822386273432699402593501628785502338545338665732567594026922868475794434419741057111973695929284333506248487619902965540475409783075389836105119598838904978368034427138905613908331598070247750642872312983566620275141778886574610539023427823058181868274338512159036024600655231449375875073517455604028002130664336105965221454862144798803613855931441805838511980063710321599973156174836712850712483779374011585111581251346727832217614355047662492162074707752912175101992632437199258757107641603392897686804933798534984833989590011700597099940908019977412239697708088548516553399619839577732484817859093522400505895818823034734369533451791653106728471711268485661754011559320428596357114195273659935601716522676301803086010784318865741978648669633751291323757964498131764435929378553655492172663174694624317920902961032742101222822063809725567732719905841554218888420460739258293997751409245977430027226045186148489360140731958636137605077356014660156523931912756224400338424629695725376446047541236015956543798872418164629394951884236594459176103850408036214584318054102192004254708797304494277723867022167110470809331648239220156527105053404739915606804914140739277047671219508244330023096225767300043925213965485576124212168130614374990444105942353970712791803199514349124035966646893761173694225427386822173148714413674331371581733941552228225540772704843607763677705896838447628719002755398403777553178737271207441712718164682601944418046318649638444893671820987084737798334860593365964604979258263928396178333310927171318581327263008501990256949994133063468872153621506611529460009004903958001035589032241825211665981582638510096452986639064620976195394454550579705895183644997806093597975647745877701744259997151854962298208302076466015641697389444747199138129907231196741149930161494614186534614717675598900861430597121963139386756825814704518635902271352837233400637935719023971228522264587215986807823788058528232928175798795891084434953834135446778806755582893794033770500268859602032061296659013544842342752261614002546908174723407756719687335079502950180350440814882946578069211241759750314580066415467779383143927357197631256769802688653985601745239422755809288325631364527941778447934215435450494586066886017781134610950898022565354173252957931989817553132583423234789185586453629540450147783890667809227122617971128426609075334738118667877974170928389114887125799950181133315722188449356463646067932487862024388012471705363145499354582938684256652387660884031845790029681572137001269561279638014117645048846026412241845530646313711030605723507530448406554655107569003095865782244069091390408557634240700441804113546007625335453489269973186347329037754876715708789238531737060780210496815372045073302615028187143108967015424882017649038931281817616074938270884708186878756571952430277977806537706984038376362178164014750844948702195480796393597333326644682017872593247425840112497985044210153573154522047780419954355339227420862519794241910754012050549276011914474296925934334629350048232822686813659572773610406751239325153146584189650656893491413203277594386666005008750461477353324629694164375583386133374338867218032316678318181771376788879396631499737868483789028830922939542300102204023060738825345832589252152411792096471324933211566667008651400554858997066268267820355544405117217384302955673429403914779565190468312972231056024413208529771082302389475668117276181927472658963021044516514151935822178126920402191376570611258888450847073689116629864189980722741358758293754003538815351957670771263598494173903295269370798931687410049543615731814609510300663626168033127022193107250188583993042354408060000923788782028995016138616675930801912615321196565548104434918118550331834089319081812454518209619286439492745981962306167447557224674626656814430687740531918832562494039228437860179138742167032824573294638448573851995569072111491032833983633998541471554032744074377627994562049794320698356210660216790515925483923327208370307237862741985797715154082091022545943827287360099677415956689527641082560264629502861219457020989257667990720756412382540761574195283500648905947371101565766209889966905864083036645338012033794281830595696195546557058685226409324551631641513109203178561307268183957962139273058033440988442946706721742083627405023117603292384045201686487084865981277713225699260316343196482182628091986490954386322586419771001639622840041734235763393157156201985581848539053075742680455446736049942254809913146755085413092102633316322496990093786032541064196270756888417495388625450970944481843630412475624991191221863095057318841733269716649466532792841452521116702798907190338162118140688998291023974126256239201423572473062072767325076564054001253010931468237172343764979417724803102063991260331138203624051729814429198955875060172287823758649519550170429605239595353234823479126949112329913680777220116437027146406893020273199385709269227534100804170155556624333167269092414832345049334244393106010094341001160769104568921160288285888279324129163281226151682573148378363177614542331779922035735345040215885671912007474120383308956764460586452417145359949279202168452769147982353384706381421576507361277800046750566123061968730156901869424829613452379536061193680114967046471036661047733743497781324358828750043227908899342795703857521197000335491021928089001276875083028630903367650286023092178307430096708483428955681777888870202183568868061547385785323624992599323803053589183132229944220128553985879409467297064341417961948339024369207600831647412056349085897688693216736120681211671958609706296364924133102238630931193834640452044010604235830254794916215572615186050463215284294105640751218076054558559047438197932753008808749700195685897870763994375480526511387910199430174696068844580785939403833733549119850289733878890619881758083022788939618490919863336881905725328369291302832502590696296084174962877024851705577314811702708644944564905442899783112311304904183913133988403294379852338563993460970438519057936362498105095733161460841317868188099087515999777189686365619199449164489808099534894144330696986541481323228102393141602432475576751119837694950539153029082659245356382460915958019080160306477041209216901481666345234634150881797097815725576232962997722964158299963070686245561343327869875840354779986459436787129561522444016028328980454656120065747734457969049438879684428067672865011527163296037202339565886640538097207339330366779975989571911975641714899949385003247921687772167531604096497415610717670933894566593057374081345225978951687079899137338296664245803987834849369159112138515697198160090437249256033777033173719343108617383745036371254996601968043040196605927339192261622092784312873114341895362902856241068463116865314954851833212963876996025163797233310478920391923574553562435653154978503369999971987084610263233558516772912611293266028771643897383319734343684853484188322738186065549899159510960225504252222227252012782968848826376857650128760474038201125391271219019200461076466594715195034805289926922054220173861550997090171810577021804811903610182800858491122273852238802563111321092181702751655350587813869098890540476365478516210723619005448735875366913760252764074005456847762143878712674371926213407069514807081826236807731383925978649224745304861317287569512206221544543389163461452494100020321041738614463769636837583612826884684711587542218068794654125704004829558918456994048925501078361683329565511211626041263685427280725939787669653785466647537415017574507114966048626902939305193270424888036153792378091734992014835201640884331827509925655802350466979095379646589180064453171145968990627677262502454995488413841198659274822639759381747694851455308778181486268608441287348761715776965972861086349089957377915373390497271791295194997436987406538959070495065919026596414538830799891951642156095211348090105095824080677420330728966801962976287368330031379789861166824079400017265109773563210611679696860342653062150636658175386842956201710726641458325915491399996650909676963515146031612466132407805387525330142466895098065542974560807759117119621101238653406139103192190442899812148001376113742977638174590659063898493928258708534594995295665987719102595667319434984529878377765517192911986854885361396481249230051071211929423455106443884187773727989340256660031281679309402224175111513820734032088555415807303046430772879546707163267777656552378832682543680417559970427616974983996765613148704070579526277981319613112865969259726836561191191228190453497388649203832770204562867197306691341144342554512130490995633012815475033605651498704621227950123898405832404159375921310594434178775637103712593899713341306265562804980209793131787244046978603636005290212946581936263048655345125010937090063304067276838831698048116176555131580323202241112492966138114942720849706530995296448079914182034683169244178814941188230246786576212896588839722082252819917445398085111094761876660167516169112454243613112663565264834425382938711018111896011248093761121305787441130728286397216671960771242592499184611980631234957572096483309659981289013466139187809519148766216333766531865724332374386827070013202809261217052510351431040908181141413324747544624901303867534998145749923790080441657671956223858376861945259535442704830055256454172607357656547206841902839792268815544687511814214276224627789418178402245117330969568075969853070333052317660293653781952016831265079016734220953536591402586656514184067272151173034896519244231589885797764350657698776859161087105187875998013176897582311387442317620498016536423702438022795296757361898602023292260636219931377552381077258508823254651619277510853617469559801804741781659348433980896966880765090036582522139492130440462123731269328826203185467106722457496603794421183472166797491885296902531277652654635614719621584580895170772679878567990452622238930609214314117352661670066218053098258194796607420967554208748942744109713655277808139206281727466909700624903280658011430201757280007559958162296817544360039052904285576194121020811370637967909279656939890053455364561819239562633109820843180134510449500822695407119408896826980259231080036343228244577017146347426507328997781241582088806062618842720031765790859006850343761829221023907459260052032745601838288787784853916137926105546969259514643992469207854300840392152031448545327932859579104475664709191893333002656059605442800398430774018759876448095721015057207412488140689551655593833888241186005087596382109113535681598986931318240246426749058392887340572040311771389428654066100195033731792311270689837895349515041277126701581307182821195983164953087898325761406054008890264141895514206531415958173236162889731549428020244991165559313582261271676126839233247586091774594435773313699548294371296480298150628036365148919313035949779618720376059321075793633623603729269851087229560473378849576886839414046845152861786124496670000745725378389836954696635970549423584083934443857296670956335053333129626557998120630584644104515748652724334315678395294596355703757037704920302763194272648380477156161529677480136675889369677299066654027849098232571571564805195554408728764997798092132824993544033057770903687854576763169743621462110989153175638465066809398976970376687293553169055261228669871315380503914618177543061208009905768339984050718928570690191375048992939745792141423479969772605443520844079285472865113958905044402612597755712175648987381118184206613457808691004193028840389439031647627950715678347148174027952343494766495674711644850291393806877752846462101020394941874871174536624433880255708647095625899529202563320319611067459763464638289873352332124045451675122603174334740660425160753700170853969884220857726627596619915256532497748762525661371910511207347602098425387470726479908202940916577904242162037231715116447356871301346203648988577034727376874555288250060670825996379538315988175029829920496416403538542520259235436193900963411933509223141056859581275453504061299365088229816003552739662047660277898000657513763324142490206596576460871929130179533191017427917665519768077737128252037024754173339877631820952672599874136850090425306381220094060497752954436526397319895510585882676036225922731501893645707055242359118846160968385168766620223422183700622880467508739794955027756909595349090763793757903230104646509417255911397655254275441602534102395489120861019971700778317716085324121803411732814858458880514342803484353986161799583753526001210599061156841667673936233541322226427954236865371649699222905822464102455722387429612204178875076638179817642465392216669700726826762372337154858535389627122057685233803868161557830686384525106027501503978627316789505127926538402356986809382317433267399692777722407727562853136016971294869542679642350674469243186602911255649968214165046829587335047500079585181672495904602433788413333639954211572635230390411525118469963947977333567755881492401429382518365719152897816494642479711986667121889491460523626990246835663166323295905372111964980351287894785092323070764890937993428565578750213462921442770361450304465138165475638648570225325652465984403263385403001796844104634810157505940980052873557619503307377795104051512613592602147693441717828386192909536662768082918236756358692805240864816339368179621076051214129394545317770043530492291624797255461676844883033638855643897221780569363323962918654638408446216994311541200753352012664725641053570262424069381893151126791574899761857005440666778752227150094728542131423363693432159792970684779216434600380232318887287069233345679939352417430828662003468938541974652510939960945860928300065608299357298445553057672621638240644438247205773660853977137824240651754435511959178408107793799726479797848576012397068383305558278707855831184419047947955183445098445327082893691396810008529014547895953001150656150822619543920048771793736097915176771909720543174291246180471871552312814102363309540817981648002374612942323757139021892173695020061259744508546461670455463962612814736421979072136234032462968495684906479957774324072868930356338811113526320889888631862636613863150672229165064626752305286331325734618894412652145417325469550343824462612815741508901056531998783489383692852530140226457068294181950936018855229170185068631175682144314474684871650631660988738098786304444500660051121053949198543055378123371412158530465917566089575535768960033091598423609566913814009431522194494184606987899877155054304009430762144064681227807115658518304213636593767795579302190979099000393573801995668421497172280154193715642708356387456943699152700615080553510276928245764504352588624837644169419138579084310074370156558150952921501887624271142872592624352913027135339542533920303828878483350606785805577511140711110122176322270722454371170240133395322316920721532784930667373103819035618575483867069840481100323928994161927280910776402381030256968958312650924223834523936510314809202774927437760047329956545645883670537045711736806762058177424206212152303139147695446040228662045175422519997182661114974914743719314019006282645588968826547141832962252704961102374336669830238489781980312592027180960185262003301968577621339431776443848290180068936455006680609559727845754858044436370144377083951679446360633599210955965543101715915180806296074409966178915465643010866256697286178162260346821022591404522019349476828110642451395107055200791782631261319366900487611416219554396429136282973383541944878701272325315491859045669022437565833796928369508949227511775192052315533212186442969803115336754193888578779392263599549124511538998198260965053972337309861234349604543874218228782271563312889587471851110922391150165683137961937176504210483299656904687225159593339488288556060072935197867769745168169537515028428562872499943274973087321385917787811776620742758400670613702362173381807442118098784673213798001524229454675281417574309925934670209756662238738790013714605718105455418919731333310186754025867892528987785850376486513941914998970877832148045909384918661096725808817755047093020531350755840216701915618395184002798334696419031233893261969407744799932802536443905144322047637576959598034594032593302745232610303397851139698773188566856196122196585556827676948358603791205185853487603424482660452218062588164421290283135848823375186087181132667190034694565804968018652838316570377046251891885958817754101637510751515225746975799400679675365135587143139401568884169361581996277857551432155026996541138653809109174948011763812761297133889951136744225643906483472824236733871934304087610387857912460759360167157985987518468888756795927501302482079704148460070868672388789923266767014143144017362068547257249243250060334538786389155564895832874885266904883310211677774023449887450695698752388870233091501885855373085556784709011109993831856050825733681161519255866256187981103551721883933173915766772902309223321220641981025892442951019240336625850778074183870170770613172140498727072386247488049996694495469994039739524305813504956840267886988182615688137307691413570400685261403467173455521931564197341977108082379069438646107537352024459177851316620848064913621573453456866722570492315708643581482924458880484212893799333551693119088859516325615586703473888660644996116056232822496252116152257662173283170532814618368032969888369033451657875113394732369915317648061077994715297350550803903302922835855715622974775994920227130069036914781631609352873935584609440748457853081440421079524355456916832116521068739429292967926387674719707801856844407368196898686912292059060356760859552304210828697094339596507356262252181696871052436878424250441003501219355182781219684858757084537673658424195788484432759899175676946678076967800839048067623688801994240885511946942114813925617855647223223355184001951870522698231705715244704724040023756324389826318678479060648554190830409053653364484914835509445993364535691182173987768785602463343790516698474794056051988471196492858222368939806729419364892341393088410539535421633879344533606445388576378645772282283918343280867455074480303998500006296309909472852213136858281303500374593863424484668720563776743150018943456775452021907127190114637519922130547030430337501566105013146111167030912599477013835786054180403442214190721567558453095014199035795907451150746851217141170078775260765138888646137133582416657034379831482892372241039616506443938921107202076835960057237950387972205639743915273488597027913646064418680757871548050350581778996017870439313248147528953100477820411892033836900856795862191173639584895280154074931352569265708903308419183190432420618330910921593767678329471907797088257082863522971739428843956302144324203867577195588990604127763227682098863158096540657752787855201469106241178166456061194304248043832468516678015074829759224172258696665299896590095553938576440328881222286208537479026702389500033452772225416508675068310002234443152667315222742930736049065473209232923011792411644237779812928000747323824654583501324083094703357920524936572398575592381064878082907495691433737511433179791725111565637091422143287216462621159044643285376168631177076518874309329940508371177154388554303780191717573045319587890310306526184101042487281372318467741086338207472062144003682267319409680543881037627547246137323021482463727146448329703534722277903977158133423494089271423603311867397070552445984633168123100571681727539349388255395214392009231480214825326350770874772449989951658652019311873219653660121666246105522491274251476237473968029134453558002917308501679664715457541605442062834607940225964331483752585366964132878317158755107129308221284606882139564457299201075490488499041328280894013102331856912499413050206955558794323971490333421360419133730776465369246783920798143507517721633203041669365240428777373816357368547678492819187210695634991570220788421341144882156611848370863696778833787555066759340449373429500533001028218728341029092626328253735407322918670243055136028501057295697562344405911540328994475329033194039223037408426868464705286131734429504958459093160860234230852444045726944914219199014488287930169780257710563101507510908633299003947825827481538674328486829655383197179376666877855777783220326872396834825130105212082749370523048475444060823347681469178612725908999356550283646006570357364605886977825858246312849045756301609152861821335455080164278339423652038930364458273586266268663861122176113415069962286254304210541505519669243272463491601755702545891985646962299601423464038705533096749353561344188155813701615700116665363588267970759588787044223433960012071603159635814692538020093297504322589675329797920195326706265214038827984538679129202807444912741949560698946273574900428373645003374146871921180964975937371793667873181830095186510358048783924246552301470412993916162630200502339391011895869604028432701389503156201696198911989990699482767115229992235715060893472218743020408763017849215474731028841460439630388944521518719927224409930741473685175991236321667562548586411523673162761786085991116983121390934720204244054185468913793554472855848030335455730067155256525819929551061744269227862028533522895546033271613960445318770390014892598236141319662876827542226106023877371849818351620745720816143941535741586455114232306627702746169728977470862175598723997593838273416418590181971816844311324914625007202486449313947004812918243940610085670800951029812885166333857441342616412905582740185775975325889917510287184088762891529038008730549169879657376960049895860292251363228023731614989407879516696571175755747840661397505757921866468963927504949796251227717079848735650603084665781110267690240585404732958665890843097815825767222839842430603004649031127328896488472175959246504361307997853280829818664905921358840978513043531049354028028275739151923423382988166937716333405365866226496101000479034696810352591536770270190507932581959494481526577427076027470908287665887218002794349363621693701885012354829430208248702740764095391326551588076849847640353882427578688201337451600594719191219630851784466150534575460576334296397630415800491854964131339564105797862573177054367285029709948570508840311105613735006052130943562577846252748935395774393754323864054486969005617747707162715166498914211422724622675364077352947757070504528381553928110668317166616586860931443993292428843267414979590545562989458139221754029221069825497027521260835873925847623382858488727878788416844048657498952183667853405813799613887798865338675728732641192503644968179900567439181486462028230658635025493639292773224048155268099154489766763294407203775062926280179141122276294993602810406932923952502300261245601046951969657814082977307291213953751819593936121054520999174993026847238037595984634858280951029085492789016534925254115350247243109124078661081245143250965681153795682209208616568928622736268366964767186507581350640858619680084177980521148206350139665332821009399131218447777842083528365414777100708604086349087920066574998274550775944629959659377385900023466400431860260631522937673308690491664530462684936114210306130778459225258347152443089509300353298971778864769362245871543534543995470221724591427854292890195658975112685415968833668461059064834040559571040460823493236845785562906142219390134692931881096393446672103760396939694985426974430827735167329709148272548269739551333709086186074136257216027601210840816870634115611803036053199859301160399340639774384688150195544904857732658374044433259348919107261604209951713097061976059455714674055965303338266248196662184401929142927090238879152510738753983178638177632827368709641093018995142600336738036804921283704127203070042081729756549211469410925152534582268821643227024663828150960078022333554423952561979570878991436405215246382826880101818978074084707091609694899671316312867119906339773459709897932854839056153684621582483232623235893798991828012565013884701755761590730835736851729477832525125002770810936314974647379774420108297735356121442664104258811006117680575673779580106797578965872575949947529285477491631407945191854957656383023081943645394709585344643528621775358933131278854830598330520026343072789898157621600866369690246968414754723329550641251318648962488684801855428726606932397833056506636814143475157539106468043858294243228781345061330666991888721457649109658392014737907845730773485239741478817631991074001469786452369292623006409517912260614141682680557085453170145642807191757514513391206139942037262185744697630017263729227596497581052242912474793803305267858230088003680911027587970591410499097336603817287110967911462422325082893202224015536169853164226066444434387208009968697490088829175547250388242824985749325319860230412992866357668333208985117871779038090135670888485282916618560189797128189655427400233214958539710636246340460706711648188791918070926907302614371098893206318171923629297163211350787137357008154142816526828512546799341001999680800692949117642080111310620724332078802986937232169829525239621907337471758887525775699618969830998681906072360984197160131371301155105272912547584084661456221807595771760048479646137225874131066735060755363843345791780468656014022758582514330007980114348767606124228514294787109891651600564549373571947526276016831645851328832108865359145022717787038256734379793102592453045229868206447773677699708047562031873557059072376943159534497249531283257797053022987644542351307445106934021507313777091154789523939263874529476527124339681137413968778799588903152527545489610361637062101992007885180297733304341834725448498469340868189564994623831253084981570099250284141241343541678653697834895999165122506700596255761480020634305293642309590203732209113451590301844522710901798191420981897350049405490915469750508591411240233522289500019745652062412811744487338307188198967560787876263793092080451378940244756930442340752301464081956318695338365257275636660760095159195193217685354076972936739540988944182453878080715577824443053260140074128909752163348935260853963790859666643499518445121847414054563939622184384223933493909304473351660104069427623974136973170180363320198280409295378301354277156680287754377527307114913398911694346288406603260571291197710496391806742673807023241659613643148223513603593989729738449285879661820792543560225186328370130255962316531874114742153955444653611797065235776599100564142416361459321575942238401717231631033866857098103705182683367947256046484450951584450896660055301449076299260361879629112689016495322163468337548165310895963056872843829756843504149803345008826558931319522151413048230011891061562826579554123416459301820300515772299393962182388204230160595699512042674432726281456385054334651965732531752959065318610659436443556050682821438307477323134647983839427603766744788108223590668550990756807568289248442580984803683309868545868542682321744356541197234178596771218566368505247112404958950865961913377692162860891047756397038258494221741238194858498448448982931086644019154889963654780883177427922752830381343672127629992029792499099520525515126318235131167218214220480672282929142924344504376917064345909566780911290485017521257223265253538525327852253024483541212057825850640929526544592482672506877737782947299790206512625597268064846463737307771855905892045344384141497338876126579396381374794652831515721595947845774477592075298105445704935254836619777066814128945411190137542372565550935077249808794407183659035641290976592207974217292895036968393085986452954664284611842503980576165482271487925283668279130847057031904802613226262224313305594443875010548889954184618092252099334623991367776598840887540966325976147978447642917971244803194169772499301855915585804779121580121613011145736488604323784521771663136065058299243250227815083962950675488539011426953636265185940821263055101851533609556387471475161466931792466436778050545830101156523351332644641764736423928012668859620102978368437913383782236631472104718945628258409191967611699799276224043059064695961698995994255031898738142024382735375302630818164062209804751088395512311646648160196503483993855820791587177720290435267683415536818126821360524913734893357953577476078199210578385312042283253266416993322414603398764352800905934084414829476034317124043966651896742641141056163075823391827725434873930999088499380976238033810074294761830377549303723446228878033083302242248923787143771476392162650421742697407726664013719690625098749294328104067120364139192378733593030566409047141591177814341458101723833100677246418153205935814250752779387872624966442351758581571505220376745433888081128110081703990818258468036985470181970939132012381037355579452770822596811059328829790873525180735703557873424435715760920602185402758874648125231166967405069117428437485011379576216619258021597020707100256205748675509071344953067995056168455361198268898898076087066773280952946239186133680220855279348124365796225734543828569919335860831721973542464608824568779919399291015400955779430330196409150535892994061997621695221517077148161238580027113851508736922178439480934050334530801264642458285115540089488105110753683836971619095231113316060348610504767733129260418845990036351851130737068395584467934962335378402281408803301062182851606726791915361280642565313165666460397471897742641161214861175150955677752804368627996984138135900318409354239282739963910157715899323634372993911857177558006331023341237470391605963025889803166866942990546782234917493211224426032355110920971162013332736574448003725451162488492093471995711910968536424099256994780532301069760733333070747655458192752305764439658460608595481114984047039284283652976839499240010995377237249114648021384022933687064838999717990039026933165719596459914405515700936368212038126013611493385745523023639715109959888216919534576701186968203553343742570129042326650456651734182351379737586664165677386344257166089477923690274158963915473953566531587648904192089236623816550865950580210514169529238457342064889486898578512425343057063613845274964096870389444542865581886623445641300745527379976809085206957603574304335111272369737115992259390895154964169178177227145104066243202495955786195170449344919059496237677769451319577478887610398169909870988784006627496085637799032123995058477230059293896128648806918035137224890199487833756344026674248811586775640593958620722900830978706014143592911310866654788653016115631140991011884140994558516721885961156198366489894952447384829427189442374597681182078515571666170884436023072428890390554049415488647647520689420692352005010126989698478578899690409900629984166630386237351545934615139285650787132636005527740289538672359300453993767876054905106341175208888384840684341120034639664255992635169257503342938099467259190480563989874512708239015979294577341345707130410959910717449035787109880253280435260164513579961954512490502076106659371086007109657990471728097905284970915223788400907589754300848492934769188206142911002066731493973265745870734669801288286603964670492082989990223991856063073601640614694490887111473303381072932443739505006642088941824377682752152188011008226667149458055894848000320728814082260803671890048149197629250060105886904232621490475592834908224915721305633405739992528792413440829077286239933682827626575078498779966456117617543337595037348170079935931108458335042475988266574983042539803848707514534954524921665280913194834424311735990849298009415920337394326232658012597554117657623388332587213575573477908808419862984856444211591351936026525155446454475284418950514701513577989570111225125203587220506312973465727422256659038716987667964337959043699238464505006781141749431132764492381490580089174758468478453895785471534195032218733653137396582070697318531792330426845427498082801856793239192248988661697179344583019708238400870722014432860099076070581318747138437045865161523995780379509096259363838405565960781745471412940069280762606254191637481378233096602387376615613932123980327139203527397808451359874570088510047896345213245106828480662830356146118797990677389582699176751147179695354332619497759437964607081896874348858156460217899528651118200766816048421240024231426565150560794831331198613184057961486634913679823387771641188688883332723531368418317835889350038549019554541316362584032527317766192634723874341760646328908160340932527267773356565105564326676777207557101756104673358555987752728951338389939895035029167937440831760733740588888565806964626402561251937767159765766609487552278905344138187980912141798061423866362290052454924658158941022536833033735902869662579887564857102252234261404098963292106883454383862933686907253566325725223109981283305269294677266219994972788808456843215833928254520227699772323022823821661216531416862152272683878391092359197921798385937129835235045954422626345313996136388409031588670259166776168637606863187407080347467920773333598162731042550316782504017567114184298277050554906979108391692616638188947571161907452081348091121581503213929469881592591896012827409818580187590378288828233584966916866004022174949432862081176676526169401245231167207047333075132607863941359786806382101351686107195662966284889439562702431731192971776734515070160270021897976091117724840734295577405097018967331608466355117227397213064025146699355260552605257928022966547736158058135928665144715214139029060680137543960754688028506279977793433691778906642075746587303285449032850784770206586601476803321921878191394790817690959375283753136830495604834676332405463360242139807401543581574504831956323057758989343890355191937259731167404950490914473780217378733995963067162036466208874936072851979353231727247381883844616245151042053839550714262791705372365847995230097070841182073903558100014170017824217843323871128081252912152336688153659024041829058289481359930099039467038223244888701633817123177340889252882450689667547794578591133704068283875915468099306850168382726879577897955080464647154636406660959879467770769907574428673994511432752918511377469618244896590635660325514376844128385425947717145003930649058384319937902781144656497712678287877325085303682980664507682994932931444624621946205428826919474124552548004615931683957138023226326577007845350626668345349717962887233218257107961047262735726690024806036190885222981643459404688468357681923147954684640837090030677493060587977906990833426976211433013546988959719410456436490679419967489861090390076027285844130024215673696955925562329671432214455440949314030221631319763291288341766902347689767056888351911185273518361939926630626123111366357984533851038932001875376380955129618427401873406519187314175481495336096650916355427703560758572436111296378837304938742844276792371539669214982713999377526568888404518133255314732713617030945676881601659986010438023615049646857497759532430539794607238908312230640442501608289970092477803773135640828524666442677433185946484213744179905551440276426892177346242465168969893458961681668496097797580259059084796441955822252266645604659602781206377183551531446897132748670280281861933126972115794206654851043324680002680179384795619816514662732601737022428191986745234186375752917248300009429099878908748644392723388220347710022775666116283197426678639283624634259944841174958529976363860655915861201952233753855818891611157949734302735354907603054673950252409274923600398475702335496603782008823074678472295881183849629572912470956747658545046300798578458113353412235796683709078350379316384490210696736656623736534854319391590978648652098298378685474620663233092859875037109431265260492451220835459036435510702632452529484787372578568113367416450739165845616424274761612670274280647506423811252625093119039472915829456382239953894897130352904674453011459636901424313946422956178046338360910653431075199892664038475227578409825342386171526894501130586056094339355191239555143211704614693504033756995782274542852780200596223703731852180434386638506625026155223621523960210164812656228845453835845976414120819937332112511486540369153714811306672642143576006141086057542346505950719348663246343062669015330949302892539978635865140616741937544826246672135749757747726690155884373520216852683457055785087573641536891932561751619677714714750391714880909032034522661395978818638159135664356228472719468877823906316315448884910741090165267206023881438826847237319660482172750362694997412995368066015663731801437469518805220334849344121253962949519030331897448010828667474162911523352486780400003026998937950880383689811508691319597221352889998912614767058276269752836912952416085933001977268153452177326881867569069651319204257520610584785218393017706115153929028182409797554034189415781406718677049511789500908520399951654106576188549349602841183828340674531290956556602957047844096101892953931976987851050092939046170101135578060043350319692014540917886140766672480843547842993979584666697627760945042790179288667517669945423208526830314868170101192499111833216469318244514075678364510906339337787478753490086329631133373915522744356678659552141053386107794687005621592658156888939047791181172335562388844905098084113630047411045086627956812226187345128983569858037039370809095981444179487466772977097813294624728392862920201718332870537391319219713904833033782615994982009876676186723423681172834780792386515370517591140916831958083655028985267601183096970684734040339747714846892707144153340898382800727451504602859148487778207518236994891422384332481261656020998335440247212588857625608120052693512225601455683237209780245737517257495643629038091480792003075663940631570015911651015149830207239202112330048934901420959142476599055648539586392861680713341387174969615675464595067919769074714720435743295210475008169697646891060304283477011291662605067731716157475310446559511087925858391903491123429915900354269435657762600461073245564461159097878259819911290113936388933603189615986088822292313110591308011990624074458537600928523123928693235342235438053481386067554787200523117035604186363033998951941966619800250202839622963268344257728898142924666803227946194200388864658523457125292849017162850370461493524289820234244005781451670520323250458684455937754855912944395934715929858723528791230292962403087771774641452696725435110455883358473591053062278922377437391974816449048883160937810585055504874412176739870772240875747603516219707930045205939888108403009974663699640861313157594379626038518602392591904674632935026218613122172907498185660622084225181100018738042326596744147468717321022828314206779668076892195536042949048266388088640913492665500661346305946989428404206803870731086504286189787430343533810586093589857190459520513536534300411116562993631006030550719501329903877149461930943404161896065953588131510966325212042663856968026487279567000871836523397967030471211454626479956331692273708179656227274759249953259875756643824202108412855391175984323718709431658971927809413522742304087588784516310259062900966477796840027406939648139755341112790210134185543847754602915489087462317584487686486747189348372478263555723318054219574922845148812658144036857100165603263269908727769866635304172758814547570129941180398713887298487088881593793927038602153244762162170792591523233422473335624091948585289169372132878775805245947682139006640025801920208361494970567930223667539653205006089605076930656952980377170055935765267432922349011892365425901077857524572648325608072061067661846184709941020413118296983187955873476981521750285204187533500542094677691397633607696336605145522193344549736918585163501376989471419833905706640195081975833570231460489877230857556860844315469228830363308535856260283954117042190239687608120889394912542333298781530040635313142967859014503970078142414226667166378127034762944468139105803168951546517143840118861394727065109244599572293431072325789699163530646916398536718889849499978573254598230158687186644105125642610504600661220328936610023185365273182510389175050137287334921450979830321712538963996183184648453353184639581651857502309805762995226591914427521720674234544276086626721212789207794095468188467219441328744378020664372314348957626897779256971530297576901207533556555864443469083677320014849079467558666424259203081024351660133937072934294084600790030271142732392115148265616901602761055976349496525302023645625963124172892961428159249765828040779464011952437550754706428616969516571574796482670217707833425284200581447046493116310248014855269062955435326488713179717309025258600035730610933554177843906878759859912014422383337782340181962430009765961705873346017248066283632806490388519381964595931083014270162885245172262305801158544390168186617815956080125821823019420271118976061852129075987773809922615269141668430312906083475688425023915362802432607272488928824335764195228914866793500358400391953110013573280008977267293004072193235812510633477018434763028955166780686636444216965051176655064501340228101717751629732685355282372120681155498799516376099379190947214966221206353837623432626350756399452343252343573788869198393239575442495513186569313287762755326892330472860584368990541480963177721634492762623771052218783447298187981258979468810538748284291624998771165050112316406002786122810735247489684861793850051124125731414757048870118925634476880887824823911925139244785153930249527361094750947249484419817733081077685819601806914253494971894758196103526861730682749961135361318399112093034398098282105561871532930781684795101014993479595640367992242878994744139903479847971595691079561724057190405087372028400329508762442766317085362617644078413902457002296394754770425952358179383509866338269098345708296080955576158738309164354076667652233394689057362208662969421615459709907287557161847932099474227163463973999696801930530927314385525389993850264112286844068775997031008900837494567230096170461845965182813416917197068348668532499664540093646344052464051940745885472459070998871636835853659727423066757606939696441005480257484800138668911794774673977508055731909357336689350737802182414587135783662501445316126344973785954009578430531726564710549192049565328193928727492793699592095452863775522562580075241355440257542994475360815935505600547175579888058048934665129853355283213243664116745712647222331877606715834374662838089930661780430717412631333358820409654476275352397514432964021133558947451771775431539219383555805662814723176225453998782014683242804255889480803065767998205889399050331018203248885892337904700428782799140056229747081680390322313239783837054495646059982001106274977624270185193257253002840870099040339677301655184040196946865477821075475565406660190964411214535893352183464062154918185735915070564146481129923469685007040465912671490743345210666969564642313951035598624143337583974609708136249132027026440759049439235659584791092697944215329638717024638459658055245902175257873589406072995807501195266608499323150978514914336517990072154400866942962361547071379258759417517483920841361661566727808881649828051506584263179266304867314527977803194917344556920774849800265759779545622822919845318068695683386558289848038561644382756809622297035742036029813416421352420876859424030647280452171298055577004137886928294254340290495480715499299980958278471713510662426681279097531174499159570009477204139502741340705770654843270596439019267391982312678019795153158215046181544193558180161493556970787765291037973227709228675899905919613875596722189127466343465535885790552712316665892114646196847213631057750005189016610387515249388104370560569494478507989295274278163813808111837270738520283215027660176506281374544947795259403561534269995674727510654345278380520952494015096310712825793631123370741834328590373209287292729505161871917480129663739976062902733463601979292278767156725307482627990087430685790460804180461528044527581585764067677704771629334722101703171818210457920195044127422226186371865248057060268365147639088399995696185011378107952734844791369734894431317689298654017375534306053880583583034087720891996814528577510245363059880988956679994199512751797313385187389763838540159488157860490173368338398573433316259781086833107664709124772505967700853546276526105005424563441475874610291700208819281256667238784258977078155755082836924546655147771002888793535857565406421620755775117745686067666251720378386288953324533645219765225854365212089599280343242035342658844645673303748362872993411239641217035841932834711354934796106544060700128336536899267360439236907811503547627490948391103864720924912225393190570955225649773838890188891854408718425652428293486554181341329594577507667103554560597718664150740072727712167399664283512392494316992680778552781056852635046692524795694728419223205567025362012245934898856528482667145848464712243940325512672631294653900747693569813061916457890643815052028070156957405732846642525195060548059531380146642794905213822481044823232291937661019887651015963012194886987927126394622766814815544525392664037770977694264682511850915794144099893570415248529000867205772490709695638610952901080274973752813629675753611833259827927055232160590473890491588398151851704677308785820318796040488213774371287946995843054106439640840707254322496967218314344200782571950210872854531612558563081255450634975242048742025366507268501799696115199486203126388727129261725510656749153939262589602903117903112814107702388087826225848457974296092635268150740879907574911164612629236797020740042454531669684240527316299526058721518160421819110798606010563594268281125801079846539675823465080699303865224822739385611991878221668819646125761145617769220292774324027955879911030640810381675665308492720104749570750440946255361187422829146978225467815525083264405965563784633147872693731620092773443162486812815371779056653384011385563126549730939129093183111249098216988027303706507107178416862822559289233831789631573294402157491376214444047946861144948532968266625131621376699578577867362637482061483343861071691686930430561283680000740511449753665061146266733750061803460455124545967839033503776783299811507804721838494104945570835601247139369670487270528144492234528165762803043674900552772639441674937129321001531061957106726609361982722133124530284149796794413585781978652170977490773505815869129190163164639412385353641713527056325488640148289273453609887800274643743109270639485677083619433052807471940333809847293427095216598899098187130475242911227466654404674219706434527478922679007953579828176873799217292725392227931239523813786911305541629416643882075850015225456310367398613083768297371810161698024560393031111687633817976974067398566183636647562205211993487205126457731588463492377835854670694173240485414765649276270323642080265535034496668683446687915868720532555380026105445721508665842301943992453981972925583946805625249059551558448939984290383043473782641997649193091123288126105950024035820296362213254747308087549198181282699515705137910152299066664542215848966533767197920506941069343491602532380571141235504522197183121535364368777211447625356268070359427847085580265891945624750062694174964960302366162670142148109481856013014276807901649677646452414052557940242475369344442825660772424015212725141300832941731612761531589038004319933644698919574040143668787307429322868293699077002611870297535244915721271346617169041514490583336802873853156226024932035457030818762983391768663335386918364907191716535098540544230305938326826135883875324485121106643440044595077142840687858826552421678801327123869140846063182572240332054834564018112949352232391343322916378931876359125416704517911314057261309616861146237949634897208897059083059420756596944638467067738130661637047845426599718786839992276825512318754398153470060927975037039405803655530638876767650377422462189804960655938369430963429749715044910225000293245864933869535407689587611215376850780725884906202657875442121542536527988681280055295605117243479861003805748740157124049318782057244211505522847666116756992646407889419013013937530092813650351782232945979203318518971329491487932073746907974927424436546791511045770312469603090377890264284793146284627041875998358379611841381764432754409208914250238753993325493158517563308630544975080626998631353735225862414293530764807004169508481236360257438693890355916131236136641382065916861792466086949224418651047761949198435641865550450643911460363605011725115787043855104053450766680830361109509751961176080325989281768305096620975303032775710421548537716582273198133724772652479233562983408266693158442230957844701627375373917088496189320764723576214516076905871197625236430693776218755797548811522596700089182148867646291237262360512863993362215555849982838216422708837769146783424415207003609292789247702210283905396888276690148363576023241191455980970837850823708987565122317545881888769280136916693213868348360964000454910370880631309365341475923085753229635188769179411128673535759862092269190653395355133557259238994283625719921201875751035348065167280220555606449242489414443402802340378514926876581932264759888651492210360832758379177415803850602863652645191454032374361687542290359981607439050951679907737239430454660850395109644399379697497964878819078170350498216215544346360094751596851813520789701175742192280168273082991390601914880321868792050273786902029863022685605690554516611098794846212268717391083819669883687848522806354745468468730933400261395191411826705295917236415437363484754443865148014130382982970629083257998542128927009300333632510217993851273521693330957237171965356641616293935851160094998564437382240414774449817955302032391817043321913243669066209605145856721339923647598255428652263228277988290597058141349597701970724529528155478409800518795891455177190969049096174501639457408444478146345376011957243069833537513606504553698114700167984597618562585630854377615877386310844433805629895688556721810970952068430842521396651585252733590985759805908615381980710564238875143338815482804629226632967592495561329284109338308576334288353228054611143560318395452292553003682140101172330854160026248842902858434962598854819404125478919987542220196871868757290685307843780774395295645539096701428216061427396285069909102499608505918407305232820308678653659566772570586836044520186813939647878801476138195504078286179371203179850489887387201888899502403152805119265720018611669244662861825356179816296790745434920610502168153252956485080931344024261128077042420560187597699168665079017299072707946527616094821838999964152278695232675448834583184103038493803088211696398060481088753102852746292023572176782796642197335575914912336146764081241848211816716442750156438219923619494530832515297296233408518096814962425896105872272370760382637198586499946983567995006606288083306663714095623459358874416006744882971627292343217049509726431018627263659655314731414652792032266927746431503384968131513506913692313020876947419651163300229895671733934187970324942763830735847151945349082013839661540998387648089102923911097975735793164393446166142621206334960108599764728318449378271284918555425527357792015665239621771813210994447306797521945859359423562819664100241607483301445912003752321972740151674347032306080921635025132429564182765564508736084575600052776394824094676701394849370289355956125994944547588059623782872607308639644091966085838669559056726063247489617913411517579090633894292644843573941560268536629087351396801483451117637733472770166831689348128739216597679891784593259845498727663294249081841641444801085828030472055660413325972333414169218820321560881715032510998310373595133573737274240591614831563763434389205394289144766067105044599574904761087686777713603918833145256287571824941617835426065009101525732326478772500650459924773356563890306754925025510622877316780437712371090209053001206440047399550900643388880107369759498230474075240346595976997284557959868988725097022369668641080656305242761167909866194058735469256224557253593722444696333314671250656308575879699882122985435957065589692950463251902053189051460978762777602482202868338262509150031242332771257927435948314070925873397536664265363696491352428958127459248826796329532739388782164406400436746463571112664453204824614220212715517416377410285531552179026293377039624502427999494610216520957752196012821954669774068338734170212815534414324828270665911046179470525537257157260568837570155263924435506441465706327902779440627329908755158305098941774187608816940249616243569840477098233300588575884725119162084382337036175974236318308745962788611956016634873030528413021628338676022032187423676699764623172977949449331830942722933462415302304659182988768077352975883345346376235743842135849414645812127862591053856793603494939286228164467887590362687036955752655785484535084247654757445014435526806807593965324451575547550892090456689283322656290391318899648020397236917183711394429324508313880066095411664111574553773237165103353281985043815152205781897356648903673300345613017200197414354465598768676192927458679000701273989379163535134200512476870304200621079742779793728080705252320850994753705861191121212129904746350543956447470221865669234723345700736064538205834492098688645768212744569971577495797719051415486445775985429097003777178071456558990920008363334352608499125052714996938963186797611153539891309921688715346341021090210827592588039160236631886781125749686499349408348297297460902082654025626954686913847154543218907388212636418369891546537400421650136308902341256754883061813831551338669808103406691309206625825870067415803099886980531405886867971985457314912322055442961007923513555636993904799111844095232372900993142069784210681865498125018234557210094272328163725032604147673654136625936720967419838414847005735007500356854696330002229382187393424016968462127472833504897970787573687732926830263619410247846229038696580987677919528425914156101764457189833222880769478331221576435614435998341489014133445676227914351514171448049891466363311411555476016992471413575421640344549234946887975758604360064329519233630066401810620648481359625170557628657194324410296061284654849070823714443669855057918560774483128670489081533428013218426723984472480669305820749484717735045309470327012001850819399667861294459092918629553030461019880459945903092925176872406976138333944391304187988559510580062787775229795365984335769308982612131302961987891615767396616595841144277716506741633218746010965443151800188207796900983950367329872956619356292741897841273219136239943711324407934334347650596806895749270670575303410617183480413407854662120401482643020263418336767801582422251758272165007880589588126325459900314445679403452353876319766021703644794621903044295038617249760393936318235400235615896976934298070372868878254790509108271433710656325929668549351711767879121044879704988605314668090052196889693057155608449789513013558796627762223782993992189458397924949601888782445666363943475561662194176211860360254811652251772737404114372399537133631255757824715232099381714136309981880429205157447429652772979726171213596587466184675392494648987342624153978479539772648453884485926038307130813267769679745849603766189125556438397967252004769235742461245112693730877521739788350300889158896393937240699813271006959350719996533322013912000907638881297547107021490660767355522744340401754798167220905038927872187072913241799356837578951766693457646931920270080031526320922649521180015608033385123685899192210366429390586718770647240244620607776012817402081264548577037851396729480073580406737127894768740168319732827267971650865577782557564274716608187496695289411206785567643597663903884651984588372433929858838325252866830489727509094870168060719614505444033150867642592681140971258667952158021111389157766904703179310537690762160712261277301601434576894312696122160311666172983000045363088803711190660146409703588057509671948176584975389403681397538248457532997923637038689714364956122685210384864569100973235836888702935149762451883456796314553990861441056435130464609431621203763654733880650884644309167774054170672927011576009762189846632580964046507401002618597913139948977338477390333736806512934371246843598925339124841787646668954088091721974653349118962469787911004363827080931567322632000945662256557268881433834901886351064367261827806659886194416929716335562283985610447885179656925209137941916838241345702846326117035861330185534268327621713977700053239251219092637981309090471161232507977442817606633309343538928534098070634370020589827646378245274280707625462129944651814220264279882546937861927893088877344944497843443421728417265565411375229612907189558280909767222263777446113902085764572855189174739169055778577978288901641542744472970797728727821787024450133654444246386139469986204376587656807623096426374625436677948278641890573222115930337136592123066759745273912272047831623325661860357017934598716080292147503262278707638811690648590167514666568355205934532585126903075273559425758155171398858843152175859141408287693158307879603475495727673696006826873032959511099993555464529013751287392269171392726612988213610451250492557918404835431437088004957404469106193464923241329071691999583354924826282605004015846172052871704328916372536988821654818941551788537253983226703148757771192300661646333716645922117007343055308727195843734681185597343437109217449598694253434576698083568366757505760045967408982812560887988557150820070880135369816409174866651861511563396224226663495445104963937163095377012966779669614666705035375397045426433784449110949954851537250255772212205788852038046187492838938518353230900963996297795200927120219774031760793236403486976293020968630623740889016256326631924442430726127103993080879960998496659997607404098810309676621878637818241709235704251162377158148470289843244938561993364134138653232753193099041697976870119176099193641757185438148398240960311932044002528740827261551010435140642014166698861506323650131869662690130934886247724424967849175085475346900320194202952150903113764356100667054940290481342803058274017315854324902987890010677855535295792157556487157841830072877510977118251563506985824370745271366352933888890089594118288941725309374451042285570303024247748640368082248916198363760976561343032400739247121556970126557982311972069176956729088563237992015724854499482907698683267070857748114586204694315676864440847902399470048049413135991902648820304046950393931914722743221478982604760374679615543364829825085822147071383543925559563245440668873811585733856110891505192458951123890489671045166764657940514181698673281078032837487421760279813841897637870968425910217252734618451384494377733015870520160415987221131516024727864159307864593693037869837760110832459249405279209997554077465867559995393665257263300584727809236042851476793733166715186836247685463308671003396248262487866081552051483636663157112603327368756535106800908475736626496712168185772073553350992288769077361180018425760583739573107377146811535145432617421808635229794952548334595381973330345962857232638575111671684885495661879139959455605912323053647782507543887481129422626215157493102346413262477353594851902609016318707795079370134812658046452154408432876399858709582676511407687558169068681771117406970570544156742164648379338604058203455648876448293879389322811741636589152588363151793325808164148052096001275276848905240805651192172745230209897734416864795992887617713998380723749365532913086720247285454935728514124745132982360512276087171001357393928324825192475713944529204013668425748670952404629567260737147663233382751964379358297598919627519533638004598975033772562643778191657549028040093521571091277355697254337496323051067570181252040947309358823471990981087096566017082268745190853012880496662273125595893523137952741197874935444844348644558310619760551559369586166897375388989622647153282020414465178497411027253127910447556357148818144328746508516079131888331346610312347298355741325246608620873873828590200629027864586356378007036996841435342630005238411378894689260500222037353371685074632549501496765159410907740897541257944770015252375090252413989317322981385191575261595895359825083219202460645549492182842548511519796067319485892357455620036621284495335542509576373196208903478007351161333451008228423405114822805835685726677072657408955880826718247583879913596334146629106128408095160616481199375553697690104435679560666182594300259328476320067138056451392235884850196345484889213376960234719076074068344701196382854212948703143388841676801514727709251724531449776619463043444928527827599128106933901694339439562473401559022722338241194089605328217036668330173815547571165212354871093378482190933445743111990931544441954300251441706265237901146139570491578130048173083287131876980232552093113055790861808811424917186515750446308156937164294669313832840008784770733893758726538038087062235094360388025375455853624717425719257583709398646910834817254270732737345002097671890309558544662651719270199641975758889475528209676194190258378039754567320293555042946842699176626815526644389445409110240173041174920771590661456403987156654109091349741529785700051532337388154703527722814097947126547408870146232261884407929511278304624737385807351285698111453102459428777292615430709829386824323498035478212826946666323422074219344999835066295937703186998819096975291053235033077017326399820667025665698008421073166715589657654681755041839562901806834521890655996788210146606832609103363394242703905370334832726498612096354612858009699596117721776920969744920396808578471273649485615166256473685074988235312531499718796368591252073581784727778149706345562485427309491223094763285183571818161429108564908279806255940568044951178234424345421032395217487559414489144610543510377833447195793539106925425713183102720722301707287123549472940825089464865776257440348290914059011067316347288529292573164611443252298871829656660185586520492886837830632317994380984771891249196895500642341525952130197390952652000707472192373824536306757133649221544151672867330979174149971072626847987559258431355698249113306519993376008074768159021224859864279438616020316467699811153276275630513503152219706252305422463687408353197173555006780343941399259970922726026023430856941036022475081709809513401901790587841588858553873168366099886377609919259669964902259690694881930189436953054224757924893592295574645863425251851657326113702968975317879766124523033388258094293381724642187260929427880406055429456519825373791411642287088261858385789586007234559533265422506701415352565520920561387082706030575101113992844556579759228462487311619396113876888635483761226733948898688413699006088985533514906637672967971051314148384476089688606614014233200673582763380268445390077181036812226156333301335854249552309375466972466231368567991020756318698145170111602626952407325128216716557382995295218040445872128529021761485765784459498994262323088432646152788836432862397080731342957626604142662609017047833277566305762573007247376239323210372659229318524621020958686398875363679201044475603240036688829101348751731733955487575631813387425795861236542880509467942928118042406394785909911512154567031055701793564678453709046463123573806900579182205422730806498789759567071848878979606778451678500114745545063456218138995964693508683611268814733035514425630812662053963794298765037213550636439837065551381821765444251333455427236687597881714525539856271847219518357861837417447181251178598972143899051959429588666504550207955678829616739365533502632298138087462922049188468502262554570238592663136957058297382438229498317388728182722732425658894903665055745423925435616794081173712047495925169681919279149363469017455776882895176523333173415091387157104121756755265225034344757312445494732602833406595228543357381376054272187659535131054588532519651783655684924612490242248392583355324660109193429151579403215285342473027331071130753787312992681980126708190271266468157376170708955160156099739204578886760782469524093145464628029437481242303806917196935205926328292018442851379302380830199216576768980631540109430703806510383801846219065679002053952078898291824300813806463899243100601113963790519145883765938029275744339531481495175126572973616554174697660262802715262774367168821536401221481745088168948773999012532674013149620177977137447790667320956419966832869293862276058219581008114947977739571291114438790871925354398131878314545619048664728491283765347356422188085638863824100220252667869098764173724623197473668093347409654030374975014037657062608706457517259159563763829880508888144151622034864796841641707176802430101674074987351830601339712264824998952821300413471469718212616549805379340803207197442994930335409871901425673252818310265792280701092698149503690865945654214725464667581953345955687419902616405726449340792669470477003708374548459169261971327538305664628473524272580145928797618273773213985741704895489132367929374369402352428443609173303991921474852702081871940348779991984369526534135110697443451389658615193701370270497502662481351827928032299517609165507589056832137345532966194930437035215716185511052295634588837790289807515460494408855243099776577348188890952559485149276819156900083731709865787216143140646256848873032981063140708931161609656501667132545198448147055668677051160239395448062136578604196372078916902618755605048865981558267557806407476655323846539951401083795126824442265088060333963005926542025365107827671875234158397006826350708035224017753939159862817448022845126892893454872453116144541250891625280588999779863231071314174130400106439531678120084427603007436076463115494736716682290219860122217905425484483371928858362494790539545839728632653579101963434102357895126191388291636311801985694493246452485278711456983234423765883978482153577542204801056851507619600712449966010989490842876389277668903080779063796014882888776499416471460963051030532614408266712300793829886214722579156947342945512534927628236356419886315705692484776679270065111967579362723717622461433748333501007887647603265389408246097850836432954640384753367917460204889437873191494417843382490892879412495431459578120211606752897407594814585150930056210085206270427033520378863545875765305418801241378985825077215547215706357785125586317396741816164709225738837210364545193615739497166516436584371220004455599828083303569305703527320290737133102612208410700977316779764983035750258780962760537763096493327688167922281218792588590682567315276084362606997527662912717414288538841531590636683943337391783871667893140335431794910819638006737977043049927016439504124512511526051677764438028899501772353175010004980932896141282099154359300241428053889566303610056196238613921444256843846791712276262005301482077334463168228272132486194851498298173516856110998409227771131744807087416833589759678026774963367735104686242395566838779784525064904038677384544739647715554059580736885280733640671035078673237241698026247731344219922231951619526449009146017070133989683054061190430380298514215900575449247192887257860623183852913169805109805635096317966725757524443943858110207773576958751247361498590105339460692838354073635862098666014965615972071582415566884475023506859404621836866519932923854168985721931334011819316058175617206111254882125448820234393567430055788596047655576712066174646826234257422157161060423805386143531739759153067657635962001469818857945485886766255814961399587604591573170374281046208446528326748543656056262529678635518958436073790354295665447565810057020860812747556613717434896580692647741946679404379047466141151498800520211315763790530658463258732795484809192661329382734068122857961310485377671716548756610575399072353760403581477757670848251390974272869423658937862461201448998642539785302524207209935983751220681943797865980326736196013072820401079978330876824377574862126912467768131795078321107431331597190982888760769777289950844720582034165041056112818319726856913220594004976043059674598545274347539887313606111909712690008763419017477368864882895779003083882664344847034780384379720043851019937445361824921932284290463398289513269374927859334906741738032133511270317649672238795045202017280528477050821247989068711036795262431276864846902613893390609754334127903609184472046370587209612804036647308420244461839570076461814724310574144596728314912276394852393136179811904663411485523621078546091990131082419615273301075593394232586961374602566571106923904329607707558471881146819115063662722625984165984253220867815675272495859804411424255398157215237913165156886703526638042956536515735894550931089693348406529319660756469405542159044390559514547521789073378723704457912647852424419785472369766277321449563864149216463916457932248429292041703566142371829460888408451992981097364062404873260864279334816260534034124082197843612091518976881760838091576153510208327081583847231051081915023548016010797717250861005860575814511830310470790249161058924168508472190670963470245838663571122112044216485761517045524010939232756374497755913461250155971218963530384381394564061080306798461848017123900825134779465358660197265531704345798486092889808323964550133190641641133184093449701774450436081406601613682034728207885700940104621522991471317895113125490303779435728183271222552577992099561366107934220789967192557512481614817376126331263312958760794178837557540157570540752498081488209990515263195874848913976139276317528047188843589353286866948052761750857571732047699793803711322309332741922943993415643864169296175605869248930199065753198653877693713823419258857786130037960708987542003713726261086457788378554276441460003277041834732584485469039273684918218257614509495087676811186263786237440982795261416312003372700177791427860912197050666669976035673500596478671926937535381073647324063025478569782161777081190215308123352725493350973398323408745738178061304851613821734943266000489688201205886322091815883333199440034846588235539620251288606468923713804317570719525618166189891444051198725088150453616308307445668705822444580115154495906157504562536512493793938588390690790853177377331289588114374080778561896697096418443135755904221696328323403819547133155969312491499996836545351618853039896399268831512574060749256057839875855059236242889271916047741688195755879428875711502238792136347621113908088921177506551569290823410671487311651101409506418711266246366842167144461790676659803256339040501947882531026574172877326097837998402227462510482470209382361540314948517308264715529203216324255258375314189780140223150223809661263655109653261435316627908646257456577550168600028038668167228143670654478753528711840256966192960938181237982563984817534499077343542852557465519736290339418381130731787574514495270275526479219778841339664505751691735831068128387116852027161279576701658978120353894557839057134246965401119504014285812283871694616818745961399064753385111571295550857190043220557574301786720740706360014330436908703527716050807967644702540600122689737282510178418509869414170142094843637502189505312789478656511805697617702443515593570600180589422410903043259877550293609415361251604593584259447971930523427329925062029181968875107293089669350318821107379636723762039704552599513578945580448453852412075693039773697880022484583796528108494034494329072759230912613340276916710615274485846448199878250409471105701377895220894781665328148411047856170699549771281475157524732006940836752220532719353631317234378077964611050400418739016059197249534891306330913192354911310032579020278956328725041104731105962002156513448881938991960922454585907432058860156267513975171011095602259535427690606764245924425067608685974771680948850788538258960368156023529881642586306944879061376353615513646713601270669345075557683421225919623106514259681138597068765180545979023890559765638902370268877571843394754161700443712527739859396387453099236053913246356878068139255473263974535839092672913353264585090208094835568809073647526149729294170725342788325922910193827745104001415809175276900682055674791747961197454040411709657331997536709237438401803513950266995512961701493646450458081110880251364807457861550182817897518373617967589267725576824047717347942357795278937993108484353527916809245204173745596109917545353164622488394108595711757570970973758296915780149591123350080735436610443660886527498218540915158348120656507368915137436521320113271747461386216894234728232558467838332604284245612249388784906839380527933212866852216399944963606564111506684843066371346310480348074980867582425365769494872795977534828796944120286740429865100995833313207984519020053717470476313622767652344687716558190356359228054841021570963407843549298128429826266037062668574115383438066261323694778588649714387701629843957838760999721520508592503309001843536546051308512256653319042794846385396187615389988820463724393756453528397648147601776384227197303922085040287563857532972693259474196066156144457423091571679570346788776500359800365766475575514258276833505285834963372066729026277415227181905077534922484317445787498961117191468117777507444755215645357376708479633411970535739923788508808625531764129025526783442864251440334421089352556462259797684953709035079606537807126155843460888346382258289336980970274180985961359754211144256745884390859047378744014624087640330487218833813482157593629438178148164205850994410318406587591991980558836931689470100803600095834405591642666601611757586939276276084164722363781006867711685150271482856795080500476152226654953609797898550591097622070065874247104545305068688629800706323169217297916946847828434835479544823871295307357365488412876133553251578508367461063344872968417525329496546971793991387758084940378191523248925167017089478645679245623881649015762210308155306171768475434028019030710927956332442450460323945963392749548522743170449004169511386810480921650971608829488653288079242781312015479914931614004691480548389996127868198304846514000224220021383191772729251857451728143431033079202333902196329569201702189118871020866696078862277302799358823938384647133337137619287711443902386508961632432226097960244021588671094658277330599074262972196526114135656571067390515690442830404874744536615552263540557355603871406597679285695074191555130411669581378735532888412725154896829815109355819578236369582069620068902627752815546328860406651770684114301370655248428868314584431659546063605071613943753939924249803729643213913981334476635163992861222379125750052683011219181491804284632894792517999576070135218264151612234624392825114751826881461724774944304971696175900904911131376586761062454948773022465769828913678822174331451754174574092564633702626433072130771753622570813965746268989434733274400362789931265667522613425834878675619920697281601671577196916081813574198978489453123716655731576464411812721422316801163240420870697776294155289523043440492499011003385983295291968848579452235044970252213546049491014135663852300044927878254820122069704537750033168887246998606606340639442186476879413043719780275263428362434924834716221911274077197695163784167269977023858543595090152999899039752624139615463571720545177558274801593873185875158460225152093072719956373909381798413558920834755763726302977961936045930239280759314783227462547429858992324551783958779853114033905726044394872297648893231512051134616556038009492786492864222565651817682804028138618139432748997692750893217796999827643725271836860377622781006348662962738100771318752624499122543759833654879437577615746243792451266013528691917506647243752755292815908579393075861922451112405982589121940941843115143670152399914542750503294813193289917219390494658659738733701072880700020011890486838015850143903806179351166261367248880113435769747350893533453845328989619318350459664405043412011256836127005201180435658206839241468696820603557402269006882299000273834969078450199187310999311632619067259564708794374487950824961759066382742251834816548786588039167402982700265521492306613907618919535649209188291889484307984554887120912905509270609076599603518374145464597963152927466882041850605400182536932727649892955731283379523804782387399603430742966387365347003909322539559388054023223675740284046706633995185432072959493334846240096357360794344934976616572527482171795953800088453060747678658340360036294888411206168735082188574338419238097534583404569159445382621008828165389677257770316176593077761220666976151990286063000650750467566209171070987163711930642068968481867531829280116944407525470836253945865741480278303305389974058182517583108876405244345078228403705953910755122923554173428253971170495137323982178966201442661234006371888154449574147555449086000193143546155861397560969842101198247783878407380754056015340570999601713304571975673086399495236077056848039645493433181146176648974390333201220704193954433117585233900442937253485487251539389855111946788068565987014135819336131281227383849500273782885081952463203194739834545051604581953749861733563656937921513974690298893526437439899008420196469274911166703091943697449775109035030776262294401360236751539169858597707530926918110373271551689047553233925407372323421906471967390386643498717428941397504985940736584295812944736122683638975592383637739557947660982491923748393570111614835002393759222937629101264256524178891925143526558272800747843019516717466250509749499008277848685008562539532462964149350146298367509258938543439602024756372778824135955052483356153037050563300582043153905723598848791853579739163866566140262635968193294084831246244714992492730319337924973425457971807447948617361297851311114053653609149679409557110421587114299472777892085254811145776707095986260218291291500466769543384346790476909452627784239861247127969898054979182117574025030935037026084380642203671796039383903217482062464136819832963435535795067119438276817355656904383648478771522997960143160661089072070456119162955426902846421800665506004263519983170389323705888491005721310969296371179179903133001287713750220903421790264734584543059760594719749370755631808568846081048027388367086904476194203838611737943992026330898521771558079219996887339430517819792733179753757245568575917289666201377088661114010527633865673517143926236388643207698441249795568674885394272763394663697729771938610668595849231401554881911862737032191587032766781130004314980153142592443636176849442609375738853531084148542874584063945122479107655479530272968406628091282343876549725279790236496078826184082006630131657989073278141482681843019037452707108115453292090471687509417834236297082513718426075854743874091553583674799473485051262043383519415958107327935733159227167027090227526967164844719839535276675100474696890990364273545883263158194383940544983093887732382208430210821061660099543438058179793437206792153831073667500222403548987840413026612797232133779178415198570545615026416044239732688838621726281012949258120400163327423012865578243945523004201406905182191679259409560390817359334419826658123422715095511540077541365149171494511295698443240897105108119558805693865231829902041599539948683139562700452614065566014340139470916189947689009804763037213303498695051363278558027070609176136338831582929295414626447781071186691487877854769219560845550309545885386190526417053531542464706912780722340299349609649318043179341166456246674463690273672614207290164944415665890856896804729852078737173438281336540392083593670634201703005555690331595884349699302326689908449987116242014153854913319974277245956507506011666564478580730318785181183302727907474896474874708222672119010033999897779699692140198477726498519399070500264848756726407513847770521438339243635882495007596846784600929486901106771969182943549419045554522484870462535026115648937509283734888204498863947101580588966812173221733223786028922344679887109101484106902099021106649034858798229730781079428712074341035057997209363234887091753080265232105576017881660260073363335249267324797968067804472886225524017397279874297926672930575010051305785369491776609372057061371316045573937960971518583380828773868195808363808949819899873538973385533786439419115373713892754176303530586351800696595216681695169874690658328129182117713461824129261398019856484238672099397961992132769062923391650230886989537425141074382585894127382873254554402532668764531506669317079062782085783937363381802339712543436021035319236811329786836689724956560769095933549503615787518828676807040421849785389705122242072448641958393996476039817337453044714436502366988530906775781101634254413614656788330633678675866599198945878959946685724011530506936928628074384506576856404917772671344473582619676783412336126015215169681015991054194478641198429440088265507794363793693984201726364962941580820334076430680468473613419695845592405206982465970274710928091681862106887200195585491250085704953592667847175806305934499845366386565997413057115266570907386971251278817205749539693759519233099541479540188172156914875934881644097075518866494296310884995191394943098267541206978992978989821727830209658822624980149543555736401488638260736277454511873385085993919728542189473734253264890644202587179665934920753931338428768043907404319670956314984957694330684795087212962189288705864389434834091470444898185431998185523026167709898260122823696758187070659061296819746688925072217795962888238140004247713632150859054347751539389023717765827675562405118022519427493943929784505813149273720192896589730889135204394323260594023742766128497919100218494353617519876201461720898261324128760984940617901185305994606497836373617874437912344062745909068099475872614485235175498064846123299995643445413573331115895637494593988170725455605183881341302448087224837292196370644190729882768932809512925214344235491966628551212833486038956216564486560362393445837610269030345997244457159965734506900048319697513637352341941753473752768136115588894807313017720492677961153141921069609053420166474648145423761942378035483345901529233987470863276363230089738825026512000897231851683464657185636229876571994126668266674403509492018270557165924463926718956242688553933028073942173300005827343890349888385951594581054902841127269781592545650889023614000823785888080570137326772756438793726750570695710975861218596651533823614110055934599802456932634200926863290786745403394867034407297834639557964320333461087863455936737454501819771145836981536393556692051673823860786514202320648418555514364847205698890888647429981679312275157328984027848888943859359604225913620705891883781729655730629183961258644612531827330346634233367078706347279083363676675819052611112988166323087225519439355178028115546277946906379187889640047854903406599481003351314265416338311332064471189746447014601978495952450107146063484605048801543785455418237174849181789656534719194854486154804652860174063555766274989318750088562162065548122015627052895014617126456947452307203239260626817535233756913643866144078219812971481519068634591495836109029906589412719778022690006707375330632638598607694721085509382207363228658546622847521407969262721363816022223702381122736195802988517930795304135165324927756556563904365385193172894134833094211051817833533293662787282360138173001263610213114183518250592363240809658751078182639702215380911853606545283595459522143603893978959954415621453191051244672164964301791688853391854163764203026419823977225336463439825217093969584459262919438655702894161753012615331560270631758850440206265904175136322874269380269612648484555047635440143821913909065427610458161597082233323347505229547963378055056071426205641772492079512477743157208082046334348872239452869371817414234609477917551040769371184258723903228282060920861245666328287853157949008861869008448692662312852660620385583276257333575380171384104121160906767702773990541974175577414647684805482862635958108799979815328756422128920208628843065452866770122502611264834467685848948288922343184704383779156201541349457869940233741692216900812476444830103088163146247966292358748502166683585670645705515210171323529817206364771192772586485837345452764839512185182588932449639806688124442182662718829618018460175783874414143350370147444573313698301874597287230749217853409228047411225492489396217874594939280411229505360770491069486856268731608154512186340089534636044175827275012739156705944425294431464278550354466834396187675397408086080604451576589718422436723365482986261668034292048549506142062546469603224235295118195727356679919349972859347025013527055145127218359051660310693873645174110915335221025934614752126467241419204321408022347587491772731678845538077246482308960716705921924689550297027117102136453938999677086020102487314040539071740921918325305418934829335619665765468010643797727237243755176306989082953529186269999937787612695226701679858179453539678400711218422485510374360819082291567682847410111935025747513067527712791898205829714078547052651623607720197598341910328134875680211264343171682408337726500978848049926271972451186195584605314982803581692438348367694870191904793192547556948563369680561467661866369959988444090164692906129554731762379882612901981065318706025041167224277185096687440187448112364333081941413971862216969260594735758314869816461685279323351414838808896348560360932439325626551230190492412831926571878434592901365620434852439461256344477565947634070410576160117174602733159935686238881089926007911040419936931129178006347507132757377451471115794648543668570313540876092646686413329667661589074864383274078307241107834525816054724623771391181117127303590542515066268277272223273840394096419769216867064794154709485976653587583733417347119949566891715756010020168805800068789349902966597771761289234068172784033783460376175260714149211851759029867238615122332156111775160196912418823739272472795245844698633938827053470862060068322596454352764632356505989921647363186456650862259756976176425638298610231000369704619611425522111816966442526215508775421315518353545313017079894382659162848951360203426133530909686796381879225113136962391635437808202520944960192750135917064536847144372176111737408411683625681687234003247603013673493421289855965277667965007550509937718782686324698586821675757453048007415456256546394714052887069532239028969754837355797201063012246086300158795523156939690971780553761868984710362223095768897511226686436392945951078081322952748598793453976834670978730354166983349823219847183337466906598812646112036873262035367458021946357474022491885457649844616970231435017947990422703044768159141517948296561433158247308608972737165558827238761881803851323843679791673809000988120490581320253826981313291777096114515660641321064342519089419903472025881500475884800346750553632700060428430854588652231466574375406551702214776062208843140049439492864309794807813601666233447462729590177867415926647056607843093591374860809804184284178587506461298895114557123939127805589914241755106541911015127006722125224848414302765246092260622716127839653906805397783098971307325177508011713758151024766775036113957320620072494613079118764780577783987998965323743833086177937423828801047089022801471204877066189496646906359167652597759663577111250431041375649347372804391428753541719709757264406594561745576176464937165833786570562146621836409582833393783182457930020871183471160037198973188589113176535934192096733632943006617261309904207714812685555210829698802266900028652440484019286593566105328878068491702114374477636415060498331375079722187618810150738430728451122575123828162323216992091386940785880699693807516723773162655115163748697243590131247275435998952016449112352700206288101265915770885376430034891835212498398739482825956926766984263843843247846386897863865716642803202733726512723975697715644265707405131345479773748057650669103067880631427575625703944693570383325768320604280912252918465145579009048256835850170119358523720249754239386076105451895015888124667714842785773034003532272222541051510879473735669770694468073210412682096139201894845102572421100378461226150147360881321200296691776881594056007113044041619581869300954073723638409983377336346337854874531266169268617366425026155013975662765794895012246244884720872012886753525889466181018590857937798740880028906795147894340810633835606069675863915994872964578962571682232472576393635850862031441740879440212069030503204890343813186535874191828681757098675446323903048155514015153890573297722561672424484799292219007408432015855832741175269179426229984044112458138747529575120407030239797533720942988591247100792438603951310053507741144726710051510527543009124598413135275967273903535077059064349090024222396471659227314294142447073494688797961063561923120538045270952082968791364626000868788000508899926466511353639580249791445030282106141908358161914378849396579794750563305727343066157372617036764457930086481283979157845252847328689943656192848207911034977186728199605032365573368682858858514690151417529174014493211452294940395067266796871075405180385032480968218443985516129705227186220763823776057363329508461104269571782216926568883569532823296145869084039846226070841113870890228047517570984498279499143924370601741007296267201329941192501697244588269914509234964048431993518853251864228017200898039667847389898784460368280304963451065017779351025778453339313553108963653492646546192580350999941773849599246473953946146219322290078715074702094022845867698298613582358634879224430456141906392227623581350366479970205990094361130472553158266850760705716644752891363337910728089077484958933951421134519471335006502751525352311924404685906223592914822542779173815790923205858866306807462581524857759952047700804719970287724378816938211469207914790775412558950473379656369728877074996294623178956849069495284103501192880450238270447289847509511399363928589609443275287944485399234724635508928882279225445488845314863367621344469930466555720739253284884310194096607977597275075492884931214428937646782701435639538157085813621243511622447282979276549584131559147952535775051100029549245967915541997769752684161840651767750093129032518077868664067851730070843376724943239807241118807953966219207010671896914100925449490378678339481858018185684186614159006849766064356121205522422895617002369148440658828921438650106850099975118789479774138947870709337442243067267658994616674077460454705087367790532353225134438146234655768965043474003205628012992607415659095741665885533319832831820682338425900574500961877962032290326739527675749210871187901066663185767121998422604755887103821528711045500874705505964099020082663384196652243807441839974179808954563396550611888239086219587397476121712786385398288115665934788206327287725536901854331367498998519357577549368546827438973563487102547539933531176127400169327311219555869390502148181122028116713199554541811695832026938129451432906481082464541447338916312335399564522609404264667829629359751906126515731110776337130914450396225766721804897253723015167400188283031955340170312259285133873285605396599692745767122686860500228462036179784951451470743027752770322752258010101191876028863587574151811887921138725062061372920428233185204838995170367892018759336145903746259749948826908576361677815106986344315557243028258542569146826688167141421618490468903131333941158922397644859074634300332116647998041721027888377909179627035842241523141401199959930437200654487109645349595357274349229487011996094959081756671977647221127016368036520274716483146422498954861193537662506997296788369280981837505849021311100522737792313092228256449900252492241307296137716721674663964750360707289223376955037427585975040708788664286965618078451503889896136709898846558655351957799537606186910093930361312099679864539193760645304090511110143088644377278999079686603782693426016083512381372960416744449735257157464914358613551950311997043823067209756635615967124422432999329147999464940562345579628899515024692751750150621949562928357078356398317637844626275004984840493162123446319383130650291930832440361020313834082085629755487493243204884470726808323797285838681300334484997521250468404139280836708037675780712033830356367618220211051006935513015419162941015718163909725920130171239266103132522424006726853143302323062665440607304824818193669031801670296826761265578267456817677054966493549279398023769044386741908661467159994357319111062918556047406607567300351466205928964592352447805223131293136747599728067898841931120644708902226301087649156385125024971792221671843018054932063972686663599572608550118459489657653158128075948149578428637158659062302035745209364354264798258979936670621663848823499886285291719702265436465365771068771867843399567418368158481510381089140951429769224069386407902245054165621565123558780653654961818622041934182907345839137035872979333701390299371007049635315131628129079515310871530902793314574341852169367890025006144277736779508843270695748457961558563769817541408286053817287822917121092910563249294397201670573316922067828521068737379441688346364663599980219196031225556807658043768369882449364351379366926294816396856158102637756801533880401769498485319817958777824769838819166585940993708616735257414661577236990006773191272822587287331145464480835002457224911601985509865000229745859688215263013879339755914840328442257160546115235368551006738271098111809894118871748903363067466578529951064513261345506300390229689050566661007373831328380797559804750841999424807813802476939989938923588103776885516282677162657802184583778705777652629212909086546255535812970319435925907350521108862949890080452633241716951348033637854263646687552149844676748760136943198562857842077056630790809974392916815570764979293505985110044587036633383381440909287923219539822313959310622951965712005819491241254596394189815615020692378633696642077370300400084098093235859486166491228304953051508630058564312170589229211631882753217089033907939897810750441186186943922308848172826730056022349821248072974244301556193920428529130237647250743028473091169364524142556283396255587600975073755728917420060550544458169809179242341493430162118039567881631265233785218327654667984838064240422368080488837417258695175957268217238619784814433631581080929305626620969306314492441226539164042821921591974093588302307327771613686093524438413475670160382952203183082786329930534739048702867186235253966325179771616759857324641768458497451552928351904195370459549933504304971229617903472367031636028906479160891838802782557481690257454296725395905898213797843066209415398343628504367962827141370979340487789409275202671188330380472702512985529564491678631460404248352680288982815207896825561315485867492750204135209895589207063360073906160157650748010403638766818911999264345537750347923762978686105050898976894337232955939264760103624152343150942177426581577426220397230282402679261851813775748004897457785666589611043497293961819097377782378737166244606993921112398217984665322693784630578384922434010164380562101298623513671908127853696523315035527950040919289441915505506619627500228635584619797149154810982659945443750954487578200064249522130070450017911053255586828261616013863569757785987730977051482816766066500090707667517274924756991657329049028656071007406804637912516246474546497611298901216821910355991737525242976062617201952586595434675311778916181093356596310099343927039586111988727303014346805412256306681534908669308664606128076427768444850180837643481130916251606265609028718711664095794287791787379036192099948963592105316185819843187597004769440458442991494018313102433180177305941686592636760416584752523661321630572743638938726738004697671882865908088208295024213974669840465515495426380534075230233073605024740763050410717541934043977699230635298717553869192826883201055856683906586494794656489443167959686363126276743582580887335371153861486767996316485708608519365821101729619570817451538006899610649305013937987078644347318845730562502268488517301325368506710679417105363707897864753145065277770151742712090479597153399669606481102297012766697838144689784755675275994495020304533523659812942444984242705385675396815999860753708932580150722123980847008838817226210034066118468417129591276915155005397737236715629472871470660437225024565199218194099413357022165227095971932267838269141600823305974672009123738472133089152000014677601292967011425038935494148748027664278602710731926953981883198333667193732270429252861066911539128642989123606353679661842952919618720126142943180646824126303142994868048238656932783737653336757075523645140162765460690855271875974154032717430070190851946850321518792991884591799181487489689333269531334807338636418985414243626831837246341301703593192070054490904202519695917150202140351117819828352930462255562292985517275473680368281066643944168377387457463530682520029424180582426790913871307225741319931674312380482419797050377324156869361123137927771079922880429840774309488172041558598868067933466717394233543987157947044215514307584395465620982962758825309687158444787604698319273350521675069385193386749981551725306196220852373820586900051913949963968525246906568661002157686790719538349097320870338615163896860166361802634414266893626492342618295696087143504478436181281285146540691853627076303669383867219172271456617487869811151919170659141558068733646845384522398176493641823847437039142413593733237664238470675758821792546696370925024987725806102685174412112376176248574698204312564986743710740382028207033676580575057650970994708451936473076500002113742987010827755826746445497144297833932822287570997596806369834735957670656798832025309099264184943777327708780786872550024247650604960698914226965105572394726384498880370629766349456069554692636616895375957373716668444490483785840804717471060957885656063037095205634632650735847684222183103964254906969317571592680226652185617893277335851794686404462711945728505012919851560787185968361422219727046579993454935554124066865286876803729893643008089747079126974272453105681081592774174180057045141583366680387790470854132480014963053422695010643303136390191443787666824189205357988478951056318427925659888612222683078492153850632234142389142283831783764361586519156235950949877927589912473348749658124414253754521387792185000974711951540983516556730112265506157386177237003278293832062427939551861677831598915462489051318201889639673727101667000234197019822489966710810529403759882424341420103429326345743426396558627391023372893375733845881124833412930064182955591031392556457574758838686821031780027233256020871932258822838271956155489439319661928828915578959810458404559474305299059207762203262825999264624819844002458509113634978973836071351546674988186688700905924430927699730520449786057672361430110158211714783827716154560096402663081500551008907353634034097596781157065006289808875454081648815803173025646959800166917246843136543914562205294833217932504646063750246266669052182597142127224296885717658068146390931761255399832822071534266707014539464035723188669967169971186620877159367264237869326753767809138125043719756288134790960682222654201597066875107023346650879525454954099044343398821531313509651991773376257574772941112852361269257702204115674530020880793774005569163503598098539621844289763809990704612440562821473498713571895707973027994175161612641843853479967653605350343980713092836674971471997944977453796815934016192351674755126962200406778353638210390887518602278380379190821402029469663978318461756536047574455944357766197235083005968579685235998218261671270531242148124095002352908414148735504178885854993417200909010635664674209985593088037394048374228735571203540179401102240083685441435743103427394035277969222216571766374164838398483023337255087806519660143314568862556896133053020826162099384035143205941845564549543864867192857673692953471508921930186570668561962528207175439566490343575466568422174366718419261267345900329801119103560585100283486980376572761874821853858705752545671936981628873356318665068821598532509060028982206327351311219059489122904541387440957605703527912489567221929350339210967491999695789801623036597334298797872627048456782506757782068801118821483748985488737161000121086590452666048301367410551461773379256486492445638681929868202076134191399710391902926882443393769216058922343043422587453080463638258012749022322753448909292146895297140267696475881690097685191270025111173111697034420391015507973343018477004427744585308692231174327881648087429810523642948000482238851029136173180934186080992364580546644983447889744905885553001528985128422701769600053124644921302763929964231670607630353805454917229677727995141456676976355860922404278668516325472007015372486690511023659364919546936386489233502838479673603475106584462355639430285974164012985270794728681836127836923592010872571499516123340673491305589179453014442838346049810939299821746527794409102817709050328038123500798523494614311747477478582510085008896115925719551268230930789556494520410558286636381516160145078640021405386873193764354384486870986694244924662640718463342520073244841838902045791581644524589703602526141403818090984374096889011725247063166517377691367356685907473303729885104352765417857956218582577729978194646503249369583513055356638976844828382516170843595695992457262949494763988828658870652106684062713809319726679947360421941762966970763172811106586398744823613859682931478387316102849368555517206543418579063794487244341417136717790926713417120906561708083043083959376608961476005342333735652535881147755817129885095316003379117517560694129066774776186165272632288120343359818762002351699591848137628181841724684020097028119887595396710507513709688958907525879487766736488193541089321025715987904784477222144655283174057072038163148905405803241293091932231005717288269448759630938332631654471500056512570764880854280674954605932748704904380015291361143960322765419069482112689593860918732165168195067824489932869152996996027810943299952233072449447086949680762635681801783586320289252699059771954970219756793877955304721968253040027642263300560226545637068743218935937616799637867162730645891680592783744778337835260215807164484370265501953280557072272615812736930056391636155600486307582775648580627779830046517023658148103049985915266136722859465710445393740544181849591858896744059037288103259411808381557200063036708329724632550148311045360647596849570246344620017363716212121109348016179492949097037525779636387073915051024375732192693883445417702438572085268064822334445808741743683716669599993554449337393198886365752531046464426867210573662339596992367549459987246854075375341880124248968387042046389824080064444499992904558576601408930136959673813738397782144779079684485762265779321070674793982290211663593352463512452968123683835768845328148586985945731062111992013849850037343079301949617593393943271983637535310972908983444213539110177324818027545573219007861741816914173805678637965374269403817792796070173061279354436000139847283202142240506694944849393908835255940793067403504652388282469976115139301199369064008653159736739258181472848320549331982831544470293689381287112611804855282716694980668720355626410563860887864911036693216662847150629230347301111607846604711859560870221980059195607294351893253908567035536564487227165199165056587250309464688544286122768489581253644215130903800002000468323666560888052557399598254348434168568294848273352491320887350882550589196660446767021345885663659048410060270912415052645091271977268154827875901462043145324534696092656174594663311262952388972095405744291731307696949109527787425164668531269263424233382516890277743054725151783766174153726067256038419130510128081462416330516184219940135207777249244931103337603768442318221707676673877594241155270401374112996107927346164634938173604296979327234034351778023246482673439100595037556954770050356328665816290704958837544654705450059719960680651621133830739831696158437491158510343265165649712899285141862301160748465313311982897074131000663522704893699041892095697119303064514809700992840422721166679768120502912256911520796457006989735466715927452753883102960149130273241029108454486946682408786363051884671806083441374417081679450740291346883972427666588823844027133772344668665756957620492741322278140787723032732281665725194751712060033958817671183016417773553572677153221772794551442445932035198259009485231346905920328961113997198541918714511079963378745678362092217887361136766475258669270100337170819247165039558168631167377200039562963369308995790993906548263870700491931541547089843390755554722536275395482680619613653335566935702445790456888744725326423155124683027671903756630056983948355614466388678265325310457374292034542876381086720787023241955247420889674756213333793373280000033716872640122913499543132776931243816717701142090737557912854813396579939154116186809484845682741176952954073732807804730797775797257955605808213982320176741075102219698729747422090499010728929016338204099617961737704858231796007758257003511457775607069327098136493740790158180213932387387142415851130106085375255000714559237620208547872700971991981329150205026386917576676813534779578726978634522839025507729051003017282778441668212649901739391126453509646422333342324473559622250743842296490088372737245195746993074368208264275675644187843497609676566042899358835092917549379347121863764435492207241499693536872077469221320789131390100572368237912804301347885508503325279658634736614122010161041633178080153671542252935468637065326366115840086690124763511231455951462848531006532191405215381927616197559842062022281760888689941903676227354509639231378347858757755655004969931490875985862307852678910004230027540515320669704061782401982456663237440917685299900528661191959181211895262823323580835299953832258350142394793532487334415868153764958755898733643896847990727768113049126275133075029876455300935784327761355291822899826868466747569301716608064472990319766647842746732457396906391619034973155663543053894463467091845921658642651601897456974873139589342763583746268246498452140118752664844406430935426129325924689625910057903943620486374724085829492533903061683683293679470507935380361757076523936116515014436135495617519749531139616517647059066863274302450675885735219595564929991879473941611909583456967566407013569084157558772794316414363181469039122903192797690631919858069902049401879579304476561832892911380665860465074990425214809552789947086654702729856277634642187612331382596577489710932492699937413433934749269994226504808813928875936617053793568124366463348729392556815783107649153221475105490261171061054647949358750968336481744931182008935131397929496289365328903401591632371827841591117183911305336334292031278928299467107841585522414831455412941842852952401441606071429062349959278567771948872507238124281375476535772320372918192875751105105542997021986028249560821917200721215918986585712228993425194765612082325767076338144968188032643151746260269276965714762920882358533260398492034336398283267479944875368684072755925418895495693685306516161094495956632456875437728446173045582656691467348919933534369963727569203477149043830552532062894712128550179934920038982778300794598203676905426612774277056347383608320499477638159078550741185669331072024024256914724943218430842519935332876574497019155920902271858031047345070849568164030096581832479147005179713625443976580787973287336116351685660858382028403252083412700358474469411444334063748165932472039081824764764557088362012718440812916236249362948697564676522710070099353196391987093631120342068745108570315222623503684167675700205550167628036203292960155210404115414628182634621714759747169297487301436736933220937084160180191268135325765266357187298536197912346745601804356391473505929001432492225711684444047925913445745803159518346128064801359184307310096249139725104991442346534411288092558717982145550541482807479195884204653917391718579007590342947028088117518332812665025714452633862126440316720997214604071171884937174790801887765074803225007568265815174586552653078166592597288901860547872849523886771828526082980638506207563374724360518540527768465016490746923648398265720811749432230457051674975080743008345763243507483126423375402300773399308743936099743465140978774197257434584386962978583604382020934800732949172233397529305341063688485409267757336436370825075711287164744610361999001429728184690207387142243219991024872403077710953266386071966497089874278577870699259055225135191201489901718601379604907015571264539863245933457919980705488825868959540491744325235594011793567491104254228457467765588891026310438139846052707491556117382697294577586152700544476427876267933519583265098587416208485870152606822346330219711778850879082482363069842114976022281423597100847808250857244486764506992954953523972953847548719327264523533634422658989063302619721325442240111253455013284265266502530770230397523259015948848668124741101110337625108494936379809456192021008369353645886008630326206255737063152537698789700695657682822801911971601831372674213545375976135271039310050413967291751289755898235052112067618291157933090117453053109555838128957261491662064436373442858827919875008559328967078490765850443389686434448812257008801146476124620555244384025923015429954721225101047748952253181090816465261512526529287574637052611753881601371415605347497362956793715582388812398032094440447933501583491731653092412250268868042272749266764779887670128968509521013598727977991951176375953409318594744107675270643600113183928045391160049836645481505120678117155202260826715866310347563149631839324956218399557594335132294532077872900100843552099812239246061249103127600055130874155841021233853150813358143480266507439366046613778992198769421420026628580265528246882180835896199566649774246741598769253212579396051824656327953212739831772244618090735630959667166948532727094492353016259023008593165520231316401506740069598081511091294804977826326050518649047279173848438125158345575933701654968586860463054839848897626249229893583774518925986325451394383418843065543712084734664531032165620648399242734053124406076102729617607238279709829058184212929216761536302545249933981373613315442839348251143730976506457694512191757018469466736245894526502701860657803283558628890149173753025490058419991435885886174387466402501844046402619350324126673854295497031996560521319313107219327503079573197925429358116857379691408046880768331044450775547408013166509677734326791109923752855029565851412226410668705601321111548878462057993661468843077821153649598503259682993311197653424892284867692665479948040773591470481788540182425589012357411563528165847283403416464466081850217528688991464327903300383443443499488434943323722451577301082656484870224213315804572681207104410625592682289693745606499657276449108366226622900838959203680053152812608674515971269515896922236776886235085759967294786687550702148067136624945812978152843845139671058344454805257106729988377597393471508848786910997817322624855176156158234420495102934559949910912911812563219407184431655484164557702904327404196443780111877350550349299019311934556109711724142309952148867312125714539720198541850481044290676259615025634201273702962530472927355236496271042486510083232914328495879881933701284075684736224181704418176189809716129032364731730427188022197870106245368545206874663895781594771243894894174448741669284085141567023910805852377294357062018627817441062096354518583146903645311803009899208408304562243495770081334792915699462995717295689859236499217373043006834017816018802935645240906085467808431157797246150779773299035453868233845071556389611337982323786998202701036178382280069069351323013336935011709969073584121603029878776957255367475227756498742920858293458020360059748910787838012924733962790025531275902837236985396919514676973269034230874578649596302302216481541401551494108903419889964497575774800262544467321471657519858572977023061983258704169009502752018971054829326504074703909083721415090639775703853254756380260250231761032251590704380236434348085376445008548239382056133813822739329542146635391338826532949079772844250206644898856750609134591087863740853413253016294558182380860326183545116907524422862339897339169226286424196185920232504439353885008350043675582911589736765483216146903495532149540870971000392683143794390108643554412413574431223365775193481632022919468077271978000857662396799297070082155522594476505780200185007483563412899757197735699290610345358095187082239445359127558047407160541753621364244816763832106240469492128744014027236529981719958666185929413560603324984323917021701541884731734664866648271839969101163203580434541459952083953395432201517296567194889137697712763772077591213851363987624527561906223969272917402084649462314714655980616770042350344073502019126608659810493903561175521064127589841075067711513146824390149186374664399873442603394192044144947488943613738607457691040925404363395053548563278519690293276987807832810151438298270614485823705966237857570871150582911948768685627615836206849389362027594794916825487900733620216437914685634549923287334470757443089458229009838769426996169788712993834399818501498333594463344270697378796330381355741755372261915985015440854740598022994532777595448107731272687154690579787205526046125736987111681590515910485164263355328902284098238878750609631593823088674176310891943152706464518197081682772793434005821143405953784468376586735309665491781415081311565360281235156362848108719352473153247247084414770532915840504285213772222620244159829535075803684422535473120105017138612277172467151059932754149489145603109767297621536466051558725102151058317256681921098564160168213464407601120693546942127770990452568973710376793889771896409840074055180221075303825057663229413536150574659392473741760032580279981266278170931873725424115431061627670299865226546781896084896848042979855410374288493558244394484668615005869964926619408037247577775127220668174836398743878260452612512587713558125149001334032611075041192039529612842945501209383945917874018390640283605991997723388900606027712658383305012933315590713977360910078849566549321225169202102804725459509527715808075574874380814295926335533182520623987486727572908919106865180860077963547353281499941920254232419142930499562655507302211778115281999836208351590886746424345884127528195883628426315680299262980068184541710152841001537054198020841263404584286465012933136071627152020490046002220540511917109109471906232237325773317338928834161971368408835059445451061001351699757227209029413762674349519508109548572713885182469628136667602351550664988771592579747184463011103124703510802611405056085086902406457425370878299813626058737488785996667385583164535734279306974945114712985567087720035776702250888226986359050199152419911033092600938771067315463258449652039758291669066224575742943652081925936397748629029725013146235949048048463647017728932705770323878794870774818872745361097735640934333452829765993724851150261206013366800118901897927276415433991776352894413815780906674299854966921712767712891859953524236425860493714387234422098792354270834999935703942427240305868257195863174701011500460486626965367354656033281958545718637654378259863033318844689217054709667240716451747600460304784751971849422798765078783376778003522058136370794014702397861782522519119478868935747857930839309563097945172707604740110526864691468150473044646950743598450636847352602568593561005743068757400911341684924670453092980716490468574301128537986848382767612233425392413802876776876861306929728150649114812796903415322053568219662826310790212526298264022691890155693869124083185379935537993532705419867502467027588489410255801984436833630077003970814967458883046146825438857079321997485505311947387152232870861026428369572398007167574290299800783851651283613990507323436035413776928317541612661901950394402060190251809224349403406902383053728267662611754998654124596084972744809099242739992895523272112936890372833439322538348239172704826137901381044023301076602560180166187533759267774166760823197064719259712495440723485259690148986911425587542099156095124423505930885732449426560765180729738919208127125514688371448526743576075517791806945243766394058990690163783950504878686877667870095405631262348170836674948838963695114513776696742849235112700220231320187461606425179301965983263431299360769821805394809171381473505425868162434695568887373222216193524564901782756575914864483881296752404132587907418733237273121002374077896095233297675320997021967784543836259941289887217126618793316002888554993660315793834305447212441555812797515513828848572582868018421481054071373404605420071224879831039297881627697329151847530555501342940023240335353081270531891927260912145175292836943135282548051340989189540332363884950045673802317694077153026300049040739635935057736755121634788975872005106748558669773932986901058244672603577455082935466067539719760376254492178676946766752515949262398394417291447713567620011582288734784584967020088092214522500904660584114149207905362830980510535905240981925827043979269964198654901350757462667112897744671009603533255779801601660990385801968505160718715384668893332174852499227933612780592787614879496047167712639055048856109846613144014113301864601245492867555248557543041445505663138326082337510177590212880159675107820198940033781396179333787501596088974445511866988810443794600197893599125390508643687006460031659255926103323944508363975898300105939954280142589603178674612349644973415670700675310949734698099047761362053747659593635219814075396627051408174733855072593936458059247854880889996199643695534317295490642829484983318643964857969988721176821967882349551329047634197116500379864298249507727798743812925333638220123390044531560971090815994714002183190035850107620387581503479383294631097527395325790243476326747832624031519202967341526529947605646078716713715035294098525086227072132482401924372580999413835781509039400086291843045072442714630641517918427573196288980079329377822240478440352539293077286424016947088335374036601054880238457357142820448960563457965749354722873783628221001438106642744867507690234430491591013378151930062785660041079548878196124043238009308559958133192157951559068172806023090541473053949707071680376350183830184504473666057815445157828043440308508504008345474739525767870672089146688333438017414877853807793954183408190405111480113560060263518738841920657540168623841598670154651179070280581435405049403692549949505000036517869214574218141507511088226333335070083664320301141521164961059503263072350950996672987289399655838892560218729623448102203404677959077438554973721665312917261552223731470801795628968122630619944971610290337705248130175803415760986415608957043910291719467096885865786695147955790467799511077311844036430066463827596144656384578840123075059458811959500721254414900758060165550039084082871352175588152798743350636670370903379784093929434691492379748478697843464232595882889816128363718449262094815830916708651157681208594630343789752481195303747471622403915417894614520242959494464972814031965895003659648275361066108400683355089081670646464678046624390983411055240442628681222408149747173134818675187418260030468400128265520255861348322050846060490747877791762117326256717966232897907621990818029985244011054823023687576706674775873313176172103319975511189147333324995136168003182896866320359346432149539930886127014714470774660423639729117450331940259833980341578657761312968067179100731548888764245954508397660466101774419957384286452134669472831477830025136544352911325759732861085685780106468510944467096603528722746311995237448030786523064954433343591144752422318972193228158362885222741603467847339339485208623366374004740241347542237166046136871287340322536645013477856027534731066347347693725672065190697447411859138905968303972604853494648705893155392493234788881398135408452585507704982557601308666485514605106893984449038432940532679476279195095287378150290284678534615446952162957853753030549516528733419464587647915345217188273937081524145577398764308517364820776229160468926732520806745453382355195102546774613631121931866087638227054503078059778072995904450847848293446157833000044167809491095368025021564704448498289882280483927568594821544632533228072815398473022685496230506875224448009302279058145652005724452399763603621741263082770908258490583053397205661857723344363587643629409041126891279199811881487383925373641409999120438607119393129614022780508224872075312398551343078354345515487528072715161588868669219794958595336395604602336290807116144783790406385414428903320826877035495146066242560734518913316374019495699140186341837234958683152724684670229803475893114401331442505409507967512601002099055914783592034768445933922703663592329754221991605051764308458903085684052342846639995282766085940286666324781987200635203822020864260026977606177384768072178909279166586668858839958055218603762422914976381370803200130987306868253253894243691685948516226455619318614729701858821186383116302659077489429833556691018922055178411069340277621828606384236371448091142879006764315961487949660732759847451916412826588209695712412046708891094440297343670071142974259906550066151674757915521028814677582505415237827836281655433910608224798357501170841083750931176790663419913231173804596089222416003234672192364012266911818788133467901815331735165744239253618007005631769952387636925935220633358181097299943395996674201052125455058313748117038630165056299296970513796536390339922442774904665038820508165230140847398115890872245470965766724589611760729217323990320522151177953888005282881110668305164191663721973510029646932197932872486678684519404458966067979355625408547922012129432174416543631801488311047767724882209845079106479042823869600861837160254944934307075998327588569052782494165243567448201217361582851151113974288146555780169830619266164920078908478943514832806949443191750864984165744989548382138578799218277941673556043183074170392503147180546716529167401489134981568240317265941878155166131898702093021878051830749474614688537294581562498388793386432023293778620786025917652856671306010876752211772174712479401005236371069367192698560436222597565820050916620933911316451005983680707587385924957416744098825605282151995058556507146394224426831666639613132172701852562104554070335877147792322140145147881797618037690933251742350821906879807383160763496362871520038774109737232344495093020266935804815981176525251540552312749622571741022532147256261365546343397977648361981110685648737356621324263331820451078126603467741419990580527984534307550223544628286108331852854377292496248306575377633983734927813324146899134996373344207397485211371988432019377925948596921191648268658287787854003236777188815367155382634057650356683839901084463920972049152210463793975089965540729200417023997101130005295168313359603450114859757328913811779865998551779987800728178365164191176470175493841602448463486735073558414248122675667295252117717038984793733322981252118225707723229302149240684397079933842851428899883213435960825884233844831492755281107505568091351692231272355867959769602353042575030741372640734385096074540473834465404850837281735960941685572493217054977829812222220166283244462400017975500664587086704651284998572947949057615785618345220630309792811352097101867036608162585036627725790289712887599505243894189491757182165272898338834516764931988721386992871311299744302531604065527650103371928508139015767103426748323660054982285429122628800964483887318144568345119332310706537587633347746841613632612545379889606316681241547138425682361928755032552684217294479387173533181570564971200650654063334571209572457740962399306665507051825356750853438808654208875914191139400303233678850021734766951222481099824767250967927178634206102558796281342124675176818074479897995831639854807996172314196899109988787622665184303304573349558530237483595019758459744689624292340091322558978269218162241198359900425428162402024176228604905569232723683089527483484797230253955820288146990320528950263901000223875814162989433314108631922843090969092866440819012828989570871945793520953123777954320556465195754691314994023029273929780084246790824503205918713605491436208641341162474177827438091964529503978150859045432010199865475314189879637907848638527754774013255760067085986974686939784429968572245279182835572773046726224357127474257289984119948154756109446611725647959502667807918617425830677124422756215851084272706415020791565313106126339489690197329046537410629198026118248347488864375369049766545286725301903703772142143261797896697006319341870564341530497627891618966814228051392467979113129077397095228211610010313434901467616405303940207284479576752706642164078833076540549742721887547150463532775047758178206227514826769589142741247733120372964800189164928669791110460414092644594487736848000329739768458502861343027437548448164853235667610232433999990625353233574123230445555185662405780728132706268802201381946747843421947154655352358392871590661614971870243555703906956491194904236022624424619234696565348737091524244547487223412826722866766990981205134601910916963954738928619863576096295440001681441950067935360497860827822452484063939958370328629511116370087250826746070402683300502235459588882414586007465085714237111025644283532304863004334484403242785312061916185608627617619474856664768720072355326258354487914205586306367501417313227685410808217463476389559299028704947448163351685976532997644363063555496400231620349281445108732248470599877653784352994388786433919953837674169865829300281373390670953133479263254011882676010843056687109141036399787270131614752780525903555188081413915768095990476367003675515901980789971991283807204082096359553872194013207498777702192765743618664203855619623825186018613268620012879379510380530194098646606950220858972256820119289214880953466989849060373308374235890650664831678666221775045810437710705299761769596478577183811853288957135284374759654340698236489146513843440271896767135187851143420927904694311736644638859884595129391770589524570194047762817809710312824724185725933550415463228844866102991043862035891595854563659036736943629594632553371364729967469363613896182732959472415925965695115683936606512207667352625692148703439003959477566066002582453667426326300321751562364209387317774770691855906610132833786842685501510886213380123472393529489305229461071819799894813898610177735390462989066039661094745542318004080835300478054406629175627439771544126015138327161899144351620225094001620900839355672101996372370384202976272675438280594746676742591694497341336780827529986817444732022284374689648460679821057849596736832055465067742286919180555966811849198049972595888237819226200591134753765252774094995920915328844451726976372844790417456766930734287945696999223716962380270807755481808290640186175771519978781241445357967768380435382175000592682419221706731351364348099857060734278893512002443729625859923043587991850817600750193188505562239673915315397682614272384209093391068061782996637066045041833160276130402649003930960992779427105448953879575070249024534093607135864075291653040987740495216230399005567079906653712797106547494754348229964381942971076285916155299815525240790537607131467604746522743515027975287417159941739546325184192800800132716915586043076313796796821206438547185430468782359294442287164154548970039810895499541522213794854401908707155541359407786788582006906687662905614465610058569849442086628815189507091113327745148061815808168483366427350204777069498990538323366482121070603112982555480613391425713654840139188237648529519652955254286280349490873565085676868924922243805222866864762189931032336348984852857222871798714539879263834450822647396592233083971566065237444127973699219371587894741171458632282906684733573388573165120735611734588232733432478209770629921999938315449669990509054917745727680908314797675233311928455891005470342711565473833274213102646473423925856310339335794342938415861852127895740213546290654800661258477449361753552575054875456355780024359506994340010485095665263745306986915172589805509341267651502112224977137197515075450469390465721757752981782753687508023065551793912444152962606029130169875804107035082650975335239676176536257288180661576284883322788463276210661566784958390938457574793367214793618526404200636673473040737540893486097650021599127572890575484586627018009767028916907838503117548686252639419881167529479448099279084497303815830516672741862789220178687547883765294706358181273080008258950522495737390045866320909088022198826034640143604514166931740051806185298106388166122660087440180563057322999982586004825432147768822195128724289787902537973431735334929796042329018325929880391001839442274187465162237728944558168780710722247496838185559043866878004415794974474340360488975778315841254869912001125737514102112204658443163614101218019775834273731776044197054060229054440344921829230559333655785211457981252796037336282622407834294345357440090811926971596139807911234306144777813856837939188590092805877450722354890840762256372687615031443562514634970727471283306692528215789929623857329554146621751088334440230218499085446134197102500512588054207756594210703576353542497550880288888289410141808352536866701197819571235849996792640567750648713160901619105631324473832946680411123243933410715508959967384429705258507991884335130130926567647571162721890292220300095410206849430187859804972047341731901382660719176258382040373122955686409510824756675930261706812125729052715225215894271302466708259672401122522700596804221223623891943764731590191584982164090750131547671116263243605875763218747988240239848891139573851071641138598484668855145659597548406683251422279761499306070710711785408262222516130906818103293537776065457768558167456373090380759590611862488147787903503987057488044164535713351129791125494555041551992558691118442724854040222103739640555632652262022360132647543647774085268881275438268350348910944338070190557495591459762400093237634316368855886473538091000802479181615089488906183212061633494616754566541850937435591085288288962028508526768179529764384707617195606926506224312317768632550319002605116537607424138519136857455100941082020631631081738525010177161848932710649805610841696744375466317524360669353186424255416891161832082982496240824165889997573338212084341217557445466509996762103664187819433880527637010017373966308895893320190724325878784620200731831051230048824653874437099104439473743938233304477949481421782228301184900871226228186889640316935713478942988528812119363082891441756281729820651059545918120695003683513325410929888895203105162836782930760035438613671802291045039921224471582072789439379051288714352735833154947970499763097125061764273877571373635681800650698595057416229337901962523732320009076315358712595806915169939201644870154509144872512426819214916267262286415599429806361186891209718596744357153313300436295621864665416254071778467006096349385516354432798946393662679932742794620427073745845524939242764217136308284341816012040919427973768288647517290737059520627824323549664353316188453381668096367374165659739139034314623334158511062996795863172516890653428739569168410879024332015550446542782474073948894887089195596200352059003153682206821915641130972807502086775085080043306155295113781376413145005504849441034024669616919397273959228901472012614571756963290537643341729570005672776756429112005761896306005084115964287129370969173632690330043792682905457695403197306427626057227981282744368812439059547948450801936411549149512594319631909677430304834267592444446262956939807409963436050741630287436232161013145742208566769190746439544306013214733081562773605499841124594259480427334759086147511251385456633337099130077233627024197379898177713445954335320420372307542296362184917401539425776274543579787377826832921334122741715115615457684734318039950492644783820138585754320184354491374242063858722940434966908912048131564733533374536481664934261012459113703840201677847397897639600481469451644740867246616482298831848905268273684949586354132064656289267349557582443520478673658841787640663484552534374576282243881531742697949447566860482355354881957279482698728744666713189974737899327638913769973951007413027844353427967042435303727429773218674249630920068889446000064044911178079771395364281240350799268555086459851093058873475303996210179990563617745877699832033336049110146743795068481585687164930967487187571893583037453492248011252684184407211674400280618347869531448686251101560722470247924757191026843915780490860446525278333229839796950481263244229606399859986380302815486927983085954759767989168484051755804552519190430184442809037259784670681175905965069295025392939559519186248771567679846912965651249120265267035448176309487454303005753535217204031219861111121420569931968318847639875095786955029402287553828228846847986567559280289590658324507667017316858301666910719320012811920401641178529109097344722797971018263750936800721829859391675786703804563568947687803265651495989402422419616090138250131407184863329623618198225341354099421113825901811623905823980735994960303342024231143370542618245229803408618422772318549774759199082392987145838906203568713121389646481125591718418968274085056534405654690153266935978363057152469482478731307508882906439736343243526704562158315210840991470548784298283804705898082329855609473842231493139707038379151459197805642551732320940034393177006247149352836424338960656190652522546059878540453193028747485805346509174362804080000820488579731133221500514906262981001273834648084914308172368196633282659043507556063017628787606200149959367266757671063632658746619472994183292105327738134211728528332047548462485939166636096009218235096126187266665060152058430311069915625628052234693329355448987126667121766352713124989433449523215422400706820768964321968763599804127511563052882382002396654754962754548213289853036407601357034058108660344617150218097170380304965030035812751557348882320581098292279982712633831576690660830292297777420989090003536543558757748680384239512981213413789087139276476632181187412109789032396005705101714087199187914128972020867728597477865711801964157205907027052310378780673870471003460117352705449096787516659079075726878030349341466234993113537414473863145948627114490036225096775618096381600340914452440531593474683819180950776558389114178986604515729086097849031245948246709951643989627465725592647025244835651175177171049030277933542069655929368571910042656857264518686392815202489092369368188997665586589961419328648247930637464337336717319566474058406626391406123361365620669747728919818670135340769945945823398283191491224829009709594452113217597449422660975904266010420721729089753996940198411144304018009051243930450819680965757354658989950060979634013433040059942251863597636096971060728214737289054000394765071203093158821666630198409375602488234097756782028882349787284295996770360295234793606800543241610869637292868701264348014926895070363539500673395748317816644092757169681676718387606221211797202772225756943354123788458012503971823648833160060658380858418849580162558926085011466516132216639281793617661254045410052787238020300452796205828711156628732239621794729000878033040870427582838720610613439731775151219175894011674003500374773503546330983438782821335231851789114005972397601304787072057851041727128110093129394338181049796799444295091014977229963020906224839967190308734327701660564304528360557537758316035033371288612657394778482820763394462124468193215626009313875931542089965544875535464728019815030834300243855396151987916748367685462909637759130408102288863102929019447918377347425150067168723728621745925240467788411932546350846022011486422040427137227480522677111080716026471682545709425533164777487791050824737182403877677218443299680470010679113765467559580806968489774644596589424371406634521959968547744938064296180709067416345520302993100641801574607251001997149270750358041122522877903388275656106976753410389484690014162388119350640616414464539507408470841220348714335366730389686467482859317088785047516430178856250712601489325743405780026072657564732480427185291759397007066574843144240309211139020224145598288762074152619060830977696667032884235856086816582025383872086680451549835030729845306049604927493264320000290129030906827038981324242788324235951465675976524553144189660530991309673559928729208680506067667576901885905291188937966929437928702558708805760106938327229226752108017987366601129742453684945010191801908756417218246486760067562217166774796821839935224226673091469896535797728013165313890357211858066388498883671090380286733449477111104597737473034125211292957237919265747343890440851555596767199883642904239484726181967907286876341680984043697732907272281949314177742646168857106083829098930824539030899535850942661077074505383340960533932195216335148638110293997670217527512287236079697081111139825304666937324239868762513148740921710574630531865579896560270645509343579780264637454046988089901518692932448428797981877802935055640783629740724465112655212072990415154335514965166521970002046858445083942152365333858022748751345839667624689766581536058472118801330995862592477203589595714412684328004519883658937738534856467955572326750088001309357476854862509582436363767761151107681110354106950546381957223452813766119388883846215511350098461455025731344129464658654127115004746978242560871036062924532376925891441354735293868251149876481014898758101989466104476866710545392206143057239677387286004048234494541874692097871153173904836666333867096144349234042590073115159680809915827386808552889578402898841905140872511251354529987477702300895289215204901831220127005064401047768967760873106516094692440131000145372860753594566773542976240453541284210161709692075449097039079164849146390195870352409351788470998234232396394471160822256766771632228958378287568705946249215852351370019377698361208809283674366356579553707553698078676293904591605209353275417654956364829216423656568630655057823069068322588336325280002425306682514329414670649586693919617444358996778968223340309269634527097299052809309550526440531892060176886192460457885365905928331018827380525817531937408480377287502082210321079329699523936541541210606842911624904092031888840672528298953902534250174785132043008996284953585033682557857168003648281705141726630685694473021732855701069140986012580942904718126933268064402929269524536456653885126342753672778733356004202473431997532057426377057617186869856172313511982674798778279472818211547385723431899874880639463693983560888978311283888172800670982504330486076381869211168429857362322403989154264312042537594390814951804234478701921962884994472670010607859411545328624475520859914056017897803745046422638395188856989849016670634601173247629468265200577236315239336759032954907264156135897390920139596231988811869218883894056975934631953180575807420609271721754939498171509032976912524776748083872033442944027871779806398715123399589277874370523544243291559483813490077935181558057998060634409435710818733976088535943849031004029140094004659403576083002496276450032838822409448247317757427038329733263263274121000180068344884371572147431714956806038550841633056865454734342165230251613653135916183935260876015075352127871663059216573283732502664144212449655337856476361766495672350764207754854909514344809103934429159081891093734209849979205781631217466025049668241933018868924988572377269796694387277603210123336701544767244509488313209256184985014663116124274156719675588922574917072430548283141441582315434147434045995207913510841841616120019721476825048977820816432680204589421529580686248271411078905351596471541036457334886926339506383195460918820307099623581514770886512245006419538753211576110968696589884327105071281411213214665452855181197053256558246322838980391446699544970028665914308105764032639168789150135249707988416265999709066243145696180936414219139458373215366479218646648629475577190484021261588202703096078443763465399828817723926254388658020323673352209404310591883325322346035508614238283557746696658447318025174408617372169362559786963807417357491171787447956425220846380295214588370139348856304394970938661772948277049558186385638819485622595468694812064116769945619086236895862961867942139015951917184431729309147344851227337629715808068949225087623488213368673327372236756225595112168277709939470736624240451954608349351191277102745340589934055829577172322320285334293045676102094246105327041582831064831857480391418847377008254095679606591253069483923092641999618335164947657388738401113243224603392015107781202292789255271329751118208214827425326172898481987702735984538853928505589429454728217801636658107490307248643308699661159995825630404778915236060560097530238435855050692677066371408330938239691777822242797889229921159783491368553393201569500474206864759200986369554744930051049068831155645403847915438682991151340420872802391900751587124956686285060888839515942540597518634032522328701025860038459786060155783268651443812361381643903302583632323805091047693016405337860645523652705702846942323222414598576975972255779389085369428303769950784082284532648820201711780546259361535641619215075807048061945475914846440983173482660670590225471822000708128067276840556698381445920422224809431436262831961458264677572824510278028488214463198610074780879781153288111543877175159124247457109783463388866708471652222309006431786486732593783606648905408096009104468816611361320917283194941038218191874525214360903291519589894389782010087655457585839584152305947312278196669336366915878833945829354036673418360555639113193277961380471400199019232410672984126314494176143764814502149689788681614519635250252828862468652991426576936757139517473282899134312991218100715332608856497055010389540220027645474293774538155887571254030065374137527466255488112814274743935247590828340940254272786359242146715651511039815013183784133601725625633855856196053262202779904011112548524774816818840179923220250300467088096071931443074894897228485678527300078834399520520082882511125250642452311833751392517798551156414998116340496760727168281150403810576655940467934378260075613315194725740294063804611858416532563083142496138755233937968012776163626821530097943187332671980033989725027617952333717179484726103270934084290707325391834777819446097946514199577170344419693395184218713883436546827313219874846633068024206259078429037936288978083483618801518396650129008260957385444547045741183910669879939530449126167666949100130482812496366090113483503414886972663573837485812678486426188796796189508374451265520069413492075956434332472356250287086312390674636446778858619089735720887322758448455669172271430053835100981035490339269202030819729076603717596702022860471357274844699085289029933481606184722332313213355938903908149647515770467762192355370788345696737473054847618050857421991200242891253732751841827073413136376248419387685998774888674017161887168981998626977368161440360683326511934986020342197308647643285023770223770579525883803040958850072702222119767209352629980538988816938747377551031424633620143691126403297013367183046206838361289781600387529685770110167897100815247023058106164538992184679027871650383857084774231250788596812739400612069032972845664882890210349094843945609589088943052704431864771627408839294628637234892667803430810485744887426414004093982532861900282564722277160836492457443358441888314323867590001467488806998268493963707344006323362110912940186529433996825741844887689804957571755958737901565020047328409779814606543501314120822227886325499941231533874739773930472661459634037003082767902245567415133876992141002569058438234550697603681390639818962804492520896875743597955215666322891614009577876345710631585570494971803661658617423284236895656262659414962098452942339730476194138092494929971421240991453655975765200059022826897628659897188376172369622857369363922781983302558025085877575335310005517773470535020706090450485074949411800110211539517854684110091965962393308695225347984019656828686370854249792532965583517817708123841629402930224539808347116036231428578416465442630526776283793125351949237721105691111317551131480755807738937642676067022340322512837099439757326448370985464243663759338114044595709543691031423857885141580926977353789053318987772632795922085443300384550075392856711747858839411450814964544713832128684647834266171151211615653414100283239270303397186492980222663650906250975434062163969017732621285898532520284204764407508589959817632434051601243157457708891783624711439146557089068644514526594165185789182713514237882094907792821085709341701266995270325008926825195112456668626820161952911609652507031925038289762875027860587584988940607277160506712151468045655341330760315809788547290984483535203803337764032827042196961865387598073293165754821886852394750564671661484500576955456402331113118104447845350926556725680732338064674200792624079606710924650847390890931134399692090515203617248368088012011892778445713921819739930898017198891790488457799583369397124908528109266779270423272335508495097862292807248230592023728958134593132195420227879597979084835751761250305547202314451209386046900443981105461883077920921106835904334307183120474468631501669128000603234677313800255865031748730389825835400702163848176418224894967694972964516743426852411242355777421807907629214934374412341865494764016890774300926003138917793545326254750931640681721174082457203367979788848089825142567482411667512134842242481208850219670462642976649059275743642303306499066893338899030398434418999094938846473747282753816663845738241717996420578538068158611720396598687725266446218873839373312038612067526541593793418636994909710583775753087314868164196462564485647673131851199466325342835356567833967988467371401044002990388903670833617140570542488165528371497145142335611124317334419108540351747193903001505936895458360681325525670719573579412525371469102691222485371139019040250528656564144198049911889915111949836047304268427109323369865248125258798087973791963496628235710527378755823948521985919118325005848323136466817653085386278454966577400835564585003645097199001813965135260944878174514296593541054114955009767144584736256907560780844115369668043632715321522306762850358645513216574356534199828552093286234201767094592724342451723174768023388269926675712483687177006111581456161968802798935425743336040455587419032695359238973535425543343793259694818003963673034169531709882222821659497151849440774497584619212320348421806964318575446468445056388669004771062187025614333248435485028860176224747297503792435119295375182237573393346366491986531714920462622007542031575667121704028828550942156688322519610697483044012489912391577306953384944834102309719452526937996828918381610576521120513057474301605709836681946076607678916059959922549620846356204070494748855474845927164449560198324924243270750394345202080121933105087193757686136229843765364045708217820750719105218403455382728375183416489748800824169980879769980395306192328142905742511275964283035525766756422915807904378500302017523683745428947672724463497346891131710820425837540204392899860833132699766694300825193397226242073822524722146691590729111034247125331265307686402771689574035483225957670712313973682257962820138034864158199469179390443748739422967668103510119111649742618129606862602517901208446064560769203241727515697790108409552677966614327298249498350335372152431711331458796557595997138509477592971459902771811917797183113025697292785477656186705229221373775354831619489362358674380111785721121934713421447901620534030965793464507783143678316713868710455562306998814809790903300636360361251051833106305881202114610193536089060508959007079696837547310869566565839741697574447291476422289650303415263327243112362177792258944511126380868872984248118439054076470722385732746620669270239720317191763608673779338586150966999661887376471074220817779909708669567141359486266142760190521077313328486847543340562255474475991917084635531973565865316044786884435390481041391944784137990905132982772820865660633793731858307356314624417389938918607239403533647115092550256169160096359166236894245951273134263008267622609308593495170894792058992891745411827957045201119264978580666974363769904050921318472967647682073034793792207239681350147899168866991930214417293741148774138268328170157120158114584799323889571338315354287512376162339811919449697984937917928287914486882567477504130785493397853939409066188568259171336693718872277153348607652294426402619828452922099899940297985584759066467248867718194675001462258567218502002007129786423449122850536156066564676119796634645879637977671525098287485396335046064646294532724003106685300340032750241927693636554397048703954778563279596726872638298392458578660940031089372334514141409436206450348131635904122573048755993085757840818748367980945513540605677331204310050616701833653619018817028264785552213237144171159687008160678189259389058778666636367305782671120620932050644313107269972607570793073906768008001116783438986000866036335522023567895868741151235071381836858260256176142619193890539143911385970625150963879324028774062007914230249212788772508617139908279756646934418723159636312987044875079405766579724579295046666705806603897856767587399826313305915222567612667915489101449749154608988520546684027557962560615933633201688885339392008166953091823535555578051281007414366106931743202844401858293805203785339185971914997310676682314003109279248915141427579640818621858103824208237616082857972665527959005524135929261353095711988448584938603381945221043470131093977509382993900513837306352594450647579636022830519982451942939102180071310508559588357693756397401739303686546301962319255596883316632593471954997370168005087006331325314403571163876968396748113714924059259629631138273404477812395007224982520882929110366447317103928790092686408886942642125286695190801314456630893270933787052040537631791777138035989927114039176352139474731116482033567423010057142005817281504966831601975580727759656936447279477499154177659955289312160655049548610623323826534693360217806982797364878939129426201488564602687274616131160991957426542568761628410790725442634237523091463928799945705090435804191939249223673085575784483665154917982872325317508375984176175991147718074893763220422186823342971213862322825461577225546356490400069337995727860371215878289542775355449187963766459056754570728638949791734340077080625678596983456957027760105825033746793343708270829600840764675698257953630083881733622406289945329159653616461757119342673709690353745656075527274986198297728335941277485087622026486562102462875068344371728050708726082412848641576375052106937473149249637741293361200351615796940749213890989575514374804007715892510686813642017321605762890653266741144562014577678346089258227070997518700994232988583145915705369426110613197547813047058856046167069178314073150833425908861902352394183543161349966695268271273363696076021064111785521873899929067978558385294804288915882336488251897441170005386289563451392975944188919701593890054943631805936752025989304925364914928978624790915432297896802415053401395294852982886718922600303003725872273228185804848001890513358161797148495795654226634894995754210398515518306917093140183494319582791658628791682199458969153511930379496916922211082620830312205902132229873217465793785344488152225614870603410444742444608120538941420383655918423725757764793421571841778281656327928281400367540460933204525624844123710699316347172930345404100455848688178992046792158974869927371167867891560811738466260542052976180270734058999007701836880202507510354077767923191802843874353237572797250573374505611437792083360373579420069920570764907112750403691623382023196910298444427664451883768951286592363939392555684835639822333766913074643284910860137942368821532927518403212348681861915935370161957995307417238286262945132593168751692756071971744086145730863545691512361547348902901743529684845724558138457950228985433252662019449901018329603715450123908608174743527328291206021645550007096801149874295633364539279224354574925891589586233148079639532873940240737424596353530266445324920804195182635056503106380899705889271913563601970202844173183364010861330716566448393057056792230068114166246581737409398844255433627852660871498410033237961319541750138274102683115363187003386574977000844212061436714420283854574856248537720202622166827930335882900023066343945431636994774282221041736213353779874931882389334957730020578644697934072160956296802718634714170777462022933323749652740163593219828955445671143444792490648896260654624484675006660426099422917478586506019455063391818948227597876492006419444663316825816814658560984728061362897106462530267498681285921367501810482032337886348198172297660651785486373355587235493706177472960224666208243580052377623200554206538653055445859597147653990513792172477469278109329261049472582161307294725508295376804614231399429244825341212276225640161683942789590674273326444353288203040838326119624559178840193511451615298970502750962078226017291462278351825990190093794674138567809140304617161157458680665558086627303915510876678736793430076914280475542153014570303425592707202287384146710335461122574845258816692662178640330190510594018454283378706645184010228044948060799480740680115468322803194722313050319657866783834862780010036421943511562421579103767018516125204232647581483634307128191100055368764336540636834534167457776137528466853453672485642949914633715348672544710408330841856762731343221330330453761872876396292364802702215050302866679371180934569937633117056587535385787329402475055208984973161808259223954655238615519644608341099895622357837779034981590326928897771888823232961109430064557207891822006320630031787539838984845124830743021493143563737408246671815499531268886660546829926744634286773205013779740016752580332168455220473933336888080031224244093025873595815879112704666831174662039347535635547981809759527874736946599954089397514094744401436787895772661939384718712499455396076551479596625964813376923320880280942138878602863854278266462257508749019976239950570565908483181577861261397278195996610004897374395418597512473036978086251452972260912112581773394901650190037114772527102220500551990403618980422693259634386703781704254227978117726627225994682605777681431892906345218443141483182960382590530123171996594784843837952952382146194248350519007836443644599572979700442399433855485129611178013670266775518536658938788110651804375517102486979448919921393445538573020736231293779199712269118106993251759355189180254687956817357414410700170865783493326077886747356428617452682348541847764150291023071974616539648276823391551701202857380617989701765791860785428634605504642612366542142465982321989247847826187362377476063168817672113980498409552047260235172801683917310409743880047914843521356041991984628329053757949509534719671397563835272010319546505198442966714387358414396418783964123038443350360426576987120381299293041254046191592835739176639399350432602945728314688977888326067137523569323853176917035619992957324605317697834451020097976165815757245993684302954783564675762580573572122284982541200983533468508029068205152555066593174478900283512619397960202167659555115147563251641959119072466354576256529176946225838757291030819101343943306287667421461281855710126589081899050897606127979169264549839885818143290169480862024344601813763886159620535282178977292058748929995086118537491965556782394647018069371321207906339086229964250841528605075685694779105845500425451914596048608505300599677785669943534290158836218754799785275535227937045123276915688228908428008840752300104643197607002745177209433769493460330772649492915375942619705677171524397357938984325486572588252636346061603359378906171744354705664101784266084552609397897538272151079553817689948944917651125898017807519445674899844152572612792008425569018109698483653061841070758080102466752841632676746907062034438426404356021024165599343528400932650550673875590765450130396099691651348065808429901402588335639596844442162548940348299832430281419911188983412026578051781081859948822744247098306471329637541564758137161220032973321949096339007110577724780995124015915934813879491848387715348176540543763784036660188301577680603832880196265536304078960737276882629097876521665429332309772900326442664917943636463965821291739496166992640218853773263366362979807620818676704367474048159845881742117652623718626480579498321698497131732676632030124695437501522744071468664541815727805998135921388219705499435532364779277834309978606437812408598480520946560335519678523609761838036164700450573668176776106087307317345310734150872799960361811766517318949139702009783485480490373352498859987236042957820577336665511944364765968450951591477326034498424783069208050314055432367138225508356002789843165714047024171980140597914051895071119758712409673914298754474191755691253454054583887496971831764804727185260760865246157597304150015534079920769222795009214177571675222264803270928193966709098644859183112394937717319128533462869594459286313843707447776068581785975994454933360164387455759369037209115648493325637925905624631596710133959346507574742039403771274991943007976469614736799964369784216800514147285198772981624253338473176947029878315571553740819919651982874730226285651357153139393908703704807605417534586572993863558841413590123850427108037224055958742983519506648836472835012070716873314581452729170729411379934795753999687959600402465605826162515162447748489429683678000188211177144790875961924993853927766063659397531908516020105637054813459608595734970586544493198931928309510572564914306697000147978638761304231387304026066255086607318342065261296377259573718220337303464248671683652570676804414378019331409088948589143528882628130868258488709121846466813039291796635503955573145315017101958167773484304368193520425952048573656583713636039117597705980200594654407115704606979616735551735192450898615587668657458553607576660431572615126015950558745230170510250883713665157625310412121055529094427775400956216747990645727892058582011890849115964997153216765348142478871629056810880430948466997056782149627329583195863013655314236816800636594919546888054227670145423081762342570776739732600447583314196781639776991005766786049532272451562480016246373583986946273481107149302096848652130395416784814737764920834266802797031635985017329226108613420085406967637058547214974102592834936020636323463013203532968731959978890021990695316768537236196196653076448253899357903787982788408390353945944251080804467468073559748507998473470607925988057715906969515073129778256962840722067581369780289977713523152521458588205399243576902471252366129053059655414223170513551510038860845549471910405208327521917284518439168863808597020970672573289619475667674209534504585381957247189535601407629598042060526486047578168080155673187186292436600708206498060628158022069125101196386056623568564662315227481889034095287056951005660396657627978963179253998828621501696338490665061685758202065170119524895035764513071184355502533045494666011784898628310220216938759490902892563836353293055990894441991704850158872440639575342691175896037914300963038819958347293442898111769724308418660017453441661978364233565145699636452595600131014010123738010711015448176636434721128936834669435640400363235077206808816615387965272613803638223063713240717236477557442592255808663523984859267516906867139141608587786211206665264381484726663496562448152075111694646842692042167407608179433121928218316370410687645391168885269853148992706556060057791725645319237905490541321728982244634875616693120016264668827271442363910747087929098001408356566584582064422304865366215575764962401535353270350978529670784918089929880967820156050708691192765302816070311670035485644366947540751863344900949536665817218996006081950575075394366814093000973075140980526684460580141746084517290385531071597318985016147606193956935032315223407160590724748308415515125317550675483118334643014680947419867387404138279947501563407824741022064152039097176638494745891436018045946282055271431973697223757774103625006261140109060544303435263983589114782864313546137865879497988247391182114457781578780174723938258073205556073252891044439084788018808169187278109994748833481276776607827731287244311064084681295578289708341090049645795596977823056348381769775271404999517139300835170846454555894827916311828927112553067717303275070792555901788398440228991255574538653791383815671168106559651115232428219428712247812145005107377921892282758786428066679100041826155107196306180657443604360417891247808729464331763951864331215884198822246922567434085087838561774152739769778720526774795539800255332301530268611063423792399768120528860622581170653495099631356646319669278496052813203617529871589976725077490270611296989471813959725085901540869578329445022429208887295672048489540406312683092909018097264841591785089862959554586217264277530095018998363143990851177578498428479611085050261695826337455735857279765701359100525299416146151471499919438408891226969960632578966158766600657397414491580802403032160942054419815835056691559426889894598932756061584446292819616090117433872667939518472976118890647566754174151785513537159898672478721639137549155246048410705824570052239675983599528760179297334131497976078297475927421271219705036301208140634424144242048002476779423095906790660331503368305778862980252643700241856978345311320293990493878678017480780749167276396297893470678965074342996066730445731285711385151459057611660057592884829774153882509599919579567231385483954743260862309314192087993237092871296290428461273532531476089378800392823996331909739782094227470204459256287075797784153922284144113267685876786734339404386826934319835926733520381651350596364308501202574315958886823435122310944745087996802157653513647961737837099781330542146829891498505545655540327994636801895598594884941332308898310516448266952896161641712846218394625202249904232079492020032341569430359419090446970701380895609797649689925819631470016937656952286685928451362796771375947437166147028981973303514910986278511989255908866428193749253971576904416824480447660020884542314600480347438994620424605474606490048444262093475376254894092891392592786042749469829183248932799604882168954074847671422663795734323305826564115596444755436396295435415999025137484656483719027626049389195755494517598032788196016026528779341401437555321339283682099781803111360737437575983141240115857598404206340461905107509510238866966471727854633486990020659765425063005420137983258099009483612141631934999275834574218670581758628247513154886284386858428895830388821803738187280494099505673459723441431588736336732834483621910625519593871421692186958410250023390295644860930418317148004935130224039078846378578145190808579198485203679310852183548454630398423924907795398834019835224112614880411722142551323750856929095903906813935781437915506602976797341071318448656140909810736628462988330938752332032678510180976696569458800273773009963962362088533679862867113699866225606459395672077234533958834556838267351256642702565807570900125723952651308038178500517587951455144462512701366516956015012412064392794916197156439070366331636313318042116590769367063210777928807392488056118676280310377603609807753019449751259800688783042599406297597877735604077029843523635147281752142160690304946644170234203421476004926989902591167057249951869261213731360786478001849183107952315440367440367660678098117159395950872216204719080028941407163118846958335054328463325331238502509365268383210273674287287548820027189177394987736215644542322591046197574656510133181193155361334695441747027286181358691835455220084003910520748252864618799814726421607576420769087523442229336107437065437545656559781083420143348415412226779896461929226473473968797221883694405711074848866655211596456515505545430496400402111093955524605417399357325390525322469873046267293454496402881537300223185280970548014213996380138330521232846935673855665324103217394280290033266835472484005500260810632846752630387104398445151922142088540048806382378427601031391906332994690432310915744713326643688551675078049658669635368551173441111451445044388580884872063294566041690054616105662422564216637799714827263630684982828932985962799490821323004357850467240697837605982647409874269487832361265533855474965135338443573195799711541688375853736646587787287519573728489630469837410298574833705788304301919330741786137034341826601953329359202476758187531688592680104139559694869673294647620276332271767136976544284100136211300571757425101771999499242834209350558811948642622459035680604849974967778001175746903853074087752573988321282971389618706892731951271299793373601372841205820926539727453574362146215680525540003262971688088718627553616342872618543078093621793242155399698219674525227743180828386608127768319564768001930688505573752688000477262673797982902140721281075272854629229154927079407812586230915558127359097552358967743867035719097483962827098532142126891246769979142998231172962548496675790721351764758231111685724174764908786483423410518566113314420656478349507177540963001129664262153414151220839837685562040771116982168371314603169702045873197264635916318696396788804395893879070389319111780483421750775767865348661729392135586194281154008784364624340487042903109884700711083464351562287172859777592784919499694275839493923024503833480347038429316656867183244230182561898666250456906456352588753327793300794255999569814008093509656380731622757416706537141596398705962840281067300510100364199864186368134318671462837658582374965576148868280461387122471871488321857645434968504663245224697473356477115925243896271696774228956007825544267895656799550258096848854961868994424932410776177643339852212470548810293316682473614259646003115874462686991156670193275900131524908747015982512867955218002918664743858094916749619778712976645585743576601366995855574515549289648151431087916028311705605058754537353564526849534143965198791550634244064840428508705154069959246275597144296952936395846405172157523425821566894155183291529410309847537985850073218673854506438632750772605569206974626008357685490291968522055952193589800001327684002351696238256255479437892233333858379298704285767393926781830778905217282221528340901099692821846645422024889575710256535838417109015528208745309812575225202640228580823433749078443518290778926215002291724750495625481390360561564416638698780114878399314021155427067158185811269706501606321345155269410312869484886039960042628587993756702856011791673930509874884591298246256158288290113072112252457993280899457000262710774464059945597853548327286012513885684122926606908826903393016487456869899528395713459435854945000140214272766850052309210018849512445121220630106720441156573170438120354443997626348805258470537518562095149779279334688578080610486329275500844806237167622016295735963400310260018532825121182021946438524829795501474844606906563961089247982199963463157655341518251730723723180946729463945362749408936132934137663979588121710882567870135135549787023875116352126796284387690277183468819046348990616115346551481638004377171272275789581563692887443552719425469339528551769366880456704621365280722371836406391965762102570715070637090737843121809585806081792042501521461823884251047947075286407916540635877772974152332420663162632130735678714553432466912228758182882260747167244824134250152650210825226362417834664500916318122808156315046761983350076643479818191468109089554715886526807137457952564071791307879251163673067322031791718467936718096848640629588832996088848050506160036220824263206231225752785293598493378395425531617878395265419266881070765836916483299075679290997753163181343292160154759683228038981254701251832930235351986497811353371115956569347112326393245362507887594358572825080256034393822263357877695217909054735014786914183091320649062427125509487781483419641566977202896816967166138906874395641327175938620486440859712130833307744906682363772446738153001374499385325769594757748984052771798316026840868869234342411705286777032521461152540793620171027772033798616963128955563175170623923974352227344326005349888014693810733039482476113935875051635055536595318547964951357929404355086567383041588735287418564510797944035871245331020147859217968433166906262145560799772783577512807019407805736696876211554271137603904918346255152587663568659967821291189172152792347768862400249778839465110496598288342803087468497170257909571661079006974702968793088980460811842912328548478290243683475480207663981338676820776812789503339121975768323798402351592672926956874216284411817824586811504809295108954994386160128412254395601267743037049197633810656694073134597000623756265464186493622594582306525495171442101992092078629470543865394703175821378448268328994784140827506372394999870837918174788244450937505353200992306469473636994199540951252899343670476558326327664512047045607516608330420233379503614920114507394956227164886073217319617004777477557033583148948729728795121940590614617238801638040350041929041933006595165498057958651809457892629514891513241215110663526594958184544787639429929351114747311747332100033455080664902903376432698898639930220822344918785967603163986152973454647545667193329926612232409851059300696872075500856819356160914849439530967892255278321243726385734672444950224279478378923806767663480175699027932751814007170209750122868512249525897428938347514739629033377313462299709270098304393247986779846874717562064716290540643480041079702464340928922229495383044498148161973487537179250796053584325073237298356568387298351779555417195879658394087041970630804418160155939638962637221406297589953272881251885342534598351646453060348471180949753316853175582014423167980981148089031957468881620395520471642389501574880535335878047594271627590760441337329400086942667881725168061651221594204606736965490180763825074025436275667640490826559910884631036405300321469013399244576690257471898179227495571129786336660627672477616703033246420158653612854550852741983519009040966345879877887843070808454607044860505785678219190436591282612122537858541506406358435230648004055473937254050282022022706909938940040393306720482136923302686629848594269737182786957886380465941016021676417090695483812941325401536554048477571365032669930089933155056491297468057419904608558894306998733512200269597718089845946431078549947107463669090885473130889236107885954530955193280325435596918691585400809107716875497821831554520397829616631706842031790682762592951213134105756082276062993609295671286968325443387697804581089742073891984476341694221493529632088339910262574107996471110066578626439918840282817805994896586188838608725156429283610770304268758289541066437412625421478047886195810285619347290690268249868491304467876774816374237708233701326674762373202674688630690116494314655403630741714423522792981462714712155794775961272389813399497580188022746869481547638755261116866903925979293610897085593245111247080404152893197730030460455580331814199793464702305343855157813027805834711028355451141913784891468247755437397450042895704872926405118937523257151477245393648407572440081722547854420361134923097725814367455777885001931692738998812358638234779359644974707829016961155511911428131081785018727860247997765311357721550851644418376468906450135577739538834905579086090139939775858684266392415207023131624977455412677141026301275893921037948757904367935724971324928311216176364129658379561289125736785241271202072629287926680535608016881309486937223790629177342111869974705188710329778853387044946662457134029229386801308616052275201881360092662512212478457370234160918215873947777287401088799012601072941401235221760172994101625717793782404793654650257203303804442708949747439979631278749261032566675204153152414017889797703392463489700819892713627374089598318164235350435927365304301288967732205363000924881337824696265713561677916188228551163029948725492901137145247732008106227088482709861222040508928826676033235935439954394742922692957153490377963413425008859665855656054914996945760542565567740109103743555618978341190014389352085559198896407040499511159744618894328516965426535592502904752042523724382054018224378924764783482989721723687349232124767263422066494436799509599597941864840420227036040466754889027323256195570851154783204316475729181299584002224292328861603617972290378110464730571017723310207354773022876078593945443084621443625685246375377023192945517606271368192019870880275519920246480902913713876102006551051262349106635600328666073637319503959629655279392009913153752074440195783751009378608483989452314281082976918580880544260264427699962716541422878405313475335350120957998079849715031658244218842001354967874862979756974498010488917933442792009757614281643853821461889842287584306696406015174797107885740089262826691745231142457927129166700069741183379838623070892831474025581177837779085216749740995742748925108806890725952553671629611131328423340474010562143242187434048496170824373290436604536561965993457815251069611916368699899196937959023708280489108373371730900987666729159941852178747332185474180608147409659926880916033340111965577618521392010729869648294998241457260993303490589169782615189589467436833866802622661114706522531090678310309000777496467913739757734922418549138219979349899581545603360278630911625531860847599756193663745707838612490103243253211110029710002440544655777530648510504192591260688693163932003124676284230662131440353980703578819659279157040281508740702029068436061129359559849339706931676562691092262589929025856750732119825236673614066035742754505173012562176241564222414500620754257413404126261942437030506383827904913542572584637594384600970260487319311284290735391917996568467785397387899640178949641284877438525925751074533228220610535900682535768008978397421028230388763088002353750764448049104071646230736029640938156793437911699135145315214633457413116029563169380359391345276547729716526543524211110332331941222923193593370904734934815158202942966519329298016196557797789976395013145849470288974192193459117504807986022104179484309100406602952463618025475441845034400069858286400170000624479646527007793356439640767666836350956276439903417856531727366010896293601382535673886767034457893861440424214997850863982813439213620817468650156169277764294295865610986154594081562754947111243211788345167813769857058905320028165632551872993401539938065193504297235184193630147794241852982595594545298410737060591058352277910104156379181167782840492856291277750243208553197306110950903913634102248675570363464202492486403090791746007960586814338988013452138787182532275762348109316275408902122409357653177532942027077122100175501470469071443349675771525692482266996936695766440499189178000361468590071942384855403493884899774244985407255545801627772337642290767188512249407403567107227569616931044327676825855605284750760276203556440480787824551560870812590054104380513841221850094911224062118873801805897325008945997586208840446104082630384279841943110528929947140967201751875343755017249493724718310785787541515654744893123420648917614111845163195603637938074542566649863728324958456102756906562320572195617656952945513185866074516447640640626012755261847407961213377318167919427583817722411242110569317362090535555370924966476695438246583182478997838537447544438745078809401216142652943283992868567368657388494523664952166746680731144838566151580431216676172002534128836712541087017976017895035326550149758879229996101988188938204734518017436569865669809689732984243359870442299628448250135728977691052229697726562292461069145619967136279637128165056229332314656284641567944699686458199670020019597190709316333405979058636756559106004987820451354696227724108239633173808029574808678803626616046605788866725773763801558585162333615002249982332616753986880550056207793645928370969517001027288980837697494648411130369491768398777334667883182750461371553117285252447085480544732951007693708846973234960249714602850727084109931411152634382297242024462601696104207212942230256367233307071293989477382000032177156009404230672227481508570012218584124553420861943873730297166607120118364971065526176065262112861560105362452457227276522098950153789700676376324381904853922009192339472573054295064269802360837622513310145138249665977103264435603224564824416296779887669994788402081275579461627245223628331685258381235484432009074413727678358064263034678726367268570502470310213221457436843811145508188549376375993114164161164547024282219075196367749986167215889672415904533776017289923192861653421303447099440649858632765636546583055298283305640311269006482213234765060320561586897026008113543415781983380660911301179027708323097103039642230170829088135179740167208708094584472815530957075546866526799747331471179600264048965981045101792328062850776996416455306932613629350125411044067614039490547309598923703624829195207193285978183696536939447175300007266186191595343435647830066486192054856955161499456255150115749556523667090250855203822961750179173029542933472123588262086176036416211542185118796771921739588209892951917377905446528769513083884831637464749449738923900089911646878282465832738436423667110994172091942232964990892372891811735135894669175349671112432371867498546810884710238586350529539086997700886733820709008404361226794267028757726209162875612502408455273033595573492032414462580904095187505420395095389222692691509858533988268439899521121988260614028284460706373221669335294778310563740765102336677886718976502573823220889112273088787039809737585959008748596268230156304585554457833530573682380932160945782894365033789760078544125595236500850823403805621138383773644347086958064660640162233635460618049101824099235204409310779477698577393941870935795951447313048312524061035603547831769510080171620302201893693451529843741458285482176878232611225926506039729626210903772502127265542056305670496091413206486515192839268033785187439521877155233129815222075038738003038851941543668715764006733195311483861073712251353760014765246739509814642695351690500307372047363679523955181929880631689164500951934526668952894499295945236113953927136907197612817516149301362238950523302073917592336904447869367158056921799233322467557559026632230305595613493698077974701699463024265530540279796329200838616821338531198449688039074295485783320928768361028485330513293715659466118780336947268828361447592563938197369900389794606768475988489089392749802552657096726266596352818495611165577975927634081126484074825075753246339351768567974341197780412582391172202770156555110537218485857314284300652350091429369316631084564524930435045670393173090350908831499796756212060286865504878667214681478462713886516575793017270338892024873350786866884427888805973839603373049793040165936428484776247136548958752213561069204056685405254933878143662163339917921067437015685967267816744831904533741959358138726780459773778388710686730914819484954299662705924137856165068267500990937040794346116213355824598311946050493887109014848020969296951520439663071814639928929767286439953284405460106061845221804305455083408085239735646658706293412348363132635938806301861649805226474778570719715030860230637893351904096018473326705477878046931830255851698104688230251779024744523231343213694805199028153410008483031974397550862980323287316031391660173679500800038031226186480064387880763990466716725403563210848405047240942047057741129898515263259098302832038205595136658948964256568936743764718050243595703366086787516802509450832097575624365220245610619731947898636140104876035968803893580736767613061377260133951649387850573813686470238960030895317407852240697767423513301369736496876211671137171125080862056036470122778433178839771524070291933649618721222497724677188256348904294064330172403512165943950101644271349161362516942976040565841338395190802699713156901841884456701979240365288768980138881020057227339919781839896741430777164371840119711270997979651099103666269951496634512691370572198319614386320114903852477085604565716812652980649330206760885295800777786170788642444424220426620222393428910529945071348962902705731896044559096941229889740563896459975919627463100049212159317253796788431934063926338492732042168759440637485467659183933212046596673920635234425745226974229373058496332405280394787297483272161669995002960889148216039385177802063214030668655852255866096273473887067468827945381518890754136612824164412834343671334795171985564180901155727765393685611078625686084635087991252499413846209214141168755687379344388927340131837749141288455080902003511620756120780864152807590600867482992821406856137972500744397129542985837162671262938090719052201212369651972393598556086528497618305708723819835690396561499116786512868222388837031250921729529818257053347088728880210703626456748603437136694298192615123999498685704391043511719077953384153678601896733829704173542239701560453858314341952788920350631431586046764168093397806941759492201386319390820771899942889756136712491276096659014293404552067869749047608144144931621524651974192603535400035297979429916414354803179577202752275450861808260019352784746793136910234590937751430501373518437170998345445179461878622493921321727142114315296992789244096854588204800355621887945928057800251344814983713261911572949313689354258307490038140586819728031534318533772174484993585898656308401893951622812601512955974623579977074298693530856823200861907592079996071056168977089898290884443432918384235215621550885291443167115391010596476120948584570274432559141360371304101197852406065891530397615176383767936100603471711540124290969245294437267245827288567005040694461780896184331617636685879390577208193059103981873854975763995320647671858988432434030848074318950324972119794039376105567744580927332037843533564536613990170533049763049654840629977327925634685196648279373002709615365456378377274928588130272432037643506350980786035998753970370858215801773453395101891449026412378081072746679472430302259155358854265117115466690822941506604918628963380938963680032008532892063395176684097166409031941940698327683471440715710674311732337463973912462443088878562968258045885366092443651878351269978110273629339358745679293955351710116983792374774932812842310340264516433350373355300227825425218846959986740540265992337448631054376591761480124445821081794309485506512669623171782940705138055431383010541160729105385762732005212616263790802721160381853132711187329054798555518969883612863185541629482281800258486121650849103413164242657697777150951139167129337959360243571093632610085903841936135895833447933348006487562308075394040629389441451714717461318707898812568274642014780866132448182789803398738761478564148638683481056825643961366428991651142644034290450614255709433633592472710938954054834178087410856935700000740357088523889730975684019408260475385085934328371211508408411667373655752145950668420715603350043609396985780141072198726329079137230093046699524358689341343409711533609910793354578519783941309362900266856890308996586117092585577939847635131127552709223057067774272076652995112987395553222991719149429127739492133130107230607255892839915192660579727372391771119875097485498134437259478597690525565508964883279985068817062264741379980747553148636120579510489154069399987270765252963221864676676987933942552359015302854472550986871291093276288903041574414389668397616198937685475739568366618472250409402509442564548756623661275675364229093928517402774658863201840452852339993213890950018873419740812407733142013317418878521073244316342853153098508869174308198092997527635814830168710904217978806082546208208500487806382020324338019869406162925089334371912756205968028003682240570636619366159589021174729738963261045366245324486315042526124543805138207330728130824759609958473925370345587957571312070686334517856127987171701269084894658175771105669294839963709384506196572770988461679032708845019262485843443061667415406669082952315908735784962882355995825526071308251952460295471693511694852311419642693021806369661454465056684060475580293698988934566642899511086315660194770455168661263877328996630061654977978421940656202136241224964924324668634156851578436592850656521528941892348612512332690542310461842153814944269126243469194798845224414459521580040643330641672228295610880530123054915744486702872480368390341971205676628820083221110318818511527777410306777088599117044756086570481655701149123647652942761934305799620467462766569407441099329646155545797244748650132243008464595790629628001116347497283308744852438014422601917387282105845776351047105693176071017706748465094057589407429638469318677519149439818872381986369942460688362787968093855598464541367532178656027965430852128828814093209673231619428001258003038716823618550012379042795270357192091660890433222178134922917862792016627145269788225514293057552695154638483810303896580889344730958985111494996235272959504706667001007499414642905079073550766656514472315107550556892406481683677551243468700056703113076386477581719422535990174045457568217531203514275441642782504546990019903658933318341376508622460130587762552486886984218682218073930881188475896630964208585742228144275141126896112227637729526181169990114764385169919962883214905785982246207552568081640704793935792125557755934117891888960756840671595471516980623397774397210586357526397718533432184577202127364919615422672698391936151841267033693331210889854472214832217646161436144434401379896438420332616350814092910277333632678329271739743099630942986112821080155367920151930654491438704473466010047753122335926933276005163723100041080466308294675310733159552162944077347256992290440938430171647675398993299770509863305323094559549204986770988269349801756557540905530519996194968449507712545474478270742129538226165166607138475548748466901941171817101651572435191522915341921634327378818388061443960630072315083292223546159843217942372853042094873202867797217759934313598786477427803686695355924231181190385781578602066072467975832549814663604155778169870619113440321639610474221402360435159339882947336109469103309066890204567702404721307055110057471371754646141308378908118128825743426922035548369004390672617994195844421082045992847819607037640719324819479241233951150907465785199582293338914780540762957770436743538032046865950727705954052308355814188591757364176978378713325675884486518313963059581419804051721030674837405401963681703107327723874671769506872149977263838730239051868765375384041475705095250451438598033258350591075442043338111353556957511104406423930311047803439417327683744714305691717885110063275434545137024395115053374212316455353915046176898501759032602765519519739872458725660971302160728676200799131649530301120110317719729910988998814834667607410333939984843499719316746488768307479719476098704503298258569121178295252561304680874052382236121627216036160406968918800195941398860488494832653473997555204188314762703766450057956966799080590142619756582068308010382901427984252068313288571063812744912009849607616211614932308845306867056930860058876086185695908491305480308090072927728211807489689684025160666244157531794705968981553769727359529761334233035315981206516251192134012472800006548448102464970586881233200411525694051234082042620107507246145763801726740013039671328236011053667733769175390221488979174312387969644254768249872435914744367912817399418136771062317298929091468520731030546624169106597533765709129968169772417403110660601932513494591345463764296124669087229025014175926196767392094262703410645350953758547427426935121064960938780957483161416767194771206544473188398862440325964121706444284014777101844974909167766890042939668195459894538366438769614726435681012621067848530168735964507461928799045025000112182887244729026058831470859072035321377015483631854575364619887010094700158653911551685714029206325006871178695887901020685310969512451762407577227457545596284405184483345103761430826584487183157897928689519294179369163852204301323952767947985321587284070756277371656458766339997886137040783717337169625022132627287132839297453222888710676503055746500203281476481932261451521451898653310330750173086648347480031284962751055359406376500787928217277615468132013603387712918845803046743182855673699856648764677155765437103715171578687300508476390794797657399634719290348482724004904256765190474704308386725086093116686216543843239257019381727813858215988769152251911547160525063313242060787428463752948335160792752495659795418415754401138063479095582370332269974914678803958460848995311143939729156788153784925091348557553269259053570820980298516734628754234320551690557213972045586891275123098587936929125578557867220081430999527264524188833735301237408876533386442978890451946265843645487558553407637839731163797729722239312392056973587920460152871724619860463455307917674717138634230964210738755229351162576932818420151131269127400975943506743918596444622033108453332048594639803968095321746640576274228813058325845584043892988435093199524413235454687541472586369658750630267848191955436058461312864412497261260782169160039063961750530808307423258408858652535209506109912241969767908761456390327348635831437873120836626020939876713671500289595006083588826242523404329570009894055698849543016597968963036479516074418547240160685723014261083504382652390783626616918035554132574776143886685558077201191475146455740506263672608943221878538573630102683299107665386600749937761751308684509138109958702658718772829066012689887328260822421984718024480269472442837757869794806955179253449669715615217891980078129791791785405357837812740283764694483266006414169921528266265449256471408651715776705498493698071360663193485807148844399501346229954215971020597641901129664867060574449041066199406572909089489577617281984114141162395570997490388024555077167003434229404773448433252373253626549698593681002119831459761093599616939001383670909338020038989425064663079138413782359659276965221020688253958183537958104209160883398654614323231197618129608827141742951617748460705796477182183766615388374268354138843881824801323568946694446153544115265456031703404675869219422596806874339944320140774599673403287717700398238802328063593277481941836895515196156270696516787235279537439256472352730027984182768476540641921955732070011518287135715655426040955166372453261696622170311295353052300695500803469860664755434878356114215802166843681425594027901763393711410737349493746313897525751358814052078526232153142258848349747715425346494687730298832239280384303924222272463211205145985245315583687077674399433919769826088151059716647828535863649174993616746947328246361507553082294101225696254120680078598086266233024038820063331160376446274941571787327805240026811670312631688088744912958127807987195719503719168083673494606255025140094396708809007960776738119516184355345512343281703747973025528758362480320316102379584247858511104819862370603911957476384139657052246843876962803515274315022903663886098799970877265773609907189890647710876486260003885760254793364783310341509764187023317014705654895276408147490725242222131882183530059121796185286192331950775792175178565016640891970308784032152642936562159570055624982173896417879970907161106831971986175992610746298655137653306653133790611592227076419388735677874129569726570037720323721045016997665152011933098034475681518790624096558262682795894421535582725567024283858011222230883141779326503655031970427932836041876040368388627572202130881249403181607596638675123097133174337522156090538055996517824803986464074149105080955229736345783398975649915358511447459655718099203833708188102620974448096298675022639859484275220936319503603078157206436946576031557448160233721871017914135256670423740256928767405229048374215985749568946863792495450699832302234339777882946195074927574372198963136431897263812954238233666441145472624185588431160572287505216509104767560337256808155770626351188813811468340590067194894226656522203765368734676965681339002275124464083407344000240753398803402276541792454845609086174460787933597500975636365401282584418244613198493559666904643898000484281045872343831522666164880816190245660130099971808471370894566447520119661305731048412258317481818880554535205757641252253144256351751937889306572295603626708445678624715855348998376580465129216156931918976596898029790269203220471938422393960096598421798561350957146464660400234882625219432293461523760467856799578745499953447771610672978074367223765731317359541630151358056008603092969618168938525886958855175039800844599614652562471450892576303737107258998925353441721488949233457631783501524108778253211496107291501051056143758552068358223723320727182602444807967449715011484329975371168968021052802209047467189064931914946552731677725003932955576398611370857292985878587208411443179918323815897964701093039606906051484482539958029748134033699883263635808875413089832781622995808985748725725513733580824372333946652070292815833179120238843738425592449973478674745042252309863842176876161597898448728821821948389196991124145226695883905207428180292076013623732779184807944239713276129913085134326149536628027416410186442516602806718968795656317859370751107957994658584082815450912113928880607955599595135795258888687053832676517198603627378897640566413862430725463994864373537431612435555056125579862025082400889071894733232927266924178808013318447489900836304706655642389558720072234558650033277084524781173544588993556814143700741011498230635528261167026332110931315842442663113028326816612967963127248532014389843964057054942425593899201350134009775668572140161906833742397061340104831437690980138351734171941866343127690715776112338200706388605989267925298423265732726377495744554577241611342117528980217180465481213631321797897873378662980214523040391366750961337071802897451794367822304149096477003548934074826429641968872982754217431689096226173147528531790253168492618142022497047229374479166490354631416255756975381944812595145875947216371293074883298261916661293028849904812299037761245108844958824278285774120124316326990693674653967997590399824290670812154856330776781717011803388453988145907551975458397576114533577852092173983351327730627836996178699970370867877801003339781367081399533078841744267442645031996112607052495749557819287364855164381288102503023267560680786053247024917631357798710320243901644630267454219210067853444523651757440323100652401035057150342639702795137614168769939095739334624524816921130286905485707408141982258732096572601243997449318487165917376434114480656373450835464434904788863011189660220852089751726856432120097294485964577513693594870406394677966611322592639497167508106123754752876044821860440675046354669718692201641447385568038547878786867805417465371710101151433162373471179366996522277760043710928307964909067013277254835418482282685133050953264648762767817951020033747160946290072632843438186889940296651018211058155889390996150803569523366937833218007552781256444829276867517046710219278202026836994436150647260360996444243211288618320020620986137889938987388324283055693691559029629429192152599459484308434071349965530994464844223715185421550201682337436568193394167177777121182833529749355750876880064112361223828715531346081335824606854772900000611169839916404685332787177574773277183996556312334306043221645504083964283742604038617159355016389608976318072687342799560256573596647117652577227484124475809200823341834893015068636021822754706150312912644362435755657187827585669430787737106358999860315327492199219851904050652503759863852771746191483039658664476893999629239151429792997994225221014030383599732502765656523805990949712373184396948840607572213388741569999961801928601888383119415068033581006651942117607552784071891103793103384827993402433643106952524276418936587456501736921392858603297548233263145799992427156621818139220208354357653829440560630862866829638473557418216752988565442758956468835215190527598047297952645467980681218731276398415020445805667428768133532057039339449386085773722449458398920744530741494773319293159150665069154635940324744174306813230716152783434854183073950038539210801834379707901490857487307022706968464094414365804856011046601209393020706851946131679956450361207103922921282470833860384409832571000687642022441690573706001147235939372186310559671284077297050132604664122211310007760062248759742271239712304198224205887730579448189157766333495939718512084686612838981061829410142732068167714061015634692438793321825377023124216875551625260408618896409449824220346693012540715284729161116593954477811939179125183593440025936657247304141909490488678151386616239916998781685228705486931934042531881681899820579487633169117380657537402031692269687577166110237402967952023695657451333716939530850837245121199568284573674645318365064046139677773232982570798958817763692280823279482714937162870972853304192835188962129312713543535623322214018622859186299763485542443730194853411992334479778018466825118430496315495212932561623475237794286123513071082225356992379200486619430836324668179424198172283007355372434589964036171237421333287907045292398346022482748744091973564444355597503500319188361867815186775426418796388559212136956133085953506447383497166873463423200000644776792563660272373479076666269901426178244807978508256412680890266539265158347981386841321860160377116138436248588500872146275598175642812985212533593031874930420321653124333268297781451531662427116190827249628407902144068453332438943032524394137621800258778675958796738074168881892206354287539073239054717553430318988588753773260271638014405565336484049802456059064264472624734395408800188886540845672948877477733233680154447060661609275981442368345383585397430622477956057563471414168743340137028360116122193397489288458517843594375733226817696944656329375633387013812472021233869543985012817369884087785924025419568435518667068112818194162542018376706864673175146782552964097680245605358547680201260000603329641476289015363416878063253043258271226811223222893729986427689826104795158605434985037367299877719324454562153360856383340540560819279839445433706065294469430308707253513402840337715083938703861964986073863686994079785825560658144969554733440454745223273141787083348139624679866601971490627288125440985333342810177811823314452627200051617135412141444659173838253182181061463290542824802680343746881387690451556829478699634062886836959819568647861528167769094086035937059920346885608382613473824222923836481267084230551547548976102925380154093495811651980959565275360683562342451738515019490352863484606752580088756741687069417396839972516121421907787948641511847153799221007918788954945494518431913953041531527554849955903196956696264799746886257169261995296991118650561464649181056914773853351070459384543053046306962690776273542267801958327786414093345634438458486105291568247452201221130088541628382032498197616965433712361946399737085941041562348670652208942145946662716477254511215925956414735240946360348750503590811211114136856765760599514091560666781339692913130944914114866048330396045932159311114009416423501377091346517800298232410135860155023982309770240657129982629323547737639349664872142960649103709547036292518983846419624928664877125149932785908522529830620122085599736465148587239815282212334121373601796031162452105260790908721897645578064452979295699219690927758668658495443500281969543400220150532680833590171406414289824861673928391281056550889298227998658335271931825356359343057118468443031672555565747573480489885886505704262159565969013776014438550835756688231854259079171725344532800735572522799915215140652934446804931633582519033047891384614901851030730160718011177892560210243847184102540631032919008382946131274362372695185858158989558092277130098157321193996841987750916081140094690810813858534037114100029161778241517300723102519235621550082752403769655873551569743680927800293582237491374976371471185544381404612593531552064781817567270954159266252394375774132257488565485521744505576793509669224387276299638347090486375561863575036578610829942549096435299557794977378598463560829801283624018329832432233323192899009052329093533484054756633678459298329649508303659204969362581034710447984528338550722644688802820172343477067811402241694656154811548693334182716602446544292941101544561958007074657568406869963637571421764291464797697100425914461710483260447486666315858267029790336208160328246413458829018180089100087367949834326447610836929237623846671158377555974748101281893578981283164328394327743755797674644751941391818505369721042258932339059701169685196844543750293691121369385422996401170708698650358250797246073397241958059276852088613106074193220505706902958120670333003519412358850108288990090358333458553745600583477204296332315113762073915001224775195790503420618823771135068192100527439794108740591731557222907917036340160906551641527714277622319301391312380184339433957503569872945386111456879842103664660640532534415749601549458078660619740340946345914303023187891972043064745590901898926638273392559656121699305181327132829826540857710930998924499001849169265629803858246338445839472976543559706021434028658030778348216479490835809343492971598300828748750209528114903883788839942205167064138595035757813770854078476647961589789908716472313220693501711177841388307108114313553929859263627793946370982125109146100143295277467510986672096515821926343322699094752344968477377988653652050964816428673440172546321262926045055682881887335832987077374955664027600612788571303907837415479019111289594687813319662349254446363204835335645117461847262301926756113961735247412372299786662782707832485553240491162819247778683794717487403618262254444415266413785958477656969406410881762023721003983465406106425419555754715596874395837241191758121437902124900476991470146992488700312862799575306651402351007323635977236601051281382627245559719350618311081636723840699587480188542841488511616729473183612020781310311453822622897399059161677276915745375334811726533501209423986105628481637309617199888811260492189660842929769302259834383367582056673292789984702197860417746026289077285805562172680917082699645380649722890370161684157099208802789002532456280630031537550068571862125581314427692009036565710485296743169509267516917014618342977234257166845139901463603767898681340907394833214349954911925171664094013768819279026425346076273650316666391848947519300179822138829606777395229034733451928391119162764873166755254119374216252499208174132234181529741180873124763904255520335231273732480167104545892308974837123219518412072602549603818523181896109009125216457847239035550962674005537807174604083179704867394616163709763519852618646634850792642203331608136630428169692607430126566129571467216585222032284974715984042226927216930579881509801908499617375685317687788241569640109073606540887592152391432007699248663994704907809552223917314517546274581100498907082509299530572814767694875518429139401701892205402136610511301768901303001224236341003726002897467350638364033654502052997638882887523306966146778606109920471771401914533034344722218108465619716718419999982051692468792035043539891966299455437781068722640598389555668567469171005418809855611208550195010597498394686719481713045745081665045628759291686876162472650404044148641576944146280366863285019668746179445025450461699729352229908327302662297332371853105749285573665745944093733352822499337013242691171983918314207233718976190956745167331964454099897831649266688813432130212652251265287447481013941965697720632429579801974188190805364344679171451863880809595065554443235261317160223518944676467128506261559022261247624479678449870530698507874290140832022921460638364941083118383796404513088758005265562264221597315664020424215743320312091617246008948237965836254600271873706951808316138868221164077706625630564998128472015369625386243262286158982845210103176919002627849098023458404886818517831792893758763965026271116152512540271732640540816787791175007391421001334076591175287406869299985324664091358593598257687531331005175558761631374504794006979865804026301284643563306455069285180297735372082915614369335866138150406798396498565457026272400238402290502105659166835341107074321929692747717179206465644184370003234224178713347710943912112242055566609559245762429894950288036744110550135372836932413055120885574048796995252575110905580564024751771465342644514737389312843539811597635618814299561667804963073360433179489125210269962348691099913449454281124445051385625872353505293492148264540144882259558728325591697627181867729616138273315284029816317535051833950589594486914801456902950951413669146396274301049455876280405033442816133046986448189430473951352041212207747267811900828707008168172908951188410703857574864343703205514035936662129294154727014974321928991250790696178038907624023553508730059074629723268738700671910876646323543867095611433149069800698956110979002080299036249460165172146582540605673109262712423805786329094623222725381768081980285275985925281448589849877887235096281691739523586510543877977511700774554050857081930064607186294831422915482011638216998763948618614327572539098981484984716420903259574659764434967431954100430354298199431544437252916190197635286455671181823363628522243634834945613959705453295620406192262853830241362381363617874933137685173847102600652121495751037719041030567207889414086852249791365863469173273292775598838968426800234988799980516015296099229701765161202193112961087925412382471129365488809854951975440016522588046724037942370640579930110807229139050582554662581822266503447990832866253672317866512099847678354434940786622349648033265546501317390003099075741058528398027562659359884889450792756117061194833743587984182427994306366226530729550739111558470257811811095333892967252311348063398837512160193626388550465153517795691993952947647809415457761308686541010232123185387525713259461650876619417183672561212427038773530716176864865059388027045709070313862858770920003117475599297378592193356674306231031449381642583022077613330027042614825560184412824214827787431229864759918719067913064180806503234047356551665391423388993029373871001961529233535806606041411894888171857938557126289690121711114027179811755386798072137019455198996530391020397973453716007725270062719091201170411105403917512933555395057102501207402622013164803236784998289703352591956103810050170167772440734527627414337982304265437329228480977383323627984576265418508291324223623084199562066279148513351941815852346608188660166208112829265121540785489697529115667305865818191177537429997485077610000630909232278105936115506625748381323610309824741876469635721569657326078714594856305521042354804351605286846974734300517654860821635857458088210687237643416239608786735599497802923325223393879341613042621497596226187121436322378342699523206668640474795059989849177790051817806394112580190237420900397989532661863784615335277581934070564495237368164018122046636356054707551352778338058590565336678365531570029729647142076933001963069351429402016162214299987376328842868094138590683487220136101164023839509344836682848356334625010959349158683553415716093302921164701372378429662914415048556384668806560541071672855528355228449551585579147154142301053748444642670536672870159229574968350802266056854815300199008326026756342120506021985463971183238224337902160786041545096602250461142504672260263213249671811089350804255711101553898431597025053944973609352622524723705410532255493908783982642379319764619127007183946966370800297609516424154613908256124732672826781058057425377733587624643510308184357361845015564486927184452797298637348060653649013930044101507857361439934420325843721589395929457865475208051912161326447786859321115901824865724210176128196701057076978578704583241347182843836923441757768565052334450766565985472902872177564806419866261244343417332399118709453744266497381287473964963270791599333296499788410528896901056488927602697653332688507061660187156624544357798653682899330505937020982125434609336387624641144140540014035831420776630666377691014340155667871865296585515177085154549563392453483897184034048206689896343034938307300360301929916762204521034988220902147705918570630556374103283663960714368496844940568108566159209628742975875783924073402223964569982206973065719020731885065451527663838996963683387127797121956947125258299060665076089417089928611134304246748562329030995572446542625941877002675924958383264288084299635957534420148019153416924334967226561638687672675140116649218652106813641757506479176450080874111438218268076955722956867643296914005925099910070886165623132310725070783299531854477440335014322496773319873703615614670391371231130657042643584765804391700475524218895096940355831785499193551159752317893392247321470355548837297600475718553143425170135257661008205795129315461782061196681782328516428602535810921469659197527837233201337562505577141122057311397955799009429911206013221392141408256130246233804522923109355159986544953821854126766969789870611314935817642910081764382188288688991413227094505809349996994517379770257985451351835593185752147926986390027090189274565283273469517838013880174670496826029568844427263591903638886698960388308500259363639386774286717928542676888068307130345439741801654642831268914864658400325792663616490404313325878648353851045518130955809100954651020161820473049713565038195003698367840789247805098390177864885024180824383592502260296350076014906282703684132621654375187175615616130603160994671244177389480194024466300942583324844704449382521663331371198934113048327927986221684877452855242986541347534556591774578203458930021540455007528075358696766957750776529248656178645477140986326593294577010207129082127099277293301583950393455446011668884661061112597345293845391640008386536479474438772128219496108912470264694473923906387315570662434354012749655498669347456435449294955252901097522280230428025424805269658957334078094995406321064966363156879259393001521597907327185391028660660490356784702673241790327373204169167035689309607764611068345531250428068927716719306592401367073820454443648291036489106200719757644405994087217865042369507648839398001543995135546173743530749531917862706805170106999675612612652962802084002296688419641862037249692106487696858081802427751955674741452894775454890732555344460252153494648802485279666985652516547139264851689882495801496837672454661650077049813545184424086348708490548802345494492741762748703842945107206870534550958316240065902094367016305192332626104809561533623924894130143164953051529365687470878000362897667034032555211233342212182961803941727496479908319997095358916294515155800587848114456025359341798917671399477246783000448480696995142185110967405525618290232549906873671327292602456550505581298116999622041611681105720441070686478968990290970709545317487542303146775622851838928267855496531193826403583922135725464872264442070497514418828616027108195733204568164574535860702246950612450945730669449751079231612995653814734497251888622220524584173236137728417989976327494047022287469636506964396385023896288602132160486572465660577128365838459700752979579169676960061673228604432632951734335563260863091570990353149287995493185257457556421240852341620940612885459563789872043860802390681807072228651448541443143078401058595689570813235620433558053132580698353202431568274125031824232238680152867342134655740958522416957246701356275907734759982184506673986904500987726380464862897684357463792042749779045193475948420863119352471488962623755712489596829416960202556501585961343628847119421397400878199058608067324496924748357608278980110939760175875030183416285252141330936028932994936113141245496760778775485847076959385117606353193390954439805518205011675469292619268897850746596586579894352080562559462325637580812720195775020999400335676942617305557164537249220238283351562255127334935972201036572233747099514010315885027072413644305325876487164246354387868046907854522485523736531660624213556581540271872011329684047439788909550481877660677992366796424294883306127300666038653904399683482378353466483194892042296188099032556306264874940412937054210163937093671151215734150948010935584552277657766473642646490975714150834020040286957626165733706081148077258309586350884787178135489644474039172297527766883165495444881306427144421091775288713851115047861206121292244280425635879780974801654248244685407045796716507993538817804537157455551191799831669254066948329305249062456226832681568113343058349682983906994183796917775743465256179923991217844748138814684786315968498448454319289935554929972359360303941604013001255439203445373268388519506575464040732422995781548008102349312499067491356926592443642094297115069545703168140142919746023128680150986170613679544555683690948664547448230260994015375216269882477004865987970928654454735018730581868301169805970468176040360165371570348009018167715141695890336943543570531359374425434795479654301634691170300736008885859593369056612188101184666802551400323028560676366954270650907198188722377026094621314933712399591459295122594783704585446729183510466712418868649344290569405036224783807559548160834447374808307464506289118242150317472042590123575136057322030163985285850312421482736408314650395323062684697909148958401321721646506070105089629717267113676909866974802234899886997564617897233250667012042622847518644025352085459909055063407568551661051133760628675641263313875710234077778051593283443632156465533251209906418367760037951832465768259822677399408726776178873455147552872667678279501951520411732185664371863505831105172858638055657046621127043447955936770547678464677988626024258626179939267928543246009849172170861184512229671520966541338769340067437802099884430858656373985109307479124379495272420655429008886415339913243406084913590975262811709992592463435072466757249312150940654020352109051087589838500655778516281841507786204987956250588983441619911811584013296018433665940996442046656154815963195528520087742553778496061041455229238295309653327332338796308095199600663940438180484932740743767370552633584525271345101948137250470169699854970839006334693224050912735291808921607915815134987797025324397221507221968082595664662298574503202074310727494567742889217155379415501444161902621501752493837722942788592318377492531456996494879542346575805272065973581200397355014179817910518406374569666223341768646528846592070419781903231336467613658270635599391843701639993107861096637030115070309124149450722895475698450138810007486499998477696098828046927388322951657429601978608002120028425838415464550754188650816424908340130124337574018839699400765661096290143181134571262972371318452323377258928556793089687650317682407496413506749815031418414482056288820901558754061974209415240098293400661815022562397876659861498109208421442572005893607857519916459050896401031925164733765123502335884880979391871428407931058250072336337371890801770225080051330610570372490604614532335840066666833682210211855422131894239049733548020913239652045388072083679264365699517767029914899976479920919869460774394284091144817594243609196044271705692589763319757564453019283158148007834837216107647476111996675968244972814044513085513843474476666022446193330883030013536251316138378452826642585909765213855621908823239915008375908995463609938572048319991801601191812374588519141867195430808556612146872332210975031195148828219509419494097964906202935929362459866818539163423810999402045026841867645615794163220772742265971881191174349781943670638234888389598446611803458257497320666630027086263354868020495779141938979231396581566129676187046997034112142991695005421628430526414160177568399097546180064078682660794258003994044053977164367524231109180519366917376163754350685726219020394619696740092136983414176029080579283973607261868437836508808355539435566330230617053202795615584929212966830118801160641095584060020428275573774206191279744690638875921031237528482062420062318945263045998674755697027823736266377087986940678701794415310825657978694975998085533092562525915608237239453820079344875857289603912719274449172215761126685798645075186360251391642582714219915442842447939164618653654327114414798191131374280695243728620328126627976482458302421940101876961909443205464440234545700959126478506041613810116077223959387301831952154076868173079872522185509651835766165429815212873844171363622334641687187104852505126753882124568251631805215735133741367774056834030273120523006867513587654919438913652068187858866951210851014010524801799114973285772794372190678020609944367470366445516948734169022953375218345428026062377584006934691523972904897605384873432008937317116864076700984031769416757660391926602259929579583604491837612165210593663555253480137504568455571984945309351711103500303885949226134725197879605985116076391962674077293159101322235190342617501258726141254302272451944163368100487964459344868617295675296935595837957624281613021376042445266762975485751968580747789298687756022225845239697282173946160626928315292011570688971632238364607568612877364558358647702861181057216202942953297034857661073420989870331581280582850556283736882362317333912535225278033216828397087733307929115271981749142315397475759734063566770532928118452435588456968432195305293270345677376506809317875775623728158124623179589070920368667028198255836107629407539877414817298388201676063784475413203878621269629261343130605883122057082604101586195059777397748514663613339767709009277601333649456588971006676607735404646057259553424659195261674992253488491415881933731581595012048797548070657916877588457304587289882592992155720818724156204796819836420729425768118988622820168343172383439106974882565626079585202518633310563792459036122511664296999436717813333149894766570718830857479405230463477931532403093264299347347608463655188653444643526014052240129864472269406753362474200699058185937665016416337296777119799976353651627616289099516024569569386334063904057571446360718668983786138960560218939374895985516633502162114110946195386899618303204233098914786513622529046759621367495048523943367024903345762545899323130411548460001373495653999189435016744049750458300623513136334510246208399785947808082201801335042888553289431175815434947096376945629430270107599550856532680307400768595707715052513201868181274396368492601241693505779628847422776510461378974796827955189399944982532897915933637069972520034483726387399595806773141377584646875704130468056355153230464730691044099643400302896734232428851078957532030848199152373406705457137120877094111213046942619405581123970365862597154245384477067819883346863001734108966370440731782847335927409527085110634271640898735344833258599100919931765041579393016537153988679467267884761469475069098539861806617030251216955355798528441151449326000509921451415779076767024453135278885376918434758012336190640904554888783624957494682732196446490893492196976375198270496692989664764079829167953907683497262352378126221665425393232986652995517891905980039186227061942119775790397543706428147473322700561265444885083938465872920184146798752581618670061204599355673603766117853928542421818883932387641806634409836141760284211437501982116449729214960013658938567358052365160563647512815840241052425167701193325111456934194460161791126291018467182413504516303972498547113658131326782897982803192093612960310143214238148952824379235317925048090019850555518718591858842865103932026826542158368494605600998628208281055056660558453174132680221971937611910110202577531346913543784246073379752429522162203506596149253174872729247589466623367945136376277660935150901644791751008416296370583232450773254832712812902713959071957074573758801856253096738998310177150342787250034093818093240735324404478544488959422646289606374404395798066346204929733700152195254037276455432914209100847925319612759244984358025627763811772074209392225773240098321577246544281092940208747053954627293429623772008905497782121294224084811689921845801091888604592537510499664845356051155709329992382478149737406885647729731587657372304163336105646220418492138882891037518042579379947869788519167328205271599583580790102624560587690830739229455156395506108283549245699017383909765643016785680352756892623587328051750581515327966484198049993418373770133026868371252511277524971111952417250847731894769009693678539972108310954600980230499855712671402241738361604271984495487760034973550277978751081951817629765903760212594078673291033816244101838834837734984311614280356803613324916416063300564719959440715688035013907131981482096563815942124556745005661401350205952721816011226434241518358871950964660999216771329626117638698637882193105059466798234833914871320337770385155792843255055252287070187353590165362529441791358316401813631325922955994039781392532286457215511286233978745639805797947847128745241740891840389395493534548677391433956696870862929743192005697539617965974710408587267919894973191177511946113411615087565246696039986478509405351576593635662149773099917278781921369719116685755613777771209388716491647063206574042305915697992658925855185087583834226262035271922350211592530530517905917688814107988465415576280514127519243858936486839254814249296310040924079996164598218111172786122701644835151484847908234382312449092147848760579344268351958122949485689027354355073068355756915559058813837928320980447733403810272625524071134197509458742470038355088918296783368701925800536190142203563112301657623878687034004612728487895925789209020559159866045193410786673150272506537003687715557871866420897016794958084321958985546779655794270577722358096685921397099779614832368438048033460785429356245833795036902095371304628135921807160126598843717696415705808341611694868178497916042402478358363221206570015959710045214398236604816442301382225181778890070812688475588801485603862336597066696712053447988964268006818555206795602448633374370241388580784518231307442673084324436344230676415778887802699406872103719759224758642579557033224239464697332335775979058172777655541344700954721154727082234643903263023917970755631940913148809023122631643623006329064105226016282952744849849736445392814288886816977887873831815879849142518982839892858856293066071571681485650611229541756887413795473876589573629453048769889660605491657029607271302291729763122960140043010463092547632881707009452550193573611291715834480413521240892866698488556347876706251671336989212848324784729057978646133380941715435427219665034865264804886625843070210288249445786176313439882509093921511913575058320674408600288345154544232076874036222624455708363955919904056048375323724683777799491041559364743794438539947578430514579899937076671978554815840014956383130941954606392127337087098294928092193496757202018860458928840256486941463319389061043113140337237320411852331374673292363719106892583568069470810648550912433764168667830704759848708081790981885963129652553007942112542990100744467851533729560897237854354636422470717980507236356358992775031403045989908741998653435980439508872264456149313058427932984812908604246847177547079600748519680297403551841874336337024167176183731358509051953229304628183709567482349250892604324282312722240473165810452308195840548399491717454629974973838341347833817941753272280293416941967609188388209046526583404538607643099722713304876418047135510145691259114170502195951739411897615244523604135140212490112235783334923564695732245670055436740799038972354572154885914800885128535111232056819195742616117651282903346158945651588575854020778810646179693929803709116891521013610966574601465830453495486523323537016293233761859149646254575658521222578977085999156407212851233237687685524339401472595639886515159647600233377814293483965512706438853335461116310577578002515026856374236314789602434049678874437135746961613942071577058422091612425390222276543824797417151902035774720500789668138397852210239958759543243039641524577785269339270431065651007113628696890082180241340276775422869981381589575258027300128680736014244774420422443157211257565521454050941584666069184313155084416405966765187717162959450924716223560494218827455216838548886117486140764672445499227978354804041133908141514175417579900821401283825674447271806479835993865763110442241631712422861495703696607547032670959709075384104274447044429406555054464919722982455312446619125285948204934429163348004054079956901239964141259182462444491073451617757448924222143677708157526929895302024094085947961695713663576563789281899406697669924634556697622533771931261930259546527008254900730054096874755734943931526989925378446039381115418282744246869156366986098561926284692754161898835550189231743278649560883170258711881230452383183404412369576507672985867443978517474255400730196666994140716505183425728606832990257333062867955292146151827575536650209747735934383287583632394146933596475919145422067023427835875468394931746723037964800101741731693435292782849103391795763468882832921268258939552601172091234402840844112597636596049156123478736247613587808810683945041599542806518530061026931853631667499801043319266998248510086439272238509738957004530311787786368642046092586616576532472705737793130991637693002676565168042357719461114212385569417635256452293255000194434456296863770878746753320920230558238811715468061207159304790305787181411301012788720526580003784537409609997679908612265532569791156960984395014105929076591464601920568478462585510004673160577765364142741231499036930655891152300096919211489426150837262091682650466302787000836041227121559040881945687901929081801692852007833318066741853665069457427589897535362242529915343762927964099574522158246975561273438951532529759230860752722795703667895971563687413778788817611917692376426835877856298822435950374734476358686654035208273783579656828482526090472669747444064222441579218713388010573920481138343784349504962941924208557935106745408920439055364027952458442408628408378846507181190841717321446665585480294194315424452064842010976743549865355617281206512659054245807284876627269628421771841782115658965075726297110896391261472810305086345866715343806603630427800456957365356680514045354743904192016780407155678563009267227240499465967287934807815040210202158619310389719518463660411088867508043558633003068902917678078984253670263843365448441624436547392939123702294077205893280753325251022783040557235683808916949668077181984774495225030342394753190191840172608588935917102577526632013246351246341615413023877090384107975932025325812184517704639669865632166152890911744882696618338332694449307037039471806824337638311981353136647965010589577662642487099964650823509792332860963907018551035848287618428624631374099798320528200105701490633313318372194106875563443697349941144292898595881735803715862063813586262225573640085303648966958047352702803020570604726210152014761574880786458211855998134531346008247709270032253242483635452559233762130381056976966508577249717152805568425032962163978357965509318822194649244152835250112111786868454443917791328256423061921515466504068996284650214617535043151493088800280152632146053947788555101972872841363866682099220147806694371001946715349909255173096214841183264044940128585596352190618520370327695633784246129399038333425365637008432168554565308047962450901681794522373825988050579988810256709509615375340438062883127728887591488631563220677706709186649759144206962838654829408870096121227671657097894993176617066271585922558009745756399646268724362265336807928698229811199857946401551709777561904470110615918255895427364848756543629306784431627173746232073688979243262814229331853098974777598662795802283356315028799548367402206119545153994639301083778164629830292629433069229305035235995185346373976027096020579889336458724556501168835085671131749823634106337967757386142935618309783017877559715964408836727088811479309586824409375433958340522389371091835840124291668412868718004260792390794044240559261365281210729184522496737839081325917312360894826479244484662022073126564349508524856837564312213803439980534023992201337285613043751714467984202588826975123584211209231284081675048679908853366555813359049575830739187481987694597500954301820945651710854670381319028957616347822808789351460555004361798240923195267540008645337983907671544576218559355118762616730389108014780655652054731081201107993829997337173020803378364903766693093073141617973740799348555913118090784459555174042890664255313245022105165816328285397665644999918915721749237894128677392410151035085370708634969959034080553377339854190642126466790457257536383303660897724029821759667273548167591679096590705135091053367329901922500430754444408845898238297258422367439747335689031932852343637961160327268163062793971204652534194362305900675647732635273561793025647850562730233365165430433125935477328176958401868654614730209710309617306595082305186215910374424284137285177179227491899687996884705344000819829746628176612326473508753708002328370853902146223168564945160467032633046569979225069374031473942327369258827050709141043167713422657857198419418373506176631381032877018413832131493889011748361866138030684380772023393035331452573948107150691771216279308889853506568306031422435180822479662525383952382466923752642368375031413415796480926140354260128840635372993166505781433489169697702492673727785729078838641346567851691970261350616016004180042729646747131633486198810257114753998199445481454192936989336695629323008210983294873462833601860231891096703833104376939287153822644534028559710982618553302867389657050432801812170302571035448572921591040201665238313721377989358351266741736576235500758431146242337165795254928437401230574723551234793963687114130930172012760473292932539642320896585648663808045513727380780836698130840735725012120993178623894853832628514457832603511291702719422873780091405002536556015609852405145437797978428138662337246271414901173444067963694817428392631288835946869558512242251052622818071819829505525231430337471931961502802998794546958770442800359726667318558264103226767742160830663595288338991074052865761914565367326952419189148627447443293617277368398926177967547139911026952638194238229027392707957836653197243742311692201476414921491444853313170231185723312693159484860255328517776947926373973242478705890377684483306170473826447833439309727686593303340912787905749472317675231105878567333455658334149734334278474019248166753792989063056068956561546655840919413225426517448674525962789509337878038389867474141225783441169346226139634776142798627316903172394939119960852294630866756692710930203245607539285048590428396014314014530570844113495713063205195125714700439673863658652798309200513068992693499791639539889779554932829958169616393272029397710566538097273209647561113493006402969628462728860329465005021383259422378619934409593313302233430880061389135322269592764596629935549610653964532618595906862965834805954907720252824851277400120517467050696709384661080822914181387506622986653847149372451358984739904021657287330754955546435794105837558178356777880262540472885539356999688176519285057095255156222590947582342241193300146820455929686378448939626233512588262062458597981910908463022074347069328338857725217045259663051075439342626053121678810833714890250877054524646317829134716408736440193994469330474860094752413186253147969548312916911986089891586909113544616756193343905971501865306715623829078257199899395811141967264821416060188987302904464663164477035592627845003458808944967935330588676333197976339483138781031406346125467541565480102481431127649784238023590052495735561334871507854516480334796706745705913082965053025640562921083803717035558897215074320334170774382122633898801116831832172000646200028047320467870874908608108995194368323748300620106089221388700244789853370310170289730417467641466879965953377755044234856384947904082798854142544662865733217113668408946381780457342496278491162651774444090770290169953905907717813818513645498647936632763090319585854924443053651645759016868046484816139770280303531455259738320882177046430120456681951812777750124931977793259841015650947301406029121882066203471816848867361658264086957876079108765944078054365371322586896474485376586911743156942580404900977574911950301878906879070426661492413887013344946755048351929660704593647925722490267483612245024106513922874865448671233833551552197210724907943630212967321715684669170925040883433758772559787337908577948887135598452013198814531747848544333087411177268693514745590079882061604825868006187056781322912784852444948106857776824769138230931645912928501756098401726580617049504474730775607395239371519562022079333157082744828758458293516514913090695216266044675951332782925652607698736724788024059266047579172504321607806524554489684187857321514880032343673500897260544470659747342955899929566325312889688937486913803893130367371249896507835716167764815302493320620569032356006746499238602608887506661067952537594615799181319818948773905540923921027548418489390358342367718768135484703265670924146808444732674224027116083498154150864283198508091475327884839132337830647062581174123739393303904154239806056577142976346611640421409941226161773534817750674058934900031560018594527062690082068060638893326229762010679741081640040644709792180193278892808936026822828380192875616178548166765195577425005824608531410424627866712058273939600233227756190194716497505108886052121266482422169600010545604698617177224955963395350141548653324014909160008415644500259291296519048435824231256046818740680577734384591924184444726919522174260904562830465365411499458942282206518923003568172572824851159658799842384310763100489725328921532942935959902390730530993228837950418233785327154867646903006647377982526878275949855516658833133437944504641727570749935529892313182582911406015087486373662058164427780628279741329843258869042488246708332416691620867698622255400735156072361481223037307035697830487653403097468014223371753839765615313566511639821330731950834473843926270392462179271159253089166718373432448657347036426609146957030581635302756698988943660131429746366175704002686976434722261508260689458892451709966166503982409352225645890142346025193654589966373465241716487525524667507081936518133549406809561083590400959346962497430224333229158514128383667745150649982314852610627558051029655476893103087314428084079839520073162252881260198070155460369485294114909427791002880040472366522074598418951551232070255866570979383466996088373008554316643812945431472157107213464277950331644547054558702779749408200714794913503956919661018800099412771750677873488496371871998462507567712404174344571265871873987710578111593214900488423797387151258989035377908699176701784923196038136899949082255146124750851690285126431335745625198281789625535583459452130391256983516155114540111949560379667754135206559575120790101461310715504393958028294731873910644677994479085604863127834654134006541134950805216908980062222401608976897149708652197982897495459326252579739843856642188470827278289024153605437977256455994823190883991586390732103805408506706341540682717887146162868172490900026972856647669922952504778147578992101134892392400223476892921693723636849848544917959113625377681204730224340372812998403180974321487390889292696971817743666350387243665318703100283301464015272877765018996319941271383605441582134489843056374931500344793325422490953368683535026433515255001171553943678482246358891619964914515155882619692770439675278008467917921058995264202598517612023303599720571692654777705881408746499739598769215256541860262605251007388488088572608084886856094041108925996283516403109785653650866525444465687603589714988489172660415893430066337319775054581900346740221846375027016326403707954229959173039504752554713693337841986029084197406569027182602145870730930281350285188839438090273458163083905695025346776828780143877999813563587773253688949697123719875096053293916908064331227848385612588426571716483186548644381555186235700108535711052484375665636606714581457270957434551876362226732677210369892307227443252184728328001229953214101669522976104255409879571661393947470386440121827291338951471635328438658647078365054059014667850825372629940115173530324528657385714010723127240946376569509436273992699209871807709400694847908881724289841898180132462782465397077045921101218846462601017497635913423491899149707607147683904408273558213759239408510261816169400613939328293690903685236582712292416071655093394070571935307694045316703776917499996249813946426238264900278502358005568479523321425439391153086117572498689386254917390519560431198379613233040382946533776946795744648709889122367804215436795672702443054457229137009402569571896929440983697311672834682793827121218127025373670754926534204060274567304223102638933742176328555524960042738395049373970643482632575247502960869871784071950536331068670594402456003656781663390731666973208934054747584341034362275919405330788691740081440777251547382293688584777470379603066127361323060812135214113429205077530243848681093202987477806024776941069683732801539908321170531104367599791661125428507937408576252369133394400727442740277459864776742693312685756064743007543935667887324468436363226954957900177412767631315239177419103810927094399307861293413870415753026328677020574712423764951472802148636117355500955151176974717785036130598280977391485455918982789980693724584976457118526015367558793720436729248789471206916347284867189889089592833637288616075480432196087984045917493196028256991511659739828725992997391390723663732965935186986792535065562554677675780906392993218657311639575063750197916938217182827783858482455572450602822239644211896253680285099368631133365159154711974891217919021868657426722334913835949966238384820003511167144102200867824353495448342716602285339666738554219878764382251792719561054693841391985084060717056834108799896916879272663300903454731469352285467708238540706160461309332244133716884980519455210669993966441632368212053033340824578793631182363690053882838198645761485840784145654607832765467592137497683447505494358996643130589637544597401650782695441751816930806469546896719464420425499437852696425133191185958771616621974423109649191786520586788034986841619765639947207684932900181143994953302963039453175707927887159146385712308327977919654254102282558511728029255964931549633176380360623010829326177054193220026884646197412359981181466786721148895286741104810834096981417863286546498630409365720775627764740826678775975261841735355063305231927377786109601980670446598947258093987131553761734228971809530216333295975941462896690685630408578846637718870137257308170739929719127542832707790854030829080866522158578051010641679233114372770959634459366825616238773660060539731709446881277145287602376693253309752155375070995685615164328265023365675610994430315787055220574068187284263704748660090310070230103107525386138316596742699808836481403344525873156076461370786113776131711888060846320861592446556587476035846269329143933968754990242453454717348278162511837311814231788334956540473118248408889891473693116721041047513865236438172634094080443518339261605513067288235098564440919464692301426334285791122934823743076384295476317164050887453388786842541772371454786115776835294421678606122598953653264401996461111619252077726762307215387609290025288115951070020467547074348500247248132611374933861040177226545220673717467042682900499841659885767337683823269512736253644308959246306637227949500423287899539593803105967108938747976792965958015923288975331712805284948457397299601062758923330308574747925777355285852076883369856999084754728367970715938889785613106621215681336622362133228675313423688099251316655706469157381340277499440569613370145275008052500305752550089166188669358735420153996339994937749416971662222252745394383543151845263892162598742568353333228376593969710614588100798622807758370081400378843667007440312758871966970228248865209446760393233584525974815656616570000341158458607558672548236361887217106069995116386251405795962009442817631534854379896002984103007252464269840321528048325716047430938652683891906910230812582347805458374051370169067959705283601756738645851437258265177341966633188227402647047861872261393487172229127685976824563933068471814806324366139062473823948007252578888749178490369274271540798355849438607773327152749448140955985849292960997680134499009675454461700748358543772517881803810969034391951831577555012156272139098965195907250026284445805697643740831267796587291939212832410163922258310703158769064235156578790871521716051657742508409400284651895067654017122967394948009097827306127449172451247285225333988263967926056916103028064427791892308145521972128096270676420569032653042756805078775232772965335747605471854361077710849744063243755812996822460160574459490558603365925456013149310916602258869746085123137637581291743118423592645892408393734058732725630270069385423061131594765221462825729483364513532775924100351621996270583505754357562810781317877766805742864348048787482372202114680705747670129437279451464431292575390679479629625182601792537306145858113637016989134918813638237684347799210053650126068580214648645457067930289589711803942146695426583715517390770914769580512364142111402685480734654553082103278588333546908484416885670005378847678274599468732531122970252504372239745194743761757012746553034247133287519606902344978287056759980613652885781829461241320726490962022095776371520285656929550434557209050039431681981647055724419126103434232925551358217522832289754299995896252479006977888698769622435099965026832783701734420683288005633412034873729816300375172138370002542242905455559759930476717180420016792894018533372940361838899485150709736330777730537214828433813472681070362462306854937512943613698865739315270371890413037829493323309663847892662498461468268620637741493286257857953267951535139757977539933464972881373759089233119895104727233853971917690551275033559997712640691041349014138050987948137097869742483573571468036389643662626268399262195903323562357288979254182663632237902790652602166600557684014954252128503256856024910370712537925753053444754828395139217738954935941227934509237775670927218484534621596522434401694171957231613213051152447613496425237056828908599474324773892244170873488994821033927701489993401214097625404135109771976265480960820280003719245267739933256217161532479918538379963828411247464741132456542767533443625339857394135681029102846031006384887243069649540030195245514361026725041860565813956036906747527192783921107718203502193227019958817459439854394962000441484230470670842685972562413240131799493479928334069810294773983114257254732934982405439202365123279112676302472587392760289844845309265888143508437289436190217542956574866947381287257139716999496196800964055297439959321707362250809287263187960835915656805908736714997185726225373485175543710378209328241056812569435302152070314196650456857346149473640998300875134220044237140252123364960037247062580946571088159206226549916357014042494289946997363164972973957849264160593559846422352028167900079021478325803463089439167868359122846279458984645702449729479905425604040421334181540148607336441976825171777267304389851652951606641387017091909621948474410718177541755595157169620057921955373125969240477802207133785146416072766413240273806705727369281190457780020737031751704306411945735181663404663959180802420000222352896380517558861819672697923366522944280214044349256123495175614203383776445722603499276316196074215924886714130979312899970329852318837313243757979510919275378986315952667117176713855494411979296918937896542081979111993379507057804228987952264779859427476066349999573694661445493103008407908019574746454912274097565369258509536776201040750523248662470138746895201162117269219515836563676317671447211815337435171395967926997754917441407615177035111547843778329652602430039504951918715163401219881159127320200412042205319673522911997496752055244420438028055831209784480192435298525152519083104343060551354017747420843112901947338703778725746633286317784485724566304333441652899840535752714964154991877435738554387478718860252371252252430774911989039391245157784650413262483923706766311528121453307527972016425619097374370906027039718099391294986496821906622094297669797549422582728849823864251379002693823657276802013388966521003181856150583342998851878921360877933513769642657620615959927618426698943494103456135063238901832721998388366307030901786467967874243444496134099479656594938280465983007910502945763489192383300158215830339749870240364075043204992592870674850381702671543555323063865833700168247807425262476784757702725906632877207213678033163464665795481181068167620432273762834529843861475958890319694149412893596198108594789950666696251874410382178694696237387200911078064289397296457698741101110473977954800725301530856655584472492337209980295204387889667084288392101897926905527313643308285512662297011664854471518113845361917657757829037251295873677158733230583312381984478161363910528761866742607345483855861692276250200582856881981474067516301110754031463765847441026027933538180192702267173931064632226533047028238216518483161889329370292070141419598689104274316539723245336488497548449073094046862960638723081867688555585544314248287720939985718634699242860965096811956800536058999057236138682114595969160698917268129970516754672943025871052977909353888725610230405679767473253606789764222194136562845638786946481968331481983897757523150489746440826876832980992601035084818926654204723008700200546224407817112570340499329705752455446823959429097246968255917935285060342785499600011010920560035584234521349455294774128045274435249976934007633934313238589427547654211630851189089259402565631337707038571929328010937907422408297602328692354447417942696018600035219837703181609576103495289623256115782367637651737655572442793586432714733185505825416371048553592644297749723869132073973066956354792291738484736946138074028004441282088520752912016066075977304997785321826996792624467329512077185496727275702291450502838672618749171189227487409008139276171603621783948303523530568319048900466988121162948247968463150605927788617474667071460116151236238353389112490343470850591715505284340108331267269722334190373710529705067854474272512071529352278700773464664441998771287859006068863910372896454501908568707123358174177484419501208566090183542487232992652499598414868343903061191161480653049108665590087536941487260178807661935082733654899657703569846043850994565277786229953045749390387255893607809150243656147287150046085123412548744425655777997788156086708623263793459280646661512734311648130030290834598754195930813318754865448389855147915884627148771843014380641745568312939642335233197929075348121915218636971272104422447313466567907786262759609021055303193033224811409459333351230435518081477467299112038529291701862668227053113688321653429214080716286801161453034613510440345390096824415817981796655260318490322970613822929077758055394486788002840482842017505912993227163316040923116363033506482987849981997325910727145157539312979770632942380968842021428496544624978133884131407493109921906174271058659273998090989185158901047690472905512325504483140242122381191310730093333429182019504617208519365724236435985594821468220218339903788424799861096770884044808188574886895673549333830622345850311182439054810735512058487072758692521258826253259875325065147110441011693486471941708135451277761734141047681463836431887718826990052335673867375186427909106545895455520989656019700353993487807431416316379396794297803464933653399631712124800494332241734117133383797127748253930909750586800467872257834153300259281810307645497052136645173611506925948758426762361845431699087945085162536221634323555513891754223808445404107784796584237887852463815744947254992587840794300409937310272660957033214760240846576333359162632565863807131693131600743345619675641983661638268728708452735213862472037724296895526773622549309931604910228078615269699840362558522903182510969171092762236909184866042322303355543187493754838597622452839620881946469521408468486058730218216751411320535838737141608718026156102928997089157524921430191265529593687318559116544916532020074887088044116533281771358734435235764646878032485705201047350242783874378686029877838625207464850175257798709547637582290868786631425812598555545836521813029048009129960608066613812033658724586384112640418723280522680760889894783543341405023982296963647861615191789598977996529921038189533053437204049488556684341472721028205498748693236494339975736219960773307680856713899835381104722926612545822267997859497994951280551021138346263262034652729029310221269664789335873523292545037689757196306711263698487192735494190169189975929841701482127730204707252890658766668357112850483916682046856573419115685630951455941701778270315304238469217680386336083388969809295047352895949416942942166962741686515388078768303232040950697308641589379975997183950813779919365041264671921468729390698830712136236292166184189650484333636100773870038482096228597547010182925220940563772996523523138427791980256819900406705239591259488523428136871025535277723061033313204151194232607840091855339965436679078092342394692807359187026457794948701345698327621024435156249192438089362413199104468837530051198171102521932477514539063104885647498632416152424588899368536242281872697498694823427904604367549741428166688095844735008340332482573874040298645735088441968266232313927691280041411940584703081328586125454371962633188857590618459907923564233039238701718811735037869303118254740425215264779476212091542150551477323301822292601252568448629987361454770161209555744329460568707910103131673207127921281952433617971275908086142663836967803164935648787286301761549027133426992866462623307868007943657179010848070877936333942999087534991730588482868296589483089919044703989271791921769718840166739497121873209443215180168993651815654755779327736579959229892817153978680125898006544531851357862938854412878436223764077393640634798166475209351218434337073662443591667167342343588140334050168665628422005220001206012501292634444043821846425276567519068364690680168979198900398858793789018545713614492331386137480011282589763472037688045748821467742169846091878999953166287439571501840239505487208340134269105197321676906232210426836484722955859056405382270243451703137178682237224702065686826622994752080301562156750666681871489244264427413487469189357394079481168510801337390954490426331400865609474515099066964088096307713928570277160533464487862288429238723861049342775566947718713327280129051511104372045019555221286449460719466690273109220673469538706041506343658897227844543567609044379873082728883916057760294611759699291911113907440999235630687037075905295755772593615092684843257042525554764901185698004381706888076496285448885670654056794531255130123183584153809465787257595495676338689600436255472802878984882351815317560803597860449099734512914663116295556738394375712942009220229656247258631836075843594119562899558649167305166873180295568381684770672334961323192323806361087105605767716635362690436387424793209444285151353464171040694285299124789255382277191229647696034410481854175507038985939632880600093669597694897614691830261932862625020600747967084637121200867612837211591764725825748154910746628359927524813040296334809207980522031499014170196781713940668474124103860840283750482320776805314738144406851580816015550385653469230602818859454965778364370604808588630226421218426529029594738416427858050338114623499913081825668563211410174230734167636965070403477403906665717578219081074386817294897785639878131704569186276241147965016682304857685244785475878576269550331503085086937037577019378128578423177565584512853650289850266099899185090481022633917813112599825703900476434142690958234192212088591518408248516185294660083344670540077954361095017324499833694615101172318281913464406610557733540942454343777617909682869133318242512555719783851074610872802175003657943317965201226782492727614178567908816047243170213966379996133301443277896455149196919131989962169056426944507393204179086440423284992432909443098479526285218882427092802616484578474513196647384728113383730244574801635268628229927695660039691023952047778765622590697489791829720849567330934098457805677940407413414955210232399655527642118753807253619283562585048947171343327671535046512083443788267370921504380234463291509093553726897352763197305623837688362618252516361739948361396666009538585970455354390967932039756810786591805589898806291511141992429590931758859224641848603498682158610893815546616713119386797295446337741928017718009108744026009968404021632827611657530108778828317431923711774836692462804058134742867669773227883855034669053538278081386148828973039140298141235837181454546716002866894074878147857426214481247444456402292141150748311293120787300776344546593721504671696373307528929544958087881610290553370751963003832792754593165100410864919350884228318014298072918677371839132332590594009323761122361569377741524693462662586459949304949591905956351719203673405092277721711073480830454914324535467704682322760041406465597768661869703237560967918042181342938554201080810543607177189991518311826344223648005797816893208271775981091185797373240306427565767658245321367155563661254988641558316009793801500620873038620307247761376609018621963547184255008244161395259680839287517755547293034810603664882924364435276186158023642338791364697627659251469812582045004140702301233512661630759506561094546270392331600359035304188757481758436171263427212408098436137816503409601224103280304086009221768384136023437188425831411014086866467557422272381985755426220159372242284586148369771545753768205163552682599473019423653183462212704949196855347978985892664456541690329290751203916714607287647483022744176146272907728362613169226386189789653179214770819635760735363074105708311987073231174794646847258030906800243534262949101939687550613477370940409592306273044905826534359557988982084952887342042369108539505082564117772263650013968718615077614561354506717555300230633432532730233736200923054667946457485393576043162027508503105944887663675574897160772445977821850183591915504547892445228636490720988337757130035751406200485000067451579280885781757757010163440176190020081395691366039797217587344407805362758839064448322129379380640286639627933328354627143369962368188843454329780092442445070026330939656821611303067218433173063030198001118074721947420916478498438012119798266217705967967775418124143675306864165946376230129979448011831161291979002727618532179880817490107430954078488542559352647902188985436470191354412552177442591612132010600980766361873526481357547694670244911592384959462649253864523529364675352621385015754131722490969675601532393811944238096221233985895517668005245257135569352141689704647967653855882012226940047637229342358202578311462251528293607311684660114886681253268856463209251643320219315475652508272379482274490566867270429982458203316857812790344643718820207552749256906118845759849856120885891736609237621672520922448569873411404483726724527986981845146178366063348358018360386247235398408227816400290375499121515490104105865935122850279188147971823473596884473823978080334979860444919087010927520846167118665600792361294899118897742081037908376722572797759187389756968598381586076929420750019720476152417230211051746875444098693873064116391307072387670151973578364056018340201360187899297815551323367778460690405020867679326532212320262488306155405567278080873645632718376298343311606328315296236193977566849885756409365375686559035537456517351825312524916510987087334189210308842140252468913069451624152382415389981902822050042445628782052168991749577277791311463385805797048122455613899597565103529586289638726158547117800916689246497720855229066039812084307513200539477328965306843688657807656819449377187488399937153836353411946285693256410922345735994884158632768371462076052978055364570769954775222530252488001895039894031708829134484921562081824523300866678452900806779175983072247578833017313066460735839533113101884176340319868711093588083604228167390000237387175688033319158406531995110733061073454294854342666534868587020447959766489099460978433510761173355562339689501859070926974690854331194467563406126454669217329028531598426446806190942371350958750687550214635505916709144848105613071349935351153746302951703310677484274478944787736510963559893004254665278736292402652215019435586906409723817904221588638303162616045604586639613379786245975252187678019251351319233805841427854448839272680159291844963003124785213731106812142778618916531899718579499241528067112095695185711522542379488337358638233426940521354110465940946598716263156172590979878768937908729279149106875622572723073744700129902903070797667366821927832555280141548309536192161999534010495552596307759423660057919369392560347784473494176585041959248680945199308715431411367253738376947832459058995737579787429520503509297682735110533161441024445800508226405462892842138280088640237306940788670245433993466291961276627879188114209683544910576111441312591188594047265074013272801293358680135679969669106668896016890046885881519837548339740832933243615770792467242015035786075536296094996372215741015856520522163431500585889936523720655626419607262238778299634319660117819426394951227274238225057458543462174638656046847017800200894785215855374908954706582344684630017347393698624853446451681290416020528837296764410175494525267133395783919040101682684895582609299185831616862104174661391933311501143630074164101829843793068560021325170243367235251233366810805409653794957375607534860353568541515511996901293100566777308827562457406099632625251106384526677664151096729855369290570203338640751783235445370360380638781699234212094936626746396532101502379150001654171491535663033985004491752993431428341150219453997435970915798261609078898364390805613318440229908925748136352095232120752263822601572795470731239181000199386730661265312525371087533492879423006562265500623769634603676865756721899866615338045114011643388731653668647993434176540872792051925383139469070263854286531611904014607634062704247441692760721612942872558159903458295229679677968986028652452025276921651118608434730950373348640645293066882274370378420262499169140268390510762921627363611607566039675001123345450644181617242243117091237897946606557644001766978706821460471823272767559785109302163135982288448110454742573830460230298468752803376295805502095879338044685860956812439312984123852926686969720575116772626370374461897349491911194446178470174171007144471395400351300218260961703956955921357060337821734112839981111063416894975628162364662757227446686961509860240837327733073706058109330406925975171315914146966507238552411131212352352038258485965375321461773544743749133869861280039366851120297819018160057719235135429144277062272117849968579437850670320341707617320561237508802723816720061211600865145130387695720231964758814063516915413105549466240621569937274660202681880457863674979818846447839871872512161617243427755526332038211103363754520100043845901951243038845997134303718590623015632091309989010983379782645121939808991183946654696154454761475949796359903123820838340449301369194027747961240411383286123083215663018126718626432622230168131539489568393555762331619695267229296288410269096688228521730776258879061181833822961787520628326262083748446126851383327024401593392872928201105999592661776249527598348400324898453048310594136941343766462242928545935396601860063445347121018175571409822911880648213004099422607618655422544651603670137315584702785236638213988849666177133940833132371035170835033810570128954375709239788782593908761416274399754915498286368306977220540673711836510252991006690550739492345435509489246631646822859793527224321325303159699269514276120837033048576424865349430640068757249978218878780113684312088756987461549263763639160902323499726766526738276756759608814090074230266672847846117892627179545427874808647988721508783381741892452549922287301154210735619067845851572597300301429376426337137845943353235000101753297305942538919114770635490060815611436800887264564242422802655840433771984265641342282337060821359329380427776159101159108179800871219567527963783964511112968685771454790528694514616486623388237632162806063743999211987038206332185141119617804870723011912016766709880319799882583587175753053917914205244597474265567070039621260549987571471834061312855162906513351832927844145888870316265863284029564704654021651765650357805897898080707500764789671629244300062201716693478819003865422424685884970550251861333483095428563906370841555146395967400559668899533617302247479073727281241006169961744569503337699183225930614037481736279788944593612161469942057872917821912303912333599635620601445145014460365341078509773399048952148859228247495218759493782955984566121399986199345699644318586140827492379058207820572172481381554163140563322499356261820849939592436325209703112549557006586204780745371184099123928034944829607096882449637223768007342997936244690178199091074124511189412865877650095947973391746362125457100592889058923633697257687738037671256224291519579077949422305299324833592505606303088766146875946799584021651462608482196646261601402263117935025702582389064192050101425072066006909674914437524492219275802128755305896192164644866933807603561472029986028962205235847324951412703172960775719735018945130178425510126638431390819846856107437526474697291644950060658590516943936626167706158167250250062208012305514098727376008510444182747204239563253997513101947528316575322881571260453073160086260036801332250822650629282155196620547018801453588346162735285795360715490608918916712147696418130887227273720565437521685511621206618754689994450656678287540272030879666815989513984068256069885483835709647148999203905610603706234123463766901279344962118706799572285764279385783538501292795202187792778769975192482386492540955390287177423418459269821057149511502819373593062659262425774909742974563911356589234660233939413566899595665207841083424415189388732355242641658812769713541297997860329843317563778410176201387296861492677474840333158173911029698452365028640544139110232509674335007167375410644098841793924261067780175374204721394211729920646700815250890106017137841850456433607704961200742203141231166003895598887551315784029223053359929763167310453594931064702285294197697671429567923054020341315591369632920455045366611716728965327293023281385877060854966176804111993752984131952838773961995103359267133030088624434262728292610731340294202612186352995363519654860623510218730595053945766844295955026705819553454706333176769427153614969485218663317988156556683278358355444713246117599410647142234338909270425110324307011403906747112792083862967938558483359095263805636463370809789666776989998491715254106847003623661103269507843916739377281721029034902092446789641796080932202819592926857100548976295453660568901447753956336910834936742857698060178553651816252800774932318533260449059782536829753788962860023327737129908497804126645407552008951791383883330439326554124161363314037051531784704347814494687104429211528138973667005003903016880255657853387785971662554709855179362861138011874061964590542800635343875722096883830629659810472504747923825568774330751989895531912160556093348796757086472648755383777443310920727288933974814721661576118453047613889259201288693871490850566840468192517616731276270164739371967296881196147931267589192665749197701491883032063759764900444709627807654703384946724665225226896920422393854342011469621970505607652187820565479728630191645068196393855895540380288074178886127467473044432187594819677714936224601495550998225815984408058170826419474442273181917536699370354286662142234126072731779996495072190628990621029958115460325151691735102929775154324868101281978368844874864483608759860310958946791430438349058939985746858611826373029417857723493493240272237557162354015808203879316501522922080975843128342123455762002531996846624300691087424689332437601199895802346240702842185997248977774220463311968830797172588410208456557592359746025911386635465815891477694878367186351692957293398084923135738348696716983188817794535714829944099407871985003399948868713174496631406409951883868189834266671346756925505680882853570437856187060958419210605140022750860159678420077874933163436181136584372018926870887815362512531331116169425134367233001394426606844638942083558440740398361025674378864506780749169798885880325488278967284071493614055979075450765737271874829893554270213527425400729456391785682055607181825629294409219414634516149604635128679504456041271185253160208965073383925711716864083980745697147840242047599801651523483459415974617434262522473606387965531840591432464462079651701089629479604306024352994890034750490734578042948630782526102615848673803450347005010386291702199572500925668662773366402642711558795838578394752655665751652361639731726914812086319952287176373029166989031379949770778858566286611401467793987427174449246108331521853240146199910065004162647310884581688915674117245710929640871264336398422649989520679655205074380127091810944221589061350457032914558677494311397236491502526770915610843408086294353149018938888368722761221602996380881515832480278277087562234980288164849059726380972917004792789508072400964842961937585784097188053091680888827236539279975268341405791663596790724309653823062965129513767360284664265005915154787013921132343237870478897521114221133561850552243140400865564715120138728882603219492093912202254836053823244788339000102178129222782032383585384841936725912722588415749242116580950139076168502209595753086099669114972131038918964064383732172376940471546927255467049576463861866390008528643865768743424760131803686886341696479946805915818288626484372152126924595142043560894041651678921559618839202780385613745990450680719602325827352165257767379154222485116964573603044562693002963501129128462684001672870008150501942869452374989163732609205466830504932056342407751041939937372953062866975576874411134161180277481586332309426326086414443731274464037454316499774942156536636456169268110194503445193377464481304186499185219107903449252373865815865468705020494627672446569746643375084691135856545191971121509585533465800824094848499500578696023216215717048091600534299710293330492942558206206951756883531851646330768376416602695634108109873804582487525997506598915862500596608361960367956147412673193207399767228335408823836402953334551537093437478452898413934202069514902860194802343299302124825066103019639745588706583911713981397391803748055257708849997113176107401313809789373841332898623498132131493053191427786209830958756286003794863245153096620393549916996157507804966720240005518190833088186517118722743488671973194130671935251053286941648340227082554350161132095504625060339374486915044408001690973480564898759510626755195514343519717095173012164812309245028183660567111119647634926305583609073598135127699947636554789257212921493967073096988109234619094728890946432789151137143877349736882744815516472877555638853944639165916063402622108727682246980154334931100166861736665560649311404116429407892229015006657450086739418027249537020201451052533186194275600664058120388380822349609279606195949302308304051829877605106602462756176361601102276905713384034057382471227936959498678981833463368457616091728924803274858582924207408527983740918236208599037226391031519024072762834412661908188478258302833813337435090788662202563076903807388471080185026772320974947255264166889496025086705767645725376918336965282853277955394812805610070454946862203572317499311997731249959322228288478015665022223970610235833175038365461773591490952380821344236628216712335611985527107579179678404559366587707617836123461109282668151141919143225000301217467903601386883982377404985900525924278158621451238510861519602720987522142824997052692428017771065204735133344498139800979022624023565912264358030938920320814056657384170388815997080722221530235765712648139783734167682673892588206726603493477602608439896511260120185865629809182329767467372096130506673903137734609770990927836295161532027658113419273845537461650453029912278991562834674005995686724886250174274033552995773274037152342392388079674566330455608133057124572031796618744503750976542433724828442061907029143121105406100067167591618548753546000174485744337462580329997620106398497947958556341124891767740865757097387317324056906713313020100296023061178346559671930752877056299315074443296092577778480681832892449762494856314452147339698134688482422092230026062859701010635346476364267097777816959436786964402797519346114514541473862695204763769126971833004991647331698548295364178679059990065316462397652139928086973459979426432251193061813564159153692744348538252844100362341132413517487094889210147538840923243795895514015000766301392251897236909166274542607322425537352442840621836513612463145946559774863757725209231941811062335509150573280111389300494893836448227097383134290260613246156488407241752053015537446451657566310358676536114380938807708538247366046253492196125028444185902158701872158021038464811269537090003232996197595144512717419872266219340087347427920774178654498169397773752336987538045362598983732544928880186643309765932162197488062551982238530548572796808404439267130735634528945392327950899849099281006370191768018974851131080750716580840983823019903207189843914255507384802109255023885917192151600447749912382697281715605405529175984778071107453620847011479041407812273283992915196646631484322032944103273410182790038620156316343879447979469455726609372975543060709973206304883166174991445698382492951618679715088168457287716076285645310539855594173700739382574556286273657924059936308693805157815358469342753693525690925301996356919642853247358026145874908541473360279452153586125897927911153852719593327359187730489098556421336897663746663825682227070137364200485704257855902677364502605372716911250519592527971888022824342184217719059639596915516210109616016720744533284221872900411614408362500272168017688060933391256452539477812557469323887672580477356916130412317222878000551217730359614200022864478857825347221226258284666398908195600427942922178495234281853372465732609249749263682024148203265967634018333404008385991511923928273662659893838306918388421639477175076090751174717473975025850912245547694557449640558237239234741466138217913092293735353374923731010512441985264892689359123920241815433960393417622719562337097511543289624084909767017452007864092479057729755565366531398212427642334737493150694783454174917616943189788994449482562075280305820553603632416048031509155960888302217774496642849663537028309271385385515084578140365049523392694496441928789789932107286135537088068503400337071370536941134702547327732375000320138268909609044970620144185737619799710664793188621072826007648195681321424346915669073971950840262630248444559496447663572617627711470838545467689040959054537835186934420880145596934156543743502655287390033930713455583390679257895599267652016785013736157379042996300512498892554721158450503166019181724033725349509261977229961033012894658200384966499762092698390326510525321263126777744428379708984227559996034282406914730797535394777602452345331698934845258675268039373008494359161628275214146675728917267629144285087252678012231274937645811420341200445418867195833522269122461240284440984987840785829275094667165535542721142560211014566170652139477264610377062382016045212687777258767959482496806046480452522640877088412627212686328896506003083089260037883195687343691150757193435557674600788932889189419817604749383100815646811701533821002754982525093671021351227939758469985290681312002881633780551556769607355358901980543535202246112537079897124777837244998987667798133550770670298119085681361369383518337454609140717727680992902447495540057762865754557149477773346852092818425313774463161584380291963249659048659307271660703590504733174375815242641184242507118747620831017280175510604431851423226232858571470528678827839242777468485600488045807988713595172710729094406190534401725459633559159799174161678914676828522990390518168846520383542865711483484539745893389275834707523393081316860464592908595391056819293056389070497442484908156174452154268121303510846501661451338474354614198634915127878328614154784340138496265728832338735200739097740985114637024630534901996735811959615016014216977524629519221565831737177534730396423630106201303503096153666294137624900540885148250414979915475653519449858610296148967375603663110965713624875700579185412058748959108737853876903551808871571193779621802981811493141371412519817508040345824525234074085272382108703441425095203650429874030808932609252618748561638715964257037945994618501911771970544630517186369681482989056756611638499877368825909392137326458963981576260328303830520581598630148561978613301358376133680758432864552663319377055438070311034143935719464775884438806432196841966575559279158294342443861517273394400135772459334358675774251900869606052050567325668978238384912545727653115607786130707653669165535324202019291579409691791483678923686878896633930607453874345561122404818446975298395922237737095810701267631734445812251301819331708948049321128328576382443276036430664810376556722401462107495262793589955054543287875973592196098228914647306938023982517754424387942092550105217926778022215562201721535420834951049207384532840805673695210969164289841691499245499324044803542183617453146957966715064772791733003697109125319990642971967545111859328230468495077760721056789483182322334468910472871409121430702670991975648009865018566003008458992611072566864325382979634890207451939021618158767472252500812999856944569285335211953180267561146679875981884677853917037002137645714390191526376776200222720431810493467269397009536134173049005922304648355246060570419791655773207852037552515781470371992054524837788590678452740623467439831107361400151808056357915234156689466051724952087828305122471246097313318549189320033379375187950674103033423473551071156365757792449441452106099336517011122808659417980833715885372544605131541171380026401021004937144902854926447150138047541705485103750069300682550424576058718766623760551051475831706706136288552337417848734949168581928802121010790008045019598190547116347240714206498502404114802478429736753330183806221439275441576424843720256537679606039454521015784482297141722606850371071406331113343022635040627116050771098222749623606539088051982675489162896255625876130180981490323440475524630013569974047875854190693017266705983020347766185437987744528769367423219390224045414346802461483137958333580743925011276145815234978914007883842764147459545911699153718971938793678884795032296846570749611158533643657052097627300152865956472572681454182701323695276215334180286051356644003622707580992490055466943798589197491554543774268996285176388904672851576098874646613816805428262529770002321069043296227476802849469868667418071471855308194874307249717518547185296518252005089470023559316733269808026070448176454674209635190060875807760058162312542679173020524448180894636223151067425447230021633794123463409827976542397879825917724226139302834454167805792015377836326116103392739022691791760067186098198937057998149305297641981410772712458641224570979818745674217880018601757575742215556292701046275879064501995369324234130729219964432226224881940943356594447004228625311992802063584833074982696204363352087941793447917357420784277042085262581026897303443868928037865890217908136774845578450352806740765806439402619396363566232950458979098162898301813473887458214574754649661132439759087101144450455909219238509298702610884306958036571753206153635313123694725032629806501984013444955370058407814962107720220998449228558113368488513342851630150013186208385833928336197979888326385005990665387090258000971357453617345312174628645048894660713203435451985531642735464378125046300751630231345723802260000871366587458038548122926809585876622898339343531099516926815311266165651917741846553342197574707716706332373526560277888584132212815828346340984462864503594586014084967346193991233346146989654069798847888740080020800914367175216451999346331153594632942327937350113900122029355312680560842733374063767673012662178173123127724828988744280782686492390289450433574362684254508734417180902524600069373953622514978224608699411890066328310528690330753426302570496497529992549019234229587788471258156168993786107609695629614232709674719209919960792515278331384850670613161923561908037699575347587512539262374711109546865385631425673130850176026310028825349905540156210229441574136352989091835427483723839931588137513615273522427621681606799322202743441235281973615341799048861024958038628853633695247199353221956434319698417475737114952836381330235299546983235293361475422249295079402375742645926869836097582207567111847404694199161877512859743499044512636569376077760666357713887795591550060221083034136097117401015412403532517371329620647560476237015812932368542146025294803425206144288447272831225526047259233743452666332690488322414992646055570931140147867185377508588043552913443307135282772969311108124514787932446812668573342249593177654058865949036456779363491410498842886811925170215027030301036584474947170775035194472493866470417153849755228914551305180548246332469711854106660487221193103115313140794094422400457052837698440895541731192560056937693573457209381930334845102152578654201775836561990322261907184906872458633726104467599506470719031486084637834277090112398079070680320035492822354472225061581004548411801910100122234248961973437645558575281391926242516332361278392771107754811683919531878206872449744625681634953087641198493390353773268102087777458852243711315120776767492255488733170441511715264289743600958070540799412316821155118695270614854666238364870286377760142861100163019484883977827123885963045062801332173597612057139908865203984202438684748348092120908818881927621502969928405268736802885836142583315500757265715928721399848928613003593260240053945390401109375021125131696949134646272488044220884028022818202375397456550993220526495299055519851672117609088831178918271624360127202545916203624084292214530191518293830680506289122367689112346101806469216879482249823894638839451526270932130314593244306462804328082740727904354987194595498805120792543007858170574662004705734512831887399338027003164144330707523901350941548815947819892586103646944282019516291875947750445180799875097226224677458620576230845967685801901282373597656703671194520501440013598647696354227147029015467356561306609333081438704394749961818115991191705876179962099466237405485093697606623191471145213729844054525886259298635513596397696449564365570410155875210722742122928707977881409884158229697397161470015535681184367484849643770761770984159858633196097902498317266919651135847092554584624487037288844636879902043676679730824005730721595002017200921041494594930486459740896926994149537633782086255491452392024277089430652064518277324535600093003033785313847762025233682464487235706368490388122893468884442642718548559053188768852138162815700699888683835902976890238854452342502566088698271182021069608668657744032421979796444666499491153103184111414321046397778565237158353452403585243868583120118245957394272250111661524269556662569705028184168965570891796531205096431807975676005961401328207648428787640137129726656919886665225331901598600028782160827723777232666839015789786733982929269233181348400726217419578035693427796054509060933329308740377920458544815758889438230087474764847808624454858173762855958087339345589204713031780830636442431916386593522432777626609261949548742484695108114830181892413015538492114491972484747742597373473581421137460371630832257340293699707747156988889863720340887626605641337921712872395313653555404292713773378623426576711361947611948338747583839158811825636142288054261924864525657694953787561217306017381145137178321564328908468295910899552355214884291084109843773140094317458499009473524310244541738658742165389406068571053992271874446974701062474288080022683155112523440992754224658002451746723174649649459379951509075781788640861773245476900445262859752675798374518554309861967578107451568035086421518931701937131301756977418263755682988297992794732399793176611060400888564664673789600872752526654837779552337025021360087799461091778116128718240825211962688960646528100837833345921569418866507609942285132597285562520274895896176260489492780221073918074503416951449246508590269272808903480508676095565544697648649484279280859001761310558108735981997073683742846918696113926323627601208070562642304577465436938338423851394617928538573434925128070931624159082702435338031462583173246062350277495770555985918660485139238369422660571809918599848665737224991536865259197258757059478640684500497517232144375838572136404503442569255588994149585567024663152167156860529385823556047309048830226296236054348931588096265950693383351279640060841947179159878068244842586876026857082520695889408429166846708397762844325073682383058262862548834091722585948885041428304514376699621038776814638316154690997370646772922720026901080382385748259599595591676043071905183261467978065417433243792711893937887554589270734053136753498969438543784463135463001449314386665621617335712307653668279532502606416733018636786483156548056562664289222803969227308977842736704842019753148896700999749836664805880517589144876421235510262791188405036783394801036311460442570200122484817987848782213352146960230675806221753711421266926742543186231625949122385189532355071376355533190567068039605443379242307398970234196994897055077292633419888446051952806480257518755003703998306909060485094593363740495226810158101100524487620060769830956857570477215386312660464335254364256894213679307332921002441326791337246974694886831522133714765095082215032633022468043219372376406804209700306384738660634335594828676685961870121263015415517339164763632090109037216602494098881513770157915358427524278494690639533248309249432794786097203987554287931487876969054975840909777400129655477743795329333581823351574489602024448679139441907518269925307244442263554707305848629680753788202653435226602930922902557055905235708127195680062726239200674200631263049541819047021165110892819917904927913458419292177815838518513692762135143456729818029265551841956199274859638981391135128072687334187310780207563276864955026128729031777242979591448728135048987824587728205543564766468265904716183428326833737863607071265047439809571573790532432433459657877965431008223148097038172777925668522332501461770348796054878169393362122410350629294135957656975024416906205998024658870755268137792884904977957319676417036899920168587033099999905327854971190535750218298825955119533433632851512195059476484214881762537135872439592374495203417250304605209444405084555878539479029342408594097596676263524778331896164931584730524142139392702291381874980865307071235499492482892021389635721203697500867276743737924388775254601274979201507297629476894821477233828666006819968194922418475748689812063393185949942461895794676451531204074281601771437422957508200233759752681335036059803728607228958196372195546581137984247519503928550948939454839351024947753040938082209912566489986122486346667592213217590739629755501634099571569703451021927613296999334396966727288190940743571493430128474584483252866283996921659132123390943103631755050376511292206035547006004794520341952331704958621359995849162878227262390894387829705430979254045629313269479652738478717239113829030882959557833513672966091187653041146989495195746918381734985114778902271945246605224655482243382797889528756801543334625380042390731908637282254760778986012251545036982792335157901214764232614814099783739613225527826980436956206176708938684037669193434745139963560114252808752819975970308144037743715128026099897359784424978353897858291606478739115815179535606656556389032176961106826633905593521751564675627076659377229709765191606798375316399771265261922381763459600986442533769276683245981580268667027226629579031906593367826146475249144596106079809039401198310234663299027044220228597516706444043676351277676947026978202799541649177905414944211815802274143045563711702887354449852969265945695651092757500076467214273398625875670172682762550007305637761339681880151462997803094494249602623167923285880738258254274484703639311439247554669630588893286614951144489239071598123850611298878881120557057626146869123090683337559588722025325992277331272530008460727349231428276893016015752503886415355496241206808187856548135483512682004388630670078536999606486412683476853832352126209978747430812736770177314973254563225984425182228985544542479308192413031038670491025904686684309211515453731703918136168108041519376634587244008544305900285990558525058013506544656315870315550971025988658636116649277229801033819348466906255053427967056386347591547927013539910062979917775346595204601051253324631338031216763334942793040906849705964701262462171577079934218813549746836030366207596148461678216385073353141266791232314140746674013922645946620632313982546478336753795675771526273009445758698934247807161533158168682255331618765531363117871317094394954436064019802335471576114576488656150872209313999812069526932756877842459855995933194936590151069645290565365730833496004197164731909082846228409079720286264463973434144713539907056551209589618435833120304563615122214389233553877562889289849205107724042259193973784346894369898615239499454264788515202006030039722625262205391634324682387714262196859979378844695433269233219599392610163215876482718507647791524287238008019023156304395493964290687441543278603410090697985074256753292899660068539439394969696866998581524045107268735200135549531428613855378224888115992800944460354145199499550654396531764294057360609977587040571706186262392836271275015317320668216756443049681107260775756979840078212930334354678333249466128001354677580737999251466435202888248857243206488548681388007837066552273874040903145221480827447084266496748731320366191414366939148619968379319402818284230197592846875875188392518429874119475726377443409842008000816647129604865585324379537554007121978266075238089651954268736094650728316970784614158224080482619602713947373399759337473160638302945479290049379734525407475948180207794167714016585901359848781063361268303930968233497733494815565153786597289603050982513265019613606899952785045241649339249950131126184815987375903064115128698322398314905712745208250824893486233282100289859088656142131682625560551461872056975329121770410356309381619871739623170958898072554956075950495131031200734950351704257164887596273920140054036764569482598339825582973062818925841384664992893485746770925388973830578973169010569802951536773994499400282468524889256272975941332381275397038248590461964405554023393417916225437217908745356017545224089350142031735891521954886469809909135813716039250511453802324495967955318760882502856485270680941134329989475506904706546690421215054629329280407193704078666648556092899684322839051358868752848825996594234614026741440611534102734843408884593709447087976805631476219231413331610499572099826326299670150429243948738179527473577085865869914278793998651897291775893621676979452353910097393753387253735041972248556093612900163394300669286323971583662346035851652438742584227176219680632640526031030344693045931977992125462332821968444990381737007385140118490015138240171942414847455892492167109364093541252413592842147718292713473018633258816210258166418466014482960374070532852596407456178477846587969405200995478836682706857211825875565391329160103149023007879438714855828477424872171417842718369228962669966587565195057969270216493888397514746578737827036981347256843753816462081961095231893426764195008998641906380979961657954249946718434606766680053245638669768013135080438382487301120083044929472121830614227574186877426399606241887795015268386365885167469775262816226357621754273585753591153616485382133736219471684087631340768012247340332463291481005955126291487078543172136298737519855504216824853373466190902485840770146690122014121736543315417900042478954126012863445268113569122304713827058923409831015277184726536559998306724401355399839489400713761271215984247147459283781214097748576035175850723085974029098544282197033231889096040206988578431863837270941990655702685944733663442433279744244615760042916703014522799102595159774151284166775520435515485699958548771088186069606978187367400446289769832399807493305566563808345793327442350802190287688968608123405832242667825769021789894897966246291550133795533166894164943757024785926444217552606656670607975330440028103722291640022148714154536599383531970381050173243958412471354142406831216579062865531361734808029172336497631970353883260614996596752375720259668387446048557217506932687066183321353351034806723776268111668772971987263097336658661360810662353339506458664961798540791137409600801330871907188828029485592041666784081475717056833851036937160550337097488661367191123910547215658739974918389001337045708525590858165230702092502283896337245771910616626693474564469918009259967629378513607996235019586096743566636938479811001237805529098574431491968815320384447212140541368455957606883827889251146729632925123188108385456033422048790980040356704094416995402228457592686050421474380827341813709715540664688182329437904075423870453398269832496166894743481926887811653065480474042523286360508497848636897176386885949616809304840648678289210774738361728337273339225213202755541695100945163446401595198068633655974085074398662979020235675104864552926318647202918964984130567521473996434627483996349950103834741839239348008780741338062383468364670862800757275864002071997321899908933220151466087240877893450109812680801025276872836959543395182603349987956233577270453748893985540652673936168483030730275529711312428579046980628350090510544339741821184637158992538318042695150003691481443904704468715666666160870508493640815701500139334955453990115570804525685851155995984487790085178035178695713316152345394026269389010355551534687333972620648831717159022692389499595979745507539673831292570540316616628195641584835540841058590067298540083883437939021053591656937623210141117517679158758022258099678118211590121892643294454235509578086274388733891252793378552347339460176205501484496966019254267879491167702804876326589828863612270294425613595086574767265791700723352650973752200833692108022895882132532355737672020238850232377828288938999739406865899652128074819516531476836485928124507153178638309298607625162797470637973609272732522248397426110417172543627660842356633232217203027443398112425859929255954464286970137058572630495635041390371462008489867688142669958419797326556842759070124917347030896459605241453162451417901707519024207717434171178484448099943175404945999600030367029433282883738505420642758766361031907750277196630243020256838579590129997732776615376210465883390638956132482200734795187627692151492540684523893435540520525266137967894405685164479029337088352945105815879553894669582114374861187063801811286038806807785870543255361532649813386476525962438317867465063736825786991671658177097450055182617036369931133858765740947078405307469518894670630936105444002492857678481763001077839404795700684795527285935992165952976352018170509661047581101646726556948962582932164679989369540670940024158719172331279047555540816112013454187668646935743978056085201471658187297908916537668827114980436591930803447107794675471894075205454602191644287699264693879707104372423498493534606861888260718784645900305067709085846392379113236710031033379726699343202784045739729393651232787393868380299186255810590868593969986761364226750428978230740487854533733054245951858746752592410863633605116871813633670936881319783151209772150432740909006363417835545841912089109689926738703342802937813614441343602896833614348829026895083493120311154042395566267250952202017256371989492868241143287818162906280056710258641252027981786387164693226053966790862651756143518214344787644322137499647163618887837280534454642509845244431320775289190347900101888950832684153470330908678631747818855521393877728146920253832744406563435272439719890897150897385950148258645724103125802296692328426567085352218894446144652072241496231796456854557513856130182181690826693852621557486458581824961081781178130382600335778850919682455785900707481390101938639482843993958494362907911248591025892194093756263474255066826050067169758658167946500090000849615873649806526836726252384040243639828954881025477763544371475137982719934558281914313617399047440555190993697966514690835869680160227817711935094544421437710799990815216792834897721298399475435369210979382531278218360985966116028453938621253727107581275567056279140781385832688454093960494000423829742508077549544171731655400367481790697836053525748650081208303991758216250191330402280202237933629523853158956277530869493912658996269933764962179036834164398226270944598365113963459247250607386868592560519435698525684770715433480782334522791090769242247673455645025572528440426618538731954129814854301438807327991049098908393604436845506977966836550407918283672215608538640539766710870820269916751434088847770734085541312340074170893275782839446590648337884036922237634858981335823935180513244615130042704573918333756749191923813562464887982850162807340647477750545834357625546121972553932607323321944285310618425021099604692854420253761885728250410788028863406308786073279750298198916663841002014351181171125365662846960745982307118093421110616435477084766401610211160560868725801039363624468668359262827132032189611898192146939046452546447570149209696567838097691700640754627345434796486935398198878525281038543203446130077623334600275718151682470035691661277604830086510741212397613833795565611839357139055659776526925463229098865903481028289010877414683217336180795122001323498627148387950455950515895071398061553962391393127077542492696178283652063205811224696986937120172582008539693618276567330256240916843444941053380990825832160097705308784788632847490784458556364232573873804947059465548100707595536290412997655811536419680695954365516116169386792412072943726289472604115906471981870640665609293754913071065888728636657096747944972404974331912930117307370685912369129834668069777777115146351338337652473305615078538847489588203900241999840400088076203580578231993399470571069837757883284880351591707114819605571658125056474064236462038566058983560101368806480636718273977425231179474283654016213776471140775305199045406210637131794893047213772082830873834601930689579854446253166288370639687993899674094771281067203047354999368321426492723908503552465145011406535420594116770577837111069720738953553814808602583834233102534369930697701071005515938147877049671530355391303381561615105644225326522877057374452582523511943001028113746907153265931375919398658906121931875982546765178143070480787412623981483586498171995669800368488597190312955880691734465934411000240181025223208011132911938976602123483629527060526155050666842545434925306446779071550589393790545597881928850617096304097261961112213262365328835750189706682764859011346963502357199699885483072821270955595843489684668248297771581836367413793717542787616611965273186197484207222830121570199212469612720507675990089402997392687897909929761216442798044825050578261765873488753180569789557044035779780707548242078034125044400671694854056179918624194048998812107402946711583288161664568476483326875138442618656266913654400435083871538953838065106000638445827654098395548348745401897731526227198233726177327736644796156576355112152217541363053998522358632708134296392690783090101757814957862784437538262286636094069663219595253628978693112637919462187214050175721984097461445363191108831202390780664056400798033156934649394304162491919967300731288986653909583851476115282468894006531532952553633250968328116512479380995710269902025683638954528256514393642914665548747341624292111756445483041949318236036383714121047650949974271758004253166760954296155650369803043323962006406602935261682647210633115881642650617991193915718806943066710165166877156846527470680404959614390820017379538658199103087047794283861912180560315209219424471042381452946092100547986686746806175966001697002881803292212862919662356097558718841703871222087193305883701714570175217017100660243117348768225432160038238436974761612331944340587379567062482950567229370764380666510053324061320640155733758258358087134739644075531048504418810945709566739459930924538825663115487524999340691180628054445633588750924475372168188869922729004647812126615314836130355874827935832709263367213806975064753726094488362120383427635021790154235001642047113542132995763450607788479903153820704505592190803243783866990880999344745601585877235065523438636924377281276662997479119615938401361764443259919388855259725754936962633349515626911303054612173892058729570063005661512162968025878701476225225244647563090638307357796085982689244787655246010903180087930039055323300964474923306117485965909452206610974968214693677770877804749505658243607444383595023950033675884011814731495298203718261260184616339635731514749948610060702597396277242354740660383984436969990145329648778193771988049407397592395642662850826314593752781553750982963601781519758319719595291759170546362506225560173711694875943152583209457191720667599693356553792057748702889878938990404425736514737169006064469707694684245942891679577824324311739327108131850326476771356773864781112163511692823371300480533037969696713767693011758788585486755938011642617976865863237447948880704054911785600944224259740960359206852877199405026223428520180778183846494830503219632269078436314770976806884524505079743132643534857615361295846264429823578247890075622826630836019516971976344094847482879543995699232888867545821391199954752188403963675843228027396534539190227406547071228709545405387923341653294355801183988551926012410213885200574374615691469875820942642086403276141983991553481870778992446431532005261504721555835395481825128369496392827834094458435969821499143012636239826495489064945056507173243556940684274329150463557394984815292535572107383383296717131888258162460792210171442425689674870536917062537999117083528628002236767076269612307858174037310380089659042440909472644323634293413191950605000301374820972189322247574528647915368510824689025173461308083179993450133478636061123073921409774464875588171463485178407089206388424977396335651628666469259454023143549603911684119100392522842379826424532210307816114205674602564579498659866530800479605901818123610717926103415528739177818249268384999831975958679540932958375934074870161570840036262092782732131671569116822576508074331136754590934050736739504317090141168701846139203883721893921009159199002321235826220448327106666031851133536067827168266994285110319187703510276554971747512317927867150237059204352100134159137497719470357949980478890274991737863612171913849673710563877570170822415708289609235399384184478010470474819185775608688967733782371764485635632711132716934391720666460834905887121789062759146883909131679816107928993242124272810839352714358336571612808497159242937735069406351475242747328336180633064418739927226363567328666262945255639551614682148032131141461064443153307799935510915140509316740620922796395097673992600238390291734552148376349870311041614567673728449553028143441211444876468756555041492189947948569766105146166713216677148476961077116322201051542927538595149724246884199340814299692917262715134916188131804279690029261672097121067212752644193896204301760089380552100093059892446116251408964590619300505590876068993533341975345917220013244312877644775591418174623485178269660933614572893209888252121003309671162634247188802428450209522972985080508761359272231617419160232135222118210041094975077278887897028860371516775314361001485019338461023028939994855744018442342253299586957428662435947610829123628062937363301150857889820137027601905288514331646403858816431267829771636206197088970022713331115874615899852942250304744808551707705864706307644523819966906433184086633128060171204579808533190223230060212990676297065318599721014905630890356218028147539374848659104403975340385326625759378897908623676193045977747071187241943849339482351404277825555411883863788328094523826372662368478076819131891695118742964880933761680409687103667336324292650890286450399180896702551434919924407769324989804205243967483422220669014925249083952746443298512018731939207847695585137574213044188507445807532205906741861228774861697891120000076091656512168361476921844857601895082174422266459364009275066024106513525471511573148031744954330842551140353946407979058340751596921978312993938777717725821393694743291079024072201376419748482068501413714542430858830199560028187644403435301845763267380038007610859213064488597388858448533641481661376678417298342065371057312496499637294453288173006473594840639682901816455520512121164484579909820844256515478435128748583956021340329833710692554516702447673264471731636023033897321053995055535993905835655010281408024059136748722304300793766449035531648784953696009053198495239497058340747454620840657888278743387888914680348428528850161141225988201852936075381504439471863928858786465138405073704753854842407687622325036255658796831442343099089654477189080125313206970129291802146541501399695461274190143092283479362057070737689413438647600513079604796074020199207509804172522473753559778001006169955265314984237183934027419828173753861563120058223333138293284509312725629917328585896990921686581989613990177003465541739696026374220024209675033733636980109065561721483488878220773384941848647907380498754644659768741426648742708944400015163518508059829008668254013135188493594313132155674369795930032145239912618215645457123947182654033856872975274149687837878858056160191685772809552369637897166875215537616261863142732603911012685837474423860137601107962412306806364547788308033326709298586523193596523795174552610436237851489375271204730514771715366563480027907225936016402974349602891582771452942663729337353716753593056925040990525750955566927210854556134463765224321851585404771015871392374824142429829545384489862063454187240376893052389989878174146716258870605393007091131425723090278309644224079041769733509825942384664899321970023783878706853429892761072151561529603082763161918556167416808708699582493990262271152334587857214848983043816577726564769231176956392664553531952657296130425819341829923155784383228019093007860231689265964475187715763910047255989004596286388124089751506881566646725097399458386595254020648152976204147948125946966472622611714605246106146240241544249772101459961238800357888153935709973265929154506607689108418043220507653990407275664146410834218794468318640611421134094249201717071418183274246795927563644270552430199715870904314215894932242938284571051877852553623141658988595059980692104514198097091901349137030408687010552132396415370494328604010077413829012460913571015472613608836845056464021256436144235652643552192368125097828571587715144304251594906380142251336249740565865024583660535882189555664122410202190634906003716359541974225122224177488725893020297598312352725077773546123760084139582590644348089042071151247747724658311079008046385220311162839704241186579910866678088080239386203076651020826207183066517780343208245667279963992103407898916539301864217980184756990288870090997971668670280600503527502534447813577026502504699879669567926351847915106284337953093705934213921783176949254365489171635645620598723518051201348191649444518869603448487460335671272483617865120744022358447851996490614757056345378979890635953150517107148063597319276259482049334346245879069385235306388140067088719497903276365110150624915962313514712266806280901469882018146268583199830253876829324086271802945634921575425027138049215266954335484680077128151167955276940685809739647237723488892887275322344293754212343318398102437822585271810745864437917047880959529327182393631975649622632461409707526292506895339423274683069371937314785448030563193317816104652271751776798508284961471286464952911002947948250774551476215674521995827050459224589306835409707105458611713103820876798416901591109559394832746139612106080335309936185272486441326781837916966107235162245457259070082242861356896171289290461438292086628776115482455394714533620247799126402550215632416564709347442901304626104836035278319409688618217303188198862948386778682810911416064280754203164733541436574413259783059998395489271413981592531611636218540375884608373240108402877909862682617048558852389814598012947051993277049837934935018668573876131582350219802503591104327986319848862812394596982020431860118595021937062736200174105149155470619856495262826084057522135414890499355908920669855534791268741241318216740832659368280506086681067299273514830635805808294477818741062347453166409694511485212925678178643573609958338091290685515741541414945918676807427080111457141143252908419609983255639594061523895532147438868368234151060746640097784160225809805919709023225903760536852122636311233678383272993028069513636910224654225592721570041610441598247336827483178523315549959516487921010256081996913498156670982340062218995176339098203286651441977183745389850505813830716812149560566889913468321010744263257118995986389431070008106512503181967384102828545895492239060139063879380706678029871913982086441591638292447343153913832102171051386654021185477815868027608183690880944860698792636427333966736924648333040323656064437008290284495742780063407797436910787988373658529638563063202036777387765946241657155349642615550344076918037273360422071548801100050339093323584404300557213570401752079466515338423525557983791580297786325470820472986617036956936528385543918926259531481927413832534904903948083590341245559450924263299935353132767097360384653277541239026079247148510615234608238595260074059982490163155301873906869569471720112681154048400653934237755887758994385900358319212688829825001708205655936172953882912170156774665595848884190421914222223315316224090548333932279396202362178403467644385139731818145350239409863603739213349871890938498192776303911305097972440019939367423733799430264114282624739715056227366491100376651018875174911547644491175123822075449067731613593014572990629778999309433185423074047007677711880597833307516785623801007946522394287668878861099418503297806576964012281177157627463468036081642859948805330056693668240515300937310913293931197303100767324587140056899154255212462360245387827482746022740848370023775574717390632127961486841021202286089262842278390055510480434111058605181620002139437980531916984915937087421507135018920064965099460816891813177318678128925322955013423785771557895477767809899970930505723691536390713537796425083478803735021547799161497743193034535316062662838718261268659194249429507434907649866877372242501287880404150626748345157334108621161790822237738550047267246814607117686839927775850254911449248744855895625941251830109586672372691009388626684310436586401206627006003639066473918885314634327508612982068050607547230178879635396623854433074336067383387428224311572393234489159087895921905234299302491293979384099183039919283293398108223308480512580818421649795652761754852126250416841251222108004909266375536555398200536354978893328058111306266937710324276482259948010086235213885662922607449488985055282124530561322748437906683718836605419822686136314723764352468208883269006190024147155478395507842879565072582418878592213735337630544024363391996132717679125523989415212327569591742477382948897348709839293286245386657719881726992299344384665549122812854691026589048003502101152075106790770671641175265422644580691291165911588469440276536522153366707514071732349707176949889279229432601538884554096153862860896270775283623815593366454064669641251957008744821762367154083291092316922597615285827987910795359231351729064543782123644467859834449162915905056880220645150557053715459257657217123552506309318988916578972698888526339721337088888848937199587383828429159311884912980599076370609654175847725199717521094977619151137550651695573849797133405944504357795610766476912319347380767056169501694703019658243300523004646092860465588477047654465734971175359027946580883818636731148198046561847607672834707563882360504359321615523241963506214714309423520291961331657596360603962766328743026809420469466818587398004133093707365800898185755222055470189174345297522808456431711626990244215936713342241648692789775256222245035628487870985541078692305436274447161240573306852063491851222095321139903404958749121972258395076446674486319562010598897771493897549325405635983986424707732686564309380401021878351725315575964209927974433581026325317296637632472003602061448442869172876477912079283080989062772409458607746970820938802120822440272106656670780458732705627996722855185612100035001592568771842566937548764698500891595696596398929140045642939486844264973698302593281673190887702573261123374693074675563991390795363685339113683056822739476965438595159864416500199667785385656494530207091220250122393482626398218086530792003433606919548695674939366449232028113186582878984632021302344433579716526698095661175462828440894391299781411647704702027899020695600983153762167881425910791643480853886422903871171331502435301666438312055578337019553062417867697085954177482856622133987566271772522545724490337274297141840853922524296237221725202048808670748037170771453067238932844194950205687008426461649064191602606675028137402262625252684450915456601667307884595473837845563740036634650792578549265482273920186613618707750735556968380434273023258487381270072876155485438851026589256150271323234127667953002063603696345352597746903190512384067509262548821594685354107912600781614212914923302317083693855253283377289168941424071685484290948489964461466973136439615953337875021863005563009393568659427222758487973829604445422491620482445581104026026611325472309174770083261005026092842881040863333713847788036341818613355396462294107465366910952045477080363786513012834066419823538152480403544585555142377836704572764607735550779114121845804150952691109027706440740784929149977783425605064212938208160676832545197104608351121145307113524459830518443836794927419057286850227260271490743201892670145782299215689715550304760685313459852352792770796053670706786122909172829852329363134566507420839392572387481818478053445833334383198248891351955759640518781647797930132268521130206467868163538748563340422493367511858220473862463633280562463724213675250978510722341869029747731943268433344968010964418709086353456540807188682721346120016548447235723128193738317872605630755097714498248485195007455007941915379549380466970584717852889448057113981548313225555475904630282558238299495968043660900745404966426936018862160781653633224768999681351810174067590272141420964161986706295272789162928474463204625806789140081284843421812289583113805366625937242881777795629517085433856035283679248887768447206112754176846515358179876062185761526572468846625107879993393637358347662390387570367878286576456324314678205967987493594192777623323621596623442057238217769346290500397153811068386824896725084300324509860608279027442541746364067447446390752170681353269432886226725856636530808458161004776473905829975287112754422864453813919506926548527075455947696400090420162466298882663189229306104493047246775996459227884100300795090610573809543300237671192017607043016946721818649693256945876112120879730654348806819066176709782456365532122319964887761516746361303995552519091115249432458331505272135064753239628389402895969148937456573880299780866522237393112696102069587792934380989487425179145257074113985937971954151524152325011638655162413601256549246711227566619983779184131102357135055612373989002032059636434424313519777851830779201951129093694600201508992501136774849004603044857830925290772923744447608147898524176347418414150712580521648473150254944229349940594387973301594044682307280617204270087838811700359640478723387042671553135281656236702876365505212361001560366448405510672126769106190340276323611233501200011648319311662072486146733001346153753516873351782551129236790309443926845025889333708983187296115245205475788609988081737046555856490308981376391511271125081842803110313116490767438486652346358262157930821185415212195655829986458888666258300353620505711535108030425910453643077827123943995576481880879151862067726332736031790859122755797225161044968613491023457661718172426284575754824714488114698605090172202246714627806626712025543878639858762459701805719597157158932284387933316398602423315511601065862207880617123732965741947408288208338961068476579883464398294872292597171594712082499998229811245433868163121159439449686205939655752757737519979577377890396652052126215558216607205067144692176762109372143270232812778427080212205858581531960341651961727709180354865366336289786273898404694156860442452193027783285026179169933427359681467836928400523399992591761848673780321063431597049394702681902273204872463926186926096296777880376210434715526811390229365640129372687083712495182815243554823096015769034157528766006923864804969578693637494933603987419013008062600926827503523025475002449845840352754176729057883132494584165788310587816918347388663872065565079429198916894485420799858241964215177312364772291667955305633382142487808840333920263378029078992662192262495214800955827023463180628356820055727546965293953349258615917575478757778876634178639136773099286369837760057079563484436354703132434020632537956704650370736862441379605226787975570884670396479598298706577510671414407533625016114637781433006456977371095067871864556657499776622709051104979307171963882719295974643336424534435434377089793850026604120273906622868752490776655499750313659878167248607380654239328716706365912967920620557719097460623844774371810777589898020892949479211953304252421553098242080041117140453998362638512362907797042432557656926408395889715747577803268409866170947697820039236656865630683973442270501873735042297773439760947124218376344810093549965905893765558641412022854487704768978230145823267613311630281024041972558593785284047193683710577989206885669551595202643894455704732038699576981275491759393513207658052637556243562635741761703576640362970265275953171450395033614146074084749427752242951090192426825383664825499306671707415248396812714537565479172677727372953304716242960744013184778950016981705206350390158845191127874336416423037260091913117133536375401200035690323707482476194518777770190002218674662046666943841743437082594120271743362349488958092646786026354582525814901530438571365644945464837520163440100705856466868397039428152802162631388848078178159050273244370062936234323188139401455075584897515426143051192859039519655213684168553237854388251661279134515934270310117812997105412864290084596949202853175981361493132360369936414178069641797715782150799397742860455804986552859252063901686194688882227614240567762782981338895078534838756359781918479437320516732617636755573919086379913146144089189362609254121136749114340064777311243102361260866356301605867283048120382592972333991027083533782184886469513246348704159731292887865114788712443169885610096847146049120142965952692327405888458233976810470259098401153402588779485033474724393003511048148887500779746327384884459544030141849618559914125592210585446672351650276220831794043953254110183868758614417782919824259329915413847467566839802657371408443633604050248605756728382790366300502000552342665472166768023230259026116618834893106029490753108407000177561454154002447477922964969297383323316789817874387445484226340836385877822107364777192226152396597479243601242108109649344869007575372436461796473239792034807880854638377837630671712525470281079695137041261997817141748670164029015382248607821230003353186182809560712075899607291284338282471638655152468009364623259737164577601632124470548402374814545276600679654304611859787040668883863845176704842887609113931778378746365220699839470866609208660031006609081035734407099010211649754203988086035967681317123702863885325215102995463798266742094229143540673494660157269139192311055474822101695662087345031681530565463243610514904310330569729464545537752449904336147838287677863350885608499287604981481061251751665889490116331537591920030267350525931510837385476042497986612640057574813685408756989970227378008394029250194074797765991196272469613056585005745193045015683919700538379761496353725702872849035248119671968988900446149548483422093982483101204931092369291098850691768868842759579336689491562819857437220645882945847566484844613317677350471934670209350196121150376462530489654166404229517865308858215892544383173304272655866171921123868340949734715394713538535430323977767367190257822776800859560720940402358441376852672402766170369341585503324810777350217890414476861621475030960900156288564609785824131528911622228365087559783685741319152163301452972055669396710026669467242893089757485822643263957331258030944580627017115859214311031681529019487084169992101310014148114879925797826264309486431408304700574476845488156444295124374857029754718044392684015024710972763540911388589317392614060047611909696321458332614664698143336009400037490025394290996975579525478953596257489613651059575295224969270004254635333921349714561628423345535218810139750137981881451147728149469619350423940709527660893563257036427637096387169357789912846822870224525756951846930253520361443497686529866026470842299352351465741135084819072205756487493454198702916088017550392292624977895964066551942734458796153347839381722434105628732463317587648316848314798764907388349675347059304315761141338794045502575728433877627377584580000563691763372611642854267217981177479616222199531260293929186642227680986403337286890956491249002769655495197021092373792239199781787779064879307991409699315847186074093897279488290670300125928288536232051863980036815086515877346948988985225487661940007079818403301572927393228837989929136036045439383660532053876406746731481537958216238282817279860699071806250616636373356066030915933001106341664616589230219082942615699627008334182531400715436832514493035315819462794890159042944317189347177958727844554530230873913067111688140554508309887032527872078749183574282971440372614668435987189955601275206130432802311476341163956791194707517386483245890215153794249473580291859398970802610640809866256625873957358880917448892497458119296243964529257457343826650224118229021611854509424382133353060278495040742623993039929262868854871867465830527517039418193854325298812466642052348709815409841559206621730110382972544130606435429874883792317161090611524132153635413522810586632515661363505388449438171985721850427905406655546844140942479571683815498748623393071701136080117453085378191969043367223595218140734735816635386397308779991650199654315483890135975933155645728089124662174445908678194700033921524804903550133684156168017521440197298275858503753665846391946857751764218370327601939354296106314552739762733030339256630847536700749104682114343817850074195719434526792818935809911551569918997331916732698924797397096214828790389816346894898081124274427647297333850983042923056617110693020410154384696230700210344863569634808045875296126973065173181426805793411504913745989380981486575824917217780268584787563655056562728089865692728352261669431539972334433461522835314943076064883141337671163419934943862068248920019621278393567899624163706126120939245294495387942880530243594568744450748795527414762871450787071335758193441964678427553050819671579733119516205714050462687210619332049518052774212365568812118998035697194274634474652536026126564164463932731392423908641235283752627039808627371428522630179243045697566247646572587014391020037966871724789721544424611982369155423128046593679703132551800264402464799271379479376396234435939994113176541320645628011947683734677856709594822263345811326345904707585028913650937731768347753773675661547331359307032740607432929514752507478730361341581323590512513381019580717012442642176804420336864729755983438080347442126803133924486711661892805443240098193056154015233577457872843157672294418179362375535088789613942226644829548020389246056299440566686990856516300021709146487986134714808840145162198719178564041297293102677782695317625705134176357600089439569797875122399011942241680267252352684011361774256160291334541458364750760619796323274592411372712690927800818789597736780866800678278219833987065946894682204440430501479460228802008850493991154958719946189669764360876058507821384203899912795140269772704851312084743159556022378733345081880978770364075100385847621711113196369059209859741049128829330459460537122702786415840003118920093911427887909742794932360343490692716862143849143493482861346233045052466235836531694159325855070293560526576415371690756712589682700063211832245382128395579796128034166888884059304947917062831795728666284395594850132386009400470374359867042020731645192489996312610705420329450127726640890369264979256215694205926970632125238921667051639411564917974203821575809325057748959445468034109613384076041874034021748774261863095967192418200548711208168750641844362989430692855906606315705551531874156496484505628938591344162405755980792433193027018135941906226534553523485875820193029627467339738163442060176725734047304279640355152417310676357855447897032331696422287894514653780529783980891477930844617889465217532879276175713034155265023266418741798742689416019752658847637908059256738133101836921739695104976103724026741503309968229076579643848201284509665246546358113782823652835610012360661567514894278993937772987009203434041490015616565738167323282907886703815840979896939007418835198988705686330313976665159944293796816372696705463224532249609387727393392112780875792972463013680017022688423281402905920559101041789716166724138442176058378293449991935179441965514490509094716448295294128448488098196171871039164790289248473058856676619166398522932321190494813659378872291700824887743229932489022975831425883081166267781604128136548680608300085594429768388675200654310408279135261161716056994774076401181587299675081891944557523975763781297818627131734717136437457305428901010827881243778281004419218411168386891479549622485750970341087451064772624654401282522234362755513418184319609944321371673172299671229136728720047363869591176342103773020306918395504598378145276595762423135301506140772335440577545598854699062546753056298847113065112810261958393684827944711833399916670214107245339521047091175494538965650933302612029046754345955515204463225279832925136424816383810428637815436804225459777232874184707776393750541587475258070948688108316254188429131717975563961215734543764826310079989400615991432949679114853573746945584148007252293313424647415973897404543589344731759721981302659426232270804995989108317212225302523006339146770204165060567921061786084656448120592842613638034222596640166250207297659422672462074756819686634645458090508352296953912710869188968511183439902258135052271330551693320140830233485819349123258811911416821736029802204844039739620424479272383682591305542660949089394848098115278150775897815910428460149023203740258673981737864795327836444817060136055361705699619103189710665417440389387905372342035556401010812689462305534225352121886541614245433945429909359204363322916475582627214335499063683077063347928339051784653144379189238918234271559070451913959886306210641522223341245341374672628382237636638867126825674396006228108012777942945258144813120557421705279260725253192828880550788007926403540222865542471671793157552978367417242392782830060173008190290705831442167993729729583034206648825270301852343361726285786168152344377607265793532313785996425803465039388708922598308599581174768562153927305583556107954875418597244450954769144034682458787448544512483246155920553541091914864963495582144977637134834386240374271882448300993391321227456435597117746655928799723232319197960976919151934796223831952366969338085190862956608397414238807456023490365909942644232378771688063103553996266900756882005876892253256282585220129295536928538025743999561703463965045182238436507985088816502033174789912909970313226959675615462134567888802104990778830359757917692134313850859211268244132220592568823735442163448968179352846631361642584183503213401991090532193472645352054492275538945791237912557263227672317154465011793934449256802458696726934576914283140577034901200367691505092190664000721075315001652445013868621698284852844425469420821162129057331333729125761467780149226305357357550328866338877221664792025611828517107457421727910323312076516281899985801659072913890201311908300892881896896660721940834096427514192592394427095431330553822920211428384343245935487334085380254683701405561193876642412208299173182349554524593940302927054392190547226765731726201991071049056067317526246117531901626550552964061548013889645784564478669210283153244079401937895265053506533870059109478374556055289751945631123152609647744936328171301866134280339667529885113185357872201227308155670038280467582478151264223224428033678846266960181850063811228964810608158285506487680307314769754327868000984544342696935307426579801533183390561596459358443445552071017436285736161958799107074435105194034264187743245340465299505691347993343602310551048381649787850579068880307364391223515710288993252567026032577698655920162678135633318202991188932849939220531461810369501303604767571528665566180313457074830474959450761378539225684042721398802831156043872751391049355937441502905218066992108523871786051772660346204266282985961076330752038572929495703625778973101691505563508566271184694944342900484220585281422346908368793044739349686428139732469896254492540514482213763573258800578050412892153572940055248400872043271456603057172664706573612928047836339557707891221737350632249021224841294503306867890226507874704076263917418353044842413686681285489440139751706048466044564786538616010990096544770709893446395622149094733321703389145129744950997959191010285956016708377329847700787820079885142028199442732265045187165722948998347442007966964607279325787691910103246853780552388668982372735008794146889719357566257885355780067688831142108891233629872924839688497674656458890639513277026741297765443473230996895229496320974802913044453217116895151046556320095061721464934723495647177054934357268114646383945091289178134901385336207841404751872620505474683524603399916787009507360721659494623650782844043360776500842979494819622430224455613333935918285162247484137439414177145588607909285135871899893616678476942086572014270583652688644291428314181935049374527704136232451004827664810168170643376520309311817008795485591778897998287366978124800713957960531807855916043665690488741973894855697317914882189126774639556335707245226127271417551067281082363705636431952994305648963222996136196123887521758301824279063169053551928732354669103302982559363101533300276025269844336708400245760585935902086466522271730969437461135342178595655198633743884031765962632324799992171756831974545544158394933482070563729541749420628839635636477286683415515065426771020119616384680132113085558733236336943478580217533994341942736471336562582653097805208367584012782384972409285143412706083450904348033363372513428587474264748494363090539562151994427492487388011856226420330099823208268405593408466082423363808599587512406293178432084032873492374760425496657650382660630067939536123064860348383734925739753720208717295070877299796349715462698456026381750440496782063573433090707632093515656369520645504091806827600451770533523162677980680491351131218844378119888250851329015547844181877515409918005316216201979748715878579468774926357306430240826803545710979627829244902657664204489959800251633221704353215634829076835952195162692155126831191961904913429148023360485491870446714595440248056614865049936215477469983141121113628199436058847103689336419887125285351951604802890769000093340782903631515701317299696284768987145389411869636932109394047522979925108473666159831244784793953204448995128321811472076599107636684261041432673189398964654929411419980298298568096594651322487705910707038236206661639597836964605830212146836958172058721173067539006144338540538061895948593024450062032664999756485867443922316566740618549161045032980010087311404837222430043268121208239043981396496139805524043802503073763574770133278898995529262627975250139735196221375580678689489830545332859308306267240775030539417684463688467367456231704256185281110646094659099006290055299636185713984156683707369512074660338722071750855086912434987884887373524819738934027636647221655653143648346978680288706642255982655596366906858223787091318108696002076205487889374384237586876404581276397112296789326740550191283341286300308491380607088573485117869220594669812661883173996902423709527731402620548166418460533443629006501135541854511781366963210997865406700566460359074104704241415622102079043596909468271360134406151681693985280827271576649962929500398650203929682364940777767762604793388707144892948059980444763654264815272536667985850433134427418013297861554535125655010246875789439579497423304207249729395259754527981482746872840961984904340026607763817689592728538286131341508870971859958002740589402031582337746609161736696769820953498366737945072926559192321545820987159525340302376368920846261192901967339263025105283395671123511924209411976882825326115670425744067436056496787414568545397873162268660035104562485239031029163237633589569311019097865584897447111924065431121074928778226184453475140432790015937225331762322675976722616623865676100222963423452990254123026707123441893661361258499717286596541034797322225486622446603082372390077605141436882995568812097323355268639076097618708891061491262378859236776848001605179190355505834477508891575920869312737420519272167017525892911188962959361353884717943676856376709558649812803961937596570290304514112908704981227066133466264153909062052607836934214980744495957441355355971246899230073295430433414311415408535057837817061057225225998428208392633008330448297754561699028637321403390770812935437779501497390827854387452609983152538200342784987215725771155726733850404526340535631050370981535388967888711763428823910991433649407354314888654286594829298358420331824773509430806602220418594320622236405908279792909147700889073632014837475305435859497471879541457223992297822353611457874411469042646551811322740198728576542065297863297250949083963725238250175243337380488999247889212562850156878430441332892946451406852312946515743074427878320163347992081627733621462097631084758010619924041513150927983832329020260571256459803582045638679221084543090396505896305593618473115682260089033023606576754491265197707048707618083557487756052122796854219546014207998171234430739230385696901032812849169726873167322359926548719140573461114856708802709555646539325969017841561415887950810658991699471126195838720861250559965407939948769447081728713751453719895429897576983665869897656972278158557509335555759821360665369387215736874572856472945694195234988255428990566627845212620262776588987383325501701583909481839250768915214968622350203027196910412439358675528411198971801131388944431919859676986503013337020741205474222101263683875653758243364713511609395164421368732857783582401671664524414204923130961261657755275530106398937301256603304551918099833674251305680420589108115030378540590528456089031322837747997053528827098549459298078297643418282857011111945220604126362015074121312935669046885553322199378484808665185561457930543242947779536334299409495137996792985944388073654029483538926506532535977352843500003529603618426533734469423037938886899898460847669619408874320493004281706583471895595042949713991872194459810229271058301313223406252716984017095271421745016984677103998218868438678166258667540823841951405231188148207059815277651228959466410049102167517123075858963574414549245820941156263562926835528299147532610284738519598312888414545562762723308614306192554840230267641590348571368161437388367294036458297582281716139263176120755446751380798429621643441915441305874690429599990676511735099152062039548487611519179084607820292437898180811194894366651906916610340267191097980833430767018676184668231011714301712722081937184300584171687621254271310354868022616433347422396062428479603807972726111792877135575907243547989478071822424087397712850647346433707875161034391560589726990891226606545450789827024067325534316134425513472392504192371820256380786188499035189379309385151119546850505632984334040744010523933743437560534900429728494814382061722865486460496279813289986301983114286048591265629846692765266322160270096224928731873829355980093997487366670554304396502626608116196773957881368080952866698431981089245176839602974490767472782642067662463848468308278835062578205209052385638795009305336653738630222744202412948349056229860206107514838262428949326808778626410201451771962286634216850022839090469554813729233638956908864378123294631336040905371949488333620325391806884275779180428384753907175773932967835410219918830546513989446760420057684719381673389965086803268383573812458803816462373620195742546666327665959971779473750393552824538521632718813602876282148647906427209729877739032581713115339275595916098740312743282459244736316010711001882438385267613701363436951223882331461214565567054953960603551429989573522661949575649481526100363745594432518650265806102245814702907330012829611957317765699969913822975622784123733151590034028088883923861457256665761921757261521365538684083389433054247765479899423430051443361903159065064758856032797678620983538148905011415279326915701618833441481310390097229979286055065318991114607318707926985240657580593667525495397030039301926462217995190104708192389362862608285726388477271664995008671200212962341281702353655738673824737062333448424356113619891036216801038145599921891105676705390576430959483610433325395324575408096379500212141652523522685968737346082817872147377272499343401296796086504213939648905621098907762533209938771097300711327038509687472504960516805800842677792855160316485285257760525620434142880558381891669358313224165394053687596230248060624632488525079979511830130696062218088987578995776511740671257035755340394349212327123090028503750259213996557640310144975259335878823497796394365920393494427790799176327596107674790319744214457315875856950590047099441544934823094163841127708330751956501972669097406823790824493896606902588631378203216067059889367851655020392038298667669661945819182557164652313036224218685080588242397004324094545113710346794790037870613700680643429837279642661753863788766731193071678181278618274424822465705540532352530355282400632121144608626936376370701982010177323038314724236769787823092875829906781314234974045905434094908654898318591170654973041136249964018716799964856707245082587232447856297819892437524799748277035784770375069246407932429422656548059190141949540736286670951608130653042870828101128250528407347641393966928691522840790055662270052940701991105931444757110210179743486234832916034585632683968915932709854312870563439804095984540585117815714469267217572753863886663961947355341588337784705145975575933170313328075153472876711618644688853943946512253767993086431685124899446520326683994138345349704221970778610269730300930368217986031487744184760508869267964138373447332360622980100657159369145789403004549789030059447440223030877652620929685546038470742171263134483902704816495462511088064014010119103573293524573079621336708124863502931104059643862880269386233657838394216262585103902837373854468692804739940704576761246591842187097010579215487315126137010429151325652690020796005009232158529029974045529879377270813012694802790616886441058083958960396505191982058917995796032043039186347421424055856159743080792014216903731379460076940105114253533580941499906905933528393795095102549502287105803740520872556302418273511605205550626843123774784689141697125770112554319452144302316159610845805772802899062500990121671855251873168122656311855333939958179445112660283706710528958310990472445945092391615566688568810451266151172130432584255636701142989954948856870024136273374318301455580457281023375212801945692602190035344625214499660851857441212581276274982625618159126640080288476779662563222054635471422566865723324705147734268924445531707695702636036757379764322102121658519313325572345939714039360197020121050775221656459097929331803533979839946399260990029910758183637630524005705129842805942496299948469073396541241409705206428920274157951484911884783574191630007280611539612596104225206990283053966724855838042163798644888594489207763027292777464474050331903484998933226895261588613058765161898418844468038690199768434179053371195809390602432330170421090948706996247946089156736611737099912163634351391546971611757828606937490214155079529014738335181384910519198782139354876606074951688272261500745270168802871054776512213369350660146369986517271014176818306778482217400066095161577034658110808332535903850868061992649330382863990544945403283618448768300133683749872335066859863158311541554946719469208981678279782920060533549538640967146043295842482215302474549693842789467514535390023837739070226883416672212649857667891198772741187712294185044176783698080802048078271624660809304635900609170742030523390782784108387035976516112464365140914159343181540584751930662210144109090903907146972048445977125331430277661915149596715597916960935126661584992352198850772047114892248171651277302981327438718994603452436038809584215790859540402738087486733023635296835813309194952434159697641602097209232427891226137985392425613586689821367655843700929687398715973425660180232512060625896754062199076518901358857411073916983796879651718994449061182783564771145235621859409704549140887732641468108499892322467503661657838031237737042102678063435626480232458753592154405406949427244338256561969309895229864261798111513948334973342585279593940249239912800289085764707053549161841359288642578866016082731353054530270873141373726426816672766161302438714336669527306517064454264128300905866469718653045637481966035424800952058824007944780150531063372415318166249060680476102823999416764708465072690872009372049852156043272995027075207799507062874210122631356745680509439404813377131555174539883977233897758388355071771362979743204722399804255359668908323012813103540927916769416319656257206274089638308040678241359629311541317802789225558297823261188786096870825722948316565248695881508846329084657970726811842998965326895236217889684423805375160777628933427304168236163159141571895696119278881589524552926268332417951113371637470342040886804660483829775410717039286146935632984316411150255856304393055004320004561974968833166186088255406558553206970201028004336500540067269582906191869393681155112804708330620855961358038999185666093553797337696264120420458810765412459630812139976482437964249450586289962314155969791252009635343744615579403324808558996985943198651842746034149648592091388293093677055222608446084661226404910933608279886100502237595556066124800715218711405600319625210471653731970221153806180917415960232196179205085274723207693589600404137241950847465657704064468465412592643108941540072878445573774253176062845278906125014647547807248297974907567350426757791324803109003397310327683390354151350769159758130193522132293064957440449263061157345176032808801192643980010499462094073491106203200757655556317292016852726150332716323069296312194496417171888974145217460366053310086904007677427840122597616668308759155591847318899966504549728258919882178851844934488587314369812828075498399656267966299749587585095364635544670052779767097759904345930360335201569404128666963948674909644363431154138146831234185307169005563471202833015954458671440619065074997295909544838869971641029967784020771127665573184013169098515755307732358725983210980073952649843433253507317999985819803509569664419277225141453775712857542790920947203727886323260159667748666722768824167670147284824789425359988413020511005041149442219892075547544255570929407611599461806884687422887581192554174640008355026698527378556072077311527597347559414605823824500799197433622816016928163257695388881289176073349108000706011755273211206150932894809569621258044849456070794619634589633137727406063709993741633694221609099566455959678089330552470647798328695825093606838272411403789827436944525788717727691100471106712622229040853992181149805198507623995623828376742488290971557411888274969805968825834731725226689795044922052388243547385858282724554281504306242578530415110268222744903135775175123495617916391081735702571144682520999553818973688663128089069749433060244102934475985720599282851702920648867444150795372347447271323762246952075484548664851943037094562718886596630729103380630420731992563974965336855413019548264674127505054292627871333046035124137330571964057188686609090328227185327687324167078436682676411888077936891256236002658106343502624097309728224201704196427278264133108672989360578059678282377780971397810778857446593342502060967931725576197339381239292853295163037741644913296942088364042549400382367802514645766940005485547695246192475394292670756741510922347478833346037602191779921247915136887773730383743785647355383874046123515381333064013421841238921614059972123887791498813301348780601367844200146896348393056611920508391028349712112897834594815900076033221310634613863991236727009472846089822502976311638938751604577532467709858759025391532391008589806541112169515394030629420673510340341773951418014352801608468336678569133664766560651229766451427903191702128489728766229284485303832891358022727477219880101063652683814150451589846444896749811170189507851152646513175827072773959114754680435825385291939585575849427065414403139591534886407256695461909077880373759791804273077925099536265678649828616205913784274152943976272585335742044565224951805913009456144787410932408340992498208637137062578525862282631055663454611257919150767442128986672333748838865553595008367320627459784943426910198921013481126928467415348691402042335646192293827665715838566885360914017778075324274590582400505181446109161660314107869678594006779916981209627369350328359055747739630725552299302038292781530447423580215468971087207844326448324735743461414331948088555267895951740124392441079227916947564418252575345984284592233576897520742854182832616760211469792330819124144537557724351465387853451371437251811369957775152841068450935184359334725939751588164198950274369562530897018196607280595992122204354583698882285774320318628407924179476280018808614030646867298784472620461582168076077164834054152144902236419076110530256480144706226625476319127554660455805395763248525577608638398074780873720014968547467630587842969619166373557975821576521170496878060940875678405855606858815010967950214659827798990802930652073739253759955097594921827439445822627735926325710223788682656087832065995835124851476815499660287774758949352950470543919099980245878250405454800134791823813521432012599564732098606614878634770263422000939525980913105436490724660076382069580922928267363269642670327862166502980326777845282863186757524972793038566659425051020150491827115202343502806278175283665535491535416231003325803412169849781500877822634228001934988657920769447130273655934923289887661898645801860239398693507271260613103761327629240009702653243396985918386527901202993184668105609155223223022238518082993611699118491006773094163521183646918550301352847793783730831148866065359557043029520645274202041474945948158066933304514586108260536979371629241933761312656396127403618050262163766118008270867292500459428030601086112981544322316368515965768015582058121261978332988724040461964890265816134940331280143112801463477670198755928063778454974740246423535777873627078431525158155690427447056538395427035830905155464151059229326096965861631143352950704286237583105517403018532753843173533264160131733784934638011974959212964594117650101844086892492953293740865107501978441219342269269291388351590274479719965630492947758107138249406228976056108491613766414630523352071962995289805291940089440313240327950524010859081789858824621079320109051557968658935443841142743557931224477812451151295242392887110168391298595883311343767869230933986989097495236740105751205291832693420004474802858907352040117802402508066825533261977767178776718373730870399646613941997553115731625936030027962257394968272346849078410608999842841508358581991349685096965722337307299628346096805324106271928909131698554012924375516907093973774526572051350696514498655374897561296414847599464032851206404368560628656765560087297467246436571827633030095652616325788443038220921325265673864955392561479639855382982787129522666808928277847740238852972074615626639097079495153516470841712093918292088952222478100457286702527562559163727238230618858173439316115104427780111655666170926500415211511312660253408968737262386885182834736757034836172607839527749886951544608526801869077305266983410872393746573530515457419121470765195218834031104691727632522550166555279943389043087264168454739506990350357730230183168276971520845556842421899472195408161061385130624013188703301534434862206221443112710581112144793585174703338002650570018145755429841309671826798400050349683808829345221618791310454932183735103813145413161163312823339547205898026718710193318824652159888805017433937491704017409106084263449115257209519822306637562559439070464987307077100730104825168310822383227284858306957393303301192197333028023100406131208202548727824397211945835157659294792187947989425511238421406573246075104331343936270639957608327617935109265949585301342193365139539973425634575897032883255969725241917030725912490288261973005450476725500013929136951320919200776217165710160417395575219098912396140214933695886823117682616233268202021514750053383099638465706259832142474585407173635111410429620499375377058437756377704082182885201574535825846424651251852961513564358631041930015718541159722634353692354324716113839152138483050631708484280019057229079465166374128620564618384890183154513420143802506384486124312438692070665906604374215316828513086611806716112460710716848665343875140863268662449612059822331121614108914878261424838097862642785000022685759978575127598573831386749977790324470734801676098783792749069287976566682380331442873255744576319111002916997741416570977433672162566400676645249279483927306754546287951765575175355864625466862305490971079351329447120102786184831177969622802401233084356857799327318361048731920276833706960892711825975386532056087759424306465748946248850775854977963848519972170784803186068079918872254304758439313952294100144081068165611646504949497753624688624733883502715425759128713228129836137809183508843882280493095752308752479775946143655582894942138515929377523163342502136683061085691709957077685506251841309542441591348930106356671298991841511812169278053650691025192482857537846414356646237047325456975445757832828469643887644758216922380587129847638393087395921881631993910765791122249482618583677624592717456003980361391875523939721794599803122760622908829777595974938008571566646209233732333608084450143797759144326412277178400398472289006068263813775690391405094695889720726027673503905825079068193369179519059936002159472253964836041583544006493355914404305597627902137416360159656896297596739599493063904812593349196190130782466699932888083019955024855892212574877180124701601911634268713650005590951089705878616410807805698975892626408211096360991154489451754199355059051554032734710732567731947648275521910157944077721510563174396863995378175278928491724136040991841804957105711553731449851260791756269913341699972129537554590979976539192302262773306361271646113475261010242612198680817436181062627646697285783327855099088079887045622903538514823998463533266563952474404982848940471677752637063212839210423832964525659796090600610953604005574133204495987438334558555424766138934804451446112815663570019010356057478030128135682338084018696117189222859738211765928395355813678968303379309030209567524918138938203857748281010284751189139634808634228008819336015800075816439593673693096189892347478283101834492020796699826352669718018396178578896790246862326278190538712896138621593504949319197086245182905989863180616732243108643165869012363958121586764414502272635304079251945172103641599715565700360382996151618114963419245078086662559153316778828101026417456422669935672731050254223827669588479629234866724599071875935452619171287288629264861215064877550243096233854818838414568837961060109250268355490469600377063597458132883557889302766184432101278354878027233760049815787242616616819110912682400261021308059064770360473113125836114200670077764614674879116924399279014162410705886775281489433871119132344080571383488061611245688285133809116815401494469245810269708901634822972676070312678153456672943584740088356354294040849740354021048009351365284828445200658040847715396788848669836737313709231516674718990376616074558210036943748906241712898682008870285720920269078806434387309800230979824144148421119380595488307182243837367985879765571303075582752932947675444740596024903767098497166670543069921210647299376350924591037814536900876063381231818160085240330936825004415051392863723572572445509289546371727017328720293158326650936771555285145176415662282602668166950399828244532707532142620085292214560398857964792348717458514545049427591456751179134786586019679513535906212285156786417574529696582273373441751202754588411975596642844584573611280391687773822565915995413182741889313842699192705456324482899273126306856443245200619568995751377215963888109822599986517039024239163492118190983392638855463388730662197620853299947946656126547168247390407800344273502773860966756983350510546329718087331972924262484905395030084848364993068525742815408246246614473122818246510892056948685886940309906815547648234199015091287634475861005767483566625972263684589358240405128425551420797477774586800099973400365751905653659655808248747488280985397557254493764283355740577132270208912663935684799400693119469072881282909067588261213678868847234701587665646231228099453945845606562045762499002522362703881741572076146824074751131692697378290391821012991534752371424928784520933224814587424060971820630264557374089068151807149483721451944467197776854635891225034722569494425512516852002098606853051676506434940907547704459099074062805736292771225591027298817051469786973597704376946480755955333658450044077715984212473885275239466945227412765182072070218588881242315779518724745960777464228401958745273194306381221937015331594145822647759226257075182201231275446057974350359878983876949313678347253519136974428037691430445426387830379726916039468695770613032850748662105047027927812910347044458664661845830119517481871500396893281468568710341877688882338177306942296567600859745024778261248059548022617941506951701528983689471949341083294451989081905148522043489567759487089159668946245186871688394684979555761994527455971076817080355122821061557898316199592429303366501158163521849445413430931741517972926126905731110323755839904041181953616677535425867069550005832764877523322961528039348702058360477429925885347247775757103625639080410209756284789330654004823541968440910357575505366014872636183071717478540106376061913712883311027490196401295352187715106906786427329037676957638488765480485469895494015440420432607289504209095307139913846617481589081221143041094609078762894363612818104650875786415854624975349151262815874749899118199835675288138781968004054455369852749970857319716279345039559768710616318209538547480386656477622763829184626464251299337507192782113075031237847097630108751087370934810441099721348317302082788917151112435806685973453160694960659335051669182316876597803298402777189924235226067353625836342865037382215025269936681346797810297750971986902167960157403403665002080277103675407477550555444210649692771283134150459156151331559761509622497617811736321686717956983519269865915195282916570893604350269506497346834338222782060419015459267089965348054040693293201537934745891819775551228765494161025434806629415619810340794758957198696913105372840549995678912670594683496149551295275824196790179310661742880458640248606450155079221628852061994289858683301490846822946242086480347875993919340905183438965213436454075059986451581906688667697936249649069323443520271178947418847167036853596707583883541331349387226642746422834360925489068813603009659338234454540509137912106288789993796647891994459192707903193132212592772150690455124548371287478424883391512103181562810582630533067319788888362965654525642846057170158231557016190289833099400451534378368767943382809942561226270707396584830211391527476547936848600423601846303803446815062493606178638905180304083331671330044143070160183799485716447950177722553902098380104925571388591805076302640866140278142658409462395739876532472908619498957846516764613605834011374568599827192097309859680745011827616092352131418304966725324052643358562115848431461033339750426273980297629225741439037319776312971747364663135452447820904236734069915264279988226026211904699141337613855521779376074258008511718774124536946372720166255503878509006068006787271886013166188470403263660140372301909654421201261705481468645774702380828246036697852539733394792791922071240429116268465019746209438587936546409583658052465257398396971301144499983113416666218398289587266145127208093844466218639446327515220997998826866106981807821795045617550883363291505733833732994591353566392507867889090438487746105159134845677036681421858546874989956113132317246124440490130686356177441867657449190894447510610184790401287842855641975131834953454045699120482555263155954170619071826809103494574650991501482615751856042820117255546785046868741032181512625584351157389373331696402903302854034809147451834472969717339370674559966496613855477354979827960628890424853565471774189878431655705219978405337284205991222816016982744774090841644981988697324761666782184838490380117264231983666744696907905040471496845421507150685835985829245661092109499233546798840394068879431851472822424131991131800540955292006516896853753102383184189839630469710418335172460072668979556884888666404922357301236793310580764922314227433702825534177223046428127684945602419472275005903595793643678881843094526559132921758488961602099703200168331510989345508959548404617664458381642258134150378103938203224104840712377760317879709378447727008987791518370402206072785433558768908786809593501822203097096177154910256211715891076478554196425801934425424330231583031946441519221568433911999473912509781579737512033789245763510701973122147074955825080156210631965781974541918914050253859130220370998828136734225617165225551767414934458378103188094593181684869379733707739965376116138405789251696356963786601484780054232061479227895574433788294781471434046374866017068043205473558632926916279472395749967448106406689090985587473875362344179691131802072601261153327169692402146242348030252394693915172955538510695464178229705389208940818444751881080381965354730778740473158760791926753425302726592230036347919154955643735609707894276304000991154250302446609216682457557937028096670025833106920440624692866719395518813653320267876697280484288329946615257430356310631073130136232015462827834611799454539000679788820835374591624619292788543359678070567370176029254133744499498447595751429350582038110877549948341610054403404085679083012251326803965855774571271795177043428126578110982063581141600656565422761410393525655424440775596261342000983463356850013679996020207610134033045885749769565547991780403475485110506666743690611475531993637716516167006485990813630954193469362553227809973069685224526567722445115779786219683871896895654263175601264827802603616325277611554845077610056703850071642057603323855838580368777350998254916210753529536267214080934384068456462146471890733111636006928424989913175254507715882196910572334925372873014090078042255411835894457803600073973445460687070634737197493214251165016095243129208462629487094474597252405401026565020483764826071878101167666627455487961801175319323275645363901647724465979291405425884089274821495961608625229685797027331924248700266829971249129563327893807029655211549071721387279533730030895029450849254982548875217541873315557862099918404733180732237129574625053476134138184294133416934497717711495184379095118643297031306152433194733094915075511386077266778969912098996208470905894747190856665247248489263324965195058318536715253775219086103654135704483169946108887511957692203324865341855587316404582050835806767685528370467717076532279288436686760663418474158948922297894598976721472622433623105310316119168814148863255083045776052244553749206506793874184008650135494883038903943487742377167282839599477200327259893397124674912495653955994743368894796373672473331017453200468528851506358374827801566884131103458300088395486358546377828898010658660206103728668690197829639282562520575039569860703507337131102397179308460680180839929420540175126658130718821309396805812630279547129495871274105947927604413827482163099866730792967190103014941670146524893966628566640898183895609709573750545802845232064634452441332456031305029126923793885283488262574972043849470022143486513879784185238566147371838488747000121184335688948443338088410369758901221328161211269159453079016818271508587487909546589172397631451851130365452032079187769622578981580172635767511773851278988659032484669654816522802903014406899159716685186304336658224034330469714270300977545052016211246622403357218220965343293976409508800254581456930189778130266192565395680718372029849842118538960723944584716380964676960872729216548323325648949636845461912278318036146258268954265121702096421779180752569942301187815392551784167680655419529811563028325930088238210961842612917364792711768252093695887202378540681756537317931592882661630853427039231434256861123417890966844043443451680646258452176459149836866367858518427122082173241448607929480528843145652559666622552628007535801546584413179875889303401278359745393311797379754164400951964219966064859478934810911962128581140094463908792226259118167704238339707331372036089530572930826823529128974284983157918012427607307950945658559093832384864591941508992316029519524077512588929636161839166152092575990361452947334727104633157766243935789520776079946180110071110251210884114588652461188296973100505429153811977707352440729415071041431768019001398808746453125901935373014612055657804443901860057215227418671326235817343490771477929850632549009320285057857011476081094906605198393981694046584253870741856959903265009670856876430935707582081602245171088604828153431332359132669640662256175090496064014717190080449654358956689821043029428777840687392069000998404772626486520267518347250016263328184053167085214326986707348231880499588640880680484371147566427288211178095406990005611548682172890463724524385965996420818008424879895034094657097451073420604321776129870290083495618843964806026146182303592280760271383711743113013756742897988045323208564218884142535259617790853383498148766126095974782383516195241490866304028895831798048573576190853537134151612145791486079576164624701000934075645201872303006607022481785265567252162107037761762207770752189616940277186598586094460610395731918744801621751587041537465429793605127897587386691982902827272725013422732940820118618356168223762052512603523065236647889075922052913388674218159001512932887168507781856581609928264920852821179703913261828309705612149386710704511452645949870003805357591755371538100612588621587433571858782298900224162354865997016708522289980261829580749431948644660043625308515551631482294332056684645218027051415335767277443104945607556379586209807877483155237484276450258157229886418306093457916376129132880684730217642545896301591330566677710619672234642950458866916477953763056591675875235232230371053971065664335653892289549925464884687592546522610499797833489351974370883072982436922862845722536153766361877481037513577521061165310399164250148877956347179018710839204115228664212276919332210949271797747327902305945461529587701390164959405621976080036354338589563467110019998666123460878711278343917682399994891319877447656633296865894094564961620051228203028145515869767104707736346642268726534229439793188751443661107134331965360171018939590860636474563196610412595911887345808173924239762396005852594168141290158518240269197938666235349220863249017954524221479310793038368105019853454886406198191057086461066710116319222708330653253721097910033254701585487353619981901957005550387097863207017334969434187191926003771621501352429449443311864393274763010152001066224047234598916200609540457483652382444307528855649429430368856818823878081065013833914330645000775657717478219935204541013350574676829416099780826605451229316111392677671338255804033597392449362104038251495487537180586920336952519878939995438960305701050454348625509338121675749815653446679605630178995349292415980108755522713150053533639190161026086221174943240517582253692292646199718951017981100575040048036376019496579923768249906942807428146293872315397345437547172125002882795777385540258290286057955725898643924432400983654048405415619940364101518414726963315128432105233139612143426732209959160273107778078388867404896623626323338622345029911414111153303321387712540068539894843072387112298371312908070852246933533638049372487638007654214653852305422767512852758370758684033602177028223654882683254415015946797728120351410888321994307069002861393658191954542837275873770761689444473199061753466202369517893132883765185088745042300323132954629268259037520424242723353777434265143731093346990758041125119256475068292427366080351254668236379969984555954913479891240611784814203742832649347689856121762025244257823215745410460716543379819136873712981087943270367222717325159084288140976374544333498706069377874138416996459073774295102289656810668086111104491733469082728377675845842208060186461728612059841118658646838643778268428093744651048667770760501296000135966500472229467897590374765924594417432086857438027189390754820742256578837457125264266255484621633372032489603813144943107101927283280223203405357834764939832552995824687800679129828088139948933544396835576268242488093416007233166267440186593167003666919518181375658586552167684529650268613207639138976801357988442745577818818080189960422382284294569091264351250975874986450582557087136078101952299975984647781741405654041539213094035775797550382884683180828933126980441855735861111789982392240660220948843303178256220599340948142558851162753507541011662576875625732960926387185362780963650499378089665851160772817399262433644350674006883009030786034446518907680514747917142707148782222608173987921041915310790045052307838080124937936640727255296925063443877745319196919866071797028099066669045336055221386479227933216297636394410845593725996104926291453482434370617026161331714232354758880568755163401672251720255895012411453849041697854330584262420097273978848093456533757716439597752693757500797237544921304926069126631531892905300167732079094420280297262800233538070125913676229567327991407105656018307121703680321636056388518290868683752044526257829776274809585379456294891835119200995935133067407170864758096651684478368787447454342635876766472058997296722839996897843859373280549762957383778412035266022543783798593659706114674136748135735093195445928484885424045346808214205594664850686921970030616839932254440516201173509463417539586411757577154089735090671672736441556136033958170399193116447237921024145367409585486559021846545044035421684819254234739632851654256766018843344102074489909023701300626744949380766707677663140671174878875161918432407567602265339351719164576350131673909771251440126402698443143479500385732505998533583426262351323111756464975353342054454510188282521196514978509734867500145490166990714709689226978719078911212794249946067244924881182787018101064804982188258782480500238530153979611616884281754664720537263851104055289060165185662470527453411886307103205026515791500774543703756151669074235952222007023335922910408830624993954196988230152204181470115759076629013755747260200274661240720644329482818312014108572039755860370703278124303140489122300261261937103283291199892009786952579485451711740137202879686613671025470792026897754365209370296027965691438981919979256634302143854494691324313596654671720273698777069718069531322149727158113097020163551026750358138364327061004774461510246573546978847375856987611142318471246635215850023606506438156117878380050669333680006750696070978422486106525309039590753124528154157809419511452485640923190735602444819851131176266568553955041797219421694724979861168124569021261002886482709484646904562104171494110225611295685057343507455541472062862552654299378018240896669545863569690903678712449760033261095757392349518184476617572336865319381405351701413070751160286650150222402614395557067828324757903209233486227401569645396659266364292766653656362098253824448633048828312667283676396202341559305090028131928801135538800818386441169552875236079556510031599592038532153481494758163931344030348498220868816271110233246270843239322529401729476459482767536277387000018745531739410874717226148273670346688685656494345520144645187465384852793953983072438257089037491329150401554677417568142451372854450088826112067157612952840815736768065984915320947766955162434860841895178202192559353007461035306958477955143126931408337576505155710464583975081540088688695852301132639796821381175564896686363451712673543089943880783813457669089270309071256774216740212171934252906014137608580780324994410186571894167998420535541991878178718455993199831838297221239220572896618248290580708848587911525387304687388492210151390545815481230181839141897994757303611602165716531485663102541879931198130345961970106745071640759214876883262878394095446927947386255806142106385138397044225861595328885833323304694924560395066482381777255035816697864876918290245704847739250153993977212733234132149555740745379635988217945660586724825274928895400055126995414577670977504143160467356814383330619618257816339998840492019249356113387734364296447351791173859858968417682990132527310528367194088547988490577251079004365206193245820065997215034266685334027276462522335426605896848852520671807799714232669309025559499493103023730203684339602378876015684131076357391853261304315438183997329815651560733036745298970132356778799623320219982614236521480759452481498703425352184642232113687956044148101371288849570961025279124750853263503679380847905242469014550509752044482244505765744575590836442859590663306360443741936081177731026471487641179855142568861183020060110134911171054752027870206969019459291810566391387566685628586253737271691841093461740614392842934208808572061214589270375022579676119584212813684749803627951193946313061182208841471705680330219840199372601276844568426657196569253644473918978178854354067806868069348768504439401345202487162002340518331805147996148243663758616141217429074880972345221060223901472426613188132988566660982417763153928551222105604995083330487651534106585093084795854452444834401909824711251611395656642367924441917058747783072098878644976098155288507882974984826307395430950365059892868114905157845535398560574615665414553952960869327347652621747178391942536743958862018560374227815335837530478301406618242172379401848954718554359001405246498771536406370234113737381921062793841184582958719722563901296216524354921853087904814853400853327528015681319839328524690010284631029815954183901964609459238551276514516672509135055331324797443811737121814914649368314197924455972512951751004690489239512655016461261251298515496413181649406971973299501013833374750624686056183815261301423360130266950815214942215127494510319042228957138967549403265896052315286161378248428265073999592479577142156619394560680182393548727732370155287239052046581315383941092247342698801211713286571172351562094609887746197060400413002650959630284580899900806667199832846197764910359192696204703128385692868006993958886912421017518535838970984625124302496179902413031102542121987225178235781461665125969234108272505556981206775531754243443983962504430396028503659410508684501249444504755956446859731614795121021535541730107631479916669242121431254337100962118707265592838514608187944989453686631286538459289233825512534200803931234053112171064341266893389337866692456107644380790280745305639195027163982600786319609528810222838187165685101112440383676461945924888764260042206262286749734329419662727219809739083736131577126579578409081046273036073521312880837665470556175763487296316104576587617383193226760318414298899084081333218332199447525032910322760555520216850228969056498295589693481020120799761156610757452064950181324644911965973963145368438457224932856467330604715066853864490151241498514331176172558969299153547788378317079791877874602860171977958912385767171105214888131245882036730986859802085132892714485216653986466129704231071174841277049769612176162807331159734151747180932196673738430700306783794269615060347645661133575779598299734903564500108650915649338419603366604424455215006568301520632198009469696992128753566954555895576005433622900260069393730959076494299421104746543409966800881170506422155707503104774389192469232221737892391077090301652792126157630540925168474636300302238303390667878585711357703853296328712830939464657070696972540932703041162316473381916569602102091662650018400607912901549997704658095532925367060193019322564445123856852137380152939928517685913788853828365758998615487923183397004197479627672325608139207793138299088832037857027352603461267444893661525463332575679513298791539347254406953382360617581916171247016191731403333321789946619297954138097079171871402874345227230909554007715914840978957624856511289147421861652337182649797516442184459508165752434644833050513706682077219493432200934687083967500994170445989291793339628407546275830120856498782564280120864657308190218776084744454741450761390380294221692947910176456904603579360422979216374037922038577859431526908321516068086739328289100219390295408312394198123189534090442932271729317343215767098872883025024735363833500904519299333875959130485452719077173560857508045558389310397095015260197656356881642803612467606155032534907124049337223316843821664266919212751703410953533011097114019645188027566438822057253907119182220405214992548646855591493703461049740431166229410715658045800457162371857817259379965207288100178037060296419052612165512396659143919125886586373355788398939849662633379973429665964605871402998740746586757947260260599387480760362609501723361426643791648580628808352790415107580304855668237671332736810704685061894071323771666846215465870618221812073177956436694041721196221487706859587882546687555909089195351343140899922115110540787525072874490606600602015632426297765483711765953776986317011738024538846427220788669833285191551094220957288539813625126186773850577653293332533444164892570030307084484578234796548708923517120212217079139891214504286817241052549281573932162948893900810620496660273332601403640489851152480427414871759140530962439807263226960058076675994836641064925684446976427518797333389721707080940064350975824771135740912856713622661652219778636087520621307062078843071810307081192626836331562753934342085191153453198029671460811163166149832409198951752225825013817609217295131728185011476361134293182109660739986422838709240612612719321814843924983137033824590141939328744495531990639336270377382302021703144447784169047613959470698681965864313627215485100835805017146443548108401295981507268689379086536252655849255117489374238593802316415426094851505378167037617873909428055164251177852863175196663370315738328945577962195948666411948152039310728778433283257685692674955999530769420676229176827549126616388165163505525936187439061321422831541473487017148020234810257893692718550566869136420249319215568808511884842836141260405121478465242603919738367459249131831377692957077393692210686926159287968046572691256491457844523708051233061149568779704859664697895127088340524886602472079062064150126430323010811230913632956251341594668710184537930532732189321164217165916264305076284333189025219264789251473068998828413741977090623984668474637770613559393512166148852242737970342743997732336844317828762615486971242530147365631340062586588943468933674550944620120327271799122444887183328402421853781060377780694605959791107920117654696922523250348033883724409924850561950090681071708704127584683723454657605091036211787124833604145717635334747336388138336190617546408416303365889069007827998769653948500959939065273252505179294319519611578683612729500867537429558149113170872931010175987728268940425593278653397371922542219066734338957116537760900356367249286083071463085435055368294614259770461018165645488365811307521975494568950875806087715758290736706427279741323579541605523550138497870939759697195259798643804997497379005404348959808553844633852958528629382798892404461720062305103861688889004745061094960554865105179071365862333513834033298943655585030904402466711935797257250772959585564698571832295436934423405048202127484922549262580155694775425813662454803515001931708457410618645011454704370922139152327616573566995209439200423933566160184421902619626928652710957713639955324544721946737550198039373329420895319117481886014975953896865631526603102819891452280297545490229611096638466827246335629772284138628990501534665879535093347905531707377356688758417572290950169225104196697432950880314705843224421362373485930586537553605569177553024687730595436371715795719795435569868884609828084926264425664441095682557381561783839689507484004181945581773829105689197603505548997738375801583348580633015124299293604314754168975455685841752342873048855006916351716925714678192236470934879449841596120340731012354537859861881873506623229359592819094805185076671741389847046824674481011952010121003949306283599444200097257545466203188029825750654596244352828704823538316758875904788987404914772595174923392194833193967982979446322221061891317119920586554655794852693082157784497230368538851592547764017814541366581316145816269645930449772235298996350917082918963379085787321587487242465373747350780555982214974969880718909397761276098196090874723867403888602578571699327950107211524941838077048046506388114678009856031578747572282437258733466999872235048274132733421692561289626489646179812658015431231741862440300215320208637182873975212420334857427716571560254033273977686603693014377655802242466769550648780678569607652628497765220608994714576065066403677646782055843511235673546835515393961403338883712904444688636838588299441842332858862646425300138384389771887827630548759762930654429901546730471085318171693941402834268149868806493183773867850281761452870614499926381947870096999923751909304923556395769662403385251886863151024053779193938211025954955102715573580576800943998651878826826240407976892100797748825593079042149106914587603452737392572377280443772246570331211344996459881998584137210606896103814108787497126644975600548556964140493333248534146309477142002379861549859265654428723630402465381384193935773192805977624396897474597159654622948975568965959413797081023801411370249709806636998461235735051314501370908737551668869582813946919663886030569521758894683949967830659995245912670388578392225343308862331682266477994932178065278966314283471223287390748165360427642521461454340406711707066150530719649975306874681690128007874290786011452293748054434374688014529767239379276150849731220276545155768037771461230225210957482990580069915706550596516560410630301687851549094337651630707149266857558055380948184477568630385912062997417437071466806353780133530963561325151085750776563900082181404314861298780928461514989315808594894057756240901342465112783337785264668999059816492778855088961781003696868093832754032569253506827419874657562548626498247788077095954227591916739263708495510584091533635623989834627792909922866155834975828162479528951987166804805923271825881887478426924843842076408878945432059230136132969924129079007860821552230384652259313264503740308210289355535228181420776085595610043302715240772879235683021389155698837141905100623740604810989291174237907817226333344555971382967132767430497489548991985807032869306395324968468526759994890212250537177445981102776635893913899101489191252348657112501881721619319652905804433861874654629107591555411199130100062727089980653447651898506217754245570244248832414871263621314303118279183204470238574080727096680004835776995386117508346432543359608802758619610908581862133917819700839506555406185567003565275297032814977414505076747622918263611406287066405262607181147319336436215953710291955924571999207801308060259358637691266732717518467049775190464396086674717600207279091118803924507571688181540717435826393897012542784059532231165457939820884618272598600516929504370126543913065220123940639367800893057317812401031959633635892113170384553666832420408913878909150377243199602626300739460468242878689737347492748175157639316830102135068299506846518454746875596561345892727667252928059680182604674099205508684756364286651178089837891754525006504437176143720413887554839556193612760886617475735051241791189661242076054076869291000901528216748727266683105154032573549132436414261218712100639929005287672542999021341839447604253482909585849534860108799459527449316060165159971785564648329884053856551002372036694250274805935617511047566718758115687976973881057029598021731326988786138502781074145401296847713601625512873952765728928175233043299435493091699076733192563370349437407371209186509813655083440588489433893682548317464160449491946115696649218486828250766614301099437506679826526597463416419742537177932004771436855889625078445334701750211851678001637195788620272676843577150573677405156296125759411423766788745616879572785962567625010101065772202888267103770896898154462663123629146357234174327685714725802761621531979628506231321525015569517356376799049801232452168810454770183055645392403111117633636550506984664316293134684302181341489683022021126220848843664283784545136908448745007549720120790099163248924946306703901292705240826481408651860255038666972070655702134416436672991975948725527470713905688616397649629757928332650270336315127017320385703055554183556987711426845663598081360108769002203316579395176459293350745999761001735904873620032640475038778377976643542564877699591006774031855864302596128133134849772693663071566942972999095832363508821922786630438791352994573298661564974599251244460112408163359732142222605333970980003213887555631459937413633263831226250118210509960272881875630139548894085463935770652115646319107819994636903379863466488184162874855937526961679196163907372475780392231534640969081194199253340193785499184584919402963414810752309132838756536157172123058527267349141002198873351870316385531031466234516834559597555747693165618967657720658787860364649501570964785852591505072289783896360973277511998190277678395338193580167537129177448522761208315014325816423207060172953397410188530753837962378314904696998239991247501718524985348084470371036797171921343490194704270537691248805316285239444939117471743802270066199236345560488552766257182236288984355975682284750897550738818194747869327771410161897183268908191318429788582034482957885543755580977880190128255633993073659123478100282285120886563744436679149398821776009707987070129404017689278720747042051662958385371012066165041265972062132658493178258190711998149338007181322210211385711050967248555211826211084734561510859009331620394943121928153752387761459586048297344031522073563463808059772650716104365015758287791823992129696505178165639711091005456206903247914489763234305713407386742280658465976757304062226728612540611251086958333712841585946605089728866574248002655893140428601608181262289039708943481246201260849652194612609038721609383064793953959880070438504804086860129256941316350202238275062362013909401715403571428213586996495320620310786721706726222124617819837354698769484230886632465286015367540646815468846591516161501662512541441026047134020007682572684563126333115731298160377777399104523104306746749328688611232215064363013389681339057382054149755824752311852910160884216271250308766064550471025896594972412679076221289774997856618862152840247204867975419233818116717412440821122051315791446090474377960526068159207160634703478083174488190848579241996442804046711858580451451802153190704103297779502679142787721069582124834664080491747721308164247750455432187735540819283473082282132609873139454687300333198059203685408773618122225356966464594298747722066742955714320018651925027466151149404397041922684458308871116980253302813508978408099568716842336895348150074367997263556895068642576400666647478514977579919922875622007780925758872392964021933528519200398804040458403808262739803898614993819976046113372469744924903468093601225286112584737697233228056217960802179767996494430572572264387168880519425016012534329213516063630867721725873194218454314222220496082819472347414311781808493661183258492905060639323599007817564915757929867164168836659548402665853919269886621240256525912283567161035868584661010517272945574865894548280612958962077437510776853022135135612956211273511852050072602862177420389770376224710133507352019357103154527089520060084152790026628221946505114514715634223357614203826754891091796809840362913224423479870945983639448179130122459839724892793777050675364241817353711756635293432911300329623103036990313229726230881913429476736237688569196153410035800125965568148386778385310854586673929908816816306026970859272564791564301653892598803878315192074598622540074129546045278558128096754712372135709405986180163793172038541360400865329884167911584837548551215062869486602825005201097688091921398190569842282743691181820815822621469484677035426247186274823444195626938741748878819287419721874699063159621670988359144272000441541537777536012360070097017115227198496456214081420894960270954150024746885515410452266344212881774154506773819428796778631135222764097863347137346731183169427473335806463349208692080653744739805099439400515475503861961969913347552280521270249809914270787018872457997358775721740130524922015076480043175484670565630359140861620747333234931120055968962870620397214292793149272492891692382389040009018923215518770208081000247759348150275850393455418123711736546578833976586187602849296205224078710606611765786716859486997302665770701061850836161293298589090718253977976304666489247627170566733754822799733328662442703931171811958289297703704823374309837702474727338081384049662341732020887486730910239545109007110895653476535953035066698238282792278835378955105168814197194396366294415660330426472586208421110499659088448503580311997911103594040547931873017029957965951123728623949487495515806087040578302954672316433819797139902156951125177344023287982305319752059228206877800075767202132065200225153774727253210341636975582988615769557739044482895371733952830302732557808027894280643189013133186460986576339853767563259797122945705414863254681334278520272527768347926852535077817849998992158881198155015875104844228446939166677744951567888200178595921079701223025167520743515084360753073071816199983192818028633481408472841302361251443480903539395874647468879867203180492667126397684854541953191370773725325836951253189263075235359083060602190610830231265136426856321260529926506034217263661951169022607274951656035486817395021529329697052334240283583739940446525300916307164735844990901957430201272764154111949327318880455283972208959696020928366779847971439058931134274510534264547628067354265342151455723625832529471461242699223195980635469465292519526394383608070472996536272166107108913110137857054464216335909022354650941968802219380178976436863692748437455608351591613301167854156868603104614353807522611466596858757212648700128185971223034154737819971864527129283966745895807763705046135549092592461443225252226669126998392034271715826811470236388188718603604963885858966735683823328938133398172589574512909037380412108944139976087356945861530725260290453933956665718563258360161234871571353544612696341469778109635859833059407267478415141730876140178435260392411363150007825974292449769746281980959514747408596793673194376293511970382995865359551684949601845308925195181189833827300829194361869396562547348979157572116652022169500507808110080949480384136462099712272291118592581564359425385560207248844215964874235393157908725928320494580441522526344967854771921229791734471727023939377135041678126910597796659417008144223613735751756103627750890590158495800937744730822077044581956116932816832562700556654932649053418399888813135237896670246375775538098868032524442778634408783664298099101085831111398311360302707234918128890367591248017574877779321226910868332719922421038616465624462640248683549521556482227832039457736693142187973904343487986682933427112046847450268700401009154697092662412951517193245143219369083110476991565069414099480324736079035455537669529335093213808824938644798904974049405499253012232426901314818266111154010822947909027526460885301578294723003274234709825679524024631235065206223729154149584376227956708087103312812842822115831055868396161903390763844904574279950040668109893152296358608742793091195036186323430859271853215183375814610561992162786778332256252491737366034552305679924107316075568560391999008472682020420382068677851919305866281487510137595933582677764197066726645504450381034704696139557450984761606551891105102996154296338694949786002051936585270671414853405888207441478618233953317188378439204316472806878336322233633357663128029731483349145478569313675170862499843053882734632778388934989885599973975610282549269319623500530726405547016013003632300834124016447232876023644750957677689443923329840181419937820872084002931012524644973930127560172858796740560431435260398649213521079271778500946990984507233796201986955675860585177048792612744424949061599349503233362594284720617325305109688691723394420484339285217455177846625776613752291400764771257936839936348890175137556361191394425342247042603338276098040691507983331179319061320220995565642061693871225625929584695139766925135173432152093434660862695450182602890990358643963899172463159768654612417262286346194945312199400319362224261808669359107597674894023246641024366348802790322196437429154690999123751433855378029247296005657157213893835170416701282806138989633791496085040500406343238446003944112535123853554772746382665135071094563111254339089084544090749935070653573177437188710701290055642357582963629142127540138402228553076620217755903335768595532908381010939727360664748588878817481839676014248416501796465241790063836489072170457240769988462313790930341400421644949260884211704433857223949197156118430012667825315455272281962861199476930224252885821427657185242035601472586008288721896435983313653708787052302659651071181360650200747437250808005728412153264558509549373050816222618744098066146859063874052842109883829117094960005909964200257011137673884630458023379373838780815705737640750829511223912087206558817679775614827475880639195161425940773051975824531678588328589648560889327350890851295843281426761770777717520775825042756415262709754815856330267257648748385543670668951603767960109705136631463515961480328334033911249779455895135656956346269488523375166355351863933845806252976804141486477106008582120654457762724401765440236756778778189381614125567147309806331795677055972872742148897543713605740741402925577613510686806775455116585776504915633348643847401045769492807879460946980365039527084674172957247912664175806017058319641326191483383158000255104396153615208899767863274982156021052633661657380282127180820750722462720041848349277488607093549608609447500592097940833594468327323668677563797122609285307498944509550184377281427517914273144688748842575530093693645786375222810051339199425274488810341866325009157292026188714300436064692882271741156610747724938825380592275959438111150988103247130430230241354450869275430738596824318114164622390207404337996563325992789870167614256737016081816520397529648187870730470045560310725895059631639917888953897828352475972060507245837817920637788145236439395254630971819887361744809655705451223635179968421359586455972012220555711238730045406226976393636788506477657267069252955659580273803381351441611968332395170562005741268514249964953426433336627446493937448816043945025756952161048607653989700997407509500669625879438155570678128423084400868070546483808199566728392771462104229226459372706488516662117269399315463980776846030034622769940957143935355518976925416534478322745317515526720591159068644472056499273930197176909449726596621852591281772614320029006146434060674347414009223016521521818578138254433404961658556501771794614735844090764422864479274778175980442640219232206516615656283302842660188497554341324458081578677861039765230812491454877913747015511946727752657501763828273981370029274799508691021880209334689451101729414798118145602272465609796169209475336052498957379933339655545798771736785011901038410851385106077145035036150817673526704151455957716781898503791935931711202955679400500547294408423332756080574500147112182247310149637785954071649206751060303840705088408309846769010571875132107106695814089307086527985650376154966143290549055522490501283744283490694398728742976242596949216088673351099823730522446587299805533604812535351764468691358466947977348083044018261304611545242339841955669565191184387639449845919278061409387573548866993637352636171623340968347430863510677438758443068570344950523783570620954235469659531772918103652346376057134206955640410787342456787739853022608475682502173408446112885639817514009716917182384099712862432403206903232539676633073019778189035240217621322626249206454058298760277277142396447114037349903928237767460952556133214921399039651878991490584556769119056274208929533049252701902992955555040863773499126093791595553418351431733276620094784034159566868322725919206982769389860862232588829962634133944613472341538975307376380562852978881134931104264392514319737460857715211105798394967282104140958484422954175964517279458077580238930093119359967819944410903575529932104891192283181361011030360499493062432672295793624447868804398773471380206098096812907658473914705415868992600189875163429322214949511746491493204265687113511301434975497391934166417332670671632439701507192320565342725641014164819429456028872281396341325723648727950336531145336838843713072437416543915418734718112506079711222411181324896207666052117624738203936670216950404343924591754221456291396332084776534463480210315469579176932504211907526646351413157588120523457930188651332569441213862774955878841901862808265175886547439858330236315264388136289875921637741280274991018641407167912824518814756499520847026774039382024786069431768148007274396630161266697528243563434300541078242502658286735682749022338492322095639287020138297571457090024290480412863632741004754796157985818168377515336496760559179315159577264830494090861934186972370550694983399455561206635130023644670738482561946726137916364533654685948436743339193180422675907451323016444094471060812089624547360161498030736840576747185378070591943613442302013703623962318422435383725296107146817416945706089245099241601427150695593121767273269284519838416922188172237636990458632981375224948696956155006264291196507696029658317131608908158078703087952048999024268476898966372479263882097951389477263062824323987210698014509060368287103938734100585654478851675049373806204045672454883125905089694636935092934611214016257364703084802679715234468877320610527800869086236820196432634781982857051246038441690821958872795344846342834308106548937533064095703076052689192940429714718397987906180238988783562468344775470908208053922194805772456909919591098469108192051549918946243120867800365371144702114270748670722311972501124837034874127393761590001327903372305992130236348886312231493636827689273232511211013211246206184444933151501697390221998720343064444698344068150740178874373841452846581791764805277596709371977871804671649049544936210503528320353905317588445724363430337375033500266764533849623156226796089426556301184584276926407065593930222044826501855059748008914277229642553191812787536215457208158907288270489508329274949258772754115331359837282437441825094531726082679408412811580048918096687736072941221155032877498192334977168783283949043294972484946094569727839536486245423199604593215792127751025090931969916961693843108939354127262465425746869272108053133357049042419716159478453704074162068867837610357946809936694092955072270773222914750892336463331474282547673544509988119893522588299772993408556934678839976195448051755781491816826503506133314141585269955112624224148118373715015816100250320549669607520476808958801607433666623932591760413140056447900735716456210594029425813780129382102832406586079038947497176470279625605295330680095114112049190443900975148954057286090437354662033170834982147805347467627326990958543083215496575004450273297690218184639436126619703834415234402941190343539836664572414990156363236933508747036623309535743665825249751384225098356940322501576831805488568504234774116527317473964124188944753251962963340844124110612591919353870174235512414401096198272667904138419206148028086721180092400992685486302035231344773401897485703941017712715695262386085195671601489864550555380785139553828253445883263538495461855063058193565971975717387801519020643735235952246293463496917815312625399110744217367371520698121893120132278461161902352687297245981195817348341814103072281256546594393642775755897907016262824013879508759437762758317570239996873727812187874729876726802760580551709162536519546931508687039767377764763230970713137390142630459106835088453640241492939416136463778223018980136124545785543791783974614726041003968498895330929078613617159752927444007967043932024404991017962967195757731662786364192923049643890563353550599332806874319596613022116745859420652043049683880979085438385052799782590482905298953652782941947563463041303135780154005093675463003161115399993330582069786742924351223393782563942667392891354564675258290091844639621838859962124281577957060751867818012827340364579625296185906410601774871434632670491601889282275197492818243378843220799091549393584475184680892381616918061558061768472416442381051175816876572707635843148366921676170981982575880078643808723521223586910483940169633611958924216681282607571136777034530595881736193040230077515225865458401202971478410742078041183386688721781918331684644373928300816756474103681678053552330223670268973073194023291746719360936051090190113354067590928322036328062354027670890601912496071731286042199101416391342783164917774213142099747764499696195452071738179787141829184475091578299459293162756600481607655346543776955130215289432691314176852259548680857496912945873054730176926011458233132327084292667318236515093306813643672671244953477938554807960501520341592404625073674290442854731762133244653403983903826112351791094464138891829849315037075240977312528277532011279905735566416871787176904184229507283161183303133909537876698194210677170651169302614997155983363709849166208678964694859752637864084783331745989772219238243116639447647190854584379028649710461207224918664546181897112810206408650575842387537950502975110877943301560098831737678884532842853958623514186265236835290025121789635666470811558925529599918242165439806296998843561747170491499636389170339240707002092986497973295950358935857775487357513009173263749850295238654414897028209749413492065417066131979512035236803741270018307300238446174393755310068782950010030227275478340419856745859408917227039845432325660859308710119671364245012292053067991706932520084078881222514411433369654452602973807119481270598700458887554425004797477178233698375072199915547100186576259384795712518759622833246240044912739715053668483043106974167037623508104465715178987535630288864139329471289376360054699160768877031589658700505674612819526879932541417205405293401960616568134816531714033070937194708415588921694613329757883668962792435241809541814999275791260600071522588386656660342926787835815884129702896707129723546443256247123549935460434104200419080756043936194373219465948909220243192784294874316149801762979558017363580335816759242624325981155117280084347299678223600214166621965656078966010071600317296915366157901592337405013784981890508762500589692164666736544827844201852067519728813252900679090103310003641243458478951722537141172764085287524355486777396304576371139280680674560345940301979029627218309314070235986013033301232805295327758916427228099836489690292942306612039062312246880178451873608571985903512376955051004692732391544518962657594280034253142140823059581685718071759026471079361232991644247211959669258606133824799467314001400560823369382753323787872598086316668046432996776833621906049581242849897165250650151173770923913012929595241886625631531910134650994724157121829843032433217140393499028895827716732843723788987914900286091864297895355181138803701281319670527996697174366065263376788136968515920719461321932560530465064879403098002716939694044096650076937358094492339134814737309795103602307643109557933547401412362556017663939553918446313463013093241584884848456550168722999988714660996246391241986209817540298052292220591218123735120772164198882360860323100142559810288078533912729332761443747699720149414945312794836336322363216907544022772783337670657504225524715418905569435776273499365568798488460457705952412351335894927208183598980969169808697459565058520537040730144332675431751282895046852265784560229249468097739074107145098588993457741486156411992373251779548770949145248155751138689857822750319615875370528212539565520484467298110748343089731982234368201039821776147301227130211856167711177272343354086111007963489052416496305822400521407038806285845674665715495993040533083260420765633933546131571074629275658349683653637461864406431733866464649207402309698724228158833344227061591232268602250857512637246793126900497652678906270654956367815615613093637881358451208418769358410934308464999640087818212815895983651135201866542708977475182294757925829325428107299969114078217454915082123253200828352884927879800503690718365790441115832522685920280157573704259924930247493493911790484285677688554225584205612391406822588538792394608883116296134492583057800255243840870695184848087954624051630243423304057670492871927037555879647867132944277909883464121353277864566502289186671407056297475317389774284187856976022528396725018191335892744264005912553866336704513982040750264869535689476619630524568265536550971903025405464365062473033104307901360029092209034664318762082486424957223666000963321977705852052040029582201942505614877212217110621605659250075902834199522992032452743808964358829837933800684601845398954913380898939015875343734661373280381909893978592013500539895627404075743850913595939354714736750198160687658642759587660894831854336715093159752238414787776429900512617190253354346971653999820464655648294024058962227007478444400238887448320749882415010171350028625713246639332376995059458620819314520448227590899005542741265290884358840808554982951928873316291142099740015899728353393308771234552954198503565284457359633751990451672143497119805374143416975299213645125293994682962826272272582450597691652672982211815595710658187835402513650041428525780898579383763093533960037665585775083027302285692414803350848400562328403259822445770135210901120307274446517867890289701188634085921199590838161245453678234050523952244005568915763450581410298967221348514353334140687677272843350758148386469161263924628368755189080411108793599463102807886398194995174870862907777973233420527411721778601966747050197257783484493708091736805777556715678990635744390880380992857425885377543061286428505883905902039228630218682553869094066367155967269295825714136308335110531090359977357539115712294656375819433914094622473357233463465560461988688096858424085602056821713055052186775730614660024990002012968417765682455192929213686879777997463558300295540625869380300338932216030652305260208805744818174840620465612031758648409600743813261019672191566014204349104663462977381851450045765810859566475734829736066626785878839033889048975824037164675614296277492501073914041066958024469023512218125189275719961137261304935595474723499189380933807635902535885414107247624343539589515143831276134998989566463920968692289422342876026906124141097250286713214949923923894093902536180640616180844345703507666174182108071080887409234693786533451184730258989228863022922795812679964630686276069534041076183163600273253327219574497740911870807631479224221694030579401030437209489467172418784533490017388660710228117823581959214395192514293385225276928606884560079521068283237824335217396135209351303600498339633200417375686708939945263934228077300384067284156104918020126954438432525042772898546806827372041069098658298242004708705316927829752017555592795753073877493268469900548207290724348868833397587397115819889267099393446127148626141171575297683878049195124696804638175368520065936685083375867316153589170444757408189581941258563771557393976548772446262813792429121178098908893241558441413795017818437253044312470464986429445227021087629420034575125413015591455576703488403270004634240497208735401489899911549577143726601426395867816520459343864445877805176382921761434768740263600500343984405758552186546845107469238840719368017845551441243514233985564661030868790881235351546863603402870196354204612705670977975259154500009085140413527085340404664381708577356664798576987737783255053956114903869131256542088091320222728780193974359883324955845939454781759725550542746642334730601241310727509588692296319875042016031951071060370026762824663070994516169436801664108050679993331080638458814888593066709418908121566453986886418344862376345402761819860412075045057421996654797017876993428604799382209476926086054552481649132757708035683564697243299373013948904062225047488933636949125043727528086107862154507053088214237920928610180635319522956677799127132394859768583451348050355541823300538361100354309065757566886426432097374203305592918940029924212940238024658536325082998489199856692793621773214455697973714110859329003120610102008492074715386172745296139273662837350763548512563331279487267653839680907357512802873804000239880413929784362611721806223790268801547313100860509614564862358650901775662685990960327492870972127595346912051099785968404651521877362299292642754096364723044422916859218958419089239339988823135764678506805304038285200741135364069138988093767667768679829242379868198624033996081779071637006143069550966446766623869146654571819478563726236144846174482756633492551389984384812810876024283743563620381104259930491915765887667700640688185973665162347921683134208706046372291760099872698775408657409970419657929823017310321787336549492555876628687795237259133790128685675278045690446166469616201509273539125356806996016878435647882100092411351079934241558077776861092710093660471845804503963314106842734933880046643453351959883685764099452936040325975908514390207853898265179430207340927371503360245741040343543014811731228394329133197084787019303421232894814829149302693687407465064307842907241015529851232787790832712034551076281382905745642128556525489267369847205678831135463418894644881438575791114660842444270205961712804475814576537938410441764018952935040747738654105529001605668757813646802109070338106840599561357317463042233922931928255570231361637201480317943050434565942637251660153490850086271109883831610412749136196063949638311697218021513630586214765098821556404478826576012901343060104531006175569384446915487459434730953671271072313380719107530199226706701093528600187507148278211447871367150709425431048761308153093810017850073841145476245717822620847576998019294745284481286583316564073087916104319844824115854388823017142864872682240271385129462814492093198263144618346674756905892733892064321287193538636636120926115198500220713868168293742445030003427193239054860456891775115449108974671318372763606326328157996445806768363351453864281300353352817107022283564322970434046236809504458594745924405891565748261669949812240214180608550448455843161316627196550492142979512244913827764494335828223520367105594992786981943435545226870044901999039850436797598122719975293829713835575272997021363701961097958846020395534568313462027800565272729902700503753863917374097789228334110017505593018271329290124716399438125752100065626014447736870144466645162526583706794397860398187743633755089071669699697770073799415669676576499641230843613499902148815789732303355669138292551211129058982819658348409704136429662911448304742068280311976969407188067517513398673264027012141282511865845814373047487735523135321083859523954475849163650707626853542935889397909066048339859435890937408518589126193412945801803881872379054650892661466030517575875208104995140960250206867143289243040427071403185441050795568033862632097276783204739794540488233082486489703969046708721622739751698333850408222044054232736713142524561219846120100418290431290617598148639326326396153910760169587151813223423108977982421881968704142902755446135952947879695268951005023199836405040288265840996290602788656258848255026807600960289857151077804162028189807698491243636930600047604041891382242287410361319699118414546308110551805532540424740757381263967172154156506455607051516820020849690507948683364132079666704628858617461502207865112354553466883974967646492128271301821258367731456128247650817028266839323003501847065075060047589028471110372618688750956801552927492989347405799466145627284910230005919183959668334278241541468040552890381425160387609532175306603313342296087625469299797696571747739229079119358144150152647249638892583872167290168491630632373400223868468196587276777678272206557085976496856432368436004184706904882284435882164978698880520073245834530922968071739917531222802295792848056833752425549840887685386717855921074380015298206790717591509912712291010639377842589094625696714278659153095101302808383384973169069298547617040820873008918468661490148567127999611750968455469583231749572433558867977208855952635586374609968677720054177094067515533813509516370953998573671671962657691516387172985976539778587452922860499842201658133806888391456201079497743278666198185360171445784470248640189350764729779999223588011471079086845613672097352445185093698976669496408751156886605318808069399264746070294126480930457379422422165430879491051019761291697647808937053890049096162186873153329032772757493975123304820311471290260482492840471325779787090060555997232660263031482160437246319719806782736593641132322458231547108268713211629059765146183872226900714776546332369898310220841650089002176136314742120090728366629327260606689793655312459145643299414948723981702161199574324191673476621618019717697666388913694220875377146508727060476011165768416823949482950143701582903062718357285450155186979556814343233644472892728705714003884824112405900950188581863245889442321099784818888505800534239768389840172563411122103567606669708330728345613998830881526420327497479388832557837347675369257547750187966566374458242076153338163164447405031652885002022879914889964160334800334413538916506983155006713161103811274922802308263704966224622201925110514600955771972399461209158776256770637132292172331754048086174332232175834885300307553086656076264784133538449482310868774685487159741812946926993909488714083273550696455994189271130015712111388447746948559713522898299824520721199818261387667831195015822763017856369606465523446304987277412159541066812103067648515526783715171991645851017003578106681587138724045714845906177234928015199690282606995334582438390952686341074621016111757547442798158068819916456943189675818286382566299309581991948617383559979940380794229022744997628513245240570359997644950411723214145272907956688776293565484079574030194706712680131883131496215395946879111661455631627803448655752592012244553404739908727993148106285688873537633322783336048778372046255852324200699745522785289749047290489512849326490610709804135259038325760291564513791998757986512959200292178831570007805748949169137428242496302310946815571909356777524604752723522671311303020105838832378467684924955889486354500140450191870090178955468851945518630088499799226745704433436496562934298741743148371344962288886562339942019105842428376563651717886320434472261198452598386760620327357352930801636361036137952927310766539948659699567938788119709208711862793704063380865898516487154784587163346236263463205475821727411653856027473339911154822546639355302220651045370797473710388342225614071809537538228154805990816371892597238245640183315364719188196558062904996500978821961523593907907504257490918821911512189844346484804156374095004691505685376027187443628985892828174170352267525821974030084164413573086443899837297887174068408404130223598190176323208823418847394093659121822954457404363278104400128500515284164601988400697870651643108648788290669475969752343710793187955113652939176926491730372730783548155469495519484402869304769799673373575398344050225919946739066799713811472575809376456500131961241943768944885421796405367274797433993581377348013613687998819551079981910315213035506200783423742754517028872953432811737285931212936970699502199486084672903928311458791832951994705498370272991798487685005287128117510653963495240523614314548379131014914801571798402283966844786782185494191309412251931243160110167811226089749925376158860456133973571506054701344891940519379452313564005331255636430422127795511632629581718759280810639648404885998083501120950477135471307259320602791380095426688761435524589235893870921872468729338202215663367619327504387349147187916237493893153671151606441343437459075878558717297205335049606905695493417564385667933225009657757086965009292117300210214379779688210422135151402381764185044510201886249686806224285666324624127079043482379832793296260759955130804350140862982622124099227951173829150725262177149441753795335801765908301458770495540195743832439641550674607451126717366060133570744388873624196167769321570729124520694408069041822695911985509931945804838205454686568855786050599706075582420847296982237563782317996533152614922151781187670487618540962212399487835642872525878340765209645721116445888351391627034667210797564925871540608396541704051792713773391034760998884726011499083378506576711082793392483607364312275025406158133678006124864562743754292517522008993252834840910126453153688531345600200667750477556630932989245886761990356262655621185679188095353094871603755476388680311233944445436082835560045998605339061205555312926868473144879447660775960207670671929883027604354317892549521466012093040316270840574666961983879119794709697640604102703341631616126813902696300806770240205900692205662905947705522673242097528395970297140667001710177157685563475859547691828930559332670275764365451894351617401616245278723444932499898265057827428309811093345960625603802773385231054913803012499978531335313746730087143437234114459065194817822230700958529460783809927335472017448088461545971273084456752033459796054258728529496161256845227514781693431351433070121558309716196175091266016363044305897089320949498394254885964769439075639863179728217590183029538120946900676053023527879145968076242791206633821099799104615512436292083129614773508126424674587434217184260627735405363685154865864114710317733586653650664507942472464755032880497135677552890800336559760904761820625168350216290935821359580974311446868298089041542183593827716417886650116891633222484918127133727777539345083362919043432589427377255424974342570152471171946012033685652965912782629407973489392009134031658637015653863382364465927734621955087909684489698224847646546985134352436976059124385128215622925163093482286933035634777544000952730442647562037692491870187933898352141221212537982242309916982393260551628087771721375063369574281425509164432739858484919529219541974557137844063319612525030689507280643061423045136848566872576936219657761532298239066118592441735545765652161482621397901219227235549823432252143533789679637013315324011705883979245870232636081328265855890319778879876223007597438045699849322679268972547819335479988737828228734835919205938639878407320305958525866337418366093139358586660824695765123351319425207872220359574227620311797108439497429167709965169339449186580645879817915432740985591644570135885326645821896031310179452983269390065420448895075806070027898144559584701188843188870156310113291578203051538707334673696162291012310671904813339372813463424827731613036961983035915484411291829785045161687016001249668066306475009983656627056900301048859908893909153623463567845558699149751805914866020260852766193306957132116634838143308024339594693142335852565953505624783611522603154521745071774644830064321806102377552837963628083227490483366962780312714680426057496225647827514397399155842845373926992897451193809367918488474147527560683199319952184225148603847029361882299045952663119831308665190059068149418126090073420075884324139588295508196862002950467402250293724471313990973608579814595145199032891435378438885081022862791007418465477272159216503409651898494621184944628912479623142557949980656434684090357441476491334215680843925403703972327500326058436366489604777074707987729914413931196542436416866852870834723930682824543420610670967850625218917053467687582380671899959079449048450189843878943412118735621538179674047632360200892848641964148781854322992847034500364561983324605144794996679304260019320114671115937516449773225927718304655698573957074914498698240877172030587121738441354831724558261787807964255642753165302460721479950686655684940529745685093618677430852566902925426082925005879815630822441416887880455377668934649852173284516361505836648997404837208662752407703167493369030752514232622040488413934053016745372786250074575052100563355549335653304350768899203429761831902343582228340911350121043622317290406503546208004932576899825603187562985524797887595620323046884304895819667266698773344851784939458585958843183644955620999708649895910558448146673181972960090597091867728936147197241012313008332887362790357527623955616033686481992771161583577801407649291833568957989873059146881475950359572845729997985111701689794792675542302630664024708729510327520240986187214894645816647499992092245975102743618095488166722986524222777112549976203426030991030750693318017489665749937180581561287325988999920406281261553868211607973695123059290402346955122299451684691569734276922822035637490156978290752911737169745746130986691907309591755754981956489620935732537433876098659191934676456108958751663588283146463848182462946317631765009927496427004484646072301401554372672959108748543405132377983990446224136492617912396182452495161793254450827905390965002325653378267548941080647089339881660881330828226446934672880186545105472136399667963560867236715276704623540656845567160238426928550049055823505356048892085336265327251900349025560926283639236814634604732876556325178004305888114491697308902469261712082468459346244255340861233486985756218994713702117762359681607568159650766817641497544554237494346444550861456066222899970281872595282994321680182235060981691417731044701885548350300490989867740501744902531534577159461044050223314236928358736020690737997206067093947717501750776772470532072076412424203710334348085908090462391173614746130429446435380811462955759029748979749807546867354361244470921636357880159457200722197844855863526629889059686938257215796753976885009126819657706971972016748410213662532616740733932645626505686242645882585216889432207246339394295688181621426131683085593512396720453065246649416286429713349031919878020919283505596559336984389559512171479735143557636452377962748708853561673005935980936368774856330621638662065276581508505585372063296175664745457978776036377695204446390113141723233427930937661766015648885504779000812545945043790527942983387678434398600812879047929440804609940931750768192592082987311077997780288063346192262837122544398076543947300844176267304406929821106390567246909809074679854260857932715302374750232375473697621204232235499898082172133288850057924437934734783358599341866828334173649296648524990434015314163109275566211106114446750946713797197221213585873566650301868930005391116959256468105271981216106668966074453267119375369295785009914966578535908616595033359959689144215130695351964862142106987982312876004083838627189513627630217812536677151277419126335828992448985358805519528556458007541960456888829873441310159809245718910359941208509390273296151370317085309704882804384355138150109541550502811953645298461006827711412036273617783457910716505223551700145883511035337183059442739152864109985643736088259629187566063134394848006875831566313007351227972105700232577955127940835173541373519752698358099814811264525705171747481491268370619766835788913057480982903546754916489062271135262908813170179587564448675740266778035329825099547843060273539727756869711509308949073967716462905182281931519380693781232968992407120893321888677141631868256015570623168434596502174232006043712804855083265700808536842756728684431267935722927773877433077956089275774167537836809610430609101503586426256864766699111613972195444296931980541343278232317660320043589240535760952455617178916375307300585881863875342495684414954796751023575200469098951188046246048037418654196957121522739046865261564872805476379477345071006756935550722309197450026729484347057905269077430858306363058824342665046790861152803305004838530979840179701876942072207874902375762193897050539709128479938788183630756816460615006420825266638311902378230251092769866407156391024616829975208488113780378520241120816922870319839554712919017614129988391881320394318728081951566701523899128853820733681338754059375904064676310242680684520457233343206110905620498599690868869040826482680813586542909495003982117245040460762113201864699843946773897667604032729505244744808212108883553360278186297451959272198533244823313760523520753460108860762965178924432166422548088265073460969343450598579024118324838285812203298339061353480180700680747652148456061995674754804267484207781562932716631422451718881070263018772656864131070861268112597651296860165455032384688262288474832043930978731252489582700885607866982863203255151280924600429501343250725734826191141028887827239521810720019833389205229110650007273744070093438423318367531858397866883129810142556466574915113886029390379890969801766074407445284327821067423267263415205315845193853349836883867821205104166094691491323169186147643404101037368768127913106563124716047455363624108793619517251757882435052807559671845934508046389576154144866490157216094628867237179545627522890526221544197897944126453871441491364226877609981588765860598574231262770857185344833261344427407574972160695191994430379241126580464447981100447638020749274375449109898456868135724144276200166880271737237367514158301718393351452610612217525993266214377860906041404513347640159654705805124328984061409968088100792878439373999277798624914458732524659275067703074391918717061173073900893871659360983315358454949988309223008914155121182621775767522018543480979566615687093208214725869305125451484262462562278533123957449883641128774711500881199390681184573125717608611189672392777892807228428593660320115743561499735027989098152594501999521302623701235317765079558264466437917452187987623899568146264791258095326130283977434434409477444994618421421738952726273857908995586458260876992780645608923917190555079441433939100722784193473991612256118092016575078769789671615244386059858438032935852952752147416214531240152990659000037749133636990236487363028026558463260496867780498891054161477822567518129041433485422691070343997792211459022384665340332863590736757664368890712824747244304847138089261415182083493421670387354648602723536942423230255074865644826302303750291044393558600796462674023557227941777050253167455734391496087974674758006155311078118159248042889527189598153632434326268631811334746185090299214604703373782975076320047142436651220449873564712494569330549816075788843653918649361616078723629970596598938654882539102067202844335375238119098429258887969177310853450226556713630034741584938692577670192638574603134324090786919646855288039534042970804379148136491270782207101632998183273933812825918766931792125788517352268281304463445992575172332004548736300481937967549447357438260703103133996034978533457466582625853866050354622795857659054603862983376041840446296139175798870278923106189460050986706784691102735489013137630032678340411572612021577504510349913596142163151928386095093505828832520076659115658616824077640341446917620813506481290209288439553970552786384882755227628074442015116598151578744637891912686095794763950224918768480431447354883511003959646794925591804792280469291083675210081000032435062917830919430283165678887501667303366556635058020196892114457677921188274178513037791130127509341317706001793767301640548581922873442514462122741786318138961615571695050538558203722908815585928222139818532280792484546745059761645477496448316122893603144874467206063075070538916082451303250672995938249430251660193061319519109961100949155380205100580863222553242189293823506285868105674076458993148039205360697537647052651168196492988063008795177558370281656856551323724281502354080308275593831985509655756425418702338474773338382841433958602013376332178484343755370780415052125122744214246387757049407042135381171481210457435219096905690704350605065673271283935376577849754526140278236589754081389307918697537009009266638427829089635783186575604998804876710082365814917955529244598057256249303632783559138213254854483923683727782068147038061725811867246829078538566320351334248312851665380386710417466457364179413195468342270559449750205733973791095911913114375013064400469410600848326764694160180628047991737311039311479568917401502572396203135629296026709588569184981959245616348757394236640343222408229533768276657656349097872153964371231225427610690289673502489724160042954327391317832013166371342520759893568920505610143458754691239982479174603552104299430845621632292969784499185087999255895768550037837795279336369064058937110091492786033099620984196112237355831677898488206841098165751854222293212713770051891621481546641370618120904664678899101426099501082743637695155093697414804419447529684173525077638269210978735694654667600089981130615716346670908970487636468553657387588742397604966952914982234653511612900269443506146815139082568414655018008371443111600372993020848153212595328957290411587044136929367257347995712362975099544027372233427277403415907647884538938939018722664910000826000857503741950994519647387000280080864768657892728293776567616656675494870219245400197400127287945128675659260746875211467110996538042007154851472798659929536376769712895296028403092843661045032069389291853957754696751738009158276649675502323376563684552453893066686288281781494808871804972793283518115869700501102204722564462187479430963620141272246514364771706145845107148725855902486254752373378127789608016429285703784127933778148892028069339981707205998095372118092115194952956264111748292702386351295174922686832189582178848431175437418472894442742806555537752262763581604284336291897807421539319537445296323225157430184595410813367613321280394797820132959755257496191589754424041871778625269516002345001176039112935933664016303653980169692840704675945687796284074712524752983764355205426736079504734402421596791483716955070286991686936215999515550497993719059226555805535281274472575183986123624209415167008801127872273889078675455025179940483604029013640563479268617791014562219956839210182287178770931509578360146485316173716368601817356433971132915860391166121300459603641391620831028425323389535719417028365629360497188935227283270483078600917008626865348337470606544754767171243450240156325867962145068862085908028525111054887586247641926635668931396863237301111747334802854228339442503611464099710985113689807610205580414640292211826365237715519097386285622114225823449883036915326114927742312362095497119754206360929490900814028365302170676124074933628707629376496029100434334566018033559184632322250268322993926481050471543642316066363882563527100642835443644346856142386546930999076541363635910725405991416086442069630243406108337105523555625736032146172397177776478512889554221421927081702825566811301953694932735532706399753231217856876617181646862734853032284980158436639606552121558433444542329991182755877020477689101536205266745260290486323972085738931172363508586574895807537243772333948010988889974481815695589271557751846238153262749297909718552783154433282025816992012221636992715791615223447297413008991700488005649745803657757640043016650877747996070184090117088481766876306385876345623253635082871907184677066708032522449985637673690560284471135635593552135146566007145459277560534794359766880757729660407918644921170939291068604079288644940556376380154754954447364989957647594787224041585453367684215920361249821667892633513246830718318207529933644100437353930082041069414974366762710595535346433349714950633225939960300525753175100166823624354248334130711731412189474792761136306053487269594851061135900223150564523615473504503493430697674468120549402707021511162142867929345459478695612013229624816443514325842886635744206312404589023938109729984014377781978965315837073587665665584750868500039471768104100690279851465195201994437544794770786772500447788362521974056596795173939237628350438984722142966432426601819274671352689280305782458464251406345646136343759378169728128562722344657307730077993182150702015841561023489447785727770396249261253211459083292930543396641774084055424226865199441523650427598567762217791583532149265206104465666997594867668338706928327235332168348500946565635379546402265293883155032496316749026473207457365621711069172102809963326246424343517430630571017837161871417670128940833147950948724818638375701831686519873905221549111044151806761713818641585229752867027843700062543873264519128543883046811245636582302714741058207602382746306318226743745389583201477296783002021400053728381066798558283252462610556983954719913217226954522945339512476745706272709002996151267755357194233242263901043137908824754693548578228819203988451068709865952173244968229811459337394649946179645439461821007938859890042307538553424477749024050617502468698533798825225583907777543398259542229407841260821565070812491291146992937855260367718456223562090011016996068881244385044075394791795430104097796241916144067009563794287982113328516152315198442405721948902799785296184997260417039122385688580953197841585090889904694313770812177769809793185253486604627063094055497224713835337741514781302942269917874764835665746836357986027715031585550249140763733092405183829332038924598213651696202302526228692268528752943686709184607702955565457192985502694095956576700745011135147594398574344337221143105955965849176156192562737440243359765782189890252534927384017072792451343590119099264312248163105027589357537983850666300185741992945413617017006687257995143809149690033959554284092274431988307574062237778055242940936913252573107645334352103948351142843436134453177142810060738620825667924755748104658757078971425734654078036027785347431220524494019676047236474355584317593166358185267389598490507645718361325666769500085438404162708358007917970201812301758918454271901298357645627131993725537894653290702059908879332264595496831995834589199953292103848855274858702553689522771362857894802488981650621846652243088688321561376118253845593499111564590763922886040622140948778988807728091578747152522913193394185577108601629064629936495531856960950588034961227604044873237786653694350853051232879922031357725031224930646757387221675823472422516724333391263621172938372114123577389335482382677737655100958757076258266446284223048720211972715398398994670472029138711267386410277215579685312453121857757071120121263662503565864151160445242456414617031618600782249123420795485849859929885698308542592253582692187282451311348625130233624655867394630589230637672830720648438057016583890258623324054826733851797805481904035317946242552884241775827722084631245614365889522221103438717447002612824362616559853347690950899789572963024370974121251209363154134606509704978617136724904664435998038436498258175542365143506458308473143763523467481976968678076258567392815077226694427799731525649756125493152782188949698284799986609113140943668248836174630155339385517747310580825303389997655860658204782021422339684762668402093395354882768613763008194299204988383601159111343020758232310904424896520312234110699488888340767659060049192592064762588144967082790907727339105186674063817103255023180865542048943008441784614800863286956550208968439415195152837135180224792980812966597574634132687974029934980249506498283086869395880293569988354910233630624182861004586985670900667900109525864220247764615913345946642022979060328361053893441859527059319235853697432588223966916877561523565171650462778491696187998800411831911174633453817312993943378789047305105294455126261973953453271061778515328810132354616643198680688892846244033369606873817259924258457009787570650331455490590932637919267957661338965805768928137485590592859376582530040711994583389198264831509494965897530527784060771342573406298567130542642769500814066583790726478448539399940394371742822501771163428881633559902664060186178604093953007274444464104875174780914429493443886906444999213705712676755381610878712806086138505590235570739303734679751445593136962596196057546972701668028884691727682083878217461201948918285808952136676096379546368756789275588680551504206162290095903467522855018093495410044665327636446230420883367837776736835887896463809044251670838666312772076171440085029716258620294172001018807827154276628579549591246844686408340927458775754668724162682827087737490812146296614375023729204079125685065768818168055262340622049724328338461890040656259979308030771299265896534327363363463206393442995476298195206023556751366328990312409256970681078231524974429737457339633655997059952385475031957263116050241216023020061967995630321870259325976696783555973990035421719797251197645882216517011743035089135093183539714192578145830268430329125775469399890696512008925667739856724186100327731905922732460693732610513893941408299312445982271898480376074685946547410823595588420947179317680164431346399373188458894713297128849568947006415472703003013315377551311613628160657407731860109145795020528834332901832855778207116578372113142568314758428584302997057958722408234044422966951052416816303953294226473666050473275120142965542871120651908943140076772060736647007128947475370822304554752437772057181867039556513404363040321940528927824556358228468321452074626279257135265215080919533075756529634083137372693483652421360821966889729249229768134655657849430075256760587067929273198836327233771190290295413101054589628432962324109809177943471291661291000600327348572199048378113812510947231005305968854685045730155195932891154801289864656661903589455234368178583304564937789471274378399915749792810766852364407974950503785797406733116937880938063623314674394927489707913710473859271976056829932908541220686155584907227983019888689761433114819416870686484395403230070889341471575510156982518317028076994211286250148222390137963889412156372061232693067796250543048574786153589216306633658358705082033908455816421348527019612418200546981770857011943581726852222152767777472076656914378152020619349569645005218137979363869075267636558471950724653170508714570571455747442107526555886610837902352153138055536871541994399502408125111675116900799963351428530778219040454114033841508617570212943231090975401784405877620479655945479402463551797183578029591921805384617800076218542294184235005864731723042900275174802976481775102515309126143584712197395235965386495436870142946239622519294360432967808837975411436416995206378401119849759114628438810136882866327887085234599458240731421941154474546189761664738717228402107272704979241022362784915142128329962640772011824340314876202606738951967330892965574989338516597943404527779499824273354738676010804119948059003042681595345759685124179828719110816305306793560855438655809933775364197078276269055023040034286358820790499090092118479716148336891585181243159977013200182450260849386791671163154392605663055192718657054401493806251363731160285843662700426080734666869591684058650734914444284665959587268798975995376255397461743145674205177052725339397252608266398479656826332886059950529998655912365150607094588301276523044586320628331536460147228198054035004573638398339297820464253394761304130327565783374264760080706177110185132998719925006888093623611546169572432352371562631608704269991151455443822151862885183793388775852548076550333773745127334821147832064616110343075490821381363006036844803583408731959787746868016129194276989274190441445124526952953932659096351058744886174725672784114271984889084633013155743858152194326985414605177012017995515239028574710588254040608295039675555376538765131189451991792361668813705104667531046237332424968488505379135295989822547971077921283864807923306607959987833994700027924994827458751496651599967874752624651727500149963011902732927518947162460830998546834185633993463276029293687902372519345024250791400364844201719220693115679744196757722915095888417824515282552520579704813925628923749701649434780154185120361803797677324125657525758257395869308929746551587298777172861011606467443688370331958329270608842566910462184715048056544579860602365450798201736533699289834060724576200854611047894646930292227934396023656753928722377018759195568064772869027780598205808233591834620161720556543203961877923178418558076870923148119434795389094374543697623783740202061906577617768151105614238056800481155980550221550375628477329942919983634519743141254669192664090831981323268732006231372498945753996068224849112645802022123190599035760922352135235518683899811060652365108250237494305774851606033956337278754436087846337336995680445128941714552347063507111006205719203179144366009994531709183282330468488115336894071863708371432456367395441140696750245456874530738356084702144085409046038310442086929238261143357528098783287623495912083148811135355856888384297189938467346555425798566308938964097635230822622024601642073164884126885535807685342008906027886089207139348434740816833354651103228123830323971583918139501173609751334595043307487266945958961108893861663879185969775363875100375698356950774247567514049273612036305844246659209887134805325608024385130399910681442480087888917689547318271452225869923484365465335678617639326476369083592149033289843904979159605069030205584219864605974419160249443444447980824217534630997930460951421440362260195529511832838013232206755585057901638049351788681854025178869769469586812911124149627667217397414723632465707568948301290984551192302195978493825196764928028033236391709500649634038324700238868039970018399507489354884896209525295424390874317365115931350351228535622984792776705019889200463601302504813276260488594868806012214465965015221188052513668435234959429485529154167489450331013601670873507487981488230441743606417697073991085291124639641598166965307084484496717725976318110112384875725742528371239722522057669766981224617477926708959032588290632467357505620062899104888717137864499306658888590079495035966729587832193293267818826633792677502122194881840318955421539909436874055939078069370250319516201648331336088587914251672107859173154620705884071192605139835306650238170552807566708995298217389756220321312958992757010227201135632736553980700221975428228112659464213187617941040026631845876280367012445793867355297565560267583691919522713655248007306303746168123741349274562306217417383333597000901507753371362321277831497353894028087973139015362305210565541455700021984091742080175487215807245965656323801632470694146532767120027588933170589556293216438858400078277347767871710033277977487264246173952220535086990773865180882791094290023212298505601527316288152526335213566655080902488934620493914685957461143843390911411354791391495804999733427725828922715978692602346638577642399631107834501371808161466883600426981099822408918004379432795573694812137041980391092220744119163806932477341819048814780157919167888677882328531131843168915073493589300917688490931222949321258891091010445896735098288658998636588217242676984982182865239050781094244339242718753499207515007565986643319474347437307382215849365720521956771863519572882903992099108906024243251569990073397995606185843280711582373142344184567485952473861277622692026768756313740539678759386007686620194638112847202006144233380023702869029114165043205584396505100343626384118069407031241308996839643487769253136617677513701347522690602617725982096819406309103035552615059859008163274086923856830091556455550173050905210293527263000058571522300297075593020539425522556929946534481273798942837007348392169776695668924057748376999332050326948289290669937464000567340250589539363244794945780139055507223747758914423025538870290977832371960190715221399212334037639868971228915439094084641748734994677346817894658911451537449519671545835155493327985086004589348356695645435827176967760469773842401451816612815869461518860923159414406430313449240926067573817804438440433199148150909388274267219868099140860990885882890738947004937447945993749610972665449148255786820875585940804854030053199216142824595131483205800541003011701245851364388850730416908544745090233654699557690160697831171330502634904865556940542673966715531167403007446792809468184619415812829141334394466259266858868954001366355866421493595580707113504161411820959925966537581180655007950196397005049456718715523524087010650166801371729408532211891145613037527004980057416943630358261747671465668014133250534131569067331001738637687702118372581966398585893795884870065398879019325022174613861656823725205988624600540236799141174287179718544231136178590477019723775045562864206304704114357069991886192400710429973267194517851158102775021261734444858442513206987234097234780871925707558547306341395433846989303212203926382391002820189952119690404921457135381028871412257282842655619549028179669454021186649503767695918650298760707827030510728654687590636228152458385631317625142457829100931942588438023233814414686452151423568074710163641788051977344778197682454619321478768367163419077241343607818227490219574184009677606001168365177655227717755718613645964763506129505674825152327877271817528589601481809746935164753995495110769050665523612405646504996363260442746858380598189279483139388556639540210886773882173119898831335310047526487630120496059414521037872469437688669028523152837654800598130589551507245914965648279356083916645862863041621854282406755517679156754172034777313824669400513151020933145344607543359054679418511472047250965209972508023906466160142149784780950651985777390240337823716893176479109400466090240446547319251043355223244887651400275802136563984441624788706288340762695658505513101758029960016336058860690431520405919921631044183404375970136923881686169869918731126677008496234946082671809813384133280948471504233557262330549286245740810846029545461891568214963403549164624593325134422462491940984911983767172762427523702683245052981796554918446422508853809935977082844853382774562249900780534898138441564643539953375850307400547492559601061564127207615541353091464607841360925773712339425593451953169152517346212016649536536400449630475059084270161922250992080754397804143007822101999584394908072871905764160199548163497648538592916994002768835532679917400015482271759755689813858323986657850883957085155075655762768560192140889533172596148611649475534772127889848448315581298225505439661112190255782156194424830715492311415443298182402158752434622860780248858496923534572947080970384962612794670713421873719285001054877788320979805276344296247824564408631538061175091645224675708737899471504517466330774479628149968828489375155415372510464243400181501786463247427008103588749861283353963411222200326681952652766111121140906677946309473240009922669739677032851189965467743229740345402307910577655952933532921959404314850560545915528853761080259952429163536698758388341908257811344408702368843356044901305453772021244376893227283189052998876848815896266887399718819332111405109912646942737187083843238712411618843256952917629356978885105105281305461515339181614345970783934268295012503164112868198117533217822208613888704024806946536441913164943327262992375158367138655867287504300842995725429695625420889072997472156533753372544273971775950095213977082751582039971273912355999272048899799103694152797945897701192616211824761214664684271870942204278897519650024662103629066159262281861187996214094483380047401440144361048989764104194831580738919334086578751173153133283338329368383797433170492883515932004255087777944530878981989382144014542152360054024948220884008897623218031943506707608557389897534776758587805344778705015382515021187649127131704819025826707367167990283777310234838648051314634530578390140348147260782943160571268110128907552091465904117026093400992268684851285470343237899718741518993949903173222601645235440354898298260472526551210586925544200517688510571354180361508169979228729800005956812626827478276385882537299604502372698064808182190756199259506656740661922118652854014874978781688439353113183665015679710512871771658195208556419949323072538628324620399801930353571627668830152549474265195761497503658711832528692717786647484865794760113530129280605006949033662250610841205334427870055680260144929265676840288761365852236096752362906674237089490660868065369171392258107360570831253279891501689273786535045114166356106398330470045692586668078725997812274642177677563585216013413685147130950597260010751809833800043732687845269137256770345575403024727304391318559170318791715035247949936915810236555205354392107390795464395946356825429663654453082018600243089853571214003037044568536674532718627802468387941980894792133286623231066803341369488535337608145608212501332932574280540404810319987392171272826989930761917066154634287275629648796693763981054702351083700234819595597720080031514125084439453685338515889430086917711580275617449541966113910163607875056585703947562518518105945478468983254753893940800379316506435261501657330951919369907817752813982831074331299466712948081117731139783018350899292230808763332384338365623217768350424037580054405019312871646761094398873339825683268001183870413469906054017095934105319981152808889527695323287970269293011013222225143770496357088304977116132776484827374239484550561893384926318502804235930317835914397407415111740957817614244651240694671275187104663218748877900595765948004573708071363332023816298749604147079093539414313787636090687891848216895106649444539320820964780647177920106341036564055767678143443704564460248874004622657529917355251553751631513838583513672822589844340307094780258940618625001712293268405403787199585106155693302816073011745805498002516095797914547446468252991904686310919888486169402221920992509729270915003639509698271626677683773718336852424239625359628726134083700402737595421896095138524300146269228989958950259078142469682761115937970030856778663833573058264931532828087981245047512073665297237426216253136489191204916526558641866135692217385971091360488121515781752287005604722346910025514245763103441898651616402592964608747479599047917400222105350785922762555180042442583801397889480849339643634325212066251500455321313706685609697787484568598074983711700483610180583777263025707447017758761568083524382916467477839082398953427994977039790935284633099128731868481881270273809094938499732183871771936198349640540264494956847522848099993974459535432357365872414086560963620041769023383088080844580660625381968461876488296497424452667442547893109453122774960636400387460623181462943699528558287214818298296988791018144883474619862505718444326261356227539526965695137436339170589133420308428768587930267685489456104513500301853048648051465655414926895934366894647012173463104234877773367044365463843716299224391828834427264621855001463112204708493565843404929254860376147728893015984221570323381472647901619247184685794029545851615383526765149452224527613763257450011392612913995455699086773129947137224893353479841533870456180446981605424447096634017445819707078982671796730953465844585565170287640757129446957154908441824095014924862824867815732326348999443135947049667029036251014682964089261175233477730690441591462256104954373041590115548665636707778900263589139002189613626705268277571980146398001681798577159211666022969942913173417009154327729229579232385979305561712440195076470856293576560491541573311700989827661796887880829821368183415657833025181256372780496167179994654567624828126621802395405860317156850015729654768055262709107998247858784075657158770979008128295755945969835306847593399860941203572204029441147163648608813425049200865706645856233063819139258032588893800139744112114116582915661804175563552877130451866290494888491065028201944278419092875698936750134318289214981705574916976892879003348073054207806221686373062841384990429625697208978558386317735531702006544168881499536563574075435992203195386321047389134140269371768858605805136230590771390028991154797442622330692760242998944584327013679516171047522134922746752329404491921032572684589204725799346651721674500311651962697050889204621555571390776061596076060434001710499182012348153447035020978802015188084576668117493421239067077280300591532833697816024566674692766055998628587884416639258371268191952899597817270386858392099410546538623530330002186833643305201024028131281729460433269194581722007142370095891915034467823198901681943522257756576777895474981859057246128989911406771365416357527458182743610320521468840380724955858297922712220497387346240484008102208596882102757547531839521007710147905023421386583004664945586142525731999228499386700415275162387551136508777428299681201065660494651474796233292636373478131925602736773936993029516156718061199704746679851113369368823370885849920764419210800468947355143355619042914985202528055009590672562275267049966468416603960466020489611972349439953633755510887696261215924358081388641158518711052081067705017271490339501468972134654572376528724689387891007608668831966957750849082870836594190096824747150312052883360274268599455784281301286963889401605209429129086444811202710055629660689966208109199371786206215009508092579538283427025745669829123324294151517657033097524379151135585467500521507947205697545470958504320258253737798477244866744451181123068141354156421383636182253586002178582332316681046818451512276181886061700266738811542875951262609301426628378701143412593918265113999806108439884856429206810710275736405801711932760939749242074760086091094483906693392126978375845030279060888275169047691403907676944426803459806286347520576215063530477009888739599239953354664407182749154352055668965827768687463334046843839101044774822221849975909985928103358514360805407215219721277469385013501429520232780454626115616000858973825403764153152810078123265456626970769777103186406483311930992795643173299290275104336613767897314174206491539482144548417842376775619587261874018445619068412244410684371007250205219798152377561965541242053187309687698972849026465605539091386232412742684051367337341997520796716674186389648073418198780176100840081128808129141766467280687833193884207944799536053215555249943036947485437036361730379714723149304326609217350853734567676796015928183489763497502258089712557383612331758236543205796565392911865613250170009652644741443726797077426578693199917533089009238327542542812936590814952622072448681857657268813207534110074785622360825959746249975769085806226099468098342785868638555262127089076560987686635441107704208839125186919857168468031633054846992261434655143349715544467333934706477725227239573842705403287549199532718343048526080421983429879050084096523654183752974651269832563453888647781742310039242788926589424649202420901877382302041440039299668842324319127474815007866615588235313297213754871605493861182607980017669342540900240713908395549926252083965851094702210706770087485469533929497162457853563243516872622155765759860245261215909763399890854083458893951338908681389422105659350795363008337320780376626146290451937307542894701705898578423656262652615592872745420689566997395066717400417362431779573489138701913134105136524131412402596000947970538422497553776569350690038445089800514239019938823962629144244139305047785193447653123693282210272055911163354874738865394731277059022908680046714000067354816234864701676320658971386270304434165457729207968844247893083089591232180738155126313900184577408866789645406809276285174075426124406819433311896894501648691926738956379293111583876448135090104166332471990947030408813925909223352905841260969282866288436497107453252576328751552641567344944259720350508159489832190130318513418901179567370325805268684302276354980611886314884900166145243352365575906381495711452827713888532896552677358132074270734875548262558794241972708340104039697031456548157954716651600459251606482118485910416995330104049575468139049901871516718534594319177674197172848843661597081414025310371846536745419419974835305903972511095675962771528072973619185121351534763871932328134602998718555631194340093378236966751527485468978634315184672726243895858967097923624704332553492605234972710472585768356848305701746762972625463071258358489185719298837463030208377543514284979686500074279487586831828539429857733694413727456533704432627872146723730088892793182430705527748761506951149618743795438236683784481264723940382197063507108544537741844298333905178262702539052608531508511534139655756976630660397773317717054708477808160458766527888704146924400335597063114603196413727986409620747571888337701788481315741454855046792354951091607540154815681307659157141678931805999543941371386391483770486826383802416752529327053677450342750349514456333174949057231479740160342967144840170365600368272078301037387724419650152690126735002520316425928150271095611530460237659942435455222204266913585821827937150597653782578010098987957139149146988171597216716554206718648261914603976249911315715109369500631537932924386907114284709372971583934544644281317033735802724947791237377279760998016737547594762281296410976797581477054865607470068844001136672279593037282361060770574976406031419733884763325815330726228159259718622301314292595850407206754455830519405866421267205680147284096076094507950404372399102462264628555019085149259245328499740047300969230532569366325348673643999542502312060771693637771589605635234690451118016459335378238103160998937245568073342811306897988212672629029005044735015738079239813824597532342635582740293521239761334133162055301165354263543885558790698807081485707585386047775302671150111107500563240109817110222326506688704249745489494692632497241738263947853795925007505866679781210083757499239770369889674872207020938585218354290694517474046931203571960021712959585056656698101934432487927897576819980545331668654706867539030424611007949624813168577207115734359788396615210533000476671244574196250289194293529707404832571084823748698591137098993709603424756663939338448256960023333627343629053972180801848687808684719291625480236619007985521275619869163810360491195872544447766685660555751325191000232201119023790805173560769530148178906776251176110191433377921522532416198574715419548877245449947375756336567367295595770018274526545781595503989210732385426092744808994620943945157440775949244185370320320724263796989783036209489895601164898172039368133145380030576589410944545816536110140974816679831849463424308044066345351446221010283119849112085112788164359458769085533857654555078127089535262432057169114986499432472703085181029406865905328037959928759158565880654004919310389901710189898775937291240362525390231015108984297907401537245857663285612085447373850842817830124318751120427906233361312869894802166108818511449338954700803180987680955997134177907396171924681216970885220240193863577216212894187398072981179161420720462834495494985853337919392030297578439346577253070655114214355991043266696200649589138964914510809937525261511590480297771274555346127365892820011241828781807463362488445545108374477087034591585145028519065905076969078019990449699100049900347548433872900136339581954810033849742792971249804057705142352499601593961580312191820036185660918678150928733772087649635265168542940845837277073331288274320811369707860934955607586903218727385090515738991666549481107559807256712024734223228088775191857108316775695152628018722788935244808323720796237332988607836903733119336530122871162729021042964750344214756668123854573633721230261816830488013040348227198493701713800933445874557760054101595342361496655932873981969017629910397494949269370097269563861128637605268988556825310318494213987453633272075385113519309823505225378189041344974930914807150997391106752289821607898372743625173772989776001068164953715862946959509597410434795344875997503732274034342122321541569128789723830201085981277823465202180463941595997930581530823690278433786863049613659262319254240112521123463304332990858176369215757000170740945438128185970694467608814546286380259693449953027498805037481954889653363221233561453814872873377172829538019461200379510638574838913361592462312319612670009932070777693308834332491130611592796948321340009997419536048754049489474709826197811020680757776888580571012322523421981212361037276358197905845601107035714361251591706933506440269673013890815884468776114685843599046940068314117408588851839334865207751328343913679862016446484976111918778876348277177395985429891134996008917805089378892373241036891034620975972706015512768792042288481312086341846376066948211367650729120446556254311256833613731174808344266023907855580926416122293288516500752111777498004749265134898778386504520410581235578555264672153518511600249726269743261210162435038839904932229365058421033065659041926567399873315157094272113192222663451064057741857457955856756520903792413423032659692760154580673840638127406189610573362557516757040678783045916192397572815195314520995833240217597409581477742357991580991114075942266598162405494371820485262194097596947192459154216483790184869275772649913814348712069649393047657743257651596411273766117631756814710571662242250587408134967526113473500877597631110201497347501425821040218753593319915461411167821086860299757597342560916838129437573919870111226653068627543305858302255389529156644249982925010420714915044456394669574077974639431111236351852620349020590751952998347547380534178790977909765945563739963534886128460409526934092984149864648722319115863213457498641103832479977183471639566518411505971598080324941338612895087186174701050472420457387037631101434438781945997985726098501702363432177353414752828837199745315895534020556357863212081683784534802108756738408143621860436331094304822793741090242896705677680149762608112883816211266047485631590418737769858152672761390896963001149868222034033080727925252660880491126129897813686004026963251563036608554448801708714283694078835398731136249866184731302392589135322174589845937615363156559610948945611950572891539709545316364970055317935692865389346877150968550432482473233726235912544338934076304317182653029741756775350018075648126372122536701352646590883952945094734377206961673719447113035050823391443134382241704558209165279059601565471411691704285878487614381506950515986146918996956162205261100811091140942334536700899907533898458689788960203020561728348780233538103741444714291683407020802785080980576136926136188648897032108554901380737674054719261299999860221413996157779769528210940772985591363299537826142180666402492333404539489763448722559597489645895378506493187546368751627241865061840206850014555730451423535593205579540142679884817158979482286063768615072264007161584276761915766385074185342895264242613058107999068648271945675687779334741729491486663268824609614547577995797568936934195558149602360700487806716311552422472855220400399696071076300667012355379262270407455762751371071852624567956996686964695567123080824044659442833272924774957411341720845976894242089199879476609399683455865989767666891497533360763804662500835192840702223394908069037564019637456351083957008241271993759037521729314626263895566456005803524073712412206811629020992441375405046651073750389379568146590760305379563117269600736921565721799372780812942705779624210056775242399720409888823802533120127191613241131616759540717721923700405697473147562502107218110110797945643920164287175927471777898123029512583722851164407099106135434401670184936865269925822006189092173967911097298152947596445036570803358124885324964814812050887305764352739747595870769708267900067395552843999583373481776749783756485099025548371453801915202924725049617429183954880092089314343782384172670362385489842581115012366405125021110483841378610036178704294679957080103619417007003370389511487687842857378642887305015462807983868379315489152672006012317232688694934334775608976805473256101146555764148631368906679870914671602058214551775929912216192216471032474911710646678499456726913992867176994578629932787503593585178823729025264864429508582714064960049493262576347320603949840994627809159445561749842941936734722129495411642997410248792309776635304436652732292172402053559672730172849793232728620789775470300950243359055091395627895773083956691502249877035841267516140454285785114918730946887154779745527214080701353569239343096813454709948144097087203645735907848057124959492424025929643450727593457772873247931436425696294633913167381669791650916125482934837712117921364139863134974437124447816081824407999542878848267638672005540525701919057402280403933240741871766477623781702341402775608536043382058887981585374098824248754053177592556390628472434750115590933803205646864304504471532852113972673377532756817973981222770549040889688169295365632627493991347915571517860243832240539105704240619109578314366639775151271917412212296611795782919727512305260280341436814820861621607619781956901222680187410671787316236490234215884764217931845653635442459268550808618801671445276167423553911304930436409930361953130791867613203960986914331596416525283386536256273567576693431927999664472390888154104630521905579412670538193191332724909229644737731180264196779678537043088214236153482062368708852350862241760985888203936928492976709825080729223846104729543424232382026967734889628154371352662232070401555026709994992965441195147914525184681797474359631126324402598839999120408478362445044757839177152112865976540825908369718736924913551719921050941751267398472293267109792946693178886764527484516700146823108435696963346654073290030205774101172663929318816534612386160228632910165724202601256781769774907549915853371886267788451320230519633382147927749609397062616567525504310188364261469210955299565857298826632604450633869369570270486496625810796887025496755463833507083707338062759174393693080643838036092332372088902251388677354426537880696859370500449723749068615872024188179008794270099644763580332893562901254808193915507396851718244739994528943512005457109513693166494288383378356372284785680351480093091017960850883856152003699204982698658517818660789044187981409565320135317143341363725625550514201720860889573488006281172446390640060309489993120334171184054785734818807782261906611676117449141616777054141904562419622412788433563951124524349481308331325731958552442046351747014367291219063890671428039808258384086062992730463124035062898041647269047281542082187597178032751387652683847882453415892637691817600601754081731146009125746133511556475084458201642515538204016320196864241675939218886664489711113039443252905915922032579590797884930955375054645149617724465620235475683621326593226894282363401579136807265351284780377551308730734495811949583982485935857306253848893483776299724318316257394639522362989477311681310902867164667632062925574214391409749577550982640792605567076603077282233899602077394719220412860977476390292063687260099563749878970260427115879476217265396328677287499652819470322937731179801764675133766126575606996507576591163350897045520114029733257698970214383519632780111993958296407024104709202242881806212016886010970120053491914402996977296565052965252174315475536428938729054857041976269907808176807302457129756623480225324709511864515223586167323925411752847556793787861422524973031040029152228443145541762174621324913351881824043286241105316564003704987342437696557951965786796871968485823867513451080652814436400901435922493412785423664251759092202055699153314344898071350856578060433181261139646541576329515756336955697183984080513888669275569331556922452212711299682600736271715480504633399774931760322654073903451511718335408529198030554836676444549233419799436296046500294826276162900464084667164223881967249618544704998586734579128603681685283577813910109437581495398409942750961590285797856057497826127737974330033173598226209297710255979427309631530191869442160445288658421644077072065652804544225431321943486508261663806143393635088212979231385860078659724844821722973121422408345885650718143271384551132455064495504487083234862133367143319848727436605922200676128105118720897722551286250185808739185635158580652755201148484426035303695162814492671203446788186881322472965221175218455225984102377491215502737723446982024168498795965342171715711211822695824046747562367548939745722216356407677690899138233548580255107863592335991787724320013861149353458598529747298778692503336213789271553108112257173561011202371937243296558233418410611100560023069422178396041601076044105678237650208335638876531623560009631124948694295903032179055818147001895809360181518865533024025170589397404280959386332246742877548488348096942858758089951355233541963240812538089373916396678448623712278938739810605898402235468199205214750881531931840002410849851322973555404466686644224906680694070878799261599217644623989227826263584347718128749044492771891990173512545630730661167055791586813935690994749553873534167811096631730212863748177071010855865696242407460840621366983508400278227714334096382367714274078531663506733731986210103238627693302057203927038003709289939050897643851074245355639225350008829295774374126065487670304445112215437595750782755079496316740873699638750290169151756471546431471755565903793267271326139265220037969325856917136434489682755029360114377635143411597410990203293371036994937922512521124801076227180481434692615701101829429464514389554460223257717871757352001269242196115712056877874628386185286449034068090091647906977569068945069025561953936987752221065246285025233261230328392335303197591452722152710665994775896603512731066946065443188081022158136755651845711997948931475684109253388153521239823700925674097658582640547434741992653544876537639834173313619288603656794789134991747334932588445990049037013106406873561776536010847414591034687882374509981246911596467105560960258536296512432455835368109661361035044895960874513436552250473854250322123683966425862833929250418091474627174637604398528294827719257692550591986355459173626447079571684616872314460627900424433640182194368357958723419344596810059988157849945857874779190996433280834771238258974531914822870212442610792263909880728727674315427211378978150559064392094647494126260627931854818770305696215961966613992346268907022348189099580148324956051806130313394895894810986835131040863392305934476458286838752827516965576660582745122015559465129356000484143847562833937717902408699054896941544611877530718537694297704753420243341448380309043121162656791691183001555961202352657902541957100470776592409091532060434575986965355343066496605618163784394681023735151227087713671359527535151550496097679832550229339192399553334999784150579769108416944416164104444204104208731816562376139400790994274677650787175186499930859697843616936199044358186864531960209287364239653546065850355883413187637700161617437485958278053532309490578845476511674207926393717668996067438804662255803539549398207380465813715472089922427116534644702290644090693587718513990444622730318892442719293346608162730767147630948220531967556407785779356883460163077660947443186290905192236450549121182564538254258758457179747642753409782145145810189085007481088147550080319440063514166864454797589816653051593610746145274982651138612459384072983237221933284634798162101320939543435494210605515856678138050471155101316777755572862713665783198235522854541791618901118853270066456380015173787358236022306817704748935471448085133661648924562788732788126923906430525519375563710735401182320033700271279885503644969088111940278967392420883211310115322566450642418121473787625886718818362120323112088666067650255790239008351742964444818747382274480392841761067315116145186469983185856925809718951767975670122981745388706498254482893805308460665448747231231876300860690642924023618032882817267606496016884916262673903728342604616525045584848059258315296504659687023257528290674368246923854172804503125058434310202300082500507044673211544824160679080707643010596156937425082493785193743286478728984782432358093810828177537574363188780332245034474321914553157021378329471112187301566300275671458832778761495656395935103297554587229815951082686569305621374176630442326066430233691984530585424685035867601074145263757139072979424287123702165630802840235645797535945797275206593960015102223885934450789701735580620167357295317509824667202655316526084950914370440538463170057044466720559710024884942469573656386453963405776785166081682688351522419381658298874650759728425933017487457125035018368109028166650103378940341270744267271366229639412008207148675568085767778862214504455196511556636477572337416906067328632872676707901879057319081521772094640543298835725745181442667866964078243103471134941095572714491836990799762807254564685790034848768284240631816299574770335347025954692453061944812810270116077233821052583258441077714620877091467528146269762005663655314128997778231750585363064717659922177400826132259257212145826890442644241024835044123551076998662504309818204333302132524816013812074259512490350406658864683898881441254062087529243171762832644738813567153077109575583034729444249267560016770184921887894458484248096571735182754856625567624266684067822055790267737366756748713800715963274802519846353472769144759484679668639782543589772658200385053443560972091090360990448190725239193931437645044526892266620646797070466738913650261301914688026479532310240199705243991592392084583463157730038617079664897171163970003791128667265495200921277129716626999183323907134044756150853793275374008060252814355046777708971466111656488373559151136756097258776130607639437600801597961905138520082446393164799587903449452736738445108169868658108823462161326751964993197541883350945209324615636455189995638172407981226452592252078879375799735440058493763983738776134178947213253780506621024513781325234833872202847835206557235383141276502408489774837614918949139985550370948458431451114088797547992218222992611121953722684720283384103735952191300855898141546283358369516349034518602695536603282874237442060620492437824335376437596438306468827886190187154558765616436969107228401182458610360922309122939088625694974149201736021486705313030747736082920489248258606922347306514375612831142034066727814159744896242855887403030115003705603766232705405820071525810968082027979407049886518002976158351509354925367060500285876113244456367117767211457288784318027271534588700167660462948329031778024089537259299776217334819356946126945149907983964062677131165274514821628915475433452455425858096125791706287978977100689277771945577940727071853500533004115971688015864745484644853512588234977220552980941215303178761900062879048218773731229049563563775763656273615027281074098914503002900234060248705433574013562570083297561845407659763902490476923479431249471963530541513679393918702334444828060015130469927391792706628205777937768646781070136583120636369135411969874835390008482087797019741311115308304412738480793683021751468191144755991589669207033199302028368911719976625795632717203981806731512652155988708414105238552405172766255067232362873294105694885355555817884056649834595417363907544905261836400597954546648964153651266793035832498885333413062476320168111248849892598671908287791481071714260676083301902518462143682232336354426778688055027026920448918097398407653086266400539358518173146194286331743453546268465013102338057160843609319640720315844456383417242054031040402786884739869832483655999737444961061696883964789064354362390695416095851489589664098625802397655078825328232372400827716862477104812378761963609277985277691668874209747225992681404814964021991188243780754934329318794259096459200704906232671020968188404454995022021436431589464709370041797318466316965984120648691233127654517330842278617887689400657877265697343443220352912456676951933061873858077117370788771780425112916957638994267125567962952007565638789624498987168313657155642502691349432073757321792874915978209851657383592217311868673095436563011058875118386261808285697872928599508825793620264835464265976464380366967580159474679718309330035938809175568332762788236513377258663499965071359915380820925585175777342565099080683861041768445796521779266486612613595434310061032902505329621931270434891816436641549391576495339120960211053839821304332049877116333014573778262446177888521970472148846421755857771830665824076103901499301852999576486193388166556333319353969625946408764686005218991604290756206295979443949299084672097140493507270917239118333071706809955675268070346894400889813430314187827789606018896880708999088076588849666844445582800712929111739062128251942139561215842537912330409863556001427698098907502183940509848285561808425346270076140756571525405244982942134386283540631955765967289460071876694466352588636678154884701280348806154304128773103811775351032956019308601712224813247328399677827479289452320279889042449489664744850132052874631707693312280443340837821761177892210634583967656858389675787212572913846341779951328071560459910917013791873849555440677711552592719241936701737567615062196909922977357416086104556398704043877179734378488053418502488674037041816187382630190443686830419693142280911265745002785294502099999360256376083473332881354605360228558188328089378901078481492829452527107677914018043761274801940374219140362319146941865427808039264840194649478517359339774407091084461277415880418636226214303191212853020279348922015367672533199014139649700353507982561980451809941715887149274238099913538981418245312467930706298999464503212764386355986896594934602701696178806902879336684125669292355772215104027467627085052253118133691664376145682401960000724620127787015554283135907385014338740097255001350248896927712423513258205175384517274323803365156658058753303362628616138846349349425219509185038019256245950165763461262716835391846944892077528294836907971518101548620753667279898869951173856810736744192845305912080135402765063804904424581696603371171238067478072251467313636081760667270738937917762311026043826278487559198449045612036448423199362500877415210816851232718378481026471408407703996401474487714020459020128963835607584470080024548170270137508160784029105527694241282855725112482499327661037575267993548286812251404091553392949635820672649454605181567843922986911188812425143699143104376428844754031210851237283056171857528423307015952808805606586515113740745286991082894992144885526925526440677064951073934429730665479463715109437748816888924786686488193960982608271750616274264471687218466590591408488820120335819206458562977563556904824775772825767067804421799877417000169032157314485912521595533070214124745629084833168935133304144903672867832577535112763547063852113571437433305722252662107897592789154526928813061165413656636320176891659112374613394577533401454153659089449875775872614195226105229293954959235656997583400664392410592628305925922107393482389950071181205609667836615002459867911542807335690572900877768980979287296240143961337322666369724040691205838398369176112382733924304520914715881783420544917579397449783104865442186333720334570240093605553335715884861112583939605246969345325751405747114925308062208186908076129006971646385180391631313184474801822966887174126165940170472090664371792330681934259969316202327153653786354015112813166244131507807183481587707308294442156428758530608058165442940866562216956970198588685215091691394117600423246187744835092914257378490834229854801644070507474050913385547894598427214206251651717712584544275575903228320038179412000588375227328026464443435819527386453871328159086384792643071714724775884734611275709399050631868050896991968335137497379972979053145384251264474532934652915253784247902614675826332468971234512066768854143402018191127310296681400971789636799680793634586282261420539695888845014460567734079296781886594778126990491104848060468329373422484932110028656640050928965649841755284033992786516328701143212713312189811906418363770827697313576860331229446063070981329756480177543437194924164661105373778437201061690368296136036421559950510130772302438944936492810425420477868145264884139552495941604959485346458434365679978717663537998746346057652840703199848526016599374311769255123594688122608011815842768191679414616371752889714529522138378641298042053116217232789068502450971695062006211543943523678046831585275147653833578028534860749786021224382510639895629655322019883058524488443093431265790019793576992668528389545657982367508282542664831448852180079334603637777078988132159712502368111984818548496532815592441072348769247198119415011544698848851316321192273203986575105449960468566759855624431772541098490708381140956503944221335621525306849095877387014757736042228310028199614910182742637060258346991293151006246527116861241706159532774347688247950754034982854424533688644364403210724442202198305447369409161596126155173526174783096174289474172348259237449296868260687456619388473268516364050950761558786409018395367625818662593589389897532254772059341680039571480838102075458642577681052604837385882852288686691598082822915998535573939484510099262532725794752562554594590788091887311883868820382418349700172160018514394204055661309568183634183973579246829584693423024984178849239153227731476036680310003742369091538363445426190576431848285501989380251581815206236348892855312529072846544041003381758268803709129378318755721117870523912583830889495435916437441456067898536948225159921886725621819988382497250162824350219381410682112008528271182477720396737574017237508743739520972252216273726383008080617382933731127934686492890479352943510258637039192097476591332618119334727806887778074613136344060680323988417068545692356318102891188681427659316630103732914162869050564873294174793658955860420838387085622714526505731802162063793107122248410874598350892228161356930693270296273442605086786832186656078312496119481441528015843879113765906765631026302290854139457166172414227183712880130167155555696285202977222432800441492822643601678739911342109772626823429866104998982576910615405168074206306881105808206962915171560320931088017947501253397547558331437532705583867537943183174312724771119916864361575496450764156557288877416699989493215312791124196258522006349535238416645820192525360913858219642692128456359004886582258842364890846630821768501820499088946039502237582805877515657815306665944028612206575087941790581852629947776456482701530934127512887627285773714813235200675827002854582271057439773096743513672365470934484778535968022354531674499709497275973664849142030044558787790681780468594424916249948659153315137650579037621433013465392738786204284291984076846668813006889694260182550887983711365537457141242533115875908129140675042076088464105084151228880405253508827574937122848707000433231593367868779862090118539286978787897823717163055727437436240428065434262541161152173655645346457964311209290340699197169652118276254361333591871607087324851268951054623918525229105840166087489130580287209838884968828932332528574363724553711195164666779480398958711071894493254111315012306203329155545057323299585090485471773236790192010670829961834830222938648162598464290841163556089806675130502360858409512061653624866571215385918362017170165336890383202985026179392930258970201101044893964716527649973179076004464856261703706003880560734125235664236595833871764814638190485726387390163237473203645235222816786582101869870616967928514955909843657073445190115193109238631812547869222425783085166772957251240094802326859443535361124680275292851161310988005905721356201541728994032094317004190423951560344281205677461514612988499137018601858138944092752647562598799122438551382042593009673687133624217040998851362075006703228245127555719184986131242873252475907213674202629144104116948360145407648727927604220406948824665259797368438404411915232076518651239435876565861468536747623245011418296195942417488554629069104820161243085115920020925052127680712920400186841490464529597009936535301562806554981474479984183247992654885388890183938464126061512973253813570007825197362794107054256686726191515510007656292066864185858686990435393982200275693047216457112244770917431315072506724157795074125654104319344885553670035334504147504505369034917512312701401609706823385967510629696151021764382141162943546948778283642521335306224929517901756029046038157005634817335293237621958460734407744849033728885422934579022927638721706543535816980742401605279382884786404690898700208536643743963512716975319150864127535689496259502955656618741518685708489686367888091252210472295774570950724849386485829856497921854118587617276467072281002315467182002218025789755220215451345892981377690489293701915260760221345408571599711089308164866063767543394738284778228622818433406366390000612672772682256927815393663739017776272913067962649404111282783097117385464456768879061782308912150310417188350088496377384900503507249646812388860946441340441462202960333121810532189026903181270311319818395482152283545478488545386229508035793612792065483636651390235280802779858317868348955622864686965852320782757206197093090073306245939161885743486651842540054363620035226050656485907254425966028991689653733349683741166543948276242619808477942775743105402165804497365552360561752536818944682120542316654296196281095016437002292469403886287831232590457530112462470299260939940451339319372796350324942644686920059247639003622376135712615394597054166011946588276288511816024717272220013326311160780634129635946855370669216499653996906583079365640341200105574008570354541980597000816576521669968112551565605746570101431750535207978085907716285458701476505829147001563023264810323993839771063366195903993840414501017218091749256407923245621768593113363781762147175495993764918470237011968103755109538172580866846176611630750296112431357467870721353576623412171035669940261683709655569841552365612201121323728574636574588406593641576263301486662775800129329598508584546610533938218247735331138097049365369018233853835534763406796517770302743017889264474113113057315948664043954600667778618466881511105127730325268856866715659223171166513222607544951117599225027142320432544115957908043195693152780855808633929005051522839752702513503854902577827452513560025749410045905677208020266701983239826497868840785748608150643652468755227625717172628488263621905664558113291780748732045621133345368949126309594078792678533969401910991174664021263025824749679169307957698379453377216812555793643107383882639222177753744179315506042361568748176134697877492322748748463905828849067161161352651969006600848502920212258163526215856991148773303290638363857662534160982152099638438342996961149174089697698793820238648629788571977092081750086094248594425874077021478026668407922885768215877169465580751082556101292850680640483989339797761764984587070045374543242458797261796607200306622821086066713228122704730878110825198493805661223206054390086811811833773831186974929019168747739584685975270689332690583886156340876601555695673611427915468234565995028449249575206441798742678678544396815638596064765027426511292867851250302180785338560345189465676951650976076459332330321577595465323892980632503497095442521320379440914334631003123677882277053299585766228098585511855309149825314369752857167547654732657142324999371631272320549074323001838708207190220632174332077621705265911777919600503199549559573733934226489345261612952229450246840677820363886446112880832243236244184707159136018381408900637924103298229516536514469666935900689190806462939449947380011684248806959220700025014678977369580933256325604133138444381477823901153261056244424838050095245820220158349337369658056762518790266887242808508654731292447098923726725561638463514129109478561635040932577083101494822114233164646684941948138275966399803034723105725418811617015433045071987807279998412861244735517219676218737927497395824753624620221701295376618105049623846423402854700942501275581456006790563253579027797056110716744935271384401604738460846877934507763713418326222073538523400689205569301674648532738085837445766166074303575769953331082793215216456968379698449454996198997151531261778791132849900428176996953842732331269423073479930962305254555960356423391574519871282160806395582801826224314199549997025401815007029298998666169618473396467631634123794244308236131806406406450981929149264593256030187096646782857168108279676985639098243365144563859906868019285159663065718440589956314550901091886451584758216855747462051699661911727219639922714031556657865007349091697478077178183119158942522779379353512325303668109798128406261328734573524717062600252165346252884599315188968913854127487828185715359239954799894303251604298457979332085260686095805876858401737744983981617166130324246559277273523296778109154971265141403985232034550560067013251162367112127728209639206673074804213868184827451898026666617696334866697290863998234049452147464880320082014708650315390207318302623313054718304970920834106492120312671258445962026090275902882339372370935021476613669206998887236096525832961721269278094067178378624364408769005911638224440007321748243678824879738315615866007213284551734500352360437130219855350872410289771063246375213058978718859622027514668793847731104762512353305124487934068358716918884131384830591056305622139093856255047965938200367811892886763080757727647593907370855838419202307792613056412678290459821044833711399621498799166528493768166626142791700806820760318721710419666864193585810401662499982956543430978456072891629873482224695648540654294740165087967960210017129861770938067362530608331638490174804550435865845049768450790704183202904647482019140932515425391967069603394861592416169998590029390113458063545662965912746825624733674677307846799266830155442920300751612500603023558162403705361379192490492081744711865030221369569081532606153111900301667909925341406044827595247347886129701964312702179827037459594430417821193412732304519461934757682930020154789217834451493770057840828827491415137222733558013640691330271421524673730602494501196221423423562477744147931121185757898396176456351764863850259989145706030072924178529404739299867786407757154150290821140728272844157361452459395768742525884122030912112683618654030665288843406385720131924286529656783623312397479564226099422085642011250951813281971032356757413289662541266809965370526326175807725257297782534946334220369754263111819693031324018299437204279257946796575963725061843006244165525460938532649692652282181732197297688953020616590053389957847828280929096212691260973529234621329135871357441657234258542372875757321032667175427918609543212048362954233374236079290349622247697694775040894914404679258522978005406411822640738407912329023908995703645243827289059704451657170030038159882408795754814513951265835371865901376884841172759842112990551510124566645718071758935310353376982593456015829316004940595746758659810359158774597258556746459165132436047450840050691546297519259810718955255881123334599371263191286860567208605395150651286904960526355088600983888887131094730926136614200519247496140267065016230287693712560399719239012030334109394813527490233516044799630249101456560923502195294559069416450730398364371695940137601130683563628631909123695188975108544544913817502427839047166684544605939690989044874544920782791779546499100680077710219728549176907879978084884009529649820190194608701478701493706078472321032171965372279325091414512293431420295150993373613849646768907648480307236162394900694423215064310206497873977775652590630526622847952447009345691122299921045087682766500707460358384937842608036866349236746328385593783631730724292914398719187513613229261222959023674723351532870499813642175339566583336757027653518047173401053252462546592224419043972306267526141096091114220583615257871840470405569070703045248634390857342492214061281810316775485113496870177481813293582088001383001038686946340011549250535776616198368887201447260160784512851943089383360691866998667937805769490451159456895662639392985188578919691695919201083439949379225400579237867411051183819347399700517070722999885598134507380179176267947437294083301458559576408323800277545742054917800191491152556147205967054322207963159197782309226056454937766866085088917725331810351054238947251049613022619813134727379871643587523011330946725227700210456553439752458423662133668430816783559817268047230008131274731436757653831288813733209756612025275792936352095182063419457956808614266635993474946175858466008548462332149550218045265927020539071858239242264907177480927460640376186765013106214170208817244280038924055865389199706559695196614222909501463064653442751929166136558351766200895727197780259244416473683772538592857135349533644804167749245473499805041343663874449467032001487830894680670421316038261638518462637895890418328187566386164501712785442261651965532349745147598458182613736695770647161679809084044644216029987460159207637015915772311295424943974173166527711417876656040640495019533731998719478445951757890640135823723458794111182884491022682840391441207791494249108204859216286681866605460532442130686220606026897699606186715043630104431620943407120614763142335847075838676984973202556177489509929519356112428539076179134807225070874131863010707555525660716620132269138815449175766201460481361590636117518265085000892863087504185786418250633214383126226157503147097971974080976339143848175543022213831222247133664380447621057608159616894420170697580876392311745379927100880334178471706924965261970258375157165730503553448236369533272612262753906816665320150192227184198717791921649455100110427254120478148095738490579464985033912119437937689203024715205433801161911299334857246218850927971592668956408016590939094842734168141361434046255195540844288703176579983370777995818790110923554247576478329537176693912134403099212331371079382839135548603965219413928449505967117482411573641360678914454412575710918220373154614480159121652205093246478605474183677375072857803975389328877581419018568913867913267164915965218305835195666368978275774434606689476639788487163507887265785662268069191068639831270148901565193251286884586762146348468586052897377302221850382642795207283619733674362921088020850158054905524846661781105206395496774994437845257651657755056890944221335223764733268668060682384743839772090703234441478531614893675444362740248552772360063119384927597582371891581410845107862311756591221187170367916471177152313248999737363920100552097805091080380744769828330275796936527268112790841755703286113200028002979427155362992284613686578428959961592198230913780801220362030335763531636974705562103009375852554171701382537993534141957247099552180792466769475513770433325178520867650780694541528841362302496326826236619906009950050024017724746200694986966626230360746321959714691862816001012709663714953467873336482303760564262866964964264939151451397895595514150566600393921939971425206456956195718450707609818636862799592472957309695909413568337163885015376549316066152157237399811202296501141892817215731302652428922798221792690220435117044713816491094828325635858984967513793226343911472259367223900173091970506762706111598833059202601348024836510504079799864329686009875751103909252511978009671747332864922814957227679580304617558678378806292789096841973424418228669382012812830573863694124641503863716790183645634390163826538564274452318894123046578829444578621301759868583247561411121671095746834569089900561130533710237510391947889000509014865461085619677565753395795977059191329749746730245220422483155062910311607262563067101490706191877727250559058624217719601793750284394185831370836919359787597399293370828370271102584559413209132747676218523416748807136589090953740363948522739795579453947367325534955038497627684877432711584466894989596243406088647846754507035456328972729021392336688077445061906342764806589572967695082094801566472676286724557829383483833405971873167077242084953599281983956963377473343635832481250979197767654119953083296735811915475827801025148423909680119712388560368929939087447424318568778087517174369583603714086873544364562164485773011710501848978247249315949389572598084640785880682733000330238027422368656497154435371099364423779474196713385249844910475014870899339237413374482594128499799659264093327795096002082874525028830958987761947889727451294371079771687596000297329654475345514041052628206461481089520119488172102989878544949457273811339970672505191371908381172950772923935570253715269543425843513502053820557169593033497070549402417395411756821271961886710259199386842334257752052512286786004801078395861769174076656560429493915725293217769957318572945993091624515852126431811648172441483319308843009034302845590904794545446326193465977901942839284766583906889013117021421054177724153754793321589046005567259572988134805860886257153987095116424727838521995738858292008758219713725080778452312637859382340211997030425953972970545443819798165594812784140508411430338734876148306204811300388516241434393759323186246443923532443095845120080937507174323606905607750350450635092700419405370166995105108429192881026370987741233042741801265315442866315258856372984836140879672388601385583775705613117489377868820893793398640073583722170832778568544820060941441772838359897753832613129921995555436643878830759152584877670383271578585648038882704636997357641351148074692672353024486941798692969923542481627952976852505698728789374288811096890464886978322990737669424423997794589790106327362616760733064509663404941451766912697035094300144346097661711995430461923787290743419474185825249472828770565602397657594571977201906097055185349222388324797089433119769234495305054019967721129633695144806276345333014589042351675579900110811890575923604481539951808364134728098170999029636685989215602000176185161386017869807783238281798524552534434909648389819229714474771997563586176802059193546800891789298044464415544174404922473943941482201920881874743254568251806795971343030276981212788219755126682605416778776989308520940040337749113329386640182728461048494190252425880678595025803467312255258175295557015312140575051420723284543440090453598629896952038419578853546776205638871132778793686061344721003121114658610549204091550541165577674369402969609351125675733346625295768111009898542551658425969341561696812618468519287755544329428429969026758430112023787357396202571987164900757392479092337397586574675851385996027082122269543511965004623305216504507104374029012693145961654562450048534023510892263250307527463857969067648031140431428172220956685838504521445230262985979084991728772421225407698071350465011208665498297219784040888508841471644790805160688430034662381328128237535368066004608338228891095043115454288527824295766960774008123722377264751844234326631302635116157584256045418006486783435707167999871026711305715696786953485340321203799127725424138448264264641711707212907512007780233125980465458282414815218172840682927334734169191084633816620673259497026338275115867410956341114244500116743326219089773659905667037247026735196642209737956946787286996000120052089406001955048905619563147953530626127587871578354721336138727190691863388938199927786817464343828337350182492765009807904815714911390063427533628310969187485251310612710505760384058684369528077828010936451160435320260930205290119582141543724149110886433035498670885403261992756635060406378373007773735910880542046593984112152002791854453759927902216376622036233906807933840819284562731964009809974672901442580956153510367424731215086740298615793235019267736477779979409030003421551273890788606303970996955608830101072044524892344156390200235090902690045339448222296306599895350256490399884560141297554024360714646426674704000634075599885987519466905550884380996784427710235462616179542535278729888982602615725028431224445090622302881081426644349768996094539323428043030363962304940521591345133662746213305929186567269318175013666833239883742274188856854544948242682364708101760465412560525858306769261294804861561825109750726090941262697757892319842971122931730653499006709593566503280507838650660951146480382974427670440495365430497952187200309467531297713956179431783513821079624342994783613745609759115312579065667276979600611799854071486500487762275801953371412129356734700321271316538719564764933966639324808938109376234984203966319475136905243452608945650529174321165934200266669365027987833797247792801564155746790558154998650387902894670881013992348548389322793191997602953548197169076500385103309729134733303878032798073419026759230449862265239657236033091111286421000185168233571363793105968766369003690033171673343218023328748245543288062471387680746400003658080044850125884042404826015220063743733749342625732674085641504217750749559935383497665049314629934292263942803208733990868605197531080202152031171169188487866254354964315787121319163024063042792143608020795931157918580068463097269203673408732115189804523523948977275535410738213526845260200861657018156752270003696905641103588057431613305267259827005193648889454141696601089510682712974460371806027562682740764995003827502710819408784432115455806672150472381024399838436626001727049276722002694673645706325343438858834691269028338315779663456412800795422201221117890628157225816738477983363196591465556915690711453905548883583557512144437607698148349495672790519179444882672337171537211872881772589400600551155288237999511135870637904936886538679713385937238710616403193034541220830021456537947009440872063957498460724592391811983807774599449688122050059111874272951155429611334435678028973986664197184589990992370865195959324535531099297475991582720376548526731163038726532417254446713949508743878700879750908129252143314566114132488311218502052796907274793225996373642304685767979234858151823128175834981631578319864758381572538975571075026949793014897371706641399180906983714490582241850363148778591990052379818501287030283334454945748720833017725879655203336279387511809552266158305569654401208675546788822015435753576590733803545875750881179098843972560994915763855930260624425438826277362689257291677216387285938950199810215631554099493035527222787096299559559370259498654996555302182444566771962197239654326860914353205436340480936820143382710696861500866309338915462345385497742221474667080017878367555229639858444108720459227593023029307270872355082582585388780332732317252073149671186729499077005045595573505873427581358300366190860435823054284387995319834183088269764475888565855558858602023174151899626465680556683379151699078309546563146662226322213215686478253436004084561733639914712360694780575952361086167814875228336227757927497527032872573073526833592235053741613841297498530921334682981672544154463354113068432729662860869327752209427098689467128157544840901645512359828984069402089340419581735966173006067752702832864461475503078168708478307284273193558642714479908428193996797242753489502829065323585007618398105688741081117898457844468504259489389869774743008094874473575653092525321836007394735562370687378209747576378259297356157831604534447248569124062896354386034508248020881721253276435531557473388548716807303251053547765289669668032827494596280042966153004310934575626454742616429293896410701085337695382388764010403311740233861618428372519404694580341719979541693443078337140491960945895149603970580750818169514539115817839634881174489537098348827600024995488392368671610256292184219121993467238322583370245587380019361114897252711543720988330021595119794324394966169169646936433719335595013896470601064508908602040135843865238776930470659787773848092022133520266540522710946541034246061991843063589082801261602622731925962109464981481881775622859891082114631007281223708746334551454642923291688972266137513693210950493043873188264920878344391825916749899836774440984586258607155413682232386108963584533223560829160952757832806304401608364922810495676204053096640979976330494612568698048292366759931592240982570843741588412316035980164393824380260631458121501681789695611681157757693637303463242446072010762677622552305853686524043187562514705506873868184591758892005591805563280198694822477560797113517720185932537151802583080061206356252996228862294762825006606828693521423220355495980300211605063415635594147775240496914904135419931672316238774799751359328488517736899832139373056038724128492149839182957258097573540878891402190743583346004998775359751713950847061863891406071699315323175311731710842353666545704107626730181033862792352821852700640871450081550253761362599852511056164246084344088936125546877191527717342346424865755721981807532256223411591595413664637087479779521660644313007246750605341987743299232303508417129924599706467481656113705903233062348087455823020549454821709231757021390323290903425333682993085888151122835440927486670628802825862143283106700466929316561128214673638101498325035563637298765436031637999947116945397114050435918292215467375335424985096606580294569239597380734269909249678432636632949004971170822473518590344520163829913917149113300865270720703722880317690029274993003873721372743073757186271453956634412424584073133923926810912661284843996722183895983759050228626902553914260229254044114702517843616632649403885306324049406173125898695014994771089661250616108775929490622185809605746445247371056622773132185604372733828994157293490398714075677272890073445345130950326925721491208034299167475470474987955750340463927637774888448364810431694601166286912749235039700675203340458081318951332257965872160496157412399219339219774331563579738115611634567131474292909474480600915474135573261390310653080449511120780072220340760677120190523648524110111487473540197637663242281933437978167356946326311575684221024081080415029799086765877744749222546037640157727926630427873242735819719579375297085492428078021160346260349040410239834501039402723763228848649381820477225201976774380890231274668540935501563902195043449604717939519271792893786838773296542726607813060924859636559475648865406122758938490897449410552499578767754437622498652838136545746173386853413216370892281123895675390258746463375127126146157692237697851467112055398224932781323477463208132468860063658606131309730250251371705792104824600741644741133535811742555757623374505495445199710637191969665449411410340404478881701007029573291111870098117793498123557856208170764724056302842145267741610487959190835780820017385702623070259658619493130216784781522971208763545920875112706834044856801928954335471163785068930222798118893034564163413347916952735881043452214841381398588173882975749072892158166279910803538150931927783069086187078166663148631589588516712368486678116805308005078075660030402206079195076290751681392247814215263349104590328380431325555549613886931946154160806145080798592171721936627908230454193287254065101790445273958416413420243815200635604374871643757291451222065123218855543194269920685457927141245152244483405412396362078115836889306963367053154593153270499918597700485411435692301200560869743700999722392527002201176032876886352980124760985710876800579681877029983721841872202302150569890093499380690281802712357564005425792189987030237740830765400235592327839093719916595106487761100662302053291816512884303237071366863783048299939031481171847332499435813422309692859681468967927341717697440758279049279435297686863887300963928885732778057326581038144666721571667664247439360510283761231533470078620434833777979227434039323722289656194394862025359969618046479046362516291510216822400646383247245978402720499868779885605370149575808500466039930439566399118791640087691645896564145979042485139724223258943365342669111924726965561301599796536237326842478326263255086110461934213309395745218614004018428615485337019569059677035339185758521568341939396156614803656295113280218163670735635729418930904113795962347520598635336917376914106530932944897462115288008083513983579109873137857552968775540078348905128612418447680722265733565831000361357182221381445994558778624565590434284487266195785759114337478633150358104506589294341874964317639316511660150508673890273280919861599994579895154359704313725072200473587931461948535838761623604277269311850458815397321559965603797246936239165894521637265643266879872666936371430494670722742669891553842835335290278172634668743388505986118008383546862437397942175337035706763282456105933918548011772946530733352372720083426096858118664640598660248585578669633012103026090970494190458656920734988045092872577422781988879867315188077993550136009982916384781546463299921837712265181960562103569923246372839211032003783997406487964231022790949466362140089848693817080988792148543181175340411295875937927061548341523532621397882036176397238482761125431701692448839724411233713135589135118263603421693694321627355576991417801480512281986985938356425508387846392850613563664464251738361979003222799599998883301572571319671437563265687517614258373888852087676529696849311198136309182180057128078084536500384592323337312224652749895277291502898023310006343741166136158417184201561697071559322687848015956853132158828958695646376584067514032205949308319113378874776462223241985471233432253926954874210961664537251985496336446650404124076447274710043008707917118960769054487236199734164978241116259960419266315155733711344492904397234688863781097447758536264555427858709720392821636666039808813227642984638363336880001345282730389255023162597440993316795762440000056601858226915840763947251253397072436233083161924868616726639096014141431787734552707252835742348436588979404570189621424651824747866154234080728991159679233217270232278156663023176146477560660184650145555497847358092097421679966835936064299458223671396690485626311449721357236361422975011411368006669801111392729811838997722807235587891558190050339743312298212121764636639018423634607659634795429286047785322459183283220524403524199671247953325182713008093863795792100776303592515260194035863931948857819868795696116341940920807188699443013728018279843912335932837646970449967449314985304396003951112151194107247717887954820539532958985647467779495250036703245025264384656514417749222140774528448732504889067010115568540555285263163037614047221875474654508388496574067201312363863994952204309285821410045875526316998518289725031197004032502390308236701083269601908204336918413825014465150057058031933655816348658107721665900333497511672046480838193167161650978660028094470641814987438406842020525421389023906858725554570546040034827611915880522268491852671194369798218252499046097981258724036805070573529706619441921087128687873262135691257404468322284481479517465651417783985522535747008328838080148802286150193231537586377132863540872513071502565494601514247320999980036264676958833766150090150151279777028132312743949195406858345617977570003889826078556808733213729187462419294889883694174711375139021788283538831110178167804018824830353910515779870551784716187672203943567661125740908130084899496702317997974973105861975978909240840110767022683163096965368800590238387981145815943206442350491170840152560258137140184152920271213602908069125856649119746179518309191260340221826677516542282214485931037011998287353136874479110169066054556054314661537051700166833945035776476787405659807244859984084919743086158833880996318500857066693962044621475864858889259305763436554828598302646218666493001262494705608561342639924948782847780672327749262158147925966543971239630181475226283669988680059940145639708865297075097089920758943121778477100649470830347698337880094450945517685138920537097263441384986907993162864439174212528056219244687182666411879440106450011870679351579590519644401991867714764276442655481114921913249556803922957968302896615830016689789456487368115389969852714396988512808170819724328137616383736459845615741149804539401556230052368028721098318508319609001137566550512379367173981725290242533926005181350885775081333512530857687255318858576247846492861636621676065290599243700011497280993366237678109907272561730030181632061011775199647402587257849392007739092346865822068682737954338623596701647539070511103084295874104111311504073234542177654118846603112306807905096316358488447723565393887483527373734327462715370503822994565627544334871026054377765189677022965280286828862169078006062725068368996652840587187975588866778904158508573673128988396725430765150416999723689988521486178844699317839386173937192859012489243991818972112444732885281869433305926693111099868515891580648829336558880631891089985699779428958345689499697007878282568841245573757563056163939308043497500761257460424355154734599018902355980568885383282865131414560555268512479017119579250967856275200170907563680108212863615977949674143335608075950119031613034901684555040240353794465843927370281896592106142419183289193948581223822258622741447380603366167418587998560948061719128523455465608247671048725866748290100519693386980213474062418097097149030059964017101085708338170056422155789982162130038829527398181255704841847447795466045290713085533762016242315449994090148575109846343150450659431130892407223220898481536169346439477666224863833608250031339991629447187888623849687961231206946982281921489990635145605326566173287086825201453867520696271307007000968164753834714101601494879410492056691959603063932611010236816195676878978554178847614046800292497226487558553775732179915992624107378812163948491468837960623753789002500252908202832072846357041835966522137757134659502643585324113409251095588243749108753723304695899352914187215404105355288877242390022563290168456665141339967054170911742794241955011870510018851092659362478564990535709177619296304290096072778529351880729868559718696566264042284969467236430049560863753331718070251594998616833890479873435027235295668820563377705547129971390440508889689735930383844721251637419225615333554516661688297415468823074277849123707791196533546803157359686011152108273531783618729181482700402970163189137096656948988365836320132393717998506707902147766281677960244085265281418968607461360983044123020184441955284553404754622201550708255566787892980096298816447429585131016724614909170939257543104824346062217669910872427338359431556550081469306436146350349962593198063879553769192633202428628913558368147569946677718267040147593975663129672956332317883923153099563054560056545807187066987788993644305649242847031755944728892622711997270461602683121593650376877338802689174515116713363939187710805724391003394963981824206922441223224750978129833961449519312788200059705320933779664095186575369059408667901855338704762326119278973454560468287502532438733316501990349556564733464457563082719619121632894483219595778512923417281890763061712406786235364224701731796951187646665046266655701721823030791704019879364005011493804068883605881201503482280723270475463583348866218791425132890170160219486100989426541057237979407046539412357850179132006601535407308284708485722886451164951972360120108482990503844743677008552349375965288192625296718770996799758017335923538837293251807932573528868491372527222178708560900622579358766270199211506800402350788835069154356495056936597983607829542616695620163541003421325928002885907280078062713948763939015415141505015422528385072869109034285156512604225471100634414720583962792725033326259157289493255292892296027821948485131970771367615121029162535594217563192729739306639435242123712925510452066482052082773027327240413254195741880469795060753411373192122567517179333484916975877505964430523455996467817599263087207228384232690693711919517446137658344078661616470387064694460223494323439006327975047053382187745770250649810067941668870833504932845172707871103334248101134324130265811191487735735050151327372093527369148222042091963256770282623714122784774072257844374943898544698294395950310665996510975527421056075289975998813493683881558063338209647751444853824292228375270276454855209094342765793161147592957316839050858806083544061067497706878568399045610671820278830364782950514169762737693999286862608320167698407904636466811588634026929616138535073492214307196279449506047848338649431714100467356199567700855754322653712460682462745824245076857105139796264335838935422329637285397086889375499604448104992151629006955483976581112160200171762148432675008217751050671478962470366767629055102814944160717137563847876162762260430409925591298686259593214740316849569516919678123735803368334821950121025725312172988220153300323722771128310390563852722981839302573488509605114638894562014652693505918261313332738735455183788434577148183709886203101032977125500309916038144537908943553618307113775279440802210778878176522300145652103616220999956016158592561084949473630303665267960901461094717072275301721919694552635237033798730692853905115499474122726988811971383724402383768313547818258356463235172018089225302354888493123597437510892999538006767996389122056019692695687828883494423427239360161883165856360349000895428514917129415929149492854481140160538235309188503209980894799312968452822493586247663203112099010516309233922578770919520676534137636437674557533872690567046909367182677160131893411677035191177469489304680560130077446570547778015562002306075746534013448551071850002973529535131944852121144422876695919426847367301218912510934228931207347524312469210544032161049683173887813871663116184139996167362114888525118952558251926843697757155912387576265740608877796132210695411748366926321108919807394374458384560068693134383610385466863363389908209328800457645061869364129343681297491887783059978230481131971725091020675398636343401687844104078736949102268282774874224198171796849932016351894562904557104813135386329219581432105040853489700492445787424329622870716585059582045344530604167511811361249439600893893520892206203491032517698799857038602274643878113173227265750567708187451478768407993388795720737762237073899097971810156949873694196201225153061584781256046128630516387621597700925381943121796449462629732355060790397968714318595640425972480183844311993657178915943486570549438171955522386621532726781322239237026778774901098775499219433184562990201566797038930352731579126084926851348003390269928540250353856291079740759100593487443288419958650116538670179087731958323425151539550873574184501622662088994183482537238834366309375003438934981399791074852792526910034931085270499435818366892310734155953075384343871441816272941175803158452487698547231993026027323163124672961763101978832823681489394184118126809832508808918614514784951309321025952987493556998719410800472221181372603989643179794615304292785013132127819208785629246432250467120768364817399138473678486936665697477248282985413445208839580060804395439005180808619681833502037213247828298770356079154333560772649658091321908533795933173428837093672412480533518236159424394664281232080467009309550124677055048607710122419353988625144377421267070527205381344218428561925122992287015415469546159556752939440703615537780162707738014580851261651261800236268113547195320359138525981792215583352991621543786598763924372233374318377722593933371573522539438014185086308539762186405158377486646828981743442493189911785817579243235026686784075605618102992070375844541956723565358549891231739145871878994752562190649703294701488763895806386950080654171541763674298965222606530599970125296764827706731117466892686653410120669097530096090867631692589981835036878354729340550955096891445467939448753523003149855858376815187102387206839810020468640725687479189188629017035610283383053961377128170991798780028608392855580269197568989332676131390995049626613123007939877032114367245197018528701191665991107107603787757974253033136952763532260725710297105540310985803961567721140527124148454215233584758725636583034664443817924673961526660604473286280044841155284392676585865786141817497873315476630282484288347593664192036817581719087077225469306230026806834439295844736230164183486514278664246375064438067118775663513730968044503916217221419923950380453239328890983333869308679591757012409826038876067544581707353220601178978084439076803470179616067381768329718259372755620443318393392849991063922256137233383403620593225128014635057640735588291333375607679219188704293503388154008575381027445279960689107029748031281615911344345947438690062887860754160958638919799981010581640189863885350796334390495665150726164644193463451841817019577325428635860035001344748078210446693069076220633045273692841375005231327797195491775932553481947542795008957129872717487348125288130182808318483718144536981263370351908464049801649273520976120851719087554383579886443607259362659270438236726675072892418469507995289947001194745595509559001746650382770176060068996052501570311088929400264263703758299137902553780986834816213324507597019089139595559149216405338458432618267747576667016451797781431104233081515533813829878051900507718566044968799702817688123985009604970247174841469665477523793553205743127720648525703523833109402718363679065692136053719111838877853693938207931076284085931081019762223453645602428336083941804313748022269909428597486709380878340718070343380176041916723583615855066817085536916686012342455456788058811896441716630263126280531015359052380318274851712065801186663241307669859113982637992608345367299531035503768091650736171520615042639536896870510687208873909983944119489658710479302216213511793489792161239815633050380597977094336513257039713226689891959791678401933384150331385653749015613773756556307618485409501622559778130790429700052957820552048765492308055130195703781974251046589117573965699672742628768007308769402946190332657799298577874396373794851019131837539865468929982165188606345148687738213419112749770442121268058461823054125294435620882686403361817215308370798225818917282165771845335806306417274288053911408451490895774380025144748302136225518846296257987799473814753440198030214110825395834082600432071191457009226814996965525798593038128598518737686796347608942713011518559085315162893296671733505598134303390421344740146461900463639897101631172927656084793874510163674754684700003422174198901138965270447891249711893553770164843204436356832096605423784355637635693829664580948994615303644309869220253729914225068499247138963926265802504305336615001050823645073797619356121697800649153430335414248206367792627251093828046170481535548325059110520171353546847034512671952441529569260330108265232693490968091758592398465892435376914181288671287367539869971648882607955864952372892782677630112500718079234950018078125513488880642458632822117804223496383179040385025943362040087141419736264812343342823015430958379463029711066190727783849253272033583035481045606841866101531464851888561897732837691195064782532284828376272797801491625919890936079372428985251302331948112701070420603407189953287019539153056661898356016937574473823648026972255114954332965255623175220585997618968091991380523796332557319662923627430018742194265875115828423068745599835290272134189852556792367163522936178186659582704514672101838174240245053481315182635466529133077596358641918905112413199080020886529737474966116216210574204673254580430360151457601250836391126954227317655383430642607661988978277586021201976299255410685337998479131655038612822172825349353551106245286920590640212145351398885909272750904583261916539327444998197278503957308850022082392006454436619615888130283311372553512470689081574023785504802384801148050403674235807585152892012844408845211550459540181806608443918605458402889554395142409094380311676275280447406548910843715698620797942262738205121063386941172613913185056925407065679987828505533750619365656738580500009601017144425905619021795815689509136292239072757249990432170457149789129691210245528330690338130804535778451074869236804456081776166100346342829100761134723923743519747423105469205726509130202440097995781080441517434461667662072899078968276746672080482999330263244355467968563048517600780495353586804450142002437239480216371351782319214787578474655175331524790961751572097137715811497653569988693178221275468340158747199715479411705631310381935369173546788299184855937093556833807507670612506173041441837563025442655158477578319188264956555099384156157819020264924933408179333575495559135843357115074596557367698684101852412630785480188610963546321190075455975572815189748428817295785321696569819340106164769024070346898202832407255563990589223843830816779794674311273680663418778698362606063796726306241588984776194836906921191070133212355418691079323537106034717192159636022016791439140169757874069707627896978439920498969099296049670805240642257886003540984348085325500149638009821590610890843354745516863955379944084274670949874908034872533433879569989659676400439844570108707251482560230191088718468985315398348453492368848397401412240722984993871663722471061803322236730722135359585907199499383851020121668109592871033548793979860591813767641471760456870773606147063172309984557720370063945995849092158863642643674315395325835410948704367116922677261087148868457300872817440559897849104525173728709671582894961873224879131064963165307772760388835335095981032834869842979110536266588850471954141918638991274313738516877933751758555848440992213101931399771703422202286257965002852095825254265771805213517838994557726176518747509382705814045763756955871894558505771009044926958103288648511122496382246685303581626432687428422414795410202854921954254013198012131638293154472450767181012369337546289815365553731256456627854973818337880699662068288170086036761220349233753118117296402426107010734105617009857554948647461932371293271278726529198127561838589896513869510655094908747209550622344202813463368896204813709779423630138264906368089039342501272916179998619174094849858590256361421541311976037846071723039761103382660221587236263238122722963544022330637356037657589111517594914902075334107888375128591067984306084848355061367867097915343307408841201969265114888470278129695529212056470234612512500275873553239838754944242480199868954233598137044490378729759419046710632483339455097932432350349237745256071594000511149379403028802609292070429812934876368799069074145608922041745435564831766841692589823791622156953074378243280990266674283662189644026944413468681690804839224892219126604733019194666388397163154990005986612145475285996713195630396010854980684717124416627731451993331368561226952815817591162210728113526017933469538891033956893119063297451398491483561692928328614141881186490229815521473126608273597394123738109480623782655873556193883443991853923780546934358123891827752087088929502188674570363730750436766620992794506169025872961769938440469245809640067689106359304461019325966401834013485770504067804689757454237319064105504600581847434354349573949468945742633986206202331557665614865986727137279004512401128616949300492819329234260453387761561498320898613333678803747970242615138915336212174853672206723042269592615216465139764877391329353824580138314347326840213586933460754201905503344195964743364246105150164131522932364894073000817631377049815635166340198608514500474411501171951797581017815423666463503327554213341222021535501617621511232062701280891005751619225871589599049947012740848836317064713428199773706541117872864419592754267880272464665522535828933174148584412897077555142479553615066897370840584890364317220981407115890684685737459709152593422208308053245349196212550802165419065377113592438296082250347138487364358999743985272514985967889760997282322751724975042632578094369873690298337217526960313110547417496341028281970895936421765594330552633461573008144390712599669140350402195189506981664732230026639362478992460540536657585533318408801368420891630003418692526826352365760834184557325757307950493807560015808189297879788620014274287922898082366973362223399938628267347121484237319079712242161036740492481684018664308000184332182920351521377287276228435218754301969009101806331630499986391429998217031830281804157118183065801759361980302487539212029018291925538346597172194367708101306999226265043080938509148307309182826063724951058609917712100631678995764876579038753321242840417433700796343600910453615777898791974130353716333906274854202596310515715740331401415553237281368169802551271226397012289632198800958913252464150960192386590410833408367377901975027366824507708033429591325675691721759624484433634494713162340552761089606444386170793059177249857044474856851884014636406560141528618104273758864458368457736006886597932071594265229386836424321693983595494012132436995188497108865425884229061526210105737616079327890046957437228613923107109911413187630177884477344586033528119158600449058573101569822842278853987180324617267710115500591764636728790787649136355157651165547894994736283940587021329662338269776328705229323748440976752649437003058484102671959967021407790223561129487660594456947452820027036409761857005804863946954295845291271625753248991523091271527575773446445828439249377959224859954917940540743567779624080691725666052015110533866923602098496718732414412359268784753076488966010201262193900396854153611611094742930628742517917885891698337912975974431361729648974202756005607416419330698324936804951494195456321175141105641195268471354679967556536609605545132922273507239181544756090258471839510635875292336030065887934252684147974257386845602177557608090814767817149368198632084566832725768800620523115689042942346280951197808086732246924310747007096156766526705475034448428131025484630016400698290055799145106401133295227074581649196027823672857007248133000023575260774992539198942077961977106530520942389826703609318939772837458972506563680442692122851140292905860340531757521249162856176012798883394133108750402605187453784427542985134997920434318589713036559693773956907353806541428790614000594691127095354674765229792214045524653860574273844731995968138946832105516777557103746756874682635501262684679210299476628456859409031483263921062177657766807563606001495750481300090229896786504736712050565017569524364961633280734175291619539330730775887760530137058995493356043569798505550342518028446161378662098518778041824793137653758522461405566429008498610864676264312789378038742496330870261902024412716584500530039200103144086122707974905106095691145908305994154503353318265909037213866612340778325676123437506115183768111820588163764427294325645342270288130192339255158143906793632377390199650464394364998051783525156942052564970372810303369113323273244295979232945287694298771036445383365970405520012937509155057637017468828651056799708701384443118943913726894571885641163491228544327297099185834337900071295443376812148757917251937098201890129008501871786631896158541711636304311653926574350432361918648479316569121210742222685243652612742632034018887685213525448089429551483373200692253753043125332411634715861641319953703271324050706996010630779186990209342706346487783183153677606267268869908829647267820210209487062002431277241568681604794313763380256681976354822434670110462744443917836308531676576210146709398244666157424921127602617497308105003163339322967472247269570480418276598382249452741884875754950510563910364759346091343250889158498866149659069033587099234828947489644808405578449822604035658177167284970858585148452800851413855280440970399941073313994180627424724626104985659072247198039068036691937379379439083299176828838895069288553910875397088634735988248459338535384047809284951747224001456514792313056008727605159630504003967265319499160149924972908641345659786042410152300369837728135936735534902755527632260907699906203127824782730032237409393679033939878457117520001968799554800740741355419051912244357482461574852486899455752714671822942384166500020351016506088872356615890062815784445700492886567358917563306449058675832174381169244368545141606336972388036929983104865485423391887855794203010662299135139195881743797548938503808610564253271673407848648313187807443200104588203037539055772561375671612791867242461530947881522363096477787085332093285338717273669617374630383486795876899487314113974249379684534956645144335792622271736982399726835755945545645196714850575400321126816740004885824018782980885146646711449400048728827463924291722396078578130034017365442035389777495986009057647611875335720684590574457457770919860856451468661672528919997123271967429578949821951961026387220068501046129294616080902927059959159752668949600194553246400296310815583682916013719005876096530396719349450812958452480616472191063228331455721537174441750006550488654261607686905821301818661319265140284883644234278568795179393023949356326146764882991706034117803925267909275366671229018698282736639629046615845421283079226251400176212372916205028785999932055543576832903476631415301744465989098670903182111786975867049154666121794232420057163339424293115480516306513605930745823819614794294682812324443479248535603170331562799894272119850774121630229662986916112291544171792863089279997525277345900649956194463095579777473112645415833554213617982278804771234437327025876807302221591788369566934927350949295923877052092862281039787305992271455480338208718827099236583583876073130564619069526119138115702142329433030970658981509894767713122364098091998772921896586312997333441408186233694040118753811507239655427509470567420543949923450216407611989371232636892931897417773481922141395807812092752319613187479847963046064181211719136942101707353098061217855995200256607694285541816141015924708116246310934624766604760201948828973549406062397651191783026763557647099600509107376663505970910335150080396648211093194027129205148802745837333216054342636119644579636712112864981427805202084842200769185275471812031359458971722073754783707208093070049775126158112568720436763323364275689822429239020374956036641062594514772147950124764151981230027359675040465620634686196862367419657752801686332271824203407870308269804130541480353692389133036666953951965212959214185769087487895393876738971596477591581000839131311180663910546369962595506987867235453230824595946015086519749953828697038465455153608562158369571411457075906976976623408034225637753034866913615398602224449269694205035556876663371377574759414477704494098830478887894827013702555725293004010293186361236217976832278651976600835377069629708852480694776116000765442854168522166369783457189048907397218785449691857517111439659585049294883122855483277102502295055030104091294487786080601868402369057652125165159932510397070018216950942752516491378447299007460025570419006683239518305002955264947895295060269778521222849308310688706591859132187733881991701654262799462942055186264265973437320104217850806240210514785957006286388156978864140627665648946668563781307524214629077549901669802526695435194175600873895343175533451828561130469348545346507132144026631553878136599993704986851544832796429804311984092600278674233262086098555057333068786280377528580720965325720207439389511773226831456866612812774918147715239226676109431975792180353838077142332536565615230869374338007721661898476084963056182295304639336601153404611377254744218995671044288479447957397219455584387449640744466023645946738690549583935146505018264538252355190186893509346461905552967122768871064847833446804158662123761892311764436961795970318963784412229178365145460661658218503648749789701143754612779658468864809695344395834560145348796049974808827804919015586312904607735227446392298523175309875965907185909971998525519265108310837152114028591408351873521593540507237621972570188666599409222226304921140433961119295147686794424080870688635408889387423528173474383853344170014863211475097956909661327175243683618830481310390946731106550834661558698782444263290446771529871147340408390096223748748060753158024891489208117636113153229396165524062871097148738012950802105444433990619035971034561751892564381961161236369344851764059716002223706988600648237730378187555778431082119678456226140336035357939966892265283380930772374797098009079837020512652428183401661972142343209328804422589802278558956093064031899315940792681671929717196492330713216399532123267113639109978017440665172668900081231961658583860214499559490037571643415888605952305534665340745999413099625023693631946895133695611468866484319671086700914873662127887393191026675397630846424642696808715965716384531395334833793464889685778278135564609073068658215548629505096964663984497244699632856734862670119936955796991642378087563813310589497512705188936051819853593931626325219141878688600912693151427645790360228659138702230445999749089674929568856022615926208830743767532211925738909486806010380411822664384649640717089245469618029041638948499184214700078177433437683399642188459532624168870089671052259817439266318182933839238290097729562803039172772341495461373384988271343536460425084548837298708460772620515497690565327330094222447630666886201941106727390697663874870198256377686232239676331598726768207275722729855631633965634208080056530799112389744040871341316331042120149015373603375098883262352880635208893870661056821183524819862628306664598679123566117402793551942767981821060908350222811078958071077680089171796370764890717299110537271681546205793148309780873847213122374506985804871083887376593593236621825705456810019871419109466883076764852696250275024565415815935807873446155176143148149858423931698234836975428140437266878215448909306623093754965898633855923969871851022958653779593101334052759386275212633675514503518533885345388790091455598959808582092214481425697776655468668080227162566938224357107697763538829199841247927487214326361188460668102089826705713906224161547197157350661361280964141687550579689876262407703337042868248306675182932097913642702786621231123968436802881872696382079403020901890259255783675799824985055223891149296295977477809151591112334260947109681605884453536045716998414695948933489761385842355907904942780670231637960253948346257663438265582082037995284683449708501247463573595142143320966571683037466822510600423511446065705729122237894343987589307648136916505094724809667538797006906106012171520259603218727178427193712589980907681717986821761268899263254383942615759084332378607803716246976921494693568044277176739381566599325450074171800604978979121134563073466660477147812804368339100263054950142740781152971016165508628014920276716296005512445505026764332424071435101764061754165499098541334733107105008853877687622930211858314695426641854294688666365712368283382243020783124417650154248985097722154395179589259541329162102032999476129392571020622439691028715890140556694746572044053066146000868316425453728563384614323671665238712643162193823849821425176353823483711364096116137671135384050241370821902894884260169716157332427244320856276790799414559323929163750769957110621808048864921088211827058926874781040022080540165015313930704925241047841211762252929043239610589415944675805879906166106932770711011371377233015529588747950862774210965975741711391117796087200334468824658013730966175885006206447257904637799822665985359769500062868624069513771841666979722593346986712565611081390041475029313727249419338612607771031252482827749388263525474550214663451293321594562490820210724335773881249676052810964693269178331292786031379898208386073892644558431199114290045556440981901593152352235927216838513062242111426041697232260772608729642275220754944301601401913893480205747860671387739136627869736582206097147903063361357322138512073407578588691942025713103068503697254743445187317183677787884888497486764087002542914167128007086555857483407095700339919067301905574779217325856002437576014596957667199191525925057288277170011137265742619645379475471463359602827041311189166887879704048027851052079553819121349778311363373346458546580949197052350789752926318193149712106084761714127107210794110848532121583213611435241552674615515798393512161886687508186128925291550878614117770996013866441726906023771102942359849492701137417118535207487216254689988327937522155948085863938403860604220892262215224320237848273358871194391549014585635218730809790802302514297434157621935034130545336862003750905906104199468055684739273273316745268008305219795762349236599314861165293900869548156667540734507866808742025908565336448149969131245992235892534137673574405801871818505717318428566098504955283986769054132980620229247897577703880413837004778548015809943989122846327903203534836464416659239156210043920475147282778488071398900858541677876078239064038557449935950145873066311804238977573458184580156822973348195145323890991516546337707746763281176715026535521301127025046724035677712062443557522249447975587729252903083912721460264857508086219146641993713843795987043398252942323805190247565943460080360060548826777350349901027513096518952067396672700276437189319674333345606426537354486828347944689284195660011500098597864353282051680418798826138852771116194225408801507761954298207691159795970043435361092283601542900232015569520580836808457401431201962448374308152364910770918328961190823236601990896044910651321297258217845777438555394926471887472968947225004503762485068831914758494013554582734806261091559575886868056240863309731509558898345492323909478177385847601392001327019939517254549625579774331414463462060567099367058472124495322552954269566047489809767873603248095555377827761431176767838467020204016076410968474370804414635701111295542239187581784720582416317256857178649757368269237849018071769673630594490222720511268264039985195620933613166287751956343328854024529287499358395105063565001785032214568092554885874264511374418045132710520297407284601465158470031800931796528169476878007235982871198238191289885136903720037403169476989881142475855761701835836599320777496616087695863442862170234223052362717977002712077777750873714858920377825597611628692039034528577836472426496215374910014184942359605136295195122027178383944340183717382265917957536349066124581458941478608330556948440508820965984322027402293354301704559719968251307254335140926084219007088452982804661612061542130357634069513944946236290525665675295372684238783411038196638150789371422413207413437170313982164256353023883293908574824051331943389101051301724785312195173157497018053172491424032453629233384969305457380672313787105021440924894847204112330065193070418815664900153509974085304641470582636630143581147266947316326716189699021932647747817962169985052782299756129539286706771049580054306738059257010412006932976867034329618351438481952617691708898375576248079400680660405944191051559393015311220093600642518727442851099520096299281758879820359399120085412553128073662099447912874166988605771442518947559216967977272437723264695311334193881630677056181238001120188506468596960923910521588169956671454174046116965704036223732584685950177591663094381211192618235939825786498107819582393945884137887990130338912413797480124843313680383656732950462990923853361184872316553692634265333550600628541591260423309751837262538389750071254621471417995514576169765276271792061084950248432432219075190225899127964300908933447696501863519737092316427510487747304036190795300833579524585200790189475662308675772533800827384019536695113288631003616285260269209378976008082013063243285008535688421004912891813495630313706380917826993105948747114181357836540289079934763933639130934480396625471860165568498985127138050392858201955389785743079191172802442131984098383737978093234618151821394373601977075462287596373486169357343846840896534597993460301220408073133872405244842316915297903401619747411494123772316236255330916446230821761467057221255391880881589019252330872662751244673543166848388026775473620788402481772912006509233088322665724645014091772331696006502337465147520204565200008530458408201044895342874281590679934440660765788146505516425848624575221245089684141977679316497134860020532129867977972907442536543869195743842927812215070019332444808122824874942641679851344123441727287296231196196167897995636234965428675069295821300301358923853338787640804775495995120663839423245240854577601777264115360527890450622955699764673789142636427104162691327023277279980170661799113930161138821731296506907792823449858395765729033062218990601852787300184929795524137841145410685704704358823163771556322913311514101806313918069480101161713103960574583508542816253081410992696542894832324946827997047882672534465622296495647910885126946477511999445820557958552657749356308592277677627514692122046824012702352313541427952931994820126671011881071510996027778916412838095620787769363255644277614339285169814608667617677509188995612656069376687861939782416094550976082974870559520175265659656879164669991628026476312894913999215961733466633126408064318305634660843362847850431726626731600814779857238651557063276500991853261893378379373316073697215535426999498305909380153423915180137481215479664114307470397212733874127103485675677218755850571403008178949189765382087225465987531013639430536967252338326197488708047698222774674652546732041873289752886438342630680490868623180122362292658643168028136517819983492105189066710959166082616587114309340055497926268589915354372211736051926271620430247523627956824542408580147549848512226905458449587907406107787919050110541830357388770659798978402917747919466445033269466506824344721834277996476651692304509910042657823534642370966885738299127712860808030236521830802463100436076695906001770651935585714014777213175380122873438799821927471570389221803738912554968888534319880787880656192872739329900815131284830162410765561620908842291527877218520690289514353777100370108903886136499316601840407198086863446993694665329079006992960791981505666269824569594883285907757592588402383864398203945492275560540789401047307165180376145726352678247605470670743979828722840078421559606006818925068263729319209464777002085134483372648248193802094285480148613699632319967379241932262541476392464777350134039300706999469610623914993412252249629041523344680958749115370122939047973268923734971120191610216800908700867913459469985697858496636395805050340383951307990847428266939247220263719579308981202652515694912911202022089698761061057943959784712584192528091182911102936505424295680119085867432033032418849484940253657007998461755179470606076605281541405798432589795797339857346714159275664535275492535129102366139202912998420187983638291314467426479310243812993420574562038943287769620896298121979420376659085288798953857919386517204434290660066389162939186476068305349747526812006230273927040723941702441570119827299161586750659926065344196317998121959846362272017901624045599254714161501272330839853245203020191538450375073566301958196842336015723499128263256003313783358942279073266815884795932480021138287255998888127872668954201448830654412304652858177126214947885472847129523045772836531207922019457872770684238240673574238469802530802316148169541408732666688321817631415256852345780901698627321093529177050755033018816118496696465110019250454456179803950601212892641643030988733288055445401935294899651665399203383707683719767606649573500203659402779040358968769913739337059555433723991728719282921616988943325293132214037992416816089402338957026924727532347825906641178432950482872889790316376696194687224149653478980037985840737344627372583587494103021256641575071433571722865462022815542907841712610024147663265447961707676227564406177893757451191664468161211375610370431138658259481587001881678080903029342360456873934905966056468931871181650688382985277244436110740872645366411098954993798092259402679953578363586892861697023185231708869302910999181273446355632598995292295373007386375435733333842524122066520076078659229815291616151168278115487781777509655721603473626949419543906024996480891273840495972253689412032853118505565187525760777242812358767365116215414224797880073896709275166529431308197477171705331252897659048987472258456275757657245825238460773504321970039451390449234307597561354217991268747325376895694904417725343000554892082331844510895902541989216947059733675327274713853642096799971990131229408408281197253677092679121594054206468520428319655764485276764397664413844677258805009040098965683869817181773685729591403334574113295671957372771108414992304584708651667769474349093024240518144767200966006132805879706997069592006635879823249653300382060687211248744425582154464211823488281955308686041313239692013331451710736003537054482224965045345408471926097723495986466643069942426268130579345953023205962783109520449988067477098917460248606916015751558848260393040475039961216627524359130300248150829991261980887212209832480721428819136682608927249401414840268049069837278077394252789289723812256335522340817869597854444602309739325798105868995678273662262108623265832829493221520987540389220242096601767767554400837043774124586842146695042669802999698072991428577094433464994410890769777219896921661420177962644939553826135045523811416203757089298276510607185653678715216216792046551031551124749400658573968796655920792274462910063438626930574579427195932718940721419569627848592816398535704388241941494538382331385020395221643985724766095617821377380643383404567936894054398226304121173064615618454925319398493845542032022626079239964725702132582299301151937702519304820410611137184186971009797140578850186438603548449682696396702707502729610040613179251105447505520450871745531363180230011971038513016833129788945721285072931920499449777882859315629854100285642217727891045379025198893156430212887892424623692353358460175492336602593560337330617177425801510539029176542936784758840100423140317497291353403284017404083132130551880652015142599485233957768047028127114359787781237992905149766664267929811911737968089974255779328647601773304236452016660618018696428826986994289258138724495563741525968567278555330781865112585553795568715689208142155150938482449031157516020954500721886687440521769738438108969476705855638968108477267924366862583239148863171164693123010261924185096657171180052279014392694662105959277260899737842092337737051790575400294259081941877683175421213006588000723317789128213474052967200011171780712302253105809676818846133761917890567731208410062486208840388346027646730567123846495998628592645349767343222414800539028845362948164009501165321918265069288144689741361029218764220521119718093954240446859018921481567011531523652362262617303856163389470270314908366575114298250105753942601577309108656330533005499478712920875733023869196483329565991897665353458116438042280788517532879775328162228904333380556971767177431961724724528963159503024116758771092438458639804774856774497305641708992877712356238373492542709354682163183157162491663364607624167879758152340005977860911412137845217300612572103237894810443037671590727111271430580372378890442722371623234563241399235357024939084779808127857823398279051385217502935085510252884976430543515798325975952491094338576805853470306063119123728207017568707973230399887559879170455156373570877447381807330265394864291197883884868578714322673719297867536524713749341771802003366934210132826304295628579788683792074573940003907959722472650036454042273130184038281035482199908829795974492885302291128251960884337989599823022513282371520805131694123699602141872772679456034625818140371198312125516269141011502114847539909458982606356320726850198203116438961688729804981773599049486126125432952047465345933832691725210862704088847998430142647271546665058959388821859416374983070575036158825274880109274248534974870094377257169363090490704874585559415770222111143247822133064669038372704271514261281985460015380659684057594045947196744005083984264285021503131831401449587691135307481096971644602293226743700526417211134290945619424122831990986964595479261832464505625290509599452908520074338570188245155870724760847377385548552463721198969703496240832029800080328353990117853826295891401835707433610347876137194880288403096820461884468800719880911935302713424077200636635505180951277361317347300721872845851917616366419320980064315561444467134873242979216775545821536604659848681517873565502763973044441287621020750021759342341640036866991752802558424966134510362968784882015145254812184449037524254590225420000554073428838476025616605878324046388306143322182505166266785647706341416581549093871746211469594415519110989889290918140048476583101022228139997804376575879477329168070281697843410612174142650015916926445077941643814090567727405228823535081181637000366329012133555782979385988324527800616869667571984680973022432231626033527772914622695689904907121992865778102934962273764142252903217457685913327348190633141130854339067279124363909684145129777401050738574745524010913551949830918365401936737787672216992613182512090817059545381693689577876361495869434151907813922533833045069059902142379748890006990415620474853370204647297676865881207760981857447479934993551346043370973466814211054736886556620294737124240218404613463097008329695566973631244472809739544734746427758514724513279055798117923512957098405817840442125455402396347049676326780130342055713401546056878594335687749479952087641569045858252440727020024676404313280807344023582312933642952905293315325664504726001689604209703175464188781056067145303422313882790757565800647540938278371715893254885504070703430519827324386783582080094470468008650434167733612570688666840889281330527245562331700438926207660271578870051317011517155049373478271570024202257287358366002208950185870016640947214539123471874066569172365220874036895118674987948524424350660292469865778818380365441459535122108333604707283312509247204680352694556142604787385478542637430066069885501479785255043595868331877844260791726172843036618516256890135633499555534451861879677010870499368637620431519791890110341295871554471189021295240011212854800413534632610751651064396197645235710580111538356205731316904901555602281697760967776781932514940556282508876378229008443389358957297282372834049479711495789603910369120741806584195752214696756510992130007201773315318106651374158456685212821550647553177819704276064014132961451392900000575650558666891421134150300960598326222885874124175978962552744227645140628580205508621516530312350854204640763211156698821299451733831422002896158328827960935327877790973788343481959145652567212199994067354076877107994861495175308164731447083243456351827105020842045101030524116482338841462728249297599473724734971729887598554442566938624736648428717271973021362617987644940509165735453884488800772735941610415748138231709057357020946445026013669540421148149745141947070829760707738589309502419510911839449880505332947665459900663944210262467215856628987302101786657942677358892453777053566546089029157608571815873466819250981835162549946951719367490224723873620928069869016507977390167605849164128424483018505956984940716457232859383965312896883167647423093969388524352080594122859538536226514523413986998904217206422453735482668723258291888173228270289132228625877548940119213195944205576553713491267342448629615105039838582444597388079382880119863696396438697895201693875802493894099347172802270672999833707495261822041375746195181234888826466535241419401219188791958788207623783513502030929537778970751980103410558924450664369923406534068041037862010656192613755649985163474161747518405718068244704423527914310883476400123224052798024350310342602453358933652803691097048048413739045022835261687070100624460742662750652085214758345348743140769642170486279376401890415145993987082131396197044042066925567873283243191334862297439420300574973656186059144200097813939149295648942379999744978055218873792490178928727248940954514302776381509322781172561690745201201298629784209888694569081421433208789518997630928026614673753471297727565733984691808519545991832218670063044310465253406148109820693641033872426561618494758456694953512729290690783031100172816191283350949520425485720784383811678217843285428065724117345506052367937781933537831617915769331676005346486124949587246738724514289803167013088869127352222777958974241986832603025022025969748225535019423418683261933900001149522352427215250135898550500842686773785533364862353044552553231093891844168522725559559756464031604971529238889324589524690564640214698130074464017393546727338499044376763587849205133517430029598924592985953427902386999169731111668914480762933775875982315604825709700886960849233531367064556122292609989713202585549823535138467027016512233650367913050859324897825924247083530896868396049099002767098490688239393639664855406839149896976903874585478802378924202902748968039532453822569983676615115007153474243763804493279382221169262856368615932823575382721992861060108187608202248759340595186094977825136466020325053163109814772837051545035146134501460518627417307885173320643332375699712956240844929355921034476620506790765677735708960529079395156815870655367689032533443902914024825299838484436766743065059540658106442200286359254378007314269100045767922621477918841954143341301948681517926416353202980037938593531215162433075387642702791446784331368535126941669626153571439460657940647659515369714942494874475760778905626082606775761223427942932569810605424132090997145284462394020597660726497185957991365965431579771115230520226328157900393949351002684615436838355211492508717941936425239184965589497444691180023245641315602607101473742362263031006376716351029949941571928359282137970257784233055148155256771783908160225067472216623213659035202049213186501915165724365965478566624594832370703585348567393870591198712714417510913724252321100714002745787836062379163804971030371311512809328083804249337651205472733950987974705170408882668783657346420024249285502643427204774625172096373020139245599264194263680761681099457430254529462213254505182691996545800288675073667389075204954504073130393602063032834503504738805723095706903056258398673800654566075520332040653338395558705049552799940202095568589899132610113252338617021079101388960377194557696357161600463136018362148673621655686654449793538025891927522523522263682428319332880591100136249726272223888181308160095282683862403974685695955491206554342514838352290700510566285252965685985809776638854199264766746612806369996768758605656018337595591643534590879136350613278489959165766072429206796328190071255331086139441441971734622138519033429963628206758813856128921961931638665083184684603806540947150522564178678712119260448812084375464195257120391356232017000936706189042699939259249759545998839891971142259657390085571754506916338800567459481969637552053715103538012306025240421153330287906161339045891459316348709781730333267663739827078942791788361448233156725339386917573063189611511633544686647067423250210019665406881837511228521432310442577721609336391537653707883227774002725456451710649699607537569809608622203998871086242944358501804858755527659516224070400076419325254558048833193874995736499945483910719994914782463432832420714892113268413613911710754522834701639159643623060072840273113676402163224678941044598028772795934720075927637574737840157201917396963452672765076589475060752018853329706447421743537986776162661233746667246392080958952184554330015714106941456069745302037357726099254085688065110561343319663087380990544705172171164351682918374864725521257214104770377280856143044437033073709681697016623281883280296549673871164156849783701666222326219300922682508032834397008418586868651190842470333027561101914134366736417483374481789387811629181877716535693331863218053356996481104577597716126255500888335179917772199270440074244879877836390310241849198768188174367361754965888362180425487508511109504437639600319101902772888115495371502404572745715120314940642146088085897038621340501444882233257466858355206663992060687353170968692175491084999775221357756073895100628423320318151924759899512229267892590967141084556623155545127546591432780962308423936529027664588830424858008825438053122183463847868895007160657155229794253119240005647129884762203493991011688506738369108134016002702523749262236459927859553116531073581964320338721094555598482122589227226014137846832458257473525974495478504046241302158999415919224358030085883718794157735007495077979683607300682837914897453486508544354979450294190157433904189698615797665971674705764350249057501790476565877308141874541619089399243641375177968706520465035144823284998502601369958340561764107610814040266439490397924859166291861711524455017626461525899910956046258017635166996170053584959433841836610581154743522644931966380175924159704505493502279510461750332436402148419542537772464555292525482782340091359947275514454973386642314373326838644230957487625844967023582415613572759395710124165850415678817184329069847257149409755974330705086402228251716657237069010621789840127563613066518454729180350101792390436904051576317184632165208396684994760886419276819512003723475297946620079126686901494157911784882863317202759545333471955014588000236027277034892159956062318950696256486458095415012187177422490555879480950741077040733226503289737748036559317328408559240135056633692310486970239355972002862298830518288482777804334807026845965490295292663955849038944046837317805760811088645159019464060792349491251500247586671430002816481920138694988406729667362429683494944592654672860863914708209389234263529875391279068274757420450699470769494414251149526619241450644550923372624396146061460738640506981692932512464831831778301435661681004391834171486634538573747352213484538665028202419972317520441832573518958875289613245352117995666834976597348777515026147074064527509817195715221776155931704210676733977140133145790259443768321048456004685061202105800232678619140120729851613962599373300356572180063873965525173462161030578459495427684825002951737157229902838708908566544247657479229417775217489653912012389027537662126740645790194619135389768233561654487628136997870985522394739622501937686972008623443304129973172941643921219080411034232381915224782632627209565998751489567054998456980436384429494285747473354317553472542671575775749057655410555591308195940453065283078376263214652233553155700111597613229561730663675902336141545149009938502418524331503740745605933986399125810981656783539000997302719937291749295865606151993061095259281448365129347687208601704388527895112388771277017641606977647418250578962308830421541662707044441748731232973392702112373357461142831906005909787846886035775672588997761747202422789152299426376333935322446562688402468554845400295023038088667734215501799624758562886957893250924889286117100040269224601819447696982594527715962860173631170965934701894430531502832890776941405148634691383193564776392687924142109979909249924130615976788873523589676150750728610118731643552231236401273598321891485499983167220815685423216006612611687850586663989684529048691067963170196275304279612319731052007835247392143983624749029747813429505359432186873473781688502763058085628004752434821305051108817448773615592345142215242900841743426285011385960291955767651802546329620862469585997448742349150419439441060861419029043209756014211314039654446138546164231970592551186262089143733387559635638441858957424088066493200681069106941931554485218867214204311740125808270503298605670236006178458632341596753938116618510865548843532434194574119521076901219468594990928503634325036882256377518008243158874947643472440759523359400851046750188418314104050466839719641457980199466918811480017105016858776378271419934508983518442645280383357223784365061404794262199605626700411467934716608151414130312568444754774154203516549520925647998353517234707780865752802182246093696902349892614314707879502011652857055435469730122855104732942928940456300117234755978569734659050689258763288003164032682075352332318954025801654542520580114283902382377851053962234281454385190931959797230010385095559772232994569810902093753112171517254874122967676234047754530026493984840832612799666256707177467435222322843920795890984254119346053206495896522022323846618347974798072179727277808637537350258428877871984780420068862081178423628455331729392383535608974643406112077594852968708961608816424758568850831664291607741203206876600635259416953722913483401237221805430817353224055645938157119895755917346759323278564165153401677025113803603016726219760386258799163397499445824062582390901643146918031537243874775683414729821908419602728121025535946824560057122992076730635042759275437463685816670687824258108268068728891088372827313479538745474678499181581450790148632693622633296987312866652269710802114581145359991851832475043879357643481226913676062737029897478681563995290146522681185290271759831618597341926879615095602354008452208975332125274972476617468258339694424752499348404825318550464260934057770948194654855249197095619980850305842047258394731418698344069962939709597169853923636790953076566495710337019964447752071841144647025550893445381269873906976781705215586566852394825816050692031949851204542459271271535909001008320772858281394453860341003020254004161484728747930309035188866273260850979761063973209607235911628900361636660858423588462986374677730691999277920201112055452524503729631590543293935618996385758717477435364884284950695168829282567195721997473376436063387816072967089090986307857469470170759014032790729653335687980618599008400601797045049003532432041522619416094411388547695943188467826764042253495502622181719279818599964759727953233926675970186563037384894795451341370416581546672832553595129971202758579569302329962518988540510631403494837139341169867335741913848102110450353604944004078556279206455066902724164756736502039148544622046813802659254069876796851094085037664037027023948918756273468166206324732844605352028180024493472911844489913257054762969325434745700442432368774896495820075524748108867089077600752885369156263465017497471536737378343085833106888271781584823352376446816018643717777817041652979981510804473999435970505185251536280527347294542465191828598538623909440976034243025201381472687313898600078751053498455867934295286507066174760011079492814494857972528063729437154193492863024614904776039983112751555092266047427668676540690538281286406597021075239046328635862698706201496181940654620530921261177819755696529876154666951729385113197605255889768328920808639921392363440356349112327209931027105436118885880339058508073287871630085211688595882727560689773118442559065204321587088982538725545149134842643778742605356644741151224581151997807400004934582632031475705848854955534520776456372435312011123169687256938467229969420589159692723299337626765203681842973467465414885938280645878201034530998406993690775986243995500302268086628038776144731026599475817502322081472411920181770259377196864821025459580464017616057218000765682901284678527085845839570468354993747217275137016589619903920955011892277703644008954642786129620551067598759761409021285447709754117451115338589069459962036290159959441763912370727910954309978065353600642629644971068678701273192236139213476722321687904066108558901936353455056655393617224137519388771695838310568272830430183914159177359226656220646464247060452527964807512773819095011998607859600864127281992219512884232933042982178627609612732583238999071204581566611802269924398147095826333416138919913678431234589788016164199515669052457772357614919833218619049946849920770510434916049024943612667029307589260965547281583270332172624194828635893814551712196948576738004408120562237045818153570636167632876248982123664634191330051419737114027474042550894991895928726677280788089360985561780141442513691152854605931002855016788489068857692697822823812416632376855688262824628250340005251101473357731116397783784221450306184500349815136355459684536799274004192545409709790360108255408564232186089954817921991203159927380460804372627674656415932975463629723604200758317826602356800132921777391462985738652108193875990178482362439514998444875594726584032338604464820843856571347498568468780615533697762288681709051520340380572726848735062961530033693021302557201894371769007497827486159962096054291161909069511533855399201986290164700408068861195248613991154999791706387926381175558063433878570280065132421505981845984177739633890390876664214576560410698851342818279131704677165727410255521574552251560649290280021835670100322734111450301782003092594648584074964435434727570818447875566514495144155920709466434865639942524118682903490002193006293490865442014958806080267315810988535756477998384938974838480503659293772377476280850696543523790983603399645984802627840365657956056382914605558851462360485353814650243456856602643767658510486058687628128845338223374373993221267848128483023361300504196957310440039611081403662640383260655798926110456825066794513997868532591248271024123264744119772623148072738081169142418829746035433086089872819368499899757162331545602045395786650098859327909967574565027315335671057320603197718598690279086326537588423284128907147400698247767151538354343893710821598705538455885050265404443779898243205152187601388224051689004869668257428135062243226595531436839722055648115711698481906921621093888348239191668232276983077541461304936892833723057731640579837000510062264559927966572512860420980831273816881482296952400824835903901931190229623290879187125592873052514429756594572339600573315002017054764740469179909541517372539118920701249658866573117453150670673055817173279531449469034271634078635366268998337308079594896449313638954252898680561267266582104781011545794758023429895447347167767045153369615331451935392754585025870017417247368560955502263553767869988189192017173155393052898116674525117755243903051209307085584903411010811037539121152444879665474660194172286654678973266731156742714226685535271589299275654999212459111763556836408364169426044507742386555349844366862660520109464718269447990458828217487990731201249855347314793929156465907359379090951552721613868765315522196948111088963224057437338465064202133609098462188196114709781157778212594481332244209254898535367333748949332599039694016517278862625810115541568402955759105112749906382521495426974960838316313516532975314574488391283530565408328248269122439943087362336410633610762705994165290992034357859683836877958742240643979124370093738167630998173073982409204428513630661543619811584096910763058390179810070051460609254849918766217965610915206127202438973897342870070032155248003037309447863161940109833818150143270677226382144582836822580802115935678328627401671530096860377666233813917664744713000210323416591040399613759460337530228432967203514794187985520066242314854346635158686198871721548434358527930221628172254022944982573811203897288855550909792733292388319237533935055398664480312593339685734577081777962272815534563364915402477369011354177182644797891702598596099527556446535465985321774782163147412861199284797116487378868325623811335163259639924139745173602278568869926485442287180806381769358135453346816144769028782638192840169933378335599792674071398290148845648007718571981473597020769018477984545810947106440894944108900731514235987417385783826480580149221427224634363049575410478104996632971275047632733886581473294565408240836599912789797788277171957218064521831093014154354161029580685522820347887570530297872679491699648913241129083761874065254654860530310296407881497054227961724746668899398890030049262309731633649101724843769215179513413393080578731251507957169664167336604558993633167580423445123550028459830999855838614009614450521302739432113636378797017336792316544864750805499249343556613985848291603492490166200454526776326693597215740302449779997608163870104854087623630506935978091701873030620117486504519143640433964299807620440168745049635346400799045738041085434347645248436247267428308839631028246933910571798212152435552177648652697228624994347645619813344896018749561928460308551445846392671746429329267952242103149923702837846627779780960213822404794918789269007184908045468139281349764452939158365885620680851217833640664388563921381441419012395239269075885304702792576933823384695887491985081823605907477505063498191214569612157691672066895386084594302875427519759529080655465517234172488414713290792501973050512106903434103911766514758313957395252758335596681413943807478443726622562217177304313024148069919841859609324630587864104117600649110992786100932208680994973586243739890303269759602966989929130947231369667707705635491834197135576171401534618079583646931561153355103260022753340104337831745821933775802389852804951156878575451372632930191709127582534692389282422129967513584985949692865636978748959463829855236165499487175641410397035222805354388039715451688914247992179909622360822118847137071410413255824965168261510631395226251929807024348246193268606385582636059781697399781097020696712025096226929266125282302165487184870982429799410239713574836230557492391172778102117725468499339090538985711774630758790760504870153145550713149219960344915594463615765168531122182195146123578408546949959321764462604534876701984636037855277244714059040048108525720291977306966281990010704426073046660689649595193517797011191969581013843683452587761997537307557581584924633055387130810110827777110232566357306407042022781663360372401409921300417593520415074430060733036936628127737594952633231543647729128325631841398777559107644468171159152331143654981701058021790978853493348165492230366257637926242031324140030903853815820973449773884729871024435052048208175436627910638309067575400536903175862718171487391249603696466408043960886657541615147728362661916322878146731864668354996925911747924260548518624892652407436532607865903709579047326724243391530288905500449739422584704066367856562909399436220327124475592359279537088511919098500647630598462842074892131116409274523708485391053757773823515446606121893731348085829978451477653343407310336029599729335971860264235971031228813489216876735204854689862440434327337632816233500839180172185133245810003719527695814890190534402713824734918611080893403329426863883618685639132954876502120399490822264430334009105409344453999434004834741135252528436121646386780065359307614839348790458895819447876903913581367871872918283029685740200439261711164601830120502700662097771486014751429096863838187340549682449423093260498007752960294505038985810783549962916259226565701863156266081829105321488317833929676705644324922049655799368439784760640801995608157077070648775028886187904308708037589668814949324163809230231866785842150249603029825115523626077005644051470529681882198979369105728776741544660509209115241515414129898618236919289715253361556737835832327316485438938357811959116828502325149683256589586665789602006381245458807278504600810264552942177020917114716960662302389170949575167999478590304837500262780414849758022004255980516386764011206943297949926819757585644348879841930366548295375465755707996614973528279679726538384178352260942679946427092085403867370508295600111346037128467818110765710555340775128667275321349752963883322866003307185761757775468822221483168305978700671237227034292490945854798148281181043954956757140175176533024111013131032773400602298679400681808723510319843526082794129968882413377719237812160410256651563599682640014411253586859276799291388120094165338161239905609461659686637013479946870885467161866813929342806525362782207062842356943240142918846951546119403222552761452114423874040737467774119416452644261242412165609593841874075344384032403545551098275120951692634606716092601445793019667848667175755804205805030027661375418197547262356031935765958148950806947263090663528329083754018846079598138866896750376093272748568891321201981783445559578986184262528708972418094366759403239682531309539338482582356546286434911095371866212992362945392364357014092058107387643553004887003882496360071397657395029839337188922584392653893596239860099032953727010463691181101727831480531993597770063432690520784835976692185204528289657181022291570307090033799399570992096603536461237785975410982511159313097417760879800390517221864156409986100360135112291447442809111284766108601282375593536045019219856270518203089375170348987128446523924622117337342824798110748863806692638949869575311574242983376939729542400509518360788032574636670704623350214132741180767448260171289939004229800680779488100652320373660152093138632634487274000065784325466834614976071125786728068042277480344075527529338922511704012782589201786256722613896356279974844791317988575769570754770566332021629747341802515008671958383718772048268431202081627446212180968362946431221626472509172927004574916618797847469763868882472772336950842736861630688278114078438054738609145341953761470990181841720288357204746930848043941868934290810725090484929955077694344039193865886900251804148237367055695676560100508535390492167997422698738238018515916234157346608605553715607424635410505131891233074183703342154850920371420558940111750851929331069883554356952950203233825605701229099398027167325634777124712231725786100069759872898733944149489254778916279737152507227328046866677206662922388552965785375542558773447963424717545870585031285744954660393814107377709303552703350202571054903012005072014603318200680705582935241853103026952070767342350936904248728039485912491257741772471598701495642822383754138402041369797783948558425522981285666282501855334144412498479468124127101440410017438978319447692890346051020608333640156525896309987412876978529254147709929916141560854125357389117401851520160782346559498405611040183781493408471269098241463295553139006923602592207304207056348926483586871731967016514702643410564361680500106259731595721647485889865048083543727960672057400840785688798107750642234050295875316936725474778977227106839697659068778195189186330799087030941987985327934492748800369721247582632801581195324666183465336846492239350659466089495142874677033353004745791287507308548217793880868641623155399068214699758122256132122101374023742905501664217632023063455380422341700752461316628301861337425789487697054873775763846821665045522393446735841272718962422733805973224532804027764968882698256403591569193549406396475223592443322232252321127120083547459793916394058594887469174403757937977177089377548726695966682210698489482056728999972023489356821727710628736683398938987940233659309427562248174318189780663643316829136322167063996951190838220887026086531784200499509809115572770748660923023822830849413376255506743654144719069313282387787540589537469528067296244698244939758890262782164980731321134436417682876335217730517901473837170888377002416670059135782225786111475522906035519652412012249290234067313882370090023343466578107336009870415930527071639795897617083431001722488079517146619351029838005510040267079409071828823219534788328903726334947711386626571106589644383744511608129545532018521100885526336487258075294080587235355069274852556822170678469461486587292168380537746971416535772629285282572777404068099431836544858293832913899532631161675900403301507697630919934799632947568736014534082843815945651423912317965052046935749289376249087008296993150271259941693591826902162649603815978461010936953419635213500738031130299352409248976479658499208868811949410246220964629782226121874844243904813859933580906967944402544026992475838863458950128981899995680450228767667566376377267233312381132613722506320538682481088578003804908210404366876776157982959244683534907391393716577879297830896403106353155020765202998420668796611827068349899954452862891072772033028615906479662636582981942288228527503989637441376967859480871525840376017725121254124143071658227773691521853171347262554671178297120803383966738787495927444058509852452643559797588915550256815880732050755423945186350418988354218758336241852607770910557415334057111919842964811043904017042209342297324996556092165289998033214407001304702539146103889327077422868538460904140503144936632980796678935747186273265696822048129204113375695262295661881199644161336380686048905368976309297087129581562459210917159157916127066378773200718493633751623022007024505031623254216917786632388118369420998867842941035583939931400137654359088385012909279798945118007566846816362881827329275550154741741661062296644781127832147588824321559292730651324284877390967226132768385192551390882636790407987582743367155146197014518147567976599334243374682334931064877120317496485682245321860050880837816550798577878752235496192508067519129191221743067187090144879466112694630811101245385559353905528149475070762756804319213753812396822067252848509949691564743951690905517686896734509484526494394186948460148749955969593566988694289257147078674456261554645528771130258933720256573044612370257810495222017602161558427723120879539538976378776705331351900104616000319765707679427932617935042032756562388210159357569832569225098581228063137121616842277460459419111004399361817244639808809900848007865169526544563929974508096622117130134919910892367444260269363905269839692858068005898474449601109991515707633867426370083665083369784217177023950234231286550440718383144432287285859430083957002144150577772228371295278301760382045379407851681467790364487154595087628431283954048808447984188441320178819816425571326625537546397148792247760156316422878763611535027831667154369820432185644803229549090419124554681029567622090525275351746152373662596098649169858161910023209228982614440573192852118304167106394443196605770246988603315367099707791968923619420464496647398679630837328678197238706685107834456282733272840774829796509707665843280998914142657094313685741215473397762341857190710013307564926205864412982391874645822196369276358714028577816641316410542380259488811970360602094584607402781946707899032589129771883340329261266149744131790063889787966765874421663092165437743414851446143931866422385446448544282483518096003438033131897250127498636289884056091500115142711747000975000274397632661128201001181266833455700846186608197695116241757901633201614109035307537845373392621267969444439534509690637013821465379962464173485199035730230490302123484956728189625976482688712490020110273502188467821437716764838178098268817738805793085037838192264973182759306947711930136883666222301011876003617571850022231455231828679609506009626034083028955455862119183536524454208981679320166044960796752393960463201680362750734606965904707574578653728856538398661827522788260178174347715123221560101461091145946977342662592187224243633592982720393019393993151493751874513920136380155080226139441211419112193077995396199622159949940832336729292875159420102443139757402048072304337104080647644689115249877159783016894956271366671732228455984159305625789603430730110079940900120949615085815461205480734354183256460163038560022740071515846267755702475031055523962551847860215667403163534665227902052451367009240877188872333259845819048322238537344716283691316888288873943351522816350893744003966906691322621665390490517844734494845794532132320517100110762360592487496354888625957630515800653531727855701488608836946101483481464468336945171504206721213613114882867414890968183067155571060342033707019493214061352180438919166561858357677687706143476756019357769036845621008403737948199735020878848875666527484524748436431164795579571167455180529035523473060337017396359286727792146355781742176920840514614717087820970544830180019104259328002338824628876979848173633424552961490993294869641732224488077979246573109647096968513688613179208721822964258136127292101412969292956825907420051409452250531343296683927709745135907511707676469791029581460373677755482048159747246630448080273589462105091698200215870584602887213740807999109632777392793849589300995896412066663821901044246669757623659627234436361197567188404521795925521078477073480816566551317984325405083180575579930694866366521862176013414245203785323335586403893679861326689148752557243425895692728779308883047485665778301975772735848299249705188435930179315006552696937641723775350384988465540059831338427848820966940036708380701313916090323955363351010305275301167717997939190412184194954902401559369058255591288723647610967905953669791077208110669944627561182510552033782402916955014970116039027227736535137601560748943904353895951308377366508430199167043347985687613804074079155804453104403096074558762247955083497255999912847696338532238511392606865085026039523447151588369296725982629370585479736560463384021543006713700558746732391362039915973095973286051835717008340425543448662504074392731398014857609514634273183118500305151657297381603505363107900130133494986613238285949081090589533689006072217351635610153683169701133483510239516791660792964541367452627575861780923358878652233908394273814919547153617230237754434729534401953256082524137143499331822360645428142937639936393325197708021835486597710723678910279002945622318232214724623568569128229131653820798840590845574104708674523538626514284879514006466902158293976068093928628062077173129868988514166656036997344241267328162040582264863905725586542942056773460050422838744172306071796312480500129543267240992315613585129821916736720852244628417201041445050781132553378796333371910455213443346454078566930708194382635962746433765521158405880554791362829471287581432586875169334707514144912969108025607132239657567831118473186564456884063261888231286507042168707757057263530302940700885572873703387729265807653528112635367138876900345718520358999365547853621801907092142794049966056879323496304733129440190952304656483936408808317138576627759003262171208668872109990599883918708854129081886545274835946880888745577547886829914815484601868547793185220236183382214976360049728548604882958837055617708796691440636266651129201005079764857167258206638172804842753194434673845460946622148854025480163489008644767578903898682837132735685608496129141682754470315908116359499346626059367275365589401190982356256453517665217183231447196557696220900371968597114940726086777625734523263479811682006943200061141654216049527188179981143279558653915544268323573337056685340452522476111500732655826737116313653066193741134422509780579004926667014340975744631448091248953535854675030333847988833037921898066418872711294273216982759703124898171085775231607067668650596308754383484791337752909602084932990915280231709106327899725355619652132130150108438150638895896591490921022174029437271192047962776658852897199715074943317393423007082969523949253513218121971389224945005963133681899552315366016744552068241374874597817329290285301648630367698564627199206256349890120652974371816054980011032993761376309160082052282999092873047047024401080196686539869203411795959593289497005490081008756461450390528451064471375906697864025984380989975034149451066394244336701856261120625928994318797705893635678114584796726947455264431545616103121434133847637050362574357630054897918003658944104613737362673451523557084619893540378373355053771270477955494876919087263254789864714235348858539801865593737082306632542883004406484694867840586817858539499619402924045412821821390676127785308359263190367950699199428692143399678385612208796738580413219339012315965359151059419851315565674601799860884742440345541783154448130077546199122553185501020661773130767885175656642408769550783609006101371492356080857288231118621966023432069510703576247168619960882925432382806018781669469520495736476640781319036721637626353071318937831731604434305444111208514453697672921150790120901134111142847931066758919293110423195494511075529582440661486012122566145796767236025630591663335353124259602073850055000250013296506242403715951565956395061615358242555567305615502952586719217224636999609890586375310448159629159873645594775837746706443857989960507497253226340000021743370615124796376970127121052277995187241983920000441191203562678217809169775726952058278406568714093769179408986860373863282418685025933313115723589054117913443108003312388534227991189567552194855583906126403047853000691138791232953370646388640495825476604030317849803007130387779015833132283032172356415579458418444734979026517452179077837480867016254388351625003231436441360544508735344284878665521436346833165867913297375886296618434176208035800933055001208234773292128078151404379853457504778399898434124113995571428112617410687334123983715027768661242660941674575514282695002649302957529668820415803674584488318947287814593832000076682161317229471024508669646179379369603730501022889794131019287539734970045509290016941723298642492621937057103777845716883767298191913334457006364282714866215538351772653498904816197009034970867393170002348788869493688455142696237438228445157939598642570742037052387286136688317239989511717873636980064012505537538086742793426530133298211853368895121969563836166135785480538104104400714800848768236912291862793972570680633035162854907179395473416637305990381105120741633135231617281875389633492904275433718355326106166354614523365426655421712112304737430022498317164324182737957969630261281879774708449034288861980638794691951330985168295988082548443297058766959183058147240219663184697805194683473143217878015590124157234456635996296026958422639911614769262660217133003816993137107644640022058045647913374403682557970640184705811636544406552732237859797475550276761851373003688886050993687994865106733328475730116778218042618776080993394750723487017535245058236575348696397078087279923666169907440946349597378868503288006480352212188010538702813655449066298967017288328131837359027608812450000730268780236186681878136058660277401738215587835139929297864706577724328476782105868467826839746084293886564413064448134832120297391062233057035634937673250307194424905865227754242503359863961960195692177335158497677401173012277750725656782041872415160661480789002374552966429735034036017905787529338806923388821779816343109167900438064734361249660895475985887972149578869991904434294149614253818474674919912134171779323647364058971356934963797770460288292595958706363653741178470990234684144444688153525203049394029908936587717881790166061714006577136770975749532106848581566245491646094942358565459925635373104162045795734632058489373516648975705933590542227459705021968566632351127712181498744364337300047774621248041265943564177684345615039378288723450030768088021267203618828496624403620059759121688732653623218356666624743820936364881290986403423685902560324617216455893627136566028502812011432000806116832261655949028528239818486316028693402043277134920804701341461439818816601013152339359002848104034760149638852352494504946069633954345468151150783046300958045162560929376991392560735503491292610216756999926035206238086538812464531788333722102302262842847410655600922101782718740592584420146021796549694057899089433411834123505393797659362411953516940554980695794961956882717110326505993468153837981603004196155837063447502024493765048001881023768152252182779970191892274178943895266914102079429020798152497983069735906092239898158577711785733934770462842488344795813204562490665286589061724565065734369731067261461781948670890026994494494711268696404076100752463458032339120784148894361934920084958158289354586613605506749567447972517575849801582958237521657161933635388351636653293148869111943851108470484884938765148471676266035321920016556535296987646509096025800180541402957226723103825594495001337248417198276042221351917256922470353271250022666139459448869773700726459198312360168435008948586350341554421722125663466011330285900240251009562467489380012322769463280246299685056911443853020803502840642614603728205536552223706733032689609222372146983053058208398091273431132671571148293258833928099586523394294640887875480755380131950510333038561728232171028513019678912124842556406135040702220541309211191461736707926295041929880210301755609407028345502240138299490942722550607949194835062918407444910265887027570662502018418384848495438594172164188335884397111952834121638223766841062008227360149629277382495606884139559029249799363346553435318070875296982496495094966993425753161001541884264624991609020751272526887092702672325231089095149432908256212031898709861516104340530829837460716761788828528443719894933737673321749082924029195410492134308168506396830850586308740616569086883516938315823817267011925705605511003508379971919208941016647356888280342105931112786789536912682406717546253810511835931132479353038489700406952132839191804675954089276539055132911122387889178696494777973891023842085588557909947801134988114759291581566080064076054622898706938189668110494315088707813199842699359717570859009232434097918378429850510889708964050662000020738561928264813700608875586113014131689826420805768093663043319056147233829674889147846527378668612233681389394451859865364441996854551738954441239221333926034172944565145345723182876533711969714975579808315225495367411041042098339477142192187113471757231524899170821986814676584557705613781639354153069943955629617643524763174290826336419795006607210963098909848704624639010188284785848171880854765571189983277490312027181691681305057667596558748614084482966959845813997717601556260179388221037605880840226158967654812871743924628282467034114284910970062867248690132030841644465883617869238016631743089582353076532912843488635475090376643525743478918878492912075454452565847803363692404417819234124549949194395091461063657166769688757091735256310114820896475112448124540440493122794250178792955123591244405010309787357994823349244350520948833474917852933560787708976266043257835809297379105539394120936392929696519052988448148855488354159488654850566603073761667631966682288636793401841449567490162670996253148566470879060140365659289220005198774542512025857644990537624234324358945848991395886568479489114431942486561088219134321975032958930142850956757547983545948346798236683693160093256270512783530089851076842127609284198060534252723904843699823984459727189581073625426439029226240572510441680368202175827607432519654110666336239625398413221358187324251044297413185163993948192020079210084801925479964064908114565611209234939662474433861688715253382107860818704425707299065503531912703623906424224598149199891953141454993328858857835266949090033787203085789567618748890959622110100176483920029660145047605172244456394921726235133104162420843737147785876375613305086969474284880087760649861500822435605990029186904980436241613946110930321626299281489856616630338594102656047999629715198092290359573475444150384112844103679284538931655832885234431611822143811017912012720630965938518797656379313287232312325492243628749730477943375591985886675686328430368738717174989733324477289186934883950825490674872104135644078814671068519936067564138567775123092313643195784963843144886447150873501085005033163663914243731106244019147132692860400955773923527338516652360763198554742134304158590829629051311194631263427049990514360287449678583901021665649548789946808992554166869482556158623219411795598884612427937322906317781869768309219708175180111193046521102466629631051649935985645346845601106692024684272885235548411947712962840046422937146812275547332229424622750829021055952160616467416265728855835032926714894572606245064165482860631908657375560851086691152043439926049085256337669603958372095462776661839617216480162548367512833134808277553617434448432689751866768171858018615630976245118368720095265094712499640690986423680040789918291830752152272522105932690819967989547900112760664555358021078204183119489670209097793433485067602865529275533905491103904351665073284953052390650812267014220830805443013264620653162561438795860440129605454699789294580061515221267419175317942682289713724597758225309007463199629101116432468265972652503244567618127222786700333046662446672620363185489443836273825316023986361968188295895890868845956069668232752376100783585164301992616330804279098338010436786434443037557429789121044836199772096291346162995907653118232434744908592922846680575044593039042845494220636311205503701729673554583585814916096033646943821336830732096253727494588658023610140602392631032403015043572740504320190735951822295016633153731403128807849317502568584608880777613425227704743158613853823845781253504656674378025941751839989931382359290169101690313716783159886466395877730858958119948050499846319930441195303385011199675988120062510598626617131269093112783994952328785506484312584727426777538262858404224048829397929928964621067030938304094982099060780354951755980993651893953743646285449195526432399592976819995419692168570345368989231344508933583355102716067747139262856309231914741544809191483322753304657811865151156152876792346137431199199209784735338460768552359220921795173906806946061883385763442214193070661873736378528058378165001087357344246962082379745159714440834514307418996769667505250558044615680353270904190811780821661980944043671533473303331070109857166181195929257307182465771473737518592054563032846360463256013705883072419197266009017014251419004340104699568801882536757605284806458120290847512442816898653495017249611058759401298843278724769687981453181736428785450135199933183753762986673357030583781272623794966058682241263988235594418926121888197135895278145180107778198903016790228496523102706317188578447855064104024276823193163296220067607301504928833844077094886261995914625195772673940897653216090457408400898428149038478791244258285390572064675016106537303548642393384927739496403671715266774935200563742539029416487368153485843503273679974523995012635938712305433875786763597185712890382937532137988520487711041120185094163593806332238691144434488506175034048934788123934374408898170042406931221728179856870423771987724898016629198783922969244454275527278486831545768846828230536755856064373091241454535392997207104569487703586440743054328967782517593177330481986002935859938617534760654368978585215378682735836639208417246320156652834804587216249647877688905420787747888723660433384762655358782733173274480165441485362675330132278194036799225004606503647991724523755029864545878621464211684890635520580658091452309024715571836760776481915792468042428542931795753350244521851539611297023430811113263497191138275619557519741096335813686368177237590424857539114524369330082125085869991433391496577435988641254232555314122301787838014899311246563971289642622994153859200616943104357176835027290180380591349234065835277504074075901342447076990212078129055812744671607919586134925513715818129170281299010051172556684183392177611033277537923645365389088180019172952981852223093143412719325551903223549249822919406926118725156129944571345878708166300441151850286020338322438492269798715019886407510022781663043582704573612596922088960516622593290685552349737491173382674937025054476938892926419046870260076429494348818300609224116475709687969992084965597280783293711793093667475438064347246056539958062172669627301224914477837846258883519827286877789665503693237684241187323784066878522096753852168604234172410893915610267543042672898765986080942402601421596650996169442351616054603833596105210290320067515919301502748277757897406345081749708742335251091965250154193798122904349911761781659074554712738147437820365937628248865858832570081654664798446513541211845939245463214990804104460363516406617867153472478596681753041240393895651719765745990468980981131064621878224453880125105767062762175565966076784162875871716822488700617870807032119277280757091004696094647644017079173716988892253012999002266651161356949531884415590975655427541604363929847795539301095433608900092316188139749256643255154334543470513195433674255905858660838951285913799971649586290842395444759186977745842395046291280040017154798114152712370676068405456958354688527273727759892342888387295320719619385626511058049020785122982187986138548562152092253508099595151687986086450173297000237217740540998250201946390102828016222922604534000536516451674479624854398921002867172595742351792712294479558530404058457262531198664638691439300037037365813658550290762505338997064299214397010966295166307710738699684019917994489647742524578704047531489400441180371360674898643232743376898511187848561751285848706108932541054075833684838233642278393504392218795739637718221748461234179432338974949198906954891964333079722270212214626050418334700695430803272215297475678354634678491828003654542792812492102301660596506177504447801189961363236802104023807766581298311110004598767991215811919451851578946865768408476872365116760605343164795529573454021460883348252595676642911304026018903095635060730188290009915153199343762501257891711067450347727684491129297228924416787014189804949884568768301131106404767952317483451121849622324254369084466020226398591441955670994169330422951878550958878229340181580547352138763124521972033846771748306785033089849105809609216172582514223343720133000157707568223558500415528922470783432989986502820857231421841482912555814194404926586210671277390704084545354214328297451934148132031409841526916761244838225714072506211174856057653687992640526913871852057983751833547379582166386904750795042711453363582171730613309972085301018937336997189293858503719005441026868412953198468273235984261742863864815958696989341693177024652403275209480506231392103765409339147906031024281864973893106016930416842888267202325277474935547842342891420911650049046881196848374371328792777956083432360460926719515241728517591523003806193982048814890941423648417658463015241701443572631658930686862249967424418315935110961347203324308297030588337395968495142069926157745232280452091861321101264087615042146487791192623722315732429741576876648318470554752757433412135545885832056231936426795833848828135312041023284032649586852505010458623179842184624819783218036158834133475768907114967322322901883797960144782527484381883336785374923128694231802148042452722580734395799528232005933923900952502700448313308887544565033467382303007958413645695888846525309887825994120012618576357050924498065912106808518361817875881936905064805559694468850735556755469667906461312429919094425006176343031427762778388165463392648456676066992172762695217149819552808467104956134686511614522926365786824614107126819816536539663127796264520740717748822699840628756779683673819160476195598861925029486628065188197421546013676729151148759115720229847409252531992271535455156975132644216925157901337022706149281627467543658623332101092816678102767894945230921168886275308824627456276611879762194657630392157377372994944510514320063822491974163937560387107760018342485121423469438416500040436214487066527370066795411845516198677717990252155202249846882220894138922708936615976072674889905924504517355556690035804350163318642251801209542591497684339159868257531722463981112558290750111410125479974588030066992390139186424484762502283425616106218527167408277012240638394156376249710802081412288134302344309044415082179074180806790600382101768981993859018528520888285010800048773452673877775711607572323667944953953700913388691858987260798571657401498751949923069159160399500005967867645413418024250738861634711546624751181063508377428903988139681607882632426922170608049761436210028913780312992713750915434749274608386572928703033903255712808881521539399730825106167231968501341557069684337380264294176073374244151612637243897167987106932905769910247954787116114555095686445896202255988827555465081896522579972703188582642644191651424646852107221170164513061772948823614537460545849567014873119926187468641370502537519795747827308974233429171927063598386630148230643131260164477265477253335505907627282536323499977072245130678092387545407629932248087023198489273948569468475478640582662646432740145465071217762864053898527089901289390882001293449060531232100651489751617363157609055056632342990423825517365760592088065462628278074189096263434626978033953594506645227088442771237450230856433679116859996899156349718004674979936779442011236828602273884143814806850510992206115176284035772864294805727771115465110963892783558231271719520940030112878601918907739558266425346393860401817119144031473372023214793847282152349827362855479498989646547101281074885005584720028592227675973343650999237817360662287607026703326021983924548421382425299409443666412099551539074381676849468300284840693247214292900696565698019916318312798719228511945879733069518584770760268865498241552701011814504994691157809259426311934801041490640230013248758494701671116982738521765369002029385114686512275545444130616353871592220633268453914486945544142285840836482838644864039669163055622563589938275018899053955012496808746125529323752733856476219402652118643202159117320039326682873567787541892799698121533615999656247761678506698996314574532911899513156114386318756407957319955498278313438684572003924685396745376000309163759784627245063342926526997247118237927620211050611373237229791581436482122653000212537841164946859076519716125244996432812203205356995223036137124840274267435796087710410741144316920480219444081091380591358515085776431450164700126471903539075113817764164689696973045553617498276669066442402874299853670990316160989870503965665561384186019658099026687502190801676327663307665568591357238748204939504312675409475722984230685181813146742503828056771545280287642574677771247170612047382208748544247008290781149135394754831229865553200397211254511175393030767808139242778987629454191285832467897760576635417345904427396704263080218437001628753932891685754472346004372469139912253083316698874498916625380187647070470062668548380277691852076346898834520017699754609732557985281835631894773633048173852220934077157654721927564887572109210734203348821327596116872436392220047164406216664658921237700632935847974574224487448845568249120674882122788297761452112069471670681727776363587628896259991439884963372351008702721201509668618246428881551856633981401667610109272808018327430819704183333319238880405132188916688994989517880679145468228160146617572465318837711846949254169469637778989303318790941234650999060185329726882289401240757484848953611774668169634280205778162802681125011739125744575820282503476070625958991292185062808687866081460283350950535217846576027577852771546674238336589368373088874723854978451141294091273750212158216127265254305510274385282224547278356519060943611272222088927847388632161345331669737988942737448862719941955625824222209652351796939264144583586830103969050138007807155871150197003347858566357741707259282729056730061339622053237788147511397757109275939702883712269198358467103314099968145855638790518141113100538277908533636674450259429286596321082720447978700304785730670672811042640467754866099925922530879985310234084006628302171122827178328613084887236222286150193703927363355427139120282783122780356614637383653864120845730542809902911809756839593407462686143804691901050318607578528219725599808230042720382397533558841197877422487467391358155338092293958760179237589595451929789417707503887268537475131500881547490597832560994985275106346016048416295455489342393140060184932170198760546688346560703591632660422614148123170561264388782988636489835709400353976226985654853248662791792902766548657735218120378338748032815254791625091070241990803709606162438441819526781986012096305988539164237754699810013256400533352501330064997535780205548737505046978134336426262243181497677449277309821023451905387338864826751672177132825505793535210684993422055988835178538033309675638517583679757298449094545792085480572593798984679038236936899398843069405018746894672146600595081560032044347272897489941762206661610617026293446562202623617723359308832892310838156300973181941157967774698356417815798753624447441758317224841179319555943892175650957754524496672320813147618671327183319440270865034813216541224720755850866679718203401746139507554414676339958580333571509611383759091953290192517199871210055683887659586075140299222901904410299366334451563677423628670208252230510313320944043050463337822736354120540393675332121138742118881294589653312665054098069818208417429810677044540624308695837311922358665049596947567178306983861025311280960690778285311263983548199358241584540849729031455496294672206239552956761766191119300830035973946599194426600877619867710076819969492955934587223833105049338369705394485183700058252394669309684899887852344593208272533330308605881499926056918941796570625844447481739219889394198339509045077812821980585414488573112172581087556774807405341849440623063052643984442220390296673672103590747131887848758562427227256764620952631727516977370633164830402004452410278177055054431890420170654873455243151126983525715513652333588105539646675371620831167789063864892655506607145136735533292303601956996082172765602232766871812620354139951283204976882626304294640401018911379902986903826411565528981493366467156917640267674648866641976091655265881157507126226804299516678254473065367238500725260811000511123464985433141272363158949149617656126936455651394767182551074655497379875547817759662869296592958533308155348836850211144112830904396790204893842538551515337204141422820355323823226084846595153569968434888065440609276987728747190824583723175788354091059374255234498815187550604246014170889183973642927468144736262773602716017001230823921186375401591818272533909817360576232222462883565343676498509903010880907959063777487525127589317860163215124919905430361806625868149656367626207149986892532673128763310742466454222923991193525255115276273503627519845724442913807194330386908034420403369315280133982264360902128581129101539569748250627744089836262380988164080805563133866157895569707817729180721171404360623066861021489662480328328947541897764803633517379917226971571194876991537321766676651331362071977289663804364849912941187338759153022121199023686037012703184211872123819385093577575269822448584853751334123265466702484545891769992838814794964713568285286244724716555433178245465062334789826081637692191773055715419378379615473895654531259682596180758874066000153393699988054718265721584334990167288940092183208656945697237182068311221732972252736771925191879060790588569870154559719271747227534845519235488866776226157611459879017714646467476369834068872488309065919862791347848874571380209931069629183283741517711832880797793222849891272268033294914335990036228079001275993420509216261581098692027371332059210372632904611405500460727132300779819055261554428271178656032715764968658834894212277350366915872070534213295068123490058905144597196758479632783144680787348487728537858708816457115286476921799286762990535154715196371363616650950981851343927413210537862644323114885539703880581130530826800847357010159197054635638721608003755284894112775331444732025493917434099725737125804211565596102735297248678164500672995677688610591512631582805899671317604641776795703724527731614733682192117762136014488208975586395007564473344235459892183119502669227486733877953360793254989588199355621281918768582333690908298581959002302088138279481632584159121770372590087485952882792041896161874987686668494336792098857369404459628097745472227734288117890699971819509845055573129697136384019748239602828431993294302379394051552061074984304772304008818775281957239928581235901741562896195370529091309072037444869350823236880787682682680669792767711396060708261249528838084241625366015645361421798705774126919821428230044690739922140362734151117406986736142327529093997133832178920810637676777222160837073734161712521269267950866934948466018751872526608262647054906898636806705576187212286250292793868369398652725670845230165957619977248225527419325070476666132013925999629934962600230652449778580499720125265348349934494140670278412186235348410967890293547805370233650310566653591010485612728635316600720023896386527183958244514362229861559076846604027597700881703407567167171835528669268459278679193141097901041059011483142247322955568276095246562903689074152271139585829385730825817040752012679098540310302905667607190664457801316132553247255544938933528220653509447788773841849096402282855409377092807782292322751987905299641180034828879671872928354767295968375652771572096602335610521698784233272695781128893787778444380935495092692057969721334727196303534998091229133355054062492279668912393383598311440225197037882498881804831813689319858564721404812017037999535713612944304361018085458622435855401693054725100002711599016714504493797118691111412897447477824000635004590299770019386524459563972317824433470240542523446038798577938034641987778483265826248386472037068943081293832186128276443173112312827320388853833175916459505166094372494152181144358480375212779699776761117736141447696578085705546786562212543311818960968426832890273189060898069519048816007940464496348853812625210771083293991660251518991013901094994109780875825392496078776347828309475506086070811400692935226120713448438852093882863813020919842906004628854404319030875131170954444027532345895430402016000296692334718129625812283796263348468693787089173447513894029308964996316421371772645564866119912303592752459670796545578745369362731424148210681374500463526695112743022392400986544894024894728640858715256028469795777167244838580221202343035978693418558230657241774349979748566816507503033082593377998335611655904424538246242815073352838127040104842695271308258080767835591661664939612697210739394972152026865971613006029595836599697235362481536467376309540352691489939401601185708147549628864734484300712837200619685464234143533817619004408655780091704737995861902144699018320767976275027731722289108974686621875231947058310054097560281547703853905331975778084530305479308699780216023918433708433130161423874455437706065510922528949074783075153101092548679174897438503366899209768365150441824627435891231092314940115499703159293211202056956821214138719196687192888869819538789106741522541765573820177066449370027813512326402668379009068703620721145742614698883361103564130621506768450724076611155251150033771561040283303831085475503309795540843141711302693606007591249526101718929235186082935398744177596562294530054335804669028951615529053086925424084209244132718028569272662138942940632478785962085903473540720035948864707329770414806169692404166200222000468518481026451003054588617719709379765843136306780535877403392356055780038770837923647354656831063480041272562961341039562137455956808301251297876929981888390597938983346323970622736281823916513687130146994761651657952216712452615876048421844728798351528040060524047927079464862055149156142742588075165528125346290150370637906324399113975243734625780743801820688837879183459079229214983473403112909704677611377287043398995471148615090216228191084976328545474102580634772993037789965837606501142367524330837336718353658891193093091113393351509783232486269564387683344451943283229875527009341112440223103031798639038735720824475126251380292798885841560706857691050603382837271865736809743344230425671604497489275998146318770334629871415825998505069800881604633025797916169315893069518556726148347666068509505606814270943139286935703334928244253575181813157309128685331383274731636732098166058478170713484407589610340604510970777501513317805837889201859401008426198447368094233352132823353071469670782932891223508563387802835426372370755120869167483588185298857674640253757551299380059522904866808495818040655845343792682011067731115126877845386692535516286516432045362580404969545928521262886418944543199566961012950165047439451144458378803027893800506499564973901590474816281636657170669611825968165827184718687516088759646435752191077068252324480172215031481869341734884175311709366598264914315244048478797284314077692496535087475985654582547197497947920578058618507717309608973363841281594235288425316038735081780029720828645594047978710107987956577923320171764774129725879831537736428720677167729355959418036786633995500549602795146976750032529005227936663782673011184547440737499157453808081782883942754324129279175643213677737845764731820407331802124370321100239898229749685567762697865970416430723912913899776145824559872446582960996037959742974496550816243100460646295081390717713648009614251420820163515398941493452340253920409398864441949745886136896667762538750929319208389805560189887756696138754934522475826039451520818957401396151591717125518001326172479176068094467356745387569977633146311658477436527488227393577090755713061874632189264985295165590625585833057751809399133952289914518171228706055760482295911280354299093962726018524635207491770396241481057067760692283703690564284973203559601938289107388440596936613489727367987946029252052809186661511480203078675537210072468502383538752389016599076599901269242086884524421065178163428590827713285656519195172468368034480905458809935407525216728371741112851263507356729548949939821168581759002594867322575299460530094391998305857951225986893335891546702363083307265079815632340299935713503604794504469288423722734740938958861301148881547133991905895440468872394522322353841711475303980670054837655946900748583841274599306863609468679409277320108451794575280512102556253348407756594039984234041520571034710871687331204212191364713046575049425620716672662701440117755308538246854660160649677391084201942252065223736736581436152143420026090425195526533237784656663782348718962317965785384487858066460434992581280695022478932843170946182693282582026841163798782981950286128310995644551868556958890834841665598673500765570430908644744490070418141412659907671465438113705843771590754783502508286635361025272855597287708914500854732560171011689867093445644642996957553584865093947560206006500570265704961600325644318920186131770300404822975321358012958001783757783475541586049071534041814181142887173812444452902171625546500558659683614288561163326808479535504411848690883713748004434700974401161676326820219841387931683413185225647375414847603079303278325233613912170513446463273821628552651179535429813606366886889004896032056402890266282480803849367164702873372674535897231187287870224991880327137633664594491920843870105320589832432163651443808378760774781605035608722785925224901733127126240557403210692677132446720542415305568974759781133178855272840763062597391171095372420769050742112841717364764882494457476158201018298471578770736970093220583386060522253212281886309285094976413898406089193962863101869674754160587321346667018475783672385743150860259264923141996780587444806861555456254880228047401118973873354172460151614428219600596894629540110191356040477042948626823203276470223529575514903010430868562870667139434072813916113977764458688172744771232292618752826948389759637846447722477102353056190379405098196065240953347068136398069549373432523873503397041148281179685993268454855654449970291441527909271973649409406308628081874858754550723179004446013108516754832742012147634881852537366077136515637900644519801054772470722950156487945952462660475135261720468466926347803983975072171892779238693392876985070158475786034455725083931302194208337911076331760607190776994498452613863664173934252841691017686421209195440391695742107640078500618084518255061764012550683920440843150786592333086666019888112742192134313929786103444145449345505231172256556332388742781236524959310154572363892692750782040866785641750388316838247716200499452604935944120224804484018668775462623435131609698354773885095447099493267960375561023372545954997232861306465193582420052785842144346147290412191895104920039843528700465532322184136431544112282943931241239562203935330426296407134123345549458537102962243541861153501257614641345050221438541326402651554543130425097919204785369613308518901911418180430595016500722709118425598675533996980196731587521618475951505641066228004441851367828503402192229740494896915238150048513485324995985390367558905011548646977991264079093866402686091777629664018918113830035542066818888115418233757007748343499154672754388283295985310062125856891250121482717567644314444122203188556655719152146931959725561518181108458991615071886346745292276893485974546248569245338682270934977377089582654113237520962503228365171750641364482579784820707983790876405147021114427793840140946002596921273003227310966461298828656136026860001437266824196832356006637259585012285788214802221234447044553075311827116412007590634979167220184081612003131423804858005910680520868804706788303915228966428827680594939563115608911828696753361326393530762779251754168111687277819237221055805342752750706185671076643272178197942333113484408293137935440499655120583149482649312578730116832084582888754069217787480064369425721306196192149565523037879859323736718413515434917854828648089238715413118306373926183174536646005621222607727380427356994292008020738282740537248289738105262080811291163392266764570114078163287996067123466868821013868993824932880845950198374836606864010932000424864115401261415901786469712459614938700803084700853559226953267806270396917373151291801278456585480100033632485534230369924259650354629743527803417059121601120318038483023981686650218956665967302027998447163296734173235657351823874316383023688546888663774776200728502689335604790224444208396584762784246979106809351858758955320100043842363236698297198768017860717536510230016854146312964897300130499790250340619240085379046025260173239716547146704610447933923491974108169104957265452540671735368988024393041533683726666526188397665705556214832362444125146843280970391485305773552566519617298977064406134518544212663460085568386179734577737302151088803944075611296983799490235396586387841983219043730712904527747324685874631120819259597509532392218991918759651733632881937838765616726712422205807405159476704797369491268272368007996595001857134700367629035922831973985435883888063313454009302033038055109336399652797672895795747929786504036687023297019197849653849287836062116437630507163596733894717683828347216336848305677979676407920666678190535899082606012690121917637311052480365166760889142759947554055130527060518662858413983759878354344942251103514865573138050650120036141033446198890351134709285822691249280820240222857528059431590279649344857417696356564720530861359687237816696406756675510966500860733672968057013159384661116265920275387348858394727973019329468466126976145624051182721785484605246744716513026297859254061306736573167672507574138931049696513685326885390098112701075269242122365988659680583406890933786770325588580259806596196016515793600178396946162660862504605533155312510005497610956118337640098110782723807769932055059049194716815660399964863646058813587755657797360400053734836792396338155994034640807388338696493429258620731496865839167504924978113742167464455787361610109986135399176441911222178369226377466826666276108976696143826807539032986910282232912250420750806608272044476406850866934990046873303725143256205787097004333843814899214917612989226489348049102378022923839378464244829546608078971452671304799397975847386814522798891499491968399082404459228991695892406424157236461332186768368544228177705834524615495075776024579096068589494916090198866071137010459554506707818270356871884372060371864520260646167923192351614394424122119441566954820533490667151077589298747922328740743801237364933658218385876662296368140519791344977762857876022976303023785226532388034130134654575623141962383306471053088299723382776689695182968956512966466100680874139829388997137547773513849837213688542002940712408385248412486259502659960731380084205208781462747284742166408112709118620961474966735973701430024432784109810511181834081217642425681901723601166017826261975747391419464301205449349712050549280467843297770987583552057406322387612986716388301705290125643133398094389866767680236086061549954228032159862546435993904890076189494409105742924586218218920893888822604549058395826944131373389493513934666416995962322510618364229168704433659801698527056866640733189924108436387731454577055354054579206647702299747000701662221027733523427242253515153830153934307926067053291790731509338235702457283480567605925816291002027922985518774473693263659497418118188737896653513510546575094793196774167550279737617451346796298056632487715358907986683277840528221757800415944390758256242709980426770152987334403204699710071682389056443867380752308366944471790429009850764489691349881613674377214303173066925280986079878167329820260662878962667994204266136958099745367837248853371775223258334417318443669012424156252730617015084305535037373144706611343440917108436444980345941275261590727671015628780873016020703128547719443977480618099034703342566856729069385800282549271087877373297900484062296363026296574460611389345616402915024559212201430545044831772745748527208575965736286019209491897338890995821152659037860797222652908339207803570847141844671095007405266134713152364684375010677192797741570011717149497807668702073356835352628484253162113017768505409076168391228860576783136809121527446854069012280496856759848068130024544507871686796538481504461497455618409171060129070577039989827664418172592495812881606725610544671753436600554659583047346891244108032779023557264802229632659354051212442235227643387295101696660815444834605141162077134124010642778813234698146024328411611821794904060488623048255626269358410873963362330669771201557474776175032600488562471746258531183014872796954244315145034156293724994922633176465959346943317067033944334969412870595351401109019115175088183815913457223135269566292730833815525991350314696292458512066675711341914954658947474434617995324545737580246214149433709928577951577140595696264627861411964630169765004303564249147783412053486519388964534029830110856083912007894661031149219814520345322685554922120232426589059010571205003916954900030436136159129952390524014271900568246993966920463019219991087984432176029618147158882934417612241588239839778642210264950820089214375752490335143379077792450191979277333774377790294342070792734851601159766411584213847531899994291434375651232176378458129490037621590168340497386617494696925516616631668046612005538098395116443503318603353398291643865995246990907323533984613835880662703467010557636654939172484049038415471715726864953689893130821523472482488165465839787233979988668120646256110828947019516989809209922511578915306922999485810650404038045928868749733135657445898946733960841114122228311810622360999983970292093394667327837058731897092498382585059430268676615764573340043542364289952060562053081680273597059238934664812207943097657352913159264120817100638514845826454075159902471489713499866888508176446557319760064565741383360189234610645392884540474953685772822409907249549466554576508007207930240164593305065115074071895385186405502215239990776454657989419369032351768564876738465495028555656291978135592842469278216297863613255483349045585338613801854212178471229104767451410765843619734164300878099635459308309640342130298702981257579290114430009178845157568342846288029764524341516345369513779267923404950357840879479129717422560462697001376870593609371936449891755364557925703541178748472078424103420437505378953718715040845635846530806199894361248779620405896299769843266253989028919850700264210681810825255753596744613059591661506788198861132660491456695538592774710482773044232346161952852496735159850151651622172172097287783563775259401653907617322118093258708526478315897381283698511594404122819546834385599870048780925673253983044516581416486204590384039377268985682701516472714553391335859235289933216862613183337742645607242035137441095426200712620886717277232349657888961856173210291540952935447101092705641015378574710557153964699294236988572291776759742961490233306343218521696427665887782347449143271135697373389561305824184744025279132683779354786319539332331918087514764991429687277066423951518454403520399217499054773384972333604312814468787475373236793151078226620338473702598790712594877076786533225455425073033193999406254838625853023369250862743436334814485796291861087963110174539954464737551116636045503871625602537617744261605141258498948715972385174539675119823165665061755275723868296635644227934298657179190236211043360794113722038550454086723712135208906074950057364634580427990777300120088307811960442731718797877962904224630188618941350264412776807720103047505257766557600618421712774477103574346590544006646669022562314532205675376214213982597824123230659390013208555789703687166398691369070711928632701747098281401296144130815392076248218601679678024067030415924700172921289032101012909318002893670742856718533144391823728040133611061822305263505445553066287740107390505525250324318381593246717223269117406284725407534702516918593866903602169516520146137720649162939695014591476951226569915239827040236396853076025406829443037746680340085447444169640414391170816354497703277721956450227531225356195240869368321126675417168596058204801959762271798918961323393409875553293654708934453594571478031043591930655218360414256348512341666392208784910330803342507069438344744642948521361825145194232237344421160266771174973123159752214560953927941871118087953229019480342721132237631175077659412006108365757678061915890478592094393561736580220404386338145530000441184111809708911836429861308460388285208306867273631425418636505449746347224855342475909134012774234481018789291468477492973373588296233043868581987090567759320773776732771470174014176968126838510163609555505493568066047397667435193471527208053246107525691899184587003678150881313019242523751292355105995080964640011612806142887707670841819024341418425393322536740884159716244282141912603131444812391718288639453981014472147227423037147199213233607691240525087134136852420597312531824295927182140058965072067885537275410615861578775514319012317536402165207864735097257197238983753424124977109147408648069135262055105908293182580248294501978532085479622557658115376617250082240653745131800604582834090560227796262419760908551760889383985411456218346493423727554882759876221448200997847126927388523132234008271018364784319453530557581397131586462069913759799356572378151032703762700178726773692705185518171408824295318168422547951654416070240274506668380631501425803976509925572770249810336079329409217205717731536129191714829019414414589090971363651078396527653144408970454785079321516205737092687027872727311527504035267538107590275985062639369194583617741565289740435935324958863760901412520239341465620213744453219196073680515136401858224198351303561746124960584868262599516556358548457734609884052768471037867127304276261708200031474466548274007579312353619931735233440312324188444196592763071659615271065700160205014208558606401760555075963130780627064832234039579177149566470979231236686351555043529129774302403195752098694206546427210694367858075816367880530878865300315091843195831495758010944459804112678753374764557804438232709156567597395573168672791259014111951319639585718865809566080829693298526400466263982915250264432305405181446789363215563241281751856191159827914892301142601499504352768663627400524265241455355545798782841731717698780675836683498842825677775292461810418404571769128468929518901217278161113195410286710612736377028673547930672698205574614938367600003635347665213522198342368403581965278269874104318066771475039347580309557155143157288138809827195798772947498876417272375665942745364808911006849692009175985339621978955824744706396640668778653405324272726831932922908715493116789011473087644128317415905399322729150392287223007431564423977288800747779306067378921991855626815755570115319655546470728438017357518264918529463023059608535439730591634505615539939209072153404952681366125122173948451468300623870928964076796393742937711553194081763718654565866244325147052543832565785052234381706184847668140525442674795352374076365641843583374443716798653718647050093387603189307351179173022326138214515689294162172509180822431317039740074756685408621961866487065048425233333802493560469934138948027504495054975370312644435545917673924821692350599156917107037927318144214451675361600248620541322111334421283199171972491562279667015541375388218005350103985377075153798140095181660555317797920556550508175517173495935802112633019997757892402143742153902065267649506041025741724146561990130559332282892086687617834632447784137022840130227184207171989465419836727855447983411479436489264384800096084897952606145398407139305756094433324076179271867469173389782921677304866495428996932350675780625917961055005183578466944587042877352118670982099547939552486248828040906159076908115036171936473804665285256159883598984752976598675504378300211796841631447427097355653651229675070444418047355466254678807555798765350167363556348263789350423530680909030956864703412367830502198082522724655921800222492377243438988581056460647106877187636092907979960782469110870795789850223930658581053404509425827564161250166087345274575500444943358707123004201375308196039726278466319860490450473143912857608586689634926332013915448587130954355950715049496489725744217091652021262425695974754322100089671365378193266118224252920663387362090776136150284588880048199025543644774904611991699185907732036115459055001405435302975976989355792875582056640121416450700795591448108201421241089722926664695068076005489574419542553494928486053788235125121097468584776584478125106058770115477922947085545253720066375568307315672351912302407088689655522247631615353110967461866885342901635848938133103576830208708895941372681155355227035106858169619380253995108403115180241648777119782886762990448233865555012794133089180227110898737683318628303440098938430859616340808734955549881279732806441005787597905826013728421824588019790465539689712360492441985310073809639693479910203861646420753009663090515856994316736045668478256871155293340841735499774395623402668084338953314632695076650077087809446937229054023189918358658840391561342957758373473441946640815155847288049281509824870021143892056432064839075010889613420721280901391880298899362246157215125505491160743139780491363635289222603818809333324072689492313393720316006888673440765656618571642009090931788602244747484768326160879115197071898416507164505628725025427571003931131117345241829451896674809648252070274917242101959834589291403628356103273754491305019406438163544432884444094393320006489654610447796424433699607958964780871171365931577314886878562920038722917424984515886142467465691406976609278146040756345223234360737074434884581491261649566838383064121306227136075204466592098810252481570015594649134761418979051889608553452209356377771553398934586016832778366523642119855197963921587657768772985393367593060852523870873974531592644235404534733994475022499042377799849571465178408653750371750554085105652617533127347621056161994993657196930341497719175915703925886492034984421842861554895648608563366709889155582948673034783620732479927020095704728148127160329879448842397395205525851618483916114598854346643745154539359722230833433841007946728072176122241932374955807324330052548006202280016467519603853788607265110420959171060354161484830547577780825555575411681676184023084446925438741591267859981440986577200252810570321648103203526897688197051130316739539043608224439725986549653804292022281502068236837867702074654453618836418790177096404475699041215647651076257054057785766270582064372927711160011605402388435758990530920201680011585827995363077214491000787301231407763536125683613151629184247638132033551621470572086481370860335368974286878689223434976515038117542772158822059236859870603242212971288699815657320142904580003431629385616307234106529860176733345948208404607263528498914026803525934810524467599426186140777962876251639769338171643380883297282040600924117974556189397384658040389090075413818695185833649430870235094795408330392125109892892697041398581708826961473870799601293082845318434222129013592145872556491401593675172003945732239623751321095289883476432347997507321041803717369806761159609282264729599028422544330585083989076998077912562526364475328461035712551534704320732900090689169987921183266471593748802569590770029493395398178065418810595420173235756368282155248085456351410390058029361219732917770634270980430129612694201490833151364454964639587858672741400496654650512403936479900477445331790139644486262139840094960893920882141549953645979879467157280453908170486206581848680698846204458006632782858829155536922934082646458814767464584193725593094216662858958428444261341307041509495990830329138231977198076216123339541573501790029789604685418386702576705252711392506574549003742417189752894486932252898181622547037195670651873296131241306765447656055747494636076765336749552963893984241515000454728455752571116270749630295268727201936945104547932839853596603211568651466771527176733508137856103760207389858473421370439903403655149178254444495903738157673064865584632304783595036105431806295131816238579876298526191663225585897541148886626189763215936991393234066527291255161857908210287637938315266670061162140191053521615400599421930549050715399645643741245133517675961170400833610188823763802848722890233215472297309647666103343918788124292488625079920161965363096054883226279516110840062183897660139538885597227222792070587309621354909024347516952203911867776362971023009136571408582353600034566572662918491842803167287098769977754700749219450741029289654265032643569879189835332946130790880972577838345572424429359887965635736815926254683992380574169863501266121331317075490893354856465849246742922493034243942655052835744233238539512978712900972349430614216320751405801114192723646697770256208961742663645758378256134808164562280135423590114929496923461861348204505637503535866045733255789055939821803145636420710879198786399451149339827287383683691693099556975459959868417498584564201119730508762931424400957105642351333412203272903861807157680998263538545714443369169549267352833697558051262174520940672116554204609279022422373759581696856579309067147402458334305684048813170598771774497233279787567815935384906804217903454016211274770280117446393516965765527420712954843704187955753383118145921800241269423569619066953509239526393889824599001536868570656709362357110477880160386972329597369303057318637706655594182781771537262197774286616209648538138024997463325844685883730148345020578382030266789065551266928205142761268577688216635369056108495480419076535012627821341577912943922897131769279032146564863568740374274089132157321459004295432791158067258665643868173762117102683926390563880200014423125247379864443507845939201043067244114403289405366167117715862648901215203048039236139645494626275026139043207946341908131440249250105341241323463046165197295295557759414024645880877194487779208470238656846623753703302970296441256276069797112730417750499860600228036375904062814507740841389728835438947067004112619717766231040199696931685686457050051979635727333145155296341275737212794401226995361482387761140636872549425677402443378829827182735272528079536365902881407701328831275334629885132763987955686011585232073161318595063324787854705138402952898195539603230430643597539286536304802014981506627072336970408579435592138989880728865083212222418027600638788896600724829274068258230534586534844144275572074080293066356229408063349468773575457595132979702529637139832772480586073859956622823149840753944561796964867324772367527589598975989095450788432020449630463155395352617468411187058342380042241994652748935029832382401276731909690032662999899730230692962716271912761811464454440955065450335010017244283876466552908444634021237803190407767543629966677383262887656454588035866093003306753609962089554218223007882676651422606926717115554233016251990240919675171150200534097872551940452379195947760658240911504164903918570380763252609728243341639288122098097760581685976695241255170647747496681216487827529514613271969306456226463552497292800396705884968395926678405098961187500985161857380873161475625552349450533627079651971517251388015925183640276680974270482745448394374898376939450360390519420050905355869982248133084235135730576985482057950267509424241441112933619027302203118687243680698056808764233480273294185108170390031422261863358276064467642922312844700708501123543182285321062982327761346767117119878607557272440537748798047010979576719783441235468784522032097532368065054879178067316338410261676463520801586654805317844982452888192797823671665931260769068338523745148217482672649380368394238228980162530696975093828599514172885756981755181860467036619020743721362665075522335794857160099597331061581774895004718078217934101789990502012986581177876151228813165579743849010635639585047965021089139724156113170163404597667724190438857377177358692647045636000741493809959304533703751425345421657700249217524448296916591004112218807333145615574876760443066623567683367243173124108001265741066328641699257003034522369058121081337342642694294018633380804178425213311799277347051058067652350952190089144943360818280342436154119507252181363747290677004321538799733027875570319867006106836753457631237800892926407348913299117824136378138253992830682875318069897124143208289671209354766033976858067739451374234958905387599826234979464944652120319824280771574848550314389649130786252351582541617430534165324220346876606967660709137685819862460419600469278516635808312431589129626640395578381076612709777244341326967511584018029171825548344330860973816926670238977841468155235463663566299806405610282718849592696129612731907955516226027151321738475270364454660090931673980352173462888831702879015560630885879066013970419402228364943995355041693050606537891185181913202477476550443651672379436804656757593618618274875828611307452417938570428503303234397273351565570968337692542657519812118884846907166708473903062278798728161475438271237231919854082511313194866614623188825443137789287207713698970357919602161681872744341654454676586323479918528255075949409669239870723017228983611921562510438817335906673441346397034115376342276143759171828462184557754910734660298307476845406982632742070761673330603334967932559950017252519784281725577786892939972082182084961127943439784799955239543444304120859141708283850204139761261151941754275680082233339819736278304681124369975394853115479522003900532082614460144850104440875278440631865501009669569388966221428966897722690951404614662392143271329759617581395928943919388864346062004477667493693566101529558807776758739138476284392506912996402318822608494086873228542080257724178763309631807897820523476189786867811522080450112957363853006109143309763918013854817357575943632764142297002360124620092252934613677659313321269621447743063038915722902252089375078601967684489354712958777645491146889193720905192352616134872535644249378925595861473133808849967056618364433484916330193167522393244354247719876560225832591419395625088975148231670788249280538988436633470779983736669514736075832465350610077683052195984204526192241666957862178060646795700958399556249342175670812824459853605030012074339637650624914139156155238731080085129649551926689617396497081887210207922489727853012008950436358193488245837510886608146621287782167704985110933236416527693630287886961238832327889527522551238135888249730430699452356908021675589702649799641789296135656171303624036230468386635693678869611120789458698866324636756090312682791038989984053574363194569078513047369883988885976037195026629393154236661013746298243752352342086117100933507838664804269693721453311196097793977736388093215622451500984754724911839454920184146050015668247275168724076304684182886506167861473248778937430702775321373002927289609542361660006272216727222240417879312125395177162643861183509904522773436011305226337916697496279984289214042303891953265753882647843742664770336558066223870895977994625354474434346307000508997527697748621089789574399679284587269211646636510479266588794615817905477818097848189422902086869171811038244410793575212663400287905462297084646783601603402783062933883361244620525627853944773555073501086025895322745600833519809183603214276556130944385613009769308885689264267184096289439413123632799651077386663327952690770049511147350596860318839735184939890824763194419861591012275749354428942116779764679719002602804017217383947273578051145622896264848161834439785295151114789410433482075564437713128686423614542442751459269106536265855980466694833333002202857733464920765192924412379388564239006756200199075846187266165735159092842728217576964999244940144954552154134338158292044375366193426388076201596760438294236972622025800476581020005964857378355465437633672856080795811824568525126289425624563541412677914636339706366590821498478285976842347032808456769576233236875087118512843602311359451354024790927747653340322624305721040600844360480632971184851278761658635413605066533623334426733285284658740706740180863741007559661823040861782369905140847037679758723477195137059636378943571248851642838565294532391725795585109520595595315043986654863738374845471586463927737297934886740844085460917049729335033631130730919887697510576382796270154271835883725986648147324599907208711653699058853051779613982566057115809713895069934756085322622651375473358725931954743059451058176429579278349858361802369275270369507786519099981034954101564999118952077902883736790939074245610012234506839648177714802695230852044665415378514326464532721167899729637176426810666524630544664576290717135176642600437089079683069353017090961580422220014011993715842447768027195553401062664253148187080000092506049892495114548824757906122333669199754056435293717720244269223308125217359858918005670001483773262740513177772887163966964911115093832660223936316428863977108849956407792424835426004860645058671110840067455748223527835858883184775749085003753825933316820209567707030072070353755875277422127323689891062992724791139633258319494890264920702556323450530269639895889156130205338531677730541506281231198178560605072660134610241437084631735982236827354987808832037013153867581228844087863428935422886578318144639938989330644720350692942436942271367034753151402980744768223511346914410144981035932115758940340208085165935814409691137814887318932353130579154153889349996652446436058722903687413066480705464690465280889711189189878804175900162816640364785902682947626431553384868235467502860378845542723169874085292790255020594365215784618149720651778012762546041549035603620322983097864269124819916159700761553645867635367150908888130655606857654622987474435912769615679692950679614797534113767999673959287839268167050879593478125685460722561186701177441725878461262570559078984972225281296996174782747731430337246414152038484095208086731490505813206204146904392046005069134346499422969506065398716029038282024234825823354402215257866113060434228454378896974953866676998565854640608700077088985642186730533732110650015222612256947610922509591480359652929098064024307822751020634189675460639445935503089735340443234915129037952959930426153904869568447348320565091623346882714388850268154617366714481494381678753542533699977637507180551138445202990169470498910692398786803927149186233622789672030666237083650660840750849651019747507958218741025584207915710527642812124711311843903577595225691040689766302592166598119745700729196770066371102356850761814267850073422902018900296868513474159152718050478991798035382143554683357837914648477917014830839850100772002262768876091229681548176767666677493240212416948483268627618288859616394202168004990673990147400913574022551814569832888744220287790704275053031776386084050460759391474195200079715369343911753640568980054028382915707137212202549873234254285681691561420183415368559211788111268287841620657684556798919400996753523170990744453833508794973502605608055212547158914439425791605969605176904202911760429157967613315084507658937369579097362489896005319020389581058142326365594621885948417409024574513111584679865749217523439011823348835253514133921983190184487695760469361471469480322846322335208377531681537435157501245626700103767954688950037352591313064594680493914366628965111807966481872472879341106848241006065323965503800189799816592240521061688331842038373315262596083636839961614886468332147855663121519598510609667709687816919816404313057992961625659042671861938095926630402550652650960452426194902179613897610495717468599878177811552198983610169111938240342943503527774442129750351187740879197446413217326691694885394397510156253802238687491582554078461212523320572120634254057808298769322371724636618535680700099680168904381770325658331632300925946905334431515687312778628816183714164872828050713826716740103559332769850704136508006872468161409671602084283750074425866507579485611160513207765098399745927807414755946007115445845529645022501856504017878887726387206125425955548120901012316051962852408848852836193939802727948281895979577072551871647470279667053727402916580936617974937888488289359059126680762921795754502869097062574265731903722153925558774509368091781136820496970869413109157834033550959537981838962665083569162011104871060887582140343483593598050915494156121696531547874054686611260512082757842774118338327691806240881520655638618733775079416753130170154119259714733897341044404783619762985321334399250656954343444678916971843731926863465527694826561913224836457397834988925303717326707085296133636135915350120465911325591886369624991418375771472459315344246421531740573248983225850338731727369266756180635889561195627063819586095466854336247620639352062093051246874768421189834335057795656168592531515728547540865613769419820089806234689487282062262256221616989642399287010010769052338616961453005990743218878344472104056662830850040710714140213032180056120029134367422384312236388441380224226964461563610908821787989467675889017763273401610376967434313633307436854776356709196837747168985606293925641690193177992275494981136319731669871800791366559466741313883783940519633684334713678204382226175654086673693808630148755726732314035613596429235567978268008262665920993935887652450868858449496554333991537465055898108942233573289149531140259123781637661714597417970254524654346685089293631239528871690848526099237126154922654972126205620519439415226697923034473734037120165613057528223030305158574401941961400308875011965957058905786542042589806219190692721060266336035947496080536822513457458489855103049876601417728824877308033451238712399762820779710360795267897393898421116681017424029785010727461315478423655336940658736155466699923403808829599562892976630411002444811336053953113643610521462488235657799517132741918260846919917383648611353434947905838503684908877191921592143471303327573830273776348971023908626552868335364557658083838096952414511107811840411160124597324573963085475628301375308094140169182663507716186822409964750297565902030500710944895704086298257882153998552552127119197437221121284160907262681686016497457364175147150574990634486641473156504865250251279300878231186046771203833340379503312120931409764884954219733986756087445296277746803686872582157986842413959020715713349254662854104851447126942973857091629185315237398210049852746933514852700523672506718998027880239709823105490761733954090727388348591020443983714285429759984471650029527032517428379121327207956831674435688413144367448512857672666762740744858631998731288495118638367238736060253908087391262300045256747389390561529622263688323240804597710779586387981325582581290943985918319545416940302660174756691975907856257161458520368203602486154816688468928624777016456254194011714322190328389002211902360181830086476571739359647975834799666201713250873271148096418261819819050151550326602262470297069969924435731657776948493131597183147555678468236870036975575429671148434099477287170273059637152060506806382309806553214411386062481546367831695679029755680930777260825901414511755920130693147751497679923051852837348323999418663001923029853638034763509229078814292319040101645540322490398125882152909874469313503030866186870951027499874057607881917312168950060694875500804663000892246033902777170101629206277478010146634913172093900897760144359465255949650100464648593004793777982441472499853285302472918021512909657485021423598604287635673502309502640699087336868767779737605646322101099228717955096530620569105229810523139635103970822962286379465913910947140627343788636096269438080412996147734341636308751764235516456247355954114995468998616477159903044522903413339787650562930053003705912097943397397321431688339687390021734737940730470819879606974175471071921832978900940940598067006237169001311708096232724229757502388102412325996292231178302134875278474334568174399547620671341988758616290104755366032280781050906481519231979922422096357978637752206754840476639032700363278327157171132533978847936053514439511133453908432179165258133853543234967668920147087120557050304564706725187822148229759315708648940961639378869940788251591814619693796750966371295881167616623160158224323089280703413554813242931862436540704414814469564738335235258763635786215772574909962633333340424544233220261087449961066493707383322753973447374682604233622592011490078014987028575634949105975041677034506841954830771585843171583934326128686334550281923407598921772270825506352607197082511177451987036735204742612431296402391991909871149476137422917102297896143793301061495156924311224278852077207806191384193310972134669482713523283810058884148813926778902623661349884843657051333342644903202295134453809429262135275792829883768410148764298151487583427640696744207145144949920833919768599216862448197221179806885591804048864902757761936230374345247092417016689400500167199359473862722588109758518533454039702266477162164414582870461210258205770176229983490367754953077503290776470020247995418431576086036755181758163810600563630740035258836286167254340670870202938452156436990147246974220876407370988935876535500669405556040022675336838657285781314394254804054560776551029801390609421430507948415375253324002635326642691750415809700687758445898095107373597272498930315405900681995931548596443616352662871515576507614950958365950043582281869794775656799000634100091499377375481108066760648518102963494142627238656818056027712170466758028636854256405009403820896919316116431795466108870928146371219871365260165156920235779428971130751172968460256339689113808158729848936793757089316888923511079894580656315736767688012593088071581540962108674316616956444559452588199142434854681858863023644266646960409849208329413378544053205388424996951461242966876450538127630210279762248078666126626300580602273464608300702397555192730975080827939165649304925712978781831094862650941431116730862091888280472541770431460686025171679826266417699048074380241584345232288374932786127379738887337805204621006897655561910006832863451672923097488851451550055575987719553570818382962129080597405734801803077323450709274428893233268102494335318574331824234802511748845708909081814364854463123969675785847291345432060278966397551685525499753451289998371705293472503051035109448520806545665125637794859601524325062043091357329213163966182624367861860076004363616083674778634058704348029106310899107899937740661061238509009287448942568247500622647729071014826337040477937098575125684947877897346457601461557636478079506170105306600055626186281016097689898645190235896635238643450484370614586468220154441828253517762511323721016081953613979700532075244469479914937730806931031303246083575691257095581878070699126651671743737226523570832399659804279398141704039850533637199482395903020552222247078947912152037167846391502239118491053911950540386555103411920140469646832277902220359728247231512661796161373346139283076289710618175706373683027791827016200596777220079913444206433252455961030266112780044404343458285665122334377435882235439739325017475133252971771651886220812954469942769761746102462562093492510714084766301428965267607829753451285172991351051576689827177052484588212697265527692391710484099098514410432995449084781040102522835687105779108999500536130936975842625065804632869959293115259240193853255928142638367783644574789409034976692033407388916792043889555415271842216052328070844042264494699019810669088607201229665844156577656569420902107742527901719066217100964245760505646092045542103381766272547997489258866279119911976209193816077421203218990597456888075608241833200978977708323720733339840949953338449974706655815985942538574858375185292290956761915275000022480729712294350832609370124355551091152876321718438018727923815137384878880457139455208019683375071745198727915174915523689244772287622375401071489943062706409070350786297477508583821985828765824224560440204347937507454376677753698972850473929341563064525256015386830122037523763476200128887485832745805573537023639026761562997944331463089284358867415382634046866193245486324666253223141997852560514885850554393198586133046975523088336028466205952340430349546973955033626156774768779384889652270889459603011113155581647694785490732581468592731031793613413023074850183075194195943731543388621546607328400565899009806106245358742578650339830622797089938109075216120759803909026579203394057812307736744227974365166346625652781817143061292010350158822211768585843307975938344915551963489842777631594178241843653503996615047433191408877146777354467882683601434089599365576839043470044577068093846066349082057995091248995949492354523552936060116395375698626628697395344705537155995674195284806494147559871257992433971963339465635161667253956407054399814895903420954309590583827618262139617287057930313161992184822732147194491593637869351114710549117789537065530393120989294737943838830743982702850664952314283842137714278440396304437868599981725879118708689063412596002596478027964267493962274362989332915248385833916696093417452863877893672375333845132109257480534133347835999566745015556279954573420571622996808430584397939614112259191718459530354607303206223116283112393922346401880628787217475738194547290497565297232061725712975363758606956585804868437588956025240133419571115660769099536461213182977512114003692262109182288266098274139618396446232397738310553067981751598936768030024214292681080949912347644417658148886911620114437983075321714219326439815034717855240464300720175056499979848486852556408610405984327949371324259651068750643957369826246218518194978717100280416685782028222666370246270440330093422993744389998926441501968191949154886596004851448311411734885410328615344071815052881282751448546567935809621295514884672418291410168190767394833441063324078652109013741594144712270004766638846510523096834968429688834083339216406753072446741543945430715554517403763239946182819976418757875599184105927400291927777589181115579825139177125419938598798076909485226030308547170539338572345649264441560204902610544319922921227122652544066854298488233829406452145532702872626245438310635251909583133388004677498577199694031981711857634853923319774070253531832617042768405844543472086408059988185902498931710022378302185246319614404053302208944181311116550346710402971886340704311417555077442194903545519145276913086040546989046101033898600249050095570976948206932624112705036796862908352843358743094738039151028978105050232680491855915008100353153692686735258046271508284153174377184197163676438432706209341588529579678138522654142449247737758126405610019681628927664666845208045192810348885373854846599707276096535632580276631312682284123690339607506252260060426428816913111849542139470027914073471351296809213629018981829370079908761144659903348212881902920641822785837023402575976622420745238010165310135142249867072693526040199473828936051139829701593855493590565097575912839805471372462979627965451711306849719359158337429094388051503527826348577759988718322931091033550939391880116343346656296278976401962748432748269762775335578619452845791052369056619300399666022503204133351616825495172173075897773808516019290594387843181642310337864329036392554172157628521282994448629034979447116965550613434865872925956074098206597933193984429733267804532239895525108982522789128109802906992809227571011108047499010646584380396516774367553808259909025118951863773937088936043710486620571924772398281357350049358538085094771102473978309545175348102858348634713697432889442950751963801972563422559016353292241610155852764529072203635156792228345005483739668874878790717762571250483607945360427967081294197133519746198215382516367445403647795782687688657502635208195034492218139491532793486932634565914878770355328927609803499420375596022074755895073276072915795273385361312168405215806771767166462329331498275281532101789272793276109426532198031070139441940870830070383453497516514233966797700653012457189735893414857382411254782156647706661162832828558762442123710601133690017234291445350491064560678930499462238391631958774287993079744679988698191736311158744461858917927471267498925971153395572031385150997837222648741220336016939161451083348345665384497362100873428720155825838386474313733841323243985658604051666118527532183005977797500605023560516941267919042926855212501403842937133778741667161370260481728803169803366322518145869568694520844165618501021112923414146021757288471518491033297826943978692662062582151267930009106534146980325132895742764966171181185109604984841152889667802030338253980657663235061292721505372474462423925434717872672936053760412598191203252531662120132685000559900805392439109551822054043013460389744934730258900987479054178188512304888332372317942559299800690494601143012045803495264428328430758621494166902274520707747548336665537562761822958534038571225845314621325565982511953200442570495995957511196726243134173139464525890650977774200852170597772345285770849700401487957520221334275113963234682862920223795105013042729044982330250854792536512824907927821778157468197364035803747586711247659164643726318092078499950665878543105667579873231188867789768727339637873578379545230510996861182883909262896459045093561465159682338401892337330619849818275035280415328561701036672853129664919396031353644518234490794544197639083887939344157711390392841490551435045753683311790437017411920848877096159584127399749792025999575838646783234812890311397136608645872267156839989496285258074726582015976493417612988030879805816386432992235238431668492885103548339801252436035789487875309286937145197448472077982378539526018509811454194021766394307478891355753682831337769632198091188971747906213599428035249601324257947436651647646640738451593132844223499799037425230653255427849990182118844750060415394600360459753386492000604716001564225378433914007912540566726077564120956726529527798438477537402171699420414364481215691054827136359282157363174403531530381577587963851472745224322056791258438569486755453110783684193656588683138812773807610130476596977815610453528383388996025649682258818060737631278930738192581848956325302897977463715924647811197123640585469300301360140510992131659429607462413959508758825301135290271640121427994462460162262472856844693728387635585650825627470482599725310373997381734507623751252860875118719312710861755190872141984641425713350158308357627183658101583350511983303575294111965354459285439282055203761130789256265490524279705736947376386883445506080769815927486443081261289579555310464182811503731665260703412508202108185564878469470289647706943148345944270185451666810735274792701159322768907944312810996154238912167705055754242214573889947192379202414669918301151472605341714015170249228165177154518030883840756212057448488580765276050698897248740403475614546665867846710346052170172509399113108785608950807354073866268758361571897609439630894867447542151752831039937497656101020295379487452678312275718174478658961929737982932009395783463929401445438911359772205799968198970261075633074741988022840094357268379225361925357425194020972162337417854752925951045674198782283798192058190753949887261427993285332645804210581006110495548364050268715078808968033942337092605344302484465430145024833842714556645863121057112937821197496016533729369685826988581376864501764931070812279828003625259122586917383258415450289328797784786123189279461136829853291877188796044183007575158889094208518907848970537744418067040965118183947885027252121177175503473112076598291144305141156428061188970954079025029066636059597106270295366854123659022799648577118593864167168559603993245815265760131378114859415768838563115453839517896264525026788474736057891185255470714479109789573789980272056099381443979708313691450104551094295567822305427282721067995704248570847171404146355274398482387513239980479662917924518893310167858578717403682142032158508268331222621912072457669272811705330000143124209308586100067980482194260198182154431892921370263539497996402117730066159151607840605943993202615113541662150290876912701820967279808083391177982570701874996217147491532081098857397175208356747333339766748712165171784533398833494791829643018225087493027757707661250892551797278094982579356324876347242083139303694504422581759260263722153156887837244195175621168861066203450673266335077114630621843391594481605113237264352378204140766425131764398924664720727491954641760027165746113303178516355285170824885397524457861524141110895417972758196331099490078964501507702339940533354533994579701756550703856143327173335375729520683429943450015748450536726948379188503809663628853050354700992009382617446617417079751426493355804565296461715705839314081689327533820853023777497009388692708768719737462147732081006605232992709705035165271196330856108020935447124364918965203530577507593459674567668583333503952326507154169893932928295249903488147628628488706674830869211536829766119249398140480373800508777567933905409451410794304996161891909640516512616158193248539656448906528329326844782636418075920876971061674084570512003453895713652242358981242475966060753547870803504736288176267070237389945322260712537247077574843426722025270266669534118028085080372684121436612570017793859050693233885509643085607893232002769079299011735948089617184174400243584374900765508649785060098034499027864137227703688540015268615432782863336430914776694282253641814337455959385229129786630262526297424061447681838242532395284325841604082409937891647792598699753837974161170547173103220279209451898205788647721845045109632197773036045375516105193836352587770622178348440693065906728009305031068121310404076691924379940305999423426730959974360985886583260652307880817091863525898953299569086022005139840110328472387085686206736575149526419357759403286561894531687899413472197765150083864407681478770197573389618307656334319444936490722755210506676397805202099499916713016478810827981243459479705075433968315231540988037508402065595136622953641363426411884119781058468287442285185200754321634941806954422520745522951772912770518869587633474682413372562371317280066058010791293117009710395828146703961381354675795753873904004103026143333197797597639820528377408142534626509934951002020248414125563016931007133021431743807003485405656553495093072462073779267201336814917511539954467602501609057817015018082891171038444426027294385291866804426676164400276828500542341013444575502376706894230679852771495760527793525103634069232569243339448068596762869048682421464069638970137783376166069251757238786866242345827189771490807174739869493331549472096245555389470307829448768001560388345451730318875164015285073787360643410796783840753872608643385223987436080569303303969574303122810458903134114624966297403911920155292643397885432938414931762158515998986596413073933160279842987019876782643445264295202279445142966172555337400166889699454094472933746758197248402319697732563261576738499367550477073302523095090078434719942574200956051975053362773123360026280700405743007753520278485212810788478261732200784780886503447621905456858623505094094570241007527131222641245957858883433328533273360682839848032686803676762951177458086524234768858002398731255144029895567625112396214036772526938329728589114328427939528262793896650237738669078505021283991182807458140712212569015388833539902228987606125462363533971035483365644634469394045316512626918656604453785236446844121487249072670059133033124838046028999537339734668499814434416572549162617898031420865152012746515022370212235700205307619591624398564805284552791034486170955969138558545034206807135673507460145694762606729504333685218500650278611711044461491793545855509961034496485120152925050315630927246554678710277345693663186874894565570600144357760354444735305559367579671860906623300323280300444358497312257420213212259500744741773127343334229700608364453340297396004588330613717890238061172722711119223362529988100372848345547733100284662756321964474628129165177377920035148949897762358412314385964289062391896278016333832274749544351235413885451531129782760540703340021907468640224202708114593623922818833585305919065094928649812145567077097148356939987940025207417463215140492270977512304919797799786656051176728984070625732247306058996015620198728325166029080471265694594681433337220096908494512685746416632930158558486488646558086401538650625311506986365416926182275563111833640530681873946470741100924695387575490239841273228400416012798893027694578000240726180457368777659156144259711407899278894092526321943190893007232518392295401393046827402555583749283489501337832579622183304705485818653869034998638449899185685947701934684830094513496172394986708368897883739817955194145440636421302043337727757445182261130488011350118428992759187940327945661892359274222462572903731723485266024854353270058001717786132930731938854090878559092245693607887010858509947104499147615802975732043647780500845657321107982925666554284052295035450596287095055400812818859863448531469050736631072057453843996039367800208874197618985761263445999603086375161140976748835055490473232740908039867549259285042429471239763510437827332985228673851458524190111173480906446783874491063588000181264083178868160591852744256811662068163201438443240597719251882005261473977481445150355341999072783474378222877009148557358139513388832206763073319203481512477892251972691541617960126069209602072916687608869984149046212088565452364508928856533177853485178240221560379454127139481355872624931275429761877667006608495712287138682054823078289675961220022830311060930366446256472277880515106283076484604298428777954032122769678112295725509010262484008455811262324371217266638757273098200710116549235165436333977931876448787728443868206508659409098911805868853107457025510654903456234449787409908623428583069442632144472409716694400107661053818122285362323138294108859187163329628128416520627182773490004536724086823053396688312640981127157358449019366074669932408728183725194977500919517608633476467280237285155758176960046235821114726534759824259312844679785285299045879699248478436170267869519169353387874025480567732957109791582745835076291917225083741869226429957968469878372707938430514989999899979662303166085749776490065697618378495215877066052816200871689933490962070003974239610722405066356062523254025324163684559668651355698300962756256787001231599181225330228875155811484736312506117060257961840945152629387106519765992930555759224984311130520472472263419501475899431152317984240572360993391217697677724050402982385197537383255043961264634822199101057630312516087461501582360854242981073436483552346319616723433581852341708466655826955354798656334883711007428943431578458668656896329273819273888500457411518702904938611517060422150991053514500240829000898059343870286895302295057065184521249386931972814018813538964650592495158407763462916893997942730409007368704748559146618969360655381641566361522104441142775557081553954571673047340649356675678527565670708221111892069222221485539026830790152969921934100501853537269208654737276071122137505208122300609953088766443977308112540227845356779872861423314093145898072279842756571025202820204637270126191820076051105331229370473589049069834784157398973198317144320276005797565711215847669571374916045757556818102227439969869334030385648123140634643316044493585053809653646041147283040675923314049884048618407806696637180325510488629803236286178638577327826833666963058564980593129981508978122021614967711225366842242003441480573524706148219409132664018387515390301038164128409308794365092163023529011827534263081154247003525952102052015085380436958922816441308808059102386810455187276248884159778525888535392714101700291153531641994184274003010227021386422739344443908874065081708140209302449035463608342569446550466716418295530886008869986475472312556815419860678853014361201654837460301845140004566568810845282038074992447885341746206770849131540710770072016268430673042593497879961796315896187520954344891331695628575590498955583105352851605426233077556473288804152200379953289951949773755468435694460109991264990886824506596972315870067003076660466360205804540684676641741752429650346612779537510141200923326277288319448921323626036761505576474345741501220130039441114712770367404858670650256337509427596932792952564782458944208372914526470745162182940241905631495482512987342145113220584765818589274287330857244111478997694853747274205920371577118910041357963295783009013991848200284696303352119419230002065809931562051373564413770219796309553822676527303983627850103075776525052866068983677398446929980803924940348609822059680541705806819300835091610521191221572831135519409765627777801833413090992195729271154711383961018181407776901239343568674620190847299819491505972780828446697473399005938773411335141884946208260695914305399817608300402127976329303137455689534246655140589536316768522075750646597842301545728911311252634156461529144951973302060414095165503379060022557139612357449251876745536658358490378308525122696170013516439255999142193968503243543360280269924334965348022960706423428029100459331809578783239572798706429891800394292162650169671017993193249627722039316365641013432934100050054620513196426793391517138016609911889509053837174936996153118253682790913752223837847060833511157833105570510190828426889538652712124071374008087781302633657277836733735866641599067837027280918344808289629173719662835222364241097724969124458216170746132587813618542280388958510916638793585839996939437884928106158362494281020020924599671975107453796625618364012048952458415517208733769524268749514598685134748597988526791398601758532709794054700588578055844622831483142271163073637970233871715518882017810233702577126848895525796247433163015230976278456284219852529350215204879699404984960509735142834148681821182013567470019729834173738959938654376147490817143380606140889525891519205309361612875168151173945284634479642828455715575232290075229926274261039101053524795940073949828227320116022704259073346523292376062886841656467412452525972269686254588752309365025747976633784130308741379327987292818488637073237476430997274875664259450299584411351178414089876276735588500417743230410334685688513935576539626793392029701210293976738192971533135420936900206668467141066644986633514209955653041589084920749870215605700994406834471507064194304373325846056879508102798290538827046476436897133120748122205107392854393594543911287142190647282716851099718113369242196286782547037176049485808061171298831549755977502090604030511682308094225942299915089244147087980730149580058636437055853939059116948677241272831425362622435719147417924073255118417650612443716886512457719695117768572628768995338605805286174832008251209122984288956973299378050262168204979873660546084947275317034196649917384369077157614364155807608715481333634286806886344320010652044392344315235720012690247864675270259619495491206790797255866964841021706044661596669606490107006490823648447595191743429523993499622215101715874219642344073080873854116695431914317940788234823443767555201893734466531830022940532176580733253474341783065470570687757794239494178626490207079250285075272546287321858493875114090955625959427459036945747537155292768312545402561288359158429878701220522582274337590106994351015485794704512098896588750376640404077039877280664595487721763898012668658219842516517556282277569788243112935826714934735803973623900522084842479030809744166059461472307192148291310563214008160415701346138600229877295649295086256596661898079492708901344131143524566554343050825425449661437379087185480868873597560027894254619445298137572074544268974479872870715563455490176160042997410244168114625617088117957797332497056257755505939698272621364172866201143661475798644146742245302993196500420426142625587134927754872558519271683308365202599677096498057585530688472587287477328152232769786810863357675707236147299455425156755272255105978228263914883207141318213097071174327643570192414120955188144868067571138945158377667674212664190615603267077055042088987311865836308883675958670427214839380972362741262423594588844507009945898222989744163306443513786191853038113610781668150803540512108383310171558927079247492118311307904263646869434178953750571554173133326774145225640785478818587119897829114557180778002085200365079279447061553859520298016780677075316467016693853255580275514286502875191579644160433447240321266544976189675833577576213721541977569556842688372301605457486692472623474841927382914654786113936976795317683531465891089036699972541674174129055684314245614724418731674690511769969894499951237730551040231396016783508487843800368889889230711522233369526815016634422720817887499100440970434708106800211923070647745237047757515515945310025932619307328221038578549797328123079415716029677378253813435781969726270462689409793668576281978861346462308630059521774752582860284913241166150840294701472028782088394094032620688504925437174654764038073598755806742246128785291269131105010040107940697965522462764313264808655622371747896703677065866056585809266419080839266301209469621998615047284219580235542131099700582876828717427438516315189776831443813224578830244365470487832273407618085533512627850701408212463675916772484194133887653494242180546349752100251205796417276532176647403656467061069055895060760432171768839786728893508714605241530084086002692172933773225784891777008399115920492124891501981046506286536418147099731140992142142711729322020109673337581919400956194480664126284246298359192192974205414227180541608960233225232708695070285213255982875878382175954844198664404019858366041113684719466001248533599711569447974169066666292378586622461244227464095809430802738925264415590052646617579339194640957952877767603039895339339759628273949943172843888510380138071055808624195853848502853413962852342962398305821394075461268621643818962021986592961690735278073571591412895705493029651404444813777535465339262472099868563424748952098274290079930679975512394341532873781570973572455611724067520392702525127182442828963515564112417289014635057504313432447299730181641289383021906008589459001395395782301566051255919823892568359552506093659477655917367895343195263765900611521015235392110408199115514010656331459287959915631587267878738898029852269632805964244572771915655441764746985145669466951321261354421281748308075827354481654488547363700474904683845996188044876942526535095902793677959170554088664591902542767176163550179161052562472981802645270488428018062907745271539109808758279622589302416003210798796117160228891336374141572006604174069844631397979957362132412060036017260388352666700098765869035605054534408837003049045272565235986283309666434885911601953145085469119617721096439974853310382518466360186630797056072553151271022499218422267896425344502703637592918076135083179018285777209875668108671045876240245432893327495306594127029601785761443940899442823101899940475612411279063381066012811082952241351691714950599108242074312614432010741934328278537229144615503091440887679760238056574559447232717199153281191442898808444113209247430461682314648297088966994040780146188528261508499854688063152432694353329272416091038838081566478770564127167697950328444619100461751196968463584705660051613152111060749009907484690004048418959565372689968790918842433227701171911891921347998986104912667051966142806604300770593330635852224673811082812912321778974931238236777881351283917318375045685308028368095507318565964606485895732718574099394840933164751024917485598171157349101330898611092841940922703842019410515054507983013354468425423387095926691652871090400706000872877116819370275833485520217600418054633462737919135274218581223812863808264188004948899035637085538781024126721668886268696681246894753865386072559078696101372510643704613114672567483143357813426821925062730227075436056605075494940962000868203398611816338248683238246803230001596367710204418638548631312392968183913607486792204303198439326848131195144360217797812544546927341105984397487536642478646638269426042836350061097278337975215760288429428602872492731017329844603450020583967849722947341225672742751831690029013169995928738992470722170614562440395992312776609030900615136071850861927391148394911369783229924411268553678849930338145707077255671700081218322309503367249423265907726933682063742058104071574709107603424437645039337988470929306657013720698172989781078452487612992233741266572578918748477016528801613694970651335571967943337574177913347201725283446739385693271522905104268896915739105961906516422383580570321706369833914843614960312863109297882474981691611847963578486842641447336871589741945420610717136696840994334388092371996017666187383417433090371256126254157390831730372349110658355552583111035022594263119536612396507718881535573997694746805410066104490205050409682216143798133906332288583414790477977188487756200468962977426379068627068732346516908825577643096992468210865757479931160355762349996963402700659556148616214666040710848258760919375024929768343009109116085733855068907964013888255121526640665130221036664954999901013037430806994592175958131554180565037639825925802908771857652838613880525035135668313998134798954281320487381769031523634702390065346123778729699265661370347155533381026949655734375057653531603237100676707866660891708669420366373291560439493635378716736029851863748166734389006286489773712926477196258918239610649037745921467276157155443873665814291334150350694751686817484706313777286696497057371573664290881302298234998668423088831672173494027409135611159442696570312345447179003298342798437527039875657297263972042794058202456432533021456397876197544388125354650087308025548486701529754771098988356704681966821393464595249007008101323456876893312940848280929177923987469924398850508764571603410518016403116314129351094137338248748089851832864833588960431511979551334530554224925066263130364555394705090485182697707403346651428327116823718779610128363660870026127008137804112926058039690997176165608819369385264275324876953490330400947482107165567893836678892263324443670077825190176524007756669061471604768833003217801984895473557992124204465004307627970294224413195978472772688311722437617025330234180541239839083261271979156043910976320416765415370274942348659840063722739683487401064563081362126459759563693636857520122246379760404341728492424918918866010865818460196404653271567768552876649203263268948566096807205405869128561300775401723162743719656438464575094138448622156359750840048047429797143443050712375782245265807467469946725313184935597202800208815083798335703802804175126558560340229945976669319952220657452350981770914997753865759501873822881433192401501169504562438722066769502067082468762921854621882155353885422347779704566351003058340568899342141497623008117119718374350263565526896792305392034648284284423484995523672744550133227672174132580784023929535360642023516425230705148341146095313010436282946628143191858904858115501001831250294877249791701899180222632903545171122992458367457486483606477501851200499986944998858538509516921722578643367687788935195711335923170375055245237328149343016377595914168775224512527669132801330479393422313003049786186852373889608810618315942694604834770622268795944288323383125002073221080310484464933261369465164547106196039635936091052225763897520243410659590560463863648818559464096739919854888038206207125555436124061724341352960645011795404333432295002526007868728834167568051070452736176323433551416910808946756590999462328890033461287884854325257893130446395610630573752145526952055878061357317249250789956993127934208483367381041800433397047093475738246396804249669142394560376612310481142015224864363001510135249329020845482193119829550386477936106749830738341297620405232106495916981670661101053652938220999667288809233043989841943249056196540656241893249836403389084185616018803713461279671049784033112074097696917933944667661219038081978044560623114397642862409271252238644979946548789818097697977293686296383266965757035313598685867516571717520181171925207898349728803116685554206505586741263258195799191487505132315582812792899246605029441558094364435205172225168536830653580128745511759475829380074809112067449888632158704876338526366618378479902785671189327098826046250551087365136091463384278574911112986691296349713386230574341533882712607655753708687821771485901642470930452220405062517142340166112831276029264351753659809106416901496191810660664006649578802088708301243405714001409793596093828060743357055469500462683559607268191704090854136385231485228733792002861322574432767422641384940327208304124830710255123364916287804504611619650856445349809122699627026388773760582207933877833952945100822237919833876142721986600284724673665897928511709736435166090449812907342776260488829436853863825340355102769152585022203903752228288679953641919480106617733659755180104820994313024392144520186710249767302140104931768541643954760871529297212955014712894910273937622494129752539685171181864004545508010164367026497405202915049187017879822052754608502753913765033485005618047837456659344713276114270893051040406546179721537522403961636571594487873206703601922077969778687916844776267105705757119831059063482360879931394025211046880259590565396696132634519168341786059979872839720464594614007252638253444925250373059089783765231026281054279806239845199785706260421281899306275282733781801808275719184560025251215102024430655540291180401070659841895896217813045949490032270441411317977609860238808955790217605076567540077981282869381133148078012399740959679597525263763489762837705041716051795829477376298339366609063948327256249593957684965550459444901797126842754668332358693287087961982017636408973245918811578819858001589274785866213800382258589338622162268447445094668030181609505891656833462249279156378697218110891164776490794982602719155487637553571134845258017150959395189922467750310668096313819004648212435458670501627473732870327224781899525742947281409348581614966120060756841236247809548739933591016078750871260688094035662526578085996155710319685422000650062576153606592274340411073158909829506041949329812396496170566666517880121291034144688932762527543198268401969402255040045269688603714327738091663568058843454359373168922952800204245193470330910086710293492120818466669599103061226279952726615520167481039968890932854891956128379239193499452565147149564269414269707626164925426886869804748538089785385056144933041268917369675301495371990464547638678377509169541065994926222553060177872818041922662502078870154512037585074093227194768295439214781189055297096218208525228858184861979388558638261055828963321975190420886000336438266897640760334588756065153368863186133830130560820808615791123458202749456686185533399122621269897331890402792705522382536161610529436379742160218722797836864196817362006935262958557973135212845428930975688291757296658575890690614151395296457708058318137993338521937588175191634496944883878454278643008077870033005033807981570129001517850516178261130017432352149392328177952799341602886319870426998818082272154743683125456224066819928469087448168915967191556011719391331236712594741272876900009274793537815636111638550705315374378535538124579706730708832821615586213900549514814588447286948737459654023177053614632611292293230164293304281102472806045137237828454072861508674034074123704248651338162709501272409092885103598647279136776550095549938597954029336810677987810233365403402227045184636975028198106800025537921759152195899017126003248918929523487246245009932073193158831103603323549671112651929365158923650173188034572560080736063343977572683204737244239968239039431347101825999951178735594034120596828701598320848489471730329090506346097627063972837477065678201563674757845364633051363336350923176079648264688915522905756171900918813541921452384581768507364048412542306482084205460623386276521510050679126223604879565095299407218584859017683545896776116629538986717103251871519987259985438803467836356800791850795383452790467445638178868971787436348683325968231787956192993907611846544700854683845308378698503845079774980877503831222510257610733422132046428006165053847817593624871643689236661807021104489848322379074015443549388021821738865023202580615490933073392486243602090209797992621064607827740621044331116288833421147065914588760858547708608141477288667289430134711081566804701842219237941281734832471487099303862036589606874029805593205979932122850061468125232862582964185414302205663294399181623995574688416061143812299193378693303483641650682258085230708092483487574589122484074062704709699909941173224538708926573482692586387429281638587474522482574306384771240153417647025984283128698659309125749514027986579984714490759424113207800082055154702277942391819735094040622253393214561178462102871155512811257742854929982904481906815864238525755171574428266168309595923686932418602878149880136025825851841562678370101512740368791447010522875017417695888496362706699952833937692487955522983258645866019933449432971074302359406719897545661692268602868813647604620283221034598509150872905364471985768387547197516005127104230972654832250561926196115458738536375153240455968023507138486694648415538504277094239220791688064879292673893315622686035435601070274773659154041003980628670741984616949026059062734524537562671341619279247700598263543667295006398260163173145044369906948723480943439936530572634006800526431184023365529693420445918234752075899423615163871397084697804718970373622005237950023847785840882255027802471200691419922718576431496034588238083598885667857179242555739214435772378645859370598427289310129762871376941463731975811419125080693270851720563436532559354352724245134291729744728319640548919593707285719066153753742836673267550556171339101693391408761852174938648442056825704780154874600310668935582733506042348089349954719078370225089492618946091882217727053553158304985512818589802506102033194002978623572411724443400632763351261993217923994920302354227306650872504470478346163069660883082203907641375231392241615906540813517741684058870133438572737925173309190997583105654078544275936623656263343222900057288735304962987107483879705849785174567622681216927277919242469121388600915762191739651927877078762201216439980035009434631992935353915762047646198657507317829179999976207904810660709916532847767078156740317703518163176954277700162986925561020310581404442798338155040704753301141478970671583306991080101951368749815182603469060779865547158268217038161817403042389271069840480397838900687444952288832201599002131887312700852323734155522318907197832451457274729719917254161881741464911543186867503712226217953210144266995275853025529796819041948861777645667161733054552923417086767626049412328421965477276725358465549301969378703446979756105985076893336232649059678926162652519636346540637477030325401725934399645760667219393257669509344915357119149781806246907700317389179232992687379090216441196314441065196904461813395228756804870325583688068469193516794004551799660750001403582495142562919840387502871492741783092384812408071475728111976385003891307082138792814389344384634430050767348861340710931550873994582250703715694787551191166537635244645964963919867758239881400551211914502324320717236721975181078502852745968528222394785706494424561507819107063835581375715602269804176575473731663630388596099168722827042344635827056803874668707332151048194945261129281583548340116537303496564050801039694293283256561330607374732576501480281663504362352635026346390858234415048388153509383087799098220406483767298923919115221205468803327820424328865715854619922452430059028287690224702827714119276955297260907783024224001874057475830738209145276746267319166629112832294878404063695860428891941501653691253519924410605289776552758827067082741289129994301085126818021508815179751336585074558289827708682588670752197223223264095265781180457136636470390843703275386213264110139307898900779672215081711728150701511774738937039247504290498741317609470301139352078974217636148115038236672214933444146125997445009336904208550749463221042729367293052992799135556619995615662885919063677782279550039892646197992833162403495229796678275920361758820573516011137507896892595743599858209337568474475262020408552925739039939835127499332715745929815294833983859971405663704971466007809618129737651357805297592116845624040074557261516251738510714864237714845788323404795274776743443842235111518152626548355708791625323182085893303412120221652669926981092571233352998171506200627489803105237141426149551016521262151464324751484998553213675313527829905036416794269271730733420174569464498364920649997270712058755492676404914017850884051018857117704184686477368408025315878384165473608285001045001929472383162190818293807368610960225491833994794022945265605545726451003213958158413704840143268047472538743841509454961036356868613658317440960722109388509610552765564813269056755810979112766567509598559677053402451795741073834783685016164050123048638531415530372223751901126625850929700543527040706273126197964865886605071099020782267213659738759604388417121563661649043499650498553444986646719859529955483801037020045943842857601873281994553565663590403094056649637795368470662343808375889839548414770139714031138738434768692491291345292707905461999137453559864501345729812006930909299659202879855717846334803144778830027005328834018733393858964679635445894142776861198464956000666966879227192848154915009711160016437835698871335394749163566177898740748567200216752523346596182992926116300065100923026628989788722418384788388781427728987347553129443849401282252389389520922095190505680416065030498750967706285432940434532620642203805795336292952159743775744409637131957304190332516758811956688704529632462913891076364347389864767330334266289823407644205490170935393757905821953770401844115732012228796334669294599676187187825465343314934161747573703698662546444954000370453776280115449086647285333595393229234603427918613406772946796621561602642943865676293206769998497907197651195194779329968036660593401640403058543616240029736955538638477048796043018328555690021322609716190172654103448156541465106660910242813230666741504416068911158069658726622773203762189125519852167181980500653342247453210935089324458741750311657303545878405436764817439067568122607369343713818054612543467654669757078827698258569138599948336827771024166402277428937544371992971580542335542127199751699750154861900900671724956378144082253258722058156000533139467081425996133928509390673568445666646747114319671967166845456716405624208954230183694842905973938325061281607640849000879372170316163035815285318768059171101959107889121664897997323372445415512389207033605994195703626008501565600229635913508296573277781749625805857681272684281560249742482105353900688266392314282468423862587758600955643700587578248520237772186115096888071644565378113041407019097567171675881115524785762865810468904359736038761227959495081964024307715542591780389437354078968723671013297618009815973870367353110410645199801888845747964086650690946579580183809762319333818432432089974540726188754875506164270671429250419216857841047346936081366475754710352861744758509210310805342886676319233613755562301797822249379798326641156462079553510206964636595081366215492006142231372978916452311816976634838519564353279079391484294699212711813617245127547026237496647180545146485870907936442436444290946350412024656093030717565546796175874654174991450388585926404515754613622279372999698667494137058063963638230652818516622442621977481308507395946991679583085026822467112462656603960548547452393782295335516688148018703450109940583913384689570202817917310061183700906715258082324295158646826417556323739633300001542223545903999383536264260493758708115704900552589443498978274849503062742385070982583723572551756745546290865902540060425476929403953326106180064195219667266251537029503494788076127404786288772873818366165193037149006024185446365399366179012794437807300161579183869855796069366022842034310352314952810244371650473520869688064886566178904177744974183055187540578304186624923941777824926168420700751121843471308319758623742954435784140173660348933585432458830316629369598953881264155303847134564318310093885575560699872474421613737507253026627981313979174150585136259746883199976270809521999239759860204533260476550911181849084335436019657303601817632104930040754082964298126537430210747594413397501842719151727876470646211000212023080599891102479486971230141239028388711481671609547307830097390222846478959545141048411316445181673867173749085977313178015012592863723562742476159590344356980211459708445180296985967718944641945641052104773636612161282678335257843033757345791232750689152849399186270680007447543971067938809482949120002598069640771744270588201397145421123504253935432656563097762826684365612388781587306690384629119132405490319508806100551459874058032559292061067319492623953947623576830258491131128703381491942387749621100554065552001180298724911057521520735084209052363068019164547861792480266978987546627499555898612658333223232970145708253700839081030233639967078265658812095438118198272088408389593584955351090893835255911459655663038302877548148797337022238490674137711346936684124256842302927622873881855733417678817781914394466965142434113092692662836907192966107658395959290477633591236038152471636980716906825008496701825491436171266088361420690143350632256290675040640513625349367020341457096770946041491326133279810201293696055476764915372785899286459846647223696147456167307557417038815216262181539136910799574676273849796965566291323818833781197939251567014881484088937071184391185303313135520676298895056919892404729486477508315054294954238303095518626408416607101935652485810839851846758611854983380911516592875686801498818598648851570909212904708210590206227268692597759142140236977424397453337680794529552726200007952709920503075866718590754962079150291666227157250160928782253488362218648272057754741320044759153745008813213657453061604733756352766554430314331184279497149092047491984124534620563821251541191548207198830244705128959363667243070922295045773622792683253845093593100071957099178213703766006259623172041755541620961722287435469497883801929497626069854342855537382335889828756113067079473342699881163161608648144400595802687111396137268259999159010986052558933012753733801797633506122134951154764805110232747408233245771726525739025333378246782025149368487721414845175840651551074195257103428327284746303975728562291440492348224218282573781946820892473867782698345404269720558224765345306561644732180358346378377665286806412516538109615884589286002039876076052208604962822847301167023228254863465160672103592339123271718879412586077606042764535951751684009718322713857378991221086283201335248232032949199590656079359590060371660237460318761412364195583179897436412802477980841107733063139615392318827241338940006126051402156521626001329803517842926340163700960446110557379165855830846019474471738179563011741355491977070953216241343641516333861612296989835600983031985734663630389303533072909013319064461888726830801912766380515551573419042386822812060609005087687654083853710739770903184776115573768682721820389674161847210227610516893871349999395431364326691143092193101761766860196273329353653906752727019951880323479698612224330084462386587725308237893774576769207175537236981864793717537901619242548022145553088680257787034640966428112479132223745374439850750445061981359130912696186114701745983579341677194715979963667490089880810745973076755872139800077711359840932768697432073841182223351937763146594658360374518694908286554537451623080797531164880028819547325140046810657298262956604045543057306303360716236907256865809170029553196365623022619484823907137603037806515696913848839037156567850065686638424522703607932486856418051068333097247087147607474563102585044236349421170102796224664141554445738984646915045732492443088741802640059210556154480209977562615739861071558847205844774714430578410874892676711973047060768911883165419956053145286247382631235458383025189037545958633935634485733153259118740499896463625321803524255102112253778506290774388705589823577552979154128302464257550576270451300053443590887408385398623954955497015285306096291103201689928913455693909940015064986989398149816277859461816660291788853335927198379790775841357932335045463409493613349906766803236270689746631460417072321478732555262609603966276304628334574708777328444318781815575267694871446233064818165245390248273112282585516302068149897965842058918052261125566389333399133384122381356684056437150814302738131271771017221921124214288971491158440102640671764853995683777059972249721442171386429711188137263514541285550482199292068823007188586212629360671770389350518056229902162754319829194423867637007922480316697415107804053140965030714912869768977323645443333543427616038030573759551147277108421509625855286381341313522258231594639765417237198889582733499285957002019260214774514845607668038775350304146185914791899174061320446564274497610803100722474687993638159128011404767280534428250549100989716565843201576091408163299784942684589132574116266209566621134720651160010769249823493056400541224709065832327110724381703223053405037134358872170148705357564981552251376133039243569090924476271942477897767286874825879261885812072901191167805002744114294488895705039852381223664882118347949711273159117842544151985346691013411468533234112351929959960573205637424597379554464478365996968333522419768160325088755954788911804200649699333729891909885853245741338326732940990406734088433916622050235701335725945586591086028811617551417648226319644550141949943244188446745429529372111910058896702472594460640215975737105296289814572841900720284420067578502424130513243474015281368491852569202069226576815632575756091200995047113158757904186059482249442938793671698066891280599104749892086772721527699417538270709442885734623407178635769356967173017977223778602414734131180233468493755255155683677067286363895073467026719627803642695077138020596705656698309065351605873052094941254853733752704760214010585795336271135876308729942794674987340298979619332834216911730952487371041878812819607250990229099956353211125946418820149625694957405426076574405358903199123345577524222638362060389162084960831642964054014064097552003937378949332956467182443241457286211265454440357268060636651514703951477456773661309953580560710862864680813719874001198907446008599341169239019758030817578303535320193708528531204240751798708848438368578825119020604800525836573881429234100474221704383239389954405550194817095760517609993282872256066553364894613904836523408267929425884314444220091461654056172178570792051982317526026581190398287796671036549645518388331273657087178606133854539241272267829918841256859618752601034093082239250905923653479344944984510688440450400591023297408042629114852866825765242225971046993367518456954658067982175428694248569115873248334688797377349902937398459627200038625280080978332701898094460576010487924579516224362255959294470247081021209787843589190446199068278163601023901958564213176075225047531616722350529370210064026881746552877406697351601133812448243934706862918082398796738525221540030579667330184745569499769424184974232361725492450683957770695213822629941582954872951237116013216136687157691685603206775914419703271643742976935629711562535581572411285598297121634781081735808443074193978366413627405512292584422113993353781415279747644126792999270420232643714337050745139859262011200776651502099813859501520224809703154572814465580539618705698824284302361072908485046481500042750502399506182028580860095844767785282743936019508649524396332990904484661147962270662959355583364226104217490107585621474717585742016108837995551628039312663442180072576744561215927722354405662956345133014736478941304916745191538205928242303641072792264481627845846973996610243946716173614330196980662872611423411650670183138599411816437456124262895373732234127110281404019098053495276623172086220464379503155127502838784470190319305463572606877423460292502706317245733609388768508197848874230435207157832388974768506725029100740672625129141038205679003420799495293275039489494973726855846679528111106302793790282912216306512009781353642435488637695143450193512083780731437829528779808049100787290069539797013440541701587569897901732757974127027501985836256164381979227544060583596849811155780707072722684702416589816749316971989469249143932634255520123378316834675352996907945053797439479894313412298681879445163861525223690731377990957904245162836442829295713648655104049104933343091980375834857669479714611460342222770213782688920796194854189961924321711423566656730552452188730798745941865048228049146279612031849910596784530127874708707376311177711160707243267225339943668013626381831611509844410442731631834119125364620312771107743832126064240625825628536939633428611140467285793642624591122777568660760170633298540377631034329488693044417955128753530982931392220142205367758916777984093832950817264141897623190709696571560132676282040668649942861559132596462980346619137770601161715775688663069900511628560156130615468368899645353644546901837658067345633263680961850149608398796859547756576973800322481038825902643577576384384527331194289113647084199728000409549151040790303963202054940296246354216547978014357345957519269253034607605867318092828727706217525233922371772258579130210674899468757433584077704949663009976403793913337725723477593756260910684253444609779897655679713212843978149319567734191967972615368684906865988520783251560537848586214206438959368126640420056189410270838525404927537108536912511940130059995798839633026496216559264974651997416777468198889251033068905861819935794079222318720266921262278858554198678634840625172330750064404547701124320481055795290258651800834017102051679781860944993038297323596430302119494585806845081272329699458901603028515970152997569459359064099351389665970741023857807459120854222500756000596252710050365490399904439005713800280195348296826122494028524826165143554034238645939943969598823400449539388302371719447520914744079403533089382773272571758453035742092738121190263606725413634456228192993959665617201652970944169840695519472668620823726477843888792195874496303914116191796984090182911484185493893484566432876112269371022551414203674720397031581336943955827282898465803725056681059453211404349936895503980684218049021948295420276539478898506489946424324952624342275471179428002549550039068772878721511193608690994451797352847010746024367634869607790676382248003153593999404173282809285854164490145449808609070438935208488801097623746313827459424269539618873533436266694972567142516443677490487573867484666127849098732655737507723265798059029439048592367209460320284685187283419925520619803270301822653014036027516105879160638207295071499564578798445851109658806220977940423027654541081984714138621157781471130373029122497492769417708434136502622217332985151887770124709393810118598479250250484697624697893793083790758058473049203356822195545754701722858206892369212099342862038887411542266789001019291939571578335489370096514406865988298446818636789435824793479215689337386882015389660738160788935360747066385639878191068009067817299579289821225052420568259358739356258160508099767062859051578545686531402075045235335226330668280130665824487201540596813784144725193838468827585549415162564159304559753477192500612918719283813877592018446175224344292627880364019481813163930140731118211463834145324553335604504995419671837323376847299201996143254159086633322458311185107791780088004293010476714823809922938401483836624169108360338067490308170499760344968205446936482139647789702101854378258114518393360683573501242769583405586760463246716449896566880510235951082814941040454093451304536499624072157805901597973190317048558925652181768655131411622638960929355612507169961626132572661079884225255485016358661999364445042996053374570127177478542925753885325159084485573605449598984904164275283776432183426238108457998834790223909909310367134823925253857722265935536572803383374394361606448213417832207798268280895504011827496047937031336730981011564646419716755201903213918017797941837675852476645326766241663595814164055796820737401780484779081926759294609271363547322281533991452682195487023163927564533378539113820721460671276714852029489110825539228475174360549102689784782304341836117105771422622108029467756283204227228692046697679282595599435932932715458507627993542658419663471606606983092558447414573089009813235308526284984576071341900643074578413042434222308800734071217261617822293875561837684536361556400354555541491670605133101745332740512323758895422121193203060047056584141477295109763170131902579347884383973442222295857561128635565250286423817372816418677242742269770293695587592617239365779992734312305430971566414568640210178591297078171210838307618446631384923895785503109403721538376153568077439380074320206395712139709062469289418451596702344586804702226551736375505685431608570876350299755197318727667610357521623339743320666953341317063094548225984072945074884495449841270021194178656974554531299774772621292831142091065396070022207693752604910292474805179207110187497029296763116200067612387773332591322069589959336948416709615813981863533065355160742468753064095268048411214694290513486101845685511616755036320893717154171359260735582258367217722036506199902742540539029090602965190039872703837929656236230380007889272050690060719432545031557851281884544993177179566926983576127146953083671299114708597197541889970448011175572296180831849303820252364654239810702719539997019418481121569360165910987862374322476397598194947833711316064171534943366580540251650518549614623798971659328871759145670788423338933390709738301709625334230803725555205479227458378530352306484169456062260135208759878289933862026534388159152570620281232558696294166389460525802296458905702617758332879173930751637222174843835419038033316216707373920186707188712297169545481628103008521084004213605362296196479241681306569120283019394059528125499898830370827035659373575619744161606509907594942604753559719690174757780399187511739749130334064978706788028045914784177365707090496322687966660837889356956526098213698227450801577765971365805740374649431561715016873212608582954531827033950972091235796748706988752638675865416498427344269542796406174792431749849976783106030296947175232021804164649067146357996371393509430001680465259505719361926695805857400084299073946074839093130159026525647456513588373383758947318593510287161219801714434255604339967089541147353478429530734469392649068548244128083022225717625214561815477336971811848052522466628817314443737898291175296740283123434189886620289218206531602769123257309473798179619894002621887588846280439403255283842900439831766612983701731256719151272872119917684759799542474420713599576601017490943765535401049779090811058844978046315743760315295198598159867690635870252663942522470841135422545157014502818929631258555030900412151298737522892366923721222080706319995147255464760406048144133006079532717388946848732418704472693604645704657548544722222518058710497861669002321943730007994978502038140076346959758400125917227640170130927222895565292459413388850512085843351007153663783359725087289773535215927174602237642072413199795104994993010022137257904940893293669656717614856463625029198157246908582767743313695010604514896177268191036020599706088239613351289085810746326727665263356472091397152853533681198068605957683349672993381100985527482001561789674473955247066035312706942405160127411060482366881719877875581370506989605975998944082589262546628480128419783477647923489330083070825138862103420242829187905946508491153175149990185689712722955660211058630324901184820685883776923929032667685748865268469750449608928668939655282712034904365400797191221437536032598767420988542351640867714976198772509667087591624121017028347478822676696007789909843433497294289501607551149599388432643200981146684683479824985503173860078788181687286770041177979489946101562090061784110960705754247054670370216727444815628295899842837132678378546950338112672336132013844278069222009558901103800686716476768608928931475492805798559841908499133235940626416531105229407219166506291667970799526804339911710082919065796848091911807948493541634727024395293582250377474218544176260994509467748594332728707943099096553928748945501311663581543203144875728260962291581162387767784843984513490149767158376861925219606984236785510288406472168226329025866869957541087388437037527472706333117116254680537971612692201454889248907737056200795825285612222753937780826842965697797126914252602664117744734850934754304298757039448296740607391444065372529141276351443794944196710357366845567637771668050844877755877607355299174466574710321702901356726868294557675160268747816735900257142804949832846540641910549148882857148843183356887389339997221336059723261788696810919365531700697531767711948662316567767840575317819474749032935685581631404872997291607990187055952508810895488615715116063121380203057548012054979786101073461427303032242684013033221817031229542839174110457459517486679663740244696398155356273597416000657063282177710810538633012237619958362159651708784501813774091922953958170304753037475194284381300465569031789717011237266502396979489404395510252675618010785148720577518425295659097382512564655409263362359902352756470752961331897575119375988108439725083678094297836401531426341755148194415466886813274491351173894764482763370550985416010403820196070465549362100376998345589650908960373438392963876801917568624819472837901318521535839130482695305493260952193081275528955489857518724875843539703070470907360861506440886356348799966461330396221309369994566936983836738312067318901257736640902693581084836714652625783309582690820945994208973891486719020222619132260037749276658281301476723694175743698884571544221789368921287492846341446290604823218175065849047515028245490294045087334608088279080242093700556014955063892459332705678666503107330502102534893072114810110487438261681442395622054023194721103060588736528276855785679012822417777886345765798267081625308190307252947472379548598192119770681820823734543104226327352853908178251241891531709854941963963767803288132324392294046947382026834233949381280918669824503119674646278118936518889304062724113266798277656044767756048147027944812207655106390585389232545223632053307693293849799623159172857460595110474052447897887930377686493988941234740000786855599802508647895599632047261891338148787942139255353656657672734072002909535277709415917593355785908859760112859146268334424462067034940916750702917960865386109774000000742256259993742268596660704846378037475731288484384988163467630682274297468836170798564622428092856505827125387494214910818191335961845290579561768005187387135572898540923956892038768383223657560024865108690765041014451405300779015545253995914936997300592958908024979822357992985994363525841980763393755265616682737317343797952280646419552911462915963124661229927698530006653678553087090525796018482086337641625916738255799602781028053451802536122218577678901363058947403021380843194507191209947878699604650904508074257999765219281155576091823277407617477292928314808986572211019684368301993738718792390704629580093249751534144708279932735933860121391897366701004875708783513020262326875827340603998502476772480117541735394050668716236295331721470020174337272801787907850441565541056489199920145830016559323073286479957318680604232810607919419543755160354953409035199468603671673132343917254095534517593600608986109877378107780718514491921495211365545957357287084183021241531845916174333029548928505512985165440089315329082838303872344710415033066079208844221710452374815295108668373866075006237229989874845010225704450453635442309923728897093114002461555935805514996685333885134329857208039116535105703535468793124259791317436709060558195687982165246845276272326101592703343029691768250507198728214664650233378420064831968110751541976275847992216262491891032439972354045331742568067884530468087834555317298832219052172652585633662370882785229938629997874384611846518556897835834562659722338724969959810002117956287103811963462358510932013957173055516220887234390126945969674205609697431660813017996240500489777895679612583743713758194540995876661321181924139056491384951103609713913149325937161338574928982152918347866462856372802284657340557028108369474079377781279854376973711753052558998619264972945746068536915776937061614621096708749046253076226613533232352811958680459432149029217895099984130216417035110889066616155023761571777005153388450670143387358936513928073334569820240183359250835017406254638746612364938813572113431975665989125696221412458642033206474085401835239919064119656848029869621132461194778200393415407737194156684842905452119643788549688435784083812622596898852298156922954017950092398281571938539183754076503923301731104179523968515360100195928790884897726173318978800613069989906345991798340003970050585745297412900139159362484405440555441928262079313789889860875046980845139857447173154573825789907317411768235340353388885055500183149757705524623475015677537217131238477388184571597618932898055579228303453456852403918102878722306664623987568069290381985780232530147475340272861668639529344526342675678827651086551823661369268940830925699510378242197017098317233227774513392543213689562531598403835828513515267598033237637612203382265879463287854273458474744488997273301212255618470512577694203919699885590233781465351911759498802604294603752728976308070886134355633686557954017558718855443169399123526118115697959544810607171850546570721323579022967970964367299740899953634543154508236269343160865537637797674899351802058509401030024218888001032995545315731639420987708114678979135936934702692434888262374432369632528560302577367772426042537711530007278725647821535030260875706186748153706531275623238089620545783526349518684146591170122704767045464061987968083614723905155910715492275605766667001998025747064258703897592465127097694143184046763576147316087136855145406134939849206995636527695147808512524607187338971949641695243363924032975658540385843845272256917557568724778083907260950843585494044931757937292264158053660129791752722622432209643618671749389457079434234029304489907052655127315033037046139854767496393644246898929935043698185484824791357590596423189613984568485022781088277328156098209537950885019063478906603247345173968986904445770581033464349098368952187265749650723848800817856076348941074508375496578010946068226987973250325493806170463815738808241640137475817474129517456117607266466346298152643796645361317792609518566260472180599254266332388996859934200640053276383375378800145799231210063433701656985142361256673529022738771176679274401021013855980909692890564709570483613422778155382262562361119720675679724445211807769122070767649596612162697339388828327789550302754120291819113337369151475188350263172603780115287865931175476549132615388271070662823195556476816794113628890091889072621213668015249817499947371499125115342405887831967357255721363186665204220090158205977473901587288921778063318714606841388540053241335697377919291818478723779211795005181756521564332849822528155142516101024704142882931590305414046163628076787863186526664716705322543179219769702898839071035215588089421339902555291930731331018354958693862774864503930285621570329477075803114227520935072569367895377639406100033772428325493103815016421746785732116187287816669632770764369621309446842490671424436296844726131976726180151614185211372784326127079662446624850710992869612801092971941626782489925385606144742777432373002291295768268488580627652180713731457934818792947222495830043060012882026434644307539112620318346126704998216906238268639984945513699136734608863314549496706775986502571908163413506857136347896288437502874852169778747726056559286771621445152858366740814772225453557396380269756359140854323780898088179169075214250485720871249094521881389790757887588893841195367616604987133218943020357863490209886293198018430265657872635552413806454640162529337344472044540627833859655368816678242740108752845342620074255194814192397433521568446788462053668282054796206200291799363592575519198053591013242658165079554733883499303543925775706983463798734222376568435644383343579456196634873585401395559740085528375263213543993821748240032663629983988962921140625595003859933759028143924265324852145483692954392094751981300701448620439208550355277421640496954305928574202629455225918173034511668549700710774830236298605153137089331774892915750705544779425558053391528194399070250722690457817846588691760427486214666039089654920471474698402463048967070344444922378756049077380704716426742701475764254486869363308292835932588508933066072458006684756939067450172324826215441681672749923068911349783276783783315517034185765618593406865836980714992650870824716860893437988149116515984153579104604834027556698712613321291984218958453437745970581777059237940219340136716642521835011566720699130914128347615713051341596076880983069623160203186940341933519283488149918933461345022175510364476631446329000580375611845947394899829049730333118690888703109953644898369105170082600710024191063737946813917179495786033849891776637421464908625769300975927214240931590771808595297883869427124023778405606582522482485181811453182926616589023702973791356320869055176753571085555142429381005468456544533665413187564360183082936036330899620336156881797874850963348780643395127724222357371444313853995546419139902148504362094867719714540911247246796575567282552433656125289489889908580427053280420432290104705402937878941256436253129776185346419742698750850881608047191708436306094173580060650066478316083825369965015349134891868853378854396066030567528058627821149412353629437140685076909942388934662174961278320911910020087408870363162293542865269935935537239235836179348845412479012409852742886198990935771176069015634859935155551873580716781513745745353593728484727870219323538535753042130272205222241782934442672616013074344679351307109701438342770037315386553946636233767553463578570368864539038839911504019386592747839868305270248633691524449020193019006504063917000989969539553118514037832483417647993205550439282958300884580936043473600528660383222552073053628745364017770374051801668418762401131635322365445443932963147031330909669207238123313339412075303675378300306164141932787951879542759967044298579025692735152790487692874595340812543095291569039383578113920018538688622785679276055855714813327433915650453428735348653258998317319518809663441550804838909744737651248773905341120665087504057095162693758324864259257379347445072313622298827112533283336786623817680143661290906219845129482765767569140722820479786923279252929386289968941084828095996400704552840060172193051645770044259176261655510478443937151805284001850014926025640643652614444285973953073618429007259426384608141324048364167261259333444403662469556457670605949334081182873784781310243743699016794920102621237069671937970977055313344701360142320386612957383240461576664285191222966684643705408663536301065311788945237989686800405396072747798296146037662689886986165430940131243509521484143254123773889008668897352604212532365557032177807831759539866632843950072118874604610304795042976293327758501585623388090657531630418328038576555009896219564888707757727447833132775494087517944699347325933418192241923322232797964915397931434539137370016185921853555217470236991622287141170151283218459031990002394995496669498587588524673993336631185688767874550793251513578740730606711215446216135980731574391919381407555427776118751695716564844830469654429420665567420048652331196249564696658508619360766314940254207291151172669730153572361998263604391435326808752091051004822429056519801789970333579507585981662389502783956728531153985017031277616945772516428171514987263616631977607632896293715228341207926575069718456407152744399633065233154934970254580911860721675412941952471417324001517537141020151634445412159882577181977325418746077633999176144360743706521665646267023373856923420471340980493879323548729274821034494949458980609791581608975706016518364812572147005608742514610423419633280577368068347166579825618675144259037082420672572397264346260827280358203822202848020602525526308089260574612229479841910523579632532210989194603332064064726958031718587678850321640483189486672907188158932959850792057674792768158372601430834967530712941445336985347298896838175853599958617861030955099382646719238514346188588092016923186775092188286853609153436943833340525087595614218093510070265342238794609553788620077054271635265396837956062487087067716219131414011461821031645886237884999392744783215952412453127607561615936626666982413627544355007923783839365239749295078436705082458946700791395963516513774338449120810494977242438181542150813446385783195088100816677010223661577565973365402121753284426415846175822932645468011307315480259319118970128043849866913963637994352790069072328200954233251369664311335343645346709684212971207799192132998935591069403106953144000774256759702523179075716067782667101602759923323639825043324128711199461910175004310505314329366111737609849716773328158286370851156034445104375170730913535785207093755190394268571905361738269627211697200410219318941149376464025104592725481440509577885119895991241318183750425641233523842726850948743806696744847631138617350396171329901117515298954696474765063486420295125143348076676737902552541266514556786951644153440027586600428002224789435560889621139176613130310815100936529839334721323320125475569770625666752646724847888879820828773842188473419140274212597700664960377723895132274759291718544097517263050950309120203627725138073810735441785182914916974861334887543697299022877589668647966536038050611822564279015225165261939567729988701057500522560243721419669233855116788853140824292207171224581149202509734161476258558190777375978188571964618866947233700205635218829068139013967977566650416779150512050341327152397540099970675709791005534459828497399183038750520369526542784011020197742517411170886426006522720744531667828885125523105215276923492937286771863880880279293232744123542083846130361217260083360594555917784434699320861101396799926007326375848773290195514051973498570993956743317507520949321117848369745638753133360761518598133343090287398185191601782348759956732172469700532805916494624436270006622499634433667691683226751828567383237684668252757889437764824756869440712815351314093400133107480836642866888758375097079411893702462620329116872095641985029756750981793805052866403207998676739166723380577599535686745646572504861778212034404768364906573546453770519169488675922300850446069241149111713642577827029790927994222007030479000028517077536386594655153658779756895452020457333120265163153775598701142354970553990683045483972685099897762926694333805546601168834171148930592289185498787265244341683197323187508965351577695395217492438044165963276558258985730778935002510697848452648500064698179025723409567266717434137849001801801156210409931731351397058047130110370767661901013178347970892869817620069223755812153892855332929252367328335008212734150964348578018364532008259660173345310884230139634415753278286675313065111589619295006125479699971587405135960828490624636520421283021777343739323549690990209323980815868133630447356295203110328328503271813186257336989460113306222969065591101697351835993505549136971771346772117977390459680875660148643321661496830893661418247925566716177823519944593113465924921557650838015491581860723500355146609293135711678364123282253984095907102398286683620282779646106651188094723185050189476959918553691334214944719724304776509481052421428662001473061303358705926712023753512599971770217969037776001953019660397400698405304166750763781925978203502378250651054243010504229106579976210636677060480516720400490290149638942301676150987527918795325153316284270069494555286033611355291261257600337908356639740308016553281355439025679353626315018995679416598131711069579312870483270265242848620089824587605979900333124717428130260884363423398930735891657570044468571599286546321714656803481004266920824692232305960231705893286988692546577258524438706648686513796071125038743775798836032450765226724549220392237113521482488451953558054135034559250282482786104229870386210943065314865765664712218169874480031631124157885902342815543599189846493095971455715454521523220941347569990217940987256426701791549542827065535542487936953214255534047293095925562986261678542554009610837597730178219018692694785119862771054990237233657850319113509841059097832947782005982764237670392825593412537982165537494001668853550893003796013217087951728307582005230475909177513674628641149739752129758274159427589241914561351102355861262639379010125159743269491249988741912376950883017717951564298562576106946334161719582306113354659928820234088269975392920133345194272362988078990133862823563126446184231655723611317325596397690996075437488543493585934333690467374289608109265588011257681800664847110591125509595758109490735709280091987353238945699545461123289596102006365182678612874788590092714401506997613853765137983915050002186358636391989694893451318569487227332918952717569507055588781244432038232924795902403984012409744970685618957513629191412944078971284213895746683179419477953892542799480076039809889552528944162673705853756093583916503743563151364339056198287694364517573111363646670737214011635568258349729950851074267821629282765147644643988426895118381080937770599000116443823021012779841005495637058445441734901622302975306906961895123811908071473708644740596442985000036194537940749229144068636124170786209477847208573072853934904482905776176784573719979173104741499195385380039652639873016242308488018369833140139496878061728572007924580862835170926211827504447359812297519199469229384816399379241747699183987353274900568314624525139412832748359006327435852013027773056357218257778646057996068633177126313006714416570399677095894434933582372717684440171375607283196529820111883292317867216944192461894311156883741405234120453618535713968880391983686635844611685485451398364298019429524729741850842899280888418759364730979886235403369284380916428667560074587271319604620711905690333696459986495658607449919676238951263379460414703328876751639870308563689899344383826156392914607389598132118344203439822383894209241369198810179236720511705856616777217625913959352854522741561987756261028564114005735401780762977967696201288452611069753511346503622999183547691907759634248016365389838081426106682416331624990989481542762105196055418162619252344557189134179947822874286362768829231972681773805834722811662541809931426838971277294655518044548272842182512348525439762126396014966981672170989592683413385562514859183243315735672243652294148943588124626003572132968850461069180520499728443421714767493389479304562380445954864103803731670215625041395205731835716370382397818765417423406956141923457949602840465199823804419961384364416653780473215604937267608908128202504293695608964868162672976015013147873098583637148702933036456419400109967968984504826206783365336688903609312833058826754571410117844498604997030701898145071415888964639837531167007735588148741741051717628977576192890440142071502281494129180473531031490906211270304482692141268612206486814294241297008930081911562009666117506042983727645318409262328460041946781189530106440661907806414399605365183014356194258412014933560879506642586494953153147411274264865595250868947506540635042141195800763089314411207285682996278439636097959576638077977086204460358527839039092301774011287088075987505979871151340970240333157017872572712135272804898628124512569131529063988216510306033108071194583377592905067837511555490440671370324233666102689682186035021764135020673064343675518810221258030674145545572290029415665186269049788522350500636296098260679381922875605786133872910887212675067523395917354170907657880943103510863760402323223000459875225575426982328648198064872108802796712530277266575723098369286320341475126613377958118192293259378981915580774447066106680627831698419332200538733182056902410575898023517059028198587045441675241240629483040056769206449451352259970464701456416149212051386275268576221504758132268407594199110945968507842469105575247812352905412760464629677631959652084520060741030037532915581480567775950868072984714574737978525167900942498579151266008491563897032899381159990919288073062481394631647213956868402822149176176062188616133898326521637780950666147358789806781000139610161766780474756818277674775712858307567993793294493645766916639499287671104413067917527634011521277795144324808773697527466324317800232210175879406439461016854548835257057482058892395209581246013600985336363399056295922809148026008223506089685518595475381742256385361393843507422285232691922692086073914419167476475175917854095598435891093764457968995036031326046300181844461703716012467429997147431551284438658121596606587286763608407203066004366325968221950218301901189390966947758289171105608589044651432514509480737553542131124464951975941916698248315354592278336379109631914483517130161645170614097559061459444192400084957996299765837571133516530588398808287579570345948405278623955095263462336659511586647237181835557448233633227931104936752881184368192370594355128997592991665891053591746236897404539456753233826012720007621644391840231462231491409739405964374147212870405339456331494549786716325355393749624820641677566882499788633204526311988167969027415176255503913706815874916242140003308615810226909240056290038036785183939691152256152161583126621818220030054713903562780164245086378479525213160423425728849175487122573637817480873039699138849861748362854935160311243022242376819861638846172229880955090434499472613312788728456976344543978369291535935001762996200638251213742860862437731680178886383667320298568675107186473925708418576029128570877731035587913015093120804719518509031606680721234550386393532674590661033090315618345922536566618143987633207085339197582477368142390076102945938787696224255139092743388068093079899165696863904352370760602859272580302759901960206920743064724406779354244480426856651718035833926004140211970119857728239674410096464320230987432597173741174284123309726013818117973400031637776007110731778193795202449108730818070970637343751854369721799051975249987305451838084135390002027013808667775682213908235228016837238256097952183557850976018089816654092185820968380446927596103971012790014429332984086267457442673637354613852899772520179429941510325986550697130196395417519984155910372863366271461738093568499389468075418905157365460202289152856155818696190169928753838394725369096691533758286179587145507247666026880549907033299774974451204167389079487748510266059896697173957769048463724798000223002141122110073981240553149644317772214177460288621870769425305960660228786244202432548255927780628856593034754823864574569087809717682590786759600007474622952752139959102104132290904727573035318549885415983504897222392157113656062414890065616188443014705773636157457507106239824130097947036177727482152625691322239168033398179048409847806917955244990393740425677306143155438667481730206227265490608221613412012597320573360447795415593127094916167354987352011140031936365283548084780437091865955148261116480094024329377862039407391556039239322068852583564280052825314378641093201663522765813099386931889831756409752878861502339690152471026305965086144904676430290354253770449504482038047987663315492741339627454620709707364869276412260184837054822227769536405645338711845846360498034963857670332479541138926886945896444138789185442274683743423582300422858486796261288188353694466162775359026065568937233653636056077038452618826996347131137775273074883006468243305106648411366822707421595498443147565164258525945937136115128510880988173031285894217974787654812549153173578478886053483277051781142457060737584751376516703607281241059213680050172390623704353576972026680597769461113107107922332382663063942995976769031232624716854906492589729514520213798040845343598235658903311957130571465369774687860248808224293383994028040156871963440004713739853739269553642730203244500461496413497532954096422146175570180001596146806107625692956699464357668611602514243899543212102609160424177251737974691823821081769556898463447712053746049580619407332068937684856436536378196841758523456069235329549535982274871527025599095707255877375933051717135820338461503458238947627937930195400825136537768138995510430081707756378409661875363111554306327465658847397058629653080325708340363071775742972657819552770996077021005106263784630094957260227734715270870317886233932186448818737686256629494293188896763796038550971034818229507681386574289846877245206939354841454905983707760300484540137618017010714796989154681809746185442210524236490792835059530884901384101034004064448050286432237027824268679396531381029559366523503850266807202938243286544623591645234215934791968336719773947238411671112607226520414134065964378346964855095509866253427931521894668530016806533141132702174556626842714254665849619469781407453756683831189366584299326692556036974253361732686766813329282843975416785759770464769634747833830510047522056222781401902620775520723498342108479721321811046162674675346933095612741519042691926882962560218075636305263957920802900974446648194788540227233925628875491783720018156077774078346614448842579569006752444486393268522984472960347827298978060836117676756362039688459711294382040638816134299070505398678062713770818365296038570065098196244681276148213021744513011962929121066560170392661525230367751789005339874516847915059103781200680368163730405604643509858076172959878542891130771226956925369833552252273041386182527051677730040363399657343468079914596812656643150803929030676732377110154571532901547807434376670190360691144883206265466322210662384682192232725533688576938355656334231249119049202195214121535746682236157828761794609668064818674720383026621328891844463281477177944989904555782941691422042370147448729302412596863055450343266665637400221131728509510455496029761740508501356373083239656102770076538191846434139732963306906884932438322689500709774872899239128325334066775048357186683890663957279670642031952187027572861448882353232575611008030299363158006693743483728429153787211271324224711643032859531598142501554608593556495737475707997713313904185930789937756091732272479196865165601635787576855054086732866928082395256669328197554673473501343933284657007381683296040028449830991638932432059003535776118842715259232486635379597940415443612908340314036172696025870451248112870929666606251170072932487617733134972148190056213545467815317119300673707541557077511175616745535874376048989982744483217042846448717263816436996582096017057784072475915130708169457440443960669057176417721912575711249824151620888132440152352053147706931139351726744977252419998255621861589393005803935983272678310848955297281885727507877691249598544938812938592498025045800280192366446681238446181604466168012223322072001212440555496246102475162222883160532539210995848124569433066319184941114224297128516524471302894734586884732036570058545844528686437661455962865729677866827408044065617283816717735447206086324857466703957697615497338820781379812423977619257125332030037855760072185209450356388107561978707709507881060767627768912255832006886716774059365979753397532297987341235091239055782958584041564649033614565461882303136901669736046250519358579706160269693547968908272508353688193139991368558269815934550958622009339053801427130969667044692830135036403970899518982638966640659936322043251383467195657096542383285657779869192861186365985130132357622419431768399362087148194410472503569720716947854380610482099777877214402768531971854515064273557703147064677971776803538843091368706480960168321673992939117522697803945119701048082985130183300679632612171788160227253542584132962898263259046206912328972716654097280083564501641977921684939526280913101800199900794066387127980487333011549162061566632490549514191325952482731091870408935244791913777590553270495945952298914521271668902513756588903687387419573270427497109381004450267385799839064442927007192001654982428164042315893580173450302887961086949966523265758214967332737033355407018340748483150112475479618102113516516803369937837898395227888448879079716492125380572098070875509561640675557171020104745347373326926968394677777583534266240754793141881075464444184919671637808103674803205734899573772584582784257328602957597322282114361039946539643327967346172362987505805744348891991536839868940575072098649212219487764619333582988203880731181672878778315892691212753720334834415395389198435925351115549614047187510158400541989104906236828750416706824272923535231875187619529747492771890261084555956049648502944738011335127036226824061127785329888647903461625916922571546579834459052299721947165033607766758198630353805160132404921776858261367883585737032112028701029982951088968721644517369643455291195358296231810355633313802803066134244626566574730791021145877553004278409579694110900395419034726771702532769183936257552890438354781148129069809283339731901000058712979414119509358188782556300346630209273362377690018562892077134131222072710502763242515765069674412632626142260704129467601296795363878348574671060851337940479772502555333838715090506807790984358940530257507245336572664911503281913720371018486627115483211513862265719850408401876129683326513104159486955624595796444627426901412644046911992829263563820633276462668665786825523176914115178474124574361992835991444676644914143658495388861514554265276106373935690295265612954224957025605963759996947792940850219677031381487084679898957644565631820496982533355827998186367692668227361498099734902137280835158322864237683278487557775902298655837598117965039666434963097213937466835246602893128249984489269495208281491263214955866588793628598520055806518666956601300260592647973012422032807453255881356730592979351091488463891662942617665342783716339113356854186005627579131304619122666813287048269471548784625059162421526900069486835571252567448625838921044335329563435547858966749512194750314608327903655568136296448712938882907533274404929749187850752715872389991091262284196102399057494067583993780966600691567781779356507626407183485512871119472393534029412466229570898315665813527628503808438307949031058530131444291996010881750315584742340278053363054309925997567828270260970595037730135578561893924539203164954455903859845958539858795324623610207651193508815253898073842995016655751100585376452652164205259458144171303615762382015641360001085550922943058298361769750788169811682444030222869275373307411841724680037244412053455880859813299193015478430130671289211450303884926429992656694151991785257002320164721831307083166176312233171617778548025656059453839767560144880659082173188407750057781628273917480314011281938296669522364936003595543706961546486800620155674860251563616633562947655845810803219082947089101772148659128132122278656462380760574123342277487490621016652409189612900892823943323450960799520596119512236881773862961459577401590728566178792869934892658815684122034120025386680754428411279408915083263677741643062003876000820832999442477909129414328235656165539199664144896262223402192140663161638835207260950346750543616220503033213409801239349125935201176975055468697721856472132897432798986921145396436426369642488687198671275136570408295850679393182747108323990664036725103939258316116972870408726866109095497944088449779762561321569580182269389159297822019856074995606753056985213180291679738830671199109859344927375435342873981537394319880357400975037200952118172004890280847151428824990635458447471320852645520835708758132461001872855992172081316346684860933076365401948275449129557619828960498643087845029916338382599528022277855018550316434986347391586145823967269074952812788322329808028123683249198389386215067840649572798918579039115192351956058542011013107585844387945408687439828038467736721567575658791319538239332294732895234521758107997202863269267755221251470768652914883992092489874395449933399332254583535662921234421548106958897773360619160423804639626984510314802400917603282787511733381951175419413478451811976543234502979939110091158200283177972568266906669871570731179708573677605505727660233293210864525827042701853879393191794493784303909704047362623397171240858512913762205511852781760516945366802823125215896582292153842139071366693334513795405148641488929865179721501166852835154863703789765319332948186647132920762725465839104835972974460078557046168896531207471351498414219494857443266188113320071413396735579544127065236578204391985831681221188521835877085147920587681907246586557024297678495105483140137861247442955142975106653340956545829545356539674625098307526683024463323996560088473749913213188608885790015959324409388846924689867227160056035030973815246201816376919504306728585556106889047392564554351625912479567837458700584385661009549068395721450070660746230725676148629087193332435031655119579996382112632415782279748759067372593441255548344682250452257824150943048255375534529420118047083035206654504060555658285617632665716920723090711533753697892387488919160329800843222026760693896910571985452229349561031663092037684580291267420775534892778849315925060061560332614433201247470919673543376141857704301478086217049631933448949410054886962899386443898704431715573157230211122608299839608461475518347332745180813887230912901293378362145570362614178407074575387101358220507305843646038395717114065932930558418621395693555864348733505685148614155918761397550145145658785096463524456183491812812993058499498239695649982656863773792915738989279093511837128478517713200427323390375049113249072586125214051443757334119194232244254601913366958999372303791280607717970920803648291093338616057206209496079585894347426880045317718694645366506428776417083242089407407619728474409807829084341213198542255927878103098896956872687108766336103952462034187281235282515208641288814472383377768307973241590048086331677393834136280842842357911137568563676216882720307890408165526586034783598456935040081171482484798844315195613889711280695783118942830618451776406707538423944914955819775304282612607059604732509367951586780790776002390301915805273468422577600704087724203479273025865694801014062187825675721339796705965955655529131215430526340598581515218642126964238967863198722976594762804786270013294369478368086662141248501290563269248572632534364585718758468978558967983409918973773475174775930043537343965955569997041081404724656580668742367239371831961563389318240389276825288348336082332237069864182548860308999890277073316400426449726202554921835679696904757970932857607930470265921488560343959351732266193885191375818816498919611461573070825026856894121915167982347778219337199614684488911169624780966489010348910645646117694142490935423132334500976345318182770894023807672684171306136672692190794470624873012717032127159868130668375673424299935333663186620190648929082779482090456041073908777627872205672389611851558717697627800627813590051939562709410599431144791995557533341343836085306249327388565515597740835696370758057587260981408159621324923104784812255620365961669069324530334625571554987567982040972230791245112931223745996844344165261755649504476093701847260290391283321230623000243109737450413545569738202749888983793414049208840835256440826893020580782803492520668642699692007323307729175463840064276945764073790222812879222295033169865838507624246912522367651328598329617600639785828945299539683794950828589809179736048512815442754521618645775402498676681655002792376561572648954682903188908096576674725051299494991211765122345493060459308357253145221041107736098021430333213141608982085879865135667179054066630220267477249231301342014113039836843012357835644445347716115197568732330165124274478780245834901671170031947587316929221883534978841552867163771046786919604878955565495436674721267655546951291933056967941339603981100400635382472625513883649056371173475008030875124531085868253196939562513535326356007971912864775915259560051267526512269400854235992437170739307558885079848445882478574210907671557499811294566831940630535191275074041521294198598588583073674917573643107253792414285942488805294042696840157429204561310455783535934951283126548145170156119901849292845330619331568887846005650451293238347891935559380506998654054513213754565717920662605979400682504543345089566845266922305056018297266984479129290388052110598637275639883910249639979684243045178628969202606751090818650194695657533037266670917675378566330208917547542627579502840974497927671090629675783770914050917524301781844729809964305065491522563730529947787265434708768120954030323244459101613450233885893395818320284898339515362057924270061562822626106961248969270911449148935444773993280553258963648580712860626284687736807245681337813557626784030869593949042175652137107922079401089735100998403193740774348579808496901197982309772614498946032517337117192886922604218576905393365150068636610110763353790053657543023550781619225574239201440389697944196703250314907340133239059066874025533174593753537517464062732539272433878384616843874006910477407273200808430637923806576431722341655579242952777358822611488471867324316561553174704462914856491863417852069530275551993534052965572985689968583210572208351629950533616046824041877686653722614043906102883618073944708245982589392605308574268115971467933779802061955035193897332289714543744429866361716374192445938041996039515754284272492874594496170171941460837036574825666450058568531443406880500392428558246805459142884741458704596661436307724544943118453104796357076660937040020725842792086562140177113478961301038163977141527142646768276244800053032375879967333621986568875085088454805643058136784077710405670052088875265821305436910160931287364220695385184036250216099253170748855573485780893092062998040395632752845404637481952142640145749910218146302007682912294841865526235491546987223010908454164282382949586675228296652230049883425007839296761871023865639666810937995903177480543535206312479370898197568690494643729767628279686199327326044766226351052628372682537157449742082091798259638753775189880175936987084886155415698163079788028898604565886963160210567261121191651372542398848225879254366701229876398369434321092790518370654298233767419374989417911185193342526647982722838542923643747604870231508492266886540891794783957632674048510903194295264376463601709137311084516350772471362831400531638108194707437993679567605468247275836246361897392868268365082678040618606520384322025773708109367432675601136859687016843942101558623631389506704413067408673174977447685680353654839932976063346613937564624849770748104430254932455086915105091936273255402091298116812658858301642356568594048317573204577356056679294456949810283200426175219408184325588329061561001990609951505190549589382065855606595580361814223010692659310626163382434853009560335689114942154730529132522150073984621268413800029118865128496209194562645733839020076887349203258324753829981706065332941945666370684236314435660595616928189446664539867554080016955934200806856216014540093360088704716976882789137821741885736641374939560094274493759671871038554772354861831206989813318542103576637204939783120006401587249747954007038584063476126590754877475221970763770065923339389336663615095128655608987460442385532787450999421561771924185399599461747756440786117460369239468902666584731023024380615184417659708345684970146614482887899575773019948044088853821995071138829119651305281661975020470986512759125594443328542685798170987415871908140493822560436190991633388015777243039705117433741652384183726301639794680751909010761943561087743231458413747544831584696322200494473574563970444194185266431904468371568386903106325426322109310154969968061529093129128166180379905609809433191494833164699399867300355163094762037045122706813362949173548031543098758514728221039720611865266697437660282655799508061942586988995422045490026577001167457830630511883102791828163339266503925710834821336362706581041432413305433480516795139184830212104873916238807264429186321732953489782686690171716637981948203145779007443962962942537229831429159909665290008778309529196960456925141316447427239026402328012050616645905102632812296818939171636639057180187552146474984511901534248770739564102967087158903848153046115605214431538879911673968963749143164875777828969057375190552831481713686392369356809184449232063660984614315390990775091928628096458479284523989289300058612420974779565422349460645912903976714756029054942301480057359192542415311554528413343849490527151486172978171589180961894028610390758484846566762621933059461789352310544196317895401987600335989878489858281838070746796729678349997089156484308701731432705764293854497069778387516675620764299309394537250149087680172927471527838069356959981932293349287437372407655418089671608629368976948503704336580145043602535165450033211433939247272660579297742197900826418982703455390339466066134823418024628110816228048192782657348561668694750419020578268380429204364953424521638701074910068016414256300504383441892461527160524915293377124927600048165439799453871591346448457110125166480123925856151683949361980423354870600320487008756727626228721811732550406364575504743509359828365743172055568589038960090372845921330111361061391153283596568083791742577237974816500396791248421293780983842575184529761100215014021491725796011664299319123088217407247704054794983608366479187868322223437985135133125368496915038031831101739630530491738208099825093143232353330250615321524108022780591411067180469797050786010842782972115509862001571080876460867988727294213703941259190574198067933610806982513664031798453736501233934323961714147023255112524202028877980446002771668576647534211724335493809686263619624936951463899898940318944803466280837116814329114358584853974125252192126547557486403410512959155265984791791308661590993407472404570445395286639995038579448935078867639581806831540542485472429119824511623081019352961226322869803098622933899599649200872617390292917958808296419608704849839770657407943608373968158752396022659025772434676304214646400793005737040609368626064087584679963661921883761174832220090439429159591747936510444094527997680720578401896074132567728131360197805843301632973476456622027772565479850426391733835122288043514809188411860538896196529111798116945706265615920047474971224310793452442689595773553882627175184136048480395844056615547349041724005839659731868751367357096162085265184099409669491141410351667733072713906164398896352335745776178851719612401180868467298653835075467057913289429569362247557085988366976426020397508900226160551193491668281617876816349372800381117176632237122619485282716667263538590804352312099189558266406410341620741040794680211454699624200124073845285020641250511777008200290184217384609976317978515711818847008621256162926864892584604297391537857300690201501870410617756102435009804193340151233705160328261069813643707581970247309673692413531005184047478633325665381034123716053197606896598762895939814890850652415141614981393865946721599183481351665425858581119554553661725550749375327850239414517475374911731808107938533199397044139712456549321403026633917122037689645956599185748667754934813994653514731100388012539621259388138868034733610325086428164782332845458281686931954885476650830490270585448635088597852230786006817439666358797828863178624571251497130731020026534574156541355306704324305161900887902809591873600557490522731422191036354813780721911400807000992181702860143969168982219786879410637727249250922099108961532259500367618391163180336431286331348704734736694515446129012526908000912731270251471458927136454622503200278549282262367363545006543406351448209219149363008313857061155428182183249077530648583214171176110103866359938343834058803206990423811511892408687663414991366581952009209906474122521773119656307108252233845960630809557697757948133653196289658783205197939741516986264287693925026700666420387995340738902802650219158904528640514782043375847514900863568581759729911931327821507805218368173677696506945068406660477818590584021428807346544180289013128253027978615861716393733413251655478229262947171191545808878748051129301126745648945382967601145406658377270254715920967666983981194922827410987707778283065302153664890197133218799674134266425768933572102859873076536830241089507460032013190972458043841140481978955490357718301657330933187016210716456930126024010224937291428070649210707099482046803524290804561075142757569951238247079039998080020858236129931989732774491039028728936145965818394556219743235299710285577060183907700528533803447097383280710047377026153062134142559452806783289276944651347810788592661236119506820758812964731979517208897885159724180600131605207395942876248584079376097283824252069087615679889501570715412608349301486606449800644581755594475359255940570885445778885318757973211816529838899083132973928781687826876198305666691491671620502478659265123884305845869573097245183973505981486440220293582390569358648032362391811800326176552554259528140428956052693738354541574738732915834963484539507760229335683440547880545774275117950948154000603844465345069439844470481221858129649834610054755607157305856691276267446091669508094555907445434077423043697008995053346818836787330877803076269909057343983477326877927175494439157139465079650780346250071452223372755686406656382920193423532876344770234520838085466112454942550732215399303775916254322004331120861605714981528213991682755326379939936730259622868731785579435709241723674331898680585732337853383231907756823903698499953109180192013702625216829998077569982810076538376089722131438993548536554673024092881969590922520073436912871422210417529642852865063274053753038909019182189511561825039844184023446478796219012958786930535163237494723846796526604092329502934807619869105255736227588915733550601859607165229746622978855809833579359283666598142081574438595103913491917570203957510933752537105883301362117564642485714508052159836481179580328541168449564642446303916068027089889966953259486751706855090726409687316693689531512418657856066052511700825870642937827345706776089665791356117580109792200887689274098606712900845977621778977196759954636958088796281830619551420066212012146414184559613553512194159125048798051814488875565406917605489765671081303646519431369858924946655076799399796072040959527508441741631147615367889734347172716740424479269182823741128853972055335605521679769616864554391012327263620352395099744303356786740990598233681402943442390803177268017100598377211110552929405994698686996112268232323779137940707012243346915680597746108097777027820676094573059782395031909278735808309037150437564492331521315313694545450452884173188783160762422353751686923008900444752685029041314094929066911527088304144682063356824078025914323116420884092288574810910167693060575448654396597513570111404140998148046980356447388874301448911609344241247489165504362543881964063004469747874550561464227195123050087446434105216406188652433108996903625956580371456997014463701424487305935099334892303790872360589445003717035552736691046597364216738129366909275425798072545663370479346102945857571653272049514201390923826757930016416575071900569171657754454312133190793756651608957840234585911967816347836880637167350961941429855367901998093909177401796905165665643406246044572482957220094372824957022196248588460952543880498945114115226143456650516746957816341813974834337327804737475891631060560420245505636761402519451057705665172026940436631953214903317235449440617044369387986802439740826558428186583640310762566202497580438062419336838099882272608757716098258153682771007399802607511371015925838749693676982676253257667550220417569584675483476841963080580638642015351253178348143495441203030713651636810554381300396367758544673275872979682597302573111094002021944968803005692283147662640676664646648711201987533856951487738340591335760890231870150145733433497346144250605361860941613417278525155699839635780568903004990097636050174092379478155466868319305753624652459774095250207123880816113062141816653657511007425316324435417198837173499237312297667136513721789746026336622868215616348733251534172519717692154608228350096003039248385712219206303922225459853283256151196690591099631737234478207827353280821684287378680058316357921515739538419052157347182090240918643277691691689075930506200821328588965488371753426524663969926195280242452819874472637249201779557937363764171196172500193485339406272833142286455796001709909505364062476405252134317609178859095270697447356188288686162494604732678277612428317587715560293320616425381784391949313595965728684612527109317869295324748160803049488004644713321267626236987255535288128923780224938168939619155786128018086691488323004022019900158382645634821941833414030383967167881125884430502690143296330830933625614094879303815515013880907086443397709865738062834898500959995300591928370817495825991881761339401595783800463789070400645213819519662907802604903945444331980729176663905915950771859888180897106859318352824683282982325992693454232701850126221251622339967452916490330016777899801089703141185020514012051475071480615974435088679779311547106055040941264626959493309211852016004696354692194862515854583659934070971300434392751730566686368965945688540131205924521543508007855053025353133932184705143204913902813056585772898066111773890574997657378824494718640613844631016890497494862071849268303734433893275569356266803441982215602970488986099457901892342063773805069643175802058286549513968835542141846693277505114632453002333567921779561839915283432504072323310883196781887855204328675184558194172318409464703168852656505348508599623036312234864372541905916422101754020659331362525104225553751236662953992664985402779910112978662440812325717892825203929618867630488536039752054277650914027667324720085002728320057276247194205902043416054591067275457656125684884016450484714850332891773995642154557855749688669667651471627156607059519812091834934388334625919484551932213413050054998564124518704773527616741859807480306531607344195242472070964610617231372882102482375726982284477926405359332363870164970189794967553643363454011173822208986000517734687462406774885251217714241008315070276820214295978388372418541734325351335988699563959531187718843820485977784193044132224820675529024555340597678087678328651119038622098579288850649593894299114652249859251058771014015524100364722572145014570709600643680074469873839438258483747761542436580677506626568684982631760510004026089386198124677735766537461809411722950482786353010389522883176131538324374756988623395078098235735863714944745761228521799466621195002218773049240780962739255941333578612771525289425194625511703820260448334895530736884889506495377925706531468570898567990521075491507317564380467288186162437383168755460485857391832332582626274327557533480115094090073631986451680426563998500727897235457249445295237712768305970537566887838694145794192280249160761898855496741227101289189433784715109512853041582430448580046425317356867284475115634394311475983051063110026010190540843382834779444999187751521562257412330388790779645404652007027877145971615605603796052359780764328367588360317192195567144745760780079093351434506783095267693346601992759619875198502217103522095203779663769386765905774768535714832895657861598755687179599751344971081997996208794498738442118431880825144833602407661146340316286914507722199542673916463651621144619791596065905635221466587922054384516638909098605312123837307955501424970463160356801963782250262844896171200076009373986765954090352909917958241040602206482148655302274348369834020181764439934874193772656206861055805528632981545289644975165768547920482141190453638880625814039212500024604116536056682959456060126765746240389486132327225816821120835179117831414138055082298554390663376815618508801697445623079659734959922782842925726073253377290770740741911474412657865024824692589780719852971399374199108234845740029377506179084446933028373929958455601642049499787468138482061505444232566922363987825218940168076838309324108292910261880606917884834037077767920949261257620151657063689986819647766100000263007101205117708908980340310103463780824181248311104072200408322222267172861136605417727911464008501386756648017101173171174866484413169660954200581225557831692442547501253126147363892489909552833817858741759341112455880111456871502378127900084753726838616334566706480758877284190495171569534338861136397998604638991557449626572351231827867412464795953488400582171917230799734595420583777560472778332642225694035697664381330228263837787333023681074463307174941465528959210282442268224431308703010711644747029827263217977188989667191348066762404352408694229689232420091684301015177125975974161014173914724878303088450270258520833999605010979262887192852039664899711301649452037757073622243550917041428735574027289594593798894053603822873787877137943646247242805231822441836515626880543072569507467062021186416008269218203629682492623760559902467568735604576794536277707598642442854110221885450960652229116322357236912404348186785022450890210952366652942828195492759283726473506432387363421724881978486366241531123974931771660296879130138453823965672449658621803625577365673753533525380931786663835424040140810327954323657675867460702085957154148998679370228644453075041635735582946998672460505825015737963960695574722017253301625227464056912374711377366249046252297932399305017132889137153005682839242185021616531841452234505436414990395073200121607974879491824919933968416315607771236408251868139517278297949455997514354829620682477627307695477845987883851066361892184808032641343611119014949700739207015849156041183924871411605596003279106779655938155044780410812516855255192091233782535818173102388199684840291912471323309809313090382815433905672986045195806885921958103847114570108057621731581269970552650545044714673342051778330566375171146939449453905458020720266649118964522751141755817796562346409374660147764886882645988414220095840394004621939467814610331036327603254772062630701130742764036551888339968140199682285588738038447476720270134880041201553582950738462117819866459409867518026553805520750836979778963022731544204298141317900592569658386486915225380501069470934424639993479420556655112673320908833418817333165301425889075659450038837339470499937097825912511873815937098228321597609985971912339752354718584526704229027223668609875874881835688453703042855016561403455590008074779121075427567475097721547128326586876936439373676205810044999642476963051014037294182909778782368743030895210911668248266843705095243690787216586079156686907484898175925431292031795667251612737228940046526240844435103283009858550251702498000550640901546782997329511627547776334485707988758592140809761348355424081893095526897255639296430149931266198621541872576128408525058852485925411491622039920436097659540354807138450780219797084715199136041656889003643879822722732530836704357697101028630784342179756465529675887553190986556101216747161124813621415609843549700970529913625850280136681843239742209899356395487854139831665511352515115549987040930719960326723561218128050299967333785026500230596440125081177883376497882442834311363150513986966672621016895558977755607673601800049970862952381014769809278279816306182182173775464183239185717726849658495845355949343676420547177827744180606745286074888374109019824166300040387781211281099835800439179586408360573260868637465139592403728127609369177581032688203002032365620487744441241270728674453453275159002093882413555944069079304260283385963736304331508345612350141560215338965248414539605877770502762011083319350936521234586254877713816385303935468976834243098718723053752628887056375342370154671349847812702913359977125412462895347677288267932740955075721571975369372051776430024168594258684211116324894715908769525620331140587320048599489201495844386180227466647897054616848157833535195224867933968160496910765419265774056716759351005827717638796856111824295451669264632793769688996620678221920947958548186045292730029896012360181244430355618863514666445083707825118485804483895691339525809871286533281176761980446135961209720918701337217557115713231887038989395794891608370220138753272822441345238217231093350886696955368242096584940685116584019056663389979963759896133764476593766835321614877071150525670964230579793501549576474073077605928169569963656690851769751860161764585253236113163138629096680386800519341638680426198450334271619909964922711800335177269303908333681325728909618883293679686467984969797395499768004233298969373018344601427609627565777541380839182981419431041247463644924139905392559033003849541177621502299106576972367097132577677343817520332824214461790063593081851235778139666265117165780685740213248417652514639878214871017371676399178529669335475619803218730449065576827495627848188310447827928277786638733720855301121110063534488167555337064654825773189784783587644177071145406331784995322985538545217309308682437502073253875537842778616096486761369451127705875373294723406994224972402154995637487683478874959661075699486894168278588658619070830841126717856607345368436279299412597744476084262719028599015957761935384905011612586205466999012336325077550584114404266217276507807469611864502397686951639249765771609940240688265000011422344703910147080040878516050009637655295627278473157592157664034889642685558094372305209599590481990296139778558629860702958827068773084631031255765164125024854671051010994787330132157340410897142170642391209445950728185344379063741536183065521461211068489427310061810636944062016537729917098753849888470099793552599470444817046358538564390186986964110073192184391682032331224520179860870990388456928003768605034742765443361888901969020542964201042147099986508565984888291574058260969767921397859101367162045010227086788648023558249853010725352876716913898226012369382591141265959343567193020940252676393458586387095795679432535764065354437573904746773572718931891868999415174083057840155900193382544967843557093235149588842703025306574771293437593441605828655703566919449448318161441167564326411577010103860899123908658211040645695054091249785881391232872317093414079164792182357866098127857455299571062499356157819746358135862536366187937644535982574077033104693651039176714682200571244323476507486826351493503819503096444906205215391808430897598477164322668617435581247920463217301019408430030608998101946706016889194984258522847079904785963114161812331251521189660798138791662741962644545188291048617486275418471889902290021344572153313773500999992855882878794593563189133957014983619415629140971697011215604182092270576260292597926964981707461662340115479077632348482258454202404653697096493620549479446556409063475176964841182079981497260112084991017640682275190491824456344095428937450954962437625874779298604066272595479170749126499744777940291438224289542540970628593715047049533766564486148027360472895776203259272332347362507795767599036697190611999784440154847303449381666487765743096311751564813516535460411798656932532790992446112303168457538091800692196582844329382804550700754844782735333601903633880349815445377230970729061698732220594901093157195150393206546629654577626229324965723554215559456521686401757348653490982730314933650144720171524363864937402642256503898412311726477391137976476739534045450255572868944170456045709131921893901706216121894914814923434916204657883708764422669820146129318243171153547882556160610421053287644773540617613321232838461819995421177036238374843980798603559823054568913687261779771112294627300686084771852358145877539818040752134188886836399939180532229893720129253965686508522318385723045951311014163987582495643516286406277903171544022738869536600990415712092176077181809734442053781002958003802098399365988094245985188421595896718677584742616452420882968499656549530018189891856780022447305307316015507400119197037060496048409839014872101522584634469195631487576593377831355835713235422923997629489672536446012970001925010402763147878095984473820403279851762237385187573294980183425074482135538695740169245074288491003466776439600456078212833651171782139893093051604479864381517566808930824262695260498748935419632416707162756293512481500155628767650757329170470895413761491402949088521021990977478432928147993527258722855707841441655923250388337115810217951577637306538656686731303219515991956250724733472702361560072238406870589885622057226622970623854937942964149277256164740744520765118943152245917539481152199008702492883869151547679279413133055237373299372546902302336712784728651412056573157511794457035895168329284501440216411790708010238884397887236387023030063442010706360289278824299059319931690406154626453336777815699142162332646635572584454788325308400818730726839193664642225955434574270273787795454066035896256479259836092722093437118028519318386971633761082865699014021238108973446633679442703894827409350318209798349214296758782327656843105021358340330644889719269540548343591897565542294423155609107006155347711637930819800771707539568760627142122004099589035362717994485783117584676109349652325237724302925508123104271615518168883096688406785142985612103403157781223907275901440583937567269417796210056735580626290583101140844936334090529901782040659980583288524584726820161214917892083349889806730889483256890660904078065333822203018145857024531755056656184033985600392269360102949415694948661164854883999422567204376431198384187602138704302759630705902519554753389709772023819608646118975811557406712530760700330196710890597846170705073658501794218677216898898197252219344208039628031927260618761299559130635260153519631316225816000602523020531851372525711571416141899425849082551338249843692984945793964026792766618667452184042705740031966511777718002625630522728588130619430565575818407154616552457915201177980383760887210483341876684091209920957881029643585803614278383200891551596098895744150854359444449218155604564676553994519338359724659489238054200449722372719822644399417968185272262376816746182962720852485406992448145552393056480605845589494900211135300035651241014316315841880135676386550113401379571619027334355619183432532974475064409573804722997452615064835109890910112717069867409458320505217475142936021120284427538558329386790058278593845744279370232432367756878111394776138870983645050883694222706605972521644690612227406309027130221511798924403591588223570168468983814806868887110021280512988508784115100459198439784640738375968856944005462216558855534268057397159923768573868403188416483901401897382002421217744441971153481400840063643891064606087811481083153695392263447548367197664863240259059932168422326579012427478401334515930386896162272874269458990124089344140698533943553187709622144781257521465418944227740586672230664374844400143913873122235555046186447494220684124139309794273606445910708753867874721860728775651501249843255803619966454960907495683594074426363574362930487359216598409714162508226647181469383026838806413588419292128661847832809954800105367195388434044396784707912724043914903020281464768035710020690143785029733252130103873521611028167207524743222263007199470209506371439833232384198744029485530044871871628243503744228022803434478484959149019315881845317175840329411808965084813642724922741983322275755676030242827150672965166236061909725636663107265247552517946522158472147218553579679391117182373133578420053975262336781567137378118071012422778678293991009397108780577016592872014745731342208997892342356865604821890051600435575786931262630918159173714188123013488841846250814672046763936991415465200611582907199676365481854159715456402813885365705996059958275492072096196719717627184236785459284373661939622177866024210538976719975002553249229480253340873050305351554147330463171486404462110945113227217746731493620517079743705217751115521682460290702245956386377464503912736214162794334665104776980624050836546168289629906255893397576916382024011950201479548595938066084812486142830057219337583029215312611029474961451698898713313778896205307048493577012960014511134428445049803862384500784807912718910758414290680627680491508358251241323176462731452070146706674735100937891788755562459542596875295217166948954106771693618442214785024924281005861629374368523860082639515867328776745153762592603978762993694130173525295956458933358613107491004375280411302374447393073886870215107079603497556392063335476768432619366949895076457393293048893898200437381433446276746126909338994988041230542570876923767204786884886108324691231376023020425972797277447566414349114067439411012181303127992833049095687738698518103731641947556465382983805493255688503456081689037142492220540859105062543839235249346124971425658480938984749458078094230167858218039711544283039191591465152712567074741660188112300640483324561251198399513161735703763390178156949185818231170301081958720718718344078464705515089579940886579551537191245089258872518392357406127282169804732534941080428154774760158681895454563272444946599930347810259290735170781533660376208880372995770605197415960075006439420748463993269960097193178138096272657986088503232198946432437042207516754404365074909632829603245222761804344812228428594448316767543454546281497988078058596084853360235572576012064977655300498901327657752837786811084096895029558215383347274368097907430637200020338068275920037305789840245562647950536627314480762988045488371718101395327829288886594586098137268846186898417237384820863480025305487372105373445852654866871151064920786597528266331622161643727791012408328275058912634720562000717477136439386674985158999662879610889833450517757975854499992495483942673683903925799236258888887603571567430835921511268368866443784338521435347299547215411958141170933835267466816288926696422163929439393262816996750799647618897131886717639179823960983119367336232328343492904799591459705082419733213771411380944767126883667915834457686023286952920808829021281638111841355511138617413397513193934631049093923959898537922297523323610614495496072243250282526343548513831603696462778261671535969940315522482315866236291090384828158225340870616465822813608663489280390679463197694246002987508193535560122494069239100285160477731041906127723815592425165705630937547791480673534655968703947605789228790902227837923976507228251721403518602443992714842328132252716453384389821446731356063418197794372195297709238344949709649436287376597035564138969766869402714962579860591422020763765310250442404729057033864597957204799249817980734281172060489458860569482036080550861486889792704552953192829462478484502256040847266426047731294280532469091937076682295065558311727440014954373797924970944329642928340355256540418364522765034877437902861473322465374201825237437315482590029863062606327807328249938119127719749366362450751408137430608711048673905548549690052158766783638825441737095360934889862484945335758662124863901052188943485543478165545499135283851773882153468063667658436310652624344333796743132065012286116035887554071368304820632560571782778157819693036646589490320417838048908170449006733400290324066481175957499701715280370199109884348329928263251081546333937115705481616554672456619743957625000164607857339776392715338624067862467795373637364313968299004325822166522977815245712280232013687157849415690687777755255772900890973878225538606803385061664453710629882252906308247347934121292486520681636478685733983842043031166130784958600395113277845918449490847992313377203351138457910251615135036930113357699568422905731319426736244718202325765304880463012832553912231826499764785729806956135641352332818653663943434133403533771792013354652566340102299785456502798379510043017916474039487350078606441202898454495862134749860879193732849334120365710095479895685127677547729972448616306773229761890084525949566488750989221311557873799823833942929568403559868707246180669349364581748601083987426396494399437274134079760614763896727419351784921040636442651026992004644408614944138263711923318660950347169659357717060397974079976624291925067003741551587877832498616406388294260706014297592388789654254722360978034503310956676877658739571888173767248559036673237650125448603521617069823618971826742135828818323952580578589543586539631374245848571212600995981638941309597728980143750440343734802256512684733138211595955875223303225528222032533589499666617650181536646525428876330668473440491451126734356763960128007113355933200906197558952259154395411328948886877609827236720547765510316670662863960794213765693056361622628282630032691598374689826978804578494234837330257478473088911883031506798035910400101280518050545460407613254358970317013763586958937387374665020818787163320208096281819321520216291682181875363073230621983720849601289000922561580242975174741440290994195793308488530268733590266881268640294836321040140775059087939488113843040803024658223263569284528422821652981960855032535586131335478301609997221599835678665297108469456861980303582025567492781075023299060250463488642352047379669639176465220446042322143154116980202427078969637694208528076566543428057269071694010970918759432615504555723380533888110898486256861826107627917712093987978126446196032180605701726758760679286091597849407445321961496822000828112619630321646004791947503283088032953816306572691886601306483185780675547195107213251679858352273882687375248540960706118631903678260646745514594052990409876161434052033630421357183206551278375297875283344239113506904881718054937140862145239655089677968108725917838383517538212066647730310592160372472600231661377426404405727576015402926662102756988448496471692548737202230315708276137201938843137397447636643587937655166375267478133907012331047182531778539465737636716117367170880266853160954739870703733324116091595102848294711533356775579026926377674025975171017066036581445971450754608482878089092042933177592551716853539963880358969865176291988408469687163906554281555965012838837603511347390702170724662062057753658173556200332873046416854126149511698410569766073146146621478690752455697639588599542139732497225719697061161653248645427412424630313395675181740593486640129810412664803891044056150313122186675766865305860846959726432228845837363119220657845081017876119245940828740400991660974945913057836456376798510736519943121808120622775158872694222772713384381328586473778370463889624021641978160148336825843120005609098302671550202301536745025213222433103983329222542194299745304569531599741533358252580857959046381056965663070345359862165574308979604583598426030204814094676211827505108298853171473720818225779930473174680837906615794206836618379637639912320608621599056988999520830354596525813240010248052549836392632101597675618464384545791840640446453019252359664971840713471376218111713399683224850908209304794254010701902829533804146989613434464561383943775965250588620225650124521271321574071459559783579122732810903106905554724728300445724602305178151756443083934885666403508280038596208225493636430674650406509347721609291139801941845562344661970917598422252259624764735684872799978066592966626453045351005111739648211470090798173916970723416665990974617575277160786509799951611015171500558413732818599514697572875081362747534160907824669616461023153404307496938806613289767628881444307797109202161889579618055159431411431191815298274921469494628794759027815932713119985219112530151375753175947968701428995601687635401465939714687664421548755482595638880660781827933682591545345423599726178532379047088116848827375490876294624312511084750463133599651437608461106296605958674737362625038313552734518296577679426694438283868140941075098387612550785560878503581063639424473730770279282024019821091214148028651824669910028628036000307047148241414631093250517141245524640243928913703269988917504126810670986672535901802773092686499881869635984044775589945378345386965556526790337373853263849661273701369854545843444146565828045131832367764681275867426930640368845012183754084536684118122687827880764171936111264918517128980122518996562632185379144707882283375849032012755399142704205063816705303498635467386529994111136531535867802593673818141252987432878643216649870376703906044505913683982030437769866462054222699464782987881780741113663101328274795276881429219657132153955620147419137072434125875321765509663191926259332897226704806719413933999470745607499124939667655432885935339089134605590771526863624797420338989044550949928564366756753727057064443228913572422134773926685588131313677569857637310516234659019784166112493091843936986853526015483595269287344271906596918178396040576705378241747938480689944448389052871724462080399329220396309081902621611258846891932703283800242022465501490270749367318417380874414228142440421872209182384746716884733631568027460700771914554339653172293186539017180949926517248064027773209083323299655582668936533469488199177548037936898622692231029227821148982781460752544084333155633253956968211356521160884839564175545855049977712798341134908893930556523257596516313724826140259264654438127394491888869153600567960792569848898277341199399779231618068413937883882656730672882175649780259503257670646893150576194140039346941031132518262494669628317121508062593091688653668134559219522203064914123032394132001669217458232847284485194596790656419375312763502647965603337579717245441634328035299267399731382604282203843704479379901004103590094127943019647392560643384908722406721889005719028568461137875629693247827266727852494723656295391604024623035980250111368562449402860425330000562277803662636511515789370701598235900927709697300786704450509227289344693575773405119453496964287524437178963110426568619568575373671376275871461416713269708389478687188099851783095161361871607916952500846220976281909269048475565117584140738442810466905755980165765303387007843957967506221203573505732796400128021454754694535879976697776370011830186946601047018365653513267513666864878040351166106693491485811473824538646358148873742351661301982976253553915148129042675836813911499010914062666099181198025305158853043975437196149451879659800996089573453320673468032291748728991716498806684756944952889652567528597173361146061506390287899354108547492189884336353699020381799129524714095244612462523335895827497322003759761630158312675057935592573952559119661030440947013674815487404760852115973966473391561114621750630234826537357256276365152220545763378903411025884143577310476575082708332292181458361108118631275463290792453863422185181172293186637935788759260640676938720449353911537158206544738625726380622881603376969247936786996346592065804585268048349960261916423615764181019736399389668313858993152689180978955838277106498792758213874891128982575865456504041070831661299300232655441353479155197378924147157277707583509735911260603611874271283316965323653501250913771510887053217913114776746455238357490690932544148646008558804741290872107413525561012788117884413704765113354230756847063104343060161563433857490924035147077401405399964274598671774424096938718800785826645086722911960184797260826477467456108916008387407917424898896431575589008703555359329365826863577291965635076164709688572499493628439754306071533021194604545516829270812621414937161410226268716142147207915405268221969616909659219870225996189489660822785933441743352615313629098018656555136898152287517167563045369159985593634080734924150386658474467578158065293809671599496560359124448699112820176641382469579840676621538743393420091020978660192362204857049635376351048059923027189349562436032586666469620544880182961844388667491233126343516175957321396939120673021307602376813076708362124797419632365156813476604878320273784400300960198932181587686063917570642591652341589057684571732022192807318175747317639617356237947075992740047223385198067476539449165736107354673128519518982299043086289274868103009814126810785196761521710929871202876038769161016544904112731794281035211516305475929226572214934587494424460264230971977887292635284558367111052341033788319938471461069317263923298292112525300162305616046564005497242397344526507020379916754140398936316055828130004698946467526058945359918673609507276357334033989896176952910082724556064724928082542638672041045173351165438408839912025832628410715775039420686395971267399402874257887885475177542121686766265668009154975538248370160659443662317792841938733906753903090284756571211844874526490483578704589542286761293846674193622434937948655512992022155474391398514541266950954675841111101518955153506833729128085691800163870630454732047730870957282878446500265348855972989871852385916471257354175056461166556980843337654392302289656692800300590647786017560394555700422153520847596433895703426546725975641618589496888515940347565235722060894706873558413864484906734166814643211124695138715450506453086758767029419746464595177893818536454743259141839902429555290177116376730050633033454556850609097761727650171280833874411947559826746458846117973606964807194283712566267465450614996819408827054962321064051698714820694111954360672906465374255340312526646479873849172563883814540171095960678852555129500439584277337920294919281126271735237493623504095807074993845994048537654747675498298717638901744263775545289378948564583309014304136608419428394713019204194392819850086387729814615419927383683030158968082006210013240252680004436088016004845966871985737632037905681822918648287991959758765950046585770913667817399426693058630182343767136383803693177824683674702732262738362521052342762059290184832777722275371208645805650636968882464012381900041949714003546875364167252588596078698529055626546847238114990982151548607248798454285418609619779160877179961779519010155740277860208089806363769530776569506000994433558814476679523013982001809544777733826678495621066250266448840922765502609781140823188192077875183013870524017216791285732827274938566512489183042199492233586872263839401202095498486994070498406346741751742125217451706383207923841701241913127917085512398899355280870100565057369326365605695779153455282260674659009748764499170949555685318597323404077856763090893717042172047150820029813735965822867401713203223730942190391220342855949556309139303765756896975814802403660917386792938330066477144266525244522712622055265512954329368060664761461508512896811776033302136675153904601472507262455619829793784226077613065125949569807547517269924170457723032884558117941961634686080872136662882496984028130951950327491953828190097459426935837998921303837457969370099916344507041540725947439894710315412810144251163483091819682825880019898628283669006743963549230808627908118081771247940069982930728646524222913237623052101022096657654742391749812012501124088174517796442320502831391026062486912658826187214471861625168036698369055862382337198169182994275384880753502379194701666264132892545357117442011590403348625816601468384797147852596607215913723591767745535414230305316589196734456098217866164953742006322176252425543288058650664629519900985451876230303384728357210709141321745302829391692794028370925267438555327084179637851293104826471301339225556022510898273200419947108870789593755754962496259293412217946344489205581069208534603053508746821648478677639154562261871578837467615667125937705547267027977384709562046855089377985773464639396591212209321566818726174338145513284239691693957261876075507114971672761844904304540716066922247517509770111331144736543332214305845693078782205094581562986752634426908186114792821977409048722751527518632854071346296678813716648221685604435245736331493099629945734776096740592461487844010262418018051394781356369295831376925773241026157504176637236253691509197840939974915624464289578743585067032984445895165897254357114080157552624127778630170875398114427301181242988375249348144428259293136259296610152524419225204145116899062087829113191344156757992738483000123134282306648129253445129481883911178817422314185427194508827462722116170708771832796420566156818687341733424695736965880708158954823620022600116837052071306080791941633875249401471315516235332383627683170289615801628533728363361669066005068366403818227122820646817908330090855683425420400996232041359075926424969268823930773447839987124635492369230433677141708603271735982421583231696545026447751427737049850144469295657379471356304291447441768470562588716922166360718936920360734082477051207335053874796455804955273278108622367061903813249347476162350607229310965347588389442491733381328460386800938000540110139193318823228329304097197415708623337649952219258683065395288182399068495262484088846887148178800200949368357879367735489867479072960197067032182759740093491101717195123933354402662112788145198886886528285382667026274016090039790470605785973712230531666345223764534132948114591216024136786074291556798609753986695016324926441105040414352373813171890981238993126551266755867260388517045477844523652148567929642923278279546156058135198871992609412843786500791684044466877964286101597204008007680221532559788305708105250162156595587117195363913379059262011758707540339654559793109355289019316608269467221824564684489166674122938840374074883596157121422706299541604066279796929439471428419080296426890856266499884514861281962887901750771896165046442473634533909781833265824160843214951296517253205118826748059349058934310033913602664323496467317890882863494042551316681620890270397854756069069549644889974789487685116593548642902934307277283935972364119468789248138176404648330027595620114408416523367090359850135708930786435533482168184382184882179163507498598508825631873562695128717384151917337654012694762027143441250883252686934898066509319532838271431361777834064997442410062120332188795023440560081913942400646184021267902563626849387543097026954728385903953898976649457870756255555400604593961793798656909058647748507525745627121742846538911226699850896770077105506136108612910244111833676630766369900327476103005482882802532129629725610211809790652274907356850087504000288017871823307362405851420920874319111204819911245336816384554101098754522051750496278483242389979042481289261143295909147613569398885259791933152694717244714386171078202058095810431976304695331191705634838660602668099663382802239572945596007440672026032726120346044698692481844422277737603003712386077016341775607578938252139846969527023354905823560743238643387023654672630298787424702525943149418020021416647851211847002373765885895339638850772220181484020626676533251558334822458915378447101173919625950912211147313103514761783067276205353869622230441313492072443694174224748181436017929998642756039286209554975646045902279597489760085185627089867406083258800826469476576635769955242761865117633206057621876069601096914287117743433635023335025130996298408190004452124571808404384168270677551527651323604760133784882628855248695542445411999854355264268324018012769980336915394046512084567008470467874843979112932289111400217391392732674657701045310484745290833980633998432752451404629453518350641783029950251761890474689499391801332912358208361091883604535262048106592114988260028255501065023874120657103929469024467542696561958581248347232570423632830138407674322645916920247497129152671806968096699227401106757457201017423732940720970215160734701255494300602244080220229397460160218107260556593266672940761297407495546761112372056666303249397108556364659960929055948007871003601377391238539600601411548279188413203452424525093494542729740965150407591954972781837012772306249153620201413579432143234724067594238020252877336927068195349872477592770867490509136729743338964221352524917184479071858971557344045798429775281783394738648195291566050853187562062045730094105932040558092805810327722278386224431159689881427890480832840480837477063838663154051058720702680391730393569430997779437450335790319977342303494314602636528612902725953026173270490840401830639574012191302705951140243322566574096863484668476697509935561842089689315171874016939413886006372178545234061849432523402363183063262953176246665975600178348454102547335944903836826438504266733228653228091402312730668860858546659414890027530601986061839406943334474844272594105698033529573842478526192247342373663604879847910669456258217462965248566062259203223041352632361347161253166283799841096725466096014387286138204924436316447701335190369912166504115400793845674859810362664928115891044672088343595612320172373878900653730719257673532112276769396127886079068119052001006148633361388675352291370649046100374875690634091825015931027841639353600777949748685663586459800614619512523777070618692016034189581227419333485304289990819700610279283444528600229883016981260894148765906535974194460993956015057095041176912711174183149347892700308962884283193189828120707784156639243628687689579213878938011765699162805359922423893028423210978074892676838976666171087435139306789534114009738586256648080140470263749674715095148927451044447327273531183974537164067579884376185618453133231639561215911613544277768231197155965612577135663036559939639372938485630136061574790804059218915184954823172651638623609322598075266553445770859303883275211472850662949724462109278225996877441792445016120936471996318209362574067476120838493922344183461351010671966927837099195376455568955602235760802797317727568375251011533914401010198337093610826097037991895313991807983243876911478781717363693077497882743558570275901558616327369920103272475928675202710871549816373281459986353192380491470629976933796432238737513799326489456302275188827051085179450255746526512458501065804091456494068213856138739811728051481657717337478314689566015254508935086365603428437749118996585874189014055564356838116063117063460804627112177502533632788386948744810235288790007988221667322921819937655470227055245097276941731946503619856220155556414153544235827375397917233436865115510894577475150194612216863244851628371931122304664941777026844726492936603123141254864526370333089038407077752687114985804007066635079865001401104083307083550885233809793361887047331918301040389750639310568424928222602913993661713805479468837459498359418403043277938580241557980161915191733931425441058281808218809445176572163103701721588343221726937420995684553545238296142905508404339408006809862199251168568859095776740978940255974211608463947687409429847188571663464762703277927495084955860938297269226667745757962516279975152948842149864979351559239155204755686131809318994937952998134146044452908809720207578031696627478906683867339170723380894824142235126250699159825243684552593877949613167839861328224876284903325110314599507951321522228384109003932748772783963129673301168027360271211819781286578830251246373023516082213876959948098885079473246025655357916064600953197434153184475257492718055640053700174241718008249411496601465162787524957984118631228407272517331961659675973162106897148544735977947387426013677641656355804373250402496851420698379141599657656735922706543182700691569550568611519797385158510758705714494331234367299814217792498152149196013282631109053084848046643568098785684488620133362981762767426258509504328447236448665047959028668894232512288638947818628332615767966799613967275535685580965720555089289091237411479041189329904696471203161336235330978259720184225144397193303461781641865057382538840595351386103571883958924247352475750939736867835566973400469536788381047044646179362847106437425772195604095352848088195967373610627841150864225072285559133433865602445513268840831183517200765030104102117926123764723103529221891222697801258934878018580375588304972747886951216151875517307081732366287859614024498485663031918167790641666218959454837459900045348791811701905241342309979289514983174240566135805319021679507977039494025357913275735918523889971229622445197728727516057846585398351287402378563286551191356248202027557192502755633421017765789400985304361145512066897712218349411788917239268217159957638318588276599019074841064795328760959784775705583880547482679501393833913060996260538262449766014236501560350167800925973065751893587124489260706046625597363776388608865816830620583256472777868271585392530026173000436814028711141506778267728505964613204725807724417387101615667655576150479883889232727661896064733153591455877174957429198539968203829272234406436334650083353767532005191690825787894302882411939808389246426243820838768333185721584408604524932569940843591837187946675595367501145217857019523922266091746847325108702428099709743650110319943631122515845534729439568618298079706132937296061131663656783156984593183584454333274541472574440281598653650874476156980076057141927891546721244565803865261578242869358188235804160009091103125767747036087840846867914360749836498826084306801042131258738593807041362591399257786064295071522476099896717724504534716377463106332924149776826794068884564494633238551978980334784949233159625513170525734753069857580784624486846781356341172247228447646211240903351436286408858513560256502745788593301467588277453920614940885503546041838461346576800102484381412430935613387386607288330391615830050882044915076185690671222543636584436881629599660134172622030540139820679006349158785023669937992671920407865587401274264187375814669732764515600254932716817512085798921317576608455385626446505270699658017123487069710251566456784656520224134352062517707033392788654431531318040332864392263692477866225814359648390210779314557057085209631544003031876551470905187674421050901611502667995431735249530252361468791106757710907789589736768336668227124380306953560490338597220358769372944124130208794372900306754359658406772873542854289200534597792848644756957168793482546666744593494522633111400873870903610986778139194179775336186234239182514263828196882126125355514584111822378322167331654210214029557617583405167537750762708389646006702908647551404371059764190133648449990316896407199731787945672289242164655361788866619274432838769580053605116335874329678701249221957028867875345543421947227487847093495754001262127648208895085376361807312976363825019540818564806117744347987023085828182297684937628278565647868604950937124051162720528303370652652932466758791389053702388256126359527672736504919965124719389844003368347761964653104045477791258240246232690518665752035442931687365004189816069742246972994588827499154400591200642953267977910882124244723253729139425385349723010714802173876479784374044609961842133227672734783997684684376365683482220026765120806626465016388628579543376516241670666095230167347912730337840667439763809370447866479427579402423374117505154189996121832032230502326072400909607508831401106832469240118133083032945418585703522125643756473522597888087036499916997942823387335508052893913177493698378532484641547134079492614251129230386424389896983852649900195135757019118848393313358188498186056464305333093660143634109441287052135891541307931715631144909678312793482716046367559280952229596472321375262390241257763590771034493480715138377107716291838866067055587063283660411230058891878334879325009956493953507283133331735874420645500339941293621377493226585270553885648425620210092882911050771131150403017638853277571422627555631907767841385242062653928281005545184481679740010794713485147180421062454630669315332337832939012282127326977369769232012405580092742595322132406897915724883251408532144777060913488553782106661764822010559761226374645353212369150952573778330120868989971559276203962655401542275909400984031183800755410708099920326349229648735127805502300717525697144139051085140880080797025599297284377861602949520835732817687941731007537454012070040612004925739780052158353486682586615565154841999792736285640022701860003471432961165358011812772507912370841716172143803656743762487348027994646590775950293071621676551591374925844913461903276761183215413007187738091482913179091492365662163511954291503376184122697359949755316771065359326838460972363060374252941633806264513395114601845032965879758197328473699944258128051633424203458219938797592399277612473980175162298448287807467351571255649465974461483276932876655649769365676132716496691717285194853423377017915428036764486415388268143821561511025467913355311350994196150902168427392927090602573961494893347681427271309846404616900185708907361061043539039760988345298584773924076748762353459836269554407823255932444688662666031241368529025493180668686248449510056543177531138182202195195509020945310106353320126500763394660872309250416482907545052022989995138651757825087727700128255834615739209740124977610604844705493247462836930222396841143408002682246077406807829954059172372691981303461199277505626083584440598719754650446163091044977705893643457732637162788790912577948384753245506598916262901873013113854764315429100044096007011373416009444973135505549394864436601674413465825728976176714769755257694694767714922392785112898331896260514066305234111090506932644254242792318699091499616728801271743121974543590216034818404741819816153798382850542853801944259319970891643545641919450409219931757421777286947946110809139822455735902304649848740142095801331284307488868473635136428703081056902924187616839763085493294637901356589911747787629902785511097719285742743418437386885798009187159077825403823298612587476321697157858373436213985871303822706150980398683620075315265898730725824566572250893165083457006349629960110505634642338413390614937448229667116653055915970843629544191109530111601200154838878689079303444914209814429879501247125850076630616227752668852030863553102523250634815373092202915824278759653938451489548152350142809045352171631393473311732378296478332343400393979332280031795973884715999492871900377530492944961684228163081345898890913075771299120018264577194992077445407641822841425346028686624286145577488802424731259813374432159453572154116310479097763218353365478458878260457177146163279421896471359210482018273089014364631778486100467759149840176528579977588343409198529819849533012140135337754564897733823415491430402087823343294135323596828570290652576045450245250775835129760689191356195735650493697671353645918116336908997732525595674698799041482084134487224470898022594893408943020401010801742001913048302378936993307491290490121700805222812713235415751030258362127568030031766972003362555169572026636937105197479106839717626818518163698638407552601667194993350409235463669482863633790692371920936811129667251192791528184584440834309374283081322638157536335128574414868938609495889286658914513752857817925687006969614742143104371539384021290612160926492036386761029651361625766626426441904854510392326098561190884665170974231890188037512668177914213943922019287285405190552484127383525811591868345070467972741883663069521270020697350082708713293303166811307764847827367568979784288421244081583850740792733182687176182622945854290397584604460846961079081956496492094063832527103056301405415456638856212646814449812606911833315460296653334646738009281082325697277440529827087857518660665903339487085496522913216617977399756130642505831306282390887971178440437086874709095085259469029878720689836826228915660647860225079786912322231414586312898112453753290230816969530339699993217828193099820624730456060137134755151788620598770399548313262371656030942322178057127901976919462989450867188674169855569888247860806629961099969610783640044347093991248730581021365412551347098786559747891848112559770194761558698670770384375375126632202947560989015946507109278136861320551087077767478738398634087839930063868646898776884225180776095513317933611129257691978073348267477524101553855521165836504268312193619228159829304206918436946457757209392792493955194179707492068883414497895561292399092221965589476219631705039429119422751863032772161227398760005868556624864024323537882111551537772210706355877588805447260576377246521398580797243442548443987462373662116009091341887086399978222805334365169485071657676410278503481697322479797566922188789447708232473055613469177537315389332742018551670352894425458879478041479079670748801075778060642585544381809423727416096968109068645939370090535551775571301551651879660941554909459119362442138907221834616705063648809970646652168968176058100518583103383978764767605989234088464754536390566146784237418720405537604376562295898964088192481634282458541221799005182023954767457464784719515495349985578733464356957037061951573292521570118792161344302244341511181831727442575799877177812629687205573620265392471526429623529387513665995103845838161569292483981394465304917556833569517907147830928595544821084871220713416275709100168259509964640632210628510038823464716066398171955950707754039740521626773219714394569960774739629088132648075552822122548664245244768227899913030925002956885497300722082656776592368588448949076215551716232699316382923223518621300825337255453138803371756581114185942222408048554767037180628495148985946856428747262513364925026002448483508540264901102109496841280402953664726688589663568488697788005302389491469726421390305368856568962198124427905176351038700626971055152335404443557423152064483662459197182466397963709287995380980642746213631538847874521571903620074358233683727347556094392774466485223717423166329394438677924197899315236983037661596117924903069185039482278943725132028202344271514688302748953385901398894729728171997389878771090314613517339320364070060890647756134768230231110595867786372668815716652396863450610394549684990977159873241936079497098428714335992933950880797071318950528327928842561786258607444303397600635604832495162833780981349279233785993842164669179375417507754493892993915932160266091141145711459991763184450357363641497484993007500530179338450452191134851065676693681169093061668875516184964644969179716651436301175419587004602348403700442044986595029808300241297319844572344117121142150658127065201854542046890395136190128112365989452995814601433099628372974411047969415742494499678156761973377205641522772371158566516445570849984515525641610638827955096705535301285994814239556697495757780559310774453625729154882083645867276187548614406402215110845588309682074281404764440146805759312099676500817016958007322240455162778004243520471307178438797915433625393061632358612878748369317676884906302922556391395236172381398222824028083120108534986270633408660226150897639638984030151821919281345131628473140397571838852421115980056720420361449612345965003569547358791357793671565774563054542068799256562300834705567869763133086711784103090798960989821595018141458703427153722347871574829432374774961887749265868244646833802327149868316889176052980793283533291815942768937890170346215391601976949247726927999424848600683104175122563137606906675717308505620609848791626682195972392558176256433122424546586145334417994412271465751038998544430806143448273721277928022612563108091000215192541964650802046578250025032200319782229148784187233905451453007996850486024444023255570059824667320859209714841092626846613222534234698093052090392874577436753085105903239041121564029525659707683332071805164017032175652990153896500424311280158767467940698865424572529515541764455816824233176609827910549999449407992244660826825956986223393015802221632508902892833789653314700096441104592032603519534500307435549454977261914848164056144727228436574402788032509584292848318281260206817375526803990202550007746550495760703698518601447710975809725395231290682394132362140827843507238998375142194814300862277191651515658937225298124863115860972177653408248397735393437314338717142808163036466612518231497947964586277728294790304876243032773327285806830166785318597961197203572745163918106264347244732695784405171830393027203702771051784448989750695373465513269594348999710460236303668195346732127369912483740521293980733867368527183399846721540530760387487006890516823851111978875082356371064344162447252690533310614968683781285705398728486446710410364511349703867460503876080679206946468010983952048079526353524174555773182994166323896913811995857527279268981076478134626619514317637698367553712192660546012111402406720662569410510172131544556812348297121029800351660982638331437144591038463653121582763035133884506452436698065012701801061903811971798514059226741373836716906027758969336380212877228131531521114913629347499406803655315247324378886476092684952998459993536851683317552422127728442860755600760636476087468381091144002076856668847948244294971957512837677398337563809035555118311991639213529865159424941543371141889440738638011559665435433370358483392700825111509111205670938980843900168521464936972454144151558901220692028294088357071991629595751373497809947675479376935358789666598821135165139001685081676949359808415359068837721023836164305244931607641232652633078743694959888962524756603781592024963670732986241967729001128885362748972959499642939182009432178437364848497480993018586344558146577552579464874124473233473172788455268415721499898455020284885830850784530222311607079148182265554435418193776045761962238116314852908418402093015555101932810546168916979986101967217840965559521261794097446584204651689034527650633825910147097758479313220936648934779538915007937137590592473274817874435394835516189031158906105926851844766169062415447220205858799053475259330282189458630648149483094025832185273311145699155561884338649964474449089675355335872060890892423298387205201818986594594846143942232484098228515333433053786835910934163464260095967215762418770434429632717940987083785626317935456684469370055384770483061701923864776103201532871766569810670982866316288915205515153352155880644082755363440554411612851494868742928113862072884041750980220974923674089243624253870806864624092773658312471598845576966317792808736663231211527614692702954814812276146618072518970547139174223186141190471280217779798041781139898338488786578416227423253758875043685000017497097734913005582036278873866776986015511562069938766512552825689302371732357705075032104686928193107103830070595085427973228440556848991216499846355217269981528822698196359558312062930417276701772645707379475807192890614307140628520176886092782983702351166382268512422479747675184426461057713452890319218350495569547925164646569696318571421527918307358570450322176992317895439834209150607395794738579650230733283972070208046040574844533828089850893897617929415955302990682793993129491973571432091218555881994045683739443078325797344154519456650233074889906440448075956453563032856156521083759840027305455487763517809460036448333214387910470029420473629978459248216474719403951323053440794778938388134648062335900856581041373135123748382866549430164087388705105391614060153957965361950489761917838496563868945997609726759391128174014005547565157160974578962313955505894058320189600943705739261462387134022556792830878691548991413773648447704873823237573734384730938079156102056171143943645187571023785377175767651717150170888695454158402724846882728838207952151757446688265381030190104641696744297454028538084156596473779137058461759915094529612499320387229973009432349915174197357700392653574176252282150040227330733378329491022793601937470770190408444944470201733884384593251088208992251083082744838494112487877522657112041206622274123156850900616408485862676564871873459598269349231592099338014888940094105405595028817408092372354448633417577790148377582200065075270308677315783258188061851647937665003904619546995768590216523312264042523857774071967145526904364760624476028272439693209423781007035460106351878389075448904060498083563923819852240714682452677562049244086360299433727962099466933952694377418404669158955309692291476855248047437624833583037999698517050595915501965084403520572787849717144187811361676371634244512942336288035599706340109356623970457199803207696657409775660079645587117903183460475602620025299652973166460800388671206240600604908845090818351469003643772773286048673303334099025266578221500542948814975967836108613620190514476039800912772865902577210450797402393139251220957232440488645547443659460737468445329813042699201305919626180109791999542720820528900276679767882958454651114517706181324180781179783493852759853608448939299057036267772879350286269060072316114361556810384765980446436200856424638071701708261971601205906921873048043173185283543355327568928142849236963630860320907208440448346692070508996603326494282473771378019430904763219155220717520066842540188970301348779376799373964776524200298889507011715661518935624491083649095799849032150115154090536678616511583558004900867772309607222654235695313625451143549566157493100579502198161475037829862407161292812976509175970719012540638938940679370983001543362297825104820363653806363271359556561888598340121461941988111993053658348359580801073712118502147214806739436666361417575986336753720247750767463611183695452560775002214776789190199366973355217684064396545823846821496735044955165707754538227993550262594407856618141814006691612257165105009605144925410572433532734184111233348879007581155901936118983463651707431718337781848796959972144525911377568200020535661387459763893927566611205047062017477945532173339479157735812154109733514898095940106464921149881679844262845687108560791880695086817042452942926908140001062543341390748593394118095606388173226677384442042243862614858227420132500649813492029595653089506434839977973674349926408639300465521522617444720009502681619651349505989972969497252771315174735220749355263194000997409004664463200560388808771363834794868883143033950330953233315883887432053909908257495605609078436801291267992663281763345689967904287349454829102008440417696933708412943336633663943932213345927569116369954753358938803490891541054647431772433996909110461269430965365717732395635005324945978021062544801588154328256222430615261376265594105412477667182878100627825411077555321427593931639043882551167682990462914464407274462354121581240295030142766956338979272455221887021599457562352933146329141282248023094128623970932176173763899713211823037486834368790104958747833072526891986125522462077603684837964319825026117598994621413492569448178209853048706436648437326811172894511022295702139730226509304851535664460761178856882950544040244430555573838381967859340493717108195588782645676234229423516118383759129249934334981415718025700561613285055436658007992589032613319246129335275016197602401892720771851900261130570195795692766457554546963053581578031776096480993570273256784816002220638333300162342491885747318378167767307738384368272180988574052746044750135859034714937931766379586580446839900151047246515095343332251765747877598109099486484699259246602407106564785570731063152091844467862893036875247987942144973006146642204696703795742502965988965329270029183859047179833762729019521595975923780114196723012596386801602406239335645974002755684370216124107346414942332977300783991880066016685045213204089796044975602581927783723036180709479844275134358575950633850820266470611140972650111346661854040767903786549080295415731999436454431497455212241123409062907353555445168951559264108153525113376292159837072755131703513210363559811745698987976920505601271321286883732205700142934960148798013326606146451117365401643289700395210538846731975910921358566571604649888640073985711672054872542384949752643433048984881130444938827464695985973230285312491674953464862122514572812274645860397249628994263520878778724001288657343680622991160840579795128569395124467803990378739931717371747410940432122887085449153821900567474879334811663777321768475646979295920733405735941282325420206629732132659449735686795305090637609980167027687729898750183146908767736268607337189946312045433182660376390720450710249952466052511068667704894473319219332265218361305857405711902556981370083396500702356221285028685767000224035022527581229970166666800148220977206373504530895293164389485652661456208149961820704668336777520917876997698807027860226575563130698327121548462120457861023686315162905633190181283267180923229794421644074829493402370332714458474523712413706704963291346237060476600556013111760641667641893580156891708807771869333383093358502818395427426924141222103079429404609556072754784355870190389032432163656840351736074717570164011595526543720878202924931495975602903538923595471232217194490349398431204448601999157756084198591073755823345195254440381615569729063387372233604193115194104686545000299221651682031661518070622430286411499104915664993191092804569757590609695339855827957386549881819757791838364518859146012066520151364845544121267900257938794676942827032203177127262226217989819137861217416184416760725010605441672313111010448110946782160014261271851131219040149165077176718621108220351079824332677925158624623470821289683961491478626973599344345738096622296258332203649930961714760548349336136046990632172156845212489891423420384874570319994167898081063903798392691568022851490422431979202013369875449189695863461582894020137287588354634476510479043170568631875474569461458698781966315268119912972966083356815892472727153586480178614594305190760021566244538421220638819744268657817960986107564724509655866652665279931406425224608821909374380439832520149184249998780532062190621026784458840693015856457719757050762464023295365809704308493547687600754178339971521465961583465431377731409171985361984150787131546105359987650027110408065673034203091994750759654034604556853982036633384258415001485185461232906187754851761640797862555174309571941410276879754894120409082866335286874368710965567774159454683335026126586788110633914476870666528125693199050887474311199276800818605731793506075233508723846059617354826738023183730632721257946292744875220131887694238362301656592835311721164916183047423129695530277978896627309642864196402969243862128119051941355929138544230486182866359370480566639848583197461379888854971660017670173420426040486720782115490695528580338403664669067367433120325856661653420414290199399782171108318737341248171759858254060121373238559050814639943498306629956598336618046814737763987042729534319687531340324829957160463499321329231002733818151546527147373933465728098408824922678323098469640046947872440825814468621827664802962216798946748743566483887319271041811845013902064066427213965925381436563409024481089076077733730078136785423777647290221426763646411645911342579090069970170337343151838591364167910974521259050241833319073412430069062510468907651345261916999793672518789472740493958172383543170171601814628558232648401318080226620871970994200540379500941789565372111660667388217659302298404819184335771255929569715072493514423248482809935651162592428719022927831299097974083379985038902369177141182881064573233572051738137786955738723211619915606462123150369256162307366908272990414815269785837933642748997988381275532594029571858142163842830950181506546026985532082854954524400292409999683675115714262414522518707203926779407419638203028072161476881689654926864600580683040974985349204506781400126996886500798937325527481106710657696795917874847159450996219568954705141499290112164131627591681279623751709189168713621038989211773850299395538338600738474408164953798746152388689872373137426126231143482358234692125087168449876657916323469626553948215519178870912346831608867550708970645065965224605494817486166460218015110071302347445921337544910523637246371222604176816320507928405679709909813349743622870385114753906128621772229644230151836176724308692276287489235542415230481477304092486809459530625597022482780328897618400499292521078412889122129800732385343514059363236913833958117836533555302744099197322151404752381936596479863830644904938443264906189007416590273328171782046329879318882091654673194703355923280842865488693327587385833558300689200660810790778807187888650093553692997943034007219729316424480803550824148574333308935265588746000425563054584017610538636797279955203890743174121311273639225321384422493916003392453885587595745899335347281595750994132103510089123104340478292747979405541760284504200654403073306793725630306493346651930351242523461394036256963820736820893962381917861648359472947081536581940696445151757863822523477728828072985644573333102203327237667616609811074170458560343341540080614364418296777752107246404458990936676194543001458549911403046375138542502950629783251008371456278845401345221929197903834805086908391770215190749583857867336750635941421196011436532781313384164223227831275023132256869982004286739510590902492415687049430082190248810179062045773026255105659643116062978524301807695674764365154871180233679233815813617735654328738655291707172519188644024538266512234054033083664287827774999573468192771962185531834476925248999731069788521116555228547048954466346755505608080345875270812791046702950624016743463038134520389688050208470036684097795925859519723592594055145240159265864488867576789903258952791883337464466710337976194935286453935415806162247312003999546584080054105513345318689649158562211092475253813044267446709007681790132256865793920944935068123155971453243047682559671392827115397893536823632805132924789064116061463859952566340119056983800760828177465813882928234913508378223047231927680016265290790036856843821797995382710371197512136526292217497338935107760751150192400881873088496551362515837157177530789470564529541169388285469378404859748051639713529159286774574392617238972297338021895568940458914753244667465517445176692041251520701319852431659437675012863608722920682448989210015493673957844076085059570698825946536809207316643573620926139218754101082032949431413284469041677090242926105388323610004428545343435758395224201588501726415447092738331080475194904200583018753243440634115775500764263278561671427943708053338113135743921338730210549890640780357291649988376157428634293560939349014623648463088127646281635779712399692400512328418195946865534873175356575430433335036475802719593988153416715092786989365639134056834006555149838536078188807379530621076855737682628622482312129300967915612523302532212664910433146929441266250173093094312758675336100612746918149349000482964090318088271537812837464215526300504860557950796086347064483139066864151892228581115188174556616571417334117357798111404805750682276863768444689529220813842859566343091477491849411857946306639924624005924365543034708735645752199798805794963467682247047866079550549558125538472485925966829000413975037512363665920133282573038721906672684045131173309762245053485400432853590429710255607496911311918216357715409290931345986153493316525474467212083525134147792149572945149674592045702133438453964802805338742489222701027689793483076665725773716638168096012623257113119351979771179901842218511848261668987405568448495865166832940737703320746754003443249328403209843452386292140964684253603222833495622278961863089845192263840430002268158509141106919971193808016545735073435247509511872295162425337191617024907679235124822381479509131138778494845591658212220084085037477777584088522912837159456467893075766402104927400815264501742114712806153896073705973804000537336959247731940400059744945821780452350223454985448088206009823739486495360750000653895763887395409519618159981806423500125383483493505990789864441797065748655191751840174872992372989157981225143119670064103368928693063778466526111091596347835261218576310841167231596953684174565336831749042433218902220421162077269082242034371120050994451755861441513290945565178332826158211542013473926688428006512404454854699482747059805344168114518744756217573271458482710967164269049322970220734192683047541495129510173273198731898810850098161398565085041772688235311861958157707577719996416012188311809842255413422921495954033612660644557062227276579801727912694456927258027376032290516546874235954639518863583602605834675968370926199884240526269753385131261588126934191395928062041737130550114571009444607619843130754510813245318131427421988694389824291225551226861643918085798593516189131869675866909452977597124261566873139321594023994122552215654224788008855369740831620721704401971986981752221264152315372830146172023859696070895917947271026908749038486216413432260625961059362357087164268679984027563992242563730294437107359800363943097985119764628871467758527032112227791199326667465596764139787987531995386358817751655688903126503764960383406176859323622510308417561086503394502255502674747365476325369807935061475431976973949724666084394708886624783097983178433791024953597709666380221182784691368714986076690521514364023337384657624645937779690865425238489459715735091148136678606494079633651751895615598703181839434669339560643298059707967138546037859307270875146137467501913844137380904311821274863162945516474378417528119923244149664690702065177465005366706735375212881983729714913363218741008551577552964409208390146943167358767691025318226934367722314662541811480795118114554139604708055420584048356945626787313315511840749756698798362880299033308493615810312579521901761288211949668030176617548757192077985733432994289655928123229684653266025857735204206516918861932148657737588886119400146437195247863760330379995941683237453964725891770754695282913145892856797678862491378694063399730971548480889994371874902240313425305640338738205100012183081462074599033029690003027466936434410874367788020889526772495206335691822396369906566196567622917532713498675151174693070520627774327877113033230019765328972756924638761596464611556672416823562103284482214603868303159715302084128466108273016540422520604154796502285066190444246065867677734404637913293580715858540346322819995901999931301220155153977933976790832881323491839373072498957358137782916654982116361782953808528422466833908680742058616927664128954513322563074687705489332254391991634201402793785108976151147219585171310224081139321646084766855817262754027881372405205165192522465771419783497327155431831660636209514118128077772059198940030023958070119358737317478233445583984670297159028822358295738669175086831758893714772396996819636252783205043493523643653010581485822027480960421244232014146591971699634862167504279984345468490108287816553405823250600872588078909188955958984217779867891364800275902253388055606502600298895731237702234919630588953684148321129229981418313386409988367785413720413680350824582767787054430199104014157579852322596288966908977139456521626553449402346104418896604899189706283896909401493998273533524192135956094980328106394693129012037918588465322748687099940583190535893944671267389581631038683395037700656541614980337402588775868247414531647179480848779194852424967713266485588098765608841512185619560438208133671062069253632090292035895369287000012284548181305719087942393042864244658363047906203641424649554350406780579119256332697958425878535081769718544594945428731621494270001288810150980107804381509480498273825438096109635148696289385700833921027898766266388332098776470671528117535035162660011181401257771539699641820901994312341113729691955305059803638446131090108854517321761093700007684130450569379448915930892709602019339098646334570958637401368488848096429385665133978821117544168708868200011938010257797859233560965495840144819902475304340527646553249952951641714275902374993208031694444214527198386123893654914329625504354765533334352110503747417240219307681454980603346098930367951302596161733699501428052090274589843878806612114993550648501906853304965215300389103995381146875910157345861565274135138406892118334350094959185546526797924843338788605601844488484012845582265289748912197142012584958089549070236018919931808854221201349704945734348917630777709474220800251612241880509270210096401111865139142374323808869153560327366212220409160202951788522663919479259377612136029874015505741245408033278901214954697656375929712812476376804190301673178959253921074313166116171509409230453933228377960242372631681927165415385104331134879106009674772796573337320931973676088394954932780039446134131786319924490134204068833412383531599603807531940759361586555820419483465187677259013828867760077889448648268060628034099834244222884551579038871438617354825355643542163426038990522577354002574512222454469357699707818308039872214391024439363049168868971944112579565506828123895715600021294696994614196208052388999472893149279012115906433702749062775685358669735378900428113779200016777421267432348287993303378258009586773362837371986980838497973777108666046086467424705317150252174509312910409815548772071902962686795265499101255978162643798998890623216512519189404741661401178748788821482726169359781530875219520247216971087702982264918473241419218037750431803475051262710919208094472848446768114542966262687759722207213445927065660188825094498778361256822167174820652864406190783602016539531822344237121300370168016113311602638297779983824868508985108360128463193376667954003571082001011703911264376951300336183503136423174335240052005696043046565450847660748936320627586881495220433331213561406733706710999960173858098010566055236328791454275536764610059453327208073323655432539169497750069429558805780441363613578303448297654230209748167380987349199175577419219994639653300807483203045846145512466843562140800617104860200552345803752688899078027300401728104715050028626051328296347612552224288764693162557550905696217252936842952505573292052881875102570978046685548839287757283603856813560097382896353949264263397882513329657649670499577161965256527715011691093188830470041718441695532317726866311023953808645718705934852874321746756668599122601149655114484045589575403715079970407336335574793122597527604184425556894926931974999214372581939088954591726785732052089809106875388293385301401488165575706237292244153883153079006139628738074727630541705517546530752468823018059192799028588906027959163357092490007357588286264142384612204092240263413467435811794185277874151576494497822436824668120872208969681174964105434319969799618358467828703366978111425732102120188194753817534827709919243725214407302732642377786653987920254988655583706726671216559548554995818415799994442092400422565306590656733704805992308112665247805519952009599736850301528755912464772294497841052672218320253494883795396437217134642742561204168311516703604303393377388872633088358517028605884199358728724448025023072642130476988323779002156605576174840095809523583165540444197652460142135082269398196792625829640348942479395911885185828462172879117857423447819790613668671423567685381833230790065224993421445290336001257280966140060293332921516904310563391371426546064781043122616455471377982019591676435063065914467156251715500202910335173547165471118305161302753235423896006849785180879353279225797989598883174551504075679746019601300173293923757936857850434052624482239146358380444477777826019767234282886921562961152237169312252949645548122060480928981682307556522112489927223409672833064433599802028669658309587590156815091123670600202904639652859447889651987493140840028804799822461701403300055131540033101061938923136859906612400755068301517125510855122120441424168400981450407739013133232368710995633000709140277013246733518260233161652361290225099851419981787236455513612545325819233985401748085833891899375736028470493885504863639080989404635463519235631097606957395924727052318736361255710616629459729174150740740421270019610496585448400279857059252152073079953768502836035082641613464908489146980092538264457123230986445211061154148506749468256812970138220302082036216549078914220577429784756647890536674381068357455882509374811459734888404682108100595824375108232145275576145239683247477536878167876547397913484803018041173068855471620767598644281499401050207671319120017954492247334376971271586070308190559015338919392073548045418929007578630366314721851943350146140405933093840071200342008178096808352773484730492780197531117266079970104340103371934701086830417147280238069970975164625018090030979387317119049329442798168976282412786764291367162427110244126550651309805472604781131181452443201917776987446135505632176680670331538547570481114161303884967778430902297782320835488144872202029265097741140551438354227359579697935323070987746397317109255056282591040538988771558798805715583382150303249026075440470579676343806924702552408334244222481593636585467306146767700495242977652139926176861793189179552360393683343828143587082982022390061474387316639287057076267361700144922700562168041642620078164210926649985549466495408693048484314123324445911565972960177962089498585737717814544922143331750168733177362596008549488755562446996558487888344667023012351786450561125685920491655652650199158156376229351939139753400282243990184822422278194892090739467463148596954849415499617216347843739352236214158029308923187794740851955643796745265932258766752891395459040564906819627926116312192472495083636260939657079965408113984182135699007006736754984452309075768902865436584300267913952708186607582232387666628298242158006276804162080506331038276184007660611131456633105178229714690847977318610063580592560740824403179009076923298701591574344222597726563385990183119121868531768399390699502945404147789675305400444943902673800846822926472157397775514394650771172678230757713671818316139905392043349819445313701215646614491852254746480003857343805951536618496512555724910288324945638772834677434564707391386298434303344803567577181876430239857627808932862444319095974880385171028251484184028706521635690730974137452866365248994339192492557957536741605190699575224330612340007019539199572414378782653690754830438073432585757317583454046582032918180344880987050375313456913246721563628311961722422664087183880973859910234545632371809816272919519472050287940398309912038684706895211316342262022927519991260349574794587109771307438597488724279017604275750590816281371526059589221129496995320110115203534788143338965300731156015807124922431919036765998311375242306246330766266971329093755268446693264892556941611947434290232454231615091937412887133389359831986023991487048887136150553102131148673888659119317223774930383007067474395457234317614170512684104829770894757568972503283888530100273595494846726256724191594168714710024432259213360448294270053836217828540693084177005177198470681973542692824143656561465310983474977697367453229674673095396888122419448251307895287497632926565945296975678049820979442274720755554289995719351810599701896773435259150593880126293759009476623563584345310778287583279857611907980065903195738372553251798686080210053875039810563451053215229018936100733971603123448226359742439756801534413312345149338029862665011107374138091644090364031956948664679129497143234902989009420752402762166304571719738617188291449469089738336128612501058436871942553175472667982291019316931437157007571369758982142944680099035029304204802736970161876970890654879156628368743953863565709617459275795978939498549184547384249018044221771296948861060307300088570161629275292611432221303635189902657184925569355399007765953184361157539462114729136236071052927409732100391453910120602932595474048950670928726667331883998406605153342561167998666791341614160623352248902000945490696865331218754272371063991218251940900916091724682286851890265022737159637188071143442555842053335909371499775286889304687792359821374732365061062862251761613578982249108003760770187103769121722351906934326645045222719289777694482825300699428117725870732172916702191358085662075671198689909496429653229865918897610420337567220451089075353423723339202939335651920974931268105085738302416543993287916783881884300655369442353054325841864391648338511358494797856596104539325690810657604704030332670678611675940283882363183979630099588530156351033626986536804178190186408160495289174247657704885808119684042710868793861331022350715284265764425245379021434612615680969040910646459519105266299921565051377852328829793695821776149282284159434061488713549651196454370698888032883306141912271864397017070729354061426025814294089231564504482264294905100382439038929588840104288129892066230200412905038033765698064010110027326037166929076796750096298430053026792507948876678204650098644020870848977934170275337332321925988903464399947545104830175229940207278227435935024856775853144206914411644402448884290880781101636998215646722468524963394180398314711062425619235375372311560748108585642270201023680118125139694748608958779780790452598704935292552240462355627983706068536681979402627468695192084012588779787334347879400445032065076371596796947271439063799235747092209097590862327159384358657639237001547765046462870063933995290423111469419950190820773429254094525418741018472706699368620645770055410760104702783325523726308009063722420068746326769047865540789947486008559964726517201590039484919940701565017901051562566001971473524042280813686432436637879349315085467424277553422448817284477257512554314581459660348729915325762340576775687855935359251271153500673111516762325319898161415589940380405527442498032498449412923593061442665091979018744418670643895794460950723159838839537151831277561150145684909902801830761811900602512903247556904804880821707621391262015504959723793319966012046330336877580923902214485191072281506221541308812689768711807445235298566186510860154692229058059679303726056916943134747130894825620554924017284376887478729408623659170887910245951230597864575101384921683760723530436652545674129091629358738435763933422186194840458569551783380571560376713979756777761436756556861414031734521193288913865479346572381868309583892530356058468182635130968353273656343352902283342457289042162866471913871723272218528301206276071044023615803889194364914508523691518302402773814332106198202456955743096058360262891395468509806621225772721629978037038717699612451867105278770688974402704181739557828611604249006899239061124042704704289247283918452673200732940293705394866918858272915683916751959897729277610720700631089459287295687395845938734622164762936506257332154947041241139627420312475059913655966572770657908169687832402453472573515664008545997515793358566383495667011095735174213118100893944491117409091150673495461418454518666306370515276690362853985861923718295824022332465616260371380959361265069816328708887942230612634353523600812087679926631196521260878661605910225081045060071476435152021029539473796340482861943122430887581487578405110409037769240755954153644439530544544972871114008404072468975231434903627990621138742681900177197844168574820084506546317934304714494392654821201240380343975481585023094802112263690161139415630689657951666695786735033207663081828246403148246563533710117407649288577647002168389864290151318533650272795545125935250695837762115035668338287740159454064624733512257017777957725209307352045536023263541241919993091426421887335493476390059514319088188329004654463026791262536302350695474320766151119203283304401888746698004107449119398115789643821135377899992675808692374878379945358959727383151131484393070543792743114974022162903639007872197059849428056572016701157320799784639075064361839499986745852473651534040094792626217654730436719987167949625287049862389983352908757227200819830367193318306981315785042242169386181556515596780148200807358091720722903272035165314591316201573356440275794189782167275982829103314233334777248466165630783960113760922905369803387446478168305695926744433158821858589255916372399080905042012626757833568717845063229535168337385753195000648355325793256184258682961957889759161810582621158396058799304369939855027887652637868846726008076641795561631390030140958487388507456158999472716895575017511407683493099975569504822231130578664353026359449300928412826812353340653353829193470785910475663717462677407107950344025653995875206682452127623134071358230904340603549816372337620869569609470059028134922971854864170679457670908954626875356791454193355588387964664604716179707150838870010411721973380748929780677468234709186113454181278525192400142816844922695709379095114565941524171972602396354717742295862560172301332416355064211631731387489960579487660639456491900711852326352159995132700635233910978038935546514607058889766678054160221632896937541747713745875445653249315998209523076618532691084326268560393335842304619854361200159387848762170473776993575507804353037681144817655028599742674701185727534808956016210359850615838531407506217048562320478621338171370925397368010297700383198601799876461995177570491227795647672141491075434596604666426824145038633867205982001757744089625142680492192507179227140745426970844196348941443566898808548063155941177095215654944800156340104457574635253531893672092954505764451632095626445573882707593706303579789439621862862929660394742715687478326649871586864069327601934693359209112453376902576835906783302087390459224921466127958071770610125791625995970248553932345271583568955853154661752446272420685720504689047062631391808656082761345896899786342021796123310274179847150752958666098348053258555366182149692890096201317392019552022760527665435715966066260829528283654904537322818605805605618995954385876868396393394586558995661601497894215704129764594812721947067716980511084334051617589054782384846442241684498104239579624673247026882633201218520534595789986068413841152318936037371854544342364306157844703249283117989377934137808271730723759081421175779646734702965854522480509295895590014281747983187682827467438189796858350162156368127364216446420710969020861532502378569939696233304616284672253847590754227875860656226174529395127178067963187806181327586890530727282276475079062568343070980961867196156187540288301138776707310143568451281706914502481562476109802866495612135077158279966348283232612367873636115216207981462804125794853169421738208215953362611835639102272411594751571973260436007315992181699592819063145764472345138599756579133668515670871872365507130332219605400086826249833227704765280949148271442827358148955670723074529612913922384207507665258836988168267564965838886673938605579787889767278283658286914025729769565813330054635948120814347366388236298989335003780296699646306340253164155983540188964848986090220393274203990165419781997206945603270810709456909450808149617835828086154305322960559203066421938704891502943202003213522955886022916565821907964555968145533268238342917067230675227777698117557134743012753036649464971312109729698655094282060313054536245054685311466863017427997437495116040685340530945136549507590181488331971648700299214709045426468791568517524286987434084269163837693708931940464923905339219468257422515284207692528960570562937393955393514737048061740348942071038313791344434407547544871911146084990682089807392689050756918871680796083347478210170906683940573473519892174449711524214815445567146389698669169573774023239007798291028103314606287513318003287090965459352909509852771105691559090819377232340585474007649379602374753047578823812795940958021344955676091038770440448597715889518536768706092621606441330037574317740422872734830698678464068789732321777850849827847665602755667469823792605535074758958135216602536351225365527348438747374826835149469999318840623089547363216336668519365341296698925554417021636773400307728663678321731183999280937041330785709846663445135770697404646848360143337171336654052035362468467313782039207004470016777541545119287040789469891055195215463632860111088711718229112210433369173062480799120842733732398972417034770628886967668528913312924407720516994282064824334684980038843093676653506396270429963655683681361501328317791177690605518301337178857942833709098490588589701505853170358004947436723382912068860211648412276359149627128541366001911649439441551115124523466866760597734960609239119206659187797869273931272274010762817188054729008041560099519053568766359750650960069916975896756235877448996405664651292928505359114476126052185644427408397078060733699899674604451292491871022982694359982316809553444703568794590421890397341308853260213679006846631899821133982539944491530427907070800409228225769166317140277824254048459014696119549231922734805964720886298838347870167013620879600466453158942296659474261853865832065328646546356112347029450176903271746829687738418204077042812197660014999372385842304788102710582458976224406635522066801913597488704520106975471217318180605350647028042136967639039268159348738267159008336639685779286160780776311001142746576492729337424093253465566055981399995696609887077133078186305275984938684278063939363956979052429437832625944823586269567218254498051602127229295600419453064715301977693171133120180310702837231611927635103818409353259280274510657855457230599291982988446479535131739544556899820523742656790606262902537067930146245865084361214405630191798191594345605239254658001451101210160829179818090284796477850165277364909609826142882436836225931314506224052993481762755784450799546959490304102325465254630866556106906598410750762596080439530676753214216853382393474730695707179469207162627614970861036804994132751391546285161450418754502180751319353517941416537147619680674808240561908707074875906127288687106043434895838926019161086920691194762524794413614507951991989831473605640716206411083378572993694846302496919633827183751294107423363635019932566284240064496138851885370666956089795529233725429259304688625355559035650788292087495313211672391589527024081208289616111645276156296901436125777183643113381281859686228208172306286098763474285659999727984483941102407006139655846810453735983853390172203857467517534420778247550860651931595505802898133403702444940530555585116498366503882361049385712332221547144021486228342275432561614906756131460424796271818096866345030308556889749880523483045174800377437289751810576102375719990913173547407499651736720421408011554771813728438999787862643053158717937876663501427315770502313550456574094628879637635557441379416987651949826665515216505964706921599678189068861528322693893279187417016201747949863717264916595264451257080150358516948379710057608727675138507968854769657936600807444830390713175039214464745930623963392571593098239388803224007408968204659914600839448705426738851439356207497155424317084286799668140155921548627654696016453990190913212676381590993667917301811171611672857772485871106370196830617518879842047568040369314812779889222911328667067266492157167963562839077793709057511067042155115083549747398894698942989055855661815418972500989629352384730695846473833834570323114798676446994715076599178847355836144621350783307303030361066739746712237325708946609276779235668029505537734207479722711698609990683440085449717217366032681655017004703668998904324289373732235931713242388942799188457829332654767784817907177115995102525371008352393606546280442614973189750313994783262058236547152894596705992114303960327149903936315292907245765316186304141936106931353722712120074182279889093900859535391477348781533383464720062492904022864766045656836637478809260588380425645949622599857094927730603486684979583463103070049113181870873825421587028979600416500989412713017238798377735691195816613402348531232677802260091772445739802291496621458099291738644691232639018751578439626233875429242504705526329153574581719148947415251172827956077937580539565703860204362476547067060789280814371783995416197470582755607831981862245351929054429473361612732590035203998176769714781189802006068409234909760083681795310958429058497768808986971620428666125565235432892736172285418339282027894338304999612890252438621941049527818314885699337343124160898061885335646546805307099276969980613275364001857494328839147706780013247822833305277170622723567158492323800338642460427629548520891363888862956266403752299328624543112466726873076607029150662983084114976796647375176080776538781357979914173441784978218493192553235081829885819952045347239215118275158963712913897315567410043875022713189681279296512301744714956992646666073451341569038982942154668113867781804498194873694148102433047374642692712705167207254013083722688673987651834152503770445695800322952168034899285226267100197723066631559693602586892592341912558198549993250970399227434148374401735504959153360329108574290535475225870572777993275269716824549020321418905830926634175606980005670245289984385943426260894890919033358342179806330533640381283609932187598972017394187096950775198376646308432802151373933554417965063749131977864276169619416202547544730208652794945742841754727931064683634136346396942225916183939761281504196065718083698289065846382727274911248335691703548317278788665949012110604141363944000957273942258634077696159774244724302061288128196478089708347000196235916453499597855481031636724620244128480666159178442737825413848553460922124956178560962010655576877823833718553537853563629644579024013944238313793914933037932961592910665709912613192995992037242222803420232128216997715509793310696994150557898362894971059362303864984487469643900222628689290990981791003713184615752972175248575996783321458195443128784975481182651654960932944679833040923905885149972162683402509309099711753475135960170903702185406883426691682416007450606817537204595973626002387365742965554319215439913223264534409626615258552865783492400075782119899000111432556705204478875886043302496333154128340273761261158850185333453385007194716071447887918389909362251062666689659454809272794965059329435258194505396798903225340478484221257323107927561278248070539024390326316997466738014369809670221391226367367608845811137798778927961614800882847982316686487332473589465939861443133691016546277111464525038687530041316097874501815275758324009292327205212694120256237465249051895941817184142221737419095479926660309695381900078922041884835091401748716334679993033054676595022729411999201127829158600265778874617184759860168627971191838033077219586058247146874080598314192781438576920064342776646655182584278835091107891816911768225968830606406893391437673030321283835097026606223531044713255776154422323628091604534633921476458953655637644643090902266849448969838097553271301299122094778644606696589941605851645353946654325051880905822318454705901613748979036952444083112420188723206556958844219332458448754507312145731395370600016483956384375685419615227317952870423007830577639201139690217369061298678844554878982885983141468855709806735805183033350664985407434816004516200513628681452472264306093863987048215598364413504187303751257460067989749649572157085365628354056765916666139633924770366282854689343975010904949693151526248730841097347835157795655013617002308511652113756905633428283135424931864082995128367471985039866855930665618447818987147952348660572776807077317236408936817756982008273525954830327169706317602351467729459713170364728122585572282564331239139654147947741922038925379791660692038026498853434030431814947707883319095621073934512018962076842834824236894432809188981149524679302617964445758295514349173238377546197569732939913934123937226020206791790475938244083167450337290066236208475086737754152229630061986338885189420715029268012802587621484751206082651864740263636981490964432593979941722496761816624761800851645693230296382709721789042440377803254049710088258029484524122266942068172438190490092038158190303024974004377661761896467723253069612327391345630665687611415958238048971095505740697396654840626984353712621712210138310954097773004836989369786634184253332360836013128669855976116247967115830760048416555989821527071283953602057821209837044690671197394670151208095281915341877553825248304451494155240748695149276522791253880038520682247547768762297927792793988077672435806938814883763089828796615836539414983540323032831890271961713144171369628438291653135986306970785266071465914751104198487766498887958909865454211940765931689820362884254013977398746846682557097010168295060231481818764906613723814309011795420589526891744050185167053142279750272086998236998769054671559834840322337084778148574602750109720340744701419168049495166740096859653161778192668370033449977020451932863655044152874255847519165098804424651174344873802370874894096198840800081257100346857776230619336377541088062399109594819412216175539588195480537829122912191735162665771455631344514850996202824101639304434808753636227561217887300170440189801109936172041106637058482370956666800021207785569621533728963781171592151693133621230384797146992860873225299668076270359833243917498827942679502327790315767396427205186657058483469721678955119533514900082917562990289621547795296824139916921680869759242014979269485025572730946664691147771212321525279490459307658154492973581621732253173634034107107348519384231299134155171478154397505656356163253073402547920000086150458445394027762178941319517076126747460207391586976032125952382073908691237073724565160797860803585521236565184646962143404417262838501807775134845326418615582623952485944921360289342879674875178093473329740445542079998351469568931802127923287101426985178660065564425717175172065425134457136304652413123979172707380124706333210396596114335922474225875009827622912642263953808005259429051097493560195636654353991708762226044726673160392875445895135872228990357079228996792054637060224413963436305975962295188064815853757950473818006583646017584458827260690388060770797868573173145456105624957533813608183021688269833000565800124867288323461992209799852335794669229950896231658340746215473609019040616944807520027525645666514726333448951311338388186361661195362511829754704468810692906026372780564405396901073925052635585042198927859027873009004327883632984978775019742054979085754852825402805677510759616396483495210129538835338683067088879539159816524795247543551718964253868600514630364472554322543575889290613099516107470148234483083044349733897084764346158428129720364002488326081168935352722577909632522868574103320094666972949735541379156557488263655219838949979180878667445001877891313139968594967066418987758501203292003476547539554747382049592730130984763342613059972884746000338663883258973237352567654536492797316453441210122942196456110388543685112616723414884915846248218970964899527679149204111086125309044797362652164145637673738429340932810130419030597960960351051816226717809579212286831865692121178510843404205872823333592245435854269932902357950225538827625757803952004301067933313686634387174066572693868104031812920566367687457101058115865513558176114546749649343860735093313423286903578689805568868389774648152019125335990538190738861275003092150242625294134683388128300979607605815087571731614119912937455788232671750203820011794958326145529702255628014201313244089647333405606913690272298460216488840577835216528888829944072221209465363794299925549681644460383069663586258665456639443995226698516396511209921790170005011713150558669181048036982348285001342679718467956632639544379585800932890012594715941158316762210562275596496311613291391888232597921209893522609621666917009953292623004863680721344533599459530659084978191381818276574445885502668916365771766024204610987996555407170870071233511975623925786416542090372225391018088623573826142511708214847548450440423665516179647594209626424952279870929215839057743911206750401904090424818846585774337934310138639788320479654226614626681114473349539699031562076197951907470211058471334677700774482204998497288757000974746090969391102640170081698137298794030790104118733108998132822064723524361363235713572440317016333515744023438280528400871380919717339739514182616989557062847172434676676532803482580573831642342945190244028271898597217047354743190876673573025301408836016143107485182066574351557045522332440169307833478425610802290269586902604377418322909182901198894556143938782406538748036603272926814529316365254750476081884884551513236011100005552307890746070692817122864140041373667500476087897440092593034056874803365171402271235980161135591122044060864664183647838809265393737973698044810119530685197962392449706733120582091919344154102795627272312807503787107639184695875891066691218892724781141593687610179340472461144998740448691339376872544985733918476192510317724592665290626051047445894296230052992193110288632791579988998201888335831433866937421341905169494742379168058263347448390042108256180048786362329225386815055017772285094671176250577358106473665685036470247079537056541359710862338334588685869255119680768429935798953771214194149322170221164635871255379271066096766900172260514787003603500611942198000200650370855061124751263211973960775103429864609781628447616254575345273874409337225964003878187247442844676896058364773611543642484488834923431214858165376760299319901573887912344430793457778799668352167341762551049525168508168123213590243033800392024804296803600127170671537412358566971687303274202851281082615592643021693373316657772606287565816441034524292590583481422409739562110127528464709556722107092062932773345821356371595311240628808512127747811162763820285705148918974610273343563393894162665305548942768143751292198429073492518023403934150962175059203597453092207121921866989793239153109977352685980380779921885683306694566823305055540853930749042155870867390308135969632454079378442157250971131244922956206694053885772402203736554728634835370868336149216356128887858394015375397511621157085037648032447666518422302889945192062591903132958986996341194844974760800929237110197742632049417379543648601739457479709173238466984124760773690573254519883012609604555761346051033014025322123030188242949454603929456258503911312785519876851292693994854235523244590960971774288642090133914798410856482556354648166046326278788121570065785541431010811101954910253832015361756039458676929455869225640724059689569370697432197300197907855831693231350662263609047402386714437135712758938904463268497279787375258263806143637445116927803102627569952066298419442427477377748972778283505136653651838905946679736978368044771510776342381273518074488315865217279213675161381445767112726345772737490883395305499961019455613489244625507831882399997571150597573881451111685912495229614549669701125258081124390803267003738525146025133735734224296685947049923940325905322377802808023810627179842451095690120666414723699408825996616312840869830692656674287886376293701547989972500154735512482658890736863563159229137157628641434867946763481624276090922655871395450768319094954142929410172593678521582913467144501197443249850448541948087786204888209914399532727339617119322525184358218640413745208256175686997689075305479750961035266384856940154073174839663113109929887138264668385600804831468978102204687092863680145262195864549797417659700481198928505134423786526313918717414105216777422142885404146177326726758079497507460085753968491720953276834072370557199565094013622561043487639883547056316537555486976860869468017461476222608565530869674273116073190411608141957048711683696824595442634617098542696713264827196758027451029721128978671426320039831417764185428385842321403354954576587576380227623965377716668426807920400317266933027228008224245595094791661833567611340179187129735637188625007224591557495057679547898102531897580893566164589112965645309033923915982090081182770940177316636423780756129674054396649141740080029040942332519281185661420219941501939428742993072661942530306728842707374212589525083220018825334003419706851870176892539745094885350153010171615125388235489894842259921522041577815045453110164411396596398329913187911990964199289442579408150535912795765692071983431956368469797163683548729189624061192168098449307000444985825760992014203024722185078434229127889579027060651582891665045520016527081944977417910891422865892630073631375760606026040847392061152832768265244746577276370038103948589805644503512666279959916759634907920092527734145543237868111342725525426843727511154642748232586865087323173988073153483561604771771688973616254847524838761562197626609148551669693917844293198912815188100423658200511018051703707427642042396455297968485702905270562825676056278764149530757758317245911301234050530628606648020663155981430625362112662811551658646040394240721807983031750232745022896813705129338053502955047567495188592443583475824428824487037928544336358155106899046990936900882111826443574706586519547634349680531132251768428035584574758583729977566469343092899624311412114066463120553053192111962285872496995530466471492184134820272483485074249206290328521840765759802226956821284554370232819720774254226761307237184422282980337719693999104495895652356706634229506518725447565112061288870408221923055880243212144533582918016523996692800138758527349162086926372282094722597450607610599736004047919099218534587683399605537798200485288035700234699535683968040449105407408658234419542948416299250065486565151510761952106681062476164748591585602937377134459113088402984376239616603818382527739042922851079501977823426676838710335795145860026054085401072701457288975275879990009183300742746021431331890520627790230385777371990824222982704326117054085197522140023765484119402388987909692741825767369891955180391636238635998643675243246543503813320727405763238059803629867180447629025403623209060081460968728983812389116645541354003853901726744730714728978845143359987399693366551887900499051217292081984038164871620259182316334899604481130130404274995594496397793012078908658711900058922929184926664253455270123522579411840867065617510694023290234126202366286112279302918703770153396386254765010682672457082767454187825804937243119379619117665026960482968125862753826099885461671845790101627946310027959028912925707347697718176171512420386245895238778272893261713119087998322913610227091718488375709314126363883779298243999145633567585084736413994862424708635681226125948120177951434714592193940484817212242226277509499750624094170136109039900926249612752838903530952998391743918255118101405628299820851605231594482027477019393080581400377584583090717067357087321702318628218943882686736225294263803703301615655327254662032171607129753952916596812400959845244076851715829027429545033282282048893589371682164307154839386730213053864493899098639924701866740989567245180753873102199977970905847649600649119079864529476522406362065918927442368525309102890972748472057826368497856350829521450242238596369177610680261156868446407679674267916845789987020842578177073922124082699614818292892462754154495837072404567687298207415423433423536584100388373946348207029784024405220686796501208663262569770724178005317513912027830487943346024366952781564884414371882413888832654677261387276526312492364109630615085760631909153452507512072765794560472469621449138831752035674147722630964563050073314032044558181327035809173919380017831858586407847214876472699829551859082053230009224670334998601586458176342364970283710907103737010540387674011141921623306991219150335601056030149548659310220070690255741458292035724574326519094024374909339831095171893872668733699625772972955610093624387002324690323985388590241586395370235963613808573681982552717562298247572266914365656554441739611661081098146542374399276143103185228033891154853629945396224876067236101572530571680208230753741387528801866102454923959663743336332215099904419784522102426635471921380038300931004189606743118882517635887868790937283881304963834477935255736653766010311820866220043528982095323620527151536962071945355316723015039044105711416353483298943688290006014776760779308158453809883031397112908963526281208102799282679337214470330266089614742125378335224561567550354647941423159032662264998000634675286139049457210944188038821698678066360270380857363186713496401022208321957315683623362537530995066184158153036321055653853909331370639108079927418196501030506656827179462585282299200419592569398364168363822526814862841216323253658484678500980548448873408599918453733707837495332314499405093596877333303945670969178974171197322018716013702680613330012050777319938249267649878500991736907444784643765786820961833247823150792233640312699946817692031888372841925059136720574219666777255739478464816988521649836342772393486111829830550067668614383187702980983609112815153534433035451468498511101723254682394926959525026713326196467824890036676638293668371352714511752238226755321501271359687768498617482361784463258803313688699959630391431892248053266724775416174188183316819895776710027487222972274461920385312987738358441534656039027176689200493134359225104907623913350508064416940456382381580670199058608036945490090921007753824482418808024587771565629318048964946910086644437091693721933705356541550057450229791095647298497709918510001441703358697630525402070323898181023899041615625301347257574029276414460316346152624059285801588966903180496974156701315864501678629300935292176493303387770952815797461446450598038028333628861310864843398225264283343345754034964969014307312416775977226227203053727579521811480085655814762328534047405955821074968849524209071936434088773499813313519416325964891135012397250982846210741406901577872798177901013191317183495659410615589432975798160728481840953811954223210995045088329960574761579893646374625869851274774065383254440899816990284967679006860549205230664447667377631318482242925691870699957219542225211456616382355481085806567799406505982878272774998952212061072099749073104646497813760605114956695687626470752477645309262665202477614069601517610543139675262868530080520240589756620266849598881915004673405202953043941683970253426935443748226414217860234549214528427894507694054197737133328260611937132679422272817386210886802289279836616477974581519746949499167234124799070229539082624646131502528220918403682994369705381728077343634401583743470799596414973911034032137759349201413602445666829725347615825778782541425792938714004423420756085268239972133798330680658877983289867725985758067153031896384466098241488077529022470232598101035672379432175629046923853144261764130502848982244678621535870225320015494229763126387180976540086582467805179833497583662667877090472985255567074440349712863275216624576924971888611475219904476566022396774327811085540491710064694228889017036350377543465092919367666503073300236042873719873747228321417940557446189852569948921293462467245660303494646869542542867946594884228859546499151502692360356502074795976606219202284851005669420758379360663714285982517983413615744762478750342087248997397307513244214567645875782599030472160944269941718388576047229665418996688593147534807858523060997972844055150432381415517847953614049433026252229357459153544003880028738169373558738133489646343803712097466164451269479366111036801880919483498479236504507935687449635891792892367252094633668199813649327235516092778739975944728061500454061693164379634551474871994443546796536022313646458988660660616193466845277154191869021242120030073961411920901400026287567416706768720409563172245491255790073549807842220168309791048801029724284401776107721184847763690333678191008810347889906691383144385819848600075531340551396448517693404691461868610979297132649641788389810665142596216792018468643365114748120792957457416734719386660210761441312484444721333884001070527507325056766993370930496903300678394827113121708622312499602345090546052304704292202795621541487080972715659404672308084392701151250793241139945219976780806984676223242105840146922787265162261643850858537134251579071375979308299888731591882618989046756497826565048854498800373774750166139376618674750794520605365844245846329802549464442898992540669661981608406311045060147335625939305564855205552367893447405576304318924041771550172041163156166166531496132893996672816027270727944184306230471571457814860872119181870884331179629128429733838804278494290736393329563169823966477930038680077921396134455446711878877984000353847985702301708818228818109914920595357476509048595281757370835812341376075805163154727290753188446426665859935354989329259727531595247835404712814871270560003877986519349344446916123854357284415904542992976519257073761146204822691301609992166171848986990007766784432871784736178718507478044483704715731341870339835052030929122432823604757268720998560855663467545044591690771725753772556646907109554951130578235880848903784941575090496502943799068538785526833241537925267639097981365067137541391348810585834903786693532680034572514921773034690293061179828470048035331681116634803424344556920483784280423327346811013293926565491693945381858851763228738606475697099976976489098219503662048322054026299531494569494566915828804700361602367082830543021144987188861604720848506532587238121946445377365974862741939913343773395923365230147155346389698225055830935695459932063792537055098141381261246584031764305835369278064316608026391954728810842928037771872292424034214529441643004867683435549503136995144124835539668896770670461843725353803834614602597534483993708661267507254722757744553835778223478148427332238924910455609393489964048905700654543843026065476844958684983894118829959281028059875971376173418669381990817867413398376497607395459771037361171101058053188351440136245096680761688287753886444506130728894025170920996216946975490865740297786520745071526417914631029649189489795526075142137929605659857480146532473963416534219033916508547470177293102900877163618020755205453308573576936851891689090241085577193921264364408894872560590529677208979541976063972172336586914154612962872024078440300352705692849040013505908437408137163596834367806854610581431584510731126341315803481917443360431599763352735616977795612774765058098692842097553415531982012952569585148246295772371113114764652090389698837261949477372127046416054221034237284670329721934857763906172834319083176811285948533901556566995709479335161801682892745719479747713160624340591668586260094100917516096214462784407087788099627303691748179165002592841067234915949817521693870729757857056102252734061873952903425829572491601524081042770255034071259196463761949348744603168504616383615258499768365070609560274921039349905650242387139387590138694633060208517039332997394022690046215193541375434613439064903469850698702711107932985026174920477666004622372014215385199150118261387849943003103905543870749019881769541227082018769118808891821216667667653859155522376600723228571431860865254940830645742975354029655339723779631483899496836963182889267647866613114940331545651534424367800010752073793247075855275199623059452292334615140876446540274568986207048559841716035813005954578039123553527979173293729618473772973598230012690302914654393361215849241507424359289879112650255217240705493357396876384110175496781304141053595896892271470174433882618273645127356891323268316015773414874216814724811055820290820437521085556451732991592972106607819081837022192482625528034242501659563474783473263317727620816051871683690545969215761182988658129103323646098201413565812095926235000507380537725879951151854083905932302977760115572693163099344457783067175024500661351154161038698945168100473042479873780059354482860651748196063408555042062857132587264002267346636400231781725526930895817443477713975767356409253507170918465936099881787322743460018066837788174713307305384278153613781778418337793088941005541472460783056455542824014235308665906184924412395600718473273022824773597330475411202188689012273545911977616870372631959013824510065819245475524525879278348750334897006810564724069360021586652389687391385813775837140487004365387588426301204233655608814123915007702371563871093418375417557269109057289078042059913683129292201301422652721469564576545859434920872780759952490338655133883682980936657293988394355334425271948391266620703774673075615258602368714536269180469748905370735769944316464830805417872168292326873488103222538811998200388211980568840079538559126019803593244183388556984117472623459397858567253301164293805411086354975036938927873574737791840090015506985045644111030454334243205152456397501773755782502557179563899112799925223125359034162354766580402744550295265874568659725296785686310524427493694807454498626658161696339301586413429076373112271273813136130536590518515297381420893947543401511363702286144742489258016318268622549567496695362815795987589178728115777917253242717458235889592506559983224590736504269943152374559307064014109563568474220500792433310035428662954761850971421894444702991788277084905550756670349690927720357432833063746726019405904943679083484007355097658760552051499007912596242081833236936608655895888149762544883774002018482926529028595370258193336658695707941873785319440552514775043782111137874037573706013109144951885787654996230940826068229345106886843682279859942535338195224605169381037125170083966212123241960878867627957314888539525169517734646883207327900000906603990835746725043401180936188484740172878493135188555338494985907906331579909651547182988635164080747067592022755465927994707547101155760176295969367014007054788482112568231895830944931280140524953259287370648604690562356654574974945505185501865219217254102304262256868190565436400260217947960236434272284882993281263720429051743331473482827181721716608577581330043450637571835662839900567765233607891177607434818949450920268262044225836058753753204589586101244129203461147431930589097105111580750736255472038902498494883013150741787926905751505927043044283825428911208820191678772262692965121747129836076990418453728726622228329052926854066704596224696687906536096687923582620905044284082260904455282160188941112248192290033994133540710824483887062972773207451996752768566427271926347629504725656044213054734629882109924014874126935344805090872462750358304624126556224297575545232836120486774165169848201750203088476244473368659487858932040997025335036110754974485804282454862520447154349008326490172998417931691622121215711105874316949243000293358686055602907950281899293015667316100696418988355444047585680552327297228841667960712854623349327614861634752808478900675280426111942238210159961111681365258053120193486478500503032690146898539135410436405091325265091940458213425833316406018792481483190281103937898266607881588235149780531245682128700906860898642586814532478522435818240548320091938313907253928745652200740512254292859072573639422236221116614918299704931785561637461011659902420664417679700144327295328335056672996782399801957217700051919034398406926929847478692330725355389553820044151260602294525891473646423184199034236692433043328182248840868329807764608950594527811119508623555372185019586090191778873146629881070386718608111009580282732116307185557330742603321264649223072533134884106383589419971427269043249187275281841155000521618936460781445006830342943732643028966403534677975812237428149326407224760510225581744736097154697200205543314873859930108789011915658872733640958377229687336615619012539480578223261922129456472439012853057456083342273746657890285217973661782557013629458506941814514002118893909064312362959732893818071271617403432479121757083953697429208205788471848499769112703459509205336957485905901376486434487363967184654386301978470421684538575172298528898133061939829143286906287741699165761737633500670859509197192794814341633583721824697356500430152199465990478964734631222169140100747981810216616339872826199520068399437258290445837441092725620928032214945278267218723015354348212042985622287185175379136309678627368964728564326507295352873067318852748762049457344935446224815452165683673797028379859364689683980299293183327443028968296095777926060654052788949278907514540884534714295558721669708694456406134532693997240914842796920872450858863098703493180582037764822575155204795925888127556056916960185990669140303169189176429840079068180798539603366552737192043057694240599994461004633119211198047243995055471698296048984539134376533198465963461210878388908818355339806311163425448823845292528031118370941976688235569133910367520384509224773762287882122053647581759387725839678474550103142761805077016752555526512413571625246497023290724321762908536911990067075120766914039726288643906040185030839381447656121108724166593791331197125956747524542406357151003782622658491775182273326305515556368863690791270958401100894757681634749093364221481065085702655330639253937887463430726849266153663763030542649479863250886470896730040928789287721667060677144336262976545816934230006850201167395580249836079037777861890036727673244903991968961157684565816474532911076430164021613665673700302569893233595348844040308663866488107113553863961727625972992874501020942839482789197327144748611381593756943281556792693399788594988463912368166394090489161142099303846662022932661245669168032230743760826151049775316699165481737387311755864991728600199540909653955336401551857843748624695818328076047580154037298125605915491118285929289146470004339289600539796707689240001075581868899063301547532712283633967849518708566504073379625936820355815252059941365917781254178076318084031248806730111423825234661444064984508701960118845275968872564592146662350317889368366739160637566761478054994378155398225412953814058913968738880116839716249322311075012370209070753999965320880242232680832645706539453488286115352707027203706779346880214218583615735508842625333423489353032043724231033072038249736551195843886476860879944346979949462879378538555978265261141974534405001103824777353687569386596622620606600016910751114940173310376566239685590647167427977155768784502167281069280618798725928594257613887659653882437738170134638812315630228841738003686511443918575122879519511858684084933496718610630587673634838069902956987082403908153095312827556694601690499908063956542963942610408054716959813729027451702472938755647142709781862935852352026301729040693223870643427299365186872154441714733772268584408127099115479013280963071616873269075992446185050106698966240248811244029483370085642518735043028114167459735290193602521818524221836078921912095363178230103616901670386039706543121245156922610095786208501394492650447557988086888447802055895536041702070359081759276705524734999904125325624394944318785269789082621607836266420265075354930510615797943627906846506070414046997475583250629761736893488214616110257907105985419481734638689527635538236518798435890184292578087467421169686510136117525379868470891304399652422660624843353892938274447675890001484384168250878267490708032732946054641836992439250012201312356055203720866865348580782563179878095229324077918501621122452869969612042702055527488815616167968389367811057122251716470007696192412106454762050390221351008933312966331413479284069360841492570350146260743896987498406577243208731565193169465869263532207600804509247519025803578303445195279475459648999796380785003260806041645102834683297289256817769517212293442177004209396831468004119054940119592833994724443827397205172882652701794655890229992012173708296473225753271285421130544968259971443350910104224573230571494637935774630869476650525283300451740395533593534109842228058587779074817544313992171836158620696932344916500783182768792703911550077833841780127171397651084927778959299001674322259255560094464638585984265796191875637126387290055597460453229614996126462533436097182415964648815789364642144711951449529751153473475761702385137752946597938688131837246011567081257537386748128058773879785683533480515303457491680586287041531873510116558765211435494707803447641018840538244835383965416585481264414524760125595429894146560555682148307530396996367407606856236362448414536570074220290708988443874809190741997431321293695028616466034912749942703244530329576257876807012920422425297171616434212064788756419287545075123448092800823710761741014351419070748082748029747283570027534802246252585059255646940843577377398040515636616279567565650234285204643284518647697463952600792152576521074003931148808622126728899907146331085172286406498556679843963437019450981566317168027346669538405507851146059755136218498182167613820837966759979490125282913946352253187038417951957357067329378183943106780750710168460786600759142305675548829597428669004796050539326032919138898794874190573438590486635323081539599985070052316049271146781463383036133926891737758207867960130094129918664726058456008085703920503898538454803575690908300953735613135776505378359228934313957165514699815424054455699228602838131946302487481338653622311572798545871497256143329184750186249206455950899871380300875292271420046511770680420754919631715953408853294047508619024311170656132752624686372837086146435515599927032101877410457828703727401867447356214551223855301305991359174061053264936750968524299422313919615312963915505099317934865032613803636738040615730209896415792214152963143559924276137509686204892145198133090581027828811270577985142893703502718512502329562908944013862789479650166629561959026979967924554533101873347988233946467117351987840955501533161288140772842245791162551145106990244548943847732592472490364699928501626829930954326465225339723741717722522855276034561750669881105845725784334042742566498456834181353704652865511481404522659072503753950276386659361881349159317564807193535454983714702280475300918657587728264812571069792431773259277498600231925151986987156593349497505599989918536842744947312107781358595570145304197899910891516769255842901825828560229961741272417557798865830467147583498992008242553276307080231312111684458745572182201447064782265622311500325266401133582456000465197459644058606985151145333007645203051922119662894814003599414038262996602749164505857265780363521416905130472542839286258385218778741369888279541105332514794262923189629281619342470589997095864679971625940086433122231898049282378965373855515994659405087303292517647229016194122526863180056420824848435537643783378457468994017595258366775356257620322470251484835412206660117255468322753365394170118448755831510100732449790951616980781703439658813937362297463498615935443602880699614444337421285151464375294625604174821500316927364575097617424139570324312428091134408518206876200633154250354299638970480047297350371631873133592640481030606660956545947905303122327020876922198602569821478181549643711003686314840566775400490828915478819960465073852449550105111941400018999984133248060915885060048527711910556698362167321279788261463267513500054495005432235284091103891007986075627443505294047892174529660847602177960054348461706013419639976186103254277003627316134585457891457270325074919811573345969068389889980715453861807192547484445647307510269713859580378705811447108596277626121408102353736517111990352123827755821950057257980176901376786303974299542303687174641133212715927294546550167336525211267415432650116664344275494590934022601513163245016555643576056232472148211967574913844429094900726724500284527606353304786774564754522966648126428512357454044966379734948040979135602273455462493321343700535770335697521585913430576307360289601522749488321018247095995568986912260572476317300000939454002564780484209564225730408707620331899859236772303728211130744152103841436533033556402022412843844157012365303420586536346568574879903083567016016544669350662935526742718329140193358990994248301030181909030018227120899932414697105456272757606472213050489327864351652442485781361811305933314148268417491023412277610262262719704262712325758681070538891926339915924958200698871082133896381456273845644373207301356659944588489401206277994365074759900002183483915733704749667706944634531737653751341017094560183432151142913924885715898667266496188250701500900118852678893677607786770427763214229773695745483311152332403014389445566007677248306532215265666166308634228161291446336102346213661138820250158649050415883495602641042716767945786886259485279926117337648467369564071115574355723213979967259834714231232183774443197056559117129472903914602984214199896375258846238741496392173400769321547781430662049131926596482643689406823733527412907479198745930218253837305730765111417503809555241028823018778273785195639333998587738030926915600427970454334855102770782622259703911297710719707176315183659330655243464525134852674030101256917249550453291553422423841696852711489226543963931696546074444081788862556210489645890308545672331080392964393575980452515716278484253832426726143066889960284527767394728508572920848659526153932725580436118850997706491741841637309181380987080163558715346695190353651394359698593861922266719316310470935946622092379045408201362595574109884404677362822700042853160672740418523625342855259001337048774812711273724034263410195457803153643478365987245392983220386248361434919382779172697639155178388813841655322790814152426412817541906451432798561602476939463956166338356726148287025976837370188172482973576104322849425938832102515434496595824058431680856876578388492563570541495501125553828317870984139394327247681321147319500140240749349256379959495240274980018572730097161962738183640138101104777452509656911612673347068942292429986331762973940360685047937844763165625483762895972332045307708483275995719286973103617499800686533551861760880226654949087913685773725531894511570115305234936162721604473945665417630720774491652458831887326315465740639025450895516540319338411353461047899198434110257919234227800177050993163035061890525649383431961544770212218872155758736478250768502017352739366874333793403240144926098145081568427811626484906001814283071990548452719002347001737239017653391011038370154169089335059791143185256062389447053196447130047596370633459602279954173049326827063362396421398667684759657420978028433666803168876279279520903255573499830727020270315140494078212447361940308415103967794553727358049745399505386878526371303662231030798881627269305269979742049052676834348700680777579066959116171116107597592125112556250280825108822033339096058141883826828151860123572704371863150631800350791159384854110755613557894057596886690518261070525426498341943105965112310264840006114201443694868260905780069892020261031087773989506583875210310202113398995468428875024462284866972767352994149694436063978777947969119107463127158425523066485907204209123798239621601564562941206223991835642204651605176774134074244620737788960105063172455793756145465557592482971902670668222287449175940093962512442836925664893914293730889273747889907331464210482609012985598621415280327566786259586931140035403045897908819853557116636108772814962103109717097838198166533679959964136754525424777402905535461740863811068272049723521425161641606274689171869423432615278776478596006363894572950584182932998487092245855506490469513023208170193625813862190942589159405050796366191714807684992275108675559828417831868811660067009991878125383160294778746646657502102684828645159502206410291255891477619734975090512452032133427071555573012435144198002194237031968121667239753281407992157407566010343930342417690992405505268919177816061745761383206852218519350248543912465101122789645333696881944699413201422483220739741632674406780970938243422028780605834592606527978160879453773673674598929034934406758474689198202912879064950140962674596403787069769844386951490373040897283504605229875554327437594311269553781616598425211716504826322955529805819435985241668695783207749704772476412762129518978888756530006839438622871709560740009113785964022256441395301538503233366560712360431866368561449821617086122853241065306503712161045414827006127109385543335830265912462443841350845186014753560568806180881511326669071453612330063020703035244603249214597245558863099667274521505368758809204147810940365306574555400792398841263849487085013785314353415806326522220827969085236248548241488593882458847819308071300314523328206283440482371733757343692216537759730716114130448411056131407165325407260668799847248070866428130376941361518173473788227200054200863621153802696998781200184604345737504337006301952027669535052013032232969735502372241400181056977798297338523221574168199007595872944536356862832084353770033330316621151015047742037396812191060832269896778173322701112571299772527450009224627588531399200809739444271386955625676134747901441305172129283915104520019039790407459053606092907811733681445413372575499260195360633522346361853869040036778530599561759775030533263336166125817972650808102070189817388204586797000978539566189120447317274239760020585810282800037460837482672827257969097837708264790944752676952131305701121959448678878767892636680723962730037762063520836939013510645991007456470291547891696547878851641304856752343152139252423829380765647597874919995338718494924473849788082320369909462477948408515056416431028040701376779099480188543601580024974951732306230512086454611032511165812227472306146801661064027597994813238235659122741964784862841783215465460259781781465435814354489146403815490083899576363906616340305905895255303225099516097671603088992969408872325945478483667190948157964785164147040229444406006084835155965408415290602497952952682038442715884979969271955621557861280626476264105597666732039561010388528771003278536614190858945654993611839187361310753343874186789665631686778060544092480795394946644127298103996343197306262477600329340270901095732187364425154853374237759820166948457910758254558163560098139641683788514396645512347856605494390179713742357322534891816303986667471627669731874638050131061454024422724869585084709260500474111603972660829875738755049227291502326532298758905319695554200151051869984658522340943225900220178247530552265939700090740996330606857687625291682963136092187276133180907141803471095661613992355505862116485312207442449004590257701110599507326221465649996502108054850547422995743157159934660250223559260954156843570069230093580898715059780088758316327012845172262145886088496602844199216531642365567996226818112131471430896759942854320862730859669586526696972033868487378817010599234867501882952091646003534843192768290410097290369038521606603952672104305627134221950535239223378807201675176042922865161530709591599224520730650844997615104927252217846933672194122380949949749612890960493236752729995912721223221127819645348051763597991458430605325859079379587019565743681335480174576124226369089603518599419075595204846649007211733243640576918879110804144976517879578618392570305188787422067501313053865312205355667713380312978290403424369238338123321143101984282655036282717591942554655079927140262209319149495019936214214808970323602510411735269537501955947884760189958343972453690517399363750564061480423553415648846249157552469028620507771894558580915565947567282145811415624979271940537245498569486507794238704517912734820134940968504814954412398347170167311317921430519406825412292355324587420519352439027926374376420682369095602443969767789622996021627569872140811034010849122018754238713854997210832667635783169679283036877905323963997258281626649043010567597220078335490214578347928722570920867406966807392093288046435199695871234052434975367543171959573102986365047097293428950482421763757152419195078768484823863467723422264773572131868460332903986123265546659645148254555757783640277643461808137230855969087900674812078281550590241315629431945935362052522147217275047846548957854122247154263941686437251637584640039799946818790526125464613176039054102563183185091277968628736355702344686378942745478348488847291393070308143711728965134636518887918844741639615340667172045504040059798194485559038769968501202257136078646783448661360753044641953285513427746867615802349084647695236550827314970161434408854883697393895772371365196196617765270072766904716081902827032617011771918803749071243986075678447170640401184288405195257367459497477196234388570703683809847280203592180495724991618723498810192220808724201318030909891038892087237502319488722258004329703714386417538256705244119961696108745485030296129981516471990643584225365197032345443290295860411499195756605772484644594223064824663124293876988735308654485639236595624879041671624605558648588290284409895149084389334028073618752119944729816922234949406824158378094210391005661838104124858564533138703547170942667969642524313131557427946141909824611177348936091446098552015170961868073639675058203082681548060458323198190469054684708896255317932617311828452935422703099573527993567213234522239914331762676003557205632588305658630614483479370278285583086716394047991412614373831866921323225095735726804106946076669238569088195389201906836384796112061197866997674545322920418299490958283180123289295555343287398091839656219934698887435051725568797311164214783063643765564802611576297703684335524522472096181977442084154559943394782048077922410824667485155285738187580282770361420479005357917472676458229505683963015123051380364208632931987041587016456804929467120055896608890807802389783169398204614728929167486602883707645870053771688535108214693824939310903056960417167320392670691924725184307190438590146240105804862492078461790140871061174885257502538490461307422682159512676558294046983559420431313786939503180385141228850798268921517606568213920006157106372675494230831973408646265922649296372135376701654318213159553587027056320756189277540368980254307121989574028308110520618837015854817688521079006766665611379081349981414151110446608504312585037136944176162543997672527886598744748581383180641653306215132077846681394237693912978546318647041664630859315599435432656832395279740793440803016677540615512643497234927221372676632360967197597667559499440845400907827675650816335341637859312916133593013942290141806192726871309730187452090527080430810790599821160989168547899270739599537128199539668866670613649532986552467559124249936672905790037951902175478542540003733751565456844768292584568670815460204200461155131206798598266613172522304989182174601311235380984793205815148129657180188028729125212885065130850730901504083400099994250091050747762085927412188262999045332952000367643632440738188765773919637530748614497169237410565957352896928836538280662728522882155237510575772952680272963439389961925960196317743740330796954495412875053644766533985524802745607516904629849733544058444764866861142283730657615613341579115898618417345249530757235452342555422671242826523762297113916563977892780103314279025685813387257040552960918483459769080668777648499329554034648016411231794224509297672603678009966379847021080802642326722556642245819692255715751097188302217464598956617476466585438407949140396057155627083756478047852161854057122328360990513524625869647097676968863948227422834984447105298151881000812498202877494733693524384111662785932215166512137792807945122256736960574466244005318706001270049886606901261515791822086588568194572374253501959160191642607371628897985100434360198648165510103719813456259993119509853130548913614356876592472967495555137286066491558463017626456514521864500795885024560061046061425454775603862785060909205722721686486330699641930334628592550411169692537124447560223392310668669782500581304346641825421383758110250205717992473896838806070356318932284320522373650671675535996297469112762954188565365714580693856975510567829373438130487645775206533445657869338262433599376434989530708758990570048530356124816451952889296914699616836953648222619561069396786716783758248698104876830582829714598158662651300998666313702681139099093317833747409892942649989192002313691628614214571597728630581400850399587217157688483180416354570620902862404637325151578068965825848744702132473284365751994661572364763944236493053253053073902933770757403145742812581783588075257385861795494972537166386768801315522213557281417446580219836364489623932785807410413122544309404284446584418402707535220125205653811741763731895716838722118544802465437405823702782179372064780144336790623348418401116844496650421538522169648780622576283006710432303717831529313603694468160836768486599794761170393887215235180720021646042755095121520776634854772960021669490708553572425583322172104502413515327956113549127730727259413097379094619535278941621071636744537355235885273803723604707223881055807275204853184400184800788673399451962120913102118246491809265246712929481333346040614777546426208586804162905572513375453025927528976376691549238544628284892498603443032007088207638551525306586094618177414208921165834251288778111000596017765047840593443058703058867246436969772178177709569325156554354397325174088479999870071956196746821127584542040992466330593101243484451467913884385070589284068124990536797485701068419501699351336605681621439173605527667431716064444563232252589206704811960860045745436225890596067386329462716444612301087251982754677847242668359688335548274374220869546704106392885950559450624273286121667259055143120875624152594527669131579893879401606420172277505499664100196728457446528185910637531505111998230357252186834230472806180497505760595564375864632932881520974931334203836789182937534715579894664489323331768324189568677438416632148179771253347619430973887987909964604267326099212676696544521914832782711680262891881701622581513074330774123469421213233289687625141249910046603901732712080550543943624022659335481861512309229075827675165517863825027140424949122595489877170537945467539591703095885286359894430989079194975517967711010721310621432554564301729229034132524843640289193479585229694993649266240775402643053126309391062903112122707042688629668492311474519497776699423843439648893932593247097712854630223559989670586259811563488042349935273800985876102547396439059732714240603895870110953525347155562687055973149767071200412730622912224530208215119465201397355713926454569170301426114274287386430753508547139142589479300231725130162387802718401878686307540349614572246967076401316397036739804381665683905239900577224185197640844372244917855096514811397306641608605008318379186664804493833420165342890098033017828569107518741272213188434430731278618007857188529412334513663720160783513548858906791391926127667960162896186428818063275640165077266045096621476366911769757766760510352235798163729532114562046678846139289341222077640363280438918568540746956069055760074279452440613246807854142545144376635140863317176809439051799169569249651488119959167399980033512055988386481125139960957641865864288448505950612284831917774009970926643523087171827044268314485839576008813911515673369795896994405563694874604150131219537796708204680099810549140612370085540432072683730112893635300950592235211328840455790228728540942499156181296416087410637920607588230256903285642906216367788430234754748275677982491170205631560468387347803283085733348874898715195965179199341579526888320912815934434680240362805856537604549635631586010364049155942661204687877997921335437826798038691335477403479541802741659245490238179758487600615037493895921973113923831997219661905422709612169049011718803307326662704007647156708604879601497530155734429317940099343109673338118484799099519222931070905698971573630569659460064783799871256285977124838783175408998279689337358209145381996405569193995598274842107110432982902224034966620566861751639800951325945771063121140738446254784920905128660057379572599335536892094273872945907227220360644835899753873611775865944181847668933956281012032417783188526464725782920467669570135737511946766534842611871529675306594829554205142700715141492660398954981965836324097738366272804363826110321821561796598964515854812189786581341851686202377698216889672331789969966629925431030981911329234304002052594472858280919755202572481809913056333761028088024822486201719292643948647801002642694408612862631092705281288385817785524297110157670952748159531570919452145248718537588662791382727087797978821690385959989181799170327464264344856885484823332834231922179958808052843322666983851978954632141738445793248395080616035194429037513576439233516441201926208325898894081626044491761284633720916595389924246468115826849904125038610959184276815218153027629928789545991346150567696788439594404059884935399076066282885864602935137489760206490986023922228303252003151613101067985662863530907019377493503812748804321919059992708537905265934909989570343585912774368259224608218914786798180921431202099747615842306560455484250990357602776528170713105013028246857079373307758450234553078316134102917972038962531069374229402904075008343869402312847504840228735985646009433412337152832079651809896187021546543307054257330571981723067760038051735152084976811104344213970215280880793085486684046156641544586080470231554679939438868669288343478054421480947568503931736810799904923899443109830751563040662963717688413769833631199717526449331215326154347369868916966223967884664940938970775161767989714915354336519576921136569416684396711118593435791129777051812345944362914073011647103424132548397323238080121925980292396385221501854934562711427287958836409792262639713286549545003876157437016930784909754707421917072110256147299807604568376944703995430191738712086936742212759317155717998264627641380234882658031308822006516959124635125990056422164312155681715066042891820798990678932392990060887694214669229897534291306783747153327953957792917159547710766107839237525575275385190642613816966953160916618901542246945836013237503245956894812869641948987771284205723959590702570370441095193912442867392106712314518556878924357331274141414049986330992949092946767884229552977758196431132133193205651440948611068914924127261136235239239555026666033692633558736351812850443176285485603660744036332733280767275108216150801248252578369113814427807177999861367361055659469010616236264641535386320726832826422159062823670101716705898296618221084690511573256830718366367361368619211826318609166745907429199225318770049784501411863384597951297910244746110760510910905702494127064405054947220094414349907887126253953224750407145181429058534007583878610598520153841420188722971196066854371476466235003363383471664723298496386355410309928316778672982852251382361669540441231052345850516980469597147787659290649842521000949362708989365918658350818966759650100291362199560128826949627076241126336163222428106932966360471171563380224431624474896206403440960235868622123957484613738966773866736026455344985055204633564077258199021557049877649699155514954370710454186499160224572235373672824801187693808101633095949020069511330667166109818777964753769431221917866074341580399335332327721503851284251826271485242902058649414508194307604193997427917652281712402660765311528293271319759143275663220473917899440802671649687605471180654966175545466455410794125444865440837189589160206398764263340504155306577541527500196128076188223625597207077654287663915996350810834362746272096608267972771561232465036533226572458546605766640216841461509490227796890448439341923288746155388511363631861819785819157286753815337848642151081887400770734948815442537800929008164593099831774927459846856642905607463628271453059099466684864558448867019479219351380931372785726252493929584422164934946725592078489144065700492977383137715776851828290627003690884362447544205284904581013785671877298459009162496629159824655959058481273756699662880308299215716273249653087110332262581562827928998074145023645349767849883131491261610507220403813461531575982441747438916190878580558381644097395019881175186110871274327634088488832240360159022224759526695102840582817679557750749124716013138686346440711339275454039380363201732169597406099190553676878072194650198722026489906038213553931584783803377119868606959505060695677607925402503569407868730062553372436775737660328716673428629289174956436127490366034826870779815342841037648505674864326799444090411826700531168013962374559705487397931674531948955845875230997778949397196482270510797744317776432341911841929105677944380828058128509882084972594540424767494846007772573954496581472343247039458441371640343621152857239259604285982356685857136656756780298417536054634445401691449336256006787261973780198742674258475345923789365545740780677313654319705555570919338128274778114823274162698847693820043441810411619547454479225620185474189387873213766602825202091120119163490843942484779622223609830715246111883666742034378888430493043668504389520835997318804359841384639492865817896711496161681273572186619171230727535936035641655852146915129289073147762008042360684255054679252212280042001387872900124744799765422716909109376080408470778749647418192897876239726957492775572653822925437426221697129435892930536296702655610525709165188809150263990821066449702394092248743500468771493010493989421965291185964723857781258019499143192453539797021919024703127577311783203774075846564231195098539414416223047601502337958754305618628263201843451527249535589415959708536667125434731782017373146192296052231025066459272368646393706549269754489558228406889762570268158062764006337140912330843241275509347638142316870614021989738317580074544020775852572901425662071540135267936856663730360523270727887708816039107140814660753178082229119737891892357332973744227827761318871216802279314187198011460446112624371217190591669044029396100773200553920235926069788175066211878442482153122915384856612039841106175563671035212946314609008875312878413407183508801076733825301786972171335514399695599943229724891026677316968403706479890157475674421179634691942372277064042394698135776569595759079000275202399501194829766635820645199860774614505694229695041923691651603962546514440658821927349703767639853121455720552854454742497247049850880935355850876764610675346059136532060419157579695660994361672786841765852595257178787919041576527446968760700177875794311623728410238578279326712653856749511132497892076062393399903346040124836547355813024891595509960649051087821161581157839916761782988961545616159247044990468389280178220087195498563086162125813717837107103219580613028409476700058973406299006258679314696175533615705444610495545020834495814701508819425112256897722018846274547804508084912037687355866230930535389850434180645278479183083169112262504456608383672920064609129514791303062259869001126120581238463044619170695177891317183660665328326185488758992550684426701237665841698680038093509759337506964275701697374675470241496924555621456037536719565505497730346540465468194106093539162778227979603585631209122402277585694256358343529341835045889219956149212240741200338183502774168324507862281607223882832807989780462461001352665198351454505985751891374675544103357485830705838409548149203687150675949315578854510199551308398102729289860106381241552413399729751692371904338098880555449928577881929630311137459097308297074417261456573467822252439665132383134811507005610726393667750274973933932942643210183441508018401664798497945255969983241884595518411140502181405441486488139913477115778695997554327958515195820811086730796637064121500347229322232007652798958477085289295374336949042010873712419103282971947148463259997517067540580183211785287093436400343596418600516787660919091258575009201530801438211023575838481004258892507049869096540930439463586110251337579372668663995589018028642235286883967109345783744669929694752601863511280289736571702664191561768630915375468625247038370872357560203076439723221219180128211716076837353797680932723774789921343208191716550161584963114962766376093229536516274305735936352866936533412026453924270528254510080247956041580643740550204001693296289091635460429775485326296654409805508732989086891276490739647786566020343032479779669815367856364794194652528294597739145429629921759492410965215397644683719462496883832915362368447771491982553119212980361375998073307565189018094492847785303708790774911149589845757711038468188921513584768486600335208769496715486644852223597881972705124827091144589718795803703560816888437168751447627213215110312954219907923691961891494909305730043248764369415648219546789386920189056215740600056158789431792109453047731447498456996843074297346071371620481258159780608899459521404399792828218146819329055785798619810417270884765039054962779763007415062103150490296615323620674074902695860835115857096636659090746609649690171336240652215840601959960998417124450921593116685337888467700000753446560639690042714613108317609895955706713850678207493001447177658220772940253253759968154177788547813947875950847398148145854057740553313214154069969632336385246254574282440730287167024034630184037714814862539089905048362406174605998796958778067734534185700819760025946274704438819389534937948312742770185080900722252298981343584085743005279417824354876761074592314984599140652355327300689467353848810008418241018900057955775584937674577835440844674649873017767055982956673121852223083296758762110207518283226777288379604616841100596789503686549620753163256383201309251596378493816861274632993934012814853591388364062284266240721583951345312605627680560862709616176504425560543107422210653138557153041649665513806129337880501044454833801697968343994067784811783790264665124408684733397439517570573269672639128240750733734380374348208908350573350740128570137386193823819888720487770684152891542579079320167003233926677349482475383345146762520003124242584696050411659969758300489488236466107578280568730833529658744500226211751560664695120417565781381109256137431660596553842016918300093933566757207768051125485383539216251613227457576881966977784069895141241722449147062438932356163668158170924231274120341947205975343457507267501891649281592325349392540667290845364642427586642583725610496175079906999890724065496504024415204036598211028280351999937052186050620599469757594236294590626464658744094155765656481332121273780063478852297701630956268098400274637189495541532605215731766060296840315017040685997041371461602842117644364342817075286609709024681824867822268891294743453898644730452548629627944143077864179599189084397844386853564798077459157047605320314490957352838642538602958476635611269109201904211065854907352477460600506843793596198379133501730795750073757548990986014901148788683844464356621663985243200730934593129600755684784207898477466009255175760272232944304866874629384230995266842376017532181008047457629231235279944547641880534963961958574103823824737615390760795406897353387394177589255508029064708355316946047944919802936493179627651276367298256355174269593962931033686126607199136311763851346130438852070074103629625811551505924668541985347896466481166491353072814183140317173949260632917076768903985312727482830589396020316104551856699743479985354031991123281974374898818076748565993716997121031115988556391025660693094237097079808772948537074029423261860180945157122717694292193696970190501613680812212627095212999733286521430621437992586307970092141813402280853031750672946812085062005779445565246936743113656308712657677576968744848431089750897447915075476378137965652483277138788543931753003196089038412393926476246237965750717450452937808538574370830990024251213102942564073436388956281749424345805499565533658844893461143400164378258435609146909288392342939961214108276128310961366149118297449034692864857263163840662065355605281764908178766069162018635146604775619270626605242473215466524134039618657974801138018879675519033682145405782912306814117615769827794498699412476722675735906203453692139773479457120997542896390872360596131363587717171563698779574828865741431993286230204969824354211553267307561619881385456115535121993463533728164408436523343634380404661705255118036866611181350263235349124292087049184064659529972051552219347755024513746942521128756566447894503767511474859402506240149473622371275246649152646592823970076396809502676583715752246998545613289492227587386301005374272394642829017417611190721075033397048657685065369763240440319376202829882763082000077147218604750708658520977191673214174917404391255480716375568211550839832311083025874344490608253989099186874139286566401367822363006415714735660984963036183062765595464419225856262146333171527439276086857450325183917872599722054097108523921023554143987481673633464931361250699231344942561950035990811906620265560333513250814061660197606085412595706770472895184889934140894062780499721610512654829282608933952850834666982621161852270578778430352205526748523250030387192207118308619409075892514698458225901074201309077836705369323875354607408036042659699002747401024433892521502387892262488703085245336051879609424106425625189428266595798441542580712606351271620667807591716359160374207886137793593207373714226420595281537937870677450057273650379005095961146837410830412762888237328959839905405220664486655516479590669658690776362441191563382733139278050233164928540289102467549739180094927500114578594100400544958662623977700005479121574572512485173442061626971458658792321245351571561052388615133362992448610157279394785842210507520912405836938650957331852135554735530072013905864717024789486552952259323787621044537848575791170920984839893126549932136683637954745490996078907497138624715327044070202356361647054363122380359253239965659390834042751847477544235349336376396220450479072338452774962478786810467038199858778092890631941760588226569648723708597416676963781814193328079431921362662050296657412801031520711946965728466163989673529279813213281703514257809379889006665829796990653696424021517473938946445584616533677171177515790624801713006190632927320089461590737926399722060021721247638430818314100569425968739734784580333839079930248248945837216867789103440530207132851705649070134172168768169768483553386586995608138234337267417855530231416039750995083896929895712442769381749759264785645472948202413721212305416072785492054273440402316192415770702582966436001484017769025381036656725737104476299986908418980828451589989477465834348632269549977740676224110592337166729503613494497866990763603314425167161320231703808766869722667957432027063173948394311423709698491581052052245019158402474864030029487393343552000158321818955573264491322067901671319103133802530621681392719476926513906249841721382270121104662214513961165118468645611848637693500307483119660430932533989602836003611849654704409109299468015891429712547312634876818049363684953749594222395396182430933503037968142903760637490650504970240628909962616486412648928161979637399387622647306922582760586031261950347130445357677933176277144836574988331676635814884540583833174154827374349112205111855098524683024995438542767368312275332366124635716015388673648442027328191470298327934139905816633982794277799627147490151407503634870019632231109912294839035333692205169074948847284065691500897367136692444667762346825604440401287558859719662465883654439932210947723465296524859099932110497530586565640076026178820155864563083169122700292539380734179985403106326015733748319948771673089197014374649411231126091641058584241052121185470141444673855671631961344959001126777057480119182834277305862189579281299315008712909248463611783314387621818145634497413527281495131292493189419358343982307865217941925049957427444288872776973152149947055797701393654364008524143054255534226621694681305293237915806375209914999665281900884685039138540781878982489793909986526312103090365674380645015758179756066431878275496783388218071062405005622829525419186026336094834556672183245727069599255877566259827758857818032971175385226345151279434943678854315562673775430098298376080815756036791878689682051216430031976085520800870962205731654765517653287744236760329010636736166409786983502993064606969600572335952023035231315963276452603883110082765242952766439925134687809810731922075347559543060926390801624516879335460200487395842126331128861505141689723796218913344386233161544146315115402976645363405597975872531831424657038671106469123550914881676259248473155823689747240834846759268500652357156320743789823093646673618072775429667211412868046393699576579656197903123836651274282813537158708493476819172558747898937258708219875393917808372701924543649905869162638424063907625252528554953791939753379940349981941944925860988227289009671310917694361036166103677050405422863293245147755698688374195145425673398861104691194599684324454888085283816586132077961893909542934305558960700837448560693480406162553642028087954424823045682065559158894666787517393920570759821461861504711105298512739860237374996720279941682797540330987794976951475793299650895185962021759709493330754304745210745006731352881117284222906023288266422399220596849409914527571477253851700214207449577689220809122050395471778409736865648031347464128203671361589320786787726988869178040291751019486353715034215063347413258751260262703519671262147481361307205195552216737421131626787479079723171597057371720498848555081194900836472600378455110981582567703099523950472475767513865160085176269665800075623241777886685844256574897732931429276006432134008159928927404786593168733436161108579666272682432966105562519562421600008231960183027182493750080279470443165269734809888191974062884904669240352108706420651462830762396880916725006891119352606346551831421685957446621520555113238262456343820149024351837325012155026735408265833509623445376716683051789518734679488389910546418249424363247487500976114427512793233751756215718216057308356370382055847368883842196836318935727051477469891498094433014851415881006489356785971720199275471308741253794804458741823630089721117164399344464709341231524291925637660202965606618876492770897976262938594154233843119440524986988011307237672978577508141444387446208868187958824761947179719889350076609274075944816032387108059604191558739799072843243388404571950435674835302301043095405756691709031316144114985873384736117725897246123082086243811631055849092257680842289368083251871339199144484644258841444646169575262638927785108839323354999267159163434900414561933891606644009858251920938344645325229999614064387097027152655711795273096882440103082464549519421910501889805711504894460050964919706387496152683126040678701184534743678437661098231608801835583589131435357491893226296701470003166678958008060202690285475691260364973972661110227451896816549080198612332511057457814793044852586527560343650566807970710322252642341093178243979242434540548420459240288318902444891489071407641758503974508664884983784978100297714800545992516077179617505184296995665154501442496818555305046215415176554811800847438865891322918798079061788868004731533311012620847526677413994658282193556514563689033167198819308532195990792771593507733413970483038447500578338238249102524657354875246124034602024290614308207740053595827761627659526754849440599739115987835833137583650659098943533788645015583937950329519178885438748731332311063828103727441854080390244240446116286601856681623444726340634073230770399677303472133429606584236045898625279082378806063366635804889714684434723574594321573356922930476929630397692374420977908442014584638993222247455604270607371966782961775186528869423446478570512438071722583412909429856431478961413227879657280448790528683399350565639628642118273939196167850116750845563970343079742149070376468032351334370433547039035976126688265344857767487755552895708961197763708337582333244349432622818027654195963467559825576244618185253107131841584999441187849129427358978606150619511857322577327135806511203988805444880335705441996587377990952732230937397288656852512374726590922898477809290278597583553622624826915656889671893213588843144666107870274829612840790098844271331613623469920259246821946146599546224189431469650140261679275244031201972980581000082018396520662560763620351295552684123848712835713817846472128764151597933548215846555846043608863267607451260551831922121790273124618375378166544828328625010624815718066871029368539957912079225329425689078779835301293067187999962156171781627732404691126597112323092524375907294943271347737284789549138698556105865733102937165814187459974083096921419300164335146510390395207794081193422378619633361091706341258383348211795493168160030228020715872519165448648837958885535867441445254450293714360565282308970955180211024802068233040475342726709236759190380417291690947631440206540908620365283880670570121210580781008111474832213909727215081380362529870497164680747828883202054997263083113657872829319219779446425640505598725045894148672535079331917703928513783722868177449003448434666422390305091599649132488403312165691301431573303156733831884891714587854845074791152708801199996004011010769033317615340375083325266650740976730562304999622842931043977709691337786927751469226800501196949625248214039686972818588138695898912863316237027780087398663149869851011027668606082461894669214626318719408841076218348860190777375290504759027124948137988645494396106165169254353165243764951539762200680954690423101209462907776764068114675455634079322297375725858819598523935834098117416392922832339319462139861895824254038413536151244798859663499243284569782429294014043188142511075017104296382030323588143258404001898454439376348367011797411083416036285533572147268933760817244086162709613207845219945500078232007061566049094822322175283381200993451397693710514974892745951062999449115309362303529483102332176013059822882387775972910929721122965427816271456452950162423020841930907799621990642712354008759332492035659135551510268942360321412988263881296612167124383891646273781888904848784987134495254083268232209690401064871605553652384980235268397165764817569704717217683252213544985041491081295152381784325792547165772289801197126145004837003923811819178311798038750976454789803218071654848695445948074476880657229831081489710389374152995569447534324034827747010292748497223267324271999279229586862571644942932528941836540470435011543219168318527774404679839343945761546963007578204725572915021695433802541622898520285184647981509518811021285504790346102618247330570875828010714271032649180899761284193115974440099342550754008180176281010248460510728896553879536938619521838634493858429228468274124602467284695481558440832734653479740061625878079444276931102162900576481449181926202010722889161588111731697516097747185788106480586246452137635487993328568730708248647215361167671050110258810512443607573319931804126912582422823297909776601943885281977029967113349323155249952098341306707213336546846103187002748869420792991631962041018360572660050474728625701380004735708693080021436258510156678240898829189775875548605926208913693889883294928098319781516952479929001643225110322143651544254004751094175073170391694505418938024015631607407362192512137325414487678755568865043405000646229379838064425588400749843514071729893916115268232771972628790171884368373966756174708694731283767663599988422808803107176321622213649971418444147748135955391922152472977243504631813384743125386600192504129252106829600365008209503564802370328588672223129900481581620479971679673517575516455658007813408241783392744235140792298270201935283354357487368671439443087244753187649807663502094052621187470212062628663102504714733926891737919047441742978429323906582924006419748477047073803018486984943762488337771369184822358513787320431869816754036873534199463326360856581678528989928614660617398357884829086809667478986842954711616701511639369014301736131279698630453098411930965437032812008453762068810531239642006017801834221700299929731937589988303140801750664487188048577664608013642919571929664823162724083376928190879594943622941851440350760743207045332546204612767336872890587688830019335083450244517753685059869397885105054756052112541843717452071462786231834337806063026472026359740124382264214528265385022791358939602317248840578656993718855420956380281153624382247140884093024003058123557861487664545208992104519681007476050679415036829055223411168072463628263563782960296916101504474951812127357454870936593086040268275048132026805447331183775958849847350276966935627812733211266868137209448226045188772331724591552018803854472111051617363957231028771814580010109059458437532565658516741042064558732228528655917560805805897271032091944744731507305205282813594870707731864825581302544262668273959999875469251464963812666824595045734010890176643440894130614712228642527021612162189211446083135377487138618307224445384022650194951714546159072622120530336675638931762427345213627320509863201232851292659791409896463844301935327723794650799139662035017160619947047002002613832228143102434649672846096079625665430520429294966714587524626106276370669459571902622742169914315879231730741061440932723270963969950263607248582620877228748017670480537764237863171183092684726157732015868737030923670741947949585135895877917473058623096868752959857866165155119064510797352041720118603308504380567975078031109093109755678703395927721821525861862319846403903362684323631170507574461710070984431412858636711170629783833883019958361755226908849530136837525834132713734184902910837779666066056054804569005014214537121516833927514658644762359359067354159207142046290252771729697889729078754400893257808619417413102148857112189249203240319844632876170043833345245274329617733590844592547883641025662290387136149487750878513701572498674789964366214829576841022901880710465743144007022401706254529125606954428084189240072676357141329416553830475425987033941993664008757588358111350100503015086205291180125850710737202537339921134674633105048709663483203220662889731450807537988217470745252695405887186219340931991293216436434221949693560726618391942632622232316620309449764034341895565952715688267988641216739055501725148524201388369896264162100483331194971994401275306256785137629242657587298957405958474036342103854678049070434669165400775876540781434174340495202322741169570579159420824269742090219671554010984928819586408334295024524783865188595174519620616117089679235462565586473565269026027025863909326072248925895339186789798476320925380388118399836303272036667330179828511200826807737610303860979949152972398623375173652642121754984965299836329143450861214633595398977927798347776645044757463365247759639370358064026279359468661469046064536954495767518550025347166111094724650773471749382589498001597663653705292725394095479779843410217545661573814522776468088455839412938332518448499171992504568553867017165085350052321914728881866920885697353462880523555447162800208952158320533518670147895890870578687626005656306148159950206843255963010792068836608164198955736398706599388439459997020493176339475615821876651630743362775551328215862490306698820076713224777230191183429644591656116851515127204077897699289709355229786461548107650827407245554698667378801177006905883946927999274622091172472494511986506618272446735679581105042546908467886058370762876791285039401094596441129032008645408065597521669049820848796690283989024223668949677821895195063525601142984590089396625510156789085731503565100065809664900536142954681882640533066442432333738942183263015538275513797960108280233498209761290387068084326605226596065088284259208300614853902922976991983559045062659309520392245047549167910613029688286660265473006804938472150323730877308173302201082252977610048856940824025923128608702629524487529064736232682540479516404328093187679393973307745838711600750830966305677098697929606798707478231555203392017160711663626483425023203519952575879746502753583402650114952082637320720568311418609623780156456851303398203513972138737275510957311169073423271733921779023586456275923945773209126995300328434111723897689402757496812127412381619605222740177140312849202179920614642425400510092626342643198533357595448334345943681193983756944458882137820174649174391485592343496664736725684022824174572725711200546162723409580172201391273266180744631739663944708718143905877374079885104684114897365130791159225294743521888263618909007303781162375230004308463611299284012530857666266995235117038562887145249013597873878087085458974265810619751441759728282567537354713381439514825370339941376431505724012486010508800747063017566767443026089177398799909343525350761782008431339948063957718889839067335456633314568725988556897216278531129237478176986790309152876691124761979132995196665123700137683514929199689446524056404298905558808777690858453172537337630307660852481113099125142921861215643629031788514174526476581187218230977621373718010462509075132075253599222971074549569840806445690733938876449205539229664775298919102513864054861952106696493168238163255525700190698208731307679533461302099635504195175539980826362759499123914472287310941853738560171518606861974584752030483399167953208749506368980397401077340928721195428541074610853822876596241538330012398654593860500960701659472633800273648942011927466999731752677098456020545705073441929573586889707709143693939301742798849930619336507042301390482833717683365693286631834782899923880697315599522941434985254777031452175828102549506239064643892330491493909392685346132463220199253129657170651461571871037463851599695628269740194371485915119240007885584437141809301276588638792987886432479947226618271539866841830013346419860162264160564674137259344329084454515171546370187834384888329395289421019122322111445195379642330178142245776904178300841116664577795026506889215226362611540173978824946007531011928492054380446528924096830037428239866179783201918407855758680096070066947025379736410604497735335640467778492425379415548245926414453685505118895200221835719510040586677109400185914311962302323496352605370057991077969578231658252065387388238919301538311489714677173931408528559309002856655194894550186377827667143916405501866017382166681582182068928916940068735260039243376722618193534172977757158001318782343854356777726898805678628053741031000014717235900505510603326217426866881060083786932429049080946998934086090367287730335254686392187083017066818389081396481557410193878340986304307948531838139173077861768624601540940998093980333131721789726926612262981124585372245050555405081628705379378829462055220026214940582270429162374636732576446535512302355925466440315776712948826572944941171282186952099867439830842098567928351581098043089970124810361893142189968764008657942643796825701010792910050367026328637470036361668030172419220094332951470150160480733774836103841534233957322904202599058635694288691345452039417569329898782392482791131719992227129795050267739358980494793490267778767766498775736188186827369087740855407425987129106932579951103174137859565032998367882987328952038689875918558474562939529985014897683948632172452759893496459360725174378772422636030104788898873064809383703289921990729843228234224989829717992001890399833171695161605119723289117440430092253146928738108486739069308055651385580934126037120816359990791333038892727027980834993897714789294232218577678042923221142077017268250144200909870450500192847725330295739045359610974768025531114205002267742030311081476637440743758558939873554510001892780242483141372440373695231919025517122501956686684900694060964231354451981302071770376235583706545427124543849855943954318989501469845126174535712818688550530697311562866121675722826595542915443024134092598752326422108446793892473607587391217287088325928473125025427389769612382475065447592558946258630236084279348586744330063341051137537131902004706500933237185025838927066797871142845144179838570471285798097335554923345307592611975138788737297607255850294348195115065878135258205626204342275075408993128864330936882949214069914815099676263053876342193532569850450622324181732933226525439001012978995294526379682728434224703970991288322280548234651030115116064062543318786409011257295902584063429834284404335342882006559971725827308953440082795094508372247842795371404088437533541288772280057999056386274707508637035431250554012720231041529830654010957467340611830098089106705671513451710488988993693606499122102237344507269151713882934718683004437108010703932321236257877139860736603244062046983179115418025514126889419044465595747144566698650750703644560992429123151851354106679316456559072858545025902838412125933961904727097204121172614549285836129211204528094518938078940412780943020765323337124286843288361923970009709625007891039336117942270770266183131080804588067830140904502806264727403363495492374538182012648240823510440944456992449187878651713413022673677462131886158923603567366954172703959670156420405357247943173035098922264550855640369307648361653025316445162084696453727206258485685951849462438055825873490534549083392098654085439032981340536174787702818553269427660793482867271840799957338828897960518541789745735372642970841066823312117509811932750066816806791088688767020085109693325135242065544825841984356800903140710349405150980788706420268785096139484648626749585346155707451986049257776741022632416624270902677118892175910459812480768480319852518814589961470165161412134048606590194248947328484911076381593898254794379833656051800622296345021267192851670212892723287446108835397382301002687223731387048878267872653009118828833551049257351899384636243281320393004931489108169679576188229242303205567722480051974309200165648060215843664089314722261728891780560151330950853046283819079915627480443746924617563581293754224453148341127298650075822492185876111485514278761855326153543306762835364522480577517019979707316854579550337354049515757721423735493323188286566093767114446246729111789017423402247730985079747477564708619430914787533472281811733817746461471802980472413194319245397127792787563246625475939316924668866753059039974133976389575229552737738292874276172682336256030221349454214391814822497067353492470063267016145717145560511330769972090818482009313978983421324210337077050732815330788450320690145788168742357654211994376642181203667260194304054428560999696280712587616281255659888660422148100032056487045962486042750166201191593713312090671066060854099451860729157180622334849620156591170182744229551267546333507222097218560472340510639182785180952618398837955112924348245386043426850000950931909758127687173257909464919723047419302400357608094446210233141760201850821324793481305935091330087824532234533038345398446951484699510155615998626447778162417745994894167192274648354868247926058560192254120486982886088102719237125587999467976055035632950094990144506082930898158138732824238956014614815753851460921081807785361470630080871416517121008899920084591860928807392193786983766492428047909324598706535283166804797524074349030046636180979947718229726938638159782283044997809410478015477650635088735659133209474169815263533121363754493080831119648527361346946401969820951201400041229479273904346787907827395801735149720952833869202703181772932606837079088897664680606511719490721084064607346264052536452734450754273559425344020910714949634123665376501032243185014107057460052435702805898314510236791184770075993222585051953802761761025489751939679671307111838375925566612112218041396840601215089073516701190234270587080896387081858224777817480924573143730351346101815665860894587974091414528786050691625680864880041387934610737840717976558487144969131784532723665410787374439683633959243270407728438928899970249102905299606099139081928023695807386488341796506718069436642694092963307091620312581202864240705541279287974399001468633234749209978947235162340094473844225150356213861822148873815179995338138631563413953536692140982016892080872765513862833896323823760569050373735594181464163282175919181521066557658689329045472657609034660738486068697746638797159889177574024527885797039741195174750397411237680160550232656080219084892378028639302135692738131270845206132242898429281277272417948433570289980013995412445939675149977344129489695151152246722430125223730522452359086034073658546736849480845568173475177750582418596264404118114452679754987742205253920733309432052097108450798237649775511741698413361663393215011181992129079658250010231386588476876739309156625057014157204273520015439964686998495681829341602585259692930287964316979604840113004011383028217070753047918834936678188596209623223270544590101057557523022589872531490770864440724102766992987938373477885599616172086081927593121453422621844088173619688406062659157647830758478192613771767002301929729038556092490683005067229155926529933230345735616556358957425598096179263361963805659993772385359556704206387292544753094462488982242272100267030361021153155451963976758033541179781482232898185431909425426124077044973770894833415672906347681213163476935882449537819710050504301247057808509848380735637400028506824398379331295712954167878767541285149748820916944054921342706298079325609077255781828806883751000525658366464587385854043182025496790435227054375957527991826586501369124989881284680958475394115344152230343127087107025335753113048804392956362296038167443824432196482371693305678597462538835506376287344974124621262134874902572391127179832251792275223726665218293083200739714891915572744397158640256230009477284920260251186309505299355997169388845929056040659325535206823673362704881370286371530489821776803808907537956787304384226464291403473400175906488765859784891113828802077964676459423159040167118721163661597225071222088623750218252481864903688488864019320285955505441400207161523894037160284736963330631424191479544162267424646270244430777106494786980745947770914721370992179436826883689380310321542105289825549738774644283132939925290479649463669311839219635039649298450828565752841558105002165139461355634394994344970025307924808224911038176992413553703813904669064562806522438378185810659597461672500167471700154203052297320597654756067828706979871943122786145493733005592947605621950116158448616918575308626743073005338357977997422310247410102649492910368313878394808378117795389664444604884103806105702061268399618701379137741332777052802436843650094264937840999806156237722107974419581423774585134299858526511500713578468961705078781441578739946788877772300399754505695773799807513171815979624212875664247897156980901106518727128501609986128403140778733273345717555146941117570446293804312588757989657916458375300353638514552538297234780685351740705247891514530621633979467775235326738737918040393125165938089376497516399892722779854141050777047718957332051159886906622414225429999255158677018860082325025878494959810984571524463616032469655265213558786316399747802449309404223936663128904923208627766762369782120002801004859335975617036699603284997216743288235892024066562060379193995936432696121372482339580579611319569678990196912719445706564999344391805242222333166100368456484953309607923544926985950168957622850261598747760768980950759666942521309011709280282021011101623502864193134071968539978512963196429211916902444420933352014143441737694457535867466421256340194736395085545049960501121858316721074268743482673418279250916280415805681682967056668074926431697231043426498404839704493332885411290364462710940832822901801018867417839019040561434486728050452826550325506413556038157127085881239148540189941470859660316393964946457985280078527475890512132548913191206126761262827900613881975900575224869139943791448494032941082258524191937901635921586512649156146310097067276043926774165700313580370686658737615073148973506654236204127140166725027787085500186077480652786807156557621292819178950945518337501513191846563832050678897057158153810687231577220292384783387004061918051709541461676021776110537953987501274082739343422787991781734926957683255315052527058534057982349466740045581354314699394623929980693605863226292209202620595513874183335676859427881373373662085571622684381713583615056526200646494382159300774294859084584886229868315306043963682937278414291510053730711372758176212059254218053491245002832612720554177962379562121738435407001932662957590168266686067143418395901357537895600438062779166252206546970564684760167657893583058739992228308218806658120075491320390026146514513503448502028500858179668316384748571925805192475148948397115837086141392432337002156437528637982737870971083012351022723273219672127585936257506817996796761681657698476259287911589821782080378380353563088145485950802453543429599656100366849080263556395514100033502521855331825835195165838948945321514759226147554938874562809587042149879083762996731634394331045190298406183506764496419590741038272649646698991531781755977492855173726944569046371981354292221610422450946623459040962304056257356853204074270305073707342460911440854296991388755558030531975700593715994456665245410412760060268687141572226117997613665901945180443875767775326544784750199623020390801571075320190449749958807896799053479361632669370173050559839727519671880443877500449300474195617639013695358368007170525619075892398624021303015436614826712183735506735067276844042894506633216858078607979820736275159824498909360713087613088228220030019315165681089446368209304340343850998906282782832070614862970635628866293685050166346260380611308868301750123305243982308425028867726914330093718977763652863591857204640528749908956578407780858714354415003441480837793907830532603739034347668661019075358138652691368680673710111447464827348821021434723772587359755366305735990042873739860814858254756797970262650140036407636183808775274070907928713634573950854730855280854552837912404674208504539278923764248547616147494035710715878614411483115978208238253824759660606685029628492860678497581864631687337104391511613295075980553406106706965764003784525502071174074080130199306498197834641651136751273279346497098917539361505302664357874736636810430218756339244071637286666155115747836008894490258129845181423894674293595427142904308782158562111569573890002972045495091544524076902748762037683106324653534321321200711187652097601885920692925986669740470092167579551692223383158222261295209949785823738554961614288717397279601921798289367374638271426205438386313466390912044907108499319878698813321182831605612834274519083204545480689745089914842031079878077376577902193154626435795266986535440776120057075403043943650672569956265370262580047247757791700884328649719828760153223400530311354490358361271999890935497784824865926611746941475883894239864786137387657846958530125332746938227875871654221698098505368864233246336756583463979745705548719107216343718738010518404916615982850330235608128145729477433918163280351481614233025911722974888810959518645701957232003243349507100178907899990861857093774019159076173511023380204743601374387315075086223020519550576488325509053034302311260774419405407967418010142295895455672914064731328129579986416068797897733822833107991540029310351506296761045924880438294201949043303383985503400226060019049207149590871819082287907646729091719232009711619740658591028528139740981317599247164645567390611108904390153796209596423753061060052034420058665547837599916104092327237757118824096104082159464048986477418040895317616331565119525063552626642435324051667858531045284280454662433908527990548910710094509201901348272211477700181062101684391072834563862804793447202324064718561941743712790784252414974569901654287339087829055785099835293775698362537559757032214193302823474438308488856679882164640933424500567125723180819672723905300955868215852204791053754400838366149830414553512771048654208201202561889754013051353205623065184888118343363015762475490453120357086826103654469632496120745355864729768710821695553210717312898557899218084259400028831596209969965803472068856583904618544818464800732395955752499731194263733892437310293791214270105214332972800293853959612836164016435852687874217363057695276715829072958389782002351929840019599957994703108936511652964294333522867931775594948842027156420929025238925122235347786786643213507519098748452435072551323552086695333614374464985388813208869386985481979098208670922278272911102904366786875543723381913805504426166805309746747647556274348906610992151963314075747879190260819128927366553207422316811772301047087944177982630416959828832405131743347039271828760154509020507328827562293049954465654949181844633301367497152307329214567750866071718652781188788072653384862808074792274856557528501172707258982969882849502085863061514043353629639995941704526391141758230964481058354295674198668312795822204006536604599705635568816581094831445334391397766890204592741114468534171521502794227490959615275301771481830987784979185783426233179129115131040591998629538156171083951772231678723368563507705600418184041459734288942423342235297774875969897220198436566771813315609165157885160663656731829159027279048519923759980346516483539590698249090079333766493082806073055519005158628005738674804986244734564028494012614075750829056658461175505945270467062337333814014739132558449151282349788306916527338005861045197301915650363695731122242572708999286391914396158280235063698386213607683898505346126291881322010292238299195012350896862831508058810664988396120526294577845750081860210919887952324636861244843672430862102671077285169365768438950053825764376457508254467864573084390183241970078725298388313440383559522259250602453923158054533368096547452166483199290903435559334237376868385138177671854968939158908756729369668048091556591981697385620812185183022662829026668887588924884224701855761553817797472511604213971504532373486340403894321566318632832911665130648411656755620112713011367874633394297897703791143792656590005741055434239146031788280656631563054525296510746320723560916431189822047173737638302636440186568235751056340895495011322252177454803900245502464824199383870539309726312552387671412884090911900993464398095521439977122618333525169409230798251874898071687655681393950027209297914239260610882668461360639466166956011560071257884862952333326839775277575271214438367574828696477154723265683630714949488185026911894487854619928491108626649033899887071197498658114409005208463351457273040490859230101048794740503682285974099219716806828901288950852186293150821379069721867579862273311296670423663114568526133540048654406027645021985337895667153491094421908616739245200938287533352327917947877824825481636508613943374069986299399904953056953185270079366386338451318498883685946723512069237609344531133664536309067058159986375959761528266769916116818437908469956637993732355920123845906483460264018650449499427794442021572792156729082109040957270385478189621915036467152350055823600871666087062136921098322886848078914264737655108525842581076050722118468687125820963088932517631069364385979479822462327261481442213644877969415064834415386866103903656142648638552536630033676758867733272199226207290507331488449121624015857904458115387862206862320588523369560713628285063296711721370253355829402366921397218369140401547258125361570466615753377382078513644552059288749145579886980007208111287071314605223798509401013727489948008574431305465941676759819208831500574192761649759599151299210445134502487726551881206402153263402946709692871218507670660740060012326915230363831166209607353589420956133539709508071685090337354075477430793717853409420372823322696549790195859783558553735227310646865471876751941336049587110247459492644792622755580553940221948325976808334640297486308793726268615309880429836513858244904102899823426824957514170244993251684956981725927398843440053100559246434314136989616012966847194177097376732174539597893670687928020990728278949198024535328086722205730818373493804118455028074236032791926647395606010491933132126473732406220649232726051651741048859007585390536761789427635359063112295582880063752105933665314921004626655147294589104791345183287868787647307000653307477000001505903606067281887414368467957216209797573597562152987152324957586514499807932461832557850580071370988885194804664282718828267558309049480913165003451877650194335503781083908597835870678291729493118895055678519495622278845447692774450751188492647146752015121616790297095063646562388809984348350590630077922601478857430209249919079329848588808864075172485784676833145118048893259812777401724255471109145081858644978997860954113937212813070993656775326639671069240943416601146629723876612949965248658508911136995163631499584917330447734033220375262886673926199117358842801598377395493663553471562246590492219598535841329931677953243353813228312113405198800447762051337829044403925245307560749966050674046451426329438111055951735055223578326008715442883308975401539492036852773956161010366252409532454734420104987951720330079208031842571807255928438085511582669463777098607080302598421053350540232732174063588715610439161860565297190632455310696981374697487702573713300417530435089066045002358976059831401703411134663070372679959662945419390086988120752121271019191790708584270451815817660648961602108315551317837864868373725405660989924203776111233521536756874074492581201231483742987384271049114214030635086703463690808927082125738249821119681441839732580199735906030386125597065427394045398739515341437386185495549290597942239366825141145943380955129581599141690556429433958165770139581473742240328611211334907873224165846945824834622419105811996909687077867356494404959490107074624852464437523128671761719319012005559049154908797201595731206990276532248540413974703023133196657230905826982253797184869762036322364781455675942872398346737323050121056417721812031809967494275038779672256982446217448534953198046783956902363760769259961932159031507248348481727217651320501059944951418675068629918443393372605709244916354636049044775071592329807065725281333327783785682806240780369121892386792897570087168707525915708417559373993337404729772961064706599140363988760141786885917784909535890242494396898569324633010716900838086246186282216386561706224807624305379548870402212703147902789518730955212694797868720917089623555220730654172595024091339802782088846804883286304175854963585302298346277932254844291168908196827754189793990075360827822912498817036673045013226550232235040122651393381244697948528661352719961055267603596652917169490593521813754265119951532802101696926859986263469604154860285854889317362331522990019181987511460997654554466545864920776980391197563897419853543782812347186991353439667859667933655952216649870259444815782021017811006541913230745205464768209183594088858975265937310783469092771929082631500662191544819022233825288837716611309197858600808654150965004394772584190368184292957038254431427784280870989835410175495544854437130186245085665748755696193192821961967256795879085134659301124383322298094012178464962585959186890638205613115118405766653470452198132428997185394154864584357809853899090374360434374703715944683617699291967341352720825038328685472047453397821005020530499262182924693133853901678324524443186636779446620922224069423598070158972234195601805156312020403751376244616935651058065696870060212426422651986702767656750492877175727771810560940752001038772804371279143412862204293029887100547800963666922240407337798870124394597555308452073674576053401465274848173603052767998430282718821045191178787920842592817392660353864564422437589667165271366253352540969878337579830179163490257548718587127889630562093084145869003861347929741941118430586600902209850436012148378091133818624630355920285520892379754931172246593135432416131955476832222390844726889192558010768848308665845909976669200429370880583433328489118974863855526298428872940259057965463145719795501956986911421442617825318946302276415084267524893895575683524663826267253766026577758042178538191529707913832661443669474111191084105066987754075131007107527480395638274344928351247349077525837687404570843340116059904801926565249221744588325439708810885833029673736175678559378609435495936325715912599762667828523913939995771266933871362691361269189569177957763037821090684463530959010952685825315146805795134292031419119497066258009011487253568851518486708197970149994576758319531750340432971958475911461316593206791350822336449447871968485534748914562227901610221188304621470709270964553994020411864701489027156297706122321249363895876241237014545417826344167937510473585281637427308043258994795967461632695575793413209465560933958375051226714263073660492565642899305636401554864081625487562251026858117922554575845754322764530160570478023963437120411826149685467667983472251715827405371396777359488137593803304641489424851348756240359506127860006677704160320629936612904182143270859133061389103813125040589814856093503153078735560310724158154024607841484628495587298664401236794828382844104260436297016035997346447769970095978904014804842106930168188234291146919234169609092490938396309208361593609895584135596033681095931634095091947783894556923579568839825754186413483723598030465690002501744000751962511595354369059248887002219870312454311098245539216238969494742362170360334865200026760048830424859194438811753318088809568838050357563818894283242507080029710730728377817172105612057975833143941914842586388604659877425031516655815770888688507296489221863340334029434376780317753342421676288889656552688063239365382370775499958359663341600764626629872759488660311209100111498525728064725897023514268254258240651480898704354507778669399348691282441363498625135154106141010304102191548431177455826350977801338100249228859569966281406749030758614673046211286074309976062415843111885543642188557767591987194944409386356879989565558518889877239170996999419497409011217179734008161621797881428069993230343029092707455434869321138671845386939278575118587646521977425692014063239689414230376430099546933665039565495129907997746791953813938099305910256525548123200762955986978928307272556268052186612389524485714826936507998499022737753610487529899855731512416752550610574368947447768705562751063794473766892525567589724608169518615423421756561223615778560872314074788501206189501922199378190417325130274946040107521402577255362116675932368908545976066764665417647245376409346834130455376873176685889072227489592035030999041361588474790670263878858079882777945925962919355646953278703935744691570866761324705953317016790134635549776789009276189648547279483637795921808404371409774161221795959609504528929394633807851097960776826799646135608639327601065553700121752055969298094730381826784555567971997407423326378851483233535851427258097948956950955779697956410427008515663163855926133674726680118647352158443584533013710245286057116672855842537092392473357760642587946222309445701463184823475639640301833181864672497254944740825238417610775486075630439712380099037186382178462187013781514050408065307258660582445080038368263810576576677855490046877698689081138469466552326669124260502509442150372517239730767363674392468690113929329837688945224834885379649438574130910306184986727654528119214758648182599090472207745058206574846244791594758319129551596678019706123828593257091458309782532344259821194423131884757421205914422262770433048792323499586886032831966165932471000431505971345045291888713437850395644115991857139706815244492111328087517145246235781723316416285019307530814465107494018988152855802955694213534753714000088340029457171779584229179231886089945797809208559659101701739007607880951011446068846609901086623540269266988355951447390985300149460498489174621072445447487397545070643141811859655882855462343420379243937861378437894730397733397914646348623991875948505912331503376890009672312298730051486584221531607802203008091407975052727880259634279700274878152883248343998596445607281966117224820274512421248486661366790638082536131205784068423375055223696485091370850446807271566462506279639815524956254709378136550900628492875668818837763331532297085657305835914836057500586464862659051990593641862850821811316465551673252174165132103879913226489379484634045278053533549261750688059197758719048440150468804574507990195450549424006520388445279127437588766004911003313882612393635811700156121664859006560432078199498233145502860169394081730294622148852373944718455724210880793149557033732118035355351053313278517755325769267622539290364732994555374853191138958420122449006197230528534987494356060526471998308856256816602268880436631393393737491067658065640846037783835452699613794148459856694778926947533697333935484450319691694674426863118586424710113588657157337346411285409220255947791020177142212298179758318471989340935464766107775560497878752839275269676659143931281474511015554298933781881963051256822209971415121362127845645197544004478813842128861730724079146484711579175576006834126420929150150816181523673558237175789545778887006987981614116252485067148656221855061407522438106028355792820021166575058951468788480846618988249507903441015166921555884564357475202058715159862906022057368812459384887760910230142745617789899587727457160072075869716262401218810884198255803947288934980716520815982475974205294502723281364516745136807436404366443173902888963576585147016445737628039380093695264565082624300765464128295657544423625319730032691026036223692418707281101589406404245427513604239761619478042097754591321120382116139284444363264858042763493065002721124865048614447272104607127325508397467251316516228304584672366701601543736629388682697628432050790700790166418958217631437004234886578343571657806590558444912695863441201073396726247430595121711181471521059497254864614579909132966092395670131192639945270773830016079982770648972327812221013629969067719100812001361169785023538816918666971190560098242770394379564081069106193455046178989366018544281809377254502895219726168225904726932845080521320062477122417482785532183064924073248655527360061676215612383847387677920939439717944704264155525862387578018756627367177282156352687976436731057773298850233384673833925536112888170769285792254559727417308676318628267729379613017252704798130821991467412220377745502744061871462057772164904444550986098343232943084809824684904190646014857816025859021839799717424985504768318416064020217922326901250526777794199408257690173503533871782850096702420866208827839908982634808316445456092220444404357284876815770458939661236256395375298138349180757699671101980082845881846203300167468811978189258359673184654795408564594063782476264466054922849273985723044470539216475744601836109151083550733966677367365978310134194913842869043253194177441136667643973400856723871795825985883948437328675379133890647726596159985604396809766040507821869836292185115006251055765468720190281765306383098389030159182013193381371407743454409901050311670780955456854013342625499415081468262479863244924043255055549774005737716885404897717904803178533338257343475935757233967746823083374396625539037592439854910868694036563892570864275635939055762726445585817452179610069836150162307926993411438306816997434630725534833420774996941386395155858111699147729258923589520017501096423461092738797574468848837467175503723479535740444661189344097665864968286554075754650963144400926582977204876880882630138273644840622560094767606270907323745876161896411759225966053140211252548694395240224817840025395827119339367577019156033007153440975561104893518598758517033943979772239281865892567995129498922803243646717225590194138694824747128613610114512625713623118897907370990439674928997111924531264215025131382869791077151818647323907377012549070266116466504505154666323198391171430879001169999172461322242020283071267696118873202792844668489861078733100807433981357226621786417094889860145755359144993029344618811299895093880774727859436184164526826004909546651362107063478411239690566420905464598153613714278137701924342568207749746310821377970203915747485049603026955733242246942010459353240780511503079498233369524457180253838666227825829575185708509215381593246153973283325863200784853703489678814314591629050086842091443635265373859789207074107475198086229393450945086654601101049271466861168104042396535684255412025560331125374547476905891667687699672209096618209120714785409140107342264351885373978392453454704993274960914371572166982542262243353907771033930197756928379481222572116016403477444561754039893645501688432970190635947157322559434223422279102881628346359237785407261885485975418909669468572097231420367429257726601011212688429162276354392925127396072429364154008454314074866658499680755309657988391652520148358361665441597797313011723168919027754074085664909639685253599636034265396715538355634833287773188341156579808761797504206879707802340988068293820247500490165443966338039108142318078613275663084540486781342228820544966957322706928522991456528339323878700382489131626651208231956943697539061007625859509157888568407694542089967561796529111166000433876751483998285920667049286656141760278279352944122264483556847860654983101245835599845812669758770872612560939365602214682431616494778989881469839084048321932095740351508503172301157119386106886876093487836592692650694899226771449227655407787645078296837973957397404649434935562295476904720648245965296449139623121059064797884698033441937967727916933440827964719235466767137543930358415683804460090216111937744486484796225304498075965848159810010176796456708547293583068076383926288368448853472272050495519107406441702667164844998454593714297062953745174482206891495625742672477342441131651682709156256373061542584225544547782430551168049522409668991203666214348577450257602388099469377532402985698716099235705701458877524878668195746363660866799703328142313463219527959136862482781889967526968425134344691410646785785114287902208798875183160913357892662958852954665329526216447947498714861904907698303000828526872353918244001681209689445693000744970762207986678270934947060471735734467081726949914271032375563629698325323416104109139989612983251785532230087370330311093901200198916959947244263369841322537397886566556612324219603370949003935846325648051505968910383902484463472288626797538074367340317123083428516619415421932961774751089778875800573206915216308415225525982906755518461184729496007737415724652944877575158086055489486938310497307400200643539409910456147222838053833290664040760196050205147649723867820609669581122697748715071883562629142077479038831891719466693266281509241347669979950148114186339122653181775034878405082579975720025358762503141751441682902035614619352057104916918060422266147810378727407046337638864151600118284461869940675349154029600083531672601523365032737900118301292353227845367329228162759232528408595424294990154807005062973343220069489701333172154330005926976572652106534768246832309751773699045354815256507587172012084917373766906190156539604950414704758855535651271989471040699646139880664745104343556156703336224787391765387544114871208894106466968595401058403773690058982927985546154005214493356244991955111929753931664167394386784626019756065083436496569553135430020721636456414954544016613618558308527835113144011167882904756787708376783317996156922191621434280555993712989696783595682493891534386137379831276064542693595677689066297891367088010770710931395976617984136001632598968014627013043465370944128255292964372592022463261186102531942557622640001956680444360230060282383797574738769568492201876677380463701406688424826199506192938088759634455974196902412662004711599031092003436978868356620304726095422637339147144858780278985232797235125148555986266536795368322926986151937325414590357094068731071267178621401861995477549270910305987668649365109496021094679827549434735826057550512931810112571544301495069796651198170788735743092904106237627190283002496080575936950544898772431594682760292511812620570075896945553202810608591108150753407777507658424781689986679159835871346441348131900308650997742061859581646770197712716384616146765219224635320099956756291581492172196458499278817765852076252753284295012614666702955514397173854526754108375312648453209147056195210790465468032536291452667958280152380847553841791137705062890957016605406803677952643151486965497217811558606845823141001866407758136674389185484421135911549471698828362338487380936685672659802642589748217082333092888468388893690343563236451747152261752874089348577917758537321914215105119099881706780052351704135697832564967145286849892256883704591705209196233174032566179945202565455388837236076183089539601422002092788882886244836831464130602937898949824915028064687528639003847078075894692570907126645828233667057651858713856183624500064697684886181186397431617915399169135496052860689593977821909644819294211456196036662900137350228706450250045788408942029231390803048214997193961760175543575100685552498025939329600628560207562917946373327240181585664888223700594691277070944840499126486577797411319582738201111555443534487479495683079565249270362352107595490972673798166866806501290283184807283393814524832422256803131041678124234124752764511949032555541118469023539389663715367092073522213953103651210050777668009689309597421462256099281468485028675373943839289670554813179045492598262289208138700118712660377897939948522137978824918368358553363954050790161106216923572118828739183699797103679128820197913053441272264483334429032184467991187491248286721509054159775764139734631901001220520448501374554842683200396584881180178056754822712310302672601537747230907489614766335301266778368628608729476461310199543583066716124615909094793428454938035214917921153679271310057170067674376423029641520825507732426802857580198930345067891666001113017430200407403016328646708455605231293935487545467921128405623481311630255110595420968202184233836501073552657082431303368127738425732254381995221830007641714977342998473564573273901039554487953606430992695911382038488801603680141538925588081054096963885290399919518743995675875893723523234586553221695238535527371934214608351207782652815402969371100151942873526120182865462212030765967225525744270202847252017928748635898739920295905898590314337208356315217212830037056107149948880935936672315091328584254173896298173437829386142197773600815055129417258471950081790378767245868965477795276861364374987327353291191784143209354370984033121318625400316141352763960484017631066509079113524735048157739191360464063077866253056647551242497811314054159621564479775366780900510164077278018033479286118646245328635772404564466808602902622660655630298230420284370124655178218142192991883188020612978478073720444478008751496197243773297164539364347627709299709729653342567482164915899197631478591333510359210631337509219128451701568175215391986941032710741998956175833168139901109703456906897719619816025991632033574363131121398098782469090903087473215470879364757412144455558792276400599348026511548066631788162766257587211337571991089786145929462940596161014637230836186737398324421805861111480096078905978349834016542318102481588292763736883832658197949376010047664768283804963053020064180366379050709557729470300893095839356317248048832741680374074501091874659683602296144415459943115570045883189197078624875858229802505637164974528623036397460652885729244713291376928924358445925652484672275233010666107791860431495248358587368891260554293694545211197456827141378428836010498490697083105006718146981122848707915218187492291182018841810639720812394571542197501890049743119610680519913708229579343040870081138633959750165678912412832788878934663221830958211190094099411746874443610889504705158887061375225097634846256653415121594725499459873920911136371016992915183578090003176430348198549881240225529174779740159554701506697044849510714332166204608878073845585483087903956416142317294013995368178347770285811186068155078957577882235674597274158081888066074130153679642612853341688305350028626589622540509532516472224182177396613949903063285504717829753472744838806730658126571620710394244215147465799716948630154173933820547173856159877334108492589194318148192953150135259579498998222553549886213342150432447727792449648828230592349765299633950892929529436101016743008963425079507101792973935705687063114374764092269958633386117607392100200754753557481783002789873643326977205076055423713939874329325283619938295253586686245850496584308525988016033389810656684067999857193572541501937653142471332638590232842216197635965966213196845113760299595135481131624601220997330389711509534180983164117746502289851969951561407639042104390963317646653168583967042691449760273989663985634611463748313072531048608398571422677958404723141064670909040142455972361411461651900729950619362182302495012739789539201288456249372624852418846482604739175459746252383475739878347291487291964457264130362022149805691373202723260729181329852781304292322896529486189789317914534703388968354969492748710437956540959907244148353112954510058367064678390397039828230062500666093732631851109407274428045727334964643584281668525589514003078560407697501662530283360703525718651148204750099408703636218439821760775224375921348738461651373222831753265921479533426470633247945864843103500201979332957310992744210396038975914552070815045337671563905158139991255305436779891526570415659933432202287644935719014375957965532092311981172419378397002815256656709783268214198317279531543650185649310869853547386809536859041356611150272071785776232408612777626854801904532694917072693961677149629799276970111515086018720661302811248013934452303487221751330569942473695826945459978967252346354835574597887540690372252659807740309759376241528065345142572593411443867353862405562711334804025203662082341850010103223140220715786281580403713411374539306420611656168014666378517299295262141219356364070337853699342752437440468141034807173322164178249915873714949889851191268887588123121978008646208056411586580925495994909420107076133434486110100083201403019371918992975994627456829998309845526055759398754252450355032913811770028827081462340625437536777608036063419628041884741896998977281504439068598032337754282404490703582824175151572136525615205846834008808159717491733501906421928460289523269970888380953157866906721393014472372248039100691143075781851290598966832645261001168035086258662961893432950623281605756409900328160039160149399249947625978879462805075383725825776723786325749602576807888796668253697329094511793433048503902461263194037955902795156498128457463409957097662110539273156730380119800142234387799099676484546713945351976453907850271878206024463777333962289584675904173633065422980977320350405469878334066014316962986120199955513171000573500788056659922602987834308899432465886034774496172606276720351265953083304286085912271965137220516083307896965912742968458519118525344737873175679188420476752162920758677867067195785629154446364866216810395909122230877104325654902845299844227032684553163564111589431313041296714573001847546567319927422023851944379353324997666502815097718383693468928859825061161612352662736536830692563030836681092003011556115224359398431925712722478443914243344576632192430257582688514476486690569196977177012788751937834192095990212243427818905290308140273282729727448215439570385133841713266869574339177770700981528606543675677976845765897007378718494341236447918733234373984385163163793312756459616841099714314033774909434881694705137951512244539903310516025525568118478780661161757760717006191135394348379515124873054060218115077405803026559357908651933408822320239658296736345025563097412138522762492995296015719571083648023626754722110471691817971401375062806743325932613260139978481119062957918239081280632924316596087408771809082350356606632737776210147371148237871271734011288334993006312872109762171589990523511165384882126663386180692775640502121913256647186064021582819454013716928577556391493085228194476677465503541100015211676363565737411867621802420303384968967690884056630946381699304254692620326848007871223612437070540273659932422506412762357256214738742844947372832154891535569865521031039430870407054933221344196705494812215998261348909811949810013866941165955750753662712641347606150960030452423340800179680622664027585143400107423877845241888233699749836832191883575164775085115386207887945941143398616851060436452548897793387832919147695707914306655114836049858979415548309381712355032863237040221081385136572074333166956801533872618562690624066156633145950094249085415969187270040593549344707719897352302104949053496707590341449496039886414904135401370810233000332720761821257725502893598090131638846404763595164523523901476914183360436281974322788842436360148735359114619224351246752045399862583408430051372329427191295683856803889721797073902279557313085752623117688476034631507710806502295080181794243918562591663155814185488527436479758115320776548804537219934715173203029606822477184998847186482150626933903670326205849134754588330959611927370703032617741578280326674088497490702010439638455597522221471040818118000468338977559496570525342972000004884511632552245054995679354454568889619784987715872706170477534236090801492560026559913879059621747142590898560860961115408220271067655646767235591064815074924010738481378997696494526695270477805883727291892157682810682476618321919173994292635812213302826009896068108959660688846675807257829320483338624413776711691125309320186036977698958658127903310840660851719642586422977736425632062367564617269631859854080757630501083114453428340530717715961709814022237305955245220556103834832342926588316383493610659765699203576754710311969574405379293850910472850687779466788237753621970843031434387589766563670735589742599808497637915342706902452265517797988181775024114731965267394365306910328620906419356582286894333092335311630399322528193580280510314724149543505155851581630350616636469517567253940043266251799926277912622964924971956830111592637504118576383597658126412461331258296563078592584836643284139377390658750439769127412929414566307387289250039254983575563765155060149733474414465244119886396674012911398334639710335894751563329235012922746469143196009725114374921380911275141241098357975634693898980693031140616667791012447635920465868602287214432418282913127950015669326376435746783470754067579604781677694788792046450949270523315774480084345486401823879282141364042582214672939650821334851802981299051253456950330464621761274234472572351205281253644397343476822308599787060730366498560766943354883162359947396736640452841407091670314585008845124380437157180138775180305911165734410366710205513455403525687571210416517956411381302205295340188365484002733072907646772322961203865479232995514346385932154441134395737317260528217836144885578410194152431980290760715528624642262052391869222709788211107279463322820385610096317785538882630178537053598728599562718430231700044056161717165121712336192258019002021552457974724017316921982804717309704352059880681721982369421925404679009270041249600849473638549158185181751036245286926713261647321207741749558489652400660745465875153907131383338236104695764627828031017326683686262711143737240515552243899016538825451966518373231359189935206092652303066403483282391350373769208228626229212401898260174790876012032849130272038188090273420686612366188497896487568060837909539473162798701937983760413580457427101328339767294138084626913897009191351346476735547904804745535276002480365203819058465785540003541418414835285559805325869435298907125190036105972359692665968634090106183482404601584719312672627502340579991803081040871237037917033529238828186645331409855596057344327816930179244244630682659062951381224510139088793882147801387029733212170773676262606638978230972527336977285059086694616733305535690646002505094792038480079127554464426697333746815181410326924607174710858536563894619579323473287201265082651864168528340255623289084410094930858594775953748821066799511015615190565889565334816612364542298235800150426378474293515061595519821858406774696324724041278183201580770435201456133941738932759599017538930740553819538610258014518878770508305538252898586510950058292698219999955772315052472865823094791803490351208419726083760282015666764334322208400650132124009801802889390572592414083637484799472962549587113691623111832912682423415944210133533705238336623420973399632955129718297582716366301682376681675699702937281622019452214038030003322433415781397647581232304249457887682047258466280444283595709890302203913030469284797845307793281664897158636159820105422186250987330961716791854477219520819305514996200250539963192959144527165013773628101412334962643089627936297041957378232138763692828005357208247709051098330915150166072941461402756798336539925006160368164221661641361151557980392061458369764543305147561220613178799738026053636953250417499304722858546227619172295548876590443758680201970571488157717234591055398333775185647712905238243026846572819823716909281381932493901144052849178931568103511488804891140498491080266732268438659037848800637025334851271888640667626263201227387872058372417063948131569820159087698820130028112598343563128485664257009876168827251469726754381997438595950945944266070914970321369429365166674966842684426175380443595876355510651211752900630861673716750660350838836246186067552374541834226058925150088614352141073999609007291850643082056848290196906679180826152419348874808101102821346655298205518316434220660498640109578747524330119487983074555765196303947213025985741166273390141288017664084481893243463387717054063583112912825894282813572567528519407676873621968483312360374745193132368281101502720659437812978254391418639719610703559420351085581922748926127116466225818567078843411355157284934159949566736610820557290262408213052735705097669206578260507897513254556634221716314178309208990460868662041412686368062228249226856633869202963820593409470717439220267017845433649734584954424320465870777482540522940891585643659265950434121845435775889342918159641566563774699794055663062110434501066305063696191518685058440848370536627136580133226597647305645265522646172807523964414662568693179946304914016598431052778605278037709407070254784626772300286955362911909267902769642562736967999521663049487473074120381262142692722335105927350306451609938451818508662474677471330409157823602930597845517476274450303838409790476641210777486374890022796724283096642101735202502385956462992627115835240296112010476156051438082132182256245292500919858814306685086401802395864204225211844063013186331946615751052348022956022639417324515107218310950892267605918758997557948562325633284286706163939936144202945048045178330942279323136200459194143725252545440864892930997289371962921256140636842939013794936943923865726592762929108780660167926047870331469085976459213799570978377604452390569189713469620990600638043488706807670883153479649689792044830913028557489003318093757518513026587602097362057443872037090723141376727433218716478315411265500898016930255817228860856634089931899995638028152579976000241156443825651338733179341712051967892514901805924929512663406193471194742559620083617217655126342860392424514654126351574380385625283923681056929317821498739242620061104335974035303368514645298572461548848164055854346002886618057729176746691379432370749396341494945851223724435822961949247643043745448005233714331551027720767056033830926795843734644450703646530374689139106009596490588313684797729872836938721137393146059043613722294304037161657140107394697821388643885548909529118059663121127776744253333560517881725544614355249324072339052550457667615501012634337559210256534830080598728029208296049637900267567945816551280323439143016501033638630770920262917629628102131628637229537848277933027311875183701017725572799894310330560733138366644153079246192049402503157859473187715143308538688821635478280844477502824114536615386658227965445080637652312566839912178900203795444902288555242908352064223399559807057607379798891018161561686610752057419465966994480532064688129012770099781328757782291613866542027011166765620537370997987420062525073370349607095377290289353748998972955157526538613580424467549801372583852671545835460534719157173280054061502019791818920304162488996811407316813108382107878222717856663918049918642792535360377945657177973247454713318868928295935428686143602613923112141101372733721252057760372515378535845650173173669755104039750726391229840301491091529931069585372969583233119411541788512199632834113754392341995039066486585211577967800338442283582103202450841044693201028904678846904643520685134670810494210656614208314380585462431452580567527372094025065079758113521186995992543228262301875868675541979595773880765715506635064803394451268746364423304524940847608817496708968774802261845411613901196539878158084099638265377630654270011702455854671483539774413189166789520655830504408919274939290584103827673187936460217549607191673074178723889752585158076545981160395790224555609063847385333704679230203045489252629238292335668196977675880420595604228380100567347364396052499913290919105059507857138344445076161144072954293693201787679750987995929003348613036880951030430340698996915993176681675219611506394808924106415289984006106380003038306342044409208043199118541716800799110741097431187838648051552366374958962046336020415040012391616263680786502810909196048769183132219418422117510882309652610840119079711744694015878142006083924258912287676821940844887882273814878725478414599725393089855812184348527644321164079430897411180092608123049002497451703001467841818324711180615650510497601729856614348414458804419592359416262857479621112185863206909677173366189909936737908651057291908211454026700091841119654625037489380002739882812047214857160109691438849674144693320676206764715284730528683538248166615592952391846302935235694917771521075034136571017825745269660948068591974641095986787980021910795598672475570249763303134468601135795803834799404517957175884498367749421590752793281020343551721028695400183168693239418338186343187182593494384281831635091564516312331937670208953060324726293844953717335996060616681632298937400108621667067715898270167381389129794450834819698234643499158639615414547605522414232153628734514602600962825540103763292781753750941853855179964064287893704521117912205750234144297925931123653762626802706836122989732274055238004127686216608006581967039086389881189457030659256615523627682970487140650194318319930889771719183568954749162597295495837302130461968941058748699671740511666941200325259529080570782415533991850232480117966999864957120063313128501801036253409287027024709890235220200752506220949507289808821522705751556114394198726138768593804146662386384543567939552790835114600731440245473891038505385281679714446491505721643985196697269038502928782273708446151933474835678661054496151102109232508530159230001307974188310200412985690854906836670214802864705105784444799644041703400690799939859745931320039589600036876369533083495552050241662393449707162007824637391400467843590523693382579315870354039507129781899423112972638096403328379556858114836670422877594695801309772719425314264808885133808299294278179171408650646011299018266586874680333543700478096600234207906022285257554399793007877515970156875169926305543028302955099936587451638555575880444112135065605725999244047727985443937277415964931566808557406303970681445295434093830616450383104707242982109044494997570717341308616947200003007026662416988948426779781826024167420302143256886169642095360226175425670503999929517314294408353854948611631341581881440111515420117182855777571921029918543859612304698952451163862925091230760840879707188945883190757386892994034233108712872413894341958930422133343097607496436650549970064514768099409694272537903945565163329546706644835954495565222201784681337624860097244445823053838721473911901662174863365553254752930920165127594195111748212376215641232445880173695504594083148765943913693514286702338140138665208767305688335474748410951251459439695404560067841187256248336634891218233279743184974668100300523958140403544341872248593055638736708323687088968768601901153497878881517111470710984091886603224172777389271719377961992178315351897453235006384101923488974086071968238129237186717741643454887337729689537874064624320112549166798752092277989459095412620863360333452997732307897846215351301541502250773388249875245094033144915364753861007322910419676715314808203138668866949472864717332165287401958696911474755070400212987340330186932193331672534519539095324616459681030494463031340378701588394315189911343334373481343903534018354983883958344202258607639460756143944914020510219967819035972701067166681673802822323205914453319267228187039217518250951510399361355806882941972920071489102552415079659193491429975606880137329417926860528265013301281487947241950385624842419630526501570856938274260729757160018957360664858148826525041883814168177579263876179002381748683234759633880817841681080853939194494045292948018689367376824910428784215843374087397434569804609842716802676286111916797295747055802183114383433661300202600610658626640833652820716798488738847552122001820143777356544326240829516667341560751889868219248278577191350762044295846687906122498107695357728915416021783220356977746622594206650089463440815867572983782247463324677262228226044686417098152609775860191529074433884261990457385767352947784308090040687870490253396754067259619800831869791372156840666189807716997776801579357680842498385638674792224110442156900920592515598716740558944369078934925836649361369939674899068719039797904670436383385986648328345302638320850529359813690899887569076505628338420215661966579146082575279682792949666925761536915989510652265018704195846951419157846911139093007807134404385107677251203935725370550683111605653150853806268449627380105319869154116568114182952836207804948593056653639102756457492543345336824279252359987705302565934190100706167997808783630284432712403475064184118254831959729759620136728079304430765760447491393161538774485251236168746872623865246747299304978264103775563179524775021705824530245867120672827655837142188341102210216047047040999029660400742429443471400215303837772622677534997891581687712458147931276138278101057511142916332190869810704224027265099599730366863196590021023740038662317872976140163040594666495833459374116020087221057641700834481823037561445112364597507949351852716756547796210264646980284767426441624417734945187239114342802532517732406053058965933897950249076580891024008677692809006457160962690059385622400423148305582401140636927835238964331386694323961663408520945288880744380416323907064418466169887742817583578096103943877772822607285332206417715060350518314624851256080967577670988535261672109041019066897668945913590865803527708305126914450821545326822979651080071821658554057698790527806334879260473727745489563226194514072859216636875276464215655866862944833797687586414538249443238248479281930391290113729454672606232497505217712396550048119685561181674120907683644960932044171188118836389397215958991831831497301471070831481817039031050964035134469171489939520337415083344477187524895781385602664053006291089116320738778568144173022770114523293555887529735435428351087509860004072525475508839500841615949506836604158585175475659611016353635867361429352651831831617618388308208018006249930276546251428066116844602105916039959697788263074862030215664397635088690860609155900707817762527023633808821512071738165287687388909189794023145597343850488285968414243632670484336796328300289721609111526106152821002358976336177953650882318604836054291629911041836619736678552814518133523097326782941982040632913946049947206503974372548186276361494204339820441339251962840088777171062186196893685940346351311997483725591549808685403980022119183553852522501168404430409521677744279650267858000447765579236949778038986761183211216779399542208980047878899857147086133085926006089381513796204382512425645953251179519548765762815535527992836824159984097760792255450871968211911237373936111806036296042716937094140606138329384381908130001655257094817826918040899085685057069316584662068549741991520427504013330029451118301702094137326115362871830242938860012487066400270310221150647898141131084708746950489140967454091263109206456694991410391805629248046183542952991122785395710996757300946143866053723044638104841433404697407987550713266978174750248991536228166926987783711474557000833915956382224885513309055330763966235978015888390546371787428351551201606563594529788756783939321758123973832059596921747745187361075136539692723456857689821011041764603153334778912778494739163702823918615939057095005005941722602453778743824698290786842199080790411889137831886146775510688097612957430427833567675844605442690916200010460713933288742853012592193886270379506904718317784558960403729046902108353049728746139310426963019438594826260733316491319505989591934788036757378150418266623344596466121447935489005199003442882479787944401592257301813433041431355221163941452309596214527281202867362887961352156618442057367181690919337390718568428985445426875521784775627978484947081301024107220224383117708964161162790828768619631668504763675525329310019484514472533183771833593400048544486709455882357861385519216037304713389078392282615662060541366874274282478599081182089454322501755161744884127784601353714259591354220919958127192896017248909115923583520687052803883024742861535035036266643188687564052040241602638164495222728020658450705105080457031016971860891432749620924541468215819437834393894528815640807089567723336801283405342154846278298091182581016650892490621463023467638499448826635815313044693574660394950464000554727036907595740804190718535635252331890281735354110766857698930165024048652838491224901879463385000619373019249895271327683532066653275820286706481846666079440923492590905378386386180864185154186849383291477733968262242733475232703730239888420831275405233768102879807901990473508024073984008113604179688577191157582050844206726354308015184571242279091179021976283678738418408161170251754904976813962277117269251120008359991016570055912429677594910915153799749775385339608044637825722487522335543562052176479600905174020718910477591497445626629900086286663630753469862923640917034243249799991530440372871101540397232242022959586113329223462203108265989474390860064017417731273130232141466739953882723191811457434572624015027590573381550681698432671763992354134593730961496432047655493606146993148231721653099893396247403655498116247183386562680967091137192912124073403168565596935685288845162265275679814764572062628479173401559602996342161887535286876441836130329577764971755711332168575605642162861333787190890571438619747510034208737054521320976385493136649833099596784570495307206873031963239957793093315381308826885706443026918225611717480236362700030859019215398365622733628283169850725421433114564376402424352090300196630088889179925015798695411676313550599275982185772379772010443130184996877015959756715403919244858763755546550176526192994872063249913659536849375510774576071329218302944790892625469670052994337828736972941176350910908172703649672785752460314703796733002436966619873717921125417874410298032852286987354943288954391834757266374679346208228397771380971826161753747358392567901868106855922918908476419981045869635816579678167304708713425764255548608185833532759905675149062154925671648326583607574465417343608117738965660499077780903809686400504677351979764986103238540816636920706338543191643651882256302987390014728635437711184487313827798245954215413870418207097800390565537556699294731388040162657013666415145862972013236649619549798503649661759990591062439305257422721909394625950109989058787852264648254464523086480009589136649715629587651882802135198247527755956725147685966337498939139254556835832329147813002721209905865041101364461746609486130077185787994708306901428127503994094218577698554678702819116459255137184388136844043662209846650907401385842708329762441995521340990171235531188038459454047055281077492961610803318036842760130904254965788055257900323622696295752195813692526903870365679629781031176364557503989647714296266961203497654840147550580680693849227425834756755531193936421080728614899671909469992522025514281668533224350533592913798962512177294236265555984628160138118195874891445829697377516100952953518628682635344636849939176826657250826891621143997141222780259732740177770747370527535443651850544030736093342089164081262514110324495786089114342734525431015856298669551430994829298981182431026262756909398599847435317862945985744546151777262258287308033168590760787019185614413432940986874460866079146746153699380824013608954810870832348526320680797284955667130253190127736175479688590542205201102194210806504920394198930786796656595962223003650262163289905183927994548039960131702319020075910173440148230729806867898510866255574525488443211617414999242280056020415183051119729161968122387319063209552357528644874227051288957645728833352987468485742024571638473554790541012307999437382147759170356024025275836050688587307056712838505786439554494466068854314155335700820843058355258949292625869932545795205573009722623197614996570133338367728517964681927404595194315910425617766502930885254862547823621466060545016395512810136674671427182768815296621304088393567314837450978336760009531417510942661727658845917137127986825914770617587083345503280553247576639188143316510553183237001561286929743449995578957906581346109198299201834282444020447690975811868446914516588789107750071833988391978503958390485947450532386881239263463803292439027685239095798949317910293622560002400025904054465265330987426430417268001810785876400369380757453629772156201348224012208873341229558880596016416212056358866591317009521779074167810867141804308549963854191862808733378005388197934769323494438437770056082831752591936521652497967106877392514247463120974516822952353915536086696623287877912835578765093778277678142804450477933426985022310260513267783788445745697791886163065628565453499096178140910087248163883621984730041852068165380424145733681841783272618903276030665867346926294775706548425862044073855521559934321602045961211572420699775608258862615219369798048242437883337543376764389192332389819456829113919756838357893628160104347023501699065299438554440758983369535404517268673889045142480720693520726119009702363093725918953096298570958387518938453369277325436752083168854557320370107657716719811444682504726717741482029234262694749847308498202636456159897955593515162967658575805762074022013913645166625155029548251669338027226045252355580940817936065257033135684478978630544899487331587402129412385540164973297839136922283668148290704644755460412107131724407913198494869630707333806872496267875699063102660464425299474304884073678915187202805391272228209413255527940797440857028849541772318358460435690459461929039143067810568534304739931625143871692154675161288388026308179166587762523931601641535562059082221407490503838593302017666094395147183446485827773693439161364393828674527719138640737021330157290541107003598480149743629115320928417925487307518750282582096890087330583685255754121638580559287518260034278053920557980196184978441080157404557733963633932808328860158467936525957487052899974479370180084318979508407329875107661220168609049535071523009094457350549534096273760919262042309356475221509602850650059640133530231530072511809019023508447233565947288998725866482004478542733590593366319846745292136994646942613919564315556832202741660432651187743712449961686322769745344106501498428166309085004292925512587304256743898873944472664016754984069330568985493958564539426691426870924004728944918882329290742315564182961761938152267891000417130126966501106156771597635742739017892696370014295213110125004870382874290335861531659532625709761142384276480158760610958120868222990759396641197855030096345042148125018587927283047291574902143425317585052556529317821745548923791287458172203902657026547188949730473444788437414026683731214621186830417917799705203873481904074206111264892886316330251202203467043854960796864968838398061152871258013335107860092205502515843616388784305926356225681052298560749401974399120317996080550012852686938208030598722835220703511893661652408242188328726644826087914177397624815462895623514571166711261618369976536942777302142460708459214840676222382532258755950826540794591697669977750798592444348839831311120346034440398227925512683123548446236741990126462790962824822328224724709974078971731012436203281243792108183315615159834319901776705890966660232807930074525940097955066677728677306534572187578110225045290436803366593891248748506782084010663222782488411360410313093685164887525837796162458650310692099614848252778299370041962339387189179500739217619329677446297361092215847152996245287625127640125597674757992176741662203122460664968833390524388076936596579541168928092910881192064772318677189288888933486686521746840531241319036033540096816471580295998070643391180960158586644334863141862189060264706576703733723405301296226457397922480295970880603187594463913088305434528291232015563355265412978972630860925999637515763019036981475410851648074086578902153255711429887089602234215406777627843758807014679558403754537321421254371357600858912017450287785784317951379313903400499368436530646978692250785177235165854820250478616814877486082458449004317286960829186129186811939938277404381806716885349941167336187927369814468897288900639911760912325747511830444810380068862793197769685435335706842840594064528443225303691510612351884906563601158888475889995149221434393873251630277633000398999522001214251996911109344848812997776973941312883589964168046164159014697075438342532994483893654769169141776145522740802968570523855402060224269938468072783563669467094931972545075058486511534891296034993262096490858919592079779119060110777952649096982194764729374698154536299835178673709998258930482224744188578448307779137266660894721308234526542547839449704100357706296037475551631788534941404540262740903752541034648617705118561328943714839330916997092932330407457365500636886339985391943657020213541216515526545266195668440902567620581212343265128932222755114578766756483918797149225516425621137108619940654456453950429062740984076064507221338253330563773077524035677616678254314237327382297849440333449499815061293163212473832704540951387605042020418726889687581943001365425444550647485840858839562824800670136693486700938140848163601195512658619219764783940117971217465961544650614555437450553051628253787234697113464842525725410587624404777300377408381836801300722481506361175607179829611422859941919164596626700810266891532813410276576597343026828174738030528378931833944384503707453804837018257187455015639404589080891465366449006409812646031253308247380436140329548032272128847666069010716924558950963007019823516337219828908378731480442499733588217114521789450349002281046255873167413485870439931120435827229541301742897646856289929688439819114841458424755476998445966540158908729644174984848448320316692960486601330733302062826589608067518147237470207111163431735032309668472409175951452192864589215556408523216778592378679952725125859923040419068988469145661688257112189164205035178925057232737530630469786357452359188416872750943173362078769246787638755976569057435170911268591206342676899157571088062569011082397143420074010030067482431508532244687446312139478795273659484788798930099767807009675761151584917436758259482795117232007084091121197268225967579219893879802234172892797114044712556190040402702308412139638165144202912574620648957299640177078519231590401178672239406724576424097516537834818463629254218217255598864469481772257457467392240095104969775770427252140500867204955089701906477772440180028089590492415552807118835567052807032636254456198585322700254000967210997491417191144305285449865779388781143671188150256671973915320230110706053169829805517020057549961157162039552209888568885584572688525424197398481636376656433203051837017832344752491996253789980778926086806056228825992423655371874697967691430573613237960075421470535686792049148283251477277444399017031851725495316509451824411236009182715297143406312111933864979285531278210235352189761227703744736747451578416262955347815948156379577380730648859950768932514092995282754131955755927536045084276394662146417060487463753558039790932359284626581055730316589409550426668690909705555564708877358716209887066277599454706319596861892116192209024694470072585178971427773728868730565472668164436622084810302485106052126063549020798702651852587541203659702132090014063838982812248047353994245021246684221025246069884086343510319348874646092559715052753672814248858265358875388249292239855685165885689366216927799533039209238020736968637494109208368362228741770249855481270119504106130266777367617479831389000545925999036899697602245055320149748513423108117547141683552570248966151980695876913442877151227441914692191968195574155714017348932826996029429422263679034869192005209772257217532076269329416493406110278096521164388813424800315576904546638221060988405318964785976608836648229345305104969316397169392014548734253276505357715437297673604817746625774400521321623447830257987234966535980641957757641607224155616695515369446337702729060552478068940377464452647944492435979292693604093410799333733144525115515354683251570426152699993701891111952306362897921080868992490847155850519448133697604806341006225307118305738543023176695350384418254661778156620593787458229693650979961998792661486128662250475597768136008561511558325884582758416102590476941183478085981156330613092173378364842203672456430167387799201226857563608327725807514685642235785188240491996111654798145654816795004374921832975958646594734278802709020468065011878726853566891780160482163934932525705025942401219390143382293770538264148206847080541406531488838166100062339096547926366088197937934016126285036278122587928971272782193605681806285341844173131197285606543423999948854466278566772510487179821931964512322433543974323823767297127268550332006337187533270654448573661795532316681521832972583159696717667108164595718393432417751868563916336522316398225790346433853836330662739259520296704511679282685093001776821564576577181303657630401823759086041717652377957376555505022189965289863213276337549539634371524334925027776885385095260742012895649225086387283762247549455353414959054284571036479804685129575663197792057997635724165169682733086992056434933917941212316546226332695582240286090381922844372687572440986988066345673846305670540342942630107318875556482288215368067381676125484708389313621741221069656879389250317265046483939042833615253348023305008874951935934372543209581561011218137093792716034092699374808412857632095225143581914898359878388232605852478462737587443269404714900858133639290668597023606709333499466870648893410678339400424159596670056133668726086257388845557366982114731945784781542973297704670356721261587407912493079094726336618665484722486317661485173374262599744003562777196001912694672873193654390583245613583330402694628810306689006088204248430530535502144445551046809545851485594190491591159641145029194544496611873150369578173180641137980326820882544019913410879310981755058833011531806818415715588068018763197124842065670458816429972586848423941414536356139326478809500073650757621344579997316002992224142400262526332941750910617491287099675699406771165091791423595851698942601029590328821545823510914555007602374907123358813774848626408457490136163796333476989245424336842572043155373511179576246456610547352771791892189004783122349509696271659863336193673553833854198509786700279537842629085864826754399540666720431732562472989070089074530642908795566364759082430000082847874858300465515718843729272282626895233385749256565357446046066429636027566466172404111345928894817074111072946999119440382681865256147733376391167424521769305500878843019123117845826901155812136679988246530705070719849143384505578528003684318676996927038072952884585172198298001766889704548963868772243890297220450581781048777626743757939829744773301539555703741167591314561310957466119877662444919803006286724381042323777958976867631873127717902414355980788998936787764113331712637709259720164665123044806243723482484859870313530912613971143767122936370301100022207553102534814261692686850521689114065509662579809225232680520337268469752147958373285032348648744728474534599842990506938662859593001372361347258430861114854826159445963317309368075454421308018124149294698330644646497081601120065985848492907494562605083966451136721222534741754124083482707293802299252388435401010443672903996758576920170677430863620690432788386319437298051994426405822315501101891270406802712627677067622535573280550999327080758276317179455260211445341978117051813775746610404913797339100003707242319950071760139308521842121894744944733010668811923881016524090456427043235473607432861742105535830633909324433193691887989463660144866857511812382649168600380005612990965130934767117614528745135999510633760014267683231064288890356546824989768005645980114890245647754363204057646932720229448799025751586506592394911870571828344290575944474834989203057821647153946639401686957201602721080333726569040497271279065204311076211745136887497723399093402860439671572036603970082133304656183507560341332523910063369161381534311164925445818556231446959031595614744205149297107261223447625473059987616247219458927324834700907106375505827417386676372801580936819000512531492918785013730123153059285297896297568537011954384968153009332993767028098317815612440501658063783488694080056535584828635343822353127624062075553409467329677911695062378515073241249263475750771222721221954624488554206062301844611608061451473287729884310019541676238316736572292274745708731784826178214617126835653039736531636739759783650851270072603734546940699163412593397027700407624891945457182442461442142558774568443173289551336335773477238895983378859518100345852053033158583427121681649706899498709859552864846591864041763839569823618277765181057779191557016815813626186944951624294701919984115677656919329366313460058161654566891254182360307998936444550438094534555680713578169130034547838246597561754803319828106820252734437204362688476842418250045582798253461454028753234748423240140340831762423446448259934516911860665726883660477221846870940083840505135086000177821220979999775624193242850912204907163866506164848244342180279783264601964723824461292974318935460846275194501175088074543138999211931366441917959091573836199526970064665640939503525371915255553014927164661473554209648444033177265840609813562474071002914576082302830190289737081713137348292526850220350623356710242459525387662924411324611848487771081054106504712791836371061833143701949921424358287961259645680711961723851549343062277186849454803597917141473971003780220382652766896247597435180165482900195665109535355149678179033108802258326199737590543599245791839434789502280996090129888569229670319251366805388870607048924738710919645264851718329722760157071924389297887464905822622522498002170461460727050741213875305608229617141380781424836051265534661374943361751508023117073277472594433319226444769706600834934889462934778302702963933335259452714745184496060364576808178584172389898290889926708406522487999245067123971530729265557215203860734413829233940473559582355195067271107117529327675522654299800611780062551976026469006614535967801211754329864434755727186292780685632343821595460337056539905487726174036462378049732265679177055091055434685147078674501095338661979596666054209771417814141763979269732364571911593040383090818766019046418424787912669020808904636666569357272572111113234029488618783513214741367635840729396487927936683947058839110282010622037970451435595204630388450412076556637052261732781449140289025448844065606658828334456477870215326197852726748377838964757058709904818725549680661862350839954166009816582561199929288654200896244874048327627280044970786106995361555173728212738485786679059417614195668756797466389481724443561371017117170879916767747353046087351430298570431744763241817617890356969179590967051118945454769244739398659697747527252676112787019875738555316433097989655496511726006385466461158770948368155537610722928399478301185601116395438213246330221853384731620852120692511810903206330295455156741659377393555950498847353507625011110187641973879096863080898347055170879297990640127333045791002107450165643448577502086836663191587147367056695905605024578281773954333513735398595581217839510963068093590305038337751620007220231264439673091761298559603569063014512826012364787175947662488604746851989567964054098054389028746435807008945142961411510983152821956342048775087929250620275652118264733771548689499818620254700329752054202354012317199345493307861256351505460309139361728494614037860913908827172562966257559187805053282273094365884779952614119618428923986510234385994662835337636427160870938032856114192386182712844636670697175965093322189333072055997491121105908260214241043819678918401034762402669784238154812659692112584475825939782342478306482196934829397525564207394469711949342741055852920959905142678207706520790368383543680353551812570905776528705633960938596706156681809690454351637838462084634906763573219721734446281467706104534001603886033471764118371710031608330012587318857191557554582694076360828907363985940656053081603427822213066094838746502658277304628926062886916070373742424178417794000726888463990041710147232835764329300359388473975992830030908757499621625127111977813245247675789649250060262496391213974443811669844264827799283966789680799541732342342125151832360162286902158907448694845459512038905479230165478162022577462391426085675043859628943734106111476153085394878416344952506467130806435897629055923321686757242479558583960929819342751249626099197656442750702053781043652540986600794147920793822098746158241801845172914441228120413293694528355473533416324088137322537804913315611469232079339980522308091358274967879889833058434077208854912200873897690474224578061498881250421528410399448432924636938679125413220299371589363635722161170005506327992237415935429632593120483744533347619987746083744173617711595363670630111873693343894934144919151827613212702849133302183953307639507092633220709777911883892915962776644965831040477580292807541634725174308555335271927904566248468416341539782022373950685890426336799231060760523071577188484703325829349305679687826212825173913324975668288086351301165354254472170932075380929764776308290094435441953317937981367266996315458541109396069440211600893632198738688150186899242478987547528371885877263287650567946322282603996745230641232673932554407664847472337195575454234448611077203069906007552026051744286061660518163338818214039339964466621886528330222936577399534765731434949930699351558704102163004570946458800943100246007206039499455918760154457141063572425509314364234900792776510781595426075027566462192835803439985125666812422537622553774839179566834837851109672044131121015005346707078902136369768410369790305598821189294049557339380229331711860191433168591929718904825602091292107005280184073974629326954162127785671358855781384713039636173368183007548448169034905058119444765416064851805400879488468803897305355849662804854101003856545339683462540746546612870622738275779008916519842193954750309904845342165301977741607866890087938502526420348647858903311044026816253997052637398956590498586931655311415517756787883946684121968897990149108537333503334666249580282600348646205302569869584669966328314474281685293305492430620942018199518020336613874520939940508208963455897688980293916977630966307134796969963254555222593058667351695987541192229872187962546661554213484978916840203640060330187935439438969586342321017668409573721395955988350799381271996579237635751703748876488270101222165269308498022846316489425893167579065990530014592949088296104602500340999735675367925566878110327024925843141347605995769187557190798631559646402192148363112699241276745024953266309092742143184656468987214827105460939555271962820826485052357475811825725442912017047759017049804565817174956405071469093796270493895471607823815037187676755572975460013850055251361158725256621875638015221267431400819807681992352258161673759508907247775482688623791648354124389089584092025936598569916875536742101963829242686208060755697828051701486229983437822040809678218062527462187533014416846707976988093961572032416251145765267256509157546845925925444314429566832735538061998667610002409903775024446807103564298822901876461747665713025619540758574201097260439234314462075369804076259316877736495693465174049023391417471020953404178221030161469276881896969674502231035728595036679315165532061652336478703553936757024115878553482223368300133064266812708170974003803579682538085701428350473440144940658454823827789050408500262200700646808231078017764805921735103248731297705994077585282136944604193811979683949854879392867318081590379713217226248793947247296637451622557654041945689725472320914097691491002793353029344323102609384203805026592208692222613822883838435032893404184783062793123383818070080435362319764289070865677172002085539011162158223790218682883833452384822203399963405104232968488286795446656210836654687177752760974185656321829490362717345812843544788013824445620401061966984284659749567465112300312033620616931003030628843772151228121759594123025441533193216245034829715679961659520170659741986077454434051106512872393757054729416254153092860768844972100415436684606365015289482866895536439257544228518285308799353355283066906850782713208156309661320643675162720724393870908089909313649712510312451178927816416745121786583835723088104088120537979254136499455218288122667083958590451170393323948969356809658095138344887649304184039420350557527798805773953639378899785780249900393330055879323307424320559763510936750761830106866081605412894104168000520164887958887643750410354549606335200751498958713956608863952195931257857122771224168055165481955313000665759132845158643421156256515072036165944693414373858964905495962546230727307457589901919077858071920513231843861618506447735004097184582610557440835924888712964858955246861021096277257572819863019269972610822367112460662281743378094675732109196590295425463060375615268627668221361344197494133510832886090336861810757793692138278459312914848928851651246688308661414550303283200003828014536510200219458097429609929811997705131980418602229490711816512964956281360007117816231241159587757648087659768068453188338127860449011549467614672770749954225148161676799143252162820816748058517925038270347665549586833894183798113262335445213409954909761668192258728358911256990682610970942933593024686417423483507858522486972806574774623066546995437326537314487783260586307505316475730323541898714709572746183691918978049453186791414109656636132391495876807521128544268742691442839450847997215530152833275437797076828515216394679638154169497459572330603347071557778738815388793567892764252996970707612011848679203676468981949233605068434238133628742364697287244611936896325719363108091113470518088738368953530038656995571420031395199355186333880891683579175300542428332121486928756387812467107443784566348543431532336257478295904451722591891004063404694250713587586636767792144920687878705593007030160880408964377092521316714797268163868141531404671851479762055929376363743857854700418565240531854884667708360392462039433887043318114623922485513576682593007405356320545533659051204399047941928731172769070792749164171676325296047889860244415469886923109828351703272354823861075123909104447019509289259684590167609813330370334209870445726806434302158720598667602059295263328394240390644802694712471223315097600107742900032559154525075797902588188392535396297619856100386392630849975385116904593097203199993494026249940058774804705782132211852681730223251624602802476776462319127161389335031321186867184663349709962902043605693069963837529720140618795196912710278848262778655155288619337894719413283455815075259093628751536274189213345389116867731077440650438587956523102554239749959356010955403398542874079096193599377457181935474449109857322554201753582432356962370044138848896134596371608971196381578348551679359539364052257941833996154044676968334620147042059657091582206285209763954704383835525507434041587614412676973557245872424097896411854049381830377828759257519938328309532397070541829920707679316933504880688461152499039991316957838095150156277432003008962121899746023300759350517097429578027166850088968152099754197541129145164592670106426641652840515208545965931095003204438607034083542615462068231392228689849600691463826652862315092287825370531976048358642136771694010066981262076945653069032523098635710582570261411596100950745500938722052573019221049854777404815929405142014251392418505890315748909735867206905352248519169637073230148752345372442547128579605928627216968435600686046277090985853881459237463966517605609446659211351230205497620462887554898819786406687851806173553317904633762999054789205493133676603875955076778363583733331891121069243221754970684216450245242558826653054119648768212933218458267596368813841739997989245684628892962637291430747917637342716514471901521561045823261509842972745951210279425019116737664281910186525567806182429697635171309495917785448762484773759895463750136108512152469719582959317136777495040092186737418166123118884198355934366591766412384796143545525951172731184141431330395815478992010357995349892758619839472393143162070455292052934780078443685268266519529078516484986416950078698137803533303024440818749111783773611826108615852085398263373761768575749580747506191111736881552711719407420748482660228638186953492370319616341150479432911971624423048730364215323425929509920017518446448431739768414166610332374107704204073480640834484550423146782969277003355766887291189418075294014206933851396552850906523976255209705673334731668340605481149661627030219455511290427025273268426162109896370103031733963663188462915989630038554028414574551143042482972572207580777648201567035788093388055883475118191692728414448076732262433075686735338381407930470275434988991344283491828464990527926318162707325221173498006111526465846299311135250107318510293237776169456912449725179460900761291812405642911891530950335301683188525776449697118856250476840039359634828911266621499255160963623933595567763733512080204538970702265808836772713893651551094878518477709776354809865384341928446809204909957110295452293458126522825002459672847784431812192033393812142546855327469909768373605417210778104428079527695409295185091209369242643492897328995822097196283866620800779105726224648402381666905749282974410871366965688850874301564487849124611981932034343598729137484287476775980432436205768448371578022220118726504754242936808087169109510889990415799289550762392544981643943430853959956317866759915589380913149922521238623390130513289992192143923606716416043678255047667747213505499327348884902395766612970010374411761977508457820102309488913323535792068784529993427458569462576137415405548372926528469944875338873881790295887285411623334014480215056942053629643522557222981849006422146163038927378516732380907920670256496048361792785088704416860025552888560711734667888390832610081664080358716073634518644310429271489522531299163067789332508348077343907517686107464589939012148075382486204669618514767959341142830705804870989715046624206453974917456523552252132607377863034393394171748398690120856264276196565153107050937400342494223169471081214367761995364746955550130420350586017612431770101974834424616927458421325608991937531223631622755568379930224711219275182513348336794792821738086454842564651071512004192347229659227875930959807902469861739721380403386228185458524152630837286698438742420650028958128323459954972226054296731136358871372706327464214717072502867906198351277254661922065837728440358277434116478434517811035004648692973063647741930132566498504489089840425250458249704220690738570707739663859869131904811961401025561609558384457749237323360676730972026949980842265657993562143860190780456527444514374700875664691132294528748208863478197793353276387588239430827135741849768238877010066938893279743232410975658544301709114029983122949199669170781430020980042965813802158934395564436907629095396106258871099112848256647633684136494565350648142678657144478231237083965484947391979778610337670734608546286047036386455450788152733691702972671980157866617217927382297612756335573714694346977353142633429883081769720324730529217142331820780999150580508013146776567099117478907098835713918907214232824392890313013045467134439350341956886236094782728686777338865184315934220749050068093127298893273489165630517927245586292709438176481900688879322180097566442842211373004767332549969175314031190097340016480748670932427611478670449198716088065658057493216494981053843427800907210488323036513998742272788191230987607408621324077159579086820264162522697975580274528310161073166969655268726512365649688742866559620928676382030367074505908887753881281816825874323322388953440934525466952095008662670091922431024544738694545828275944490019993310590109305539165400697383435112619228298909817198429417160570464231250436005372203459835058893746314097868441043714745045118322053545094638567019400828126672592398540187310083438825852194539082265942803367252150389487803702913744901142128317307656133405346647800744673288545484734628166964336069291296725921935452787576230166731229370809860211234052572441472582977115003988522668011134351203272971095879831342712152341412703076178695958635884751956118458223705345957009541385468220415411074125926241875910060236631409283534402436466327923964332997881944044740678416781045021919827577749680551147563273445832279646681389954279124403977416980640538520957293046209260678503470629820946844474602003655174853495906058149956562975411382205709684675413893784661937412252360549209924038810634316790474552176221481893920975109426821763342940730872580258826724507836458381914713218472143136896257112989170197909620744224402749800938176407858890569902932301036928432468564134639057623520504798955305422790506553234358236215919250794122231498930903387552090014509388971723595531562413954724254677835626314142403658802436456067520668875117387385383436971966661066861731729444345280914746200161284526884764540463501406677372009460187929666958710604324596455841674350994868860951994582777007041498221050861211593658735764295871211160031902598209639902898712848779223835246520967902028470233756106336672479555515576973875533044327143834077102713979521293987501728242733819962464178987107743774799563294715001632978407268618954001500495400158644882203709128535048044027474781038344146338965714965915178697036403582808070399023983698906678693318212299730231851775093936288913015400401692995167568980262657117419602605861634990727990195471396005842480252912218361820781329315260980798377004935016978865194616726120125783004706947176211476939826385706532972386836926504202564206701880224170224249916285827218049283516300718146497159498831361478292468875016800612243797932126644414582109255574331477125801325515825367983956537629231293587177938764082686658839075299815687065045261292568359654837134048312558177098758009758668452644126165800786960840042494696522265932193368224348057483991505705173332796750182923402491684374100837624049007402940570329327248913502254016758557447777148684797373396481957835233123953000439041331184875429911376824561735336008668291564863460903350127838364448218472259057413702421424292460386965315800749392693390656680459579099200134546499410288281307997825104912646031460903400935807608455853861302584546496237144880786627628360585302398029390195992823198725050725767185969902779562594710560900405888394342928837524365802937122454844032548301766765892866275210220215411194867770368945283764795201642083609182780911297537508345166859383372861969999828591150525309296189240864532934734569726177257591251341396271674244000226137658384130496823885792021408023700405073324708051260838579298653446446398321918859519820669984903389174247710860513776118462935518563172286191374449186442034165495589447437738462692452036401802986053243232524451064622257562589600210199440033058932490813603342749238284509357643362707684133529074739384662623780641360329770826158299355826970468798696590452773222316866154949996761525644754158903755958543467156744596455878512341127746904056552170788056579713655177409948737269995301443269702178812100535894229564667627353841776804638349807011522212404010468074299513402614509228838511029306228578498038656795309811169556425921269232538634555992969319219344371231401708484891222788508529796290144178564764327880122251804974315929824374452931542594159245344584538971361786065528661040811728453750217067387931862955480797935207837062837582543143021951798732698539061586327084878773583327327422163855795217605017185430072227317560114964990497850565132648410860601996910400454103362495570724830610275807225811847524296059245879901601033561985753919902830572626947336280798501577737617760388509014026812763985620490270067357762370955540371794545427287677248163841166015339067716866873730197762470637614809388427100039409511187496855675535689176518222039852548539027712695238199489254119916052980750662863204974739415449302675760592910781300814977144733029856595317213840271184128943548574280379614941748131973391047217273932643050254151036573398878384640422537772728808609118706499372501896664117383266239611691324757945294488581861173793851792066154482136773385498499671332119563564590149511845512968355395867053750189901448042007958633182340234880433799483104275336588380022526294235829871331388726158144030185291683957199047397800521920652771395149795997168376747346868844354385865677230758931909890310247760612189738327731569415520341155384878734368718948639999195732182586340751884956693075412384689430955587976257676616801923858815041207826117604907836072843227963526900363743895910445641510555401949785508631600816130955464596449129656313289447310759676329468640648773637984808582680020625465619540591041108620837167833460634696890496542983304680673629341437349235027490738221715858828505927554289074218651713301462691137257152914038032080062283573795040453854718641106559792315888879244058309164756335968829716637030523121463584357478464209828936061072069563685375845645728871600564563452452256687490621515864219676966042580735710844396457933420629103093991039707981599477791405396215800107776837624606335958781003260703506065797118668989272619994491837917397989030113235864833021695057933334255438916694851982017535855302569496358014568827385589243219054595139500312705648686507137859706509079160276678489756158063684802857755471634401193792269774168909681133166630665331527711318081014301454632008257983264544512456798932137277304722975845787424745679519407994368177011253919621997790675359718043016643587771837656158166389411302109378299706478696853754936428087734504021882842304458665518716203248994177025361315751186943802616262635593152137152280224544634626004900728580732705149880431277992376312632911629703937359018616767645416875059169790844202799601423951205450864995571119665929561511850351331290116674957054962269037735601093307512236138194478807753922162311951022321941634144437138227485006962889145856506457510441276760081115299904184889596675864933953134730819315224286857585683767709915018236589722882330133609720796940562693617575382536293386223579560796458587068832505856077119137802258708750045103285624482172911960721348486255732185912371687896406070423261621515459813923653973476373932350779768683086299505501549266927357106304116843361952392497218395809443164300602957395099300313449305931443080786166321907209391440076437879224424485241879808272330534926328861835247863588423252020759555929390089611034766888351863945067879326559374211711750971329951536683999551798122912227234869306649065495012203860879114019297805775092787944948472580904482567476777010393575417519086502290881785471365469255765058389515677481029130748910893533606415632784759005146225944653141399316590879126427852642916506382395672225801116002493015468874608795466985603055371067384823693399342674197823270173779773587571668219485942893338402506681051984064235928449469568961918236350117568947909851837234404744612836281425541630207832408537517117924191921128095065625287077935259235414279284746118594396648961980189647702649216676189465275109176308828865378623036619745063553704213365266014209271125899979534502811343675107056493973444971835062215575209874496987689834361093424825974182308665498582262589452076562316460214756320055364838158947226127547136547673713146081509474983142390173182912242466402785153600190985382409164849016209023311669639491266570569455798768745761868848035495375682638090575110107373249312001945835456049041034068784323605911930196153674264832718751224132225499521232652476336625702416014619694661163967197460017484130041340583860679008126391438862442748882235001808895839668593464022163825093295795075297838419854135778535545169624666992741407568931595942223693955763840300254248335504061812579882619386919486930102564085530633733666644152185109086463992169369594343024625655875777906782654350835157419294016848160622116109222726740045367581441329967394061095292824952889751745372191709781969407596383459623814925485440690230047491088228082288449071815428471440793775708036274104750643962051361807204067626255305179551791886876010232928758296387686016377184761161064056669247806823581986026644205841611482602452369566879277953542602415145539560120720769165979890380901810112515480864392591196779644876273381246186345871012026901186850171079730699610916928316191439278097808559471625547319552839941089965636874319757335083594626838833114939360560007154611032739041360524565227186011911172026624587813747226223753366705434016414375727409079311426754542751128928304180004749666447706636205549238769292358778627099418553842671784922957364246911061438904740657288647625984174478739208557490611108086780497318978185508403038666476716141543852222470608631247625910280320992318808990515756024857499776019812896172854797673275575097431217750313746620550776129909828680213210146250083597326704399559701099116644509615556101326678759856099580470563482968876123259790453190352381037756538115172066440790968014175129800971465788522294710440500946720341085401098953786393252793683318812398185357633321794370076262191446034419082666058506060439960253667738000908258748220685158174329991654478996834540883936176878655532233671779115189765264994085952108184286402610779195608052564580499919911527322353210150939971220217442086104576794969897402427680241050783437338619764043344772326131297851132817909150941217363947890695687267960214101668627775981446960113141923975973714469122589352555039381229268500354161676839242164807919008477762600533007048698866818923720239232775104453311164651278159463525473562461985528697528230587126936314572585803547843470489154082754159120039127685833336793107851178567982231432851773181809076129680239712162281243102883296573633740329349007228915386789813840211434090697735885749932498140048177309282597221405598022995794045299551337374913507707877026136367740884421128078396147080340553972582155620561580641027723631213291581608291256424311831741227006095601890321967719056648416442774487654104129211250551306419034157213323030277275426554729316963821987785570624741916826138512800610539361563169508605182158928299833919839877235992246985912523272455732472915943216659631585967799665238128025977956167988283864011009470507421600216736701224088172975284217300223188248292889707346488289533569164699866813410000282278309106529293132679415253697555168478745476226617495613978548728692377413013350782893512251036897922492856979866292591790180629665321262785095863204002692142386327702665147735266025266940016173647504223422809660374301776864612482396160488926361960117138266861083813887800641130545016114776841356113601397711510147595658160398526753084453537846892259279532316939741846734818492444367791023194803018260593193212812119688093520901974464732371706332278939859439794410611216760105547902001308934623766687023817860178823315688204795426968995685739073405024806748800899151931418689458736734269911062203240354823288227061902940340027117276132841720722362692641654094614308097681643448463960237334531958828689863965095528495740079016786999113497707594810244443882699246121046118484852798284309671513619969009740734728021251148990204354983580901995262705891199036353148837730526672589636262726791401311371091797506474647081475354063428044803252196016732859213276247726646110835508609374687854619128794934338218944875685185804306593221539084485777106047060596670053220266074548264722385933397261268821192207153635114400060827480456453404378058111775433025138250252419693243274328792480693164426846495376285879584146029495609540726160357697480017110573912818616070628803940450206076517545788296506218361638859168171732007476972820503429107311673350654141415551168706328692677704051145749271547133915255987441903733613428723700310661627051510248809562088098847185451437171145018066886130166066605690097590950762733285448698100945930374867637039875422098310931821430603562398981158169369470768987809927475430278442023590833517563543949567840484791375010860922570461820991792422527303246826608584807625346861265608828621208926847469537331978030908106243481410575990309061474736194064396180039052623539727123975249364087680836862543653454560773158690361174185756763901251368504510078076250440841431018374609604756302242965945426001496316972056608076536032960835556963209896416385680875710477006301285838977428166341806743815692769229900074473061604072245977459087614316166164861729319485933916343005962483155242631703595993815884135097403448085702357177921080248724743297060719546277064650317927074883928131243865602600609795442761374475698112391348722080324564555417480785121424755813596912662144100068505710548156080535928596864894730303100401653282645554006068973965987859324152064791136351978137732505924495007202780093963852293430158844922165960554579327547892263356541678026789880149528483714220900987200380287858319271590123379954009749701020314448972522972613185733981322788266603163979786510198430199845376339640741722729539000491948100204010950133902066911540984293901201321263259539712634469750135501126891795373465503184701572849857467236905530545722117295895320884110128583134048203514821297441694372702209260650234371829105697990335441858169047742556236161036303932080304450708916656141575380677927048880554551161672634954997149656754128438229757150819210521079506196532116634920889816523471031115624765854311132916988129389004487140259181087558864086275454488973798473279075102630206385583856394795104563220036678044660480767606698731706888701755465293946294805790284700495225735352459635227075214153280786354690616673741660635720036136791226105922910134548221522118650932248567217431089510470306939909906191938213993912958000831667294826964853366346621967401770797681122159850591086168904997849058573451996726589361492344211939817393873019497798417112855287709309480696694336654370340984737119565376318624755772002935150024315211003215902559603076674736144400829025951566002405747743910825219610499653715419829286503871882121436322661224789255276238033793320205463632127741953829780950442080394961064514636852969082984213728455716741388362683441347052595056017319596695959798708393430940950575441729797027157989114077813481798307132948240056636453107599165656885748424610802217916440278006795846796403065308548344185832406224913593748056192676304092616080699576907378610993336505107115265648973517557862337426728579035870191718691316093429646396466089757944887986814645687052770668377613342065405837731709798094702340521856606284251901394767153807421901315852297838156995496449508157578211170696361768071213762627072496279181817157943371893702907468970274718183760864547236662444153010949969734262962915542909927556333252755823101554923046795377256741382170135271988805351850966759460124554955630327658047598098337644522464510029655039047657808522387059911684742805148429279987026916303472512318598784038466142673467735220365882419132604772094504357582385830618380171572456705966272318692083574133467351889880010507448410127683640283128579278411104714257255238200901021624442668646865295946445944274303458938717248238127954028839479166787715620757951058554219327953562551385588197077725532978989392252315999180855816583820610864360625154318866170821762933892829507579671615238293262413890081266728198617185239437346999503718051657070869395063887509770789476959674054585031975816531983066916427383582421829986258389357686862604296206083638782476149884715542702881899566040100263983485026715005454870788925919202635438320424088668207014228338339993228860670280910934499891049923736453424656148778746586336045884923821176662901555452038096846537408055348366159187049378659221629967565715184295365865476860758721915098192648966246348588562279391269054550594983664055350631857967096161582711193291232064852603688425104362181636839011934820303654568922871321006746079935685165534704193401057384133920785458780469351261932881278530367049456153561031370479237235520633730941068815912130777099938727562234565331451846465910420366680931826089175159504170530303212304039963925432698456663727679294053459767405915444650462027790565017522428740336400173895421623727469934923462948474447507314456673548778037129470311331885992022843531557141770586329809929468918292389213809801655369372627768554758402776357302209928313543147483400846368699122358682019963706924036448486969292158494191092686172650267344892554856571651718055834591840134106763259318752285178732007616290871510107023816682662745413414143328594605309549653480427831933577102027642821631085521731819471861358792365878783186367065144276934699529650408926270050515063189610480734332551125297481034918089699367334556329848001219566456117621062724385837687043751073821298401460362219072548581915397372072323906813317911495020591720444275998764374937565442631550323681239456382605252853351341086806739814785951586116016882086003621823241874061739833780235957380149391224396822367682142407056952810999965080276646847861721113796264972841142936296629471009941023803447417433655986667226385397245662168708019818604759080737270430635875654122760583494390316111002961494434769544527198274602187573544386000015017498930330050699620140218342447053839085622983020662568103536709704254458736785083376962481469321169492027148412239407187716300462378488449739692533898082136512767943907143541750607197910007495489087509636845097181517053408709530176787552342761256183988645846469786281060944509490860743451860633512272280199054587506745269712684103658355252001875599838554233443355081391050059114300700555645188248097901014188420181690895380746782126735802938807119803631856779754538604337876854700447462949234124897273257494699131309668539929275707593226590070433803628802587449072650677812960734100363372372966844989677815059955385621313304203417080448599829262252657141356649695016723649709613918759424774771603636778611080772123663672855978528115815495724743211720392494924434483448949145804196005199187665548290630901777625995661403992231142167639228445226572014202812289418375084969068238235855095635031066438095422295462651606826762780286359094622237978839797759847794035506518312187077400958527347556571909387606296576441837464843002066188793187318448180347388013816597900826831771142673363440423351154233066931881894194981453174059765274160197373494852230151831554639106646930556901216248552714357850473533068187083048046445364975419228476793687145029093296355004554329522704444097733599465676991041165978141816000961063741152423586473061463707683257588365430185296103039090777390036832979291716817221277666253312509373498677845397247597723422208971665115799584659140159705390045747779955747618416836292277679484062118206313172092142195200633753750883621479033140559718456853016804687983353812715176169537367796552647493689990481972145435971792153067940835521818161474393027777487949526822063306544869171108746035660656240868952744746854116231575748843757339718785923048805669086389785871927422649118829667222652302443934369144700764857632143113888559702365456962854661565159953374126561537335376988605369408988991949793161709397367629189817914991424322258818403910732713569782092878884465262458342874873838210910692903821313737984420671433011807557571622789228372947807429627374063226768881586740975206064545073203404792080171657987581265964956198390367203458453293237112950216665774197069167611494431846310800281491486109331463528599187929400524509061135690852402793447765984925051500269210099057455514624768118554330309262800384875300493557391592708915681237420354710647231565628080393547170577269652064602684614586480971144710027557022129087959569773614997054274243644314554694337757810746565189150547565380120398022031274144102251264045350832762049146004998102803122979881016953392761807441093370293732397419882104424140663481581599609161310703242293717553203943088500575800607369443964804283040537272804460960009663488876650903191185545830472175228801024012037857573580634373593689591583436736352203222202260716002849982082711139074071577375440400182266608631420767055926751655085260265795913896588784794127849444173755178452561172930758618304089317497548160415829490506688513615775207004783115254995929431962868503370568787966756545016193603163068908750702892563239267506081144279701822483861887822328204729922280826369816207699590655652841469831212130894222694362635320659069740531960312793987351214310725540196754105361184101408423018200438668390810943924561265719447530794016553496351019915998095697689907279577502351949147331873553596046338194032305810443667381043269442699487430839672881027839702118230378857295014342505077309974940597093885970876669705787299632572967488704170791964805376429455636342490156467828812862836171552157129042960594106404977218682560665865653480926912519837400024954094388371965537711111677768225474620610071563616449945099494835930162585907997556645865438846874403671421724443722424493002014868942272383376990761227930491283227469136883955533390282411691779037053503497381915888619860483923691024978829484619813299147774137418330075815946496242347251410209355398504546760406365027631664358185010763247236542922663382117301098927242623308337225068037405014667214273148860440536614715251124278819294641365378581926532238533654944978542738590109290775919768123986730826971716084261184413143484661960511292246832270011468346810978064411695146077991688864039565978803660109176792536001697225172188267931949830645527618171292261903245587310092501616005079949092823300339045142789041150549900481408955386501929987237694847832438964638921265116979914098267325363868076212898983488257714591466791857525050637108010624948783071762090139207289905372792960187150169206473374788468101340577470656590872736946350184604679249905266043106476009556445003182336013089590109543096096689519554891271026379699979223823710419810984609474277807055595052546123210079378676394683263771990682339012759998977118122839024497210707471846242638785198009321781062173805407741646008428902112955720404035690975678037461981826278483100831501470478324439822739565294572502451921418035042821884748816996372642924796638775401849927701315813792162497441795018405840020967012347943185511500887290590690807810228769003436876572046707263407861549420404188967392363675573499685106154294495942827594465115030643206926532730827483755475184463465109460546899771314181551953368857681316756453634277217827339065372980496185870496477099442740449864639036518990779131501651558222550592517591505382093106826693526548909204177743251347003558887268809822332042580893184657794707899425383433628648490200561036031294661685397000679904784809809450089840487165643683959657320050784767808616701686000099918405809005063447783117561724212239610416239598532123052961824604438621376958020296160552056231309903575217452092290523124762012028628724371633628712968083479876840759897214223974076634854438586817531769828792907865887039158955793008893392250577525054261093152501072448673492957514621874696864251401854557143333942393001697597167855439921169881480855707850192627770564313866496046848532364253431465213538368596742776341566453890062291217643188071670210981030536905966830323624267769742578126067788355974724618527290314163746128935589027987681561479931448306475262604599705881389775456670343241343010878070814947754249383781986104083719861156018841613353014213324633642227017490015125218351116413564673025111360363327296541068627359679065435774690107661498809741497762823627713680284948796528809983470061507254496931804534735000783648262053103705432560535162513950478416670081114252694445807946010536451625402378668167128802967364636523683733101677643727112376350033638869905589277949987644212697204339222156491259679262390162440318570231049060618652672328346468117331244689358632281874956778562039814791214034971960034228283749567105903568116423218881358077241189568707925039435637725533566710757923000188368165767287567190796544681548171574412592939297702147337980012524446066680237416098044570937864598507583873066896245598219439986738093312294345312386829169820836397432298169348366827697804076996882396630097757282179566531794214396380288826585219136955204128962561611539392186833928478759953692840953742415512850301819690494791496563994673027269971895700574393325414194819046203218690091203707010183336058105341177469188832817188394359778857651294178799028367244933808608414640771174700905455930702277660648654856856172149693994220042539539351065840522085462777879292215391735695500971671017259385076082556426890075116955828928367974338694714294741405913357121960104017707945046088564000972648700796318031434938753143476802494547629593687428807220670025516104072770665172798237731045859069294168506972535978748502974705919430197533256602957105039575895371123675417350840702242924647344193957339241040176062661947439956718671060750879271447119144010286310751270677744732186705719305817148887673372412044204285753199451037055470647103433090720435586114289554323655343540875130033307364458704957232178530432909213017556432763890620023308145917884553748051935189857997311479484355425433880697719736014650913369137181803081387087011578954789474520838068151838350965623560603512496637025171609438099800613340588066796195192908085000005251922202366508544186683470977887801027048920144312680254086924348889311688698034430158424571840697431071445176589880674882034668071826058295563548323331332642140691641147816904817937782694415139921949017391756342497677131528548574959538060150876342325330375007951157791590950906211725804341798920799518282058474806556921454306251463985699159891869354425095012295855270416176997684359855548386292159665622227323523778928999314470778599022346587538024760767664410219784475494601578616805676827493791787545654125198081559812430532089953465302772976653608053393727800715750138415566986244370967470857639299867521558345035001113715864310601364157141309489385435957483875728680752254747828105251220036299374020952812789076087632674165592821463229150563635604978232706513774743954457381286239633910850735637159041317367367808028524838741192437112024508514598048959908039523481239098294874441304487981917892355653356191220253796822939229040280184480626170763464866797479174412029506465760361227263463320089164384922718857776551159907015784334118171412759562872826351773991674309633894193113604305843285796490289113889964168260126046412201075208113648921309011472126109755138429780651171998207111239829867631638757316868196623880757545724079744592039038116562320638588012943448954503059866274089447437900171892386921554591435305474671156289701971211201992299829996420949704272708765040934068818691035990031809697076571886902129841920392294561840986984619417442262918567026932228795353335987229912684555646763457801222147252370945918037892806656231598000142524954379567521307812130928364632695960669381142640147555032247885363754987972094793047766648526138787116870044532389011442481674248386456916435777193047961000713032855843600971645360932717754173902753225108846144462577958443981125489666619774603488596875510220078587507372020476901171246816562367001748616733384270306666217801989692561386422724414806938892039479655726139606291756521857010142100850882456594462768095480779648892434296225460204951881305795974659329211452166240717194205341800438807057300694759963487314884743781082701901009055143372862691872823799378065444870646219349219438939797486721912294383687264329846325018508464276277885020037417368666849345104301335129162372442827693920416523449735633880198035293017594946067620837684339987610606088977168603145119340721291543136172592821942573769760083833173713295953382148429172173043410331264090784382437521602092833086275367435043798061598901679316733736844015856265107271540534708421344697686531966407929607136191560814988797685951295645135814864889650367586210723779585188713922415919750068388218065383915896761320232216847629749788426275992575527794477708485602202133629904926814962152387606877718049424408929773399788934322334899125456005002420262416064708754650624002993088364331153308676540926735635205884449064747875733169166509591312011071995320151752295967167131724350513547381133604794081129650328456006430017222402331610952794026652140091475295642316371267968346832804967634793937478632947287053737359071276061101337101817085012428648662755453951695547307385383180702904750719777172804521830032728455700631599984555720888326279673081959170684822333675738741477119631814075338090294960214057228484010771546514269948273069072609576730240976956525368564709895985085701693960680961515060311340290950046240619836909310909489505999835712412593444321351358956520781503558903855165125177124102909323305312133393749892324121755107914740624386095019037994599879116960212689438850287518228535837926554912344846033581300427897251425111760896592103921156881110611805692226180000217240735531460729091672279764565608190585218664507453555686455800658082635485262006791191144952647742315359077783409541447424645259895759913508613322590646900327852539233762714926568330128981326417903227555878843150284406891917413903060961015470353001571490723317480954212930875491076541220882347469368414641896593453034794662014956126871286738225638050763904789047078017631518458565996380846858766197663107951314234273704154717179622428397563122325055014189890050311266266713421436667289160938705389511073487246286856992616440413255404811728242260499168035331282354209571105836546651398699837706554937382591473233729221565349009085637643959958245764859830226985990672738308741402611531195130687953279166561275237364608376207763606755884691269970880172625602664517158113993139494928048917693650316415144011064449758705632332535921529286644624723451473292387787808080186363314680558689540850688169830253368620791060465779952607984454094965227004602492559491977398860509688827716914750452740219620561858096144614009392383636225922041441970576413578247810672808603397750151809679089485858788898101300463300434776125362072778304770478779999252357474236309651081200208051126783869291471210720163364787323596526144446147018564587556100203181710436358996367391238144104766727256484739278972223781918031449792413028594976933472113594723979508824949621690387047620033256013334895499177706578955720111206233014068932805152451860983218311716686592693086877885457924248244296577729320385868825230398946421597321754204722692557634241017911956424682012621233678943414006371851060298025418777808894310747317993515785320661759494154206725763152968914636973951428013263571155011309815062624380832118488643966637419366772686680000592316256580627189916275667495495278769614544150675523977374129918132693560714332371188086132971557592125131948019083832171978635376471465266050799894234499579757862682909787446588004988438213713974111482254166362391557073049840689821410412726971927076542167692237703852896672045888953605687458635907892907450092625271678672789435462823828280015073891060016125294888128772865208275649819285850176288276065214379878540263360405415266168290981653392444113536035877760479073208962852541822226408616453494545374822007511084034450092248615877390682335013058746404575848590811991325573875922341863734716230999329464918272848606621456336679900687565346087832705324385249007698946865354154333352131688601074399753550793167899801965871192597249612175851451785683770338955860705691281749991908710722724307625110871354781612039051780119249725438058251163170000659823486141512812698920326914249593159409222900545005519830268738739662644802605412511832714035742824655913429981534393221625828578546505068626532346761723277635005123919225863753818095464792328114084056223476775349201042481766920282354305489564101436175263730950221109395622981954955415765520785772958140363767321492911453935962492483570075768763377898157063782205379941700981705052950824654097652023170695877214797518623341591579970423343744244705648670298143608484395958627667403977750683885611086900905180430498746785289526466023034614047264732868276059450799460564979810961249155385469124278043359947931870995270625521313190940466489079535849857793160534307406195593791511918472899575988936427698634177673025877174524036333457511914480602945649987905269583521205870225478122556834957048804864822445077135213571144678982024455161870016364529353150832879866869898621384818730400516331597930120469336756448962402715932610222262827269643294031629124291632552085280800093761247539672741413419984975476577084766502668936105563678243664148361146347909849502992204743848801050432805969605116992380639144506792510685395742234318363868979684980244722127751777714438680947133696485783810697725520296886593155614865545140992548503360442198854453549852598032634573955063420744216008632604741724996900523208280382714646696599030550645546737692137753146385074317075651206136999242496486223370989517178278927930344225162214097443276379875644883620185077180534529166030598439160252604926713442499862497743174650669768175808917857186456959427706711738774017518391545607503054950672679833006895698454456545253190736329209024282678358748567654255947646551153238230145235905464542907411232735844240724382514875582548620336484027740394961970581638891675686797361551450137282180148991634228977919277322397463105900930168062992212997518529789168503210956249621073455813869731218196311726285045114436259685735995819999842998268284626310224246062529357398003179781338549964627160727089848462372404527846900370551188777858297231468360673925199273442605302757050794841332156309069372301246777949501650269176284093255493342309145739315214825716760148934303779213382401133899123707798902390430602273079512250950523103379675210964212027081285268914705257583251478252840494593230586407733887018784895190781630665945744261730917979763977447865116860879924217712525186707944780903704151329589956757668927624214711485880486078635090428850117347179827460165890306104889248756849916165893017722123126620755392123167268760645558561749707135332496597821680326096634902911176698035825743620968266216025031391819159230609126081245770124853454512140235217371169775253446885975677650473361653322866793892680588845591376627027055299487456524618693776313851691746276350712139771934555121149488961337536910901739449808678806008713255345744957946660011380115381658399788187606064350884521141572383684969325537394468760836940090184371109456958526026366500902536288733920710961370485218100992535115028357832637609958634921806325356789836143564579039627348568108656408470372094099173663076068695670875313386221890143505431271652490931295593507706574228404609624476653322286833007762181908494132175476267807504162746346209006149004611769351872859944186352164310368562613209104684189908008596576243666526636947054549501696582803807116600429161494382343429990642195331489242923218322562000976503224798906373741350095626712813495027540537185519032515887738575800820076625918196730120923062277869966941807595975095688130975906690283757835176800120464817158937414607673402914399370527602053768704220806894427039984209704421449866130387445349776246206651675081066275711234399387661025003973586619482078786304901877748169163426266274059431525490425445122920543315877613469947352786777269463792432517486871368759237032791933149073259248172071915847279681759813077770848726715932569429468086316336221118056016226804314121898030940060976383208502073659344105857683037787538943522285836957833523033728738681666241315151929123140921599717885818058986682371410481146504352102240868100711602870012477191143049331995541645460170271634271332679310989878304476313708189657711877997171246013079458574062685784196566063395997375651425476669283186987606630869740521676563904365597827420610877414561593014529467806602789509012379098037022436720485576104433374625299925926643148438663585343502016766054566045307694590687944108266617579914949232969759161523911098744189336609274526839716787789198488361407893064495432735977527620439820683971514898516687559798880082736551633293797199670809060927968201957155093169296264034040838255974958518881766612698406161844133616816766467644153669253762769703335846501441636077975427403065856589908803767950199034960498570982977370592357141100513155673023192192735866896401696270807484268192372952860443378132438386958498325026123215523490514382939688015969673512094782448077933578895597505805855856006790940305562159568448625149174802791205208139191947378017386768820315742976589567967594923040257899541501864185459765348804755516290820609896784619348726241199442469185818242061007074549203959837266742148104072744241828041314333243231782714981384003908867419310357873319244075430493746900175207272017521587137645597243523617366604696546335210489467515364752622851434205075943853094022403961632598676996621805415908063311370892014859245849729655896084559516701854792426068916419148727474657069148876804911216111518390899129221317667618264228187759795019708381412142520945618079285077610649255455759949332104620116990230368644599035350216350299396112311351579946041740416294701910964580376487671419947326350368710573023765479524028635173868632462617434438147057620259474096224846954898008814032586800638722100444478422863011894232419131567991808669136206633000540878501471807005917785912421393513572595115188017399537720434901589037123718130540054213445694949816749837046414864818360721271570864505922716700394040483648189960487139026149586742442289970981225256379202734845324031301299214145725104677326828724075529503103634701733090470245952176021671299117668350717000940741097400720477918224613460077590468131895088818617363103999961466590382478204678826542862148508795475785321293635675760667822593528320390451307052487156047858565930039403685106900092085730681501528027562602814454143983479084162162656406949019782505674284927923639454623165706937939928586430550524780660586278808363378615605547832259063595454017505799953736535511612956484908223102303860027952481562238030519781703947820197077985484861307095084748903000579902538204074367228198914534155413579618560465416567210364723089249703158363874167453908596757574971895763487040353158492770213532994767434516395139592182555983763327751719709405453196976296151827581835132455921387265449063949357654078781554126837539947253844989068447812056803977367023984263837573154282004865555129578669676709809814885583621398672877702401522193763750843030080756103743130129582506020202895856176224711116070166210706329764862307040327728511765446510425094941717430797793584702533936307721714264084072213700348170171363820118243221738679461064978216479601194596804146443014671093964365827151893034608909712703487945875615619059019265177242315775203327863092861899955508981767913458106212652202681485049931387448756336508721321503871663499174068916511956686802568436763879479051629299523683500846412602080324067439401847463332298698089476743362405957928973874066129468449488718809843561892901560605579076665390881841545314842784573060947669881156361143675377326689211588941367663408453791234427271182652695343960750678539844576726719867476174307513151938583947855317403580076778906045302113819415001068929091225460984259679556851262781461179814330528167672461629162565268408306750903532607802048764140780922017887663877684762384807681853325500922412612718332537771079047691784833860318006999648565733789607744970991561737346656946924048197108627406743665736140986744154511397362015901458605029175980966402737974455531456609800666045380174502535115726311756740835284252912643953023342918554969489744726846287953191756813686739416970865208065903794479209898124985455740042793258915373884291432880203044550476237808500229336897317624593763137994090573098798183535958207202993107382756047459037455029805373595591651408041647251158371816721913314714102788329184784126077839203262803020068353539548179849930843961011826052595264719812818723968646232251923887714401971675879668937237536462750866750002644777892413898607965549108931746673514258128443077803673705960914633223541851824940683500070603844734740251597131992379957429009278690196638513532266839906494466166231346223526063469233886897007744562995850939919029722759227465409727951560833427292552638672773295687701601925427328288250313424620398418749576486811595581837123043427332931634784058310718934088758153928838477020136534192286008775821331883780973176642998426748746544235217611988551487830138546715332217445030633081656291616812602434211714852488667169360137529682505993881289638644879726402450881659900333165208257448655008585031968069735864936876833954416155353333748007333338335894527147473203890463510797343168635387256770980017315707547088733246541311573594926823130604495890253627492385197362659321800605576505322511363969081077789352232707317846293041368261494193121939589979434919943849566263720153409140220878241282521145133169854499737308195346826356842959416884897508560496314031185752785561619209306259190265030872037122463786472793771618392004428992739843914072502191645104589079974490062697019320046312380512836933123245374960614701220622327142556770037064399073680822105649754965476109856900873534778029759337270192126371353146670643789280295913330055542766462743417665809411039837108764149408946668557794291288403472614550948924175991481982385844257350707451651599506261961062529212486012903226503804045924505875073914431937561053874164012464929206637643236140489236467628274591176307040821987528551998854430537921388445435260788092126042702341820978253159519450077216164317922516100777030445065899399771374897154484111352610805447616177191079944857129499058148429558923296280313884902899496270558189016414366441571512967693846569791683907649076935332671956478651492631634380278128378040529486443264825901600797507553532701401405835214425951717873825325246091122614982826198941573071757265573178253053839644579244104299898804576225029456422527787809949412459189867459644848790973812580434437926162391837690335419414805827769251615470624629218139284824944149856007633311654606736566927361374677874217495699723984350961714897491177732997442549176928098460330786605079667977399804347631464803926213040978595567173370803928750515118978069374239646321157262812026196287625301792843279138230192580145044167084900731278977220648334298052439919058135377648490730812412534728427187779254322599187644081443474009045228136969385656469903861081866432303789730533779796195636331579812475352331053927946814733423462951811618852387541483151757176037837815306909510306368466870247788006369049309165993567664231805194176779549979438506595800940766578251626166191189104459898034982068643316033725298250631900329649685489701614994626559125252388901245332426687581085009277224547542603997276278487560033931553947315655987188682517324999300025236742964628456671680030932348553851671414990372640444309272355872078864707305788719952841040869520050401740227063392271751020428909999873493632491672900080147068375709829229783978878452366900001951464451904584035405610507055095720189216410888431947514812637402829872076930003803980837888713168734801348994543319653728076749460162263432836313539234962369217931749680807450836397787412426254628425693226286231749078199344796954897097156472803672775188715877461679775910369347380525443503819457757416857497652633516569448141950406154828018541349787051593629953709514683084801772858296851499006184110768293622589412869173225802585846479499283669282969432495681740573893935307956614628842138719521352681022696327607486512146439825299919499313396180113348166628369269965326687040787978368430307649677876903456461703293116881534586298290992399594776617290178186245383505002354640584127103273991110511368002534273557389560494129309835816865989636269418711315114581816965867043788357880308206216594593767124663407474632047184760546162976008820886259959681227876114144095418082247819943151513070956276009930919455665782770000635035346811442279907589853473017833280949923880543414340766690499230518189623859297559981351488605074504762872649197027351194942216653105122446450946261101571372803964564550980507305840629084638778892276728290806324946106328963501017559649835728868250883101171428889712758952593533041656490893314016090233894968083241155306756129118198949008842370702793264933726410725213810248422578112940234634510409461971968097876363325410895080905174999710905292992953770985810761476520595099885086810958016224481475793276862093025200486628950465255748700774586229971994379387389575536135986033846240786187118783383145610414177487537307439004642411426433428549972145067014843591415064465291690174499521938951099427201465817392008746774967809081103881515502219862329835336157066913776588541981271474223610117271525178503775468543825510763891000973783475639128654248557269544385882855501215764303734650948020517183215760472656104676142032527800468748146362639655165397944378109013537561998525696280868786288572381926520000524930219166525323310432231334938872829579135568134937407498576454904126645717802303875850982629577462890760528252627129549382993293491733437953050672221302261935194828132757259979182343627737914715183595749334149529599240582571626765707642539503382297922210733339774874279350090478702813365415638733192202798565867009034322451272485041215333908440010901912301396360267280705741895838147461305042635627635695744758588432482389680816381068555586366015386037109920742598417438047197179990818272961522672230196395120098219469232588089664424004644519158278654552564779112794146216151581835962466672551392216272032383398555025013627475881844356030202318039112824436123071007764498325186840477399521865175700224610317814836769168334600907937811282865036560419522398048935645620016670323858212374292842347497620638422333589672716007808059485270400192793494511130774222678786835085753635331674209877795004763938561175906543185057066431069502561811924146472201547666344619800733768632218901277768656686440209611416681497274462990039725750283090830271687165073625113128177844187383035998266616475496972334891196350846235422778137167629992881797956350619600171057093188389734511948630503202532533067492979642303405753017748889465465035259806765089267936862353468659715570191091745180864360309914102381188286631370630269064542425970442747202094474598658033439967181746995357171722971595993759377663681378579091937048424725955730465584081432412862301869263296109203968711499523166391439082688122848318088346545226178004495908100896279454756453258170726168916227429989633650590615762948377318632971863652452829439065934930918551061743704602738557056550044189325222007908071927168311835836199089097507611438157893963333410585938971687594498029400650833330363083465220617520748229189889569711829997049584300724492232854198553239391913927313198367634201754188644531835976110929560536067704654289993512651694599719982017612830951610832648158843336111510746519829097130546386179984512010918160459364835698343982959161827513130587322198034822021109513437516500988877006719859260973323703589371436807542880875071698254053621508320462010799012216222949439599348500030632211616154473442812682669138065456991092227495937524552341983263985933091484644212593351550713269180835965088122235905284738547290330028613397315657251188671713010333749263390670778101263533957175208285292096658105314122293412092102557364101664755688754333724547515904859958124363143631952614941014063104404826421955297888682640066526518998177494355737475399034114835792157551318647475943454088269642312386912948128866934525232806812681917073965368144013073056246046409387327781612346189572770240086898373759480465009305850654631176161963018266783141364148658113836788997014338346119063283530032706375444294081362772374019619170662799257242045188240441191502521352851860363985045312468411417962433136238564171568907570760543929700961398042865152448669890061493993278811956292179947739515259762849940161084919179382970318782858119382509052323787243139309934359696116852274408466434885181048874289545344265562676434283511448418886962845917457177419917940569453561762939363026874453048805278075282017551990970774334036848234298813768014521236362000310710832546226554834610417698716034273284315169546203210777485226862307996371840672538273628220327327365275879470909960197584014984695354156469921984956197032723681159871518446209605466851581730871280852666346715681801512981899272645714009564947009796016905352584402873997218912315066820051616425993901025040436073530173678161387704400708797371170954863204665634365004764922034725849392096822669654494320691957973935584789535136451801600644964842226099817315870770045270345020229129792411928239246814836695191041007719872120555150811758939747304036195538008197682033058424618594834701550086132127707352879483102604872397258621892468369816121986058663665202557301096942228042747829037918908611930823867419135914765916270944173548310578107945846530048608308721004577240824016986546158922328682642274153548012297587013746488171969576620890047041391497152509313459688544612988399437135787413851896869761886365640498164333169765502694408888617332939989249028790684902076516594045861394040208537926257024258206337583183405342418821007491918640895744522022996430827809136338349980371518303366809095067304752785355528013469363539202005587172194954575256161261083992423704360878158562822692634345580764563680122377812876827692056514966700118123043680033401854513313001994526185305283806894661540100841258211111221440643300614026842592481150932948698747779120428268551328649129372739244808834247036269903883217322538175305508849905744653456050350503373586770216875168994795018015984900803514086266733942985180569439294472613585352236029020979368258600638236969239443555631502746942926860731407068849504485239387830821306945640348353886188390256755922578848331572947074052971255227720129443258294395409537529844622700229465978076200149512228612595796986445281803465359462181058985911064062260524555578403444849967382103879938357151487437846220741079638746843403577508342614725119504271294876987094534139746860425977121834475207586968024872197502478712508780331377776611003376878413500865961708687848442159971696914012773856845180685276239028824901857538441703894210427485665130854725303716847934664542632959956616790490761150338883929623997049691585084137995848176320812018362966166200780125009873144512473587908510853456186994832840654328311938124153971919444334966873899984799004501206647060168718442216949124274806322280533613624297637727052910520730188484759024494362416933665662673931898187621826345777703988692956580060249731860859745312275398235938330919476153805697199355311438707678012715038118224099470554795919809198694372794698520593552268773869721870080542038951185541868433102753238675884618592253985300562905078548519041042418434996370477487621325588044022307581925754108551493001372843563077836710877947934045291578086679778445482161973258414314116119487075562489249310183741696515001073971402382385293207625750063759664777932060806005926998037140276414372977960100166160373909426783543583788429728882370833154382050350820847199662825188800112699717168838414797896155012855101599285042110620067433011920225999028386956899917766736931799688919073057191115955620102738228668325715156214999290765521556683354613582605293716440021560263564235016993730835207316438214326099361280170804026953621295993531590096977086553877709653932583394977016924572157498410424282588167322129416288832292175032468436521579845326856598187782753032803646275274012786784759372474751326066599910343902702570361728054183679634733141535513314125882810827247768103689843062083707540254068936078291658145125640035642167925021219361604604625614509678058716460020555831784818360682942709231954466945881625805786930770610241287138992305238294931276400382276344603614468006405118197046826803225634762992087814445788460715324315271918108676499055115206828619831667680030375195568313076313680071665156490356762546875596056111618387837962350519505919711642477030613673149100078027366359860198384073233110320956194364907864607876028927182482201159407285156791504343958364940856308835941759832618474976988385324043209257711845331312864722498158097442963435559517725475709632354287421839510137046403314675054514310895826292130737786314016602564168406352617489818610427100474157749394154528390907161903592637967233415064510499997509373139818886950344958674555791918694387124001677185483354182658972070486369269675873080713491648988114056044833120036214776495655564674993424730172322142442873129861166659506787890625164130279889728616244426438591837976483280282677881564829619048553633178790310483895581867350802722182139170738622759126757373122963745152720365852440340045694949620993985973764674687780427227645706155579649435188976685342242518746760548854677349676520256606007864953700139520015158762969825945732251275411251459666295651349134961164706923713941326581931555147826832811565209806103868593579980188071451399526256349766637993178657711378135984620525475838259351422034357574539983437603055496280525581031231138688336625014517855119746369848150813168068382760296567978575208880911069071959650161336148765242991516373816231120929369334436227452392667362086957603783764642021822305218015791938464950286094182275363325325080716455100438248684662067688431391544626717580365585090098702426626924411544604179815470801186885683772315262535298570496399015546937866107851700199927703149221407713095853099972016653397117589985465783496443116775650181788463999108558221065292887070833030740525940095049990143188150629918685898376738539551391283664384399821579812680479786737248698779387575434737006959902538100962215163382907255069656719179466650179590688521697396066130507553050954300353372687288860011525929344718944085585969810350224294615671426364347953006315014211863696900291312353033527107399319699962744288381503264911337473259457058853251643948615870609593919275571612584750484719858086392252263030793723342164047740135146058522023750718111937649553552139396688757751505948835438329356845761917738153675335316260874403856879598900902372831664259680663464107339952121945701571558389757046476862750971526163928343533533012244046059204685202962400400289164765148866621610006934625293200933925063825756262984303223458334595494228347951649621325807515253336400829305322756519018890646596334373529635080447736581366779088444041270737435811968723611606719080577506813899795989855027070381587303112875879947611372228406676615215024013440522319473487229908274663383973349379777696888833067340006056548224742098248535841492563837601614663232302437350507398896187740580494764047145551553155153903856178607319417107703627272283983607165290084611095802082767423864876204343966394106895058742638449899104444613935865839923865760190077841120567586215595044446217311802473559998265609280004503002076933029146953265980761153089088032402992408134508833045499802432627760360825343423872207009689277599234569689453907321000572545264992789564431111117505080214271354046846053420797374209668586259109579876115118785163501128001591039483940587804441126599818792537497086738919752072064391636349056335762350106080571902228678609570704520355164582279898929345604814904857937617468924263876800663951036462053814514750510727506533232054971507656209128747059945352979836804460527911658223601338183776199501053479782801589207221743054166715837619703561878940156207709255637644372258905586941752844641975235388919306478671387309833001099976761020430824208135107260906249116451417920274838266830171593850676099477730225997902078410098976667780398279685958122664275514114158863800927762455305309421029844943334269173544301460444301270217604390749716991437641813662701960838324201607234541919771685610708858228154001678732976028052878053998212695424476926282104155730078103072757007122487262109263185400976850534247490615187779405225348504956976207878648117853278034976300740124972734377944950888728515109288472137450928128958875076716043925600509022452501626150813839107193329136690711517388120767746702646779420148077001928737878912064198976441506661999627418250603181670110205169868572841742739958452474745430297680805646630611895924882475670120772350505015538817781330514676241242864319299361592267656431743885656048256212391391852845852988131834431517569183159501254841536283063226909950607114156145474698077495347045630046844792957448639445719131679591498855196131579499918376172279186541644776043502566470540286347278481921518353210488236598763400542899674563627722268685945132834129557400245031471666875923565095325454689143474027274594906121396220170527500925407140324934705110709911241940051804542888993082112838650069043285825831729760398866112704702190439233064465785136462446187461484482341203561588870741225045740018889390669610215578724078628511439868580375008146889443523942742862559346208661029420977306411138980978033028241110729446579000939867765953080105734499131490803840765085943411535655949400465509350503835047718883186711072239389703992353939833377956950906319059590100902650272515970894893164238086628892503828315232530826505703619582759543719650235349286443711282763804658688440497438555896180877620239630409740687890577573878630121798357839571187960253641912598681298782171468270377424723480320715757719903465743059357005601181566912595002125080510879999826303763879008802942829797494028880627031227273142424251734098741286769190785331435955812545184617511460094716989392922889378571737559405714949648788289990952573142366421726128339951682927111839181320428037697355114817759406960338941478846349524507074938328431739558940772387058083931937403267537346015323009751445424679573007633828308934121984296851624967068980426243260789848498701465590810433720031317304406534982209628907342564724735364768401445077757364568001013362427534870875418200023841891212427070508651663071555304393409648910218622259222937760148879306372372905452941231301287850528296216575824193227090222292199897127421946154000355959017176883717471491075309318355285317432842205439201595919103454562530481427221016524399605559660259281694053139037647426184890222863803418349075849383100288497831967938635107232502686283390008224994930309552608265399180983575238471537175132656767138071032134768843137074261327693197325065624181041957875922729489702671380154727838786991359594294539997466344119129315828019874027124555535963424937407739287660820593184090500470169640748653265760184458430505347323826124552735609137557143752052024473380708868692242188087116302647416710534072851504302432205493146541262559686907474645126083264791966620664872689015935621983674802035018405969752409536891086408064177329871533962103938762211865480453074623239158115818229415070174555861310571039761000563571208580195058482565946972829077761445418818475402889896129259170864143899890879377858315946670773938769734483492901675322273566280515200069150407292542805749243828537855430638035630695412862342450835449216329638154177535537224544483168689788714144392275881606129031922352255743677869317799211774422428041877275052861996948735791106373295562216437148004518130581929886301591046853990238164903159428403741211308200733737968783008677602618528496640628654773713959072503632462805945487054631562019102280767474114310156990389660535516234972544560124048904347056592560300606636145059774407415740148917819455308990403195976943980233566481304613849958166301817788120778907135957171044585949177328370001088994337811550839374643075896664317764900370517588576063225933054986673413361941813322647684729975391077500279767654916751419043769481655068034108803087002260707389180963800352885312505453734593350387514480714836263195160074985822230943871210452025353222982640146278985118297494043491134362992724464237197501224032398933713644670424526576733213872744359052059724221283548806331354299503710194384002631457511215150173347320845522365291936389823999076259200916909962006512792870587983317832532456228330255698834174809719250514998851233809957058956054986789213837014673976975150326860439420655821536093539986198539705283343491475041525308780712774058344861364421467720129611059948987363272726129509169435783370184721313002319036160830334006875641331820493009639276738187515105911474939789152980561099628502660982177178029724368630309631696207851749547492173166113604837106550813231010709070802347794714774887405991045674391883268239528450322728854927136355191952022599728610132076404609169940788819229389313168157460101726100446761899314498473952327997346001605827829673928465875726533191509003441962089997141762664417584433508025976856960604897145558666993344422181075959572106290710569340060507706612458603191139897617995041356003119453877426918598410376371689230784428829987439510845039198212847852836465911150691587202796986481293153102895036960784791596362056191559103305746955370743962115147099223892326282590210539041439963425003881202555043155030496502626682434580212747670100154283948377938395937176200587714859523369073140974602246061834956309295334199914140454012341127299129086132783789417400938503630873479594730589927125041438547538052730063961202561485197065332265825064299968433040451191991726122132767802404165325617554772250311442782436101374968907688507007913198968977209095568333411220681706812881308639006443328532113945750191896182263978665433259062410416805959588014695868531410873198003117127774041881953437849564052659649058872827979877788793066062950263788305252740538622588878557220448105647362976666328247462884711356732025937107661675056977511864144666009064500887683229248984116461417936267476151469751174492400102112327062757934897290478578486907124330500236899906641384741197469659521938375228671953769597788443113355940794376883669982553796373149025202609575245919988738385291601476225218769951319093545072449892879683651563822545654418785042555852293002259033094060620339890078620119291358206936070874219508954722164686180471715825867990363417292091064899732981451561222938378882029356461945179962631653128554470037818917450951211445029856315081642141275885984014825360541187184982608722877200429172771815385853477123406924283812944406625844212985899715108301704827694744970785866774790155767607035681928680555450608347341761535020350723852900772481500977421321454309157258047614478560668812399240140882397853852211784790813333308570522237703410772842140383420984838858764368718116217366350254987089162819202191818657083426166419951966129628316070474096580056631187367592705033692445444376658043945561056834631805825269948738959318138318333576097763601956838029882132570966425394208909353663101302532769073327099876053118029488404690821152808477516998588816007526566264578631788353757929620550651435602332802192043647159467682778644273997236813339671669558051094129117415707524663768463667656110894113670526082768672899379358396326853237154411104090502368526971550021256476406915641058536708005774269628212230402594837984633315540721486673103321480824504150676794739628315648418242097202159680032271439862507502460507489493961659804244631130133407431655815918576149705519911008334940149494147557724032586562041019041639326806461043751519203890292899871600838279643931512094805139069196771167776879685969595171966545374134825085565407261123302912985793553927819018366959190481202185107359344766249233934220784514396794239202611101952311950393943121672061911595489609002749650183836232508201882597568113768479450547824033192406618675914479336865325602308141802946059905815795432021543050589224221418799095482076880614421715737242727476694710802902818720745660206543966125496102349586735769514705760182580784341159538900701961203032013005752921485127019483885897196093202088767967962197070391516921811150223107559394314657882742852510127211510358696495938221494154854107424859326701008916527000727722632195495187163071377690287024229498961883731230432004262175130274579440866064342381505241502399389686746765744384160976802147336621556021520349636909177666318468324659898405556242600925295080195526291406513320621763002563667574101414945022141252200014344797830197818166654974242847670106172274375717610386709110648148829828044308669568912676580911353184299343298058651173479265702859518273729195088375805651909742131905322700875146177904889667685478392357021469691210490656881030716989312564894770891190581083193025184664642042210048312724457800967718936236192288343756961754545129305619670782195053733499121469552028870985003462611314031371625430749056948233863975278707800126647519462857628869728882268780051665700666438440054508182925302267145936733302209669819282178035853211453366982560580580520674833140857774927483779365923043044688899879799715867288535368745464511538796909943602335554307937613891424628928985638311160725711202721861973781060350009618828636504383664987076033240968600254949740301432212061711653965057028853051480844487969194499660216261667839275591305163962415694532731360403093583906302853968534005449189327776400214753156141836456507619200350837830502788785347645774403081169776519052344679760323735039078208477072665417350718343301728300249684114957276372429747894702967290162413048731862189610655349997911294776610268430381647627512288841014746272653502784947711530534069472625716862669782534482475846934823357826243290576103552943477742402455009343438350759307628523265761667742333044623672253830108022594628874002099866830537965904494407518991141986949976118527389430449426147060841223785626610831873644337500721435691787910089198083905358015357010739448169462568345908941347333236125736899838215937051004205397622552206394538246442926101899979217619290656207420296745568242382281220043842334438039678857224331239456710121825855952686229414493841398787160122833252811860579909839161899097410697650353164027520470282836893958155373769544742855150006001410946928944045956254059852628826974128133793063548751602647450276583351237434095830375446676017801076671009188634612087190237193964046206826778265133924476439399863907661061315912257202829473941013189117679699034846819390332762390426993098060475047696536846212254506779103246316542133510943546995362809180518456437724175343595403430485092731317562396472829395463074398086264002630477463562734372316129698764663467606681569934038500998140913356164062254372494094269994863500397244186520288136154279467071981414750523870286492673233179101818446521212014446925914401836862403662180025702762192859414524834511089010271083769431404766746492096823953960484542568313160555868805892617721992100779926408358541064762495795883149354932106837031291251691900855250415975301241069501609928932335900066526398596111503100789643619477493514161619677782045829217236481151501185638855061760448829054790414220090813426668163553598625055252290857017624025065974641248961528516037582914131538712990949415148516665674050599567574842546901946681583118828336357240789633141124271652665151073292333152414759573243756241607032149693417322134305941378322330778942893539189419465734361339916343515967737437599613469175235284186608315051271065145027069546446527774856183541822170634193173431865624666241806784338109776365521584011815441893503276379326581904015793188994462869372951961227473523896758549493940565569674891106682328772492545819826931879489967558455740017493707251493115569794691226947466642302166233111415151853937300255594290918273360248217747330419398545944957914606587173111206478782933128831430548033977642805441539773766053068557211932059428608590974405158440136355091607255704082824044147044519095191425453747229359051373393671544669087134864835632048643253452277136384075488784580318173113236532671164274095570969615446372868336065342764991130813354414540701138441064704285966562603187053147264550859956079279771841974933122707260293635438504927125176725608873266337717900435102479601981951328749102836953254711494138884888650255739059208044451909829308402044143288898465261456861274198645996642466210561200546916613812026475620761550680346465217283437210593688101843072421862814496053332975201971448107011941413282749300806873091838451000242757743715304039165111725931477876661123826110017231501897545678055260153126905623273035264579018022776487152108940838421620435992811168297558471089110689078501455312474797006912996455833122177549625673311483929892349440765228075028704194947479678834791813130491891863152988916683689481383711747803033944140018554334915148000357232979138631695166357553004474986436187757423082625415697850417124613813286395758687225992782286313790341367404011741683095484805082565460509618092349555949177305751927882380329576208939011886125562860403862143382009116207635333309040124855016146820858935456017978776439487087787240076949945695497593545554390993119994383276040786682339109773721534354039724633988547830808648165527238085183846745357894722332928669406514002075786403087242032008739564828921708333340426122506570743706577405710619396751201121525365460776999097492708479952968690014229960900038235076577753384729785714418506532975971528019451801593402596393236735673950860583584006743795111018167117183828895044916407900349838380421228492921158721243972744156602027126396701796218359814165791047641942274888673523781216041295156202741997267496285530509093535441746229561763288395393603375665193083949569639546429745039892102585859578185084217390229760138911847287859239430971037150361670457306182736547950804940442928401235706614489539530166489314812690712153100264331347047925934480410155421162219863829549326533329949087570133044093142461383573941213862716427477410603371605689573808872406155688488437917873960465797453891085294427587599284668174666992055276222785769907672721901223071364022725417193591277780611747144172307427560787740546184514895029430225355348372942496244931447355091323437731422599023568635887910110841102628884107480528430643208713517072064767121679467219168057359600292609796449970317091610229335019056673011767679947409138500254546000945449909147365771948497573105449589605728387241723660812633006074749669675549602560203696117918186974755206292766902533012253002211011433100262253427240443158705445126003842533605513885884016548055749602323282379226715390826006535206802365012928709267824154478374638774825944354346816409991177111466706501325773996222866692558979113024041914773481553896315734058512959368313703420156104998582277703017473041544708394238758987440973648313945950389211692857387376820468540854095994342513307322402512196346602961006608008210081063345074459546647757913313060377263706691514210320130295845611684637632306314647415428269690323637209898162929170556955477181224520827619357180630033177357915809807171347066116409960399824330334975740604115057734777144563910432185196774096854126377504514660777387204956560298503843815529500509500264696488383446967974345299432747426643820804847200123846291023095894075746112883194715215888977088571959362882273992546187310742099092200391247178106038969584225600618319409188150781762950781520684510577274137437220089340188708120928842765462695886958154594205286862188879509626525181689368317564792508184383904816821368495703490301593228456234735389267781874311164764394649796581234819998347335103906055881727139730468127017210503047007160581085125294591811239658091142906488888920352208233960399860893162299340888275230488970404883204252212359121065394320632649557369142221477159196762730172871335528465901021993362686607267401022203871020167620993120787856942974031769876535865139601702442396613285999321172043062838840694520107122888526292110648832617233630408477972401428413248067909220036192076167671447604346276315863760294534340149351426424975838002489167254591150300656256311237402080504244278205253085149331901953574564801311435766409282103256526978573226666605907608409503106805870240952277017264407250627622363649913749093234072987393089249309951780122869424617888582844558969266826577285629677748595060830696529610942319367580997161070639736559952416495394688818070411676658092382034831924680931423373338845838545605721632253603058136286211260628127733811252421513853793876910030597542329860071212239952177413953691381984759247786076371819067848379516194709862067976988947474847786202378923772054595117785460320332007017334190351143905855237073212780441680278526251550596353867406698909027038647327331857992414701313246199154299054837915019425475056040983461664959235536283438061919836820646557054498401822084069117715344360910785375700325996510615745035520250272185015451078088579736425318552344511029032527475055283643503101841451534881652021850283302827219736920278788909605799062407863534346954163528067123817785113201218826278140004548683478900860085909457529807231150202683893100857022550031256299172837373113917325557436252267726276398257526481803989499238779959682043177401116961515900964508264850263784938963053862215843302810267320313953302705845476510699446368376627493067264752210954716625972934223023252020897176698120314583781597809740799699509845836275459566582108127677077790656754734486328094278482300342755428986310522180018415861555551536633729027079619649759407535057822775489571522394463255082323270069943855457634634660990223286977248461840727981357054250245451930759945353154630920176169937402088761349326676377214317304050079550648245724641478851734331128561728091667079098927190716797049498926471582568355813299665539443170723918585903025742524004012744939347907126391730216922553605008052941416183254393684250330133039386004007019823557499911098622429541526360776303497453692830823254953637799953081393202890496571161979534238808210439379186018774517831000937413649884277552587906776502702754021221728286483536563481660102945351258727932248914049373128049411316279414597708964543190434547348926045849056475006221128175960386858827448838680528706480241039263616631671375579342622764921258806473812936264088674858803108752890149168970936639772304222013493415641397523312611374283563220585113253633205456976141947195131796163999654206068019023651753114367843855692525132413513371070064481604632781597808121959277245867331447191761217566202701381166689215397052740747915793104320537870080234168174109093530898510118893339549129667676630691131337772296496801714710121283716135967563440583561242584708238184715003507524098319254755621123901803081260560268399157705047781531122910485729255498643528691454399515191817249198640940867954886187685078577521104483610330589852394050168245175141863334688182667022128667796990274354480342332183900560603230765664518391957456230957173833196396835508879477102438566655791698973784994916229541077662851611213384957690143146489440888323375907767472648291256540652841753629332525764348175310060737501968752742388650765825503429915869606721474276323175419831011025049123901857597549284175629679293934768855784900939299304584912779602757105729215516463179440943568202005314562153906436995993788342057693568551270497682646326667362152978223945382906037308564213490509426015641378008107366105197026966893329793605805116331649132799745807629815159362009035399230525900914359297461521637708511325525074108404933752796512936057928251494505668354827696399532597244563574637383393162210090566039282280858931497281002728008379809587697789976528249106952404719776690900821149834792337087889854054992542681693264488372710308731880752717933201925627042410618398480086020994673994660578210980017494330102231373330296845718510516791419996267983371976342512001237765583092405878917164137100061041233436018491763032434859768754058769617030220342929766807918190096660068370359284391725533727094878626906048515847753524379843555808896661559366864934965132619512741027026903741154374042055080445866627250907495747442704356433767100992961527078867775290792136879677538673565211540211328478823210118655105875958827215630701152477594362266676994015443774897201782668225956244047460925062968472696697507084816137694745182760999651742897361987219576396772500226664284082716939373367372503498376410963722011534630544167947829622226073736467927721539567687030899611282313918487173162481745179930883461069224245881986381492278465813336972047946291493055715345096377645627191048125720825665533977599588471555117189519340384745707278734436878629765490468296197933822451165567835186163325954073808328752317890841427403078039061516599640218178581197583641132863419703513890028507906562845782600125511097099397502755798182632067978233789814515790830614634303345917643949174412764528014923901733364775024378645653008254881793596930917144041560241887491889858071806567887976281154671776896139123574716218344555444037476585640051071961077038073607242798236825950543400437642616552957736013955994082592718677181162919343870365198607502169373820065136273436061070308069319143221331525982963635994962495187296699619571274455012522484055116756457208362760533021268196396934217467365125510465474147366206303362811792158103414211894199104726013780920055287160110031839362172173109764057978355751410299667065188927451482407234661760965613099755235445554922458142260793351773346799564365433267153586855882976217939013017089356420927770901599967989022643445543760447921542973993924907670725139799680697497963604957063737671675634549116831379452343019645747102499631530772408804937277896573582874799605805728033288970696604569425685446544025670038416513763377140759553957378098487556946349083057429190823885097490831141647033282391061908688797950042155509134089625826977438480374763636910115164317472188936733985930572549409195967941385610163509456392227707353608782914474875204570473310651892436230569610047499442460606371154872579387305726955241804454219795767483852839805962775792045808872643378197811298970751495910034189237032858856859937975100934169648754480750023751274465118703062209906407319830352846250020399549181610940680631438999929061854283915855057642506208789398477135229556480170551792345304710310738632241364958162885631440949992512197776451129230567227059255962119110542598659710182587615541681502994027050962761857482104880608575370440444171652626834603260201252952683111363278733845856198958187169511567434872987811522631817702175708560707757812675955122380500096855301981054232852763698266166457202868900513738746200107471791690421432790251194915890468626753549302145636902203928185935742989053394714735299232584557950889897238848380860282096770830255144774266944476180062315726886558590615541689597265517078758697507276470546617690449525710193063480280539579165023044119567341409694645702198945088972161467912015842846626632259018755769632826167538972684408576932054777032193887236196903662437706527023638799257364974620321729413407378284226331500087952317798050871541388847834905899007602354459711754195381294001125062121281942160132110900890960814731362464492828134929918570384862332009276770345693212950529595998224236524898531654756106568557154939459296707135203614699252135919786347239403571969482822808320258111977897187780537476940456880191166499307625727456183331381027786392857770886094232282104919916093802141091323579121042118348901391130772357863495076839071344578783221088713896672778483822200834508198533929990405134854280256180271233653852059820884949615680337539669414776142684590599045547917861808104122597085084558248089572856317987485555975944550714561552954134584399136387042971132314286199904525399487562092074320830564848747243259072468885253516527050917618227059072628082824308372270402978205006951961857036985555064440304711111026613845964235312815556905890384907186078161307635732513418519111591762336805571214427242569415689801548451628915603054018936520208469131759134633801572907750118890216149739826515492903878078700955554032738863407753582543075880018624155461582559826972896529222384480452627093862097902089067407636281217302272500481357293992671253587064330534972157142466629646716343461805761160870888158336062259599002894054661463290870713968423635002297862510735431457493403061636282289118940658664745436321178751538882703230068411403925221067849786322112672998971827056814612870120316309457669960062501583730715750126997405329780991065453737233296812139221319585126657832760339951566994821655169191504397544747966977972609749815589597633981447541539690707960252411237982961024923277622921691160312141099450143244874987537739688482308109795024234886955302784374119340600261750829833469911319837968672459945630894533113878581207860689105965179818879560540332231072450241278452613334593127241698698089383965617782471068452500918084378605854340049040103473263713010650491319361428233631383937701227655621433850679984247803091709603750082240770750417725740333446382297522275123576530195789196031239418225722090294075213094810452733301876662771476474604165746630267569494998647380005696051961194852689551052426827237118398987502137228253780967750749649058596527315766303122573419070436303414614257344885014194427533486469256820641130015625510617153784699908557466151758113925637148247958685463613594016680130937910690662236350395441877099581839969576497287535589973154521812295645376341085880498925590455862008266349360399198798177355882725352981497021204043855258043066871137949681207971366614362686660205708563691832696343873510952816561947069455840991189462247650224418545403963950368388309133935054776611881258256247368010291961760218275355493602283185722769905974956787570501514888610589872641365835938727956950880202791664499513261509364112608061400254945653805164607491741256893683676626320108774496928930424615514392394513655836609837169228292302871369672371266517883916642557088293757671076145698626065721039170091397566683574225585821442113431984436087500099883557724262026730992014058781251814573625682925530094582334256657213984063705146271228038833052084085693828905754478728402671091132799657200187660682946907702242482663872104858820264520509662032086996355434127935895705788407928677639237005787848813154156293881548855397318063213276356364842864279439888316874528082264283176327316640269543458817591720772773072948249279988449036334973409323168661776143885241802472728343983285068130218870332349207250640591982644202966689787974677224386493277325525264529356116501408141445378706753116866881580873272467432296330629868158252823529884442430439036875580905960614174274432924937714212475520799428660616207961913298951609815975546854832218381280676853874530356216895721485461598203742703662511370650731072072450042155863551102918486806213775530081151076764491222031994361342779008354324667900293715334247001658128431100755984171416061265168164072326965733151916842609293779829305532417938825273618988510442880354601628202865421283919952581387408060711974765654259595057399716712674819314259770974679545598390847295337929273766379562762153457732318045067992284938312050139204544566267199104693173326005286815884362741287265753869578908799635204826688231878249692893178541305407259403404043525965548391530835660580131679198741109890733961070239444916614474718047552800337808563691031353531257284100442734157597770399149872560414063333037013386725967293298119480843774457235455197799212390620618204809421651877927539587665276085482643931143838849601924215173588788386021291421095549171698353739934236879097248182167547252396415461832131345171293716272381736098173129347237265722600246840532579542236231406763539407768949833194379623007660370215287137300776154446764775176250826762456479921365535134910667756306351602957986954385505428714255111349863850450452628119948853401873297002372928033939687599690966030767993179990084691907401215472628845301938762483032386808976363216074435383207629055987038412783410015724469709790973975006973436455268777505721784807223104899815249674946096801675990614273722326114983229905005840338322634071912967319854595966186198543986374140749442854770398679000607703068557659574760849823558636015990598060571063505701989485593793730544766624804845099835926962130817969778901744921773863902786198540282569873829156075857957783062637187200139825177313326062305026207901124307642020450398001474105804356671771562469789183573501049941080760081986635880159217934583990713532417104296986756685481775098167008791040015072716781627848594062954760605470279204442960389879469585790967208604238401778684555209941118984098079774519299286648723520554051317721706730690328030621727483109361053281554873030023570591021296149962202825069151317875640769095883053086808234241056190600199651889435825885582997199616331252825738568031660531188193346858297396015195550469492051758646121661371584449726035822743608099364625725165746939310816148682081008737131110273114463003209132858684284630886991237034908875541839682526489756977121631722166016574203277807200442687741419580365102245296440230566348379523954375048688040183394431294342074080041750805663663099995683260946482526973732967183546881341389703901010145893545925874913492967618346570480966973493237035212505476040162849141389508603633719094797744822166082042316153419307062437795701310513557872542312815864410181445976370001023456634036071255406941907492862936072975583666479452478595614520842890128216924654150765018462288292003635867428632407243513544269962959594017054211936234640356606396294146296128794050762516729229758620163570632144822522773818420893626446681494747543525218574942673511392338706118787386813877010669504159042350619318564755840317883547383011363261629465306169972196918291647686016646850444892855904353910827621148151493845771746142224330579455672263559957409288031900391643433315769433489556458245205130460810082996830348824300968118799476961954853895788575802816093418664402625056989601881215816574195917369065185471501179883783284532785718980121302878265049566209744335672170073893255029467300911372136817407293938106315991681564843058809003304064532146572971784437730751006758405442511145156767505312867872264815797022732330030154519647420877583324339661324362003139033658319711637242745292218388108764549820054612714683808337386654970517880628070817258291412666316533835706470549910801974593196506959898131726065213255110586617690956571919572891981735431143638792495680250519502449090633153183280886027639122904696320775658885596609244150535997224770816091180734967528618747385822658400892467585055711757060693002962535113408593762019002773543814360757411270644550925561989895389954700145453673957707088873751493679207338255223208779351553597566260294784345285536140595677991100656695153382693415432655702037136127909707221283220615766066078573985075193174093090070890120946883938195712180670612244916570013700804454153433645000351571030217819984170303370476968517416838397897201237304923126852118014371558999156582978890342588221389948077532377538962061679937120704583113826543195613338131840361358405637659092011607230887614929082794059930109922831267085089660514968240960599607868146689252230427106945708840778056572803701801993597789248299129454427646955465196695261030789286035985139092774127797458658737598507187108047045362824329207508924422342459120240552338785059942913585303686497378266962411175048647085542236438698271971597639050658811054925843273174572761252978335773938171169286190631555149574261020226132060466385733471296047440107869243942530090835550322725887554395636344780563963682822994694137142806183472289650513717237059773362469306624526099906467814038953750253253468926652734250108762211144622819935520880329701593598743255589072496000533549870587332972675568672407201646569325882657176785928753935689947529485811265520514978123708020276114083282707928489890802718895036130675075659095867178073950469796543975082794264441404167915850359383070863623800643937669966718026396599129372988057423801847884903489377009803065712167221828731199789125998655952633956216395078323957570161823314780020877855052002552928469086977974651710794699717774613558654567029788682608146086587516180327180640075808782326963607118863101535809056053654468465526338179045661340660124707299279313602548826016140601948660164433694668437895516466480138434815931058538812750984585264291417395823446469159912279957095128464669512512137156628067415426212291569914843648582709796898522537794889190534142222963440378797786857759647527970192169730904091030734662282520479731983289937189082633413955740796909065670149603767293133967007952188540044325613989231637992696092461919134383867017968197022572701218874236175102316202294112991309423876294021629914558119969037935427743372806890889744682415201951362511828855577184297324690715591641671952005890563270703742124812502021297943492656625702272897961462197156561019396196419331354386664019397143906069590480560978933099230459616276780843643269208933261457205374243128792507968461639246523502308530723128594431558704298964428230211405968143263570772210554949020484070695613901091237501454854541018021678185286218798474364323388354030939053553310651113750967219865937786422706520835847172086999063506872866908446982942285031708796244174739660188197218665706862089939567471462217871695171345573157111506759034054882388337303577879462208303905008018656056153222546615962759407912507675485308073119466265959105835451266249082749302821154344374380421203394704290036832271523061165363792510111706691775963706639583898766938020002337096530445937855849559790388165675912355912895143473324603037442014906215267621990133708160347904784665786229271683449766356041021122631309159930933475111797671959171646878843575888946530730009550600658763707386977167748855985578843857056753985263803027328748068506409218213744100485016117272740920628916196962115593143211895442628067315530312729555148382430346621147506827352270170019849503198293489588138462267592991343112750697419856403109147457544767076917355172750921493767844195177667579453613876641017545748974643717074065097095820387068807053697691246398678594771066673047791148529718825415111153223804921816189440308116245004162994089532595618733629751102818971665265162205643985329347887658412627354166768240185958296982984602145944015277608717671141218740562550664540226288366477580832096652490490068411750157194323497488119946395343268323816165617557969757708238546770884874001521967541285005506267965582193918138429373023653346122905891737392041187830312150759325498433993301589218330497396161055178083779255789983578379706869731308590981356812540379341343941517770606732537401812606037238402852192473420556185693643282122448156209387182045399203947473944162946360914874884282459639878368533049736697058527999642382833935711794411421263681399027004926034968731152785027510858380652545623259964724835666208779198872274958670839681364429491703312142178747217996205182038471999205439230529437092214088980325019823559296859347513198270398367107362823858026436215825011649922356773651215694045732145889868160059359178327877678476928950084613695875904142012154141748867365408668788013025557590628787389684182452348344781050391579573401370544147000127890716750760036422618915740467163960911916330974568271307660932183211058439794638954721971638979437584454586562141654159540644660247064231368484000701352421719019722711252755408690609080866788302617272666515453740692761010012652124870918913473084431948492605926672201809495506540503887910433583232898172943264029695962219164674393435421205626534146483578107228501279246031452751886680924639910690538595859975502207603590191344037812616058154449827581407649152724860253360522155815866354991540185510581896905498863131011982241203465262864105031908493130958380948977911000541690155380099282286682749552096704697633671327995898991912230630273914068177201414890569753762859708700981288119190131680426527743304884508483677187873905174080582546561252142808185679272628413560968498035906688475990935897418738090655606513360033926286758452673505290628281548152631031667488212514172453527175534708865278646526069847420621150843015365490842608669469016657468990832226705140539412080065311753941547975702616513152935792651056191605355105724426824500923813794504291753698087529709276037297113286812083888813778762778924829144586172873003583319485226670388601098246595703557325303937983839590348114117576184336424058557328990103809612193846706351639427378980370417361617750163064803820245191021618307356436150348636519616486475278346171333647788279305759246620592278273663374118263046367680223778114230850991556608751795030829620190322384091808226711198530263781178609290422842471846680703329335305748838625631614991475130103820396819491321551823065960935876907885250461705087594742472034829790274631144776885285603027661971332295732094654450867815186406570675918167724750491194734068618565424419614943793153994933609329003407975819217984259418889318303114461512516505715041277185810701583250118751498332902304935491391015525978297445049636321011134284413553217450592342786869473703977550051909311740352609492436284175231568229297547182337061555473375617122854992602126086412510259822911467969669813605414677019130188004044884569908644958249233952448952466345423191840992913154122007374632530706316273038271425816274100144777517136366339470361909124364901658497314212028203328391728887925948755834831249097861375418225713158444096705135153522613817213852477520147247946132158137815902183374159169097976884868534071581289769007743482205052628845679606762209017650493253206936647916348651795378192894959656544091729854300975129566640094655417977428542360677052810184754912817615093428502226364189159985090979480107241113736307605072187491232874100614721768830832825451440183015636005947993766572087799027529270931711119594950496312760040470512246277244843637264859577557377196430000606656952234318916367243919958847384550558240597817610061174294884855447447024859248019017956477925413441248163875858505430866421724287551197757182561952949743826031968920579328304898496278179765567902698053700246738656012632511203339486963243270110953237346235762513193815077246000076728301948872809317099664347860519578891853933750359537462629019198714512429927690870659793871383362609753279974082553364240270852471195057433837493318126325202818932387148953501094947197403301111295287793327543940678124844788494614365578664244477252390301824146902672732334223537151471814519369678578625475043626000925189979441363946737081096577238837205569245193605922928983134915622396063259200799055313263734441975570645370963276074850270706436968969886000871441372514888878612393960983854982099054723433167215460949959650430757438074774083869503270690365566140366430892917907154095070046455079500723040838925833155597109588652812875530719010221709723289095136637828515139800850817355885115051696251243302080168573681649269218836136755972144635899314452669263212708656597454972348916514552687670196764462342736693595764634370266227911345887784416959824561751055582649980734309323682569318548967705578958070859980534525985073926079842708117857359496373496867696119442581829669515629502435195073925101019282212928828281570493194139628241045294677287673513708944293441816876620399368419439247149795663604542283640080397384718009985598422295140620360194864297046466195272350477547636022700556782168200355544665834007157402266709474123815914715782086514883161937269862093151017256731643197971403082962877660948867605834462583205757713537940851595280857328535043974461267415813518088662244162632253897820617761132336925066429152949390397677416181341636975222851300497621424749674467535524599059375437854075551348451698164185991437766224975613330351113114217720709657986589793807263151700208334504880945354092466334556818829979758098984193713218958398142836636383898842858388438298938782048377820462132744595683060094143512517130272263633433207292565496332473603599288318807900708906359867585146891306698971047084778913035198243592770023683715842671986117834723004273551495439697294921135918521536752838568568681015205155524499133195520089751037755388744207595204810906131034959404082290366042024651826853299449691775397006962104446699703313473149134958267183508852065019727993925156557255298262424875782690848548685458549228776990296202326769906758182093485972831321995838361859642884791203459697610915297647030179361069334727574101815389687622599030522864122931924654622778594933874086068044039279969395020770802827749483785969459576674853194247662811956949002701320673496913544879608387204955033205771358351977107897400740622694217264092740742243910292631216340568926528344064023897865906670758620255818837646678379805358103615476908731598292763941601479947585131499963695830564108706011272267387193075779123541586745004547441167790584871728257656685599433667540826606713089617731198915973636603523775262884824038705836431785867593829161084361223192757936521462489616186530786914668412514457718915053733285352305013245981438678193647494464320895583195651433450128189213999926319870712018213851286621692784800987722451558647229445289689183382343198151360045775652978750141473702517110011413597576605270882411320495457675379679115235708637898611181667363368147127962754405634884050358100501596445025189619877826839652451039311993856977888485199621394592509592600126060988841770207577948900978634319619547202069277325538703996444757981910125035994017761991527086498089053640394194895418125572005900500883567505263338915059973942526549793448569291930526617468119260672329413116352889021558917256211536575554220112214424369815998635626125568952175979675892494425732223565910787534284966498991907037444813269370691896458286527896907774331881768760211502215870163527642991199240943459306004130245195465409216087320979105701791658098164158800335671779464750991349007465433665411993490183165167400802134656092196632394903878679122769696552631602581354362842961999787068735570096612220329467058137198747285426449720174989454065084680451964806644595924664487863068438916621579979189679195824926847078298129636292404789417624782511452525873862705391055495387758696089116107545885395568222898692055049480547599548252923887880923776317247089339293420866538732631585856786493529426643730425267669088942142501712188483810560889031098567608761722103548512155935257357277160507870845075018759409278770288518868003505310884811835561338206793513704531572117338181987012766730407478953469131028654333589256800180040948393549023732890469778896481712544778286091769170556934641216275177138467009344950875708656340446314253603965880501670610500052801005953727783800425896957320364610852573555352939279659861355374753600873490466809470852418494199582012035811583658359364282168289908912291086172947464306696750670791899532448296650917053187375529423578899043167305687181415279833773031972978811507632291348335703135813660762413637578652821365873972620163157088807683658655772893723542539560996408642921131182182218369717521044755864478408632145677822261943335618207738099843087870215773874137861326689351382509263361806006097596677637996577135506917810405573500798655402011872469211834510671011225662175026331710576407186427545901534081810133256239323559488916422584198591130254741948497940942218552048333148211151138983265565900210269050816258413512370803004079644340476355682241741473455507935913009700443541308204164756520382863275791241001900737082177779128284458962370331032306404468860709900969951221171605428627201227953234280101314748206107863174039791984470201615283218783775121988597619406204150426240889317681941991844717743149744987311593017193533793137371655595941729127450100883810124817099575030542865147316290564007288399626383178137981313172159948657641814895381791558557249521778560440177211089356790064235462019774168380400590976668752795306683807600505086183233608435652702686783271561252828799220494568309656784053538813223731114539395636918155667997933934689618830539192336168212250463656496302045112545999303981767557294327774474818324943776439363597185997120058915323715499977869055653821488503360610486693563319445180211056295373495159845206378847274544973628402567425111272432427954672841033692732737177448128784945899800023987010875930961026152599400772172814876002666728002732076590968161558802995763390256295405397609848562392302654530124652942491900869146893331351017197988902164682189066131554746961245364650413327288452709210631222316862475265603095990840273446753271406752194771505338693086172719548359334224375004373778414562904589174827074948933982607892185357961562438046770072385318502286741418852588499341190356762458350829003462322638167338971786011972615196403628513151454392471667683057258958666935993666854466810501047210757973528960770972416479418599368360308536914469790191235202754957914483573805962224912481754051240527672737116883412695966299455682455952554243896551492355028461330122975985607685764959747806276863068896230837006652317945778267635756763135857142852219654041111852201499516042929916656339635798928536858363832273248410924156558028069263720392379942008677779972602438833311161743810170200834636993400120416186350840175729030184410510278483420409898491929600748117484659609504765162713906295446420632265350192946900360038149712294284139446737648611687076838703166826440077344914516363045358279659838970017810925543882014860584572511153166229729392770705938721161110857252473262079868207081728644678421284186135255105370231556334221835207804421805539176786966668268595165298360382878959804966833157497456630235749944241485548125340231854804293055711070504238609798551825891850008797381773010236241208140986792896657865993629927319637158379809916367950870653010303682835150150239699436155334646132061416568186984237624542267110571873497587403599182180064892928921239305929629778917110499847562080041688854870671092367661330622667877993604314626516728330472053582410915111488622197403956615581987826258583634673682369188717823751844651837547426532768852395431344055109290672804653646293047107453434882952465271690650050531292881742402327047011922789315681638630636475516237932146137560036199584637406279295682143804191301356999520412971379914090348630554286305930787881647371832186657799845187080723644957676026226521173911446653401104311646552570266900508636514785787908031304969300622111463173629973797104705137387406536261396558492029411320306725978712202641135692260499787507982353240762744262018333168166143207906909679335326506819667121688513471096431115884412993747419037664539825084918561550179138566397050765295111257320245870103251102199655299394706633238625592625425368631541658052523807253869482109620842449996000741271338575471280408995281766057583557119176728768304786455333074020122592925312028474565730111664578280314377521462202619864465431812519056378892417981863048373633443330418287124020472875483016865769149750459151272951257018199167643611321270117592562900457327535168023483503930451556770849410929723321579991336346644743127054708431045940616184550418941075990630907657757011975152306098021055156035959429706309970010891197824665359851825280246023479940657281417914163479278670029398077714708132661877156381735620720046157745237862640285055254693494656361326734707432549375329649787830879116138282211707544976304056654763104262884852076182971915493909517407129313543958004202859404454261970900591992010622242082194454080167047436457928606616259030906376439613204813808970552921301059694052494249509114129241176548571897030399351446232135399051714604224003589910779552543900291433961318412234333320104834898248691405230018012139653207764501966718833497418035337952809454024479138426178250431295760885967154349114255607159216996248119478918662369567500245233475271256733682485262034628059234168381032086927207190493297327462846291676756685598883965781825239900908113409532744783779655470774747200517388887291252209094878983517486894261145593009669925046880454194230498594984315767613096800861533136352350333498369289865752996651864862274899454043171264234484286270899539874239842008205337007102840305932001522520244633469364473649528689580660509675516669783149252960466005912839144684220154042283202133288985781971323233880837431656337153651350099711707455380248250039114287721814363800190276460811405551000226641107374189616425073299308228435452390741073776013921410331139034643423319186478642831140494709951026669069262461703744668304855108673398976044266769177571967589831610862513769279922793757831655407629439772439659510288888734722085465305148048683953730692357839399961189560264661774792083301048131601148255540193153261124395756048198905955490857281503284599981931793072772022534228524074412729508636573597635532758142252115685346740635740978554778430679588833593762206339645005544425868448052778122945441469797504244536389703394839337865293959050216455131223217241287077339729437619691802947321914819790217769137646833025950329362667258463694772214414766264056123768826495020421294796342044572366516351567327080386472818433839431958000715369146390576747146902874897166709932801355999159351766845829258906942640119299329120841051273910430335955948992819679836310109720648024927931790700853479407855478561892866750419926433329840234868759030915251456580133970681297381203088077719584285931153234787524311214521254859592765351737936996055985963802313206170542339830925065140325313084420837062082241531123741278103841870606535384401178586346517752144454004104377004173666927525839078256405499552714365778086194061193353687179150382746220175588577349330198872882670117914734087637004319499640326873910512281086821252972497119647738796101397790366912288547616685132430643821359471158319362464605363702216718685471502905074731676773934275709075206238258984321229000815306305364919874400124705456867858073854802793733636094012711166306890155389402730460608199707063852064028501185169442601362355898667132440397499475669535654718336749652623055452769226220958315571905749869811234533873227939939615176016586909188813047312403059523279994540564150047026141659477985239188557955953644980786722976447107911531739383108655094370586069283081561719732321496621498129411365355201297658707102127705048093161467530858488166272441813100863698002353131832175023983798548803168335346484123290429935364274598513297292447701533594058099464208319856590081307249824981770867439634564543818244506845452569256373765087896733443524278911680810860179524638373056488444759487301630607119875298633625311409597001054928156480863665261893663623723534400428269657068533465280178451398702282471864051934226731612014911333983639905016218899935178801101215113806799077830656003347096119138700445898920760144913651212001001316633817979198571040660455092316740126183481271182762492910648897824197382904450720739353409108296602430318021218314420325005394253871403990382061473788241131255216682563357398788518532783686141755765690166604369896653062241816207446474802934253519701821360154911424270412319266597137558408493280642514463669631534002238012538558076353936344199769911279884172025198816207644243128760104657175308693548071826361552570656513850933110927583003028826924068709006414458856322886492301397616671479203745507375738816811167268169076053464938067164229123647207199771727864656204478922855063442034432195096975961702865520066629484398473742283080050553994002394377997117401140936944659400012567465765905319107192740345749363502358862375986723662194979328539798584391041224157658850416416452929244096795901343983019793730677986661008652521290084832702765722013681357484143488905776013422353064405441555421425944398621629978359109854794660516163834895846100808427808446292879110561060022527594859882367013057544827253104350721963900806371409868377069425909371341853522840563485344905829476002222835520792549650390901417119542166484694458612040941860308301974832473280857072093363992879867599429484315590216195831723003898543029883723292242885213852088034058237508078448322982939317771396118868175378355454449534623390851228345483169934105348062771838762735531362761369514155754523425039141250937020415271290054954888095191861828841785716003182865126430988769927616328237720077362984953572977685361868923630118241642400519966566076956012035148446667677079266357500217854041860921432226207116339974621118315030823905346568711297146055347678128641049883663017243596485843498912104685994298172465526280804909002421625720854262637167728092200011919321427536685733861951513261528249811291364843680391695292928488960063784617476829835030553583393948481585033640979728529812637802886255419200499404856098757034217952275196200281900211934436827701545954010146954610173784201210280607202832852527441634399782939162190396253428588803061895853742218219496909100837342050619386473663402312462793035053105574791696701046445745604393169177139698248872362195852813709828448065613769410380337632982096090157369692242527102048813215429393504594258017034694806217953729399423330374103137925177593846547743181858717947966841278445895766799072204034373023077587591100107104988614965367989267194544751094258823723555020181307630655640959665687883451193427034292604901488425760688114126270663833307338460052081322986358087876050780161274327035836147816548580028576563761281199029880994512847591127808157115863562028420466585712617851542464802738644471029569814423554335398599796377388966657490418923813193121219986490705562469984602035391086333593304595645512947103590386889962535551111861898787135405051513192768464493953864175980068601404531172932396571905154470127729097900242905251868738286886686253109981695917565686622608644655123391970028756001817770662675788038514695111283834801023958240676576205880257330820389286842111649393816129145722448653323348470442693018241714802462918007758018635695374095658389004456585117860104393630552035946992046791715808149783837356278699600544055165152682947216332776962662397075678334936425650650273904089273326074012380332137704013688259313464258587451299224977301573865960957607745455246188128407558104984510724546810567832122563611658427192999663274766170687674729980351724164023681871670617302709622134098863543756671821914470568816132062817026683721508873882382870211405901774995187636458540199112014877348516497260314657462649368320487307028733636413904386795255585841883672308552533709002053593158163574487156042285142897159034578085903523364475380457525280152522232029269075915318433582120833901471658361199371569540985483902496236575399984058943547586230021642735876760403146795706217814966469822089389168553749737559256027116966393863281406852034051208848472960839562246466368210049749527980633142138014916899472747699942788411910715219155520223011475830936303921569625172602405081777294203787005032942700776847381800481049439958206297027687502435868370854157564780756563595271449524774198285438969932006996841297031416498236255170897846765949077056674113552626508892309313413395538848036061151812845642140947524213559043711600028762551282115467731153960513280944913968550735509375800685169307525719109163343630734520372400760996197082339167331472384146479971420840723596249206696393863718536818793921824737409893369595861666872761198483273178868858331822953418608120644878976938924987501930364652401398357967364498688614848499541055579532531021312886004532741162305854894858740967227740743944808881690144310092464733152228897340352526249928190667572883366626180603499874390124263823033111106440363979286710107165702314494971254764675221427687579456103874816592907602747592222514586867558472339471941756351144175801010480191939908211192939545685169374474454365929630794778557390786275824664375555235432563258280314596537294172213873024709323195906139510316930895307352852451503277361349710292405842754900556189886638710892506845449892168435590968784240218243016708665334645087861315946905948538575965103482140481161244003294748792594113607290533065034259599645983102734786220541738297206922339228983764476063199601043531208512524700271943826770366922282267296995803068406610499906342813221163592867359171588102317093359533200879680723525225803764033348231695913999100078457892148021695103391811019189188963044915813016369774934187656379544544120327879406771741779517651708690234554594111693049067589118457491316922160925309216260288155679130317354298033059066656991217979523127907765254035930271794895921417130377619141162996642000511718141253979806169405036899485889668048197941116501276435945165250660020243316728389661837442355479609763703991959997743758026899521817580481487220509331220473807403990097123424084451023579944287132067780675424018036590748074351410775083393240066769690755422595692353376040533572112619616769810130013896439853715223667852712708020456761004668112439226391179270622085734185779088587031239462214962178993253110558719236857476762745180301558358131741996935833676417069086786367286197289425651539031090630551328067394505834267784322369453909103039446222310269283340633479990868841575557508885242188344530400634154041770573149452932443118057016168057755866839810220167997301020532021808801207642939796149141690809160464142676367446730466450970769297262144607596803745268926276384847017791988913048765787164640594912093591224989971121882235717636179645517869913799648291126778723611847806190365699657231769289522130174157016992522593583793823727902836638591583157171422716495237858599602931691193231523557529454284026174097002494497600182953730823858529486005913333824069722807063317034184532966603468705659319264808312288989940108487399597373696654056288217716447366422635956210763150892473513731858423214415598614975380019321176884408938048346186424508381651124970883574551199668035013350497677377185080368816757408184906962280649323520404761914509211921349955612190894674053306502577671293245159104882095483388156025909254313773097768637455305349124312759389672887914933206786120556759330599914721436435550985104155244566412834902689905961152426239849672670828189408045151275921624705327254037240634932032417415674125580935240771490642377442339762822803813944316533486189764554430013102623343131843478246999471316102697475047105579146784213402942135905912389473692469208521673903045206680222103950503783406402698351899105188979676812925974441155441796460232690721691776785777203695050364100885117427329226860132121224300591812602974979096096760552970561229071185134204369442981442712055787602311686529666459008019040245092099409978964997981555263895973386688585823310037904744263419539063160083769365271368180021733077199526257288590952865363915756953367713644352482360698696774336384863769140913742688107417567408778646007283014667928015388676977981954509473815765798896969538399794072668925412999734468696166712500052186652946294887556685398251543883428098218797113424449937065199493435200468494875161183698650522588424856473618388445036390824900468770604162211559399869485410103551245921011885247495752706276054363079184788290550602873653878472488026860967060901430670666853621473955023640587300898451112012092139595813891170742317743848266567063163887623351310220309397165092774193629852972194119075953396081863986052942436486092346060828108031105514489070322725584326276411724654651873814290256194605663735814068332675866703777830559851813540888617780688212345735186893962882807685417268757827274328951134001907196582194127270991019046338468096882933312474762674949695273265788827838881632996414902690419753563579373881874491272771589943673739605521205531074911684409547206522730084450489139348069339472209983221861158364534700748971286519929416034879987741303722133879111459012368940217737218036782527407517143312074457290526501069899818990724068652367676426483426959592225984366135584835861548219354263301943351897831496333973659479980516002782686821929436677971296465441851415077326600298615878096658002546276964403134309512145798625994080715523327567005473740111927149707513872043875533919361071743110409601143475131257469608742259005795429750332248995381156376897208627471049542961440122536364798786391943962492054266385647881691884875102641658791774182130670053069272979575010130184331024426712448492718710208288163643325707839697806616794390484851353115959475993430194848214329327952987106892217861377582138916925140558923762820433081656666462532796687068165580002415355378764334871647713957679507381732851170216677835652956745255675881522490245014992374953932887804989086086100438574661615139964675908115752011829925636003219006825491083676831462091357890958948429866113345927756325622421523165059006967202178169431734412933040375617259110644264467054120316200053868478985776280961569055986612733896458934419982294856969549163249555976848283051272885607341655476410834565440313239483349274656020658566685866793752898578189132721465335736761680921805008534465520874943748011992748018783418775200697227216449542320575663717085635857399069290108272499467341277211891765761376773322757910347503536408197862931198075110022740402031863871657236444345958233061198267685964609805340670255700067896135088116999929581989344776979553270030808144020585338658622416319588977074867302279250617311268919805301629369594028382934219839663923545228731066738897423585674042250447647815478941286770548688272057823161530865912545051192792149337180090396755244473764408037263443055457975266783394756554219992068618600343877719539210914074811855782962929016091234007744808417052423177231574634382584279180163856957101062489056364538030010828933329814517929157613529167415715233806684618550327418355941276657865656123885716090944103325010786528099211894652960298121806855001556952403380636004655720961894843726937080715233170536208476718316352171997769649134352376585105062847740439170702005764441892706737471466257429116555590907881389927292311894789569965558104103347045785921385149431777211494912612310258507010061949556415116517180233207904998643613541451034210981007953786287392651731074737911596880368605296811507513962549314547119146992281970097446766498892536076854795521742012963765505053560177017403523550890284227615427129904112097137333799079453035801095244243091091193412459828674613722852184899810036705404388899085250593232355554382188156472012390955669837504341957966406706350887548192718911754838252253026033299583138017060954178613264372562196031512078518096421979066819834486523593232220189844036275600068421176210014990867881404365100256356672782600334941758589039222930609099946587546540282924521979647655532413876271697343687070854991874348263633083297724452274171539115941269216298648651300932780289840794767308650699253419768075594388716438048016696349226294554437328337096612079670200612727582635500492574645182170110829189788335507202532793849489569748512458765848929402474250047147196610266314726261985895619616619033267487837377099583317663621633542207526851701946576335767543014552502359970292657763336326279793422484808462104485615676709291451195575738273428586033188169712393301258600160413612351170928148438920733360307186014896581430681637789099713624788707660539804712248989622773953183493076419620452730397220896999393949652918231876777732061873663744012202953653988613620415659620280385918034537418899623695461209045325874250798867183862967699801710645301427432402012903967852106080394425179447009653181022888828788002370074600617857450950371462862134920697123505480695385697595573157402470510313788338861868264712812290007890543720909661662984650478584400947931995181925837066189586969026990650725017010957353580314621604178647636203949346290450642688446148289605236379592627378094379845066800898103989434894314966154651128037951189298498373293419048136087342689890397375476698451556070011861850873421114098249860419954036884588000802167457234928205346995661610071053391045351780220394071349077755815355016340004242500219234173998389338460054681453374993250188207225318392943524376789032378978714036755233997632322668332046571261688638854336381575502772848190531757695195592056607362983559065373710489945133122094979932759597245955167387841792435119135630894424726852317717300548215058062847447830585800627176982241879929451672307840342845619807333893566351325732298706496347607552093800781569517790109724130260275054851300360813072839824578238374604703782763268862378399559573294593940118256756202892443830405367344330530172345005341189784881145734235498373554032397251637286337715481880058966600195769187340339241419940022774308872431851867832142468490977296267420698416562727934994696268758367400112509693908405400769289426531058165320871963273597355648931562658922555165578327465022144468090919731843325065793643175297378424291619699182404908800405292002015981977633063065484361506733577611380935320887895974945888072702615131534366167778646186532645633876244796711888618822724421099917414420636343968745998793515990776573056561172719074215312345476935743706874458397490257006314478270803685827858449701611937835018356924070654688319647259028812047576342295183547759218421398753873190284452347138044706413125428553901906390455707961042108704276127244931368313826657520671347837403985023218008115846171108352987972907762695594672733930705059468769202535701820083584168095624118595388174280983967028715824183102351722626342235032946812648670819717481881693391149450857176667763327335231907968775335543955678920262849598192865527509840410802272074572017351416617549651505920662797428767036371511262195965613795549961815257607433191089075092393186935462017150612834621663554822633170901969123435929680656966889187950241213533076275414432296535842721079001133206028214434875530570972757732386483814597059554580002510011213188164406096694994729723253623967914541126891946759752279553843986147792253548370602551111298983046493191468894539019610031409614335885004811839315192815294362213697024551710684236086124606730332291985610606598665527951789154603925288269543862247751166332894759050158755420345675779375662652810786463103748946449074884124885936509140907422665599566825502443004382666930978315857455895475661634205664737651307308181609399606494432899975734005493061700672493453860587657796348945732328615227156120107086917415149486074192978282273834291136458871785255477275265513041800849270722416776720430701499174854461296271741490569720784891153566888443049779391840577604688886092429728158325131717556885710427464656238547883109623128154953837230225387543348436362800395597109116786054864464050353084491423022143400164461837055660628394881739607576183535414066497849195481745935144255036458489935295007947017092663937439285725826872263489979737463803673854780384827624292893894378549182568289192015217919079135356658974288892482235456616096313875221096416861901950646258681627053134311540309120334627484220488730516045598329326677751388513797652684029222317417217000259490700512157433659993676226789229455042219022132075215232851333941842540317913187819894155644063529070709474065809534817224203751001971702339753359987744416170572067171648880681118550759674760650955081336542326950135034765489835307852474413297730137835974456451195850754053784384747430561049987783515396269887340064911404647044026667325781619174267278830456898909144499805765998440749093766069676354876590369964707691038327665566660037376827323528157401717521242534816824752054369182668279337517177063314584847954950677254367135670454439440528765629038067586598776229770306880611079231548683097738634442420181069673925810369534576170134060297010714277060083345546340234105546223589453089078561581926072589390210570046195385806853258298404803386127441032587001703806702371816890345255727676482337396718801075936028290101861569419969277440368793758619239680600007216450954629609145271079441580363471223467139948826238738447019960831412674962882420475420869452723032305616792141831839790973705569026019140656321777115592538120223851709110396364430417997007714947783020923008211571015197044405649045680219051853985486081243266959549123728190702385912669550656715302113792636223559775518032469083607985138634870861591574917616428274336044782488554882419307674333144200935208848137832141190039229519827120569928489519018720421849807605857993294411923017367594741163427687371964456889035200883769237383777256484318210101355335435142042984399618939371277124057023145730117605415460111865226673464285704126096679676883805744296692122429096037826514238317589860716782824869986930960293795791890504401344897269291665045450059458784062457579039839469767211228468449666443897132099582919831120711660541346161059371188509605093007115083785594064512194353070043548606224778732714814013234873598012627179945816669519775064688036465018802367310089208877217809391347935305324953077601337735948238022268680612539884654603165548271870193687738638594563819330462960346398935722249731536872682888750434176310977778457087489410268056616943792992347949053038128621729652613300091243188739976095496777883830960600630887060491883990353210857834424525956844878447991442477323697557011288246219140662060063572203500832447596675198782969642532257395133716736685637384370709904922523425594388652928948463864957152048796354827122345928824201291469890756737813076035098835076196445197999934302692247826583992200603001133478864552960653424000820990188779055939307769821869525658914719984446758299459190231776743796547553665009561049422647150493913115668029638976731023686418121099363644084629907831971437860575761263535113470765563569398127969094231309145247254151749275788596387965640861558318088599575339952721954725738186317008233772349107333443873461499166718593038725462135580543478435372526608864951748255987438080127130399075079508607509140584929861537442358046419579931407856255671113268868085332481241204756553320611403731126550356616510158370996144417705584806838305412767799915996718633596531767267005185976965755898558726291814447232722961056538455988494109188518890555745672200802472590505260312529131414184784606077838908438181485509415127528144923327558597101469582672253694092693344978982422654436834535603055470333091872508884112852998804539828869219182513631181796098139672178026973991003982463240326155163969666400874058004595809628787733247361040925895473638573814628299187079049902515902548663063359062220686893312450783073140288983316606610983149145965208014054900458786483476599183006058570027543838237078622448118143164566225904908682998630934130970770574697471963997840906793857712817592729032026754443021771174134683080855563844244949078427907899617922101110846749210971690535977390056780183045071850957388260714519930034300160835546615655872778098581984296000110292082572560414045261049369628357952252164762635652164708770892894599872867298094460807771149891972159972657201399547043213891408509745355821531803598912672725972706862214317519421487167209654187557991422739389592005383012359039002760787490017592774751989668043582687491132335710162420971647012260199425922010810597811835469833347330437661930846648861374377779060547101612488178041119013895302545461775816084031327133468756150176579589015234143386766354091754310651752461694745831629301603941528574279073525804196077327479315235859988352568299552629357231185147037946507207512697753219168284400744452484860653428566201264468593843660706965171441714617973721374374373448227946827346301023734624498958945904108534566116367477221232877253484006048826602372862578034858588311796835536836105480876774899845831913404866619094502838019019164612165454840603847539146806485411330938540384886095532750360249783105068226449325547134147823963951615269552414417815394346995364264890282663858236774831916187372547006527827179514280281220003342408284171331725892314231969028979924904305704276809188807776306853231954766006233320913611935059372507160753318375959177444522021883424651289799156613769932548531491865206684604585246710878047627105019911566917566770261974575314651941265977878879562235345228026921250646970881915938979235040385271999625645438152488599981936419163398726530879760485303708825988509078123904564429455426076488621420828745177614822040267612328665629706122375679836849909570974019234648904173969971454748532030018973728554679272824665779696992695567161027291437225294978229623242000110891832110094959187106889149929315863888361234724533718597887982134287840032477236021210180310105241133609616456447073192990152571282712435937057074025709366128037202200298495579186541851298630037521874948264883840658634802080667927558861790832456100310354459728412024237323791516694990115249781757816534748667722668135197594652835580111010198100200086152590164280549188683646562443460272896531468223582710934894264415020962272221294273045505471093594819227092740981941809862040425899307487509399946981015680340865907124914914349318395194918131639335602562775702227053710401423919889207826800458441666987545817457443150475453901976467209930815858000210387582583473330030996445549976276359628734324654484053115540162415948051779298147637897694085065660966015503415989279116485953811277731006524295362073941578237675983466928409309014944869834252348860176415836247052752905810365947826484184421986213936612213987924041875765980293357156743027944549553389040665181322455939721938516969407677526910200176767629229016242132463048795557578448453058907777284855292644842274612028719862295125952607469385008038451023367825902640357231405700554372017453542815673552320692106382017677268664294770957080066936899978146664884662764974189490161140620640466332506796705702768640074889010507872726364160397718163284517162784337362030868235977709121278413416084244974732393320293621258292862700167012245530457036260900404833971098749869670320837937438376275485210972746355779210691841834351852541204315631368756849431064566490167135089716919769084593846760354486038479623653839511219860167371457493406793003455689674116313699581513109689912427540684125959324429107845775172047233196154358283739629200081778103512119673643612780810248649762269811147199328584994806950197765454673095905683476129446367573700104675801276733935851010221085920030694646471735673822359669144197234277363855544086907757698205144508908423324012900994678158224917634939364177714079266301029634339604794941549730627491686073751668224853800148082731221768504363157493775335610453204299159458735062658797631465706207062401232256517725123095543129131789464175972690961086470845722519206240080479179511375784500695648262321873820699436704789539383784156650697935364034990325389704507873905210049195833908953867519376884366406761873594936725768369671240849328281543005409179485661303526554369086734149046777708099299669285757386394061529844399294841702058725366019714620311869054687167489819535104957812032368095499234145576989743780189269734857113571401859226503854360815724917554812153819289273299965457240501884335117177165219251366944115816602780730006489653037260111190920535970565478186161484707315786872039674169371764164002138371880439007207078344808063948929952856789780152614472282910932783660210570836557288986704461985641938388306117371601442857943367711049391606081738130667621857173256952598503543808036022796534788247038160666559484383299818443753543949586217531859390282396130726776367265196034181494361250320733033411069274236833205314109036113163742893017679404515399726703879838624327229828617682280041815242396170095275771239215323853893314285909948267350555526146792773531636979621633397843267298641152682354314960058835825313480722938774930513657190110877090529491396629909846060221242001156971438392473219804879110813919515956823838156978053932586783732459182995070683718463718027293543166531811267154197235305917916997414240182726176850528190212205146704042406679584119697649413430215235799000840806207087630059887931260199137810134017121173358393440708931278616551420480689944829165510061194640697126181999433633292514361140567775944772934029385594370113594711568286562690520701153922732337016138731368345460600164292301412747134851537460202158319168481501468442186506389950001698757923265713310119912804397852858658364700882570069083372632875265431028603206648765532574337534949610275191781077415673380722289469769044657784616526551540798365093743138846715318576257794411120495125186994840411940223117232737364087553958215355626789361193405745999206416939774621671170887011493669591527875892617171330667363456643983921954327692823761769702237054996806249138841042687853411343989102078371624537132081851594139109428637435690550516498997981881581470058160840214262804453660080941857406554238326353012563856057091637962836808137722404674625396992258619520312792310795495086696605865461755189006685148672873141593940811359511957616546749880017892663247337688128587175487608151216086538343501697761312750105374468143330882529008482008042358580804696437186278545864283644412856379892648177168037685450041647776901618293533735828544898092129117788281638072330425997393180716354344654904752618588168914223242110119695735512218030504357228740476260491800068268351498384363372291606521335167367311932367303019035216950419150567889721352683004751656778809532063577170884654989316942592157004379167406888695090032390312201445254040986915409248023938314190241997017769889624573527048623904799786208150945104818001918791862809140436681767709661411741510794140287482766201143036618790392923468522973453719303978947488636566971391742367188805576700179764349737287692471230129511166387462559501469411070370896831208678530321756288364605097181036355441288102294446867536900659152465894399161008384049222967201286350438002000562259293247463930487432242077200056612458916829421919582820424263247204635750552261490827942264759017143735275491956055060996018409420392600478435606004385923850207180825984572852728581818490028284308226340495293366177612072439313168540310665366412374498182206600178586372320791026737520772718678642981079780324444900894173930225179306979320259823697878801726439678923205868126762340124355740922022618142183675883578062809036105111838276438113958029605154180242915707948466482820936057957394807782749124920393762509865821643069039457199144070036922486516217965102340559063922543077519837186669666227379778730201214856231286718341645841700904701378371358574625965244257423310572335165815658553765773834804966866172383501536215908571799953062751234112884999155379094019931494245130976350609486585643882631290253499027355805420720749514470279522258013864098153833905950652891384539206043458089549713352330520922803029219763103344316927802265518826735737420264468348204138396210631753776375706785484333379780307645696732794139881150075152211820189024171987685873408330215969612011545000142042450898447652736852934961511798757462917645123381252309671312842695759475120229148735201457130802850280859288107129067904541694734720620656349799985337406551336990361363751927075736739854039658827807567397248594412675097385386932381976658770210747556494801515325193222378141868881862180491954197484323882822658466032006474744520599717463699556394012437448044546533174773703620465212184295748478240136664420867416643336238914839032914164670433980779295188363869856825699813283302321342327687926112113846906395257922362948363286678637860596857820218356083927708449819095653408377754707881151991919718707602373116379136793825051103989880999118240475780327991732552251368727338568995427784235170386875741975623223264080631075677203746722774325330676156657091678157556704967152338742187065708498123656594959389661430067896044159880582965274153712390914634444174254805311896558393623814338895547038192430243276753702712165215198281653866947888011092708397129923060696552960189539391017115412942195027262494182840326970458155304479071653316375265930083840838873054955925641605814053233195385682070802104148490718969204864590803855506051609361077482940472523051847845709486580378543711177140696707168799341311761107382579451333577232899131636962296127571095306260941488802429975502228996544554884305634409602226855357736541059561313816262894654635896275202926937806336157856393708313713457590984386281366635639759093057136128765316090287122771010293756249990080747171846931121937590601187040548789772832435549325067507661439076786450563342984878438846582781535345851622073743594753020813910402712423200015931367648141457750376668168794901064998669325148470028995367335797780157502690212539296879713302650278821017003760524433298885032651698546502528457963617460579196384201255037826205983844845065300466844158189723838601630443653627750662635244513552228178300350413367313538979480347063945443012664107909981355057319164202738954087059143955711020533415005651204515400838647345806752861117146687830029455405824566772630457438847650686380109926810775104034436778622872268421395782311561246040681996190290312803441831406978727183172647920818940616774311120372803950960845937328178864865783815786279744590096881611554394968041338898255350752115063433898842822954799212357905844638760249321938789907808354146975992439613887744658565484774023901275679333925802353011467012747987625696606239620747387172722679402481358762929796149485512555115048285390186054876136698039000114118748036733694911527556400939750459653855650399888119937832502094768613043288623539617699779416158118937077277629951362605313521218629659601175815784342898493549737999605254191965125355205879179220597696542325380340640104784627301027278396878777341925385138702083124369370547037026026505726970123542406227802131313896422220702492457553708854619936849042505226641800050083215390544359284069270040216875859680980771577828550505260165556210957756570298800272828864403979176381424015631342478055409801040892718837398656163028311653223342020080139570803376109534109074904520349325526380097264752886037759866002769393632742416962068999567438058985318488851609276952172627955783923129664082592293006991396725833864354723328592434770110457638499755512779003069313765210419776742259690794458315584087984560415092472067453336430258785699932561195178722970913568616772605028862292562034955027520409098185966277374291061917089638893817990820772547283328674659055117667304820218400679716838431088865320626376616819320175222194922504090203158322969098238649408789037859424006146584073779657713215124951518548694161178644856272905858649141212327319360906350795378608007921359006668479185029374417978424183968757874591122480438975866875526211758737136434981670305862577056732463223399841679282800315807418100260663477794997399277924436672886985313303439100020859019725447806595718068644696679065453580427513295518174123023596866715544754633189853427976390130495207344540352778342857108212112202811485244550162931114932999772291845948752889010443506474203545684579035630302944472559901324763384825138957248855809011564889298416386043995665826498705020563134526997518198438498512102354836428345787694494807329304647162617748895902864411926057932380878405064282633293663801738261453948365927261461497278172681745717986020528084104171267176466873776101018902009142481796974221912725361457497675594138405220655686777255960492521100917931447202163661579829487763438447151248463438808411302327136674949137291650322341867045982511671812172487652332330126040643962182633253966573294357214123407406943858444802284995818137167086247587638189138293146491154097514671133228023032860955226575741610560608531700729386101671111257640093501123022830453542825479450382954208615213708686675083596169372170061885238920316285955378205406732689382714598683939417675737630897042947515270595787043106977452500906171855990069255746960921795069566784024523101488203319075795933159908809019093371147174967303873937377121568437989210756068613823808641572779780108542976494580437682359518603450500681162986359160643249623037507381634814040624208501500424255277351924854268452599088301531901160533289265243780410014344123857230105692574937361625162150386315571599020929209864379838310927922359573455334087753117523131020641889106009324100855742833246678030127636332421723736435427246039190504256769449646605751934242609810008184599761334181819376899906595022611342372295677307610299201560907905516243375267532271567405900808585040750410498837830664119482720094459750030446222298822646034227545827988284710900519274959462640700058284461519126794218250775746214129244527625180881176228507658097946887194328312875200383551121405824806794835927325482260430288134564730616194173144472214604138666971370464932262537125678855910759935310589206835621145014980024042092521115404730072020412038832751009070933543773650821907595882803174940721543248289557805151554860637831862344488141812659790860575054752889711998267507405086782557306119644565257313779377732686428477983808603647026682670271661404938074953318624702576271872291948369860707206743061866953940511904475219929901793877931090804115607573533258143853219618760266496763516383500605781150767964670958110736230226935776257241763358366594398719156195242746042385369164053469135051208653273981322353413550008002976169467996625213899820595307652555034776643834892979343379640614959683721661491261883016906982098370963470663617656752367155786482186633947920121639217304525440926208913439225208496119881422738642703262757688722817440059001228356202079503950489436101658156617449540264553926582522689546866561412546817948005084772666334143078116369268081542222937626998509018270090068266932080721326639050176779614042362310906009478969693687461035424983036704339001207005154567985764992406393021561298366921993040744388904899764330722269509021110276963687184752908240346027281267735169328842170286047735326899502806512451183654683750002306058171112535181629688755853292497434061955685804402298493590972617809623874751006855111132680701336564644883159152097661036670248187527394607171056776627639336559440142658388191025194217957465340550826865590570434484497844533472883092880535494926049414662533897278220584904144372018589865921900684557305839943539680647317988867510761140200331674774030607007761246476902982081049324312792381790629777336344167493577866731208504745610932475416931511333741859607929973352590108754236854385153209401986129745622667746730833128513949878402132137598143517461921311048854336203241393748163683634601304404772848742035723929763620107226104264288057217850864461333325224485730155555694043070884090561426430471357548958808654186782000993207608786432809348835167631828488700097559382960250343828987549334992809574156233471649900563095792342198276813422144684551979726506334539260679464813231938411848462078006901745711495026830067510382839768471818645668674019172986516964999436788143788945991974286277614274209149114510567240142813552497393641686977200312617533961459579598876743237953606907002956165021859849963421420691582076289072021080836511287380160608391645859108404487965791971070963555933189030439085313860838460169117830996208755087964504045594600798341503698145408257373285851068741768060227083487872086895093595411784788035965091572523654348800089790539358896411863042231572917823013194766258963517775459394645921718944772347315126226209438222322233978439448150305407322913583158236263154288549373590596723423686864413834811310407152151302547575735236426339959956908703390889652910909772929371109241732651375912508955474710136247356464600245963060345711409399391047901084139950832272300408537408311998067458244955275182038488523704511331709361701560318514453633261932274201808824357730559617029877539159815344363192928203869883270824125546461950358615565871998143304140681226460765883848584862583808142846600601740634976195678947388107542347660443832668235858788581578384622044333183013713680917578558953547989106740371072480309503214824197875962532858684095219209062709919050173011386810391391554324903833944323830102749298329920074008940718968254306461098944002838168045652022228492108617623077078597745615685124171983800185142552180848456015185090271005082254813761494509447183908944726233508746139665250863187642160592772858952745527493438811386197857462994103166875236259467777583852809788085167135707107152763854815309387133822728819431487996502572060708456157420106969992890978110697407426181879730441905086208561986629636350518117308817256943258877054748817900001748732862000517143479747784616998890185573237121912753317882484432230628860412062142268403450012833423078258087230752029889390425900726710609188039935601207765583797189820294233783350083011946405173453105984184552661522304490640380020232488376795745402522783192086999684294951839719890403061209834786937526728056562481724844920192628947654056760800804197002452665002335517648695360960855255594148497057489609383641067135643611176082632195407337865570638304037809213943364757982246617987852264227506565221419991811240733959876777287648973703926155677554621583349462634151141119198369302778819050774934913379372405347070096760025793469921002702108949172376224420657137293323768149936000848198054151896013264570735228807404555394508302602903742585606621632220752597190180090430022400531837114353362248270440808312718749643422015416001051969751122545406839756906028893509292403504144568378908794797067831158823111474155475671685835645737657519305496069550462100775308526363297647495271922281767240841412285542556377426814207298899056930733662623981434544761598965616917727174028373726679409668299668222077023241808844592894162102662397395066326795726371362060821820345001145049891243176121836145736568531111688351500157317321000428890884933599127009155857548378653123308546638518240868162611468447703716355173644225603470093486180686869843320230890700958657914518729241118862598544987043763941427761441376054706561440746168775458477600037647624061800132730493019497979478650272932943135763064231732577255031153263686685919111750421557372921715233937361740967519998633311578149276291668336896837871069615236182626702070182546431126775223777009005296528056004419399948606547165102273534130425423114568027324699685785171396099102375795041622056090999761187224963600698017275817581319701806260671894222745947679360296475041016242267027340530472514426436959597995464260571621727580114121481977543313312778344448015300566929445403490716057671364140347962609822421899660932719215129460154037181664092878677408321751136960294145433491643592977588561532676037018074847699525414570074127629922376293324794599271789779957696414648827273420411750069140581844301596240984412391418604035683079496121111036121729373121972605594862260413678731745081586887926145434266508908611022866804896297055699548080704439660600361050554935810545785824224550204162015390712483344268941625927842235977408225647018882898505546443025999102837898317665403561372303559540853928383782423508878734177589356496473535390028886038229140941776140100791219841527475050118358132946111807324813535263213790613376900728087959728862872335145507550746169738335675899796700333545552261295844905503852963977355568395876321274630539560120295448864678813406189161776520780667138814168890179098269079532196496051866315287566134428354206790820623115992188728792153686359675551969000940180974744018847494440386992031946093258701103390613978580305274839157305425241989516341299732617707078895559053829434669161291402845865253848237513945573123838157806355319120343859704942111836760314505165527136587798124338059269724769628139887140361364804428957879374457493780842072726375067434816930296389821156545945943516962470810981882567472233632851872504191903323194156632290680781317293605096047827376063708516722821881500886321776834107121068536390699107030469482007860705396002637749184604718200909972566161269298331767835395298215095891005052170161931812684791216221434784983735251717823415523119007312075889664594569292994723098469537999535660296576326642694313754219743661323299588764557618072194534948331941488146633343630447025834475363588695936637025811052808061853711743189108693797506071162399986375420044291718399007053014403888898683160132697116653813378159805998493095355053738705048591474832729609990129644392402245806199159275130133538177352192265099562425707055069422459480369901221485298148916706810830780450057202102033868369577909151575414453076293314918773131787683261488435596060862960753369378675146462024749823770347973322581522576542586998755697965517230920069828941727950662888748109941469640760299339526916722461472033817131832316834078638260640134550310285921778397308971502154598597141256555312718094154838720611432954471560360221898423598772926942887489511695734190656383358483924782953689007572157658740461732795508393276605964528403384248145831160992171413081146687442919228870262147021562992311358064802823279252451674473961763499179283762756972276985986241552216360804484967775497031019224878072503251183925526977715424263855906311008974747173769427173511462476056425279887858195739099155326439184156159324381953542243904770865862509562955379569506710625195199104527997610532888107792286529871155645878593729441958043028923507695695502595850460241164497608006841883487348714147819539776518860609332407877883563148646943222384060754879758925153978397126225980609596079687717517966996526310739218811206416563959871838022172500900196182110755978800809454868991686480533823639647023948533200111938488251458014489112456804147691747055501134837037602719197282615125885503259507301552195954552869659319219864018809493717383419672658286997822918442212091521313283529238307052558848931499865122909273199185258120757578689222563622067414208099835901168143462965117567417001579308663028594382320527523089663001496271235535712089476665497376592798803281745089956496448265723679178868145627494960084412050801339371098391055314568858006035380886158146766946837972843553075877691505958386377169799238940539179799859501566951443341662740498486265118862770708944012335884768938045814630065394349877159155487658816783561736478736865249072250610859045592511153327946314516502972669340766369551017183228476707959308859203791764746722433940538864517726804135157851746780715230781766952250177512326296154095164185892127019474218283746642876608361778590712107655880515086664339092525649442610140993779136908859659021296328342389948582490651715003106264411124681594583983163072658766370223841036717010202760723992349036935175942025414051642351548162371792852122396062142417959139356253529640292761296999802132910525038754721848550608067995367910794389853517118426904056755095132297138757668403440526765322220754582561239336133700754882342290932763272258535478772034697959534295434811456240336042888089637022445187678841311688393801082542692027195063843429804134927902989429836490000028878055196332251471984953675900658737439861027692886639216009441293867074412725201940912505691246946624531215406904065346140774468266890656018170849908534012671067527124447111683682773578071219848772142509083208511037511588423856731844987028774193037175949304925755137547161767427266051513064123784023941418359970322843854712104402544738102138941327030975668783751260550868358264185367043469704659460196600283289671680134953331106492069576518460983723142037833582106066299638728119413383922372455094092689343363200173214358959428316850207068867564678002060201051950825403669863108889839508325692203631659869755404166565148710891324567370698496785670397827322984742692521467553299135669572966186981852792574515177529968986765806292049001027886811611674749923007667333246225134369280782076301958914361218383694603378064222379150872807432311157182727664416359767795616142324626335107682221792701579975955904537199353644510497477694215769945414194307742836883195822764645302561424398782753593052258394453217597684849889802227792096439600931595560700852668448448846378174803619662077002889464919079550533779281821570296602014289522247087342920768061921494958541672559773095473710763437100504445174743108071426481813263584222353944016285843849129856129637707999521586815851790219563141027890956201626811194848968021090682783366876351454650469742048595086562511267477777646091238852084371845235862316640602755679423718119205641633555696052234978263412563788025956073583977436870647565137543460762292145149661729431359427472179543509961443385694346434357311788701011964788474854709531176499450179617119927759464652551524929181742668935635944262836506436773149272759531564103128437791897597671363545040717609807098268379440576382750796077588118824024039385358428545770637080594242377266092756437570376666162552790714864011776472061588151547565594375871589505216874864474388925492100234898798913830444121785045795679918404666419490478058684497441442293172960496682720646552658646999444626226268292903719205443377103813163819617307310623369053414967774470053662612136571316724405050213006097497349416824713337043162506869647495286521224083245914419173284643886117052248129417676899135553893048044043668091419184289797649130553001476855729525684871843521567827742047215391339684858559104530031676934407209738668979583503963243833065341532206461260762426521552423379245223298653706764659880787609116236155015058823948866530391075411447495809943614085008883511119362581558618564899394685924189739417339045391174466887035024611603815550333970907019018064134056492833944505402252288447163334482360209389289132868011777901326031247670527067636716574254717265290749403155977903638284542638214573399204232329073786374896124382793211185667485161063674491076809989497915678016227198494868401705037706568657806188139088534769910315517356891922433160898861201084797845947010743350179171788898481213291814307257566063787350204916713881204914525594755752309243838140389413170723582729037367140468208240350941789888073450766429453653173506005896233076828880766120700236993813155099363857645618996976508651638164601199203937562164163451800964026019243416489695454110127024825047916220910572829716702925582588526591062063881880074464464500169322850127587707411421778917658058755430718907567229954527603056539440914857699678543336366614166711598421441201657341168687806734119102154402185926214864248225963746403081065408007616686652493589858959640082879401188165933964066612361655629495616279999696283785290781352229225826661975712159764746067353559818621249269785480441821729970040632061678079706810293110197425385859895267046444671162256328089530734779720412917937495685966963039038482083600266726968085207777715167112834096071832342738674951304326668067253437209190173036085654617294510561293981166990807254587194607492571716236034943529599699041160669266130766917914036555814259102224733734330168561849086031282972313140018601992839787762915936657926502437381810469973113665111411216849964010306117054383690824172051952524760624266361781478262959783650995836428397284534026905861834700460114164819638464536734481290485818612685120748847865225074428182981991885853103178670264308434049656420775090113284679360454273838410095715959579596495875038150800786198242260565356060536764011471068592401931765319787036760877865140169451082183627962467009114712284323014882582050030796391719921940371664853354475542170223648011460784836532825979322948115767018663669335204695932502895052833944195468099298238519235458661481978159582471713191765707987710972762709160374263055752012570123535290881816504474301073916477480576968525087505979750818629832173625262795629194433198647350294882253679424716748643975245850817421433153206669449925236180957073819667898343499963706414362574326585535088040289059470039708741602100745561200250274323355729823973916513211583953111994487209137130715673133099080779882311963184660299664919127617910912929993954721406477510826849430366755134852253895118730051042117954569205714925665697482799967648352961508210595296877476993354869031699004996824746866086231614274174384596372414014015424453875333316829363635058202056824475371136783774693846839649587991498739783027565455670517780207793237386562458095943649866643291339573935862523574004660166385578178665815774685568358922260999584650206813733505340554074883377800688159041487213536473507825741678794956862391363227935475846841718327437948315325081366617715863643795759635373924220360374628621491731677793431490847545935617380334978595908923334393342375355593749135145588718715715686575878090700440739583386648112039078513556129392499342946841370917154714625129068505747505568306836828093498032288135276347288748733457153523842728239393936458785519708127438170688679674458609768609419051866397520595741826073516954551495320570401364503050725273799515612248089713092922643392622097937214463287616156399769997896697545920301954052674897615630509854254739346157579400092463961116408526725268135880940447332640405581737155988061455013656335173566524976683889196758143340386764643904747423268879398185789345539750064577906208513614049290985911504655376791306377604081743716198552617629064533040740092772256608171451342186170149729308347710765333911654188900544983490309133973796547411900888014800274329676312276444148529470216425408338183338451755969214552393631946539776545817535061508556742344477584479120868023980342115540017173667932430672086922238004658917769637097813593387582736775217665419752541207500018419528596473647923188291457486201868625809941785438748768670733781502193065785231069201236020187589619979275681191495979772659134433843131995263896287581449461841660197334309060156469712108205659396670988031488819017426579927442056899246748702355031311282108600264319244125772079265358504412605959297363438390008446172473906076870867923861783421411328565473881543651739304462416837091169865089420887367369337070543919577526185886478494090281106160933611051262551131446939245258930973071076755135853523773033555347463927837268339118592663572585374843684622983698271244825581479173887891617740594179582737250807702465649050838286000364238472954188543255813914313601187453361296087634437681014080244866393386720609110162563787681799709602932318928399074047651463739417042717911716911677673070766799805257479524038028487490955953924132040220295113936255601584626240409375049451749380327714343977213586789622163205080527214583943389413278968182286177150537766586571553892257120571397526543914116899993895784258276605948196410684607725728751926163675684542739709958520625941116800699722393744951270670928148219583969094275068324694150880562849436938452712786689132352710720554161289363530418980762497849571189666424545092550998291440311650367945448299713341097468948920733968116854368950911505145116775079142658685408432011318490635495591969523932169235610594255848688996899594655094977771474204747907027873765829993587929110495936517816412897071579842644504399814726431266306069876878660107067746794083620488932305607657923423151574571939821551931304491483318361436106921049514823560224827607657391331166925626228993820573743483446164593562204030090470618807091986902445427430308393205440754798027219681033090015402017198141107990016578040928164857075356348351047319864292000654417977301980286278297194970364944082082848868084665793676250688614940075155247106413071887300132401354013115813922904464393894870643677589824696126881570594061278508707105586168415869215129644657936718934486457154566074092944762178914262556584041543912127972050353061964169716435926431065018496678313477433623221913112985140524799935062157214894619644172918432531956742345285498852809410387078376993520233157053526354874075519381496432180209379921590673383574653750121896230640799302963377626918288915582949180977451089263739772661743317748235913771395431000654358912174575513765470547564423683237937819730829050485371318211677848437597238838560552898469434593112933650692783750977331861209687356820076114735549179272073654130842762553705036789224889356963694127204989100382377126405404481847222456077066659307739151668940343961587023698297235238680555695076596885632287148812036553387622919046023270359651363845133015626720692206118436346694010540125275624478473628511884649462982792409002613109803856454912053597271892093572482241599748092430238446046747319662562318158715849035501825903239168998965232325587420788409577122766105331293720004585793943788934628883386095646751620319521217268898587057578541237075779794119457540880211772757689026043476150206502525069965495310887989600523801968801783311377981231439570065437832772526899202554259465978327867897727064354537594055919598076392404716112767680157116873513676075662985880207171744628952422840953140575435268851871013388847247199469857134158609060221312874623950889636660131556421870093530004974310479572337015103281209226755124939662130829263609099331705282485263650989138881007366491878404364200824068779429191473862741414085698060605315739006328798602867396202288136389529866137875077614845530942923723787894016315794852867042265731769735985666517155046844576589050025743545872758754233952442251934646137862360916544149963650682136045840822064621924028848399411495444373921588377523158378762391195146562779008777848902890018263921054593030530756119141742287943726688402233712956175506887066974532452244286672592058137423678642499190864689977752210667100944947920520195292185539550072789843775803882057313988795881344433106191648423968168649360750665071907879912339467693839497857320397531830758823736856777725611804279704130869261517656625399121376757562181439831703326801806275848235099301333495427127427259850842930222867159712925282828675177756899887044612463276786667405993481176217992023195318564930934631031717518043145525074230474073055491375889232792563624132385182688459559458303778167811294980737503683408985062040295239809333802016816371411265193721541643397224624199911071651387415253772887720499479867250086951069502016204086222992153277001675488476956486487046380081802813693303803510648756751156017566167190997793909321208908888182763023612232099160160281435710341171679774163929135542806134599986032402985045115692950019886431966606684180276243460766166763425276917396289134576498527195869580401754121766110379683884191860524891666817111199388652315633463013693216407463413656651267298345001250249144850425649062648815796511352490787247008732825106606375823039361031061378415695363719730683214254696330083904536775034794290437535263864584352859653417790941464682585192247267237551529964954204273619407838176127828938589187926083538635420863460612310422149141996601720499443253773059812775907435157556468922577803025179874244890401024906912029610594853809674194340177956767495440684963762407040361923755454707561539276152068665577362655416676272952582203412681085425464417790437859760167266946403566759944871548714462962026540210194998165925643062327514992022593246983549627907236521033479144284792333213731411966426075560208701698927018948137282372476144432000703401178400995055639301925577921913950171185641899853913278010087080950329591091579713769410587086790153851550325410805502908491970458745178001057467541168434147964160327862745251693578247788595465072455749677166488812153892158167537290574412621623251841184793162820678144465092558967258356081754354791356734178933816153845761511651911739340449144323939821802520236173138454462056919578265325609343394329808436955318034660434259402114637441494877594944874084338619985826814906440798626050629470097371044573798166986883171968295565852154318897237395148939456165627055236680318157674156051899335335873462928099129058122461820503056592166504914934545648323507152665240917088461288817862958725555349701727805932866041602016900117351265867740835051379255961233150341067357225440930972001294058745346009606385694845444344484248792898485263644892974268024644443078524873324579227836814093720705051372101021385038208178328809136987640663935799861345057705605023891615470868551791965666460659223251350035507808973572123841150466205312882759159891194239952339068740770842203039427239150974649236686686342326686028318405971602652915541129650225235098089325979797310764376678646378279585247749569208005346128452753138678178259980185816092790809766108564673458641550186569784447580574512598814401082669401120160455263761151767179867921404506655013478833333531130583323291980863728409896632491472818908376921464369339126703947326096104553493400345020412028328619259953432218367917767025331025406248761787906961367289902796023683513301656628596768588129825197605179989243301346895648386373821724615562184723078117635667869283632207324508604521313376072781445357338321915459636009735389180296848201769340357297240114932142840839032159353799349508261460966527782470859019746091962788281601649134433135379158123670177302209445520119940659764251791002480633440723845907468794145741301053511616540344120061258561553083226863706510680567679558675665772963043686197128389074578222839969421052167957531791389593261649135908211934246948943723117478847026860915734629663611782174778380053778138637573795724191336760732274863649907842352401594608369413321215348612568072811966816338339828640264449433391936321916139450750005772438975262651841297495323660956255866783688811882280669408510768909896874912487754029214679953610129862026772103166187060624736629890083486078740226562347416599329587135009144172410751198682622488762176966436459848220216087409140591397233037119835558455686349504235189354850375165510514764749767584757799841429059551847807948617650822344667045654072245510599151490964183854196988987783060232634208909948951198396968255743763849131958162134966323988946198861844494251252831252225938940609682844901272831058982915220520510294034404626611001274569812339082469829236698067953150641934329185701125249581361388154540447873957393798695116410873235460657472445717309446808570008118291975172729259141415665605372421515373358312093465306064930356641778930685285965300310792709029464840541758807636786268266989174395558462159130737264985916274261702393083432110757757557013619932711908628795642675563813504707762348881269982598123661062444898316023301907363136104149187076017400704879561102605716547157060421062990485326558587711816614089186636468822062390003207508046948598378701462014510549597057352210475350293985353510741818253591104581105692351072424803506418617756337946128579824892112573848363504918508842524221201089038109530068732011607511833164466412151624208648814960294738520706286559971890449565548947145441091572342655848764912106352370170022085908470691601988524993360295161318610018506410304358765068391235705651053665339599088973507352772595501629818532303013590885420770319477315688260163949129932019760693055107998772606888272268344973167769506313425085181439288375696317090793172471018353043201640170206508854890895004305287784338070762655082615876113467225055279021180519621183993883216945297899930145651356803467190730997523250193947706523177991225935730118524585361451138457947968717238809052394165941862272925902365452018953297405682182437766589961445490291838840557482301601024368994026961864626561146489829967667793546753986520060641219731632531812454299250879501437309200932884766395095292395847720742519829302879301474683040094451753242863832839215824685602053423960659179368256763218692734765735737135779904300869866937138860487445437519796369699538632893062500144733201484797781233890423779760506076396898888825418252809340515692310133587775372757639392035447017622345051669325489425176534818687063551659548000118164245673217964675602226028933353077511755232327598853944611476357075719574014132608541345177671652051327060486575089308437168569279690844342551138511460443638063343428112469457011609381577774843881347695579601876644141791099548996959161362521719361541848291025503196737141870715722712367020647890256367123197083171919888086829481593531664993974899610544907895275809575686991016703360281901420136421603826509271188276525285078219675296679386677925861570950481645656391057426706379291811356823141398125164494904116380139783810323426458664055932837462583276077609240196946426782024624862629565737792375534930097231943776801500045276781193564605639563324577000111601988154436237816750205830824021258031760143866455164592590794123933139511816238258275486465736928923714765455688353749438619733500821761001877169381700831357245445942587171701109140899942705489047219776789385376740128925824471787754937261813897883175702835933411335378304859305358251501437692837800855487163779922168731982399100628099984990728866468829434767242539096944487115928491816019393046058357609572461756895430400291039020689447062761217300967990920977285407610248467620958653571195313774563858482887499330689813258855450452072254956952262659342760069842341684205980801212260608726001606084871424457418942754954316931800669159616103247364782265622638198001256927173522032030512777844598537775770811650476264114493295060720522758344876694971205779937628047767810393732065572406271960861156382510069469085249273655057749520380759000469608437165992845535520235243371443038214407412704245572098116060996015414955811680347015444051932393331166527430465131341563161711984342379975181361360883884437910302157801908589954197408355089882312457202154966024560362887812728301373883301872658102348490326524645186184025599022709721927999165925742965862885449334075103326079315175510707669303958256031135412001264573822250188628765421325212364557948582285994680399521103511190876729062456193387671350190782845501528388131715127142185030090720916446975451465075296236790934161282206479552871003834899449079076739821602610650600831415990281929798835705055824562808890860002340278291664616741507922932531386381356435226233629129398579353566678605188743467764120253689365323536193046367953215009270940128436328761315851619245280731619633209736384091276910208356772573510995778681609398447328042703810980490260752927848675193241247315652288110176719577817520585543627737278172810868846856410613595623591325100533713747443685541903279313541494553076034843241494770817584642895358881764520947293967215400490143100256138940504820887299909607836401654812204883969643847266757765575044250801709976776992156674219389789399840858958895764132341443135685702646345151172189142037180077270094212164641596899547111099152969615756251760830543943790934598386080186231940395742920507287680789905317381914075635922515886630374250321316392703299167909666660226036361329613111869192967864287496521917729057874561427102288219507053523831458739031448159599273224884621557668961494930255762956095822433840716220207829503333293711073491079912816789404819638187136884445989440883253146286466528083713232906573960997393937834563002800646329413574875552229963877222369623775249222641072009003551498224619359854701824191391215834489915306294258262203539132659288289662846649515691634609817565917153203657940594723116056518384279016487112984288049650029914470983558602891351822157052010408688261334068131921836680426460172832026393731833708690294433628551819097700534847136163477471332131830995109115665208855988630071364670577754787521091863044358183576597555824685842201063011159236240882000764559897643359343873185145724763754103472817337747420668518627191624907197114951996507310992881914676842124123432527695218306103561083360194327752310082752329499670097826616557663778374154174803553292019705269404827292488276070866875454779999753540297339256214954868620662757056458563455766172207886777939812127741587203030614571722487568585723301090303793066456386973355176169536779766126425191381636408217225148938729726082235769900549125925510527126504530979096010270603881450348650477872706233266120427480974071613079312066466443004203876326769495930379380075527208114394784516288268760864410117864390142865390953588993078829374513993140176768404908127538252481608343507787094525945134903024635537884274167040032110552215979435973318761405177030767846889200947789745168050791300325216453272275426274295139826523471101393496127030652982398011728880151709634075783106112467334107365694883554655000646012434753739919090096386196826961365746159623566821974096457375771905331356640130223698186490753645940587474075187503789888146251491661557827883695069852886041095869902903797857524883853155238360247585850197376805449437277024269054996053777012300817306718435350392391527951758306430199482940732252590026582612635043547608909687117876347062909127796083598523101920748644936246608322249022885578414450196094020369784726419210212432428259927010318169626718942967851042667044336986230163514580831030114593110851369524835030082535155668648299879996691159825813778609773016185284487828229186456322126535155351455547608176814787477966804180889840259866014341427592776183418731804437609303841731368222244227730280016036187179448933155896387486483141583717096963412356034962641245160511579533398578196410122805932591964633350415595746999300161995672660970574729847463838581787309159977859997047577179107547755999672248069365159768755824533665793281910989475795024745836333203596132284788468062037113560848914197179405661754258676063594243694657765845786921031443874377417808414775872675290860572091637585823176212294094100525547505502527078986922333263037987732933917408166212094448865244618818302998520358961998769252850311569173745616050827518077720473746124742430954743560114814954718177405860146705802703332143833156594642564945737727147283595215559759883542932234067152969020900387319010929584690716557107637188611942532901642308302614028775835844485906265597570187771773573739222043568606818376061201246046516033383147751643678028819633685446460357137597198018887729455046817625902631073519002630328007822070951786141436200895336032684157530507026191086924773638750297105953180112263827078770984180172966344363716882823018781066969050136303929587579538445972284158901306374273637041534528026396159116392809558673650557467638181650455445631670704294626903750385647303442779310313620829399253683303829419957094689994281308466988048780490380654191949182030127194062084845524448227601640632713896187252740996240138426219996729233744524060455250776836284446455288507581860298241352461080218154455991939617855927810144223827778232668510452023024327208554403684667542522861222295319509995476645456802923250622544921115851968562163127625868676636579916739535020902191823195857311719565649045372429195324667842190325515907616277688340338335431501719124879299571087560719576611248077479307226187414839691100972741894794191436224467444260466662629441187567380973529603178165769265613402772955163819835799885132470560926125993027117969443131589900661077293289970912125956122705887548271987894867525282089848415012910168519412204967501032619090605677222399902851303615025449362672985571706118886157170243946501042995320056952898233637143145117476530747600575593019161156123570257290505630658049505929506053358749720721586388332425517551894517427082679735264643657633615003963635514338798187761199252266095387259235130947935838132106946862787458906417797605644917685541224740981794771252060108986728687583461461054764090057636761098477329727700525837269875124725067355558390853079454581109950967590741270034803547711291497540828829860873530298842049167882222952744790313786039184396609629067538906728500907689777482591540533790988682519118012762941759216205254863462618564743921017980242327695136660976515548423864764382188105041349082643688076707722240091111820952145602217389980262908036464135394158298654237320661158581743803960512000551558599974687476471308785488353786518824149143273440924737993427043865336613803746351163361044244830523802482462216816726949292629870092802944527300966588584548917126644194802974421986271063654787685738925567897661969341317732288577404668130404080932952568555510304585391374282451151565127278987683780446155910419967027500261214795347491667176329588302750106287544600173617017540249786058732137952230798700135288882397286238120211068787078780251399699231920123368729588711261980897946772204847641526138319940355058117998571679996850568423526783058689757010440352126736402168809687401591744259506787149731223897808403833291574141142064109662560505326068961952040839245329157497237375481491540803777561217188580398970032544705031101703395422630578870854927139671488765462906889166125722330689920165490157615757113226876077174318180488379024040149509497032883630522179167145660398968469541833887804951993412195172066042378869405529861532977390262159575516131002618737095650424890482786040383434013807709925029647278346494079978997779192486893433910488327388430895463636032620614971460235451440129190124710381511260490651957563927451802600123458536747506113118709737622760156899401378183076946216582624753964301461490458462082967177342782086641739879934124652831664825681090391162797803944900542396471561284945910416274124166024361252611421317257549457294887414369999948576213617351718294563523889289891054169350517338601545180159919352550544201932803873042470569941795354895467055455082825052216581347921995446503442319113292944255107870982930553621553285451697829992915959003021746107353896551287953062656207507982437087199855735282592344668075747357509033146775004312740130639287448136085752681107527273943940313939568567523424848502168539160283983645705858732900411043590251009609634787132595066521106044691550251211984154615547568246472743959559575445490283430598412240950144119374846629128852980024992832868905492000265535231825046621640342920258460061610619112229732308925586689380448463042924728107937492259069278829643157116377120976283847459270571714265256227824228955147614690927574006006960274314342476897636928470068642996433764551012044068740909796884251911333537778841333926504709600032130660404135890732745946531244402386541712332309201343360241760827570782753311881930594376733959591014060833457316714120076064432169144789890936794331205238375916302045061015921755328536103656851902847738577671878616121420739307028330781161898580200856204946229764098732962054461102989985770393509255952754552851931730312031352480535067866366270062609897155344882903395151879300776020538479094745130897918108928404971090239360139568332953842574724502074291397727251485982525310350469433661739206147787103520892176117481614223687719905331373276040169228074359416030484006638978783223432814616516208845238275345938876953384845345165209763644515106632255844652249256440780217350001328795054715259365858291065185290272876161380019389132414343480016096830955605322636154405292676681717178587343535502446046710205247455456315978915743528364698961183614780634547256225018191114064917093758005458209033766323775710019084824332421387750663857424529615631491345615320364667524088542060297968138677362204315807139339713897039999769345497220692023168132890208646095043629453470235462390640838548059039399367275383808074047817348367346388943817173502763071010212032563178147001705531690998225754269767320908095250170773018281961585923494270169947443278353106111664840248676523505478386192080084232474034759559645436135584961523873210646401693481888388082728288814031137071385910886617624722138170489196182024462283192212574551301529747585609510855272161139253849338861280876192974085324372256218442273762959382699722489879410300033641594418318003118951741876900413790413533810892946805847988727837811168341256588074894463435164978754489366674641528024305773758956589549014044998373349441178693530534553734122703724977188721890771181179438066091690462926469715053177030289726358852126925261734930661490373304736178036487334255769556419205871933121718657925016611347699485339722508559103504223181396632190880575783151688080020063211330531476783490329226253479279980530481481915544115800227203172049405753777523716343318713859597906675246257786057293413283876158663411092963392563118634128408215880421252219309150918588799640221761501978071499827086439399604953826958879332989008226111264051946307482196971925046692358175983025403038652016617904191555142130761849503720029575766599854564823112778873531270280655988671395095370467956055202448057732770805345569143975281636434061508104872615130956968944542292165191810206800260972097893139719241074103245256636549176311335342148199376638916280956497986078501599317660817809064795835383195792499387822413450973014117833162946423298439879826936773338912097917168761269658588720509528588809319335456172662819275818948054160052720430233954456363568612324314345864938750629850951632838141015120901279617168962920519069371975513662384831060504218177347597967567261625878850856296470472614615341936900526605247332045334369920084219612244824951009424798944286322385368162616134642336634132930177673727765963316739473414136509978560828109633785455687237703990159312722565852803284512291099353431385461178074239665031383547771004984409757881499516831272624348681654288730212536541139559344653101047753829096100272674738060653191741529196442779280912199431894152009519288145867948061999674421221457970422855299311754841786876353956623935532935152848962878965536824538191486561734352706894985336872444700888661981252001084814120754207247947551116154956145012656995724138738159882946376303586794361178760538731345226845541706526943140918911825837969426160348948389641287539891453194514338491181328820213223300641026761148964054128891583732110203386622081448208975006782582148872732310384301015618191002550659870648116892786261229744328630643623246076940932615224993024652708230999504070430157623394135943776205546700702681805811440682702990477352591339248271752933729680401666161654352768390122053165060851467503032761295341236058033099746866075875105204117502102185063511006048117067988223782754818418761138165866028815656269571771383371431894953715857302235065882172903574154471590624750364404466701166989202143676307101819843517854786723214439833884410989368837037051333017874549079782463312435988097510923542938708079568965039186193220661156067035067526245742843881021279328048175050105733120501792160071028994950141808116628041070091351615839609224265186562191818894615326813357833574067641548513361688588223236666583255751303567208847362802289205138110120088353197931795416514515907392477184436281031935882951586490699496516535306909588761558429189247426204323742449106385519501143733421058455296536180204716936620577222827431386324994160029599120912296396222021165544607788216035117267963703102319899891651067806090570635043854325725973995797099437297654312147518041137946232137008705009493706393166673282524536532961717044351709303761945464493036421816744879421267998435599619336733498015966713759087768013451349477920939048866757542552252612241470276350963868754617168684010849840921040938922081964149757946789166875182803023925436689352037256090274556347322987967626939720550284718085664222382604666388356690788565283518035801636015071375157155675619766163047928383484077684038252344108627307363804731162085355855183317089085705936003859840978762318689670797232845713858817522631549448989729867730150858706953087371644256930175613419584277144463622845748939049969764501228428247265964271696625410784155594015657351787569662278166063954898292926461134203426665500099114402587718648161249994763575986789277611389892209645098052635471573670190654318176786208435793779595176006546288545091530754117829239071977208095285056480475655671937086867013805910631706495368510570276614520228332985147068878953506842640312844646085490594844582931238640968440853134212906748010383619631694983605367267436299259546747244326364137234550522019616792576352333299153335546051444279310695797087603360432660500478034965383288668739450335058224824309309655784596424358542664278254571190883887985403953885313242059831780992891415960751372751300147577362245460264620505057408999739893952117669971072994035066608267764129218096605303020913112438113585137507153607549063654583013705730277266388884355203883050462282962894537362272867830610328372995879524884474943734702734876273730909910960250316125870097449175463437228532985039530290666104543609071226960758398532291950527870353131446256913168545682847310339943813711762554975968329951075343448906016938973591942261713923576805935965025922215033345435862190239354434489727244828566150993297711697132205933096671425699924818733932298101714672145329471649552368558854587953086238720098146748098511762474289232446941114045358418078007059407715150542652673266082800552971931152593899275087920001188543016948066960785321893853009034771845449463272533787415588475206852993723613707290163160336838457629857913984474711473946836220792332287891941986409028267963542793030397786959781502492981203549455891899582871629102338813086169668942510489783580648292930801747378711748694015546355488841241873573010615724185226346934685837286417187904762895192262309062150737574020989240889316493501295365383652442853775521137056754200467729627090984210713188432821634773318988562725128346988736712730886563798610370421801843925175475634224661257846926721673004148530778355475012988425753503980635980170258896347099362982331456003324325653978636871059999062193173169826870444430360035806360529824604810554925501146175809045234865338410149700029885788671670186381581782485243543136956654027898881836040831467585779025385625203945584865430066301752680356052330634716907618003257902490948426983283479095060623480476508328681250730071676033545810636602439900981945075128810044520436043468681685635941213769530402095901526897721418360732864407978980537592508723044499067949622983726087405794436395540654929620701850580867200308185091999677623451061942120635915530836620689847832271883143869333001063192767370836524996890767165551611856040461448273128254847370800251206695828755145390074816566604848235549368769643865529669151848275700883095949489482363205953937935071889931860151163306131841485208287258923242769162337654114300126065853537403632371288016673414089103925260460193383201922801936017792608627945491804082902016504170271396977935971960761842980606921521319972297996140462527865052705149845594353784991298058142737488422713453925530050201799869890178086424335508333518502314877870190917796673119804384301072664829750982787760534728965696217101826441243219050263245223416924507273544996100711629200194282525807578581213781478285958408558166611097473441872408956021192595174308628455881055273602665020946556436450349991832652882732735465172450225365447553682750539961544954004547354525567280071411839385836774274189011182743944717569472044147069479049712443661437489954845946255249115521851456368878568965399595829554732026594657069587628980684871133957609326480198802388991237412127641397830437375341709198918611645017354290312096198139482742788775529156058882290316158525192010895490393045279671146346753561129197985343434458574789542713644026764891641889274573043025645438957389035235209099611975251972315295842747160187223109576881232357392343258945743662338383186864703076440996005932132803607951509612793142895350902770824091008661565544529649228173948149569494838414840487805359434051626348328688608724071780376204535863884927282531449073560184592701236460067048213312095511248545527241046141666750638134564059429253157721912190309490932508964280872965171697066680608396455091538322443927851430307264336535704937735671845202310002470254879472786873683508633259829257227573774506344590038322621071460613559687129202908055240234048075894871902735323357865950351058779719780351278019444524416513855899286528780862491372824081309614843424276363122598727650041515475804791125507240544824575737851055575262067076476913668542632736353372633087995397727465964193226944478025747960856943046624661948947630594492665301425821887509187463713949505000370114202451728428705903797985023189826750466342267266020950018294979327083323607845856645246800336218534012213656765251466333077372954029651321049828894152137031988625509991547772700033310678905421286414020425822209353103272750883235787356644475368835149156184018273548984463567180528660011174162956493791755952175573481472161730293177083790980267410622785175612958857577983524587216591332919841223868193133741677349436018236239440354022296369151976379670864204381772577203343379484411516893275046484732549992114743190686787621173135955136760685894975915060992872534783480374639312604739914987928086568516066830802525971491246249718385044378907382796153897746358811007764822153878318419473650555713783043094388981286189213001997508356658414379920188532891612960937755230428784843730697019821109830221540383426806532850738438925266920863482345751036589843500162998436164436735337428677762289237368795401214577756153069164173248065607903299251924582232941490345526002663717927130106735578044323016702013111003597033314852963582823963098013681379378442356671656490846327839527422204236776592291667560598696986341262814799264854063209995222112653951787202472326072141540334135374244701567248401613888545498488651261471751123973874513539791295739225261633517696718737517740759346699271869482420108413037448879820015736292821184845551901181056433093562592286731012732363390625689350591663099213245073681744099776647709488139636157451448259441867260819855706740066290515065922149724279710142297356630943678166911731213778865125289888750571544368501439841219863891213039841705929305636384807163714255314341235071003800110746734818422445284672418251037182802806762577426835191728486326412643801052297265043384986546007715592640391576132245194362289772373212279914638627650644233067504923482996746114659660349388028819285865738520505595775584873431725239918250867480550799254512595471237219950139837335052531943523359010549797480053962215292322360628341633492548014546376285971318638743096990457704431382031136498653178097688927988155470755445211807529769539483619627568563986574539121544527944339701243873111508335755013493780345861547139841981760276304445658963905205024097998645268870286489861055823143677806161701315733280315412029298664741462143350641193399514796978859803409847596200246247110418986253841730888431881052230253056726664100543796125863406116257364710917544127840408079021706615836287127517255222924516296065929745524385737693389073233529395132469037186103680235748354727195945649046210802719311932425788163641109889451800088856879996430527285288323784903173028564722581345589096687865729543271612933029456256076818650140273528778662848993737212049336934564811988130130704547024316964471785851534732862357574690532049204650433214001273295754593466147038577974450034218116808340828983324870112166593564327680062775009780948253054454428559674028584329906143153932471942057368571032197250842047711487710283269292108762672851031663133023028175991865034648235831642051474804465995666298175565607195704075398296799788139480808013811537020279665293803892670828026380387807588161997883851600099000617181424242193178693959893545536001532398210978222942704421184159207074061349639296449862193924263182096207126152239967389131902921716549727453711523426651284630254243739707206044277720489235635081583552617024845195128126734826880500860953931713259322714524284425545480358344606017369794262746193442386152050706677912691974208356731992180687627186416194325133320141910264078597832834763967168273738576018589561454897057037351162770679321354660338219401517564316060155197934628332806046780247049878638078296584132760235391098015041453586005934497753455805170718022172106268203995956926704657342400613818903807035484848775484881994545365498752957895724883305221723922406556489304560374437799712847494176332403817559890186391005714414928971865673738250263717952464487392705485180532027375358418064490098717700898607374380396134401174230919874593884995229671839386294189347764289540218650491612733766644620754741077151085147207561235513073769668831880351326934199209058543850989072394736265240577806494293843948009733831518030974916821611654027226324212590957464342373554498010562987862855811556815012503884538619616602006676262527230458251343774687597518818147959593102965069283951633775207800730034335961659640045616955151931831581656234157359348391277467583467573412333411507568981924739800791443260118877355263951719103814570011369204358832909518313714539856379750272696070142973179006055347625514329494009388816575817409499632395660642088215821966064143993913292809415312601554439681533992063242312203787906926182865058774705227848014882213483496586572316511332891782966494392916291295690787314839538828855921682799661990536458392689403989430535199814576124656384771784937111431743824554401622260857116582713989540199370614561554971566930846605722914619349836926182502157604422717982828789481519903895221246491473984742956680494112634943714119213609930105535901909678359864948315041018148401394586006672008408612889660992128479229431315075466441060508164330514093311021588653323828494735414854393389871507840273104813890041840883648541748952811818712919627042733702836814816354995038201068022196818604502956454026813315618838978300227104337728771206976216950379857975732793273649699825887605684423705946928268992011690798470145566246121676472703861943885139023124822649870976201572995844633906594083966831163017032259214673875913311360775067735853302921588748039039067087586105379981552671325318397752056246395506350583871623397912950027697292039897417511575577441606556611445032817521082874404980118659891178853607505839452995723779586856608324956490477332492693236283789560337311628287041591995973606793135834342270415868691578658744517477012765317489495276254710383198167777442345727452294707103738224464632788186509092821309234345378272360006212701257300689236865276475429806459287031546828866884516131530457763784397123888723277219706597471932137207992642825990346653090939453449902870584320506216781581798093657715334238161248011074316048114758391188553329490263848803204349904668306529263884617547479794484862972793555825617725986110627160425482900515338353839085483896022634022840965142717060514383996122437514346048060382743438107488282226783488836496973194041675154154700007980094075231314354030508284684198947001116774726663620041904329248442425061303158577655889750523161593071118547370034111327609204381766442840274215863526720098062602217226202213383574663362796257420866411869664231482572569343514641772506638157861804918252272573755614686019572645667218383352697360502433084314571808263357141905540334205000974664525868795949987738679626023664875244707099755702337372821881123323624431192798533122360932803039820156686976215822921466837511845197875689370548502526030198199151602546308754578169082001119475479979795145589970304208935775737670803501900007124355873667986509626507385696087095238297309210266011454567349525376026198392419964145616005646158715969887131613925554238529018971618623476473212059984239011827158670321882427561562111213783243554070228919226985257305429951231232584428149163712962957433733648450954496661368204596004416213778608004405009317006990232927118930388775312960754301176995383930752607176435484720731502051306790383042192054982429503934806492768645096234198572238483310557223937953072008429227295541292181970286320480109011594810892017662508510606837821455218706832574161477167340468948203000197546956442111955655195442301202513608984320118486797191755164574228076082991541937934544086391532574286576840309704066836684304599743267021237481580000489096654863132279595910824677607715305325933952969316133888256615909096174619326258198969764687863096691070242777843890766321513354471425212619793595473713351662681355190634471403042156265508932545097705416577340569279818791119483507148170852536257396438065144042021932616147157137806081916949957155079722276964104214470936152475222080442290960073052909918515793653064580739259006409460342882921253668133509026509395607029725719893194373170896014365737947416300274185582378688287774004537319035693328407137927146710681838948491598283686750333409231871801197159407572475876933179771486577630364616719356622729886893258254207873918231426499735209003750412763657572223506964411415534443864866138214095233473479045975300183189566431999612315299871412911017176002188326074326432725514463952659455879291763126332318662665770957069087300854551543915191199695137487581561802616794506107170158576334066293769328630001696868828850731551580648879024128310173595135862852750581346738191887826707512347210604470092907609249015384355563437095252786580011498129582618626225639682950385123604541993483875729271409519368286061193278546469114546878839013013222718419153161994121509078925321965986198568430859157160063834638385501138472075793592564640844833494636618424336188905152779347955475556938403594523320987531334384987418374120980933051823082487169870003484142441511202955323092815787855471334139817366179153322580059565172917483097294167079475829136898068121292868413172089721665150684263695817392820962289365070984871037903905425694052165548639603265140212233577649848415482301910219451996842737056672811193569735127538593319303465602555980443676948982554120877663181733940726391660743472977141826152986170068254869157103294487475354194326693148781190448224876552025381866009379818770175514767219281503993105143872721910800234906246310615436453219372814231373804513553912472356728860987878891797412387447150867684726922941798072568101205938344830887039006818038963357641963023917469194563205601320844768204832588736726654247782181349227063802895920741252458046867886037268862914329948894250262684021999788356115030838889981003840145380198107058206654126571973600326147152355652947743809090128282819484319566803721091393161659189941951814144011320337934082778731381019851193469187862440206824104770191629963895579191531641795398531871190087390303399680727737109035621678744848223940559610357436482842120087544610783606885418108811475944512944662066709332313688085602311939478062665234183378033364194769217308929658421935380455129863729998089835614840962977854152890419185220555332430181751586187670001439801380330812606642659960758955953466975277683861508941588028428946599199728299036215077345614531831344581667355426811266938669284436335849157531795684852806339956467771426218684568045124368783501261396506193549405362299856581638714555465827465112868645754174870125488934362388038238945395301594266749742274586037751828615687424302123274872561043713299612995797798476777396835311937893424543234579235311546320934432169815036836035399528583768528018702554399563750683526837916768633791069018884395419918501116587334508251829080492398524161090906538886888827145742532502598045527967660554213622044415829513275628093163774249264317021517812557323252612023965793378555516958655579455768386921750790836747374422473151353554373397006613183073571114053886034250793454140778945341516297605212334043401851619914667688518639957485804335681360261191748490581318801951484409635187808463564479132841172943846695404984210797626498678120724062543681838880916287307444064687099881324888672619082177498260767656866503080261281321302106111736622227965390866814316007672485020826717781155541022703946033479608878549970361015024030473550138309724941155464945801491323464600905314229154870575135806557835417204737779190491464776417249588886087856413072464638409974574710853382506702574793160406729991857419312349333850998427032245937072934559048308809372578441892206126300381146879045187922140461783732214241037740392922083369683835008742657867160228735023561195212250061328712076868083971256867971469405298994240210156687553916090377757699909956987181757715168553593325569075912757148026008585225642821576273034850399748178230230491840303891685739088987751988892043581405624419662346894651121071318311967304213036511222356584672402459792327809216964475289092452956864577872205940313906720957913599836651982763513311439390674640914944946264032340441995776367667450112589683228516471169544734954678540036697951609900530020191219388164052838785189406937732791237188659146693584058625496172082956555645298122733468139396430892298844778339300124724832839298130370638232421688403155642130337657224126077718025729357425605562255326705499822797336472838766529316210159290314980935279305251604181078478065726773396828865447715523607689304785350915275381186207417881143347651224866536407942880725245138964716855695287032017818843039642718608697984652926928397259545149744349366247465660028056785217397400168391390954541127635924280295461669972287039123961027795900281995502051598250099057411716780931795769816034921429976125855573604896787863013304170553928836929163645117585800716206513365034961853295845425572527925018224398775989376931093705880956145567704075044470903142348710538517869423736941883658870979866819089785397872400174795968508019372239223084166048245321633504085574720790642648305811978139225602611301919462628198879778734841841902519827125212932959212419312656048144991298060721012495330712770114270899124268958118373567448287410642773392949186007867346180496604050909259983620456321465802889879030497437776284953502919279323018422823838039310408592515170989527272237145937656910107718136990456553594805506211210690770409976210406692137964489669587224607322082551301670122301848678155870505942098506705013245644606040167053964838076749564571945720960917291802592952248172240526527546899198414274423991017078894236227358748601503648993342364187072476123446104906233790413475545818354725190105788397145773549005710801236663693600891087976542532158531056112201470855648163931460568946365398574001970213574821334844804647065424185912445564161268981945098798674834242261719936789147879497750193235977191270915249793363939468702969697324581037563585212131566000055455933095651027317340495703533919969350589624637717261692613505576306318958275073296014232393376021864025273046905289105799228655759276952820805591421705559929114501991582938070118954698844593853202349628544607208543425052699250289208379065322096409807353398380659315112322320371019613867812021895500401014741824404648285680797815909306279352048218403122564848320210529138166182429978649004771256291314498293884059037755943235108845190580260691040771113080889802063014736941186944708643308546479718858684076641589332705182571874168597871234621923797662372495790215768473556452035361250482376440672970878957780554070893943970236110781577711955358100685640828504837262518906631789561138536810661503357595990205260427975846816645809811903513993800440290311251812562553245722797218493338627785526452839501155930918240539505113145213670425097035300789671405552084888962449395083209720307802468384173102948285290506274326028104796365990071739156308759521459930127583937953068489715546292205273392886352431862368310228319758907501992891835809540641281057457071758367904626159938658730548908818437326118277770729193877040978762656229012816958125003858891168003452885912350293691589375874188138408555411750366095149624355948020243950461306323147531064057063588663100619405783434239094527650180449088647711096587083848830247075227701368350082190569731700621669754432412904325945524214053566719129830943577089587399547001919056603795205055113884628550957282431348727976621121674208055865984750797995976830109176131633484956971350847897045484760061009320509449762737221084313371829003569298157962980800596350919219598799423157561898978945158703326192037980919511752544053425395659977296823960433916075770469994977801969597567748527172558892547067457477340723549924987503546065091254150943456261452020801108700596961902463238284863451509342820435347092805447872619474179211340849073806184390076002763412428530717783904744355653014039099758225513821653522117742938441829373602648366260965707520765533230537975468223616021816929035311042360610337691310999683691065913951780468227447317556523582211077616194274213918771377384936533040692437299955081544503315138382830418864593541631209957081179245897017487489128839066019658484867177423481440382646200300291488825660540307105171453990888939398933017428557727627451625633846326444746028357314503623386464691501673617486312034809338884966407462106418625735439225716355588163438660540575405159661877919959225787454533847878079028906914156780402720760762094680455201573465819355828703392263566544100245023023966507053994101597222883138037614646985263186033799068743788430280107053617591410183527187971427679223648311830812637165052408269074735828183438328237385249925998685246139663917282301226868342621899490151402406228355266336499701794833385927067130569874548411558462756104076118170213290231528615818402138013691820854458429936671570555351155680738030884727142586580115289887777693508780075472242506193507810365369537133115238738663594424820644650903299665006484861395484619798683698809762726968949104730138100147074359563067981686466909139275804380318221072766017337301830145884235425429641783162464851046394790853080572860699069594788505852462159446190253162658920299575073877285622109284984696218058108368898058434195161381197858418188844818309046305898924355582792714362477025411194466583165923706388393113903246747017827788895684315069560668702084182246205684801745195883568498208759740011994989691515232668833525784426473090253730420599684521929982120673387127356475995725827830973709467173635439405996048102351158053518954699151872159976070062343119711524698369993754510996255205305170283918497202905979846802410046697286589461792813771268891965162157277697425892219432091526627175851346575988707064236301368284929952783924309953630754600638030660114814518022333061914614568667712424878398775571630809955316732239195434051513056097267507476441365165282265800402319968440890280404877843700793667722706281032465725709435241010808531764212043964793387607838739051766473856862249651202335375645953363437056821927560127733538238809104063307442468787731340993871174628013604440028419369725207154655920196712277647859748405691163871299233888745088015694739351476756971283944440030505893341601074959577761997977464556991404027181356180275955060247818582821956234809015012924214544669961645625420841535466499658648668251841770670538746566242880412153900641926101225158872599017745905909227025791760932161052806674540979238713244237098431871906821367032752782891039459161730101614429161245903413099233077882185347793013206258956772685462744526529169066047229861021182594192086253526978454953692272830255907754437883178135867651944524934932076858681088070274925396198840182033808825707147908097843254539115860509861338785207010910236409994112819229381390864247337750962969944594115455657950597488983323302845423517065368006219523325764666434644111611187548662558578021956962480107062436243505345708460946292851422874105230956486479319512783606290677621814061936628675686324641286724612637975499459707235353735245297155856300791714961613288710781344163765174915572458709375168474615545289049650806310035586431663217063736864544509053830276812208723980189639219258275656842739294209845965616970964838459031700136808852523306927609352345574101865851142853592480970328357477341579485692503210308992939992824945125667752055032334794434755385135177170645938603323024882705430687025111711593395839863063291177731737575036347374982021382328075879877016444712815028428095190702928971632434112884265087687232674028709042242406542270553511415422647030648267936375136782001508029781770686473332266204819938775193949304243538077801986370562925262666528546082230819865023794145911081776674974983313199087702334190177645921409845212446216938858378684624708712501621991679050702751470081106371954242591894726443613486257441331263602425237703455596547213890329345597956277070912330614775929411819542885437166511319352704356479348625408979151879716123194192772016024881800032531202661283027230567686104537587731346684201498264041967978008918227492297535789759175562089662586919311829133200550427701665551742545893224373195884136572963424128386910736318117500055738646225959216585897356678086800918751551170153075662735694118314291281181727761848968093582186414895610043765070990547923171844008599082159145815841523417805404605780249291395269594181979387809449102342353241225099737058626774023965612004513298830122724458979012919245151921916303653912960939140105031580680311359163580954303552647403552085185774403541160551690440254916686929366976745108516458574606958812191801280502853736355222443316960862504620723396421712247414878950695581751526436243657683043201436475336308027437788232934930961874582188705151102165549961743987850530836067905597716558216567493920312556985462436474104544685886008115230666195648602355007241837126411805608446602421285998264425834680595188366687565313667384476887511634985305461812433008257213026851549195858053734551942668567179050540452577723992092426782215910513681530976097138897539884015908114332507200310479907576369831392560295954405863117113831807064037239447338547848877175534836368632395969763887578417798236440217231963345420051054682197592320937243570761823742514403897905140711178612179461073817829271047517215919343708770604512839868219663074910500490825551196578028617674657184827086502602486165025250053012722441633720971170760385959069944566439187047905756887176867266439703485006135578575722703565159086910926236321368748810405806281255359648321383200261703343506932677227304093474668020770059415396754537662472546240141005514771801751406680296975774932196838837175947467146406487857002090934839789516255574993801685495624569265178790398929198285644326448502276607783365764547287927794445263847186881660199895647210141463441848400905630311455209009125740516460727036997865312736620185525548633177311435664711341584649339650622585259207769541197561612148039445612894333475874415425269230535330053955593891942009393469102747361103194094921925477142873013192145134396747351954533650944320382196846826135726189516087019374842128655156124552756224764145251633281402078029677474651125121847784913522899966154398640548773091510936736549895622493615766884884702661646138096882762531704195333141765555134878206131437553750187317531468725003589592278450056022038033308205481698339939757252552567955097432321711603661362687921632208467693695180741799058683928576216129193665192148837809133416098468039915304836349581980864879474427702616606985912648665690757428770269346968652736024497230854893216155164594506097904321801979154910201159191976722113593909893794457517295629994636309606944323183282812091457355474854948893677361645250437995383347732589224859896674795495953063577802021378318845954856069582990875493748882117180392188710058227631711315012984950020994463370324175310940435502118390522426249196611878210463268395809601429874611142754239637523215140358857926662450296633602263769720314366685394235230674520301760800385882456595984663934300683512369078553758660172878256505792367564523398685287255032455153648908965527378013065104777483783560311094888529855720183042345723702256775643121344387488751929064552463638175171722500717100597477127139791743410223246621612910515659315511000537659056355899003134635001154268400662713745123896686811723638714526531128548233995497654795965529487861726005354728336305659829936879970619740459675246082039991858487244720312178109048577849532739686319390365917566809871319258861753766655887016797020713231601804537309802059068318838340729183440210734027530520421548604701875814472060842256269216739847964175402489906328617570471319241673512054473522948256096671438755311683274569823601085567720143423535314557785743525545768003595857308396998966015451707835576251395149737672224567097419039553156462947183149160705562070385696966669801650529679841204030303612192773913278658632580632666108305025334674925786702307816495719857204364202708447990956630955927897249847130433621071584314800067103503703340747141792798555658428361178263993653615984862111470559247349828909701228998420073364659986550965671287467144467823541966045226150059554768414572408076955445801942712226730621764518836387035488478928800722249064080815405167785839004078920969279609025507364327062649869496696967785665755902941622888638100880390532351651341611297219252022505606870550024785376314867578439464331905368039032726311476588545206166106880380138979007098950877312258295575423234311363382250046554416788499517622742001684982293750187498569713389688334504185038378266303696893513367365094069989389195326202155593259091343927897039921086744072471205010220365435722211285234734703363928230113446699706624356170183345383676031514199494781146490042591845074381109453902298884453470018198976656084108332534441686819747230105041438206206463557012810968624850552281654624676985669674293855297248544671317700349221575964904982064077820765998952968095997885573767738793323086019746333700443277062048194689404316672433433326862151975081089892256302239805321198661757453883903417058234051831039110569569058163247937820567601660875278198528022193387910364530392410406613400368923839505934319052515402313078316627494965816811833166864930977985404004312603924934694279345259266340789749800352440638785944707556156007908051666761191113722039964002342003255280469142107747665474391003024497319870791706948620003001615091995675308637104806298311604882301309978616593151769420641322684586181716739848813085631608496201038941178720818529902370209525638894798313711318841013533224109973690786170132768677074985977430427271183077696107168453371143046250363077261836130130581505424854260484964751747171625793439351258362276591650747513639772177270416172906894157755970198260791929094429473948518282357160017161908642865859777625811140529478605371324940037041622631227529757243244515173535001369799361378277175079968946622100824291352615418783392460278100983328717048432241027828634797461260923809173660710529252007907712660579069864093939430387622257908956153819140718328534066567414828780329712111271378539098007095007499448663710392152466167259761793109514332632681346951925581588632160014674927549581718832848214562240153093653523170202851956748417774831353910470386987266542655218777251613087039510394770358185881674034914306880500434752018252468004086015875672925711028893009344759176362487938314167775472652824806156971705476656337209932216335866889920070345909742247533270180313981448657321689567785049667658816513755257270801929985881465323308308174657777605520836393555978094186900084423064864285232173605471684957292257331245963547294690838876763361838213978845210030638759339424603383069074241545973903276037041569713602621995875473283843930125135951741069056402641414423442169431457346874021058437450308468674045914500601813154745324806000427775612771406199521204810684808634439570173172537650286058365692592180131587249010139341032523689406531714183219408076012000790640955041020660459934028603536380183760423807520639025313382583637722888311773017129581021724945923260291617295272984690592993600724015999285366673104479018237712974159610105856068934009861671392085263455947911244789172998606832214266357039811873537802293344632078949330047193602483086887080273874025664134737195962808204804705295763876040133448713039749302256745724461778221773100082397979272397088907228130025859245543192432254610234075777953673856614107833722513348337985747936662177973814687833433163435132923708433972590767082599077064043943737840227096500920845555794573090550087967252711102467368053763589234557870918387294489430654752800685987783305293805582734302106450065130052865069056993319252012544693925521566355668464603854254629917380122611605814517961048680748780345002943848291222580712059503026128058355659259824960238761861211114934736491221414287938548765475073553383839892473023140148380976473278094192183021556932556042198041057622308737309619195100745038815429188656103941574417683957037942678311953870819026850993237513445485850521577234725044600770178884138186326762393499322306318166083089725563749072307491135438428483913651830901528881899845337509755950150396071411536731210044512660075322782277168020094946567943464648124704461439344635391717511706889239658704789572854852612778117576803271693632557900920803061386675102734415775784244253879562371300969214396731994360246154909252148428467141792336030021744160718019320569195268230361765198232303001240332525737205705746388164887614893269921724788446795205437631074214548883980039762302907299400004845031529314676500074034370025215137516293618417546460032534290527224811425434485546508085139798826038911177869883397639376049508187834736518205971839344185846623321716068776925172268109937033108713416875229605409560710331767401243687331329225960831012392629287986933388286148253136718655702841953651926145854934500956423248099861375350236370316116470886887475131214900891218822607823235464271051120412305048624675447761797217235305545422346807546402652096615232171314512755198016923663503035754455655629104714241810056140655518157099320358822321773967656249073418403441843694602867267380293360566983139576108818399696438707846121648919420128744559269911155706429363424002370913075139322332173290095342406693237639186855777676841558816118505056594658705955594446653797515440374195467269605740621844643048834555204057273069535527255735328974309196537713171978859807593736610799147592375178537154731821746792981977976517716115974880185839400036106309811868748981629938610709108584026924319554909531511259909537487186211875764494625119390076096545734287450497586740787613664433734461125447708655082789604669032704567825087071581485874006824108812278142053795159807866083734555999771958092158861861013539872382201083100984489349377936015326883054554743940519410892414671668333243140321419563667083106770981650140388180487698084191496419259206205691180220078931326680765913837917231553073936870006690286082859462512067094304274430758297301743693524566274019412906725620927052518925733806297296827627287187445184276585544935932967783814892971188667162982457640595398665921536293205571943560232583911348690853297347838582560135983320829604680237543677148101819908828374361491025905564453584428766581946550800246161505613012995436764851618699386715446404750612661305789403418726857680659344443695980182105562513293741408388926927882597805712864280298383828531686554415350365961418077304010783894721789220887248422579557495131522972794445139088107702231413769657521863983607138053804678111658027836008375088216778991819507230253006905842769805711009504083474188550591714077199441115489487179463485979439826377074119584443643743534144844147130479524974125776904938489631743807076812651722904720666079163086908193555038791437528047193082145136341111034411347217015211396426293476683301708960373763676942295201573593680195269671872150941355599841529539655848555092209271130664878609307016053951872323037604752231329847922220302507084969261403928899161959045492841784920324365479066975185667023694014277319546282518211584164826888499934907670323278347660417283683737676730645029831067751672660948270694988502807291210098485935113084635966758914310207630492647508834551299935567311615927553381749137692698387451535506479514455645902478536194165732097196403158358124166398869295642192034808621644997281453829693821598650322798848796973672669607067435637843780706586132908344636999286531904593078183316882820635451233600791339555285231823055564623684657539599886739419019371316936065457706014790605407871127018716950884986935617622051215277805086245401730983823476392634262508773070003319576690869524507952186488757699998200175072993027294592982226192019734433950800527241299748346633817383793595119487315275395921813811894748327893888130411750560271815427157443331296071204660237283853407631909756242135677849729612742666524367617745115305069662255132467439029892433606592043780893169828721280663538746558107094929621177639940798563345553953426865376460732693442649858712063053835994229878230664759393850775795744698794790232669145517337821200306994310460769923060960382140698689087476861596288314956060767358760978872557712741244873708414449102456600304841609633143091879505888026216604051688676070671635316849759602572300105157860084347534197827101562315161100364575295574532641105518904993313634554972503202138601800197697345999958850654193152484188758143141820816638983136085023597797700315564025280250397616849076350244210625594818743569584710248016772154658363446213642844421707111937442494121509170229645085588603168131456073026656451613149923562497937920350481144648974031824604749162324062044122152510513096034217585391472568443856675787247901296263545806645317477424570400872528922629939704938349472272868443757085929255700811566725574382980043180005812067900659031478459706354044822832799141942203777995140295516846986122929005757559324946640020705122055348089292492887989122119421401887950591743669604142471039222613993282764065230754562130635681804839771100972026307199597747891304705688022693358651179628296185670130172380659845045323064827406312876375625914000087635333274036006874353074905401231549481465684767954002593337182056579287775289804977984890772167651689296315171363748790169222175556113687443009153402208333496443333598534468717811391319066524265303563597640105264231448942233043943190946426938485351342055773676128383798384839629498698826795268836095863192022760045522572478580201335145204579712879766491955036986013478104370547841000571995965972149177938409896552151507517029447745683758008658387847404056340374659368975479882877130985764699215943409042438011829716204066563253325699759057790250593444586242047420270114882850211545355777626224638137186222876447230177907084735672138569418261122811657450051575242510912328645712309327896942944483438671908974229903727033506657195402903863162473978699294241173780839121085800836603448602573327775503536700358165261514170086323297733161951885352552377101874165912464409495496792219972124414884628206315073806028639686756968356693610280868970979400453930516701837534926965864664781590733325971155737679349908702848044826320641748403253142442735166825559082142889880102185257472922564992157808398948819638413134778960399498426620288253179495330230281448689353214913267651596494959221366568385749634978365934290215085637871137137392507604449516037533868208979663266249839895065923879154661725940041788736335316492383220285901905749923405912194169526777172822262831840597516185643038130404669135678784934250313053919429530151686542987321901787020399992845258635469773950861546896328288371683013056100998870486779431810570387679926012850665255044256375246994792825271284551862522667253324527014844699999778874252513152192170874829404438851796542802836937755606185854265237622449789643393461530952517821872992269633073519143890282553649975378263713907712487359408383895505678310950168321807953812330932346956869625962543275160706042068195346430420568180260960469547143616478220437990884707410080978841627404737975432175530299838251723298533601129153572694674692944146636196345855122200636747693425695622046319006155942606725760188220924260925113120097378643656199809539468794091118854879473766372558396577631943935789789905458095393901415187390058749078049614021418606555944610644591549790881136529487671507756498620883487555783261850281149308055925680466615174827786251120086808325897654662326874487616507754409118790674066118376593630971902948883813877812562991768006661682206468167129006987585970038285097631852933312643034841276083749587023221342759894904181698832439754401184134336236053037056633860991360107271043329090008543477294970902763926994008334656061143098021643615166612153117977548297285748697803568147380655157264127075256312965764052685186684028244496509906202380366816709881471225601847576468033434553692149484658642184307470255639553522175875248423697833495899534894067448756448087218763124130372567635619571948660116750635164302043042052203263142763416028943687128687329049935925612000518752570688522638928062546173538431813852395152761384402231724320333851987535310534069452288458986156652664343963346477874269673506686020054588454122688020516480374759359341072292381160258720272953939262324010905954429402029928794102594302724903031934449989946553952825522604835228928994075735181651539903546870088332674220012538560096946566379576443876287078710433645839929593935211495916822787696161938618266318882242970733372913657108268463917339126850736232631061478838880718342475342151127484922762385465797552087851762282969845667408317136193627727382787764069688846221965701281861232866187475103393387315443393874587445582544115482407732975680253678617173166429484972792944935586894077754348820443727429646877897422565924720883699427517991795105384668176064822440797845618439949346411778057003934659308270604297141575403880588906490760700188693649726619758312123219528792540683987924936809803954610405164063500956046611004507067564317321724950516476648317998393175652035763996436494477240828664265994985969327303209011445629994107304277118320521883215615985174910046748326578683884603363021630131222901232623328149703519482737953090148602714885272365383835407186520178595490086324976691143272148445932532183582273068291678959379461621328872019717060261414392209966614442471334431119413106063717695763119358801003398095066301662001416549449354231479429377827951166823831210062020655574625586809125449912889038563248831761606131653576920311782411370257186456351970449637888188778785133349966331017613952607321270104152374961799727954111343630124530013769588867982302335103300577998986529270381710432986840558202290198980347694048647783222063786845789610338013466884714277540660917545622312354403164293074141205396202178192573169775408175233703952083785012582055739948403063053209897522237428864648871011973801134682131826632311046658162446712279243039272764911487051080616794349254316521582873470512239283278624089866715199088843554460105821487203121733256351280898579766825520210321465958495688894622042255791548309682775961672937788936933015913114414543643997181883757221534668293604227409154619132016264706264885929461675763634453054700500303585904111650621452327185608395257973651192454682288327725363620638516709482464404234922780046799362539750099794321766083944292999369549334036142120504983390868298952542211151452124336423275248770594794353803590731755174184256343047804739247162101982500879086711557838988152968015250946806919398241074495866694502425720449310700766187079850382637733041825963767690271462406334285366402491319105741714065239167329873609078454603671578625059016055946914351912754266448125248115156601777100856826865503467430663759612612446027698592303220574555411377056134210613129963790891289874771100882243520606898735249644895729863719011433034277172708969767934707792896340405223480221529740144548810471195521932637392390135456725280544343719290086339418114316711546797018253285985829959095467400832392753914071482864088853904493728919473940621283967476590447322865886120618535618979471604178855215359175201683808854316341842430511887009847941221076899317483488608548289893666037123432583909412047236407919477638069633593977525970983614859355783884909262326355987362908736426331725568744286152095416481675786954949009816259174870860476197974330187333375894669817566036846880372112414466823915622862044974010189773540591751322736758856390403229945314172442090522115967988603821628396813118502951719027776021177484411106157533906523162220703911083668357584221903261357635056104251143857014189522539612580423903890294987821705324644817486033612925586521824843935386737760286710314120675894879775661088961883355562117549525172375598860651773947981336150809670748672665751640485176015355329770036764752965893704434037645967685806544440659346661730719397582188449379069258767104095435650901497719885177932923544008427576782786499216695789111786186488547390320820885112359547594474752832960836782032197025506740935026081427842553725649032915670622625448307879158912558377065630300711185862793092844529938356196318958510449497729466329993629480992268246430611107786023849204901081368904027801761925093830789411503842036618303576998264495117196536421566737306672386959633142619518468001154908197750127568128939400844669971712759915077992521143721023440664003135865815520902951459788339307719150300778686074255029656902541083803681527531600081983631369154745414640417072721899297964068228210024206853867856661814241091743731952681145704020483978556677633397639253512258213417086695251677020747748606203728449341816591010238137190814726653140225658510267869397201807034124642713274583276002723313976655885399956611060003789733969613080696903674162050556902529104128702559043644739919911072335036520161400159876767214556788523360403783244375251957010960914112678082090984912471800307431385272080798805941511415177480237279104298152893634873282704792364652562934333041142743221239355710810321790522119173138649586884549475954235519019025639997421549783571397308791896412806205849573869455252640167689692269207277671743743180262939717875872861761774216836075582280297548274930697760436665287513238895542799661887243251156146969876179624258442661433043836826350254916840419210799395036701112928331606636062572365395182834011214202955604852209319509757567854083036110164395242926374601667928934402968425684908669691737197900301045491951500279382398019656345986746647165327454922305391747853030543124382355300043976059176272646408285614832068681558695470988418163126884323973911953446814381468303688156131390765475956486270374520054855603120964589846194016920338273395411434059929868141555159184739988104380581419316727052822945046643337394976443819871906458950608695479460251492192039500280144611225675977015457568938376040527653877885225772281757603368072558814363897044593440516745933961027516214129915497309442393780475211615413261034203427179825488660731780417752644349248913671718093366067494637055459414601329562538793287871639546867616131435391272906812891576784576365631080707945372862555565579093107447192430304115583750109900513443324826275148028066706856005075865245966878507121395448555201950858400002011790014334180152987757872749050151835905644519243937148245687623974095816791161349452771445358430609282806100047824652780284505288293892571093576831325635757476594551907509913295768739733410614424851949205153504212691158292487752002576510550602852911261089685318519409575359136760564312793941420982805975651595372495721202670924927017087192960568753383693624543894671093351972389755570056797320085526890781864644782706800104599100181613979093203727255539023092455103766931108519707889337498349747814751982279127229726830032938804553791815839074170993082170535927219042559666930492535687351804303848213960940197185759891782661227681507043235625370505049164428368000844891336269042960086901845390995682880212468262020307069497348351373887601427121672496998467854135401327023604956718815883633322399959319966463564937459685998498035354171655324452733783136068393773441444374769659332473667316611945337493261197338942816877694148082931761060129266031029178306151861818669812434081070216139774907502356493040907708842082845217319198318737930412501072562439110478795816720679567817873743209224717407582970672655404287878583224359007004917154106308836743010966464223390842006868015657143704796359223512901146603333137618480786023088400365214039636548842822369966003376690356477655984862605598845903290177548033831865474444681824028696518125323516058479727979167733951783970850661982325597654119794541626949505714682698299938827625988006806348979016594757788986847892908495961657635525757269052020388539993019669345712463440297665591077290932956973582007117813927900546819729932942999340295979956706691514020173009806661825426725891460894224576836813154906531684310858565132688050795193893942926702149683535057317988582099014642376050673008347602471772246984720845409217729491225118152691295681132826603233803411781448431845757978963970372756296615331355120179042756157667219587768760225589519168179195209864012916968431822114794106393145055264079729334621518571314788111908689429515186750470295806949262718941256714274394538571956509484816713188083617743694541095156142970709857990422058072529284590022433181952414041685038413527234780881437859735093499819225679743632789614047906182944464072559405327325254787164439191857052701993911890100181675404720008600132955569625574051117421098064718344948788990245310729264275609618711330143693888965467947707177992836001077395188023834295750617710251532961383479336160402178899111167281613605581391121263420100088667302973388299109771120600197934405937351458911792226004648874094223503406073754683927848463561246497122670734574776911115171365196226612446473293104288543777515811487904194240788089956772286001543782885060022438223223630561487720766008365601922798558136982562779015137906326231397442648332011498566806578283386293650869850160216499484479298547806556390454649148299402141986524867905728897673813786600854112021144946835506129128846650858732312528995489956018863529634385439926283956064007878058292477085163070948521974884208590873787849159841484459238239561686765655420025141345089808322613244716131349587573540430309128310803018917024517997223600456292380520954034378321116171976016242974232004550671416589900051447894501524898159549548208530440381664975304093547682846845149069772237583765694095907691145924846747100418864784914842430363148015392934802913173354036089220484751975558429442932255758116893419378865380051284412201610218069212938518447618610146357910636806447183472834870311695501616035435815062289998181704951142238980743989886387653900094342509418140722318517582431796971744033932092646767997177675144372970046614078528806395429776759581057408992533488648281571771810888815691028981121731819062996245834909745926737112840697108545160771815763273013703027956538061659109162138513296761449861539103010821736828686444148517384441226171260553768943268331203248789406648783280411039096632631484398805723673047984078511682918538515990557930371079679718235899430593934830808383807529558916925769767742644997443427619366597103182292336517434055402209785287347189178498602515349292746872849439121245400044584594863974898399988855684770977362185753432524742748993822004945655288224411855583958961700223813516264601600099789448529511925239563295075964181182868179313598076428243261721623826658871475515296289215736068246458535370048865782931620712080854482979596256498916449422389762896073601645248508072967289599642432762041326297804670824928903456605944718531111521934254066549183205410504139636884947639254118453962817573267305560535251067894923064020913699898681245187868430845236895162942259715414171736849500031859615660629121524716061211030784233230916949727033196560070231498467368807339341483276505297802573788949819176034695568505548663350692348248626777674831226878256982438522382354494443746731360728049421668613231431781369813079755991751452348440586696051007904198286378858997544507025349042294187378879686394512000899664871894954717334945617601637695141751390003564843452597048687608924817655174662604083401836039661358052071305827692671466775639364241804818970402047396593558608273232278436215748827387480962581508385680050888873441604879725470877243884282797984061641921730468557055944724502024834333338320756255428475507728310938587576499885442507491108262298500273039945820525279108145972463456430779089556028592302278731569969559568676749207615548323597693369225842441905743829124117600738480934149675410647790096281686403082451171110956934594065715174283424010825987604040994529740750237163347039616842325450295494496255659695445881455978486040370795241450494059070324476750021632173536765208404754748160978598363245618493930733430668310438820751309618202301722969781901233713803785087787252765867213457985431070485109332918375869808257805458125357366947265074372998060789749315190376775826323448695255547011918405098154739098031190858389735730609023412173311223491485847737324350458680510242759577398255863070285858391513170510164700659022069280632227623130775447660881220627813186488192471824436006973638334272924317999822793433858290786693061373362661222304986536038879353855080873229471776480427165645285081120501054097040050824914135158110311303182386212645348118603234210328249308768031306136667191165369027382924275616493617926765359567340185074519305240495101603455453741235190831229293643906193661637894960245378034932311713394265818433098180111600974273253648782935216024575206427169437716279122746866373745725753677859469622456626566427163618792037074121148209457511370226360904373142822418454214563255006994716084589390408539227537361911445588193783357791890903338967998697112044534933213157968684219980771240149151391312476619481203339948823804089980509482911554568085947506115579391222008537129787672116881597968927664720103717028392132713836416224513181012140989238701328550427875041906995941413514991428368065046940319665124567284099574123733018109554919263902490640292211048353472956833987165328478612164536064215928619863756246864802800372507770210041355082770271892858328954840759316937961103120184518893282469914303056292618147774607663049517891068508853267878717074837773147635824531462867176304816690859244175236389049617442560815211775264827433656572282848647772271354312268270341474372139646131907162952299728835265756780115411723259816506203087895938740301948136376129570754589954986595519240925421320796058688627693800729705313180791124611801251405824067673801317389965021795470630146678987805058331166489179487707653971843511396194661506043833666124050540462993496528560478436052851657259104415668049566885213774153811665169110238130226370898465759504123622705395005058731754021161298105585876162270826782721828917260296547886630200550380109530801207274031899152360872134375934491677697958321631021207901809259846991591627810532062222624006961207965119042470502796255614411589409820393364216672431655308585013600241183130927741289595325927193521801623552545648469195360539051032964090950364771546104157462379047902386282614793805239563672643855709465317785115954131763658225173723914811374353854523303116173164009781149502967872219697356353195258698741736972445354872906200947950289185531401743904353246981303837246779975003636295534876041907116504953333128881782914255513750526579797741100867876352480977776416269044143620562420830177535382223282484316715769454777220638535276243825735684046330483173370209138847080639061878346940812657345609592787072805697146832480293623883814227477198701855944099201020747460511556114020631018798114238195052555303722861722490067473365952255808521389294757793875474220130558071235008015829296191462733429195248650049614410313880613507977391068613052227168164989695845285017884912384733146760908180872658523005982283342906274807987745108540487733655018441554717578051524598326558083176383393844926428324040793518426346173452930505349390414648399710350121721081031448879189436434693448891959487176833201508114948135134789521984563454992685654601554294345701332396172740577157720157877764938973198118792312909473193677361880042862164910445030087044403143389114545998363537402221776381094096841210684699836718494053161869497942057116888053630203054712514997974610541449380048155936534172745613006782005598362717331392708882270400771759555126726206308562035072629636394707398174418252917405312987298445958687585799416451843645590177412047467092163491089406094312601583387594723260886803985446796089214631789071951365675429457564940278576658268211642559680060853908025152203212734032524400688416943178158234323575611240314087571626113512795750937376421037612147768591531021476796569790034440618514680160150562870305223472439016061348909154539699015088015902158361593204968728809234447161206843504102435182769220230887722137299685773827364083756428936756074828328367546018871556983238542481849039878027954111879234231520016962305340050633237374160903069947721225701078570296098111330873751522095830088289350732785289148923769614013669240595692863444263863406295357974946656177282393058883217801404783084657380489338921942523904258021135901726405990684602281871639901073725236984230308136022249239340570519105561061050698810299929528636073389625533940674986579792656155337570940449927244484039900562800682590033949672267314764672530977557416811027125757724450977243061333396327597111296015205114006631729624375858166948540383257080101310658575865787239216620997614953679559895944765531958004972243062936055800162843176807140443707616065115651533393130705709468696630473488066371347068639735781042649956987922400600386541415259663338619083399993444565469538239071350227296655869187049469811234811366202388801509411269269411555188898516378265571930267419672949727129778413322437178339911442134725245704930886225410057057739741865435984384749361434382415711047131974438170175174123723195905900677183845653228317036513658103651864782165129066342798170902269680055927738180478059492606615504122903846871342919177030361075754438816770005345642869146368918114237337241744356365019616742481601733950103250363734240445764229651267291634121511689837529159903780709824286093575613987971719591789464262726017323449954588254586074371500276271316765721871986430530868669632784768763916456708837041823056668486964721572769478788018293053714422661153901729853674583640545519218197789787531428559455168930977905164061376835060272366497255721817239828483559407260598830265333129862234200028855509706703103955884239457373251349616254858458182619335487442086337388579769265365389714748775195372504115144348044106296461219865504926562589930999320283093152191537210123746989125408841865370156098625987236085840815699742161754055013488785031756324276223199768460342450516357828877823331651010558479003349701885670165112161390135838673862781567698881883878165028000602088566295776715836540578366080593405631036694582221685884823455992242908298156105169375520172055740292892390617095403375964102423156705059813218303543419240153654618238050632587359874319956963826281366438535972548730415579808014617370479672910273632589592802515455987801697819335500146699026648861069876673970219041401666967836209317546108814729651368857981080468276991401454685708893584001481944314247383715544015265529930363790601092226464178489163017993531408307405195325728159689865089966444527419450290930363535999712035705190023370976331225633497573330845631287032829909273218495836693757980294966596549853967403715355300975819554028928045989392474687920438769426427051555901567694166123595323736124537459550936822549035767499845346583721485923726043185122251110183764834213525851817970356736116522688293004557401390670326557928131378455380368524185946611849985898465824973834756670360390745189694896213031547923752847161597696136267475170232097840070515740577440370261910020031879278151796888949875817541288398688314689921282118334278400684790301058698807265873461256625295242776126350688306748493534726541444464739060361364155722043580798632432687716103538825683150997277864846958967129282385290736307134970774671014621141485093472576887826782112317758852612705190322802872879895384306036684569072973543151832209177887675639260873637818684312667952260127810529590053268826440783013645844038187371328420993746679284301773409774250734121206224573757270731917317373371787692587501617366313990299079634365982677337121212984114549378505585211414348166673003948133057100532367256670891245094723129705757010529462600572255116672204679271166460733937536503902633116443105595135548264736661174435803631540635508553802407001419715984713525803959711258245070287456046630369462655325105049293131472795048922432787178866866856589208184691676134183481177853669918479803981431148986706239119976504565415844401046136114216587555317368387809944740307045754858718646089813172861837640158751246405193193041551693019722033037484135313228608637405433920747215728948926939267201805787350410150977683513837547761803884008560868360300368007437447518714055514817755183683053425709510172583719687629211203357895050915224272179017035679758227044802907160418018425061463301042446458067486009823620844125111259884548686927631413793461646797855831829807143402869570112715101892224076902796143103014029290921627258147482574271673063344487560245911278749698157152415412915726029858246479480915339680339604462489387173331420246772433093962335558650689785819990198424698130228539095138978920035889243274634804200839803558185640564709011963901598148424390741886729763625078731401803397728853248598876343056856399675296771407314462737942930455954726703829142780681741826225407559593596414684889514111109053753599627848775794828208779258234465642064254495260384990052710242560900311900510000543924487254459806903757161775630926767470078831293455092237161281773690024927301925364641831374988680831317160349085812152371241294288355212305730831833371426358830913299008283366933234879575255714769050478048199714120656175158639612019082471657788429171593039863510821268896954382522015273247778416030562518562546854773202331923921794533530089730956915304441311490253711546821480935214482371288380109052329025396971578551395847228016230277299669525530945422488632829668779300572314427769400188434129938463161917685166679347090659382454509171744948263560958277450808341942367527905768679325977247443625970171797459311805512964976350478299964795064965453824775857113286214446483371597930726830866542936562646341346562781224790599702088229102561695740586358056588812338368342765691798478121709693716342486481711443217659078492744339966118801801206273547095870001165335206446776765696181579966639171856510410198090019920532939841665774793631057206235121397379940531892944363009856773387665594887557328552926604325862076196103123276191917146269790778949820245411913316186582625860637460355271456287129988463103952578527938833937304019499591702804440446815382340514897298537666358478572409598653037437529214270354443340346433172022436758908141586762154509670128768030101286033809929447953808856960041561267992267191198109717212495243007844449081594844963925233401902294117772331371759156839517138635743381612987870831225378702437817601587622036868796553278031848382611093882060141435081501606241894939588571837402159870227454084005605799181517323151376421588441727001576003542834549605576672686941115938039607142098159941986220006633288181110707506369861269490885127421914889519483467741772547263471071698220803052235786958989941870064060438174491344098659057298815668748521274938821280987964719643731219122115075245939863865501153057357535881047869508275079652302349590472365259078955425654484506439710868252190109215904337452309182676609282686893663023376709685115141646941417234228706696083953965627108228268918551141446466596674630587218075550867171887063873614700255959143293077747328301348932027350345998701563144580066530659109403984908814171147188488978830380954706456000265049584310241532438041405765419115875821328034084835448914541666633740235298107211911998003928451265656505167486150986696350774457598025929472516648179764175040695462853528246140107588586188350633391300479653522723883609090205165299144895562157671033292663288057555497608542943452973550294522263924597435058968444566258659575244952331894809547339168900277664261249339050861035572365838307066179369286342956981054748539821440778481330380784627124075783282304598319791224095528104401452646883950749992144054417661947899525961267581567626684387395040673344347572922627672046212275430498964910652867524964076461665792091009197420125708443508341076545667326296025393457914176393195865918533429033351778406199184748607596240712971371209688289261298561546587573293296789543194748330451893317958030894730450039580082623937681768748256596853347259631415047931789324922296470121846773562208565817252408364204424887196961847892741701697578443914332637543242225034762956766729368763057379033278746199790805296500207004014638835361765405550875970220969738761027866715704511060746409399340220539467198355702215697192449233786495898863136609527844602258848992279568954629671894671336233032921923142128570781122662143091622841390847631190939910760853396031060560989155061712682529072738157840214757157615558567920052344421227726476536873781519557279469097319834682787378209304054137587938527598010715608141825502609059726775236271922324828048755352780642185574442470116943000194644488256630647657141350401513951844770961048788108476902156151927178422331510423815345351159133119661842859397305227331064320803697006189101009191296235223532088682176324668365398562230440285370392129751481233877210314955883402701469639719891562901878172867882028525451861204113599754640056634098862779348472513960302181504833357699708610878358434415470968368952424809083103404869085173685883293894650063369876635332138823280590003822272301396500744260222965330036068520950214883322077997108744505960725232313541631566081535493467098462331399141221725181396272791405503357290803494542473321144239644044755169419574937749565000786218548964399614801183847412707222290170204639905856353080062540497217608268448496400695234152630509485174765845742613065490409786430305182566946736876620991356545417281041491817643942545876958637962880077868422206912586680313716537675297736422369429016244277406443618724731464736387599784239808278460802353730752937938177286209555661007120432990587327502141416689824962621355075688780579256424231644851527842396096699956676747362925149040233690658268226550840166604762944452445668562040280152367840248909201923716804155632684587280367092980023217620714530102229520864085538341854737861459066178626139081399140311535092636154009469563410931993672942143493973579795848821055550550742224176555784969089092422155705974721772136373208492754342904527775771410908547554361059744101086166884075376438261434926305100234956555656028998691878107770014746342485877985039725018368181171097884403012709775386695051341726445918312080316691361574688408006858937753816860880269804375635991086114980753050914435599835388332625993580265432107580184927975615447824814356716057970682549267031937241973747212150255956505699073757903450299439884381600407139788818646765559550321793305244319267030363587525328597093247544614882048267579037880683481318283171131891810966229692901531128416014223095824578514529102627498190103503890500052675215878922114243887228182591818894365683448297446240749962060989971343013518448814446778508184851956315145943424218212487147430334775631349696807991423690159125329648518612063557063518211279730566001704445929210564108254135545721533098892974680801091244683053276789037610622675547171214210222068245085867668584633069952581585724693691694376011378899256984670988050411335711710233605460348115783836227251646087317414640664348479210191316876188235321441481357683133489347296588873565065833855736767916985174875126728949175984239233663086953117727566259764972147507252062782608981881379837417126976935862247793497898902006132146477774060244153239727300946567854604329198218662532867048270655987370636405781885965937134948766447734217976970298039637140947857503073735648552424505747226564669488913724707791814873981741831687602964425967645507544968255766705689636169022336336831671441406761972747581348317354271917937109525932423002120974578142077814519332327754895824242167719801643601275357333635400951042592144428894531752293240848604826049085214532790436570866409219043226416831139683787791207898202484455245306060001788877079391600600787260524669923019406434993332737694863690195451031378127022712575187056380019751835056671769750973028239197303407252257445648819918010555763265491630994118220839867135081894134391121471761122031251920258479124940471380753252353599538344094873735615002958039419216511508541366220170943592846651132062800200649284127312098877273280048457630145480893547358086521157092693749817255174066533746671862360565516012829926835060801653094448707172341245322094476735815696068365338720332658301238109141292396283965186924372485293705071248814208974614570632611027706732810583843832596760410307323040126059527196374768314641269015976161833562607282732858163270222945544488463624689186236311984055887351600139853674972756785715325516669107382739315779243069400563189316987715879938674260697280735354899469927732502980463706496353800968810309127751326761984788702257496321192032512138500941925450247700741232129149989445178623100254231315465600294217180979912736251256254928377722055770991439223700485792821877317139027953404537463348470989192379805540571259915870565422584717337841608869617886795847166932872096311421998762307271708716064593643921951691921777773578525271140791379974078979185971961642937442238419955076849304596643629432323689149060492029261645039333492625850885085381493744934007718441477394150055209567541347302611262987466520533386638487724113867440747434240227948553403233763208519251729426521641215431953029787037680089460019322425833410250635535986359979193524213493257918483735477165544578178510355884866395405098744290043822346994718713559394410169846246840444259151269866257670795835744006602361443916146934499349435583653989732513785746870634487185198699450588899786769985754232267255088321154225313814798643662842359611448881048871830692024951023471555992363623163429501437630434414561121124715100360642478774746705237713408094502676733397660811103990897027600083202111844483028862388005674286010885177057476689559991986988702467898362855614794270294903960416446441340229601222554516984711261478881796006320762372231172012629846435948906309109607214681127098416101333823159541729833136214131173016995742985483073134870977318165499995657536811374198026771384622203559919124463610389312615929257097772719705613205203453767460362557367948020928250887319142190200379794335284006388925218111440784058617064631527108858682490503313272768593179411989321097705144312833121050108159057735791218984747567628363257177012769636858261196771361699566404607662395112337408036368351336962004343841130393473580847581064741209674605669765210463251873402974999633411952414395152190084975621297174517831104860626615301717721609409112954418910745500293624501967003384060629562148153953827997399486706110369878732659464697061785387348833671939687112187595953580934905612188182747042921191345366343679446379920784078474636402989081646056616561344046114446352004789034123912562601229609045136988232296284330660806796781569663824418808628265902029371467204486598081515268818170517758970661734085182545650296738996622067502659618625456074642051382436706677164355786003612890085187392724728027254357017783776162032281471105049629184306269842013760365467623723818876177867038363920953973515316346802997891904833358840410743961925629282713679672284639331739161529220058691767290934502350146508041611456607984973537876226613287591724756719395205674442239001492595439738707335492344621147625186616662618153114209321931914324657338153068896612410767932325747712332977130482068795295087703867998270963449501343629233162700666988074531557108827502382414919072919471212432212708178339288854082144425795355196737137860755309128407111505897375606543123388216797941783775960129755308806104758690509732214228719515166606705618807153500834057842894784257242921065259819351726790907400043178300914424253982339269614188770985904313338165624562045859690262071365783856985998675868861657201778954552351649423274364533714999363667140799962007829256560767329118523282123571906120479488390758121608660621713695836403803713446231692116901636308647661932154223974158338782609678398423630221806804267986023415438177299960770121569888540482343006332030984468737260048478815311925168682812447913786348577183591031967836028255172731210165150630216776188896630746386797825900447711621977154508567818836982717079641088338438432790949374325225923603189605048550999053142120269513532997522635063145710053843085596457874746910886975092194807958662004596840651741635050096693207239682692955661946988729065795649540412744802664855723877168854471627469310235476901803194696797149541942504262418527732785217241517187880449463273853560354956634578121133281671873051812213181853275077202843137714179963281798745854123854568444210568420348851148083469042109082231656849365955510098091102326501074664675373827268791041005573323899257640971534420998163357866459308116947421516162341569703745050294605445352172268526891512444798623847513737499486446022891431628102586214198443405423412306647212017992848979447607096273022581716068455121716148355998604173838985566631481129258051298846482712790930161173138326971494364101321613282207013327544576108612682119063258215862348908711623371086348532069113886788460964953979784268728387811514860511541702340153630814558293732913945773666243345364156833053247329737720464532282705362311057769585730469397860431261222897475654411437161886166769283512707990326108736103297977008042718289685655400338805481478214152389189128475803795061743693819184141566700790267109027797781215585716275067916503362096165943542606375561158109425594831698321494030015181970600518216387946841939059122965176944409038215839928373519651157575117740561770792772107320307939703484897359544215017938596659859293306577671283230246332074421911819001628771947108591255103968044401151772492959140674105044821867298658231999114690729276821134474589808049989234837902615925864515244908195042206683376759274182519827101545537403929589009085839704116288122590992387172157234353967066811191346426173002921750772382450835383420928704285235208766554691127582883676302873814570028076988315391383192081741737548653011417687294074324055288032308715492722312185988250116807162804718726315404031364641136559308810079862049420498839042015636517996242239365951498765412845356451104025445475503284871125839066808225629700974373796464265172391672227147717400521357736351859484941017220536607065688966839201887187516471817371544316090739828575682995838849929731273507301788403568304658107767871473797680342327766943380566159906769786425238612859153267109291573681251031685208315175960932339790978842099152608271263349105723816949705541277751185289773642808523003247734323862294340414299800091069474954694572169259679356106905014388461712013806701248786791362474769331675651074664100775278727576193320934111002709834203777703794702399130864858538425790533316237292543618311707183703677924651143023087496274185451748013404211830151205299785670720947810816006495613944388170814892444643479064481740807508719839262322919944897455402800542530735315214827125388560287933758955397639048777322346907579052066413896877550209918331698631633045168213575539395686103504347337682083716322859730243605494564944830304779430116609237544400776765538706388328949222109374791286998149605816790339584873508806500283608164177618046908807353545545060371116819811969638695936989255943055526456856173795748161358081830476472228876419226612444138727774069504594718378289629227036096330999564341051505316584336981651605612953578208817323253581947322560932738832477835904790084696667249971659301853092510681395408140538460071457775582638252080651969508276286175563969787795045431966827737284026868500103050582314650085816431032837864572770375288901062819999051887263851741754154669325885937363290813806663137968426612366378223548609700259406266279936766608938144582940361299367431822123837629839495437776671177446192167134063011485527833585526435097639152251344979813787400388642829918944694541079645038544054528948300256165734180877213764565459447652725001262303007406579377234108188873438740311631937565706764030495031256805265643488463781249019441473625000243871092339433258973312518148462218472675669760247164720113310188886628243874206356740176315084290482881707699805854782307950292467275892228881656860852910064432872587654445246036718099110034755185799567543332505896061484980790668707804226882344482342635900661307690945876593954927248456172348690722569696912576003631425441996527566172271482803032600810037196329878958234077271544311258135515806199812063080806832572389275358265818123318699475276620413576170247806850729060292631523599346209396756977011514189100946585272452932863706363473538086100166774291029117264504354366241276131446583155949755584220779784056568403389321541682440062715956481580802396204945183286842613250774981726022355989760736177605610672056613800369659804513036508430034826448322512139140107577226458500978748447558473004434979438498723638090903052228428351023039375912921749471992103274602300615403233600969547141707457948407891182389242048021507126958331802338403788263127315702529219889385265256263631890370928106353037564365866026723793684827522605692277536328592017993245068654159606669178246250044261269303750629916521475911372297486380499465224129953332856892148544824873705414659300051876670867290110692766231862183289855600493512001957278406109983192227268454021692084227048262123135380113955687902753022977139820651038907697415559929824211204305249386433757529229548074990240904774941001025686515554665376179755405460493644056142736922391126018499532651166966983829410345742891379311199983162781193751677090247915092352642747230520045412086774047706807436810375611822171323098045497035718771912232398109390481319942144492332444620462770999094821774268690556649253585639634206377186236533269177461606996990971240749273329926761511802288040613892691019907831543578128900579907690809326078976793065189478368185768542182049126031420420105037804354608698506654529583415421651849089015154804254080334402893049684996423788874060239449153763737666485327760618628906180634726830907662821335291700729194342923645137980540738390131508460775363806036249941863519138965035230144750685766860938021225268966849493544165504309854149102279976829031549394068988765119790010875065934062643925990058772518888958872058919972772756448524178682683446654492375739850279338544877414147889272703945035351993921354726573795233184292487926797432214114157413661790778276816459624113206942802776835366281136607170557486483222333243501419754409532198330718518621798614043815540781593018659625358379531406123172016437283437276619059549498536548567571322945578093322151832436203081155717588706704496189590942680394866351369787410005745973523541784657018458023790907856060670794148482640899978559552705828651458828524237916787340701970845148064809814423896031742569141488911618665622793007842928929682954552412755257277290040766973382181949387769363240206820941854906609862129361227014795841219489578603243803603041891046826689226142436584936131974317851254485371451823550456018433712105363349871003388064305639971061616314083340015663089738373159057091961289019312278709895377200319965369758360411616936950460205510165544180210084178692391785912660468170982681201758517105112959287902664370394766682436503651734568927768925749757104128448385686534562974697703618816259861941995351951281071119120927756943092070369267372042238331456220944187126468208968372554354438177231080413370403725976705699599066351017203524962504150892226967571213786750256120869511145599785817521969273177326891579806255344630417861322504255531860794629476337327767890355350100958706341621689448376821941684544608689631959606845567018630378530852098351946031505800493213488519277122789211941371480802157787878834321894125427350383830764676310383527976497175345874554363524515272382886360156760460322565576213222571919112763649923500092012958852553761719499368389875861447693976714694993707530085290255238169900510463693922993589408717471125553231488843016169137316821318181786878598242989408289701347383487999841646356468788032099815847067365025606880515705676180582483914829934153057094390459698487904845473448717166829889617957387137859492734057964545159935360142267230124634947146959953436624029190913755393754209591499601194746609455876600591411726631642636306655963381528647667828892964329200042008764986063471849831850003263545287577627415055442895433781547242905796628140314733795495403807018688299144758799171258039309506434426500250965635930484442998298157778224051324856905349993596692272355202853334615259623069443749860448316363617572884965161585035673386951888116422131279691429761037620182172447541489312770698693242764154675645096707517515503263674552244246151838149325726134597996659809113880377128410658396208850754416347138120430979464662567793541577505089023881171313912171172672534827704253886417667643543173935235111415205441840266991444216685640136715621221880868449749283084266927608719035899855127564232237281956087623990260841278098178184856473563247482026454105184870346557913335355444442077147883611472419944096378607551884089499243039087730160818605521168687093808447661334296691398925609890408140809506482915999977908710746574747894323713928942157412866214171789363538279460274474221437949059058125308539461973179045689057861609051265170517454751388479584516175605580380213187311174181402599252493021646660845382251723498927886808209388386950654657321686580514909570094916795559086833653584585452351515132824967004986793019041365839298477962866075482957123655494352790339060161564177036235046313352680767941812923833611712110143616904123721446089453891848274799148993386437078309609545011390560259816185391027294532717227260637983792283332601179692040215955142412497697144177217288979106427988358451107371999045435407556929358545606253454167103271503410742628435547765841330596752582938898759948646476775867745332666056319273626206969890527371065378460516456480207231929057367929402914522816820543787601518535552207016662231024085692483040609657332041802423922619223948929873244214213301420583981398724865197356430204307865763134137797345432714063580780884687445261182167721733456066483602402927616256113135948427617765337386111494057071418733795238354609872976404874399156955262909546234466650436808047734685194018397823590711439339783938321980885169611270613465847125988832640579169143696914040021681624362410240593773771505468415578239551495337056745544529803502086858348327171024566718799325294802740567577186977664152477877868464718606291578200727608361718371652963909634551601346591342049227997568979072489934739829524626205599524146767368494119900320528418930977882698581376033140917933928283343309638641441913014193237375989180999123430970890960542338936379135757537381178868157145731332308939398084804836562713279353946955116924638928899833191921550228400002365110118160814255445690786495687261932211359432534498173818673358654289985717077022754669535821481650421728638658511423636387831073486162589849363413588833092287726373350331006548474803079915956858765592835986590431870392660516931636211629268798008526289384368522017116870505655768250278355989942059911914742439757135517964703819418298303833659367992452989400240675011662627288012403272981273079832271670728981896605252995703251650610827879515998675431603076357854777390393764862526559456196156594314795563275123829122945428751969866624387030360856912998063007425017863043198332061739608109918502298500143276204375172084665120999681652416299280026593379093284039866346577292960372392486545854707771003452385651558303037680927266246540360580217009035285171299285376183319966091749159844468351630560492518928907544526549751645652866452016495223175624626224095407272961351217041531333421468343270897778142721880789117770606207812091445793749124881879504949487397875273281976073432495398434496455217883651061902581756479970290618254361926185833185523057908536155308313645519271725979009671578740806230402929513121938075607729156557363224289035241181508913457544925205948609699380971954972809874123257003286417692485045417661349287034276148304146762588179173355342620747164935213956011208520883092141643495167416563725831418972028858171214552105785708709182310280592355292490960963861021139360012903085714982657573235086824500803874855956360467768944670910957566977825936983717409140599004024480190634868398980118728625196226275862562313668792170211514263449312159547751461483074203902060755096943231098602004067659514085973994312981338253115194651845529055578872576731432726233553629478529420436904929103752322999896726845723071291869088173988653616829902009057905407272560795481330378289910948814982633863776042165755308540681159382918476113317652672442947032697139981539297929177761667658714275003871587188521924789546760882297388102688016738120017774759992807199750122825625659733264107993241697858918414135705695789333376441649768335272811217431265398518178824469174861699105309009133960812266769485691280889141975766179088140690858807148405471761058137382944870581259465229605519141744626866512057528610628412558151526030024262718837754298998289032567179609637249580241858195212922532297289014868276016545359757770911771521453117374130479708350211006538856639167810067957688196518219008752879560274173289098284620592250856334284320763972044738497917595595952871875206979680628995929810769033781756332563377352059642924573686489649329957051663795509230727811502353119947043233404601610572715373996612387391113205923448114383807584433162044027942530169136977298408954001730552276982475705666349168755474317194276418637539848298969165764593338855644388617120038091615818697715385048023808757508793118808286410343639757751512763051406933812669295435250651199971244999147911318096487250604528996475873607746650251414135370723749484834582170459023932921787460873691475380382614457219768542723412980596586236044419316663447388546609803429978589705662261899837145024145933612737252764805808797842232864545712629278847558441405431562798761674048944878595265243099566579063502676749318898800876686265363923181754571937829751247952651349929706229143180669129808112833484248121624083304326192328971635675981157105181410466352296007479193110445039562414033972846099549239726048582939826842539527996522945339366959531656627667376628948157861036150961038180963032388999835078883411687023982268251672212767972984879335546373845104384011015829272676650508886103436633504072043413771819857786876574633433647026108083914816683427550523652055053305932013934471580250299031269124849365336664102912654346316275406865178731648797853280906285115801927817584703705571669251702613452305677912372703256069383022683468731970712680743825302828625807932543397777021322649827672828205001227543677058131424735078482904471486125840049672673049875701862058881923809450083552171456257519442922909237483175924254602658827170561901402508345608670294582891782383992028719164699954650898661317330160938448571298947527684609561823619827699496916821511985569727186359543381437152892131199839245649695291735095608461454787278513434966042420731259570769682108634365958923281976179904209317138097768271811704701995977658374699381762388775835945352577039156342867368053028218814061723686918673177733479075742029392388922849369211653694934194891703364969484104462112489992280756386499181164689825274928929009929446014557574026074547889008436708174446153962116198235209450704360801283544284497949422781676005018139215507104859269222230721035315332473959129435709732744038010274195759779540362221757564911353408917501720049512149853217196533648057775162274270796886393806304556419599217906373493528887714390104196332692563719910037563906088155000033811876899203269189555915268283598877104059771964104211509864277950733429967245858975299832401669390705795389275959260634210454585277502547691766696501594607295893746416868147939711092356773801236843730363146977282571349121952725447635050366479939553158435019989040629551404240982544477969144409518133248866976340317911900945802512571887686343429275974951921006428506761307801095659832647339637095265445828694910450440988726534156129462032006727572374299846062918909416989517253211502726778601216090839864696639240185622299084629316652468438619061688209201564056835282889388567284186677017116247612532761147215861852996164029500344576984393986282360928814669459216461037226748370156037156595558148407073421643984255144707467646804470999504040465864257110916404180971214327485810203233180156007244138605608788407471241487604148716228795663892218998746655831154794026393993938945389211819330802057329888764467073497579277299256998122590906875463804519195953177593551918170800638983567132172763177904039525272712543876163567735674942552750307272529911029616180014751120747032709943217411786478676176048904834695662191670355007188241397086013775141093008475286698223705577248896582422636760250876844000838636868830594963226938399548447891453692110829885562930046814816279561318477834433988636415741924179328322905078600000027930689051793619984083090748282834826354869791502655027659785935006892337836387904155791943728137482489677715989738218298348744380347381366892630794042895448644934295901784987739342276593511833289246005310372199518871958626588633458395809232033683910138426518419688104198196419251465822034389933615337725584203786255229733909580198287470719677275177190018189259640963438158064338643128266801870265793997654044578171630980924403554087363842957291413165772889821251672199423789310907945642329254063523220283732359564236004036878819296640681562957682327297992856164732021960626897955174044324038751059819642573756529479457446340012015244894860147787069814273863100488971064046781585765732797258027304409388854521444362219487161358365682366739166602188047105213838797164977898824144828784587020467772718627507670280418739078789760760978155756074349875974165260584905305667092568360236248921852707190880587561375857330291991720947027321032157863895826489644787389473386153479119789318328504349169846309074337951813225628371543425028407607971521938640605795450104033832109727374283494355625814072150400243945807273274478602932198697195589374364638237959021865781691609333564856606711259742974101995703023744161742511079659944687520179206322424105246269090055782723042295495197753717337594750594452875450574430686889056945071200144830048726607613154687497070246626678169971822060548786932698200389412421861352225594586512185062968440389441438714334453886380653715433373012970812413890291343955231376545621790764736782739674534257166567110605730450507137292730619970702062714392433179202732679368624313573236270886471547503420698503046103815899309740732939633797725689583130989114588957362575577283593859364709507146176608939430580739558265647017100970491076247770116188491139475319513696806140534689519994072974954583205103341508217563368080749013390243354459980832775617117903338089648375039643856777359935816388290693634297924114686132330831437842728120129771101735638794792648670773572973390787062649865432518700494843210218430362479610158160324129452946480036253283902511268619737541143689723386199137446237961776881415931966905285646122984051433255647691070377744693032223939350963998397446490000524055248013648429637045507555887949677530353781453779187424543047110236377177170222466274943662177372801069716003578000848642382396702783796896146434386278178969417983332062774441582997297611808982952076722760600696742216353079049055294579882812507141490717618041188361125511644340856579975780842401738272356150539850308109638154360181814930473942972578159822601030693618239659655158373709287042297141403104861752599272228822202152056110180424012001436057340349454596629533867553955056168346721736761885051617092432608664367259630574091270257742219303914779031465733930365719760924668333030477374071051702926192465584487584280587052967205981876515281201636295257778812733925027181266419728447077596761224419202508741031467708766751439535824360725134853983626492529732266086602961780837455322573812575142622051779735837568896097884677237255411022607343294900108587030215654366048387632897581986656894350318697186604163182550572994737695255451233325777792192696657091676717194539925944091692997573945057824472990360165784906742038731744199440172422210685584886244286378337135440638000545538950920960479595698570268795600389354333087668801466345730659119050685505269216238450710907626286069448253083092599258273348565016913566401222939577095939824128204670000937096020451449522405463837377391225285858011933295340972809178605206321922985375164532826725654119760666012749703787991939639114878242229153978139975369156705504635826276051644729617556093279346954190673696708275165461694989652241432490101524713267759209622280855690293834696152959569920624264291606592637664017015033143341637184983253646819880078619931004627962704126469843060671289433823787674615959038806169972890041838424715754695143365649018352507897192721031907481427847074590122783272712418977834374182921880260458833508218049519045195023381227591656184778069521073000102167312511102229538949135029817741492446560287750071209989171907103004871976276427472753184396438269273468772901160868740650333337918741771926144164572027198466427095798628909130097411177528524451580916323767361271419863934242150621644565949532161822024124898772674441772637573411615897343884933736882257675975733072230150532733860302444993965194028888513881749359111186042910743001113947188240692158700929910462543313215641093612587795350289945498462547949559117216589901713589724054917001172346060354524635271522957683710980009014303101793372294120106726949887145024141797975756283789441447544845866516028462347697046769375463970076652966406987364055584161014282298193203736007766513441779826317395794534911142506989588022109178293516546361596009006609032636462130958380359938624941337961149997954977478051986030994540125003989976796285526788415265083727621713272015343452156581828438097240151001505023345639628013134684013965780363234062658381344627202228625024599186653903049438615067069253676084434697529049476312681021063931848384383338331479323682384739352662997747736756305723356394400461450962886933519391190310042070789838256905580743605310945022055349169664017787349367171687919355977393215823429034545290579872156712572872068875541523000831446396249703245504571329674143737304873830888784332029397576436161732145926444650375060589880057918221769844879339748979394579298326648727189559933517374969831568029750025395128190366365032629180441098238284826012394812674419521953535400526860288164783287096398954632779232960275849800795388844562418899565175829643636935150484518258039409115804904508454915667664963058747278777639641412573388907390156043814428035852947616789860366592460321634066208604363900169188764401457023900008310494857092899648514194195515625364116349237239210896463335279942676887726358611861836290969028291678852654793952277734122789467635330038943211266002750326698117898171624633792513916360936291211940772861746735932785037230660977810736682812170678795075736801042790656558736845210945093349263416581022411712783767973943080852711091801248793984831853634441494220843905774070720209839033392343927020846730304107328188107501456236101427810643138408448881280912677553640653765606255583345877524149687065795108183569927863546917685308327864183424424479944463163813553083309135561101159289411436227333236883471253694149767919730276900778323677601822135495981674409483890483651638508820972256598581357405974434660264191066512682427627507814798061192660818697374999822552044405242894018311651294222919792627648255454513976546793858158707714038401253161765049542220904351898046487965727634861303561634398616002114773949099625733106432348242444399005279448611767756451284685499494255439817534665197953335885867785827472573263599719157095912026243414004521197289127371877254645563330559123046595057085508966225458059043915799582881335105469585701888486139994368174172433358058119247914041972758918393420865452893811063394201960078462082186148870279602423769909726359156773159877845444643085884757242780233793976101870859004977060007482627612664421783979553525616937459208559276969555305834202883757052672121964595139752943466672296357526548004172197471455033294606157115937419325071390672455901557613754515702044939325675880585434494249975258058467671395460273059095078865168282529608711193950937150501001315191903696215329919935798146648013310619963327087190055792533304596880675700558172367928357247642907318346158833470599795274933919604610160622857484815687894941435790216965208823273480110560392194923340605774954959912347428826361971044601252752506146663058625334923626632067987504147412440436245416451600213763665122973950492321466295040019108094447412721691782426962769428442992020288259119720948020189943177536196853918763123768935249864568320275731578167716658495670569932492343493837540052005665878325077023654033147990162038859919774742014869200235713838103384333417169154608785401467815744648089004522177206506708248190500083036640944447278913464079476436285236367939662103727429825920767641740118403998430129737390878698404549330419931603317107493975072135596253962704255502625759667758093442440128141946316498924090283984332771026604215010030540892318704260412296159681977952115432487044847278944014541057133173651614595332245451538953004205644028559241800709012996344946259504039743475037259742894737623063522875706455064817964907975223047119836934639595428940234942424003584640842779396943307376654009938739471343940912641448774507513945376285490258586989938623214183890195800833879451601734412463944345123664328285526280095261573714894586063712877328294717436140927458472221607326141807243731250349472265324723510864416847492131382052220306040331356361299849714123794401480078460086882879769358708690479019123274927126983365226358514938822224757888406819996714854187761165509398230036941645848524818011347695046942454405947590544519899068061061760104803843490367659456675704629319672384800594133814803376081858425590056687528744941922765788139290153283604640506109630744882033200212812777571948214862141749526767057051934809810748576872974975267925680599674899649623521242047249513541057331290488376300600294523519860649951503868016978207149161099063919994198252486802303821294099347215708793877342452927324098209104587690298272053385033871485881577939840944425118077264964828543121673250130159853111561891288379377661779725362174461025227073183451463259293771148760653160701937373879571443042580390273323767499600360962005786791941079700248937695458020442410329541659171304708287524742022698676108086191633678003359898684660222680480914637305078868253594480920562685017656078390235469142329710701325723969620767270124251994849748336143401331589084262941711631775026910870919277208323003386126509655964904381618000562872120253886726233387307284360748487431146645936473950580424444742956653525917427527235250216499807966733415403006906937560498571813001039412972641680108632794049747985057148377454344146320396793298481020912942074549993796399349939626031805578550122077254632269001471102776509145771390682180610765123241190138804467120612382586508044115934093658847773547168383374029340975799814052138347174306069869759625236291853927750222175462169977977659379319796960662941327134873664408700307980053688214654878040327593060698577989290874454891884742514025162998376469312220402746017974435326103624848593518714176307000451047906202817706110775590326191367655221052799281483832893595003772371413273830612786570034907335791708656508016276089091176814996680380348276452334053433641864974767889647430252436860822962602348293027188304873788007148701296112088254021345359163874682113344270867439767504043515482558483459410130231572302581917936637352709726495666033447032658128945289535909230235171783722959271746590190685071237350735933517074354064416590291160938661760726755200796494558692219532613650809847680491801132420356095330548988008835767230699292124803513038125173909408490904151126717275836021616941057519180368705538155028366583241451738819714182028837750428011549114767524848835347113871624667775440274706408024264370716747170574739566552481895151000795355294433831692322160283348321346196266617906955952232537318328558635998844406279640046192821484397937691885823407866667998346975609141104284361348613294870458724646244671431008453171172842476002040610483039929752357924073134926948451330419403490482232577070390351734036563975328536179290968682538282951761996558925871819764065485470995805859906460091899738820324008556024843381701345143663267218370294216971421524812725621079428346159540008774598324056890795048624794503930089777326142094105030918877874515255556159622933870346771051134379171498306105261288414769140145925698395060581003734258573402206973338333253305929974707675269459433173864225351438485020875561887499626813112911532508482536647900639058108105088501007121411249284949216972102015301794279874595657785801925272522768903929378817470356053185952597019425514565115085180737547261301919970633563991369584674171363522805734934601959670475575353629486578856067716366431738360685282614218903154131629086705590573553258708879877254130066926074259057373768738858816304665193934652368559290675645133646939602337501575174879477172288027846110673556038542436768983765405093962345337536579513807559103095141245011422283933239765146100213627011136541222789296872708775187469411217973373283926234754450567223103200711535119032776626685385243089193469907602490688189346386867484422705664030037987804935986345033947719817131418091214955467543075302338016503638174175537312255203530283590037557899538560780489181857115675274671779522915480219477393263999904128562028043055026001503856037263063261712390179160069309933025462358854720694628462737189642964940599632384073194272877163037853409529636968286190315401887275868873859625874964590271775902856691396320284890726183551861688858092257460080004870279443191508501959593070522821725679515894751198112156425202755393615143363845847540835723431018071663801173736380112433807167295265910873041502520453907444514077049269921157799920246948862976529420425851989316260936457261524685875064002131398325993558899498397349701395433859100390670384855460717296628351298683951713447628033050464343974949377499441783992096645364489352790241343059714251869780057316021410503645867669950690847061870614408133733381410965072782349552002774814323411554206930799394069563079986180029082238127767370659469904004055792156254305533386360751551869228226027126414701071400171628573055223942449275780719328880662720941687510332478608225698952482251736494422268984585829838856026665705418979448472062411819564640231999570813431565820677754795382050307772884073215280474986033469485283454935275875310229499107657852115298130210786584968348240310737873373947158823317078031687734807531340386644843365950740876901370400855063872166922640765955915457199440041502291254337212002518398433568134044303344755150046565407695595134890025543750190360278462010176224772894633588362161127685748231593842251932289381207399324309373033005690158888273991302243308241516318693270612912741247512188888314846079476041813116953839575239235679875252669621117356133305592709292532880965803859176708338100266850580279288449860872147061833643130138513423820851084352364270710154160329321287799719878461564421864336564198375025983383104714749559475478612923479658280512980693014789155194518541130746164583298044158633570080929136779619134980036499705332165405601229130720102894700373112429043161972702465780827791498161378725073029572325516933991832336631799643945738283262127011417956519813345450091275703251960335411967577263690785564959239337345971591537731675169544186694649965224462448252122431792239600766377503773877858869898985027009669322070549688974045567663910454023605633138814072527124372487728685749418324688820487962711526036436427390043581521482238488041079374872777213597294309717345185212601100903090495045148270615848036066040991987019993895068454667213000450575710751030761233211324240995859588029481475146844107170705126848290131029964643667707772513605746772449052951050491880551573186750716254820570639698453949902247335780923386850442121469346090384559316196459332054997266858901089051396800496768868689879130365015476435132476148515263367072519867970421465647998992142104718637412817694432294074151600982980898356580409343751804399048150854569987872904707343127582545184702315688666565287133703387469724942044905840677872139378745197618245631660375485411938972549534754757261025113319605774808418628647234548025252560912809947992000664731627312740227889787812844576762880135066298603232453112595989573971539198499959653699292171811210489244036368295050616443152209886484702942083792655480439806183956684400772633572891170222718562547772238603148897329657548798898993514728143803939473951748033137588465798412958542603144774133141295578597996765505217581047719417691519713722594264269585148892560308575591679529797940083536388779490757976765000006728806059738435799586065265140802277190379837705962555554198976733162947257338830423975248937587288215929628831864628974806283901053859732062487097944280224239162639550505364986954594970476851709672516599674352972597636530644734429398633846897627957391821740344285276513637679430977246017587101673713990307978217092248176041113775158232060686526583789010842047850394497164394068520639443456903580779946432091709992861375995245646060806594457881641319497906845769354424121219129548300464045455748249341798982767122628863659061699580933214125631620079890680195839574568549299941653893381400796406762844544019726537733162405596383658334888014987822819083073890725065155273464410837836401888172483780268963213274370849438121669788162851900256284230610501371823227105099887014522821217074578231244647506841198161094049799397020024730917793272575455428378213554636095497639053473891356805737881580829736673551730364391272268955935730113311045714589529933133280597789866571517207031129607340764196888247064525852816241380708459644177177769353464302791554857152413173959976860306855423882458502167161185179176455875862314723784080821010575903396355722682697559687018605161283452924246932652165242758502211469622685331010344585003712340577718401074287174400012362694888411604910856328974571541038891254441362224673191147871019280213655977027044398885072988244858901541582347190462680464520738025078314925021948911811667039766880167121908254028481622874543237033053571675938190052664995989093226300145501209635731341702374796521095451877488900732696998670944697063799376332312238440876866175350698105956355729247460893801442762291708975866364828052717439798212068449638083824112072039470425189981370475357918788615515402245146782014352699566448909663290942095813150905475787731603531413124466995180780235934877632060224382510476723881274156240651916783712228852171012935414356359677732373400704893129431848921518979150534837372995571763232901821687430133713747691013581661654545305503992956517399580554612472517922651859786578798707960604304872825844924300658451495696058992430444306061766342750126180372304101990326646984101452829808364466004074400926335062085212970406236051596489070629653388311897143344813095780771245858543368012784886403675746170203588560999333710855525856311091440966693252845452871183603033947397165255700284135171592364403716732165260612321652510481533742194657623071753437890249772519258212923269350367339438128107104387177881024342650035873407000263379083772174023367708129562447567331039489554827969164775875457746660736711715767992990314970151810242641505659447800952600573762104481087884743176389479366740402203535244190089545310128473025066178770698744327402051605694437576853700228244702930172278238807065638326480975447527588898626844443148947396409689760792838277469087020265773803799534379393554709648784259501473087056883837835257920472500112516146033169087140906199917309279367637383687534506283366353223602115214116901258817858090099311983090850555014368922923195496154102731160542563559226195302481933544913398148392337975274840050915707931222342127668396354552691943044661228308432951195659153702388521756518623629458672970387958690404991772942801960124877113144736606743134593097634611774111915181177764428965777724173289309827634741911336080843191633388109012514452943058003108348556220180351959261379209261338718249740469366178429792099139160736781386525751768040566210770384226682866502957670010650904343599793077690309752035013305849272226584281764977666588766065290182081952725347945501108573499797380700905101749697431027583524845605810013801783737349542964730850657538479557874337190610203457169971626967929694596761252323758315299103090305765029215758529778449484518054923162314905324601342959875497832433855732892321908127856685483317552142821675741669993897406864185881193068376656003448573683607013588613435355007985938159437619682410852489990992475463156747256192736350145421331513362695848850066241472720038653065846760074163835140112763486850517398855083635135280757393533296019871981594141413694399832454897620430687537179673435214270271887776311414244312333176844869215634264674667514121073650536269202528241409182576792447073927627289422759477977022383418706618463047301927026033720679975049167072270069940653392018948823663523716962652866045630307269792778811949778995109211437386619584986105144531282800003082110880925715011630699441902342402489068744217067331801654705625721955693815307078463756254578026038967422213230633146628194577724586349402736650448038372616549775222152868386201455930204022813359504607673022144811993940974349089560938891663839559819279465653428995777473101927609302401726542282851166145724664369444229384965025642507360758438202191984620292740927038527717321174798854424326080961456225354395061710709004924125520713498175139590026960981267389643668235458231024171998756326461582276303513108068375493241509026180065345032957735388661916360532060319451890182437010432452487100135648785691059363599894153822215612287623128534904575633650300716049186513824755824620783248271422625043885500447733643435328007301934014105217239269764903664082644510486340921061586056029922766316845017323706585367771432200539718581432354662045780248108161007997809481583484149322550110860547548472903515252623190406100630409209489720820806266712523647069318489203842543948781241077714323629738560211663049346481570860346336465842948280623228322662997645630681789787614039358397248685425719756009250174481634980862088352570153790022939512025784280071998252041662135933192076365352442932250566340109876592850580768803531715652290422305178118601239492028894962536248072661799222585037000295361642082665304671652204377308426122286145005384398310062646644296881538875690133168496134860873703107177078613631551650792686190665100285104983716614473988649557850671495569783914137455967060062378262216200472586439880840645236724037742328860461089346023036101097079804612514777400925783894415282233804044179677647651602421981863875078825815263203026944084651678579957723419791680608899040978547383230075348712202088500431413831357293274455241423933444861455002737112111400669115012650275995428071299146608102726902874183666497298880954972324441943352040245375965508675095975427917830869492386644184236251174637790651722328234284241880868315237773921158710267588097733981440934890196724401218854354245342573087330384633184055341998963728188537488826279141880254819749655741440365561022172106808189643852753062282458774658719849515766396119201088866028967117117242752046074313437791371981721211992759191541237667923774896424078107246088234978024238205861355123206881306006924938873710831173394619223393004818636189554701010402745048643982078106784490159340373691476922821372232475475862660501940953579195933746172873992233522405422408013760089145761684740622857701405845839783724555247438718004909829036805925027908924705008323728067411206226339395033503288412748255865322760006425742433848171439031474763157980418569228247429106227714967643514021013956898217248754311761159012048355423748872238372277468834049833381563406082440449921710176179919669506120139149814602776738568370462498968556148661836422448139772458483188136242289303451384156192099286747211287665455701802504086126435262857081906766119720301453416041115377529508612637845342404673402796384501436812250380935282671375224162921570599660303489356597965698647907804664685025197431160851690014521112594179007702056616769176011466202372827197266573660222349649444640383188614673689322174864278376020815649969470764389462031777304716210913496119425949088513110900068566221301320436803269221353960093737114883421405122374418254363325376947586293067242501979749179002028214847826438984381157986303913399550481492473838330008628641666740534402689060024570316752304695962413863807056809212861980844871652498898140057943841785398073856496133197295701299358319113818277682443917717353979337147217896807805096275130682800696430155575205102184635662477146386989884840462325055159583391906205673937985408002418452601914176673620200574147984597865268538078824533195039326865882244041962117038640431220044928042813034542240731351304509705814330292967519360652075207204152656059315680613014295116244753992984236252466739423949587564708134091391427781777346006999408488821288083680076599310998923042127198458909654676615606980141315625623849409059029091807766923229489980105121701568372089800118701517174878830923120008537716047713951841704114939666988113915011555367640230933692379501558180433794266517695838984031242226070781187028154341965799411309335774285070416742876038079594204057454884630242101379234895162740300165665059336355103049625979351049179549057245993760226603513389204258915654460954311885097536927000483084478783087171780982696939565010739106836650849036323008115408902032970854539168927003694601802257862902502099617224797941555710122100444047625366390242582980228300823037897671744400432732949950709793658160974982728877402127419226133895657920771804868011523444356081217186830679865440755274125911952745703730322572447723995410086266934982709521250616542085379212070172924171029014198515513425051076813306157787996105885583301684095019038464217014394888198209907765558278382835922227658355280453184359525328002747318562433651998291640666815510790629319165702223573271076037239810097941194427703003472734255734487413519321366418889138022624365142354701051998480703882863873545414334410135264345846398534343174308929068709924417071610486721833014834847031261003867138582990516546262064355161303429128343085120956791873366502440375416972374976595894460444960312581895270357753575023308427393188803694490976948039470187978873346454294783088220147136327368836156290410136560885553464526252994385543150724182619348909140109223057896262323575223061516884053278077846769788923274121394598977683750319158734739413438142039645774761730836260228593940475108957370560607979985152341054962243206871636489035257418250138734030012855178259274922374537810325498079192893500768202492151695144271883868869531975404532921652390688202721782951163905208888817977063508718437793578171925511270979636626447902545862231112244197659882334358236738399835329723634908424586791302384593980152353983768957697268325264201494500646021270688029215886355723028799775919868005311103764289263209223018570348235785131262121846374190728450122117035831740623578915780138339696500204830803966400075253149936869850127847820123977768707154956536473996872286122081743611109488763563727120705932872701095134003762186671649172925406652398627095597134699985683258227447437297118569018237111499435824235535231278910103211995732770847679045600035142541636625991833975114857258571813833850213748031489130715710211566750620391633054916576624662742455944122759482332801632204940406907595009758182339208904297762160409874377028908465589680124904285421484512496163893695684799957543522975409652520372395948192764017428081711884685270464940258465851483502046513548495246096364732056200450730216831302780230122373947758603887477118909896311755043447605348960994765453116792404581539016290493344028024800578615521925395575121634548199320857675872644410322578978517744608348132616018438612257330927712278130346978852170650539209132487470108728461967998772194147405399283712497360933958206747669603643404476835706394061686466526715717434879524055648948570664158848501237040602516064078359835914695534387748793272434052254775050071066701482727582542263851406141961184872578513995935113427247892300818883388884861259077549286210200886085454405677312221641491255150768423704342633312965016539806952504769373992437683605731758978504809647762675466256410700234257139207993826078254273650202812343969454963152210886851219077204000443123735701102501359225108866750709867906106208495374839671546655559366018208176818602474649340621332073422334465852976087299795756224954996463357137895008066653923491438196794705214962484368542204219200191680195389696555924249491248920658258691173095515324269316347219633323548817133138743723429376904376656557274102403408679407867287143749470313121187852764886043510651236284129376460951541500690678867516315813740372268908394707908515474846237079229486409353028320299345360826718584464553669114290800071195718223093392951018019214371886117295813086212115956647433762826523771326905425092524877248222664978223119108483056336954382926215140375721252794510661456992059721863293404211583549871771487340611494423103110036551470437597243898896157173850798046254410248477938208774140917919368548335667770480493657019760821188781367283816532655457157200910542431272878817949394727624786377450098775217853865073582731112798141039488559057011555162326046008073107783703860095585827296432147363499125246128350297837693465551737128850729665967508424166330569575362395391980549952365645089179308520117837287976685645400652816887892541417230673231323241138181354878585912760506139039424667338872864579932865575581706975131703634361373419706864383854980809376885514552234999733286745059654745035854651528989079572348383881877637870976306936833582581985403023162031446631871725569183698846080910546059330190645092013828939707241893041451057940883400908214149098752801719828116315645867479684319205233773818992759470024368777936380058776145269379755912437166150214247885217584873906993177955908910065862576547421916155676454082369460922138133203431036449732348861223938698764336928148387757481281073734971320304979554620714160535569035496591255233130856459349596559940799384232959760580671075994815594740912824691685258022452339925949888763026736273384754740650321097987924008726585764298248268872840397989271212925697605282778340701700880355800006254469218022026518334349810748272774640900510868154905261683334110918043939711798232917477618321012196397963521569843879880636282255426149621127072786272507929749701252967671554230372539688652698752610401782160701538178841823606348831159431223699210769767887816200914326258940805958994250064293263936214433379336064027068950637501861109964375337660706443642256273895687179764889315009094131476884053626105090766018288471653707454016047953019127382186345511600858790126035346786173924968342782771460386872014839068060472339638953547297035767097286702216088323771693514291533992114672158770118276215011305194993762828242564081443636282556754432752798280334202107844074914058557589091654249668144337393797262392189502810711386907098782805309640769768031967249963751697869568267387185455093880618822474050096252561551180153142118382543178543775658873884002048624031072524157436440713037426510271716144503864913187492500167102538697053751439309766897045848425410620200151320945697718665926632777918076045136425325310252982280121886158994314974624952838637864516367141242372856454579953381546145687752890344558834578026781715315328828784177906222250420464524664973089887237572215295187331164275532044881266214644869018495858499880531868137848297438824953279419226622595748070592737096256840850930544370624164573537311932374075288802509672558343231313606405035996893414992079661037785855869837039578962781006916083720691962307622614190875945383324759765666641695763374829591369464717860004259978506050077973028850814374935807580892499824529972534377786635409872111260802913331504542959528511753364846409100518535207762975958076770350060144975006580447340615431425163813728100704129879637401465381385681838347737697874796715617460619764363894532468644683564558447974005336824387510908457775017146686877377734337329269097910401404325161599233568514012161516407142169709559920553160154819992893858386945476899291213203657956133571935508635912860097170501721388087621947728558330009035632137101846689455043750664602599409411765588084237939187816485532747275507186435479029406003225447985715309909668009275738174213409459873587456771739488525498591340215472033622955898081131949080645111248493905435545947274395936340320530563338761388398175377156081687761926360193596804267689777706171100181489903706601995197581199134339476827228601896008622792672599172753954416942758247444992196797067840679714299185131139852606156009647098830474228534929630149009953585199409429107320651669795704722096974728792687395896922143121341584698824834269264521032991185357445984930665950325185261388531860600363086582499187010410585217839411036364197112493443349145204378152208010816256105119820883893161690918834899634123240605932161943048295810906552132131312292215171054058300530330640885360987562457791765250824576167131647618225036638533774609844879257237938948049208685650188338539417376390209372478609966063081869892255140628162089327900991250880757908879642101304703461383693260857656960050263254715091505755835903188969617929461703077142372037993650425383625421681555172952157887002730214133128137863888623814192689137402022516689621377684548685862691962578494871565451859866088862504674005779938077531283347907959673841202606354277799307076919469881667793420066438736034695095498352605529443881273707830909151534315691343853749387217720945055179143214392731314695631159818655306865666160855349508099613065483054184281353119164406736701715078714072138463462461363881430443710672337550707787929403560889813500293070613247155535197657292257766148445606563367793561585250694625611782491368892231932819307760804305419164922694227480048257840292888431587502020198593827487931105840994160422980258883406026543226653729851151010981459360820583680939322874955414539571155931202433252675982038395795112159868531427402547508841545877913303728059325319420500526055585743188290599724963979319664147113373322946217520978789243653011800920643333404493423090217253122337477910398516683104148362483549802516626423412375090900363238116791550894146659362100716015637372386869900896376237155817383927539000369396123991835586533718144214334277542551028964237921148684811489955487977602072388808578757520004688936098572450369768256187004721165999101301921124741824474105179442955556868471330155874764535820588145946783918443388659273286302663564843593875693285246354033807528661285509630868002328562021365641372613610718229964724475928873079336672639986847199416502678173037880601771034047773521593710626627496721728974005636699594945614985164211929747151306854435486741840525516505584991290308454517010032422040608515152190810524391803512076528768494708818200288488727972656603032336454306126660979109839867964832905342184288230937446718527426910532635755403144228456081071546684410953083896950054221006246413095681839283498136074512965832180064783098610902609782449196763098267172102080403701329939326419940823368570041097517466478494033349105448086206077007369781663091638145382358890193144487663124064687974055944363203023571779889269087039365967674127624647099488633892335681244558691116318083636680192682311401205605217366559552732185229768635966850478678008528387163517556255889570870135474583483517563292858596459599434746376640570407200722612460309121901120754478617583945710300721562382303695216624998045848973292408433478201905379112027214693515125928808149298327914221785125704701741942687386202412563156413112880407728193384697521343759463248385200306472572933431851505615865488336337775752666978440805324433570511296648988237110646032567832109686230423157738393615500836465684177506549177775899023713876902298424596519181512590043267621567647236349494022087394426955979908390445067382642055136016137873116560763516347577585559171320088378068006682046766956642760637841158183594672515048778699493184462948843984705522810317407625095974886571124902471950711149388721322991587935416788293204551306835061992321773164629406584947429955092756480054311542976442125232413062137688876461269727544171379868774052190797237893811043732460906874879402911615238852589319057204487254347314399441290656355818959745584109159326844905198621901352120653482310963777044708384008574600669523635683108627120279445247852195455066392796859492219344763257177774453045254572746215104931369377947424912310282100254716843786758934090731634915813606846555752827200538403213706022609095358065830314683738853058967776291280425932725274423406786230885922895848407676163537605252396603200836564519112420108520129213453347821441252547359156531151931126781086338022120404178554040869222166359815748174802063157193444566273194088279118405592589386519149054565394338193012734953309411572930374953175452706011921784572029081602975690701293558693358584753796064274754665505044329216745328350352837741097399475936917727113052532170565465921755046080890389131468390193502722135447533496632569003701580646945407109531054238807605184934297340674563860006848511571402464490505856664866640301603046735500085116710478263165487564106760304055213340219345875898554519024433686853611299659601605393363272505777500885067096220970919382918876737459982917682306741318084163663562927280855934768086906716610025468391750541969517554934567659694662753417586269106772983798376985388813213299325370366907104442895483457132194242905763156565104100623508646051416571355779894680645716882365067967246454862204296666174481831282623393848578343127577104624213169523535722484878199260840063038824739470031719762011624666379047623222655551873283631423044034857378318943853338146739705749380221318272396029087805524247856676277483226063724489104028554407637952381525070012838336829442273087491360265237661143303742160997338403245095738822919640131423403145793170800705504484027448173129586516997808556123050659965225714893642320834195208803900723178468568582094145181842051514423264297341589659401512102203665429280398387075117728183649186366292828163726814816831850283875847457787835799817350268209952492342344556351605361886740331831028040884748268520833750060670403127691012185820213240815424074998766734259018148884577168594198721438021832249081802821812588526465190260870293484903184210291910996089885809612320135273538168868017064915400233337275693549330649672114139101240662022865217150192061475798398480208490877291999871858521146616239219197952725831291521553747985546273709357332831422681024588962655760338567846459464592449606082218594019698791091583568206208766153966136702976151308349811501438673309702538064962753935327296325971990084541168713982610535737136353682211453345869519301937962646430596926906835991865766103706464433167187166555697608788046799455354972819605425404003032874972883918297857996296848158101372229586911629438350330426955747839082631941695555127044891327287326681621995275842646518421416952136715783337615231778349867170784796958421387756579183232643879847502829365236365668866823999281025873853271234406189369102156847967775912590729305916924818452436848761281478339690848905923148074343768897285487378190999602607629958980799470249953282898859961714418610355478183589599104341925574512536750781547002101487963613522742166833280914733290791434970600010948264523439408306260279183689109254652724797541398409860478689476092336614358608015681018404533576644283917661119823929607523685168133624227173986654714743143849882003764154680720431356214544303596349892541523829174502681563536537026340817625758901422569431818317998108495726936686051902955977155242984392676961133567679560067313118490413059006629967480237440794241423628206593911854519603333588430377277943234633813799912038331472981397737105557751943725918737488804044696969482056893520664688539893743348938298124333566344988189013706176758683389248377374602226536949394722298470997176070130207893368253807359257944155976278120849459495334265905992639797679271548890216267277201462466660456387878025845491730144893546487151878345663519295626863257404146191770245104704842480427924858313121921221616619102272169006704889599981481984158040565153460162362059818392273144909402321680397458030913986990974528231174041021327745163379416163276295751899974277582577679640098025195346880449020972001059553008822164878509706911953403695275800848737620236436088133627662361416309789338853313146108754962404793988174465635562858738661022294607614632740446792422405981264007143894762980411821844212039865040956365822224770481208090214897228828929767868266591916594463046760270312789259707328008111100856744828062930467695379993006958857952351029508231892307729745662074168338826005009434492793733481975426525743776647492959715092489508039282416344314053506247035416097403540214406630293122920694955798511941607462243327937213045982643516323804888600765710844515839428046826065172498257020162905083387637078853713738581294438028370402383900783496656606344357990293345002362266981167334284326431401191147264694811553117575958472478659596845323034587138248416100670042104153650721698185445922531837086171748306073309463557485230772270417826609559768773250934088603975441553533696844981713031722906332488469690356052264432418094513297387721146617856298848975923485861479312004966861111496697117831569186539454079407075958570244713465872729837298177341991319305295409764123991019413927041454746931367612705804028311942125989605782788947227600114909227789482182170306645280781962591443694461334563613004437371702875103057248471799911408714933381348654963851164675912889767132626416896303423719290063353849489481929338232824060240049156897942547821890686464486038906808287590575559323642654541894587091904216904753197873881797415526896005680408390544021958181029469265964463846988045533876374265287489585866094582369997129295565499665238904247377823743895636798359651050101732084003416517167084930310107251869620346587277723177995969700294454195937412799407929519570729123571037782634614439289472790389661029086958864912239935929930043360722140472507806729296154347297157700559578208529946937285752743818116760223029266229473345897368998048073470451227757051483622735969790149636359964357864517939290724766135199121797048045883499415946152074577324175650348429310122284709324292970773790043721627492189442769868312835792066126679262127932538361149498744587659181499908635324003144194145956822614972243402710691570767516614107906762405904185383522233677232671527036209277270904349287943753976931968348918964012607608257891513278604965707154324202564289715505224994845302892076330639388104959399686675873459278011165271558497571659573495565765868615494556168183417196325124672185850957951757394965339522117920899093600930268050160181749846697935102009245307973430642499040786803588744092736956114376623507659162549293572178685249669489214441454737308826184969717992348239491774912743883556470696000175813179233937372941007254272311896595539122353153465786260622710019600559822426829784658665955743560583939857044363368438112389312758638500587334930773732629017014978768192475930999207517522233591235118602353079696706863853663310532538579889273957169796154426409666025247838769478457391425746717025129447043264556224469579013727136616299322629272746696584729687704087893699352144495524571733550298632773972713304192540016942936002656352217194100880239749152145588017824059097453368146980059454655293429985369752980749938723033552364612868021263185749696797830712184355447391802855720322729973568866426290202197355568899173798084228290515400105956284505122912236131245560235227336830071195523468024407354821782221383260852284943379569668125026007758484306188839401466107432084135125241409420162022242070746609504719370878912762314285809204560657517528142562084936558647718746410673153146656746956972655981291689224000305857173103112786519612590546367958286827010295377493747729255389008240102326408158716822820336867015120527585405177824835574134008447932627923092090339956792880513638037174547898514027235808938297365690611462137711718579273580895055842495725913542801619076203615430397580822938755616911592181359833728455597044210133218045399604727603857628398701683843419000500314238080739382178431945557487388457061722328256029597575380952446029564333555895382335906868634120594861367723843073534968873634966786895991628034367724046671443031870695492929121030571544945414861598005362498691047297505424956916852093356532609007133663395671370506747779905517359216018651113181400442538346417015725541755297114498713519681619219685929873742232241098182810573900970805925973915454667166680392213071069243199061243437127842034202126379538440402177092754476495208661339804249653973618722811399539869416612785238675541301412314544022290002255131081102100841419187991442019280538440319873535814699861379774753068414914019913125870165256352412685234433763445851473386142647819711252992061217459992633424237552608407981223185408954244132060970575197286331150956636932068914224733484616212376149916807639305925733707584034122549535184020235649180714656400574617613165330151535523983809594957288331450389610142237905120456291008756303258966484771051988824932919264199870478550471438454273521920385301044585936868994069592954023428624725539011041938526240401527116561831462190313262912425118307084855176544593851786664518094551724022201285497889235058841256231660587295092899730445123822866498361450959214717213928721899626054756497407566886783194443600974672199007228443404725307064803304072958649060812839150698414035823565860643793647785627646470180719359589513941012961970634071722121801353943556637299073918057069363193590965481477221041853336522003514711287318439284059450964039199546222039593715408089177460472952737034996866471773012772238433676967672916590095898723470615405861340718445863404740257573174841107186207542449717044463006065615455783839359464732320710870528276578559350420400797087021535183164266619532717432624194336161534612882200524002728346857071813525353320442416795431579645398775435987254471723992535123381197359204906201339639953607707483502164045277214388229375358492662421392270020661802407162000559802745593943026124987954760883233941385967182954875321488675116034464792342989751818039926578838487840671890388259170856519715666252901770509297151975646733320850618252502363896912563181319681621179754316820090834290931804387568292886039181752456004555277644863069259205416620972468176700014918656069355700528812071234447944856174222212616715950064791873660227953878848733364216232779924412553505399743564547104598207595681642034889169074729446885517598056483550672202011865758182442883579648690211522052707549659743362888902036272057154510667679928180770092172932629128745815428712108246414725324004720494578624213376113167427242604598603161843578617508921121452213194278303766410312428393504602258449427425853731664616510001405721512257347825589993533032692705240739160710374567722261971015977958047610114568305716198087310138155846721903568439219150409006794896338314649057907984495784807915560648876337596330462208858536192818538195797875912739283407068394720684862848303834268416898356431658070477674825396487210680957222535733774763367035979068930848816422887480073440561708891648512636736423350002387252196713193788590249822070205831432165843896479444757542140056578787676382259336273087859397645050160518666883113343159368373980327805321182608588632775125327288359756688896241125374507680754176046027034445917415619240963328478140437217801650488471448543958790886306178835010139036821032550285811788174139904690983631694369510301799979453190990518643852985807502244163561253922672305404126595640301825549746622649871450969288014660478211824885426005051102531918826858221020024070079052422872225136913403689683475170388817546653138212512704798332787831326485725907117983975428306069087745645821067515291702957400099331560730950083592632774019060533255910232839819871570686343512175599185009308430829081968842640327149187729491261611753809651848454189973587465590810707386248912929692022184736827682740406211977955386844376175233934756177098347799282252468044318659080595774181849506360529971334670168130415937125894190664228790164168011411485366107458459815721626695318479444604876949402078467580293426121714441087097730528672061245480182384888861799025363486778125125556244280617688510502828482937438805066487415213309186956272007727290351012276440573130535685747066330079251498562216614085924767162901618058480385278872183687884044166713969400691565653516077248152224503180574352325871433509875839805831947654511386311440331757445215251854332256389978567757200343344615191618772387986740104664786723859077055753617205864764408158073515347599067464712131264332830126790417492819021079548854377330356759476717454046646361826247070918782542574835284731107533833747679353524318816327022967146542382440250355109747014260174919453277243933740544260722936894502351951701157087171950192943941668181366578469376300663478422978729767861571017188893827096964274829054440571145166237879736689865048747031432660376461172478122323400785562434407776412302317259113215092206408395850430101033910081465313327132573818174198741881551233383457362708831724196598852452098518311775785713261034440147446542387071928716405650347561273422554388768895865923449271022922846378914059918298812859692967670570508898802942063378792264214956052635815711872420266492006244494551936831252767904900961369015792501020741538153542582677451217538359256856619466127142129730088406712971072658040375985293693726023811466972256891607785955262215665522035487536315564088070409097788438565111204850890152348821328854422416055323991171158083718729854518834891640258206760235875996865539859038596825143769441953782938144863135398990745429590999186743624829352656002164000795791420853329539222883923420683302965749676989901490020189264373348642580745098993642237164020175580445972470571730769249464155176461963492758917732001786406541576763106699358675962797298394825405271092494746138805106677021990578193477890349034462577951162567628305762231842079928301317566334923554590680239422481306713828746842119233795046553134044565605754062766518261680662822844811775042759722509425648401691652344267449344180526419733822693839749521447810488069914137639975991963030168121379712127874115591735331960658007769544303793786506574637430245376678284937392132281532589824261212497083531306195408709322588596489309430826641258419391679075616787852682349986917044418587297899999449331745429268663208553521734696557304680525465044752970605542022119972727410155603206427327239460446127570332627228569279802852316953812416259290737107857272666376841203729215601573225750104692948350194624260920198854010489697760317968203587884327643560346936671974569374761208188344518326816364581885193311121715201050396023768991954549958641837560287774723873348796165174190295431943634218474260168514435883051238680410825381056708866670901273039239845629205946656214006816391242993661765085239051609275947790377190938123601682209542447345186876922102990177249205717278763626832400455913291237600147409138756699081869570977427582638103539722251092764371113033063768464642469424370048176697638335282748496730876330878420951489265772500976744088714454121460102224051003686685326348962421812471528394416953192921034370531854990143334204924078032049907551703088599071623726872927051786162255311596489282668507626973114315245360265334316590868573139358037357007748515191536636339411192584434117120224955924575672047601997849057219535341198795974275611999750978345208670451594999141476974153583555724960439524800357948270080067398558017957923377137744074140686553380479614747957628172344935194166552859108137795398492148903463755442419170694681295434551494450629291171337772186100588321412174880282021090548373930565448205540800678112766680155385651348455869598465625568612003060089951175015571911577260334516359741761626121925914854259193049753626215253765802532436767619845547872154035494676377824972713160526588592236651655130487548408810017361979959408691404471065337073098975391924327865070098123534256392149668873358478680991060196072358901978374570530205928245097826645920378650042154312262175805170756011810316130028118752790737339360374782072908926127474579785364153128147060020805796015048827497884270890445611636672587916929741390072909160113100297422578414781294150665597070802847628384365836838936824142275282127191029754846272147156452464713063505416462509806367351390718950155362072791080239617944620915754164266122148921545435525140750164949154736197302461849481132621964993454198006738653697959811562496039246446552491346456193963305520868895989195554636767459852224504573783598663066650166172449734393378109886899142065259434250623861255898227294014906314941711911386864652280856816576076961409698597732090261681978365470369440833918284600529459847642579976950389129231287803790733373510560684378162919705494486758660267703871687113615112620532486427419348564960237115100481797187716750176197155837987545830711525362954064569329310167055308184987844379650695955976982032917174159574021575162406875854119395221494716926260981711579560415625944699840665557497606370092588718813917114038377453774830078320574696014125570884388120461134716887421129867497580391568365834405748901681883383090477807253399619721470191320519542315880667850111487610300335484712768868772477145760365430330767896363387376951616722868611676650202306402844674020801503834455299644693203266738004966539163442463161948601587622271384591401985430332867526680234602430299993572161804564440472740119555729608714062996882368535341862996981301572933410825675531745037729060409450085135198059445389331436354635515782287378705607905999853030676872254633845971402169970368430514257204392057476072819899555754237864677864082184663660346510711833820026007091840615523412043977270331264714333555265769424589681937293591459249476708944041034103091359823679340052864972596527509231949478015077616364946961810521852801967101896844977848429662181498325274854139874073271696941158255042254136191481585691269595769580283731308100977744350754026099665249807732522313106447543813741220184316167302056714947827183033979558839411947185570402171140902438419854467137432954320251474482869287412677408722535503341642803466762559239038850599129948461633732380771313085906133269044732742207236178898910479474790671677138382134811683861567670920358851442569427927241942377535377405037516774784770727357624794347735098984247708523867844516191550909390544857423938959559789207742119132914699708116735883294960290707888196543492000994603353268278318532863656206694697196408906109668615387089647969830873607486547156505095645149830533238777893742828212641332625788003090137528108188232761634493260666125034763491919733079741432127596475208696389254755943781447218240909079052081689850363340191432786677332691922349986965393715175287815519551478116893811677714547584265034516039049470399845038139403975986305095414965123540269649793515802793884414441320101311708440884739506808111393266298043990154904013609603706596654348236572998884071001146758311839675125453478728090324380075384337568839396001511296010066426059252660652496564058282364384750623390908299142774960163724127770594902764720207804957056358591504734282184002230146776021148633570743790389686954665286893110239460634942016150260386894182003181496269519838189234712577247999811918602773466255756780526111880181863292899359439741982339523579718850523055372753237216712105639927583418443102871233441716874849824179105942785505201195628653355719507841948439621065923219584928042872837994530844714573249880451826440961343214465091014006480053166860741562417658006605783820630743909305994799366888976996475346434692714353258181062437692635650470704578305306619898900816504900688823994393032132043176303136689473185162230982693319555094966868470171671867746814136807615786992449293428882704272758057010354904784440390575924431869494588235696812222045725875577252029172460800390613125909274383339068621743756255436762809216923522573762015283081816867725918744270175243858956069708409307592045254486385412929162444319171226434688289550961851379191881826285703896625068341904679698732251240364084289067063991796947048013251684850249422559316086837664130382241825262580712005252525974374012519837600128785009183428873159898119005534400440817712210588944781620906255753965924895958840345593145619080212348386384261917382098963775970387506782878719195480560763678219325889789802753043751352045996470390498429033199310014365151219488331517565449607813243941113692066704961060945925631794096436129840913283900171380375256684838495952162210677862244259199316749783550322955629298110280411046572948608753027476255466468311088705700697583861698349255004308172420118473715043031931037827561682839922984598335298570025503431779842441258272035451434518168729589513688408261788614381456584548753968154543917293634411199235063678006699444534825279208683520714594252196919784706035761663493295024062103471609836593485052231205531484742849465190052637593054839713896012493486017982918716844949613111447341089572146991877632078382538116700849298159194461049376537398461674825839828124148120524400588934146168450740012283576589848279652989558099619821209568133555014040764186686085228882308503294537980784761866973332616797162729806675054597582430824234549688126761407793121656098339264176691160656663291901617433355389995231587643429590889470738227337968555053672186261932475907689516998856808743791474694121672061919414854781056290477433530203646921469362613932452087546120208563000263177367770851819209362704780690160856818621790796518836434144089509593593317544267248498664504768716660416149904577823490410030619704788808832566175993060784120202473602931825887268594056529153890681059241330744158448171266698749462575200180525861818591162629771304997707445443205738795507187686012045022469208852927852848551122969824629860578539656281234351579233794210475636208646596456484911836970496893158620677527179054740330504925451126133800692720275838650779194967062570492807935213493965962289149901868287357331752036250291401442212498487222865999889101584264706124305397523568817286482035442904628679060246633974294866017350227870114783167400971676311475176550716086595378436748336406126864473812690129044240482326022226712111285894138032328158687718074415026448224186617108846206733114547882967796778995271606255976039929208116843546342837472083010711094576408480131449992358271445134180523222402759011459445595474610744007242306182909500339044724254372925843731708594633103478345140228466296599594944733015329015835767525891793105959462347148276831484622967808960051760120457523410692336153900172707157194912762417965061739033485428871092575795155533890998009435386924715386670036443648067275753203363092715305573434257032920351691513240334663530725754738696485513049200226302049395117207332738675092168994964807233378498374548376971875936959491117398404529213258189210088084169333672572909908559348652505979263788055106912071649294071265551727941847457435483236081933411151023159119039338155217981157253660044671166804931492355048077125854608743615102876191447445859047767985926993054778115801581997892384214719168436262962734263704441784556396713865530447057975632352505242225305958790065641802969694820447281912198613547382902430847604900496167051870191922812640372687120254731868566064629987873327777163014271844641937206345438106933491795740036544467485999043148775618719657840930850854334367598003410106203797227299552611752787770284313106026871846984413401753028635461046268243889924327358039075839002838134047178184532447316727749001710078452116385902862780392989504740486810949339700570674223638535905851458791803457907322999093734537659817557820764180324972594165433362449380583770229713861555728787052514129727829373159529831811303197527536239996334511150817859141225612058388776321993839816129936220918057764153709469170395600265622654248811346472474174494428104338525990873901254280346775518518169809890513280762983159418364568432275075252385188035663780559952190882408326327670070190743381020455714406633544619711312758704497296614605601669344811129143179819851474075470060964851895386778682957067407206153447432599683830489121295656338054594891735766690970424295782804278630752733878047642981711713734974930804537991602169926241971389119228508132690161448498121697192076940697711374449879638003789387190818056070179045237984868166237546999038654375894631574316659256941318666157384799969232959322662863434742687548200519013003280733692691983894270666874368494741296112802873475207366836970339681902449864505877276398556909518361325352291403381553520837344214203908187445840478163501571588935084226621323849014493307433297522434596447049262965718460664899184582732366406743880774287644474584156747324433288386253270719996217271341838529289216781648088628791626485463724255541161162476736133919246786417284710132432780839300979617109078220226096059669519165920973624258335837901299267951232635995669823766479084089298327318539801351825460884745866096131577935128215098534972807959343702090551252221145069307998791612505407967223809214560915996181783378268614404699725884974424151038079084209974373750002417270331049296099494593780621519045834571437385987902643368795152645129456606928003230576045852791281945435921523435947568707949649898266765017905936445294870915844870497868415056147530835287410498574584883466338537334397228628638255609098586887796982848736382736841528105030732828911186663771887538425218166862585880011347102805293381241765927376681464774444080687374455581265269854625877962397396041064251329027450994705252263364310971432763385484384086011705387508229137590076100967625881983693597527403057999114941629823080007333822284137815563353422698934479734881561574406725815133655418304148517818024883376158640659304993754806523007615248404595658554628120491036432632426413682287663510934458044443861761088350919863593171054669392677538200979379991953044399445627555507012488445009968073601005838922485297856936864401649410345407655346058520042605528216513552134765201344414589037422339233460771473353809240438129193110237830043938236062152155615870846736409425435966792843440366183750730148793343693053887954247867136322630270471906079233458855918204717714301316489420865081510770108786653995010001920472122252860886242052862308876274180014196722278647940652057391399013290115513231538165979908777760839118329639364944110384182096780209782607711869555696010146246492547938275765053233073814796644181758157701505351596982252626121526942980997289668770592822043400825991581199397900577765038582382971340292246278563218691915542174228542080644409702594401811520083548396887398175866599358958413410613162286051437322779712712989661325369388570451668727937925564492772130098403420221358440719499663143672135896680462584041237796308414848994791935419682086837399598852552480255411717365713844315857232695744279768164167193428897361262398614700147531666777397505540351463264205484397466226678648751881785036567127713751651528015977779598810844611268304760641989476826636526612343987245307427688391007843058664362264384028699573809678352679621462509022445077212510595019266131867982534824713221086442354931561925465329323477658743407584949916394221457677170570593273139537437318066157408477722948476548363866153556408981030756557488985901938006203069008164193739402362155167007999403549388355428514202101870363488054873581585122667540446043651889901482656776426077564599376816639753978258142313655070482707488210327297561070041141445125138302028054530932259743101385448560635807756575294089973766471607266402263344180401256061401272601518422215097865764697894267660398329972397218126941748973086634404733333327783038022354511717746881472860334190358800477233494381536424563530488382937263196247436602385934353524634206774899016337264125288932071812996111577892570926754423850883411058920932804924095381840198387960346406335457444370845016212202172272002071834079301281901775700085162386838867244674795882472722857948489929914370449592702517022829677246638810199839821314866540107840364485551849734285029693821074930312381549463090049185866693016114432952111095812638199141440339252334414092048712440329817716861228759316899241102103444559497416559140771674325075285129140377617222260667425063499391553830004948039986756505541278121697836227138058900536944855739055385240611970776430269962212455358744578807647562025200163728811927098842724564324258342982952494478136516262657509545367741382256436636187498011814141754680628886575041702790242187478313202852297901612316815133668271006185969466743605929744920807880190448126828087369296780670039293416836004657807477860128614492364014579774342851458419151863655513798781076858388096652997445668207930061207873604201374451407020995938811494814826376327906876168081159608482707319512677440193366550121143840664114423353326957518497512932911398615079842483973403539610184215915585932718873068380534748081287090158153126880017287941515751011505664912257305271510088423598848853903475053855661506002124846207770045638580068056353695948893630162499418619809349099068520747643098519534987821318180541395082256479285934043731504071837740283868395459460060576140955470645832282031519154926514890029205610050597043279918512067182479198409001150558004776608760002075037440602485921360134588922508721846542082981958822212008572213335590185998869281689514839750196262539291783695247776691853699010730082417782496892320177850910920300416094984526600569746417061402430595233710188077188485559345318691362413093587021164642822353647134039693212621949053523106629496027069445265338031465611156050573859825733644167728814859766912754969204795894222998854839224448220276255372327777067137271814441607443975385253521265355363311242324853217860922542854564952797508599741777397913504348748999554418977691502293959422448935145168483731594553542958033159826197561847948360629336977906662359838835943198976623204235830527671089179008777494887134940528070803363704161388679347001168996570072089269120672164939536427877321313360087375736857467193929348784545105941799604357693008136502113757445956692808312932116602267727193057111168323685170148254089784430011594955681696472371736194995742393710791580899083652486251680748365402813643071211744229832225379999998254231116530944649323333753746401842326161252870210723823768866845755801573236218368393195381829508444960306590134896479168950269266602856186644002151673785584105323367502077160326514707617422417788729171919609112328706386394831829080825458058157578517499406450185876144268423091414576094229623689625712404736283683804438168436990508124498511281676135160921688478441974987684306574898605185818044768402894647281153578079762227108221618150601619485123028530520220197812815159742048379470207654691947031569892170592506781891620155512160742581977439815448264443669121734986482137876792587858260466892662364853975894155974979965907918224672927005777852877591675099251060617748857097815909603588136125753836956010907352033980017020440672338928377868320454197757770245607841510923466202285899263118758889395814831302489750223533829275139417538406876333718427599342845346097178417703001545451553141320173952822458721361533677433274786883864711082908879054518883301748098789915914127334431043537296814349751188517781917905095680903167481070325866767074719606182898845349898769046318171975116194212727317370356908047565431033812536082191299753444465916424379879895216225677845117792038223625570170534980200895478534038178692310823973186868198549121162254396250821740243444319062999021020346697813881108248942875949677835885245605412213268659733683613358261515412047261261145588917492607623349006627329279846338128597914434373592105675936215679598626927823864480006827584854569929075465922329931011890497999799931867979159173267512903722454352961270800655483251592842355869481730592717198246502222936122654024554671550512714339134799233516665875575314946533857571367272905793035712884933099699974871329973549574962001021948811849358753451690236749525748120318359706067927872537627603351738671040326976210392868570904765918056791487424593848290752216427623972821425352199601093734403286379832820674730343032650725311725350101638436747027704766319909699000170206482086496971304227277841841596881663488141011161532564615848319835096133670344212306927955425584199203386354391091865329126386051917705621361089515589073693667687598125981903504432777520712185711932341605970596121363165895897363834378782559243253795496554975626859696490523547788909803285185746802328297635323716805971915994100983769225809657636709724051897222396972032987634122299731864967731051069238960649118740230287904415602670404335655455251194991366448227518050421285125244313581395461809374816300585706012065068882879678333429606528388879313474270929709913782369629412793774901026585657651810944887445412266333177834543447338749283059456592058159414133705944361075918296963618857014931677058948652275709785048277318236782356592046569838037630469950454778341210670525245597022438388626735998011023309084893559229423748534267322700139480608047439217226148054422371392633659728590599481220438147523505556160332002871920903837057057491970805733253374364158481182835326480427806225685656066427391803966449930685369957630916151090696361983107084439549682085480765441591834058837625011824250353260619308134396621244652040861428283166827512316314559371264577187669161881767109605964689436155353510106487071219498091585826589470850437104370227988770133692718555556479749768176691192738117103078847277873353938139227409560076125541409704571303342467972464948737273340093205849716591806483650245683904949933961307584996339490743299120181588821030968060217332974042541851085172425731784588533993352119397660405522611371293129807587327910645593050173040458653584563374926626715844828191502849844454444348355042437338653208637102155007108237467330651141180183189486995699963364107562639742076209336962960030884014771744892746498593233765999387250267503452664561500443810510233687000699301503200181457844654321311590036972142211188493671830160407702680154491709473980015006787247750036886575289525834269326945812072540277014704344381588976004088807011124813499697779965115371468027608879133542595572378465385339046209270142592817406979912216689003593745479893271745789322890641620200029508374730611727355810459469067686763021468467874885830716197043552764492205534132678059345146928860254162365031595640718222973121487953711215987124917679516413010905358948801688702638372210482351620118072307629911628437750843826469959682117276128359884642209470757112395884175209533989622822167025455421726953437240655272682872336822249628481079902248292169501990983824954149755904021858384266826115670232561049381038846838124871918257768723700139989805859949221171829561679053087315833952848135750361034874490568483747688507044406991832956369518230488517943580010002948955855228485688935638170237190664290788873847616293097561484099027708468955715947311749951563555117893153381939934721077181284488135440851014347543082988045595467412811790006311517912771045156619381729941068536709012195589079912972861823186914448234145128741280360628590149819082430957837261585393218589430672169597702793246757323144814410487619000871941587332120539619166291786711371942505155737639414989423217666364796542874729185772932911202972867871281012121739446027276123328421380104851651189398265984642908006514792450613412441353990115263409038680504367456625721538310407658447384661664334473566161865859279647648800576218911361477247990475030892698501379697687660567258297317936768630258247942453543080559454415183518598662344014441286678767563053497043515083922485556256748067414152876686084788985425088143245493553290266503876402438115814979764286368861292159835113127724381668754168137994997288881092641350276454144621219371643788318051905320906655669564313415692704930283733652124440298487052132349165126797138986009858077825769339196013243324368757578591059662754508338139137135140461426892347294444147984113104852424069856431650461362785269514111089631165228537345615399369933816651844152901907340557450394062914228106225287657971091196852493895067368548716502535297266407613180198503926991309463277405325455076107863503114687293961728053698489391836936846331995477773462814777674863161812508345429168322501741290493084351553721449096441952494864476924521279188564846980611696527501005265679003162306108335988918045322230392586139289718598590455663095292862430267344584690759336374336283233780561716529920799782775174801170018753898048207180954625195761599329857407473108762020652618393862246200631653127269535123457881546402594734691823200163697355629888015583495662223614434574448295685550544881447959962792539737888360273865396078798233684485796041934696899701296604648622507692690008311772566629271572796660143597019729107150449770410343924647955286619180944628202541458508984851790247575027366410196104307152287635503885722732668374304902222675254390248571607252694557883233994734431255604022177970307333318437279202423288280751026211786895082014544287353364977067252694814543352173024752028682528390520793323977602367186804600004948149731356430098581399100568508677569716169566773233253726932249241861958777277643456745532312786790992029561569668138037276509060374867239423524385245402152292799188029772984013921334568794381637375729546946542708495986002025167740238017887207486397935324369065149772392673013412306495019975955885166739294398995680860818194403076594015157025817545840488199370155607614836707395934436012487094548599741843143365519955356318495141745818760590907843144888522627035924631182493964244658874686923965460498312148074754506717587770261886463786859957744980272772907091506376316541642149322046763970848187047292370572912860530878079523201466633349808408868165370478428959920168631717581205661012864123470075486641908713702735460478331676104651752328300988092029011710923141486595506865802445107132188925688300654954113688808182131339051877326732283975567409716361962663830710701670083837958211451456974420312689362329389069060234813041250173835252911716622012090607529362250476842837420034127077035134929717424560193154689255408324904826590908417836028933045829255101196046368682685531089467019023067347538667663558303530479992135945161918975051239324436664377419453584601101397511039432841863802800179030526142027170584651005814969755202035006252354844683758182891367336335416990616296984193653931033861187662998593332372309166809377869027611793771416143540316104913775801650339789133589045462587195032300867760252407763564059185553300392442372041515504565512561590873232533419286146211142078940603588833357348688437394928589463521402102721738397833380699349902219762070503473958836690063156868091334728419993991112479380273605483415026002848177506903552995141668369821984588357506536191365084315373975891409520158961445767758450495459035868752901829430115902452938696857259010358873990129721015044738878994625536784854607245177327003489431867587367008569058188108535718178408799502294564540828262561392103696579272634642765140621376496889192140607545013344229694642920040400298799081393403358238919650475436092378510475213754055277638327412303185643471892806656940059379159105878727259745065389343362837702759923375950689011220713340119574891837740657193877820056700819299771742338082311125214346274468697429629974946741668612002482460451141656904935877403579969044070029418219954679749164197544834119909263045005388022648503420927059503907973394306678684632662242212234759750222423691999127911180302615235213650727197162738161682254449495691893277167664012710611528911271479374898405732362024973479879084259782963220850689487615102240072155058578275717442392891992595359727087867028055720048379667143229487176796016816603296810246081634714203376062896196301687102118061166421760056028755609769718803836111126156939455726872616695345491036684351991155685421383479999487775777078617823740475637473881720061246476517761029587278772701194231552765969111695687762681364654687643981526183145777999285768151741220616159982773734662073922855586606268328273303198871178137133408450156524182239691172556130144993422232718036238591528896587240552003202293065407186357907951387287013709164231104106150491619946300434563735073021253872053323664286497645324146713026273729667672532113312743034304498872030500296484858627832877452381498165507211333456596857628009340651111278849981668737521264382739466957200855724626278334963007719992829869273692897049162193056707746556093992034654084628790396281630202849404251723211626160347160534950236946860669725125066061878481473541490626718807665793332670107071523509952608231104348789956464604722707385680273182771620853361489726676721817347522935734676654530049059021512604640674607774689288760134788198098005894140956267440479919455816518696372671844154249816259188645210344545628655141191739472891367690935915570185892634793036903890632363836200059846984324979236324106027293210700919464914925262153959204555022801951901205810607101715788843544057853697507854033193358639107272503324302617017526752546483713321249479884368448901516312124586166536202565916929991050689941463651951134483616851185825824450902129378108417166333862035825802555155567319158361276271736126484159351331830922449404874433805978231097745995484978660197618590984466553229515449199218585571619379454311570719520661339592964612648916955216522220518518416233947362889144297946911050017834024059288901925063369026935590814843638571749117180204897917943298455390487337951626622411002105684036002006004961656203521391193062285924243953162818482653380573043414217434164265669364941770323952955638671028317622206990556036438964657770167883863660662594301085173386227588699941598707618037053415081252870773984057305923769553377223248124580258905207559119923316064350460771715545661102599143689127578082283197633381159473959532862199036179280466487563410376056982003677952339800577705979204547290232100182197312961912751797775730359910044505886509226221360563293353464629973676231038158267496431580782391833791600695407919755790219535648048539116990009176194722840839001472852086646677379466050868795563300283195157889040340307598529215434289640345619449692090039488139365453787350079306982835273329600143755219115880729541255593081461961755748399877738533398036568875076113344856210385605800575818339469049058717121677685831437737495673255504234608701787852374562662678166747894199414134460004613651143747115717148850487667881842763540559586320982330070043492896975340641353379538698952549909766738350447282915226698577816571625429318520893556458086520985741065018530864719389605554677053189661598900650880446321479267001704478783336261947798836860880607940836873953659577100198090507348054025849402331558887007351650624957151624065012229114674625675150213460955358612346168700775170787339008921848509484025281358584922949211750165553242204705555838813081314610127170824453421111378425449125182016124005309627462999147817344441819698889127696768710656830305852396798427031290763095761492802488191308503806773064043032566433056178713913098932811250709427658849747634669467228487235882700672104876683917816439163584578907747321111593021038848807241600983580779733127397409516486554140431880389569763105456783973555257263334955243171781682016734264602191953370579060154431646317348758925997729745957129654342148119499412946117481615200708572730985846566852647248992985832693312511984982582785042392986749987474907043078664256213260947541455351180688715383631164945952433171024815094880175081260436070412431402640531860817438205445450156549813233500097187837711121851296320433266227208235214001773052387629826950324262324364552655204306106448043720037103666138494914117274161425750515243094878970087895393998819809950901786027051979715150644754848476447002370083722876202396807745735031397508190169155018429129273436926870533565342706726264698285520486177063129850038954938698084010807018053892926439524253803606977555638871625422331143061903350193047035945884638953944175502735347633482111626492121089770119854167103334356580516263056885602852508930496294173844935465060465922923326175199606036196497008424129450514375205691312921437119702067151939395780316818339255640899409675949415221867267228964744098518604397730692557425319926178998198401426737125974757593421753361127995631408835050034891120826863346184175370402689311438694192666968267329007127883691262017359620249058474577510660970242073258336659502761913137744987671071632830900889037255397871967750110936631095794862911391686098332576302089793884824292638342544695779497254269220612541557294524140532281198199863508878958237382355116937225144829783396496857559165070234656106272357936228841971593802686460987644031831212067968509957784159754282564835778535166446404570685168007232135259630284977422609827880293552249745204130738557131186396008173854593684306827854826199614772534321581114047159019914280757219710228298538356361522000664427261902464203535373592414757580633531629054831455884870993226906003465616062712642295306439179894359666150629850134531574256175387340194213274501982412348025232728345912398672683919155021459197214919287989568547199401434773981601321845434581285870606137627864045198520975577292070723100182270794375863523339380385216702290661821941091499456094812712575449214382598165993198351339995559974937036079703514887290138074059056420245361838218228769511300222288136013430896168586235865702332211819619836971495986957573081220478481200929963603924222503638902603528907440095332399232928400142222658005609484488983864291678033305385703399800655116202260028833236647713864529186219245719333146921720477563059444754659298423569230103397093760131579766910914945561720035616477583063283626768098622701879760525825738816524132689296969166097824809389353804834810871650965708406217892898234343643007033427194185720564204208666482145979356416245543584558700100339023743209580872208660243433835233034899840612608794758494277092113664125326045814562844409885546197456108630003963634660524495283156009020048133867147245547231222714579465027261537966356059340490267480480093906239787761992813159001097196183856057039522546180476381031957312785215611535694770898080530697024660710345710419015341896413620233612753821068906226911572149970545841000508519350562282019722925877728068156090590853830364276353162523528186045821298582142751555578814258698362725193109096249447889376957838324631327841641646797716842865517128817827892924894768968539358227763895997800280750990162809963009708413588582982932357699485539370598896188384788114024362658192637109216732904695785447906579668782078086434154366598343332326528921125156966075439852606126469915204563987233164914762589744752356097809149374257817583769769670113718192316943050456392047091505702119466189727016223831967565447169451845127188268131839353643281568503534560366420499647585899454986051426615382644782296629959862639821219099944712690627881626410224121113839256737202342216645962680438078443317516624411935548917719352819006110125598115802376056198497882084130492441868724320225412513659700754764316680729946154576836959661194592046008495273892642760122714380227575175578424842310685944175408572334503533291207917389553278273077606052998401049778402012675762472386100200071207618883334215812977741922530174837455722681127953236009649425428205427756476760534520775329663481772791721943243783276347161172906660666390618452699309934075107391358343596902363449169785733599344418882982629054629421234745802124323872101668316860197961755684698194572794663755719980651124976745296269527464926624046894742383451394031386476819723743704001950429618383687006797299518888028060063869698792183487860245748600478697355078362409417928718136675186961217670228406605659919584983355055993607714951692599710297659407894644146427371050639029104435271783416100500382989420418994349023225469228764217483978663779437245642121556148267122022104802691521296903415693574435180913514544204685072951753714519630367245313733600555447127922262886837849201100214309386905744884848742755033926042918262361117853632709332691328464973108052208875141183373391922806963730924249084620121525525414708215836024365947007131328395452377635839369330463902001001571760064185257426790143879574445361026122813256319651015926342309130148934289190815470931337711791423052132021427438428046292149773670266305996513541213102120626901276644814116704509457321645086122097929483239497624581061026555765673000287684510551669605850316051695908414327652397835537386770020712092759283662976214100673310592915915520726840468142451197182604710829776081722220583981208783645424578379040615064234953967866933071723227457497624998846341938831063550360187556860851459187331593272690251576494933122682037300193936316825276842727986520376006643886114631180007382072175013397375203059492535216310062531636543093209968763658912457496205250179004067178652246011870973693209336418391910612793082491024894950779899629381661561204621832086864313324694635539411960738141621689720338061233916757023975997292213475912081938201513553508732910723362905971477784979154434965448390611644316024560575642122611987743306942323150598656721712256892527073268876138772713946654727165529337028849868067090391469823095263321761876273645349050223386729712373741450029477700915591847764257888732325196689308381362168412231655122560300716050204572678115158584036565436540492734387500142126643909731439804191785967517002437778004493223766685848585207185714391101310973320641731639152910545008905941493915818274862996791447510269992525573365013574732555313347679225568633497997190995727250188987985381965368479428578798238041721161290579476640601979198885060447246823856478695132040192156671610283705130125215880034202438379470864180443832621973461148474702406279531938615800173810910077112903487706438479038404921256605739131669175627024546380329269956364789092861067025171595191449336348013609368810413710092592406110540173114987688215182159466137050726505916165931647254865337155576644970957686095803917970130211123930442201638879898661582801578982900291621997738575055955806656051387964399647455082123984358081236259945461709209674245446818769329010364218212549028205846992286724926981142940386492101910208493136075825850947610934342178808123924777941573893082848617721875220393609410604624117481990393690115760722410829184312639427150128285793052656835500411977578180008702155836581657813766326322454455669798882571756308001133653118279747293372589250322047692085498681349768419476311638986150847439081327181467369199493214724138646721125476338100312806155435694005614411568441969812663900925477673822746086572333621214351394573392842184782265490572793582976578361574468440781716092286213387692132279286591733835072481740436157583184608978161669860440328634151636946729916829579054098284065119020027406289874632759291725955695518566021641983676327856364743394093998333820132789264527910778921601530227304650487235601231599719005110016822990822000434639862667511296457195824522400725194952711311380928987533275743254416919122805431395754937787826805053230012584489901453590889223943557249409876037094694565397378049289297272289098109547546876801570105900031222030918746796743898561934134682682111138687096371969153097137479217595829590735510587121157978895219338944780060276273761256600237497679217689690450356008924677150798039565052931362272261742758280030437489739574158698860490558854744415094326974232721286160253431424035981373713987098312710296946864212320847518120178658876603988382158851579578217269202597346736776658542938753512336253325020257757808569284815138606699073567336097570665317071132577273956222058088406938513707788248034973250477923461624841088481964452248116952134086300788003610542972507208237544557938446877128875939863264314798251447237722610303354676752323134637415822436844471287047834518297871118575639502357756464966636406883892873322061627049116583668663444874833512824635481177873146574809223225724150450019370932391282211330497114758876779915284108060159750694426706585557164918758557308119250697714272881645057082485127957176459961303924468029737295505935379356557351549212975820045446659423778582588235124834656723047152260679056552713879262850846071828404006340985594383595579962166711558351123835766164533004429466792659561234470801183674562186362558918307091104863347349273779976717606330686057156662474993290181854719892782314747085862801165222781561180704775210877987742725478464795308429705518170250006635422135622328006568239596861355812487852801674877031990667770420609374742124146320666375149580596092059228776118748160474621526157195975866148408896862691820729218903428171115226862265905765477556250052532253908181256395695313978671102662155657778753064706884569991193948029212723083448965565777158016447473596769665711164733880268836847490696743752829162203337174807183550577179907163364078355479517180771861731104103569831254905428583536733069729476937592433438006739309729623996405771562096952562569602976895325610367112119081088839568091577579097192230307090573132591965298782195552122917952717214861603312527809017370122357676388347526253788865233626784074204406432323317575102394148737674607030470646988348093832000345645366603042075070605018135617144456588131394319289893643652277818515091232504685080728460588819434350810416778937214943745070048143284489328382260407313603743704094200671043177591471863467941715033589575955256380674644103182100736533418523473062449094927250275800869521703228005206727178292949375806523813004557988335421497743398953877210943633741159311009500964913016279286829824314643152357795692370866998990514350265724333754762611831255423674231442867453694936544552851481600009906905600495234240321455322998623312430528537918467299514100308542711215852886940442979638291411237409203111694234577776186007097368417441970985122800946372905393269912280878350209696586255243704803843010835397005288730920215521935893951748281690197934716403837956780078038965611755689120294721240087907261531606703270521694053949945492215353133162934015012232962788027993420866817743960755336331513039945376023269298679549769753588059131589825760229918188807491172537220554562277082053227882011540175198355054697190293951621286759686202077974687032181898282356538318106923366718194418442464710734560959045687571972652472724405489866619585294782560235387245831301239314825590308547300401330789418562011302563170429762445900504061718903464921133550599076674870269706285157581634212446398677726439897141830838971007026937855206151702914977482935941117549324048627434701958364683864762680807780767601942397954404724025975437648848610027028321778936010722527169491296280249805437212075148772867857434905000172063493328972435640266156288973489635327999748526815494764647654940819867747777084669186897607137330619917838727768495043054055267484288697975030243979546505581290389191664720556703309609166105463475722005649286736492402383153148556667820154082277052212711860646277919312004520737206629251353826941391105914776156962031852464172929343829792964401649949380932518411726214059355494372286206170591400095593292657986861443579379208216568944067360905475455285342863343415083019046364793487561799188885864490655237123062207129204541324771040939343693778739163346312920226085907780066501443474791463514283197880627055559171458248166312868566279110422420527200662417641231310726167865644371653849866483840664130894089852097732112069089974529133995716666054643248483982014978425009326164283271691851618545178618468203658736348775852804739374897071092321938128243092204444991708605467575981939580967104662298785045616570463937500332241294959931020404663613681858720723109582279937347437363798023154835333809166953566995158489766282653672838997629014652730569626452805925920231157017928916175540188455185343130668756529546871653360672108142312990376172035730456469609544790210391901865953505474916074311893225663260879139537982039136208657257175564496813691755409892607278226787588466399737658838165958191234181392043500260447366297454305639683747657279295387361520441881485818059370952174499381191063191013518252765365070492075848872587381080650758809134917719734265749830485238754740947059299129359633321653330360317985511166702325270872636870675949986903305372851234723072574280462616669773357047134254778848139094769090250782736975899629814197457408840814819922378157449057709504037884058998285284007130069193602905740140779411886912839785657163860989660780494562180999956537076751349580039604301454878886547229568355622918560983532519919927888202652525997837401539854385492709198428430213400534203787607948903583547483309301963808432516855083293652859385460542924095404179048132799149434071489000469090898636521051092410820916701730125742203645685033755130549726798617622313432950942252050974745395840031128978007991057078380042792422651332853609783132022393304703803789698787202724652873255474346608603448142297493300709298498189139486950009483271119764386041310464139438270796722990950056601675312133093667329653475913379155070450275790256862903711438243745894917724648290165930483911476787000190293901726761064397394735217408364826792046202383444329696947572992281927951320577396636506453083325449026545744222765569938324650191689048874792863246010809481832356856387246235964837467286183183768240033143955247273697351414083649055088414211547707859729924873766205498913791818278408318459436940272906212269298827805339996742126543414249339212072992628244066413287795403774691620325128250556725778803029246040131745837500256973685112355426539281448638727629418643658721465097127700453974231614020437786649816668206432662559746858309370941252083521749995839469072952135086896740893212999092981049324874209034174380852012662698605116375439056265672772099812437575181105150239039637668270301896722054362060816866940154730925236854436549728049749771462053435560537310867448792025700195861053992518856376776448970522868975387025681228248558007974936958587352212704323718660539340953807667866584168293281267775375652966648774615266059131703862202215436437985262982155533580874463696763045295751239784390811839138096220716264732349565958338359739331254850376753415432573177612387784015479054648567159666441281851168274971274525744119761302325996719296661705920312832281937154521724074883847996739127478652310746736524086009946981931115397909664757912488101592483870591069773055293397987920935394642159570205758563833602420296656484272270741600786026278584407112032870198063546758636845468236352879415780652075941301009978551141363647021617786385913105449075176185287068201995796212664394085161061308541760642590342033956542987477077010464127156435756653737252087397356255748822593199117892330578595339334621751904502148927526509255388319173389941898490800540673694667356001171608490827470026852558236960852973277452716145235434482471431190136395020138648222800010897529613409363546387344892376724309732452524429253513031467939814087890085429967927144367780570786017104112695713786405715735370065587152321144485114969036940058892867511885111185586723807274411170476643755824695555773657705951871380699511952793385333919520668222581473035486590036129830124193941651807220800298164701252091255354688545709682678586203260322122540864791972486503855999931928944449813015005497389918595117500463561645398197373483934592461156218952022442556665858725827497387326192737135383664249482062055481340554198888325083480560054804350216440839797116588811600135223319242799541995727079421142001268603268425511058779199154300899767954448939054363323542946299597226039296516344322162636332694114459006707442263189185728416278553527015220516833766677789368195832488938106941968732633611284720666177346919202593384978070629005753735578884445774044420179630943342161168842922677039264300564407969195525928610623228279043260709061544370044514258055328914234362852408480860837733147006771760159893259985170646935815365049792928327659933321489784140870784877037140385422504374334577409530275067941061100317113271123819596215875271331790568912494701742000705148270203454045103383918823880449906914834311466241552556348567392166143283142692975750184402530329584175992591068486454021488788332702516765800840264665988416801504591906470909999880320609769249099252605271718548292260973549466737139495210312696753231868573232966836155459711322287297775560220803689485982160086429985099133520160419623208683172821046237402515818458582178797529561169126019345351263948043401193844564008607452601197782839401525673963959674441695654849296310820415372381990566006709073294394593916835203370262022206815601725701601068273738831523237423908595876121472834622227389691786474580873199344418443920712282510584707814305550981425206648513923916010472214398747526464038743630605436670368359414795926308567666512763803897313617462513407996767551771065950905913421004311431570734986248771116029395305740252438843385247406968837066986491813454281955624169260397128833096464093228816184600380313559391671912167161405923855627422347106731227762629912831456391996336877232130782238659619220342390916521097198944879398789128127288904267604237243928436010612555327047893143744143147775009752194415032497777811181942655679297634168597421204681672049224511381346323417362610265958895171403949786417051380095838916475404157334867285580269999340625275038322660464516934582669114471783364160166077081715549832347335288834412590869086736420355142711498118213853665548896036892955981170926163014656423771932093126770001638901285010912261328459627881324116118117050548067283788099813268399934830452658961940405569108188953877602567540157530924678690613749764790646165199838706830716525351516577657160182912522388743796207558472815571610591856373123066855032614454445163212009701179691679809567580220504616010663555252528613692279593253620451507312599660407833335555526849406824577009008564490901147078711166468571360483401405157603192345199417836303285964444381899379563458499256709883135500616212904866209317417900041222532331343909454823974600501106913038716938745587624805724867755084066570317330089796995576662652133394049158127051110889403946880079480054707328604397277956810740661840451038997113415690862729436452666151503933555024939629536649383850176327607087575137558276683630203136035790659793057615885240032730436991496239031862051999519835291076499650789357881577687233613352372221975567923871711529472841846620567244434512356405097932751171910508827553110650602440452382649978375953694861995978065640506313830405434745118054807520906636725233916352011833612484891868709648264671779939632329600086296841060568463292312945134665789503414154078976591542718597275703803047593840957118648140382418405763827953232970761298189627496381728092954382701528823137575127945736213067166101871835748478434230503135356600229252953488870682304227955655405550051112250532879115761643641198157867987576131618906599680346306418196520375271240031888379231134272105969941730818951777234289113247900553931786285202807018481286549652068889183053750148340401348768390201112986954903277156461330291542754690113410861436001979783297136405503976851520777422980744754172163003506030795256804212399289813563537237280460444889480616153730744855126813788054957173450583173006601091509231741342617053500368354703763444682241853421357492607744856182988292322010837612605402797212251333806015530430966958277556922912779522779566006480870120130307194725980074254597054197117888288948055236399587137130488680667702024403385432208841139026521904660797505395481998653878250200962045001762027710660229620660232100634010809948407260666168852564823713155271515586260091657714128553228143774306670816064575173818659078305195664453723358013073576822786364755612202586061009112226127769610081408210177523611392072056762431377725200271571054522332541362477858628043412625196682151599502452775437921916927578087898095412050049402039710282520127978054675159976069029745709751908995579182189065625651944247069378434169512749964945079663147369876713298754326316461539526750586103692776937569030168767283330399897412155839861536949940508044661020682358561261447475591025397842195205387678207842195095298818990709932855467006624811747958686301024542981396947629535875381522266843501221878731474911738964046611610481725802349624585315203793173333516900248486238086945928320574497799560440815303540553075565218584110657975855035042641838192594124712726517796370857256694949838630464898556518852953372368210755522402297134333618520395599754861249472560232090372592283264620106598561790827574688470012366097412637938668456251593116855416665017582071710719862649091251172302967072387638566278654918021762490656212773979637265247822780383789906900519427898453629203229348162250965913304754006649765553158422128280115305311479554604107449420168228212252670055363461798767448508340720651275025124407521877169214249236420017397918812928096421952688619948355366557782858750304600898654720319190379552304903480426472189707181965930375465826667943810113291986337747543440757246527867580880652526243372536286774072769444897924551828873891000345065644223220428285150038380418269822235915216234273916981115409864836904015866706653915907717768902770014396024299419366603907686708185019051618310275381546027899411991138978294663151638713691227436156905444045887303844879978140756549050484293616397201216186939049048232545300633093831327524062080788887453259431235070786797469025392479213328753954283412492147406571590433272610936625330385507946516841129002117979242504506737334342370009153025982605947630398621324563879211682048429255326233451026367647379069122431930386375393817953139012137069336865450167896012068763988553681652162467815926462995155138341003628716433531084543199599343479827655295950069300424304792485124280366189464190554973664163826738009294833248114078748269799426850758807106640267858467835607174703105354736361774634850487386675822813625644067480041879851578711783486595398365402271229094928024059912973538737339993706218300383085438146276236309040716147621263740116462160247902490571669643715744818102871925494215275926249772379143268303952348144917971832052560561052500073368607170848193604545992633281925460027788904232766767818920698182391637282737701003822474888078044372903209542352884931614738798520112043651234509238394277429973509395397439539724454108191907070758986411964146761408752838188530775066586456535245745343921346901224510420988270646369739740245662934818556442813399043572254000128934654549786956432814491440670616917893257358516151203794230636385962398210065150982649635961257659533068060178063343816448659897965435202570600435772692429138928826138031751385931577538564734538928697873447723610342031217342858382201782680288432014195061478463817589096375686588712030127947495406377179647003940577108281059074196856956642009147402659901278850278121525168416011830933148217909990106309442941662590957890056413687148905871023338843782172580343140734859305469625197793965375583800148568087008461738706000643922841844361854048538725046030923945233428346332642453189105897523358973274259904633602373021765278453169959104888273360330251514137981822337363089601032359745214161010408120871490353988491167875504261303147791755767757024588880990490228372980618580240288014688836717362942109833879933001286010009071252350368017743906020174766954061431272123702121806532512074048815812389857972579095579618899285757083179651082285008644126483552300367426513370933963250802168806579419702061034003501711879146981125717436814511259440474594375448084225634737559658801185951880912660520289766022239458842411307621644184819096937364280036995914917758710271058768234001603247231678446311739958380235545741323424607049690825093031787171992722907422978693897671858089663989883652538036721127277019453310912391329928229582065641675959406359625862281687154168173804325796032388343973600590896892236616099249565389645481560807509771903309496417136121262810188986684618962104007350099291397078513312800160248432954966614445848018884138698346973830682555812279404659464179455700278880983719134044933133645067127437268593589764899230527138996516111389768608526092714699221503513620197951412694850229860151341826654204753280561659695926232855496659600685716916200046889345704234412543853876846705701293628415758961043330921104300040233098316452991944396856911115911120916204644335249651030689332063923665702582113435382220708892496186025583802618672839615272873906877067463313681820368194735098818679970153562036260230310830654305763540590990975053802897521626057351183638838352606139975939853118728468416481902030989728582706336808942002293446057455539213566072470928124833564583794717708028281611136398399131248199284302631030373578458193091958151854336752035018756810572117310526982860901858873858411552178900945056755857795645182132785067603531244830761454248071989751747538078253810810438208874937366904546053495612538158030604230046599628141254205518116759222116539532321595308782318701278864002686074844822355248032203126254066953975728574513313735281663366071840398894169228312539874520437577126506050876587168544136154737499102307944501931041804959052206554620800279612342352148371625205899517476880616169396745263193556208975678873665699482999339298124403243506025103960728785012124756256720175738758872260173563910843978302221582796390806014610746384776238738195965893785915168809712329562459278062609790666055199898624002105546968547482240241000943122982677844760202815758743230438812852937680311513574785986664842456679145979957152327558086186329340506804541991347698320753448959001138186907607927373771074206080319808405557470397669354129225383228287454603494275773640591695145582088375047373738927432318526061522889838882337113419444304722213712884847687704555103520863177311402256685371105409001186219505672160283445369811960693903791144635332943698902257259187294274982808220190511897939765396996496474901209865687100155726571007484395907872772397720136742163668094591022649412752071930871557275016883209953299442609590740843674375222446900246630788339735238811813555561377054621135401597441794336319652659965143662986034114046477441348711719106430054825189401051647145847711070315048774071195563129061951265309315953393111623854986278978718521724378944856078305384163271982396986756630072137050695938683572946002442221430954777044550580332525814658141768333063668592684700696698328413953465837381460028705561177272713316074662581325611576822912751925072726649715921133787062059830278484762909759078295473491375867964936703045408969076196335023528800400891963393572685746812402956981382733863658778250379016298457491242889269868591295934563401322083070217697550333660881976909904964412127562144309636391862536822966598045619885420032513707167850822846113888251900085653866563335600169259052478553381450457768949465217392729099823773099871477502133825122041631456036780779309433361383742641567004443701097968193996382096890834745661561673415750076084723732775632326591627026104334224445762117493609167640956479706071221482369743633936038377485974807872998435601535859623353776897325194828975465301315533556226121909001747457454360343515722797489637777005287414408300150060380197846154447878355243654784776681381870274531299738794803661163320670588264464539310141920726832739354574165521516437735139081231276350095466235589611197210728944214973455607983472057894188105605109798095471093903239401871063401696448203873892231980225837448873127157452669679517364213378911193494357268219474934824548971728947380102207441332186295129719907485057042582259364139995125842858877185055154162797297464775593225241781389815327824748549300929165242214663751163031144392802429561024992543366732303176827893237940564874115753725392474722904679200508545257511004162522986733005589509969791807565933490159663360048114729596829260604238181317537534719719446723574681139375134001980329747864205368428048922717297360738893939886584399874346349588771819807982126962208319240812907484743015738457857262618707964100428031771211518995563206689871433685133771534191539095707966627746623394996801458127800411997807977718507344868356820676372834210996148865097994935598539775820939832767008977989126559647501190532332619549346412208756312891771785722770225121632587753260649760631007321463767083382756319679554557336800360488412117236060784054290783852569904052810923214081053015597411392346503365057663985677631396304105514371110218889077603995937939789737183687840393881543294188056909459228080369239982379683948881294622266720691464926046387810775544293447287656291850780131506420518187107462138162762115529266488320172940865261180608343126659346082652410737374365087893959079636320023298889857575082893502226005921913453657874122631130028532036568890377313084465427079293645371233924137781048146215709405227806828256699371812501765884284778276968546151590855839485454244274449511462226114726089689297203130377418152179821346420057663782640072372431577216841652379306312121250874371242179059093611248404684127544911338138658262529396941465978948863939431312853175330292555176586253397299039992216328504482732156652622595953813035577676244356477594642131228156609725359247123766533813508173986501309997391085617794354413753313462238678239038137438055503119508043128793308771295530902337149798691927146347161748575132733207824816794140772407053623467094871421031110703003124408375004752580129809644133306586891247272216336528203815371875434142892090404378619338573654197370289995384636996060200971644901474853437211684665881990540493505765083332286928324859509989195378176055246835226808700275131499724649976621275260894632398189328097591505127046722634636822526147893766063042184302173307691945787821587416455997854858886851109925503421091120455507270485616534059865800888929473288381477539604126740802331221755069091247909238536860255200948424882529116066219763859017712092526436865913462603336613322583838462726700659507741567834060909560376183070960282170366411870299563869286682094788579946066828967904246082344078776227422272534349023306027481374051747602909873547432477442323438336674086131061918680321560174403955924857131534792225628604163376613064286180797941343391873012903836139872125944080991074665664529495810179888208095113834562960353334715610696433424579144516841332783153562603029769898871772678519920387293851986035124828702066093178330077589990977487077377434876408521949706302068665925504942723982756417489219215111421539090373555682908455226796682962555759930185882846268180447642053197247471030564562188712419686632478323288306856272396556064144584817030269151909274783317743708937251455576702251255979255957425182595783211303723613988695401901300854214717996199197802328301593153977438152478098885687028276035671186038156964308641336384055946707502462682875417672564052712528239067151082508515199998822908575238195600560530041589120586529076828442973439301839179654907697093473119298121346048876921043393918165100125495057029517229082789063767147065788882587362900406604497233162635812390898082479734820616601583211411480452444202060495228042479160728812698088410924189270085131179652129625784603685084911258189953170538510642780212762381108947494405913319673617173164844188893122015088083066414599250771027941201626657512272280071600421439698137126203165648887422026183729997174320585098655755403446942495092365442925298370688215622530959890450427142450285267428023977544840487389675617809801997230113154325280232974676357435345066946799638139013250753709303069244941626363216441516660129324446464079836416074223639406580432705749968189712341392559886922356935082343274342094342800262115343187659418051807526377812543629378902301719467383447326041697514166971524605963323893091350764824772952433817768192578158999803095795345673619681124475173761686015508760674201233924715933697453988661316457705260468493737218170730818895939879252706046059215123566942151561381668012624437022681236775635519759597620802758289915085958895633747363318398496694395639585180454198555129391072242342906436886906609604643543615033177236684353279919647713613785397810378088314843198458057836252107652128551952982612833255615983026472894564256642470458753086349613785622331389163115677292155750888532379400250165400656686404266749576139571786403945987701095855305725463033438264300649095353417405800370223745660549435299817893960672839618634437384351336796631848183498995436172776878915862793661808074720907994893024931143198383848660294263790832858292341437295127384632243170519765922607269557027221709311605216787302754568925336425133438597570090940266146386833695587534616363446811792792326921320376015067367516920969369045532119085781730707204355977625949872823594260361504442901829359713723953290742328132693806082452576499628420326441108883417708521637582305695646153405860893035867546673499371538690717919634177764303819334305020109336443817763910315367349273746465474182668105221277291064222551588060233928249161050530242169798193630512605400823561058526231122678780901479234756742122850138901480861585543311468817598751877036503810895978420320490601332651419009928237121189033398379825196086160263024928143487618633136678039338729503458154119661298089793521583151990605177250887549442664639399698154833747664079555879485293163978885545212158367940832702211153496046099747141840853109795485847250023049983043420167095772686541106078175993137620648828582248477670925321320742612926763029128860180995720578043326292714526391355253961726237371380768526516438635765080134412016991826105963008023035574681783629781792211083334838619770232293423390461914824054618783626174602950549070231694988842482107695187819941716650580408123555875703386906619455209497079507471606547889595412068965388922659680523949929430410246339500261951907181744126194265891850972436801223827062815445148585013605585351086068697549439130216201941563049606655709956863276985564620530190245603761052308359676079698010786034574600250464634766887151616576864541776850146501794724646023413435301271256697070151617160447300734867581039054712676891353345472710093818917395988993252826739912077722269113574042603457841703370094424058180758573856918495450447427520654355463071923261524010497918360394739513072358196034505666958972030609898202885542144803529979460674439609423310218800980446247266982066860943653956316515381649239858046608866540849996668646801982837034953371931172510516182315427407426693167165171572490215507627514843738276044110580405454433452005699078592521980006077980531727632211194665369913521147271262836722726354433060860538378023253216550123078212020675213599640244086082327385379939760316165649048857209241887375223908068074664373382473421946082554890578966921653943930265236108509000536637018356349637807302116737432286822241120855678455919260825965411122505883294316755728422479938433792038817652808865932312914545794428827871172319505766022558794627937017661381408705714959430786174161777090432424992769428492377209697077438805934188483812864797148217787006858716117872789240390376071208127079299965473422462188010606563853207990975983006648640373074232926408838701779955357049824558454028964310844193742343509396119095846565228812221833138668335404713591432071809341028083036949763021482380544468531507439009207959631534552808381145002199128000000533914595600831749763750717796186615835594059219178808973913396526349845551190302493079489926372731064549824853744638797486040808654784684451363063503967103218217313412529364637858261518780977801022126719755684698086749498113159138745630709823106661565566887560315150211054864275149399559087004646518714849846197646530024753209778874417942484897276599077955314799467485921276713191339380593651494899272262276826599588402902384007415375813985219042008329730918919297143069046494670713963727857271427992474482922470587187732452709809322169328545725718349811625166055682280622713599075828661218594282961365034524877630146779558159714202161666013523292260272810011935822853255582129844134394990507405385119118651401421453521978599802758240201034218066169484724081139419795341712704760092910029957336441915548001730178581467724818807902972792012025357235347082117413828299627927106031460139091628681996572191238077624010666211207867260325681848988395338833152593097371338305061949223955172192785952200233198998434990725317036541219855541997781144785082730294773201510459690187379936487413254369253260260413073590982895419395504045249330128139009448010423594915553576891304653325796893768787256472390761104671928863332699703936028673564973798724468388056469886197408747754277449314883584839031126638214542300202221950174558643131122354103627902855600376705028686222753948947163336037357014622631174306108909000338917256060859376274857677263157126614487948103579480456678902117676976639592507305306764190528529989337062534218161346206074709716785538080533800848645188183281951967914113774159307669774024821227914980033046941105605894968138527838535488491444714735206486844610025284273152606747621577065913292950500813307770909353177735237497850598736831073437694118070446843445270730780578524671297761937795361851020987285563979805679428486460669688572726527053934552663454479465133126483200001931664342150083903049099400498610475259056900902595074965670333862274276506351579872449888634884097902962945072940844912320150149705760959578880567861637538045062017350702388983502895190865485279661434727621400986582940158221213506202341465135732024688103498497406825829226803489288201216511892624937314242867697003746764711852061974557723725149314496420774679113804766079413988540759067769643384100438376547040895151274570586416703370367627594521126185845151860252803606336795844254393331763122139303813735715526006020586053500153784723201691453664066018907260111246330029277355871836027785607015345312408640753283793282685993758731843744444387383637210004971608067704660617346065417830236407206159174502112643764228466572812907008110584149800090240605686688850541115721414776113103716126108502171869349222811431285193029878295034734601451648449192513165253626535697967182176301945051309013031150076377767223590456492414929800706080178766781913325798218901003849033415287113044949125573295504841828784528538776117819380543562335035799370034311391059775690623827509338114894602710140788461824848172314970768697108826615545946353420239661981478004173535148501279839698226027540723956781112196322476322854439031235538165399804429545342892466981511430575863936163652040291819452503043157534447337104943330412830674029277440936866227447957020505084540282282211292440294465940452836757596831910677307507267664265164003811721833850433064316419843274519283752111860572736296534288225174748991811078543069591631278196580517350126702066626131187099056924181151204828131391888350228029262262855468300179746850247252233636465560188380850768402306031067744162801433452414054644638693819184787880518708094259514883834247098242262445639669674657227308535085793639378311683589395414564590325900852428443667029135920421340045079323930655423271947473826500335825685540737856326418322081379664905138392531800683773483446676071626276700476894330825526944063729327491921160176154275920240645193369876547526201251919760572475619736831793525834591414974085544768181620877147941276721455506151792535696583639660334544941055291026149727494562083235499952756992447733554528521657985377122883205573609887153701335797494560059870654885521433459211866884551147081634615343183663847980515442394758278411164429357155110780476259342487395281252779249310519788774390323977287347717549715034831199713646103104094490271223372807751449213743815209593177298031057890283418213343071346913353504300803628589710283555813174057536303266618290494114659285765541270378109373458598610251076236249377601805679389085939732665891890172864254174592813253004172749845639164489039073231500845826614828965983097271553180009189423743864330602113358905425049959528079324028640700873973077837007617405929688394942910725045224015176574880452360971862090554636512260071629199750028425762618382472801062524209534344696147025985788086431014415457336960021458124037125414879842386527322654944846091227717114882102306807748984560623669438174873865096818214194092309734476848046148791683810839705126774431632140639489537590369310981859081949872948407887514081043881059133771318637986870357466699941183077584197661478985822416127002496946384474233252714081335150606337410907105235969586194311923059999211860037972271997071860114475553878737767188792844711696442261801056160768534311138960969658896433928079347052339069517877443693734929021892437279453697608084623065187563097251772709308278866513797405953371833256952118775575917623795850681931303590069816136489442541121158979422360614449808618886830325120331574444808110648620680215636035814598237747830383593347205404595911287598707154918717636225066935671842924399931527092068988029719180857512451596288460946237376988852709099743280412481953348938322336055221372319345648429979457190279520780304735126258131834240962539233829313906000358636982232080697981815393087135419248190684100084634439341135910933759927005590159592283502159107385367053969742500901123879717027541932232294732545196847811610997000145634164165256556477894427861829912972676623274128412832079613549400047996773880181784652240511242502922258552124787689164395852860576912609145387818837615100543709857030595270370054778888844296062445446997243939248315738412827089866385541766885538503092575921961510537746674136894411389946032400281487308874952379270034594137650714675911478142057290250966253438731163983614374635467364910195042779612992406649200856083071784323799900464894594317553730524877530606715593388949220840366476892389266675492933640275045045935600319373951685522488374939586601076193177142240941458748444359287500650941200187871038894939806975956138756925471957267471879074576613135619551838314512910910809720989536458982633141615028498217582583288849944599891694213906943606367094386359670860211165679681307970865487743315602192420172325856378429646842785698659654545437554183652834004298349609906095835821836371579055955527079980370221438275914973507313845123958514568381064998216332848628642047308994023822544969815227875486277454166270990585973830674003458198474333018445813521913491071504496568888876784874515755691574481222882629683538456850238608129915068098500599046442484797496007873208228789403198438061750638982088807184528882602951713869244146068368920039211266430811411620065820777773442571688806986246589259854882078216187937792946281766313279722380136244157624207122280104928020919818259102487282551649844341728117260908451800237005244667825932319549702278256311611437135359968481666012715533313602122705599497151460963673053442737037197704718852708929378604405304033672528562291897777985634048736855546141607191298195255614423647208028034096679485498888230700639683585112409834525490597684541441594121485178314234101863314418261768977728427171572397087799911116607760557371869190677096099201154263601350172368610102248037386210394920817558979585122768890719801009617852999254007723790099492493559836633979237492201018909770051965248055838840268032231552910981302399727858794090146416896564950294334542183350191177477907332871797599396996545810694147071128597035290941623111853106655098652739607175778156926101225038595001446752598184496745945241286946722075015016846071246499326616068671581007941395530568852938954813125143085545904702883404340258252050261317972328766642587478769562253311456808313587504135947427480670017681559018871108002858253232628740771028298489569623869105670836961822974828260811902631900458477200719278900117422686952522679935095184882303669751660955958195635000042099315650060820050858222243079932944934514644497509033830500417953573521818393098723711064915920225540113160197887298940144398311610481547007285937153831191745333872240469491415420842629310543162243319161503962336278943650885555561036271858445112462951320711119966867055160567044676040331290620653871520341604879139804179555285371878264411085123685103858695827952554700740973064888277006138517939829595715183308391070193761185515148264899634773709637993824815653436679505471000055558312844317727669063431783626773813601628750982397206069430359391109527792122988696853664376997901677338666327524531078363167435978341203163599112012608290483436544490888832911656401579058648699866045094679954983300116458323787490008309283071420818228583028628733056550035167779346788149472467861278517629260273383255545758691730788704557119319322378577664922246813120671238797875154959207993635435999760899925403175974011367220932164505495714232126141893609593557809641373377533963831534030816424879603734222999896460539300886262738590714263432326340100732670269901543198514677518532480182605329326756200965394518136043289219108256564415800359816407773871763226709028579497807128312221808116106616156722227192979668308127932866032270726351974952755231477568638853117333780624730306764639993675881585436394699700627384564378659504247724801541123337115234833661642515340648011785328649804787169060273691874942871905919174228310834970034151318020364571726814420095448039208472542601733058850372012575912677173830704989915428142556752020105034420020419992525651901584126435615962390206221707855561375884757089872626378353136543575954224936013105483422514986626673910525126076878863641420127675273470770691719509582232786282122596554710809056656673821624581270491118817550595718524385042056345227955498320454920149048097007727285723744669109542442060019607879553091817164805326296536327645755117580959846658311731796851669000484074729252072977895193579794923316622941420371356646603060674357801172405762768180768074281537281507983673231080670938359073291358418376569550211372305675075873354049410800614772187800829299809008347638195134266099160594596153613894425804598529310258504254368522679363119070578381328026962562226251582216486654725728355659688908360796613077387112288030254837899737864413984357850585250731493805331578866454511212028357385617869388748113383671233662640836181888490565122696940689955157659559003717695416540776654766848876410796524784970290648317863174113591200812684097821982138628990694123193685307320930741762847804537846737860551459416632422437560680321060866282713829570463163022079222995743067820616532386129316243456497520599606030104617241364528579625420071739282489705578800104536644071855679630312330197215592187416456440446497553970520243443030668776706480253398934464715282982152103708659560796129592080343606013420637134561080798649454673169890097994082726765711229053453543627033706909835939758197453783712294380513020720917500363578462597655288276939794369268518414472878046232386404796632142932313564360285520131346170643672444130320887808385277486568995372740784562690543610571103529283988853263623033702260392089115670894802331009057817358676536289513789359086603162294413159896075984542828442084407276791887377487544616715322372764702426667122595923095162240743272200612382485605585354979003728148404608544439559427520426235300732111821339056564874174544370666853241060257058863060294961763078307351928158452616066685735407309023260636649576777792953104052474666303453158085766846115396354343339951349063451321527575015820147989287713181986953397783080719258277555190700560549004621653299911039781287811307116072396354935444354991308610824884983588224184754300181132339839297444849762361492813294147564189518115971791387182967183422469680733696762125397500659757884862234548173592914692147485963763820168697998145265902887931092884932490310542544537089590872538560999736040277023275134330183080693324100800345777127007277060934949803433857138373522270345416634688586140675476514021165848626781956308248495146165656375384617955505276517521844220440448544012690641001973534053679645129662132561970924178762733711322081218105747735517403006698690583902800184279418638559853307568155121915259896017195868320706054015158290140077869833238235182418404165970770249031249686654932776279537782488442831584692360327239421995109579860613847135578059695324185710666357022209414052803043913384686192974206903072321195966829693979458236953244791508873670054519537023168426604994542113892163590849881320489300547677964013339595541656612013165234496241756120528239102550017218995985605780741412934595767981767685524166938876796122951740532458532956596038978212223709396830212412187891345957322734400543878367214491721338560386945981561180845362680571053823610923498581511293887577704947756019451441462964115625403297837646931399721396902760982998709175452747680006113775168590173095964143840004964057422507136316437374964945476338092815453435869267424175558473740087546076231245333720337828461344321299759483950265186255213559597626555743536248992365646903264055278390348467115618709792958409078320584210236341508514777897288854359910244693645237763153433434174682955132891211512274047198860771565412433642382872361974108631327382527400068265652422121448100127829822737424319057228710867535944444810991966845138501483737287972846708403428754513361015484179043071905364426270539477704881609708602993930632167982813137167990032195116786746518909477123978280733845381058412523701341921764386782268797390943797640093792050701383014506126000718600648211574239129711275190209607598237635460993157102333619576012914075509329117295782731252667406794229389803509850164678548847414122908491292627230229679390308098684351577453161076846844796034349304980703545561096064645241510712509485537637896094283979846987503868432553577408094090408023032065873127959920912182506464841699152160442613823083952797118964553047541404268257579698833638894813390811928189459888013382468381949417732017712532633761932379702160650979065052524754663424731462427839606796888135547966904751803530616555570440985403892429794900499540649180477788042828420541272986670715335499518273311754026508959250041687740745162741988438000936904954796992813850502921309179327410912151439507596671521872806949566433702741409939635377369696641467692254875547377322973398943380898187284946825663579479250823060034952770163077335369889538357965911321330785305597718803685582652893094519099595655919122582816841844526331331510469800046728911083666041951039566373339437571714016014188259092980237996388689277032538832579835921286451229762362260424515229237083523000735442813549512148641568670460318895907524026367137729177400634810337952462941365738055350054949934686377218509569849230277061916941170464944935148647621551578658753530408976282599729181971596953732509197556665770588399728519322414170055092645346515854742388342535800114542455201094921412894441957623638576552987926330274362275650850966865896654211821838779466389960479632605041728057572784768717510053263777143801973468537009845916259714971659119217067364436107012240154216061980260024385558975727771347902487052306965899331955970417236637698350947760148213559804254170188665156870348200513857407043142204735308145109354632122042713997514774560093130624198359705339119770019852130559323032308316436131594310610364667128800710908821040523293752584909361150837107581928637577331497737915599330733059253935695423614177277496299994606160575202742003133878836741771773346547455942933260457437857666138817693289437905543264394516299574214477406435505798385153660660608367465846086514062598234112069439764846929136351824776836777637121714217945089930794493606338160044154788791512168659201759722990320807113169040504995304548200515020301068971933260888813228187960855158797090732343648715939482924776336217106396195601333648425379689696509328950137566860695253237569843923597929449590963560818439285835957975803604113160747850656544519759867599271062984818619241514657922362356655724209712241646652532206597764743643076875083956005033555032877605693811566966137918868769290342139710552238919142569965951112735821995858530699207517201333439468998369220696558425726507822259324190556111244029793091636191686237897295852290343360708833360715489171188056785588203420149398793198781711549110416803656882779495587595346888028537329533953212657378326120970990135395162769215030563064015455623580389282842145374536729218089441870100492171980211249567016943205998862663456747090881864230158028788903844407199951021598815479993007855262736125508023131843624917617044446163203644021103418543877657748532490886474370866608004876665011852716610748639419834572519772565530338805917905067833114132937143148849152673217409585573321763430876432240767851283530284045657063044531710802670100651551483391756098332491517320049659067615482502137619869750381963540112149857541795572797299241157646567651214719248800662120084571637706872250416358362176095826178902136119152974889349915029937997477123370182665624728005132340202315582884929658472029561827065706967975212785471893958441360628247299831476761540426364698774762347770856094706875306136727781561196636595172135365951515979632896529050135894684306633509562793716253954871184488117659719412245641258819119998482153103063473885877905858641367801661748226697355658874409258717873320902640445350931105629475891222515167514691129812361139539728689284208776895878064539401603707224255614473193950647728057805582473926106848641796151731823377842111102318803543133323564008215870925743858961907592359272665078716291506045712953446683202369433196509550413142267682619830070536170691282128063082601572575324588147182781694881238332546290550084334467464554293241078192835470764906068706967427512318055737286610454727028671965612112758395079737471130616452811178060468324401552396401661905647282652690650489554635668462049008873830038143784412688005968662952755698186473300965853501190338459538502791053004829839970272326531920370580632548243827579133661241634214014627104000286187764485969203190733912120315944353006469538174059020062865599383926625483395065304936623000553848908761671305855294052136143546137820803807456608486156886422674858602147193655567019368116420134656615066337916905073624904615115919771303269524633484700557565273456631255822685942581887866334067286784190451622390502097130081599294205941022558069696252314363350272469253253362490942608109169767950203306070110729970865293972187455190050442117171980845508457646042122148818661260221994412566187740009665118545640505978661624432759759712104796454068747034826260097845554121306974192440263815697488280701486573366076521118790099717762841419753068198918922192942943600689197833225965435486244285658373041567803003464295603152862344939433375726757219968817317695153988774175247206257563907005751505192346095210877263846200181252998503476487613618531569554967051652372964109446962825466526062761108052679422990693891411096778975284064159729942152583065726688875396027402188749151881154109784764421647065826135690700513168552569486970550035300934315749526528093755262145668936628961007522227500442235019857894713354548312129859421744458486823928226744073936418446384669492434799738099641707688457703262529863572184966491616132637622934531606810164141208555550962350531486246567586731527813170399590645974210917000687408355703662721347920988529291359143726944118098204706503499368707651323161721043634155550451818721421511441753462944200292782316757477101656123620889533301093211044620336734995416308136479481750685346602333279149854250397328726121480075801960209873176754642882254706913811511157977842772881756282465704247328487975569183287787706707267868435146680766672930147898212930124817812973833010631220940836803345734003420095249204065115861099588875021234697527598880525219663709590409324985311789213940397133821823042726330766897409007760631109669653023076207812692037555316358864214296786928117931508078805440480698518782329469066993559771035840100600434706961372719916657244468201192497251811803711252439166396434092359370096937129687498852908152575879496658043278703370731739266406232958328350404137831462373950736824013423242440556730263515802236714025025207260673268776186864945852506125766759410967417621670759093199596543071975647431990232936082587920485264361271446509060334073708620027017147654318325631013137794583862900825939043472245592085640166783501951267382122390730001664368271158363065399661759624750771483461863547335793489815816683795373069253289115974051862571618926968628258938112476896540021488929529589918104920798129185691059131163510626524199272364785136682888731374303474277069334517408906464739234518530776945913731230063470670110243988349297625258365375378848852183353161962127321654298458914220533544654274246414527516755858255181188399372330009436439668863820776745374385367786432039129960234099807229362848077489546203844776449887837666537061754738181667317734222583065545909757065762765909900724172420065229040730682301172632974233276924641980060605137389081024872401677236497617878058461476087218197261228552800133417435857790533315342935613367483246079325239871189131746797202148788026462119279377723634489288351992748902096762746825988550102694424874338587099323943390057838430192126571379408477446490814335890379209831637272379497618629266910891632277064208203576725740234167029318059320760089409416536476753376971687827678932196277095536565452477157714621633306408795475406547133882333582352288189637336352561016570810062420665352577919374981490677602440667228049107034494113229688312725933687370195749908750472773935464975184637575861642462864927441626789137093478350766580364543550129408071151759086830653969061237243530142385356355751046894086790969315220770453501364486773887579301756967026274545066520289954164537410685801238259557790187444329000015539176342693715258186531837424989822454531138995146019245585211538355185038302137728192712089165744530376534513558402556923446396748248274479251759122096428823540079311216408503304355893257200376110611444149146600455923555378998025025811669747340654761221059369044565302859906494055141488316743577417566864811492881606528983961089040646547100664252494767025524712936843932545968618722518957849865825408200708677423203483782895046054525919704177791850557809997030800996683400059914796017958152970948311384966650381696050227393583831756390264882224637088047081645573573796074089758689016813471757029639305176304244374931208984181578821217289852345810886667482834799746372614100864066445132266321554144341677473174691617973339660488838989982392399670942455325698608044280941202020872539830914989461238712848900702415497462995247439806390412540166418156507702494073706527740231342533469189983164495425540312314162135908851510083736988836140266690528048297870347022042963231751665858788488247285787954934007284593332889495116570533447867397158038129569851762396391997775638181599930275649598690751544231629431089696034863426158199349185520394685193135050183018060767603930415304141494226551195379595375849727975918580849959513315504358874782748851763419545887118149331986270235172322292651669981772001930751030054842368221526133068358353630596596041892030067145908161844122752482047264283416154562170894268379007844568654754118638352210400696665937846885963601445325116460352652274104144180763044857431126919045768911341210867802035958957850487822337546441706286552880734274328502494713714369776125865883367381327835785528199588165147249398933326277897984973935886377187295114748676333094885546652547927655284050263902988575234596828717304184038801520368613554701034803838250963694627763219762645855003371766588750756385903626362123522052703489933419970018877596423288617990876134059832005713092161186185675253921065826335116880389433761757288297894084866016207693836173597549255383808518172796465630544541958226829555679569907764526270834297904529008532187213868813406366417637135672086833494335571130971748910299570340334926167752222304317715950291848802804954535253721148968365342701453550337723479024481734942646401182509281623627354719187045413185570069925227663592177803969558562961177335710747970268202088529127958342324644615514706248283275279606024983987043157408946033271352857527156208434383236832461647435743783490519253830802286962275400965960102545355025040241718378590327376408475519771454303951535164282894678961812278819283773969105777682804684576615008789897954979144586380821458306442824686969405892305639506947273595696868045699996505139987800647945979970789769056274837316215940451668008821873700067798595600703531233892218502920968990174591934521967683174154547008763180451763899295938678738887175186665095984742234765085575706653190167933995339047943832940376354078444429635254458480406681700688263506737442498492547482112862187476820630752474139409112579558086187082429622053349347225761023951781144662513211526439305647165542216726435775588641705049310620989068827829798024221166041377803301070822714834904476135874749466583547119450334984057747161755813859106513834091706002869420539595333179581209764586024704826013569182765012930159058067501238150445684055296931328566203902233305907959120680990833187177711421429122347916958452547710948012768751691817489659126716802866724412538545410044158662617304893956395602285468353771484250737679215555488379626463194209638401455137625163394132036546216248376355684320573053447490349137383727193817265862602884619531348070705229494581589539587190798516744043632228270496669801829802014737649147885342076248803474114659909435569803403833434197331567037713183781130656356670745743325042546926367539554564012169253173423087491337933959367026960992334898679014012453907027101429596837587014718158652901584714056101032239775032947093278540094515914517454825662587947086679612265930661695634336438208083779549819836024507093198386711230252194087485069072199380332299505394570650590756606065783747306985500272669155373879326709725736338176430460253219943790643421701823408837283717627689138132441556526647194641551829208220712053154845340115675958422393768215006233757214329394519870042691531853182894890621284635148399466460955883038679589808493351225548055918809616772264974343281104255004865780247241404789239864093419614268954209683967357678992906979629673909484737343594590919936294869101415185819063117106423192769079096618986509360704124700583520753647468229919217633181728239553061617198616378358288214287406083420592933854776483915924305747134916314221415741103830681339932386791109902918470947533792354285476766781164524536860850100621880924999688292911759289756088935915217506070193438413607675503114655338896363517657184122994986944015942394960473417286537694743057995032011788487582564843174281661731180304769676358613335240118336488504639445676863490393018776282356890533027759475052409264303137694151126495440554911079153343763096291073037001739502180468549631555335078989836333539456750229583867135480246119127868022842670247496225376670555663189154500171881704987832517135798680744334528484659714894471453795448754029626435656043117131787916231380625696884917422182261183586214425719330401052121929715910680571993687722171499905347405070372036749827744616140684662580923783297714470680408120775769235450567334204843654837348403025246161840598494574099902988045629677715462795843563507246572270753042343668952443911521419482969997234203374597302917158219559597573540003284297973844996252458177645923172113083628617121369198277302260492912582502359617246492668435170889550581556553579865479703777866169900845465633616068004119986075779767154796084649353117085545336670789088918169469530984346036949399384604599669217431997404302521517590544970202449110972149587629548012331899283317410398809712434758249219633168949565722086735016719111660688015218974906626213591160731268665398299666386310495072028239222854205586121292014056807432215168445197981086421207837555281871348702122968799172115941305961473732795501587337404905791874210626033229067111064327568606072347097029170444037438153173737453060460907373917559400571762337453028175279016483719850358976201520719290478101351911198787352186282267342240902422795230261082601628936037628719403883738962820555161118503502224792013821460062113060740484129461700249645505850128838955341203782195237482538241322317701612657696502211946039039773447291462694013657438082507169929792139568164472341314921362166876230587857784767030556864871260745607189889127364960401342392462426936347897467276184781668683772647231055820285386301815576868579398245105896354932707253007517608753597945958883634247150099129598119174485797071548527822309507547901802085194400977871028089765331453614301226860051773967871757690526781047468038928161744500363936395430036029006837457632259145706810192067171063630308916741900349823786764252015410036909409826132389704730734032936549709223241086883648419367218879718548022782569121313775400120891045417513046108323815920283177351877414047027006994054432605967319822677793232076679120240819875745039706704733194636187251306376189322640648833827870626221638740917642574188681848494046268755470079900003758711730995514185644304310998967089846832815571686227650443113894265948681432539759890345026756442232084684706013866193613624492787421862997870482340686062379745828718708358972600147967608330601295871860234298240844535247247195380749049035196506743793991414214718756830515738439951069707964458871815114939297728105288165834677697839618006460517503788915574672458115903196005033816800256287124489906319531423922178133746452252502344463064768067965883500746027255960252235338200642832406546706453126803959784304835982555788607275184830946644324734770315133299088120072674003407545260915350139175727354544537265172735003060801590480945209791444466332461150080038736045463151970813736212237895192684867700679657996019981089463108096698187186603128526477742743938158247785761237882959995087197580781651771325381878850354130999119313836820277878848795741023100586424304521943000594954526838656758565732946966514674890063101199721369815013287614374152830198762961682551607180035891151135691262112951245316399319401414166866628985794399980167892922585944392439830340751578814934977954300511612742551351921583311196300237368625440479580107523199934835857524482900704616405425286447773471951317889995245645018204833257128781976724170925895004274209144899755173214138091249343761514305275474092723583349440830742688688153319991999416530864180585923970997437041932696209893830713290591177119643123197799868466629318900220220553969734201564715187171690196905094740305261113436371581873676933107846304653079917702307492694235212727720033208539626901158026785371639945404095918427595745207995988149527953140420967499875807436081491449449021181858238526093654828115312874933983597793890247494449950856816339844176445164637617141891812400818117941629421886168013753757573503624475232538367086954347366824517740012867436884572945833860388920089062926062580509584460648110734336930645185465546373071943921045791127828354276991340884324623217967089631566454689590381128092277184968606399085926987722263193968123879037292540455000543547671246717991945307927088884057255270136963238928124067812033293127208410253015112928529920387142281388321792995253060974750387809580872305512534955123815404135624372062798393465219697645815233525686934228118201132250665270722330508490557731015701245670425620171430150294259311436284542245028818755036375092062645066829162505180930462423872045370628820236697449197140719882415280228053068428815564707340332739257669864279276432785334749715320825225317587549831580531074178503099190306848580176828906027012876642293863749676873346873028928926658500244642626362226787417968252883115305575556993732264926261983146433567153966641788312132027001947135991120807458243800078554551355303808515866630806387334233073966497576941073330360964761233236051733375532198530157550854150194663147772488920333178640987851890731303268953599876889103517898024338309800291194063130905117099897302253371054359108172897274041986605161989532188895205041794645719478296199085837719217041240551270588920703124374530899244283520494675153309708392924708296925282048704398143362362748883540898809879696444333890289985205150683968683454752824527666578460273536081866154795104035487537445321697328842858602971526781932018289676756926812585182963098164048318434448725619925437001504941343054514311930607738940521763836561236684578614734851265644861401480681195580293360000921078778663326554442644665443831172562310923167653115747851273007913970341132163943403243484449989046694251230101890900948473386543673366859495535742643419751391137149327454428051329730876978629213082706886613733742493798530741865186753834194711032324721750018219121468416686970536019887412275895494900523924613875127745236110406573873472003739468652720343532302501466611398736561368444052612309903930328592240392012502271905942290980105153906018145880254862497561222875519631758195001214636291176963592439144418347951670163486326647035159281323391183133336617090926708333645110852829954603053335680764462389417882295192073729897974775496720129111511485503316355311716819104558050736649664615579128451701409247465879043210636456090833834534831994022801640835859139152928200616291869788011384829173324522718973472412139041646027210993551649069365425571141577829124093958252493214943946048184684124241686725615347429855056050609992127071289605042659333690161880749034571321631168165215018927797086148642416201660423269290175401281123954704390812623097650166317771340456276263216391275832496167357043898062275195984952627143414174302780523514520261330748398740269246841700816991296612546018909718215485328351202092685530033385382608262973446084833375469604545593168913353998212911322660338575893401144387465730251289659161834916370414987969002949037765358256376798514460001843853860845133109286864664267096286348251517793871114937697875283447262229013301061088627048883227289331161325653631033030354392673113009047430174450949517506678305325439084540905657703656187027721324144060689372772453710232584067233872043296111883055419707911645810151998906989439483956418444816966227584951801221938962108944899031394772428975559596318309363835689298015826297055562896732180659585227025785630185612772654675307628224907147718106217913848625332378455956553154961700522417558458535583290584861278832095784726387802728367086874643185933524200275908909299125513380511444860469584556221605885816847606477417284188500786923104407716642694213311219066602645922379090785237595018996693608891925591497661502562174540385754863995693037302574507193607130943592904841853700975166155148007864433696582959660476047299967480431482771689432164175383051897215342682077056428128016016316607042545235280859426117199083943554319275749878508814180837249558619731482738002830027782989541212114566919080427876263468522177953940676114329302793033947540773119158114464313128518025179062969940932354662329785082749399115951466783172075833921852408314790455148256958437538550608894626986037873477770002651900593834209555713417806064309431853645184388079262958213515398832650877600627248638802315884652281715393982564625575477790751309382889873393666689604091777366654205313593410024353068142916700919246147833072327248520903579453845984467413200067590266045597202777432969319552669464205112304439640281525320129177904948787232755557607896908866497331789173114996891793862915557117983743838296129510986171483194866093746437399326375864818867173507547547148100340281475578532710982128387305070398776103748011122025264043144990237356777127518801069222331150818241978738977873206146692329968012380880723025233515193372291506645749443282176209774874378874707436944875800890707379205734681895588540906487041845071417614563188257197542957220860829888568133603365934759352195331187464622569327699528718222764835621999243188476702196812141910168451816701766519690181437869024497840910174971551971810931549708280657107454756473081913547027355005747241187881350585978646740196238801886270876645818405047109895637107469443055936712873036204632111315593392633128292495106552512624479763721195057911749224150583619552517191598676127780985529139979700059789723359986146267305351688375006295675751126093170166998894907204106650695941462239856797816019579282853999909800859150009685502991804865003260535829870064730688955928322160339932381223952590408447449749282483313117193278871737435950472827260773891044315337328838212275346316460480999766544275572909719754164756590308798588645199364829284600786707782954133557267591998261680808735735163959438423620188715765694281043218617126545609640962098705529263000052252212034713547446501074214027786325457142993443247965287522605757628982089921249772760831602395398052930945980155376449425963598290116587761488881565731400588681905926771261610593538257459190383181373948307318950022869141235444181285665411698024640068191702426383557520277316295345263303090164958331227159509804113632181557988977014667352910125221538671047211434716783196444646027470613563005730671999263164299560544726734645763260199202129755605622226761135440602799164799587493202544179695792254471657257400828506358730068982525315994114116933754231595941426257881038434865803857612459474469322165206178641825119452047796119210544706121455235351806310140881122555026917906729113901016422403019023063608881293015879727155633237871075683127449848266335564968017274816678922697565508339982276969960746290907478852881572030008162523929324909118051424365289489196756308953532317379421165673910085458409098541597448566150470768812641732990052017738511107251315240315089744119024096990347941294102754954167861694603431689318349939595727968970954636156969246481727323387679523010136867846619213521634371596343125548647022601999373066222301569948072093343288965433790397276654276724513308257253295933233485320453278189214986406249309440090231033374621226646715125064264709908124615464864329882209636671492426417937167901965255778322417651691075830781089149481401609722132097496022366712607848192508174761106488913913759881185978263172098765291158930014930099899848905483416387153925499214724259786777952526941240255830056666529824447868847313414436565702924025290013160650193976190202083061417904564707689396325242263067863034404449334264079215294050748710312756500329244850863972656984936928986624432766889964030889289389392128350721103250104139277322573331264221081808393955741389183741631454385954504733321156232523276737532894190009341800572095516403029029999926905784322816924502135980196437886443315754304790350985992941817494674548561066829499595968939650190522717827817960785466099752113370831782183112377617238341213930008689414628059568285545275356449640907127105786575062643798782532569475132075453017451087100517481758000152876168497115678459430394630374603600155160268720827765146826995973566013480011794369898709468252870287776013584291155348860922515059996868901186182517662928622751670268638801659226884062826919134723089877384715120899054013167256633976140837067973607042177203290164064291986715651898877216047924978996915287554582672423079472684898037297770755848959744088136494509220243196532018164043684276598941168344106005276332798324641107524974699346116108108373129815818200649120637918699011978430060509748516217356731076599049655499615471612945132301195842206329917636156842153251238749997185236894027616409228137087668062087958110648763569728302567069041673963045369234383411822810627093177511340776560168017052362470023565660628168101970061605474889236460164449791291945984716897156255710741789126197940280905738936589144429568430717413867113741120680932547692424977794204742838829750033831846172830021330530142984130270874564769277663399007920484342510781519002033048006469941801305221602026823814097896291699857793423468633444831800339356569251225169591952026955826030062213410525910459166815501710455992868336010024293889527552799785493767290550051774317554871095450047407593433351670842483520635854852300158128336005125496481081040698543081168137462909350541269624632284337299635954764839367173683233625414995857946752284646951378077419927234375491816309489952576419927620003095372886294395437994955238350429138369298713463847395314742138352455396757199915106705087393241683668234237885265967112183079713750947933920292173823920530719080518981351796537302325481541816854395183934763054901822678829456152380208324980666526018675949843500708221080762992236214457684777610365446933822522322778150589463502944864107597261335474323337204756525441145089333688895432615118193329676520340791882719151906601122107408466636110639802270828188156984364834702390182521118452510988218863678682004519849180694391257043548874922276288916657386946146866691822840466026407090801073155602384160502524691098574900991554433437711179990988449259149227516826850271961304985382719536291081245510785357942975511553408874632193330702840734557228315794396885879496818904681600945476769673949060454040180093864808871548990750738087421378253824795743022339362574881051997653703314709845042407842028478997902333178066250353410214369459958380037190896365136909549691524911411023105691084193311184694549551775786718183730679831491518624410108098183519741736210704415156519476238883960246145264343283825265559231087351852601876724200711270803367088463039693233614088175563182967789292366006939340731853384338646542159404699856776265774341792945301553962668021007660113803097887196272921723023749685936282934957539271300304973687168626248104884817694434965903113094793742899515351193122885276902432819786636850604859369409715363082527196960018072058436492554286811086643214121787780338904308017711520898623419495959584791957143759921755613232460092120863591006546387043824447979839960230209295841944664321567888105608047826947888398176401160735976126680028619093661836173601280630252246443622186121073803756198871928038153786073669617909010603317637338903575782301796283733605249491463874453703530232433649969970733453443679286131212372625153170238665521617140988936167190848780985100404655291429371033968902682877961639878468418819461286314198972449434791774390027068225929553107491386198572124633608283266665192914619467929325589010506093066369420682694154329703377461765664666091808401618007979679107043234194051743752389205635843691966217750954926728605449003452288305571838733914340074562623147347240371025232551263477881131711573547905432445500971246530454637221438526997801382673462219971538133351974610019912303033179086326238578818536047403076387269080903989636565898341342737844685932979658989296216298857571692046460168505689940415400746719503666494200042376959024537122835745032046027575054583974557141585000339453549109892852092870907051439522131624933689688294706893739392829406312182554792783323946188155999303771615129462769460661786135672813056720721621730523210165703754383665673680339125066095765057271977903167358238631160357980702806954476459451511923291298098703193493339266454817648078079229907121523158157257390654033419019214726643172671528780779730322686536167408162413332652330215722258364593923880241724676243202352535513814285824858007756752626832154090481108852781135615035508889198670694305065121196715847165061532756873731647405007136157392591853879482165816113328379667485793061419201673146874825553592493409012276189315916628836840265482827769186687177016128545249589861418314669547752272451332636036512070798736465489743926275048531466257469474406707531963990376460329146009468372106036245892253881149372265909421917577189838541672797091204874560183485131981541855101744691047855005311262112974669868574421918872501017693262357093793067718660699619824267709618812071271563863853967837989501332596237784655887665118835721164263310113365534700388243219972638383528765235215856255289771310484203897127646388309730573140518121240027779330079635690532912638078534442520048191661388944013893013634640853128014560980976393888235912943878598495678841706752552306968410598458170968004218785039936828129433762544351108341826727751521806888499639908228381900146756663117912046790701371224485221276435109116718634394339339369228127792767752637796763771918051299962222677697585769179925248684210711213244542981971736778184079063567526795151419712276647863307790404922165381632827116724886743180873204507139857989097208984046465556648078191588405180942445703589754444285831553696600933169452447873998903125316430289817824867797228750104630480076196636480990364302020986896979909377340774054632655403804960333654446739111610235751771725543054107319476042584364641235813726427047221936721041292191003891290231593426797314144267849413443843809032485962044141648749151043555800734632580084015407235828944825278902137292714782141484486783578436728056745060329374945700425174316591293117426045561954707868065528232280140351289983778390395167122852549189390515450394572015160217173016037332088178542403421005095704928420281411820495661880085126583858291146938960585847490119885216757989368369429381314326202011566995245711258830338282882430363902515812203078941621033959234912469123307609113669328574915948815672805174654883093962259637850418367601804998900369537358918112757109894179277890504949444329962085786402407600023726730640076236703157638874045749832808198479594643864693076420368009313115504568223290048850848328574321780639246527122725318988998645348857751304524891637994672896620110058345160160526894790772632879507879047086648157165989628586711827633621079817190126908001557528999251796719598758769771895498845149238662759884465432252536727888521021319614743513185840184342093869059080156024653623815525986286948632309079353522273190189909967691398588124221211026694047141410540916362866305256804374364411414624915003368928816563834581070527913681255727311820327499035327029261571660348467885901239478813218732255078553478556149403174654867497106783940215294902172939124850369173222063794926948213597928649039434232872321026563709325739198477835745577000622769423373603442611525095227796511168775231313066592624017998937442433503212904960797968646632743255375167682658679757704466804349535083396725008226286683862195314461536074281802665319387131806689309630346186049025467286385986293468143453174839263933207289964071761761042576652789081980958526601923746973816523149182504508452948629118300474355684595831155290312450068514440225409767223698395249991119210474504197603616295042956159207840354020820809916594434359897938027953244231466919876039917968286323913381728413075999165779537401238008778637251460214727237902322698093929808078696022525775178038322827551531611587860159948934272778772258588002406956793185297792042971467813367685722056136648311240570089793101675825500242064287126288104432247315860141807570203338017422098305686550937160571352490838337214266845531240575815665166857515437828149305829556818164210855116840454042328082386761903339506661906856333749722698705879966713601483415936632693846239433378628158810629706247182851260455554871660535128752480510914600761814314084636909940304065267665650372221089017071820400216342676874718567472128300792223275974185088188244485704585335973507940798424453516009800211009851285087072664097595872672440620044280776276928168375297468427128786829844405171896502563114935307255699220523070608387243294125682124559126185222983268014181111541411421715081071614922516937841086039764459286243770282870514429414864822509930039243809073633562408088875104410307338369651179559648554336464951574210503886491259213926908333084877448465607887870583323586666024011476910500436709649360932661165304027934664855743658011318936224259112964208685173234996387268647902228009045760612726682854020734196649552694244863772136307936873091910272409500840850795527855774976224568386598965222964697830641535149567234643077233285815952737184122594601846527073861312928156395570767316933599653823880515594775860228087027440384196687288610116106983159530805624307516105861752346032097911727870635590978693653928940587510306365327745690280230957190288494940770013505678831140857302593242224704326741332681965916982677373778519786353392485914422840307385802806244599017134974119448586202868028240237089713712528548042749282673972039318639955618495508851745422004805813478831951714051562371850818530170620295184574985958993717705581498107742437714482777691853031028832871304874976484684776524786085279903526325008516881317264081962395948646599045897919802298684269297943383372497813725369082625334782871983719380457706653769794095535981683640251567126979719361756285517047336425243503569232903198966734457488438853357532624203433697224563937900470883634193400821979963973745085450901329363506856006857807186424193833048701489394731782341479396055208994072897593511574853014031288827465465565913523784497030495545775489521200341478285051271537669341897829800992516521228286664468656766816314598501241798413647803948292326017298359373467664617007695068169126155235185777381423861804185514466728721074494401843827742369132738707370412197679981576647948701924117229308293229947260567755555997651947065805000355163963042934961267573099239977370735665715669239207982280398751765760183005836225885975773445061310593333083780399886735287745293229100963185995944349051444440014246899349401608999068145743572227519639647624986831597895352421407140684223776750612832030042369042699897674040802740770116816587599568909491571839003891683561532260282121017958984212340825473242350959920313971040248285677550789727504344287556806535327978808676137415936548283003304439991763098896154917167870255034085225057368695471229376625994948202330391483908248553623660218427132698900005042630784441839195031471558864524372254385529893436961916162554355420849839791100380154523764124663032690406978803623954397817212774770473234155936554348148366737002644554026898145005360644590115426498243744180077753642717631252315303511939085278512828293531476290693162946237224615425078428752004369168337787974702157980058745348917336862034314852260716274650011630682989482396615670374421836857816060244711720424139147444793736569306846268956822851818030090170775291898806529592272000982725810964990167815574809082648307120350685268086566264585918714479394510926116948623914235480532301577032967701897414451081447040225141985463213145680252486483609354476967635678330468426826607619709137345634352919156579314267188687980137294094832802559286354046283126061972196340326027288059799891918016159436815834447241385620447935679055810827796931577327755825551090580869253606959496739679827298809652038883792048226716328021559857430033828540220496075438153452579807464332389860281249995325454298398061568872092416199310070765846101303684285984238488468940928373190308208830339190401967222442683309481404187682127892752234273595329191540728260668728708477183188617221574968263061457360285451720100024997226393296057077536361458960918756607943845369142781372858532820728870473055938887301986744371689829378177569906188079217128442487369716900236743150782665897394269315791497037856051455405120586681992499022692987717521501342113918756934885866226350718489736053891049558684934176360775108451683704053036704750528133292485893127628518000181956417167911476124420421404575544193959017333166483668939316835617738175277642270867071017282801846155648451492775412323314361320632533322980571337616044369336763876169327061008655878449897392755702790020009810050150153560687950672916376684053897123605744873467051557445312790779259687054170538758495281833935873123499149454734210467662905443121567598604461850826241485035986465634306836359456302976592786274909342514565502485802092525721774511762026978516684927671721707737252327435290719059680940215410514365709513686247747389314392816909063828615161067307438847388712847000125462511445350790555959303672028236744536548111715981361646180740205266076997983816768769628220497772133269459048054559773976342870966069057478609730492636843278976741771973225101606058229214550824529302186375247548797867352673543268443429751501115426673024472062272760864333916149120212957797722775528441021834663144766501865160599700784170369051656146238984844147852662426993973080593908661860459631894654600946689922744709344066829776504977846784278036415823674921745508663832828263307620722350633308295049246263219064143108201102215524541330161545429969898381468776648562316566182053067817974820653519292587029518733678887748977342261090567825982356682344839021348394532273421424031779500180352866635568945657847186717587865478573960899062153305882438575512760863690652515367110079989588042078831295035542930555122800782549922029309409421005614485957562782861755770257245124414451553126261722755884432176631194824984896717751230438225005541490786216278756392602773712785238420395032450955092337183169881168616589150310726106516894071642427091826281816250113456150591621665113516224013010349873073025430626214689652776609965020740581801279607215843878300663668060628827990690957206842842792572004937508189331843020770410825451317909164252774872939732796261960242630641362861962917926675436530205427544523350120445646427671527861573192747632432286685577677198914484835950057627440620495311792038167759425192516372224844195636309027200795617178446488424196103843335420266512745834701825995264984833150274792024708492758251840362513775006481387826620321918098436966748857885557928441610307251400957881124107417756677919593720739198703537072323798743634643141717266950202521275009982894573136900362359772165470247216858468516902649400647722183758850618935257319751869986241565636582191913911330252605114718121077045643214630811165769179725278954000969202767641121213785001113287793068504062797301253636851212965278581138365996764136207863214933728054763904230139059933397103278740251294372149915044648766348372528641570936105599992801659022832108149119677153681485597767951705085431440833253567336226480497197795655554512207766197785369523885956597274971882662743753654554352823956469970052554778432482369833154548199081288958954702968272701680088258713061040026493477784897112539998727486449065175337969553794032540194981214171971769173003898060961737046811825270141651462188416552892940272901268515555930952656288438507466531467204293902975883578800023499879745330859777888310696581893010158282709419360530069772571927653165599735828162325402747130143634953234165956510147164999582610021969549414858389315958797262788853910774220717375448203426096344461633293257387217529692127508606569412015034237057884611304857395048933448003494619312382217077017199390542369022204620108287728669153149162784423304802153642992544417106889503441924823548480963508783759443288060081532255282982725409344107933869208782779848786400273564445504377030578470497520214255156196887595371664423213303835096110005298806289017796529168764041116821858908616385121684684847075077169537986465373694230847198047295764679203229831426439794510173275728909665973220035221418622051089514350955492372848633312070993975405723694089972241239049839732911042949134304122425582442693034527195648371987351304243632249442095715316972383085389865709266292597407853082479611771162244232727142208226996846963463470309148699083601595981360375185645312192490290849243531436007628212913678978109369549294577879660761200523356025416159941973046742186217379953728246564988149374144614364079212475826343932020592383848403723506019273082979890207097603951253565581580605853250775362228657797362796961203839288701118149064643343259786434250497173639242944915901239969052677456748050183153003744841530057051892081062171569704185238756415742284658508530371476856334418642624256400343881101396263235370589798677302088117528860105031701307148250976524297822589177483825163067843683455369111634439634629295513252030201711974384058485108157452839518838951679313326029089930032341095513046267455020324342726356497750516491164323802680391054031780715028909702373762116198707847170995876127412705222844528985750651678324421878665525634105758105838973054849899287360138275726810776671949718914169393255435218627015108634809274301567385081722716358652409503831005193515678069605986874020648714366964287695143819629915733083419343137440282338467535815760560378181801044983255772225892918723444513043395887318347650860422250175580887399608677556611999311320418654688513962355511233486195377529271041341567248498199325753783550742156076629689109777288833503531109279361804079482724443966810868734655317013646345936997612702735372775725299231431429905979689634643725435369001335864127442060120510894777905485805769050622362913538990801691496848685223878103752963129521794392195174125480128495057175662313208831757471322732334753587015392388113793649004279947454908339814303518454090763316815853853061084560430875803578311065454249792852702851839135220055911175404772970836437252085433996923389131864611513293768006277741582329207919516710599127147013742165567318328003213583053314860107177371212501334347177346124578282254813516915105139254979347386111431412137754497879867195735976956528110143029695762300697478667134509500530703870616060541711397692932279108435398444431628136085761823081661974008843753020960179356394552165576740694171263976992366666552907580253119163275201645003329508463749673139761897853339171146078946545741523065257020611346924092773031763074605361890955277805803950232153169640523245659871045980680554785431740394078539813766333162500838808945409040973343084887153637349327415326078797083806292975832224895597591874476490008550610170687075817822069039889741482166719957138371950711294950542526965275337017908875911026728695466061479479014034176110199424222621397095886391517504339854448181800853327358727257677880296706095654578831441317722869884361291452402226153953463828946862258247689767634903842943500653848254610963243813706584290121583848138143479869160105691670464332752058960464364648601597287719990007650033453386662029825661854114148891153233632119410157263717551262401400507561554762693569003428730772827396473628822320995134654315200865436165030510975404915465163704717162399168481056508988740877085793303825747861887746576544118554640964263980083849799942306225083753643219711930547075006491408624211837102175710531233925752072551333548667686860925615226371184993457041144744193791936909142967768852574585373518944025271348883600320605832394945491465420613618045187678304093329412443125920402022901884550103612646881339519391807725144126756919951909326911008502638765819677298875019888828005914382463007285797253983802918303096852095533087984091059427679220273950356041438957492996466914034522812032142597376743464116561458329257715458571006482259886960598905224048001140314163716498976330658973450191924338368833405908615313693034923233222077212801559084268733044840285081151876190235571246404762896709471585733328925960471596283133731119059433705381425067982995299757081880856187659696209588701046717669233456271185737893365437414738098529520171530659241875707000364589706509345481470989501028868470814668768528651396744023441521088166856397524723639971958734303176826286708675710922852193719465616348431856104650960229406639021981799956054617463336916598957151992837517968972153010391070333018283366971105614121291242357767939609994046081993379395912281579741387154888720762240054728687330271775696776841767403540249644735753615364590398950483667892165269653259732207705323113112801193260039274021315579801847649820239742220034583443203629824814562035539331422564768853192112514750962087495807298462502354867966547371864744736091495192391692657877093293615027510353515453351650501006463557916530999976283171663402599732734320712577454327413221144261093082084577031496911566614068632360177125989869356636326677606211646210262714969422348609873292895751514430923059818078570261588305021519329331071492656504180952892034800638988492709646415652545227478171982629844442050822976252988201147103483243473851274784114889216787770068215526662325759725277147933567838607047702177006727600871521403997466561741232899280256771258837440079023467644675233762042745121363784414693503482353000780073801686630969280753357268311937334483252558395921710738903915510362874081145645758211778667046569098434922185289698582157374050620448960732633429411053701296631229741846479630333939758797225984624550429690251194907661860554547119777685454209923087020528783313520415703858001517094894991887891701140439180321943457793669892496237696598995504929630034617849436396904269452733625393308141090698947117939995720868085078149984103331247177694307835661985682386914849278947789047069518800513870711641359943803327854233734275796138389226629621012964233884736734082378951311233890787908599917635946628926165147584274381166260160319613703962792808482941599692639310522723290139910472900884584201592515235269618327932710747936821932471685470297708641059641975660878255804252606311497252281386611169197297300429843238271308147250848183968426827922837989258044119961730872843240864530107184445092872114242428839176725395727027736424572420729231978923417392422587001784746316092862095327555397429708480536120720847337497872769057782907557584329566373795887951776102706890047735097718268164188356267348655620030730169624123760349204986498296311187821698474945929260157159411992241526695035073542416300557765093002449537688947019510252607346769739182601661673154831871653693234614072120056053489463146389190415359523267882556670270164437623186307434441416055495915629976371415239081995117858960312005090313974336263989650777159036851611101401113135333875592326911539451229379583263312698096203791718279635440805799159302797258706408664586594698230049567111546971792983271448826050878538704038483698281499718501922599817232216353560703557072139887930778612486231041252356961958502933431400549104852102713657761933134366019960488861906607451624449218158407239421829697849181981943182200838545360745536949421024250559907971978654751616462490397546922330880255453366976968109667064763990567011763641490255590501304125817028290047145188444024868888729384283091592880823716695176034654587799110560729720306804918319212507154173345575038450156371989332699089469714137555296458626409045327783913083506486848804493424128156253645069384459069345018872889061474047027390715582392998556154911099387121627992567206624338903978011791118540614210890020033442037299036382312514835117575637856078515028377585363670093282517629785693431135664521722997495268204453824013110889449438699049445726817081814975902332240089853823310086929090268432405456756535138989214533631917876405597580478909434885938604308453465137168356991956435768667433979266701898049197446300144559210875196785803236771587242821377300759331940364863120021279089308201754727179892793470865627812193000830164568686156171299917290934016979834557226795003062293163673300748796552176990759457700056070669003678602676782437127377317618355944420267752119923249234616769400251236010177950028264085989471887879497079027298692986470346201624119735553801155328391412109250054099199286734295108789346705771213008522173444484330651071461275712605284384474446576859452820339116159810308056755244228251718269920233841549824465891346410777897049840873249042623644346230841110472120893759895216115807995511454225504578421085937661611613868864757195036335347490329860378020538489317852563580049681079605905345973620286543364578372273458650920199918708138772828411818622977518967593548892885609471083074599072557048436956762246657165108885689591151873579045273405440442780325949296248390080476193772096184163013523589766461407712994189272580916161152290139705631698359135934606290330765911259876169909749903177936626145708905083980921171935528865882858009396822631699116823374881129675469098749480793244437158339557376652772122676939592537358747525463665779056838743595022030434831258612261095257659637128452046776660303551345090966861762991191662007935622760150213392095691699956066928922991942644551460640776314119664279015574315903151233433571944048949503600076394874336666266869244175050975538776483867353506423555395670784322268695288462580888692802705339645759044182673873153235834732034722461043946672175628116452930616168982752757960369957990397713487394043862450490610086072198366877591909622934630512113614979140031123941893806580135158988054685152311535784914022958351676899977864518972335715131531645523507444745203199025039972936089900583214162814078228088251318435387886764397086634249597569066624853568137320052831189568890184067258459656824801869644437968935154507629120564919887848407179035908347940903523646488499529299910417763441562111325597120750898284333548326206526712558653484769842929366431879943308564568584790858056405650744052283193974345918751568689022404618193625871698294402007265651685268359961126816646754972055536875106403642742342794382037340488832829165108734315060758541544219461561318675332571630559643358689170472007842840616091592279334987528998062137195165265017750177930709553879367449888118620289744940382282557433507706138170128370417011251145849866669178659731427204068611333304885245284827006471745368948635122995185204553138073408639197716067941895229814381999057015925999694130902653912252566575513779290339921638651203682395056859716390894336406546204619894945293051174933115398294942188038118606477840721160855694688731599439372216157848102903390537396360183403890297949242156042224665559617097398322167186740044911098665283699573280908685284446235917708067366238080632322881922562312893223494717035449564416262343213399846518034185205198656167585668456945475134675943424329510948049907175749175673079664606702867745582484640074591408477022876206222307034469762485627482473548829597041028077838385514556998663542881676628162001888658843412009568011859156393033475672373871564064901919471611483255442028807037243477642035021343031691967497789719458900066981867495029085197581305375844187463736071971907273579450738736857623853919028995801996748553520979191859066083673551000770108424490717598060525156254907943084609822097854149133130440245337901214610030605670107769397119310841046393594890889579419698090209865548899708568979846567209966552467190269798708781493596430846243569650739615291735764443578404448276454129304954906372318397418305997449870351744562551294248571029524033354581627865879330479435370723878398633539179924014446596826088376484778185531363185475427332837992389860906966269400675080409714079620928858681625873922300566289203772669705245894257379569623673733571783264211693961181746965459402978348322104783755889173244693079857662509685909576259715742480533006982268924566152326841743404503807849483690047150753675202029925639490108829962934840810894326915181017165734045621777752675169414238220938639736706185480249355081710646190287782409657158369856673289852693828298848402737755582650119191480994389407017444089892293173912483904085465319394161165828602638875694256083179498995725728807732311207739204362373890405625684320810054729675984417672787923379128932698486173643900732365515777275611620236240977466620679440585126098000113742732969170418481518047884411877347988159269008261970757621310002768721776093512588300351468986646676183419905160875118252579844088304000914882178757963933637014970862610209969347161624516245434081582082335023394018018598240449571983205397332217725947190341989039001649228205402436081946823637919174684661868869473458945161602945492574761857958105615171469931957344472286615684254441173189739177512003571511666755348904134831940242088745306580503615047573816479129462864359362459651132376109322797131416373615228674944163887189700917840836098300851787327023265094208882906274641600354115467734284822694741520462641496474492246284888620441301933931090373645756413963313159496950517402823214388030552179972398242825209843367760943475197552045394356472630689926460436969575786590203325590849410567633762159442785128842972374080827624633056130321391488030869754052165228278854308386112133519110830154980308787339985340429037628351324518986309462226994664148702012985776138201765852841064438002954257971675785108617286384053392945458983624152256601444165215676907882846479169570123537360480642888338250607926519831846013568681818624086125332106263808819965279940588460270163569772439750236597623511821653795397139040213050283965833285556227293249506833501005952341641983916290214665485178823420308447890797055982788987591137421808186953269026135284338911797842268153988118793753367433136746831198247825557256816346018082439411526698572077413748272904406024550920522848587618443366414818865504373757344754270862893161319648382072917996899580506877018086882298806286023149551741532229826828692481889120451043274141007476552659977848328493173710394294989585231797490439511887127660907393618015601496663002681675447322658200788448966655245363271743812367956283896180813375026813866033330429265584789311328192338211674636788278038193671589601289439064080220525995680574397763967656022185958533323714622049496657975258249174379108283291840292119545236472893873147090479224411834134634445816467432179736019555486542710627408557357976698355602938022330780134124023945456593165818047590565571193291230583674715548102754264516681709533060372364858490457829409732127032628293201418121445476899210166330413394136257328471126879158607210464104291801490830765621172428079504156790466531250305187034171734364434930887668795242799631375141904669252936337640678608180533427185811312343195452373577650220112667286687796656432040798750615697140200501804965526192644645537427099384698447477418971244974021438702051083930584377394367135132204348603548653278978933017700575167724896372547298740511820718661214164316847985486408834357108322831880203484041913608671374874754093510030310482199829822044332505369250625262385142812805085634789084002059767934882325535337037061114512253820128048607021250851127334729436304486840866716129970574467299892064050151011948599994812006224060734294597871304282512230538357148618189326141954556205247047959226228082302622909295521223800869245203108947659014871477930516922752350146294406668835926229267453934421430772549088061663246153992694247881391838251548077445485628310198796100549979067650871664882867933706716777155536178888564999318575885548749065323564545706263217032396250420068747570830566321336794435288488688163290551239149264544732347591194230224326735795314572689370150135245015611007830249414844479849328962603899493073939777643734601060596320132779019969715917538915949920157378802511824741586261573670162342959408084373282862619440191594035174362464259089843795503709109048360508631001662997520609594577772303824959056327577799280291919698475309412412197033345136353146998993071018471990693744874723141627194343516209597004098360908389000867232255516132880709583300114303093994457211425014490303374326409613441825425532901782045992662508337907985539100730691780128356271266455858863345052360277005054703644548089067306465547758500076026649704030110305756236901881656954865505034126644377263165881923731481719189006547671123401497235675784551451493107789410700845399475536350021745845284103117318279810781692681375112642844709737704949244160985521183016783936199575678702996146181265166609886544974940538718332170784415056680894112706239710120797597338908310659598567000338514162428425657018257618920246639250933007316503405611650426722248952177630609192893563203565605865679892027179404849343705212288613320405175963873220323692912105230486190486149293194284436344824725218453862110734237403088279877999187397112546347619818465938625249413717999532178395189062196623638351503797340057428563725108070584524154008858385654974779065997242014818520682174377716216156697805985858135862411612315983262512834582159950623762105813335970559848857409656541993322325791123380992232146851995918899291681871271338020128626608384622829775886852652681964173943638114553352991184815587309190054811103766635384003517518357028630074360068988146485783399374312774613365659503619512843983801995246818451314970225502243929314696664927960966406517389424649228492645850901119778725264434541143009498997580936127438657878139875257393477962421985571378187567020933165686174259037009374148423690499965657842626293087540270191298045316163470627277775293729621565187263590909638655444884973082137204959392070796240266643645474899412768907458346123964703876572386583022067666021950079843770415020974699598685325118613723570927723276482249171498061884723500596568606547955481948256728236607064881885639703911513280354670714735181230965215750078741564530519379991402732082634030120243935247800266094112853344382388064024354432425109770296167948181651891281403900782718626583626885836549527712939143223897580907944951807177097708416073180022281659430500426201727707124222691041364470429595656968280597915365527159329307306549129710502799194100795658012051428719294579497298889043984911803579348143228469202602993891909483650403084440526099500950942258390232663264829718680096483058927598427502227161543392598073776226721017733513690769329824626800720488299956562001089133727273522466919389409688987335852032246675598383459293216178467450701352503924679318518019563453402177201551532363221857942625193198415584924277261244451777947719190361085863375835405356898939389331796866837305898769596742626616351071575910920338195870612496752530610803886191002565389352950588635121374918270572950342505109582626063327433723221096955968819654892337977193181939702494577672084262486860735224705905020022336307388490027011392168079180342842015051516863428664099731026515852337840699570651111367535726304870352913637538947004817881747760784205155427029851928436672130923731950407875479831078087826562613669245597443512907591070535548437564063348265843769169570338490736357605930741990537308981669088170093225702153371136827302039522041212103299884824332083030268538141130705014547894617440603107128400675296028638891476160791791651185973547950412350966946561655289099451008739883589791860821712820033666871793896708739888237063195539187817166973626842833434020402520179857991370053467391844423354883846130857315071338466732346812291617933520724502817512445479439084916417381649542619876991038564857888779911807119703451075251118586601571483952556317280102830628886971118544708092122191607776653288811793179263217219514084309984152016919404804897486088546197350868429414736189178379675177810394718778041150141174465578848945107264937528110744710872981935633567214259926723486836177717466022030718456546502696171104677806279592383103599129779791941964582346517279613484752961500632643687774287084617107890057555018542361731244228990777997894641127537646755217289984970761413946642412469740671473924737936231712526104092537761009409028826424855197381677547757018709009639081843629478267129205593170112577448829357807461484744923127782233927395387278538145842901680353658854169459432854084806744763169199873034618021059245913278291952706258504487610619586939123349786115390508827223513907658977625120424526961509186607129410130330812309816810936927872660589243927503805919350770129788551965068933404943439473869891804027278703153238537381524389987100294329089292374837764150101617235668416242065615183225417251993268097659537015537639415552291899524860652310035684408536761181846800257672015273557827016077791893229973911489617703934505870997961553231772937359401876882737111993739085405790668070195685076200725132330448502057526444784836399942760407359128368949185577379543773463852709105827559654365918445327149340514312440505117459900575096241997336899124241083974021609225532737390712473543906249464938116189590783331882524403452879390634984986568024143188519921118238579898998233150195584027977090439878049952266687929801653090745937346999999524311654148882998555386166942736326355349515777357562629047685418715642560432824426318796168530532160729446981485366819685753156116050705392160337345385830571944696681861702578220456805593196705440454269416363861321725248917043620726804645642888452195578441500726315850379837541510134277755073059873309371343937738223028564155856764902057825132510572246541269628445507472658962185754864407493234137327578515229675090322604754502611693932645629044552815440808044089318723585985046339949457786183446293386547453877942861729626709211326271246826413584227324199806636703300607210584549588708265410133892173867899364637559378851789939483960964820668824570019032595674763728092192544691310683009990438378654987796645382785512623468747959822258668794686025847447500997012195886497729550660631129762656179371231301848218154501759731491098313119701161054232772019397517685498967599905571815439386978879181276180034467805285273975397372781700534745254865104923282912513344386240196940606246577006484754848553855245408327948584810310509464239548061741376823898722636128218820805344987504100662467885184285203229753897482677014636025240736892082972656669583751575200921536165339458041688648405227863916065751641465532163009804081577303523789169562777773233491350729800823087524646375927693298760067741445854569356978016535326882217101956493754757633974585136503823485509981232173309032446464734089789178203780830281798783742913382239664383123637277946071369871372801601306184247129537098161780420150752408721151302084181820899028967827979258139893566233504876881622484556111997445169002348953516583460600213566484289598134986544029695570843430377069379229262486473929183671565622470017530989259203133655885692625006989102688152699533540097497180348633230678101159801654756957840151664075071259841393109189826220627738598322657738812549681447772006995000140885627696775856747679407391537092893872669091293930618509797282141648187493555217582118666157327286261447709690065516451726633065202089347097120013958446700111021097661313302694632779629267590641338197189855323937175211211258448820303202267275360666243541351478591473900153379769811339302759110403363590154182798649850668069885471183704599876420125053139794351106330656411786863009888779448640861024302398111048749062913140395587703796835627658419300658485194937635070517491521798623502089622242882911510527578513935753414848520484200995232487419097172585869614660235993167062981135489481959847560680507888788325332250886804799915728307638364804198163733342171302335600183722564561724790938110570397353184632812081068951095949627888322366592724587794167554118786741563974012249605585752652167839614381413129720153535584006359457786499143840797722669983891937439833123887486259218636920454179298723143414831803282649649944578116422604931822976308111258018202046786496896472925759899451834982564230352164129230498353121494516504784977041052114608734784123348964016814440647073009765882197549050806201988639224456143466738399399586683153900487759886477794262238422674121505239920348142111761177654480353148138391088178015882972468419211808744617010175819870087093879973311926894429928179563763987195952150682937124357210885383772042587833290400424133465303405478523037060552371798861352060116097004364243499780383470547358371584843275812958070424376718794707777628795571963289451103081165012813254455535285066903601058068610217385829628233889498931524208418160116180368239659816515311666375733286346589760748180858639966683527820686997631737296457891352383002002761236443300648570329003456721017488270530729154047976447069009563570972824172129027415909476959529296275738878407925217511601897069003293403104585484782214377521646408144428637181971159377721396024180300827405705183516874351438577149978475474535065639302647010906372702099382085593658215050122196070228209289647485418444817759466808805656907606500667994859937326142196656023085501118659892425667708952570806106371873211731637682724786054606723163554299700306854230921454843766283780576175708072240258794855598484993989629923229400726767798079307344100348565458721361377997345643796589792106850763773674735876113589404989077709072981943973347128342235539508590491863335928086522796086190935679441343117379866444770188593365065393618546901768537027473322988463329995229832455582061466304354742871648474191824585033649913809405816937798825858155526041689386496562607897187373535060572315369495380077930675615695533601437999234013532324702867927455907464528269962842379608761703048098578997763503557994222283286959463602574000688863552429021758264512152542460357361542078749734968908505879682331013348533591670723183590103339414753354699179829204320101161725775339965151510341228254071258913162950220007988732372921127352130189704750520465471420432600923033639793060134887521119823693127764609924208400938119285516255013279844754602045796401366543630410494689906803775435067291211516284596590968060605892637922223000649330370049014272450870415928855420959340272755402889762205541768026756901502995079600404457823310009593983356373805131379143661752281377467228645428854357714262376112744046923526847899520886194104873504974181492590654474189367825455166383806473720964926791647114654008233920012775847561169512475464829972348103633256748555551696855830815574088032425496647672756524675070888189234137734049139599543454810953562011810545981943526562015895224563057924307746702511595289207157142520637980337935964754965377674216343674633328488621905676907788115445999839224225339865742423507515149806184254633199809938866963111363235265949906660626474748346631849471701061301643785070833646562951405038762320441372305323633946590995014895731187137745765784338869652234359369970925632809500123367435702244538471687584402638192636546331428047460000771548737637890624882725986306194803853638549540245131112605805182448205956334803911147106844309821593511558425042967591497888413836282849124353256071722867109965509906488396555471287474506465894269624110193494525510443592305446769731280664145126193895453980212377738154119624284903370565109468826177843615990899371120975128552386857825069286213830387838307271878311970966680460602743866430611214454269185204599437346757808784698814659547500598450468336382535615649005095326449100722915282840070358965791169050843300759854563102325400070272769153516538670817015227448892182625556865014174157615254689872833550080108569973755968818212342419307561725702518114054298822907264661361231616284944229178635300476224148928845658246300912302009450867474404426916874790774851879876834154629656126676804523609696091551006670968489101340916910937386713394058315404372691727276315050918862826677942668337235785456246069463716266300228301806382799031603288434983638531688601650073373268645792335977601698550096848656479584286273305601861408015009688589309634727590829398429668830920327635016701545782982148656247389285408727254659846273669258405615987728678221322271770676423741936339179734533166387737830112134722462839394722853641160823727457518826815307495021539221838533773514367991105685574653880397154091936671789073542982295166561228966269462713017832397224370369530259388833212887118846290818120599214558371120159788357919274457885010738758057566476013332890190220171346932023533577989636258970562042029424327366235456873693742608598670086379407185363888772232799871673556096338822985562463480301998680152598286176546451972344403481744493695781881810035219932134695411396016038725694844255060385929450627778153214977918034082403767304194081584859308021536643334204195250970368389823150182245768230199179121872051676617692001794138905102571841412568383534148659298283231213924787647431273074820084872386364802065553075170013240421078494715293992703515327932371488243275283995056528934831470245722353956444058897379573313736889880847572136621825476167231104639463931715600056419922221980372231909572457861233398125575674430571419836485566980638080933988445580698646727702645546729936743546753012018916905529693659604405101572293296468075308028949290608143524376254542008059712238984031497689205407983630286539048541903933218452784420071006691596973478595002849179286715222611371270902344884800849402285983028537431287369451892225231959403447432983218343935772510514898379958731911087152985776380835403193089341730936428167844976204696315405038926380424271447505240411155310875053857846875115351576583902152064963237079162915755301163899045578032670561457025923557087967538155240849649003732266781078976830324394313924281771882801350033815073856246780909775305802272742696443845876647917484221930057399572387722922329538616574685086870561591151468182307661870556310481710793109370824759420337257047148139471625289057823376880158642660691583917793698633727690055508521766392469571355439366419611213422539633843182959745138083364604021751673195407686097958026912982601956694426861033883366169135305593852019660548740890260288667369891958285501889464324207126271121881815084339746577550121874304263601372991031091202640972891893033045635716836154776490661178294210134279688881837546923944823692746249642476181187729412481411344988692051418883575473086093946337577418296680895722852829036813738639393006168334106464981943722846245635149944759124469225861372573900194604211991616032193551211652626804145681612587759570257113197063570565613568369205308410674749102507310943752930602827384546200368497612244300784456119633833975020968600654048807210786654208980412445341162918144125788744600340845400142814276575088637134860407417194405461367536521676145427360663557877389952479418931805654579779742999524465112618147216185886070957087828301883483532995685883167776532057700122462994850942475563415231568274678765752897018224050909291852772621395332015200224554900849978721516427163340493026728588704568587849445895169481667137283674873871569831896286896752328211863420201947126096624830452675457168558849907328824662885874458680909040609129494518321043357547120439759029628916452469669097349497241045931389036586638809553229478901110835632714559111136422167859034154245976711343494750687840787398489547333754842344557754911256981432275702448309681718658472672300799617791977955336625758179549487368515483736130648161417944284694355792447792789949823586630518947103241050849776583530173922632032161021507045356195314846769256329235544472774249259734045770195493459198164936697269164521238909746088996903264420945388615238865966391472389322360843605751772075923409669903985290418834704194851847885058300693708908807859561402356000796067984375050737380500771177484347157329933110230962558521761324561050750885704927010405527337422151860454996142415399707572186185398636764876795050847046479529095322793989462282934836363360196948285617102147202309837995484759364510428471489286544782430689475585778176880475028191650051219794023117753657650598569542841175534167195700348673385860450113707277434684372433572321449687346747820916601220951878467308985581101341992905888031805282360016859559699151038388669976373799246568980635975453062990349227638102945731989721714912058262124206610750380169943312663675178281269503978690323585475361857758591113475212210909900388651073784716384730408737826735980761418992759006669224865148512861865144063494730579192178589494842384661480424771031341172731206579107366644475441244266520859468716859248270704780273134564070171718994592651859808393965057460678271671564547257856385736404426278069058356898803785403382245740341246394364072565900943044764833560278241020239369128305991912630640570615037763924133915872823078627475847171141802993560972626683533266509754150150633866413248507867911433731450480038208895004197824483979793336089931425793924280188659317440053682028189227290342980013710683354214397277893911951545718010639576756917188320936628967164226933498959920619466766425800255637000874975162924363733823721510590325269647266946296456471468405333025222003153452509368432754012271304858894132412297430927221767335888894925810396619269544081219220016082946718329282567191484121941484351038804092455031511782536992936461580257967501554666532906351100080638748268392877372800163858765650831560168342436775345256861361941320082246317043382125082092617696304433690150965938567783636035677848619502113315411264465146410917969358901684859471028252971274657310497273385316462480927699802528497261963508066580938867559216395705017247222202865072691737024977543906927042046468850769024768121318883251766827167325970025696889576934094850788909823506363709183595400080395690923296929683536887547394851670735865243539747834144432494082321210583720563655104143018355568997455652819762875226206192284022045148826794778410287490620779719558163799931216258774920482528264030175737765337952599660695461321784087019000938861739834168934468973032223369877203628381825321874966644041774849640494396467617654211619913819077239973865983726591824687314096078081010106464199522921169929626025680576218335460881730408944659390372131599189656463418086819992255607922544710041940845638345032724632539326051675187689511127603047731502491288266489871952893849497721738313431094211467390419866090228760640621488643105396234236734182643890069240574638844814447207829251109489283470610503240243904486511581650425125234404976584398989816310433769320652848099166022601738800591991872603662564412362153389429219799273696130568059091128479594102752950690602340877590902234757512116679456672768265021302932732110584138074642386553010914773173084408284947211324195700975962209650799247990898820026296520340588092038387375730994134534390290061235799200270450583303765698822924386408914623360229951468891525127224127291748749842842489828059551437070056670094720348293265088604788227344091737422939924512527877654231158884534855990550535920306243085054794796760144270662721734014818831727929041491724302222790546145753855123437322489053459197346946715825275427856247287412222407001065117534421334117709281635550942313885298272197029926131269120162708412088067949090365148406766774357366614658299369179389390463919478184015786751428959578661344631087812661608347941617418614509975585847336264084308458003334055119557969079551886103754397873932738749112301137772766717207239922460930632630256451404112253516725148657865732112097360732963490762321763237573080980251321557804181465428628164979981822101831795010244767808849698446481127303349458631563447979575971616829963952739646399183522335085168432390494379416721725063203455642224615346391899927152647273049848928208691627016558433555454086788776029910622378009161552724695806341114318195343586976255498150686140597447935196667434885737291644397957088207518440157569911745241253526815768965104816544383959749791747637358653751838785443175099015402493552329670508672264722240401187772006968145855878985692987974250386232837216745129008005385998200160650500537053021260450586934293698877373237312798889615506304772249767218712985556839912885310813790084748129980714201074749720969019259453571286984717880498015823862015664868771101639026325747870801816518867006447792356596082876449019276923287094721313116888402065254300489775879103255817749022890562631586104536118169583575229915953188777020264434520840348646334756441254631232036803934302618992086454622515783744677055446369987847574465992063971799948117514447932842047288700330570880407187544201378198082738693753645463821292230369078067180976106631142731594540641509801712597170623403243709288381327871480143242405580027175485851261070748103309347865203618559597593041693047204475721044229688900105120917701152708039785009793611367995397382943850075524600551977435347782128525721319159404836657667586234973384281984335863449736801538472980028601115800169465401542736940081713643305804715550851598274167316245725458261676826741964991755472954250840223314785592796470000437716047041901436785905944311928358002792464156294429380549208159346721555456270197154854126359239560422471723231950512183493668039239847713813475832811573732682858448046979086747843449245152440267186807478783550341965908330589966959790966516547148750475117097686655473875529548657392541693394256331962992375155520745232421155650653286964305414727794343406853917060272493934090705401241560066141568962882281412956706831617332508191561721402826912751494863064045071815395876264048483267546990479063379390162192173828892405087151986042961755372758660351018168960940928844675601318210625485724430717711531772281167862696279455980964181651080756961108956572073499794906846285062745961692184666421383882874629100141373288430223138642842070225445696882057336886212142496513776558020273393000622726720524815687831893365482365837959369356571725725645328114348180989923588562961236781694728487286260366172946311766559723239326833767100465251221658731720275436105990945372114047344174787081618298748339778502924766844096299364593504154806772904125169710256284568674711559692230149830883603136331767245661403357917012173140318966101919495193609297963635985672025770126804017487681278555947212009126935993130792093611247568787849165256075800152921445216407617500381040776432447153825880776556792804670673675765743387652161102238962537790627154295917719924867947401963107335352101778889319039972170505175098638215145453600490192511320643589485598201561701279448957838207917864819607426788916313571446215991612519456661420567020807152465423673252250893481364024303316928361256660356899629304068332689868179999222284055025791756899654152517569452154233688210095914196618915642468106255925014548065982787716835271227303859347347389513794530152539642897240170391518427742612279831610321769779672360893047932607767308773538248081298021272758006002507511927776113570442275594429949728365376957792536546303368835363606060582356003434662371172456078882231459627436380100662244972916136789959679371396866472068026057075051474276304614637440196433538052356952788486634038947485682952907853725791483749482293906872090167231220053870517231605415593222719114608150032036904759706109264083721113976155153783699642091106123253444538447959360728651243878966417587013281665205419658402982891094719831707841092316233325676149621052536109558528136897516078445219379944077885141511053493109539986365335165205346730617062682650370626189731642956854371234986359167477720868485495299874023229404757115018654975707863653715678355110457205880189799419186710316044756389727699833839167674773515876253207153478303029892618907488394943774862185567416894161301403095755517226225481775112161633176706288478687530956562495585351007329049574607801612867620852838871323454726819576874543972496665494982632977098548638834764515621379101520132624565158769562764937468166873747586456594243587913782646058197747889428452896397502893736050904607482569463898389860925352136478086991970726359733278283999667057224319256581095966857613541347361373434332906582706947773071777727904948519797367786715417306463391497189638451232684563314328818179169942326572793883482686946793799763350686912777401008113541276207847193614828822187999681705521113212210914726337082098165019642788749876658877349869011812784499725665133229590853608603899463717481438107732662225581655277378831857433406317594089201320102737211111631353350183623343637134676978752907215362540767508868571395176264398027368679652338344165927567949411837526918505651947867889292611564217351493507679941165600228159866246815681628170346696329801405506844453594043960305195694468043380162490968398792300742755858648061369385099397066006533808740945878283950227009976659597633048370519885516585254261841391388304333271113103240501286785233452147731680443795361237042185379207265847768268919352095313945628553387615282166644006072766111530122329545493063038710229254757037795372544975924121827150255091068857637937711938756211657017298851935876054230725031133975234242857682721201500009664250260100257976609106714450980984693099003548713769315529260619790206130859914798299195899097239292543287261061972417569291622053893147952306529493479427108349292017747001159728189021160694336824348036645346253178396150504752142257394539184519788916448421778484354308546458854621803081551239937314161438315677905942480713861012597825639591330136426809670006815762348849293897716244942858105275135360266235858381494480202592393092164857472024469640441627294255713122076090341864562387458161590783686314565688801140881852122471899567979839069680557759860462333647260619953628281226369154179292991050803977536591612389150460828235318749981207413619796547632752644428614853598501265348433422193671146147570217958740753567092567552234628236541067091956478949232533526724721135987972439645286957338021384849040708409038532545706258479768027399833323770265173560987139966747938313327248886385105824864781789429456499252366931310987018615779293806866115007948681267806410785258876292486432136487103686273405552983026619505155899023358765116648221652786762766069725398195969290925673186351761895630142934777262730661698303146323830315953319654057975724274709845308007391817717831456768741376608443443922190153863695590288537116643227771101393664858677790401279759026878737878736865629444477647156530966296423560119704501857109916632968884010524114104449272792640154088942403703788064863731127328471886096715508669250679415604555016068507644781421301147295404164985347350426284681621266378172662634543865046965232603227665129900464358411167647499325384094830954966327322689491754537318842460424371784417402240723922430777333833849681306827117131653375333068529208739990219298314152579497741741666569292871347935306106441961395723522647991900352796788727818268924142145025261743568260599468675744250200069063039895947609620090927202362516270141402477339662227932920597239611984320858232069373403003762437201304104092406073924669761651520639409769715537072971651558489705341720334502417960184839639928181954683900032037503387661114075226255608976988692301809145666470633151698153558134280497736727959329414790684996907790456545678619466985480849979955805309700314136514092022055758648585116369269938223305443646025041830737756971799492064734902975471803255168639674831406611139964709984388069763794526865963399017922461459431014543737751696742271760632823109171244157941273752990918499969961272998494641905083735504166141773524384219620406318775016275058092484076067180501876245523091509454447783626411368325673815913815885986133647634388736638654548355400871412675072360048172363189363915590277771506090653795529865392957465065557833526751841398484558970264726232594924938243967345212522698227189725985366881915006669505257954554081698370972551050692453764977396388530123722953654877397241642805892094025862114607692618039186684132721407508051077762706366937151179822292165815987260800810910322165713927020727625866250940386690641549678153245328406472345257989703609948545343365421854766204063714988931814661899365312627226079996702419708455394459096732328042768693088870094997921142739349281006825516353505015038724491323308082101995156055554392154799586513159712110920119264980552209515261624526446893996668048707984323288262465616452716705707387097378885140258629030174577917612638205116094540127226637476560163082434889303698781676162018454686016858166749282958744959843047346204786968383648239105582394024733729149436251432526445581278802793467136545547877146301853341902866241979046370281837895471326160868940565110431785597679324558079330572212067286676795096360548380406569991294630890868633147239522005374282359031108977832286146927555863629116416443189752361090064822210302994475778368570130642386077863395726139229263316451412094953735302779642213087846014244531526979762596961374461308734752458837146508745560034454267639265532271710070434947248170398844899624812615652513337345866460307503270823569656770070179029422182078871034211264160954847744015124426018119236943611162540863366520566568032228488884455390654887944517158004659059680857985106668767811712145675508201849502072244999018683845586222202978441464554913794847446051707872050315394923115315221275174854475232229400292823116735893754518974549010636081561787157862832727536970440309959202287950421019908225703404478202630018788741230742372492331151662567723648429300528872575038406396612085938708801561108866084425528107432697714919715064735257495093880911482677682529134071507790539796245204743901762050082941976417848280241298643667581198458922761778640809936795712379767746768045118066304713029297511342935585273765798931608059155254901397014666097919753496725107598697435045961589811878004259544393771804893880769876893157493595405502073582051620125967090338576737642930442019545724580895543300672381157183533118722970654923937496664742351677529965564318444051289037394368875723524925335700328436109879336869915417239174485840905399973474850817997467212309351266310085882935014837970168570072457936996796763907362433803769009856579332308807437185543491166016988130987618472083143191058664643443920210017657034740587002619645897695021270563427989339684443395561437596300969488933722290459654485029351348680244545263905572190200152240984844858895879569870951898294200903673820179062054271422884593073574002150458638623542370876327572788201783868490905957157458607468889699013265186892546948621018970348690897450684086521969777010135545323445300546341134838521352471894006981965605161761840963565556318369525618553457080816297101974914758434428789690593405939640433397625091782314787813673657942867606379436310480282029730647666596511618453742706812064675175874301964957932905267864648723456841486504392245961220353617059624044675069859794292597929392150085765096215754526672229435465385330039009573437139580204473928829678892112697124448189172086109842175373964453178771406042495846661145301917979074315370848540166985798013861530254302387052034627051651302893849131872915267020727637431524474217302726858582168716841496959993735778808600392573455556857966189796715632827114866764529139830943612102038702335615519652005448721385718774961355377990763420716353923205476419299140091808919992346369675706639828481448359636659255243354128207617462489534597039701546636263573593491709173206039499555017339415864604583194309684800517263209838259314778165104377253151049247101620486234236856569444818680011628679054684865028672427861891314452041554307328293210790607170113437995005733738384441123025860480991833214183168261592541328926022213144988025525122995103640386717780441629092017825873169660069835701810030184548974288356136419752230509472008119250098323279144258853549390884203369917386379742629814653046069110510115915181257021951960732899454898266757956209792482792212395008169149591164717843410672843718579768904513369598038378922328239729244409542012892970986660577833257381162714892363582692772078937040670946276165004675958291696798276135599286459868908234198630368718816247563705883263136140553177152208896381497085044020913302798864511809600064288426339826436514582305455478808606391344960068361998260606395976774320343391952957750132123665207651752056187278395549499771476323383467503994590578066032955879608360896244977406074343266855416701417258243089587343169794188259786697596265360550766280783959847661125655545222608013076997412400820454152926578135882786488321579497156897716668356577240061095871519055589383680844520701855804464616775770533817155434368168749793823320688618427859579491445605269246993556127334702770912618897118872406389005168308359184002192912775824781055870072538608749901206432406354748567241719624949313104885641143118987482934365462487329589105318110103347233247625942771761416311237890465152840764610597270107996960925688025441835140618027774924440991886091855997533162722704599163224063597906561267810164171231065467248976260130222571710744339141489973211761535863967478976149395687724351111252632648693023836428478693013762397357923615200755829429609731086281433071469616813872876202108868700134497764861233371269010821100890861220239573356240205888509975750813622354648927497800593703092429547958954848437349787449323792765711341583052283889543397631280304974560584349921155964802924489470298321082105803521979989448521003729512492607744257645564398743963342691196968765595005020592661852477644117052617062479333087065023662613254480430124258069126321878894355280843475445627509032602500768894712481645599918770457234168469651734613771580010712785323194996955538370374349624257032605923143461531399144893002104760585573893370704439445869359924149278029948624794684643574420556399018228576274941480296870768051888344444536689592001668694684479741789469254346288258611527491851992086595728746572457521036695825813522137607132338368621131627592760399163929512866474098877716491006948142039346347843701764986104489046513068769649342859958600669342067001121706556525341250142739954171556296635178060194695089286488888538219838335330328623465983744152797770345435300393335340872030327715413347466799773957777003637970988643952471966233006079004783056295551455489884633047489347895755504197568442378313622162001454000912662379436092512376139905717208002766271542990141813088738907004955863888062089936434187322119246033888022275807118690672422238317049853171530033573684823038753293794059575308646459275244290791956577133551990102961030709165336403403811755980487929780225071876116813913679855599135856399461124372696710372235068644472533731546001504378535185526914205378138980370410591517185712716369353931768029793248405182169304101512663626429418108104403643275698449868327308839301223589723322341750842241583067648687713532162745159820616853054270270842969765151331980949091405620267763687244392592029954032878706859673022617091896151467250232344112462165247452478587786170952615293647997597382354493792482289107513125060457782230941712493981023301790241659520956156382329999712524334990977061517221630877044640377707144788681555056072358505640601876695487638158810969130286117232434213541253602068271484833073539469322976104365418658261922956672263619105278210329084465110025579292461170927458084194074949014241038395063596905667425896445635390923895650459298085054292130097098425908886996899458182444998024376368053339856656406776702126789421877201936231257341394073752644807831137910969814497784187440008056801290709676529628277200137432676160896461086630081474820228605161752383725537231332666819979926927928666264930757727255732218650595435669415939716527567822406039626991395269457645952729112298993358390029424956728776663359877593766071476616247776784579972527902384706980351784309398058609460570597532294654786138082850945343270244667848135716351217864354280690877908020344528709140898055475679412443447287185844463245391100105641758769614570592270135772215938546440776510890044573973986295863644428833864984213222125760002265279401627359735835746383585181641338460189279992699979866929577044494364013125883300443313983365962044102419473753977928342392317586304788403795560770106549405653002991162824196196901136480855116776118299742332355722438468995510618871257469850848109875395940614507450221360838895242568624611077481079476802078347735039645475952612315712830482618465372364097526819091604878412528952821551230641891904437684565277244220497679362539767468804780249351542180657742053089212500236385805370068645628808450929112900978888456162643249182729972657850818537885579769614733152798733136112183063761509335325737734759897162890203579053675838653428050515927250742883629509819945233022597146701272517867855636313840107333594996739361234154056645916827830180571913529840804714927682378321209813716047613448883894903863279119496637019751111230673181849968889452442048334551823920163031314502246066142231852782317768696242978656634550321567006554875947170432693666650790721545627754260532794953841608923705309029301698907825820182874845630333757103704193598823415518132418937889493597806819913599533647015840809736563009103248504674134696071265565367778596491976455564137956546936996035248740663549547311645880387375134602453780223064483558811792497895274292021678080107927293529863012885183571300594139305605964466801235890314695777702899232153682176021967960293046900537781483910064319200863123087705064800246166432993330719859700604065215202819432028579807471967204360942986372992175272733744999739297647164402739969390431793107097322493673237600313433934726434874819189580987861069090953509001020170648888578319579132607403063255195028901336419788426044887027691744148103467804536857877886049819474194616893464651311389528676591180867249287904368325778133161529568314877118083356085458769555561303170263118579881039251370190185319891213043550876613804256195022306000987905360217704818361177187620833439978612383639274844133741391466314799725263595011183339771365904483453059982640212764266584112082551981121283683154805384384368769539161402997656896872986805003835668026745183754515090100856362025122993765102996246087024437049346285799215145079125063721584050080973154718331602482780708478560227524340815790284124394566504828586046387161974263545081088757743902335082607680261843665058191778019329147944206006485682351184423359033206752528630842295965179592948512450283260758192392310468624852047266464837937144192169081342097369842444010231268392133465316898160959013183665866079220270076156467849078113488783771779884082517279230443539781916718274398156537001541238812742701862275262505081803002248548823495187384823746317530015991074586604108789825870096065323365973988093508169639110310968010381485261916700245965841347692265753494791753154168060324451511249323949203265798722436120691475860921373207118038754068021370266016380371678051325462278216638733018585507911943098122587158258741004090457017105576718442087274334628887766151108494885556189938299742439493412446394171950094192765242106160246323565909273209699407651083460536482345243973249623967436955476783363454803458139265900789778288280278506720412640483428924320036386784587793283005824517655435300092277737624182309202890160903374410880063861810245652494568607436224171061304050622381123030953284612491971290333197722281587059002961149654676759145225600421093664338023199544917599599681361927967170501012043454214598038120562891977770104171313442358824353152153678308720420060479277727355600610401203905677859675001466592031444485995137437903897157243718957682078710759845639329972431936470908210126615670958774471395165195768656958496919342535290395921105397327411059390528448430051980520900044969829585370270897222352431952002407634708496171336920236606126909812508862484055071446488884601974278819883791822416346734685394726911968381164699094316128820198673454235557212743644336460342793771308067661569505649034100346015157658439097960659991600179022608321118087868659878574737884456080842642557389531156369184860156519183988225891884011659241054136373437531302040265145832068178673524493391020718497736981340054518419972176352262435216105522732886755522508782683864492737791247525095540508083843540982255623227728691075831815254676052633484592983695914505191499947828309138579791034207073986894212078524043056160250574974302252954030662593240273471030534621777767389133259764578026039478797818046402867957135809386480626039419829169306349098528033864423712811891125309919002757726058457469944549969728621999837922018601274548586597362880609671600821462467435614798129128791414281875881922156194180218236014083545905596225835032897304332267181576440665381640077460744632503362191983313691697913421190748122229144181549443594428164595722826625109213366032062878146243252809999776869802384419639613381667520162329908682755690931124436890416491661095656795740764897943093434503962344688311762983279757188384534680543347493915099773546057119181109473160612925159590532838536521859866948203996239284745607621173144213690340902896732056670167897280023225010837384583064290563192782506519030991039633506147812117824297135386980526732444011801291951322046380669352713278053368279592600469120599636211297735991384788545089434027634640963983884677535760446279150994093405719817449592959320611841736825064065700763359626180915537102204829779151047724739915759524844409547666037354353352937921859556333640186206224621218428855750937710532186886606199927539048138831599850312006820888921524059303194361080521342617043541996727904077411394151077712253934229785438400865957834174562059379828473615645589136794751307121313255999540938634639949260228091608289908960790009100749655736235452847047062480722514047687464094657678628788058225967771956387387982169006515493977941566833584322413711194571537872498460695199759746954001567021695030531628398570485123973617333303921143089577921279254224789513239803912833621019195797974759435914068793643799078804908449824907896439752835661689347462944805317979379285283720964222867500762935903669504092360024053206273687689955542812246332344318034834630618717008509980844838539029822553494536474881819055212115773649461776068846773542419374148066564031705590487436979424386379468482295236297615866153945809761629822687777913921628043015827214169824067087535784354337547755730636819519075159020926041342941669661606290905459014126918645874463568619892430090129874271834311562203658000573630650966070378141153359078885233363308822267946356868224406101782079384582847777377449286900196687392600974618070775250416514459142151967647580916323757138435604885789050838681830156384763624708367748033735736202417349920799464755200503294494803932786976239772176342076296766593616972235986932539309748975509949493485040748489826249233561665967780670641526361871794628368467522332899028796210437162715666318782870433144270588523760900230420325268881265278220779617607676424102022957643392876953136874287263752359177002952227680949604117775313284689540401350992620245665845563177625306870761252793199546732711157936069044580541321336604530188074270583169692957490868495759877047031823632994199291214850506982548741434565280200500219483306807019872048325974797176706048770893589572175271610396694109465589525092420194157517873768732810974428018882759237354929473345767037698273667886431738405949504977888168355435408557336226646322547530915492772565178544303253492933355500972593994838021913753094289725502667969473794148041599240169085683662688937757772619235351869860331949910465250098120082076009069928043059805754654894304579955311891135518004837490094889429400832381686811145027758700169315074478219631570632347400762665225176992681603924722444839986667075508153328943947234766444197979949163735878129827207245652022950819215600056521182507118532384076941799550773279955100869200389430203363009714963956173103092102142950829794891178801864367032687628670925240559879775283420734271635891185326920235895048675079426579876897790398825689836884327612900745683038877649992613083858881884335987361748227578353262074066999131995533133710444766131125339335326906330223491509777314837221005416576312021852484050685372369525322807407852393222257294428968935543724220360798138199823035317099117200474623852665239591495277320128205460015270301119981143483242970102728846847064742785800948451299103060757397330127920446418831777877352446354364123107213608234703803365327923005868300053985115978638057026967056221908132614884340113101036993234744678832311905530197479682462969500960666612956028353574872261490639193731729647112633410863612902216277054696327364979167777535490268948899776192687055612803225870020697532264146932938078026769269966034370479733094640352929259720893749441423682085581770253092992495009512594080474177901019570853151722028703367976300069761760306825332271376944533943130881618824641139132688803321613738925037242260118306629077289053771935122813119407752774301949358828400552460424231040245104868971755357121885653191977695830060052343147266924696297929804347688148383609812814493823420166970430368986825210279162355758236293879706737124971768024241922223031042915959103870440195937434384226647842288246466884057113936493637730603663358794855493430754672018055114723750422337566019598920395020477586139315544259317111052974259633084365003013760579217956535122670863237760207685117821188953135844395238205438804268099565934220631003992251835634317880347068379078610264895939403949240930658439440092601982325658323589755892674282886442650678927360720136487988595034332425447436814429553353085326663694946522104320565794928403408373514066629080253848580356605510611878567518267110243530584823093878891011595186300908752488913619115071025937897326016363033738586500584534187989665670452821645582454442161588865151499240968254323516349594120676858392576432557443308633921086277798386397280990244659318225525050441580719468130052717689272638704844432283022837025947870875625849216706513258580289684315853726921440230729970046014899991274476339085923488603588701217650440260002543524992457390631349416603817098821152879610471122276081484649717620329012193303986999361006457789781292565495868533317617425834802969948083292603482914785042523511380053782082551938643731182979799827975444276404117015492474509543091116435383226143276496185353215776693540683713327611335561643855142133095425655398017078280567123715182194102834381944214235103299606776907464354576385101870675763249057625400682271427184586957926264820834484922007259620672898478403164106075932723006612634753262495805912529573251234840007707855242554333290930919214172450537820338257452456902307974341946086505082798086776982185479793563061636443366754326851323475805623343745652965298966032894393335561447212110714767121823383755436695385708707056124419513049722904758313261912915240195974011604322485983160721482476665679707906258615115234236330753250896446072338503921559373770791966510980883116488153633813094005887896417499685523206352360868246641105199243340008512616818913732339236274568446966263321410084059834920171005779062721565178868427087288076993315468974700680348777323858281292364290257183408262334823816087566615089729166276900554336745859493541970097993503858899252660198720182809499089031686829033406713291178101204723833381520730798630637796872600412356763235113851234855592337011209370879041010124452010652227021125317388396323669292788387691388823933893684597968527564534838846241886864717221371217800340874077954690444673676678665334128300879284235902445244984752126498573358462173018107187030455089253207088750339370387804905554934517263008423669574723053855220919237840329928722680042914080090950057327976732244779226524837295444296693435269507257842710748662961303254562024814049193272331830071869224690921474954208710430080500636905972795728602718820961337526223777707234734985681951676438438116322588303080236857276366316448695729714305422587285585465540383442573310744073373911748124191489446667805058051222510524915464447298198104459703714172562206719624923439762148656729894473282713703538767151492653463160536771571218022547198969306377207128563658504609844993116998367052215318477366022206065040477578042399838898862647622266816885937362521686488704510349990592388119078864349863324797089596216188166924371723396697233088226672090893492843299809046776510697334049261612435388122319983607841993172497471225306219395913621469426105572487213810392405549533418971708515596084394413067718621346302973002701234010336170933362579337498059978564455964208914105676546256538599804278540386195814648095309204590557125851588469706143785613240269596262178235569329056745539609621553075206356948732392265404108524184687798067776075238156440942921072610270397050284663139403674445586375639911096605228027483754135527305535726033423794488172564216143359481983115375384019481893398388484935251104132516030524216903745995171107234647916185334281829694554308388086754702849203077892474768487157212776023406096061641336938052364150508953598941328464546218241011477119480954835378301551524023931934889988060094641234942044944229604254719069366472550889034065445948856460173941735147880602625163411970359051937525127964997550304143479974804260845295521762355521099764216852707542993199072816142733483614305682474045774946444254029283692607955760691431545807520489388734156834601592737778132752142367249824209892637387836764415025849184297716602120424493070393078863631135961658149410022617822534431861397021806584819154105380084653875884876924619608446147182084342103298712770190380166199819680105792226095771514637267463538316979580749673505398555136645448621194811336048512973962358881414252991662435523206510621126330093978122126396872469349834380655714083139391611445902356671685357844496487015557822402065777993054802390150456002072158041303172419224604043908041803527966686429517387126124940384565029154125575398883938356127883071756645236313841157493181464632942792938327148891806956411660276314751178390792129648717804836476187317400128068393308189934184240687155580752359529128290297653445535053992115757514811482022428289209810617026849495704009065541255002065285645098556642900991827617921300970825154880099612561639306595141841991790805325274896277098674057460401464193503146222334417355688141837674066679441359577624570301509257983533676599115481713509095958669141954415057659934128923736256696004257432345669374575031811496223273904957534457213350998418959180384268342610596389496868873228540385244467413295983285537358995552618839615842867612193572129496252897013690141688655164115561686261402364628642304106463260190858733127747130328652602090108938026620459486722868643456206285409865669898631665075689883119750581612463164838631404642248886048974109055889408145731722886842210953470604849965479652902373203565608337409503747841192483487112689104075458078280693479615796576012839257681244367234342666673221147360788590097568385121136909111171646940513943794277723925948608685820539732843185049419796273416761502072773589421709398210177210200123381802731547599654323146407954693473247327402484458279172310876734893844405451471173723391744372654689042094320079605356522458199737964246817334783392042587469043908112027685007027037010245678589640852642696998240614307627222406988789131228503763698356226773138193127048421178888032305367320289190588009218661377171075323739000722032935292977457991384276279180442332663050664042186126163340048707399260537357343578826915470692931075754333960487205191316755418949659094110391361668446069952447865748476577455798465747997328421537930464714361329652894536926823186006497917494929619375773113689397706233706082831823729239121548103943457001513641354961276354600720158279241522464793178960470450449640659007884685554757797218184390604012935454372157134050185202871578629105132127639149536962731633721106540440310416769670403124572632325216386137671406720898320788079187075313441589907276669751624821752598832201165749192142533588111801079635667018038950075277865481978736771309999891575211469993619567662662172396695353917490020353313961123268939302011524225862756289846654767654393806596405130420631790669245625068987571430965506307753031054420812266578010051936634173680088540623165323893401933597862877244306640792913118284413491913888335176659785310607671940385583526617713646457276775172842999995566228520360222691712930080904745646704021222687937668992538534961280669175057162046877304663195731855989093244277086405210857470700573437355717653262311212292635655179403521789479709654084187338581731536507133975870343699248756084465171473170637761303958587424348827218073532025297829670608931169557158347256383308094410025597195912691388551706682855316778701846332233812755318257358610587308670538585930999206769042203458844455387637462300072869450985421840567236677964862994218040647698260985539536796676944739480821550140084167135017424557052165165487771138870774976850137416046199372040207168660844094645450831935379633030542359779218604548606698054044578900829991103178531865003295445491093180641561253571048320685426109656309859880114543586868456780499974005368595691238259012637812906789801010144611288217995731156886879016154335315036236700605217519878746307292714395746786108097404461968377215738862371746110196108508822831599663588262741140313080435698355781039848438490316452515325881400418120477461730778325807648321170670187378629294327416594369097508285575857272245929567651050307744321948211813175790565219765650119283197230239512783571794721178807481345994999268787148834116711821964030948619705087462232036542843020833201784475500781894785138867015961065252231913589204346148574064209132150104097066670556465604179031216270876223240753008739114138059833436644817046625916229313402095853837535407818237325862766183250405800063785549076241821667419662350985938964471669109766233702473299356831393627328644138487897213769740483429618047003712818696045332320476311449992088495694676412203187762162810465927428630180768925458927081993342859746398684960425822398578813926687515840717569800514452698177901099296731407073265269911242562823254648142768092586573288022088368314022569737403931882347424766365108535888229355585916814569260534955823998389322929601133275610988378824241068800346163148821391599676768639731255176901489942709130680664520056119228707610478087051894346889996455678237668885221135307855325972613947062025236469488086557308986317767535310208986510050689474773344769590142810893938538865216960333044690749151503145213575833821902930436693577857091620505879638292990393043883687860997637292669056211880848775699942024884174243841739888799224189238815966813785301614565131864661845692424945409754073225733555858045636099517909725532064946005940897344662467938606017321560721996786344664210706542133195167333892762615511944323391861773350825232183021928963558832712295919790197697133637360531326615526562445438979137289777082100883433293877655499173000919221445783822044146485980538258964324284550736518094056223020649191183415420461796278832599033448194325210196476183133128944946802513180894672442658699954804717995397977155701997020442162286612331764528650188398819388161688098284549945091306259063641391102011831098396935488567310038824753567787187441931519580573498760631547737649150953944071239183776978878427027824899722258125277027013866992384306043388306007465960329970565798949639249881444146745718472508066374774293438500076982496692638093684477452203007940460311132703784296717386266574358822242672657846043587557742380412119160605252856552848334290003682592055869401278575575256426706314388055505848190654089471517407054734718497792206513333515902662284766360824488018036167772135073935469480624713045727397568198918537094123257271537306980081182245318887797537806854471573423986328685183237882919968160094434593746978233639320397943651660376965820111210989928766121323681689985293254503278999876379855609543804608741707643838862679687257109445037213376213908463548277745025706608735407085199090565198373564201264971087738106245664565451168341631348231005330633669879679227539184617601814007093790688406491172128390597824933868226909115127174856757192708954513488637394554734716591543356850090669077102820170271735220136837248476712624653345880706391183059455398495765618539099186488344122621129888467533791987993518614313746263034751491055986401263473760533769990678502256413845790897273777189539162894098292381637796422897838858324747557303927354554441092178287073719277041873433329539267814862159261819990034228112056021178900968062861543762514546455656731142576644499994017882793988627237210883807585049678732980400256933456850768839575553745472438136333081652932251573558579582210815112488124092162271678867068152505202605760373836998613012890342216042283894211010481156470478069059699132451204861998248142572693336900764827216210316761649243116359556967123170955910060472431972222275648626337275393548542977415041803247373288372749537506964335556194020137661586032969845717435985841751768342967529437446676082570296794878374453350271785631681175753095233019776860496925713081494589383290857912261213675063959016438038944536780638176899397125034012325971740600579805096003265212502629644286769061880196661953639017605532857819873772285824057620317092900086762314514232746930926981719744560633136728752917289843760346169836689072594273941605351342792864887352070542571141484716559115014385109424606704227487044816452553670614009978308794308372696530205260177801746897735050423547024187060796453512170075877590656777509597395157573281467965166926189535656468955782700043409112983207393902371481049450837598244323156893964759037692873473058152964749013035113544809439443382104047811508820323544010484731290933722329908513980858632657742894831281201678577984397795860664307442309444977371675317758218946834385437875460222182416327235318442973826207067870112356185653264436315582094902708659133895234555330904156596658621135080270159385311635901142851984966690636982750232470357458707401383103966372177970146424432044313101027128553267567095872846005978366813736116067128442195867271714056098948392628777976271544409876282593262473022813042760060974547392814398901438733947569875480304346807181378790539127320725779057898015662819775611886672014556796698617504774245536400024787116681211620616383388940421445324112042055842577631485828883464833593102659768550103578546569859058316387412607070297319418615354536801621265008412023532156841907670998640608643902791107826229609333441237717611049758478071940008218716998386151687299878714729661806269581911172762083946986344332378811084090098451638917155933789467866448868944419253446897058674814437637426440467261970846763567393999602283918298371967653133755954112150410073406628755915341960921527259135144596075744876485224975950168358041516284286373839794897245484361649367443358212150830706411886765674759905233600990572452252153435042162423991670512793566370747832829450992818346295095888634420167147411080979196791173471036443396045068000329445973612081218745667672342591188942159237128574227366471110181256371709606051697043023155178043833197460188458984062658896597710140134175077741219658836316457278044755213699855140741192462602607379341120292904235069333029020491983130690839928831289736184485771137050128722803362108396114010279529973764808788754951396225979739396370838011075460835259321368710267107036562297116057200538567731299511581316631047007243238247169668851411479492182512196566422217597834018202559108113159962395294390045398009101256702770846844013066835471660778216250682097441917809560267779499968615105521837938460638723634422794768827763544874575556870542588279022826446732240753202616437612359379555095075094632715420307176291453903159185798425655829836451383596377334212257718095365212324122674686927838421493696735830589236366977616945147007372207099062166916833275220804445334650352704565241448950050153051099080887137329476522848123942849224888785670091773253048435885515691409675918030482597891449884188063058167444145321247036167928799707341524769873325977674047308356188879303658883961794275564628447327335721821347295393422785855556312946196525385205017913057119371866914435044864270928741851194731197139067554268596732314104728177089216384231951179664731163272385606394439939486288721957354095452456161615003666392956551379282823784520568718281642107086471533855901602210039790880990805352979765556089083583901252323716432797512035767455782089259417687485913863379510452588379066591970776223531925003276752127010798761582336162785390818214150506472364359550547382375681717706549631014443623652721515532583741372070956568492042726649188098109871997828817290865629064180394926013734295827262735350862267077594403765425367216472320915282051650540407319059287923720321001480689428892682890048254837269398294686968494265979502357960673296378035044788393590746429974982782541604883911677562351239350769113615363258962861573810521035692216791495609929423191624670741584415928084098425364824169785359258731638156820392387761283856472874128233454096596189137185301027200774282275046300825417181526155808791462369900095108598123451784325990859083464401870560139848746444340285963151215576576607534882365766776005181649091898829906225541177275032206828904209575756173328934112627758187739235690243412305051813600990870113181215193981660444489417744736034950525659444855096530528852959551010164406464835057443009881065075739162417218858295393043070231760544147601269326940985107645271098717666382634444531082368062593346282856081023149700977416969700365502513778092801234956221885499316890350143560434974751708552502657184803782557046950360314062091999398125413716939027894419218810493042448619767878816639217560339976818700629551125245694478390283108038662207361981623458161256564569762566024976576211009147103567656124962132866976749878129878382621789961402816590857847948611029564635545370102514586611664646176706909074762258906818794177905621673284596176581804554609566042432837608874413705364414790231080693245058390742304123959361773228423826475322063395092255807024033295658861800978900942027773141388200724834075799222098558424695508211586159629105508932780433218950469234022439658913137286290606560861456975855524785134460218966053479921692836506589964396274645738277877224572191481698605376499989492548189755404961378733801713878019521306687502764532431121851079346396546286399555309003413878820600266627223778972972133518965919905993546686529670596392524396708105629225954861807145778845119795455495033771519288728061028339783439712109709886327664628287443233621247307919884661915242188172213460265473411083308959223179446492011910523354580656287689022586807165027372929352247180783353983567390881682968248582324367626350350951912510695996661100004232605517634230554056407629502271817377594842578542255218477965156535984786011550484235780360604320571733314943842197752098702676818852469892527848088412082253859955483713116436312562515533921760762446023348727337053313178042882950088074501940436592954921368893783579660301984846690014506048192621905606861442800098403907214544015431371173157209382911829190228584672279156493900321837958438081170958502028826982663884534728569662858694637261174030514362472965510162474860765718696869322961614061887483907240946498943870114488361573340578842818450145885663370704807112617887370478840806919704513305699583328102860666418999130319390498850288966827883027453299528376470184198404450283613704332835025857959493657087808450118036259995494720019792817484918129811216206699322139375575477771377576605175081894447833233039621412777112001117158744212700160181320423846172653469152724740031259857298279403934858887055496658936486521200595265077892593736801081016891918430644893098563248296732131816805331837329906750837812157573799015963886768983933272739272279675205029902834748108007714436338343286299680885466234844412046496940509336389304189327844688405550293564973452728727450347643902773207696273102892151538758390666334768609877276458757606303816349329669576472843208934771817066476361626361575479277291381013986228806980816718595229340946316191219406759353181013473833557790186805103143157609422118741635734844107250235278424707214856206011104975206016480890987070063196664262855891704333263823080713069245756068108142934302876960457391449742497357222039428221428564103682917812336537033524241455349956820991198452635614815009457004764165724819255733655582597379747012827573383136119679883133607563348260491591267553036636515317430113452482908193176882148716092046916125357831158521497067739996579564631098526391964814981771223148445225652683408345590473081119746119423911968952298150618449964635155537806981966105115550920640661562875134544519618398972630677621435089034338585979529496337150420042450310776733807769058335563606415064617082967934169982517508612295763530774928333415651317034483439125141270358112148820101546078700734471224383211403573121951439505266227051727744463353883093572074654532553728028752683562658929430312442132986098770027640406861014024808117297768810740095165200787614508628553953347669023410543448477810584808443865184393962563813400405756428990968193600811940984856809235155594968678456344451912656989352486502375563013990703345433604608695835957138276824492244082486646503957938500096266558776566489874645965542245424708651000722632392091255895812302713409545993501197556819201397803457541765433806523369652916084887823946260448136532824713339304512279204127679874046194754467127660078015412484062561648558641489956744249864336927884066109441792812294613978979189727691071739207162232335379875116453787150796997723878311555233814568152921485140943347195131322835611975496399235150523212002242227039773079208856702916113719667114801653495616550978542826217701457540253744377161121142986019270454417389824997381082178464645327286216557525684996907012371513438092132835631953878083428833492994961797801032703365146637346762725136910133927923558681990401114073788404822112077677720338696901244105153702800420733368415067239398529486003471173096538468738012379946707478719582623854739986224706296919125677179977223407122791338896210363185835670564817577650381601775391651969938471728167807299952656609843532165847284769101756503671592855303217338986456587757423807977071199692884015088339928533275614209180695042039137467786989259436976875566753764119652776592542787614523280589814473906421200982046307045303319485485801128275519778294966576829602707799366791302113743889952832574538567819702515394213686788431809450585399653968446886022805877245929868960754730701852032575218373155170474809993165975995771317357536904386263809296050669993671260489641292828175101792080107503323013085301367656967598774560412319933402042598929781309563034058247767073904614390970560458109056552909402558767746438716524092804820199148194008730816236071247534018934942056976456512529449075069293177680552532818431182923622733976076473788409443128306869371670664111666670697572284537106424772257503362792277135923148924428907198954816598621970765005896050551026426639437953583792687339209013011122383788313609899832258966412189239980925071608588371442380140207346410632385987576376846548541101411065375427935332650027206457731030550243249202998001483536037911006676748001928165216863275169253092714267581849116886107042018073121483726978646715530427289657587820307758526703307679422216773361967886121467539121371436285874194526362206274069116747359085592331757957295624769160588301953482173132316585939265743455149998426224971354405701786935857772266189035379518884346044545753880397041626616242942719236162549656326359813825808635309149619589491919580901228995348750544852616892927819840684093052949565563188258305236213034015536421949129987226372841158543664500670941776346725797076251020441420248161246173865058270927846495478685052273542933858396967043439548943277995068397983280839279785751554462947983912231521398595233150304681395387044150702621364613966700666046550391014885215686777552894226651382955682418591150304873608260414321460887551064409635089859418725546052272764318572192194291045554617400142497060103625235510175981113936321978214826273393773378343657107163787622642898419453354215047316916922843983749789653170430530710257259755337953779609742307137794498403175551249887858382693057512777325875263498955714992451202406896787295615162844686330492903781358576403595989910998701458014573654697421887039907115168367125365299455622959801875926692166215491138695562173537846211793345150748533807950685769281249089054437671869803164573343582263469607190863250814969983771788723023635642440414133324118393711076791941443044244315831682352359238173631205385646228726764513621784039315416141520288069645956526781952674251713529086830468337911330004529131930246083139703222352417162484115578570221523574748822288817923067001574863147320040373640348671399618930234637251837521368463619947088985677025512412509274299767475103649967294979318167229662419878204579960478625739851113735717634707907403534392274492848878147767038838508205833113011967333981812364763193251630275119503786877802947973588683707927610086403427259207038190253958467453804757072915926018676743739360098413207491663280430468717381844100176709018314903091441742891829755570631023131450185787568758039263747691196821396533859385677355323494813231869644311864081460967185714029344980324884157360473686654333380753052015165980824124224764543153829294673993102913746104310852710521814181220735532861349874535917079303880913610517520227290740036429652305329172982388244147178342551618280308304291822305896006857432860574748798929216606102146581229627125899145930910335644984233047694570721121181405157670985051047326979661721132549015346909269333698525475504549050677687753952371525745367618079710787098400041617050071114707325132480408237616447548647485770141072950125240035568812005444606380793992431702785856763759083156083368999645811229058534517996072847243124300446484099786966031289379135264692935575796747265671579847715572097530204407400483589220780877266051694551714856251226138833171106915486281921851909759886039214222148145645058641698313554181599640117926704962164228102504254955824827604540414122950774044195720435290510771469379947745166317712611243366793917140093632371025991120746531360553667343330388067852443065018666141208648144643870845868979896043676472145690430988890556955043257469238617046917518441577466907711764630868767103094320720915547535428665119174341461070783424489888394889569122145656868229414289765771519706119658661039158094102536173609352584130119870470228771693120390510652716242970101499549664707037666685846539672858028124545102397466179749641231085912439173913987173787501478478095778451569815154490304976279528288838140423240292748281744890272923733617501048340780605279026857626778521428053615678512952346019866866573621569697478284371021318872335630602750539058406314401628108945132040966217267048890330044600739648358362898176110231608805584565135349167645190954459720143133980399304907538977490826126276882968459806126348733351700427334351562642715865075338673550265585442296610442673876576814242498229522726226002753303108970326783168369849535521923889020151398202806596680624312009179636691148355237790015309153169494222977466929422860223520924960364069492955471436823468579272015839127762649985485818927163009571622581712632058873980769190129032389636154362165293706036185045468161564128591947182386889770179217653087865109292454474241372031896325955097134607175571753475100109739641038040252922467682492620910555152979332787276100808672462152698693652708746137880186770271379470701941745931204146142864751514982166224434766281207830346129892215852010622937063111054098983693536341470474844012236033469461966437564095783638886493408962782511018274188240350353983341885864019854129505563216960322792187123348494747086458628903568475080888923415327033294750546639581914770293944138289226909264499850907345255614925129712774284514826800952822923378577745196685557851419468685444025302902259791698875971426465132488099253197480557662699561532922992655851691410340613595435511386767013310544280165112682658863678453218717725646417890007519484450384490494692441713144841006632794860266208454524641921412173224065618909193920983776125525245610290322257933186347212139746618820003423602192206394541778192001034288502072488031315852713123730590348562915440023934563224464336739747693314751274118172040582784455129707398403542102402984794535761724820446721998960909082230157845191922449784686588403942616672023617085199295154275454206211583826347862543424609131223742846563354419485001816606784324197637974645672451893174136554550605824279466457689346450352675772264826856079744795799092172954669434199285469584596554989637322537387403889729702817017569237488127210228882770976879895129615877245724521378447838692797824527097619515254016117736704874423493320330955087842933614136089419803351199098815347895696967729029398179653928489006286798466038853802168439164962704702822641598388561102051157343050838328006629512109636414363501850898986512886367806726774217532433849432770210185782212884039098938327267412355613916761653018618746972141913950494398111482215927686016167849375746888142161378991079910264110858421308286293902556028442091799993799388984728443115838277366703792162881427307200630352151018074210132261023448804462334579922999141195354226263023768046292121616259587853774879923338963712018650064344136845579528637495667919992346571913073029855178089027872853907674538259101021935492594775329660805645139563264126123756441262400736065701059398888745679801711199446849533588040200313748067605619497886364588243492014358717398404015481718686690933433344174230033148056386723435209280670133420472956332859326156601317748796783252858622513469676462764053430888007298176821284270890876608401853581100964906333462208322507247651393549047094409790828777334137483825218182706954645007798404568720964511557705810016789744670791266570873086395855313416034370615817685986226450217450185481235952748176157924909439051546804933310793289600552519691908400837996697874613372570201859642575380630560668946157472966295320363262037339097107138966075974668057895631788857133981626417576466709216739274875372362604372131933698858160209133679698043601934422694080441588585154788811389118484421274644238810298989453578142184150528916852600289759325748874359508647051962790831657476711591330347316578858557983852121136339555887295636532538343928701125921066320562914626261481783132855337319491124668198579462579154855126195048631230329371714837285757578024394107232631645489149508494095184913264073223664422945046618822606987675355971003797343859847712893470461181529309660598387046527450974986651663567315326332208412658811303190898220072281819652121634397819022519453505408986564921173493845230295587106413302108311637695981349453684979952604588658118045511729245616214397542530372555978404682098823974474768793123376908234684697641883903675781296226142671505994415125698455072811044650399222844175858538522643070386061707283379854181881658398462616653692615900396146594118261058961658882984618700260368113887378516680126453583934750156666725220095047952843689358096283622130464609277240638380579965030566465726136061721597167236390515560142663786120277926771049558958245418193832763286760637779816912601981295831682794006617746592805124038684044235154543119388967820970140937718393537960519648886634790979059719201612078458131726679771045126653023423467139877026309681337317413160795548874535998801384900994022623308393148316288910476713476279254668249938313572245117437013877764539744620000552883220734530870856383689385977139147637107325625877638585376249765364624195510784326722062004699037739392103764398358964240770131899519743840161916296803267223833986398828906713958016457632345338176851978264222479466249881923343244556704566148434973772088369808768194197542674223540297913658649518558140636457413708521409587617659396394117762902251541672627174368851574726839080152714747745062499408125091876916213100391128228192474613797904150749877928588242251070912635023270413306136904479457784818024709105755119871164055545805176066191693253537205829141003231808236108572689380976258511415456147689886917291317573945056278986036563826159436190132343874552639212777495651814617368261840471815448634942992848387629322501990617280331868157133828145654597045411256638719891597733606188324152655902226581782656754985543691986570947415344397065182872190409034428311513580322612122936547489345804003410103596891067841679413796472097233334027180716595717331097523975559828483423199115263019926061947355861238165874653882608437053511617900842517973900450762310060873528276175745057110753261714537879787503783729851141968617170698571524220002571339161876823270440569937175267462687649212128171581805000679114900120959290548443726826529721976787804543866211085581252430503792776034603606446723913014495295807081477778895236811366978704585044908650155720869282569965776606067660112059756875399482167967672339399126035274096967837370614088238221910293439414235269935762184332952563930804754213284306005034037463937747414195877109692539197762941087813167079674570246297883173914874583040550286060880294035069414261682630150244679113218786939558811721310834189552673737157422902025118314868682651851826835176550607615148135784099224495593069440183544397865773088738138434003485402690921388991590383758549270852317512209817302512885075967950708820423744485442523845109151414129489917585595798494566665835955760929236526306803157510283615088430199712398576895642754162508898122867136046621821219020724546469038460369295459578109227637866118434908848436214993909381576659479357427618381113179852028089689173513561373937771573773111394683374515217049603146335844501832501456559364546977818795447045566253804999217646425184672041749019436598599368317056831330745912464761906097569405460204177576477674388751006331800161258033278202575360655299004544154547951062995851879506888517727739680354624087686051445738549456754126351230005091713148898094660263525980668110253899445057402761396705863460624796479474335413552938010530221435125239817727851418497039354376109424120455580947540688180703019321334143942852714968878131379959832639032436221826965639829819821286683423486198426960051726062482009737014775954212481172944813607670612031794564826975498522477780114876904434253513619290060030340817493051673660939314751998542975499555884498865670204673968147542946750201597150285153947016285421987152815495527022285581961728703091807646414847282480014358114701381509922988331172418957130901488817615598136555363254416188819626797039123168030268531188399040187077367288205580298916868940546183710118873988401444559603156232594059532909892643051546506742581906471526010781211176942959185255909811088321362445159322099283825923822532758575796058332889448740889799109044665400985855481226307548275738542319178522886267694349487766876336104016138973728538640489001951337151541146985119632181827556372929761472890005995670783391176280456577432140187777245302687586820724896503947919797521664483701567705995350635160967111806581354364490938211605421160981867400066475457085343841796446428266011016055072904124526794978687105926460788202035337765657999862745655856080517061518588741494653443793145087029730669420977940902897044766029376990718155534040564237964018560506073970367273376477624088541509186138984474501380908642813751310651287174357877802833238472458080023354085605927502744212671885834438681843680917668094578105206125492023170520777685571561570121551978840997554729847536854328780262521420220778856177573872180325391601452925913523828709383036029107578431933132715616186577512272626647864685795525843088702761809557505795459799504970846316324521697135819371686290544214094749389531392661213573337780935411237628012570740889997630038075675222867475904270653518766021408478105476180407205272270610389222385314610958309524001347974492638677465407724959115108307297835869821120619119912592008277620595670802339895362281636815105789991094531524112462627561291137466976954949387453587514036262474412266478200678483815060206497996946064591985304403120936796735357297653847336230439333713265691604217305260387283931697501542057089287637476629555542645214348827396523864699597818340274523974613664700549397489000856279506246681812483006030088388819827751133019045091999118967984683689414146367684944155144569979349585426697270051837737764233790789329778177580661092464144933766201364118191683600917312400703381856758193908229624538465833734992919532600010190843042612071835101206479276030268414861922683800551031529381734837315799703722073544607680495502628512597692830861934274698159655986067788888028571155462240583062044132010042596295772375977259596294256936762632963601000027340685801374430274492936931307139547330216983315139160854694419401697852876245370689263261122625937771196549492898941695870930560670741123997448919350898967843989243261267994359809306867732062571784404341465592861553564320061736524602692809655833554589815854243035530167535506428310751082848081973050226738488650497098872416810405412231728682504700767361246240676702099767235098647478849552480996322776050438618628608879633737826990865124952553837715718371123507329531911784286461419003028235301089486411542837917593228639421157227414661209239353168066128453088014525158978654609789314357201511214160748450531676403551126271594466981194941551681645278477197416230988101579324469137528764874071190235843851195018982927059794904136225473629256346672955172148665685629785375323435180842677329579478886301640668763238590816855766775521294325324463086211462910944134179134613589811540380990165573425996069870992278247705962872354854095602790359018871855677362800988100343771662363158423290169456471708497479652966949604723552809929743926354021465708014420022889402160290642511058663831490318746276125905863716892870340204128872862179291325104206996155799955065053779406873710031119238605934832887369800227780356749784364351963788852532131912675044858762004268266444191407681449606870589344624903557102496214859229175596551496326396429542632593195382641902638906145156223101257960409588353443722565293533294586350288073045441066976552609928970316559577337212723635646108276320518439615052059427209194151423745540688477736273897821867167575038407985761345033134214642591621545347024577722132368093325575658157584971985464600102317865545310966128223541051476099608321050191201304051470543804784123018222105020444311042465315326824904011464496009905829178056857138019965759568934975885579662597039776092247665332817925570265366721093814563628793224003221150493953785776234896426269360415997740441014657311673464153439875390709232670785190764663096616220960608312372721314882072215086679447527591110542900096943951919613602650366981024927247863598182079169663959659486087141514808039684539804425039499767684239653425454747069036744221597039108010062190687324169558785055221915672972019743110025119627148689371988406001559197231627805709463190032147669430875866336904345775888212858383361862436625619117880020681727320723182981541895656084584076017374632076353334729942142141238009848362529045536906161370774205751333182630850751835789333745215654268040955038688896149668081580738541519830455537682814757413187248874257411800720072130990889640723494350850323333522648642606813850408323574457380867584001831674681617107912168982723365633453389449326474168400698621963917169431546517711931636833919176624796125525100568417626691397901826936634254664605753497434200272761645568406912046094911270290994153464143977538658497579553740224221693868125503560896369922040462720982535635329120713014488111121859520161068504517277961006371446110755146886376684690262713640799242836901288647403877045275996748503355322670285618172859817098859409663619958522631831197041078294365600499407620917460072720335558988674986769554582316353783074839289198013348510531080850175257825369730298578604653718327675612107399525438473374533362933598929039913837299088303762482027887882996473472367866689517463076862928356781133955749192163352406080143626032470646470272336792123140638528209969614963944475215520403982555281777476790374936652562338120601160218888073068154322011791884463547430235319037557525838930133501082958901931972571314364685650902724600076417812775122374376732630066351308515801674791855144046728848808931176765205440929051601821231796273328313435118403683387657748423399971085111438094154111346959651492770180228392134925954372684399471491844574310281754776586323970415572784328701657191519782254944543501446953351114693264742967126201027432941287450033145898582976245470434802616524266032498761068855388013621099392522608456942586215407532863788425197805958299922788450868583966315219861551380146627640468647863281075215576541737036401997891671265335674291240045265747669891643657819926913415209563087106425032690585343308138493817331742340629184435239400249840477433727825535436462611982668882380396194479320369171647503181849030558912621407120189332353216246443956703221973479212620764938050888232372185364562124601259577663726457128684861786538115934603993305200308266002240798547495160589379113022785599221994157140930365270919251487246610287596420748446122232282712484126500018292944378925403292466684276548937481261608545553384411070381091708539847830361590489867806926450679867015175734013336896218941529024680199338187690965272807822688327373914467995630432848974298430596895494508126681479521759575186147592302377617339889056050564400673490661474329573292682960654186432503991230105927526175391730590194100318785549519162422654690319203622606709266514602781216490205868175304436728376540100119425960778533437445349125865045033909217858762773879075386105265669224313753618448788969530634951913648417300794015340848641948700610395827870958186968340756970102464363877975896549307280006896179274846185437015158257548508473379676118676381055057656800426645067401920359201000698327812031124098705797113690856568049728046430063726278861251438679444889189567122603800485636244750207699527723939249134162842570907320690619831264284973284981993360903524078189169535028211102142083832715359653155832318515101195788490139386920645851484803963995929422440045539750738910352356274613753169472547051177048655563672945047831029133058964019898145647210272600720571016398712576010449875637845545762080290483795134781071610692922995753391256488971109878077137074364852297066550590700898192689823009818247233042476640273882150421562927942106617906660159396415364552693354595282632295686584450391320879046492146783706105992033902379190715590167212799667877800094819855884902711281843833370607781401405707679439329291412489614773752748573475935854776107767729807691143973652890658914366520533255142872444857758409714560853797699073667448368840498375572857040078119781892535809885827400219266022458339125570381776388926840326103258540297380858155588511229093365361015604982752138118781466833849218543421773703516285062766487676388184566067565924374310458808599009170309501212244378506658704544340246415389543781128560274055454296579409646353535608927112691119324345592441994413397232589809725550312124593650913557352191606427460539277681251500536728955906946292618898321405427459583466838443359000129235792909765848243459594281025682894420616229995662630504784837538978575956353999405574140457728878961274355405765506199682842079234501852795420736566403390717035212781279682318297875317955335294659815871921488936824646651856728190245185439022250301067923659941314599083155057920366580057161796520172168054935326994924664009483241938831153526497321562094992084608173065691468667486884864166296810415184838973776450592368585531734418236232924840176413509013468740211984705460341985031571473202909847715025258853836986478112376367553359484005742180025411942440132584610478750773234613172478088984901941937872589425684203087877757905920473172583955046090534891302844658562213486797842680076931919432363991743588896398755422923513534968154297938692567501004697305392121373142885567084173649867421536359056717627710208162655625937012299681631071345701870780630531140047119170905436755442278387522466291242826654865582141153268695257114872636245143986586501286619388302651473922979653060202897818889994246693039679974573708328942418538136776508818605939471954960002652193151784293078304448740590683089072750205098954765827192896142944033512598888168693628404533461342876000160330991295590546328027700382288880264274472510806183553435279942203169826214196074557611869704975252104071864122883552277045703190296565330512575801399508011601158941151391199057442993400087783894435814994851966786734879471333182000411760800653342205829898367602179670944208615384586208580936553734994691777462779053603682814812118064934551188436738027979789588227281571753094906498877442370842997760450718981019280883327917990609137736302628506738231919438174144079009537646675628614319559989456930942269183786856096004088384961126179545772974323839445146385346644905899909541791824881211132521379773525818377356501965869028324353393606434223233171892390341132908711617419388859732884032122881415818139559769845292352042181458764432053142048770792866363252393014833213207619925125948183995466052511189096616951737811919590830274090132637703712239523823918106717311257699316693259997773320145586248259018717670830909940180731340256918923332076102897054022838832912527361435324042823679876664636773341954904068501226304685061623873858961739428384491100438464098582708364281058692665194565629814671532213996670701738375054566207337002233822806960269549517162003103461153496895080186512952276329564768302882028537658079454879357501153098932655749994985671980043206078061699016863625772720115880999342043591506917583156084911812753625130092734153909544037835419882491319269273254751148180171152414315704846144183386230006566490029142168306377164673703322718810276081661091633915438997581934588920789079754842196239602983007901067444684242495723403227379377285315106007082542512490932313443778640614534583164529586721958431403199614179223478228526083549247801075917656176564440949300102843747354363457037241891182748663843399102026749510849547261464148495881192522955288869778327496158843461617129671017387899859291976166424153920134424419369280005928465278236567677015367902604258543812535423746096563080956915456528970507310513883381796946516452954319922178930896601111172588320584841615956568516161707079533875363681688908670991075814577539739562991135487761638362304685012991684906147076911484486404893284061038791258299634823783340871385550937649534196687623722057471557783140535947227032559737265317651480245347820550541613350683966068734255615848928701442217154447557256103096188334970948751647603269322999570064486288619803410721228971835118014639134332475701502429302136910828429428017752388184276519918722635533607734456943122903134106661173375571414083389332205698500664265517410421309249960863863540333742447009120791196605695518169991710811301718833560042819360341867558026125827432642518078445949213105230613512207956680341875655439775327812697192066722725943640429910461255550213353796528098674155484872883785903249935328208689766551219917129220647394042459345069895936582848801701352187377128969549210905776510963422090720367937700584267546366773966404066368626750069880332808746277885233495580081006199569804031135754588634388411493927096642938140725978782832301067340625160195673964685949115530825749159014576208539264801309737679349716987926330780956311214580858572274585470525289892997251568485021122484281929515445567074706914034576912356005906881091146621086610144255521339686760373268817295758669753552065752410435162744189135428724338873045400259984502748365254966236022188686668369233259010645287939742060598652808948712262744418861685935267636407561376869635856283515059794852797340987796700897792991525347223246216362851441741475309191201017737021844581576488530433451736477304198887522199047506635918008103483905807603806053893797576764710837344058366507629737623323933850249931352253777962187527770466434186695544194763921251897272580839903395351062588327212601897231610534774155894899563388597955471223217417643246750155206223525655984708958963099779038513068336677932425794078932847317588125498455216848462728481950438022891905315168217059021822074492792770143903552370043960923261910032601573696677305995126409297890588235945297249820156661518749672118658506861279394816040084863612422685010410078323975292269191186002068055394433885130118136400181773047405647329772503474218945362082042113254236877017462013140644406848648873559574269855388597341748506118674598533255176683338573217976286826290240836215086027627281068803483202611728616382026409395749415329086676388702827516036774488411478549660114090964984021942198978564361361855948467234982279558866262279446202420419690046323652342560812116305266486494098703858494312701659800437412901132315086262139682644323207411094166043133978180831796237879310574093989051958824154704692285799881374773781103244563003566455103665990128256533747444482547158026847749739145026834414373106315385271540856198935773610478719348366112532360539814224031588762268629887529220258164610916342417084544193035073755002028110439213582358559040268500104522182905934950077927959934397984986287464926962794244440475705828216273096916885788133078260349416701318269242052657743269299247112130790174908150998174854049779697396118665625275477033217921940836262290736664821997293555559639163247048387249262691091398363991072744157917758609117198304502636621013316826431648255789202831116288334136799060371103390600526444704622293098858319224122578082525770561595172816211605079647050824318052910450987153322625901123142673357293073020996646041951757309974471642150617000801789469012589224520821859331740348506879080042410776665004929693806938616389695484336992476362216049250948078252108295503006212217475451225081588864432557309986028081424878034256972354458445125808682532682516924853747646103396731880746462156194634934531821005046906208830248760490890752256767878154048911902726303614945576276296142429641168949050897266654142957132469506987743496446580205627755352720104529660941193760580696989447047696702035708467725302694427111473685429895623690915804400107398982510624112187857932376319278754159871773728415469229773655405534339937877182191239727843481740540360436786919186003827773904909890655232748761567164344999343126999226860796948029207604386205545304508015479381594474737360068395715046309335548142046581914924986731289658407913319588715448578976789884424822626798848044398317101880308881948116523824970436799034346187135159258416520205948598923839209575267812162791734637531796765577312807421070748092328338118100156116462599830401834765421878621907193522461621008344850556834294823861580745037300309633302328933282025082322508842493507153082271945312427896283444034904907551074472371466609782508979783352781653920595756982585841167013796396802381612468256119011779790743055462492806477770290731226833090381289062422538061718248703780503427937133156933178598349828313963969495448893695749589205855954828345298207701932097439528592022374523943870819526318438880849358388749823214951969065186639057486522231795620149908078825456923373138345286894540648600279272775057973162643230923206364534457991663488274758018099328241291656241806260193465402136375028900412463181439195303573123858556047509480718318541229335173324735182438991601122961610115459630446517258802983188430202970877211774146363114222410118174563623321845479754149164524787395498232003961507388343729443880467565078811402396027243656052370371112774976708935795315035520286986867525525811148510969840921236695075124797296297057469940821967788680742452436146606796266787185481936466388858479037130402056224577265607283102234386449918946529823448210421619441812914207634659949119172511509340643296673961849634074834745635249666379809262882219736722344149799019840325345795639482079822403301564243369451134244850130493209567809242019749344427169997520697084245430236584510494786244903311510145921057409910626717445891072270361509117321045019266401367752380650797360772497168888899825871489656200675483972206834789886826965354225432201678538023936078912778171050683146460824937088694940966454456155317290114471297407085881850429043182976114058772110019765436991536507374358601097173064242366822521139655674030932548769842783201955042670292021973060675465448333324533712958715283125405386650102858055989739512536786688074357850624892478059641107230994123064683516635840428207857359108129072068581806960374647147595715358347062162850849141456474294742345845354455806857630298725929750482006655862860125607742201504430648448205207733469790994188024407909201361748721456095556763414872555650185142848000589863116421026756213521056889031942607349807913155676408273586592962717015068903496370546944970644418138775254523210287517148956937786470623383081429055611436751752999399240714339870956465263375268468421432531634210723313089309621042212802603790105425711075147947944131837410561087158522996904225065547624874328210232738522624979461589985296488017824104072305380641188787055162194646143804772705388154262762821335537489123380610184475657140422608600656895525385560875122430162815985553370882476286669016367739918765877767137205586476832441056780139813058270002524594630840041340067788060316749721852554827411278292157407063460442991566395299467810209607423432536400909319626291516493082117002189300423655396596420563075817658360765939854749212266899474408144568361055265961337736210490755184058563600450405870249510211205982659552185279578663664231460062249992097674484314068883192294882379539884574613155345589803736441435708553807046738254584076278297102383031078163713882217681074669670217084669934526320895455477616858386758078448773110447835510407310816800134448474375067089296420642415787388700372471315725534504453642240014750184340024778957450875564672156245496189252996308095978964271854939857480318053778713779862670125285005054702397797958209930439483222798200508323890657600133862576231391736621553182992365889140637022843097052246556913760805967150401312038233759246526102716904497658585771798543507731003959578482763378340353766085383624320807645709761589139772219512925428616228773080444174331990459006136880826000249200500829679605386323582944074109765827861900385139917615285221004838964477082324554699587686926779962711288906944851587725210954437182746172824308736617027588614989331447883143225842979542840813056437908420320311300266943467789727217518970496294280596964932885986516069064003855905275141645156176753644542453001644734109001297355584422170266331596778409606442808380629017822111353122564684278058291127570235645773197216239136007641373663124345805538687921194032267152171027433160377733771749673892653527012117547775190826432935640900267404395438098846197655183077893179840565335753720025009120556121111567637068245487117313580311999936694754149178210199861946110272711232333034162864136520665867504337254100102282391259224675185327106534443697538878525086575841160888580480442886995919289306374236795924945000226556011394982624074001860001148562648167972673314617906347824782819615550193694236789068532710310665386811142466978573624330671655579501506000185723383633074651391061733193909253501884333943322471787796523041324004830295030509750936776637167075359825668825128231647992684543551451739040903302935029551960040180854897034931656634580731598381425437687794638465753172577718377317103236953301369138197103436066155587272969921221485851544938364833905903863686000614527183410803100500636407539767539725009169307558642767036517143719237892438257305677982454332506421922699377386954784063446953286600213177993938081256282674959982602810220985461334992279288239516706441820676880931680645828792508825510359937854350441543394073443063582367160534365013474504914301029514384443727401956676753550349202002317933492468762629204827041705092448875491537075864535639045052546415143079984881978439788407559172022576320664346700571085113384662830901437033882439630873963374499643345567756086948872328365893434280559663601930254579399600931315243373180778193247242684753488203164261932859396530661649598677799907932889515123212353635891048352028181816536898536279008201138199738747240603522710946251007543085774547549797707177215239672931495325160476426447725026471555974412880356985720523359248275369160937512034223664340047965804908353071563221832985662189082662682528564374467808320394523760086479311645685738205362277142723925803375112515032253227489932808560602722039047615606766222013257276972679776625418215831564174001915150417375284115661740832320851355824090334584368906196335014247753423034047100256500255558205450954526814316830880599274015540587337288025784398753166039161826636447882522745097241372720876697575742051220779327443605792868879189798245036388106723850977531049662719105452246086390157125155684624100448967967989689793327713117439170096578750554006516442453671504425253529097980748770559952516760251197325856240654737413429470569144511986015568198277668020621148724429040274728164761250749933992178167581225930027239137268018083058934863876116070082173366189224184367724422380221603145584741791111915687719171377941887257296759589900289973188662686853013920603084631013265054236854781328513977740317079853233712964413288984402186742625047814405536437469146884369317807001488011381498081021872332127928922780073781261088576604346321366515254744329928998782274781130655323937202304821599186269570398069407849699126550461291068604286856317347254903695489977133217521419694931361094549461835359340262740902532913321268949776307946197805445841957233050282113303328657331581014100201234345533309002484268555501005489105705847830016430647121470291875278114792979996745863981910261439136158953103436121731043701735505836617620075380006207454182099046321278894003657107873283071000302775781595451451661821571513440699493971602411597810204199015685791641143776612934664431375365663848522604476318062571611064388831217237279959321976892883629392169212582624851166220747478282094406470877741103879537814487161536619074519801822338697391883564641500041654986447601808121832428888527563290308903834017034217757575336508436207036166145111720180783835580624203269816521250310842797032747633920460870103781558929670276369265769768760687662453247201158653015834999686116618398424622422068876520873159471905417510730535541281107015743956799270675912417216006572852080305855170944079363894339444445667959000148096785239555516093983756760023965118291516454471493388483724512842049559375552651512201965811766105870062794563146120665004929127234433925950855712296550065326037397804725543560739843798358815425483259255527838351272226102726633659444879082828252949184546109529105708044336711698551096280845026800876334883417498726507996475995855940278302860448024110227619236032112818856467939451685635580514312544528203796037423275121634837141416424420249401432716278070545245152218765965111095744535844656793789605441677101080850702215563596771680593218505843865684461962884314294826115510606202285828841315887043058768227419011067811939740299116565278328441936789770187404024426250257072392177327704003966076886928612470079911746653398287657783942494423126379477260143849893738873927941556939981908645204916185164235243481401619849025700694681361243150287830796739031159126883249756388794145605850900908114889519497339183549404146321124012502444279071353463770243924710993481582316013687321942216369914124360537010060183126089785027661650987320055204914510391742539774155765401611677612093162130820600591645959599580313718538508078741842241814016175786453184207763624205278436116836315981534911004759104755877590213006150543546444451575642855718651346536810159258107982457350508319400405553747023834831894739427601827206134060653397250111291343465877806886977329765767929661555867697046257279581186744330594710134577340714963176975734659504334943322329022867122413468123726675411468148645007879514763755744421096558091414976237964784210935757926983178197325923053296852181586745779662393117582805329504285360784534304854035005175996448037602113277213852288053526981109201446432004017884874009842539025412583360117331386416275818321980715557658295930629719310670012463595232430084440118171950694714608958202985779462909099105609616035262581205844051489215690260528536858645188884650217276454457701694618865582505584913586993442542496161174968283301255656621132168600613594583318172857887820683922544898396059051726103098337320760022790462428731162165712414360578787176337279422946571727161128112290620357098751730370081518295832524284232451710312311562207285519754608954148721755683572067519072002127030416529857686676409091804436718460989067614723962336896706583890767622903755008340743525597896265037479874009773690529963961253573061329839934093149731372178154716857289123807030894399625332466349610546704939397520245719090536601391012313927976301157853091131142954340430351260850257675270816102862775816778448755562347276936672540771068212497233237616641371064493670669358722738202880851802216967987375141795147391493570592731955694721715203564713841890856432285760857845422924730486286597233061771566027970309745423320970688633930933640923214317699290945808051549097127342570572487243245271945319075750973830989820534125629386488427172383857176080224853632046280380936136061376089744187455234355447934933918311683462486461880335373594621422985555523121474598357960564017385973956740672149963536495420289175064189300521266228199951577386444674789554622487028964644716130045897594256450464920465206292828929874730842387744228852953099050290398117124151529280349364113868836375821931546205897130803559311397373880438905179574840137109244718772724364032605573269780354127294620379727137151880997845825667778251864290462878071061227284541108463458156750495361376039620054687828594490293305801087895964717767615784283128422953740002194672106362973192589978161087247896110896594543951859743035202746236163668137248981619183340237053260320948542884258058055408407289548544844303260655276917140392999977338006424775214227482457666060699341634537184183013412027999232620619077820064974550464129957506034497237831586342426875625617410865249960524220392342293806536297630258945712171803010688266979628091037269760155460957945233231276880636541530313844400780648290055618364839939325487663967051045127834231876785656496251532411919343440399766790428237386854781056743747518174897680721518369173509901927184231050938680899740556228705488132624541532268420312335326720852563141202026404023923675407010282805623759853469918144645261823112717655005976966261335066282224566905986399654606475100721804833375609900045036125806882029496697239322993759291401125140762839783023901133587869295331500109658357664910223292812988042736866385825961051804398314251286810683474601027716735952597853345900619400661140008726565765620456889536532578999612057435294727465911729927187407288194321222335740281353549657361189527201833066763880917891909787869091633539305540766648921903806906700911704546601920677652407951148465434564031352569777608489027890777103786048514062467102805785124347891115025721748087020801140081497374888856266955920675713469337310225697062800407327392565295839641120734641161211015565697611978798950091604747974090078323587142992190829262381600938214317711838096533780609220343899655193532166266156843982483925167476988600418144178023617506727223792934178777105644270097851939948837741723337195344298568781072708762460246482191351332785963182033254882373569228620901627065318537736621841458852488801778489275964690929597540539179672577301293795739487459753086046822692307231272297879119321197747614276113613510520687947971997397551591237323573278818750214148291915219709475408497225528643241883450730289949505502048661429596181715981736060253335559947542931310091832042867465217465058757904851055631198632334192041954604738970455983511718909331777102602311496207786345275988875213116443552011020568187087121719379535029935901788465890481156203203035358310773742179194468871966927655247131294381897990303501668303246454311990737052510657836783711370731226344686033738122153693353898285489431469192066369992498723850799355693775926319026082928438308856007351765733562259213705916979048419251750111878744010066778016503406116583105116569834381106626285172158079758436316382020154512511804504967156051583478431654606511860172118097301673867668731810210430721304199221306853709896349690602631576173947883608312675222052481718020206596814481860250612346436427057661489389640982764994171574038099801483326372661488230617637924142054454397744773649858073274524823234658272349292063736882226371896697256016686252314030984921854842554985435999163510578544903004312647557361840665470356684000288802016723279604903599465101123907099444772913076317824996488616022831112275064648308644457374835448848705447687353576383888270721788781269373653531407749788985453940519726990266293491581713789986400026171462523303318437361270670107807560473708220484447460429023856940916773551175863718794349638842717261324746189730552599000075142570322268660673609775054192198259093557597753698422486824508007169785740595826579357832689253804870700939937210001087376071409374641570444639814973568642667619056980332308449891460337970516706052695307855517577796618645358043799643965207454714767960704432496925513764837745614276198900785255391679594129474481676821931010863817777830121316269461711365501173949612333965991672288346522697769105262440352800060452238789321846516104558751672271998797766390938791285600649838216332551291082363000532640900424722587166327065047148382298557380804235926611772719531319457272574745006142372484541579595009478797474765691807892912977868248158104516638220713119326426787850291277307450483486920507661438938889530728442044744348701046181511251635461909152808289861106624832900968426656183962935569122216172256183026989629480417002104472555795274286301117302254229968735759643666774774930090311469289177805134963831319286363647253839132002481191545751940248678336853733792068581964576027130018117546413641203958134887303001144487155918016809101211686649772135564866451100372918518221470120560560376745752826090213914364648037522784619304606883692296064724139363308434564477679503773630671349982346249964450397515270761234882087210371724947798083061765280182945729995535214442945247718663888280049779430460154270423309098475933809046724330420853573598030681739114087145707967582330471305724897735923714001418143494094908706214809976230289629662900024604637544349959333287235575319127672235764968185179930182332476462903654529033610947763381841493276549713796922379809128347635254033305426247456067992986858879520786372446778452850345690253790639484614918500488546959997598020214669023139005678041869752181976011686669075145484431743895642961091741194493802024741802134924381909612064366979469667078683729478184642296675959509105840562511068029707832126780032928082581162975991976993446221137922776573068281534431527931576001451055923761499091563961927713748243266462342068823083487587311045204593139301951965766539899005523339686828217211448260698262927790346061766095842820756794533324323468670816829796394323426286137804689238797730744295734152247876494053847379734208578426478961589385865092145839425767046462654581110803821889709702545586303260492883368074786736464435154249021825211222866734620483133572987183266755539824486076429027509934485640956575725188339193643316554204588308279212754901584754433095591773683919296083631294293946787355566147181291351533720676611801538083069054549033407457534718309347589120359072954075758080725143209509922101069582802950176687622098307748108942321821531213785295687730437942700992701189765160271366272704139816032987886004408372686062667925455589082449606172390234791087593719130165297791852621636200729039216112657391480796196495610166194594138962923292537906267512487597629287670035174883268378741681122479655541692366999926693906864359226317997714706377143498001049537887000555641069642984223167565029829625982074735732202292137265409278106187828917753920769538231469655406933301887385920515394314857147127067791741876671936508326032694845564039812907670378626414586485699816210667199390175755686464161532309433299100328420329186944559814039670353720731019561197799734044412935985086335132020266664393974605480742070236917849223781019470842058185674403986219211009840614121975942495943578411713852356330254672028445148871725269511618358648386580435712327204879122644813830020666537864879287610944262715203803368656288382755731178347243390885501473331064085934632441692782985067489256340749342237438120169910662390216062780172401527987208183154324947263804502412453824394002010522704719296849602042280420457992569869484252406653124008052273027519680394444343349732866638689515716870468668514462731614200788009342367281255051610753764077860074702678445568735447350407503984547381606288775795228759018243399446324397085509213280431227593751553593549001948749530792590627432243786989268169541562402503623074043857225103073360781908539841782956754261971433432772658673956781506442482496817562607811836972119925679256744859682835944423728067239964654493594093145350163026597911941481432550351578359638276765224788556883626344159746973782080551386358710631125208416424039207370059748695361988081223954343988223744420337782249714911719761524343444352864947855092045212359312554741727465352623258143358397665445619439085894900940001315885935884399496105676112904018367278820987702899279191679428264824657714664048747303506209628137844368409794786771535151185945332396314478009991084944757381389245271256503405580044840819686968011684314387726742318837346226564067215950760823295671028524020022532588550280121294969002401611309371583382903384055616462374491993290467258975202051281806227910138724104208090070915030757501216392820617898229557381151673586941504696032966589643912173587134326536754422184552177850242721105516849275616040577840564692771963595470801667215780468090930546258118060651587819853281109949295490876501352625172606808746974418686835554090472325017762146390669845053078419861276042447176349909818683943631069774946332450291349566091474527107276129642842002644326794702435771352163583934344128162279621063642708853567281631481604249416621669307342457712066464330793805318389429265442152989696285453685177959419824275901109819782162563262761150650442085316102317718539995386832369002566647644085436058320635666963969310160104029652628395577401728434092150408177472913339506159209567547705689120358663264684228369214172305063273105712718951519866812570306761544674779013698062298056290977146548495589758473773349855158923429178996933319053177536640051369549318468956722613527467466933400571192525665041142499865489594583234313414301973880723583263168751426667674918105753274367600797470281845886122298071791929622879198749551889376638265023283710995206404971054803782278551697570640749322583489973492898252021256181313812437183480250684832996150674677383466281394267978331503059465409920572262616906033527599978127034927204188982832649502140911004062549577322832293802331980929942482949257594634817007875035908089794890639911967041346454519560366984244674890083682037755545059092956033733952208070742897287031687955541196891608112484475831506691279357730218941551043144773663633489425438150430173762682571187245250420267879591909815823245305502409814520835721194371964741381412738090035310072154869568171926357091276538692751549956196597144713637954321437314573657182229325997503996384027084239157864848702294814528792036054500204062903494017460921448640430837504170370173449509433309215913583797754169884902115317045597112902270922078227002976039476206347944042631660079598609072208422522843109398880198159846707938335957206607301466184742878820949609809234495962303768145688954250797481351590325909877240147165934520931993953380893253206128805985626234968556748437027210439591123874271087259419874673981643563091392240465889676434762703397058741320423615336718695775247337175909504816860826160470279391695684292423640487250673069969187110103414467589981834375924469086531566130300199409247963753373672557508836113566389239045447763850410262933737449530345435911171976272465893255433793502076033209082756525070673302748185842096377184442390931837647723825453983961867132219663737161760359486624957679860422054637867865593907918018090818343145957522229159791636162735742920515849293384524927009962151620259767728191970101644400089140852261265537241666666171593021214222026381358392310897164239264529303464140239179543616606045168948102883469140466497317817427551303163450314186116396939382834262977121786069644527041181504358509536382441435194726978815677902401096450604393758294889198050212068961896704053488850362484239478898313426835852358870753455901634811742083364674486791568249855369538424314301806800069347926305873277663516757447486071534779676313671255057314580748704776953547895578246815059745353473216266869468704841257140546053613603505433977008165408698196667801257018992232403415956213766493185881358092935871763106770103089027341914871574491993915209912836512636864635334389317083066592073684230287209354944289142016125104903982207080110970068937099460655371168556377826443072560271623259007468734139264046744368303105007781695331691928200873810222867868260048755037505868038471309325545991714966683251120195733874947994845839992175318473250367416107086215847427984047462211931227066150368573841533075976042737773930658043043566395289898913831411044683926939329459892803134907511644842295218205740425665691980020564076753643176117415567013177415054878942033950092523709741138045531761874769156858118781567260573417640106977410609878117569697852648773202874551425567122880877065989116284478053307033351098667807501073871797029499332477658950175339702282073160699630153981752986993079564584650829842923438785578420983400322603125044711979266922465647098475580799762490716576604146372789758533153618923700511709619053768877668384551006863072030662822158879944199072854514880858521306476908616807308614763188204360711804794079954141670291209254077473165398080874243602199618239430097642238833665027637634407687449702466713437091975730082435863269104389257269339621146684501590903746302338277825155499893417861654144629356544063749832123293605850575997802770497473909356190537994929360943530057518829916151273563568010171109018146529648521728635409593911081264562686518503110338305261689622487765647538687648503558859478884585679634806042336080405795481875417692213722613444035226954987241014696801827332713269818913177600382212101475164306264681399330195620464578619972097723308930634097817083879619093814614182729077097066927764917702364517130291801661429890327365325857265794251860450112165117322868278317713292917671135082621016788017459676336149979938427231356305981787142523959500995760230412565942373979355664904663805012778950327114985124491597046717802596153756053909911223516612322674572401289675590879130871305190264493532588235876664426830060201239464358415625943664392977284898417965945924547789476879547503680642486438056139997737231617872081739871031459983488681385535607363435532231740006356732417979762898752676130127283716578683056860161826558847459615483031621599385095278074993877528455086601574636317719818425938393022721577036976820617397989551634264866729700401573882356367730230137411313792364216186107548194840206547271714777037390661229990558061444642697052064260361258912598097823952916393502374060134163271026200752050916712545822865501104772276024971768959716737168083072986941320153925812835761257691002506660999080900583046808133878373514252272701862339144938290339862107348498129028249439942711032840868889627125379189343345922236849114534454094602684963776617760178783934555394127412305043337622366255163362889385733425750563589655651475187080057314060654069502329578134560067898074782010712418491380243302539226643454152219904348385021765425572147886904513425398602388692533553355332006799521669964364168510766608877391890964349531231237836596549218589485240454789450233538152509219908291151017349694875354309423168048210416490155002152682856234308305545678712628033615384531298386099261097446382967922411863383280843490102425680598012137036875421079713694832386489942762929887825569979173385130139008400216396670499458843245069485341827736244163348593622766975232099645297946681585733513857786258760052216554335493474601321122876124556037639599448389943958225087792603343798176573618483431343125192344500796514473163549966259268953695719395913141872590541213369092093845128917244885461783950474620693813169945039739058356683205161003838113289277393903453361458668271920506262469650318341480244213060872685685779874832708144018040562241099892837500991069926963199074985712293193125767980768594897224804375912962335909167625582482954509597731874026102726752865614462946510189911541460011828636947683469369272681661399564644004475704907488083872004823227043254917208943215725870329025852343315427328121289415301683370638106314082751617514013662478131285622473119635226921979782779874265351011271028564174048996735174808757726260598292732272247491929319165076841353998434959036804652825203402177073214625186876036709067717517131924177297301025257395103739707670139422883534260508161649156721759472185473200440643069404104563583688877316425330369240746391757555119669115264067756716586511717572087738274284053123745668090551309879333257095201183522577493776263096130028766893451682926307757945547995036485698570452356988244416854988972691281026741619157340879058262598936033913946089178529615054057911283972804717256060608544813866366824604306450124432284175287825864407519034442494055610295946951151420428096173606973434167306888936071601106428811406429376363365245955271054939034518317723688019804519581667883708052003682701785714898315820232075197340612831638073507766744997264314970418628340245689923462297957486720992152037612487400883416899172155484291386283803770279825551617504108894504300274958698160715534057647611644559626159777892199657894604496895950942018093267717084398797977585943252928964849646418762355327434874315183965075427304744677723808503987816572301146306407677847808448916613580201320956129208884762026533071011118522524412782653918921879231362849792553463105912640827714255959952866649773067761897337581302488713667862205035586143112261728698473764196419658030769959106509808077235978840322450339707450512119087388842205178520329882934037508157219758456542187490185758551345889880223842645552748943768882181062641652521718464982464750377842330060258807175611169752377266231758294741193684212558669899523431677744398212319494718133613387374510793327967945754504586928458235178035920188188676570183342052510820438848786407164182372528700041155656353847327932337786618157324375861036319740818942191466659278982930937822066717883550126504712013706945556916486945605109585644231250928008604007611757310509854792639112788160048677937638905408233058453218658913235246898118589151864252486816538131218571952738096904476187337260052037271538197443117443860446559453236080475245451184005125140054465225209445768644251914674074537525240229381931326771003053685130956202541858397148477039275264070473627164566150907925732569764445274384850439937246164432990590250568353491825600945746020770959470145901782221878640341288257883527442369065029830109577210253797739265812438939639785426453543957186604577548735850769220656519038961148873993156773218355689779242295151476761784251615377720531025446734967379616917070743075132206617826008865745718829983152029621494297932613114080921262691125400930484206455258881938852854380563123775162004979615655197325566668271820607986187810392351242767127504945183575610137487066350568702643266393877337644436578691477872811804571191722852893976729795237292799419158477337024895009017597928470154123120160898096594648832918153851095241219225916211846902680493722104041645827770239654002708479335589970987177154360992657842645382698946988555743814017400172378753358431338172403696765540597982583757174987669119778051638900146629957729344487443295055606975809485859997397959002732755098341362206012051315045781169587769316272508721437706126594084878669701006347910671768641592036285771284212857461541206066431272246609529603880544361830948190658805609471963572182926407366504804558277784437191902595259241426056541156405979693822524517268896837565768629459088136680120756838870893723367671906720077482356397390987828968908111998924298280430413766179792226981558747250835617259595573767301648772738743951925606740263292446728225898801889493418854158407818866063993456351232585306577048908157580939241004647991078084860867394533673575738522172772562255534005657188993073906556094503682612651381149730887170320514200088057075676129960104427296189082405794262833557522147011980948454987148140928043199667943779633873171941418046284235780644264295843909308204705610867499778371333319234577394417503026479507939774243356423336722073520469174038468250684203061050790016578702603569060045960070853458611167621018165966149124164332269097928490784937576372286704122873910992503787077738179177065460610543964594000309853404793864057637145202171225780358310486551542347849615930231778627284082217096577442566269431462126789739349077395605012844457214022245181606237419573028987936024933694905471372780364249041478504366649607478809887567529031494548841091884614126101745498179064215808772173459273011209667459624569204346952798324825752160082559821459937917242150696206684421624942630587543681596077573836014343935783439156616729177682767705662443893094988276916163268482188995400955040398644450167564656322026816664913259985503643879569679213589720828362994904677975761075998684652363686236321140698058961457580280832115646995627598452519730805761895318272418395567005173924265787636908574083406037938753104151379118727622033738900691289825610606583965157309822137806544866937398683077904223729173944778012825375090822901049282928029441778509773725140514850391700750473827712055885782056996425330010522531365654958518411909874208103300010561268352939677710097687972677901425287046291453298882856055940804616550523865530943839242494485390268553724755087291544504690225183658196184989328406801484893198254457111393036104887459036497330501878078194124215272096902325458858293218227665117338742146628537568985054859137144879792320555341735272034967251467743264936172772336004440555311456071748036098929689643692079931959326323004956093530486205947307355683118413361906278998672832039634836368933872930362934196075740018696400582704776504273659155718136549783610443373148656907154494156400052339980970886731700084592908818276904249449195304636395127014796450644714942440946320354444340414068708121908404063739665996595048530654651647486870567642374199591309297911025911095312452261958014999514077183219953565422851760029889539779150787735281063669345574819774114191560385240034457875898126962459993751078954585793195875401508380026399528510346665228483294540065261097454994183716030333072410513418849617037757426845172723099968034226732655514162564182237462021334750417098329977406377814436828674048858429734879356145786332292566904427059999568045914031695355588204650819435576983869744867143087281472428924274845886822124633210049974891545352348094557118821784305537628012746356029955570218759547491139070089317902316873071772990645903920196921224040897833699725294458685766712435090186740143504320321279260331396023529369354746414971550140442347778935537905980153982587216516128163581905453758730707477046758758211739711665771633804212848331794335699869381141735950854018815919662238776861516033456927702415955550653507903138262313677317045209165308268478451357419380359476021565413346616742249067846771076287611452522220394597404353695015099891113009679445526758010033721022914370838792334945482037810906326514315254001892429791842039008974912374904489611721236342785976318053278789013738206032060987079236985814852023012368113332580251576224925951751315889910399396057393660685855213025776269562674258823008596748367255652142723610667471199679698553415998603530742796281041593385729436510025038054225870307842359304279110436961991071089565714468323814112570035722739816697991925356506552795655199695816064053857974278115993316205547868185260231265966222047122256747624714594186171800130909822173693013709381530840970041260731619629289192230053282426876719538144572842977545286878569129921434907619325800815085720911249177383937199028222867204159328061099144878535609263986352370334534762057048367441140873234269640093076266266199836848785581716399196045966154119034512326169295665847743418702169469233055560283274020702803601895452843172090279001245078450793648375467883017447500805216250418505595732516527315645093920298373349706835163061565542612227957118742467907106600195613337796480501993476467500088043653337231646878541688098875998864466567481119753875222216781727312494207684118883242948183047781551213108072155459776129632145853879873381429415576751327264320846152345877247989446290712535902524451677966374402902668745269355523074565636958616096939079393019144712188694211271380503947192429605620554305849869033050168369942518922102317869083485849261102411047832591237474863848638549768145703437085845950385254710964236483037822200350924978636209066124582485532338349670739791079077536694614237148842672421982994980103440566052338540160670291907863962824116702667982285795579105043596240559379933625141986676382818519310826141720101085188640273048969487693312945872802116081524234396151969330440177201198086882110746171195315072236113657834924121470277893376137662086859277765745186968850198193856718790164586148938210244165112001278299512685860795757241860641123785663603561530556047603824269432775648818212997305344878262005494833203551248238176944279335984478953782667434926554012632924893009570043318786802397436595507607755817725100320200321667010752151034257513973886583779285846888979225209128664798003766428499868635212099228532253690532882421621574738046467471976105427605076553160534150318998570653262522297651815665145661669126351603555637876225429074388149015043671406858949734355799406840525096185856913123459025309346026936576832580254641302561867495315146332781607769637773481943746272534313330339420357279873557313089405869276920348176563766188494871170633879565986573507131597987112378117650389726411173954245011148260408839437481791063459616469985135559772773481078896548439511279069601230374559186345817417815924201912501704097274410064762623537208166565628260495257474111287913359201542383895660716588834915338682626179119684285875145105824289566631188283878634394176874364490122141327363051080035290710196292785030914917421073010284893308147340960330465547283147054210597362786724933927310784171346762287287843145551963441409439093927867829300419544933962172479061402010195925035987745435497992562121848017617505155042118958005507501891221621902648175735042690742034020399932275525577460355425651604800335962552110040970036241137011914281918954005821184680349325489090922472754830100914385899355731183136947860230450963544712597741210938824513660395562296382012995881642477773500455763986050009375825352302717419922715355773951265231315368336773012340764484872590626181059557868841171218416156844742984564129963183426160384379378475609577757338890333748203131093854400314004195215163565689766266656191450303756468935676286281232230816825800711165134622438505273327834814628274422244376530760667681647445419775808457629733119492262085717262294694445283897254559721500849198502646474301523926290708984423533037187696272511747811797533601478201388268033635776269654704658333164573812766486528457200047733602433354616922759391621016667810827171434967389418533309828110842288012248261232497485914937805677300214929278063950105060610570059318625502002412317583231630641461615032500246640571364375919240940458149657421015765264675633383308144388002748468318329897076519378830200516931919739383290136006413865090458078481341370534460777685753278074123605466420356174138490894471276692295254573623797982025473963970916477461049698744226866535305422399957429957531147958916629048050602187971256577089735540700788690545431906254782496363575176040929872243579677459272290256161408859289365393379866514519493248802301943424650469033481780335340433216989415683482667945641136920344430690799396031043036156805099236254553807349293104931988473391740797817718410442420447423009826697757197986952781693028011488368042855928880724743776342791654107519698000483124631597590553982397130161638256931236995474768213006339587471188964112450312133733887988669509776818651840943758702207629453317544918650500927185939291069832222525818305075272489016294023335367266150995842372617694481314925949576611475719760738400074650859854307445841215724153705455484176965922837406074415989111544169594654781864778455843031136682221138440367267084591364412301324422744540185854997129943607073098759182030157806672387499820016294208776537841371626776887771139658888325564038983287050764300565858691642696690695532597618433060434559724165255926948917700052373848873087924302459361106647627152977275894701067234719726140965875660118635463147983791403210613502333866976683256791152256393039835191266209815592645316147133449898069631454043447513294815900403307793324916821101663401173611132949355040161449969290727970226147427971427489183020254762587478498890049007949593352210437445100928361990907185951064044925100197566341819986200134485896179718916033772951265471456768811137330844561522555420576271374071253786237666472373304620426440529703762358723371722296395498008451436454346152679997469081677808390171054037038260543280791369207435266845167688031826094914702930794954210535768865593915086084417766026351231908585004919377262316035497074376724103330310814642369497653854216838403427687560353961513436919906582718229854446528956266221816756386573175913431681699917861758634668385301603039760542079846344107460940805443619125333386416444855789169041028330986265099639063032599949591923698754238826908742017809560361319707604255501893853153291161033844621225272161828465379851322847730757538686898728587509154106324981762265057018352363421000951176866208179072308978462562006152255389549565032182369887686192812369198004626305379810865936072536327831025275390116835850908005875296968867274346211798973894446911152177148636730965624971986343967656792869143668020945461500498155084231355516454691837292740704079317387546455351332754361512875543027926964498810985741980689023346708837816538410492084300745100467109555982342299804273352446436488658624751597448546701947357541791908797104360689799737768013531602826599450777865172314205801694252713216338142069096895222791949874400293647658473438963143882865802714851497318729077092587525471063672558823945327924700247712197283306150594933567099459313991667524103855916212416575140544997770947043032611540076346356032940454690384695627378282807470470219209515189168700850662673603442390242466019468796897561453886327666777084608716591289937672838861951825350762446720015165489081335793309287260659427802060315766322319956993405353747240811704364389519858098167652120781815704106352133985220324895207845126850439714083996207178541481675256064117537748831587103450189392947706887823414107875157279561631301562558217695965127163559567475158411065021952134781010895139692896472392972995257492891679211958687842225894011175520968405290309687129040629166283064714070184607176633968775853994408579414698208267650232569268605001758617422114438962501384465677639349000338899627465875187357893898804657568051510190358647393897338419651254634869277432298409877810944326448636339318926926756050696321755961087212610176038623776225516496485177916002950318601145345599368814005133788893887081280191415112513139422845917979215257407975196373010312685913488402265288101332600140338655397701071874503694171580370349972900321953308083870769997937152985595491608459130717450202604848913683953752848577782081904185943000789540336996107895776229731815820007347120273880856741405168532780319370239628795387582845038285629563223251340595507270556622260460747280456245422254641477894481719540618411679018353293862748130918502541195249360109608248344813554020847440916738439842879478799680720401498893585948560850514866828843017745647610877648657855526932942086267189489383940101071027121752491785765335586993454148509390595227651622416204455782268228962938320530684107152633868794767871357394340027760750687030386749407834123538183916736748117678601258196685470257415873777160709473696769196584619998684007123527217073409292709725214785528044150866705334990447688949504091472427034865858574364956869928337523150660824683141326959359959009924290122149600392304869071573355582837449636330056719316945948747929827203599284432943464910211804073653301210362423560492976405832869502605542701819682197644392042144981004589870038057798987637130874221143637844643081221414753730995301444079166959960346490605951943993645005536693811696131106489006180093461377233530000253247318391415521802248575489055952266494458446340849113823297073409189645854718975922976132425591148286324257075657797773178147289626840806405692880817127236762493961283399536816994076983040214177781981269432834175547984581097898011860606805668190775426655370895888007112921888470987102527330621941067189530582801701896130167404378944784127935576502144644864510053743620170878745480039353608051341447069278281047005509998732447028691238662345424320051037497797128753867973628100821754543861176700177897437089270413322946181033045486052210925480587764276985169610311619620210052084137982170223210198568088362608897370182077526533787774696158046823711496017866599363419940939425452081604742758938147080485517797220860928320444094904636121235636113643244235952352138652967679616135536958864911397643120843984821583613822145502447924114995077409000646525747048458553033484712417713713063361339684149848410484260648776376817432644317209585835454807614713567912533858468991932436972856408700727146835081384027421716675619914251020462704458659481540394439647294684127884980014310775838841631329328473596291927592663120981798394998147015364124201727986825655046035373269058930326064689989532980031513078124141481841208263066259481187950506366298665856846696226668913039770810846618451143159277231244979702201532943383119630584722919024284586406093576841175943498320721101323813495350599570251020163077111265443461235011324928233319710666783401105422161802244173994762282515040805301674800448858681332047737901731674113347064803742651456617770517427469578532909353282780649374035924813414092654077410994591245958253769798929373696936055250368145141846176361924540100191083448670659297968442815441412286007638450977743831209247869245462492206505633678980497984766775825542770496958354821109760338029212403779811702956669908107962268589673325694859012362475289255862892443286561521529877846138312186696039544934938673019168915263337735610543932474752626263039582803898359805609162584297743550829654234023380990987783148642292991466976871841506632418231764803092593453909590108394222409805258307834126175181448702360834320047113536749413252609485480980011391591096354334881944457472080896668620373596526319655033449117280048120036012897556542292320662441685169549597059053301306162448052911496337163298717485118192942089855394090141868127040378135801642470141428421112452693524473283329250374025848732385641470902747827007064291172627593834932235586135191032928937275470698194525091177208765618402428419062382962401476661912893040111139154761261574378890586927355215092862262857578063812500358119762232718023768812522966533310320384423227486031631602040023634819885753520286043055929914303525954611123770556440056057125776309505969586873017857312390268502241448312013862730713776077461392001694061584254201030361745976546395044571255988582153393766593895030782716470509072974805407127437211409171813699127959945466014534551474150956085258474777384872706142996812319662745420992070545734116050116767214146724604780843787614239395363170970918135360317446484318397664702475318409722762011704554442586642936362829246893610298489235592739027796325400125859477254624269661729305672938506445540942413196973976366105726311331702652647132544592664700897052295185402283122324729113538942875332790047768251290622731031076093850372215852881603083143951672282241691368441123690923370269669057684918685590381958827488810325107249154309033050648707787767718823849938580866747113099705205405929504187818548180712310193365217591985523862646383182527360124198396376480354452348106543178272744497030477350759586968960650659267986456770193086250762224371291680663811277440831495874941893599196797454323312761928058556116839009827897026448471678360413268910995010347302251213262108985099760863908603875169701746526945397736224255088118788660294302297063120301289182139728789858163611564147170768636169096156101167720394187598109545127092220405683675958505527695059123973129667572979584812183405152036230042249039111697264830370892758278927733775035842413041542247335092542334348366111777301772483959333057908363313300989254876950684586536495933096161061255996904108420264451924324901454284962252984083018480562187667748703219790283442975206585258636772434788926765749960631118039966236949602911766032850019792642071750117973808393786921895325189798477633657913579914953297145894835528490409642142984463472493192719816165306363216120663757189178662530343784202008410151878472438046299279124340377415548541249019447694990522616953344426305097248974636598530567253465339241310871545799427945924764456152461370439370392205272368630050294672274440255167636243321492309710272432878012442826665763938695977185625515403840118736019377198536823609010450919773280675253687906428447907360148185041259387490950850656403178177850198279462716505899468061680408216898958829932077654111523233792996268126612288069226765481375494454452032500493818032757956964969223756527665338666398725883096982753469371619147353093600634260304955993826757509809991324749054006142666499216963681332949949706153865908859427565649354714165684751998876492083211448643976887637055287907978774597150773635704861904571405319360484711377290158507269217862798921471271144531693438431313677459316557792389260271169475379486983733592060818108629162610248382413549875616439556846291205620429737245043796377958303252168703209588295442695632715878198299240585385472753190456082958521849003036659345056410489624878442844912917869056139043891249697783182600538307857403089516130975905192463093725134061000657255574338209742883110426734652214580467177459123969580350454459244274142261949932028481135635654603476318402187074797690064185105372342426617744538552656897223551874069967840673204247438463068736714795717003720177557803404989462405265890875288330997774023087936409588294856156587372082577300311705989541327974903664417489339116374567062787187374321282310786572095189938286350588224003573283242817970941357988024037763932954143263847973158672376732878410171416270502803748816175899409129201953676588133391195333765297218912586578540254747630718561952261144780880208524080115062022330126634580509424053876670983806936241838917760176358919159862269145387869756394633842794075556341327531503199017086956856282950029101293687616201336331213993409308627363456488019086253585785051364568085292101803863560454888907961248396289939744068843569418289952494793262080408848786845028357903876328310343589949519299641944744684241692997735640726248162350747984781516519022442424828049594639294240231954484225115324411022504851373372536402786207303507187251796686109200614804782415649848434896021743240703207460903220958487403454439911122230355693062739972672119255460328864029897423389328314758464719091177239347224277018462850392821426103672648678416999076092984526253126829494479071172949507691015694016046474988858147396996051951392755803227372951988402510397608096188502703889673872561543436263700676110838213502228332909641958246223552193320637380525630949204607029614805069616593119976433032007062210854731027493063587818115209221058330179209450621248371539297229646024519519385288661287911435861533666258076671723388275206531172804491403995440521036316538065220135170514897680339284459983871684187960146670199268577375617097882513749076609512151953710069193130312637072670567776852359057768229890891872124549812663886581814486274909807312255025129325658070786762164117039693537139711601815932325576089968057906709468785616521934651183196147137005393184092008330888122252022548430981653979967277125752945537108898133480027821182768478535206016642568303992379740236602513847641711402307093692415603292473375647405015457616120810218452802683375721483539235827653917350816608509131593186490760932301136212446105367865759191877415901167314577046824057384799709077399786110042910486812009572952752497696592380630021578967181156219556789997315852831475288867554781453532748712290151073198082259111494929138263556317623369398617864918574534518862457520908920543484998569878720971985379367351375153040255712560011968289547409371394149861825855663522293755311532851428999746766408363311093599802632260360752557970136900859449666198890128539819935105481320537433009157301805148456307123849774233185546315669533212392543587713935855920673857865899729071964823574647902598370173020873912959224108207233811766004359385078927355755168414298862459423634539429497876329572205780935573534641186263894146218577798228803924869203540748088058342415102741138317794825285106400621734636201215052793050367727244870574355061272604394288426573048223536795390095195739105169068989075009408624456756415136192681731994006945253867616991005301185368719866671787557682889678741589071410727593540172239889572827414688634260836153586519029481082526617492291341994992640109143524391967321105920580120310011379460989369718272345290757090263997693583634529418787879691005606509698651106693903076679686597709112023013160935544819402151928477422653952831313560863538730871789012450120534096160045357932940351949836443258675531720920228856137407723157709862999670025271636359252676472421793531742363309308969257561540439759907792516375070384640362493441668178184869579969278736345442462179678148345463759920488573479048764354550299153805296386510350296202116196858418079565140255802822325943064420457655261563498571241960266326000086439324606851069997936601378050152217228681657458676600563581918576214844624872443001200137037020107402980746599139413705921195406905243050450541361440348285581146315099096722220841359784523929143951820927612871047353046478229915220094447850063880970218559528449246120778452118289805775974722238235884253869110199025968572674619909402967923145002553769114830298136440615811821578964667559080263817566460436290922439948567814661180640030554582421741873345712489531396968326861990969494618813769700115442602972129260122913920519160294408385169855010153426845197158985695378547433399948419549790902964724001164035801695026872963649174212363953881298678727658915198062984487634480238075261528978042578871043749406227240780075388134459928371068167516817703403689061186717406771309400373001716590185659930637440695550411443562962111726608123892645465452689304550794624349563525908807865454440001994080375572316993262018226284363174723356640084521598654129981834205643117833990174257624623217605770559087532985195987896684851884080706632383030048133429831607708375073377014218851668777898145516479075514327911407353663313384692966083722996685024646859959329328440828244286880806596833952765781342810376556911230728679497528560987173027264367433134370575188876547113146354694289802794976077278683466917498217346076731063773109521290192884275638315410035982701714037041274801041951877317852123604327264467225217983930377422768519777938384987236470188845050867885497099000077428031904276842634732658660543176091805729654112763980449930706006614519132755399379546269237522986743461962757755631203772896775114859305391274603290930037737358768476881812551370662645380596227347281429930248148699193220827288182126349082033152400257500036997508392508792138462232811795809673909994784419964731106526586039649482582852153767306385090749678009142986785943743558033111760754885615906515822571860886894782945763035879925584846615349506535868858335893668613813146214945806248112684340909481039129542264118196953990561626490882262361861862673621194104951320105253726028690347240306561140815985152301214055550706732589845161985744198326590635420487735970916288621614747336030742667683120407964524350886176420705441843705646614181067477097202051205092619620524153197921605476006452046419835393510877924936682682387148047073874798895665007726516629689501880190905295569752099219304076070894775025693211567270702612667718265483519758689219660470832911790907550963164231019194868437938028213364157439905461520846621889349223772224611778076528008434928112218202750832066892018556421489973920278940164819188522119347011211849494343318785590988683629321500746214749193535752144799873837492593369513878356069569880411568910881583187287962502578294046158735742398852990516216528425191359544450748122153777800268029267841342151867318715859450861450300136996782606108171036920247909891543089929234093816899902915421396394812397918567126766901025226422370549890870416554606190151239923801154824814768519651541857776160980130001071060985359279110465513174275010800725614561121473900246000685722955387814511304604699443102863386880693644096295973326128734013769559988794812901247216659129351461691243463987733091113259054439390802878308446104479659933998351932137185444053142979401040891544290650411533295222698812234978206100201875930797309730954063997764156375349410703868833352041168466946296426091434211098608280930924658493293586482995060189198910929924392760089641631503382286035841688404983444398922158982427201520976399865830646391718034822821907178181680795009506217198556532170192940743185324744007065812532312744422819064942696527737095203680275654264078924530802611547361690312847826316021192473607051872653760252262201492681117077685193472945757374429721141597929141538855163366586167918656897692899572017211450944391947393597057676356116289523058326761593477307099514921214971302068460166413345401383656522566713082717234330784353875227368204387723627924518643398433436444004481510275097642853188445613252259604976916578250314188696734037593837049893557233220818650232638496912389595069771770381667964302550391384238609997543342390332526237711052086198154255168918484254872680135196800825468792556227202055961058219612184717728197204565100484026709837169176768459783060347134409518694855894475002510139889315434622840293898208713739468675623308202241452724750551951870685291276864275342548225552745708571958945338373267866314107075225816362635346078947836884600892827719238436981176804270386713510635120083490654639663115960987175117981700784043956972838699915526638239409121466737091755934948491395688121628134068941539262106228365650348097645014605994734565576128013063325143058901462384043175899435651505390628000418568209687763353937627368007951585401136684752674176516530417635646366532876232269648952747170092082259922483340275717140354774187671223143328121274966422706633857036384251309438163650551725355657609445813193406518987164508797228805869178427589511498560884536000001796760510968954082545315099433639685928241403792230286450510990027495588101874330352505169095680461237609734927345884248936762248833229069378926177665846806017045087392832281931565757426248920751680499525864914517932849435737805646338518371433755864527633655136317783971640994056615189681781333699645370396701844792609441594977198089491371756989847140796927115137934015373276284924114852856955879203429623073492647794640604204653283593093894680981044993310695152561684201134980397649399369229245674207725087954026854273308333225464413578513740831233254548832512327245474953270970253519927143476837816627435335110023283178543101058777925729705166582356389694869892230220701622476656620261580450681408828969553987136977367529005668545096127842796905120561422748650520992011454715886039193595114003677813753053021764715599928071735798249123209714447786805805602357601789542148318133672859226923259591003154250018399125668029044503866837342624838300028326134061243333407000431679931781087927983043565284655129719657603795896147283878572706464172430413008667021108826898367914869545667451262104500140884266922963648492929343486076244866881262639607619675383272739185262373457292192895269759106816627076812802581468658500133899645755883290637531741573977640195612399977671995517381939590025373688671290198394739501573164332050889942877129088337032528507951066651258203041952450956934298590555078449556463312615950524087045368934094644506136760946647775140002963538404211438656329085413749925980912218785370645546747155364548786148328019687123856753662460080446300399306951481224889794649548782867124969154025442827434807121173637174904965390616492730512088749960556274437030449536641207526700449580494877119011182776435525141616523809724454859024070395636955034991834490383213731475047848742288687828460901542731920523952361960451939389659590551632419456112597531236111678779399355715130195139262273010771019308837855881787391720430058301932018564000349931315416818501584123531777172992803271970210118272480543708770243327035765370879309426061181087442559916920393301830207954627097009888900195822847444042980305975029711449339542582829851852978775087689569932250252946808709189277626376861958537956173190217781787456472779536743377604001104990541132867561734654895494379692902560080028125124355837200218916816907730721649100853246434657611163293287765585471021962327595912870231456374925863962379429312228813946400014854580737812729936172537291040149005639663099455272337118759039580594337530028473476989101087741477153618972077519041800521535202090271222389939827260655138075189588793872268979673529186362367888328599313852573280256120255363596345715364893491838525327798169847707510144132058332457254955696487499558839305139556335596756196033953309513699261081578906541349112728738302999860928876155779427502241898710079805236696300124123780840244120515073592965108471794194407420216746707209231953078269635811365441929459458609089187735567775865761025200056079551400619315594158681336018721925037027088907129783623481027871604036608418665272027323592588712689850295329494359669395425595846782141036763432216370702511664859077760363280596402085405464984427202271650638916710098936174310874857620733797228779650391768454677271210816735417418368609578492328936466389113685904742457489070795271408034243418395129555375788270110477896242587997885053804532908147201504362730826010120472739729546686679497723565268600132733112232397482200561823841559554147094263676805813532203530170226865451236451080269505364832261445601454561212871338196039392075615726638732681712081900051037289939642631901089865305937221821340691300175906911748682004261093745732136030258123374396855165274514366303639962374774977109241932400970734138996882015266172170094055304838127614222916474327806488772544817852980361060592637001395790256050097320538150591149100192137372726428295627868482487440773255842734446168336066123954123357652696901799176509016607160620322474725626642519935542199990081390537847114513789416698536860443775378641465075768388971423688019194971075866233415867362498687845640629336902180739617178639545320226948490560294074137978419466250275542439266405695076907334378583690970329146337353808135669077941711359173082414143184169017969642125996051735384960220881943058025150120947254485262692031605318436133142166236337845217460078924798174819253760272562190981254539392424417880020258391743331646086732762460962791874118103860859322285481236812487332114831959766390037348891776293692032672993178333633509331087891729983276133272013188030632915372691268415352662032812212262283891531398765733772716652681725595562277963504269039046105784203107676886363226195903673255973976987710188353520616268818165949853690206058986538980213573540936723180126949526738128163475486016103722080657757591053527091281972652624004822455888991580642345185099738807859655531185286842838676521480122784674104619044341725902936122445808083122435600697506829866171367693380023839038243605941384312489665591973132886027791827733920999268427881763381744388726601950096040270066609669512578919156452904834667909718906773004389448403522728849944644594199183218030043965273290676940196596892248177761110397424745112876276121146033437651290913347644323742978458658788400715032318087747912475072516413199878694417541452755296581779153228503785762842127042704150192173137619645048025602288804836442535858532635287836961377999314614856408488886055789539243159107549644481990772716594811529361643389232594652662590697829004462130492058354399037263361348886695387415975203847023236976731179701605256801775629302098800667412087457173040675851203031564813297064905832575026263951513003487854250046631588927388886974887038056434970471479303262925198532941496633106189073376213247650775623512407852559968302899535635831616059503444904113333026105400904362092090450269775673225279728302711068574906408772156614191030480245765046927512284862776178609327141136937077995198547243872542178557601881175867049384073479594817779295368317177595010040820339691158911280207150823961649956285110759916285830365385706636444237615732555471827910315057726096952457089775371096348321016888135270233657494012154842910368688063023836025216175497190469271941690182886632665326786872894520785741934784424441538092088594592025393083203598897951706902430260587425273314411302737282020786693833337124206711616385728182245601608586555240007522071111579254284914037043657870364173086202080897415070202919668817974827682686662620302781151166304072422722168378097655952791886805636147413774558815670606741697117925900372368544473088184896433999781361158569960193482541199588342633379691961807226314649058692059076656382935136153207304031523803239213810823674150814742015552085343488787632270520361350982016904169565890510451794429933245744073707780056808473756924100152238351311633363655002535100741701430090914371967660084558734519783237152510468604645547661506215584921841782519333561995217505711528246808889518719025476796632942948322208436947330917617030586407770338299535114549394116764678847747198145435458181120437902310424642460771056457694755674804156215689235050528528263755469682227627324426522811732222651874695372051783999638540001168621914394915148096896461158644708808153952699454774740601792752270380152836212511048396680905108871394892334992600174596776200153472952005460637698483057446252951305705286722244023767353139768637947741348176481970257051468592907599185200692550925170123413746878180398058813618046265188753149253893137433609414649352621176425767740367476006652628207569006031694981762877260888374443553782494067014989501058180805552794228683549245852786347962769640950897028295670493984338047994369787240747716446541898887115038548253283482798050786889087874318740482762595669464409444007216318367215070429155645927195496125526500140585469436842069900175851440406935906362470286286260094309541177940254657146202604144200957366459625619624607023737839719919511119718954876166431713590092746408664659856929563684234709516894225280028279464986532860115772854761828702342112372973682128534940025987388091522003934470316372697265556156106869983437007262826826283936897720081603162947498927091428228889360695091205301692241797902548866215767190818100164749430741489119115331693394410056560073454997406636430392001862519682039920351381758799965969931263737199494717073282105162359798272406234490630447049605226447843641239550906155554180210862630112231466975721571592049317411692997285112150095696809318921501287287240365509770025807105957990211641853625568970942160842955304432833011728881254200092321802258107886807515669721292009087871179582998520355081644785791567243790465106811477678060242238030585436453059920120034484004777827027712379616104505394031270453025194457224377085538078042704556385765918538762303720099697951446499979489192177562684108079381330648767988773221436854457027090733039357529157327834601185660107661890801841133187156812999588140482956424922703389146910155515442338895426969680098989044939093780984684366419374340947289129093583247196935017138203373735847051030450662495798199357534544959603834947903493712836377744621667598478469522739417307829708310987050957825894553337073497814465081781701304604076821780190021004324458983179154124222864553626459015258560179294610230699729576488331601879787975864119854440472602270178954982568497733186583852619986904771227611807386390868582788201574231820070853211734693678892736310543581784101981917657648593310387132056126406642397488949629163644709575951122321737971461633270090015649690542676504509276864573752029458376998367193086492753034126462225852574379443499818792245824130007787301934737814627212492715658987328487353350129770508096460006959718070819083735153448246691029599804205031198445615350548246501071186747148030427888780039641509018483762156095746586915919649502248248462285973156016919874927807448269795522430558196618868113761894482386926528303736633181121891410087944803816279120000311500448848243894066828734737547533951978333239519175950437771442624631525884843123434862822150761212953815178670222383631897595727328094481542207228237585380668597868802964534868171216281837625689718668427010529511549936493810727619523706407741080476895538282164140218548253239118972475973211899805025326803881539083183717973071405185851765166110942797505016622179646154001476051609556361647593945121224076267995408145946972496244142713672590828871292420032799548777497192600954052112836782095304313249743625804094686240226881207925613297027881344499824141452615736442038386513272850731418597088869482702204498194367616056243082178803478658828176703581904574141209506744070924597669952510353256947342912516727107704106057700212055874097051188653003670872812333630245555161911880479043747286857932110969123489641980537281370434335780608271674533867884393210826997996065919730451890988899080389830279826542974751831135538394255882885949315545054790293627185547398250983001513162340107661525744638780344918740786390386641295132156947899725804940265981257136102100971544691823217291185489984801617505759329739964970253615466269458292927265396002730633086738090078871584830759917898681494541955034714484409404855423149939081248825825990339264855799963986538679584772492256600406219668030861268958016024322547065806620783902806452752511656819858543583025252914273765623895509748980165890082155341849999292749091415077471663549286596454874575236305550221217000899174834366490198902776269874695807510333430059835423632416649180917341686387517730977566240342867888326048495279421343549093618417373753404252476103501987702563035951473296854921707338442199009940530980629240436503571554439037137692803820291920938734743748772848413083787473394626143887293383190621325459173479778821387189573969468691439375396877244767998135283917781950745881982738000609577613623143191717509657515603291455806830986232232661696479201983418120242771888638509212627661618517568738913629948429232958209434862735886969215271356907941064241231288132103792638818302643317909295620820903673239855810648758292447065097282847342587188991586550009187129539125020852790792585418565801984344200130026588535563295640720544004257623515608499203930677912160903756125162925225833683559489885494309729161205979881207362206487791657332203012065306264186793895456175906037901456189857557426192288652852537675218536694156535068639386633938135220982255746111111344819602080975612130067029833652200159601399820163240006809808559797695746487773084081855393014132405015302984801055559372240720493982894372564663207514662379419355696256914631145154832978395845375834898017128376906827201695088594225230075622408372590306869874039297717312399552075104749260485118840136585418863077277508481728674182065858189960751345839740500392213119874420227061338406004406270979189608182556077084812600523975477626073173490753893804187769067268497914886792406508102046818919466731514384828229767478819202118308194326077391699403555455276331224339498332493287045641569536934969310318443577609809563863334665850241764077768166819910833552053142531840036763223230122135789902588800733863916539460736264849946295970869262750047977817320217585643697154793477621406287550040127973539347277394010806277813918810523427751871881881421039064404476067547524311188983837259783432440948296397141927017723899959023588383769188992338039661822190742871343979505606595871634698519957221671258566604088075814280885775108898847154075316381728533689502143701091774093316259976767564512010446149463336936527008343519254887547323298851110674610941345448152533062583668295707183976484177126884955664440162206929758275209610156744261780803300390089762148751294379084277919670002965317504136160272466117409798356389736680038682793246433380750202772060969428193521053869748195238364467184549664145713656337474094860436496350517332814827778773484828657315297490217347275822585513930657832449439187270955183881833479263595590031318569248102304798721399864621668735432300911086534844889661131993974095416441054073831079547517877206853854222315745184766227465011847464741696828330491241671605124290745800998554046233514796754276204925037721282750532441535870308229474917255807898355409101691826356718759945377559197296947872603922621565825233926065060808126152592645366237151198864263884813886903446579381629845235587368286868543849975871069144375509305800830952831429478711610595516654166371483804485093251138677193620410697823138570967887740799226644827528622595507952823740223909521573245694334092539728871668514461710502134418583973569294638196214900638273786746612541075910059704556961423854710318051053485602501075818098631149797221652109748148705263983213484566635062946191338932021931520782345738041122912859549229020769354553725725460418583581389367216459189646666093138963062128994247834227920207849957732305739332903641861737951214137712878935987746585496568835398074382504178467429183494563887812292346807962078263646668563915180415587779417233366178356600656088319280548933260680833785012632546122625084286843270172957869931840870294063533955519374063373343461052710323377855758158161712344424997263809051433432123731637918545826532685037845811122002881366769109086166696062838833604349139978821531093097174027928605415358526680193947907287189626079822618549568360945697566905693025699050342086484897730209947332111150250935967488887421398432525911671373749187159494489059659920220239569578605145751840900898905853970973010061423891405199018690570481028402119344710012195866487273215514528311311942889769543760734553109102765342931814523190054393560291693689130343218438141895078940213070719325627730821945489497821849594753691919981780577457182112005812923331205058486259853965574088052118566802002223950511198469002314270008072292946253968924943533709508431393994733356630199004239732565219893365375461561367897268995826726589402096295540318529547461213938288785630447041210378256590642204632142120559008946237015598328433309573846960624330123993084039432112818573287937748259806333884582681463743918506510101412076620547823158276427809074091716780835183517908966245766211442928786300551298961900293323483210086465643147083241020220808975331999682078608296424649408248756492455624016945217358541307445033796229179421049609969619494073659578679649605281537518369999657528878414498434464404183095764301013781503674312704983857568016842252691581774248949567573082577705362156335842739007975196482998018163384099475892150536719291735336713639792702700403102628836768808180774987327906372446287215212825094722433755534373978872789115013813703241595465701977299035629228380883076846007207404038104219476373346350517177007381077700038168336198873479665559934070008271442446413758141780783173590250904742669721426610864604820110103868787627942336484050691318476668275167032597735870026061261872772842338580309197102595232270565002019137562167361845161693295555834814561526305099147855833650817589388455477969376088401227363756938946571140779715138180572930133219478630338586206276913228639992253726707442580088358426096928427432955444104671239867774727680611718566711305706821793943855227068090817983463579154898209095455358286279029911224540311394809331309041897911314984626579855626239782177811919767873373033711620318866109240258035115573125982554718115100955781756078923443785557631401688655527777933198605126833846387700510135789246902013461880975375805090339287408894954984943836533260410954816134338441876879891221535575595576109193477184775583690092931246115305247964201007217191719799572576218196679082379592671799652078612993953188568805509901099782427984200907626939649072013849455898795517388347390056995771271936967301818779480590596454097950806189561457195977404203647075815783274324423811431507730915534896941640330679407806598858258727051104787312955809860142143838374751218099433237450500718303236109712377016664017590842815943915053964728172927044143985187304778755054625447389282535259064453046524615056430897271799663336455368645593036863980285796780883302437093384130152909874158527721659253293541870943741334118874211985440562688689126479641956593796852668608626486602417688078124081625321817325616959242375690690854218195519246732563482158399554384870476685638266730962815771359891753993101175169259320063101367045754573062649606755064603090864052442191231425070159751976444008959709060901393046413631197121970189661826036549817469956989466217114632250427026820122429692976349077594889765084675774230473395005851078128702814123155348640863678799240472386373250641907432624742837439519757295569758005455047706484036192109792925107633585763862177248256500649315786284333037726286800443504372548700331241448188554609154730318442700846121503751751386721085110073526249306453500576768901928535542990346023522780295110631670352168788369363635206124859458367180155045659849837589636619197515127675392283820230356597857856916336671795846045297384599473811158884572552476478926256943880701532722059179721484922333681378902519657478500877763699296334228386542241023644495731760418538097066374576766533528327867282725615803848963380912073917411024220199748634844376013472734022192828681014559728732413705631601150287894040869619090371175535609287336123661766069306893901333534359506971660971929595899167727980250299273943318994396641005544761227239540988024595178433184019512269891092502803781811692959807503666309030607306376834191297825401368881938990558666327108437398320797359502457755280203034863527657885619706193380378962435893369695736509156183202885051110653145622324028948823121934565223140090157152629175118412447181566642911530413425660121046680569048357282588080307472964339689888379015161004389004811714414620704350759255697026733663464453311710898500668800136938491310106181115462542897691377194186707711188295972601437759086886497338753208171200397360972505225751499719775587409398871235647345117961413361442100184572776598291733687490727619841212350325804905686488970766578882032543025633101185403630963777581825230610984559149018371111545202272715148450375466799566160671173278415909858990274820537268614365494449916973640627706084851753571655107279062320315884476258427607360256716543869261276798369342779390543541963119536340032241441324147497481228063108140018964014255445549014182071087470470865194591765377492760254768957958831481014621341773287841332546393906018749692456650969477887373700912204466081439102323293191776407069676634135227576773485986897096686912963995942970388806898916311074614897800539644750223207152799414479009231225109978598516252506491148601520625536780669326737876624282774727958316879985013701459038739098938735351561917689460122594379873891655076938723181597923068172316788869765506246551875074789058268780698067317718327661866425333823878050094815991200338518224478092741437719978703886113730422148972874543164560470669514068642002306336873027882494888706832634735999667032331878241312193753490756856552732739098171140329860610627537236616858583017117708832010880917136625900319902243722291752348597262549945438468750629799290815858495858271544187210193814087529919383460608172590542122162590272670844356968476054069707442598534788231257360835384153044362700840499503899463153905583656100007331644131208790313407377161389262508524142498503889810052599963718355225450386103238270554729244064519065270882040801855943670055026900256810529304600447009268850466366292653370366292593475043621003902147214337116012928591187828848832741796159247941054889457950862380092438579384791162157327444917523722267238579436127582122077845693976418286403663002933834282214033194214848067449909534555662706022668630103212400643650185242686707325196612084710008675595630633858240987116416013743898654994807637465970346122240771511573698460633050046548041179765954291256010808327748496171245508052995551992942957016089878338861492608754750769289882560842548382437542759741816891280330441589174694389362365708458619785593895278053583719950212665446858133520600616351500023158057529564057535493477875289114224251226378895126767926588639546757387199258348459227084429427736583797016127362416603738540067958453298641581577029156924442269473899210257582557001738973951380752737999036442153513510330679133811828532059288764831674322198823984241158307235817925510514045474568205453650849299126196105369501097413017799834006787004887911575785949327822767609562601221681847487866663537797833782879710909719708655568284776567476166722721618935059983419015623862199021177920789381806988407932685412250755603789506161481380929940632162586295918475764669761354030800184896441414924899699861011251342144688616174989637211618122869496453691875085525970304226125184045540860597972610160645587257237082122921120307627293149212994803421897476335717266509205921319182113678294730455298626670952132235939677278758436288488538238082981737916224249590181057796649296446557808990238921463944557107925237022161320593691877399935301540955763326489544941383974422177402130664680238946041924550166721352669673021707101795152702056580598719318852295564531477730682011747443930662030335392813177389994103297296623939476995798069260010285729839642481073596844095574315529692724251154581138654708657170102636477886044282310649602001869696079885510172810144857824154432087598018530544426014349793173336999794792652280129722051625951474830055025862207146046906508060606069466819224446356109040852850871328937515946553421956072624386406645489840433941179521425211994159479192391783109326312386508943240358288876320267940964299044062234905873636911680008066822942608880749346140504052925608799248540073043325456279534762515648558215518795131393057246873454152824484151086280481120627472059119159326491592286563404548098192026968492819243479319141980144011889645458372683990047424230230014608034430667711466112208321947364810185690882481945281207561873875185722795552597789127942741780943249335028031990652203468250494852594431071323554068151847357305967192861341204305315849328338474934350955648950451482453230068573486047394694536801627295728572049138096774233340431237175273553852603497243661523969502138915015289268728883518351743281785088797316432428004450505044432075140053991919764216707815908890519352990838277806172082584281230325249998042610346726842301923764701860116016012943225833254186362542107108235291473817369260794284043734711384674222010888525894233601103828151658163821654620401690073683285912807215006378583873982622894405858948413773453998686139890904493060054919008055401066653008677826156404136695507835152999522415172883817023776055107551174033524905569864511560270741238086907419674603476927275040367955725416819976444885286716380405636193703857529392064759438997996685540690920167320466233157867331311448967710497452775768911415656668817322313658623940075745571208498778252078034882313696190457979145686333575424664523812998334550141739735553411373698411392969416410895455445022209492105171371172935327551263238186475921384879471545988532076227810342699237398383510499940082368496425242557553105170431930861990726772127929765746114855047726128654562832135470879182449873281434687071714003680658830969395118318110351985132638385587099802441046002210678148615528526407055627696498037930916159849229356972366624794596206886373546451017228789786307502974858259867611942724612971377784857321860641394487432432751287333284579302183463627823489987574883595454868829808962281019757502331792828026881816523290477503906519407440904408841241092871714644341854101538106604279397136256372610024421784807316211588054428911158708913080812098661696101454164398863987182854477871212200562706985686540695192437659008012751404695214533365242435583680470656611146808920228757762972898777454751978871513916511081789795957993510693916447736450683626110664725672027583161651683660666206525512801317612287656533815439773173304200913435309582669597185228613745933544006045456539117001672169406607796099681534449003113042379817556686818909599056042905760920844177725111736749761634888385929553015887902961283614323880093157911799841626779949767603526324377972873239355138205576835412527688878044686012589113320579296596286783874070258671067755516239172112184854243136626722699642214992685777564837041041673777935886556562481114561258197464919468383033145505376415691478208340751139853057864476268737965408866366904116953113223991116857058480677394852485787544901270113411277309849120262146983638980890923154454608888477917652949267956153993463819977439214817691168623356315289683412700398685932308195632344098934622340895139284097560977638733074553613036101011172925659044601883360549779963605495125553578602642263252539138535540627079034418717878432346258383366426392090375416065205410136683823678639937343785092199506469299284790791050589982684103974215593521711273640116883862619561304572010709948605712554958816674388811725524538113664572707279392384433620194074739908984989165411642200661206714031900821519197924229412365751761397542884132687517376013110354423149826149686904253227327556411142501258042218829929266247367348762083492417733719708783489088956251074192959281756888704249183708289045576347538786050020974254866814891447077001887365978126428018451360284810691459445562022381594194908251484692754671773996948079342146094267081986977047028961117894754726629103671934997961520624815237815957004806571140485272289139067630858891203148435678053431796216250852202459634847613359350914448685431735768847285701673661950897826099784014557295512353135623050878652441244909273289551914588076436880564498699505688067194358527716085463019188634200615642850964194336992008496330827340326726968782313350383249319597448871798531099405192949775182322809773661643610872999074694613550161802480124264167634152242545447923266013515387739586238265230377910837301477455173256175529756969688154460772593314103677277805193870103548890826523591896192593008077392107361208155299662118594766090989496123761764613115256139765920659997998976466823115440571269876870268337011582837733672201103016287155612268930318792269662833121520649885123454153042175396425237270011545929321027474108425290798876004625846457070720037214169117942203337012516064885802462031020954924392774154006515204014470457505918269777926775932189502359883994661049634932807624665315694758307464853237117374721388066477995999826875167603895237963110419493952500904905482480292306212667291526484186460220864109086816501582026786038840805551204549268869313229870506369171702051229360090396782072780171033065605155224429175265173355506228884542165224576327560797093775066241340217197984792817758311456516004775531553969584625051725016953890037899029739936145412681184022097166011305400244253476669016138061637902127552463731437445645096061358045462074258170623856964203025822670517109469504503868920959815567749086251881448844259976375149555708190203704104843134154263215966730991509325515322037316917291289188822737607756035654332491362186169043919939835386089426143317732624423809354359765973769921713134028629095404031803943357963314721630829880866563003276063234151429296166212590181893245720153390750459752132919698850911969136620368181504498277597059137446780777466852201982232036578630849904936677406204889278959267964864035641866076311073714105704758204606472965598093139777345113951553091071975741485017117111814199411529954896418515221126652433218923363653412865227956596676362768791759027426333845248588661428919659628695570166431870661244027444555679979751924559639108650454972451412062023157636609136918178798117431147145696156845724907886163751209394725832789958375946965630595073173675518992437057069504738058415204461436622716325486474538907841824060561138232619861768379879175666607112714590990722529506757345673458482757903757781716442448444654752906423750993092317283259030835665934456067237128721029312920167793486640712559796833024524463331155391755887913461219971687328823287455836209873995895544969253501084276362716819316561515553837349962335020164587872065736251476999981444078631835447636395207179440433667106556338129650461807188627519491877604805459203854160157250034204073564999180760683777246305756948704957488685530523489371040896754516689062412550940944722561406651793111535157581433714655435416019715519211824080092441108078839000631977865291647856640455160237616221732969193590893061202591406791043385310209243158424437066519176515980818806032686362994532142645866289925747821027678503866679806867729879082289934733736040957463173838768129441660137095448515300456454550319162264620035892223026513664800191808744132552955343961966974500430740834636376951260772998838056074415748302384715064576159190755462534743502970092106586517211315969267861152409716736624469365789907389790307646514603650021218639758155350793519339054078482138997045687663869646955764606171997595888328508174845412554270374324408300261351634626524753352320031812751249188670473976686678089235131948727699768688632635447355141942629337946134623735873835820615877736975640774015175647955719914887283210685636220077424068663545895196899879447671919425161064860015989050125933978285114340817357647801197036191674658299884149232641910500707418569735899052478278175476975118876021464698553832386536344782276641656657993886781649751932666930296856669956187625117659964961966158081932932808365630560227237295922349307485746874651872101215578591257174454674134266917903520790236719898708185440600021022560854532434353294519391509196017477833456017566230026150090918881789976708793856366587245376539409910555679597159822614893190131930822371013613292710132554403869835860291242362024185284225853281495500621996019578070331480403938482971979905452451838035479824716675541746832214727161928556468008543621054010397019433221883146355323905103994715938318327186910455538864518309847002516508444419026081845626249976427235938386449913772830799829024993179459087088453097523359733369670422159371717674505747699664219450621175646452102196063803009981325699473103673414568594378356649079081927355194463394937474790806285714329923352307678449015089539561809305141661135763751789481972039100800736637384030820105536908667666169036516964537982997096675330191730682054755796966535788139581011486808098791249585673193417660710011338493033086660809137921141909140240676775060127639072191062487579442285998827712624460746035165091340363392940886586738017093377725711803830595850394196674207848682356513033942002065395263561564636015141882408430209720956347766464493914226697631715589356727251196030544319097275763983109172007076192045193046755792945992251776511728568608360051945806324227646338351249507274582724731662236217317152685613633935220820034176082946818883518473602146435650191132767481886509194399482536164958800873064715581038724808311022908128036787242447988787108687793333120024487909971603849993809241603020386948430834391839926244060821221182768543371332138272379826426905555429688938529145248249149972551583870146737779586247260496708075532983825327550573070886867394614856767497707885187598508746194520074007160086905704747597623108615024073609754864120237625160041705631156590053583546662424325544880481615259014009409001732765370689424281773671061856110401083884217941369297778602339091465850572903730268359377322350486780438135509453807658168815507973614179693482546970463141319625469334476954508292618272484964653557883430480801892627901584678685790142966087117030198231891566286061387778530880694287449554751974897495107995315141685599570339003389676531291869892595487919256963160923342141344114888889057253994308484608103025533836558194448092029008163863297085432734776977801446764430378081242019612912322871343402059814875514113359807171474534232180644641388982888761650271436123358717428988612468617261316163203227108654304663170632549076506655927542970405202721599105023549931345256222318664846921641315835827727135253273052108554039338330210661871885642903237282647666838503423809079386663328748811267278978871475517181251212470511863572409153151214125662913023326742655425601522728028223923973161760900024130418885605202906776219325847355290857596874470683466926691371323908920962461695377473041559672316654837458660811834297766696700812897210705784600819056812611859394047167082866333271425942877365487214438417527149085481753943594108627453791751426650683557272089721309794061654278113172463218811639221435524422821296849565240629199959394721025742945594054934118064200439230164136584052301856200635362253280923683638368061415805101341680171338028451961010939216853363428722385692109427600328377637357039576510609977503618788558470899344345228545533539744610102929570097704695445561186713146594315939420390073623926015095378153017459782290775488790468760078854483074945395853119035543127530902017066884752874449714768653473388871605742740040483225283513651941828158760657127616125231391490707038441501776726238812072153166955495206644725625164219720367783342635618054924041244235174690521750418385005717324095030339344769887676997449405590413838636373159572830681420602969489372225669625957055865879424226575754185561594376447344319669603302341860825090074450438880662518661593180529483267660383812850102954310292883422353037343332289219557427933385467409499901802760897027821063015352333804198172545363694238672877316419833339246033578981333790582687850276227037946405271482728275274747238484033211335148799586014128470838441007747113562398568688141880672042914716395417883462680790259913479671303182756590138746343812865029933494842225017275656095551495437037097315599240950228948869309300776153929004998493214519168476779066766012104171704675309178312213988917822876663990177254648539512996185451733709942971976616356019350407612686358642686352834681206551247163500223992371145296310663034287979492729996314699084370903705467470385364620678127209772267749609990481407616466524670990824399604802314872797740470771599063244729582961903667085252023065017805410511310640215394235506304119688403267669681072851416205118866328275123118309109938289421179313881357081640250647222359611771180120122689663411991415864393979102674535784715462437214349123169997557184683993292915229044343283935644281079591472283433596772714565451029507871585242433584142123577992076438110945658951238569169705488389764043659679248405272479003332497608228820500263816216572282829900648933414574011609141999901014000806004759300138398084795078589526036440614853320026273257905988836310546655312956709268100221812251281340686448279633699290664167283715725448266232976481268075036470415513054660007533619213528667362461435656256198212991260173636934058768704630643780797961842684491865274008291741387513582307315918416101876608241843195522300332388723490930428394807638409824958481637388648400576462573142858255613881888663507038893741495875071703315731970399587685179417891351138255631916000939184717659485284448452843333804552739303659947809519894925711644281502691915284421956619503565665410926647441554486034404561968549930546053803794335561832571977094322829892262078288700362561167916958244988277876466898787156278325497892467834875635172570420245517858625639735648110661066737303916370036897559657614618975664977363987653928896484021164589048336797168151955377631977890950427054082731379918860593584400023062754714940790158908362528797130564961914201960233291062120092900656986262275388391842936337214404160704424187238943250161593969256007110892334873997186840007052494502632116203311145084492995821346248162742331998780699401124161827465302462715651037355703769231822726550146668580190165498618593420455941183150813742485424595717882707473686905653406178437784830979090638698948808313721008543839785225900111071285436639404146515029115293093528931621330175398535092891521733371316196303581961484470988817429546887141730365326537056559656110746626611357256299390924983929613920747742572045769498078238752132456846174132423089040959586925780689244690095519861006977702557516866028407292731868489942915140438419209811689033327027527922058638369218819121652263317140524647712330661743711642221414074423295532956448287662783886963934542806547861053386162344269521129721936142111240828835323430827146221971751874496902643144273672119261301965943960917430631945122969984851131424774687332871373711760306227942967970585069173611717373658155344097599637508134478285024542757792105723254447007440584214755594979599368444237613860300287414238921951427905211142553193368000392255761480077218272977336552477882244353618034864088136853818492120530999391086924162647632216250988938035446460689294079319358431283949871810754024871652399891223636890745621521731032934137729760994884331674544669079858721991427825804707653524250724067234091369871594065779444493162494162750745647267827434694964026251729859516531694898064207996561973507196061044221721633391913314512404523703754246558259197970341290248806457366604087581201477497530463581887187381351755639894003588328643667723659977155706460435066443571611921331969567324702654343594719831035927958682805080669699166493044146902262615378577935751851896205012406520076494472629758144647582013240950075493708527644775836480762801063702993243532945723352600061683454779673645191521943946447784375358988108791656717104851611688736937821104826360860408790298827530340282487046821373473304138397127820439683833973447955721604895024805984647329672987417575626036128407190703537486623640871654786518074966526858963597038085832059520097437133322167307412944320318216458929819141005849902521899022294847251355183513518593032461259187884236492795041747943859228815594821948334431508656480987890646201088026947658877144628558648300998304669878335962146796804240215551056547013948812875499890527690049215389477914839003369980064853831432982127384527566309493017588125023963906797646587589590795660280029471118215462427795143285298580390557319484423169868086091861941026945270874235470554550756852513964605288098278555066652284306079124289630120212033724087497061986020795405552645607807498920920745210452772595875639884868652731408147873327087581512805732629188870246504995105394773302933496475550886905157302875451180094456064737870957396122022975671343739100094508544260317114729092402165096857432139235736522206841241374285627444636600599884436699847621874136017998194794240594940987324719892567739108695093803986333521269111712380572828752888759512990099094039093566731096156994232012288746586556628914726586950377465653576163781884576640023001068619142052415443984121770754499284017214786267073626073555504663873884779607495862192101454682429278814568832138718873137324703027177640527439463514829071417566345977606879913112850495230956094519765905381584014117745475789341103652073215994374025929819181898269224159947219553528009417420110390422771362545932348258785230818565350121633140114989129042896374535168378446521686136334584299568268348942613529464850794560909551482864527377283679531910321688072588792159219399336081972272736926426315654300137173812609184114672752190037372586809164816474100827633940073785494076684784109596387037925943761844046482336869405321840209513916842571506824985605641042187272308897328553592599701748661155017256661907117035278775727950106504272882514264214971077582291499041707363383861385190869001901105450991485698874559064168616054878520979234313678599299074064855632717407063696853471471012355882726381965672613900239205046014422420100796455632048845524021023321367073413744854410811769639658192083698652329285459437917914771589997696553942373890924205697375761165959705142693781097696746530443422230960715673485350358971795032787604880446714696267087817886382436008621745345401101435893481158934360493870649834624008154456866831048181015755814805095413749270729141832966343844700731015313623511154976482128883970373070733016488978772431565037875941013534254217076651443279021880330107967371706653009171388515514543315645469119720126259424063138633523098677984001652490023210064978976025062214314308530008349271867153478858417718401109953266208790300418336879332064714470606376177281932840322704951649222577428535503768014644835691308827173727062251446256093326695250051920815050237287632067957300814931971905735539932338079433351925309887198998626747149415950500439497335260055845379021558878368988407993803749679970595858560984094854242426347654982944909814048634976349635111853445311411301528816334682421869182454605260750551525845597659184626488622252186812117220351187819642466628646465784724815401008376961717475514559884009888854370017172773676900509617943512381590990699464216684280940271529392722509991179318396450165641353329590446977618086215142058604967881478731584284706791293999226466787954787826419362385251097657321027857145861025935975884746408162179582691403209638898106460063258166187667068679656424426739711676009120308818798210401918077859077792994153167663758554610487885250497704645482456474677732329340694536665110888784979467240649894054878368063275350083264198402815135510081479257379744433533143803719130158765464262383967480489933186197424584634803543761815555248000134611381554841235502075780357964594419649851182257942268791126604940634033232853754994464815380403004817020203362740282678793607107169634655236045428565845114920258695721338721674977266132538311649361066012358189746748566511843235328592637560159860175542681592435118847627925233143309792840592042014339061927046030125137429663733586434779242138939679340389293686083230189221986285234096791159233158771319649852198843648981741736213330340422594106527218705757942295295162210105564284156861053193681925826060556881642498333473192319559693333314388808766150660718604343137123967689304595235001439044132947508466657375325558098766004073248105342425199309054448708656905560027025648130503787617335138380735503040760537644503632473203875958742274603736340299942392962433179272712526094347039380719541376538875318226408109442502780838890654810285638193860427450249747472553780735768416046426210691715310199550876296244275238939569647518224864625091642987857372356864167970849106562411698331643605782174626451683176170748127873194704908873464671385656855835305731745092493571184249096457940618199620996179951357370673196228699124853097258156127877078563641360076768969324620090791466389498104787965812741675712945097378695438361811316790196410700604859397803729412446828495876168415517498545048442154207681959697545405743043661740385683141768613546902034361633462703304677014346315910096580238854256493960570469122561375919977606312143427601857200999500904564129367584090388087254882504209166895954814056291009227446115371949156941610175476547713383960817880051217735389714946810355582376352469058553450295680900985350243882627260043914125325463904373222035816157846240179654685003280225027087381805623580702694781230991735478204322317526716875024117577510541484466102807968164451136293947177334876200744292982945047998258536232769849748991158130241757748621543876692674687623036734554161139251854404696573613080756009215184863179931109406027575355643298517635229690469522019973606333120067983992336362974262905764120453365242228678324842653937477164205776883625285122169100406882075393903919690993556800659452560064093457495602924414021453127821791888670154250315129907037675587348153878728256921694107572093070455747170936606614917824957998919207776830155446675776049508192044751072144605634998575075135523299056962622086677100501094237845168844744007183133134756716567626078902622537884685867042032709142613447173661363716974188851286949477132453623645487355870579276394706858380268804612852547646975313627767402951024189369982370418563443160911347816576524961307328554115268038111224240615537650877792217541346004384542459401732337933269365267686180745911898656915620856999691709872421626116015016360199968546773354842546513397057122401647795894389199739419833603071639361730846918719826703770821683109644755275819754249514055089579097761209912218107637296491822191973709282331033312002786202421741413351982134839735903900240204309759428690309241022698710406570000873099956126784355993176110768181312603950228063601567029078475461957441907269127125434926360227543811246179473406119440568632146725390667430455344677344892850307292432068836267624798435433969985457603999887783682137564845407653942324153820225626896754121295557061869697870697782222639359007618024503160592580728237952260713521287712488470264855687878949025273033689699372461856922591035999135958722770156850709515468515813080158298478578662322443136331666054515079199922670861124612223042688443952037179079256490045239416233283846870216573443962995301193335846259276577972635780071739841108458342946094806828808163939332597427300935505020195467975666777343453561113420919807253678299591937542943802623339094613564815864547808900589139748256097628967897564941338781229761797461801721252655515766806170462946052855895748954092845644040469496705092611871457996515126655177380785924647420814104098694919560579101610150699610679175233860211977974668785399240006950438461869118622550553943731031361667935455509843825321530425363461277448263369035687180447010211691793429777968983953461082147718418326072260313066732542604608929538167602256364293394797806911309862512861604364895548811552442554250261808403344970339630403018958824117930328823147305400095327870362231985745903632648550561957723999440155049515252348303304168316152813792129311529780475287559402458794224984524378854013821993533575331386850411617836628830370598858059077226593268234385631325448885270699346176836588456736559924075916272494231545583935786880182045697192931259361345498895136274239302530929852411176668630873003056431415766753581745515986006429038652518581709964012779956591272550915503539662450744377015939186455848381496737808305841536062764630596339815796431117811406635599525971350159877064415024055777661604746304334909133101131564494450517773949253166809571182705879605332793770804985883995806774082816701670124997356530689576821183903468430970018927227581191983026192704060321850505748055857902169097662663193544398988725835412520626785575085869082267772769972420505540256485728672644321909242018563097739463140983274004485323827838026340000337919640643561164783334846234072586091685818503808181831900875759392388964091193325650684092801039267038278134238878695516007298704899768069237581481019268711424166700500130594914454650862356832369667563289431356848373111156630647698512212344790772816243104226067739261001067573025260051911739293529828042799673834415161654581278508488213495731269687701990473666902223667963130836957966600663498709107804355961304290083188168082158568231955103227877073504633998327214630419687025999314533799761604823173067886354970098272594193575270265612234439440430707983063694774992473481880775899876045391026148954675238492405419895370339399177330989997239637686899515719674206634630068751248995626964269863626916058646165542802824312160549372503033347056531970331525514823256209459866210621135139333200143881154275102754299862754928725073669119342614015957564466649380854538893660721373667873721475771301449054424198970506269793721137868506273327680547121590121380387479441963025625526046842880894852199930547554687953028984027323445062507932833596313290519840989579862296600307921386204044913846183886344316055138726048830017158552049221239901821157767501869194456526469649649147670939188235522143077794113666148238844883353757681515357276255539659336310366047563798921626626249288136995471595155320539797454520507224530551290629925691691406263480854036286983865997863411760818395624671593098156585008709411211259605910720324265093349143837836156336541774879967691035459488554578685891862739240750112897854961564671009668029526909856147199461883019278897685330682932651888909379393910661866424654167765618933845274408248141092162432689151283714089031274027194875628301989071168341078863424641045954063067121255207848893207513950880975467237667140379739747440306166721117268050200813764827129858146572854262964620410228496658955801110140128031526650641037056724041129439868261416970714872693174986794611044603087721445441304356256641264626565300792744245117572996646359392381386968710401894078048406125175424558929034231430926435109526902866424066932900123046410514824891093908757388351771235260849302100355166353580664556649504024642718554792726690244847426201083902901681191965822332335440318135144787283752128219764712203769106622362656478960992834065025529274827413771175517664223679655039811081560194141326628538754625037165743821604517471240575182941298637455471663214771164831097931159302949922396351036723829299380880412915212521972127878708805668558556687789512742857910411891331404476575544332622663047305235536393055631854405486570379523286620922763891161225561659376838913388462448391989802961931905894508498202579643776441601206444052287250153803981480744313425968052747471237672509272256758279731803050369110211886087577511224679008351818338530107763754841851259512809113353266565754970950370770991406490714941193859099754944397487036425280604120045457451998122917795019325550194600542225685403651500255908132086027240637698868019575905659825480331394630605747126167142269412077578973591476568318558048849795913816279947380698491715153062464655891629335391015287997563524192998192372360159358740658154971750504925552562040991959604017235474551185118022732120025880372993937598832876185529887511924947267376835861140943596391516310998395118803502839094586431123266905428488604294969778207535704756934776191014254785108154913306599056829583494618249640848632893267354367110019377259550576023399800101696206935100087793012029067699462209670918846540461677793261399637688453117415346589162441262310725119219962308622623035588723699814169895745253189072997377638569212623958450464054070919045455601916881048828605890406661849587199072666036167095403885010574675319177939902900137118207668858743831812387980108759392826759778351482018262596197361323461587295759975691057800517637867597695601653548335551410851792286430194047809032485367681454575961349230510394212784227673886437736686893829596646896036659367870481590942545293946742982120120674048411775923997256162824467978704027154853859968762930885656616882490571878622327146701227925386341042813731409975899849210614355430874947034002348682139917462833737027420283204367022981956304250129847793618012019833566304877575107034490211873156039635251344322679498190892108849322433203254064405177459984192018678448523017660461356901256077926991377298199358598212474809039797719835910505602816891866204154257043134326600410302253824989364092714536153714392783329789828149286912347211375325625768404243424590291047782033343508937906572748596862759838638919766183894879884203554004466185109948578438818170931882094397710358265358163577517670861075095049363148299466376448823521787523567168783001981445202297944758474781421259180956711990759329572737100351628709511349550074703447182269956270772764610444529827415336574541320632312671949266093971406992376227601402763321223105172921352721056426860142654377498945567667870649878167026393178973861829530335994132511227399262643163583382079809382810110528210613890868951393806706511551923518853991018713784454073366951587250090153028835015490938573122216159570871077249644887651065021321988080329338555850356635132724345990046577604528534482703978905243139938282644159233230152449223797565128253165788590470757090731593808437211942695441476848855560171590106341223220045150903301518915783075253473010005240901428250680143155494768576662994070455025779842953882084361324966163949270442263390347517049310269510567692639205648146561280085728214443592631312075749241891246274718398912072571821319723947379533260710075768493245389481107907397997465442734254838372137540068326652517683029217322155947843371986122463913323556359956959552604921400523022217434480530824299458882919614862855461797903823487342451569703781458534825245277327624817575387805388165190226719208164135528646061204136681945118210219591107405037012142711238960810101587232401438159950659411787625461945851663697556232938326525607544933166537755670786196958634398905799566701409615216844582651739796071894834073729344294252387066024143175208542839900680381133765703254860648386495487814408610592370143312020565504863238513300942687792716884610184592736430739682690773285399043499339013872790961095719735430367404276080045523506269419998340860414971841202505439494259168832945713668630460222531909115841412526917771903110087521444262369024786130594345148554362621327459085169090028666830725087182120269960262815107032981586060093027204374889619207214314543768313445274231908075702989070390890644328999223304673305866673266631384575775711148161969917874680679887935999724325551652916988576208599614018433932948952452306102531409518805619694935426429105052864794437242172137653966043254541872871296579552073831412032041012843216789904423527910494349167191858073549076181549064920476569589950778770011015982234995209341985406794599555300441717166620391174960328258311714931116362815566398050837834668123175665626065851012266786755619185428016613626992632154660105108372626908327574522658416188955611741148565677343670275853338197634999355367461742760060700653686091962119943191421786320112064246503219971108527104322999528372171541651045093235821509314546210148384679888378136670391222036883826373827149929312377752344162742199563822680299448955003019331523873128875615597505271253517008333416208841027759591569299375417068335115749369325526745863203335232214758928645639757780921354570107997180603425683210449649735927644532533492331878476056084316417990945348113820751036394071820324822588721292363359448113231532880372530502121946002428655548790436155174426506813825657280368587706931859139974495165388795823021095171440992766539248288255694380666196634484334496728264361905515831000267453835807794952186921210326709890479574360177091177249370962789809620954443425431513898437836977545884452081512007586348855646144598610840250718417615621846542831887521174245914428507611622974598541345039254546125207247127601663510310690129775383175285029757570945129364841644573311776742300370791381032626288904156670145683970437569215315944807301332614143929470511858100423297001365996722935897349596991417268406676037265975738727444786626348261879759997704118734093562707961562971379279305810478442578176437715318940917978126554845886736952006862289487385170788247938867894479456651457348354722750229479289938658888358534726218455430106482477793953610205536227730824924515592495090308944474875396920070025893745885123978144449617532805292804631045159356633859838737639297532189696412875410932779540513652275884758207276032166712362408978887404766991178354683364688178482889953742021602774369930357813126088056766794422848018429336003024321573270378291758918082639091801988698302202266845117386308938808471210446836222700978584944226010591204134290336230325896132541886601387167451397731676700514744990569873133709454765035738644575727687736908103013485137759539366416326559430958197809865107446781575763168665120585024772041688793029962581733782031451158854675722392484467787807474139609216169535484647450688804785125820452798762409733315131511698214331380967945917980040907352941901955004622460589511960085313203764436118583121482016575838797160829683701207680630334030546162564291200818184798321948049681988634857003038413804209875399311068436007727039436585591516067698393552882574566368226918092422199527356327013787466774669333250765069943496585394669590435777052364373878599206623927144324090657434904020797358928389897462841054533921826575806115821656219395251844509466424917847186031329903027839728959205406175653458614030084870546366684152661697183073434516089849926344508950582822045209169332245267587229326720491519489809703746888645838721651908119983100442178916829854792736283009505044288438183260329761033445181677217289926948498523117648337887883856205673247562389225652769997654002622592794474501024987858214873074610953926781744060595881473108639572181711818244582194079057072462997018875642015762679760093890814255427377588538816609684619453599566186737936166516308569929808331563985812107166495994359020477903020526657035937266375826458829308061158325752970973175501828885959136973893761516217983244005242271783074455041400457067693752901160339081369449112264454498648033736605306921383007678537832712957300429763559501049428345462279254857701931526578251526132233022919575819149770958826973470013120561001229604456273820788690928818987027180427962358519917510721489337614804945460339317011325767895367847200592737487298602004794262295041363530024853045319360384586558391830829960459340939370775023480362544664045141576896850205620049747988630213143598513740687887718273301031124620815877889782623995985831019463933853621923564328439822787842515289876989778730317210646306257769470503524471401357385679656294761169030221214236251776312784873344944620444608854309062638571573423745249833323190066856078418575243760075412661323483597048230479601559767153436190641996769791141895563098870931639537658244306992575018919062666122639410986229297039630404319180300876741526464712153875352141456868509874098459032854840732312057570893673264887573594200513347078588331997590379477702668443438102446580168925429645647437850831478714700947649735187543949381107861773798438720253812509687217362388851099155415708117158354081384918804221365327698935273635174781750027129810901008418565333348584127480951087501902199355667634115721626631294779323947351637545178139123634190341980197607294373706469406748504309101912640876309598500270524135073729213825708869408717326149979247157527835983640956056177990769396399838273571124686465568297956593876240620181184041751816671338130804032930623334062187195510593997921859299569294957389324962016185324278770553094310993099910230372139078361243647204432087140286510585351752421759318453676842082294999619262257856890661604432453702543237881323733721561035991418724596498196089571392506794527524072043685147892389961358006127222154617251119238825154079886604374314784589390970147279027516710156829642838267868185187069446490573159104382231271855387259208356527047444162813129644845150873210958878411386788448080978104791916897863089022962401401360797582763176909481723868464576981374047612221844856285791543310487310750223997155480882224641131244477932713203407727785419293075592316849143880012930408712035178237137595227667377481612628345314911003949367000711140804141058603187568949851715191993191864300491173607930308885070299280685954203282064984533999966722831824121776507111948725574041113856461439944107851560468078360460264943683044650995306772808595680028747798871223178514262649182218367181651487623541309385665103736758106194074205730887138555953725500256239895786741853942881625101526073197846523245988338743091246054192497889856494512776363512091799568622112121156014568870559585119256770535152399839270522193267886600088895982592093808762013994193110848756915921005180784261860425768260457691157711801153151668387286312425620251895222364796721258516280220456920759730358829282006824671478635830074902508820430494254295123390172885135255150803208633488621023749177931478961312237901477603163765613946643585413703085815701304629991962326052618374202967703172467329124376227849754824720568141762252723445481258411480448103441880129158127984171654146050122144170789675222957949866083311145598040023667146750945979126378264943232797740431512960039916601641081768415630671027306356380836704725354712833383149110497508419157837753731525743403256293426312944487944797198848433668545479486612878892452836488284036797463509790909362513001720365513502130884852004653904920277344309891744368541963601042569345407191189936620514886625475293829564351804671841032010757270348724786520433243453822076512082822858566588052850932420158581344148488256506332059881870625863775619323378392280593507140338658969718256008655311013560329162950113011572025070499676931994203860694959308326277903557663879734995584346622392638990959425022854507003435663470606441215993806248087864724975263179211227201681817246692596850918745015790839836452403323818402658449988333261948141014074137026157297846991564714252502240443027156102809586345087819027997748453054592069825476971583317736965193769137804323559030135630488434811722187897245340951332179929207524473139184473733047662229661000338426528466797518817380315479409836610704146912702559630558573740655444991113097269355529567281373933616542290574048550178125592749849200681815980354195785427686472962657196674360476567440376208782621002555052010359530270880321636272236742142149758825830641176394835668365530975622074839480060557429838496526805616499230555759986542096332797052654386602661383108863899019226236506458194872911206493710537155264628529589901250327589180802991098688728373150048696920020754770355870427091321737199567098675937599235261435305335809693962882877988787436911270230764244560979941036054946192669698412610337609163581856186210141823218038602612348414307935738800718076995297629599871749276410408600046013257706518930582834381360005402767916464076987938181995755765456916626208009601423913633780002744204567821065128117246729919318259833962341889169544575380769857804115943191247684468724245498938397577228335089630718706910764793203730601549626637186257022169277355314170140888951236935732416752680979134952864341640783597962330288376155266967294777889324365181095252785272087476674868204405911896237417323645432529171638110828476071596181158809001590794859101159424617326221193867825975176140705592673056330469435376252867158833838480747025621391709438830609399919110635885135774091337783350990670538079100268731594796721168080948270501084254988667843541418793546919918040022213590399364282060844344685525449167598664704245863832858684996763781235238721957817235289839820721347679994405550475714048377664570141013626664543914677851228590318561525225550242796863079176809376080871934973791313052358994919013805423094646065586497950412327954852536594190558907075474154744054097937828232913182054770152367921371364451197629440719994630186984068317653258841334427276675260233368178264779259176740142678613832712367190778829148849131962105391633861713849913158557222599049917703707636374433084589440473788298092034334691490099816977494963715778336628534658415324356212407165181064791318728015497149686087270054814869439621247742651759138053879766040690694025836500293226765904737860770242928088971845058926405467016617426491914631980901633793817121793141237212700076467805175630764039284640398261166000788545312492009013104366907842273786436571935061592187021297976952642198379176203809977083002937223288725537144941086200723583407477919958838458920093572184956010202057437846413386115096530262744064133299008928142071017800617885086951888091271602985965088542252915038550891429082692436913700310003465175763131483549190012743052452306076389156284034019382454616570587951311708569468202113439582659349808640528898878753505014776520652077369173820854568330894020618545690160037189960369920190410167454598355636810004632574701226451619569790094103935674449656488959459643041843538931172739997485376694930586696128303478763547596677423315113527661543624041455784909589703978292192883058587982096180974168291325856137613596119658083377629891020332448315766452607983347372066524870130963331698197178056114236705279708615991142877664860172565386359480349467882700469869720773841841550653638841938249246516711348202178981034303685324377472756871963550896734158599359779958199215867382313995952221944590943558620055817127681630173355659801228246167269393670801607874858553385883677317987976272108249137263539291887030262351975671657737017725287853646062894951956180234874174235093709281713241455457166487698707393350894397715890078936702144778193198141059356190084774381040123000228722888580498118912575857783760151751309248311793119197099687793415086860902787557619093585111486994121424585898544607154785541695812803225001690423110552866288395994388688163732927668128909849728971551428296275699162244736442357103951183993471282081144166203827979385107309378995255614166212787690760213487596670305296670175441559300181316303550959429136226019360973730846163461018222621894335466944208568805820259537628143019007136279764771849450839374053534766683898428433625482546603701372065198014570147545245563643844361564228714659115769089007213540064143254729420458189033182666765826197119270406145927097418547218035937559166383265540091621903020422305236024363600474857366059500626287326837305601966937700016737899785837540736114663695658012748941390296643726026267930828451531287423859936538733003733758387122999801480285571841651987842364219770640977434689164599161633980499579933566366208317430509193916328460820706785608182472177730674273631628314851270725638171221868604504758525759018165631267748048682291611985009325471432528453779441831095821996684949932867034885042849445902513916853008545040845448667676964339150718501825586259826808511427036235102541039682322771989838353377434521413832311924893378567462072388729143792616339023794182320182835165650150573506807965511560830464987531934119862905015623449978753712917861203771836316571262409275107496275162204609142783832084310258995721895862136167446944541269703989574883580586820739994842932474013221996600934297552284659799794304568504227247973954223199609771445126900941060576445391816588681215079636488811813293527287401246602167240337032199856821025973301523354411063213682064548447017408650660828505619378458713987745007570303809001788059628219249794555986953640183273631470998963048296963491412161868529821423290034262748496964015663758426818123768558127826397058681229120967324259747643343392630608058115456310769320932150431077183171104785327056928373794838574162758232069530227472439595807431878368776280682094293044877121741344265913289936546532444272259595602910779229246572140718755317803361829798789967245908944103071006256039668243996219794229882929178635483053356456269663106176818856935211860826233411556642068995132150386294203908898293648879053611417974444764585928613360282499135465733012644779978016063737024716399083493434997961641722750506317365538215739950572381595509072386098803113993795774568792552718625207282953477059077937778593870266364181891206269280657879615787824098864925315864684790073215623301900969288092871660145846112796096416228488319984072705840364985394613040487075117147382752252990755418994895254333329288572036747644558982634346417487180561019992676785331261065459393496712683569020013736644128360684374748819415277641162013100760742255633180937481564294856265036385410927390206645992728828844154418098703500844772491553716949206345731335065808287082715389091285146116783808873119217108735658962694895891895585458106285758147514603440339077675673146068986646439213524184235422266734977163406742656104976611199437315871386839801701409289646663305148916627495527842376899845712836089958460189470868798391122143329120136579889780911071981147384964047842299551764946753670083121745106861333982810374413028291163791855693557204954729281211273387917508399843849809180594810650271956003118315529357091056040605083751038707115326077201594026520579120750382047405532331938816325978122949175609046460196510211601936291298643015841147845551593718146248194675769402781684099068152886373242015115403459882934968881454384324727520161243227332295607932592014775424582833352395282330774937584686193300538207034145256231250410673599664265317104411613595095755462856028824608758229077285761880576069743967005360834612034817468421337767269214835723373945745285512718392544999891066433644827309165175270015074409897692517089013401245923809441395839617315068439692562452433133124804500355691822694318200217326194953696536382890454022011173070122700459106836942280147840578900593228470373498955100482972722350693824270187951471199544989826752829875037623400186171609841907257839980865644407204129018557788285007496758261448311200259029478872407942283691027905294509055116707873949325628701284602027124466952460928410670178866902010435881217842056622503677854701052228117525333678139927881950081555022334841314344864874211064666846550371662514856105509287414291719901301376549954904557541383876802449236545191219339064078544166834788864419240993246261901759157219272770913274233272526214633528740319401654928712940706513464639098227890977087859503572258307678995884727502316530831543060660856122314609343666540066772920392985681445575845937808250068029854212577225883938086775914959757353446401077320009947406983784505864013084401410696769936479689476842097948768386286539342550899100412411828358746331897202200369599351435890359299954751236502260764253569799693803608888099132397920387276169770573599602908307007693717979450484887029584245745131204771530154225918518976388608061258717497632631267977739057459474265226834628267971561895049817346105790411860171912807287481220623613333675815519645863175005664179086086094466141983648294896663391446725917155196046154173462014210067387768444259465760443908478576314979885201025648879865349193480550303611429628894806043433639410059017486581732259543728762105006612774210910714718899839807513598612438870863579627724643808111601987588440249494634994412572562098374441784872901783487419294225520937575683105154518502540263308513248891034329372672698321797665280398475126003057270668425999694439016362077325977007032607904132085576751269289087004674688699119323299585408675413156546315399426416956439734419637958463018378740290189833624183714862889313498019044672566689431351092879404592787641337684853221981557670454721780958012234514305860295940222303742157051401839914869261227735325541429640919257382078196108583420449725657018782252819797205679757222198203247481031749051637459103859604331041429441549970532228192825638923371522485975463308947997150438955317686148313700072297121553964186114182671283298875872826467259431392461052574682250119607592819737770814023550887872936320227622947621730487111994226687270998371366666577384299426853229286815368265458291229467140750979510193006580689580093559970883561385862206385685659630455944513193943983226112711213939824353016560977591581141691400929577646629828151273863361732400532384643948598474512655452429985821923677106259064468903919372083087126580722701973940459867838139189933088287131735737559536577827060477804213897800283617745150185988892807425647268385290863398674900250808465410499298134679453804467092755884195366772570674743734152637795363650258700723612392707727260980293464495195233612655321887653188347282057598016071653678885687399458123775662518442307673910346179208354344853696570455217489117594560497039109073486230836573294983986845779885255023292033994583082512455511111856818778009068138550881195247667066654453210352925504117484309929394320702052038196612346168737883402437165366613719160236937672502797763444831951462018710012673139738913647783063850112997072699868482994347673749293880488252771438475564803271926033953696565526754949250336327655085216496909835791109226987038760282697179196150779731549642147132357546736342907118119197901720097666263827490772720427151173398555764477850586133199905796577433357261079742884101537345547701876063757402670834451686708594896851431700985220933973021834379493284609789938855585346806410475596344592460489158651704403208141134338519790981166964122543249277500054889407860846904691761603492637707251052201043665715037016090761759038925066224033195496065843524681153346503305840455847465108414385800554013641128148099210556408143314250762499955108717383904211750371752447550420161047554792023527969375051213451587635217459853868799608315301895516677521085910500164764024083654981848690009205379448365454675188379548730375640378574889582829487396003729243058063392409662931559104347494890705999374381773410342758806974101608211362323652893683634841683136796563597781551527604726351788086866969210563994187861527524938017814192952482654732302992525146261490239580589428863219332006960776195127780859977769972583665932063985478113226419758071385346077480588620376388920171186644421645831745128145074110636413828721819474706953749611590486380668828368663993504271073203949498232359428243071655901600702089472071190885630009645524191209469045597788744271472213517232514518895951983867803297113110220245882729410603364101274596124001483068487588695893392510600854852150632662520748535001109528401494170009499783641561067325830607857681792949980559721834696836958863352938541088138708946536485606437328142418058430306689877970828431183037910171012975151383020387525048040942351698336839552475922684018339951302773700382213098719880566680244621530372003409895292016419463088876735310194007568812864080126560800941310171862206793361398477806413074107860521346305168865179532879441875504041386368089742024863305039482867038565243599573634664550069538872613529155528530006484971994895722273761113640830942920849532147909591406126323836373764835735076152021030652672624181906966216387177907610219993205887079733570142527061957253614291371016812754959224525151388936538587906209175873973231050833751238118230000887909057976748261776164894278166048528685605401265355663114942667469845147062565197667985141150724603087268890465139266255793932327259767167313943532675868534220112317056125704323768798070952320219409802743388066739242070026338990304326304430687423488397419269644406394144740263025891563377601910012416515705498516041046560442738835306382546466622225882245641371428371629165793334199201397853177808409065041651795281931128127390000898188131340496757264564361485353180342980054496353744988844185404087492484503820163835677844676546638398517976321656476069612973266787916606737763553306655526019430505774899601839702315575883214367754404026136599453848687408377970266726455238096858957426466674701113801047041575530688365175274460612116643157549487429648282996938757198057242182935864023653624794178769046804324471632436873957625488786256587112448100928237892436731789680449711374434225483385170413750844851724649594066765140775995702184776819319024467771157897901631212972310194547993586513054961891523821985048292572311114317318659997090398144273037845977569207401689349594151702763287206071667463927137117298365558576714161712034349570314721573781394935431695407926007522393758229594199935365977156584859322942271866402223854463393837043434015954340020687854763963685400988814230202156752825394731255933300047470625238181771231791394278263517236710761452314302760545025858069535877920508270818574273068331603951039557660804952839741690676595369625744265015341435151209665885000725193652428911241330008297751330892185849620036638362060262512013321271736982992543708459317881844359262085911316196230611611346486055489899388578838504646215110590824675497409005979016152582827637092416404996940795437035239535970605301057388573197685677003619738698862983242446494251253487042748407495456683409945563434727464005010357627781246565048419943541702992484397943830252888399507529216589450626266412896937800220172637526435055970840574111559571722959353410227208576784683585001168495008213795982392846854506330018300594630427520696153372286916043055859661060161829771738722498697868221987519632583036532992924750477850859368760209386941658596639093111484923882438054859315380263741787428164586455744380860437669781632331380459672702525341715591228453151978286533937254548018107570700954381338432461873702883859720615981609025441370979115396331437381228735588054616148320662368456666581812653729651936105948732874913138331911212940001534463394370502843557161623487248324802949106786574670019275032749436136439592338543953522177746233794157051382803852493177101565057102503713546652970938838160697900048839723754035159306400344931246186268633287968537628286106222809810460062877708020386031805347251436763135002601631827727369183085074897381662315018507326859703769455700662663845292134771043427226217279553039150093416662291853025672105788818271942103882697816612955282657952763713958812828980140546319321303636897323868778524161817018118444816656685406905154666091685664680174270570666348715992238456330975949975052894438448657400423772492902424531561824200077812505587696258736048188582534843249168709351678628036936545053309921493210867895068413426480009677563413054837905374275994746517755141674145146666825028506599322745321923668854146248448410702664810844934543741353488495945681619372793421104369388660356516816664344648321321056459549696532332489856379449552817800336517011844002891111708706362159569887585101563169544004246687843087177666150949546557911730165462180763758769786363121637074071096143694571582651784731502887369797570863284984718756132798042308151980074344423821341595522829118636201549083307888999060269759917049161542706757171656047212432603332036178010252354952070620642309260878769841710941271990095910506554683604869707410246705059837942679185443769964588236056171372924377983967951160487762152415125721622639576020834493525721955452107847305910470692285443528245566481605203830881232732052026308028100060763415666982775293748785166751253962110826416517148994926983789268693881556758099407283511347894869453226238900646260136755623951434156229194624762342271128404980131538448964251780659490207971002142587546059101033732902703899302144032721228261683712226149967531405486661348593166704295765097370948868834470561345290569169103935080416748244603569322857785513273949978445446454855842067857738857496293311151271589882371217843995048472483567548178073660835363282819337589233426337172824331270886464565589593948352038213848759364834152288574074543899265662713240979651521844579082197696040291168225433399109082572740869825030315745828520461356609728874933353845200151003801436583391613186630175505479058355894983092201682826576838384267164213135510122689978606462219430859509344116598011419020924581828103250290935936482640981591982529664313109348030103972525410187575402393193424415070491474338714348826949032681461345450491618214148359655169772653903359154643269771681531066914210585230375257509132651658405342572169730843182791579440008002306415497622881743096315343810930661017842522839600173452373759429805904767248586594944436989230226392092645426553217063086485112776196072726478165657036033658753489441475894006565081248607936536353725076036109680815917588243367668099337241162035392752423691458328266297386861033338636840677770647010915871723820014637571764579847033995250841313130509410456289294660147733357415206746119590591439652991785817808594880847827264476450815131553287455704723423292470653019651520939108946269035796591471440375651366501259972394365150925646524873242741899997551486278726861099364025316470756490930516938958746901804253737550432219809591400441312543868201854717998798764689137101944301566708465395650813005022188309459050887655037798121035096590155860220486637200662820222819887990181050257730144365489469740371695783364743643212033330008964288478748856611260077326562094238362572667009877494493892247324966797571703561761402962479812698872438355841877423104519173635183417507411451801055585294742199593631345045886132373616657050517412804219421173659217719419648322215251344650375348254035123005627260312467450382745488950013941799239957978085245952262164845944238423862781331943996241906910909435082269006380693731075960960291259116214492540013418523193763916124942215971663527304087899540689429454475304971525060132816156063649935074543313530355703103028897797759749384438391953906325810588877238596642663058600125598925409737975165971214171036995966060640425254980386252131340856351132448441701644346670289552873864465697210563184709471594985869412536606629700154368529066686671161103585595526690507159697584952148269812432965807932975567033735911802164785850124557171267648755230677037892828383196523287407766268249712252171008103623945154462779751948856759671436063147127789407010645662626119834833390767378732965878282101350386124743247709693762771490106128378362060976086250092090823344360523246709028917073697688838611950217117230279274917554716714456647241324905520691033217626569940674009535605801585694079019307436045938802036073263060408528743958443911758156213953442892130199738905237008719767335026539748774956249085793037712773985678683992467312735876134846515335132584134080333767565043163547271029168756864234436265682830273205597916195650240920465078675309680155710578117212180645721387275759425487671988897886854303226047883188310489472750865687983743038134502010544443572790054295830916044323050152799119450852647463909187691230406450670085475016671053600091052429131165487080170543486309799604807764753620891900745138881506590424305327968572187667798337895952169936925355178988264383641014091559629844872617962406951469530247450104754551484059541834844292201540787294980085371201430788992270390843241369021462852307014681469473700984312119386704759760365840655003118249026663984934893790413736949460386874471841373577166956667905674311878391326547140717285382545448276577307346141001156974082688263319687021734510907150931100802773795641644429502042005707717334395253514576956739877068678864386854382893427117725007328364977078912918134773501039117158810014676104280806850649270699175832682690508636859733001449031237266669966146458040493986144983684764019567027000348202207133483017296643104256537150320527259865937884406094565295648045813833060099409889269709042195922154873941901234724662880241531785653286361308789554470563853824777418947738818063965602212580518159944244079716058611509555015860362854864345577223723788243242256349597127390239437683938139267098970644734102965089038332586202244299317044936322584722598865405512411448464767112107402948653511780266922589696613001410246380818321593945454831065852002360239280977891111614009081038351582338340337147961534720260899008150076057396449008334440159115559718021406583035180065738240998428520852397771202390045726904442574635527132395305790091783470798545219397409607068211598793511081446615922008496664786484769797755311398268497183800958839375255259319215767522548809356930753493556993916856417563367902504890585517037800273128747190139040935295296894824641060548523568735994113143477049190468123638110256442965798411006350806801919346192309747908232099236770275546682552608779440831094806123546078371162353524779391949061545625581480974536151886352519261917399003368840073322373274953991614428729244426871766691984968557615510584744979010722515686662689576159568911087000371172073617972905789771238863798231652378762777311340849941030581361174811228733208442838183728323751614649346954327771900643263524489999354797283686033992619967989958038489202102789160278834059058695301215675605554180259069281524471378766221526022828534498204545341821441240648335132546331299821385981982687464512945485611012368036726932851035642604856212662484214471899087904034047235832304005513346483762059001545548170059056545467763710599473612584496175917386560655015946665262740112685575870013227476458135165441143023423824111060211992811307743270121133625188274470499072244066529453313253681453997990707943401788141136194585712072993733393725730296077068202545130398255795824025247889461700533851116581360380697244621305638351426233881666788540040112911538390072543044612560344528771533410436077725827585540700670014134761762518388557668819029799106866313940141093093852522075103295251911890576150170982965272786397103382432565389606182798168708825779308647867236117901316171643491940359218265964671593372904172040152052951299684713116734384308072125464287303112905126545423964124065896122503763052722550465694522355122429119803148783780199578892764518190150201954815093854893663464759353420627141014651960479779072937858895944478652310455811785696248140600296399274704645285688727011921508532456008249942840300227168502903722619805880352232320838031478292622488095182730669473724584477113739390630823812989869799328150292863311459774912328683798137086718608888255860593996466525405542178705718267759092858254288089123809561893630322015223450179127977260599094602229236776145807949464945600527029836509325247095979855781522489753082161648395059664607182039765531444158725534945594348696786252245128928016187713743000545061597789207041221370610774637926964233538869382082061160606408999894050261869586825713501178584852292098252561247294651639321767342135633055404576452416313349807076836391381558824262894562262053567497767435636509459365331812622485939950549191820648209539303186141018480975892984026931453103015504156650796009031457468559002168321259114689911858010797681400172731531168540484989072849875990789598482296079801237543130082019006632359491437399084837740389247655685535734300180453474033674489704391323667072792718241491608034811698711720407831619122573971229361491075357660705292055913014118092428046650029733941335047149144455817485728221055336087757822798560819051258733103078911612300340153296856510234694409156802122952147994545812501143732137818116198166900199869568473833716352749844972102255361562295908506392942407911219716723433333671765208630474215947094955454915037082840869767295932397305482383668533485322027046702235797984301617038980472701851295609879871463566531903642656327209949641813698267287019844233193547106317457597139711486217988918190550525607057166889613970752722276215310758550202735479570358639024336232808161122099974505737068106088355220457053335928083015321056525190847059253221150213617994006787311806558194661104992751130500373105544341077234015369611976896697469497220108192912796017514352277106827493548650798653763659785133765226356960964949538434616011154778315553432193582998339428357125904874627335406109881534510703353924510894456534643589307425025198494691432962158554883068759038689009375269386131417903785634294341838495508621454130031179062826704049246671685071206385875481387409291207379192947861092778083137167414672382704036085975517765701590666713756302717409363699462660296333033358635201343039290714188108274764883505180296800478585708784660235891973896222240287460008374449579301550902439248150567364318868404786717060273732187724988348241272055388779483986518029166454528706206593042597315192349449165833028181115813212027107917516987648575224699021166775139306512526105482401045358723606890142551899370019489213255678858592542232403486682710410946093227279433514837772238241601593802384710745982977719701326895030829209169463035491545430828629783965528842398942297012110528858957315456054765526816781928290476261566528619387675677511609459634360171333739942669181735124429308209988116827438747343788456907060304651452970479451405793040418063676103879039139709808222718524527167233678413806969504119169865211488280253531349829548757611422591218638946670215209300293430084996258179975661119805993395991232891651267324793733658960042553404936086396587041863220165932953516922876937222046436140076436686958342482436678895085559802113669075884493518471532114150804471641520445431498927988381107550156332421011513217654737991034659730294688093598991604709009901942301553859533040000986728301387256847627926509966015260310554469150445873118868149142740061806990684596810201500368980519075533907437194215304839579987529996356576771339323166344613432158418894026505499890414908926696984061758578462187601530855916374569601805645495107696331106254395338258024461659699517720336809488105270515455157378707348870823013868704704933725041707538947959414467231573769177545937202903041512956954016303414743790243583075492118905381057673568393969398093983323358102178006165411179810504435718328004022271608970447326798240761707820092222786905367257545234875011556234541462600683364413151200424034071461474363785693684200227950943453154282692460985008438912418427191756098739736888125320801823546785074356839889128106471219199098698132640026635088590129791834860777223890265869474165305200071824785618358094595863687322931107270439724576408092329148743776600371870500792263406877468116664332238716003282128320228051331067686050626934479634074042948912673689968547267695298513801336684697461843962855535349294124916089133063494976645853420612589125808969184938046257287309382010952530195406840162781756908288014035940858687543290206556086967569284770659579944189732186931954506615005706525487291519668103401549798976330204004623998637914919897717208932674707201986040779836692725647325507102891472559191172303168672212681121971842442404740844452768752902372917442051184257714856756835679232717516067746095021255324680979928483472860447063748017576861846507545346438161572474573563987265484537193906331088372934780567932683857074223273559583172072613041927600854086578205462151675244039885025304868397436429369692942892152144428473895352040403499753764758831076809844014072147913708654722406898640576904860243166671969175331957660613935896285220340126572809196280663270212252436892389581099443965489817058906288411916339732531051790090933686932541487224223897725598568258021034567658869743670259814694899513027865673801077405657222725180650099309080939998596957879033146333301230687419365142693268204904657428843373952337114850251341446728819602414358979819073923658702726656014291050968968457878979967510539412254399050866823968359060187772400274928288055612992725258986690329633856115184716012762617727553219417695874619631788010907899337848949709287197227252936468697385907568429820901593205095485861696833798207041462705868857505329471576137737280639066831074503684778724669155197311967297886933059446602096298448146868039358954818538315723408057235032268812649471613598743364178077697355523919791299166858677520872983785418030740342524454357557861765263188668558575672884700740359651452866505801267961954773138606274653371940570262740124049510594352229779301900862774793209234874596688880846817909261228179045069215538109272795743764204335784408322663711792199546788356665553808215517113469608556317469845003310147111390225069389276798250337354489844081995054410051544309514454229118049852115469329171042875496505154740792393499868713810729996791687805504393857986738865543751564473041223061209448247005578479847527530849916651423059923341108476131946139058566809186462334802000786059635344538080715043833232536508741239712499255478572984118801080888515805083454234949017861299638996175672596454411059502115237539545243891466748970301804257357597095408377420089197585927127003692091402125037843279774620517889309729224109454649460859373611181065281806676223071115090790671595147484763506157711344285914389644477326516779504813761454115259548333714870282768384681751862544396819352712983730384124461699114599654933523561224680365766802324394871661193796561519170941518057016857583122501290387008799364477291981169273324592697226059600102364693486644565251764301563683798344843117275900713145996792464910758604521614509086092277888565608637320863442813490503125636351277259857365282173135509466283446416682833312320901902088928025579427740518028410627672488032380743526955242215269949431333984767355866685090801917529489757571376764760612146466471810010639399732112099378148263291481555081476985374675263601783901513761059006846045295173036195893827634158921275254268684405093122523862292672772782484222127346267806155984889721975951388247084331727915072864585964227561832721148177583754840303566296454793164918782035073481881897402935054426008189120046763426327497287975681157743619897021222761800663747396505081562956547864668956657360241514682895755049734434334619473218530252608398145447824149498387570263645169772751355281995519820145327210184414027917582673289228200503181593803247387228701982196332962184894360662370531550942967377431306408245960872549124930134242169431734071927678438040073016254025067169685345330627268040258653651800197880927519934003752784658485561959873991762059924078193783077582367440319817870606673632231126912899121669816671169762360121139987673977734320152352931943960772311529319425254693084801906202659275684255360983414365879179377747579863177919720962674817583306329924881988246928993456174715630598642415041035757059088862691003705987546224403396366139100418888824855844173470435300036595233318570466620942987717706510357115438589003048958766282460539732560075267698811333480740309313627442013123224931179807214281299391774214756306211623307372383437513437848140375075619182890871592844320967602789451866794595268065018173084873093502247014620455910390429001304565517807678163010558512919054549863225812295918368482935947976278319965983439684787907250181536300023684844575320081898739035665697082889082781633371381500208864838539446329304683073048612773457390479266021666409841557125760163426427768000543401153416523754158697615196876741666128424571531928602160977117366608912934744112879627150674113728334051157582287390710676227256017013687311097680030527473890671739949282210726799582834486358553722533615111838191977674352234147227267354643138597740097034895099104813349886489104583952143999814429997867869219774967003014158508192591832935355295475420148193634980255428699431361516781224798329031960433820812283971187299016133716194159347588362874139661707918151256879667990550751804459376750629239734864321332784943952433971233947611587955324728430612234175155802739474726081176900957771996303488681160907724275239188894661044439941413943231784951508916449092482852058644116019196960131808012777547081453521529464196379060612824159191899638770456392780478987306924828702363396275614117748167832497079146228010176339120993153487975390929541609975240424466675675842996891266785889402931193321727520553712117718525415009719727560217992172686755463426945580061895787124070277456986204270198520133508655977572698072526444134183879057983485200012470334002504518069639031701933546392740816520413283916401740891088038180014589565486839857889637889187160830478178087662132467615143547446051810036114692883664041891127980877240941053158394455322509451692534212676916159487770488577647033984527338328681641714643841214115569713606523814192533303557016672590375159403226046386956135417463184562474269713784875822367940460537753286682551171498001043137533197257351838795269040808247770622681905693303057159633351259946724857656547053202988991607386499228195220390165325483194050876180494520273283137933319294966551961339406953003966849880699967764472342624434508779559883605759989214096893687337128486755095586232046525071820456345737852887557964332251190220655455743122305942579905597581348461918655462024289928264067397848601981607506340609772433510917025179293117204204673939421334172939584259235311418420964795190216040225328925775909053033958374228758004442535985506816539131796124738658910886797142706911119654459793338762528498093100366866254259178723362790528229384822871909145292348069557277926467404708065879641197513139442366277745877181899721416768979058718118477622917864193772800801258060242843280890626210299591617985258987269393499607908332125109597642147518307788914746318759196359203730750224427767625499855943510152911063960273381405309174211101046014514604713025112416416306134127426945003230416332570120182886257591635374761565645440039727553224813697129498694234272517380354205974316934745669572537885258992885526813378935866087225571159272022090421136062747166543815473633677809039267435048256522480141752106781634535722585918340876801833709546635872961850861087039122134282725132865682128258158924583044355674343090215051909687648746369804844182021825836145929820171691843460472777799148432536606773811396661998819372114103180199147975805701929597229071396606800657637461258502594554239249710297447743856043109184913160174067095473254023591650743228438398282133065641736181144114178242193163660379302932776591586240845485790480788719262572121476978380899367759104819671616879961622267868501457865565148519798154052962389280359506871739896898373644858446832561618362948168780512603832932421257002270729326121528569597838409434248379791450474860197407051484309301277738336455446280567560997181680508006663149930290334683196078880960316918175761218058949536539777420058722217615967767697876694694779380045674452549951803862662484828623223883018969327928190790403151259013200793031913427892565341693834199110938682309751851145633954216850217605240657634753374962202581281969570546595089487385728011688696840605340265309938674662117261040636849080166863632484994588521326972220108697067556433216959558926733884902619317489513163320412200223289959193187821563182701223955532107184521016222217540547325594527741977247267098754975464596496577363236674084355477234747680148092418965135861441468589903940588928481158064274324238464450512419356940552979695553851043225714672738116699812682800259726490850206213771810149354948444700960993756442488490235685855688599128831824425103351881815868136394519379086182167705076017153106726502174738123067932649841796229604283384077441960997780349237568938795251801280981314425298555637766503743460555779273541272290089434521996067770473523889739092248556075902875930003576854142553084456503951749129865286114643894571538965740619039477193494164953150846554968979758244081913429209044502711159771144506653076855038357354877315142717962351771219688169281097272305849113188007207855274456310287799219103624928999949009285262866232038484683304985389564894005764892483245180143485753932732686107357370233129918180354000986166698039170339706223301895979088781717120742968554876746411597138544550362453429050979440522830038792750916391254823074686814662763971008135967708104444372400035959925164677128918961590898398570592695227754396314522941385388747342497851294591126760721379483194421921567950967811681892058214358480910071519798628191743196324959500791677453431108533841864609779665577426367468963030714883399560082584815259973823998541888398505566630753174634944241890060006580202364955775152706066811575072048279291975890376021049328757739535433079632954467401247910415614804749315799329355436924725435469445723280526179291903632087895155591663009842803107895851734062229985939832464440121234961768656784114109748074473782757251606170454314567703326804107300785217471590243330621131594315371752603045734162507572165461455185939255911821820182588696855617668392775939053405951733124682441325911484439422622979751437658596860628705001622777126422402823032858655466406528978864039554474023447767729647942659313531571594425125622275277314217624746238799072577515885541302091684198820998358684106770949127704913507825790997048937598025308624379716756080731302132421564964018085486019576504594676240281645737995662275764423358416434424764645082620910968528550471627031148213011411016162437333694978322600002585059411440013576474646463893174093190141982041748806893396802525292507598152051965851352994389359250912397217935093289999015824183628849676863403556161677148095537437765672711941930332243676261040088801515728427639366280107873079186090941948895679855930758554174169687289163491883670986359424170659413812557506401727709637181927008656956480187263892152877994989640739789891015337334826718562332248233993680873416655203187110967128129921490539219847517129401464337186436196214535706891966313110673266112069338807834806448721019976079755683448697132847078344200181805140397967861381998130696791025875367604754095962177618685056049699821954664258382766049505291782796606804838261977344707147025923866643726282729118973220658086861021282100541846875611290158038839294050185693845137259305779751594658135611465178275806187874675273400687985216177753881430179979801839183219638626774096159731185990889508455576546197209162362291198528624980237076099706061066219585064332563227067221347564443253699212912608388995980557151861999238924008969896622965220817141459565027582906103591305550853630055078575244027711497176366190472268143833837555457606801161834993928495680004160885160699322099992697943337248006588052228300506056558974363827969697454245177036354197337825333685305090118003062194198777291854845670552715284350270792797762528707030580193064985297577180368711899088559282663827258890845256003671075917573438852085359090781270249585430834577357066119601298523387662998007846845377429317276444773861759520540822783319545537343976656092364958658056315495631382414764566793854993846725942720610796238983677397155564838333241608565007207169105514367256223592144567395706767231076600505353817464132706352986953283985784528656827459266763114754808957430206859768245898148931215891595890117888502418211962079673760353049895428034836175694398239421053228475878023678252992520433870149432874584987280660328752275007350248798022998937852181611354383941018123084127499097925449810977939546850682859734015684717807616045396722336889973882383646195046255098922000416598925625982815170334941554237942272885888469373153033964965391052914203366298091367533746456363725599055651943202902987861390895013268411229637799091890077605459324421365867188123211283054547271016507570095993898571759002464968631351865561811464367762608280822733946643053103706550326215054883986896214632552182819068469121083144613892130087770249059550955074725319618761753832223654672868252241526761261041645328412824814957107254714527519466864334820502575459862271776985560784572216988572405430027175494392847366807471070901490736550821312529065977847551452574956815876493483905378417823426146959354690651301863028205463534450476897113567731838238471371607768643739696041301002909872802718229847684014649006251602528281374191028832777696349039022455565772425441483432260378817657910423567224635188961758975947781919867943555996680744220062612928822327260105340088909364719179079686929823969174127425552327341770597416619343398864549084279021860857756070154119808887326348960070335407341629342655828019219579754488924920444648010887920918522145682778190891674033073497207823766553927341166323736843124087670718933237298933482453623903692118262074519573230242956007137363361559604894091801505439395708797437112597037456711031012807128046228812155648459755763582009863996505663244859587391805831824709901096107388544472047124239004361239821832122736246817340321273173511642259518853437987094479870842146718753066467558708405189383886559167836962119177329895529928135476808395799797048187733576844136497820238160972666433089941228951132188932613028770477426902959374325502037025588587021510329098114188012471580612962601065810644894542244405594884115505478695294468130193242274845501861784077026180157017213078057123393670232490727590045102303825696230152181371363999076717859820196407593248914241422600789990297037992305406775519919135500921301840501739146745116379782321360253458796863219192560375454244978692803994313386644699440263027479770478177713500388844956151749853981588731917559079694925918903532871147240627549310966778728861237041587938336073486907052939250110182328587934742851032051719526814271133403677657332808261582140562118075604613260005361851723642787017405198209542445159872174708068906283081189868624331383455323722405464778731292746302755662706905367158616294059291985998248907471315877216020662861531554705420394086190536840633457368852143054334541063246297285131944176891822724672542343906171159560437281030562205847903938992840941544885560963527769339150457737448519888684279311271519633792124644691784291770172872867749875281731939160379780231627218837721849338915014072283138033522487538060818489125339260412436891710264332401023260261099378796502554416845612739539082446247135442945855168814092221526521628768158424639425501115678834781011387575352898870519532775472243557043989051959983974132260779609133670234998755700687392586293608598707087574343985666256636235662679438339070426639141369623964740369268453598706710945007166907646306889773671307926390332920433906923579755408188242931242717208798413585381887459682233363086863501728284071993961359058450536504736434052276086208517204953976868006282441533965866134536357997154201420613421755886542656114532789628590985957969946238820905418226280245634342079154176780894298516508387146555753229969738326484391599986467035335325459126323552393634532022797075058587216529849441684283877119006440817768598546125932051626290605515806365902861177965160658685674332536092415601443652203646406177896473063464032096343359318840790673248935474720338008478572290159858615683043655977927542419275176981386869095638649572272609934591294949644814709700621361274071578685397749349693831376425276349251668756833892491825394165039114647295032807279582709555942908433487229919093210418757287615116419073710061942104794371702809952244557823142555928803473252503597207058638822673393594663001980995818960743011949237542149385900990581803184226154734688975501919485292235575275211773630400507485219893635574467194788039309474607287747869671153305525930999357051994525336072364556436354781432106230533214566913897438549885146218788896619452403903040111540972146353919141602084956389303607801926826988231046976952787266212085437949261705936149320576420797180732601630949018737906330842619514194067427235050962133619319446948824821634766912436497149804327784896470072608967369199342620418535558039409379423236171065503829363829112031512601229481048134282623844452889562286184486325036341506669383727156275982087035483754447667704041419665702110243280327051621938454188510640652243240660867606041989937279023187290850795538647204935844907221037613416964901056571483190553809720318775620557466068016230276267684042407865992829021321580809187024889194976066465833314369005373115879979227702174785158483366946039957347674132286378644821201767383060076875994339510543852993971665388798443075891541728033618588681616437259137634914396023095248418317110234982087521991950895012618255869351393541636406998599887789752716903169666678762656048232958149538704684634180023568614235585270087730389073660974308603284011808429553504568860408814765924513392981956855769553522854054998800667470701957789318475073439863146122735909174391914010851793863042324987612055075628650690685281915332768286942164139436135489586849436798631445735699644492838283263991276125829986400439201062026708221656637379940655409687370578915161181742414283306834412811669261114157903263775903897651715455260404391080961276180643965333963847125098735582946854772711213633108009330994119579667501115655785798663960948021643751342973953050270019995816402085576505946784471787888785166663994253464597448176041141595943491292263759834171852532688721192787312365166125494545552048152827039247388701517211075069076706924878916071121946305003554304577078943190797840958597170460002875781923268960787817323003354922401470884418925405303841357207717816667604369566088476787133373999939765135830607765064019610082408887956502971116834164036422193816244240204076825656041704878976427502149063676698288367655600430436289478354144823442789597182581846200831914603974515905601514777543634017504022093006544363480522863965518559919292942350181408597061572882356085994041674775976909623562123072661239401036266891635883695200447177356544022648892006846694890976624337671754321303877082938804606804677426592867737259775431273368668294670749725535313402223765289293353278791909145080035190019822777349724866896272667608729963444284786475539005517883618346135701420605474708391322488013619502464207980649233966247020703815463602835611997720815375481396640119271214853567302354407986007334558073000347451475667238545799584741452887505471615840168613265315489051369346479445716810019988190235804872508177773450740809604704242565596493895579549954791926020588321756063186769142522046112198358135378127297848729547015339159263753578813026076044810548265802093986389698246303089379832719728215309382522959453686704398771148083173454605585393981901638981718930737959013538394805467164941707238902393238366773549498911648840093151741443957508069769842921919053395609598478416344348579949021558686657880863618430774445004847268594076182924532811374897121719657612973069621784990135862162725653481956312454431046639033656798391869624248036672090844848440143126361980015722499557604968187807636069799627363912636399976809358151024091104967987964635170899461020674120729009690149559403818129133037498875550723646927459143720434415050861951440179108212303890272940797404609185980963722460553074682312147167472326078181131741487376523293289867532551493327090117764225677942128320678567210374395718984302742111818140593830744680255199058879416097679359616161150208237496758256297660807062530170643438594398879800327416283962076852041052481866123893457427566342227658579602742651352693070462980109649509548647257927367777544560974456316579641389873950941388469267136266248164581460606206999937597795084680837310011917594155214483751383604219038403801539345565474983784707087242474293011337299647874671605094554752726531488948389199196999421262753956629650216675031482169905493313732983572749087716631256219065185287282527290783491207803574238066584013250479068839751160932506816233243615539245433301816510954424320808317749737940890612506335324863717537138690574095529877720387636582949445763241804535057871206136564543611092316656650653754440674963488542982579528962599835921726604008628098537252281762875275696901821359148847106663042493931823595451871963928133493245345712674168527220839257420566131544318869399583824130136014020202670454999963734970166105652931266718622593790437519961812403152846244784201045109498622405346750722517791689161052178647757425036231144001591712575403316428549518117343106077435962355381265226474598641424179000098072058964769945306035739028541130549288375808243385790640868248221329100314810421470903260911561611033915806006528122911145616819356269282774328655849809247622505461283877260268981797403388061740560569984612592814472105089606329869062324741695042105982813909623519345173500608892278372547043425749947720292612690776446937939307000211797153601004677285625490095255284607096940449076954406161261407465143470765889781587164028874194771265018052593919822655940407214543354439361795561351907049138245283164001605854832320766135299929338980430439038147825155647428545766946969010336978757063068144026364417238296135080353500964994570203337403001678303812549720483778648675543038296865673609044650976961689718852529287534018312539213437389315802431393588959836301427242301406405243844760780447200585475356307974839995266026461279667221285310423223408534575074442360317862405741037135785109021277319064189231883008112299630912048191037720328856481261893215824316081132997153273907831394802991010364365101695172900487652229330997484625127241955318186786606624460743251006813701100998367394155833547624880885098360532996609225790894028677017602376771361041155084485576796304941182124790760243195011742212379633026546586609936188571226990689458755736503163113481460619879914476889576010853989336983550374835439312620248058932518517582723687642330763440647712298553932382460797265640106786454061552190380213342764668060436650169577895739721789769829957699493918543534945714650578717806344937667732450284729408837410183092111372215884570067729172990659272905476584562124953312151995468398517623146009707676734949688269106257924304016569292454757993453754207547945502054674583813750687380670366854573452528499745273532887015689121927295973909692586611094946567813155843208836424270067969481528301970911825071183119542727109805945599974823433942819118155846100575148847071226768716098644625145262093543121729451041725493843746775547767239867466061518290209980257550522404526783448834014529893555403750552390842406895931531737439584987809794551890528140740623626544793355842393963927254649331964649119527907193580470264127715704033233344501173521517185795609737476427630637381820210082991283626856452464929705712555561980404820147084206946220517467594004786507068417439283013603925999081964850687556671885819897723505021893914635572652048125050109170436844205496523498551566185872291956294657037949951930278037390041248005160882000790589958173890676821885030146238246300002380466484202108573929367879374886206494288642390090751371925634406330343824760915870670726909410465495048439926511760223075920013399360425014401038152862457833869232701295279718262050373376429087451970679953613153575948652445659480195266551153635126747347032913853735015826858895280153411512136189621898583406356881230684861017778491765693247494263298924905838534639387948025725392828298375838313582217185154204728826824256407956552361621079018914214984779806689963068677292551183344130350379689582593022657140108056484389708265294277206250682040656077332316079831953154497628842258457283909177493273921562515719381936477006034438030517598167116414909854671089333405264167958077248030300175504690370637981233427380113699991435267486138678054988664573894383924116070510918560410160792718615851823630798984220990554019171426569583667061681832300724613428181836070055278769320713172152136060262083168484586704415202168825059872426317540607867691139304545477824327451598148386401693534539941907138980489634412348505866051846012713946622825697049878844856656659958638642106484233194911098143501485068582475271203402399727251167490369907163746921117310533428938561634416613095340644976739587538095641763766603128829857609532370294682035022566257284031289204076340921520571039909155273347146920918231607693423450174222989290241899127245332452493109379482805451344139376739803324424402581275821052408102507197740666742409710284011025912536875085253253330170988466287976043422003939151204301138339232914094351685497081187608021411052410119842677647273857332333917459757099658007409269801064620132286314793196543143791777017809140754639535212194690060289549680578465971432754365740793878594838189612196491637513069593561072368832357295621793837804594696934812572920922192372694368550244780812012874390830659293710921535623092401381268933981057437553251933480035501401846390877599469909605407026403425264986620202901918393200122047795660847387571032743820045941684496481674801945482046012573214401947324353519547073884250105365321027223053281116519113126853687268142114603642262838687969714935417452179226273934812291654047333534348540510126727740405911438793032811091637235313258073770368602187876685411393071346613041192550889126085390375065123323185460120197445465578878555289114034523451395060310310120679485374399485134569656529453747066854231706938723723085923500773768922144840717818078602133580580768878895781103170339254671841173804407298826084096663794082889773078855725458882994703072750611178694025831644545590331727091133229000283180548595282357169777424420782518219567371201340521377449833714623643059303179190227950139914591876140503740906864228043855776305616218280859316017089395219920096854135562660535612344585827260814351108886233680508666689716435554660218672740091985810698866054415355947736363827429138909718336426862720407710103039021694048039613960196785056294224335516259836034248968233952958560254207121267379748087626514016158713699527984261178720332509981018438342680248554704755240368159699677572772810780211016159162388807601673159656200906630106328633596204802642207001637242872008861570237887123578217196981536333159848688933938447626935099527026421967514305943319546752894169931122457395842406333908530126596264467588922466041036434948218302565418713110553839428903715757748253299619909748457659929268744991185808622509067495515376444982304403582977037751734264668590142479221147122554562298920009541638338601978939872969795869173842893832576938268910698931103557099334558899743902468984244456717444490264987271975021299616874685874382347852263190207409476416489336612548168196761306917267830030838343787464283358561707264390793232281570994155192459251314856579519024056987788580750830840458506264531159159756545684850814090929056301110509444650990086536206719807756695467511780812487225426225212115220800088330586194568273176774665112338379896695191047998721227350593316127571681176712063855536233672659658869009882309873846798355088082502763797124635062058401342317809651107964575498070827437202227483044527679446773643151105632064346998037564856684631815356179155791279868937410031080766899753696029474407729992787164100695418698839602341693815537755240522922942449991517034796775784636130325645161057949824227373302389907806991321776832926824166120881587296045502493680286643756388079824748515382516823284054036345785199667265574329025171361209278330658153286990636407120585779403700919540707824760959693485865686217299069639177639865893657122874657216523953109796779348045105406975852582308371433609793407180538505893269773293831814476956892318202141268924092341148976829722947243694661210768114651397034226905302110557058741051697282838354597035603418887184469796268495873599555139633156397868931834567084201596058836254673890402121951102351947820247474453162127457423090270270277393045307001311239478613087355350750389575688951045504214179937559032084981232595863760872740160028282152849368250422540942220939418449055602971648052806715295203445634505986265901815245229389519897973820043380746193641282478526828432531927199682477891259802791945553485222353716127653061409598397811398007290842868079355699687379816765162179087921688787974373777491768824477905994509557251251076466211111729849700933136179690134165355175901728031024180538752636499751218142001159464379059870043035485030282130860959802837459731456780557432760064683058512950970519520766578427627953356074164670169747748285411616177046967674595634714193851879624802580251307237577580209640811948558767699725307438330032570074485036329544975714082384573282424556557223331239369988017150991174389632675152427920284519247539142012741691716445901097621719015366976645820267896732642429197278028072460597869747046182108249028263682570061135256109430211735714078968586021927492469873868053386513882965880722112413244954916100635730757041583709699324867490465006063387493104117470752350795949838933348071727654802915035308963065574879287967673972353827208943598013949196927864812178944216008416395619969216861291828919216011982766002030914281023569318399632510953372706560497553478492145156772093841321191092190223920069137358864718442802131281135995182040915683055675578384622070554877261639874388453536002626998031674672653325968978706187763799728411207140981999773966407729918847296568968334361221320487901904894898658721119244600785668175462297346973977315394977715020057312311050331245493852642534401043203762304587791936535016401069417754183946363785190405915288812720423263838111003590282877350342121309429122033387724182248991706916127349987359070350375752361980072951332666291905669399033266273515956494107353780318966398305553462358057093729915374730423499644932582559480210738866100477000138992240671810374129700227654178280319454824316885419807057101331418697907285470433095623566490376252437752832976372821796470483822265060015738464627826583189019072091488194949711384272900865157815721782727039687603525538783403726452021275666714265598176952826481750535140763878157112099095781145763325733035138256138365818251712642712881736676295280695846974052630386957045897120380261789411471514750368871068537224578253786733099763205811903939074923763812079484196633936544715646969818866900109281631952816244992971483165569926460830194026044195073002137783280909395252368908428349449797604305956321409768113065645005121832853831584625552953567328722304309076742341134132492391238627609806748510587028797095983321005470471305119359648614663666431102662812331200917303481479704302448928219033517513062469379338081247962186253714627110105201814310613046506788787944888662212825255545828747512726834777819258010648899752242835652089865841131127029110745532339402775203902438474656910970480268904504669991999987447458462709027436352610140948008173195072226231137945866868542299953859020180677608670492719127658259551940811151242734675454211799830492029734355820448824215049767940218004905089751908476293926238904733497127863060008900889478850235180408341141644129375101309825911551682810290830551875873685763874879468350894112281232042659123147280271424122382332210718890708933064322734507935340103256311297761199067641850927646923045039301559278631134030779402917416945794060467790578841344766234225159645196345383324104088485491859308673627019438978039487871504494205036771758390403636757790201808594245998021203425704132918257926617249764201538106862119999626677068197962087499614469300706036790814068890999283754519542368685771264015478852141418670066104408868112776743683908511077760847735864992244923753150306829442083460124313953960584559633507883674066362755992518099820358567349602706895189604640879758939758498246724706591727311705298764482046743771725931582641745538604018027990027189100961117590555781183854496229903281618164438781827428941305624390217182802099511914473560295844766799405825303700531508137034446548511032766313773842407154427117324563305661004552715026146762247356346374138473239987161728932985778747293559810691511869075773952681864402270975780253004923226450896734865813212226021075621078700229072726717690256523107037060907698127588689998649599011222404564595188303116831228029427190045581583138925106837716803317086992287801979555910983641237909975319498909949701927563022828172930399035515884386202347821740229082124688910700896963107579796716722635113969180142912103372932980040443363653350469470591249866724198953527929024040315633512968234526170924130307802715420465194755578716725055425859119920204858749719047973331967913345332667570071361513154472092515726645412079483838857164842316717974962157126968515667605762674303005012593136362776854839724949283342387731032138049899986824009391988745631268833173663745510825950033321787863340525919040309115367190230153315068554923905431159222899948566565593515982447888042518231368117205752955807801890141338715615105089532648872078766041559137694618560133790391134139303124684431918809599571521243954008955914267183087380406239481816495306528137816891505094036714531837571007588499884787245588492844537354897656003819365592428180513329712849430696433762695152622350356020149838651200425374582669372979841990834082516383403329678199475129114302399112666465326505500585966942029727725948332518781133422080514533315028251070800120958834434665802556572364843214333794271227961718706505484212823755037746290745085150535043438060018343656625993336061880602465033035334080621115112664147110206610439352662869482963921466900002363923700019686307265969729508717164751879609532587926293212915993301883791973633937926723483113611542872739697873331176272095735524368956463497027401812431879155352098490372479536492242996757532845190290148655062300892765206351092299429802372756136986483877267694684716127076436526806700064014722032375670304955605796938450620826170793711280854574268705740612038820502190508860332342887089528462531759222946358897067127512432269026586617921007370485750554492795110291612053394294940061873669729885716468192817335849807654324049321610463340253083120680616491326582790976548809575165585485968003925627469561702013352365406037821625238131743873465562305619986803878630230996465301223512002296024061233146957195275147361549233785038798855294750023485187071073847421423142546916494567182336935390468707788850343265649566103777149944210164078816499360034294544494287282727675669716350854541128551202763739240773154596748460732490543183057766675612061461986398724124001169569627407631982682038859991475120171632516761410059178729323595820465230703162909229237706512723216734757212571620556468069782039390344229216600107469317162255749313896889663856526323076124595169153713153980817295769510044196443560286553119109138499782135339092046879959572422033955950205712169174998132743253988836933733208586671846617058871078140262952031628691807509555417013226575841060275537837160435211036655213718450753925246110068125958993768296107694359352107534015446631334794240308475756913875047060365874868160878945876742816950634470693249482952634395724716099192694758327733203048839734271259603237231274551439957719446058031288846842435200894318375272121820812145864952792884508522076990866045115765907079506228842454545082447069246264356651674505102983467579830349944463466257978829000915485418662792848424151210104050899816357556841761332397024018909238828826134116415443530011046976404038561926713296124621147372075967415723524980344709191379047078668513985809175734606739863268406765008016998375505349719586627502428749834558357930056186565947730351112773350445227491268254734631397900735134124026112763740463193320086703496060526105218971776516492365293504501404662413341749879521441041042578181554778372363881510158409698528167055215126483508862459512928201292779111676640544413195789188553561491787971807420219862063111698013121869916310738145746354793922720448216487381194505661830825907469695508564895326436384455087984085021589129225556547081749503559504444334938336060526516799844919564213082158336577462015548173403569955450161580927862104730656244424839331132823701369289925882382373455497795170949087591224133030461273345555779859229819366025113534661195676451623666639567168179163414880374792710003684950935578689507449289334971581567873814022083533119330431975123499134831201812735505397276109010658014369889208727660516620400157679941821334829334599132895177389520128166850929083897557248615530572902155132719845973959833984531071911813026052486236189246228959101385654523111207195517338819749576362776234257172408209920507382221660409296816287489219370709063753656321715917996168540397934384735315212411128403999317653502630567329963218728721570199458137832765171896030296340753169409147500023037592106596300803046347572259295167058333246749759113091724825485935531600234265919767451519010427387409595432097463557834116183592611533064181246842843835262688711660119571025885870001404622141392853791855032998859736137114062589385445765136089173772114046498727487488462514565030626973448021318453279936081128908197502543593509513870328307771867866626706208426842262034148851458722821948523033671593572414768407839946216150290151855476391738235342170179031967404529070963361979229769770228696924143342804119712383556618761967721296861648543075625053004160820001855638549400728905896100510569769333432549046765770449087694404795775747501859142449019261922382931702650647388934934404688793852288004092728903287038524746310686539035957311858696694523833495416652741926812260578378911015563696434768447756039289916027910788233117828875128645128771873706195278470458892707953109838001620990603457340652517302690679785051006864056104631585417028066932705275073896293849973238545112390985172054594585756929347243149237291081823345890670992137824801781608558639140384582685111147392289642362764416806148437554920248546346720061642103930244705755689553648739593410998743735425586317994605802154710232024560023638922373165180582184740311635838964896097159085924786587250192063011409702841130081421566373822413720994066554564117460510848808247790411464043968083402184365323396792933530390271856216609722388749651970902296688008310121385160285965037579278254885004774128807127045235225382404562983088543413557808998355673593504761758766881731175905432575756561822354757857302744535432583607903596417581415063984997518450348347365673670877447518243533666548310957615050349823578969713682153383921289335267024945059931588271502686374225914307147997213171811265013956213504646510650878900149886161122741462698979218501207669902962518616807639910929326286525670874891826597260401164966832906411840111801181017398064466641086096639661030587474277346486651830818948850591804657665433406121854278810949016737127211876917552360943957135596455439058589315699790099218161929967879108018811720292433642766280200969164377839932748811759410954633638314742415902946192984529487851695349414438378782057522906704322330655409922378611626660983701447829737420940322960781264202318800363933021495411122954320919208874590465497266901924419946557111447244333383948051494544431353275351712434852596354938621011948304931687629085867687021747715053208824586057008711421212767519733631306030418270550576262006595806917042943112552410525676822718096763203857185844989225159454048921724558611703092050206430633836295988273016862969715166927914244336769324025313708537640120409362431651258193201911530185856809092610257812100093956081454412208897180760227777585862653538655635578672392622598479851832230993026072486398458930719595022938589927359249167817563469332486687482529605729904340347403526680804574533796651308248717011393375045085875756231975708540611066983917782808560740303613873451055787268296369546864021996083368324102878862997339687524696380333216091189736110704102211834399717579583652643618856969927333577854065677287303351164726318885540001247146184104677629816103026968867196381057799298120523317393279362460767018919268045277170999903389530326116394820867981828993856216560849969409954771326480761175187794586068400442808759573230348191810353785006227942092141235182476187141173969777171575965713578689646317291912162345200844067224880671090273462291236589283055113276892735533083228067315785920717457331482051636832310341562769305495044107767607680587026080663480617794542594040316723484506522119227497587348551059400813351583620165406887809247196062492114089150268490407398091305855281774970824211360603461388770272382751680824047712376052283132281671914179201597298868371641625606791076973547827404804977703314720481005661295415461942388035151342340976770098160174060313205020366129239736265344316995039456502091077330180509031320282218116079522909295111392378094577870257202478051365200999561539560292861325483150280833468453108229408732403818855186518478017500654781384180608435638631021093355522460485233584556306871561864241165588986819787351474581354075872417680047468538289444809321109753734382137706698809959937119690274489811668668111174669670600840332352278221090844041473722192725670370592381909217267062767291188469043962315318593830685296963917828406635345535373013717011741312142168083451608519853312711203150598641240680436693481955271259498387788684932040633817676621946281027415160774669086809558886358540843181756104558759812470027504954296701528034666673618451839868860511309184833103751030118802978213118838441645019923037277950726005282752930080781892353407021561906685910677206202407619911485520842627541509868233674454200910062042071581653762962965469014475948752059291697123882028412888734013140471724911000983314304381708534110262981752360619367315351730973504583677001847281165361915294923735431505950445463862605008171347175705586019157297912624454770264927203900296418263775685918564002141914415760668263928667369797897490948956935806884738131173380140863125938372137893161211810819860660263940057159330914229679583616096592558465394425277298035293786083364925221114909104128429046883072043612225812746497079054195556022789216865272213873996437008102352373986280389764221321583482889866977358260305175776115654326350963410657491890660968164685990159743105690856841203332277960772508418677672577582151153931346217249759739117062099061634284163904893606036091950633245720809239804427203887750685542385811496189651094851005058898394339879018849250381495701135511196766956033607722045106249889123910962160003573270362123820584227467063156130997099826762794076089225172652955001201242062717691963112281470973653506385323446612042405587954055705076855912450692109701457804941795087120369561971553068431140185292869184172040143166158668396871314259417663973141151906964391562106707785367498488678988174298397646882161472182542752857851117636972764450605578942733510181188112591998633893156832265828140281705253081451362207680271582931699154003705520153943025774413728740191102735824040379724489659449072635507589004269098014009360197138267157540382918678040428051622730830784586758222159677416684428769773106621964288807443708002784363342766335093655590283573370908953222843542679595674784836445113613279018826703821857400611878720744820203058915540523832247204691118626203537022595944741799607152365741717227465095813523413128161343802131182269464650648913096407286289291766897422150363276127091795289582132479101794372068805985399768460881775746271592314147432128268875955215921006490045374638840684868749358479231848429567893523192480747903802220109827319449821546011867566283573533726373456375455280475575169928989658092124389973890345555879652812486218172122994769524341183962990890114578084102494039383557794266355664095515611674902103336993909973818344332102818219515759710770727077655988189676077527271109460141268888070249841868389693434235463139021237544922279641117614365822158807731445774578678586797337727619944867066737620199773441098403991169414435534122497057051056121917997472413487771423731759863055879447371968791635386322417086273074763403180929687796010445652236586030350900484027904390610547000662256771212010306044855858959859958253624310037265707692654227610845874705993507942684636681540852344285620809363161097057403419387737903641576851580319105333143242994554480075918782664268953765364575483891169385728787600457195551850417611413380119768778170368565657612524447261562394053190174270457125808274925983484151426144231843472619233768377510171686602829946470272687107402764876117611695883470412048461847257994815363508598922892399221662960600232975966538781460990885286712427367486397664408119378375445274499436377485725115042699116579031571388690397585802401239557548954268180875446398061997133411454452573775227542176987275786761292632015337889311187201032175872084541120767001667026400568317905994916060771714530395472120796870683019318905124827252958984384161793640997448839056548486010451110367214030622272459821487986856976770358006184959448976719972873794967397404444951001241419017937841843809368859698118927970534210673568194225509658307670181060536361053675842648715288798293844688536173287976022720436335947158495917119999196037321917064921541092575627890848025488758526449075115363489671640696881162280874441980958932028129634739718533692705015087443733543329037903893092551684474454000949256173258010352969177504896808950583625740450408712876855996408225571834702157667065413153979366486243430122873028598361765073621232228989104732876477826980726817685826669829061796016516647793074872898857201408828702774912182816282299628092655209787590231825200753847028684742308662250988692504591195171339397259235735299169466350384721784067060321996210053238208455810087550330133739707779684033767947052937641601097207620506799494288337921028696722884177268508040154493471093707607349209811579026523906675799280335900963173394319459103908787957775748084356429275723818339835863081861817518166281500065925421571320320818257634290217809458802534733703354849088666844365987411079984678480128148309713077350076732935973834584198322434600683068472226308352324163978299648546700330043410673898720131531072271755464783752139597477780742081225350121466804915527707982094646483991970322762226260854247211018515153747987447015454391252544884545473281627378622246169730169184366555046879474496158282484799087026797436393537638713947230797487704645520018270200485271133768569961265706395575422301683547995477952946195899430762084370625718544211823961925696316142626233156346900008914775918983969722431249866205171419915985281883431779186869262060826672140014039299150106309089681162466734984397549778973541468582368594497247859663806987778195100887009564175840425352540719023013659279975583557317254078924308110840094038730797595392564215401074827741816194817623326353234307422047844435873697606209653221963791533575281042630059068371862752247617613106524873121410159836154714235520334448046674640868214117233029834045375144848508339902594190766587326854246972638107440911639735111253739744103281914645054586024260794479159756042240847704701266988109079566405424257400417279891706977483895102895442218934260785635296165446847253937590554827659718632044409331930024679653312046404587347594710497401138071653658420332358556740398332364591932670880478100110642004759462421533782182231218517874655627288991129912779779760952271835137153948977473405554890027687408971168161353215794875399991841537480514361713380175787021568870131626007057972443212230767728720714657417901339429946594668805645209122483994408245302927265580054133724646679346032059644318953870654211548950982841987435882660484491256425910732797548793387089347702909287095813313919467193450841905567584234100641605904309994800119957807998431204713743798184112287537837905216582223247302618227807049902002998419200348381658378937567807888847511504246833664741816828086231689657627797171999105508227265231718586713099435828758870205083257631922728069012611993975583713231389417052047228349923884895331967236534887702748309246447094048281444979649888792139304284979329343315193801698472447121241947942897184817825597205511114850607337188918969299989513267583546696354986710739701280890727676826794632067303247207585512917136681192922165834126308615043789996958121632701566442685675228159696914543932199298901475632740111057069954389665276012434490982253129290116328784010489006535612577938564616860088543396384954601803012351010558635187264135606754291758939046416021338299793657897826664357186933342233460065671485044533044430118533383473438547386532587592479548690492618842525006261708565654416894351912136568956968401852625693895123427447658782577489572347934974012817639266272947236914365380900136229571012906894396202759302174398270166893542151873281376276566660607595900022790733432410085643135542362330845960189329834754528808265333077508213133368216322978936207000087453250597712298682314236641442562297706200068152670406981414928457099598430485568180293480381936208960488912788624716797077332113094143320845792661039348569611263042129654931959487527654876018684588259581192432191090134024562190940547955035493667080271124517387318043059943622868681636919446732127097074291640984751166006619409844235920676757863475391951626294164899910670870837139751244813791505152526486601896888176137132365742042508527990573660304576010211789716732900366023053394972608076224059879887414258843451595328066385498345259948923600349868201289488330441308970722472918632705291984524365329868108864621110902831479257410547190113304923150369663555950657365441809414418533970604166931125573976478201752126868934586971952775819485375075760901823630352155860258946026470035911009052600666893149883788415666801961920911144467994512667330170037348232402314119684584488919905216662415721917100525159855730935906547515629039523160355312490863852395077707373437518230477380708445066533183155298671008106293126122259067599559537819046747874059472167010060387174293400740910133135670979627150990656456048395732236444909275911018636878220686006630379981533892538949561700718118716483295755848022814355702868451029476951177483617168828079072113907670517016052314061347668803946317796909849944162158165154232146824123620885073493945034572764092040549764850207494766226392052175865681010536867501626988614249905302505091763374631726803218919938388696039286343915311368864902610615071867293260787506854259303466627059068590350694471693733147103322880490086147026494551605915907916796109766007566701241133692449135108741129450512564067053149309714453160625757979114508733437815382015970615274611351050939806497426179369888597309555082973169114671061756116251904480995956575432528622941456762754196114469426525657881983565298908037173126823482649460977658302264390151793163826811188951114830353715150370815574241689629258650891812316671383198091527266201367976925978558388417639718653480720780286113249243025008106039833551670420383192684220150743546735362322055440677221945203260320377032763478250314896819981619275886486961376562542335691541534213063345290324480935323014725637441527889898854817592874038264474431765920771716709354698190331812700765395409237826675333769512618009666216293126937698697375131017695032328608424715970561494141158426691743976970422860155842279840513209775073572855342774581839253545359587109695217720553130375719211845248415899916310793388709671126053567422852105610808502940989616712592405270085268730400110308353308053259280840575682574394059034401902437279477875909449430199234926022916087904022758545065228914914108332362827834093766077867140519615501631034000658689409776716137288709852524418540914026201757018487095887066355673105638258523651199268772773814500419717560292271117044017665448725869876409075017608629705607778050069085431089291819011801619896244425593188739951954661850117537935944134577690255724215173748769996821060850828692495031362760651229687303465774129257261421273117460413449339544205065814458885338505098987400357073869737497339874778889041885140214505259889043885251691074472575559570804917440850255514860411225191648107546370601270859074196821797404458252325948478468531929609699389420068847110147328727975048865993551087946115884881118984481579078822944898354914293836523046787928672522669044382603889348313286052975781886366077394301230066315747769194725839945947888827602255063768045155415571589398027209763992253273727662181918359813336982440924167793705318870167118475996914647870722812379266258909220536538932898892570992245031295862715805808324783133585833892705778195082803845354540813094856288549642654220414241509370847035316236320122613517388593994053945324387427723276746571115811674489619505477432113904873630341510430572476139814570049123187460394554708101962036435812569811751237927644491328522428096125111855932873085754754382487786957999405890556025216943488323548136015016084008870947188656195840566652275479350628672655516966234919339238289923927377340741320633972158437523185750930558982033274689664765223614675194410784689986549789994329948573174687126781746410553970764305125408562973185675638331163917200336935851674105425863636669481892231667570317095540717021163632824284359253276990925716238469232478780714980830602273256833185880767326979554711037881873923197724774293318123102990330398921988419828111390012309728642924387280719070947169916158467716989747404641207112113238790093771665678215558388673241840640836482213021305077947588887618133809483214408067236445260025594341433699278170925705259930260612222044362940523191934183565572715420948913819085838906137736314256496407826618513983425323957801525583639870272308837383354319542833383383834327094918746173491625632230196415868749848463565618349862788218247401579256774757370790361199461044691799986596807679640624615906425856774467826315886947457923834669172516325826867084916302005169288764579167891609961050172924081343139302500016157801061545686366523673255784259741497836251732992031756284511214973661053715757197419544914780844017254124078849730954445288180829962676733337659987671815429411445300860489287375167495937484364580472349720887137968545739247340110843929984678830615121625716053976641661334407701203886603081880644706628053633625693373176170498784468242890456384673766029484323259472526672605586693783629923458268539992166921911381849004962445442020448194435166641939555867440199065277023552911087202814857367818384404449539284180339369948183250303133652736706595000293688622983313420145863808657730660018679324142454729938321485836823559470446993068532216158543653043582259365147259899051293870321816820573563732665247450179393762512318354891898532282514693107947151714947470546930620720086103593729345920583069153604594729916651305208292269460086668258582185226585253583173303810878736362223188445867093967160773834139863496370743108585440906854500975060876086728228801849325149832852260925285185416419445356315883487808578790171429910998602168833101764471283123620193749289505323148634784260035704995254786396980194152171812925570376938550302625269851840473626110843376629756712062033850925825683267825865666171851095643342055960997891516490535914772053956850324495215198543293302838880433516791470547938869487869230726027024742352965591153038370007960683794962215377347248149014362446305565142311967827239332936970825302209514033258871453080468297366009273541636911803627407969394614618423359561218979093224498896439875747885470734626797172050362102345028923271456074432982449117328492876565462402442747518448849088069546587673553818627661038601530549091960009842045944575822921777884041190069728248102369778203250253985283064051181491441414177211208554196942694248341856891460324854858125863705023158236606648852181993612820869020588004191204172412438793141497129660396481031571271856722887911961622093917010441063478692769006710783239096158693749443170791277804214764299208470587847172986941467122906822533364228667360404992803108179629700520674030133709932677976469545272960111871866346305422336972521223135140486331093534338172756786630705790320762859566997025402944157856814073557356616234655633223664820529637593607433910289664301924511559528719985688041039832260336768820640783356578350517191495361209682296294408034063720264250632793766056500934219606477699811462090683659919909349187398645459177238658968714461387445196547688907669991772146460805366728093922239557756700481165318280166639720047249619972929470403809617792294397373055126872388244785099775897983844569001626736336701898022546439946277323821163514309882212257878193103280343159802857035424537348849966406103467690606345408970784221512192102946743670680351821499088311970003824612818374073547539620846109399377045684648400159616996130850225411098116598955172820605343895739157752125603682737142727379795680495695538370597525250014569075217441202315900649205247697108071960733639242861784729511438674629921531671798185032302022673805097004498595348010024630661934896702233865659658874530319354519521521217579344672509455241543977812794102391706488843768255474571739982476354879135475105518193384557147808005743103465654448460647439269920334123088264409078711100243309005969603049287398129102004608173099333728338716416461296799971975447558832148135376039393650749207918788500154578848187340093906714980571269259019714456248188543876169675152736503388041575767256881606395254907713157008517111706493394871416007166898372651556412499647658341197885963235238992660809507339126072737585556463319351046987163921125859847435858614418001753849518238391207788359430620484701631987749104181578016135468842316887949503518402199219791360247080451909225294667357800274906642354731250466057435708787388029675285741692147030186385856058810748816359208117367353086621677578561826530358248820635121277278726355536920851453988781233255729944573207325792672681287920097951227900362730631576630513507405333132258103625844432495929729676589594250963000001124044293717237412158385236471564538170968184794462064676598675832709224207698340611575012169715358543228144786808546137772062864605618669385929560558757680004609394710113169268273127423494690006780994909040938270533696123924605606995353280724016951456507524732220660776781619899267511717085640922292144208755201294645308571579538424855443303076330699452519412730206757714891411335443866093905301913863858429449515338219669224562330972576605687093142584657732868359054749191879404328444325001058382089178400753844396377865637784053649072190652858651316358752750256682403536514469655912289197966078247912499972551851189887842780345401412020072343680057642661603236781016465501993514555972514663758637091090074582610824201566682016921742120700587216836785911796892636307240158388791809237071080699353675009876605392865145178967967574615659215168612587709079903479385304752682699021687157263502231992899075491818237729362678880552256363464051273075907156205261250947362649904269972965831067293293251644037452621896198354604574667777484030691609602546959128555973408412323036660350938346264943066212778481780642201571142407780326804233284954804585171024565129716949183789402753911130640728998825571249445410136250772537226481812354821179457138650017733405578553629871115642586490844727689497779406420265454147401603751822394307743521884882249059870734402152363179628208473002854988638625069503506314164132455411602617253247915501712646571450823742169902951452814731910130550328745628218664434743170337723047916001741105123436392703943039055504025501082543563035159459289793048662277098556687343814090730092266432455436124005005029260327289726694567904549599765709217456101528874253411904142991047122951518735332252091370625970050514344163531039045292696504952496011102041557909579379633226459167970528217793639852459861793356929291211614259400915897106435027933335432058840705171113802965691610519352242665573964550473918980574026494214613323882764235885326275126884789275539784039944386433579305465718900474408486437436984742187996814803974410870403946224031503786374015809843138822052594214259755810887688045364510911691630721803927647562450489729810782230306732013087137454134839588358112635748365390716377806205062687004969915626060427556188461147513723729631212817777223306912262926520744457983688713703467181544990451131250892118617342909187011496293515633775388650786257079940295082843573492171083475580008696549871007304414549991413003711799759122875393902453305422027700584398750683995973723426178286986427966220910208933301801789021531991564108336451143728576329188250553177280277862754858803208173049136029520141248177922726500022853102944413160228821763276217280399494594225886124182014933134580836476885788408090137992745321823314723156247453545038263025013337329453649336243253616836467373977806400827130576047946415561963629575038422039841330402169440215270345131461805843585094750817788761846186499682328544353653069240454346001348150423781868582408197261624198817279434875064637974019114169162732720865627537761929295759713208913427211416891122371187701909939483276135692771156892632011839839324962030409041153640773847926885315267104870092694019280214025497444314914266119446376301985942753530144598732322775448824905318359971118197792044377948191739890450303599109844423442470714390103302119267120823884466613063099871195616209381136284993317436339137139511015944187131193168306038917367737275409359844889098522712022084935525615899978460028916984303378207989142438171931157280952928408248651888398229423500166997793490713595529211183194072283873628343546815702251609619440539097199738055271815066972298494203318240198508406762919325463889891085487901339667595975461651318334348204752960409556993822952488916727847656001761213945235089737830599054977730520020020559815991959668318802466959382705858824747241508440963579665581215898682986949302482247763537922303338462661642852879285823501145163009140375400750288972886234635590860286652630144297087975305886781721197851291996134538270662880551077921395029761239198464240130999036764793714552414482340103812804668016757261860073814406790864650531193412756005118281900332219646029359282952261720540311541582916000105087357505145536455696037966820898993735877156050353980999206175370509958409201957945172008625629582004023497362517558083922897041221560149354564153926644146299909305503182521353991004221124052200689425963628926558394054331836216083969212908536122974368668147796583629495978175996282255004931410758357548301372159295422066379716595027097346514393252724777684049664968983252108687801715556277191595313644636269698463346567198035643263866745972241786806114004958185300937083090501131443589318946865790537435466111439954921875335627290786751262757263362090238352838731155676744649562246014570106678771297615288216991648239571786102346530117758136447837978397285643702046117985767027308688931847778717957094371414847962857722066303397535298594704061332282630966330695104543510500861085570926520729872121353648196808568805712054288728908842725870518048856161652210948388356769206207604831811235437414141784015053828686172595614618541768298629294572890955659427213221537697222478200819598568937417761045916469694490585116081901568583965195671407935462532051451515964669840597861602411113844161739751624095929395458791940305593583925328047032673730545874046318369832956545090419133643271298379554126141114281887001409358100587908796250475651496592636742546305973054061136420424462680018333844797645703240440694959080759673220607898256202410846294730308477362341170599130763259026990409169860910209896057777471794118510506143681218711735223876955563384670317249299049074352357227607398661257230972466900920225241709487199008449334653947625790630287934948310699591540254427141758490297011878467652549521414699459957816645877052279170133733376897488300136857826673875423016075628027400065804629590659307288995347512140988814742394707849159552251447624652302130110198398162378828608675092015503987859029762392833030592640029422435476076854569930200246768229527512493411616022063738974386654418853576132555260211516358714734469319658774247412750581654585567081636515310292758778808333446464512746206688892253894348870402616869581168204232178516154736674154401607585686871441080260266981908603097413686152711750171265296422502762336331263921059621092429931860363328405157471378840505648641287472473768745229915242203854083291718856330030749299551503147159042207588188775049952743505178478634169432991124297283303005823631761608936772865999128311009577710589624141769102916853084166831872304620040022124145351147346289261021093517941356302589396357942075106586228543064652496418993718651332784982722322515083908179694512471363994138007244292958456696372583445863838285267980466962226023369348406225837167577892623148061165624070429032340070651977082517757281327267663169334765635318284972624875828316237422933484972651306637733908030270246092043260767618764816801704513547078982184645858192380907436291078199670772187614729299384901587861819445986211979106701268676104515771620410140320276491149399951615246074791004695792507367498581801262211386423083645031693056178747827346561532882171712621762561692840998009134737110515862234562863595102408915489421795297416026223573469327727553841647822975622711494942816568023672345514215533586717287125329770593225987921620846773561620333301249709689497251608450579643872018492610345504860366947919160047635794609888275146722411815018059893380878754716902459056324093016345916540906551931860830913901684378938364805077659976800606808367143133927125366799510118367846576874917018804376227382610237613442039530041560981803516844784305233941862683891516371960090080324221521582008132243146030304812392802426781903852050389950310581924737254957138787096143157360385855969671370613302124886436100433387894188919022707371062154169446850879122909951745971338280415944828874399376401954623674983931933398021455272857000627804224669465635330136076217502848687510318295416520014798126713098443273970241328814646916675939120845841340563529595976731474698220659143776429349439116110518771546874985293709887007756577524816715981333834837060222129613482377387889065206990794643799624056463104949165843165167028080933669259575232696725971972796645702724245963404086792033068543898440754031093582300606172723989362680443039285420714251471597852719418830076667789194579261986042851467061270794910225757740459157813912644249731257157681768604924336659785433347291413773446898653062909630344658402202234786088499616724246720618649113276832323393383361145062435031381509737916947610551935900321842845851195227219854015331190482222795182155001085215277072465685818461455713806908559477116439437902672798110292590376083356316572902379891215423582113931219447060814372633330917277745370398314268879836669102798156976765855344863332413113535932584987493477293481210931226004027707175392728349792815773589555468505220885365850216340649741164343357277669785893376185745408849404308325710987749403826485058278041975901161906148232258380247009762375705355168175942211201283239179765746466409099257512783906618559653950472970490729904415627821024201056691033946045727169622074754393578925015866459239361994193082490046119068149039055239155171284468983555612315587520682993029663141354219353508895081159490168479046165375226678297033909412709433432076020282649704416346586912465186394404431232988985678918296624947115904804905267354776485355524773624300111441902750317321248985749141549127522356419023487536169013403205767682397693632858584402592960504281928472745432423992606714131389195490820491540054431105554405804439164272003453186254811435582329825478173738333694697800032508304906634924766371402110773260690683495221988931904934426821415073754181829238043565634917867357998123569743926560679202449175282080234320005264984200554967906182488599782212083244372840487112209819277226229453653627989518624520306437368850781606246553586907567540986295185942913002170995726920642964668099916842243665389237109545755813598851011689394490008561879933339980911019603975994498015865151998504949693454138437556919551821445654803202026785496158456646129116708092718901105475311696439697382853583552247001066583511619988588587123663173203885774495420955758672858507088629878602639773286019982302655487310496442399601200219209473780225595933472684218644677230489347142057066428364669422638671595673399890308831133581207062318541036157781435444275716920929903349745596301389709399749955521597626242803323128433630277108803570120136343143145475621237539294875026867806143355521889913117115301736156650929444922539320512989630152564813476454414573345967791195157408264159721029697535323847181905000170930434795320897843959450072025551731841494836648238638534792176807911120023907945151683455245505465573031549962489951296104553971893131814105236126241568062069572291086160927870412230909397734300999398814319927816007791866164930211039923365324754003381387620437754271453107729619819846177639464495432980013407403426585782065835810335723518632475770374149786962712381997218801130200616467798025989229325127216536699073042185426276456626618842072964066578487684178689607549012374395374449591454327465000731909810014508189867581066746833034086633433943693213620135521102496993865865214104975597569136394617202010001445486645668871235369456547466253484665720771563867333189148267492489565297106071718558155548407200880833974022236640492702124587321426004886817268013933728502086301741116597446410827208782022929153555959643890749134722868503899578213328514729676531577989842241279178867858620752657587076295559829644716739844706077991406168993933743686779308842714465894416959466933416207559956180977760883987636832436307783900307037240114352315192677071097769379917332642909638284483283732155348043741235680329635534737154703642184717349653081842502222934221289443430584465576972609556179190219276277942331437998613979378977200578932134001017966979884454962395209686601043973537188885944318311233284645987735762639187806202890684878836150905979056272239575341813050261557553396784155599712975248017221317442290885246067249587048735789224170400049292304931251051190175772814870472344468711578750677619292037860978522673711576759393155915646709516343773716145985332623801143525285572732685070661326815054366795988743974569693508488722350643695195063028576691829343045464052024575126238289110680307205489498725960107655752651212360839111757016937985491369329291311344886291841365390285437013490286268231113403441484698714968415335491419989999268611447301008406378103017386856579606399615192841006919886985120031093923493236606549010855360771818631201893744273804095813415250746265149964463801103357496579965564073287200033019971961910221698066716225427965060498164894449901892075384316521276323869763248333873006830819432199899651327967693416189232258878390267487171700739905406127666180105127539559204655128849588192771291915206085624412086242368209079970851795149146898047294015758185885296400884029128239742520841034526490453281186462416906987957207687776575102155093687090875446554347327169457140905704762246704426189345762218016600758017224998784161246766681263802626324655576313559409840691889262519938372158285864409845498708606879894604999048827355367359205309467994601907013308576323279445297588515268109185585244144902626803497373599828408138617113723986625852283740768449411633513041878299523160155380234907149068397578166150633701774351012768063736447481086754696135399239814851387924803178093702630024250146914556967161677731977578233776334609607238592139678610792818737546819196948307301033345594092351628432297842981533538355587503800115527546263069502182956320096162251806652888091699918296031722944768711261275295154687052336297198131124196488089904575639049132641457153312664892856828823982293289695343580869380557909563944744337229962112521895056094203561355270797553099701962831973941676018699845769146910865535308571474188839828038795490215175536868441880695318024674533859819027326779099691703715766132005434877770761635381203181901861886021481492649249284708908022985514356890471451299443103402096168128915426562295573978774680896871502346501207595407012778440861650725522580976318141862922736136385637713395541195348681603750954609977658273830712425225149077938818316970300736917270310744582946216590416359964212848792845882254355076649273442976609492898426809096654280673272130303425215924044146314354170184958350714279252505700619263494976324593881740047851531442270193352584565028546055655264748291184827145143765362281847319515389879586661513555507782654555746429073765607425075139838973677687943244778532014189660492619310886181341195717637188646470967768089319104867912113312154545237280141095714188481675155789721296022365454192972176705426759706597659227427158989022935824049658828709106205295121000152855107457035064016080396844446738276519939082428623811965184544409374415403872887066775248628311665887648321823583204570152516430526921907040069233284540576506532547691197269965008835942073502823683546284508087915055443788694761484774419039318821877636557335889115824192379400309226469960194555558725451973262636391736839904395090353756142563710804047970846790974827564987169615646045218768142118833471336396124659310674343903105903115386860612654978902623760428283703554995924866490136755556460806717170904141966991243208265670029460419530876924705641032234338036518459082588344545257476353677733294041339751062024492916411232306356820594827760046038633986898411445249168207510810874917229233704349871787317705340080291582833228104298045355732865037730611836253510253876807249635476785455108398243504039051257113303566463680886096221592071130297677590094900328978487821959298041993895955199710024248437297553356938906688807094926206348540793981729358524625988302873744868799366154061342193550443018819880463933580891765871536267888320430909073145993216196362868876345267900450097982510574489966159598807308736693020614947419902808694612148348272178372873121849639468685893134934097637356333296941311620377393132574088752580645508563991238871035720513963778246386957078087268090127208437738118478356359345815865759496488249790300203489277133403068386414568196571325461609083213847593348780277060685132408239166037752596960336173228124135264691504453013070499423188985971722640513161805758600873989468942166407004044530430526002057446211398206654745251688919750082013806612726897702728814701036539818305202396431152498301813705993197916480102111028562843785120483931167650113449252956661411864854862888120065946951784478502372341880297907605760722443551397370680638678626119418202477315008607160757060127021492128459971181879931066405674869652806872598872766628491898628086375926628813454601853919943114278408709557344041629681811147551496731526901178108112398474760040423583205094021612624489211304628559854976633843675865285816067905310470231148294473951508839847975438688567296886517771962120461391848767069065529145093244937111196821800948982117478833926314281066636248101192724279938474465201492325665456071642966723783978752826163613647346498129539397316749371617678294039646126377821636729905444041223014769482611129098839052461499324632782107081856432217627016610708601161859433697367962553211422030348427303627244123432723272168705799636233656175350624128633330485283182325359250537532344152264710420576622294720517562431902559753655780578444872745774063435870030273368708123861598638857754973250919649196414687308227792852828875856489759495404446157610866515613658772348315127800334801380251442350963988181773537599662223098691418287489467472443763925983221654581481171811877413820090530052113348042208867707271392296222808581597295288617574367876172626039560542715745915226249284582083948204511505275019685248560510078702818713845532947750615616206767829870922085891286988217710725550245778329975058915776255142621124020779653361842452755534927974476561140941679613246089851732772399833096648818846358945155104380865773059486939086090435921597998417067001302988663924247740693421222212750306959607131857536130909673455123655224619389988143678609911222602303187529892657381955650285358105178585905452909416528964957725873866700228561898833505435933363492477515524133554762391976458467267722059488131793265348888580162959461253630025055224096295227344173176188348851989712433770834786779313339890208517934250973030030954115383373817857278699771659121005456565830169980514728734201411792640139946328636058269736216898699182108671944732174688618730754695789806107913336487528237446801470169456275312360632828751091759019742683463871271519507994534791762110992656743687048962305852658457896818481968956693094045199000149622433748750054870826184147422393530337388144450923176391670687394322282729637553620253552877947874935588652146992496640638081696606403247808796072567585684578792683891693551832552415157238355786275719972481470502746734459277762220982118773235744858603770626440638169936420312213784602954879334847088894947736946112610654455150221039777118930737789446315380230119095337055404662800203344155008058162764989838785904636486568718589981949881741264499260343593857349056872672997083375705140231121256445418894150938514463307213688674774775014418367825345045542854753600406774032353169129559808721691976632734922749241228178722062428221171919820583565935484305972548766635914732691001320235395177601193250051613076366540612187548365286800802631924441405495021554477654830702010647079162839809768584318899206413632061919257977768050446382726377162604514732161312651786721112132995620118627739662052535681288827196889666562743312452058872407147340841620903413263260289688901888379359517362117318291181578640476506919408725190518340823416114744233672577647853098559677682604603438990971579908849099473990059934650306461882028150365397968236761300132049574932723842438296083205892862634434327476133156046654610450112629720208918355749521961197476064639651266628132147578695395283314845029707015930697624744199902402749234214521172225433269767336491709215723782773810017646906283220727650842717387938273731464270189382729744348822323949492387555474165134901131470764222318855463184430197814178411818892415321064637588950462657727260139574281366010251755405983153044558191100608703937150723934256838610928786898075757239796836185112212496275728153338507936256353657345775545014021557742776209166649237193694338240857173319147380599493675659451636393802863838436682714771781986387090276784774026984752551172268385894215094456202837639757059900407396871785855000219402717499272733702534473392621485803614488620937977582256274175165298905873045423138344953475449848093553255578670429547109733213727813594100321130778574229269043233631825162902836973298699829821775170698155131831976525995255939876264048021223054077531941377921171080213591947153705255682572889865991473789209469668315061051058560201852333320436373616098628011251448143135082172711410939845062872854103265448896364318878870968997814097319754743669404598492079556497191884284641873265422054386775069052933174726272580150377363940242269175713579962443471496636010926993777730126056789174242184046225729126697263004525228935727958901310249982484772949336186114993756360954788601438470083282861753176136844791076488325918584579492718128432859033057289355607743603649270354487000031691452473338248729158281145352371315147502946145714357149706973610378580972918787509980288892510651304580511995131450808872384300258496825350144107935172078030915051818452022329205833746253294752593332830842329033931447394534946668157665154128804248174598542693054307532040110248020817166756751764014610400067513260393624184019248216385742143179361110803452588153077606950244395209482981217624085689463560346688418434396610260713299082476882492788609242202366172011031160949845762500081792692793776252413342804024818184142485883908753886816988268352379459865980512741763470023586767381882014581115597845397357312850225278288789091168545643614313850199983834775756504882199148356366881915381652910643662561180269478186502494818036515157199185666019540778214116722220945932740871765219603550513992755505150502574716064839357272627907298480287755814103671492873531626000506126132649653201465505377904900233749600863689210500487675998062906077723243845906266292146425615808139193372119853044045012204095863923186564877566613060745404005458715837262824881931435997482709602207350984836210724116055405747953943020895093551042248503892833964546317799527431723581006581678981736746838518844166496591040894752060910738142545137912166538109454054109972342993610969283871865261317777663253784560278685390127928727255138743155553910120683725923044905437068579873237729457941559490085996494688239223200960987503020345969447955285921855871102063481776541069708769385931914013089577373163206358494365632584494419306937991843553565948206396557833535904269662259464003150615251159157619022608189100653321125524561867627046734203516173204921644012104947531779250928727998071474625299304162602004301870299909552377363969133346531798892157463816231912730083715175439757474858384908112350672003408217793501815308469754527401160831927844692301457542740741359854242344991773928394196407218092474654199946525714751354613594156209076881998527743875854746479690439651452482522676937234284836828602951198788566883501715097137171204650984816696683056632094415008627201300100215741278442377589414292117598829675206738115094845253730487372496932056392488718816117729915547752843986154034179182802793800711295799546411963750997347704062123911916888688221202557354952405939638095839399907819657544429207204545286185818473990104962016164339974259069476298214084067639443025051386350371554525100023133209220316908353462681819433627201684741972080588080183023226724503009604681328066123481285067289649577734921364474709286004041754513899179651027347766319542644848058293469290245915993894657109123229499550176433285604913024265614036002570378354636027172110259672094424748397515350199070975324780929726061127407820159913259696596630798029247139882996204290369848064839266160032768890307321276794010093665846134235999447495899538067021872590117653360325195753231013232630587297690164206781823144037166940168959097803281183980558242867859690252706947351884239070323118119917889726492471561244925255423776663740012516954463790706610820727455833247567541801671759489628194477480773589762963692216329092290310614316316406537917366494227304202603198847938900950993874121271326755999708181254474461948292600966361277892918959533795145846860259646903738621326535234482320103440979987874096197218959008758402703189885252578885162222806197834277911799375936620513632782421628162994255706749591736760011289847922284021563068045471115396015819179618462271108720977405799337672169693058603894374011077571578212472444743767930586850371987177506627186074705882402663943557167841074959084361582920865836043008234950345260495602242375911329560525204250148359643751364783629185672797574695760070887984001296224118955312688919621518344653097786464089099529473972887990088142430675655306752061865607673482556842281494318156523020653457385831275312027523875213300057640005309782167790630123127205427377125515919943674579597794475721918605727132064462378912835013478628751331309636360440635930801230046194763307120341279468281428970935588577871121263583260413416599646279025488401177999820078902711204496418024394312710004997701841730398150455095756484134752253265500993836231678037005720941762589875662505897317114464916893452210377568211348598472322266992192003333811556452558483842340270728467978532978180192085831788159452785084242248411922709696703611543633208880230859967475701436199681178617091230332773985259679469686007986913369056271103614462319784270100097395129946808059642503186449370168498568573510301265057425527765162294203954660860398642040979898024160735604163231210544187551096914593365051210106523475933258241014456977682679074152957407345389693177614695893516261980834678164566258202123665056869415008866102594441434797184802928763299493523415108563255024726746334180437870032396425793395461158173736074073695549912112753786140734009073643276588745729536602629272648660845842921209176583736442115815230985359284369087540213138526046246712273310919918379704287123773575121508057114502387135021232047381503317110697924471161973661567065612608075449712250072796617248514161063466902443164478591539106096288521116976164759985373427562206620566584807328739574761529349142759547340558493863821341493977039368086936277876228767428690669194941551419232538598150757391920757238751449712934074915294311570414472892579080803040875624163603203740367757532957073552709955234916424325975107345020522347945876038248387028973624970356230360802671910243107584161907730531485476036979838429422844034816979796916126984851212971536921007246366351623057984515555259748057819345786563437013106199345435040508799029109066658746854784014438043431472555029925562621270088789946209611610383364169110457970081528628871611495387972263960704244228791273159872792611350815948921392828918287739891495639685826898654908207407082736320153747554696006958377749583077785923713707972261109377116983230376513075867996064395513101276402998618294340521802096665685445433645536677909558545934781764098536236452354558978488401361806800484741924334759416756704060992429094073712477083832363277762570740821514875892899091793186853730272319839147161585648592656873130034605928100620569745393843962299733262152292247319172655724000264772261575100788694227794974989715054131138099148340726835988854968807987657738738297961451663817706678722372857353936760427879635088844274294721677885732780655680659706645497113879098088468647188771024767903690619531476838850493343877183813055462445723058315779010262577862706788642806321539905141454049078788298449294325547418591640613044189270932650460243298338894865785283759328855801301243716164704294062673929334045227877875355884344923272505239750973723167422004674084628366886044606843640561355804207048925752358296802427713259708345106609101562136430830105273251562796543273113788949360473092474538778863794249086670500584089425073005927567842155501792124282818055298320924335117399390090470803502993237189458681189078528404414645996802758446241443483142762508471279172800887042239282990078026179723610835359001560692995897859628389549919266080165577247644489162130744356425777490109677807024131065282260610155560562675605276626063801774256844334291157233896123537122807220440654170924074719987793373726970394806252445500782463980102213049692208213303010762992555759159073022339376282226246441304213265889155858054450547355853586832372197768927873866845824199455017396386207303378918211261195936020058696572495534595554084490733902922897303073678478554249308671281571986885899298153446777720899610889668724852364950486060082556597935901660825034953110801686100568788444590458579088645299996847030396399862519573272001440062245499016132435974281392906307680668832116631148094245775998671281186020815776331136656127398796872609716963825743593060835924435999367048601388889199083121316115126490934378272915345150671437538068497513739012022201300490613929290015322597310129953503389812550487241507763622036202367694684017714422257107316137398340652655633772184643271851765265813060746444484203482438214332368156315773539629217781441176490969234874865173592386443645951940561603475947364868589132183668563354504439572147762272381348356954177002584972799575095084238605667939191790273916336893076254188975614442544010985934805163519693059022511485964595298488235449744740701231071250187177118416241957694590198380612592141747997286879893440979385629469221084965321947199893614589499640624914134178326020290380793708015117710682431633648288051976426564511855175698671036101403222885909538955057463620771876361554233925705787063001128390124771340327978668959165444312797790449246477339511035417112678474329508472467651505460061283131180580446811066411714910213200597150411109448912245362662909211853588669982046618717949328129912681992466762157840272690537860493598571811637091998665179874116922338251540416093110749477692536075139539086751384243652926568892478572815881850006107566970580441090072746501865795062351038927434751812115007074069607606189720046862837992476417446163218401224927155101739897215451621732182327411698887530173695152811067732332925317264777045262866861019991303281690128159245679716857002241444222446085874392856266887998407762853635936217567208832420272643422852141171921026030271886420589150658652014769882061531440841051307683712277564574313782780725214048039118364628136898547656132909722533940352614212576588965654569484294956128236561268549543754395483393901179380247967719146573045333496088777069271581395385508668168198894302365289016848732685341376506926448816360881188487788208335915894440994464728862305797974733857555544819934271417994719335577801951627943121040504966048202417903452820146280052331394334284315547694692558109529252833612346654285453110117828446651128646490700957237302601888932894504452584227558230236232738344387027470663878516537164848728888253733505235141925624442877766391214212550407224853546707159138505100205708562008856080387117515050447513404613110057148397609565781919479874518949026534866518144530491946611787463286377072950553422509869760402908588877761379459655963186766124329995746620526767394374506277708986373193411786128883314734367057571291937833687084177186775642340583480815551511250256144419287727079914127081584459910280732303351137063076680969011499569623290201089544737704866300341296347933012580607408925603313383310972213018755483117017305908781631780547087430174417279965702099966599956116272054221427189774848084759211180031067432267744481502244931414529428024939040842463268230193573368583897787338597219840441335452954053566216164507028359643700659162537394202988657822188039361707143877402612104925969331732882741043967769077482916735009994742568081163663135035536727829636382850949342102147217803474275489150845835330472083970895209176504952151456475548036753635401558255704112187458999494202321965131066859232963616827531846063486325093765011461076125381341037760733174248721286557381145312650916862427974300711498921119295691506809327726254485335879351004398345297057229509463789546679510646470839506781378759718052601412755477419198864215680729888817036333011944257274162914060931904876502387977725605729108368914513327849892964720437118900375751668571888980592154617339719491251081964920826351885280132530544647277879974163367440829294545558015333958898040202915893115747249559678491371864065424369788528784614885984919355539553356414280075214041556822512802584891028990111805035476181594299903660748797276789489674594264654099486825180114467164259973339303786983513083588201692301356613446906636461375476191580510107896967838286999473872087755659861331293675342438640072852121758958974534903236098299115005453069395883565474998882749433937785749241033147256357352678415065896117585777613285761747443367067456039265146306576636440501926230113544156339799081218890326329742601444060618947377655618061174033687458041349085495188579210855955156947360374276970867998330116298746922902901235064975754182163884464373497472935649468561834467462989482313837239407384762032921539300783472901560485968800132310938703993502310143194312300624038989718661357784185461574842568313897881914215253366092489201223827608322317016982887555378023776370857106169289563207847932118218535972090522838409584818171029541268484617046301487471071759439582465548174907044007536251917529202589367827527285379303174546699505847670263424976673306272634602400037329011451080793479550742532224023263466235142168741625216284493688818751477301244076643079902451102068390738678071947017498895604311706398441175559453234325129610208405875613337550172802786606986094111952096257308048541734580939700226693064702648680278216911308576880372010002329570130318304957486452656204345584588644482297764491965786325261648964179676679348546438261828745360503881156327247495919632656284992529413858832657719189783903488015947191147116691914903830781001388743079950786138257338833984118273197414469882021488596018671127210046947118443653016015879088299728486531251831234355329664704587841340258700974762653517898767636882645732968688803321075025748912857310447795787247382010033653655101071171609458762616772100363241906487887445651493622261463146259780477101638797731739097780796243555769912334491898395887609974204722468986177561448602589182476810459099824310321033003003371749010185215845998369748545037087863284849136684980782805918568333552426496585236407943836984694074827821908965255461068287388321980874294715956726586662911542668898111185275135214934535818207416443931085537188308034842721390716041686104127485258361559149070702678573830705946034514707074362433368764638014860799722992940791041885835434072509556543925884997984945973535202248727253034993134109915194930807431958614931896552834986517038410521319745016433479066467786087700991178523618807360223812679472501038946339142801101682751172358236119290997621503858283387666387179196523037940028042871108188457441751805469293413794489646367061588235344196654015857438394324148224119250840969887067124039251064163768657227162837709415845835950363221533058415322734443913227133087216273039781441929791570271269151508978993809125054018304199315583624141594349802381409384950656884233425747831047922300194034226429884820512008922276103720564205435761603726664371320155110436332903026765074474486770363244079209293020498416439632783702503392921035857888051205855733359564512700417600240636251645683503311362475506718930843896757515144370502195178327755886768937913544841838655248553040262238857803236774214317956196060795887328185274999177145594391976888587363803274417685706584977539655224228722266299131726033353887860285551753987858360263954768463896490738374587242475088689172042631685844774921237661921385389226128073128747438602780174425714498135352369543090739677778174694532756358861922401495433795873224230222216752265707152779051810888998838093495065756925987525534819221857789253043043718392096140220838333028149296736229653939331352406579941953148364585118126203525771615873367653849647433785064995568031552549598833476307398324916644243224969405722607054730048910082013552462705328477301580888323408431501782397311029638736142655715487312032089037599521747044252826925745853606303492677063889153684434007692566028117979866195956641981179601998410613843411879854000204472807323965531050507495794322063046935870707524128196884846757995698294298447111133066452253762186225088842282069101120275499730276185107407981919852710649592003099620851375700179320390266372626254443019885417452552493153275077209164053515704678199575682825096317897377536369277585444971606643393189471306975450884563157239012315556106374721946534214226341870059731335025272867957887700883282831206036040211155444671397321018887430173590054362585272156415239894729523169948151861094277415916893457417342395617699293928063833439985250600972106420905000133344015058587018467292333033931882823145630119285294278807877215459617542425230725878675049226708630798669292745920057388830347613745900359553843378940248544694168387680555294959157065023730160505816585838076739789555069551471215047509324354127607448653766158846086517738879213735182532182820477352955264186729320718076720579363052184826823386771092938137481271493602537752083757431380883197635906089634764267728141745788439827588434465569526648016299805645552779749534840194404482961792500141548541879360504447283685963498607274217537650024834361524479333325629395756785346706373106472483450584005281083388855845289937288762800463461556494549392879720558054611516091755748586627403615217374336251259895355431689039896615660516167000519681267260240071990219493926774497377766134610167792853870222263478493348188170357022565382567792660030244266538011630368401447877540867008260056467179684581346213387632895328053347815654770834060601417499530479131258968964543935390374601283416668200014908249182783899926609855414878944859148210919010963949249894176039795764008312803026894566372979590587044315197181561297491514449957272123936772714887194190853166068160354025009335558326704614541987836854689545247778000737517435116652496238921428498144967066644334816250678861229315812753668958421551682744437190091054063688634224348688441388115736604626276352464611501995813410111249799023276175015180604029202663623633572671615097462571958411600556259073853205500113073281438530726012444488530054625240823456090806628366582077702769226056797057487407077238530116117794361789525400189082523971788443383849631336318374381168008451697479570188008604602876470723456091611011687914287237760266794030165622692468431089531145227476634398191277702459847742622917282731201538972075318995207988669988103542446682242493725330143196582101505178694187961576853331856323364837467369075860616574584843505601159682023065267070204220546564088276565147798274572226753455570946914428802380722793559136566117312786668286973370931697116433716916027216569113588276225574906448991415054764480314509484461517932186305343985013086335935742822156045360811057743394194747088548227884470518577857020683612451679307850177594312767954911264901752499491064341447861101626997552889327887779809456802011233305809852189404928688829298848672497610197656800605239811233609828722514601855135947181072546781827571630560774124076864344647074415683284834528470235348699996853012022401943527565158781876904146582143623071683175522880853584372076846624236381297074197997472202829648722363405751229078373623195828925893485001734673296931700404002312974638316235221623849036783444696885871767702898952850528754804265919820984119204267894917881681554282839019594703675243812998176875995188311421630631133805755813730120807389240966094815864785019935264831050944265766818579599388522650172039614398075549280610860109104153095237278161298939006846232697443780465282012811444879997839647430632271461402020166806583489094833675711389950340659981043614974491872311692423121832827119248391003504014456860579748029991083006129624256002842451508391172957209265682881340808954410541024585607148385691244964457609721996535013928051879480049239856546703419284088569359516310649284943085784947712967417306490653213859065272443242701956924567432608934062968372345250879252930001349844276784877644194935275562639068693904889610935802524630727115658895577095872007505963224739573890258968890224786767249252390536574974965822388968948553442629467442750366732011956770943832924991124105806193597532595196189138131945632130488079853086075903936150352346050498939827430855166438499372872641089534059272335736759397695793648925553728566002613917900490684330799459771773442081324708200818031172767265725622611218191133258612539287299452545301144195628582060722823171126305927665233096000212973311829405095152032111321477081667889546160074554386151345535352978451714452103283871327477594658169703829483432085815655667394461673946652743843427054685334488701774664937815378958127837000046295156945117678626423757421732410642089849703589564702989572738916452317626915807500553686725945227226508233333526737441829862654477161510176498391940143313352600138437134426547710091547779624402551274707223541733553260854830949469483770613853836690298151225669385635533317032577892867614739725200389448950020280644680591422769446555807868977558791466670887369341840826921106144792644360579967980988595550607354101081023780408725726949389494107236344753385328499124416400728276631498210160281917702484416946304682382925928020693291045973119950073445048572099903417332947842574843462702230475372363101067680852301138935554254059728577503082100618092683725589888282346500650880536657611430175725454561099728925269077588703371757187513950251170507031970349439459941913155925837142300450616550564214950764580050618135208344952924727535431831639797738757111452130707329006524514123283845819565205814656660129198362279736552197478422983198715508567422213874259508435573925021881321295563417670375565301874602015140125393081396666853227966999072572895903907778369696934499045879281406434375640625640922877181575752815756496908040348264899020923059846209440813425528779902704349208413774785483583418156395778580655304676935599496316954087735447200516522559908037022490479241797273035558864875405116003608423379429873268449859691745899934278978493573457160484286872482772248501782899301494937171289543935617702180006196910955139864564908707620354476254974342092814202221887140086129911293205899093579126632984032087091573774428369224115843824308887455326658316582235358126468839859733101889972163039531579565716445325377005435593457331235616365269102971968121825124312373621443984128307834003932401091425506814864455910231329610173684128462335907731384337788375433327455793611424510615582424870927311123405572632340967722864752533635101884833753724315663961136296099029813784726068329458345400952396501696032341147137414906463684492175635014375400484396840422036394403217742548688916787125123652963526024855236920477062171220469539308810785203693561787687885334103773865938651054007493151340279892302513670406362993731351952953007919579247061631822569482622188627748582622621592336006662332143406527341380828704948763611641844094166498563794250347967925531709041555539115159859292568681189801594857007502899429624852795505171944476591852965720516481089003842341040878969205420172675550722899299768642160667015109377859635594149750530957189196994208191768078972703686239596536223170890518187931480649157503314384670344350986288997744110324419239474429215626443325760833952830291315945148529869763869412955257553294203221578135173860215892767872763989978368064627458316055397270850898268990417329037889317632965317358279699752098766397232324320101560825719097995443543407078593672169188503763555085055867398828037761424805650063764305171615508292664871945827814973500047308957230051037701354654981282595852994452316461809155963028583113121968786593745547015888708467950545198727333036961387236115443291556572762983292997119845431565284084928166100529208420756045504148966290112075112211015454217762266030678994577867054481637073814868200791421692063837948053239448885297882074688893471447158831842182690516823347791173897300880661951533073405386450580786396887653819173203259305493735809994920733637859928748237297019365189325412613325186534169976601882498122214462485570769729159880210373589905634476557335892955337203533643813890922224989008076081513670653523474973989848369929509580013990686739417651447259456688982049661722492827638139546994524410492096335161685924669095970388482494000519846942998438068729417641978444388227695606846921809281538817685424083682817985264808718718408646448071363339953251216990688170231510896558026510379967717352694259777283715931318679877112434509278916167099030796515782765787303588286405645114530568650712868485107170725918846487633522521832405566278322605365961030950727236357923559933943051275351540614701514200958992767088628331306808782381803515808100252202276766026848035052055613800236175730623801090097947989300612323323848904847778393087124429541523046094682514107197229268376888175364031869565282224790003982452646052745131277562434852582885823674342566722856288496736860725259398420435384101011061669650113952976069139572848267332221655926732016361190207696914283162455623947019292730044574419833212053172490231278928975864936852988796307678646581849321318519526165227825093029703384817635650443174274567757430623854844952641981032853614556188181595926324974732933470327468090998107286016404225025624646641620484393564628335228655625889387391010672692780248668428152938369257386260013977832045690544124491845393150955788914010644744330493004642312961146105192342460284037713287890825793721690044643040931243611377473676804563985186759597385715792284424702140052010034220662441984870932981954328157634803718124027401029532500108942889393909813279876021756202551846143749759321739270527085315489773404469819544965808404117169869572878544559112309235487785640717951629723834266944187817046088165933743545038696867842369166884934853774909120352977989584790309595508460960436475270939181472601362761822312570051229052872482288664482560882361315801115613174362477107643199895018702659869913951932035884654033367898124873400944269906082802075048576384906864438935643000936721087762340289329681964111872479232107042706640022767103151894108146418656773843557466012129858527035396543549593756560295966159076358775514740929892265961003730300783035115520413600468526634014136953096618435412887995081532653990070973605014131059854369836744148129134780852594569016976565989663762316493609549679751189307218803780226458141686069470472014820669144995756742597439942734233248512746782852307979769709335312106272129928577586659094170885033386036599249862298284747479823571955341594218959781920227222890405386586203318768207690396339879540809944698673263821469891470666275236182232260745962899886380887995293411140980431573784027054721365544227392733824271825813371083119561658372212951431983778395497968546415991273070773556232518799115262527534528833719284530353951812973796632337810529277494421407331110210235792182492275354762986873492408074817391006981033289716367005819023763428539618725508656811734288030978855947490022205473121605655417157358062001281532421287149368601618986593101303161752694895659169013874185923015849361529130708645117358868582898317825848380871931963329326765171509115839577951502856365816655051351789156608381918552744788651250464852515519114388895206146160869523698812915809624088051479689322165462199963950298591402155845221394510079434920223911772705248364784248124200645019742517896995179367087734259763496382177657628842885548626140066602275975170434956730076094062612076696618334626430755282444484992792424511448527045736092112875993667781994644943388617546140149539855001322106778122163298429769047729417863389744712024132394569603190340311412751522235653471067571368676802281863934402459363389636128502742531936832012055269280250217701385903976372578105343669838038941662996611812822042529466588322383540692802695396157092128670926451433554322242220418731654401566185525167275949108739511227448346530729342441720637537490597346190571193062904503113544034855850530990016023480869291707449630920256781062896478516789240275130577635555964281462151473231271026379198717474099070219505711709034848506734001484554964170482270914246066264290477251444572665728920899159227770827120679444865455498005784567579778585885646951363694506326076610035585775417136757681954742248404584168333881815286219912323068600561373077114768904263090913513043949977904762809614279240876205126485434542180625449174955778846961269195454523181037335445344574685729347355264308029062559822575417185832926180609091727322283072796017837820363015363824866934779540148439990679051254097412875248544630964223562208467487172666671241288234280888176979638336215679145546519907880967311442422931467846808288645584619830064299346423016746515052449563111910196834637020885225654666023447663739411564248318153581407929888557596608091269173297461868022862850847614008319675977908657901569795294759464632592477314015475846274673290685124745695795806126216849065480836937624457485138529380107641258778471265096393007326198000506440548117539772016975313875534338505572556671922187687702073736240643879430809272526392440047505223844482277107978522596011438855913790380573393226077361565024155635276620585014281617666657228910116107450161149928181039975593380476038080167310544388651148349699237788769465332464195236343910063967809849875964690167613560098337783270967114347659877458276630660286643172630025705434172955285730493493032789392162536307345898973521406756996017963544092130741676842793281407322524844651718591068541402004903324887962367198342812726391421821317361610637350961698107024865759814626691615722134931166201925816214336673702241762278382471646873117037508598349810999129368096808589766290446962055031231084075045821555498965575020010517886862908297365100820256263824885826004931346102242090876318525751936414541591494681731388726101614868395921551985366716429617078207186784927338289347226415972663844557794210390383486550912608937225514063130029518865553838799234430394593164902117191924022917268785660708678638694448160244366446986379715764445579658401049322925222242876932900154064545028430885618587227144875415249294407237614793614896796785478449990508150913138814808030572134615470136456856605186229009582775599103357212356132705874795658196934912827198103911674120411971427817859267022408463806063693095724433134920973419729066243854488154226278782353417910484634363049915498759151755036487514624040031126090032921363821123395756696729891161883652632215727002734921795678739225129392675915409373253912613800779067371538971534069965542803598733994386650824742781077018398361435357266004044669413750337946541603665011882586156042974101674657464788857789613896506434833597966085935698381442968815440172231577379060379243870528974266066596381939687019466275490242147263745354550755679729685452109932725631654449078485659487466435708787806933262318935645956513105177142604602242143794186591576184728309426092727689749566084839830092365878702339797105259582876379929482904540106084104696914930180190221863916392419222364101414732274791825859592006745372413941641892524372721850958226875001521969179267456013012333597067056520439856628629905308890525582265209493214720709746074181942515235721297459069954948798913710557077483742558864072511892844019273769727876415259586937203043887823123581185823476449892279904778112644446478064005928213914906169947165113003850927423433929060009740874656466300070065681852455661990545738517543455107240527511326492808315558081958165016625546244440942393334638818406845260517863754007109285147310908075005217212331849781894449934332266635441901235191417579720283508892653241421675634074267702225918795159872641807780728895948923442176946937603474807875010786605850519377592420286197663106662827783882838385705043928154816140539719651412293645380325872271997121999525832957861182264634645022341269162843798782578153533662610267592514879092723706342966469955068761358486909588765681006088292030959362366284054871259898278037894811551785825715250995698994309076612635419474566661438597515537594665764341872369811367865924409209925719258931713510771546437261091601982121314712688853941665959935278367400319910938673352299315781604254287884171729128766052147906270340498088524036537692297158581921248491036440602479323819971055221830298906142083949018249355733241047097235952385551702680279082539192646617147420933215974787426275137229980808748474837693121128317676263367539300648871662735305687534290456054023101740698910394525284672158974986081187170071338687938309167398625621661849780578734380181582758141680611960741600969516011942641726057277145485167477198679221014916056472271445404142562971734685156861065891008157835763218230183371699430192350861861361368314927132001281815780913097362774627941325949220703087741940945248509923974815546810722832225997003951670101962570562583563844304478717430317766658407625808978144478260540942337574474168295981195934063971202775439041260581376383937428315012343072785384653493962811146741494215940595702852672864009834248647300011682481009437752902916733637787081336473161548154178256082175197137791065546312028578320785011206821089762593441134904363315054084615787896582609672353500805202610156904482352733633584195558689387891840878881895442374491715206624922419404490512463687849686506045419749334426337790652061114925962562724707213696115001874819005475186547353930626310220102881223438466411517277985537049285757165477427790447327478570195962171350125708407680968213634690973544429376430535935393783182258961219442564176694842097084424213020641000400837102123417075060461385043453458563263382331153111296280952413867061797834222956642866212293719768105233773443665023170946668966682832969664908629091917080138291123646989619493304812073659966410314529519707950759540623033609523912886577657949780469000568586920742463467259036984377184529414532383882946752948123796429075476923830603615227853972285996999779480698748341001266749984959782784332944694934566547314788247620444745686080838885572784856706904549604126305957230860900901989114922121447482850513401740369336379175556550228201868658155137029935492505101631669359845185348049394739868013793562040792255510007915556911029619207562371276312324102415432218139283378791290379870169802369673747011009163529639588026958566984744179620673053358521696344588880744740116719459980715816732336847059365941912829725225774667183128932741424132106777333058305586261477175842394752709492849480899572644910353495557574270003313419234837562134090803004745958379124224729884049624405221742587038615257966511944082824121877030461322728702652661726199162337684165366137687936577750953621983768188400848391860382037866552733704369663824555917630295219568474584227198808380775491976357706565832686760669507849975224936370895224763954540179971236438289275395001599175336717036059294844825677779617630893172826856760808598674785464219987491313940032143255277027237298694545003064034344255117920832542506259066548386912437190810089999934274763080659294223047816299711313180155316423435644075203539334389736378612200141103265147262272957020678731353757915097982144693059140638704605022632031076548490582872949529995667494538631087173141327387515362051133342507283167581606963313037832416336404853579440875569011731154119027121757407497993826093164608288717196856415965780952058187023921240237583968091897958364840618763244830594152094875189226787855047509433931095515943071254642790027195276466071223886681708418763173410048534487716126015448411385672684524942705960248260181275825423080989837447980269656167043790845228892970492499680409496867504317160708159268363398910087324959433448386368307931485649558586421596234176105066959239024940444568098606118637149660789468433963415721149536568224840920678547117730095871573364104710135374191120004041055849820650665364865926129167056495808834027586824404154245263533611022827348259148444385524075654392391259655320936043827838751607681515711178591346809806460357238838538104424216266698247744782214626079885145687695034004915434865178952465580117219695583341350969080674274898711111775396536699339723059237367036534812270736157884096828844595945274067282613703322247663328972819404554011346895713079586044950262511425638234335762201706959684843252526689663874059266080486295791741776680493185761126995441113659224665440362378965311804966136137080612206594741461070051340481181429834874542026573630101248166032856237427453038108372134187396885243458371628922335351653694988211167676821216030336443110572745072511242903513215769379286476667303909370207574364805840106636458881078019568579581282621785130427837903050541399025084425271753456204939653326649635207371935903514228922740159588110607353236490030719088055835632850773113970966011585417210746894640470996232088186926322514944273735313612359962922606081618540006533304881194223301801709603300053293571923888055554638784843669978325413827472076228801631877926393924126074993000804966420438099338052993549885233917980788616881967487891079006428048458301785227502333253214279386639807643946366933604891054493176711484592450060607585738728234832752633257524775568483284673078584147274136637750421310685386525547663701352473323798122206795950263385135924339343473419480207533470838324980687625359832089874701686399819174423625927338532835968733887895375542033583363857385936427457468903498610700041494528338942043297355452115071809490501464730434152017192491129428308148657808725373725772443335243024150820791931396360701438402404349855116601835917920063325772669253883268555734638507106411800870014800968095173361279632407226637173101203475020676400142560256578135273153855438591821640873763661738287552758153975908784120384059574403265726740083015485382051901192965923274765881975868828678817809911777068275790814415768852036735990390831532613284600594758433962786437757407157314354167618282765788861551718691881588423678697629996030976554333184484578238767982242964685732711887576930457705274208660373001392372768847136664181005422281793798500322678125402947906056610048949526567624531431358477420136966931235420473241972656529714899774350294169460050777131231376371294595969008346833191213883272800934752781365456109515199615202013829904947987679810336800759310267864899004280605376283148886999825593121087014098000323264155264252848432196650456687924525552031047062560858341897046261786063824347022874971774175035993837224349964585872533817071210464968511492532323916240950097841977022127567154507785224668795784693943399046036274495969098879531098287676124459793000726310903635695319369201701535684656523861470710665712115676898361082936184976931859790512591481950934644904000767952852653128561410957589932231934712261041173004929924938963947421872001566933459027805857488061301770993376833151723313914804012627189513335833144352537932596910657239076898366009741006223162005242717865034004417049829942673693781225956313502816453239630335530633340227030531810929467997314404493609512861236509062753145398598822864968350319258449573852423455337150850631845217468044497812819387655530695471554755384328282448213219401657763793827386477054629761741608436524376715757180494952652234951152705075939930090812556670990677868495490862177775322130869179103146351000764974538931716918561356513828847963893038916903303968918230728716682392721890569416501997170203347566461342593434358106312388626329512537104777965918329888952640833420934014693436803040854906759453849258722670249044860585278829456700768982293270749560161764582350356129268568339740737171984905040964827026307364796667683734979572875392669887857588108774539403835442737938365426674842604899328684177266161162289176936215711870748968617410389076276265252494555521263195564327172315566316177149766598930280890075003344194497265783532564700340903016414866049046510256432346814415477550705827618180684158885841554055844563110713378385877639318817115015297283423357487015351439487340463828986197568090493070052011579641903527865141971418357468509743195159323346788060193342863797247198226637671440047402283834939007087326863388612777299035083162754304647424972039965527414638018530746775124999886524777385894267016630909540676995038629305808224920880596967570054266643365641621944913213093231736359448643756364101391147033874886636655994776206203833411695951285832303431209136501187065402554406562815157702810230313299797624443749337671909347104001941708028107221825419825218912983103698044151657952054351646019245258544236443932593923889274090243923697208534681138246545742537101327067189131728785041522709523035710423483756812669024585933665557398520986566186400036424635183609307434974519145177875774759716171141440197699115957161340705677789523308778158478406946497889128986405444971410605007101413308052610936013032423615112854193645883599941884896687106037442197995521516871770536119284719219053089089945927134857553506528676482301341346303827249981007393525322911909178464430346585534225269136759875011696414376155582221029668744979842173172586651368244237335356576942604103151875217068654636347653819194406210852119712469355905075746955403126773746511510439651349426663239429509275537173621241568433913580055737392651284003341877612082060940248068899101921739249139571978471181277502003641777762566114872213041593022325384218844140729700047401679370431489210301216698732229268652777658290874781667112675953113981524860794268624468115441060603600381318006570086422078794063203057501573704036318677698334859007061983353695318822067312752325561213716348175358765321204391587042500172440052536367360996212986772559819071759002756908704504559031775692784775401644833780742238084368511649857892190756346703476779646167193760365213778356233145849107205272393464194724782466957481598663485267496960096254856627899223647081865854327515918755849518856711357738775162340766463519743160437849387963126577290899688495292263682943593243245549642741305155455089616001913321353961966185167539114275147651998794782816226364477589616470783204603684996192361495519906570123299386387542276836555989670129579596454488218758904849034458063361696090747906888078453404742529470930124604918840251037174065585171334251731801467640003297178404068345093159205800823549771129361237595636584900188509340793438774457111783666642558447916292999894789103206516394152396629100363183212511943008640887349665204065822579354168343726997841948671152188018699343597073788332702179318422884896580905614577393705758126032775002042576737917589743942133152231503571845806747177841464195109924357870253786631098980558222895253341442364090339778951212409797922321907654621249792753424042812537953928930112983190187619824014848006305404036577272376769906568585071695626046625221524271660371442235630515746916873191418136873450893029083875105659968991288331093507618219252692494308469151286953309319983090816970724155490208009972126231131315745596708080532972446490365186894983139954127579585347715614575563114127039711369937326081573865072521505410620154302018156160221613148088846481361042165460162938636022694860230083724589171752720610343772331156299378799803979706921034350113682932092694033997581457000259235666167373521261420457680607496590787579403940006006705009289140630999281445935569947608087362334318090371847097618300665926202280428866811357369527395047814749291969483340365719511451756392847060529248758103407722053582584322232928797718311890918501007856948259728206183412843046160116129627836610063984454030866708405086085654109461510486908792200855553319799952986441958755215079675639786618680103332491268517824149246914934220111028016140063073769632509946038588732035623165127015660213514218049694708774998346667198860349426912888366032779584015644407984403376905673851702813540128237714682258190074564515060573688853704133408364315173363936576234235915298761655014711812073521402012228561857199641214133353606860047569917487761316087327588297957225882326529803492160791126148349388430036020906690751915230574425213222646352359185755979839580214602951979914622897566642525745236620637514126333430549533425801521738810950964617978007861009427094856898262490870175428375141656846394760718785552043212737290743713432814596187166967746469401859152011185575002195382061514448957755511713563386705201323244483119618648224279965075996152148183744374905495980679169530306723659763252662851232327080186929844394864184775884634439320205114073270100738793854633529038923620489653965049558624049191648278227553038949280120405214020836539313086445890059838627225276273793461562744010936034045097885771672035244304086979753826739622371482004151898112159406914042153431936204595360934280209735841518085621937176117844123390474935181695937035974214865108560981758280879168712440333144964521051959125026646812756108840689492970463708534671004413599648872932280888883075612287862550394171739799940479891566822728030998278144898390423161417192524148288252765086709389569525595009481742778429860754226174216148345539494633430581015240807287226227530273782592755212961208105707687608777042550552585617854585500821382653891189831610995321796168354417776155742823715417393002080009387381989751105417434854748213798764846715599091167748562901048084963052307681255026166125679811231325612848019186240491137415896822488427785947434834978114565251011541435192299493537635988871438594880022326889002823478345546305767120297348481377564505397522580676435294995638674873051280761822677501182813223232281084549923058213567381330800097372428586102344757829370793034210830580206872519540696943649499784751638927015646384182441259659475575697442116755036581861508923544798401077534199755873899880943730856049832265727897614333135628711256865265016262917026093912619510637148691625620689363035794344515357829148332177820726309436334012406953287730657570178177908196484091382558266490682064844370375554598128423640394650912353008981794831496880860010848126844161532412210839722183624992447080409215564546111008085221082204159149055203246469223501921762760357213186449036226262771138070393736341604377395486063614670106603393612298820862590768822710233139343771142739558424305418492349908220644308111579572316367308477221905756103685711639793488876953330504584737520773823795791000718713568334803034932130194973616558961503342143756853782519237468661487942030091977969606698231907316261526910488625776919253075123887058080520048878020606491294173251183340094952691488334458562761463522298987107814508510408594677858904956654046957273381455879900425136216548313416166211631803414158985120276902429444465130928786944058868915840728478421756562185776761219906016581555055238509028053893215868977407537143857942923967960785597743520508745039986558427148248703705225217806225978747262921675027649508392258403260879600662468015368106909690702727269778903447502783509998232646808021771689011666302162278158111893988419947962149073151652100667459306883625165197133620482224682352494063188362892855300489912317847697228414100803721019977366123555173467695019908407023252889898851009510716190940626891729048930360516308738943463740658067937951003210808918418807047875697937526655243975628881141294944986255511881666207773927784205934206936712775634631535437594529582629669899383151000361428554854482280187948387135742573896427286905385453101199945996978660544656976041710845990298428105208657378677166522314138288731615842047482139569698879718327576303975011854401081711281147823486479154858462706664103185502938550712347042433025851786729038540602604374349833747179004945347904655673419151952264776625630329041407675122186453803188576423190825552369119489262173721808886978862858022284812470807717224076789671718152580080165905020993580146498678268792007920658812422075366803074075241451213939853524001720702895650864421815434968429687683634389824355576666883784913288431406657635688459863354460634509790728968462439060002171129012629320548687264597502086590850869347602941309295539251121960825815145626876149487775515463937188959593942248659696835202974907761202086660960911168880179518988371734434895739328667749758297084338866217565723258872548072042861261139790920114836857553445140022165915217685815778511243271294359878488004732349256322521232224692794945825074858165492555716197085582597438652954461982298096492652099900299477702124369390181093942813441755271259035715236496901184355642416757363961375691853924910224971674801466573779000233862456082137347234575953135936222504099248495855986189444130320354835017816497002678821814682296498204162493121065356592808980870607925371417928877557755157170536241266945575375193722792549638257283037581812853869847452439344175329253024309897575998136691709648350516432117941218097113475103482900587040681103300724524664940630809691617348886327797611158467846779657297399601831123361026913765047778313081263681187658775739482470045129700948787683361019246973328195590734106937840633905723640537904559482020312992898972462440173057419003818491391783107906265574456756606650525771487785251029494119095136062832192818574111205692137329191813156283070359554243451909244229321166872452649610725431342231333612731808707475760183706711131342729091972841441644980723466794939806981762581339255356073919672240265104154555024333107668949295670142743144494711129875821520456341353004199604220462770256902115750306497476774367606544292285634010089649991893186728390329794147582711421310622013746328595627758273775654062481296774653514423996412668010427930192575079468091778468163382970383404355983679172345934679124896430901264227112095832747837581282624480896919825643800348577359202027843436665323706746645091670292896609021395694097785556639579099412719077316585748019299411961239309217862838520527676171389279966962926207345496548366765843855196083490367827136877874503295886444216630688780765377869914091644724780248343826878118527194546663767874117405283918122545408851301426699151392661156366329827893287606853192470870062715073469881336100013712321188934247959844561021151560598490763158499492285996046208739403143507671935960364054747128355278267699668715896955230633887294396028597184120769292505347193716445642675360098324213732546855576577058519461920934700629096053811957554949300199618436716888117186405817555903426254835038227252338285561453170900989757875645189074789613389627629552851038320378320585261906406325339439067586740998656705616349244015480989352726030282643063635382474087940559960270187962407238539432926667453150168184776092135702018118791873720867360177307540888778307382473557971926793987393357320778344871912824489057200560294539324295515643926587103295179469323801684464368085954887707674193872716535573230216451035393211057071528434800387647035797296855665557865348066553299292547986687383618132533880279685436056314778674291802853114730341893297385407888638516184133071361690912087922313236368824273680813243158798021328350852931840950922065867158030569970502103436206661971191213702493500288694524464043033360153689807025552805097677648209031826392228709173918870180794417063461800203443417441184688868382455863100894074017641851350171246102200889680796238861396158013249635524675399664475785126631487011637769860979991364546145150353620751889986374561714169038056874185262279593092237962265072224535675703030366555323689685787171007411554349166121930764972622156077528879739012404373423929386805159928129030255956190416965088958193675664128449662914539465416776879788340875040389093931401870066738911594215049988604541026022751306098452245968679595745470749266989227545575904262064988129379761874226161482110523933331504499201872821390254580587043075449912076513380258583077911548136212782548958431388567147147965468454391073137541008877437125449174052840549106676257688481102279080882122047239041456543916225041157310982320031348648633065704669058138492429067990982466141149670444932870288517709424245494477646242571676825874488540723661195241838344042450208155090983569388489151279755203717252259135074981120336356013450266187430987572602199579815992465538305289338923834570787535331987953776378099246607753727507757778959053927759106260250992011051585849901042077500430330238070554230101811573478549262307362911264502092269719659974411278505858792126375777281254469598137016103167231715677352216096908189879079120151694304206237918514672860227053320705884936308863175595143871952877313820320526620827804765764805668638139154066389792608877201666084174286592687073524723791737445641219105343539695270527965546134442262037816031174779470021478809417732303252628095907941893535270859402990004050385688280327377588931952585679094689015747087236874561514127199356979349151588709320508432171208198985044567531637790447761265924735658820980588673154815767505233677493800545918183295318412448775091270671390689735515133845793003142357549293632732847516707223606398461216232302519882651913248876681496152490843372769039186823805094804799267157265997382296086068595868505359051274608183762333048453224637494557379473422374274875483236111617320057103375903274163553934003492460543046713683349807065946909158365858053964077117512664129299317067749695670811324502328859340594604460119549890196807976451975458813425089052138945915452602738883643455061935533103911008648810405683148651745125499203637086408966000520134801489327463369381025736500103858615853869943930904921292927430808002986084324779944308664997323108626526955042785753196595321526038328215297155745229793936050298413250346042660179921353894536137484778032171764779555309611246117017572896091577442547428892884377490272087698701186728222448947988706414719731313420104193863619854771878703037346901633796139807050251987873519994896522843253912428208683915426344903317621122133109606026889623358236318547650799937119861001392832029115133068162074622468209296094134070416481488183356406498653155771520495018965293789667716415438704852813083860314219256624743670503600781543633383510159011365058114600487626862108884120845234336306376640956476345673786534420418992132007448630537078619033972458531387092561527564369688616566478913415091955173031142952034058771667230091689741806685694230715723805339341283366422344493601569487389596531045401576510200747536162224737614614143407513092862131208272031046055422353455024132783219755197217583836991813387059821588743885417475681379317863041196421874071187964438920011457718478573612576084908945484583551173726142468215358727230720376144528108748542990155702878475993548839137385576179921646612034931493086161593006885863422898207058050434496313645137286618793293567004190815071824345000045463992355061658482486261180762451929871625124089404459855652340419146456228176570248592380235247806021300676018849134815104140362039122393959185262380452957073865242023201962958454975118937734771118829490577839095285263936072917826388536270500276081036398196494727477064797912453242747271960885129167447233195958239287524815228355386856263267318188330145683672779709081742887069143934791644861887932117629580441286761112830411488622642231252656920333346002303668575743407777112464226990018802434231770160014387262342836397797623699825799767718607696815479313924287401227042885594646714466058591011097068386504894286141062139736367029010642516124315967022475629844794034232594180911394040633418944590662347369505068066339548131463743124208257271409030553914530597630092705172032382122534382760307276295942352076991221543120465183630232845310491333337936928816648504817767450116333614946879605965188041269827197277571971621042168125793463947104333542863627798777453462727117643340582642216560069363567440216185974116371647166828533721212273878169007550166992442994202861333755883982443448135734051459530154574786110607241745369392014374796218485164737789936680458935912329408878916155048213837538507568016679753772435078289518468607241443647109602415246365767337894014016331757568935203434259193785544386464807054757370718567839893450535344601799530059844597009249847118971288683639209211612057173285595466968162778239928391046892567470965925029199067193622373304515802119301686274071111492191866326042388616583843958577605497330853137113983136487711542027468354467965017403003241105279953480229368635766442560698517275509226780075806371687844258661469488072448163818638284669129440096537618529829626537239337224829395466255175371806904414897857261381402741766643609792560134192904428000786658949044408970882645786971888400813549379132085008849597138022219887105544033328989012185745610480005354310908254622768313494551029303697820263711884848638728081690540408843396366912371604447595045204454687759059462038975162932683303198430718713886144252689263909660544714778483226689753877757289446463775553043357056858993029877903782464688227395497444449496947607338911915177803775431089804081079680014709698801780831116002671591143486079906579003979777534658551010099472295982007506343530701646246311856713364941766250337748912936583488261889714842895482181052690666977897563272899094781580073358162222082409017770961858972077198442507715133518616230543081805425341145091782678228152936454624810806262824496372648483262554182005165834684143188793664395862289302222052340382859393739533443748064070755202850183473068772726331106306496856553390295968473739934504162441892931433908731741558871662769408941040429497757203313480888536909519699723484256062294059745061852706552478280088871231555654607013420619958703850894493176579649531623731651964642775736557207795977605212849862832332891190203706896726822448204337146774491517433275227077531570807690806148691510796285849378235753707591316646610119571442736663138133668069157501682104261504241428699060091513587326729518556423841991606277961247260086469841160992138592695337712852271752759324045081833543993860586442016022652681567462952749680008349920903579877171005147932636075876002037068807255814437824481162506189017931225309408753487430369549954512617984150959735025738989676602922264673352456895013978468930448223961320550559369040274310495109677577087873983366096010741373127754769689980161247356893352836064999216806988407619271932644110295459804854342719189019093756599291051673271264610485845821865841821574456306974916362066684990545216791762181903391605109542719778881501888636536803625404824821582289708589081515440393556039277667496934016266485369996379414189666364853681487563281549975861234894462284031257864504026845339723567533437881858522402660510428566505484338260267866155569334344561915651317353684463856673654287337471759811521833067462617415328828532310104347582259253686992839958232789375638400194068001624432514770996713009202296171784793994319843433061877411272463360794746405701258974999102461361300647034035858130049062601122847619394402988884388761537999486943767703000364125062192531844419097075398606739485024206467418263571315330878185073483735093935457470909265710623923355643408227401849517137685281117079713930408866610440356537397814713301176778373385209164432107927635438038004895576634371297504471029608536910709405601357448762280591107742533052690193831334618769328957511061723905823839595459970609041561896114523583637438890450994359648508757980120283040841114384003461761229983440363185831706249636421875211153374431934729542264093886744680392104068716697985876902536288494103389013507698122827874986928937754713390708935108751594401959409866999984515559506965948040476741451054837399848872843011249659263724316046466267405141500496481176142539855350266465139907183383316479337368140776473117415495750171750397709895623865578696077687793695080710786518556328083258848944170961459132148154562502402619166118181493529608140230774717873507685884473125793851820878499651344826221461244540148975677973587627539903424995868752378596974305881358333014637369495187464266817412909718972352276845749842987533695640883333405637182893350468189358382343754062257053694659207457410489911477783369402528818274673271372261432921623453419601245267498329499138908575376489457422948565374123397916322179499744897417757189875729865865406344382730563526057807793962800789388075215967703079023534614853832692555772282216109914176608709015667257303068413397437285021404252468426402202848093348803220956899356607519726116793797861248180490712878173497438190888708469601686163024507029644319759111975281758158712133897715596826454479685653273593832118422747786672255338414248194608128551702972404750055730975730692297912782934896374334469186439574356870335494682123333629979157432294049690311254583564347136557747300526306914511942387273705334179179665341156532518407007842204737534679630231541161990594331887381298498823309815745141892102745960006004009327257295972610365435369415641258164419576939634201116622156924090542153605871775470670745782086863270660527567063804479190857050018914778177094280368193688225738143459415491791563866458764750448169326660192089364341426243382688234113572356691487731328623872824166494651919762047676195346880680812922605171999062052679640570470507198370003120715542907478428571130124750610139282831318502995981896952579148906824118777001836491327906063061681625636491107603665811419146075322079137373819388205147326136245007551588263067190767120497922585419869228267962035452251558598578637396252197613388353307367320762637040824800028963877835462368100473196563370273697752952519881073438243814034281380254602545376717253254869974705976253446506344185172839346085894565779810194790043775674117007293682683291286836582784472248974510792976448730093325840319095880089342984058207394493893474957510200841259265125804518299733391783257105769634084063788954329315329093396663912822618414390898418569491407267172171907394069340314761832403408197065348183751163778905981198214286624575098809351821508898525775565850785755260153166982165959832266466386887896246216504946832205380586138709932795059877952458734365174146737612842418454898123962515708004029140921600866748626928317845671624788024495323484366399988428067423964613323113621341152669151535840979534464110039493644807979011134374937855983736118444343333287602807756178207369003626595384203613459268461466009801712682467148156926926479737378382076873284500413080807819923713842089666997789089810058634417799592293789087797053884157871406433011883483143778333056812450003151730662295185222594678467687290245909698132582514617388856665573197391096613498677185533136888209244542620958868259020281704928356286428369082795022138502335942079358983142672627555772652884137296988060785722759869179294866156141582812555060414869212743368922968503934923446661411946716956263041965683304158080156959485232996836697942110525759307742791899000914252627151598526027427770399725241763294474746128024373753838530451930937452288565442240625178140201294718414781421099024921314361765947524821620698371492762693189918167493578350441797173018574657569748340022963591868228518774908433638893025840571813115659267769527964580781706675501372901804643760054132006321685236596038641400088168848276843264916418174672321119383213740801226537986687414756044439723710113546046195746094255350150832998753406660375044759439808818037266753453196635443662131242167292962099504903951261680334855634922492634221661829557959167825049941538191420576636010618022645314802496159205765726963239054610102610445228531817370060095001626693843419649192020161390190307930531736381172868767449064839544365439910817212648627470924348640890240959325689128549537501314461797887697442260574620601994264747712832590791539148973792943671841936043313437580784593700982461879538551317249162988556386461947842579078140353809812431356732303979137914506090800211876712848614724111915706017487913883888178332018563055654753247124206226294007095886517686185094957325732464718786663839317008188600060180489442856336983713572734335578898616233709248110497238972051345946041748654493569983038393090647888572567670964107253221199266828782599088092834233658093713453289140087610342098219586781830284346701671763543711849260173629372048498811101113376937426961690526514812274248405722527736838886642592983056549283784092034657033091056135804587499179768609245023977351636218140867455506602241691357182697337350696354756629213820327592299494521725771476208587145190569835716859411200096595177580189573320811411167478631979218060319705440235101389443118815254928924097193417128432987073511837475096800636512015914180262434456670366931682406048630687640008204876893697191543939289595066069343767575349744681708545556498661974342080031957935616816945808939191390466534544047987765642277939583980259257905329658950828965064073674162117594815065528891278290029045430106910425104790818273807096105034868830838465122427921727768066018617722965348375706434971737908557150773222413836567396383215278383115934088911395955428503976856663983697687178895408250691285598688313665758606981114681941422316603106846248701733424649748807722300044158309034393422322402153637902726798047453855613836490714930262996803092167357211817881493396844679538884348509194119779386849232892749958407357082667855745981335473672558371472223916739060951400645334056163594834546243783969698313033370673440324389083729764769602313668186012905708739676759651312575615851238423972755799336216182869436417995637211328947267490576430071411142661024501249259074276880994769508750554483704545543738758250571947666663809897080608230442533927877047378371012236308338011157784485542165218638039211295054548127421399366622322690013402988657112817432232202672218065144180440903790418615857359871487456372336743181955003742871157879512534553233909189367977159958697432117914171303367035576806682892612823539628953640723792387775354247401913224133640713421708844258147439206382821399179703057521568675657429397019876356465934850054453187705493094759066864768955254215553984248331896532753999671840112310528561461092736303459977221681797989126969335429089835781988085915025798918456551986587489626773541965682245289406068482619022713627557936705511777068917466706132717852920056819314648605487357524452135838171352399545571162125172837361269943638708574023221369250993028500537726563773837649038692170506589554083459202450857594853151152375020363644951554076536510219133747697337581840231702761283759878537343301031830200035591674913673150771346455498333810990507249704387906694441346034677920118128769311467676450120536632950967171438381435727208806826682522744416629141750805255861292151125362156523229561475209867554414385247965556067804261856324853643260120405162729090804007982115522462297015631992562056183148788367294405828865278883999865570385744947717034818038857758017732565109265039848664787654555335692351303628431743251651982851929849398929168587661560509424105021938951933156518811733783995340859128407363568453839614762243812969881660420609014430763816987540003516347047165512134130505916881183304382224633691408507360327333720085120052734906812176027556883131781168865637101238362800002093243467173093253683774527420522057865342258494798967514285632067156522265174181000701522084763848128107006265259507521976947103021396558289010576332400900364486277228522918588661916101658426302770545136879664990277758532525969432361124710148975789636548144515462297232958655644107003988227740150985276230298094173476152806967450169910927175214875125819156400970161045787012489115730925744923641087686690713586129371810612120099155061396734315808782958841358953601849998186852799507199494966564090713421513350321059717114795364073986031747613608974990803040563793393729425568088304390396439362551531552240459715259868027907018119531430637325900694141889463445678959169634894063527816417049862891148708171531676448069773863971356739164934564963836979298852084146044133460492514248588152634895055371154647591665888924176656096984806314449930288670713487242574447670748009955718535752062587871330600311636359348607455489147772774589106020276954166489112994651028845888648038511869081321742825858397469716661345152834526141894449273581198916995899431960558473214306071991402290534623905999528814034366338498845498461308900709989475517999350592911601005281128246004308137785290594461271723194020348675893008858021283984545001765446879620968019760516719731835904305302183631549822353402435457811868358392455052340143122278712088036324735825139365722860795538725476882106991747370467717072054728644391866561772616478559107006160177666879400785424032430515912331699399203870694365249123965755551527517650040038676603802230252140733582838566644079525767211474622822384443349142572624803430959611953714188663261574656545535598102531975049160993358107391540128428256100145909973897302711114097535008014931372567837458051441771078272172856490112674004997403384468658861716654870928414100931665452660111892450040914594828203503261367301997714413742004724399091426407870897609821357757125065168438929045745332566060637512584863034438805153852446840883730253717256090037492827271494993946581837820676361774248739730547824132113223295609674389555373702617533031215978818915309105932797314298114813120396950941637456706650596518218605828184614705169344500956973483487297460282181854497565874257979863545073155283957697879784397255875750502601771857005993077460380099296569556761654520762437396043073639684694196741115015922424119052828865283356572005323438049872067332404709168384533220337367679375981475662397026409063053112928303099815073804265435409432233411937629919439675567846096579350678189316092231171773447779018668814339281555290160011245980512226359834597982711503896303809658121314134664606872469782646623092936739549320930178565493377369065102001610008433824632264966477247920069012216810245347728586300867284231397283280990688511100154769547568626380712311090827108186681746340060631740060748152845391099862941655954740188869068987200101691038520567828865945276142817624310260940964061818104143001713095066237791056863032300778944533101012243085594660341703116311905978638985932314164720649461051573966054414382219599197771939470932018529211192584853854818861048476467982304255556348910668106286817559014458133172772396133750806527124187641965688249911626814170291781353229120185154285551067724648384713251505942632436044603152867040946816302621335529657687192525422802923577270748570577631889514928985078863799343358618406008604142374869679946749972082129599407922030854882564015306310899758642385395742022212972651690436707688004883196931852887171029250362462688099074483725829317096708339283291501986525369510115631175333687395057881920241817800477752198369981726807768006405674418283592972185888999879464498012688935748200494779239647619347710473081772922170845446865890311483855476487970033434617467875107872577596539167749440600974911228896620034271680735620105262874569319574410925748598478680935818867012487221170262656279984885988548699018471751996570720663021975772351035864993474049755835609240769283740130844364827916811189454164949956987626799132927050825607423450398596527905008663897530377236785765481358425696345497217238406007322799042061716963909634409131507057040822916408334329517456815263983737521503186280122949217018927604287723915657865251611788406386425513502677124551862017299388286971738446408716874125938957372627564413815365736686621281904873005111257872114223857162693610253304154366561839735775287001906666419546257246458589219792826699445572936932440029970846223376310443668427383959882916339555524509972717100224352016732000978234061979008045904862751344311693937261870319753743924318063390669551211004968812599667701223829505963190392916615374904351590439510936364084299391741246137105470665614157462402958095752103271306293261818615260146556510177811142367695722587063309829455327588108346077936340074315993768589335888305726346443968815265267210353576075007845389612090869125060211975092011851433489332702437574879319148187996133506212388487729289998237923896865843510490320684006228132618034618507853308625984240617555909043278244915625679960577995478536107039121098019903782344596267930597084243904260767120401622472632752616876823052658734487091912469716070259904343702793215583310816196644296749981928804287956118483517187004303349706457900177087522639633311845854395518605620284912292736801318792564422932556394727133242505204061838109180343335365872616688810213637545781908234652827024964317246976831045904501319547298232136443163528050253634696396789129376444299612348941774777126707805649004196049030084427750508835760000125656062786587257828446130426134136030130975276538392204569423328942393575246247601227965586710381362706822440923577398598758254918734416223273794111077172264547715416291758671456072912145000127537560586702880553601367073666151169078274483478103432289962105520801267936200068479428620618944277689953610190202119462425049191004024472492780373988931020192763904083111908123485082780119337681524752348384045079637767290133103208701422393315099529421234616382544992238038465081035372824748041995005204855496598793386160268356248715918837810752771846776248060613930967549397495960479614093648168789944628619061921020602393465562775860826778867448964698268580818256494020388267429256181282194552475676113919652354933333553517383680248656186475407170136687015635636621455142755973009815606938923932299722271010084763572678548785479675814008416515848525521884572034739633650569377233504475384920837818158322111699402635544237931307210470928795202019900743691925039207696061295131136904802033420921293375542632434282502857849582965372949955571073470528871666272283555845650683687574982590664217654913645011888097939989290770332890374802230287027555751259856054998330136641355171670372717510575278153261271164792160349102730592168434849559648089728821557574659488204192474970989586931617765923933436427269644979979613142258120098190388273328086371686090809107893252272569104186621864322872960413888917471286069285973253738711012984031657703761101868895988373409492375453749872134881426069094488105702076917792912386617047939875602907286932089659433912726064770712652331143240461707088524782583234077576194808916301218630309104299349027772780736432125634419290464196511821150516943630252608821041585430253496771518304297978543337699283996742023358754771214608503580293483361389081113045416407018636759427125701175430776594558407834563462460052860487803071605292443113987261873346315154713886573706222102836194570321984348024977538861908433592110239173917756313992739718152060241049491126437767316622748727735414854768668921751210209407696737704198973187077631119466167038426984918807328661274081568037624448206070980261610385016568431334811776583890600401100989192868952215492824720810041205879795215896394114431257980141883620574699018877844560890092635254435112469198318820301314566037179382112302442167694767260199970443457193293566937708554708152929797573454697975501725272124536430784104630237665370549921567286994721530707787390668030796672135946591771654772309987499055000893763941635153812769935337823878235557924626573863812129873598204440871156046476008577352584404537374646694738012021464195416726782585930811299645373395469596024650875360101466139776455071117102449661853255299961441318953482602721905420997570398984506027770681259391123478168781677808445777767818532273768657084742421927357322955081241898013546872562084218587259458114623230418703672807910454559916767447812503159822933289783190135816801587077971682455329356562921907285676080999179862873085656221000777925795737152840044536670184458235301649944762136628334529939632172556101461130615891846861062595534262003601458284696877711356998695786733019590051243531125435098196949380851295250732175959989615293561368510828120199145682943933809713626572477191311759203865426859756089855141376020060582113949470028389428653990462815269825555629107110089906406944843955808985454020411488840940764124100291294474995745466432193621787173249738450776905654680765401155545804100363892704001239798082947332122850713837707844659512729813291601066870394563535800443864592371627809465047932805586101988488444893356816652903526836774109030725127220478018836766813992838283254160012199281546648765181753929634131762577873825362414290227234901060339623736254531417281646598432685717165473243997893481714016039100657927549382488452725827481243934681335587389998384906353387757257508034998112580267039018968152612379622368645370063508227525935090420050849130286022655682426310863247289117766744839928846710261256081341742125825733661733073534567093481317739959469554472287729330546234845013667090697355270709963239091135888756167892044518031872233106261444817946126287350459024928778413283058384111506913833147575498283049181882001187556895984253892062609073361058859861907959111772229881756038908921955857823189555773727372351820694717075330718988687422609734013250317522470021814389024839303577798215149838636658988156907476129828342938258027259906141050482518692453537522777743176651883309269931615203181648040572594301516379959480117138756728170521192775265847125316244298864999890986575847331512992112616177494046115790435686515609391107059642302284001163968890679646230218584385995484833380283083721478454530630150050911552269777053408836805302986066998448628774098110819542196841799283231144739361173643265037197903988113779116146745811358413163143152304753733051242473090909774743691558432816346586569234776728931515059403783955004131735226355679364293852787102777480988758620112885156534427082002820733691260634025565419118172822169309913198813500688838319089691867941012121845599803388408037293957805236922310471552869536823930665156720865614765480805606826277699686987256987853135306886946736182943100368194116398054441843467910490432929558259451475189735063893286194777739263030356433227341201858319723870775172353948533068059587434247896201522795370502580345300580876721766696708689669914469694755371052066299478609837518583549463306457770085358591335032731805442647980769945809581369343530903304605222629429376026017570916086690593347116593319038563802439935050907416320539950026659490304175997446538220168021856012984300319071303055725559161421351959886773040068358386425869344276242022559438936522516324462506763535870324339200408902383126516975263531035822561581435510812536044941678180745423846169780007225932602303335344107365721634783136944997662759731777927309265416258816838188534740999934675852028754283588089191348904432617956999298641184319413344252354812580180250389206448677907924571374250727555844882509948838010703487267527531207493046178111156641133878917995762423665752928298235541420390109948104160744212770548163038246944683321009172144147553290413849666480389127487841636864831374966357897316158084047836373287963096511504162940242459427098592968922940142763705575269926924766559260517644504314038810727575488413454688952027011703843370926888617729887072574842937904305927945358601871472425168654225213578702830262037640643630802143144436982002741013483694035572880001920948314449500894859982654438321605940834625634461170920471943378687137719492314006701687574550555419965048978405021420185431895052668184548643458142721192135393152432641062391561481280932945181140195986091559179538884980578996479283980778104666814653911251213205691179475298338947237623911614863455881513668699228800124776830897164823949616661026588206942465189291441246271611499493568772644038795482367866905815843141821105849174162612610760434443624199023035491060329606276666326838492342544756930432839169602692273327923438284508831185104606343022382442424426159771160000041002830962327038622625104903714841065017010811678585255654847702230232995714555293915349738964052760615055561277685670820804234531327321471141278554281498174456988087069925746235999347269110184230286085825556103279797585945494929824247626005239540155922403150234841622921126950901849220775984026390970234457483771362346490022677078218358072982599991741956757370950147375258272602801340039951301705850404378601071507538021218895182909181694616162024779114080229840816784703518485240424888082869072678787717861704622686297079124841868623116049802498378392486608628185893335093001890815027864467590894770115834708155691148153630663167719408102384366090246751465999950691026325356969851634348298924698116768940190981939071512672050748525953845038099301669057337807263441626705988686438434865895585531732399581304644854508678083110097509877984978153871611119943785897289715180048666697397823856740144751867245814294223357749538387067911285977186543894218337103134565637200915000977043273927535035910158418064378925891555193936885024725887094756176981179270340457367910597987149666176896891466612253058298511614031356348407447408523530246298353390167596093837339265975729871038859416624622457815612545423146746871222483553966719088576681436656547694625422557400096771127483982039723910655094742723548203160703717312198829886183707264676342951476068865253470213021915952917738527548315180197151653112011366840654901297130570479819298673046120120204633573798276405412343323299623533183347964272739974819838111961839864539408637598184195264297245534176365140611418611759919361805488847613379470006255439203932644909811733099757282505495818942537297220936290097086428158517984585242471836755437867855459234093511578121362791758446691930440501730540607690275675009327834773652150865096244077363299849700165283220514901080423243386973179524696298217708243523069980880808533264724921358456518929865045800309228314422369716322955228316966111247041082594629496686887370898598304585314407013833346150514729205013701076884254198774791306493738230921710420575169903915752088399034023098017835615392791342505907781518998585329380803842796757359899929639286982593020146590898735293150226920339292010427493945340101398565963904808180020337283658338046275862823205124748338618246332738480381447336710509156905445489055849718308956213035969512591647933893476079914180560245899795943708056308782218452193522008717391945103759077511021082265771091344869441441631591433893413298730560274379994821513338123148122072252952028556696527037575414335894247585423751257308766175113237417849693224665056394849308081198030798500749848813153304184452273814873710562835062741833510442066953314300579545068438244026643030447786121647084755806685198464521069300405396594960457082993911201969526174325256902283225832820055932898462029143708947301521983882135890414559690420664284475726164818963903877249886377995953887568254575678089224775044287176876424590572517156791144813354967403991888921766822751903834177128461871680739730560771498911881097054569870147144744677174719980538807425876742793414574530635037401700410760994109537341787973776343628660362580639222021501056136866307230849421908572865587499472613512396827428151143968109992813970825750699447704937917768618720705673325026919383740585769760464243964977132426539232277471879520979627321598946739741595474285129239923350015557626062280696924081964288617179146855773434745167972182388867298762777019747731443004970077631193180791151069953130776180108495518246994507976510206579044886340773652040608367752829663265330468844303361125927335059072082027169739468790404237800148531759235917025430963213648235593907287398216096199547791502816821643653575093314665402386320051633509637765861018275147564702124247696916370714290144058989924519714277365102406875140526900899808963920377102638546704473237140390397043100701471357679563770220338172123149189276591323002579521380088301488101152347214809685267818757197633894733784563350156154647515242430213837917289943121190100437236775716070135307765151324242832670888058827490832183729785853653682617271206535408355543121803229219621332760853785715203605736722556681097498994172459236238053243913905742836370111855464704849738749663179610496574210070890206709366430735369851673198884429971199710704679894936601542409899368532703154593641751110967338897548289707373117367197855436946704517839635812501463675434285957077864002215864034554215988603683260454698200543497119869941667800704415103666246742932881080389789699318587162667140284879675909276774332619365063828445344802649186281968610199281083562426696749703313288065882654266474518545960305532525568455356528912514701064271177384317140597605169805208791652072846415365094416624972994008244698660706293004490616343543461430412981073854329991732234251812289018840572326348389484711376063566898383052380990194154533603784868892003215167823147852944088585094823374840464092008856625428231712169017306930811284156766454894300259012929277401702242063381762764345457718920261284333072258341742820525174820816711766836609832095920128515238485812094981539388007892390735771757303758204549924022887424267189197012409446856373273313061817398013971899005229295783321636025716151232658940409641320905831319286720471007241065351477606853611018981250393845142789904881590961117907440495608219442960124578290954089996100715142230937540842972428931559782643690584093496049804836846947863365560653525801896576546715754347221235807414362016299158741645017594444554274113051054232514900399076464770960817197383437634661090059564937446482054040882449719576512882470140348706945045490519712673210758749123560917574729764551792536858758108250524742262424744666093044045405876498096337407758629830981082768342650334369265884709861953999871504380237769745952673189949899052094824878788624288896506201103953913736133870824789071581048744373658511043089229661338926646858936135656266063667432920258492873442698437262659071414848795428569304011537273910619339309766870116034199269614604849808161273165111945813470440812674868246142205014303263029396195369879774288798034228394195036629449182347844554559810197798596547732361973392831684855401022864033649543125259711071529587331855742022609354460313568210781016561832744618929225770689870000108925084181813956034463798401920376849621840357078039704571451742522546159093583581252269006910802145021357969270656957620042210632976328622750571900997531598260497597480843467140157459600564557930455937451097745481412890331615501567492994822541644899642622185073028056839245511478702658381422486794026508660740999104367216774786278161497657656634101128156641564672405869426870060105661225428538907107673082694903722858989986459735058695869959601441104235448607293516161708626723655130549134215799678761322883329487416319573663408082908504134409515141229381226062724050972568403842363235642245595727447321625040224068712748886005130181868382458971296036584814694321021325454451329729454235254667925294584311841940810310513062169588887280479652041200150870694538100805316501423213619783409920563846215756121320872479706063360077142325739192709984904719512257749256820146858780623299865265711516642677223227972034913341210842387051019671119251552510203876531736857615900024441571318596666752273898382685763768517403118471981497715683780416239036440725957381526066005127512177990913242190807649809316595628317681889874284601113482879174902430445846068642278106443080279548655901810549015445371957207740238863002172259571563662450832873052629198542916742276149862229723392674302514222327087938260972755168494652121675975193665490843232681231293483285452342655178296164140077964675374499270678894191465629832125718694822110319371354248590569132275588020611590103750960803271829171874822681262084389567320506082726484396055837683649209935733443477479350089010535682534737477707564030504465398747793491827996848204698431635467254509425605613063783146366782029355890083136411948890071338283425299903382897700999055013470863881020932527297571852076328611278030681099497714772489907094298981087795697891272881009529491008351869869029995496685155206285145003935706730881767574182464939794560258364090990336786529263233349049949004028028131534936973864744246059391946497663408866078519456469367504939088078811904956147056129003291026618830893225736186878051719177115128470002973906323716922706896038001824630421310763184953440096349449404656963186321705098322090290617291370918211124141958062578791451388580021002378003468220414533594420458647972713603719579027640664995821903074873222566102896919426130858116330751770200323211021533068822947122340206263708377459740239689260097719426568513741889248810459588308330966478875226244888657989622509542531141595286472648304743379214162035695172703406268818308149424115765714351816412812558530185530801547751967114883242939214572368910078111809744447078482501847750029693417942256298600955498762529661098801986541082177767417844706083066759955279390509735486783442282327197089185129609630711832002144813229523737772105012048835524880500858811188729920679494989878976309733746347282089389369363217910621394021304880622255189879697305520202916474806766366862082088282951290323626411342283564431986639940585955639811782784361776857017566443659588671997361256490491324878194708689924082506376886404656648552856564026112293394485238420901641755302871644238979125509592625912576784219998111917182850399139039686826658570623432303492762337721969996725226106534422957104787731496873262978453826595629250376071465944706400828927956916370024530684951260031675310988263013520310633913806522469327745413221676610147569998513313934759092222723350850331062845828850577126910302467598383889164390100880849939373822805679276201212690562807284753296480442750976821508851873349071218104615070544055779235853621246265003332789488385692232829515771295826958816517026172228331894837677683675230091721449634132285467317106764063428388076687679281272482853828944405736695163882459839918184622288823335082301995291664982400870890843566820302125956424128294239985321510630005120809694522833673137099879100724257526223657266773681377094843566157330131326148856228012140871360422718770603927829141916910379557298228781480836076248363212633549316034881236399661421193715584254012884024442043737823571615037382369816753059615277367270676628415738829843990074730308237091697058624602094933368811223489236150841338952516908662460811294764000222664373251399591275943427296888172572260088347241570324853698586796985356763335847734679959061366004110548625397396625110067689593721152810329991692530604736968245087944652500710357947792360868495545322354546230854063047796731896256558253206397479778449334327987211129540179566996953906982304959292145575238633955033532962853022889055799090111468435590620030198394370340052968763230205371442753582957475292124325294586234409967749403808439761951444383526096993750999896523043958815143272347134550143983859140759081248950047454938186112308802686050140095595487641214483604214584349236765131579748912384103098342720796798948321604520000730544106490841705463756724229224189020073414384219527563817161246890330933143894097586351323670412863490512423138969472510562501172292538684582798928674681310159583986899822382667854704815801855561501220453724833653176663079009960108697670514529989335283786470307854271866380492327981832946972322527525001091031813486519626448718260249493199775317608056585583256039813937166072593990819970074190858810143149429555480112742493282782425070327890577058318281412068891411986051653512705307306110204855814200980756278440383569796660631065567764858985469161451654839349739834663407483153066128962616410177310454791688579530702490138411306118023952489873284587348773148994823580215109560486949053098368316385145111538670276115789924143560772857371156724795669745689389894190818893343861102041195415139273406573002969623484620780014222264379305593837501843830621844228539192665147778341900121887674304034462342257192849404332850825525601517195436616287606893122930165951706347356142890749317528257067168140162022661190230911541612650283554688151316703637304824535863701342230964493515407815459858949264315677135206949052572137049616027208672833449385980423640820827022317816684739210786224742005872581592107871827121605012235597947062468447264244682137191515789749949494213047946878212717893643118204052014228591630916290767527481348540431759070568249210849825066180456749889408826210115723602427886353719913566240177366250567904750056318347440706382827883488781006673793913152695334339796803828872394749821597336519649731632185863781335851190199558883615273269771021260918133027636743562390070409079016836177414175283404931863409825323009122104420564338167668865414347947465823011679260538955841874887008212620866745449615511030948234603335697186541967280938600532091861313610828691214484711605048995426316686860925395278340370017126876929165695739637903969924777126092117743215187575188403106544585795771811630494174526290475443499735909373903722909953347731797644971449222665257062959497098593998825891911103197989076477892554872214217153964904844835900810241788685375825143246401364689435324765356472178855460869844727050147829115563118142452659236238710614580245100330644722237284339320868289845941615799055566509041054964108370274489838007073583692024999559306784989439824741931824872928469348829875414910631944437937922044791791274624917014043800137084981411699095378063331023622624664134030749603789953044935463758500516646053454634113175354999924506639296015606475044190345652875864256767507219511498965641397640405503546104263224499007589331132553233035202352050526456432749180356915457148984521315739549554203926523089203220402684279891296068821520713804149863653005396598398873797629718832453901953451108168444476378277823888742891929905273255130834735369487184849239794038350527895231788314588625102965660858002681440468998398480135233624779306808539450613225872516602809836348047044599737097510133059479371779819852785847273430883175120146898627533693487046779291715305078116403872940657161869215177255938106159183886344579994760802468478336547641839749153065021480700269846601206717047938633197924825379042649664615232013326675667588412354069148884070305206050353572398375660065182996906488216736306191795572748152463085148847157681772653083357984011588944052481427422371926711270786418190458635928829533460736931963112515094351507548227610463053044625592261966218934284969202898380198056954726528141668540805177947070072052484012117015467408057000974453789045448353793922942436657422680500735143370645809194504874445891891884180963553277796766037526883506014564548982418746901976805969941886031705798244415438723790379077704828836661569068864387739915641815956624663848195959472571348311658341368771686430189425294893626708086975643453290991118185315504333458217868838504317448194920630370617512061389168738230007987455592005559289987314293207092488911155501766874809642531738790423385040021809052410574986264349387755420383624584052987049402832583986348430082006545147182142934639484400659748777932568727794906626499452140838814445446741210585731668420087538359346401433027301168979418258953085366764553411353380612279200407705316616429845876373339381597224749321603144545158865911862185984844370431792696159516935587687850670503207480216049842949706646853048198917729447634780506188374928381683264030940302879821881208850871597563971211009818733205652865646535084341776860961821975302349839253674096261096499727530017021593719807361168460124303618776156572585683840875450465465525251098591973150650700810354860480800349735166817654387392364345510554827419253440795860458791598009328405500359679003758096995389115238944190279580644826084691715382048628470042761994886804727533351649132039955498699528055277513724780427539405387600704042072519959818186398449777978009537118049163730226363248442347511928493429189076673488585599055966160989086881476803541780190813431611439930432291910696817847609740522457278450740286312051844406674855319335417803192521501024012589589324794751389750207097372609982969292379339482561881059281158498299519739038412348327744569203213088343931327541108738409692637257927641698058260694886859174933344763895433115698319905342484305679962248972006975451539792127512323969402406633158916676164521200731146665526043717010235607485326271860493217353694547027741101161184939110369297025654211179647611507309959341091699375448700931892763951166017386973125575437444808809649069414574229150120614068090731111432132960797454379460524099273345609189306105014348289395874513735997478776504697669720441916220974407908816963980895835866735546117351805877271970097803110564254958664061652022489396770609714933176753914091506248744780803802197746033928697811998562441451379519125994898603437542914165010645201591002705003806872050377824009781383787964234448295491446878263511223090218578880726358931953944802686234844610960087302308997588536735036934459012654945292913539775687423647949041447653228324956289078222929690750423053320228235490987759218179194370499448456777592380629709694725274573713006596565407310442679690877183754360076039464390229972646437913996658079354559739697482473954805819253454515312818816237111158536981277038613919960752778752435365913468875414588129188877996958276169197020983867795759551453734569184746252780214198381544784178625662714645941666173916886015297278400803608929423857965575634395323454983094328817116496131314258951838923720383283539532549348815228741344988780145916977351364361194713226419646660867411650103026219723022547035981903430450202328497858867305105693526373459897293603925866224805093544414632815503551991248314698306243726207598145139355257474678635446588159313129116991270116435291928021689578590886071542190661410856405914003959931884680460470105300873462350086719410102081873537381298798035292545730174816308996262876504568932176082011691296674148268241587026677926088698061413411610214985852618891945313265783088489464811033500785423697479998432625289962170502869195968694348400038570535488952820596640559798474991849657665207761627998885074588972545619761927841919745778755065243245264533419489263497090206214517553581329205326262557146929911374040418261563624429221834419618647024856104309163120078787384368516928619301898245783096975165382274678553669480978911243910117072521598217641452111060128218714596497439252413949562534680996919521986683078222591196811715855081584733773688687193499520003597749040859530293444182582443410818052931068052416257422188261892812616312231005259337486264199568975594954239223902593631999291039326104036758627194440621342216585212652209688041147737477435952292095033591799516815429575353862155177921934531424883015387070662508487260803306735323496821195530705360703816791865643689211351426445194894320623709606195882558048407150635965329001103761653655490821023483289443859522258094434123277106970949878756519508174490488740494917748460323223033021591695792816167344736544310022071720423810219258883733616565378745948760139267439933991546340807765013909993857345444822420376977296096791965832679370704244597471839285068092033274812149413743933934435868421158222607692525771062378503825803187683125667452355147646783677696181604878025630840091262398052099044944375632791600447898510420459598636722342395574625043881420072756130858208291370607723879868632201699171625030226476711922403398750315062472001748865620718672194183965285928364869080210268485173583635569697875740835980845063661383818882889730004425087109063438043396749697634583124241917176891355996286084396912107416108613549946577260748577870941826505889635188264959381563661037503924474834570114589532616458788020633555304042593018860334997417826015235882352479850659837729801384242882816200202526640467687149485771310439139045477182120637706185325013244479698864556443519590652684212145286283073719222265327458063747888829830569579708823990975449436026215970581706952102551384924159064299287547540376579540365397187881907682916876550540286141252096041025088575577076589820043180727468032657193035227729468687222709003967027719967263051994760567370620024942847106683026878547170808587847047828087132640978291413414026927817631210825016542323850763061909068904174778138037212690864582130672833224682311122922306007789158782356172763083253034598957943742347993280503854123975590084916624813559199516279257688248390416013563721945242060625866400520523770613324947414845988074681297535491021577399764372380489159006784785199807137039254356142152154302895192884015156797600271890832262229102377295972248655309263652226625507251715821235284099287316976713609174467207090397608814237568591712187814494858761275585253979696865197587153504644677453556279371448183363055927016694805324914930923797121616291242965199411255493755449096786217158215407511865641078882554410877116620906894784207283812133287170030354956707764863146587372167861424732803625440096627663057032933900100988704898514459055939056261009049637788669773400219972067328444264651923997476809269726988552472943613800460496053217120520256983983265561424410655617611190821679947995209301575186920958679670777051260073396940408894767070757487534814615807486819060531030377590112440309891815199329028200872941752961886603511091795059240307646900605254199900152347534257310055741578248570869752922669739684799518740815624353791283505527302410410290907516474039584222039963922191147832489776275971037556175721332317390984663811449637212003384544902168450491123594141582377053334689000335716509117857513736958762166737835997726982444118689162379613170980864489428540564629933266208115966216535697091563471035321882078683518808753793282376331668777100641664665850116326427066862178855955085427617289700402274902807337886134068547704720741666934352232245960270570939768544026248964665916830741761194808847430198317065890585673081650480469545646114521909031174062782007760268883869276128729534777944609339738192746186186784008351086643494024472523621742282491284280279147472530874971403858695848662049724275403168895178878760527785250102603086463737449772958544898258677907522485587516651410516905384043686858061224113819393344074326242832337193029460779080461656488807409686077095270611550662200000431169019538753934341930275583954051069824139184511580438350643937762038395802317961850422055845155291241242309754634389509813044959772088986078602942680467407295879312778967496327088155840490077280297395699704639746046209526491399866878764963919741105968656254758711885778950002535619362413358017560039687405410365606724706885766785937247825792618138336368359936689701895123633190239830427435181468757630679779564825399423780914815363729759456999089473211576916443067550927605748451735488944023344686727937333309744039244503227160120290952783945242514538339389324452834103073589845078244670234696750138230192675209106115047336994313348024408427189664993577927383743952282240157707170758972315012626289317020915894404866632239134194142097772299181150848702197664589524565159945920253262859285551951513902761997574463574099352946634480228092207498211264244128528296557441302243908828094871694544930890635427064029243525814005983995435196287761979367325790538784517579345159340327878717330938018385241252727687552483581959382872731127238209980092138032531927124598046186307626836362379544436709757995882562858155768471356513921429092512577050630245216496638075661898543503353712113055285929773754785594662894774364144980402730255307959190198296778508510226724155860369995386077514050742196401488685486067652029683592165015356197318549535818678304407942338893474028066740738796945568181029381776247869251076706279216466352764164695327793789243086991221743351670368812891750301019438375769129760408995372027478299041362494802360789680419782683551324194600296932976417764752843178351249613272900384942311295555623925260168607335007054804536572949857558962853698319256313909602930635716031760960179779252777659651897725414471321208352326653164094579617266604846354826762330581920875602088298013967879491334400810409171678957531188139996224607581480054891821950334586425104595467312918153574995188683490347296276278545472830897660796985461692551569017517512495108959603816583223391733932129896949959074854052885832413771174286127400996685048412754682925220238733310114969882567444032276396386497295771490545569041491401980361898895782498939668021929251105839676111979925507865541264066429101884967040898289512589110880306055495637145302123547954921973135249386122858506718584971053003885303738014699321649130538474313064792707629048153776127501456478366334223550053254937465273558434056737357316910849749629587621003759513728377104562428678395376984508917317504082369510669610508054389637017411480928595695417138614941943212837190815405285195991889369983929754423858640618797843175427948475518059966023143058968998539807187799709635464409025475254084535637674477547744766466708487411679323938396492245540837785360374221925666779162233746059658750923944936443711917763218384119173939371424779758505010000876177317537020799158359029113597436353064419563620118428881285848282208989458159641810779727016324760944481421648572714211699459336224680752984456894383044523210415067131328631245293407089813728208241731591042943990988907466999974538407674528126128993450591354402921398053280664877759330622199616975558552936058740149497194323031894493973836565472279629128292304391688146124347277628896375288549553491282363592547751609458884435343476391709441341425288715358553215974725117241878905199620818384724753802969753128464489937626433880300541269420485942565498347665664593460324697206945297564147934975608406763529831179510854588967337112484574316930505036716733005069791374031490980892605453741049133680441956859323108258670685782155042515840496337217672224539058951621051974031711489212602597726055745696937793564377952403899445260453371194937453431055637402263193545856903932812152157352852445489024306545684826242419717246210326314575168940312195097556827076676175626624142618564337919560521974085833613028190535890165797258965369557198592074680083732877216575345754010773754968753909870106920148061749926828562264514750372775897635238890647947970948409234854789775557687250194557683157630176828538652839201724036689300677620568159725559722216226210321500114387021137315882356800394336069636628888251977859647484138769030800699684732611154929705339216981555075131427612405773996768026484784734849028571286091548500884726825839859511657533163047123489127125901867573348618121901515988407929123878724934588901292585431490787505580191319445776713997318381774519343774551448815770682595174794405249217550074116934573829118365438335116999514013161290575969851636255472799756023740226610289681145111520073311027054157033453319260666107573574719573511352947513268823162250341105666957120989497978152736403407237874615927948192549498680449791163953035399757455456904489087462102553599311575723734942442025285926896293760130803329911591701454367238107042077207525438813840360995780000658336667901594891506833561249665924817775087661211502242547300751065932690610186090510137243092284578414291940167347920872294425259706068860078406889176734977667567445670801762990256580296715120936776939879830964136944195752707690409547246939743766016351764386141823688306167023036468776144285755765945194088142656927172262207231915558837169574905032986555806219596617096121281435767471568289401171175989451367634748475907369677271723696709039228042014933188191727056821961270510335913567012905583204512261210721987274019786203975011721653474004200579881650346094096565699172379561936969500626130982560853671025342904665688096547747089119103353892009598296017992570527557680110181264239329302355505598494395313322525282991551377710680695920223097838640402644377647674318489735260129739010483895046342472450441880654212602098219470142076125020541449847369471746871805504164114472986829798877922978721180681062323125781344134466053194821103100210274737322775601677311182943743420443044203052718323397230925573233843565279599174902283628017436982972159818906925137731970119802675969621934610186263038686838435503634724471637881334244354704014186722053700974861731645075631654834677082593574033606256324319938247043168645652447904888473968674753190490362805006354515114697285501442706613280394381851230566355798845779829135793032965289889176047537273537979332020881949842916916245984770296620087143610497479656846354594071976023981109323484983888296867475028566589540076128786220621199670027650690798333062019489746870303718013362137164558784950729817106044887612009325843544372117676895959444907765222879897517963277253463806977040008076142408329350435857260332402017911934468072766707383536942058503467844066961241453709331004307278275407527306067459777504837530116136530009331788965563839562437142913764593472638225228867318904608200423580622501788062698608881779904391771285393519936882898111981772741215071961613491544098865994381117500531330577486215825177905035568453468443745757749713457802001221408649384975764423098784788627453006330328910536542756536911241374555489998042094404014948013598543683867238806197774819008478778439314312279790914136333783378245570387566985125797597572997065520443338023503588457738684303837945799203794936402147429984688183562847829670327970061910075715839815086037627029669334988216729428703116296723109881785946006703886026273631510697102118928557694920747285653745101466492810323373551055655946565598614767321823310096110947635340513807400269488185282901618715725463225848446536000380624935899183060691962480850636455271715628406930934802385370066663740609396251734548753820930328702343359826091871032277155787913387360933959681098000379783463107276856937522241866307384160673769987875580317426253663548001755298422710162161816499470814966647771736099944558005575173879129959696107345132137587176364266236825789761733290834514600436797402005171713546605973336596228624305910401312060738574970806405943157935448788232397406716932617851155475657261799212450559270598324932631817469268582056411949630566997362751622564237434205102256041405074978935099124598268290791975516586083730334051716991082385015275458312596613053996411619181500911658005202973869789951410548904396906748892651687263435146289023997172195849938823127243780853281069092842557574215434036439057732602067081891184149155979961302046794449248275243177371283646528772152262691576737731567176728786169559304820107850119552133972685621223900802931574865702169275390360777080243838334534827219223409844528312449597801837860439354225772768986948247094698145770387026408025699884049822465581066078442661689331639915284085230914451610950627591080660482791094624294415642189226545264840053941680070286044162300708935824766859651497553932988309672694994443694467955076189268346536817405536610074451903972884204455891740760701226556787212678730554100323992643450261400932687872424250387010524253780607752645414170885534171547513095939682590937818934497779759462043100122441475492415577720008853675698836879456775763480164143309382921094274843161191169387570807332621701654748391954087510551485640534382560434303021394246520251374981310988006258958931640722908519788881321312399829381722365591807668444085976603807470473985204476060401908537528908584962799432974297015232413456030017614822447545674873411488862860794308125206033624447816075441517534269091459569607242085279347173216823593896794671969324512726039941935952260701764148607901753667560006503106384058172998288451394773815360445159152177374588508969379677394011614659597568512869477582862088123936342828104090608796564586531063100458742970502989566169123323969802203556868801769916963109340683021934047650074567698074341586889655349388302873228800970238157088031376364403155495037057157579556637850137198641043972713382276067533203593752860721124482743404051776908970851890802155114320046422831829521954891684163949101081122956662205011687006826485436309378843317909502169307944776394798492252474856760882460610036754354482964115698993238524527344347569671526970927604281986538438430013557306962858027398739031025218355338183780750546864340726006400180209493026313966223901447611020639165309296007972392901272442657360208430161715460293451173728090115678855378902631394408223029753535665602652685672424110495003531954194258532042468443571635220993196419530019576763014138372579771005272998978495197262861032569792394625404542848932272428497305948094736932077389152271347877353256692158687238466014788457443321938943611155734099335517035946429952393901114506693040940684742076172365043979580364923268380908128089545021866612855685510718996387184228138834480751749871358653397338111896374080843456342327942535329114963169205121928904078731026947318395582118064044189760822089187542571441827286993706901827162918006724061404121043035032616887556628418169125349461046188105777080612155824938168880315150122746993487678206053463514568121179545311350030151347165194401970958473931127157563729259177266000442481637545284756496013656951428977057561437538844712754987047541412573502731943621553822288376673971060768932975081852639393599258569442813325697742235687269921752951137932970266794164213115565334065268424026143969530277066708719859553724942198104937765314806575369168901495728734470008139737979976566498695659970530888989439220978090827543544581079867028081076647851379572500544555781803615747258506512252265279208059726393117055939104229303609316287115652823371586056235784689329083514038860805813485674904536938442314266502264697863747830964697201618661873791524291489404131208638325262800558096784280804719744953779419163561281439911755319971188835904034945738358807794325940420423272571470611263502691996407498341378203590601670466068770751634923435557578559246380312917960302634074292345280381250791736416983885830666203994662582084221641274209862427902632919994851713592123230544074073804592147594277984826920326478278735260368462975674287899557348479724108000474092105270053829209746699124900667593166938549552016893809897160638937704621522393798339469500836801699400996415734425331748289925446617201071042246946644450298646102157404343122971137308590408832360274180431926818550491442598654437609987060338587102077202742314775952512825596678394416857479322141396876439903404701976752584128692308619593943063111726699874322441523015800201322168002060330474327326857281700545804640039405655238038552999321153604231185130176560135707979291225083571371654319640496466582307334024129762753370219201999936107919318698134088322750210999992707945140321168281845984128637302021004074152034438219290238904644650932615801654264414026360049020526027231857867045352118173178827855958105097450663837624605067833810277487662712601041187817648967575497808124369489533121446791651581095670826018274804099614649495311505086782971040925129598762143981687733481285401509749320188217391680218058957686600867928482488377541561787899260832610259500245405006895401305116417225869284009619972624805628491190877930693653685074399872048028449966983189082602324673031988881637703993868496970835919506802092385811727812830717349302942252096041148512649389709777282384188487794746252992047521161420290764589418839483147303775976706489710019960082911810619186497927045692443948953001919645467474439973362459650365098558375620063131367593010545918025943680812571176533220284860266068445528014952596397062592064793159252605092474491369070530299576835289786415233323502271293001741215078925602753356561823640202393249014403629279038131019569015998241592624037433980733415903372502415715454481514239677430519311728363306104493772244320618950259357269406989740845183323967724644804084329383982844434415556917079646110329874459406567907662069791491869079059711493730020218518681270642867256508420433954857585919569649713515269603720731561516191471639640489273287123113958809709063482515384620355918836008346672499570061487179495335324816473773866685564352813744572120212099384882107342182354903237918015344164159906987550420690822480967784712699800611484454272306076161923010531426825307623493600322549654028464964840799487429719906034687085651974681971296801845239829892562987284860215214403476304569048673583128939291537047873504491348923139045844876873427257876015931982768625746120236609190323066590272226138321243545536871562372339534631616983269468002283782510319872483415687135342859612700196175258858369947354085031151310377929550097916324191055572334261580399449193023570073356937331877901712255417642369984800493971887074642368272153087294726008532912563997783894689290519063009429893213425261880714715340361156983021079207034955384567837624638654094991139961428790147440786345800322074952306105167869011946405919851395120193558633686356382316941461337263576587050040833224046430702871604819286087213322983890616498444923589323973328149437888773224831307022751261302397031446605197103915132474660140866983675272839254901067742787749270918431022501346085117835707638863056823031973448317254624390908857761217093755235707947928349662090132994944506789676455137793916828538668261702283902632754251437409597177278678123249073850403898632892272277921513248932620690973608412283991291967906144201679054482383354501347962456519462187536466980678965125429805658181281131247587692962437605571996393906423220116923927281300248387367614827552390481488760678968398297000285346283287222992678073384985922363456702283531254344383190166675144806598612954631570122063230692062380321070338388816823437776136108973078378516092633660332390331253505340513859402338627742765184418494168641453383058054804212631765382336897370259351303040252948382017701201797406066728592749407153296014454588857438844595840595215987600702330466655740191220716768026386243784527722928712265831405031995832285448985100413783906505452904010180804362364875138903707688316945193950583331838511858087298614727535219421244295725895301712479956829995044742632250830704515478017052447389588787943964072059443392249679571202140304788995224481366112431876016929570600448378326214843851123463571709394157053693534914512433361288908202211711854969159081311119135744084573343029795563480704936454021434231856971298461857108996066280480043716333040766733144859903107274557303150946510179038796899475267484224830813560254183930241981344635925753295207008818943198880364044629331869728208690449715914865442092031130036073792780031441078591119444563494272731974685683315999915839513279389267207561541428774928040121325879410585627732258148854863310688705634037626534114945554862621471995178554920891279062826055602243123697881595915575426293731416105006912389276905902221035393634644963556380121977554893121487012124791607638254430921032598921848384363982281769469882810963770875037263528162254600051418491755883010570448515564868981637733601361863510498425155394622156447866475192703218752968182548757692840698573352055062319660076921716571998003781595300222986811517495540903220977515174176053805803956219811062412127384632978604146598631057717063963270743908757805391189589319427220034514999174484132560617818663555381039641816157499280697392681380747213974410704618769117535062846981250707138022487652797438226341847817085034399815561428455935299960348961097843548422561701581404841036919412745163385386915676330325200946600262346916997408759196387823428213929841055689832127291229245406115712454851127062138427022968398821285773576268163712149464067302492376765930261414636497801673892323014823591610769538702728115533341094717359901762757545151604306135122828884579798939510299763332444228296205355758753618197691711938726039312137921915572808618042988678622184445165047182510940987987894462302248206066911014937392380725637098766389023744809671096480037710562910213914506981656841821462017705189832457058002486802395443136591954334406865583458279287053515937768411265266300311298570880819919377572249662523648450683286560681656410267330835836766040927092321010165841821973644341587001863694159500975069147886619674415672313553053121556585215224749795904653141961120032552048948785631614379535077009389144223335058294382164673109813474405845362771078610317389220980632233662834465270233272852440288832369038120984556475050004435635665539122118804988204636993941658873658700984264191624679405267783679968640206093903655417099285953801084361185253560275467838887913062304220484543188568107140487615058065116707503635230975798524010955803973287423766142494444013839606396132780822879976531783398976841962560046031216155541805654693502517887940807684142836975031012011768606196134218704702762342136675890694545458057356120923615737421412411389136658562459679280557474780107747402966769238566272327351937116745902009464780793062431079581583938737789072960816357329487677717610981886936639218825619256536058959010519296911239489846535661424933163084607430665133245569916977355756499785393287722434079957887537430329176181748842268154565096880195242607823688036077453778013370988393793401501730755912049139591524921362987608094167572384318719161700215787316024229592438384235197714782862705247532492352085481049263552600847210020788841661226994150479482883107509666473280477247322959092111408884754888728721897016934692815357470166930574383838100338776528224951338220601019445030985235566779943737721836312986250329793950728676793235273253948741345836584930573313236288526813327276350021707412497442142087569365631423906566063312885136900518175089249472135798808849277716566440401632644545824864802181264052768151408710974207419835126265532468432944415348122131957840480454528731634165432088029713184875355829086952573298293926317817509729368804566788087008126890319559263941040517072154749456865328970911163844611602189420975378614017446802726106686670456249195291309372435317606673398311667194089313688402487494456262052989604245315920133672282806754331750889827925097281010988324770522974074043400601263271764471639607370144265255865582351231399432977835559422529557826061106065834369361491850628598646933851192662983759804270142397146172389615988627589132182880801793968899079932058721845785064224885347222065792761954914126771685347534165055046793461278400350702775814708493852704173446032923082273401249012571730756307238055711399385696421198823084254629380556920866225949884329798112059605260219790303478694359139184403720022963089005358535491391122928568349518555688866493336789616699583312670648857472594920327247194651248274906567656943350581815995849811704331317064694185829780409286696757468591794293957648981494753807216629831179101867006621056752783247324860494792339194986497548787487153684013775172326372412392967570466991682227193844283197672738350925517650713829556305236023918788584705190650060628105369017837092096956649659043861460746077609420230393576444272991772036046158033421699446914397925924803303035674110355997251859619569534688382341336917605378358800910580510681605768583585300658937894297058150456956430038165211851704186544945094746550207082263018982192180156756635744350475072935837580610317112195987563385250526418859415495722749666800518865186038174583828884935188027579688237984874239589961438320164260120640307713818314493650031345419076795450121062990301859276465706080262990481608557934778325910769904746528504353530173223333877746920338663155355391412703418584073379360987509322326075363837204248243924480479542286974941717075731898638226344762765512107628256785101575592205466267659444090362340328968598335079837411312414180710791794802405938549576414172162204735633657292154057588737448865543712040898563520423549776667860645607658892751985959683181010203182314414683609674412521216901532593154108846578681076589051958215722005737961253326266761213159772068450907962069020625843438358496471009373177476174675366012509230436734270771665831607120389435087954865685452020434861015551296805724044835011996038243164292301243807812850431370407818306223838820258882936339272248880473046232416864773084180854439702642302380159432796325741982442394959063491748653620197271712266600433835612085791946570699635559598779143356324327874641746983418182801080299573034706326406862318527264715853257536897645669977738351921926703673078502348524453632716541024667986149781477666903825283018451885410553881064973301465068106973633195794462929808874918432182146769484693133737666273650566108494918358903811132630830744633843954177156703266067977354925158982405468895858310625617865580943157541254482626637631499690660956378255349192286539622860836364942604493585127076482221005806632117633371286146773402208937726773155945746548934376734088015724660141669615502250052982022029924094870984351310654528599327463603971964366352564726101958002081614417872061868472968319772508537100134457033911859677916682660733796754007880039517941522176378475185800298339061371450085127069630577894039691799247214728432323224028716885206804952697792415902307339811875824046672884559307675903976687359475660015233780409940031449392290531278183913736956683397776770688342827872602245499905346824535480006350497323035205681222163269567435211501787217461222702864387071051579859089127086299378840057500572766805516390830399116951277170392133863431542737755096616049573151684171045954421000478632834963395870953466046658300184557705679429215707811079416764139664836165912212235213417018514647189199746251473599005369608838456782040789131294496976628744342398408684670636440062329067958185791607647294980402229344536769941325955320441197865518832890043254512831283718044598281413298933409660141009964503937263860459568068883777538999087840213681049248361238991639129589445205284132920464889727171442776552603350642221434153879757605759715464475432426917133097989158517542806452532588605637628825159504412006233790433133675445482933301480876008393307349307185399439154251077329004632314544903401913670901384048504556375577644996770993569427457410543773648510675273247614994411264163205375016083793258296831151844585285674701934578720014846590903424309026504246530806366706074450592385079917308911658171649383282170464297343952969778475929017893151969084657764571679500027927480959264737446369448842181952065962170360193689788346345856204347961737036300278039356045223166740121542045618700138627608664967017322970805507159373539558067732497816497751270017328551063428554580448224105755679760387086613093015205209403146173041235940588772296591442929770032649805527254786990246483268911262442021684870489573242986066868012790431633474218015975577166169107736032956869206779813256630728984928526187594541903786769356748453303288596081900125677995489518444549218455221894030085654250520480735087689644894780000499568455961918867055492521588166671933402555687027893139835990985253345389764339846277366798312553119646005827129097240455862855888349258443520775738592379001453610642152092716391730936964910302434865380997672444260950437184990449312674760673434413490642535682750094315572324886546302412054949374130931765320503401405776466701843975898547245209893626292998962183611937991318478025998554478120171101209940611883333751463007925676349030901220987832395791351994238190774989922912066225141767475645488502194636576027895180900036689887343318825057352569403118624435846251554660751030713845344015189184668081668768613811619359010343935745158201870860473179913925662536553630396408936220067655164332696993110669926781872640357180883643906991765003774843116454700932381975371816004423380186192041183980440453016862949547641224615733571360816262239859593226367372690563450558251225349207129606909996520949481874519375652998697435763496144356596072250742735481709613476826285208095610480458021305939752091246076674863424229579247172651831105541090722875876634757968070806216338751371675963312539123385547479150181190402169585493403823535794664588435775614935094062969559915645900411998669215588265162983559142927878939587021388773044497997792052901939056569984947462207258106414188368068607583565900087542157862001354622802174071630165626170852431317340025074451666379776820290827004377010868838924880512297011029758041627674224115276948935632137788694933525612567894383412314615954350972322142820237341662976039328811003377077955016060060793360709579578400762356402023936024189793006694141735983761646571508034917244447080892622238853182435120069190623654115433253852453978339853370561990335587276173278484101577325988785175544703386316678727862291807337568176439692710167263556486681027761643769689822333331594155731758227522687267771461012914087149478368303548646888091324612724177029121879158858183620001453196659386080841375881741092524516993026821734463619612316571720785746428056276801551751018314116845367919375710984087456077980771076768615057472648843372297537165151595409026602615516431570884329276332765909227271112201061289665902651301516323595725946473357569214391741892374190032556789366951042571500700962367424511513610625586333032973706705650378791636853938612281243677628650349140335777002654072753689446297775269846780159506724846358526055267613452545380119821250453548486388015086527350981180762815868260500835210978243727115998910194673027516445565990891899736210113774224173820104749710052040343008046220521016986514104841806751942603466448304987664852341165267723351946216290568326735382768059996954335099588401937912186814418916747152106000504070919707351318427942293904952602085824716545644629746749879209356307154308613449924993646278988029751435423228676791688435932449873693395652096607799758164718541190893614573120882437383712689742404566005033544562301466721678345153058678750462742622598595315146045881976892073880963960286030348829007428162767131732379453939032252687035504266512688430619410282520301517185704925814013759716659597105358241832575984367896716422088908279199514233976455566388425335641334708372604406026816176445862641462740258056115368085817497622340765722536539942556897919791136599256704255545823280181811785970309896908984685834937654299551050354634763465006775909201110027080448646216197274369536403650911884131353152470503100306880819189205199681844409074360810031476944463165168278481732230058971706350492029894830077826743183618748462635327821924858703911938803685326546700747006500795149661959623666790385014181390897303751127573497094777325876544410653923050962755695591334260312589844819816390569174692846866175766250022048035236899222499675379682767867023679358898191633539753464430274382828227394907785669631623241426218235536650718199594425476678711416508969817298830486109350662005877395162891440113189689430112666637642156634909203433945008167431902882610850333962581682802379026435412402073847506685781196449672335765057757508213794594899687217252956362441734480703461470149157298605638850456909374218264042959663726993638478937902267615387530477493158479331937750406856066599386482503684826105599114974891658505566557531282366693011963019510492797381624510530640179557821217437900914763844446022973005297283484934180667704642990344654277217756522135047858289678572118889371551402947752954750702069548706017937787606190168792516953849437729140297195281180660547437688638498758463339684850805425470452212320295953133618886943210911749364876451389056692938357001451776196722805412652193698755924815518082838041612108371424535561221673116856216109065255539867411865420818536410700390576808887248731904557898869842129261645059601756002252368685285247564652066140073881968318061538851679016589767469284733486101218638689005316596530222649661539036918492627093935533191733917464697146859229572007049439096331609783378886214212579459674510109633393052392157715269770222074926943373039310437941931395723778979778169437228336562524874143756730686061424271606365412316228517062624155639018130020416551822569782728009343960894628114665958363312511866513347596556879742405206471053899281616208539739371290317096578493928554870251038917856387429439592336067265647174752629083788913269384190150587061191392126845853288663380379808245131918685417860672112294759970384967159434014828903686149448104443429522236107106152176720517488868531165767143356988856828108486305140515910465381171155907285909258639140795641456803684180914048761088318953078887247881287270067365638727978487405649592724535202796055588818716168774221260143402414236266802074354663110603375031919907042700252457736357812781926284890156513272289385954587179506840611662929596609558819632303626927613879553781323911252224997104239564077341448768088502494935676940556194221803171427428482616102016085672446394402178508869124215847819026477183986047600167033538756943226552239421003675743947817984830715588126761976991799017418016250971366127354189850408796028342081801755676208464211215085953660700206204337408434900760030937437194052077412247344976401640292588345164036905124714917913629012565252811080919576344750795501000389024770300877694757873360646615421884142376941995787912499939675421811335090589990016791830916522998511370219174226822263237283068812559829298569132198579640838187827734895352113536544540262254208483521296086312287824445598197995638329220654765690467696524627022507706093212699225220710386002098320421268492021403258541631925027098940319584662326268967093035352720528893802564452596321040110090398012108167701461408023262375702794513875899926618667923682477298071450150523904693942475340091281242645055781169506973997908612433953407084479686207393136542060771318086318845407688716603582133350032344883126660005833063473399683370264128026998150022691181454131719251387857814167383296748368663592314175493409937699234176205505521230653013419994211605201609837296278149449031164721050626605274429006326836868486703944717185389275029355841265094235085451728048323129504554201946773190784828012603933845350259597093662719872821755219712373341484501914574213098765355941955892367054156811359818304000926338470531966384683867149711958342853516478595855524246557551040741243270702613277260507081988030711862211397714025413893280177568939659152614173893450138749238875426025794148462070770032743982789496326037337435344569212917015652822270409276798067013990623496745775258711046036902662643431584128494410238904461636190960383683457797448491214958301747029219199938508266868147724953267199156682823232683796649424100730281896160133814562884975075122066242392387803552001256348505881212887795616995509633418822601928200773818190621085291020888657173758478522421804371600199891820368614094561151437161078101749661693561292179009918861374687006282436714195149013533774362409610922810608437536667257137680253374620956458272567059610856655576021362314905872148752536370335668057801196898984841014245525116777629793924646361164698612672982763395228649085498015002545950840982431827830110428381652936702869023452754938553156877256008915990958799953662805075750952561125700230939928772046484730691084633056301495673892992274119804863702628335734292692714129965073219396181652630971054065192713854541604491831117338638938009283133420038442233482351048743825118434091943094505401007323190308248868760185909405997179044313271137221277299286731304750852536724520449789144645258757188034531297810168063292480358634644172094269396859785443557189573649033518810196643799306065368986606481872142488701137752704017408409230173757855184329174196243312073451449132761610476643944158441006443173912458592894352343089080721240550368726431546553840778882736433779379993988574979750431427147926162304898349346863101101508652523873022263718776830971304186114756398457775129173235353790917127375031577832392111706956812890123785551033039553044306696391091281212102570676196267505063696082504497239731945518513042437566072394556521321582472603494498242505490179722161344350343750273038706195433834895971327040967449424793947066696381866046802694491030132715501769975061480144251769334988362359152644030371821771364097788893099653294697220346423979185910392189011343367394565860217395349636141239171034541859759044988042781121981880586421165999108731647715813176800037776384356892124985618019140520996151563536559553240479914124659079912501983051465748251777712157886156054297060597197306815322989141101364644455654062816069161658423425774463524186415925006405000278935514963290771806023420905781179482687460078109489886633554506274472293455805380181049959592483533868217752184175568188723602487487405687951112685139687857785025999055404212757207183895822358891778084594481230705188866630142853131861777715792633732579382180209018718039810551884139275506095881224993259636032623018284162425794673105026743848833894637813651297749587372331518689379340131605526992957575238736965179933169188077568397639297185165689009259550560886423616030519997103763746941828263869509998359029386279601959197020012027905312282199874983869318845288490670585717587021701560153740409036664105721638664463411743722758013968460324923455441025764591408099711729982622745489946975544364745250958131130962291701610812819763121990912243421701064265795557198368285779747062321626347628176277016776965147112041511276334136182885553689983087083022106996096634790775952293808681408080705754162610569260497004126765245557015467548824000857879807350385634651805690881122878656150411200106451779797910932334279464756852515835886830649680853908530585728150884338301757601130794241077491598580002013794231371488978516794549434193306861011971014259829122131395395763240645238223325225815472811159056831208621314523447427078107157830397690292738638044710817121419699238266531915604287193179742370693719743770162476314285569996123937644788426845442186101763267995518573491167412131571882847149149645561390284398685344437248255717767534939979782990101667873960239409596311722206076888850906358181517296675685170328392258284841533690327342529027083328514893460508631159954208686138695763017974778250924869727271324258317395847163796579387422831608889914782105507105656587002626622870342442413848452599571125104023932999192964569744015255014281742098330939854335896845112949569537804981095195866312428040209139803735230774951648596309268008601604774414155379002158054363299214527260393177983844081401838862465052350082195614765033923908106897229375548277905894877506784189186402806601232313122463210075391134016130365948904254957044055909420718904890147590415779238599002321242125697414834986274155886512274046873436196520762173531962155099642269032452500906445816095151902733014076925685364215257186084865289323346217614859623537327571312735018690231883404687879749882486366583549340344166225124251929556675829651936500307838775739279400726841162562298542097336346044747708392639955505346032960947732838640576322850204916942780482096646853746225085480765073048267542559197678908791077193714586986279140337921965134394249406897070065467404593132053840431757599176987683292987573216684198236015915042455529979896367214715924466412983603078695896914903953193296286441611296338761731664895720811907278470513216477768621957538020508866380004636049355656410123674278834305653327422247788855179957975290645372280617504063483456656020936959946769650364797010840567426965832072672675907393231702942086288913844823009291426078185799581082846723148742660388455346632842010477387329423719093035036055500063611749782754649489220389482626207464919668298448318981747090218935090520413661685345084021624688517476615549206825784721690297435257254134678889817547690452424978970752304112558012558740658715107786308417577604891468430088958830929085308931275779515578876705788577558620264311628162771409275736952790202819012371328127716124414272564220049788123537168987141727139619580896406234907100081056123357602182882318669246886636026393311593215627288023208321658074819032232216041418259497459850223352984286435485300501172969565442378884749057401086638571101695866611151581292021673332159841970339923142198986850998248413862707428277575681836588436227384103050068706650488480988727832404867969533898442515598471405900948112383619135924318372589807588433650391736596725622842934844234709795040529892605470899997266229463938287196387804730829129680211734637686420353431297930864194689376310919382975221420420877481460949164917240758942898922566863353792342193962847818110209768209186529242168686704416028590639122834534031824775235541008554542410509705082589703111212074769314293271952205149336545503527985712576154118888160278579725855012074741872159859922130445675275734326643567112517074444315731271389249990213818078285640078722268714368889526862374780741719670626311155927751815801883381196155471977100370245684448613853027463229901579494282035548494319847956873795594297324205993934477311091923753407401897466336830842483087944781717728444440824652927622241226863889219048267747257001566830168902464636040246810312073059497071014902573943460990955144483857791556170400105513197991518206283999423591013852926908237523984441754299416097756082524087164979100693994655391746498471414040838652250177508290194667478767569184586776484495066310403706631313273662988489485549872742789639820061317825332571481961943255214834380655834788922127695695261425842951892688694103036986677306805319794848790375213508833668419994992596072064099383112289343082583033338965396380820545588216818065881741152593003225772632801989933434606971332227642368572782122692614982539402130179933447674766965031391643325774198296351223271408190244139704589297637041640351241117292791299679906636068469217395413653943897753510308270586029857937946162281655207637435040385924178756898419189238840931700523335188318531117480589930859761002489833024777874599090692431190008160230880490193486064754657311461655337931512829200738244920227638318619742201339646756457415895409429897759686984733253273613214979302264891997822274382780234758274953716652774946313096734464977841255152054984077198141409975724695898680198029682705423983892948301370956789824844543523768732926859007899896980558842436895002883687967456658678736525338484352734271736667940592187834389062115598102073916955717866568770458102671869026034550806283580343854787435010424678792915349247984088156346778744246841661542625211396388563288758725951062868761314016545526327355456302519875807449753548267047002413617206597879378704103230275633149052080930122168996120298978268546302803304320117829651126630642739598879985210070625112735639996443400200433434042071605190479541503582702822476073395856957086797680854708029553507402744940229364071251705076242637497677935808402400416233467678683239977778697887207936437021217353136992419046641049005684136219059478154048127661009880515822946772517064149724382628167054436951145998586732120802918247423505480724901976267647993950113290627678111783395083213296175350945633605876251545567465577270005815787676885595783371328902089570471036091012595769880733898137161252904904104721070766028264804436044970063568311083164446401649161970550217706384527888783606384854225386468632503512665039324959747519937466321158697913448765533055820605623115431622060144761399880902572041385725586892318112463466825947363121441518084017745406512266458855908038423519510069965570980655633313073174261268356905390698436572140544658797603642958075855481015053835993362179548614629804772580250427704499193878210434282120903560715993287036292712957741359033870995046319145801842947760933413780401827413566496059204371579999415595692038708476354391041288515432045341196312614963883784595470957691309519496562177079333831451012732944114001509335813256327560045690732795628341974818017641222001886393369926456365266583287256217162603548709711741828564619314632666873870121143941859773764806409927735235749914979262585458674356638227543973636719588534126152429256992639094023482181096290029913882706779793133258265318511251521913411877725512094995555306084102195004895431885925617728728878110363041189708728692375917496085166728219864789551068178426427017170231973824882280946757086055085673084766520992079657725353654349106988342853603355013077738211599589621355377283600770093785853250974970724592452193933945894993998129545788832372305563118040033852976109761407468402541060269558819034747796839500044639863285049679528918884656842332176061525847054419599917276683625808190012737827147882557454823161736032614869247171555039121067530846453058590450681387355384714594981941285364638687238524131666620291092057866807197595217928704711062424146711549069252677363928415477898941733372917721985974912171560019320374632814352491467554225029872669428106044687108922072627610885700795692635287428364143004225852400469208729996528227068236340002175259898201893977923358515987983618303182875450699249724182196928304124638356926996348647162938536311177658314126347898658313830002311499959934753656673159714361195763107454442650803938798654668558920479484374930312617194833162645024950463566294899622431881200438462118314504488002898842755344510452197695559702588345740521941225832369262383355471396163210354412200181186539877379871091945330034585890285486641967405466361561283241765631320653667255097363347862554546489418884462767391462966940228694833866696458852147598173306935383311310875782558263624509703466321813190439420761287035688910157650905681842856599488159169864689088331340967361092283854000455458896300572129166134989564295328428699921831542640255086372195384161977185952699558356429192174389822141306442412186778477560439804099612050020048379182855092350862304441244393444749827107993185917068252501109518908224808797972136825897834340914609024519547622588884892010071253807574647496527221056203869961103824452273745295882462573201122228794519408828698802860091377297027841036678896172667464120758900902778893031715547970914707563415026051921794193517228521450403757926277003370701570742222069894484934395424317904372141869942462937519026160117364963103700031949831703236270604503033489953860376912694445097589536667638641973296518082606533912503158821165197287977605388473248410395791165694272924642275026811656803489283779261053785166226300468544829896511421846796891717220671254821284622968436475825026538231118059175851962369079265226473334056902722342764260902903464970519727043835391050042330796251926903116525379141837468873207330804006133433173056227364183754329389829960160169268506596544831685336930530651951009203457369441593967326825916300323902134549806988836095155790316171278257762609824230066747299660462964089175258047782415511240038139134581035436439429668345131406560406074845847318114153229893220721169943328084464686776412524055850618763030909324093924521198196916792285145096280228699794112874069072047309055889334716048857803922036768888007138205384413125324268473028733283659379052419301289724683888086700448357577396002611845126206994438113534173965898721337384392687400202422787306947710240407737602267103601098129287459340151667254857119090875516301319782563625087012295927731324419890546895397690697957236959446682351891391697067357885635650376752516191762513306053503681009208677204742152278325216849022040673452299336464718007426645967176295978614904939436065289120630808991400709853885335795913476830190953511111648842610721749970276664300296783657001746403259177716853184425793737528245445479767751421698562632132137472730598842488958147112104912170732404065169028858510855861572830281211569625294046570291259248464918741839792482295037685132442002693805686671681014822288717553105189490515214984522110887054922769417289019430816135957973492262977532676995498437962650429946748863285427269776105428288345787945905949904410627047533618846061857943141002955318526054632134293367455584591956226618311113079143641350555787751298330535009692720593089435791850019223970827402182466476625559810852924505234020176188754052631068431050437905950256732758016538848236062566789888988189337482749918425468816334508377080866765125250043823439099898524404367749461130611790083712939804303272044531893532200685537637576385455825042526160335167566181279046936678499309114821919510551741115943094498364528272972244135384330225442931861862533602370891290929184091930068115382063094310976181416207976825564230588770093031477538235338249014022756751431600376283557791540323824837554150254748714569019465431581341522532147896136133030118871572878141503268205143646445722341736715414379852943322668419777753337906620576843219974295225361433290240949084019038007868893818575934933477581190293534941885224312050674059653326576278224350376309248626212766948617633233764271344769109228356739489228378723578130041320004792242210776792794094178197010915829126554196118561161708839557369667029572506791214798954433780558079211144192095855110098389767238272710655778584938413510191146929383841672419510520916976043872348082358153417483993690318693835900797358527567977183674210710939818570176299887711997248882892626584133177077951365982474737832352522466943486235398837624304561714820168285841798289366981856161216330913590489975011888985194856873325798328366971894828565563944284858685135887084492148576793298142022128307950913072623842758897821232322713976889405406590247656503600391442220858036439513883955436230932299398796868048865140981981692238024085506776332968474889004594065503547455550474900983769646444360496171856787390131845112956281342748726813940559353027190513134334549153691304823870283982088979149835424711255773405407339628183071968991187549532169530704573549457126590833120740176265950269116410333816297130167951429991022329625432281612655341579352285725635776457284680015474110572498017959933399105796108388345350462667435798135745688773018594732026066482462833798654348294524141169457151296911541312273241021735966555906409690739534453862546521049713657101854101535213040829636633604815160647027698794421530953212633915525814367681355622072637582500765083195548926308130943885337858840690394721300113445797201379635258444548594450669350742993381909619609848252754259348628043116382292325025531789462039491977632576682671348958460700194815600894013408953832086157264152181532624396028314867380442606010904319556789570534740888245075408054445510912361950873879409394449980783405050652589042261829070412605728086073889444327569596801865667361147196537364186035007806769575740526059307782857537363020781908936300888145396051369788588979002250538086802280125409151028395642999621344839759894378067546991841167484491177214179414060270779256740471403637634601348702854034444970483551115224564622105622509446460920165256948266099842093292561693708498715133257033800072813928653161733322341420347488551055858536172254644322092150733957696987110173022732649679577703107560910383155997362984636384671688894178037192452245984053009267367136597491908209535439471926881204511393768010029577954369473292148713392842787872495329050652913600432612894198888860711852181877484863758812340992217512670053789930946198321556125192687092185913403901088826900049677320315404518430887515543126841819701532073249901561006237799789191978957152733270036936796582722805174986896379436536378049776802857367086781757287876267380119178391120124476288300905782146985258085623428020915199650493055961512480327461576504675502858704078409062188235452589693354852244731399190877058431199841728511819167145318825972759440727977627246491629049573613345137056225355830420771512303184820724705691179764210398149652524288940763709851254729402853321790038039403764074780378340245814785975262218476842291427933107619518769845215583959370970010259110685299076699262980158691888591669828287361894882314881589183452617047913625284661053523165671303618036389822619056668720400429141252658523020839706364176111409749326401928632351215499275000194562797603894524112286018290570456582665745130785149912390644112496784753888962401135457082069917291995529377924126626789443679375937681921022631330385217134445290731183550850807765163436728829330220986802104930950785127522056954445055942471003991310514965262523771102280345621912150769581931080862201636523214525736599316793163900018181834466046669743141999253848162614372250885077424418322723098662942868334996736460397727140791346582572618099413145726156882594084639321577824603402442986376564368605757851440258557357565322223323131614192640544891353826031538172428462517334739033831468432060077673444689005943124188981531584278014254709381266846661561368043416914805484382885716121436327639063903008140184941614513229121145424904297179484467472313802259323100034372910883120923967775768678813549656273971962233384626328622405882686075264509814029120819405785570360249385731314468513046500477698139320166409867388575867797841118016174262263491129816048503085387208053826525042037955713793984381828348574282161421074897430426469830677433884870170538607188448728515436543257580468963538237830836096884329716288073900074330004556986396370011149152656894652663517423580745914584868702766637075746271343338561418179539925428158746631282155707745837264451002952091743034312496026535038872165699428042079580012731196369446662597632518578222787863321583888049355730094695045807350952328048598834658882616370044334741593569556134925971466786336646568502058069514766838457515237056788941565287588149373692248730336203110540999204743291053357272106480627966065982240432924480111216873319520099841697701248668428214029194783278724868975623119669287426040662318858588284219893303767661617639166109101081178487007112226470402964198677646059136933296490777471655997103967557247325184993820186974910027804408968243893257755599595037841375643767917428168936400119258935017882749156121593222046317573353167809871143254637870509446723178713938284794894561573638383427202568885984653122541516580933742767553237912474284911198926387232185468272960187693535022838522246902256411427485992488841060786128442781968860660488176917232051370082379841824573957800444514406889119183009650351964435252169370842668321646699992804393628969996653922219842038039756792102607752514461312503309540371354392834069058437723098409431895041168944955924054035545801778075657085605033375380863351939689497028879730571258343752102286488858616991334233184595370775537215255831448373312082167615612645378508311329491099567884315662612994669644124922263437300230178262680472788138058087725293200167331478391770353841750202460235246698683327687942716455822900580559689633539557452293295169080083480053478264474263158975999390362847669513332355157976626056731745610122471444145306138535730647469157311369344131338924543900858500256419891870219678771501382888400521791379904478181538385179847325745239641323239282130256926289732356214229331079249966581933815256010137654093067921368612658744964212439352316950455626830956408216399567897600291560514151141944555225613505894522943889370165317844064315958343584246761984441708681167199175406563785073686587586600044331680004109103882926750269719349916082293496871597380502006348330187639464595441158960426148426101381942012602118612621156989596696726620655398785071135585224154714974250417344869995498196876657718701937360591438426402829463516094694767224840616534245979265331933054742618301299024499864668400489400984479348866941206033887719287128527847214600148853585528776397405547456764548771355715120900692488722850119239769246573681805416240269696108427823669174991925470149506426834676816667588202479297726932488405384562811146643149387984698800914676200452234718067562148248775486323821884916390240642490177487554710606273205076585680912257307276660736039048580020465349105264957655991116061666925289214529588829223046884285521701085335690917676563628780978077999187659156406099977118710055422832893829572400181212568052581743340612737063494361668653267129702882989511097257257091340260669749338290092525665951436804463370746308547316687806753412643403650763224006724251881699875769478557196180332344784449983163675509232462969819762168898399909895789661879565416579996561057195526128800886108499421206761583548650572238280598152453175986860612989206373681370031889948547109499027535197418766032079722579660590217595496853038270374207773465746940451335132051564655867577527928453637332196497364274780454679454734384878277674948656887242759646955584290894182015432934899979477073211383232851098398117554250902397150951540010824763975585208961815735858579016245614453801997957718137690483049243296296931192135828278246141130496348261973907178695756530232006243453979658446564625401586943108341216923687264057017878439460115901515661773313563694674749864595453651389687157948765819913626268866974680263397836804522686434626950007988268791740445394867649791359052777829799142231544968747985698796461274094594963681738971201666060051483124016154987376306542935010823284705078353577580639986382084168762814692039771785754432973578778609887633205961604585035338539943392018268103952846483774230823416161896196296765471008148332087069557247704132073740410740969271598524646564997243057874249669488989943775745011104526183653455145102052719995951412800201282264036508955653841055741889132618052401687591022584193703151058164229544081573731272611065906666773041186541130066479481157895963585887269517661535386545148342708854059934243538028822917066989295170874191193758309404971552605213738450153989046458869985613397061105341314652436554103673113296160935857491274504529590631150182162237329565447072369613348100926719656312571584568515630518480232682566593552306614716325346372579233436198139964121218832298996130820594179528025012933343469157396351404103378700976654678869271489376395223043254160532085436409256108371282082252406897527319455728942334635136208492733357137916484035366893221590529145586765285046487951933507230777667078765595716981222560466024881846790849395842769375902701330511648623142627718388747137585135547240237435934105828602965079089231853435811874585762047964839801567275736682525870288266720483634855990538341127656580129739186468091140180643605030684766800934858787931560354254804268405086651100001610929267537823023179318156117179127368377220475488849727309227275450646446743736175666230610945185557078589870196119740749833140684916720424205393856564413698092733809117002767196536750666836957142970449076558184916328706644777678997820593126445710974996885176671903545907788660429779236954560561158311243973696639363228309537553147034747469139525855840942027725733607583718934404483304560236969236093320988104836070795311911704683010069681280669786575170731816926698255901190638321741351438908776776867035043810571153320162910561898776393934075871418365421724019180000172854041945252829873803207568642392405050048078721060598268876588973963094231241784710373117312793997717166819744515701743275785822999053308586085680791284733761434629186891521432976191711696104653233993431135070993550919489795414057454247551080648146173197245490093927045951858924697783126429403125276968264125197656703353033369953821015651895622625605692441286116947493504750187007355909678599892063123698967091222404458692601713708816817394679819478819716420500250053718630792941291306103738448359657283439721060446690181456086316504019248372820713524094600382805919625668668430099466807970940936161690954373653682329571064697227365846985474070370907103884821424226664278842427381655665361978889978910299935122174559285195627043984866793247159209820232472965800372559136452263368868466350173577812229890636464628008715142768856147675644652169462946977251816772149423683061070744455940830817241816086203198019167685099237391019291148793723470854664972812776410503564325257466169382524684722156309301212893202200638776672208036804647897965465113659654431689663576124173732745170058469012854600884370054933410828504869089317034060579131069978944474808591520639014907595357624736600767015440016711487328993597942470134671693826353626760422016633596048457582394559865401371282404812886032644774772524153555604663288692456471092649199328768316680490227524467868065250631774498014619413436718897396953153256875329280547870180569583407544584690690471394983300072676225418936841953978644452237822837662699808286885029021052324571934093166683992574825982322202997882416233300248717109425135479626381581014050897479606531641567669160919648372115220979591305749939569557582038058778284859917532977938113395413888202232514286078019679526617711821943043354740941545220587144840758060556044514723447014175769180983933646857113200644317538781899124812978922091231584540816543288842628556683465948399887269054854207403186782352702862678539440266332509096497652714773069753965170509452696030606828503371320995339128158115843508549455925507044738491530971545983968406202135586844247744989689344782636564532312296230689525073253775182688857272846262065233693942385994422987212083808505230385766229569557565794153655569166562414508715466731163264864218084970460044774465705565394589520432134373470698999797217001704667386329115384428922364519773882308212686760751199536362315547513279796886928638431163422466547022009470091193766742686025382504906035826715175304677076951048461549454738788730325625729841600311975149261133418435272894859046991681941387783784172587393688722974474646378025402758384433872710690417311615511772398179948918946459517344367664421816511496278021881236799908038177235656600100300475550560171099306551104849262619580040180241473281255270513080255720876538435211118148925854604071740783420522430728534968079670959027364869833793639022845397260201283198623270784314515109054178036188890706459138514120279510831275515963460433040535920079049668237129306846865305721797637612297155385259858969790302211609388313536860915816448086953588636654133615579155527855222107112043677000310210677996577911351173662454607605798384959720329476416331538534929743938941560736466872012008016969330118948069690359182784962973601714803045211718775352550222871579444614523547930189267144568338412210874604577971976935294776862071324124808273518136965481676493395937404253058450840557663388824427419162784545815350078392130838556316011614068168509755339399832172080767478395271045602264496344440052433612572674857686461014618133386911447945388867864491782469667687740446042109489410107481890395678784444164317981881748649380201326534177505277056339056166025733690260853691693466252994405124113662580007110287213859318830105498755242253098166516565098637484944275228345774787303394313899939284758965312762012633743805155643209007906606892866648509582304029014996293151054274065535649079126599861896720232198959981685949266529485593871662811503090720785352676499863632729475642517497621929216673228047574069283063397139600630744495288660548185278813605190089633832786487077696724773916135017854974335814036334478208830796111318058511511703867620491405693001481822449794221314242948442384164778684328150509764509336408946084510032244941200100642352167744383046462156523572914584615542196718786989267800730866902312530135643130437822153573423559060952114899019420533777313017802065393129275830584200199252901987930902604458669036928887276315805034909284779033808416943427608639784363367238198864501202463187217630591810146259061904004584437611566854422913839122322848323042761376072081433580903968394224347990085501556486911239439724881295956772633259912179765752960254465774836148441973581358637296364891653542919122082616463646145013487078333514598786960638179017144242094928609099308588425287632486155179273536306995342648068560422101375486142691478300092651543306473790607770377451178172629438789753311537968122225914245759526051549685796575875917798405881235711780390659146213414211724059237819136652351705692153370356866503324738390133890483263784637522790202242523690448224103418367667604459723112233483506792206092606417064514673882145300431998591656432267077138584382574591217182834223343038279860445383214546788841616023635519166737638169817911103262498728442615979962138303111855776461666340554612447666649702702448995330557159103323534153632380358598247290544026223285167460543905822412382714485300558915607724075100560458567695914726082784970432752997981920676518983984584833394066313150097096027752071655369722484696793437261573293167722363510314596401341660751440160264613990228546217618393350381235317339968638173858641248438677420178743527596494072561569589154045745063412325780697287636138097899399933230687202552591794573657762688164259411804823369083927721654368803058605068826656655875181440933838587009925080982406654724606323617937816758955322988023027716754325819166608320414510737815701065122892104835530063267404447404761584177541335672264227618998529839234223547526881785003657058096310085319755686194835098999726900844083247803468871008070651918360067039438630325467279024684268330470869065118332077602204657282141950583819655262048368148975449135396181743199025226742612052400035860007104525559292332759731074633841874517741556127019760467923124230279479888080307049187581337253782785463555024881302129268311635939454862794401078664441187783474885955125335618397062874287079291313186505743812911178044261218118894113577233504772636353997349000474452652093669296389316198267859925094820497854597594722434239014755716459997220445737156789433246735601959619264560608056114336635783395503285810683749679576524525985767983512634084133361184109115435519842470031836214019727281983056601867438827284840431171951805374250903549474547197545943830857588699590774882104613068272842901320179165771027089183194301871387681615288290728911913838701975791111817975327428203543001123877007872245492001516607113576372590282534541788113389661209843417761040908713210648334436735121553520589245421319324214833995635549134809113257300701649088300165431685522404364394824529394340481459625623222146015754968684558770133591399664421994123535958636202837082086269533374025274101106161099902272823778500311270821715769654179602583916226327030345242121983797637896345617173613091652941528704193038374603532090279778244291764463345474193079997247418274759700206121308789575894010683779065777664488059221113743782190330129703987278033006695473595912767886999886482935751965170432921990471122137766581159687850068390774682045412557108087033106765292471727335667052679577222362041682537855884828838227585848166535418061244322861618843883942997962614463137874624658567364641414318398551981701941228230012077617342175850822983555951571605531889759143393451404623878689824423452004376234381578480744463731167551802757824802121938652397431853205925557451921024744066172862048950957738913681763118062812376117283408931267501427845592732271233582944751826461743914441408984265456979679832589235348251878120919080338788544737374243289474188252426831378948750062912070977223015972038902794733367287074654345755998819103832608142575554588959817471429968623946616050381349826742536438814124865210173395671062858043508270027775194922151311742883960463959802520380246488181065613980724813779549736249882779376461135892937438803838133478074487105997882257271393096913801866723517147317041826127004461174311502684645683086130054970044543148285724583840777089552885397339666419108906069822266247351597757261922434386314861353911342047683227667953375653923656058266158383550817238916766630546839996210839982416653202318416959515693101188583107263447205562956235477283035453570940697921525211839571716152503094118636356207875575060313932537149391470919831533419125562128339740329112197112791747992811240495232520012297100536984355995627448640061928149004033036736594434755335648934502240862126570972882514264189926914622947863142629907380324925271382882334076117111111310155041927359818915394527621369555400683216086245468219429814636014068656096960328927838734859957037603558189849185770452401747655738362975719212871117137606568434454700900349588814107604084157261909385926561082302261968598248945886188332082871241962115960427881215157073054491527030407790731383300524636697779342684266691222364186775330230546543424237053588367660284639457287554800210570167381972058619295819648164250512682363681631459604908174629270882221595987875401625533243818217836332838850006617367532834606390509200992633779970819524778630837938225788197987395066752943234891663589316243809690226418830794248469288383900449290735491565247528893716360892311786194322594903601325402562182380454468620710817999279054315169848521832800953721513194790989159215615046437808305230567458379423927382473766218064829495772977943355128434826896323525823058310220369702632461541892250729800811535457762001534955295142159083203000878868067972337521890323603371298943309787066672078767052645336294166602933147871244474819155406684703110729055302504489986990762507091603437675726341865604589094500763768952217443745609841625634930560141661408044210547434273656241310657627159439577753039232815473256478809266854576352443933989973192147755483344261745727763412205899834464744002270145660217272223896316884859479008647806836343207054856250605417571009686659377084403256653671890256082041768863066362164426771169889338658124554702603997700115301288102898949609172647970119840301506991631999683167820622870426143678005193540077912235644168281704467217110658915244971887848494020631197790357075738479917307815782471800671643932095197932539577390005930219081392114360360530633455552319716269766754739682264119080101815084808656580817305686368422307770350755976091335564415650322562072364253313203423219472929805182761425440910529697489414787321127995296844677633601042310425237090606700825339131025202610291742090879732624259441708284532554728087385891778493071641747040822963224093138128327796983565225732627190770701005590894847423504183159099677483431352670235874947969689604162930786912951963536890734924660651580552831213508165951211640139804030008451782393065470069361933613682697927556781881597866257798179135174945619611052774822138013839763062121717563231699959476720273609142360145961964010983587035342948815315387495580503253675724141540986756073955889323224772001825764207566772079635687844985086710058620504324250747802632780334727936887648965193152139431950429398833356460637858498522723340092872642067028124458552715307384292343817890252403232459389784194610664384437695849363975861495379462684981338684037453948031684452913095440974012908659408589849988598064750540355090507870672846535552442056889591308816237741313361985240569530694715304726273465454553338449437343753765667328894486886439207302416343835814273531185154364438352327233179736586839603414990873059537300083442580399159785235810485828038606200633761942622349166903528095609586771579964506700729096391753339214106135684158641628600314453615723868479384058970131253022334217874164248736723535930136533355322011318823790247056291180591730158889504234590698458224990410182650414992343238113940554889335680608601075751033868685036135893324541152578175568719732270330625740466131657072769880433369004874270182533419458772103966489957185353686463458468283193389876667362998538771491587029882723460895271643789300959443097985295196258195714667388593651976703415862658285480625682255260922852054060310033992515610941283298375555446284223765340170614593785311763659906346084196070822927330981428528685918622969707092447016671010703776019183064562244033749570595635551870997256216812868288752308503566423075721755293512236431561210710316921926691563549804735527367583079895197100483903854984265583234219439895822195607945568762995123891157509759285723469861142648830879181859407326143105699246901686172107899578872625258257798624558050060749777466889292733786801507385834744635356940360550603614513135852202395813647149523974289239164384003538200881082158973215358065434443703893119353742983925577654760095686806342671198243509634084598761953468519472995692021418297562467449382611429796771215471430033326242983724506818927475514133136972653631282909553529401307485884896310320679084175575439877300928038458967536854672909144093482410725984439137606419644506711835858786229167620975701630889619527690330435457456155095425929799215796879885845172016927180568359341070852525779171666411563354206505742411250326284801336341760388615520230170166840079914738773148249546766458508066569992799553628648713018791570784765841735311691272706096247508524503065170256777500359963928151616221638389950758770709194393997965433832695131176942127553460060100311273514664680566921386601130395438853372630294094520560766865115996385891791817205063177138898682877837604172422300277707159188568026258972361610013779802907967161598237799667063562629691807169684563201102427192941354758996033726522972722816528823373841871419579356954501362502330937609277891858530788942123453274314910887251210996527879954858302003710693323228934661450720212328808766018929899476901215820277997422247678393527324412406311432260189235066173820271337658056777089485264823787001725531788611135977176146327445030520607844242761574132152737986873847821301618709448539365375585711032751513627236674426048568074984383028942247012909485163987177410116688621820677099507885761621057132663578909392918883876557839450347624003816650020263364060471551642811006878542328942377080091516509607386876720302944184578279660561669960272399875467713167674698683733884663487238598145448187067659925783170885354532158225661383158037558060208130017944968867187584799717292797598972039929750133746091600615473824566235780709233636283623262359205870276608619968224469488250639227631815233987928704754548241437204481405491955688336947059393979971506905836556412506795866845651017682407794278685096522508170085554368581290573115431138353196100827178953380469143622766433601219507478985874237775246785099564882890972828557910380677622207452230227872876216514445663979620980248302520081892122728145436668261468090285859900328189764211214784539602819026665480534109767053846986219223917493132146192940661708743733012072783132283096343907750933585697195949608524328934834261167529052886473009597675233107977267152877542472670632866394043769793293670831412963343191374477045805831690852870159743032562089669933945760045530036512296929668430309828405646602408483409114501442206883335572985233856614596553428869026876706783903892051863780744315669307925988525974289926703294834793537860612899440767288849617577181783568212488969529150272903866947478905501248523608892192529093084292907440079829538836638924272589116032927971688437884024453815352486491612070881341739701386687190577067705886766551624272765884903496153044119922912952968537378210429936264544316465519833217539928750563707291684395734840104482981324972614448091897135612447045077047985086621240094944471271346107707493871342598534390204408828119320888967855678012858730340864383488885814706070631685193887982997741565467382077650856220671195960368456982670376333685367109137031971511357549629676910212547652982587299296593200732971028496744070569236910059952771228539927642968862125995345687031274639494365430599965579259500787183153340353002699208775139745861073806197272068117482630824709720550450077534593801054743419513574373456853456782831953870104251455966287953118903020574004506875942204893719518475006048162293947812860676586773132957620837816428510569077191433756152985287721160805056362562332626168300988300757573244645975262514569964225636916581947901564095222405929812770182464292174518240496512317956697905167107709679249689995488847711643687786786489975143386432955053553000911872741041127628601101570135228781855767554682259537929663119306187101577245266684023344068890908389749284048411148771322916715607084691118034791206810071582781263000965202968006816206433762051104912860809811906928760816265884804081123572861978287765210914242918098998295039915111721752658509977793126635809031216004963416803276994043183786243643340251510039206376769286115034285259561375909255830755115072981327503813802007921313949753552047667660412498577016727062047720503461421198640151049544184545285135879257423846268803610634617118423296747648393947726461589152980085802914330760236747125902101185736215611142050775764586862847365205725603590309190985537877213420092089294580143722265255197034459744023393747555986145483090772426511289759612091474403111102292598756743497324294156975416108867989671072170828851073972678153665285695923960547318280034155982032226946074323841760497619910340732987677234596995916147335009962788046485677694303593020090301617987150157448704972203838021252672426956583346869931189636884925521056849610175645598219443062148613881207160034805525031490707616839244604466005594781674011994685524861063202868799921611712345489063212581721070726739042382861036480931903342396692422465026418989462047374028726844729635298517627046226106332020104054763894463600442889305542876417913079739130856173295487332911981920177720288571043422826546575370194493836374199229610693351622904090504891108134061811745809788238190903239218502658920087554065603963980120773371735477394627176846244610053887657186418746431955519788272863051018579062441021148048411043446546869189983707499511247701914777840569753645398554197865416022670610098824070623957957181110177050526596561030643146909475090523981635814064330683110596054918645995175063304880096868507233288529056767880387234473559283330315024517941252958585852016897948349643457530230387036546879767449130118130247316912566498721286383993624523496047449712793663608276286074914955450743331899526299585760727183336538904030834983764750988529948948948034298440504281372265033721912957398282143281956536765762036386980008851867497610069362486817215151005425247223639268876946986770301727232319877146269901686299402190353997668457676505262746758373283541564045500564441282382434969862098864189897042498484196558405997334449843874445822555100931736840807177240281585326178798635796072872882159275081144216049999215355456959731719446017243376734131989346408769611246035632459983993511067624743655494515255506384028432279009844407773049932629272917689127842206878730349753433795085607662242532903576215563401085474720787037140780649708826570501753367466978800935477456754519603393950039352815560791647996221921253589381391563867075310158876327532385642535109816186785587465540658694527014014491438099959594397726391204190358271951694066387403046693268691866306125135220594827387038219292839643959740477222106773627698600058500487792335180208475448592872949126194921146900831313252753321224432348032199243493701576360581866096425743351595684573820096488404297549954226116215269350530263602654926468459818244149643436393790588134760522106413539812449850395443232168678086659831513769518441454375749974742055610329627134831245118259848651771243054397595285757681826717866371022596538667905708517072947535278100284129988642286075321074400212400097871750824738239594620373722733515098766942640106305848492946960738637044624725547521620653211233936877118833386134975955901036379823444893933099311827769324467692138079446828509935965940399252409414617626075752676066023122189326270810530526262169421561742321559569994406703499862014766645066321539541239038162408492353580518657162610659637850135013700426425179066405996834202972322576122737650742092611672910853395692268725106125109303050749345700003561374708626860004749708452975145919889683573730387701841153250656646527268310816521956219790735093946630751218565516039118362673896905592688243963668555452961169988198573404761509592640534137493727082701877837302895458107358546721836523337372163822196932598916196955010968038121424820467639797875751888052852864888368951215704724416642447189496341564634686618547911649630793240644876527802658182755904087537597001496103238147635109899315772210149946748972690161285786986283797841896857821202431641903939148307062198436238670833680451431907305340818050972945711313380818438885093621105942423617925529290792534012528872373412279990191886535759099233724798492688305191549325512408828235701237766222018004972354210855908637100005944002531483152018220641830938163048016396264581108666777855674253887504652752825494010883778998901564058093295293990423196832754046191497517785307750170297819091046223578788973427682497630579880072332878241081359473215367605703486314451987210583326632837696226507654722195570838490045155924397648313238722074497989531392823747073468977576568045808374310919490845423449468859574213524153235449696548244616697642639615501073228322653792008076554392216537610349185712392064603299020682549043494774901812334701108960066003985439589564420156623690919807565621746617469083252727757034508773508340458597296531279819894422902719064701918468201525562209087636021202668219345991478113224248470517635461238954787081862222571774474294094419958084172782626799915819122639651176159031723900638254289674207715370464429790958888832053185008752338155793673594029599182794162768243508501601254191527502587098728526366923598949729393459803397919262222163823824357920751809203706671531254072610646256066492008619110270292224392567653523884842445404960450795823271059724440876949233513727104323572726272408462377032372490514874892878232587736707066236388645674689579089197142390848285534021674137142150586463839492173709731230012574901849546668130541743756887395876912468601938800586074011210052928380989662246101933739962112790041563903241488675505132452174466106980178915720855424871541782331924608072801701336902528431778709114212652395550671724185524328463991931521904115360233343640372494240940127673760914610957572902292380177711760711056802348058514272925649126333611293709578582864072585369628838153688962799882674359087752595404351135005063652908973886309291906489744298571036804489071359675809244376365345388711254366365499267872947180753746477789036749868167044672156065191620316984162189301347371230749592512180581990731406591716372706775112101784999371205829490938306208399124733518836532153567321946228729571195923646710303132703439796278288790423535457596890852006518485604545273849901080062746721638001817153633417294751739716447357237231020555635312521955437856349000753556971164398869573352752073332478323512174560101922081793348983247552945057661601897649209481987056602309618712229784077457165799926301678748305292984292948886681304273877822752387840705191255912944303344551482116892573772741395419991006385042369831809709028237108058544048799590539603106800277140302340610413819426527470815556995013648073005781010153290668504091502191050140329784827033721675994026046745409748759734721024348116193662999345964304877844883694537708758616745926850476992103088269378311415622182604397179035751686556404729720472574285111391774210231895137338739191892744207402343716937314378454200903542561618813426106364733838359866807713673365926427125517873339765368370298952530744376573708607676624955802946224164524849399100645842101539635145596018092884515049888954705076883935036129773959163405928982096271485648443691023972614560479507348300873037233600181050630244057784789080334428540470248721397048992398821128915294378872578390251756086455749888218683558926019817177533728937746268999833365021188458841812943777870581693368255994014643737715162790706880239450249596316016724803864556972796542077228254464141747371073608067737477430072196325829587522489773041077302326980214497902277388852770523181533643863996179187505024393583776362302023285897220016592286444607839093609462085816220582006151096440655424227634579160034635761276860248101720964751780232021086943592981260734311579748712595647015447577773891253742699794628645896048891097765975692067300751635085090374900687077295813312047845998514226205158165719181423950926606483348727771765865706371032838297334607066054763041084264860295202642756734315092179773782880256301121256735217198659405787641761148993655703321633913875703154401522800405161367174391569811823976552955678309540242015098322994640493715668392639233096838489878361800321591482364554471268785175854521337145419718496633294741245661583438779185142995941675983241206762174813529812008200124428199622987204645829750157779723295504432012145133655445820740765976482490367078880579492988135338000126824955283865518767273910647391137860512314615836328634335132313163730801258220223943625624162449715072435783158867336777294688171266040514986702458958009301322386351207478246858565121927586918184255558536444090489218476431327245462619165931633296598773313760722643064951935724295413444896557192100535173839987794265669588265380892247289538974536644354535243888238276633207745644043620154900217195515000344554302175188566440426880860435197665836963737792894263518329847096567159187694480614824003191173974930153024809168844862201180954695314277877673540830635231992966077007381534048849399616445601073696337230020915288192435726343250326116343348889007975137637389524177095013348345503398561009126809592848512721407408223678791363621011390776490472626261433097103508654276393822566365986928232530037569631986215295275609918209177505148691010770406570119711014823753852132565079363347243203453990307960178013276735607142643420957580655925683977139512631422586269972673240996378883808234324429854648709013531987959617464929799611869163874547693791502841787154022452433855805025476896115845498561105387978487930641931262082432162943881917777640896254883199678213816231564304248962938257454774274630894001842917293600953165830646948791536933759293338989542447222092090938706557084274363142274723684449580827521521319803001530710459205369680996196781729824215341156816583023810758215584775145695576815535114486966873479898701912570309631714795190802464900790247643424831157038223519186042345482505697587318478490968854115348077492667881682821294194323988058974177792305451294936953351624660834155868284380396697273752576512607122460899448171049543213451923779514039937273476428156215514815395036560644848240621773628400879054885476709302667113615741637929596580943148527676247476615157543868275681629852214033003952592590419747368917105428697032607844611140324609834799396732404118938097369767604966512281939153286885769129090357665219415527271585398145212361508704506521146986679568060297244068289369625245030022421124730788421951285079368775839689000979368566493577335440545253418881837749560053917648513008082457121838023615654440140520918364388750414717603559142295647737929499409420642156491569358142359934298120284066892318804298977730982948261409184634945648156387931608246223511513238761781912437668736966110575670762716794009220373812082834015094490307870509371773666681519911158088369553547442100511661707777346774971727945594226533723558855266943767218971334634311189643013937628806967774196156290052662930251243217754749033131406631023346013000946024109435253069225925074308475641530780470058633305564486777452189182808301000695855178495724501630528698112916273229938428419264583308660376467484425114513280958716315890676035990620255289104762143345795995998528981216579022018692150997489809355892474068250603585018567588022595153750890785199560907241504524161055131086554600888793819763329939544823204030017265680376349962002307084617038418182999286428250130212502219657847279206812945907847605285925892193605572275086961072810767663600707820550333987825785114033612791246460284984754753479166348635041800069322056689502112535409238938133086799069268388555717095287662439043469590668300410691514217710193423158146075265309915066329391032896444094025112252808261142624538470345901648089868782339383997184457344343005337659023934990413107185876161365516819117584570838944640185017335889544679230405529589350269833656431699763020512117497216189473547733498406246538236684867478671577341695475865471727289627666607911831913607655750156566516280973579416861366017696770494342836254108548080088059830450738507612116404207282739926008317079091960593317833702472702400651246575234247195183714703054310677028477662224632698176844109426700452147646873200016445413917600715142995170795071127445042648173339703895657774169506163431856534896645608279782221770609117571850556771524258686201337015924136295385357275476022777066903076759759558366994764084177531014474159633319173241628831887398885901617120421290583354493560863376220530221343341740967220631947319925981779961474013754067770735259922930991592841403022820950116366738945902873142429034836683144154267858736809646363342754150083871679900039201775325298294583062068556801266085449421670115064935914259200372438129729715239407576615968712669743745257874056262913440748909500462434902688184415955130535973431824157126145111589015637918255831762594440581806168708408725105014403197169816137907459572313403936569179156350641715418492451425200006561388482416440626302979134099384249351067068389449543327827871947047128479007841462050640073537551831969246462786881981430385297991448722900454925979095874040914189714072781572557049189652868425710903940145983486891024008847661146991716683425316305776893029193697824008123644786716328789838736303392339067356078949828453506506665766701603881829782934860213201992273943445350699453173488525709960056254751842373677790140198234957059000766284235525966525967629429314516819856548966708168165193249112309203189860844585208865315217989356425092714949904901509024146285529771549375284843564858830555962331537057207622742797817821479789730355673558948914919004600977690027537798228139261029966622369235197827134835765177938582577096241725377884221064082700481895474628718674971346470792339703517918287109446094186056052694089473504853961194105867217141764973233940705523729568979013207568383033555919182816933872382634327143747491006924197864712919678144901987728006330441463786018907056397471570403133578904593074350269728709795076464641039549439213908827210811710980319313418570975672712674713004977999396560600486208868689578229134506498181820569989433887714065661807330091815603208358289906866549577010203902262242224197339642915565238899814732232448894840570879707934733751876141168345758039574149206914749982369993835464794260672271222514414513956176002619846892337561404820047575742593968319762853970927691527207616606126265661698176506215056905853121358401700752104354475307849144282115956618333014167133546261861711338249395527169367051703224156998828222794915042566027617675188241981998414761392408126345658397725338950812427138657582587703655486273651470333152232141060350930409500981280580033890614734487563306739097433198250608962458650228650665174561235271494459726783423279344734920379913388173041737220436327357492337726112690074751963180013293286046879294042233750898988436395658713839256514529332295794849944374815859519485724909904471358916857411461067653263869427978430853871377237802609206043316767938281824875705685873071997394242010981210521685494126380564761492409752903098671526248153039528481294553564897700674199103510330125180351951943758431072709393751008824887455526719164427327948176387714573674464134291813421602525320481605805260079682090824706822626587438073270251054761032890678722260462718727681025373479226876208923947079455333407760064237208821751984178264305218343994347535518204824470227589623319172369455817834720349802005367409895947676372779604917272698092372412130683454788839445609488777416326966686554522697111282143293307542963246347771545660022392272398219483557822196557834965948728024790182243171631168321218450037523277702593436964514593693192931855747185084657408258459669462806911896679582176661054872486171193596759216722579074042543475004202963151753352098557759208022804041303662473320852389969427139528677283424893903511575292499266618943942449103134729205565034755886766528356625917432503979055147875994701373276144764920667035145782547479637290500857600032633437733179963353623807622793011291153084724697481616185587178194918260048182512219455835807084720048435436019045162048597267755433666976208747999373169860175884286436654770854287773239614761489420024093296276254965445672547264870175395554177568829152518952673322374644073845792447268972537812043459537987131168980496071083262084469086593197411881390922085530930698773488429468357052236923589440327367762932618429052144178774587306374328977774029086319643053000639096934770411668059511339970639202993740527698766655704661945723842652369761995692634889380114212704445317934865266727259558971095315743647077590834976261668643023940704714160137063310366781261952363304774994953724422310303937955977194020793519007227141079998021907809205773785227048277468017162544518256167549568859133717150855310013191413199230350004512051917869840300190852561458203244567205078567198042766173933531591871079169882168788486560905721815886033828705578687527187723771929569458876536954285098880859722544371379732646113057981417704600814287556059388086186043853161998438033878167688352288390339083302753314879478088141831985906813764335473584817715050283944957374360712904977045536390885386259154727350847884710202939920623650723078557247291848140201253248688801389274875316386146045964561880128270924540660248869199563994717012286043613499203778315949809682663855963933625528561167725513469100441246412520502288050154806846538794342068855537179189156592586343134612930310309117962359667844164862858918802134149686639756190433803124407308309839496089170819510726934596797926212761375388858091803497863309728315180107501381603210487105998664071881578172910933865406983544892099997774115353953888097211423029869050142438525540928075744930900050751626339901509554768411290874270997068959263398283314549064921633456589449090530004157855954904538346125182613477402206974293622313583208926109582475078518386682850609843560102041893989164613456588995243409428903702866882867807091454349501798207072179646615011037388978325348447888592841677714894158602838704227414061501013915670896847234633882218309807820231845499669957748144420324018639684682361081928753151028655002685600060237768206880481890753601272786514793318862411544850108067570169335029648704957069456789363262369608144687175429232640663735127477198042636176107404529335334373455216557439976903992614025663159702410409130802786756170909198058849238888568781091521621827242478025526983425849103557834502685120438033523600038443840686570174884053250605493985528769313006307710706775168773432459161537399391087067547998811537311232273494660334953631203200947065617823252602806442212787419044943717756254155145471634444389553611566845592994419131323137706400999178466489552218042168882355617278071613301920438773546185637535863415281695183863621804906920480597962393380262112384659334936101118058399712580818029841097215489085187895933088440720024052953420108697510200647636423367780754853761856770800738518973703114177972243036339250137739691598542947395842821285409539481774455047163608926392077346421547417782556846716319129770096050567850002971050714366810346030385377397864604551233037375426420463973468514834758506780967796300440079981595427889165915914829500835363845097911164398637441526863954262791114618380788343823792707079711214821687408080970625602534159599920283624984446829136623155556105768240707602123426453282627829999046944625270461659830294097487270300460571605800876400256355556011829581069095881354164977676182041537480299564563999350174289201708233962353858471316057726964512738968121151396897674281632500001271292832894181972279223102604408987975223558659140087998719821903142667409016292693016209169114971709328426037992382194396093852697626787201698701997594879418517868084636629565706239338089662820163396135956527070603091002135086784786978813086005112341553072498100654275112791358814603913802403584111039200800425493515113265130191656356432557663066342620495110884494151155260920986078333658270419496444818500690869568865887523140267814600526664911734250283528057801743261285156617939257815992204037164455897818337055747804043041890701948665196184466178558191332469315198672010022903125631911012981488996909948158099743442665521145145481117150277024133749057785254547279097082285232091638592871047224837091341684931137952748333553510029635164057812591465541585524693932493730974780665659685726680722055777797517107418659586044129566557030435487525356308300907365321701091558359561577459461247037048555419202674506096790213074129678956339026849602311631349071132987884984745470729002689764659635634550686156263477175652568442775715838648347202478533991879431601547442710159490580258403651920074218917042293199080800240150966088456366273730512155181679716646670240900233858035042469760402196639232008188639885435853000442668122262710062573648122836226506150803193600036712805313735769601994934270093388898010272467595497690569729672224568720041803411250051965273752012845229719272128681036631419871748484960990555775660647887880942020536034114153596139201880022692207413486300132244116737674241644151152683776011525523213268047016098536686293183038339624940396710567368281257137821413684656821669048251419818158267624040620220606332587206802699856220711720117757825487588891150918826444359329941801698587853727516247774569696808099684999449104124640775812716384473779060170297377775177872197130865593840961349094865037062772694929693157604061313893703352072045636798572311739557019631239031240879868929684788262406906244197536119814754310275563786096663345806007224002454538976059553312517424856548679049217836914269198847787896156699150442946084925351774610838210704324321136482820696570249045462282314164736010490346376866156623950397699089236028395026068924819473510883167317542953415244971850055323800159122582293796116680359163528371315436387138272018025499930868267326814656923061943568965766350583964827583109950338176707440433977200408529983244774716338704666634345366741513961874468491328078601995282866616248533149742645732171061138367986725161263987576218167043436599479821366513377909595653896088731206352685308531805769673288099741441992670792741517723349490690514696277118311749164687313306911629666439095809270780518191652208928664961681960799044240279411699337301860448263767108316686831553606362297203288352247752484351501853163411278360602527499694884331838680909360841751986121071351698966564018250424736002109358318705511844266174943729050468497792397237727998811069672941893565596895927919205269188186424874995153188956274315176130323351579542990302465736940484002714576929102926603959474841015322399655809169824028983902074049488800563966025065881309900598283707279548731594150570085265957906839963382950745656378115266791800004908010230248277431824111900702493957021702528671563024289566387753727746946759276845362309220763506253060692237132484593555562045088684277916628421254195288177454300100071105225318818274935012138692187906902637560766522680094844269200214892839412392170205625708856988486681862229407108537533926535246410901718766851345846255186601188252670624464144979440942784957835973502724793431386854307038983134459894936228805770361572456271745924659114948942808924582474751406744664527695610814640224232546965726564455233145362503440233899534547799422115217343828288333596379709492977762532173597512621680775676748683193586969406196469270872660630890733590349751894439998374180737687552336939408435275834992508905734938066539804790912621045896050963960251835514658275021371137562328824139567700810240103446773602591626238369288473002127553651479832185697485877478325683119735911827026273471266459772050792931427769293315822381475153811327652665645211082833030195760924604003005865154184263623180665833298944768403794345492271198630218078788608185928681717054425318010891728749627439885849390997945260529293350679850674010032298362837744504801994911828410346983552980083397378476689135947308989917684579006317368882635603758790438071045249050261026212138182503518419348666230620337778248627654290198584825231313609199236114948742644040120600267043484239891371945607060873319414849186130878825839801770549272730385529072888962210116765929261734310184046793986878984117570721059010367022213160170634568779393768984010555681171463673503124106604884680173615481081584542163117981020654964551392133715543069049609545988194147896805838141816717495769995674501746498734613597828415700629805901435354630068761454377790066603836607629331355416821796415184435819803041502474104446553459199156899970663077666617844946571345901246869361678352259256665650081637018069206569310348431523395485024701208300525104791348677434602264962530883055801591302977813562764978915554109243439964473478710694378858425036315847724989469300209995115283398022392595921474428397433867328307110385441024697763052038350895677718108479398590941345318348148305575557523837994696349786059293745148872877353679910082787368699650234571359783408943365430810965427746232150205673354146759037964223916289703628290854148290671062853939586988145685068495678135223761383008950468569646833768894112646768860643448016539869825206282208032526037826486984318251816073486694729621865270879850726572398141917643333912463165061895277292022357944323748652946094837871029063175926533981167075217725942497451668903060597605390706821875621591651503614794397940699948348495186178146179177100691235791033614620518529629642210833430632849233331436336842789766198857226057297076548634040208476040443946904303912687894437447236363543784808014730857633527947158499676425937333968167973473343835064810915149816071438417128508596538298698623763869103347693613241493712594654387447866201902845748485776518513875588512105129845350289305456606250692463967316714821494169419384349599580419851017995095740661284361911580204328146742389908075344643214542991139550457658485322525940712618153550877125415455132004174133207081222685206745821307792753658946977118938117096785120761536620388850142342379697276652898706655004633400919290979917556207483186204220483896034868728848035147815411998879535007967503337865801366752516931153494427586878240968033280457369908882300153522858410528351317117972723032842051846697803408177570714974434086878250497976609088833874417638853340206844180888614674339774930990393358145205845223546915773788568563689624174610178326853521269868235880344990952861562791613785479683575076494455549802740725966341029035678991683027051452762298357624407106655851635605718906619793453257290797262684392560675738582052433452590305205228163214884829543842546043827722902737644758199534945499191992650410445226526897519748108140746527432700697631488399925441979613511990162123893796641436738554645264789895860639791118328375351114500062810303000690785093165161171437910116402484149169352475287984187517224800149709922589757899216949758879858523914976984666254714715377591760389640945372165016809622564298283006031736463133047985285331025906818891183187204668920355738425813044648635891808674200670049655307093877849352035733189588384681965866995161995864152836237053070884298431955386921170889394942208215624449666318782744861059958004178251691184327281760008247249872255873812839448190146112702072446346654180618680869372502833215130618876762964122731443574016092368445838382982508485040893511444731595205058616562214348091054979712402530428201172673309018899924390353569455262074851665926056329328905095307049674487606348162110751804628426532722022206147918692524594498380394650354606495053222971520442559060623104232475756496587713718557470438540375570672090576129051117501475383870323443518585406056204935782801433052931818446298968924408081748581099084996124230478290193450360838197071797144847938700110686845680408546391868366426970815260104084555366338723908283512283781439519067699903330434950154465622517090693169945991807491160799570438216525151556444578169749678329904385289493846294211331638277926597228340985220407467588596706595996827778294450008753521403645613000470215362789102284907647549648054326089343979228030593735000855423199569994465223437876097587372189343957823713383384854540005876362168077018686924979789689329996779375445999871129410910234999057762777076631420350254127999940673974583961648659442765979705270259478665620830371027749194813360920636421361060309444423249612107993566315289313324538473765824015221725094783277281573721158798656317138398937376406785477813164615265795034122333012163856702939060190656257912616527964293924787027702093625783218449083427338463129176731136683836930570690446940213332753487300467094057583306136104919799124288483736498024478130300246543845329384328617429757503503223978544306160163861251923481642016264140566953304043999275035819445671010263353616471005415072126654536316102082836820503305428460621623391089362035722159302816567185130608276910781545137338970510276072099903694357498024458814351140471022923574541911876725260747680470141802698935282270481191605686255756854980048754356765713477813010747059600613077043846325291157948322150033342380062626222756091387967898426242943436238204245196771521586874166538074000942244097647903119083836193209572298518793986823266195965664751996061230605887795783705298183072139727589162758429638679155915689089682490699732975108416805626859444785245591989021611526538907744866597781482803235590236638866995488818025685715771605421418958449591471826874373991132108067369924595408079566266030526160102729150388079198490209496786935758552947148664315175695401961560694498226015936913641960813477825811182878216467354485647830162350211119829030058673367860837910670758596492953809140850075047578560531001152539138631824582558024009983876552074001727637269097975637689947783380410941098688982563017975339973260489378395754896587715184607346600888951591464341923631118426657137966581773194208249510460997309149074166237932058389482081310291282428519825772016034580107273546960406213306573148970327049471895093436512042110969725916487431907035678172448025767045765981106484647497649083452681277719371799821469543038808539978057189334149963282618022109923954996610307548153160885265729199929214907723248510055451996918549223960729105456328264377643414621283983329689961782024090508032229762140761727858375286687002322631689697958553498631907143215864923722942070005657395394335337649530722602718269721567353486213329556656938540007188034139734432295809830422419903810636099156204379017975447712156316924305843284013165568544562983911788422770088805073131939311277141778355351837074039944779952672097719018882705668649655844064911659553891728586080627308729754332097822384346599986936870952698064096261493385137943276800458561248536335771164739018399484767157974478241644391265380880746702808936845227977126114988121472472431094103003017439759805196469362423802948099013496522817193391851851059248052125623533999433198568318320164459452350822370631176807423313327954363337410848230780798126665073533795928390020729367022854708590742829228070180918851752707894963430558228682773757330621268845979485207481827208337116810300349396718728033194041945206656066329226856282550718988401170460729803302860863008443285364842547302554569384137441960915770427871862048967992813725625728865522022995749818264056298452451027175761753066123400463910240390789634230998823446681999656465004006471529656821960452268852112347939340721481127610513308534670149855955176706919034090238371987210352802421499507644901934777393734727084765235678580488915292169108281205993559878138141930911522161273587770791180435061145996436513085597676943123656893106095397213450530414340794986244163446130133210106915912796968816898353078026657066361332908537819686729647245776737490334507831553846954123003731751354871810875684086840289127290710356612481682200455848592681525980672070855447162564066731991148045603191276794138096195475425017887194753445564511714510644996480210567714217280271094362750728911962648719960996213204557791770369076444422173903227474847122006989144940385233623803640858430993347492090989590298616082699693356933342525874496895170720556115934221781513713320344540247529606678639239902029787949273715222151713718124140050726058091529786345607098198331429066678793924665937436286643688191000239661293381536349048662966203387570648322577138420578238507213129655828623360903208515375846220602900552448776506022461364141892885706955589887986167056093662794714336381753280000159046963199181381824352258876441157058228852883842499903161873598734968345195949410148346927585430217839188336986085796570675315481647392417119776719990265822233808176788883735333477033224888729643283213704285918086782395856089254486045400128271118867518970851319243498551079370308666499956220914775198827667948546014348266016897202435961406845137722545563052317278837539088540404810515019718842486692306278081331201417538824451250287956415640470188915578648085503907866020863506036508059055713473183242812018369045269422358448043216951141444169985244238526714019132062665750258957737348541715905070541241318506916235936617190691440865659684753641535605520170679955451873157379571065843747981993753668884635905054284243599987335982298797044376330383609710513954065294788832481213185615679076739873537236688128818189004791551901348637994593757530414302124909155962602039005795691291950999332656200483448452160029365365305938001379606483438285284772431588596492702700985568724297186297167417730406488291582690732891318490985202402074899788686148536730451636779118816252107888917392102394931603568855777014854662382740848074565858995949477086836666180645809004525820942037570176160251491172561495103958528328889052407488327729586388152386251999330920144640233600111251374718331895534955935188651433579940877568905439138099224840680667391009174802229609023215427441363015262347742535842957198487125662069612951180938836390514310434201685927977058826407369604243705512529638466918385524372703772020501136178798136179270417947457403093196525662114812186514627571273757994187295432588989725404102326503049494235851497915154988614515037279853290760161858010603186116504861200956011936303885445678210077216953913399938499426046962520655967193096423269833649279801270376780334210073890601134656189628197189974898843707169605661147709763490691488508160922062868615257350438392270788371519713682276632637608339665591870173116143780694192156664260908627230631726638336918215465885872860514325187593016093615538348934710668459344522836468816715533646987805870512980141423567999471635216222526402893664549965477307406127539468104959825287914403553095451357051719035661747271741993328063015596279371921536049453447854350922365377803272946631897727259780373944629492208147810790171221544081496635796464419309727790153033243732849732289250318001430006980494964118907808401606028038791173375217600805341772511348680992689415638745513060677716894115974554942935685994431848413851467013222077310395572219594413692187895740948475220870190134593148128984562797873857720336771634708026311961880307073248022077010309221015496327973626326234051820960392956313760236044804878433339381192959364081488898079103941119634034087059311130620711999950317366005719564373687268732944499219074849323946467727058183507109364971992220259951995616710103227379894987455245882545342007236745662974496077381215159583137014966213954605131290390210304082373630387533821805547696439093417947632946555069765621330857912979744012810009115359198854581589506844835498452696664716645981660362637540032857343591350415366883361931488923515870823307565652088506037269391401601379684581406149737324163022197921711389266085368560231923344368582359714927943746351079357700514661598200739526962765052446204642933217200472494341983209676027082510520141077775585226373908788614938761891639981094551572103904209925964701337903714540285192497804738737693712256663208281815979413785095348290085382841332610121041065124944042541172474831756378608580883673628408151742452610241032382381133447923630814499289715071904368652242205027983504736742176444903706725582592826577456136447136294261562765180672054654450767024436321821963509701137834653914117147410614275280230807368262568253323740422781379591445048878402969334697174747835057843974542188403881907597666110482368698273839241505208435196349141311059398973200828984955414133417699779260759191503722269368299086252563078579691122759528862309054520509769542038558389181763513678107783770268717717832122943222086891819022562404669149103612858839616431242104046320303348220854197248078163611715956671455040529449503266140912984681354625937095565651818899172238719190616598084573222752580522876284426858739914551960913514792963169085979110072294720344082812252968140256397078380100033832567498540367542962500194405189801784830517548221366165798443619092590809892015113607775106414122656679414736484219065868702862199316901917942710405267632059450667627495882713764252791985916671188612004885098266586284954041880176620641983080780561270127464377162531166421040280394813450181757974167603588377188026610414580832404135163009018200957672520786321153567618047058073371268034018261007362198675668492115299804906174933453107479777145361013463678186535404937774134442782183968833157378396722237298263452297667959574242124238697203154293094750616153711122108932256494413332734276204826653353609056788448784280108820861467556258630373919318397619500890962948045937996238641839648946474732083147458749206853841414826885556550069286046801790096015517674850051837053463492609855850565547343648777547325575133725336724291723616372299345299837967998124099395297856017521700359817387394221296028996376166966737098205924904011186961790658995638117468652835390158435134894630121321520497440025819982287333477981532286467401944410402563796336083393160446768346185526011649256082158626030607584925844743159834562513675882483817671507763494813557170979022526509106825569787375698431086259146194461112691504179609572054010122083249125005052362235878033436514498079180266742163528299332750073499275763425883029101814544333025612785256615351718616658147207520523346396413889329809793554317061758193866004896691690355308004455214122143414578930172763900899836050440166150416516163358062550393794849810253321949114965651597576466057543094342225922489978253953458465046819692555569827272674493863069896880191768024746022305596321704214404732604011002195342336071963869691183364572837134309010551946128658814576418556412962686186549888813429003950118207791176753863099791073213439319470884181102758550987612436116786071548780217529408513129454841769028922090351680637073583177605366221415205477288157195286806936077327567575894453835961824238008508798900849957923783541616930634704332242290075268984940721571406667585304136617909662333046532934039549420836004264315710069597558239214139349204662108895806062623000149463887772095294965237428258452079594125854647419807949105446052216913354789076890018856914385970482367618904204101606937726320448941714320589538604326303946222809316863138713476180713048615460060419480438958991907173186529984025733451624920320432188977321398570796623478584337191667000744998561771926021310913417203103017212966235912423866228688144699733542618776402495410200098808219098381654323848753573344246016758055105023166805564466522891385058329954785680018456608676178132564416737121606941551561954687209913804567421124705195393717034052425684950680994782112507860288455297791648633072435207381388697673231530392447310554014883846484571675823768169300052135024047155904824046702297853984980979565953593736366524821704173677725043725826556734988161849714293734808758663747107059737120494678900209805034120768893002989479822847603081588803658675702474990513265751239116584975072401873544564098684519317805135184670309178741499194640213297939650992947709830632695465547520058301101344298301955750439777116446637134443444776927520972546417439324574095358914578703207812961377077859602589292552240010996777707040409855461351058280083573242203677126701992241839487765722412961603078505114547883390901989570862849847663793094485712364150770662038258938884170577637405522832840986499770324865452187478983538468810805913039072765033348464872686768245801000161287254936533774864055198517465783435035436177585367066357942769614822452164820283333296137966414038247429465877735467803766823082247318952587301507504640264605663597546619878343306289238493955785661899830822884350782485558039352763659912910444058504688001678027760982462189782202975775107400295091995168239043556164989719104885175219971066419349884038306918779139997980610280127626911884580888823874034612472807401795829124738123829800128269032430631764978855996042641256301990296005043680548741917793465141290588873754509143753662035567784027508371124513192191981104446868375214262541534727115556855428436258334648880181382438350899517142791800184296405546436780023876454660439710148330929735296701391827920446867112473279615895675241642985878311384019287842720848531373597517355941038058544722956200018214675155528559074110617429775592244286500733632480371467108648676776368891494524659389041592359757360558372714936262169103213436553147874072870291165750480207973689464614431796040172107235736493861068289191764148953754763920680006244631265732098146456262063878907612719066963428697128026836790865758165955301215363384969080669130403344286017286172425172725372081001101646316735706001971210908621187186414389906314853382699702348771532138850203206430711888689289178508612364201596687398107069181395632274941831742154356609232425848443029905387375680518754361151896999750687210875792891219987687493924168055933138664111184315512414151326113820316283250836598724840016321240825285674128252054487634507294831308399468148506856746547408015368404369494255358900935364322832805126801706175922246598303583718809603622542521315053770203872417112575347360133613537795697282690440910962992262968518218219544279110309776459153626021394037290107219263428979696470621263350000491813552068333698473874256319734407243083693850817161036490720519142043548973393878099546661932957991173567991326864596634653488678030199348478212225815856453821359202168055064189405459413763871854037587860536902009031611116427015390942718370171436398035327337117919814376138710727472327223256765896448647861761328411165866003394519894920511973194129511597685464607325026643463827083611509638419837398748579968550427362513973510081918137983559946022770738018973702274725350173834472438539971815086487292631194007330149137832213844182684102982807244267997079434377938209301937681237839024554958996608609524588633367271779790472346557893420950284117490871118377038167493723427226985168075968516365861294282753270555464853965890399027446353259160251212484591797969785503345037705308824293881288986964661889275838815390118173823844516158983563927681892926070435825721741141806784888685151984556258594931124604293856062599827902352747214582334292736589912173131938579825011032562343864755799313991487937482061311694760280981290384622839122912087653128756033725647818658655385198914321525602379761289916872535718780730865678308418918713393879384980025041895849459384008343773617513990199643087933967164508143111311268215807369884080566788290949300027302162219019792362394529723064002291329169761230389929585003211371016137940257962244591042084214858502173593125031432717487563541507419073644139311641705088075757609679979104498744545033590142854609577025466331205612716676418929835387708164058794789138081128125701402577227777499646390689951610788153545481221725764118031117315341896087120138849919092613719217908963770068569052583113736224260367970553842814582410738473893435130299222555167058854907924170482873810427740621040133028149555601256966486688383049716629630368702050278437142556345402869886392635336551867027606746281347730296091373481659403858651579126359733772962317621728464339795264593199315354611497351839381969810272869338831271251311069022824778058823555466863774223762223489384885429942785048242943030932411451830711226080948566350024386937552988192895836154913763839640789346917106680840981461461648527742059524961640059194593402448570986053811553977680096250674381460003442380406788742457006955824499379165949403674711885400893515092236780087307384297535175265021111389028089195210975765921897108654241539404833971686418870447452395436521229704940320066426658659319610690025921806326717608894804645212583894245643160318333381892565275017052684881178859130001373661816304675441152319215098425643623220898028346190027084909443931813850041571365279641884309569673181302976611982066602193048549439841165519056236889261117879985196721295202806485719046330308177703565282536489214933675333266420426098545548880330772594002720805579979418008771511194844056133389549534924491422567154837236224843426614731657336715220457920925810260213928613826852483056208166935669402943284288821021596980665786099975355962949298129439127515941083515720498585880021544078224001600955612099718119779581455493809093701141296645379322600614814483933636260272964625262328402840931906284797067417616077698083690669311378653680340967772371155454406124331915181462751815349928357673118829915356922978032226260079396210592160285144185277225098502828608647747814855185120108325707176443844465970459159660039944825494310076531466316423251262204216294024963056733234191122710021433342986610677084916099913275841895757691388613287690942853273256327925440299286636753823007867302335780722966460090911383985353120137243174327473492563451706444396063283818736764976303805921507511517483069410209734309275997206292038975025248888104039465081635726091818725433119713676514123906301607725882589103005896308252502626127147125690388361240408132913654559059869845856469098776495045566850913484320952416043968839182803042561465142025447610282301892895332226042084996354800691642414059613838276604338678834159729186409535894466565432121138806825110672620944077372544792086336324658769130704205070036762486844325089858059170677130404021128193332899492349184462406447536448122605916301253743490358731060091392648158518990934851877539355923726102869507376868190029054282262125135230558543500765349364095832457755444005797469844966473924743477327257974611673552035628308383519288030601530587761568803393135375323151542089536848654736271589738925119233508251181005668099113170289534296087165840920025328129281758670200654894057096517848049794309304291181106722289410500802590981669595893420307110411272322397180433250293043413334475949859446825352498067509757418802974450303260519756240399295183673304121945716281200488922207990687891556964099658211825469544304776952670213708729666494831846693749468205925779599410928808752516360586430467543007441006940907040047833074878828448944816213524445836684793230385252856820429459596276512639241151127859766322354651636554043267898666042261870022825279606060959637523977113855582382176301110408406904908193307547227853290662362632518459136328509938552563833606292699691030046010433048439907379454051641820941643831172884448134029493523876595185561552880083200700079340795782311349834822856578979869065356499848135545279167260266904906904160963383942119287790820438060755812220181067625457522048192345753638653469335889858062897825289871005985441220504688651056503838849397188938194136480510072015456040182459160395443438567037554025720493880606911053387141061346206863976897842044879655494303782382881281362583526660009279792884927719946271581566583343347743475197013323584129771238751050520557033531206670961462132209408944089189904998757273195871574678587615008767876986881432469070811462623399781861643699257946561380099951559956618612267351881060705226877964223622359573181506912462710819247748388403947605963846174410819932609646583284877676131341567544512212802885074815652073452013568513635332998954682326251121798700312243343596091107886660135307303797789927961698556012215610118531099061379822245655967579847644110868012193425183621265279892369327205885929255825150269079907850794175239563043814996837725479020584164455687424116115570521984503773212700227569661312284594478213838855130859036453631786062963443335819157275688363722470806143231760120838554115460662633951902533049449521658076209626658100492706818789790673966201969822824519527409823066991180028299021414275940895151982255626811068330544356331847474488671830138843764665856307556778300764752588383520269581121290861158785269097747647654481187447239122186743313573093624651608227408615765315022985836819167407378782468513678335904281833115643745562530202462837141981548771812929053380558256876192287605019890877661276538010692825970923908135845014320350646772472861667809238790623804821959256782286161447353438145411853181009200944156837113697628093996920483972842086586845207807831170575233547511458986546505296692213754897676562276009381813662504770581795133199719732559727495148791257896818507787299351272748991860349538770648976099505630278047988670546597577163606977603957554471671835887338928042855508993140920676409738596497339975980055400886709115242262739976544803939729641267127918660644707906039008739854124038864647531004947435934064200406455921982123935493700535835896448962807285618369773429981484401862296450877582233657736099481990911517410189468293264413678425996200648117718853477073148223275285325727594417982217748688327612955478497351086649970095816116643807331962839704667369534286420093026118550275929394112212824590312179099114953716122773839731918080187381339156829275946277435771279669697758022447138342425386554899427300892696604054042745073031234769281241249236785398992619150150362652339516423761673480088937235590422883085947708159030912942912367263852528481454981899080722102345412418971241696501250325484066325132140586763870178679685808931220937003749615943340710583424277485257968301805717685030428674823135246905757087547067163114280037045301144035924738010313364199033269296098692220315434836805060506572915989161301278265606167450083776135782059084753977610936703586959125292785475545265808194133078193935312210733380907085342940285449888909810741162332764085390172332501711120805279566009646426444318867037461969815669203676925537198874860493510618921590905371370449148931917607569600392489240624074265083812025538130089188339122897570917698487711989707983401067364981491955561291710030097362845186030817967735621182387319436911838998714543654368500680027533705428437724724352143640502195664049690902497557966247259614643951779092324406740902397243271917042350847845081875157052459955244701814668173500748361214089131596703499475679552946652224041646934731203312507102144504449222143341104554935897044961814076255480651355970058042768675252379875035571453655243815416809006897107355848035673231698712297642401498660711622212459226923212684335732733614888356363734269671410481352698130956096893069911798859898627973052036035936299320466016042623073189052550750904727203346306810552418224740465194821409365119201810109869638045422183045885938761262383466739386503664202052430243319320431537760035533752532642688698093860513944752256404695263118891365643739567334641289592479416877915534328882761487588399451633525219155142072100789056791667587350356183474737259440432579164889595645979127039911489786216948938598373044757882093724300060573857165726657838605393429259078023510187130821697955739042569141871738509395236435771692389908268551517389545038135823474481559581748198150067807539905137080266755835208931212159047261160628008886743849263712604833406679994178493527688573104889459394341121833517378996159395553983004088149350627840501929686879645250499543230103216946661059031408548522004074279808642620267735414406762747431311687215813145302349091303456733903928196610139377962642846380533100465608461958581330273962241379134326633397636084651094406130652724202881665075210247491572243684979509019977840836171891883302526233150068319696583281064677942835298057473860578844329225364950328318607975055783711205705298052135626519036479244536262589216372828377306656896013948534001760718293993491651415462022835247040367908336685385570391770406887462542986804687918576692221253205921795702808927063517535350600642471781138805255748332835759800160956894193835439648870296672915124392154299439415770381604501850881634112931559484680487992848665042986266624096115392214466683670254455315576240461620275598702125992966997295620916190359880965364926768269252510089491841071902047523686343047249087480862413573800282306383566159425932569365130938507191496988720054302669302743211340296412889524981482341923204451902229065967439788199673098159599902978418359916863963525699702522108848057050133983213551239257247903065623736405859505362197069229046886460072780225331821786247614660961940306640529576331385621183252998356017786097720610792349331160828015566392906220309026984942000528301332073942457854741573860546560178416013146560301475837161660751888375215877659150575168638830212785883889100796319567362204785014037377753506423463670565344895535157423202853722711284718076094172999795300846942878520562083784469106735142320166559875282674943508353013393306333020890215235254523400959657341164157323671353583644323624056276401417347634064544021113150265962619060617112687679690198999016124715963739553023060465515507592127586118999948807852716867473399407306732361859386602765880384371063954863811079389487156809118705203079641143424194760546669483123256282163360251952790938735909248588839935243896725284343501103282371423346842074358103325716250911366850928597101919971191609651136513335263419212162716603059311659961072062606740689744024342862030163167525905775004582938006461341409209279916779679662869044579404961770365686379625355039809219731770287348806882623806241015171277211033629286255049216730021271780815096047762321933018265928254931849278810183715568748116639730963507450479378712892342409118236694158371679733526555967595668728000459903189797332037812496876688486106735548917609188184743836577478410662395311711877327850669534719868076531664242571385486762091766229382729966969268770932069228910537679951510970623841004562658013336560512529087696096692966077491810597885453510735630772906045379023033100296604973328530912872712723132281091552002963550575522094995384090985545387443239834419355417673216195362427569873379505632715728510533093886742301746152461733778854133218425357558063901190193549171194434021592666706722509088558086771644470081221573880765332777057411431887066822729872601034661383612829801473294079733353501024197946062502728046848909677638875673114150953981737738201005820356971600917037391385498578439418627771794156986192908469239050062823639598839518778167968498492603821218337791341914904372307660067973871683851642124013476368447566960013362304531992997897897225835976526166344760471891878448533439920972420018155225627928034967450938895810004792349961849208370865255096062704962744752868197692324986266273850922810921002526878104554670949303472766225007591019536351824139006885538862737683786304180561824631040982645634215767723749968048833676385444420338120679674928860925150365346356895559456896600769360418270695982062885460598554166389783853026853777038657795736075162798874435244477832021646468738467921542483300989780029852486929210141998687081961663397019135018210886627895372206997393221889532272221154378666370638617083050864721606059604258798308042994302935043495689611879315422860973465498430565609344361988291323617969482005108672294191353423225387375173925858803057918978034014762741707610730955982753087704065568182437120800652729970156103576283161360168255800786349417316594242249689776187922886617711088031564395551800065731736135987528716975586133398580691078173745345455353505091426884553408386433126896839495245569845683185562995943546710314972321468215776067932350211924672120936431818905898776361566529138911752987602089065620868665705289150826256297288668835969063292902899517117727790930286655116745675186144141238042153576707582783553231759802652558941686343706018326065014430668624388589843378165488106851096442818186408574847577063639275624134379101746079244925610913008750468267144276999281279927336293571724368239564689030973954501463359612248485162029646115993775180318634151751590542282644097809316424431421001998080389403714847896806908713712502801639592180949341310916629073035499686778514083407557119626592818390818918903891731417512538511334390829318287348254775730156192592791272983234670664646422796918676958847757895777876437552015299867063528461391233207689162468293323977733758141717062276205469996373973946321898487799898750469871512413914459465507652939117764869280925597009995420940170765808099926315644835651101805797183196236963766990478028087056396896686944139503337645927672952657207270972675319189131921648075936548436032114304527100735736530749172521479412244895618326177393017283978165850751826063350184492928494158790615389556324053513470561720026380281299738170559170141697335498026181456940068734814954711391667005780547854264665436488150920084251676002403701907859381088335674969948508013124796811417191888266001867924163917181878561379053026889425398638269884232254292987461577648216453456287337196257531243875167876628962735296083950695800333943727488077308004753516368362227893396404393363223445980614675267493703696083833508390875442456510719714660980671382090955774403462712099674809722089624402988424080356740277344739816030119276408708882458553756119173080104438140567969543142665793241151866049199607564156012210764369770931297281532811452694041454220805410780727313353940627399651411440014198647515135206987497789691243483726784932010783814456083084881269351272506269822829665359149378186828055317066318656833247406440157156069239162581660070983040804557420875461259368125363292145244850694069620767546748533334562352736086402328749940702903202731117129646901951437407811543586731237234713150295155674301962348549407065956796977786465450755682904376111310745586440038540901533021235776338203144206904980621011442879011613211205628887004935676388375206148911294326179388228510784911254021803455474075757529308773694163465797299906677426614191525366091176491745191320019530874574652747918577513812726975679526417241388597194649881841627993284865236937771006202385879105486947272005766912262536017325600036292494192089081365370007502902656831413283529767629338175188952295768846142826407791427777438692177939193367411776463105351896217822834033366258326373832276503714662323270202416817565539311192418289525921523443322581305357895767860762021322238859629784967234193041277045725770861298257880896704058627148375607700758883410279109124460343882406467971393501248275743771189151425792091944981867318006188704127665401375369442009701053691288254823812902794505602410907690191725282424875020626437164225006666424284934777461717919114378723455564553543663414442896309460608182286664816353578057169081522007286983881505199369455539208729581986503013082295530589330440175630707416388070993088076047887129627155077974617598791076807381853845128357683540568749515932271834747885798983438144315247900060657945162134606764593474579895926179310162883513827656905178752740173902666683798876687901979986236557004678550129520410052466203966738314342366521675817240919867753680673994647051961827944308171756729444699367598687673527290185374847335803719842012103518615115962948228749057665215447731178836576910863751025164950505774535098943161156498412373161589261347926967686220264798257968548031311734683408232346101115220088055360283500146984387080231818346303752094628419332104744873777185636408608226022336334372170839707840736327157047018423941579543782144992885137653288987660754830926354976780861084593121805997068036537805818795479409546988248270962019766339934375930409518083068945735712803944470100115817503864176045696561447167009759382555426100750109853536096215554337046602820199926145048224304074281860081755708892933474307898773629124819694256026740285316580983617554475776493238429925954751162281183772845633094252838377840816192070183781104750195866635666635890842899544580668446622466740055120990928810690950826601373902742835126750704678172693886219943015908658891127215603199198440313138552598631934551139802248737416404377503636437878469330903548549821389912738996472503670375760412120856874464045539761316304107512795505865067160711866397673269068210348789908128412049963141178293484850758815935111567599366956774197701102190216465423867851407993968038361591579947358778865550405184117107657368042836910102045076525275943278299257505334060495947851753513633958739293305362813456209389557056286146931091127539683659991177805146840191667864033943626734726927822296324198921234137270049431767530781429474637902971434833197728840033150776473092264313390561234042675734115698194217838175887177688335745214365452751416999869863890477492923139145917710356381635153206145328255571217267116739867855826123071198351123870877124060640287183720008380716865646761212761778481108754458208399584834377941741244306845379297696080906742483560109472422857685256461335327156142747810456685413780558669024176000905543650400809488133696480755567538510515993957544117265575999996298041832212343215732900799159294322712647801165524409809663063822039672465985872381035890977170447294807874722350557133962853680918425155469201039998717791714926645251975078533944823822083094121036065970698222087633754230886852190305879762964368878378123981684657419820543248160479779502921327056254202429538307896530278324366570061866591290600055016428828082862928089124901220892000263139081527700082351411475363020878572804767151485561416260456049556143822767736197523811778460513805476768841336833901342337446939967810137054110915986907219610929213248896359332859259397251303857148727260695846533479024798168092169634967109761669296353522752788023956331899739498791932678684079390693531273751781253483861868682262128883491746965834120427507756329307365858236639969387627896578397228458406304036700337753940800989536473760040517018805193148628177937301123018868661937055214857244692102636453944329233636780967850687274528657045160804313720325659905979482968070349001925895831948219459974497456299413611633654713418568150886847170075517894638630876999873274014435755326006812811909929303247936501630663878481559038634038978904704132032175912473445536779366577074073467694897876702413699091406096312336601165465551876491204825149053212232917486953939335154354765950929960581425847358608365109934089581319723262468161393420234770154087303915616813197730408091505898357900864648559801675335621326592469639450464951457174302165929235445088339354996335962904746687067622125455020967336774885967151700118445410008401550597105771155502451977028549379020168143324177858151602151885509158089850048978753327113405947636443331052233479796980739144704851119439822598603859205401057500436471125112290210162020813117623528836434097527614316597093922152831613315389896771431194605468331164650483930133599027069371711988448459752298373668720253352733486427998537847206263080882493463977219505192286988144878842141350356461455146125733364158945327414443775609479869951398349548163743947066079088732891551383450538884751087134635281765690094565800384193867957579857361150912237171837096157784690743140233667306207822226189998174570670814221897863602622332720971848796993587102608010908168178437285034671777866051288718793371933938449773434480500701062668385560686507003196759018447209091503793923894098352198337357181973805527623946321886531364312928226563045319332686418077143720467930583551006425278880852021122616459592053197073522093329715256052554840220657019494577042622364815543383253668183972763172969089297407480667007460915352468532636493524861570521997970503196751169439744885746197347617857790243366677061230710091713048788693219360837977187259335889825416904541219786723609141127329005374295768108064078799912658389577283841137798380435875540684966711222818015507373829270448316788577285923084821947117315807581782580787358526706119854157869026760015844386664688634693143557198846978145846529913473561160529959093268362074504009829844708747943544140304606415102098229434093438346228509923111108094298075185944261345363595361277871958355007359920193092528859994853791475823562641425786154528848358378989726174581061425496192884138382675763709418655478769748873253331626075922083793817595521424385023648033968469531229272336103240849754103965006970139098733090301146246931421772073296286907627274727757010124437694999526765189959407924211518995281239673038679149865240106143461093698036495730010694117401408263951585181678165063107565025041271603068332301105382930934803300567626824264812185707795962307323859005536500284224280767954118099251659926979521265745350983093700181234896733707606134928769866624967064792695414724859493300241303037135713175435911334935367371240061981354349464524453826151544112504302349492865121590183474925900579192563073828918131999072385747158531469689549861596232562943694971620808605937276388234329672148304798686069601473041482224589568579298463738381061105892377249094025940764057446314489138394075182374171529343766778851840408015952399832903010740863204497491529358124549364627434633489676778037811138071495042157994064227372318168428726189664396914350925251636241676648989697216432734078745133364069706137219757993645381661725754642910728120218157054539140997541681449180889624733566348232507060433219168678873700380467620067611881483172752309020391303596224179257977275604299901359424194656592841672814980298642349278330546185809404720589418429961431150061625075055765618554619827383678629221448570923945338742846017701792241455933844035901226915594905242179276779279165750903128513240197830941699617115550350554392746298358742946785142612061909124432577309358033608645713939994768126838053135769652391402070407358554000486138527527555519687470692935927186226393173417074548712502032451987716285732898978472989028243709058186618330162198067581646077974552644281718443523059787166225031110122538597066237428177136113066520681662270248370918192123983981365410924153830385470587733874118871458861259170024419651654144665045194777113521591789612959415882258162837516991508520930054466875867890269598522121685691673302816983365115041589962983520885114079782061717971777133570885903456973276408834911824349714039946685863134072833248123866334936902610965370938330736698192984755467888866348103136616490193337118553791540002207827146390911070375008546122661993369463653121147644358165688976648313627829375155930088261724483746520389642445923853393327520066884211625086443652511090635891779137271542377030073532778665830977259726587736308964142416137944973145057043686925150609599454096992806449930039482241755203414749610784246799170552249223738581764775672023988934074105712163759736489928940633715441292961655232880103134406771543427349836873320381520041017387062906180953786061765638403616790963162982162703182054449496192876958126161135762311268999752038343766282857122387502633008706843687216177108791790901988007991279221151670607818915301480191403749733573782189600202860824672932033944780532354455871914966879088607431020459518625413691816602300211501164333912896714832463981770827225456805440867000132917260039647910696681950523930195689800841917355525667345606826685801785182430001585777180524274712361307077976165027852449096818169354609026029939648915400632904272654166403183637338956095949256086692881333921002176749378665084154286054560264496130246982206921377928203291056856243514247205971337483972599243666146385970556005417143150429152653616303972451350428804820800803590511347091867556232155142400689285585937500943798764661938502460189010404397384828348294894983719468113792298594365686612797063087968114657158975311715219968052905260810603765707154886359604741809825214832256160640967116878741558509776459637330537202676458291889885019415039441668814420004110996213416024552859886144909180058414497911115718468226203212700388945595025794619091400816700695556297527263775758079334409459217302272055800102067268505404274619075218535871727588790372046066235719434479430726464244791343913209000725048521812049602127312220218584341058527687704643365563850934072780737410801238479856655267527189583042160106765989620071087009579126309344696520585437701253384180845028986055341257675441056232932618244308483735856192340235869219273150234143423882075324808231600809359697433102640156093995412644226084136234477792281782319830750831772211816446356854922904005601504036259685599145367686201505978649405563374964894263593518433965892144014294018333016057496776012637544649989104331282728379546910303275412880962566857205279804882143784670362813176287663161384197160172950484549842333653092854368512628887177909596358097890717218695210935160581333873242850291753177437127641803505941384492434071471147833334294544824470840485215531842162614607454594155601397880067210859888213549616404172511716674716232130847500456418717536531205574552285065306525033663947568049617445890205018768854906506843005336767116613147678678033898188493871777197689828448837482573522287059538623632276183147309727231494296007531266216368487395503654661713587467203146431982950612082124656454687365710148228129616612126430264751916579648620204093049463128523179314350712037787368057029953762244602769747579905524233900317608703974891281109296239293461319009483199997690849618688757094496532440708443554206134212691514050611862770717970763509257470432120558098294606602695900796483583884311299941685263077286034487728214864665370486903602973850322991420070656354727897919663537598684412362010793926987284463341677440177956247260241143105403211208703508816495318044128796475961040229334915187233856458735082109560242273562974801884840001773472210010766857449923722398838276444324049551204843546769230613114704328271073754019002460306661221886675054130158805658923431617159344533656389250583593676148426893384287245686698865459003547405208619524811805998409805961158503037616465963088308815809949572118328747134979020460295942288880228336348883910473954625515387713882503996153361613993375321981907509554714006395351221375194272112527665972802624997924063303563395040510109270137713189174333863124477891908041963928624174827981926204241276401159861740562910082956501171646994450884855415187585017854961571462492849328086715523270571898834394815577077575568747910035130479139828850498338501437211549345214225429876469148531719068030549295637466279566222265767099546000395854475297409635157870954140675578188515973161334171501789673127506271912062107418023732246549643159918298680969712049934603309918702263964054953708037192108736415818447517381465738812294428750175308731218181360092223810212354062705206251909267223176428272299757390656568521232031936737811342264785482692721925082221608736073658480970004462045368469901003644906902876099137887997940681286651725286457005207265075908922434334189103702077204261651971493967361842878087479478863129861680478809717125562289868139271599877517618487757797532483897109470641261901864938734755962778276014107455847291968314943110186491899056124945820139161349917696573054033516259431894414973168898877454311729733368798957678693595456571190522629795980873936539008185054647010927255435650434196824644183340705413237526113012712452318385945584056786199451818426044708464179603537270168988857899123413054751101299327040370350219323033239256211207958283412794854901002352481502551440548516188712415486650116220221671950828362162626530799984134776498297923457009861151220881204947243201073087995159884277579738906652565751090069612409501776456527149960403320303024395123783736267205800085009938135321225825545723421575196535230613552137873854527490183110033229552859565858562826589660872768416777311414567232098761455288774129405056685950712556641822254794767728833459993691990097627948161929693212254915096656946890445982668496531735088404941575975578272861575373797136850071113429177512830451675640876871172334674779819263614399700009344603493800661568522688131837108045545701265963037894054204073835186999606227622607398682795509430635858000334025443006722825607462246857814544020245376128913368913661085974695762828003588258755283961323445696956205065230891562373575408430329750738264788524427512174008853121039240921596620028281033232240980051622232710823802660933078162864861331676534555235309641908548702406353622546337497437003660257825306208137973800672166615945173272307016773802555821653418139753141688161965075454658788379890796483292202679928582583356596133542856606393317841343182212160947615987862738018048342414624808126537545463407258006838272786905885700668283585984160771252686550568626573572052367793101653524199017557137872628898362029017003707851023918586874600578702897571040549500689129531663377199302315327970931141244198901174536579627563909956549299572824641889447997827070178206536879901536805190246761144270931915891984387496023906207169188806502753215103892123078731864972657782733085217652997714287169144605824526160104155776157278509337957121191931535372139462369574543882967520334857609943230255252452712573598299358881111994208252320547441322637208357712883341808548986024884900610557981339521569178031220850930499680857841110980303072146066562088751925967636973413019079017313708511037377025151314813961384559498829500280240088518550053907463756454248916618150774483971245003749154017187656147551630717080737542252187897698941627631747861719957173960372821556547939043546716613834513036789941405950396508643141016902270545284839711052136160737653740836975643700029255750448932109356948615872710675582953314834895577942294831589392216124091241824217383080518267930779765750314947614069736486031275689769394926180558842312927242006111240032929642967802296812662059266462396401335906501557314033232741736455595115856512728981685465953272865333921417218530086991779445868109228122736625854218913066857488140995047354481556119348010805669634891151549716445654613480071800495212065015060767753512547886668019551307638510129361893829443930346097664747859071475647499471069098021227935635734576017313638965185598528909496141934164975007390745506658307662061475353439554644189541277077246122475356100766512242140456189510227870105066587680329641815236618575894425590545932698609932186741371231531996560503335530048074646733397270603737087060389392824453739266636139549040175265122579860896502992041037832847097032825926628012939471455356610980231446594585435466918444614045841877051071983592208583740614335573271356255391073009806239848230099233331167547032498657569450549723233085532774357347861414940027627097687194568696699634269147935848742933786974148363426242920973210343477104675852677429414672656428326735352146597602293339159564305416438012011780050099526855849576471974028411442383968552088911342405582761792560463320177738348871814500827798701621012465080385095456247864593820939716509466632582469733671098890136239549563218773838686007813463954940923828698043678123206168154749800667868536251128877816104801230998394291817803107283130157997690282859001750902689722552578497259015348234169458310097954408740368183048761741002149775722504445625037693524021721102438716682779470393694272483536692531445163873243259555504631822408435677913510107825492598458581864818096275993412598223103386030912210893300431396298169228535058875554231320115334807731571204032365193209167859373065207110702849890078224314987734073956274060975339976737886198635391524505191964925232492320387551625593435574265725212066108728206462286734477766984450463512458952018934335241643371967105199517689256550564747680324967820642221519780700912339809910045957118628606720414521598738195046908604768860633518278909853280180475720490632670536663866324131143785041380503292012098054678545684851476696383956930710244043036545799010569990084661928240584231557432676966653334034106065422809654012970047105034042437200582695141668131431980318049608399453666624515830004508588911251609835828259891750113387266699792976654268507717104247585995486930744981699446065213727250282706257223413446971161601018295073894500809295295573062760176452909122187121992565764370737896540610216463308650532870418358550737912282682278823210139605001101209893212761848115688622132863712487551938140274589419343381799514443779151041192104470854228968036752398456366492211363606044623114893549504115497598030820488835783682007503234837744176778737218483958829962723448244512284913663671633789474192105412759927742399423602294466983658493000624816920537667671598125363253071270354408714558340328716974620539158164284136044325810774578152429978382531855750753872525030130019901259519452771988150970671773369079638357429582615277638443070906083605080475908998944232085119664377014333086182061239469339902273395378615152775622381420959686456449215764645842679742307373004140975028198485263646023879673233078369123966075774376590116261684892249144037467386867079682296043438725890869844777292204132651440386847276050288211205052819367403861758564788002518760092172465561106857721712287330214891153294593810633585009351629668855620345891790189536264910504532576001933478254589483530093338916011518678651826388435940684066547573883291958573209087480176470302687929084789416465782591859155095098650441607914653278267003021409688856943540834706263288146651871854578380992258065530563384065110254028341477773310667804888932071654952701365984393342479949049060861813778939741663894638054246777423489393410860599193474726466296658336725501430235482967910780993960322888435292574578830664692946755154732924217214417489459538679573496171012763086471771335217972081793407161950097699115660524616925641349657531826650958049457947055111247848016592662968463267049146518477284185651664248162648219260073042827501946295919968667530616235762184085880519236272279093441876672476677464900049097718023956565719118175325685877695368187597473566716461173834623642381980778602927965773080185566921579774872006335944069790777820789780433430255433742240262378872705891775202273266279823260284031841521750442463616970483209741835532731742573496850876724297581549020545344211484650078917831959046633863543937694268902330771241154566876013260100134740974792440154975767634226927329783805556360400542996277818191373252923110050711779353475721830409622468118327994012374688384235505806096629849376424559926750009430095985600817523614400992505060267867344756523025784276621640378041119686845117411669263278733382394461341946215574448024952947167482706166015823025895069179216346697137519073255079102726554966532746300379127609121892854940655192313766318908098882071515970628730797583513841012185329518477459370489270971839412223924111283515305372722406251057199226338055054491608797405428045406764017291658272213022045968638270804673951000155396605822693060072064955072683779679631115542420715125836723918820138410406282489176215147562021739279712022252594103550991486720811761571809487441503830189991191076150665863449742214343132883005959203260208354210619645563242984985285532900843069711921091833258863052851387347330272560595594856613212361801562970860791598563005771669689054056490650780856900139861632034639897800244202476809056087001739873131224971953706789217059125563904838135713974026889181326683246448523052304560225551166309312391565230400321001837973141852362747009798273807382188533897419938773710485683932116529505737241272415179449894797316082435586875724715164464830587700011861698657970409385164894327553459611718963409950010684410111780869181474871699291119962289130883265964284823401193872013234071449497934631296917475805505554419354677249776562863520417146265403080143092530924502536524115476493623178972896360573073488620858551740350866635759383392871269095399315624903909893085605791744158167053943793857376477680147030814269015507342460418905253762846343800654968886366428635380009238312777977788680494500826143613126246035478935400375893047400015895660851639860880469617003348931678782570083122897999169135018313654246386368065652979393009816179547219422856083233836657636486531098466278276946886989994432714858574784019343037882086378316471387178455134480302169871518149079586712805712993530609435121207054368931838224096702867279086557112525676053863248900725397393214228420630574561421036617914700781700974484083263337128414277119184762134013854470738137430660081564973885560488686101634155780430830159379807653423123703453271950136430180843442811985473540750471328755951740286161254518081775772719451825564769849586152583967211716785402165770522484600343689328790145728588302984602906243512117011000998277753527834372725878502068657884359293919782281144085098013710430985795639301941273610081427726440528470944209162739175286470267742635842587842294659009476652319875947256036993699651172606554667509617426023132466999501742702895488790960510145161555939473897108661761657854930509491145001696672771462687259455972800723766779069237731228375946947039802320434975218358187155630961061894510597258740181802230423625678015003335911852293638454906877366041607568163739961217194850899872469461006487169482068606862170237113453178097406556100323156980001008455121799147954278023035208405898890319912003364647482008707498502699775259217630812595345887891571779081354193616791114945606596949620460621770913533139847059051774674200726507841959782614917236122047423509247333269204302141615822292180027283146918478013508804906875919631108009256544678254184397627443710090667849922530104124721668182546202391922854841019510260390381781169780499795463654703268530541123271325589190799901773230833454597212638221354432265510619164447278787328856151636690504626488094175415011332296160412597559918629353042868067431887646093936854774541326662085096816442738086039626472949419786470839695764694505800958609834578469423360650212035993734390783507956272207796919052760897482476253489799145971954131600336001199413236830550530955582039280714751075764131818337762545112255693880004118203898473723916456260195615666085401779229908321857066800871134635553282915216751452225621472889325634222762628551942239580672037887890648494446042362959211723135674576379741921230115985799893553237275178732671125771813507731848704196628326415923659251396680625998497119441184229228155536286308802595822356860832757937837160021047263392086805290263321059360581043991315152405626314256401440481398198997879826925729375923243556415258470642841416079564338453974808833119026104971482775923006368238208411679127287767423892399288114577903949324368695089453499724174986737665836101430649800273467498782133946414253448373696516482102431540823960109414249230743490978587410893387178989667611828601336463775781040095708077757477854129488910851266706053959734890834920588620014109740478575501211625059654766626277021695909423643074546439045672774706561028429867189274894285790511847020900036420728230408545634655168798034832426338731346895908012180428470929859743350970039350968083557511128904169557757143246287676290673201512071978757893207831731426655537197770553921120052488802032802473327594558750543674763144812359093062801753122905301149489082963361867906334490210691222869436461390371574046671911512758314125795098309751448469142480199474908874820877685264081821883851776903603652146362002600321408181623147346054617477193341274475077938333242180559851576451983019980623266812251168609382393807703885027365656598706838473276713280457884234514056912998052871448631308224595601571790537330792774617602632417124523960861894854065854548708486668471287907925378636668508003119629190771843030731403488400408276089112998435152413990984744453000583435034836750572202364446006558735342437459300409089232422050395919685293700101618272281238727282052271678379545995884656644224538840583259515382096148650779086664934353565859525274453526216995659271196435123304294930825417170092437100433299191409222094644374414208309250313184973358471991472399367544335148601171500230221301524156374199316966938944178037137219281186060888840849569807996226833889115853439569324473979046710339638009178071835652755505952782517321622695746643941157603385700336735610427554510136699895489354494234355346606933549498478277552982594929083229547288596501848498380298238150581872418004635181862188776538498158185819485120285072324529373608733431795163229623120285351045062107188638454674727060923724919839292411573531772747777067714684055341902456538477726967470664966338823359329595870710692926909410086857942061112789268668100968823307910217560021247363099232454127453683935472593298159567615937158670143403345675123288013139283736326392765194609455632452134916513217129265477209345161203843443177118729291609652467587478028399636739770392892051819700470045901097238012496908688633999357190141887434004005081472108912715736912508584786082073557933373049286945430507856040648574511473290511919574636743458573011438858027864410246175778458636847129403502144879042661747608369142177167797714873097449347811289749985473325457306655735069242431824090050460199374977911195637176255794848229756869953925936961656386039547851241722608502243053661422929753136740045068190218328981539708650676645016139603334512195902162826893043017824565160139534070881657153432612529249617985811022077830960557133964744564748188883373835992190382202625838977825178865228546707047400904330957043253391527883269486812905637889811015732176570270901290685697212100728463854644606968289797230098751530237492637300753445813272456756850364993759272437255611560866644664012698889334118827579962353144502546096693289664905784990002545079590393856540328570808733139794189249012524667277331304950035932919214784603458446685101437593232072793920205132630568539154454347237572347667437733609463364130167843224247059878144856966686915987992675539417618798647362537072379087832091602459575139608786369233041341265168518218897198669886761707484648340783644117316271114013320240592597515556373835609251249290762134131524369489016861259352798870362249859607325527930975204738879299548478882355121949070918255362469345278775249180725734719714979660511451126120682284570112007846879666933611331765205564105169290855478230811279109395741111577472560532424176521968151190207426182013199356065826998307251018371693764387376142095895043371466357034889891602816466372458069888314307396492278507916031924298675301902872947115563423172462447319831417086572644967886955850478986616689963728708298727103475877205207728404851445231880881933224673286559026275238139564072112252782176770650588406158542212958627946982992971976211826687425140035475033343496989986110025728994855170133120573846560961698126074958132907637914941723407965510835990570693517692189895077222210054105845479480893976463112590848558122232181881948616485155460535897289724662392903322062366800032233327147764816204063944614011787567612369360598076849266751500877584132622440598818673070129593310119319790595224175233234418624049679765821266219343688714985047170190422208753540776352238741804191686250418557371499682465679701911756788291009991857747385466040230392896664271326842770733475975681504414393304726423086476638633061637080486970530696339988433857994352723807968509973827708047879090799034494795020937251399687878690527073363222840531581539364388526206537902320913093422259939910167345746517771529804451779342980386849952298353344508591121167270762127728396683848656253409844216491832925690400618795677275516539114021942782020382411305737398810237408619669640389920560491619327177936660098614139881995740241588626586550592208947213733036359842682221353903166046974326388319085899667359586742586452271923908005561755264294761167295971141634898265366082025947264615494695394610882420659953010278933138463265751868202980937937684148585349566385544953852102319824262999118783582913170667751529491083925829912697063261421941687647088358580595713384463720970474126589855734555561156339984009879433836688704450239219712158104482503116583591304620011336653223904737907881730524151222521661267606669042206420144053854502407870435254371987861827108268160618521708140897561987587439358230887821531265656673092938577440282226929101723572999966260139975918118778755309189530313247659849590851853457206707266946286904442926855853882903549382027937694431453090381275882697736164714129325656780640902929203597467264582313987310595361749754348948258756936306582053867228403267168888246568085881852320963770134046439109592027912292619587305229202772213750366813322003420774205724616874283115362712451477724107053067261580905813531191972068923119638661517632480375688226701139981374356795510076118281518114435008589036346623092462579976549280617398829928964076602764567473321875936077120385529064962362117753078733378894341445394063377770513024984459181755646414973747303132558893127554835582404485265006018777947248593783334498352592648757033726032815793986974352824278689118271291127329773316424935872461309639181382147006825059476592600847427095405980287841998567128509583713733952918277786503455601649454615951647595668425260470161199834875532005574420297493363788022427808227170239318607191196330895098121355167134145061428474342674539577331886516796506533130922914309189091523612423718574663655163097494647755736347751870624695679003173984114144761530816960841791656079051484410442580761867784280682105264303212383426686736159341757180968805071353137316695863654527822475224573633803316144652943792768998402987999035309572855212268686916829238789180835082958708167897948308130863215541269801150287091346716163489564730492933216247547668691800013095702309813036216387685702004597789556674285576485121520295339399806319868831251774480725905600255953196057381155750633498733664833452928115672852220881043138052081146305000941376700099389639097166508118274672089527053147149233665389103388380200232622715040395670913853332720633169362690860593861406049774637014240040915286658488653624632943023485894278390916663788443266584369660892700411049320038034710103536413555129914277868622044098650526500700715384339280928506594986916240139548391559317704945727118143617588659517156385579616285459600880782049891807025096303807744802884923978249608213433589466165165610074241310275256357757505212264426285814575458368755472520323432099254685090893705014357466852265007720599242041602984289434136632726935685021892278559809155536323276372657639513806219675721595847143574559491987585172502917815204415582988714255116262030580643460130000163730545302259194669429993275067049470625892036788102837905679593940719368159488975776889718170496405615850369662044280498484372462350543678599120181646905471155671023262053586975315351309198551997305515382628298042401141611461860540683167716583878955920278043830440330193035722371815895264313786913013064635215513285218103529720669865408782384716176966900989258490058680002197752989521312944098976156047956621331091284873693329925207309576220200363030671477616912832794451370036489291499920677807386150064924818478473412769446878692663617904902388161354411959556264980683912277870818281777720128508945299582663891072851531018410225078622574137902377219416493879892795628452344701291096336403356233512090817102785657806957951504104736514241380552684697213781520863931412601729097868776893183796168214321462111968112946764547811657827955445956207194275030189882611430431749938973325584985366271417742522092104224708231702178196115838553619831460184703842956027907865676880037546899597797755436805284339974650742974537983591267740634482162958695564647398161153468092069229130701662060890639796721243294281284476775606506535457118916325453453592124596307579916563040838629224160423269578049877362550517604531058623584014736765281178333821774152634597565986816177804819506962881314283758206510439755668826560421016432126988993374070563918594386296302874947260081841199491992498575234987283385139410273785991432224649728182823324398547244858302080683410926097344766703661866029418405295231317243620704314035888950647227120928404988434207250958154638352002300999332314960389511906909648343702189562967898945012676407773911093939888865801816292789464198990667728593626427745179768971453212286926596388563421456440629048901352007906182259240975751882023451902382254190717737703116059412555967873964838400600773450735549486368809797395269068248819296954109066470747573279414044054239221834617696446970196418806179692476214483613788986367520424961866948576515136675054567740588850832620052684186835538133081034531593233508094717179299410442594344625715537191807007603195546713632061316827679284766801760006040659595367514681610446934448757499517725998610731199801938860099546932394930589164360273830130091991360697805940239385120130654866542731132208237925560955551174801041901053747994289552956986612098282857120113652602124250243529548734815382745347996832424476907696403287765589848007182866705921757961210964777537962378311324353188567737584461762623354700870872166862145107864348171632125575771680881207940480524189718173917660875217417205495336020404733849229308273385427053003152845176237948895688132950012456198039306795841131459628026357520690329220501814838587822709047522732377720170674457775531761070524329651617465152861949304899516992659034231959233941286347909213554448785204026999731473019033252438721008281529818228750540045686617712129282960245561513679951395604686799528896809880952203491917207065200606079366257958079037213771515126071553540217991427629934609912655987696804206636835472008972559626209965687546191219770192345135149023511736558784885735477218328877381481547335114152218257178256788417420973795028160232008205146145185253100835949513725911923346166189774435394137711423467219225377409419395027938013219705779033756744118395118220006799681778036464204674807695787724719524669181073164930163660492224358222383868070812923926168714193507955835801688219210762445590993809942449458524605764921059218031428500979132599807806366927916677704382824462474901214885198677590844782707238699582125745890111166989006597336147496359665191005981684539682246411112037396137187376295832098211529577554830024574048112158172258924369147325514734107529412382013773522847831715308723719205306191076495382572115587658602449325363628720928262038112056926094430750891562442811352538757184793262003237221902281537242853334726551085031964963011932169246036416049406572056419200635502502481301481105805492644141709543969090378829291291187958108907174781494173884165394110132036831748517333308687556461862187461647476173312931372526911968835348129232088873940523996982920131110228746226337427128707393823394523003196330492321943004223943694764412983930992727976341652828092366419837775132230350845166884901457627055344802533789401339161577875075781497647140389393979817165482764571079239649258663726088650802205806307964728562193193000091276837275017758211876767550079668780798359854003914754408759037619219707615679385826804179759545080293600108756643435975249266398342839840101549319167581539371267305355240805268547838172477926721013297811838911150148857588829509427085059274278029617187695708448126383321290930171492257463815149942422310587378559802572708572287711944683955588085408363195132373167614850107682610255952591564236697214238321127044232028805966212354965857104622660785291799336431890921849657764953319354404188541827991132043110086508605290966680600127354079184804818338874512334718933751907839467647333893013456617329331135157413460085143284653124879258307978425917996833507877735498848695789088209861603364482917079248745288607044154042421339975871285739195013343905575034436729327025797814642104713257522040832862630567540981618170200698283728671001214737068703735146042928330169255907450926651250507420707166161904458133508146041852645126865955947859047192742481479194198412712743043339665318478488093733440260247981407399893085880158798196737327229051129877934708052611859007674985525898426739062224545311554651490046778331574671327254793409719095799692198064162162958820109189557493729444954836541369116344361618513860797770883422591114925366890096497041551715936368932568655170435296098878554059864508441234388121970488849007149660944596183116387904531863237297751506271742493137001705689536754651783089805996061477941026497384305875668383316807179961490112852483369173288320312232606605251613767816527605664688881831927995757400827296106609215657591727460180679746537262080895416010800479071152538318525474897070022645931673956447679515916934335434079501158285121442452803200486525680909733499369699378431428890424137642059841249612736259522462274728017969262193461769241614007837982167491611627622803106221940202441336018248423463539346899071600433172058993518043141615127828335876542188205471915340386640224991625853382792408762874503763660307836267806892101595717807516926526138255300408759415622406366743901939594821119503482322704300035981846638756131545145214617493172701597355483029328377306155372066741010043506917476085595615789766687215722650620779368889807482379265676221688807071108926113216705678588224252002322097323120914636346292459898358048388479429981029101414544470236838715026494668072067392424187109831653408129617058411629419217515209301555121409557630232641316901870441156624585119069196536564953879338027297128912719856021743562734240076008437639391342996926321461810272067587670984975350155790021821684442029010487495589096417524553064163302102853477903294748191873088431120733451123953159106421619831818158043721725363040202515591953191741313180700129798038913197131049886524435380417177349511046047396707455153817166035912122803038974248923296338134563665511874789227862581345737375013339267576219618904635851147509195107903015177191031897999260351058644890646055278867425006581803945970381902364221388605350470048767330988167173287280870446607320051406163948951978322990207512872537081543804121604353855426027275692778713347561576735474863464549444161422636405559471929596328214656341404867993486292011035575462747618792335100338595854625776184893474701720132829742956535674933358478096544176965841930610350755173128751713453809521908499719402630322207712051835354189654060936240330793022819905008323514381240745590345235860718284017210410433218789867141159058556958531961553905772070920814196146558344315413826795008765108436359410367921019738937015930122103140002806018784436445163031716165029509725545449011595416709240203862030175648034886521129840836952773152277974453671609413382941164402058567378295789396827248202737357015439117709040166065424566503117197885839693022161223526328169780593920332832452808693516968186885951531334148608575401004356526110130505712260883191943785728430503344729120765866269237285779622194951212238056296930487242048711326108288516567310673616003191601286986038720627212844604903282122945633236641934530647231132676666664116077987707115933608781208375227945669859438705644060511226366131864682526164322656208166161317580291597361789010699361108552147868687932760347844624942226932537439205083193071843710048563459691339917294269087090390353700444441512624592566835233085898235442546024530159647964492032702586859289242374865561101950030107184762993389487778774997102668307528659185523792604706355009885112149102133534322647154966068490892646996713358809882403224720063376270709758078481461334482030458616954220368223796355057104754228929199959575448379448753300950816207562540980918890367637613727614829549025807187299109026914304671969508246865703941647165443794881504137163444579932040079415570070846142312986335243095788498952956817803885563518911674646472669414974495569407995737379480842567705915075619079082731060702105918116097324179170908654454698750135141676312456485397819438663192803732824393932606540649857211878893314461960245895557133884273072616414578033373579857092907280704999776583315325402163920801798832441592947588062236391176733113017580664098820505222734287229968225766953899989817046130918278914198670226102920340675503940501517301988180988560306690234184783249588455038914598996114240867871193100608605786211794863954656140012558657374849808625928228661662780090361171942836032562569385305182543847321325021830725202178044514430460361743224170711709965400036634717296621692757409712732488217502058388223628464944579293411286682497983881923951832283268074359578358917108682333834130245522010326378101200619297246592703812021172975364598818088261516904940135356162287646987526855816008504204462388345975115636272328450743754348958727847717938347347556779087500735141722756774055901788269643865901916937322773768672426751994809144085493065238777249037612645771393865072857253612034447895191738866968431136452388004746278735826785721315531369672035947922320391325932978121179402849905081236137742741965635597745441937533961436002938731664105075093421597275579025637232259705746348891375827660204972910139301923467280929475998743093563983936146794487972643380659414116970150596355522786968489045564347514262661575849264007007433859688990636494685767825522790267222963069269563499649667786311546783202774388841581325548193844915777388358854238175539277178398259349333616863102833042098670634203352256676563087251258832988228122547289894583390686256077429526006310661276710653511467220725496460786716851532817669922179391612999838816924580728444761145591405161935246404292259026021919761209944173293771620597116386436880319504286485276206364765371926533506963935028762971607553281184351417269431550497194922015216113064755751245733673430015954373866249759716843407643531752943348548317948866643119987101408144280827547633896300414813710586409294242115467909518762152203017696612922276428883476780362141403437961190718958825466434382957042118949233239224667349243345387406491825775955784758043966469568029248638189194995877798661556625208815412758449105880835194701318950426633253123621811637476687213341022446767845906133571558073165326651871726541383098125368855367764500466561308059449875766184226461199549875141699182769288535416072359589150361542459681739362898433094631052575562456265272923826287422733534338727340884618662160070134439003627025698709153022734683716345291865603815302331434605111421712283470755797957475118847735324650744382438794942771021712431187368361351473010848662003381654965601393175218421446527753172627619321111727464637328091715459680949579498667864018210051299293388020831326642095319215556157680065101880418137505112623863567510897123246421263835449515145252474553277181282176435719713306165440061180444047730601230289596019583209434425284796410782608306928902070882324321594655133602384933421560067292955429979594224028847255017166888874310548214678484583033553659504953953361720744739241013796871894686433318915122361575382468856282157140232052685296919252257217250565690367090286831650591216216485329565127801026316981161827475867576445000072511549758831174901837905720774543581133348823765879221860246427168923540332669832478607759857207447972509738026543423781617551371529815256020585200173608483508908090767582227054838310451755460504221200059206199430848764296383632180499899229023224335860062151337439034580645985806492158324343080460734272608354759500313178801160901135194824544561410523945664271113764950545030296437969843643084553029532199220046357077695868495982142333083172058839774517027846839857273426222959951354885446689779329975735770494195063998680213454236194811120823968171833497992793985550431246141331238226479945514425942032399821304165250424145110595999180567313893424938668151831936956576806472651077735596902613824017081860615713748403005078467162928677979141824871568105641695871968627041136577123736532489114503897226441524835432013812485232665550104763571097646168812823580271382937469147552580869528221792533699160921651847177512539349631957426901150629352694915940117407386462242609020767611505911689561391177133163439035674172053531288656871122044054248819830420892587564610269762522253672803292837000052954169148148465256186980261772050796345778099626955389021372998854632262350782812823535547403922514365291164124016906873233845042882633432091532548496251389441889459517839197712198438739929243825246027770547113029261491625364354461363101929152624693104552599373730747281640507276830232408652756909480725068277296106643741923010680380593447489045831816196592569912883004109520517298531817663916664649976045873565398887759858154069894974179504805740822901465287934287589310268397298370495354949252508860555591897741359130826773503976795894918009413676710546580399527185628865292574742680072280804005848471679664296409316145570079239552882426883683582450163006764350868797218931732020616681840306013145054852067652242930326566273761901782696416228260907146887666247008907986120296139197778413956528571855657352149345500223152707221156011697506343648050991845329927677000334247470240198051341292079768157325541626730604915445163339068163077791528773545880756407016842809597569725391187689132257797389167950862903688735369747269217212666333311133617067989799154907751365729011853860320406311989596717578464382856688852956860642378082157756008886789961453556024426899362373525304721394904661002582943352646091313933629717903572173053231207626500320297932950175433492421277127262395597140636100298756572720929588427407148268728165994719954919063557211635059051955984662421138595661645432886120218705089839330861438416547346773440213762810644119139485072434616672974099419798392056123866768784405346689791728126612994720957978304036372027347302827916586629727609614098478831223377079947738985070254255497748762840553650458831022655135779356874936428529917440417194097083543967510173583508306675865190128685392003959061359506819069772272465762471514528270183069157038410196493881935191390296900948963239939862934503411869089492363564447623356078529913183502631323604814582555892904374383027959639580652657157344042433597566628860903915446827032620684277461902244514692985551477788451814442949040266753944032847292145165453178263833974826417333906487680370775339878498395456511511101587032870236813046803617765140995242056730579726551496764487796571624749577315970763234155596366531443139462163995855186994484822045540509100017641727357596424259472743733761255429875693485864260563897553377096699926282538244841481953475966455856415186954524167184426491654348704370981499171673479078295543263080052834692754732695479116481272160382390254073066754239072234985157622580811183463629863953965897393440333418945895411630165276948657779675648169654802924817559340532400897138362953535663139484909857315226753991765983975019601271449925657728416268485263769779606112225303787525768101626393115880190566516348890867400487364161121928273956679666089215323402906549639903688348091140499370507673807710095604593650213228603652372294909344004560668266995720574288067845965772791789816839750879005208105806019246250573458891357735266249992176312478424722309420704967429463838467990807575008384576386142867039865805771844223742492472757112841050509555519147035020286066546377803874941752916792672902836716571601989310513667133362103910176842872218155521390651071854025974501917820490924538107869957217227838511330563196496725059455259649752661272440807606243339569707308699516395413130766649298992734904501386607557258892651385722484124395394417862255324676286074849554601740119753683877836783506307174201855188590922908859510029263513282552039198372186590092678120136147640825440557366396339127343541361711980555070653593803490480653810099489314379326255155198622670950014134531994921599413121745299967064597890101187675871578461820109808993116922687884452926372934188613485729421417087900270977244510528641344190675671079094634200822804851368104373683405686601470125858455512544212165312493345399566877186273667696043398511909977973900164501880663633879203564159763211698605317507057107026425483337346160607986229913798159488978650848266264272399593567726869242139039320320635109504899044976995436268730342223096359636349725384567255906196194853461861040365330516781403240056808124965462615175731176643921228967607838095883689805477386352368086220927390102254248738898197019606081508118899600611433320975324719885967549870932396356662437417079350769989164829714238035992525646390748275762266121035283341397843728794811537250250389563426711039467482111106042373736969073266797931988536225309551821118971828914521347804999704034369440869965095205241543418208075973059313052214280673324009017373294313382123569265912349007925313359098508479978731538154025486706634097849722563145431678203694710922225331976081879167200211171217741988897756931283086016102637164931598789546780223206594502266150547699945317792521714649167260610005311667239207480228568151010156507044873110620973406947509937650048878839389619408177848767268391800202358904973793524345562236213333265986514994895746350192411421037275592691262872076971856641298708819213534501345387283098926040082220089942381260915222006909766150763546963568404377568950116202122014309245348990555334719289024670007859986710748932133870279832923675223686800699128496817905615917422707675336147470789630796578623433246120178600962563679938502752564251959506079293598285172980284603362827930025140193411162216461645203304594715199663789588742527416609419298595595141763252006213097188693968041964666337600362258825404974649079437441761728886696007090223045909229047824847824470690328028007467892693937526585276578375352021743129355686319218315523994549902970252936425370912169284378802340338564678133756104820062018102201398071330014366343821821396951340068095589680058277178216639815556981627213505704623018271344245280018114732517719873176963905887384636564087094900396679546176877976930162689930943575484138855482517904640643493084922062030677927896551015163926862238517309121377028670250111114831610298207014519546410124994836025097926902985762688737961322405662240418136804030242397001542695050794716477322516907746700758884774261710090347093299578731167717375030282479655398150703314774184142971854740744272287019221952947033420778068478600996525025317219664168362470839475114918951782010516787376131403674264034958994568563018138128559008997330756778574483706523611591021571652774639836947843494180609148551091931087068222039273395878472450827424527182965885727886027945162515511218923387928306839177925285681498495879343287882884856338622266227893664676655585973408905468670099458888782973357482958799450831389033378658713541571290851304449296877060628902009035212461482832776490574780375290061841060090909704512184967379680397785252916140022362625808533732446386719370752596769525404216937532419804308707174257672158928652473939866342975612569430554120490153770818594479865974480552795585848736390177372715431891598787375658134159179342158624519377989287131531051962595963940657596107134220872102293890317320010877542430730942208732137399929250755420968907652812068397376776254308360182096922727306854751033448534622630544405012224766459703358772766403622455279186868446453712760432096085434977712836210901227386867700531593825296538795846933430559592125612259289869948587756270322514001245707527246412678840485337507840726129578280534957809779121810742101929401861503202706338222114906504571369712594042690782689155488390040667038563232339408072309398727305858687342382087944223580213132663204705355363157305307070790939366581554810412088484068725817426447257665658488304906481656470964324417218529521391169743228553692952691909234971775518553112716349686705562287668687556263123863624029020652419050806930643380523786943485829460353526581346795979386129939323263380881062818246642262122744053498050315688544784260832054167591188225869199865637911695077299713705793458687791359149574500252405984686586095623383459231239932669399756320325250135379413684848144604274292836114983258101894063535188268237599960234857174766664844254706000282317017909161421457362557610794534052696813640511939644270264282323327682763908531266936432345783218852535676224116487334694687981799562113854471208372397457614226761279526386943001436840978611711186957653716959179053272598853878244386909643742957498890302908783677527375696624323594265450960623291042518459787023681105868690292933725889066776184845329302559488724890808402944916884868306681616205702652427504478345940201434791667052423131430990095212142705034196207220870406922610149064283746124304633930016645784187957880753470124048846650864455642009557947110349859546123511154309851190246435510304206554849102707414036124112797142947559570415183557690836459575995931648547180514820552400705604994652324470770670064437960744952255931584017008119534168893198918478018307475640769129931629060045180807790151518540620851504520196055664521783489779910815217481158654600767115655726898435610254962797531998125994205994179114583493012089013655040323895193129436167192338266540734557245489156796764962523839135312688977929720676445537504752438403214424842752369277767468069536848945336339630147983927714003918676731664105138962818286453079620250651732650723101446553984147728524148610382195349594580902488014470823104497460595540813882716552610193666762875999583331729807604809935805607977420925348729586561394272406232134768317527976542383280204586952640748397729709462755758057629852269871807048208207704454543494316585049374872668576184946286297801341720527175517493913678142141982150658289150083185582108041018690718249126084800051540666420958326692575139032990875709297549070324351173189764551848845940476931249836394370187129218266495821167211029331837042763353321375769178887087494312283143897552602894851437864512526999852784662087136373847924613137997256222597378446118822744970002530077440006058154746680565283937801271633480584486738796135302393204884793406865699230760296630699306447496960339230483677224218202028415206694896297005769568706621120157496585008974418090691287485415218148587593575540071867967194187293573315252855742323946564433541037525861041121698980638049316759171932630361000114042305032335090717383790185281375571165113695475001042421097250834259693285297672757046804146130448379578090680685247949156198539815277800273157618703578216476966812706478424482368498455089330589300630222914260036672487546839907831577934272133106627174613039592020117400287674369361064911235838212025805720619239230040579701005511511795082780694429717204862195342242239010032848719757683739032375329386262368036867065380815526006756392900665579419063876887699021804519497733309444941099707206986081661416191995749725431201494761838606877198576754673292697418084459125186101535378105550469255661213754183538036014861350348751360114892842879828689633081822780799185392661248521163552498458546123428670424440885741510862521509500796544813072013606163346644410705853889815906747835781854082271455544053680713901788766377332265117023292790462347519517018478808294683864889233987279253340478070454388963817991748735783487520748923456693484238062416014783740005357206221401676010282572046335350121725082627897423054700653465467678045352373627627673378204351069015606986445747175994931173485152640263694901355541500883498521693044288302540466116935699247119749251681001289836061961073633009846076645575745602774004196802562269473745131578202986899560676754112777208128697108869261444237527217286378538615692383531747255040622092074504058830743009242561872912840666382881093651895589720509686186923943735412873611255734642145961860372455504411382699192379005397701125177940162318565401370710764321024211750460311553331784449419033845256022433799501322290127336023951882857922343956928130937654480883351712113941838793376438145583258786487644138855476675939013884472355924569691530755995881525460946180154667284334641289130865820790853051471602282731910261860211337197243372203043689899211381107891431071143502918922143707623803239142885682634263352958569821012778961168818116876703849725083595884293415140357663752772666416910319818750435637064031621933154898072209671554897887631449936448239279333939137485629816180646149281324862162308208959640650098856000585690098250129201754264552595405418563824600260963497703741289624110736158242033371868570096335966192853181267937708691913477082700227974398439498032739974885808989038736103115491094258685157929804518053428559961918337212117453419740601414556945476395496733630496856936050929478691358588910582911235193527998702149150890839730990558954498906714105075681477129581145616068267691079450409492083967907023269884507661461771712468055925496218830711518911892786091116438007141003231761583681011677104660219603879733587047310486512718618852168827234399867965698591133997637998742552357481228096316859580907843157774979462847918441133677907020152733019761108450955272536277917250456714692297735427310131038874840361302901650751548565573259723990910069490032862427180659616490323527936710749748143642182450302943206489990881422656606261043921867450823505372847676864708030889351620256155110819391257946364667803496370066264198287070188117234905829309956417670842081990087768587229211834326816983294342680338435675816605882597826489339194560690811483766438472473318602710917074017056358154149192482128183503164429602467653769297690183420215482654268005993807217061870164624959880810983110316943544643276701207408731281774927158645256102340872666771189220800792836292785813517319480572892680079207050822139600335839004910103980867806133211831903813195808669000174537568666522488867026703620616963072518567013445078684523697071468669666064052489523737965622778693640436625987389913580399229923583202121620484578709629992174190705565046955307608384386392395429268485877610304179881348953069808377265677524463402844845251570495396929134648079605180891579521059627901196482718756323926114051004680308970732854577149670307556193813872589590039378282804263666782356550684911485049952441594668322678795954611296299895189383147403024031104525612764470803016409527333087092546844055797137628514767743265592527536792162385245147459783753039541014437774336367190237925676940454328726821569293715740809486925551047332021912497577043674851109913120811722570874477925376470678495403174743303547760071534906100464272891509419392515001987318295296187750826627746068826307838813134243801390324868056825032322592615765578781431480412567129462062964194890834147377091070049131709581230409071221509244398935875889929270559314851796248737270632524472119107995302643746811097568045690727687759699389662773392739722819540287811690114914483729658985874004081097959017400751942153056029885384353772939950073638462931150226091853631826571932147017793497225255323837438908050625133690665364008244953482270054578111855609974316505883469217857441970140145182207563370455805313128898243943125087595624820827614545143890926415743010580833757200149444356700609870430365294798424887429502388894945991837632644251090393485024096686086638776987414811704985454577748066006372167290882048525394309025076482005560749579698841179300324100223433352114693835470241002953754056506920321720493888623091712340646260831029938618353834227543153879661437859568663003848735711444039408307719338673928000658421222346711609673420794848063015246659138595652506024533322819984426333320624405771172039472817761921824391377377238513113814016978442530030515234130091807246018634926313073941813986925512097804883178351112974130063217441481741584302006306819376864558077460623842122339976887926504436648535340858738833307986207359123915924417315120635300316608465680432709998464196306435050316125082275756982960444675160016954540748130780702476588967455442303122421251796965506487932756779367393073876005546230966140126318108899896218563230683857696390608694924953527589393525349243402064602060288747975729766643036261830009341072047050968576460358613007240552829168990974898160915277447072854296229125165027047636172642221725063160325774265342457454013163777066016263757743359622312496648846262658989474394064583698622933839321623945091865289504668530763388233682770715947500042646482095364617828861860574777088441547786167795761396866045317893189210581954063019126638839603954098118583206690532084846585633841824242471517278173091768009385303512732309756972777893811696443831838960319128980763890107276758226740583486422249441305723282216815543762384181303324421418351248779102491788789498982159980742411877076695336554145361435016669886361617891185799539271883543591206225128198060922861179264376314848048400630552208850845041658845214299771669583442077341293708561554088766743864684889141902749876537568122885540812125731183708832934199483244415769459946954287366581798441238572674086979337138729112090141662252968933490807466970942177836628606394521019530606574955205170982833745852209410435440055153283897832072031639747891694790810177519867788679825408191630378373913363077434743716722931839768646622619971307189874433336178897873141910313437846870400748500445398381578663952728996388545422775749461979971209381072621088663380203726796979055492939453986077560236407803878777970923856269198876066196055147961056827965669669687832155945815236592496833893200796342809935561078590063331607137737871684465038900487993470436301220304415393998605020711146064227918233652860677945884200467901973899989350678642725501753726121804735066822793535881700330002725656793558461907255568805651442487550158297020851922191360765872434631760609321726375593473326353418546202185758239880792520688642200591227709391051807573564973588655781491783827900869539896390929451833715483341622686990086484885280035256265590509385193615004671934344941652922942399867401617826456066346639367967118148097381619507649861539846300960188623641417046520530978628527159180597247019172245898176134292928483825532172160704330455550157842297407528216788406318584975936628785840518387949286853293208664718040111664903739418465190706225115406743875005951498493880936618022547326946652924061071254303650631274205603296747383235551442335271843061073302351058993666226349483143755442595113963008501962068378052245694699045787262206260115177799083748358867917660909108505678695650557994159575266983634924394909386133073621236333400024756315475579682138317890368382563007821206475890227666978047801529802246650424523860499392145811800227037085140199791021919692805218829501441562559124265014125275918023373255889397306007378462842008398598912755922685537963973060964587818899320975992023730609091037976702560030714898650857481459154532762227854401015069583311209131798454864314232212866302223308397621504577718418191851948869453962062721499173366689532414718716116380629257804211803834876910349182663532891044043422773831459460077575740591822671365590231648782080957699793550103554755433305967603480439859773084394012952486039498359182972442318337562579137956635876564225367129617140211624429955208038740587983636007131077317991415218312157689279018574307951199298572320752387090360333893399647024126853037791708070585142528834265324666979720756802601752986424996669560355617871500057920497398893762435006367203991763746132330878296478774943594217105455569172254637337880598789280797206889869687794977079555914322924807346970225371280571932193349270093792981939046901085267166286773986077972442485007889296937385987468683765520879244593882227181528234183229258608812371225307526151919351336842977493417875068642946500438040197252102387158239152647566334093381515327785661637324332464152820436918011679020622326402869292943689794691926241919580989037710340744677981541984143299612078134109215992496448158490354104255044149746380069181984571176601644601618216687398836541729200782256177944173327962434864716599639698028702144210049396452358004032671568452220699830216372643762040614946248159723824605004407522366766114810129497281466242027551203296804326041776124667858939276326959657480143285652363324985691895209149233999082258149134198261970370206714181114284583695183563726511223976665185339112551430147918318821230047917700113238864509536468233278215496700218511165204144128426707789247786256625063484563378726003024590041544042581400425882105385799041797374818088572001740296533052361379274055148901396286392011784621249459936434842263795452391603847399517811069181551162845420860501369505786416711745809019836393086198139465054150062649475007449754940809326058215482969444959495059198587725857894959220951786400771409582012357515729043960556803132302392274268060306246313335122652437650259600682876098319299136773955719062969740124202490573604904505436493465012717727924665424423936909792742899880939588126300473506837690839396162673806148510569612491729460455065384273122672063251004142202106118795966710154474076346774612581964783262294486637609504849201547140222980498525461768047095563739781086406110198060854662117243533614011414040343920502385188190270171382185650537100988651896045571565239969019285009696548333953206234871101468566939310973644791818058333330556257879098568978556080395709783918327442161893678161295841946627660595695700461514695095581997916966157981394583330025335774371243370375927256187555667836209946737918654805757928574538890399072338829779602259228656240361909787964726037815891267005717251848517080915556723343107437264605114406052609414118781726639039648294462909794956755166754090502504574426369282465780637361681825212064866045356428411255915010562280937923198642066817786597485814493248923800296586393615305398952342902316167735896984795002495254293685911529459517792649736403958175536699080764723635223728079088005696218241171032975410405905128307730534373620536051151149409129733584548518082954900672377236409598768098550621641946553505979505818324027923223258302472135788480961534030629246716577021825691193986056223655179379935618323776423411504345089407829825341169178189631093447272417409491532191252472008403020498663668427687277728047926144925022220051214641614023447325295459749904908350558752945158158083101561860423524659543102873428374023212854534887594907060776538278531870367635651272775978666912474344531802159298583256559647480150177822882058867174480269437848403635814466386988588616960092430592862720816550401363894178552861088155637489947126818476767308244064690651074802354079540079223822227335121563971787220499525752115313384891149754904406106954333568711227492975502859131096807459798973968861132228005711235229013642193732242825603209594351047696934514389576163034695537721338932965764504484392790843647932173596463863131763140693228906449966810061775044692677026721424583128689772575011719362532513710225126743990587112466077695652953133486839027101799907491241924295004937369510848622487323511527182897454518243765020623841709357997303566257941292605676867997946895938270524905991019473954462124058224668646755368104784100574085274913485743121283079165190190351305759827039737734736693739308053103261372760192518753811347018053700339411583227172250700148069343762200100273251544844507120175193885875664159426022075944206044178977816783526324569751652670423895334250063225628965337489424413067319132474797986131567813304551566706567599289853392560173904169655092365319336152767267350502165994834779662820806449859519127128561592680578972908462225355185032825956708802155594971762159234691324545279721458061475651532306497817142902178276191074426871585797195163887713937986944782590451723268150179639661109130419417083854633210139635406940278906274191021570002494140074744360121721637625415330251826382740803438614019904127829615600728583660080005368091393930276357034396633852553290101529375260486156427179430302108385982685009895636159291604683658714048783602486006500303876520692105719829417547370258671375328299526816233487831227893706406092167900694111330221171183117433277630508056485170528889597617858636029218827634337184391614271062506893785897425424254777505660246608341633630374866756516646093802575500702589673714967987447125649476768586951863720582093718818701608022939746657960911682983626115485213075730327018148926907474200954851745627438465743919553774703973337232150824108809904074202326529045860382971457762564352054968937506450222213793161729397958990500928073414593047859849770971684692503470763919569521925750665895996402589339531595064475204986343600784620208644651659525275238884470198016962333956953901070726882289737313782845744611804715820172840736474662495705562960629172262699880714003952235694946576116145247655702897305884984653432046560893400830541099752760063256040305680395031999884981357118013315381680714509497076254714076382116509108720404240170129970722677923790995740790881101409205327643336694051538637099156505928934560725097116333508799601810853837310847054576324044214357148580012087630568865160289783281658167971277289433680061363480129016206349564527177273644785768507284156665162605769179918010698942648890332967292240912163622550710242095609641995018272432591312729763739037289435143132833704362896166226471325239635399425753136208461057916899927330552248306671472623000433845054875087517118115260566676846399967759592309666538970378469843490154225316818670468785912985121808574458960763426257153610791718956684627820413499154297717863209004380144522586042022730602914272932368810320607259278975486165291681351103810007483771192765338533089271973376155325869730627773721518993952140283117735490893942015036814426600085247635384668799969172112880937776019375881171758587408434342487888683389115534916858502207214374031183872216606777926582827937580868556629531829052906908074741462002824172984057356447780214255126994410413305300311496866603625343725241673211769552918142228111341454218883348856221574176698906387945429620446051889977190369352349654946262857018348856713084002485334742913798875013732335039778109625373110405388291729074466620096074610936694444902590144736647890877161761115486003126937290792686956726860624618029578970813641567002373451447924810744207022368338897322813396086765580164796142506736467474255680481949417140688099598367839768610367675684173891064002788308057498555905069599582908796725278686991776513400158094225599861533333490900017001204204152482627745411755705291695768346116577351918998238944941977521051847929326086505046216599316222666476172254963215299369346917386751382299947398699990310073155442899570739642296039807157389992153476635860818786365185055691693691834119731584128895701634996762933148086506467849284951837166857329734182610733429909708740216799142514909076454619152200146534174211368075897538132915670150854877419178743890524010482961623992250451860061489339728922250209412959521095782825698850337722603750373775598901746453505765326254103061682746153258512502229877139829192323596816567107198788263199970945515342663762119059220403839870187631228092765035761054688104271010665110336916000438782300120630092004776360075006743103154420405777584178702397947801111125078153202042588886283133083688883941298828553087887807713983120780695758423483853258616348951319239280061405994452143897536152460316922230313927353824671604748797448085724211777766068356529985226876359474346171687489547259094248854701411964216943191333343810402928873098092791605366707874281155712048577153755263852313312187978901234423888608945480393148703918307758290410450418930703605894416065878204180237442269626549880546744818373513980270069194259439506448955506963661894280715545409635445402331198314787157589413787081856431039501003874200612286713474726086182914144184117392894643998554029904811569344806068991847831893876071449357736051488329108128268779553250479881227778378527106161703227154669559023204741825232289951533045602067097783785607463053744539901205683479446913122947943357436198129621313791212943683401750444937664584772243022150239205006724419617821657113791926303594292661434449311588466720187737149141276361844176845257608897738174285063612822295411188610599786109750980120909247998443600084811060930412447092961632840469853005147489178983181520256772602989414765066663588831951522658961489359974081993034680405792693844977655795580231498870829173088790741708945256484072986115140552024186515261297941821278407355229207948545062984963712300543190097574895807084621033759891588038901560417937308581560271827977456916263904154077616101508314585622532829046706244678574072175572264840580965989707912877598914369382222607184226430176713906894535403877004189010936377780516484148024200447726207104179776167246670695235266404177821132444238901142980287349138266530828068503947025511328615645996695598261207795414768017424096572426372489204324735019544122391501876154595067877621918136488764260753677183092084855364417768394042624977326075797650822207513501564891644820455282581279258638570079866475861267799283853839217686932082183860977667275620461732458662894052404325165965626843613085600938942711441925334517487148159715210896076521869946461324988995497246474374325893487025622229458495016177127304192211781875728792544089515588946902234287869082261808780741766357638502856519871600144400708851160854795936519633586255362989511817566844713100331591957551819788521908385666569820867925648648149130773314080781723470766486588228881919830421602787076229429698660163450149517859262311170670425271015573280109801268796924952153358514549328748925941128445011738504198024180123059491956223552422970128579105917247421103974261503490365955630988520316946115351507907850647864417994333208141892993388998357552500703059114699290855675209312387711856647057019224455862789457519552676733040519819935382574807038526628262140602351637560374435631409488461423501389115381553929246703685033623255456223344487761489215872912728133429468934379270728634175079064133065243671099459292068268036852415864350706461165331304874939253483217536073156468067560148480384785109041040169346659434632039418277157923502133208874155792680412370576001670943192745040827712503761630366317527087776298797430235124106923298619011998540180280915602798231257903692821347180591997691127253667227242273063983845796618875001853698507649879513108703724580855810222658335739380519920077580970191657452711970032328926417450620264773611662346478020656070299645125382614722473574731756543692485848199438224427635298424093334577386547092169298507694688487609643718206156551284605332041653736569152864948343765766759502603508035906427727881283130699934250382597996760162153955841096150911320816315115520819656543898038710147352128037869755562101567232342879392302060010229208641948040464394311982885270262791731054746099403938655514279865640569165586608836152587142962885288463841696410018650977562710387949668041132612301447243543823436105169575087065909797816061439610851979244267240245388069142921859514173482520205304457252628565588012459405621265522522268398761485840039677464248449473506320303224111775765491746099692948855540167636063563804377479705784873213703326389423610703682381648793245167447436097095595468684741088124520966048959526302896374484915272486670880508413971598238586208506192628647353894410999991012255290324072636448430206650264932827964819456630818015370586986424875434847987591060304109749173245778617712882929740690186205922833526536330002788095442378199293353688464556875785009540045459521449299951591871598625378048723841807736930914028566489942292504386110707933646128574075113682116536963563065415650557879962931667404906227376899376306459435910741565776063733331128775233053748412524576126827392799275625480313234029078899355795416257345881265566798580261288762886232809549405297839398497788971913771610836303023898731571176400581034553737889520359694950343804298561094127751025934932549465735069277752650939122214240155063600175737592144217914299325656643336490916218961215972875988286435345094132939788887513682676552566501343656365583150844320006601766737998266470378592518248101005342391028511444873336594588412578035783648780672973495471305658675592413038488414340812823894441679092792247941408336227469853852040137520644174359792404703358809778242826197253643102963529975076284229829155262947988103025824413396909616583459102591277968822143919377685387281614809960195672524636533009830862701807632641271211017657166200136897666058379204723812808752104142804349743162370162909088695468382305681562207276949070770046264034792287247635860806843954064399952732421853114938613042571216919973548654964186165426370706541874801777460168151850054200307239123623386216327995299717823222364519148232659349554292337214510402046362891288120084616172376296148374946114115824599662273854384136498882519624994397660689257917473786455573776135603065744401365353271494867935835749487821277901357247585475108823618773651994103552889966658373566948941252397309894015744602735655268661707954141994210391599899088197504264684074882441292394165578526783056785740951081544426346674702248078110846557000287332741980309201226233186033610980640639519752730282417445721410715640513108572504721373669021222784597863470891706115350838086649994683947366143048805637295827331592149989428143036879039533864646686335895401343699729078698341825320116855111384204663916195400137989089773556233455474165377409576057933650822380231449849088914559506727489300903213411909376941196627210248719034448959270713453981152910106170572148352202391271036714912643363146226454818335334899801822929460471948376407981807038667737405932421326622827704247645548870496876967325763884890522264647421484754175966324986829711183696242717221220091378508090618170333367232987759073710296844870736463512963256260357347540502493477831595815241572993517770859377468330423969552614463606550072624787639645296634171135492885355248291940137905443144998787663792081264534485652661227208590591744326954006183021132275711860500921473752742423721760096632321328496954990770429346875283833564929777830781768107266085461451495292554184973312343011060844478547157026701284802505614617166514814708572142951729101040178026871800759016344905508312511759125909063017791572816173266777931201928311943146302600229101660014060920184340538992371140769224242962756653075899259487953757585554221141528059669290115041553650426139921894265626276348082287393645378321839717437150777520051934074044013946878481215720480104947984906559369188970076551376184109962716504735589379810824074824550294744231910570653084174158940101686632889091185941530359767098815495235921362464424155516126100235292403012399329922280099165633909370688531387038514658909792363903496475661036366006706018102509417528678501710705370398484361330758224576518342096482494766091065281905549657548323421572753096255826202094296854247383762351707657033358962129445865299649234853489478131222479036526745412908402647282252840981969446078088781370424818076441763406138844319969972344692802414556002433752204668167907551875884810616587205961724204983981689764723701051653919545118207529948024639329598762668627578686973917526494693248646930781804289978131287729749780930804416762321913570898165892338019812416943142081927894383836384776981156829727911836890775231603116571927173039837505441849262141563793482722750319423255090546953506860839805830566331077991382091037537050495342181794390477346773966248777373989079058713860038388905454686754010698164709430451288579306726133587103439166578339360855112153601425318732094155043420204452716494279742344969627565383955774827096895408301460599920480792543778784616719018715109759210667845404801634844378051328289141306138260376278827216755305281397082548576538150780821298050077701512691815914957634274244122047222859538015398701990136309703035002857340014549750446872905725733613507324927938792340825405721217785930940760621524052774580367369661487286269907372643537869578168644046187764323177340889203660321281994878515698646307013982869694751396797599480311809033188417553148409203813317479026124726494426506422914572867112719540545107624577483949038634522397836399494421733152504160363683058749763722363756835896708105851500959563381427194197753786543721868116543557225287349428917731084664935969664411295582915059832397658737919752230640819572948312180633339115835245616333582566501183379566909444399248308959142777022675346099564459191014035552171323341609269095849465717866672541400402465426032645884558441503407356584971634636456350093658588215967563627665764231277482531339863522324911083121259530929528266225163877866376115698783956980217242518915212680230279343706342136380792224123623623961402789286476338544270509259342948097397720376508059150562254123737085936272312936090917326566646164607437582888360493413113834849366275215361558309539128504742135059896979391876989448719278580327844390567974755507682619734194196003684895294156814409822352468057639424253409149816664302833255318640242921888313360721752503006495174165410598090559592612677938351869849247835363498499824710321062882614218092294895053051998620766691905522860225402438433329397062509152870866995864325352125182723279597671026011610495216502561110479671576922762991028089401912237037502210949666264697973741720480470241468745306420838184871648981619638538290278399227757750899714902353921745241588728037979124354296531003188095515257160166355123710365435322483786237693279338557925439103649108405832084881569753851022809333495066714296278427129233775493092164144043719243177754980413632214354088426255141563364974649851596536135913224052629024193419629777177683916453453752257350492697285732791780666168491746514705244673220248406793003053680712356760298391469684009736898854688634437524333979231212730591662961275051367139656137828582096751737428110735408477305904197384501282829034022982244419086068698892850802666394481804005012749084887278484995349330318357749082331922820557919717347791833701070811828158795264351123778194197477859452548304838925212926764479034174501177088195808898837937194407342353548235223951421580577150640423539434951273247173606934853352674248718761380906146484743859443761766369773222880389793942612172941479952018156728237935992005388159997815679206862256873150143969771109493360358053975149745077913444169154348006773398921781574732276188441387417409834571459433912115294313280488914021974665484591057852757162048648494370983027614069566817514883030032268853987701355536824013591999711405338522168299745992591089718856200515179195596851109442353748674441313897558863176626512262674841589853343791165021823008681647348199071640741160866224264279872880813880766017922007323668357795559221809947569551596704410118437192039048923280092888936935566052410750043612016943656257522864087739783531650088681787714021438576664482198820412023101994523466601160126591715549555270113436247710982775332880716574710300853830083973517514479409625548160243225479820149133258653467872207852262438060268102135393008957511161667659358591162454838383168955572155910080957385265248964953359819391700384469846857256424094804198301556674356234892947609300328538188570125537201563773915131894494802688646058784359958609464079381893285311886322074043347464980006703829660200052132813022417204457083453102492535518207582287438653495727530915446444783564086810066067486741670949000623122710348077908275023997451799370155952393857325914311437161281190239146446933789898713421357718595033946421046118835739501981496222484087697843041850781417446633309774713016848405236173126447363498614301835648045829140207988286136936726995102304676539993272764740865401425533137985365619065247583906280469479233031537765888913856846513900512385443327271600917907133828076791536078982540925483328675224432185007532468657524626119308910475849973241519783785848111695079907107640616341853928120967597237153402576966617564621991944477165085236311146366528833557617839255740390355325531552896656007516167276627395145927488708376924722715373035654409246423402545301961970574921716584243618199860046084392673282215529499346550784230273184705100700091911384194853614972196408195057322259894107225772466794345466747254762229134687261168979626156640216556902612228887469066029086115368580135103720904020281412161778015373541931370286424921397307155643830037741437472891786277318702822922152708501793412799280886201795948496320676138080130772683628904958013859282190452208495704494041645611721739392536413013552700997174892356777996007058721178937673392621894453715689996608018697388083242478045647906233818265049640434506131824694860130965584696164989817078225739320927582576960007771536902686050090282258152060855891080811632434867316324625514758285241040316972645279629806124858764970998095789950224169510785248663604350198905311318875895883550422074049761483878903233634197622070606736903503311508660561169754558648983593494958537865540418557163610641494551069193236470282726659132550249427501452127507988410072329956179949417543156261355196444367529795483856119892314519690235417897190048778667320411045373880169946283781568223600681706689300432431115732732691943983259976430615291260162104699274677888390194275224977780232521051050328161186808608001211340328289204148010081806411323702633789036952050114532764487952288928872686591996233159846621224471392730939103109092868082420882843928654293931828946418995265732198180666304972546072233935254384862521135816844089284333245678733622025405732649036858483747146246508735844735445610318242158693030281044099078499145766242039739211663963554745662343157944908184443957405877184743071413399797178328609557173073896171993494398594959060830251673915903613601541261306342404286687144579407331974734391106808701093351332194798544950855291122930391164632517812772037386914307907488452362903761836714132627452959074266247789384658251837497763923725675380917730324499551786869896696003581768875347078041414780437853769181501580834122192906275225656780271335362822351385156994936007621634371983034244762741554384352607373921843513224433129040091014113253571472748498033223004804654280998698157575804265105491481920713331949155408432510526883505700718547345380706472397074171250972634751156973232741453220694555717193625952319380435886273389157301009757030192734100344561650843347177340517584006492167091926596463386648587167733979210960653290427259302844769646009628687529617811586873954560075180785638506769518934507651628557225395398139296358911047646561658218875214875441365024203080727621578078510794861514645053145871206723908768190074340412070165277982867285180437856037222833223684255697735612092311334372464874536564404923196227726317850569776045521318070136168220735274757742493420591767409481619652331565308227367818217545431481135807889974856368047318285873813319507225917933130674320518347154397830450554309757199554409574201274239772406557942640275899015904918668430150290162846284707842122372131927173509784822663742002391758667178470562194050311515606881342073195820740863398125509633342412748431521995770059161859992440543488628862491692933441163596511709402545572288983059490908697431000816495011985270020915469027472758932310897054127372405545161855418850356278509991847233500698994283756644329533769174774218174034092239972012374131440705637719038135644528838230993892725887894646254930774996907655829331385963594727067030242220988328979667912802183333716674950504869031110696807618008278810008603041471731934117015923959197982415610181323173938584024484493354446675407894752214743984718009985338252638144996365378583400966176493114138100116914787215576633343339704939777431737898325481411089342251447268271531236341375977025128655339806014476590517645244368063214600271212240260562177743942014677545982981705123982210845534412375254514930762907806700291797538562979167437634270516169679335375365375949094799555958170529863344117353828516306692389950663376773749087780539620817705034812852351362782363601197449264047348890751668226263042676655153253751058619225717128474065065496443790027992095191095784587698420427746008834774352746434781000507201608475340481130898046777796261941330350582790078806720464232334173831050966359295988195441220743346432085742230247973314271771684647115760559057222405892844856823520111372325017707940608493741785338484612094568378331262586736761962229399157225302248249841977043337010946945139028311710522568628284611375893457942883210350392520803867983031881527108010089512695308090469269111640810322143170303762158440730540280631100564104678613554055845639200770917120308734727154229833026575647736458610400645949459675646775304669027713664098791453229178665801032576850948313579130572309154175393362054950718609415611557419627613676586327750826596480217796375129094687187886544387616576729984777894839256586823779624133461897056662927750616139378821943541306686191769587608235860651935898670291287400261938304361927827303971012187665377844666041307572365518444289691283686400181634623313199946214568777665831155490161045355778277048023313516091975058828993311169063699252965139024243032973348802534288163050671604816833007414713348809496915443872441848268392645645826791144938219790622180891500672483337337964130000867429606098108342250775873588957846920316706321788391998344925536648247317367804546946707374110522722948221281612656705549253421866637987743140254325608291395298192771017906960335183026175350386307303046519863441596387717281144243389619699503045051388780723494560533979375824813917452609870752571897603914015313610245487660979212446384698285591778245244663200220110073625480472302797131608686096209249277905989343018175634855112394775098370919859438335950301362948191073656499139510192654351203222208467117859836375171202717364361089355013630649921810566724041934007586835264229119876150025423649940158157716649410351726338977170331361751763949549474954226696489154314076559316566350600585143501262356139385744256373317413176811805515006640330877224697762816259096322853000205363098933651218073904493874468782765644118778442116331834964548516067316032753275307153941065217395935482944212253424546487186374318325578435457770724965590653700113129044309564603429876207548958883545241265751805425257983681553426098906748482569560270399236182457820787156109682193498644522311506241368790601178052111247229980354123687587228809916898272422660827973253844731336726225893466690839173348517459487529664719400775406579791498567179470024571420521110220789383453582877688934838378297458785473757062937711784903887466139709198776422868485103618490069308976055102347387261014791632810941572532868983041472107227919565117996075645825858487916786562971189106669369706475110623963738324520797123734300123015330360021170171692010155789163575512320809269569524347358254289295748654312228119736414888162861628380919323386940722804462460350977977408294523874464595478818749476809935338107012665448563891410702598350143074968197452601944004023539333011519237968495960540601301383086095181332203761964861854858671851090344621325980940863435711312290943643728559743017582518848073843011039163876873250746615888402113338951617576690904709872606642578092194965987831896636472844334662674457974625280024383713713445329018952311201336951963832982632883489407895941708487403364019619660856980545642521147594076065944224488670189483341901178097740117919433356017367762747300331290871364211385762686055609076664038547097428158823999245196775714786671741227739066062476222138052000296149091780222049767921314080264051495676966232398332435833722315329443044565227689028443095446815682838940095641750430806521295415866422533951696703777380813413422484433609389187778985642549811537046444389911129935257280133049079969143051185191760589421221694179071660361249350127423567146661002542990674163680743594949031627281032235676006016185059428841922753206921588329834624601440301704871127649877488968638775495228941049838243093785521177516461742361975654520716540979496999843313352310787082999573928660762811333316834774329969503648739540300443686811756521883036896473494775774711703144889412388165172585320819934712936017798102048479346927087931117340507089387267640032132778401099495387136071229966767232109601960048514365385648313678255734098061887612802070053270627893827703303767796600905735929054111286529121177100675357164532378734712214431830551480158547705521453873797946044819558657450103194063088345920101265901744142907181518963276380883854691885824204176337929706405649101244383987450388621616793259004194757214109136826696328890184734694821645632657098026154803502223511568678161961069201587362565627517145310669189366643947744981660752050320730004583771829720772968498238141837334245074967937203440680708002026693010483058164093970731127871204758487671311920020984785545393007970261064243651909321997458964191004043028572692208355599149888844274924286474696910711010295415996492404517994751342978761962953651831887960985950799150553732433427525115423553633156849097647521678774719918532271814523032790512347871040287189386014543264315969098066816510634464282847493570413165386246500631044332906598642794248653072711029154010844019021197172037345357167977579593853058516472073908846504779842418240852944854830649185602426501026151583953597462669202110126649412612113895233880928231830918764189660120562199213978649581932467693666208515924445479698472358077638104246903861366800486726920727560353744217814606200553969135866450517566668643768380950552210824408906583978338693086899511932566095042380057454489710945018605641417717690848105454834137856665819288019300313460216360498003693359613401739388899748886112823995428041693809828644054957886082489625184721805484918756417047196068125057972369161091303413377377428429435611331550834944402513848571825233564357032094401043306954781666874007297249566081632483562038530621913948489994962792300914083859026745101879280628621631903612061005922335811628095382719225648164346704079980626222038412220286944741481636600684238821771143972765336635195704736650463979699888284184797355643558089889777030170619845051210007281383506518275943842430775260293079414756114514939316447303671958988693803341135789439620984535879509412939126800851521973675885288374179581245651254118907870187231055735608760478654747111800631936869055987802158906946348259924187751602079884369451426660346271357247955373122819586092096324302303901703742261318943305045827590197810660353590171381765731038803900245268022461386975628280283842001982881339598726163078496665567047306682040394816285984219962684111617092211404776166655606556469183163833128397060049935435690660649745391683505019093891911311423979192753311826568180431989252085297345944483733997964197525573421931250328344701762619652989939071330963150708169653089554798272204403984698752788435033496152525037080669259971587189323820464256561245049985425812699475854081255469850388183685500813614358309204528270882564456166622385480809273063686998556348498071481941040403051298770860019110121331051274290387406220983808708479021669362961186674700470153379655964278667223269584989854387549735989355077585937190785329976568640383319353417433404087199219858442231113039800101461879397196808383956394282899147678962660169472340070080477597007810183882690386899751046499160604194435966810430262722581540392524083713796272236959370167928795217733554666208087577865652668672490027913660104864130410745123518677491926502457182105367543950898563907553470985554546692135512147433573108158617590416125627847933496297324395707441805671417259334553599342780155666736753380015135745936253844230475068747109931325935256490954524124733318962557993629082940084565780453851800547196764789295793783756641424360619516127323990939176495135829685171211010914718701503049386914110827470628328684844170882907639148954229088818308933660669772046614583334430539225444173286110618682228661544583704659080737381357996212260157506210172236001138459370382188894324723915644953429430797337321519696561537097234912480394537086669401193545500591501216464082820121658985851167247708305064061803380131270911726737338737860814475789311461554242935558925597927709897700065990295652461209193197021870157932993543353015185896278902309697206501019970927662158413483677381075855563797634944069210083054973593987748580563810259849379812488843924494588333465820059449998438703122362978267530797324947291797121680258755778947810764133871620708141094572918187721000974624751783773946857822061116854751175159150419745279255551759747992400882303378492020180019845163798055896085292959619202405890333344513997035457549153231261405312972105631655442717232649284403499983889535219853671482145757701782182646512218235507669409197043892087095573015703796406459391696035631639653652539334983599781766169717574252313510780907341261933018571321388482178070259864430661446811437181160073815096567115873591193039852194951551783991816857089178159815365178011117733467486589914311320151827942927570567484593098615115422038243980833431559082274036900463262807257295297013116350374296144432103314755805062276166716467913858524757869023411245627843118668288291745268660963490988096822076179169329531702900974819047977072199859711004832027399283767569771908386884938942734252191814614618449345313394671728772139790937651702805166802313768601794296663160475832981942021300271165953808681453062282430450316922748286243037840020199278814756696084414291368251061976799507978036736635629867033098470663397579862038317399804247239971368238975981907609173439746656620715196145532649190508660685503364797665416769205251794564660129779346704106360137308787404063129015825276654892956079300559182059118041811142217064673039922910905048523651613102526482056570453182728772112361573297883253656466519557297962776856122457774980714583221809635371650644179487766043692356202243578331023945754273987795982339514736420209825987407174463767172519093115596263113335531182247173779463653119670185232169188477306871343358556548882825886772696023551368680779436655049706699737413582679507581593521196064937542969741944060844812771643711860538967760391290243726469348689550051045395280279119507362036956675925653924364661766571517828027866231663823981469974710173651099554906182259310832619149235239572784154521657963866727070892350213533824495611563903409369618969290462142503634889306570147895077851344389345765759609304693181782116819009686945983735264474752321288664789453396797734637619951776660018526960481399574494731107426741247588901592739370032096891831647903463590992295784470001566206348906303109475021003619433416666758006795556010552202774065215763587007095213936136744107399245867795442285421287265320980800552701895224260956044157677308604916952975620000733178827839561326881639665459762826918514228168930745264890350043066210593668742226120401810327562579281915818751991003522101838606823761711105070839811907334600579999944374228844006940041628623593684876182589540206656769816716993179125301894450675041080686255738204913032826030976519792553374790441311520505357836752702174080078171989061457608834750910883039568907843033445320335759430660313478112850202846815980407180745025443388871641910701747266033613715534290384722052795002254319379659755918630613095938029827135780718194984573940118065132665037300799840534639340878021905629133640561954516048787303490191785007081402286061635495020525745783197338810554693306127446610515311148405258965635728619677283782368582714947406642371819736565559212500880365350013288451268815186714099444204759776950961856581917415641908879889176715521432273269968071221566454669534259273262806359095477046369433290925904276633509041727674099541026622680719968049050385250454280160650509085834414684434621921700152662853059519033065184258565674451624984005658772973827951431127045385106140719715488349871683362415293628631825772088687073736583662280058767078565934756440046812811529925368460011370131141465751750328689732129601040683034721322952897444604514645110713723428922070237941491897793780870120329003827354946676865884229777707256561875969959315284773423731340223254475935415818943699704279996138564983016930888151733365701616928392746822046160575134734861952412454505078420095479757264449920982205816107839301591564492152476751163532401426682819884134459486543203766789628298810764038439052382113335444244675432852453065561834342693827419815914083284574846159360179446541816504477032337684640883552060174003492943146912852681509010452085590659696556661145857986467245061437768560007611880218685188575847258657528237257099567208239518592045163201526288558068166077779323352995333146873708164091615785245454225055977139779980007089297578862414847046640196409494898145315834766217841738178996952833691590775568337877024939303053046771440873646069424149415637493197795170939938038982485619640801885272124646826755391840948727058932434018508571624999372573272778129125149009345935610832263073135897000786610340835693209606302203146878743936610305415149970974513721113791554189883255687906064658237564158421182694746633134783309117190198953757466884034477524685928578806438300591612197156159835170073506008767663441643916676647196985190870781627027960762273144587572269486076042457392602612820079579990493122479783776432008581869742912873389482577569909942476407069339950857077677625118774535626905577538164053677751542450413060406856137003435307049969515759680604342346195481002635784555560924923394349934387327091039949522716493261416515164725752592268457652452461941857661433375343621055962840562385221104618426416817268163047015271883225015933150587247425932562221936258677302397505966047347022404512155787937817141409286931503438980001653711915025033529570098738325464798910217804172946225429086624938371952988253014300957055140044847434120417399467881668782174725789800919407077337741335643745744879574370583310783176704705349461235878135315053380159548998806546240214096927828203747244112693572023555388578074497294601426630307423140738922995481213851911086122063796395078072869490865850241348057725655397154396581460142571851731600821703518212822360078753624846633511245908342851292609299632508873002541244313254886959861765390840075291682768248105471330598664479771993251517962773771489108437341930329198275932971270338244906896456268016910705938684812495816526384973254726484121189965272141228784592017408053086025774158179343133473268395040629679664667879098389543340543867509972762715647104697746059842851987626115351023443465766823492823781789995861806392745275631830742003130277589883417224008396850781259387635932025349054656332064688402753679353752572411865545907926877436787305510403229025420109337531850330499735757925400754431632654479153919830134047490295602234916854483060573144894901926626469415869740629343924382495835599338316662603227907441786953062997988523853020841862572754766996658520041274519599514710222533315545761158623302764569453687323421895862040083070668705983196600747699812030892246252953667224227472973632657681240013552557651998400914856474614238008206875104383136214785874732719070044249498908302529499562429212651043880351077247903570700511549891211818304832218730255016884683129441036347245403026321814883826553103841558259106333963193670333384322889311193288451421649287665645628962233044703226221485664066165251407487505881824372940009891338984250503366510264933679454559193280803326989819880686179044533422656149079180260437098721740355777223865969731401266585781332778624120977723211887755574156789013071990662031837655099996477038785852413314416521541401699127452057811166623414607624650315285695249018720539458293849126792525434216409632888468633399950044235363915357978462923312243602334074164232460419270804363600505039759966278677548106748557508953600289294860360439204058980665484221208001101953145889966028669105502822230037623620338122782195656550366095282284656619286981183768775609987046117150956472034241190821718599063587373437441340506069415520585312832001923776904193221722883755166480530360667643195890563162620270727270449109194521630884983324473294190738361665773802505968093084698110411310312911310461621674923384941034769358366844816258596831585833550995337462636491938800154538106408390950586745727318724690182527006308110401168353462509299994894637599473466073821777922216328437562090782147291483290518309495782069680963883990518742685830509493486282174372310982252138806513631389297599416356965805279879334415410056574712081547540206497361065821763007595933622353320558023096965388846895329020981425609812023502275566060001774351528673024077418636654788376090773625583701493182915996889809427217032926217063592207252427698124893940491557851545485127890523327806878692630014173104651075400832332043175061708370353516265638817124862658293738683319401179775459184070469941513143899724852124516996409993547400743902227399366442393695268115597173210704666201644108644885091414944719674679257051265143432552215604380308747785017144578267355689644282233639997046971244086665543274522738024762507337376323993659485301595016320871965685848903488682503165289154535464907715613712264111801533914828911512335924489061631058243525145668419071496468023519099130963795253926814658838265930088571495183454859829692986687370287288814764881195756303793180146237150416817519167177396099874551249220021403903627351147638227336508318109068947682514999907831674283876157598787466693013163292597407181602505388291845958532082791611451615129362659383290066611207365449212822435589286350459541779228367163021960800641854010843524399275263476676528099341683383994930080954541927290772862892036424123911032128489885850961165774675898138346980547862057486861016047131132256785636674780757390170647251231646369237302553167582049477753767432918320201038570605169828588150746543628369338331222691996613438051798774744443731588647267015357480302710990539816994773991610765027247844720244496563982165406008030393599346906796492802360886021685637654262312476590043987969493107264234579905322772223656941324971217651628954338497963998922483843591406931887248935785792316330886297512232785128606458703820488540670941271272415489892249953382011617944810227164854006235416189671637809230936512649981569535461959769918854402187699141147662902137945776058982017611092798945708122848693053303673033361189942496393114515853533838584092151338178199242732358576149392340706810564322345655083832345449460651754359672676168791283079840460130849353347070914920263310361289948154533768232096256314257586075783863706250777357929637109846394984104507763272822450613942817709274900140690023801784525197634750926651520581875588963479476166901886918369351566839230649468001600670572145363327544968740847684118793732237101013263108504977812814715193054979864268852402377640198216523322762042412468444605046388201881136191846938542384859352366967386744992166033948729043040112731415875622982301604181847448190796586997052134655319206799248425243492902472064792211569819255093101079346853369828544977128614667143227404913797856217596346389209030324873655203025046040102020708644172633198033947259580735006913593661470481420822477380888245942113538076089624185505014680139991099136530375645837160367627309785710598767297051771850170176671731649431367811497386831051788357941527373972117398065315213399018433773787373433847287665349929525668521498196636250821316380783729700343266592506421834872264226616361466172731646369273182317126767578613790007605786845683916206044423681827386726796514274286820442394718576297877892528186587678010917944184334352431440202390308207129399000171960650803392033980070758336811230085926249788525068682100355646883782866376638368075805475655401713238374903602245002854913640395114154147154974697728065036245980954203379153390833762686542934233640917461149740631853265248060888518482208483266477984184800382331530645326020481511608056150185577686009234206473831214238849741641611202748097698071749924454283741638926509470896047065187633210764688166225092605342636295590759031141245367755084527565439939923446222829261073389585262449258820881709758384020061670033213558498264920503230918510956765797116144520612942441015305933556883936842453406567610311088674033599127773659236483639737990300740469955231057206934489704016842942415707694749784819362110008964732473057467050669797171306165488276552318330738919132494560376310249749975284382568388558547611475102774227384994260743915433220506989808981783655872729375213121758614813856371005417046052832647776792549623006396419984890253045432835466965542069154372031910886828246568373729069835506984229699018322204100886515376184587103305916282110101963957684136498393404360682587661994371267406767571405634252633061002418449969961781672577943690229541725658408156740690605921192018944038705590500648730424885347705956848195274175736548353490976092229627297629822190695925811524557970865967124909101551345048383852916977998921705207046010016210296586009161160025779458007401424107415488105008864903089056067954563013148655162989719724351699915591321483689748533486904117414459379264431401145111187512267455536789748708374576839037949881666481681955838581842796518565418421056025109955470743601690126296303012892609490403990620860518132897683964915347311552033808048160479317888480718206266840441517988552768017083232819837612099539065648260360393404160880705859632831409528143389762555367930991059646556688699826879791537589949415497213298897946266129915393034743295344599968026390722399378659428075088682311842541771361895771788820029168747795418243884570089877556353970910922752089059086451766206747394569015098132487557544104690798392602789704318274333659688619974735580370581377939310951893247362470931790223382362349540741666558901984299959852353629951772112793456491221571969238705421899192537255637289412029245126270127290842834952469165293264160868857706583631051424421283286639841177514431435091355612578097643764431211136449589181831405768160091108683982941436921882253112189513859053561593481036937261404619901644714213368838205018599925693149424317856940601863073656603571826409280342564035763662023374642727076949491276102772515970505220689885969593903011551706556907577047396431177792240342788826701658427608044735404732716373727839039022443997176347595614240033002908746804568690041894647778649465447714181020392972700516624040831207360596646887657099334316456233555274745286933704788136476345560673225100558432792431639710041096222308327976033321353407277356119435113989753016583533378439848022205905851879660023123411614931984597176749763992136957734452418677059525343051066550815526421605197456905938757585190904389059792675775139286944043768455614762888333020559419088776383304016367008863657426300618114935660154231968736157574182360681667317349095490276168256152589778351238661337942673961596492388579740253546746558278863436417166703532670858941011310977556884168166242939937975957783104298318417939562475110068250360890196012068295544687818875325852652964901892895845596496646163034425309480174435503002066904286965922600284934109623116508259138779331177469235556251886373301284202099713212128980817494051609891310685656204918419655204639311641380548205841647604962078274239442988114371405064221653123201256894159266054513889291248977204046309852156727568253539637168294101606340283952685206293094688576701877712441130973517098314497324809563819175192689146325726238923713419591995910649233712104527256686625424594282689425052319073101968602847110644044812673480304517742899923625569840582570749020955108714140563067404737850775551806686997162125093988085575625122814397749601007598442633159032061293675819172618827236442705153363569170941952870387565398380318002587617651048304238786753052492934597821826035135595933720214280953537007897709938744196170080540737671840753395743719083985660902435505567718732673225480218725673318107261905705500896523344617685889953668652953166598617035414118432112012769839983331091559451730434599451771595954074479890133205063778369456339208742189359886086264939839980798837245531399250830275664610102807677075504140154250916824952114242704830299823250709534214671214693743492212023190345901618522981648292862192873324119604030802774411377506709001447899979001423968368951428375998375870259566106595618572668581922863976879485644998941741323462432240426000885878656077613757838341020422796713420492667973626441293833879531750562886261814193658175619446910508036742395586017004302145307835183974602990889702957579457863524026109829033884999523909103781697338179407201144682508812658833577368978557770057857539642663119564566555954213242957501498944686499370295794279127857381761745173032279698061128595263464778859813262463817129571596560732327123416884871517974551803884210466097110388080832923471388738331619627445226349300642388106941030010139864193932491150741676408592456210178368320955847122595808622843825580373762164132636180298304897564682487984888045601193540836373579099707647973214143340748635826926920492770084547539159586683773748761192890536539310042708424176254513193237209170093028489482635778467277754166759812743269736496420269101724775430274922684890406878908243763069769567141533976649205949085142032790826442249600436360349312604248928423711131094859481627509509991603752360372117587515674367605261601939610167748856504171908562799373186394909561760220877636836675129082959257856881027979732892955835065785324620805662866899315736177214904515108484057806460753012388370097519621634053169116102445859820300284958407963380955224565975716287068462291452061253127557228915980554005722105604669786216880656183020713153956103231496406344218009904856212991127521310773485654653350874056882875295813230913587404789070551545065236534858472427274552685133650602223397550224727220057357779661208050013313898570677214397465514201666421269664088980493704741793555702825370554041222899953430400370761829261569631464179877478444766692982870705556564445837218287280374613227558904972148380360064808521874013218722986173641414326779491645961620324911825186629519499222498500836990164716057562447532876877203578739191661786607933641868770844369973873338942837432711906864329024046300200380930902756918647244733182406385790555399945056262822175292088208277991439030783766203871520373653258428948109923887315709289713377885070887276254023640426761879498162895221437528574212876824394882932313443742677302423313918262957638453762180628986948127254638690641973428660287128043789804422471077768685577300819087133828286223800995982975034356078015270138255604508308826855639342297706876621741765803430875614520216559997343193722772101142836431558723535342521588676836560450639504914685022803624101535625169567789114356969793440930514353620289215002159161655292893328460772314007944536828586090053678562650081430314618522961642504794888131206964721722814594102110417595906738619584609601685185575409542746344028966579209313925896405441547293733292958943781230368493760271634274582848598722123067280259221054995676499222114737198368177731667950086757027374467937259551712712337367255211672983394321364108891655601805690840190861675594122643253910163079914128488856248816054714121669191984469181302477756857209986405529165658244776258600519670209549538050908326081394716389131447846215494977215787633278658251646876106855805625715071212264195203726080221549508167327958797427451248245556982138823566498112310036698562343183563155214959681660682735284393332710911739051397933991650960214016454481839117852463840280582603607114606380687707135919377883669141851406293001895982902279297724666662177164026084138271191348845259982692411518593777681429507287239011983044336030796099412121761834943189230565050584376877148984875934565831737205370019210711916899688466409448247775363492771605541186387339128711022852042640222940723531782525611758805777033625035468001445010371494000907547776477769032449222470307819510321057780517308020146251092516101294159032459233579362618418747800277938484163199699643445740792501988798388840694535919220821952087440379289368070792552467890917526862097849186837074351445417507339906059053674566896087308078606831727567976202890355675045537835400033846583504335021165872754314902963988702883896092415097849759565482796383867726505417779685825950806667726744067479365586763654991398883618457677651456121324580797305810735223776465124623020174293708672422407090351137459420921040889059388569994648212111265783289513474832824353313629436880428934431236676470901311210780353947925382182185244279420120993893206973027405710324167512670800488047823916400942292818471904401725847107942538379436055674353676126244752957322146603288933379069240300933620121349776339843245185420031460234401589366120554486212979104207892892057286695718212077335197053674946409646211723306105523367036138643478148712647212928198891837552285871368478718943219059690945617759713643162937559485881933887499161597073269194137865078613391031738862622164721522431512877352791649129279074889053967590162896998328395480755671069064439554565404204083029631250382375036183426628517500121933088752198076741497068390413220099375338855169134839940811772981302803339429970141155660393373622898509815631256767887949089486683551228827196213871090926552079415132417737760648553315427224745668547876065307208597803008327467785344687796249535074385309328188772700300113333548991139360515619665464113959926176185059365530562482529071689786669596429012176338316667061532285710031372068690429565005836813662634817609228280994255976424108953803686400484118892218435152001916635076556610513851240755969811676067441458603379863128018031785094938402312241229885072682742792398573604794394185445231515578952367919379878365818228735921481028463988436324876391801065800555560142794766324356814571326374662867832228197976739134388431770156826005543428007531237760815830934529435297369785196220585572876652160248602668214091702435185389143649943925857768031098728831047837606284571338665375600026059688896242929112026327375885623222310701469110942358576980932802718081459634331123548306864861866888236150221051888580749289411603288174097665757043246988417546383030827992662398392054521901095332214173629586209185377710201431017594555346774100764420074646890944711173352156612079041180976682064605771537884517441845059183360250473875661490183875364829912742154637874912603693145740742184671795326299228760775837468256178150924872512843830991689592396445084350850548213126906016949101876608979694571708641301681590696575158354272111396429342427107748500304721679578539164951023822127666958936248182518035634893794614819467288883696911482359046468358600277463111849032836098187243935575411180275705767065951603688600473146446701812815693666185791682098770317886972818255655133647669912386502859642975808408434554236097576893009286452739486938312728737593597137828402830311738396845581113406289542447145025883186040793351981105864416289819399378294539068902413146899824559582685413205350483599392030314684285421258217429468907170210048312361613986638012752918194005925967055955458214974727531929539837585122680641503889370089293374041184745024519980965196420888759666341441881090474319209378032613995872740459889824185179091481077791028505778884685112200507093111133285005318241169116362572916483387881103774572877318924526295755089916662643911427777805899773178895622173636899441047520253431897248282981439154603261898239972010209273642375742066314860817562432383848124088881159511073244637718402151335846518644105747985219078211701607135691080362232740156614870327323904063867284574310323952131409937767389274679699210885761471702146174841444842863213031992000504377887515598369853115443459791218247725160484964279124990879893856917834921003125140303186979551574689957220107218222407025270492501636681426232871022085909261601786651976312701361934410857192398658269149347186812581269959288730194060393503433285534569982054459469900510428456347283541749184647421263123753933646103097828510853989362426873632716772121434639125168208492133936013224992637653540034106701712111239574125630534573671494599230258154949016576370873284459138637477223987592779824497317225930233470302609473209997575082879990402040376055375024174783966879777310110305074465980076345493751645759916707205580932004104799900064567867373575293866605849803818822296549133789503037209858174037795034646173640481966497198626293815708462548570777675325577605117996057429367235614179131467878463117718260744511391968765607182122137730826024552574723132723883261902590234899728537321660213430337784953915591269205813706033267012045705522047359747781341868572472762128057744402303909211065830246716231793218673031517740470790944290777297220208693258144254021395582568166517415879452843309396367035843411882781900578085120028925676535317793390299362662979868278435576711942234951925662562508453898957699934556481488965262827419765220681564154302631626645376060465142374102027954310429422459030740009003468567039638958021455979864571571057224772669187194187771350262383541233181748213499995401508745060144395646633017948126284337735081974702092543787037185911772124623291528653624242844209923485710907888065231874324379716226379303233493053393653870711897097417806549619657001766318317598167973141399216983218903841689432409435984810546569203207356905386483355471013324871945989263799700275520049049273280767515390929275422948664820958700888795239744741092624501508627666281003012755504961308396448131825156398230243318315718201731628838412983239337435183690395609399761735846828470872815168219918937855343581000132914077968226761746926727015696172274429518698695532436558433062234898995868817325167981960385970619229052904682787416176102130728461693852064866726892278650548083310488771676586466419292290990507374122572374705781768409751968348511761110002724703003980065388408430538141768730440114901474203022410246573863065424278997769422436321460208128983865600947690741593936711804438926256477356571889349029336296900654029912120328712240337973539247807288546341468234013876511316230424756814117203671569225525761465422303085663877480357423562935782772112018310888672152810943682487838169889896932495708025066104865735135468092710080761738827428439895830467311291702043533947862292185950379955234540685287373713055202432383853384731134166459726507937032047386196741192130683864473997864719217528435678319582225062165406492162083718144115223138807007724694000036872997399567496135953011474670783881242209300317770448417085723813772299993632701077053232908475380676740654843706396685730548928309995204161068123710765696284562474204596569065055011714213564605653311996534225795114615818893436215756063431058217107815861212914074372160427797923731590197646663949837591504497716542725487802499689399617802251196290111613059495286621547288028363549540878470400163611798397669401698375695065167626852525353312931536420520473420136302370176628370310129305322715049615446718810384789457445406156237415675792686825938373563763486299621807395213602635604703269634075200224766924724734807516954248662829556389217147659795898861845173682346900994068135966608059369720962005577301823826963997799382681445209312840558008775616917441145071774108988944138842373020535002024840415781455864253923887472453373929329853356341046932716779701671584604643516250416518259128466929805430980947540432122516527326692106955482448370778334117986787089751366471483391555354586212473620942032017115038965790786989550269979085231037174446476890430869016323713176138038399477945845709992507095666550905437846523491518978719637685296516857467593162644389312928069298239897054457872717221542182171816246589367004999542294502825244053675187476086948582623213231251755858226298140658250214139377887000329816282578158111706676249915967775658938504433337673560066635389471797616442212752445238974978351261281722175228789430581625227640087566642840703984043544405815954737474166129974737969883642790502519503149491802647836757575972033696462783120382149924633605136371663666782662412356501495351507845057551967970625345504417133929539732534371311471370499864119732984287728465881961921577416930177114596625485544958892998160305093121533346239779483302966333294450578903306135369098874872385307295996006919902398022955102289409092319326094904077242677557242453102324546930225342789575315768716951597247487492070321763695050845190763200832866554360286666007267950947083447426380181757776515607961097026695027355698656420462412794577914940663754193376348954593552645489862301393097443029518631629976537180729225038229171902634909222861680246918460273321755462855512457332097567809093079520524695389581342727710868913816410074706433116115150418829886839018253477212289592597590695065443739876525243277789283432759340075942957485447742043870618933087522891833741671102709872833725468913136246415016198562656973846703409796653410929364223051804248331655741538942830407075597818781051461503517644098970995396669869082589202880668969344343808237962184623237985965773018229407293222562331594502400573012561167088950358089983369751022186881681668048440887951275268003990412703142820910974714708261852090355242099022838563563299909500371285840227261068856389030927930831071193365148369142572818971019029586181577712200560360145919255889879632656660451497422702346173795785390121035281541235723004129757112445918351564611283521468806277748869511087110390536506143303169830115182879595058697502106767248981773136119162786904642509986982356390148812820386718531868201123761122684375394035867690210683711177058529650316065997963105727671222091861804498159263723763291724584785123063080287569118583918014653764424599807440410257011316814864927798088121692786793657820878363886920132399220798534853579360571844098181539307756701062990521382997177935395628085478623769790034407620964466699928607628790826642476833101129305905631902098101103479304264925834357427443293487445807433759033948115527623887481536268717799160577243216370267995834769597661307377587638531636120111898549238609567802489902794589016578483395207778974324265800956966652368101571678743392822207716490666236329733309748729109626699829298520199921540104449594366575456125925245986866686326305828318830999627889515220686967602905971172151364042169495458104901560307026470955398338391802901758545665526363629423288133313009063495623306329103002433204521841437674789316907026906068503793381192640749607405741120713944422005942963277629850545540232041267732200699457333543667888136349349750183557700183456559596047855398175800738818806966547913049323549031785593462344771475379812676081806062325068825237180245735380044378114932943385943894745419939533638865377905410536249569849335878461663916194362849367877743104739361859022630712622846412086382297404825983887753906038329310931225366241364119779638499914419315052548489583229777153282922223154638202961712035657242592839132740747800491956083916300520369149932680022457118589737764383158538379899223915294217673666307985505841751020131347811094232733322161489569897272789440441221907760411738177574093760937377301105320635532057951705608443600328584876666120785584291445477577388532564080999991598286632974311216602776057308824958104579918685096811781783609622053422953969734625098754056039967422198234276260750943984067878599493480406079991944588961086230055207980823374851865128969952325655894025932439264243186771051152709000821265793084796082437021686180927856351835602855184377271393776706803945028381873989485566147925929049002731698682054850581005464775674243698976050794858015508709622248325243500037179552489341130270571806137095610886659447162577745592979728364639395979281066206103847228415485411872743470808167885125835949815226224815695446566464413162523595532444611790225215083478816559420271068276539670156411361662035766930160440400657891798556461473205438556428729039362481511390710594080848228088292795362806433282217703820735387017318427655015878538065205909744577991382037874442808060148282818064686526030091365214789855137790888451163417214031519500412743361848376369555796725282967266576325783662743291498822864219289847818629178590817983626892078352385063982522247675048411669084991195637668205261549818952610877629705657521048178396551136377802810410869237219312238845697572642537160539882814168716450021921142386797163727876068356378929373349882250098359665204271007153653255919056157427265089077736439865874164174771462953546246432576071449553891822003630000429913601485479712841590512047064001526723399585067416403065421569186101391332942250751822749116006168233454753879034356726406920272068726185521495052163051570049904299017552553622305827009629639951288530319905075050248187917835246347324532455619615370353170080074784011848185902777728437268394914560749489897718578187320286052461103034275595812938623125258591729036600960892666701266597216124600270671999002913136853374495008582866904217890545650659090735131950066074435122143582699780197928803792031892620655920405520919681267710618779368400348017544048817502750639465906753216113457008155310509284719959626152829496157734212262756318457078197021419185717038067393996518530634322821189010563060821039231538841839288069983936670461182974519886377920131893983220558283439920389168857437593253987579161117077440108218449697988917438793384926415487113627191873675769958304294021571169127501324366862515172319942849075952666418014073590586579069909588957179192724923431812304435950970404269453293818370329210089938500206079834723796411234456589197393148591804375947827379843763158057256678191903882551626892604578943988745918697096090759609250727349501620822210609256840511001851324286070438594642655704975580659861539235604389023273146790817974158943183837766599183024733516776181882007824198504856638595644645484742631869905975627301025712875215849786871367569116437612384002397604638706392822374609155997774644521071464560997794805457097778730548665584272244006042707208504363996007374540861486669822762538631086802254670500632440156283084352175955471086525078604822602300641208880964672778647578561740692758259209354855914653562084953069109974574576915934513234236002808268968722144137151617318693351741348887050172251881030672717918611125465476440284779707331961778296694143629494540806863407701665703932399545995526365933332162369810804367414545494813966920273171204133407562181326054189146809138908957490474971902854163276801995077682842284169947367208334744234050758964331056139403751217449173172112344246893125551772736111904084961685622308868995713837016611145497611173473852994619935424891370880505044158375335145746917461929215470078146733989737388647099126949281149379311424844651143316399132808743930761315407548462973953315619295879222621185374295721726133411346222725738997330267388502990046878546777325481894661003537569598689780465587548572062725419906339275847692350295742096104291553673908581495760578012028396519045426419959327776367256512776337711248548269763335120984010581557997442152954578823768518345611024465091825046278661114793423154657247937648256301385017667583946007231593025089128965081920244051806812041395395087674637423407634437713695230597718435573807711081928846582981309059177898582057544929782665532197848899607889875074392361154860555941298838520789014121878543513230112134797643911258336950370355254007873505122492973536934938887419130322802947063222032429859585727306741075536243592785210131472200919828352330217504793223282332892475368792304864319823239510653716882696324986325978454731092228103456688504803763419639446635521649957864833318910989931400035842027110426144505485115702301876076071873538380082694466959464615715452908866321703322890302628830747606416748443337554797933009665074019773127501430248482970489716618280085314275012158761835794422192722402740861068050241068677639040493206791636407768718485343828423179193334166439627344093358237918685431087662835886865994273663401611543572407779058787753148969325234677814941668588889147701663850567164023871847219148341135890275412346060492384231777340196882342937152944494852713894085235388956099534228200031215838067066790826298424407926086649139428859618830582766769184189698549658785021181869624869720650591220021688802220138345941403107624237187378006106280611060346729261554145705034221584824388220774660578388409869820913351336037400163241071308329986513980698866209407967481863613004919603094012189550905734557959590714246863334187544029142527252326507679619513366025116232466185211163322848202881171780430173007899673007165271060932032447659422662587522149826584593190173751709703955877615782071458332073946623748763042489527750129089125427993523860237796204786807569540166415048085705741365032597793996363397366256742824481706375961087727708428759937220769902493245333831761140913585281397448957998774296339401684066378431128365518394901744955978801576938000469752665101012335982848352049373066514590696634160981185130448351328932737881936272683312630827580169611675345284396480017199260252669688510352204228276845470067424044116451730541823199994767727147990395156723683196603699174815086487627861503875982419055574536428258771058185909750768573561512069584005033030046441215903475602097356700104588705600948557355287784320013981235032631071030996242097069604579122709332357700245066263422208108391680754063141882383858514610053891824975047248704131748821374037467131233981082271481925100706932467868465755327956963858786434693538940558961829388197491637239200286766839716876654466083873893826033776061023336806864824907016748311774839345126576771752278999882410976560084131975933866931573951258711986082969808565728204888228399012474737321362078986263090226080730348716439542665391008566317454668178497617064715693807191092575489575380325712777997088548129428384605566584330342595371631827897021319999072244257000808271118482279708596582458187582718533035866880008545339661916124800675362911229726867087157132154260916616941284194610945053850701932953505875256665149700806940935903363267883027064396024871920484368625457169510946852100553384632085283093045335559107888788551987692998029155456299819971682150706867078915637652333338931209420470027697292991155601676751846894301157435027335884858120434100297673890471606910963035752281354424481327551137089178750236831218978025958313358888340108812950793394913492462258473612560187262066902332101584335585580436962589929414318572723668577781909307943199624044075846919903327008269626619618109087214168678851403176250009203951527334379800970864944613310014786600581522553928125179523700968753955788811193108052121894098690181601745694531984092297179282160688799033017044299426632294725733850614493202198579333584886949536879918724082887733299715757341146439814464205552938803984061965042905717105835694510374543577321922377341557922574238723002732792005419516519534771726700239824188481102600081475306046209171126713063533423595176809246673808721151581433524088421022764868413967700314400162456596338564261591380628596567330693040667806859387795721862303040725568864858904288507792817870111194096537225769164250214382560134967743905745466901342225967192855544647585739387696351733019448341557768539853629914161067832997589291318448524319735186467521142918183201578302905400538701707125072334767001898022753635038619143516517159936293343097348000618531804727254453755393550917849927932209787129261065041550498693954287046145766155756036934259371971384892278949562072644196415954848426541586348288228226069787415308244435743667848265572351406032946642408990500154773909478117821134387531936605559869315754514303515112769395903020159399776003446892735145629552373142702513086641441269567289182200543810993010219998182369854745117150278052832959139248998680598172626074261227329518446895734408112911081124300240649870265923821820838582899806798245707496560154449693150195842971314428213909560021956845614726949188144577668846300790560126902079795365785041735148904184067179820514940628515824202385685556243559085661412635766444853973100848670205589807253927249916038677840958022449467552133891153542454894305880702218160283460318519850014120777035384657147458555431497971745965070491358399857739056928032848744173722122850652213611969725174856338325692250849986579436697474104619900100869543334351540707496364324493470545430982999953989465042764654471736038788631016832882447662898354511082920227651439649162984664040103510600442759388368391734331964822053834464382975803666293516063909779526825099951069200355742140445559570212559785533959219421274179288267103408841102936460709104230645693665702924977999790508467316623148874531138584984019146380802015418144785502397638471184924297393035524181059382606256811594470075901178702602356007971970178751896859064656855299961624089463522853222601380603233498867847862962051598568358286029753804010775040917579826965390100350413656905751333577499117454141001042216453344490779595572158171154654407460031118742205609514517653661268317514953143647642616107410087412423146058416894243462342499540291311462896169506239092406204347490691384216388566579141409859870953002171180978366707297804861269564649176210396965715126578433802338276701847981129571798791621488134479094003766722665966077125190966314711822325553382417370757526537697007362248387574377426475716921580314389086127686076190961535549333502763163574758064959705733541714593244201772773379668923502110680466288786609491088774434503455690356127942551813495267878052946235764754015278966830626362584214089331853208965642670997663763437800122802301532184981985932026303850186555544906613675897754148809482704781269238542120178193290449179604810823793190541043965037756719640692627996163526821620890956285276816353331083073591938082846662597045731448492725032772097253292569004764414799597449357647378491250932614494782070062582628599818322386578202397027758747261020818983525342293940110554086020801350715434662407167708632375586707318980593041934810710693051555439347429841829613243753655653435394766750977039840782805005326152167632977707318001806651832941828150311480750902825175846082037672624644104016126455938598766521989126406864701535751978374472732209516049323452152249837938001071132865479547966532610892428723573740921971120303942348994036144086679516095235805602261465386043953735733684432782953505987467854329581411523971028786217274507251082987013548543837123805543301082107687843303155402262992574068519202200086801031600783324914222673694296824299808210206595093814661416565743226311190103507995146169492524977227116828624300268035931115996160116546636460548442881223507973012581593808082590032561970302247001906574985404433778958114375173242754586764845797899221215802896904707117041645245574448047032425669932860255924298975560961877518987266712261193999162068199810406292510399018065604331480683128645842182401874737992434338826771464313656893119039468870273400661220805610493158379087991840516046995815442255025906378675419049646519184994060008775816233116523338409532185451830274633158927757119227069569099324303696883133326853272295769729392801360490063324151386839448019646785588901759286958486581756312332462493123854560100402393764455916139749471896139306648475334947690326689003723228762949491858306872122664421640864846433914337278828583614217483465664202384713566449130510564518610888301152781923857173352495613071886219077500238225936569687456526452755725111244478061221647598289806322783997118849990266894560930769194716651812136989327618485983613176190748902042997193833791007447462257971338624324223515382237671830379106277522402444328200524214639243373884379250848209737960490027535343362134623790061165793000593929261220960683511167566343628369062746760821553718481661634012508371382575490226058445028742262501510161348194962413986478406251283612047336555379600253960850681185427590957675248761603691661641352085903262267056287865704007576894957355879364690488314650591053565784421669965621779048270698755097282806377275344233440885790765735580374209593477000048521655154336765704487795933977856489584191058098015662248343750896988456574789282189113935123522344686970854298522353205663402610558758412662008089604312123537670321716389320704637819128892461218340621791426993482824155582809082460583031190861096977294630834535172729343483098124997259724235830165540922967257464417908140363577389868585116773254681399681267599621188103719553642968775736097027038518155253328216519703475021922027713962558250573006995550517525030348727669876561919905360833222216725137925193504633731416980778686131170196581020476460759009528395772846814497175934357786783982520987317838622485738129602201895109195128995914800237170125425347452949658514236963351139140052941669560846250419692917323934433658690640812226283810890682960139724935608798292137491619655813485245581206848869686191595201320396840001230837791439052297961993551464724692435371463770936674792425666399684966799928936223613816937013679986067452890060024375054187841920326057315739495194319980356818106224590533140932707947924410573919649741012075845982224121147091893688351639174385634655221968975630328944639402512254260127137398074757622022414364256429434038054992897973234935766228989759181847856125946334489865814860428404450718620154598621313148595611636083133647622514661367233422283976077641761592609760170984852882896822314521812317283927988557974347268082800522260112073900263928045334378734023749069832750999191402984980372798199415417119861772137406161839200524586580025508919520274260096719307640993461739531388146918734980454335540571146442760356769012149610423063007176323971246080833456846428880023111973132622281452407635247393670065202329667630994867802811778410072019502419735996286271347870469213626133077547208797561133958262151382665140290869454788503279399608732632787924143599196455530167777269811448618869926395514883775099371118474184302068498089036718708080427154301356156707456746963836541309265607420117919937782851413348636301753059096590782074157115866345977861922810777444302776208802486475896224481628250186624753952087141695735883378188445872895906716233816092123338908152492198869085939275868116271613781924838974995224256950056032789555328020916978897047693516477967638848468059433198601996339224521596480110870048605158641355550308995630766434240615158656734617726759468663079390438029990768388057243184405929063170452031118932329131492926066196820587726795855944282125587603902476235152461658211112739691082095220772419360841299355861597208657590837187618895280535486453469223119563071545461262231071128295563706296439294930615097432242910184081519568147671704431712250334734151494331892125715710710606327818998412224228482753058215088628983312677379393863221958357088794960441323000020767616675653846460040588675217086302813323860872494774838873488155247333554742793063884489510723737226819907384931112627036513755023456889436508026949693240158908488501269827803392759014749774386394360289216876463021819738535103362717577477496377809707823965991264216447923995763301594214262070050269077501105432011665753992298052773469027257384081374396216057299236904453413626905665194554929717121108774991670174230585920593511949233840608865202549172885069056401808595166918879255892251093099531738817154663278284047200759548140333395771194077805296201697390854588750606221849006554471857028164873763010777527572892126818211540094380568649308912536420698050823719018122256966789375559865022503035325422302196552706579585358705112523810928469676537904959561377597559459655849636624490830761614149824522004009650438516919525407874966330281658727209773502753958992254212408078122256810644771015070610692465005067590187397568432156822394948699762461280067687463676573787286839126945259995970830927177618756711923878753593648141363245339581321398754140144740953874469577983194704537881834228194096232701431941515897756672515632906219642827419775880058347112535370232641676141199643434149075064686158387502565313322188647865252042955895878606418377999808303872452398832259950594961659305946297466513789846733319280629805111673483084156889376164328319503026095597899210875271467546397778864537444835423052233467076640739444744566099442888565055922632960315537286034816945428931987353971008686518624959428555225465453014681122634473556997672347074059532032719744130894407663913142514239558879862125102907785019750010433713630843601228112095986559034972234227223487394527608444370345484438860891490905677572702798028920512647832817799061695513336892510006445219651755085129563564379928986547591028909480987352124980412627098747224541876506967444388784798185514999580723856951729435519074283612310904701507303096075115397437122697061569600726993035638350266035510833152497512454511127493549660708613495513542695346290844651118583354757895744163985758066921116207059111248664077702496050006629768527540166075331858645077926652093835978187063044716919100452610364569116839040509758850686021765203690632244189045511854542518475531812153714848636767850282252547633868424107304390691030950199518334132687090085985602793856453847158729805909251139654809538138681074977067031492011976289438846770888826129809290855258353157898500391904897692720143287489089526638355682084957551396584682829810363074016737580052355510364791195505764067357146029730447360753860485288107058091091606451522037220541276439141182708488194858273864882213071677438610035417568480996995027444090858479601107403217813797440046082694686115851926679669570243587824537040707524688227908968654840718206564995481543336047235264845749370161923583316020267631852282181610219560153924756850717580118134743053075098415322933073309977127758601070326022318459040472282776660353836779762428449364321907365926044115695973365894113756561445279781150173596067682513749044903869886794754244421563387987010092937211782622828757319840711555681565972356599680411778202806860543445154880914247328320578351459640418787619739870351373668717545288777552805242225829965437715677499853816770577555070730049409367653336369829208039402050889597754593230942723082867655484742460033527566987064238954350886125768066047548244927021202589526094128899307884363304582240046689716470993280405894229144264380943335647732871173075280049845648600952006123696373241711355382943688859973788330914121964562085062699451484777772393528365215426030631106413006851777906890667444364236923552654811186747559385414086986012244887947757925253317563925174256524909947221615706444627666509847105998118711438163502529948605981165700582363781598225374479277090357766476833747037712917990139376498411364622213926838307916731235235463404688002840845490748986629713074861077193425423208381234580672732370441728678953399968820059894455639782050283137162165331142128826573421912351096454032671853752833166405361416629607053869222777029113587298199780639314924234706442763770746070447547636257710590430674606191888866394041076441047853287673418372470166488255639023136726737894076292971129455311979819607768876510699008267527304794193562023084045510025227289446862780094530002970079011095438613894546126114280976233483200170709055750537755851766793726313292023336874257811326556382653896586795665076584563651343830160843285820949500577654226997090012700600946893775235253088757952792685955711577336624120050920646848778715565293296565121668893825140141714306727144674833690655833112587930368075834849224311754934306350406155799365755305585861528812797952298652476318085811277398088907378976001424369522591648321150681221895711911847438586089801974707472359193045986998377218177090551402134696759662550641513036069046800019131122795695250068854097845889618365562631279464638642543175850162237986916955609217757588659492700201951639156726044891780904649551187700982343181336942952515144970269930812731320946920807313960908234717296308261607565133373211721871626523466799221885112183979098512033834365928704561814388505946823150071101110264189602831479860602287178220970848802286500675042923661697956446260540635355301427408590025100132786739544204959357791233387882168631198272458892006475096285276359626910765808926937415818223100407759872042265680112070256084801733815961983638500613421553919468984960810534220068862196675507031999102743181260569952627826294526662124022858485826978157167928247165348058817819937091567555978688362899586531233340433093551541301022378530583945218182954771658706355757633388064784619530874032764417679056804099796579961912337209988685988384293502532889001151356038451679665746370051834374134991481389475309473899116032788683322603874170430832012223924475890971662598889912366173497196880965921100840681071590999304295361113799056076537164000033898458751436613887053810645598619671075241541352340511730157951339729949516229694555725985080340146752832828971729840432024638061056203834246168981135247094037612722091021922915973369409176173081607690338230483103652210750677709478821518595079607156668207104721091436647163494344887346771561316870955486507737635803817366256418729756572221373262900967748562885285001659298121715473677747166885735493044237564037165329893795162055365811178994542934496588695280781101059719865070507806639097903736836246052665421004624667815693265406445916506042011115777049396367049232332860875969764691107219714609135674984727670192773181363814331527114897915015252728277706350037983606187482434287772405812911117671674183549396806826707584785803081315004707810323780936153357173511219909969649008964612227914267266699994474084863202686669593761429142232811950704075471755746873353642422219377401139425894950052071198320709411461474393103197186556523020013676961450659402089036682540672652933864441312968252025050062000860188106488876972529010375198391946403909570817779001297315663030381915450054289368979920339532102306957566473357079285062943613241266917753548590699314035484164496454292529269620084108828043874117467092272547278583695055165203593304191115148783957189599968775846582562051692329259378479616036056416441830717867218726176645867986125026008910935697267488412334652161600538222276785373271196840509978719803922910356277288358841408927078331011572721215459407153776139789628478031202302068091607789229326470912406697209397915838937044465198547256257687923619127121065822081224603364683549917442147770600488113695539456754074208693103329637054080305951502129035378132625650448060742524377692286631516599295589869511317189670731441459292255986957512346702072979353949561870299296712663281415607701814906064932002516557356703954678474859685384456364498747485045341653992086121831055352556274177235926787941810420601080305467105648035128203257279096716703997591985471324353771724939353563793884434166542370776256040518249625093239131693180772649112690200932666999275013256009233996493193430397743696570882886134927639752289918709514884202280285563997120181350880081088879436266925986505205134729170704774305792559996151445407465075972174080620064684924692105418635137326452668853055758072133098343919843737342461849610936584065961228903248250398633551421458202855836450870990327870874762877280243491665086521927529475223960962286908404684311388213338721918255913698960876869794448293033798961621273261612207612627544964536755902393426115095771149064829121596417800766364169328273369490701283916116286952618252260676426383618200895542038741796912864914227299190421602605918625038333217834936024602153975343067575705632548675594975438534760562089099015083112557348193513136842063230173154909598685899666295153315706049022708319922141539462739654764388882784260440368464634505723897649796728350762227339057347471826891952888622735726472014294992621478916944091927445357287278968342071971530398282967957535793612028545845693912859051459390933796760702204996240646776169895795344152406422355550501364275491583471575501635283574625346737964831338218466235990346871370982510938924389896414702605062627635853255891000073425198877847555616559179907792062209687449688422314403072748743678664471513262911054644115740993935060698677420836319102113346342837276104591974561772603231757080171455241985199801705677791867178936839643323837216459538601945225649692094239027971711369988046230066683890691986032178852315588501990159565298738390193623735052585894371271895075634698576585272140532703538409975063828315150641223418402039435218916798125331351882105589001771877052545848275611809640032584014220381380952492023094596122920617527426178644690171791930124158144782525326429562160573799483420372018988252547755789064826426316404069628918470286770908887429606707097803605544496881094357265042316561792952752827869168935229321019690084988617215648176821142329155105750370307842312952395742879175133847229736698453771877218712979040235724927921751411608214750679278937903948383375722566328955312724042223171140289917043374720132986893777558401560229188091305072412869884276819933037512789836340273432797834595695244718260676546097599394053151049175211974714320651748802011889436427246721469685914446982817811234573620035886839723866234601721314768540570554157972886490982095323492620623985655452617969009840236452663537198783653970828322080264858227485830308259566668115347144871236375582507507998931484586969277607733298838676701198720776699552942968403528223941026136477986324641491244228643743944434883328884981421280831966632157915388616853121333408439293518138653658177543480979987608897330631522042463133418961947880209437919345459189210399884959841341095112909972933109538367274479639467486364908717278028755099764436606542695829745124245489216673889256260049713205478827357254522620148504340010157587855889766753738353948632932109230220735020550152286831436893133936203448075391697660598839902549942966820755558329581679092042253855391610917836831514217375055792254316735960285685111455123792899614487951472773356407244772236708352572026446630889018289016469653450803526569465871835309335275610853864201960132616864851684429117709851825043376064804490021989225484862220297848656451360317342615624447921235309307832652988236180039260210570164685750051935473704268273215696984287907349254753758445881543954895500592923290885786253341637945700798424670362134231543844736677058746802980665233489000601106509672644203062996746147677329250636206816075117592269442063300869027112884807666884848654672699375192446872342781941459925040089106747938555262046409076910920195933829863587562214722604225469252007267992267959014724152438458244208231204322489197170119594253387951370394443386697639819796093396228816766955765290015503109253817920836862367340123542867154988663379412805537981884134949656918572334043606530576027945334334264856382536101521998697954403126260412425284067970613108825514667999055164724609544143989639627368785442480338973648511794719390615233536209486382495302928383145606596187259458688308751084036013328951002374620941027201094665034687055127551606682791067091876236631445090636559199395281952307236940031054793830424283226297539905245584151075004120585572987489385209660712741622087635489623289343072564014219566791701379052512397587338442888100529241391341780765839395244886322029534810914626810245465354803752779412559458755936085335473279026887743717947866851117923148236994522422886023417644963020089078713285684871708473498952334712051361643339978830601658847181032235596180247668573316735482641735115261082303450745363117572966456729467132005198694176802277490338525848723975729639967089944972608208468987964078278104156888402480817275841875441995985766696567906887556518812637888667744334495750065399189382579587014815735723458952072612898740881274466065318364173434772852809531141088859683660572862410776892343935588348489381854833634442771991049479729537903607011465233346457505469343360968183673450454334311107457952289490905472336430785893367512968592526154467141672683864501641247308767831668345410787181940360390220666578829257583259762988068997493584201450110475026347044781065202598960880626444503048415237101143444119362065103562570991759305777629008050046540461739035232461278233986089870267788024130510734864951292156564088207374873791246022322332776136911103421449109849865865593797512269709101634516880224016466602044701466799575343728477935993138864633951726221873411608950432750824339619927390726036893839201141054177510067238525134679217776588940258127219894104346841692946096681298077176224467464204622300616020223764804302739128332528723083860101119778120894024165994230512819402040265613586713458834018517183429911386417663359745122125027017166549870594732744493727583236797010264855807920007312069366554951181051966796302849314175083467476260438279552153497019423527937527813651408061633930367052706460924589254777944837954194906149241778033680817227238890763141204922385394286208762327983630160878337487988918326007053643207684452855466018851839099158626545695134127258589139189618896743741607369395751698255943897303844039675427366445717349637833111758225787968045855478392634773519251199054948206882829665263496660419768192499917423317786689010506782417142874905945600096371814083770866481554437056346714576600597098054044038984803488675551485365038641005116956941546146879189648354180339194900459502103120302688703606396933025772254264290434079811529056206769607039371587704829027973180929110758940202372211900795392678729454286061405921116374045292478462962944087490629476014605970968653425670892271832599414362352813145073515635393046203520284212736399667226929731938555266109179611127804265294325688561278348552971190594672581821244829960601303985731051649598868321830052110676602242439669829604909791097543807209608140143589819628319524960180968833488383705635855319498664439188973629073254805733738606309294145535421707129964924662051801616271317717779749194314467599810475482769802214103486723380428151221032045187309843306102660557640874477798905751114633739890860840512899534902547606091802789412734488261966338045237841588818986897347965937041548105118756553286680867203249830675247133308758572325199623067041775763882669277285443913887432874785387850204951808945583611277949663140048571496831263282098435569052969250150198976344016455351715957664069382694965086337168368387862675556616990674290828180231279346845815263436054639203869400003140018556974825268758839072381738416737874777982031461491996447752522049167592963198076146443099717785821302700063292858008360845307057768222320072333459713152847605349062683682692970667423929076621164200791079511651743740849068870583752268179805202048818466751088895949359209342112166474079601163349191626679075943594990225968065529399191439478798196361909582975142127761004239332390970444319559197890022337788721575593840495509128275348236803776897145538997429838735174916950988559457491134370479191543601213379411451021243862010598494904729980472939140487989283371900778805833570473522964552379438212004379449712667052093268804692842842518319906644399055851567117762000065967924454788763279611875967405147877338540129169299768930622620767181778317314368853847716005285451856982991711982898019815246365520402612839694078457235841655181013493817933419020258901021535510198817548444684409989427059837310094792797780048676714288257463084390495278301968414100259202322376057336875273671171918752024143666138140517968871712428934877713234809511903238972155136166748487910285625368372043720384618086850536491627268127202311598395765231573171954227236343036622786454233915001817547953883544734990714030704030341162574772597711984111947638644451274968960426182021203530739729036656528188640182312752535851193859299503624008261007285730460756750440360783015993712776460553735349001356568732966121366095081764723150961366223542870951655114617275348969525642855714165346332669040079498117250872134287214239341177169592455292067016581544900323268113922918369094745728615769705060793441533785625003780220260120342898510302749500080801871236529655033794509863088800135866262980984553986685139791954418593169428042670594638222841263727323037261273950833425669916307457204891515358181771164452685099513244949733379819172579250263818410582538655916361293025731609335624161183485416918982983562655466310295340024678802287178719731525594190251827741127727563944364217307608839482689932499532805772096508703269411756468916328185072382967091932380812302873241579489777064726933201150583489067228409288329950223341524068178761990052830153985818718105883187342210364601432642090905961455260035451683735785407593221568624041757223264344793916354587072418711781522109417876294982001559275339874176836453932075519450341724624397630619328914686666454191029950886766589523186691414204955498734667361057183716894147189070508693802265126571810455811189622635491479219318300916118210797440534078494418366440079967707041587044350999522288769312123997677415602722486617607327146817549055292948472311445051411574340433949390110792182703724612016255123769023056581984104991031251681454519594034663319941174461995249694083848768628426122189317804277855049493873382167441881582116983217017229458289844434770378177091181354438416813689651262843190402916786759716807586720606558431528592975097409398394615364374064681700991032034832858282868968307402776298536865650874481080660558797681304005817856673565852720201190758101033026101373409268209514466755403428995576574368428241295664049846416801671921038527064218728873421181199773426494444346293467296787290840753761127074214496315283351412707459975921758367483284860297897154739857209223641820782888319519999692629412793184876109892016895835753575231301878777374942899766293372220618139906042568295238099180184259420324543523162163003139259881337765071971838534285688874338890136663857013223468564046203804775368366418372781631378728528431610595731162244937533969377044176041378477572291204182909372286364014430280787806273810852127378480949155993336607266582723271436787202579544375904743140335669259852303073829118845442599272061121100037359782028017059078955765895380170610139925004198459216099212867686456166436740658384177439317530532473845358110334698731481537770116907326717160844541650803960705115821182935209809339424141801897510370989974734112636282463199404710206396780992681657280767408307256977449008292863806507074566202014056920888956047388280833516910296242808682471581797736930184168568808193054983739382304953264240785213233360316569935434140896455088366165580982845413611952430527320109330314470582528770133545749349765625765644977358002908910836654992614797691207977159582567667010112969426461635343643079432015128405567160562109282965399957280234470617441631012306751481415029399008272118836655389404864185252145830177267308609982386601641526868639018591618394686744186670942125998733693846307255487091608772555045069687990236062017978802088871425526265592629098076960715675737556539274401361569585889291979221064907751665357007104362529523776121722013560399373867602167203055321531087195563253515979147726998943498714601078591481993484940937164779123961884549899489924590512208592098480973077857762634445653696633680121726214492393488204211763636746419537933804324536018468998147527032263999076969406159224890913688987456251380578731866592996409885638561883029864150592176799545087904614346155134027133220686864693793521886778279626169063596883634543313737810221782954924959363564726745611641174058391105394214325423255032757695931368550711477551751029575694074093633146579207268885115831624977956950142380153346956560131945638477248266476451732076152195798688613498992476321153073382873476700727237573809814478179797113358672874532306857696879543329295459505666936789028232221945643521226064781007570490063825313553701267675671055874772280919732975861361977084952518388572963225647375451732117298005418040199393371314201145470028897140293114686302544997613177975973564216322683431451702846951252640223896233329083051686040314429762074421303597181926179953124722765195584816825368403111427643672128302029663365970667642531182635177973531979172171802924069730620888896170835210563758582987313622327043085540081838101420936940820623077489154823314980873187348940817647791006232922541172042000742025109766697821530743421212422417571180199517161110588417150236862746207790174815478660382344982691832409112120270782283613206043176670144862540787794053503091033584584726079177337299776744540067413897619270128637212198202157644394983154467455485025089535944219154296301018854646340339961621786011793543771324442092731918487853649375178734341031455895587458914328938027981752439479121353116537886988830861011234603870588522557482727470467210958740524774387408791456828366753539748076887751095042572783756080941105172140868006611026298223866968455055338494992422042827194951167523542708817343960331673753687647660136519683642556350487588184415085947076392848930390099481257700241301144424029611556101824824867359874913254221100163661812069520439207187298881169633466320079608703139647266147897869225325810062114384317540792480660281056299516205556194035315365546501484931273331801380328006942436211866902160898950961326116509372632254207388144303790483310599235180949964515060017536503356732629137556491330590235507919131059403805184958429690890802994313214259698907375657972159081964653368285363154117087596851187265060716612947866050069022800169566446371602960391445734102865473314472141345415039868467965637465077328724094641454819195781958875674929760482272091973106311499759602330447294020593438677073749271292413768589412840457548975845568587484719025530759557441887451534213080067137379404804706640776247128887774254785132697208594488014753894160858347921140475658219242370088205030389980478149857388153259284669507190855562159322220013109859669538226356733769103097083867488140369311654383221972552848692182491364862882182773007755477341492232942476159471357959051974357885510807253800660454492562986479737545117713404928553340509011592513508197573005487679053329896457085691660207032756943370318751004401643802008419586822021186831776073704548125448636300072569598393471105229775663058238431634438353538300801906873591941670350354060198137253040028265799668282554009230291250235230129352603733405995109996992536166179283308390809686864647874082844060734674288614693681562380841745867339915546236728417899083476634981996752072984447542984305939315864437400758666178160496690451108232604104479983847543264555188415933194972655455398943632861277289744850999460942150646222996548186850344092388818446118895615884188234118738585236375925057432791692499875566600811470586074759330964683083242323770957180748168992983935256532950972948031744512190026421792349016408356339125196895252867823053679275265890392994532809178387644973626053421434969856293182632477020753003200683037164332716245668864255196819011425677956311606297109554379636937256261014875932354638420678099971485676620934034704844907815589899852437948357257087583214489083349073089449498280103199884719261400212067025454597133470682849211228225567809491705668721877382948107944429740650501319898789519834106579047678364995798579586987472136944420762711738418621123960526327130414571800054119622149129354047116635566744953269691905717083511546465436725104503125425890063625634518636334768733667113916895905698891218129751474828560760410905258239749446751502372502477867843881096730108978618227879424462255976086595945451017561647495727316090618356676176792155142894246791710105552842962978276762774445892366753270602586929511056065327231451768100859889542276872196300821182878887746322193391222877645765637753719016275660406948473120554653327662318149383507951682263062666107084289142728215078647472212789348807219655316213338035683744015871155172730315743405143098644877245877330943489712077797689666055613709749346126155846335591162298919100790895601414863282024383277174595280625081020957437072214692758492734860187593370543417349417051847287041820051497446507208770949991130632693717106707149384328746244502145387790496393767429863110681199552427762949586403097605167664514199659906052374310470616229256526399394154033566256882164891686615103128283685232031885701505140492050656016416223036546258579889332138632993173745188224463382796832887561681576134182176391635587265971341097462609948996382542965004235237512662605993578452645617661937265852749601230481375470462052473756994101688921063328565628799072595619747999852834480951046329663596659291597162313751943015899941132549770702954938111843975525051938769895849043368890629273371388409405453385983830543573152096697566920181082259305891708686231459858062476462147854172064758374765684879469852646143973382307820710332795964990645307507366046127212944180309146677604389747903138832850675021600703380359873050444604268740149505402143564519139346742758325795448557060642392956314202297221333698755248579509943233984182011694890857496359124187995411989228618675141193420661231598426728645642592093610530996441431299891940938263753010362413284496567087665202393676202165345928757727479752002026539736196656493667683482366563867500574578703254889913313655630791447723067384783885922350524305545540477918753724300722347832566940387837164238385245395653031996394121304348973223648334822009261887857387668927250719260818640349500172426397269177859707384461027229128133138133393841317026785133999730140278875253191251939475641505036971830701386510450149891234008394348505865538519700062479844939483431513980863129492617749302013357570047662732121688939693479664007648699924690423369029794233697643324578084139395248724348495359036412639607753746749689263676162371597876937560599056510459949973629496166794539924004497121394746593676956212862293099336995581610724637019019599509503587039976079890878290823152326432730177180706996335139419739272647619439919028501250170595803930881558941702813174693696394598610664896174533778690434604131768097270436368106364911387607402935147381532414233086221341594182802336384885865753261447276749574954761548361082147591211953371777786386764120754445237374830081119446742252156906730142477996861263898143132818836010871912463271288190854091077733640712269719657348796394292644795691387283469116071944316411976404310805858827655096203363543514344790602868949246012917511644247531247059579786910904800527603252364700845345957045466504144549873215557697355664796745313385276702453486941920684665569537654544154695971438605699948913794185566768855852272563210942222593280856554673076244110090778114908278691409340977658008186385847415972570165678665505695269604669161542695112071890260898723615491490327403342018462533268042925056304001458263654217694592893868151441199203094719658802824075989153205875013166464403800609100669267601410619711128225670216965519788501110371244284052817135585834183425881431672842675172144158742450980215702178645605647800091775860237290851966898651784360435747639486195699799546664400191747871696340352140448729293229197563916136497196292157103440394625589326166003965386314905629502917937741197648669299093328606861745504394891077848884795744874525625796716129764983865226773784367213301352683633257131838986599453889565652340749526616634705285155599947239911415203460612092543533223688486919017224005078515246943806849837309691438475966735455746402582969859584073188713359224005451660685873340655604004922206918971135483684934866633734088805639853894986449857315725595085796697570129667489003890305588183874302879619528095611824401065888737432597350763507292108419276150588849277178476321865996006993157937040028713937314742008394701061172059430132595096210061275990576442946252213039361390302533245134325525877452088426793710873546780379333640577139492991528140643280535635752315536060222042857973372660980997895881967853591873892504483570319997040940595784822641895522863791793918575801909235007165091393860330293650782188108537007364255129136296996927947792246641178555760716186773740772458702745607301423558524401610762271183755659857822524837707094381825780208205107039943537301501926664082195900980245582443803557778636950697374976689330232211585214231626552006026342495979903541743894649368903967718545335706301386294302802142439751121487346732284449744770263732664221288623383478622363991273194220021134179882171951351568706156409506357678118062879653432348666185680264233003177557570753261889631346886768134025896042714719613336373591043471164392672315741405430326168985366929867949871307134074978343545956100338357109687759859714935151531422827997151550652039802458343252046563071242374833928032122850140689235786017268885890762647050147882177076078148086048488694911439691874467891668595579324320844710908849949961885368236041536143511997146993349554200936181416085171223251338670856079196280060874938486922293907791201070119008549865889402488444160850466631268867335647204582023217070709757525715652039121673590731862275806093240354348698888176019862852789021707146525389846737510468403238887952694002390606633555517650173273522746410582546747226744274855539250459967963199260301620407230879583606686406008211347671289680811671052208830314523768665780755545694083599565287410222477190071219748783445827642997077411533231928965838277949721037572716096738613048476756272320694132454979280699177442459208095562928700195143921908861810672244899903663762499894092981564816627865762362282801505702928924155163270386921824957151456640304351781912648378332167072362566041126578139784956470133507387351551867948409568656706849379791051479438455347514703939286569914883609084375467135500660861019256404294965570519161534359022731182893237900475650398558687642230521684313182152411554070188573158605581764063938895899990228406832767695954170266114250898998793907493996709743788270974851701824205997443979901850007289217707882826445442309053385950727179150187819236137782326956310071804954637779656663747813989118424476971824150289107989185430647119373393466710866028394627664829480273066613027708986041313029431069840068634864268193846367913827616987008101006459571140152121711997647903139790069316387825447783797364932456082310555143100220492942347335514158999894623742058531964197699835007573362013118725972085724950848697960252750752336778747179254166377651685645866666256746898748297607962296504941288614576002847392536459237143742674731694851420121936533527333363272647494250451861826085897179126194045278381638345373034425536783429189272057511479069363468388209410942624907841261159460798140937557593714648465279882421563732135404133148674331415658885922686632598437805396952061846247666250228622121521099372062556536517174380824887051046370603104619774299969008299618679704096342164759481653798681121539540411267201903232558312456264119828702494480685482636563781327626357348093589489996201365191773996510864770538081600719300600866277691433957757874002959237783068981046678879307442567955690808079297683252776233815963086693545698567418579060945743366239303195264089137084954593493321700246317032342194831907960998446346967628725504981898970652468365146032479891860183021956320556151063000428811136703511074534917650691988471569979788462487662251733748678055829826588854951904753418422380348114705241597616343511614147618308080936057036293994490869628524140442899241490530566931674205772113746326962676841240220108224031239049808066849065572237046957533988723918954931190935521145388759663170799772166885890175051502915186890517198256403272685264176619258428075484029277747861393628603216496681363066828561950081325861810586795845800342183376595360555558784723572449596160305607881763964350833787032456305342156908106735339739270974431061567973717668926723190446555839734775436761372014972033918494990866839174442528796863282633032432216188778765789298794263198259405986862707802308189557796756760908773022022761574309691402881255929153694993553261394372419816126679195997910410414786814526994237449430707211904691568455204741318574300030770662788703076293629541692130978788949023710295255925649773455031665204240156898887309656296829803744383720453143995321482060817077206600898025676162223739610392180480770204319007808844989204023703609668648010793059559038572388591409874308775269009574686238705868763994545842146232046507262018418448589567381997841090292339971674396269264044351029234497614665831369764587306866720641238547385426006937166431887470368916215629996908268282266411087482060146967231892381319612006442821366450076119921931909693356507230140939148841915966664120054325366878049854674634271693501471569687762186001938023188089829862767857457974342871087532703778492126191466653140550457893168604371814709462206030228940730087725657030682550476788115193489663860624170607817339911686968983576956789840507303313872452521422890499833096371356439995739252785389429474214689543275935789138412785567391242873386559184163347001320001853410313911393457584143968168472071519182784115401879407313012693023818462631335333701627686763874170146559205456374851924347775767453735322223601184020547084113945338400451979864289330440284229389881937947699922550139247934233947218309808581160923041971793602010358198859278596785489760900779872034894705534626109260777832791823861288442980925691771518609755128106555470596709427438952509855226846011181038352727448279874212312708337297995393780733790601005772609526895009772112034918883122767604514026442459946983988823052973241719351131803957885699153692168503695928726244088164419880678577541067289033939693974193668532475126339453475841208234642856280646664872516132286063034587189221100237577785647439716309347429590115294939430745879049867913757795127964303251172541430826547221616097757406188654957431196324311833645271509119908814528794913307083014863161413682069779132952377335954384711814753705194890480244974036395817995748371806991129853100419072375941509038377186771878364168661640316235752230065757894520373639280116677761228176999725396170357456709343658543634973775177928625630195412510689516170052447653449977248104300898487585675609328633009162766882686932190715047878702703807463454980043736652565515631067177750685658826050397315022488450951714364156319086802689927255175571321159915095628289400098472780600378649423424017963347307267369347199519919109650337235389978688196226674088375527470309547587712208200932921251179559182732558289136197756800604416131428499529211289134665120729647361253581886810511758786758093604986680618423338174616546027115521070111605763445684207732231832347526100567154195247680483435525168136997368148610877635143615657062137466597002829456139173416997197585906394828140530891440567683835728079517411730420693879258261704447833278467968354046997986531794745128813847856167804909458906453305411658881727768525090707969774199805762540434079054443684512843111261672763021782083501870065748746285625780045167285503282822232042756576198694822635637850563089858608293067144599273841921793738216496844843256155486129135940001627413866161691458889967116846548649904017710770471881033280199203695166483770434671947328944489799964619829225445415168841068458040764446664316815475545835112605401186657082158920652963141996684733028160232710171638797733071283340253820887244065705371044367784449784515011362727358516468179726363046176814426762292370528264868668662744774059429861169994222966397317173825150511381022477380174227706070022752681216454066191551058414585864873412843542363534394483970627499524570430682043752713775978813976333596305632434586448316058058870442249467978489781232955408102796925578226166485631366082446566146704939718738837432028805308287438205979105135703702638098537207822049793565751642824923963433243179982630386421495566349916777623666731811309071079726742972042500938554440596520935691807911330465223912457985130093589647694933217476371932380450090028762430137939931012050243414986119215020215681241020341856487765599852354236301761968088717318939163271061296388200145499124160557429644900653318458288485599852087818193479240396584883637797021668686194385535344295084900665463610809630831888375225446761715878520562599977573187157843899607118855428882963283805614666653563085995016534925210872208221816993869660041270275236988137017934045884070367561625424531600375429212307926113457563209523743920128230516450193563642411967378499547298625452090276708057780028950038124601338388478824767026087819409376368137678856543011184583644247412347000131209183012123010065152115878014538077503377046513142848503144510327896607376362058878194930202204238490000973137034274245110811069923551181199211812453147561033236187897780097228671110761419921907322937625755184995802048049809139216500745355112821972728459401026602525181311218686034533087407681920150108649886171717160195334771601983827216417806740902636324669636356391831827351108107942415769459630501254367513702095339150271952060146542578035114117476246160244688775255472694973444250362824433904404224070074369339074276993578678883630031625142528016744478350333136803852852436550975254800103676830677085237798979011681347945342189097158658458172880947493045372875045716761460763851206878680927983244308358436307562253141103549577299499003692679714953347206048546917381752068724776806104306531041568659542528421532975498918871534096747356886859876866018229136490419363609538578303084461752168559600229934471518366501117380001514422424201632967101378544446432849051949416217623025083214763701911736950050977627970482798899838246566138960387218972919695283123529222711716603503730456302273211690875563875847365522262468775620115637393086025772375393789531873574154083883185430735802057926644996655597706777312861076307694175898531839958933055577996840588851538519679812406575075315258881269035506595548500254416302766049430638098713414145249436787907202662934304461996170733116037775014986809717205859109844385671310762382519509203422296633582739493237890715184083093211125296080282884972250897541390571688915003292366079401348295853332153807989408338712943298291264986928352250931593098126393426315792530470162108958389045395563984559839707293552597297163914397366495907793593372125684319303593014365729576811553839372450623866878446954659996449576066089009881724068936793579983776196073417045137073365706684044785674931726911417180198263122774714941074137662855803893993625418114136125992714573198475087230385547583368144181189621986618529181313283009526717427707012052870541266825714757910727638380253025663759371252951884392294281445207857547647945465853673840137079008733980317506670140503124165256067709205099648295735975891353946069429751561549335607980625934672558927895469609736906250202381376411750728215352847173496904192383395523164411909614580360287140290948377412615565181816819090820567736147599986635812056213011494219208461956875461513673817606177502103170237824737276555621546376839161180526371170273281193168742750644797054027109514114811741487176549177001587011387363306897953375264705129848666117350447591063159522892638565957526214864437818884793353695163085704120343678802546837298094848259927988546084027274304161808719043846473360144904680632052638176079191405542863259742435094900372547200138489411260282879868383145377489041921222703215005390705289545248251902683843890739043847733838452604639677883741276070002072108476349487815939669051329852050996389258086492151431618283092814090544206726736236852035801109506606458463623025503270391875643512178020553583289449069957201005083140038376619323359334842482030413601462926121585022171584443322378597014578382244913894130605877182513561117893146847615515157369154277762353421167143052766945914621387196415984963658668448956972479382201667371139987672541145772304345616339799432173828950043743459683053728807093207921560015931103017180551367776915905816872719747370132245228220637410238983390723097636205135729653422538473340031960200051012415891786287370842413541846284941286947091239953562650987892804067101200613140369710395327096173322295108601919390521535662429977288511850128049985844563239843746495537700095173982768571474779642023872228530810704800032311212341294255171230066419527983435590122982633730906023346113116560705362589783708261482575187044080031848781602387472109905237441305580505815153187478994445397058833871168044078069645592724388169732918931087278744804709712426393534438706541218783371888616533875391237921361069792367419025755499737866394671564465685849175017549159239253117576377436246130125841106140500680878475555833411954395965579372585433594285557943976688708583250954043610592475056743135861067000056412834146112112226920943876337378417238728429726172414519146121647374031589361388270527328682305987889351292539369280832288839220647527566112036013862206465980051090018008110869295012353964319281883439194902449221896818949518128772625462083174687857810500288029091298415234770376940818622700916083878529815840088358257395733120956198138573801797356198401243299385317157029170603363433125503685921217852099713220482863377562252270550428060321767591725997338904142707959012098985659446332519104784269460439286016367967707859321861634400329495970358002262278395359910362751486253139051232032462139821125588577149834183648036864744606078484023103144286349189126593168529619254289284913863459151530132040170609396000079024934277490773292833987357193585594710114678877775075128199628873994526781181092177711101405598536072433292883036544702328354150967651566870468320115750191473158088402207090930928371077684535859711655300063822167941866467347407602864479075569030371914960608402289711027657120062660005865041384022863188183098109788284944120302651841544619169201415051648711720115351380445509833103693702854177685008565461924394053711383149143503643960206186711959668021390180963922830870238984615627585317669663664459290507455589427378680406371377300707794672966752945519341201384999818606447899290622931102974102409453670079764319574651849647304009153008937351789409948658506964504199456706474768421727283223918159558999179642905485652704240558457878552344834883270716652980909686384918918524188684208338404235874996536251290037228082170773212909797532684800303798654946198915191537181666364175010905380611935244720295363357853020334067636038223220062046417253817707511099196427093346512264053385777978829131105865037984220300033730692831901939094532798140190292670303805269854696496696558251688704047202418485322432403343591466101363258401965072957438503983942409266734052800623159473363377217172118597208119496287035244485134976125298018958703038604029377544183883463276665192337128961840655274031588474131903949449824478976211450018484586060642189392959884119074919387115534126714881978358418985959925617114957384951319017358244452655779078947069212520989668352434909325432171218216993593048658507652977400508338648755350578205658441911796886564026492113696110951231674007698191758157063191447880606956993520363517032575530070078607897488224172893406264630018615641007760497425962899175433824415364230916324222394235865036293168925018861729823623752325575388519303162076872544276834388472808985498117197156419942789062756306101412548777936595436042994662533462975539476666373368446293862343062095920949765787821254476727969825648949246883499917052744253183437066822835789259478198395695985678083915726193691281710535009678479846579110921452846046711547571038832310917499312170679438168332356195508825838748418497838779130454819417575259181378011784568875884932446369980925427582365948561617465919653232192704546897251000715077181938799231144352127069407807974875717575489653058101532950711172504246851166584434365589653831140391438214567780157032032827617925067284139609250677971313003891611673089208404267139345242703013373428944670321305492873715652931735273112570624084041172192204510641712543204284872081844344088686788302220772127744402229561297829167731765583953538395042839600561191710875590484565470222317632429940052754856501840488865696763076257803759008535197293983802102972348754100243980758000310751475432836294482459354069666426549346936177090732703709305873545034831806981435081816813117735056403695678997309867354066274160273740649905996125623529713994945293417908132659328242350061719942297807152872628882251904497029287757131901695673791383079798387523325823547431729305148218294104201022268564149935821040075375836051626550775325337226166234016957978487278234242914390106298071511217386482916560018838106970152129949687402539361024324153186592191583249700301392410927005375331165961188894710924188908481657465091999353750181356709837789254833736282155961588395286733865760016335630320680282251426692964776820408865147337207902511036507400833553395872353284992509402575993186252289953537360156877771941400982598635618327233874891129810252049517610055996467505912576089795645665750392765246358993135885184550654142109563099432120584549800995502801427533819808278573574733225896780731566093406654353446486075538828432618153919121318296740753022643847986939252951425047549662304258084068387059339347180564913957189342646269388821600593684226971292479852358344091306298229473852734285576060013112610174912740253897194196384996602141217660560892908211015869970977535772923146141349883085602087760393041756399284651814996902476302820384868605478476364996498233624666255822284834393964632047949853360323266169936581759753075290556418794467793603489290631520725610940052441579249660901436259006463259709965668485886611347279649312781891101904178004265148216061847493767474647982977177131202317413123518843078855173626366272622634874692185653801848717498670757569240498591383350368491844054777976673587768709766399876852908696560053280512645446189903825075045001512010262870750174384610767813021152525905094260129461839240327279515879560312613773191012783522289317620818005170121293605964279160216420830849874218561759078595518951507958309137298312359437117971821082631021253320652246308211478748359705570862945910519880388814736017656717791863398292064675684975057289349879871102230477056436627575030718570986252679260086447395150362842826024806603164967237674425481801588877476310221784286973700827795822128593437326377062146361365425330339995576906291982785706203781599504874854535846338734515659803979579309212023024178383291620580111472328829013557871890713844608293108218025133870562248989710608289074839781914947343796921869116408970969543190680738682855927134714749036738671077530649949686551612057920229630227455819393239730871530873698474895354779430856905127693961286957895716173795754446751942647341647898674852449603261058544221219730181886510664823639213052980049145712791278173727114611239120031764651533099219410535364950072411831336198424397778449926770512286538352830560678530431130149642282036889267032899993272223659217135415683153135199445050638794715055725150928045820586827138131193715910863512542184328948023474283155278853502630966203599833280306166408175020919087154155754598309289389305936734007268385220748139471077117764235155507542114731722058129558002454554652080256439441547939843201836983689221084778616288182668354146001079358137124235142614925365809798723372366411081100110566844314278990379502851642258305644679189913263901601171741281541264026807783723208059470400571987052993344826345641533350779962346779522546732328622608257927412404709488396209472838290294188276111458065317000160304945781448725886347458667183014122507978234359153938154355948257257943452617171843257636779438768461177503686209258456383006665749314755959147186657032431244288342151237444460944589346070875700238134210857192451403388502616862967000402157847238687395953908927053479298393571865790059239799268411295702567373230333211459813536616731123926855789305592999762169544358303894401825863719697335610472440282337526470046702365482437960991194242670930650792908738299056261796335097219553687482361173028255830055690208696422823503544737296739126036825336976316103025407913513676459304374057222502156808953005111482639685055816331251266058627466636308188699329968088940253517931483251228560548571286574263723185164421374884967284090210697025395622432747560445174593671865158339507755582000263390938968868660365872869483381827217552740211539265372096680821373315378266324476185122860559647461831923024811139697116117510668643817050847117780882222115571289155591922775044815677885939889505503268110976862251891503767603371515725898294272879191609765670441577922322903968972647298586475805882014133465608465005993254210693300792377747183177592929542427301065079212498077708581396056987622757670946958929366926369041597576405806053413854294286400855225910930071023930570820095021317456763556490467290387213090966715498996938956750059414260715066268326563740163762545449833746166002828325370564798953705524402896076315010890599979970777106560865286092076815381962812903451682703949050904051525083392371525875274214195061473369590596847398795077438460585754360589942454731494837152322080659917430103565719075471661243819929302484347016128584614761617377475184463318107600063529435165702188146434170773438915163097987811909331379843264566010775663715599672635158195913032375595289289642290872242612006895664796200377636951671294325647267654445695161650609093531101745613157720265633657027650340685829795093758354847660120941390269372941145398871991915082634534878125773159608361871071172682632468630564343594193039125072083659617332840649632867701418769371415271726384209170801547651381623634866469111644322789434920812428062846000873754343934028788652847974498824179274170138606950198774933940162989870184258457629213497749019177867696777276164572793441708630304138257548138059329579856750206414817550296538683403988633022942656993303935923427019816382181487028634486412988522049302314158065444420902563409474176582442830866027095410397657697434121138414082417146109361014344526164382268927396473004728678772761420592522851395852111117547049558205405184899318915188818037219289291841612173888156525052145682867970068375172323253879949766790234003227236957313292451861732945625495470496040121077454977526056531677931246875250142281424747555978710375187170843546752153973500263527007417787894769778131529324080855308941740768497329471255205295569266168114862256890840726845665885993658286881344022049942987357985954885823041025312830914638816984488296071192039457869045409073613216366684368609264227307004191615360318940408987671185938758321751248724145162823797497112265277872434515388023573959165057143036062421716367490465718667790528942636683232427938537797600447442890661734763854923641648226188350090235082259291671593588207661372348839851904985081816334717686534920100575861275345844656251065180691203484733556368098359592527111009172971371317300153710009762426141907046673443588189198625890377388323424749547925750992711227492210470515613847466147593676409041328695787727461976370565271901418773913117876971447474894792731654486854185835534790948303979042153893366455339215343266783461174712383976883993785432119270351942907809973537466752247791115792051487261706066533563014320730700145125284709028851586379381669778474736467738207466130651963955009181290868880646222675962599938023920262544388837086986862164010418138033303337192131717987745734317412777105287718817668386324305065083312846555930488334112142512739928287083480558883662832268139138464885909309120693221881166818232407350326937490804996772174097439799986154327361379929920882243124498503596141769323055639985070411777269517342006704361262440886414237544374026309043754440237139674369758507494290996216795883517642107013210114011204722170958995446306864431962929490104793028935636259391028144036881535028569217148966941360452009199170548303678822145114768311205091818860564653780900320141318350113186436383283619964276997803845247219259967452269582809677637240971434721518321170219524839835978279585706859273429393626552163186237814003146671969456830916827563205711918255536613830830647081515532331856463237372412810332967228089170383156795342751853646719847118996347422712327826471367044078844998299519051001105006301532730090827539676564747642143509833787773871688728901601571078890029530416101400199244287117704716760358546366635822535384012322542476019984728818178678145297512607565795097902556538630886886154965927505242027783502526318602829115357981498585871570918098771679675251693837700695289367891218043920473000976045597701915646006285057162247421194585271156040743467857117155521110591926986540338536677068629097773438792930667098108005608443830180008983934419529500171982723964011435876630449039807541153194510529972052543786945859879737995658256853864557177193841667245983093886126039986272273093268492746938081310057955333699455199137471943588235382231504159485815902491030055893548912698173228765986445935299603695123345072209102355167116109520288167971441259116493165899629330312568565085339353499388071199083612337861194427031958721882981164828358696396367031982807690665658870144470285704934126368805294050803850647387926948491251124272099000234385575900698046639220110072872832518377431809011959411572727619565066382482109545269846553022367699355874140006555424765341957618920040697026454367164454231692158472131420919351476304575766935413788093586433265850809445974830802713530388763177763686360379174986153669983479112043223580831727499971219556294516408481585210037238543098868447114664152329593328029849617351951928678840757897920823051873703248777797051451328444960885607215272727263133334555002195337529050467062102091548841513410821621249456754613466414550093628225066019264034910760897082502314842486035991353306695153979874339380443111057687374203115092454652962926594889442935517444891897423914611543273706872056577526317921625096236013680636496858609350502462265664099206166682762674967523722822468020061847763240643236130624125761092752075516021948511866001915483556013729573785192246399766643392412251355078402692891200459402233663330001156500295358071181097723791580395216156796495615361706946482710498231475415972262040066413939387099139071907195588046779083928428922474249267561663329080428452736115527598887412662179254724839701451814314362768552799649483437934776075757861489644125240431823892847452862717508999299276210761585076683482965503380446065352870278427614838470311213165609040005037632789893118226317339803775024439480395735716775061058002823485693715792744573588654817358431609601505256762741581295835758418451219963612502536122136240216167924757556045413411121372358214305131530782691368832531801091702253872686820593904576643786851178081471740349482421081948602244573813172742145097981295249350258379639079504032912575493808625839953224386260809506232787331053759102733596885850007769453370403820547406815331687412004034404442100368411780168723123212201054313962242618774620845974211432365109873018477112525766932756708264391341406351231567469557006294776504453654835409085070191340534338350229770546881479439038508709494336621790019969254742099733570857637127832622829536483180023500825015891293820093830256065545911246239027660850593786553860926801189304958115724791183415034974360771664485024573838661092799554523394221096562007450261985825835631059089718221543621621368203469639725392070151875143680702767306920449485065051233901321930336955243367005814886292737475208331124789084997728818179367159015369885091562285688200721244935649642190160349167528112764673364660425755350091513773277983391546402625497573070779497276213110126156076265881375863100648707661925120885546204753351774618165246971955698102115079525831923119149329281651334474540528923160336949170837089492918212033776464542286141155526051897140526499493602687265294916669864826674047260015245686382853325751466998783498704134195298468468435876186064673969077509813480685089152321371951421640596305639820157530754910141356675398102825451482597729212637761382456802886443687883636902083769675871219519883776760402523662994375205269801371840408445712933616612324533913840818714066998187054838101955001960115660349968165112652495083083743037843900784832613466429084238859759335648002424969332775834945182468669034997256198354100860314246848413642914968287103713054769792666759916577224392222244962826350418452076342170811788257312624603372203869011548979916413741189828163499484676294532188110064472350090049997144651622891986341367853365963872238619352904179763202134321238914127221031135953102779262994096091752334954398643756729311618304663838349759867629994221628368488661655135325675537806209228702141998119403040638156481629466634359523016625146802468080666987052752635109014812208502154330612796445424156294045593369779412818758370841183647368344012251416343907602898313831558458300874356286679237847095282967420920856022997689283022616797273080502555656591449613531210563073379006733681192882988914596122283128383403719661638476476588328289437979420458823413409456649960598535906442979541033570938372478935199464947745007174371407419736783780715122816424663628772204985737606371422650422131722313110471948738417327352233600328103285002765917402968531104752780647802369936808178363742626290643599049958263969170326139199822384969105222905501746800348524029628793391122910943996631888177712948190467935372134658385661148889295153214887911818110278824465700467358530267958982273683704800192610327952052962868872472622239412559114869697918455678592686829129817411111354500147067829453022545369805736772395898842116117422699267664192806658476815518634205589501464041899179007324185168613156948007480172011034926298751932461790404084180699848951035027200460148900627488859597380604813995855685269327562913257437634954298833609105619141794927679234508374110679607610079641533725540275988102130640812808129351237233961939998155352855715172423805591208754116205002595061617227952004194106161715548646995850365835784463344926667062202768282188504915656109390238554344681430100311957436965047702894855292000541457778908359785051356189920663819661395512608782758726553512624666336447796391428933206558244842411623233868319618743140465769868679132418069533792273654282450382583695582209697033535920214116446955731516378047245294971126281415477498320683565876301769337544297278774175977362173176729040023432800788883401868429078420132726080071478827738467600525195073175349938143070558547363436810777989582030230313333258426502666824419115329199998854586343324390432920568432668835551938948406806722463881263033729686293430807809534384788505205709149791838752620026621608453119862623512854032244400165221502443112829122808093842959667160137562698597745448120471387937688160116319684661912596176258552479405017904578256368379456612024067771309820435929347681071049220900902532438340308611636985040323493057203098183700350326660430860785105729942695547480847299361129994503472995561315334272000180171624739148077545970217397490531159707434965917352986316866266447783101670923072291401210393068405045762608525251709730873372957545750271401366663386910929107876090180946061428281596617880816646395642329003416704631123082295623102939621296906818875857634497000307557080004790730060736971425263853638341006054017744058097457250634496937675569860684252011496992009946821785458768106723514203320813805941843053465371020744951517584763540723553277701395923864172201811291205240575791868646431376777185619286385430440382997809842118868735704511146068911492540316234841761847198389999521709408386043553922908591640895299291366632796109789261369822488995464481984855810739741600315306920712624648163778700892969465863850519056606541787081891393326740105145930105437521334229822669840642829206534885702945533057781228602879310172439148867183131323410540330898675123612182882658591146588062171352966787388456832338445356216554577136247963323964553574706908799087009797406290926869595118756925439810917538323482367360492392771529178007970369630818237677528347806871790513324507305803739045145377146985068001281612689995913064255824877254402911576424957905290611354480870527809006575607069530380705470693945234799384393136917221825484957807298797302831585602263283591890090028016843461184903872887143497091135633161454830413058367948712883600310035434465863934912069150298602331671896806517097689846272786383775324117795756746330528354113268211132423656963553122479740128160386848797628368400645112652372961940600183556906676213103500494761257217256141052198841079535242665375560611103648694654476057533034711791088546325023576008649650151363086813128360511412752470386770447792387177781582362647965598724438404720964789656128810156286654059314042039335112274576256187305644694086178608902646263101451806720621165242238261486898986258705490845349193960414170024658030006743370214709959925057903864082695840771165073372466684984571480710843920761598973478991858851222998599304532874759805320646468380296799264236346799315394132076044249017778409578810071714018836742843145286023343822436403714684081185928095250560434118211497083459183790036667535451973545468666836717565279543764454748456326689306775096062190892041129492582466732374010967840214594531429762655658195680508345970937281521097626744863330631589579776608046609671105906896428328679506313770165631698730511591119790475459094457103415690231260302387938793001606082272513236928336556516225929710287159069942692988432120877195965742843517689374478311869654813288580328725115912729734707361694337878876328503187059703508887823969122015881345009706909678405765575704151682588651774468815826908487140493428535974430120715717932220492568773223944723955593966312717954656438986515818971863178535996457692972014394891566733556912785206980117238433256064629673647271073730916645609886028703144396132606854378533272858841372487602620861480873311767396018018812721275853569357409333519077214941265184037170534207336817050231689052619682109453650566995151012005224031277078917993417134658108762534924066454225233662894673422532203835193705229640624092239705894538350408329441812336683168379236926075363938214893853677254050501261605270158076297388420995847268589093473464425744111705159471181618011230593361674954381825246111460806169750421584130012706736469845607348059974622400252656591760134070077658267625631708367827954595363866797121858469602572140553045836766853934778081494029069420918758077103632484500943083662871071029636722836826026498918852684860661612167887270454482166569428930956987982683639981897356406349142581117374226985125627350984916613898413280821903903459407974539374859408645560421080369277198399296820811648537264472148153628166764321173669177060357402487858131805561776859306817604450303971296878217872698225432386576250720390565617835294521924608459059932343141214329352477545224033845686290473743292741681381965218239374845294797281480041383753007615496682550624299097268386928268771906664282585762352872601505769176823745722197657021843104791909279913389872153899016816758544430461747713966931821042483465318235223447604237399367462078580310139549161974178285175162999781482626792404464159491639401945256744894188168132816028119151321769525108682366581606811152581572110308849008870728692769787711969029329150353270674630284035936962711696606054116909323155184359723428465474353343296926814523997878926518724495087502679410706899063467508665156824105457762152839287858244710938052959041302463174302623593844101597557356794302841464328306224263251899778617011462644801050532481043089356421082609605390441441192912125701510377654312952634085129112210071973035712473381333539364951683049244115538055365667652641621478918500634102419667317323539302255970965436068633820926021622230811121028395018094169653978198996276045851904008057300289332291171453281474533799073454094878770731691159391900558421781827160520722381890367225192911353865836049036027182499821501953630563333334611858791843192244503713290361179770497806097793453243794349530197904778099746830497342195871205593729620475769168911925716462390659743788929622423503732047555050481276556638233644468876423709335795191544533174266787734747945115679755196873459439211701862523094879749502131869679451909577603492344711428914310936118323257502123725129997561323327180573016173501441858978642106073777132286377198881058665780831054821151159852156648246949809862962453218087464989628431384732987929589236064829582465322413112064000726015882691092444295756869325242594500045685124306055071744929411042163475694754234406685410451654598006017667827050205466212103132070408875266474250895454690547566180590823688450225275295991088902624020179493066495666045986204593626022605075739602807645698959973951120203568473166046917191424854023060740823994404416406160533614464983829548015995004480584844489406320506590632849968683697376323457637420210679484548068015347630335618640048983836715427998824683787847659314234255638599918127547799462834393297399013302117422163086379774980173278760788039888482706074790644228619401156325499402857101728725752646089943242349854797067591929066067136217854774592572297614424055010590018121111504347018680650519263853482299966009172272814119108832161202993167813979255693697554509624609258678003186803105115581561990662570583042395752602864521148744872682970302559079191525148937036035988616381763114869584737858002994211816015442392167481750835612306256763010292039593680103394934303248256965560450568084557150789494274972589950533271079822068896445747723674137928672861047411035486498669780580220139997298347388090586355374000835769381176692356837255125066267633359659821474395672827000348011570836933700474595526306891740913856996331373345842222567496003682531664403090798004290722905674259750922034053518835685825308362549849262323219819122379297720867881283988207545553590651440106815339073188731250587424796977297837909055479278431348283430879055710958367650674789674394032945648755615023525257326447428603325448229706163196942646281679156537005765465418075668890459689558521855598503427150550112352427705178012271647555310894788042275726729890215171293458284235804528526273593225545868350107399833382353211323948158547572304265219103902074454021337868482586151055390868008202558250434464283644856306127955315492520214459557567635367048699093539508011033802046006170342202972551356440638489760627585496935252095349306796624420554450492585158069941418886546752984105270007633931880228628027562202565851146953313286867629400849565589364695403191888889114483579803020850678600079695590592230754560195722686770889311544416395419680745792959198657573652128001119173789945549441596840467091245167561414761928682010559323425139936843320426938047378472223299357879314418311610901182841344737036214545039131672648597895453001911425709303694914135572226114361999912589545893922412998288287039556057944547310558654025373273859654176174458166693737288670730649504963169637636008074305050848559894131769792516119341926069815378014203987702716000109990718722128672012019007165104194750569616498785144046831275322420215335418580039161441406890689788744467716719620157397389323809661931733364268294726282212368247643086323614643905421943797984665029282821281868916033976465782957862549292565247382897453589037101484858391487460742250658937997769205672613286560379250724982734713349148788283036071485909456299845888591515461405050658338654003955502074234954284274386902187226819576337108749324030930306006142088659843812552827984480566595895229065179236579972198979963300887057377990585040883319594483646435949333938878176916661970765188370967148993559209455851788163908323090703507358071201980973652646034263827091525702046497500711674265872231423542966089474459228023409591705041399461477887685668962106208871528784172436375354209932267332890003888509204931469824635628097013093595702705856522301131524306171797161595220723979013239546964659563500682963938636660753794422145481646061151880959001442566841900633691878146014661421748182912963975893328026788482289426513660935335527084072838676832538426696526076163422003087528114120454886909007954626314721962549110259267020236891481205049377216705237345439507469449603853576189641861648841354123529850424939938872462488596953924291056346415353092149972048869926078507986351128749518849654181178230683324206136476444641888638520420823748789835023222023038152088819803530701995325949757883804319317004900846971455756346881843882836579217768152865929781770933336200679517691756140896980174699983114413699654496737025813854072751492168762073985333003405117720412874937708466170797474829805176704590662849928414698539864561740418320814037113573601586266244850440930724128644513960248531459285521655468103126860252205306294974932586322357218699532312527271680911264247950617921503157751681787017544094080829917033587655744499885886411730168029499690365393686254869491865063683683273962792430710089082021744941441633769902837822134018640416116545913253000105216453373026684469955048855737467180120959854633616051268122385771502741974646117108593515685066756821016836225793590328334958297609931763065982622235535398617966600780915625174036037377313287703291414733847594510170789019748578401599487768643787788424124707241524588016505366880498103977266742055136553980905640233594958641775067002757240174095292863110813542833493319817094904491597262391596702748320792662095352605148882566724868897704166940716533086222797156490584215486681022972453438559038154126037693844470045798799892469830951565226080976679612372471450682433488818615295099023268158142822114513026742585740542622484517854096031067756822047701880401170552526219487291582832552496986982971443351286566850093498565593454085509917624993915118939173032703605138412486694853964028352966483364265947228010570111762130249492046560510984806589657545169579167449594953590916764718555446795690009634711535717939916810049874987079544540864605961960064224591922777201391423762457875678798187184562440912105384521398425077847453734300884022754895319854185325515770282867972198942867828724248720426181580743213170267640404193299456011181366553513829002747086396242695933599370178543062137151036826240827129851053207236929533300023944688328631484133685511967411505547994063202972812964151311596044162756173686999501759031216309688841612208072755422074932558316085006019255925883599234346167530594105918942396396681789444798555164276424455045937527919438235529559057550280363691179011295735845641662251673401607475621203240331255062805436647392047687345280651797599820104590156298596004254973884506239653732979886276655764834676862933868101095788377714977568332330739465266008979587116517240826737000511182041636396322216182551904175623285471647408223473847799443939919154624671437303246483463249161112649875139302608412774468642668827809768455925398501113934981270723752800358381086920894215682910192452525480315337012471667737713904549983721305001737473150899798541434405957401002572949732363181478857249541272525314236019170462462865725020990606388212740324975630877026543263345013679010521728030099603557965829917189866637040923828678561501692510092371615612481701084371330715001936969524724496336358068232946945668896970589922027564329893053733980345123216506487810210893412861557522894630068617330499279142878792646584117342929852726292339684691196382180558326504760162265918721423276916936200231041043330699018143505793890962540033991159935483008739349097017703706661688053586403656174690756741201631109252795420060739849321001538390039638156199937041250662724565082206087802792470403688521893852202065233552483618697462807004320883010286789740713026947639611087522349033375933278546096428449037560807406894937044973337331077086700488785081343428048383925257163728706898834373515354333276766127789472788357413855162897295255667175283830236310388433050808914956266122979008674444834307076946614933274033450801361617374586469027052583637242058832040568374354135985680936819480194933989654044395138937459319804691542482933595526619434295649675172746944283564133233878779355777480882648046171561817088582647549401983360692637618335807726613846803811160674411797672504182812585056062646443206965694863256803051334245992057105072580884104581498877167397240852193223689350866359775386166318997610405427191673807180434356883273102289313800018159825358022803488621435386412805632547888034624732227069438301499558549210357474546355752548551795187287707329454948609168365951328416753650850296620696067613660252590447505384130043505383453907667537783695799642264379622990595681058052654685615880673219657100676517642422881904342231835215221134117066696966022172899663576416002780318249678236612379392752773805054130122850453750779187138150379374999468345541274001524966010706087146778771259851280176411023589819923456545273164781426433525644705742742442755887752653504189026579563606919619703904930576841109740876814354402389503713177131754833461599202832232689806188574064863895192371300027520737975744561111351394576326165824190346276163298020502649666483369515144925734200934259322399500734754323974620174802106003354169795187023295027063975788576130771088511573125153890854734967829341002710154594217281123200361507832453931834328621975747347167922691265038732048075323906758096039329918351985261619839227523931054818533244005803121974759917968694422999715146374047117609859148450734504460342813295466812067719832929240979748799912556657964057977786438075660933586855515076402055104607139114246014287110682299556831366463621410421706380684470882902124196112213878723988553743689620408399285303087650921259237374431696732647335625812926832063499048843765446315648587779860999643026179511687346835074929866157155722661220557255315375792674937586276039707917011646396597108485029206056877505749724698975929278217323279108955870415221322723935941292436812354118471191816945995690545256821349505822311235854029851363375409463077576626378852528428935557077931504697220592110042283267014327624802755964541507051177826394748149741351980173529426977076149692876658710987064131865343408213300181691606991910457981825646914535790344382407257974131526558807345122801377427044289174688743029673662348429531663351892722760020484663186110991831182370249420276507133999701597990629467601934658179442734378831156985445990966155179873784101539006240739873781094828885548119653979058230697137012774880610308327169673921567488076108754362015862586469152148174483404430173638374978951248983814561137553188077440939160439360872577802605051881530101461058751804211181963444467711279061821367711551195374390404497684042633375050588998008511987305754769062961644702720182049657633808427470895120557086533117614498459513136052447334207865717205316940520498828554271468861953903102014783843832483893365782650456764828155506764301329748242824073712014940241241722748085411726567333446781637223939934789364737164402487005235059417929971719026712016108351356107790514311828206826327114731861899026530216988232108962365544327168503015593034492607261259880336377550026754542968216084898985313433649194387412493231717327601071648574851618689436110694185004195268303409360272301800802352092841584391748384371179094878797640427926700014377074532127960409312548404596987910464301196779605986637838707472954379412816009038183546934284100131521089524411182401600582925615410371642656770792107258504802915987170512103582081649919425363133699221090851736243823949061477104476909740367280008763794288890161912646002902347987972690408828688697812362562807158959449522627548230540718386941696924103886717999351068417509955318589075759909634387375085758921985028891421485296302584392275019204300992936085003467134803107584384475634549232823262054183170588924099061941557658204946178055318734930467858299009347448572372130736353046856941746027000329227597831551982380161405762587386129205478586063418309425257471231071276908024732068547616582395040902131723431371291651293807677110971252165947367380422386360479085587477423698698518649857103756340660310499544389823867105139888473271599292643103002785807087490179586786515846822273920230650232291214210708685438251234767406511700154976188507094011192567064702696396042439950835907247260538609457322314911693684328859920492055489434135497913605230703758702398437667388174293933350052769799194419539661403925165833833795428168943363472930305388625719425278033225818902369502689666236518646047881968956522272199773289766447006530447643211771480860659230564023091261102031519796563261727416186858991109274793078202221277451301743749085680956833644209069491464997387524479073218457690264047953192088952610667647691184995534950617213023128529491023305714489917535523498493466740216053771563212897989050450080581836457041982384476592952353683080585608965199450349499585931686768843720674584617058607464098935283310831529706491264267605859559080355999899744576479005503924441876362428816106229475144864531016062743899514703359179209165591100252260560787138535519460029885271012686219881200144776470618219982432118628183609085467974722515031992895696735689525607029685653240979294921146183708471915123850218152674375287103463627194166327368856325248926156341988364965450218592384340814756996089144964980182798515238608749435171395876101384314129036611136131644659709195323902104632688794339070519083699386099328719580169272888520124585318048188257652613238529170796810529394052748714099617963234598463408662547056613694775899094279258275161786274126592547295136614430798897595034673410505102016062228736724402661548946882065946642974312602215109521603350119521047087279528646783223288622278868515399926804472564874286660173990699382730245939499109349173303641167484764173860490132044357133865424751214506579682158619933115034006909887112930423163599965949458967068372197047267715748040433689721744197836453311780895067090383133098779505597664113703145982010495220770960113110023136832945842436081268399391304042524251095073040998061681398690216490611450114967726770445474116530546987323884458623533937432791534769474701413068397532113908660348716435307140158191602032650317387674661077027681656538741070739782455854511116730234569557581955824397856797929608935041125521664415487012577693420117271639182989755676843511426230001079817828588930816122837700881528471674037780841426779096355875360261448376963936319514367845601196785008484636266425369218963257131592540024525767564961543229551249603532111081340118166048489020791991435751019436850545600457680357172480063090004020329866996274203294785352659514367138362216859076571459169877087372938328871123484812030313177141379666950085123230306083924638176494234843067548710386643147990274849247003273029402256308527444160766852915593291189742609828376018448317761080763187473926698151058672061713696763892510545190925253232579494539927133958269673918830455181543569970802130272936082163386398502494196498306637655995050590856013399918766203637139843617962798597669829583591520886716085617356670658209977991389622111261381940796482008242508595680820480830203401262907830908637916902840260446007051842646371922525538934410566473586594928993834338472555329671915166149567922352112841745429012963170418250304680619833296076234423611824179014463314894747487018138072378627081466725660834452662013350607004431516787692192955903210194198267843081207142729948560899534423115653988040668624192591399867003214974632341984783198192524499176011153224473149245949649518514787309061911923442966363144801025702869902312031796681780805596115528402175597486696574281564126013033375961655741258444142693165064207735568019266291111731523152434965641021311326090704907409577511585728115134208995803940855970869258626434606654830489512919295608356651666086513541576328405482266237594818417525327000290561073467572758718781538721634136398593910724727706430169152575205669567629589270042034341368180480493057426161035771960343535173218806480850771060672411320687518347463965421940551946048688393154305485962551209258838182346986119973109549360752046884653764284878433632397325277555253939919800859248568728482988766285695592303892089131712459469565288659107377889206673619154106467181559270810565474807081890230321361126166282932179204140015899986530125456087077665631857285208411828042544168402004749560460532850015486992727381684069466013379528380306728594380904045082563830985444558233693722326176294167428285671139412783906866316967055974426741586920192949835668066782621749690030429896979335301768213669951591707406973786706330789001725415145497357370069763960625413371552850329764710180677281934352481160223760919268412040958833052889711880271179455002551720882968679864610412075104420820837709867302469750968865715814139558884407502320721281003525329370148193294940066510638672652002746748720493554851849478738105780339061142617154969639790043832098353857884610262347382018942111355138128816096297155886555548898044516210487903509350879610925059432697066750413280797199007778356758716336716440246058038956738866857580539014648150856886491117067814552974663551795056346948174429635327082953945270123819927356958526517960819468393092968809260787239806673504890313467785866480939950480085010427022197531255441371091309621851570753055396008404134474837994907566409626517550473841618901535329159372927820627584832505052556757649241105147743102961283874669417331589461975422798419526276517253241205889771748598101107776566991358402873638305831175633156142379839719375177374418871590077029089185994197700659632969900309024949036042407022062405239670690443131216397676676727693471913987790390240448365482913602030528237409249800575737047240307330853820911633320451525757041693786282084103105450011522947398801680006208164401121518822329815191762057791626637826911059984738988988988833325349639304909970855099779625641536125891389978312727230823944491004413339744389659881708830635691380085052376270367053255212558183212572123882942919229969673443287498108273028448950213088813833172625524663716623951715594693309408399322577441380368140610489834861885687079785735547457292652929055187047632219957140582119752467111504433624661234941058579855221839708620717031994720648795039591896903896809003155282154250891684132511879754090922120323764187137099046536340928769562175946248542589112145019504338775797580831832263517843598356710696696489167163858027142461330878742169523394341387758443679800215350657110123938517148677255332823330056754723651025591897420261729047190778655427463811557516612257882419279229382591862249273087980392497589828182640311778793832210744616387730565551495660166193689727303489518329468047150217708399257452715228200052926870235450322561206525933519385551109855899037464134802161997181684062423132934226948209211109629043763282212442926756787643536297237951995318549679507113769272782194140229789266556686219492026891502039490858397558620828275361657681942645186122934839662500326907576588658954349042754988760846222652322893528351129510654336143221015575457026396691589931081824273899319390276676073256034829717196036927231887296658167116388331560859216168730153215728752843462977699823134897340725961846699100845373318667120374403553407177634231464679060938156584276722458599742736960518236328172626535031245976298803793946228205662397379248991258214977999260567279742008024286761097690823990233845778281964584450092959700628777523549927334963209952023094553899810242579140148022900515556637965645853917059026176627647556990424804672616484515166661804358277434965719070780118990021701649072113937552658527573019997554257717203118533955777135577073668244351417966536091540141236790674657843420017069849147801138628823033011777405277224384802867618001623923763396593706527992959098548838880501435297432912578259368036042252210032984900298940076564519133071394994431010981320466603301872042166490813146116494869323962253926524058627454244554453540121081496826367692004219511587516552536852682306653352892475320981039536563273680795019904022736414409935412234138659520526142548168728778166045368543576334437759749183205138594336238123537433336789270351629965940849326454944760539912610022598992908385980022954903878200736475486195563931834882781079787466380936355976653466408035676191854032002997524728906528148854022558045726778543344448325130761400239933684178971939272207506203099183033801900791757042336998041746670896263235814937971213591067457713129129333814657690898699464822359788181127927682282634445235167325210145565113779329165411398437283014338227812364643290073310211688889819612848848831916214694845191191673426091569951275516660867368861834747951233764713389632023327318858057374976397118442833151136305019406392951042215803268475574941173053402293989452513303491165766112574870926262684808027145451447801942156264625039564636259349522692543389357872658142843447998698040368567811930779100503707358828003629330620626279129325571466668678833657445094320743764781987137814313764836731802202576678625429106349673988352713703917646834748191283712293622239904460563517983424623320322425305685150090513339191690659398100030098654340352439981627078757860958441674879962124264259666899187134352230124633049439368399812644268764500914549631870881599530149838877582553481001135887984276811364268239979509878213418138323370567935601534680095431519661785492773074360378998602682269063322082470184135324731710998531845621369669073240335182548615170356315586260348376803147474259211946233184224007569597854848052266784738157387534402786847698855832093434422108655866801924985812378622758745562663953296073657246377339882597706032152773684552804809320645189061810300037246206373467549082017233898872250494782025204303496715015931982068519678332802722842353930788507324213204623393635216307413783439259302439752059056520260927701229316308900285352355141936843589692132654841024139745291251449582050538393934981933773898952008513745605907130558494785767688758888345212164106131071176078436224401081439986281225992328197107891085980785341211073709777071532970759395380911668163850268016349924614096600235044738992788254755802009985010087079803647509084360405570659076452577141044250540921338863342620288309496780033422354197514176202797993402898664593426486636427467009665233427022080111916482890278941303980755711871537461168021359407674447772821361243978039313181722535167214804816161025148031943175138569482545540279140037624745002219719577564507911712022718236928506236927627763869980426264286659495214767540794066243368282353033191779121098809981945629179972611851385450128972768769996385238161043498130660872709663691205269482153712918318778874698186307308438970957622871603983250117506093896551037954118515867225850870117902290928204271056209806183050371213913071022776058804352472371900803574171274799822256028694587896347823790730945526142653162198600326339910302533643044544364678984387746037126511541092978974980966821737330360867310321132445253220957284964294743396428735891904768921255356492439995142235880547410876801083450330768558287670744101475383083104642849791248625318367462398084847620993426152052032657349029983063517824433327871615906673409504960953558466313449313904622644377213266571172408720087682050124238614807562221456798606468005743885883175525864302777979338535067096235893765014581690598048098520784334082522544295526947268123563748171434560443368368261769395128129549643069273654898643790441562758013175550886085689528023738687103772080439733455115620176686887814810925630183026602971342771823061516186428787457424185832331285438950565795759957656480551208909500736392425794514356218333255841656897399494424291016976912580024984975449318506473060451015541920362630383501218496224769619058224358297828820496005975029843963568692162559812371441693693886885566446564951224118627978850851529841828132892272117269270659090151623533643289101355847102310377359854651929482695038423193332235115326194987084661476430873174478991941536805918828889212360422849630735456762121949712796211811834657161123998748512443971817480118802650202260035678802912505821668137159991753081325330892218406479970423190777890432045435509578852038063303368703563231865312163153269939897456471878132922580743103543333179661556779883286745791380833700327636288769258312536429628489167156132407099625120864600065625631851544570478417909420651037419308045491157579392404312537301404276595850586743238171149469747059385724858707834692276497700937536852650526789846515532375212607731632620773528062671755882601542771724311678874530612157097042001126647900622699434303722564652346369141237997706115812106940919949127905603980518504650306158131144427731940665454151681217387033848239959661144410594691400352435623708766167362553649179341517003900226200264734112923117754216647316723107529575913194052929530177524569254286018736009732192056226042012870693966267729969937420002523841506623068992229557112770371848344183411218036793797876999325616610722086089872257444189888661480235563806828243011621456472112019048353132736399032057110181256738253687085393959849220221600341870892753408331018564537575563545990056122380775354248162746020555442171796809940041180840528473801301229356946586795355250455221691110048916650581551116688509670577045261265009079552888465779793817276722565021491645117662668376353396725686687327841196600717268891696591202456402073333768257079671861248864790484290101577753046155669080120737283696801138750160768973323891411417164253671209017363367329838243155831247023672989402116693915291223808277001263143454709339538020782535034794622975759572822661302208374240505430844264535087809823811551798232969000751231013232961400360709349978092641099674231747988035111193231621244464376913296880868629089773347687924740646204360288394081564047948754909355409768219120685542368919328523267864401803179530842200378081895031696092763124392567877083740044938665655060084874509435791565498888115590368580359448877162163356637313105905565422936283788974061940698485182018508881604320184317495884826876005336141063110499893217168255419054840931550322177075057252744550601580659986689959702588616142468904965648382710224379694207295095470300341148417315759686405313584120698449495115062750732948899708159098331061811282536853385237320629328846180749466545492745832717197952092562417392229053122772407553471999640192292429001585686334799158092478405990819949949690883212194871862641609421843635842428737579989120209994582328588573095950777562071630374410769282893364517975541925482212637790100045050988758602161595445815479804091083377122508962132136244861430932392569355986129395737677809645182362566407937323437153280929292743552488866989192971974990173125714900716826039522135866443895321266552916383770528692268779411878448847663426286934060651210089463691084832958293885651850418246736188895266574633495485428365556356673462789257993268181935876815751108676459546322918883019956374037488640957338113177979190931384288281761750678659350608475521652362152129456177382882912564200222064731211511044625394001153355569934635466469618167684775423812114671220111999444770003747663026955331919437611786298514186254932325316072094311530115542739631621789565394924969874032258070887098364049423616889575599041037374657875822906496936994762427945242940260328759440179838114848962654298923577380437697448409880028301167097826835828999824043759952688488276131060780050418064002229118356093681907026584288836692742633137750960433720548287642771896131683525183916496393106517203167005606804481481218846372235565560557374499816060946295017249418567834609454674904555406211638476382450653799857222759237377834751482956078313581186206984246890178648991253505652082964258127619460684994659454843307256785170405571906254399585428467159812444490242443965738110993061760658232907842093934012047592754398421114551586351757858507674553434569324459198671623342196148446395078169682950168779982258168053602862494073005578324723365596851436114059345537521385942420525749185489279806034202208579661925628118466117316271233508739853024689865683586031299286010297149117832606705239527847772062381196351426522751198113558365204601935465122316875574737344483300585608822318104646399313966847526049035469278912934777342704187607102029231935357785017059568682490531411693528128577458232720123768065408448924672844646492920675989953571503060278908896024287444593644963253999316455813502996516934285941177667982113328694846265477062403058004730584007107822956153021924207332238349604629140543398958854722652104013637602986453658310806233925823722434206831068237441205039751362749709444355021615393321555861567211712793578185370431683918140960757177299247216642484316057866944722531392574737438351716282396466735941913019981734316780570438172588423530501568655348283347744298061966800378866238996294691962147628391880470100884094753961376896092649172301926826952470278650721623327479930381835201807927488572128551000793839585931770195224073478907102871298781803235498131347513164435644452320726556816746426716730302091786914013627422511525053180577193279123950515448639128886140740800141828498761340997619102681740695629053589477080864452873622965406257069635956734549176673987196497923847796647423821226288513492107865304182153801454220758060884988230846062832109941665097083469248671407794136296225797334960428418303696977783877399100844200397344710096312736456269337373748622713555020712384041162062583445663419944137091084617340560447481265340443212384401936605963158374846709442662716181057347512044802921396273325624074344096637200581963737049777552711731822521047230173767639898374273139357778970745757441645255855327417755341162183152883817594700727539563765215759332934110330382698997652784321696377544140939300305257699434489902741479569515488312977497652705906655187777090487874883558562331772153631322119773450853081101692932654322336465856416713420710005270117725270984296644539164574847033860927884001318769629684905478058282763704130329554882503378651502700551335446367497730894463080298447250126188627384943470980233652671599664731129104566630622842799697395370037437492455915269802206459076724148477905302435911254239603737626608540501891667087005743469201310244631341741366241191569272820879532088910953000135067176803657458220967216835678381009616305067817802873318990338630979242686697094237556918601847468635398664685772457157734589412177267839009821037753121686823848803012346909071861074337974322376859467484914250479503759070221885585355261956212660335905372877631010734528534895162136771034980655371577129458150424721551105311254955526459101410227343064955430000151815914440821790975315722011265172429560637154403322087103486439575245327402646036348585869790683936848677487192702101463610594279129498896270930931657106390683256835233263718215664918080052283270500121745631563565126105196773584753569740006700966831621125653055020259180079020139723714461561061848963261769077352607093775069791645518108139533925643494294339673564096553403890316491580278341086344810680707681284993354421350460854855230830557769038107951045599804315718609290496235717433213239730869134554513845273373511643555524640493789784132181157287152914490892851144769536116805608833651711064103058271299879330077736943825955274398274752430801231580908491864619264690083749205747712961173564835513128711081152290874277896035703662164396686137127351030051659341787346534619520640374423439977177520301283522685126029267557362009998395719807752261077384855717044206913785251296045358154828929311028653990367662651804795616891653991051719996333462536722572470820066897991085272724910814519767014967090040384135608801460110056369667935725258125321980669238590693651409945333596422598896187579911702863591544895152054794518038420778031570064819542815717350362985638041530967415048911645893648194683800326125401781822006883012727640480162528611707026975150706647132131622018774683173571455200379684631953026000558220433320509502497267722527125267337210096509969761620199682864769573743046042243364781478587192352723275336162478832359476540906150710700334242587250395617282756909964504094509213665334645477584041326383007761737360491518922440516152967766702045017039382708836976454068657512802439012751180252175297914368863108082814636357643956198334491811807527153176333827124210052964108415927811307479139197314385932555719005556715752517381900689064106160989640985371620004495788844556694065896923456926542095718747452158815757067326556389112507165127968766745219503279633462636092920101306127251238576187876745213597061056756082998852098856007446025729122012288904811550728638574019312648287657713066553265890651079669530247940135299202380895686755284335279555477846550608797524530015481108940364902705322267961738171996491463031110239827353822130412210864429087982095187664005162901588740132031580772925601824807448476883448741725888621196885940462038895355639470456358865424215518843240588027001538416662625928509014191759762300992710023050939137231048564850680714609830868074990304803222000951467120494120252529659761649325815549984305503986112884833466710753169193175467178835606175659692511336952461063861719662924263875848823274674360703381193760250057802567606020642786566146583480958491635105316818661571315034897115922860785396165682111702926777848846373103302977406364661248467689874057730215843934505178270908749884013460578999006860469198643656516031062532078573764721196362012163888704331988534216292202897267654219850406779803938465278955863589501437101220326426589375887561711454560796167035883774054980466744078781516768133414045482510960080253746853452835667439660047886338560554276753805964619596800165036522739343908755523978528595486420285768985072932912255038242843504217001284685645906314858058779117177062410521999909473545803575027309322468092931155054616897771386021250217346373132522802772057584935720196378466326168432494368558282179491997474286185587633234155815064637857362704301276283763222000609110351100160360178667030969588614983545446820860988893418029365010895520311967104673152351359090365159481698637351909805366318940509906260179297982113706932734490815139445031708047750222616582530885304198666847837613928672925282715204723063375307479117681476667886339387541086383093803246381509172575277408872463845863830755526051183914888153447715918813168423581350335601889460201394962311691224237157024294862782597485874654570612332938997150533080418680481452206396464879020218455094125581456194381181935562187619522959708478647134497710525242304387910849237493902471420173477601600139244417957585881161840402105220298527259664218734368117112898654298885167031032923714837580488265852322076354540098934914892136015406467642260567412542782586896592595969922300870347598250910397422739045910298302698167549045470173380863571914567357149455435202407535717317651265420418881662063170818127545945336000515613909719751289653748748031306177450275537121963890453583809451961910419547096865715276090063334099641114204472296709524193610516172269056822966857458992440853610247350249129856252336333939238317401710162358464227146131255587532691628379003021766929162882842602418822177207462170025649347364571933365251952703625259813403032473636509582502422490721091424979770381496607316077057084554789285172248661313320251747428977885481785070962346829742835410398182189056113094762778137435061283507823222108640409650146708550909412896241299726571984113946828691047766012397986441414361897115745417177766857551940383694959027605527385034019850715169985082613165877656064201190977306018684661385120986541646082908878689160607853906451129965633198247367049231122704705463027333059207141484926376321586432058944810911159718316454964832340882228253594706031097849261140001970057282494025536910825257461268059220518488743812216548343289492174838070151021205313749466199045039086292206141476035955352292029511703028890854729263708564876153687730516060152197057023003406315940344576690032737262410690293570039335579610232595408072228806394875406854299670638597629560061537479304959536279018983801357243694362485131779292813677450917597888699552813395086783896846306830763944872138807022647918309528948512444864272567585957099533672747510071927804917356822243158200367721709778466733221588858747221805636878785610270081470578109194044814168008634570712194288619053046453596246974586958523688913229298601396574791790193695701858667741084657615331695021434260526638841758783821633060212119919827507908307431784034914193699265206557580634495113516135411327365267456822573497751321609156852848872721395773582693269379143338673739252680195173850277449887567601538955692588383656138896422442393217125653546464172549997441199569298800283134088549360359792870357536387007359680097804473488658229309076019127352864609496690451556088842934952041990723517404053244027356698376911119423262410731004001673708074760488861805451197378239929557513337387831383456737743770099941845331960054283129095597567788012502679620949560228230144031018607634746227124412025144257906246525131879294901013554166771187807084408969921200708507528720753397665735915288843000876609962660389733253213870706126615152485128218948022576084365888010173539594615252183579484571827049223523011001530161709394351849158363668992303509607550794598149442341120470269645151762535270156277110897189293418109827464654416536361233866817808754204010819162980127723921765694352854018334289762191049372580669222111218538439114872557622499486334139199021100460515699571433166925720308654552173424403818905823049896079649645282102816731852318282142242340712478158729724573499668074755056067671402468610202859783135132515552841972504473042883935914104291867664885377888458037557577105493215260453780990556184284037441856948968769071832823539834596788961108481210952893393172531423869317637981890399761614554770230242825846503507031302391064470646269658899567783498498918397879016605143008485332340049656604851724758311612100746975015801342631723558374358408945968678963558614559831378027596301052011982596100715938136841611272121350891952401562701402170869752581186433874973589232420989167044064229468180497032317923985923248403628754517437637185631976906346098838620694082030980033634930904849004031472153041560905731973351933923015291495505023048278654012222377121818286515942011292973774704825791306595689914057516107827561304852891060510680562467887597193415535276161806439359925165248648839667530707618667385033045187919221330192874872249532070442532023822672980794711100146269889536614134187111148553139976289435634365033326059487883486796680066029577673252791226295513797609903103781994299386256639513261653918350336813733748644286742216114777510194041375434747679932730521713803729598084180152021878770573233654660821018105066848244122347864682670183588545734993632927628303335174559151607602282072318007536983998713927273178110073921405906049125725120521686341155476689848400755550138109904079841224499900759318029390417638922036930413930492543533821341109640040065181874627642939997800574982654986549697127137454932440379863308244831978338052097882946673774974980753292284907328386710511666319101205567061843522772437515093487979072106614501000587259851230556393677892861320141551016236818556865342029715867838724281542241837053260429124671857742437495849276197390136369638504539505779282123273281161049522450646692077423548678015392508959009242627294585076283809040122540289497941527433250533501008923574907313979541900824993793522404695567480576028369757226603132635783199171456161441306891964032312612923396538036137752397225898772263760036112881546293366086229044969017719455758054554237723809831986536393009503984172843013499383362258289672795926731416571589929751979584498204719501667403524131397712265530282447412002842296286546494019780590094960122953585010868773612437017517051100712736156557837409699631374231345117212902857875122649527930873778460865709720083454556287984423850988641407703161262868514389706030378910562757974141401550699145366325580636579845426460244817245972066638774733363129147132507646765167241732138879509489096826496978816304810529645013916919552948277292709776552670029919207289247768158280375402962796053187884426118704605880944362577837596046457819297694688889393735966813183580001685016711151183982537641614301830567212365917245734166320047586745484221544638407395406353475564264320166841195241232413598941548286437635967120664594306605731778438841638388896688103757563728942644671724538799489483896231548014603466181423435657669684155388217468062389457675363169885999669265368591085953500326142687273708616361647775630976960050698367676018297779104471840683773569764090069537708994276663264670922046197455034458000051590741807779582159472114945520586520636931244083125893869230725029428059895229622733556149498255025491025648500227859475282020423934828538141711140087017967950706055062446471019622343025957654342001057987885296227761616313277345833120616724080638382936308030559996132697894631197732179907990278778622748637121865081379855136799027540719126829040114839436894270864860436324423413791338423179545860174960740788403218835000989742519892828008733049511048367835874556158924856357851975252548378300190990888776567599416347724419551578186563246801283422033550146554799061293242814307531281628521298235275187487607288579938120503388151253379867334769580624977082543648688705775757566501052297109258751579000404252968461791862028781963848484462117100613135290661620825137966761288286432219636855752559810350369893767300716845751518105376112610769029946756971445747931335607593556522812066339518514482188339887094591884556950175288430135754912294508790054857263243493893980800044715902072683291342281684051244737154244052305728443245437148875510115362605459348204473457643163023110396078142701305386981570447545333517852532177899643509583817804967546631046280153397710954134856867123960027109018483435377290542296501011573637762133136136472678657703123173994828092784724549806846603793366689213094809070651616575019203845288998526365642006388013398598478337652254820869300062771786201467911077338845608548936775669129107994776932568621191751603763469394741546326010580641039164351665729556861214836821185576596846870764893322140284463820209517421506455275262560414459347937289531911176883762617910725973468261532016068712528972310045456671255908650804132743931870734126015094546769282024010616261637722793211433108351560905438368129616956990163004807581899074077270556221299628973697005080962060933341110867962522899426341644918688268534876726334222272801892118623849030895615607505855936985333288404150434266040426131099818202323890334025269635931042291970450149284325177369418761412651188526199461682556987592250614344137094906359890606033310246260931856312962582059414463627517211379892580173053013825863055588374024273350010409517049797168511338849692483607615754646320647569357920739627434577692112695838941929708255651453338750228967920250705298774098347970437526427184890677056755066210503852681806500965970071049727729449640032436450739508476614189200088708949247293825105772740682280884220275311432960993466388257285285679946317126151207251544841476570674942922589916511666503301873038725008446268736860035922346357698640583121265347823460299862292822600958647615529302781859957044268249656877368626786116011885096078663993066926065112349040716471837578337945005030655966735057922357673968727814808063207807869306602022031430829246203789245998269794981764288614492330834269221740397082969858543019771811750411237003375808401642691351262262403526931697753023665571718859139346762252015873693311952979737335498461822304443239163766261010439001779832445894485342454971189141618889878698029285460219882929821477915415808175122058455750162895575743616687149952248539340076423513982238664984766244365218628313119101861362096476367626583969958830952988672445756691517473204528581345707239466319461724921996682813660995514441199496762816048112789469422805775597817458616378557478733349611262157723222013727938363748674134390826761293896467269768394639618061248776020971604603778186553371886246746215768082128502774339326966624590305298562896407265169046268529726840348388741821002760826165889037660585040222507673319196121319483433784989167084664368180650117267729056126641621735068628978214368184684714986590780458647307589902543381211974182240176356169380719373877828173988148203176766680053697941323442631909985040722057113707333465546446545940553609392592367202691934346219158170109658205608222687513062686752715003085087886282645769152403546277996172427814400162124711333751293439581871329587198240916277360234033966973538213125673606821947877099769674998535420556947943447780029078649693568987331496097065720088060189578916044889341849095406430571345198405701111915886844514610070930751332477079918444949899648921112707457415659606024834198113859909835791421216499263792826898344188272327553594739784491854275282839367613103080366681961387817623058702788071019805523208963448429027334569387151154791402668394499458578291421645375647174834042065286539096056679674931064017916205653304036656601718858290213103495298411081116645623216966661815992944312213182659233005547198659083794817920909334920851313722574935926620360572146992019601996427893616729134057070066753007524204356490302247445933092803760367476948667031068688569951869289586249383083866913562021204995254636034376747998532880172603220047203858322942021888983856771441989272763362623190795664045995002328882703663620095752512903233301015736384020813650444518253277463444946388566112562475265968742168940507287878494240116827417855043926226879617542987772007437567685041831680522543175333882479010712459488771111884851289170622285294179906700143262313584662125188294758504309136133309100568624284688756334237231017848573145341517615690692760469695465704552178884086571368871974828966608889084003570555335717771329018197054164791288354854593596306945946758055602552909644340292365867979320563613604890200662748665983332069031348431550593730193174999005210432932638416413354055039528208612876084404091398774186727561522345661002589590624080932668024621518205861572289814966103880368154774126466779289888028588986627714113729646459673271468598282897059897270332514070393503933509315815308686947974685123422761958765702687949463052393531387766248451788104983354825595090134259624598388320798662017159243555397757980090610099273401007146503542112685161394737064828701375765592913083471723367441247832028950574788037754648257148484626946965829672134371722350671262331656076435772182625091686045231161166336865825891202159864538609705567081882744400873024027408613546767791783528175414474659120477207664287924760238176009967228850984662587902612135604362127329806620484517925782830353210993100105190680813695843730046505850361066143925840511221172027582807855512479230988334583604061235190239668242186144013083334422735148425384208170555084055420768336061385610470663968079315140673587742357011515384019364792291041165749975286407686191676173677022238455523439977449894352177783906850797940514330193665401583879352568900476076037605360250117729911592169211161383656453668160034473238553760843545547926434298175020858717743741547923083119967118402999247002277741688128399550597262516186131997944609679468575158782614550166384746500755233058814191870051689537084357632289380142550238231494049613135531850910100752168621610658759240956259652845312930711331446126718517331355148850396800102695806232803668683392072415335808523581587412438296156405582969177122019429529726719572500996864960105876837234739124881570322862881737145634213863657952795237975001346750766264387910312311925595156435235668184866548720718735372478663016986098208914632271142650737383262343867399463280960157474474751473720357756393317435294336107108330488568880845110316506024224181046890384124400239241438811725565978925166237196393300206762613786482337232746099052950238395524841677386217815128036759752732710691352622585228062385309884499847315496618537456352512428875846147217163951629974219974490873130616830955323641285040743281733393296346668317502661446378767002215601823946280490437331061469802195337126267797878457297221264709853000824417739846705754123409072137206879402246104700427615806007800058347467487309097192638541569189019029167344334093355483290122059739539428731673034573878419615575931984826742420230633400666065721928957856517884424653348195697075977153792016531692162284235885761395837864128972157675734564344230801502241717946990239726721491115124145896771879362328476361396805552616587653672761610808654964190732291563967396050730400728441986883367848112427159008354041439363344462689004792510874529250207586671263732457875690599789244297080230222347450311457214716161250642078578538889262258412730826947611889984102630553469291893170483168856483551194446548455848045129272496136163220655499995244739171126500964970184291344803995100753166965324887224744952949340204360510769406735598682411910566280349935588405798943458874840192138835864266413862852000223589073247841468425559692150255903836129416110565197263497113352859334888785389512522957566271759898808506267598592608596597610738401466355098553742278209237872770048751346528712089363188401189413002503578342815881504573574342596904086236577838205486204611519683783083326712006780164541124155384103130327679593820986186594295454614492937028740223511566767288823633220989858728949033547767872192423285686222040503619717296908665939615659354637372095034220772675349305558140446588921333434931280084928263992153753726901612113947068572710037482396274297271651286698650588990085291060379827288275102781613591663048853272025058829096540934350424309823434534450552976840045997793906568135045832409463483617764283643044082085781555620946610546323422558561942887749821765868741701904094171285546239005270225902820441834990147169210563194172053046319185905585473387851723867130499937223221063244750369140157900349281594353630945771772761271055407334019372632560373664349324708782062317472273260589862768481576226115985811115307305757728835739198671187299409741709085715671924908531921707567244310516564202582782541879235598998261653978504163366671713348467135235272997049769869857231407633179098150071932987878012937038553920813148795908982148315708610167178344691283686992015666558248846417446047662616646888218237184975941320121082518938127445702684468641454656266309396187109612191436665576117682423690976568716272364414097809152123295139846915984464942255057437593710661787442554655370733495419444856285519783679803830440116895598861385941061110809777201051029104485853493270028385411258896325517163665097036195509340285471717526366752001765207597043924628008060418023117984727142819986097360038413941490916559252493464296953232511796103813235831411024540136618945602209034164291467475931010526177132793842284669189701816776575683386897902509379934341173841856703728839277992810554739726531599613225067637983477647158692226005399784853280809159034885995390306502884738763803823383373661173636041745504041971889950235500847408205023409694831432479331420056612774671052843195559741123118553106348475344490007776217210379609998892572694682965343650579688422581235391492649331926403072663465518335304008114032899162139698843115334466370672508930010552004320251231353637203506846298645254470668732773209522995705548956923154884404717740950083030826744521530965139765340071037684998670947748528981767366071028845720911377822587189025585850244415572391617323760433326383737700899857655728951796053750133251472811024455901953645154980850770991852639575627782904044731066764427564172479709800680098183584644665852584638578783426118118986812659230774382678803202848480031941197579638326268407420879699890057065347835063625959007857636201123330966477704238591520925318965151602923360069511843524928395348119205866763401828961578053766370614084015503324616506987815679476969498318096482122044354163273391068069010576210965572507192323576846589989889652347990650285470048607729887555716558567172962397179994909679861274766097639067580913055500931989942119367295295379863449985727053366289865735379681742086060320697454217919577020917042620454531584990837535697805930429247147451066046694164933606631537347660589604323986092602999248778342458715251112481036468451818067698525491341350809692988251343931182141562717188212900008146463024896669738764992704077691725353718848030226822538252973178265241546201101442210586896545845129604334558308362590959115744914291407925809405617853038824276757335654856503019454063992195118465275126663663304004192509608617720629620131901535394050296626139463756228402173136342479977524894963218187729789511888320826838544334333097064990731193634993245528644497448927684109185874356250602204176108435593979582314314316633150169670578880412347482359168116245665493806785728711182608119109973307064881893129418287123688317970059802293482815468398397017157773780966138380980367644839744047729187982289370632310291571251157154824096013892835748088827455598566443488743280733116322472596772595233399587901244548770510744914026865709793791390275654163047370540342335265666594723568487124447904778161628639384541873545243003756670178886426054431122719669405578263228545745513519478256184260195643670537092854487292253751839010852736701706311146371131346493806906790764215983260604284452774338869907390148074135487553035082465733155021837625406980718695475269241790797696988066912027918810445818404135220490326307708130821118007064228098446143326596430273501221434699953315874813097593009928544163353980721477217572791503943941119105894210460666335275852674038337441477035461870001112006249123930640317262964286771396270050396556811202974338777425305896111564970123631321343018508469926969915253128834267362060780565692042521183708321868875686639695900794559009057144621738459169050386726679066021261454002566890070696587969669591010873339279083184698387093356774501601380326864673186063929592100772505102737884286056083608588252777236880622173197325432478207158234979858590688295309322718866966217204125300155327414674218100532578337128549044522910910744336734114489343485828899016201342817883255183409586014402659267388689208034868073892550523711923320335072287229720886587843649647401280185597535246619187674001034978258066736872626589869586578712356815018470159281461747852983660896172586830642614027711094541245851021925787581106651300130321489130569159076507332375774707346589778022777856036308391439374186822670871863138094691674411189827710231384812597102084144259459290260079491555423787213929972261695227844135110063228765512727065077314205399578771084236880802482439951175776988487785058664006187275884605161442486130589174041126018316437656805610839611217455422234722533607757084607054441576873734383421079305591593914603914552869739542771108769404376947895998661196200036397499577976585304479533120908735551576163263001165735830158846206547659054534772763795954394847110338633435051247924632089596231041066622505972735734871003412631523096452602129448739021034813568994798871697010403440002919471064029363833708650824968122249865762538767336080085010031587430223923776116816016732803285018676433376571083611172472032597676583241651589111238521584564349272592549651568241746224662613699459887273209205549924831211912940931081807766127682083209447284173583923280258967339524618521553604822227983462241464644402784016471001755290177698053912198422369874948845083173584288656726775910465383381513714425187876097942358310032744515790973653125898596847354889789560216696070837087219339810434089867187015347753631864749661178417460036780685812111486493034917306782650506917504250374433814286477111727555196634233792728302226060498337558966540702552979561867564891136687242897564731036080080109077260657206526310584073077769772876678735076504892649365526344755954139451253902074946323879480969311953609950126390275782523197777314462045127101888270023160727255870402470031439738332110222013893497645514535432692631652060401062781038612977189363355675430241806293542781553939065278290732334773171322445137174986175718428748812873167993638468756317389568670883788371649086650488848419546947282461830516607326860800035208783101825992113772893090855838508680752564631119577452209011879013096736811461621325708920393263779613602283883562651646871880493118803636899517634297078867351287339376779659312574560983310743962206896711284265528165260684256680713337812974208600949910493875788353872223745802502818164236705343963056475096756649654559930495542391713970869561821999733272863030666543426744506416155339550054871144596841532378765612572194968643050834120952259761701345366498404408998163684006453691138640711641364302291227341066114636250388923942814118842310603325514906267114566230824126591485257174235915485576856100531870582920569711958919195702375798553001709240227072710839850057103240607052054365509368373797567688680297149945946488919809619888998843250525919569656438315784255831390201558097977537431205880105621409386667011372430306261016512560271760878616940522334369615112241334093952197298708229502516225974619709931366556518199523769987501459739401463611620192814237878783279813011295285806905853621731378751010665825341821736275979923773734702557465369345111905900349271494176831064866048583042517644280228805706706205965235863287095823626806380929246312002673128362094656083685824894787181995897662293944550982132903060326779068909297027705817793501520979536204347507416305183137765391502239410136933497212565980967017055255556253079217413520509931919967542856510821079372623154324148473455899552550331676459956331050823435022248807432102575928779324115264209838880316262955964575449034382872269538662196037728949637399055544306593980331338318679294076020169507836784235439252439723863357067177180487356100765025113320001096516017920037944411375104865531461295811607461267809112267418775713539320879647218109246671110504084917255650134358151278026999457451294676358611041411203657757295923538602093275451605479783103779993738070979826751234107040941345495208436477482421742162012234163489162105814542477452720170854981937683061628604735971426179175195713323723060950487594941603655952879056827206415485700934652769948430413944200824592736168164582502089625733380759092841342132045076634257187743515433732507778135120555692497827035699695214316528938657042841458915354464925664995695726260505303037501848332026662361366277386417021557741312374928879990558884246480594287615139291332375039776625952174414233972540213154619579499780098545329020613492268855339829352335803321456145959156831927710995252770838270990642503734627950495302796736475985808470547440236400116083452964606675638198133783412136665269301569131807659025501265233831165550971414844698181068905876066566511798676624909437038542625392422700162057784679209913590338823634931866969744010369065598166549151171263551284318737013681231818984333701283107138216653749449636010353299124082209117900457459430857756023654217151565882697383234146268980261828998663058520675166434405081727025736988496091722965299852281043636494596754945697417801514990048749737680384730142654157467724959246876749506966010119151976581995865402376385673888508989928591287861254602507102017579150975633456190926239225368035706737989783613934525479020997971178648736461170634377108429486493480359849104193740800732835356433149080325204533512176716574793819736345233813976497196366124113199040944984595648404400622728731754056938457534598315907879049025810389621255264630171905646646444424195629053926265293936160578851471422757876899695290391835237539691547167556282229919360134534309600154735494175941285588183071465216132731527923757229623513026376449351749282100542705865641362277113116423192605384091918064843582201600106121423817474480764194893160352757817950651624776115433877249766983595160178771387106133897447700233662693895544702624610061882073684440230487390852054157492709499739231822477712904129296164493602838137352531005746887155995941595564696455799743421895202538418924378458957894836434397694199484706059358259875928116801844005319628525112042254904753584080668944493457285829890022400204781325862630260974151045608686430640312422485038299716409579289433038754151606564156009517656718157193418095777254502992503034296962628841917638222744724221178775842859264604861868827849404300177605707430525896421690811069967197592327831624280139367150856624471901504628491320751618965148993531242558552414318418033635445385505545455987720498825300684076276314472342597469708148305207490907360779834301588147941873382046201092895993869461071405846225513104523918254133053693376840838930628683288513513246124256801890241754158447034520065490941250561475703140791709106085010563545882161726640114589080019820870985906813500104333338249125869012084998641140389562939525386737780319351633860790314560320224596368407837375809720077980062356335516426782785960307272365701117752421503143952159541605479204869973893391439538672911676785951944226783443101303233792466243984132170359135512815228059143536265846055523401338554553113390657602010094221416402593353493648339420854567033781581337297540085738783883150010860781660668313761412394897997900221859420751134484022827801137350068487907129634227303015574563479110547846774470600276178094005110156710703907005160592812717194687155777291039156671838418909608687951583102598998189098082694098157654021639200119383409597798680736363302922792193117879932601597321941771585620944111770519378424257019183944966448355053290121759514725695597190599966687416433053352896004772054251755374570066968031661576534863180990139248055994453791846937856787028598579122546840276782027334863314630920861409903777953300123300621650983890610667443176389930598773717819689132579997307821549343849645408009463666023979438153080607802824603936341858163055443088249823486848415839851058556658273931754077272267438842766833492553940423207639246684245741306106578608433397016742950278875894157260741455860167614370316671881489252521209923124019434303030328561577882466532917539693065659114963032875815790356581207713903112047417371840976186860197022853336038064681640260904193560123816814325001088932653662121361657710347153953972505328077340190261771548498995368121707324082350333657145747352200432163874549505493611339510659072309014754907381367982690476817258520666179868608372420095702439526429583664060296902428883043519898656222346830297996409095271843240579412996780851754705587962261745579037190815073541114865064118652278777548337127585623264830412578810076440777827968941537575777119789233232304727724254238000592229728602363993990376785990614911495290134500014681951687596363657867054546754600722700354225889830421537798861913845971195275465207139608553840091006595730935135159325246095756702057082324319606414607957795822908387003797396126538514079827711800818472415326903250846017364057148984824166768582031961784489394955099578472935962352188438771581925536657102550853840765407124333751831621735990370554895533027416100372426082400729871173080771454931011916098764020940644759576222382068337836181775403579495629543633634968875006033358345882464826360642557603213018487625185109453534109733822297875945790383887379087560646565437223425913137465227783892991091399868635885850175164055520992302307066331694437819102876332739368495415934117509511962936528769542416904633460467658138601532310304718441609283089498679319056009494635255041106798689165614803642529225462784879013021789372036929303551868110309952245302329337554243408012588905132433078344021503309244536530781117256226549399514170168129520389721059316976229526873762208809348267222824761650081274560820552763550321704204485669921190586619169492740159747421935228477581576981046135421617577729568409671005979611895907726647942700784539900925591390594216963997920494934635819473778330840430679253493192814865354142358900793119106730582809146154942994890735904224791406484324753264805978813903961384213984911862514844655856552613036724876033737824416683794740447241730320590882898594889424813138252022577787241701946318984218691531807767218762337434071319736707021695017401870860764966454289252377483579514868847726944415682673534426614007545558119310677055047978804652066721815867872306479565033770678607988928262820620215366910021277004952578294690194906308287627689662740685093629618759813326780454977572665188491778332634410607673548914526933164277128854375159830610243393261640239831390580862498220587450322903858896899598013949634509256802929894922663016994638872313602206285032579838837113705755620531884539622452629112484568255368660545038650629614706827743392069246642650505992937084740918738755348284095426381347486321297023999008761214035843102718527366981297514011048481905751054316621196783341204550845211484068172435912972230875129469925041577777130220928378659424052378827072912639788569326056022388907878494246968480724097031217738005475387179259463328510104777940841035987666798028765226317225915214540344904664101851015223589776589018789819686857567505652483357900783946219061636033171280536441158729427009763718877915382131592887576647951906968145368833631490311561982806352158933780346775682607458863715686431756113141405967646626597365843556808805369225965763171505405233002410601080186724558880170633977703518731103375862591948468318198274371356705723367999200499907640553403373677410654392281805191575871451536090963449089839846173660408706427063801204047113817537364652525930730193150554277258727269745384565181740652723390670716011943396914852268021070933491540749025914469901715041235566147686193790187991194073322297420248481092391050986717256683584695546582984705829312841095543928338028230482003098994004855788591759013247321519851362259212157812501182488974272516087526803695908749432055627110001426822265356455895524882568525915352845889576977792813633617815855242302090234987422331957861828350499071789924018552383265897710539276367601989494990263524078040161248426603409466496506812795601649208944805109117931495158469650708837805787345210803197909370135191670370931702340908731546427423357379805913060381404698445442602230625010147753040969779553620069601795454037600986269992704327148332448821529373013030810796698183560063593112366583977884300905932441939649913766682474802579029803518077295558946134949716533060934085580869803364694809514385186347253807945273902720307005106739321628010797756495879616816171135735574680177005820313444234598510913510817251307837612997614650380330357450496035893326502898030733710258397321987697718954047924603316279241244625488329072285260745922839079666375174891010197861732435784291112998000949059113611422904279831291067005888260728227317837955656932235519400875558190398263219170355003772741750787749577678605941772017716582354052650803473045938362597362967160868516005628198822990228230494863251887212471368987271611700211071938798863409292720431311709666183787729365007084514817589976124094613999946181788423805620491978353920693058640033776999987347192055040049283689043236738430083346626855042564164070869258227652993000141062766698134678745221163369152986627096230389382913604652273270001168468790334424017530790513267529390918014736184423813113449951688817391379617513142357558224066366757619282080924250360029082150784813271830009550388171094248943057734590048663423736564553827858452469123347458993518808246912851542027651261752746136581132318060019905915644443766760599975393050188952716135686405686404763597533643277489821959040537088561785906384759093129711176771045744240993122137239224961468109651193158046743166502677379356777785871971767697040948937605652750032865062533302320981265351395042344322614135474169085646284047305967834099362496836182791393459119943964516848764359930330028686605569968899153670106873814301908921782415958808995240067632891351890251022788897155513776959485118565018993316291026552348429363428504340476441987569415012868428138690946297179978828842450843017206779013268133169114304090526535384425288416657754228246154689442089951734379885119295458052789858688637842009160093200335278566656127750630908351502204265589104589688714726197586209703791102395778283189244165693037898843986501210986236266198017587686526975415175784368109343387769963615445137748941943883246838262934181042020665776279682590185003860777119311509465275284928417791714956544480966175379422633879818102737100495494919285376967254955658133775189142881801303911960488812277516020112000931550258567177751314714598125777960417780038024072657217882811780597438779520441895845551276908817054673118576291871942764361301345606950317789594344785350172827475433899991988299889631555650943456238790935376964816009462044245286124323903967797148289751764760290498805558642169576842320734010542846776604640979869750726093367643925662717773613842195598309308762049863910020257809313383964896792794667693618462371950109625408814452565269822937910979505436560169280870192413852502389829212197432565969267158677561453292953653991865824624960923126587718031298118381717378860813264342127908571783617762590506650181074239277550667493856478444443953585750176023121259578406202022027639448156861551620337622526183924561851338398768117304623419332629043653176003652518931167889477408874020798353921356508730575319672811197234689009098481469535791038390163184593950540130096322947144642513875828284670843385840209402310426871221984518903529666227106187451622576529948965933110934663368075821550319159596630911919640665212410992753777731606529114584238891703929482036719789834171060632923815595741776849855158763380265977816960854061435151798440889689324033965951402610920880808057598048761652788373236246476962117144648803281839428076268891273330718466346888946490740514761080416429453077799459828069570642892843697351846600593318609501828605887718307143798946017498555533922201760323406614880631865202168191560670559776495131926820194962058811367497199331480908682926928961955606825726145364649266315839758710752764499207466511091318684933109804573003668029448138503602197143171321393661513704382236363370515527293144994231010472193069014356741623352198940632579581728667946405724712650733198759723615120913297193573065025555161881840824093509560843891602710036667429931313289448111177752251098977951156577228902097969145244766607977810738328025954366071699291052861276803960376040595471124128563507988366839307960180263117186259787393648891781921003997930004772736366962522645422292030925268649342916670682364010862566267706541999371557655933781617275285263591931973614097501013275387306961520286258901543969064092172257076325488901540241567775088779834714637477307637856241968330969812146291692553418045754498435311848415801426810136322236814618988583415867451404597058944533356131294284555093596705413162004974873005180001928698788365848221981129646299781049100384093109847739289911057074548891328726861424243590347279432243872360289009676348638146375313938666811972301481760100789331776661255067861639620422519462585347600473449455017948726166908254455177599018302926863772481700849637708055870767277672205293066596738902171801090028818634075746664074764105648482038894578822478615944355661340371904270073360405136226234187297359683192791214773704869335404930606136746710329596559948281980418178213680317255584560304571665065375691893795727495375393558287113295691436529093469225028013650447804780791979052354445587139368608709794309876061695926524930750922022031538390689587110755599294363177196150152385949370646634596515638031718359394446777385496963650522564000825528476679500442853077058635604602732137419378327793071111448484385693204945000744356336656258512904146712147740848596993892167009190000049502266141154360647742221235563657502271867185674372653088170139533305454342389207642948119659814141051936936161804173044523596569771373519573445853817412940078856007038213654686533678088864053630596019649753458158995909049359561329868476557693738676693587366489818772774485181253924482869443136417872820202372675635340229608806145885748213963506632169236533224317344641382203696923177056320172953993750687434487628195378832266255412325715867193759565755654094513709463315025993881901572571547216491940078320305395913043556435120021680855532183319351995105862902256282560805904868093333876273708553069851069813152628859879364517600076634313585237122081904008401075613404099038313780106080741176589861148129335856224642458050686901178199141132276964679600312867308594033678164986824184951034231076325995295772739129371041019054172591961684954284438867690133211610806837015113938399263605095582513957121625233730272582814608086435044977901277744633190828300272567169015726463753516501364483290219607716076381919252033068264464097684338555479236959165628028119285656256551627528587022126544002283760095606854152021494848495117171802841385896151315001240744096871332006828265379490364241369762444495628411788940099125427468506401065720000135730096879398540337297796915279229263114012580078154427132435223310807673854474998143141965527679213084874009040874534721081389112082993733191688715603504010221539410902462374732004772766224938778399880366630193825512530573047221670962852091392245075491280128067145448081193033405410596300982503764799039535552727679668110092635575133958477948445535909636980076905890546589116808205732335578347397637805150516070298631463579954273608729855255574336563555356639907780064579341871093722228725564022855481620776000176934826065453369757507900592947313646294754832980675658514825344155444691753978503786641676210214470045354706167381062736002993728992037366179906092154681043870330196380388015584395416283702401439334993497698419046726176185705898358917727852342148704160981708295418849091562981658828904919193779097949031962492395826236626525997240933018726485728810084410710823527134323226165635582927127170743912755304698727322414209580980098416689967576884390011634589233402612828991627042674426812689438654280942990480661499667373001656812382342296671428888424677225556123747506637072661985318990043359045008242509627808400972038952495029525909054351626288224005941822306712898106693241627553939963773088215254150507671160233831290817397185285150837213168286200771320250965694244217301530842862629123400554657055328813040694021883034293380622004622181956372656794709758953482431590258713690981514543497773783248525074501263471398592345412351085912617431230610005409192751337613954101706808796849968459046253144532520338495072729972431060701857797184361846832022785598807993977860244356514788459861410126392552371144957696789670444221421947696272365211876991005629846035067323330225339765641434735932948824206860590252961209345536454852773139801657106899188292160501998104742521174673085838597854553292981518612127664284323866017326337113607720842710815972584704584553563785313494388028746366429835745238394520837381191928206327633775283111535775500810511494081842503612357007548926660053271053468240032666039443560185978194817771489252566832472264357266369136602764759701032207993784628600365223670982886195710526515738540563161372053880401878254139933414463860926304132510627352074933764008037179185562432883062626062068296569959844240328949086394117238968687016484244605766603944425350473821419910057511080765265936135315733612541516746067534543174560819313292363028214665336366558475127120833377743702550437144133535588254281402057361303648461288706424346205101368006495807970957344310812072591818355656415240448757290415186464082820120489025940429399478325103946068262611113514887703145425876093609715910241055653963653945540257560118136775268840213703628359793617982303212891323082292440937170306832306471955025322236266985783409544603281220243239742553376415372937804726497450370096263813185556065913626865926437722002296261167992978023725630335656586357820953619156742184104403200270250495473997374081506644667529823908790422759050285861986724152647565294050866057722961266552568726991446355794061867077902873817361228858303577961956128202774060403813763791922746406519350180182387983244921726142685406040823241038766154977061633735810632653245425303838099332664647625140587074914058521237019261626507119660024751632475297722266614576652640475937294851829213570162345079143758216563402452310753276257960206134116199640992927048483056158343767490054196072043012733723139137696235388250238092840324242323410735794698864159497480448723700928561458838803509857262000663075125124625040472002363455721215414443987966863852034283843229012420931970592737301511189323066695256186627846094436623437496441539182978414998359995269160537593937315532460154421526918044656979203096548114785142088969107755233267526279643498226663428834906109310807753258270577393596166154745323041304148451542618537899238504476809103433370195820649034521616885043363055252733539989662132461494044262869162664649504521636663046880861414627124159567926193187038118681312108805196302405064355918338076521065825249734612458222088047373539762892452514639558096270349069730811950671462029620619736724969590542654980047701431826762525217433098129702183870176231955193110722051963594994353498335839480592259632912664213517735471949677913906769494528374128183308599574263639467649755580037776102615793824573726782726139256726154435818750023660457517571082209133893216153608675258213248593532706750690803320510706079480948347791445537822356391996366897886594314887962068638394035843499507739470625919046282552207376019950046498071318486695513673446795161168334079454185865946519205353836329974826628026889701065250054877842931921173079691921496610455432222663243724456031786929975372055475661172116379458519106747131699582614981891218498877267099700714846765448697453962816982587194292357563300835701167829336074822569150262524156175383249764589235159007614373994661705908516566674586794104043755960586725560367689364420933227099017439432630420946699513007530724153319632680122759046148248550218848111174992254478679775099203514650339480665437636776098673767158559560746167852748803874604380688882135038936505494484390404813269754431650726749059624526894973300128341072869027864437358334328432147441309073449849476257513313239381403021921585363714035771325312301118319625785389868992998515601545725254032564725151521197455660030948454580452087705223406193564410017540343476944629125540911055903700886848901105080441358252290154424176009267296840073831610634343980717939322234837933160707721064921475464872041028652333827698569163690333798556221593909355769183004745482187045681415089909596590208831125349365221070849084120695280249334769454136859855327736379893269442580206043733586985868824810593722303805458992379271823543771090141230483253884935684933137137599636713547856102183968364825312693852468076316180117091535583326166940638242701606718436137379251945098443889739739956929756211403009614686327944753223998116096723179819907805233732072694936154535592783203062697989177581244945101278329667516119787980685859826488169931384180981158709299624694673288497942795503093634787206316804477728304421186457674313172606418467190072915724211284375972446973716083521903855385643563082503462358872114260791619557244350155134158338877650609245803306696344274606214987913756915487258500901693554917492002048849073647220872759448519063680020443834655800587780998252680134930854766979939002817997256659716907718573907585219559341496877245056565221918755521023800689318575967402357418971878754108494328259456496184748655254076986946448744164778343403102185151408980644247640115144915026584858881986454617575765991770940534068631340024296418934821341542054681241905711759571228815082447459663898557920806018458744591363939469424340451061391407950581095733816459604865650501178290377100815941466786761666654389224312882028037956194854038774550196367934555676525225256266514942960659030387683168010609687254611635226521029464793601409975279474898049050655878178190691964430927488148600626636528839017278863156892167004613511608219657295933876756097610814214775993513351908683814545930889994691793597177137367969219165793476647535648801164676570744237921703572396123299736891390048658656572591359254491459004516522305924977249719134056091887126954013970135522294178047996758516910556475617684416881511298638887733510429932277003380452900492230807247261821687736468846420360847830112955001422689187080202022475927496304475821235634758792690290154045739334336147017750167842854292667042464103332784581766065369899731198999902688543380990928988761997591680290745515285139095970889754564763727719040314466633009254272218906189376319456763684157096986420439873205716044681663606642016155059757083981054572356320070187949817343834583371637493316498643774107512639242754750700402069339119471177202258914742365056906604377893195110799312021882298682008057556742854996554370926767122365129941875255041829361674357563466356030167497768129524609255418307969455664460418692162852461800622379130617242239445714353135831700348581994227988193711648517753950518766366866842562571753933611859557965375299666200855151447617397564952466586328931305392152809432914376823543257882760966625310948924593637313295440891154180327089527812180585411091523322343001979981587322602229588314263852160958278379825353465311253816367376443577820304452943396265705170461859487477432777696964090515193172433852193146166360691023529510469456972078451026771822003251140348245513482833013442848761089457259617387059435101659607458972407582046990330593851369629100651550066762659608345647994194364092149459633337044540921681417986466073827701968719155121300523911866785605203651981732258979510008173758282554034612419390148877814966978940158450119370821615230597913838323072592569062829121467820095485797985024915492850804954996630744957640519303998782252722489015706663059375689696797012699876183966456413234009686297838471396499341641071412248251437198804343659699056020698250449663501335453573029428880352484984060306691051318623637330685568609571863182174228221165615678544370597850402915085853184681226099114031598657293896075642991220497596334516858680558785114579145420549510075619507818147660426964060863733551242694514780899776271122355572943119001882921598616619584395492464925974494854903267977431591746208083257774963632906724612390968403033458319354341476340784121437677101776284415232934146870851460709209292547087220092857080617862309514997439825950966258581950441249751235377930042086426653320468814612847669768053492389322060198589230383637513439255605235952813973597918361726603146632370840408895004959190061259460585068483301289250337257358273178858115818601321685691682366295186201793163603923262325959365838411459626279497335603967750385311557235530764081856852711701552544340754481177507468187481619063732550926052211891294093287582477975969940871126794045990161991306876491679732749713969888055968787162319567699455630671636162798295930949389565116916449984899548085106763716646524619775784770333765755763944995297591820569082894231236297579168543911161173610589150742017242403926259135444365293471625182177682518136951532776595233543447503493533040526725135094685755958130039095317606812053196345567453422731605081136494058631765899340669409046168045275800044669440549850313095189574688313034633806005119592319443091829336901853129996550356011280102897281402618706888861337813502184835920712850234474195535622642091151124941005780884845522381795273373333243506027068281131860421123165192254071753706799578484380383336128404707618520147474932640123524965585299589598866347370772775188794102674863797306983852551135363045640315939900737473529103307349368442967775365510517617574267823229673582833989689240306497699168253935010274702523202980960585273872489907410925539831762325275101442302953843604759757392236558571455090477873078440349838627311091504110354700378918725830569304407906295397791503522410908397978013513514007366855929077824044450426335999715568128891507262745858983595667597372537592224067706311536105178902089709053116963194927750212673137127153259404532973337903782454951986721865952773988564776845136106882357662530714451797471628741801124836183407358676065941627187171540904422048720726365217747854982830362626406447347315698192723056178107908669450856016722351392703350023331038047922414425940990986083148060646716432648354549742845665903741175941928870816761894232195402691457172026772696050538015981121645662210879506899391261284855499190657499090818956246146856339954304537316036197141218982566435487370010533923000320914082908059294469420223333946684422284902427031679033729277357901247783818439219989973128307783131018880594879557961095307721451601887425672254355136293930534318486763790580058381331864247582363243341229485132763868436746621961042768997618965034588463894477207617509396754118689603148726047464666647804369934397612996127656056962537807911059002476465857746004164669807797444774583330859352300979025284154836980789819286277838357542567850447144900386549299141417937242764326401582431743506920436761993617041664116443649789097283560495371652532247321438147912510797424310449551633115653593084314292602162518835573820312552039830460375271541884184452592333822345087114368352800220581317482949914549758512482764199205475401504521609716163714702831873527856551414719257634296529166779209849568254682584287128943748623110894631560100530802107493135757142882083537561190046378938201613981606248318731490239561106950321214640093883073971373637859313207060510060752856168607346415646704924412433282220098228253375183440839684464907341948990418543263739760445288681954620300162527482601361779624106741879811733817427750455268844023507507237995515618476962434185219604802595814901063103477534491503249212136844685079314005765245355422004239857085074800528265364079823988605570081937540182094514529696075722355836474618522288228046423187956203343005116868118376644582924947543865355978591758230461109560364154910295502495216241942492179944127049619130422449431013074859494715919924161342058376149492629482437490475082688454167419091682534611724518901499348853097912815784331229195652117269257434960673760873673194515402294265220439439162379172852838919439207677918863641700131689611559740222463521552724715381898401094049163446094363830581090714111628700977964527460769126661731027048313240255422275145401958032585499899282763388963908780615742965768174095749221544408125937484565534033367867927526468596088268287840707675449234660439297964267252090073778853625528139457898888371434457932586064505214382976796510847128558717549194185958261649140291123393911490232070389490575112660175534200673854378934024613037292892858305251334577887360160899547203679962524330881030002835205264677424213220205594468758747187738504013045527360250901863101927365149858691874161601509251954479271076876376694884403323783273211566043560498607860394755870897927477351187563597842408939023575087265663241761536532654888734076316354839185919300248826487198472990317108169157051347075045774479561997555661272960379177557705955779312705910169450291395602825764486671885513872902157793081652814666488090206668328551965987595380134258664712822770104877436445588154002166166724535766728654933735308980714132672127189787859921291361427363375076801170307106284187118903698584780975021401370452555536741885233265629456671213584743485703364815526469289537528288500126560598240052450145933454866809997257059066809946816443796541436409356866034247235475256729250365371632842179624080045790219395153593953365243505589009289202463037481899296070032189171969226666112446577820993276822820093042324393461710329607558443531029333200480240793728417522351485985404952618216073116161609745373404016090461945695103806720396177542972020272917783960434299217169315985052021266529412437285939538696126732705644885267029842645179219025012797442457005718091589872050601047434199400750825854422140335061000843627382176276485012568039351202590686975574583939928113994332165731034764341210836463845361289277613621135014560967499594038810768469134842853918416717428091245892318779778532725977119376746340126218251375496679034528775210197105944744809137922081526535114267271494437523630908888576154530518828976560568653148056672491417639712084290796430500145290041501389293775578677563251426936968788985832622071043977070392804768344997428764866049952673615535500208842054287315550241258872001963442947601195690727623446688281904177367017531191610993300748428996575959681871047501052134314878676025415099815121028543590038013899285926549642955618542841514798495290246005347724045930127237889478294881412430286363370178355462816331605493646398528615693360048217795819370986194860225448421811948131199976931361946242003073819424204273845255652571798703092098996466437270326977384705602769780491559486772501602468390936501909595301327443399768537728013918425557482625324222452111793265181919771496973782377472898343346540586561358851304685027711791970632062089944304792876204415600251232943833085248344507991573270711254262501252317790796205070629565038589065859231924454522869187425591071924257100587777919014864747672807242037642056638425650074191908374416649681119947848483959518884768992685948190196781189310856703963903926183828495055263767230701098098867988353214541886783071819270755120388160653209659214879136498647523691721403142233720972066081542908909248350766264675614053573631185019671357508627548028702223721397711069237876990434845158977168134826132413166506304229870273579394413653950072689635624566038750382038765786612810892263793148816746279020475412734386414467561925773418664530669018329927322175068443328299017935473128016489177926071034727865722687356214973304302788315761401420279757653967119198715485580318675324318830474224085453247011108200888187607486513790770044772772942164124371357580752809955700791103794541301815125489809087835599931629083457471713579287580791947562717632546431043095255748519582325145965583741719409626610961642367510933876081724810792138972109855991400473524592079997221483114289166212988907310852800107693609293682768959547430300815283274438262239646636248809690091550063968779482385960813726549721448734080160339357039170948253845063378174682787104055782222977696948082654867251632157979418639202586353619848460278937239722002189953737012101976988957204096384799570369817096666876768721072197891608542555647208376386433982895441755204876667977212296376689436374843195317431098476292333358163359600553840158073633983224399947413383895923007115306482767239559419595781697681116837167024741620917237872032530455208410741968950944203936674590884420814930255561173101232795723934257584901482414458296614680997162829271178339290205325683905430174916105373675798815761832480068014672625613582122351020086902108294473408304959821934842146177392124981218665333495814062467798464202215794337123875891833411045424152152888720974397928488513324071890567578673574800364670248829647363313880894423578790212119501616921584276396050648977818504220023878640428937187717688121965151231615409718538868181158446863852023456415196273577269987809469963712612550542025451850634374998097287196151011028340187056078349000247323492659634512002217459934354592306042252715396241023167377907438834047771484984150530217004592238384595565897761487013495856569709015023550832592817839020943663858486971689492873015379431009470928257236305553451975334942046995294184749851505334699445968168684057263592895559941265768391567866131774053398907369512198132193373408407712247464634618979674007951063307341050532957989312802765635280786743999460735424728141244615181928565316197838096962637565635275729784827713929340979066934802039516901240613725372320344945127803527552752736499874561331759755362125495614366044584185451953513634803108418814651530895043332325438111250190918766954872539986305317071284040557508428641544909481757740401962888623807844996839016697358381495725455826857856437080390843811619261891959201589877767025134722677642751412703867123055401819702456033763119977122842153286895169104144354417275532437030427874850760442180574357848623048116750622786529814179065513976779091047976023971617527803836129229116050789658143870789427471719285017899821350329662166973729430096618587683314995221806143393080845976751159539713418104541499123848353859122368634057391080971686722170049323306155843032399644176764418898858290006448670526482081894103387363486301905649540692169267204181276156205517207877266441920741693753112890639856593287933368152306896237904259859094396297765005657435047613500465439780038007012313517449260290461582127233406744744712733988314807561596945922023595873492616330993127135622703276238215400544194306196757330321965693486581184928000398486080632365561829861238265980103598253083900287793648552953964513015320794767356381531960197418383333448341019544955046093645103043614168565918239794456619985042323495217109942205575424178198737333034435767149740616662450203189686539427311073274818070707252661819898154946688375323268076065449059212082488725906150968533030149193098496943573089875696655854732765997465460906877544904041631349738782559557454137001335108806985951621042158111744866460637370159774768018675143777841638733812141150292987264844640549642555257292547045181277848151245157449117653440722686216146023881127734622641793135913131194471536306488395889613868586880388942242097720395875815091793422352234929657091512285672573031238181539154401783416924220812489407966785539729066666144312358750232998086394748426641106609530778060043807699325982745970978135977054198923107646320634753418668439634809629577912443693547268403011123526062041667111518977034052662658903100401809463247146258559693333658381268343348827566787094784283160424917421922995792744440789875711467414387703703687529498831551375434316805630541681149712339793125915504863275051928727843376292931259397690699253825122985937510763308676096608243753397142033541326828736804750607320300146572991144536051120290688505217355598959110019324477767079744618794030077808211783481026649872813006918977607697820884461222126690488459969658117723230897699287249479449273207021745526917174315509668846710373226365981991915923139181931881541798644724557326966752316130305679514133907713830295872101858716081547302186490414491158327574244830645254522930908076599638916144530429709976773585081094844690410130846758003704228511200994491933805128067763866543670970824701919895420358591644436486873620580491073954769186005388491234291140581452421681426835514611071155761189008110466842612614310359726818157429777067312367664661354340125991458559169182091676084751710482253868793277368912623209220550203830740581554792064931965875851662660935949616853589139501971124716311088990379105729117754467192972164635301940092240485204248675863190274399052153466947190983867160160307320091631140362759756453746987907047948746103112814961812528499116094336579900017963566808209879254929562089329068719755487921290960924603145681881835855553522106509561217969831926958026986739332085211949948009658158227424847528801543494708402056288290435167687945810115793859908272058018799188243398649010877059112020183027472247967066015360270082856274699918704909390928764720011213663059644091160507484263177618072911075771782881839559618880297497892144931649297367573540907059311870512344507332126503137138168066337609213887734729746604287826564114648733767314258026493657343794801736629360432419676176601843796816013366477701274602082532345499453293221996801642784805993930885167271219319239523631582862559226716331083604307557898241612396486086679299364668287406479417851755149632647419932328029441556385253861694698690865792595988581489261633012639534096357214803104689928277340056895698824325166453072017465645185694512028802839582201336628767684960269711701535650582530530350989780492368839714808002182467086665878764749746547458177226150318324145799989722188381796893270915593433990105684873305428380620094281905933939738839581928832657123715206927836022250921898949557090807467734805210746803061787037714334619974646676758650064470113760863711853943148611518110610410259589803440602565087498977325089998966456717177291537879096967489051219970631146044690665188987547850526122634992387052287585013341106830437112301617113680736469940488844315266404297882420603350499891695336139349926574778076266736926443468638369635015216965690978290407026853625028076145626331961665569551427742775101912159488808251804836725950687798670217610469881685400720323839917347023586001526500521263207546531946430320140782034023797968389015458839971717546833930806768473347064115206140754965365603923075624356484640934822004513564153278490826025100102099027676105843019433605001885799689287597533418074658369687142656836550596565336493804066626101117432188297731000141497135587297313826420746406191919186562910909831540710713698683839683844696649658956766744517501472064602360511018019451849486533590457563704648099217284313151586467504595611202891903674902519911106912692584628849893329584870930260011907330771070757833896599680820851846884926163282404129662401796491673034515366628419716518143254235916919451975963117140957389159168825747311250008382946844905745141283072494828016652451018747571036348519455701764924783525625621357505666849370586068353017908161936247232121270998350319572143229809722839969201703531198904378907084196874159892562286082016089714748161573945375673004362747054229723142387153541803976642395087570750138763497636395496370305459254162318575614640470760302545957684468808050455267447379986905355664671982988741522123883840236480011193065706397965765726028139373633481111013622083381089839426708980457216916908530263022897414773030454847825260566429697155637115656642212814853586150779527806719172878175564891629346525197137957889128746581538777363829200899427997831388705023858128435596787975953500906964346637577744521768272897451876763894176532080023973095241249359387861611918508287970021752847817799893011649753987428207555082190027156475223534396471749368169491164107605754638053577868357310989138477595257884526548456650037026868016327274136575356579053153273382103107910833476725147822085426525015649194643604978031712462883692529728802491933753040961010036208763833169947044258158814309039274990605853720669069878761431064160378701099317091966064814335988029555279049825506866727210231142447585620269169692246220963287865440826856595411139284658447730832915064425345100714197170050140776198642275118923329653649649136594951846535459307797314535507811567025536424475006970296833383478544191301803018578578648923099022319068096942270217731343978559882914710836261530032608179405326144277016302186359011119808240268886388856904167321943143976141341285069096350584133950864770205018038753309290434493978046941019734909188909179962289761694611144697346086590412329376249034826615079960662952907142776817041441423425809130466739944820854119865645142323866442479651243945587538705134258365419109402031692613097542544512301834951657585930778339728114904579440956834366811006807170879188957121810511980895996694123917690634918964519913947063494303427009571703963768832611678864194589538367089930404851823782500925932901201818133307319271584989673433609410633128341606387907465815416638155925536709995781109978644384126930736929535115864327101494382996843529834123319562234934662402702592359322058727316316803142831537696100012032185952748190366925384995527996337117378564214839685235602400325144491905368016177441619983327900949360456996875227467064819680441379641462583593669596159131567514102450572682376150550828524823644669763309919175491641580100272712052965055234254178074269846072032127904965860596979719378828528321851189198720562371721211456867133244182481703168276232702841015112253987469848274008852757852993876762195193322047019092148647668058910824882232273760286205602242835873492869135860277483548482482896222724970501078969232512136774272066946946561457779307147094773562356002809390665972184751351547513431041985162095068308601147544296688629784101244234349761636844476250788064436475437173485097196903663611041752602364394293446593892387866580481981245816660462120843927427613670328247336137619643516475555691589208642640171337440700583315163459692714961999590888142296292837705417315693616460562452165909988636284714604867618978920914444540053235932673774718390776917137490761572739135013046811131820936330611369185471418687863524221114086008982659914727511863648615267354657084352334775432667602946484952914811283783043958273986447017228014149960431422364180509011518047880736694013666031204365069472644347915968801469007786984413821491599430022065669011477812381093871962409575554991000802814848516912403171687195102538465700143043666769184480915306206899903328889804942606836404910928024806195123400311897497552149625199394033747416031347872983589254432139714653261461798906204094926293281836236177380539392925924404016637180593424197353674118659134112288635086408607119035636454643429629980114913929457218172070204939955204244958601906045923309604271869264173309579187221979797858618115784934378096360316938135814437967122375839597782376085726091640378495314715522207082008774650023605116563879828155327919273630309108596483060318232840926056334925916946905274408795111054913938488152570501356333666758342558504470528257871230690133665008630695029600759656011655232571509242052406819074506952881693185700184544437901327169299447257833719607741522670460299307191591903437268072141214043989121451030062883667111052659380760877133490633813100833003474034869818161229916686987029800416728045281460014479887111616416549842849641752785903000218281982730886697874555242692359151186419970413140867542037066470836312554573864221729294661231624395042894285679326568211700316825495218695373650129753201100336837341563018079097110229278386562204577530982104097190416612018598862112112431619588463183221339252552537990104147811982125092898152951960993765858689751621025563818636364734770059588584054376324498562359252251466012915412207629462474833468722915859809944422874551084891607080801343966816500343908819512124398168039098472513302285725695883137225749471407570522839606433192166964086620232233376489453382717511100418440770952581389271388166462098947603178449828706864183656878086207040151896102376942742655570797308737615227952620445982164232734918042420499263665035292454956484779351896033048009066142036582073427067486127282864235464925319908757661586551276435444695072900833529491118830381084304238253146790832753724947852530184305311455618121989524956150213688693597885357794017160322427575543236880935272901323037695902665971650767217410501702597041585524314752736634937195148408401610598050664864233592132578547109963499451847068059495881010513480599583451922614413291992861565397380839293553350295440401805855290794989453048378972836429425594116638889711004861660867515775457629892405488794671971214011162895493592245923951414800263475491871021342455764735696899723730346763912121530145545834599063412965379041595101954670392561777379285190235638119062857919939362028335667156066481747393543463971798195525724873962940816688531455918696594621427266223894816074420755345337079332299635153129308235873945742688973954141077438887170536569259842107478755862077154074605795746855952848492473966541151639679403657895281913972880534338138416475043101413431866625635765411922203704444561862756306042044413925328634215687786814695480816023291216715557894658613862382292273304979729007228957103523338452940038517833085851358445024425931048206718042731168581464778755566651787641993595459365945875148631274058124346196399006412653277131816819164791228151121200490196832871554311807038726863438764565485664552016794835229123033799631345057249960429128790240798578650795176469716863592627381292163112910706546573653153825654127318970018889574870039276920498622169924422060672414701025694832541875787439697912397739634833549037441434988517463512176193570392195200583001789033249854963052712833474796955271207791869845134143552035985484741860217068761398332792994350012124768029795131731847706296141191079454392748852654845454159637488048334351795977225922987855254686383422412474706529248126669548047956136825053322393670350756725566726422886142643142738647293874239301668931545410432688996223997901939827184171076392260417333848071587134479867406320746901918191626846686088364916498912259214427379514034326547875647295184950323770970156775869574033347269464679197934296719231316847143619509118837835570410389948276907644342013228135723146274368088749977437346084066382117502486967994556428445182684579854765709623601615435593758621732004266163279354024993932910169149965356684550396641669618647349819062386459658988983151359674480864908250165363659248449021706685803592649706206418676479781174815606133723713425771882998476198205991164821014407595260156263531303069782459054248777083782794367771249488018469563344974244064746201571934871877349183447339171968014974680405403227505279669082057142076347306281734394967690849430156943785845712077715692659727242867320707008000162664232869563641201255928645421608516707948409230297840806446436483226977672484426285384094270867988994926271632081295713144676614898155601012591323186486607437651848522830939517311054977404927626550720422844580195380549619346488680265677843564334575352191339809514527949285258542623692815071776586155982218359474466388556416198452659371579609034676945907263839870450240362093544539767988761887298466789755809339933025620412823557883014300854078235896980686855519936171542189868138899443983209603302421076240961881534211557507988543500759189525978371616614445453628700787905754464231463081239341515810128627199825331502871895032057807136619664502908629437160171128021901416344768737761136369517236282473173836981309242994967659050148107156498213384796338808359412432433844785235166038772971671283212976783040655648521191239215799856555645232669386717021859968491742219183688091342332854123669935521475447170093105866965132346894254962335361189631735688609056655115638578812807690176173197834252562321934197219255959269919678948528665816483820156222716744250474218767281384205394002775278191040181351383460854889549655362307899033267018265736757869226978280917676560918668615090923348065712617058928744609761289978333614991702142125921193183055618908109883160540663333171941600450590624702882199736709173524320433903844550905415167422064082973722940122868228472132400666906078320700827695497243274671909603107467736205257826418553799155914020516052703427832805604832973832402612760019758440317666641970405858127833908746710771964032731840340146260126557679932016975719103967970273108985018711724078557414827595564640585635025843374792371343562578503446264613457933500228460982572150739347293163321027104612655096817619902755557962540955717309154989563068647062403630623338591123797819841538116688050429100528302789226616995459170147633094370375168339280891341827733241889570883888761812678668178304821662103129628519783949471258665037690369388696210656699445302169148003624719920121965485900978637692854632224822472805850102475558523465756229059431301009349934580450432481639372202763811134695555167783175246813587394331712693888481396338120960835591749797985812638071808699161130803480435658297479717811961080497245600468271179130224359106852983881765731909091280297937945538797146603729337649905900629513334326439308353338887051292163261517131293014019734594930009664510645788834345010577081968487443234905938269029883032804183333551191047234841104901064709533440933020624713645781295685719466126155007607495329343857667986904656484324988513430697083801632195090480089393681113846355679040963988023892573638336130349810088668042754898080818349075498462442925274627740737688423715100912542698580392318449340660509088280448435162828417141981878368852211220036907799670586970786436727050388719920188312525127565877272736889419930526200462931804991423768853088480135183230397717384672265082278795162415469739133770880592252450651093740698774548051875871973190667596290631482030693211169597695634054784992303055680047701110230887394281959468753835029993520096274777216537760023683764806349920463655018894907340472623459594426706740349092287818601440207847259757509186766092540751252887589248252050641571679119019218324296129505928219445894050405204352630917176621651218272278836641988722766560515093738237023434126082970686391993954492353159791574389998770460464753171230994219117868603441725582910877061043564909835587340346084806573455863114624755333309948479084663619079909016960182575804137847087105425340167522320915107935914599411548455391301124576942330053748568850919000971765876759604708507669896181781274972479651579194734570665160521429270670653727475741527857428129335468814437716904558280786494013678354112677682939755326725716265502555025412992168726311355815356214250953440386866503046719677393099142867564326482387313200987981593321918997035004180553934842600745652038758603640131248202399124879635728724500757959004794740484953738242667436990354377170439434221721372375441902049084840455804554208274608017248804789295832398790139851230797731069025810817264275812426495095500843983947253042118731367922755545109919169996499575831976817952496187507277215994385893665690312433113900397909089235573310345858689201753672210731446694106606622349689613943833148869372788212958002998890093219341824336748261855470921817419567325966779975722723525913307717187730816320441328239424942470513036292481202879840811341406335861913652264980984117189163579215408732229535673549523907852676553058907719168844029575299438380605808649318875231836019958712751218941972509932557493113958270858390673565279079577102123016612880857316502847501122227463327492722531466915857416372627924404947788476840237669930209656310996092395751899469195786664269192288564702937123360922898227128102464361761164314670023037628592203458004048894892774973769915218409899723426887908704729309249400958877308327402333368306370049370610713696711865443804253157418379181366289711968651394839029031187130125140533426235839524203399165261570858562238186360381380716136612605114523801785793567461473462886129137578839262493479165743582184908434435101984162580369174988343241878950501631655207972032003189004547365481286519782052694228766337773838178925683986696411414355915890165227368435292303955575185637177156324659859345171668400671312897236761360473041127554812370597739293039333464205687870230117579561210922415576569938999949747711646477803689928987488459979305132343590028810498318054000000880103978541699423401544041248402591580719442549515534359363844550004018077192362685687940190770451379411627054160696242190445523100227210925637236963148132647385657051078516567230085337983141462567558008117027473497182257882116159898520453279961433365730088108269403523810477693473799716682391149628459571637745909449135059217756866157085949253966714881160585020971921967387924835992497644551751947757795617976801468269275498222210837627609948579585283141272763406188792600784976228158691545008154796036245963136273228190362591427182811655308079807377567928982390953336656586866897966134314053512742611349303133073117690525162712637728162903772751818942574002029597311065243730717225698286504399321801043976133794607169225699982292349794847755584002436639451540493354198686575615775979934415555927890386217991658664610925277664638198549753744274041193148654519533706061696464111996263317155144392034886942290320806432380772060606403936815867109189315418282036444939706690106601751934400490470666972501216771420708681550607477511101300892479103655013114449105924991589679721757254084495200079617026162533840692804462697120403726263435714330957096755689835566960876572481929619572186017652448700636929678606301573462317647769567781396216914653991542832793653421595919323523205462738979592518676139449242417892613380862576325278002447245590171232435001669679352116464200446618992502661798553117661392400490813667571893609001334548604365938170082572365664826009744291212425328436069042086619090027617763918483244506818942879510024205814020570551325751539772989249240209958614894166411484909521737807515789683553395786133645994635329108070425490113564438020475812458846371194065425929638735931433872194877476768997640213914120782122011418822617987479613782438369471622988924142847924405572250196348602593356310130221927826815452397320642578404994415396954146783278485780835522612179866994617123538775335441202518975392218431936705156349203306094938652207897388167420729135448632066715906260471417589925000260579528107257975635101449393064960057644042921830888732983181683215117969566105923927621774818075055406241620530968607628997769683484316299268151914545090175645911766625792374545649889499384015517377839651962101206320922556442119849088354491300376408063753330846354248378784087051621659151863374205503856795168290710140897762811373405766160565538434222370397608226494847293864370637079427216931882702821103685943297867901518474019125836405008411569886619286289727457753583401114490610854361304406497153340863451198623233617323614719518959303698104191901108543467459430275549661271029452868731921164048263315538624482077436402361424524600582132393475127471135518078855806178980554095838430306188991530458391438687379554334051311762475589673227836053956400886346376747531741286625132460741548369506272613374900508081377894341367213910034682970990537237468588933432081183774535415496998960740920384789447850503242942063091584181586300282489104140997063712892212710884717465132808284452285953579942579119868943608998366584659081967183152068617227684545120757358529277757088110529854927056670608824082187237771204129856362574940843826189712277805161004807226308183500657906891967052840280619651840925182541609576175901553628417066146662275511198665164237681354089836089767423034710474617383742196003320951199528292496543135638546448381070453787731246036480480560017807798970167513484353045750253963085661643872434199302765576610693437966857515672514130493917270699170964315390676835581949270216840942447905954045152438716449650329328152777407891310951072911381885196794213108322296635767495103117410763362450222229487020755982543556108813166566753210923852703697726605949355035910034039091725961121165558381401813540458692734427870348432895741487652756995725874158767020821754598031251391941471117608994994486813580389896288370037993264986377091494736568543761094767209566603828184416797068115862855486266529997341885059020004247835115349378501031348479441002473072828110849307138934488401464991932868371639542756295530858234989676704411835979367680256616541569928251536357727589594879564784572558459133135129381064328072487859294492154140119050518323509929826393703876330516875278671011422597793966768369571691961041870676142100385618061279637567134273941827719364228057996391771928028897363476677547439511125156134514400936106502504892538795455394101973129239885325817641369234372069591986612050336079193811122042981251150129822564299545754726260099173899400402356095550378322383849878638554515478387763066748182778276529427144794069064907565485539624254469172227624799138151708921573978847195820462007767451609515561170955820339976088731534880074736270295757283278728772675150250878017898764786290545239369745063789062433671431535108578429983270017785799211210930903535304202650937659141999260975360072054768161148986177579573688534877317662116909226563181151280092203460388166862101897384151035166968535354073319703570522316019138208366844318028568642342974563477107861055260063958393088422488995974110628494678690731032955012887424866433348991293892717121934299854710388013845125088729590535950377343586191742024644386880201089188076552012092312622761997925051173699652332717408823477772056593640139457666980308730139998909637348118566721053697801719115896359403630710840351195860096460543858119097942689431327944625867406638218873528850556231221661670430624924137263102747981438027460638455278795039031375646247091934450087537349838746943749804776089657191913727179646248084489054103486816602843723543643817274826075291593075625312847790827815845831856481899647740393594596496449642582490192497989504899699446001502389848050670861986783314700045274882096352389903398410590001548375089464623441799455659842141674838572225418854457407260510397561700525660857087599861496420341496111185787197909615769109931852432208002015079593234095632021389391798890096560753995364746490350561442830938199887613274734602690053022490412729965507805459693351071597343179917412564339206095805043863823795775116615704281992917279793772808593388385425939794522190623714921269925009810131600372896586061414613760040919106121097255212680799969337292924861531526544224176664268977902465624615526120460466190599361219154985702236827656973039074146955260984092009374058506900367668095524257482118063495631441868129854148560064914950910035424754398683483348280484028084335591123904607843349667471168356965568191501713447343229652011890204963684765801342292017449027238816816902194528656174212217020630602089698658010784917080729154734773915064205806576245056113705414659392220596580079648557134339648238752452582643567710977098766095842062958011853582825465661554609050731123744154652524564883982387477377166406358149548837123108650753855802372729936640734279570539716178578161946061239827830685686540617882642327796499428800660323041036219299837648597872571474435750827192416220752983788042659387865582718207692329833214879917967213023090632067139888040619592415241533556445733944674541444148017269698336093333251059454197408699735045574514890762933711908318240080345230372458059760715537403742452207879373953835174023040577265455201333732538551115210026418599884146310480673478483806635173038503903498103963806841843669399335149879228723790793703622643103726194682733128242260222599142442120898625894382485606422986022562353825830372624495673496195599608451316695820092610761311815507772553448815943064504367938877396320147681959180209135388091303217958705635655359018117027454130352018029211929939569008906664537471728402535733048131452667471023270144197334666563111554525810535011590650113437116612035261377315717899929571048027393978680229120944190040939980598715972774456243597152916642820755764728539445159846667481835938057436204637209549953534312140104248252637848073212252386607818585141075915479138306032205796687672566194393291545599160390365868632340342543420846759552446382041287992922466579868429016960945213885461020676916521274545294333020420207236923002552562345378104710292252377329314956424704865674057519352480280405525392341670144282251592730463309921736012514379304522296941975945310279957478453081623171918325234721706552927439328315836980365218582544825827968909864668580636188278060198171868812213320337737313122120392230902483477795747875463157662281594802209728235360762940418064057948877617806247255728245131964728024203460087694050165155105771035134326686850619034232644749193444574409026979197718139021233554763341591057701930654798232168987670290198835457098032658107996938128652957158697648631061352728475535674679704703796753767118231039617809988908624271786543651169193870937234738324180765336149268786132854710121410315911075012152017523824623854735422245395349952494456690491821608857008512172351570604132052643885135038569582654205117777436882034644470164957649298709119988607902771537874365684934893255602677685471756731064707771569949016936137103473766263378207561670883871002436961249587303962972037309990606509057936368934937828137779924349673827098511554041764814239329841562812005051891482360206031414334770662051316063883019095450494677563100994316203635409072225614906583928278283160869950093175766421511707208529613247126652888705729556106064690145968321045176818773570563012517957440256075403141872529149735549757972545910156869924030664207433480648948808569273051997170058661101716613601181764820223688622157958245102790632199373428426971499394031623419698933729769596619894282770133847525869484311497827349137017190086370672767518373805131593887249505049440305173099634221817712341466354782692910908616208114831908397220009489367360885642177129523980992037818594948114481684374038108270019292625949357412497059476648436061333171276262659810023426690188924358592633286727960923375905034300052206191345834069621491506928907373248989280884745112601717392320707537651609621713454650807432365103172206675413167201967725077794848335522159019970060501079466844039217148218034562614141991145227115958785440982699637956287663214732222552561100402447168477966755293497460797892409733884288605763212680974006616773282665792706289950481509389976076092981478563341889713435868751991527879902091986879621469445967106649848972033956011847677223543213860821654066150886156030340018301761441723163002287625207851103982013263140928787656233894024217031832236828515563832183011524820320993073301118635985060762174396758454018449825816970846032146977092018824222742880287627115494723872504076454118577198737688070715068043999888767874123606066281621208447353270990876677872732532315246718861661022809149399796288190938887768137653306267916180697662400685876464374065614384754266819238894766580763523041511064302649333114919648527293221568020702773998980030288774710069622218797474761453946072721613907089458698699349132706799057942634603975173107761084661423771508601980376980862850206370689735649669130365441978855030883905205592265902644651246915196893871427674602728220300730016089413921849622301405718737379095583547653535509116685837044157001119072266415112955332096143378921625965131144323462862370911298966136373961332351528953702891738020148996466476903851661568516465137673935509177479431710112613503702009954603937098950948042995854129437837631021828390396284075358851698367611889483769279797651814389434010904697847662178609635382996590846913377126393768074885994686537222549987786486153268830165760350262128227838313797108302006586184928676651054316352198496691398753297802612516339938609512735569535822420145961772050733156229440052981475325960848711312420519057845220782383445142910037738401047212402052359045775433855963619875546725576886186049368236956116473090586981642531820272306299918503408212632957972535505142264945866876779035042650077480080988561226784363893454505589825439007556653002689427914775986868245228067751348182925131299470210022953848733880747497255248121715455915468363288806478985343602108171408864473134454186809472439557535546228190897711790013650825314594705722425492758985206824926038130977279477853172712496197839484240282764112791693920719146314648471379193315627493746764871717808517861492390151988174559390355070171558483159247014145637349425230210932472566395230369125248056726192066662435516689491432142864691729519478006628617915580095959345057935747557614449536460501589387641438964800315447031260558036478350115141593158998196104737588291241376042220091352312432229634672636381017246516928779650286325106719761956238622049323616547502346413086077459281620577491585227720095699253811572770499837270615147713352297721188535718782279401568146444384425916884794868998895561877908612820071211945387701251808121987495585126546353778495436928935554630373466026693698589891191758864537660844414918732481576820009074719469219554999244454732842419198059819028197789971211245444907662614197054102056542268520603010977153384749659659543581499569686781450080342200296128682998355391080016735229455620823109489787252753248047972613491066279583359031147777772724101706337477742149957575842122864253478975029118838224227583600245335076441873913705675339544805434754461387964650369929723392118040398003089263189341284004210955026502751096670506888851358917251760101791433516814415254214718031183359768900168319158617497111172114794857687673487555986888732794945988899701201073731095246898394458445351343140946765916312633745848558740919009001672104088838532364007172826903621746944685300503131427853573513376762154776137208483151876996662663833321452097048487844550805285057262526189048534584741113758452908106688566728231909518510812098473466692042562656646955597697039039019059204677520796503388111249739550266519568416305895136332335560847950485602903971816392174731922525991646259802520690288548681573314929392159744772141557981843188368580246637939800998093273934825999002337458886092250026134788276099207318060381970629137988331161880130600941060616176992236741547392788848676133743145592141615752008678747431992823894336273211769242275041697891897492553337234725738825473845199663452186270261732687903599849193377661543147887521579317284164745299222449235441038328667780157943959630497399789981174059460981158498286955357623160081022491795462809777711930477160190319951607304067814261836821946463185766160764530218508802374301963121009074837924642948637602878848018290656707038101145748906670850479201645443564813182517895360562751826422300915478561184946891971749823588994211177711324117262724965767403077983356399330178189954431562820545828918550491011671058155917840504771327983648146814818433732090747497345346963123868853468040719995088020786290187277870448195001149063848864739687586179005306573848823464744017015155365814451490887663045743887570146737142089320780395844582963825136652075291009871744890523318143400810254667852475801934128316152222802358700739879633309371491917730444609384180905356689449014031475702847134555522025045221589292628841180530068052127839210620288902774008168336660965627715286025733389984486859264625521955466517526293689136369660711454825449561302028838909706481839343246601703202140069472332452322189767269173108462616579794604182099742427376801620073072818362646435985064793954729491499909991229412121634334957056917605205993914763893489938999917897017106571880867460601720242637946287676625506064989176247080541288939900398761451297304611930382603305437096359539559285500868904869375096158283951180421777753882048094557228422896107508922120799623758112142011000603186135144378629066362627208165084121604737911997371618905334766339009523003881432557134810237094377351456254749133201399345779174837675567467951187943184386831312075622343236692005454533407193290529885943491146161353316975765373522496611183857975052602028417628815898705606444102988358721088637249179514547780395530865606332354740395115814208136094342648731178499123300005724941905311075722052713648664771382943307234376220659951747873271789799350556958059529610635972167851611699642045862701042428960971064048622650934336623452854959511749626680984901226784256229609956694063855646282409348121808376591707637902432153196115464503202646552083719632377354124807433088482313805695628082554130721361043638157806021064980644787498622136309687145575537220688131977788721997767373461151378037914663899722584546323737841023262054786819091919616857791408020615622641052961449454282363400279373231833121286352846151364727940152186006380465202801458523056735383829794286565829728895703103970329023407474460467295147439736475765274849475738592137229955181684619250013302707329068123144685046897817848269657440918073953999778873628621514702553336593157526927301735005198728130036537746268347907062538146251103254183810419078513375392427545243107295971112559668899652731183759612277284524518000015924119576898186562555122658349427818974937113837583603941508597061793222503944518745180340146792872904725785019067907767112101097992517037769313272660066006178143463985098593998736065224836383544215455906851514982852710570435660846309596154303121878458640858599000009028893567468414992901199367300225329432964567770927325875655049440736220208070090305451660179240879362113852171788857846763270019951396649535087583736080244941836182153858536847404363090051767876175268162059374653039344201537125831751369745651371020150108651297533473152666379861727909870625448735255535397488559075110446703287109019025874926250922195142772030741257962490952742996154998896202807003760117966471743436842580750779046455619755927616255665579276914703425073006769057321197678023401573846722855817053661476366263155742371643631179544025149279373667008063268120165597229273613890858621943139818150543153007380665829080328156481740253176159879506622210877172442237562352135961153125058178394911883435281844550840128035306669174867326764602259562087634037028086704416203897077262847131178640190006202901351329144030619194162247305821208731857208229779868690918724895491843574903802438060749180060379090759343825374421478758315852024565210524000858034879180740645829515302239227054045627352632707276591806403785412354871537730300518753679170518796761044359942622544029780219609091179958262741043353221757413886948416990976976179743323225926918334461050130471872400948270309515934491142751737877815510660188732006830294652613840357909764428536304413904920205442137135270875849776123567842534020060109401030207226495003576460406210704072160441073564912911054450876844377297295313112363626450737170651993753188531925293110771100125148070672061690667103627941288658857506555434573406430318442891290252707240218348088272921491317217778878500653266496515164963807481889355323284524008115420283672507702734537011849393716189497192270116737816772748213736829088471732304856090217154465371613591017722772155766479887113328594089550400514706885711057549708108261555576772605472509942121428376334588358659164298171801808502146143294856660062175487509354218160403551892369070222660300026956177938804289598686293461221245909826589037046683758798036907106878110853335089594248102245699958403388472625006272453058053884549847089857123588938261901572944321163702638967667739866757924885552111875246369923507671352777925324160732142616907731022967954028584891975523056547560131442458097857712731029653788814944878349292004802257943303954926953476605163936816364688141726434474927911268792067648887627912431299718346633462176147619344251086962350711470277627156756094711390836834163115581867943459459257485759472330483422590665016878579558321453890816964957920811772119091927952713862889233261120154091456967935670642022113039267959652315488748061875267055312163525357185324812777722182197558793556986729674041634409397220155860266957854914112656078432300804274168466801938957345699179561532050626229850328549447165805897072915103678139106491912428622892491234170792955882290221485852144329393704811787712045663553852430199418897924916237646348261626740040762135015553793565327053725423662975674545538345657279870941138661164426278859925711783585631208214428238550083912733750174930994382504159268406314297942855105805004064960411146440359611679559782798573809911768754316461090982035011190337777625455587484154858257387763569524415785424343775515815188940645198399754715944208040757544160796039819179039328367167403516596173767866390561674535912168969234101044852746147095104442661167004318251544254999958170107857348151380196784744456936026144951389848042504737303957155772011546104730323906335093755089520476112141520225690478687307151085988248508872990014878815326274154919327491014770028733160256569258643903617834744658143329191149886181125194069614045249234383477039690287899725908059702963556975179913288651500218822976528256892355027866722575125019440739183388033711664992654835537239214974482650462146503314881526495285862437989043501798388163843802833583329545497343807352867762996517567928825197432134883179403731710389347783310538223665982950082856329676383213707594455411696391691284042035182731328284631436283355056881387307055310078310896499755291127801812072493481259508723453336454384147357104589937891066034042448973022690817493908254571812153923206717655122443759040860368100234655061303342482765224344267547879694514768676368001908112897799998219036937505766626182158705932539156448250227653462518944999655153608735464926111035126959470614204336394360645484867547135165708428663535749838690736892895591954420852184078460586705150769836463713415790206049037227784339382155397993567192214693846908520838107209526845581425450162434994397180149407037792858982510860904468522458833061198794168297282891723033434583177132763487151880941851297114039168120087861343633147180879450986161434730136405164836954187486915559778662288082723349368830157767857486080499198724961207434453944287825280941393151649465474168227674306728811931922795985080792668459014707590434573569968045296027631652012456299005390450904629275790482776638106080494756409001745091279644642994065179970038287301503615394517690890017893500328053449810951563021335135397711747279018079415453618588688119167715768590859863490213744636485829688363281724792078364993588941262193369457254361361890785779564176404422349637562313418449825312402062729971423381897006069941910324515301778470592830827811770363289261152670203770882418730988630000627044170250582256893586743356824499035169519283427144964591700471666251931220282671784316482824462969245974489947559830097760236630925062310322782452724023253601373984326115323515662452052684497596187260181775372285570530939339220094804913152221801361543349171825186339777805064349546086038907526573223778566802824287346732887502573109412278211409458697583152931082605044951985629607090764718213255924343625675322326045623420641204702558900292201587204484290471575397611652455830968314798774080494195577419253721891744924185761298550789585783505608499106837982761967991548865680482155058304139368275484894200743540195893122838518196376315541772801001974036099660454268873101447649364521601983374253628150277685782223600856356023770346214798529541249138735482072152721850593876021058517292716515637830096010837804185495860958035097667822493834187700243189995997117738957733715356040996376295492669315714219182111853756090866583967363078223211805550707654310794352683364543156944434109096832341695237605148922409635225098321305071901936243517209601638618113394245648255378955808298858225629670070970736112682447533646010784048954194230839996465720587811805923950823388639228939054980490466867783514128227688438718482331790581684712483219385492595283392750958169606530136378850752067097347090216499111842782424933523449114031839161638486111689784187303153394715394187536866451829541726920111565792451720517406870494098722494901549837053604327235140934507321931295044060607081655226835185446339660391869690473588385668755614306969898879726729661061633491330726233060705362737033149485624306559537140725765171568623695988918905706865456466665458100372369740159168518076267753541162936133033244693762368073674471397047935225626062690271432635537251700945440283749595865004492174367509185367255955762204479925002539923610253365299475023045404090941818765579206511122847790191451764776747903317512288120177050559225682319503376066764019383475030743920160496630275642511225668215063343324671947732967382560251168651363011609744145022635627002580270244692680378039822340439679529891348896488129695650689684437217361698123531842607955479357872059802169647659849582135605132435463472612057103518310656698356611622168866828598163290143346757789239466906692393809061219381419038156977423429501043046774400834485379485089981034411802786258765076107572807182934679157994213442334326868859374811059840450715140251196143380860509201409315296362353758853952343798066050785193513008000234380948771949366310982503096032346014608050016283781947806259264826920185006064381658723338358569847961424929808956605379372568266492892840816657034778694693757273649987137801314612662911596268053022375508366964177434929910875492515555186826623831923959940177713490900407941053552661735413676598409024451229864058210772000733069549271152922087625480411564634004208365680219935723841460740614331692680423431050974716224138542507371803767957235592973900217864256426721740590072277305828471523689868331441696140967774105603082276575647655734268352606644733433222293731147796464610531079078349350159755025284615988076760543489261318746087048884800792050015211184310851700763038757389391707458044803995125039904608992308261565815967777440477875826738070868434867968851031816622002747318628100467193311867276731265850768467337149145030513836634950761814455020532341126611995579717660753947125017405824308250153727708462397090878182156665720522312826683796683782779924995982461455404305195901192064275650368585579634883226097879969656765616199664469544316736501593095806037516634914824898035105486311253683382274054774095399981538636807522469243028749560037831149130733536682344829956514100656417694339888927123912892766475402425647613226276967547204657001063765424579683316143964328129573481719724043101204895696029143361068509960964753256180994124098542631880656869086391253074298409296917275774500743245695975972951147357197119827634927449117770797088476793486267446155503687323165532527533894426393755625295660109350586435924969532150300633717503009996055139391612489660103056546407613988302188641187192151177469767949967736663756713183617489863876479858763297764822971746884615244360896286680904540225189388680224405632784973717790465356380507794131748483701796592509161039551201910874446892303453016560997773859846632494999526232274721801788458036183133857906330830083670872339848528416452596341940726672041505803428666938033712214525857754996124356184599250927911705088791052858609623828401499870319738844037052918258169248715497677320337568557420579104516264222510295623569959054421241718248725816876587464732101473768271338487121809350611166854900965242554832862397427004565209909390212078816725058372566962214183435360143661264419237103821463499099484648844141838018676137834529524937472018689872081828604171968566535917273754953049016487850042888337762323225602367509223323422164476665456100995478595277845732981993340213574185180281480280606052277926245320570503409402892084087142098900019913913741477483661164721649360210127471295447787152911215688575667134064062935902578866484910735865326450944379911217918187289710323762126163146844739968755451592476756357655515885953606732878778952377936255298119709391406632659943424670421307365030080364644574960504306385660707766942374601995662023209276358938499509070904090203394538122488533266665148968475896262799396509285856732523634031865787912562898712917237433792291758395517249101075322645913906754566844352550351756432929627226122255937141113374812582173425062464073814715792496669218728984402593000380598243102445862700673300044668370362248660657341538327239012564664749120012420776317505624159884594363480032268764125823567341035567235661732742324520472899414994088008882727658428773208636115958371269353233092014834235399205039950192537339772301759277589214731081913702203457897055155415536406595723385043280811197489441300483779383084796579399105366048588248059884601530809287084415488920561610910368279016051901954237821887489148305563418839098859857995744750161294565541243241486259183549215489198179611346624060210511821017492512918506321506220996287508004038914140650357471255385007050016665089420723128462938508393244387718329621613716355257871638870449479490844110358762286458524042797076895919665781611838105888315619389756376152549846204224465527162058664710745081525995229531838700322784414770399492536407953470445369234466610762466020331033483494020370485076296136932918881039905302807387169501861084958036712811456747527682611638025760251871793799716754153464836140345026951456261431821548665226918268055159331027000658976003198316194738881394567847084561100830010332817801034268043015150550370195457585094282135182269585478809890330773002348981462016499949873883676037116436991854403781246495688826425596772737581360396424766908821782082877344926849997707625709237924676704030949689262832708696372120239843623135005513040393550369768416559166327348697072154910836533942570007389690604126452813472656258695656401387344005282305720312617678959748979972367252135652059463962639948068613591819868620110670164541933334412128654035494515441250216738478927723920094606132359089609582430009270376392634455165676533674885721484454508508020799362609869081044173060176269696172949549797384550532357075299309796614602573283961932256063804800066484014631630606478508924951648754624418192050898451190350145449969634407874396578251676766082857117067543941890010946031747329535827352217308373354126678114270356381830465110460454304156062803390892198308462251422220586098487739793749219910618575426715108087517567734448425722402455685248201056265740196824883121658813619196799272280934511152551426024113605549577860796215971204075246914343342585482220870152955094667307089944111057484875121148813979630026983181841772949392453966086797929327553272886928909879121785179647101973074387516461735200378191230935215746025222009880130503669842498779070543344018257008744804107485506393837314475640472492728302841724182334171938900353720372681614686643320095044193771239782128678843522301580060029727884155541445526345739304384741095794473936875086853332167603728071397146602152432208860180169564670954649373611234310897391340334025854852361633300708673891211652675899364339307386784743426957030675126252141870826097692075307457646181851092050567882635124913403030333875457458904090834014951045384365925156042882557097173770148998096715488561671459665004901105575219029337294466868020160482727477873582302274437180083039952153423672655367414376974472517585944958406795941673629269695403264793008242596035656767299710234522590942361397197187687920463003308500734066550414488421196580251789692297829262852420291898444325698191425680677223876904192348730795746257055052981680053700531789077779383482194176870144880740440427666153391391973603787942229743437868419024971443990015408620671822649581767819557394052992467971793415015553521500881151944564138702342112271780926101058900860495331151715238883575850835358202994169205655804844907981260102198154494793642047609553951017919205660537001700786363023835229012471268690769384701839013382954806730958007547785945381159945308327229013926590601834075847301679438950998212726404031087654756439968653226633107858391137653107001737632490252265530236212505952824296641561272161936481381497911177537238924113179447186463181453686137221232933886400910387817022136631423195545258342977401328167432791271610673370673909433007571791978505940572773180938699721984421467062698066237197205947188745965028319181690523614641791709216305148870576671430384049415577809003295015697095575344025578799000199991146336940183235463058427294795571657717037832233290949250418375085567383047671216070601239050295282366751993972435683980875854353669701233452935117742922324222296279576270364290360413677403674817656533592318898428483297258200325085943249828831271708324358973937004551727497877474576449054376419017941280918069218888203148752534068666544105926221570254421942342678225093397613448584149435733884794363085626798755534984292309123027473489349956267743278793567916907100508878030746399819599265431754671045689140477923968200580705133196487042692802666785443119970518080428133101547743885624764160838225419612565562822068142585592477211386160686625599627989314587284513731022562936006522151196816174386523018942907257189936291701176960791304165088928432234811779426329012479321307588390372751632267237129769717111202926708518563807857085717245202465975768175149659673927083668145759042662190697293420508223451429252809398914428884686675744890018787346675137925063393172883375335401990903776778846838725728828682582985605444958280814283965296939848699352736059303610715637560544540795986931733922048557470403171340165190753856559620847383105095999396383173566067892487055549128868621390570763801981730041870086257663016478607798972507822813359253822703411800364951023043283315320580833634829133683932742763095407569473239107434959522925637524360456339516988370454606627098253815809760735672512240957520640103296984645225332844976817245375798050577029764363663633024497052428522156636825997205900306711856455115039638077316786707816868315749246402474665474503559926494799552748950032540799702182733307605314708733111846088819379526660824630427270600872221378592920883716544551611493145743214420166928977690644298799090134013793911251975254506291539101545882277083419579720559111621718350852925074586812220278703883927527514085852418953407934409538255420829253009900426271494711451038828225369679940657964103723161374337999371632379968587998334616512024176070831224097080343680596077727178416763054692837332933575451530134133581518413583265583021737429374847820658723276381023158665007432436108480783762620718680354056508528839553152837372862993329514483342190472791133910807565735691526705151822824087837186848706507843647646351764413059775154517738401919226931571284463404585659811175839582805434830838721792053628338799013746265169422297275312490295177902436378306211976384512639991551047440713461198103982642877027790211835996931982362218224723358353681241034597094155220506878878122468621062309881389223745651173361975858015123314897113031090498258268876534863769769644213356048353692011765341132565285830384649215478786246906256057408271652233499123427823782726574090224720142762630502042709508070915829175166963989850256506572871180457696282528019233610906072838784732327680144741505172617402684828277111326412141652903234168623308227374232682970910417588382090602025562008137909894334159242176164724325474602461555358710327618347748352642571149699691925225728941949854013015864845474384576072593823656278226427851886039173154721440916727397461443978791865308051722879070155904028396090445827315810931375427455530241199677423618851484279783637599234471113513138141173225417221721465573798844473980436697941799811526154820623992596762347807465709908424094819758808084589361231250083201805910957146892831358769777698953150630397916358788695178330312044707983622857945048660497702607690969350737976195121778379096617535595894249011979604639147249161927755748772869244337635893849943996923833421232816664996947451460211391903293805288711306509341528644598608874118758719829324707345322236942936656584845383327540441622662057261346759483219219191557228060864290003907652155950167141981214749770595157766753217579193730362299213946348607465993948034592918495714480546096593495831860707554213090829496338346874731522637880279397201386112271271933236109024331269327962277042683302265645367532442541586539959711304560384673487219430712448940597192208576141325732232165592651412888402077367604454319126053635734730290381777708277485193796924247349533785467389397181129150558910513789302121981516634746015451502806404285136814557821133216012653299284503512552254255459041058532815587337663530959904923860320145149610957190381867133839845367887452208582259478369810524011819623578703672435234318385781769824504856453017211447731900803969006911416802994506326943804306028515046052595147048448457044052113502643884691946280460202759965982893626870477952794125791762102029691775982870699185674525349053663413882638105033033124053075805415622848228657611543916435077283849135526373871585096044365509918143871834589370263253450216468844827914664874768323483087589095294345112286390104871091233669738464545752673513336513941743134577277044087743607025285976135474717078369444226621615667657440078869325117051577993838097816489962594075381006365384774631394326120027899311992039221821721360256964628187390004601136495582976469924121633383385397061890646265431852701085659699136247973115917168492658908968472880802483183838948505196127392796412741332307570380746133339875931189917320665017707779338726330005318326981988661472369799177356734623599715630177595945943031284932311627846162541170582568078060870421339221432441000084441917980769724581846378748593286639426342449594527170195667193058543847429203695169107168876125477150216587229387137228801385383514430881878896440091927786197028443813624564288245268921505803841681671494265249855964007178557904494898150887404324380759486135902708948003024254614010189877977367902798565000560817178704319794416620108137272138136759560828624797997008990255940766256965012491873167133880314963290643827257157526442781172343062375429040476173226277176487312900069544250175486476898712953480865872410554468179728889835754947106253962619572617667515839193527225018483137298531105214717150760415125745981723915692391916118114974682592376277242804870015021333128193550548225821375117434011861113408501119060824178207881030250082145686827017412293817034702071092185323202942637247525791622813149419443118753703529978084091071166344193380833026608303729254847241130507118389138866237682305945123580964794460076044658670635669046863582998888665804499849109324279897137333341457818359694283553972054431783811304902066312054294556690457608674647803884324178513119382347253837239225035494594207376818340118608357083432349777802515753901290499487526124463445450442793886520393790148335363652428909840211036490167416769292349888264438948881618960922172276363863876620619470815602823970490345932364461418377129638517190727675944621487050423893929042955292283958388849378629468680618979450279481556850805683415177072610055086911942945035740242999606948267405379372899404893506446896141597466778838024811251214339280193756846466712435362867126570738717097868514766232479821399398692010583637976574485563505543576915711524754112505453514413450035644577704889997335652163589310181086102255877236122238100115350947426840566589265773256884940254319179011006262969204231728063893911718579196739525014186136666908689705808933174506752465370702861309001204960350917042353134044514077675601075609806063895312989687615522709706094073960492272688779532307883939424000157015790697141700663812310602897623622017491760547209634236421493393136825506824451475117500446003367067140643759749606970177808111359727087696839901274565523213689938618463620262483938511800664171198852191653782632681857837323522577237588383011157286811944310444982848367690151759217837854387717512094639106478374545553919280614537258214708100476847617895891123032773437411418157833986261334023908413507162962004818994719547738970756748184902973434268682129697001695445462886189901778581818029607117941545258979462868393427899285087372350755510435384436147741045525660444333558175465493536853079189637866419122789125508364736320846822674150613138346181529046264098836741651546786331477860547625928625389457219859623805598593979942546060779687184470420449823712323634120803567969477085680819901417962954070034294738654502201571893446553814563259795106153269982038513062858718869148889510405063508629978675969990174907826460572128864035063726526527653610366165005991530364515764849662126825830969227869582425740543279556469707619624063220092608828957411526860901200266335493926555140512275378747833470963919479173068753106074439025405611012939866987403339882718399632013510019989942830986015555515321237833677342042876197694755214274869328829502462849904147387092422204393824012246596357936325817542595992612450588886199146526180344784021655129440858791057239414687147261173643757156334596097852539865835343372859089392159265864047172496572716467251660889690501665177742225814532045726003882931209688320099515334215277477952723048068052789463727176902678903913522996285840982503935951742746582729288517017225390410572527288796710178366191322753109957621222780891942119492447733146625108206865276523304318516073526429884091196612421756947335154668498729221758377136542525786829520047096196531561799576405076774232534125690842773739287342725272370106432077303977174423981451585227443196077686047853469454387529713827639002537091575631375099249947666569541926165743139191649786018398082604711489464338811794634800746674948358282919030657154059604450166115368004097525207532044301366838496432522367139854916355053725836393836896178545433263085117672109134641160726536295847062907537443566743425607971766936241894773368031290936490180634407312058134534868702902325645452270843047584376036844617585952154793971617603503291771235054174642343490958746260188461613296407385706809076451289120645042838072269584821973984591437098774725419185734148031802204650514241438636432072356051435517569208086787483734231309436624535698095250009567221793787210815194664161611666749012349572964919178604134762128384903482938404675898177686230019989888132048257966158525336223906870490420408135052843929340420108453713079289578485903169047299849297064487704864310391873701429865606550392851598494902837570506787768321664203696404623988974486593166298635279193214312234487602902638539964789306357420962158052070569763378015962971214012360495188732168824846440412918356755911271812402184219501176054113933898432433504096684804438768682837316774924936556797518014950666434215587840590212100051637306149089719111390015067134192650525524367294705041723963853628678791031667042726726191168322150348615523732248011479056664023564994460354100061130505788769855564861271113873404674193740432368262570608542582786460659852825638388314220558731270416427877771780236591442250327859849907951560478677752896594679985872571142219318581614601209652530054581383137903180792140483611895647074290323184550337586053486216035671800060623852172458443601373927043916559039233769979493445105328303758057010040460382589132463696615222157647710345255612609612442871830264624032196518144923717860439958067377304480663793765138745664596039415135311641079951510532116727063584815966900839098343056756298425427394961536213030853296615269948490854246733125545452646975247059082903755757278553011301255474200761630780582862033677347112841243255806483978771835109094575368567867675471678211780594109971478680274842532537338498160497711087324303364160273559506760337583937479545601931523939820026038956064381709469761605810025853151960313011907099273837502632636208505859446604606848114672807016149187842841065246988711916252125269827851557604438233185523946595552675482505199835482209897984377551785099035851940522724529149461480159392665094226006448281638094139447418696492781966144576583544419103737374529217257094063153195950313669423744816003326473973707554166183198388151091059580599357355391433680994363036653332091055500127574144671677876589026863934756414386340821800800094091296923012687364060502910584476996981505944338438301272975981995451576479746361060745084620391520782409359254804466919614062998548295364305180944772565518611705416310756090348901097675386432997524337408219286234645172860763608017426160384130485839523098283802885970159086530061508011289119122847126697408552774224388378244333690210979693415130133757144426598095095964878359220314612216608160376434446334679011648342711587020000358368434860989071398380526796194421618293059908474309931843115434096634511901039154263426210697159051512041717729026173319597897892487538996238678692164059652681782088874306793881328033381549082121219219262287986851402991557894357083282266064869408471703041079419153980691554014963757191574966085371101554411703209637001715766380818285421035420236521494460492846993700095531982183134621004018960201289698652277272800787433704319520590689409508017123109945445023009529850050706917746203057835156306315561182495112804510993600834237818295379479062901860295561826961184052923662566811597593495150920316396652450347774947135304132411010972574940193053544965810914008107252732792902833878004994850836661203331539532378381039974659878242398478845658575190967359909858605476279589750078662549811239379223732656831396975025909217015207881184105539676143711567155461177242251598511842879762726451016659890001612463180192898839908119652515511837100115860373749288639406170515873631266367838635357016384496243376432565119015929255514180100156040714593569909804844026892320459594978046946788818810512402247594766633930141355602814805187341189171455119488895534550612117897725041571891997931899646138596567528506750219613718358803791782116786411308203294150566263094678229462357911022005561975736242003114139347899111103204476023130657516863223892885773976865054568541329234145759934815689417257713110145909459767032922610158529512325015270111537999009176618728826642455032025238310290550785564814898022026895355966013910915544346424903571037732311883604071523277838495673644284003645470791724649467125140814402386987387840078132994944913539717371533548646382071003082012865282547331671510283086228238688960517748255838708506830523308765611622039172660086212453156128530349076338805411870224391981916052121445399011231011606175453617771982659637582590946143466781325019588377019236065282375128154070491096827552769772127600250761453910148881685708474076015322147491488573634597494827650275646656286608955931121714692680341648427388039704367467597496393694740142364179309829321878644830588969842069252580282817278912482954605437752723384585539660212710251655436041399306089666268427957948404182393476124393444147160564248778503236418486893188602173494830588364628834625454019903950260321844151824189514487804774083504355372371385825040938895301817170304064805149367509266963746600006734449278146959282171544143799231931133340002126442793210208008213918906802125018894335984935892517526409495456741409069762460667424426447342152463863185348755015816476306201851993942129182356950244787056870239665207787041116346938960498002110822945680374349580884113467075438193294113597441069193088343510159180517916831793940524500204939401939272569276026174922567791275798311356871121318252534639478108311448800047143107041279579035824155158447675548110122320110082780775632300163792575759541325072233431549111436659169196721887959989021932466770833472639636165001764000891601349126111146924383386847117913606030555907583992669156746320184582585545303973493030695522563269817589925517858247594764140848167956240783720740250427964466609566909966153913611290113106865480398868142893396282342961985512859885056737548580650226542043606555982674367904881061344622277565309539093488191187212890413864183528154565323833116257549584608988497849754138971578163903572056300094413854513357959587850354145561082908298988735075737308196157199845820663052707433822475713493528126370913757843557958529468105882204659989572491198542409334599364253481251874303799112299493969611217519454366904791113558366445181173456505840830719852558165040318460992876968885206927192386026226429290289220919281131687631238018756605617863472798206187074916792317414745800425631255510888948479747990140348526869627061654772058134139168843161204777806928238877454670650492925601558540871079773765725496854497674372647400924326613947924772937159713916661460402401504490089039778304027856759655509755606767435665615383258905804039150409290421769620901462613122807720749299348282262502008703965724078420603729486984280491334689486045656260838769004270731477220714100030471022618828464239506874959829703719306572035652216226657656072619716539898560297377122029598294240838199940596116445936422712795742457841801691266119694352298747808251158972558644613765462989155145963686976363903798399273697513399032819700914612344283368775970081618808115347907003078390433452443425372136287853825935612033895154345326036361064405035988197883628410446726677496011921313598108930846096897313564112059927402775145804788098154721354904627455844926674734116875844290841757600989222902634324525546853532435750203779622907654744777228697499354095475453398816700074061552758296987911440616256330625977085247530886826414917122088515442180798814886798057943760137331269060672645613047612861788914609945016401278565301115327843645357880538675311640858493589002498793665748276110684990853223923455033535227285663112257990615924163651523235850543900892457789344899139936439051155642833615326912131696996807632638423150320363311631238962440646069395872310497966294418846512255346787843791377631044252220098129072907938420246473569205730143796264758353904527006251697782530439482960036240832231707567530109223615720911458170596891742289637746777387590050889937293099360865808256462509346498043921881607973100452601124654272117250002460303856627910461725319013212308438911562785482712026611134944928558619932294479276486058617651087538335203968236309743972673631121959570206817352440688948880505245547957872752441779608075756650772301112232753331297493397043284386332351051036791986088452327324626238541975335596198743244163844172407179910251561797298914728021289570371634816123092839808279373862362241135470952282267915540306439501308828668995469266015024116522739162793921771417598172616652294573838165601646407655446502861087497357825375891497803302589990676891328784804461816549694516872018035541201765229795082650873091155661416101726896347702049777416243941427323960441919828039330292535874797148233097009556417368702569955894977385070248034424915874359569182150037177758120311069546714341250648653871278788477479527936383089936307396977032575408575274989384151461479068770349218705778209026496460066124491023889680744939367082653348656355696896346571523446431906499976254301131152217624610760956082749482690803364539068709323080475114911211380056532153506717968515032347643455448234050140477727895462331470626554636230265028877905290699460024706071058534592243483571714585010610825854656198436279792024702210134259191925672780028054879728136080291055740743195007033348099434428151872248473427536427529042837082709336679282884479554815825321170030084075446976740846530751214952436498043119273789790408476199781458118064146545992175331761547058464927868578858192419563418409671535990237717943455652382899233449824547934707461916169010014167930598969762388054479676666161970735915599267498543639676693552430365454158772827066495849668398170038855556697262056501742872914445640146835607059011683748786729071226134402793000783094048025351515126538905175708473393397594573452684333145291565289301568197826491263732668371669415685480833714711202036454828931603467225514470823199839238008686647785472580883028098779148999468441090919942150841439539754994814937205876755679986890814593604159441615209740116861241651634802866195675307731640210732782587203654041871558858141391549408744097458694277512458383584123704101471010103673266162121850696569609992399311139313963285999433105538676900973623430648295939988121558012406236103517666438684089861621155520948644191843701881927564999862715195128563845984339400453668579778362283536535304970688392084490249738906691276514482883116636640837102346767880049779985704206622066285827167845080848699936766050597896696164483540353863456393756648106206047444223017920463545793420497194745823745138316857275122413453517716277157123285675197390350157469691293935300851334800965301278642911314601471583414059219621712841708594763528153324344012803820625560875475205937502692074845285173892590265095803902760546611796067098674254970045975112497532792856218860867211560343107161221061182336353226913430903931133740331461129039181830864000161103059789535363768319371512892904066859249266335721963002658896128856462441972571168716338924702309952175036676251078972985719834405275441508102198628997480131872814307026654885768152152528035091354187971519453619978729338969337698771263082138759725862963309218602145677621100576968520700995482108751197840711679990348717761844990046041012612402788107085228796567634449308580513953541345694292603990943224088632343878689743558534617691948384138226861775864690258669719461646000302459627973733746925837011095188961722627814147002895391497432202968300507976276419226984235241917565894281734082719803952723886106333349217987018475781260666954859133609350701255408678171069353782798343215168320136064814635472417329127470581902117869374356097501518029055826908510437015111268656908811385765296898807790505701677723112889055684496290729019921726484612841228488318733912676337553461217592691671418783808002207180166287899447138458972575258719373701554102676823493127705959133693235699882022603360194883723496077987544341121977259186211662397859229040407791077790966955036103859550720859017843685694228673130926505581187989751979425768089505651397471447073672988867559397552222425418480654103222924781955577948570616968702978490650276038352881933841971568576755075836251459909767974988884682841551476126016945228929153107673461387766132321277060073384529443156492745879180691652015860189604438645459646449822387951590335689399307002699284888967735659203360884542730360147540450190706105852947128761739778356522946261008604954193846167812800989004762128566844730446528801733193212893021832737313010712936688007002374492777630937758266132081301917310077748456569324658222290074621212855252228722936810169476751889745697303796025187604639665234911130312464697104284180734149797881437967234629447113976304643810286597994577894094254932411467701637342631138585558492976645818692357656035957014071539997136837210932759815033350594312885222314382331853075181045312629571099534636598065712919361056079649783950178932579993882258355350150003303473816354364343109047108489732280445866504061398208578307010773463922532559691255492251404145026696974537421814867349283186525709102377377127759655774347613272203427605978702270483606891321783533713941581192401573868446057250458954551183589117774093771557698450428159778481604903431080015184925606831202120860585318692889129306952233984286404842232257704091853466012687338883727867306557812683498127315286858795375197160570806592845883412627504931638058188865903422361087615759831553159246539840190620896921777267889465773451855206510047520762392191156858352293660538882897699411331809956979924466155320680507159544965708673404440120286042209983841101302472904373191497043474831045600607087834263737257849239109505951137741070138786659559791244340330575298209003701412565032387297685246236303455213467498795265347753019020907737291559685217651824534968291324485001843208769624979883090588512666067313397145777663258118126758158208922386611649733004073048652353855535569976136912325111078474248432748758497813136490979448203945616618882357230531488816452106503146502974936970960052748847190452522910201047298034119096734368666143002711830734928039371177604375487752981167314529527513855589741436954059297832329798935446251843324215391402721317284650412558547781214409566334516296889898250794037857662485150434465794432591843968894767775623114408724228913038694136757345833899354038636641661084967164255510804340005329163973730784880158289563547422392102458641117787873967707413783490561552291849251693581225391977841680382417986810916755141096594623622551569977520550903085658956526478187324032672468868060918323615057298767175066075316583474725928004085846931531430305920195726181465394061500311150654852766168567634972345210042070683347561914828180100562506098175237153795233994258319346228297614174737770741652121853377469449528388388466396347267517443875951414823287658525765065126184429808624811882174839745680759087740744702140967871077074380484124844844759076072567802853270111032030067636535143518465001571917287306972682602874020571655253595680308436841273786616150979573774688944767187627780508012028515177556726265096465625931287489112112599049820080571760427668475675872402319838759687840359888409536002273253800201132588482556730897944107803913583638085507486335389607299981717552770837988006676174750860757121830857054731528875660513955252141894944746963955618073143434070161375566788178289888089067583595998780218654741992747920057656793090667702659631430882923384904115217386956485440902113611323895503201897245407848066386153859864753834992595801044255324745875371389993084281531726357857156948301901287430782780981566864531416720376205892400880660685033967459083455494225956744268813681696540692323646077982328532297144258495106728124047771004621307990985047157430374746239949141845953495370589972895826143402188625116966124348850431226711191982764211782142902903637421474517950741447073821947409528808950101665888095418009026991958916814950399917973880978293667494689746044376077939356855254758745546449267920509348357571803242595727717526477310048805713452507186427572064664445523826782202485529046073009398241189177761909559066088162038444004222164239055835838358687794546058726400843603488304719635014663319332103958472046427368580460717974051426151301282032430513043821546132484802820814620111263218689139423743582650992089651809948478650897222507368839061207043393552975748018551408163637710289991643760052068008675115482987098502344452773083403147944195144977324688981485777460060094783905405638431020956070263482189745246807911421848590297218980712850261540107708122279915333707681736269826911257430676291713007090774671470217756440444023159530371995908243934097575954766142855736018012653125415948671054785338980418912583614690078741042467921510694094295355151614636071078712745863590890791324852220653447146205412641056139533438229524675352134315777731377753809093931446865212706208295109515137224446275671328142974941543790341613969446323642705295929624922483301309581781643073492808466505326788956979052451447419818522668666915835703046991461822051379229818437939982937509099425883333533877062687042208929667253359617001921198225651554188417528902563607475383815309229922572905223821501202655013869517760059326209012167692311036425306113405882622118287929687627378313526441086905207844882797487213275330184064001718282086479260212328941282442919098500104639004329533896793206220875480271600784628369280725641036222114934996850033555666600002954303090173828679633308497279711948187761132744439125125783726725863195519838211698131047962717833226461916348445274489023471150841888964866762027321469091626087477270434660452036526939946977547468010257774144058143755218623915640506800817845384143638581395103452638713006152765925903361171218820224115299211577458859598080525056404979266441805621809509252732337142019081094826294938526689764329835347053252285775878280178191419133661340647003289776510311449435434262110691949088278740631338609869589015775342834439112536063946364034875417652671593149642626046406273520980380477656516273446176773545541506669717575723470144517903012569491911334761655768829707219858675208588009688048914973236089562923004028076430141324162815968619744431997125745764726667623624891152835918397052587148555908934767810859122165413303602323688183609844113057464740238067411201353861049640612907459980928965869011179233017995569180436948614629532666898481072454841675777298240855924834090814905072321965146832463814947705210559873820695167083837692447985855065840358462894151112187585989286540115083624914522610943915094573876706075734627353589054242266386668175332048158845355959475957739339984249896146904993481567780204782162981675516897950416012665803086148232794917935902473759709336614558628951849013916695423723599438385284476179172090676390450325484443936604768573013901566018370979790290238563652934742013423106566728514516944994508921739707231059038051161738230844480666434700978583957272761506499186437676462090966910412927120462972660856711737274981686918156394637247134006904830514877853949100246205743995934022073665008340160508604110782169110952718213435014048522660936170651090426830295117967434949844282545058107462928931688108179812312336095658662331872107113045369704130874009070805993056451705031407729808208223464403324734637294855177114863146678827421011229420629752951298120691901288387465062906819715893581493916680046002876733463052484211371122218103371660777220533977459861213114717724981063675836838943693751627974049204010981563740344865755251526762012954912272568878897497574300545214531162945658457619273443210545172574232564802202862557424727985392333074997380394412969010931774448836611771790942470350013753080686031302265950268517718487355646555956980623183347120715944043028489726310720180828567586240154706150770263832366150501242047963049065006785252089543130201590597320565273820393874035833051303412325223772828228616901953014431696264843513031013774601203609709028373854725315381675360837919537614186527836250602479038469853592883875835230301816842142704207499247371641943634598493397424007774607902560637288100011545892538205179931364875959942322549125739885087192429512045936108843946999701377686168896694985953574525037916061898584776844282404549656709933122254804927323970761726062717041295530547724711268727048909667175342687682541542582170575693208192289287713219076515804762258399462075895068516518783291530375057644846603467467643048895694245799880954735923078197777834276645702611057808963648980259932811185324904402685063455763318903982569227809603163730317101544930043217082418920742335475425521473190263186218715481862517283547524055936191459599047733993309782237356492113525003236614830026686179415988063958161786985440426873421326222335078782584474767266766798664570138868497562605011433503549814923619838395672499881167032197107524708351978556953210399665961795593882734450551696730548866502867317726008317504037356796893009244028503233668230760842749951308281055541031689985365608427827306017307426162307159184579369735970007466201487241093966664287788356323957084749985124594565062399891978273350669412766981560813420627208784043328949565107960072508589704719800854899026334806627502493677425920629367387870235345861396619038401909105840205893335604304237326502030649393238762206518385748998518438952237360631286202336664284178391893775821684390159276326754219512358898941775751013277938699352449339677451957732449906583721648757767653061736647808917053011995949827333726467707797403375766857716837151925738229881880759064037268946846210223797127934713554873202016481467508057935249151429167192596563593904844386563161242056024204291721111372646009141643007243390258778836878697405988179275141329970096431640161465643824736667906999044986257649336204924579302344392950092485189424496218498505454209312593568603743882533314695271127870454804304527358958011198986870058328994391655502232929895750628858143743983740163999359421880044083490883036931553179540074722984454024879461695885693280162803249840678879748879808295433420927902156419258351031017238393428666199645118220401875535120423896923850758956300286970181994168749697963645877752212755652036246679760013156496603381509240089296637749955112332428495520632428309686043912401709103343747244549575944354565717750017131495710447259093031209912201591800858853486565132977706354193901178057595987507174734771359663026749772342786567877623601462761534446235251053607410104093666594416735058367416365609134808294798353170675925407165414533906155254509135438891588317422871531304216024296599990677444640448587343393606845110923025931083593238600141834544541763505011456119887652715343518378634194093155486757690132074289243666846218973850800074076775900173136618996720130782123583235766312495602831501488254838735186803106278163930050181369337551613957007780816173833628376888632287778040700308784754180894961061108626152789416880045518313009203111890313654932376737222325211824870672804725446501015005433244128708307839410595169445555953198341234611549355254214489752722628234299639786903948653392891905825787864286857776011730085900807706962539393539995887433129222325621800579080914534160585952666814161307905922449082809015461532910476072899360695454232679460273550195700779925455942133793787180707267320344981897891823306585270877721184930352965552840419475613325725107487752730342217047457639826560067003145773818558143216134771768946306950451465484444839287122300056512459080030060160781536060246047854346029823514803822759319931540932529524148389628487288709754035935631794201828206761466962924095828162283571541967918301380949137630890767868399429508052733942845428775757965271366285993455953865308614094197688917577659397009464310355360743413401468255484568392178552350368695988630235371952372666991921208559755292802163120798457665246532245353787257476859828998618330850366280444805816465219581252972266544550994805728943621714429516572926833427842855792750254132988840012759666058553634096251439809133440747253485380610592017470880410589507669348875147937323850021074940127012258133049273472522292736684757639132134202427538954532499664473781732760123294550221291951421134533031643870481959245734045504388489097586243445336284998580487666638498938195643549950328304846068286206125289103356231405905979671678405388336014588886733614471798601822998925066205523896403384945537779010893182361272744180270963812356921366673234525355364992170018203922165831477201651872492561009998649986818211703350644909017330389740458619765984540433833810037171036840725869865630563212194561316298799258136027856713362799205688401795075169362482526062183107882430980387608221939551626322074051398158711712764266803269457122560636642746093135807298183484889966031382809969093647134093952980752556455255833842696362811998350157779200397394715345774404090557333588252478772519202785232640166297335052817762258455407891820686937830629851361294161248710767313999493943942489929044916990994233684886813528505919844161874015478700145151226661108577820741581263632296369081504734544631926601908813760026200881649830164554289166439920541440902653218889902144179463131664451562621548812884299098582955175428320526446954685206483580144559347790789127832872873125664586752399846646999897636280035460626729705815104464089240592269427500423957950235646376242065652908209758930104798074802304427470540244476279782254148726506495935027537192384083567864805285997993278132474183438568659580563068656739658271815529017886861405318835122153522211222606674750595995046120758323089955021819728862698224074813315808039327317301823769200471782413456992492702168484868856355155975982157953776550743484090385406547291155621616048958638093373641317001804894633507715177931858470991276099896784907105814505758392407377036936360028155245761856663492963710534435978670592950422003795221679719348717921418980617379160244693140076484669398904860665165127908838528046690003776889398427477553461937811173667754013748364012211886854029601237475406394868388522903942620459434981310968276982990297975819828338394447332144686568648668895976101099681077197000981574606847905056442587969022100520980791111613325500008692702869323909856959295971598845220497751994751660701848233435479479600551931406754913442994271038155149409734607181950561551164033100570125097001182634757904871322732836042426227227270329316258186523292661953677021868034278979688314479546827518210248276511640295061596322630515149284921837528929334330552303857943212643687139334720848572514660470989525712157131450303932947675341192166995946457234250899070661953092154968509177774637669183245238135615513405189695969651659043214266839365093934121527947269878436720283856485878924072031993815588012768721146001212970132319709553715702073094653282553735199431906873918669045279833544923162793625254355621937085831716468647052739795528952049286636370774885294799633641042309472314328839416072393128917701070216033095256977242706526058301879888076504315615650116591674978052817863505509201871208975610496055464830146964102841620214845050366046223282557179090112277255121801299253731330508532064930899757380866505010702484677067291847705959849334240158554668636653978935281526771406287368144546174101310051739953427100198294311888421664889645513058905777996076487977639974607841011697003416575469753244528194282674967090608155778730744381947901935533323112202482999786969142666271953408055009950702021515064075082148187474916273814023791254575337295222872511302979113502803132149895999118029431019395154242289414932562364391977166845270368922979609079022767590308082038920210613536187412640037336192668760453140503030702143849445948654161370488196871563130184928465850393819653794830104358729647722428981159337638764489066654894175201060915852387687203172202238254386706153747726232923198350297961287677751307559181287771891938695800448694046019877698329219173697684881655096013563116522377521830172813101148088084974315451957117278212929810353832338967007810877440130742146824784937927074468545313582170934470310902031525361800870315062251954341306279735221570063117214393547138736424247404057298295801084674569116423006915898205742891818861141015464554539960657558860983250769326368070401526883725891850727556071946413097408045258767765331070139488074276029394411463464467115081183810268211619247710257604051805545314250967261656062362543182673421309923734640368425373653618656912860744549875130556610742472837854084730238092581869524044714313189697259691399764113724207849364360468084244744870419049020482171441127231868438902880320759439005096027868453771561344745930313311407147530431604148030893245831934339793425207965977682505515283962003999751161278243309920046547443439413796846795038596434440562126708995571722714103805867230698142626299812302281315682872584468263945604525373561036769472284783534317443701206953004985260270914146625746113048885744239963643244991969268124529006334195108655350054497152638083652957828426421034132006987999197279408016138886299664630409471042931448516711851728840411107563637024909127644421025796538036329059383779205085178405583134958445817449323184368418512092164590933336250836439388317469856023470523969708943733340380084113791924607989200854447552359510335580598774389916420610799265161332123369834366367360926250133987916790013638099310723341717207696861939601382590943556696300322245512131161413369451558209007366252263655232959093007149768373143029656555658827414256666374179655649224510549769630556407273586993533517165230651168644899053315850035691908099772519303107161899342216942241032087968489690397985430803452890910517214385090668506002711582620651204280654498661087053480960393245472359776565220973969793978844347193498010025558422129229538789947712865342566220549697778250633031299540133521941669516387774205966847806106320880445285205015916449938494062888080207531607560124115247577791998381660478583703984019181867218831664552887938216304731554418411030546131085886874557478049925877469221561217600528459850348152707104135404075459966111732897924331210031902473570114306377230533289127395355548585613001439026863159500100287629921198593149534494046115083822310981770034670599518919235559582375090519770219088043187275432296759193899822891844975434147647335981628532337818488104530235125531153905914639098683820635474180294797166168560812283119699845185780513926351571408711982744774817555152296162660803395780454844942005578167951069840251538502353948479563909159057915800277732784560257955676916156940870095883127225732130647008838055395972010999248263412365417106824711204681995821812195305168284759320130536484631282113928119751013815342983220625348448932018747089800688618413602848097095940609086618994753242512311333638813108760658822450976910086891289373264107433811554149230607799527086279381138124687597751067044665921778843614776213689400674573257260215376415735874256491314731820870572612238324518271646529164570294639731765486755781082139912807948808740229937937901876316835256625997213575328163685404072339405932666718909771622989490724814246095438764524754790089682015618272131996788377791066321966945737657353527298834877395638923679075848928544111145874541168653456758466809148785480235406784796018909205758723000151657972092658601196692662905547588680301822308218953262404070538268289421796492108468366187395436959456430382010474882222905082171159511126954414673458161532045634637810313726141708324268707626823405290605496498120351003688156459290328159019766789873842454626034838334960706987705745273962737716923119703482910697750996986205779263619441490261107603159787533382886801555084257052724971208034879206321620576909543481631400430749324321458492298183010977121525260682426071546522257479906974100612260167930198976450094207938336643420467530253496868367362806839292024888334114252207089841611669201853573021623227206474478981530210052257210951866154985095240884673801875707514375440488731085984753449141918336095278045247533435914845277811881111567378450287875134709718407682694629157617742990186418605770486386105571270595801723546046019842818845584028892143684279260262924120988823581585096117302587950822448799649101450586785323224714425366295845347762495693827589512991942903899238866697979151278975576999576845214773127299507661684161318095303847225960731872311106058501694635110333971875058574141779131364936042206053776515458728304680442087292258743571863486308022413757435708606357312064990281486779423545736581990724927942822487051965817151331301563944705562869532702897427149616029953615560981184143182721812054462407397670537786228184690538822240993357185108986577219252185383186646260762616638766295812715646342288532947706453091835388141292738870450054331181082661700282957637987726500213222616319731789845240870102015051989332492011757056130982562720655523096243218906899496394845883680131181834868377372176505269783382487839962792502616160152496894330929885655399014577968277040655406288927232051279665176792982942140930178882441259746918234658821796792748735426963369214877898632517870715556450854141281691956266583468903330582859332979632087140384683274827889576926387278288728382000988430375711529680083333024328674581882579176332521612683327160697556687052238168937284766468838790066000942227650059517601974044925938497749539218472010678678702830605622189296033657303299758353015533904328700950022871618278064222743990492719976006947443610229125989914514413855048701928649182678087905516725356279475001121478570889616421561284155949781460634632498756375608736619898183816129167618157109232155893820615352623920105722618892163947920848032002116837251654037128573532129605436393598216558453612549482167227388346577211106991942390305881985136860566883155622118150725665143530147449413923601087941411078029646200565455654735744594171027086825354660836849901737985168279990105403808755712072377178497053187565053268217585880890788870819262191332994498221490582770438201404669321107082075799673812358620085956054904407009127810672782329776418852269294150717028482238874365725627196486386563591061457042047248018699762505678868958848848549873974533554327796126452427278384245445008154575367760313547555858212485489805565050105517092505036054620573751950114163833080643750072226079492756251894989914036066911499208994295723030095942038302657478095856811482245871862192767697073366339693459962577120463009057599649088348759290407275941814716251653466931616737256554271916958811266817290934999139546476858255075521583045023259429627229295570740610093815037169834420815417433987435137261786240218137583577661668276576486061672525841869123348984445664371430881112481179134696394107488086968705890258561855109160666162589754795953254645061773912405941394293950807374836027814567515321497167854154636866806576286244653668116915028899548993302209426600672874374026731310140113128836325372637384013846083181480889184681295481177303317574907467575159393817004081883364105144960401925340643263410771374660967838363536286728887727717925671984011960514864988872081175258266060701907401088071587112250282343036664184478815396838002456370590723958711383788350022590805722593716732085651291063783422275281878482340784243516073488761104443770042304962995705318815304821197381867969937202386418959303911617538786059941528357527299147802012621543440108906281541762230948133160886734769597036802693454989538896230151699357864911374488890965516901626699991922239792905947033188584499611810731701209632934589419526857874496868365687300781968274307659558634344394921554990980632103840667930972330481381024083611084921139455664110149526792686381126833197737772505258577256716744743429804847032447644254229017271088183669128464272673706082757258487939591386123966088845416585034871015854252858510554579325577152749467911172036106289012980189453253352063242635738173434982775935641519976309649417397258718573934425948190296687521079501172577226207740936933354987970164598919439505266885276520549345986417979402285832676430923518742521911707488997500394409758582177456641817734740614246862101949805016858814728468428749970334516108250330374538744059178111920579892714960066937458148053775159867578125068105914096936677517593010430359710796284732405240806337805925521726478660311753046892583041392222646880153301523191723509444160860598684994989114222836236344741680999294653785395405257833269993973699610835886481090536944992512220627575419142384409122663246510438575378291130704169179835109464371354054296321875959584892030558868172596974193328028767194401675253372746687175681166525260843008272592322275666983391383756430616978969964120600507137688564423750451533637883861309153734005705708090685142318755273018995959680049605016684262451409178584220515292302985306177861540189795540816242008933510274404910583615739021939698181336273528457050127081373313716758487825426565808780234301060034954165131306376400270419435006567330398230964599919520091496968316048811480217778401864276335949915912611103789081882575815084210505574255608102940978038424398018007810929948129450715873395574945985135801304124153344277743820204393859132204466270698592689095671930304609196847483459026002746239602108480372054109683198501192744868324745345630858335595687979285844839172867226643194110208581451338254757300069933866408181891966897188819568348196430822550338486903390660632856128624171260844993979339918478556178631392702063182734903788423089443729579964678093183301960175606381670718166393614163742265017639525940656765492090372935622567239785635397994096532712121402323291927737912560287910404427403148239691558906214125852871675813825694900780513782405380937552028441479525951313287550244683320941928032897243499101978749181739950196837489769372590443966255347671176435875969482687696070274452531351008196875393556020667218578342660999545352798229080244904214649626387331221194520472906399740575243386752653204585354455127263407172852844003842075985127975457457282572129776723450731023102353822553810365281949963823840581335301297373955778669699215768921304557533210705976837333792752179714224957516394659877671013152780457507855719719878314937875548352920355619415094930190299474874466364053187602014711561234063032360105151376618919940547562207343392320043960582444491066377385928436461369093604309633487432733222580678822652986982289120439460918132762735781698309935965330023777453179193624269196363941089991326742568384865756978957119116274338942316436022569133614643892879371698379186268556726837910799546476234191857028870250001853638725275284055784116355388866346476711412078168551656656695929874830345656587557886807118971823429584151051233149091486309045314750679140397227431395991908592691939160345118235540004833270247278721693584357655249933719223084568698161025376884477357952904264693120573464053200117780240228726961720063916004594524722597998208428642910234512865791947665947233059298150376764202636952309041953113826406055173939305778588695529399964349738080585168634886046918070755508450766035108250578737898496308477507583140938556259642217951604400595052755110368291555496002388452148749976362196437281718659102289356256866890206895253737957493503992389656463096836254692150192328417547727100639079538737167968840794462372535496774665536514206412022850423558363012238320042392910666122151366773341369941866696090017995720013987538260407956720979168429662263806145654800186934470239914091213237150511521533059148064440778445564549385997327911873801384249280703980662787928265588394475304795857115657187930250934473692919359951009571578505115603682395444404283707168893125142142447133627633242478336892872260127217842127290371346842909532769751327149150289635520206283114867672593797233861017784454026864633482561481095249454359872016836906068687826595252569183177994286095818285416103605869592354972124039511558001289159202307485309280670170829127179730654761479440025656941361289758927965284521669825220005162616552317089158137178938413365714009561518080134044279276744068379079150759809735566966201929023950252396643420557614836712109756419627921143768162921344725988607853570721441026231757657150555363269019606775292721086574457344787800686375636113447296274762559027796478824879185347750123968093498706719022733079344169482263311405981634709157042939734777339852026062450362452954200065971106555530739559003932899432344644332227623887506897749337492569836857581741499938234173594227984801344752119079146323557862891046571927416549035760857842529088431795853179434259423722490637260522065007521536377892808579492240093562698623216945240067026732981836112834174276752508692160041241554947657711860017256093433406306561385744133086176365305303709785538080574016660816034998120495118154652681758226845809110449402418319825500284496957780338784164155822153740690313002989596464958421998194485932916054198029502656298076077743028428629258586020543135209108536445928440084410018269576213169609744464231446358938995334793143086897121795013443997919105732882365654666355445948876389384440839746014011726297980246516920205749165568310017739761961268123904402397143480833922147090822730566231227497365162571318410150282594936383019996862776519002354244165576460290644590364344800520759504631790462614789035899585917485532744841797862247677622153504190396515209345721815673418314252213582609893428073190193611890153050666072908187841803371019546721041507506605901680108750316223715130420948306448287521486970761239717557850755330708110534057760073592526524043026990706965143480057041345393560993029968376893895590277175718959092494313088142827153859335439781942527457874307885446450949761055771495144779298650660107635693669190208286665519083905837475419491117615707131655871478129343695573714484623561973655658287205765509574578834924211385951702704214748079121407155798646064572999232727680680063186649926281694940309456065499780511076192921801229623961755742728293101169444106066842587370400048543163973085448070316320886800168780180390877306534522475335819686387346465784432195241254885695579956194334406169638515926416043898596972190236038925739652057366166499734645408856276940662897408715257101149140665603193985982285404649469515085438314580442526225819908103723342738235969146422296932626628594166433707934964035362506537022986256526753087376183204512351777032413043194596337271590639208310024802183825827429850152986701248063768671083379776271271631679719649244548401649168192110716035647399595809746346811566234146187911268739176779547312472452895067630456468566755778732357295554421521515880250519422272634046536094912965719706014196258822542159994286482519287607376975927423370156602532505502693063572331314261576281342383749357518348369165391257458586302452848293565018869642787480431950815311462344917796927802051497063216120997268080520683967800278813151916270755855147149591734148986965349266031662123693893264714888936155226156907145327183977843756231821510412657968880914724641807788772161025305592514393808382879966822856933395813679404902786686390777555853444877629040445435207070060664947905372229862142892804120795502586589231571447225191684205138120384753086559103265843502986960426867548343756961305589506577578884317360167462913244608546484271872601871960018896668218972371780079466358274624578152089955870590139413374067381108164692635137700788995824759099652823813985494824063307139956492660454942922381924886949145256645099071998152157484355747447203970706180815297890752269982064926522580935067779725625028605164735869266750024985582952896863215830748727747777180629789516561013393476033845555715136207297218097844576039903228001952281373611419024649544720206854375680114686676818225594539679945240373670921970189914281585345031501598488228346554950080911571324326433527566304945384210399943674723503921650748100426697196333659030963849668756984242634122373730702799965554668325213632636470259781465848170734969629823106669421901910789902253060347010559642535409214026270722497912570990720027601661842984157789734272799390895395013328714808743996575691730889001389159989436772887585826026969555978992012724082612904593452966004592218122042587937299197124314841921790064803288880277111194627405571400105327840077494924901759147829091669975446196142309613897246262557774806831811904718338075469614925102669480158768056982120910255962950645846161293646215409496987451112702255436055364708330941020426349186317460685257948933104435561050819642219590931581622203403232051476878055868761356846516429517960073338543047431160658370526064473510680456871775089283122226773882858629432422622533458079851789073045759359805319179398896357413953764575104370991272340481158656230867338340757978403730260632232855250272317187599253961737213305420930167231347425419800882659981807055770256758096987113686448378099453337853662292627972864988546352822285679521240554900921580514483476960804289731924793924041217544898135376177386049175573334970986143323455714288867246015444435748904646949135084072521134101072187072482110475134990656591625484657740011493514916112868149360804794349394597128307948712321562098683347191839126955684271678693230926191979236697994297266019157920215853351176760331381884663650577776929182838145431068996731012724948026446544190202548992432851697731215670274411039280156711080249620601323863265768353450941293448647494055851567052635250192086932564869459859727288059294818571921989559289651096835193174103153297707744948729687922065775860635634131907761413824335022664082407820841553834042795518537476961979607372658975689184649055267617618927429764522559710042346866587748972967025502869577568027184079214227598773213469573048897013020217070230508282318750701613782362335901557461640159139204979820896322642194113961931748181129521598426023950323456394430849936002847106203864305088006057821360063231675016066171111594492667153857483569207369165937993250211302629556068560639394669799690107223419393633465671462862934857583303152414097767678166089517169758603580576578876116303424575952002747540364334715561593666465477938744315780507212331932433911033967948907995347513799813790195272468155719035811883217850370138456414085630466406492109708079248624798591687960729161260491761668305766349508736321907332096595989282986692316157490016559930261456225803731511361734689985734489833246964121493265026258844341242561226598520462911682734142091439395835616552566351355249341506076980932419290504325280021451284978121868311558076046583192782542049625752491262315662438359467225733872914547797421439238589700385535764372852307981697035216493264326159044180899683420525218161388756795620830575475930002618856833349244317370551994484421335326812971061097190518061413415222034002710424774454647829177105318299877475760705326091982016371734012555295956650033202274082128846322420916930449868083225665786803072087021389895202863240770824824337483617446056657331398237567899862185995936065852380987353232734546202885036620342169677919297721048464681593624479519853708974863113895632162073956799545546256990536087361173185862924043299593229036953752229629621299889448546723803382140174292442668506937624716731129974645436306281427347612260290000370967408039335338486265185765093413871437041031853374644239768844133708786403968163906102943606980330924543751762549829826938872882719680631605398240608065449038807783535007620138630852067360800789015287344995144268729704533586534345034125712582736315705214255780447249931980515988356192822528367925549329471311907579990452893653600214223792021922702876694183842054903018982041603206562134156304604263789923733647182894070301673054085067883053440253709700534340078302137522801598882465305974881626299172306241987069361566018094805764900235436607770470938778542612806623859815416324998163428761988535634542291686574965305568947048131054665465283732858145699772348187406950156437991112354216523238711446897522417965930444028684460572772436288007045385585816036358083228854208054047377492734803190546033689385174157383166039115181659021502485730551742277383834707056352630386751096133613888118050469193716536642306461816160608903009104342859427649249874644333782970092620889617843228091766138747654889512382894847909650323895297573762711704437548548293773432933221963044929842424970008513453087822369725370301696837505233986421902184254879396978252508203486041961844963693406366242573042918619177876555871549302891562192753432280931104589305707626947709799302825040394192590067621750563906006288132453607466313945257738663910491431747204772331362122952040373991001903177051710470471501332998481548380059347775900750661045850706362302338432209952692073255009645091147725028405295414754078982574393677991120726458380827111973152108588336787918186589096107053166554452273053678175416125169968019212460007620266808705671039388140908192354398568073960460699513894602821524059209529810238754471434433603921168833345441539817779916035680530654246495267133837966218702135036022246617987445123013697087554124146151681785563170461756403000784130527953768475089967210195275256566435647513652040586238456344120334939042455259933556355046449081933311736770924027631509118976902366628628857704095619470434387480154595844065309915622933922280209983607321265944528200365021683853856334534547516267332252244818538804474354032953594653036112098854013363230087728984581010302875087504180086598462600132146543345280483608671245010652016457631846513573828812329572052704373116038695825452797000284167417674098866890598967011271563382004730599166855156613111634734872932397781985509499716708283852843767034057466923667012580637608655092885314496391653298943174201191776276111346426509257410691906936641851879355587597289818740938392567634982646314306291809386078685634676661075564291185952554750765744782261465803432646842637455164305901596861293828647804421260819268696484941502135090866780759429475903828904605331745555029541629478430950459580517462041210737905718736675426521604445966436066121312035799311386560298853757458653136189653411736535314111361787301650658960959054549781068758179305702285716042787712002057937956065391699706482654089079549718218768961047774962877962085718193423719381020153916429247089503481371816704152116214421505705050203227048014455352876754990328034798724568631227323315995751574343129769023616536988710229128077848917454441950421330015469893140474319381180020742094729779061903197976065853872786024620359404339135188763296955358682163750397213876767015329937419188459313437819589959871569371859320521951813222812359778317350227879079167331864575136497869893171027479552918039609206445857244558769609714494373175911804059400424443144690210606190988209137073416681168754628534049329466671603505689482483132775923383475843262843427575217876088460918266213618909244957403700492351920160734059089653439998736568590919665134330115065009850258294974567695778716139398202335776739585173111606240769717594104132438681935720483844589352604421038901669935789845450270262492081166144751769434262048375714324110276751013884498872280925066771058417985283186466295267281341600303220745789652614642160205965592640099262679983374936137838904270718000282713313722420309843348953106217069230811429274107057971724234662384641341989959954320662244001564461177373528836916396592223699210882694259065446483653701532730603431584016409989837906948352814926039466560664229889899091263990844966379812405730849623226785543374531381952743623338498441625126623285147961049822164001367719953164920488160508449506107191741212728615044767945210463006391088476343806400391427136310905466026260494071081660530129935094740818600828949001471527667767662412921672131962920674209846728386930691661724394482276299078666792084282924237936922457576174685526283493567628061894996292250654040055208041074371271335457523518966529984241557606939858205437506401597604410172134226920966891997927411632982758732860206109886028050857552768854121904154666293577594140917219976567905294336920937893266813479508142053357088829393514895280511942006674141417109278352559038878739615903248026259603878416256997542032432650210499246344784270485861515373787425583890823231126566131784975309593244579786794143954349714315932334000329291484615578408052559342586218604606042672943363269801871801659989753299898473690435678210057418531747606385451573067623079555007798829798794190790259785135123459927701551121140862032814340869368346211698418162337983234859713433297706636736513391961573208117028662178934680941940448860743708940532687315509123026319225105929425049294458307876159025359747965251767924402588503967586744560512799948311363781902205143300432646814508266487989308563047201672880722587325124243469638915704317240976606378336371421096342393850264432593685211977680176405597735603255087708295897694359735122353950638728253281666927270623450158362163034872937053034453605254092917119257339813136514692867744069361143526119613456945164075730193979316594997406137249841644077151753522666413559172401598012287489386715712920371575560773035008839596987474205985475296864480684991595235575448915231671199596508743231301155075253438521403064935139137814334769309123156681842936885681747805735230090483798247828728095207382880263208796509326019671441911450592369585802727808789067713893681359748755641994262514299984331289373142760339325596246067817622208799316507678850491522140335597857553334475322623488833957556324420029559845342318391026257244144608053145358232027241616388332106694199801582950937382571720576901643199464437338662876282051608898842731467990075211090983988413162482275826240510595749986372101325390730701602827703114738394308072197080223948433608316475242491247184038146100916298030590639133093636214764747043961682970016740199063853021022561561778736244732215854474939084028488603619748973224226814781260795097910347528971313152985647609940417492340287542706066932219362417736446581330177819566525279247325668289048396649441557977623320984110602042620204936334072735425261800604868812281948508692914456448443941196274747858155490896751562117515922294985685380199441719778020331039703848207438592921019139197531868333405152278184427133994451950724970798961482029899341797292671623476360417798083680438502681636009636144573579492836625690447032392483884836086510854930279227076352528557238458811706861585706234096490925916042232894268346055873047288552482430129321471303230528435119789288876940931479688911989875516792017241083959754915546159242356582958675268257213001034239375927223888734755339328833592568647169106933697704273914854919448679771547199151213861713852671536413600810165931280128533573159227506419547296751115009763336036164640301392742658187346188386966401317756711282370674973924820813164911172775552680131100031311773901494821105830045187877446846099409531613054369822976554459974589783950503040487135868750310908718015641644952500707131887071939638792683926610215907555728473628702390711319590137088272196465021621516685055299720705132066857065248624321852629033914658837524159082156895660622582388119785528809666340071493036198935963644096051711818941732221605060620754801415627203102789115097843921747525051478525084891701815891618493080500154351946403329800165954650725700429670214596332758899417159951391159039579708340624528162740799242900665267907189283008177195897977127054478875582140299730576085292003955605353021726930702112972323812522955170879359597892020171639281143343147572434260700680603438691300549504911836005544655110675236765947075483968633921061238057381425584403305656766290018343640041548509853277190579371275937799184096459616457576500653034069547644169490076841278262406373618847358035617234643508829064050775015514208765411803059881488608787220122176011046532359865737108219173764899506807176227068675790029864541982315261346921956397938234135813704269893026974834103075838054230764947040784476617565059735629070113454720734218325165889392411770450499598766269604917893550666268978265632327396096080328622118416948509661184957309821856975708774160015103053459888935625702562012560506969910538664967510201929750809062730223638883893734912579188100155215338268891573219136876985836776739025702387079445845531143337682049008019213474135654828208081199566904393859720100620530175724319835912972322850665811190261907851789133291267258686029904155097346738941613475055690635012694311815656895144976337385434791463111753502273658760840904011064054439484047512377892091568219380144096461100092205540555447924588203377481068989674667540256482113805654747114130917743215153386015020613686869075128235600203220024346926860748335040146287459537490336894484974175727742225706134747156998193505483614792268500668347056223514521977608573872567766084876338895135671975334196613668306535117861978703169498106395689286100839921130614085218938008126793324957753856678984030359371375850351727704013654995958812100317160292134890554040761768595487246805649580980940062342928036463546587971473038636461270187558570527265115180328343237531224795808476082262622001573536926707819103760441343391265205420945444749078051746413173575658947662714868983710675776094072145538057542610733939656110002497827761868530456121675423374838669957389322557480884571704808338359319605364259909502660323036987521745941621458730346237990316236874713131588540628214758458542364725882487673250059157894247254362493493622692687925278958340368164603163441200902542973871295045523799507842823277647969740733329300953162752497967415819961764667475341858528193321642988745828816275307183951260156035731425545307963299135086851324386386591466042853391769323184333725794545949155699032357149098390295623675451267699243109477693307692042797712877534599215630961230949340638872970898364825625530865465038838947368019619785256641521885613357714459929693982073586982732711593896177479424298980783662752945471835051366351052467823931356738537011413418750601480920119611227120794083987801378044712850727536203382923049238365895805851579989956087053231810599356182951399208622028574222047848293310282612528885613846534468475243239850969736278851014603823434644053107638835238045694648903166140837215094765234883572766230426764468765474801679341485001147918905635162406254512711634874360927910580996930711989703555247141339896886510705160602758163141348865594253510028574540147691487964594250122963890076355740876421006202947048565626913287265209963884144078690768190600196716690386770226893343797307022239571685211283779935911350130012840577620818776279778689578336708759919269474825242390963696578309942771761833301715670558869929017239922136832295995769760849523435150813941076805515741930829739618648580467521510426268179056525657810799664578612237732911323970344668770616784643638303201300587909870953956530533788269854340797071578302587053756142912353822794814044302370023592382540918491424306642354368740467908048275614089552705248710512859780661127136578941525853250018824545233506962907394787829384538251098373414797148785401744001659319862412701169797110455338933424206663390206598312511531952545413533906088856857294541788977188875389985193339085377639151575936950628929513672059233981807154280750243710513442375695852781125857066434815028286369750166799775423477910546513653302171525596587734264999230445426892954700891123535046120370126465611774038413798874544965963030388997449643668006276556855772172788657764036652736264311721261521171451295808281168933631351139338086582979898970271191533112111017155892968091914066113186408020174638768060346405718795983729967682382860471804361766583895215014831586919177984601983128521114798391700172518219531989344831080385003130800169807507644831344615388524301373302389489171656253627016481981212750633567116009516241076209899026566877421835035940009284375041204496100550706384742545718956910909126022447802033282608835871163450491324251528045683365164331418351091044024545301308688984195133050187267089469580691470029319710318956698346039490354212917651445635008462353694864183006869914268796152303721658519204238711706850283799849138419301319344119075437906787052551451960902014846056141964290672347038989630938260905931551446579529425462002181851644741422325030068573118601914376259848418363898066555773391113707365549192115337356214605266978453462768394522261219694799413515586510754093868598883180581152570715234391794206804102807337574494714623254706961826513339785461964747623897637815397100713946235871665062410718206950746394780634429115520952114263016731381065642085715565665999803129418381425388014124546861018403796022392196569570902788053008795497991956311228689142724783810105169820344880000589074710395240832817452450486744981820343899301767990242699723337456571431482921575903352086271283393630760196456661578035471782086476028011842827989617334508102841644695814455425507150429312892914934324614754817929589183177650332808190971619356469918579945571370405783510370367094259014775773682889262581233386282934516330460459519162076567760392666681309449619393537855327397060690295463405655917072824478680242657290204791990867976684120035248088434461833674739016895975907835071891000464166535385014334857050781141053024313784492260703118262874077978060615089736956345775831373313837813203453069807017265236709141730582503522474116635192486619872313892399618179354104903149328153617677494839381705629435182969255257421180190098646706965677300721898603201353309479636117832763064288327552094718818340921110863397200606910789613253869005726017744822763998092344362139407369018958805471530900917673897005139283425191734756899649042325475735712352008650545364172467593094983189433520053597962318171531329019454605098111756081384974353969556372922328189758566041433399408293125917083583987445863155240393835308408815562038080245962392696199700329244448068704135079118962749998780461580898925521904092898367953933420455651229254353343002877998987902690334910003965295775826897867928166310414336984112710037980642158344949851413157530240665743888989746759146785024666714959269937659752996413656296077001681797382218997550896662188669480668933367634409156889393603975934525799068766294184213700447642545743604862392471818902756312520643198898222485537732798963952843621320328373145707060624071904698130729916613591167352501497496163840497068564557419312922591677464113442690549213031138003228142776673862392313727773189303980712922949255449721515203413634945315763678566740809568012400057039828737621241411741988997273742948809219617222537635209444767827361444879196735525745984159475503499224777357039121862856941238961255327446580286706331900758235548939002006100125913587868767602028651097399800241437214134679518521280942295868670120073544539845438732274359924575861646642140682240056935091257477676265876437039204187851479480270626528437866485869932725888876251409777662096231321325193245513983143098083997553738036617843253934031418122574722439959259314485188277198940908803987793783255391580379435981867422473226300871871855102428940133526036912506917083714560066141091764006992786899088424161988924345218319241602443167288325424684889260273018869862184033171153175189269070500602611497750492205980149176306211831106513001077398369251453130621677228436574853538136813380352941600151204546381834384808473899073719008241151530646564216452363895688466407173580397261974631198573336922980609911148293961224950158401731571883583808098858187531148239959232518809485381943965993313524552561923896942838375390599085202936919469844530283320522696610787540806669047926466938050649632794798848354485865028446450375908719785360945481656416788594073035280632681769523335423050423639292588155525761947530630595818262812549068372802801199471977320833041912050789401766512303372870994808333166626005591678729703244792675495931517160844465845769112696414789473858862514146120426869348551824484735323504528613787907244706058973472030935086997137352170961320143637527807268723803520056988271830787004450243226320437585564439716111643574895450165841300928141032149824577655526375533468840386973147042881481720830042421738156030492729682471902956181957553716127253488929801359902594925361344519510940515338538120554734359942107274519174903754274465653472777263181495149458352380068286704352516146952708099856683079473898822467618545242385707224767772998350971681984483796073042422833071774316457902756467315862922213651821421997189071597387444053810722973964782945728601129282540064273174832818526000823159577128032261501377294402327786139966991209606574419907383946239838789470029291791434521093613837194094174885257227932124680101204271635294824152482825993516680391187459845172811135047706167473120184727310894940052692562179618376607168072867486277786820963093799645786690841528946651502535900558364103741204040997431171274912101014164159129446471329045107631253833989587403563283097720595866334070937209335310024102006141153214312762076575114025547049959800976115618817359921606373503408407525133454073196956551340838360995343005508103973787568639815095301041461633829387375866539141309185027370989590162281421605750094435398031465638847196202323877830863454401968206812636273314699860577976891054665792108269640017744900013182912617820648531121666811630444998567820937927154992272888396152344626368592987626036370587388915730364302288931516101499027129395024876335768559544703997600572654837953463031764776326841028119819227592291683984867901850504803399141423479058855503790347123558380137040676276779672744607727841182679550945866056143616473476363679999127133834727548082439110409342479679689118809661546955551930096431792014503163685923064461384447787001700747030452458821327655715581146320531513618411778269151852350919878121317685532675911359752416212797165755683478260898038788591735631019203936059176622559868348336911729897726899471559088639740282762651902515234869563530231888509697779099764212696415703427482224010351178849677893704399209402340719645002338066333523327074756416725648714976070855752050225632180851992702221098778025157753203800381889084139145204258367026448119704549361185854415062437439607657207427510249093745695324495620473922365748597719564421297820966330633475988520587565179609566132614174845891486568550414897867380538568906855677559617734304434579950849186620589804311348707644964350244721538967530808444244176742933424436472368092576891805991461819538723723888735323876049938584848008129374706252589963218757301331046732967158688032037218266744577560248661556896441427884860441269365773533757904641184592256311402157787903238017071782642348562531956394033893546824378729251561010456684887507589529269771124152605778542477070243388575822080455157397638702391304259810160317259535565352526913579064842188975208331581843283669346921091267672867182290920902079478164345641605855846307386576068496313662144089308891604960091257940189704145494564893654630953755575714917663890824511272851125335604366784666987226139980213126655666721932674417075072920651975514659441473009442767757146338737814936429264442585274691928194200609335305806320685641008523001961342228434417629442810494580601567214429620948259258065142508861512666681837710431419402641890487782647052813651001063159344573211746499098432629793717629252812613402633022039926268300672674764119804139650366532369701670427163387902322000032303164401918455162440493891644560163202151804774411308678787643386677225274681497579979453484707195740468214605620254013314718491665137460832634194809297184755345829817503392583134606353129367448541312219107543803483440440985255491927123558418822709371793388353775793796354769941231404818725313489341701586511974117660308841822513497573942013032066374441903136303390324264089646746414761768432524253970951018670750033986355371323680447340536825937641757957922517203493171792175674581774163532475995018414129748009239023058155940841388249135226331482807836279307971782810544050049044384990573860918652666371927919262626312046396360935046692911053463584536548544475564245609132033529126845497003370133371367796227901054127943619989131444717295167749033775101413167177399369112703006874251085737465959925210312065286961626457402553549740013176495574082143124737416704141428611775071911368962513423092236535252926607840782045919133441782258775417221731688629920881410240056749442496437418668131657845800861980688576886614122973316793998300196030945973564695047043677285310318667564305896089685708888297528909083592904167931445006542593144384406258961926226630757771613951222951271250550003157424174305768407508299401625921361133234879265497475830492918628404145062905669140792765174063740702748956779920815515101446784026834699153819457288531456844284253746673436556180004444170594165473221539943720693587939165759338055435359141734703645606686724717066390259686026628707063364069339897269414006138713792882284844608244278790119053434190286194620975291774038056322198175085600303015161140250944945241272880125634425457335951105043344109262624858665850953160607369134091780704700945474203517658357203576496246898415737704348580648240207762533144907824092860014443564162069273545942225828817820305620481397810266462634824841994541612659747979164686877528479070319255869134162578386276160991316764600429947832664008242384935074535940681718807574420922223137698358175646407698524194943052029338153835432479173313434440100735767742060878209078582459535536540191006527783510424309545832188776069003217577099897562808589457374868071728392312804322145094493830253722792496400388861157879213499672143112585294387941224720062140357260172469622151167987572561125380876765358669472203572487903412563462987418767149412275002998228560735736698867696156251711100424526430027696685233161994654761989088784519299783337000222919000278398140945963664941934234756537316175178941803487369689036340261776507015616731455815100219798772069947061885940877755671240012405042902441193232186950358234789168388696590362574050711219006127531398095777453119996470842957518264352574880772660422137700933235217904244867832410648424627737412367695773278182494229701140210868103193096435562144137055106382771308550337547446083584517971913393233907976339244730908896350895579595766663842865335708386754153642707949860068416852321237332618810136405614456288513484845321871970450322194223489888956358888638931599043720352248220224166616473379386449524217496545282754735971062482781188677192882844479688916992829647254922235905609162993989656224752008872332610403629681958752019954718418334106033975008471863420082163073261843351863118861235427071630362776612461223775901963501363088973178077378042266764382559474439755545336217863113292832702989001313114720719921055632819764239350517845205586115640488588782290734438868433979078947929917055329569099081605183083551956231544484039581759927260794880896900523795524209277771715432696005266113738597722979752925936060867216376612634822755784120840600376542444378533142838642661849736861490290943801440249221391757981703152489685937329775016015469458040461272957882770461625848432729080456855989518176481407853603707985484986349390072777565587182824786315837370200421586590473442729798930539799109338462866197355635831788273507262263174867833227087841960427314505052682560466392992647471863721614192547261637546621715144071077528842166264940725150207971795168694247115863715225587700714605408356587320740890136501563410430281283319924063740172908062889143971667494195032153372468715806853095556717706341726883164859696704824394043747362556685497130653215100777614720127962117901896202401923472434670551250332608942944220778343308541324045262597794100252732045913220416660619571339168330849255995486143354264816750829679668416881691610430671576005755457304933099352258791282298255041211775169584963711957806851008594166602127717284890905140011104380659587496075714964112224918025736267405840090174578330930030294303835689631544256678628825325718125245776683419085182407912367740481743449703911942419394315132714199229766126292139975850381209597171953722013710295423831638856201849330135778272246793777669497488707775953451846538987740754043532373325482066179535672152071166834664132240585349496410322617342420402446066307505570340873919263397127121406275994973875599077235236288923111874650736005010396896870100278271225058236036828598537960802219754752113044785070258279273908123767848843776198723549771777678167951012516963126595060171472068649362312701588330474122784273848537021572679044248597726573010917215143803687376300154242913673010989479289639850717505189148592030095666414834486025628435222868735073192979133179543756448794709693697519870568779566355634313613796346314191922180982646832174137424390972558705979843049838343020707561474613373072437241915503255218900012674099854332680278786918484328449841642534991232820573354006109904438822800138851758373219342297014113104680587000992811226466529272189625325189767822784540188776185269291477510301070944719246157711297389504236387606462991661963257082197945431412613544613951169190558966894790391098324945448068672405669860980000603301065402658934245096310713074348634043803957107526483833082854620042719394288739455894506327488296178541373823508705334991309387669576732187842178803859182076087425967392803549607995659075917432181345160035710593084611460822564427144763548026218589304321445963365930990919819219014973594941622359806772313747350621474076798909664745490383743985830967690875214412388420485018073851863857245739243896073721300930479478631300743872089868867386550565681656754563626660264039241566900854952886415498075987093297340363729088787244479993010058683170956015297197297130534736267838588674220721957342731237568121386729858955265357256610512269786122635460108589643570868827100046971314261240439568298026549287916104478733083060285550622194370381353795548360194315178236210214922342640540197888160764921231809385020305719209247078932778633591544574397427675659529836180563586415929163764454810116677013830864495623165701630012124937732313585757432791610935330956538329944555373476611006464827118242111351508210307534841353900853117447036980682551909939445650021489202799839979113862672984166307820923275096304428797506005952320467618627503751263630308581789806310771553521779247357780891174991734816001980038417781739356954782124236060040151006147729584043232076475811875325084302141990053091186274926926797251461900326419014119173827418737235050013275353931460715727424064708312914599442223072945451194008438731003823705248000603441300717536539601256205835203029690355706579917208199218964002251525259295445285848518988142815182242233629085745724720663526249089103361054905068130675278997113942897454995140105820554954054653619395769078630458173973510726315965364338792245992812252076568831008503253742392783953819846028220478603194516476021389067058989682780735369198612660783067193614189119095029002247251350860183908310354715466499118411192770705281161147699163128750171351437890011176435379054012413056344480434994857352319932143192546839585112451083808270517267184160625160671033337828253921908187414163781069575149877695760654294800583689644027234567607902070944046196983842312220645395570222095978935980855467320265044728418648065041078178460460461490968318722207077784741340931768391707768185959142506201465802324968858502079201508337899066552808959129916542382505182885146386135675769165469896025087371786069190895363355118901224304578677620281262095960491237611180610302031580285064263016059452029064352946359604592008952803989786040329135963616292765455030211151878672313848444748994724531862621518565187544382692589184815632534251035821251612711704677539261306137803269171082774607210782515502310261417891986327373203342126451359897048630703638495859850786056231022020804573299301372002811573612158702335782784745566906748851779397782418680782660815054486665872295115545919297518819465423316402622969611902641359265954922741966680245215146276992140051782051938689296714887616885648901970246338867494235244079102215380569724996138670268136999773959967367850942686160759732157644913736739786673878727034901538301438555293996564320445243229102230438076511926414101865776900462726369867064962476251975846345063649711425537282317753033421058770425644360327258248560205600636198822560612827564690835120477264420068225692038257989643937246198377620806323680259170863476981867487915760804378565595065786929912152777456279539327879172241626622967225753878707882233635536759091150861825075287788257551314754612862094176595167721413613295167986204649886955555556898991812724677494171589037571876137045276764243319760104162213417034640891840309161365471583314569970336261946340136301190328542696101494927355297125111247378800485123326257110695710143495485490659551436042737340091755602738728731333622319730896716769952219365674366376814145119114607210182342934714696685399874582059063995346057937963030199355718435603472881850180392536251132979420232973055461722080848929041725648213471841069603330637920746071930674563566823321324506612335841463061421994371688315729518165748718246571255059028868357076462022122762122723834307709815471554919145040656056803408857541060706638319908231670550438023181497342118908177642537939048995602915638439179752863949302197817336671657749655562242568314075085667301846746424222336684885929414322868425247641215982983525580276484727997851072825958513743502479477510378877336373948275066627011351044505590838810589680078061489303783307664239192468341189122444537658165341091468937291827049603373974013194338958331108369890423422663383266035730341130756287435822716016930813898640685102762126002906494558343132237602502002379959363224598450147177805377937465251237660696537412109762205041494593215979337025886493751083344616435050598236382150338736462933179831161026363627733367228403464279438046999254995923974030104863352291244197637278258763954887928439584608078229304494371447843136017380860111091913045433502915288771336404127197604898647354820823135646320286570918361243114762576339990067758689777793249032344081695414008972184102112539617381266392215066866719658144437699115140308799558061417479060892524940918968693824197072893565251479507833581789778382146632033074137053290239008479368356155748569132544721280961829895188816985092044760333068607554440599118229485913013394922191458390252867260867604247019122825226232266341670651734334405140926968007019261142110251452864858955601138665498988207048852745317955821731034275075223629234542931797559129431911449252519787826604820815182028818774657832471339496401058358043534039979872893193998081109809292326065039881225804808191488690327815787031343322600687712242906618183286099428814459965527981270059899283531786801549149266074999120609966629779541877962150245156199219865484107842687329109056249884568071208747801444632922500571030692137404832615891928261664383530177008286252193020098677018133984371502404545024127455393450812492768345775163507918673410709039424233211086859602813045857917040027127294640207577483480536801144875572339574162266026429325786724333038822494776152362939428902120717124583306939308462407753233418859398860980544349170741686526086379242716328093981280115639342056695455815851709118252605814771680070916493864754992787450489221687273108929967718339480412568239161233522746310289085241729066365450584373911992264941795022225196333971800932350517567920548656355919266005687667229800074644859158115115044370067455339414864683866426203159668672486103627095750580680684418777136677777657212249810829929007359516045711129837012639310385408037753413986712852623346424777295331319936266700923610107831697800422498934992519401970679941321382665228905966207733115050992379185693473292180275798437400463235781408617776676638236708473716883346945225407042910544582908927880789029280658649544291404289850328941839997512086320865556260745469859723773687710894351468111110385298775622289373082479714586083220635897668875465456235210576701257002530437083431559212975627576525526621448787193109179436041711013494997066175396943668240737893054893532240619171000721906821599280794414303177040170580573829557965469329259622388483143269715010972912213218967903791847739992382230389393869007550249880012287602643685298264090282029124042765263275022667695032885850917204754896559888597326649771625145051826628567678167276404095618084387661932639440434977579912748312735286226897854761929141653736875490268108504633661157302674724810732975305874905674042247613002052457150846002829959434005543355288022795031418374101352895808645711784266384489216746961809502709504098899240256852290477722217165693642752873789783858299699453749618790975395587291105794851388860961453865352155350939345091733086919225122347674641668333504138616770042653299730165386527802785108500270507792002130431144520501146295815817173318566120024215026031706613289440759350288899264708303105119577178350663611120538614406991532278870377545349836662395160869312035869093124651615555537360650715302120658812835788550875663455379206602522028038625866858555805322038527129647410771215033633121406691383877362207258419734853709979358636664418151700330133348378910179560356465735468594585424072985031825724304411084446481244413433712918834104366984117645124075331278795684650843168669817543245850031686799626289042418154898969547949052490079006444490857623241307184514267560423463159219000726442419726504891247209450054066582733121698612529883665359639211519502640782659592991773295554870934343575075661045050299752343618746661141140948063009826101971197805858916229852411598740741045224614532784212748649217823205487554028577627661454506466485633878402282504582791500717726505773517534681447750007685464038873966381402456252378214350394840609306613660379944179007966607164006920828414187257613531185078341687771502171962166547391585042191525383118600517720522774660572916836504209715396909036412561270995264279428585321362835237199127307556789497762752358155187477494564769951400438650631618873395152809727099620323249401855615026939021507946874300808785663651320037215984201076719254484829863924987172321527006636367452927756290109070948246933934932528815427799015999838711247392280237232837293681022893771552075463166202594772626435198285637478926123022939335461034845266713699875484874645387967551950595963094887333883326138557907791671646177471432221714205939795935640438882281343482138400428992724408425565106941584998286082124362005863842268328514731766973678966455460853571524459990908570847866625558063825761939562893868089257248167796090945198730690168081400521719670168509150583275996023637371399159834528398912440490672025795780372941798521424286379383063764427439277819350766341290995506067614462042649207404728976374482622576365351720360288850020850202430908784395819906949146886911591234793941818941150128383039244397254913844955151618981996844268211071675990850715710878623256232915735384053490404217919300721066733914092054095594270121551367984995993861352950967465065417634462123190612184773145808813600186844272423109129283053786759225730661232316546364686046973164504959105468807816837883918513387791407232919691870368042453507762821860362951077821117047591438192399008719328604767605984779170823694020334621537648033298091675378556500202564028612487246678472766135949288069667510326488546931830363559868634199596746418979797699899893638896273958970482904099499623771970444162049475339938265268046959535413583981807462347992655059824243629581184984780964919889434069987446262657875191028954570176901521535432125441431139488040145344731052438167328463633190932258312845031003063803220179424360340828187193375913616919923838564051497188223858492494287910226740815108707118440937330180227495079464050143339985607869358143540734978268117744325482743752970194631973857594519060503875132471356458957894884805002534460295523754411768987677972994406363551334549143460665988097262775407524872574318562661063566183287880728658920636464823492314019376139853957003829359879856677974982751290928386433592795820237554618123505800395889444090149342905771605108375950917991681486024169839881492249722704030259582245183874723623555111316145344158102344838214644730457800227587729310346471554305090750657974663272730038910210104699715304282198098854163618473569640894566046520624407003696759272095864919771253164677250365527727085918746948526341852629026943051841588134831093182818962491063345928073598628994698041894513362614681405681855036679943165787639646430398925580243041725131211398659312539633142508623606204169980564512496628341947464061832423185725630626893278946505817077547286464783585520209194352121699803783971136658855503243467066626443251979197579525252498037159388293047833099339620040326069521048106051143625996271362560120878251774569541552893582731137484590645952149974812263797686328508771179188153044398816118450444343167376186164243169512113376460836939108455370043398515368417782189457782417903671205387762474774555415174449104824607835143900823427808485699973955057350638550946468389348251530874588490762124131946297809342654626274156403551525669473047660370375052003644699995232308705792222281275966200689873582481364544276444754789512106908907136582827726879163648387826639541781646603027167946369318857922086339658729711344001778222922371498540217791131176982359111733784115405444756042431775330142521315959951267852269364127092469641381299583159450632622283892289671141715900291874466854399835109732017891799722386920126293376108834246896564073249787877136592867352750711960096385614426360269047649593773139996507044882977828273890084296983193427590573704780798396860282357985519009088955899725138997607354970132233596108065294833800958344308538948477588542218237829801669897837469349945777526704771900855268449611690605323434837161906987665732658740923541478705397573397917122552422496820684017676719727654732357511384872749323385412879512096626875513432278552895112263113923135770948888744011252710847098182816585025358127347587718489937632002623957564532867603543754753554439774237355129143809063590487268947170113880468845312232575394804211526562507702103444321109411319691532194578861541370206687799482266921321644210318267981914827436225292873773922408391552794121736116741565402695276945948053056025782791921346447276881602188288600953018328823202940368927287249281091620105054444260722101283605661964865962326534929437572629339007710404393276060281985984409339642527834449892872039352677372493094811078000862167949816597184155730326462790223813885367817896092564242583591153148677943401378919018971356950181745393492263733383697215671311943812055751534199636483140689239647123245701905944092938976335335181551096894612278816928615018574129943227235402597419542025587684005340247003035084610930223232047783037340514022788146000298727803049686994227239883773701665677803911351975104518041393844917092240375649239233046839712932864309321105138790878354887687403600675890874241523277444436982398331221208332150295852436213715350041275581256072286874083200456464416665315147741579183124296055447357268655963086654874847810842064950911037227538196615105184400917216345001293311703897651590911977155157273580004952722846209807835418159318719462670025483570171592900934569191475612359610896188950521208768327649203107974423693024312219511082342875391066804662484439610196803091062702455362460093939278144301861726490885815944769951416504920145092374239712653697495842863718150554174541551222367540954053408276265647325993808441805591061039002349366043360795899747196300343797285520010016328018859393551020497994969737011859448424831297850429719142634543248474352298708275288051347800459333066024603440119326523042803369722963928254664680078798951827228114149319538604336573008924660335826426581517329953728333297292979259746786134152058437286766318942804690196046453740777740707886138058634181292193421656213735802250220933830909624421787989724145279317093894655267608419121998758358106361893772945490529881504885190997164725012976966420059417481102204678190184525110313471193797764043403055959874340831022674757608760283658490464901889789150269898588433073416322418597287929346397151578399254198419319207281249617272173981969790749383374744634293367761306682068734812612345030939848912829424900697111849758380982674303401359017570536981072671353297822844784816791137528637340732044922346262318273866867503447971694846819943549891622870330392693311537557683904010086319162274692960134664105476089503902670489802932474384209620857958880404816478642883893648562503129648278042119361568044625161034964293785124441015282535522877488345541603797697703733595243219686758062702701762729488437690085204415743680855962314944669935076490611321834564746940324659201079584548942970479947559741078172150865074923644805726749463830127602093652892566152424609959844067026144166000031319169787954439766765295132826595596543195683204583956354012872826751407218312973795459844159862871635033332244122222821170129551803613943371521554040172982095640619401225595765229232511985511955577275992128097976599037455805172914759243019200536348561056811094506317797866137257725992556314050457454016173445904601034319140247635530770173101967788440303264830609892267555420924030706006252126054727000276100310198830661583139023770398024066952545065779102680251759294594871383286424957460473326065532129588540979423054897010962442182964677688027163164685987111593775508596543604547265342251111534668725412696008557052978302553641875812913827664634079809279462610354089163152020070895851843289560015327374032411993733229995036815606781088206394366894156344051459763564345683795421543543226263837389023494316284349326711543038110061922484074311084194879520859556085624335426333351417721388590379343613752725655301007148433126443502475515862899813764827736805009488139149112081227632066240660626176816989213563814699302567126135403296623622868013114038059399516278484533588446848944590474538690865963254727544441713709409947178091654557396740212442710704155210796504954566055533297577768809055086426548138995715393171910795715689615999997627638589851826476942946195285883570380774229890587779574029954648489781681046722032522745616796708226630678889396653605360194680490594119746199606898387892582007105072104501936785609344314233447073192455991608726185294185968785958421751880898021869758685908981103231321725205435143042290756256491329725339155104181460413439256024297992092320210418563695392323499185416280290190512259439410226048487453383300454864633363387669721618031773469079195338054818621109059139270494023595722542908834629713615802070269248296347147085607371678398066413126541881034063368809690854302280834898773182524412076268075008210298219959324463129225418940521328833478386357702770213208016089036838040205645997278260143097689302596071471490760478656733678693005653882272071603557072692511987596311377206640156308313563454105634056333677508404695027662366651718324227640400569944519184390561439150759376520144368193232364416321320560343981899397412843137585006809552725651053368229982810611596412929677047607804367700522480056101076602810681041745462525510178063293339639424964472236699189011996676214986610688230817574831779272604273815446948050215116177759633842320004014949938501017538708146654886646265424275471774457380130407342059206767282938948902072604782235841946837560646484518160858762390016943867067912129849744715141137704537318162757403379335091493010697930715431548777746460757630402534994095764148012194066155987219335433653753619239322791641199431433108128507985087446651571806659661540117183809573884174999736392603122559858409618007506497738351905923041911923563757533690999934002198830690516911748193242899869873790887213489796578801749828050514676136088053613580650851381857404024072750480462695872778803316242741583651671026831876638520796723186728942439097827100263276534590863616828491067242326569240128539392024123501025160374154867741425825318362273888616368847987364067451060878773178879214152353732702790765632157546683102839994440933599696550179814401870391263562077301560236109573259402076371249965355820084838703986381893835787092956351253011650964703310456034566308300804825296887369467238271240342285841692600699926615730065961183141248049095600809527700929973572295608785989477849198901928990652175795049063174451450074433303133006739983867954885891079288947419980628085731277201205402830548761690503123528377442863786592676569719452978131012554834762365149424001659794668548024062121260642784854476281389163219470627911280213698917270874420442868530261964544587802660396379675631767856524681830348006462230230836089286536561168977096073342371442374829951966411798812407544053350416567440275751394106059911468099253838638965003225843812306577081887648574201026050238447380218397332381715359423087777182411730779512565469446859206614675540662035068420073810165514940223704523027540731811433010879795331550109887639104272128002366483713290114636037539533882528365197831427071137905668089027670157900674672841548224964562038778571101272324693614660460251348615175417533500659110380488384427822176698817448729901812948171317220344163423388517209166025585523311787830266453797470914749997349180129859583089075114804507662853961165439395835443350640821111496921430461422296660326164209995162225155238370532473243302435863653841618865935588626192981284043645489700696143906004935264733563461705263781363107654423861825321818150822553295135529835840814971019748439921652793856188633033766426469841098936991913362780485860454149484004195420350053796859455533398396880523076937796929532111052110907363252056484001793020106067575957872042048057191832240664117742807514327356325949214996643306154390130902426960428013421409728818590264260340841044065043882143351135331340338230260499604992090246423114842975384082730842841934381193938442758168916931725747245011486570900594785529921374531158049080193080799968670664427267413568147903230003024735397940435599110147721804808744250458249698407998277682763156278577044954627401891786733076081620616030524904474153055025216794903259135807111546324393184112981465845795882786298436205524069055270628225128737851040099300711762660933530158225982417960579980008943700439701890921057406991341463527367858832335150702919528251543552764827327153777371322737961812082602424656985925182695013273737802538513136930506468742489628104774998971138513348017054200924057652217648586212403208428456449369321314365989978171206638198357199365640150200187027670046278447200390613635474679850400915776603894544677060419968758010813750482247637805741423528340479133770677621415284643806462106883522627434404724807126924218721406806645117086045007336443729248716281741545507461648993257010098062936628962346325962427209803032915659998293416101340499009282989376313502339322366861952508398245181720153372476853550245480830542046397074793510266218728755405146893633761526303532971195822252873155752357048639590174026058941070093932520576398525035152443091874534301810434036489506249201668181265635976018122591990099630254803182427410518759330942310986503731174113170657665963055168318446282837552856641227265562069101377333938421795259267034966168553110520156503552474044304690706234486317951148657908188006999498739258168037472574175219263331463803462405383088617243449972714751109463347659203655673554489355738024414871036584676780900197733477615614477033546233768834118759718478612214447633943775047626582788145245696699865197831029888454487516562357391107664745165333752967554566960850855055315840145384200612341676722233824044379386713276179753213544829392106775136092609650395264048520100855323120209636807104490192342120577362843576787718733953346231938493411922192962280060795694045027522656171610528651583725388786345720578881890761309097657752463095622759226360317738845964696830354657058447705554668450729335892950500751434453116164594178981950273309167302745678352974293158164232584700906540623394022926435361625251573675888493015176094604223926029868631459222791701255455393338417586046246332736038565382874719289737356274522933508189112861825689718680216837196643073128732485343418547785203904302995168905082356685262781268029514742679467104427133379730513443069267932025213745636720371147427958361721865368484784388782834747955927152416657931488749836915437510345243916120840513134695619056251925691770368214838908567594309265196419330447269269676568367388894038463023860899141883339090162240463571338305532294587875802118255804132134192583580730000227426461904614262502426576359789722721145594922681307287960110295712876712213499410411224557147934964835064726019423472265963443217841243192936401531308085888408955098203371165542830242136133012480246311813543008894142815889615554763991135521242323062000532582942650230333587854146226638572044234242720158647899209213707007122660775811221846186391216698408425420000517220527932791681404178740819928541017577653566360957514111980267069943700359009996714619580899874965383090776808499398509879707621462819278292659023041257916958851895362711663772192075295359268037223766297974470906357013386962978055898005992926101566020239677304704198261349232947783397785695311454051111063799022310286880845013722523133648377292816547815969441601907450215627925502882214268294579780975755853757406273787845343549803782928009769141130165899664912556527990266878867501114329073728193433168293057750919621549020207821755636334506687928209041306149372078517005152830710216392380515156744268446668259761957607832249791282880013586465479460684551325809393778664839935064260858826702759223949068365862004557383185683888938200279363919895338320683667254591989074516074586673343667720871765408211818909801917122786034397904188113582587562306762788135594115486664209116278744242924673787549440760604423477677334980473095670727426722788258344682408935255805291889656027170887821604682938283611674121763143692681544813378257207404014312296050733880648924745194973196117383247702736395947414660975650357110991277368833371330565827935657355295777342415949558483076610161328817336771547106659318623749100091121515564633557896238052163635634210538222432317437749875625034664209241542915926848098905605377750425467412048526060165710612235582072412122883887261515664161385622967614918343859126262689729680897406719837767624829641338725243788539884239964436213910665381652114567684595315849839806291803926903392756934086926910069556827976255530191975302103581899201723914334260244665185790693468561766939053336047206790568864898722865550291760681705454298805613117195279668966906180090975790009261570293958564247423522736286817394789949409253828101076515093970185701965005926834245838717081932885145938770816260030673531281307728894469846741390908459932722165785471423166129916667798475516722376186529876703674408757291835925500042585372338387044311273489856630029856432594328402773321732020570525083178633574006796673094645209874249824712108599736463393912744801534816258962295872051607168801566263613939445190193295979832499926910037154839006403338424423084231650513752401472299970652261771434596699531255920356260100290981168913471394052860551252557283284124706731845155022627894049424045621554040887048622840358469738328510809341341692050131846569349192541464928016804245064367907952928317001348701110871441465731374317562969006273114115716939930514786911565577023118984538988040385875308622980156594433823566604878830380137946411426286968801634669472463202103555926897480279666957124323246456531592959301892269605590314250370387366564703144504349624694418806635283485721190763613333691563550882939625610401710345985918544400169572146655063483904438946137300067288002270122636813507335785796263157727817192090471978547873171769735355532013231294792931779567174844192126798347278727880561877893226030744123089973805338769261524079202382965791719444032249743935803535231342009375069728365658249720250928529877863039913256838726188168474566705843835353731643391198085219350647908135850155268585913497404180100646274356132352146860484002011179599166859967781487617497816863415956240433646908271488951843815639616184618390351604124092893904579034009268091319143160169846280586033311790797768326540490595178526238806795254269903619306825411430774600110926535098631135702603845882367691967944940621940374426448668472248585375105902590582220082789635959590097329691733448203258162419425941520953186206924300182425143100621660683210933561428926349593222334071055876948199697049090576861349696050360597683058503693327318438656663555823570974310190734483299573327276815101597078850622596979520926501069014139451895712083820718347439142402963658454824912867084972964767861256749182735788181482936449596986640403636660157469012770270381169267037118998696647245216011642017899372886202688136339188823484846384785689374302068979399914095927970148723426962807589525867609456937368936688692025649945116247318214264533369052842283902719962359291383025698499070172851892871323597944676468407575075248983004103282584197474268134962919320185182154718063053801524006866812281109271965374364316721897494773511229966197971420811318772211962120278026523974499653952124572709743536088730178528457960137836993953469462757328014264765527766854997882886259164924205897588267544621188714159083222892108252404769583897903256543517241086965481880920761898828722777986080424640390555719779244621524319777173270290993139529811437717497464980383114190104623428720130901414893934607365494347103131049931396525892545265286230376969153243162774544048278554984570656791996398708478577052903794779863914854601709439881741329004284804153467100322845912636715367875831030741443570384301412634500914064936897844971308292144271101494587158714850125050273995544266902418532245275340508031392499273262137281690409738273768448513349011191036447618490628662688927426626613685236602972320337065475142130921780315191433571279101570039314015986889289755366980483567595136401914721790420611707077081073174278226016938968680981016656256126008839482926853259490000478448815182492465272318421325587329128887828876791817895644345229523739053727459829033923881240028447536498327594813958310043042660204963078595666565624443888283963021345870502568307161461235597019611642464427695363015124032961571693590679563812442196330414837506175767732888910666937942588624624858798533761430768327918005448956680211015497309508356474394401379718265879344757087500180799652347500843476631132610706124201247970077774271568425603142009446369378468490734621908608029980454068502370071258847270504828873492972862941823526027494932597778048897112376429550426433766032957040121148229457013150538291039241224907324968801340229152994027023889503470299462414365328936427494915101765332321389995064635185742328061766566614681139699479464340612998549934072249279364884272394908090072106595610789992748016422470684338422765106275311163737110419851136799101723474067628744528885108913920216357902802808349305774168860547058302013204225747623398148809143054470727139863265888523010312067192058838164822964226261214366827162283968250498279528914607564873833489380814561653764926453720920571007338540633280124953761036956128724793229436229910411016795170546643164021689678900099019249667304358038324792925647738455657456548796941801438641592328787227060751510982844598320114928766835371786239795469464662228553703506214730377562448427345998825911582887628699211517206874092353579188159051435236043923664373266381927826311980717333204855923911107467305026409784903566479542025763224782810183593336961180774311498267926416624161569213273909651193607813809398744200204944382922105843860426162849683529537907102290092378634782443132976604035917961558542063296317196744509143741048678763060305655708211205393242531515753361770025958513219222035795538756114187320079168983053200338867983488569627079011730623492858092173566454007543897358410387800903660090384915934767294488789774079479037418463536618400657277771536295892933061666352337662455102792413228920977349900852914728809122315844630856394667487470124904843723935822964253658742001825342605770407359548008241257136958093964545161955642131910346327399470466675085419214440773856346658823697267492371755996478970792813111748557883269443207850777664388789624520667064826375280056626950764303785909437642935006744823163703982390477238275416860362735665192379574947453035105263821134752670358115143087863205084677417840027378070999578345999077589184586914641642803882858385275675101796487299722025352017714016403241832015068471201886458534497523646864777540606317412383214658844460946757480550747751615891247016185459263478753124786272908867618746730213870474102889603505568172845941493806840280586889979806948102574333682056236286552684259406256308808793288665106084208662747084874016458950727294691052533772508636230386727289517341061437138453063575794483548424081218105272273701340006375965145530310990951114901067695890568228225239373471723753617421226467590746795669785910046715677914683030778643045907458797509725965671725174798197870312597153711447077148718757652248622040065281203722724389336828415436168169702380285075041617766496293051435687447470587052509801242446742434869152011320013558004704066809458049331991114633067095691718744302672449614953847842142326344202765816028860883698092994949802232736424647256624671680851940859164325412795177472997615481725510116791670173153041605446543413744606665377076928152077043929006011696981561460013388623709284353924023028170152692037606274929454198893491994924515619302240519117053936144031109277711626688968639401395061471046579913666281535783103839549734767188941870491398351379117212630195196832205955688057364018745519407508829268425601977769002188795829139172494171129572053787347580763759280823059002924573191515321864960730816290646192962849609308631377519698025108555598754612224891164207597174103004552750637140185180715219610079928096141343713363129055364888052608702308417565284219728711505271060039304487030632865768509178275754957250715188784722962585450522859857169030123309784438079938145859535190842509765471840716052933372725662268861313991703238572980844761908793538830788129920578488858384553036557727435663773306319432025806494434486302498278395421682153669056289842563760228627796011958601941796696787545824448894303690794845937889851586073051692742105265716965301591817022852754181879722020188212306216096327487171069324292096744744568666657240177869737848968694134998871910592218873090924620711427697589954346149041331028161065164003743477474697514915152235759900465289363709368747930149911088289589449577556551640980259770678709196512935647267822948356138216873463169709798651594547199222061837869565048043468860909877624631883811630596012908704133815081268966353523601086825145653035863122089030417363923632730070759642638445929780461278717254851452313945621642388628297495310713431589284600522395995154426664279485341990668625286007556019781759873436863435488746731833712150197116694601128752333812272199175173046926414852434420888722257801953615468700410228634940003735138574055555541217846641857947915911791444170771463814204966276285646595675612554679685553223553770582029868021121576675794870549527014664457760002891923851245769746717342321466473865475646398466404684219510959483189436941607361737093149056615792875173656051068926268618876568231118568425371242366016066367464918608816589250283525890990996212260561333088836913838776396684560635676845990491974748695231524428740269576386008152983900033126398216300915462720448602346013854422265747429900785143685131876066753178616506221388286944160519567869577444883532818039774711032873403715689490421234991000342268006404807887416856676530840940333004596923715051246246344637148785806881095779256388915790787451745590354301490877701098689746650703109752370582792986633688880513935712277929711356949266123962927397610554041301933450588951626303374622329240392281745978754309757702430940678802018715583672270609453270563819942986065149866556076294087635168870442936644638523236609371523944708678576532161588455495038150378578519271649809056201079268832328925094812105338069802758355961479846406148749997162832972677900358951735565770967681031953284296711220624991301832921159263248420940525367895174855116355788473318058913018846577366014650395528793675511173577477078392957853987317078045240276791426328566590061569680793244161429138931908811958771285605141953573158143168197272090696445738485822510918863239260692048631230782363384002652140770505893839193012055141128933306922302432987799399954376817294808539681193284054100636237235815463289684016596840372108645657173662094849101671786129088657877422807080823124475107353037532032338347423831460652774540003269661548791587937702777737508338253012524086131160325210064612562191580784543635652830967914520774142543372926708023369665720658735031281864000273580405373236633912232280968354452620175142912623098012102286307409738153996615195309708377047542336455940427284249655296667844504091605493177334610840105514124038453030485216625423843083104879812003488797594739165555806723015715586572238376728117108368666186468825149625611700356891157002924215548553829276078460095093311194695222124608165964155920919235979982833188192156379019339686622243701825033655828932697980687289759082994751490335084752002084564910504669643901853207133654997081449526122923090381475195409704372764721332338887595607406409748417936156822983551030846880697453431017445536927401598248979624537904112524050484053547749036473677619220025213958530160317841591890176310366641980745034934569740984303586515319796924815195879781698104761960539035670770882292199021159414256362217798382576629901165194492060942103772700159089386197798144889433144313215434269180128218169281458161091017913686655212150416061857218741867892778667717319455087142655100242634691968266149749636298439479521225576746704805849618396451872695402046043550778085935569834435526697886045391381841665506589520616652940417259890887568014512355525111149231753406131530378734408101924282004901873722697265893555129139544913406911923726374274223078166117205989372193380076820185993685714421276865372147030329480166052281793646336383345811351992605491180305228357216447873424378259437517483081269173702678807330912728815563393034626081841597869306531680389074971724350958197090383131313059286044038751946272347394861077346022989944286829040541030738480541560310533356002092726321056912046471942321199365410162688022115551957021491334452060890538475604589400764970330710042217324920161680736636097737362206474371130675175199146148691177518764777939425379379303477236499229061258784102665742529115855016032064205272750026652091978702483028453251473321800595614499016726682707398264864551264332535399024692517816537824687614195180758619252061045955029061406637329959268939431832040040289581837931061795206065699789199892921732588543869142986169149182223433433852115129580036601417419488157559743953384454471738052145303056481221747829805933079124884638968730687665849297299647680695261677689776249567067975860837509435360748170926356897008287317489274938297760782451470379062719492740449018280542994929300457403152591760458066391114150274102216588849910777927253967593032832169471056485401491602951550552932507277703410325965055557075247551161898132703751526050080672003083197681135728556284327303648653838251448621713941336318573064013810834644954950746810187893311037022262880824207636152584622547827473831198717697728791156817965266406149817787554217610812143501405434521619480458052123955820236666992535903706045481586235484686327742005484077219066734800817626968875804076742829355607189464848102087822972555065201647555964566279308490231102898451164542941219262986681331636383338854543790624068274630772516527319342342307131350792327388839558840361766662393937164139241628661335250501978228760819041696771274080642483194821940565782842654851786985656082036835016667840831959294183673995180498667165616063499347873809447653150795164922996209133546733172980040486953003430470817200395224975400674306164114666734676673227607551109819872044925755927394246497133740014795339085362579953883067063754220262368602396287837624136821577472312031159215730177224911014932478188175434903887175471536996409258231945162508384938611090124668882809650695707995362487703827132289468237492967399422561062717063488715766697756480351991649992847875858250713398369442326562504388902820666601977178788629138718355661371452253290179711856897391964934604448521639936880660544771225775443622667313483229445225789411800526748604022772080471658134061820333005420587539082637211543024533899589797770847565446156023834763613178333272069370615348704512799175428702207554826441829879255051070694042601096252615508042583016121428579072790032099690541398703372294994782379104947340057906131708256465085630739579003668813706313957881205290306213646794186550068062469686520588234581333555819618473076285621334400973090728524163770480237885499607983874841601213253249424842121730342183004365860625472567499447257932397444261837862846205894984377672035291924495632585100469037472413223664197913704293281557790442538782283591220898152423582999239659570019316181497005674165127858712875657443268093885363727466546561350658761597826382609166637418063060901628688758390319719423145098516521336020620892652392452088491607520382098648376090831974048649286950245142225812822643550494341215536980175433226594193369183501614724126983730081566432230118934778395786979425291689058157735930176355270480942966719041380973946333431312156131151874151418999076827731761880966226954057574606588385642250748771410108376816558851495247163508108897353140531208834836930111168934297082070699470647932819593916636639740546305586039911978046713067004574915040981532031085487444261555309257639836804444493906569245259428340998777706205839975313865818806520913935763517752272779807654110338496578548528413922138525257070384629875936111430682778625423178839335085605377626548179660087137262001675989566558507963419413268617338632310207965278641090721491681179772464627484844824644428542527475647296290653821741275544913605737059369305309675803414872589036539355904428131102128967918824407950556661529147010698540606090290937312208509075614018661752426554737824586521159722572128186074664577764045854763250772926415658056476246698716238955532762361539294849594858449556430928230556284258957394167983377202330566288634779464370009069696962963800801038263897517694668352019166483982486031966101523641923158360946491917503983246703754700204215724335087055405699463086384534995384016399387179801732432617841815180342272709957191732985198016163218685959146895438859051483900459043518197272277863804555504088819640555004341772597729011644993958934951785796592245162915131395050297130753125378860812098667670797465535907573607256616185005914614440019423749829208296103278665075924455108093923928215007232462517674165435054802476635903510738055624063592151910150906173372014297980289623852294032013615402499392893104956217693379268896685224867754147656522075015318640311911294242831526425500743531419952783357264012332049049690765354358204893747492620349872991693560962640109262759938093341947899739980472313424773955585573563088667800505925299852081234212064949116028872512156253665177443036751644051908818385981784874849542715938023494050345847227323283012693120499359172752585232005505611318838705410123860744171314568509367714554200441631219103859023393351733467947845564894375130678015390023223694598241643327087819891452512649866406491396185183191334735910344411617739565159122733532790544642693269497179588040607336395894676146250231048628706437309046738787704573225665194621251662753926208846740520815193599792185344812344876790043484625964682392579706258582390227411044460514773762504547925789336296546602684430633303377625922308780177105663620988175045367015582997842625168677643111969243539265779175628412417652198420503989253969588254266232706727035679399058617940314918112416006501721161456044153346032761044425967787754239469943653678533661142530447711773286039176043320843477969040835423997668984237414663468345713819014126612845491570090529169788370704337394650705585665759112505645928255330913630155815127466197720289797369194151512360423985477006452717142925422048477226800973680353889748882834840354271848438827990955935684118559121217662258747952531375205964709708271959103578466732345686900908194982238908974692667569947871538906725627636341121037335689539086312676633106912257688125780055737760513962178679337341302049088567276912299590394153677705307235152918661681644983300927890793233189683939505819504552932505493022138295978626754435438874679704503729716730447133968099649340037529523339577491411657694925805494339536127432278343854783229639904477342399649480125338386199025349942381840940230282367478828373519377805398346694339739218605045132067870734212168694300172538180111530181152336523686628609160410174092788685602741787571574822610683993514546373596772156650238475014440313197309203145295333954709269912879468226788232731800699272313165235497877172111231173442520248426333709852023500619789572668502098169690922215725738992533656841999797075562100578235233115394852207903049901902325511698614637877826731361500351279368040211903744630831570883987245804157656177309953765370733957117506126735895377484580904909702376083754740703130904044235199261842876155965702653093110769211433454662339723707072019674922219410968430160374554547078984627474782339756652545447087462659285773484089528373376726662813833774430918651007879658101101391876461133666296535690765335720196465889282801782346513111982240729374133623681438885463727658743128406778283363204657702992729630495642444559550719463429131316755800638260266669578226850783776863715615538386589031523892443217059972925133790078829280111503692283423153428404208142105307952166074088067875509123665305861438441179863888192984608579830926207306736507152880618237095743206914550839364348344579117617878310189455961184309818088016961701161593474518595774635099321594023832820968203565690656723056260516238580490773910805100737347681198783139570991360072701833981501057617405580560721533176987551675726810126439229324247956581881819072928794808396703051061014328340239152358394575288278955206692473352048774411319520422411915411602340671938434542318612395328488247539564628927620501730528705834047445877382163834176375409917850717878623894564779687748927522464023538356478454744339871625727773746182764756247760760515574291738913534995240219243916052460984415991227509124739924639223188162752187665520534889872720150987071102034329178971818129966155345909570339149532079735696821017489599784945360798959167392672858395461750549950155661070578587129676944904348240727907711707165047053801190400677059812654902216789143837280821985082682262526804560582520849840820025137561205073121179868938756780796813731397338822964719261613112955606015661806522409992057625060546553384881986024391567396495207620606145045295865449406982313343067567361791621134703908245540565541558378694957279356148180539812851438619771704242193258025688183472995024704514226995484121398794065884070917877512756680661725704354346525186999514460112297610003152254862901453913560550318621127328521776209703231687511562274282655498944713489807892856273920088455727941250825976888332744425266753750007068961595193203529492307997748243867496266443595100439071876207672564285286350874668899533529260888324445154276197857580130746714096662806883815467387088022227438202027782058568988949716510995805576752797030884660549267975402389051536979479978651294759911192209782311496466722107798000602065683671030666638971589867532538404845866119797148779618965859418048057976649172170723750702375073869200895819939741706049394867011437492532970036959348109176899463160282460916342063620412118652639785920846847147758862697714958528662329053122466426676195658208354680365474899078995548187762118951841505736759537946957356664007271585767921638450637934950184317956115338159091798449159111368873929444190847862604543664311606244750998808064046819814091113326052000739383747760468080493949425380145288911780750111489375722138016075212191724382997044283234944150680840612320021763517978084296663054055260651357099720150356660200419685248742906065904818452393764344679218490238392660071554426399177112969660729666283899716377092857283554161271909714947274754602136778958195168720327039948100543055156184499093326259671100806526892440709966990830403041017425839460778668345732119418608236576256719794427291652303958239878993514131605483110038968101027263319399294820436887541507782622653772512902418397643637708464154704166954740215752526668065272876953788359313840357946885635269082443820287361442555184078019944548218696417627902838625550832587476622924245494455504839853257433907898505326627835518593683868108228700013536456075136258235074294163706663202842745845420537297138923406970675616145376741858006927478701230237016075582275423090812045248313567536877112931442961036767180794917375570214868680304170438490386558605955891951674324697370877318898803871429008309516526365302263305385383745599179630560375956094376238077829889428742440603219138744646666660096482900682993921075577750050130044106194349932112755055975861234778425206632193049719285896337816197135882403425856499498972913832538694380551076650946401984953949827507229908309176621138288544430126713858426448965478540075866400605382040132376070939568393868876625138821893064272654480123047975330154032706236244981141996770631085300247590040539377194333580459111085602328908444908841077909262526393707996489463014967700410953329419025529783929102013886518707417868639105635088432060247352166860343779290361310518982443326456826713788587957797024417060064792101889522401246992106705609615428972512046074077340679894674710256355002885859639897597873025108300951913879740074016108415982527906963403268686947059489276094209048980842570589988639659503396311067290640712134722927889179171635718738157359846679229148080565325333459283848531767192470863884430578263981644359018937460174981970872682463676975997395827119720683274609840241036178527471571747967206059140231051869301113080167773592834263459811720944005636343226124515788890009286905223421349863089048010409682391580790728816292621469659059402589082345860614788773604945265771585123280030363369825802141115818225251131453214128296009790536775757411064116922154355123931492245108606190700958885747405951913989471787752611858839142229921810736665135277404412219888472084943804702579227255338888806387517372186650063202303834224715211832191074234139633142275990812900988913703972524291290359193186642546627787824419109270265741698274701098767825845360259829481287495316763554330607736021258566293549590640362251668981998725603542197197595088344587404072801322951640018683848534288225183049447057379919594467144776002981847897261465854542809027920160169626401713571353160264321670303730049654277241976875922789161531400601310966186183012668842339556495251015226874925417618959394251136411822696687254578717131223082227455568256705176970218842047688220999396389208653387276602977217242881429930127458918021026011184012057525221351911664482878862805471547670556033631888374808154218557008248082736954723164178694661614593421202073815642140461845585001621838994445554269811448706705115719363943789169348395714727750372398486056010949350397354140838795716277740170672804721011232399130300353918406242176687038584946637845797726258428926074915061124130256577167658729853731126150372271507493405687309888675055619015287026194115312383117131356097054550887582225619967855795133217450216260693590682155764688443813082532448141549064604605807705966904332019929082969540571467403243566966483053930997203963543954741185505200401342677633897899802481390824309892035923270338219306922489462528914784796699690319992284812036551646685908460679668942886129671383765404145377098114179829561187776934114727665599858641219113117685706346124363035682323730461648767633086949241188695045025909923045591982264425448613495987647994474539479602565059208082256700650312647878947246723515621287148260144391052799603231458980250343753381608836611756771850757083256027855939252019551939769225518195982108448472656094740346078897335160102311549027193538628200464804852131960587837561188192112975028041944018745725036880173394798521588073280459848854918980871871731205594850544896072267753389471658419791928776613884843098299889035156082875562417627287704167968744217784099197887218401078725317278067547722963401676437801200015756696820119086016317026285006541127956497944556665468726108321051793681733116090507660793704659649350271167722257032789172426660711758358080549742688731572730723433597532630211062123643393890469204057120068652175474473659731337737826622733137205576647097596927503645054837403259233942584182556672933033470669749620214164872198791881103728360097084517234011176583089422800341431490550158937567734698124224348990055784691204846417949103594233289832829698010238676701158559642172457951212602082206688858637964633797507032498359227908400806999905273077280140356131491543661244359991164291024934546523041129361255434767928175188329236904603683514649570393139558723525001204982422598436202836086050092895693885048227420000957606426271596721303903246703315155858435072590901964198250906928102270352620342297937023451518910573378453318853993770848918237327872469670022151668172064257812120411870091615162957796078077205111994193461916607179377949603405651893435538557930355925767953270062867550447246259003473007944577047282217329238584710160094673736942267401357636117020515373457359705960187120896658228609661729256348481195740414947594342835008593129791344711424568839972815865446221724887582680903782985671613597929632594512494961122416818071723760081928609748699904166300942279586649236806204521162337921247082392074984256644856818683731919828444104117090076758145025152194551526198235096242571703486519376661736685138801605944236284983118710300621271795530929824605697115029347862623163879066879766414844870650342932936274536812965742603729729231557376614784902292650517057700871951227359102372446722243303594626650821849276354231766481329943574765037643786298777010051891413523959821870148452333648413547774859280622646314439451304294485627115514015320363178731537512743748981848685428424285434993593938652506182408782920436896149935449942362603984185074843605738027706069822340733005782508009155924044669859137208117913692695170788371548703185268137618152245622362272373398381099512628914371812117444985202101495427793179687628058234272211597419402165742824742768214152234177001790241758642375564771326131325034621986580551901217918485074057201829216864002285101237839860102921789037074575646907183203908015809622741958875240700359995939322887539258047749652093000055451470371910132076316227397234802206724087125739497158462272079142080277432896608794453793951955818300973319682170861490479590833441537556392380717046014177439777536679704084112456949768415091098212689733736343521427206198574287478065133450670048397650968668104445017524129975229280167028109596402120663390318021079517642660950870969176299008752271604149506922124997054802545330504374405371428695026091774825887970902801106630143341776915648819302505429960044633002434711341325532849964285421397075737323507239053581650186680772546002115741533551071146770026704554229717379102126853857801027394549400593653954821485223818423966209599178767230629486277976998233535713347752310992585880687402934172972078056386582624076906571711735076777172390194763325271010395455590557003351786520715902441269925317511305619359925165522663065264106085615959206285624489722648570070231195441902781477231142599220699072750199786147348178746627783410937706262079140505571415990680914456789531773160805016037713420013666664807989056113297611845564255464340877126539624434562063323403813362977683526301980378686700681634004797864372948513112619455317395651890546968087768970127253197553833802192978393520281313985043826598443151044219512257872260157215492236202685500940098192729662479443331888209101201522455020960977764667747327563342974499316299726928594266557541090164119056118556562109806649431017517211153139469664325891742502872216103234228267827943682955089529884825878978539610957032531438626709589681447959084686467147125633247453093794257322100977024097204871730867398649991828654092573965397591641559282300358104527076778721394835947132492122035065668154361032724639397519463265304963262699104680212430910534023052132375287456993905159865608502701927205058452860385176286611834969950920037555872312019240554823886972022606060909299615959440582009208236279131663082317927861137851477267768175015929612337124264398764125356976869366415875895499241805593577436981242773959343512868072994975403878791400623536549462799467625142775806585897904737460455290319563705134907238626611781209405470191727741725169107803595427072876310294300844060435468579408560698360856098402136210273429168525635288691668219774334007983122868789453713918780427115195826427802249711320665642224289272248100229933605631172190609828423149124862969818989223859434698101573217602413627476993752245018765662436300423008530968589231552858453422800094905003082653222031908379323848229019032507303303869730818886869743433313901043468022901807781677197448477204623657909001768529902998446377678342474799706109424181647156997777446946938026304754192054824487608260637295752669650641058448746407092794569446158120383859268110309419596072705767790642653627150368608549722633725343301556082556036697430961883443389012894399997759972155625285538399054933568493734909787299714584827762789602167147045738951154204099292829395745927010951996067195538086141630935126047126792278607471821105731942930923199585608951968450107065579084001764913065248104779580181365322638681059221938961310933946261777561777922599916071601873297719684039553023961632300989184351306034403532707623536228453311893060915923107886323237414251177499301706507900718433036103218608838798860397112020880468715519899262750539086104096308352445335478884071437299697164743871551418693775455341575056275868537434260088862880816096753850509274082231502584426381035832598462919747679457851410028564466259544061460978964787550062384485294906270068784593499648881500943035308230663006161187248419984802507361348112471502531539761035820768046639917707804407826055395012149287249880192250688186398272378360050183853056871786622798520395870404573492611192189680568506171498189952360183440461088253294469306202449024013984328543917030226938927020590940762870381457193261522083099223573528964725588168153223770514502756295483112024360062143830654206482768796810446363813087359524779238158468843074049463454457724375033296920815047589933184199258327756778466498236116102303568610691005240323530041772840468908614863089043358120862596187974457509599671442285476484104786128627717179673009114262129195484317434947465417514650916600762109379798868525417456008137471505953450332945151839237733742185312400019459870971650540966662705286081403374638999903052603225550622583321968359128763232485955351250798513856523756034346086183295293832311704018720849470249408080509631068420758897202428777152662391327235354943612840234307586219643843612919887381447821265069611547616580800096108141750157509515022021337914052527009513149831873421401781210553440196544291839268489074239733212736659490701385667332339250797430784001986472030564703278047346198257261725116435284049907191037997813312618872851686084185817309101467888065042404118644879476911860788474517480098937568457816795155817937314139550680668504248784244336862201335346710534062403164080871392790424847612611954938712757872353012775432111502757521454589407867622971439269898719549723056345261205438636697494229429095955484123891798541640399215174006683392845393937531078373516355117509841944062794280760430526802388320336012476571168114526470666183913437989474110262754897110565397771752073390627251940957572786348715315903207908491059525094226309859382785324087743198306837630008536712826326393886568089102578829107769502935921559550818532956855776503328410619287854531648318927030766178252351732757692827974334488505094132775875201045782998798777368073593955469723428043943544089267313140968484044091276874690692608584353554300262687543909275442472536872573196946135350510871015179680158457697138427056460369587567717767274453967862125391755809656902024592802153209554494026439268540384798589955574708589199680808198198612127824619107606270325210432621190504703921405462435273757297677572297534106642523210888935333352115636592404038369284991748057546385342075220798084751847715198031877331214166424028852701220016242008169788207673183947471265232739412863043118462927281719785165356734909661806099913886241292768766332877964363561174226667037144170326057988110228255883899619168613639222418022109441227349238203140178943578760784398836122274125294038112368122159096847908746925711334988812194765231566214105713396391211633957391281261325308442446831848657188095341325446126384068453770508329222683105505088047573595188289961374570239993850034189159447482835575086022466503604061052135770116421397020874414119107693850632213603941986722171476063226799109551369893357055074077150106580033051916349823532062232523973915419218572270973169550878653541108577476963515604367728518878545291207126110837337798990755178795856759762106838746310124972779314800042651090910596493861127836512451190444761804360199231215825045392957149128312553128968574714735632045952264207744078172568075890127282133443918638008841345540080497376787022493655631119863171886290597067755858074617798626127602775451685752329160727867933294348252314721094850442677067605678336433516665451155215994985640718724383697316872995194104553940111901345680201332045020035575420697260334423037706850928072415783541253638562981812780900079573712073369562327550888531341519358599528764874462319760208271914029926536204089083733231923214632917177771592947628896731362542641081904085809909223978543839060263354831892008546736533899481866707398230781223003840352696274243709271972692272658834317354020976637721925905319892107249313416057240113774178900881675935800627204372049374999718241719731574899191920150336501262493535054842242015803805518642213248402022053201715372910942093537580577655847070506755492280920840955255587793491754319622994904078069728591529229436806083541800908153489802410750627475449528202535290401533825587736506605839270345414359285835975934551024550787426111170459241958894793787797656655728855968878109455396746537738253354705526086560188269109323883810418665932151266333386507873156874986370489397041096183889332785403892708709314768454584701662850189931991841341938701865930044286552514486493256262910781979076680371717613767130913753401131133467628191716762603118721521030414554819815037791681136865584136328954132779146216890341726443092493486677718507278808597206389421136526826345801985692314679668799679504028497429376428834915957330238340855919480584288751992369008617397693775790080696105643249310967469331805838473544526231880732852614565578097400274633396433956840723848352530403405900801845870148258938729718315927667642224369755641896486489130554921785249743496679307103912801513520362149938416758967153720216758799330075326326086531922843188100072786255054267058520302164545254454244752737191730757691244189433485376447459236339968829805286840541957931158118314029588739213032390952338144140426708339072440574677943846695402835615755906243616118563918042982557046167391161699852863341720225522713825830496037244629598299439268316535834890000049072038506784864625935442079874137048569494282241936923126454141153180107289034557121489665465629932359025488677735684635249769033118430794958470204630063864577942997020974044348677437336207100783890249830114236189079513385821072274431654911584852530528255375790875118170314634643691372851548168011639615135190339642828345581554643218448277196275742406693857652016484604195048968225720697090418176171867511147616841298978325733686661842552213563577148003919605002805784577395353570299832861292466659537642043293443694725266071211342318090213489076900835547581890341149575242308281072780746898743039831999882380045076819904901758048548206941006454135065687137303112789522073529563872538012352783920668310286474339557569884353024626395978196395901057891682275382110224961521109663726015158376590359220278157538878003528234813246539522917348061184231977184034426004981468785864406496512299439713623301134666037741445147478581095445840524982994457519860062641675081331389547770747942526721448245998756701559221683214483013210596675946767512264142632487134558961116800854172191088907957816699267671821753323592891272357203843899567636058817964984242496556516514393284154655732982106562926339146981901622284637470476039876658289845987488463693133083323637000900157827204346733485680940562108082844948302577418389888737860391072596174057057321089553276500470911198570797771556230411709066973482175801009865972848202110498398407762442649692378920776551747040098990871096233776510273521951905853596588596105863918639126503679293189500684680458109840695685360660333486048226541733586886762666282858391247644608888286026289470169064962909019930551558690066333250098711279670675881049921357730467049444510178639286720807852778961394504171769083306331145554986207991254822457440599605482594562522286606395580382370864977582661227458606496035305288032551338453209380483818698272493058404509462678190212201932505659776437887971128290395905639965530590950895797017450467884679258635455901495050517709044939305793349252249486934120275831138028266063897466506365088227279566340649739320998137093313486297728424178561821968749710626289441360850261281863535748351759235663609852105673343522135139249904733648819995101548877110075066103139953544808129823925750143999566766298744139270964370112453174257112621166098633557025782583885033869601770048189999365396441363528011866474437711773353001167743654062013001370683584704636906897411728797503189352004228629507998423668460303490957530782384922451921051821688742373763104473155645710371262933135087344971093255500099826954132760871722101387503862381647006834445043503576358635794465231019568235196338554548551943193468605330788372129438341863656366508807883449595676296195280407584889364859373857236274113820145692425739084472093745481912066725466948125372950498127055197254663465512011285226646999598931550737252026246411665336037743580906979393068631784018980440883206514656936216851914527449205998656445192991230811741485165988577290763901458640094219095605736714846659356680011851039207634891398907667187820626284025567573367371109484169334550718901533387324037035346399894696236900310017866590736152790990707059743385997806966875389588862713277151352480411184701307103317776202079190714517868937026640154953078366434791870282568735478127662152512590232760795650065152044075594256706926203958568409507942980330301430269122241581183307940347613816904459271319118818413273812329243437877900320129395843308530418993343481860017488824877219495142873395122529969568302360524149993235742881390090273165202142649731684953665506410134441150450399723595404492430868816834542879844956781274622886348044485056769395564213735850130929598130063558660576303148342706161538283008078025659641136836450260395022853370918419994011053822239466275835196232833888368905484405332697482198887168923108333601130894759322308396719138125419523376678247787922178442045177575887448347150467978639400526897056803793965344113754592283546304367873922708032124956599430219143847682889353868263363997434641999433845235514201794394267178838352713308220044852581327650105294409209595007377945761515060452823696278640299314157667768038059899163060988353541789453550888901994095174358912356359823018112840986482680020452735985821480971701159411463681506859960206259839314537704808595237868747625286695554628356395544072077656407770448613223046105563359207036680807623640961222091079385028488621601259919237519557978315886504062096489576801060838336642946813971618009412387255584489456799148025733862996358945971160370302029836139138226489495283625766144717555094170258039871079540951445676337133618875728220816161477045049189692274309282606852695270332258570009739029009771734836004212290700579420941644402323815342756789906785906455919959537373085318943544791379972121389056191020304812660673710799462641409083489755125892352739325796804194510339266891610033906337414640695131771687467016336383603823489935033208104363414564512843274212012393264693172048775306642847878687235448024255355988821646702758785522066185858711476635455783364871987864521688321682192380924870030150523528451476067597994849348240108325787225546500348299802483849417605169312707482293127114893296547782174538316383860019346897929960995167429609474670931087137151885291110710861048122239364083620201130059941067465219659423331892450898752012519648152125315410856934643903915470475074728740337651118239092253608238554195436393789862034793242306900796029962447414157775176731197923540995295630315863251458935092474912393818590140929444713197649479386157509136469704352703221328702369644581210210053629351153433430837590398439403939572228605295851866547793977983598680546550519613013355417762267572606035006111003873583263099511117279913468321368336032628256646475473636904705355447680877009644174448193192030686358449404861250213555880165108672728628369583183244940033084187229476843837289297339038654209399635138078910255504642875010078917585379879873648258363563314079014091195459011783712603491691593909939510687438884365274005853078836419446312345774674169801556379456071863828983152984457071740158926881470457386744139073878961949413675087197216421610734119425805619626688069286753291704375159177027274142962386238313304897627590153856418209748031949206082498539189891725846537687249349897775572324318845203383232140328656468058462346391961915479065571788787000722130950081429229231745562975423120604525161761316460989805437999522318888521518162758889926989189574257357458882955929431730157031027240091027165257412878620247515549894746727161712045368213336278338903779544062813380828408283845847099815552045891987726086416643757106871730012319197198394226398422053749220104550144985285731517130633917878245952742570028113348112781863097848088063891811333690319692239400711140061608544370934762400956835879113938970093580136229610697470695004995327482176772680857505458188846059602318073167124824794622526823393363591892760516074830891972776579127672703166191095619218101992211301554077316741441811953991505550973373909041851767822418720781362703882951528062629115324770507308505573351062216420925559688912959058924446059589737513368835210664069994660166518038993982809949581171637120130626124086285258234115697986880721912652007406276418502706600672652608607730376301032307761569533057371964412259753682965514682746380366753983694629835131593276789082694703500950675527921131817004864349763192898848922245573622193472261575628752920734526349263923173524517649363776705361300096108577125497738125856671199875461242126428036180123895849692218488246029716129971205419555896586623552917376562182264868942687596013157056764453640874175878237933580554884792787422120848554879609896447364080200143288585493995996635844858885158366854745757166919846811809645205493778456238755747140529432352682623492472472416133245795069255961189139318616642270233383064157441397122175719492361116846902594125610488546417878684684329387137903027398448939767540200439554465585445252429646136241412101991133163760794657131262050253190865233618828260375556961369485755284561826649764117213220245368873923168878900190527408561382722758009083080224121201743378634804082779434437601969552745836059308902863856423481952046172754575924627932582973036425384678519753212968953888366615862984821660134132163395472553528265367304822778413229884752012934423382013796527677758345706716473732167800319905142210984153310110655325028479596787135769377737869675937449839543775844812946386130762908513546195955953885411613086914336462704685902120692861366061133954404260996577294175339139029310392354429724562799163880463801669429518236570953518596941264487482177497083146363519628763251152216284114146099104231870274413735015910556638782342684599885365868705545785109665124779924804325086177797478506209857260973185995337540762196432956213742345594285355763646805774423506641622828117794039003227569305302515223418025206794826367494373416819469105974925461459073700240529536580524079346475111417816388295332356615705406625714318105845090407987170918717402886031740897495049042858742503686555150431145464605090149623290175360876870980321039582998928932385766724501234185043403258101481004654022682938091682583243030378491068447634922599538560970757543916472204625076479249434012200622914093034189113503921749832486531761879765298145753586479946169023935241725180790920322140323518635176933602276530730110973241384971986389307671278447533415432112080275558356440291782929928789957086216096604290865204079421193321715028260381338586686406851092511322180335768654890836321700534106354453134715741686992329164494822894359498066460320592706838592636895342384968181631760688455060292063242568113004727217440769628383380825184234164409943508229941081253987382626093662028478614052644100679690095428571824025040922957926790356508701176903442239093860203170081092475876048095548409595575012309950319995941667417432556947316217519527290572421940981422486168583124750463144906951159332076960836790213893554132249580972704954161397615590846334695409600945462912266171980780976933354047858718103372961812748296041276062676748842238681482135387972826749161482661435970775478105021887547950119604530801111371376483241264552522544675187516576212460427516755178799299675510407828750372356496343244859798016085704256384257424660076109304407380493865447186498382121345208101634169196352566167017158630150905880131610043434321445787826177510210128209517399153098439488629455407817116332059326139072020586876633980705396739834426097108324087745265778306043002266214335081930574156265483697208571647474835045788875899969459597059810671464757862256160014605073408270490640487148202886652955206297336551253221870342674673712550941245870924301023737372441415599841354857151063301824478256001345918265753753149719848132291494252672165768697474584722624265268498168605844681935489916498856227987606024689322889830238967231665108270008260770675079237519220474011222329129272022869148940825301183112131482939111049581564152142409682095145710111969250921067938500115756087261174693326966274394221534168674746673518276770559805232345488537754297513899870486117542788785486464130414095390185683770866924025206024940393667402488157544499671522065276761167822582300429314795116946505506613867178150592211113585818140496897597269088420255224150279238843996230791709501612966276757644563609770085568150099602953199473870588567981176584286915342131733468529056474078143119595640608133147050219273163853418643827099190195715499539268237079378838876545102117697468381975407253049332802257228909847687632463286706097549484467895800739826082944565875083149601077638213036625797773296368753071268093517617103206007521202277523584673066006805795617298513824790144207664711817591448340393836542186605693084071815824421703275150117664762802881117216185162035366890387667633777658945816687850550295489508278603319439596169188007699620414531291574992871791301705476219628527077038563271790732223265862453141838199287657020124472265434804353109878085841176109703845880451995493429596334605468082372767579757066902457333269492174307925312537662733616682008291004257424144493380724898693948029057170405568881847856279517585586124231863771419007210396556240615132166847735258220229373276113277924252277456015454102710601665790604777635224866150664387587727997309389315487073212495599885614764774490044772261203827911841331962552616566484022089333289937167348061837793540390982096041527534565836322611663862584183541600951384466118416794036914023112577985268150002745603372380751771325846864227903509130820525355875182876665727827256979425920283455737783365390379560157326468589899782366371349123311640024456739669455108633595876023736670983061791124878473277023180402216151456446917287927313411627449319857214538585757749308239764647830261707601365825255552258534675224380633748615436517837314578085336867708477185432328552330628564632793593605238202107373912403920814128266589694941366192686440352779127368929188385950405565190609033287921487566933882430394891276984769612900582931866580376374150771024552951708257046009154630755089766866113589366397268291420720822418497218473028853936588010552808576052411137301510528645211581512464466839284660499403308261181572924955353421480934736178774142012426068662192663730641543664087622839526402468905796497955482133776293453853034635322411353049111880614848795516882564049559718734702855681138623605243521659904216109079991207127923063404304422937802672561651270086409713820432579748954746399899589353290933257810217696256977724135768753074670751437565335143194547912641707706642895452871071963668576391478955291260682669444001674289431851066754230466715738597882065838994828140306334178850225846034789340017877525307274044403371865586211247458088785798779548280143706501710640720477058505072150027084329552122765463264412385870561038822261206684355112612794818465368656422224673207219344827269258378391937797995856144951709859760708857627015027163459142037443919203320384779495191309587537108253833719155618845118001617467908610211590535248034168961845111617167237300979764827797435752015353914884419088533352247434658310928024971861581026449567343216875686003905173099706056071494779307791882883069129360292745523351342498147368884720106321829462969186723581883654043333056087281240312468022330108472761744246340264014589569898119231378571932607629379843771163171454226534593756621396899078508668160237770730479355765032604793374240363826800306068069356447178196926273253196487509170471301247301557149988691636133340602051961548893772071859941051974660504468175821969671230178440260886379784784395594132450965288774907143486766459848094104425368806236775189435613095729980078056766997837554338746974292464908477172151259031089642092928935000761393103715259626270834096149594632426153643006867297333130911710554225775071815848913862802937678589745673960446780917684802858440691589408192912078341995528305816744735892785038444538194393061090768917161502489698418542741598259480353681110868525707123831227078475175586568986763040528904933323442425409891884615371223686740449768966704180051123674817541437644460088416204251361756610658641798040466717074798192079413466728811111598490721545539447484353930904773859595826609928600684022341056510882998617014932118300276766082900152884170143964013215737356496240923712171716060262220993951110697972174802751247716710068696183177874590982681525047440305020379435877297839426957053539534173957293775488544740389974103102619051252019256835515224222904583606247343939323745537140250942290210287251311999867631775501309151031227044602269004574359217651140992898993968053052124479788496947080332181778002689068041482355751765106386488209654664464314615779001671519356165050236195372241676388288871301230881212180792066943023449550497820443169879662085916398043444471937970650745307774881435601622845700392133802422117693597050733543371713612748898498385538505348214219220124798844158816577067745187025016566571152138414980175651152618976643933354151462644167530323801851491438003593975588818587729089886664728561255933555763718751197931753931354094679640874532535660405639121738734208669520776796684832726649540875151604590614209369075314838536443649242470746265938482415488227252662869636241884559581381607151561127175339264445904584765598551523978325887272147929579641967176895245106705168922718357033056886566262077647594048846153453392301740007548334875597460956018084326060455628074840795686165882999537857947915308394550443268281535716695777007809166869453302399017848527737829568207599343051603009761503612059752752624422562035332425255565187381488915724369293746119230333068031174113380149650993175313811730436330108113276146572939177811621670519221650426539090366306803707840967401133759728689283230966406855280748328908044476519275913723396788448650237114788829953008639009702193280392360977373723782758153582698481554649551586032227453241179034487698086631318182757146422929160214925731055420736916141805818757184708899836717802945050877479096474726252677177426060345751665071610777135344402590583966500439199415106543746647857356275201180276304771627792431599782570569774924849222198871987221941348620972442068089864596930503762069914230632563519313689953285658744061214969442255428979642921904593510726297551117476556353030650358887345922249477806623731218528037550159994016137704579274463727554075276624044639457988253052911890430665575445297562967027868952611756048214690056388843223704775495650963400561720660101008616974577722680766851364475786357326838026163137171583372414814983796434996438211357889403276394292825963331138436405815526717142829940820246860205165423677021686537322741206722184833396341556476641326858039514162502022046288031223596736169569251441084068261264834114546940677520606066337616167266199834421554858451953085008281590922898151659208723724576289023882578459968146720079488895205760865773224887902830352801547196191907969624993135779523314994423553608792637111821915409199252690358497487534432771104341239364032385370191953050544030340131683948955328708752835219100717120080257928502096450193756841610558919364530702061681476470061267844285927761131375693135336841060344085884781135045781270507987271100908846305177204294179295051633234670355282926089991150776690718961798232817445732542705065778322952451427342768543085885572187452481753031157536165226591465154735663578844558138511511869655311714663272061389567734472940292394622318374739355270632239011920559122360729119203473396889225990412926309000940554883287378435843935844779935594612588693412451422588032768895806391729641742418957080451217451984314483408303870855616770410381503590337271504659636259710302991259713495359332937012589742197731135403594215493445224862031611836133064473292798924585400132722885773343026081168294709800383668373289433323701700465314143485558407937848300652349488524305662042403596960372962798955829062701754281714833477951453092330816664706796074188957270653511530276140411799995809818398265321218379573564398057862270726848520608365003080511665355822090443450118676466458540918720172009100677986168325562888028138813034152893978877972863241934452046422071809833257611018051419493111016246438251564335067368577151057067694289787427630474946875564807807284446600924434968244031373317550083892169895266153292525671702361025060311311000999555131593624020712905138932545363479289710570480357845872084900829432424822538970832474820521424815780424243309540569284164669327845325628580265278805772384630110791491935399510199956811392906283895890912444224965507070855526303012238988610500464136162460233456695103516167780135064838426888172689136756980539904780133221279211417022810834194812607393179767644715640431586205565557538959402860580882690348935140033089328240408440636171386529323306895270548407699066471338822010396573401184321365612240389260167543644240988600026110367993388980595110110480012791443509704163563855459005326165152968050425214826302886288368238824687010176495555005564012059790231776892291411627197373907484424995406515582074627531954089764383922450866413005785360965625576398659359199913229598516527544411435839093207071807458092160197898875824301546382695146791285917217414268812464814838986606581412125832515515054144283671010691473851104437478403998681461975707452625201698326161245961921176466244267254904934501352166853890011644751838246836348448296448851834647502865803937588801154958774507366060515046605533780805897259302858409781356046164634341703555743244627887357297957760008429182328302251333024749367570394025193795399619661075641312023812089119982271845541754433821453472283614217053667010992740250108771182409766806759451536705071900476155497603401102495483419224147846650553142413083464335151009093761827910471227694888815949222568431512187308367458047725755475676775971737783226596209345049955785435596288238862284600869458906835167821525472924611397335891413427715561772107405272009013881883183900337846568442120846262799922764883673144762987493502989001233616433176946240935833805613606366892311541921849675744778571117334668740497430077321717094276125867911475519189640715943498113504019832342515957026945526584010917031701835454394208902599035648666679683235746643335471050909570019389557209442473885699081560132409625725378203113163636098408024190090077396202120538901947155454737083956389916335674152112056678396808577053056636760760939583758699856268442247603297225670827722429364442330404860280335397560336507813067627106640978231491672801385527530449021626994011940340925859696014121899647847301356448452644435785219584259307410274477313314122322203246726807194443241371540937561502367220820617957257253373266032204378929458573642108920089378940364339111792160058458008696090454807330405902474073482660596093952397591866992165579760404030138664120263808086541520417762684647048526182752415849335952585188346995863934808777209520558827251138146175556903214422935867863770937145341593294790051802123295222705635058855033941464355487990341238046957090357076863634914531711162377201010280746733440070368631397993408145169887944151245741828005058303076273024145124468573661920766915163979667789804223601126080791561491227837878466308414890429903544077976475875617526675786287719263372571859793063121078964645172772998406225726179303287758710726820504855145516696167514860709359994331200762530521835987608412496537529433983706269285570136621821001699779339800717255203227489066157824137279582171074124875689435571218534210696286517818490316398939395526642552823527002531419190051214898110631394203562955880294439143370844028640822533403326591537139672896389036690848334577392119412027447800368563035558450148064037479826736700916973781227571775307679583065999077398730832097513286417190880761054186766837048861574969988287448117920387097639092214092497481755794786730592366764010690595256275247205971390581397035382941840076337015832906395467613663473788770625858532892044322770202922737703933472377805617079162560252183802270874047103726137894694118246363800739935322879778370625526392582786685134427225159796031828853193846511389509888178814751567514228902747372890896967495399154064892452488810689360779919155549205105944266480945904022735329372579342914426119131978212252808023359915020890814688496724884711804698705286268423317400558202098588207458770652126483090090023512734122065621596546724473587525471061165811902919375640995389618889462304776078941365780078981844020156462562650675699954925277618293020742477944490106963724527833978487702479898440642090910150593733529939268047156058078413759782231240912442898873606205114184557920102341509791657289762162854746534008804088444221307420483081328531434666000040055238476792258099269070978080436268523045007548313541160734454391380204413525083033804970162766491129073596657870077304888552025420778672807009946281730655947258705943156231912933133904389124416750308099158068787064031478638001911343094310800484505256193999520887191844581829089817781480349067001504246440366165835088744301568143898114732886408469849355030559269608274774127099633501322519482427047070252504659337116576983733655616930877165150212062610635544317278725512079692429161641159840159782162721916176330229738308263383465394809853774620435794543534383408062273057480170382794101189839190385183839095902080965633813661165785911059673120382679530559241545152814205573309135739489191646482141908924701447134602520131270837439610268466345108984872500630607352725690269897160544121050406220199819462335465664999341578793591676734334881378234613791793349482840458551518950391226702693412839485060541646578095583135018547121245392755316352534540152369180296956013269255715768276642640973506558862429916259073001264438314236056128346804588032057385816422775232813877272600767294987864335835574785572861200310404481828917133300913626463570571104013465905229340515658913223057657671558593096030574385337629353906839346843274801063798564483925262640246000133214344672092751487775585425355629269156605209797179552835446189705269572528411882933600235720979365127055698550382605812860458470940789369367429620412618153230595382842969645266963014865571490548568254583471699318052148299921909355637608507122135393573835048590393837075077380412151637745325685291260193548555813480788686027914113929763738872146728062338532835066048101358811330475517848125528081349730851304275452682202476314587704061457347878403352618392038472061267762075901840831365831404646351732172737961814655900791808100881634515900730285923416872476021551454528625610776225730544372455338124843024224894149671099037125694591440540888969800642509523990032358299878296250860979362894305295109362688452810360423275857499270470614589399640247702390610358835197181167224313899734746400135910948555832715587839726504192318323291773720548256875760338230098264446872668733060019244330139941612980701228839447973328369064089393138237092708690440309941889192353219354291978849703047683776621964006785832301711239405585613862448382753597098057841216517939085368720395446604781522575209653133389814495573802902629283260383608397355752053274502199230557994578700996591347140980132174546988200087825847287963151243381862790092243385500164723964126874582240290037832882294026870664536143599208724783171939836393210931464951500606567512870503539481199820371016953947115958927525486586240678365835399116864126399560058776067237049694084477967963535570231024822204598322910912165171308911345275911410792856317058624021276218420039371452470023570442055040193051664141388722504518114370099499901395100071336368491160311393996013978129938641814343842916707019012822152353778241298232363408093098247348385303253885187027898308541092811335973131844190889138158029789169156569604159570236868935763352073700684541789554156056125557867232319738677153481404864653276100223094212093157150582751510945668249457478341147346032862272939592932229173608530420048739014227100019220887352023538432780050999227446657961127036374533136827544558329191788221736266935344125507210997469169087929206249743486596609407375853110467876624229871304842280092747687907218937968853370887353452161108730649237444615685594524430511904221998907175528527389704099657568861462697997643505834592397284744031127284496011837394260439208465458222729495148593473061339358554254287630287003519656761533447612927206913375916924492500364763560572902799177345471436355775242365340437252756426981080580319014214246558941989546246427589365584562229019728873626701639073342965150033900162556321653129102178764254130417035119491016752687510857022593407433508000272245262774368320176199295144843216462065836689942216627465503857996793110118860432173197909436050994420144229533625075754532187703334228312762340297471352931606356366338062881394243637672856717081457652421367630555045777508793816040621438533231342116024226749842115968344357041756484739943923744463212699777872200999736540446148450170666430594752435683388824301348704172794499943800686192798635953093137798989944089269680833281316332702860942381199031436700974583215269498371468615181875072878301091052561445240694781292434648757019351727193099165280922914361696739815409205137978439672497283896212222715690137816080826051889303669347906287737279565824599214464718167378028608460180323653443651660768193074508413882854578783869213885094266791914501369280124609422572950590216532248885364107409543966652355319995419231645819000274674210948238030446287048730844147798636515179327991980765671024976583110584563039474021784084914409639081273043772566825832141430368058806342137564434508734191577005669183988798758140244305196418772270608835153264949962025315060889400533535061182719874519429124437002519728621345688143202068220601893023505149731747711879605113221832248501298334574238488360012386827391785628057925397709892329009815537487028743916959835630208055262582912914467233124646419848819945347695764467683208437238055588929547080155855410562566319421841472243843482543206596333390513890942214810025989091203969337787740675426530391843983715197665024547650135552838654284881077153007171075758545933149543997388449327891317760130811196613801372410268492040067507441908627797740599354795057931039259476689377173237481848934727395777764513742873315092764181744016175411026978194504009646242743177828732831682892674175127306055436189985314111870659345025752858320129209518733702486027945369458639544986892903286843980197656791667042463133680897402419065236431009474200622540849613797520077200505585986335621074661866568545664813103699813123442702896743169836249286434510618982512089591480159826951252200882473597531296799350701319764703327952430425241450483665071195671528879401528181060948020184554344552025443019606839661202399402986072998742127450373867504077643718198849416834605066564434791994840500499715172052622145221703224436943274327963162525961888698618423652624510354027514639221051724576778937406114099416829938995053275369387133195252478508316025549991381744783144970726513037405995061304636822776716635685884867030678486394319322864131531673801633566544776156120856424858080446877100538009268809319118161064515810895625897931315525209425949089204075604399333931370636616836603108565161046325042959678159738497659651258252365354694786123571276047168090734400756848285119283850399328051569906933229667801862638364177623270028890617614920449958553366374226574717613526269996608827450828018656560844281588115670762993656052748256762011900551506496948226055493195183307851654110719497503906066070587595541142827536871230081112944816163267790001509557072724604851672433902858655378812561720086371801487653957547499123994037756034471489246203474953996065416849090884032412383669834576860827384730869655320408187807296405994065634067334905182612505684286885870659135091013160891748129416327763282849146837661910259661892535536518484469158154272425036066364683180192434655070456098925197844927851033894884836511789361889488471544173896503708326657285966778305387633766282598685873715037905051174224302247865972399063098064433540708327885518181836499395481731536132899445837502108410988969471762665592886488672596973149514921332331124418339033244751536776550625964294861977509784326585354881879505387354215103897932574188715895514388619545593640797874517300157834399235807841852650378334584272022273811960805894951187074690380593645579805629513023767775983863092732888924020098831497993468123960289929532040899544168894153700083825950901754920057252266749457356273056557466498496402112377365020251379604275975386537689976606695141282301519487182974478684022185455910932946318331282877321132925688558226941443239807694933862776322982422189365263664059579393526567751550074587093161515184443474660537990817682360724376474780102488547054676102451933706413318810446142223571893250071073762103921514947111594168046722493820457270212926402459816192031023364293731157523984615009463875422885878851769267209198822774299359311599640810955019481830319830017521749242928312107608546228136450720834366895898077268924616620653751549130708619358467483461887340793456255018317279492746014409988542524192492408245173220721605946968453115767286230284073334069720512525003102489311792116302240127509080863390241408990228474744751958800049376179767823699314392066963635449962818826113591363156439061700146133162367825454612674010591057136075264695116641140874314352612922523548749594881226398928646424493588194218885563004010914421449872316846883534660445602352706006638806186217310698614436399949727846037385341290332860692771001453849678247179662046521923443261091938381195987787645724585130564362461530642772934845417071119347963625912801842420695831612667120062415546101939932055631141861558916862233644623999365305208994406452048210376862412340063714498197474255864959328454286990635696644929443160823000777084278533216027975931639214455341387043095810122471887408442758746015242686025634615974771337875573856721813891135931530631167478250396358540188546633166005217967495919510310232718435546493192174547310482270706255943103277615894062389097684078873323760310771899286358249468137152086618881437782243770594297102482234080322938092061130806987336484603915581421460818485307000693204842004550579860366877619395962823249441040861998227433540542296668009762277823667461570225468427879629504817679966979424648912285291194264026051836496662912386898483664176494613086288247389898425443582326800325402084075099079708487496074771129434403235852908396348306046002187994703241096331014391538354305939679441023375000386035741967407252370943745713148204222182581741541006612065201164439214494928433489450752247634571236051456235034753532428972975218071640028549221286088058205588534023219239665906421778703188960101151402238300910035002693743528503351390788407724913168066809393530803182743766821255796064627905107173453033742830255001819991108664260017468712075798058401493658297500648169466498887321794829350376260951575643971197715529695415428436005017514956184191346850168062373129462407455716948578096703444035212355368430329091173011430088498290360203325956901003401859098129243211555026453283037456793511708132019721682532166510871342186505469754395062489245524025370028158057837324335006987990188633853281480103423993467504863025062056874533041492121564685962774547505462296820255518715880056195208969054314838306140742053023162910610279959129527018714712310645299011134540398501922862284123408371576567233196382721966929285606633952320075479352399284251069359846617754019314636202075137661114871695207008048602319350784109129114168752076813140199202603377678860654083861537083450416779826336519426705856923027613061160732578719982106323465907038617061995451395512976389389552331676878598732141304213835661234250343222142185083077621041938031027280134661948117202692953686343257602115735960718631197982489728038369381751557551086663450598006631555359629634295491763473334747296500598332068559263879359298357622968818388950881659404325107156489070305823598826201017365006165146816748345709979428633178566905189747623290377015996921263513640283625312882436077456688022727696300931927141881407384923049120331942549666225292258589690284456123718170205702846547921783423130878470461926409781422464039960419936194333851002154835192884245233892880858150280542551064128412271908166371798615930541936322525343175896165046017671665158543316521436055613949556735293251087622210777127026028775291927423504519948030880665978947241642613261343357215733039852618774428189440847386394027241802276462859049019174008436026429827199488155867019843925815192498677143148192605429170473576453888657783935016249799516319244876560800341708468422580269081493257498901493055864602170307562795570658959910171327227032916580421180322065646530606618401123991697513874402009306832376472094158647925339457938855102672833180911901540489742864287420391738076917889318415617565024640829201211614696549546715600415538094336106166903798730087166268514485221499999816091024544044506807680427286844453397709650116612610374651121758011970744105760857823279078306798893033286227943687371605675794237457216634572064000660708194870765231178833476523830499534725366858889377251904921357515250006066723509727512196895218707333603949516192783741536821368828330715992934626486783174679497104465237284341355104515323199682484310130564524230382797989183460919432168551920060611565947997871628203170188696789245598486094681779888231830067769822101286572890705477068196073040010465184207630242822466335498416219884257929435884146098159215851385335524644016885114971641416978683515419370826861527464037379839249638663632219199496262871282385037605692391285492358782857595554249312944246601935115139870222490925261223250250322674421287534177044286146721194190539064675858743310954279720798629516535890223229203450925458035261308288313247791966651792427888039335026366128881597029888696007005222237400605183082864759855367095801781271706536263918661093435405692219876472292590919900486721188074295343136704074619176051669356386685867413890991473502191233802589154602201571199282996551795512954051413343324840261674820331304321158647202173881757589550174715713795112991009840625495078320502915090419262065373552424544465714602811560804779961193826035966116242297979460087098631837260997455006620865064514919511831570690832921513662610804291895906017837817788334239629157669096859281974423049514244492829386610388281842139810501612961709237183014573732485306972897063760787001561400224007653356365320303492389281007232618655784266870051852439290932369708338406521193115470365452191807511775201370258990081039015153310794693591174491541785153416284278121655902762725811609800679307645247408720443527707578338301893419459622829775237551976013007855507603186626141549418458571620159360627708746736876645598262859306199321770740485104088125692132531624041816413913054330329047887827289248131581056041876636124922889740103385553037476775500856437688943629691675964572279163458082551519696419495568144280983480543192564691516234754772598036775396402173441561633630575323768061414103320740140292653732644300086502258111543508524035243576022717812861020777900828543978425312521794389356813661517586099785427103576185927601254897379204628326345915677306242676874863378217284253995404339617566671721200505935303041515020926567563247150635898242776847681673907869162312322290403532065064087057490325350930381361817800166234501686236861672531948950573173829587329137297151137316110235015074707271451123743051456251476498610896838247650132681384314013416794455910336204281501155972221800561599755395380029022303638328468223505459308661546279975800697015204016805216844440195361036403232570247839916277104428883671922694512403645921162761645699476835003427389917955474374360259994054110641517023500147876196050531647520680010765699101771364535544224711034551594709574178683239026052167140299942911090529186710562158830391082494040096244079245440229103727792129612272272762229191288009656467120887471133352603073652676839138265473071689682665604701274637873207101850391273498684509944841079166060944145166746843662238720524276092218535344773267624285617353186364936496620187170182057546534499088955609145967508451898492491671498637636602720693487949413630171884812532379458946078606747156608393930231881933070218370396489464986185013645018065867828618802597488453206370130242247841801984630192233837530647000968978898341415563306507812366508465992483671458727421404229026506314498456578740857703203752603719256242148273261070824299097381572355668161867630878438460261966468738105567405846795227164003569641080000500345572401000773449397365324839451815020321291846889929533504588104909371704493115739309624923304542939146675710144994661871562697327422959400254021171437851832331732564055008754180536937019652560233075400478408902627984925898822023828059121015458036990333726189561036130827758972198234471620074791078854394408619874144082931998978856060844255806093967376686294841820477559795749321669994348351924880837146515874703282848548934223566871961631451465796556300046860564285795975655399163506594701298658515787227981375067405586321454093023494848998553356620071520319268570410360061212721984987815054887409399650844677496709946462421171137544110669623739486166590609765233258096152653101360037285215824887203663964514031619236719569612838791890898359868890561129304554502863373030451454586936446860783550756018693951183483761481107327206659152697816699225066774168074384983668031761404884951376828009926760505410122008353381874264327198932171406811289847620220955715304694719505536155126148326488121554329561053251639285415697148319872890857512158714145670625269405191592018799375578624681307106011139830678796083291474102744963421139476162141050722922800674801289633112724384695582280813836102239503493859971775603016573481790335054921078299739725902198577359478376024136373937057413259976168357733337417846023036983758961030572204432104299886013733782917929005430267669163951111741991061906018096141353163376779898588289057461883373339410208348830192003347605373880195465013964183013656690447947294418127317939169687047724689312284501906062669441630312120877951616133524305808422614854563302994613919672608763160568690884123803066572677848261535986398592210840525226460921926054524327071194507130961413594215122542683224489837055713481937355446859423794530536418320017035935938571893761405755469540741590772566775222635041729227709052197969955833414923964599215991022234478335679806771193469292213716294402585520954102116774100760075831924490187206749175396316732271983341236235461025733159868041211390531487799734422903391659115794037201593054973761498329651150736615757494388845282024288518495435619768357730391772847544240523345971925350066594042198736036464116743095797314107955750480712313695103282404296021184158773651945499638331642354657491795003194492879230564076538999015614558538607273510008296254254358880952439900419931027949477443437659431574851560627447000814739268578315442060766490621054340510018817076859322080533875894334407809667002943795011374895124576889126560061187364160929636361787001319720706445248965109433460310153642892592999741870804502351228468345198824606257053574281896561918408916781284326099897015013960328054652838144010498802928459984429249508318952639117465011554985939578610668481016810552429930114973672554864571978011567385977196245676641808841289321483659334960885421533511024386138661902297104628711396059403242282425126393592436209532840073560949588696425174051096922109077914583153962632591180502493643391151965908324871103248065404113212776433718404933049524669511735166299072012525256610070344699054301311883236506610977604899924023411437992520217105183190049971251987692144754470457583693002296065735196117887341642365007139678776075257950394335300263468446648130890965750277066450629965967405439259358915192296398072074245537829852128264425306676516448280968997800534176646570359680272464777183830039374409683102035772991030982870798795737821806032268830841636802610302336959430629310430601764215387149522438803089616723848329825168148914994718095256347815457383193757389605327740281122167001333950882598569151996353096475803753060515985457621719134549531021908311246705375869494596224413012636214826830894470351238381610930992362783089772178162553570293444889174091634354469911252514032374826404815525422276634760323472963327106634507010152817889078946473706614827585246109336444034508254671351402796701870472304577353327465241814573218443323987073469827363786599897740157954818940840188403369058928335970769820073126285011525768780771812558384687611771120697776684499323402332797975861801290447895188924160394561173026929791317724003005538784768895875629890776430340390490328180599001748411451887066703658025765763137648496142412735872744564471355739236594038346801318279313417935553282045910308385422340918875289655630565288895982387145160968349378044359665810377755178877938185102248320270908376030427355668718341198282178766706490377752160093316139907433553417261110132774445704819081443198364939087241821599753762661426339342652901467317491904109236020591954627244397552877554319217568991046962918841818004913975148768751748160139521009238995437512807311164205286662539936560957655572993165746087511858868803976631171013919939531767799178414828257486017165570619677594442242986733533503409181515360005662133497083439567726474305411373013762101186676484702211480693992547864085349403015854991023787568235584876243096222536652924054534422514794150950295067651168243489276853693524066938394621894285455654312816528950976440087964641980125285274256166737084962940309516992514598244457153081060727280450376245740664354772785916058337408372575180880327200111706262139825463836929767140434844976443405747262723106802062881134537827878721388225893562437597964473798739203426967304245952957595084415313045440833574029905698854724398041660461905658064957842121439873255264872220278374867601054575640020990035560179369455472487144861278030123378608357863250027975124265678035388764923053282145891995642281772900910191242853082829396003142193874063969034578676334306135254653097789207033305472144896513083646339347450723639217803870965217891469196992338130946291410301580975212587643202310391882320161191609851880651257066541330553063737555750432047103805825072941682884992353847295780734669686458559525906715704028810516301074393555795692372851008105590582595047240989262083712954657448648029979844550260212981139726349255371187169421379261536043140530260478383702318729221542914898289864953145890512340954873104549894285529805489223287255812736660425540167603537647176368860356595960429081128062791094711344351512752913120189570546422666725291871908330866524817527661309366588931592623026897858684132412298233159868440563402766443342918595119727763085525768517446768413087851604570679202810881633685796928145405664535063807690550915322521169553860566349470646943474250386635720496957201229162410658820991143831299626382571711484694960475814107381790162533190396723400831616533377476593968087255793906497643037514794618278823258026088810670450916222532346402457701180840506926889609959363088872814312613549812710262160880076625065018938286067097746015240554604270615402744812749323122750842888659182332679497065350193216911500412828381754681790922249456071726692735217548213947385445144515560397306761358885401662362592625279380224863432443150452076082993950202045648236697895406765529753786490014700012479853426519011457076049854971778005023763457169379051055145669873157009404502817438795263522903328896265096376375798049943549509731346523383561208267736279854180011305653662473600904394519669439820102875900329501723526786591970048034041677334929951538118308349637973595361226965846699298411839038663667652717485082236160926858498304920723094616750315159147757266641798454353376623654237468784832656506212760939172778951590865880962241126491371080815931678040704689937311767755510819862914464208000905510194847327895305298480138726696585316214806589250126777696903661572473650959612866188929873796464508721039209729909223322959626699959774415007841873117541459308030597575893265760017611224332901410434431097721209617518829915996237523248452351129811318070027080821877917355337738439621318868939044860516490934765829081542660500129986188969918087602654553851799274466986614289496898903732805201743946126624689899247717213870165589455836122197521645664344026373527899115130697979278384640715057245016815080453494706081464016691130708471548050018515113851809325012335796482417160929365976584543100343209585298411537361497968322520232282020648246048467251461442100500882850255578985349963486011816839657119069758631403872750920676423325148710831546810884320710508256553869443864205906290578180204404186634075671998836252440826189417775543275335470405523853806813259683102041455589790348765401053524469198413378879809361324916117593251549327179411008656877696684493410913807473235177311421442300505827776216351751883896685774440694209188643856076478401873975477571176061295946831419686246771985964957519941178644892394322184825792883611590239815399778269944923523826879443383047238749825513644242258390606992617039230813409346904653760826829660173999252779463243491029838485088874632350418581510154659894302763741978885981367932154621018923385907242184529340217238882266363558754106449654172462622698507240478148279108592125318300109383033531316122688304522280893051071478279082552740734337160585399215652153826957636021962715123141451172610778776044779492949925535220636158778961746819649999186214082181862779941757422398150931513605061795895317417511710027393766999370671479757905586473985839231148586139967470688369351048196198137228741452136889518690583935852252116763268676646783167860199087128055591725718109051782332774661999263930707276387781949765952331979209122247354609485740555851381221442157704355369238497712792160185225585605219922924791715107844285758644754005786607185683300249246953337444919869339995457016540694229272964729393348123106920107720766773407922885542001522003619450950962097240363398036169246829106290846762969037918570741716283294173355475648239352817520407563141768938428513371514176158031708492598674351332966370195720607604411114702519400749223546877263860544489005215493464258327192713972101801013464891902732934080912873688302387405218290279435182137033573492758064695778572716129449834370040299641936474774327615882980118939450142688970399722554120694633650592026473447468487236814795897537733809612323462569998405871212284309004521612698925312642193893356835085952866471094945588792271495302689855147711248501907129841382638698352910934957445704586363056027998878709963294967232456579846373782198504666249268433570951424952269073759105669932863986706888471481012101704283757972770719697163445518667562068429232851997167775521563507330320113352800170278361102311810115840389821824272037514801623221202751116258463366210886237574140304775350166675474065289815213230368227549034940381962313786220358777344576660571445080092515038467803263736264353094633103105063100082300240521561044316193401369192704970850349711140272868866256445286822232551336852075640404427816913014036731167101748972993928214155172105721180573708985272000101361511646429210796096167065101221362464017195418386789975582906982676903645971517006475694113956063651283692156172367116449330822295461149600542853312447908451369790229538794209180940123202529923631549563467938798190394469709332166874021798643000076336767203525346623934238994320188626056484326707477577177392209407145697886361784182439182866231783076323939201647151179996306032146976519465471906173783644705033466793682333768165108708228669934270685955459994626683242547184154654310184966729791816396259971877504488045534711892403551042537836909418974514451499983428622179683246371362801462979671780143207774188193462900401454492359845144909129961912522923806373583055195581898748018550579832399698437492846375625280753335405695420662461463391223654587091184279290105275018235458409246549337187813614053411684464393805797966266265415105803230328080767182466525902298979289134070339171702905750140734159498029171383693751288498890374868915978804709124073500479365693234435535614653856395115118653386742439711216954143846176106616855290006080713621297839851077799492720272187833416262050458486618888120018286197086181651587580579317034917866065728836933918651473786355509913673853188995518792209186402109812848012624645521405278300743225234178197660646800934765885203002530211992975880515247393641200540759569785632384534975995636098911784010245624392426005807796560342941725267762038189162447683942756960129390304297116546429449424941012831303659986616810776825405896651833997317030902554914065003543773207002506093813891914106998744425376634873803051126552371270541105530831548772200675148038812764776272713933949359636674445574162072055952449008235225963622656545594712517211720429647067146409614350990034498857834311617137228749829751476743465063467352895656480068228140273891010653526832011578413333442781460669700866790474503950024475299772528940512596951903671870911785943546850302261744556677091265916669273298723705615273659594086035928756663736399025511763963084247691237092570140635173117909583093024763164928990059931730829587721252192512705424381896385647574215910385407509926797282360309380847305668992409880978253067411273865284794534028400261651725053818348253004569246990319293406476293161716567829315788324426465945886591635271688259518878376221997858173990523198837473971590149090364762101715603263091909636028194659688860444866372353024536160351310561540956020652655722311420527669216625862077225196456174995069362012338558138715373445512789846283075274362485507584946798700182183557534635231562971585335295763491691386553170617135127001792214155405116241974646749186052327746702316917710023333516765902637163213199802106060214383710874318951602877973861977263268831947556245897326481135029490845512058813133689807728807228460304085126248717324810451009641676951540539863070516609522731218513025755336074601652890156290060894618442284761595356584763797122942069937042527512526729152814070048279685426170120173345713428513001787176541678758538031301054723643036868929199029164632644861512887189281420063384863385017160157928299351673215618394564394265703120828340619890572123354618431676029366746118287904002955033064960228882433410683287490839620970499118616363294519686698949235895745974318416751728889062685024268954486158394416774496947922052551648345287909339591107248361534079943925491152351268559818191154180766822563255139250389858241026831926536762069253349767209815911664446960516652959966352709405387689795678391887537774665108925085010114600767551006425187769941560222236184866194370344076410204110186727465987016404770622228477390264250265085517469930324200741842862485786275325254540689465558599193626909751167711394983368597416006205981235990469176373392033807019842622135057308646495514945772135971314567294435397307258854208482749824654841955078298999995730766199918122302300128782098149811074684550554430648530542353590721443957333246715130957370445795981407764540047189865094884750514927168987520136106573447190395588151064908216072212335603861576221094050531978584786892885600660161845570341083845379431743034930689073054343858936352339373356263972866818302607298016036940780040279044251567106626021213646224536046818207302216734197197954030306121648907504911526878933315759511589017963241164886330972078393060887494337926239636591705820649888569134209921383192127457296814256973775550049092196921888685216298156563144390926229161137139759949611340892153027557842385598995271480041145732880144591558574896485300223556180050973736609723107195212426038400315598865457604032446227682284323586400223902516119931178738178727810624486895320139990337074844157764413743273067650578106773729457287637014940347901536540919042908084762365279436743376347052196052790448730739967997702275049522973444341447261157912913773551319644287818827721275785495131001565995815068889085634790279148849403720980672925657700063400592898325466882712613110429226495047078686577954565508421470306331591676164927410239064642733157967053292186937659966979357205479361767874557547623590867231691206670797634468260117440408131977393845205276802168330618243006867795944265135031714659801285423912624705613239006579347196695226000311809699496432460864825890755559927919549219623438880842389517457037483396491297945911027882706978747670327993968322458200083760921807805155409300782884515665872112586999666892316512505787884206384045005074933976019020236318044095775840786356724286626374479324140100999470044493855599480403331968776047358132027633618803879513544987985180512124696386510474520826236759228168566072135765057052474067616884658146783421565519862014103613440049263545915534198842236242605211760488641490716060470819912159055423878246296396235544190642773527951432162481510276377304152954395333837029318027120867745866170902477554876238062973092739084414629641369804371885945758897522253274681826165726403253655031004864963138283587012310308375518610272972107969774732657863996565784898495092355714624110197613608862652983211218031487309287023090376005950154914665198276178709333544933718615100478083505354303248721894670985516622041403676385257780431211188015062350712297638280045411062658764217347032321009689949544339735520907768981798201039479958827232573690595148437879876051639612096985779609692799948491141768492541427963075425091112584716495333572293102130517121058750701282967237838303078666736447441629145767065802159813703111964401948493297061073205719571365308199071543960855226852984601478134528626152559647139020404046612522573142928717688161563921304490325783556887236996651125620997993631987520634943159245770783316819299620394981161131096304105851658717529851428078187360859552176943208544401392315311057015754900240788172693759264873979621340295384215706110583142188914466705304999952341908390884085661617303636366176813494585201165500105774574702997263432359036330072615602118302015529957241861654341752467847335838234043632273300185845905268716634204173448687317594530731007739343473707908181929495992610609778152952840653812464401090919346311090523822720667068563183131801454382504637856457499372247347092879575409798588602230275398971935915985194846067684282857542736181503525895169825424400198662819837013470155169740479315940330718506110687283776178058333141330433968311408938416039817301022686070373251122911565561879913936355781069215060776574994787097641078558752959798916976906865786990217407160555113791995805935192474677642118949697961442952449680856202625785412217483416395926683064208624751666187082914974089535876729750658308285448704990060750555637429467735402814963174302183729094067737529779194620952379667641237954677114617766981654795995247264993672564897975984276512458329245390761412426469833607020221026335493712939264866498478736702016894219497443336826104370718373370929844453689552900499170002467485413482899254025819034227687104419459701578542648204063066349120543703727771125189009456532424417878357110762519405542956484064316282099919983427805048648927385063370024556263242552897254155140156008127726183533081705057155026124375309633530346583254877525002760351829704035193034618130545057939137600687556218487988418170928823424275072891893543614553545833374528716957813327368613515463996680248053200285053186475470709582158681995990082982956514119736933688541014161729756217909363547033950846886427322823882379997356760978730529974829072087828252126412904660841342779302764793550216286180945119114895559227103079764312245744997666908476946895593736500935973127823916330048266980946996409369181244514099074560430197893564811946001009316422527116817935990184565085417909831747088521153691611751599310389552504023987016387610812417305075058470331210929724133288047943122346014055528480050396471431425835621667582921074257754980629982212669136318569250025903131075537102920149156649960425207012251627048691175333462933985217117596889483186320539976647052672057178536100322971143383696323305947483072417230823759006551933833343149574443091171656323243981774132013683708677835522023514127916564785404977772846716809891906282270637316425069515036350347742019973564357966742307231969766012277263153572387916679730903110348422394802627471833063413156898154114152518207931683671603686509261178444961591698468572558994888850376104655191614548506860871100410075668022469319342546266025809775480355627259276907086202265372693099177497065413066764363917358388513304828002238866770473454900706167376044124205967992293721982436916248565619179445278639194837810429013494744965781436445355753842639120532947080866367672221677104886525580262187503904233687345219027180281299176197242617827104180904714910045541410137983159000567325601196858192172734478300280143402824873384173988439064351167143579858449487241662985460146976265719957648543710643493608710942456040521438066858200838994504026760131880167452618523908851748168085217336424669514142208061944496148916669629386267200122832236777298336100531424142157130111543320094523304001028564802888908089951630006800450284371678343698689971044434720379807794366247630466021849989185070159651896543110998040428325534750697187198919233854948754682207570565371608496584943294631649008782375121484469048961997243315716161734271683365502943199866644701675391542444871097741752662338027674363393410485224351306901724742914361024215596096063012285603622214239194979936467579555918755951204044046848913561514922702992697097059307592470700952607764944509141411758803796034726002450826923234892784851892883183779134590559594194765740968448589895436846951928466032700735225554937593508582057113088446529162602509419688223234705889205809269421506137396690261786711633475406740845925086823500992276827859401377821546967682366195820311040363709982465862579630098354830449841700060381712926887825119981037400488477618869218753920632744266062500159402806107832011309033970753330670856110175413943112799387341757447016808845186569517323393154478128551379018414703522712144490857196854508423573783765521849687585018248188322269755828093182134596100783136972141323827479882997995960644404173431639824638471183555536479287545954538268387558223943980884694356596099681650888880632875281218845153115907291325152191785463966977958681310086898814336824531554071710653560129754989626984468164810089360220023905020406636281963550934220917081941897178682879430246531173783688122289972289978515623201038727367670109457491714183265322761285962304295181176327019495706605713639997169144011694457118347259119292421070710548717086842656933454962984976853749423634538851688515412317256757958556928562008119832257660889062043735381824317249571434908916411488100420781634702606768128885305833876701527301182403936685633934632720039001599900518307773896641331616023619446678222121815738240921525429478160705997229066527166181601285500046516498726419088542022053430141253976315171475981895173757099733277346164232746567283611725187014074626377951494170463653330193375793160706718153680174362845308287284608636451263555995754873099832214821396425867445336021509037150542763650684742278901750036242328922405011723111829041662821352645774516382215799940297024555082730364707152928895640568994456692671505744859994877371902127383623135087705036654394593327521478314657675582609670531831149441730049824603499785154978834615978023810202673359470739411234310141575170819939486444928439886108587672064034293316456346827133027708479329041565983367221698550864250924525627692247958225975663905336749920964600486585304905798332371075330651560698375659420513234163797390998494536104394297268806760826713952012274114659487444670093626838082657331763449572079495587249242364259378738450455087479336222475196861133032383680989900849441575031384563445839622092373882711967602975296025913575853830131705463630629362604912779655961116806538901699053349894213776000594281986363744742421458073654732541127338863661099364322528680891652283289206689040044926094563736351959280334606837833721193101415352321656685473971415988850696436059318454422021881142661551283143491207374186224459725809067324515527418943911892328149152310585835286231415134827606958815726287873407546434655043366357174769553785960533203523781367987610998538601654950127479271747701983304322821889118185101343868522703267225728294670512796300127678385918899866364841469423165266516499562935116897820172295173656077886999736880958783856535694897828361493598645352437202124996638686622863031464104907128590872434596695683776745913857567392832445257730697516392735660944316287508543543798692898011408843963122217640230024179228458890818885070691622403391824073056005836025524657502049718110605625717710393308516682317865528097767050585351071385007094721465137493266330127591586742760781560157186284573493271460980986712962589941748604957091301626138634784740260063005311565184115987969107449727346482203391147505664963572350051964164161184508795840626705385075313859914421216190890801137350447099030642902133032053105942296400232838939786861611998237453478468068252436281973781580441878893870412848614742619501933787434184010983010829040016515068333977660517625073979361157377542932310984670573018011487525964687279893845882477754077838388553341836548512112887503443167992207161879004104691150317521520549858701924397398310398865493067475850722035206856109205298626457528494545192575581269119935311734576831591259182471653643040171401298289467883472638557698263897379249262530112324981592422008509728620384695751304220373055168577499436243205789647471025339760981456925629987471816491373649571353190973232570306305806943732216241456123680384211472584176170243556800112636745223923731161515569021450181246962606162395203735701211622987231446341298307667124092776992487794671238005149711521220804352593985369471725137402533033164243683752361121394304490302063433653865489986710749289952542838325470977992517142142857138792983842841509299495310525037010064811962301689874457177080490331331552320052811606965112517695051907280130198776736012491724659792844352523363273354824208351404817585972767551373693066688751788150182470306511517661385119119618826544711904297874631459683042834248343796047614435720835419442052017174184928930865085713951320115991366431589722740053048363939225894935829221775615231916512686838785910441665987662182595792916961980089766675632161584736069334111461281124745814641594696371693717585051798679367428044860025612009821628564500433154720704493300031887154966784346369483338689606627453910961494389542241211015453342996344823289943933501519955466040777058246677879357736527513308219114194632395434070385592795899505217961379319222689184634878032352372555848608742508549476546251814375602200362544269847423523109134565905876683829643440709637498908004553190611755318839144823539813063693444314397446072033124173036739338668669996010094268079240308699475979502151425540230787666772071239763864848657066400814670433217805676234274743115349216099513018648563402622915949372270860142436915610788056421867154396908812935009234887759740499764726992909126699876260053130654312034268778682798893272982643529936763107475518252259679554502756022355420457235016533293532263578979222594452043109691228456511686693470625474168218724099231730282627540275740529510922546747215359668073680549444268373053267112657657232309949093801855269223189163551986957150450588411275162985890863742968936643908424423258587596004712029762105007518931175150381506829309876950581614619515526721369611439541944276557961905655266433892282783446964661248403305534711286946886002659928396225659511068986359576428881972911286314294961772780322689184162441935240671196090986112920437205258171099909790132083915103725126287936200671425277439544871883268718072581317754879464714770097248211796361969805463037831528278420970117144176556271344614520438146881851215712182920071224203738182240344386222870206751713177507990663531693706717001080038646562405688684443744957357628083510692661414546338715906554737043605974996797901748187426134412009697211545150417671145289787212976068735107113383496859688993240287969677161691724426764377758657293145397033481918883678931183825417633171016045002238468635517875461784594371700296694359619763077461386961387432268845586820027828510466729446855842814906511670549166761370116858573696757633305456086558875009736463948321975023685608542806113864254267608988308197027102518358930929915145869136405095674533374777692404427981394061225364064946537665982537987642945277130902984714196590726746985179830619795622608034996545149606668013608903742262592008412949666009236941189088588775660812678113549068125303921096865349965051499274391624737740802285521338532922843291975426222305893504016222106189707184742667333625357944789633620764316108824211191092307599946228942934920309428791773400585385893549718514796368295595522704476894665052883471650075191113561526881020102146273760027153852033401497840857230423232655566775822626790292340177865212828572153453129666395791450748745626486538808961241804375935743189852467354698954972144147748856043807522804575498993965917206281288971368164284893100009211252018330900274079210205188916816855336883932292603796197093822857574771623196128042549626209145750092503523286195273730527658522680680506661078091206570483596410311541672548634112797231971440062745681270288307667968460600394480638954042621496161604614225091028922074376430570742686226280382942628494181649545678723438640287366214786929720081523410233356738692696021287526152712789371376725390511705339882922273961939888178513974932440201276496699461026060464415697223546903451304443066424554297211021305138950347341813000231250405010745022059560626911050655091830144907317100882907841980509269004682236093275573426458970927754175553275162554369213414081577588886595081257431977521787035860119054420126761636376586786046244183360664242310524629975102575998827016058474843316840257116898174229213082105773417470568312318789796868590947961449586379898545093359459638309170402922357849759068417226661385494626229536395636901973411756013240951295906381743105156151768284608805267519875583764854739336483346539390064013235299507865835690439095509063181773365928316554674080503322703409787670923330724325766249522844328419590223703695903923790186955042887579385427692754916132369993403885582505010448629233861246350570147400894117645475954332480728293728297222303729746968244631779512195869550304225117965707248467634928116534705446417662586198390718452668096887602078532872433597061525088694677133606407430665941470648419564516055045679847021122295028849127825851210051302643810350397886007672753488712349109168566885918722150551833126085436368049802387449914525205778703708781630230786176270644240888610957867192701683678481903138150701057144133401800572430880749532905715837947714701990133717074906029703221491594061828080424454262176759231976709121838590335217551950634468255923535571729801853136373674913577932473186282017543026609486085887083498294590203414034816638684801683222036773394456257944262328317142491405237973880483450075826112048895482185071825002906299187462251223123134067528364912870551716705353687633605878422979778357394460656518350883408344896550161482683039556682518877729674165002557090896684201326486838198839342668417996780783802623497833027355672489226131046619316793128489143847580282459543629975522198542211774601394536367982541998077049454125525685842103933165507732887844842596635452055551754653396978273619801881067864181983795022933056491931300768287163649448348615050586910922616636861836827043715694502235677237896359086120133456141533832611194073378596406783273279018554562308904322230262943876506868871830820831521960787269362033935575227388671862603261033377808445397041166513383549904668020399452327691153159836698214434396227650101194955355172222402350365532796785957156682865426079859913937257985273296038806282498501934656268013685937649640399305279229954136789154131570701447035063113876473071263793819056892487447601308939234510120988831959969823346550113487484516493831368749321411098418168826828212992385797097827444420157355398149191748440436698794997739711505163464236790766482610572525978281674317960713027119815647691693888818301601048109823537002152686155866337965287430639574305267614245976231241721037579445038970292232376717772291455707946670311321648205949436374852436169579348275443187972553532202097926666638690552254736892047339014133821571778148643671823908244855186530228725733711349226783390692011317985396415501344306060936243671895545008851773176553935511317362620132504317620969272166761263657956846078773245236681470511135842931813249248899645152275261147637536738914194699985909997858485221849928537496650067997049146603576788160481718082001581630102105725045879893380298941646395574580467266051666802524091099589963332496702152149872888680076513806292882529806676802303208461475755374647853010242416195345827747459393373810343255721890009666992119095474644427934532500643025666069200648655289240831555575425315904363540185837295044562398041011735068870417258268996632019367603378237168038648112435006865654171896503066831963489592688436435097584452471991590289484294603615121761357035056786739665203614280392698960401724726575031992971079808920808903615108440588038887134169963375504054700743494665316844093874843801783564222012510033808317849062457678802300913474892529536357279887084048643082550918206492890778960981014730686188884219427278299395452205576097585903488143749147673606599743604166336702316833181919809765657618856100439273210345765904845310798291087623718793990819942275225333802402026909155257088551670361042595020116803763933752005867959287992998901500015407857525717019973794959260934054099772134422925075026307061941436992467403215129389517219774075205899339510067684718616762908792893354007553807397510007400749657583526609874734711554020750834407791951432841372191777237365373288421399231909898240799484279404889390184006052978279406773423721080136788237791744483231068199966632976495112076781309896861291433080671749236485790203509995735763663258721397549317364624611430077874049580468820866508711286718755190855398694284922641261493890189956403895747430303969754635923425972851656228318081464627600000870786632626396530859504871185220919444976942745856910970636653596870029261298708064091661681696073144186932552426816054070068062636246381828241755377901400508104821001143907009373055891251065992262545598057919771771524824828050605047859764607583429106368054992793862565534003880335948486844241255989997175047996053800139175524818679584743965064233236446850497951932229951753794908452622975891572707720832293394500135813815879670451474835831435971272562585161774624465629536026875451011547472415839009826043792233974228813590382163708817929285140636455367656963172036450601903574646684681123122725743623780086757395952053652150083397173428206881477437619299709744541248711402922565249167416610541795754738235989005802983032959458058135087699815691881839320562377179153459646259602820916690887701349017136991813642557238042501994012729361475406799334442094014717032001609679770748578258301498368537243959520141250092203920126281278835243856410892769097055003554715476941250313447712466736317339195892787990982528244179458100954080422288935883568176985834648377392034755060340822625252033683449146721415743224098606159015811658830872245796770943229370543173276044670529921551280246268866265633830776277533274986505522735483039508068956963624485253025535220213810738587797915736878395398513470814601360413596629675585330154747265655745802232866453002221484247583107682597015778090981492801494556303364533077328415065564476143927375915303191708750306690973886043873541255414328738328126845498668710850053954629352892391627711210882654240678851824171593664561030458340165145878417149697218989087338553820441807514151919756383386978624563285964550323761282157349967728796630188977047778254412750384738073223552901466431572680466112959194074882844761721174933464278447457072398472928631829205902672988625117977888180027789829501923314752320356967971225689117806070840590476255515230231845412248232563897906758132682158211411686104506620538021105833747272496786376483889046186115550347410499807494319083238531080716101816086597548179354751502816562540392904252015561462875165760232696928225664614215540787083612841777339841880094192077212216174811029151881394609525992753231016382597443657683702950578313687912498211421046414585350305892088835231654098657737085622879235920006315545929550625434251346846129334532280377519815891670579321398552246228512319103276038208264917981225021018259625652310244173065565645019525948583889330963777676672234285268713469180528735142856653663440911639481193703911903212319505439525634449251671335834500711277505213480770166024351772244619122471736716597275840131964082325657215153230678530852660575641016840852399263980738706936847287264653708581355684636467106544779439997677987074625797969287593130652278346391490490610497658897544228246553227877158154679354739876716610118862644655304883529713969949192047356009506271632173817958855531390876346030673830902836988941183430713210625267360380524143993264233476306300453036606782608044290370056367650665780276884241293792123788782117724160855589145778166060907404400110172536560520274199231308188514390944614555472402566595184784644654564339483013388605116009971442231517071013566998062431936990692282440828777938815408823656151627009760262774805878238548882206645156958990412843101544990522316261103062981731661806643426397189314043187378455492536207376893572298030700819165655715141124245360507879648995666686729639366310629592162871635670498553769810414229734941569220366143329159129685478041006178155312775077951084984601997066241569466292189427440368733441534115368896311559295684900268072194525445085946571328269515694792331897972484693147263699726176901603800108236049628401144240504144623674096336061355993631418033379438078132214266570584134626281039444549100681062326008208139565868216153189728815707725762432455468532130273560334205497159106970031192396452654602253922451936956431555504277934686987159966741659275895883549282719610065120952001444990649421606779271045311368806142024183580179554514108491510804928559739886109234747113930192840033032950963327671977478397440634164128753702797147862087756552880490993524123530783234341454092173900029326001102695772545954254732254508303920489396869422945452761229570913164198555772742131530839566795439100134992267191203507751525020155567718342794724148720433187652930048741966421440277896582468973476597164496251108931743476088866388438023039366793916935081463722640514674267838486340066943994141425117584044990359002596955178113088347124325305843777839133311021451771276824305865290349190420899991922693439259753141684663167571604580594174178178779906445647919152315433330267933423533987811918397788464941099869620535758994717971353388063632432230609162516906306416890923080798064139095550503027885133781487510706920948545054207012153750214611521385815594531833992504508251961776258983396081057525495915492027880257951713093849836323865399789232197974436222508530140024655776337148321098183523532640751300436720851311524614305305790332998536010886126726921729988836296095216823351911853136216356769510567618664752709954255430360172498020054790066263274132946868879432632536126226355558870896660059152807353970576346181616393099841294677369422293770111536836909359151796451113928264171743018992094856204509845824623170927607980037807338622478203101616502137508195153420468670238618988600525773228659491398090573383778699509988169655879730442154943248439332818800887216317897670742439998463428907445423069661196746333314568115515406849342111048979253894129296350503027971322971598263225959509683268313770258720259357672737784810530544226606877567720502622802154908178853589618168961089782356215798142815809833962180651515227817483182308987360940168703468168524521328478475915492964878687174416360429611589244012680396112640166276391329541751240352920264410847720566318564101183107955352058629679954308866844556259817867325953336964599037717599876546535773528527929535809648471745512864788295692891384465246706428592040011888043692154369589395752272697811544218448701802589235055866252131676346031710299904017052499077856473995801039809159486071528150368215769619958556334563048270552302286121567490628306471988551652559782645424541322145077944482903894896138498901761402841851168844683149680844917985076356322276252047439122409068779695859526184502692339383167861717975692912737052879659187876641107141670756631139750766120536214303273062276374274084333395553941742061707896776516047572300315868951455808594896002983023425192716483238403285949203139228863454422672903075335976922866134021560460818833642451322169127528703925508557185989995592244797992834711124928268134654985322812198908575235144445146503549933721586822370521462879336718036333466278406744374569343254405912296300210124578320197739454357471392102121507591734692860071314094277899570490056623676330321422492407758626451803620887254131087325621013644122775648810738027061391027416971621725045063763354179253070825073356571488620043328221375595393591350214205988045116307877751838111222508055275043600759723937685810294468816463934188594390603451197141324898643027643620651053986642820063311569100705912786311353391766339405556139841799982296936511512329371026470209812972503326537021425513216706864795148554654387448584925111078869055416512197113619134736437105853376790065740202331312897171668911834457089933268471271554615810328119915540626113571063273123821132328135708860921734909971960035079160216271073453611509776558274053917972357578900839032866342193471696450742100235606042678905095370461656959326414353614057484756842985309026832431028074356054158166513664163642399286106872419136575436731363289177647035255559169859823691791533069208061188700345100683635671864887743785107055603195821417501560664959656234236070451801803291215976238015954899546270798048165070999727201022096283387422074794104687422077387557274278512987903330707519025276487140494706272413167050795461425279090888894898002649822149018433295802355264217428564470490505826659265324457384135948667079278522522669430326075387417162626764152744213675574304473504385165781626848574717184677902399600220209777274516396147872028943065081413667207397007766409405892919566934491865781270950930708548103910842181978646156215717770019603123233190189378727402007398755540625143920479581713057624382273893868593746021922521253673911644186760164133453090597169373518901929837559235705083524483646399969490938664242705361822049845165895337024570834590978323236187783308648087116664273409323121838080155418597270087035631921599044632089458391317275933628975928250705134436277545546603223936792634136002344343296535689803441503088988392889636859218430366154961954478940268723241814790618303070987260890100344283079007434065015561125839446540356377601228490261148522769845331495863087359232915283833896879880055362397888138119316626537431202457772483525576928237541940548420921288720278230775227365957455386869789422396373789826272543094574600101583321065832983545073247845280526740355487481869615210134705723174185717076985246930432315247424382178133663549221622009155474694059813354360532571821965793267644557032732877065697589691851816636056003357769642259661365326984209838958989409829859828925206935139928944672938821690495938613988346413406719673310678389456672922215794092771115074053010042179510983488642026749328301394374293274937133091515676142272887917580769782619439725069855798021251717810127448194522027053113582968173408208141465764701205572667453231742446819559425669270300043750234827019090266936085895068927197297320217208459787241015325461543587397689256770464751015548918329404627085145473742328021689242724584605774579377974842810556324085336878695607661961233852176801137928519647263453034954434228761253149198196217157261088655271548607726462581606316224666241907195899925293763940462272160132767243994664308536761926558118714927794429917544587221455476783664800102298584332293139859861393242913928440518784988428271451038234685399100131091814951364712741018395151791686724203494630106712496114598986844822996356711062041483554199687841298085103343722153420942374006542634252718120285247223650624463490989921561981777724245684492566564796860230328328093016806436103935460605511771887217200453994492927790070049696024190280518988423983902365337888327637464986878599221853695780323425251883973755784373696245375597176166422533990257233663548560411005385781364918872356512660149203666901864253073198952656196744092205705989288704529392220565418667688844492929230676267451529244614267325030779994143888582823666236707845474474849242624201338794644026424669346101516137118024643749315384861642316446670285366936585546920796158976276918947955994099792386737073886206934990460417119036657168783640455479769703063611499521732704370317781600092732406064825250350842950687717474646286025452659895597453185900797740496870912149974701577412812742198777868859898982289188759020804117395472569594467415635794528069190007758269148091865847306080189120930694040551760132679224430453290284864767059474355446420777010077543869280465591027427776580899186621033121882787344625633686847269885034613609450157583835615923458789917812078358673615984005004184959361363287315680712629927652803595459804292941515419283421417683298164103874492478683540137483852615192728623511226288561543761499624603302995072183905571320872500016628137073647271867385803448612112500634345549116146593891398698540757095339890933455164324858402608467188733617907837933427356032382524300444346577080856501950485241579621835992948979144395981387432964913177272763857897752354175863203274257766548916310372754442049556417979081989812170883293624103768598451352354214415300176592083289136481570965136427003324253593797582454217860532828240555643069632067571601471951334248276289324532890855609959683021670316467656913042132430473063718445344871873323577629968416521234013083551149311866236628802624993199818778544200782238550020137377134770463099185383864786124918988715628670636208906873140749528791894550547893404790064694544118345310875722496882204083908540977400319543496096855864218248070664146324518306512859926525526087653444242511620151090857115067472641811802328060857041348656616524652466771822455417330238988244157129450139237884397663432017889882653244643475684856522357524462692309564108396325230667904397452294880515000705241824172701091539724695414198005119572682668533898201397450751973832456463321435898751169021985756294217070692375186532478342654505912680933221280362914875107353013188045612955742825589161976367430561137410827592136197772672624801467440125771265677414107009981394181827548053477719230863156563443956205004359400327074122539591730766579275950419227916287896895187002346629024049824737287889190579650023035749569261491273046310824384392304761279105226003349136844795615839331888892045788177809839455084972693596287562743399422579432467727624000885383105461479480360460587666743620856433343871363843996999876870952586859094208976162547585896648838610017342450217554063124691417061009668115066109899287901748988487751390809667962075772623509635806618303802143076340038009217599468330442601314686255805913510989586079306549925887011946964512761956930897651320477577744807096569706965419529828620962264298106124960235781994129093222962099108044525808145186487740069496347324489305085797196966373236944919139529737953336677680599177009363117169201169628212362411953473756715001586592278687754746852291877434241914507251339970459370403796073355222003059003130682790357750537324050440453202311289351996205098176132649431015944314803776869357858869069376527608532304725699060490591448970906028793052306983103251817291204453236409745220226555887766416114196683163725513849876603905320560166388197870562560932041142662779781209490736074465958776736080809432384578815434676904225582375150576269116401885310840370102554461987260223423214094500597673541620436068323326833386574846350489347094399941274556013154617007007026598226085833533616018316691656670199121110738684569343066574665332023675419800015879435677995250476712943419422420985605747331357671391646627867063474898091582276178728934148348691153573482477010515175575986341818282415721136107216215496383200182575040750151261197599084917557741920738589971331657440307630121642196051742490471385252052439572484551659911661832583058709491875251980837022771486827767912724204563766943823849390480657409471408004583802022451132563367792942171434464595656765531152730624526592954672589312256375263887607299068479492733009242814473456394982759230154702086962943870435037301892385922085695722409473337215358677493687253538220029399096118265158594282979879743896270802359627369184815838358348012547201834009869597459910367007913971851330768693746791809088771293094581147713010403800285960359690497500508133019823118243538477806506130440604824132455865208148689438309901010247617526700401869959653578871962366820291860085993275076700237939170884042303162195851688961316887739143279418111521113932261118673414034058187881729678831200737411705896004015044519159066922265086371976920337914183029118065118405787033853211946868590330347220198818150927390016103487789420136926931038585729504658431524235687824155318410332946109322332161379267283019996741755443824509159386975930142497983153267550138483971138302610392769885643621434083757889024413751798142451123135805033156013477778313506542068844596519764819828972012453874270662740151579932818432744661944859164755078802244830398264549307494145112406536483850193484382252102632707194281144231531596757690435563884763105541764882748644264383266436117825063097236688617490710309245269423078241951081357183559808447263161924575394424818731016519936198090785560273995625709873291428054229075961517163806978500436196275733154875180109812054013626769978938187540303757848499885361834250431460950434375858742719489449231085572757714876427057735428336438812074189003531484128345415347560664460279895183517058546855809484050933436372978490673439320818618120252828956953047122514117410928612365705873729747630150890121513267041081545925261542804599704267826352503687008759707509766102027013651856070252118612769925720629315477985354908028654301719929848117061974021167901317234133477854047740304170314534914165487407146497491398463673866297396822199531571959377655761221208173572009136964719959934828309629825193803491561922301154192602386431664051873418941099505751706096945299932117093816013648194914207804696582452468383453195458403174198037211069592469520519688067451595715537605435805569567546861001734478439464578697213731038892040721214998247226717838788736856759445515834757537737397961234010184837448298035263619930597855169473771997026631344291868322299087097273804484310181218990301145827658533441353007354320523089862027132499057343346333422898695481176669941183542780192913330779098284243357924553321015718536593714297570757080326822584502226768962593918480320058208532788623984127190820566143462307450430654700888207359252815653365056666709763970690237971421327509040130129806895967002012523942631854197345820717176186805757534435717537058215518013949286791201657709956864639981435044385331730062829455459163382502485957900803018753477378490980268894554708195306136699585258901849361816652352385414292585139646848069675851011246691407814574502220777849772837643957169468313472555813709072143523155377202114818180098039326897215049089268821537447007003028266280745393762604501364789371050982647990492759212548646414855672909459207307024403514139663639316657592500605404845697657934804992750989245621338936132969104043335349289628741567120223085501018495594198060387126275001610353094035805692531553446732692009910868973903507907599038620601337010194999986484233205333090606817188981797716956567059191700564767625245187946725916227074411794218736698169303651399901715172608046911046077352005913789466349309934787135831659903742632461715745677448917378118533433545647059357091939852009561157888374173795912257848523947278103014933310932973683975209236296111299615856264594771772264580710014168201605096759402811253360278663080642408288890767608694236301526205572159911481935899556470106769556723217416610639267820388214986485075462557970162362765565973379658782100181411149075099435093418242876383131672000373215592466958268691625099704698213147000550623812836311169221006186784523374400453320757441233026567995295096975333271653443590076537262708759007910509288315697501597206822673869255128613373233674346890887111933987397566956514325633013198484493066227298815698781811045791292676835310835821406940104084120626737205268549237119690938942638667978348463959145811617425853500432964069440826703649040335907338473065512249160765858188447277646790804787440312545404239199518947422778850289882837131171912418464647882710056970317074825490544651436075474585327354796673106499504181911072120872557421186639979184967265358958339279399160103703004450326537960986334867660524555656272571982375532370521901666206795771523269574026923644157456557353150656175364582683577635284265456392292709989797524115237614965735225548523656129464412062663076083761543254552015568975010685969570116963677334157981940408171408757858585568878452537422393665808241726732264909538682930366813686480583487560871976307104421425880268805100670267868905221227321002999286426476545221846525851032539914857092816202746437855784616190023302916278663437878246037062967636330090617021056958740712048193217718938262663431398220814540481615180012215996273460944492605273326452483738456718225583320094779422001228411316636263588568173164565003422636037136212916458535751066027294379098744688719866730175819292092131818966568908648013685191355771667977305899189179337120244940577413173430982315325744097677393410325964687491717983341580287765429435822900998728217310694378218911768804928250526034105843476888085133762506429736037925011619862488475023409424533540270762646563839315332567578714961250672207552976247374896636834735504699505611499498720224204257165913658833941862203169304792428365110974678411546348027933211045091812395451519445861268431459199482367112991847322674372599633245955116254980329988337817254966776714024354561505462026765691293682443931997255932259819344194980598047256877783077695425459858967364474923879803100104053786908424793163802549790270192995403395600636513382588795771889398526919429655288514662954433908058204290161721291678850727333485288009643259471319735012764998147501548132638934694436584230077537054408898644676365083559660392340259233543566057762885881359137863561535598595627180718687652009802183128820875356815047167209173920482769044081658246303345113002425482925133974222723290413542819362214486801187607376187750942097371923329060173251994293886568723318266114150284683577000473911239890609595488159580672490387344826728563705783152284951763282677783887491376830963849011633554513991634403740847774997077161658921801246581746888058253318587059937321874267890635332051759355716290903554213841184708131396100386335705542012907542645958011291513549748376450367893147794507259726280977574077434504760642196059791789996361122804319877461122906491467414703182591915317579273995221819316472149530674792908959388106879440651187629154877635239664493793600877765682997785855543811937981712898252936398980906813940440247326518504668476132553437641552819935842006437941678896640234844234232971164273426253488358935534921077662125559409520076868017680412283197471088079515033686556424701614763812691847691076965491328491488127076407102075926999248719917042257738894004232842513386733815008736581064480697611028868264804980706160121384800499996970679562223573102685677679212789789363066953424733407392160716956824045389324027786522031061260938585963366566316573849943668816318617021502301732240295973242005656696165133790399490139362726815960921716795160906267627267898461917954164133502012476492049367126738409243783688075351505574680958039954101172875171035620890730655831755256297982123797784072934286052391114906150353835956417000725169728325239813947925039922309161172156428164237009922683849681178361125160297442291813777010779054988955433514668748215068046330790881369599821612223535638751574584272096392356176237999514295147888524401695999123076114687811319944649983461218509268861845568098820962198466182384133009554591526838047891039540018522810860672544096952968957704707359203389559703738668509692274876653278725615189906660898419014465982459681746345678115962088830829141896756318924376146824788047885012715792290514609833782422107574640225078240597395979831033337658252212702039937925853616499505851391474072729080761451310759058136942777696197218365201747699797756843381412351568896875170230065457927705956880289427784199325078628996241062252400469469003033660322721568413687342582214740997339639197319001985150413361822842428281330009894301676581513254134326821273046684163131287182744996507487853955666434965956467847902240521542428486885064534520447842105842756557588529826577647463398561450583132340819806948201845354725616542959818619921138353868581675932760402427128887169954537050841427699304191529810284673030671175249367329658879040249528378618427826598837448582746782757038534168387710982072485247665756373434455743000056961601938631691420274939648231829226572701159952799793581787758758176024124255277784686070358242334801054435038662570061953951242992823838587793764934262108004790508374850986354647861313304710186885940543690687979073331317015428413509968204378755698616086359231815060896780425343410626318907318073406297638337586921243999570085648802293826821761991877818468867586754320591293091500605991846057041704787702982007381232681893155401130976865922026672968633813784960942182306822697933347065466937598429425702370648155605267836378219239267561462986159150994091785673866575904330755646391488031921974258914608012005466544418479425036716919283357665239296147649001786221502978934309457350488676609704318836598768185631705503623609427615941665774340662955512797389193345579736619480584205931663724272477891547961747132333990751851518316152811497654317007685890068866688572020422853825290859290089227319429274687819045529632477981876271222518015229379171559561782187912613649721493155496127766812716424205174003965544530011012201368950443555675793380934486278956743181390322655255640061656068709818401438711912147319302965817028503040510550433842642100648545601399095075125466801049785228870267846774860512562349056382490893308269685116358014467517523396846615331902635753848607661682460777136170131811296856083523550234655406359187960662257579988459242664997420513175477819617512411497568903440141747427689315649800540359342985545851096655941383235143524727263690696298944483955286013106557223953646772210360574797089506400938348165640145818491447244660086544909550853133648250034262958551019619558816092761452131070253989089202014380480212496941966570001734961493720031399577531732604053462912147292497118889901233677607009099769569313730713127755888513113097707721994420476339184415253232158048509844745097611814079148000054391944893538112371845705984599262804992151628217242970651321666504621536992310243618173057242580184365514703345254111289893713541629826336985650854316517013398212679147678909741412849695090142723697751225224476610922255395991132468476967440198036870087256577498453975899829121439180126738457676631186367949630576083756257593122398935344192378237822792133666907789817520240282613374158520293259917026657513347630975628954688289210137302075528079851005343066301609504954289199230115807091058914443397417240961788562085549740732988769037441680887363380979683529359125632673714488796874058011157559220430483989127182700455710131145072762967702600939255719747618396505966244267553247154465490686337081963632875246253326290721316268121058378893509519502907995281799266943384600468510052102454943160031490346791800567170599360583512707778362757384185804549376655888229888241588200896554328514691807571650911771299465348653260710457144207451928547901491619730399326096371150321610235530070231590510855009327720806169505734460364752053513724946554189062372895992946272326866369698376606625046520629875732587598332272634000118348939856173329407105427997714427948509526952501441420395523296143458437528693350200889436948685045550874563965661379684278637445527761119599833659393632547680910024591467853974254941539741491295930301049757944266162770702156616088738837194831248192185166637837452649447792657244265809812230538852744915081459129617781204611311602035596868817792731261008145113295823719041033757151894742768089339429896896568552371073687854342490233952646491467875666425116024966396105821281771421725678122111015452658847894498517767842776267935378938965047704104934434177330668802156599568182680179005369968167050678638694443462025635658918019640000745394852063792437354247221117972229283657200466667931824174475665236132394369895219491194489696860306153974154970978714779877334183273213306376175118275181701868743550445007753369671223360258166792338492641224341427122797147615797755683185286842237452737025876397128258123691152166171217482137265435925677495493748290670091007573886816481144529761795242679806126704866712909320186756661796189404272151755776716033268188571423264768723943187876916865300544345921412778618777503140117291200171752863855694298389856492788579509089187416732278123885687172282589083512007040528996314239738378551804292848855983684666847588602836953389376147497464491127032777008356641573765569008078574209230484500491048037834672402028987885733952637700971196446885491052589532764751543218464561641805871675122451195493452725387972533385088452623463532726739815619593519482425732486230303851072644142156646300330745104363224322504461483763644066562901975716422235311639809841248202293248775004340077569043007838886452340891529213878546808634712435473231141849206459837201529122551148232672381311541818895558421886592159973566391940958211010228378608783224764418092188514846803297153047004064940676036265771517724377662864624782650728004223687634866736485008843795028806111738616393308775907972691040218582844577807282450110021124638403005637059878223284198999688045034920665849727914105094605541739783020597372985519876604958015601127223526284413480362944872603268780575142923063320324525391134244298187032070759789260435559002177571972068150115685104853981856551924870959796164585657171822337059573547134795187536070973058185596004853995042072103027311507060016428932961447111610645260482390869208999173370353010704374553237776754701464514477038462263343212383389696760871404864648011533534921591562452325210203642608204968346543535822764407610783789552772760687114738761094954103666191834212429235736748748385620206584549332025104289508004352357762848310223888115964066533248630050821569927478386991393700379144370007076077146848232409571992110539690762819818554315483409743014672004465339652834791114441682376564846014323741716580864194986109734851328150506051511470991427178601295021051864578408928034307688154455308696340532298808158542433666475390777025979807859962573873794187948035377904968814051347605897419105782264594430813467544390500634690303794034380386364455745789712402654617962143614093102220861331683097937561481398074008709085781302893960663239984085522891023186549169401277337861140458173092020485947038423041370407285880768935400502658859294249770087775883279171331727223852775806286040748614618545512734317053221126887262494036058062958203946260011602904692220385940082406266692889511606082236225176669310345595585131983076266105169108486170784531724181268656222423584524575432901707613795342326694213404322718071614740880666396280233485655811909380528458654597010849051967342251046122995712890885535715706513795830112119074001577177394462755910432627595467344563948255439633645705097321733814579391918402729163725676611816537843387982224866914430161272850408883716828539662141972454441058447886195358249806906756783834109086050202446080558197064921142982224384333707305305849170537064643321010116058373533276104061586359522387555514343657296725548396698353681699174573907815364724751513979350645487537320664557714507192764938744455524746813138528775479278645901436243340149174389981580028607554963336296069725012230705573360513224913447277396849416791131182178226853810290226643946387176374430211068912421385177854323936133490363849024335176037638559465329297157017295960467088049582012936092001117801059104933166113307572098662286769606252919417419503497119801678192668964898015909130367731455154887936633161899775097581232951623109739222347849869968210983723182126372621161464167162681137108207474481737794391343043452177962576763785919229947726372493860001290189186491298387190362715233793916432907976720297639309237663935389252980872782234982475273791788901017333277373368014628628857271378590030310594940474524683630232866477985331204383766957021300206593124870902993133155465278883866344903463056519925233387878540775677414958301845148278957050306774756812592527097996081674183397098340958324274349706747871779335105871036473870316146055906679675782106538948909965454545443027951812334429609177824803586037404194378169664718315042863014158358717384393652340341490796593583011169259774277455454572727385267680922077656760619484995295404021053324498306881380356033289769006756843060387369018775762442485089767624278846109593761577953127264987101553600210025021204505380469338467594847379778090987062683445341510742129335932140685335076704482476084825906543301356711324779771553687101635959698786344518725679964393671068991348023433608001266454489385651435907105089570388571568882985805732247223194658695856045314672290163394083924001007729051161493766904723371540528159363903961674987278642283831551287640148584365850077553778607923076079069265500151859695726660289877499913039313696451125465569797963759943719980284317966149732280815097487628134827113990056840911944005994757885062973417188967447882012423763372930069041451117470179527942458815342269084584512938710948374416513047263296847904249739005847528869246059928955228323698120131763962646106024667426503732158302075320110794922598448534798658887672864279671577787386881856447813992961433423538399750048711611857755765717484803264091052046351062834121551943796495789092325213051696851187287656206095657466195278608855148410265774628588437965690542449271426567445629753844752846617954465726029520204705648402469979780279071060823515644097721697179237805763928826552544480367016805074578099501506480870776158198614163585596166710580615734901343567889575339332069975541810473914588355377876704300362692261910615293607855257311151387055222897867426534777307363500325796198573080023137448987400461254789549949764874130307178135158388376412017483271323287992852350357814947513204991645657404333456313351263237294742666361414695903061930470526137042269691298370731392446294574582460479930597479802113256189189834432677389371697828923855337234443081972864517154816493532930997295353476935651679373665233990800263505245653077050231818850760572054861378659012098099816778420776363428828012812984583664949736314046737583382052879506047927206753005452677306275503477398380004736353393160202340175311000073540506853084388226872644842640305542068663704325807050417900358926752193662782732487995693070373499969591834152021402756084067538767555037494109705531297561971670719021534308944419311660478712588201346526081866295367432903910761624561052208486160468237506103829735662576515944828896697752158925946812793497694320535150598791614292866041908748979266865570543070368143811836880908396933369377403131719303217415386985123967475424659577283328370599550069213995666692391552542509368220406812856389726539053583379209881747731843913525046299074435499873937349798322421129792251130620957131601408262098307293831524117520255680469213538139702346207733301575005019816485636286160233784582627398945964211133755208561621681888643573611379300395455094384403831184136578532278224208751344682871064146080888198273227351924032944655577636029133090024412011786296560730024158281004376324482066071364584369267408959757304021344667760251225480497371699329464315158648671686664517949952606375148585745842863536279339795814170240448545297955880271668504198556596992989243254360016684364405511725128843650388090033760351088469086056432203849624710169775311885817391463061467458278299359327615508789781933140516337110223475105805017763116061931012714523361551470493667993090718217900064258557286332900387670474998104533485066987563815486601485010900765228048785178400556340910003597366789636729534052134966716548381644765845143522896015962610396518890884626903025287209869195283459904181773788473330451836093124123812032522299413941272939949046499663393435776409181967347096331939289990096705099033367575935085925267375424528690589488251613165090196556988038109854991287846496181321732703812732472282854647373273484820335320179924051478287775117980340207076785066217294586625132740161143063790444514153129030251488376766197187980410737654838126904180974490004168188366310308003599810944773804969738464096293832123691267465411664955732636926335106757818932167113304876384156833929332056909876018880248912014237337800942165851873891568575342913951854181743054032326636840225042852559172105303571773315958159768469375829836019951381163891370540077347591214058446445694790343370265754140737244097137160811486764971230078353707777285328660962525250252334308476411847976050750935733685678017400247309862016451376031569680397091463417477112815822985785086044505690159444045736796998907713883340099381671937609238499865660319233244592152011248810625518855636827701996733129832783925434221299847206461510876210479908350195073617541272394335255934690860516739113707881462633195542243282811832047242256565023864474558087901436065657480523237394723109695486031250522299370959142665704753270979154488802559571986141635315728960607338053551284456936133407390357876819561285732183650919826479848659511022709412902816373316248139618439409222522121351835863708754110687000423579553532713966757348124627284154236116681357145472653202637216909817969175289405110185039395957453982383167906461905633744251296996520315388108944696108670370197930430868398484573834745676491894375445319073073639604443386010148857470368932134724039837418638535511810714494107788175425574912220512309102152521266556398697263206665423233470345766079502981958269781229931255613415279345940472498856369460984159342416118200110297061912296742237891839036956937683868112998020028713119105228748753669984523327137668436918620974497269796622486059705088731969035896219988385564187348378522855501830352534199115700145545087237107375484276682350704223632279863372691070369838560967063902250121189584356454800047501694225357869875152713562036245948363163349984111362018768771458406709837490063929731964464883763567651062516119519828968682428598885713238612824823582075922401225511398684377685006564139873076832902896578979488293022490876728530794814318634713082845743143086098375801208055102385189530286560312053383294020071051471752328040085333705519626687634084718210672268494045761561640915961413533549079225966507234022860846418735174985295837822473359934932873004502796655152100426949793138940140524801606540925878647638020819986810525237605774352334116072335502342039284552809668808677563775682416014627004800229369341820572108085293095881750186557256115999375833101921301491631681805100838929886010402201529105056643530185041160341734105646236592062378615611563185559639585113971616693098730401183782113268147924143331311957092349597497818413019685404284256202130841462415461117246232739220768147738677741551734608478283665026293086346953076474973447446920648013074931399730083833862826012965951104096018619039866704115531912568603165506625686828268631999783776284256031220878720290990939824530189204658922668738624550836585374705998791019025365750524290795361711614244643998157443643420989015647111863151682742090510842037249497868904736315357209137336375707527039210762878759870474099754285687885970816909567423103788987077761988711570588333018013619288273160426012214329877644776399113655185527537389174028972981052967915662267934462376490679037774376555379845424455658902035535038462486250082681588513797146522216018324662615551406860391010584732433199315011451859665527043877248553704111453001541161610147092509404815924927249394809941115790546106293844707386560161341369876200753723024993656356769323066418038453788086571519400840190376211820655647974840988036207943740290100975292742737661920656554518403469753900032970332974544927167559909725732198410037004561258792366384273967190067515183783698551626456401076522586152326198906180070369507851710798988694689518040886712390406702435076085499758168892081339543405901213541827244457839551063250914193808173968858443798867224882515353928847377908383836769530817749537999629662745112813943434389511498473330241020101031819401976612813374152916869209239848033617635359317574479117365254637371744026653241057461715585718891668205316102104516015554154772799057866723427592164223209699564403324296678231300547556128717772634029168959998351376176287182683937816289437380360867083143502914297100005922474173580539888477258821127255712663258454025322529928803396707050138674096286570238056504459051134154594902968640145116291729923429003681546671085926958681212617179745949941155638543057857976858073232874366771605245321965918968469441062468061122238258690813833793052142396935655237159873390199860660798920599479272760139656022640271137185253728320612922739785948951391261758487755595127441880619539408510302011203172948326009635908170044705466398787753275100912793618803615233973609942056686940100384925189720318148123583273891510491413267171400365662450282084535846828007518071389668409969251417170823492294383244204819513740250502035404339975696901266143470443284541880364121518859418049348938849393852905528265054378976953036490094581246018626353019147409254367780275391662811836218819078919972405614929582115558181917386373520498358279473717879243036086299469926553804671953043945542589946486365955880445500040088656677600909278045026050335317586998773883337546041187396634760335818767390597694717542314550701538147653625591820062509374368045809960157387489775181135982929536610812959250327589127478643445930169327298057985546169551949849089979080885227848948271520818370394683339258313780931667314605945191306678775614001415149483674536355611933775759851107528333118570431463808770134892645765667590815792336863649120684837321550026903860771072947095000938898058079762841188753579610247785938466172272224372458182345548236363270005681195463431542581752558577679928655988469453116813081336580026343940963648428834021800365118512068019670892958532294976443329098988305835952086785235954434310293323070921992869988012270779762677466174886739904490837672831644753926819167157443579100276442287404074648489522725019973934506972480813905425782546852820830509647210872745495673307740271519148046723331982039418145581813824204143350217914539231641517897379306218144816670293028965159851293906154690758448777087902657639922466148116845185568164465406379902445752234667916331223924898398484847619128596347179215575430631214323260920904657864587876531787858675540955749839347795574768239831507955333649217289336486185683987246981537523073464036251085220087938358215500807709171367345954057188512466694609707271359086849563030312409356961706913678343707358161462337647016511323397263825065322638131863788216579113733247950584064286565469634164263414145792751899263647598262945990335054037895827789518007726801198837381248556668477452034955900747390753904044993523728479752796981172124905711591425358158157869143296165242471450901090709687242488254764502672248377691963505195615684083972520845364827113394417194240823516065989023057216473738797013721071760933452627407291976760260478009469795835792494291017897386533040298466311922631449928734666383719016339547473702676172197361777882745540091153796323353345166059791578556459699063569993515202053354693819013437228729505011166455945489573797632155621026010948968586212335346724731269430601475908194699481504948948810228816322765241165068857222150077518371411954951898524221424894404746330090888993943458466631229368952190504325014724729074560968923531918426940437626312931024641467487390213112679160717693853614267665906750730597525312805256997006017297959345705840242800493178106100217067036667550982685193126468291866095575345158777639198797944676258808340234184179771909981060219022813058098987390678055100183003904423084975075112171275531189866558296355159480525538044847183764949848591023892809879864549377722020365307258528587309513374222205688584554696022054448962773802341848878702117403140005007955298146487336918139405842694121199199332619518720978810176975665065774951322778167111743212817196432414824626882265250349482941676089327922287064821270094912661425419629172488363719604598739886107218093145391629809736044776651200071886799666126046531206724691049357674544021525811149442394160536493101068957985688046688350969564901238313210050101799584274778119472091472523786507525696922178208061215256355776347378216239133525757392033290153928197133600995838494132450045700909290076537056922362626958214768118291279448515874970007726447339386715983405802984295180111166882825784785017572888461966724799341813443014103199692509336021842825680463489928900309711034657848313910958827106040687704659593391619143882332989309119616877340546980212409478460369165326132953862394385246125892092371603680000876490486986232854301111092047567598669505087653053332329710526570793716229865930930108873763236002890489389842392585936606308523842743002446982254484109405454844301501127871833465287378413914932647516956644335541177375750390963693445000479006263052339212792277759211064784420828379119069214764085390195209378544549257170358987367316515444505772036350762118546506384831040607861145214133157325559186429824957367207328969181306011212437938551364676264561969152358178101292647335508540496259951495727890105973298119743523875273400550055871368087093333418145402760519685251452503466639621594826964375714637186279431123012393171677716683834537958801998682433665358609585597628565512658729505437398933919885491307934518387818999137245065558665664361335878680693798506425457015185609693075472557616144649455522069395907011776390049157573420827029534633011022463093401257671197569591308388134199161226365555923185623423200869604172041285603372859690861074288737471457333256271027095929142647879408036729375481779698461795573713051987433991512029056659787051865434073325902860486694730224576858453099775743812307176694437270394576157710095032829307314788087472932598045975223972116863407276857746528609137290803068068421209894575894888159497957414624370712712424322193094032370561985627463621566382631181384133066838149094368509786110527900891478130778041216964421220624773130745722963935833623301056192107243069194933040604744151059732355855615066003284279945454214098664087228238423826075669423558874937828410374949723590133106413302730786645405460415564523185589671699843249387048758816091219068136666570424192917225268204740773182232518158808677606803501396031593166958537941107603191018980769180405151331473031140586858499124569088501257294774402013341606147870486487738475965598012606853608374687366350846520775777846923089886877945798167097438089813981164843369071927630953521778938726201339599811263373013301330272547194585442964341885762750592890841912994503734079617203001943318179253001844653141329816601126241257819281957664531474095346131633957555815446730100462602878816507102833353061476348778783248645816626398633398442421865889045919193363529575133478972891797919268259958848615340824686127480283558295415311665336748283140510682535875737367203639071249472688018033762747475507184671819920727158942277562108998786460944284511230198976020158255197523757311828785143325981298234700835843336844241765596769741972384295797537456732768142732440833866978916775617752706884714053087568144190795284681386009812402587396398131109272010242465560400722315061062335741075723274035566451580549443824255145494368654979243232561455689830132933883106366231385198742126725549782462535194938872548302789933206796411813595819889026901974124244582325496979998704267622995089171995004185257263293142268351083967660922697021806460526426331190220172154787030270386795539908628148253130219228643410492046650061067125036966637689794310217060882374458114234130213156460812110414292344955843797441349709179110500941958486278054043935695182540158490742260714040838516191312171742709849276216822326041520869064498354893688169527749391534383135786533333194541646632055806890407806274001321659817829165828316746225005570162190647487558316177288911714018746587183230726182883270005666715036873355187570304971705891225925129743441933476373561701163331235127488660770645061509856694838970053748063963144308777345731271515650460114424612945414640807601409203707099120498489434965996828300002776910592915868617735955048347312790507483256435061867427916897304505388263757434580910387567418060273748870882614039977329261549565075015158433623769716598786838153476711773911522224747363541277908597955628759248524776675905463937369041531494999417339071808732711498267065557595433994326207736639539841439618395377289303564821658534173693189833028030241838462876307239246491067318075689800154261550423267815886899964907729394272243785863516979692267304329644496548494574416881136514072179232514363877794690961386649785998005590102248509254149199242620743660979530749391727233446961931467182866967154907656945146287598924337190882454573857445711164965645439708967465407787845971180606652895223096696453595319021600066830092868762671789259652245409991653212695933217888191959145861748498302869276608246897840090144450073237062133376915206162878755137603806270851881633098384974360582001857873350175774073573581535333723168815198145414996691014139427537829378594350629301340306728967546601127925247295512486665245805883611806705673423099826004228957604578226780093761811785421831175970261920760301225772661780185162576012114276079610502334940594327344859631417116434433225426679209278902659964033660919832007837161147777965927380812243726330073582509575163109601550902999875629042972671661049414729774019792389696080615586497899359282528362916690811121363510274611397212804804653050914896171337468751384317130967200162482846841297015951256416460530150847692353266862780664556834915598233162646132818942986275523509380496688753622607701659951219458683056251990724837671242797809987164297949153189861396913668598603526686967927976013578192123879188544065156263017908809647455229745635814280209710401789931523616570033793189252109317386704507272358117608833499530660992168980501073989060138221209584561413541562873854132902155736253593349617060063746359673636162824527854407727064276598378236235690639958503883469713940601344810290847812965355999330764930235808317910900193260494530917777204926400967688975410053483288955130532582018036030600920586333323703760264341075462082872237104379816402562158173641195717105741750800985466264052637945466987608718758992637432103232090740808321101450559386270078138878198856325467102552649262551154057718864284909148240672172620711353839569245610476086288741799104532241524960092264064708902703461424106902012140510520516591187868704556383338684717263581127488358590037811850536987561589180611894900947251398974994961369444700676624973221357538980672812931100984151272592610633705994158014812420273796274609144797382453981193632248339282377931466135460955129281517597342817501677740679469198791174413756626478153876882986271070184593621406579677147957231938733443807319585720985871724769596565435384973205083557940379038223433054572880426650263968965400398965645219180839747065141640346573348622804510796722231527509187556446758749472904698481607288068807204321175209998749577267679452913071047495869377769327884516520170103319719354522079688080146052055057470890583304205458680671901244396155265322056873472163558653658223228530616230972073981892887643776208461141008304300791744732267740637858808812442993351317407340725237849112064796626149703398819010047174830197827876733395061382545367213756463932522260530971598100172764711216865439865684239950063853778168317560630872706127525889997891972276738577005945555245277966577764255628699826543433325518315138901385758780219694841089853999744172772573852502643440497271904191983181675668480212846901353778406360173408038075666535869658263044735759679854175732777826707545866433664237987967044308084288913700394595369445170212753880539409491232190137819226512289486447378703394041139101672405767651812458438066520516226203666565545475489078094816522449524405119823683333672436004280318464960708323253737870736032013536232087331807877208413724962585177799620228433543876631494986153339958084721779342868422295351045924439817374886753993967232285142160914087618731712221286688489925972498176612035281716204513659968937652115522493145221100108161640527799988960797185028413854919388345906013670086604208596026305793149305246997997251210199649114402181905558741880462503180255932437846671693994614593336891589032703304471313602189242611455843779492173238284992517912194811820898042272475152429706762679686905099592527005660981698409388668774540311751896674060769105529657198089662568770296252363402362206180862224856501466460661284608605292944548694427273524192618910410035661335052519817835921657801828436528632183588903061884688690371495665167851522145152730057673388208324743094814821214694078269954187465137062186509439089429178162209752903501878806718918965237298906761794557213084702451034465964717232861280816695846117249979502684078118028467642818914348975631145120642204818328870007067129818021529548272960075492348715761406331224964672800420559170828004535310682358013137144794893416392326220664763747015053282059161171459596067271532058333583131480608927515131551971356279002985482046622844705075747014682912396815849685410680173792574577873356646402068696167248366568461123179371861368608299625155206436508253563182444729706584690168861948046982457579256866806219329092451575923743723099777120477109528565950648331408270906086708175868622204349681443867129765265795150002067688516851485070577780719529971970704714535742893111070138765096087736571510288038012823736119257516419990260849058913988706170742888520780515707838483918835132211799878750786298438617640917560784944284578693018006558201661540408789978808964941613697259792903279073886172859288899392372297912256580759400059174556850202314916630899160272038900882795887669366851225554159451375277772024942415695419777349081198599383203878112427143200896686657085935902189246637598237916629130639810691739547813120811655210391931460206108862117606256008691544880807364031019058165127833832243603548831398809099947465165041554524005131533833154446750740087001484352430109069860884691685254728769503067014991679672065157457134478496931337366858057228738832507859587309842950773928992604120889560955516884510571360595113080140016354312083740055054479283868206774582656348252648424106906112709580138884473752591536410944153073470620749939657787804890653971887725952849885949982535713669699862107483427386709349078737556811685385142077371085824639520877228049446462507356511838761091883232840483798130726353105732575472925814887011988318261031193592274818391644292602596726182128051179565751554671575705800291064148312532265704913583516217876093955351832613789648213605894504342901924173745475407386959382155962828343332978716948557103101309118355378668913010133715934308258605349588055307789302576667292363213353444094683587481258222761688923025471436253190409193850384336430646807871352786350204151588195014868299291717344593415880654196629394136570575027264874687829941042291349126228666921725796374875681956578559521369110487369726714660151854156579926417781215092212710726812596058081152297972054047146484625980799396971645438289631931621896190202246080215121677289695303817479191920026303776590503125490039170845244255558141145057779005861250510020901682960824701788710067376034852237333674538069399170272597413888590915740339249494663368970622464559930600208134101906816798139199100285944457820410712149241112453410903388820894048068966854301506409855872062542892759967537793762557094711355704738825460984343638949809282116760576693062233768477610641695875305227322644966035689809330194177154192109322745694796095785070064247685317901452626825623372896479366228354918346780895827424703089909991238112849613275037721997133621686139143207880740201658339571309427974414381074299889732839530600425202929831825916904439246161083204050109659911613689171924366391397162028499122720252365828127982131257676377853169086235104579701760631829922899520037797163958440523526255419359682604887927678909339476808330825610076663626912448227706849325066591990570730101787197488076997490842231322012239611461596685695433938294515216348630870229646073629876819201601542298145598083478474134557177200940575964925809965361475971379028716027288857119181020870070108762253324576862325908509694757643308496252651600600841520836114229457090199987579130814114827032353171407067799938858164084883396908083144534120268041211866712178215047436707640247873872441810724373496674078770191223211608108492654856828678319814305557791082088737279532746332798898111506565804260098449643664713988323365807501217496533034466887926558845102090237098368777247722127333461886966392245435568310305496275567312278067332235647495011698948081871691369568943013226181298380751068263490723198510450807095020903405003184270905189175710867717083984104848816324146026327540419153398542847877909603926202644394599923998810025837878024183661931737266669105522219809602907682148546292475668735789510911345119049102166869723820399514942011836860926478326707680643744955196308286807363288208965284835460594417380938887148576479946341056378715764934080603135398481787816703973758254224973936962431130025645025285841474169920085129765372699557431359502380009296913281174236763035738174184913904092822301186634369765005784599494555446571918445770477846905877527235667846094915726675708029195691828467988211016844400893146673044085562398778380749431860277227983047853839539277827924435039417868450712508791502761975067563980124061302684948829117822160856950836022954634084829799548640801881168495821840660514723860697604640101447867367698677139104644395103617911604241737561308705422154582298566799961131110080997437098977675039929438123916604295726539666753778665458739025510640748700410176621966585512579103762915479269478993945778003343061442498235621238859038054652651495111595211039145562912991592799954796678897650322198493580140913038367013540379016478458805512737538186742843013089296400636936497230591887858597388044256837620787168938249676651334456448140453962596880705177924032442909482106141355711070943947561322755653438699846739626594005364325970349150278817322883147990991553557528003282031596854243861869832260776291136893599872843907729433225843608398216122954513101420843390146062016147500936706897326671407280256506953057390035697421553843666347950116399498438708096192798677546277361396836647689238360981816377768657041853700367166306920766087907419301336322491110695893777834049344680985466493518413626081717825107087589252049486140124318804234751203132131164496985945684766718783212013362101108776939006910330983505337891591815934934131882886824849587968043877277301416255661180635956037409740090570671966579395286414089623559610331790813577964220339102410851183462151711446419547658049996614979593622634178688362374364746200650427209268126820966550848442288902163003031831535994790987354335893711784353233427724705798963931729011830429085979979848658660060819515893112120118086529080415606572221405955757201317930458015139579765281748001069989418550994470804248521970277565390588442208289376329235780551387740953298984435855770421350387759142432995044317954616910667440274263272869059116824122917905933690529836907458465503725166075745264501614399318345886427287855651931702472690273678346764565974802619286260397070504128837540989460289796707248402733163951481401527082868600861514065119018097667448843512130515738103331561561981776720170893032297224023136602965334245804224465645191027960754167005616587170520198581836100637739910343922356432810405970292012197935941632062233764473882651387459200008305398149996105478171539479897260229712174377618336352315277566515353010705077576745417394889957162043514139567463377568338323686811114774344669772083494551292793809780408584594824067952339771742326551162051744156059634090216528652169724106397736080161151877321825632789207568632200827949185917065009500952539841749078663157133732979448962284060812447143572209761756641831827272763702037419320992693251749931014057270762107338801948448455293361508119459709866425463136516351724937194961291960320319999311189268283603527317439483673162094074060669848881106733815876425565880258250983345438975599269130496091664957664094190915523337883559516338408456695008811285240014132226453901422997312641568865574232773634347081152906168746209581267430998093852765865889893220912095114590757393293061625092881329934363241376806495492986236499648124099050584417351981409405965485358152139175344218045971077238535269909057939761462669337812839093525555705002795937453910392072668290067937628014215317175876266573733428264683726219468381423127927492706646520821752240233121378653513821246553853745999716086011110113071699127446338624880917833291225353730067069680484812109705112893969633743663199344129730975484909368433420243902715077860273983977497172654918583118505014345373570689615606665418735949445423438449220595064438965720192603822078525617433869513300597054480544710185641999528340839423964722983551046318992266860623547322184396138409436698940622378444340051245913733945536509818491427818681388397121132613855113961186037724413873701201023751605394454374873136906790159400415469246760847065157571573160978198629998409607046653901860108223702089027694406807694840847552119381079567966635555000143483951426034180376047889887470317792787225430215083689951801812308253571587881033266830401871277398178512467615244813593828191244466202806064803145060348037553142942171215857222225288727843696912913686725241212597738023952363938075651071174387796767206255516190862803413401355725194298177575131861867497734850846187887590659840535540766126771411260655491017638858533757560442981360944549119553700049090178443589875713566430732288925695718973062984795707316262782628670620934777251516056576992714434175478410472676970487653526610073039113003235276349886114957408083894917410416014150138793819597008270986113942967964255884288494194901660259106942081739769992714107886170947711163364650524804686410602963838934819871225006928493878996813975280274720755061158289753111837484195241590927567693483801844099614352443502332296503175095355480873417209390497171483524617856659237736179628544897566965858037649244848931296069524288549427593810470354193372800855246068327546761535263570835456133324899971782683696455747140606478067350613253537608507046546763557798871862113480192065644026203869791263230780792867252316556563052821985145868752569127931835586259961242161257376758216283790191884016810462981916412852437198954639561615280141325488325789909196820303476395754061136214611587237685946957096752361100749474302458903660464278125144076568118177694538171029697392723272582427412550027377518705342119799607721748286068874750667972655676913076412328718283196519756271694058442506601969497873888919776404673621773004854922176085283550998664155957079368423940732169799433948868154021273127585638272165627232089045619071667310396610697782793272913723006561558268257321659114408551776619850276148106372277555316235754312592783003334466367520740768542936565668015379684059022784259100764550158886550094233114213459310465452873836945059215571027172163641840949619250763895179809931929647476405476767367979708630982552586063093222077531487677494698097148374303470927345616393223889209666944984134255217425811786156521487229895131251145287649510577296240169873787995808450720055232566163321867941733471712872094030602985886237868485303087250652438209934259291756001357665320940095652322660790192399663662501011167806904021109316147626903970657514335373141568941162945728929381798121988443733295261490671055204940126697210112426742566819932689432534146052779325560279719049535235713018467584364196201795644655605193612004412545821739906997951581874400630896299338911964420430315312412751619349284041497017010331347341459243928569294944408281665943183952438081520600203262390743032345157112735310537361649251149599896713690779392221072911206972868915076714948466604934221009452867937312221485662746802181965309050873833288279746218829159222585419876496142066709330012329386585630596557115178267880330033377817531570509709343074460509134602939062938155035084491362856965590402844175129747768023349443784035505203479153069756156191047603148913183957792254554557088187708643193865944551798018020517005575126126745746777641902676997802355654526625722168355062158335765356744955471915081905653273091831479296524727315488337835026060785896228629330166428556131750505458602242191358523496752182541428158592225543041530611229074208995976264394221335515080989038174622620166275751729625345170951566316794442482923302700490251737688021000791009061764771096131306197540786895164346840552056676677248301262762917887901728876618791692979704717246701997524461388563077342520919749868754721282406521156507028952408587674604522899876849821215096214574089778904796864569951526388511931798359082458979702197996337004649751866533109108213919924243644630703002807563690019950985479872972915553678726890942726362244383467616556002743003143964876404677240477400118028999198572456640264483600140345937442403801791881014049130313322579460673038952105054520183362206912699822625625819561321806226433482720884135201296530865053049557539084392318381995511086603765515812526043760976896892153543424482641561846617126150730073617449592610090481802716844392439655877877219212574060088633729668734698071871454676888434496450313416854973200327303487612071119342067861059329266657853717301324803719828266397097928726806746475531963207897159983934474378564650854855639027644109025374128996042920220775304203042521439409440055568848675601493273947433966716362265927995253560806310261885305482300423620400098881005115961458733374078472301827440674988550974829107753366220517866253823559129738327262623751308036660049698987463071984452742958268275147154622135914681492956064942882426193197171038051651291663922046904046937182163861588257823738355391332436128214155207448575235739244437382134090230763935152565844823195689605244581240901058446711921273459797936650311161198369714842505534369557552842784314863378521212667483286342372007176936782004097376018760835458550742462318787647975368569931052236868294469027351542550672855754868701574859833406492774220734607287060920954602938360222346894836175910908392319837364297471596484697417330824147689919347342293406277488375374475282574033940403651060626024011784303251708985165467619173747122662806261955149270640763915743577423777889573536199045419359618410273709841119902024237471034800771293858480685918351045112278912490349841618240823126383772758470126839965835660352541579462181865407012558918290638815692051511886911731329904239809359370883574099836057945512615399742617793572893017734336382961371315553032212621783295615146815492619966565545320482851191198040262428454259211599471457086046626587327901557056453224324175046123378826981276832327001514509732114474014927601856630189978223276043934785174202525681787379399322268835670666492715748758881561038131828203701606300083979804290519037658526498276380351142631397235445825640841039378726044295276383262207460904920482110174431507400797762169226957673487003315479219584528697497217371567893453000544085098966867432810677702705403320194525045867042703374943014742467910082236748930267847909622061346794756913161212988371433599693592775109076622116644785417291295429710489599318319085323811136328820689927942950851575737694875402634454582205138838058495348759555364857934297003340177490413293502951554417475363854224586565357454093962141162963257126740717686236479977713976801779519184767345057588849612040227004880769482836436211109589024714259082610730395232724484264074829822192173100588295230538527378312728305511557463314571405338616070965408466946878610508912428189723878697948612249210791153873236385313624694692406727562574954889165746102675279497067427570021255382082027470843526656600892147698237830106246999791429420813623190821948889856974473015304361030417176257162377246361834993990757591360216636943363266503439648194515218153136520249980603092608964261407311664485021856821396420381704938958323170122206739932959596606867406504723772349531101891672619786476940635393096200030775418648922158822471561382477626541199451021280198493707100237521741042827383276078784812295380913049287562626778589609651128324051947837327307334305432227216820495475624465623728422878839852022009118991470004278417309125584922742774109431050161945271580417155872986899669995649714994220280909844388910894970581987769597462588510355686582245714202202166698088095168698296678394132053465463645494270656614102917670680915063088667142208025784881026809277720687720824811431391895777053160525556784357124279901855300313975588151675916083602063880298855081716224107573717376217615643656918699214381368902175184490030212276195966333685043857109124699571847783184123890007124109803237186306691951491462604989253333162554075357512643960892984136326012165347532292251626347670293197686061525857701248879656940557604661427062696931807658274378143481673785066379530292873269778179707797775837333266503087128106352671193110249364582037012449277267277041357201500190324390844173020496662814824262859494121814602469400969398874329468728900566765322118271525265943603303474741502948648181896650882472783915129663529325573879458025900777300346823261179789723802061132914722493677470442068377899452217860891841273552770748840696112784446499260584847988906326659281196824263668461144260583097869396772429743193409718834616980221144481170739296238277208857946876894872974869560907499682526234568747574223618247213501702052278440780231535219417201514926664763420277590008593227562524104651268716622524059189026920670175126212130223382900171783061332072877279199653259130210962915151166514434667915855081090655671389693538617555971146250940938976216409133015391796670263405094561566069732127566867403852545253426044809607438247425064114929636410556625405877346945723851836129668222652381202033919319103408707650991116398456766099284069436020947609450798192538040604087162298843135352818999969889343647343624992453570692709563774907354922271131962426926374669777175244092148782537117591029140907629097197486394205879840750934617756992394822747446834940238770199985313317108184185959696417032906811831075305531109980598898422332444610637989933933786587412889089095864681898518426246214866122396229925970627908113788224759035953958350784174481145282502110792033646896997869525803758257334509899817430177126223607020564897568167050485454704883143214317266954857564751660580519486858167393102205084336534659830555133676016919393037738044623422117684768558545024600865220602845678648612271269652586114370338964589797163227592566724519230799347868899903086333442509412948842987524545195885386843319008565764562865376900491686952059211085401031116698800939756290549145963088899058403500073041709701406876794334729983209454275339490882620261698905607219646638056729512706529356267753328643087673246744724683203096195145602991997520124723551936346655906542511460795291787639216710924375811488834866358246113211906651714267242071709418685333965517358000669033879762298029555199064260336639987988891002115658779711764876282962446235489115479058648600952548364919614733959323887657951912575825639359802125320670690257713360007057112672122814359426104389857598800171767278181351052778006582208044887261632484625080393436342153149701823874710084129221272673715886632072189657418549835389613434074589502856182207908834722410988669161050069579787535197354073093324533625494268956395838556112174732930201651645046182886441068137544854473065028047278244103245706735650320527331411021675018512009958685796206001081747456553183836901251490171437615818084706768805766779878664386315252217264304155996568880385860807427944387699708077056186512429796646674462139513030163406417671755507736012481722787956545993455495703199818318175809221669868696009058068224012993136745579159920477332079057134502188042668753597544186905014337719294933825152070080275995485796939743138151343142403547698304241623183014344839758372823803137053906628352705167021107999491544632950418575362929266391254500918069401904418027462918404721965675649530677126594823607511136532128553470690277074744582378220655970991717563962945647089449684920991328155262349025935714621099709696403563937965939018424273901900719288068598094349836778871378182050592589397645745706443577282685138497749649575288116860272839213664028929702053772900780733321537713573662532619966579177649191362442536830848521523394358719145301065459969405305372277457800975699445899626885018240253042173421494768067262166698504354093271634057053296424113838900511865310938538615612055287551807006591602550269902461405477118195956223544440329825612886928721200720937456922148063596765688610983893966312498297166187027937006117290970189151957997065506441996514856510608736310116662189947909767212538366129305772301730306271740959337665726838417344965035187329028103447653843051852811352658545007703971294460979171333111424411196325237024415481696432550169600808717470587953282130182719791711565909950578436793860044552049036844458672940470514028738547804253810979278983131300280407523672858260837983147350542227502018837814085712236239033031299502703169979924791715080214303452122300543485805455823759769509508726309577901804370296356525603832057738107155132384694774681060976019870784636573595622563234036013958831154180267772885125373045363179444700971138960132712143261705464842573655214895339147814045593578290353192956831965827799017493176514790684308239828491245061029768759529017805601459333474741000403194862917102632432212369113420471418208441789875405786977668166307963478037572573326102497430073510828784980116934139885639339129021590618040017302377906648340030254647446248867464785390196294045324841138774238692634058858460114949468169126554433049390543039089901006426506912184941193596838948582868687309657194345139182498120603578224387211120340800204967341919179130438409951560325419886807797888439292074728977948450275636915908452882798484417271156363707817463589299734704803736103518832970873301400310957801202306041474874476447308586039793472227113317387295014481070935313828968103009897444804087022428298212489224693126710831334271257713076263249208005186749466761046049631547331813132724500729944118048584397608265116555421529527554605394375202948857872123092890863149278907425576795247774651874407483542622986479052424638192325236465099078521785727368205182193191773880672166432778693554933699891176014686273480973707176363668544261616411821886967054067983499276156260429980399783484169479246168095805409790526144229333029731901382216581610799045395226005402417630152876812356055502171051880441461792134625903074638525149742437220239755241525677032935462980110517298967794793093385063531935298387611772528228131956381374639457471951420400044725332582381070515099607007358341787210335274754470418858705241655058725378844077486762880664636117263977890829168378049449101738318647640817391326593118509089404304667397154624845212993065828681347615180033513763238699266725154284114320119175877964739176163098220186172213363932075938517617622244407323344077619102993645303607704551112891810537669711007206504752666865642536751841606104173253748211098330676942069673139747967289764658049854392069443649178803409407076991555993407852975369020927474417432864485164213105004260963933861473627783569574951821928032199581688111413445553341245545120339457398654986189290575962554832235709429460076507495559179291956814417201090222052991338711882784061601846912037534242135292265406879971855709387424180143006267800179275357289245788167418562054577566484009492935941735572184015692736558720109665595565350241841744698239449628089391710529974057669733677121311212327393404783513537315192554975157898964634176996702559611903613890539666093248411867469083119071526951399306232336413382576286751414232925416445394616131310464085926562177309176834567618293860834528992346699633706130860733826889119949754183549336163877674512579933848343830415420643348584552401218612741284929723865248337125192284777661753155506906666000903043134796966626137283869589865898926336976249791097404776350812430792110535861969100853827213498925759646286991332345664238720324053375592371589614807891174752638587425684576911731979512699160486603714668389654384328428459958054962079178181698855332540745320794087419758781550121111877431173349316369910195832284456361997580476208376352167260862716044400105864324153373350588884084107120034716442853931643779723829843357118467076101514858267727262333593880845785309867128171237314610960015842031362256232973816316923972502632000659943549002360669647105035565509241263038865951889708793897228110485170593982676845801720592344501363631904451616807366410784223600943799928151748472661531838509370653925105196864150895197149496920902353490047718653827995852267000654865541609347525716157734687075781143842980510562352004691629691332960745712011107870744737742402059873323459723310119331448594775533031553509892406672313983503226957549020017491594695679838679777518183899034740859282431953001210698428851257010221847095187182633491388792570179775000985173293961472093155575648566745027339956875884002921556058722494181807182620998869897080095976816918542370885402881038652563820491058537635930704651308357938192502839324277486678396301455515051713783450209939390949372154421424869032455239981101049697899400735920918701523246333567243545938636165007989688377057197094003560296445075399899368706686521622778091300330572548711668679209148587237813585513264168929363007573589587413219402595852849191996790561885758253946181487223307053169795749933226134535116119227806966177999432429605656344184152811517125917001501251931967409524421342891370640696600955668341497684449671379013650928306247018843553973119389197648594673532702264244044125600854720240667854440241737049607164707434566836117895015695583278037869843641922312677764020085726705582613440003139654322387187351798869300773952463624960586361646659395075389035735222533536302345990951355823294478819907301350752033263969389341655413380705297273518905851302763815478080542000131019159793753009860256380262904067688712445924749888271948095481261444392005588991334994613063494316305945678310614683669448484040010791471636318678567665291405994074375502902592972266186779417815558276729875215195561690543077869761202967320545704097373011057908775461415517103950535039289515399224219616708850951766035377803859914807051998334845695509738759566185822300156702858093982622715441949856740791804916346699147971865758346224161490219024401826542067583965490554957847399642001682609177008017906929890476670785280865768799298695002414824362318345415809688663413967083038525915575165087221865050277217258521667724702665732329871932197879989879228695134502926422311361427281348707311701891402677202544278809248948134297566413723137474587046533623267503668205981590661063642850124645074022858857399885041196362857859064561744418960592141837404009844561978853359611283554765426646969201020969827798642695288755148241433977319872329397189224489903971559826242820267867461487794949680061191854614406837269386874186278206835524764432957701830185613236539978080128093539728676610116078014055154704853318355194916793997875764065527834488368418992909992007199834874024502528976720784179254868180283298734566065576060813844564728031220066559998991657646875225751197767247793944428117446504467885730781848887328430324646661309872186552391736207602228554335324857266903470366822297365242819493363189345316862125299336066699607115950682238804529427550703718152960967218318095880451700710039028978434442220112374174003926998176615746702077308468138215039375641981533255774413884885830527306731560200780319220266735897756429237745083400958105178031893243440416963423485063038223102876183955894175835393609743109829877887186338176883632421307514698373259936457343512006740233089974653237411407827727686195502327837087049932362295451675153592579448484942150178426364215680635547607292973529588274093982001238522132928074491027938127074551859056843391706093900934525342834682799216474599851581923386808077594709849129241948428805040751360080967839298334316601985269248575043362834276301159145048047251634374438798266953653098250221251917938969680129320284549135296534873857972871430400442878598217325981038672235657763718502569009488048818134368931623685114236078874931460228147198528510735956372864303966857797193433422937005212599405965449572315077476957636766221479449813239244644013753926246286428885519068250281555962093869376139995195601546791730042596058895689143019085843260925329970224666851917063548791605035009603276591824038028101691159335763236883007469539201093205152720761633415878660440572482751586143610843225520391564553427941909949546784781757590226950595309485731853910500954883925983809841994475142987037845465516342411177402743406997241076256563657581525102879968431382352789422191638981122025803039084221228000977400003983059835628271509411150861948436005818939723072819513735749232767185439380347679034418926213006944781865017284296832969020923239593451247623276107938405161578579838341520702663344011497703467506956666825071739045307646204773932605835697966630628884319940922675781984271774383284979281181237580967702322613450145306471742022558952910357098767430171721499258638921374832940807096570538489034197302550917059772445417064067152315898587881997256505178950343899700014490808027577161378922645202247389021230772897372912186201769107243141319835025190562243877899191012862417723307066020045001335290082219105843410084461237471146744498007662771147885421775068285550169807592523247271375385217981683279267985991768598227953218102712766960250178425143244323721320646277768184551671958950795130777692740862736532141598095270982640418094255438674421226805804683281497711211437951319463623566985583033468336206664022125630201356384180539628345644246732512798732554288077615594851794651699556684014716546656227961864149319804203163699093377906745442313996236280953773555994318653865766751519864516003116423409036609195538409323353518992722657827937270586262132867472627829290626892254962470779796701166110199845415598418743362376300687717067425934739241738685453073010159102091847194697912097352860009853734050546306896250776597145578910656250999426237980163546829352877663002984409772471970531592095819694606686689851193987877186951929433938775372851616494596176581320633345288130569058835997753514566036785604997574655543452415860361028916779790977290546520169852997657066764754348450921969488429452185526057003490278138939557398734484596774594007549494111986811171588772790310372995465533564055668543140124582026293097786889785810578020761373373819559928015908524148642330807846261637244834393173877712871274541479994046828933143356488463839109933823495325253405603049311246393921755672814874830384491919206227832356411955642576472799895215036034375039250097022363364322502442501346424470216674262078104546582525052750847393178286994115543478071280360478719307649026189605728672490901661078793015968868400492154350197568658393994743878525556770969042161234759991804074220566720150800953112339313291129814108373568393833591633264934540419914160491081990925087306654920754985175956152301426767813232241239634864534271045464173648916834256820255639642026939232426512881623030319467861101417010930232060749579614145418699208541038856107803360877910996382777932342435730967733468065439036415884091339389086815780416915954974519945787971225296904334252854893819181035912197839764491815875535736639430875604491757098882202906563687354781330463430000116936428478784341433224345514796016853367890387334916954872908002710183842097404065464694162896138014324517702003693574555085794888739491318890704621825409867180454971093401008314018207658376376434991551603983219383372917367552492492805819443107526314480331202434048927964832606138427593562845918798093890252925177511768753859291391396154476167406480227778557118616365235302768892493391069660240570311716324594858000972983536534868803447131846665053870930463728390250838349115251972723047825093820437208821512978346135517151540155512809253755183509411363708981516614988777094845009429273702399429023298856283531044088053920308105869038187360424313615096175503743729952327802758838263885015690645472281624728638448214444204422764504403116496533567395065838887849492518090870041633786511708125148063094629504190701861839426650434902952561114926253915482486777311240248009764152594688787067333794664650429265556466554513239363814876989482754766150833775820363226279147342073047717796794725601912531516177087287545697785182121360873749808247541329110730343470043125040864924776403926593659763994889706654472928302522884284026742957934532289696823412836085935169588596608076196701879689405291775652715995196086160920733312910063376577696045378399259614220184414494663311512829528760723289129443828088221326419720389689585987269554606828182527135209017032406598646077120866506231133821121620304070726646494188413189262891391070116385448974059987491738003027028554226854298822597995550669924845746412177464477211499996080508590416404819213870160490645869045622896617128816058471289870117595067082819443683412569363607375261152499889988638192976234203710315690732198512776976691591445468862807701545724624060966297280287816761947962436275208172926919923171644809478497648794882197238003162854960422798551048641223513746721640334452899622067265332967161867916021824248484411623635973698170276449940056750271465593871132622386314358338712856901061118859435357330194530466609882088654482456712151168003851173651033662543314379967353723771853967948501232516561724704368418268112735950720179886027481251560172830704815001968368496756160749069723079048668466409125074476870390184341267559533892495323793325303975732031480046659077110668620206995323233531542717666624100058880738274648967959327867566912860722545531460634033219769329322729199880933240660551021400148811987587982778836414544129182913447252353709368385738235454952706015576089008501311789425946654850660890476214815300735196560909651593664171553459529246119145003274634966162937526095995316423127037425816721081131845850709932238460943134125239200355652978115682215623690995339134675352721544930732152671308517931629947090567975152896756251387395216004460988146817022376037028840693352263864430974643991106969552689209744067718562212634959106858938016537838215290126736965240983206783238766851387607932334575965075488029275542996956430923130129258814435976488435409969169139476131649324143492380980711244220863282887574512029331787326862945059862192906223405147345706884453122204984249352310517112783035790640627329308675253415728428922262431040113251744745933684043602285404672048444820001684441686869995628131022652995264804605362478462440191619566644067121838986653773299812704561933912232722422348536719998547739299695797577777530217467863546989563163733463244559480756464428935412454941600780324568838222390009053824542784229340864715844789055389067836661663442573924780417433329056194203150344289400502331016453515435551478054339337036566440300588711050004749160903007771988670962581377024782525667585994473117716211106246923925140815686361186820304374622844610620185368920640852899789861119309572351192872167208897352847592162295100757094141933153403678953724793701230046893971754936147838540559834218678748289959830372153207825854794246493861666676508284534461438736984200083765926535857142047738797898683648684296889430337118516002655156158814017243027049042842430342610407699249816370883195137284912227558575708888910892589795047853095192500424477294892027807139013533360056802373289288012136426676371194723497416005018037843209962663939997279845938170484440681043518895475373510859606505700160298232246958495397253357714264244444189210888491683242510570868104300653208293064783110690743630390141841031418905985691909817199813364307007500394747869625457358846523349344241921764292049736699391478442950411682030649297928137705381817484102793722689601717549777839410870903091678698908061279023862754379941433769064057958293205946712589997232701119511872415303930842683977615600097731678135990165570887435590577010965091203745355066009556278985786480053956562088148070842884806544484786348592033512468771551994113082402766263815442441711218851023951969959334732942340715512277881830072337775841080073922129918549250736019297673373584196433538154955816683213516947369242514475335527989883287372422802773523709008671735384426259815674795131137656299210250315242448678763346910549915155016417875574187765024439284187805016650016965109577672264696141362073532102951214969668432176670644998368381214335171283117206138673535462783516693386507587405664592922046894110457258564376925002775187088550877109088434452294165545696995245058450708243593208362543984952448818237846679709582726002256680724077430427706706616310526236714128456018627541522133867129958878548900094600809275294612358519875099414618616748360944905094464552324439155892027224006257161286407665855058624312022633836223544253050327659663558548103887904300179983658305415392294620926482369636221276660391725083524947765871595317413248143047216246227147690468421683987630339613082359375293581085035122597353832582734957749271486377755325162601185711703536437998337576700017700086691115089214083105187179990905358547630850035328116347029621197808913559283233970136437663884722039071572220104373431042381096359754738068062160164806467250492866861570363769040177290000386232636265218587469055939006813705933752939213030334802180390925238230704851145864840629369559261276553568705592731003996210683038718103620167545620833015913538013229437158773927289649806315581913514602865903812962521535779737214790612823269806369034240628665583524207083321420044037469302390371530215310711196260021188568488844339907779858305810762147688221621548297370152233836572055268698099811067152029725032445502367775531875076086383838700719867591353741360855406440733646051776129530655684688596539165046935787789339200305596483448727294377235270303093296481782386109048083733550997828298881010584316774849830891944701489208099541532609857613359648541073918047779427322073202350528955166551907123881463698466169847056642143168920562118534598968600314458816700186001382879284560967669840954720631896481033559182298494999616361546032197510051647289278396666312521063510294615550961248477510456020982725393461262972292319808585141469542367925951699454859405320420278145460971188735250552536896429362324670969840749913067278875937534644144396980406028141178575326265435119323495249724893654728815040062909645546776977871476547024629705019778484935765392004330873082408290721237683879336070820533567818411626963870898350338324540523812844834923704077490971424407813298521819484502546553606939015072354402092378681812187924931652254327262762089478831945169603116835099491260429749141294546536858238987776567939207720018737408160372886716307017921128964133389073062424242247498922219044046400272017072445714971308037759138464888997073728229617038987798800731289687460616324684046634656917150797234457437882987963901858718829815954831208229948043114220330317781310325310825376833278347609484734789364721330455413691601399552933260588169546937693207345464083605214629737499234701492136788008507596652961162813798066397961491065318197684939297004474376868404236039948245409208410950773743187193029218387344826269277980237694364748521529092398649868358581719270756100938005868777207108182806874083119097681807605308965618890822508144144934300768662052490256175794694593791496768575195487905505350725997500840796332299956508483929394550687547028094694261324042804714515356859987465186311826154511420720750907750232580936517188051853830136848790433823132822908758129149730028273904467752432046324220374019508133698777725348618801888096013681059866246774846484338971337766856135189553194818226406616000881980094952258844214683614045749833597474188052205705295026361369978655082771577421254152450072423101797240298768377866794827605695613697954287377072309707410854234911431371188601939972281850596795261590642793558563803583948564659846548823687644048501650508466646756802984590522144257154334578661286372840202697845321862842121418843090812061938782757996165639797236557391964611534015633860792605799896067724478757629593852614720480897415673158149652084199261353767507723885900063338490389967114098805300282630301447908219805633637093402375847698386772586619178349082218373941366993390991607701333978808208206777767969170913049610826815791307933857977801381711014281034103284031633287293108820104931715630689369725787186788424794765900216898361472253198206611210741100171819166148645472656200443130821656734015757230391804235518702305888772438564139643452254489464395375755800833072744762745378860617544450798318543258283779135494965944703801342853736496224468993526415576859992228828452876336009788246726074743856370908315908562987456225692568840941961001129939238693742376811828328090358069273182010690655641388999064927578127580740119832033157551273970564369196116307143415743438563956636113134165593404612259192829355260743400259218244759758368016785776757804192405471030237906730561969265542132570637914353136395682672534313382810212554484860047453106205464295221953413541324548826803323027354560796646789721029042007616024606434490168966992631739833874959999666795502311246990165662628414576665544540570046609253151354535159813377204475759478842053741628378757434915315096933534665696956691241526036990916163257982292124575947099855619798385769131299805086000902975030389918724799399381655386408253335370149316032328479514182809825450526362161711814606061770045678428440468927937700433239816817434759421211519289873105141779123314700106346806178327865503208332787959102723905283621219192763736953976440150152184798561462714402753787504642673198229066782549226699593202635394636195231691560148845293894152032458543485353433432302193553147556608571892858682486201040938684524064388814410599150336690848063818535708331079716469258238125098603393269330307202971472767275411070557796357216109750950022107557623917480439029906764491207697288485798076504657422796141430862279703894047679560415130732359320796052177210755889837096297593117871013955482811135615201699772073959142828157287747018233745011814828668516139552395848039817331805730630874380384459636673961759849613824459724474839508063477828469904061829907246884622743923715346510976177499489463814909896340038010041096661707431331176832782422241255376349868943836300266624934720621661711095146685135884104584599371469262151012928012543081308276966573945318061386523804836064587301207580681358870240930196486505051720063237815457472737788349278126966319771031646972886326443900450103583009378682637710386270071601375912890358674508423553052015861792686473366051170172461917407864940661260121492063368436975046308550623794712580087569063828021385810306469778260333197829469523439172891018155560115844101189988421418940948892723592332672105954076010803836756682782989666356661168864306596576527237189122392355604787504930010275635534597971658490922031391406646717940146768047067850837922599153552041562784603104316602962581155455751678722251358224577568971282744581790956939970400159168565642331432305349789478401194544504676546260095151854346850965056886366052308449794035974441328850788758939947187132348497594619299193606703399476979457280118531795128297746293568740770737405505667452571495864855061478449712919376796855740732985274471435205946385334669240103314060929728918004648699608448844037253633690009834998724996171050687819530377328943137060357376637373137377090338647628277927773545435996049409713150025766207629885650714773757148378061322963483093724729165572203929362929050063419325401402132537376370031386213462328899438637027215228035006042573452931496681115910998912659218231641265234233168123653380002510983775959775468560103170034196253172561418596770025666068584143017939409948124676845369744771881645062722115290670576861317197363851703363566124632221254064258278820666857998702015978814044605648015305358626628161435062417605238380818392501317988485688213352976718171567941818311642946673300903965492811142828851938408874009785140691716686353227145913218730944694547012334735245345363794703867394191477135299631792241280775500051087807217771347562952680837188459538167752213152825972060741930138646459618732909091685150682792750995491733540135906818421283805315974046363539616360462026033442661147952292438227405685199602910726338803038600885657579014930682985068992584138472778707579483962570552454754830218476301848166228474353082932709339177722666998291948648871531697787984527945361510815120059925900470415711728905927485584495819519867104793025602942290542280130805991830252191328136496440285080270213078962960130121206460001598769808504825474196701869466862898870558188955689528989893927375120062204758659868078475138957594822318709211592125738009662147106752665733696489193179144651972733126025437286368674080180264147597392027533372688140468572084449354551817096501862919753218520675078995684012585556671508227287472568561677302063596399570110886132810202533639594418545301742788785355295801494239093158723592354441558182447754016536084629497710858070308180337475763306591235421457245039988990296294179827622972905323293432605858400498846115992783807187157687343719495462588572660526960165503474362020175708488279353725424816179042012565085644692458382303343269879485298789513336800697746314410609108458359687330384418820676189939043397827712102381510134910001580907406951467245618549381962206466701388829531699103307378788906410995779423392342339634273881237176454018622968586439532166784230079295253048202352927031414682647271204129130885734675164558241312949539985536491046566817976426869354572787640405767571253734045750752516489872861597009618763063362294532204720640325915591844858682142816491351509978683172014362165007262581140744371147275340542864207487699248226032042068441955639161248337389759117348799826558742473221632837184415298722519318863544153751144786985624585868689746581447271546343689394877862326512143027814782675213084071676614083447907975527279836414766238346110045020656178481151371705463756329998436387365759343054660809273541404732605603413214635598580059383925143195585325127075454884563171771568425908816316076390527274488456728043214411668143973625095198639548533107305411908920782202985373106892911594440635093386149387094055840789777121415536381408735463400660769140238508057308035252536890602158597104009187822330009399720653292822089507816970287600267103528950849665296384407560244212038698209642959665669792994108157597860506234822888711191727922881518505027209318906653720561961025396603389542551415545267551456464063571560787412964249898843152536442289139100035409659282612418328129653865686375949026299818376167765239040348002200540437184347100393026548727726824086729585909006518860131341448235632072943320955654005153021141775824672713592188371204499763447344854552770981201266478048727039028748174305175131456661064392391102370081979634800750474654492916740223761049804715805997894919692854012643957308716190638374637208195178842396359678782155833836071810975216095853465527382860035245378672457753054848516777821950926893064404765861460451207567874232397447394485360524759698950799226699485591133204686232445393829705368931447626726715086354735390661247042568497227658194759375318328867423416787282202073338179777435883846409881500884712173638066990170830109536961839823627509719319174913961855575071748689668308473844391860387487213632953081219643944957342058450522150424109984823583641968220898122039845354222306780284968414715315939446018991164482716919836673760519285260241079051041240395103069586375926634882953791474731951091199192819638987546293505144163603503858484970517956661253734023789608409179980185104427129979631951138481303534497400150728346434518728737507433184996555702338659771098148119579053901259593800846706094932254978399962085888290836823950461721028386938617222713950898031603223123877972918556770774080184389488727452984619759748197778842450047157579721363438392612615736025547691450923561157197914648267039791453823953646154145043080931723131660263039108450660992329306432560831996808729808234019575230523739612745218249429153785949593894602825040335109312095783494237884005780404119997106892050524437438782505820189079670676991192725526409753955216944374533287912512901519992643594126231642880140261786465606278735190005275259442421033004653272166254869552329129199296960555056964906906835277376403994695622468605426917235033409531441515578930084201839040991279065267478595037634898229824552439050967358535756574882776268636890809348595048289843934931669512578914988660645797354063908869121733806471037225072176588295630087550749934539335328496603685169457850396875620087222887602973658473019008435682557868651172793465772329535863791755911540528814435476846348217168660144596716327127333169485103887797496060474578328047591437026543785917266781174611798743225613669534914154623366283455658164452445481128005751056309008425045877069821561026347288465866070389742429296522390169227230313775978365649248215217847931099714558112879446811270400081295193178749244879669345902899870588298812168847314359362051410389083090654325823788873794793521463678866234676586200319753663977283533471849824559225563108998487300808835708098571687338952191701300367952102043073802919296971356458472191270736791463552453255818170867941772721935833694379003095551397477136396604794849945994469934756971888483312500873828045518734955899040939719300314777966698433325579653686600120320483703974515699767243481182998427093129897834640368201639742262822087186261760966483911660230552955048552541028087888444498826982822043450040616710533792816287275619342986810103781926563508532793123112851542354348158739270919839270684155983906374847207083203845670969146158561739893485309817873997391861561305147485403370541855572464873402116664945593631192721889815400885190708233057804658428533363229972572016234634675513642769981551122427345710777957911092058158706767765741701858979247701431732663645375632795500970109317469798123022702471208868065393876552235626920672441479181303640374969191874383832887381181095566321787257831669997066909690302029603318963108049906375831836229506407671235173317207120161073830136109651903547678088408055323399744023202792560460312957102647102706964836386307809911163932522847826442882610693440078878277212070722307488081796626972449083555999554590822334487119123926545319130658303821388358939580351083825064201711884329794997519359561592870950543863410655147537407142227294671331678371551576879846539121517648340154347963956786959277551674720540882592917413007063980525040257878081066348284591934989035116743244630001520942837242336967795681709442995454203124285504840462202390641449338130381460024741537163900603579661886655701736997038025611607370573465872468012565337172321359025713609767896683990568923995494581124803467648052631337338606974582062964405080026921051516121682238450873783922026351977606892008776453447798420469272049488398275937779379887478024936621488144204930969293857378533569094273247070404962147013841220319207055203241892750768027707014251312529720315965963815861643201205529232225641388262933378269070710850065447910431923121416888600485115115070555786913883960573874745067121111310539487492423750338901552476581459719997444176538783333345400109608887306306066063693853313901245737677142912384827445338537497323148640747308308255428972526329103510775106864614028285851056857730621131040957916103582496806126730523380170869622184856449361536467996539450508978066868079594293099878940057508024842613510978669433795983086568545172815048131917437091148033926302536750804490552657601618793362519208723613771794967362917192104466034105875084841693027813771249527528014659859067281151653395005697964025711072442503973101246739246163926540990719492978402173237726090282347290960537702955792410268440136020861597985017637352358690901401224224936437041933488325542361114046806609638812661216153917191009624744718879875958506815296603862027709708267359605218143488288157848397720000577645205066692914488386576681789262904223087224320640189514198531752834566864826171561742631840975150834248618644743005756405184550217959535445188088229633404706122741819506787086825119655586538596183301818534749722267655139250348616518065690694555970551549468351642919672684986956032875658911009962648808177960215258951760407012852177074368580514129710448552546727429303473227642518871108356038887187659392995729515161687746987440616796272131302633767789591615572343705162953186162413975617432057507302848449449406849531253537894616183941706668289448068018863275646415621401284143394386746965148519583607711152057819805576653066874085489127984590391002463645329835357610582046157034774833829274750876390020993593921914721192968466343677382547125290245293899220757258635370351380617146593408686156527610930025664518311712962178725665383133335255404943287360841120395657398590969538279153683753462825179027434059882466646597985401152619629501377362989682129602162290100740437266687449111726572915791432709124656682255803316139374093791050914861259503498525924141171238021905787884801858556110259519687493972797925647795137706240412989204064823188188790477401967818817821373461598408211433939299202086148299294057290589556322200296284695313391730653772594042242394337772500504222387583010377254444045151043323637941903460479373328662229995544550455072980769864925558035606475200513017061087693946321093981710970887593687817933242658149755544716492510330437694635700740667049301308612623436660491675954056505577163137781024914445010271330683368377621315154380082808580723118429774170434166902606307614043515512252768727665438325942699575294096792302769176079619021039499121100217453792204637321225310948559256605731237048575419999323879268270623537035958235295555642051817605098405934994881140506979948047984800118881029654625929179656300948034762434987426865141612649437780944165476685366542935435324613972680496394070371427325625136177375325841516038359718882038930861094230448760793809529586907130378981677249615291573011201602851102020821940401092681320684977028619079937741490510496196027258718476743345056024347885936867918372564996122431775182342459276303159915354615913112593625611582830613047357244849844266643298087855157530744470572064132538501760764203312420383231413409223125708136715321519609258540775575368723750538004938666501334070246504591152139694286783850986330969596567804262526920861471593851512340243517876707174964226047160648124446345659844194757203201297032661299887219984455084656433359535933289187807620287559089075589689401596440876175722334174549202456879312519465518686679059128433472275794595996781284118054718860607561753111378666868032707133894012776296861842608777916633315135493113430482469122803003353456397975781998949679187490100272511615960554647427512889699055817428180654860971378655680163609763761284415557403425443379726106005546771776808751470797928132891834350753786916125868772283938573430233177475132544466993377292103781383032157430647498215595583950395902408872078836911393860645478119593085342386225761663681086150078099549113481305309626112613230672491453898734316003213270836784280385909449915366196915062364172313565412120067745381622885772008641190924872742122115163635165037857234826166607757207276556619715447829411445290770990674851665881425209064433533597496028447591626101640616380958829068342775186060245757430602190335825590500113737394277570811193908160718011831209895888809892400968665249838203829149708790349487797727748204973883426002688696353918302165379994466734064755342670242621828760460405504035049654595707146721311774072856765676496127532022538319172995560041634317657531711981563177765873025216853628315372948446126428094655871254809484797212396450174588786688966063773596666780723765972752940835023918472052507067844658367699479055391363578696946944177924484711359691631151908309641475751640730618155551341297636641685497797604305083902605553880830736906177260749851083493295402136135866237799379306375713123768688543895871648892626935665855956738995422157054212402365954287051934264041446467474113822939939444264099091912384039731460179540152297205510587921070626097504417351789731893814121123246953755037959529900531437325245121504545848064983872236438050255687184013442432984275798988825320447863741845658189326613887476204853431279867039187558625826862870675129366193374964320844002026145918005565980663194172910959210694967032334291362040986269718459861442443270915022852039895884369166489886927409890937736466628918127041310765331413191400918636562264041980957364739758207987883607815859110463786252209160607519169074275308229218047191181906016654647352788032321655674493904709907511184838104164698622026441307255434172339441739793056197751369973423179197363621087275235956323075934659060184768137907752341385450712727200581101820180604808077507584998617213427056383493759264989183186878555821855995796736287079399037930695652366730840403597483793252963564699486149074717956537079194828610171394376625901537744525649275691784206979666677268303896073678478554185278743944080179173640381543800758732733429605341095977851694201559144574781973188012821282962315718808928806305507409316717408572013243042566524763932414919465681281636837822744693998635765659362144920632074992314016806574014282659687530052476140006441157005672520146403429480519229203669482105905096156192534467256915804915555620319858892109641886803630900692098965659384907191197863408954278116415887516041502229690998446936028909557580963050057681653600790801501242288782607092563687161492492590265644233624883943959004036045059758662134248371799260913964801090992073384810750457105844353181345463361096343989397240007874232334862872482035750872908844945019885573080938005318425245287030877571455743348386434599996030785402075148105409721606705839114040055521730270484156651983844482821898111328131008066838434804705459862760101577873380961394925137533742476481821926571519594222786289059268197067184939806434228053554462406537138199342574550426751143831918813362255922284003189497717533152519049894307243930523645535630998403883420766610252995666925071484943962018820041475988097607922974126986539504195115480061659847138442120339019277471524990830144853180156714989322198530072919133147921561076536756378550987007734248502826912597478142153053470469767903982313023341428052835287146115652603751156132323231331556636745898683686050129056255943401649487893322153797816792487060721896049547388277476305695366851071067735130852247631377168890963225453095386276419243766358664039189070964244439083153625255895798304962680602483718717153679462014930420116398536978493616564407752822916547480743112507929262009097948962876776836402126353520857519472724898147253764023815508259487084565807457744486683877478051160521769994050575850297203925289693938989584243016373833990297404530275527400698560530013584053481699851164373741924071673365069214332323713980256742451073076691292263260437652032852248517535914354701389986556881194462416286110613516519935370937043540588677074119101331610986609581118285233725290771548214571862709530217350975883700893957001570015216432761922821709695183123790827004651240570672746853718160193614173134138569199708317486603592248539890478091725189994393220272079501163756483183240170036926301151311194579884396611125710348752286118314175216943439701172899257552988315607004214632290877936475967512928726806522315117271600741519117823894705080569839454158099322259880772529973512565534418475740450996179440762519571009565803352165117550492319461483625312457319670952377449747008582780270098409602302001360303685755797463154675974928079187697040256313522344341371728971321976293869061702207222982054771718159547201178991349171735677550108616171644313827618824777766375369682940893337130893744913920723305938684015222960115889977841036225561081787809051316034000568683192113460326376450249015965965565000564599491625069316858300187264957555280014467595827669118831649796130196901949500320710431998775761859956349545931508490264174621756238296587730251179468518474943942956971209555140790005496409116986590649329266341359186559869826630360090382802445236396581955368589102806831088935880122416899477845285644717423304681958954433426174557474407607624478439481501208790250607625337784637208127137193156980111554012898364672481761859636653574422943459127566864582319234891507119598141966603152036097159837151811092223893413751723218796227760385787682991672112462092739499411429249837681846454542115746509470895392249466343389316943833771399165601885542136703569608945268305205412336588976439073794466503646239630118426325516825812083041904809236896707362105794694905661959173857155728175681825135503095703665496909831110011068326380658887651378460901746859958817724902779728647175645851294163722023131229945381761614567695661508087834177770160725728641483743482063577319162714005856224654067092153933478209781862615051256807334791950619037764422049382413212905527196040732893689544938372906690448463449423391262839654220796461738641203002029845295594332701593294604216128137018395569004518002507963007059388588607872563636821738615793120856993182078675459871133345039572173795288038884045005370635707634427775762211399105278177962934012467909057302353853465553462009400584351423765551530357614607705959714235923535825175969073004624364841735875683863997100413249014454495543374383095002996425084884969021296235174379190096231617264844806772870528444494208095206949766673740422065756673764766430700835233670983308132217964685971372441993492741169034774501980765235726771917131116780389826294629748481600123073574688057747104232221692015661642917656499173808271376178247188445640222327390921017285181139529220417456019510895761546568239337433665044433318456940556011691606188369472526508695801051570143488651213709651642336788370581738532732909369730346683287623497375594638612010701543822102608505428166717320061897227248222375134628112294928821162929088464831329785485276967605137658713011273249111655820380253866104329756640811004745610111345446516052750953302113126421609706192569313009213930267544886092636758941318789363420381224025773292347809625214773756463731057917716884364474962380143177886385532301284951229410787394243022259349592635949836576727587656023644790642857692717167714741230981280525020926711950105222223653708360935512003521503443258771466732569755654025683776413112204746115522452833565414072786569314869452096343820473763161932944810763671999654752736634621299385936521269650168141574555726895992685244754354593507766827864985204525483794512345155562167241015969088589839145653212781589955822669887818645999681019050058227379436267772137263134474892854064951058051813881291801411937772793803589952038315443036203463763894291886890938927555292314972998547810580544016520906289010620894484171382123718629631630763837570574219279420611112444303186883557233944501758561552798318289585981264341688989251501469525964738499558693628817561983481744532078443912442817999749957446987936298566750668123187560811085891757222765842441911042167262330115722381449189780304317642161822403327733814766472634331987830665428941183764852443548215055992077758186272348737655225754269044117978384070649679272020160136674552198947719773731229809216924257638115446228213347098877638162196359328546932903306902025665512285409207164782815206435834633420682371261573807067044074255902406466419345958199568853495116580083647793745796651339580538065680603884936219742991904525075150592570469415398553950386524691297821821314262457316371659987225027292745895149731593297808420604542096008002849524556220113406396545474496968523629801973067420805203275853348212426328772377350199943454901187440770121368036914120779917089165976369870684363287562543818477238666284013436576738666612376231897195082555343713071126252254253191314602023206351892725754012582174309620659321653535679071385973986761096656015961530076027899183734999275021811912167379679850150093332910940899080573502890320025719769502285686131145153876421837457837888731118882751645617129716677377244312130651725917917252256723194042923537420693919941527639464846748897776146028447283281554599257462109838354194539968080017255592538752895966575184212135168692929208720324041473684173036946068514272244123168745244866033819828250029657584393808418524702159800492026340485438688102102193947752400697872782503552681183122774766367550908168154770775778271448663259304587989928726749831804887207825826637575960333041143687228520451524385417289124482179080759852368756404060275492977776040360959308688175128667970451979005327187310636735326069148216644955746746115781277813740325271276413786737307714741919207437772700806206056327716345935139104097528826753902463777340724053742642678068079645910608099734538965470605716621740188917597588242834607693949590401393374697096607178248287410394333272036557066871273625216547282814317288280893461253150447797294854940989999663257792745990510216934724092385518326800869968796784485718047731109476164224864072024838790601054839703151039097836144943687585399564434312626222822837107147997151608120411151295019540869904365399767932565083390298351432901103593771393819574780638131667177000295838275649000306066641559933098266300953678980257887589914899591163496000770349673975976134919662909468679000774411733040703296414991876281187244062326416516987783921667139740659224445542797624323963618048860747853336688888735908287464020347566572462882107761839480371513873135260501724422547137732388552764083282640960999656224176501989217958198766153637643040767087585660817996743080524231670275715962588582913514948682847962986565424661442878663396211671291514710588112466314831143152709005325567602914979613876450987011316052135532260629845759046132566428605128650951574984116796853496871612003052621271089896912895004757592124748406304061215358859869082736229979828168950240882154814694139796534797362295934453041119479672904416807021297185192207275939087109487881856355799567182286022143909353975392195024393726326693094303552021667756706612164484390207911670656190224465767078900619651500851553372573087495298582815823906947492664986799592214474808823631275103448082020933525806239642638360639632177929244348756113348041987188983887707526867827176905827438236119945289151451182813383096833909498236983828775704794188752937189932321272698524499772880366517423016062425109188118554686374165817674667776771824538732171143355623079502732075541867027513232391732933052163250734618558513560102918305607889339444501223644857125225932882414720369054503075831435516597199275015018410520887030246914122411475843902338434822973225363640821411883040403238846701946076287532396270315513905740659317116974935204665033152621021831448395640609810571308781467527959092730805298126385909697076798748675606810761131882237706111972855632294365243507333542794971080406198457769760381087194288632761998182580980200286641225422567824213005980377537133685794618872052949010255062167595726255248089609204891045176259144138427157660662999417417442115861465501342335083923159913077049235971713671344572785809665820080109523207698913134287494996189529256200890463070779974645801758675756718476133187626752777758828319115700081678622582649747628082287822379653591553305559216412878815576698193677178698040650260343962951815959325309722921869486279188957886215382175563264964843404791765825618922365756523206477281572463476130428446926382506844591772511773882454698768912129779798241999184396410316475829660033027827107481811996101711778405537779469474677886309069738581991687774769683296277801186420203830098696807087924066567641622154008174971420130622621298390210520167722007605976014658789316767662169431784378421420894631254406676515323959862319727866361105482320111585294695417288732621022446193082293014095227692192214303658579378127954322338207107782805288815329891396040088722578541159518196571755023373166231787433687308163045532674332850418409463893891083168841604847906498303917371450255011433874469255373673865854946307638771160664840987506842570686700288448793107289011161499502952451212608120532640629931270512279875845890856828653116512332005628241593099159439821279938367684894644171547074013393116912021534930013163001444560878185065222326382434141609726298534769782426650412540994991361170678161018542380971254831250526507208997783634356160779030526875451225478266818757350151037523519372171094028791259693107289707474016986712881916516401526396852470411672871412330457411429257488017333037737365794238869249039476611664507170257700230805902379737479804601079769256353790244333410183807503467484176496991231249258526194461763552233915789451769878546002246041037780720840094712448893012386258187836953299659598411815364905987142019752687251503042603423326596871104224512544089191963179155502352204077126985719469313383808821642873737028636039596269304273925434128938147587273229115184064819360240946981129794013147434474131554276867989055755001185961627493930633564898005251726877685674149250715827410822366221581726977444857457573358619954866561073807724663301675045234333233835712218700822676750189750156421255516947116418296509710446122222917075048929989827263812009946061061883617197900211964364734871137566152728736729067419464468755766001147781291420782248369369335699663110952981708229438023200142958575760474571918138796415216785699941199028611361719854712125233415501078370620149704169357404479751044315680117877328094533536013351284455953967106460830394309965998057204192111012227213729970306511949174861429772133822411246927160390759045307825592155476841596761247005635649940620155654848275721387529378596735164257085618994716284163642027869053081495978042805633409296928891956992829505307901090450045083226117515005417027040858557241148015869317102828773865052450659528948263492476261081596315006652612406085840066316275813083252190090070293287077806167446296625750045614403425734088216356968517139653723096881003324975168555886278642477231208977461904906544966410212323732513263615848607131444184401873955841245323358251532320716130812689100155883985139470807648373170691913282265087295929785277106522488277965128696550207345084316621570099835508590230398309953317922378299388700816968349097371054365120425624707464268904703325989898450110954563578686951875800996310364107578824863227499854334672241181928635466108625294983811027085103756236183134648068027877727397708916414096366317225266063125880166206950532247455393596802802100469116893758367696528981220835613050158480230827279428720152190356825024645971499973377960544844538424515981851291766627031458674265464429791258537532977559489066119332908747965904540149147152927145066080951654647192886606550066195749925378949463411868045290390437615794842475776503440178862711462829185277683384052585314656059859366467853605633508956703552575852623565058711179284174124694323158821914294458109700858576657564535676028623413217379848057163550881202160126982365301859323160261921307117845553918854318077070227615104962292615792392830782046651982209332868487508699378528193636214620040172669694179701894967182713188259771626246933179872878042321162351738387544118788190411838048220690046057712249402074858989083970552327814987967316285528083817204454777502941718453983220816912836698085753405367377915337982741623407369314567773648323924388680228139516194291513831200701576696198414098686550204310764864735016379716074880774699258255772501202213852415678734198770698953926056364472058963665923039534183582658331751005056425118607395791359466411816189811702619901183741166288347784187762268320927830542518819644197766547317346858647679135316322986562379055468606829464333039713647709384143955275915894879337184298365475299889821809345717137285720022412746209157528360842899487502447465990772133773394187066456262371351241024658457427918827500369366524431575027444257894826386901398512532481895086168856378145089012533561004610467350337520200335881922039095286497304123248844729446832233904558761508774825981221672401670307235585403716333052527419324446525635896172153548414244776454919561262336582310672953600651392894972867237674881517617291987694215429869440569507018293890964549176667095953522826321760615689590823908304735228456178968144062155288785808108452096933330572290047974004189023851549234467247929763588871467079164810021635986767972189941807062262831594437850160462615402057245796765405009172325064816046556938330075447658030282058374905233221448312014874428219705599161890961958913357913914660383335627015975042046379556121867860507405032775938284952210474445357613073193804043161494858240117954743969881026273948813777465428179172222988588577794138577127888597869591276591782349118934898966330660318742472225715868386675813982528524359569931095922351959197899086203728974177999527995250390185415233086885905485199599512381796060969443924824081422305012002326874526229032572165216326375641261528263354223981336646896228056688817598052695815800241543720313497344612099505304800398340918158895864454287769269044054950447212493566060995661542250303306825258932754845635028907807099200705041812949943156527825450582435181023431468881978535510566839703787956293461347322211429266683216904074266451517394529326047181579650020131013540994360234902718968344081536504670438286767400318898836538064135058974054092804604152740758282388535566329275637256579312910241097177951386089902461958526652639159213243835826398865012827426597100418143553318592385777962767694451638914707613861214875860452777742865311652656064477026921136925775618030011435660284393522185846438406479734250973475876438466164042387663216520539381702583689446378493890473130627425292372835302844546070010944271918447168717730228612561313908512591469108246529320849408880300431927779703619647002657354483978770096543297466006802150247834313683967331521015370328975514079763818136205953786602815732596294465374337046560904459906438624401987226648507774768518399113669787467475332412716757551099346229076206580659389069469174899982202236143419944995647921476199144818233271318979999380322277511788014107483765092308081055708694736615317111732662009142527873723157449946933078829856523678107330623475176694689109402085518244496465719432916256557258539847544553570026618665399418380400633926258040328692230644415528598081912668581795976978321451980420664078749639274336626376551486003800788231679561803944435006079134697333806205055456831204266839745550390723431457319589322742564218628248848469657278988983621461492439271449327593447145517142674541910646852744234665456000496323844683742389497521857012325325948235267965883228107312134048742853751717697506134529785401675415789118844312361405680146131139858770032953850430618809699926384802086321849197432517036178824550385970961481835021552197267086366418679905669076725142184979878735734808147399250762713536506253301555933441521864539282709213625473267503703137759444546155593202950716763355067280269081672328634086590074801064467440705590215761099726862967823863887083434134742768314068069756335529748565646642565499402928293572332062320205018222447619955447189970645895014368557411848185610634168044251078082604500703493103327042720266629205325304742952939309907030664508428387742566788604441744563908012797632829990668362811080826359292580489793368428342905784824288765442383429363875816077327417939457229039486059592032048561401256718385663180606750663086550173733211473940687114579056963302044473355948624840849533814762258232435334065013585560611809474279442008849572632254432973968894917790213952373393609505591396686611591322745958963499598307134645015243320698916582651208110984915459061113544686228484247351503784757487378281833148531731690845377955936148476103429981661380765962362979552436132377986114992703578771200331285412956806487360209973077539081391269131930367557207890627112116789026594090127108067284752129621572453195378384240326422824995416408184779180789635718294490803425678005812288269009407014955765654152642004471784695310251375888989215796458527729029778692662173140130335316702515570233927284264012300123200606205202366135020730584168975464261908524536570478936965603341974971109224751379557940889505485604593729287036492919394555668976444084312200450396435845963165426847638800313734904034648974278365255732938300908676531615140454834191198056638733083156208889866014691896720386568396717419731989811600380327464804153468939215116630051496847364153890880566716266312618288905251030911553978293322796245297927399600468986826968657031410079573544852841368966018481800288182803494399915311508258292267115763972397280765581088458918079655271485894860908899436935585741691990427497073279433437219019426496059057471642219426525504152258292606562995255174486868506641149096964944379098500811663347409234695804358863609378633809303145531882586728398081754420600725288139623516207440191635988370004935128742645092983546783087024301810787374164454367852340030158497177662217334125073069257574994755369183881548330420163859796673954052328175680705288235955307123483940043412053729020477121213299001020938386392812280841280985933729896432364060879935558791896039688322671325107677269049295785051792391475266006299287093964913813019881941810446971320852617376874500436628767160386867572061024376253128777867871158006422321025087655769924134364494425216470813686810680169711224054825211875688821638025954317251437988271948497200579496055589788388413157693840494190787540802508230125526695398190509287624270590196012053219569922798456443779336252731054531055570333641763573196838483704319856631077252026205298282567310395614224592056884491935574499546117753287107541017125417313935199899735422197115941357442334425721843407078023048539568237288098012553066482938414649318667132549127767350208512125564297500449344174719553702381396592086741888262131133350846706332806871210296584024482566080133846740554607910188810903494035301733007377676447274502101864775360688173763927116956330890897295309565398601981714511766193315256489902839722458121275338922851297374230061363837929144782457400810869771038348212367431161735643393489495062575347543899665750936455371154094076762008547432511178116825936833369250212479809294623634348855940519202424126592481809089111561454542128315812343648586483588034292176038788135210706332089951918310198022596251059986478178709679110601906114466320934613022191240800328478078065128709202539364691288124427616500649190559917456115266365697134138921198719798104231346935055131769856904089779319657495552152463123093102705297209530793568325993647492822460979385815216468687790272257168046903776527440102714961341056244206100728540938290932034817663499301626409862177717204178122648679427467712162249269382415256130330620045555152495235557763799215203424441275976121128311106843602226652367073632343631823438804127642392559101975090546559991298346262499229494069686742528084503386751824831472531780777304322956868867809633445964183263427267474998849336890669292694429150592802201574281889603720408053203366799605764799938138675876831039694253284689817022604377769124160537638890824595071923537037542257782434443434030316193833851367440154593704472051980559868406028309443227696577903607771157474943778503431248512112789609228091920560277867275656968931659886853974426961551815895050508704669662144209059249157365132011941723032018576252107527923750127535676832529315605660586546021101222216544648289730352843837815875509084953564205677068994382533230029304562530538145771418551824813929260219159633182066008226965859563733177875749288613161107538772890161368681296297296644340389307058795206483909744169730673516684663701834644392656265217178880091720446212598019935661311482985380313917258443346425240413308592944119628136068473948835104390339214145664913455153682009759690151883158135203937637797824913510324753992764583454380621118023820232236942644080295906713610734674299626402431368168287321798013267974606723267007060774246534252087893730401942557720466507417290702993365192742301911812353391527555119478489386011952871231848485351266037459387119821182370249421336332754834605762860868318616794651802605359157295587446819584471813855466737757856602360739012433067712357022722948486105217198258964201556408377568464297739223301193247315024250612533437674917246631830224104765392929733639272413899912991083095231181515046517774902757128304517319697615616975507316008764291689182097741250159697826212143239065820745113376536725916915620534546949228290118576934466712845912997876118109709393391527611673825328120814419999363155284540406723796946729054674208507896051004751024139184991852070701146084080716583111585792117090512443657758241647299409267608931635784698954030221610486320554088974896165613986281437328844457441148829339449256834807095740662906605553051545217292625180743568736775406919603215886370582018504496418076523755114011303880897546310898314229829006676758133410232580573803377194854631998933725428319441705480359044661844651483794825343838956895566331432795973058518044774079972766847879020236204229662532464469431210696386313414461087354126665963441041244240154730247525631359329256306431809409623285962654770650168538918486932116701806581431487979815994924736398291196207602726805128091254185538632693345585245263659400465998767484226189930148709169552147435178417789691798037081570491012688143367496467550530643472387266167656741877928815406602194637611282000628735666177821900235447779510366236656794236126898115664095838532663369774457049475246151205357879138726718624777129897012190974020545252216804170159831480966599039115153000783980804474282508476496793744060556530466168699861225586300734698210192230183735799788886277441258209116127463329013600385880241953925765269401178350217695981969402373705729946847108240031466150529316884136972789662999217717471729437776764701066739726836959754573522290561112950646888609125734587737450245230153117394567538104495397309141350180823556816644782927781122302506151171517487364655833887316945204904753716959950480924351544216937889898005827618293517379814030720483751227072271625042645806522993965340043258319765856971194226706449896758410034719309865166736294266789766181162763845895388106238045402153430401276293765382957211453733901006147126346342408353299432726969842412927267940877406836805980352556708030935359867956896951871716049423754767985517146144999894007341720285250681461333198014060639128638615549585566923327555042912680459726771319275144360440195745562824363432821572841291025587449228856646415296403430655262566677119425024410097268865238030404808963626775033513340027205794775669094754667456113869175466892062785107929858947710149154211879532545658431175744719519491175074156768153062706121409799133465175781136600579632240739380381651303698974664215452265200802835368621225589858642383984157580524924146835825704897821078964678177999708584610187093672535072527739615277644192677086231827666864778159760459339809133352472844658863041821146198471423507674202922455564079953940276306580144711012780258819073003182746320982871705562340472218435771279341254389892886347266544914382472712857040771406742405635562136813102983585425546546154594640615688443059601253244147489876238711855341741653884140828113079125206790551421366015713314664415567812122850907952576359029131732008615955707208613083218645450072946246136546641123221481382249337987450217000586813526961882042561992779980013000421134491290403235929515237610002419151228899220029698654771330657729850392945785191618660921759140336856249849063953391312001616110640020373784576800454687505438949524869684822283527996046529260324003584932229210913998646325643905340738752897988175598325153303713552372426849818956373159952920616859921834295180398783422020455307893974605164118524805129344770795362515416523551143194072470565683015729633561139662996666802721599693766879201041708819415813967892490545298752685381840688883867405787751255560649983091465520908646064494330886687084286776779625211590197626695722591857983631678968983045076032667614317890661260858128689837241724511340333560245139370535694842537507319151021672840337578857979316870094412242911261255015454285979678334386249779360336450328883581383701436612925887989346994977701796891657263144641891393737899332654698234271605251949906451495813187704053311020274219339635144378126491023750459134108592696275922038933253303235861012124178577338990657646011432591366860785326391942222496408193378774234902429610279480564748807899169672071127507799886700272275561159132135085066472437007829093538290526010646012253386309581311045127957298511920644014520884919970361064143994554589840113055937695246298844559685087396585009949736815161178109272576156521395036750309176870994844434700652750407799621501482139000824233026428831702401129102616469409129201055655044411943793467419199002528038961933788963591319095060960456279867398332706447876343712448636779179603576100036035572074206649422685455153051068932406666979056698537422104606919867409158813069007264440869519984371631697173464435930836488796999602027818822569734337746845107439445142329109408435303115842065629745658965133521076718489537197285410580000663290108725316345519935160387267036031818907944870629614835156827481706580140246249984069831003152244401573119848999638600201245687785251324302437133119336509987799214212854429068780832951845182987670197748279182960526107579565026559275149352625795485725761188629422044228566025690486576064838874672386703105088804914009667017247092348417052378554071282306166217265485460753481173584705458539741793880548431013116081227648539697381892967664793147860826746039321276702410434271603819316838700277570375522775862132957668014974376167978496710867760662794822574818127821640458695508833489295001423172346525236553299784854858605493855638492105073367725860634241938793275878289426284415606506839204353766739430717488846908364667133778404773604733568984902516882072598205406585548076351917630466955817741631804036211638963575022596544344733023991786191625681944665782027076008119817802116117494954232719359462423123502806277613781301428753994136959080709688795826184506719754594988037600200078938559235667885820082347004491804038526070371405659847954952644309346101091098932153115572229469806880081767197419931858109407994535377376539877562461637788734737593537573949738626970923564967613388358878815428536798936024186223955619688169969968293463713720819897497739571996906516157735980218547348020654674731769487075858753821762875306966688293563052208371120908625777893745624529593864170052166079155318091799071016979411675321397384678055990451704156627614947750540341834106365447210879936005095718502999451363009526402495484987334731678765206744963731441793122386381401499726806751588205246671707621454576624508695630486310399373996061143336544618573798791744415346144104914296653423735635099448756569613041595564468152061090992933091546412042218305188543180926060975053302810927165645466554175133907491871477260954343606165902081164650773669706367438928133351018964731796381949541410401184895771714939359532381876142465031032015875566054437314826782688355659482023315323789524247143395917538683625526228343267084447850723669991188339990303208191933806553122974558500860931460347299437524566742104134377460909896113739865556340368529287827408989314756819748097355046894230857420474209288112221279814424816212021738397799760287867370692406185280041177737919847674413005091748064644998981598142303658789512157350107835125325949108640033233072393754838469028490874452067738564491627011820221749653377625733900729172373911596421001821075911660164978696045889530544888298037145598013480898773386218955028635661072521990489900729256780561144772092650381702798945574603857206410680102051706727950218549884729980137084436212750639204134616869331071158800545609223540525236191203663635233589498760836069935888777876242966796816589990853980600158071150554474167166644273824141018775388723769249379718422031916644420693798490526134969785746027436287167686270061587715180578273675527558537714819656337898234706280702803694007962648575313498566343266842235257216160397396317274714102808458038162411554138448663198001046723769996343380452093288896543225651584713840837098542510519595750920044913840539764230849747416929925471230857300776309057719217429929734642824615643822759106688286745883342388391761260028935202808447790795967071610946338083835091955641314917290298194749403652408972773109587504528717962459356361865282540972219844821592729436700154970995908623226154461982791882495020381918938042282107521032722334588635226389491309267047401144101226780378560811972285147239412752115971729646773802572965878938948473387066512151245642523764706425010850373050301659348419925549403939842209545592810037637782178658837744602848316167234887764226066774385233491100515196278164055698985672597867038276696693122758695503479637377183455193843788014917583716890698896010329783161375254271961874892888187776072918320624088736683804392829770581943046439798517182067712734542048907309654884416345687670283661442253134413920100906171478679266657991061412492604218010974478180770524462422706535201355645950018928113092611020617197153715976911623910190639464400597393281237999760754331604592688201084399220260192019703935551876162252106812164837761376249272558442601826136693091767571190925920434016898335894720487412990620435780875857292512678865318144489091594501608155580534583856541184233969255976830187626458625925833900816025557390442262484568782832481815794760107096296616211482732598869968659187612568543476634701710618437902489858572586149519226763639108313406667852667620932760170618510313837994662681839388263694257564652495439081203049696545374215453328499610497534711704504236835954027463076478218089227103110795374485539075784852499938276148932285632505106346926166478680818828986109447492221272565675064482540755150260913727804528661257999118437002994124202681157624947715284468192011776515426202666610412953239916858921451039726373073973643151621712109332279791145382886180652787770130862452668828067510789640038347884946655361226787520309833204819102164764996517355193685572301619529150408151071984963441365094280679608906114891354632720924355347824631429037008055170170800765765917377618053956600831581427718339546335877495220041286870569193964795466016352718903930937788278219797390313119704197731339058768849022562886910865547064693400349053101947788881995016994206849015882459341084737842586611930879515340784485594393056068900196821686166711204830224310640092882728196123083880899267093117249262564525781678399842841509732550815759831501029354704136093694508269987495858890324883039898302117442358066906271606221385262246434435943918175606053207365484430249853367715971464029066422000843631910327987844042547040291752568431661633448353646319109806359519295708031273615579596866499479900108315555642641118555924169213529606255455357175696327591597934882412564599102919596253096485201451274513492519476491579938616336200947034251935366698180226824044901406331982359793730788418372916002443937739642875993424811867510444400295502256443756478131670679179930517299398631045041333489570932523305002204239817452148814041700627947282164674878513432418189588519832906245457822935901225366293695622881234526996758360874240204205248651638921575156011067953967814373051493291782781670744058291380383067189787964814416952681183594587588330338344373682312982733730016718986763309751184076188076314118474347483136587491431922606012034450352245755101261449965290005885596317197571366009868952888924042009640444427521869395848049362816810739258079527763873808861186521138812147313495362421873594592420568409055911453362041797319605350711457662187420714161149108212021816155803770711561694131304822789751089759034468990714252712069238724305794735811082665872723449649708877495313531107841930976202209078626286666743690222819833396473823318599471372327764115936671511747618948015152548010220922411537830300137102824204389978157873852489133762433868699587395275924136871872835006846446383907788810027923136589783211881265116755043514688229059452905181659750663889996057254790943275578286377365787181790837318018629998402841652572948975753286111916192701831371102560982123369604018511635429059631638064461593077229101402397768399662547056694118001088990010780132908299767582877489103978992088417612267429264240962809142506356647452480357629602538809559692139961310120686543590870440542101955069986112300419435130076014774721831445094243932203283624395825614432964590269126798703150044287619760075597489693159449587170912408318905590540612684479583390772499041985010678231754886694296609550950900910644150513127723625069322302203440077394540993187620549461581987509554748135878065889848712217086507321375066588941215164569535490828277004116333298243882868824121809078717225592653367608207152446917998148108552315614991747068161782894039449143311836599515304864160820704894138766334570668239435477624325819492915589672270086973167823140081347756734501125750386886897560942271313712444228404603761453743153472892171165108015449350538123398053922371999158249409032594414679015312667957689235025414228521704394718267969098730352317583687404522577474699652220821735815609049678893149529469955176628054841281250206793118409054571695109874751663805957770500335742995659667464187493251762539524457653963838376181847329035506790715355646053418283697561435058456911967369373855387098775104581672543567192094817511183798709105677245020508830637996673039984064644710497302679326726145840078834516254265092637958439821093451178351553501646625548881599271935803908104620696928500129301263023448410672407670368547672869928946070737510783917291898604008120224326606065192089866938542338034666728242675294706923150579438393675248919483148638094191336028863523632775222262120562228798004245997046249570952947113398875047108625039371119746565194067575769589053172695961722446913095768053475891922778130047000934924507199908053906654221588439265234718082955848535085657043539202458001934632338602788517693597580590051667781760940711563648797981416908424990085792948247628771828964493506698161105913530705894752995060877134658398786832423330097472598421326297246279938685976930851933729772273343487328326597237101153324593935428300828336291334034214344643617089263459499904847895921559389255843739694623445074071408500303803358079167276053762603430844307107956828697093980314395898087578377508153793355640597196772321018299281365547665772117965935152629912977563509269818278123473910029271366394690107651796626170038845374761964256737257229916598833208605010553888378774488083356555986913888674307183026796581091302534402397515786592461957855305213350844460032203130782439431522524831223240044119564523187265047292362493433036787038991430472575374972951760246649741170058248496126649337981134411895164177022090598339867860670592472614143353458198153704462902137702253030248306664193737540364524077431760225965885163608375330955443824124730885439539564421092438841000694827284691529349639210769150853915901242392260956539520472555148146134047461592494695440761861581906679359368699797768917870128930399121359069404737357350258168218491097715965714169661566407533118928751548934135525745809102048617661354921119209346024629889926183703818466842118851539315140900696095503288109984239732562623443494425407681514376493077469993022567190240258627004266877128443167818540567246761048853195125650288539590950878954154126484735220538703966620259983290010827715901779507829107142228249284483978982095646916510932048880162256034881864671953510288454361572414106156430542698024703596936152154325545613506137338380568641820389904707615618197079643022941521882241476594052776666235532107838009739461103935013340649106460743026419899412250230188431936508746335657381530399040103348006935379905222249227030217751119594773905591740014402723306949715799119609636500822585492925893755000686622172502293523397308023517296669555303202101301180165870309618979358438665552377778169241255835018251772900258652251960627195280347226286033085301513858693041746141730022013263952138558436413007970136643426182968494078806244254418140790340125945353052831641166553574755067857833150553951743160933249658412470406970460253333254557977266304589247183506060705563309705459701784722600232762700513496241487392185468653408534646790945268381762477156846271518627816721580201988456640400995744263587311834336073887570603550364676274709639683261520619614465086199974631314571079981576625805171860165823906070507963021999514423239815106967616135819401055087548879520215880899132498148308205020718751163789869073498107792565453204817713716870538145568224590860786974069382326926111841478018713712967537993855195783430653326406189644751081388221708036355270697633857845236340943793760350774015657180869937043288265016197378214557398745871182426547287812049106626629931442776445292408195583957644354171149457495485108912670634779724999007234721733726574394129518806896594135167787066867022357211771025560767462227888973700492583112579555485041376442941671471916530344017311864850912989028339510718582587917259178892235404083668284616412006798172329478567952137552468934739110935191717355140803413646709730954591074905343321579681175333132185162488538853023737476366861253585428546689331124021009088986029333923558282322943819868348810055958756310283266381181323535903329924578437457398787459505448739092067006449704846426879470622138779594174213063220366405366061276032602231693363564279948548992879264161491646097448451587311422178635838126676436187335592605339351616030977123949049143009331534327579572902133330997555115223683550879871750960408227326375991959610678072235034061946213047104565850749324330455093879661151522457403931547964272831510690494885599818476886739626899765661262080712927415373369511009322399236747823520456007736139657366421185686521614364078618430444594603953461407804353993038319327848744160005354164046462208761635885768018080777897550478422157002210089338859322863823116310292694372972725337029069490676504789744437605389084489670684777689198796444475232214302735814815093009672037094029849980450354189409311015256282115748480797811948894854378405566303867200546506717760484346507842229527584464510867771797440874790481089552069151241327566542362522796440883117717256136398868202436913192300186996812118158131482259194893672346320721992081986221074606278158196066060247007691794695272452618081412816764027761815780000450359553972730629616137187718077847323135354614863836898215026788094348500842047992233224019308569499403034387791894330871072730971738506316174432033463150117137963056311062801344564663175168382177571333561982256524143467079322954031784192010263838815539386113821986707708319198770276474193445928079263301992318650958452675925797108645888534584422424403882331915679250454867749547464519222459657392578550152432727141942130308886613977544809560689485485126894959508826660395826815090957660816269104597873294289411197061733791564938266206279651561277784511818838431528262131692058897970009862367768367095757030373441745945148506058709497794014467732449599871414939412943119840593908744812085324379814545397049920307766463103361348302313755178615613771281781301808347175166995922051860337301534850324551070238078275565697626930131274742058754437708883387755301985086980821206468297438923490031786234050566260343231993852425018086640034545997463741028706072175012311133889480334404597538541832938461384004000018114887600326910951082435780707993608132775666122603468554004659017857455866161345118414204862505608351833323434127873563320472010207334180535848521080132132927589868945320799207610068318452881975164148236057208528269796649917157680755411309291610840516565591470603331209721853828681928160287540141917270793443733992241723861593145745208362831818588500541434898868946173546768892764382065046760799974532551061009368217802933471637424555196042890200594251529477263573365831637258769859410738774568793906974597008286771650989091278345001650596055363852884442716706900800401391198735076887459810528725249670149641053055119031501761382151180870463477247672972865363231428251561972552916647048549013077034618399791444435840891649994338986989983628776004518899549455136618662091529281421347903936648670015004039452505659344975069868229845774296153097409735719501268718757712051008703609379241287916458408433908828398629324325676457186785671485161726525100703368856012867464269902859692803696345446218911622725397638960397379094569047566392402666265007053036566566778039842360122237807515130011781823964802052129217998455480113554883594879170858296504051970023351328872807801395302618848031925008788506880314883404735821385048003897536725549927267147714836580895802719520022294508847851016149131738723410950720465683282358100176720748197457026553500471072135866574935354720108785656357190279133341196249680310389805476084881008710280994590050020961329810905327084112988078461007898305559711027357651818411060271760542228224635171022798511938168620695653151298103912120477359424226552699351947384098210105733720209159292565008982661391403135791819116676728046738794341345928815972896233839993002107010948506486121337896360083650038447210009656441160809642690753371538427938682211240096795556887352332149595565449111186583269278517154363666004586288644479592108204627766242908282056236460891937156324724734348409312725283403121913561121515891359897922385942151858485313471013123792275771804563881387282841016802707598482861310199533290407247532315496452930707788935115824555828218034641710902439225158525772350471779208637417870667244993470785253561063824542773829058059694433418338300118813991106735543576293752800577604335317377637493418366859417765391735770318653742503051490751017267661843241376011315851847384733834626707252374405552209315354475850468792890208785000047717199675958642565206422823315706753472526740068241821712165370079272377741604838867311138025279387403570874340432464180153169367901902547054129738988580102155634065264696542454150367393301233196019102184660195856620590576289716202475443459854623970607989695881494637794076061441574961762901310115346321045819159068878704171984984789592193642997408861014893031014304304746720153678072395102819539875214024018032709938290645881960746538129852673519712871548660316637738176912046127005032735915335157182549835924560272742593156316529352442849691455285930636356952205171336586452178314418727329185347835078842750726662679253841615107888331669903066639359392062462484526065769686310779053582102361043382513813047540159163018291715875077341736798587083597732128780146062831577731703668458579092564710847225244103594001491198906826243887968341175301677001487727869538443381107423552134463922836796433203746842689412055079555619724116251543638559566663751815097511296044494718568166556501172898925273895775854427073620800568204336031236499196513366998112455297011869188445223046171610726745433651934729129060623003450389675434896241473658785164706508996543959628194954174051555446746140443154179060016625016674372108654452554401278727825010329336907316101342454973186217423065165607808493017832750223601274789127385443374282420281006190822946983860861078397570816742592964246266819197697704458694656508335157661959772981697948655931561399516916058435347712273874701679844147845009882681195773560850961998505340616463462095655007372193498224975521930628366211345735063487625301750047321107145313837852772417047594308324330019551565701408273752680204424823508340251837611414582466177064149824873927365553070882082446767409866466735390197521468209595389322625490551573646168529164223829390407982343028138897695563726861160266124529750116344846432159673627725927717457691536914341777337690400464624450227991040166059098878695279917201550665646472240669775735498965716230996952780699403534380580023528062745800214607418065353742939133585607729311067406503506698508792921749475336327167402408428169511555841537880050765605757225274718611663197244484397770299004412070525527840624378337303107991944886676208322179294649324249413174225782904503725938114263043083863710678745619452482426512401746039795071010758708922023848718189806047699455459454710253900474572853529684399323655350955211406809607930745672853816979344016680910025648825972666350202666335098975400008449706161300833553447994641432687625955895123537809936850852259413845978470638883480249717116048735103941529834094453049049963480045067626917371594431177831072411335111120512544718106115575738641565735692979973604996965707574563043884486468129863186769777303157719606675077219203198864704501419475692682586382091409121052603581995232661657172076095447246860473811331267227027312241404664737461548915334518004303066371889702054116940650474960203421280529257448873596437834476114582233964772317813184756991397948909105815750553218401055244464124135865099763956454251268072918296730144656546552734503882893061134231517138705160605601360215189508849867639892457130707228175173971054141835988776067077210430716766707347177126475887749257493231751240715547593507904957817001501408352504932059138789962205683898883641447588449138708952399314236738126786747281382209231352733642478776824795040604056711186910282358042047958417604904704783862020690631999616589650767057667728207041784282336880699982849436145426987881822163968147448084153779341300296164294110732151506716427202230406691208312745464638432122543395324193008483578044858676384436070121516302119311346458051402107413078018029070042790156107291793532760578597271507438740710265961843377412932105338819278102143141888416107126997851309819302993916986424769280589049008885013774250581150580137338952026983511689168386713011803758351390833185856599526662532997489661868403597396022816952540443594025078368341852135107272833439871935259502158816647150581227564061242196205511990950896388730231318182073690056117654697528393185173463947324688518111777739980218086408742513762187562093128841203214576054104041042098534721628989094325416113607611172206496301111236548416670180628266158425704858783546645604260404513439355608594549947774639503280277554208895076679824507312136187064776034968630743723684517238221741186946585745854275232920906703220364183583084431825932137082372443048314410210999748048681737101344554024457682637593310297824286375412620279837348920626303327923485342819201601836250304423435118901017670848488842713586301750390065814358243077371987878907154603154822078033466953603066913180472711019910892380328539617778630304021213223866781614137030235487092515632349534159796429194389834237727378441225974739242776215447271277740749844712180886770940725075426643747396812127367370066458896075368058108638931749633864481095355510047012125955732854115737878313945664793591199511988883357948659244421073388642372809816014861862866281840851555713635698625471973433646973183949615819964540199223484330384219156460684279149012420091348241532449631040773311765267602580632787467739018859027389611123814217899070109539626054953807156446147051837747381252010408328759023054525549696958734527771532020697864625254428551872949337726331555206412672048881187729009141003193988085947763696910791015902935357511088640520255698841758678473978496990857024080801183846698959758056619756929418995638038261891176646219587256515562118373865750898244764922419293317839662016393824560246911270975179692666668963286134793089759841958098108158130799983897098036828746772498203317230137368815110100442672400905769035114101191882323104751234964637211131927368385110452414853094925412962112587333109049413291898289463392623596191562405813321923930458123627718444808732835949036827539887871280630502075708882160262817389522934733956402640771955959795117080728678022420551397041273993088142437299173182465982638432907855300670788339799523602447795942231004424840880348400135453065664417909882236450183634992671208247509904812786515536104883810907966248583783948283314048956771732352446417221876882023855339117777673183893214391251495829366801323175454897408084242799352026164385904671216378155221440140276958084706756235549601124503932681690543932440536215967719007333485223717142770592259287188795084289308729917586998344377454789740152869262831399567338110170934424812530844166010989320293152857093845567320076903576229265595313217690831984519591503095658263582729952365472083742845822648349730019194674642604051315637552214717469841611520178149420468343093947589081923780994994829243639362487490364863491876948820761591503614412123148550274369240401400456045781837956913040113286679680677669736845166863586303807596644176155181518236965624412751683200051443903626442461865126013646364955200299976610500180573466350726162560378255179637922198924849974408806860111405491297151545031799194013175567283923653151719263077330963804996689842139334140535326814101772731179177397400407693567630429457018538118533319066958263116595244961332265661401772570260717573024811632428870820191821839398905898326650593369390880667025782607425944188625420695147207722640274266468358012544439757908219545562495986178913865778952387457232922877834005880375802825697494344101796822323936531752536450102425041951749532768903201512658755865902776267558763249621459210277834397567151083453968477917758042158598129766809264215316345156521540984331536704144983397792088113617038889384236505615471627479759510298437775622203071525088502769384837774911396058037125502587855756770575235017355787323498522643772425070167168405766269889879966365952894062219064879043556793221773358979984599390582647173728100905954004729428874952230168131750983069998920019080822722230622818856472054286012213118078921907478994241712371782897272211533392895999321414238645126094103790623202962890326909049682096302155262352907300640818313400674869082564178030624834172212954037264502736816717387313095811832327181820939368093463538940820460738569849501811724340240237178805395369506970787278695023071609415148042569992189003275436604036875802469098186121611935218563785328760574097403028029097268056825223548319890419397276016835140020873080880235827711707651247555114267879467300905606796105047727947472564121085126770897013032835738289486196297583096325034957623251461348374053854156894501228945636598296608724753713129862114568748049064846900201641646681649076429012029935309169463360096644456475327251442886262434952922312849876467368717727285221618539201008025886393457188364091271612319956618432495395903094750461165826096039448778359920984434598957974534143598811061964638087596450663511137295052058135947028277238748789090064231888768246787483351976354133030040671620966893799169454032910484312201220715373914895968969764367602693160752969533347341415456656591405049804949664941393757706040317064631409996579682177280570086642642980739208204983502471087418431547257410934163962569385365810449294929480849192483232801181736287192286868362715876588237548859606155160914966783471784419378535099945057918423808189700496096254278435064359033300770797580429114810085719525944591452865301300063072389548431467647405642109229066303513345664064462353056989163468246248841050831651609327727122908778660366498542648584021813074315990264406107258387177544640085509390665475492441926579037906970760164878584871139841522403449910403337556174963135596010081976329701452344785768260103133384253465630078090261731932310723431604431639971193747078324758714491587282864855198515873862555304223017746949396891911964448968014400960669900689881069551892065191806170129081612997834603568021002200175448072185249390031186933942646657760357464555505853449733622222015512060660823170626955450368593128817319350468816782394919124225655335302844729746151165430874035098134748357585149345998608908167455263755447397497458475799533432721829082175633281047626392170571476059993153584700017995312428128199563926401740951350999701517212586438143238312201191408412498904963437914564009163968285544041398190184096248903324819569304697923935095134109076702837788210657410273562328729804677132111113480366169152357254280639994971236943110359452886870099513762361462105401284075409992224347739152928892236570708567071146379138390090114113921579875012654291753155249512531436813758395798721734465693024411404385661785704304172270360129892102452842942122323653496763560929348283292867670104527371027454127935548171147587807951102525513394253488381316162773148506442239529473822176629992412824785235531267257383534619761511258581756141161154498680298235769652180777846898730739378823731917662983265201415936250283549990014266731494116583781763800224718208337051556237393126366469692669728478038808345538588204717639170414040280289091227565180735586519215956822172338682611033271391675045959361064192668991124851231890336279229774026539886340677074085939971058598363974780876072113576208332141987333988150273620708183658228835898199420108805865661808821034119802806040220448834418999278909842514180676354899992295572718686560581865832643305474998557644563456887276534367642947507875204977692546884319213923762944638405890492193513424077769186496539814642672380862028829425501250253001527262118629950250549551228989239773314020825917953751387193714836613304495301684683302541738724022497387159468152732671409071343547198327925899062950246972535294236281167454129509976921737140272744691641570497632622676688350848821706614498030940573394290002131599354327985500666918614918948995086042951174931418087161844246590927041120374811443091361478483376850025539412251423443002292814205918492321826733100855383709914536194473389317642490937952237411396361436088959522989942218790291046044946398573995916035204723773101435197930807074863813034971192020370922720315066428781800491039896079267347534055435925776021287467520629933492434389626695716747425048245460055668863139257756442576000758352465872099880075072056724432556595412218416626213094707513937747783189423002652132024401021634747108600454813411317913878090687847334658976953345847849852881081002382155849439115797529525289879380601628555472406451512171594419892360548887772954401352867147409539176439621605268171351624275937488922517319818676029834040598225840849667368365908308413997542459760988497322320961109503877346778227539319829186016004590440186204399118856947964613171349069779561879880093166705371818765281702752077978759714269716181016471718507519976131127933183977548887967173239988241301638760373297748767771560818032416023922167730247331548717160980277101649292915996651063438511619229076817241279272410600943172084525937251219886816275454012641933218770021258017347981813086710909426203372053069300456281086936098181198348728918382941337016030647679745559094215463916946236270170941182041428278618081400049002649216684660598294245268664524265953831143718930332992374288037707846388707463527747532399744626245294401202298575408887178046680592665983492529836332669639607740902950721495761667374463105719892753265664061529648716168805156173523705638489896162179845883477491206756582831126609693907944636580683315150120471980038577138334071250521585764955649772554474952311316845366723296141770252513761450058741029447608106424490394465060013201663487439079447072063248148974290843351046334460228923287823421561310318676457715067752645532333305130913265892690644802271834344324018734858820031111815608103548910735755636077527628073221680548905397877560768331355372447336858752197493144888961265944161952712184370837692200709705467449339599553363764563595761340303749988132419054691229814936875068070293233298140638599037456762754551352306431639823152348108029780721714101178653295071070322709771134802115452044476612484723721508610858696574929419710820676716501071854883557979699611525075299934142829067616979284753541885010848590863811388828732319517903150482239891196014704823708869140581731154661271762859078410351911256423427017215137118652126848398847602624851342843139819475115537774494944568190564965066135710923537020407675399618284897332473664090802496107267515665955670243558110258409661208292637437570553795776433974064110729750124100801545941404003689609127446844857769598322409386397420206527159354550563363434335815870433880191182515781008651212728185623533456909146110773249062309374331210274893586515353057430396709948731718746451124888592688122065315965971181940876257842659340105037129723635122750642957945790698393665054408429812877585354940450706702632518711883945032156655839989605012964679883440671404573382434444180155232929725306760713481022136685403095271613979372474809397133313135667539211515374815346137450106404779856792110109618481752091980794034409734500805808006005897901737438040296477260357299922770027507649578981269644402050033354609490616906724146203791816588851245269877641265857936953255070958081280124292149971958708737248218919579111356051931098002606942745259109537523520826016399489845058840420091988473302168700875873283894161240020894584749257128422078952166797716519394189847425601247563270133072456955242072314376015560880443505572226709049679415406756910947751664657031162156447790135470088999677984934291716618314374045830948174753138787477619550531262742479227813321537655565341195760920917012911479664306427365497875587435528823273925430630499084995681676261860631732660820227657590560894638751208066013891427372750108741492880151223306070556960431748875000738984554913734083864732232362845816889833772762615204655982742391510502018422457678755105929731151298698238623253853029373481020346549485818282337801503161763923412741804619467778368407039663581733770188540536691193705832914509030770057681157905054471539800374466971886119206107273225401210520277659280594736016476513691639249244519015023726717790438493643382227423661881017141246956972157641485963027230505890988823460319618740150579318255392345656088619031596060730942010022993398046180027652131862975211937585118590792747996675520315307439946180317676740143085197329870991835291161106007572023394845722185546099896751385383801154234300316620275494999680852088010139139767248081615633326990541431475819095175737416990380967316476204298889776411599750095465555613023027699790985710557410387709355958882744874546484457427352469611641709471697680615166584864906630302827111464733245655196189265694791263917292664269132136466833344265644308236685555773252999066484324661090917079990581005778264461053200905443036757551861824519544370213187041803347246721611918804431521242972744539207454582970420230087872741003529469546665596483072902409741666536668169758062588805704060862060812783395070484192763569569032990373890339010771703900841028064040908740090137611497186385264725617892305133080664930110452929063928964937679513754079239673291997761528830200071150844509151152606010777676135528269293376731192382132477453259453729096062110815143477883837764424540713482429661803809485042525075645115815104269880795720787828464595619341363882297450145406666434981587770591560579267267867263083929209711654696372952275088157634211144996963301835512807062610453731464494578962179779938709289414594608063722582788948492147741099708330545845032227792306267188138039329347451262981199783708800183537163510360724619840881997349160780904596716177165210870309372275481257130786955786885813601022281962704932981454385492557729342798522480528957111344177533391175913500135022026019057725404186217890663019461237376447983646044694350543194319339694049276795753756154579658085559635459794099829142614359579621536561669739671313489870559365980871987639762861513736765900592598276437387959207314053566385258403793706452901744991441676865601804728581881004719315992373199907620518220838087369404002161366140613285081504604804597456794109427004403267606824147287689482287250679600808869521372811489651934104099998323091306772656149349053207980747743666347525013727660881211920230420195425926039778283014844512451396907472046497494559501400150136873757001103430128663345018795677451948731547360365249736735812031141124486054992283246056538274725564037914582191496065408477303065737428414339686629720809460801432833623614559972150805386555360690627009542511096883114742263792465872246483385670499823575262329053249478904660851584550862539029057305062226021282919181596615740660134954387540479906976830217649580235036808588311988197062052829313840762782717284919033277183007278516989530211043632136565933297397831306216724168871426744470092380647557675813403452441970413769310325406756476271807190852666487995727389014825026116911255193547380500469299753232442086870377275862075200042493603749532591086083329024300876767566372302287997841545368612857566699757307862389899013002098726236014170017926203639519247758349146997059200864949307858968007241974814544780211570894883198172882892884642176727678994174514347995869833173603059456359130514408205219401169710093199634978234464595365713050819240414615598153200601197368428354235162505060126321237155440464003575622879703465461261980880763676997952856716436419843909225264356801256065307229684652600515107491416835591850314454816026949985887835680914515798580150713199535328833080795918296793153869763133310690137880368918185971114505389705914048111046596375706970445626669094560169175418743770860811289494623632782983240951118563347072880887483943672708209972814713350017550477494154864387282144388566360054510587461706826357487447953834880532609985001542982870483689495813573382968653584127692320578920360132038503086625334838189656191441921096211685817327283319366397670519932762218627808678665808516771347962551045913066714068354109229261996663199518916472108597728582677165572680930229646202759810936279500898326120758611084748211462304129249219077249375741102382649373295624573627478945230705113924564536624853588323095001830747343431269591504534483842487283675228941846732662555188701018459900455628977851094661548024406049168395675991450684384194984789667084652075692377624090445989452914109299745981790205441896138892569175105267795496251948128745121946013431292063847952445244385580049014554941950652509154060435562278132092757325192192866081792074619015282170483951292866856113090615498473516936094614140783886477557206624116710982003332642427513102236967122464139703908825784718251858191662002920771093674516012979736296097948207833740231807728676132690922211039031786247945590477956323857078357391389378357403579170220724170164642348256292991980366110167926270903709720772707820832704326255765331864516712019154561085054345188814904361378208556193606413224484063652398319518187123509145721589813238281744334190547793056024134278510975957456676943884517166237480777697994340093035207323790069716534178110417804139510003114179745615552140601607364282477250415783371319559022012498217289712466688479185380490174909857904558209978648998010049359226801572193563254650222481636545923724177674861469632007992426147429322554182889216904294742619308427580254704382781173085599057863392303249771229551838008674701952028713765111385681319292709452089189235317412057555845739294714446374100792693641886794321877251980757856703976547823585334399915369361030745743306227035870660306642769984175373240695519856071161799206305331931156140003483934977884819008392712191637751168394515864992976070316234126801780140152963101544835533766850528430185265731674304703628557285988605988333123331779989418030772868249378237595552966323171453304246382318183343612733489230231416889235987289589011027567995268444657566098399316759237734331505760830911955929184628058403750809407829436657407698586211679391942675973028607924479593175976466587680645414677963679054341074648674352602353718156086584133878155546597906038079579974857441835419136143853261190601241279219279531000597458334994147664399700669034644691877050360992431547135925400062631339066875988301078235937427716772917334567534104539213813413660138449008849649240473570307951060768683125539492457079666326921742182389044002351140654051884379353036050302098066115092124430988451069883292927391578274669966605349205122350446231050991855336854571096975772504708896436290300577198936025232576846503286545444274450368363441322364815102337832609532154091409324173585977202445442759055634781442815027861015674819078925969305415983785535117739491078722816656627326433830505796849493996277164469487324626057164509144701220513254760039666704755827154620053449285623991290791109173709015724801732940899580004521813794620991720036951075904331077515196783528048954144582062629135868696871951842751987346754252464448008889391962022669075904319123470101587321120992463976350347971375862944814643431163862132059625104434615502235222463974167633084762686170491313917867178994109286985127575459340487688364424954947182717438792783469574197031552573112686960859732640606834155119922624902425424289799139032318535545457933444650996660780518527540794002714153003973704526630147863293560153698239910858393284281338524083857779370777559662200130908887810563363112088067742679397931698156557014133689623187825007546674036243036679589887621322053737497274323778927291585167811179155513907775927278694651718631131954691159747349740774002793867544103287909854489960232746563723107407654018229002999769164809168910020790667084993448786691863100605723212568645876381585184623858328170943838599767042759824960091297717646809592091650650953307946437318825135440087311619355575979434111362026576451710223127382070447891459765069892564915343355016954201807077806523709019526525002270515282879328259740202539384739060738670365240821907918258353104808026758825785150046766120593725779318684890340755545327834342417233975598381684274876648695912271958967643168500113815872695068911384652735124506583461565793792999567256922781405662883451812891491418909442620342378185459402363210462081092061134963380083806053521517459116336917549854880142240831807919947926710449649735462425276288635448455375166262864781556742316166181705893576689725558063496206790192189822958472897662893755297188176597578884735458391851942316440187745521074765311645625152232041218363351451550688935532281407972755454333004570389668774241188396593289797461747565786709294130822121842275314736261187692570137234167710796279390793960212787925843935012017738805846902244875464012148207530069826629905888701048301808605941516089980647943264482949184485951643095550425622925908185439789035800348629846852982127981087001429772446447553295924114936748672419482299215433813544952651335919314836819219856821794460123985364562406921887176430576034914772174431882128485704065351654672482814783007686564054835490327502171463525623581556639171760330629596626402398978807570118656540908406368428196018373665503393671425292156205257485317114683650535506259422714083492365390751586185269593392460479894647102083240360629201382874877472600710133629176089623998844425416646645942161675017126374094360142667290849602625102984052544805621056913275900429709108837311879941348905300318999608511443172113445682216918546963025827194700996394549559377122952757438012599429593079827988959919432141675266635239213377093854090150120129684417648230778348513930382169256857739509547250595727300605108963352312348715300938571744280315270551487683399123937172742071820429282546041676277129839706847624617958764102830033745407671372554978218771385951419689162881348007437994453299814261792770246944119390416427142670269305807228677794383141585365259614072922876087161785018325369902320267164477805734066999015699705838244813512819433777978835225983960793310029765299619181929258878102680409810640085875801340830476188111493552494113979446384920489058572788436829895924069835104812360869530741243024161512385561690420806393208749854227006081578549630804782916869766844419136117401869587991444096688779365436102789464192774703552918024089568488832208179383423913386556744327360071121619215182009901365392764834982798170980412585640154216723853252039262408513072042154360881405827581630342928551916011569164163188250963023295268806561615012031589642503368855608703110536655444671235553614954971875101692586913033549144905740762855419582227883260910700495615884037856203409045327523338620329390964544702878601063993476886465735179700223511629257202576741696488945758884986047565889208821564433538084656175361087840411550479297616769271677548202952277441721123885313732466851521179170074566632980224200248686698566453726608075802940514422783091945729324745273990577454188963851564019777706796335321967930628328974141789010119748629278397173045161837563312897219139178259127339775213187455475373923775216658386940885911777703604095698712767774330395687682685830477734299509625230894200387874325464677598679825866940500411900153226824632255299675133201483036816396244057772079867565749002718586210010442825951718617509476760970006398066890540324022209666575543202096296724220121400738003549495327074475843030499452209429138217995581958870545968555250438195384239919199831334232692702617449239923427645490721154522342469310797799546810674582515430039059842640581116883959925157586519912396336939728219477078844758824042022927376308120865286304394691769456712646933685317366358541595077498626596082271030112745912828197890745874379018803830277216370509496811989386549698836016025186890749723222480840776694357160042421322755659578537986463699503053332602060191166075952311836147065958051999628413236403323260660950812532540197613213492332391757553365426808968010071912042758522618691881649122298808055213699149371862130101814689145446183396700730764526834812007980917690002243587337089626312632825381085575368057351457838394449671496132765631808229618266887950052586283389956322137152790993262762471879011962305549353958711645625343287014487574270453176643496200965484739404102934920324304192439030046279158922865326815909955720430904376584180370609103035307212077375474240058258795403838806623396999556559979114191502375771077231596337864937377238887205112772991186390922269976260028777055656232969505198656291809991681531903584137257517200357244871549349444619758762104641306755635171207889062415011975541623296117226851366893776185245430149325563322774844649471565002806719601331335970868893150496567794560791728510220022731935495804201757315430698585046242317571569683097724586953897987423044443784050528889618159345250554130531203771026833437256830376632206496744824034126278117439539670093892524050248301769141470360874964810788273646906237701751995426563580113519481288896631813250084547082231983948091630306245764872508334675287365616012538486636302934652513820168143667758801760077203599993009224563803553770351411142109506238933500693011166447178476772619980067189074234134442643214536775435190593536003118372110249098466311855872098435300363705561056075846048152368057681555172721133187429144594546726607260602680272672510451573858788450029156190601595764354022557376370653263010767858729819111951971702102926607433678484767786120022576539033263281607324472858081416779075216255484093123275119205173256693689218736330268657135630292994170755915438485363275660249605587730155586814126624125755929627591450592580208197457306520465061906866793392429826122452342177238019647567212443881366367144188646103016516188968201006204877550145521705568839805606798799956791801512905848508912952243165515106340037368175989565332969269839361463215036185132447523974465690561225726272799930014298349728589909689791504758350876744998999478710139558970597734111951849154597508750572016015836518488383801075075160438433010543297025661231687232974870615573031428740901656643183742806868127899584478458313533092292089125405026519304617481595509013753010699739784906533955360649014988941826049092434172293186528334406447427224592734001795199485790371172902440481321751245195291541499174635891558572859184324603572770635316969292743510269582028553361892213004053102679187588754617084631480779449557841100799431997780664732096049971478119465867686392800021612873890609430853602765501080813926414848980102886882511737274465283514385759538699884479108329315905017410842821003353109933916158090540751421745191175414701395574488124978686979857745453479553540127250475616989144408025368697369307001337643286119398734013657264250849221691804821845152944682921373924995688522455723286408730938309282711617527858003024403936128652083502099326098903830959308017864380506710396356692200292880870138192780027642950021613778319354177896741337815816353631630209779358078187380460282865261252644090541139353028646357965117997815096311492988613920901038256528428103607383015193900004549876363495183995968917967222861835886693802682341801152280066300445625568871595528346242852656180193738235623742526509239399604599571947205837731779118970362353784648627249540987795680928549296537617509657704077478990368433438213746968341231892234559163543989400593862347607193162690551003466659257738605023932536823958977597704942339618267650204950246352573458373439703796812229325601278091374084498513660351245453160367853667795427134414145835126660564925895590788882741054211607943379871378871891607713498722397768700053066245829258808157990981304108237051063389449561132209720184938420512263618672473217711858847912492741786034465815672134423455899733355815136936999677403818293967070950501229714980315798779385536538764256158889377751677040925250118287875871180289224736117638002839280774384633537412471777013268971701382561183030664432977829938244013191355797990520182148397862377877453397530888410202472638498390790820494182393070765955564433694971136141563391760831300641252212314396294826326265960878938375849354991341775643473979283288371762890892657233826051815820832310508252747720671627470829060971251414450682781988047344611855739165356023145257011533486822189978205080232506155254319604487314071034801589116111645772480458471179866552335125113845957079695558226612796767506584723156293570859220547272357615907140055589641556448760867512167108030336958702112121570802835126339600374080828271890460363990469859268507042165198863936148168970656261264372338343144318583676887584758020502833069353713838485199002790577394325949391830298657255032794319991270745665089564658216810479129241092651352425664878144640049091971027930048293205639523184621677762145337448760254488769463317005600414376831183499978463602908123871526183291943429954982426149294494107330446436598367689115743609974468907729399839167818519248637843835278485007775740797778671876304720804046925306538806787887244564866006677099206657151641046733640062232273600852962588123377701227127118441366333424331024355216724162741730244459333726817006371820793040192828394000255165903199423619794176503155173696297226264720208088078143830014930218685224361148543840431136705348441141470112872294661715910578325816964488561959855128022621848867606259413904187200605957521767421055650040331180690581539386582674901876098127921537223011908820204632098855750871701734464087393534495244853609734523949774486307119065058602312597058154987293979527204552184019719388777362757892136700406796305899392888165716992842501750413806816315949850674785700380653129476916613780533797746931226315244889296198214952216482132318022244821883538521042612943805446053566037607236419983201927143492835555393081595126778200999108722720691991139800750837203415716665126770380302639015895762062105641882242105863105929931691698533997928620342910705787307873229394952311342980959471929429570863252532800184286432375343847913393996015050806488036543099573790968815053755775406054629076580439989465705377585722267947377998568891712550933102326571843590358608750539453118992115557784536165487789630531156722212281590970731985362870259234993849394369733226926143069787136519260534739660477876516361297134179151357408457508190921158884448247603536145173021485306452669763713134750285660900341663657899357840956223836346805363251639393949665725801430726848787533604768171480835610053063317703071522396699379275695826103803800299729846231849070776725244853207265811972735018523444881624024015551344368677602264464610810968879414285656559969159255298911284695300268947400362938829569645353641264806428148316512724471489145790715198329150700268827522585925518825497548754619822850247471096489251618716593227478198088346504825307117174250323686361370811698442085912738594304759728598555505106890665139098604981492288491215561335056395235508618505786478056946661669290127206053454550866825131528427880097388834052612998903719075346198461325608124370059421974548416861308343961243805612957199075227658556610020531230546502146491835451244024546326358843195206856955914897617006334154285956318433846995909367785122520782607451846416255895258565598850392054552490583355830149829199715606862088340776182728272850108364900780990279949688770347627933834480629233936010400825968652886441721079469756463354762408262005352852690166154265792232361874406349294344329569714670067361869662186965199739936229009607371188789539447121817527304961465114756458571330080497103771983040803937182594343951877726942856138183460727832387096427387407004347905693610332741721816107345604194084006423814055073090416189157916409867982711209864058393992434407289728754926676068888152292215379954238026633389248954878693476622099581741137742870531442941128543833988837534829593829961877408925204168555030437613435625918818249957023788730598055796284533547876643605994762016157472886877058625582147797593557304133542056075886196372739801981837137630171606127663305164633129594264784692207379481952703096302596946015596552064908207591883851499716715634407845355387196852177953364431159673861520989509496427302581527926566719092128693303901107224882215075474657084815823579020964111977114095303137930714751047303614406384838740868921465477671683017073872131481614095467257593772555438362804793000460203277466625708871013588298795964815960967307406862678726966686104987985665211980985577009008564471546094355725336951191607758346823487709568399091718442226165396806571312320914830003642168183135608959608471785299782627189968585345416837974238163207627635976519022951921594762321153848866435548452638039938301189647950284262605903692955481100201825959248776843236534067878541705732003093454973689556939154025155196039332508841482367355640951863457563641790153614397765482893580680741935159592240550885803982632154896913559380333902043643707831271819293791751576715126264703989845762926305117699344383926580146563360893311950259384665583608478757779316340139412426421161966477812429157481650875579670751961043007499188412628373963977875982506114683911519516315886073744255588670830442610421833251490596938882079975857301461398441282243082518185022274675543124230998691367264151011343132173852059066774850269303850352456989272525795817091879095774222172196404473151461639269170877949617579782288373478300562368690505051987897921932094968566478549501709553418804468074414707967112753896240978537804853552141010651346101837573237733380928848985288321515782347424392343365004328417362519136340779934376663692205437269256365939964637760535727307506493499389606492518898983841349702510222751937205266945253973885247338471574428477015825065169474398269439229823089164538905533236799163840634863422144275959882163545462526182935556978711322844343758763271633141095778680518459431415372286659059302595477899445738990316539277039627900521350039347759791303268048637267012264733671697482870362038854868411384367792111946922157879924294947739551848260104395520711803494307860527642878628893817554931848259527167925359690200290600980677650153378934786122855044818545247789417703283096381196096922483551374633007847976785593067465518756013464543984738910671149233269477912172916549616909130724651061810054410383048970596660077461031941662262753262502376793788965700358711976225077814213603743914941614830751240717228724730598516190853826817994122866430622685612983765396685009198270894397826309389666838196597676017453975123973173691385445520944951106551236619962369121918748741141102898928208635315073855052729001827140118357508016113067191985955729994318021850963307839977932876123685799848922176608404344066421469185457773250615402862511176013439248641804936700063089272990096803438116215950801812662287904671037970107546734147512445597656753194849505243989325030845300468657936276029150126913392111908015598151567039575004124174263868788985973007643967199298845481748059014237709367687240780795581100193487813074275817329032144233415970372100013136797383481909088587990255612715419277998494204066534117266001532484180346995759537021302210466332165024069006860520130739191162190737971135573352939610315049856360790218733059526728603131450604743086926839786851987779186488661591690870960177618637981139028190910112848719727733045992226435425474298618310389615147591053102645225389978634595892935092797003380274677634059345568011376390493542640318052536142434711614674755973362586479465080772990521857022237876443411609742840963059620422948695876593482061075845674262261645317874971332734620195524925181874201828252941813202671595601527668728089402366911058910990862608545761998006748501131129755747979729657834669684386866513773874887346218547346286634259156136005757058435369840306315943511674356982719248147609669359381227168801883298077086914999396470605787749433843971761305767012970775750226323766672067780614770029285679474942067353215520202441777098947869949216870450194158782427695346936274160716775049654187606671011766897747850789391079610738744626166165333192091101044577565602972945411060300904372161686252248947630476204593300919220443912301000658742674136774752093313573308985269217286751387716856541764511098559935588858581136176568876961861483794095274560046881756040618359761190489302026717749772252408506215266428321030410153690402146478704524725546981842051279748639890593325338966646904565184693609079730881329909360049260028009871675971072473010631032688674205701994616957603460314734528392875132231458340170010324354213611740380111008550943273867638054806705184643646081390423213170073844702373921187317560897867298527897395477893400664219569192569569876228681041555201708263103436439139703093070611831468169891121156996485362900666813648793855614022880428219943707336206956016692831061235989057512124424418400546084267004878547255775796894171213766676282531056895399753531457168054943664411864829068150939257241015750556564380122417390927930732912891705634362109258334042862022646160806747869080028228014008064508188111608012422536733474174867723344038962250037949439474946887676559308669692574922824983270340934882889418682429906137453962975280474972940907228633215296233964293693179891266776684380896704922206938064673719856482738155022076855026101926166953178930761178725312892569240025632065309520321313211232553067737535663222931235899929724413154374632087045068081378883991747169192093631844461192161410026931345300066517306862247261132174532514257764621250397777021952098659947528927142054572663458363925624426669059150242550582236905725815818430376364159371964214372758945576695802731554360054539981079122682043166179732748479326257568873967710585782666938316897054564412913336496782165684238475377705062529432969871877985797423290293241191886801396038153639999880144940100618536399473875072267468948922963172055724101779988420462828174852700475091360528869033960156398571417860348576339253311044617706726686456894728455348712736714453206709675430114993474249008549571591382887768105877940131317153807885578577668532340620758261729134345280856728857805980265614681653095212867698483846991103361988284715903939557852957413386285749501833466589927252726263111189302484269191482321392622027220980087563817996792349228591694060590125128975291731127854514107472267976774856116845696558101638829255343401838074635282344630419851063071273567693653296912062000679046235650940799944207051558219577824205993051060643436800984868633246454447825388160297733771752357825111658667372726579391534674080196047809644781472918975790070202733498117960951855286010234051729149194898001472469919093470678157882349736947609472779854965359911189547488263173720721220625743572217574874620170175086377108769152243110944372130247665756420366547468938770462001367099792825869970912967659698104991441795403671047092869358362252991732560788951816896576768398390585993050181041165466742605401555879007708574903794683999763338792117323190055175867185173098732836873011216740809616992931838058836500277962973506625745908708668802794957347796184837515768006507181188821880583315412910792808474054186226374245473809785291453039026448937453081058740455892601541818076042162503111394251337219544905650897084353515893839480679510994499329326083960368575583881372858990167529257237719184786334489369299198592718703024551151872853759760334183260423911691717831714720412808516971419456108437204275927122180606920653409930688270481952975556999907312133043775107652856395310465493270592489651622135546049268218358520431597320404194538832139508557521242086825491658453099009283725708055262176649347946984546151093570130985888297215722405017119554153554471335302230960733178848289532009598582572235287026537561312904911000827398339581240865654780353419177386429271891678232110493269009959038297160123628316367820484728581975310460721110985556705423788881364114901582794385883826550491743188246651022887527842362237882632621260843400787266442545699202078724040312898426240310890325766340618650317942223993886737157940978781127966766182198787870523303594471467117907251677750516743707535660468972272970600153593596234423370420898161621516323323182508983734219472931839886198326839916592870239913705220370366711662464644262988861159108049896341524648474955734765917247645334338843348148841487987258185398708676312311480797113225336322650202407289515009833261102991335120562529471291959711846259762940389629093782879610069675525428251712921756721913651317274614527394987219322933414884729165361046711003725633635995409027331584753927059136505599174460497738408480689984192246288894549730494165983034934977348557096352360378939665246655245645285961019871895127666482109319000435713605706203201635202129319134645372715787770291348877149461385577774784901693297192172559534168177074648699183330437229863493501485060581824209698535479248011178958811479758644375080194953389867741363695087501816197182798053110638252663350680793563605867787623373956648423945889477034806491381625126242787443393848426974056377968525966612589287813648092832431312670637656030312298499799802275139790661710088285818108155551488422000873527884795565189957797986230137835573597408105139627087680775922229569455912856064989903919117998284069876917533892002620848114417658018109158865713815251146732034387590875370275962327460516201456041045461398191088154600910426781118629701997100052420106534225035884890722568161993777774503652082348432919162541510204189167331090564006616465985874146068733800877809566174107424726861771530899073366017501584331476605804027040052194003756594648307773203220085259780904623205224151646459657150454794816630723897075703178414197643750733361308541285091159097298784969208624229373318487368808581117940530381744875580673702875918836390476783210415970345983708323548458343591532600956476840104490328842555670265588475631615159478137137601278586980490644135725779045222219435055973912639433288013800084064096052225228615209640121771147659628417160067801395990230192984861343669365135681323654496034851006522273447429108287411579816761066504820179223481702882487855137037558176189254644622755126562425114031884032290459543013977503003694552054541021519329507359620804413158492840574650526436041307948283554733577212480484250470448011006970898578857422502229520595850384511638850162673462486024456439274822162374616328224446597432074271115938235743930853562403202756298787412590152381186317718922043287541128499973293334572197382362053614256141466638724014891888551618343465847890639889599149762193524288066689947864181104555588496740434393347621879406157017102787245273284908314647124561913228949444057041004825199089093658832438352689029323952529238889238700718572470931240160816480899128197029774250907098588793794688824717754062433839194978362000730877294925984832759255542445327055528843370465957424765151155634587540453767988015689519024474991980237388884856056132485278600872971287385585808813112775915375703443963312837306784370943666431316119151945869763570491515947518666900645861521241335229844811229433878502802573607008768476526400605535867106914072820943900152765927347510492595028139689435240329501373552626633783074880329115907240445183386670050982086332844602869274704726591534705755574431649617656702636048643968850888500266739426348390514401733670359812996595591451617775347414806624107794254024530399543716988452344272620905314547784010460672770028165685746784940981624904858230716140019941000815398787095004146469078068246872949037185013580273874029119857140166188129066352817779330120898201266787111876985273607145156300452301332971874757188589579158482505295030836701930860586916610721676603489294932105498012032621612528632372460793075498957164953528831403327535569270333943345362937378072717625122789935632082128840144766546617320639817103294497328455204187049353963290452220463374773155720069849313725866000795381409522932613969303504441838599677014076368606915419372182643001932424904799511034251771815040839153121368158464470238467925744947630383352339067666048027977179836969545581097237838897694929417121217068721183249319059501737932174828774147339579102847170562408826364554885769745429696072422460481921600203951586625805252279674590711434415369974598650840124777645013272321444132453572023790884927421838954711951900343096308291685019904240628453525270020990036065885281607017304957034121670770326446268379700742734030460258957775739313847490754559026409409758122282845208331845953728402339267412547199631395475611634214981344742613192852765021307423432505368843161574855494953534727916785071376017845785868354282833979042331781615507429070177895634773185076552975932569458481469800332150412165306853249615110609962501545856779152987973466303899803457141440368889333855178344207468944189553141623254224701678180461029303073816900326347684529469246722782413591971979648596267246698423791890610375389676847393859133077866778316864579148019145848309619211965891121823839213399701167738090919535772863526189203307349045256264327965939453606389128916993336890301987187321672998304473056294577585642399709336530432795307617293883802845100054747138656466714719287794852252083241243451880304181253506405839306969693816631343032319440768722473381754833198430659623533954737912233010411978933250378272633385608560180675009682558206057065232514251087204033443449770552864079903689868038148233876365732384578318289320481913207460562844422396080985118471235626181409464066867810030781714832736347678010698799880701231178048581444682295332742728824881598084944969627373716845225324561659419054412045562939460173653441613328283106516669882912315975108664836540233728391268937134331794415761550504105343419286287815478356376281674820063400585337420639901622960857463883438135132754715708029935578812989402798314713170086897993897173316318276763854220507670275752322549290826594603216683249827132171788447184342078735503848921189289670385290613293525906900702902573977809382761728128107105948105978929753967305491788109603249665714171685405077388051826873543778025993855895898593499921620290990954180639855300361829977952988843279420597538831905321537867738290222764000213055786193858433408086223685420935484868110743706714247512000890230191980524957321565502351548895846302440070176387727521365360710329503372004804210867642449903071276847846950919360649433015123961420430816322145019744477674921883341951287360559307006736232979433828842511078088733911315075789251784856838460137210358308234088132937805570594217539677332535654374328387483922037276200890823004725183125892755898519842662702164516909904418981855655707381748612223592107270634182495407824050342047897350220297789922407905321254390587448048390226755722884901706005840371846932849176411204047086224672041498253296614565913569794052397000841022735918170315124653288620770866233528989306083566919828675548237556486490737101676871485065511368019869065548653127885970221770875987369279856980365464835092774264986464848667665188113270698721059212344822888763551700687787454490348559943451260171224921310578442602729930303333498130166656919130349217559532045704604221329465834804813858533507044005531382092248022839939158856757534424640550133015581854790403898342956920154215669968298255452572537564515053774992800576611631985812333726014629738434562383383976929225236854274529463246988558151521643639816070966703133514590463652966484975819041065843693073494400194243870312973558540958217804661449906247192935822449212011515755371338958155861395592772543011648898871630488059412652772239428623073608977900999737171244124465127610609913243673141781401942871891347161257085761561066027034399437169487877863983102759887448569213278742483193159357321238422281592268231143151466994196118076170659798731837298470968064919193258913285885603882685971611227695148516712047845880588646174687846751664485164574657830552999951968920039871068452915409288433171995954235481009324037962022290329554608532011696346472175514770789223522459293689752536942016572131389880154044275527838329358798256824985576318597466239136447432524346512103644796548452553712389079440602052048689236443313809527333380563882572450763833637764193393220836736930092248150671826976307174643606203063703228642934403486230325534727897334764368915497686534995693833754635020676230501906958582475387359188235655877486267781842529835625429222316631248766807522944680421204941089633498730937732573248481315539601311267245474261174245038033643883207811016772750461617519586340496891846112074015401669540044030259211927837487206032875093117207531949133424923058592361695758698605044752109201838285490924077196085613398620902018140428794332352684444627690758004027764345903066537803555489641836825733138830564059401201096159320844355973905534528552046206439774000540555664627679516571342047225890874427570055608104847357374696107044133487649556498983020747960977952660821401771662525092784022996958309774899071280212268969571250420355140175587913057282814606470317356471367122548623797411282456116638402107221153634692892550039265845657465659209135343831918104268074803840043569730836897569761588024646413699070493934075585518903968352879926159303295530581478407263910484106308516745901525352260944942753941002323599865653570588171845047669361046154147332042196694106469940201680063695766102763020702631720225325120784403383497019093847848474881449517084102877247440760021511861335978268290773050594367465398644157851274794309997934326135774329838440794388975567575219073231193546092504345879153935596589682446765707733650757877338426179137890718111499169878713068084444298187100953564915508468151673775906479322117936717234372552133665121654986068499977786755442012998311610204635391650773211559380326666224397154843725352602668859044138304296658619485084153887954663470486220851295038570620253382923455296792933139934355427612934122884707860887734497877143165471844527231122808126040108548185525865152011374063463812440380145731450483003501932395985708862161341201979927041918359511858060417159350783226203479382587857792471306922528200403753250385298736474437853552806884757203291976465001274426155516546264583765284449251027674329788173707752714628117996301857190346624967471739435485403041399544497804890272730277220493165441715486870265300193976687937536607582570533328760266800053190408479648692605536719690266618320355625702033045777498743744259766460073724560464368692498652109291741708249958544581637537952663942023511627178948736226996671061407558257096128015470884144295750754406539604196352422230599917026602637473387336119337838649553072442045887278444883338943763429822094807721467130842225631798977302410078983100989859968238141440153254515974716394454212757447919411956187204604970550494584395256277999267706113173301335623892385054097820899794688673623102490433605811428200130719617160662302102339546926664584950649227237724318532222019408962188323040179049651510275799343808410815490530482348898721647968226960646532564561525500649737208246818787486084696861957337926740363178140316212302898492525829598930922197122785370817092206063771629453775812259477121386251758140085476716478183972817711377868128767619033114714108804767573345676463783754557138738924141091874198228294292728054809624186140355505128739533100614898730305711753150425711413785743961504897959460770564480726207570859411451895010662681997967949250950296575981757244538296649573456860529998834323865307068772658903068769324880158627954798648970706673542372374087179102332652917555663090586489486836488477520180200975188852486170658027074656196555510978640157749243943432734602322436547796161986282547738298078643755683252363560657147611472087525656956004254599608225690040296968143710458738632145820325976259616168448607898159165198544502367409935288778668643509774213736191925436048885636933736709318346757840840522172450781257779042870581837973135084315875609844504958170397121365548479278345591121607067810681409810893733915245443560734000446206091032377414080875700713722228998046840868848445569890421763378859580146032494508216450739807896584644298589756220000274656549516857548222609092464505219596764133782947738016702609787160084220434609732025404860428553848761644787472759362631410778796669365952176093485599568476486666189443570102079791808608210361043672168167426827502493319064535026949527798518240161985035380390863735205994579518897904194005559790060656646291588701449436570071941996158023682743567220798658813348618490790968722482954303720306052665627230500377635284385138824274825842316496628874920785586194765280277049340961495798060770044049457401530677668465664991741471017063211245433509613609168743229717383845881999046910395515326269047675609573648263646617049014415782098973762464595840051131579636982951549238929149069778674327179060091137063630784653930617530107480343102921245495264256325893235688242210276216988744800705301321152506166709669062765932417611426546096731062950026340909119679045313509937949799358916878611735675138931643407624094648767501390382954235172483945932963167002839561401092225898799768677979149621402948708340511445692436318908429214990578641785521695347052539213693388970318959108242131821015597205502828147901501751686616160208738064724123956773218164930480590012177477083467591976086120892796796714406437970919966787016973952756167718771646086501318661347097746228836804292424722319732346421821833626886605053455054024398401161507421676829268846259784402943085089451935191912229979887373864716995258699135638419216354545048494812736965210622251412902797991026143026347551461311692712792715664163874946085641857040719962106984056533902017495547302478590988246277668431674854680997443053177058063987760101775391870457445676939005184215760407502211247340005957608034716178556377423710153697378693754589878019371605719964963735938316846853933997630244782214222408095266461110492414161816261966323470525486350512001627392358455403227256930506067903553573794634000536276490754316381439736801517143988718789838842097125610726426599835667834144603873392721441299575022434897260554776072177473514491098161787200781736477377860985832155350918229952020831891010087726893280901495078028444549348970699304270640304133540587154217755824935724730921998947437579017861739504796517389120657288655050664353504785322134712739106735166928567895853692474489050666930960167374358838621722118095734135372826045587401052358513438521624368168237379563904831117679457461139393000940563501356520330066936759092298994921533613193075621861029484615181940715693592092023703316879172003284002835132477833252944100227439144549415475010056261936978085567172629659349233517218920238087423541258792981531383143193491513617688938741512296746399509666396603608086082490709575696898855324798475833994449659711418931691287368723436034857194031045539336766470927135240959622876825914812873490992751545544135158473843511579264667341735436711427226810180496949896711894778777066876743395514932773791766994522762530753370057856719627135761309038806698869108810288836776420938310572567996711984601573155909096217979559403264888440833307191188392145702631383719283862596336077914414861486978875818762783549398451270209746673948830759529894998422689269855999234107057707444341291678795682670698997425937286929152189598146473516080357567326185210806548664969403438201091455558599150203569707798425219394665640230612830723184469591618990909976744030891746536810267669011308410779281201064458416914079602777699241541913537078105976875004145344953873225010013737043057329226566364367544614091960326170556944696214177273330216396650009659595844296094267980508114420454104209032651934999276250241445269715135317694700807075074845492007822597846540968325363296130071822933811776587839060497945579529978422323521861278851174291214516686493274350323291926851146470073202694343641391831622539371243122403382443515981140532770625130281252771970719108402716538699993766079465503049399458398225959434919547887719277419050822218748027991291342623706507816886334235076836683021996910275873411058628543771319180114341779455591278621050574498452139353662041824705162940759096101955166432733263274632971517569867107374799756729082282328801448025118957127855427022055435759822942461216883073300278287707847710038213189448373873284710652722686076384461594487981243237921857571500828719266012876113815503037906063532076969210454086189596538575559716218311337065233156783443449927049970805346512413483948315873127934339206063899195230747246249495965997573112047358612315091369940560603234488741678281901702041788259662116780636365116317686259292586864882546813195017635576255093778239881920333350798913895184904103031061810913514794224684402988129712274291589275515512710393739814708832783085239804329288237461650819660931335507582495442798754941569437245906123388042708594024399429538312876669293683573031604935271066814635741910153715404792014966552926386243279280037335747076109739719130625881220709044367099288730826665726257958314796472037957282103308522757153381293308927672278299003647559957170774724146943357275003946894381995407643493634317048756197809588570220532505825164091915022659760952157753488971305199935926895539468221600793234213404580352405651312530483106567929611918566654241979833451665051352487630501116497556174142587669117376254075120105636994270681482971806124990974074673250540650904066847800079556906315865141089915983614514581745521971594050517006406402199045898095732282069074110472328648157392008951778403548718435600568854002764729540318934541998732535025582754440237321911948486909713216022251352434941964994959557501019756674370082144343804622487668218755829824811422623054883795038697755619386388179199428825438000724169810921750198790991277729244560080506946285919637931305834489994503412316460435181766758114218654106388975630543324241891687876175529639506216660293315719051609523051276865610535726991811225393182277375287526339452754443050674421394854484532644253964352237725624041248349690976606610619368006699233125577694790712996254868897481190875800231162726720905454223223233568767510037853650148083011611357678494768161937972497443942893370018011461213373468477555582136715019102019451658538568437456013612845138588159599621581822916506979492935804845467474316900058669514644411697948138070544149111600069093461172909320404602076942002321198305456129015938753511737764000717311918426743523374793689591391638095611095061044544087896109726503831303343719847992807004945954122812681046716985631850816236634296104602598359584148317605434196505109520738529614741116374669038078788603805873929095992080150479437388359916285057268502870389227912029994507181600703183513035942840792973678385708203835285517451533559905934637436114374707732374725583328766720327545481571906979351457245225199591896050452342051109859571304684826680821541859087852848565425302856070229162460622872824365683667272384917014155756746127185136897361825906912712086221721459770610036024258511860270886077416702389500935248659363505979946542613610208597555083151453363212400794651543912254156540414138064326117333527143765181048522531410031810840072871875493054272692978226571901171810461183153300684368193353409594175850881956044031596595258051868016633861557924092413590055415710557708436224542148090728456341963941339985434574726561811009410005873115673769935524721225249721666955474853385892506795585394744572874642174292729293439938394646862249427546746769511990691408436795826163849782637362726076410057015779740915360799846759629392751134116893976224381826891444137010803281053261384662241165418882495961235077159314249047248734616194157123031467281913269143926836321363651628562468156595925904958939293618722664750021055312976922585668714622932790674059804031008860591585707390116828915534874370165833914466888066837031331702463427698097715844945225030618438855536060314413488976008483778634518642760019010793549292667404289125311600257267417150813424997632947208406317076187123489663398175385358841728423371207670271132215348650502059024261179043722451193922726738747327759233829914170705458553851493421224701252597829825255274309065814695753604476445710387822539448218767365945571024578216848258516669185619727350222094102126809654026992476510282967039353423966635611280856514982615218025700401050241838637904255777071589190830575438377786382981129228930355879102480080584898182013111056797706765320933505280010157281327457818396800357905819228023878424239661443997029951823355202326356167944679741034682534337020779009465812692737367943821313489017827480718466161238878146285350307288509891003835544200670119483142219359205987087244259136959096444484171151474626999990487060111376437649153570056417806764205561548117672725717835193509701192740560719283583862533402886878377019398835916156687591966078848581767136093932311045685526940219564212938450787382540954498190843773250986311588187792536079941515229538282103329225189867619001405489517605428389289257161845265891232257703421902285123680976831455675531618340378386428012012141711920747265069652819816844674684128876903538498546709929058986057566927130822611057369851877773840751684796594155192913356019611717421109130926764009971586667837239289923815542354116478298472144937569658796262969101673987848425980339806422843040914032041016728107601123986030429926362409378423749693200991776547115298039605177038123088528399831815727205735383748317512481480978008348577078539846638270022436464426543132441380899252670070430019939329713624626839551726016744370743484863930951498865284902460873838504167579113249848542782372248120917966901085283392593846219758043256659520258853553895624240795305587604007858067754862144678077912422856450802781434846153867195850619404690450571267421842252401892568845150802091846366506879326191121167759295359889450900880352367075645742850359318813982947221761169262995438015651786215883558414934867547411619203016382830817574640001770390518062277005488568111169414831636237084041390790947481555223476774018394680536674127852829214046301074964496198582545720488569497380453290507221271392272452459285049731799463057919010672685402819631083550834123569070925202990166177789713181385878361479676783752382155138106816156927056162648227504747008051372078258084239968231720762314630150839470096127808979227301948980004341821320343222161830465716300782600479787785361723496007998843760722778847267205422714754553173451307117682637050005262326441837557679970488436428210186078050229083878857726988013335246151464212604649505479483879595178721343132652629709022931289665038014694155324336907356254088379477413481034707579114140226433183457594653440951246932395718364700389805993290512553351414849854640233069550176337767985757267244042572755511228253091793984835768828901949405861186992496952553840481123985062913970392406397222491652097763822314237907519306409794465701289175884401704309316667948067591344910632475495054951368029881974068651215585797818153067248900321304412906852949217607867637378213974381742108143414716143331104496464888320477494131147172271570485525111502812118462973048340106116172374562738425570280600203779431016654751848305089367143830726119527252436584018139276966076100192757865090143072538819924263221077982189802719465757458035547978075828642436882219450776416339156669941091308949383462132479481252556263602033792298279210416782997337283362272087725626025106766532486490330007068998823694670480912500932327102540904264835355690713271557099758468428550724462041741140821186725000527831337191686439088261108486790179641976994794509650919296485445379480770581493965495642195151463724856459061877595532843677459167200626970448717813969904317836486774991834369219448718628849994114859545182580281378344551386380906502664605317356860687713622527140823094974920146790204044501252257162974589609315103469756250682444792567417228635084010536306968155269463869268336094219150831074912245555348026786990459253299307492361943640907929520620430502372366488321782793164917164685886121632137786214557591727088630320693482629868868938869292105392577929525801214025269594789969278662522610189307307332064226836743115227693717170709194493872617405799393841134930562752265103740148321710791750560702338593725541055324773446936589577435980500187248263770167567903305370780313197749181234687063659890964592669370392637858323592113663281458195566854868062005945644573884504333605941841560458541361098408998285940262148683096494138808080431311229547818172761360507667373972467118050583355328567000678541558185660272682838264402188645007002023337698349303292384465813019319265621357865771509677138524116319596626618687283296655716488404872481660649817788953780388619737723611998494176138803095806394497380782219784453010994466604016931243535985013389537364850111231502334695355120442985253822345126173465763269757876494192457366927675985723163414928311809894833689820323533058486390199733709922313575847406145090753466045646959208047184375774976632958469392632753601178785785107493507014120401630483910260525421600031451131240483557271291147285601394909459804514459404340869595098184919405295828424927030567612450017203409173444093725551698643475656384764802806893886729350466591540153952713606359379574574549141244852052260013136706948616775436221098411601958103646220325544940250101794004737251037959811852588873190284888997063280083099725475800964976126487708653673004906199449678214059538073873262355891452486855249266144366937948571489084412776899573044671515116429204041625843698723556137790070950027584044992880797352081109213882288112784942698506315813639084219840091553748670533122234388783363130583277734196542212635642566238643797677508773473515657561190537417827652477561439462603417899911529881846770123132453403612357159003972908039299216686446430026570597465507319697214106333447718450761647616682236134957745280662992224777509161423017882228141935533675823271765243678312035869161194111558437800239537839092847018701700074538020586445428913929690784569695421042948626491935315312752969652829166047226792703586868456361664402333338951386612678067392983508250903193318127597693433750838445739980175233260477679579725590267599710216404100920775859996572480774659499691879127731796962838374680541245189389894071848808831949811935350789305861698689904972074846485832502600645511894201025056863905177935068418992480722021657827741315879790522829037152749909383260299997026070743662600552926825609648787418603691990176213309758989617116504731962302602162852308416187589666907566559158006709475182753066855229522060967141814800503198343777621360988081279474126179835454894801535870787477454491362411726875944993701500828689443920249330938155194361314124989185039194920452794848226642695668803837424481931610703027471994977694404497824647813282975494736096211231292827636681050775937019621086544975500905207036569997327400330973403318136719367836509899043928598726895951041236482500643300357423291444572792932765447398666699452685644256276423656363932986615923590178422907306392453810216527863345345003809062183952875864570210299963375789692431118729620668335491394006582947425603687492827434879639381764911390401748208218977425610639395719009129068169278933504579776957714497618648053928545515166048060498707805564469580055259555442330560142405597117348267896674195381058174872581671903382498874615466693539116539916523540057926310816955923846049746483787500569857691881146851128685016009072647961462501409748332330186721456739636274639950533916133819290947875278682149135724678573749663490034943027799356271955511928978406125905728787534132354045069552384937666980543036476344242328834929383957923597483332324147783927120822500087156283610506898163829345516757496511128268754531638766422611521410249371984290440915457290527692191304181530289282515918517192633891273361338872836442040531619109448516836764766674814944199285114150494610574864881972418293636192150505407555935490080622259972332970153237214172228627475036694743601084412500000808643679639555315494290105540923308016110214061864395754838569141253870300943162215324183804581409428009835275903660941288123756412281523280457602373685753181559024168838680301297863145926257435084388705561700044212445996797450920167419368243482690358056750255034434892235902832107688719478224738040675924270803109384032971478384377758672698277233369272072966582130394041553595105839123579941839642982431973673391267586893194444703709267678892485303953264435576609367737224768049606104166886974113187761777345737897976659383133986380479157158313352166434865334156617245969448896551209922746939237868797258372135721968174695178724573815046300869916732356754551159188896479418391854668033034382642667318695861557460227949775255926825429359262309711969097889803648781375793434528006270135897048378985597830705182458855417853692123706332688079434600038196409346912774587724826853715427925349904658955497638215419756493853547654707795392580146135969017616458273420989706709467204936945838246001470210701290985397830513117873044895124337429164467511592003036319605316368407868437591333180072707736898431722523887981820326992874155529285907688647487260545983746475586916720881657293194110573995237655449773276711924594095406617068695177999325169613940677746832326915708850735894779025934336972726356404497997104224492691336828171409319932465158229625849013540675812909697619469833632151659812027329727200723777752000618656854280582333072265666517749630622843803226453400395812552425080525302922803318349571655241771484510083044720643586383546793084518063056412689537374437441129979324082547379925194690325616645519715522401162262226520913036340359500084830328316708708303389778207088860684562689274261776525465581341347195621162297748960639189321016253232211872803366833064328371909074646906676167631887354076525388993817249904467503726990467222487907720985594649991818393370476646871653163537602325296294708992747532435784840729758731059036547247054678326862032719713354588881818617681419645106691966113148388037153345263986161955720391450239415082854578467517245612562960516816373108402379834436412773610167478614422035378217708718984660074038338866713146042328712913376657044538791090311007785845617145009497124603988480564813492408539288502601661293652333832059908396949023646312733304976917436111732173998274854820837788147873273506353054642155632217304197939924361755689733711883835235406662347458324149438040419380590937579881533948044602590798824630613720774885499002606825908381054746261636765898742121005579953224426529054677879321221381065914434168801016933906636344043490684528817693725340927929085032115283801960826926515671052196941087684327465595424918717302823685134127326770233778304291965969514562840396813072443302404243269571333973243531274921213165168584257455933502650264814039203130484167123860907292643920284895268953850793557116878700250702901880492003995839397851496098359996854504709511130292931151606479762961932309279837416149977680204728608725514006642145837880968515921291246759264364992514221219575894847535084746833599360322256096766168789000458227863959523401382036933723128371460787225356639253356591497137160870529012958196408863225009579657339475732013982342579678719403897249453887525735987135430574690647307712547973202681741734709488989567581816740029224177575886532738561561464667107633828867841880370432271887922834229886183337622351776563220612537405528301206437126818510119091296795386671740838928993033402426771339886150852776221622159872402533204891980550550017650505871374160888388694773469788639838024574034578111787972809328623232144661112582883319448033485792820881897266252035915841913658261721100853204025744148322227303724461152587098172012646671123326846002889808280367933939451564159809315805852011439013147047649303170221937270297894315775125342197000170461034215492997489790713537172298314482362188356301764902977514342560125876793500596632301007024307353608945748551632609397886202028204172514322038742444786728937698086940432794059523685805759973256220681674250125671416924450976175169501382451759210142445060209129842641825216767476007310978845518442906450308392919231931818207097449994256338576919036219715758807942862897179526493571911185021298130807146348375268409668503152458412611256916594197104548356332508000519861111822549581715091254290378135010890066614014716096196869720699442750233597400038176105888748872660188685310438459359988892244861316674033520808776991386125799358626950162216910338453304957643368235365011651004681352664246629815783108015335643125703429748152605631934803501471815632044735130530932675357141847003424598329258530798534288578499765571953945704689415615904897837128704817236938151875343459192850182092161239811047314993394159814853639131264451676662399480378086341310004520903857489343900094136957246699347729462170076987716735728177748554971312503599212350270859810878339521905755953309878041561331188287752443341015520506086074999754845590881977689242012666261824348484369729490702011248815675043722849962959487308689262391982625180245191409769348300148596363818757135820381392171443536449860094649808655599888162872582774242111453973044189050303784476964858400417421556594632307893645699765731678617596626759115392359569368041163012035909709408433937256671491956022343300360998123111129755001628409340853249007243472810554915453402348349963374920560285238302231406624779650205371319789624328408495392725246654888498929364904583224796144707900585050314174928560143949100592322862504195565330398526771135819013259435512355669230742488179780711645549606288668128352143652551863443396969808666267213763820993577513786566653456996846672044240733289086467232740660594235891643792580865052961272297189376527761125880663646456873615808578196849026528225716201965247949800107167205433195348222216991801326670754754020436064202204895468378657806575270503528509788310452422123146095390175791111415501365424216140317137468356472360106109158433588257559859059616490718023538933821191412883439068263765003864710732686136208009717781613300074059621757066884056564201442823776703042207575455009228287423160492315640839156692708773049484891635328211172624541848283740392256070660365955250128894131748388264698036538552296810944269896077422601419950333383994266587234051569459875565962355270676798201776103112465288870687871806830010626986058118616796825337632303108200961741419502089155108386581300913178114902342400648404600773055702435347030794489550586924587479493351066262918944859011010108570165773034564431459025254719637765001896255909674263179225409739406297342252647091061653041850103297735902301762621639874541844205767575626348673777249712662651999497809672855989370724034082723026798346993787954882814268864984387738003254342482456690497215152784974116158539059450615263366783810965122609921809935876498568058804611321234347424140094485347723890584089108257928956775152616817401454407570606079886592141330966426112258310958341771791922880634957120324666154821346532390578297392002454565295207626763586308512439221795643134677884891669426024858890160135660552829225455042738452132729854217708631892486135373351431465751311848154110127182987802060512205675431220941608838040332751546433612411088625072974452771309375314505379837978165335613867001198719577257466918746883812573150586076284423089053116800205768333322675693142697299024829267424188286333035704396121499151502369665028163233421285096614631277578505001121598115202223546418593096397251217383403063179890854505136949227575955839492455638450932883986501445006938665455320409557785498682836898485016910960148462907434711931602933588752726849897667279076617265943875668553472668863435744689851710303615228165052475036864544180086062915064317622586405979246911557806498282345892446168247199676650208847687161161525330070887655609606152214648447771117184688847818270937641219776442295775269511794308440073782064509957201188193570984614193524496168404981378412456092209327075545335244593277180650599841038999552374620909963099669898143099517875366084489058512542258640956919981297975482920863873811420886003950081236659840075242762823562134406275368805468513236956225395408353326849635831469791310729614811553304886348191564606060764650924725404816461300402813869863221135570725555822345799111179861263780473208437456319447750270391605169313227600871935851670114022563683979904039640313391140518331904636951550033397073566321166057552009335444510148041154777478605937901706649057556858425000020952367776282741908276433719506662933822693703741321216785078578798168907659963470916198821447029642072095687135398051729419706038515593679601809549289497212515439488894031689312752100908259310742667869908587206105429625897031340734284358502025349502057985779877318018897758613803445849027923114957969773497235289483853796042653607565762047068091022661115973647785397824241997417605128345850100936988634750772756219853072750292520799897335799561861354262745428872729169331984649137154234528945984959497697102350164875973954311431524073116837998987171791176423462886095898317659939612721165739449491818750357228484962369358924991843481666992913298486167016022441224812734447321691903434770158989345282370357735885253350187642173596452627940382840013506802605684500586939114707649705458879292285394139690359409956955785889882316131274597272278646445229102569533070089272292612842003383302837988979399037245470275489042209568412665300064717495177661162849367903828222529993877747796403491907290895877298035556998214703535387716239051938341630099731351850713481913254123159048192183197812409001127203537199648251719892546435701875099132706773514201583812117939690741908018317696814211274819470127694983432139778365563721388782226298765192136795741755066762985641501560034274853752485288342423011048284323591015202871050777404932834910119690032383737769521429233519735692557005516123471114495423831961845580877032486301201678768859155191634114230310772399180831874582687850461772958385885308647048388071539725841897320540062606644866811657295155452859028719205866609617083885490929013509242532249681556040889655759093334898172366663270790729237613030425059902345280764865137221044921819460827553794963357285947851489362516295053921956166204314359141263228985254322398527628131190874527560090782250078159145148744772917026013104925424712632371634995302713953508708015240595260832163691990433231583498097330399568732053265033616520909047242318935662329295366849485726177502778784501122575007772131989152619011018835693781661993989906360154698614111220322239841907741763061592870337908017839581432358954390792966099126369986202776292117649277423124303587380283957617646370084345116699032189622125288332677529082325606799867857754039558978045991041103967222514889520981053556313719657081408196404122680491559345785138215639887510037988523507072298005785234970834961471501697595510569667423808371561847479575526787433052228554800316125379279703704334120452159605767022496148532981390449764766188843380708010882905335744237739748364047378444348923781939192715914996094714398442702294771072748107989450976378317914304913175368363361481768162589017847201247014317970515107688981200489141541863433975445682364606150901259910750878789920764898238473375057553470604271894841627727779797892390081177256321368589637584655115422670524530680551114334250033258372155432167455471689979997528305529839656455532685016178155376972783728892870209885425208934935977912274716964843950644685698479476217870802413081441378472718357207234681389318695016308121990162152593018368242090912867110080768795432803827869100371596599975620492953400857966731847339449826266438692146399555793587645374594848711156697081370708096506591793750751891919971537593031118653121468741451581822586529279931136482949046902401610288563906039819365923091240169724443949097624983436698222516062181062661943654351644705440617150471111001428135531429889915524269449106514510170045185971087541291432438071550613372691622821587952002396118967276796759203788479354638006906527189345708424149588200458726765818605435576805714021162231058896658947372564216806279057053469985278170019548107938605835993801664237255724985221592554470934526129923465103952339836993414886016973273112636329321120932082951631020382033149839554639897564899222055913056804893323767759674881822353510432152982400916769708558367435722855219253654182748014447794966156349994595660310814274934301109441690285870686340625491658201295092727213351525980461158131806443981562790095254728079250869277235275049642047675150561722347591793226314605569073380124152911276155437147135843486465883752285981500223630200189631459602820498948528073060531959676312978173334271682066179804705961162240730608472183003350633841304426590075606938768328417706784995624079539575182334768247911824472167045897005125485851648720830246752430131826321254510757798127790257560743577277803082963030301212240302616281455746857881159837549203271835106879983644247059168602680381585180864302808522730712728814129418056145520550819274741284575558313561604087716286913419570408381777192396442151689488009053626952255418659607046640876309969420398935741793165367241497499773219344636794800739101249339887742106351677489887933895299937421966279940986288000741951578749366800016608775965652517063673091268493897238746635802070601132054342069526846372387440173372852119183442496205832750345306953181089160701922768276067727406361381035302393437015123771361514168911504950359078435614390913171370980254297644971428102051749628548356758167754664633872214297811132533681401788443575918183752689814538015239736627460758888962551382639636916622217069567910233327819615808874043981244762235200685664691972042387323574598713820281805416595650571310140091090389066822445742681274745608306500976430474801215550019876053873043407545308928132274817928123043262723342300415659028524416642071510619625495932374684250049105807905112760932034732104697797140009529430652907067285302276650029812025050136265056997423314883505074318579465242592396325367481700362173417169046354524600027642868804078159918447695703933682917664307202153423927853334300191331085518332184736094223360565689521521598037302702840396800993514312075722347150412331788420073803958242083017047003179528741503836906725404528079933288528709152898519779927673117828049226835702097820081292128470180242532294671264516343426360362788935463225977761739895067645429198412848634477219603500945952532948057581463517136489601727509345707163417941642399662915302142444057840073460231089046372466288992138415166740912235343985608312754991727943174641759221410435297148806716235630379555169133730582591954497621301222222502079683292572240764563668139908451014743667970515666096558554185914986338503701852572838011232751168576571762474397511255869493412412046978908122611820759857761069063071320920367172212958204323058277981352093667750546327812627268657332273307318784384555828622683557416916227434082594444147874023163003694886542371770348187742273302235860121253465850531296463324785144818575320210658162278965072793100286450416168891960689574123936155301019209500722398947486716146835077165064451770754122929527372589653222678166559000980395724779223679942848127499877401407901886505394452875862563973408872001658572362734396362768172562982979118978705074410299597326167237676830723158157182918879631165064197208045000855318797277556890588550324930157398867661134963868574302728310356702897303390852061848367088512219258289068420596781962486091093289864711883574306004596164599330921441794367854860301749111959344427019457496414674950609487095119772727238148940162436274437565326394848254619806306342767400552976467532626787470993435617501057046177212377850487872869144977210424085869774560274443333622681526938636744779807645664713763196496335524669123811050308951263255462293962802220070577329958137263467669628026573919753249384098920270734145793514969663695967161344288372814593663195733669190199306176581625944959289093214400317725329301833810563423666931865794624271993266160743576130257863860196864508889287724291819621886312612066650959072297776454944047218539628055512157547377702686421613526353721571688706246579621017676961232284653443235940393606397915358911891141383234389898808912755762596042766063577534631278199413332321606705403960402158127115879152295290797040175038017064958546828847865742133662220631291769419440605502915041511966969271763104362093776823690503278116064917096308197401081916061739974662938021681619000350973637692145936655868121832456062876883957123939416862959030761671084282358140375231833385866168949448032306053616115341118066347906916903851471726193221413338170501155275484274399407727064570545285023421559688849714136364418278504517956229803159523663216564587909496064522745639425862125734121074771025964803939676125088495349973788351285396436701208647521127185330471920492595902683171115390234803291155416058114321147505502325015933575028963718463104623536411071603870321700902829364790044002834856094467777549838141125936756727074858721606020771407988260739580142562655327641276841588642292478156090860420967210632082248831000697241693860481010864237518255991764995389590580377065362275816503045496456394020587167093402950996664357193783390391508326554570271906238679905682896238086616372281148675359529073738865143259362277388315345359992315769957204091221106258738139383898567751770110073265858349443300434103103692614499605747006845834414950444784367929453627302179133943383441543476440297903959351502276819700090130863168583645963275340043757661314899548708820835232276887721002860034313322935544135306503681346425422655663317012161957988027446865109387312737432049918841558225976571859868985924650955617730677762247748085915537131321518947111815339860046337097542629556926963764520392264035650975738835609317653129846030212006021151244967176522961391509105339439813936538830256429394370422760569004758399813712988480074109520610964132414911266151356960529872304374506422229696049039674803946433721825863063421436857786559381173661591811047799837856658472891234427028831262443800693065738454516274240916563391376188249037397274808044128811653072163237535764483034092295998687081983303774739012579218418612430521779956156538047177663090064163937963491117340282998640350141415289456802842659015503667856985172452188136686666391595119445150661795365817028101992221726949650656114066204494972732935243454238394199460449037393939036528767995843809037056617719992745548931418524231682527740537642364156117309948828030630109369811713364362309797271645787006712023415470322048774335368238369620673064833411524334440429807733080076098933363237721495197751078978047851603104007129274987270078418843168850254151099064076205853312479229874068396819098144083224271890036834565661765243132575047400291170344744426226707973935550588539084268296112637514192486111103375896941269126078121799996693656481577540885536528316943043145085356835967729417599907131421032683366825703210158815353810825964572331429729212252554592003928009756741473547621508384632616485244650619368673464455284362068972158105012096689786701471616026566251044037258300420721271616372966732262798996826278750051747035399175852479107989260667129062806817141623368249554854536600219851959666637480915565204254564430857017439558064345181302630302479305810013631251156187873857622656260269279288466943496049663999768278246769791528060926237103358501150680668107644516669342822415712607260843720412708562045025015699706622603516711794206931625130609220464845455889765589815682586967941256405156111558721915190616720955733169354371423090104781999758907347516302465359637174385123043352613551189994895796437586972171257166705256510410115258887647330833398138454832471788943732819287868377933258276644331881459761661558089086160809276374577379092688805218135959765184579020474519124401871932767064322097990872269679961774965205593083617999814150846164570419938828026297582907897352304440008276096499319776705274350348445137334592223498035788935002545000217251645427010845091882269275665625505519525060037894463865058509832153274005988650487414535336536281982351308339215438998016819568578913038925076894774675403836975214731658905968888906860162035787201016850032268085100682528627574889962737885307809557389407364068243023312275441056957421999957776285759282863878974165002043599143794090876049076277827058144062097263264893286078850966419585370040055976896634111851694499748211699507516718547611059874011622270265317380085414177594406161829114503121729213779779550771107510154940548092174331369304916969890717833781127075885924538103421125758946227793554052370449750166721218948546973966981226158245407482456805589792761128139806671912534842538765799181855337111860920427883953614014628343688823702017002111243404492422129560916549085175025423301423021187293334881872032683436118554501172228985209591718573038810297646497221202122000158132666729746112489459657051862813482003893681642332559825971734276955371561679469038743293058988864671443914296848559607026111409889059103544575713419997433877515615330994819062573525591554344278898313252191675521552089363453216999467695286140547519463432586562801611324755758759497680862581594155971845753295830063465414271771259907202539279871340972671580735530923876981460965037690858895622311735312462645259308815148047908495323571849492812082050455219173257855002808169905013511911022334297324338081298823641839699676264283309886600267748212181375993091435310133777253296585663959957908417462965891061408144827782298869587127164479219722301133825049067062254473962649776605087033467476449788397624321068644790736836763892164352569186209310183604797234964857135061537743259378894276448489701481152485012837377482896709802135775624055051226941683627130748920975493613179718537848585496365549121638246395982969655681406718560310193440774280823069769861791461160196862088188188907978135136753841297963627453327122793458319893627281588646142948545454614338128198611541770297882322541387605075750557957842958672033158809709807700300598910703931853916162832137546688866363174797408063542244791428808629307948492171959650144758748564100176216071004849454012619233432129389131543025890184026632596330828248663367401247030093545524689705936753873834113534686688083602139107384195255518763850820362522297688116427555581619617101856553533931340808491126158840161711959465178839517665418550395060572216498345762396108947468583707325140931922845360583645881688738166280660063353032899045773364982174579366003149514221151829051732260465659714095817998490019423942648864071455240371111870238974185125259228060696517560026366540953864876034013796646449844690130532097960914765660646967866185475094081354947723276984943257403342733646828652888506102712728034133573639442884161184302357491212179581605039931988975782946525373363305327809866872782929860262970320453359842706652805058642108890113920338455444335759641879183618716957562201937251674473076279250131580235663318496995624851138184947932670158635017724509365951182783966306287965353409131628029045727399824424675211384604239612298577873108471432870903222858750433706478459402319559751347743433284642377284478609817283696830999982164027067220724773852073396474164521435452484518377108147132700600738554159195687120848732189275532704672802546552277870975466401727584661584698197028990868208776311962534066097515039891758124309358996160767505579358335400428548963573323193947605893486295521992534096126891108980272259839951678215720476136881210781578742478558430051687752815587193936357114627231448125990614664761175664100346655130288440581349780794194753680577276224419681814086965135762192213257227079349192089370609060506723104100322064514493451760548693826230939993986747173369294062951829390688309975470695530798465025669888870062942624058411114965026511385555765860521962934774405254696638547809663338842595989597163617857260168558569052640699348352979205500833029070588681836849226418925954687966993982290563483590970687685924721935123617237819866891663580643627853064510698770319398198748033966562453125500590930799647096522012674784814437425089807889883872727097465374362984162819949694106246247122890670243690089711590697715480778683998919639669327408287811669777606337345035040039588236997083502163723833551459599738507218859212489741060011450484435248737288002169829989952620538384435315835346239259727928226533686394478101779550293922521007389633912896035320305087923123701616248675242925652349774960427212472704064264335211278065214977029348037256403053163748505065375704412095238986677746815828001516459347913821081726552640716222548960801818157016994501147728198871348477082161264111294678814295688867856858836864046956222675401866172895213178120186933908400155633061529436809496417516955671568665423471621454508444274529404165143843910214755715499563732624573833004143756174721704447458352467424416678222578154626878120227154296615363762357849563522142178170974468966639328062607665357961143839169841247221846057031851163710589899746701969267963923372002929362670029664992410156553772609022747050313902694790013253859558984752526018106726182046302321272205780570272017101588441773294757162428135731806129241883577094805396796906943105511546902696614775796890164056361735201590402384840116744594751301638229026869229094608593163278698826275511069393840218395301482941581397734243803124364863203247877493636794351652175343436769542642658782620120215005019283905847845246731754427477656186897794206369872060450688458607590636798249338707305876146352240060904842690499572657542610935365791236919187873019999668234390794751275471547101812068128712596796159906172945685750857482797462535119581252528475698135371053721743185422433296602271735544537630926127749116373869142019895902107369665893185511755354779403036853642615914151551704786455863488562836808904647012051023335867821449834791514667660124477123731126518922697052775727944711392392364837628182787303589962322275125059188556673450400812476685530908006575953222361717308538634761772201647277429606093479423613905191300471755630543901833128441497111031664420358714535576153131702820034987203496673703875169073493568015156935103599275347671115165049136176204545375871661348608799696863045741116955176040369280830068120332984749644517510960628100885566901588790452002209258790635788374114555418264957639621705157272308947617443359572845392002236429981137174552930803241389921594973339411322646825589144875190593673969003621454036487815784487324924447188750631538275666047394500828982154065502246145157507173419989774497709189776106194344239147870500721253142433933280114220466757504155312874127550331854816351585422014874069127374430966052689774792725259492778702250884056184602873867248177465471201162305527670147830394980584967470389123059312455595378810130775480249852528874761682173307726204351525893912695229422589043745916042164418992872401575793268184381837013801718190822182321886644816476977661874815325992022863152017899837503292228838136096184521149678995470647257530040737516313441767223569154719144274510041320416128520251065653265332430495358167103961077075628936534255088872421627945098621384429373601662994740371106981674353171235630374234260881038975222562572939941825968134822594843301784058878453425950950401528983131048166591344182805227248994911979970579736504225866297713373525285783798805453107857234120745900998974166390588596751010121582340126844455139340740449049064250019452099559488378805685088448807356350312507091687676441742166432108751397453978782344261469488711076068130645279972084558374119873319207170211370959093511662401830545085963364674476852796632153960456398619563661789847438572324370539420291589714474669875540455903568086806972387961109670233462992794018601640860714549798733911012432944921844679737878553329293019325596419919637237903172317261588697832334441801618545553919350878433777871274179287526539051315702488506776437876940643749352295539550022040734751213605335916614653319676772979498260835917596282734886360132974891582372011006598110462219431994398204727438061605003567783510551308697672077912458649891303669583964761930744307675005236205109027861416956076190959727090412031560626504730402957904986686124213362135867541464191802271430061949931062350036922010953386158632721286374960264682091338197538167750241845496993755514618102763789905719758489068391704841269458163192005644886235903883178576564320783782426333797074342820247844846185985258065878237334188306481641361350393466307445556164053907161064508588470888309403425322073178219058999638583313481659222820132807469907390897104010460138680009597859762311144671578704425018797528848033944911727575229902431246334587890236102571633340088173323813664114724235406869839094843962418267989163403069930117625016371410915258330450398541475134055075750081024149892334897192448110850923973133420890449796059496537327720774237691301160065680628605690083928884969946504172251706697796718403146446361528284593617083906734494785330356924791454906784490469236359511125423289581596699453475740675297172903086987300520704345510856270462767200448345805918801463739208505300519784748159141807357412573780774618515110530146601598781474458127396986519453935909282913243762182346725541131690689074816948927900052748579615898046277351057270016809672339906105349563908996530211268332789278914637570450503163473375884201229131478338913484867772412751009593643153199877408130332749068062320915780598593581449094360072875779548824979308716613688544514549685358248210530105998234779693565783482173613927832517649795477692520301153466632240553391366234516097890416561472555584623881104666162518613784489308493080761550867852558129115075448667691052565934458976793779151187740687026461148720928308815882229015522691283788300387707377594078601876006549030183689545174753672782820714279695148697947727559534296557059196839912865640694462605504048250055235731260211136195755334373230565081632425716598434367578055069812848031621676430876329691099242379354304270940220265814469112803456866142448609543139765345823403589350893406954894956893988847391063470486135210756299642361223541507728225597195270700151608256478133047687979631569596433202758341135920248388647833657361732199419937845840394216427006523218769900460880244499468913811979482109429242680356481296646134622240171765196707785459089972998674698188085796299077584843826660857803496881079892606163550924275723694552334199684895548476074404084616592179232938089827941492283272172926089951959336577606247434446488907210532906402516031719774457906680198211163710281462938996087837125763053087876587047562116318012655076287257601474122993970966195270021379408744526126343584443680721621975972063883600267434377647626080501286777428473576417268164551160846825336963286232558378379471157880523918730024191306482765891629339291515132168722205629633502371354960526172284542103822127100126319555718717020777671120022436879809888322942701975044196907556014457715542676874495418337265859319409923680319393644099133190022648315753479778321818542825518978658570693506032316541804068550134919948718116624576786521308448571054993437890281130814577245043786203578002557859966467701554427296287422557461650707393710003246746023922580668904853456074117371472500702957099995605600800899603052144980775141712356413693197951355132008515675996685960769453933605157453652002201559650819150932043697979956647996212581321960852412625208637357944757312671938087663045621954471606036612327878091670864323872058799890499378782297059430032359803500532771578440195625362572551748635921882649075504323272381028069703683627345802439960241729169585558943176280364329221937561792674832661022076256347063725783576088809966365905856044919142898602625640041467654967083105338929364391763053980095459412517718556810112913213299905524131620895644525921442743486493855639581993499725951626608779751627918144989918342567432315080088855984118235600145106661166638260714858313405124908822747877241324421555519628009159010827169753356400444686186033240794020168467658570448046789594112336012865985805882331535368532797397237468721170597956824472212401052286825651202671883494949444028255007634046917282288612830734822336783385257655949227008456684851988953360298918542296361416331265425652812877003494561316462284934566576663120943607967705420331432391204299552098104723178886599605224365344859650640414353605895058615133152877851325008086380022114425227693704894200159581122815795987329736107590846283621247283775331118268908046201877849080743137672182032898777464612160159183097063925523711201604653242864566832805797506021691612867300168207196107440128214748637549124210405789910635762041863562702541758688919902024084553507210174259991491666352169822855085566313891032346274607000723586572752082381391988188798531973275275544381826120853982428881493514430341329723603186245063986562651491173518147493803956115550352356725826883390684532316777681263165990903416024702535886800763635051349920478338006568306506792957853321298768260154889831723719067985137292539542215184746273870561941336340842043179858291826797832004225837880795417998295136772506909043234915912128655791758321911336211749270654659954999014033444983526565437103738721681519777157545360728476166339705385286877145247884599080642307514105526555571107918287159377238998446289588607212828235172610126817807282987111240028349959331042684634760203671895642707806551692312430117060626605634593223949094835562544476291546906808981968406918501342633145916831102299210168226173714836334548509828944138591804637145439677102774512503249093087395098486716739503040642070212571566363190284888571361368969401998146355979363350380618096885379493953218206041594801666803713793480037824045189141001393468060580355629399795118974888839475896068033760761250483295757960747654201713902869076517367342198334561601870200492811498928912370721948436285320404573709756577195738117532527591073939393823072346276353761603932604734992112841250550390584135034905389170010308544169449843976615645153625363254327512591012609525039052891141644676918996664394245471975978111055898535825526236779178625952172642378420484317681662484746469600005291827903038567973331244526215061855218694276940297440943016852039008137682403766424467971792072056000547448876037663267693838168077882918931118421496658257973257334016763149668168935697862643998205279827066783696851432843918422242224132327143484548994641508488703719383612421834971960728839378519016467768086422536731630253591004089389664704309093366971193975670629918076261830601250432851986559201947212124964632352916912795970590772106955534732087194590103760790003844091052223280595903766699949922693898250283486666946119896345107841328887058070747851839963480985060706987126360415598989189187052019956197411132307949836033814908369763755698609903826825086385262308322369904499331904530017814670912040498641439055196537421444227635206142196421927005598365143163583327526227302212169739191459719889902666744795768440050392411390493841584404744177457669446274870828959161483379583002339917106719411821729857480035857672492289432924122770362721685878637805183136539390919701381470018032711849650567992725627373525237394504303698118149593103335009489461176480308479862836922439855882594005336011858832937678035883104641877427064991007290859410024584852172835213351707564913944160244988508081838858485345069219201112893101245031546504727704014687114518937539957208326749714513827513367313433849626112743947505038523626594435213308347283420239773824104217409750361074358709449132629134864298550621052201556162217807536404933744963396837306239549178083852341906902076761710880762732724454392388048919129853799748373217066676060728187992988326639016404675201211615796828536633260668731009714338266510404759749968922913295623285168363199274259190569230139776797581905682093262725367005637781765917358914561148351733274859375607199757278618744484295450768586973427803238658087588600709874142586745171608561230901535350349311988889567764853739116142676092048316831372008490933431157920444140251747121457742892618794799416474775455767309782228475181117665262988943373702767469594283596160527841451978103838655954301793489960691335956700402024391649097186531095203004180339520255212321999011749077881383191723040357064949271132339492786624193909737258784870351546614173015995899300731598503799888013331637772541037655917857127417858127023301978992453174169473986306989901704652852287788619175264632342762625452461769594336526321196489942767665323696162935105707288215297214313837468748987589814836507886649251115133869659389567184948291021288243496911052067179296219342322150504111904818037029440969529727960518584960001533675377890863824339942980088122176036221999206879067422202253285451711892050088866209885830381904862140216887649362751395309372971099191337248680166117127869258431252919595951900597754521290732423709947189814817040000182265362730524951503788887966626515039240946960966715686951026670032307894599882270302359490182847790752909983195186751381793239116736741688326398748475665149531759156110760494186768899720162865702796614216830734733113120520053238278804957887247533635340447610595615270397889556806540328944521189004957582323461716571142381686560775213458102643134538432895854495481677572742379472203082730377707116082910718446607109634599979828824615308324307916272072211506501438252213099660318096653317567418589655441354705865950843963688581105734428917908593197182711630857468543383810229203956688601759596434030088830230972921697087033069193428760849242614344963220855979209203971657897334357666051888008607174198683523305563404609981716177153469549695021557605070863347392843484330703688140208981632262272304082114732617699660942302092887163279222557262583532527682898996981612186762912482938644827608740222064561307153616553232926895595881942933917614885751023551459885983313034566165559906839867419880520994580883219047011888416861471867912437776397586975007705529812211185181371150172693932756127607803294836466594230498080691921192410473466493491997421482398795376966290043922551631878341700125684214250914695550764244999830652345375352921358128027566407572060542915381422223145473603015427645382669988238036834324341552096762536496553536922259440429222686899640604038022706699435715770894539904756402088644584004085250449021489830337538941458553609815403225985541864922753147448992103338497965397737586711022603801214278100389721055066314764797158859146112827102272249502078032735444332552321821974155598505290131926657716457818814543073874955925285353776876771117989350720906567325592970967461607671909993183180963641361225856146157682285823032371006822368924827238835225412045953264370552038644321309745486598580533012160534081661418679031791230317267074660022758029275605604417103767544229417094330616468562935723920653692424417553343730911193661058218801042157282826497354257217670235968934594757096244432186600195742968812183706641037566921524832934051123983680325786746808150491681577224709650433042831456158959629833055290345014088124664462156790261083272858341210544712728472765494085073789064336315960542752113061450572460279911235779982090300847400312878038688330194864872229548237943877210879490943887366147755424807224114156974527457088792129957021042531919123726577954515025501541287656986738330800787048078808225806058738107577402683641815073600127498139725819791817333793761124154092600817507397927623199507593411513016251404260354627691298671202116469425207005038761160820897134294840878634518723969100668224978900064862289597582439218608092324500922540891300177093677889633616615591282413501487299842684140239379690325138449160291763186025577324843377306148522882212173907493283256437900210353539815665091257643370096694680035137880107689590929119324309499025853786082239171938311280489480290094851922046504853849339789730797673542184896806345472312660404063772076543074005349382245212850658587561441058269182248865041614493163427376528359073831141388098249498666725532101858615065597176046625828028083871690361926113932721762773619901531234838340052614246323990604604017411751639084791660480301420247876116411416424288193676792010134724103875538136658213622889791440523216417692420722416902720137166171751959294928600216155420744137430213476749889354176289508059903743410837183196347961282758817856544099260914856269817766829378357752689226707232112738949853226047114848569809981728945348825037360208304678822488512380409395101018211524965565144942117103004689545820971841824373253744017710512226032681964425878542582600297565457518362970652986326462665816075061566660410206600271994023262716245640040355029205647763971499840022429128747064859528251137563310350754467652186474018681450218984051234718900827532067762509069551629711029089506724450238297171256298596338170610304385337094135275757241461121931975756872507707531426625226313245372314516031578781911348164568759706649645815516034902049425404676621974002144275599361429735304209300710883166427790835832924498330036437409486888591915187529784786417609888126235902452175739438906402386697981626250148063238631556125799772868646121530668189057457111557490956134534487121446337889047366085353672872004295241318141449228501805415734908399427900720753369500310686354149645719313082279918578990005354772203427812827305450741570755371028279871816369630070232572745901867503456870895953860454169642811621894955469067760970540689634509505189638203987550251477519734494424198926265963710768600944385304995167712239503219989862196414545357344364356286449778932750170448462506140853461549557981336858133327913701492470040592333244024990898858108558643049736877983205829989526807571666354909251119605955776570694243078755284484403535131464696758235493512214247876256035159666045392711579852717648632445849447257893550846418012177224520089375166576125979050106046150644870926269012128251445409029147375611915625001708238089168705301348065287574295291008421789374872913704257780147944517829398543292138644074957427224919057995773889976588689937490378062316680432504096578994130603171511192597648218125114042174664178114619382104471805870750779413943909375753799498082063289160783868327460762281870409577317108980709031457818727036494745050623093606220093908412245108101049407217590045431838438233774788121362069315370178151329124288918335747223823824950398380884562549876051626955405197047946612686750902885057666121822401381994679970373644248149335170316188592785103027180533405227556465046080026645662957726866180722006688732886532718840447566597549895534644736643851840016636065649860876096122188392350079851275859953186371353913669904283845841303782968292461105857508205717675927358469337261405256350673841890680991388237291498264119941722103034857350787908610907199067385464732780976862188594314962621170382711639321027770941395334527619678983921530822516467559545402089803013926625531247458344929430379653744804853262035886411583918210991298434508985066371512885341592511875518204894839946237862571551785720398809352799485710571688272179754211532151450994731114605926139272317186025170540586077610483910529881057228684139703174115339662787119059738779165265599464117959654329044141613670005799663649991629032069626877267738290176217750530561397163370173432803832673447802248731957711804575209027832614034600010982234670059817311641999056298312042218992742137243759442840883741525932602851364460667040134556804343064398589299459507203891763365694390389410479133540477845463824400640099498195615216329669658484533458334127338244109813500342963039918450395976901679213295068914038869872811790372870961963848118023590391580197678968051375021938118113823416009921952511746468334269878344838262298463917652005809480625126563471008081811723973297869187675821798747298336548451310643469653907264447400553748716935899560527273044498441105564303147228128640510366541851326749392083986143899222757150178098787172847567285830201486509261499968941632508339601596745633566288935889691124639630322290473424071057655080827065719449171666834426744618096578139112846981972380223605998462718015538497803671942286972724596127204721418774319808637475654889054113942249095002571885537520455964901681690593800918908693045071447247692644265025802736778024612983274855546702859560397167125079544675273745816010047115866183727837953801736707927248019013272596843881948717161434445801302595529401705351783931260889087201818994072346662977463646435752236044451392555978017034142172644341153370827619426656757681169590937330266621607518422053434987518525190988190825269525051526041886499550459294251341154800584315729302163501250674888879312160422328780606969346174744731697825575729884275985319821893890497454385115473122288550453768727114506701732380777683322820812300050993844809661750031856552642111966058031315472149698684235334955178178043723805562679963752748686207908143123409700271012742619126864326964874090467721889757790576914521541879866430028291794650774472681453913204247883697720120532636902821325635285057639176660287940635299611675598033293824875736335444724351817871783903143582199252854261568545319246787015389439703883126358042830537682491937621347632858729265455616867264571255083345869319531366498902735729948713415045885553535521744855021601411616230281754773721044924090741740078797696702669003565361969960819479688128705391416528326351829411276346241804531772320388428983166957192911667581166436796032623932334569158583695455210394222197195426409150823872057437993793339425274627823661064291672233230224374711705672330278699408709630205325499851071836716231756835068814871261061131872282493308503606534884260534729663647939934773897535794850643666343268119731638846313622265385418617225777647033233221616381632482465422238354068754653382805507668107399284266504753402119602424828553023615854250488364962183235661214081558863717779346532565003291150279451052908099771118882110309706247248553814828234022102660475196440198599888865659890713860344858091891004195410508010834486981314985169341059836228928967522506083111921143085679725151117941930843308612699552512275694541751793081516311120269024682066237872696454305465829710442771731806856299090299744732279280508734640487350050027168611291505051577839379028937011738952517893165178601023266579160561482860012189426989324257189855780343294565405148729020324272557996860779041740479703543075638716635576967011625073612333836768286852924836563598676034668693476960729097883305001666157147843474622621352709186525646413308391794104986168926986989026150250614247389155678053094479395760088145471967977953986990816147717173642719923258297458196454300576150419514158670831126718499211973819976787037935461830725115009410877723000976922945963985840237838101924078571532163642527303332432365186149531765905992621061375258508339125270276062223515851710338101114968173703484145543547760150687733163246658292069159384086278264873764807166748369075961937607859954611412743598321875187963503569361538997607183039953485303104679849761675549658046529823019276568533583157615993653600546136533537877648841475752192761817074601485801270897422328801697151221565835175026423120445787733909932002002271621979209252924750755373101194444211609011797069008907351391147059608586792507110532728515749412336446391450965183303161097238284431134305311884035376297095122329884184138494247840202017723593904868869008313795562607512580558974208169946755379942218791756167197969982720744439791328401954517452151508199668011156447667052379305440374566104275772559307559636722183849388546756992867220165478040470239489081788178214583611009447936763992198172722114036287354470240547986958595597305350563970490016108932536826416220634642656862972127820436985076803511049938680463807153911007116109173701135314472586455926695606753907773175641792305249063073754724549934690707031109361657127550858674026502623315878844239170004334703934551292212213079246022134259030492384342938921614519168331298774832185400365145649862612905475211511254057911098666465489440250399638149217370075192545591176958009596526156076913753155220974876897904001735440335015131435084098234280327820757342654078648131173431618771565058730823320159707645346884542886422324335982691484277712230738985554187498116577022945046136020656706033125804160110891369604192661758633038887864497598459204903470447216576903020410116084707254020068233873618111742807641516059032181243089885560938280140372655776347880461655972801320040244598748318789268409801103618071957338680758363555753717195771623754499787871723141640241114968988367265539318068615756330836906417049975491929414137160244203941617696542852686687427045279464500355307464705652368828829495121320452238406931677419235121593023714894544197742016060041421653692154919874913040350707624300570074215810840998425559132953867854381185743974162711086110862909304838961681139206114132355675951886713536067329854279304365829503972688890768569118575581497931170671883260394198864214056259616880845660550211953696455282070143615489005605816581263119823846538943040255101503263490860686501426114970248025592109419550131239942422695604823228809268645301783206571959564348062746322125960464654021162590325222452483629310510258954657233930649457788117323609309008518964668942016748624964029229482827650738668119600561553947933355008754573848025498286523208929666315305438112490333646005562990602349341622814342212477372170207483815127867407640218931681758105676152092864703219006358446318821995286671207475608191461155411483412143646029127274633007081701982517109241469063829553996658372737495399490747249134825227398581986038561568616300889315385701341507930084187704771817588681232642066930187725176762259079486806654622061414263274739448249768380511890762399218467760165000615187105128009797440679074148762674180353341049313925360711061510637894210939178886392267753536768171022474175548745242421026162402997034616043664401853501706907530056852149165879144119451926473938190556050280340472127811481660703570375001756630381415869813064467812237087029426343662524283115107807565286079277622117535637656559116707792735837984130074669105668158799368992605213964894966495291091955695506286809135452535548466777901401599201418348257559861577026012088727283981751227922432750013878675913237721371761720296995119160338149734137242322594330358617425628106006022185910718698390524626421346187012161198945692518594468095246718339767512927384910121955294120432686243294495759170859408348205601030997653342966850607557321830183076597446983921735739487569068522424887692740768520214729278270492050739175956045745036666377078670199388645237602405004587290573684322411692418457105584801811694732686876161738086322335993357835948390812252134161497346626855750221443595176126533658052913796190886734688290859474491138566039537770124923614325182697834564644890539810528453340917480273414375455096896546641636633568159079811664323375622702244268280114311039613860006530287775425731664527217090811258991575436649727231380463183067286731495669211170158348066159792692437386852515705683223188930279759505403819175223511065498193132420888230151911557982586346808638672549908192220385385348387281048944369632663646114066226150110235391352528193499325587238549431740363023738790651473635890927585860019136960168900404333232710379481102898500434622888158408925331535846628220258168655948729040883988939127598935298294021136193030935206774958762119219483121039057035884849584061923662506037093701919453062339723884915764584980540665449411214638944050548844245033901838220922141483330207473597219473690458332308627890013222661066505256155190615266050296363957354622120151934627434814294913742411810508936511757229355937887119263148499679478914359828871239131309183341414344307397342462039200984708359076741465553758915970423749448146787241164943800128405615788101948565093766495595806979193061557570021654859092633419181541247365620653361989797549196569421791281770253810837859306609729547898427102564322894435986863046819425315214109374335348210571112014565270395572171989835638620971596618158194628261197637155927653071903485768238087358867411106179920180734994235798516727381329215652581862089172880322522633409095401884706995305953584225869176652329750843434115976599796513330773240396753292347585352146278953632936464355109694678982450382731619455753992791176647595026161288579786266807050769313581352131753101481736795278072514414508416223483724964046854862129867623099508755427782957902281604518758728034929402823342837258527677190870331175044343259861494164602468433833114948900923599258386864157966656543790777030075597323127902314288656975922826184508427038251515630095429401596609933296065740125420185141386227038001317708404223747331885480030378575622942294755266559043544304234418415497520814679876843723373606952156476155478110431729187737573649330128339063362338696821449404781338326370463357767612447810073531310065236747370288423020864280969906583748919547709840591084159606130558021521188057813583859515374960287024657932664996349034158854945763825998413272982017284821707865302204752036686899039497717553170662138752735030073554538471648992494877555596328290175926478654908040474063638539949468358590538168367484383378942556802159140941898681395563728871683385549800708083151271013672577377327361645264082055221009987048258537293780733430385129749634170843840614173497186879982329629471075964222383956485438748845449540131783131948886139896234438378430458382033256876106737108880695384062113822091944636114132949224091236323860675201219479944507714026569871456157695771000716767983942529471645149172096230684533166258553095106779390573473577025043328791294714385959088208208840348368162740534428106039141140495983213382104050496913753882472456931391895921852185935304958986915770942289504897984181652920949857032420039891595278909696876437339671100762861186154262092361849142511659476879325469939092413256542040538782836182298241027329330648922270613369113178575167820916041186029200764550705354364944512324995562234130622875131484366204296036957754319850562911517605633797528237982491516617770719913681820556595949865872511558761349172235409635398161495347297089989661442965187277370604109143497819369623250513875067353273182890422141379105678500225211404977844160978264732419223574294672881709093952784120595039027739318506485500817789365924458289353706566994090055909938136589768164332203106151172715576950739063503035325373611238933884357581005115010484953416971968916159788550481614041050528835659327163633242074024439574556824183410202725639874855180957445613180166839012221926160332947438205793014927091553177020425731593145104024709082936883071250979490824522215887676264087290814490107948792921901644732301462868622101546279150536969737160719198081588007270580979566472536765915944242329466626216348905075349535289897362070431783633982206610346507847363318844646516425075976621115790714396644788774370107573475998980058173588074691634984113349043082939429086705583410329120016932634975885030774677407121842335936869218702499145890244168873471974290229826411869691222552920648837189400582875700604633044377385020462344171390842803941710284067441895959468974177943661993610546462034332479594936919646599239549101660168970534325323940033293746709221521447492432055453286704381980458457265192071848225361892376058979372788432892086453051714392930378791774565133507346348212960176226133600814049967131394323791285790332688826557402998814683724034643229191840865319075554878444355880533352263304009473415130912693663011661003416501897121233572630210321020814317063795936978302861742341900160697735150908276367133030550008139930227545214685908711930091915608544923485241781319611304152020345403867491522794771115472829521009200834153191101730651184816011710422970585732164069975901381120624844625484837243057878534586231204412005711298166968686875304679424222547997331962173838864471171648148265648689549801890431586967447574076452260762424477820296432227994901254933911906142621326986710050962324359668295869285180284790906628025988284415002087256252040327307423323161888773290481794653466718485807888064691488346936899367243747423968073385066918915198005963366856378613725593411808315284695429684114491324225461576904916704014414844291361227766082856928461218153875389712931121492387099848326414813274429777481418679594150768381169515856199750896941307899918694076530100225552708305103343536737210743657918013257053552553546335603565006313520523423085513861981330879648853471982839420024497499080969565519844360435917147277589706054201665159451306548992385170126331410021975315956561998272417370820228976388255580433121024873568026766436410768067440038641167093142764175490170562825079060508678736900219329433446243783338951607613467406628999594530981981149331372853695698833295914011353549845612414807655873188469826431867939031495709643959986507361610927084547966658403874021032018714988848774869242455049922727748425398875521505184327358970870078702838128030029973865003576999912502949282875269671531036738642356903909853878084543015475997582766315511564078835443631465873867852862230491499932001158165321215731091389380873091772839854917657709971901496135578979108853135518033868239446783941463770670404533769979260890253773397715037813508489713298957047611361026284388827146971803114270479799140633760793516056388598371983586401337849869710939729377306001361818675076836334581214432901310075747223703954486444387753689475456265774275455335671550807633126677828265038479438595611441193411045837549477222186853858929594607238515289981100859904380288666633855272482096450396585503669422214993005466167522760013389276253827776535916328795105900848837036665231475619322340474740047161193339710255637974889782943334937793769429815632169735571296633572860357761780905442627535538090891189773214970306627843587738235916858534513291163784639053175112982624276370393124425943053994872565541140581808700960913645463364298940509819642604248782851960689633204694752583232605340987012134850326876451772348998236377766499550210750064879646952537781132375365544485728231692307066734458529026587969694795364810651423440255754303720487442194457382716751963767155236312848529435039130326212825480414167583107638795867603184336873265456663773769027992009786002182672014303393020345064523578410384038592819417808801223369205265475805509717642415787648995233540731469953285891893955928659495292866463208641990630701480685422160159097963793130713772996677366824441827802130072646788753972695912255087257570181287024787793785436784975218634839131919831061962142054408837046192624609437336187603616603083187652845315079634403443440041942578885062221712390734504713072606868456468797057181908215918191693782985508250452156222406614562366588375256459227863042526846824337652845547418176136368984388425992227320670876896331623659134988908840468387697820306504432060817970930643172431069614540151103604564001145549449414852199319987069681701012251474918977254723846013865318245158009554789249700466258816128111935066498490929406111155229002184109656198374170319835086831551352201329074543888138711545922416039159819202343150369005905631178944352101882654673171783362979603627383233438744643075201056513169914142053764270117011882623532701445197509107494815901431504521641580153175234209009728572939770296765521956918905977265978679073139579886622926383820730709267585561402931066856940513136432146106824358327322208714508982528195434821796104973036113775205870130932808928225023892678154701078303384660474889091742180240082833147538880137395444378272727571492660432552705237307436914103656097039444905906188958478095078504692469526289152504632760344807867711550183927568364546336476004321366022775476149551163117711506480533279146705924022545703343985551505576277470499145822909173098487829535426659421739453901664636905477009427472198830848199970628371869078680067471090086824958300424294118823897285394852384744049962546217446534662115079948513310730556167444775651222140803860756541024113087236665264621109932202840281914806467256066317220156071937725726634061302889880418299866203266931370174963830784759102072707639796064918721943214005908471712450838578507315933137840353213142615912283650783930156207234625766318309246516754845256916242274747704382992367062997435823640014982043895343555758083524426456235408232619657971214692792269959017883974744087315288833120315769589577573345609193159936722479358968361040229517970551247043863913128416606396827946738748112549746598491934940181105143037302850427480827020797538934058935388774747373870758211279135562062881188052169045829959663629318183219529437837362250947651309602077601152576519237597636240946863124141413463304685565099609288196647904808787976661035815535306990396871704177598387144402810351940854167927216263182635348852715671689621400186631019135780889904869511869025928009451847493732344164381462054515720021808007377324454024765000877350922816546339850082755930867951493859869139773154547124637910066146765288075769980971695701541430063008863462505364671498067970547617617471779706764650193691356861054807059475433721115574099550257034542655512126839441811737698192465471133095171155332348836614091514254079084509980694805804395378184108442998245688873887332182531414503013101457437464738219540724527988926734100282015921712345422912958296620987126835343155435374779067712135101389832658832488576343510256288870387269039630469680495082280468814299837502318411247780112022050486465062083339289151541360223234118795355481569436805504439436441704611493445371132562339490047669564545006551100771658230769981959589664930578385495958342958205230425951969742696908243310814273763889157733469853712997675331974224474497963974555088773957105815709216697183705549168364157703977153886846046394013123030751314570053900009295160398792057265078885921128114988214794988146105070821690170059584801362932310396718413426000391167299385369927037368312787737998672185187008706126048091942975845093400206953655281117729879651652884965339949433656484672002209622698344401566855090424837135074584024039657021792095959946430634147733511266185445339984744994146532234394302684149565111571532992491735600572474766473961371273810389207743189199132925114739328566159101798060486033260662407016840233654912473685042649271104497729367767394769462099090107831949109999671099492446196770654272828547758041295669266686506412994859241636469356453111765981208264868993571324307216284426561170429635672048671197064291605407088587936664461493819877400267242565568337598298059272568282818659155956731012305195414947059828921498070393276708509538117110013281473831078171716649398711218522855307151683922021499240102851492616842705850750548017950490111440488404451027488795308322064849590499571071382171880461865284455422497739167097500479053427629130823097000357192989533796089847738140686580493769990433530905520323755217721798118366081780781811393216188512704225680504606833557052007091779863951218216132988675970548885200035643091125119987003512711842836413366657879874263144155399386326197812725159310666462514239044870922316557780008114359770046035735295694971308342357644960583859409146494171568328797537498817699837346957642705350879212735037669266997471950360053645712560342380684378944717333313723702124592660369307008649608089149361001289603200581305736630265626340921787646619947112607762686381722909004920847139516318098738782406019021133671148498143326616486779639778683632227014999088297613944034847211511564571592975097109266259458299028968137394293675412300020453183857505675951612113651299527386769099715789479700102652367712355283970072845551846708303574610622996763786779093138046311856171292816705096511566068308820499800029089012844813361726395456935238778943705401423515441942617944260524966930599809465436576028474807559391907704047286590071355245830871192166407015659476608073613587169899936697864850335870619641268181069898389357245436912127006312076349902059521448421720232949697270975772578302596806718922971706651873482103606200459719045436920626257996111886550441365978648853187713257885250330176775746228869201039304045932122260897661184689590432698210380595022411379360682916660687877044763864145072402657038286941469257400258941542584300094752992139229676093930147492009529871989639726924840409106324107557172464034866721789420545328436199586882155059850834196280511388981627700558003744889260123167865811522225291743409821880928077308908791888161226302229704072531812288119748959816002888807151628286344394186679629408939150523801896551724516876453997872225103814088071900116225104980956099823829346389545764249332736500013899454040088669629063657448533002771433172293378723659687618638915547428006164944366839925909354239025045357983294757833047731207954393042107921897957347481652685467082139191954174435443441248429379105512239180551782040241798150051904807534752481305210626418812809018678995152003966020837239724764236676055769616283967522294249493441564813758541357037937193418044338909577398847571759052455766641677153883527247404163532558291877226183416283109156294916303581355348210062707573224704113363515497828606822613753571295723705531029301625344930505116771515597777324064657972069834116418496188340941822531570073894848726096470392283666712659146721301218870839776547727149901552700517742849421720798813640497318622483547316570987268448327422788194801718263763494989457350754252806300079394424629480854300009130938035285114943261211522660063252118414573231971093268564562467642809603858219552974935520087477100559970538313717387773675397561149179054818427814258287083411454326966653862464870643308396886558352795230018800844529987711961872173253177360661936394324506184711728451237724423327253472934383012432502092766359726508463384237811947853243076502714406594281103692123320651263075642086709364990266307045419204692408837182461936116302505633651084657079546346531169620378863968904181567328336061910074321582161530609280680913759607278214366989764812938800871402673181584553497259901525093984072876400514339342153811485572160688466861096246152990113491620565135590843582154042667281419341007173998805521190456957222603961553494834602141389476485273094337083291536403778682625413045333794371032090160560092975138390495196343268252072382932344390161524516145232994455856605715649286279841132078268854964161255234649415097662266599181217474466981675325539785001685211081616793667830090830777946505293344311724835040574952040133096376558528503679365006865108846216786710700391541294807068607053655776996982344645559887354350889783130674442899197637559515383938001921422094959129741391127661243056763695730231609813576579535560424895379747401523665663999071730335925963414132534958793187675714846141604382239103894740945539234500931872160841819981945258543732005237897797694817226693448971342597160040034190221017571832914028252749218838347121677786298514506574056653844261789453872875365822119666972470452460552199724203660632047183961135481227868107674332229915166807583152172756575070167299323725392857423240733242732293578701134469527641192978347544545421800852842988903813052485660272733350752354887441574688203397206995394650862968167031703856342306998848462951951199252970059723488497421607047424913406617092240080518309756511108842067576536738089321414538389636094283034120388678778528935568191136929257553896826050199990668964176059822517079165797319510084372529764103938765657194282020580502648892884673133599820644421138548872253444037498134626349692945248458080764593243492537880543943503744230713294841260849932482889214152913651789078626935441180588762161052360325197478038958736456428007616871884919651564173106135940531811210390828685459512835555206568706550984584319907646752667547278538889744797139904179501115899647053996364242023817968764943086881197413715777268069759561553458261467726043181939104856896662825693199850515030956717801015327927911694284266170660148149522818460437840057422472960035556053387891806250830004186034960564277551527216793544419745772339739178189070506924436015143929626138945296313882693549775732958946516304056253006192274793796126222646502369502829361091646523001720093267494846650641856133990719631015410527528736673670860778180824348157678175104893888225768950678948064703175349714427294196937874625960107375074541264202080351995205148665014117486664697604524010498416178352881679692725570847819491892786321484587842374957630848924488887556857948311337256777407839855807430785349081057768531105106127594865921828185821931263210438928131467496701695616201375972721888504520592115647304568778405274179723284400139066809598056680218472639425091194758696723631416225560491732095417287248853102544263618980112067003015488297622186464350981404020740258814502957357628955971267729176317797102109230598678038470041529295727427654735549975066568394022450821414157340874839891729219073508783281058327458188301467088555327334099000168115992471406452200913319999391782021121747369360906192454844986832497710180214717163554313368112699344477779240506255356135314859820262030319032096720520019392372313011477487810454363549475568855586668115823376915771037735460951063846677942402178337009512493351099403313472368248666731043869548194709974248174235725372400472326959914490485019413205979947653192250101726807096564879271863806767553170742635225934194703812309480016230964912128095309661008513701477138037108845650793007536582700573694230131753840582953343970043738981374194635668121682547477220574695259488683087346856429896260936563458113080660046346687710418931215406979845844046049406683821361448702848532389287942434917905440017494037809238077978018060118899142239515510277793298330826379079857167304276883024719136176098736386441988506089302360890579311808722061126309084183757532950965135380038004766936539637432206209011802876897577933321615055904313605156088846364947206339566379615989974877814193073964917582224494198039966505245936581295225567741461824053498215397717523487763359868560252527769886195786695441956646819154114529368605978760871558332915227632541562223221524519345664483606371970278663526802626040331302191566784065598232076190866845333303962789135936654201198274418343628793935067372501159755637527613708254431224846686567243070642203748820622885518575916992798049444414948886696263703782333450743894561200864666619484118996761312846690838013901362015560271017760435592647606468767389594308224196276508747802526338099559773561204612045034134974646320755214245940486431488870674706204847499747598318390376155143522965916003947801264100096068707718397800186592683745780518340566532365275263022934013799650547881938440604999063129420337596858881598727791237447926055671868546593260548504945520280618907403516163576699509590685150577412824633049149270389290846553415979590827510883773481478475620590727853439575977638591664736896664619169806559352471508174062899815007995961912766209053604136585837176785359610172960217985574299543786235757686659733337880056970660713341672270320977231364960409909427686376757259424266723103799053439977208457294339790413161057782939308619053254477907879814003800849185030685659350987203744283071895093470605121139597078402513139405644906187004891415908703179036112132278373871293288889197232373425104691269815677857400965696309889411393183182406301206127073336606538903186594975996620723552106969093958371663003211279251872437407086031513945995797178377056172461886214377029611181113322665292720214945762073036363153330100714764984727394355881599445559192178977676190484431192762512551886788606290983549738235852473325901264020231770414721812035959732667518967362005148737803858202692128681392961855858876159083575878840242411910632457715556065531472342697397973271993450346137317659909921459455758408288594951698920184736749657074600027945421154572538168323938327747735290569694114411771210476686515087295342919667303524485578101540010954492345965968079903657317932057154733487574165452612460178120796796932987697327984819635897203260548231812543945646074124632819220674806662315507082542758495393697137128335342857345738004106614255002780694595406327656674644506155861717081020923946952575876153427993125339860377209515615586882642153664182974505533984860673803849859756613569687836055543335465680779132799182242562747973567646168757739847039881795529628085189348403193535312414292453484103021465699998855650186658624504098387486237400331046968377341979540093013892717617984249787064054207041590613834267136510034317987153627672348645952211840414077809146785551373999231744935508561449669702963438695894424130087779680649200912557967116701765089231737462389541198747646248587696390903145335634970698304980767832677444100734173017643135768678636769226725653343785461050574395944511792809316491574899146335293462916117502025970445364635510465362983194356851961031116181960449872151868916177101805072126796741771676553195962854738969555091924099537167075341662308364288809391895207073536102353814109650917325400764226753098419320167116728510565762280212234203520306479428748984554744527743772262273606310163835341359369765942158841193686331221955398956685895508952134357725351544101643621868933354850049427233153746680249268934280281153499659374125979247108908048002698056460247434930259064130618133902262149726757133003074087537373792881484952611865259331125109686714351396109773834219322369975750482275155022651143242907038191272419763894827073801853867942839365814351411730535983343919528732509400684622521932979315740505591060771268991649711940201337775567510055038234549797880040852068523900861309597205527625397004404886303577267007107776278550838540918839623927587944193388095018480634004065136468848175755529340742296995739786163644130991662362932677423401220904911440036727273260424077683098292063228805624994333070219998999115479824089967227561084911695543970988690352868433936863843460694760591799166359889645507830611783912290234532850529662522293806378032524973600372528738507603407878308739346853678643306363759614243948978661084849192402252221447854516414458833065691382948350606285863277319232253426971591572872863303093173004658167551196393218632419706485893126276834271130971541762833866635838849791833337236639392245710327825376945451457916147194554075163039458392560623955621968038672540217705659521924581498429234488908148268435155033771869377954006205420120858962759256022350799643626245976163392913611459598483018079503244225480249612222253166322108163126372609136674153886351950760719940177667611167337827122043489442605983149135468599283472817196467432465822071556109169263016650636672109926944509943124682916016279247820746768985240538746370405726441861225338903352583814364964493289694607405789385775585342601099631307632727697282501604296620867153301385776040160568950385276210316047640663721078654306428013371781417587282107067787264697888875490037440863139210821505264076616046778535215062759831812579945030177229482229655630174771568754015599560295470436851928427024311193874489502536477871532124502306525100989580839919154620015169432019372618796865183910246563125965743816299168867975853487933508045413977643334666463796246087813719916131142486842033100077672185702270132548637565428791450288334657508062480242747873756754676700481896661855983685015759324636990252155464984028513816187634252229295684842809201491392781397985251197135569797980546667742365193514783891031250778721635601255669851670065148652583853835930183786875253509720940497599712671830279354877643698307513052235300296233709082973723293382193938196732289840225204106788331518105777390570544055280960742879043253777746215898216769552475685242795600948934012128747856246140840625963180489103746775595698306421856175439243912792339447248676254588284360629537861766964603981423814483072920861738049089958086126036999277424917772374301772525066810550436868527902352250445728012342557029741836418725193482647634161100386798078004533144774024734389976044758951555589831569798429590893699641478029728126742052858274406094520511066441346169867440632627422316902296818090383149148668847302088576122805168476774964659637590286510289806096493085577014906450116319057411103419118556021611969442773808174010914632276354407743747748637829250186273071599941965986532681683900688329088489106363555804309725005536613599631126315773684579406243915200108094102050581610296352967718930467168251599415413850811163718376892123870710467096590107602704277035120030405888288204393972771934501235522469341014353662839022050281635544783955291953405787720046162987942648597441301245387173317283304153350786644461046286745253880314651196048651217270413036863296467920670680800316828618281752599833787059172352308568030806604436844725519264436214848288632194297782275945227733457326127184364996457107528333147233801007386417657772316784139683154647669887747006229400433796790455988960421713547632197344480265424576446257661532292666706302191536658838349324463887568528834564843397065327404935955244407731997068699550181496304036381183212089476438357360580923537176952753027432647019168959789554848335401337592552066535929553084640764625116746259448978268425818067337653957279648877626492371861605462974943933558770775475111831921907038011594106251677814347816565952813799612639225897891603041711956462971037541143037476071503707667862842494241150186132610488687860505513186919338959822664996378648524216692780303656107000057267351039209197626020221712497681820896576837681438680917034628220653023482892897876418270462896024046831612619118123395952877282406402314570315179486948550998216379079093009161277769521322698672067739459941406198279209145992006509832220503074744252994378934159903975132274587804002574715191150677830989289515996024661726857678311268110684609048547503916863916373366666839438434944419188520444670285342572945344299915972014826031657205872240827303495321757702107900603923865614606231038733509274029067222726785143280539156560951300588331031297161807703032966461231784115783842354860268657812982097087966256747653729703268902246436145365644975642009395459737448489549030590545114938160592635814460923490234304698471268951189742888567325447229629480336457568663387566358452229769772140590177817095542552068900780942815684927909233534020963249564170941075441914892588578427512131107511480014679652835237267478241435720938215123900890652725543147625030456763591124573773816342576121761444627076425274211613490601542758828420562710514313532539530425591068573501845315011403626449646706652690433164107567389023422863732721506153132252083307040557973559873808207560772865547643726535736282209031885408840862693975867883219921136692376094207450190743304843519765762822893242697481303797349377604642434141003154641897329028599591902765519518892183448289011504186124004823902033252631056628078699709292072178045535990673711462162779471627455494855445628386254640212872302107677805717248242678407584168509620923659784400010855831711349417092339430570697815223267879260927618774289438740947324218371607435974422753239195768211620515631413197966397741610573950501428219229263990107365698660393610198788359895783952145915749163543430399807439401300221713064621227951977139565840110264211409350395906636812647402375099819420190903139298939615358814713069335137776888321751803900154911133390666613688985984861060439745060428069482308170000488218108488504444809181816674613996611101339690885470951245561292232894811906979878236849194960003397986464313918285168668277670457807202517375625854798090432765430680107803063243960928373082567991972975189315167495272474801018200464205794288363932178699546408641618106909469739919333639849979653645598367655403543947045781496333490667675793308271252230923581952248738966445984682064861806120969010649547659370314441265092756500996427794593142933348316182664509175316329266257129009628954034531018963964800693900567209424760652967506908460762404287645372946272968932848774466263683150425038604787587715302423781472011573772582212209287842736175875408219020405847216846551298962164036678669361570166988728865236236018841942405787508020346326392850305100513644804705560091877848721662959990118358478257226500993917399892290621759263395048358163922945648579165571862253892440595526579697762811854004936566564201555313209049739120411743530103274231265360916172435005532043342652580347087987951521457816874470933445746153229592245063537201594174362337348975029153115932457598228628645846183356006124802544595409746755347533541470724265336493171942478278562688992125006792277544581922019606166360180886017911550177551195962123273393317913649635982383530927774339132819058569364000045365459095358429024211971757341922676021412559361963104407148837067018125455658700079812905233849840746669973428146093118470318554814409812439189481192232167983929110676903255823560291393003202429376881467349619789185149202230589807943560491800141710137924582620129544537740135605824279297057158393422420725619734450668980288333912177194942177910771125820409026669183932180434054256749184371477251475816544371043899735965033591773464199833385616970659558278606953635715168936547352353252418792491611746998402978572932114712389705896753627268650987683084662185942507567447056918034857343528095069974616111743431007502698115503153859994353682383785135952192346585834131579909920905991183045388886494950352371897492305297406625384870613462298857983093787238266087538913292428879136549114268769011449604346973624289570321606304698181842482268608583307223722174705181281512510264480269241200614234160355589745044483855105573814358570155884353519434985523196787181024999911878373585598875981274096191616755336995332068211347491710821261167259746661143065451931667732977625410555190296876017283893331627679478851507426645576994645286035223334067051012750088395831235629374461778893174895540083096931724637155924790285215213526594190727983051431046489801969422268116140019136026110558152545640350285745744063165583427190119551050329431695128368599495004330991152159525205606310685717399425368166571915368907767684083012304343727932171406814924610910666796982861285035516904580559502750261832815714875426594089451381958208702062168001193575002691305751562379911918744825464832632795825050183140078411437673823137116491483381276062060847470358539301055394113466749882598601554803889961313221261754798803526801489997976409433377055770027664400348510016512461915443217496870397854106984871128486202662463277215147199810607254914415470362307054352718978428640691886067906110391589363782968988826451648868969644103467054352169292891173300118122695681788077823612510577168201353061369337224658173367762796430710039504905860665344820568834555437644370309449418473403817073192302264695161544538783885666277194023077991826490545664007087283630343075093931891745749621843815816641529623207852839934465377789343099557369591719975919257990988254226494596666938676837003601939263236146501607227626125170788034303957795831090289354363924484745937563622684374519914078738894395008608772668287397902979407908788638558839505100947210186359289596416200405084974927150646259520975612507857135503557095552260978549379224204846600908048830311460835339767137096403914947377870420178009526799704409919485955887870255294109356421974608910888470099416284552840862936196197549174637573778296580634120515576604913915467402375228527180305465876623043901316104130084994101204318164097414408587681317077989161337646829466402263370901974632760711933972951712990980455128096694839365455168549372768944823788287776106747995579913282403918105519086527882062464479879393356982053229217612718713135878756751895718908539603354507910535699277819659972653704177029649948411111846165829510667992231095061739731082382767773322541513305664790271185195512840614601501795945944316476958802882568943450503186372637972406973939927316037507081852398552218574646605524125784032463379439538717543968777410774878118963887656402809048165447435290594053715780695725938045959748788742661553168335506411550295568543891750518912560931045471259198713061057755804234557517361603500078211007334639929648270086013441790145934731893345544859140802920010289059701493987184126406633160347318028867018572262577338419171601339469375964180312271179570604130365167329105317621679150390285482583970833876490967250820203718491908814477417422358041973940614053567224025529401708072453942827344127517081030472726499163582579714590812708163515684349806278185496157622532941964888837694315507076660159779368810901774030814290338976054539184240777469382470019021550316743087322702019013830710077952062353586824297612079857408667501347174248716285123640898405074234784888668666875347595302458806722673220885544623700739768467655580457233968446045916929065418104187730311344081956365466363488341624049036782603851850138812387532526559515194842388974838850752615094900760127174688318614266894229684440362160224898302369165491544136986992035257773308547521269192604303530719340838968894676831170060829823040685248337813474501112948530099509566605136936017441285859316569016941405241552673703305417651445261184831035624271648135053937383843644441755113160798438146238656541361980473093919864314453570880364438021381509705368526919750227368802541026288952780770884467076818075828060006122071273177630825145510652400283053986652316314314395467960598486178678966385808824697055633420577078591490074844688330207187972657484744020581719555763711843888817330751260402893881532245956251392286092101983693192834869229183038817734515166612598218785733818642237750861053058652149397869726422052027415984964175676762636423953705673281125968452385624521398959863923922526031741947884497525246932767202776243425928526653370903927065329320083905110310940192744786659610211076895373980895290145187878892381686190204773358192691333596937676560938054203102507900120117444028430608658111332841598276072822933407787842787185621392612699377263787962294251734869663710286316421405565851377778043934996196024498120925819391871813743707868046997589793256828905246466109244446883275051776663012208505366943448553234605761305471357845005724970779713640734973015724176719776547398170526531379999426691475208891094400326070247118965924780837937974169323901229894386045283208968761838960080024480452909615661354679450996457293466690819397509102265564119956855320013152861073839527071869715907040866114833563958815800482221428881386248133887702696150294646285933878125389842094821470385015978938328352798665904857944360501540722881698733310120780228362830050931050579860091788821012433773838250042427506991212879767869349798769056121258009495540454645641248876570051713985866199614430298621623219112323451374289240963537913276506780764545576973382783221051057240296635188715943232953557108384974109706682700995586038499184991130669035202846439828666292911928556581719119679973466270175964212208552692118505212146762886602039175817718910754669015586148164326437408058897472094071372797771426451553025087617016882215586977344290791425180666999961206903025484347949653697325672708516749190733824372515506498934906050898660982123639637860537845875113966443077493313441485325661438378347245902709770300486302396268146702295437892495623070808207101350198553206558691078443066792639917566699282385492759401008813089335348251353454488481959053388029486880920408482867644333563997384431998663697896192233396311561746519820272538081920462962800486002180714826608263083262932285962788984929277250718201657631365560705519093468828209759533317220157898386338140692558677996714419129525428165973832637754341897109863056902561284129615374329997417723116041220013895225083141331250625913992797859430332552446042796001209958820007153040828616070442520879941830539311551824241245519394127004485841970135689070637293461896360975556568363340145056436698865144228302895942042213954992237845517237860180915281310771315068080349533436734291931927432290340634073451122591171300589272305190284014699627963985728379736640550265294561001299846462412090043328646142645818735393447263616668199591821903369012253796832311266435443491412571116562770224299611913754497177477689672225014308920452658851775429312594313071354598579988472074899377523832621029491094461846877050637987085755850860299622616932673439531946803270893880230385333501957822916112389880735068533030823146367050304097385869160021582962110927887861274344884720210118072457341923436251137455841524791389154466325403191899250968027294728867878916145605196194462704383818972534508047320270770615238385051572372270854008603519886526548731569073102385284537006214917901763841697736954791521733668563753513303324830241240624524340696137522724537711576819059907469769696273219237716519105625187119603228991872959811306812437233742232357721585180240343320143733134400378544042048222727440227069155285428885424855585515557188734112421805824275659864965401107441561037656766163662803319870122424506412321135690362255990372167041882058062040347477207562183253165738383587297540106915430925754908597469126156449045485246732670247050471913378308393698500405741524056215431682177273438451778502994918267263773867471242464340987497584891839391517570111633185331940254860319207511310854202101124110446863946924714192746130975127124938227977361786773005325911463313413142380552907715256415501596040895692119331871328115252373572970934208079047253000716563713702723233097753120492834904610652076151758244758534747060746862557046908859981202235493739244434250714764322122446681616001854523712679068400051016895166537502229264345653774980728388160312667897765955610319306860836496201669866921342943310651369889738585541263113479733137813251558792824645861126039411910208857904092721189521676357062938209382370982858891616786060029069696911033959214679438992544611299783386458045890430898972291952751996962451838482487707099094611034018407279284248374536658210095806448021439953623533186755940323200129879625498289790453657033697568475014689339014576581120068961244252307706210235405440057346674403976089128371472864685546580826099999710101520536965263670395036103850220617513310077262498726708719683999381035220860642638000467482696597199841970361837404866177123149355522939325327117131234805902576834785066478820378535016998866978549023600281221383971500798259383782700164875285344193087155686939513906532439674206973415101012484467487450859036277374203173715184351641311870664142999284344285762549345295344822188350843810314780800949543012001893717072942014071025346414124508462413005850282664497483437141295854967693578322057143650438421899238654326087512144182252899084315016581248075847302892737441825005035638589089147079327825272810687949876357826135807058654535502453799576646209951315355455504545009492420936558170449057258591721439841385908981091066359831657550327777996936368128209479910430196782223944903134921957855826756843536075224297553782014535017665635797646563418899959704931510143806554799961861903177087103212077316050271068372567375516552008553006135986978607595454381618348092805532452903265130303910056658797565678528255521968844864661271182871102135133052413415721067568641356900947195650262622367376061644701165591578393058756911281011808946357150885159061192461980650247476878849495900771666289089258698469379068662639978806561318589423567472957786356655442751132013338205086575737804226753788028205996880755195746935828087806213631288691124094998927435720407710785350236452932583889418116328187568467973333034211500386425020483791499182612678579443985595267701072941894409131778971241057034955912742822052138458370021843238017681152337994950782746491024737362764196691047220601570157387160145695343733285617104432382272402363168479341936316758539111446869455760762215905677872485358988343661968088502313267537039090847316243480915983731048149133576337518125014042829923183775037186201309820391755664687670673315069497426396561590426771413693021197391599653786842564079580826457055603826479980276458981875727442546014367021639629539963672893018105255189126622449374095141159670061586004346825667682914710474428764082801281827438523038285399539217695427136674206701003752331498470422428801661757487471360453889607935538309155385512274499379785874593749230312164856641365671588667111567859123042140203412920587273973126065767555402801351725524974569289563285423613519034726805314040147311425085492825235810764339123749186735215716736306762021800476981878243388735014026719705115282086674817310457383430814066746891242018554919851857277407693943695992507760392227775977642521383867036208665056965035107179037692443815162029203311738259522588267517329792754476827317100800857317614567576834220069469399612887673345768337117769896174391779604353793146435967463218414956919435986838059110410970749971976116316848821074053007550801525593894550676125041596801437328216284818732955315599085834390935134647634729009401725532174342143336802764109680988835182742968908825767259566044156979401775673968745887239700049737753297582974544133042419392308268333458640581730434565774977154189997770499134554586068832873508087211693436243012513301387881864856481486156960583462683147936482361741032144997202684539658195737424352068565797023241894660639406833977364191720259316321337977648223431754472661347792273383236324607449716827788522641532537418983654913612033752057650193287903767824458940482541964849905050274287367375781976742416279630758064394657399881847749453168807509698983763597291158405823776613510246476021894567154845344301469059731170602878534507098829585209729935324080729709714954747338867444671949781626426075845884452946975392697008814420273837948008072513444632171679996769883451796626825349026983671447460199587422543263349437080261094187673018160163378029038015546186115285742109888466263179579737553580369996066551882100857569849897778802736211767724102999617392946622219009766593269940386084582726762647909451125602980867353500802994747521978443383626030121504514733384382018666154026693876541161553470670822410816525005740164274007524251199661525851187661175989423717932466684657203857087880440916735170341216377502608763271476605552878058330682781831869577625356871591075076855197092686924129382649180001791269654757492279384319075512131936089814274647551953453555471616509426149026067062037327549205166030927043841669880779243480627393990884636880624000879724501331276265122088221832042876727681700494192093153059029826010567304211275985740160430147745144594121019056040383222036645951076392345143056095419144023605102086248182219842437905988927134646751202640549131491865698560174305502383192159864186112122595113589517086756659130347268960359621019327875307069089725220641689749526732448049552902943229550794498375151869401928051726673219281571668031647910263165974128760094448108627227042618081726557944305869488649193139912248116240378399834039739342289567492723588556649096369369086879221473583800785268996386730799094430536201354212600506199575387685636112346435755039068688752576789610472574364941742002194550542506397101785726912121408152535879883857338914700276074511361989445837461954957829455960950239163282035985355341582343861223252173270347604841072180193307640162435916630525160540376685946088633585244404551491612246279349346924966742243083444997600782875852643120644521351093334313723788153305854136650607486165819637259563718400574774817356124549869723402573331089184007834947831822459094308925453682035016774773552842222210054306001747915795038757485438840854575944277288179077021304125032828829865389732210674972752432840824303372510302316902677409508270136184933677085354513541396813267669759609392996195142414212347412024472139440213859671008592501241089613082716699892698124217946055832486465123316357251260759989890593746493825965036472359149484740240468214849996002299905440350387895827748828549854238060334911754448668584189497567574597704728613273431945519076481307633073905455582907249531579006726156028370813540932826107286961264532041080473195393950801331609518748685133610416299150028639851360858090600611766856327338922526396590852209486639281772944869281426911462995029899976253154408761701562896039650237153784332459754524099354592811962650728883060392880262419387619337716181364137815874005684555593778125307641262711668399535571419879114520952229396804609854419621606348467531834865717747040246853528201789560285776368540183325498676313368576521283235338857362057101177372185769938474971036418879888826786237969758206913569428602354902889362246592534678551509036055587539098182933230857033311732724904954866495543786207929726337569253776600215937271384244557661084195255823603540489628219950354243999219283706048975592716700752652570961742849735549615590690704746619539529153817387716770626902773429222448799895396784813108988917213964407941387796758030939334770655650348034936101291430318847599590322907741721976364282437663575257066480749330214911432597110375000251334979609880518954724100951931395750498043366432043815179922267889237133216968623463288103475476547168474981396682037383292014446627375646010822410709018161714865345939968178597146097746649958623233402791113187877485930364926794516487372319764376664044284285783594808769760549647252275987425298294372067996060353613341057660071300679320667521283155364394036344204286176628733152142148531383370090846990123905311841483383165834018000289557077426350509535480162871997663798408475817487154119415043551079971157377288046949401103448872727998034702732116478182225519932293071772637480917498281243897867550051412291095860211009378632628715823893476555249608128013111830630986703347692397274923818509816160778147854769123511752291392804811882515409164237000755480236287684392302382663068129440290591398475924973654016050045585498753539217241607073118954359893006366854308292453045826121225708141315415070901421831274853181734700090920372206258600276634392349430838447963955876179499557522381029957228651501280008634373476602647205136697843871903657175252459626887418797219682120270018283989550100738187535149214722187950531548811457444677976448184326488347112774601479808100419852440786449346882702633139590629571312423059311856644833590406805019740993365755233053908145586045931232460953464706263806430696925630233538225807027824461549608130793868214284992537408423384319228747663335037530297630280236505288226576485111936011093188031662073088968347637707334302538637212276473759448378726075092263950359845259022445706607066397345956585268749325375101725156068599244547298431757106344605083996594072982705154602313000002115547296453352316994521501295535060565832142718333598232433629450408911976295694787942130556028998602235009857341470363307444049008256844396935877495562952406287481141146281743883803815335470950654409431008717317509881173387976656968387036869194108482087171681788786430667331816320632679715901551027039535930561939643541361256906369120835332853395283382837403969693679301537573251446955561370696496603611806367521495888946491862742304152058304512236398067361566086670438955492871189395857715590412231497187879820887784750260106191099117449757686183316057737727930213825023769654326490776002387847088040584498832850573427829001725905158015517760003355268234833320618549061073045682773334163016897973779678501405754819704406763844552046655181682684284909456247851139365180434809576638632482885550195107956316042520605996261597425009435157091713505498404216868281213264096175647491143112679658835514752992168142196113348777960127584341365431659727312656343584060920938127990834430333717870406808456179499715078374232792901319033174610815689221301221843153190484928480224029792915351789020232475423441465341034588324428516401861915724115114001747748483534921086889153272253297303454405809582760763443603044249273364488919516273027363220869566402435540841690954954691232562308076665846819585168990652859612683972202973747304736719387264516053091276192571394043341532910812448923562384977289486271833580829635621895882089408234764362295097348542055567731076450756633809760610372550362137357248619731073540869005315201543546668596729019911527234988329211210354434635598262761935999803484494129370102719067220479774061788780574192025764139818647673384378172117384724592814486109598223258536127477187575335663193133421706175186734567199736062089830430613656190480929249649942797394151365818554423199497627347885247535589793703045225432744195807514239748946086390208939365791300388789578425514327735379585245296354235645014618284948252252738870614123689571165966160165132561986359737341639558913420913072721485104060917417479200783755323597230264269890057551649940514843615453408639635427134214607404412812601654108170472199646796366593697709122191779507353792121094671493455044334351889479715355252987506175332815143714604362949669492901018981795456965357557070528065320851906792131187284496772398808655906887085180023979230475232145884975280730591485417935441733624374395145291426487927638869538695563502370639042634287141019734386564069058814678232571294797019206297653942349473930355049032695316791194050569041365215866274178400696926164288993864703547463107662964172817327851463943153050255756399086196197116886577510891072016006549644936061608481176501363004863728953893504004975178630159998286630336869288523171047994421201818108754179904274337266614888401580002365529759431168535476255554614933349601740567089318910133648975224765991791415415479267427018374346182396396197766629448371017666736716365280406978396949391369624891983592668188622658740942841840631091042066702529307714443922198705266014250067597788259361956382134794173878663368045644899569877171554658115424660970325230901008783008819308395156220035516315572313741616315564892600333415666735564009177530212195937758947680915077896114648515942224786529817067118070307155562098588088576694763629931634515892460847940762948463341994023627706135997039828713182029633710208872335522584098715264809170564253999917676368387838473140229865784004265587870488169721989773262102987416421288303306085396186099095507649893990466966470032656613131054695662834717275959941767745574907734897836399948384434570343398458440425482012262254738398218276116473260509271543522828205745999052129383709624839498405975573249385155225813328633174216287115106471250206213118399441957563251134283604781895011511035225107650951469465857391985082225283410892590845886854785548428937716779577045474121211511563399474831776546754198521410597721507801212210374254611825313520858724261392082592821892436444923321305423352886613984812585955198464669625814524558313069883310706261366136927491479653326760384744489347460608542390401152777252520139263645933570600831429362412777348877805039638856642056583923443795116491301342335195576410505347515852144673655790896651064047598550525303510237373628195451453503671582345955033948112927425884247647980628756144948621062205748142252802710170798098053102424096282145546178873531113328756283501450239969582163933152457415230539941943604827150853952291285852097601425885174716290568944172789543801383315332652491726020906351890123541649722070337955635426677268702678650766809617410095860266854295023137644200883276997833180781883266593260014669294828777835430609517130791118051823659982083759911854197749993205360689145217857315689649837824532733087574977045954097812961281385877282575569467223959124384926445284009682079366963551336946731227670179757851453438122944965982161262572184269012987792410696862815235066851510602717447863585078543616595321570723526934054825217289807722562205032659966255834845466930445403164871017956512527686661773392358584709465528716301711627505886942520656728789639729276893819077427422015773499439435393265927023833281400127260976892638360604203169125883152404334938799969477396057997175917772035480501654844749800669450489690199916262684492966242883919586948083821762519471014463243709811056311702011476868947109575478084618007857550846630661472785705509845588448494047987236134758067179626070480861881313874423137137501065525607598933150181651712745724395306251854046006711541153149798667678196663499751228255269432966301507340868852804706641177851977870644116105916084865582334325923636964496669706061572507188629915472887409524609594440321910905774683513369770716241563205333151057495426841849129636134209316652654069807842035834823932475162521723267575598665131483295385786823246593015557378399085620510804271446187116048223386755576217305097066052092256167870536026536001443560942756390730089567205400759247346232595771891835045265721670879322970615691788009698887810932163797103109559310210367111917380219119967710026595486549078830245741367868907532763961259691827966082165473928105269340671023720690631982374487298180168393772562728293897495239676647960777034677644639096919935227248501602429111008857485062728146314158467252478029802422734289928838432880627052705956253439176292221414790051096101778887494140705096785037845534234763219648897783681813544422440010861099761462522278817692109958902116071843388322344943288530524948379700389932455880902510144931162393103712124039282932593627239782863191882301287478090739629256666644149143822097469089465267378702237517759883066044273723444032928560364618204739807194338190124340719656167150711340865154404736913323977553690760395059019911091839361472208021510814626891580260567637544041485476999293181883760903770619596703654302959724143785024337557722760949511116537043744607948173883662140621348190792779041477358899835932538566812687974749846470071383626668205490887912566706040814220487001272232083392177462404422974317730899301540572235534518787055853888902199068828055135196907335294206863506483263553203772685080242133624963699434310853591898640739983590190750131808360245336035488247891563968618460581067606555392396865386545865216715108009847801678117818337713283834890591808909627540933878433381649303327657604296668247317902475175332858463944134160402949002009106758399704510943440613018689001153548420504828693062245757862540374947832465985454546073004927298733637928966886585716018011774122099759495330325927666567246703040478474306689730222910800590335619447831737523327003679208743646287729311568846334421655966884909406744436487592194631102526729669371909678376748496095152585945693271047463360635412654557812023607131266026982615933795978346739695720946695415321978321830155241628575148593877852562291040181531609708357283097615687215969302546550770570510382550109915675442044743452310274104862434676465894361916314738199214089570319665983069016720141003764912169269979193788241250508634153170284409270241524502989218647159605273909083765129108282014335159992659620688940108870500605906026514833304117308982847760840640227406270445925407134323986378574882342554859171085925576482541866349570111764404958340692953281856607576956265403853933140075625146498969913366743243170232002140281290395845844058935603338849120852989872687346415679928124650345106085683887095355317889915259668516184659589508832186779880365346386442716260083399524339567743462879142467282842745356017994071832721897454268674690306146839616551282182567683655488516559620827006558253863870447160019537606029133513431065114730642912078109196205928543329020470785852484800174714413448141292134747523729509557195143401300596550371462098037429355707645029006813405281912603286209362813670091225213082264525513830646329939250125069459212416720567318868834617865762764785696656085328045056220032099611110041325360540913381703717312285581245781524354842013442542269628374797579296304478523325053860841381021543142164588377122726662808828841194936514818783861680138416660810290759554655842683486235729119934247753163228747680423486024417183744283632663706871573946707952916549792426250300136032132833474873944473380293735454241846455628707090803626524049653677053142940776424623653757462975264646442197861916280118591399800050115020061823661199195656762380289061183458869480867489612136209165947044457327902273984978726004780450195892862112904047409499307953631978375027441412638449902029138097865909851066703634053717469761955937432229746713542395879613423645924675143088719097651260139942903854809243376109763982583696810264440580339290162952257969290348317808411902445765817172479590760911427679749852438600578399073580866693155364347397184252510995599749012633020855720407141297185220484405049214609604716766443785061001905405984659767591674654904523862819320223076792927496455930610574327073945180746921272204593933661275085841698367431916716055895732364626148195700912039890422510913354037272252501283078872143813425931025910585870648971293285874261548841492245689571120626982573366084364472810938848973257591978431103512486932085325748782228704240174983210895562477594351179946249858604184360042723495567427104134664044530554366471959107081966409933719858631625454839485955841397033506498504473846040449845782038567026095824946450890194092978674016231973359112679747804475799234610545889672252018816222323469917810723979823122711634231862211814378961130198562576052921682651134466359624249506902919078608098998218168527593966078819093485701159541960486141370178948360195303117736191289156091867931061616566230363246607639443430943474401356111027849240019589856762471424898692330540567500383909913258684633291178372384488553084527084536361726771944585267004195458685140191360815424494196331972909794669025709699653987097134616175927145660752282377712755400729870728680142938341521818871131860146665242210022060073021010077064482794969034464085338542584150295694295501927432332406277903898862913370609638037732780873489045648102149101240379184381859978881975170210063490144844545760770144440451184910655536893186930598668036852663491746116437529580483927386357803314189319043015537792638026099712054769846282313527645501655755626954272268821897316148505234879271840170661323527204492746617175568842690558824119688512319889718051811275089454202364413888690533076928150245329544127019097885007243654547950427759621007416823950791625467427750580922916426189887428409678544691787834161753002727411635639763959902000594732295336770931863887466897813742477222120584975221930256055168665249111917007692951464773176057081312364143587719319418413085754064526865383925177505988902161824974349567848224225797930981786119618361918086776148135318864258465503882966535915543918501358618463710521759255890311775156957025818956473544388784079825826390704760487603864488863344800235394971462840216046528524629742660343870937631226204339355604409622598388490200926081684646404060981439674934020228515113372654987709082880756051934032289579355585356223389887999755631963626635698900514627354435902159609209891161643349180969647834811195277505493546102913890367128218357705341554905858475929794460200320831717173904072378016809827198546753913819406348071141048732434771493015449491780563192310858496470353810658607102836680557535165696861505022320368241550566811895498134743506737098075566279053172103763434903270816778768914737858842338368018019258002809995248813468980003662115735182803659503286087914785135685025822842939165202968615622864209212105461698060669589115595297442168168033818929591888152376927412352488773097893763014687910086099927659438064337474801279455583255828675450425779149473501311810626357273936645576606787345162012074621580669110428179859796109064646205414220624641971986787495038230399887792535926714470287348873085328027001907293865794278210103886197396065879456325974300276317509910021417909672982686687218177741281350477141443303149866847786240327234545511836129419690155343950684606037840812800777924305641496786567859032688575775716886713698163428770475218231650870142617427375124179455872220070320973657807641494237113850668213208623106625440298654509609270163319761177034591690399100795047392083237031064346911299601688899111427824690804216667484677777789113955893552130412103613401665745851822644984880372621399285222011373959504749991559622405166922983578289838916603926033635327004837813999998196191573046359198545745190963519927913113883613711714616616827147024840440563355002476116140367974428038656295236193406787826847459783925073063814083310338335624607486875763834865148793296534148864528794039801951676861253633958423333492123276502998672694067013012611199123362882238292244206773595022721285391212877477512511179458157896578917362105652288455884953363312086631259519429161709894749899618679602742785932387534627107863239509736360885594607265593787154823318291735290964131541249177580506922474760921055195701752567496744411405066126049044934803771766688155347282556735092508125739646046525972168376649800748703667511963263176986048164248666430449470516670362549019533991531731125525632447594435266923396022583221238364570083119425266145925807024185987025215394367669493694317660538562018658958747724585996635965572113175068865681793042907696751687136188324119327384523838714885045945231258248333372670503165134997258074728499853441758669624799437019706616948449106254075699848575197173643999576078007953340553192018557867836824848262768390754944745992022201338959130301566380633836235266912244831499728149290202350262216378267885196009555009094248588279892856679432369168891944685720045966829274615074211351257833593663499714725090789000765257402336458834547386729210172640517655703644158464169684023226096900663004467404423028657808815282682949976574560695266475099044591290045631740569073670710549136390191928384773337129895782811841303971186746500362774060978069199297827045397575521336853702033172482903920401530320220208260620995481124019087055883049630628780559914311482995980344953516182379272766298148036103391488326193023829611468430256776500613516589400074741099618992289830079494890061323672824834470509855648733921368119373213294148847325799124195788579516408019858531955778376160501094357905306184233472461008170143821624000018881934848911937487448467693346076135036670897843753457401707492907051035734375677230587201426124204584728166004216932815549654174898859217132769448769331210354765727353361816751598705135217393047745848167025188597924456574610051628174407346447697963957429572384503340968767594626329891889136866707631804193501317754213000267551157527892687324499640066913762288776536363144421034474010589005985325745064918913457298234349445028925250409317675846244333712507238003878937582496931202323881876923284855710196164323536126354238468310606252088055683001926563219801455115840225958524115465363537349033984293368271506818586216228750130776975345672947721296197534401484670445877482228342583241018746510445868827046637415579681823304160413693310839122521747419477049065465344394667239894907523269170556277605102355405578031739688544682801662292555250464386319213922196881427568929402464120856131597908093225745368012586253165810951375270220700209989109325735206312387841385383525047241436185420683221613312686078459060463701543510137722633292280076499085070127411055232530120789057005746432065029553525797484333008485057831501593875127383347626218552682548219470160523352673600320918437225075948406039902893795768836315483516400829475663454987358697521513699426647409614722724495068054879051352035724353024823428998665214131970621154125127485385515204826540983151132871870071167093654332150209041496216154330842287478743237493903963209447965260741994279058591554903693992544871230676305384439349226475940943136451090976990174857807931211249004933469660442579833321693450333301454980303714796505170256120839976446758087923519965055002857454757630739197507374282923276523871542174493514302598515442427561239396763388728792370677721274182326484888222110876370504478856722153539571832662718029807989668099018663638741088052360676994878542459735775201860979089979490295672040057730189550524051905940354919570224481673444460545513490726761698124562864525898147166218463971113638874186907729023098081433042280561521392073785327383986304877787183296681617192070511107753842634023607477871508094963681630118112585965781860279726587383041511826042149620331027450368344922929312200604679377131124217165830179017656366001505005514706821663062891403115504809845259931814951813561623113274393925476454429186693631102828824436763222203403463281933064767634243978440978021510141067510231028159074309685059676730596012374020044884424587540144358320525193009761802086405973536931798895628764025636681644587761699991341808012914205383839179701247925746733338656889903815827835109849633130468873260494636963788567285310345940644467979372725379063607941029444885256639466238990225677725135387282624015579499860549105951386481006614052961509781820499172956360414929388139735136125096380590216497929202050295457021842481608343101825006651940001316890174456619505790162510132950435015030006120585026286282345396064708202019099621178744904280622042800213541053013197715910538460364358604448629771142462260989422974183569571974046494567015003241385570241407715243127389498847141836777778210430262412164005268308973047262136019518204863451919072412716064511335017133967024895571354124532637332434503541894127842576176245710787260786357338016779381459781940520429411518542369838088845620912039096266451271046363794305551312952650604036630202049024174861161485436743413846547753474653352550846154676658283516587802016771630247584398825406426610321430989788402009146395004652109485421396758814510141318342745324544099949423853796754363341954590767385036815848080108528673144303012867061569235883258241634994270673939833765880620703950329824001427937136393169248164939922894640702591566081545180448215028963412827973610611241938648885241064163778813620656205263049455324922178294029651865960104240194181138090035047035699888885898170609206839864521305461625045868978649822909300540706499940033033903467572162679938930128954028994965596125495410151208236741369956890002267040495464364972605297605568362637627161321419570374694946538598495642148217472556101368156973138964518703643404963646528715426516276494846544057218730619887936277541645693197016259891282095491036012045603785621085174361728473600220878246814316339903819171562785451951796172243204286070020191044979176489720778064976868413707645727815904840669921254544000770467485214891469133052145857641141516527105861282858916108959404604234329614546461454251656694753554574237026307817316290192139384458235442423408681177681251815175076263777145588875919740911417665861035659102500899623967008098584157891656728466853739940999779565919761564743620087051519720109349983803388036074101603368970299640616217065500222732905953057406997120837011126361321482370654436038877596006779339448812826964631324284608200729350379795329362228695084309602199541240263864396519979141207657189833641397306641531228899445373760124734338030405514355797780910179950591137511694573613369855274152412885140380952799354290475686221184583853879614485247066229565057825781709531328944502891030917467756420947004219695109583217919707402957527315595518406147937491460769170739664339426000623633972820373376912747564855188089122935026619546480822449336657482513676710510947677395855025038177028799618334937090917902319592714963154837583587524596503130538636422721994200576348547817937296096743964373094635225034809019801928059018332377613172521798751548514440217138844888699732542110418626291780070275990304524609798612063864251135633625752639787352950882992940104452833985074211143763885722143284292510582243210003350062893303103050718318116916047272493615859721465445556747455697750744173450314110447227198522596971705546967365442869829829913133549756964173464798317908834876938418030285952241558724296444222563394660547836618038060962296368089376011949118637897073104080036672736364319113949122338744183984705775510732328966917715018629177027014324115556112404833076528984297076496794119844441495041012334038129998211159254368074193410153780320228142555172557040826614426595536643453761655419164780693504890890842002770497733632099302465607012655782736279177367661829948687844232913531801722561093068457664127397875266535407626618931464233558590762723174816362302887108671381654567162955861367093049515798395381048523307946449876941460975628638757553477685554118783493866819466768260142366135991487078193215306645114853929480443207321155279127711476216454832624876833155694393363453786559035112009152272438650760926139508575951066076303079533113398077802786204757165788318604115594311697361803554869514820064934678417856898472315342898700878271505429136298696401324378401339296533207461540575132128118944815527180365085188296431433019636911867260724954210139324646107496096481263541587209401145592131783854127879808045752293965777753031637313951389920006879662148598622404152044701684023189396268897310327267273933457114385838159942931280042869601102897995037506287589579738425959008596161583342240476604669503532076012448551411792036042310121338689216868954707291241940724774167873273957435765795347396681436203053938711692206541338227207501204815300640454898619508324020490715113038730174413416921231603570308274742761770520335904449671250591358806457409517587662037226793499682635836041467644563168503638785828857444448492264211879682992702418672169055903378003894388029692153481709729678104618736348723698317088611935573609986685701239588626138976371894104424791214423360141646355747136556413411119996331869820056060200101390615000897605049282462941629413795689910090802505016407553848298325687063711382098325153857120147832930606172053026738998884268267935964477464221563639387010044696422156685226068064859834224469635451909076328586839530530807504557037679524835426713597949448325237704933743137397829137313437208344958173509447942870708389222330844346350595016152610664222272274013749446182242881128145600420487800102404133669997597149206621943468314260101351313375814199854611336507892254586316945119041246890356985485572293602161730533807842149777944038976077147744717901459058873796312705228451071260512215174269911747643867763724655352306054752354271916535772618669114654545758241378610430686869758049111442764040044531642941786674153723144481560755522976803302663739890518987922405255000126847077086288634326750612217019186902504580892573501547027516825248680375088031112382586188379424750622952684841821118409831722035900604223672457962299608458929839926669128777903757795454555998636559168514807239391166952095027087193279093187886952607842395179073522974263558609490550813342555173908789248118313942841933454060086771703987657469604454225575944350538226636084700795370876883466004583632256682290083763438996388962275181514486905689854474236304436819112362036087742010662017572549733616781203396565894982750286662871480445460645032928687786804365428924484902295359582867497950137272907600164679765100114806762091057066693756381509698431589221544168826347739947265912230915077111609128611788038616430353898841584758318741276878880499208156671708086344123682160576117249615057821705916244415557676399770445899399768152491965909256264055920799676382567925528205616152540664181959448488656621484514892656611780921733499427955262850354572165770223584464118008095748860671059200758477507642596745852754791873596952885660437905628634448148918997366898246671967263705486035093982116144133141870591403934094570017015874817979701685341813726560737610030623970075783677207376039904107713904858987759536279519702918264848706292694731374708356197259673117883650048021854063199706368177364900759973938395061778777055122010098028705837391058416888314989268973483765465636052889951400758582223760560104672528875325586916416138143646512679909910059106825989001324688894782432048290450491470284842574145849946391591186722175362712161014412451181989701012293511534871157425517021847634059887202044951045343611887711400991766137264200679321829567435186247175467355802432478239143052879390748013825846773352621556865655655023706892492006736075362510737298073310890224666257901698535942240743846919972270167122078700721764262090990715551542562405092825554126967003021809599738510829693279096226633948685673039943654928091916791453763421852769031336700264398979198357669700613748733587603721763100056993598938519419078108460741561482720018489842609298464757048071478022598511636017035766406401586212125793900918936183530463085974992689453466829512502238961820124466151655255311544994835976931048964374768210711034770879619045660429478272879320888499021329391569158935795926432792880376816135934607593961492631131642497200015714904248264657409884463817349998079934716582269347843206725090128154836381411807738735706030820395133793436598287366529078181047330943132245389200639645024658661476472308330980947172127995500412679353321390442995385364064294668918880336963966336581572662972163540132776452055371036017655268628474366786031894961506238750616622785671203351084251165274266289088871251015459827458458306122752595020042770805006311541203034271983271814681748223988592677268631483125481358096285099338822812363520379559881228009928623140875506385599356544294102342476178677866034048045487281113133640097492124553719668798101713723896624525785007799221440963030919975957034224828338889920348481154035374755799112417625753523151460846726467058787739514719334150225276585717953085759986291696886215288128574227076776989478980552826996529316866625233615574114081645614630729512359404170095681822324589482776242654691564948678420178056717588592464967960970763260581817700472331327512031372352559757140439231163841629100475100245672448643188779191833146352369548421829931974346854255616892599646313791057078615052687204195194051659088769499200517976711748299450428322409616748273271889617383794932127723328290540348972477233398478101909555769585829918190679451188943108768667338167367617805197808337959958845502391880452300535817029121394746222351395456348518339472911454179629889466100424964191615101133363740390531251229156156414237455293420920858748919847545755568233288747075874102084823776664887103314353565451368912386285150803909654409808204541329579299777504137684069519960363091086304584724626642708346731240686687624032937725830425840854060100899579854831916927809537714143921426346810152691351799393529049012811834888674746313438976850724283842774451769527704710439702189047130576538542980323499432966855033851654011896996334300774780136106450565664987475877619368947647561116001548094785685710081974479690600254319511626949488665788775055350805536548212789476674339730578099065452249847020262366608420756211373976240391764734626066604001149072692295302581032391258983998630482344165459976990607050021980556724160201378753435065744300073940043275886002859612511765051498786872842262101978259508169482309581448519187546928636845987106159237639772207707283344255718575226065490558895285988683475991218291829082389908408512418029655812017210989732776471409979137423217043491999001232248788571061821590647665125137393471206670192247810952697045379438395750814987627581979086762410300734749862708166711709533711819997542606140175759177669283388987208212484314697023329104720952224809838627226393694192552354272361808887838678882859262775358723772678536899219534679008469839278192504151872302744281357030272554529934545781563404882487160178727288283375562261954301677138865766460053483574830206465361126446751294091103765283054424898065757606945083160837082561271970072766195844375642142662702216349348624191342815436950305481659402805307820940333073137585356353411953906572577034450742587065283201390508157352019663101108910673516755535884294644194925451274156438958642838973596100701815965257314855090690834646714579413691296681992457526750232562304219241207994290851956068728739485191398717352841309670104276173866500525464111956996915761967102763712674476044569854997172728141178093636046342015690465209479469579180483652041801915966030608590455542907204525266644383052847622494612427607800033818822184616258511126625539093249050732836241569347656502567617146462526621327953021709628527626288701772597971484236127869311373607567910951114399182188413345006450660551897521313108681399718379927064394566388926614807757578148385904094321498767743013600394964833955837342413123824612238162793420765836991586229554106843608538356535974722798513892792866591021912621118978752718111418612653612133645672927322487775867430659443746397801500608789521644677028569978756205392953707391664116273123471845272982667378632246718038669558382364663886594266391955440915931596314605217212881156068364125415689197998511220834993794734880451796146738478555814551220521474148107295131772933230717105611465565194138244030462527626859465753985683013724451992492231356778171563867077595085290916499819765792185323733609754183768357840536134891687201708243202564739446438621965331711385653849641486013521634883167234581090307947291975296145529014680022356740337490520986321707827649350521800938895167466696978043982834061400882417735102762596391795626549176902664678743924272386846455850104032148717814404636657141938783600888028928552928895080683905227333396327084377500736216487195188845738385070550599657881325983905915536092438377973627740271890098817374248297446784206544811628527454003226958267461326681077677469569777108685376082483192163086109338982504448205859807017272443295082628905027161468115109882916319650549229460407742848944306979413348112415853300028919610327124794194077965266531955066569246032388209430637424733510820844463247681596166023580591603055295674353814818875477642516064275326851213961926763954013598269343162188322635004208336366261096607544356573949326260505091005653710086534042350373572740663898960732143178071240840108408830588037988614350629343199732004693476227804766509256063851612124887279037708061470941128143328297764966686722811067131610259231845270685320649135241245978169940974156590682708151714398046790309805226180339030151023481457060795669181358916682911261537079606917031866930465211152528927411008314338914805766205697303843355490611028160971834407759507643175409957401990386708840211063046573949141909880814771544128528027550436367680089344623345716030476623539444572495272543007327468620957178307738651209590220467946180601580889124293715204053483807399627129179593719625887541371394333804643488259333432490593932995030010940246490159277650075572089313028577208527513456075506589676978491755704514257467439151700091239959624812655362129868472327114615749779735433078359737430844116071679518981417386824865041005689378057675244929151737249907759799976694967816870032867813045192906183341627044966165257644134783004946272702845382087522957364982465856266407461427541479417641168561477874858424665350335663385559252066361953131133600337321077338692810987489707645210978792222060331966783770262913425181510869769449453063921630734222325717397468332570869756465572472398926060899377147954972565665589795913344666490845291111453711041551590566463643761815886843285747707363797185069759271780747655195183393983503276850134164704838643354470918041959278783414498302066492527008752534455630024826474628511854852611433847822225300455202377399030275237801894631602273560853268429328289369623334764243727307569692504724894745772429170217711608557703354653492355726279931112855151052438401870581489832092347463666435592631371923606072536718889995706819859270533890374707647729899543906477569711429461997015387665293570057318710130295601103313498000779567634908910516725727618200938047969035418615628648373087385506876729733024215459491328134828778833440737889589395122069418615442469757733683578658961775852253393626438032329035324658828312019805194077803484246482699478789461915508911369547770490048714944186752301920497049269173174459846879897416320482765203848779509040268439742969171967251712657731231082161008855187660913801779055193843793953804230190707497669121049888498915969996050347635395195755907647748746956733109369460209378734128689026441024152596408422193795446909948230631725919549558445328722286598732415363094315182619585578017155241068527214415024401797644933791095791665521510649088970824918481204305510526341301735594344002584866206748277644430649513649356856049849783389824928892669208972557056477451635702493752082541648623181401534477726443759888080199276195827286952791694453879865349056588702788807492046317538312840516841064468843863676955112987863040702815113247024754329593674016350605209633829149127134538444434337912873883111739986245385555410715635721819531229909702719610030901982530380315363479818883338840282394042931576111690494347234694029389914682008778059429861324305668723492180373592633024311413145747472467119094088321143697821957226314072523187278285327047020578664555335511447625132492648814511414800670591557641131252125308977053510284548476433316309429933212886704361999715345889583570204092608263697389931509621416080922823870816569320070048737953022805742978469568537617566372392437677780321978690505084435627740413038536772307240980064746231185607923169019048287447159725618885192672827183615901957262721052193068213257517859137552522061783074226217814367682809512734175236222856396173949695268007720287210538320777460494798753002306320235732012176991677418140054434049857634979509977284602179989457225347848147733164431113362390263022681959754807660130203798765997107811930141464573942406740176824178115273955214903560126221285112560666537490067961313304277708082071132630228273942236711929415562370002714602551857957445111357982571375282793876404444848615856336835326440777065669904128177240465504784084144042492307315097860259736493897605564237530885181404798024442791144565228835862839524894232198159914504342762893177096337181153819676393498962472533536191607846082198715477801819450849537841745115690109983604491952099216458999986459919600522528489466566436457557976388031683014891344971912481040068920352329564940101635769275219738590783960107512178414187965621313769723357444542197517883113393196084645579379865923711228361356655418865428410120722881939314891182610809480444452683872204941047882446778219595810825530092792184553462561780333851128836767199703802956964426657991243625343854372621555747725962655384061140053688802005831386175802605614600796001968801541911438550320294099350074479525912541506727641194332884053559637207559847645626428893075113633170111136241568566069561797223773052078996033489427564849020503718421686138505160675430633037841007135341536326601517091235279916362646653011548842348022218641613743235549070406420587895132357905079386998433295288786081381759661222429694128198954282535059879839071104790621606723694822229655906147986820096970655884195343784950998239868114287909790380461058977668162102225641562878348362022467927332151874417673148596134389959853743328765460001033189235895370030401917494539415382811369821954470618237306755835388931281714691027656740311229590920635782579866509378253594843353405218053543460619290831373376254266730119240914712411298504893982738513731591817911197418502284286241372500295561992289640687866057256591350470191248600550981948973292703346519821102887199600178276927858598294225450619992805904597635556695337789488992372675774065498277359896292250742873166677791038965318683953423666490692330877210074404101390450990699428774753926241374978886146489618608927226012365600754734972401543704518042106036980963720244157507721110906252611563208638327020627047786161128514819115150439941939335492834218572888395828979543134184309639104206998044500445347919341403329419804346190623349004594301064575949507581933345613040411461229132795635199001664039988819180017738009196875091604569444703615786838414498713798108927766804982369134982231478823433204994552367059191620625089189661712338034044911386838423196186844249638468298225490259744998963292296672605136339687077683171119864044626543449838029069854027942117461842665699284998751787424900115922617934637841776738579187695648214913519025458591669769162071755541434554156316396753457368080139536061399300605362027283202425377190992089570950607978567130474506357055134068195352902748764603207796348482306286214821036475368653231249207835378622487080527046955690689515540143190092926696783093291691601105532125191778301507889676872832245721590360064405528391297926485894808609645695767657045096750602133335016251817117090001302170903986400156376337906411829079384397639411886267957187847528676725119956410983325132067316004793882982738339275812809256173727647766473770113015818363162451506297140270240673380443848124385359041597370940193655520053236001197679226940033950841293590339864518144409388430441619956268282065151420226236570033165959842136197099010814988795562729177048552518781425174049500774303987245150491246062362009188795200103367447409416460828144907647007217323438763483246035716812241617044133310613049372498734802859840956923152570473020141348669300115385458081099623289449932435416464911054994637922123903078026030492515977133710595298744436842331428752601651627900864162660472603827925376440673086498923352015412209708296339638635795806308881513817428619120805432844835682644633704093423589134284538165582079721801642362209891928766607308280062549210637396699911661337473972549582916869519493484597781644917880708105984930894408448003117201462595303979091753483013893327996774040500468724224102849720438262387098802983596667716091114816143941161655812642437231403517941505813586086929725005400938528823100402530679073977606474366457419938559430226897838935301909652942046784511481490410851292118918464262276071358358282019614919330659178754642114853382900174872650792749204770812972643153698251954491527402048165232121731407041024237418269552895897817492224506476174869747170943905541989270071164458674913290649349586544010905478773931692721667817276558010994972620752366009923348956671916077705969565321977889511219489097082159901867810360082729369094019523087514577774295598776339569194463497004455039430360606148711249664293439431461693653252332325248138716366733195546615283178681127215775598732412909544871824378896708900092783224398918259375792371654738182594678865649347258450146906792943647715175625269600869269575197495101172326770423006893471386816466955903522653331570118698032783304037855436926769568963628976006087279021029021499797634541805977450660419555032217308628921978528020370459021721685599496964809119179268765667137720056563104451034295380355247468913386049885947307291854985433459652854759269967861763347878166083764532344908360192435517804400524912485595729978402582884783735248532403696938572101846623892351411255160088873957192437176479858360292097991472331601968281712445442773248928180763743916654863451284291413636579827454522156511749525705993736593367586367872885318291724270216025028426908550591505635213466539397881113032689726175941227559081271997232590729818734540288836549374530059400052308778174291461589577740469862883074028598029401286925907975067021096815756255128400709492706385870956497466358690008908471470392365549469853793151959801348469020584918726110669707434832934831567486086029419943034088273462399634770560594661041568024659137359496425902431168876968320453545920981096624351132520651045627818506216936976247045766702002753371267051105041076785733393969111239467545684063077597398441938237564390298611737294866947545133827652505062516782701681393369255187761999462091913805995246537031962671270954297867789530179085331673844613009702800889278680421701860688940420366662546696846727445775714440563389056558951862476402827705972224007168330597564790284967082535178617182434931398749208322199607844998710934765146162312156716482105103476302219084731770079894014164552355428320115152844503752454497257390295139935595222523883763969501696414728846854997645720797836639736057049441953246790256311485502093559458898948398119343693801284152846307048352625200627819159679081851428930077698676791668546932836727392195578004534984597418742748300319792309647828205983077289632524781267781978976388422435021966984715718145611383576305574292523365313905355244807434640787995493552197402321069943019757143965045539795135752159037200772231587166144454467539076714051337284995996275373572222045091526242062774342157843521763859717151732479183279465370158429569156833898728055988180740563343235921123093554586164858840206792411508154602112685312494870098909878697510306104850317442765085517709144312720952296526867006596988848056100886044792815942988981366834027635357926924210075962156658954233119937249085492621575223912065477356227010364655066613725690903239630488092207749122890157289662116968524944111752766796675669847976928495335257983777496220329610089562755168785324341234612166423963102885707735359995184227018629770106375874626202265389604648566117841118852190658683857809456277933339754463101355166669307005602526527418541680164592470699387575828929107655066532111736359567005881425319515993647559290388803778846662222683221841635870931393293815815645151615224147333057855266070501460619044189938164692828532930666300811688870902411269690284067736193167284694595510732195557787564970014262759533941176019093898103697874298776138247377314719180730070129535811298661175137952870685799305707073380929946297884318869310411182505119493115285887584496153577172896767290576276349792567621310793594906181126384487313631663880926915785013558035344039753466456715010343198828174068504253717006129401244425546824096798568105467163196473910079960834191082731861529579857495592914513214741491021692731849259211392786476388339318694241665532578971254742441910866939356515420379845676492824527678249756458052218847897141710271175187622205671896327911150910103127607069243278498110767071048387710680763504648850783130953178865543873976397501363043582816344316340931899117885918037060001554176512313326393807374724911601889897130069962177668898379154201886641372634941072866973008442077082368599207004444075045736538130775581326085941537717007675189537596341206495660350640785667527986965036043168160753990048362268681584153243401435146387764823847868871821130285052585694130341116878169958707576617880480824641881162658605343026941807279176250696702810628519693713617812612602434959755532157169294071889249217482040208890644204509337877222755842790582913054124417316930755467265325163706880205846068146228635055638836393936032040905282126737755023736334533251161970724521783245424203106506111429229554437926822806721090450215659013874229856992665405724721879482431626783157154035530963947404071358104611442893528038116465134235969747166142473658557510205788745167620829765453891737090608526934247800823567991267952050261787752886070676439293255065987884003036479375471484464520283123483508044640864194367355304204043160951977604558507081321474433079167732949043809168356208246293920656567820752852194874429432108784416337267971739404902426775895950548589455454942785129847423636823564412551582778907103581181767159024091526162048397590681711084914554705147931203886995846111268691233885575795877259789334796672712498976994420588826135358606952670490557705450344100550795142830673057179146357945008613951778231732069065803238864454339808494661615292563468080127780374742941409117801844473590129625395043464536417214387632777532193453471122098864709639011852755010687385212225870137016193415995445553379453322668123903769237883779498862057189799157765542433241929980307684170871185068289876064143993314376282826372529456678848322163491552200404863668901716345443221944724188692614865717232449983191955436253513183828681510110513674132439435413997729734753179684489923793645555342491091938192720356383054532049017957519548998765548380414767669159344953831981404016710527153015101182908851681367938381650334544242677332449839545860157706197580479385554197870524596297138782448801869411276430055042678886317612157000579799802356943836455472626719586975707238863587635251367775764741360658316015272278788865760135963720225551395567380881355047229437091031049749922175530478620604975770382788846528795226676698050427385903119428140945326753919006690109783360780856601407393998791209703393173236745178141954013265927508855437736502802219494429450684822772372742845295211691886029894619623602127324394690935482138772532462418935690864780835055818512195219125566253646585935057386234041834583741639804359482334400006085900285975561905821683030133429805726063929068907892206172214026364305634363025663556427760076104086559601470875731092261266221650836190502870333964095914704198204620223273327724427986028623190892243045605919029190491223668524377894046149106363158469113764088185082530793862132572614912384340699214819445140097565157279507264728687981307873789437026532582327306153550726824843374894823066246928099467274274025281247176585792045685825951538580006884023513878216324353468115875976555832973434659935088521763114243751993165180629814519964067230613026741455221106799403764601669088486020726145605625412436043093051033276096492732325480760930769052344237517486374642204690905358883567612266961857827083741296461042309887976169444406123217055081041819154439977074967328245400275265009687171877435085130075984059580240163851438840284959317302152240002276746029255755603330881136367089017712715302512528732347947674543265849206944410485143289881035341896623684796786451294963355462746096005280903101308029676021395595662453058888282675180302021922291537119501329307100263124326222044736715746050249196444545780327809654950631309393088187034952084066896959741058982025128381679518360174537977030990109191593476415329712988598651621844372070228326555034584187744589273922679520542036533655612958431900351797405770676368631233794375715010543011343994453492629628719004494763078875332893952001820141459769650934829834985970697700584713630934122737772265128812190774252624917918161232888030816874419401712702155552374222195106187986606638411859371963693354349793093621809864016533831217890863882353854020193442079136497884616482360443163280225546766465189042246152034160621159476197839424254058944464184188541996027132253580201376578347718655137154253906512493448771910935584871907807882778351272556962827105196584851471798301172392133344731757366939497498655029660630140132731382470872216239354333393310728632038825256597042737695614474991656903751499389544386246465841780919298835668976917363256173435280044141950683984480002924648767277426289281887916494465721235443654158203057473999343266318813464566015186920033946609693108696984325506461480020956905827153538626176541367071494521424106410238245641917542842800410237633033201061133776361367856411500458926452974064575790367272131196967344163042136256573403303050803873673698668389584767327835079112182076050853922585751865190199265951445753687292622602671021205606263336169290887790412030975871196544221294471677415585283714806844666709254010333772058932798288952075674255331993232421351779116831843551190693424186347142289396089591220426734865186958357211687091591284484631806660372593893706593910385478449254639526166294833128332377065781447785050003977867903172649904135694246296516077139689639750903450419371814960820598480154214014369542896194983873092658243341967773920371477713175104204950399664036003294231230016235181038451289512407112396577471904944981718313031577104989415114164680232560026462463308332527301645187727033492457195332243785230188921119526375819892657740371717999069759705160399739299523131227023813131980871031301055437780180278084279866230072152703944633227794452953652065666333834326979554520910336542731121545519726579491139555660173588638519779331356853412422120864378108303391200095341540634720319638129214952518910517013348596163643613976850187073955618461358954597330212847198389443587114452750903692066786836638064639471636078341932738360363734927023844425645025684423958956535388514164595652664328620209929606441866265196075870229331112022043155333764188448406782185391439909663217133138009933106423108088648131032563873820359440209434829832529997762902613588734283971623902247502680974503858902632308729985651981868135756853400194477067166446892160973350486388325443633580350747573837951772754951742764652092443378593827726073647835450841796630885370521412829338353112359804317996095792121409559030183871497639132523810015780111123734060211723983922256317648212678282174629826091648495172137938103256109434876660476917889792938248263138681012354290622864652715550061003261668002062048743367852233235369409086710331262179264972873495833413213800977735132018305101139046821664607428340047649091138849037533033113533749042250213243804117487962180634638215166553186038203578033480316311645165156610161777589222899462881957024353164797288803761129456298698403321881896338572037624926900023712427389759833605828967630122553573832816675050214422417269371028906096270192675363925402260758954222090907235544432328359692514475639690798849135240611722757043555546930645895512439482644052227883893165916734143607615659607583455183479461953192963846626936616389483569776323417489240081423247806185940091056629615593300672376248835339396117322875539445280417999511115780307248209798629026597523983207038289487885817576770379905142310564382527851594896793814902986507140745417587346515799149762953910598048718539959304714827463012685449469693960538445554109950896810190993670724567722990863713903403130316385937549456340410115036284389755622558049369711204342884755214217041205688700200081599398744846898402701025545833900923502213186410845067416852416097252894411274182597866511441257656974822830929076082514931735736067168013122053863757009504644434643817243678615850645523151291993036745180465712337054819563000848222317204581073487099460885357982860298710107290971752758566637776408686584071474183708147277678816617356775791090425671624994335465411529917675645593979174326132251441279490951285479920848209028703549602578867455353606702089104999261189100804069178838749687060996142492303923341541517516895607848850979478761293284270146532240029132889482375895183658953823613798263176858095269357398598261630717527939957086937232753662922864484559807670315212747672981742706592353569985799910932006608012061386427123561390797859815987634394454965360506529902574970101143084032479648439504538567225945836487522834834818074132624883727630612225064349694156450933648896422910463514655184763296005164701276215100520377597162906322935661172482356824681198989102877744639263635787974368135205515600457270838461734467260326308752665316893113545294830174932526343736062751793259347113422728394847379166874992555282966204801370296009199476507223068992261285600184236739045006492111862223913589176157637604052425477000518972574498201479279369483737817414664413750902893263320463084608363141984236763674651504002000633299239019356697078686766270139637636582300835033650403004219181662778417983873476636797143625759641527492918593327289533860416553938973519660892930514680651952133091660127666984289559578035817438854062909593900865584283156609774105762311120950814078591492326371249087618515018128563651233355654808187656509636125653934271414170797184127564938863936557615959755484575606797084384549170674430596045015714883255974801129400951243116480499300427040434337628768768749945331084705169771763531331106372023343151483432686782090289776401038407179748928145011920838115827596539074327486139375739076011292214036517302461451192840707019209813931488611038740679231518414566423181752386704230651527612153579113739009322102078426705648161637049018721225159250463914493932262859236685477123702767101787424542626494224127956231851297376219905674369950337947379195837292126487923149051399367361100091081700057772112360251169167485580037470453062539437193497538368798595480843663741481239131157264444745140745626105217406231869220764222513682827067361914616807642259577918411413863436306620364245789603528804765289479268713855723051463703611370791565819129791730980682263457998727970699954968981033107396112699717144456455970198792100245431782524444957011292511892986869120368899504993378511565233143673546122359730194321113932516721763671375257632959003011430407285284451713967539625691778207693759324346972612617389624438698699098105594493526210832729456253218670074874428645561119706340353854620400663606414581760673053533129849000722316867984095662948294595457702421902096846481711739164691482641886578159776459503770976099623679543777527428778161894672410412916535952821978690757747629214715263125074285575574829134100868310741181952714497701681825933025928112961754624130368618803706847031208680470244483839358187508304942037694014699210007530976707390518560309969372734144891798475805050012827232861687094300027500216303493630517675832184447321389004025352169870532498860342718735591739255587151211129915478221592944240254124335434627501800247766419771415349889810259123441686824326959955299940167891192216671384897010293873311707992674484978630408496414850274702993835415371929822014027753752580426884874142471485317743820037079332811844909941100595942055548323959869667618123370396220554281316667549961029386353175957652923298025160149893450582423337937417159964621102204960884188072810360761277354165488543247414933753197263042642088479252618695511950240653947261216554977818385857180991041533018573648669252140930788250459908206498543121092636284320615925395951179310117116119994695989675029519168478784285218421097344879285478917010436494867180106810857127529919273029200156551809265170507946951593688030770224778720108250579278359277137006614342432755736948904506749236849633711773502046765845075530650066891648002707148188793003905272333959015432245670003454231479721096653687398306990811977057746943389219851678880437266394285976579042946438940304920749182352825556362572089028631176536642959392046113078480720217009719567991928616307307111734594458987794176604663595249568808815763846194320284952866117719724678939365667509364643378804301778647125293722932623078331831932889423693466161893486396891872035860372829855206301627411439795837394103916733975705989314992407894508211447986827686986779927806822972189405318724909795602543553000041537248637188775417609614542989797431084675346470681995229389252825866611650183835289861352978504947675796794215010311847991111143749756460538419433729004470786245712741879521904684943021741886649090361867195007137870341410556399577515636515677054914461113576470470434644100966748473800428074460837846669283479292279602611912793772826132744951491249795156483967135631845984161204404978823406734985401270630224287538939955453933168783477694533587683136485674301247565584038530277434847979863578920334689443416105067217198691434132073850976421383076828389508539204987738353313951271393977339894874968299765843067732396149579969127013180063726439766620940309540076397478362404072261572705525333972835591842379614661285727484913798109902771756024652844951941197495306223792589406146322290364492535095283343231037327320152827848089947842278070153440014497803479407429341273087420062938757355447086878980209845674832846585210548159624952666650912577507163832099010893237460413355394344285718545738832962946446145484342832791179916487420199012437691474001189819118780603973851725803179853835417493344279730863593408439072997645832812847332398994586623480925459013653969527816057613682075611538147943846963082144055160121428253809026946934434572485941420756431127178309793601113857933766576990473585127450429370799062994398435501807383436856994042466254907308490830532875870674218882684816642987458298880031582957143571598882031465581224941356087056701113616318167477999427535185330725209117798503623754263135486799476658119791976596112482050279616327625488145707521123254199541848080039689570967866856179861316350491352253455827299653481635424350250267059457663664547254862033903866815403138073203681113109889426696404743928885794570417635776835762162297212006371794610532193882041520114870353605459676430422974304388392963963139313540703572689927827615304233959667192391264010613676731541767172689620466642593259752966664428358815730896181539225887666521872740306695587403790758977926429082841674775784709021077506740680938907708979006540625099443053468735767689675819267329758250546728310139954262007365279372896481718340494914587904210325399537783908488902066659349965732443528519464234751204935439922491715755324384313202788705343692887780320432901847487650009988717999108622292804457324850688725100303218534337352997779525714996274648653265386821074473979333673751882577025308495604819764570731335686112638938229142454560256949989598203522263980777329379856523920839916000585619417665982246142929091321630647692623996925968875545174691673879429076900319571899561056184170940265278695948605986009254140972532831216362402940372544118976045608510016066187443817984049991878343277678498278333493985346774532880649984966050359734820989531079441602401177535255171438241844929398796931787333167223377093371195062120074431678421168147504337728117168619670826155318420115644794731745472533177927660092352713639625922820275606975759065261820172210822337979262946352552682522681278647881119211356929841897038627474731125569558282962710962320611188076074439024801303197518306097228085958104134547653508673316520403455006595516815173238322913947193504770295778988280675437204192719709876430820615120946276446624807540776825738171190028498593883666173054040906205477686433000830270549886694670389243892746198186007443958945309762500793766206138568511138980034773006334208750770785091318535517375744965467391253695813244395994143811995583845749798950819873698988655591698552419969722851398855409692687031721199936372295666449547558238833971500472630860655568923632883187493306201869151492507479655177456019952363995587432954614207754868202448965183601754589080577132586783387992475316338090627895537207849584956965902024983689083970306022246236911855907498323477111658156489283657637251961917592724769862978551656989873672602968103976419432322972374672436827768649217427709450512788537859006110540691490228386149047965125812150722439898507835379952694361156532843439743051495742620137987374573927669210328200502336686354809777240564255867358281919288547489812095176351523002240968157401999322546639904650056796621209497621554135898456034647989721779046503648323318952536259309270202237697123929148450146000487849082600167586415588568156353167174783005471246716341427515703004866308012968022693651351545622452279585596469667342734414007574438767118191960203824981268458565351748985221146816096357460550703375672400366811243391774136814720084125192572080484553633235913039564504318593005887625564562270265181642515412784516458123401851915193466055791293470857257610915665172141891035807104363888640673967517951198751103774946306697616124185221576953299797606642749513452229276038962527020388661819581430814748836051939181048856235451643536396303445906014366061030097563150854866604896425916689114024206829904326067502043910812666181542104218028806405911610975895632278519290796297530222727169192465634741491754399460533132963175954872912833213924892065973345530513159780925857421407280181843402522927533711311464230998542169553687605616563063481865424580499333908727724985922255772122162524634488654804015321467136432458947557763249842397045925170752606273360883237466548655497682529674389057056973067737014846277463809893135409859305095002534285931221099907824789908135709780394974884488626504174322077412959771519725638517017042226012879529280337597718948103717570364982127957134157117886210999755892566523469018448588182469854104892706280353199676687566227962057270682977565635471827417564170373187508904493695774629516473503787361625295670973890054737183949976906555300014342225933240625025848112101612405814407134267161887897122140073419412672162765885486868873887439643005579213442864350081398562139460080826721551412179254132412806680632573564530366250204006169396862946837600475957655709457109004685174844596813413851980702635270490049993180924713193970587526816729856678986087649874130219614802459102719420558448963613365800113404971847618489051071501137773873657704584687639598801948852161025124107755248572285535919416621850852583041820549753211494188351859356973535537358165521804664347836792563359451805208934374444698881091509924596505204429970864818821915920796654892194055359385562569450955356413934950582353018228180404395654659069676620331082785906454908771494742229979392101119515546254685836895726246601854717829747240863035622197265126548580821724071813365637596404304450170959920965478317959590752174846022573878534294986540360196243363645543181135980889266331248888638339010481546921241538330353380336119127574977028617503329564887585581956915903553717132547883068455559322661843693291519351994815461221831861867874617353142336883359963197722829851886523853178286839296126438374365715208701964388359619589329072340731510367185376888445297128239253324498068191520171641247600691019259436874179567702979665278029343694335425186144957635303817392116413031265607388954808558356975802471419206026153522843442689897151561246565764580413073065478024514302661479229695034529813096071171072639123606115756856874210558254140684986526167298115616373528683595597689639121925428195032494353467507454311225362871874642793412167689922280982952102397167646904256266325333604460962041363760145969259248070201952797025502679144821218940911068317917987787442254026289547593247918582808311227763259037019466235732933839777039957415349467932896003945143601057498458579920006560499949030667522285331405842228507122258577115313095341915072067072206620107533706331087084737825953193669691835661766343095159777212009035867567166179012671558548986597334883074856938861467232138904004919907184806538175031431322606961604303517863627593363160428083935447582890418603896466701690589985247306791188048434071884031137704969881500573350180183578094181839909653797140690179438631690709942965309941841129514666924427114971158921848074046210040478756666253347867544278947437992175665000691956730203095102453593711225049522614627601077176772569089578975863053117645305842004041719774628778497509999087725243238231486289732533127323359396891260773494975511587760736915747066630828744631963937029504105690049861794518486242587095939905583536975428958248203083333203238450494831840721527669472496440858004328686367947325395949274987069728446062268539282207278418968855019884795241468024554408539560465358594282887413550148430377725777929453314859281002452015944990481316376773247352042749259334737227646393313716016592108410972859039877549869232552928229022402923855153482750108139791576526147085163663861523908129138662198851943971549843724295444328980920335127941985723651524785276293990712842522113397944570484985659611219664385865726015554252575199035357392108344704048721351966346093120543204891542247968781576527324727250277385354031143507877998611729213746506337764577561834819754946568304515261306711922408493417059300253658325889003421614117063081505046371658684856436792438922969638174013664902213775555771413607371508334505205091902670325110363986213045999027301635844364555456576698088376020227914790627229655980964304245677812166450482888141191415017193785098922435014671013730092114297844034664334384452886237981311838848110570198601640042751211674523193653690806010201930968247782388302152154415077515604862108534606342991648752672347310401761288555277597691756983562765178920976111447668241099830380367029940016093316168039746425539089397972172407514020117884703300280997794745660171884407267551838573600466609059637432410414929372413144651243147268451116468583989182931253900220693057230607795709651585376633451733759455186571508972844010396120945300677027716584431010271632769469460035634334807781392958656367015102048606933324229130257364931043597187033261159603370545707632685308463127898528310926620928356616526460963497049372182252664838261432531351025622038025880226679197562142651533830498457141233945081955924595130407045967896958283166592184853430081218795030583834031108440604000618592795940676326443313405373818442940910894603382928705711812387122928745369164611605889156937361701354108876975311069157253503288274786457547393785034940294750759047276044552703319479661874242447907870342184576129039947887809292494325755321226186943115531708853236596389955019245397876576891613116352475961873733709634620366288154727578441450567667685163471496761461243568599635652872165488425542314554680023770613946994951236262961210329585985180815116628002195905525315748076718944706659252355801953236315452475018229143565534370001156490512531104372766648940354244456980910978074715855465010684259349593325540660377387998003818200514977940415657854126910440853561761468099610509208349404832236277206674032186157624099631697019379027930572584618284806190462851991728970297649136553579579501113765069422719668312761737576920407119017578225063693582436451625817576971678248763335873521208601338769824587572480537537441625689065642046896370923656495622673267015535682308771327544044030579181133588797379448054422768837682887493349628388350908856359053934819859981898064449211389028764952298345215089593600694128338888522744686073198869282377719670963131844488847035341609768801503867537155089365321392303868639702206831357794206638200461566109670400614105962642439706427729785544345002002601137572658682670413831635131857424140612986221607933616475659793443302174342803843494326926505808777521475963573801067578377919894125850117385918738207407989579548986882898047181530532920626523675937065632632482893521780842399447000441649140905268553206986978386537203995819577677666207972359405268262469928948959061402335025095795189035899771240918046834080800488975581669098550019671538274665228084935498960651259230500079652348556677406979774475228199509276392053174424099414982472633835745895142949170160079750053642184693146760216221986072069499009153954441601831956143997184240113267420755343068587772599524252860390958603285911922717383945899075249402136964867221638287347206797224120349015469653245914361997772326448093095221950191450482113385582793574954942329174660659463915012274964943882543156585937492884673188151894058622415002229965953998962173836167996531277293708356874191018401248206541998309675191837712563428192970792536755148421771876993453617689433363493987425775046634108393613046899163913656555304971502491288768463150510412963708770553632164919804754889811100583476883005943396479910043766334366212202899967784849359228359922314691687649459135200631442454613007312068900181737227723342495016229833604639865789045773047001911957458802179167388104920776108900944982573572265804501428177369385298137935643993790861061799907474241723895937389099382206467162429733908336821541113720753540622939169125105515127558774723169110401256419814175289410651453367394349547022522734140341963903604580133597027398462011036811949424808555876803501308192412483647884668330358844371507956873207576265673587405795740122671156569872978466754642522940704224145595665841408902012467941155712792843802940201375735607506271454069148028147801508791497101722748701225367605667020782864091578291252349035049247648908074183073320812633776631630850712254665508046936711750475392704118436334106856432856212743961368968818446136762939258320189583346510155052506950616641374209248449079426174391427222686832129927762853898330839242195802084088769082777756713241749237593839071705256140096157197018023187042216913804666927180319921999811868676087958637615434058876228964461061783191727995508852904604579875991016815708985851416317660599546956067159378496156634893060412281114189726117424875294323557933443518275830031036982845480177091922930627205802094465842554426296619100071228653154095090336498426218146819834242548630794347900607394352738278388783420461014024722683757129642419316047910960741139541776355419866801973042478714834083788833958310423716709710444048917932694247599928839762039736719659750228785696116174335680868033457476850400310695887632377614094833322051911524851558525264012470698854353339294780316469324307413632799405882210705722353735756362022049202294435654202830101909845892836041701788556924664121277390108610005619775371039710824262567587455750194442851988196371424027411238081324895001205444902847155540135788866179621281120290250268689198684996847924393107720522940342773194440059842023970096798282624987991946315994944713139527611223514362793130835779624285010902583079672864365533188924056799992572820771621802474539069964086573300827983128965165416993786117088549747096498864984655734400936174256532705008059156810440250007949702067974936575587006208584389799210132578940788995007211393180300921143237438726815517669980563275943365980403134660113518188152474024805778630179868848758119657248054932888759742872510706355272034624162418489307272958880606924994183479832474558640827037596890168290316192501840111875256889118099294200651593933898776841663739813851446275682988641626037906895920775396523265020832402799069797645474968044253933654991488996674699313375120042817675130185621198263633810660640510060580397911849955899270354155697007170894989013061293024066853522608710251628364443144169665744754846753529381764498614277622583581855952705044227309422138137929829804571411013636286623015962647228995293364378724705475235992589197244505696763659190589957169832801686158121943427799251987242252658464328997405667511423826816232363886888381167508762264949707145052582551649339256856731220809994480802121902097864096923086318464297066329169230687278923577205311168851178356538882377157851554845542129535317097702391899165878060274557411304511010806746304023095429325807625257043342242312812484450389749777268127507051795434482972797211733473654599442623889539161995092758822119117265223652715499125518137515652292800323489805832918332166666587711662248270664753296524879302520556461013891122912260662158017828627583506707742703837189917605699444096288244417492301691932698067259954733445877004291700956402099662408887289519957868850480380287489041499197665762382296116207841065548137351736539525324022632397043451488632290875151963798311280659842714184754342585557957398941511709957022654674053336662747924219485136304842946141316246995480565398426780811847071901049934662201600971516616471473238312171707177868185762219924049280067421734411175805301160583905183740227548211108023254560540204216810837893438487954826200641599793639811226050980322927334500688649403431124609393016989911005787301711244025378654665020803611281980464889242125802742192222881508935331909339745282707305472924227214793414992543547967813205633900875709448225963516643195466390271911291928000026715478115064189253495440805377535444833825556436742193649208239961779901145094308484172087233270925779630386364244098569187650801333397162985072292335643794090946441574503375864536725605250519799913561608133468199703951702246479176036054511811015009701567089883600907349977513955982090363084764321390220740878681952295230566392488352691639006385877723314207061483353081294662147267406066741537184443893096587597365832105381660621320480914691274604433966365167041810503687166227294321118344388790948109493809525113941579476449533280158442653623231230146237422418279767200713514244901978564903110051741469357012887490548098119482105756334732953195416883990757569280232857098611417031874425821666144054224174430147340297929691772270032916343091581996979415786316579694756518022338018262573350372283536435405752997157878115636302258540351997030284616733505795696284232410862846938439891484721939283710898691639845130111428764671705848835268751372053329757627998956975496234414456772843880452441422269388973434169674833130596962907289851101272371888710208824024585027054978796129480204373193275324222187678853554845119734059676880907937361365256591300085027572234926019852758035979752590791732783299545706493317150483038280056604614629081165897481925913235590247872734412839274841630754772898146114740027739844801263341697167372718107372470342633819332290378409533210173222448684464049035849970484202511561565349348507762221017377950820063414680706818679219415216888355046570807939599868286789470165827335572359819776805312396297618099260033694171580238832416187812455248808063890395299471974696542012088372692262716471109312992888311289143870252847614597598780813805673531934159802309339986583480827034451554335322188217545470508009769099376455446828221868696581886609946684403979355559179805269089941153308576213512803790507438891053099885427137914899657447988733403878260170761761246840537782842456790913046353664242355478975755971987848566039493206354885803022578744605689452384473698626206889205430363412342319574305227788544542030065419841895376566129392010497360789854571528424783166131064688878412262248256020164033794060292986756255013939084641112970715216540172640357192969421991625123662076106090026661970851696277230880689812875084163064610405120926988083887349099232729511353780721177835953212328745706367260832506627439348047783720552863396974702569941525285125342191584181888756812326875529209860080941201873649299105299418005331675682702383217176290460210728315097827055644966822083753788273102619734448995838820951025292351248633893395572543882033695389159727309308951445579368356836696078228661238786152915025177203579947570990637201988042633853958254497439435861574772495820840084678200610644204088917710375898932588327977525012379982480244148817821314982317988593732275539440038558497113140514990388845218646755990586978923004080995711600520990409815627840958632229703654023687177412623257053240692074716135002946701819898638268645586027872241661260826882033974919836811569069242975117347596040043139804824838155173138796647431421579645539173821539367796696929528688561644059964310268932590200842861907764874080388972218010063592713520972088310496944516103985993255405650954063137928737891480634139557245633531553957438076495700959520128263142419802350357058416420402868035496366621803215262106410948800287921877375307293077522569684127390121108406871698113011180549812752021090629948805983476308976432686581063420120850444427217881999626120437463006775397716368367204772209650830272674667577273341861306341969148727563463419361479681542190254112668960335944512781042850436984276240445055046871924973808601615449805230121721817075757119749807479851052296663331642402421541613468036822327037625309827404646445318682740325053211292669159187692639776654377807304108415255870930154227484150786558271674215030014626833487843631703554395227723116890397008548362297126764317466707695521187071496329044763201891077610658078540920686947028391571625504890561589145105467138640388478196300894004025873259677734925708213750638818410559583816073836417604508773739399189370753382066915051819866170178328818343602086693841318354287792656898486350179638277508016649471884215935005269217785277184558720595428941835535720089862101800145299228052996433588807681120050113704247416927963668048646049843068069136520161996693590157195756282027192226843531276976257547206985970471692187610425876058132756761998915559313853683047884882963460558682928177060728283054651172875364761687500660285225302191683415530897607147146262988608329386126702954176306396268470938257433411017117451879868624435308250549597986024154222334857731416910952139959709115063917060035941646865725270687894273383119408703003039958025585825445989072092405067851584331973957320021711496452740640106265394849671699243880973115501015869750622214759608608119595681155906446624869089081660027546226147620109453481902740282689313354129334662458361224501551234739829829050113505199898263824961861837666957438925884988070010395977144613854813513966342712415573174923359537433746970701233067829684073876396560541085448016045354224389638622673248922882067787795612617691631646601626800309337539228977216846747258080545619998521063974893198782533375508959101578099128604880629365153836172244298729550526560449809563163138207602617992504480249800616093590401018141651802901982204184180308713491184590929977077404986628630811773162398538810826096926866735338298301008284336290811203190749292306160583805513016368948567923237781565414187951133296013103730872277747904347613619879792629339682888713489242026809079114128875108548169462045967008865445306965046133445501294430107534299017595047790123541305161860534322971672964538617453132624860213534143840571363622540268902153827053949527784182071813675115355772105920012651200982538865624584033290139129484022423819168134328450985640797801052278750850597954727066914200513800154244086253447303216448402680099488011027962061711193631678331523162807420106490323919427105294016420849328685176547364830055292867204671058313700654571904270226398243167183045015376412256256760800904478503860092572405718326025300049642299711433072591795211004357265590046312070719514815342551304614482518072211910172859430995364592756750426553267797249190835230102853408848047662938475826133937470865873053295370928517468305045269562246626750126549183105001217871656035512139543870789750251138326909793777319711988059807064703443979906864787959732077639729450506549448203403900247844100290136856307133102106362668028784980887590702929640372432226980131783577974941449369438276900798637603189536061113350091454735747070658864961188647099669379331903012736453685118439671706639158960607759633213893035615193736354409611067372670860157365848466625063893537977528279152696839538904243750744779539514853936994262675998964467024830867424083437685085799900975131327550445476351385778211562239639683306757805515243275217494061708097726839485619441491129774158496847732723300834602593919664640447192043193329769651681751992276581656568335512844492595746236686358396446924066203206043529708874308974192129562475875167737701463902758603027730283239585463380145119412448884252939485990871473020286276356981051621684480264835268132889648344503488121458635438076230636476794540964297754836267656503540836010585454832722350068942774249708101967128004416738418949846596716067426242453004364483462044652959127197914397389763268277645705664259450906084466825198699252720575193177764014892962243120381813191838181775687053269846828265091891713878672929174320869386796565254880272850076320887276348172900750184461054625775408408971668972017446090668100761739102397027037706653528822883639105760890184098561537392295542104388445457691121626122833956348161871867013174833018232429842454526832295644961254809347728027873795860330851904143587785055168719169060180241516877475975713416634044583378846692378598398753227225927551875124221857337504859357983995098604244248933452013936034155295421541800860615594099357900554825934301277836768434055856841671850362907634179646560163620993800583165616523048025734797495346466639287995748965195176417607771650662404589210601318794692300339097157434292890088201578517572244517076085411208854172725757814165973742658413226442390822087267644141569602527020506197558335774151051505881153598189991076319519378661632370720610549912390083073675912251067099252648964288095887595760238396083458724282677191611887862808951547389667954163105398725827238997628818973183858870018635884904299800852138825383656083712862954400152438692294945872932754429508516030699338399428833957735039558082066821257538826769716669797831656465550518708337167232514989445063865113467482345474869821753667007240059282391548531222524210879006793926283690545668845456181814705185893740360763990776278645247479023821543861849198760426870917165797872823982665921529812515449876165627293077027034399946053244000998153741357748653154671852728201924182533758267691873325740579456455899366007601952413344044170997463819360846155618741944781332610971088883900141992343604707709391654983177049722369919922664814671794934831740152379722598879136971811970993506132446466937746343772757129875227723106639391554483312142351611776442498393241998116694637488091282767369263493556123236330308359935199391464031472704663599419544426768007579135406985854987827870942948306067598322664796630363830675574407350589260651764110139822390158496483967218595100019803488843530084105226724985537829529145031245828610087476414682710797251704795778864435249300840157080102249904965500723886034617041977812712775054396806150978034480879815116767057589657329169465412573563554225565408015262762233050935376849637984108766253508511243380082729417360540692476036943362119586013790692325706925967107995058577211657007272361900480077424144272914548673414617098598621923892031033991297271640420704724517239960449765049803403764434904425084908775175348613480903100409723619957931372141156840872400678308321775254604914373300527038226550113243506687670668464831605634878116974661750307891339434372897481222390163994671654145717892292410553651749779762423629747084643320359702426478140857230800728133303740581669863605732089568666839042048154866372210118670063871422536921834466461696647470123803282812100631544251980415502873411206068078301119533273692901301362195391353062639558204958674145143184027742511147842309845003208827196500778587066248277239033408840483701877022684529295597958048408509104357615968144712323432906895775587896174395966573626275762897471465617419834859445026849220725820131134534698838786448189305122355779926454648293170282831199617306488465018712728286713131232232079784528979943493802685601189852746236780283140474434098696438567620121307993456466975474665992507719950455590393874300927286543526213392851725369234237309717956645022547933076088707064560181322998801459610215191343282283844009164318236241606994496586829072115783719599869876613913497686028881257001101460383466983181512399611350534250503421453969733766114602181817441068838014838406693455067325269930186833618915057342349072976680302022020910390946329579524552590563162804015305938138367740603086886430824573731036504770049276577060635158184774163243566030423464150580196964916495483193393360345116345818946410530803981577262222551158796203822890561587308702208235250964681915309035766428519797936708317258370215828484982110311165258179552743387775762838890514593480792174836468053360047540618261985540916417146889003517680731701628337417282656588546063848515878776439934765197503594777886597621031931661633084049537833130652403325288150264543388265913161041374653820855808303571149180643699686217434316195085918577582296193390596229005742784162781709993595329343986639802977497417363523770083385737360286516943273771808622066045274347837142887975635204682826579712367096560568798438582625945596668425189388929594887177702462741437379893756368215366909548087699635886410954670308307742565909210139213200647689227576907225275761585338652175026757128496175487559916513309157957293803212961202289515364871636535627738310883938872230826766827464551240405094499531000969851231136232341543547276450663039773969340495668344391889612466950684575001748263199203475207778894224346478963258151838042786885637786401820806164413347580050259527778026894174286552673781391100369437023489873097709483601739013735130583705530802952002426282561099670553486260616161894767128322550770499291403665309897969738117765432565649227161843991235083085935935742661007585315287967875549734001399393940886673007458815153849294534060613883824379465282580558153796721166264543628189111239110880925360967976667507123505922132464560049339285532450770005681854313593666874240047798424201122237064338427838234132053044900749596381658370766451568261551981744840733155358598979079564939405113471828871031192050956490761521825636499832517525679872185662736040893536577973676801091823055503712762088681693971024793146785662919795914765232098219749517134754738964861274439608988506118216358517245169623746961668901146008828779680438432538994193498446681819722298390085117906811414208729992099909631763851028312350554076560626410241576839351038159965302122446913747374245612494182990681469601852992439189356695262384957898675013814248389819219978317594095152607724639109660504720827458691666293842055304480694764895940243230755636922700588141083932080898505787554640165782866032786835040250156432856674934932735009204360708981343952418639043635384916981168027596340832453996728175384371982765457158274852597864096582423985662329752840933743988339754732452380066873559849545781325584999732107307608555333011103527452992775815534585452560162616353457922861760075315981418834389741803185462979473250719938981606887447200616838310611770325875303692970859031733007949328803907505803376092867672617494156156828558140685512769470373490735798815800673144049875191425074429655128851360675160867882915595856627123870459259670485786985420942924110362483646159626510373827422550886615094568906747355401305824704476016273245147324152026149897923985276779827328457737956424568025430537953517994827595293487644151413199045708143143474203250036988006858504180965426550206195588829685456196140414211961839946950726244514639415568630070156691424551083337923307622509645087234313250435873263846300925123027341280638841693548563616969526308659497670442691407815650227610314681312759706142997967547408009718347088931444279765836200241471138285908611691736752722322438867181790073377310970212475621181416137886454573058113062777446827610993723772283534352538255289321311309742732939220016771381292525778164720956512108403290928771071387566292558415081083280704905630489145672956821840526864488373134305784206552215537271223271414811183883276329862459655896613762340525615244664305905631502523623022844445934529959074996695261082378632915934528624897195847177890446910016403799343309168638150141039081589616557132373613709031878355429862331711103259839932357584345460881698476512149503592123528706111814582161610813640832366872884758962994721453588368137434989977057067304439186637414261663240157808533680427488577233700645141510545972961977061378442782451467128675569336811577404316084490596940883914385628203974369659335552175401514148843727283402950639040663615206738642983195091045726116563624012777371026053522665002461742600314862476972887351823844522346560158471184569095578949898426153153419671939551960295763784692061561771253259768542288001445396156635152234572593180572033810048279404324192797212607851046443321251811481911441108839093407263226339809965230610128350921372462283399044691212146450285612372546495474092406184478786491139132405145661106026508250966582787784723567653677592353196269233357918083171276673356246798852722351352336342157073450415359664918453936551401191434117715076854403417209053447282998514084486401075093219398730300651869496011565460629409312469221345909525116007568919658927164665819296199950407531182134078414912738830840187491342730426779086897958296605360202121592602235331978391858011272186533419280659883393280415651437236512405937676816133948058778730556523519734075221355545747915405442079038725318818128690812439258274308123848310626195775771513568004822003855759907769096895308850153971443525125982090353188977575290423079125596758145987501316241926436469937975493731703988264291926715658056460776759115597113571993153870741371856484342658209326027417018523032596166598798761077409937079371161940272273020074331985253807404650732023179527864633291599905519669672433589605089313087426428254673929092663686035714630389577407823333380730870183174204296520874991719761026388236961712917689033313530070306051246607413220596551804072153507252118023584248321905247339751267861353855447240526592479953201560602794430718832846945620589881299326561657731580875638084445873086759150568893567441020847735885449646809070222317543622033638211525307633374998889507011396920905070920995182350928022968609577306838328648677924218606591140612751815749288156661969950336992888175170288489763603253653196463457862903999809146489198459150510617119863767457176433363185681758922737963515512484974968493194900347698547044920790769124199327258980711664046863509166872120105857285725007715719152074720116279889480192774500897188414157534827243703210375277541163813886439792217217411634788024686934428254389561296219088671340722337897391499096740268655450461172303084122203550046347890999726966774842840387881838235663038126204012154670182758262150291363153942910506629800669135647002909399614373624366751372431581128864114224957628417668135308244658581240389306378688043936594064109634899659751854449230858243115935836133380276312999308119305729061038667386450958412590092626514532423547519072981134790525468562705400089328474244997403676785111599153220676275058998987081779308074634465388141592942210762295699714161966100428775922877548966848660932722804767370244000149163265655297393966561103505862591388562015054235321242620813195614123352223199701508711192630458782984867497100835176757105873579268980050666429140220056888626309456800832713850064426271277440418857184509172237045126705413805457351147922223616038719119208774327839356411060919890421270887141420113014764202884544663484871318569852525600024722993691727333265868923053538496523685427851024235751190525027862019949657925927714797497245209165599872103279704146783486980808399874337790094563721933725328486507263819906456776508890952690886789446159973651509035320566147155486714229099753751762901031535436797044955451736509143704777981497291309946289112611016883284500799478534587367905308638997148662384691486982806278800088119130654717659950705533515146737721630396018271426374324930346343130881867072225213548602226439489186723617741955312167759842817776183521246786316575153953014072741472677902494025961409390440723221564997398232908316269938836423829719479521054691137798164204782674225922981833029331652276792173079786002984768271404356175645380090139350730096445437356906183170029375508873630793875978256297934654799961572344047880032541356106018960584275824046392758182319569477236137625763183006520920303986715380132141888940317670464275275196074991414841734093545832198317682768258596574815633338202857373347662231945822444646513319572379403894667239446983086218508487849539498686397086109882053321219512950354535768177968895758810464565554069462621991428611570225974358341235466990081450114428788638077264270377435741412812398908660833203328240359261137614975560152029797995889337090198127295649360921208865889791938364360732137371486387053170036409468124109394927323298851115263728742523843683290160039522853095886088839362865887985628497890279283254917028923547913919681524687418423472175386771326649460793968298794403687164731911433444678250036420360072176919313206518230802907682850217062043874862205141910983986744619071476990957667209350681034902321806507153253282095959163024781243308046769332948548859121175281658430160746275997001952680112654068799147198977613376038467469985853761970534534589021549197641939398476986526241638745353908453881227362157659990096758476330607149929666054388952153946900052268422895282780809245975618811973954200199411408265051370054322056453471580020176433694849743321615452629605435316217544171121986365143425914634153347700354865695924014389919383684491021100031299998394778214273101385930468811274628786778624655953916365659878156273249684934982966585653958834915177225309703738108819115775560106310225433041767622612998756011072048329493725796497636663623813772186257288839287482304281895021338354246705323100111737142237488708799043536482517278909802371071570884344353308169263544059938911587970671494827584216307793298051380675388558666777130332183082495388416607873688888615295968754550508436593207187756387820198300818552504277998814662000325960280945767785737349735461761493597081826102505131030559888212003177105303394700518267700463086965301400908672835310777997171156188978109217204360875290028983282248372800916762097784024100150235655429692958661126484326913292563274128412224651845283040734151283303441195074450396809037120507092369147759354932161247567461474214785152615694481610732723080916454563495342384442586258341833921925767341027764340137934131304589929696365031413676740549936772576156470012836580976825700614046785103935315702915026814837810728974952755192038043971759286439910199533298756142785029224950946550531407108695257905086622992501052816374461238815203547668713174481880626647026795845567829841980905939583099135274145727648830914562746506387297403649587595795745759156383468413460218913133742997124714093348107927924619105650641644027895913026966511399011909315154711382669499938142581354409357076441717013370492157101104542594141484471773531487607173123795748238912248197818043155436087503427129448366836207197661813890331661544884248567424132163523087103118392348377580426758904444678113360850211537290170552151382122163027217807500391702558121634568822867280349864005410657690185949216863600463698237045647798335933752836865665152198507345293180107930230746854136539145237061435316983348452622742281168445138610717580967640262501012434013017536702915426160490998223170845469762812586555087695553581081121708488594903768087214127529869861718291250356447909408903578308259981790998070325130294750373573680351829331358246373386950742170171195469471100537899648379941327532664738173813646511416825445176310026252537396643533845398825825071890558200434909339633069020982243289782986793234344097588130679536323916573310297662912133011103032773586483798891203948844413711010189997834133417476202205498251281631974659397171462031204416180129092382813925975151454323688288822274758490693799418004278389525825805017823428752529641491708675619452473369598995842217656205585150614157624769985066070681439030208671143798498529505223852530848689601455816379560339044206605206638631233714335502587851574097996192006249404461098625287639105614734248762810769448038701504103874043620476704714483709635900800501737047391629174247770637450435587574051873649032467839248590466976647343148287646882022611007783373171466145475207284000166844224179097497245683005557667189357562431838063262255634889873572980032974433605321347725961777851384580602731783438094042523399867228227190134217737798524998102586457060744208331572979415953132854697495709116395303947214227351416450406515743702742510635380966219318347358455996486382861226567210834563043397407318359898874292753603118540935123488262626173749739807747340001491424403308192511651883153122207546260820630103675029564571277085096315358347022592666076180632126807208976983525609777419945952261600075552725143523118601575971806699088613226400566647610155644690022955244162229933198831907618381417229432094612397017304183933119228089325160110834928213559861826730008058874677549894508401632239049152980443659228692640921985628714781514233506968599785801425496450617450200385036861489012474432766798241143645571847409098528931826925620397340740461076163286953862397543798981212270765214280235254393829711470535221088721647333458042445839162648237475597847788021913831756322749010918786759431529951516971030024337290916692865082868994378739948510670624274014089279728462825429739027846087660104788451127886776453657336804494740317626105968772525131861678588637199183181359633526981233692250844732923897123716342511739523564808264294374965532616080319478843560893716301722629548593821014107253719027454068618311532390557598901009414697320091394574856256434095576845544222039439678376596525750382916792235075111936435590501278103123351581760190876090987388357501079072816711302101524323942242224150490156470373524898041261566849427682482666658980117852808446203958314497385866150120865032623558903146425436490179597980828685547770963308699952345338383587367571330773982831008083365821203538864846071885461092939482651463465810390934578525197391488991090919228705949770669835537780080882768287562293524520063559771531710120513616995478747158840695057878917973736033042119809722856609062935425461503820256542159695912176707551450400521172614143722037797618014283283606105872629081179976044837568697681595678360301803910306500049476780234259810125373266392989302815057101667739307159537793288885585060243386351860933621089116903573474883268447758887712406641150505647781857662992140275371700194497572440852419917216609256639887067631090669085357491136719517842633417265597847393095188162176516996194527015083073929919997596980384260322774573145725164441263071283460582406529361866987814315142625073268819445267775312495221042101678575575695334406220359621197913502218140775156017456553780731005164699067906456715237182767020986563756395643325182839136675256011086880931874052369045616730202584893158700599166481426438614917216199847575060050951926030536914066715664127937047409311117357809652741516758387239483486833154159390539840107847926097068740782260585537672932570570568578542195902990341708337840985504748809976884095040437509791482304410084133744634545438272914028823274023647089048836129779396874875403793769903432685987412680903749329759851963723170157183865957869869842816251273143200388998093197783581706140760936255029775418603541660041716607635614838480179964211035286169945195922589634486494966828740914369609310377962538182278076089076563680941616235865869727965223634116765198990646511276780584420016779246795063914375634112191864226385186002454013519590598349946716317502596969512094465253385324800616279124080384448110518067051347813853880582101551724026895405375410814157443576559918399128021246814225031185603608564679556215139452811459744569753913631281634388774927228174882418741485836184126505627083628696705536783008027260839126225479908561849662738528911007847427118710553486136335637117320649169719459087782459197353351027475148019204623084536393329024432028196464861465211047264222514217822809668665161832950966312226354944921607451611308331777473270747827163670442647366416096992339498111783389847797436482261528376407382443044333622220918279232518092378926251193348324948075326225429927418079408877586223073310396956234465733089451148972643065916770176029856008537364791633259330825936727425194842151864467216606399750193029911583824924706796993884718379799850766978350822966455130708406847277813653196088465037116723184697724823568883304291755556332630448126337135630941476668097069084411065599553902251761030780645034450585995267194243240032446316256409916157155808764976797171345365389517220534856662361273350125100049137741217243978878349943490671371717133899449771164684735943551336401520870439340247632414584735611095506797547837457593699713892753394212698005855015453245441555013467877501874651033457824471221444447451556887450420835550656865638936449101587793811089558861167422437460561372421393256506580508710147470838193354101004680650059605922756167319111745371881385430695216584191543703147770624523029393242592449035855511485940622694886697894646229576573291740170627082243559152914044759315770567755417969866761248736534116753944832571640686827007660841711719443167923053995922236178447359882943698371303097675723449519103867210517878788115517943989845651959707747182107871186003751002883488302555909814279228866022367625678530984988008856669850497548136701961996474389954241646144355130128601964672432154400205832003788993586673681245976508443870711047393565255885521729496574520482366863344919124074706905521870488371973434829579747100446887880007044186028802157037752707386858582472472652039294891377168531981654737613813505733004514495266944488303767424882453670213712296941315637256191597396718165393406848130489944981221615540531766697987369058380973261870254076254849018383848765575570931697887044788618487959409961746510599095135306540313581406180248290258979946135358623289841799146016248412321170398795973790782247624948089358896413392422482722622009165558642707220505316965560834085082514841743360143450448174080579758114979042791995257617266349424611114332193591628315488812194810834789609452535599660682431891982185763949666815680367324878568503071935478506599842499428832614828295623007663475018439088082884980593070682014272578105611674086122743934164542992266837163325824314739066754868049514184787964858242463925795615097171867096911071818577191587580543597874707789833641381174327652226903537754426246554840525771066017570968241100703475124502067826755579189366405117994238871317410588997480344476135708729082823325674742630713017046381207259685496423890612828777406614197535700132508379075583309955739497015917162098464176890790986570655810532799600486352574925291516747263169733859154516349845978879175215188375859365956980356543468760864391795857099346286907597068638184322392668267661097048263477939002805228555733633467786704609126589368030459419617404917844828908140216671062947982858801334215858850830278300052022049910296003952247696174822245102902209638576410935272526253952294662727451601431429899111187582688378910494249870750473318651913874606680539122633663629150912482694363167647757452125180896814195388043377799973143423362255672665585673021502101920085534587886401764387106979308813823005640559177372053545729084877150424910378929203358574383539959048636860288768341304963291489983698702876611854619605955671136418727332540861549750248816814936591153900070615105200515519624916894419392807940291228078406985797801002790755486529790359381346430432483697444442585910569140667157963224054397909107074905375934306188717690313175187286639301210523839730991381903765489301792775424906705566661263636216321143235123200653840043286916933192447852868776565936052399543464327859168599903975633695627845687738341153868410175486055607873984173363341503899474046232194387822310172513555292916750865389177970860493336900232694605358583986785054893254291831182163286716509206470538520763612155289288310421252641966659779236388502046108663199769152751848781201065731187411471741415609893478338635791091285996353504286667754531299896387160366918048505604887151920792782730662794543217890174687174493754897084635882756399556584819941328299270492207783069409575623971790485833958091569304724942733028734639358495021466221104895933362883765668218060589885482884254575172319807630212468231217491932061783942899531185831026919857813999867559151553413158210611958017213815454739470162326588409449358500110654852467907996888414496474298653227623610265799297166138629117656592857552084406018114531803940956732183361607964906425389332616238190707420421292473351253771655549498667269745535129828067549345924983218454806676310362127718884845051850929200234677844619712908113719158621553657514349865451906450469110990122253270733304971313873234080903333011651192094857525435643553234260450145645886669893049916748482840168419427196990532028177058472584938985073105423431986152910482223914237247630004042423797867805637526334631045815291626733830352769347786488552734925941340711128587624305891603918533024300751843096430928368658133089344241480142586800893419203073513570692897566580711462101358090830728789726586054302453919362540210495000063327555442788758097734879248814279182094485702173872034707638810209021101899890215960639930612567757465823719260761623583869012893926504752359302488526620822579194596383212893863402955996293446431898838978791202560913867518183452736474431877414933401667715874873774394944063440114511704322401394047077169687764420567133578037088124093374050389419669154300647554121545468236171737670203089322411276622008126978156387828360163063692615012310403970548849580098866265372109693458427207483336831098303105545047858047546891176045856005243487447111177051849956412330235214892563760888100509303933843197534277030425289447305788283898817375769946698913410731115590904961202225595061746940623703330914068318276637319091867020458866440938519981338418216914656574379123472535111423376967326330742591766333490941352796095822672936716287017165008192678367900492187542862404061358091183040407401004120610094674853467013696384987979821241291194155274597288037281986521468401014463813748800520983444872114914913679729118355103545722841610360634477642714736854765683394801659371933457362945145316165770539434238011553090097335077302691202158127082453979463158431531585392339076491416482686320512348549591098355372705480825365560111967152017048766630335967124218322551563366662892440139432064248198342827011461892622469354348676620732288645509541379450247019660534051432486576617576180195036001450139305936660847403046322049410307792671169887442793933375961443380802990173548925212230750348235392346664650067757396752488291276969705643209577406357051032063295367759360447089926215633090324370895327391698764303108424234114854951375754634387699599034883227615702964280969359796535656191236232891763598184709065834343415932935417396460239750807199549974288057220801602729042088566243373835893461342362951058648060600211560896648900166157059198853353902383050308112576512165858903167902565601324240248815222048043955235542448855405233183410645090282295272768274988245563804632693255231987548649303529313279177412574428641973914539118361604509920233400470390444163008189231792738961518673065758332634093023810342896017217671159827353602715871318600862267682636800083163392925906431434447063019358454268460160213434043529187742979703099886948994053289422027300543198081022976960392273132960268079919760114194267373632903546539507549818380847984018691358582280335897232728746599756715625026700914539767127399921284894922305889998387398033882156274531791176318550515032517768672507163853711010704792404640452851315674205310667242985094045153278440837149658109293524173932563356584790596584827449229901704822701235565219428579048525147698861262816413062720501653954124967088590818989433530959274074895318546951990855740473519514797257033552715768305335291306920527955055804198394575556126453990172381038191156137676388611318203581073899572386130741776851182011356516519893968538174646492833908412778838992716547760722890580569514440411675957242864189370719054972306049135861036172262837260979175423956251070097606603263852519574325622810876595055400106587999091705119586110387528461066697324145326997271980889004678119526870003008941292645835334184175401309037571907712892157156961798964278628834133694629971761282791617818347845681311200964039816189222708124737369884710065276837487139600218979887652112666262256865308294970805977118508902538681757144666291594607704408121180636102953149663981493672076748153914190809452899192650787897192093677610637940224903831785978831568165972612993260071161174105721194057740292436621210269305500042645251495829926182122468228089338137011063332855451789300385049260727340825010037502307935159760387407959885567252323663713297384198315978415052616448050748507675472219098646232801695186554328136993043516977927205387021011777214188586205045454722204311311806047952994940765518870565582253572817301488466263237393243490529251566288049550096754660924348276806956574838713802569053138699215583722586326950433680081610340828210816711433986491224425396319974876113872864355714318162728383619474148921846372319797522221435386142874993153539784922097509721305035555829212631296094595309054676516219425797624104695444183472689714117244419633036843015433301079485534211467354680196688168212803161882290949810078012101029357641901107255893161479997240414475682956875705591319943021628513248259957101969922935766919770526670857352826538289607454366185963109557063983433524412890140214641297747422884648998630663647819320359993699738534718842889285383015145926295992674136336255413393800357710447792937208786149140673407044780891092668042697523005476210593146403600798422200388131439876876696696579595103211032913081053644044447505443536023934087431834091470723545272978059358680001975262078972729600959063440648601110197114118759597437955134987311455324750562017872801795806303797999726091659928446321753909716810486623140910521367385073016312328119991859787808929126734485455343735752198959390134501909609349458485021110284799858003322538319899329411649740657811046340803549381657981295698236255824577458556734137832359111841476420268486666036600349424014415042499762787685402918805102378251101110606575198579191068361485203210484952326371625989618141681317068927610024172663792811289663270470246337015750555997220329540713797017674131947453884092579225260267217975130924040479116505198834137954413643647282281968572387167621377525782763381133844745358497440278909783283356518064161621816049397031316878247021536154013259065116672793262384199909236411747610360005901395682084988216042320539487703177114868133391367881227150860651710610431578852360988423936296378874792044302470744110908155208998065258400505196933129752003720466450896841424097518362073145114965249324844907389951208888564186334754376075095773542277779111926207130627463148757514440612628794945636923872138712858354171284460334669759687493699183021148375566861713086448458388423548328143155183437134272875415456610656966976709654012737211295178071467742787147441760608293744245616269912588552561363437137337135916981111784649031409120709294952822667121136745316245387954779745920459035740111760599846909260707500135147632152925001312665182413452786440802907639096706448318673047765730686794832652751812033509030537411683402981274515721975113023067631984594114300753549283856243231624736420180601486675450213956501631074971955300364246515081711902986929356299467072093946741898182489758259745628084643839794572846395913540175713298947673554345842507340186419722129752965977652913505464799153308920880365368421304570362722913766184370503628104717012635038888074490688441998812737571484587057245927063506429772284292098254818051436590086160646948526345164440060166588441316170881068898127713746571833893696544564529556365021880201234182025388138589298231649099542062562018649998765137257199448316778133666047647146257711129708078520044293802221251907923466731871592775171790886211479792375852518976563919731115539010022793545098368017698543952218114756893499435793269747061271490438924956697324815062995976761628033396646863841108625315447295795809182165640591878449976542239713692188296001038074228989862974789161225878584912234524721871868664024240288516669392965382922986261953022755343397460111930627072995523676409597420529823459827232049786566916432226738642271570388041234994304188703289408469173974145878540954772014948790196207686711670549177204465040202457699779220057424873673936588006260793490861131789487492305576483832825644164015152667347015381427852141343412989468671166666989024963175245141566110642827163294519512051089611655540147795363976415653457570575630647070799306030877197707166472913108095503678204584792042601023720783245960363930292032999851986815603392632377089068544441992041037248420287317039036546997590392851366750666243416864815106474943420661348100973492255794515742230312956253440876344486509736209997379186088713903219172992344362055190004449450167602577676620084864955597649802134664796975552842797548423705607367171810194574763484656298523106656900002448536695689400394997667462092975534062479764491354752773336735238197818003968706714856882634008058723996268586691389140856950945289665981551369707289079825264702584964522989151921864410240447182450349362760528570078206661196080307882832830548168921720171383061158103391449976407949179606757682443768669233088479204004078433587723851587453106920877904395137832980519382245854640188713565816164331981609268865966966410175668921693573338394499088553661445113268343646591357306297530682797258416568603334492036033978602876654781316169823850556669947171844794301839893254966649301662279382686715727938942548868460292895516342191895566526891582925154943020672725495417035032679311149593084835512115972890462201265900869930461680447366677872036795833787178622748169062390906453396147401368479855859475848889336517569654852235805675469766074407295541922617534652406685257513802842415195281177149949282252135190061585436644894046289528047878531805511976846184542602065845119853538913926654473642356855549438227812939604996202809517686132997042808929421371998843824550584879064726485538166869783032512942565402342617786365712227683295259400887566946997269504490132831427034405551843665080668568464770506530559770128025719336566639429003089517484307014048062161906898271084960360679224435322777192520569394580691144608885059887594082266519328785304336378757455924857677117558457350100913034069487825314394813566896736409173682772472509473107899541276879679101829622986731021102853309033226117153317163130896532854340238001177905605325702089307601355151788329366798231680618529717908677581932132581260051138683187591396613908422585122353546021063161770480417693163375043307077813624161403600704147195478911003537627177072162339248375986294401297221069531689076526735821348343416136619316918619029261251060758305916749091439377300090557732363165901958863827452141199806928789672621264299020816243166813242748806872045857241406674782130795109592609422379147840474369201960452354616116954756746233351615200756885073954707743207541039688879133496434937094512125530415370948312207490678170083613121534473341690802241022657780851831388459544012427911705543687927778936974359423280266820155759550904924253760122674602303617563880113122813372344184405240673081111174823502353581254442765730328265474164032362332551759633128999568226902907209375114543120409821440692855694714685105137473318921299104675350846982982012610198748924754679904350729735814478770101569001746059826254296179697409276659353958755811520874436189005816096308357138512324564935632121413789167882415051229094415782497311621124532388357948382353154348314823133749625719580618888814680353619638528940793115104965715046639842958450452324934089742669490941935527297595097851715921432072573005428777226358215431515547331473750687581697255331289428751881234932135608208709168804797733039249719279731134129582240450133355639757729155634315135245803373117009734242766656735066916633249075260157543547744911000441067808823393663324336712211380451645482477769266874897646765402741053104066329317553030839684116310284528436110793082938184435081838445975279045816161214894830994279083718038518217090903518672028846786730071127000899728809001663216576806486820670306089808507600518043075402589482784876972346495624532143976269331583859234151295113675127000053962155343855179191589992070787335188056639927213494667643955036044362812926575531003736372199701031556049104885102257323350801904690090769455361420872602416714108282722597660077649943115253754702384895783301023442065707547433650851276029974015531440739783996114533173606122207517680768166751045232222263686527749064134660321559044246033957404802939009412551883062286628218200874660089889944279911784845804996298860956065781588353963712319803044891496938316733034623519447501152315083769520596274704822870762351794448591357812271140171602509330912657269544259957607304883163249092668412425879215646719275316086545306774962756282970062621128838292394055285727343831523206676242928592628055456503639408877157499379333067171463183296217926859375133628924122516178628308034226085805959682856596946285073073289857605472415092335092063254185222743290269195172208778906162528666037027348739087723300932869443356073067280677372930975379997290865462284218499016330041833239919967649688136562991019648991008177275372608134416072480822617203716559715469613506740395134957078046054066697158489656013516661215110704024107980432128629291982960504563701862591019163339408858544504136303653626015590470893489282670043561754678469123524705962595388790288748423836621183166564909544183082617994369227624239662592451972385546207621428815903221361299874816564546791557032481010729655378292007965998408901192009554911553022056953608878346517284268689731643729787734892065849752247869092935701453837671263708627437561103868091400936320196526978731610169237700620328031137415488405194514754433144649093426795324233453434642231437969707106913819864906317395830140868644889859503382689617306317531625990530236616523337656957150488735997643113158387851211759694896445453935306626987425312496421933569432790168168586861335284954537546517270081574953818313973156764446193370598624422100302957872799041762187503859498267850653149538518510787019406315538557846316477808881996221033528946579660042224491183235406831751871047703316868736517456165180528227659622781405810261379391000946776350865273450050440215758449430892305583947194248835600224058193563993722636989880834427280715563535740731456774303108099258920655211000453134804926259433981114040560040914223212893697466310395975891584748417740311895661414137652786477563878025605942183424120053012369683076659986122218690247587296165967415202929152060636788823030220097929354005127308006574444122708890230661657963024863125282081587983083967083423756165812717751526362154557987537267730705509909383312964394499969179942382364495936881586301545934817705215223358695138147493009184793234988929014074938871738005683752305175302967803636742394652396315057682218365206267649558119033997176843238317393216019043283920373276638712633666357704202949589828319479940494313894275693483991072223833977009556561352868861794427333536735976304043628364075148556830856129520354497139881016054984242713158212715907205343598426375067767267671024528984091204896005908186890823694293336012346430791591109146548863175775564061644531974804071379527483968683060487721421854622853180011394297822621582844591908150586439131060164262579155400753629783328317838244386875076715668191835463354921858082591416460918684609432565910121681572810712153138927563446456240614983221805325920528019966295595930940933705880879022771137122836028807469583498711119665529487252581211402368878416445181097924305352842375488236602861434268772487936369205354443007453540538828958442169967858242434630209200412800733388069929375449524988064249500747223136085334203330994620702087791635035237873730859818189495190218482686908571181763539219012834636280004095391821276081938090998758735993724921972567900258385222249723947979109137551962942574285530478720616122469029614238658485659946226692751589165184126361339350783813090210644049165523400415603740894394870377205312923434024947600799601201741882968721984871028815193210899318152699531309937272190618709576652159954444523173205123209303316605795592852020138957484734560676499409811481434577199277082269000372907554792942671388571736789773848795015701893797250481037010673122186882685260617885423859132138342044976463008473945306492164883054543725999425095122257400892358721639150983722611457037057175843702851020448137914799671208852048222047350937755746351841081876406240346391072666789551976072904218851157629813966294829704732922692112464595549163584879435393135699538999314929922985745811850691979362630894743460570787272560422343295251124092531060630193941360553349215560847878774892615286255910355968270697369730844737543747111908683045861472305447198655753030899691449337928824250739380134941778503404807743222798392081773665280192032009570272895963352531125572142424539701498665350800371247296519928957394732851189960786790105361629263356170388638012404026410631599507233041166335780668428094405989511305688500997005481108404561787442623392239170737988444454362335648424729722626167520549459069880020245650524486419927447137126620980488795602752453896879991579531208331271914245217703775867207202900400769780472128220321086184704952188016775822034623563151267111239482911580455460534115340518228143862754531873777994036251446217237887309040038576801811835135592808543676665367100010441331156285732181455530021611916360490778016201343967587335810812858318152781931447021830446132233535190541450918925979726844535224220801869387432641059403281833692620764858614385098327223304536908182628413047356389268781504240538570759465589188617269060736186345833377216140470264837953857341695436067634229054994726610157855789408502943205114647210762856846466929704538733893172611716815465866586241066053842276642522773638134959297505740570480778767437679532376066885190788148314634634893322938697630047184261782454797226307075649277644628196373080543535000467061247796691360755491868678677025406708652618548052258057256691372839895688704821800260061059384888532745271550606687855298434935860410588022666252153844619937135499028489591564190543849970733885734751947812715640093162894891420346535809442962595730611527460636228679802756597236088629650450866698917981579915409938406557372853338834724271358697441063045171828250110167582414709920418897342359537711014809958989417375005987420542707755407918865816898217128421097754481729674407534133047612317937996643197280252585508080718736954448538874687622861945938181233924711255377499087577344277786508428072581320186172786019246146664724012768234838013409868681483758282482786086089107678443768395391802382630669664892046756209818463773209003117259187852537096217572518024070121731215729356096037133680921961694113160609509092822807945885717881401915763960092305469725440327266087361849143174586163084348419300439070760498388185312289345837725219204820409931742633198144494291613400986269950507574717302527753242096648948904778805325849636916024293473501177142675979903499489142636424587873239084930687293921276226595610549590865524438396770031889472514945568638169714269849505824908066374788701786628496985354027059346516080604454635091979658094447249732931653893137940745682798602689104566050815757254146249556388994503300337257442686759496422238726305438063999512391158974155745416199794351582183988765521978042601428097367081550569929271310727712338378416845200696417684994355908572914253083217023589799072467746600742077516462796642493194475875779306841202536970897195727208918167700230162923231009906614833963816691849532898681819356733130547528130907100653776686890941223632561183280378500053600900600475451445855050425381818642597651101676314865777493955672614231711792503618079132176874032559152991929465843852690645008839276641470580360410954110420212701429128613967525610262938995563958736799185084206198638306549592468721895285144103176577790053323627087179891958149433884835794772720469743374053362019052029720120103494812033486915104187016588415948709399934238465248726170486916758262683980054688146172342902908982731219190719087113843842927267769848245731051171568612183274381260874613533519605442968008819866159486144039139110717054707533803338035255796908280877374206785487128647824991857760510491125139222402361212814335259043497273932545117170388695092649107962463932262232982617057392171846523889271959821119173072544929517353920738190899064463777603910734848632837197902921624644182701393957978915748993461650433918712448216660915819112664998344279243822432602152959491697008617905588252466741574780658286550424194032537904546376467642068101870935997759384088419933735656435123546775490280745942305714527216576587411969504882460835222225538732153785285637295266020752100742829317163391289558935882197275705493789912913671930013019784678270062896213860589681210597282484061071761421481041887306764658227903702514894852027559630785474084417518417381341198805369719218002080986903813491318277119161952591999934314633211708171310826086098780939417634019007006331714524736581542269483996254880245573657567629144620359796695749228458396774982391650087348777261984347149798790107037849003733896368923845149211535148894787362911865883668774092316728696706863443700156782755191596803056003159451530865329593352217169291808371539034873171782399600524709725229157172583403742363270246154787644173672045172567105352164963307674334520139274701879642073036199473665862528664593654527396408517304718295935744388459388004002131713376630636465915002883941227260337783281503845588492206947096808153559708853767205612864331538191538025433302960926757452533712239832189147756345961987033308017611868096566153508912514848121067555751770756516587129982423407489556753611392382078069680357948577514556989132792135309431133421145960463480318354899734826542895958287882270183185948871561481368398413042502455792671063548258350844485979521946403128391323660895376512281816458169831456770084899731431480429529523689446365320094051648407745143717025481185017666858818633464179386998473659003674503235248258171882250835067700560329861970483369494208852398481044984486900240643640485155476175230317412801771108918291082424316507439086307479960783797716518723177436708393682334849079284252131109721430953679321642708172250524712264755012292059162730923853521415362568108863710153143353771678610079568893679878808248500974714123137475131276303719106807770368383792694189867607863065187494210275261052480513612808139938775881238338967335442917691529948064634061702744000922971203774078350945495506152078363367443685406871908443857975947015476838805032064298294001905554554167799072902885014447984348894543100733775352358577615864647241758348265682709978923174940984441413659177185772123709260115130073776174980906030321195618224518664680425520921000426305278098682430199283719949895930496916343365903436398081657256086094199105926398388492500629848227032226288863691250705568976996899638757331996088410875725348351929330207253153106463097354154106004352357113233656227825957979372271563316433545702533235943083874223308678852388394504741260562500440155477471985093202850273239629640760051833005883380579893285854599766348923678150243306686260089732942115398782497649602672570980791639281449194635218638006372215784075284093835817014915347559966225351268580304685914499238755317892175384520367497755683061177451090418293571056602182628670161803242572682742892003736337605877337655077474640687914058927514613008891062371269849146722831174162328996543686923917241357994632830789811425086426270651625317886816005762282161940742784479126332646143201126953650384624454309876945774923132562627008706923720076667409930712043487151793900284347766404686342393742000446736147047573874511868647385062547979803279068214336534116343542375972140968771197286602324263542507941336444442389970159365497470556341219484255922703114438479185609396474953933194505753811811645455398441438046994305461683574692365475377811670054053411985297486328272374449568285466203385086003470409329081710810521189786231772108325009280801016913685843415603923013709306833731058332934972941588320260534042015561560460755719318110013344676280545521400307087105469705900620076180062100342533752379860512512667525648174846918650895804430727302283923430662613196235229251242748071491363809862126285656996440924645353472209035269378077563459037570587359466950436521960444337104907850212655917403879462229516475877004147833215347912790356225184967837271403945083997161831395725416274185661163382533791067563654727549848272850743205607315564405026816591550025539194528215961159250990478147030714403778955318318686070979834159235723621791201191690005642761237702736709489329448453418475455325084942981578809501468365312093609032907957828563863975052545772243755655001087946286036085909378673539680777867344971227637111922943236305700543419329002962058157844272251058246783889500028299356290679357326667102064051852131303274298448490911399373761145977289789086923076509839997856555736299648024041835963855069125108259085354021042155451632027286156606156682953680447416379498519598023825707844319272600808352668945587221772162438962442994528094690610553822264930470532814851951608100837052863771864230980700669348747099207560543081425237340386995569812931729424430598199250946077983365004432100203825353489252444267198042104536910041935174548206092805766436006689115198088727866262745564645142351224874940511198491607622406276648708038439780453352637769478755531357993531039255913196418706203765695485159644971768500829374899598171948964463736026714903174360289219802439111896714789042786204213782660576719106416182376963019554649814670675923210552813302568768607947669990476820769067931056401249513876733317713200038532314005378765475074596976366609448117465438082025320680804674861289998474148518329807159422485741913624973012980899685520757814852616222452360572302859252467944377346674027265101071290617556963915009654859618596302437434951506791243796894202458719571631087546177450711088325402010358565646024638329029190266505207365953980479555294229037460519692888234072078400291157737832961911033716911189020520130327427888916101622990828599750244625755349565198860699289531207653942766765887508257829220744360314089752469826032672483320023186594854559883246884205105097823018635951836352290820202460120670657053607621237108576500345763881162892256041987151417071617363121769617146279891797853622927299097624921725932481729216398299931666772505109276470571675248102632247327744197424734494554331723392729515681926376256547077519870242895914592510779539360886322700573725579645593695247440881776640756847696869053157428166706969755719613287959397808521011979325711062022280305635239035544477163432920980583934329100339253531003546115206019335779968633681044915220586792152912966410897550354590225494253396660107895423042778350821568815558334647769394754855943746921819619803728614641242808136279216615175049519287767241608060454298454337758062077783836741127883801524439754584696346044559797170494304447877905224762198695682292818992979719387542882781839118990685791848672092587620744863191583736331814891987146559167712547672740462279697188037010267897960290172611570294478165574468539937840063818987610019400495161148890471235707073618660504057121900714120916924571646995977506210636046214412621000195450200127921272184759597368492393769298889915169786246942922969908068574196455263950744264296309752492941329010381995987046564872183651858612683930932837584856530770286269609210335588975958302509956856865173557669310933747212251678211323195543244155273917415722364713948582679325432299191323502314879307868974506898127629145134182432730523760219208424798446853136474402203867441878101395122435332643625588077980371617883191205176701173276071187358386016235597099020589698688543368144468803537383372276645774113513837188105897106804597654770469577091954555593249814252776561585248700832184289530680714104308951522584803405672888996237770830113202264694900489313348667508004073107441385166251300156475860688013521397895149419581661217438557388004823289691015620512123024087883861088019922620193342846546579723582131719449921852750334560371360663912416467673126325080217312431690611268790717924995635524524565358415458956405646207725093545559860713601026357294367898612719606606906144372292022683983913389291259020422284586140504286090212358612908044808393726739353165727632284368468194961905539643787561469896272024027430855563574197049419365414069252244205920230383926542007756211176594501708532305622079613313878554092218290830209835224786050638348346025505625162656818095135721420184153972914133610053107524574734019485119985743048009051574715548384445943937837939232302696184327466696172219610190129709358334001556392909843576737282587757668724875938162290425573911529582400915106177131844243176396620046026980161151040479352002558678447968508881653516754229971578104150962273120022834842316059905112168451418743340955824485297475525802180094714381439146076701698858526433839027507739448449701975221386099028350344081126208572729690333222187284404051332350085707518042234724073879044665864051967162725018587840775922314111611646580978117711816503755178909264006187193191171420837301538557268100576481970855846573693803844986793050241045646727461940856102214792128304012521785844324659779019383212204268284377623016171165554869256101846528224829470122755112587411994047833348848168630847130902193654437405458449571161343577100004506974233443462176536334436539353532960911650344729970116567898469761329504503207580034063970053903201317780994608092060057903846327679978533353078738432228414610817999843745407829610991844507066062168157661820696120366500732917707346645038977451352850194413887348508230424955865588060163328749606642342637545210363661559399672298235257742153679052941018149703380848351481911693961281246909961149337169093218643166254914443365664023056102076473323978209650676764113206816766440758749439522266258847640191104213219093401230012669364576035388964967777605249609521155973357080525553710949221453667916705792408038826393826252231040154878645822100492548182120903449026810222420858806600351782459308411880842497377192841169642562258393463649048341433549332455861464951074100592852170735659276594933185339902231577646110833679222916557068807245396167902337435933566913203097726948713535051965345960715353423381868693078986377258463823642654455964142567058052593251563976759477542532967475372425680082040922819450148370304048674660336521765985038585139315271838612201087761327983227041304860660547093524734200402452280844478375224404568300132987243976836701085791112208872581486539477907540663158968716569920638174802335579448974766254878421530227504911929135988028323469221052548993862540561488069013682682409116957698728898304979657332531901381998002673730811933721809136815462064649789563340690607887839310106054641097042866093570576930058595038568808173696853173548219526613003640214323037695595930271997427744946994194844772096921341969158738911838377339156549321925820376972080460997564175712918952575247790609521022664121282046147223392540326786728415854989586605116527081551758409340997793155413311780168935094106779445400319146092255357456104693403133331998089870953241998145820438558819027398017366136787368653938678038237290722055233196003554992718623228624727247162466974641762059038661485339899006915114127908993340942429057361797994984215008912091515327060354834161735231112159960621011429447481757471271778736103619854454485004661527689445002394646807060020638895445544960733923018409003297726774576662350254227511994761153625106238693638921506084912852809259976440770970251969281469310201874409399129138779918267926406361723301312755179289185782374823888546410233265773136499090325243927175880168235625678317159374873391872664638358001666209182892746371796128242853261278706140711812028551042299972023008160417957913939603393275163004983008465218649802331844367460601129864396747974245555801449637145874375567241733530346598213706222170799880828499734344262723087041090513921764948078167058889095420623658502499508803144701702626315590531779916728817761749732948290222774068532037560710036408021679360343358173604979735996411787210944293414524877401935529922886022653975715282656455300730265119486966973499445348100892308562035354145417911978460318392776907505836792189040968814506442372162790344899697860382079281843816321811949777418952826146309542630625090417309273174696591035122417672665104083683154487333400013961844728419863086623175570890406404958201436748709201991103819780950854959662876586290023678783318411759584676029942907615058784001573319743726935878476078576357479571505637934005673412686731697208591657208100521139462379834936164625770021195177283002461606815983368690231148675641463758472730005027087161520051976337618242516517394918097442375852842638601152305294871365108201475137566019518066047646044618056329047854096715516713047394387491295327114470805978194502378573814700310535669927490824206323448860670868419268550894423315092236147617306093393383877816927970973473780816251411364725279705235604262284829551493796414180702532243421235193076403942411689568524623371156935987956781494393290874144268127618072517761936738653147734204214930471649155380260486617360359948238610101077781554522189688751278466578587040445033664264958967011277991746922502842812528797979112934459809525790498328610077783776141530369396885389792296894473744143307244984180134228329134927740050824108119966961685738029148409367371901835564831303726745553985298121900895838009352120254380428870491540142423548224090949927587771615030357101842151014637990002706668273344591003777491215101685374812346064665069781236527249775953316343214332273059056985963908227367347585514921300282830033592881577952289720492074777768496800166057605545168671428637713070464929902443616168070316247041577964337214801174677734067296439907603664565861236739404174848828831387308692921559497891209350417175675885017375683926620581463369745008925074434657051151568189282805062581059205637494550468704279754219992602783849727657125028934366926421096964778751099112694095968652080282220229862448901991114525244700920520452343688018525813938616195956202350982330222859741760094352242626217954586847475047019664195124378166790537527916930681275173664625059646709095289877251620704374035172404567165410847349714287545270896862858815261865023107700410847978359145659756982253926626274781566309650063880382125282582862802804226613603219834425928339072766248570908155858325764743374014458003035517578062785982671053709062091404551050837923365459313833262595097445249325779355218844804587982788012998675380407730598066322379502596184081275352875859455867359125203276999035988838218791391457223274256551166107972803140132147194455596806630914377908581138124405352106156614637864303254023720023660031737819024925846926762592825000612927263669021703505665876090345890735504951517785513573381198841256481239392546920431146396131322535802425657722933292591956333496654011647084932626566779260048142875441873912709348086398764938166174339758055432440886257726933461904919606881022285192305501548069458832459618528179574424581046146237626161893638024998895432902886421933909893367441307453610201661577845062334095965022109534524634261707594375753861084409672022668742341367353281579224936509123652506851672215626007625601233903585896118956740291045412279137368046604197498179988267240489268310635145142822694799387671208002474420837781009975988192454333782779224088269044931253920622681944124483516085172955382253227913580792615784725213622924574724027227405242464342322365326187368887738069101335140200651668787313690291090960258276668364068075206537882944063776024630680886949516445858759082804330574921088986129564285875450136745715435218126086511804416673260286713251185124963756001953864432129182170417041906973096390457343335163255206143373527687677050369252621213830183946761134344441923375903538851950077908923627655510424307614702698015366800003259807817853023352205988781509675281818588179189650938604249465673816343551435736540321598377347477355694527899138877024893532403470639003393122421500635577277094921571314044479078444124511247299842826582594480045125819004040510249913781811019842618187277170113307844771467163234557425471396958448977876628086091619568219579359551850054465581068422618107879469858078635113259164662053615670818368499821849844376690837442531278218294344194239978352569006691368714333844962029701637447147595387377990373236590187517246735927392538290945602817320281683674741156589971402479879120090449941993669587169230770218358695928030966875401228189276301062838072344398718037808729386061472594599823171789255635291753580905593604286330255942618022083509854414062071830098395808476587076356904084959883464835876785243112894143386531231679843663558473809850434779297255142793959564846266530908808029195328953741213783534851897655291287143344764058669732475105863347979826822424570028972212130362164881822258615211413268599895280118847428994933060378235632098228972685331311227279191929186685516997235858665254529911798093912186829855877163226667966696419069120998097651388921076988151230105675863375578875490132707764669759888490093834104741190551296783871688932554923828251138658043865360666822380028198860689872640137549384349136585513515258930956970285894740948942689449903670079379653008886159881110810858618098987342802486741514155552526442841072080744895375514089412343725517682282622120313363440563108845507855793480439302179327324811558180744445100273768056005982431480811873924542254623241592418088220906472190680671038934427130502518056438560360677116790373125126360821686320834751424809586059472856074250518735542701852688065663588391283799770414854094146144240680588130487643743139371353423511085568373325005159740111068534163719774875523112639003558485361286032492862641344541054317209574301258575715003777320446271476170039927224552917667933416828203045656274628833924150286651276308631384188409587729697278753647115633472979707897914405206046099524686660988913487504095362144907453365398841635494582883154761196627409933576063756294746836965209308405060744220328633569992227435679955306857529248735196575107736824921129597037307908818082983724430077403256661363463465090826577406467824078616882066157990380225297560373559691956409770172618728680284272196845195069118614048596514400834438769857342961238244067186690321606099296485699043187245549979129647111243006479545039716098170214675071336053061407379109258508311210208719800449377797472808269769439254470051655890499893652781617422482768690595265016058555324472419323209987301919110552446372407884708147203339739726989601516950282288369995366730985452982818566674805531797279845736745034761672814301547241504725797918552697345813337351122791072962908874008035203149581469611706918161449114037468962020114947610755669271569451178399818243478342547229004024279959448652421143291985432044336400985460461447995428383712414976658355097998281689929431379398383741565223169120191167427870113283713295787089571533909493105023856810820167174465020979693339606987172834387763096018097459095853461745854424494389038450387726062302692696576314571533171083485774313175393993314851797513179910104770711748918371092576715250535902771760998250000777219851885237746330449612104080701093610657523750805432239438184069717179657445558564540333661562557318725903440934362541099313575048511774218047284469489761169978750416836245260693629711940962395629278268904181287719184900715142124232687405908580056293741093022759392605964361990270102267959013730360855935923315121392197583743784624878207760413848430853976576483802344826501307962326030255061008893967304028709445731990878202440468441405935700760658151577762841516888614807067530272294279317379069677386640893140433314428615541375828066583149551006677534132353405038267199315149680110178400080157753178208061581308820931062803921037674942487660221076727127217437327526239261671310179264608443567073337478697568784186168555681646254652912287378396515198034677095071441706891163063259640088265470256767255188376246712367260557668714252159607337638297479265860002597334483512368012834522531538625858626134966017391184181316327375159663502017163955222718324917182930356212488293085990820180449104344482381207898015904619873603951310140788824797333817566711320199538807222682493105779407819028462915695057266157766961771098999598569535389284379213593868152561677422826074859373778990075491168988950195167229149246433885365657273442078037445261675280996668409766321779299607542470539184182062274182433022839063986093260922512977728259526795167522586368557260056785501993133888157984157785950412570813729180346529552012366864197776201907796678634247292649412781443849533492015094233279620557930088198109289705145795520892028724711023900639214179803100036411342016402224857601682588290999535889953678273014811915343459870472847605281016336525174843576144762018893750185822450067423035990983402202769039030357678942645556808555855953508979593709768616794316715955310783839174383402443849759911025583408264517639288759989600592084824353145841688334297224979390942279270702458545665962645860133363013141784564157455052739004901584156998743357784966746899511201479998540547493232677820541592251541341251458510122410287530799358040563650192242068764376429498404744659188276108288758796533690466174679163731883834041598381356954430720425199469129924835887295771265319558372678698261997020977153063691948383663642092335598741869019516128640448750321550808770304464364511179451667876826451845461785207597233172133022859457670207778321048275557493615209410724165732447994856671337802265452305460764135344782765394954665627136042532634318477001633721420994949329495829024089120273829462859797946881580015191480946219811358281081094145970794758541482189435216353563287154767704951009794331923135960226319260908135620948642835400074202017960418301694296734744639562615151573936737113328495644756686765605405260209483437067952882780324830491843568583234282630603349649209916941333421152493552756447771099628706430051955651549336320074076305927802838596722505546588012010861083466677333766017057878355199614980355040727725351039715511294577866158894646003170683351693435558056148516229396364430179654181864370009574377133119916925270319344720472316706716058618297134463189840982017536098075777780229163051334932444257364948603807196156295706467157739801117178339934731494830258078618800177510774024554510984405174014571890766048786376203731718120969451936793923083860250640377809182201200034614773734378664165947861289807258685771186822191401454189560014894194766407707445376345426027013127293944506918809245410521751085177938061986862521837403441557682577231832581767795583784067213868403111179184720392623198560912766935536156032570493678346486408314909358215511202256966386676162808589521988183122036932686464399430831423998337178317734140269194539133684800533270129342470919362716979573088398431817799829283524608363206259415598870318399005449765895747332827061234405521719201461826113002805952908961512614210782654734919252319393986169091234999713022079792146201890066993135654596332571664289755901504394942192798087862321304806886440145738832434905962407319724549660855383600044557363232079524298480324850971432983201653184316104027621848845903046201265231431538951105015240016556024720379323696128660557270940067513154097795869072965716805374576524303201509412256994247970319001831948955062530943091544606590304288773064295374636701067532410065102361885602621348083452571104800098241193521242296383140013424288160203573990948455367791769010615540826660548091489580103032753049585264207412047938354500666850948480771187682623235897214998356646269317193757370795717082446545374026497262289338732311251350068833795988061510623982581062461242742698201663017544810611945350076589917814743626881977178170390183716542884974594071339990895289640794994358470162955273545734418422347318953118907386546406922893955397119349411059509743648823776124967106114588732284334190141225298746386603378650482187620761118094071243860804565367894379750756613777491900643944309109993607967738728629104520366716650790619498721202099168294531908720884788707936272818925499025077886278319056067612846593275783886130276821791164172848432188953210990987916123580253889880242546827105096361139896535057827637581332062290599207009419876337580191807539065330814350125562841624728978449472238501811135418020635655955243391073746164932920888413202263400702459842287899983386429082875713855840757983698438626626277704610359635698748161561281735835861096887230925388594326928742304638082135585823941377714828016466017915497676807773545616483767337656814922889940217740539785038528824628803641126654192092351722445322550788184825903135274841908433273631298338481177725079666407312819957835730805982586918017194522666087648877383393239071937058212041464872784841079555816799978061753875005889517699272518950637929954510526035092248970394898092903486069722941459086268233251817802213659350660391479755398959962525586790470128436746490640449222624837283740375794412261908214916376117109225061141552725721898602130774287312776668327836682168179030887575817258520123325378917169925886648168071237796453925767946684971182008412153131308481684571576762351087867936373155976482039520503954952607015683363817407758145367162922878731293450646519073622634995161711416862000739737024214346583237445015872000305082268612915895880361571011231736136514976407177277434693263291358075131391151322116989062987427358622519659337986212296207725794315288582836799735894554397325301569201477230578414712436444956293988724698689128017600627316510245810024393317066812715280619118082336192949077799733674346944925386196048524619966391150874737792723405825014268042678643307755014473828049603161151933259666348828727647853177673247641594061499745393042569625671901849360672756224793249981183065740555822586108858874682108180666647029298432148913115710892501849759707527464862560857573828408404681426450872605747890260145229460269933031200983141698082172271930282817290983903051073773035395790171995723049791607832253782132633914229601916605356026300585545860560093145562778182940211601939830936678684996998875331441005699979491681503464991704252721970390581379931870653813023528411529782060705322889834712486115135212442162298012941322184842677420246117703760816033415048138072580191345525631118987839781559701362082574364958115890277607566241481701487741404710872214554774295514465965760625222256518976014644461831035217897961881532137703529052792566374548807180483325941677722593732419640818315148484493779321674184430696523514187681221178833332246775099924213948731935604748024643991195158468674490981729462520040312274690571346511554206339544425409755024670257464593419334336719715991566569426338990735005835875215503707744368873264115952639481426312091328060183438165213490141929113205680363016758144511767528205914410428690180764666476444579453329529146874927149269987202660506841404470394420827869735989086217937849474007451479921037988950771830167625879511161614987837074173822378843427858599664634791459902364833968314409020664000320824811748353933141395921847655621567555808875179158275671296026794650839111665741165988495865540593834800575513283038923969457859710194220566685204901462538083093883148687935757944121027183127846617661992801978803037778627259427800671331234423924549323298660349508709237440023124404728637219321870473251319366630408011286341600930233457785721772088096780914149036125327662203842801758099827604352514071023692256916744731993659227473557050641187582302826538549037374110945384361349511707107946213656177457452552466661274311980822948349246482732246894688939650933651883375381732941906920772959372539447550414249174650622342679454556655104542407563870862599412725719400111051884265973866125274573952289097497002295593671413017310618479707139921330214961395435649846860938535258429870839723861946013915668558362300303164130992727227046057344251434594246857615232931426531550112884216399880560496026172076653566543407614026013525048286038002952775786974855548264197134923101540320294989756967207406678266772454673795253533049117225954906730776321472664268017381326320677100893686784502736254499295432852402668390894233983444547594643991233267532344138694032456338408739625270902362311151184517394117161281336094552979935672026324621899564029927247846680235271363116772359856309302482889715671617769618580086934872506198895251585636741712766254712827945244200656691093338990889666570478876810649891957203117331241932033460244492275432708417149257975375818292688556701938539352056764320617190780616464530226934347754547404499793115627780306669336097767257166651447924354957785483718908464863810064557923049481197760202188865341759312621050268210089046692002499857047851809155959690440151600791158401633397134844591273572643038879664877965294249234242317189651608863582656209067669962455112235817324005761457346435143259001990394956668684967319346429655305700723366263726500210508739117685212069918758996966004901518449219833720202378335838687565122978665189176468268240861254751105774978914810760528450334617839224785654870076572358578737130089352185629068470620579597652529937637784053417270099217229595048294153574442702704092129045812269297484666417748255818565994550262351124530499481046854372860400670335988554857510781641665313370602656701123665323309593261621213669307131237848164925548336979872233521869653607266048137369520003407494544444269275566740075518447495190739391409296054537945038670700944897556556759248176221938552222469614237015418546068764869272656619547773779032313947027479712950700181479213439496382769046266470484732350590039531535822597723554110333896320281799696369423903809368812158928891339455779052004793286338865073381630880573970023874524318355625544655396626441570237629040369204418469737492426047636447878714481424706404655685474054895767019960051022481540560271948574947923847820393669446446408064925079569555461306978412626623475407532297543777252502481256328105120706212704020114133899524457628164116209883021235689696286454885209712285432244044989578676549811300670978186217398814415992571838963044242494980768552905133798364382736664516061483835411658426373695402502294051182819814592678333518922256275611700056475597786654668863266491540927951607484041875175737903024671301278423181859909951569830963170937703386934602279873073831441257604038443724006109233434849102961121829608943258816935574558146697124760329505373395483789814274934802149685957180188996992856860908328114988578896098224282011528333003737690403402471390780882065110248252948854012645655892736953054132200871945080845264008334131049821911584341982318530760213291885622513814428036120726745234777737239848777954174570242895889345971708433534026920951248552059282854420396906454533401857998015216907729362654480265214273628424810485742361565020567581804466231390684935529417331025892356445499673015074561949142872639649013989015948430264767606575465102993561991000132742113609435278602056078050088267319829772791539543069232504319163274508776297710176592474982358658020614449193741473519501677611052162921066703913874470539328554433667139393476799257371722022393328836616016636993892770828920298611794860543217589870494300626447134919659972287900047626320920766450901632479166073741054658333059130781994369302115655649664836768268464680652118238104105379415613024501893089693804842674481606406224040689133514891041021129407025436904752536520346396049319453033715074550855548885763960029630859514017514524571527668218835292381148985574395840355075224803871293328235771508365857178350187003310696689018579223379627418116378073787094138114506083448220985213936558390496747943397689415236451952498343807621180359174738297157622470161612676441495344553888028785714645101656607191794645716142559969124181872854888525621635473965822973850597152505026652764991218746141297593724730398214952613314710311932188984247641988791042711937492211907126077090139531790668857717587640766762972554933721664856765543782490771654477559919466647152386805690617173834315068735447291334420844390031672671558874341658178768700046050609178267572058571552407169216458394146279088836708173868689150167707847098965407724515951518732595133924546140875737208613443347580729177512753259812585939519730066064430429675162999165704520826770449719612632613142258707348414804829248137301605756831994574919862545589792676475982351292111764792199472316931037393202309805001974441402273897535881912945352350783132104437024750993384488356632642196088789259276460230224773464020188738237694179925132098919952460860094185348548909689357821591017664129603310952995161124917553852287896020929557738273360122068178793549619329827017131086358281726504105204989068193361416643817021692216240762045186786699651274874128681308863638775717150976229557155818708895897184191985541902600066759450996496704385374952213465672758114069393016523892904855485944020598506696228150714172698958166825264603832921736757627012201811533379043347835865260499636768682444277645131435136478774394187589635092710541753478743842832576048108199821052422429107616804802738521934615941139612694682572015276944188565654886276165028898437205092021824659379328653888452746867914757729976045132996739448789861182549938264458085590847351273548692688432494457996291951493633933372745581312043239135731003253426717495146541590033639118545474865440151461267498045970357973976737727828638953314440487125094115553629257388654499546210989101889435225022750355578338561103295785233762335642707967281340587464613925553097572348090730001862990808002685908818295008555335906791319415605011456485685191710728637627276630860329935854339810904397599808631959023146143729598354417926089526131230951142080716873109907556083006350977473965841942507912646124839711746990619405090618319764899071641882761888314427810701295151388225393163199962114946777632179011570431050698295761577827975643779403962652282297744016199552569952486463748876980383671434119813040309922997837809715387089866320190522286280566007044823896306921550679347508879285584226390476509358036007906888769638079829688591792655061745361262054598676025949229007001718503067072668080316933374344774592611771186122455567924797181709113870854983931571705328756811303837105780718000187813512231355784941105493224564550622176207990876910793741085824592171924395976703671916288884609763063326103051272685454392394329473616565245403197701071322905417350164068661346278148278933530817333006048528903984833247642498980621773262867782957204246732586347951389347942748406712555794742100641812531684916565174828732365606551308343167632905816752372288339498602656570878012014292602365667153994288301401372798503662857070817933157184256343707761627045704364724160480663524558843465585275192718731442994266815008372632645751760492573148645819658472060015461426991844972753656920496153622072599930042576675468440695610378861168781337091361256686076688908121982150888496500695098555020099873930076332759846819482187783338351551247860801118167834901668148212193227175825723704650652009725060539046992362653592337904529606474583956346923017543243258124955692996446849543346750413217542291506490549816127288578671697729514684064120402126164225368546482108705334725170113857180346446244739498241322354275068728750919510322399884305901749071206098372667256125638350788016138227560807850400649522349530056237375548312129763182097239872932495811248862527849901442874388879301262651428012926811775464838041904842685729300711347267521085920359490288474660302716585072904853350494526281637138619648145322338733680805769158812205821648730771648823536074963123528906026474142635376793022571779411601320859118237415368763429761140524875809140382510889108081858703089784462621680296910920037106144467853683641901215874875176787961450779630813494862360116814992824836890791774863465398019681950969521630469521060880962867020328018992322992035101226797404759648783105176729769616684470030971036461886783137432251432392360765502346310199108140697625721913977087767943688811368791836129113350714402976514898607916208211432600085122253228129565607783157618563810891622851105894609535881284107410110050561885075147372970798359407640956954026036415487572531891216859144753797123441026824328250258062789907753020221864282922946869723275176859512439951611379983122515092158656113598074315730926665269789250881966389439991868002734455793887532235280001221201878680534047541008108813919665746450433940270504574790686917905321192343152325771079672220151098057672327066801572876975671136140111720296614754668210863954921748052764877781514345897577739242129750825955568909428646209100239931809704117597953855938249724923596214090368775455287436742399275297401819901704384402188513870479959987628911257581295600238960937152703863316404665139140680169037335948686414576732754455718958583781211844556986609899030652127358720871762589330267523935367972496313734320548464539133472505700515326034080497232925977773181023607998310194643464439906461654049616374896654865634323394694763481464317939745150475388476474926458746805633144139269987903943231327831640810130636778314060164396795271333294889178527811035308875384595498993029090955715091860287375367204104205949630006721054737454277538720557536635086170427578231142456922085164057604068292188749688720424424890314256528599823816289070540057330559018527436360000786044330146643339288108790762453219933572224952818622752665006728024838852350944758452247317313577647586244227194531651927447053057921211248901928127371728791589916721769412800349892881998366833572140731039568093699195893804050051960331055529203849697140116531441446008301726025171690269743172066873664934145152970499440052017158861067207679453436198543330701382833630142200865030117235218561660418082249204593143671926259646423110710074843327712149287092387825107053548004022378654714137168409484732867150614293514452501151127859155984151352148317251149896069917176778520262812683072208542435328372401850134253511168735282551122500596688894212434561756105552612448490581676765350774082068767749046812584035631441663383554915694917623510006457286884858007432084186450045074569087331992633494382095356081526769558419875218668787131456726252595883260736136477825441461436384657629957655352133850726944226648112753624215551782511564701830833740770046548701105210850532740006607680691244355785020883027630039862363787323752603722914389312917246834330304922685774108369060367886884226371543014782653979319645280450471198419596689530957461971020553979972707504980387275581695286091392403303793397271628527889036953129686616349901935326769957666829923892878408612775120211377747096551239555253535444428888768444300348004625011248787205503685140296833911695042940757434201057471704056927864478929803509524949481289346965631073988126921266375324494886341114956939926117583857487984952492056388063902834427468017244268206194984304820097062096752776837394157525889059555183937761566180526227268021600975014270636450701284955224508222339169758417326478422607054401746480800680592609029479512583196591481849069669976597608450173160843372376561929365925517857350422265824675737554607868616582255437567900066408122383460892718708257834997500386545384903005120592357776671511496843055977706229862493825952607256239235509349173106530299308219627404051126788820419277891239271843768458258569104500491403323423299521535040921304252668333918157301200129478338171194687172797082997968111992624654257729847861713559732737226485654831062425025581567396586024479166265023832672423289176589174191576596550736265033815751945069844347188198142694764306223515010659422958260864306436601317096778718490626992487951297426514030585369890287817706484651538726271462548108770835575007541809563474117902250531471256347398500988239808322529455573135838220863931819464376230527552622005942750107581195532829199104163009418438346795982610912505596665678892064355397778381124982306279600815438752075402231864575308706656334067696957235607428975297870315397838644450223476552281594602047027133525083454753281050412877784237024769462262309332638797543372438844928320576396468839578925990212983610923853785593483242721855285380339149376763750951974456852978901035736319642001345753886270866462398470599064019974883420354441722789231445568119064743664096304485402525444698268755694431230390053877160094916748287751280084913857522332140880395839086501549140409456204654726468483362277794373792508371831264912117773213625566217974815699092090382688194108395720404242861157314705548415023605028724165403760780657242444015833448664593087155703972868984922144399885866186352361235533393363497726852156351752218414174875472749376071726494768277170979138552516900515204324043066579762340058474278675013039592647303069218293329663167842554306490931160794888619672626751273937518731715814216993620410838811590508199845288116091875978095232858174483784446580302468056112602872592980124071453095235875368182379170325362673484281668953753707181685995616548820672449623687537138085979533511399752452143535534270578716326380642585579852502003182970341812832704968360508340638372776172086603645310011230818721225149918105047912963098349421579074995862579804543732109938447855760451659129411197416402193673423893962016227464154812955969065926225234988757135815724538890395288010179496619579046721906724838792521068861849901712452759017387536176790119920273608665189586262290469216683606436612533229941355947885106164522634163370624980707265442106619195960751793843068619519499778464396867755891338209054881384532097935519966127236668178115757857983379236129734208858737949368212010088416235699687736190131979439028464369323943535872460846839122421815930912477586595399937039583706502208144454877200006674362561627355356069453404506695856658319135061905087379696654776460910904277235200605172030973998393861235886279550266008276663183683391161798822182965597550268248305907426811702725567799977409271747863475436919297526104889223257025365585745802579066489735123346969226046657639362031144131598724897055347753709576026371635321511658522747788192110353961967114690759471739410640082115740482653818314981866930599829263673428638725762779331303700221783796809187497060531754701910912923603364170209589946156554260652908161973450770509577546392242621716604815311646057595944167800982136720051484903496283019846013974248097627897293735244668160701851524610377378942045747412867404513518929914528441501245277000518972790211697166192717859039845420030639073198592127378208376218152062992572318280701962161614275459426073492442534783786112170610993629194784400916028798062608928697731600313352013159074112363069108068022919257202148978122216858703071202019056288686133639891816607742375236194304732977675372222688243615204047874207392212082344453204146699928918400060476228012011007955062585314512634192812316281558312008960616972637082482677994592046627342961795005700183592656195579275325939889035066967619967053680241134001097207388852674501364418569922203661113101652576250585975016060865648673574953372751830638430809231175294876872012578500207113097119490506308449062984290014716325644000696888124990236427175568457836764360427949692205600842749714648103296202159688487053619755455880639059072780160362841492781666471655541745508487519864284522252311510490568542157627233790613306441086812893216643845003277837829884629162528678559530639452314843218060604358831925489805948534322619422074289059716038739583518839334006225292625633310478402084270407239941504576482321957281336323785744879053429205121152114702252654968925799420753432921473461588665994234051365064449715728225017503000567094902351806869791845389032003461360188302690228033992187600059503919874134719068889552634934218915148149206793675745996235918719391105638805948131511637248394924825793222696826872894470097020178034030347485167032878281743694924064885708122062188829348998901689783265415378306177274386227755989256395431675140615688304174313030542282009280743368624943181397706925628310313208832330352696747705406697073625637534705538968055294450607050091942290425507966546161246158920786794911481491501935465997435101912932914209981981125476242386328327286309420256487841830890780063451365943017801448594455438924399048306609374970657773516557436904149408411556349884856969387123864292505544883219349500011960171605403864611952206856781887382373441350704424218067975798074950251580313135599848578737614997669958392755581700138406343138541348728332788458358722970625738961811459534573337436268676872292036515956663473593364859824189775436119416724129651360395627151689404322532706404986304352970302368866776913475532054440098787659233470363109993584852128400702965756298735743358643019606617274900734090993165210930357921481249671468867334600699679917917624617702225563335140432517101153878580416020100591717111469781725316497603248099940549788030103851332605300890365842927037420574485469051350979635928863902354094467354739749062289290958787375375276279321104172436855628537506211911296618172992946081890089464081796744091765166173454905608757947651146845578225787740637187797846780792790814306444931281297818648022128097155128978631735422947422711242403052794528259555100024662946251584040735639354258929503376592534234955650219292849783779118879805881619862162493512175423084139820515474210638549431042767388798562992797892178175040201883942743327483463083596400230379318610511212835334703865742285375548967652905228240433771382214938839150396853181404366828935045922620608395808097545099442463975246923761701523715650054533818632568402700497906240143338885082586132437207557311074098334905451613362028906439595316384874308698084474894349242317263106817695952046627282228987846134176211616382239240001796386475871907984700564152494757572532276075542667069124000736403943041107364971088351781613446393569176266651450608175355912301236752971050678716175017225474555302679598930699290000042614904186025625211043498644554472786158993519506536660802925213890393118344257189276155603517356770360698727198197499523344988465231058687620936200250351154044931947137154204943659824262319415367944067705246412747416117371435072819153602878142952397122888408721664073286707602036894253778337259300842202068266218399502621419766728493118358772785104651232632773722137717965899315002753829926157770821253345271265894345533697057520289091611802886710518364123654199012254582744512297599464914427539069029496189502313674277844602253095214917612361459406694111738401921140900664725118794539785132090332514782925495419016710196740777830416779096959581713816418477199994736007361124236002402101652922181360760910072465845394115868491598009125443256621150487242622390397531879901957689459407235700848518915709740768924893649039478814556711758935269595007645100520308722042738003386926857895634088577284898141443385377466857166036422377494798847558676088939062471728019172984393180297462211320304939949127052204324775716035311005877216606224718715307440938733496988403003913033305884870319570295411240255355766279723570356279238654783570002483002804406038380597136006716527530075904339508021831304281804956521712216056460642972461763680976011064979148681815185837746796264024655374774365531159075740960907621936448431358004151119256111358669659738942742753166497166768630179071427452111441803858902550287242507972755024763908337234741034157610872060658855777097644239993161425690207742176939571491591522466998222942020024751802043694367244448382687516694355104091098333844327368348761742453612202115445915399935870715126255892270793330981988819202899698355630443409438131978951128607099617194115249837682662068033365059585356905857663164944198539802120122316210125223108913385934985164978474492917281750513498333627808524087070785880017084402029735559359745110035977972078168533682711998824186174975954571202388107784623411603422959221204884669567059447598035279483968641510028135393850710964596081460109858454313402234280099961010250035810313253772957331819868170504856573342205936629783749015870525026389390778102543188673731795782089105299107433844217602583155571285147475650775841659690760987902387977499856009945733070308294998662889351065028214963605313389985716442319323278622188149912841179740115079576704988944332726119871792136639817214160927445242545525602517942788867169168789292214457912125440627105182661295745959814439834564436027089756371302961275000599935270314349424319839317575613174359090437412986007054512959634812739438993261110659120463820900489345821166406570379329529546296254363432900660500626219539752025296054293928862033000423537919570019851087901282177060024266569319107006200092101381711409953347815535879443379760888392041439728028466778823638731840462275941024579432501375161772513212664103985254570016098156301215550353203535989859189360312624688198124146891000606762753796130348175652705415552869677330587722418626018433126961963314618678331147329427650699854678673600167346981455437609427168608227720759378494947526243188820177593622279752447856807151495433199651021010760375033244043973398883565769865416323115797357861570376173675985207925799550195944781082328041392010356551463824983791499203592472014905387765240167220889240497064679586056405136508809683038293110995694567444693113951266106624188025702580919834373195900911448426244512852728563270548138144727653571450270879531657044337554014132800822536109451258574334342359128910413480254016515610100069380418576626450978943820890152896914638773380226828225430202296931820345990016547533375057002253712253052474604213910913955459267927635413254522082653724667997012765762805539199641784123641315795771434044997263532015067060753178712295676232887604576679624328436091562162783861599284886985575649809552899112673051671453528379527713526662674827402799993303425118810184706646056581917896458848456555744661477641359717215635610336853390974511245743312342906842827357627801176791254644188187904011184286990043899140791225154291980433305142095523815840623939245734585183091811807435973120314742182103330524933701721161535224702495110096540558561061980847811950319972499909475545429422586392597622190694088862483327683694148244594106338169696518686516847325654755025000500426053121651359189135172410252995346981192326316789676878426113563484012166224465984482053607265425270838882149964921214312494171157536310883195241885649384675991323098796281500607620776942915049106402289565952863793587936901713818317307085416895955537952806358583154293291494006691040242793826392974335715397097134711589140526867715205821959282769597436429919567902524097396824684188157641595724889544381401694613208265852876797356298839930184409014762284883409684613146554633259960499335801120435062240720587339380982400771042374142025648062807775016911869180511725796428098187870717842204125342843433845689294053799824972941606128750670909153770839253580507878140092301862408373725189367388740133410412903708148614976368782565168897947317942901319332251802926683460143509817805841661863092867906429033819397280187593608370501558881944939499833870761495662937606120105119751810642660429718949272093181565329325770026857926695515084606539395826399875707758053852544171704370764436974429577412481601167716290782694262673736914200214311400665531138457837134438403085128217267284028277225713661053643555599568508829689664787698416658780224463616829242395785341210213268734007641078921724956258310905963953359680414375540023697115247254765122612669817484065094920047896476624155065995638554422939922574375912735026267007956375741280226269076227906785998984348955882971951663655768938927395476851524007321914291788586944769092358332225547152229266528093592295766900131972192392403837723963468100005685648810916661059987430030149869299122516315325084392427483887159507033387301678393225812212339586824784641524699041858139987296746730247753802537132113766851676461389663608087530448529923230390552643749825124097097261410518381924295416948028954522104517014736686404193609762110645450796997397642893528496340976633999919066550086372116172625284974905801489763211014058295836874128379549196192358997175649013555214665428443136261952714315030514222359160814683139698578407847343486826004023229798553829591333103715446470699119230192139152498237893161272488591895103226800198794305223157290744399661293454477212923943768498460825707665372873216696367103127879698469053822789645872164744138648594565617418385823333774999387498941549397392825286992356739914856882381093413208027079478784524198039574662069778647931711129807891395445212124245034635753457879240825029336669631031289808420135292581845708370712728450927554232173462291634984292621970828310601575256878158614751885462685741125964480194572079138339781704166478454286396349660935868900617579255629109031417190424301465127165157272886439528429100672762516211203574772633127183148723778471780681506946118671927970580453923644158926327061558062876376891218358252699073518091405325896184531819498530622165581362683785518916174626250080935128538067016844577403277286997566007706451810554526300279786004102470357602455799444050124684206620223906922729659268370489837178205985991247642986014586021000073845049185935521445405769702159998067847178940595269481607226919340246235491595709252418006822211154288394503563629549018963978908279352884836427100454167480181286380808502807219554210402868444433735797960852307304488464253241273021734939257013980367932778798914950273109247891319310728745929836474147946459448864842630169366465686382219609260170241979756624693185627343278995392380977502325866219549162993146564039806072714910343262956060989238934341024461561990359809248642158198684126735852157020542226769793099129056337466356849918003582918944270585393993917993253971490944232045620671524404897348245083127106750676364579674516054466402804758532619755785144809727396040617002772297805383200373490768386802394537409760873832480484624326822720014432649754548874557782835176441220375397044704703495276995477988320413980418226581767658248132993153415545452755258321634026487178087724736819442229606449782702968523428447552890851719362903229952543203936481958174871905586906930637093194943131428429875565142357305311658291727333060530673691111757731449835471555706844376491974301034986056335129630265238092709276282777389229889908960235856418890172898427296129254725452090462271772749392636043161150934620679470229601883128915750953097004394121291899672923234781971367415381726678130045041841873508935719047295351487424695724158149742727903975260499268044655613588663478142124977093056419922354196721066680494969161034675763814176379234799327405045773704527694207160704733555542676750512708873384760412235875835187269057809273533738434118590606398355770708787238455588935338194147303765596824918696277002533319202644659523410026686406599506253405551074950155614415785426771254628355539658329018916422026821516325380116793097383939159009245272941284191691595815986169808798761998413762158744732676640252673209389830233806619284855466108291905239034276287974877441596776974735576404053055122535551947926117253332210873363830413224734255378514825463726362291635189603790131021650272763886393582366676091433959171131645394841770037244950992296867064095555395142103337292324413101884939792254861376129920474531272995518629376647218313856493874967572305120351073458687500572169472588829659525384755862820890595157382347971159237918322651875613352358808362117189123337556784202124323202370261937829965866195906445912663911411286399372463670977786811815280877222242060476978210295491742714859432907019748767620012309401746309174098355024870063949867223210059169172999350837554709711075090191708938192443663479845710820729606479570386635256536903781574587485497661001211094800171452456253013772464488689008135824738982255238232266597314184313420734572826048589578571771814233185984992770072604583731583365399772614902559731945549641473418696282719126179608691157197111786747035699548971406452941164449834726725150168662402342811161651631283633549577971765429597883331580089794818619688320988666076429466334174007345368087401661762243317329524088608825492091593629396889980039606004373070987558261658493429812190108326874765798710623801616084250953825083654902486291279409583764063612546924524302584758105779589952965930664479985345020891528762014126879136843740245928500732644236099358302804437350301201334316749096460852931766986935048604010635902132337754881009444790484192212825032027700908942670726473357479772419842779444086829394684532431220499167464807663347832894190062828673571092979861219541443882925453976482739642986688510737340214182743943840165677402274386828893272586519887820004508999187683259692879557431616880675790826387774645538265372046948360237739527483466309965229313995188041104194132319089721932415043686475994811488664581253077236714501784299629816450938710463436031537750251193835397131288550856534834670750170750457010832635238985193990789647912868642948620950727782692667874265765253177403362456609979819158200797839654811862865226330594344135681345869657949304368348275430314697662617973633766399351067256875380957430518489349888989354396389818093099244586441789043517526532318203134147961702749572181482577703287738595100734622905254591848912060084455269433546970613461027185279368679388561328722072893978999928019411875756219379995965333454472149502509486420856817958249864815913587316379498227390038221611533511825330275979843489813575554034647631845192470684629336134149217542185038954132684888062933468280664189369465573031998920765106792024801158891749683410344957415068136441398385672477074321230105939005559228570272975821635240108628197389661182636924952498986672938133130441795950417961045743903044952746186688040953163452879606357022694465068631388052019217705395724552887230488686970346296233302533507261150278562399343999200005318857381262395568937837239987307039118968052690576146250638663357698337566744089926719516513227595113421868476670817354370332019979226022505243259236242278739063369037709420014533927055767674540445839453455991227757052234822802951698241029696243312108133451108635054898290997937339395473103801180642947010431895699820507753273827836302094927844093885601452028563417957237072344638837113309069379920612354544791836866286165647190036791786779020931056642280618596535582558417296684099414793833458156116653211770741739286751974689569587479477312457450336585020059494696361012982903780530677398297644655903692985992884685156898349822466060384993806595525508690680714207695504276059197302141205112144127237602020995899741670389800016257209719218841051177799533212189372864652451476121511668830270578675531935003688545412240942638422562256448128571614682116006530093731519644808882795295132060025279615709332937524429730411323444296679195183331924413471248447594285997096675326124692164692358964356445952886132342617036204715577922546566847811085971071142570600873537830749911941191756616402360245288687180106872708292080760874973337192998850749533029242555572725509604173957631193882602459117933273944368838926294992270303181608509214296389963121742162454227911517952800026939195736981225870850696015867670892715494330514028134490479077668842444928609417818648993165048992179657909194882470542539074233266235118275133551025528049585226781657558133959356059428044160229169583830833953529873450336277645033090321249350263273290876616328947844251658007121687345202349882728881124375050864047170624613725266688787712477060731829478522767263422083944367912101577490652419230062389968714592853467448236107227519825125759864959491733597817765262627435610793362064856521492132397119156577466207908652999448072499521827310187355611713595817924415380919332918035742407274604364173525516109505099908412362003689327851702400065896285646749384386862767384736393378706347322432056275261217180563201361543138041327975729189876415694553997044762873430646679909114458357057656083945912712551024835888883803489454237700750972393507808401107966573859343069475630586724802840171082235837761157716048192630861249851069636293529644457726073746367554538752544679345552910883545175767372321885129099971529755770286235481488264651047962774235609505263843721729699377730446263774663973728409977452604060274673259850462434868655715463389554152274458465027747001112655521031602952803501169766906879518712592289953469370282122368886749242809593433505671670647383256163064153876327428532160218301173532575422205989512117712575783035284052867408602629313865351195338761757988280559325723862200651098220970526076689607634895986728803545237808015812314425855186857516577999681792075919250792861491887775725945146242816372241126505656178732762325525624742190297106097333989061928535094237962657705518234568193948856939289283451839838375539206676464974581646729097352726062518679978712322053615965464163669296324238111846852798897470617915648099903026908880775213431535900256828768698302398305444699781991623549772054016231568309788641617135230625388885081222959706898297962215237482342135313088564419270674829749872574570479743041643860348091899893249402491636374523142281425772164905401240299092071869642842123681402621686705539481489827949887229135532393862814012290522691626629118169771521616183003273240076891445231132557559537387646318185646681391531383726731503858761202740154546027698116753182266249843571614532823439191317666642502221237068885958128525603336633523187690331558861023968953974272070133052690094855928827519025682758856473054479396739738702023597831082104298164733447721687222677793121960367685087438704477096838633769462626494259480002044292038787705672756597404971938268842776774851627302976073673589181085850065377659687588286112812383518800979656870145123456526351270293845203649458665940853157818206077066597798477831174356547812574241920668046681437812136274477013925922719334576233669244941151508139260197100866061372635948684304055833401350794700368884995115621742553614506286556881721990166226970520768519230823614323142245293180406382206087021744986210172649932586659880777510759103348197413287113177156051094565865550502561051561620563915472977958348473057303185300221095671388467948983725286376469107229790254994900776492728900481768214716805113339199716261268206875486538138691543795085185343529898377234004063446569044859592802599243149348675076400623003015312638322743907042747612111170566902450248444728936609901166130428036756410605110215564612425748826575072748310989068041256422376137615690501569600560904779892157778013190275912409896912130547979238872070541522136495469886842647700268237840783643280801590524448675207810531860159794106099175463471972697054062299171749278361641600370991796444467801675875683177341412749625521943088171722132369930280532295108461659895254400961734552200356174544450179869621199030842830192660412144540166322003568466877399556517437901955271456117111456524977650807116862445428505666954349676233789259528415556273160082331432206170016716144776194156113858812106756012994698966251531055836208070526384915373040038414960849278314006610663453925181698292812219828976648742225003887497649004264790052205951034286159982042386831348420228876751151807507575035237355291301039819212932971959387373212153454640569332752668563440432132865359271254802293575634236118787589624109563745882704137111465828480468372921932661975278084480700377519457576585259819804337801815760384694416606015689441751351676045064882933941227247151230825874787349883695357336424728660443539479195364099209161877149399224895681329569024103378181669983326577047726611948548344645813545617357695916367979077390400770963005923853945408413973096509007363827907520070387367918005017767027413900540413792472603878591199389204707202682963190099501734396549410239240671158118794721225442929815814187360755896325838938210966681628569384661239031414082772732181211422558347747075705813683233611472992871212662825457188379165339830018948180235462526802649293309891083398457046426248149145897102307142666454855448696107033510525703767640710134874815737653704144815854580008102299881795598985542263157265576348481251059416158356993277919708897977028663323201994810898025003823646836284003775648930145485471437140304628665794590829984615912673124037503775824206547717198248013390505798568762393967928827830731531929153195751699651499985466819181569412111880612050040004872108762278808246624701294637795987093050959268942113536384623490971327780016544141600790173839755055173508425517557778728155198675539968641201407380687853101681852538848399303962560576263439979562450394525827275892999936140491671661223703098033627149979766878601425381178564883438050157335360831476400414662136232836647430035066067149694160397874231959893531986736806464065178197608322433692601311924803118635428220216666903140221653715791039444556703508821369404287733497239069979890673888410756758806423412143664707590260958250585927585650701785493740209919996432995062687137875770765150259515563412854802279343998752600233657172194404621644403522120240172002909924438995009538803032610398804779071410437778431991362128562060249505008860443881036641889927276473606957136385291659290941924772284579722683167059291696067779678455464525723891808590121643191489509690481282802740079715589328650593156404517268574826907686496888941471510602054027861816305978836215253661124586802939814678074323581941612858898454089364661628419280580411313814109933079504198531064641014063408232198740442112704890395031744835649446604103384510008862828674302527157725119812707874495114059028274878211765313577815074840490953911984205202653765428258974983859598581893100153749027170738656176455000700617113282906823321947700085586699765883484010101784347138199735643131850658360110479250829162149537066251055519032637653143273539464792965728028766891262724095118952997175177800338375524335549943577918578854329330863961232617047679711171091142936818026127546596307893468999722549778799817991584144974689375106808786006252165436052395852779759818856412941873747423866171364565145193326133568327758473461444309547098766965647048624391156409634319359159037929462806293536511702248689443802528242694689646679254487603991419603873866460910715761860866509105965440055183951190478480338323489586101663183277743898574330618309897036499256528851716540404990865292009903318270186232599329164741671615639553881876553944815024863434935764020407783923100840852281084567699188531340919000296661166455692852880291474158448518319669023124690659543949446107908609799569496945928344140117072391397655595117527580733687157239357952254646948612326331427391571982437589122090265089520510568303314974003982437276219733900834048024613572724056691842742950423692834451819959038601349310697880234923870387860290497797964588737011160155160395170729548524882651679497977216750810578418957738536008760878862675209128741499079471679646077763519162389400643331297893492188632016041257914353324886529981819853339298414154178097169367670912634837342029114407973877961783916184882639226239022332849628736770204045621547502520488901037445513664284054539708062054826895213334628006601088911993366237620890460695174545742501149879286664552962312851838024481303751494298084436816957782582276756819813395251859187981064119630089830983762203908780918678921958551170219900489285353493539203899783922497576620163587680969156026742054131104065596664338423289883244991601814387708858214355078314027479598123743552838283441992458009971843461147221118666916983446621996364482429180750791705680484795223164957717773654341648942460197717295061281806734249033892449233502421748882470165411688969491722536079534651390535112967505854496538308015709354474856968398058755745483175331991584916590448693486123705530122353475830240914422568688482639429422414199323179901075138207590548245343806805442973174725508880655401056587663672655521315928035330438523811640647391587574964871894229091064226442246537849200765011903723717588732261236787231419358808970543508562308200375358962228413868783541586697653704280365697796338771519051361175185298605416669846704100372435055852072029800393794466622268009975637020089553098495765704111537853564905323044015613428730186510417287628007811687601201856248480060895287478866780580666857467770833095006375563595708590617693066858612829044760940771349240234540978030089344091923136103217957614424380940500509908145391036333964124594246430363531428828285819277281900857430421324767581601098227032637404836962436333098133519663588832799816241693146488013307675239023994282605511070691522956530805158883553567971858763272543905825894998789604547698960421189869910153067925654926458261363751784183618444341001749706368000272075805774973576150682269897262514048796897964207302617558326014245658014589788263552937205645718956015948615690345403638629963738736522801106294480060742624190556087356593831492186435124321283285675051091507261634453026995063094514291544583089992309081281875774415490110366280275613595642245361087503964238155223036288508192499946996059019336258309789713669068909603446787213833137893334149345524707344546510390331542717144151862461800813073192677328243581327108562127066498390347937146360267602159672283290990478287744181033661871454504913912578204445139572103849467089496225767391400487998721513684118864450085269772159606760286657020839681595023051581197724464882450527447195411852430213727159447765943680882290502858280373969609261099177281802422284886451105569898471107703387398390990346918597284977633344739366536184245339758159286169229023320777341395084533262166025388262628900321290262873683104597962108931902325323138608658719200611556838819436780618286230734081702337736838035600930532880769944908340685361687841300909498571363556832725764827054883105118163031780701808761687541938727761660192127670668330636177478857618689659260176376743599186590359161938331268857695337324039766664327805611988703317591482748299029639815094594745260023962957167966253954557643467048236651939648856351473815640910020312934055808707088536203719625832019870352515300858292384913045217273804060458214344188065531336788916213499474441892482831219369041610918573945041886285653756958173328173852022689375209632997700469633041347288331019166375366377229080177888219122372139111829265747634168321267640758427071443300079831147606278419954282480085654580911910802500704745273283119200529565809132202941666654602922041103298203757638403768312689666475608940308587896181209344473035753040639044112186788975865215973566837895487064357599435040598894770549768743289230621397068611284905468743968125942708907483449203134461214039348037944315703194942710913093166820610150622359494017211660675482694951208585928928378377777109938377358747393276241751301485652880165560404426902546659813085095416193051520471941601737094619047368725850438671696614392481883513904759695265964350559153154356541672867217416551904024098206708483326230248025668687339310933128775345850875525971219571013892759530690064662815825202051659733264521454685460364294937940763921908180145979106094174151849377415220540713372120377542686684550569165831983589515875405630096643021162530563017534943997104374266060021959252207207862956943217308325330088992282202173778282823950600306126928408096433132825346679455902658384099541016156449510829042812857126817162552871137016944784149136253923390397314715159742207667284666771658625284203322782622549091998367459956352650462124671883702749263261737802054579040508069818061922998318940417920898838182471759141806547123748836295396428702118109095960923400434476006743353851791692957755482174181679525486255026176918438368834269627544330306871785216998053656464301718755246539875510012444908523286552326812352269145792905345769670153135025222434921059569980266302982874172704773669371749829424867891906835338521499674383943217965936941094415727894835994603550938168376891347966946773727559714987608583874471348712676394384933267487215275518531250267652700351219304887749621436746728818368080681701900397007033645538521612998122820049507698885868310081693720307761885989862935971830151038739595074386963527925895868764265484132376266276557173908576818498649587260315535303290587385109391912527564970459850852952277566324812451274039685840511668218473399245670484825828752007415403581483311489114031973821142349435489989659296428129413146643961789559825105658970147240576286538760917142581978040228924037191143408017092007344660907919318620828198232803547509212742489095696252605727551184710495751750840356283476779374169851834154923033671041410085443092720375242642764034429196643275210528783440853846387450762225047611998071232453307610099399904704026513298972090940097910221999342519264092569529407885084507052848459729609950685039861467804543395363712557274391478766626104496665770051553841309929496245541971575516435609593625768256711538366147965268904078501367285350956730614998991524725306048607486622111554567650482592139417207577707146636720313386185701630269819465501935442969118456711447977427480136536698817724146297989234959921836566606865907152641304841927781687697218529084548344994104221241712730687844765231182712881884042430531414643512965226444871956943085101238582633765684670619209216720637306774685614035479474961258847776996004028295202320104857062800680453159762717236323060515083014827054895769388045995683094186811901998420753743478649219842635960585098476107020149690170761232750211487202218138224886239099257551423037668172535923787195687773740400776746071236674996791478214816550933197488277235322537564271637698475135139237818353896429567495589687313181692471076293059087186027243236470039634870669749574007324817242894048818815850218294821702547160043446335387267767912128510187825366919123580459777043639360092678217501330454963353391909583129162095676712467085887336949890584525248240827447903270065192366998720360074611963120473779872829747405448973859914951400093754514454141214522654040188733421811916894985416047129365981837282555061118931866288378009041349618104173910576895071979029230664198637389364234889455592777765096302114366809602676087772494417797116618464834029011885112411625950854770981476214404358583540837402410577177137284551018974998850177111591247687995213179306204902630852258873087703914534594308374602788468220380644305534924067161946710413124660006573901940381412430249529457514633554923024920916834911962215080835523648013211789895131223824690251455631819528742034429425376211767932576531770660926571646289643637826816845674374087757032003216303876131008652043194194658148132971538732677230092670936356329386511680939313168351896450519023410211442009672967020406471147334171953008959890634819203132066277429491801353417256620168634868160131054008009170749798174638468002536280968687716914379631945181352420280534327344310060973620440832054406191709845885427444646109550022148044050951425476163005704179851030578137944499385168782515829985825078021028611700931766341702574087218687669875051938741485663914503692544183925797913061989747389178039597162887254726054375128198738777189840827162624880943120895286353445106233375574340386049372868791510364798299328247782045030072374606236567563250955281377069644465288098244251052409928067949385486690796215407224073962992814011408000879044413204805539528555029493703486850045503004292629921578802955708736853473707106234329756254725940663624053789767583365685829915396942052534015546377326558825325415288598019735396562154242386218256794495190460296072860089392056979298890317763546697095594825581031987418187772611140617600697142457251181351076886714402231853235460723397978538654888939231744805789679299961588212073552622844881936248691994868642831507100317365082273527655881361338318084669003159762750277409499951546624673171449815353465023285857999363603684107205614818362144796189853179377779619877191204770772083308170572471021491110959150132012062149541613838044175003213346837100909035315342561550471368341998143406447491710183242436321698945919595514605847956462483099046606018915861528155742974328362850910729330178523963640076165523810297588170581766999928892358290742606936554847325623626665862299607045665194843558214892625728008057195199297547750013969214362162435327083732574787414383479736553448621884691652252551523522620583083159556251110102887185468098278532215486783661724776343769169388175296765773885616577057599671356871433452536262877290836509378473274726797717433936836693135675145709582130461118735923925468611802689466545443826759305657603810722703696129724355116351528327173722960174333744388795807292964257759651451858371565171693513004293062439801617269340940043260577247552325116488482464296766939477362329519069537662767286008844983583690815189247946508781443453491239161032043734477511034632474425456129770269911187190280751460631843334739522660850779163227962556203946966509728548500342158614141362196550373201661255462673898816386894611489430284837686135387447874474124745059066053369632788014906248845212746974395353836252120104461292418502965770557721607611342650071895223843862806700641505508456672372467888477074627312366526433336835956707017714859621145106955918192000656466572819235716816632623621494040578874304728959666913553463616042051248623396463543480022545998635023163099552909331755173798203712248867859401113031070597282756629475687923672165391604036803782050822677547341866492883085489789057030591942356122345059536686159503105546061606731012153101560677045644736876218263959939709491980572844484407144342337646112013014402656405432560983144540600363891955771322960631127413786351708639455542062936941480427294945843628869582374475352612908136792978158902979461761436723047272283404125446318442134334602242087668297986430507648664266504809754528063081854866688842888171102806279828653201783169113212154250610103900683459333286795937846301249689077923596425534054772893917837848163951924726507256301941964467741458787398549194400452468005749757801535891936277454651657803329149586862411796363484250901268020260516642893810474394812485446403829412966034264068176722431550554406092634778407233400469934517019967507206586747989163820409303736934769187459845611286207381457440935309226080142068583415419783078954264201746919473345451298866475432722753807014456301173570186614429840351772514823380710004458144330938436099085730518546321892973409715083023218317260789429195238785096977815025805258979756091648935348293414354528974804228781787663638482864634871914632823569756530425514974747781680185226515055849127657462953133445641463989798291260430574657273166070789974725148811020772009809355046121252241189140999977789747521919406804376971942271089683345341382043005384041031803299730972080928875402626064653573039118333622003057481013938983660822650639384006577396732046670704569677571785728442140044864477099900130863078270109174472869978234368606840912493908175826762814627083403138027195866530652712137028784867383582272601071100693296860705530693874272612061750470223840290382215398146733425293921247327346754898665076368910524343116414451092307508509038614032983155428311938605396823654352824707196913060085165891016937879793225186364120209798276392216999827081101994235882698573328976225084299556869897897667232270100173265008588856594300831230219746759786540781748764540914455179852086017467777816165633263879063759106788774022685316054545899780751023522498223346110223283673507509646368405315549956785602541300309513058915461188155772593867323498984132055257409368515398630464765269356273560404080259662714089008432067288473377956011946030449107439373993864812993132805384022209634416285395379384128715696726817313596440414339148939582988379234903940094093271375061227975494444324321389469513272499075054120709256659591409113531375596013442219831381688014283418923595998997327881103798292708592376123883122715365760198573412954436875451188640995400514765971956472611327083826127656910541622077234939131631299487990667929401424722172554979979250898417312056615576773692619663351032834432232492494675076844535892032881181580564149109675250858421900046445813502204730874270764353644641283213297892875807484414339472346215187909180323194434387731370688753601427617436495311378702912095590476666904477807593382785895230424819128408601191179969720013648594028597687770444416765113293750971300067889982415309872346128404982545503015945762344813246880556862489605230993653713687703140077546289996800734230595648461638436322425276989889311590494496653252701750370388015721889581670007303462659700645903267157036714822040915326198656762408601781734079231582521564487321324710390847230631115321262436843277380979528977497534333359661366739429854141344885189308992176755949191010741972430879118881616290876402688946283434132465102860477820702963118551092908412701944155544954304562478313917192828159126498655774249631669792403454479645360483768561514801729113590194258472631721481207801195510192677452161509628011613878030420395981029809611269632625889007079068967734200842284417463489587147616533178518481457441973966422602923943080776056854088696205819559971526156762461501725114880938189698101577826051522766506002300981863341444167024153108860233689938261579116203732496854420650578953400154273864013343631430324929216535103009877998889186639081636058971955618821192134283617482467781770940407103068483281468370284585854632935829217355296585863575407538471946216037274481120526174801175692394543625008477606805157462502846805084605734375978623417974500660469551311332298771173270519288969207566031372294301511299881195196265376751476170016819853199258066987050827869530515245906955817285816307167999200765153353998608535730063585431680115981511317744868098170025588347135544362892227360591621793496919891799094369998301358118532551697980427584428393476254446314075341347446057499882909969646904257915745009197235391108173762600916370323273484331331955920771380177566591640060625371078602368252553735785064323776257628370234128228884938250366245628035817761671167840140579674583020324828382344753729385231011788793857490666944661246715692486453672977976053380706319035989297446951464136774141856624968984640819215113387420748018743038234375270819303223905861046991424536754842305001937580387422891883459698857503846126328562716953548522701869634731775969915347793404846151682390643894531404643764559667949896477409201383180428091567670117597035962651369575242718390721981551785837903423450347611841506367311781727607477940847855217583489223158045914370153639159099874252692519651022095991306108770176224264560432336201168862586779246942079685516445790581368027088552267541712853321478965646745812985485774742112191030553873422861968616090426728808351922530777364253585519442099303143937904761544859990071275058951530757119788116759361008249039114304191484123870115573894786654634514948436505877401077020310931308851106123575504533183259592345599548314694197864971949594686470910499074686072127085131695887787902448501046748634033415727472419497662950821219074358992675039596636107000761379096802875235282236255285967937210760932304076798677266725843593197734312723486617459574189456303149124452933925690082991818997772692546541684529540809175227045104681948065009502944502710567182445683117992938870651627663516686168728101643618148519676754713047174891494862913417223503951766185930277147463113747838090468164806878593527474498152260965151311028689945633331423376683934354621623614420993432381627206907172499869767965102906365761072794412442632858947119948785745245729392532004329118063545318977240295985907756197013010047190574064067527139365997352316566162461218630536542263520643378021520519109122999282195597161529379657035735568481832021595063884109323356910029156406433354490932344487796092956407250784653502709189947218196892265334031743608902080984545871606635606556008967227894371229450139461732750563533340543783999024728380770357971799289961832070642219218584526854546613628565464396741538493521803464302876963844572430725036153706489958149387545572108445718273405090328701505997382048854653517940144756104380046160696772325093283593216779962951019957503946850431192337544692345401752503725846091791064690668142230942897607828120306273950313543022935343587190204190057612107599897953928617380461202331226434201179910474156046414096059598237374518192208882951080997618877992327155285729006143626325811017084843910437429770787213559927923776619069660251939482085932202833473928385762341575219300952574179111058621289766660463950576035626272526713984862283645119872652023079505030610485582334788842614848118905087942194350762683755288655753939919447662493721048833018540041742585530169568219327017458376806209754027104337579775794253779227335177097267187698471571758863300322661663626442544825804073431758735204367113378498758570089047735251250835391255618727123502890319720088490751004835000433053091924041354441635360658350165041753409062029296607624873787023595735123591785232716557839490399293700695269165570559774145750307418363640697041875802476549544266701588762529516819199185709756582714260880805770083018653968568880958739709702550602277080110729942050848500917663023285988711829741326099814759877094057117226505440123754732922567229260681540446509360995198988808725813452347619478634559098444454586131007463923334101649149558692609760955453384549740130238177006527913836732925649702759073505272175732227585839099611656218449210772846878037513198626151879948982217326281799404899833807607126354338581721151881796014531781059667726530411112044584454108960330089838405505012249521469257374769832395296796679258933242410047759490523081429552935955085041517578168375652124837063544572586572723977087073754965187001875643213449759918585324330454597020608469519518050871281108049428399954753790647521157405362830357714157487102220743764221082348835060312055507697452526639230692116908411741808776476818522455178457901272867988271779738921747263956245415165560057340322044977626127702072291748555584218666518624995040276331901087887951186771949166315973224108303923246352916181763103199161091369824482582676245933355030648786684671145595850829195111990478443409390875340647686331472664048130634182468373224877518743937573756577402488372590578753548247210213884851823643115879422715369985656255385405341274628212836601772761536894734238803172922264757330577263519563062280352079049029548932523992551856324748541712658144002004376357423585577735756979819718157733344044207086501299515649717189771059344085934963968788980914521727262108962638678910006512460289818532214619437729504682784568250273460411666879365044360039757934047671228187099002062323133543225174516364675818885291137699742318253948611414305539045333734470459083652086596994015567228820651471383752508928597070397703073714475666947940307893078416082426405759125130109148302955486390295693581792046526829397934750556456832778698603294548144628935044705977899431449989084829097225013522804764965012148633048803063095744081720278810798722263299898975817431738329054114426127735755300787128566050457025546875822458968202038666874680525754245227053897978578742597780635420928050181835161744571551398350996429037300718396459555880134603468553944330092397437123890049028940788530538153277722093934351306848868385883839274547390075298827837794545473779019752920650498974787019018248526602101522843312162357330728901101944647382999757519382915426015208315886838869315985684757123554247218360056922504819178263847019642378434942188480349520442512006393245207649797201728906230955921682984886082549058960610738048198925001392700937988748338117658383960311255235302098716256671473764876403548305480683776037800847590507979833694684342718602306586946908191304652360771571809445205629990187380945555547918348877888586590774088704331354013641671464400442751833362406137629930415593149649986715226313220661589557850715702686830893526828091564510906633517717630796205713257631333076444347612682151060935164391094579043114051696419204404052202600124347482761596998813093052858002871133614745499372477965182684147967110708528006778738454671871922617346529958371442868435466052916023140595681405588492898791520982376256054322150181764392071509361576469292693877754422496786128492409036911029040414392598495209139104947576725242835395953899460231030832246099807473820567796780889778854927890006243493088877012438303082805328384528536073282539946885566631885906612150994087628217223862373650329238629497424059568783271803958751365441765200120354288276117537223124731113116285574184800456545566471635945644367631168459933165279231379190011226119326175256278076331219369240154420810301358883031846702462944484672438398458160484581974555965088129827665157280547086779060761049396165326234415075436944555701262073550248754177369066441110014085460338977342502702360068792880597475144733200926754754212134516130210307955774812532839610236339221292642268356543215094804449803348279563203969996036708277566591890230701662185681740241881819207127467123735353776920428007270865154677802457906931426465770288501130483906544370896173165577253181730373451579695507001791939401834957993162642995471041495997624016334383150756123358226811627252452573107947096444408732897766784347826314132105054072795447785754121376621056723522857882911669015533120853003609107082311060614171107354172757846544620586554309058388254612297187821319767889143967390391858240741352313965089612696806819057621830927560186510800422615495262773840690280279717253049865896782956367050884270533781828546090864136521136666301405884992303751292621346044954125068845288394047720465408881058344208577021542326177642843546473752713719617591254933501199526554336276096099822910352911420605007934853202342443928323766997899803633928395270542264015122135272789993279426089127949823614489343903747820211399741706156986192353817533073688691262200632718649606788325234652916956202886420119333101747919136868168473639010966035876057920421862847911979308348660474006728254744573230661977179851172142118164627205218699598259610406649815691957789556670707006133771655667075033596226121873754467769982821356117920335127591293380591707602264310878448634579025299550978994548981091276991598187747012105532251758459071216758317185711081009656754101835135675708199847758074880764899197665859015511406389690372367602122586027034850055674305003637082882453907005712456592509720342808804524073831173695285354676038466829143424188630109099847612581007718777869068349133614083136125827306748179514673580860213829024005102777374953638426305804051784813547306535155352944796254566865007772205970379650243617520570200337356152893694298483992018770645824930267242834526536427602511250786865962574582308908363861137995130268262914878759062504902507742178231100867231437009587616562985347718702194308120628525325108273413935922740537460769696352322435921056742044620626548929433198774105474119132967660899852059646495485391631680192164314454904652724147493472191709251205307356616249375060401219697084661744582276427693214539491470515558970052823017817287230733140193871110592640282280900331614159997136042478107247721138887645571723725756519014794604252898915784144301266440290333844183712034428592069537266940334196859494468226624748236389139741798172840095615453525526972425459995053743752729666236019973860579234675577585191582821240321314755425869736366049566970998933383998467411720971584672932970717798171266354861321709865421366449796182701922255039570740183472721684314093781817970003763525652121931907340529805054458347793804028074885889310550811484464190310716860851269236949313228145501743564476718414105660106681646334396585738802779463155697614142308637505273359515677007460497014108391054990479371542846962634860877405356722160651294792772058923632520220510683916118925064389680343214910748402556598019026257088953137760249736095689359752311075041783247404997815260137822852580298311963327797673572639497583590995162208394840238525558986413879268373496582664240996913598379508074883656467110641428664552345284818909578699315676383766928789407334063020094731005910907540217061616074663688905055392915964598501954067343175575106794086921742882084142299985580648011063069900191815307599045782382950320782869671729338672503357449406041429467604325364834895849021499605349263497435111032438187622696343491582578945356329928086056970983492053585196494957762838585612660628172418415545404811335673081345257125744365653321063120656318940963657611120147710012969463603494246237379665556839053523315486796292464821384488505244769237060575602904790413282144970006410543790455515439806144494269802938819891413502495721156151871228200466955657214683366282257705565325566006393030931374998611344003472988174408690231117344750020586478058175510265341191839130780209785531789986208527703815248651370884243693251365988419314200067436150861006374512624433716109227835762430602024660187064667342738555225573205293560482927171258330394844105461610667771580781472799995791932017365656484605968680696685270509817531698020805054734790427776024108174645625946023742913034607480505062805920083123520021019556400833633961645667263249033165099327284023385594828673896836594098841428185877485546989906729181141266761613692592719076820798411978508418692460936204465459849779056864298680924562271710622836795525632999495349835569831307725089233267881116283112973369805450772604495454861201463058158961412416106681630938709975328992575281914425897509191101057880045965539620492049906751843774296996145033412928597065951543633191303650815937433215377746852693626082827792859266339390253705289880439792932529681458023984593510662981816870461396498054208808374341023810396195442234432468960905677596625940917774226350945099372817362129416678649232779401693306471975753586491979571491115867058030209239252257874380712731106023526768422822967860761263907157607277940873786506367047066913091759381828586790019734314134658855404291744161215005325835448553358729714705875231114120234150601863938483785045582522224350503486274391266971123461986822694280735714817510556619872679834385252211397211651311297857435643223301055480132258713609096177964506911419272258692462229320547412814321474438471672025484169509551323272510181930710021715434917378146478163164450360374572145799326679641992423929006158091938383734480711670844363029626529370025251460633496259710831910090119397499265831604821281142813839093753403223345411302957700925803165995198894937334665858551428912006655101304735164519693498072064689002653791941300815857665326487268361077049521771274424456978553648627784261711083916752619588534373638964668884113373477665038846070863457503447609628200419563056962911060384308988272909020122521891138968737636338716286375358213933904118063078593636993462654438380950164391433581733800121876705992177750031643113412064165119426740458276161993622897156978760265572607761830014483816626350587550001370352702360213189269290045232917080340851634968314037966458734235256242131172648979664299056656180667034406554653551940026914320936088161631070220805844477506749766441495564049448794576406101280497477728397819227635432776022095133366031026998112395614001848235584172990352729055364685134421032843134560888130080717246517575885302461286305445096118717548745626568001087767881536453219786610626585588779124528976729214256680317130767358776965000909651288475500979588838542109929589570813008256274216742282230255670536908953172847510618331107967719951450110802578616838900068836405959441334496084519437062668976626501036972458296330067740319075986785281940781350449567313779775723735330327194990838806451396269337720820139749952219719529622708136982145437973818353287312035462745317406720353793337765824841053236958920200047631918283614490152031212107169549153246355399804454315424981351608177440455607787952333568532395973464819009161430172389989520932621138067937095051190821574201393232617765631026140566323530168721909446051186651272508872387435167554829674347634675259009480581081489633794535473715228246913132168416690747825183118554782121265929944152425506824261752933246098059386372067841957553683061079110039818905135133165452044992334319718306327932695840736075618751327385006185437641543045682746858340414134643815517956087471725941517057640283084348236158758720129843007505493384573272358388955737442356782833046282935331452626546835866551205870095612994275225053938121088881135015831532238801222744513490367838041637214222242765524612885971174460793389828759587639093636140221390409165402030426236502637070062958268213147100078555024254771708258957074695426442137660204318472586516455829571940989510414388664202890052852451085149142572595545156840876104188812767704915820241321120603622652728143206195845312770384756841014467751678708156928655487921371909356892595097491300195376804216318668909427435158241038905128991535573214741814726870066119384772641538166293025463107357589681374585386852758845012464245283153651194382497134289105080119892834442762639949077664190842290498507348672422828374869789778038042862523721225299562503465507975125192858616398495572679594912974328721016769866991641807948723865038480648988792840953270015982362148508188550390140865909734500076375480081535114070434376404339167912888895532956420376716396541021130780178050359508012292796117927284499814610795252529404036553008706734451205287113396745816881230762445988138856260399162583636114799095913703948385068691330925563368337698905266413380989225121772259178911268767122607091579031171465336361004248835337965992824460585043829753458753655915465840535006790697878464805799266174511831361385136712977335114831828665287204100832016258130829804186596309503490160947252944592509488040838719412504498989361274958807052640215133051058807195929087413611554792658285128026515161019237806060016072842081314503117558974732542069813329351897412521376168974307479129621823512145205458518294080216692953733143308454853610471774228457380640137449458167177334422929037772911476463618831228066435021177700654893828786301610285755861457032521626905714727661255323920375233315196298989343864288957479122737888867282368215493677388796417250990127776522639918707689474746805985431118946048460451553617542701662260236025652389814051927611215487350449492271927509814034656257440360587226613585178179437070963813536073514524324667277076125205119545958706974474971386357766182103262331439365283147554295825562954924433720614841424804478680388165370801071769086541691285928923744529139914241792393323579677790046749551113860826014684205083352310041369370474566878273272917642509130879275331567834138415477812982194460407390867537332660455497655434402699016046349791267417420817395376281544149645950664275612695912296450363005529786252994268985328537202842140948693353647822487739520487768295173641154238142760374862406705313311467586673784439864314903215458234635452782680725553793931298465840950173516922967070874852087040697586123167929775000028705231544513999439895948000522220414434592807301569807936274296742636076007671000260286670503674975034966816208008403735530151913925343457661076034598151487338488493811899369372477797678302129181822858901906871665111186574501308370434959575274721344717048448168240394329245339001966448632270789636079510013446095736522991507304498116076953519471835011392054287687153288577151142017470575299941847871464789856907205258276963883121157532761005319786267617296254032399599384313475568591933433399014095871195324983360695799907933354604245940353724383873798004631417824700298844888688077125827305476323196334349817730455326002940471458288764985890163066335408399582968383264494956985496264850720388044836681333031950050886779055713757167661486827740368344094213059595960822725808913356564295628324333858251703540255956412518969336952325499236208019211492647964375704080838343040710469790019313919795221304141555407228612694998894537547362051500190931910143999605015209886473922992877805864845565537478770072102476511309133242758582154487443152488556225594734392454514192805049881174727643627718652801611043474792870220066154727833735254781622220779151828844444446961410580551668773736163166745575623665722665434951826083058152190488515533214759711560220946301163803687330799034937989500041273689111935171303665934506861159874207308259565337980533262246969913515372110156876696327401289212822994461495880711658053274270807797863505061733278341407186821751411027229270977777477404109481168401086770856057168658891883773769571102312273006676802160243801460570055035286072233660677398203266343500989577841254619229909997533003578606842244392373035048240468225914849342534184977002343941400958389262062774097083102229972441449016103287726769420231219537948435656677669506912704165197623591339568390270211887341659531119942006198700155891882618108944258055222147978232745305729374255791953542909296755345391603746800228459350606072316405035190636166810233400830764348404454455154245884145524226535775854365259161745425991676307100540710648780058488961555810707439377978032469775288595161254836695412329267274301747620189799876972986077530042351102490510560321209254495171381533746996688171310526614216347571606666182481010441499834597452748335414885552021010608545295560850539367257427233842985435257760359020016658836089815315378001232802412818755651382498330360917721170301391776077551804345944876687137234464601871957504155204750205222223809343651754242643657463824060358522834406717309021803811090644389736140987852461676175642346505271606763043201071578004578984966665775492413428809258510505831757056139462030426708168315700655548768334599843601814113169050798779623511599134743281317740393526523480501130343831807759185912184200556313478333712430673391734719534277190724158836806042250493591058179742363795519043750792959960827385851610553925123249994342604847510657230420974803685981382564310115846288615436915940826282151837231562676985527922224863936217816465061680847020702739655903911241470647775320513119363027415348027022041190728190479921371587243126556965497079217845327926878836883503291190273197653583957224623280424352480517939804587305051911186137780720505300577805759427300249307045352355886381368791531232658479624278475583953348066017223595014293709985687723328387471158435577097632516552997958613968777003835681505743183264278695421853201709565727617781261709007053530483732537098055104484828701183097971135272040533940219015637750089914852683786928138018851074000825710992956522282001623122669428364921117922957967083980407355740389457926405440809763878938509647648876477126288031343066827322931602975083077464450925114087846561413558676925626995776907388303684632226705235646248759813869155103699568118180556458893292689166964002582572716820613167836018006050837064220863733341596363744844871967664203904638186537940588682206549166588939752703092207884153617831635992136290924680595125471633776528674118420704714629596763672341525906119770130234572037673992232266736404152131726719170728168759240053777491228090290620541649285428212546084737842458214997014710103164283211933808754252547632729724308625073467390873985500976431934301962469603549326532024127030551513276599866494456096832885050626527288661183610645938733750373268408579684516638639574456810096425704758890147486035053418881466935475822232631068960315927034607881281799635253883644235363919355910578881789060403252312023241416752743151364975007419571869679809559581904395003598672892915924838868894085936615523421532053757610782819073007304991568117020666893268566113182862174912195682026544484161054864670089914174787157465321565581089076931398446081588638667222452993854247573373028613439693524745999197565167515904699485210055862430769182822912185553248664625239766104944249771965363949304789128031906908853642671246572276202651510755039750654863913236384177998813356068883536765083030823399523679770201430436317422924834483079947831996080519820474443517544504806890661582691872007185375105760180165084655867986210092872967836267248771527634612179703737192948560268803901273519622783856468222730881048844898608452118426541809245513112703496370475838609072781662179349791045957705093031984235288052794331133486109367026681635967210197915991509356340736270970626656463295794420189881196005366947551197780460559113951286685378118859085356531088711992947031129022130048656151256768261678896694905278740812312926303082574555134818837963860987078773085964956857921166394037860366584620496056505154261568613033598408858407599187976781072505428527174597645533192224197922079537403919144963150858193552937783045624440936315899957474060239525959935073301747390487918715378734400028264542282009429432912696791457325639586025366667694098239126792924328909451061921402432154379719894397489616137441318134965744663465604981033671789561903287118609613126374606177400635381664896744730514463566430533007603696101344181085828169600672228343229764575564328975857655376008127911491055269814076591466106569420315582885363006092395635209958895710667272741745758422683770664903354486916130015724820609353767080610546821876909390470896365162978810438865299894275512565872105106882016341075244941428425734197443838497261341449175240918864351504240644433330039619822503123341094013873431771322854400573571473081613016966707370451055495335256982949682146147320931222980860779877980235171566574478857831955441033310902620615829819618115157005106175358028811489436003698917757176161604686525021428759667073382750699694636178327992998085511182640178295992714993965829252956868415717184455486909247395832095897036248559783268904868071720239233391176058348562361119541456739783739103537209655842401301123103558498326783508687243064872811360105267566484835412107924053340107938088061369740768264702558274360064872547624080137828334159668792268449752556925606856803298361080250358050245510757844319014207041187793167771141506100634605836504642141683333584861945168029294918924412432228075802236197154433793919808200581862917150490620612921955792234379297883852133908401006454783263908605504314991080918836419052138516777013763037732872005866762448067773171674071016380232043247785971536316273358614698557262120231463283601184329634287955658485199571319862776926297062518952972743188303381797793590084791746118371223298722467364521362068670538600670572441066455277204078853715889429632342262815855126692387771577384068112821593381225178880462848518704370770003191894740936022023561795599757743422714000686054365000165770334511297826642794978992152469975238647874017197360350026460420452610661806381142014132880150043018993793689250969003349389967434254143063380537133386963009764975972397437912652190055227103239656353536836008303515470001164401315105702417356122260558106541498951025983211807861387735729203918786886485108296144315255574854195821533527173779098255808838139402370186224439656944223685273948628974632663058179124785733535881270698415861121914304411473631183271215285988007191869821014171657114469488739817832159454261514989057694097935278737406540628578887467998152575583410467235732366326890506067923509991929820088901130621353901970006640455573576752038264920038499090506590458471424625155253125564962767500810926777478250240862763195084237673181345043194942225533499373260830665387595731732437532307413194901179509613788728936632855872463727835951764541936530547955634976008570312450972590820330441476213631027996646596999456057169045978111658434194040351706661858308644363749469424591268890366580044398072225595870808434425018569582897287708645645912348996745648700877548798188257852064078122412587009231204850669510564143966633795571436095385149821916491785672617051462492200992888018021983951755085408851431153687553991273495357692481305521876979773192168406836372309340473989705063126083442286033337256741147079275948595108454053903837798279330212363148566252842924275562745080625850204798262880133808438073059830311260897315831468163226704145906589931518095961222687476031645875923875902570302381217326261712859235785311877134785257784202580818161522335525998515267590835136364800022966175137528146245356336959991425166788790261320815771329577757619579827911571135549238839531778505471338546424761524326014961735565578156788899394964251240905827049599439394327840093815558118118559371545975645859184233019347116914094716683154265238381114407760985383397203742086223046330255958950174898499645468936887466087782076134146720903406364854098728685552860254828776536881573205914479136847793719252236738565711017146878677442970605149083455936280913524997586195255195232946171961023343427351324202960459083836288648822391278383020556127324900078462549352013172760943780514820417441342737804321714407880155395279699545942754395521156444657665332262145505162065212815616511267333518351811396642897043985656531891004062136053554412696393438582069197708538735598607259911864614326046931996971391971813076785423134035573604064576863805672990950201458446927077294242510220519305361831907293468971310297990760560162062140457972941113183420896598302824507775165074341947673071512459444493035211716463568069735997415395004896103056715932209722405479927879313594686545326269758548642963555283674091734356690668752973122260363517036201515031568312678415992282791042124115413381455686904017730878143360501977407227538839572953855093067089190851437737412814937084323127349428444345467939578897522429160604164538562416578312687023522759069411486049599611160348181824921163424171169835189102334065118573061051851613143834065329114403332006477910201263634188211965230976618079426281701588085995819036908328716100547266590498867182892607949309258954678800000709242002109667995239720154738124005805923525969512741216088161803976337049729324426506442525209365324759333630835155917398026885673112532648170020600991928598763069775972040826983721245350579057026331377327506684861111934072602526382363989890141241792912019545722496980692835392555211242134572084459981075407317044451011031671824560070029746821421929133054646645871555784763095962174717147784076978987321211601655480111031393383999075047450874575666912537000038492274846267119172145923472593500021050842246046781799435608375347348790920353626587698101977064088129512402540175551233361701235856173412476926510596552970048388961876901656374071835108878608317866964892909429929165973215658816837175704772096077560738194480576410602947650992783186277640591290249946287690371779617953653926326217795507111792750473197293403167954839932552534592499240307844980411588236573561069209658773432930488001007219766625526832784858355556951662259482101847437165402504849066315375117764494934740330193220880535974188933632146089909570181385178327294450424043323576806205175354691025907197535480750076614719148506544663447841760774925017543900606536248667371429318585315765902280054801115313109193271101030908989728451445443484542999081379690685523947089409065524440020831662235323730059923018362953038155015298406351750203991801559325066032186130237277081456500332462042644810160091971687166793353739240979147667072186905740599948285198916828103630878013577564594001918796106358569771500832838135038295211199185721453863183177210327423844880793957953724835449639755318328588771035491434478732976112526323918624980745843601704949098431034707235197498372630403355715193294041596316070532772200858132840867896846361070464766860093177619406756981982581983107668104843908529163674967400564863921668962636011707471038065314983345800614484471965423485725603048700980611212241247039229278387553853738888361466764480897111664681499112977836100187935687718734718080399608850391516753823495201482604124309029043762924812523164161522691257885632226106038235884796975191851455452603911100292782567182274296514227336570428231991759455172471885342783747054381072810973222914476911582964556496897507486743800599474207731495540745695829450826010008869000824172706106738858992522137382230532142472205062734925754488903216873318248456126111705224966187980961286381693982028998704178696573476688431390591188879591776732182341487250511326751495861484640820921945057151296171518160788982991508946440871561818302850252746908995544249197102078152627150932806269769374193835710391531757799917611630490132619244324595821356550478104034067008840562538553404845143542490640708140788310422703791823843712721795141903433637790366434319367996555840891757851785334996568267270215535815000244428149446317564640133349963331521678959798706819250966983497886263397201279876608487370102974674996001373806251282092140215077336426082194982695610441272552861126721081975078001741474817322549878461542927282797815169336955215776447002399109023324026289091012306072833059743426235927099262054175595818314928787388940009889758674124177550647570463196175740685933194218051065681462850412520807983372295410636941395709202793218319208059579192195582701005752373131896438293508368160906991858705613877040329428368407879480058732154893594722643330042554045769318541277067025621311350707949840576016105164809405305866153084705671208189843049160807970711869930181587648472771499593925394678865755635936939750765994158915011740811150971730336996587273973417622083667950117766803972260652813671866267036304677622541629498263080922948094602143721211823788985692462701328238613004657351724659377463433464667357419111260568919477352776693499478260639948997036246449214684709781619480536996581866617769686621587446424205641773905901474414512658942055101353971398281890546811460492562852567760086108809800074053002384369631975554367793182203436231848015792830486907342875155116902026228546695432903836236219647785795996934681665330942398939505505115245553443637632214325779495219514141756313638504309834730340036404769967881977072017016183735165984428525401253225888571243922248106323839775130389403291865409444926638022376069008560589928406518599350466277777305109847406520794126406333486774051620553813637805616733564332487330472241857773031294346683208720137672001938734336565871266090038950372959716352852366502184461785091655665941687847463375673547398490519331461438341191145146473083879705063397233383961004334681821222724825848195570733847059046008876698814369979605134668773590891381100954814522347240539875448128202311094984155880115867528194686589421723725903351130233742876846009833803816656128086418232913923556120393715915609164533854767103780947581589695272115948202593118155410556092918674203367518226632671456819211146065071156082720655610320120843283012220613872304159565614017257932493885718715777414414621687396692750453499444817325351373189627907740932274109487388092028110637593289800361205486498153818141538192447617501829584709216503836081658432501655755031728710367474878505683688211381509363559008501156835844452627481486650588722540882591252220359749296544860873152796472587999135587352872493262423324336538075015287729843406151547128640905259343186322023205409269354467116925215694460338968018186454375283570668983436730345936547013365886138272069553179142430209430220225598805889629424912411771825416162408636775315723584194813957275237086103194092030108474817911761007544255879857859793558081823914022429641807534812092030161533132648628563217063235785093203474330977533826412436120224510995391084260404999375884958279918652310783464260077286358805222560320601039330687606330672028467120544911892695704504479226962992623955110808450161127658561534621694952480737979112256476524137190474555688743350044053885116225228184967729946512864659955009019978216833793887817280120122376555756618363738357267704784561964862253702498843479810535460396019270697463301817592115966979231170796598833336609822369114739584898085850353153677116641653936445524644506524579662255624779363655304514343559975045283709729667119230478284666881806975114961004772173864239709706764471817871199970896148034472183977314532860513110406421533514019454860239650643191101182335413115426326678980281258910844676938666672717005795313446340679262218080760250915334749634589192597843517940008314349220952975205288909583496317218331871681526993556301942513479575716071376451184234802627097107293420090412724156666727343804094086019629827797643879547738246936000981970552080834599845634009276611089532842766036380207231003381600567272180374181582904964184764953348332711932195642825616200057142460178460375404040903923763804223755176654930739019497245030368385592091660295913785779298188072213959791429005853812507766550865127283065125622448256423496387159169959945967607870823179481291600913670378680527709565056493662820007673361693765176050322065369120664352719166329747366398652775758654392099005111906126543194922154707124693423620431894999649862507287239847112524050998816297329943617277697413151202714462883381886065621742513015930394557412747952672836724385151780122208197578765846208999055472897808028259937012178690288459071838207414906221637279758194736193035922799067659177984437541165829400788555459857321462713525932392864111039914006968188203984127133682239661349168496101923790089363880765753252180889020868930939397301124522880671602862537567524963057542070405105867761607524878819487152223313620882573058193394542210863360236072743149485514173832790729280427681340372446043743570958005930239660617161036685868870303637788908246047253482177738357396520906879261092430400988140013571561725656515894288640573289700029294088336199972061552950098781480487747192572949046442280339980235642896294620575673667665759274091634953713115144374887561822701759288503575248260211053864756711462541510045591980161222331468541513297081300377255134478059534392372282535447760481611827420216821861865281955714171357404995312703439906700177199559225457574237347808061546053125014073173229481541017013078628906091375277078704674188286987669531810408356408495611052108162633875557694616286972977707112606209144007187167651238048454168089460443903156035794300413897403900528029022606812102276154182462647578340113640385285026638593464439444093057009331288498547355524804735674463993849267704423594221364171513297009845047022686453789454733233802525977461038360438476512694873458908963042338820980539352242287163510308007847970612661771123146895936929517229821697027665566254535687457526060333989782196769269273995900415525902745495499733552187054322037749832684385703707524849104298995461810790601504575585079863356131333654559776782238681150974184376178207581828214528349690572713498392359051144188011424937645719645908136969798577930162634043258883694369269151471660500377410134210627155966351591469936972061582853838058986539394788330434124504859362003898942479551105227501448634192548311233394315605813492037528810275685617213835841054964423162953987400093178593853150360853583000512504523957021500154304103782023373245585569213249073116760474382168252321240440465933259473978825309921543013008263402733488467937220688133986372550153232903450188044051315930787627355747627933839706464545331369219269619341611215100741395653703762193093164288154697082341633899004144680497035203066974728310783286926022302662987095857193540866168317102749716399819123241613342111213825108027559354293314000415452360482977055327804592678091738987376552128650676033308167557028226463968077144702293819366588533978770781237589056985338926130924931994647502371812507156846463009648186090865242537628825760660297271901204829499836879013891628089111928098826647461726117800392656040017477373956773180414697960396647396143418772460351188141805401299155872977704040842046179293090547618021748097045433076136749599911020091457228647614653481073411386540121931682852753321342956861041311306047432760192427501164010045743276393711764117674058032771034101914090056278807276311915941438768006318855930705582391197261833745402732116314269339336288818648664164795848748907179356258581012182099735232594822908061258275832389032123916683834650876778681412670021817109228045546893278894891292796264298257397077285562130151868701284702279910806634990992318046793603930108591015676298493004233371826834784525908405381889610968036239814197437384237339536598836137597840216101656345699268294381354245915873994504503036643891182170938875207137133596687980086795134312587006582615658881610512774950211015521127062338287420283691282355553487980699293423568656555492994351920815898783983673841715562890427827160312607605283881345358064506504842055628223518944362235088801522226396510379819479831271534340672448045523876719263766247967790444649403807291965997892331065459045712383953712447553461438433329882961827335407894321026294812870874791687881030686106820333802871835797511975477027958937126863733323195105931118541509400130894389958990718577778192210079997808534283930398261775606872241236999598279015824370990393848321670753139816709309248520919282130509795004426865648378425380932012110028551764290215685694990054394020134150563699797847588415422189523107877069026360393828038414674260941377887248931120118897769484478209191979997440715250585707088443174790262405357117677999243345855413620021676220710202173844443527576984758994067592583772118420954341287488478406193865063973120248607674189509855722886891596055464841201762333589380277997607160696280218129537374151552174664354463453489470846763304913827431913447240625063371191562334390200548231888284599547467533748128142707502410728025600412131200148926743520242133430622370130291941912013465787815633088391940800235372823515896295528345742964004025988074046143813307124514742530017415914105025986383860663521499243810697577055448304952238884647295681710339037868634375759138850517799057313670925977355933113774178748382051154295905243192456053175004118387404953568386879286571132400421809982872811955655048069506916605175572637438337710710961244301075089493221099211143689915102007970887313554512447343332365715760304905375121144453815946521563426969863139998964545595470568308407320260097398941956587902734976561144954903940904868966959619302028105146047185437239099848206220099504266095982927372745519845132393611672444176171974981648853804041064634613895427899102924674891264713592777501253220639474027164624850685745305226460371329071508545904012055118416830629160629825852707568786477429249036195497712550352535517587937310041662108050491456995349170169190128200040489267659475377987631860133794128383813010683239219715968815822796065216905862612468701321486892287219656653045479485420883528945159360828284789169441211359170216342185877031073577049967386833920474611329940420278003150894164759915936408493664507891659792512618601131688137207193086669272039274304170045437192494108676096696816950846207224170840308042174363277943038379664150951197900244074081627032487552215597130397937519139457373001371778808964032504927443525904931928233553969271104813623190633793931529697544316444313085134462106731472462673287921480719020806586724043859107367209177341457511206790506011137248229580730148155883502420741964228285337936061727715349965089319576985406805072799653546881010054994725816010420446600136506960329481148941296157806402137036106679666840629513897648455131737739008471320769401073962247053425604930122806510576767119614305880880774831996585941624883837360524502216164183638553958794029488275076682599419140665471744938935952917858133782021433911566536323548038397397280317857249862897592564387084113465889340912943589082192111941431364566434926951962500268295239924789331960469253541358216827272264614211935143625031169631532273520058313033930215831822532329416483422652304118118756129661638418320386097097026631140103708800816147391566909247346292026604657519798140141012404597339177250259637749507298661460532371739397769217376791751315968946622905842098821487556849416256138273779664631394107056913101106000187341313489368683407203236604699393127366518131942952398646340698954676711134316326229615088696970823325802606999422630855469751242821246276049263512974427805815235273272922067460976056989159545642073533386277027412679282294096676268600163857512770719868884886105649397692851409614967839451045750283141948246992264824057935497080240568154325054329433644650489247742500983662048278950708822588121873739790455261243045687650984375134524411035576142644462699332048716851673050286701882273362626454158056280416942883862338590317538915913117556682209568723429768908568694153342369041554715520283451459857197892308447021690644315589865551637921112489484307260795856377497368652953510785588857989989414746015489890930769887008798449600557370872188971098215171900055417136272900272717171906101235158706475125702228594582337499308846405322262703707386199492947283842404910434428509866327231442659925678558232586608179128780877065145675514418036602227095953969202217201935703506518870819971553784006750390351552092898878697569914901638021226854172199985682174881187996153967588760913269590639226659956790129611104348630776816265924258214299801306734874620888140724786425148852101287663720315306450250965595251381062323726572484641867717597877354978273568417885604854340944575435788289243930583820797010747033501406111934554861488806420612048928007083040360457830976130833385323404730025000381739784639371943867800332973216282515837465632021772968976438877110497859424201067500002783946932296899507172900488391000086070396659751489702810362414828619607880147386714473223977384332797563268332210503144612852073267215142545209809698862242389924963942255429672573312948774471625311069487528731637429173240229491617445915162887973527694005952455883151164067734413615295410040417181729688046442976207941957777021928997639623744908987934515317095068854477657182237393433684252906477403122611982171679181483972682059416544575684082161497179479237516042695188025173816096733087064625144443889871073945059713159586085719580813234856969062171220407786940592093709667088544212357261808342085129863553409157466971979759091035065457272706093230762515554903774953728740336484752148333317810394351811188767275509498927206822188706525231410109826229390103105035930434081342684435565389155344250448150967766933192264680489901539472840736849364538419412488283307411574820894107247705522222575155636735122081816961860324741082092926158270821490165410893501704896644823716327558690969743966175966544354501646743896241351180168021911689581978559142902170568498213195182554820670165676685491924002887323409992947344767911187153764373923174595303821540876450432147134743906878076803744822028837846082242974018776140297108547036048466516141057947836961129149930655472410873237511844457050634464634970551205343394509008563057943719269030444917621803431719559175584098767302620774623343425581853731938518177148831700228397730907796786877592878040903358475782373931724636163621392922535655832537058736634014381829774530231781284963822928178312759411417425134864535278534432640092340840254793242726689287754840091417144284148669393402916804981125494811116469224747475230783303342273218750239407174961576302768314224840536117731942170309026892780174675055848195201831647735640736467907618066855272534793526886315749537761934472971188300455884837986438057792456053534375866753391728635847605505435914281726386347070061870074502334877009348714267500175775770353618483911380513216491738765525633481133126325407742532501979149472660202217781966919804450239122760959878106527898793521008687869635311150192718287462354291813639244449307850446664605777534552838593121836324601983404314357093634405249281364935473047683071876490021632250365421562219601458271236449371244126389992403720432681252319666443126664289780082766017856454005960463609152736035357389434613111374625912909930973149411117079161031618212046466328985802196308457076364881242016222211822131565481313982239533594707263185242699226246858380222678460643829776237356496714703447334057168037858049071203761901171889047755557214270170195636340633077169885841608283888280682887800388347639842662281463222868841575005734796853793179497399266362930222827474186149048088317710495086016100963609260442249638226772858608707759841786894424062397042885846858474126428676858465583345991832600779333327724904787489545476798249417986532647864184020520784648291126889226283173042593888090667504827127305572726002734225040866294121687380499740128417871944405443986986457585588033054996054484243915825949739717909110192624304476373313524893691615823266269400670301893182901503483155491816973571935867431401003842617791221888745020571305657561920864062072855828587045565548298747394125970980236919297166721574294345206037744647162263754232489103244217900005171257448578975581888050446013870437992596200765021514112327679978228761821555292226562561549463129671352405269553012374841890638532104883646455975998844152548405063269959862101066626266863738397834608806197537878455231910306079393446823647718597062704415092974966657645079821032954722738641841528047947894371142097089135564879051284959712709180440356856087812887322718297284814715888416337669961740600612496114302337337043531731544942352362954139549920398871502888570466064975848654756247155260008061955694276979846335615063199231219099941960034936887585121137822579039846599899286540809390242909350366509689899259610965837386032243491444776402888404372485925294141974856562167189984968681145740855204380959415743478785669134512185555796833054765018184125613414068233342071692118318219135476053284589916706795975490756717915835795608757546660301548693705633516884360963085165276814462676535104198339032671163263767004198925845045518639919165362650470679380739104308341837431524890031353872783285900666975647106135770023104906589161093506848438448092404381396378807875202026042616849674203983844309588067763296512348880101373861965058359100269804248675455037076679447996292420637363812602496625424386346546354120970556188481220523855543415467481481476100141684980340919594646132184162028954483681447943139981107365577269365459906147405755218440030202132284016799960034632180201326106845117373103874528924492108215765832668813323094192675458070831287421749633984818923863555969963411628664382558107522153571671189293906372687185397449240294887899319387222367278882008173970380274594347253576822420384965143911234255532513108666331289946129048612122719104815952075571755985719078855595173910192338874736094720684848448786383345463983567510692133348354036579017342836092201728354488277536708667808881128910878459792840763644204541482777909078329749270396016025765116662923524181463150666938144947620574035438635235291604277488373889615343787523271448712672274209346765353176202926929948238954322629020834194906187620627708163053126676143302146206531822398045659719857342551060957459880629870183105451126471735673189425617543116792547821350933388305346204905161423987816050322943693035949013647243687186358410282220914625433571313549500033944438846594098074227353871647995105960753086713493008498936814238294816718603793398705717622706772198286737097635296428444505083030179706672183737531684456163171733845357609413456866685724763486374378864999159330723686125563633359953359540166127214581234532468630665055389615922682363408988078335602835527721183478877386459082203847335878983993252589768102516379109123728238665981667305405131028423354680176420051581364825748517951305132106347271109185467146186759390453651031373494852734430510807117877105377837183639645309277228230048266905865893825022747142713965968603827753039004799882793361084892606040531400792606402093825409735248973167672323232077313765998607887972182595908136297403502718197291820871660021251749111348301931478562357855089300447559037762606195392908876920610628996836726903722682702298733859667048279624846723880033195409964228867710989382772229655003397151708695960242644784787151129084564424149816758419332394935685538395746820762436693809374365310316984509220586703872121418842186514689162114420259350508761742141614242835441328041149089725074683556127423403947225645311912797443016006675606707752736231049922358022689091666996355361100944546302584882110757750910194756353088244973484342156027572336142847098070857216136556062546702246690451649410930669261004030354882360942576786295276179617919902468186453926501843477095711918064015993939428541973109031286645819253293070542268036071769380795289897047553897417120794794026514900299801146385358613795939749025654151963907407763386338903815242918264586313489229165810906792662239933240520578643042578953291164616433981713691322214269187437493653269718957682145779036633871379755077521469129342915589976934241919718061503338825066178757921710501868658397974480944743710256675912262203880192820831742114209502630734232659918658331434015514155095154604815427890565717824117918313607609725162214554026376330078642522531487860660846070801710865502540780203883408198867331753255542492541462300971124693970702945312167154376399416986629347380423165970960767488507338140314738309679003817102387849062821345107767910063462931041766360702520264768369653864896004550758520682295221710652958623266993898206137351275810336388875475376910823028785677773216886530590969144520113443314154756525901064699746623466913822953509996049082849036081750692606689026587383425600399505536457371340781365418615223229028417392185655898512629728397162110046434092056648278314432620334542130580401781463569864081040113248054349579111444156352984982611486942935081182541543812874075734231638528532796184152599870422882515505040632010208406940042492417952259399676612946307959893593677758702295981704273458336555973422834729646280202158971994232849736116434992758893037686163314115589630752132790520833062534341441313643265229558901411269640915274266213944167050914928722025348497790189765539399725669452322265681598037819028388706856372340626554295088075773658328341098199401237350792469806089985125093283950019901622739311704044730562538273180210218131133368112352497687939371782512940698581919894229160462772344782921615959941128193508984774019122630801523597280378311665989298850872432928397898572857809564770245605274017453277447976431034273040290881647300593752380269018442017759237167973866398777040143443269305926183010394395544526973240815742997304206434846195121764876182839303668238603208172293497553457847035704798647196506100729313276491469501162847253060617778011928975155140024209519457412702709680473823596482904475421822940923715370185347635471208666190448345472257851085908134652798802873660942328093274770414865723162325163565310413445729138862555855817505827082937622796016693998914935232663871061395003430824783922397709940569550659892151868433112353840751989817152107549698345828908926183909152145224848965361273480694705859934861629994607896493466029641003986594185882113319102830954835034805747862781564219601856958149771161779425055738367017971350609813393258117312353687765642909369952803270757167166662201498217154268763412294016164803494847094095577420927012125966010335185749540030087295166912842325765868170806235191045229852310957563709052190125557401576729290467021305099991882859830881405049679224531837218771167157323788465805585815840136323255282277903161843351302152698999265040406715563911975946929854181798109709486836099474528869906219344172705937088314809148682988473893092593462186750828168917873619472561670357072432264852887523798769688228702490350615657542136336098599357916863609467981115229591369823446015873381218969074372859036878737452494510205806491512209990935469157582031144344921416022851383060894937645455627398802512916244723444062263117516443983179471155226853676388564655514435910672761443265089110287877663654987303195258190601821352160967818435694487155530992508590599644777646054013820486813418302923667550890398302592490145868565599985866012715447321555965618049148182927676375861796842142130731993596439199385562426073351518669183324580876969595352969116403370660702820735857903873524678380339225108072387900065353647527680252933060110314556205970681942842728099687926308613488094095209642663991623310254640701329556081885814926576648709317533984654352059618001876556239451598079494067619599921401366231243872246015058415670453693334108782931189442105211839193997328684642844527920203167349926632629497782559166682573748941436200318991745743908938763277818491626931242450051675940245262135280181283567628200469913659181356514366243653706480018727542618816612298033942235552121907273957089427940667094502612348351879685049969586804293678736364656462687368961227368389713032527481889098674650613569192305964517437301091932221156638480174191938754267012693705794365402615139379411983910553461548958812913588074031483354215398025728475525025708585894066667808178692651006079786056349271366342703201469034351856693929791256602892389054344338295255792074555005675957827049653406798025897745968619030202675407545994303041630419550692085480017253277791351451231581221315830872010107176183516084973681710798252005332340564142155578285461895674183358700521625733413906238780131915787827645211952298323751422869351902071526489297023341239392190376099143058688188094409969743308040607083640313643966831497524832201488245168234664608991798939513005718226452602217178063115549828449091114340556557132749702699812604424888240957697808249912643095352213974020338844235576119747033585329529059640947888531144846975753523810492461454280912386537644317878872384111520007009285513920305590119273797659325443288536715484397023832530236783471564499111534022257872544080832132780686477570768733676027765660501668576043516720081328136034664105965269528716169947850425950899807409877609917452466849298312159706785993774644537260064493712342430034016437798874345102921565905603483629686354821295476919875162456405432985253026988284410239498012462524121243780883712571818987200316230799521582023433705046664116186637229489144029528887776456213297346047253811632815521445702814781828652715666207464555630185677426938677611740410194244064685518018066882840705098085398445470826868146087292349461651967797847852882484274697274718602676040950878504950876494389043388832125746373041077356834046435510147114793370287143512707198719758496816742825436202221159965105972882587664509995259483118768992873263045952462314739907254821372018375984082534795311356637158851209970743879312876822542642991946197436655196015359386222004965025952291065825459712847245285414169738035455424802722845304834233847707483729934094258990683487668957780912337656280044844637245873631027459910901051649617565430375549694839383124187939262130798492048727183445418412685085971575329969158669347995755691298631322083146565743182833639029483955214591582452963525480229610335867225955842175404346573631265673681331444439889439321578688382014966010705045233358718163653954630858893158650931968800570695794200742514509812498919164971425127427197075772124259658643920802007147558918575073016046138087207373150072938929490811324245137697743389274902487478487204571465842819480207468656576994715654577369336038131375836077094943238170159894860550318399289439268460560461613395423458017724515030508591989177302751155548299377042821428974682348223658751361426590032677598432384587966044253191323093210626509583112484133856346711368218873717867304362259230952118165547913189194623867054982753277495958880301217525216217303905071599989851090323332272382541466654013504634109666019739512568279192123846178710014801672263553706531970772953501316737845492150831527265460612733122760309098727467711987821587945265896319789582855667937911220307855231465234296289610174008000482071056123516192302453432470972252489455127922355344513306475253027232588954663656373437895158208029040630107557021718951869077545110480449040971904390064921410699490381883981744379332522901241755503828437129328009463123208749129597807875495713816856991928718239004638380646298157263818526036593587914670301148542569764064028808614415813575188130792446811530541601674747264384093436394089110516133906334115995450279648195911458197249627286049905157703479200487787474567382740203036524124819214457496683527603343741106034408534901169449087404594783655523253114700204142820068655233768418370845382604623382592728168389757497974168342725574404885781232777180273229641499732960603609525507172424257334646080844728055317182631940108651763405047118617880447459320157857268779035964058429479129434518977530245633502264551671076355771394502720954613092272682645026100215344578823915509055514499578757968955506936045713392923166681701798897890023208572535018829677478185485513300872375262618892856899097239627854975965977041743973199510604785267071980860077554945968489624448146538632898310383439944222964633094907202643544893160114851388916342227496825449743639840138308311253684855079208583827290752302833755635838085960063318677644331833033209044012273483733126044323147769878593984389686814234812655734121084901899906682314327245020499646110974603138965038446078746110963236862350473222281767047613232455620544311367612261719524763568699899474736171980412459926723615674678241145090332256288473431435507967803477623291887533900599919363482599568084840578122854643046397671217704441899748648338639363694207683436062725226576733298000408968632895973879520480849176859668639336829845728115856249275148566846962182958530184766128083952584356012260338925075545781946824912975704843589986829071358394248193230378272837790682762907357015943541363578384857237477454301241662187641417973038570435662825300345487237852414643749489195980144056344792565231850745779941641772547092606710694048270065740635871042359854111158251064682083901124961269516464045928306379740423259587162180525387524168402903939225608072100851842346326066475075732352748778007482589868592266768267836208851396838436298360468645189902990038185709322790768004852534115677069348653507654358058521257937905110606829829374117436614654128311383720550038529090035160910310443086285218429596505542779660678720110185720499695355904743494678904626849278620368818941919066159095917021118070980354599388638683421647725201004319171770913529032380597156444869986669291629539502632973975488926245547368539967005088624977235737909337239302425809848365497759996365333074822762040710821450546571205032814646836905017529208074589394273390237815289690500058379496055762993548686166542864781272566024008427604461725150619612516076813153172786170150768198190654958868068852528346060804239994506743512213093030142834753668928744059622424195865580630308296028136971877702836484312344348075223988518199703814424418869612104026578247987333640908445733370334696242255080188474791802782915763901687783401044308916723813603883811413859170581472734566759905113760447027284380665907699395211612090247559877626749568210572209458018987652135340289417596319051095543277373204183986569743148449521258909269371097502391493450474285502805048763089791711829886872697184881555336955922860052706003156347964393547910824715471851440500906537468492009773847031368057582439597107714384858485451291881226634222681851518714132563058222706565464907269035258985900795993360175019599092541501265690523420953333961604269904637560543617366519038738909364587393259922585774282524535259711990430052114674877327023299050944493296114166615841771364495866846205498314586645232075895892917477109464054367034029843252153552082138271832415443427123832290369477673936432309221899913788851138024434142191748938747972348908619602539833069984591249265205181588270605481959153049326430415580444185978472798724098012843751430336384813864821464765974691352092696993634402202751990507840535970050087095386037982379531594143548286092283205836540103606309804406102450037695815346138217376896751708632527038079292775696378229404041571931770989546669190544472334211398688059288085365219625451716285533927792339555279011638243433581676746325964324011738077249574644936222397331306199154765128139082825276523586502667415223632774760321671165991542797790922207069102057268607736186019239071089745228573323264729094876484469411130024739724622100407951132047720326848452779081674138429173636513590020872672936670618060903410931262984022550599594536714271439365004357941780681656439753617031144694474716951524225172435923609038905668658216680481780628348139250838783022938681734466695098182502663303384204201907118535801691325514427420001814025064908526490153875810899478622301907121655727927761680971457363176837351297898286868356621825949277363849332372519449343059927617859126525428850380850965378362322448126297686452221050903911560404314623222116737822503900405345025991687614148351199177683718899043981902632141654011538644962715345239632968087387203734129860414683142447908440121959661382298102358040223887427295041954542154567188920386060004183952271821616256571015479187450885031229240084879575682371231916228866163837472794580368548198075174518164481654373612969148903075559824446793441362450780620419629891696279999777315895103585031923721272976605181102718228181001125442503600482059788935276160773128427743904243151450551177114564171157578040243391379829658404144775821700772356786706215601931660239987416640555634444408769194493098546228881257751183842861213437822511579349080215299929044449269414877769954977697688963774412922214078077800836998642933169581621035917442017378058298954758727954387906224988456603296154194345450724892130572045983013405986790052348489659079077579617472335250904808045791384513356776976737685412182512323631441915378669129404541788928006470885169282075753533303649607783223530828917163176133092382956810665487535561522365131430983710074392609220815468920565574420319839645959442069168553327273325215288273839531813700734023802971928081799130172929373224260352334981821800464917117155576997937896109237258845968206232662445586771236871605870792081080406975603591189482563530568803946820402302731432215089832501080310771219609327443499190175557906082818718322869751335886128026715084910585190660308021213566270240304792375052951035380224303575404989611375081123635727676030759411310127369035351604489861427964890933995285606285759410152405602018632059203038599862309725257872290085712866925392720750719895060903344711704322712164740123615255744339032564069323551745705610456782613483020931549516939619073760249127127234753736086122093576685794148198859148333615380820690626357435067553154922801575276322234673357924417064056422574603434706951023233565327577207515959038059059259891115163524937747873549892950695738169364035664377640373394913453691054501941094165867222347363207729877859496249187122034116036244005916146027200228616718109313705962182926584634833113172984528322496629710404200827104226566699490351914501649026138471420177879315179186248845115460756131101462704175696810083654233942148632930102344090439773736041723466210440399540315532418079993416686855286961510323740574469011881401577526973518634932949365115742034239650869327677996495240554656295464779611414255340427380726263864496761045608782073621344148096738599157943156511985100314102506731157166980736735395468660863212601213457184480612007214878406526446555462784076736132540934443851680408426601277941866710911381900366942579501905958661533821152346503157867589363080353367640202388589381918985413849798058199057972992265835278557756214134201907450176707604924660293178825583442662262497615746850338064867730553569289297417733198658010519506866997402606763544925781808483683949571742770255085766763978871600786864372358305967456009945313472047464379056937972465781168508340849862673999463538248474268018907700346718744346033158004779308960604612196999617228798400992184115534957817328116876453655870097361391003354961053938158556147955775080718472425280725282383755245188700034077257582543643928161217866090096760210187346896697595212371701206095689225034601937649809933916811839791388478934710249775177819408847338430922806149004149730519732080633828857567906744751948592452149339461901371447177309753965411341704145923430296679259698069179226965753247437128037741948017485977191388685625639118431653514287375599631516749911880379101084678964451496417838752243713181621605383771709798870583977643013110479106930826079798267682276419688801085482553438711353721400850029854009430202025959148331657941751419281091037172365274130049790442119255183820514155433008721273584220252864918433762670316236662166516487839516060738163504860631939272117428351168835091799339050801081364915867231400816588300629277193068837833030321610174395494911143898027643405490272306347766411128603333099990049769914127608787875611750267905413552178933217889878217542208751449715856860600333433465680857354567545478681277833351152163978481060124557603669154216016322057043084608121361519687434053118638641384259534223475030514104317073441305699298286763341866788957662741279864078490738752544474365770632398956970313440371473891613510712779818813275838795726221214181714314640922047803057478092379847759132768323881360168058018135932191954614210271196613127635189605765202235645864378054163348979770519240491775800100116205066899800405474116359839169688814147542315090344122415164659600320842635177620795472074028858110764110192960315559238132261345429194771269915515275185102644499381155203294265529299707369556933461615436389530022722819932842272215998455102135277904282437146167178630257942456102325790647554284663638368924401330222175270226075432561507607788550499808713044798053519497806988265093235260301344504482379991024492283351695708409215211050342290002292832682506000392318517798667033928280657864365478815906512101023631280551724565120298092384793337032530983719931661134528959688172421176641418543887064925383035846156108413661282627275196240150752469526014624021377051835942043358281477396650616232263948587190104515351152509932546850284977528220252358891801944364223286297066477297299728019855183583321829424197566804999896145800801535449532583299995311080856821180804158382098177133522984583791566449457563136356567151181437840094018286338609965420358378082317915208521262500164187357496701184112001503500878542340287354046720747435416716220825429613882299115498911699960977041577863148218716166897424486839262393770845481065693247775381213333799599978839290620246238304906904054004122492863088969474773808671705528084356050546473307743321986406301563529628550737660273342883267444030382032859963960404738751998620619689774665337427964452712873936336912677396165901257538697078323256811191446804653726817399087039027244634016529494239434665154599386506233519757293552678724452899315770070984538139344316179972664957295480974246904121840917671993791250907022091539084148443208958298869548340922645770656382337836153557305298886712907285847053834806223840953248564530613819854065427568481954827767609153639421628427911765728396874950471664496518595918298648137417966804171256632249689016026363854590635219060373367421007041795585775478391383344924809785148169454953008471904462641635554344540350716801741451637106934713152195048465419457605597292475627079328284257515270102817774940260302972414480519755966019881059790918226400525955535497225747213224649513226584781100944977259374415209957472953499727660024278533702722612684427325968997682126254452133869795677395201830807439145449155608653768165835252128191182470030001709476681703939188887226286453756915840964332925881436051752979550809757572397011453506498588030487523356198420725261451231841523230473876810498946967743673868804972075064997642384985711477368741289024909829722841520817279163103303338673163716013233201048073931999518262685832833640520960544347847354752770445239491436746072592479046846671934575144554254784799543450965092811056685948733356104221800086650414804639607740644565385771147768705002864733978841875808175235356108753694442970879586603289851993289545169549240096454732491901191805847451443533117938054938586542349520174716738378569962891042315616646525790194739566954114507700753007999120673368121421302456225871459503982193489955119694211175975895522051715702585963734588611784985362475315777932411842505787576567329703423951578758527150115323157077754745316132313223156914238916915791621604433796641248907840939293099794857980138895454551648931593665921093592733745687347228332867218032346471162517595342478301432744848090710910923166954800539668168993640664063653330129021964714873524341737704461868932201643111093443514581575161709131263281054380411514099616438465075216811681175805877121610919812511524241736743921128595602650687902642098614624698220548502670963262051145657967692556767905538262960996488260190921286472045820230786313702882548296274516443984744622125437669512573086793777539733083083796614167966303493696807114315172695189881358267267722657719009377686645201956180171808191977094375201472358520579058612124003395284357041172744908206422713894061103203168084507803352843339151844863021808295627941831998508587398566202619546003447376110791993536654722909435814769127618299245450357918146733507185592894697516080645293742174202877020323997321976659087353613658882405245489170472416483104052206950378926492819907395239691169302865750086343747885520333351179638863927914536620071923063132162973157312986845443922936893997681405541564024819368305458747110245461785390275569663853033423614520243020272235073756199101317465315675051187097405274955552213083088476600639789590099194470909695498534488313991694718397032371054869907662352939901703509083120402803871180259232289656454703159948390018979149360397917377210101806065733465066191775315465947429332768852134448738457417697458968200854296980426752453289114627285022363068772575060199805773549384009762905283327607426277174159350876227225988119092283635643177958848470371765735981881900637420593720250520341693802493040554640259116399526925283218357778408384034417482383600352485989146537792103383155719166617672892479615127509107516643426585586746371019593841629938737651302613367248472961639243431519294447065834062797399807805112110194637242969628777472160944691300070763062035172699686334356799679989604423794975779579433581735360061432100678778270913558018609969767970686224956060729901987014593674574285195383302342831649143458934350903064113547250425529757167804928525301957938221105375206665434560540892331990469060219910526958587348218019608483238138377417814048521033442619173287934879962895880598302609525633450330013201371321653838621489018145014362269431917315337758330149780271062372996415765458236680940340959696408342820362315958048698026443826333904491847614391596422934832013053857529444104582613136339425917500309543352124338644608232458805676067199405355063793628881472320824012566489540781437298222382700388118722983692156195606596814451402813656138618673136680369594838553895266322850125822758492613905824373795490119175896215286419108792369820253575289912887588196317825229176679892590899975323511871943289482370520170611007750191176679901392535001880881694984175347683097863401080663839569626351796195452939159425743338844379940499717083654459953415552979943345339407506748376907551008309921325982753041200749425059378744298202424335963441825492941555743375555800876808929999298889685433378524343890683919278270487718647714196774865659178469181657417774698403186439190525343353994436998933441888796698866916588810483309983267732898318604654566420981884144126228973250433553041166632121708217619577246954238137254161657887711328201434032884957576066325008208599532277853100166350753791105738091042416846620865298579598911834265707273265026051530024876394816115974086540529976465102437839841000088155066638292378093970780818473919596506725485611511567307642642978542265112176816285009802965979074187027046911207522826334987827039257495158764409901841606080767862187634257806922156368615986333153521305171829444896208639229725081670487499134909454564668481208413994666171105842897570418246600828507075576302746192595813093361878771617934122950482928180273756844736288116937981750594846875733225574298553408067133692996588094146305800788382091250402821943012374611100250662339562058322925831249418091414221948110832055541424714648803440025042424277708499505336924975742982767069168527331703660183230496410962220084595404485754498512264469656681534528375519919738703760654755413431058255858446230148973559403721594666022067168654507916886739720826385375706452857260768867358117493530387388478429930532158053328473271135109518092637016332033043728017546610882966815670100383397452491888881992688611129871381912353190059839483740035608647816037762740632935758987026719182961988719785663129565941326391519386138316191234916404132047707831848434296923511913407914753894590163966958894327982643770102070688851917552999864163189962209947738221046891031934645468336773660882083894347755878176437048711797922792849029106465058136499629394180593500065678372425220753796917855760821900403174720815393538462059143211295330896236612658708683664970189050290773507812849593261345001805698032282234995528077524409049079078974326128016489843339190890189840668855355687475458671366589800318394170035106684767602495325004196306866194381395831041722156941629519506583168426448937988136668009830034661208057535066514191497673427891972126107675679604149944975993705813733621970409005300093037718213803570767037140601052938171175662490893592545920378929394708703932178510292467247144676942077487828995990450602103028068941143122729968297128894830926744428679500696456353363781473474932827326629320727871029005817040349347223772506233983942261119560755829860827352728192462188218343961150385312069685286063147796393338960240110583150506645488956376190502622336615260098332733434448865365527864577200992274527106830844341604255041456850140031411652648401143377684103557630748216553824066952338631677569348604526156146914899638239628970766424081774158349072351815342041513659370464657040182403644024185015186146221769226637438309789195104845056568868351603200850717072671936614704638817923409885717069333937979892412672926826486121321765031937759804187665676292094165222772838272281226839900736659450519078428089634408380087551661073455465224133781616619846719229708940268165953211495477128480569618571172240904176671324131917755007637401589466262508954207203828359770941698126822142916817007697462548607817735165584029246750592044323658247586440343542724886639698842671525118873093096285580350050072414834593547870727418084845391239767584243073762972425832846385102413455461116471215987923672749814246881326496576052417265783130879424068873786631398330399841484807197649065732090307919067649050304496970775824298711785294325328156604898048632870498907360119561018375871602184141762025890864892713474831830794672938790302060412176939965224101983123481093663963714791684354741663844436623975349084971705518795757689738489678179046606874629680485112073072867467352094194525713443285650155901666145342697340573415780590339880196967346338718689281035674833594406477869256864057057441619460420479251178320400513314122211208289986814960970658423050843870957304111443178583888693403879326628541026466297850695656398860594364974211197368160303063139002015436216573396786548540356472776691157485570560302556325027994147249034448345328017278080118279465538709378897177954775617093441393784046648463669831468924397002747330721662587187927540910543055183351315489276939280954017314621916275074203939923110111237882694078122330671479861366574290913035865997734030592182633434430915184991756465468954599300438253876103125641553971840570398942628745084681818356393058989929006352768366707469172298116590458251600035152768477966238087022267885570626269870424355181519086925775245215376966166370657372789198948359697091531451065728238627607830303201867479955740906215026840129423547903053980149856103004630841796866556777665771058036109216194587029828893389202671704822128660791536162146481942745924713920700576118905386497075845678048157936487853541310576563392551343972098215381517629178245116997941239898869317225903531830810942782830980915853344136820668627849397139365865169154679620003603511288984024059610709971708012444730313111104847055635836223234736867598123908049838394046276970442964240062990509740296499210263872455628020350976238291133800611038670040382031120294935297042725872898176359637653583908668051120378226024100588445616179546364005857011887642967168731985027525289641430928730664907058032919465285581728188031220722744593888724717246480525422158680664892902384711603320777047543255243475233285937325786203922224810886009388046122805644715023868403279183974446453808969437732104076045530367883761081718341204657467662436336941338141929693859703109634438597270501824255210149972636365917794486362333582428359059408423415028203458569885368652959530213170879308837879151810611469855943073734721172816626416689647707437637988726930606769831796417279395221856377143683409365046268858344991187375933425517927970178721598303528173651240137582880676638457605871661511831862873132699141390631536485521100525841712617262384182882540410789120848496204898608370386334949256309906873117852713242740904325552449161493857387467476284663276040891267425918892365529183064036215691551547830648606925012585152538942169716628658834349287016993419102477605095329208427754854014393388743608460978984602663045297622303492540342970308925560879806846042188743574624027679785353977965002721656248190141883115912764092248165817425460254856224357848412483185234114883530334570232519298718773133448618853859070527831977005162954527110102485481694144955806423509337145262345943741012062511784143225324817131909442800154032320226581964171729432068408990247324890448172002836442214735816700843044522039994250022920966453660467539564185238247690895050496127677391413564762514688820061526431750251621360126149958387603727784064830081574270731966978430748589487866726644094044778922773243353507900338006669982608530043915611099752913534406660809680833273509855333347718484960293490313327857202596363698966396848768533243240677324238110372641183204169450266119862179766852098202662485155896466157910561170827414688443193564335687605974032602022780191179066928397765393617112296430296429486246863479416748335142405013812973606104878008051928307736404945995821214711464050013960539170402859443169248966057159997296393687773529268291596633413176154453270288461015589272149428707907469553150310770655199608769114846782378854105495692744011954091250727919667260687614795379014374609768543576773570343514635560187558979731989071039616385852688287740456262704462068633243965397023183550348197610952335478781427278547783654614420736240108882546786636245162347724637087278379134455953980802986391266252699739985155535005937038214437678602067879088726888151541427485331490580482941292381780849390672094356778802982748425312199242524993058511996153472350753924086655276828466576554112023397253005913016026239045939295571667720036308573952425737706691861609233994431279712578392710291329252044696318265693311839360193975008708294379170152360242459625580187741404945390947208861145149589426580325339488066734882271283741218670539857292554498706796094184946481618877235658055121846431786877611656953622278421762515124368842418774676302294216340427170503336884053061901706317523478070773665821318499019222570076162648335812424359960382026594159367745329937663520510556129561963380380954149742946170297903278563061509869989659169192845133267649115791329418472011511853410295386537442891200194807776267319111936486221962635632445408416302681720857953050226724937975130025323238285489625276796018070050840867613914340110702522891373988156887512211488669694985680232007600103573399231213607854029146815338084903050181694270807302868858630051036042828135104252569759720574469586286497376801351498519862672952356827695511540390645454949921255163887143585433332132344552165512585684281735883995421795794356788506618098942593600624480586258497035045447812483948976791677254841644279378260161092144523249721638825825451309643536498652772601883972972993983622206198031847411404248419711093451212978820810019901033722866248363260742490949119231910337674629267922470907100274517307331237704554313822668255209928806367990127173854353157595026865003195553626332489961780383510023564617204132066181562842157140970207580203016963981711352588375082919246478073172586827349510323399365629417033267165248007345652601138862950290112541477416713431921931491712575529881854734317029281686910611119238373945308074639238768926589254435046388436691039564251814695682290628785482609580248174922343576606674627885782634352602006896457600328112484728614620107112602320551766570102169182607438165861681376703557164447615512008047082801860239481242770005991813012306822874655536316047097834105601231817983117626578574064074547835122039603117823320597071981728470566468855793885139263560121449198980129314698248365369996469164012357525603268074921761782339256521840168923222459293811080040392809426716244303316912131151861624816584050941684571320325387824290332123243996654168886882124966162354191616140372556150176988925672293546502715671898094988917129260772930316568495640820588662582584603736055190512043784477842150789721362428135074327413586958156665890401238574946289183545955943139101010511024122694380231911161480413978363330316585938559698737937114453590321959246302476842794796432455698842157593224102211487302951985949437341289260709683890833324337493940017680091762834549512610268454642627874341297378237028508566052305756622847309350962370377701318253603965623536857971402571633906946971627476390728097052659588738373594272485761525307618246418772875082240662984459800131579502722800891185600950693754543138146164828870019182744279198352293030653337939256888028883115890447984898582117170283373655232032315234491810688874400230829531728801970330651291967785680714722814704379492216374214144060644093786153877214377209790472087077108914440113290772014390894936956199852468186466494667076628319359165371157148346430248542915700939873993689324488328525393202978549262674313854354199660249058884466866658545722655546862211250390040281175279486890636618227708524370355616914690750136146205684411100963174774713388387016931749610626458090671703024855548292439917747226686886267865779871114491068264025845678944159890988657961603413783114856654749134825238838990567905817506813547771530715480889466432506358720397437142592960922024289484300930056488981702248765881472489703315079002626431014824334047475786087713131253888801578963256300864606314215025434472548607611023636001308547511879292824334633161300594061608639540918864146765708462743230112620346372730160243933910025277430311055127472914168002993536760072350737515790067217714221383896894728296759695598352690639913216167166186451168923585230413376273181314796258264290528269566228913534093664167811286706469155949018333442688248112775707423506837933807974630918493143536872427961904073985343850174863311962787201100314079719808593986569725932135226960831762323279642792796243791444788520650560035692597636887221183626203412072284331135305222431199263927550266624661689411527775547206495606595142878879351322307841259545452733247880784391771302035216152279585168813526974446741495992430715194629258631927410268912088305090437294008431343822167584173142838691139716574450640366588488494162054304439385116763198740231747058830818245510712554137990775095311826502295843325429119946611043655376858709207130917060833481577407227270772981076718887475193924144338224603308687456153016183557217549910521325348636275579696100660522390111324776416581861460814900023336732430331689299648816208910639775762103433366474258314864607273931244498741253927568339624909012711987472776444648512755967682735675576784650447239766830863154819835301007259592177166009195959807137259762101704792305700846269208907488818799762750694642019496972216331759458242120892133318049837408434113938170028258414528117486990318625214993196423809134371349779289703190232986524117179221102921178609891356130005711405861703032452417752417184428258365908248994085585265377030043731402455508936084156217141940820642301020428017268797591359124779917302655328226690832842277461322713588536197351758493862220444894813530835629340796586542921738908495137939544909858885309321045152338261650751684993944033691725293311601303043766344889009003100388584686001587223333535661368514787953381767723904708226977113508286784363567938715521836085966852806243944338452322680042555680061655278046077973330856229136395685730228347113780663800252864727838216285691340137832475837796703928644182583771792019849034518654601629304880805954291973140109585809853662853955684703659337954110194203831420363891900077042123342826939314495621098301494781772755239383307606922957473388884061645153632674957306336952407864800321185519553030863632053468931563886912960927947297493923569524137846265150612096599550691906150555288893785022110423930677206055849788713494426548974595143491849758048364208607019628462371198540595164019998096045154795928874618031333154004711506859523269969032748018199955692865129099496785751968622450581170741527986576858419175257801732291607534551512556919738914544395911193641710960276362396157341011130161011543150047940196100594015606575047820397470810619811707319403321968308227072242706553956107347981660411426066265762254770100061757863778873652651634562872195307050071231693389705566376894429080134908734099308562371402271302361387850864606075766418261725896221079593490922538850253717969402444732406171091032795916462886915640407067902780472623240466652495939098823661724312194007206784429945408512806431890434578022235218454656962021748084183043853783940820712574043582893583437386883714613835072898035124094199004832601489424898388720074251968187568846167478535212793342280706596080988525333653734806185451140970552014244032317249947314416032085685118826339490590872915879081734911291232612432357591243233480744138386653954029838342362000381870395379924195772297057993138791142804975318517952649460475923368334184667048591956488322260414991973989041546219658689116195383337088425297120268528061223143940937952724468662059427253548629272765787719150759435477630503104149222001201099521668327581468855775476853025804126162448988147936883433337725780016163273274959508856227015590981004351599619450028903599063104670487138939680425562383174155195615035715520975926684790289182385943479226580853333836401063117820227010362184172039469313736708398683455479126091877526926670476518922525068102067872185778205000653727923240221244492674202906197572162299438681299698852931741397596796757393767418520776844965479545926554341934378799786792584529189581395637372860132426940495826946040871008883526509806023293544808462295957742199397524057286517649788604746600594442531399244872307609723304236694730244340028217693275062816458993866421571675849456823293871507288397156227908685970661812643850362136972680163215453776920792041437662624007124341362808322518457204183834423119929291298822702193551634926651487509440815930111123550348487466221579868883394659787737267728865996600487656534920371847483277165276705641559551537722833189669887360779875760420782345749374972924825928009279186099662308693419345683095464320699154171163047982466663880994175530716566907163803013899170971614771828481438496499062406321839302428890650606968509154558364384817676964162748251502531333562840576260271559420528036990271577923351916100641563890856486480222854016530522986993840295515544958684680939709225482807928556976757118355543407252457793623750023870831522832358524524566588171871459538680704408624443320086688991088201867239565980961292016207339934194423240111749244671880086443971016033818785114176746069727482817876907918035974103632245966648127741856907314332895552838663285371248084084714167359227914803308083219600300416264505779970975761494827883797320043951530729519116829974956196757946553730603026428405436872613006219372945448505640461712497465329051227107101844845916804768027985138365721186875131226044248987970528337708415092645271876127211281795602700066042340338428107301606860820711671070274174654951656443400188556618812312763546060644207430684511411392740957310758806001590351998258301132162722699538179660741450654672628987484427354401939735328156375851952547237914685822374108933675166360952339810446798296328035531417766740608657801508836314093463374037414906889409720306667683520989587140617190189118840021555436213201524601389915678414632876967513920615323263206788317672232395749232907097622860817770393749157382457571090539169548465926952137926878542003731592021688468761323751913828633022058153308817341845789994022373756369367017154583741243477777999126518173490530247352771213565464933850318686936096199328794483842753866032305191236747888804694308294310763846297574220097211994564519483391334121883739680323909771562095178244753245558418238271679644590320092341141995510544787385643179765519359045973191838530760094995568661758119880231570101779382034274607365641720872121941196978042249323284499335576454209927155900014093521360337814846957155750714952945541055155561460265189942080045961878071115614217308836860832635679689678067007854406278322043681500815082950618249139642741725109019385267734839996695065280279035062113301822963312293520217207286884184740230321009470473078067286288232768738665515201229312928397459946614265913654714830362739293857142982852404466014059615569823082384933493532991014276865034242139660771139683366414900990090841826194138036573933365172811947281065035493946418198488211931591514347021111591220923600824351053988434891608535606850278605333927809278984875235095886871710823453658633497641321170623464692055586299853525666364522731436195479331567512560698997147170875292647479967461314279337852984065097375484652308108937902730601624368170430323378338517343309128876035216673978904407819238869032384264692062548998340763410009875061191422640506093702998556701926226503293835833158091191789268809754963895119244446034095635301385743792476057573450945436130093954578171670724835412061276613454054842685737642761760102402385047034160577348930802875653076568749420618437969298651242301757296155964273493282902363716814371694799019034004154793535091189082593041322840275218238512604711981410290597139145099901993654153386941460242876121640892337495963308419304287562929894461067568444501852342220823456755758224375093406113840629717960874659858655852204657186254530155099711634696695324789063656275019716023060418286114249857663434743347492499350000713127079555595915585696298420037814396229598300706313973286923511224589706070000178024010399290878154175153343778970513296819577374447415559683314353850654070646337296538030597382178763098491890284262941006926533799017962934352851413295215762289535729394446172597158039529781009985748064412887180977867752419950146244181962697249975043924713728012775112472435987865941707080058167967156200822800990610444615738043357136061224266073090975521146360342445552390390759186595790290554332270804946004668585360092606215506577315425854673211115497465604891775514138157866863964190682739028135007017840687614636506831526423514830394187646321380769445772152722391227567852482346111167650281072853749639446573857065060831129613839946129703942865823468914162092576221785856113130741967597684087603170882788291014453589743096833714997700378466920422008845654946613871409668165268273156635115088958514719572061209037048482547506535074838128749747975443566821332287811646826174253457662548149827346533449850991031843879931463541996148610064867753245952377992966837394533588301828523231492072219343174857464645137411766661900785497041876652258987374911116682433596379208927715811528045077883880087168695970794348714183908737738505839154289698107819318498587153926643609776438802521969462872440416430727607814911478820388466534985681692572688396458025605956368570431686708099579382298034930248855542204861268791744011390846726814807497906614068874572965073632263966790848354056630676460176890503302285253943586227871788102501690178193896139262540369696264883724559811652814236509070961052083903507310467765384289229852936893180261134207644529755854402127459819388070557031245715761928312621289015889868367716419169561651379147829437328882548160717684712824458047876435517339731195863596375638929112737460829963948339882005357177691190532995420092022511338919156205132335884091139787047586504592820291824228145499236090352470175568480273956756153869676673448324973782324573395408086060381386018417431327807833968390185173595269818378164918782149158216196781440489638684127413382162156452001303736329597710902571926472409881555093788295048197726965427561544037858438620958889315187671367161283715077800801340223393658393212165756216892927911229049779509494631382499544682499902145216652271712899245245773227877294463871082715890242217170680722046164699889387008235576155814501238000416239939506484440701094122575687775371746622802189996758969022031290073618405723233617997650420653370781914352855543813860022328690099197977052056557269667554575440456267180733357835503269581690554321797958768362006242907329883324310178391962541057651568736540086298481987604652904345085496678987975292424786117485758942923328130428012774276156639088749593573583567782443671482918752152307383668398120289698818863700115773349406484434335546340946440840055413990432866118396386188882539829185204927764941951913277759670494822124817572808023838332300503431247849382115472646638819996536098736786698649506761508056768778277796316581504147257096315819147183197542090387246474989574258669832458039017834917154484575600519343357842710141073956914989132074121873871387160353966995907773404451506809990186126458732513839421221469256463358363216142482314902045122189677540187198532909316356369195707418445982631578598228055505634617230499672238479454263613819829212350138201958667282722673687105950179373070812188666915456313194321729253071920771168670777374324000193685333422366363003299144015878002942741352008123647214081069475868959316194142033311116096779631461971763758314380215053099555355619709375683795508646364191805258617551644469156894642790482886516181410330675412914257461554011035985981970718190890039358014434971698321027480413384510394731901744803491221980859735094669330976977586613036259787427080409558005879623952139133113231647336140236618747427781902633499332980837446415510334470512180801640207460339943083129468973602071529720217427277204601551469724900380924937602079613214123474544653798190842030635283373718891817186030386032232273501975357625195907320136551097314190018816191540758706848832389108976370009439314982101077605438443661248114344364008679111466493757321098858641217866579454347567348768840137039803650152429163796265145261781016597955910669161183951853548232597872884839352343825422988999361387639472448429804561399320989695220779413978118504515676732096997916642470888168827646836232007917547055153367468028840043993943439479954870842519511070410556142021222872434102802882619080304446804816874685128857909619157143735000033425556100032512540885531111048497555230472745955201302388207906863739254746798258063754138668025913730730820795535648612779730899962188833250625786064488208480064159062037234614826507314794678648393323736818324206865823642605309920281603490127272276272452590426752409647250483203518434073378424709762335814272928827198655959696033589830457782356821568550086425115418733173242291251365864767865889818283033631256000194426848390237462305110055233294498525698053033432905008983278576915634127938421600471449221924183183896701592622174621015171805048860197719781020359958642482504224241596323775820356743914961065837849144965789374793096053784541859122305141474863385718451969495866614613750263916996903982093079059168840317059425273869905533732936595096342113118783236442187475461406763236613006516931736334125333716247370436842093256381489972889178300441239213744512457403539979439683462010816089561734342639900413908617482484147795631370070195447115571411140584652456542722239583803866530193186401646593599755862095951788153904539070129838340431094312673661789189528241626353771095686686700553686007844340625813198153742925994277886056859430286507997690423584361189503088695746042993410782119553727140572921854657271780941498883994240027465969368986403646755481306524270596926588164536480392920716149711718015717569153753116375853335325115344002956651090389628896119948060982843454314945024986581521946513770297718494319889778572729945023830407615731487194381155199620067099405179772154041885351010970377837710765445037813351653332469205637721147876135537356363077461048606168302053280342448857597674615393481189473287719923736816593507248516975617385609895984075154146148528808100016155794770594215788608193084703400845361428448908481391754585205391092809126386432699071825593635547032553652448750721687454342403566323198248278298698898950438527213862132858463574194610325814528671266378094295484433673245684482402572252939540759117849729712961346500284936244502247696123509229788009917865584886209647893525605776274836058454607953636205538202904617264663965857511986113299643573960577578024940733173048330882725059937503454919856901723533315046853832621742326005270393109397220340527357033946976701490874050344892951852106907288515011561694513732848340306752945770688608509332071190798395494553216128745810903146389335064400854641695307586901195154884192941373144969855418463230313024803859014433522930909598903779190317336184896193347348598416341408174982882730547404519953703762595674350503749895512552484686847577764651853873051794730271712730094564529591527583735696583167007931390387466932925708351170237349142420453359219879902417273887258135915808329018398196959002512378384751891683659056602117108817142861926008985993130541874833337884839558892202124959336837407190731159637882991288162638366606190608096199736536873185971482396565215205487226145364076137609322868572764043232518304015171963488050308739086194329667713529698037527509659377333593468741543740504897675736407324842600117747810754393135677645163244602164138312840747760597326493169593919316738472400148591706418944304562808325159735798603466743388282616617668547558766366036199797128635095726626495344529858894668681652599203381580451801626304399575321406306675389989689785826199488845401699289264848960159815758684497175322645039145040049795566633529867688617950023828764295108229419825745336097032880963977314995116660440795756825825091613169635417393202720104212645879187121297489749921984167907258726721752485207310928770622631507409342262962709610891420339217232413246724628196804926113360256588360517531345385554364547447024419215704891119847026894469112258377602291092401270800981883191919371870034907437385428045024967316048838783884503924561963400808657717640442214153334700314992954848516757112807541039496534663164714353668598140610294847492112807991362996769686336835506896267723623199814744561720671876693011722715484780439689374175067230663174586220260296334984510032265481312925608501268515187238543624391424277197480716674420469183484380300212460398099282074862161588696826367070834678073622153010335937532034649535063712849129102565009651992431026405463883733622128438354610304492432866842997286103967946477730651083652538393821526288975002736306174135923736952868606894676857494688878603095341838444272904091955804408703047459667925288512786123643842761222787264804131245710713485887676131063485132000817392796710202980423889418412265627635335824581297887958807128621304046518845516227137494158555778329880959138193858970679951613743476086947820659791788309292178224912032306869726526482352772533173723889383221654172535676871224503321580723914092495220479091994247096178488525333218588635338870374795300616731305728372796761421214922767822162942729296280647479263022140667378505611824239807543414000207858056896855203654921503459273603056613738616476660517483346865709564382917344840126956725900421647279228520010193778021179924054586339485783337450971590458492244228711148977436493209680919116292229505889500368045514186260651014947795887402251657008829212323935404820129779949103357534064762557356720007318560189774778093699143479774443529101671273451112019372531415530006212493554407624481798636432221216645173919091684204560578757468124373650725750634982532022702893091876382456254629007211649105283783196769490653317916351317442441969940547399192800382959940543221573206043742096883284636981856085306680812307337098057628329589579849160765399981184869078645180157755809951750443018957764730071972879154518490147299428560285155411938476181045116857216213969056858863182198730192771724907319215807194086943405533712174500443377120234053885390344865551011058705551859525744189690633035019823148699071508205185892846778329962172721079768998938013505902252620349580411759215077291861668252720487724589579483116191591826530839555751329071562015472455374586664473019630899292608855786091871442893142461156209222780274930376092541701084347281620738783039423709536642546410295048501174716329302766303658780606011567490311195604397065227901558291184690627073386952983042899355049490021844754946968022905495046994279471114959828523463397583109958234390180962085379949297216209646878348054199324158806944362208428691848182766322503751378547290954122276470509433185835711862914165124429788072817697365810942406357192855159255259658141336772963917456405009614871336131015447141536115632724463946335781665322848645189042923634016663998737035633367225954849392467048492014844687241865554807387997913536407314775484612500247420194837986703669154780101208436953821692266078187629061153660196869512267021930411634377773020752269649397244968302828644332402549066500013325100252848286494663141990782124155309026928745998835588312780835162548272256718845368890960436252375120242991742725994809311498932037171853766604401349053938212494376636861012855162394405642295743809216810085397162819443643692299723987567809185423040606514246435234496507103447806730006137431855491329822700076073972996949249638020067776649428086397936812365678259273879608988030814898289245386655784251672272523967499411108457577607872514516434697818880483781122871610515353681245747253153784499609590431159303199966663301128664340832800133977566447310234481786063611370271322664104383082106891181593540971862096347844200398367402276780658539545326094961475343399949630842819791125318647892162038170151287159406856026892508213120694523783695196503999994445530345532516406770224522005229933198215358317415472794085644734725729208564704325903717690529010206518870713483529647623160971989361164076411542502410493302874807373612693074389069333539611529916697013677558213079206026310820274505662028598639463742584328242130380927312011825501561832020847942673625789924571528972188698106474914002818953930062078969695860318886715089175132916066264168543819986860151140205847683314433766476967167863711328768102022527207307698049477391820621191338800315583007414847161701538254365604569842708754622780472901433494519802861985923601899061590366037204159487614148356689769487927636256960719834415030167605222646574996548318582643060931181836900716299256224467809469932526300940308034894416137004050705683774756601839732181418175342059658714598020800512192774710401085594881576699460212824103607190152547782230096341676897568193408922434297100853930390574406332602116101270071754929448625271120647459527946881505320035218031328757175119701194408512374766380958735005311627931748984916971923807468119489872888489743362173281373504270752687429797876623273360573792316239797261550212275943935273897896038821585063723455158870106449521305238104800002983604203097656637381811666648473571249972534156851359894506295294954463589747019301804321449610339184092203366138552827185793090702786837260889594530420707313103088290906690870806846962484665290641870595456220012498444302418272753970307391209691373081173164524430917888586900174436604635095231187868302557330661478187194459055996724762484782307071104397294808682586910766927816864595878124605458191249497320483968021077595721190580386696351914928715171108721681357416134636222418059376015085369812651228309835066387095973413257872884281350297005150902499729830401887790716860423778604852594874295239477191561858919438932463738404637461232699322541783888523019672731984897610449604242782272212084306329360158074599406030246471067749330782147352965632807111249288790376433712632504295173510353846081456461337458317156730577463534963400782882499522338708139647461409185715600445310276182948509013998726738011801338635747387978189410971166325976475164661243224522244401188402395212823481324093061680717393025274935435589879127960861953749888738088732547203429097773981415413167422548036736076343316609934691689765914010303242933057096948428648118051808721629334242908714022437162674701225251516019960181245763387898643550995804799526540499358867530194902081960826371461796614101206213821308167138142872052869533411387873852056841605234476765635145241126980564306507797016398574343395184293492637914940579012123432703688603059733779658566351828492846896656856571081336370757425791055830992457058319142901187685435821234307140512967090684531814650589526635797431155548703524813612000583560424817488041747609004405417450302341476863350053340239613897692352359265665872267329948370029768944040625236579069832822907920298371570388345935447150640509123026606640398882522984330301405696850076837417075539114238319171301037033796938143511720287486724460640822076104842212682909930001479875070286628786093479746803859199944363906541085334536181578963651343851877471947995827569535653817721069392522854913845705047252178519818646987755654815469379934314498408275468732393429259014352222168720950434489655854618832627114164572210515459403867784984237476742548807034327288442983459531998577060324045113347231824819221062431362931706205025615392219366066659727985378812236943807584507161342278869130858296073781144686709398448469417640556892714755967438527362732226827437171031511193361710819249828961195546724855941233115981680656004686847180788994226043959166234348196970010619186613693276714273974083820583603035541921007350357747558557045246139597166361080760466801285727273609987978973599733323697798012542934814065170118360808492877314278074889416359705477815017170619099143827445998600905054005931900935845169645032583755060453273357434789051756737249272318728360170390841170139530240379992395819466958314567488766208291090436886092954524642591139882062573699863184238896280034776932353530375079660305581525871243986207467433833316644092012395500365481546839355679547436402692725703330787941419164624995563496808650473978323270969333877396391215296456301958988282552913629517025564009686603806401221637228669401086263661687878587880388425349028266853145829726925100351757082035971411861771139939889851749313018062897773569638912960571012423578875869500353440888200595987050693740001122654847614034392187627272315076519018950291021703586497587822390472426358974472392267068979266628932707495740925462923160162507139946284449776662047158630470699483101589780970229099275103873753912781647644315300845315755343573496094703904677377886252262023993572039245953228149762671105776583646916883348502373129289256623963719500505105016945983267493122789120378571845017848163285506470889481452884118439601135397804849821255505158361200619886685273472500223568741668757721841880178385898653627651655989765690594353737420997323756714758702223316927419611007822246758622390253421002653752521315974844669600207169727457003661042800212290721284004374608473810928815495113383924591130130386992481981446094038315411068157133078032415365310653398456476087342589402699017490570092803319979491581999573347597351524160266653643405279161585978611735961704171412215043459400733918680771995143909471744616341222865226015809583928036978842780154815695890451757487327936420770766664351643591800784192416774119411761181786381946282420410457809220085086748132175356006695839502191623742758584755273859735166003477823123676927816661998101814312704288736508545888418454021813559174676053847589872456542866563951786048586360918339913956647826738831314256123284089279395170561254618193989459937982150660866392099289642213953268645034933791491717494677566782693047418554891160811253109493420954042122582823827608371621325474696870135897092246101739548896441079609919700846681507388822946764359331686646397783321166102978666415983577186945266975742631481955210777359480791530494611129275006560952849643434801870938278907738489720951073753424593615834676656901982435277908061750743385630123935530886208708602186552836334598079847756081327314698765242154579602999151325267649300157777997139417056397070352716705537681531552970587776638104077358776280691173856636286465724308734338254792470887126124896380234093221134023008554182572584959391191603684945379010827624305266804080403836965055457135083334730211238887244967697575229014915870327990586121486269193303117110084945594315398756993505405163540211546830374785091221456447681350584186079029440523813869789007946169690222804608813585155380758231337871781130512729170327289511263552547148773147588644553398861791486588333576014146312605512788371659776933898230785839280584595521722637953010246580411836697093909505375793027777574806459400410342519854735480608155342822534415542782248167015982565767957258221090220003895545552676997662793537085451876705013996320769203235581704646106393106492530454475720737977428306178069570131531757330997608229014306587837607498308205644987700898896576571449151237723826883769346564270505754176255553491666654450760555819098483852988894905040348861430617450082032672978402087923686354187208917047168216504622840825237708158844186247362286247865693556814867567345311585062369427522346072769639949148419061964541179028740591387299481062338252042820600731883096289803268485334020171440049651502474160709212923251588113406661518017213689109641246816247261016925771511778565001369604880615903078402729604812732772456464309161228928843037252217427048798378002650215528744481543894180366146276446473526762757108799948352377143377518012448772605988254534678165791286945106346782448842019911151934444549449133405021282298871988411391276994780327397478717180454707009510393138836156548194450432521179863042732747815524471689049776910119015089036943765704186571167344818090494038170087381899256739972776633590645129964166759079176085262366302533632694794767121740386177055593348954357197062851929690054523941131554716719105416445148301962637821277705456379200747719827530058978735530869383104941064858709097489093226576941356777555650621082705357823310124081976463028966597804347825467928074677406267701584056473049384766776177393243556132102933627413542180877705936399573725230211005388896531841764399097370163529815297630656912509369064474365442608665974542820953412427551942603918393589142273959115259391116090275859280170962173374129494517953152211391131189105216835685957235261175453940135458241280217605771050606584427388995968197077439255295903173061761855161139973175709014000284369501696105087665826952715808489174650677530396537832449141069698530285745740510315593119598646104630852103167806292934966899601740014971394826541130523598164263782297637425873084439221949258299307492008292859992992327156154621088279570987695887909071714635709668740962131254545926735943397720986173464789634111140663030911594128642435098610242893121844310598172344676915363727328598545517903130890729466996019949581936175071395584626240075888640378939422700510616862232604948043353425283026181186854505156140765764391972661738614637017459733752419736014486310571825832838128078570733142861617296992460245773113988723791422834273627754415861245445289713940630588346094012652639132612058287349225412094881664330284825288262098443805475475768637473671974236338438444586104973660305480547829179519107101851548327576431733926117537937856926600331763474769268809166209367933664685156466449595044530628060520093411658701159557715341235683292112835890685012236702582882180183331290648812577335148801230396604221728000264355621565017263679114190707767522071149385289081397587814848142079100604707928361036825996831325578267777767795276743477746601433217998700085332200283424359370816799584779791959960486103294149185573939872828770672967947191331807521136682574724895707938165899112141512068191254463003916725195650005075858842523725147656218308949892215920321830225502558265965316074298377393233759455857048899935903674216157976674140728462731879678580537087270986718809275192483549882419612729000763079377980780541955583078304495063989863515076516897777836586465397465890570225540939921375430223153771809914356986755292008281151005904173344592479740002646166220267399983702961319655538093039266223692108344349454781843417604710321588346571937041557016518182679357807783056235215356959006218139144839212502108834916558994279847371519678354663215194948624340038074887719494289611493536964554901020598148609384760510164189176740803636273797962363387015882088250711102861571834057276983707060693265117233107015119218933043719533017657346435392367498439254379457824221174780204965516778709878907859242408889023480579680677155997914335473458984876783534151130131731461727740871201050076160158969782214876257684617242810874174639288161915840067003369824617013826689303400326325414928080285380482076733029335391356625764620254584912685647001786815878390854690327530152687912425101470336123745379809196293767066401304567935907535365847588921573585584633313705771558355310208307817539113916856481827472757030841870402561173212455108081255316874144461629597652659251886074642640630639678386270565879616557789720966574929012951260740524988352138158011461718096827296635186741074057907885295141725872960419126944920035903629389490130380888121221591827903208427449845910058777661754196115195936403291895593418080389007478000715486749246354386500118907462703147815398451993594941451409343219347971561708375479580830492754770000820297347551866388007791939601692820951332858045811438739054248795350276967753049629457945211203112956683963595068484988169265060106440956232585581590099656274779077366341958789039555779244005266395813068591994848096299994735135964345987120477819153429958357936403061152700747574183451913017385064723375015465632373791083409874045777152045828192945793613263461980285004234156093471536793743509854759029950821610105469371507671919721018059294192022111065210943910520945278522526875579019602828652847140697716095065861206498777601059040192140406122157920593103311167226122439400381871736460751601428722196623756251989963729028825071996096161254584031124458963054857465798397173204103915425800737049096517287750105066559621956106761135857158413779380109974618392148598952538005990861734102259277614815473681174649701660289743075021054258477737471977304529908946747401137328254352720739503638094024265177669367193470321226126846108616854398908051858207153040821038691311795795003930781391621298217491294390980848626031010708212235969005514464503049966181600830532772550058117333680447115892600994432535992839479815945120890912706214263052072159960904996995641212595305050707820416535661820163965881493534942052084687824953599326360617567454729425825809290739132741320265485961342549534226607521772490823005788734299133435139081248921742024334731237041953949376446750295470552514660914414252143172451677838295402756460160293652931434831492527036126622116262126324307096994712383371704727521107889014875119096670507573977281680456720699425633469118471074506149893517373639843300318330015680750567650024952451360697305766849153386512627070111763362267424196070886738734771092269374597432713366033746013294121039257483329930249326515612265996901736055577302129966203009596030103215349053764108216695949821152308322633872287332243723787188142649909724908742172270879067963374853386544177613020689976826652693369345856573288377279020167308802873991874745829291181983766130862028956020750482847022336132896647380064013321999228477778184661500294576906080532063103564997724280722878981800801724396831484423806195460081448804179075743912565988206654584346814080436337808716560500737079695077893204457110551340023707806590759035867470429117274338583617667472051049602821236865417628110306940836823448999268810576480309573736424789526544828144198055763603646340965732914235018504844892685105681119081258972648598878143781645739837368714244887163099156922975342360696828637348969503954191600104476726492711302691290238432361906702784903141590440734086054494701113740617656733462865730098848764526172190967616502047627445330574962069520379460774864661421866105486278469498324466621386812248365692249681404601081732148631588318861592223690642905389272889277736709804209339490822143141709808843061095634085874347554277411652063223706794978255027235348922324755303976918865168478154460174657900214530680983905045503801192006601064007170689999395568717327860157160307715255965909269159184766949403959921350130574417354973270408520619230354062730562608081995332266604718161306659117165486492113565441080744803156542102049267363856448832337631930210987267105251091761219631774359717677493165283176423671512151264036942831082217328160339676430250478811448943270852387328738474471808011223357720204779369356279264917076696362495675766098219547065974060755518847080194435353404826465106442876968346026781279615439221035001551562056929908289721896713024720116056732071295855625618970567458122824670235113730791987927669885401464434290704282982625646989253013647847480191260225296097296022990518858743641319956408719919974599588020193757458580753775303923580499634474204423606915673909182772645417085796239013099024667404439362706140350353491929947826628321004818861874490658874670145946329237551107913094707745491462774719645308149109369292141299230249427890039871185962067703959978229497134259433624072823785565242091617170946149180106400775175598189713184768415065932883499208978022441134280555551911624968113017439919184674185732902840984359972054625423208929465976261092119693825023422678412963156316897755529418704076866030035046544582307594185736168374047634142955763701791595444158500696433032099273966352273196340027520945748105601740605230560137291340366563824795292353846509763156691970477638675073553060788696607681981308368729057297282774624645016720686045812205121999931602382363085913708604638896038220518316287947093313708007472391358401825055946750349866116800087197649801594404949098896761893073882108737954999134617112999170825549686841130264075905999776933712981977451071159021471557849285563794727556388654601771564539026861506667751857659387867258602481961024659496287388836464772268403008812491561468437231149316842516919940997536440500168176440468925064672193183840919665250825242018062613123044909137599121870982320785316356555083966727346847692683904207302735180975500767929892280544409472961888863435499736320932930120953964080430525144421293527682468020385520705367578755643523445306643372549176955458794421165802381605418275229015872462298036842260558025227640792320893259145222913616691686523303773348814648143072305885502598053924633477788938372998740803062591444992434413153271190529614914242473634815232598958980113191326137473285276397468664050385682780834121755350597089403884210382675052630163420222617744527562408157542987140656683474651508150711433585250210927885088552573657933656736150225941486182686475282567946700133447071206167220590084253825704531595028411104003192989319703115777085502078513856368830408548304383934634714465145974334482991889577012032823312840284158217387110072516391551271774658381907181580709080526769457978880905253770359688076405458999262206242155831793399945652130874950874777081136779569609968363632099386318118968343210795205498788310393670828110686138949611460324067866543667784267440369151553175055072042171699583107193864921322306118098293702075374819500580721109023718906083351030641510989047895186086155105730549863231273552309018377275039947488566113144340872757902174290077296703351293134721298801580481782055236390819298493697255110913094843834773316439091040156181446526024288742186607459771037829415219639375548759612686958766127326718693839837695547789557676238790140832120629031608101851100577580407016848109159745465298081225113116177220211748185930492633626876472487126222176971900526069273234985742095926751465003512961703903848506314740727624268767821096387069696471410758812195118959549746909449993916329793776498970526827468367203721876786684970164158095948418259202038044883349366642476120516475875493636052480630628042867411831244447160428437463899822634402037723424431184631299871229476552107929444100489990230570789412747312915098315679164222870405607045368831236565340342193223527087713667135258654775247982272128789518161500631147625023691523578225094458866320928765360497944758549728451313490012433660487601967571451155250661080851443403080056994800845950995178229631813082913369072599452537871122915828212035447336728794203051949219151251471841852057469425290800589976260138328440467590244493938381430174244489448359551848926738731984435769578324825603156075558968539143046433718785137509602097616350530597680661231180418473223935942448824517028537793143322508536510515873952554236744625797095402994114211416692110082775583174799444806634784186017242723882180008229865966661297439075131464033303625504922365217639979455901424075887527623601304529825279049513976856709158821826637183539730689752583391602532053226797008719120896255139953010675954564877461054550205311050857995075917229910706663057958601542230914684846183742545919851302133882339602257364696606550772586092737501104436178859036399229434005706595646568191793553509510035582357121201283042313084273488763834316421471594904037077008828119009681949697945422176699344293774636075588896686663191863832471408049311486273308145889734827737898775559148776851466957373611774802549843979699808786146603357819219313111642752033128701021369447282829498157261775775715735483109980825056261627894640454110123593659907759436476280953229770348493695225193036757459072893610902082951480704909314318234599324794458660294568650724838136196295638490159204856838915874199465336299549975863276696751867931820548377247533534111841074308805342042706471194260793547941928410534826356875504522712165130124118154998695176758572812046007390994192893268564543825578773821950704529718405877053468688600503411321649015203718649455878363630972603463662349073149491899705153104831668659008939353754606288056323194583913749339612522431898880012633019488559853998357045420676356735570101136701260221354427727650784146727567272960135483335073465925265084671968806060358104254711287197944080958926430244321981715775285941829382732033457663933895674360879332297454832392153479895779019282975391953227135372886451689920424546811209183149415526022640290488907624561976783842891096784959265352956877321740996153930734783217564160580014365721581318513378895067888102651905052216470064246557073440078261950119229822664102441002631309988436098118793314570083477183301821160799357249413139358657792526575181191122437618880106215224084822792476522816009016229891607293793702143269343075597053857007628738884523080690530815513366810459412799104016870062179834638135141735156730728163858983850592421975406741074085649480527172359719665028246345459858471215090925318587937057346124232742089610955647121082838359283808464369157371425348315177251864231287132249488821836241052319061822046557379166621684625118786865491256882072341137444376840927524972690872439021481110849626307494742889047234269146096915612629669602621388591423879288984984120304936010560492240820089200292931803447250733535853194501492903112234285436379896773950787876813060360569152772086222207534189329241821526063272549249351640915713086907140316858583621974702332062336510715623253348754199656267523452078475586869677229171935940482652223763464116188143944202254265889192424318857603049600442660197504735553467531569309162635616970178174568919996367681746736207364873105005696072645303546100880225330408240909071945752543269667584333474245788194392552313754518154848593452910714232920445520146655176877486390840450636726165645874739262412324118441615688444496745528970663125646920205073078545481712514139899761290247518402537818146092932357056518383025004753827112686509709931355072021776106628379424471865084938196945732484500910675150983962610377449795758239105406303718637365401025027682735842856859440283990183466930516497339194336974791483886127935364690002176572540702459010418103364953860309429859479608928879497469416055348071944326191315943916527526334109648330486131595086175705672878227335578834101554316148612158483170455880133573790321221066973613312139583930798900111368464604544580099044350246711017425674721536650034624968444299605748121989583443215031282500567293510594204418162609602011038214376842305402072303451633807208157747963144411957754119789787123010136598092244858551518804299321134519676005074040461281330495197115941301455208065402751944855786433775658665652077487902977707028201786106232037541419310654569250425835526380787409065469775023024398992428022538401835933278402694031474564883068159328065279951467555725708060162564805637322245637133532136064856214976479889693846708491641751233052519038582917949970542399117608497234204964538563689653861795199615471328569428797744503118172289314555326787846485445682783479024948445311833312327063894554256808942087277289732860056867195775386014092603651232526275131615152000187364760295422500824765077175196629577711206424963104867971346357810158717018868096616704513254079039699914788644515955244962332554214078180538014274547467781980354428719942703999331035113052583659309924241580244150686674012970077127282016540680750859442409078555094758998814490455163680066442762817552142397756845212472175645995805979700131094580087845907445461663795884856370392810977570220293974992329763389606436421331352842361274663275358307976908455013637666076555176873474802721953917092095178887080686478208046106407368579030292712495445959613829493710098628780585270115256611931631603336834719929501967405664724179467949869944822561318851986378123193495041194830246941849156232419569791937743582346797646528888614715484083128565490103388579578861241254839896812951888594869888427696817181664250465453497236724813729494583864934806937373756153411019079905284884625884915600984020757180947417860037298398350019313340067849626146230761441260856842572777753502828772734176284412689606531246720136206951664177756619168741497199772720092482349628951088044618809173093047013203272840079732244362502860595530648331087527938496799570309935416978281124141138341827733904149261953799937971009991558255555197625785740962889867604633318609448286084545116162603996114094461970810145549180106516173601826827828530084380497877920106353948824454454297327441390874486703966392408511071499047429032919822909796672283878596350783145364855928538233321522536859029782450001675155774097109603752122829500622985875523353339092785767259473967753390412034312546377737846311478065835284881382093299791283097321141450168392679093219789932877848155546770026493793899460207687866581340519126743070741741792786994757334136476876952436089169666330363024544993573901963354877383524025089495443451535926772592476163754977315868492811835073853185412855780857766968478887618212583323092321814868601092126783667886670562800746942849386731100644214194019168696903953823568030692055668162077956002473556845100842298442257094696577104541792651467277967476184351864105694959409317776411277501421706982922482308005015254507729798161699265390786539051767530953176803976734093866630516014041660064103768318251531800414016859797480556590657965480122054475955129829306988952069427790874089929249620455628272795036341764989822001576424849419468474514878665973985419503579598731681059670963797011454772462615793083692819520853396177031018708992602032689228975658754516716184631919624972411470908286028856399286174552076995967835740438088396713281382477169557403597856975260719293455265697805854926412696485444623947976994882773231144622359158448189310239651286908790148066718180926198399168228488383758289361337687407355007570135535001495017417283245470363100440805610038401594727969746921290408582543719049923221167018175673222875012285372565839738143207200727760888459448168805267926306441532944060293994458518134219926809699432541699643397594982964893381216631458059020684660488170235322554146306419079877619663869642612352519383168635892953162605984862531548472735731368286768464122012947201823181135936211787914838897488870986756671368178545006659464404599899082465057022269132747520756275111638397404230218503292832356398663025207222453843425829952551442992664237259706585614608251055662049764231581095107624785915039188352664195967127741498264496538092804040088429473348888887229200443029363919661049014168533334311023880244773660716281243052551115763362387670102725471028253659534215492288254501150283486878008481491578901849848164104417549390450036459051405806398373282754600886932176823131154728068206609368082682604948724385748006181544334890739484407287415248100608157820240659344475631555330520023640646732165311279483011737613411962385720451464824443961732567668889269523866989505551117013992772735073701079600256275794307382534181651720646690152466262175420116549787493017969623662730512998020099676583573663452850338297190605634002795623099009867710713291765352646781672655508445478278845543232999687584298708167476838263538921912984948983480541569574332474336606354766572388563154013274228010030275958636818155328357234443045776253105698228232295877813585889650534344545203550813714815292692562576237177136907681213878164218600238729490860224523560760673598234845208700964226082840771127952637813338920092283632817594916319645935972538065108255401165367708877455635396706617820866330641690868522183856557453482303571291852840226613898266061583117802158229747289952605957342037648753835013891371894039471377687583728344423687463714591937325278034528808008347625212217820551754765392489939777567413918701489079477795025192019342301738010875694726819782650001435782618461459877883300298863826021219218175303559984989184646876537123154846416507545510289976247398163078244627719674226909435802760404658171142084554784298411929866912207277777007902701250062371238252833469890830312448623332832839953193349681617293201626199278414229029196692513562847090100804431114230754973528040696962647202115921107838525948334071091751371346506856110176292732603969313811641580282331657157251257477132916160280900790154983411823681115758136486861470925485535538160883312186120281660691549384646144174507290656290026274703915882036140447123294558241882140458585662174386798611236065103115527658984356118995404582291280126901160213076432095686702777860587094459126326394109121993940309584461557019902070301671397616758585382065464277474771337392302200307944814466848874474551129241334348459265450877746066651126187133443182349647469159953866801833580571400628606666988249917286948386882431283674895535374023776369589671331393043937850547844737922887741490708629575622675182040059935642117741671468508389866428789480229060799373302268982314652913344228827660368539325789532366064360517421097063679373085413826511924900001066310128491632043712396487237550606836182922804044835191785083899968531001418739762166731556432645656614646954054621796674356485927336010258256466544977971929970749633987012446151444118284582798289835006149671567565596970822197540938367187052622057167050188362272426576663631615993849506042363125293753775660138887537217382957249312201526459175230075966889388014359778805014962739598738172656163175107432541816791875947285554109139734634541621106383960685617676289959088521046549208932128467900757829065280880057469811689378363446320357022146039795415789717168549243139475756818981176082394929337704530289285240717529813226759047178170671993136799276575583953601712762040499529055634369919343863785208940953957141983373987072766112764682446390155327315678634542256723755096612681066443770885382645939292673376199286491128697245854042351978132549315671839683612017368686696586941140756259199479047105942469950388635804496843676766485548059725638074331167439104274328404378740802036435326885261653816793385235801505719364491138366022663759160211977512355485961553057777167820365013310074697009961871380534588381398690185429167819871866994267605995279958732830326380379082230407328922786818283196896387271899295484815335207286377769374250360158358741033829883667041072277000662926398955961441869309482614098435949165648336702087466872281829941308337796878277457806423230136559134249984067234775878152201865601354243034179822677532042845791012388505490428260938563800506238686341074469328024767343084649780933870659712666434776456658163084700483834577364698284256824332033768496180474326919777417788550853605985502661626436005361072922301545407291555935469678921592464637145639342386523950441850182663041248730880380410438923521378913199174738685705062547100426136763405780104110725079613569774668311108344326822996458485399762618250410323491227454904128343293788410228024442492801358561273287656448792128187880212645268150373275355033256976186089768270934926654134326084231686870155512106471601351316191284086764583695026416805092988645353139922509051705865640730089702024590115720711562440419168592202036025913562375706181679632198241701929124615270372717439263279302071000755405616302462341276007876385376906608041711493251955772339247322328033181859967708876149902175195761726533850907835364125519974273890818491775806974366837191609118835059929010401293966314453223926985181440409464362681108427207588225019616931981329901330344396323851964582902705729859416368529786781265698357279135462297729248035248627202933378938290937077705666946601502953990697997581417764321381574653476177431030527489649681939753531422288830735106644203408374493062425583094801040872762784044448372710935597998127895934604868573691564225058930063226336153014263884896760124509623354686303844740376234725525837245425561391553019572562690054721715775454196034836269866802958317713904691604815389772209726712984061782047830493254256358131854417879878496821482465719120496393332693087777932914454573764531660879095940621026987983208861811333645318260692387427220986577974682842985867161148120387843976711996008075307100269412432936460353856136944453816583362995322892351488787993745277813182971335451337918337819358294223200467607136391279004486761700382195755110051193171144171585434764345895332907554810992349878869669943914358155868873029524760305258702727547099841150487777179152288704986452431328345124649611613220844659592022377585718403162619763474092532738591072670926422563137418704583967063835032312864689177367455163287077305299104643890167372193679747623179004819129656096089694367034989601772143567615703579908690597476510996027507948694932155304856536866785237844789320950568771476841679951525223004968143210052114594185890889505319262668560161815554050650192025939714540731443116245992661846125956838164926526199052703194543510013275446620017836359692237283093611303236453336044577015181562172413094225482720844177982408011295721497741178801981724145130426081423442696503886633442930544071157018384330019283650384388341264345400685279663585340847926928233565832049629990065269461274524697709137434593097011228913829976126351522733231397427261216236259610416103356684510813467516816796200859372200942012639182767600773643782971891612548047889288388483423338499417879998954550400300312423222743818125117562287308161885676635377506526005090560789288280367833691542952634833074515221688604534093425430176121154134296353743369858682129273627703150978814325453134165907759919027249399309303329367970165758172445892560380311686129098935503012462034438721857597360641449757295324940494119787973767112177636856267144405398535694083911086003419949966968353957312056231389146549326878839516936591959651715323206364217810615817799103184962413679572691794470889011726548653462970409743408206909701990203710506522069371866380156399934676031259208260831602523670622901132840410478060465073744513779340760298436174533781526845335753802496719939273188595422900391569515324819670227857393063059683850402071082511761492226620791421953114599806136708104655768634373599395682291331442761085301078127653789247680885135756837852997167026210657904314875614113150315303246425629960077400766208049993686262640410096371642097633218478643991409476853061032703519125769176382068542065946858297013410199592874795630631411946024910766465824242873979586703293392669854876851114751459622272729507806371718639252412380061692106374425750087241418327723751363660469744853507499971031988485642888745218278158334919255040892016166468941946983710595045285116621349784381717196722353602676766900252182125934440721744081178217681816969219573870518357745957814480022146724831963578370940181196051788553020144709432919553986037313516217184208730684684998658576125925107754070196859262529378023812247715405908468233087831892051492618055845968264998892656858205776461753562871309253595817345085434874972172633339834361208298424526332387861778313513756098078172710041647311353472005437984152015699691323942311604589322505585731883692841531756332820457803665800417756543329252801934655834737214310984645693518146779049979438081709607643734477444314504454372709507937478687704792325023654274752952153614788639237516416123772133092562288735361253043079481653650947270985553446095709709960041877913363891551272589857818349146660436270042717482811011192038505429320560945054753892836253197825933736799913072967428922209428625372115317729977839526310043290859300870943922491737752127914351041530053819686979324235213864950074736773914103522416061745423358740566079894738345957479594851910299249573133951675741396836923497321100446920971677556931401633871703992392805748108237999920719168995851577006532646459860888347763447631017847799016656798394249797773841049232152128411027859850205235941520547963608939884841433754908390961934208084242451393068530969988017070648470149545751713834136404901742045018859497405343874411130343710391646910819792888026893159215925241360312861826952210112937367444610230620153660804151337705246395900755448440729502225009739252068151451113900056139595816736750005540169076617735785365379891909871760035074746627577498958460396084581724450582933021299984246116847017299225456386457025052833797750634539140879758723945270537807606141414534372877234758650224824318668606193466654285709000735458781910557212324518846624427704347482982732581961861532816730614557344601477705400079008713022008141240541057605723380915425018395006872720125100820937141631843221716193587816774071345602288669563349365250427825930207919923488955646510844995320610440777483036339705575158449209046034007508864218359299086075755218328467238695939960680301304665715544825062231781176326948979991419799672681405031532059721740910968376648437033611042375259807607357314987563262632625134214438320319015596064973849559369569635020101875965576379702104254940717261416464932478852268697870322837884731279962658457267982596397544055782881316416126079347768597546520325176868136054826524958943424447549578711143775720704457639070538452544664597450515740189834983552741382129238422117146488287727010415748722746404922160410232865128069267991420801823555261640752763607627883312037333446290964305661009475956257590185960189544927137340605228998711503264106016161780845558100240187790715387487261290267258667956986324514148662285376432097893009207058480401547331942678905577028745545316350651335869287616535437362390000579832408795136109340275626090703678798193386738993038532204788514738840659350450835087931928583176188552038410886807850803581530969257782642688675766785632734016212891288458284247407755145649394596173641785045019081722867659354097160346573679827397598231412639446043266845321120829729884902626710679319711342902626135240418306055467272616098454477160965554192017883415797891046610503701871369552657174045044238840893204293122406180239946098065124466025180522946689756010839265417434331700595643860825358455230109701412694231115896711385420132016330502584529415935341734353284227028993113517273708576400688380079759098505170867472693461753874041177698234301461942968334666740866465717326157919598023570958292402720352493618008572319156413856457430232560167920719011627669507931499697759734819327759253808707640450290956329079677828005431135336283752688615294502361139596550474718776883103499864242772839041610973178436511787117076510257594990271861717995507955127912756579887501703018459357979752909023993079220728840775822972036452384255250426749919055885177701548082821081386485256259785747592905397862759499255603516625389296894677933114074471598308146920465703506544147624030524373811681491814924868511093123702631292124219739672592382489417643540573874882894649743400327014449024851354677234308693548652433151655863715348155559321666534609150197363145979888778414915685330955028441888141011539916599507316545327090279905464058617777297516682414254340759381714229052348879603902970231235850301845238751226013079391000962460856261827105601939874477193223589870254401579279212186673631627228722104218393542092344847773629205482918112736440621692313082235577544430323271948747447254001272886447551262661154223396645010464081989243448874269670646399208288284648788996777399127453022325410504450451463667421062509519234354086697670086601770515548328360027743467810824440907964680697722347587426703593457892539431109986622354047408241980217154875322666307913901012087099347926980849682628119694438498005049755322673247764974099404450348730202316094882072087852415647489740951839750076376531198525096078546740084046427107638566662911655730648696097005600999033665282096817525398781671078902601303576982285709899242901386560055210302025676861191142971773580476396288942656758197975943139375457997860404523253924958447783480639976667838244864712643315495815011437033220834573925236425533032960170584407339934568647749385527401563083111730968500849660156768453713706306896143156343333383928274383738328589106234854343445931190221524976934666104494781841089397785077739262154772907035189270227921484764512212668971990010562834452838016414401855043986758752384171169286466990996088821183717713961063004029508607819159411394094143299928914122164033980920464226099673006456067025939240137808707140959723290633919844937277736421254719997878940279853839213221506755467752497909836063292163365091773165645581258790285745916365976904326660200547303707347501890403085536325340354317721564261167504368515397330735786905124018419843030837790123606734925880633824885072377961738468971540106247709051754074896368038208947580178193683225497560913140461910929263003298541710102920705304863546934782647679980395157217409545275264572003609146667742376625083949000821439449181048087852396658060984599147297844852583545674331364126096711307913242257205117632636557683865290272348100899180899582716646668290863768247789921099131065322483124127080078741693480366456275597072714779266592812937329337431908850369369597382033061168213629284722661397483669952836137244259155789333555344995033955432796530357714982498548613263083284421378711841174058443094772163663112954893772303370384639084584883330663271895788847109584889283833444643251846213752878984340124729739722410623859936916092973304937387179582520748592800356566499142989417402080114818639857030868163907432343502720654995117062051482569748501456452029189892908708103443039638584424253525046889276186512000476756488518808651921829145497093964219837978816094479795473119856497248090075603784084282222119866228797135948071371200880710007636938645111021115611041192093589479946237303850230400673596887626805732763753270930797573708677659641329251706949229122899980705155674694220744287449505703130619923275365632070661320025882432421150669849941170945971079946451042998822106097744387957359312350001995784919065628784277663805575542535906567360739249383085582861737979752932026980608689221505553923073829522947283213403019530474433658155153030668803780630532540295639308438083178833132228629841867941378676851307111354475134117649149057917728505697775909871440754536886375162193819758206759391922390596435017614769783319692187647909636497713563474249010256214239098458064042195621998518362368874939613574568097614913402655255451831845100602240124604044907597590785890939768618524654891529202075089747411193103041037717687906249496660480683957313991135272069595690165080797290676710717975126965347332054395583032856544205595955236386216977511154204645207653610948362006791754315356942641452251117894905391311530243831729292559609640396016583854338436969096647338531415099854432215826429289632302609077511183866728572415579745434625160321051112059132629877192914956973345690677132932852526503884114153802052617247380891789465388316535493880878658253021545572289833868442377542244368908322371119334391893785923653077610619899073292114731423803361985279487741170134703574546525849824233141090831944670567540263060906196639839246447423460154893476467978674575480033502441316078962743388648905572835006261516121723807941552740973977463298561393582618153897623999807008947514472551929449773899149851199988908349293974263699783290880094999017805156868595422955875837601070393931621597759862863391590292371090454678491391453099807048045276495930973350350724641529880228314473243269913286477240859622551414048164093950558153754098852413541820581255161500269039025237703052800702848532473294651513395007160474220561411715249604842865084234953033481469127337587975924467328430169933898496607814251878751141788054781785893875526559275381196611213250929974069870871392773397025801782393638522130374952554023288113513245153718533769884697596971468070158394520937357161145905309223979083295678935230272985785297972291343295155008713526073983899414934154355377592362894087568923621728638039104140736135135897078643397426039016112803201624667360674089843734334937298810662111059908218238756476450880119401598577067405053304573645936845284810464847235380518865435018585629644967313000453644594665158432889245768466629976631302524287662406797129096066602506570736388678361154590828995648301042342633337781271716992707378338055170829317117244780919436093310577267133919585284499638874595340952514163076064350445159782326489552072104684376417311704742856446483344454277594040140169112081131704117040811118956902377619886402711062817803567449088256640099217493053523052866738968095550706369208682606602247339002497822103573285036661963503062719834418535872292130469986861465846167290513512619239907849085585703163157889608613237665342307872567698626545349938837005745317958714422075436968759172078918628118117341257964368195166910714893729478853188377965970207164169542024068762043460547328312316958104691343128629267181133329518184313599862914280243761358113733028527852199194414167808132521694563923021900824195874542588494071723389616389698848391149752784507349070577990466180879587493165465309943723207318585035449991519528798997903376878660575075772610562121395145622769707175853477109305183480918424832469998678536488581117060225454825923795701938784075144797996440838840958150223305367831547636479394156855368604724796380915560136186782509102032611744048499121306863836266608143114202008967502056589150685343231870667758040222282409154941982748067484067638553288016807512046213926852856433311839977077215459705120443558333561127876575369108165540796220514114989262948175233587904362786073419987224376536448707273700001140769101475279326099712933695467960035392583898082415796621811308474948345423733925622584343466262417440444531413931928087935336282901046925007738417618153820183180830278306119292680885211694929042134599562873628730899501084774017156885374050593174816651873408239383810719430720499875771714755707659845766478672764246192522980749580436708285161859047917347514134799835715299065168747528205159674583598370788678375999206232843750896961205154506685175494197662886915065188762400325798634405328936216811675789533020091873334896079569435090874844276397398842659531256155138833595071414662361188863973444842247988208550462648509958813957817456345736582762360632652273589300723508584697730345009214402599288637785911854154903221922894776577266973323641567377667470438929281203316372293652601571008530250257308278070095013299323189389019932181603696829066371584997263327284308239076847089502611691008160052915126548627579294958019611512179497034791081786858336983745175148391107657081907208819572287323276643787939427698457841409175376483682470381999017405203341118118144631308475482787574234288982010271595965432651093444473122919955552561718743182818146492332142011426814291310894279283222489025804803994801567662613347326609278595172650308264643760832622962916732331131598119224164099634104508192455653959096707063192615930376230010246756336762488766302487674631588344780587013526243937133959309174188619786853683204511685621141683519662209863451526217481696588462763263450969793505881799612916547482037204364869370003264697074271087579841006271605017927743929835378483613123546155364605815926724195744354248632963947657239339043043102928138888323573942598234925955256129685056536848273052602133346937862250867776539211513317226617041677081559416217650487561217988421261129902874103412708488748235967436221992856211452395838783825588545457324190958944984821293960794055177446717333809416247261282788920770936163137276922022998830790053879245481309467554713661066151086700943513995945495814473691493951359802671976055266576807473226207074646980821714060844140769370759708660799077755442549337702253282335692296245685434648963775852943123005624616731059609280135624867787988693981777760871724494075861657584254757291189093888518287544621997129093807822773339416624445952524848911303994818494034148174468450326779599044054695698396370748831608892369954265737765988856477679259259705145629063650570972554691473395446791649669276674067096020426288507547350102250434262636157648362132500926694361491948756908050121638878715802315635404123008893238495396164412427388893848853797257418320790926820044542946768926652454131408514588850929475646048033195401939068219080402155926002716216276084939738144423024648280306458071451820773439208373021407055224434033948847992329857291327529471924173742236382552051379665155806384668828970295957703556823402997316050939676373122750879781741792133862864084662346913115674233875827048850973871817738344660672578428570521996857866184982781630266308416374342545685064084949697937389893623770707000439095824739062354234766901311060322538706560718357994811943242877510280204342449564439457747090915215377604427623556170516993226418298410279064468155059454389764191941471410358380685091694360347237447712313740703974774813378387531234196190651815111083565368842176743150513687135792316326529023558879572022670155862170213097845420363412420735317841457249902066829825269751860094432231433628575149287922628013808283453011378318269954524798118843080815057129952721785682250095891329094718008116217107401190975384158135747405750825579495542085949500519854900232181793015482865640946956987941141080961059880712416847738848937644789298146513117284577234209010280251067127299624885278209023318817866803754862837515788713804734652754815048066849674992478240968168708480933417379559873888811084578570694425038651529436620735895792767480780420930984071682604676575852574731238828883619273892999348431286237388051595619191990467788322830738406999967899074580948358578067029682359400002210620029476485959681778326437312757657263769201169249184756646518120648590045747739119284238700169595992956841157154375053334889677165825895349454570832989142419146906174406231017904053850246983354539952350612059131888260959568337607009863431843530743295672392436147797083850828938911631202975215991063170860510990700734922109887352135960930371299338334465248066208694077147262139029233891903940163828256449862583841945248682862924017179775017323358586520176264063004795571751230931955210624807900996099708316654313723963688731281106258139266756374851021937840691720035379868077116606217535840399735763139196059407434093260132822569372321529999134391797640002012589719201889185568080364525818719800469819977699890428255427424622160848337427772363408238978241027885686934413871009518238909475395869410293646726156941995337193163043969594854506118874661216034579329001741155326599640463285391291433317286309588820383526991102779519309447053782175141142939675754571751261087038906598482387452963108233543441941302613576222274554949066480175814075388455162219896933553830966561601511825329037362760075998211799223490512689986750917918048461294275414637712992652785710587558294148132648197791395574927399628774969542327551168993717030669270431015453472276718060317603269740034588995764581795380485224245228798186038289698323318818984694502563685789108152409184157780690991876737340085049915260360174995782031741932185623746972688658576994505767472146934094103718685394487568469476664500694105512976740681221046123212395683022353466822689352945412855703213342351320160866032102672129270366943685043063615885841740540622481153523815401756647242089997971408676451088044121222638549913335169654032862143197373710887294654343522422500162342235476387880732689617228416885557679601028808666982124618613640865147585575132319234888647450091730372529206554221509706208411499250866345522825577924142904397365899269224637574101353516938885016617926629135219472394480819421670667184043843948381104376947127311315136558830207340005614291236701654849270241739558668352231360234295516437442065495849875953918133160249447189188859608311653154438404158609806864392652597478176748085562801560085759965823807778748689744976079900422089505406511627720237115613918203097869803096655227314758607015776954738184635604367392511649968904761022382640632483163049070237870831861295231872504051825956003788660712148624724721579774368502666572841811952057631273684006668071028689720712779511430762192524892301992619831669774336634401195309196395230546387263307898994302988890762482253189289329458939215971704909679852700833954092021331065885988237440734417486853230065146285741549471014168179282131355316017584296519046075605358826622243709929140799722085176807791013933758564868640213953809312352477815898155294186530426280747507812814310362217031219485525796377811003733279223032358327031446177923203128810372256738444338533495018477309070145227011992302006274933065519559747308166344462762938648829921923682468104621524060195911196405240155484192977278039291679423231561719131141249154135586162627871732117424979518758234446446449387170269428081631423948452461951414942926441163755175235625153291339361050009767289231884115511198702562020450709567826951535381617954811914997028419972171114810397915044153974516602145512060180795446021339838189005588858405687483067965442036305590225762749816153445731701650242092450723700912477793198248067113345016408453097872165329768619461715647042910887984057936972161149098709110833164569542496059719267452759828570297116792785557501469374602252478556352578565293464657611151287692346300965959332988779051418929242478232957657217889470100867925066330227639353000296099408710150274115056685014144810245767157563407187374834682883360420255777625467734220568003872734972424342846382003093033773005914100037636431221129604136841989392532434089037631764261889273941640159160219427610017354598557830418763519670813000791571356973302517099780227458039974025676005653322459500514570530380956274337426379223192830007808708791508309802011329052338897096642309951003953607695055078484991506906483454197550616628325806154756552966806037482409786339745877952486838224515024622453225581697318095060271224087955513947229796277616012335711330514068724225440861193795589009848320658189779779090244911421818166846507919191641013350059742183584310766191264983450161579511568124493719400218120505615127030477817454706537288083246979907969598540556060536176211774638901233458201381092536512397693374433917462223504336840317322667480819511655368418241012244864337164030695009488816480249493250581850973004170207728884660913207859305198088725707121836165418543832524242722654273171710909328866701293190354303364213738100995536269299190991537512744488834311011115539254595682467430050043151589472324371085269840691820696679196048832840055932201668601002366956408019461705182187968742203569180929586859389703736179821015481707551919093992072961817727236696470467581361982900847263692836686386226252228262262679124419883025130099664497163223623668345563430106330770385553025099011027032766875629211710061482280878979514039032952029958521878857447113481230520726129849996174781314868084645193888875012769551361236941224114116734782470186522609459732690611052804710867128802223388541934394015045588209832736600484882873791333754729561167777663818342496221851164870561174529895315184069930764442349200808947221397553581836937246605810080195101279218595753648665440440340873108190554519646202733427054229326569306282442955570593116874740453926885490768134948442007702752177538516173506726622805697514332846349415606839106570792345414917582946359639076942613018668643159409798253450831171193274952272688603239447837530541961241365034322139473014003204758353126533493043676633679050296565858927569572722404448233028298929354974406862411523205405968578031815554280241834559927336864384573804175682779931541503413817692319171592766972758973566574641942154984003344156735650509044651060097455174020005608433716985946148847251178561238742634611653733938583943135107362587462024538736957530282915614287080094602381988843597883814472853528726093126681807883349285407619375443469280680631333389748708906829380316976713359329815759453688233110322381346305143027663126775441997161412081695720011259136342606125309065584275671246296765271845478668079403781440619558591221360524753755156523895313684892988239433577851670831017608410640814372473302303501740544686711853994548997024334634326713996283354886805033449217625227873803105871636403773879841101871714902520393622914147507400940582034319762955214662326432380487992478525486217590642181022597048641745317655810681238115129295850937086220305424786770033620476199527986721491666308289131204664694556512592260589782971341815479563352239441473787278066960586366940333279693782234918458689202869252869288326620266087159791544914502287996722211885721788643105153170313693753048343839370548348204767615488168001075067300232041872760294037320419948218688366366370495610418515436119646820610892048985383649955547001997145462975016004457721524372489864114065973355841156850447270033872397364595313111192401794134689387051057672408048104580620624046278685193299300404502546098282015500975363242866833552215375622074364598057709094874194671900382934641407979447048234411131189881597808387762602768343973839203016402806251691419573240153552610113583366038982408273158511389796954510002226540255439307389949532239425765240625310846968777443281270301779958162903322312957942907906129431405938599789716425746517141847860206454458868845632085984912922791274891829833741716288925009306930583521242078494695212444355269557604492246963423330771853025890223189640322593747536388200029525214007584666590472130179983240842919351056446323202232656810727517704231795240591286873599463123021588291207324627884516911833536252216736079690497944283985459540392667291147163661983622768015924964033217986090315634975431598502960999018465596006766253374479369717556835161023220567103172250883507704661061252586088154481840250583547397437823216821223924679131831081653998721497380236351894913740305748285445152896834824098575811466690468262219275159707512655407388725994427960137065935651729835162378225650076309102344318554035428474846459764225167078118375244842797915892361313243800321751637312954781970638347000380672184793170638041463016076220699165801492206713087070811861361478988271401664820626946291317429082853691740055254902194909574175893214253973876652688172178969360632467782275947302335836932262651765606741829056779854805646192368566408480926564213998916793790091683309412533457652830369423851399063047077204007159569750036191730882183120614238791854388746752123768785303186240008368428009948337712605234487363019443176347220750135249255614247234485879012715576521669481915998017822186859441613578624285783987269960121493424323271868102186870667138311900785667574594115800791404309156271453712035051711875365301946480968845463598290253098498767125996623331579676426347832248689143445622319826154384338271882627945368618863548174512244785948772641020295559598817391317383960410387811718123317855312727495385751486795935349719413647000189960912902368278256458272985348594000890823226836231604592977649874144678999230588026278185402475830289976340269507678776788008915301910604853050434491117686185267238954070868474440057462043129904227689850267802165050565658957432175411776276163353559052437432145872429747154032109039221509842075276510603562519045344377231803893709435834196161533495890572549032498182940453364109393865463364665216263867706751290103540342718884406377014349567615706441256916041782083729386224982956307696315933582541477087710707960974167035960633856801605800933211985331572582528224742884672825709339659782044117109198551298030553736380055733414159301713946315509918917008568314245895540775927984146320807520798197211374494466361530079304224919366097747713361965805203658902223092259084685478011493224126750218741522488822731173959294076281107484538227958955267399982170994375728276117060246256620616184488791279593752007218055960648752813762365501510353953528423477875943188957826694036791240377776026023392702300231078080093655565785931321299917135716871948325559904016893776086382018921530450409990930295586692958652690259631047632610567119755742699860885186824116078643938740738958243009971400134202450778903184895465184319387686644824576256442433948768560347656905291805951321751069405407893261146638711764289855162350559704478002134960749512220703626839294210359190575559718454503546717670717857815982172196067962414758858525374021686322892056741237288008537743569828106326788661717028594258128878117127862315604263531960014721365086552762149248774065293914452497020866962506728102204038317327194815840865603342686048763616760978281714092673920242757652222289124027878173882924088722775430095425916890958239479670918075725081894868778138514695525543592313047137540266521597288234440812609495008276202072620655783776309052725641368016847005493014815307577814253820377934072618548006598451047612039222926725931139433062729813787755683341448445344574596182194688414721755360937649598354786272424371867557678881890826555768682132058287100591117914838438037506000257557382027778505242809769166180808427247413623955875807974244550387019515345479168432597459411896055396285252851148201147817112262049849680303658097010438560282143380257125210444170933200048790012366254434402773963078944842485431704551028814352344729464324371464666088062023456886956598648309904406274632397839713438180968627625542181174790945269564861144566929109832898365587720299864080384127244522624555536089906233164311369440259752029217216289982209801648238242640018283272499538869805668550089279792131496107273663373159972879062117838961126203772788730986584399108669120461041239827269358721739032759065811421000940918058512960135076448638616159091902453020516623859603489134815992307091939442910707834740826504245602629706679619730602427931764031840939480061118946777750737685565462396835185790004644479768344461521186909184909121861700195868484314462889929348687195149671645055839825746466003935658102553810602535007204814725395533139573827657909185134389613576061367931762550189325724054393245807475106880900773354569239064004342780058223346660083287634623294426409197413839252111537760121323595283802305044920689175479827342839155428472329298795112565591256516366533381186134593869347920340408667978949502790633136719095593446850448225670701646486603667398642236164915723311546196311537443750291680259164998136245897574342750508296666855676249305778026880402377192707146686501374584163429029374163509989160671727727445631439061019344345437295501148260749114476084527379488679354447494229053663971308081891523327876408532060898440753691718394996714990368615018332224984256350648129832222033828088824394029423681626977641029976950690542991771489676557288537759728014278622054268521122714334612755271949609100992310864587486854507626897056399474166962034205652245564155759885625261317123835581562911446837929733392500239077719666611661545968630715860778737578003992094938294909571137809303860164687310445887088386329310078341792177686805558191471309542476436916533065307465016418659621622615722159428156901171587664046024910698779311340154411397903922518884701220289082375727311989467045058920540797019939930225909773270103224807355473078640528171493916471314395117051313159156022848342827234644916026228097812943232247360069413082066195800930507954519455771026240372891044626541875854744490071071544741567122144562175291212415988646513462597963624811284372426364369639434357547782229530598014905985306909435481483769987647225866128493987987012126971904583213876820177876867836292277422772155067900919128523631038859948637061223348387053652337902064471559067567422664898494329378018543460492728462252760789068443625474862985012790013964471089352726105954268234411142849185634228669893065316078534619082998852708913636509759486686751614770745884256176954295664297717928238648056638399755883014893457665683283020742711074998013417017327200067818643412624080460479468851807139657560428079647044964310554483988133270853629283918127605139096554069105484471742970317771027653487170462583153394339203286689731353561137032263890119465513605763811861421189920915462876673380982125719993005049367353605644222638968303922949447447214635257371856109991172664823268771595114134867684332018871872528372147445425051142111424218086766641813739393874169042855786844211403859053538146714953028337979263303367095618467795087267406089999051306191813099601408344936951233085678970535511119408742767127955167955196886665204841525995061015421821972973818907374211712713026149608102056315251655341199232374700878150717945984732313349116438862221300647937114406529861485688389815970379956957040990902436341155825208282362774732727178201267957770034739486153639525762321817534216299581556883261134308021879732430053575905593876992057648031302197667171638556344637632178325932301529335946906960402439427361340665839966727189182895188076050557887079949223338689066760080143510038888118400018448503523131031373837749221768995531035807958525381260935532153827824970562643796929019729539757068627625023510299454664331856704246386874893511982777935026391229231314559916667193788260604513255428527533235764235683875230583308159076318846629040960989308398924102610733610552487953717787375456804751997137413133563030925827293647904154763947121094082749656611250594824580190523074745795708544348745709338922091062870435543509344582502010524818880101407497154553513753650532439018963806340627218043187404568403133501589351026393926498174111950191502466134178405454944547108299597245741903139543892553516891459402973164946419880009089214870103092299727975630094306676573017158047981102841903547306955707532570748197084968456039611655571798635121413248972890456941691236798659387022221716675126938647659013358153540731523934662328419764193187316196529384868196717229397712219761747141237061238701665242580382502929627181841906158353095268328951592800383582616821116513577197159583061486211356612683907996843069231746559921182083653558345540307468531001544375529160810336820183151486010149250804543436644145448657487234700748520784533081485317082058532071152637249368462250633145140326653309256021350116700488803310207881871387405881320572938937851079119505375874149713206349992264238467245575944939710839236991015147470448936290149071101924428008004878757560204079356697841269910426265483839449000519915698099373604511338522763505745940904744770879517114237384008164734751385421807750041156413689336492061953331013352539869559134298171896901028586926170932345279681128705098359587308942071824644284821500874760664757930888544329087333220619496676424354880285472265993498936817563724636012183568878781982640530877435563469482884419795138953965667429949928562020319923955031888102947993018371928684480938265794671433109632610645372238882012937192500027355339687205357224625333314215820989588579784523372147407945147731314726646053771321494559258536635962602744025483267513972074817928231438564796642986993169631273869867236221720323256795845200939023436394402867999892694036353815989853516512895163583695048406657034057009086852790741553929310637719542233798673710442424713640639480745859333144187262902105803058728602106716925955607037657476920490495925522077160863698209154795385484671197558317451505820840396088923058053037903437163199047084038061177142385885384453628021047258465478005279710414296530166757259361632924580823955622445602197969433452222347211498051072268214896421926550808955344911174641095816449383375702924918772783256323800512171530313857067558278329644737665121868536243241497710653154584763475859218368062307520270706789710970097860094245240649613266632426801190926165553993400696030599782592661446737395186331813246498725661874532932791307819742804107653863046232316695735115800750592091303194462136611814945674719460193712462759034473611644686631317562356044473783909517276207486027262053274479463839495126341544081113341664904117507491899167274292123306960298618015236097886355083411845860091784446667836371761565281736599188849245787683147645843286069998019562235802872213027230540148575252550422583377072423227109830601150957504480995468007107754672936638103895250884632977839478696433929141412137787192162973922914173372738944655142847360640336500296032311137438430463872075423465703208792947202556834775380906678094048775107285683262317685495630042298849384039232464618626196814167671216546796599353414718205695935592153936468142130532463888920622296588679494257756385380293500969128928733634969460826729945457567682718083370406839684466244407984031436541476386143869958797864502350950207903804576854529841123322220093094927593481207822639703951650067685608812242075059368107926789783800668687761771908951240984537589368019207653382702539438624569311263525305180768984923614306591990904658176466137490434873089226496217794099439038818981107353356477176123517880773047955973552831235354753046215120387207077881055852901341105183793982228531512561105343122314895230165482316533416445443877007252142584096406478132054088761198521277842357535378733346086484644444398806930895063095579497077521006006503305940179093133162567350580545748689546003130829907930360854878263526861190134289690281155931602657362215720041669187156675112282353151334080113805434711703608360081380053875311885487004653705730167241854000821975878887979048398636416875128152889225657767836983819162907163927720316048251882650135020048779047904830548085143545390337379457800432647147148111212302127666864952257113013783010907454954340811152164825997572605530562419953360187087562410206250277226901187401357549249039671625641893352924328670106934629581304978871346807620157061450187013038660990862853969187126847361942551679038835952094157175793017815867449507903223247985343966298690312613504482308041128856101244744007700993583294592011949744022687377254703848234421445217169737419489134823367572302658311974914363767827493958946573196780737581220076550188792017388070559862099246599652067463203517694740260388258128886995366778740059524391588055825352861448412854766242607362494082555098657410531793761346105977968917024389191803134608994870975887483772805011681533997685190517711022051993060526081578385916025334421838297524509696629879380514443737680415657824228657522206727080737706149842847806779931652056643104408404860140861049001490965478521924785170473977097263764972080887824312153857826936745370168255134693159903110545985041678791909292057253582328746818054722854202436709251236399142217456869723050816199403001227888179358805059294002149296372487232456163296560463798102463605991662830056762508951322402630366996128270971355682178163863629848605572548112991598301523698244336952282223443864433450255944489260482712506617706665825596505405514806221578587792654776507849313841914607580964912739004491670280601898313603138696706103023154477382708014949814535571961512866336342095848753143328174895313931083179853392804468104502306921242891901198093238789550261174299827905155184413486298108759371455869026543011694083704532754386519215660841870107535630207524984891234930744255736241852345789162000312286014567849858044663398336217987752085563862944054474762680527268920574299972418793482965571117923941237168077670736211615548539434410996134710419415316287141436620950769423071746310203957920976758090993897882074217470912047677612751852542258896271998878973545149305924580493685617826370394074003056256201153085861287619604306839785771953313886487169721114020138103979541400792205577915993506591923936371913437774140279632619077250251419324109590897139265518487628506828161210915406014638051325966635285618904199794802440616659672743949144731929729802617777560718573653319862688692484151206683997311951137830622468178190384171555369624275766989983186261055368583583876137504129048173663122134911256701913677571788105216615042637292190737687905980158715909722208681225975680985323171865547693711154796900864320847614185451734527742356326641615989619430064271011042247846295338449218337422469125534582553766399505219208014728279831674751457933556741327234495272201709851586011578120433105453564728317536208096667281732533403697690774723882693528243017914905457721312496876281291863344458536438204934879231610744271806885604418508329600203547418651234065213139595057011805321363336473469764199436455995310420267533464396794168666740965366140644499065546765024345920232070416181452643007925479012041961057983138563189784735387225417275686887796535531433319126686304646559436485319646956673039558381136932981413804881783730177626060958450798832134558425779672326549854701360598592285620823263381014688942927984566291209372649746594962023828423739373790830009298371931671759200738383036188580101974537266455060410846441438768550820903767655835589400151910418758649929553462845303176116863666738529585130869305490847320783486690083045720938031394847907445336060565054372890285565837319547292753012807249611336104903113045393748246151133771033464100179636247300164619780715111508791485262394631020555715093303248882439911327145355928799693865226955692757837946003431580240346607612014706404399182522958875420592609096527930718953138912070076590190073261969494510036508283154526820166711509439307498079063349219366708456474261495176270625997571552445868011151547634790461401564959669959112948613175371978428902398179659627900893113913061356203114976335088412758461650546097821981193849337479612306761308972642461908896905873208840055418641025983427889767205126043293171297206784754346388765756595366071232610298005023547255734663956524215061793363602111892179282940146074486830618678070516168617668792901896116926117329206262854975682138539323084685546237942045285669233270845914437031446291534178368504295364243961206783304931089239838248235501784120425535159696059807491738560797850312635216800455284884764500764413407622354360649072067882700036498099297620593183729028263770399565028461096982868386663193203687350403681467893105049968396109091978206211153793934388452141771073334927223843223460598807794887593556049670494871460926638084961237848430892534854572190201338978218097765799545376182846286515870593330997048514748989376869031926175033337395027881699693175479247197998110745395396082219380657297861350616295575366061339832811053264407881522927021300288721299182772061592324746174151468553441563405409277254341585898680039819044941802372722938707391785322832595758961604576867509419655725654303597312769145733358912328757526646421807337683928757598615135928369198391219668919028447559490783852139205977259923407526102963670880276995003561438514393952041259379608305454751222317867085793711313163455052016848320023551025015830413756054461400518418923642600045530224386499979650077656486194967283431820449252629538261016081035727983280096229356329348937224086548150008196441033854902393072118233327886825659471527327349643586722682549320859969372511701029024127990344268431135150161604572711477620170716867367328794186380168686174321761705243206449119390790017857598195605190979738399056409200336377752307802198232968592211319228522933961251341960470676213768523136809685792374338705713856516715078381324812206913889189313551310894877070191458492281603594356664356598258768248643323487327915254910891733030246548596967616378602306348016928910267236916310677455610755642366447465927327548759206468334802310786418951305987183320052959713125754075603514770140469056509103109361736007091739403404581332786751432644505701428612797464806986204630818352715786972837274730391551773125363299469688190952049235119910259972619601429533464388019024232861456598279490191749318119907824323808978387827950177849653799839737804575701743236755176467419902801282240359338964486690881733702115733295440868003245908042919488336045890129809120447782886311040985522969732442715763787882215883874850370409319965479170235765111391403035752364525337709606340396721841962600982813693958185806016930754619055138674279514833850118631388221823097531823650623850438168350033334411063963622218556493029820377552611309121541151712697010281797746166077939962036393854913489618814062927565300454857117964597738195476031520443864447210568881839656723121283495979922765903127444959099557926135070592143192600087141592673958944918206349548982692744908597261962320944368343709326106574754019714911130742840106085032167913428458110427890058721098487497621987520948706338282893044468948120210892622335322279255080786499699416506305759403505842091915996344802800380092672531545913962674249600939551116342684160795199301276903891565550225386823545268832620996216155425456918192458381448317728490946590452704184324509009026230758631831551616867234216190695954662940290328844820820256096337827844007123972057842291047962156319723945474060539227088653675183663204467251645654849229030848988413137834472801811816271935530609197245132831386023932240810930761469380137786265871210271329489322528786650000450227294884142540259110346250427863365866348588397944729352989227291604426081965660590377922958386341267988829038425958155871077975232805350748069990722873517311555382194760664428718340614265843264438171040565684474453833728211361981490943694046850530973176550377716502410863249262253871988127899589714773706057444602178767661858184586036095209126196014949308999652938829593628489146674854793110625150647498018233764508874623291803029625214127447987656102616487932795614613130395420901037821752478236185479184281203028021980400028392449833547244965689727252810109901596828644968302516024788867177273683769228220858173422948666823625395668032560981435048159271120186306299288298428628995426411135164924093221249459934748216451287069614239724011626928899397769562078868103500719566790287700177610239859217457130798501442580059437760777187780132434633299012468679875584188516171190135857802436988380221647612725109850495345949825309707797848818902233390113769383037850503233065223579621925913986907315242253069968691731493112084345090918555068244245730548279577378944274078359464793826323687182653997809190381968634193968319827047383123212185441194481145492590278788422226654430555470686951689501807012699191419506242181412040956661918650108318959422482765273791558834798471864184209936364750100026817400449260655659160906198850991717222619052497760595679132114559330724079367068955709743520400181165882355380504691725215378407825219732081029113687246232233354472026355214814662896781242042149611361473266745843252220256586832184650025169166818458182457667120134350640075408405752103923525311742380324694734675852504536185615143517759917910742728329767003146910378583301585830289598812315293201229324499918165391825707005147008096224887928972614949471404715723479174759975669192341111388804416867390355497339158569089409682707002149726189396644631944973646737457960769737886059643396144527361648884040406435531731639234214102030800515570270179081240334304542305014533783248504596440002215166823185630829258998939177844534765569202209161403594146972070403396176799886770191419887757951752922771608353948906505332492328911386457414805145218275612547187492300797422892418471442375867279193681425766572565355517816062556652768724753078265046532227358385353660223447308400303244127056331023601580809116854739594625800326348141266002560576516005399308413013969609362798407666271718605692117571674538854595035443194637032173683282733358850613435119446231696723673378619446705417296874438140791039979670833019618303814418264762620531172814251401956942526613876685700749344557943993983944144096556461932682738091039205717100962439855140500977616440192963132216813188636905439806455139875667599327692528722174739178680235432439256865025640067297701827352917253304996308589800962286581297348105434417547612278653109328564684911285830641173597147448800188551321738143685385568063896541826125395784401026571341309115030650620016719827674740765499167162906569091084771464823171915847371715561049604058781378224524475945332761201501323198642142952163274145765248273850410466777167783880330210631280036379311677596089496486529109950208257696244901903752474456046429615841153530816865720361840460997688378662458346564201544320165559201207569713249359235668924324747408017381230557029900734650793221740207793587910121176414942303047524271493567470586826235924931319674982989897705407787375106331640003473217181358727289541863592143643422364853987792004936821765698421965297605764565161750673854072136093320544540627423995456299078578883127484463786523358779663465767688137299507995169694246044693240226455230352429468575529887000836185198142230015367414092719519850451654597485054574894764750822532162640648605552374557037314225907622696670260845648884935903372530308461135116224866083852153617996868761867778457854608800881149386597020866483363297067030241710046707329974511091486397143654082939420714371230860827646940351755298160609672974811999309265843845222614199751363896289515908696222210983646309453134557353689669332124793276808383361794169152853176047062541852054298762390180290523579961373792495306743637869273147402746459040240037232188549581656763141420236968269832990535639370102670530570083079066108926009482020942083928590096302634732897651201072585164323780013770680493066558490205250044741467016382840560283177592749389605097906382522945879256987878232283828833332965937251299234120804724318597244752012596961539368442224800732760171310085731202612709757816472762157741941606704705728146337975545557441575067886887490803569054328699662342338555019627396141217188910141107229802571949961563065563889226471196661979395173825664093573005884096726280518606847254195999027224339627944532338544771637217926221189049191464999347165943766016121315443798570717947182223305538114230063474368726919057681179659306666914513578667632660139630747510891054502592970868476360916780529382852251921398783729273948896739425359771920964734935263266093272332809444839319116695325725015844046607225414148609665122737799984639529998773650525360537697025337652367942674971557211780421529017772044716089764613359579779347620107650758557852253720034801939232980379619735958347891430555401290886022253704876533846419030631741243193800535812340279261676997116116131202271804931299689990729244122507753901641971544331142990791784320632612499620779631706179606645324753845872220819393300240400337016589346616379792271624772927371687247456156378533836905396083667793377287468323541441014598880962254609500790320651281521890797331356068104650652600759408810628202383838675329439887470941086350298420441265982511379877434482838598546911408696823796606423620105083329264236799726683146440954436691148486153943208833106881347054806887757658262575809629373805836443531712121407412480241055587941396265566424447072780615712363078048297135542554633445712413031761871122425957744601029374089992770187614487415854084219721094348907016923902110555330191248586040225983390740824510301404986268385117891097592810229124309547270984567629918964149212629223359538669352154873130687329623141205377352809545213583418179919518025783590310463929600132633603741850135192990528416107795845156548890475881339141824131509988929781390205677404834921083784449866596973162919804286864794291572996232247408995594264537556212463737036287034607779657016004259667264078133743794223510899388328982177321216845506488048966169518113212904067030212307031024868814240946764775036940739702843712500784257217941080302434323640892113624170540692268228649438192052129577098167222869859949361206408703024680580595337697990966031510204168870926880460892768493548336563185409456120562598910293510036291753049858059303440294342577423222564894614942721346710739965554619770934177577690454919789297545170128428501312353615052629973331988280664242883887909035620854518320422266585033826652732861024713436083172769459653450021973415430080660135538022900904756831070751230418139368786925864345561431196342950019662518334935038801772756194352777434479652894672138457523001345792637787951854704540651173715429528950900359151077633570239183711292593450917504751219725172293722247911208409476421149367388837407503461335149288181140592643175856986203658384267190413143440186979686125921838552884706390409616528883980472590556666819906554034525016872740857346861758293503998695924177920402714278063855918686756490016606628587898687066782796733647847652678900892327744226914873790152362049830123058877065402761003205054669719110032984159679002857049376221365393562285403397594348841299331545809751927054841815886637567073948395542463520589711012607091005050345890939548210191898220194317344186597020338411443250281516551364769895981803743719794094766134693385197992352798550676316257219673395980598440873518855805478378978502962976367488011956172077217964778965492715225354957155181923531095310921314255919698303574973531188327912904522101104194578649412564368693645887524852403383059594766375902348636145541179192752524759012227720394164287051494345097790088298499414597933395324698599396275846212411883283852137451537792784112281654740433693813229773747531125470102010860867778739435825239878943638419201380757884708249652094127368615615235177531423635113519841936829364301040630386572218068720825322105384847325442862505727447621534701449223269181785219037390661188320147280541393897431855185394298639352925984037855154691507164985220121783688071276161524465502588669182996748642095485343093807531177747210161378783004814919197376685872168359147588580303661121110347400198320561711581563972760323980110863541287932524199462580589541801439163503781240827454659068439524784236810798092693211757290669590790564109838928488052796367766756076339524886561814547349440193612912780156414181576136664931739075950282267308036356304117140536045387509135594010786416342591406611749163898063540524839772765086076328684075682024261997144037094190655211353203156342526067438804694017877882401682121326204030254002267625253203834975756123472727906070298842240013151593183438895514185472726867176171370980789541349245422138770010889551108195411001587238972744635606329411318133906189952721658919737685714853066662868401133745756101255751039854873865573246860797484607166589052651537400403178806557561021758078019267223641673174605415978828938980619559670293217135093033120884006290656090383235770958464268974845539734379929828491474329687805974891777430343714531191911573081173595630573844382582979275691143714314365441445705587968213521958962177913634095435911683304560830430335775598155069548373232579217393535121477574236572244158398005899531348439998408723491538289599662581520042264164495489836356509404602365798067060329615829753241507292651258817867374195556609809581615857149301161103296879437791699443192701829077264048472291424144698838307672491922208297045857899646401334344533674091422138540030887749119755556750484328132612213531686817400287463601967767461744828008518799810522828410647750943292271370256702024832053081666787632152139567319541816841352258095036735250868664029362966887123139036256721720623199637913655178173673092688953553326686852759740031033632816575736283448846703148890454679590315417814793886591462008777325683476792629536535898402414247277668852668281592243979378818895754629292948016023056956572414865661374239135641019513276459211037665286568572106998744226945653785525874962488446402011533212577104117206606000912573260710850318134892102216510629616246248763029833368585171038892796641161985018805585501460775331788221998678968173836201718773365223751883275325198409407712918290406063334245094194969135734137644982600382966703312520408368148518053576129085945221119886943951744657537897716242235183358634205924888628752939281115864689506593263649298627827880139467329645364122274717371590872100982935043922869878289183649968888836558128038823709090899578440197879366494020015203021229518821557648029369329208357716669950799573142277032337261367187851742467388885410511589127768133637020163646225044137902749632644107918218529554776751134294172785399512943437895649849823236864180892476093801470610911485612215092087652938174675327748355886620751937810659172617819991758540958679178872885604640073384309534274530712665751828113613565524848220031381114342839258133103950531832758650890562461973170939774420492138729546475652604312348955895070838676784908944527332396800573098471719388608181710670291474350050666157155398444273938635434604060886680250514262149200337927640481915052668113028626294885250422242005759427756012680673697329389455963007698803912161261511289714091519469703447921780612532664616011745432281455841699209906566811103771050994592870487162594682170664140150012453758741977049939255850135157408630791565358866899887207162690002750233227771809998904583331419370765999754977280380200337823945978061689778634719969435728399726133071193585186342012959453932702087764139243586618368109473900755502046733843702807008379562089043702375376001561890164399567739519696432449450303506433093135399227755707081980337412933454517230578911845246545386221007071271538096205053831922135275675901995171997188381595985887943723658697132037617422807269784700793326281455685536869409570459028778958795749168396691382329758768326742232241502131102270851911447320559537717182509724007626092719626579812918887618647218614166077079626737221587200609257608048499602726842035928679419354325310534228731271610656114919423518299515699747746042247660461438300420965007190307847698716492739318206056919132579920325552951267432319990795605827047832467386256578702859347155446686876036396354599662291842307601919477002360236896566513242927881654089473088442911493961740881208988648561998320920090498540624967275143702979617293760289827783197877985172540058428129818684480595842562227462718879472865538567640943552741207566554972694238948558458274846671387248365868468981875678729559052699971492031265368961581265663036250964623781771009565273956129977451447464389535167302632479454165973072759368541094503608362271901601849367115113583282890162064781137819857468680969688166831816785275763242358125734621800426602697531339068498203536105178465782288996896166172162205999534782480458319096828189532075363768720109915370541912460683982335684735358509721434307596794856917032644830875907431100758147626529813018963154470021810072582921029477162866370609694605894758621183864185948570779203183607878185624331045482100082913796722732650394349079921990425956807370162921551744957103234216803342542699012228856566607543416512440207126870340189481680150820915220540040183406249123025752271839334489231564613619775320161160021652813939069573523055019834399629687122676518058278972111118194962828646607860029672514471284211193229153578269197147323229587576299959504716107941166395300354793163921192764828622574958044836847019408170740530176243417842185955939172896404020189115628211352714173690333390896074012466420666966781560857485746211873483243490249131493230133383582466434602289408876379401403297679574776494600395304613423695568777909168723145821709103469417154830458703343030505420378336748614609036170358813668001892155926696452438723567913486500794803218985771107386584932915026628988078064912166150051331671928901839649987370960484395977107053993469576717879281406668753208721110689246680301554360313649929110010067872867416530896703933956911042000312562122913819778271365610157766903809766485367110022405870743685791824129820920585468659131358005630097065915353502172869832829720903782817567708605093846043423469664167269814911112228513405115989773755701469013128160295345723289823651330052194328146258718924531220766437378682127699134839029126335929277299971666169941822600500344984890787323346073111568775292580841265639349569443075603173495436464352698134758010294039280905210672413046930273775012619206955196797685441554442343160342690610454539755343172288020059125009991047048381159814523026055142483377210036731122116045303253639828292051179085386512788493464023211800244727104013019426937537846080551069523644233418088190612730511951408304897546702520056333955410953591709582088166667439586759170901121601434506063445129457686596153757833956243037186432170021643697095557118839575461566956148579205973922216011513832156178641664533906439433577558138576409870591032208207518120775349077707205433868376542561256671584598015427466419927422059159252158814704622667168680271965864627559227289996855651531597199806339550682587699245586557625849192126458872782079624587410018046530147554670292929204272907414345926380946341291046892336003713388261101010283023460873262113282167649339193291207721569073134121605120198552346778082711256231807914243400838322629148957193090704741569048510084503191605705177153570149880793924617696733504885381203789143311512242050687786230953883452832004709289101185831730964768301322132983368664522680270770498579622491080781760006796539138158096719188351864078814074237343466086295028098994885255162316945987252113085875779201396421357090398455470948889177380159409240185414223319742244440152810571507326018998338495111043856651571765935147772582871726992429156988916753053200111333044933195803512719196813581504632378144056869011199481499493415499840516216273726562305392452499307145648682022961834133280462346216045159745543634248778505586921431519374996944605703925473712068820310069677291634222441835699159708050400457993167265947669498704093582612719308893135492136755172507092905914322302651910914860247238861250319882455585218310426707554117764424078514832189888801550808152544441862764405966318917280959223506218792686655190824174722965554624584008833702447930983019928568133551255048951381077479026481415980501140393918338665953744220011932811718336605062138496809484335578783068916693309265287935788578195473919288926023141388524909687263744484756161305180751192920389443096331969322317195383724314461963789807042554979521573068901149717294513820946767857993882945476371542265860866478772578064525599033438088688524509695772097237060491757043005242531637079220869587732680547363434316438133701856664232704129810995657538531556758515908912670070020359952847159107639179361451563636760837686817419158339065128893744585438028579705124372814780762794202252149993241378035808623232932738423362765246696659467828497427571546113041444790936577066909006738038114044009092607505387223256535850451973729632707301310060902588008254455934746617822868359053528507473334066188271183525487041779316296776334259325165753495750616886911173128916262847048940003012002585720263111738708333979368200111766294120646480502943189080805480139995399959486339324824885062955826455577537867630993958376874537270184065392562050275319087460265683807319773949351598079205190502288895749688119123605768659411808192736599518140388557103487496294889089991912097700938080361685404278971404531233758589763878486259161973747332334952582916474108616888536097952871664355534705558119531715948756103741059905647926821282761835967491809066252682782995847455176014364312070610358610476929125118083057131390566807991367672448819814276403610412581052610574001561079887312630682251324352013334543226238652342333560121631779780142874706360131612300797266952722912262185314229370210862753586900815326831200696464591957671310049142835659981740557998848508680280714782717381580966083086976062603693720632879445152221098734607455932098086366169571964754269009454257331497334317524246268927212504957312665596623284758801382425103063462182390590729839824096628862176128595589849077733500496578256769865131854307000073103539510442117579479690697081420981272207002449019970379539482657310133168125665253395221067273854848620682901320272339920235654579446026266263190424276700255376074439047574076164759241415637812882688622115284269577828810720697639707162628444764243921230530756829777705543109157599187000395691859569769053018568567146577525399610498619401139887646860551197954572184022287379887519565036165129992480322702143146695495006747493529707814584986624871236480802838638498667382477427421714895081652695209994841735279797960224033460531878237259867049863630934751017064380683613405004638506707547000047464318164438460668337455406600935083834550319571356606623489808727310662366432635175263672713367937474197684327488384263847055336755499825648816439029193690154799900445329902598963057925260215156022855313183979125350106985776938680051508327473533117836260475762698911023293986260856728525176285232755159237218648528217778016124396313021107081123497072962076390939877979404622692186058736077881234451666296564230928545931438635437123048316321309376044394343595497147135658229585625723192069727512835901381869962547948619322181435612083536880030119398214253963169970720564184235666309462750296726668283553623255417963520890703030111244610544748895601358851043074141590962958202827573736080864359953366124918298125648088220777635216851030632599384611310955428733883306026675778304353467623622341600604666521591761120533420969471366815882625776025799918719179832218668135027417543304906963555721132994843085806247511481544290824360506361556571437754296128883613970394764303345460966090343332800152764770079526071360809068881142190616878364264773335372233704666572885200106420881334473850973354956357013065286608616913200363220151723727449633086407069035135249846577867953569177177630684151284882087438478221622078657304329578503664157071359866714731517135416479099948957241945768555106376443653610280717670937941655883975100713831095057991343187225385289729415594289368077689117350844413260457848761141163196011858198833279160265661795894065824338800654748227300397865711317154038119292070862068001534363318222681261787533172338767861943827854331238723655435103210027213024375738190594435505541117763007718546619379974767086300068090197175130773974434336283027749035773620935711832007939395029209881187164622733820062471903611737262660634330909952705532122572493600282807648298504907782011765780151378730572960829886052521206644738766278294551410036927432565031886515963490461340777929711918856568241661375516917593398312231851836425135859942193777301536614891925317127315181724176848013974504945578017796447488363758955218758524602210200517219262714509689422831990203049938295023287573896951927076831506310786884576630477043031979052845037611659570031554077486537158218731115860073986883343737630469070526262855042591891654903961324033214891920425457997748862860164593777076010455796734066970716587086080586984665237620757082818387740188221711499228834738533402283011376847779588495854947545943787290817877223756206984206128803531960378858766597531897870343813427478815730773055653620009769105989848212487592526182626603206383565313767524645265005645892383839807468108123587651293522103737619331767001662280344276830930630274122649205878739178289667231118819161318421227496753242618602194977613912597201929158364101543217933535053035090990563132731034989375335833000125960217120284776255142087719714524329215876929066268174748160495733501718002225321268589353019756324733504140170067252948233841508782825000450720175763153140792309521049219340356679528330936814581387564672967197102026072526677844835161717605098872736905951656693403264697267952107779067176035689775489998368677281242355738334174931514246305109364771273443121434900548300650825745676760216640011184184156592890400143349013612848230825362853141610956551729007433965575980074510067709338271763889636894806383921592307475962679218378734854018220496989364855468184695519198702241782155032900298685366346535931826199418925820696728133974709361992419004715899230968647471817804342882450668099689653434471473438594069179577679393825979285975859270874647747325004096617356956730322524783250911223312763664709414935946665921446240274932953786216420888489270488832417769138124580260516340312689551468829176835511208206870748805719847540251630575147365314792016915359928128792972795479930928977279991993257612760161282245249311798748541623742749834755130690278474382313102701404198056260295614050996236219224976640087634281473702568071858726311374929673405164298262797407753918359918099967917059430287904103831012784943219349806858812361543681166439349611062155917478347764357641575200787572747302833476905121631432995654300007093254967215168615226471978887195213899840971336360579283023082919144026106945600121627270845064791926016242317209758251481320388062860159839233767744315567536987530260258704708959307563116847718306453345189232361021180990411811246038625107249591200948925811561505810865327684441309846688395625545629336792139533525968450547120220456891853516761349782774554888437015347146307191168272816330636865778331694655102898807661957901758522594142782130029735351981696868240976917232926186008128775797307235784790146972477546314630556393833739487437721338002110348363660965666607288629327539639663342001158740912935921285205132279218834853771031914400814253992453410913168648545382641359196131046474718961573936103009233650921713376677941585015641521104846337806387044011366701126147204730110167513273437595014841199894265657889234213825251546828376038754812025558311423291293923937563226538021624104507997083550182127997608440383227683493121264551739418126297613427928446840695494408088955822117474950816083226726840666118653922499285963745155662087442723604354148334097725536724363457800898867891303718902233365278582509040492577595658169558428342469422321088820917561924554036569470374433111878599308185575629292220625802984240302332737720777948172435883415334593577819861913979695302057431602365310635612854513942312553684598319743691196160001705269310035947813712473736071608051492178503255155435415474060855011425859815883802141030500481471627548904981954484992716029005405209380798263894468671837772854486442755713487656901498654318313546319336451819903535005021769866345044602667350515226080336334367451302842714089328118556964088218227971010650334776569393244278171679878698957437292902465295707206651476778508697252691982288501532483821889272006742467200243289206854686445268053551479534612742778640791025185553370159220859487845511447585548062176014434244796953717855034012445734766835271758046887680954802550573448359495023235911470287015050504665605855238830444020124637254868067973756387512761731728196111128744543452380191561111062016741919251249980258290181038530212985772170600863543740810209727110066844115095653459583865342620265380716772219301016397760022518871590030442128454772065451397874995561674198992661776344725308290755525734353946265822562192613709857474075332741526253895005296956555561605943471640599136207066271159325128296523646950985687059781575003274445029281969615236764264073477756690317934061365741071180580372438914206662067428494527703681228218991064552467483228256688285961524689389184926500495967954032908266112588133002390574010252115454718269846870783300644279795719005790954681871848316707289601355860856423599013086139537167626579504436070408299652407123134922481872672963453064322609302393218484664722186848805935129472370439450111221415953269373175561747876117119822354566585609078956904969499111812678639993964794505921148801074115526281870053842859357802143197673021359751052305576922320536581687991225896313540540085315423974651709233911619891893689093874998137268681086166774406975706461563956451247368237558509080278524733432375708446654383984237862756226465364859040281291402785416942634751555473061484646138180244774154727818320330845305354250308191698386537008043548160576721192029759436637980767979948362396899712787903691915673764953945004999918292256172648155696889386744717016415203427713844501886558234875443326136913734454913029213457190374741506442611348951379500960448593038519406127099980834750137201559640491733417123174857747000659381204645024930395251391797315455914708525421169479415029313468770272097611090805275558003282888312450644925416021043135672522806463731643777109793713352684874088228323092286209186149056636554705455650622675546122241869896767801277540266534801089093134500586015349212143733798479006241758479415075096362661122440904577714528051632969962816730307868192003317550437397678151180799214915339768430147742985673238919739756040164942388053959274022335550563069188823774444090739579703791607309424655685727116782651410214823532411458231322616756241714931275515764812438833425694632492295478830664079018537868307115548167126378888099989252472675197738679945848631077482310471241358086870096788525159305264477017265291314048294311993047711913986349365827297409096725358116752799261666415305624911205938858695316087656611542108250520473474169466241350048663882096887775070925214404072784255019860608549804252664592605168419890620264125247633158182206222074089503041626611427011444372755776886932687123547733189510841198317045851791657957110145122730559401595809882040959739631251138089318085579552701248296623806685143122712604765683633559774529705561678755953461015013089915592913022648953456351415366326736613637594009162088852741415224100626667301977778295325287124405059525445757917363322826711172065079928382363124793700830535780524484770676124550838598696816293553952848892279208957826527350251987613726970771044191568384720987634277300655100529191787029140165165365974536475035616155191338846495459791636633388173546189145697854346733286651173750024644041914389478757607680435921419988571235979206748414338749381428113366155126475468948295047268304007174201217242314572455853685842674428378594083810331682353924638779771901363428647853712700554477192608716114905289930860782805342842544905865926757697355562977567059866522799756739533359454943071788808194910314269092122138760719299883987207717397096333434852467686470419018398001769726950174581820263227233316837586865627424288950757439117932978434650201096013891070909502281019005091308774156689147352805326840984855149426811092040242947472756427450371569922855808122743545210506954300699333584276970744031319545245326783220293019948420577573050169014083129381554368899139198718274763387259156272495992038221537833778948957853970587283633158629369759584569749805519678735555019132157771940212665603582320031981904668563755690716243509537075780596144114491899847195411734112379715033256988041723540074311502991883183332815976615956819405642495666325185303989629643395742797731059406517173554969169736917770735963362083149002837356664605524890225993351306831805653657059138175416511753742485917184547791663861248447630112216142247511652231738657094932248728809502797588107446069315112007766980563918187098324943152616975927657040904610966934499006752403613875780058419188632547419875451224509018462997021563926774113638751447340856913471995992327353507865781129076090588244252392308327901973807873099430727798228697332559902107269963676876784868221018833432088744553385142455233315519001691592773113895770643652624213167220814836136971261503034701822192118354319379547189650677089622875821107838136800848715095558210212975185225486492906029530729014312813384692650920439750658045910654049560331982459687220534841661463471325361748037560395862593023262951441469312192478144766558466371494403638572195366880061818016119915694345449720037215991289551235494184997830092338568883100866531811782946473165193658716821936587193021108713962173117806622077958183778305487988919229063740855258497692339922917922501197531279427520091359789887840939233568031930035937588051922557867316721058130570947820968480641646728057716319759422500454682963812196994886453365525559897968323833442810007381448993378518005929055916615469270238344235428854562063600369569428895214652838068205158781157080106496659388569267352833647060447592449360099187812809228458177268387112286590577512110743933012811327041294423190030713910344458557993466094531709150708848416442870402051435207709933689506490869564510102742601610397855916446429241639754825543401195718000469495181400714835498185411879751598782883560265797217243285093940798423624451122109766218437827788538736865354976644201483154664732598162319196287300611091469574148097288099937004503410774243445761499763758312321631563000448038291949981657973253565168657464196818915295683757049815221018301003642163665768401087345772459049950163898279835452909892923573976468613691215195944554399373897414460829560689433430192512615104540433308490755374309436427677797270833298986228371643331455582990399938330718560678639852778846869695319708626995192424752613625455916758483009540221936609908596070710529403440066464262073883945205831530999266527146999391739108688265652204688556316665247903530684574965349070483081186728406993236603421972740671419122353440731648874143903669429459389231076050572047337211157083363284552049297380349833835500861690830294021915189324901881400302017195370059885737421749969048320589230086421981907395772117176339234852755920385718089386219207546371841571260247875288110627977853179562467631315850458234517376194073184259827731941608861959565959335880330297450456545720400692384427800015212584524999838659598486360855786262883779967555466842932116595830516415385175608462311455141845291789909136013896416156595482075454716443792317712525102346364551685547591287829199822365110752207922761921366565031517805299444726562373794359259945343856401293740096035811172113042949883551449896640134549371256559589644629427803586092877525484100934874464773627260715731549723296730813792543717474321299407461659789271699262163561643043692337813015991999386733848864099823077431235889376226113291900925709696197704851483626885956583950469536438567634691496673598337714899304546308639285395476143158145652730781174942566469146931412296420029436728406005396184648014830848776796550747704197083888404270377850157392055334298218648418226156284404479763374938441254194890087887411787560171787100000248948643414403356595682416886363781722293812821018465160484811794772885813959507849816566430835675073209016809822275650440094236514058819983819554452236302719838889246309345599516919920303683251507708738972818751149346860269608307791967131351358109276260224839946287787263266503286802639228559394595145618348522295117244838940986663975101813580317980461026281106638094648135381571590177006884404947258380910586309286315220245547172301515063231937860945140889130454665625119123752503335702136532169846481988074341602791137463695056977312196872444414694772916054830432282493417154956111429134424432779992530608464936261575874726128134821297141798331868456082227552330705020046417564873624593342187693636422761274143227517979643624610789875312335438691410958266728946873526754812189196599581381761437218012993944047756833063476178540416351505256637397989870542817028061279438475861240974985651089009424701368015598095983591262047432245895520416109097249573623812099193584629040107576105105572646579527166001598395002557547858814728673189436454062108081338522790787005657685854415878028383413659144511611251701341771742158268484481528398351125963053619600669489497064745794626424041002708714974125360217555381315451977597895300610673425758797338462068838558550412808652281068446641127519859110176853753329730860247528483772447329788599102460090851693873494228195991125249818044528981014530633626042699075917670106717727036731752130540024488809621476299285222917975076764882561800298872194448684320753231027623131475307742716966832854912548010725337646749075246222804937157558823851476607478330519325499630648378778940456463041588834267880653645639021347541847458846646711432735145276542174204948409499757557117977001558633580217762015394991555733156448170355052899526543690821247513361762426447373723187024844264131691055651587653493795631730360574992341794804810450435743149622129045648095488009492545070839787651178388491125134384686334090328994105462414633913028111529112601908899677217869058605331820888962068156896990712248973030673307493220456028322020403006940214821733405165065361938378384704032235264221312018836034517306441974258441138629567214508760389114484661496388641989206503919952894795465000394786979972371697557133983470592427626646369515966080488305992265328397972943848612239987558060560231808651584605991837379789931704862362670316327389923332976119545431799925074096464401295066424765514214682679093290435822501914882928284291710145359421368819313844947385648182683615203916601942344243773876045860145551989551831149081898299918852201175528818363963520177327055969349040519268359628510588825502499624840658437677696052580641186848800421252097164791152742934826183758156282023505124608675932750781754377278865938362518271125226968973326846134365183072654990924220523519588172635197301856786371520785651152677153721371942617116616967530760015530526164071069739181812404850441060184873171305980688707863153235266047699098629926590347225316684032736701343144116448867144167323933510860026769608231780952198290837870781032436128036387478498767568184301740320882923355475593820619728217063358375952004630541034525239946106900782438836892330951145833866425086558291114902094862257343848157033025923404503826489948523919736084752666782501195503899665443026837161454792426750919169273558907621744169651497568307110061961770269466041199856376440220985232008585460653352221152136278994054477911293258995584393619904003534353480012560795481746180664940902285079186405047635398406123133990516264362014865788476241013769579019136639990038571081383877555771150691655695532897281608681583414919859324551189291123710091175362670138678190935133008335977333632618833511297131423362552799056052059542148902029171358322942722596715341323578074578717954376238307050789422064396201029225185070250389001978687283339083522131248702065394504768018144927705407623736737800032622265452941523346813532052428694064956357843250529269600154619612975526577656162234329702144516273655678285751247938392244968512459273643319682104964441906215784971861235017283255782309140127173972408315761423412962867732577051596408049440454777758841564694631645055607578680610279548542984719151449209937568830256995577400884062150205788819270536904536866946520070246158796102879608564717139631152399875672319914032937788919695266730656663248628949051246628124224700645206562316471122891931229497640593243820211772195040734390457045862212595387432566489677715971013731834368636634805765723179580536464891942252770124857341480380532308571133717471721167163998048017766406293922983857241287964870411604846191790517730407782993599988848773144566418511981008703283960242719881808146713638398897108624720568820004682176977362453662808346935060615443620027747994086902993636320104127137546435779733559842344779773936481306127377120453571157716401980630318722234561154080428481764850510158484543229162249731553759313918039900055328507187383028085424687418509452966509206819118571131391482419248122610205072540347427032565814617952181405956075040635947793527699949684575491242482516389246022709344637402947028624176728194278011652243727762850478407133440117520827323745140524716616416609116661779562952564188266145663444204497430005917508663894852918835917892798590165520032883909166803981838437911947669561996797417565677349232100112224670366080866792329279540187233024563999553087749520796070397847364909179847817935536547047118693499585984900075718547302301688900045264606889854937006741054299224910939849547331097594632332387220700350216130965273938007800449974678842266345231789450535408746528137663532686575811805729084618496566910366066891376096610382762511881141156700669266694412118907151941215151016132522761237908217250201809757357543448377447851568693892645197164209915358940651643026486207502465874154028270272887304369392693101223218369992458869599637539768101847526995663603188346498720258050472859799032221579108425889550765247114859938202651560543788193367316949689821252685284375062725409320468334553978138984087450443406564417836715620897693952685196946789362546892318397348193870326121197404471251537425429597747418527164921873831906149815738543890574549419188777420104500515679071965975731025672404591198499883090788667372948095546063024767692833774823870135016874320085353844208061989242099560410984443425899954213462819878833878173769301258358166945403811832034146000163697480285474333666118637678165816050335994951144111337722617607667878611367792350179793120274574592707242456639299966367918913633489585514485516052588860426597961062402606016774821955436230351411058415511304851195215568362678360176573373498446078846826538917629491371383241293205881541397446020952806922605712047762458449453647736047610549977795287907969376963649796686957182857976041026808063342618988838369669596463128981407474519535685187697156587828829558127114881660571088618404245942299417206009932211539763985526082294835874884782039812014828161489202338287777338184352909780166108335971546277331271063116662072350498801495493758423402424570746944041112922649260338160063945194403544954233929529190497197429236080706381083347870832248454680980787686255909010276161206482348082944965707275745833798459036113166571220701504293250535654047213085153459977806034406930317621238218301521588317022257440041633757372896320560863643172682693433919773963443799987779032135239547958100509903713509906933610583369910078872300428489325081088463254281366897228412704411718756475559029895961248421053481912903290430343691483921257405969227544093283474740139727514190502214009141658975959984566008530683993879258451948699298574980572348376784326382719517266448379814929284334974296197753892446367435635892696637715841472544124596440095142280598215936620399049069042240584730233660962778179418648908887660238654624076845383238416502319010033811101158409424415896435346965966015738576582504736437050541093068146678702110706754074540360364318028138529517441182272736234283531623069314629905075882432585751477877032068612505022610087519820963797003743350253711556282156916724756587587656339545240506118491846498319565213514530883905596680866641805685929238924184240497195650260985448554293485468461282581325969407788171908858110240881090039913427863819801761410393124725003942803107285524154829203641908484583004232174909929519448605584067845580506646686669287034314748746591944569335643846275823265336233650798777662916215455469571731089611179429388053395456228252409607593811658229232113032876288276094737163505326405558381729039714124882794660817235628655461492919590181862958239500394377825246180101505035763608352785150969924834414505427186700777924465168909697737959260936073814786450902495321231569649338270966879115349008512639267159403997189821101938771932546207999585727828877805463119556565070154661521573980239221116841502592187575391294183195760212399189179207711097654649364277385094509868346592475600864157497292122595479848896075013781804662953229860151835525047894530908484943967548773399120470329047563292476438864715745683926117289885014648986157985683465034277886856825900199376230389307811105851442244093513949954262663917951630011708002592564560917530187019165010492864643196848854375249119524924225634543786464658876289057228419105954591589991801169424690646035488913155087763384978855042791120245782198580544586274565107988670953365086329384636081042740260477173689636287058593303584107611589673594478919166235391608975056465893869554812904135516823082563291107237996211231382450078302422077496245464291353312896576543362987312083787680563469355741581194896462470303463740925546372840113412862066942968759955092570084531952783477116695025290649693218734416914650814137736695705580881898071944941852630243828797163593023542169015144733239027399052282983837803342281179930937421603729931886795452276028034325141842840342183866347289521725539233786834008986144543729882681631529423599507178626617587353562371236325593298804656658551462126109678938106739389189693294582287140417613027564892962207107430101523413772730202288265904412211674350124503307450220515792237478852678171877051935366622066534119824297878050606075357909856340341019498652266597435814651438420296395296629363084689431403216301687720038500391040512093275745269806928646813677690161037383617039745361800464706256805247034240895151122646542597127297732559602081881279676597189485111139848140272331753116657003695529594269468239066851452387353784420224013078424772940034740951138621721840453003115161767139469144095385419738268602089896981317076990531760032192646633010347206830824145899650958470658928827845019593797593804359953248134700477351932190604966134589721716833829597248808291577826727461811068126738006713285978025734393068009979950090876074830715791588786660620805974281824540446174036927966407065855029611734568817712733037627484583563787634286893910759667470325479801757783181482464151526001924053117113248056385370282311666773242316695792587447814043357146920667650951168078575953550628330968965079230847438604564104338273889098084406564131428662639242862483461060909374518828521990384411525611452084438216138500868236466554960175990061201200320843486138455435287988300780175506407254165421847084914506654377789425443577916652591956355596466533174044732138136219041230266637465757667203125080287839016409723289847017509550991737200559890316025466271395417312769792494597748907026573669960077716667321628308575121829265997988459446077097702761912741252721993039734535802882821385242932586385203154340430557831917265748875747906663180263457240975638398731334753054175791581682475105882711851140546574834643613389240088037179257777741963557673213358054540841219135150665195825560529342556753776420746542326823511037240516319351769658816658674839054971448484712483903310387154199421043689483997010055396472048920927780488060031791418142372811354814288688714488476003974302693540089503862164249022541194907450068019614147630079482706043334757614227087223611179350922751305251015874793012691229991909653595928575310765882405306988292185328572308345822581563280276570159844042022130795590615137390099065340469210569640625050479854261663679149083742318165012363127878046399901782456124887580328589665784814640949674270541372848029445803270789831096001097504864329628669043381274497774819399468028132235497308010424777376212700348023290835311330510127192900455114930146375074628714391482418114175627324965427767806124734652841211624819075281304965423409889262891986909769023892341599350024167292213145455526282951361790992667692129808809321530112867481613058858400075622205405832710016561259966752144259642819170648449981716911652840438549011986193348776189469073778126254539850301533985998902803380157485928887094344183900671173005855716416190333846035383569427772109472143452155816215577797386729582794149134155472417224873236702824837065906080369526492485997121700633567120930341592351516503039436572456158396020391421953534476799553531291027320202180554672016235622768794768390495759593487178569685034500784743118635623658119688630507204377643904069841028784319064568305620784880261505353417652408322139852122369357030997305764789573965856788101128130621322650493844100305464665063809354820703391188624751753848574257357984796087767862771796013753304796174489950949480676899958611249101832964253705827962823303752688299641722946270389702643043054646682416270598592598093061008546385253921833543161581918463720945549233086589572494240934773713679906371165497779886577385735765892152804279771849025326268143054568295093555876437507883092944808312326246577422937590125105982905612965999796681747199711660656760226732247208718181928171517073502193739182594611618040705957651390121157935042531435995121623194709564805724499079097695001249127794539404661809695228823328209121831736061602252081996985167058548987652611178889430152942998747033383603065247764894273420875515713026028006310428094359040390034716223565715049068106713803354758991980933484796166205565671976548198383496225875816820262904161072868758923570524272184932687462382376665740091093204277197338237566316760470900793024462314914738807418906978870223144531511186488028924778986292042805821128533794908032340550359733077338424541143004122345675844034356676174440775555018136503803366233432257156417030058909201333609585293255259000488066020248138963485278143971232079903867828538283337851744037236353142765667538908449221388267860832590375720916723117821247312464465411180310004721739506466215755969824298912848529863274886565793217574322262377915011586875513761042536017080652020520513991822507572265843976406480301045112305614812540344048158139165134847186722212469247758895005135498918537356151783696565525361813800174048803119050020006187370331373311843361464106496579917581198961641598328530964138356547574946639033067991510956410371085142012702803662379133909131961197999622194290119048839218282081854116666897362425388264801170757070111740326853144397984365994274705983489733127385031141693323235457403489899101016852645429336961260071432440787284289751790289779888961438869969998569478924042720119916845144295662619814985850832221244520762136141418454116917538146683553099023248331812514958311570357475015540867069195051674523699388267789788999471673006744990812670200192021404157091363131019861417660639598522768642645479792095160336428417542202195130938686126788415794975329803077173522144987749321907202822041369478094090398510466775594610123840446435189606748003496992941113675008829943645870847638727306875733019356926800908820853114880571217337214420129570612190727830861623300210316196895049462499234412249804677937861354940278690913333032072255105040894384140029230416836274195640249521152450196656411536610699869579673259415338024171911325555117688984795101410181136505397604610480391049562115528720920183313170778625309745102858372370040497536629460856464952915089385421097890482458897367136451419330176414636374333513833715725029496432302826619320342382798163372415876962984012856009948766529496439032820376915002280210947229674092681681562296303724618800132297563057028117744446521724137062548376623790938344978073592029480620086592313159825961711580213918236798625583583041769205019604136026244620591868543021032973818867744680365800222515052423150344143532323353000905155287047086282669500520193639755411191940572229233200672566003235941101347301714491859831881626914139848867533471834431302142047236327012705277780183254077462661880345280913223039715575025981979137323724069155268689526138347306895414640878939475686120408441846598505255977569690319399173552555635133442109139036798986161347278649248023447697197849834421611011555823096831883750975338299712954580570877743009500387911514587866942657147104108050596162115973821767623400090614975288409138729692547086188807361340807901708850431224373379617759645860160237188786040487825145542781991645580671636390826689910386469461159044572395012308726585224263602817690370429552570389167754095489835387454294245983771557370599839818092649057472431125046387926860816027497686813905814019724950862322148795450500117097144293923425445971759469080497704073115411299071271866189636357436520627031209189113157188278374876245261700325694224323909685517156708183163078749426113082449590462018200740076990758587758269853529627966566990987511024965089836157040559588323110703565068586886999938487983585101097942374124944156301335821466546806489454551154631085757029828680643318017401724855542309366894773361243043209085424167884419832772079682691647586717334158138018191833652248707279119083826662354902596682149921454996655621438453949334543701115158588043509375716476345774734065592188846521305637120814824826380546248004644306370929897885427482876369157995302275668148392697355724142878579084827168556707542905919041443681118018184987778942387303808971218400893247007804728169975900318911169176144767758917335112178512511289691780078490549161836845121111356309324262687535510181456664073424090708450160974313871183647796783605207504194036017387771861349965578330703569392097034302987722212789394066077135783085037799056082557282621783448544827918153223434042445536460612229045764124324370090841926109299169421757184599073541211696832362078254466578163781325889079774977111859256257364619589239028338394423030073898738824294816415697116103987704504177724185312708566085864866386831641009436918783755347556681026226869059758774477020622960162902670536192279732598444608621582039577127222585401374922941177952633507683514338831954536494323422941925342128089399916169516936974190524432701349790337302589600674776926804530962053775334412850930253650477908218327731155612090346220362154275486486202521632433387645534998291808593261297850909453244493797121669433129945263331438426252103909724444067753613740703006244382400294506346447334533154142527286956441800308172122675459945076769265650653384187338376679439121888052984533550471566274749608651074979591129855158907273866161890994135560520176600538513146482980850601585076564591351160882838149712256251089918358227971955821444686214726931649560910256205712372342119731789749065639752714341555728631933955163483646114891818466844554408939944004531469115286298241596530693785604681134124194129581758444395525611137350106453417749369332883781067158367137905615524095743977242790381299502640550000015024685537608756275903035999266224235796777114212985112506712995500947700713962615176891168227598869949372330957806977587159394003646721302728186989982240797516166541508502377058903171103221753517610852684070236121905511058185192263881190903362691555110264292722082215680355337398180241969399245870418753583085293299961001465622422133752786591835461405059468853795519000260996656489244819463748307690746013839735511098796847748200103934913753414165842380809542347609237196621702515590454932275076671981120531403129560348284053180652764212199198733018168618811341184745027151691204272736943814125038289881356150444708544117927394406900244483784746237353070072712384707477445340545182051009669214010798208646940364537218903886485465102535955067767957223910095780032499057961972803042957960911008985474119431492088575715586631625367562574709596032830059339081721865360680843693809162412477369253932961791025058857738934010020351927401924282867885846331543080577650186754538697054243773001353397714591885107734477730867502047246986461017429164998531940534245424401372349975233127762696320945098247085576560786863629925234051348018169025738915297688414754140695411753845834726278744395140904074799280655739733148075568177569182737854811672119584111506096783456508048756345743607082249925802410377736114951122825834463883413696781693720790920585083147217238692685606815321872017951569891725297330143598046595135486814211809630218893729724570164541687394295956632697675623114997741946472732979421438720897393588567444595955439133568240393715889738821224459497827426097827019775169033506679451570379700375454097814603655886490693569765391649307239818838349230371519745193765487875061444101946073135807149900235908833073485348954537369477560233736730148186598418614192441304431476973370135578757322932484395963562396538583332876549891745421035854575062076460698180244643631386139928531025770595934006415736241276149654902838961177243745367348682926186759194884823228734309786750205542471044534356952872655532837708150731982328173075197941385666762669272876633704398642932499884476122928291434769712523602335412829340255116060513144669059821237191024381570383537229158353586248753295099247539878091091111276402289184119908071119408847746677205356813847727534191668770916466268729894969572624290484860005455183973564094926560498019217269546819545166610369199722653220851753718314095529391798447261161451647707604782628352560244946496836221289888387340810035499307505270181469581134565610789053314765216402995152621042926189432582894850014714104592808617303823488891013627994352698408865430895182349458512430875477039134115244534380860890959891972598425400887158177835091100367614569545399482421282030708765435089404947826032357838745786711410903544678270557214712181787476939715407215308965536661339442073945637429526220197294155585573472299927256256302501966648442055209598565091803658415407330959169077300985207830253282193915366423085358384807505232857361358603654391321502667687749775571789022111713692862518254229210993492240450511953091544330456330625633492462387007113680476769247784030683557884957595668845011385579228495665752203498518848685763000282200513086947982970579772401672008108538371326470531706724074764748099425487695625685994561626201983352169638047824120738013230876834869876778344139656873859745933415706928099016377331343401531835570918652710033285883187486197386857035494064172439281433416973556006935255446407390485041036462650454130176283346512284217288814769788972889573733684915471262590132320610952576579830658708835954130287022976127988067509469034909853761764306036267324641953381538379582825785267506762940328994288234206777997777922963578376140615578052371463845784397535546742678027726308476587987279047505024293631557798867375369691720625420884073283623342013967909329078266651082286933344213694740211005853049168230717738776731768231985653699358206942456223170607566740378754385857692335079439017970473776825061682797003941204321244128927255199420355715159250106720189854116706146907903697355037414979270356834530632301598872099458222761410042441339755639590012974999904950772079188051150045122368765015808470607388997255731904660833047221442863537382512429999679532159150172434704509618992255182656291176121683368742553508848882273757786781103391710036273775817582059150531782854772106691970272951072630371860081929156449186885264331232169542057268391457074036362432093500680125137687654433001096932962207071757291925522500220476153648702989547742988735998474738752106991043775705416810871505510178239793755356192141279698727145015818162731943105853254429438944920836216330483022511936958923398053335810269396477365298626001048861788668425747376952913446245800450865946129750653566270757239319318187820354339053672555682255881216809989801825902254438109377635722698392277604198027391379671691972405185538538396947915807798587457385506372150976916896477720623006621569320876828390528477941506680507341726550611372014866751706039830057705042150408753898130310465820775307038422181217385195547163999472731646687375632117378002680263663598854715252316200495463009473632348157321751103932297896094895157048955530517220179904702697732132018588473063170884565688057060442855269944758681161050430913732330532613200410841617379785793386200767720985151691628692316201751957839614883654907152736352606396709076764199977786104983947010868983007957531077532430664756440143941659448575021941946653506458536423175328852646769266122917445516825735446129819884584882707738999194322998260665872872956235187068691767569811021368247504153323412635952012435719926950055239170846856404323393026762484967376964227396333326224185980235112085855228765995515108284194665216881705567675233958945655800218809076728299656178066145102805986578340058066297540392996631426181027508602490526381835863102908088490116122935233881821322762102208705963408600727200589845818270223923116128365654985600797863400756996804645638505620256971706925055988432446688821879752412201875724080460608909377064884409016664221858128886500113017901396419402749403392706666672565728404582247174445708880958244431930151369305905583277232998311926855341136919921797057169024462710879864974648868104840210161858092982882793983942637209277439595801504757468116485361293011461680205887682749655847179367080841110580878816887180835757460445009883330586058614139252850417126189760720015702686015772010005251438928095009860477884970662898815039507075461697187067468976558101982670733190972497070057292238337544896346210781730469013152007532869813842214585225538001296303096435463669506340992564788811324164046180044813488714142380981594117487816948386277718700782513013418759568372644388399733985321861804246504889867924181199748203870273333052072770392980866714912496054187756780139612728510548471274826242434858521759936541850353481777896452279251669097123185423288423212902745005724568065106177348772447453635134840055251334307617568543389413550673798726449816457266301695161356526209432590230384465972910004070567986049454424595881535634414342917589609842733046016398655160997924327492215507334603755754289046802019521579882894727265289289265311554771129783523789432735758268040834573471552756869058035993923710951701444195400214881657914319374205725881790837470201372588664853979063201965699661025908659222361779772086201074400751298157458800871478706728050281880545408027263800609506647703133412312733107609882977322703152501780908531066214050003122827236487594301564882454610246904640681679403109872924783712033463968720166056263178904174156120040893202785067539360302768404862954005662794449910356510757703710858841972920418404375022890478085964054468719752821947652227568629746320039757013742459302832185752108516226246782306464668374103468941859665378435226606981250285879644772341000909926227761123240253455542363523818928754880807205576013021595735522479441258190041021341746622366203855754018734137511612529368159166746001597081397721046540126995417590708821275566734922646085130282722824359523194131717275831381686673631861254243714062850410023924482352642227500189058456143600347364513821658394405254759750017947540637697177735144077288995081220003231780574050526907127170440557675411893183039115564279005055301877612329310110522648077982480648604001054380010708625616466367150342527554549689563397760653696081372096527639570321680740639027034768559276957771719024211174023023522106417303535928197725633340054401996122073267198605304458394488810118437926589851300014749015433549023409161640327342151759293179057425092409367291556072284213954966672604719272070145311183380695305203203106924608767647987510482190590759221514835180273135167777962111819035592711134980484049245111792454980493303624996184220054505490557740185996565059240734146521082423629238859524244158442833944291063447645002981568047515111543214733292519677588807505259924754544021314621373706179786995742193512326131481542306428368226171402453195889019878819258948347509315159821194018063516053838616985229490838123342033314383648916439963935526227373307819502502436289698910710247602945178959645048860708360846253639728564035641038213562142506724107662880140136362969977971439873617800123533746419497233205860552189300117807768679732208628256186387348634367745718250659825306153432855109853085670151357653812218252672580896003372421805853139248904791168243382150308056701153962609940851676210622835227527540325809848188002368604570338325907465486233437320488244029853840351335765372477759240911239591059164524164021553018194768969632552942632723598360243167044599268972396510977699397873748027417164356664962505706309237655029948067149676557851511579343655205036670615877429827654825042656677135258075895538582173471618955654921440533220831053414894197446529500058317160453875388705751865460818247316855153042733864584712683880582909890547453541986198490370220842420014110105825955226797545119381292148477269317071452813521714416945510844075719862123530904555087411079255087685082448750910409357807611235212976541558224456325606512603381745893784293240376847844184880899476146020630919033791553768039929659114913265592278249626075046306118624926577088626040749260363203461340565906927713478360495199074525068991139639581865132950726274578086939383210605549366084435588207435780001898298144355386858084730309205540379233965206631623045247630425853561861283494142564271950837060765387904771587672673747858155057370880399162550320057793460270799220896471043599793501232804868228246676191050092465270739823396401789554611036723306538201401048516738058305263670061560518722424693931039050576749108673485775731982288757335094893785491200145318746625578543579258488803189730983107783493512138475419122436239061225339348223474209416843557047497843986894910495496106821824028691191955757149770307597025731695011146939979046621446241049735591500177354880228369662398666034728668433890918467289588857577459389388259895430358477087746236943768570467644582067947345334708501586204320210169177720719455212069055471307289928233058666164378921492765921048645212632815732637592520939731158389483269876020681319503911459926776303978410598460157364308686875083928342999766449040013955456897920681342715286821289870784699838555636185377410128267116015021267100910461202996046335083909469131293093877236472849280696397634782014977215695303578349502927554273754712363893975371248108810850532357065154302097855039204698796281967886412693265359182795896186883698728281685740457763504609307316412247755103475814296948029308957538654756970916589342266800190974319209215038446241110467951441392602421863705870962782485334859077898253447239526005099880846334798793279595119271073772868314404350673589271387674905270984792316614795109152337358071385000956852647995555183073690385232915571329923874837297938274523673408529594582391138953768006034482764035635922639629586372126978714220020060136268224311890156614146460294494951101462419092752950658914804154968606121688541184866890252552710465094976516592299465588634265574697802394176724670932625258700038873088710174022660917312811537946924863752289202285901700542420834075225222317445427683312875675534429627200154800135339454949889685712248519258126585952573432848006796462056686408294396510892603636156312192194126945023894147110807774557715712315429813284827061663068368108890373187248401395133181353562170351358945036578430973522601431678878958674737101776890623203026731916312429036527315035120805430736994701029274970305593902691714761145111239206088445087999806865965683600687586957199409278103556895212303834506561756219810181372080244601758797125970447021210352661148674731615683193615554948161716884139402187179351846540101679824626930560161019965082198054327108357629213497364137611240219095049086308513013525982873353811943108387025540611354919674440465160032842261823770625683581987986628786776581417192969729577455798284621297786054313775780315454049327332003727352642706273939329642383043419357098680571856954451022712888586141144476068821451408689999141219096380199530872748052385692181698512799124777498515880951223603419285885447295609351410746428884986161515339443233607757601006482418138034585573513658633791553816695278119818017621319725705729390428499371761294284928952812013266642091911967727943480705830198390799582621235717991673992637804464876234328318840464001153119116429728179495355651509469329926518968903343571867778015531914192909103824238584492911744850735777719964368522687639217692438238518830175985089764192755628312772603635177328103865162861931223690031036986068239498993481336156686117592712478570492060355304356001115168538025030258931152050910434178538932935849897339654233389706525568168281268077475558973431530246692556208675519273593166285507276213567587158096758946332249578906642044749441650844252558783410847157837274226229338686316463872946628123960702300296117276783074457394397151886396739129390035887158477187044410004321346039572959351096787724907042254735121851902963119124046501735850917298058964819535696613747480737884502130123373435995868139310922250328203152841058925076479420388150419226815463044859998153885054761619114215827050374722015989306696668041765810879126585733068654171888629800850522542353348119078750267817607635748288422001302300068677034520664816598314764987423126375818991605491655058482099570475484808693569583515180874945072847870774454913494480366493674465804232071439419245531785792920279775596823089365048352982807730877708515023421341840985706297104974140469916469230297580362207333758804580700099392865564902500613210926058257577860723571765808124587790540264837198650267796328127019199045145783434278087508048259687487445971211744623618826779191735636761083829920019690886283706773436984111740313270401482160294368321933840994656626731355676660812630362506900135218158504831530279840281445382124842586142416200861638563036047269969631429190292956240972232384181991658819301373477934664769117621165450283932217155948392662497392754121975838157235189857551571149347529046805678589376870347432472073416011143613977473316923400631848908911749399986475342423218369207762512104542237056943311365737441524837489692697401325400251773997187480366111600919587779034357395621942404426569476941203804833849160206962020880158683110390172649320160994221945248397374507998384077186027536837332424490196412042129189399038271611008811876027633684844105894264221576933437841374591128605194093235321880125387580102977255307728846325589372488960245287583410392033618595976692064664160441262711787741927698155731973080182593525664566879763354836879503219841308469458032109053359230203944954544953750071328745244787263025118504940318081430206967064571214939303289229737777938402156862454201904507540156993992013870487332249066027761276951240767978037878261452828105139915743674336819182865049883910353302004167860538476647577201657804374377639339139541853555694896364618291732584528142627052192892774818192474578754604604859888426219698533648088196797636954366658506290343172865814012432620228293761216524528628238035813091372269026866657994022372193305199073467144620897997003639197873166976470219730180686155279326627034334864668903150947589097655979127002439904553869068947823621178621071429713110999231977980143539766248948233187284013439438064348609438334617217868281379565579391805555405720659072227942528326898231319653561633921927396753159627156048908055293615854562441677360660093485920349242954747669845588836592670553194626768948260828377272907221909567687493173071621517234178816140082188055209106097598015688402371030304761792031265562711329617121613184121788000538000092122919111986427338620814909331408286643768763386850914307634374115956375724574671980355069761300222556939368109471150794650661044746109624203258770149986674447251190054573186913222407833316032241005301995611456880184645513043766429202859622197094769048807827993656176689574337599944290927766798913905504213148365325790578532254915065112513916301345625071898061024878829210274178836842376355965677622107680769636386310500504630978329174476882370238209265476152648834773965284778698696494888603365528569470803152815305255532916194194753994191309371136503775358358939866811569693051189835396744962311121120194764649924878284504134051750860777012369571856281689235424991060024944521725954737077374530440711465115013195555451101423752635404200762014440773233069246600153386174519154872051583526107279059919753364941795152482983313697114249095420939634778391351148328531410248865202994523691008629775974607642533170533512477309724752409536877014162597723603443231545597299717945913277128403496378442958985522938700149645684975327841823180021845279214640044992182512325420799380217400491855382545596182516359625899485041217472026555089755464482297631948541410044706705507794389647833903728249017841728726759085738662184306661983278814948594294336990348341977970378633540312788262700738779518062269648572712066163936669256005257044907732580683869877580196173772847629292795961842362226891226083798501590315783076899826072550456502066350682014925267504778228557786257493247575005493761461390398220890011780772829955824823961654924004315420929847467241773579310502670719481404368272135516425656882748671201424142353085170399258305078038192536086988346908428040105379148171121807692619858840190283746669041316658037429166639133001349076732572231291026226639642751010196107573134875394861276661505373729272167323963430017494216096012147174070633524500901468753067983428142322386179878297767363345889376702001465166020361481175987082240543683292960550391483574130348810967371122009514803174033269548482693979284316596693019016082701958774295316108840903514657152817791050024535115836137919262003432210322781920854361932860480950038124382734650929248857570765116278273282515555835138856789367670480565129554531936515424427182098529878227910480724117327470435246783421003684905885778814271635044117100326731942458779792777480228012157234542565396443129450450714412112991338864756926593998322229801831454959552166939010054280590787867979302353907324770560265375562711702238463031811141244846965547135755610066024560259573444741582465615297467086775428753190250393087155398034295221947866583220516042416813035563525898736456619601931435064036104353020462470495840649632933724850187123340709594581866289864466831688182943967550303731850394253573994541866522090916363939613739990802251644095072849734048018549144678439571825616701499989394222514972555898818453083713245488448206488476711393538555936297958732922162955758592500968438567058185972187819585496698317152857551698966225369299362574845764911606113099076522685166118413553588327201896100508361634082590752174574789370214039393193062673211248180517902773773064084329682929478050239511023045437912101956810018989463013807199288117558179484068742449340067974965183336132156471201762818316182173015908126203795071507118990905540181117557382787189024966384087062390533732303810437298502910345887886592032646346448105353227812530370783724400468086262797817216161918106405159112800005443590873042313064322481769278354621472716615486902769448708912116246905964659757189087652250816624367925273017134830523476358113802964030062433127258499064340673630816067710280033263678278990376659654541907017433359501945217833208222993900309756978441461877506408522176142844067466510391662158728070035235386296779946017013501388920266153834769887086660710815567411147487554046254271980640671063457120101321351958851174417603298096401885530059014549258333345985335416782183306837056365714666177655247082154433167947844964906837398846829690443420114429945562590952200054729060880531449865058171079016504747193954879135378950305408730533805434935143407575794887640395470755726878663581067905687817317304926922713389960949841267797816600544174688831752638077155470511952943301740646468864976534109325612747019790749600255993456470293690373811401398735722865298937378988649694486851985958653210331103912753623146872293482737144695543992865838542041719451048846198037279794002096128276283024427985231792838634147697814625059964165423942893554932290724162318651638743841734080647289924280678948426201507263442656726684041201228061234733942731140392371029425152104790288216132807848083318840586323481501544526490879153317629293049048992393347980460085932138508562894222853958820009657901747028186333855549765092357394470954850777620649302862384577258115585918938264843305497696187573567275538986176637033965504229035936119043093837397570977353973106680820776077090490991152212474792505128539607756138282686099482297092539229927247346322549542558200363213805508400273517782989931951871166552978956132326751796796533432783646765650203147240620625838422131810669532930723735040650582012916306428862384758027999636665644196777963898663931979925941278063065069747811690426827236945738315594220238097811325119251932626987012175716127126583790033207813997820282361405563143076764664409780887931597655558956514644552162868703666984466611984111297322108368778687344108742588339042901542206685088311950088118430061805506305729704569014005226205545262539618006837862011849946262145109068175225745301087456921591465402272533272117219440179676394280810020167606826835905389553316873524608476847738384582109095095560386003457206336089769816480698415984794634207542042202079808449887581401352022045818738277176161630777529827582054042627294202959122990122167298642764946962814930739794592916341850016113496692699330617471667832444548181898501341617083265989796068267266860033242684324612830967346929959470557889108737367617467124685619441300196245744353138243451562162892522806864694881494204900491317529322157247305881488071095494265281796498194998820970725224099679066663286124041249199856788911267223333616360000561136966607790162942802766763779979083181522177862666714234507216588531892776730127283948440113431827237130837724309901897993929911130320093168247596105087829657046578592233548099805607532762781623050880799289973682669007931048042328765555357871018486018864138496199095000681819148097878043615327939852154844440732828239007406608724088238171153460422277813732763587359585822164461968321184635375513253454165045857981017182633820740285318475317750248242779170325531728256488427955801929261937095247501239274345354016476941635099612665816666188885689236242233800600944656384460380579116935106825850817642335662368689841645669167198380923252195490973502722825129638696672711312676564323099517002061030866809222525207207745161083783324755667500797568729265734535834307333959458291365426153066287691576598870288839686399954555653201228078808384236814089035006970891122281122101689771597936687513784358122544043992630206326629151304783447640745410465432205886971969072396949273883076016056402157129400052495639493848241494793779291575669142852118829752184961105271483779520911318295612689472430324859300976260509938309814881018667460366552232112824384556177089905368268618947497716783188319002749911086647547670248652638137142521865593871368523101809664741777596286740255277448042490695890516957255139385863303002089444244811980767524510948582221311937276241116929476580437558416257941039626264285830515997731055338742176690518524919612939121169480000328882582827010570187616242823395955382116615844841931548179533139184622485361379249222863710038367881237656237872570497574875806681097022480054762969711362833943766325088731737785908896770243754856967056897192797875031435117702612739106417979255356494705038058574593472110886449196692391830895479880596856305669699650642915180473631051585684176578220738479338903393285103064254458551897281959067890972519780628918847693292283789699171001504442386953011826553296904434677332039120870237081319575886522246003839086399475605210174096423983454990477406750277254713614440946140171001191265533390160965441258103040251949231636073997162345038872887911324867405030957800172231343956905531015103369729023571173096398034117510565831499090729603615205621159105360776541842326563901747158106291116279761256132509159118745320520323112804365872204017276359010021049646899377893196166109497038398453601397053325004529845717064899177888175852297002361929217893855040954602128650087317117754218364449746521596194211614164353110711344703054932304909108769796901801337287772543853350309157238203688511268450195827487626437889373633011781347932853338159635398589809530007932456363383472875164442409842377100846348108448590398142222410359886609110939934958635505158328361703579087895107575111709816660464448792732340131384905585393900378388940939704281361924276393156608421357525621326237007377525594591304051587232244323184480873357410985930981249155566556143729317268870486284115770215802392421978819813829428062907321970536462729372074502524189721094081073506448610119982885800179777111438296234149425107668317027389442642731596443905790276988132056846705485460440901379143648980235625799612281294509109220073881569470818523206460626516812896146858877375892478949965444956551633335560711804460892542856622951512375037418976426713240755723288068487877778522945535501493788652113754836176127582883589579421809252480030721966623349661372378284385785241336917151576561701937963306568027013831717445360437849202836842473797287800311413296811645495268038834815568947559677502350221529805107911460494735618851044765705534673168780001769625871414079859854272935607244938537733863516994382347014395253555094325955121216979769126953404760021017895887201672619323352695355050193990328183686574282528894266427316752583075189725290867510446408909585500748933166104825337448210877774006198434698388818979450945020386469991921283483434549176568798101521300209743341466117909777668067203661704269390726182091759323791643628621844941342896209123345402004360753506674045480049860177090239631182606110058379170669962885479961212030477279255596429849928375260247329903440753877480914801300463893110193235100336734662814818585268185335420994213511874249908514599202786362054133281940867192795418114007314066513527610053903841755849443392375008028031654756923933977002229644308199432783997023270168977078200313512358222706252745866035256429345393846784280634555126376300456475069611956355542725766249256457825089291377333140403882940395687349915753365375357428962073799977372454158369455617561027030914202361044100250314792583338053392976835214718318481823451884526072408645211640238390804874646009710628243679380923823055410889028910466878986478041853073864598482134239950422293558625121562499993837914226289005414099364007785317465117794794923060401312384261173723611733486316387141370046023554865312222544467348089657015564548470428670408025816165499541865954047766112282745997909415029025624846131694108231761154970025118699099883601169410702437613096059648530427887320105362777564481833939882914929243665660646785563798695269604672324260171679384586636565628730667574248113668691919063840052717708058410411915000981158921604625086283414687938092183613580340056075370926052966136810496379239722340432304438536792663163635167177057123151987779454830402068459253162444587131035394303994014802696321392536547223565323443685629888681960148031613243109688663206769918562950628090281168089239721977982104760610510940067294659789344933919736840763925092696352709533187124685397829116932673127994755281932136386247888781983680731292145741132835986713798263262470153216805002516014971398344265805591575704022633460573569559924938524445105898654201142989097475512318639961842020895335396658999234036413233284720441197081942847752360306809203520417723950695811247328044257196520847496448927161043048841441428426022050279079532625704409527291340467678538039945198094893528467783447931943881793009634099154096155942183806785526147393250660473936646917427639631392062997586904025470485680642407619093585303978048858889416403405099559725846304656179424129054013258844932475196860090236650434981470582730542891013646896250233788839316025457355707188971089330308246357911345820910842100467901803104255924923091163127973690206786950129833816207781596009509227172510013589239177671129963507753312607880068886105397358228806007150692593423336643176263843605057127837673545123201445116561683322253883142080667196189773911256019579638898878333500443607295891365817157778301920254804297506809317392778443779906957488556232803474798416291325874497050741114918480139208455753288652827305608026205747192344081664117116464824125426999403246708159420729188166253106476748448165307279239143811486907150275711420484214861101631361216074287693580340509245925768658705053817014479312102981435561076173767082930607466498189089937526950142017471879198491416766934613616143258268852641888190964238066992048080954879681331279095331564849154067044766769221722970382926162700645273869572480989051709946715368505565928577868480463748796412266414917667163778505822262199676335866689796940647600317182746405588899576754537080384519235364496866615378591879616038024665182074562787094716568242143150121306636855068017522782869443010732873148756503239848998643952940946351304181596770020703635369475596781487000486868880607971978857761027792344920612634660052023581737338359617522253744480214625141068201861290527691153656062612420905875647297386786548378216633976610417290626806237101718927792251520850028973299769817549974955335136442522084088384504270153054812446109702047719623611898984254554796617401053949984981815208248820569312015330606486124363675794821433560469465117107755189526961507844288754915437331752162331233812549974972650998205525031212040992726190160048084225398729611864261549185241035188191011680626966991341118549049375307872461347742438338827178832713121000786625662327302938426783813688097172890877947438577059208111457222904333395100500599612962821969599625345569812611513992856909652649541805167557027121324475909783044334961740202143537188544782606451267978485400284177163271544979928303190753182464784600523997175177140532727382798010940480657056408196032695654366033655704381009750472935756264045387931475151009994185320981200141029257147068369811617155726297580012850114375774399641642205731945807652588052562317612708615858779773142352039214903443643931018966771284592048110753547618155491085398361571153540422428441774617996573816524532315933866458135235955139861367970196149323618032584320076466555106347000618989590292176230507598988866760356807439533799203817284045810864898288863228065968892544775775080625034995556284669610060118838785116283966531829898684848892227266164764765400513640634868007612570488975427048462301472637766489658532202437001232983660812265147459464281122990065916660236134095080083556134851676300430471539277218638764053297235980621253787383704556192193444142745979062931699284827962095361487128100627738770018663620380748578213116141697964470069590743918696803207257519165803616230976119680646469067796807721545912683040561713215704848061758291763440446362813385873608827977181991915299465253755238332966461288709234831914183823709421694393792755000136546470409707932751313778727152253554548681379278044192464727298706577106621743239495961316169081786119526460016619073026392196663495578658360561085016633358483057581512334496759465473076800326522491163170238133967319248152062328063975839184442556242762670267482053505567767817169122494820755557697785929443238050820948267191380592255844843824303600288538941609196469590265272832479767055737213587270362897809925681863700303377513866731675939620900743180757380526630331965803148822585974690124094838283631399912163304361051504700688033412015792969318055674931432481596595610103960773449725765952518703857826576470733873761384698841038949562756336054673155999823574885951506021141279766089802573627839527365437727994293945240739823836191248625522586930040336907779856382005556879725314655936467136428126738474802304219348946347216350194829406437124964734512470732449575998514217495011834687303561680033225431669529509167125764025440173909544040006868458074480433696783855989034962198946998421410244507356393061139203154074798048781181923644464514420554522264932787725233258291027790226403832626514162617842458843238145968089043040346427051474264289585623781582964086706905304548256720031647983448353422796702748728811215902846380212546725066236151067835134436060212576055960154705204372027854148011305357804082621220127560512504125616918506167959421694444314985312893413545833285801694801600572940396662555990674631176685900757883529597239892439541940702374280035069924979119945091988845612510164294677974613428817657767833275382383609993425685135573270419183189132917260191586330519381787701715068970691820536670465708982522611167686238560519380034925086063049612767364347410700262669344956154553227854368864492351593569656691997169084651668384013969259456739200778071413958254199292458997638249730865127250458880459337445839946101723637197170075203715580393729430871823835283104260578519770009801894945312350792522206848229902150014029508892300552705053364695347392106392299031305202899158794805998087425898175462643158024395468887698450431132229430661207871353212281766520212753690646685580869081275061865656816520286282608390096044184389817470476446848457401173165134465195177225603200665228070085031416803090402587217631535605178058932199611381556241026269964195169144064745398394217177606786375077878060136185116245844062067033140816544550769914746577995246047088743792613740699481230616164613167253617700346401856173410479850984436956163232870717680361980102399108983023885294091494950558925383634073736628181398279208549721829013307267369147766542157501169177953748259372883060938182345537730510271692614950733123719869663146980374712414261131314576053455982294900278992991403817895757449052178794688491418322673352245510762175008959843601772941865160556805272463143666586015254914054770032376124818371710282053925545562408899813374869553312491570442681527584584639554144521329619618667844106247788568945151574344282688668379563142783294789184883696677031479812657375489475415732608288833058143388973626992255865066931335639947023323439526718890782827014406013519714203439011748590760949828033599530880398128293427422314599569803665257201311484475758390717642686690280626735380412812751762737442712121963548699737356546721351488602883153957028477489550426394403358726597875838437887273767031462782419108164651215788418381224702527581249651268844160954790515068304605712866977849147681742442789266704361749032484869290653798029161078460128081492800251869806685696512017845567207499736246534842765524019293599641917368826817155698964348313484044334353105704539962041445347023326855490043562203250712928684974103285125734421504757604094313601880594580097396598550497116584669582715680108974227133368012529586232631901290630735663148068477813237402569461558037630055660841984425427173534946986147686218239916320428495903985837852367936840481013036569380050269461658118870977808082541096342086830030374601193201470952655311270421850897638701566895937737325789186917136465584436964051571673139295438895376455077222910922237443175140717715184517331335663646485926476609415596388806901656203164602477436934873693635597440304667139281650907638400864299396041140749748915861110265294177077293299280691052001627696725404860292737740448397038980133192067489524968475384018843670931324707086871632604967147073711093941477915913057844732833853013001478241906879512007758041985219379649342232313070422853732408206670565851648399841672303325228450425798700422659908142895894082004664140141936009704216876333880654222211892808385438724302928684218555022160757925452695039814699295341114240190217744016344234776027365991409490246308386929597454229025579664961124583235835906127544757898337755176702958542764089665015087620015752291258453936252436286897042172202463074184718997960271102281773171470627825269913295463198566651112786454988679865412658220332861949674124975873718802412699777046672211794901557458089333314027406455895626767929087194724909136626493807408713145777604695132206278969235305982840336531652197071200314958744026115373027031691567952695250228116953849665097189530846096900732860845763288398519032793078749574063036949850434048537580516256725377938092290361836598065302002707506287117975625892379971847159785962251472795901086867836440728083635035660989629677040868819505302704378527853893470600803158705780768598570301626928089939043914292514192302330393799853218829930822038825754308935141552728239958046312073613941015869171150140240582192187463042419224573952454028561817660684464819048456947472541737818974268097148132194074652910492806242841327727276340066026015201713165090915074647645727171852376413402594144849449426905825616129722999056847960027399111152756309474538837613213876980840030371801664874284101082397715886146192667072809225557174398777032768729512297735896420479429801607636650934297395128260399713120914619473077048633803651798497666837993260798261227567189035278177950652717024904806348729314287788072764328640077607849485288404057766501390790214542018884958866393339168676111043249332342696918954222190189739315606618607334422552480725505120213269919482203073326589251163654707668276759262826232240734483350305286261168222754265389955260703792226249543477718522648816100672848899998013680150947102983901500241597950764467137305497341432187182534384903866453773718893968912725642330994433909409852743598616632048678972418668284590037936484335965754672619113544657855917909670928880765441049950483530085577157991242946315770837942053314049127092338469732102514485974639172426272766460396937154420690177410396829550041288639884169857005042870334647222466894215051911420338728572557184966380368115890525266860634613203224054550176065305963189450193179086339409042152218215009883701954711019237899495757451660373856020857586412091295439214343003970544006225915383069878961762185823778699908204908244813380024292640614136479070540469055765779884207735682215065218813596719917979165820930615780731233669420457812861091321810680014795122410031870057918772392204381127397634735083646514182749540439785607755798961157055737402572733948443529854699059277451779566401478279608922922163195639720445058591434707369151730496813613601421551779638597110385086652172500459949375452045103260066990411614071749986870851977993781523182288014704926514865509840952539515962412696234123023656471280797720594954999722320394742823361591652264865630097451391866736115019832451005718217846179267067069830486678400966716746893222393471257465892861458720586021053866982999327278480358453407959151320203210037962724976713741688567580226557111741631226895724665940002409997120881389499020675093394796905199078667188718541568395173883105044088749272694094435538109595476970313698067108821178964461744288564315846194649066474152902088365125094068532985106439783545980555660353425326956163240296512656669886812658339713051383279176990598314348143946619039773612210434191647552668329864430529125343904063220813497052089603898610480113314563042178486281419787278031130907640776945768014786886225455899069922075157465018111524390150909661424995326590127650303232027151684686040291710427020508733195600589589820108162048642527789340041845812059626099333310139404622546638662511976332403098001171593307440635527379081669155716279665379410940982248835977980817041568789208674518893623136790005231933858801378455058948932104608860462171025823306033165637369227813861550752075925823251592817257700598169019900652120178041189220262022940011726464973415540388501084246805346807295820363100276200803198216391075777547393719301016380960299790243505526055257748258726444898678496055089803132016627261305511269898473612710527586632112643840163135940699428504505183802540264035972221853360829385336300393979660445373061898661183478459821607716503893858916932656220128630950775422171874658905261360978679141880139840891933096138191987445838457391643258346235896339292276311435093518406610218224288633051658078226660763542179358599174557825883311912624316822418183643424061360672315435020323830088107844035931985347419431754072970460563281691136217513618640204032926841002750273912005983995625420775969644742226045956223442903995973691597061282787547318109033642327942593206870244473289583220732942608532590142930008302000496249770220892125192700838960752414553977697164748407542795480962753459617269146578234744081854591095806825194780634852838749075171815184285613703057878041818918003951356652160004444267854065476521354939378291206364123369165627028339163418347989366231533926941208056034241521695819581357460210410675440349631633768130215972551402218659855558251762216735269641773994012946812784671345917904140910677606850607366813726969555022696570195594020920597157713842508245663442451930069135423755043544941466422838973502903225736928742795260498673989685886742361797688129849193687683380724057016877710218656810028397594296598436235911511819487963729406512557519132461086157039094152772539306417769607321897232983888733628616716342473224847240364474993803989949251409072936302274026659785872777044311090711388884078116825737667621909267104547823014594249360314600983048606530368646097082900236360879615271632402767217985279349578526419840295022041459450784172988523520444554473249695560733226405705544433845734826582488433213678296299209028341859298757631862845654770699940777519051582766027686445353719315806663510636777792026260576943514715125240170661703738884986603952887087536783303433601690557087899533873951907095627152483923798023915475914947879200895138459890640384760536403802897232172555657506521660065870597048003627040954971222726882507146982911449395384547100337124247257169213970806980241087504232635853113886580626447360419360258429643644064390831793302064252834220794811947968616365883086184531618297457602040466642779875163979854266319506331227554198267190802226529427513424724378849147794524170371041429932284380669544900648359965271320367769054794278005178562612064028983818882074227346175938092929912514996207643163690886653170161596795677688816850568109605702620896539619477333281892410313740835779307699481343927657068886499574834681831478337982494713659486187004852507154639358326275151615331797774284282228581999661889338606121057761044125503360916726097241304168079617058013827239482139202966029556419709684438741813826421897977021119882981916165671703088742406606387167955972584925572227444768229201689964388433545000733219980318483146214219074517927283829931809422418606966989691976357805057441302873027574914011253293689228103811681665645632914063783787414074308414068411006116674806370671934425721984144994046986747296911000305164667640228319040935369093327967710574281063780908520277128742468535481005328630717889336682483282869009999684803520305048482184182849703694387101174135527795743871765639110982088193819989296848089244803284131657046340336272477668664607684101593088026629573339284486381912012939053469554577239251643747085014130011989052279510759130956947539433081179674182780080114689313078721579389764930798626447724583298528009649565140430009158993554140682093345534650718502919729163783402001007253853026822210014064322658288382315276226518011792647287466421001250949597443438915479409427993178308097625893396468778814246623245906670612759272796453338825080510407426990297866451891080418315205415292658107342208373685284234146564168481247892252848047606117656767485745095191001855473483670923019061364797283167913880385462079610201387337874389553255282706521039933931856841999975777794301716831647259575196716112546323059025825684790140262404516932103730822788722857017903225980882768270520418814772242510355889726452987220234307694912414379371480944529946913130451511239526940114847407822116351395170123657703137156318351535522513110431996325756405210965378823258504589129722719477101440278450249701569634973153903510702137590632113011882471271831539093330232802943390092337006838270459415003228420695148750556042793084416161798755142528391011910829556873132508112901710659344867947832125484155096107455735878662751177131945213251697370170823225285687901157738501175347107242344677177593303631351977401885111601712119954412445213254887850457737118135450632758544127827899660593757564698955625140707341922575797933523960138793028692310874769815789241471818840970740220869640810405284732417270816991987816146023926270039199187838651744882077100088350213966770244524059187437012438733414782808623420980702349563858840884689718944580528671101988074832163201230428891658298427546339915994799909769326638195015423756492335678844988528575417006949331013612385543026671701672715549164108151343326801221152924787555794499397872071155312303306284295118754426761487249672994305702734526340543160231838306076330195644508622281629152527224557599617584963751174341666083545306542261633936388205990380294002036591315899853425790985446658196379179548701813615108308108414208384213869097878070899614673387977089750673182513753634962478019536821285641071995228745153032831576562263867623872580770008010533627922482321725856973736384993456405160196269118838287316804018998138062966277492529952481234406947575603595664075236735725038946241329636702416425169956372680606823836990236076092549866136330908623418662853281258107530708598272474178279985902603743706574362223268671085916192578491715308919898895671543468611643088773852331724012204314919688186410889269237550788819523060730658246530070513344232332971613382173191361106610305718684444362760953790350873482580520929343417348940850009270279892289701869227288914264271673134195827355654621589948713807122816752518430607806289281015225657893467468818315577170175275764316874150587474921642866824837988706876652250886930367404035573914825381410266374860042756481432638320873640092270958108113830072118699376901323695661336840221957837071430175782082674328079769064947045643119875884120941073570334189863612577859836007990227286854586541697090498716470152209393474441746429562877857631717114229611820154379824150862421690607854985029381787265458356742513680156553783356448593639096250228766326558915742942288668476682992200097560655481994200882180530837187940142252023025037276239970992540646759144487247120965094869280291535172539944932270215400183197522090733631703365590710170962197070359540092961333438088593621653005951969653086679710580975869163990740919806017304732418674608632979419781477097597015644465937493235670879828988684635304160393123596739150177908758461339545840940830301416471951021427650513893355291679083705390128949827972353798496109279295016105494811189413865564233784851657233721383377744841307318192205064163883041731808861518824899732979371508260145477212463452250421689965041636131034407719053203221119247885411540738150239292050958987644660429022432136424777074478385148139878806509698998512809898526914762419296431034879478096287861985145343209850854541100671349546915240660551054824273179185361337461624537899330629022033232767448309010944855215645410898365458911355292227031519258762235006143535634026592241096081315224002128111011701902191037439194157065121248245687135795658252068259585220079183653967499545129445591832047986525165723698544750546535761947495100898672366320344644754145492195046615212860969846621204323305106065228771311885576101408978726531839454726487098778522060704828577119028051144753921430978226173829028394178154734240699754199255815419689905474620034905239974587127290982439843488782836859595927856602883676185963227712168780242589161697995509679067716337631283572060062167084637660605452943886783579267140345420279074367394856145372139154888995556402905912209123108552093371368498027367265078183035755279789106270469616763248488234799228428286005789811583100021014338816912031837781425720480442888584519691225240251547277543181744931132692863484995231023734223384406450868950027584378858331270602064147340817710891670628403091582851548121611390586298267106611694017584729175047059587527962690331244191904262888053828485880836453189764449072866202652102851797924057577088553215343185898073726814803694663765802398293339811998772850483265077218609052323663601283475641035287011339056380247846610057261103754934332093942151058517834150744483490949860830143831017801331621772644108512275253120061629210776178874998695315140321920653359579756948024404033530906329943474821661621965194645560328799241089285398273660632548003205775204366564093994870963049243889301345849631265555667318018299089327407635825461903404015899378763714452490830567020870665303506215300156021236049954077000896287922872489638733005760945677981205687786997036206171262526092892687889712102811825282750120899746777599872363676524612363945978620187927671423118867017292061469585905056427797648717519395315713290901838094789078772355735456759439558199656632368011444600952746763545329862678445110101644593180518628411715319653361521484716616716233565473559147435490573942897916267916490063646693448718699517015341511772956208242335379032141123385016154834068698728522936139240389746967518209063598301854860454972347694085298900691097549096691142216455576467770612527340562626095161908768169241711200197172647566179383273682338680714747755343889549997690266757853147273829002296340803719396699979973823117670433850159091560299961408042673233267303175095439199776192023298569029694591433908568827356298537910608299275823358097382966604522213886081081465361207954090390855804916669540454482885583452058109820264338537832800584929178533691565542289414315261944144088859649847750249170391339822567930698575139341087361289466593018763981938636185047856416548991035419281881252074049345328281611264663533976972276306258025993810516296871412059881164502696876164735559336488545845056929605648720018110524297769172605471428208516124420840565863654611393863564429871908136605505983935657555519078359668179999669022619576177990522641119476583414448913838052278028116395150444517357031562265292925395788245720650755583692667661159729599925320183669562488903271611960262806011363127681500713096124255282869568342676556770112005126584757975765895231570434780792862136647241936227482652807048126151597211320790354614617320913568169965253893026877749968517525454800597430843193572283444405902367495838022762210859003419225860526436413553204379167622273992463063678870453406015201552916769180083209660687323902826898613907105352114933847133250965199559199104178277477348608298818045795773756103492889839208308273416388482486290718450622975291673522709289960548993408460289366514588413720125866453930160760408213272831610444444384664301044319895590412743109892304818468428200025287159350985143807610906923993232175290970678172628484830437323364044848588692328038848335564049327401060547069342116095734783382434996379154907589570563256433352331821728036745550586064081265758259872193640343217959475602466101817355442805737548472258742447161090442518447534254908251623386541490111120181529398320241596457206081225241013333503294149691869120001819263666392198982179409052649059105987498334394487166076229809277509182096512342048674854400677023129584889289436886875828908923604489282501341676006308387144542658030862161718498890078492236535726584164420073813972068120242491750741257801494489574590161345914010909414371473731371420701603229116117524970586322705629076782820503165207818613256905767389423641164814424080983150013429450142595948022505673429896904693691378789656987689995555170988282421122697249085850977828051749739247969203599547114800525112313360960158564063787631354458031673534824065133961065302755121004720546379105645045272607014996030032649747964450529033914850656536824674594116725414371657124445668089290835022624672250671575370984777093702686298040348819499159219131680237003459378387858474744174739972052637341932789115851106751928097986270931898054671974717079914279736330164432864005821061762315068288562143680784003150432345275281828901170023809148396861564594137546460921834607715455337378516006989904859606450451123742673807741351214382674267335098856601732500379410358606046115967998791821751377777387990689426796875272139796299555233449357319484007364671607476531985221175606104052755850585257602647268868690281630364973304622356123362522647213572334674362773614253153334577460995598148289957299814191027398884160044636478005927281636098323489173109154080562993007859103391106263482098481402647846732339630991023081141649358959999600601772677818443432287463497245244549828690844646911585473526896179877451536410865290258062278828660212671675873862994084695254872078614597634596349671380373733898224573853790751653208028030651970085369863938780933775570988286762100371463365850322748580145994947954290548095235390301666798427308288231263784656251175900578356024662905004575825935545458171074429031562559738821593014934316686924014235895560795306574712936808602447126416593932909214196775617058334834334203327804857249908244600628016827779221332605260207351554930814854307430942798412270379226611748071662648018102208015522181190634880801313551384370189345974915183440886080147473595874312832334561293381725711443399566278052438724008060368659579623437248543024577998304533626969751777702465211721948524259225131653256144363348093456367208715756186447708061841481631238891567095233529940201827856208101006393471199862479581090587406589102066986030541897926615144977503958797411303602913511811429368325982178715426412828998981150151488241314420170141684054124060835471292999743443710461387342165274961816523206281330653253320755203098073020086127164860947277950478142655625293027971527848345240694391906438081925443290875583963515675838053385335548746221452897628965102803438899911088901862439402770904865199424865878029011014208366832528492938654868201796579643565503590819538445309051970770594490561989246192658273255234646518866994515052251505328348874522726523933747918081109243260888775012835608731507300681041805548571799497769083132984913822071162467953602811336846163576150110692115692677853193970711058395597875584755844790623179835444413057702934718152262800539703046041687490038253214569004140160743273214396447760161294563318578714860800326580407525828281297104620377104396775504166581677399356627283205867017483859497489216512897173390696835476962767550670142649307721184618640792048070141233192260630752710611303169133017825537816023042553644010156055028987994452732131897977949071972987537579114616860033481159174976726735867236711755064596679273758980811054257731911709312901606227284025045940768312595474203324964855874513797272233927974486983125752841726250724212723780814801981104335136898519035189424785567467162965756772979775915872146596364462411335171786865451958647348480675794140872943532799928730533412352378258788214362671844044075283734776028933713512307294221397721901394615184805233376626420357139629515043238390017516853626375052425071903141120019671506492296737113679285128839238606636080330266950704510443618611091237141279474993587865671398786385819360929138266019906868799409937090766019740272713891923912304123181321882704457966457828567411601789747113499275067857595527726691737663341440870190321253419646564326142618430210172126660992963419204743015083954962433605600849931561524448011256567852075104341752341533670024218539910300639958507165368254902442386978082982745036408403380410774972728671168199390284830042611201870609977000718194477191147207049245332009070179994692759546682038952994909746476791863053389338780255533450558042522222370919439840121596134022536741021220996215666910888803724440653994836906418120517615197991475741200956434860313923958514334913417572726638108293193082845502573432242611013329572871144937688978813457258847452183583055459095551679984133517483978624723653588244226666733563508465123625753993116943481560646943427159640429774086031169186865487014707459469064315531537755155746810024933332086588554679113527724952236279729387529159070597680917390251502610491581973615405722740793132535770185926409980023332294006095704008688665420192935498967630650875499369485461463225391727906612464032672692088528270531280617516757905469803475260104185454803251054074145093242669785472359209271028896888087593322726293959599521023328459935238295100288903563557411464771065213581269734016853190936284992436228811581165122749355241668061920702668221329764796407386744791517550623684435501380187222613174682832906193677615592876404091539170273266952945271614636072231864657824395746754829350342255873784766672675477329254772016959048259828057472297303967486045499341601030177648268072066924682529783227417827475548899874267243815699734785755291081995109932086255520574316945679786605299236418243876396005084220915525321358293636437880115407976146339427965655891991600923493227979828722008229530564964878262999269212797818749126547105564897525195125568121743077016828249797326608207029808401711155040898757435265757779786511652150447624879825831433682348851784466584980681569996056880158200483829516091067945518068723027393956463450306144941007933404601231714790029888147608434933171580208474806536237965036190340444923409975776910814449663315612933484395349018554303729895023028021913894409062436329483218334045034867889326039885809551424562541058190971058448024525825889670132442345717839039777653576230945989689723441979260202120092158915896944752556643182197047560449499100267260632016257457472702511039325573425654237831765850330443642844039386787536364708606224021765582319799279422778218228406692527229014810939025613367049809282448679497041983362574279402573975681670237764302695750004700035404035511519393814534544214662615675027075479726145981024847685516117229904347662748232072208400273427351595532387746276022702017987855115434089340280013200696664221072062850069042962045566175756375120052903714236122664464958804045598813600843337303593097590609735245176063244093281850253375100000797710542403401721162722658508738278905882251864598923794452665131443702513369776766202796462119358645016651347871953845741868408065244292182072212815003196951349096333137703450137494290929863112347764558799903427766433846693280347802420060608915974035554073670101164695349572232504717541037052797355607634194520825988715267082298210498751637053094492644443292996336202234927160858206386048701853019471634506814445535697572286612160433446603490558556880662270648376631196995414056464513760643963788735452619499306438393279479993957233343352474931208227622679067244995194123350410220116097928554914193733594207530707961957612038889107936524790832208134832036249234967409582322620774140422817050826889124503674934906923594815196048010327665775730677315255648881255533884717376646647309155533853812337593711392134535891235053843001425061235459796943107287356196754213021442405903185215852179169969300836190218608353919317875152346351448190824380859224090013035732999268901242904979319077063440298361525867238677910682427000063426215436219721809690788969635801380342898314626828394068841394938888695264764995629307401626911221173098352061317513522375864114754493466767177342724994387802243506684859220538642619681363248777459779561120437659692124406798838550649942239855752619082342922018994630585413208258281852880223431793273367028023688606624439397500534263489312480172089586036033407025568711050161704629653219684594496989177297913362931893753585356465190996306098202215125221231668164265270049994702967925822040596391779309532794647011780110857880719076001709951313355808759315358705982988474132354537169902057083806026395991416550180718237529874817430951625120239603619861569687927953420264128033748782407566297061569368507968748530932456259660742066192982911407651279397398072926080063577224142526747721829127530769353678087476956508408672101499698305875181419843448462149919703650641292243006269590212427394532538084081231867604746668874132058582567508953546033293886993946747414701464482600776576570301507449496846435982625364648026545804033733904277505373298975352174091452565296863699964412821766087824615537318921490731643897866121428247738239162277650863409910057897820819456364820364040435152747458047014040411892943400305775449380841199062932184700731290167900496689812276075744943277234336740150093711715534682125183392000990750694603315335997601716886478930347597707735417008194599044521441358317478126993459478493369925379861740718407287946191226996282925222247247727295848048552018328423993519584537297791823343449323292731267745389215400249699098592631471779667457727060951524481338119804346484091236540889219979883802273468807973007896239864939061351550448655302898083045589216303075659343197689353973733217485685996544250112085205370649928709255163163357255258219391911267817221673120684790872443240448220089822623855031319658766606784686160474128645305754232367492890037549416534654503466099212366372766511348060042386819851861555622128647310667256596380964080350565536834188079460625056277143383406957044770529185789414106430380515602830706541899769161530775827412453676661061424756529004786518189567327762692094052256037795502994540259596310297286665056580636285188883453180907391216091806687547245098754821326558280161084539181134421469156858094622342154044396861052188429783639435775327569886341864351639780287946932668665496012250204291928213231586524139579213928604734901900080997311873515457232853552763022462036475183618731178213427904337124778468820290851928896477117505108318241698169197093641295281463188761860170171214568615962005660341526797025577413283265215785039574756631834266237374462327983588578945322264711652861880217712517517841793269558146351997142315319175110142472832043879505743216635097875744009420750601255584948268911652243113768780048696074791470225882152526111651338091976637026065302625277088745059401046990111612438946118570785530924992591203068631569048506743828792257479195003123988081298466622736297489244107010097822512153528093579288049046002296108735960212213690897964130912006521812412186323846306858308117291771045336081490146517075596721243067967794941697817003572278422927314301489215041354544530441627036202241883633973097062975099657498936789906930847670843289040722871980483555489780976156955928230853028377172001768887352473535271766249768714659808626633317666400498624592073813498611499321378298174870225836559042672652088276416062312849517114357344206777508828183851962064248265837735386419813822772154943872119552928676239344570635999983960116905519735428644705662436077027300599304783985619257477514928330707933406703402679065281826516172701358001194944249706281365537238955688831547793158716084462946609940207458777160972005173037698372787170058886060352293071807388902063043637636956717438570430525809855673669976280956098114649423703847404512346621751191380502916380891555177957588914048663214555469757426555278195410610286899013901079732093813335297501454787344123637914206156207429781474802302163992663773106193563371885123545422120707813165936833215830123466777670744409713332879099914723773603019476630991250821692960651090364970404746927346834817895418408076817732250601134749066315139975075510205060220093970074561612338637789037003785047759105301242286510735791351350036761196098380209021421231250468203210023843885758029338062716301484473401470010824897378656598458829674696791948554761900154557724511549857472953455516568348498279876793006409289018571037093855532213782551035288046342788259393977517709902729111694421068551852628374865575703526266341108699991035035884220542917463253859895664789774531881792637210603137360531307571211874678977665263268274650501141888964406080555232822005112774553690998373603073883816653026903665582299618411645935196025429596210899066834779446461514984242150008977195647608059696223193900038216595460397064595930993485484831807987172338704253551819973360763790140457436161564311361242012870418736930809462076419396143387629296113711431213242606292853360580273405494261661662197416477562460618516389285463167483997747852910844706308059271565955839619415555364795104519094657576403840756801153851737806486606042160848955103376361239119462480619682227944593440003551992984295352161395859292404212997261791430704412131256865509686576004006018197436873771200752980792512749836762500071691658963478218426512693935485706254189573458614150862512588136576760265684603592667199835112301846759089851090593376817999543023592590390372135677342413792234977709653056849792539189290560406893589508150397546760961900854124272834061210911845337268800294735627308756274218230803180718511986717926091918100406579358837362384396100583059981641214261994801288392853240105948210093421591909061147776867136796625370675972237188140809724245923495828185181832818383486346142539692974273599569106238511656454797696807121272475863130473214764591935656540079552028913594260461201479129817741911309136360165267911696736637192278936497719059681194763211614962651538692539145498678640601138055745644978078861565508601840915740812586740462052097928163216384872298960339555940461785626899470497377534625494940747986194145774280296083576796510301250173118275496865655807471328010152021915383090974782844950208844478268418744966123844466512280702380540685963943518197162321868986582838239194456066923317376491904182140086679428887375467353606473035683885615235091431247910341373378514567571617373779388985324551616449941810030727266179161949737717796243216732947283029380018550259744881862882591564564704166807453191929713302239836995157093130032725101132975401129024182216811796665868915779881484467702272063148844647214678087693926757523740371784820280423387395327151576685454235683134913106940655736079714485857875897112087433381922692261039041626337800485002305726284019604114115189031068351449473876180712405987328160008333986371739533641818568507933575319876486463457934652034710417327116438849000390887493913262783471393363495927397710377318716548509442544764187118924802822701528457007087026226035995997209421080807170743557783104050518478398809000011107078508801484183208215037612106828840322735463209992513868756113950455653797894789999517100118984857690517823962393161142711936229944616006463948197366313559224888095653796682908316145638748466571516816626676823480936669525833208293008631951272113613899042066776853096978174709701263746460160415968640746138506450695276435719618191460238989758976498946837512520469497264473900104916400158572309942516398802202080395394231071558816046141047061203793595688615102241031993518881513640027844143806297323791037656589838907725635580707005649053250364947525199589640424439732592713864957148927886611756612876292390925580197506398625532912374536152626044837759014955672553304556742815128938460905099622711911643207635602127044038819997661763555735863483958407495016064169254247160487180797773687269761428515157198649035023740912762254371064520142703957112353606781826973099109201410706342573987083475605171699197854845544821880177149543448252239186399321501597530263755621093553353186107413838388894634871060528450723763305589094182861133858036497344370015347373662165022140154353240138420844813163555592003187980835500986457398580946510538252066456071023801007629522450663323342840860872266663448272946832190046873230361109701727023775330638468777808425755366827302039782282391605296031561969671262936089829091866893314504443304900295310710013392515938244528914962130066974480758078130711111801123947576834051235829836945171522942813881051898481978511316781830887201221611229586666542232271196351616442434145369645403493064998509647996899034007763351104044352824722263800760810909089189772219769548292744156831932830554513795522023351920243600921417495617966623069101724408933449064906728676570631728811117669853063696852831649461398632538894408293434342892369371673336044497366815687272351161988845316568664060128530532747522128615012173949539947857913132606664791080972658433312880461095427669732340712850451859759125530353797019094744850478386844211010829073441020771618674123549155210391690697547794321538668668094625425909629399862373905905358237897972712990592732723279613257514381189601494195791615930425935876579238307523576058637212355896415827380681983916852271835491310285818512922474481842801370785210871915724663474489273296994267928439942735733926689741331022893652892722241388180660496996723193716972683025178258631426198664864189986252049768422664932865536630915827250157128749157859780489256669373281513505882829247745587625908277173483891727003066407867372437560908127246812682871482691205273304552949566272216085552331524231722785546928977766781082115330785464666360949417707896030052176685966288729913868715588607611230406153551122422834028182064483763565968576016757270200231585432933615449977646109426179659222887706596748548402819392977530385532013289947122945879492171937494203128216919811191643442771307795704562397725408172980504627244843017401332327254692762223094092436443573327517899146725414443480337287662841850741663183267068159417235796908307088110830385514298397800720516753520942539095672596549285476718073483823490735900182648735903564423663443501580225294118347510536950971416164046643984299167836676479470069412499929362089440404563724646922796589456142002359894813445824662419117945135371273099150120523189352867093801587159232478799982051379391159928268854140083335924176103439345820478524758809246641933885598384167346136746748895227478597192271803187729212639130281766106589576668559878005067675362684621669229773214242152429253492676853530102608328615903179013660894061820177589352123842593222121955492148267020985352395765930448535001560924260317626309690730855626540878474153867826402058728397971996559593007658371187078574043376511807026924269704145365368548326796214343985463964788236400735098234168117963021956666512880819990905016776756700759205252565953725855759207709012443505603853382076272143223105498435624000717417328538961019196809562948430360479971939102187748232323627286852932415284857166569153368386362829134625309666617899265871943968361174248779273947844252619223300021611554835037780530581556525603201798902404248718456557314770482867853497338960435655967185743029487102445573613642424512189252844041829994525277394529288245350112996930946013365895723319071235918431662427429271354447037897043287496692201739160999731299438242736267888949702889309397266227925895853249600060419851858044113819557179592237332689930129594936352627710294951183351454748318262995019425262464067702535578383408602842770363390667608190685485314658511380527838110735526314209907468944659988628613503760123803114761828359720579002388708530397700219038471902086822272035023401974786615762965176576088129531123460293254629464662893006733755498682252045710201435534882217627152661372545375544850393420263376337776043534747208021140924833679642956431426775616757540202346829425196536090901033603793402415436951699123126907819487514462714059688514930911398862148658180094500968063637158750716160800529735420630659183628503678719537539910570860365542701022167750371599482450949072874652058602215398721833753441054885433874108636318173793534731048763817834672610281878312974767366149304532699826131822973939913838995880775409812296442705041720314269179938333983419561326173024324167529173997896613848984669553678636463170054667088517391357161057802676511426905693467680454936972798372065879522593198158061821423871532762164545858168794164322740693517329517786437541370006841306211868895151537237990261274642079100608414930093983302231098685917104469698250693919684291911551681926314453246652627592695412257009140033765167707921775473397220988228812492686007271380657809261882924881692168045109132293229731471127514399196110910093102331477203264530551794855918933969275975029294729062422431705472708517992622511369842518128688494959565882807122832844558815824791557406789013370463512092572654948490453337208848382627784615196277266370359118560900553426562143758642532293859946381681968512516010945507009117034178920585851064984987127006458841294797251775933436035979436343720352893290684714409404324607365114960026717374886646339177861260238862710453483618368683272950547876033658566545798549267916962603285409964551850973589970784082124982963494112876793153724206179821472304813477155315889659321619277590796053383074158346713586818012099115721167887108915502619733070239874893743897072315246008980068782553256076199458086262341427996721813157728547580524157291479789442005507892992561343553674050006543109387435864766661686840557763264232086978626677052303302379133308456673747251959994925899379553440146623220941220952325877815665969190780398404536243427188523113567981479899558456351375911720579269414207988700915390641686833268551305989256454791742679453518155478280880055958324303550528941941821612841821295616557813869191452923726802330357629936194174556156933564752800131171948288393789984076547895938060951400617755014711016511779532040018855919934276748431124505099961947693031445470519659349770057587151064063881784010669153479290783680301208236297522033460820123847534087180509355781057422635415746186149003957100355073441789885121004880454365269186698257343840910045642143901297231207702488193152789341165581927828472949354033149373254632251724244582834940746705586543657168600402422769736452975095150538971222898656592120923827567625861878747779728415006848278894009729403687198479541566556797527788347696595043078103519000614662391970959842380127514153336730921567207717306033767244568926134823872124175086863118081322591168067718968523343717134731866914238365083581929853612466189882216270416918930492089703427257638013809969146319405644976039194933113624133938862470419582898554450202611042230064509040603059200455939745098960012309220728106032652127092639670119797120109840045996662786123863409124450786886682494367887216238451098911672843611977314765970903496563572074537775857404013274854393982228720890031315503959497564697346645703735060030643206748330283926014131830977869107041720855497426985404415081158826503736039171493686654908838003408317338066633833094366138474826805724285645866355059805029391539277164876714630782314382813141770040148261690317457096949220783347677149593356443396525224233218641942084216116137726963974000931468150472295432121436714839272006536657757094056250235942024211389094995786378251738666815516788325753377776357542372679955268248002742257259260478263173788490706957915943296775571724696487602078612506615016365596604857064399273799026230484498480654225184733302482427071486362567753079057797113105150587996060708433060981175346762551525673254840869942205740922069041215066670486939615720317289625123136154549626835056557361864564846522425727442136987088996188709338698839266311961111103797155920680405811465612439065946782350114945918240271792368112454387994358845276822886524853866493753276779854420536607991901807427056210949704919205275330708410956086176925465873230171726002164143175840881363793379321209231900555438598816427906793678679802777980265268925985856123721816926043029874512190190710068748479606271477506779795054914254142263840296592063854317144312930230500474399432716972435915232578157870880753736977678525693009459558726115432999901420260642246588171733229662277183887986610601014404874900962558214565151281704344923741049701313753592663644953472908812961804492528847556372991021672328796282505313025641603506240104759580593989750141850176980453366452606899266076636793416864137635588909648796941909185233731827705607477082867510734359066505864482784616804578021895350710314656165245918236582521357613331567530068933291600815951448137226466839749410726748608522401193485056262213885022768270232275404744347687667101397532202681426929948988654402868090405326949882386626900320323239654113023905814241567110814621548743104805762262369841966783349280427498829280907230586106457345747411514615038061999419183753448092070511090005164790649515540875516408876847206749116429100623330655301731673607781495689029085727740208243842436016331550673424411173027733840672538435047828212171932960163112374152272477830081781749897493571536796638376027807100265693822582384407115561855580412963655487940042584297059971557868148500617334419525190744694315321632941747651626709073607561538432915789937605415618460946789387192208688070739942464056645727053915995904888203234824361308201618745537005525296240024978066471676181699479552936416143635399834252080483092044208935717093998079001151184283730446126738649071202555646915568276111357320626226637742054946936380429633706131769806807340188247423656664943459606986279975218358237624320186291523044960126229639807601873246237733128057903115447756014998435883502175949509249172527900473529195980941216338901279439998575577950412524052117470810103322492077642422328330731324613986605299015585411453381087451682147437384688486085504785094020946562200697551652836913881828155099038287304913394412291245546824913927720459011103622110797766125403666206665037510075742509430465383801227727969639718092748628346397757020381606118714499802731921585703394409386595847179022354993314004413121466212809089616986900704142154843757674446338194800830955989098684354712313587830563463030707531333912818974625970241787173378313102629314372560105522615120220589381909010677240993420121776766458234264786937504655038108162404466415390176207159422666328386046500653966323332545639985195667332612289320142922212669621239789038187108823809079954997815684747013412301054453697963840880796176862954695734264223641041813129248853341732230597103963533314581728690618079942669573355315849277955562686615465597156606385427071346056098028390420514457842171251041638542048065587892653004128735107219312469091497554093056646215347853117656034828542613968986541617880192787665320264566823362637642451708078566892841118584024389992776143025716503209379117747441191931482180482555595554565542050624059211115654490041972049212059894362057984549532698449424471438363940600020798426421212610904612210513751932162539666267877762523113376952264310187416939512940952784089158838584905014190333060518375081551693251344289776700412206589962047251561318455861466677177434375990050138277654681288320091651303792336519615270326907574434615546741661820017106432098794370440426935318078079964237681197309189045258936406462488644301384927530748794021235744950187290764598420968838517736057216317074337367338766413508431193840321207157590708570265645541261103259712561768909347152088748025169252071532010377116929321741729637858117908922137692084669896557750161753982531577052649567790186490663082721179514461574757144276240394577448092973702117904162936892213651584391109237880828930237869880877884082104040948205173969791974755509241199635566625729781393909919458172237822357411391598935981039444266960398305625177421436797228276527672946815301837083110469646633219976932282334126571455725875994317949071152730109426111026962882683865975400966874188235099694972565359270504339959370413118316934268439967484216483561686418669648693996625567601067539440706672538860539062961736512386635811315947848826564062896056068824216129436605457466368463252401629837737482042348710756934114557407354467845898169084707149283298051153291504004349429390568316318215531973777139306657695639485040353249159324374549637535421685641377039893365925582764482685930137815430007145070335498740055107911907768716756777750430367589089966192440467751761510946352391241112644498946658341662936582931860042067459156900859432310927833962616406876016839943603791419982684984810415924088387401185004592600733113745748298728554758451877331399219133134462791414043254285348539896333312673753013141355943269574855890309048824012113755966684837737860291545438135929439361419932973179815831181590546915969246927544607041187550596872955641015738519637297899282648052898229899365355517249037996855884020765742803821470236688788303050918678755642378021659278433967088150256701661796259098484179064881122122451662986955540241832493299467128198353185718782432413807701634374679063800895028561822099899252834815437681846068900434728716221599151665849275922846752085871561765175565313892314769679593103431284827565863114755142391683049423792281127149391622113656939341253144290721617952323925847155739210780669969919154644190944418835524184383980753270589434636833129569542020441834940763839221068556789153398281797740349514463286766124998552399540422675808196998043184017133495935310541137611627952989643077014753880213401962863496509423240193555456157486718150076500862381273917437204834431440836944350547696709407444597205635891875888092065928310417072670030998226202410523492424632009981301782304631655435364585440165429230321239809786472273211836094412296756458395847579452096626320952731337900675149453773097506920849563074485912240537301668303738170913010495915167619049201712854074836413818333215010303695182196492736028823908099810838429422711195761209316447274751315179600783368113113156609506909430194419859424951545128693701079670806243202358624441177197556881459962387840186095156913393654125445368003486307728272481236191068313271047927577357345892446643525577216055097670178979832795524008429139107394071584089281952268715092950205913723150158504910646900568575443289167661887843292660229477298001924659424638899114885940573089029916793758901447569369424616250664323224684657149156594318015182695346592221247243564630372396105617647335286504463558873194784017378618557844768545564616575191264001509890090200221973538409463315980751141433907464725804124566673143047656422093208543207118660638764722568947655773173404449430836300656891518886507084252874615229329584689043033104436861538508134568571709656640474032628298718204857871100619680567815490360563077821417606186245402684393892373702423327245468426903102827990193302061642026191297119847995155685372229525175023901466466625876297903732437925156802885677544523134662431642386304540676662044521155758964635540821058158523370670304464537751363202254346034374584936309544228164291130613420594797003424377107807892339545827011261204706903057719056476924708269143667362305308686636636805091226514510952523233669348500051754575738315655164010402359791699184419617555583209461646392234059650118219710798803067032603075055540592394874263465744424698232288640211200768566665038261308394650330545716162046095710177823569096478689467104597842575712030900143210979225165944911301846424775214477907327404448997271421833484126605938228384447980430789184891619110495375865854295769827518746776618800659648075825345072523137914988526395475998790760096268107794906322518748857405770755839937408491452035271591849103159871589714822523476229228083287721299053544313701939224972478189611917510458762526286748512978347194342366737847013475661087470385105365947583723916143876488687669105733672747096917075368768000112113309959820805001979392111818190492554999588448077898650931257856639397827916446654187314420680230544647996282533916292308702565791265304120234112458511133325011374509134452225308715523056591996058553310194164719319507902563220381302254433001529437946109247149569260553362600628907903077611747123737399752991249286610819292258407677279303392655150011493544466900735690299387613297240556155457827497943234822143455170987956125798717035810449061287496269417798530720294925175895202755041087719083319811199378736692663119558007323544440900715629407510319299854987088095295818381451688512227895095392666733609187331393859521699127221204744181361121734295108230154493107575025696930779281206697797418974489735816644972097971265934876108451631930293994438208664277226860265822085929228710162245920589482478350269751523384503711625615216045103211765484132797449401012720403710437323931104134776705105447529634764048271339552919054003273743072392847594839332641979583357821856791376279543022549520435947396235751540321328349578726927660309702370377035564966283165789872575712197038816167416817567816471874907864360513864260859068670130529416242297253366657081180512438729810628330064047903253428736520972207758522914632226163719890215193845944002154797667598662924786664215953961199162924026004222829053839714036133000112722177510665347929527986315680770515430405990220575886225284040431426945475428373137354085515769105692236166012750101797386405321697229581718576917709395779222727288726128156331993959653684051405888677382315994423447817458572996177258627408733976602575247150945444099157846025652193362843044628546124254594030093896770963386222917718445538871210319262571193609289567380667608416829426466841392895322918794063542217900413166700821325924953669187724546068588459577580491332532912942420849522564616685326709913878304525855074313185643770470155173248135887824956590817180824716379240770518967489116049657822442660927364643360307745832173732366390146709124346156407173723095740540788449525302227313353230612384848064412587009014222241605653462279379467761102405080601693296449781601721610069046338531645212803155690353655057499812306121497631964254453108039724398957982454321277435897978185678908352361933471830621990972844253753508182089468607037952336233678129947594118827318514017808407074203274370192014256275139878530452234419262228644495739506079956226689446867044177636615095474767343152108354477305960746791645994965609951019272586388212367624347966154050905090293048470220413715431734323277134214717733432757679978145986554618376332873312986916158069923870103632832290383927112919719308546994673630600445627417883800010331694962467800350112581391047254541237804424362451261129140085827888653500017219812571075703632928913256299149424705176551416035701675460669852037019872749519876425742656765778519963715617286803430481554122169149851872577453161899843813189829607933584571413716789522400764134385555769321688272567840755204934415900647512537772022489949834501551867389399300404590054311593971518303569970334337551707177805737024602497417004458163208683862408540447933270995133783103284646983449167907656191336381825468493966928000617324250469635325464709984639887033976780333604284157023653076312022066654278456437164018594707870694194150702793750253148872191750342815162967111228668039748288136202034124708946354656978852636169356434975971116575087746337162233587685947060669377732866625178922224579878854798974750034573962310172898174904724611116079374355501930503547202155021572914821137433537160497352730342552209894205208385026039172398144530593923360767314452336409987147873736455835188134235436731424102240361666066680254847336711532295474524833787691572154924726293197809018115746026693985245913048210362329562079176303239858500475030481639678676487450917316805715740988859544246440765185117661646033297409513375192320094269884691300756658791993209619703102675812411557026409721201457223314137583291377406289683920808174440365181431119841575013665230339900029719321572916254372779077270177830772393663388930244622638356303007058879257893779057495333194194344563045709060077793853227444408042879294072362541025767754763459899641645074782138698223697553549733272284643745161695257773991904687822097349148841079465512486132741467332839909312005519779530056064699189159778052398631037378910433348883317129373328087569210861840581609368209405776267618898561664424791916102672586641634346886461606693181519401385938930655297452488790806576359691640026814199923291300510460141369552347840460487539702761522437429465368408757075054342547586353345708483834759216351044379161431591938352366756627941197505898842329614277148802259017576033746953248665406889574362193533878289565925362609426281214514926311864144379835745679903588196421569159347887165819613157330767301443691462593180849366190071877870734851693449184080290845691292986398016734187009061755722868705260864776126107567686759221921324976882951197506799667218176968090320383881941923927541188774855149253340453736403034380458320709506564713261273883364947426398990198272741858170175185920041214869253898913502415235450096005102762559905159762703109852456436944214156414083600240396528276556006662227942155178213857013878792210230787247312708066104866495790862187495811833294088454548337816643965806112776813519565147063578613021248038259825733813459481049635355331377251278594467393539862671951921983265065677989508314483095152983719805612611732551563366609510837217848843573959840870378893810340618818513427158488798405684042397826357452169904013301389420093759355729022858659190161488166071332119924190582804363734990135552686543943820847180639787167530258735470861738275250930137035108548757027596788507529154606881853166738957089864450975581842490723165051388043178740785398799540173316408332618589196857528890490200252182547476455318574943498044315004024974126801995168284737024285295422242846045361225446794381945824161299441322476152330605012762365302139760689031339768442987549780505777013358334319272030674277001719290792681621767727752172513178022300693345474710241528237979610881440939208660780862786024822853205696592978852395847472920480689609252048687349855955334268133565603794696405242889578604001308362997894294394369199041975106036846877559104225373886828926403809638490192777539300884415565159415508840961362004731274945284586018227092442858129151705702613760278201403215320770588540462331315574229773643940826740680219909136477471600260808211784827367283363339236736286314545847934371411024772260909531324251205596506986594416389864551359161453151073172570801360771815861891286106489275112039858759364583100264342432106979910048946941121825622164597008931509105049743033131017827260810564801702766148826241154949777124846005438525443399260346973056151765851605613845826504768523446291786682451310184569364949005326648671237077017584218218977821931976682297855745051104491885091498890439608628655928601104431239428352065763243867170209119957747530686339954896423114600819868722040348181992090447160551566666558731997512698809355483244237126481920859578620721239144408006111768374133306670856637151356155481806263354790178263958913968135956304378510440758703948909779185302293846008928571905293496380900911936819423113991909070842266944601419451076877879637471904104539585359296423532938042950934943217720924781948729909531294950896577672361999836585285446660399130552135649530914861821703661474641633146206676157531850731616736866849862477485273915846848384427676448908345445748457104858966171855188311734669841390296633316073388374919560413776715438728159936347722118526923098468559639188814855884602715822171970979885821916354012152007876301351451865473978582351783055610858395834860301962436126703028871355462828917651998960990853714056871908578740161817877786418081659611880265547817136343442043532484842509221956554338328077053594410311328777968643510303126889334022368075754337744659612624181910576587198340168133135251979025355470320558909679678742235601966879616424421529162290612108322517959855113895963541714655575497786060881412803233321238110089630389215996321618248469063589667689272975261903590846313169939962063482343932053080459670035641527863128490926890197576780419878722948824244076052487265566636840866044430812779139282798831473318342420434889656256658650639699484075471857995484429927953713939775371292732396229194507674982329517645693331562213475134099772540782444275415086414960927149801208145244430798031438493213660613225719929342990898583134558029397819040069172373720371149121920816510591133544853588749205896854875219881147428394057071146713463753930826982073903323417249044435841531461162323446151566164918792990415482048017340511926475499327819099436046551667709010931492344741654446701090942819740443704849021576982363050120499902779544829742599657445512226278755686244536700231163021107565819225101187204871788577801931663319286598755238839624718327557172066191189237817616193133165118629745283719120667019377119140519513400500836921636709508815987462804220128031164036758383934302995966445111781857233031901173623646436881237289205976247982459231468158770612845441772479104579032018119794419141036799800696092096343687654918790360421975120348134876926764738677993404650078300577917603445870514211322684181010580663545660768222401713556064814147981259143434292480506605928977206848543459480027833279310015777514136710086939497665271566132980527636281846910373246435212739751550007535006614727032518717568539354380474774461562549829796334421573667682693776849688212708421227417359971693688474324048274120184847401026670611774007494353326084809870793606914502438119033174891428844039525144730668673682466804119549375045751415043958559081447690867722940050519359707603490884513579645629399402784247137006595232870359643629628160480849127985073252469487560372548438472161556035603699689135290145621850271991706345359683978955466347874898806501388947147440877170358042602092409491198580529661025637571906122269115842894884924533947710409102146660594138958103611472234400004227058637940162518780955220286217658016179950448174344117550344822092924448090864559822127338284672489296886373789065683184989475381183476864085743167555465562593712702509141117766348661746340014598362399778074017505335167956794005448185378076883226607159760580054264596739139315853812922843374101642532467640148810237503216226368942984946255335813826273489940916529841699368879029772149979583311388460900303331966504948236585460873219358388954123334315867542335561715338148770159037861424277268912447750434832190002712208901286174788890082329576740884699293236480169941398104757993490317375749793213161128129170976167120856419475292535216424257933577836205597106247685478570959990303212659565417939454441846254557424431357202584203251555547852816252793865796932626445615793968506252604865411247663157408666236114085766338149827365584782687035772989271182169042175534029691055277010959085888778629593367946452929468589888186325534831179036430960370733297496931624441211544000714668339555448761113046993908630902926326361881687189695649743458648816986660030716449568645176067062745875867755012129950354091627459707176720560072046382274287749286623808927839978352009061165807524789391297139452242520924760049666585566217116277256655574381142776550396821672508123116092844302322386521573812607627819007355840685144557882060485327583398236894570324807288839030003345664377577415807762759138407807359450314947984840960574726443460021276065070412310518614996842395344054432326879127340737838790640457437216121284578087708661021180114828010874232880889932196035493307130496439300974843892298177913325333215021680151403594013638566588033541140824808581967563355471216962896280586871992969247235441639111032758038492951691827416592406463829804163698861306506730912726419736619859684923361654402999352356085280831927377378660088348844975635330185018678323921369073241727215574994536942125573163301983455768082783282801066562114551658339364468602027586413695224440039013721700472820493221111273523435104862818300192090964250973339322009424601066299506623426602704179798314651088770712286404129926444314214697739154528733106713034472451401324765238492105375300052139602395047690880898036955783827250698364608585455166914834471237401378510209952388718123219906484111718664197552083655671286207408160125678611090350993013889337585743469454745282289835504340900174221502615039553961063403287493804809336827852974134525819686006611188516099550575271859660998326635153118977176254637990724130029845604037792351031275002968149518822164710604007260100082987976343438059229033491001999752803648158223140990286614199983545826093054467460354081019146564922928472717602810271383982087933753555754772033129364992933915693932735768909209363840935558470967210646508891517238165222839091101677079458462210807450857659145662393825454639862290841904461164103523130353480836133578141210944284172802112022680383845861239554303403557945612677276300965551837505933252616010392303927797327357798288682478442154818624351707767240803980568092941415668601829322547553174926160086605801792994543720578179447928047384442618222646292050538744631664940668713892262494881714919198338239512780188759895209119785681319662941951457489154914738894615819980261505355272710262578802140684223735485608959759156680924770769903552697998174113801479238464512161697815732971833595254092282722330105074963804473857691201140061466763092808496073327468010259701748239586579714016228977929056969095020724361602274426728793172483672336683040455302541063360600312808032583357282886850070575679024770471941546183664605920888161617404504153042520776417812523010306109277823225831168275091745785705315102868148993031702067098422075564305591986531356126162343646117697336911582440378395610312812259001881098172290147808754704333522620688849028814234924438601895929048069173089488792887405735660441836928600505714435432545284645011822017459167092282860471847276679971416651162999837693422189353102764848582043881974745945851312397313188297395189523805038620292397814846687711904666502047339992723924319381141115982793809544679763395550280261043615782451722458525341330558871400433954011205189925257562524256695735309312177830375323279217561394210671869735139184864163997051007327744176953010341840417799333153233303057398761779141807215159000907788291011003793269494690237089649157161238614976126813524592355245681174688090974575705383875798060735739716947937198158387951812508241863199842434524838593082953952448715246155665075875345118898535729947880022257154590295171015931941789257740813187799234461560585702001795662285175259761964004707504584898101142640494887843353732735656616514554081178208837697135328059863611222206633612495494356898990842146277060587203097451169633443008242599618481310482073556694770491726323651838298765097034589929060440758690903822504677896727915235403720893021159622058368796232931893200208336449370885820594785126812325542120203498976267788347357826039329832607934407150955827970500634784215161883464138607237123070848869987848267855668350030208087836391116377040092579304859202277329278233656353367413592428995393093192201650407613110833073218772136401031475732019864181970574023950682516860156385501302056010427819031834207277298368988336267279592876619040280135904484406512411358926886848935044519258563231554547176595016164075402655592612299951327857174465895814431065639210632710381081537355643703323888736068172432482907768427697603495149016048895776525232463111733139121708781474983477205789780394287038425447953326916286397630296420282098179579831443861416667380073573366463435041449961569084825218108456631349241933091180309872972537320325149238286709455198908765647177689854570986436528097017539546206177038621840278132092421271299267541048536683424976323815583461895180927340502772741939582614076890325477709274432793073060994367939088558552801430819077040370996564184707148435294454897974265416118390136601930523636213764659131358393069804036065685812534292018156608970803296870472993859496039615284334633184966647385390524364045481726359329772957730619554723863865911134169116556671036518421278250955207444602123606438649332509242476576707872779820088287086849706093253719322981898814898493122612649233982851014825109322839389244911346962384464071272133854563523081619345116195164876163002022376222982484304414634375713948495441934485237185639147340121588394007975959241141522930211381754949578915929623971027382250989559703094540743404186548595238225678012666885419003683640573774712059264709270569837187279562595400396847975195270873206353707180369950897978000277597373507435266741817413514177681112689942387090420993347804922359821181436906410358677486941739827204995683182925232123075755945544270540459963858956239557797904275350897671717250005350709396749725312088632151482152931584176493290955032907235581616751312954036849492180440279622968604891652991866072286793479848017757527294296546790714642225051500697666244699692272866385160570488222946803632836262770483885564000156383152435032863893045482332791935043364410915118466524989058227883263985479068485747531102863431865425773782121189705673379583853989875218777293277062033211331578846841048144425406053795225157982321096098054792367806574559672184677577399747873689823202512603767627900727386395943735058061092604807933333710101589818130433264383704402566908152666253457805180497024697089298100738526638878355397982391295548704819972477901998652792344121629336902552568849299820827125083811216409976338235824945769376031013229088664089412097702495426671317748162098721516389810306969023591447313255715341417848445136375003899182612282698616313424260764047926440938336570535775264185906813992857812217567743764599106140369552405033636077207058092618012182996618647948181745064944724523995212148014694695766100543662420396759772312163224182089295158665460037465486830669408664339921919411168984507768155071861495860588468705593082113209103094829437680028748591773354545257145442093948287809699974976621985475639522079558158254792052097083134373023473955330403576506625670151762129270655235428950730129807012284136776324056110954281820101966270494152175027640981676073134388799977245823913254542366404680597858964647588551947938137518528282596527054807187912461289215785569932225176803094090248500699182414932442215632545426952723192512830288792012220030325507839828924162819456267222409207084322144625584729571668015839041579185363098490261075183479605061342577227905881943228336942050603048418632761947037565630617909368585577121289942482895106441419964847183413538527733753517122987176324649957951497132877123473685014656742558302810907131603241530957651142709833536278539215722257258242484867215235877766855691230894302705015447368266231050990839291975151168774485774210109151640595218077644889309256102583622845232150402099833362007141128664531636463519161679946066014839908211943994451885196734424947738495022439536619592141745424642382200646440238908722480885914454287085784421052534174070034377329485604258804367151706773975350602261640535176964033868282441386158351766848144317269407648747307588321496488279044827035639717540241765931111965439183798688769648578710295191681314325623772334441057643213155059227446814188487186346705303745254092934987209837555544190654334634734267107096808607000869919640351861057895286011946967068069331628883940278714602348256456776147561319723235387779277039265448859014371682726558888911237193677187542065109949906226225429174574917257231210224117923918192104107498678767564904972571175463194271696139348249290271665639550827136605592576780551656006661071508155357953834451395498453169129780745737329173256223590974746986800348375777501571239495870661268699991886438044870217877839869178787882795110601068667790503241195490627212352091159920249988537082129256933320391544644890202200647349098450310855276467590652857325608397522019612256634744401337495387185707383461347463065190859303482382135552553563300400801565647164642722538615455403573816373434358025638135039246519364425137008070590892840716072626364597862034586203418559097632405312277775688779387410651291387392521726949402060263597266731356157760181782509892041029637417292181720523651678183290940804282945419063317177741923217199793982148166651782892983961000604812620545624610023859306596131565591479402415691545304220950323277542787203797004971307552308490479045974900577191672546268797672739112563171616209105158684708022941160470076438549940010248917309670689060494720955959204299079923897074667659089373121539279946461067550713069023874847069059696722553982453339342962459365682924228505067409099595209613548684590978433831243973214911008650066364634836342498155999458959274178649437110879008269027539823069474377560020463913876129026673648982976136971916567276570632774576789393632494978617912184773827727352800059673909249384433667478547899573138004843986209511134852997964485258339611313120192510149637906983736049201500943920427856625066344263227786961591468487035920291426786130829033751424459587148148175857771469968184863620761654348458422822347676637650360384767709069558079959831476244068913627282374213334218655460971874675899443222504743208302061027132044165997922307462039051415082277973988517288545835030374054749217982397436678373549585131427427079643985054770015933648998074854875143717945451929956020942648114252300878535592545624015447016223431387202590684600823040128685810998205578377449661780285958294262778806311677540180580632075335852206855962883936603885567842086090485264581073691940971276210802199204034455636192190893677790531579062162985380671351648630965170174465382292358503292496921565007834740402182593364048566160973384167976910920925243401811257200415402863609338345710492426469901469465415742334489176857461782504028308808109469977856210439158398836882452056505978395952443518153525457039002236316846402213827096938442909315474126105137861636862001506726789440870293311869916321696528450172583428681893756373582487413038518341146399126405516182475425128168127518629545230136187611573934001182680948798682326912093435997653655923646345694232541581741657065446836703815516168513263268108016100979683598310924476788774011089912446203918900565825871505483234146572578380694918803005485587122854112103583198975065742200084761345761783852193567457822378257995712988912305138635102819737810239819138112076920535266735714578779755843922654466988155490347282237279562450406405557472700759134146346457426552648705801326112239660996816988722067349680665696820011138991576722492116579079884335655033572610199889953844955186112374366873140547632227555024641159116713179375313487369690158137021417130090863744983412098332207331449625577558369513138694924925034945991621159476642307589009775076720226619568999823073934791521782501775367781004622278008003271370307674564007855661296635762827047192958301316612712231876008872917391384625966833763688868115071642080986123429962419617823987756632637523071847678676326355586677287811239101145175518984759537687635733829103761920567656824620106228613106586313823146064641925655572974626094378103391768472504291823169808803079433823782010316720647435465788857148834303273083001984767618319928561859170932819959506785763659877569440701056925741379993189058675066945922158253696728911170357862282548859056652131500204318420058711031302576336272597539876627857344957689919781250449639376488045994466594754358083977753896706316886118163844325191530443279785801565454956415389913706953658877171355806246737170397154117425281933273130664549987444848042789827714305317893566787515860191749707241334513950651540618549246326788154867235718442814805231816605917487307683822082679859833177091199328055984842238624136979470849124775786674067766766558689986206307258888360726216168943436177301957795104340984917429101479156157454915184284873816046541249204830295575467881121299539998180456518830305837194746909697831338818405725183125151965658440470431930353573237267238805419388028331616615493127061552551862884164034647811025382920758843693475009851219961865443668654417226910327652819146952344971261014260273471350119655797632594196557867575151718515167853950638414684192627307637973238717069139009806420507504336060825331885299754451180068428284624222041992991885929747157770823951586920609714659492488699886338489961857634163051572515395276797865108547228559407099584701256461995874885835973227279406378888191418154497623456378874816610648622134227420882276573340919526661729694143642194164500817306264290963052885770638627341800281501848918732120836501585540662979391780860142873947889795151919419481706908546471051517478760605932839654472153176683760090148559161831013203948800004960925910379507406452363354556176763566655218905170157384218752131045693794583250284453472077537193512041443676047706733053261841776519020061855427130377563535789197980041219884575836083503435842509502270895511470544424560582370289060425247802343835153982685299407894503468626818283031542647420041142633690588812225645105170192238629882852351351307538260165699697217539204970002223303548595811093554014529870252213392037651679276612439201052475112439097967077043201654945750395773842647228758130979721408831395092720451674208266130281355539532079490206118496022968610798738662505630724881453255882598182834086093642795476086943729423136990126028081104785817146089101811215032555581141809675504667653162616844478500607663314754532341124256700468399200535785605609772668957479180194245132902219040440837121184486441923128198152594244341470794556055894014351361421843323841506542209070934906439802618262044510893966303103733062519296121543751379583220633584338730808579756256186291671579421978687933334343003667015509611224264579794477184468689361431704183135114780567351960788611109546460053669267463299893357817208927142528626158920235745079562159164044396220264183059250563744316207597587923023587270629983174000981681318638665877872319807037818786853226940615556355258072581255395252578493006794864506562677188444371427698059880367196881773851702059676192280084436386978621166333301023699998746154520692792244495445855037711102132824782879169391950791780573328592855014080044194182361698050162410282063838600633514978824652673838279502292967100157513280837376042078583590817367612486161083145935750500796873735703202034786913099778839969804071144899707470064456869800402564992872485272755896468519873033700965230917147687147706329625352935364585892833709238707332441565578958923723496476226902094566215961709190801095910055978280799010685599055369809196844943756153354055526144980294934460527941276388458053569438581425879612524681562078514645282813694948819524619698471894609787953172730047675381467854310878451035886495410346526951166982767107807019071460763882123265846199002737193551087820669281157601884929157733096404887197291712740838162628049474060943846027922171854308084679259440430596824843497203001744664560908807660040255157447717494081333079742700025693800492693075818045429382135246548032480682812569166665899042818561960231637318833739100386242326308414244191827796233032940139762977657866303089777420392777850638552832835078462281305876593534091694069757329029112756198276049878761364776453184033669413358289887906013426258062809411630956622430177225608128978228841231874737423951814528602763932708375593878812443636422341160301597388975500203076804099206485284422011442306574705188473440222968897287076723557504470049980030074353840849087294455077865763944186373425899212925685957387363785221591195181086389085817245116164908918138752251853717833174951093746728767168380581176278428598902511128230824289055087541229925272726420356927509593233223445844767691701555415460228241783429559374797132008874048904322604602213937571983883104581725117852122923943359385501115990907752599383080211006156264683220303135240992482940132607138897060396570050716593776066422082745226411956509603080255480592025180947244507855091767975938680824340475431149138559954737044911122093006281468381182803492752988896045359217919881067574657623344950602678378471124055917913147401224921078829603232391229869243188457006456100476268502528864575525663453396516932239778775640461400758834657938150010761070622017459461127152175138194072920120519577703678807544146063786324678843689853101805784353406143262878882108178829092178284687820318471343357755126972697868429862061597864355150318428487919133871044184395654650647959034460013848851505140638802699821216787503856306785194311693230123788664173526952609631916995764575153475715629191273600348929151387219166636863642690461653489997806419009386693413066704308618600650896217203578833234435995566604423528443200548085060958913028653788463579673776264645941371329894593162718193434500124459541206815481618769982671895832952605655728389442157225755808443830428464307349001105628175256730369294660630043285728170911499049813344646957748435735021032579135453958268726006694132502743987601434582868072968429048356330160048491802852286643444730630682022725614719553687702418112323651507423397378075502694245381725230870909609149211181585336823649233847967862173967431368132471609021767644808098505528023933585604208989936639040947855759749839466155475611620877740298453726777284633887824793178069579452502837581529836517272838793376351054419353634764079899350715202157688280688533281724973043905556799151496108182280920280655084259639159833272018948525110817846492983500746703952457139496112820465028098696474738476382861564232292661743065011677695932934681943430532086042324243083836789937494933515741222194309534001542188830652760237328314366199013056693603600235257556990229882127317990743181771277044346377558233202381213768898880365757795644613438440942257357700855578398748827547370118496591280000592364631339312425604162592179520540489266936074007327212156680660937189422959753520268331261443702445349515236089467875814977349462758452218476709586568152482157403643934417401053645124946540487010297184047708972766998486602176343929658966544350588069151809406461607091856094834836035462052202529996658173827923412789856536871930187483797693256260301270407534248002408933098917921084021513789233502242748501627776967824602963055586360589440505633868116188690862589849921545609868888626651603031451317841894558718517157256978744125240655599480570325667078526345524272912561146863298903482026316633654566940318381983358221388440527331935348370274721525460811842230925643386434963975010395412315441573810585610202198910535318725730841752646249047904065559983856118167181655013160937214661717658676611775634675054437157199046232661014254677413966176321188122816101582181437082719611948761748746269137761454716298757284718381990578797884864117507297588009778558336208354091836666717987797859115531736140847694383030671933711860549037360587213052087180801514384906263826564313206257712162141324017209108014204399959668053058273532153934550422031241941836611167788800017567575397879808401326167540295311456983981621744204062093816679914841521502460172327121077302716997283695207369537125238711316914323983305303349639956434292510634263010694487713192866356951746442045456851157261158460290035793848974580066009454294742354170487228929317909641143401570694321758088437255942204253831413975603663381846747115669873015978318106510428216654227673777292793054588779610325251358809367544549357398807448606053564198280212483045700101206328973320008226767238077038408169012471134604415212212872523898070503222771799510516097857746570695697885183526611530617725329918417237625527791867036048620452577553440542895859282113540274034450491548860323920166753774403545855595784614453235155035690170897267534897808560276598918199886753668977780612430746416467823928005436769931296719432820951086970815391189610307371486072329080469578970025541367880732561545786527736796249036172433507772726507795819332443294418271574507284310846395834783331927953926882957031317789877167538928695972774422885905744774887631053160396837769267668080593509683839321902988502626207740556163777456394223597093897806093015923683441146926922694401262704003563223995145323244825625111648260100097180478607885315032531932628976806158364219921610999613101426890281475218860595947338444506804333042058781740942435177552591160694610630322109099333513527966091478592072536789890989860890950692828986607250906878376789365152482993726925376657367019621182424224083290586005323010744354408938238507518249546977507015822807597455592532017824576983995770430740284444927259057873537787295781304533844852510617011499141376848025439587637958174129324602570865439943042438861496771443553006520420594561223527716309603724258695808721675876047066073225125327112604950055840070176710568488618948384129305333448713681889471479195281010042063510053230660054113106969539956399637517509231700963349191638164633029026252897412646842415449842502274899841559651921256802696685435534368863483157285356356987072471923944271276897968696088278799787839886268034278304031699882115485794002746819882850110984730829302619041167830651322337090252846659827015509301991659331135446568000999272804906572797475079898475284509414956491810339583519083214699108567033314372764400534237986366994430802956814379833025329371321090233281558741856022758163530846106666012216587404961988192083182449364069596657800644920329269756519633112496937449473784984467553584062223223901549404696398716399928522969409419042047834110200139485346672461084443091364030463453750576241865973407046301861889444205596104295261955622537460805999010166452656076434029305437521474865166502036291475463388512745337371385952484878025262684936872005303362641511848238856746777019697188374270773121459120094527589270647104523413245038475116456001777239125271348429978408932685871202238090964686780712229681887584242303628663391092387233512097903539309220413142526740033183063838670155937173803758877431472911700807135566931964215829962028651201850138840335600045817291643537380988448510641787754319345535395007886346459061411416640736589636746085941931277826990467660778684516045845851971279160347641797494210808085783729722806272418944031623514461503537507855771867147084545074560596183518846591338048183654755740737948075781899470783749119660694355441266059437461674155451135089101595183532988884648979032024156037046473725170462436838809402697774629734230342821825770718019949989786438542626965858627156132837715716125121674162406044300994807643321072827548603731388237802485273715249825293647798953116044717291185387229956153830228417264323567258809875113166439068485617466730462143559838111713405598076607482179732542337179397886898438262366971261459881911650617958769996191938508367038068166669926479954619829640556729207231450280111838289622869573153766425120889054155810529172329950413461130570490371225125084892759449085263468904374415420663067304477377614533290120714885229999397392341430605354634802887286964558733595990961930556854568540657440650901131824898455312614681852601980151873819669674525570053144367054574378136307710459625441264753556606611419802256143006930864754539046781634959027983643227552256549142732763344574848054470822291621044082683815815574337970265846334985871900489356923267908536524485898780434635974412337959465346954704090054633461568107061329945707270224071791873140911515609769711433845677536516495182016850348060868510272884201101003120730876816618835892739801466704604239553772114736707422655595490248656136376161874577218535336331979338244423751143332204911086817613860686454839851948185177185028960938408674483159144250124530881412839218898431155893271376689498872426321805415086279541742063040391770068877848006662980225146899961650859920945716999842307928863409593743923977576800135613679060943546058789213800469854973868285346520224362475050605621521310052904342100018464224755391460710016899847533014074748343711283828094236759614174677780603388346464891587808933432422686269041030780134286359519478504797670524958121081664663946502152912210426375126951182796346470097693019630003296403273340798889498876566904394991376697666591649596737682680947704565447150123221060018137454590010641228378847142061014390845113400581600844887600070411703150148381795811060065416161726402202160408235361479161071229002226583660299617203732157115724559398952693424240798292375229638030926893539815577437802051556638010053963450813641459107596063367460796376207026995984592062031604768412285429118147896411201444446067744546778115464166908077974289332824068828363376240342623940168575477666137263953968878048492103454647325992267866057789145613377007559782992349904105600831731026011372986139126731566547958856369189624470448897546782367351297588047454675038946333790782446982889761210735256035785857609910213806994032613414471954968404159784745510860914212268785149956207336881045843122850356448924301656035497872215523352603521368205563075669196083515893799849988961326162477964490987648557285403331718211887165166310832606146834832124676286276592959089050420221209393529637300816598664351180345062046636799451286304361043979946828635280992475637198259652879654910304411921681634564484040214709795477828311893888670762244997858623468215605503201041995990837491218029757777014066116297278589726472166740791706332535121507556157382301934662720014000928210237061592503044697072384843307080349501341581935730058305080906935265445205556901859606405842780096431511170824959736992668982824398451555066586188813750839285304828444512578111385978661524669477824552658939783322037971403631775955277870530841561558231878382852730850308115552462643474845769050794521067208214163413535920290444580824964164341758371874445851248017937072550067074061126834762507215280942925458837888854668698464414484328027542298342976048202629507645120874242584980721323755549290658623804170554506794413759447846429984288489850933664083775966299223406654694693943771761303146634448534392619546271406825958989840348493990995069044298039409608801420086193571233301155686811230469694386353616236270470920422025696003653834301515143123318699056806676153818072215890189063344887583006503631229582110745634878115854711914738689091490152425195722529671966622382220597626779159313685221724172797173584326569473284213149541571361357974854805211054681905293885485086371309560203507634600733133938188600340442167522429808919153900428174826776829307848082143824181506917143741479225641161458159170454592041812717106108783765335707488127837213335182495603648101294682370405574087515068762987635350295610843529655699433039894542578490713004055323024341243727552896084014038662771290568761123540821041057766483773451676467775905734704750924596246132586035346545844512378004425910045657654110527566187536326026555134254117826554952182717893200776830646131123690854515764520558044353262188601603161600368672385844021646441263403539470045606896198211092675789888863546407837980111752216462098794027523429653703430095922486085730945805855352372051048347248529681389952127273378161428124856781953925443437355626617225570288928038378437533661977255988806517223653240329325428995512831377121473380242466611216334583295462930878652487125334694689660699461243002395657865874334284278279153793967639004218048162640242884579617860520294323394274310499942721044987939157303082302046648430405267400952028886414689209784046764848694836807138725485892128983425556361591286158167789390410525387274001233494960288159743177831619528788785648508103465682068423510061675290553286162653320995941022988813465815181890680096029819526985166532585915396360729158072213097589966330057123990975578627008187971976541930540577139601194266891277814454825209428785405194382585994508155306727837176075220198645124821944429132109598402264437731305092887499839196318784151257501152398773495891100366996852524339501540249353451079414720841511551935795869910270376133613457373631971956121793686991622303365150083162512130221916450903902893401016952427953578366168561622238677499833303815994257873911566895605056625026260747473561597437039859424016390547800818612535437412259383419454561234331490252521885784839012930998589389244548718448414817716916467173474608668552752217592913003492125723342302186516924108455618599702556389733257596489097885805273120859035529152670727984293133904992096063375698369327662488739535876120050454698701438760452112908598039596930927254648500991589724899748948819246906981137057522932304605754934156585570839023168629445899481141933815919392251191117624486750573671605295764853529744164577554535839677414616062697551559971272389427664410186070457332445613416289534204916492584804639800466123154816779237968983168981247097021935826703533921318010718407852717198715143389932448341912119005042800384076984838481754928158653414423463196051177801397338251169448474585863168220371428577528382448788534626445488515072062818787170109458278144311850356757525768540920594115499078987078750538970839571991779125012343627712604444348717940811586387110009699940563852623290364172877944806275832683246059022501835187055002085561816944125683034302485530470754737554516524341400503319569648490551812332684366709937159885425875834829863635618624274868288312008880984046540352760311159914506878622169097897493385685890621388471083770904105325908146977082863621571190422813266856853942031185540766756436944557146550258754849059583061750466764281649710664520799935281007619809657357501264323823225019302952371162569899591629752898855836477208017302565876292913695971751932699035773320525135717490820906638010652616348042988387614790102451683498998810815847082458180965193527254418352188329056290257132364037322088191826677881962921880261402442309919236075609009907930002618890900374567995564160094880244981889730848069099914837240862710715549570385263188040593831976022025476881836264308812064827875917280454781413096779072594854003058242972584750586062605891358548931410138344184257364942951434805870862931705713377485352351542250873752918978495117521397974944786807119873697509187638662412530063281079747244191289229491163519655886040223438239204403574296459225049110847533664431687359506815237984981358019305719187773168866656338422962646179815165953296226402159460019492299706037411911388633347724545103581905103909830701682706092296275527699842734845135406110951687807701687040076413842617416500427553672295614360933710467757607147420912800271341324659080105915014242450499549826954718361444607822712936469558516523127326217354843656208508449551711232640201436543440606173084003394357463811691615858742615858169165474725080886109026338956062008231738181426973830304236922778092626317535158215995049873527993301883980236834325930279594889430520262623396003344676245591641563906616200903439053358417869715588936556137739700966861733333288933509354109745536303645984517658359012205908276344739111720991111183692666513236719648056670397423581791074218906304675896298997488205974876111443929824555875526508548264267049840322607407532209580432611642561532564467802660962110047008635078246953008330912579988375708141722936975698749961408168587691989341523829608335578297317211332972308027894433706359859261342464805642963149549163145479532471650823338076498837752968593230441449160730324553173085141118172035727166568579396595887480431563457323070022435010034847659260623276655298987761522513525727584755952987371120709933520554120853630962881743370906146527761898748939829760604318156456231335377205373031507674700094826312771113421013294014888481237329633716728330720769069883108412261379793280853231543738314539463767054360456066602794999620142518973847103786918035413145683347217827025409666990896441643864094519157344326896486915041632808686944038924669823180332360035942269815073116568266473601625688266227426318221305231875742072986030933623113653339369963702438659591129926691654682372016235221378995535643349954481230138394969057744781203497991637058794057551922643443918151165269104415394443472593985791452515784729767413219092903442644326220440638169061156225892504742363763420793742570914752708906240657180249132156999564063323575132305777735812643684559718242559958866321911132540932902697014012418649244403885481004663054210231526898289567223307316710439249828000111984040049414422503013807502203714117026165316312026563686735075101698326453067238324312291191017802652900275403359786679275076949668787835407831933284312814804224473168246967979027795056258239848250630555845483206814943123842618394056656342791969329978969633853827998032657134917323141831537525551769655051627205866003828957139658152319261610410827047157371632932205918648264602325351314336670915100480023344998051868929769147791835490246957346356315107435884792309012151328250712473886655354080263062986212931595188381312757886732357794367226804906227458369034074286456057129735924724529005335142254242214991948827084158224156126590505288058980084190602235883660064789410198272237575405965740908552552243018878920655092205819831284438492483087136717634490109162375069527062277973343549885132281678631578916076771680059631710094430511051770655405024638422268134659315721877281993406389595323569750205759476951669658143315664385816494606509008080797618307344806561227701483339519423235092114167042957443354241372250111057879761592814728322061976641116186666517287100362065464203931645060618904264715193158678847238829592236002458791276678976345118393896757853563569602726331705446919821535373577262193421119685990353464592431059961985122666899807739553065726901701136565515706594955574710015549002145727355386549662787878248344936738415944863061412679086503443909960935541386244237986565270069322942816402006288560268269171469960854121896965305782542396579374982047533775632922743979595238802536910867814945855506265889712513901340916978234338472215342698650093130324626413663166802034307863608701191006076266100328675215998770230901512590362649185063750659723922849080584458837502642570433580452507916471658172585686993996555846715400312422758563074678648783038130402416615716794349414050849473430778863615741369257537673198866164389010584973322059418751936293225202864714446067080592990138123950589708473759950582944919530559545909286377287347214620175533782884564433972794264761695606968285182815536315712219485601874325648699259566301852099112878684844900431793026842198635769359377252537644282811487227271157428348082411520713213015308432934213903661509965944335873203433364445361249216397473732750133877125617443343525866858856543871785369877992190979820427407394464073518441101447728289229610057976770229501472018778536457021170136256124378757007355441465829122073381816788370773614410062826792810039416257758074907324303779206679326970823361225008498360236482268103710439422801277788293466656443203181917546273047502887405518209494943001067206551404645696344683710396977726500325420444438245080503359774774176011282361406125214298091138414770112195717662952247339815457574778875840350413425699100373837259261244121787764739871754198770908490943451480471775254490014672746244157109854338010302950596798918834328675024308363407824165867025409743501205562399431224414437675557838606347078824483751480288026842431698339636009272469199914044670117629812376763247925995384516928935755215132938539887502518507104498687654446768275498678461656495012861826125753057176380847614318300072982716885920900229843609586913037539533151441882475066184004668119662275904642603005349111104180424582412813698078203177290984941427525218324644762880208076702071458357928731312446545374826184799436551463989997704431422139033186097028136163459370809485596637404178255410410884620878005548157832520689385385414733007425606129253931631425434189683864822076253979121092233970599589185713469075116536080022523124958005991322973657880788716745519222077012893095725852508066607018205064450645593013614566378707301674288896714777411771468757679663343679983737703919167352195328391560361208226064720852029441119759547563283348436517026203599647776601016741042672076210499272521677629687026924624233552824900639040862983150291207626632075413072082022260039366030912666244229918179303854083055465981188483798920937574258531290400208853505588382969731365062568012746227682017254842343842487069820996806531892365721199902077324448381869726981245584511283127107058145942130394144052712624035032023084572772128221341088258062350202970400367806155466682557120975990592319652211283952871253109722457348557956077504475159209459606819456985061700495012699626387206142080213625847120191339579038943075511139640645998399370678162503514528317094184635592181773793107699705007220726203120126788396713952667473966845386196121563316897884789472918570184373195960410976429505695518433892491106333727400266285022531793965513505452963361707805445983724181317019183007319283137794532651072791463378109673850490386507627236087165775659493169624295898881969492563028798419335503752528494471616129615106611041342488204278789887543950447271703420581740955905800587037692310562239357545157486529498984156771196308297460887408729357530061432753048516803991474778329255356751091706925716764954402955285818192612836658030176999308759305838998453634186118156563610820810654002863415475920667729149291754198235853905762934138978081386061859786953747492819568555751942969346865407664902670085869787074782509428886631243942565218043948812648823343195827417761197345211442336256059475485769978650456658084710205844955241787262221606760677348052151133336258493858387768862628725358134886338056636706557977519722726734171987150802989362486058983226802766026600914189984495748954542533199803381821730825194800641152920055482060061914687692570648188978560447819285289138078608397396560880552900763156744531247200429652735471414624019532740186182982837600988465237792913410748162793229568840195619487828835785182380198527054465290559871502071976921557508558749265675266619225076316007616912666304134011307917475558492931715295597540318243148683081900062212519938311012760463398840472742960241271612647774735322631327101231280939888849741284084352501666893652551814299767875357597217270830096804634004040054452812905480852002507007573544908144428799118208504048391839761906201576221173886964509022769755483361372747414096955913258620565576654198565669825543933665293313799404547032098959141301324230463643552832768411961048475471109800163393033269336161868503013818345177398761709472414522712995307402093140289568774750783692717701839096722214702243249574135186071095037722999639755011679563400753905307210339504774615678630958820997323404570091565011522104598629260796730762110351383299975207846201124822724733316056038728254599972496758747613726479518589580566629692500609821449405114617842006822644050653057492398488642841244937371441457188932207833348127586837980208334553767315974362763476677146766618260780495628333138687507621615427102338543238447617959563365627449768913563670367937049036229924196693071166383146830566869226765268990411885995651424705432474242892738079927554904655752339173266577162309626791871952214902455622913200448776943816415680136889780751631880183128951728864489653563371495164750570942347352463673201462426819735436404432152961363355629724243660168806029232957258563613147742191269125547705893972990401111775312258440146121830408164047588173245599600566859657584775518649395802215261578202686094450347223227184204591630210569901778206378241382153863404216820772429930796437243558423847009698838781511941382128975449887518620680733319841879604462520115066450068699153669613031255113279255114676017285427409662749991224297324894912113479340585992868549664245613189882117159780039903483886800343893236301921660016910406757701213405277753517369375862050118377696354246934608394135869861888464898985917953356228402461216371131743958210807968767911316318299552725027127667435463531133498638363930275889911454942285837937855480230532919535781187654598938897822364671767650950490778113043852748416812899351619354446933528232424873219486173405592420169016078750717614289689488129552223460995760974838467568748235625940984291088037811767255433808578354727731970567145175757610308983558349409943469940629233180240602370090369090854269733108278975555773866952379417586173711402842300851319524103666064650420377842581898484267891347410356668005208619875722560372431842714521210984720475700543459004949942728460843713928462847913808772825483777749590698732212446837765006987726774345298696687384035501253312036882670218968759500465564360431597427634958764730043523509291769223462706400787892997074920511515502308179699703834085941774778873720909465120892473024655379199643857221324053500271259868182002778987384181057216847183632802460405298880240896458683857221293832349986085929457489846856447674303119260652347651617221176415405933291579994459255173994861707277070053963338506556015059232654699968689711100486088228212594499392734503325055154318006009279102687641310178061501054067376643890723748632647830648214115174972915587979384382474388121944490873744912005949964969202765031485544660960735447269209397844417945812642133646282929017763030220619321150404161615792743576800922129046817355843848987384068048621731504555669832481645681737469723791321693239321667855836479052941642919584294136867002378450699589366351855543865470825746753042318656996557842296872951306056246653177957198413351320623567519544536212618024959594528138660694601259791491050422537068922665695821073814215215227764508942545000992100285234169880634955810817553528008757700935647370603105617191565227227382451741056068156160197629483086613965056794631452485973471188378823170103075047851200315212542255656322489724937264694001945767734831172477047972592640168858976807357621177552835313697585032010896313574086284970583392510793514638295685680900790780190412851276173099567051987007275773274930603454659610384513299946372161881939766465575698292100817578885185803711103702879072309097195602377495372506157490949947714295836700600117856819731120168705392229896372847680008473456089984292028604917792754555315319069389832174508262387137976131942442377304204706709919119757013217240574970023863957970437512591873540522593476663789733882373828193504672199633631224701879739534834411523256231503767387122977763619461802771953306560848464888935496098047318388021527058333227617543016270074875094624504542318955441113021448923697713334527461256197794759750032690266739541717577145774582143929456675172774614468392507880066792258391624717796728828310263408501020303253593816660220191311169640891088610380857217370861557603996636158918996267875471445256645829348443598085897388907868123880423992292569980763675855755662053590989373141016021581957831610204652256196006969701740804537545155844616528374257086277294902713801275457060394171543849353318121621168591587956568484331421828735362489896745484424559350520932777557110934829535045615820393360371836549551100948219536250987648554694727463743320575936797719082187315963699975501454067727098602779328991151487520387980007783576979317841156471846094255547936446179071895365293937385832652475875528329087160544342531057120218423769655399873155795425911383042233901810319727475541838953125354228889577084859371026835658694309646109848286832217044346195863614327425395289773526948440839312986886481467075244333770877672674500651490777131275573200529054050746796920310757077451376983986337509089340531796388570654418172390185842450993947812913906233783980179123916289939737622941625154258952686924292115508463075523670760586241822368859145494844241461268149455319455757845093569566940478542464455916108350099490235607870973956538826186896576681873198098776304563693873793063236402937797757080881166665408703139317735159299539003676289545179022291675464887945134221755717196367344384662132899438844951399647980880146288254510483347166243580382107035187241724701845910533565546619323095606859034134134983936822478287414150720148187761479563195002750708713150723785102541361574168114084061844666175518018639559386550914257017681297683295489375728399083729965741701891378810651143779374451139523819312981371029717472677268715858872202735538055933556726969815688639214793796349217709871050603741043159060463354077071753150491577378004083169464450493649232522637745077266477722002497176226481801034105575523087229663901844124000080971546167643329906973847370524554743885452112469327160595750078933085997075818725061321538362755955663013563115935110216280142493659449318624318901022304870979470092863834540517611276648633246491455445753525670082139580418093896555648555139203919238633719933611404306185447510787289665782789349997591711487505746456148545708591005696141156250059451735937805051270804210425025532490329582853934728153349291406718785720700142778796534971404996325987302532807959104669240221630423796852334678639124160332985454185726141300897015576587299199224106837102006041757677616876992549858039816246532682209633510097003344232531859922023422667313737814267892603316987157746306969890194920684144880102613558531269079154512168363419747238498830779284412359491080976296679989692776234326059728109421372516637205066619939571496555265379192740673390720471331984539484260056655061006516634202567811397781327198934901451214515687912145652304549763199131034456900553458037985667189066728817978483398063377328105774585575962823983305989824849134515674852390880123185389450393425749323072086941443060046124713620435384459757006068686647958869284415490740870471428438182128813281733700841785670110186323467625404398860088239381431310189776001133062946344901361812072871551128177108164111326950993444398146436278339275793521797566716141279777731616736938462383596695608975418058333465459349259196262040823167611340621671012826758840046110001504977655450974905421544683049669116979444557715399398158244178311040749769584006739626977324820754879082438426707838793205121439718641187897913329041107384044435833402611190378831050989893577545036443357124808465481739512471938270747797507537309542072282503022686474955835745245628135129366168827814403457124301760746723211995568383268302382717662565259652682536242954224827203265366553200748030904398363328371642369418685261045878712088339512351644439880870411053580141753694604973639052186145963037458637617395671818256047661047558677006636262633099571660098078592117037907627972842977667147982605085897189644041006148535261411589872150402990909951308113880095618740348917024132136773130296097755353565975581574079464184689306754407096444203467928820198651613890811653028921407846535798212211395037141455695772583686690444054703305176668950671237898198074222669093554383298696434934196340230178886000965243925958323625987720640082022751366996498576559333272783091208712517335345964523252604290872301859210315670514417991150597123914361455538625057795937019839355264313622720048835330704805566335561299926383691410868507008301039048473515170411847454975744355716788660647532147854757632930098152922758648491371197270966936285357877749032623772496407426638995152317535586100445632092704255050560074821000965312768505697742802791384502511767762130601882459155933498860883431915105875775504369995528941109283364329438220050164665430124682633646750485310030145514093045460307429866400611243487629473350058357092149141657945705094778325288751438145159953387585972899422349649373145348012402895529282758221537399106077066382594663241227483583976520398803666301994242067729906101750212688543352753467532531618431030212243683417911725097334886446258146849354706948341807014763796247898142239876861131402279397212454769798177532622543650908988141738968811567279008207641567425809112547799508039464647467513412090271542631214017137928563512664212474103274283403795963060140768122468248028356072539416944070586486019577899047205577018890461882886801144331639167572685942438788083894881380242759102880830769387755003410911024496757674996888589077767938459998144793147293751337809839655865221433304104323319168649395093475846403745145387588321813915220202928419875495698143055188741159366106341221730055767850371331029923530433571531840804085720923607120439633342974225429814700544768418949237887670677630430562385380107329204624410828542899610074782812376641958348262916307261667723878811372951162276816452096909334272408650376390469610903563569723004221664281797651934490546734919695919956380103634824372996918849558890402079037608905802220238798476142634196568315134784035759596398336211724365005914497531557181896581428533455225625035371316366418101056998037095197964978872210190315879220196829227354758533496507192280207512749593756328678859622106130070369679450005645635623428963809130379959326569135067751882160932963400170615557971008141768486002639863149014571547193127545121989448593881683691812657957333510069300605637709638464298207962476780806480590284071551196252465101957119514169831616946065297627598812483802958621212800022304901132861561621991030269951251915774136436268924930074392793562870201972600470826085810702652321821386152720492587838038862195765308019215451532559806997152904308820140674588032925439969485007273512055516222799429678688121837948581392778054628959483649253775203145167846519472399311289120016718237175478516326618312471346197033474515152426138711779495380469975486938820919917766466648325479083541789219697290827428704112236849615651719452274054768223397410237502629205182565898396010675218276194453097902193543499151631498156808215227029594484766959457779846400048462536216545945738849392831256123177885712232151308821350841192339795960336052366739614719446179983549838388313740092108194685442280896263983830545232147259240605686177583640665722838733794390926969766597019723564104520347731981478121829219855552151315851241126565419141373897809738355370358219827578351032775447123979405255638334105036903099464944506827287016033899295461534061921441127851093196179990909303507059484144653120480785189318086747359066562451798078350850288885905794442501352019632243653839641422115146843776463613273340216734432930579657353750510896210444883774743536075769173798015193297019228700483015321210763127958769339240637472783368147147800924332940094469459620008562056735729585213438995123431155522465637991944840058555780512516780445210071855660231544544553011403503640597706542427609353799345719285918251320292735877672755685433965627270411799735569316894875103943003170720375281773007799551473101932331478510162799957493729134781387295977161264643190176980670171154922609203124968625118776302979262197791446205343143356777391512711572050310207142021978505908051795628307263259425156786857960050517111321403168915948374178263610064675684233192121037038813344636958920681337702215240155575782232116775207044227536396691597450272505156609972352783156002725016590664745887151639720620659367950493860311436735692574915261933643391144813486106674841574267909672064092130402168437029630072717832021985722978329077270169372192023925477386315563540358180218547275475680724859608709697054129752625929581196104848732692240220711392486318184845437220045436401856958470654658072761170623280756424204436160441002853312922004930893862175441381657378039469261565384498689180082417750444899674735262272063886054728516114067551986802450159805051532407746339001427757525366372046394064905246636615406996819585137659793677519150277835604374659289382389802766867013933347540253827450760453453670302066154267277830999715324308059047105256529691985761577607605572238634468543956262678282416743338620921997077980899121699356203626917204396525837937758168879445916435583505134949991242038134477763185606219351701663404901965193669173278666306375448334735905447245550351381547921810755598526514259529893291900979542434368891290303481247369045757143879316893944711913845778367273409969741834284067195703870379748122042452628482242424222020156082283989037366378225194002040564456800726633202341158915261184237702923960447988588575472092193397736009021761506066241976087878620306133707040394108966001288536772781074478873425328014005524962460767765259886033372961057967410172614912817715482768364784968038607471475425861651380284896397654197163388436423914128938925887077482471122844157367377976069589463663805641795220402372040655949738506615095588879898552683122419240521699649901305538859971231543180097083038830771746818199477294737612491569312756577018899686226665393140197746123092237559395766457054743149148767124326033018846647053159180870341885069319264926118986498940191513701055651629199650744548978226049266186989534957390238271943545195552485750968514436477969556944988485526601111350118649742955544209204006914308842526944451393425909506352157793019342325211925590709691060659420766368147049769466013034161591477153061347318907045649528756314319105251128119051396867495198094790659608834640132901305268014660186647150336279670865065644498282706184446051043850372508934239691904031935416376177922377521137612964330451855314525194256391976210305453699598538610780117012735664358300909744242278560348616294173446284923676147193075708596406512971236098801846055714805169933464691795574719315864335595583518957294485422037435859263028503568590783685620667573279458130497323737818722679224784127398757604364795695711348664111802787776050125460583280638111413504005150424283663295651567667362573275541267264956611289856378651755457764418131672037766671786920305598659152467095573788059815895186815514616339419970785512916468963401759764918623291739350033949132486164037108938361939671682062044230697304082210776346624181344198830955409900148264163136657072659675164210679257442452245246514816984534469846282086143644125904283596155004800459268729415975971092367123113486039477645388424773640266944226910529078365308286675194637954650798071939354509420523660916217105543203244546670334028114266504723125673772702526798259176445091320301475312805361521658284461441032859589492796770940376358103038041544412971400345919108712200960938545190875982452024026954092798602023276136065507800037205910011926327734787830263903738027182749073084477798778236702437250375755235781285711004529913163685732534498562856842084326877269553330417695050781928320726675431596884057651813292477843620678590927095955819717425348360531900620501718810113232021616054896309429245300381495866369556195923746892953022459491224711554507192657603251044570997397397934405566023546383536592824158217287790448413112568583729014248122623992216805634001749779120238451531815833182649587573683651617579802329037812965634626618922634062935571031300915582909716784040826890850877911957835363049060943209678066206633900425705518956930700707368950075372404045129004995751448938253518616020231897376725500873779806376770942667802364372726374517640506635585864180354773477120039660558345760851605545594034774243460655929191335784111354920048387688857549940394766846085652103534539384498623843282030858306929432469383281920604244894308461145765081362833927279702300407560953951254957026008716176500170758794312927769205091431909467073037292782656002389010896295599957469061924907963143003541295788266216943838818043398093987179874988601312239820014395137413671996018068393490468513645068744634520227569918927444046498785923838408231817568324807439261073753979851875967334705002279343334692064449023040749891251418319148671090188998404335670662021384035690644164194942262851469756231252697914754349863551586685302566924318731652292417855235477499140955768989078789481190930986708494953280170883023765145919401184711807684602508617912745076526379292229683511346598533035937343437822634944999350352584456778764094082900457650997503520465609141248495971319611323599182488590062488021836542549266815111422069956318401198346304586430628708016083694538579152396442774955506849240323970550929966294098514883956885912514345192754725305277192858283062936877121724013514252772558417379836268998710327773981590561232825927068382707892983637694893718331237647924250424322316685002911171780691113417595546836231588900254807708368334651697013196391812976816175310966103802469374673405527660518514564658870761148961862161004274085913952095124300032245346167176612297180192554119137249357846504498186386995229223126583629035049203473344632237275838695418229162043177587679839036005863640782101998818867054019610007228043706576955314049276911713528140399715873675974927908922950850988696421882712309169092171435399834838959121529162229098710033392421644347545227155570638351604844966839350529890713995234158205502409259009331206264252860163050915598184851203248385390581301571892557312339322235840251978604326403518827281937291641094675587104714064958579908467269106714797092730142845638788867841661674990833438359062575916208461680227191450225845933082568412574821481087364340911591757427650761083266000433352057645239538596786890882206256987999636266675514265415819789007850397743107497734919702786692152920466699719907043824352833951017843219610765296074720511588488401136003643962089429989879534820973022773073083830772468038583120183046760666185216618792429355489270193202994800094376948918403448443742344492390356562151507148918470994407854876274159268701792438192715552128867744809013464941020524914776256189716509945641101470348876488254243568760602245716898035590264902348053830420191921668789945087440731360013611616677535651106019845231752682212779326025551466648335914158672979403763256866338756814414996418504476476713014331749246672671864614629972725516379908896180729305492942984233380766942629426066844332958336212646239246437442881454596359489706114860247624867432762384894151845775834624920379923015162077705182738720940753634327766861553450381401977316000934620361564411268543926630781166503945425569790402294949626808106197594127410119428227914083492751400837553657341799842809423570388381456606340119740806204548812229227871838576671880647375126555726420982270180818841885588237248755402578415209867433835289842867638434841625984003692747693221494203137237229708831990538458663774627056555535030329984479284873832832290229191894712152647707240767138390357251061876241867671072903993248237778710783143818637521897609410126077011404787680609045845807236909705509266136985819911571976508390245668461225286105595983456822804387479415626109734827086601866565672813777822114024002411335339955786133001232842948958442642421787345921694167392406628213053987460711009357593280520060674248167284772718421617952836224674957859681235181385673487970157005812966451210499282290718766472028020361807918493510837844236547363969147501269846992702506577823573831937937520874930862807920341496791867707557257249298896390292469496993344285011365503056467450618637830571725723074901271922824255853333692208359919125322917507473426652399891186203528221191761934520356991793924775761703305043133907065903749874259665810998395427867511422033443906390867487348373168269320071773975344982121205386530194259091630755271263164372219082139025409704544412667128218625211771144254310822527325652010363163589270328045799874265655140284289128633884650874027860385807981586775936077718114640756199469794788568144548749888468987194498356122554230531418242954988807770679336836625362709859265562634876130426682480724648545087760635113044771823797882107254758972431258330072928364247664707959376241165837966617001192986853459079341402607770570086160558114536166718427896425395212929675861257727979547785042094326645760901837122205468179242103636754900847423042334911471086872007861032511223399089264803686833715569560437893506238711336974445695156887824553891499906122896710565739436399121593357015050689932837915132273603345940454667269746762173272862425741032860454922443874613932513897601849106044182390031986784435535322210986575679115456576585836945854100379520271792579238202050425548125623385025123754365233230970970177584015675912196058085913381504114374513686362081108814970227166197775677096072856180106383031870787323869947287136457176755579128701733376029506024158696288423921502798786869605523427131989166428001108836587639745163551589100454314322634623455460801416573457381682481265686967174473696523213242576760568248968977313214973578747191329707322490594227623209036056729603554740398031242967281667802866309275818451844540892343194197785041091567565040012985299885710324455037798824379368388712626480264343878843442318161096832197200371811501164477188529716750176079355636698647240058221815737494684251999307450298416361394441460352996163851695293879689246524281090076201267726096212026086034913791236753207636927235363355212916589380339767994866913264237883217371729966155111283306396572316537998862259369408454554631464474467832852796109254522796970827436871456630521117670672974452485080745546994270507373793865720155749535728832642134556883182922606053117746914152529403367839600109472597862212031385079938869651940994236861994316284246198874714767724842948741687813031133291611214654875386848770735512863772128102616336822861741522849182999716672297814867151807997631640420622553904365705657625364066153021405122416949161801093171295399062405216497865337575892046309468060278557280020537889265926752049517683698833159665365869746312926565467033674485526293728403051388496268238651719589030071154089829062209162840339703106573869300323355004906292945724227640655319932412138239300175166699770198357772828851482491613541722232169091111610984168139566549917039309716327104527841699723953818616896925151227264969029913340287155028420794513660199262700191364822922803660649447115095857354768277568217430025266301568714858054656726286029165870908391888738877366576788882345107620505934145596189676506919070084710965037884457279837864507195605170426720077256493758383218618276230487827095761750668996595203308176735881593848158997291036697570211086076450677162573298011262435127749299797836240983986695543314327816083365241424311484461419025668925957883165643542831877483432807981588966755079196633444916923734600652887344817883328473195970511903338757693402797219140957283615665264740579449033095339077745518810467402145479956857845859460009380777653026353579701248117404117518933309679964828267632434098672089549587080183707850885980902029120406998797974679523265685111253655833105619696138134030752610850211396582523534651440161471853563177956826099401841273613981024732245893433098048983977017524831210432823653794589294999266123297532334083217103297277592505927054642799006627152655517329036856462017810645032609841258057332962316774912428846873931620279882335418640576415951588082955166953031803900321483954466828340917937041164608158145452371946950290612206225341298577176685793632869656355722784079957078874427368985352960077934875241519230539003088051099038730387756267703557510078200037243058721056882939746462040028344641851086747728325087292693824886037057072774988568035120976558592293110620959216443420792631995239167156748732026937805073728631173600075294389325648006185574358210636326995009087656763791079056595461440844884870978317095362903389269649450944773167326278617856449442688810742511156969057992630243542115425320886627974454348158678590695676293650181596050579315387319918049042321526995333064791823443342815406198104961804714637258444761452904483105577073033595619168278548050117954841934915578076742137516589498866282161954001577067364398067372279005085618024963259446852013230705484164281368988963718434526286797942423338571162839156852525709553297075105062230850149991500435480815620739081429683653773557155700048776528208434089730924999588215477484837843226166966206528062025944505144764405675525221984284814221386261678944785592861348144211185025831244157352506090947992049243784552086820914687720150387807865765167895216719793466414420895106507236300293483729404056516116264842219790433159463582792443055067263931357065922212546940293476285819743500404475561447925276841184147587820616774393466241505108022930178401312207750861347420664206402309918119190664554265218493598431708284310077046621313804162160587710901607023647411180092727161593976802208757447474659626752725796600967352702854382913242598492932549592069114016624001593550790329289775943705031569352419348747916193358103642046339007952282734533741845616135591839802667751494363674932789441086745075161585540326591991611795460479178629758577935209523927032431722496474826755288991786772305205813415885357001417485720273412379731718122366938288000778298514562793922890337681679953431158971210585740141534038616664751421004755975075030909575319892684805968043608317094256027292355252740522546173625704667509286833772630278581547306511689437222098870614307661109268084494670798129362377184419270707883068588731888453023773577453094081965380872006769522406532376506105329083349523832583820523697060990780896878732477703572742280707870230816351786709035220405268088165062646814334082939199488233222216204019050233050759501118763196422131473814778682568494528503852993469880715972802142590646899388146153526816041538267405546586445924758773851289333482734022306156824331627526578615700763292130515848942580324947279509180367283438678520616007353408935074834594915671636833845707906467569771452203110173163090729899201120939434072588574561093357926255079063144370517991949273107610174017435531562673477675085715931186184649920905692957139756501311081342847820378831602580849044605710749466122297617095846418629644554049576100215625093453807245535333366022393736432509629444476706567787576083266796439321182706965137994311543880164164943407256345673131158556059485551336741884856550341269631296770801908427412502685745707454618442612172412368151047143519477232475208948326337362288581252639057930555633736485193407328092313295201612639528080026128251673283922098822576508229963959588428524620533302904498100376086428329141475082132267554441827875369281665131966520525692407095867202545001272122404137789106734383037721950074830609293317102905592183190228845254005676088209622672341862960984731801075087298786630044311982974445461441202429808567763459271143644162255143607326123652689785170290405898059292188877716342814914767874410210941214488160676571599234787713227520076737993508598159543682385452092228559615340043105260607465122404192364951359242897857084181401973096790905848423270365030698498686732542457514039923159838784330594943115136920947302769069270917748076099205850100825916023329841610909606604161329953688335139033155578275560823868082991465780085880490605330408963908025940672089556767886707740306399605180515182287707103290723634057101923177411153405164439282840155049535326173020034512596062742598367826370872946251384816458195344627571440774801285208137602129644951937878701131428749961685882647665892985963160286700855958205032130228002203555332470270571623068382217629175504001959172217105999578250738285921793821381365092637349850594054244680070901164643357427847084829911194981147217532339846303656382026537539902367480043557914923176493740405491788313925044646322346716722134687141831669075880935367369986017493582124733184008348514609742676092842008259208568193443069556657896299028405403805637620528528864571702081948230596547932775212773935984329667240155928973012427992250024969260427246860168049082197997893488451381057163839813324304448664669407451355651534463103393392550133179085559402333912474777739449237960446157681098998888095002451358336674644322780353611201987671226688418060729008848492900858514255773909719235713970025723996286959666854622057863580152403559186703861635134948313784804666523988300941594415245571011695273263832193883348993772955260400389567376904368080527783291591547888499308856757408871716162395727479449698123175012345873873548768518724836380230958601236319090563642549757322899199213402707293110990097879571428480883880220485420264501190828367494275060015142188680592300504164192087926167525399447898003008145023056326637634371196373000366254632985847511832816204456592455606126596048214839070864059818103152550543488705168174762024711570869091008326268077619487851277141788363677034125310205665056567070188393113851036400730457784812585991752636340606745184873768761406315374757397037949101061456318033569967160068376826280214547908871096924455779878701340841616313907861711766486608048588116295882963727841047663595921158343926896069982762347142617366995144643376399909807919210021688487015292336823218207445685640036733810144932772500797956886628469414044151455017305950834709548280032683414335599281723920850142208573461194546961187565882512005449677576433289544340441912341648569837881721920999420949301172775545076909892202454714517525586875334424460364069770704838100081914784226118270263873045159663090304577488767823741935382340115823347032971504660163388961176903709098215327875493565692825152065489950826698272798147018123008610400315920174774435054010908383387533147926046273928154668165756547496535380715241466219716626248881211977488947750839652720079479643723474170382161647004281384047130133382435092225235194069501155877648419531019930263350175331484392684287318328194588753790686780634965289326699144828898997711590127074744332827002929787344070859072850615288168175216672056101874218374060493850760606015785978096411731618409218078152690446170019856283316608828231495910911318867198153616875330530873422159511055068367766803606346707621492282108186929438130459724457635868622054509810320195474492478160097208472478175253030737587846362482183981378627700198926674395024200401746456027242402194678167555938606036751246282566897391247495009703969521252593293655406414816476814062223500673122105081046686938299289004233430976256853686432864750716398737413926588677491412709440381795523539344372450431911013252162358968405984905222126949362674583284410874242416054766748980031474954488043295299652919447425651103854714211573852303184094451088782091423963981451179160661739686412452996963062388432087671954870732410435235947871205776067631720377234468301999017901812297933750369354967527970952805738316794660648881346589208055043669904160386650877407553869958227900586884767242620164360668434632774044589761040321929658317124610797514478375010455142983142652562878778683887615643803192002243560076078681958788685660288476388617666838117028974246390756249550367216952888544151144820902479771225243587560115810339417827579681910408893664387586564597130936560466872154179715979007076392823870028701221248351964929352858663772688403341866654401929125403700378417988834937067904766456213431909847541226263599467525836440586523177695060680534863823157586326387272725414876711507899281638773812209936489111137450394980587316404077271000953327626328450880699444238134644856945733128012586075526211588148464711390682197071935080611251545175086052485032891525832623065358849779660748568473510235658278147577343047619629459041724772378051591744870549337753133508606649699725862986773604598020079657599649973300367059127269227808279389962675650560527011005589293344039875581700224174303834629251590779354607882529402607662621582549379527602826728557441740905401656171985699487454405456691662891974834793747588784301672378789248349371366108005681949926337878880116827630219080107038411191656675208641834462206213441248908221330016102111841239563112066781059175735434986934979399298128033258051654437300576876797523124532487034292158384038424554598145712175208761029526758723378894346600162164669840084498479432439337733530097589283689805136409935855310819160017056024429800493296766561912192342179650746076351481286965736731931386214602872905437767784594912137511397164606935918951558653899273257843161229009642479287726658809241886714283687057358478494664106444969347054068090815391211362002132080403507253816777402475182599679410541749202222576369632788002517603714588668183226001495693301291942364848431005226741344886770950391856651893240636167146834234876086245624386745280212931760616678658040149369271803417764614756188590437448144823471122131797675853443521653147648742116478797603756781588893273975483795892675085179421438344978480855581002829839398788903451849617574358927466880152628189066833179442206361558734650868853948504825340813109329922025214978022317115925962990340578695456428064951116011236292148077222556272784217233782910859779839500394290978464234218549676273497603625167198191308909928580446919376604253350090747639880951736338617437737734049208654030475748452878752400599202930017644727511826857673042215207350760489505315392655183132895051193901710913184093495472005562498205566817156215369703731699477707787636041513030789557648945484351956947041653456944510190425377322539413257740246609809213747604273519511928481439559456711351335376143015153734828707359280980964226786695794507542236955275190547449263054740402705948932063312951446967199824333324880540346695858763273282420087057688847450638490294631938449105137652616086338486947226353542462489964883171436618792532796778261298316002428205557927874548338647685997855383978931012583888511796517642724211690424199116993377675170906845802745318763615660414721567903018773031825790787670942558543040030298720723397238502714723857327798431627466202331417721703556600712880537595358969476180222878354658054675044150119758912960413721981629973245857367761743723476056844587437834264463488909600125751711336849055265500872264190329545422669283176863984702164458730493278491840144997578256333601028468786754379967055820574305394408743160415600192933736743747623079882899671853925491268685382981967449767779382309787516891645628261899810680993234340671130096036600856891440005899320961605880855943468760878844863485650873531860070604960263324577885287018956987398502603644343785089365188538080936065277911062839588695536478836228905451684025591441790225091203114577869134407349824852688443399401477299200769375728458749571708533938698011096561358711726197515743852508724288697882630140993162552168116539015032333332564908572254335967832881453424934280066543876087108571367575968579288887617428534176535172699346955160921259739492755662896238449089001139238418507166547371388977926940861131222198126505232827616456930025935358725816660783006923405351082202354433911445817490961382602255642436650905774882986471963513055776960422850112840671538109290926297365591725522621275891853045726440746686806324935277682418842024594013659277258188851710344944489174187492528417745729025684615358493598391455293321039754326995223426819109915614293532466318190135598332359308721796502560722148776362111146479286886086170338217161425038210027547393421929012071196870264369713837935165488305981064325033017039332380274035636873293024946753391502208786149382525183070378666921026637147754527458541809438470652824801386632035116856135972877802371161163413519152034281128471775133304505855629355857443311215262902543701532239705763070841309288694561732048728497212673935446180292858115689086304818877515668717018945417929309367019536357818339067340258709239834781451011216346452340899730959876777758791585971508794737403027193649805684047123803766209067079770518944383944060529366331817831280464612288944272380925339811784402009260020856236029499947222650213375617030446936734579552586475099619093602534358105223925624343352512125968105031632608929993104109537578131447034194045683971397398046331871329797601719246439058743207226785187614303858329833362662639880724016680851308262372124396986783300656971979555604659828696534521139612696755996922568008042150289349000363730355168915577593322135206041434413892094234090770644730700412725777711203334853585652437425474197075378387184304758251128566561665723474348576712269386862934546781079248870801350850549134974027277928804372786427856785984046224987254126324838684127197128848149765594374903552914421435301960324610691012886714227493479794914543786171466676240889662753582502640098291744333780541613873031980236459596951953377795678265829349346264779959995721641437056440451296393346487762699102287787308081786593778751503997544535879344861132255163716670016947393986102700171937122597103947132267561160679866696217978306667088512426597671851262513765386445371122406508178118625590956982279144947619919692618384870020209591348738286033956747262953329933360902143503856052105046848080437569944082250032776834763947919903272401413402101228129204010173313152426950623074579675830263057364683936173645736802804931263619305392309944778423087207285702661002216898819183658025295390655655103929538933490853873587322408518210552951400450719374391519638404935493408221657219279729703571416763896488761247474474863554819685307073708931959540787646280114354020495625095318244899909041778731386979066532627545299260045534425715187179732633420838162372364166159848727471591864701167671907805298537643870538816695788050756240398853474705922344068664685306076161770832754266039319477897096019156734017387972779898616379040317295369974853664981501874031564413864196314937366721946792088245817564618880234199924287041681476723255059217951234417385145141541289787836887306867951911034319422886077212122559637711140409204809197139822551827858633241178075520319166684928641752368466130051834772909569871371647632346320459523748812829566311076303582101406984314590669582317609326389382939566555803001962132613226793439477071256366122564852075838002419722680697781894808554912745048174989647120815747502575881601398219479631975200107044562693189085192027244342353232882884552762381514319029905063324329115407309551039773734239796229027887084450991025132145132076225344186172238141811138381162363060306672984732039379892760140321752719196717419231731238825130892015191005466396263355510184570685818201086605224800206811564286176863521288905992239097370284807363263307244316191365649456161872626686957144881721969387517140999860403747410788756635574115437391787899572950137029977530251248986575778119711264240198418188596292249706703946615970010538954877589943256572392175283204851273001460118466909442186756617998541536256499028156435338144016968474053478335583205267779605892755854752915316547021368698282001033336428722768849869399690392144501995106898408787623879440621527273974944924655632642922620853076764641006899933006528545786074490465513645080043302956157358277752631580640720563083994636041543564989888927830286994844458884339232364928201750376974059474322807809337058487292432388726805696487653533713669567436542838798646891206399832796078319620500725126368696667014592227278089769931320604714556432772192105151436267534397804550222667874701607676539901014530499069059518044140621439391972881429671546015461057003067881813836077704349495790190826083835383989359281181263505303414738232839223839108178455389990196195610424462554589113084353336790065102217904906589302415724825241696984259728993674095453156565450965371719254259058051255713032404711082887419557274364177647119303226463050073377765959746349600647754346322713142060498440577082632223064305971651332534672746447225659142394648305778576359990948335727680099249982111926456858601330843834173387386148096430854542878712655625913219991714157827904775192798203679602453597459740917248037537407366325605571275556789717723764942737770155680083719334998029246720628743041428081698636143193027342907648531228522575241675196325281774414536514511593474173078545198016010799218231584963496038468100548015368423296472728978980242495810107377833050984165635389807955924632260062550072948975390713444500737497062878182228682341117422568789994051008514899415293516672363101443115245957654260188606388309688866067052549789570975375470275032403351485731976722359023063585885569162860126604175482680746930718815348319253785755732456501345986961775575202636347018096453575912995258549080212017683003308811074766874446642446889273146193059008519371649237396443616494122858521516211841689744002371630365758775217248662849667209938144066447185453639264836650852656900945640086792611482431480357004687182464527298098884654803624348983627060713227059035148182508447161949715542581000733155076818612778138823675031564085730600608498568776189126948707719684858861847400208936400798187895493211904384868962375471521778031289191303551241604676789903571738382310654392914848214275496962256813961252738411476645336647420883404645246143748208095265647057264336275396158587757535493604261202341843649319375442775749866909480323848864861354890714198950527548608748604962939675871279267455444887399454329956036096470946206323776069050103650895053983168192079550550677042577213879522282487195603395260104835486658610017708681261090740235202847214648397841942119475741321741839719392723944010317395436147863360011605959331716621664195473907633929200062216518856860411477551355573937746398451369638625444164173529591068693741735690767278109898432505469194001881486256135630744144255460053537865791374711997358449184829932212529414350057253751855715264029368841661028449031371751303996713981187767257303113339606281927700904783858929076022373358509420563424911404001519246858877313333096896061633091825445298999155672667947912565422028889813052251711837953670553351562168194170417000262116935231307217753624150886763152932914557900434482537049963209553548219516673227854675740417603063017893754360341657441898980365824727432716554012543018214569583089059496360929550069001156164976865325568420712715963540315025207855816980535525954418083309032078289556457929321075131555246573194142668678955030324514147106412150326598093437307016937088960633754648271971295559087528957148358962550046320745315014421589361907232611101555782424514193803664199321697918987731781033736093426114506771135413986877197589216614611250969636131533933987780824948746556993016353977044796205921157654843204107467862316650616528819701630128234110061446560881160559415564785815325501991102528490711284240904643367874980339601687331721798074768980766829662684762121346628811574297540728630243246180565985449068998109017129556416550431176451037101168754657527148991637340338424068562953549879745264397964730696968399018772619036886238271810057602738098190530240086836704935981889522084463792611426924509315002364129369929533226398649518346687311273368020303611800191788213862394647617211143748888892801711539946260255143785250911979967869567241968461015694082919115737090596817249969891745726011024604887363448584766747907705582277699107099967660344186402822972386416769399181029190755144453385093258623569819230054912732391920636466459078975488012639369073395692388342271790277475958685660704948831770173947470427152449239675461709387871023333104137747063724221966995748645485723064431218119079523460525299521481710321985694490007976274534255449990431597000451652728720616028195579194120906584666216354105659308986338470623170178811343401587538290447400960236084099678267674892353628272380597325916597388174125436167170218973613269867743022130152363712967769596535379353237435030019709596383308154658476971107271622747474233584026624811701668423990075498208153870927120037952687132892820364662399801493160068045701316185990666909960589025813118775875589428997372280102015646666362142265229703869644051354214015049420423628199951241578593750683052376024073215449219720418160671324015221698258781762404120953602227560792300640811823016769633161612403677526947036505648130623865630613931618245381694197308327195937796197487685308181682970944125007898380682723585463409566944182439988641437298929997528494467724414908913502584369398092439683633687598054161918706944530669507170464277865319758912333189416557999041007286818553296686140572351021093484607103092653382085962588415396848483184857569956551273031408564395570563376287508057551605533324554398043132898265435801503360389884955351772302468904166998288763281085524204825085529801859575197232791277666596742925807337402274727660064117344253586981648000489763437674045195496853206745553186406280646782590150548861671257979473825134243023252085886512737120883732171300318769803037105953545621232525904257123864438608128256227722104136743130917566983371955968460608156287486842646768101450865730131110525653775416143264002803675428123215819435769927255828108573622357831686432613558855287308066708983070728678291395201909841112798298099802836712958327903533938085599820533415873987182137837757163893305851563790127731434781342138854866715160202351183369128266002160735429513748983559042856511815023770712022547516593835670364674533317159057387313993969252169091539768964180589004260065426879139222815530981082685928728677120464974438180301245724765843803514286496248619759574194462466767732787436975395633444506169043294713709276930426820266547611791847611020688193321411357468109129391728008128557725624653897236382216782457041440463123997566749808874179545033024097861857968503635975534463411215754562124705902142387268384255864738732119921336563059476203424738783370038818960294407334847755794639055474070915092713748319282678517037149748207238517339995453944299520936679895455140487076566460094664842048529894394338304813675597251661453704439988009567056273603973392250727692520699693064743368789903963464276750613486918998781264794959389650158845735057844159050400692134974752048996220314110210794371060613991469147294891476819244934712049809552345780573711150036292301744714092648430431765897359904047278884011160399820818818687605688531077314188005585449783208855081512626919235989673815565604717076930181207485501724062744969593786511197086221818177079517699462036874972659441451079345474852967118653134010612219645130702898414381860242797451996920268800752232434857360022733043568095914523515856509696229585402601396435421785016842866451416416111540088304312468742801479725742093953763419764244320014014818939864450487919750525892366947017352478656005470361694141096837425901054475098540752655896780312155372884882513195810794068849004070849491205809945070359848072353405965222830324538478974557034494621501672568043612727043267846792249828796530247089961588668018201958316071918619414226279236779617359051610052737873418384576429529312040245488633627254025666021979390643594162150148053342494502367576251287032959497475302595210218154319882906822408498213857203314008215134385878614600336261722041810226321387587975660656730909097839126194160479778432666905883579262144517306083163342247887617721016103496082216571018725302930958941241716894017855079789819333254443982916069239422318737976956480647006923756097833341182198456024608054720173930245009991553755333611146051656847899947743499367922683060668676617142255909877071467787943700473050134791975456536734728217763624880047592742664815571665157204953504097329866061505780014887943355742948661086866407879153043051426862986682869490702797390824727405044711555189049077065092136617356819291237507839832080371522340467394081758017163398129825416301121733402929299265228239238471050828050918049793378970512517284957475193413554617644212624674136895036795942991144431400248333198330191070765082832841108328620739572727161007083278745231766376256081129985898455372354637168812573005060983539506494970578477347647853229277751095715009494886745525996345428122595293917622827543431386890711905292023140218094431100435277877586201223019903196698382081029905322834439048720389645990524645166176972595893553625217409542607294766456908868074868466196618097407442102948523173325649320330171848050790023177828337331897882605868564643310206041011076480712931459469220027940031413154411351750479667926378859472843245128011191968835416072992192573744431363983726446692347894993741355499500384833501854093804801420129620991723293681623514697730280845215885310186898044611246779698333892080106000058650164741610837180597863122888653869946862707314699103544888422455163591023829238853330771172081877583389844774016994871638862096695010554910077204019444834512427021483269411421199773400330173747346927713679771955682710865987816956027302006986630338150392860463160243159246462936881039095877904497232267877792023989349984880692158972670436503166237549713719624026734857902134971196708684004512182690916999868854345099450262914244534014035489522527991041371425806930099287121496990256504922800554775292017547431832345773002789565513055804860780163238426124785385681510575270419636943407937031433517927306572299848747453787123290184192682306649499442089612523290202122160909248039581291611558287842401955776504042440153071111575110822371989855466729435414263442136307620822139405476080074987243398669072546899895226497242707461918163848706898003698190581771838691927562216892376325390671666755798992767299807059999399639157344933241386113647350007577196494710287497562884683550493195852510035979888651312198101799384914647936827140765435058038780498372070338628506618184468392022169472049965362496182662309805109306018253120151953736401645870889961119658653913458195129301430476949563148214244144088673587436949030863381117862815282378111520133279491878352132464745776557891307200195836029423867064919046858177066401671419950618506224368256815591132826647583678861616598195973399713882373010804245712336562694885849115054995472976335455794759619439268538040863163163553988909102915772195338750449394886174370049718620741337945639819055866545786305835513104356823081707147521904537793765202629941110162006148173142426084706832678344395273847651104673350621159519494277980913460421853769756139546608037252617378035273464955607749537311134065636915070412842302639577232770246619264687226354126609635257769834982903464032152838977322273988402662520538736396667684837617260383070881822364832523234073195645222535741922021613105530224640602382450872425790026609897743927815464857027498905160359357340599205858516140090020026709187928841387491818941913439991127089088381240060948143941080418443830890491300756763005376726967499257452356515140818328271574868643701536685829997720852525607093607001994787714062754387227828890153875478958537483990607290030275370857490843759051600324799916244095657315630441011227441273715779609193281579160026273659548572631680824193608869306492273641554974264248326129808982583842676728210660833042216539049800869691049179407389141935469611598869536705542579277749167291361286701448110973595050439420915881616698263824275074974211113219953624714088498022638932461564887121831614816430590743034699251190351598059612544231967188234885661132720822258834352122421945777341070884802271811702905761477575288190762416599516544579630305482882103280091756224683528875234052339256460316395246197361572451722836941018314920911836832575723464883524109700133129053938071480817666545934565776689928659128523805933957784001553104044168702463436774055397602198861355136673335297429715810000021561530152900711138580939768537093953093985888444276883562003158530061550084917570006790560481071742723710856185369805178189867805218927833908492480827968945718338265013793201049888312474370591992342067159940750919107861611961438025733439351650606973696786339680516771055075797247144311908768762248832552645149419749642674014854670846098835483099737407542113047307028634978092798946659204120330095378248438051586979137003114308179589037328274303396594458229511376833338656417653737501571590737651148701486196136259473076745328314935998476876593971889803975649531952408973493249638090330944463955425627080475342353622195055539576432365468911440669651282037654359075067575030397643799494664774181366557159362789864027972872520371682518909753227323983584783178523620258135717888502604873854219105228664736541494362624218191325335955688137669126740326020589646514239065163220996516882155001326823851169896684541722502637818511434542735136668362561669735291908379445513378881068953107275634921405836635301952937724891511756886459958046393824988800603481006389767247502774744588548070207286592728874560639933033675398102040287827774912933078566025923917589343973792826585073227974805556326015313465344153955938780157426499878934889271597702366958571853213412775814406364056539002028934771882707563374302386758817839919505069989465250669269710037902895092783865500255206612283451463487993138931329664729803919886226999134432992380141123653145681675286332547216320269443411140561307069711249094478964048738560174564240396568857653053917614964233679912119715689889180249790451852101090569166220842182957191593902300791274890868871881334389700913693600839644708084281638613196666365665564379702118790968262642057772433665718665789489502426147629552743318150530765341195653887128070307584344345211994227332376470647695513710066985045910681066185475688779264911669164076125596875818428258010341784561439184980259153242247985171053066047048111929938707771558643056187635748050988377141608540308171804148625376885531080340969591626819243610737142879165322660734402836691202195483977955813701258275216836451275940935645821821546108119545583749847065556040982810160927721613418785743924006507681581100551060929323166421750758363077600701340116213651726911736672599217541443076631318549418365837837243282046302951648732262360783066222983826095627242026932024174867679841662389571110952999520339577810891891151397110900108229846064975943540095786704908245391835615739796158353090289335587954213119530619153351224453194638068654143528757009906066362782397422068933580276248984464382709014848115022861132729451614802403204633168501366439222588811605480293848975855084653062752216059479630148336473419624711347625671380023619588365924240039952746748706920961043915932104055510837665994819531614842294900365306634730998834434464858367606764915509469711553283341123984708093299442737221269740474990738624126498618243465761262746305536603463222086653213185585860708352008602081561451397382216752510525695932872699297473951521584322377232837790535629849563544145389957240875003966808178403472462224674396806475348718934329680905858533355748182459931307928785120170795351391371624379472495888491032531078382350287764855146578810383072817644170586692400661282592128409891724187718867799216565888569258599465466596985034343275777645193362722500960812294640882268376578347239586132706702846727543599164407702619288791679447748062785026211935658936892503773822169159635935210796041239504184832710383668332464655649710234889905174482482090999249787474959024540762913117373327636574904243144774268791865085277467946479882361176325488390246474065452469125441513834481417226223996227839055584030856863723839536397494411929012424648106648101831341695951938736108479475846844982512419200946486662818526650667540166411550693919574376864981114151059212251569568218492320858260449926000062301745214697085672318283764440456746510781813061349225559485527465512129315031984522166804993577412425721377583029571005223683449404886083110742373817924801418593960819222457357588822745175261742813101154812881590600562410174944290560620646680151055582824785406944755927927020928710199225543207347327744220946534797003540693645968578549141963626075394492159607693984723628829290574857561763310227238301282522085045678643083167934523694453427876526017154925541977474237667023795318681659388400556952693076209048895423640266887599415880077623975028581919473525552509288443805456160060974042789024454456745373546654138308429043463673774566547560990055661773804137496717254613218076419770902761862390459628334948200602760860194585142417205208760880517757015776111779607468165623128594217205833261273030892951466610582218845662002516364822609053941033918365028643872577911471088389225331979722533769924760665819569321344140135604577123045836782500501961380894902646603920970104222947603732101528632413870152446227440356058536753656629287911650627596291907985740775232788493240086570470891049636086448713809545468060431787041463497984148544576654150009348903419612576731264100820800511343615896564273448739598956703119811316065805786084997537322107109187227799967149405313699826313552883948649406836369703729311082115736976837505812128637482639817136552522168982744850763269720936040547440063444223766492134498006277206423564701473868900632656116400164164311818990296988375070048772051989336899649123371826776708558044585144322831003943178446383032096428102810979924871931958343281077532086088235676637749481102133946713615799300163651439531966379505533824703451293069842135393511603395548622797786415401626256708816916745061284860265391523962600866508065896058778498633552488892656354229412584209249752835204001153281990128440762460953573571260753272912505480641387179545847439538501978180848295626504926280137594380780025783260048214545356273051955331286837348103086414736739482811166839753902296059300898771218506317628128894827247827798280769569272955630452126412110206940578952020902052823941946226795006237569470514310797745881795680809369763437016708585416832862981955720615869469729719430840472817095808636028678890857788905048193396184709196823936808833634626883605107157183968341521553106047486800605158599856432043175488348566695410080406433048362443779748164333213716124473788417481732446714964533531915256648098561968937669190422414249043321157570471802187493879356884505539072924152379434767090358246997069468653949878353912369676038428109147070479956185454253041542081836300092650213337578343428710389890447029134719789916323447875757598386098599087832415890810227276782987387401866681506545511316351404026005977735558826976997564214661110940347606150946579430028999194899010161849936230072696836185842896949907134975681714481066108330195225297047290407089371000775300972938328651428172146525212258185038184402598262201205396062150350649631126337769643462329359429196412584401293855358219376354589083031432465475376689550856463191386580176723106410064101319866058637196162197248701127043446716428229320983452247378082941894771797634316511998731751870068123653421851836442214883445784099420145464868127854925853983531292080669859358724239287985943820209900489938114786325399272819574591476251492434975625705259395139929782928046575810754895619504040488189819542455707268962570584175746181428770358116479214607382105560475799080003298084170631011679666422639793305427988014924700051367100510945632562168509586811057584185277138040096413182714194805875306756140307651296397999771977893484089330887454777915335119248678359904280495704023599217959123206392941923278542120168611647826802905328604291479807464640612444142203072641656800662938059380969920297888911549201026592374143757976400590603607072785219212726968686922680294571130413814738208515211375360001320466871174781926862578812763900314912395740224267527678189923797603401000885976826843444805300404537154274178803608325181403006427884987843358148836314664318282902959664997320736332693258697904965136401144147006612407408729796812151041431685944914464492051343992009582392127185945144120856661633159309698427307590069328531426145298425249692645188541274342720527244163585070806025715715333148558362025969214617746646340112352728774520556723933018352189355182193430491185325850103471714804416148804844953976331808903210836870101720832890588266044942591241693418466039129676989803993249687715750872505127671259309160539248931514297986378896047509304108906709100966104185329136445727436988699125332954690650157557613391684730696636589320796350809027450223238813623842675509331898094063734523702773573479910147688994658454422156721382851208918705049918662678888862901540957650418400813349536031917663262026161980282017516841757882741668084197344369702093159988772231202290325549254905002359474791604874173238853262734148373133435797833805209438380346135135272284823064432972646160883631390419282746961922134376348421713180859571712166777105882961077152331734025293983718766239663402749048624297758812525469019645552200989359841062401197153523036532876564978181088730163995103834968205379396353308802068038724261428919890395385696215982978016731282265094680470015056490026414760397584128904236195731969261802776590754178021799991490443515944942910239100776614378469073587233218846573963297459107955676098786130168717708026783279526533242690446848215764098731311443193588824216404191035366554055672832479394641055203050546008247162888873682343182253679666618709127727471308040266316177415185221086657308417553097640005584442117353017673850163071598208432841804756471443086579884654826431602739266460804355704371505160031311959627392809135190015687666256759817327027994936411056809034420328315148892349929222535029341609591401271480050518308934786037489186651531137828954177255752821851714203864560044730801878031373879578044315367303380965637409132117369888423742513638921561563436296669484311254053407221784543263107479482740181062497695764296379434575307707541574247193889139548154639187073877526367507720601483482557967918495808478776780492662204451394641462001235014548955476361629492958289725845253783287451327466092623654676450926831405850242999593563437842166766515517839515375233551490280783211838884046604541175551000817724102637419673479933448589675421672236346609772818023377917607969641162158513714972201855631694184183322776375177963362383365481023696865971046758436215958587777431047884138401918803352547303644735538030925717054892964373876549969879630445866816295034432740520835712052214874531375309624017143354593824961853761256525978354094147565670855815520791728835567917465535869456758111782971157000746726753054415916847079230227049065340840248369246712191595165588567140086293008199075876393503640030627812939095023496279082046234623863900203601632248042269620126703588173521061333744615117076062270469857147317072143494237732623233235217349224679048519906670307090225137212795378026711606953850982512757254824933221147414174774618368294548080517199489285620782404036965691863333713549707545653596168873833959776258393946912314948545139365220685847747520473969749573340458002433653214212743798427616091357262093745681269608047324183813160259261226488005970954009064399101698363095261019921297550647449357213928427741504295608189641003117582417350794589467339334038656079905559573752941033073120163916222144057364182950107916198082876009922258071186250820146631996779163288085826711190440261776359010928729336440767088393823945457772231453322567096548897141433926020275482302592215729032055203153032843851073735074544901690404863589491019317775869970247881224406028850289337533792660068387952819329553015767138295258450822998627825240580206460164502847421059865997352589988255290795105670446424736136520567506957555411321729105039307671375941514135115173023930925029941751432091448388101045502488227834314767676074736969718373257693270475989122260338055563113267129676512856154263997110761770451036138941582133034825173499709901755853890760304180997984607041327126105679436732976522017030700254886972453915242538419677803710434079075094850387169066857852394137845546724414991708488791541491773235559241958065999028751148072914414650476835108645562835923522033107042989332299045306027439249317972190226694279897013627733456263703157683858750216152965225424107100195499083648259978651190865242190877860609538464625525870659717915889565808041190849013261585357510477171858545101478537391667797082172346972654479453309289485535390758089238823034752339878510031826857292372855898408184622119846101457487079725800293123896865857967504636631224417640615907980827317458655047767744121351578152486422329762013000133569116635225769211899844970512585294660354160501562774677863238480017999910196144611383271428229557311585264198401698487802973377044913643853489158606536403795610204362289923731323781251878305751357926289115156810423821474886617840791323029043327648694050620668223567176721045097092098166352017562248555756312130909744433799857296097954623943895935116137994712446497543104416496438051032906594052691632438131211821141750409699122399095119250500610955005420926843951343487875489090001031780324971029459021601131146768341848289853744650399909184890341106318933641919303408488351006394570274706757121309812705991119748404318325674903221863411667930216217650752010668295559334220333118562383202070352816896931591022181976286867800885075842638279369809235258587152382202562066631942891882631532472500477547260063365611955124678893355204795833458529312218110333201658458582871108214516423718658493484377958900650386384371602250482066241812719171582850777884705775910046220158067596418484206462439581126921466558914245280062936934630849817839836856869427706839973346536694854329780845633013152421054673760946951220240231708099718238748802958249826102568441092631892066513825169866357433299829977419367105467124152168251741214331484762462943544346255345997761093196558034193604296532016362449445252810168454986769737442613003585436315067207721901514868519423628872871830043700548083769718983019481509427652642977950421437059984807218809649392426897498721402721091440973997848037481959279706916689658520573292571272573007654167410745092319286703652821320492539185399329590626000785275372702054002316664214705435411996601846555747160897083555901258644286305876020204335771976894404109806575701525286576892438745303834128500874898056767527727622055119340269976208951643868210681762357825146340629236977789691477149053065835479237789932555406853372893687137353967480544065013131426611414100166755274687920430498903943298388065957194130778499786664626377084710272794485744312586242127604140560595546097499220034463392490967262461051768268711022447323085060587597018791787851496020443563612559512714774931286708124005832413329700969702744651477172553472479803553346757793162406679695351312723648200990434232112002347425809361584381110968286695151934143986945873370346768984384100601522467455881699695234477205939015213638153143855543027138855199919211983121468331479256602690220400341136979073574711646521894697905997289508251682587230259809805214086246096827930058077125745693846705192283756859673062751401428963516480592860423704448745632807243689913671653413132511841911366317761591628120349273674383405974206791706111290112728480731273019863447551530347307412666288872038632832832405469403295750132196077383226890051406930672875857225968511832245842037003134634035033306897086719272267535917944648012721846606853770746822818921166482371357359151678936594263206092781215552646550390586873305509461558195767254178235451775044473949588041141568640181605987501972058379223008316221335569869489374863389262141257790108373705414700709653334723615297193256285351012449222345224627897067038636989303602930857785084338754741995613665213810443777079853940108822609792235139567254729547066194064588354851367654290073435465761494746084383148455726524037790880828368005822711007820316480232854005809182644302562956476236259326675858691707470512864439222603910864915546592263069487062800912546737001968641012861547713717686215420213457714372245243842616325208168453932893686261566005285500822168189727380510558275050614566674631692357712160615630068907920815950624669496503647126935609999526298954786406125916613941409059284246262306475475096784445283956335255283519847523350497000844302110408887113608841545974160133010980067190590303697389855735863783093686614299562111477748668597077258973568253417479484649019393882225652940988130360832882568308082464729686726715771047352676456266172214821593786423668255753606281110633043272129839227495156308237487178947409563478201010629951151235158876932191797647044705859329098296881740707685770323680843307496137453070582406663369167809689536791492671195359576017807525544944458029311807050243169980762127674684780942526564356579297147697710271984148610044938994298562691234682557130105084660890492704542988132368345518180394437742304242872252492765287638738019522410142258077099868752398597586914100087247262207202568121118017632886624855822352576674293898109170415048487409953035690225316754973625307965610088702474953815140706398994319931877343478668043105554606756171584658460247668103927350558391808468248925047808497160062947122500668508392567830030945408870678744816862180218572278529362610440703834213664972962149753961553398547045456685801029962700065194866653972813788761863829353395424528832648556905168017209008657018319616770310319231632663123708621751380636466979774204534886601695532954612006491258517002486789935580986325332070522054930072341113728095932023982934146997503850271709754739743560698017519907562964650426914644782692816053157094738301173530504412587707459169442106813702795329911965840538496767822064514377260708245936672078431559886485183520993772195989192012009820622068768532601114738136220301899768233206902613756763372906127480202764817106285874375870157538774073964868265346718964781242003059153401962426184528316636100832544237219533029730085198375400824617489448630818556724488359045907686176549311773405349812728446702896293877245948014991122944578455351781047548229635382180688268633531002482201590812658990828616793986685369574852885422668404865968131246411271484984824431633352792097069348979749228436596174509911809135186443654733533089554875987732400955731207219761618502314586625192039831309919629784491763472064289859342028506064139064059171887417533849952625014798243807443338801473193077853289345428895234300274742340657824071052212702181036153085702099100933556921548907693996037900284306408577086413761649721720420133567364817061002958860509828848636725089711123952671385274515613447410490761964880218864130686914410584421461596733717989282925681004153174595074846340948899015594124643733393272455101088351078384800070055070333686153178467214711035127035606208571975503186018399975415006260590501886655013914150646759738721890969898593271245058688797734369221748352887900476783582179534705916918980301825236678408957206861808474230403037195219042840349406557244883351094711954138407747639616106444782470120175240676864149784004961877052818831956684095710570081400238974196251901448487534365837710753392319299398111314049408564683433430882511531380546500275746739007801813674517617640911374742279230378755954166097940539918158772392179980724885023897063950386436605852273577567994222578386794238966776271424647070243862712373846475685928459925086477817710015586881125330939315434466474705951989654694757882129147854827691371557422593062770786915974630198836437776775052840543555132307038627072618101683846072989715571986108517866649158226730225898986925326627800990099881425122037799495307835762949867569708952842657063664298133821970072602957294933367729639137556434400452591332095652165582183494021462115249070617654275903293897774621544844411417386660622906258471498535567316568439180123716353265154989962966681075622462035549121948690221918986952572643485604040843179133163006640423453657396632696568006525066005145455130205880236301467786770828838700811326798851784329047396341725528384742118698638199708430328604345982080481504975755284706878669934863221068890850829235845653807221610119956141328713290136301822617791138614719142752477012682756565081617203730362469238988235503182176709698326538219015354048134115795307685288337379812493770310343635420604177627041243990422779382294081911904149512270650470477584462781965079867617618954052826793062354898202764428278506310037823535340642833235591005617441377167389841912129663179325844116225807442171904155429620359450086325477858248028807575283538065048783223905841429621448423885702466204022366446654940991249662015535196146087803526442924239337780970449684977117003967268855625905178939549206466273750626308059899508205681737468194384388442670081558597746540715827561821371454490950347793747732330879169174649997071854334079066071585584538554846270585205519184701044523916062879411161974837562728661991856960495640937017527664392178358308665794619680333229334748616761505772261675451571617606922371574978935488955252300923477832613670003301173698669595716472282220562504405120141334237020961000100060516766685486495731008678936498528268357346180878616430934107350593866287326027642908553197373945170611324229422349154208561821289605336517505343896494988868218006341579649153085568354022869101466537437797005960661009053658434940895655775895504716085873038358427502800775377517093191878367317245410163406644451087220944086165958506752477471223757910374936441868361942819868489402149791593210002011276227549602874694267814419935465196402688777590824643489951441838147376187792806500276318303184621489399519029693931448991180420078729784088168427239996010999863610126944372508472101969468877822204771089437930963884769038449250703111320895549683561319348526861038898378754998303735616866397599473240792728313975165851593871594119874848668685943360290319260820979285588422467256633401941504083926885094463267270234626992554892257735370700455767298207295687693240896611994102047957282879580923447516781438277692603114317590556469386012481861920408526901270924415056523731689119949803181068246541879944493661691883074598161315558210919762886739929432744413118064258553116270960523920327960350923712780231663050331019054633371899453637910479499300001522290472081228591579890261794989596632045142411855420159340551857084436760147826856735345506546247332356455512115375373880066085536848625882686759438959903972842844119232474579665405872297384081005996986305539397133745532537417236937308340555006342055090041527315697180220809928716163260143010407113813230406137047687876401635959387677305287221486051239598552365435773652211546000240056497129034500577722459051214719420461303061079546340237714962416291946308288638549130675204842777815116213595276381423685085076479675584871628249952525820869711242030702521810592746316445538322172687189040451670078986934888125016448602930002961965248246953638186907254989150788034155510973657830627243780192775146415237221300996440419246175961516176399130255654451173349734718559385509726929147381548585825976053771173190938692592819704983231919052619162271539423218810164316501130961230757441991942568526951795304281703714003507023779196857815740815182528772624654016611557645382959389016103425564573247808326069601972849381211997457948250390857625566110539445641483765724562671569403660212312268073381061918022559858526615752725557243052219691844548174181439262287099037794259673470613580971633544731288897731543589520536309935137672177849590853964562344391067434453881238797429272808604234271443039516728432586229812285883858693132866717126684585836607348516138623599253993214052938114405474440753245616343572841614928661846202258939332342790444454335892659834838546871844005766086163055096099230564562016965547817308761850911332979451937946936617702560813680523133013494301730066992983170893061682852041298206497269020864630695341445455887023968183237516116178987917914544008972259219652722356969597477461550283166936970154161094029685514381435175426179896767527511538562297175652313889625661283409915349496460361371548878343212367244596705245064887425271567235716840279723937754069293663267672216637094888636442504230748579334186222455018724770337760025864049156732437569620797307899833327685322669115790841970728720000240954975383000047775181992380684864694107769595488281237476462371337297462645833777433708799907644271208596216071319457615279346933161749594127754999489685761556420236890971787536130968996357799817405198635454924833801753548014688251212757402253592377284471528169010691581013088628523531585071981793031748542331751181414059674828577654383775996583290764032660329720935272080797700207243252505092776950745118314490994413047639280926951505751921777510305660025191975128848954714097378748160526212339160429526102493267250433647327377132682877424645899636391981019689288526661443048738950786156558027601827917516751639697894460169084744562793165010212907442451274631192684327527591951540888369105928141437291361952595719950131538050105030770616907498272038104815827879704713701124069096532178953383514975854278897189682548127950759574672211041103454296433009397881789309447865504539989811837915986413791599420883784990565563961827975918543670569664931668442047096284176111100103307771057619524876816249283251986526992693213550047343519461567528442242703114322360666991538851084841810024380897951413876749492041704732476578723335420905584434790235309714198362857928269509360981546496401464455463846880777175292643414531196047525383106171724989770768687158589583033020720179456942390198670186422219763686693619397560437039827807867387688146812940364102879635920913093698929387691864715782563118858128191000114289755319507541860939422472511013699399228823941489457352602784101897162452856618395552237984297121638865258635453409167618725171771904648961172265025185675039724959700434407330923568522842828906445913512605029884601197864850686356481843184960179834682311286222768049848771222913279898773182237511837121716783413145148850181848001009736488799082326430464111136575413177484994295190566760677500242714876066534907514515042525949674246872961264431005633791179679178830519377913539399317586893603864587025545190041073400404427479580753501461799572766958065985264828778219779193929292633570846202340587018242400117160311132679094790732413792816834232126054958136284718140411451180716621446575199343927811405669976173400133139052646428423717045452157810630538251952905584331492332492692392440554652816730181195062340708492832951024864961266070346983152357114236008907647599249525177787934526788927164710152046553587981469401360501345436960673238885116599643072732263192476053418433102113219049054476075167007159437756067662552281534240592937882488616981409575004389296928996800740343535623095442937780573724499249397014903494277514384081160392244152425073390560610500176091677167897759918988802979648717884850075101399419725175822120408750024969962359785247698464936385113096055889540643172045326331058915926033541024204419307655964618614883589881822518955404891261355153335768156268709119005865289419707352375318383380420479501793061212476207936795111796121370871338881683771540259104615334826264866239919075580965448481713168258247888109570072153085647087611294077198385633831803846292744819083298939957690847772568248675006746511558108879261134229584940230095169648215775028593907935723417174576275518306153611378768710604245664296573677627349296256264327597962990110266865946102203576891667434218940963249798910565359899094565425561440904247427495209335927884226881611623798685110519810113492747253083276246539672107094993719078142875665022264462035332285983971673877547335782243892197912055384020745072404151912264315005609666275329015147644617508122565798905913856665097038685888165122714322081208254716596846835993583708417926706400692736121182393670457428355777721098966517298834872045326327531661521787493569991905149866347393803580275150472004604719086520725166605997929397144200922794770103966823736659792190975416090258000109014440506042759590002834115662535871355553762240355442876510017818599018895084506848773375834250596993456747713639684179511251892649259332095213992811954274791229447015515717362789038294067041437776762691488741733118479108057053702419167271378758227189559445894385574651150628733083278407676003883123333152240320866354578739908339279730774881769463583182690237499161497589114123626913405152744220952423710810292617402087272395853941995571708918918079088830603735532204180467659663070439052594035709560078568705615874861070175755984742059189466618341185901771925378867091004583251014092962952926379256449114424978759828269471434718928619300264074230052783503715412348503198994850318967634629338598763365463964211428170422569652029149731794167244889824214404199910449484664927509891888682766717185620937639656224713267683626885553294159380572189753032600833333365873107391354740541114099205875761148263087187605575167364554299164473838992247795085554903276224366903169018135287941858407174563968438427594186664338187083788544216431526944672518229526376548103098841152239922435712596769954816374566896345034264651432917717340299112387535481363826750805773939261746293741418446981521679097366676818006619337628798265961553942283459389031971051161495298012242215962958943958181205237099832345174195647380537695854309386701273643696996440005531550032426649732224312928998604376793335586263665353512404459454503832249742250670931019143841041938120516925495661766557138641438742526157412953959223407308641124844134902078515812595033879621984754024198249688160786476881073862786162995604975604452377249847225742059117498643460283725481896381929604005611620865361404849346598664462759183506444146612793224431313586597581225471562668320357599219974737142204177818622305734661403385607290901570877501585031732534883083809420769168651634713180255400417410739906155672100745753436293254973005505463125474527536744859375743604376713413722306449454425997127579751135762929614495631577197318121018053355750008305447077526494934381351503245037664811092942914506447933627309004264989447594986204463931914775850766088278413028232988688157495289620703854820878567569314611873448548815451776488508277585370134459133061253139462276217277208115158138077876490376781584029432280530444788349164247152154784477424824098103438895707410031944347921187313867218560267715472816655161090232750237610904554120485155530124455814334689078532359370961329162808398554758212105430279487926466837520568718785859669278011979593341087238521500303322007911848086825814852204319135974461890173285898023894578693451547017361223196461759754694967071925811260422725296962969350152853280940465433929475053429963892952309177450018680161391845934107085306901707080402843581268234258658130865290792488797856508490453386521286913935520151459644404927048218262450018860216684009440849467945463932744447784453885560774129444668858638809844018174892896306024611389762112723698871745609210384725119830325674644896445816653382519542158501749675832306181290592958535457111621519699320861374370372709697772959625485001755152697040224884512856815091739658760955070301728387722099491828728906197341847601438492734750701607772875524287713763755276522245477747473210255201101723174997129112688374904977724542910994631893491104654226119109630279182001409106913790336308236529947749533694082582832053342625075974057874686429208642296934940167897786453484488727367604324609596788451365837518634267973452442508621405615841959693332866339860665582820384941025489495522455265308220750281342026701644705236276941826080756650832579994739027539589548778777204782001405937692209987122759664616067719282182017694429283454680757087133499366179791041666532629417282022740807047515762514830536026831984586501917279113952661042274902392360934840288770388112345817747133118430245297484432147384408251228176369327746380182254882770789661880004928791150907702789389809632109261799675640122724224519509716911457173791195132326059103672963717878328649256925042552231246187642507170644072758461124779021340931816206237210458027459255438037589772674256147716594015949250894292371895308855868805140671501871307464837553289778157952613505567683537509746024146243876596413046596595469293411747214676394987192724431026631333335872992880833314368077141222823707011614047095209451698594396763876121972578318393392459947768484076810610289872353232909077835853050058972770320334935862081623804050598033005752436760019977247821305750243152804090799741922852697619157422619233975326093245752030819550913261794964976329579007367429019465818017999048766522567125107582855103271348979817546867503001279500572011298960211175580215196870620156249665710141131292924875730016088842705949417804723308807470723886735535059713340653668100468284945258465528074456436093267253592659923693922993668797113762927360351773052693883103605334335413117523678118255182287016692172272266254690395352175809912092523442938017196973206950341896828632893408408821344254958758584644478120809552887135240694687569225788204621449424393678043729348983682381454086745320186523604292799562982529798377142694156502502853652727832121417667366137100267481512493297032517086776452249733296012840426751704713495316479512617618281273702946442476882894269522239079304029743915150533597728646024515920962470715895083121784472781773906565316575992857107719259559322473367427364742390273934150802766301794748698034055155655636883186075329678614144126859256245188823586392406804684566016403830153460775525587877871238559533680301640087756371101951753343412686953685075833196349284123506663508270198042551057254893035283314989629191876973370017700525132678964999831143394835257267145656694655754328817811317414115733004894214904733517688666888455270034283384541076075068445752065418323803393534621212056908008124878299189376210983301394916487603893744520801345263333206473506179309859713760536847088659126818394244337054440573138338781875833414334708562670690299601607243433259992462127436156595035006091005680563183406044810782456939026309142435571988295368690884827269697248061237132047773906268948712872855686001792868094703795209958853082682805964637518826400092114972463367205074077789594330889176806966029671572671737501179695407268537186751540627493304423173287898443972237651394615979081395175996339630732403163415142998259030181086164287983309877327919345204932879193993056012253060977031586865438069976687596490471470244308457982372928688196500552264957651775162146692347085135283017128950701096650113349818896368059893104670144808939653210276045369075622224962849574299264117007233267777580807837900069494580442309157040795694063620133319852290226525203001503344966354304169130946369899905024385244705780460343298476049649528626127090340590687657027997300345867893240071297557838937466435269238628826137015134828652845939893592622804194181954529674556751410481450217142847478910633672368944838028835475425510980002685872130481044834879626785771175036616826318715829896010792507962711122976753909073070419986914858540031697988012266538829634529787656410712451754454453185205278254149187254781274188948241187854441084889928758082087800572237298635493061600063246557238297081126001042679165565910414842741887130649432432831694533795921159760701208710160932339678248497627708222298377866754121905368319110351796088963591846715754868623650858444442445325177567575875529188946477790182881750155467148395244636161794858012338808253969634036411293984532175668282549106717434822474536386262701839607286740949508590782898337165588615649423313144205584190978760632769527325481262440964010348425636080148150942691957586968622821284049218314566628492244660920907336962825981391766952826861343563024524042625170143382537320339639786194262054860890375334111785317840211213426452133440496192823643241449118420216367016004772935828456577664230230963632276127770224484493662383183684101339967728805463124895462748247507878055970433166835892920577789354227971257300765519499714005923358824254453879228163717282669926595794539161763439606555439261510298568986885570140127929356802826117360185851458258574434561505723306073885714482087217540450041127236658275569117470442499549512104917252301750833162262104330058293395154660349106960709441120200111867128406225597204821760615268627525488963231885756015018568343711004940084267164237832799506193666417325581374288632445646651956236076407742199739019328166944813170030196063361600534280691723071419427076096384330478599184849063764304428967707843317800757500194444215678769021767113059763413060457924516351245387028231396514037136887903983683607946463060281089940570791784697196041795567483465173658862003578200991982050164358504211937160793610471439744468381037000222391624910401696743331391015938469782666880655124551311700676609626970752845002568528874700005063911251192778435812306613345274732285236905792186578547941837424850065282983452533373942484969035381979767172394269563659722787300234424148202096948796116177196394566375815058993139701090670482107412861342201823800714506149349282135000814627983062060537557023037599355384677540068559439719789498486126775632546563948779539700890453986248768371713390731806535251737591234252557428422380166780211568107599785461285402065297262428676319303810846970413596278108720108220375373299385807679564345659930257812312145131691214748704753904994542623902891474429190093774464021048989210700400709989080189561642987851072783130218955740465312844072400048803060336944216860254782505796226310745447094996730839568899325976026377461383558194808012201227291310276960242453777755355973036713982281301560780911629937905921854642231488433403860585457265576578485086120607988002043680478957606878555708920561844935121549007256632762838912654304684071853060737539211109289659701725054396633163871884415068744021963641097246159135106901779180574363791824161048757170073300404130234071311854693997264090184976235711049215686189375167566720107553474878990186444466769407383879981711066080219341015588705738108303520119020491721133933401498344383530169450642295197800248982229248397424336154199272481743145138996755879652257645424889059078927487458296922089207968919596534721795244183096872091435177038497819392221865027524105758994083229677070654252270034648386592082000888654333394980046806448737085005339055341248765373903516045169004767033353098589213016007493969158152546172284877741788424011456078526966032420287430384210305029526602880487997927825780437367626390346635063497942180604147918300114294303955800157769340101222742406274593096524284148870560761369758665906026647233246281814492868117446749670068120048230124049029690582862993735618020037342063378948526928742385421315181043752378690165141516799767028875911993787745160580135546055964084468086077296743949962818299253792797955359419380671578054472575242453374105872945236452993058264944411642411327501554568458846980921888411087744468704876366932917068701791351293544147851638053239502434663836650954849570162455030257834230667720142996169839687956064171108981315666179025336627536290403094633853801159237843926744572747163576702927897202414591763340630616023938870822499860142511548075274990898993920902284388800572162329540185258535040454092782027070486151800963896780496483229685755667013443906851341769573262176050046662933824671358107380768552197416801753696224977834096420392483273407406424435841522189778893037844549310190358122306848386712548912781016453684299456010323367015126310139000917842503594230264314986199607473828036718340201325496036086261343573685380441396320133942357891453870239847145703906669343899103863896877842667692749278676404987000643990067165475006332778056288225988507233841023577917930272279529369284518194898363293492427229468315973615294601115940717030026078315153078882119775760747306742851502257021319566595265685949182842630131908260025143123987552480820018802749880546975921233929221654789894222451215070926927226743654470690273105263962898998272486837112024564382372574377904168865136616036847357088283154140498000296976498058448603465107801814888308125561160933769751681656102433731055848196756872402010547550287040169092149875800721787763208605804340628744683279435724405592285437551487451180294771310687353037939127028907085895745322083716077287847413090885730082009759045837223130372896218293815940522487572080278402459942676841683053970591198966988613070266966422768396954740233747471970877203158064253037487226406338157056942432298819865562441999805610909741646003354437690362955472699005918058370549464044663972284659673334356180738836101951794191773443369544539125303818406080037219415966598705780718630715042980006061481706348630891900940167573441456713446132717034108753684151319438961947849368740696431002393978076220004589368077834209165709275518254713852124347743677602968078046001986300535243105252288597897214500488403383300739131171208157729715031453576429379154338736739618895551347596450547258959549263588339931149317156392943165853577574869946848489181821462969075384712234849588219526610533930883387878475402795114922512790628582286231715870824450869375557040092837236477967106265502301687848771933412755625094653324902063028172596603845355257055521548915846540355867477138080401894252226356662784948877633940767728038799361220606879186326288110061229742639844690715053550427221816322365760285505567306032908235468017732286052663106669949934306224765951624736402705821294856064726199891103331762271760698549907798301716151459408077152611859100480425192617267692086832529812147435516400987044853529441715310398268996495876189609877194321003688131425385984802385123816980406729642519388991989461453567097816865992209851090720878910762425075995201346372316902456714161592587275920958958450354020851383137981625931237391408273605686513857943551215748661299906308022313619917661028851288473768812623087645049818199881838611617633346463013140083891597559982498295579586709264388355209939412712828229320972060727626381957115273203475262210368661153432707512013448933722381770784377398535559619784232177153009327450062150691365816745952185499390970290940120353862368781186967301309449342754453582424349291998500351177822544048447818659487698818698862754463837349667821861653040108774556374010383693745209863421252989487527356170048569902003340181119126702199152528088129477460555685558888503179818543679140917812109019038695154915987822578331105264919569832637982839908149524685558101284795683240478092557888131427158252260482736716325409258029892819638361998203415613095514235590363562943204774580009209990441070339162094268317713321762639668041584415401321564905001845909785405391971486726016016781636236196675789508631493645410932263525646445462288836577886238333639280462753211837636030880518152122807283449052844521643248874783384597907325800316247246139394008505028350197936714318573878544452235100890958529291157660225214130186911602446040436947583156377167479073542882215755205739398457314143752479931631958460258707256793939151634708070130022072522488021502723364416569717368229605963716167213232227165875260499809042194206200863905668880793667257533278642863920876298124639642559586050090512308688998073071789247125704509190816593734269774135002404368398902551209642674022765945658475209263036210033704083169327333191270829667568062919018067906985857080883064590716513360802149261547381660539734716948391084141737421386456451370359517883681002364664463534949108703518579835105261732032013620815061190096636390522512413198645045916829186230090814073505216099636171449878559635143586080465225654320091234011471341098582577630635368880318248411506678526599796000004455535882142817817745270693538406380863355394628181396741199567058099069384199090630861573681633716994851423384041395569241244714609107680792266455509235121655169651935065287668974699185393281351470710780390051046627772003167260300685238182910595929775316787386195843561683402809210444775329073705823554463249754525249834200872239153629712020300801391514513904910561686495106670534553608680812582848896016935009144769440325881622280825190889496408912857587592579270040611833491842866135592870972715064205258873111828105248407409579982974308674004428678278613637425742684754123808503763967720307653490998169740677325847629153741801901723454365293150958996399014064914579423673014152617740330513780582795191035012643834803219691726923140851020371975418178977233943967560341425109038674178185672318284334930547686485436342203834783417073391212206299643114301720988534776642858804302351606540770465437222800765338267246994293050377257898306683030038259300982454955365439214477932145987188946672595428960400836445446173044574773583452220254825680092646121008038704100385243830629238966351335024966145233008099626898281405891209671033637097838423773816197068592764492459227154241832354109264714849790616406576981509337964833811426431754617268047755288084869004277389936518757633634147569292325384052253764024410049878105179815560294372628450567926000941591960306627042184128588888419011855139809021115369285539805086219093402465951883861410750585749369850277094735233380643223345573746977115911685655621000756587961991177479998293918674005548093980704980837177699950102899668875553565565062651609328443742561926597404591184584244236204036997856255140357834624683014650320736816729136653347340746611501347723129999392333566859915922621206545312094505749328315223718146362332995232265025167283907135542668691713034546867552885747810420409528960400692336730864532376680614633610178894974334032541644014163836502268533731714759775602396936773669618882981083199709586818600848529967270565185086660238266686230828620729434159149438998012224396002176614467477052624494020026926106387987211424365402262363736125161995374501108019004062786849186388749874900607228966853920559178650932363590785513631379117647286643443306641607909314762297044728155835977393677184143958022127073811496221567695020935789744863634749870822716482151405324636536683866673147071906474355723079286968389335686363284550540165427807365813290170772746933164243488292896917670191459676918007667110642176733540803418285502117347054879573090211183676075725578090478439789743767176471561082642209164536040736324678269001069907809947135156213448317369704491303791238200392733155846444057849729936384307058304409259454378746709899623457499878602560499211305843086826639208926982609561916470174379734987351601496233287083755167818658703742574148135582964003253326115796793777014682577221934647671299799557673200833718229487312149560838250102693923824263968065700451112858124211908160519203394856176208105910812499520288022525089163111395889006238243047169384310368154336405863664421958145665970484151038250118465963238047899851542839611982392006448598057334247099343050901144189407496084162407810215667054939986116998128278355766950640016026180356859851311177243261700049536778168509830328816574955546046333381806702737004487657188467732428598168023949889041011571965948502284411087138252274992609581864761388516685723968559310701684875450864798724685052696516695028234019521804086338394047173110129965247871774034730092056885750249540062224633994374671779087784691407798806233836532982221347902413424643605571233598244815343589535274790167569517147746583850711400392750988281157502903832096477879231853291107277597916007118209300979376805324815005311125783506131306723207346862093065658386163396021178540047113437952825675111236528440331964859367974884050625180335815755452618634588589199703693931761162851237270249349585317773934925008100954201899435070079972525004235172595417906929884994176459707664405624683608445908591260871634118071096873145139999068144739788972405042868218843898385689501399012078121711428212364872137249082261644932361014952623960702595421357774916548800886519425508326799216160783241321650207815501795310241115752960822813167584481645739693887559302149963601383041896517929309950825088291450398190702957344161156259642844666530794710849798357457436463334185725954090537377678115514980350912196430163875518546966119924206983005695026998422022238953157419156816695862737001267145884658921735197271793409988026888379447286559998836772354586666695139657413377742007899458022519790877522376423824579097530625126750857735004661995967494319583088033166947663965297200616573995585578558757279817644522733583122971072007909471610313705900491916215569761884088324510900642940762829243057553808844813482880987858162452346704365917936820970193946959030342776598947146024921314387393800532367524629508317531705566965232757790997166200582787959280621709582030185588228899206808774660342454277262282558508984885869260402573524059308604330997290447511323670933913007304455584574299093498524809367201609170293008750963837739320274309178993140335223322357874931061641361484054012525327517669556911137096977008630322712893443182412589326897040172017054284540210078906105616411818055549284624452024585673853552301307314819105839553561700762514715064531020211788962904379585035698691528392290796815781983690789290557372888555825302620836837485482106929528576195981547573349984690030768400186676898444219928252836685700839549193607330511333564165772396363048066250514135557981800254660070264987781924207666135881794684585606432979660370896758809113890817803591195894345489723730960444280694992873367837133863445081871010689915755983735627385914711276035271505289140874937144696255241749998788568133251663626689440760518954451746869277697233436246124610302184302829281723225543595210395258357908801857891758295912864693651551229363279945779909280741625472719906688608683148653948345753583367073646389411655932529098592786461842599458250665469280161556728193160653545679279354686879013127787050801613943178939265100405686443676877579838714146719253604007410563680540150565499232488826121675551444173073589430428207179789499026711511564090801949353512295279304031648735459168436967131077180707283409898418754541688756425025790305206193783948537580028572966687194968586275546910617214021728717366746365173824197507810176074868385113047552737644997867832650007602637847175631713468107880502340459156686069988079879937093892825067612913547648038646303680205326463463753593549748224302152810565373486091815211914244954783487639935119014885783987033897306784650425181975854943116260934073347434047955761348833341245302162019670761847939629389389055960597297965803067781720387649538728900058542061896889854904232928834528185697173644706914798176959502038876947893517447070493579578303366025717802888665444094186982870616900047582648600148170487659144881618709317110882962581825737621481897434671675923876315273989882169536599251126516592495338543749725969546569584090956087818847812806712401702853309113561943723103242966508728949049154968918007425977313070610400690659623189455676615107233880598496584148682972124249069447453861929418833602485972812513862194633001674881062911068124688254536021365068987211750385231189717035241214914323875311059624024712157162031804610977603774753207497334985124859328601644801946472864129481001937548042124352010542397196724769042853616711234270561282109604478037131740889989850250928908933915847879679734328238990606631370154400871125821679060716163071583413280442814801978214142035588191408442194455482560092301767788491098687221480400868360215089327694155311925614350255032296881216584940816552497915509126518955412218524727286121655072648413053285238353050364349853206442113693675171347210155375852061490790554348387575428630545636965093218789520129303274036552591235901677692376867851760156357118566283413590068777719450779922530274302672394938556081030065497069528467941225597488423400836406320504750851078876515459391488303881420257247031437120675450812131895970991127164361579195468969030093553023930823438614386608682544393149331646414747141165300783906620187844302140207201256173216344446555066956670330397113962914586387820358591967629720408019449311757725562803985165974830239317420954647387380537283546627518142118605889104189085144372333305636430937706017096485704796911839926639645368449639919894986386254954313032122293051210330684153889361085662565840998012412773595430423272838528293804223358124953918637932950234784744186862181714748017712586316965594720939491971435985450269440715200414610488244247536207273500621827936243423644670501424362222977889712470692270623210256448694996004542745458642409047543571566327124631237025814735061361013057398020857495878701910139012908361573596068337335044557000404872474365012782202097624608083587997929630692271104509159360641576026760783236495688983587008061777776756887782931615902494804843822677851248468430144127992507442166611180877265791118764578216452112171944193930816763015664492841358904823199307438425371517556902830621830090726240541912408602649627070191044788074182453609304231944798959878516984736092107890136358262969700553499959849171062936892930272087258482584223094726256950244039533935411694138317117310831300242280252159140142358267115384237889032217845372752083130772866331121195636529322913470241754754416043920932827633002159645564689668128380350586225005208022543402362112524594621987384624262715819525274896839595311882304859761156861201490403946611606157839468217862610005917994661922260856744695833093328537381838266956129018026634945408468001877184468839766616512241680491727751980515945676431257805012316153645185527422179886695738410748650882489444697897967405921881999651796412812929662443195508348161958626400797235379881511512809410878037425697212464449394240276190081606404352015685774673779943678995581892081775534350619669244932310578542221801329014440895619082103484368542663548508741213837805512596910011088544357502088860177961280612960007107417090245717973209164183791576412794530000879133667305051693773159515787898459095970872189709673676891108080466765975890219565989076435896734891834641439411265219028993238040097697373228012819719261939616342690412096319558865804955192237939686568259176036477097165018706309962378851626753483096233189233826325834635228237214056729444882169984146128114990848988322676779898319643078762111003859922408301048949302369589507511477072899021894441093408419839131158580980308442784114240719250364176909910451022833090707948270994191765860244528664287969595292346514557096046018046866001684353356272043918408119433788370026049706636282403518336433858257251475551800273008630312235995020804719594335874520068123094988854261782313694015249931862900388475222264038557635810937409475241736842617906074931617931263477476240221158775729962619827992614733803270747625648381079687942221572504142614180188513408327544626123451841460787121450712435179653690472336015003389197036514470355651366016252255374323262029162359261019319808489723701147174679679981850867628038506260017862763399104994014076902290002519617882199393062512035670865519491607472996006052527415358250083398821256162693887042666893572313953828526616350487440337896165076083195072686717889605195660175063140775027435784444784298267782189519485382746848426766035337285774371460175183701102836706916151401631358273917977211795351251689512999065568547471542736490358660086933903669207965867645725839902696215646150134903454580550348919371330520400311907367120674862559495334059484916089624023812916875108921700909512144364844281072228794342034726600939540207447889518950364461133651921942740917764278601782380464155677892784780653764438151470113539041817231102925364918399099542268676587089026205621006674002055641518154875512143871446608172299598643797177459901917523151294836580015031984937719829150060390670844652527333006030878071367851143625216183809851032580959571030071901442602522153562260876774741233130477711015890817465348737718109946376595331490549472759723822703656970962609342870306986319858112280865719233833849549781839003143064883680115396672347031565805795720445818476520358512944506288162619108473140239937044069097118754907016337294030964247416172265960561597449256056477637709327045071868061203216298593457605379436734633847878362738986154324550525912788477732698526464896853749595720245544649759949060530732334639024340506265393700808232583174243866575134268282540880094013694826236310275034470131790509933070725119428255875018284042612415401639238131715462795887463953400019433014650478850267145463913851116023573083125108883331004766197561002255649353165386271016637442731761717962621760798760437195137734596601008307370893142940238887263238908694407569608266556802708494839606250432802120231705211944082677036753066858156120441802618384591677222274386996116098853231759303634579754965527480145428866090975902400498852263195914652608925128207351961209552230342883810848206244347288659246042259276388649343689412318781625937702301261474817498510377285528341751950367290164215113705632841840043729377381599066509384609684819777500951498768281208840457526474947651013939250868322408161768817175410446298272552701577397285687913682427286179002073064458468412644300859730104931751504731273609716521458692970025415988299041699569209946383243898617035343977424113173646351017756076521984405510338151691303285081846605287370146832225989226247582179899670278372804899175385205621270299136150923768533333469579170697402920322518724806614933918338391885469373953563693575674230525949913656325965311092117206265064252445690781269987521838963532451584677182163277803482274266700541898304843804897551624310285830124288211630144887931971902159452125562670218025030451077503697617851702910589704093632547952097062654305441061894007428215827987758517929555042564373837253582927374383211267162824298873157765331385993934158966887340980431714478444024578934457487561103786905987268210429258919050911676178687501614637839742990669219150042478144286046588042110829011793191133626636922158539861393051537118942063704981712080262474379979096534719648441366692073846612322923539159244705872793903754620988412932301603882247425018523710525669718072549421592231159109168656185518633235283169059924907538241913352207248607872977597374234054762479697551973723540009075418750058712958472241316686885170654910449905801570501317605546955613826158347906828678217986398867058292721483024149677659961211566610443856385499690513670874675134891585566530219740587617757765704505323241717543879019198657703454532042118755465808760117473593341427285289738909596719182940163147866622484458701390494292097890317327767373879888091906483429356642979833568841892361227633610241560834162541354425899964724243363319032582719059373219122454443119985116656255885551950461625424043304393880512693162044415949365046769922167803371191951125119413858666538906550640538371140013545728889134487393512897251295724137298768396327655632968470331781321326042926999563071729717258098990690259711025100043201046981021651327465213817305211820609750508162480104897693578060940294673766811495303496243602653424880298798119603459087829850305852391939621341382842469625008500272439769307508383659538895788943171355259936136733048195306195359293246834404507539542590081045084800638413955962799077172691540517428507779498951559876763226590947839443101033562407460705653921144682447370570117932043703370596178119069537133349342695067923581293007931480019766334981667032169527147409720510874159165663095102770004093113148889743277413202778438241217992791145998954664922442749223631676333498203085823012853085102829697838189313689592787214931595314750636147224666599672519631001966066795617918394045931312961260477537710208675244259013788787963124232613534892848133099949063899796739050603111594818367583292975738195656346707177627921451454889607725488816097514147144742818876229075249703901845755557573372989591733881289994365554269200044396906182414841262672433267430481641520301647289674582130082845486244790836971690506584426811395856982500815344248331230416547965188214369271513229925926794365480867319100011769815030140109599654392778820072141467522896538594357907101687190833338775689699227331314520263823559309914275305371106106468586050984674859575302038810380715439137773415562263886406695714698926358693815442803373013991012102518380186837626914063131576878851770449989248707232582503863538233921564424850239272375419362616168611916047680683370063874432575091436685768096795020633020039741534128856209173528484377778713352456040113148853235321084106954224730817523904202301128260252353626573043544021637862635910561648725756480938600997701434095520738330893284474308208579548417003017498135627322847518463081940657273106316589030952182559218401817623194965892318120366659193695717795813755319505970822275178929254148672913236641236788481224960376269541673343921512846480853696424654142994825396401426938646243304339558083454467053677142762268859757960590351146872317508338729779782937476346266756932700412216310008810669839481981682566612153682205534762726067719367094630905590125698000725425546160013679759027761203470171786273269320442732459683421891615182933344670259063329482190910465099760769636380143687751648063937283669367324091688112246569264300362666841794344120656250814679357409603655573571717915403630935434454501974109207720204964157234553199474032063844639622491187585400994036595135253792165840771296713265678910088143891176459599431382347644733256537819501351023196517743782697840756695785579121610245724952741808279796309159477933627946427448179110276804682424766553004099477629018045962168354534137688245469377213862554277009831910743464726623071252529390642919179172285691593828845875819756532707298313703872255799460185691348188411653235864415120392428685981447594282100307851558220574999024686690521058571105976262037227353490856912095611695039288109179060493958399272674936756255386618190349786258736885736053380127395639355790006829641883177869416361915555822259757302736613820910865274004877222065961462940468417317987164987325347236484330846657851609614402580222536365749110607556470427813713822129794548631219091769569958379951863378562208226116304513037648717139644309081691132091315167405669037256750081470841620555648072124253082542480665386361593518519455316286029137421068899773458699812435051391590215582715916369728671436725503069167703084442601780172139022059477749844005655424017078899561061617184882663752569937421835153818727737406060200172605497479010373354505438549650771542617574277562022007794331096430436832558868547345013109590540755945503823976580635372736230963524584178247825556312821656854449949154012119724531352084700667555651646393577080387770169333097160538991208387477274126577733691536145540343324618528116675476072376632901501011918500646281230436533526669097914262450471434976583025057319743231584904710618759242575721977747742240083317951605920535557439548713826075760699656663646898853448407560127809059884589053046629823949566817390651349727389836003891609293961935618695710872225870693774278508216269073450181465202742545598763396825050917169007924925727752671298044673755402374045680333953665949576777793277098308851077807829036721650078211862405814694297858493427742657448580871766203937091995387402401660819772901168730066953567762717523906458169068685330415675738419118631998758181111013381255737352434554993145461626779835669362158477942046226395177790823945839137301838172335496445087120912090432467220122491523246101308333761696363499304829465483584488877729938932053738131929347458916220627052294755968797732728696159996955399050575297663156857093767083029985490213124866402167594612284303852372384713119651894172950718362243949655884031188140947569460060661197280738641221179154568331760349480163853328396193856463846637286623438342112192620191538413643191117878565031290127766493894410373319390885773940170394782133488647091920539604891930699994160271772072578043920893578527089665670949523303197822294377299142874219465487609471717341996387098694097727991775432382367561113833301417240875100749731891376617476334015243646539502546669314727369492995858688661680117357704975992543669490003245788732813618252816009667232811062125943813709458641389526049841887828336781715956924266296700524722105203059344256192857581656190674569155402217234924570977274884774410062838281662267964692304691525401049537396799184466746045251193553210563430836925838812150911768048548715283902138560268510326718442499952941287692078054293358798194533866129208816602600012184370906569373060314577735290489314099004956749661774400714541870218270663753693113444285145448610032285381905734917212044160263041578405749518975414630636517401110996521359880701286663511126852125026335470953736257266558702490423212041665305371076653752684227342872121955072216733485845746209986828124121294136555744026100622551697217979445568344552025634457831842727363479458568485279735999322460022745621873238725973871371412876610139160879218481102597943422615702695393179750286772957428682530829941375510543717877903288862112948078340700093971516437419115695213289219963136033582670691849999096057161128326145277845417168440089766334720693031464459247271939318527614824307759833359504945703505051160248606715046066889368065273886494430456295415868067098702244536316822871965930606901844317882905434980020958338033322108725753040126249388076874888362564176860044203444611804140678815478685937472324659541493981606554181524748112486075789556126986804125903826273441198707416598237377819560151556804320190325880892297581690991191074797194507393565734481284056193727341154645576656925809365812695325287717308401853642029570920390053048325288123747061184701027061665449288316440361639801839182139234908427840729837083271446101212784530610849144980417046370895066483810585693296944442661138485133633876433487283074251847678457555515460511996523180889201601753527189146957909411252270124078496871372492232941608716448936923644104044240007397353437839001501022217144535389334568179121537502505435790494207181160081109050515947886501293282234333294857183441172568529422177689664422579121615568138891660847306085608370719191240473837616907101283991925875181158097633885302632466421048804525835106510910200568529332186436252794905540268028873592644914164191593008594321774091834417117511105575784679596208366846768406865468811512114742577140131167600760354214694076097191370696222662463484762928358361599626170638398675549112826534539064694737085845559570254820544008765051939273733332097310447500967110710705049847525238774632424273151931687341510525010548240208418745699724039385984997176074860386032680027252957439282107065064050554710956786327078521238276172590924997086263947330330736380981174910160655591861984721303100719727395261686379578234842436693199814690500442743658669869922082352022341965496909316876222974307048420063356273632607639712802801651995091708646053121027591356726649658763706011494677420362864244356745296671973061816867060774275443968052207068022482509333135344527123892792042539702088945816004264383298143181389094223472350733321430593172822481235555828970747275388560525120988589125521696029052383449438750235728837537049987969497114986331850582682832307308585143393912859595722126362905445137670710302428375779401970240285139141848597135863749647012322983893585377045800380480797886550355113497529634882414970462113520948884190540756236502390342169259153640226418401872526564979077161535603985237124969594427388028846616021907298369405709033199973104961581992005062522881080455833557490134629297733312344937370478335394476401727682733309841460495435917890724763014638170436518507552619644879356705833983524176529167626715862887657508405149881713195230494265015244591066114301713465161680236438590452769028090478359454396121286021401635122969777297591830051668192713821502972023708802578191863244575773256739970196640840989150663053542873078177480551163301030541328591121580099269938679002137808563863040487204375416749820383763642623686788805624836396472423466725537409259867847173999259057466432414273553587837552711853686695835632844238900975314770960488326523744781548930509539809716823753332560637455981292454854177309347109711388418419980739426166230979026338785759020831572274712303137297372235174374062834306665761084402063617149921934567815638355299030021115241160722928201541301456157114537704479866850330225413345513429825287623284451845868133464809578741163140269995206241751303416232914632996584677081150708688115947142935880509136595984077949959655035803115454555719998752868266567183550343965756999067991963646631065024269896445562928229805266384980076345118852329809392722566196651119528641131549052388304880368315719600680013758281019950856947010503952580296967971578711570342242801841884681607381085622043245598270487977693303282045709541443680951663176883503019589421142562016895579692069096136019991590327733031872484421366156770317574711792399009446453776760667111021448626257723848222213326276060068053199157222630794315368788244521047275840579147289414112318393168149013092813308581108821149151208553506174066193867569559954564028454239841395450219247125099094881647936066702530974651546325932770195918013408813845649666303714310275153325153874935243303990833658817668464118161614217446764206463714159036160074078422686458230278064590263046882056152752160914609127334870811985987547570817525815619388231071747005714432053660880056969603872839105542867756781426944949432204179513438326250324313788282196742300954596113602114223843129954600975974632596913445789466452031200573151109084887181573500025625801569226280587584992393909889108760637165572569812030391465465923955124602802797913655052997099479892354789130620239449769644126957277916707283592359515589375963133076862383189316983345701622000992258148853250547354288419401926593092499691247571896578745593170164173784428991413712288920790435425261656430489591222645317701371599052276790654456035930784665071584085395942785693179465559277768517143850516292075373072305413559231333588054221975314104434258749302720511277715107296783651647393329405030440979317884601824378353083970916735129638947253234734726213334011731430714494408634007050911075050966023548193273366228839752974625648805389968028656399019514413289093753672879596896930520818818688164242495849294862612155806465388266806766153193607526915146738785052644454047815866517510858473649618985086868364009783670043443227517246400838779459342172976416709561645436695587765980631420861428719268943402964030084199027476065873304406693155430882038884699420256145367453176685749062281664202856994969320192029499376674571891669520821094128724362686275296969409282557733772498522008296010017965522819262926037049500441895385129939963088110680776000258091037238069103046915727731502554796684480172072668902541851364487187972345806679922155911846848125114666663327390337425770967375837415832280955093137705083979500671136902403163122190279778024838586118649147149101815998597160074269663838876904567524073871825326015896546244050329370241123707399433340042551029694101175240687411700821975842667449094577053306685552621027108135246718149439629466454759130882438205273103534138362195464294767768579228409408523944425653026201436039748952032955588783577904973059699016312643420967761632099418667689216122920841023351094204364920158161423037448783427977692381240253150397269437849698776312949739024921935035837218247246833151088765005943472501338120470175425648383390844947211544497053872483742067036123206205878160131148822830063900124781207392751637863359624371010148232146631490354186272369300885450466028864431010216551166577073606465722300660391533632236164978783485518751120166019078463460488395072833210430707953624917353420615583613936719471872605032968132038026011079816585752057351824122656969822011847679023178707025363679862954193231178029082769491717687887225541869222838035274722269060459665534377126551669737026686243156609288729278108323345966862539828115852483559433299897849052708899680438859033337143467453203705846242035531751457295747004051191574726591448007417764231120917896389893721221914805187306336355291346987748978872784306760764890563198341001799494487937635502415810298074066587167991528507187484428137749569405280213885585196586068402784395064455723582539328176589403052653926284002596366031322393573653677485949129521915118911851706518433847185200777745855029028785494751540295183174134175863208126001989269996903091566178580415912052891706536449759333434144686912243278888853441537598242138495105324185575982125709099487316014076847286313786134313102691310003581283690612057122714799328551102066467875688255112215281355018879031092428822549532297236508342268144573782830249277633573385101084939528726478278333644539339512499147820360519688549001031295068078219895948347324483221537217406469827875989320475883200248484270281933801506457301008185213179201800448535800124204548796051519482697083082182513924328361237139972517098532307230848162357974481406858667106263045811493357902529475730102675996228702676811914225894916710677319752641489611430415142818396714002689448978523173580039169922991691458965272765483864466905092861640556172774812981830384625668124284442043984109412440867951793463397226124618716256815402311654669663143885119663329208501110694746653441719181746483105045869061009934025882516317859195584529766470208352446304311655782764654082478554180057935188896870231642719342597497889333136466577346794007035414226652167448281272261308243281661144689135813953268164549420199542784308985928703287077953527838076874947485055724631862929397126075092654862109550114783650953267998409901948152584999840905091017615604788929992872744443266942323826624310296516551836997109666040851486905311052601609717410357941689844134462209846278234259770180362351895986729960777295243951766739516083286330028131928173790191317923859616701182387351382448823992477754620170205847297968370446925514702636977882780577592505585542943478138058253204802500704234222922646429729664739527399980212769151868326448432326243357854901809934785680103133576416250281365272468332140292894734280556232027794261251586858664853583060186133268077030145247394718748637669351902468077561975895591943900066700054679424713312969276586921782380656362626525252214206127091912205325818328276225202973471042680329932435366342943337360381997248435839666477484340154654557020302752212322136205826994302180906343287943054029873999739157678993881849863909176208543450510092365040817077287991522589930489472628405014991146303351446005046593633463258115599229133305184984706581791759338722321309687250391445461722172964172469082188241806815805901534247224537573180374635244302205877059194279521908084386515490607733802484865003889366496974399668348490909865165289635014568656117056536496333638936597647537423459453836191880702022751456316073691653137431229728782094060638368384357545747107819005986097995609856480476469048830921062632910397794718654463091972102641187485492953901965986133549023423393434424691175256880242366247993599395165553231134947156211471490906297433337585086729560837515561445272948001487591619205257111360140122310650143383214668663775137726010476393906446543084501137751938241445519549792101286189234249507612798470007096939431854564335251173641551563478901440188508114898623163735709913606616088877283743847569841394515467134240600405265490965811277695225473052853972920451400116650575032310582758694390572987407048334507363943075288823829421180989967838098917751902042199059229552341510134153700911597872544320871898817958438400117110275049264110376913691719092350729689191171222350575703623691445847097082113535628926218141162996429014086493775740547684081701441825414029015993978961702910983889138975304905368551541518813657371317417509282203318597705465381608924050949401397149950495091777500412317480577173205631861186097149203866672829220482789430260360016962769375617581853465457212821875369240843840395025790707090538041516146474854386441519170093333009910820927969217210661811091030622373687605020697891148374101496595751316366130668233955716094472149051147595219056025370819249417941095167360595734006298830895759353364401441458120105034545716375727965711844100573084026648638212747659915368457605773517279164308308377564128920806474374541593540159858805219810465301299784356567761483140676470240686073358957408026178901713874550877487829999500978537168126316874139453338971253375635614339657649718372340633133247731808198831860706391262719495562041999044830607961400291981732383759776813700514429120433485653915195730253688333658928316951533550845919064980947149910289537676900944087788386612733516542717994356562904608561297579235329350235929849122685243742400624344334679838442145888931470938728170096077337576985379021191534326279493793502962456963059840664171867855399096824563584797092953658607280494320984398170620547597548696295980231891598544680378874309885115834539834161872169124166923399260251427199451812247816182227216603119337166571303351376916869107829697567575896995976576908837310248405629200775639191737041473546558057825016624486093782396062733565411138452625179134734199731844004416433794867753757443994504935359022629107657904452012787388965507237587116674876309564784898642462845328146786987373762790233077920579897871021677039787644080624852454737556623074271269900413901181703886787248714086965868421932958449856597907952678535945009935484344206687307216342854420637928472647954530158922001867908253549686355080634772598170920422726671656355725562265425073328573376977995643035359176022973251223509688159978555272883665615540642473769567392829702306211305040035322904340785706315275702766091391646226255466210448947377311524461949949914870453490140618501301609287807491284942828283451340364225261851469068574149221931797348223740930229904158648870851996824269791362628125048623722591785697107341662978849700400451623939053384753491316196811550214286565175371114500487181903041530344559598739185817831881504107205727628920394115460583534825636549259652261797135358624418714750510400571871062172732036052844172033296012409807086238509011759368954561124895236930347059064550564033096439311492311140892031647482676106564265822716504468116158125453318239060805265988730561607894432445281358628860530241382971247272327141039587334078908034373651797619580000397614136743835142824679731344494568192181816365329937372248634739101213683349104864350232378061412869657505585077434572307394025994230226124808582477126003085475583769861898325055470255951802958854420842754485306365526975342619259340176446972034032369866816601283233964225662087300284908515167124262572775570826376205622204696040791238858685526435173434387598938779751977586848227369497623438845894994910023841510617469645540828106631912921959170726368348852580418058615323561213519077253904396205579528014203419455826630866444217026769459934274340219745550577952806016813217887225170924649674191547458726582850357620657894903579132943910929193275249313422010668517071750916795502794694627369647875322343178042582724757685438409907051275897146012647808293712895279430344405017704857604907658227528561143668470987599021869122926693207604831008660414670073492783934158341588602588322167383012511907037805185251600676913478970194436534447647820152766625764323276055215639695554509688380304090027213003934787689231769346949733740648675580634552930691542973264443063299451897063589530053300067481921830530869765241208485106271873052799745648808293872423259214573493871412986260476032293541099915351989639295275529121583372996858321998396621027577824972057859346833930998213793574557465414839155721479518157420018381583235864331597532922974942205201109841970428612352924764935189534263839240108853940766610596975988380882292726912747822726584069447316355355520029255368298788558642988576497217687760542061012012250450068341867568024193749242147466644921786246464324476815340336285869458912658377121583612286369049349722787203237208496528826796064408045564582267230585895994893834003701729500905791515019375546451011274735019695506288815633430983266424252907399312792592817909664129712119429533974511753860605877000916679985291836478282740340925757569563521021664668168949715582492624814857227538107709231390102601759879722975923866223569013785229005192930680165134397186892518972994814491402673665859287298945461630959505240341877974996816593199998921717675929379201055886280966942639747231465825501461167901880399189258880115249778538174436215294184955681872280828837984512324632438608957682232818228893933669455900117329360023086676773966048229474438845232632429873367075983988052103000754982155228210787114192373000959252502128001245933397782190649023780508910104857225176415631619817396065634279220006621655196274812427171631138325174323131425212194263802308043230543700836258868072709249017461751265474682828691199395013934094330819815389029361903668902721260500328136888023758134788402431895355821107765316361479193744970516219826332820415053114272605403284844880064469047328009941681920375556533622745822632264859331793323438257266074237602030860260526111238100185048172119367123478005234381850284183360234403015098701145575256352576925127072506652737806199789772373890823414477277653749087336106063228154241222858290794514461518194266827208801543053191367727314394243950647312058201076163894046968061670908244458932147097206001620231307509633239695464576535389508401627915440905541857137716986957845191570583817876384693414784521700926345884686969108715433340128020914891259783045654816699850890786008153603956438015067514040799245155429726209310888802638165369174703804950011149930282421203727771620354275920231563994554847220040320010564978240704448774082695362656949660722356519615566663857170229806698956154748512205037262803571800127534973407833044780318301510686403431366680916212541533847703598922092784462148635561293212303483381929661910641131457532746854586117547263814137439649453468234556008903721756580458976801252874398350959185570916961652138688855291108978138066443597244160690764853933600830463710382791061097751974474290546231127641930007059114595535378284977404225895975250531469727737711072643739473118228843143263083971314736571139715335430335693352143778288582366433174333654941473890704299294241037114869220923288820170534592731047568164440421346617136475356708895953189215385530422494742855946388614363453855108873196944150035196584266276110094131973113305846150608524785886480525762642459867349436062570022024364657804786200247803094684761538371344986451955118413362410577406343266696749542285033646560805151307494105035865793436554877534267470314496983695737350279799136482372392486305618436445977398694927466262050290548812394894168473923211260024785653872150024093285424084292781759452872926267742632023718854298186272339999482806665564868528717355847106573985940765069217087983060512754535666355514352989324453995631711014048651025117842075007133909117691829227150406738051573216669450748076461219495337010061219094260692682850739689494050632579078465467861945907445553988503026425137533145750466169700712049009197569438290245260143165448069418004697952906834197097528950828392878279296933242129924442244848178631131341913606541589323005204772631492711328245781626660633261065035678952785566349746469961237389293103602630498973177852940842829181166565023629050112997632057810779737828939873719414202147793175871926353821355705778335280226964723186035340805949090090289661280157614581835601416431435900946243672938462529179841452177383315298898615519080821119356676168541661431148761075874232659845696687881552678245012414294597452696461067189658222041365710258715729525624392928548021304296392451395005707436872778630331993742177702647582413329022908840201098315715753740275153951317625958591470667516131963741050759273617256231778055788743286044684617491156742291980193127081196945180057622166990913936864480122090562716612443532068329475974138608621100661143337790996285007049506977614782712320789755831464203597350935805437089639136061211246298843552781457326330770799556436377249132721244424667469795269852265648309124709753416448098754065854190924664981332835929870668626410219741416941188635394790174136943795757954496979811283576956630495664085676757846789369204247066540555725246236461384307912162264614581292026256743743191164734769899971568419811613743976054208051867843927848592344718719767881115175825350961053614036511963371301096540918999016847069399299706494499126095898137140035074772464355023704239365163420950983024221811787508186901609408374334509124436758335539431195854187621167604206338328616129215495489419502321729747690764344892217778678306284564848273202518159834092146479644859696514285485218766195540857145418399591435046725052013192610268603154478305334395747745707770414912545030847199667023214745116724160543517575155640859210254369271038055995355088738569722006996338282161997048769587119363132275958914852672588717603893704892370173313331019162322785543671311442149383892940591319861731558929199549416681022005595558760589206659654841945851530832048979016794802812404250400694766848821240167807175514719917799260553067056537102669619157808515354672151677004917385915877425211445382404598121752633031125849581708939492965329237272914780936404084565769073959547339326737618617577581616623021136939348451552041117787352310603566685819698059164356998586411962971457486021439370933520081788170649905144668866655819864109860378662447785718131858164926277228824316825018460013343378545790192893771825225910733305808061897852243937558112154543148695717922115797541741474428972365288765268696264987596188613225576288343763705033095254638879752180508849875914332606440545745091521898418602045726995016954186917434078274121105395317561253962307368875442898090373819693374337992810160511356128697862428753814238715204625450244687112725085714523513674963463757927832977885713242430807999676507530917791894489827752689895672789463364582761268703318098889335761063102222638397760786335038906094374921393873085425309047207384611384734576710491788483618062665297179571241165493660497395823189481740093187288297036271890419940480716746742970068690723775716506056622113835956256633491866491413446295549039141144278281922030919402207078458269888713292288598046456437131280394198524163217519774961252621280679149231793676103966231612679047411955125427738384930975846696386730246355655553072308612847340369560432310838466089043456704549312480438332782326350386571803009560452624800440218940074259285448548912637857375732348308403176751941885854026254115291773055495790881836660003917765235485601393924354159655791969101139317920517876815645805913267564629355176319301027695949648523953848418173824005503860985676150986869312847306568247757056161679660882064283351708833175081402499624376215304621104619826384360995845426665864909923417543483428627785040111680101071335371048073603202566579255953644378854914064719714947250455495983338438718808729010661513394821898093149021453648419328575491328131775557198034767191791360817753760819654070037654131302064894972896785246811466559505502991762861736110417437524867336485504970169025814527629269991530322671550878441342086832119267487546238535612274113635982178675685486988798704477729007629415372470034098821268992990680969578516271064679462885080390688802864162294605113280545367315015707321817242877042056255601695365730579327078696436781084049573523292261033501687475065116709698174827636947333248516229709349696473182767575834302944733082544935631050869671332629597215313165630377549893907814126857001973217012472812013304625084226698767559471061982711739827909597431091833423414712409697789419648105087198977871973156713922003680935494785925133780385883504838899790752920702349889400492385739914722806341238422454748152974888628161405776109137211895318004561561028408822266488242554948162523063561076210922558483789504300187077224270624170953188318681305620723384395583198675474679088654711383852194324878009085638291138848212764889441564717960701709940758141930604048728877707825625369295419580716846454710910404688374291203541781266836655918301450343800020514498315811836987140006515209220355314120149593229829091071029449880350583401647262988600068971194797049580590735273396164448545234071630268851787254378135479406632966187126471009038277946212278444668397056401925065849482638572248109237081501905549969488542186534179513574606235732453369090217283192677742381767826332735247754858871847595715173876073316423148162909287105503148674947273817456314428254735576732561052776063601701665242558680279209363859921471204497345525970748983482254816340341673456362330133536532597194867743499417052751269365533004736156313987176329165587445512248224279669867282384896731734252344526126831838662705765853749408498269086999679025454833853338556467015900142800532982055596988165378103126801624844601285261771238034519192317018452607652430754273215157496473117149266882348711847216610168115591549790988059274685490388645451929698297379069230472101043179460539215873507925874366945703957084060211578437301878024851717928515963022361708453115047937671780759350488087869574322129530173633615134008733087322398545743856478274658041642123181426141528578383427043892692255926715370358120855610875500900464666680225662982040983944440442499985310778287617657760056225424847196617748566130784151557009886152443432825488248794830853728988383865617548461872772519263908078897866704241660149585099624841243977280662758613018129440829207253682850739028299060117024730956206334734597115214973063583862196879470639019610596888409095731006617482749619771847522008279433698934772302369425798747258813885399916392127653694355393532908570344852789912002528717922012684595915520821773886942539177587635137870852146584880987422170992237325183823470856677331100051447600502568923370439930205986243997463100891607089104400429639918859423810119432904867426573545503478043796508097047407671900769446522238081799695216023707353278832048116649385353316267204951979143930848475970901590607300414230720944058498419485606640722335446434822684052216184021909991303994411344686849586572936726102706698368858631589845718831611338105836978782740949335475013870598942333938189061707494551287084504940874193617737699255196417662513850587423312457547162738888410063811638430181499314442522742569752182337035119602422816327357501208226060279217056941917129620186602969246712983375174326049048379089039507312266803548403151969993497407897396487628150667475561582055847824810927845394756116332606997788754265503541141653368894463676623209830233915524798515017153863304450713422303344170020606759748912470126749988697992602322516635956565785117675376325715328710186648194171899464679338642538274669171971051750595375243770300012076085519473136150881012211240613000457659909831211296966703806704852716773319122563015009514097681994411753725137489312509633208445819828247951560022813272801583037793341605958313102561259264175098225163305946893626716940344126006164267902963142131372108832776926564701995799496145703253509575188455854369473751570498703435326252236663776674614694503782458846898933834610157833436151667853814701389650980161248192098345331203866371938265077725164318355872369790841550257648296962557021369326447113123362037578664589881853666853649634971045099555785598011085339504744031387685126583268707515494477631858520068658442397015249749039865467189341052951025850992582777125444965498896201176678458653497148418904674703275319531633818474521753015077182971109827230563160347488895314145459961698972453319471188138924468654196193101280254264617659096281745728029470123353038289383110650831125502149418707259539641792534344352190711815779709208190979183365829122662289202459521640652595739161875041960497472285142088539609676853663325768122751189784637230279291902013106479039633122556778919909878949548703155057402242266967629123358325128267411390290919723178081901526311193331187364675179024834844780638353200085213740895875320283425745253025655795635004289100878300975446198825100258403385351162514238364171927298600691384555217073446694446572691264771162452779678380391390385979957954062609177364317178185083026761123538495064806991909191146590145936213108674199414786908814451360470087373892709398068932950798094465969266329124641309899321794620095322847410832245866930170051995849415191908454313436897898020404787261389495443167887051234614223998702121554426546739289519695735296717901787007497552744388535913847530032287534693569612626303847056844220565445137360966394174740196367985592340102716354142325991457597536823452301180760125823762416620057293103054878074421828858156781799742028952969850072093458276276580113980824819905704397590320996269375856098779772898609295562781748241072155475728098992509096000989622666865800327784209695641844135134246484084655884206732959577777175164297430412712714059668698266312950238045226552266038245885652916809247975636309215162357531904362999724408719951118668164346198793531321515239817646920267469824237166056189121629086207543820468040223300872574570070513471223003652658487848754577474835267715626756615239863470172235960395373038342393011644677304478307990446828542740047933307149069496110483553262052996123266678559914066122104953642954158987345434480034289831597834416711401313696407293157428664022719592447781979205556649736505699059793577882765537389657179824596342403774440189668733568090091322363686817101643171399884872238910035596649461975727694955955695681449838385140655759603716737975519358293030544111225016176345226247552828052558799096102936606385871770117981790332911205552162335595607635287579010163762825618392426264835383126324888897922939583653307089150626052979258532913536256239034864800602402631110990309251822502263739923805291778680049301536744317629677415004889224773756367965439702453795866680250378573371184946466973386184549403243764412751904306103954302020574753104580197737704377107294342024753554622045088494489329852089328757886928990362981265201654916213071482696667809663397330973637116642362407463522153909973932560270475154654149170435401784053166556112417781790540909474796904986183076646832363710745146714762991354858303418877154668039117777826509600936446331791049859531883654096502477745573778686301471179872402533233817603791991067018312401217574932379602543476470254586482280680079394326915372017503584195276752418943882320870422868111717622793727761152312879476948281082731268031711247592203512531583317057010613466423688686778999676515876603738601484561243503150714905007812047466314096332990251410067123242688142559173304883294012778252901666990547738789383010256595784606256112822397893036072209220447406545204891948758078662236709025533076359434454248136876038535172752103805944543688330162276783425815501287721989252501289029212654160967842041063438933722576707385707822354706025674719265349698377887217105077957793284160797340989497972268207973355928656033432268224799067231794941920563460589712342896692612589533750053759796419063067743248601969259577977272565681917111936595105220514573936815587308866327773136426346380435256606130588229445016492751558490044533936090934949039668309346080149965204930275230099619749844388918390610398546416176985499510980730119069562084269926871561783470219410965224528928762641491941171048029754092791924734621372989595745101108183608411712761424639583966673509073912779665052392237543351053862999069269504749792752739723018771428874314675018942248366692174077007838284258309731229072178813349823609242925779179752696861963656922192994550742228477686522854973710616053029542962083422754267492772100782702492782844192798495878059278541502783172583875557237410425857552870028365358583021982746962726654657070818047386916142899563800454026029953779504037861459835391157346848778385125272957406305759569886794576541581925605448719676053905675602370257868974510073158097671020591227259087888532164320365358624820100493760083512877964378823950258653040738149311020783887024640552227666306339442091971198847146449055547141665348916196280546299000681533603197614795936211448944599895624705155032793904652878340843587282477395583620445584113482436286022881890568089526168629967737446526185724943899461615202191821789692531811817889683871591492144013291382552962513158968809976484647499686477496276684062442888150660168583867923446825355770982467748690321922064927506982574691883291828709250073634220608967037873617295564808355321424695796790878712336975955770767030298619653437627283545178012913689159956422034695539951565444115481546821901181654931540677545390579549942502972732911557000868806440689952114112951929038650738902233508195660627284446132702236550255666394729120100931386180883674120695373906790235211184442112574402659986772159002875671316845280196361920239499181947325403956126404465124753451556829985211024939622678470812491759596318460870391671775271978579400605649886397807262045446098789352345135269293592686106374596367783848219563638389342078290556330871761382853509417673767840876041369621003791283146480249081790579200368891282457833358681705885260069292258111995868790093548056157299382889558792471711804676678880350760217137565564278582816454949233090223481540756605687964088663097273154001382721404137673858039117246904114532516625451170114463828941841396288105319271998498435486667175308451808020688026609865692983110495634271141165970759535728406750249719943885783982241320188469095029987796948246213450104537235608651109624376277233053337943169524019545241093690117943016259621196848991895618149147529441724073041103045750122159771453959294482203302516956376288596553274215961897616599812678511271347914948534557753265224359464207111135840694403783827907912699128910481933788714355343533649457976832306756845471844821430202937854837232032971848738112137334658993466812377740265908395869674396247192565314901682548139392822465181159548159657955495023271615966320581258348949225040242431027376934474082717574703398623654323220781149845268740827399784266175887067328346742891235050380038745977059482667840494054856246077738318339072993738492147282082516685479493030583298785133646781791267901197050486410147296462718188798152251612996980827097109176854008934784847546136720068928492008601066202676143560144479616898650775889530308056645421951160008442214381415988685803581949316809623034145843226638229121799756590454980683840799829072723800064853495457891447003115169618080774354999687793822091583652221204572339422031998669751888675861013052794184370943982302782609999072993293392266134341652438644502167794512965218907556930930798389284267942316100699537314797738384558724219779664383450106991643232051605100781580731593857686065289531307859056405815504285804548324895109917206402806386714749465686370104583701034912716807785980844700890341853526426439590920931967200143932064067510980454662293980166410224548268652915043688332241576590732675956320557008763911609019315319877732560420655308303833950627616058397056506478655673019334529096309830660457767073122600937843424959342084347620318723909774422500880119229280049521220798407519450879695275093570411163682881890605443867122659960124908671260684005149123844297119218296898198282841461327605679974068862395510441980721867566025511573176664434265483204111091354507767200279329152586318489788325640745683684812499702661970936359637265041846815853728514113522845792306198688226064906895885338732959040914737327054421270223882830965422717220490894214974028570559951563124362873775882701363810313984434789134296202680471261179345173169725577433612676869555729008378684687026901740035784025685529772451768979336199402886662956076415337150972304805387765795849100251774119232770364898683179521616846150464876989543945127536795914783497181926729156106925900212402672470934480065184802705822605679751001895011710519202033118399162291555785525813310046134230021324448602435618438844774253254467770450419357106207386277762221861742306225414389349508618970186047661408978706842971598452577489838617288021196670037896961379934606787032253267215564297554530952675340440193957362641826458561923308114400353160234215256556195717104678089591979289975655851712537713191658469427479104790221332146031911896726731389725722218912308715555241310630669849751646791827265792295930765197493675343621264350504511708341652738769850934128963090015222537338892089902573236437471681426132948934610166100802926789121300795771426855508242017933311391902847534795624111554810388795700147521204215685413216197042480601247558587681705135080661733783654220580354507550787571663157198564627503984443872327944692085207979401664476018938657038182243711036736030855855718717402036792406789274166732041148232615404846335116609698160085029494686174862191444375206412872510503580468438485512780173146466654494691132972771758014916022779334288885809852435553279487596981552929570356945972074329916655860874380855187134818694103851861167019688697918312074351468206821380651869660718062822824631191831579464094308481257612442744035139446691685769600520226761276837762980957578831697242111126498310263614479155451596342333094449748797463715117261401011204216189089762080493835460876908835943491990625586714973441139003947155011536487511269631138168605821175188322409335828932966404921220974162756519043361355532878721947942496017296012464508512240870392177704476158111349357130674922545873122487526039442778157157488552227045200235212238206941975393998321814530125858080761458560822502274183652716702232856321332404632949811494892917923822553356661930346019993290406643573070280234253271041272170873196112293745074306401990768192799345145282213505518086278018443547870985366536228007591200615707753464170824204888903640522950086426764713021900936054181503603434999227525174663763311889329444504332016802141035542048162831033798795525964430210982499529252612835520451583979528049715159375501729206956219943772688579982007084651360222149034310195671594668318344037051298894317950691357260030343025295921753312186694063363963053140821220834498832539910493208424016397820696278127523802621579772298289291482392378416255831187447876505026286777560394498135034476980119937023451948474863983790496341919067335338234869290031311208129740490571048860067730666212455076173835672827545365767428847374867643580299100978714811872501782033495394467232272145043793004879869603662549678363938668336301969222076136236738621970760101501989379696315366758644210485169481267226604613640907653644213351232661489111614661889581987905683457154792244157023724656740139335782263059381749446530892603431009541678008741792693872438182928786194705481307048019790039202277402301799712574485160557050799319989582522564357005510720738380398699062678731242715219762214066604092210335964743019950763770131796465649453222071514743428330590217105011313067377309783359619784966848887849529812123411364146214664700858964842445212470626130522692958433570542906632613492408145365606505279903684111421750986509422995936729801829641530598556297427422993524472431106530932067819372040167712875380285037532245158655718772426768075045592381520008386970710351838180300030207732210741928257239749057801826385497153955445723338087752267415064150738133683471946689151711605423818637004337832954058043588629779094278107173012764078279555638930123546362908057240282512610615399322873632151820621196871050716802797312970177943681693449763912073603317213814710576864125926115055498110265167982114274342226946117937452340582529859624222985797232644702104545994322432762835389210456228966684781899383172153602267295413817372082873290663756670874029598195858632844714830683308653860083984611990328936740393712019137348506816407731007784569660713616656954624361246738352165685742469425360143758889546602830099046676591828070378549259030472836878954688544808279824104973139129711197968892099451254063489364440289770249028370931281310400743856257818319342357627947305505757585657305234303836362940869036539864457959919720843841246241987738341201232323753582326678944756988790669601017991408448759713487748935927071992990993820440666502540364485874342400572566368237188527945964807050148049590592871538273350834427829019884793499136113546916656332952661093524875275717901071006512416351458281883479549774964635269671774753510679472958899388763457306461410694363504317286956447639519398422761043321745075905282972676926012899035081199128929444464420469667485804359146747348955509298350222877436332863273280456137450723377489800173478134111141937493565757518809076029829982589049485701849267978289923828731432077283762091287055358521382625411739760511414093829673545100460529202940312083435221781629304408585996411467986479854314486616746415122519763049818038295769609344576275870639057361226228412737340033847700742657031890957163654654840955736946641042693317843294458301126147727884568159851223913006819931968201080006768103959373346409247117417477920936058349990688344485277822575800648920016030681177859231818638902849712772313747409249525992744948522338803332306654398306825575639050196622580207844153738697248359306684919565326922913179363291714633441291926522715395704895046891726923571229177795815477095813894071723429515538344474021550942873072668290495681099648761281327823210203417723302031973316722166594520193831641747640338331296554181821279474332051146154780708700791840939058586790460047519521374257615945881029797416029736855333531698196906710202279918325674764940033628907949679497279843020731980191907916528390023114757351394522560269090709092366104872387396875279043742858194854931215634178918927978621875859886892611645665782269670682031639468558452699193252314249397927795428189724420544903994373633447425891369971538999418961546676507082913661567327939387960486597966314746438393856515997661860721456233946979997800637627076526491321195507169980246249545426879197358086019025525198681663778024664128366624726799833808036958138065052778583776824660116202893162058460708188889550973656255474270871691028736854921211557493207761292753378414409100714714541780477050294705382983423432079915670442024076298712221151770817395900289481489506229233381299913459552210136491315176125058712521804838898459440617013531823219262761986354177571198347622211880159587909105403003087287160154206257377921527479403101146799260323701516401388105912354894808364139997081879763514222098597024131315068309213560659809630176390767942613433662138604157526743762022518112058407130038408725001694264391438216266394617934375869475463178695884946426424702927027702689884433025686224815489576104156457810166095939777178846446975855544244923629016268895041843875022912167003618979452720902819402409693135417293093270586426181122490728149979246987051150049675132079581099489056951757828735446957835410921934763213316679341470979866588129346905312923785451292063057306061380384459722148504339363492890429868340510775843642355900119657484630693320563144595042309658647824646267575679714270319620036268289261555887666174768716744106290091760876897891720155199468806979252405042346613662902517286227905102203672984770283610846025818648570676329941172479285716019292735487561260168101378276852651848482063939468189583068928294424178964917377329746589779656628694334005086598041623649368195221904639419665375744777395120887527846023051987355565467274524248731872750166084805590423741929398773733467927441463336767951613294180832019149457668268389601832568792070614914816654186164521666965917297629365543834524890158343490555025503864924862564440991571384516789741683587653488495053368413300986894846216550488282345863912733649258899377369502534622967794927722136089615611693181505043293536645588546999987481201987770064537946601083538452251173039210380620421827412472301403924667923349404076854460531859537655050072466526543572478774354786797186485781580190328270401320406446585037442707905637520100628262077485698722268618729120911257096642798224479616084961491474842963108644316795168979318788125225244368243073047914395432134661649781589252243365540002449207432498268287209738824062745808524324462040221489360245864629196995639419715434191474665308292238152272197026779423465357289557499054247167552416360677682379536382250833977355010679564099767262104222740046967742936417853810964990497970248107406775614116124228061909774155010677316887387047243736209037983965924478763216447268756931604611466148993731544393847046485825911956167512612545479027814103385043506913660337895632536200181984969860471661253336871968860466887628412932619855276354344703205995883112071327103936737679054631103797725976820416568595704664346682304686618904238285218775560220212503664675010648445242289475154451865557243475040111369152054378695180239179868096554369204271040616086583885556525832419242729936424629460103346775208770377415045528139357919550600379274915366963354613019540658034627164046413664122606405381333612440728467211659833800965316383161571138252965655085633294937089599739251774323273998953215546403698828855704764548498689168456139754831512495500088484310400491517496128216778861659076573319448924575016688336903970760193366231532251208191794537100056392537281579583153172145738638681175967741011472743676341727727770614255644519164180454892404956528097691976815917991678780317564832034130650316721830396532591334535612704200796206435588422071262978222370027226753847433535793455363645290687263124602554049669960814289032109437704836831914552548735135205702711918989195107463640595040404910146989215412506571570048611295619586062523845290641258127125155565838799801184125900310409399677937630615539441302785503865494499545925007874824623399528868465936698492541580915823123398267739257536459061224712105636071603707561820742340373313793327516437316965865808059354744898875172959678802271317091938888684720325496311208805179436766300549401862953974411335713677290661543802789743926450370913567365647173816878554108274563144753854402453436720813280919212747249148399993129519292635288439756600526147276853905065271689534060718979084976286095353758634984420444813316262670046926575499329483070574930539998291176806145334053298651628597490393061507764037715551776491482181723680772908519890615861422081273382760531509891551870209108849201897152641079626314565481078333464397797880935432593774801669216567020739955830540349461462851797678405464928110995603357581800374806843791472341661311395801419645046884638478965284651323473714140749760574846525337809026180419205733268539906909827682086642196670921059289141687345117983656361867448011978172360009233544779490669019323408192737955735222809280236808218443627905688623656677214468233920284907720129219045722153704850625968756230891829889745363100474964415429248755863542829042658734692601846971184432440072621866932003480496458018450629406869285890163902822558610414574401526494330714906672990780605419669463135504147555511128542970142910151957208335396162275349322277865359728601332158031161197107032396708762918832231781719090245390921574968906516919592451164200800145878970245553309273403033182865071618389058722724487234073040427464748164723281515684915386605605458176594514230883377309325522811184254284924663755941816040926980224863750233690919612902165308643572233926643495099462926252902414683556053035114543689672404188973367657217461165438200230996197958919320689420447991470791137623884199960219465707787134585497960405432424035234659697090061022082878740406012783541677236001480024286514284837295769327024877617647404554878713058544583885543096466417372447581841465382734721916792421518089239614512523867909100841469883666088641465128870312547097240287469208338644097178878625301583029697616482473487781148073533355042741141755546451048103190907139594231874845426309580529790290234787712948180017361411408064780816763133745416151719781345980005693121457205510771607918022017362697586090800058039974240205817017669167344250859405776049728382156706533514105413080862658827911575961192563463328854245141413572757471560918530284575380877073834561492841483492351863840853175837149821485447459812360904413108234103661014606075652791535157801022793207204386752947169794442177555057054341798433170368337782599857375434766289427389684444989533189063801984470051484428878955492263238579072670219861431796497878260081763932260929268206832603174368891574483951439005536441482087539890514106006252533783527954404832649550321895316166211376633045916949939343037108617890672564112424491701321024386114130534744512304571207625810556331004298086699227393452398875846137789679190929393658691619834080303213789134372490622107104355061318192491783179674477508563746215092621557300211256862222092745243947100774088403015680884290243110718848398486150829645638979554583945796377102108607713660499116339251846128714305490179374465266626387411979546681934155673545230174453674752196181855727295607366135712043018616574536594221826478859781069180626526549028990119029583577511549143200226054241411943825269365738346372969555182358662331014571344853443228185288454086190259844872335041751946052926512593774075014785311775858284451396720743503296059746892742892318498588281273524429780175707254925200956984941408181555822797214397370137600898018100281533240545825145141633522448139276508058006963480016069765523395350929754455689736789578155118861702317398177696905413616658055027521709080992372412834209387185626152669814602276507661277384639198601338572598670804124488540376381008014423193477964461888183622063411212209886488624589628323367540714044759237033044012182996416306909983223648211118466631837678609194022222232175558402813809045914445514441855706299766637317880928282252598908715728605388479293534782711058256950338736814864230802747167734376214560889809860802952190472224487043430012849311748454525182071854004994007738928316455236277489066010262779991439398811772525111136299070672514511263303359663320827656735863455097564863994114580540173037451652202456473804591923996910993540979859731689189571337603297906735668013571609756835463143496209021826099056765276351462748999001057440058460584464603675795928960702313247280662120725290675874677112454112574905024808902196260126837411216024903053264481443521005909420772702178717622433327272048597226545104050842429769730346286239142439148484974672124815636074547407183748829328170788899630934080075049010090619137789158761848649797453236734013007181022492207795702110071843805402673028200176312034318045837704271305234499798259425019175433698196372342086820053699210912170801692989376723035912700472092800846531628427743799171816644688345279018225974207765918986728662050863240129325595076404816748359777385416738070922769483327277373227541431039759308185971091295300368299546803913603753543658633995140035191427704891806892319974748180573582056684793382272165633567847207392369181798708031514128075850649551947664613138448905954884446890128336608350932145316716911114173984773552332225297997976411802638942969841133270737834786048662276036071916757464036589122535219268240523639444401504572316423912461644763127461579991566576648755391698792101707181421677192038229946723123305500851103014737635594282829995686039050458011935903570972023266495019780261777551494138880462729465734680881922950225599194404872418652831531630442333219593839253148176348193909095884467938813820673932758203993818743186034117809137563732408181976869048899378726613525653217418844026699711472470670665776331391729054490985700897825273344400911050151937082377255112624926498528390869287314249063896627355229755930277699666695898158897821225586198190828588246420736098012320808681350443198651558521520584471232695361653982781885048566538101347747044082864732068349097658194353254230593343537963506671319606564495816167391244283708322410395993657219257960986492471450710046880988256687638117501255502621052799885663478675786717149624320008829196329145685055589853772129934815559207915924019465353304409818567216894873799020340205838656478300119890052867857352597526840790383390584231009496820846500119223163113136917860182555795308531237620313335785194714000748707630655479320579504382809691500717860077543192554318034922452531129323408601897839892949416208087931578434430792290617394536394005590271026324641460966511105525531062306863842840116115116596722508848559583774945222088494142002056783012468466743833710283579179928414631807564713974904899686867851821685927938139104092115809885980256014020912022374340579499555554770669477913687194358292399030354534747079369724309612617352761255352753120273295743388666661047930976771710980398751520657982195602560968287512897853777003415591994782195583177894508667370558832890051067694879581579219338509321051556530985449442605862074856275385987396102306357123329182108211760681335907657504725681332978379987517247417723504739182434965728143387019448571013981525041973139593975877864961318893355443281399311351347369771321462182628101052774349893878340181518177085411895672358744795797159460098334080200738278667413978008010605462734463983951444599362513346626335678299930208208604829867574793816972829409984640876548943986428576655837608052967431146843451189567752488635607897326740418368943600006428354125176676580720121494743445202027258590230732073707485726764168710120927110331750866667911216326846719530872167672490406511763395593968811934657768056606361419468374775566238699579702993618949183251291987290205778490051132661812918751597993794467320272332623081401502468936690861008014460118793107065597063459395240337245708843519684959235604213486474912641870732968768571346055398345720520513789118302417197885921847684072103894886994833646088404566278290121529853807220810125303500543598900635334720545693691970480386862788332348713653130061639865341980626204854147324046418258408450004111061748066155744275351880716969163879274255802919915782602511024118488183213394085666371118014264482188720802546168030684176364394183592844033424883220093892803747869320646156574554248883717465009076767862137686938843537675041246650121035798708848799270853213984055737983033944691739176714735800696082290054255053041634077288324549944967124105848969290241333278465701715015812294459497809930272814171938922690359779732359908205110420455971859750612952595252797150784493809921326635326713696868645328405344126523575724711681400472319082673230582385890361948779669656439495711208401934234026763144244517548705496286802152455097425055554157416378457267316253209046988770748739634140752238337198846393421908688639506156026648083842547918971572240537342757826887662909017994437979690294406899040467438811138768361276406867512917940608373894151707175256279062859532005432718355827008101863121766478121146784884511931560052999905536808799587996758989538391549687290580723560866457257884351358075402632331252101598794188134954532807677238149028329890725561389251112412198175376376041122542219385221896628588348088804402277976778796596489849679602335360634617842718891369308166224517837679589139001842309557034083107821897018040248782625798137308755277416715975917251870097419446961346227293255518295788942910239668550505461143235090187240207860830237666097934553817585436361587287367664368014392933368948152862129843543011305551883742432572253352080661043240699625745441716068618592195527759876540641762584719061910840476327560893971684234861988519751945012715181182543417265502081080675132420186237463572964842346811977442001237873541387818730111808948136469476508460855945626999606939849628725477161391756562610332517876311978873457790582094111111830806820030281839817746465018601372303488673763923434189557913961697782851993768291728741636183778352607199450702099929163139221952473815790255489625214374862012405792487010339665512480264345716264954827215585700139912524692362781482248865277553174192149525150760951570837441498471111823366602278169344814264737093235274046304728060338414109629625621613481262159046147369345112986971304381077664741158865249786246382645634132510093019686964128778722249603012158957787757628334534090926099476552515882774847762878338662470121349740773867616980252621343328146211351223801246394029677377273136672248228590694775635318598040030758340042211057990763327538544833806132198784476971877980442620428033608627249522571937938192762175476413034247684959074646152854056893243057452378631637595164544178620934182216863589897146078184967287617801206900368423559216821882512716407645693756274215918954964493652143998882687450757824605528894223524504753149962453870905595043668820961069716351862519929998413640984660580225698789590015896358623368887375281003751299323599892026105230873760705461385384263281613204228249065472007324205318425019182985380884456550148783401371161585125154057973597853337942431674700126487202638683274542453767720437442419645128720309224683007714918870862721335949619574033142361832535957134435288295536937883790919904733036496254332432962971049748491378343361470317943817215659828459666420559187718214348141441518950016089171918909635814685922574723749376148990102923480141609123706217512570064906381478117120841772130078044086842888298609950067343500196078810357351698620707837996716183156559240392670360504367481460446359987148708133775968495221554850069904280462045753590957271382811531800062913390097164662427904887530570056125807967712874424618953753148381439079985011620841565728534821527857872095141834415905137606451535794706289076453631148420686193053865651817460802451717351250598814442190731541126898658665385523612269427202449699745630253171673806067163365007249542605948763325760404220841558366183916620689304360135320452388246736332368902606922540505752905920729784091052033978272388280232490604299168670068398354425855453164078248184656202723957360971798763375474501285249584068692061276743720274493063112500301451273244358249957415709330503475994481322331561080840017513825845926367214942639004174114146209899806462870957509862945016917247349051807187102574950703519644011598213073557482451850085503029952280523067611630974812963208386923693010276967335478695444452362102890832758280409510961049464158396345757623639991707827538153206011919939205301426643678697310084771571709546016146879014963012408587552168377714985780968405250040106827776335247527778765304162625476656370367611425148535424824010944494084365181857158223955931136544701276253946667074313222899388871297805689113185101425461668461815608426505627700618640548805510354262303488637155929445516841111894976193347428749322109122834114717118970721836640367076967210752683793168031465945012014292100542225194205634751772355448469020667903676790384583345190657137469143455396949741582042057385096552518218707660002985968354316747680891381216125396378640051145942032618360101080760254573785413756525229023713671274870083418039449213005064298747534267854107754626376367956068896773932087114370458422915796906155599967220813980687292445730229689252540217156932881575856008849510974543957593272861213589831083502298230895322364330593433684597796713358689599991651514826745273662176194734795333227852861258006067997817157682321862699549472731665865498821180441129269848327832111336659230654818700164507852810380969039605241333662338668396529809311097504606487172951486388740780684935414655010907660084192713854651888186991162118777318917731897023931977929882098789509507499484901659639152184729611519524784093182075234272128132229286436912912456374991756928008515436492455662513361813664377038070945164664611597646441340755677497373021211493887492012912015925552450978857013371314939454140899694483796545280694098437285019041496131272576149819473127732215267686579767534443878447963164126114722074489143958540287919048619516806816545515046004621813297143918545957167312214858034279629859206389173760327936622401682627357848910688330061719591044046865525794829831408106085860843402034483954831500715511662924208379941839282864305930294825479505203697698539003222035462226684335868063394776395823225823195657712226851749015535514799082087731073111596943383374994356225660125776737682903063866851425569075078442607869922620889514559815009463421811367635730281208257668107596191976002570954740943965687069101310508774011293558276415352585109186121174307311453457254650823061713809222598258522542230203503412409478377292471133725712410391467519723463953579096492356426340737487499686692515808778215222221911406060612882699629472937059786692827252654468976240204277656861568139531738036943654524127376292228919624593888619907220320794265631864822994929555552742160591514376699312737839594123968873117438425475260898805545180658837492155153770730277721223283764373453015825087707881609539421137560816920980712922822547420126540614195128491302105784872594586820583598452955935601111592273772976593702933518334515947052684782631205732748337516987052781963157659158649024344249372061673835074578092592808980358431695491117652090934285625162157898716551459141929243690375845350999756181435584062801128166657252330926980958370089109496062913251761899316491460366783261275390902086686154273625690677016404874365526970404614248918695672632722615985040506219804195142681710957302628230743844130250978656609387648273250804257694401014807385567893571536894358398488710651369498362399047963633527941288530964857187933958077579124341740104948236370771753494780019177046170554594772316060667151328529268681329002721054847074565883456864663752545552470067905731942986643992534158538770569418271878722735010289468420779679767196600384663579155743805682142881536555635007266959599174505357196751248644513428328533120092730471137314822394859748983838905054410259127756950602600160822566868357279233457957176740450015724633480769078224496320597050714888126249100020340980912722453300368679037391887575176705417431857269398745418214865679640586977449876249674306108487536102260490905626596922873826870072529273800295404435383559147187299714660753861162501690246809579954703400375802312988926750242022977222898156658108087918703552399937654428576995553930082708251950964539428355876485629356560655577484441536454850452734986846369042692585480296297281825112700346053977358968740384502345488731236695539807561825517263423980438394483831203626313812263670809553932536274914791389875596755158335894080860797244254127324395963116327196041773045832643580862354486901295289735989077511954819052382855054725122137981018687746804934287680116826362658628394099256718791209641818220274971656779560198550855386377483358123817517484234379198838501357032606865360117833218122757465959762021291178147955708041753875497484132766530810830489597821208425546082935112179519200441555290232170966931485452555059118983539698872935392445546715170857643914876194850831854551775907252834738056284684929655081789220316788459727370685746659570328229351133835163687666247657941295310768941553775851259593707433686464699550642761968019925770115406597271583488246230170440407916648564367576897456702497024649192150613169470842612179588052644133014471259682562323553120171592314031881082527551151364795788069801363992394922948438338345785928795970796581770904915507404040544193581288230001193267532827771839801208484645850536926150030920210433789738581463080281369858391398421394923640291874082963994414878054001242229414121808539602952439905026551241978849815716436231267294496592882719918736520764699790197829038285955755814281009618532388789311495439086336646263751129307989660208893697380941413393836444406590939683152063892692155979076543261933764397370582706578546306645512992602098121774480253410187155121902593912231230100641297324476390754754235586400691024601936741616615734385087347089313271950007203847810347057993245810674009854340388920102818492082836971025000477967879325288278372990749428054077352727486578051665849260365156713957650733356663449137424300983644315751808949511862375406459997458252999979039924992338865970811536361824114048628432750718826435643225738213661252047311429871256624548777959544011265476373882240612636940949900291781326975999687506912091310383549603576382103952844933481654290159437537487931558936909124034236781938608619751293502835721587714276785328110160412733600944221156673397157349641002914256269945578451882855622320606652049316291322862056733280483690682075183893868904529904400118300591615584716218502352979910173280659193897966730691210234695537531221219110830185007004466599664446941482791550903157700374194760737338304148764645987896683975471449745115308250436057780012992436321949903290224812561571927637650639767447445903334427402144784335971509525502778458371900864365385628990018062223083939924790405709271012650360301631620314253555098255223194083733088924217561957672646442518477646283436471175999454275976374185705449430420372650290081472344319053604395446078584781520026477037024580622173224839590749638376637374377708515492917293384794669682838975376842523581978085771539581601845086605322389683573953134445421693787753860070073425849458936757800546796593082836464736153561870343380914513666841615719433700347547661587590122936822739022579383500181870708685934875727417707767251001302080840062590606931106955769857786337444672856127068998044282016489004734947276305872056294202827121340939799011973486882767768960155565192567596900689960070079637513681264502585213688617757359234090675960684275628501194931224743651897372474123061198390827311815788971062197549357741240054660178681069575730784818622610039782333584541440305002435488558046903720901901550761319925516816747183045675515754290379596372736242837780193590807705581905810176471591730601805708908666878851529627867885033773471839292754261158952942936669749637920271830811683818383512089462972930361535033943664845932513037754664394178240398738879113294302118737101725695951275671528346764242194054383332380941432420109221405366040719844137583760146991719015084928905471924246974734833907753760282981040288619136471693130399505471643538809907922506676939218174592599731997862640629594472225221578795526403195562022702305311832925022108737576716843204891582953492603638581455962999434895556031275741480396629519640212858026422973340758976943061654969118150909614689058731253240159729131459243459486030403746999922870238268988555791384935758162434949428766255177775163571102549027339145432946435837013523212068362783515334284966412967911662401271331311908416544824939877821823912186599904559334940901883731875742228712890089160847278445854038631247044728948365297532737616076773334519739654769632802277486881218048884854307216416847350952092901445450901869155252800774486869678871494667892311431055093489815779811046509497276373375492027712222940902763677885203166145157853626112573915765611192319381711289490127675546701547794232305077437781883341065774319447875194715158703381794977272139835767728443377582039579608707284051913353715222161370774199828718459390793192313546454069640761128875656699956066382514977227587672483997703433898474029773826556306437673767065275283196445157228727068151081385360616887625849316048984120937023386887351388376754005841657213062994114168835162072360883776597600438341891442301654706095889378175520081761276095272563819013617951191149820497928028862958136111915544558264531549089059662373815062576867362881607532357065539584123073574881267122734113339186977889209799873374418528780368487369467607447959584419853429459242187186754763044630518448400480066515961297219071192022130656539144169287159347251591161868362549796274875456292106586209781801202714257630419053983156492334399058341100542575210034553838928802431288286376283955969521310380373041129295901572903213143645822150680344620133811365625586694154764592520549753094490714020531376831482954944284328693993965063348426495347727772197576461945897221102111542207092765823080365190019288097898425508944075861876563717402347943194034778877010622138522090964466420793583978334486118376151081093580091984920651637739236270538652108713770128673316160064986368030703987029518377008460066774694820459861581887033405621333029679240993565718281852163435587088858724641039198681540880471978260962421158161268598612067039198672681508387721175837658795283747819630834965033421819954411584336960202311703286689891202330348605634703351690677301819028773590675300203276069011716344547895653164588615151285491336421570833576062086192514946951176706023666158853015966397758018806176829522728480849981954703680366060719448617924923527562073030261946233743995761746283961235343012405957779485466197066528891758135518359670904018700542469033082589072035235209987895579356381172449982688025965282910068555206216728484524232997170387521669534114652231601293748607116903342264290199252500836259224222959358273056074602773139875306116348717344209218623899556295945466272749014742588400569021789878017127837853021050148067723885386336515145826588473667264811213734169621717661927637100146982984448574945929703350322361844276077861286384025304330464300130414735142051092189448901602725001809279070975426147485679651276076107031791248225979814021524886848609665377971881309646638203677174144309682609943070519317419075558582082053461598707028883402364337087477247770372889631451973421961701278110418778060112479725368387950415855835287875820641946024206306103073931266733185500487718649008282198305094119460118735092990030813704675210381903626948688958944533438450108429978027419275175929189970041236661516579195324593963651070143058026747749814549173846750172467305282353861641199486431499380803282675715950246358308012398454930784961016595072593183862996571448239297070490303133412648018992214724578937664246089978989410534121318753956958327326821024773382914376910874560678443921428392299547628051807949213855191773984917342575147608615484558976946734381293047384276049035382482867848731842399827233152226658559909435395329451696165730038847105532070347220959960393755716490742017403594229442353242530558914673407454714122553385864187724002064005522017570914687754005598207444435721735720949013512464481168706047604444037775707748143451664554432302393846321305318439664491514486373991914727487998436003590060777086924668549721970862433790396953643412069922472170865718059908622415601640319825413128530221615881990505165549693700133277547534491469935068487349775905651665900722892026620083239631430767656664703112251168141808905604214373815084561164563011845989403705383846662215348355790026174163785954633376560385163361995848591085646088640985177444275238237824019065762514148632657997991508637873609100100592844677373049468106079322176952268204105888736709338186414931236359648006199511188770119174662719315913310482717991398473691686800066449350721572134003047359727337545159271930816450813774543762966842698879732293114831777921072727291741483578421379939104556856089848929538513268697256500374177401104101681002109413604875644182513390144743441344353945111390049321543534969248563453269585011211372722671449419937168348553341866793085281649934715005474656441734634975646055324990146208890600860390594964004731767842099258205395439857518984573488404998902658063095502622148524766473165600155123185632551116933330769243558083942756300076413883889973935519312890717108794698096760132626233114348193986537545329649693856434774929950218837501501999226446279843738952515228834690107647911875779152797673927919445891000231081398108487709887735339427402603209354801232266829327041502972591315356775579725409291794934451721204725267880140713945109605444566496399808747775737234135954026373344921653373172814626557441045347955485411006940502755604783624940903258137801719443800386926226399443242417217108937806746149089889983467533513048941063103962003635107290583016681227176934952216710088083479084659026066660937970666218717302200880269491915398828968301512489729672167981852848667267292871994518721540138897964934643537833788481096657707981697030359895390103607682501396867683784147799725658030987508826648788983940338396354520344386416327728930352149008136835987372268412694092409754121954070006861448044856984035635428186139119286268611403093540952258551610653134730526978617449751873490456664292863806634280527678526912385001510366376795775087023027852994624840176407602176433590292273755716753477968630967707844531107330793785990027222558681746585838988304603509015063741701380895405473921560738396196466855689084082380973272528636527378943199065371256465185264181023155791184236682076806624428041280669756381460400918836190604052809583968938420921872745625114798714128979645688540149204099381046233484887123653735989480353215543135203144222960997976090822087210778535154090813766784813897144910111723048562320865950948569681638871400562956981650729348235269358460180415928137664042420571331810802628724840882611836695587161295604742367110616828920371648308531233673926858127583237295116480744153863893494067933759326030171775384241797521328312637294086184490113576015899588676312724718127298272288670223022827321023527467709010345073521374713045069446682828067342915221835517506368708555698115515500625208293391740190979859022312071263453059849439547399919719022992500879048578044172592711441753042309575810543299917835189516883770257018907108821419037685093043301980221321459524128151599376176862746271724502727148696952627422999889495173234402785832902291527331704774952402754633143400641241474931443471646627219678515432123329504052974607282847208895878507634116243587444258325019996200605585203273128971669658496427157712090542036929015733649084103035053951207765256435744694001666757139425565004474696326643070432357901533451615532232729516906634711879341496480053537269548182715626876794975405182561075785494790514097575162002468572495369035570088512633857383147367225460885951867074201427547332368253534919464450458922197483363027487004621834203658095837627371388390604133705217653905571587611855980973945573226278760401623336443190864439947874229370856758968367814143858686898150692766032114873156988708991873654894810425163843925223366222141942825381865200768778896500560986973098803771299533510489863293075968912862600737043293267853622039643233523828409799751765200279661901174530426627462642351298991744093058862236854159852977913872575239155468877882997380633912704702262287226837257112539278596108598828585440574336532826195382732349001908651621531518488541021327585085258230716460096040964495851658683449509950902851877287228996408127499506325740781846040445366609391268055654496339731715376810320375361439950819514215226343885912099900802327779993399928445116633771291185430021759782210381532446216206806962167770440580785499054842754622852762806333028786935591881869761030901892858643857766331850212450876437732102146571908661455071944932251087101135179830700227843993038678272904229867581543615141402349025001392160632111926411558122026261288574039140263788115930507892237023362376435115264033798052714159651452826284116871058862867375542885440309345580674000754715007987998206052479712476044350110233462854076045744708336026172836192753573902501318904468080293179834785222824066222376955469229023882940319993376389370815619006977775200724927090418580928217595943400695825761925644913088239526520256074041571101573529086826144970212085819851860012674523169755741081451773048442873940298643631478853978231419230247560487750651983639707122852448095550505314127686512737877626724387358740916873891984532920311288900771817036965021544741111981788688446654388613024467995593680112658399619389231829405108444304870398237845976147600615175375814955970054303859446088791907441603424962674311185074417539101489318160403040398492229114629374285238667165551257412880399963683200074809721328374027345877648381242029505458839496343398864867341844316421231176019509258860812347159328490360144857752134182623873904802574586290743952150790330535240466866658835493312778214225233261023858048029209050155484479228265480937965228352420243292719831649166803312830361386484345633874576278003167555297919985379347212443481951131734810022955274162603328433747519870184996451423897671596685938873476501996597437634297268348954577587258710093252583640475408221726957371548192519420138948966584527530208546735352132910265639716642710424641824285616347619403602949410033425132565935645921787392570109478843483580041788814699393276866261313243426412789111157300165070412909152810110237147847053476410988811550452822174572005226400328244077808567612599827185103922677827804942722030893895365350145252657391391030958349395092911537613217346162388605150110751921858254050614063230928354228923455222049080834334471804592615636796161958895050344356426225599893544505331111912806139374842925170741652142042908134846642773572202924037865061325279813355617098718368429450286801519072230163281239473949882085732680658787212863644832353723059493414268488959631935463458584705274545588942058226136138986288286438487253299790766528239902513671381220456914215690909525394369872307684474659562167177010580407820311074890863121097377399708898361145117153634600735126790715769970985543670349629528577032385588176288315074687307894757429176809330642153553789417034555984276004246305086163533893248445068623394218542458732567737784987043734646463479514116963360681047616527852690194558024830771823864228647328291817527238124323564129437357073233173041596615453155723907185220384959779692305671343456133486303040033869796895945235505544700009832976729725693626981800452865278451409357446748512016061083603289607267753310054038670723574400015711467453437055130642114749220509864855807201613863510109724378807031624632562104119968020480541506318626204941519773286152061266324441979912646670336802686511687673969592741731283734087502615881132552324667321130140105511767304079527592832488235672320869479295341305596686503281194195463300447436576785707155886212843084475050698933635896789447785278777586454976419670127840824326387712509891153305846489371222709669454589958818570368307585544567223629006254702863400916526066543069383090279791055564065496118388418607606844053097951331536257804361225703133365224675971659661694169591075714271908847673494484684078341537988311688940508977154850779087367361892313055692203898232476979965515669574761085979163318213400762609496917036896792973400934067189551152951880396073486388286230816006655951253556518718806599071270547449575743202154222744920751514927354077766164293438840356876468967468038316119556213339353773099844088577291737629911541347747640454030055735030802391574961293019100297328031347886421727941962596319818682636784999853530107864190687000637231024105321777491347774077031141406599848631566274707848839559779871175991562664514201796143994410698771042293222595705961686225628170841852405411777441263756061990384085791128566821142919869297627075809406166325438522852280010516024977036143147276724745451489577392482178648621164480951982744663359533004954174810158783661058238476383347193041070791510110910802537704658685973301225078763323918618653728420744113412048043306140671325576615441888838991580534195250423683746563428490736616064979223010150119412291937586017949041040738647825522264718252270836262950541233720533080528827906413666288279123653086433284458543677581780792213144384909291552369810109215997928259232321892053770271406684733533919508998228375194217156574156952628282181437368835442044806875024636389824958963616655839194981473880515751767870984361016412435084980421466671665859643788441246843005918716168994503888457445732644942491042759321602878800489676577744778074063032486401134858600878612987920176921106669043876501105830574260012941451934771799234815675050422850557712343393130080549869364039397391772901368786469379517722013526517833901086728800989466906599935764335329732789051006001521196781657326285837634025009857003117918690502378042882799294909757416362159707022596025551123380127915256376540947944678942498832730129645782321338209255667579319522998526350243536515787900433184759767367783108994155402579884362498292844068449038288241078756255196165442054723324705404884607294136149375637821584860581959748578651032934578051598809627924121829965640350625159384860801295633567693362933648756877934912292904909065764734817892750376972576269899121212405929197006066459751860999437556064059255933314557532313392158295832160572673355821327394552436024376542328318909759965002382015184314435683912172445048040200530382759012069320272474601971011938474139112948300818537845787185538620280624523114457161522634884257183975463243657148179857369483086117907063421431811118856707379205979267097254322459401021450843411233640817685575894185691168555117981995137760164882332041635557994881504507930098414331262404010271052408174586673667673711838287110936562655323425825143069666432864096902474675609719717728576994840866699073978438516619878264787133093002486725266388893800645180246803393910556980383329188809537405230465213689038525244892030128272461572805773401838904330749333078419152211706048222874154402522312797687975042815720572210041823413013637220184413751259989809743699636035316649176936188967944865407696126907228089431273709385233900011682948433267080116384921486726298286160742016942667968320364659324345458512194881460232610883131157150772654410261757887761819654905665228390429690462956198258377555318214400939980435995109610951758713718834437933575809173369443854291182604403184226886480928541464946689569036931355661520685458324058717540184873790227657357533910001155483605275182573233226057658390698846258424983799304022618864688237792348681029618446511889406417433000377567480806717643445193360651285600812966180616091597236128136816177793029429430073265862530616900273660594155927932197251789951224204283717460129070310819714786979908366545000127334479936903666778433409013001387514170800549666826669478965968910260238119651760329536456775964450988464441347575161326563960289203870269588970532748930302123736651216174981674480291611074036332748647420932577489654069164443561271680634814722297427930990840010006492661464228817450209890225532668725263752115904775252807778281617553301000113778752919708844376742510299202373989433054914219721597906828535038478210240121759293022522658922400187962532120852126731700385931810263802279629462629950561795418951329338384548356770405068695823432252772856512058438316739387292063474149815054564172620156464040568912586539709333925861112051249792696325573204691813028181832696106051330807432651697661044334661529753204440922715180865044012945829594197160700232973781376157462275437020692148894194526014092002469123025587933317551601776746807096393439168776084878639387384381264999931182908388322928313394785827894107749231176412450297747591878600475625542941113992328072128519324172552756825124180946409877917698038607864251470167372963752171926928341502485352276600422006624749919344716284668782382245783926624454015149383353870110582409472813875113120611138179300756477864433204865693754978149683974165194525420961252762894542787498249065685150421043116327745013809170918238856267848099686160690280576564075793440690147899873695710024436148854369887175490972972855496608422036683917357699903694788817258689616646762982072174994017031083843303626210030778902908488731879462064190371349250336733258623408944969307324511874120034548086125436940626738082216738090725607046113372659134815359381326734664419981966527233670745769333354686268004685773112769489560619406643496337741108782771838206879824390513589115989250248592757435704936675653331740406575081620196673662788177488368040339108956897645244321387113312125578884103636825050508197546951310238157083985364526091396826870450634338321884984052108147245001502004865595405108367673834680603136137027444297786830768186973523294818554031826532414587035787821228376245951864793226007658829738584416681487074855580800670500546194780641816300498293688371297286189020059843417979331309480131833054595740313597186100154682437230128264137249660944905283996400109435136839348198260668380233379224508662438684232238441704912613232281094797294533979064695583376540613444684757927637301098079738799411254761909340245873595527971399476483687951516412359720533281162200248508340299772193468628164761380701857675106210490221767914046843823229661210433078620937339534910819488013803060282153132067546648580409969673429387602796244866978379985138436121790761006124930730164969308061930876207735167096609734846324335191728319556415078675389681130408690788559039386950895550481563278631027996597261332381051424281682138507151248815994477517035267391114829735096859786147470218859299750209031016935039031713960136027928210504768022798270013630575871086526159796246457479011401123351391606304112261182649820331018054134944666004473970123891375673229437448842321754219920439825054011864358157093845998874738547774888054038860641321791541039696334887679411787600068764365058422107034256157810601174450517997344721384570934743193918670915555234500507554351142392490797121801797732004220888253858683987104688754926738636429369223771538230230786264357850795903187682956657401561172756427411076157223043911035618522471561165875494965924269682167237821507400261045713571676287460020311701937161928300908883825145692925724771887253888767183123944559616374947232684247883175965472067718934842253508076252323213031089557267719087318219182406329404592798105812723215628521977778330621596639255777849638582630685887702435794845245102327588607833171147041660356751780471127519015559350927749831428448552476373800155734847611641801411695958995243880325600507822791889571752952375110049096298860814870464751536077615096889624443983987415321386603023547574662879152309039949689140878836449041845949179856166497777268581504100166342789387081998842134696576825929489137187668297024194010202670358590951349230406929008762054470088273429396634659703470398359847582062737941153877472639804744380223783449724187616223328555596608340993049229897224856454711286497100437679921755009701040697470962577489320601533763472934342009301830927398072879443507323763520037249632721460740079605069796432775299684578462260540910662120369295765443221586552173485176463196564867493399895441036749560397709881722794909937579506898394539027545279552783286487324114038371158560965608988377595189235235861202000005162442257860677580093920082119074281471237683499353281276266765297861208853262307304398455823978049510425458599441226579395453030203663845669231481979672946856711785092686241021914163766895913538206282407504093480714734244693057503540259877291325713079696827144656881747202595628289692182529871285655000050561759303462213769585913182559845306047121028467993948485071190286871013042556589405701132667793999029557610316480395702044894057289743018775493666676747864091459537273706278660556466976746705040431609890442770027633410828746387056378407156003280338903435927612900039454447599975496686753308214595634199201650842955768023927800171677432523408556485756149567266345045039486921001043818275593319924926716126539726466786323062691724889091230230026404412411555889754808255728833918308678050350253216581233581120761576811343595232514910022290056437544422156127749341437817260090333364548973741918803537149376256032864909621972071918603932644461788805650462983439862243128132103187071749173628765580997408544764554036863000185402816724702389075653105570099728350168393829704646511920830969370359366878647781804918804842776942057096529373655343242189566098520577633871159908203577347018813672544699055385020119041073189921916256888913817672761700236935789924078783760639926039521455484590876085769732010185825211195015009947651403761594417829798313912435167176758314536552859114327862055913498461192704770468379443122199715072601626819753282302594606695160156887916555437295676956930344595236491318954189130529628773232404089633359179541147507129132445364303760235824532568882870414387250582168936270505588031824361513331677559941695710305782362682219345779030958660925279178274881782721483786208909540799818277897592376523873158246258783348461985218782191718436757205914248640655627191684760091712737459459108659330340578711728410217101129708792978949623575439597202427193168778924984034417345294855129957404625985732624611181178618001824283306761257652888571099362175798522030385019036746439698744880470467024044070423432319433188038721943094833501573162550787348739627991133167452806265016534532553633558995866077631473346742244234768210977611392620605933124935354051399006610020858934134867688786482132721947518738096419320842880970662017158419843283416853721053195526670457393657352071931196540472749594125280778502745211757807218405026557401559686390297306097622371434722173843863513980424059640210790541939668102823704700441483027679105796497656719964309403564037628986047176054514583837558080369569610667129738332186878426751131789108819444773909835090764419670097364056502121606459450906090010488144175259303237923194902529324690534230733259204093011044639117333637166114073339226870822584999184878262235330024130710427676418099188691878570429543305308607226878579219496575316794674897129915080370784951075784812145034602828116715089029228543141261935970544157684771190148158068078878076295253252736797881407856204159259823719424466963523533630625866556006040880381276927833800265955115145793721618331607986946354408808543766290982901250922417247345650542893524215155609883930540413616624692190247132606899086287928705338659674729084419635250053166805713436938600394755807237965358647810158478314977321853609296146003012458512055019181180769954433085308015307040239626286951798629557341546346284303881570531057166381152821045266268900374922663449743152753719386778105897408618775232856953569240623071963796107969265525467978733970758266164843396502401302526228863239012022388666942234541933671697049316639006667495116772068407925569755021958431921281509799333025427120644172800987471999612270334420296540022955753948331059172666853942909634888150738445630088597912685949007391465840604799775618848430584034576006458732957394875479372088755987005110395368278385535030622686865082177495321659159055114659988768919374046184067895473364423356154464370261801597461221383195904048429267472764853197864744883536071548796674676954182590983288738824218029168850597535754370579101329521074860967957023981296172907358399885222499802326797917219988309310195502533654584478726096522860054335996530011757654707253426229577134013684559210590190884369544275908293979174807422976451780859180563479303271878296508509520357152131497254068143689119100053598627433271409044560115839561920307752471953019998891744807945821019284561664359667025293707633722176542721056259433946946039499837948269184434671445006714727400331403866090955529328531343948278086423551286904751278808861523002922427840722885432323254616741714966437492745159242940462207996735509189824616866261238425948323382908144325844985189875703161801759044422488632246728018491194299168058220940766541876589763278814456345958520098071503790948676685441314639756607037667694335975011635073216579809917291421151384744555048442665572288392832325181952060894740468359157405223227117843991779264778825693327751959912337416772513578438789248329366587121603155189408048012303867517133187616013724077822910543347778580241629499730296244821227036455066909541967530981744583797556975767966503942028059642442936407494286533090152282823413095236529444785108458133896228493085199568108456020861047817990685739483799108632944945123315862711806154179701224611056322207108838866827064784844046163676616298041545244183714856005746929226955220778649835941398822707602630641840638310556928974194840860238259904606390956384756635822553853240711775737923296951806988210976008325845411161667732017025134227145124317755023723425227026060279409223820663368221542413848314162250680555208034868057762555182368635231839938834674479584209937379526877568481449314491414610228109128592375615914985309167939192241828996969315011869243070189214359810181474092203109387694113271779711621250310531088370107876915344737062797607600831320405127670887650213213656176527408022541483903951398290244479552317319064677898672229039173137916486884850818841481530438203141140161425406348648385181600358129253894337873961105189645980853447965832615416191216911302707817806135348463134458933019590162449910411668695516949124153499420582444905274556299401652464883991698013080706603099140629671468448229643428895724692238733690415110096632885254317134685109957564203130276381882532522551442908637640427681561493361055117718047398694993350671671443798556100703013378827227881886734524946376692941918116442715641733389607508643924979225018850241684701166119847462574438690555111933366173433395374102868192425354528576597766977968223860981699972707646698110181369134161934135073301960329250152458359351482099360792950227740960241653735653826947396961720879276028990990856870437087246553136787650230613042741013131972253096585066470449899429237210654758088221076136085720539512074151011324859317468885459017907941009906936832717626203662659281179829963851317824192355718857299232188323840927394095255417662814492507399657520938858586073304120026376040605888825465097600526579821276741985050066825633797460680245349628503297749176090920131143079910528910267854211621055322552398115345203764734995865022919845902176925569747390979139959312490417707826447301926433589152424979339829582894246563845881304627301179721213193634970683731883666779243107884856828838463515565555213863167084468055799014868344333625590681675644384883410987019504949340413657252494916114317862550627363709516336019203457001247910913276225604058197454212185496210219409674597368594775835670857019888621424262400348887770443058154345970302492449426802648981269716041635314028657067370237551767198877535502481722562417762454218519324970499779664835393198725426243743179146747662543992640763975320939575290247637567188454989020856928133120000741063089369510121715440210015181757334061241456339834222165776493078913288128983889444614114117930038434624591565941579533369408999714457425340651936199269809303937702715967028485288896674072247159203467928941119219412596362379028606626492103390839908863061683045898982978588761805037087006552411908808284630105543424914945183128940858430240617615404330588981645450213759049935266351495194255761824561954533652874747714493042887984457787960676739619637215859040605778352014872607949261883105527910439073932118664210545802315413925058015748253648730738133989127778732515621927449565885932633743558591021857462079032855949897735273360106250720175778570115027256757479106333706261970496651781000030163868926171716532464919868944597968957728933610431243506641538147053374774767330146002822914145241543820706888077012457944040663522365608553259856954017840805626765614460779055386753983731120124745464803883590979968663816425666561851644152546128975374977954174924819123891780410452654040824275348277993839623401762614318219356969692956081583300547664500012658047359284074836042401691643261864913714271267928370685179567580244338800678847600609150964580443839340965720617616167308907898962131814388290299631931097459115544751236606407984726468895259179028176974045511685590811541569578615769503967263183619689984659190721871952771977027600648020913447193423850813631180566345564499821289366371121062552042724079745595047348950206120550662507955911793548159590978273325690991279169439115638317423565363856604503834365578323251233859930407119014396442914452130817797772841491376821638009630000692647641519103362770711060569831867002092716691999472133052954508951117114744732938134524706221098590343736100927951695062200321128152029353473871011314894790363238668496334897365843773314355918457141067495163144735914372082882321284758266740935215218929311228214503651918876660996853713369251472443812536796496109824158488263558587000930185430496922859567521883926965182004805670358720111002526472063068709984134400064817138303402611728433486394577145011211104825612758826842716827818815996258474056317320721516974260267457392531338008963953570585052844342885322273838161179771616304732703570014046765433144542427210816012094074394544363830437756324490386103999212507051974553398382521245197232444908545176324492449423869122454563258121212571153169230143748023257316979631532055020426480062983690569146868705114807124995184342237889782941936345601803782909567590790243593524643573045404983669594780371629353200971215043365491910246816917669029331401669626742859577440628529082601623151433565972895936240665439686799301785360522978003953014618964991241011740950419103291806806849046461414225968462496105246437033388293809823113390252372433233582862767131402632144047457718862726634549265173501836435274382340684263110814470673594080324645510916626766555971228016039075655630649829572575392650345117274613477326661462580150218659004082567951761230997944981513082679326749227284699715767090123738258990476641012497115142996329608181905346687306166587096973039439495904714461360952309304627488949735692331830000982656515615963708769763387914165136832403023975149113659049711081156686949507132469858917677216114721042583019393779493171837087045861963330111074480593737723594662051009945013739185039309515873342895285432781472290376961367770618690249522780310590770968775776670872824493314560950464912651205066755882463917492421756983342605494786138989047046371331925156492849563276707861066451029694655109002262124297307701588899987353943502166207115248570988153027182813222257656993939661080178783258457931309659282538286896595356733123181806737816032398062682667427119334338746440112566415256124561713718891596488874862549575395371511373724927283184535239839337992693447656210088410938228268271025788765218965354817002364577351302871014809406353081996586804283940607609228730902401890137016275743497192623849310761574521871163597484585388416492106349264665574105327310524956877509405248352285152238276220967308303872640390459570168224937218920499112723062453483889833324628585055463222838943533233950316103838013745982479983430501547758236010781589724916563078612025116106492116562282652954124042849718353811534356440486496184126111741717899575135064110809845420618767866018456416943040636307935026705925225587301446680992871971544784496822113909034581351147374128124806585339511317780034504546326730840321032670729323110446460965320576851130622574997436096411518444738182060224804370664585359183545943955452525921703376068046806623855208110787267210388261108620986862542590558082153451057120423843515500967534923829538905453773898169214816518694728248355574020292786935995709447689813193328287055147361839041834957635483203288571471864987001304996521461699740790881016010970342155714983220455769892864070329838475572460986771564401927935057033710263444320549214160805842214515598489587905471363486089184855149821913650262817705198199786959848038118993517995003204723036827559768813468191600230852036381776245428977958784615725991131115492954156108165688583159243336412831161416521463906347893419391782303134691826447560675881883713574612625026058900579328795995621143612817477368143793317173460255775848664770643707802026757768716667525019820475563208901844893647714157922467041723889530700244168128909235128202428400348983349209197457995179720091247370503013056900436770755874095342606734073874027067079098798252446459275822393932067960247851641026208973474039810702739784631933410369082982654037633582438660876180913423998991543975520868250451382142702990903982373486620748951610806745514219372594535335025417981282514733646047635989615438246734014878753839733388788804442323134844301850850748195565981088248269800996333694774235434096517173434332978283864405524003983686876248965919634980763377027752053830188793651660741403341925602459639052301154245986278260413814597360530733290464408348937773428983056590178588176186031200070490949813256677196841528037373313021055409946627987246574492956217266055480465608710259665127554889187466531028016152273145071299975298618562356873240028955417604630127586025479463315230639352748056671239111571912505606005830879842978964987127806551206150426457324857770842487321482465040045933046157428582342866598390979759742799128816075240741311951803789964555536310510932822201997953186743480496817895675212145560286085861724217469242099578790059039915677583171576202959912678071366005882092846255366854640690721817779482193265806452040128429648672803451166480922345702981468938367795726192829588411948551613510373968438140281336435152875693779209701292365374862398834280270109199347513944896097492789443837535717203166947426281558953896511276058971666968516311966828172021600260646399767573834968887223104048581119169838025942676810599345445679563877147002075204988278951974847245202003120194072203843960599830841952106467531841104987241377045506170576468909175994195444279610736599596617049097440035766006795104335983248094147292743388965076286940582424109031367565566321073037423310452594539062825568113781068317979915784190983782797952155667941744277578095743587111284394406857126210965754833281885111549243558229216270602141065366461819201124843326913716537930936543990600334834523171214532219768170368564719909526452950273433692406420943276010923340127626733140840599699857565884850372889628296783695323571807525283126835425909103734255468314493670425570878402048136226669391598583832048688197900742269077734426573817711600516244561594738863771999891641055756581415003516896607976175377728482345929147314471679941508865258245197683138631236616287687697769681304293916752322247731808013648885772424264203328979151167438765469483695818832055185249861097634183444762329297203157706493090877688898674036294619024169777994018179960591625468679923646277102815493901664787120156113477404759324233376441327611841547025210955236147303755611901240174311841456615972112972741820268057006531059080871898881368514845986303756483217506097872679850788181952418037652692002948397611641997293775266991970699869282970828653131329064615115707590179288995810729577750949401102399530355878781468990619112450789476491835235950660116721486094879552978609470695098144355988853116607114626612765727578911610185531874599639089745044102931048663257070365583286242542160963122282664630017164830425554290968267107440554449401212232400552425231629886299780980657377990505430909576936936294428243695973704349829240023960891145307995693084873336494451070673838766283183593955067937589982720215577396355039424747176255721515109196327619778544658557116328062550062026492285653624768039774727666224174026293467651677969942273837057951253329132943257736911864255517966388016990723859248377252634921008326857209384092546728237851777649792442258047651164724007019598128248644725031189130671721520148075694929554883900109266625884429320359777479600609516428449640696357559431559772112859828152266474042725098219558540866546644771362611474518459436178724558695917540631057092950699095250018245754803972598567816814145856449042038519437073411804336681922551781610875931938070406522915392590718601116853973085574524814060803323006481938745170465171447149842593344281204458763357096650740982924904634544248615243231213571023595759684579813755479621752055672452954586481126722251665918905546543483642662262650870542092393922363307622105771345016996769582398613267366764109450413153531295653982849218524820557692666992617506803838251948274711906977694361575277974472564627970900428600384438941952113646978298882195551871710903209802301903659013690903619642669372759893080908689844424717650293204119974062403837322053237698208687520189287054493472043859958048722124820026789098371626439753966592587602591107637429851256813612908349514858722900098310726587498676725098807641708618615711577224909673745185798734767448396473910700707647611962163732703371062233352197009786463486379609003201652174151129600996544617114533537076932821456430331739364878477088046078491923763159369674583868165127396630275150116165743392430197061369834738155517114807350549886398302999367789505447834980333369986768479500587218632816028610903508109622857134091720660231862247733581735779780994682816085510500307930197725627828741308717002459319978245872801080946049227481489965797863460338065880423844725898008044490271274200479888412000158650521790701606624956390972975836257055873603637083340442629456460832026464031906642541746116005455272213932140578435997756318556796659432591540927863581174739764553575640847052033872202869572041240003562017394729680909237613653423898911416077230811512962327101063681845468147369783920459963136031785725220689064271730739884225246894107745800289770333615996680806300822374668545359249125538877238108880387626701315979773879873846059686593528731770977491521419632251455609300474983312220556133224197219943677001598136491540675026832745815702562636828538215327224764050498674586767049945345141977674482526386353906469035056843014048685335600027753598204556934063023926791213196344493685376018985519731806606868647762962475298640639193561526960532373003877081090179086059011233783294652993110454433661986246128795347750913118033326211335447101695403290228479428571687489009029512082422347687203613592648024316295288895615151341617366858901332636309546230644798088438464622507207054226815642820183115903551962235048528259427178333704251239549717846792405169758300431824207234945802636101773719132372592214511806704538800289988571463199173598103467504020590696559539521424143407389203125029805544598294868786307670237912627680564182432175767792259797731062275387446139609821635221433138465703688527403370615725334330607329053247619806112297318484523690034146171543091583742951527261262200379389763947306929937174609618786241893439194644067125412752161301899993106892625353914509329338388644162253001794584901310229643133598605734973057785286999933400639506264741790448771423170617689500198044790031402203507966432503322545811576191309529064599600100610451285388671391152895227368618256414834437177331146532057894176036217740706086612469163335194609165140234447942578853269331878501102117596703409157159936470351678152906158798355071308269387767703220175688254645269255435322474017730942213916287510008703941339588579728133975956720603454525817791426156548833067266289761368132028508605509056632406176807206902614640846964588438049448177912294941861277530336899860768132617919182541437226285015776815814854982436587673599776137414008028899270976270932278432321247550727989323746857117549006537996781272267596538395283163404343183491439913456236721744231468979312597653890400866819228472087800559767910718155854896215691175633058579863550089357781313560319523209290744994052453062971659478750917175641081922044595770584689865001503125352986719668275708138019486587198518133234548035532976905287913990479326566607074662250861300136537716629573722964847045272998593623123688400002211694141617939700934399768494842280260793331740799696479926202407538354241237834714138082299240529574130435821558668169334118419658910840076962153936934876268065761501682843913961475206396116480304381582483161624668925444481715385957985452809776334011215861961800158789026624384296023505214238397626853651451747052726460904546654665475491262738681065798117367730766628532430906391832215787191611126989693980848602134186541142893321541230443009056648355773825809017069842066715489291018039993404764801126806301664155688248884869618198008016228097475755090224053534891751953886045200693546712002329507610074211243301377437341938455262070524884639686166928254963740113439740504515708529445018471630434254115544722225293127597112046200617877565820075654313558369073633882911974985557150694480305306091913586831579250699583708617695964796930386730712310458809837328953338469872998844056254037309280499380396491397383558123450160676203929186358021054644178191484503815871273640366779817865767011049985643860233425370939532075508997366881345094565662912940437634416773307471959304234938952220958528118954131816393518340439573161695333187615588156695293885393298903785749444411571988604591131094595712682416314822047091117939647130582667943695600580879130267370051802280675862239986899933087033429518890540929774544834253240382759595801070080009316981099356037476873817621609821351709730776416327130222042726630075679905592892430098001992575880799700159366072161716438225566793692434650013494664562302437435240401153129712377752140552344647194365903283814695683905184031916536492279638378431007055721614060596097948380613594483388169996718568757031018642644395579835566995272381274638729376095777406284474771390248475779149916584039603005103275053987958105596242257324471879370886009100621892447754739419877160494443058866780034984777840340244854490846584758662477154751626524853319936568949914559284688632122479657450311245513145294242753948532573433473762805842244596422828040867058833832321515443763337595555444804816199686811452180895362520715184409214227870048702237131811019380258314866860528266699333741046965789951759085314118862034025630424373642419276681575136269900065105623543249973230058084682481348198251514408408168338161554733331817575336386140191716174395774067629542765920667676317244329548774798248438800807596457846697720464370158460827010230203780292996915203585698935330943012688701925745561075650937535207696267500166626781143605029245774755814347496687699361021025615949389149155872915624198195279737652138749096276778198436029873243170995679366565282817726638416495605674790146014032124435016898774413648245769152809712177444131572097460279697006965683739211464442379132920125212194623271843858439078097108425275128478053827312655634500433426564331579121016522537065655423369505794849691952702240886248871916117698546270306728858169114388379270856408022763497854888585100162412899995956136771744124257418736450809668500931566177879233038908455086971318734988350030855590531682853327113653343363944950105156392170847431096989370214800275610681303554802805307815426799526470282068348210477580955955529769282017010539116970432863313594471730389181988317792145862384842430423697925227172177657721895869085871549481714663142923857802789779468974780744023662345083908488373498890866926875295283948582859641139291267393133612249171578207733518883687124841223033101014271409775870277163478110053526270547197082284965285365218736118609848160957987929710077555852291481378493448123890630859424490626522858146938529172193415665131276870598160081179695055308127853194337827774449803345744562459598045240266401658511531776230878050177046621255873312933804055530748698533057264379469419458181824284129056157775842472002568317251408186389537675954799208661583103194026211785356012726800203710464716298568564993493959930722275492885264077202387098230941955770490998166757438401553465832374103464392126426284040416391845918813290029104901306833930823916144366300963528355719175192487242214986200272831183561371691285694083597053554618904026334533020568038277893080457826730641498066246799687514256837846870548161344889601951606055136916054759426025841128861286888478673793376843434787082014938221411429032322830382532399626215479778814147886112234673697723367333897546902965734187493918331102498785123250189385557085961937655057714229684448295603338507906989837113717068304237370693485108839671921527629148611902170710075709311492277541449031137141508645783916227135013380131920258470281449863637954929789321479989278286427515768980416674679674089857811404875307455520235887941775386196064641217379178341817197890884026006425790558151055130164586959105270835001893080579552073377884930613189858898821526089594653620502116154627468200646333496554023473118079795272341144613200379738400947916156844733917406819613331230189187416143731060983202374731850313939901751622465985329895547817264231107369100211668001192901911938664027632469303583870038769516730575116411385783710038875407783841972984589384215916263174860912880006308286615870783077484513857002953021905627135348637832478214134583747679514000408728239876195654071634955717851705860893273202245980217648965216818410426127352726249277866464677363392549314388810045669588116951878817554017964890370651145184546120966731671248984209697579195972693383984722554515979030119966107461884469774544449713047809124888668072163445596787816044644593193033733105218014198896735486224658110667578274938642761032654252891978784622575427939043628597856341013421342557406620813527996909270486185776994730363821440985353065165909459988642647789046514727010106616844266499462125000586367767690631263076766399047035527086648745694225998939904125721410789432621819904748916499667435285275589187298299040572965087011701781683682474555608739945001222949177648885639105926681027547884849759071599535612458677169280020177751103257303220672097327938232402117980867801453894864667119154326085864450411707701843072953571818057271946064598919264174640603250039466147295585046468140671279156172122467838494793188184727534487907870311274307569300750010464370825127388304278257285360565371585638690683277714425867939091652169102300532574126823507923688189692922012867773554989874735420237963875584581676084323424908114571165630016315987302604823063752215658002793808599310857663110802652545162967432183980973027730230852031375767753325834978723153620214492519053067338211605519204049043698740584550172486327237914616667802285677593398144438881437799265757030817058960571734162473702084785812366732521410482239643768200376666916458367566550860132199292093626105854430875194102391913679937493377233486073993032103570297287873578490896417590867594518767677377961299568618461450821525524770704904674172423924703652320050330081350691817377868813513500550922222779059560862960774052359207246841856021411186562800573030804047796793326784034214113094793041449444124199335606373118290869318366212536314350358816532306323159254035433604958443496213354594119280310765671723459108562048121477238681706701825360727953031167757894234580690750099417525436095847845554227273495317934096776276406607084117814712395332221729123827621797221853263543460413651520072506936757161859875999843929290490806384599940419276589108858898234189873344190648836625107060512654128883523092068293675932056077716546902586719337277711453350437238795605077200916122520974470394116139809761091521112941968645194967081474966130599560575709617628723224077947131340915212058048888220788217990361831638100979618929355542726682860266471183185914030822422469899226000872103530596882594648928087514583416927465495509969914059114124258970176462240631462816840066376831601668194872999641748850328969383207359451606789932619783304959724068677137815298259995516269363834516830013242819303191659962376849943772851365428523841623807557291555087524693489839937901085367816086442969473702986787379433871859973879404381524163755645228824766164329788878913597340563526215760952448771105845055196173475704881781295346616770842344403913359665086880111176672581286937866211401461308391421062644683748902938949786525671068788827839574827334578158516823338861771293147324332781717973814029474693757140754420538519752768479176001731812467700197442374430653229039789727165570168742944426372389097372557950144401842600483813723662847199005540612791005664967465843836187075828243530563358393069828754085008984630996444111382193398733812987110255515563561722785225135259075356214258684300226909201060322564205330637703193526945915781102786971410956232614476765929982619777326606766215212325969513784666519224373903400749654840321988868351862196485646346228035276601628448141305669231882108082373500826392967952304197702355630695222200881535974962886745293379741582191415767615255020717271794115332048682729827293497219079811837610273243685429688573335576968358525660959001941888617066343996726421265320002833774284840853239536711103348019456438731788777587139920063748900380682144978138203808861803755396249940772297840786928045865410977077043348928534924284914809811480511748912242150717003109336863275049902182138900165492765365827763338579807594662747130271825654334386451420008387036125715215735033543374630463640177471169600432859792384698794803751733802464697239715885391481061993535594344905988981844647927421441324875145803245063162419277483368594609802455363405894316270500441050600304552699710399600696481149357173672245486390339029948792718358596717457669869700377173711456112913453950590894086163396668444235357128568796622924706320290591664821726437812574160696967427244402940477364661991172047054272787450440528116007798852070016654410117351189626664519463608824752007828027619794758287851224096344797721796682593166936933629983610954418843810872495407154269573077782872568100327575065020200144450346431071523489622750021376221225673745747367303083461282320630311114695787033946035029886127554878120466197774731873015966480441032321184250465620485094059608920288193600047298536896497181020163749520648993122138786836885455570931331608447165102573581935505240087256647439431905244130947783731009344467271945688175438141416657142499784303001770604110479017474340596878975488357833910535478272369073854494016703353134645081361473059835148766714806877294015247768452672295273191967220953309452095645775933315478838786822279028297236075994511559073474336774271603474849305367394805628503511040424482762248843012956782410774553253778276481284516055983586077731634550402970241030117350697722613902761914949792973735338779048745501263425917408369537992821044322137034484044437026456245914067072606545442890453146860108128673713269756469543959622374438841151017034122799018325973633004644670124278898547575344538008800918767030298192973290008369293931248999322338466934403471560158724834130812683467403060282797992805909291153854501551882788663376987512588586495048165795639546182842183496895219545218595739675704442144859798982549867696260822383723108175331691393566322632362131467475764878476566236174851882377991764638032729209605667668521183841988932294837358157587568489244133673579322990941801087296052250959093483503731405209273847855954205273302184638803052896652468417730630175055693675206387871878630463014633232573254475953402729159167180767442095773108580366546246741121625580932391964956268039071033660743071287277238711132176390125395865100791255506230835414507547681075570771703624987039120974149128475701527127368888223079429384047882853341155163170538296145117411273002689195026143358159807496729228068037346886138542543237524709773078268342755990772417312334384877162244044397491967487409876383366483740519145926881806581400579035749251941855442163174635648391338122697503603111325588885789584335011387826375981915458225456519542314277118277640232693528213003048023261321034679761629609332280462697175162414947484452790128293432145633098798338215314588460909702570140372165961574641788657736062517555317622495648985976220594088575805585345331251918951984735072762077800815108804935901324197511759482250610657653717265249568702587513526597242375480906351866792545787006357291468371370073257568687730596010332871421910185399737184350822497030251477799491935542966523048364066946883065727322053574269666227907965916392896219229165730050615267227164251167033202869966336554431078084099379669004157342990614226665517562485644898000538902085502546898139173144165543499076940086355296834509652581420366620788935450701612713311837197899514674090264479238879623295426459819360914996897072757340650923331772814045595629264317244470465283581867220487983574877029878548648291538283829138180516392400400113802077519847003435540819681289936713407261443966399996104803813582007313572265428724152748736193598122954829608622366508701599395727073427434338560404869442492329461727356813753423969459681843307243514349735544518131803065104834882268381555754955864482553117133628675752210408573342812808985092610077834044598685987406905522230161037927382182431289419102878662143160879660233489940845273292894083880165193399463126883370441868967744429105875163617112060433456128299215023732967456626525957307149311454083039905668023405183621830726948191225291298640368627062324434583446788168372512859196789800550793660788271327287790802254315683679437211208068344332961062317107567878277026271454839270908384806115214148793201922651042398339361539978937305425302842066557948121063875603029182022485253670021525995737794184983926431183624206343543476945064945816926542001949238521249648605083310339921043493901424938922139891033787270323701678702671211908176786765588980082209609067621714278468014055946052971539837574031926401283010506197727586994450432277512894489371262023661416442788006579894229980738109392924920620776073658140245813898598958140199520515383387354573617553961910004345768525485049946403787632064975685306636097521005702735124441748760556148928343198132365611794779772469855485518939956222736677987469460639182632232906410200036841040878666886906103935000633816584234789680778449908011755934140154454354189799745081253192819854731946784054010340870850909289739414031344716611964893159448391439105867772196897307094234269712361030512858489604992612607507365134448088382872948417691484803081980262331397222714248427657693231850236179220774111619064779278689936383217958688455668639334191359674560204846146137048923913583638396767553289759611228184543654678898413392157685469251017661433467797516560235039461479846588652609095453376042260236810138247571365324307887216385408562653913341833295051724881399539453826846456999573079711517377035767463368941061084638674828164323292659736156096826739848550935730629127988583707761813411442052474051722128895040046630834000328784461771056949553269067763959798761125873551332510975633240241626536577965777518958454715801245483215870117130793119716565430036444588997807407077324534957948296653030572164227405870050550435811944891887230724429086413213605832476960849231402115142069163784377741240920919226233411967953609125970259496963394100183762066003643076452947195729631794092334568028078958662591784133439416136271928230198656578747417221310385903086443410476526524044495491446426217881221288210427360447821043524259636341784889760142723402429512849696056921029214983785448782075756157901394358646054870316805807676726821981718612931031297947798099742065109950742644873268676290731685114942306664533424648407450992079429627500132519255067035379533701852669257728410319397083007162542798294719606494804355485835957947005874451152627583769729726871842792782984317273467165517770222062574342321556971528785683898887704129555908431872266461852802805949707282387883386063021601994623848538547569872375338873124760275011555618730888881761079926615162400832906825095656542308516411042608073477827346452369430357481895528478054947768464182854222793105070531645161410960977305316835738076744426225219273232188358554820764616737172174254552899613136110394830437369341787522061723509149551241784867869216168018733911458192395937332729015334369189489522093825767080802911827905757310358340238630734924562491921959964783858909062615904890865555005710049309834346100861181615129619884788535306163970160456400239685076679737577903336657351282955512664829481683203043118979530211889952991389188155746733048323860362683258387220016108103359799301001227660769331587361625432065470816110512765240267391951736741036989506473234243647922701524894620256663836813631923557549153043480065143171469994916609637380329670967476502351329799676807137213499420058381820173832939450593449589153342306601706189375983363134825656421570898849357696456472205377935540875635017858141421728834974947172356746920352687851261734351833225153153449211013754042092216205209379669955258692707628735579031562439870030338458582271599107486628785498656595095514204730659469031083862013035647186628103335111612925896118869950026840797226089938711924748679214424009462185774233484579572670458008736486547964080940445858966932424672882750744385849497234626684459761293473464328846791219715317647651425382104382585358077058137824085990827093386854186736701333449938432731164196149500610830819195656957313325458360550844956731100422426728171343239661583701025242946504743645083315794644653643514350814272927445983590809612247173182336791016309912315028390615641590064788620268967089439014092280438727085538703836761826561310060757269492464062682075009939145482899975500384311375892548023042690796684709483447923757952555537067204405472791985315383217103950997810602692008277740485278679813880326412045756394216878156356228061495980987386134576416992719060953322012891032123887423610174024233176499914959687418290657881336231994542855605837289773199062559398269710784482527195261916069878529771914893769244253595357395385460460196194416229545049466798709992050304244659716929264428196583759007705492752198198312041718933604107351875176034196158913525384441467257333081706430306678319632589902575384537266962465492230368330778492755553748595693966391176431326571688843738631630246709545735791964632213886148833454966509166459086563805091392157825720449788947948744664023897011872158868308620124023908467313167981315683259508261976126601850524838038858589489440277529376689839326896162283768865829159821975541146790952769789001340630148090021364985580423915316170992776992603901871658295311411227230041083646365767048215400432975204605561864415387279774063162514361948174083286036460807052884179199730622448891574721169058287164545583378338353242021127747827972824673697694609177053028913758722069745885280204117102601670852859094753727945881156498565067910742455169466257330201255664015570525262840713491107855263192550154942232771892576920913212739698042240094441186365422180569633932153970331284696731954740204131667584604080264535539957904878694780235759144077222267758062095808620684317496668211732020882505272813600811712152615820733697187383872450113072768949989468516239645636913886708737669040296558796145033944578864978634554391122700424215903552218913875820670146770509192939972968460159674918657641129959955393695735623146446009971357137268770907659103664229027438575550860575902390165876289780276099815268368513480849376379529048814323507120411496925708262286664060560055223070900902415548597958396153854852688235360662597309035624010777437983765020958296234380550742155103714994922729043142801314336981985469664982780238030384028128501754211917424327024544976547836571830050346304136770758250687334617254079222022787435076524747009231987565106039993177846955475811433540616791744574922368495963094148980463150811239549102246137973132185407049630386887971941676177105911323030911596678591845332561036189538423696312025127164654051084792503290686697847158133726043509743879186088717895598071112028456319048739457820738651499748894379225398337978675024558977616306569569127659423433398505974850025822159984071740680205154282497805864876857921796974318476920786324399374293463769288807831669493499533289637816611245149283154054580074606061829673655107711829194503791308672620773073427161627173434136862463133087503430792614091301574964069984110707946959139669909620035598263649881073892160458334154054842054011631839248184469135565671368903525659259982055250558713875534039031723716472727238122902176034574708810029295332692072811971057578954229737990872555986250883841386736735660217349168677246032493354078060612398018178569424163066118008804359818142027229339890226619477395945734490924649372513063701299527224492105647317331371170004757827537709455339848573938112327384125319018621780108820631488701936075704514461084852443377318608257099720514246497944354080854789465771771417435116624126271667283590706290851837399920938395660550978224519775304045275444527005809300383992554289984572248810765278074568961771952063962048625575520688509546349677260963837374599207482603585027725493758802045265270730358780207227091998343471933285239187341684275490468392216282850958435492357591479319198276738155900776172964826940646591839939927637077039209652723880789301348005306622017524813055645879269917931190114204760242509693109816049045124314341527899005669746898869898672909782803815742569107465860825526302921174855286079647537681546361414220430885089300345677861267831475354188585709711700788836561902211086544814859868819441508904525880694567422860338410233870666720718003332241029970983879836014871501363254573837599667317063109667414335897743423045921832783168002767640639764016723096906025434311006934979390096537951185269706860928519874746177422994147595628783013641520974397732384538223027923830928414687271232409820819602547550823450436785574392422653085176088550883244098488946539231158657830043347622897807676368717228251646375526131939741435289910399029534295652835905034741541677270354597837045419785788435521100700662502602547910717487249585256553414283106012591221715948897657549227922797775286316496816374656362989589443423395521671615763055459385329286654314721584565247157624174800754490871775736577991421231304657058965908107421776011802269522642737661801482151844138320185745184070858507769296928919351344385766008554789474740280682140092038074045253616715567986730662506963664404587213259307021891338318629638935671324637031282881305950278253367354079327078704373510936032127740647170342411504968548439986731784008421782879285089594467668121875197927189372478829453337990255236602862005591255282695016680156449601181052298146117533771762679694857413624037720468690599532843104346305565950106867711216758720458855172501155818242981149682076404049219005693773470454547606505733860962260723668823132279115192955793770956446989694016026495287956306480885775448232235005049546323945962795720719567274146399180305850028617964791464351256950153231147352712900803871239347397987154273303227105503926736906041914610886620439904461614125546241266674973498806469839870326636208119370880757948291364105388007509246180436324811943611609342323857700654402525316618611316829923722329233576666236744334446035272764922628264847170115839486887551479540354058186082607914278542608252112383288201086893574617702957682721839899776074253924826791101461636370876510123624884824869685751676174038689037231653073830142770783359636912533042015437616546555848917717686753870951187527729146715488602433747002140367440999065512055947406773536912921645150200711890371833635151312882532192429750083944353096278166561523104407381782366672500058812446088831400397088022137528523670628168368258057773324091430114980266689395960528559185088777056318007515378445198069785608734557279462729520131895526238698585604990770045330835411043213185417744867891620189965658620849658290897475872252672408558761944792171558234187397614716689444467276877599604701544793309424973089938336942812884385428409953874487553302080816351544685889265688060479030933868513229410152561642421721006931206302029941221531074850885765598346575119142784820392289260111071983366397189861636111067765514065963890529524374436406742875627779206354366495986654615702899234706752031655792924411683999016343446502790288197847256055191133399047439200351857329808578741428866259255234087471729767928927511974552431213658061247343061926979409972441943609796648552566885560172068059777735651095447756144313444501878870920691861919316804791360003510069921211265791615903622835810882787775883943503936784880197425328652999085294773473838361051789559958974768220962430844797867222588631158191632108155039552581328204325619945065188491247321935047546233492601837691281906866213472037151513931351840765253270877655437838828696829660302837025292790874482721929477611178532995914636310420523598814603519489014486903043407598326759103475577495380851499254333916289400298066086844560204606658306384741162791750612108165001925716464682489468272057945547227821090916234397589121515336474096142617334152921850726671413423247489786728635621968200243060302799496940216389823692269803402692994216658365873047677065655844632850767434468046281880466608912487582422630928252180074481631971213485857065539399742973157196525713813088762972738214078867730356648809314895984643859080401870678856852416387073194334135984210377512213730395254012931817740671416704827431997098180633932937754275158923772673849864189440591592043028682191657908260875892687669703030832783095255544593964321568210560034101877175117771324802219078607186430811893757646768543219382848865019687841852659769653165086325614697163432995966302314349358493230292704477810065706286559707246993081937402790376508381100649072567175707150479822600810713132633345657453947238763636009435317314883084103124758950895896589622642344996994035836322359662883156141547764150313497509394485791891868537222237953029059498207828606036151804028242842797566980400717040619078895018478497283299251948218194925235840378534117916026503691429714793987747161268679331417890136120161695120406430647219500285020799222555365258993412913257728533280662992091346358327768750714379196352565121668572376563296663316620478018003959687171407093826427944306446119904246833400931853869930453043336200090671576997867038801321093158423360295617076142065296782994780959635413308022191384532886613648310116577969794322048114268090429955153916311124325352043994715388826547076259951661014572402365078132864359248848751543240763794316970748092928875940057011438995531725915960944735134261884685947067948834920323858385588850450257212361147013793861216961568695976589203563276098439674760129978654956830317384105825520723200556190926300386644563201061017415059133595818888034116552348869851733746215366154683632135306397387524525440223046049564876047788913327580799754377171614454126515148223582838730714628713893967689023182375670820061681188978882265455866216605124154796012511900674376411857249215108508298948241823502900064791610254990952880202156318780207744975169119915527724539818939259611233757203495459805989044647274264480869168624476428535601153537124690817821393705031846040975352121807579866149916593602230772857735976112956029025162829283670699879196700061578299950985735290434279109504704649693123298122700935103477709224050150081499860228045975549474300833794264793105592984144702906250858138781328901963176630063726504396381198130691789102163269170266974373800478576425460570854822039865695472834142739248357260490190378341385908350317098314159461511283273601108243352311809509713760529162222715188882481908362043797892333243627121919981412367279808740019341262065271281212340088919651425425202531487092889791898547868110544611854289819963858352017989792202575134609857143092954976073238629124736308037117353068222917307156098237011073411948284315430223078752358194896482040429567777073650601924350974987681733199453139657115441409632321052469200711287782451326068135103277619903499176678661046193606151661080850960958101716156982978219714962279728996038169780443094635670003675435831991084009150420067794455579346165660794393862841855012357709216493326374139973879660001019558327282807074907732848998064618069001830877621475712773948767650299722290998980677482326525273616928602867357956923009582740210456829584719697051525132789558010580569407667199445684310973061902245113882100371761297099665410586951342182508764409730832908385010538246515985941734495786711724553648450134078354842219490369127103167953186908210230562555782202822724441022840355944059966657123528575882661425195714968826674407480140205159545623434042590402674025824758567915447147837529598727616115594695096216137142659454016908987440683233053320124041429165408342348936110710763169634926061932668123643192251978488910583984904172090274039720558170803696562646361845187079215971649744580507673817549602775090173235984625326816044027770846760816953079335753697733256249193608883544703143167517338752439425666423008664801266540222851929659668281156107029465311645594642959800122354400812635877626369886651639478070271261044386961022890089556213830577267365701531947450295672333827706747219520721795199083538120634621711818296995076474325204979287630407039573014866755701542881272501309790903369548823347782471263163799481119430517940507869751930040943777905930961554388785951703946640324321687283165854829654694518774836886213605911244047098111879942671995987342215305005026911320387657371550116062158929905814411383492676793492724807787419888548091366043120985998175139036737849876681742627389981573543635152099698719038345131074441842909530971672475534218311932556656533886653620723748780753785569784658260504625135458610992811965141174257095592851612674224974672382699984072233214394831476889044410143306970308369036248477612034401323775359410642467070047696093830511351658309044891189574889375680880411787267220367078324503558861119581316219229192606532917551259386133625843850799389565246247256264399044055465124144236764127300692281356857203465999870428763894434198995755550837013160707775910720258973784966348625846637359887536742842823577429269876128606363711834825760496101048218006704211203630640992692479352916096486094800718162330034302280953427606138773067215483804593802960414208824876455464855037513635450867767596101140074451587558233242466919771408966166092163210375584998606486892381121237777859947603203730944515574030542122733424906826112924603196498982876655196495492680414349851800264336130431509225508666191941026812212377033652002697313555903770653271714873348214976761154725562504162119715723377487725293143090267695730837047299004853162634343063270797996049669509837281584835866114483410189525285254181845850712316367136573179577881135977619786096536191270360848007573942324838839065260727314886694768728384873325387200555184593664602711093758733549859765680750710671662133982240453502205163378732229322569693020354083238394391297630391134195374093947551994405245876749647658169205374210771856746798177786092165255629521279128707975413410221113571123963192012990914332086756595023286176554684122038360799747127787883961069659277361275670825787130038979901883326130479462548902799493107497868014795007099730602763811360978889096289983379536605594435768239943570770324590290512787258776747901128773781846281732557751864446727550786643575616257552307138974255992946970449506513632906534869108142537422523179190440009868797325487248628423802694641969085241048477893353007970230360253226967942538527693930693381511237820454907892442290511718403009964900534025975895662661635214998946758226344813235921679258866742185628682229781613774882690359082174509540966397466328372647216934805174774231721277696418708149431614374695944686151008885332801657899124281192319151864787483224574893054346364053603062929778497003751335837286132492001057374994910935848200296680342261415070331143531352342359696434492594283884835091367289340351398200312764721229320852026677495695879541178037465158328925067079490978811921039165447607638409563779149402361428754589960993673335457424545675314398332127235919572559494656908015551859669876698433467282062091221510773011334506952935347214093265480135684884657112368293766093633244718681052787627091498581386794845906741008510439218009405549708920947162223722049179665960884657910125293487504325290486968461049048159796543048918588598579689807084232178676066919867560651383113146255123366831194938161222489498877664623462173739172380844531956933061140327269443138496254538993180219075055090567866392005636044204838859400594382670128830030308551455072482204141590753198881265935540932782448368864786158790222296520765420351029913064599254284106372273062296281532117328055739680425044464721150055263391192278941013104242511680560069234266695452217275602330345000994984225677197366978629722037665079396771960889168060215751531690609295789592950271529769166020779413180073351221702830365524408893539096008737744822843591014448532607860158287929510353750297646843830110146245804490577737219167681834613612896443964855567095432394323391705629056872861718913498829365392570142118364392461670727551361494829956215495857272894209373267277788032582022893834980057882105505839473848810967435621759855693849032531784599656710067217713035117808192424516427861922197135946405493369865163268424003482084248404403419031363939957504548202677688527659432678752623821436558558686133632747451579026653808895882942724543046062665808075870306193274355524187835942653291085389504093690672222463755746894373100479063928771328434708891718893313180214532962624447361643901470818670353245858127553113162246466832067340369328231284496550083556468246306224499297495191535954453636255175173199507343845255490063504562137893375928195105841741836448045135427000433224898079427526334158457576788276390071770109473041439303254263128057546228569868330641008447929202651095625413598225927772658438109431238613468659894328923355086597101416871312600883098580825876702015681529409359367349885711900912543388010806940745718150915211299956248334972849307182813141131996406244274383644127789842323474500235205581545576240632763208475711599962068067430569966101769032697743084234894002437228820720520348130082239044451613540615474098136837889922342474830875953985991027773287084056554208867938070005143034705369175990099264830223146402854814499842678062133008175977818999009423523602520803404860440388066588480416671464239366442429939403711998240770657860369660478171568378547284209308804954173552521721704700339711789432482214404030200223505743026404031036767499654292152360118674809014529694178528344884468124595031807243936018659731289907035226314202146420059308116967051782013667242093449937114674877871627997406674937938840954346231745703996394913312273405200450560045812873600763468028290199807203579930265177364652851240150142468149369827603052748154075203907088854392928439367351333873050858685094842496628475047788204117018960185674190797933288621571029293398557918114896386990761643793122013316866411647939536715303736659603355677892826223307246073850870740787523365261880157147444597478983658527759393260222498122109996932973041143713561219538063410887669691027916902864776100577114360546864991367954094166207134344813785713616445577566506554178014456951681254620861548200284087753867262355153598313521107645249364923318201290123016215499039080567822737129604844268672976208783408378438057942293384801261107568691833822483796243319458342571601691695049623989486793368658876872992911376655726649805530265419104254627834411134175298266801206457574288672044583605467275908703819769075252973476977956251422763966847691129850846462101485073365714930718021219585235704494507250331791499664538900356452450717303301280019255903358255474753335478231729162127940017592894708602732122968741918506657296536093970355904408411639291984892061374015399926168615905557455420630528750055746070296282199485951513461321721933592806670730592034640636352023881069201095652775064568521824049194709088658145432764124152851096998268506496171464741980601320782357892321327556112077460940641355653543148144924371705054127361207193304458395158646388314366420507859720949000043308072757339400435661458233523356881692252039729433486500027175942393723121905102635418757007471934509274214990630860689619597497419211759468809018589423920629584222741738556031829921383826422970064405319413834129090180303846224085567055521218234515099224116297736139795339919952547028816899211275253818047299648235569002194558292014514357731640997319822924480973173321936451809435087047701569606150102255760061816426140335721998514897179311681678610608155204379923134900398487256583635029005313769458447175598658669325500353382029557713431724239385587026825131340436661648591885338296185095071736070842125869462485523168410508621459114411241656978327690877519036100036322915951093107019973865215442426174936457974042685081677518705008555383877883231401626686213787610124724678026730296529108171805741392572701017075566629546470850998182171049806520034519299645526260244437405163029431072149789677497946153716124587849045675795429526409057622611759157920139478303843736281466569634703964129740042594973416319227385646277898099211213474841711885824869370791169521550692398122846454859665434088588976143730898580372455267226408262637134741975112001337936556712387625321694492637597576624083474744140616806026145820443088114281239190617460575365121451918070922237206855736316395459182235474087669028907903495115029771846546378540862388502485683707349443713183483929923125816261818224257694173594632922647137587561027179382796907794244186800932765254260589989646871804763273873733359920819889794127240207534534747243069552669991903541954120922483474141371793517630014680053621454555939953219442044599481541108362258679143407308087832807248111016970358759556757277876142837070736640601293178865595269241611270369180175981369549967085112678702335707329750638023310401477584609039593446147003454449313553749623573945384668305893125109914374156361212980367925824613215619788925766751139946919746175739157738146058152058572155892049199679945557006866770350520990736811219398325720691319574938844578015256031029265172173978866112395206493525809791873898269375485997447772523692996159644856009154511798568007558378681090605846817351731273298319101793367263975034448103726559578107487050127014872209749962141940485007874116303205833865142723070525766971971804579987187653304158861216320966151435936586419504082321792205665455966808285208231758117637378455811406890908166334785458811738274927570393574596772877956836916138895431498998837568003588448537275516793236772177726202680063924376115525592678022011839837190000410458022904789437082339246990290490396195677942797411641276809213029526948435294763644325114937344861618295581000010893278266633858415953461832663047985904317487213455103898681958588134676548471857425854605289810873724796262270143270752689753966152456551112501113460835650419433186447129752025116284830540355076717273322959876805220251465368110444993229407213455158383419427732306668498595107831919463610884192219941307014299583057986256674379374106403633351647481621736630131045932067715583892110501713832177925831120336533825971697541066072848042097287594806569498478560988535122036640786786961710845434679454783802649022746219050708218540028091615218592153797825168070838623428396828246272451033705672010859781004144262577969578966000641323367595813878560128214951315612856666147474071787437916317600393964861888356873104703124597789993046100421855712180333995844427069203569980912371294214580141351471691515091094540843075904692373925213199442851374778195101136064414939735242036493921078535399956844681472865020915786085545750593964211418449113684384784237511550170727004399824067596961257257476500756503885348863978264687683262841483640015979546518780119680878734411804466603569045467341412842202057535192718895268028281284771555275305951308365880279152194423311866041767221265855901958124371826532297161460967796309071353852369447445724005419920472405933723468188357880662642135698500226331193191759164001373640078448820939541220816736366359816106334158592935658051846159976951034456100759294261444117341781500650934256710876113536655360230957463991574409236512455580849077525450578554945266560885985895749639541456176861141198757895722661534090267309824761217120903150201420109910866173404550720734777144172455550187906563793477194492438050502840921649691698731619592040025823916597518616449430480051183544522081695557580022130692493997139558096794955633688325093813950366723016119083149096971968185703970573960551177054549155429156939939783501326731730977998178010848022186210030703786875562797483185852388369204122124690756923865034722418912899509587417124022687064987634229650228181861736094776530151175719261468483020133485574154982774699138117084789185236934221356503560356795007718796962333415594948930598589168165956503415678568480266951680594884692003942648203548436207005045360839471598515742362840601237321185314032709514921723040786798327979785145323115975053723033472276118957375609015635989181441221413066552154982048002004074411138135808112315613028510958036169327753079374663075880783296855321021222467530370679241257981490415727038660962747597374045797511345571872232957520241777417188395544551868820310199247172352541848761528625020338964567851386258605239791696422600022731014853950604259488546797279621021811687679177163497257219285824025167409173372991635140256463383790301331495617488785459576081592188472974994094088463805519611762218842143957217734103171247759467797239623415100277973202784090171965274235179688717436627531108200790876660519453165153764557361000174903048597305378596584631229540842197038806203931341956041701369427390618704706015531267653706779621599842030810108802346517286579582675681527895560880255508233374087308928164517838894227241262312686932049217203845282767582890793254541504731092671484882111869591085946417210860666543441093743604964292993490481204348424053911835346903046240415803612213882694854203308032630841942520737866132136423835567804360550194667734948530992209196523516724388067297996872278451356193125962516570688387964134975977858026595953916842353040064073665438847204639475706493733307571166263496054487172203900799000560653364081434670935014390292437299116035444387169918931809592930691215232884101965113184732910789391154861771745534411000075732046491441577453366158544957690065114198600316453181034397398211313768575890716731027689385933854946184187552171504038716148404574775604199234591670842061910617258700454207820018719583922915870766979216416881221259404465229475366198269808647899439143123352649020885433800758267190542800547317709213754277974582366763273395246713154032656356613664756833019041619767690587992755904667171041761778618617199771673265063596225183600629353878977458556179900801153614934950315514258923289091580612121213453454462183787172994254642690584616259619513351610190337386532378654648836585867781643369993354469127658064474302310432296823973931401210893841564836210365056630153717324752480041964088272029282129920708704171250468028671205365553521955711736939858716205951638698339981730986044377959121779737310513766419166112506516135164735742608848545953945308284544275538319449094627898747320169483034141271687240305797151629706192318757765090881910884509668016081807838554786787550679633551133541940343952982314627075886727849884878625855673449643781372024404890318700529887578012031202106614318039394868463465494376168939637294130696473358701305806111547744022993725193971906301451495126109790159697172187490636355372098649853065352783286965779843525786054364975586712605023793296142941713305428165006873486518182871285354494132631306175682650299994460475849739644359397432423620651599526963459201189345877903570029064290147700177363565509526447297085095381976588452276753084053806965143498826812694277380081246502083331874647179363971500708623205377868702927300704346345775235129715643916126331394640154253965153906836366526291357282138810429862545728317483042190261910705096257050052527215201291524676849999502371282431899246428236774490993060197877913581890277918687102656324313146328731530605252769531415020326723554347203789864328837227950140558304699970604872431541151133466815656764828310372954123257777320387473085698687451514498043246384154483123908758041647380311645599978956218915996383980675260218677221446395912851110490972438333744663885520364006098951634747680791644455582706027059842718013403060103343825455204787141012990502390894204431956204322075494705621146732480317912384022524827986403616843318477094258453309276517892397254182141782055124275182524421214087066884608422252332488328680844632548546463009437018105619270031117992942922803498707572817698692727411865251315175116960582097774814065126747152035478130813992375867526600077290639349472192292100384329066495773526384112900115494702266449327443783862136481930054955040459188023321831057591519533169507760594734999761934597800530517143831461733695969658883601601215644064015411891703541222545646718776550740162083962210845849147977566148229308791911780318638460902506458763376985477907224417339756276347991461483027792178945049460659658215741316031265168767795479880492484239534426313132928497905801215696600425116935570762817665153593199774205042728148837174029698039938185417191446710660777121177198449991191484885873418593566945711347407210208317755666687125830922613942807872978889985845040251787710914563156246457347448924969368833862751539703134342282650875137925479497564163876531214786722886128798123772004938014386208536424831084444784965175569303957272028399611176991552996756205597235284570849759570645108689394768828646547362851322306818671993488898508552703485068268101729686435737772549046777029159506918005814671112362809505601101203762043049459523004088484909552721757338908941549216914800536025913963704192371901655389516499446174532015823419016979192013195227623839372891501584657697299947369255419065781129778849389543835328652663705964382614271628447216150280227805106095276866015369266986955762775812318701913451860696466573747547105995388085019069644391200796716695679049284272598221483302721292893295409435954142017703222879074195977355398196952254822973442825410062658767762850813800449092902768081691420237416251522143944481929055056359477605493905078296814512995294140021438696756970496401684351218474199816316946097065543097264188533881154515738238039357485334472020466254921825940868332121465445937753249027643608017131967314599978549588302006884846637466996714005433102980540716431651626238239946012081269796753439616672645055859157135124075707813535949202974133197449951269385286527226498727332117764282759765526431206989824124108757454118989853796771116135924493988714580881657161106059733813173022270454823227650537428253140962567958690362635293572388389041082535198101920272891404975033927508457293478218282625853269840225885140173815594538536496719443594298813939710301249284949886559340752587535517207229827231608568716801626395209080034624601591841518187813512855347405728046731069855889870300386810569881183651462701043990579501238675711070641904080025678117683614920395907115055792200282062569332964943285548264322810223709501538398429879393952993093536442219853018999142121294034479504243680136467171999314746101768492897535522808593602487266864386559047852630407357102634709676235510623784405842987343281505230964830924640492584788905788700588546469501577026387186084545746556289395418368369395254081948623479987172158790284321790663774762960120346538011257521501063143874641984455678888556322610754064054905484047815013960809982506085850555972303952926164004163100589097503196036218158252269939892474490016772113545034897707579327191326739461986107573771785154479114913766064317875868991182658088900356972964029479576974134544414712743558648655473420712263373139538163737757759566188997159469427003283868338340865604469475439762475359701913149621710656160967158440268228657445503138863669173787710259326121901387273385018448481902166420423000972139217321725155830124245661701784398271399015268787297120710177681959283057872548424096045566544564024171079491792345485173394393239986641156933590687500429339828349831064998935332105534517009625151051127731915091452012127537675497075832984183529611725312593666102692051316117849737693250202682639880215568993724142958758342820687277130604054722144327923623704373919724905319581408425958207717477305542034667601282070618841689819218741046396992633590900878218153063651281713904854091990798731943158136650520579529885746564505849273369976980232082794377837498187403012009267289423650402175950620742108090804158547636341186599248968671812624959804893631837137926046555095476475669441287581192185532095317540349781330075851602889294378872407670374862489416159479021121077843206413026932991065177412568009522295377290452013292011293875574072363932916078348734287605446512665216030725782494149457746080787568772241147650022628148522635893442401447808229438918423537293597063074078383476523191113161374938270421052090705206117385279543421567141240630520606167017122235270717678604293351770422121324818012055183133930292421635409397798364882564641819818934788564532899620846443922283390335001492514322627106880737637708534393099900260980093503513834810229547653967939209010546720862848707797364046305780243050860670729863995758029144236112405803650207073979104417832445914665801367763140417442291200758327133147286194979344407939772704507804724170661963010078657444351061431493246102110883100332163228214398971179149528461421677519310959902940410679354908508743570694162612968582683744795400465771695059636781235715537203149293911954424025892165173392068293209898148791148063465901354216512410866732238108085802704288118996832215077217366883280327003742796508723365476252498356036308747053314054440431721881563071652746123647350111590918069745217668476313769935145930353071575648068558360801229240203357149182305191463707172698734072856637339361415676518288604275874665790319998637355405435993096745541097105194873952529974639409514381356364772175253031346272532956060897492009056445667351044388684921092062311033615524752453937462207693294048391611959125025134718953236953230538592124321725995759212481443534432713210062782434523077563356402784663806083245578733252751274936415022576986453747992081927136738684217253333238019446420235692534459648410528213648173190285366308987123484927350948803696400949682787784566359566617771519129331506936001801793909942716230239422504332057575942466136596884927660497754258967265264891982174974980094463082121662523217412044192901931104064565934001160407861085410013204793361084149591596798268594801279591715818955605409481220298743148098113202268895054211688542708312185002175024861123624641320750303446314416936963935477348641615076461226087086330661303139116017975862832169460244533866029938595512068406419718501375727532681054318582154682468133984162185095704562656783891331760804108940153891565446928579173451411117186414383147615017440888399439291948691128304737970726269758496879881122682878885103016067410018594646620109053893538871726606007690104514352705794385328603739002514015492029362465413466943990582958796042947211569386737485280205446674342573465317165998638321703425565978653693180608434318677565478009350578131371847885368923882615735857538722495824063293118773753065327525049769977565564480123558664877135278853322149970592367481384099634800679106773104086284140173475972978905848747661353697854043646586691062201695057677690278843704668496195340419368271108239685986578030350773618011268830936810209152195269170408068086114033439629448886344776156251886138895935302318603395234227764354490403944429260216941060329896740101283542024524089474294848129882654939906775210457095963414317001786401359094606667291492779608925450400587858631489388008518363227595730498092894243779725692932936917470605496176930751299132790440635086825353988003888257519281599391081949242979791417045519364994040446637144208531604960222948484726302135373075178886627469746697185836921687762685556920905193120474359147481219819224821674566709161840894991674468987076101875055416334611244054072482693589033263100514851225012077434186839220041491969716606035369140048129870141340529218203838849907189806749230708959868151659276669065712887572758714173781321826721535529692823172232094317980114962752241210901371286078266222879647758900605948391001586275495111970338317717781679713642516100085020961111179964748570981425772567121941908518796079621200732675281548528396029781917469631622869948230707357256366618392052797410930121713490009560036852382907721994486547844358811151453246236694472253004255788561168070657695506754376101183119732664575705436042612409856430163507213589662193173497958813629843855786743012443519845264737116389535344390313653670710721593530052881573648992829006176083883758980177426557585553588294912116876831383887912863607043139236551117071408659278539755386906903695625730208224313887971198015326214997139917437931309538808214104103938242917844724368410287725905737853623138176847454935251532940612453491011064384860086172953618238653746003921268315809936578885616225246450466012651984327019792350214967781011271646286897536794539186372373870539217143592286842642046346695401655395849612793406947747464793960347035623806898511125059215227272781540707831631723045508051063610208980076892084372332303085334183560037472103851222644781438388111952559326936688341801974705694742931693378089152044676614382162924138641261054376136604349523940919896620882997722586045656741468433439169769765012973395902506524455750761911260121734648308677625160038245593376288983987564908406999056596339566577890739819377428586476743116837164826144580946460899837110095450158442648242162251633537541272936810866714204665197227870394398930121021854042956099239946770438986043920145299642334710754466205939494356354297749835515399057452661768686921570176154820675551936707678900597192257084633079122348519087620629419542160018727180750781019517566456553598914111571114686361746481556731685910297912790511220241491187127581019089945642319044571393897803774360883255773791730674622709353247573054511366578871660480909805376053975272706196359905375883942426868090765875001646573733651893942059303391205784167173489036155600045046098299920260325154368290448557777666230794951088413899798114513322326832034614800545275926343781781560758712763626391160008371174763491755942905032674391179032895486668429153975085631726660228429770283582580456909883486165670870422795317275308670096872549358771227132473074041551347173813454097648357183360882889709800431059706925783745951715105598042315111286176581328432189366665243773578393903725408774880673604121733817535461074852330130134585432102529887224890210014266011457229651136021041076785669098277893366647084925552459653907387760536826757996798578300579074859589866281388469446118923700609821844847956963423664485041700179545042464030793393694809251913107071661071503416374545661499424884760088530225600278050158519550719455275069161241601551634924366031208468612510467124211544411073312424498162254313747413939201924462058791893218350572567928734689947425237838058870722510917805433650452564825388528047475516389816586532330352761374645853259893669168876123758969332278063100984510648773745835891775212664428530179671423907064399580193559198013861129113211244503278970132133781327112780806813586779315191080486441552500984522604253800822813889698946511064310148187407258834525792241678000694587550210318105718163145264899818965896577525286043641497968927179260399888615281257103601468838277002178939510231234147316630788419522950640665719765671902555558986416119000746143394735229863764197311795087051970625742326707916493074282994355492287246743155629137550055483179370986982341983440615131588719427009411412275220009488384981100084237411415005869443571356436325725907215907538807540442430705150280060321510922221051799252521462300537114295024628909129818868846249673843945979386726874418119960295526828041038515551792422195657447446598948871751415893410080990874475815994879858461176356749938048560983944871786498586688493473491936299271307395211423100328769203679309745881593298383420030412694492448812446157686792879277135829926162098310707492148694508524272307648531498065256556582169384502624077685244434110462243526213908749296730048967646043764776189054561358661077155379318287253399656623645425375973103398442191700251655718088303537834521308273776652065175873666131863540972721216596369394300119971862472988499854229504884979307121419023835367167388286354158988849057996790790575896512060261749784939406903226935698909253481163359033030445705166809002414885511206784378911130174122907238536090854082579053446690561578657676468811259259116384688089109818912404433908490222154263729648198305008499864196057753329756025989624970844522444295552001478295281096114449987824484954065793625281376652563292568789409249830721493728983978117581561045082288086297011603946742554808975173600728384923014404195913719703873143744604689053934255762897767904938050130901197909810912915690504346686831075962716873369609611373219048391136210537867616770288544398623755375928431777694122120868668146268501481616839601767981860747748767650266297531500799761914137520430893264444242877973591293583217645713131082847726220211859327187445162604610261604505516359922659872854184605816152004801367796143543508289481193715197547688385161839532870471927800882274720718810314751266383407287241964474847432132154818643648202430380201869047469963300862221772868654514529107639646432522477219085883437818642995529559202019205945117394048267555311158778612391450066234820203437800327081013378303490012134315183484499937314015933109978656260497256834062497166749681255821977244806627655645491760780003825613462685533350834249552178899010200234973115293595168793966272075732739813967957023931306189260735884884454886020319879269460142768169092550268462318153392085230436482718056201247437812903931119447232822250931675960833827562025983172674763130747250511882617091737095152084948903942093548459778233870027765836250313885877957143370039178147590948342292734878590935004241933171616158971163276231247824425277607986001973356742481386858208701097977372320260232364982011566897987409790562143165735762610658630777799811889456576854516822731262465341112627110443709604446919589955835007896007122588324262637026739960082637358912529254955960815725043464373508204877782869735459268580461877143709578179619817648361524187481697170932646205354010094253877193800369550849209634179797601794677861314104731702463478122205838747848188649914107072505351535493983010895380293541203381273839664482171739554022084561554077342979181479860837768645784362089039009047957081785356628373745888721568991483392453267409050587983331644432481782815124817381542727661735287555096001120528223488359524139284207715513432216740689515205199258198424853765364133877588465753920534657825669544810457556401926518241944518147420977536356632511276246957442310686283479838051497945475694645503176844726470590632303252549928565118361915935307571928331895871911004986806136372342266075566070834515778755231593949248744298277022697446662771044066801921110971698827190873632001359792758914929238088967880220432100936239839434243481300970097977775186876431103869114343293207944821843014444945853331565586079775827829266585604995005525107279474684264298891079241970894386085515050938080093478836294718542850554501072323321606571733252931523878958135851012685920642589408060590548098633539479832794014727050135830447660744695080099827974554827499757583571709939058760577132983459603341298249570891539813830451353610998891287699382208020256909201646349831877490830293957013822992335024263188407527833932745705373148669011334902428062884631844442794670242218040198112970363503938794381922081867711861555972766210207631272670554966859109409473399435978772801885435073514425524894773022881695831037945970610966012814383580739804993851411351946236776034808879981085133024011542220310758690578531011126755892235611222597394167420725078646617346438929407244640807811420127755476512533661738305161084908196056992999336332903371296867532313370848603166848529903217301278990959714641646874778586583741943741500767253778303445830314985265383137146330546156013624397864079058804985409938095097361256682660440677830679339087866552279311199678654510894897635914268473775720725345351514305339320451426203897731368424909704824689906920924323772705350862798201700118486127820045565207612226810299569328336712542249318705223160660509337738650769273534040636860313612763802605742202630261433306258409936804185982238407532583768697596574395169173717678357704642821547226685142788490053876195006999091002344076489730938976010047521750231444244466301708643836283983361730199357830639623654003740559426298499362988640619074381985232624647517961662676292604087886293148104359543753027615879533985215351291765226441487620687191082470030758532958905060345822887118692684159082665209192563856447023456628909518619106205711046366831923267082574628440318113649130492296238983498421267677425723538889724675436235412225544915549546411506525231524650961182118093067127332473441085548242795748174339624537234643713166388467489763886150131627979877282096599365723748399592253420864777058464268063597934705200981918304829881887356305601644644527438936759491565340917433805001304293099676858017712836542088243722506931091639057588530465706547439730072892691407674316065515874751233763660014591381140693388823454668193805152291889777501722327979053751694375362797127372893208513615544035079420446302545551955928640738629065806926291112125547111564567158099189849339821340816983860724952553191259447216905458432377744966419424566193738067894711776224668225055257851967829494461871504149310436005114419029633698493595683395861415407504263845745946142720677449880040583544184042340891199011127509984838536485301679608376283330548641475930532074168305423883060995647754301748609456271155507221355185308579356739073597820398263702596765785769436958923098205008807039055314573200626287892074585576943828998950513746109964079741818658146274086213434363625441056357180735996574809172708011275886843012443374511334095360494234648585658891271328277083389523083981063949130465964605838675306919166383198430944943238388203125328589221365666470039624421752416413744704405747030118028785600573632194315897317938893985098601083192749444567632019572682481291991414064619131544052595225149584630716478833286567590898736227864761658252921261798907241128279606237348832882951174875161606746000939720251320599751072686644311311189738809857572535192738148691854417974849269830933909650305545562179093156066126450793200537672152798235744953718549082131843128963616196967673444208286942204541558236346203957132768748701483316603991482649291761696800305603050446655699548381745414926625863994720524415877609546256670136339273652120114925217243502625257167159192075044421412401962022625762958177129880063278174966928128452507859592006643881180374031752597505360519037291326610020496042088536908750529368181245672968802431413832843106771121876364295837824922739124774009535450150821665690090693608071900274070603762625909124733856950097974082413886507282451183929229459767512423420408100299383019511460358114458391334653629967095368771354082647771802670280573902013921264158856362201037798208844209738035047298681271214418869002136778002243758878878247430552995822001368738397579512430520752836268816576911247646706341863047326416492009148316980707241837837453979782008076945461120414327314554937425448556011596838883748767210864478032225973998381388844983173795310190511842878646447356177638787484471925942965298556035822948209040520119135224766245698474537178251178145535459358792482906436968220156675068914455254104897498338659116863332634304928010717389849600143483129704666835315366007800541835304099770432184188855084695013832857462266956082549949367179412084801937878324368375987586061407038186738718332150609503744861496634345162051649782954963415727746231096556963172071524424856042395743951761272614725999588130093723070068447261261505874197627120922181824154514529560746858371912536763251730310346602075932084658189917392039550495743521987453316776319063113084929279440565715489679591766345457643409792869879356813949638841216345099576149050983258771068299292685237070394509578295084857528010706173368805242761734889416372884482522352517948090635748233560204708535411809962666112761791755136284703314117117743218313039965821051442043250650089806896055434911722456771809807747117140750827446356053070545565486797358428416418992879702754651743436370767073704101742468761174800290242705540412121258519643218410901622526194859303167425393526199257529985334533184219969231829293032167934815507286926874810925542156572734477694167325233013560214392808029883177949543389731128692991665622087878861956006352642634907859445448425443225130307805017639321921602383615602311387762394364800098453259948353494119348975922984014506187419675052204181002557276685353612594160443963599720011426033140703118310353988677391042525589436076736470974608975381646611101505428621883891354696111846602704090972737576812348424169695878179801389188098757340625994681047629641031239646583319904027451798038941973844828950235731993547778359380671153045947121783036280635767659344261975204334546233931881618520994620166549149167124356331073158638266400866302160128616307367539816988040502880068657632641986011945445584135549504026577379166293779109627369579294119805302007417408399726588986453295278288430242029426060364148644729162021610149989697145625959782889540380826093514885531419600490955239116329459669089069823083004912141033822670498782545873495187185092759281124780019620843659846344472967193542616304258422675235098370157751976757325735121954806978142912917936185456229112407386039157535831658584542007919301295827404010103294562329138698905034283211353741107397520101383349641189105734764312677668879751513633210570263291689636705917062631052839048611867875096402036092888247781972655071345214832551558904608375118118369888422890327525186448984445595425239357163058990608148791012420098676397185912628104382617979996298667171580650645738452356317682230781676748754212558980820452682506012678460178059916443770999500846788865382430577925562914215033233280539915634694584196805300347663300633273302481115382609579698158369424192620154967311129189697486466594328547707664829584913125021353451775214018908100148205701413140536770598834576429568624720604662623258457592067773709391409304695148418786182236312349518563715303509747486091264224658378584557460099429111294777208851705669356156079497184183554706217571591472071487336634778878142100853918668547354993622254490312111737367580927934426365419918043034362675977432027312866002326074192933338957453473721481566972095551481297238168620504994330488029953006486397382994541699031307062798718940663370734260177519666710282030882186789859499489893800861851297089584306332170152254572297878207397960298425966335881475656604451342945087854472462019103230986198141608472350868411803773412192287862112877866787579617943008412153398434905129084366694015702436453952396366681482738827245840311298339044685315538002446750117855183037085608728169454688675399462444378394851930284558006873246887003379021676535394449441790727341258504867256543477399784688367969160098245141860809725717914028900299649050146646338843726672640652426801980699982995654544388847521277881083872734378886654577773156107056388531903114174330710881028000651825473019460455867680613587730212932577245917593538923514926042442925754888403572738325596893784567158680746436339622078242644961988521352677009860408475060248905053903259130034285625664957153137166552703409140418370813515061297508553483573629073239231352941362697814521555630783647093984364805173675664832708395306097052062016312247576637611326915259082407296040482905497490999990243335080235451578582041595779247881416275180772051042667015412571751340395598345325369428726266738918474984797560442009096379448520559091544525056160254383990198234635639437874295762223251580782424842716987496637364875266848362663908007199859247352993814038943824703016059098943919310757095279003354033006566063218940486149889047419416693447758578964033549209924728178633969577493420842287190872675247019621151594635998430604467270928249653366909126972294585271541324590523938218691531766107682008330365914641773809206283303135234430469623589234226037115675812861224703321194173644662562144870419682578286042918538589237681339609354564447354184017544812451820763430783704709197889957224632519057623743980267009919894527931432382346926838704756642809724023749571254951763912068030445073786989146396336130422341469991753383121786878384380176653440711385602830929558168920339293090171865068189962492953097784698309604448869597556559012935684669124766788886816343712473919212101510493762492552501288154455056372335742802905843181121065143237540284940146174635477407525602565836326203736087453143984845144119009903826528757514742761786658224409700462349372113315455314873118128695099974903177439609215171993656765637094067899408607710085159510387848048572643621286076171845986730221887925454620091930833427417132642718146988343223785222955765235604206454233343004274915848144400056006018119297717241389707486732918419293667188922438486254052481622574233081289576180253630992177418794064843522366149644548372350076343355513865140823033819899552786178063717868599997247689499956485389198208867520094194609318784089404052917046564525359973929251160877440818496924201209657230111321608760613548364382678480840165357458565078550595904089081255053592007067201336405911991370906113587188006949831655968690943070187936962657581543955761322217325264078927671095770793406011484214998974295717810609456494711103677369980629147104640371852403418720612604503091040817723368132709689424322913225534378755201389803424054223736169546935758843395092132195874939230344343951238742712569978361518641172417251670813308277455294032626734278442313636008960148002742192165925692286092011474959892080938660459528271772491126258135251655227253403860719499846115842378503481733662960803614380123496488681183036318710261052541811520489961340501621648899150759461687922593194829417835971416696255126987430666319353594091650507914785586071073338057690500094549846280466354051044903397464343771429544307490690040881176265803055702567914320853434903060625299467061081205457835076437388414382158818322601271541453188731844050362010716063951419997750312326889313528708842466385753009386135339070746491425185209651961416759129474723395593376676293534505562069963199300813571538137223104165429082975354448764334385467648846887698264817564455720024979874668481746469145756674311206112594244813527897787409817543376086809688876268356042879388955421832475998756017097895998074220233793927426947965645435518445660010870482159669600632094463022442227981239161351618289908349775727948662530255219720015000117120602220529638079278432549764589908705153655230161846952721692364698686397999010866298196584021341140716331741041279868977208248021733534536233065389507460977134460655389158404616976324265729721692509898624768226921705916531344833692177082943986281286434808501461931167810045596862372650909754353135491026912387968773009668915626796227604676570611645168088771327273194852727359110865988399460044943151973653191684788882811096057913912397705613570052002834457968676056177792337334451137792193806573393070490906071367793394157057636324686021859326011906482238202032472471202759869109873339394325720070531470882142229183440481648762064116335054785691262086420554132406376751227520465373969403465405988378163407489085636063863576503454438963928174356480610270336901769537512555588697443394751089541225960990016879839951730847045151708909532432903976933095702613207292552424782655998434600939609467284263365942151528045996450068415104484786445268609966312426093189870998992589198960613540949733533057100864866958228460974887159582050184619140224426086717603722811994417868509938052220327831101452026103434318035151051066788080613483907300324829935372546768001830754736769902699193502074265716549983891509406188411111299396984180160495885054618594133762547434604328932587384635738327844096998377487924101966796824854031421998270522305573672128142955105191631273200637502224779290335110112311867855657709699675619270433993376577470734215504959862695171781399556288121729397265536456163849042286988815666233917143792221149489941399797172069087142464117165081444737400890269323383914096460753664105461038725551609373083649552153808631101813572449683716018448349387150094323658900830805969044008515436533756509290845871322757389458518059621501077938085136523088866494783512518751075498356559651655033783577209259749187646159141343808586734865761506697856684443979862962790455640505121105000575459845751479468451996345101190235504263564763409295233381097278764717504813287406106346155695272996213568893481216465570319795479108378643380581092372073056397833002746154082470144421944887449909518239423204527725974340534459093571599912161849537889187410408795804786529321643666349396247141941723511755680183698596267306057299386829299580171601464420217110083001942121414985626858713570435178315638079436897887772909620580130117968270086759695062229914674950504876055711581556113678671694208946453470001959906781758929390090262125503147250218336414394274383601368702004904693474583310632123743790876560591282359156214309409090154477582000952898313545758179102544889258657015360179263951413580058534820489707038053529221507960827251701994937094209068837263224050055663983885975117440895413871395906723017446741340951494462747837877835018631654205437754174356572910985313349524762557182880376898848560244629870421022213952812061222164825319915518063122404099810642340708890613320579737872571224249230617985772359598127539191361720582297987510276849156613572048923640512887569726013660187647801702691135887670777975481364842989687443334993066622948982473955720347814376060227429400539443846890145992799282435856106896870211036807080939421569815215625387321688581033082933375115627446590919788773349181524765274063492806259724948712584507730185450620903814518674537405746568415392129123952033016968435892307110231280945673383677374024188645790365956177512696905914185817910477986743708985617797026195344612957060878854105144429127642994525440573850530884344321258297604332898402440004585534666267690963619321229187034173511520276535419753838459303068326113741557352586506493189025896441075927910941654811836602895274382594882831325337243340999651642676348384543135738945216756691831634147496619627492722490485001238980223970478270246591050094063675919150919456510070176539044051280652902733521185062314333155641127223472592117803810746152550141772757691555479382425768310461224199103950268755312297350322497548823849972593326014609199080916001716312418334438916774723936663726499888135864731974082842088223788282298630074216031492738513254898797635882043502722644861166888601066172530395354000112753876503015609930722251263064980910336186912711316921635496271089602109319684460259939440129884372643024185101442352202458203456247394922835107273987366498760005708997972224175416768154237649610188673090498995547855818793295870863742835523911753720836128392275328452172275859157026003547272980170661955896730158933673483227019965253953345061310504762577862148867461685509723430177579592656261580633429939504269132665350938147450913433184547895574321468723723903395335700146632829775126063678155489560570799397886335877775690391438780965272929450946023489308170057427506967751118333530706013496594856074515426151618835399806069246139276310782452312287159905528015692667574714658781573788734043099150592765355143994065937899863690779878676605452638689806173803410784661958429920586995638889560487538519926199303201175516840291532872542312040654879789654087516931405003419809243786375545914977329824650215128627422487532351638770576794524424251121218286652265907278825283926097850987642010380668617715597991150159086029018199571215097315414503219748333987150206093099937642410125735426290780629178639680447328453668402703555995518486828883487915849750435199586429054572258803744127434870850952969104321557301379562265039687547986245788509855791019438584742529496548374669845541185025055434448285177490751958857922329407908125189430855196877726415299205511803831691541170772139671255365964181972394291302655264675125387068528921236607503006779855553920293649352230155225242523004890847406038414570658899249272529575001207365688715116039655712250286075286839274284102707828957226991177529738864787335822029351058859612753987161549337417500003219731008482186970500995797493860799138963959487403011563643263216535632299828704650294291466753338615053263802655496594124476794363658632361982192495864896072012487609923622928942050239369435366331937801818480327660670291403874144339193550939246803156441844012747501876640845723520399801898694734905186958951824813353243772395387315655113232300518852902747683015408932487630702495378383687293004066044913083364166208729191280214234937033621527382926325618440185902834346835169424637970944947905303141836199196175684852404313956199404947447046036402679510944047710519688164414089270813252417719271691059321717068556952221874816435358579144496720612694084734996628945266076348823043151287800223893558696052760534521333259654033313070068426846201878315736898948777689553135555857824639836302042832687885930308358717903096239240859902534748256843155029822502477446397682833543534606788916835987330707782406946610668673900085860116720827331847707047573647587378258546808421563561044009284741950910543661347714209644655847801309440367794094007652527271753790146796157253054177792845120564234578151428983463631548644749463392285062364465459344339740134224127668526758356822129757697037924417122971068090098716485708580124065513720276967285408153925414074640432911703608981999967313291064622603714958122634481941248834009033162428997908345259451519188912238303470303508168629137670376019659503697464796190349570461304229567637547991118825604418155002478800475675124080221744919326162773486858262463367096340390793444697863988974163376317832683133372358521534425929809664189971344078089700182941365547890964992684062197772763841841252694792635273946817867837810752195490942048003063003078327879537070750081334603669046127963467466624061329177064676604277793882228364315841295930929927240740034222700329595202152333511804794919322897734720346486706016834841518862555618511413315561050867609810286856580261087736253590571791334458974894451018778798120036657732087323832572514483908246937896223477278007512268728551893379703397010884880050587397922484705831931196522838587351856022000089586608521792812493458938173229322788033594472149748269968147228423575593260521006250965663483786253265302096159204552781102527942817082728122706190565991988483295306211643079903237452686145182742332666816797395911491071033823510040257088415285592246997550141577449730865747063919970095772457434185710604330618838329463625347145903626916040260292097129881290565654517185709498425463176143288130427928728432056239333676790309498001458074463046107596175736509742228288319640226769339146282035399455117887467374763577095091263172223173216293144507470097037112180864705500725444637951883400965291913285219663328084148601649808718192133881784979481946685088558238825764471327676695290687485906126591946326613452484729506369717246858708090823017452479820112852508746847682468527236616443888449335530625643704325479165797319275746134786321807093936298204227384933997893703281552043106457032925211248047682676816900849805537219119546074872032419932294930716963380551830648581560035188342064639728539827284323815195898289201383330761325230611327757962113748930693182742291609472396602438748392943937135213570177883576284935884699010469172821886285641859866544700861761209233475281903589957239438605065091066161315008764293600187136458190236887714843853400154279726845106746155422739004263300779544445461989487379174889268259395539875881522930420999894490669804864912360342714044917510837503611931738752023169523142664258519863761055002509286433793161583407731241594723782788842845902446334103808538300200548239228709477604323029073009835314597430773995623415396967691766053986484760043352014718929045209896042871338781155663048974217343487630349913295004757590852304356962078238721678220751044196902680891453249572452362223527477445325713776849109941164423623346836384067125053785660139506387246158002702743660598890679117943442332495233713267432033514402792049263609945233746314680022434974492052825848553771494278287556636352611403607173954256763097090845574909254367743804144209789181548225701306045600174426662529304296419636552282060804294084883249776285333565352211190483022294413248431851975321336871268738455058954581370512133176821955908101671240929460759590569052182877434605069323322054331832064784071907811326625034547422322575487002193248097652038587593257306434231283325683643755490968545475180015981280888589360403208916198706530764009670051718816575141912222348048063369476152649990397659046386393507213680348326902434617160926490076199021219055461075171172067582362562833644422370422003759088963711212671486346458159958340497412431794629902233386928791036913736004065028695714982051526006661383599926668678036077075327557322285607676213098870395733838738555758538355429403375374335808056268114264104727093101879011974795822600902481096405669826003807588720450510847425811578677051707065939039856787394574009138788470665089223945819014681041492723056846283374611732896872991545342337635441904650878251757373772443543404159410262511167665653416654413595757198979480922293811019753159193055445590492771328279066461155434159259631584262395300025672198231271811937191004722149619419637567525177031574539396259686023963429478437006057127755531344530606829805860900035210542466941861154313407667983703349903001912906705559155297419907437488760653227859774140113268219861895758113242379910540231642935842590385755832512449800831372652301376733579513646395821622517773388851553023034992611576185213492626703016150465991711053894122882544345394926310640663249945717562395031045826001166996461972577992025640663134818964733622447686319153798208512293261117651665299177434250366756616747524722000263967560576928514672146700678242594182762514828589597868878097896445160123132917681710668724261759534351023497118827643985211952977347619386225770175355537975463101808525151336443037864531307355974923985890345570975850555016944941820447241357316784237609906104229547143252590915475863779724899599892363878017006915640690346372889520589846019302574902386680089723027385488280353296839347670045448162789530110617277987864203138042132890028755370988326239889149275133272052351905229184104885322575986611591042961444487556410547619751178738339865114353005376149208868910056304654883888899350783297306929381968689948532790887546200620129065641083351960432073282938817697039803897621958420840589175254866192463778074430651012018998036562180294220706789272736236087644641147284898140177833261643800766278512743539741197998952235102056918622676256180849792096327605373281772936534915383083027228745606091132334735468612849506889135435864073249964542625654233535081259899014513504080876349661820836845587345145318806758879089990049477526551333289728394733508414023037221627352493780169607548339196314833792622165036199914097273056061776198621568545640176761846381305819207288124749658458148178880554066211904332961445366315458927489263895055779875330670264814551656752633316009881436472974456466670605261333763279497923871698775965355736954489763004629302936370909376015208146657450359536553069294315699629862669086283040807267993975105514711887213232900999851081887101892199201697540769423852974656109832085584837748409228855477122653651545334409275934471931709415375331707278304686199606661020599880617776519037161237580005297751930109619407475484348882532462469561773858674325932311255501896050001286604123240515307486189343654767030555198847735924994779178058952879625719907408262369562913657872932718226929671412240998693903636885973262171278650896816239381920761600615459533684953904845097958636419429556967786572495577582084429908368751140934004425731103238044827125369706894884671299861368104913850342993053195930968684467443838200463373639533351791112620598977532707480755909543941905253863302765827967360933463871269821325846183205594360153604187497348246603594595914460041242374731964527450561143093527114408855103581392637496424604332500658817277714045302768799244926530267761566262467451958298319000246690963450142051500946466366774815177017513506431513594086850149463092007589411177040009027783983444716098651106769807522812826060551008664007549483888758849358809592642843314032008305444920580196369839055551185717348234142932220896071291351618015522750836184543934650646849968708678449346317590622498851973700850527347297216526287042196467980138344888219715846737261442663955888391816509764676214483550252340351837858195314112302353843163755190330274295677417954198827614463006485151266772161153533035651037979888750231342524179169165655345577710901914956938907981245535613753842223828018676935381418853795404417391739125300039348464814626132814325936438661246464167698883431810250144698355641019504691432724241115298742675481953429077476917372348402768966455327726303500804670621572531027649137752597770822821220536596346557525778842408622268163614249017416867952950300815201882111723574184005929177756939591024706609536988904373608358279927353855863414666906454235532425505888106153244249720763011902117124420670619669232412018015737171952607748776462483705999463994160356985290445294191761487030046155981161304869569107203018267383786463850042633921641278836019462043510449526852271755510839161898038029288896809535974042554331956392448388803923775057503556729961820469191817023602117141636268022126443788313647963412377079447973606630792457743640639284058335518053201725360006090675977615420716088647116438576273318708880192574068646643440800796189325654330500023586736236127981891832811102361456814607354617624878311611949005982703521887834945945021296786821805340035480244544132338075238641661476204906486812471307111205949887635496310270340518779922246246712375415372436724798683656668864520868986333378884970453020126852649658188413522412292866155812421400831059633536272944635983495639654543242979158738300632878705016040179693469235207004931739973471447944211804410040351329181042093573982244610435388695111816151980245954110814232528628450225926244814598211318973423760494907046206532286704911863344622129779533867747630274648163690417213607212273687634084298221455809354771456208547657097938653681587797446555996380012127299171300076976795639018449141846216674501157729872969012462455639039122471726952991551726457469694454022030430844801518790971778205032278052620814811135786501015064385463185006120213847379637212707526471726100199236385112497464292069858822526629028993533844835516104572179642306649909165315428529615816488769955989134982284774119624459497253860371042549293988571637763165807927663612350139748693736786648714823758259760259445198378554844839806246053233172241500904902892572924574509876174528471394019576219383952539634596261463479165197862513730623729403103874065349013897212149771484383219055925983833406683835081854827282033159304758689070943510972546262661155360525011264751892837867373951599992297685216967499131672781278016601034564649867719859855602322345057449103504372372222056849000657968682179932373762765505874972499826128390899791436225717745336805860273068480221238263371958549936715223695541989684009443127074366889709059514698306488226252330156880173422195354355037617411902845904838137873417994924613140040096108708280277452057351256523649010234667173301448803816091922127129522360671357494092400498773059973460494067295577861582344378005640596323263189456753511948714411833736857876880426021237754202122787359798563787617955978103074119475138014989535460404413381807194192152036366633699617894263920246438932077061474071692660421279635370017838179370610577743974249746539192255563225947194320950879842848050866692507699874773895207627246197860085926911064881331170485713326482348182427900900901865404597176932243944826201574513782630361886151346381065214569181761525661800534269494402581194387662139253941476610163524374998549532215536404691371037113295558343350703426651018074874675263971376721219508790544710922839935090867524877534599093684531387334487229533259873725681250816968384151082959125822200966478178896614204534048195811695989446193317332543533890259670581257984493147113042656996210402034872194470878327541976336702380544724349386970597375811286847665224294728359117607114241764235228786195391046402866129684275287227158529250693019306870285569072732444848735446987642838018409481293598805457371514638743239877483958518709333122705427905312690951495969718787371609125011051171527877747458807431923086442351227434122124073619984833916541246671780089754849724500634271074224066520778830371944655059262599512622360916514049570306797382305390263914391215458526764422156808385613141315558590123940818481726731702888755035248673115704796360085527890692095326012335338682855545480950336853133337153658772734067828819350098215866293985796942227030500995011832802345551543884367041048876891396155678156652214157305432509638789876404579509606830864018277537312473610286233029428784578693252468939949591791486111169130505518667610030275098760722296660892387775375489431345762104818086941147467349944869213077803207308357568452193615791206992566103023682252743722513716968125114042783826633046115327860085388035264035147777585695348151332348835840694486848526622132885693772810178827015520485863762093801709153140868263794589669276541908115856594096036181863739597151624025388353590930022681977967910674073517536613237360187072576386557292266342044443440381859058062314689163607393860393340430483912080595291399553177322694184129009469067899570957848536314585885330385974784334873076213919458424406699323574566003645137213591720952972765742256077822980773299652426129053420804302595323945972481972137342139713749721841407613200212209070008671032670806975676086385380492989216986318536618099273781529784824315992726398867060596422438636941577639940977243426907837780193764330714055665039406350446292470194193367539777343490334159511930157294837598733663548966757915756753293773588101529876389048891126538560367679497585763199225652024519995175809895117453368072942537927550575473349617943208385475057578959606365217656982464057582571055345503833783655927971248280503086117530182581007236460757040970381964584902120259559906748000082487603174660757329750338837324746793440975571417518594307816511951313996727913043102573417825458020253370358586359230323429633890020033094004098299352347182731946122425817372277331696150317370361826639964194534706497511880636756804732422572875053557020845708142533530085236691632126401646298483971277816397530891019011718050285486198266748348763779331356372510389050910461128477225555031777159654020472288910957749232620120707940362661527803036292519572336905667394507541811554159832331569575422575719098256503980505846520741600584708494594687004653313547180075343805597642162765518917634373457365814535878640117610725869074988932875990697151738398173381397351847909390973316285404324979716794973582083775601250825010466697746390193054649080387783133251999152304457247980269719972464084317034104786445993343109288054676908732059141588828262701287999615338376323216810900675402873662605672611711876665216674392515598877287676331133898069027230125874469432791090657061323604138916539475876511511423751647169041208517006349312954866893991865443685995065556222836157440925827785795265289174261395584521339116092419703890751642410975297785739714639994329660070810265277177807564425251979043372678199523164780369417823336111289051602051302468459288456722010240466205244804134213577388466676729672178365695319121345028964813721985787346941663991947299230369980300111311796457696719435836175177794190024554270893083934790208943385801969955133169357960276257852279026562799276436866630939464913115517896112796202290109303913943645661186026759092490555884880752137911569200050550697237733627973048576776781543709472995037044929346015124122301861058708450939892724746758796126444675555693580959806599304756774339240129836885537354512316215617250488496012851847364831264979323717480099848557164544788870781280763749039449092592481445400958652831450408375554396200345388586830803959938023819957602654286627478460684777241155959358090970925571527740082931362582138813204899443022604913031927707513104501891803686724617929481351122582717841831112982930907994544733197681098001301134427902384360599239537461158552349361491795995454789122990288966282106436657612827474721479837471039762245849594700896177856336434178555376442996688954493299942137204083842810927157502989849932462070895866394836699189012909113774974613945709365820471795943043022058147887831498537349795159454509416570529973975446054700391918225941890290882344994468938491635055011708567749943957616574762308245547715836902426217540745850322157075841259440704309445227198427218651531391390143094510836644249056533775704355295651222296506115344572390251999496678886617922661260001190276376776399917879836439656207062295278193421647222321849827008949707677276536818219401189005676457990950989340993856650329751895458179446532860475881962449698199641683900887021779525680308723614614099860861338659440441255793801396859023670081477534088442424500219353519137299884899950334193431154105664075548835538353098022850737415378917789170316034660568977044054626126406448833734843266115718319468721799968216022228333132476772379625715896471279458295050858148729168457280988845091958476165550937565096004606052872332732966310590165670154898225494879290586388787071412723125868343638260438555221452317489835427085387667647593337444923802451474573492725726365092159568692450780768337326239720536002079830969907023264214125931946816749665290806434714977377675259454823675671225478007903184009422525427806609022157194896266887039555153799935472255120779851883437647556886390333830996986697485290970535674219510756942395919372433894335796669750968985251642869065894118176604659103100401807437307877285313504220481362584909996048946731321706130873844411213639385047867925385413920744935425337025242588242397423984617803703835075482700175780815443134025260666178153106660749958381612584456918242830709443180985919527406844986423646991539483791451032135184876710941569824347986589945812830742002718901612367739885578391811112956125782350130639492075084886679366864284500603168002931685959877114877554973900294890381745093243088361030170816740045900008158893484320891197827760875708263826760206272752369714413549555219905078476976096140941347164751274084785161447127971978046484770961055047411392306189672369997526306208925200564147084710333329906817971881220980829052494090365302838546622221466933685564655965761345870706403871454141022448578485571495414992276808901023535082749837080892909767401238214332021502527596304385220730546430810594117329545346620750643999456828484746403301052393822493567042534141702967924255835264568025882847189712770594665340532508393038097369080196807066927229864104658005242877938613274856442575946185734770016973729495176872754012100828795024225074524997459597087817722331680511399531658555748299205341244724455974497031502661089088133660183081532163281482914517447026294070889725871724730776111012942482792579074099822200393101951684456096486781412730598953108462496672444060024142344908438931330766956086423036959290985293752962691140512707181452370842399177352966550828924502520683213218836091445201973640473728444608633868789625375273933800098099324452185239269759803807829742494512670895950653204524997450483487317996594597309570957792353429035187784131159822197700149835289000916754796160179796691547335755866455193390984540701227227619373475831742125520585480411048221323384447335728191581542612367918945661063821305454121050451752679180112060839201581247120795142916173910220831584824731250239481813581671441114186903596066610305650079865698267762346563860315270796994223966002941497054894188005452201303753045103996906976388019873320480795688795808036012803404716658932149226549434846305643033647924298629746800454575540307826840736385223091532285715749767255503811928752816854148732621248447263105073231940647218158317282202915320306928019740222557227350527097429255023625844938298303197066906045220188171945269667507368577389405427403224677938302714108462301693315955645892353568661618984454018332188404593878845152619823302164379849454020099913770114403898264116462693101523875625770009869637554211755068149772448403693836093283613224364201119547161212573575819441435650977628595575868096174897041802265202450331182617373519038253555323257613152820203217223130764038039605517453556474598418750422655817721477895101145886182176287953358207790294205591973655485385072627801452289172520834119209524760498816421166123575648269601252664940805871603879401417837862842126325310652386451610241437379509273673834617218469207377535667868250271684242062147315797268709690925969491377132475874301147105273017662153318887494351667471711631183999458196539442254089719966376730621048888726678655130010945050084686776438781499539217864138556828521222105286923971780400806075470554030019718181925374927053277846434099020096484850416532779650997248515975647127743537206552227974356110127142839177744885639691400748228242860559896670253866215884179202904086506771970295365780646206745349607192937902819172609727540334764049613662363931334555284279340746361347915621132826322191371683844984779484520371209881999466136034297368217519038360096428137158811459987899942461578163835276183212716742326088421251055504317012117586331337548204472995527832598392681595106869157064437816925175815661505513639233436716832250830147159841469849027496228347848483792594990719819223424006517039474261405197405792245328135914674095350827276289739413371881998414952296855313238221721691276959544445649258610446486634338878659876053912624124053213167129268620868853308347962560185469305571237841223162968307494373421882898357321912698483276754870795575313164210625731198397545441968541843798027240325162405574264953914756634521642300798833982418731781592970775708827689447107391218152678673461972607951927827169086950015503767334916173181201374861615827683351503568818440214511626745100600353786762887971564074871654553816626436715632988289304805983059026926458891113856724816025001886064305133392648366965231784371628951654253668348390252893615061112141114476695353569527662083208350409972445266967912136205666690455273504521699177721304013368126331412848794502882657477322701106647101838973868991556544882561194270842945591141465548977647899345449778084111752898945056959704934688112324916354430806285893418895541544255508686667942309074105271697401249563663316416655431629389767602068170142808511410609453987615502474563724628131070256122861916344181752325361308096153273744436133185838607358669095339740763008535398816743344243048615137036820910857616959529728611022698994638187647973283792847067663688538303059114743581156520937192862225948519140481153177422976864404014317415439155583809069817250092782989207847937664646350587891725512501214876476016303878996327516889684899375473792549273025037229727400241940703191181100015799465233877201464874077207446938052403736143037725874283369442139500894122029202565669269317743922501879727105489997369961913278189800099394844582972795737830180653861300560189986986758572378507538799301558426253749262777623703512471469421714589795019232172320860786491400974122626273842012284315534386333348211141010150641622657407915222539672263423423072096732926163631325836017097666286632653001823141334328486138736488705194596260899388992927990518099606986336995410884238772236817076636526084332933950631365235770011247667659046492232203339023587934290350601570651659368950414168034021471607232137625511668497185453538218015143311715500314585187462109964312238706448972457971200314883266634617129455564173558740149799269127377536246708211575231012469800613070037568642168923145577249596301686302846121275723971277130433352692898772260582877525021984494851416611442108928010769650114390488295870856315424714710178693526223276321511084790764623759346871563296473377387176220444618539452981340519055340308621292417247263307429138429293461913048856096321531032871489275964661494320852042845585732301788175601994295513198365491083725885201453981098436622556533039653700849054138592237317303873093225176038300744007760347427407043976215249443710422396826270484444535588740749167256754025988098345069175428645805657417749361654149888730786417925043354702257707726308306371233949453517821873281718185845323589880042631513135193809648704377677566316929937721939439524994160223782658215953625113223995503816325233745301405486438698906603525289002250849840115360699337327095932859774679408000094469741542537308963272692244749486500459713994866813393593875085053869279870304325906678952522355544826508873907170256850982341324679417408028295804168477741925318227263366128811950214538756649641023656364382770560105091325385781010272471259654663391681367946402574357091832989801111225147054818528113531683637232125023089244701850632848430000007422028610452809550778982232928036782646078347437084149984868082874060884589136384348051596400786727841131835535571821681392289764293206440059698511512035829408924515381442409988707590058857615974957139633452104015580415639567415001604970741076693694223514557823887348489232392983314860983500690050889415705245495131898388869776819811307666322648439590256579496942794148968534868244299993193382576515762332589811796891903161739510886271075121787904634101216949341755040025554877314141263145695134988073864244382827094401104790124214290012450766790214578335653206889065004834348181491679620792841399723437184669118478721004737887183032741134561614394270547614454221798101248610614918277808563816320876335594702873358954578207419675315989875116679421940650805767105008755785758489768152294008134612057477961116953844372990119929503592981154338680099608995114558736856327896136937271158999704653629725359564054113285596587855567355239165903144717670457376638894958555468226223440159893132221197625111447256466618901124292745763175788578321233554667738042111051722163467492824744077750774031263610757209982659049818991294449258282669387148805065141648727974496976054027799086760796007032772935222871212856918068827245616369110780286705109112775823326532632003386400646701956378490687393128633619746686519892902952204895664479517546128205063998348182422420224441727999279623869931293549655529270457423956410821100524403576665062990321632267649918462671436642493527294642171674208869667650217161534932518757685640932836111953640449017879757080448071943456365120699272961127667801844017748577780634071417574000544145375876775333380583407475846910248942988836624922786627058628198548360808605771127957605231997698154782784283996191698779552419204410810651103552495411696558406504046772386872552991074036218888822584956832625084286077872100219512296575149347194728466023607240661120533314876666165951187990945573380780351013755652041109599530409705468126403425810474586645276355829791070204934822101278041510560524527927093892837049772439958472424723438060929555465314180080519657089039892098039038125418526390700584714306251516479967107651753061807779894807385643180195151439863803810290737250552873724559417924087934493626384601875104691505193405637694354287662438123990784973175629163891558831813801170837007948298664514080331602663237246866967716302914780136601087020890141454082784037375074235171076099200724876949943620761400700876138881819536571046952600946360647029921832148073563366944908001030576168138174439422506667965132142855035193545653626114769610338330580855924883736735067418530618442343626652638591052199001562957086188951984186294128254633667179668037588873766521833183457708210494190265476827347467051849053846604963126080793846859027557224680480848099942721839312638374938020387884909851843436999333485095512251990669971537441381736483821679411600712178212709054855814442454959114996215980834693100011291728166993088585330281989623772420829478738923248617405629599156356147800208360323608825551250186975882036525154960714593944751616825018336609214742926343463803859546431267979472639111231206587259344702150554275058969931850829883579443352226962094058945122057781994998198553295393178905058693504639419830454835436224058368480066474878271932614374317802376557838109863039295631321791296563798460868955299040731617259560477933280526807332277435380635620573572706331969075690535493517046566321483986845852735224484700420394112690538253450000833174697371409968747096101706556676889776180357665619802078326071539851854740871990962523296440923246985196634462517452306820596037995381699221910727165090412400347143939799385933034668750551734127758183400290311099966857540550764210256808114536113850136415889972541082676684820252130394604567708650514744669476057920056763413187878154765966253264808377592074547774052683456453551852045996589349770993842907236232913009359693365544460694567531290634375588471619212420187864986854410521040076085478067467808216639186890976223986042455043427258146202187132598969850888427241454673705873417280298621691236635347073905011509170530255467666961363946982662156121524804803673942660083812992683464481856317154082763485678347744707316273154528352893437709811290799239890104443401924609485820341920516299089913390623173678725760600794398034987835744430643205353891293700459060092951673228917970343790084852354954506535232875788514731441054775079188816762583498937364217182573390377143175606341630377757131679492873237690570527822221053761597005595924028297924137535745305000381416074337121024767485841323316590170249558945332652747895787590181408854411738535839663343837658274703293524711541565441013107594365432703081689967134803455858088433191772138427581774822982259519989254609013717036498007228918714674930694293781830870500768507318679525481114932011577430265173494727048768267803797877897959034538352465573112203941679445154874874219846181344305113675865444659292259356769513985621538547968619961502124275500798106734665919518182884492441812153238446242539945128004017006516152733521162099141512772963671442938556825381757469958497209219309672371898598630451712799372492880116355463957846288267080281861982325596219841983770845299728644482943472915251214358680695104062755510183532088058148262973807752263252797820160650974981649621343025702577054618457325588744659929700970070841940532549169489590476493579307692316958251151495905486253608570895328683753504428859820686362167023635766950308842879260853657004966286016485594596254476104364056146846977215950009195548104508330514936355261406539201979544675520500367377264969839546271849148339380811208834285092322062664247782593679023856784036769858812246536431033170035164892469009447469432696791358315639739637586962177247750046932919253490596999082241125119279564911356508584828137997973380203738509117280023519091835164682554451782125255083172114930150836361819122332072271066088000506960291430649521250147989845570246880783230058215024033770475751839807448607760934286207439889558660113855024648824258807739065817707648510502362526171698813025792583121615913474069034413045806641269976998873076029137228219688345474732618652088945572855193704795638701355393086057454164546356019649661392479686529834194568829905201332425924791893047555956978688286236265428404902842490857223057239069192166512994905635793389042558697006313955518036117733189892214700486580080630050282879414426605728333360365316731092918110725337027451744896502093701542982797388027949644496581075234701301843991496313919727364690054020147250981123812600999735180073610409680584172849799173167291155404338190199749686274109609537960957506130038856859951347657219509927943716068881490126445176136091065061289215390056758773518787419916169559130916133538376467679370242741354212297076579185036990335835594737790565556242608404121431706178489767388846409066577020120740585564897951423078177806025391450771924011734587470929289215548356531652774733124175603093876313946229554426455093228279398051293036103486086115548872836188516524350769829587143973697805532886103638406478769672303731222112536622163242267972834010564765678983003941006045690294801839590415111203477446673206500291362112077338364806307764375612516916285038433212379679055762927595489934859470165290629775017750189877163539171060914031868713969399844104896440735136510995651240651122334997989399425299067362654241134075383037084967879992280216796913470663266742063606757838835863675417844873162366306119246735791176915366333860701204408506469314567377219113442012769632339742543858709656839064587658181494348408104688987857301973518455837617643417741194641686819512856327088026478365273923209115745398996962923386852793242955861078155823506739038701070942799271925370005958942167620605894257588366961067169489189001865709529144167025710158953325294511115642989733094355239112882509525985035891586871515807952023199117756025601099077859547828351174220118787805643616956961815028515643706662424187866202211147735151839307260216628856973562583800191549185123224047282775691841884132960708000569194272305548731930683849758067383811934317459673157796315441684484716488642921577503123128619466389808571004755155196613935482648684458090042302498621510707569664410093070921771971086284290920530614329094885138225208487722172209707292989036980550596125236961578636365463091801741841071731178991679860425513557155582028758681194372772766241263912778562078691441837304818966461684350518931789624306791309739730324609645164218741290836638467432737313566217357295640429461267678621546697396334001381810810602461973716975497687800692463079362280188142482110842691757809802852312608615290023261603237837773036966657525610292923090928621895375286271868450997186559414355372942669087397522915947970755246129515905449773921489700137691037875322970998063974204959296715210631024804081930747459092503395909365029112999864336545175143382745981697045374197796927240590984182654158901528343598236527840715337888234806794523072781105923264070407458100799534353165054315436551461274582561626090982400241429921493674504415769269133922782637641304212994652474726027435273494149842352134408649852050825349360854010574992369610330097064947582943178102099356817707822226389159687539498638361853063091299311657265682419841083598697056136711593158679628096801179705188990704506922598148951474302351676289959054451574549130015911248947286799972169169766304865660849593844486325444537866704041135408782756322439394528963809754601740014448556207797715200601683670899405029935640843845666131711452937460183444370139484021422169621963613290307497642015279150217211422558877362834713995806826907589893081173326975879661120721133761448758145643781740210708416212316588187569022530550820541180941547127176198163341213457969773400151804250545292911211085505453928050421279051845962139709276752555969238806166556140341023493898223007766345831012504348947958579443853974099395843706807847561896943141282956164400020446427052638400194869762598150645132544162157401699762233458354417219596024812980024478219078569443791952958387017026262182496056605906437718662465392923645336159370763574020574982979199708425728069682546206214040297346237436074335718702758282664452312689678099280753127499247323448241358442622613525059254950840587656111357315293154404628088786964678071488791094074925357492835249766304671716758544746344330594998618798756063001299786321604070974293629503924044347277285629305672684168017098373084562524125976835630409693727916495167986098192775992482571392626284039277636854124709263224365450385810086506856320518389463586045536022215926586556587880688957209864792836993414552138724961242840567372173407679169078415858066973547984591459343786508997333058537368826911917240783597932792895124174330851298805920533926130490994747265952682491038478868960982306331588332950775980571298065060146304570566475146787489206877519518582670089200483419821038940381384168191463814832595107701005861107538817959694686114825006131520855728723633901801679482323102942588097319045676019541613367480499175507666046414598777322769942225117083347878054298226725704128601132477570734638070918822005282739112399455226241187835786622629428040220960531575632471160044114009281978700017239984170982988992396773377150665492466587318776314737783772483635121259620982383698579887718058029886893228299788051650736814848282720126630328344908123040232077859102170544577351389582507779813560912894572050244457054213687256443281769558409819306236089808463077514465674010184874779724267509102549062427763672457984804687211458440848519249925757184486736327848683655140074396484293750789154539804301703432232830290539883503166113104202408776750439946330141123038716269422269509742039846133868477551932366486635015686625655389308253393191093087354890889843741644414503838222448321112318110455446690959388589407789621065753412601019566101272486088275072887196781605887582884669718490316154627477484786659807073958557074644361265543649843334986492857735328039416658170134665891041486037737186885093546236922585357234654943472425833955277920034318612174562427307075402895704500069391209225826558719951440414452877124726313943188165372051337873418482371947313585285889866448691202925845250594003211031386952626217622852893395619197080602746691027786193963910692894814036669889822795219584139812121715410162560623257884232220714718720301594148938034492128305629243660503607376656245391819660010774205883543305228323357543529649077180304593720111816313262927547617582889360133843781685745116224261877975047978342062148949261502476581507055268671348046389073589454934309702865530473650145726978513061678683309659796253525890023425578643672955528395551133588155047029101477752581624444277964417409814927512618097560921340935423774591078436116806317248497589409925109904762165002106738979099226215735300209702188083290435025071927106880327427025858982589951484311852059928070758505122811257448339221615037041750356331581907679149411997944584165421608727081598690934772670080424995550903055991635860210766834782687145156845076436115697877651187338545425855619523760859988509745893326846284120316205172342325868959570024175703748370842090708991738070887838503263505341448978938037268080572928528398022077893562022378963188453982730948037297353793322176055696368657813029573569237831644529469053888982488869836779267526305372178667729076716091429148792333441089610950524699613193965409519479301553514737376140521383452114260172546432355313568669860704889015943483658407563119243494921135755126016478234798017262858508491338231936355332488031706510574969127762078836892292846171189543151152333150183829941858029474633331281284468227697422529981007671879858795629138688138012028689945530417051195108215891311512295149916796435257918314961582639595015136642251610268152165911430748915707719106321450089438349451591899785548662760821350350121186295941495723579943013954723591949543895495512512137838729825258161833029768198826793172203867650816855293103480551243284146487016782793205627804208299960015346429814536042710286737207398607933384929045893161394086058947786535175400736447399974476101518536220283604969778748897969419123280741863427507411761246020105532883677200950381864559529107938716913092671074866123690441128845518477546318324165488724652211832832351369420051041408763586125687429525666422153632868944510177064754599812288458180361662708777429937424933674664169278953390682577450519707074094105412432938726680422560118337847847247308014021545421002361812185551151483383782641249840509647182857323042264785625519539781669553870679946198844917591558649863288047596708436471810150953596796730262091649256593087704802028143670451351334942602270372382565706726468739349411066517530863950603937661030548307037191340584722920613004013148430034708015465755135082299389899887908874630513778440745763563266893854117659228961921244907562553296754423502493372638833839563293337713856627619134332118238274186940375024017359127428025466730681963499154658007349049786560145047493828645703641891259165644402363525664352276163673038550723768618028030487042039335137360876171484154232265670499818448779158151574139770496999497953701747358477207409381963633286375608912419967391154728746022600948935335598772867269125992310066506738819971002704138660999221552116583453083191873963439566678650099065098211962852584783462351104589170463101370241086517446287676108033666255504298364782603516405834622876542203436440130341851800423291517260986045002162720516492684971102999188412238142046229307212259942330946367837690960945604406200456975219238847006816712012278565268407261363497920810044391089834808937513770710891488158460385904651344540383750762569524678123606343569905714772646266742875913145487129980530451054563808369913314192280236510428512835577947633915932436437150269615364949807304627440615560705581668970679085727242697135514387012852985703170742910227603581164696003728069806911996346231674037605051200976900514946692562047722108777628653555906949640325572380783927927664609265999831179070074727899082997753757340042399210224320014295463390752012044898425460169513535207060895061923184145742231275259524170895958801510077964738860748905206733983798085328905617171907535815091772876918066810238129737169885580354087769694315706075491285169319612423308413115766754320179792730409491251410604921230857861733402102775515137982917379440509201316595007455206808466443059517592251558570426957726602616546017809652783601100219236343871083032955309222162441036517630855419353159840937963597154856452442372422306359639893878128294069354708509752482038740708233058561609881261986379890584321355633846641912895943978601454288878331086781781194122477877451927491839718334468245831878785123232427615105800511465734597631402819815567996154766468817724198275467656154553715184266758255118778720245513360752165582254538748724072190874224412048218767965055340207858031052932485631645240074705218737925775898080665343525822006557909654332244516682255861354634519379406883289757296977816519429464778134067881175987359348624317058987128185569108120905565026760936581701503820929573989800625260084775461237024962111456878557527212696011158114369729684706976236681397707210747743685538618529794127607625513968463138492633753589267335586154160507582244402427758850795298028390316009801540437155239426766928082797797088024709767214331038821581497012360526502753896610246937733805456284532486002269618729377940002120315760792724435139452377184637116859230611103355452818280212932592854653977914814559597831952821261378452294397798053469304803254916261554365374701896480827642766392557504019322426396629576144033217102770785599975193049831071968405644060857382347647006804496510829456694136111307860450305853042937380916401679009211961790854510036529777576724881596758629161223738372393578786258509148268039295486907835911663756988325261092887024372862673119605562076444169207362603238850519713062598433745040325152823517105972919680198094077543310167153420594022933076339737857095279044250520321185287701797872317176994923168964425996583779116894410860900293702702678199856601581049564925073092731067439283638579358085581567679028142706497844062910580545362910883132627662655865133983099357384589698391602801054710777131874622165014219764597239353370427495943099577989381636100730439527029737590236380760203694403619058693012793815029555469383671089745659340177564661732737767086932327170020744457032706395676481340171498893733248003624638370749126317847400347200320727819503423838018466772919314533862576026622341384367109306480222229139325653910922419569822655719866573962191908779450493874651824949516958532820556228529910112503883858267735353212265872426135808378386842741732647278859471928024427627565920686762466615422847503554693579780985845395491767957246255846039742548583826549297854453805338474148592090701547603332707991616155965035048581706308960641167081625012864784777597542410916638442137695816081744824447190117624167271482205118877205329467157442927478086324886146203701378338987310703265254748832095093450979189982043294022112121252589614232515966313695858823204232219047884238264371239629208714277382742288058293870914388385757666849249981841094132856378892795161256780629834054022437641972900384122926128646918607774308532183221404146862981254451002899817204464067993304701170649982222846229447834451769247242206150067877877538752117469328138176649156201008369073908927641963482082647615556241092283341952654504575507529130122990949149022289646287831680713318185522454013320447322964846328039010435146808177837275763054603534989832882677731078618021152577011308833067839986701494895436267925236765606359674117818811657133720155307486403421180156704102979356887406755246564838010850842994818118162570411904069068819618039043305349445380005705990434708376068534524108831164334370105486358878016887269584394667081556392136743638509451211220145648000330742186755977563036005538541588949376089132751825167946212765652448642409346757969339633625353965964310009215336522143801741915979964259745005699363665650928727279963972058016574969321253195037143380935920266387199090277812818787864222224026030747830241827325151713327151459739102593933986641729869451740375441747726600833015034612652463652579319543149076271110353985718973258396612430817158770095375689635849760926428119075649732035805109035333158960659016171445060063406563151761278492902787680767946383583421142474805644021483742569264024117595311714419596663289911110551532459610195063162862649606888642011221939825152984716782834267437040729885566821332286747885332045663341281231415862941395148595607071168616555449998492337843471425047226338152389237547398553448829407995447710424321016302508249462091661853130822615465516740050444247128824883683265593329385003352191360062932083710374703433913506888452868290654103182201166490483936820416664072173787839955635645924860171915267168203819126387216789189209202132991155555935408949444570985445291199540329699495846286989561075322878797065292991661851331015608997358940475385643962331005575662327640143552563054330284257229672245864292615598532196594733563525626634822252306556387773110296592986068314551859896583819674371610365538182033361347873036449883655418723614100852705056519778595800907489448088295088662352227289231979194786709024230304594546883440509515169728280658420999141165403745273012892505912372778277955800472578190852842907744746216169047693109845710597424364992553306486469567556603441425122969995084777823063593122678303497965943217447289709969193719775649662628797714819840051469272411298788529548113506025132973893930948455412118944313690526498573665038253531770111658137300550637802717115413173629524561279014949256663948928551695196368414343245035067185616587368404875152671109112634948525283006967639436206152161622340521853171034349919671936222795990863751392130594747419067279495897795020250165608504647884996357108187197136727444908638974709859084189664299342337656879765372382323157272082367707067462673979479401365560111021081074994925309879307750942552584022682596118770046932852889939744946859209657666109264697546446558008044927913291461764991080568964721780328215036873682653566180825900740103870163834157569465558036716481227959911784084123954931795782497047241433093422234954792834131918082240090521665058841718281453534624943029859011165070373563551549888399889699328379728623116794985525131320977932848663797918398264627946524599479253036455811721956753439765105352052429004868859205299069289881848343836815878833024090010830716371317861261022433988623091858341671331178031438940677960582136312142755155662850689646602230136560580364860904086134279044271447983380061571933765132627850222006794788782280347847070186954412509125025592689800210651029733837318848316309069997148509112126153966638559699317152137755841502241848024554564792224290894606950318952471327539829724191637569743585565310193178356530196382369830782001137538724212906859750002052785490123030406722778103139408749646889430970684029102913066473535557531511136973809063374695270299073125658321266004844193845347906883787822297703368626868143922825565926512031379849979478665407480174526089518749901111143769978129573955007706442748835470669595888294896234906773175085917562066445902468427379436319807477593424270077795455396503376053153064724031879612680877804351416928453706316146829511884500750161643443001103010262176844116260154940234103428313989213924671622162472761400870199752258944768469317137984553151807707934346034483928711652030836343180013122901220005404006256026299626310215096127576876470601662139306999611860596593917719303565140621030229962502704361971064518192956875335053852053186486262717166774304942317783539466034544757538019306223345914105684022995792661845643406749910329183265748524283330491673680588945791466372291098216892292684619399262888327490095598628110104874173585906220622755369278086357962547373959830830971821776091732749483718834994157526308214825539506382630868879204263533495043446700802076571632436184270206267934397506489185816418792078496668865379707233732892741587348314031527074751551840882329909467639325051248927002316657954762513048549326000593587608642526742334068340616712645841042773928112237056739117773660113234986374453420943208227174541502262599563934225817922963223513801997538040529594132992524302309410381550813446861171573782264365133184098154231396011613488468112481762932478363677203917366615816799726080607025142826855347032290089770900834965506772120135605865773388507746405510962496328863648953957263413932483042503352260668331877122017761850863670973282736189414332649495035749280087384020202792869603394866861070055671046081719139773238875159900348441565042096373875220744471945897303394238606012093245778162812177187728115596389055780582131499458191829123525562864129658255885424734732537443677300988290084273966029278243850191824388224232794883738955122934865719154657861345286938218963753653385291230352856379615306964686010840193081994676815698057099283995971601776348492825122531499428559829751686493963369973346049449543777348657400041878747529973519786204045716231894411657363903705132767123055518073284562768855492038496227389080241500222950726322551232743834506303574350384694387176010163625445986458192209080163480310403746545684720691198297277643178558513036792959236624421044020548505057952845205555598501257432512731855749872485694554419354914403185651052046524999844573021099344140426275294247375594515844755392313568061351794114755402149227547041373131893511903255305174792427336543394012349773402314132733081900357455555301609309397422530892035311991119051028840385806402877207440807274703948222008364440983536917364240090051720984781424404922930318476335773394395883562882856054433249964669908750550866069293975057857039066263507824446715372008125733743055569840870796954641563275578973114918667262795787300421389673384162886589676416146904867477605369235988513470130383006458414354772823123477727809195790661021202795880745236348540871697835359483084555018569988561254060683114477258035022682168867447208499778062616349772090881000269600464623591871368174427223238050569334088689192200815581940555725096597656949781377969823421122468342869776898436143961895058394578057269005641066908091067656294512874650552248201875025371198990523171477095677920491189053463030505078207043464067304905558718047849548535379121676186172037053432739242382879653161261121071706381282792711926479608254927612517436527675843210835049896746368921912323273149812959406181944054093293280378763904993211666799194341831257162074746825231777169250417724628751993076273972828368155356389890548412212477653178020881732186969145085259809432991010612834459760958668949790522272152343041522740176305201233535792679715670188690371504328106090981016266996727516543062771945241313483206470932914244523293373343627714454510551049350252209284807873359491654227156471290675611856594092306836992633819665766600897798828839766327325379036079003385957185943297293350206015153278868092233616139185081902984979160999513679499263258706892701793319588597117613918123522949151603191127312829242351362014408902529428458289914340652000898581839462550930830502759331671871995828136261799158353174804644309124031321809379193752768695130127374267601329676263310510236441827711049689570305473062222342911810320444218459858996203111875602801315265232451901975937912493250923976000382176304588643155821427585355696498851671941933922417365344342811288043852280307956223541027223588187336427941104939450370706677149143911948818715039910436116083195390213759901212819814725292674682169992812781258781222916298163853050526052513159643401809860097070997084574343195698289854205172519887498332544205348633642115240525663190696392009776039169840789370009720726266508921928942711206289947457358711329437444841214067186590782485688443486910796270737917489185419097009541745873176214631662486127365378314446626854668519267778995215338444039265693133133377799395412128293508270832615464444631484165408436172184064690774129907259979161903038943522345669265484799802193545263152142537421792055740649221102457476561877858892532114496899704242903680988467891638376651725541743532989833609090972940641023858398883377764066524061283890111720285268002786609016636280168515398494895369480147410149622401317802731185336699276381598632987087100529380016183444241621185695292628909297380240029204852756779413961773410442139367917439568390940133344288692294272366688238920448729885411240744812725621380986556050417580498181442824625653048597273599537098770186628955298319288553502074465029659021643179507052788790271186585820894588806937430584785177403954757906216228379740476333542744579745476186616739167124479671285146797841668224141526968837474700594447730474011199225180238256313304811497351508218389852421063779473723277011349651115663933497057713497286458285265078861582805747328833381007457362953216729968510540433154323550962499760321208546223204169295806856505222721010085945553604983654231102268167573817293281281959594191866981333972337622127746498129112370509343161726070973380785598781884060743358554455265542503790618047377032561225331962487579926334645808974488234651037089593728273690995797311033059549544159328216585819249215016537502621112572378579729875443660209415240759325078191579522935819981708563359449536589658096751529516719352958659692818992796754864548488375497182013347153086181995010592679149967234975049802121920103061394962117922824340720425572349015953147263342045687547791103211017211976623449699244388150918516093761722922848962271140653545327688887542889560156621879982315282632812859391112348691376143436828570643214196079074074516070567426781852407739450786062482642431727194113655951354616905923024121353998850269815462322874856674937227112676396958838061457635241218179052474906818601766491197395531934679266015740328594770931162505308865899151514686597164539143391111136805329004547493520312048313193990124856346594072908791205378381101502790698465631862603085516790708172108946025610327958281129526124495581948495016152422152488196587202849581239462361531069635547663709246838822556224624420547951734186663720417077675438752366264492285284829583231136756265391292659371315778365243998258885364199319947682149540033908695062816691737308208981456630760436623141553841838748241429285133945934091177404237066048816095238993846316346890611015561906033337210550527337233376507990190077432562765630703912315810783906954349401928414456901967724253901538318409549863830628858063673303878893828146881598737515256813975319849491142787205838553915051780100701165701962430127178460857479461362097862579587863077140773262164221062642703010211172624260608639551443551683395833251140454803691572709809628120270825691114297562093766343761140090215971508503551697961004972495724086529047134983782118508631736689323062313904290162379520996493061613565859169500599499058351621830946198056340964972648708727591645896697226632329123794356596211590754850473638200607163517217752036181229803260266515999199940947731389731654922428020261581590005908640151784627815661276420642873693617190885009419683818506632493105942930186595650100654385391723147071802263465908842193345607043745048082536843782635490154767208557697231629964566973082070523517085626959967768503835152949952603522418814705747069044910214371537524663397966036046078461765775701603583332102807244562554678211854702325257455319880200551416512930231004579599886827931603276678183654317983905563153281279296248708070576289796830915168962089995585834004219858790874820237346527449668164018698131593189706443466508475313179292664156906546780503222662254077587991153215653009743809095437745254793868095462533724040046792698502549545729159121406771230594230571228973929927041581842415548642790573754084446971114352986114767022118265997690810661006365826399243487317832535926234294806797399066665958677368009631321820903571451026259143582827022113495482643389576555731321172474806897621665836697801786434511256336787046597411180363540248257061698671817998082621663481532652566400116495057673458374437571481431896224099491266170509061412660940494480723830755466067297018457848769965409544470025415418058508127874965365943578129727772561157595066088522370965248706910303303258448647186901881557002366393500747371895370465394805185039458538663556449932903532559910666861398503598383090110515224743059159109114881445240647500789127037132446783407777738215961875784280030703380227349139366462552248687748003175265437026872424538973950172027550419555957060446835172930270970539835194306060682921083945014909115963919858262382793362062604859605126744339093611316822103809404285467631454276471930470348463747925649143874423086527330782789441337894453902011135362617066133679067435176879765409866208998621573534484068352741313614210884470650302842416316404175903554477982072218605712721819315585455400847432643999541635264006763331652669429324298733143452123495406484346162614266956707906232809295830519207671162849654080082339258748351288963221301899255533242263414869748093545721345260245373491836901039167820898460485177660329023451069401130536953714911038188907881221364830230338191209000141796844385862172085041134755969823985626937071141222911201874921993223341425369533768148799167405941065343851428327197899938236554055016199305739745980611871133209463832861915392701812273939692450590919470542316648419471439712272283263726870618167199775564091158952604820094139781870447774505092121855328947498292334639302018532092390178779814982198702453432956759723241383694351652817515044079594399879096586168389425309443310305278523374844490877403186124982649370556479581299630886970129439053278106172385550646423932628404710350745716487148975012974482935059898940852814145432464919769141227314523536906208709782434204052705474439683329461966798590944425456721197748771895691280033428348991600305409576205972792628237402435620219567135468839410128793105055007318464249239537545755370524233688022221205494950713878205432074108485218937056936822368796367494050526877926521694526360445043836715545092329177322360996648930144852539332213979469403436397364833160220386901026427817436442912540598031294224516891866457290311549002662833996054667054609600413277224115255106698566662679082925677374477425982128793485211075397751892542681951310106708642975703629774313358843330721255449828230946188054197253887457785927842898951995580890243990586451990766882750519346924518548361205814542194025231310379870733089654931206051210630694667256276973615149757877813970558228808268072794191937296214490981290226713857041997179441779101859908814941035152773376584608057541706720226813342872924003542443180930455674795165708451926304540616500822236983895833018947513097758529907719984821443812295944943874434019454163633629848880312643223289673533213183731216997692186923372640604228115826211010994358558671750916677254217058886225788454662805334233615083942585649651639622383425760823822754725743941143482621763307700801403164525601814335227277012093437078380068458009255486349185389706584331633538869280957210618660939273191384396597813852508148792738016960784064755978722895877350646916241992515096744716466209764838782611787481277028328076167354732468253656021783789285891261187306794813554114920286528165841425768948727156202246940663888402276560997697295001748498577957673240836072448670259765752713490337872863709313492573305671281450272755660840060984153043511422854180110459060665352001412560083724695601771453619492589998973009679494456118950210875567872058945696324437507070439559379794697247678931114292144071603186320967514015838957449389288742612435916888587053632415336489638200861297122101758068866312517048758024904710260587378499925603616163345519253620163205690150518166565296795862869952443006382857070778601536559839432188452694964628926362120502626934412565279524083207303542175899843515745072056367750826803290762983098968302133843120553923908343104233054645562110596953743422972751510365204824273836662655637894361007252008780896954998902261141357571256266509605738559691613052784975970510400910784680072360457515549450354546204530911194991948814921227373581670053190538158813583724723320337050861791139282981211703621496270408247031663102160387670678730270798082880422721917306865620419790569127778598926145040469206825601237708636853927156483354110246950974897903860831698236962668279680460423816796897307845516278599943863220063955840355005625138871327507878529627347621608583338827046883212634605201432448797027913337836714711755768699675169496814210580169142284562742023342263002219173504403776413531600121705895520453278902385970034033376291520175216145896091245864197036372395013657301057479587841705718203610349909060070592818526938525769916790996613718941420637675061941588645686946427687133649590565594026997493466016858271645401642778792651667083852959398027295499127702480191187150487928820118416078121970392864341875538920806226331550327363283939669339972175630234642923064236882274904070587393271312324549728446757462982294231053559988825012249066180250654011469121504660359448142359393732093422205500417904453607455672220341916646274790757559739134212778819869662191155390843846478160890484724165394048343006763291976182948865230313421690264097312983188422429324177255262576223612710253892168528546433365699055224637572838782538791481175268204076819887414140472406347218136501546253812373763359752850285259378481271918447293056714715205115860081100977424098099532848701215929075910351432521026801160356389113067793719592751080406472734703105499147514305775469137069470879966570864385755016699976647368346441682690682972595863978327379880098401130522602836159908547340645215040199001633236375131297907466421794656927163861778266005553215087002756174736816174802062799121508293379188938461185030267306715083978834586132394802207990226633772809712994887597273647236127379685639490737442652350767144597243153547335395515005600823724945106355666176317330373680735592780004500916225332460130269051917649498356243206486402359626265696455969315119525991158669355988446391543368161253373671042283956445092620216356264718661622691707497561766252340250845564338979641437562335880344142159902510207277356402907757759003479629727937549910717971521900122279358399668013883280806299462618542222021466860906834209593271837940486785759410342825700780543563475880996371212220571796567984511060385777099450798403131516207033234361026127842284188024644699346469740033404730128403430466554571942336021380934345687264337981822278727035098927658033657685039963113061105640296539323763439966288113794736688581367323484024498957163945726822492244558588463286854160951571265643295646972473183584093213225090838794153305262677447214819274802434028804963831602928843419858399737310924092757366925367336339726328301744157669590194980721309932761276464172223929788403992788751936356352220991864744128092884993723337399525206127329611164455132359999473865139774440824270704738280936703973116286760945421954790608207732093798542244031458711186045233521058312181606675792812679406625224481798418363585538143413170453417787367982329076391730450407788490122866449976576777659419714205533940726831793074862901307531899549103451080164969617911367871284306399106049709080860480512568220009504625532730095641946757020052607377375535165814269352118025676323166483496004801275034285824490456189459725663535105034445436731649038073621469942239461442408394980397457607082630752712505039275938778272756479864783857127808135860194634850278905538051956303266945259609421082592359821931878723022478350096434077481602354794402308959076294889770839179288430841830703145153034455794063380948929286107476278832030076225909672708456959739100402665929716837409322035814407910667505321622355729867548122566519531177093027276008852382212306437422351098688316360263104536854634993443989832356279205942331252242980095301543001253087353998983071217400507928385652111259115925910927805450491564338517497400806964419370582627810656399410476013751378922361373191326657859611575504821181524929501050472442098754612903360671500955299211990812313344439067916353949424922423437118280008410614492759434015433521149150173823317746193533459426569773083663322311851834328823073807048471388033749575687194723529270133240980479650297426181931845352282332166846456813099149699111916068923265276971940217963435039906160443506501837693754718465384382125367934419314037544471113506411235267883516345973038250460414404356293591119382217434242306828208042054248749366950122625206206591014548804336726503471343585754770134175456474677687464748480078953471138051565264805370622035455335633977884215581804841557946002277651739019748639440348036496837114230501168714825036207053567212776587688206919244066725227109489522796149574833975904732051036006028764372732073030379224118813276465851771015690430156603151995167621215778247859072256384379208011964498189214323982417705613306367431344209737672917597242253264685316799711668135359269711202231312192329215736413111093657066414067775447413672502953136031578302279154111919760228577424064849326224378123122735875065881046369388802587553474831621418252571234519089789513913545932742188797117735989134703823538457274290404698536253859922570879754040266309944458019042824405938915564032484261847396607675820553399277039260709185841266378979309411641253943594990494483297127967220113422748869256344856620903900360217300834874252089262254526445183317095526963999967752690356325577874751196872424901721056278083953003782745143140254346415446371728967753303060920652629743311727103490613723889331422448089895696254603361243157539019670743354399157363220800894777495266874563719666042713016390859808405275354371521848142866084900677265488627429832579522212858947271113173107200881378854546467524360163711923934169684326191008920922809076314495827787568257777650206943255403711853719411591850174618621380898205024931495138887110390736553167194657875029405001378846074207640606079678573682438974403587478388482537080472138002524700113058311283414087449658878407291562273512383525071307213225325581917960262510280625649459026851183359415870852973886454184009368520510590573974778213483237950989589413778765477062617357118489302241868400494626987680920006216306592245548957329644407092299212944664950546024585170439963208039955625346106548944526387225417560393010272895910697786972072857783774230827634147234243640537245618031007429926681527742567989717968021460936002796192931924384459441299790123726722950629775957448378345810923288891470391290067735029841604052846534998252893375265033692252092451559875054879497288920663776944548499090433427576665055554155272034414945291772070732639256255610738874429920525785965081367846639146108295316610744650202928123214486818485192635887357792098796145621989328878780483685633259762972464594076370001220273966755096574347615355268032820358640941900269477438337740612757398713888211704772687319733046653195648516562783109083963496280389201012194636460720565913536411399431200200276145978216540747616993654326402932391513720484397810907712869062597501738705664109633743955344237644343545667826557820554131556797293192661191974879894122139360440782283977269385179799297717484274257653830483614665223439985588340996609516960837104098134206663216073764926375886709539684646534376512709050917232984454772559850482832772918101318569014614133745869522367393319377008238219400919435703577200597543166463562312886576669632619859954377905273346596914141443373744521648051471935002324268712413968333085359619676809823925678463661239252076694765403078019592011173247012480557925486405224726246125337039296810816913196636288564525520731675660347465790190005316650070200811639309104936849296113229211144534826868468458589658923631574807897904419836885938683647178566206269753190580477635275012911666474258300653686115259703639010832198569512820702717870918998138336367093253442536018781462413341515319671793363709251533752681753810332186864985650231145134985025187994853669302762701430775209311016534898113231744212155783938951475175738604567975546749524149023535684331774944658412357040172448377663303793329136363505547795554128334964942668562439309614023946499391527451654106303258676259584518087436356083980076256081560203074333705410761018983009671679174093265427488387911922705279957894902525435671219187461520903969542118096394071385057266125007393451202424603089784244895709056891606410300580302131394506779289694666600933113005199230343311662075967505841000371906784867889787010421902282133026537391884651035327090132157893860380211145646375820979743838472011459653068874517338877297041703123836041177771519352324209273717884603186890190171175658989055074520256573462730373446153428553439859744913430761429438597998444771477696685976544071546043831615663013590615433620822334115535117661859403503170459509830324146933219773888347576357617388842922483812484485598117686359420489814709603344042654309084368858577049675180108470066722687371735478291909154714666334594815356749446413488149650799762319594819612536160470849220127360622694809777762629146573536785459401210905294142394555895808695073502124502349005945139489361871131121329409463315223158734697006797382698610992541872943735339705354888945573888040234537934367501434751141059379842487303008544155612064615884823471510489983309890491415858452190501555699896125005119022161418210305089884765503990527749655729627809940119831088076137187603630750591110911963583625821768675861450276538869490024161342204120926885484042306239180085151112021075811656154914325648635545291576630430890218540107297807645480665803911502098205425008499018377202928464011284775909440318384197576663854897342220049683561463432351673061669413858005794637144245332531909614191821509458582322973484022842851748532671219437768043870958840556639437071173659982394536818374343509792690108825648582098521150292426979703537694701657650461508128729668211876038995748710106854613226462458435955798465925263672157799834904016533647459219821456391435404342119174619238219623746290707277377660525691793103374498857077966418266856638041746632762942260241050565861313794664716326049828540096094767280490071032467884614197857792283021714811246886271086574699299041387070634251603335467176202638894828296924653790413508638080031693357451939813579886043458399351665032138923313229800501304791229161639826274472223849078891848996596177919216988099238585228355735071532532779519845029809545657929413573112032009170746200881775589456575076353633178522204300376682406014857555722303769656136390861120898368277119299852973900949492348841029683962984917634635946183819026784610206229242937003616425296895660799811476579194665849666745126912128962524019719065290796411770576688706742422391664195175533549440141276778536449196585491367221216951489616802903914800886387073920869115545500970427957685553372676973439453273507248742171004856553183879404298707033449869085893352277416541126689903968337799485671175164298834812220819546803409140572812153175689961730526771005822167184590936956098400892557102943400285362850460121777138186101183867190610038210104319211501425050106138746355395255019241998535643554634556985726855686331012486855839129988747247231293774396503095635963979097358417862340156774860435373821251500500143227490040828539997378840927023991036652975559806548339632803355098755777058926059341741183403428284780903238671467442336324471001388582648649950090796897216121962991156113002522115328681967393252398848959865394890537430135833558769357440687006003283486879550760188016493840284854900304084498166445265948096418939649766734395416360259877304622632637260137204057620449104041831318309261244820447938305852876682563870930751445025569548401712979450022833663896451091325707465322976784868313896848633582434070160777645672084415116698803472203193654013153018499152018171007333087556106836345249383607000134847843249307775988734514338580745028128696207024565620473401205314982327187941400378598295659923807111247219654316588676095736135160244580217140864715130862186759812104123933322960282998097499852287275543310112283762523142192478940854781890219648301102456862252892134106841126391229759400497371430554042555145901088295969512059340531403362525281193717379238225179002714177775543692883116372549786710843696360953715589268973749466988885812679931606983370264116872663211390039916979206966904278507858860772132238492579721999157286223141466102535664382162634635406036047342054832151759461129565794862259859202161432679053838912198592592774200375378295178205457209280601275480437535711375981034663001312623672283783825423178539242361017150041132308930491465250368487282030470610264272951614891948398156320405834646222471830541317767879517416018418304257777680084533669536931455467313546203777291322388806411780603485113923571190447773718984218872442575886182898349765056262738111418028574111872260725622094842698441854000803049900796166718471401118574143478994597720785657991153653054439425966738067532252996748839710487889661249960525169525551127635002154298170324649470036876387949708592381373816582163054382645871942320043025105470818859966500855678068778351800272881104368496792701479033150353993092596519163896447846932605416357033781447685638454117458640621570953622125534784911654898938201744979437048176789629563412436823281454482114000414226667864500587671700753452470437182827661996073477855387665349392385105160156066609406155179685816765835197096081840272715549431631079571377674936660290959321066188917041738073660849190252558567441002935258931281528408874223334960890191831997390628635579749523318745056466501020866578277117842189541395403500429584808716819819647494216619108181158136720818248206038245043492251327786747139138374114733942247209636224716095481293054914409278860549195626815228615993211386057731517004212290698212104441076752416402225950270746237065781846128195767276932778090368207057861330716900935577210301433290787010131509305468098210545481096070936648725606502727217834531004467467785820062454359283322645593124755386078796479585226386317707665634187888774806871536552361130551081286400160659528545422580185585450327282194848624260390461798454258863826629334485375987285531439142246945972700004099357698059227622263754730902919084783058084768601675627429985458430378267131684890043733270065138055225116500332678455091806267696962338781737016470124183232640439570256472820654822837578464444535222845776830224620814551781884967319382936231133557656281408383997799203778400849553105995148091590873252386098118091593516028289928551054800018995913186738605130391955831235026625020924907468970966404692315071964634745849479638084337941683693223096016475748308433127407076056619060671430558078677432209514004971792872129254375354335419730721927254685633797763105595124824412809096224487545446599060209679433494356139615678257309599737505522083219125121948586053894700114493738913646891492931667719859626595302624731034931168830168334354974350946853143537856058828240856748332908000829969885011361033681726464379614340571971864962263560704912544296868531134568289030813748255216102952791054410891992278881573703011597167777224759672891843634121463275119696510408764928090573723774323579614627825733559348232309848828154039152543357083895816737919901072821059883883045137827080237617121973468766772884369755265819524528420281149537593432678416775080604719408290287841085091708788428823916408121961312046985334838399514803422118160835786285705658677302870655381904780722024131841780792387411710326703284771753587870035047921528613240295576547904437820814220388459159026210408799484459595939096503461992071068028364552284476542961372972171437343038731681390398024941466131954150909080836916317752138256782342810110839238321574599541298174143253860861121807498578507790347301228621792891225365156657790675081090981829732820610728002202459140106660784468957337998236241061302069444076382612030099476572812596003097639949292789776014359380834329146150702272888030732156430338234189239561478889852531877864167466464998635285510712780763721725571483882833967026455113558754958140607082350971362368653226074343185861033424859935984344212917162082973895604251492916558105510531471379771164028599231013510781824791076890009040654079703137010741877395733886195597978631623935476459985598501717648077485321717300812436982474638464123443234427090563542890271105019020370972416666225638142511177617728783145664248296078947752236193055597625578562036322106533780700311849867619081006453828371146062757173963453041284693216569302946963178828453983413195302995985240843722129843608289384294917191516173911262710936536501930470669076714333029349521722687322528363693284205117110482456696128607834739596762582544741412169731723520502227031674093576361600580015682513304050343833495175435760559906036088957267240645066088327726840757842981478157689987539816848048649722731098852915841602843382728097434089727402090870887346278258589662243614058757543023708147462426104503522441085461559663681473016762353994381654124074113193746798485833836364465784643678847691736077258569831011373812917083377025728828069263165127413924448339800567340729073979481380908538316524886719339151255112556452106682624547184462585209010545274662973429075826747382777957727323827474598586419075932904011575731294587658123182209158530308662766541061654705165166278162730998772493957775466332053779884856807611454898993255685194603191947743025113113307328307654884157145514595770519483413353485415083316096503163128430312208415853625713061544075361284280579325744889847692384599643674513092241968019930427379328233475937158629273177182990231028806411579024605470262022775716980777398012320090932591608941064800375433875259825946619029969374585722498049415408339204542537884851660585885259581591359695431314782590056451186409068750519178233608198556924531335941011282697185565020730557884283671708493421030704740404409216770966892395443307649203069116625467033724138593233220237545410948165610095970118208751725173507310453447674898233070686527010350076843835547011421180530994188159278393822218371567226950576983647517605087650861967321780676193703008103894102971639160411739665675089601612452163871978711970509947140887045415180748533300558787500227030741224966704849679232885360292392232932764649817855003999872171685723696653844090526001404918068674000923047717097422963446509144379201295419965117378497342386015698248424072162341342208394763553006471219734679215492960587391130867758845595818460572625861703456646118228612828189731937182255868895345528804467623407374189265915825329933710392905059947371396399994565724341665408304718058485889984028018557904295552072331025326286917272184914877948074255484450365623898485378548836956456429485595577195343751497126094897014608705619418139248245813069232868132060180482734114965382555076360132554620264006611763050609838157023395115143596813639616458966992243055724358694217498875943233154068589852703561778114304356532734414747301436882906102897465410869291149488468538575876969042301700261825713972767974694402018213161539395829982108021580574050876407170870339390251554379331641299323312119198751724604727394362454147653255303774584325575170218375205801493374122573057980969695975837770281788555568397907980805619749279614603264752830561085473377381269205639920157297443175614014725550980343670568218292003460397136942179143856719663219593524525006079037410001649981875088296371425302555726611796122378464860644182212289423296253005251115766297284039718492320312210974783640165463166695241883172232931141958782392671683673923255534312340994720240914657001670955001042555476362530731832789263819937399910141676678739784719257448551415548024827399587731188731907912434396422191024943006583242106839015730505076950314201825467604924097262133738647767867327229976447813503510218974657321599441262240719743251805336534290016891225050882897347932381706297913550711986581298593675361851114485347825954468932111862628405327062936977885382319547726786451543422546413813015345237950572111441860337599316791328253530198801080975736879353690540257631087326857223831404182276481989782983133670707660454081163546737784838735163473568378883557033639045121053376541041753627412701422443917664195499046270800418203890377804469617162542029832604590934172324525850366887695353551462325122023813487733142837055029930147123037703042984821044145194278025184694729386612660667024984566408770758841687482543962086099870021097558279711843435883317754345447249252784555661373654728699192215549038812610574660706761022785322580091822593269689940659163979800299265588690325129229197841244743661072943469265323241232345766562127239953928694001053868105349012394869241466764160879519958948176701802502762119595181767473113116549121551849061972222010053850533633080339851271794875336649191658836470460583014742187816354382819069377674663475328960591205980003957138864800879091618780933624336095147898053632990940053180920975391970313295005618927010351667782911414717485009581744092762161987707286727958431748091231687705283752779780519344311499334439103882187102024724028412828046723608293005872980815945370433313442450579756862851365059966251516886342925139226541255557125197761357395426270609206591468247175615444390779578984788242909277852809437801514452021933368748899613942283514274826480623947511709820298292797477936311910882562326469966019365659256633987725593495573297993723764582427002702129582182463045054322115516356707228142292884677503671830936759996280513749700043972085693281479738121801599901738162003858734726927088597916524367387136573362230671453526531892937636508247958805711011723722928724676321595300433879906606715413982089087366293512636002015208365608680755454023440449306791956863756091416017788756665970570546551261370631924478575288878721322259995897798144255540849713871045388129963909284426887463648737116957535040578933705333088427917847189373274012160679836705677354907306067761840208989272872209990820272686403701637120972859118411363050093186664282901406849083997402880210369535668588714888158662060411882835847255273059811563221697201080945509959333516900210589307629809305715614799413105540790553448912198524821283354594809813960782914150108508615857681442387640202471911975721681950530602537265512765694139092591718718851593685716862869880015601922813944726417014049691158918048657773499963252753248084235263153409164335184870762397910965783736015655224328291664355431400875245466952683116186078554576324917480800952594419479278253021689401445692778237948164462421907377347926282893601952096369592702942894015823651653363074401625488453082272109589567420904729668702779088629933561916344019531628341817079618612080878304869635930146841200177666690833100203950079980352297690146026272925290920139996069397820061172353238426220891442535578986279076470198291319352896407384196875300023766499072500310900767883429752358043659404077840303018724663932494862694498769362849385367310516560828091251841534148345289069477057421729198493929212473275555236215789278992546477274497523367245421905935365762832495724737888831237717065579113380198765723122953268613307485798303302877611899154395807668092104923226709973883884721228347458410994368741642990280636386160743447863081821547453713495720766467763116752941601226423332903973809760662475455352408953197851073268657006655676350443623850721560769315538494365314860825740451224638259913136784531325746141822933580235956281714305221208223980166305514540880643366055095746030738349058288412978740994078554439121204900258369703055816318945385314910771876627618353195160000363527497606173746055626910237321615187659062690301543077892935625754282802179398647150880583022398749950310248828243928126670915103973150357456147461807937673362290174640947275798060566259642939679884741512950475072347370293940059690442363886889002111430924191808406159206965688058654678594963229745122363088820304084502100886405402968930923854471956484639237694405844258987231568010609439379312087891663488892005927441527133917270426710497826528066905689849137606802862413719364429476951212048032414491968684381492982877314391892675084586589563667134578407350591789069043799946102376032029375598329170530344212804825522868613272560896259670684246436976132259735935647017566732265345400617369723374345787452930620513493844414741443428761078822609195708682250259764297077489444044076406508177100578963280489331661374501338955085122072479310504912240775192522137194968010883135986594981001483938996559539801279500129424776071017577459967196278192049604293496059098753018302275698333676108747588744696921387877187367103550480959594427293299817300345232447274560971598636758446705868282284564830411302779045690095817178275139023491464955559483656155890196730415736871997742850644252822465232819386657557137114669130709009262812362037033316086066930972682753330558238311718789792580274356823485963960126624688360850946615117423468763396662016348673084435723829130822410602991094411589284002248224924577066436429238408588228497641190127176244023883287162931224519830698272356870496309866880158852087952321133632653123318839356397972702427539477136467824391393049279590840910794729129899545289110866782020645702637074308996506754184553105139073396458701142964752710889655685647681091120159783801535369025238176484344996318446844861512957792296202192058255047231930717673546568607572919686353010985006302370983461672774279929241932747584115362787095049780172171312056698671470547056418563225930524637227577508093947859146852026042682675137433780331457078343696768080589290809814061039367616551219685059468496260221157824685557567468618247939525910768940862222066958592350208255369552206506011208755088972693185567186719160878851275329053994980447174990063043531527116823681933601299643120920285100740159563898995546057118935740186026621147196368671366160948231824227917276606724375301446593602475411915417341995615168816882163898883944736061113899780198172852869461934944001885191627593784810371859175509065943895840835876059061166363070296269848767955442299576748376564952667418493635806977404850350296515273623413842775373617166752991656964079032971363938293449221169639020278108927482375227431090753295665432229016361552205039723535793869729500897622962400867132251964701857782443481871342913679000757975800414497293172721616411247797919494578748864365237616931869833209697868005788337101356303435550639555065923181318958794484926390280113243660145490760225788910530400819879640010418305430546595873794713167481919005228625828788796166420742215442716734980771544618633751874249744476743727882492569406177714173550865766409844246695879551873024992700723156228077959407862718905281086589233060144136815908112151019086269295571522025878492352448821810798248039614324545885904348407690819986934605069195224740279254635350697386953054638847541678733470802496427497771784709757247027183236264577817183058328416512656109706094387999891231317879030644267605964102624082021767523944199660849525860408608613682241951977023326017915591408654575217562028481605984137011537060964071927013150155867501787736154950514040645355479155313576572853072100985248552470202031684200795032996276486182095064429351224656235542512995781916556584712054599955185046623404651776382578486421254558598635004454795624532078069509833641588258860521566423121538533584381755166042907647439918907197874793623750343340506388696587423704971415160985664366597570607518117167122531700719381970658428002175653699129085822153428528266983617979873513534408899127414446183916961583925182517781663205800149937784528439256238712494333398952645152395001951994815743933087141281857990012787628520161126009837608639239669910528450719100207744494592110441569635601701670330115281301043679243470558308426779850349935423994049536503821969542781126691196864349721201843856191670111186802258445846132531202683033937003389630203258045372332185247439801808102309249983507057676404386993932695757528545828755868183750348297387509951435664894194750788615259154956298854203225024367892870238491448092362983329985561134421802530910414480295849400407486427519925028605713226288263489716222326022466444228157239747357900012377208398321136190795347015404523628134086088264480784344374362766747136094661410705774892524544241047390066595895063792820210061912756767768004174801841815247531657292276518903897317670473627066459194423235749686365652322926577154841793796588996257029290157439542992879389246258539508353269863871306097494757607476654163525104431054449950552042469305325212780213426105940863269644721161891324691211379656351259446705066732312230577390007896964777637987416769402912836833464794025301347085604693957171382984590205493193012393671051902566455696261679641669540306098948593023035867913855512694226106509933386903484899004696655740798319491931391116861485008138944562513948175893848479939178685642162272917356532391426619567218693586888141074104749789255143284151251970745414714611952881482916703470981743253254586926084297039707183000214670069157138644848648588614648557072477301860708468633638711424892459969337178972684672469865338836345841114441624115667355227716928262755527799830122779915350046223807524188137230723822222727783874805529476778990288149769785305278397076322388174642414669439985911784966283070388173816239101057244877852480099100926500703997368102011702093375097835934989106472422491854227434063488779489970079398700743009706109979663541352073308815479658812149088011968424620191422089290351688126941089810944334966036297443240170623533333422300500082492312245121633505371340129312913836689568233045523744647434166725240651139745553631992065110234006657723875675335975438175791415685211882747690702876893957679997194206212159631569406548490571335881272247485160453322137513929507107010891523749542952945045864075321988157083102606321609605201976990550063562891574370475199365049605018100578167802473407218326012834291369810536334424138576151478724247908546096447356072317058948619490951588816602631383263328186085724328697209805381574449318212375104164053935766317520013530043002484251354117624891746559199626962599617161215331017225550726781116728638003187696382509898772559040330285692207065857729407537017564156084354127212640449136527942115639220676599907520138058827902453129372481447664354216494197453224799316664421001408984509493985359760978642896591033291688798375647964394547596025024037214430369669162124904500360667547160039444437742640156161579546510082356001686844626098899683455698783555811210476027154082223463628834191835788317015811551555186448037579125784543496041914468753075516479412131555702087445707684187422150628928001263341535930458725308735032443687793648973691131904665935735659964071887345434624651294654403317122696353663760059624405048175278486959484630520284464646487458388132269978861809659347642883095353322071169775067404295811117759263812346296120770009758947596199511534521791199736674832086890725018610122196936807992306073708946163363986505096338487262784965544320901669740638046307238549520142975591747494265202307695679613170126511185675265573034987133447269725872887446265031631296418105385597081161702998709138328784302529450251832554640684690590564955725812784554059000374272234100011935071344423779454885244460707929469892346157233470498161309669668293953761296378114208235516693198274561178597774336394300758886151837348795655703845354801162963953812811256035836688005246423104690584386754155442054193435009234026867241958416472358776775662475056670856531204183830062989173885569938802473982285117276194735041266154873530618144458611038261622779753878194347971183858678066303152753740466239320588637682092038219124313726479561842926607518019155941422196273666874449206231296309765319407469287561390397507962274542510895081037489841273384821237223116640137306151422737233815043458918034931666601078001216878129935865026153679174482895382442716905975485796804951888884031178835427371902524269132025172343623301516113068616195235386757429806241141331724664372118266211860764088156682576961384233816198989770273905873536272580895725353028344409812570583140172279881819445746686007866558645178769254310553181215784331024581732339377169966567581789718354897703100478153568250391602895071931310970766539456610586627202598586115865414527318786274842965442924240915338239215841653770831890209927619598481931823009633583700866625359376707412704223481796935329029134249737104182711261639509586641334468944420162261960792452754002792862952860445901844592128496959464253704584794870886062271125496487586994055320246949894231739159129298398293388241996238207378098269236411145367178898997245371603259982017119144527395996918176397321452936197552741473917954492278752735735860113430879574894708520496164198771364073348694431857617795487588284419935780078924864073552756777583669392806014500360494713641994281322575950575830329536455124403282530338857484002261982177249657577880702671261984263615428977936178936852210476316394489697394297989309339955199405720378517876049583713394448813146728488993653181153332787982538087027814326401241963734279993928816120020157400919678924813597612724585701853240511396592035140859769656629339684554698915502002042269213263800805697128907491063314157799044688322177004045509998267170550631119071217619545980902605568694806160470581783905237724770033709298967736449604272652163028779344691899119376232802657846334562434040344048878971111457554715603553778295806941057485032205004767323239984159062047528772485988480131518490208950603855381388087319775564057477144876725774830244600697917074512911085883993900038395146175559320414939866172593161429593457425915379802893606624383556418166891600469190523464640490733539580973015670840841872634300669467403404096656938027344122641389515659899237357728623866526175774625117977974727307018318504215888317676972778355602495638168227453873131020691163250505134590710123542471435696832713666140898490596639674481251010531695279709037628873834050327898807453344793393983626995273921586381435475111489948400357077453935781193233178708610034166838578891482148945971055453792232307854998639442944497246182733992535513832255197066200825888818010056853501712589421090147578177828728607322169850912558510137041039157837780563811890731567601071430807001098403320397234873046729554710471496550212375970152071948614943144598877382694425281521666780968871774607791313460569989725421025696375805557751044597258735166849242726719745603171143182942242875546337309886802809020634732734674052843265584240717775467145665561366585006801439235080531310220275552352604813011335900417105447935864817416011890922500806750537451792469614437430879384957319686566667950163450049183644084465692330976543176784132564874097017419631514049344837843484982438700459018591754857982632408567723541295023602575018784643901530620796000501895029051505883548669538045287046793280050312802617698793609752595361392954334039714583002869820870015117254930016674184824329197594789019553270912223907397223058953503330703086322116992001666225294430524371649318403065764054027998760563327513559740502077775398109608586027091106605150616508707970994592085993574034189277835100758566193234029862324798209150842095083275783306994707649779462503402263387446309392529558591295070664118514416399584344557077147506985052476258685700816957506189221914085634253667886156599900953349427803104598036687864852711516501981035612284845481485940114434292899770657746178923537427989075426278635412727060970248244907945272181143451291875874700532700730377176450067480103064685101313853034351345554784787128928696915632910912352570168360068550638382663942684785368185684756947280653500349269417240471166258696246681603449473089127446351736355416126910160018944973462837265236892813266290946431319293189479158514040117781374435275081522856031991842317740697188670260622105141485350928651067782706406213835873564307005836221033509191868142979931374089545215491115905072017384711484859287901522564454357036801223393580950027208225802718341500322115263545645740569397708925007299720709630936068643683248225601825911887138784648994870197921357510525489205441356884984560054331441831178138421681749281803507906380135578142254476300419258847234541788364452377941966276333164226195056924256550271183164276310343794121640018742206685617971633869671095379573947426451987394042577965167679997772989205443398473420806720785730559129688144102298095371848897397202580936066268730105226557884465044474746405075070099824899760672932780659654660855102011213821795425960851111992673207131173394403875708090110374831872441129812225913034363237950712896743355553684300098861395270169402192687945416921746356703771636757354162302399397938442874498611113582156637205188294360148768571046950300412798925574526919499955397800800588475318509665164439265973350569350141304880531044209128633693462107846775438155199150863781470307828657507896068297865796894967292305415960376472598212793006447475504988864115586259560214618139301067350035223460314035172959431038631964243529325343680586724768507874938445753707164105765614642315461312217435501662511683867290061154534828503151897387652287492047976406272446146681231374321946882955630752265052026235399451653877650800193482091195625908916715763012572678103722901670695137435291356664396021976348702919715356618745956395170504449116165314749367398315472099490035986124634545391443341106754748269436102955904500332938902104244601249886342674119275275625756165129553574185978751566082693741149736224665830273965053030563528149963338826783554176406565102501913110953297310982457838529152067271541673671438985068223658473151084725240142061877287303213321588348702056438085000140287599865760362696570251377153159106741269297517786003121851510534808836011995536934825053616028019829276168028931024637700183850448253114396573353654636240874253179294124755945700170626430554146772616779714467020180498191491533941637922738971984185896353541012326007609016721267011734735849894767571663117335666409765856073200603367026131118557801843478933288617418320063524621904944327912345084627126619265321391627110204807674585971712270253684740542897118461467287210040898589531383734354939340667527148613125058755882497744499233865197866866500793190560474896149045212063128979683012081923309320628093167763147454955982350666565901671944085324385465081295481775225956277140953567065451265640607687746910239148896322783688862488855185865991695679574582043617685085451366851297921200238634216419601417890295339859303294440763370054952816111464178889207146258707058902448690730007430338373759718015381025656713755473111573056387684712687770226819825386079345241768339327039000541928833449295560386712284841439484240715396632288069465630000630499672314432583399399965633654297269823759169432134183071357135523500205266076940244427902471834843970801342079411951737571020111140495679758736776960085902509595005069109872374188289572096117228966378161041701604996827460151044192738085282552143261858999233925540571993606480992658440590268415970882341573564783168661062639604620375920057650559367212503019332684638871399194177769820577054934430848162748781251886641561054797564991079280371011824055966163577288335595166016551050372507480100151806562485414546041459189854477298984141772734264634058848410176891620898481602632677881151952542773346180708928776133697540417022485509963393819490579422553565844095470219362276078612232522470360605605639348466789961735974459284447292545039572377629828578602290127444715775483772703532299197872684672475902857001250808385621196477533420786424809131827036894815207555579443527089818089294048370739253201766096100728708741749053502350739275455536895823613410979082248031860033499887595728377492327455677659142417580808630538396362543767789240373197708676390879939305936145577943933715569349031460854408704098200115022574858948947992024763336282370553824972227066219589651528715369072546294353942184889060121281045194265765529144464810909173154760142121802000843266878113710889680903198422918568999997448419976752822576251713946775000291315974749956481036412770486336835981618956484563460943680308632101128316965526199463766126801850377049900163430194331676051311769327403029341796687251733383659757823866966104013895158406953969672343317444367802159919312504171563325196125049006446461254855140002119449844002155299783811002671417185079104491485001340223529106052550431227921927441762374159331360315161229860087039322345209057360138367193911537921107231398800604907220441617492842993283414913749441158623205540572692820101138743527217075879409985403606763686941672995376189430236984174027180837922588193280691718267268924308023769066228067386285441147561302425904840797818853734015026900989860114769099707800092684638022032326866656664808125943963312391372580353543776481057368489333061472203289298921329153736715854440320662946745556516165685682173231009566074001855051136383489701278979078985375192620964086254946738538266237141994509461674917833175015178707527760906205966694985537416861702818817055288333846538274872884942112763347022906907027315186237767860473499019951703084308426746825648225542583762741010413507248871799128246356649797281530272547436426209521388443769492964023239116026045018107969334232511488604172052898878742064718104256244728409321685326175735720662076342439725940826125831809050312468465895109190714106199925414948069441204050941431600342031637876948301911238086354693723464098320464025111938626861774527313046911538815680624940415854114805732609742618021806996057117221770468462322330114041553013507381409727481709320623840796870289313374870843444130473606219349298212051319110171165371200474835094621269006456366987142248464997192271018152005771825710184667025849573876397822440100568872007287041280821494538961392001485780948503233293424018337881904642887944076355513294222964282344088313433563989464197241312311349066546474812578601347645319312474618399120827481427373923147103242387181101154718048741484661217069819674025783502652191585108960706688407182608338098790677892598981891688362885521903363801895956517833495535532805890559682408909168443585320244119067591591635013440312822046309170965003794971229877082517742365526261748984211025255726607068592285290637806917990576074968901051956308673937473276537569861316448178505744026857155351589438505961849993248274436280838120282161757964642232017865720070135470838978415129690333660324157428052437520623494983213643923420690713772124967152037532621181054453928663531742047008910294549126139836556728627170892225874511221335519068532727250428004803674901523516787441918244321079874063278445310668553697255502892951734698876101943569392292713592260382470915746048099587502942714283618373285763701887473247712043928281872565992976245373508366805381145616634769126509467742766400191117285787459555129021094972600601382282930144796125597370671330295939875411821848094727196323088823365973596881085128387565139967301521956474161239531915010569695734192605958622765615866862138235893430424818116832548347757730190267862991080957554224991256370399797980402040813967907695890579558330761141295971462991292690908045029492310382011340485627748372899540033836946059195074070715196676430870384875170280998298605081986887309674676416017476830379482949220498490411279978545251719318105528783905573778944014898051276012034562876394883724293495529326872470920043393158740200211914871395233805676965354510317315494761090494849526914345582259759085138197843119877122760041954181675935812428908930759917452420939570994159479210281540953960842550572974635983808826771295170066914490357902295688933279559457868549418526510175101979104327639515378713662387599056740656911867368812944701436333709194944019887111933296897325644098272875437976976649913475250167532025661030296606002653329881380498723402190620666225608392495017103931205620988671656823366078471120619624544747666338512263077124557209962009108447011988061091897543548876323913061370308808349203766220462722892616312880483708495400360152159695006766655709523048342550236922906754860818548350693962885760079743169048772219127080940933127408940148950549677420194906030894827877095402671116772416203186436369574406521163437562312762569974998338157515044714880834378598872645080658474512964599164485141096769746632981520018111019046633023882363496723193890022939321844772517879780066548035465166952499180046795634118920464012724830530212239898785504787508685004283478256133913444320389945765053676883937450863631748215249257685011883402361366964167192941213770003667671456939261634811142603060452154765695148469891380617629965065464747843838367801018735088295112693012044921649358293437590432982654634283488576396195349479276898184773504566906575803639382516268729704590949418689920536493711111104008354793123491266405113154853018086349951864136488507814943066172159982914817488312899572882114197000296640624823571289695235345166281441943183321336504665878857192178304625286071374481416885373412122644107357583894664714199732185506539733345031414695333475748028631785168819448111771707899150448193638943882197718742305446407749497554523201655103484282488722163701345204277653442320325358754819803734731939217449655460054269412566828785190219425940237650269386900237603293192634016833396967605235131592602684610697899119885460563753616163755506251401498117797095762781564108092821751521224488692813916096209657180378280152017619427416773134701770441999381457836932702575310692638950546411651743407206297574259446732796945060227162396156282593053250068558695386553236936205433296972883330780379271756803428483577552957380799522293336602463871966513721019429901561568789430575007986678634299248581452611394474456246061164328092851575173714731052739628662001841349970667012335233356795382205039276191385072834194492961735262832785394153149439454336176740803063020098580527977396136347497170563407372562967583972376254085899703440125850470334130255597544219829103155396035863106557419019808999096210526194755522162993262196344655119064739827754898919594566280353987447184869046654781553470996709030149921017815727576806617254502240813045148009507228464416128184050737303962419850342889308372288475410297355914392225517418548910611601416698513504835144289363699348863130278852074648503201852093052746763949976987833687894775237033537242388062319630184842243388249273005845068473623780878426666980070384013246504049087868264420162593139661405857918532026726132254082562838074384977833224897572881030423207092216401448826724119712899557061397572185059946745588962636841484900676154455373972899922540827016863520000366403893506099655785603499822349496361625010231139666709762831683202143573024482541818246338686614211947608728694676562200420787731344746055805762736292662876899552497943324342729975656416392165628609555553289814629642378124718360336137947034091988585572829333431095990706580992942754004770481187935796654496845219802653766966626049303627702682831903402180234879126560120576664585836302748078539868641126494351236781072453694088550201985698776312874636885801173507764784778083798556926195722082776024487406259389531316445869369521026048841421091445758571099834200605528862533135999812563443808648788184997935547378954387445178111202249539635146907363694484436583360000679130696929739011231124170216018018346604822853010171484362605615744115914987445904358088812236779704055135710966801258355365110335204175739069682411849031209901740986969289261810504675151281816580470521171659572730682630147452090669384363035337026020405040279277628293778084484084826780620663703221154774740169139725427835553392388863195513152461167699879134381754578732089250712951267337559975480979912339293752024055255979800095168354693691960418414427871728723543386948854741834086941732902223183160888019153523900019096864349859582804808379876043262565197241490615387851177622455369752016638648824995796878552133907409668487462557824445696660684519711773306148226464344004339660171977456247878858712202947308796914733512994799582026573089723067695273698244384464714264758574349311136866709993487771625474777932471728122375838182975401670826151784664984982529852574863629262098176013423589840378331676661655598923403228430785073741747705898606996056941739916186729752193693836550025134837959731083215935185112822788821115019931433770416538702402235448923425260989359341273980944232781643180260991000924343775274159463299094323816561209601465461005428601010481582580124689410202268822518533281238126658726229074407771705578128244778153424652227791041598068023221587716646243885632740205413418262641227548844393429522392689793243074610355565391512266089392623241991492758302881682943830440685313727488242812623033393765653574406829478658522285197055109787395512313575587006119285666583664125278469987894260675549759134476593514370105818114551064224526640388077433733618044738207351546576338036731588500775124145278022703181955716658498133117943806617532387524230438300512390688354870814205043500514971683358683401511290911669681910909087431537770060436154819195034826235364975675252489047746664676649383211460412142924148587296831818197476625279098916188448384770174003670222852352959046788502357400342101151230113950089899023644333535876411644814663598598550311715755324548452834246375757304241372024474743734888009679201693429447181504727356502216624085077398435906556476929408368048335756476489762191151207137999343862893972781835470134157073238370481972301143822093654647412742951885278071431293026209570648955284045835987072448791849453928853394572640465634622761428311179973613053926779133588385337741526184281045423646719826378878392110509686540500228505527371258622110124312431946616870177230285009247957595955659150709744351047699138464951436375269027248123840752539490211816154503440161282577742611029448500895875279862393113050306493252561811563733931546665675973175340868303294125035915200740758104530483634428464502958089483154245781585931210027854711589830271703083438547035845899395684844842044579298344899873192590847322874029252734146724458799020004706985134266904902337977424244903730688023873873308871970723639277666444851813644095254349837110008897876081043767162398735506144845553359022294553704679362435107009746599845222249723286306963188595128895797412601133421632060082532667985812661784321563142067676477514935056679610433644850422056401136317167733686429492020108455330460349149917668100852350668000081257455838240977412405678829694018309690455480540300539113183301287649170618213496295667531798609657627250743054411902417130037697361568480776321517290141108263523436766053251325557721777308348766533658288252534519871922776584118842613198199837126122027856684685782287706684019061068477091086380794033622780988612957866747638751932419129768340763190272388772951814686783566900111019951005035402719885856776709804544580161726032533512182197904297583617452838293953923004684250096581899621634987232646876032059767654994980417974500367528392534812119705891283926724502625660414052900838235978924349267548081405741942022102773124298244197675705913263842297105946462358147118745875772193688414939502361523546667136863611215480724715932448983752626332040282653978652566229687523667532248045804028640229299891830507637880370407356654716214377659853986880150979862641053926893579835807450696870400925411214403188121560460538614774837580094379483914965514768524245581263712427736467333974956916443361896314265537992706716581543411579536282879307021344973787143345835390480705017023249238947729806658680323557596160114043018265815958977205995762928627214747111456273088582130807672566278162587672789092991095397954499098600890562172018719678467736220308260703868436665644541732943144012305118900629263264503034057476683868149195527689264065833967369116821993495834118314241756599788456287198977265360944450987651770776817128619461241961579084565596696798368335742998363330580942741132752977939578521116427671130597045393787526089931965285598016175687943210669387280906223317112468161365479811619686659220377030064520982549567758821023912543071710059529583660345142222432901360888626081415340040477731922962755733990488736489771553540843034283208711711965668365322070869520303429511923467345959272041658844811685862161066858975446892268750264305171493515326826316787152205620124834088745912150103870088731891648107770636715585014027908114559302641427804733198519673535194696369206841993120994486163597541336094576506861707083261184781827260935704485403336881276158468380964321998202120024073940808129664438240045161306798007452377540714094821325643451617543404703519620232673245390284659654318452515500905140904545992352151716810046140746127425668404484907882321139943472310365948193404353982383678428164891018472811285958130717101784045673655771761919213975196830402251850127734778118143866819894405181329563058330531458913372106396634588471312586889337752792617057952773859678429669541631840446177269448591286338809369824554456124961210796151647353100626393634669743877003207278223442826974188390778032161767743411165474131462509967154438433445184472178175734337515289383527046114159113471740886911217575903676649959922312103987301813637512111391751362820277052624492003287317502900692728930963463555256474185199388081659999812532607405082015474354519744442955184386804683206794696834099508158053435958400124638133889738268896730737625820400772273365047892053095722339139905267514047429582208013010296041581567853567532926381363287675185938370896025516429912521467593091745831516377430993180099932687970689625964747084826498930419997960036920211504789738351980950985265395779919275372828755171691651187300378280849671217951150568753944019463660975579514593877752905791850810079179374592874074091508886867577675451466181100914033587878654692005536497000007944453589570689353705771942768903642095964667148917787040706170357169586932951310658095640756021566193395198263880977534660306152788105649493478845091446502489214721943496027044904626220364692059991333655913506835846280831918393212220098049720130598678769122626387816849678179912243791933105954346088117431206095530792185849493138764203284525972082043606109143111577141036380685293322187058598033931419150329777234536744395405777052087842032240822458436137206858955870637270103191936159081915271706990020765992335531887275891140033192194477719848865257781203225082714328301977068513355419509949151397044248667825352692818748278514913585004925059106622055350813096554141949040521604530463581397224137282082234577260114277601173258674307086233768079951326980482177476359561416331410108572435066217974156433209364764061982363480913351938748615422593459283432260812627398580113417349042692046565118698220101727881567386113044993034622805999116785264496714176218467094256698900456289998464018685473078907994863298426825265762793063494586062743006790655319388104007664802146664326587810616980614863293705863034434308220320997638035416695294244215569195079584312387238854803484615612161236842483437140317091134512925594104696366510158065143511924855574427189773705839416196543821157303314645995647674985589094901600186678577539743899854691205684499747530850214049773786916825342691576132774697765116514309517780028533378795638306538032011789922639474342675776052581517844554281972808762415605921798260826565047046917759342550722207752968724756971302113077760322178737235120075387102532896115730011395977682503296745839640804872281111315253591650442973732015691571000576842788309864818791094061869505498868481801826425229949288361950004283165501358137455661129963001235506732890021316949421980963285648290466393273456552066753492462145516202184983675694136701972597607710572699863335595086114758802084636051991396331060559048137160443681489021847272375044602017231574586926915949472821196406314447010923252073653832822162352170619797067433764329944210752911988483651012122083069010215799592885340880422591008539581652474754486355468652280972952586316570065382742149869521196584756768152106512471346513917031455177848571806599625124974185528971906660874561527219519964605342325984549970941002908963398552287325271823959175443131044150907808704105733156746700254098991668417831797370209686572170415118928573369286817767558171597738192506428156531743018344976442250010674303500918291922419898801935890459839346530475018149896205750277081655040897502744784334532761590912340505714367225803768255633967770762339317690809368482203921282594048600067822461207276228622837645921870241340226740146250102953665601147014105115183031388017245629158762545704282979128364174117830123789540313594660957141533916818550368167098340081054096823946161528986740805628016792326360416916064302272180165662597747148717457843356350511656285283049119151886191129841176823830772878393146092076705169519742900994898926987763605139583520183207510896274740948253485651004632343872664111059418945735747409712024003939227946034481413924279302064346583028834518575763529210678379620438950797425458722370352442568906481070019653171518581931751515601858769687034542265127072438229960736490770659547488142920660524322660031956528209805229586481059816677462926779164126293867344111218349697748072338124653715904294169136433804215793942243344537064243954655504160243589607483080839926421806852658271139007965671601571790090969433997315888530744280599187338770990250462286917345596594924841267372846684462016598229582746399954897902445626340108349975748894709521159597840018991065944348936858868277468699300536695253283141485654225972840087071041696428128901005462687258495799622436178229844583177026279871463328202621930757124425927374936144610157171809447739966150769580472571575996602365294347659520509663147077020828647017261166974070636441608775970883015628211600075237568264566443560354115994430747709244555401699377136379076355468138647544396276407250044118303234620803830499493345237496327328508170518323675451242269572509012060208948505411875310545082810835302531326593245094958005725468781174017377245881440399073470192295342655018581837360965048800636279037153070885940580588405291345031092059683525738884944941845754349610514770094851667113794308989094730101733193949046205383202545779671786340075236044360447591181004338758730284765019615224832512565656106563512094178056337373271225566805884256262434812239333866115514210173503082657667966319284647577982611042848170231363869115407912611662335102377943575232826813706300449354370787356003107009673166696884063575007731848150820525117278150346710125892540930506291883166494270464452064772841693298255467151802669093395184371862124043794774237324302072045600207257684720742086092696439954040475572740107965396935269999183910461488893032760971786957693632854454176503003506860488674337457938407922388284459761566537669264216560311248633717553431198048781556328748370746899866406774236932167647761690525466518445946653874716122073166602847402822147379416048798246807831172362620699665209469672826878998721278621203360413948662389642784190127700896195272256142795712911126442082038374030437352202037388228223875188763900800519553519861281061411792438363794246115418484072453888718323716708233717274524223748906741434206051939049789936824765150307466382882638230887415555898129207268282890628753968523313481216928011342539476507124669873104490333081642471546606546106019822989764318773983878910448990897509596797310148555490007054408269329293317977913377193788367443054863241284580472270892758736420749911839355436610261603999875268644784382916925824476224514289313153411087523292556036942147722459718296610599390643964362457499546448465965578255968191944508299790561549691485240194908916644259027621565309719331965222134154652324871232034151579525009948870021045767240026833416371870955750310586418097243007865251645490420513100320802091179646153033953918462991223008165733978345358116164050475699248240335150918079968814146356905439842033235407451810906777010833867974694298981781540528333816917637137543547230219251684895526081028205417379648333151063547538505344429560818359358912326989524813744814195057935659068451427341419064115611135489427503516865378708050695305678992283757378510317724609418447199410802711783442723892779353098190177635890934656494165376148842356787595371441981628121816643175101064842872658351282557086664694004726837354934908467506991033203584573493152301120651554448859607442105827336421989227945920067872203175005064033900510074168108153926778173653156329698081775459043391445523100638846556764543490179119947866352557315983630664382561295429885394596133132538607776124438628979654476930781701717063552103494055409667697362313645765496325559013456277128285844479076961413113838560933467521970493407700916046165398305010194045344265374711130434701778435365714661690792348789745624276246138278109768223336852746372934859726985680690640197335597816678456255437054354393614120144403814529199755951734245992513039082492361724424061450194443582553272077476665107889936794612269536311896563935649992972030320718205129237966435425736419430017643302956084579125668969863558193830410377672183189259986912642673366471518052383808380007191742166583030223073566470698311520366529745580612136587656059121947682783371483530194833501463596569282950584668247736059086727483575967398149890248821137203105193336704554697612880655550488019105877506304458888842900853446437037010561724236741885391022251029823412255812286793580501422015238562812379930828721858238946566597797857754557592226087685688613674502854287339760264780589145901707504629964937077837534556281436456319408247900160303186961256576130203531715378440804561584008784970281924250789136693380243974131187186425344076646001566499548607511977334961210825994360680752819732937880599915900993544392579363595660453724068133680972837939746006562149311560816228826577459395150052357313853684445981767450655061165404511525705616852366630233367887099584106045508573676021406806577505446351268138122731626775375136920777198692368754557382133177434308693844186748566944376389480090084276638433576038865426605292201249182172192180006213535620643491876651872033235230621085025362293662645394900204053131947682835693978491357176093457092617066374339923009207877037176408727647335824037780962077032613801034346205080610983169164207970191128659385097376017898560354055536328485036975646132543956016222207488374869725185244196577347736348419552125116540245807674613220114244976710005712861421340862822537458264156174201673663427573330325098239088012809152959600171230114821715501677957300349410527329168451485910788894768356537836975797328537232421649004644390723329475802424559102996320891496225616570721596441831772473743151498373014333209792544560232582047343271496949575584798793461363353285681440380611813190268594148640627205673752031761554574474908686151009209072743636762301804739418370423079443404274202013171455083640770039937623325777717453980603815057571581655820598249113581604403001254667408765878367432141437981235883272978883761523134466884698201290678909968249177695758647794585646538611621711941767978595944493039728521121338864047155547215731074018641228214681164352441236923072373969050304935762584284240054990353925711204847070299290158749562810991208301608506617272024355578768798685917923795033515430093239221913159196559711575606147642811485708936861891533709398801449434617519059110564101289974130603628718219838140838471477328870215813303107330835227586897312848213838176512800699024635032164368581464651940025273148729118738925343764764501333917176196448075693025627022177993901984285637036453078622666061961079775765679311094823545642344497253581970564378074754486904115089997740040336694503561583963366057496457605498658703610650862728606656564012883377230689476357095692603754102082443771833563450583680264572892711119886774852239992164616611079525610471391519466478093088531149027455692385987544799775618611494329927710771653837416408091378834222150570750668660365296123732326853319896656733009875854818565835071051849613662857326605312663778797099802484081288539285239631428778175761909398988805175732656298841751375191948607147222614106159725075394325088866460066404756692759516357503377359481627058923345545860752652116527905916855152731603662518145221694849159321247711172747032283573477823906108792421616097286278551509771359424762525372773784291415969928187520281941536532638116576821781717113429016121572859215298682230533359762605068330741670665624084975064902852511721361525618868927214852835062313073599627283880256051019359879837896449923240529959133512920469754376043128064561871090008380014202716563213359205857496352732187734774937836662169220668194891270727867978429579287911737562637576513150325673784322759716065495755069472201937628411808344397363852193345994763111171530987472318293310384258230030146033770433163359180167885321424259223948240742630322377657342465755034111978638288062951448365900161853729802854198098357725721803579581279639757890254137505070480383028390827469597609537761380214373574463440491932870912914719782276282482114379293775159296366554455282567327584894920801548988528804991126544036354538373069982287547984819644791449802607956881291254665228700674787028274712218399017403854421672217641508619401216072971462059023211555961450448284055921913644822822003033095748462078895021989628510319674588963181386981494070116441360627510753295468409104329392155979462788915882335239669892915820345294389586197138547748688850718274855491640798649023545226749104406094482180792317050014182747000629595870006849857715178631139714000526532945195025139935854315988113557877084484249432627569661022977084374872706326725480935280360160778104765337997736266217995448390292887333240394089085316861287675991474735059964346510579268583538038668657284282846322418203606543467269377778158700900184691940397955172578086129415328130556739825720817275870139186239727759679671427673861841876685480095733166281751163316832932040687970896905381958084216641000054815519523026314845053990387871238329037240973999960736312847215739649791377320773243821745617245799174728547102550638962093778505288264978174802921431186908045528897171340235952348091290472037449291444824928676039555447671968475466956707856993122193965146892243950189957245435684594656292974952431456583617155267632092773924293837494308915050273715522770060398078045540146670358175969325279790468495970940745832662614301569901510150289350604223079493457070482122877739505793510070810632873089912418703644172231036784371024177355926679521822935614289672810846927316087386749073121418099425220829710531437691863362011823992958331325193904914410251055450821874966378439215074358349314202528469234633814447683587512841941165973811380477901930432944533966543230797086348637382308583962285551803210757293382138575734561574098517624573750087159650890022808189289180908496407228361582089603231368144981653724982370351508757027029388763963439993151368140532515854874865021440445532055953372581597584367331782895798534273197350842533778197525761522992691120182304980916196544620664991737478792800272593916581396513437290705887442583574976835298572180383315889602280578217536383924278601274437113938792343520288153865637989781399493573009191846173360660609188232895118319963026416574980964243445514347109206523120587527000870227536678352270845418868769764305165073740212028845925395745627109049076532151840525584230812351927645839136088188651453811644626786919577534043264351786045171169853335465841420615175023788914514213928588673380469745926271590156028336490776583006955919213713556150557303975811171206977272847934384746497381619293229386893626989741793401320749110111309084785736955500723497503586927365522890369055353816668081277751750554648009176960864693047391606613477194328271147915380233688049761233792091697812941543940584363320852372411840665480384034561522579423379851143343976121500383550469875983000422604866644943581253381077424210618943894599145108466464984783237930732310206043588547801066096912906137026553338384765995691138280389356085830966721222936585366502959807044285774592930748796801550232969496113354453026246603997476819521266393062949527729898571424153920909201955616923149547970370026891055403616543710181020479270254540912711437414470133478265919427929653955660460870272411196700138941918055825009035226964037796424079385447589680916226397430872650904622123472833254099721630980337392756848277048175136390469447173774626793308518522010395496126227068120902054150727098051140638275276058009030889482490143861456923329293198447839252908977067045013841572008127315870862532567376380716490011356575154998965067554679594402916543458996355454356371982657455874671018959374459245137446678463974122280478708752195471780228686883959646323105196101423387340299091703827364388837530598671262184529546277804755329060886998083154745463810933358211264678396661982911791896895519922008042589450776412550434998809262021529835342939950271928833071788551780336078427860824473215680369446631076084541492823998114293946059096540197162573780226166011557528225466272125530521031604049708831155994507967547072281323978274250765341906647069157021184318656004301711720033778812263075494529965617835283759063274502158698455698963698146000835566991390982868230349016258947308569301582779202360612288841226685981295749654960576708062162209904984957450310557842922830100207799540715965808855010721243124986061309247149866659126709710205142714119034132145506405130941569097613141426329776089909378399707845141431767154349030252191767268176185184290975613873901426318992461729383308521155772625716561112718037357825170773178798727335576495153406756405704749166465797571468804677154141321693785019000109846621299875611274239280903591039534601843360137682291393250363610488259523383255657669329633576240969986064003295058190303385104038449390279981981487989420234696810440761059449106827623856032490714213931751476155055275726434489718193279134564961120010352493044323207283964982891276866154478637631417907912087636875706931401081486200771382591102673919562564332264430005710883303171932267477453956231706353544802786220652595322586826584080716032404053143206498033854879974726055957009638007833344492170724149620936511259394724362036974531443725702395237418814202797603506896890113040296992996494907988082611616028264540767030892964127460459021134243189701882525697070974844238050555973917711875134977229438243807039315828892414095491588204658790968287627506828326313790566623804332022651574555346963020839145400805980278876609575041936623958295118188292906231617525821635336622902721477573224005367714139960320597957146475114390335189110800799517728839049458739957110512356208774423312601106296985618497027535383647485892710538890900932001033186890783323999630784453325367642048467790759927802167873994189991482571437743246844911489040245930340216312636210133553180130583516419031660976408366142648719066405156038767775964952108991283750805247192113615665103331296153542380693593116865795094150218348830745711203605717546314388446410253047395654895246081628800669163608100250408738617965644774513775330293065526825726390065827242486354412906573060141628476424362134307691493555077798438919852106453043985379537459947665952830800534933872714531409792535932968156966364644417300613281818941030055228804365792657892588073040739899736734123414724455843977864560853598037137057338599063455511073599173471416907510186498476378430482188392593142751714029064567395486370134229073242887575682725213413287450296444282649677261080255567735753270125240135769473940541736279405551130431106985597795531000773118856426678322599646944936893993308275321842430381224934334509188089839725722457394077411669572771376346119407110875103462287102520645445899181711368729833837352533531067549496810482751193744365284680889590941182100688060253123189255755681134396316583463631807036932862074688682620071835023512693033904845517994870154412349829053012396041944016263137570371729659978614159772564929120233417437594656933020174217832374301544876878665807437093530693574853016045149578057305735502702307947388788217897247471303987496054340273004538133456240172945808038642390027659742140034879140840573478730689908671790698201127577470221087503192849494114640832677822865816832767870036378086243062396077641346607288365970067667096750693378468776681616097356877387538448953850445040428155583392832901390040197720257529655950059463863748319321388721975331235404276952004154064039379425526358935453246515748925837447444871247785697786383322965892135852312191001694821012332086745564489123537627873968185027382051186720040240563091740525447897154630163370283788575995845418767614011251791071233858138749190960546973498677280390406572810792381272664410374096528059422733574565788336623434356075794907004756032555967894406956384816871763381835680019088397896511033502022943460286870285615512498867498782210169886694817680310496387834920687116881027880551613876851788420319014036996474604644186581960489591532184473611129150134267360213556075299999096845274276334122862935542626061703130098657603333964211232094213820611838499422686766636612037346695965365458107391877058423081750339010355831282677342140957680122745583384894085513179093054890626305963933769949041652934274667050299140385110690763873582373688797279944499967049839239197249116740819966828056599557330471584040901969527194656940305692061410184515642523926405699269339018986091609371621582018368859555404329304752353502416889555976377905640810962118766719631782404359120688125343454218918897395253081292855256655789408101807445385571042337318753142928518934094035884476441366963844291511095918607572061658498451191206832633321245584640099180526153553790694843584031402801054308517286142710026046161552338148466697251045622547779943279268567557450700343050363551424322724964745143630709859483348959835594055445179770417569162468193303208609546293336695307965339687171533375747355334564594910353220737597484281554582749921556066739939321359159917186106023592526582058345471609048036326543622330457570956330602954843688622841310911000131348424876637151877688869640909003379775035518223374261266643963009214951724344431004332522433000290989769995237326506935207438809382528329114447829209445504080653069996931003293350293976447941545154324183623322715213890571060781773173622704899171908400100736658391884898283619018324483811755081971030127034623298408876679626508565965370679092298340975484772686640069734942040312910771699096679480084532067369551519689533872862849434853172410474314665309171835322167250109016811019294588792032377138712386939643099332155018122848482625052001265578728480465959962592517946663041766877943500669405393355441601121599878861527528253670424149913980561272813466227774959681260482042000836934953232894830714262757656637651517815420139379099478412708711053654424236352817950445902974453866046200276065051158648446543637707599015413004381939658270043842724452250637963001951601753947990905523531439452591846480068527485529492137375719817875347321550973904655570653215407278242758985996246038151736586471529494298219997093080880618524929315618779715879831240433829330667637133876125580677161321107339353421310464588778300091840638380673921791240560356231482933898987886668855043695282351685103909699235568020105545055377244931509026598645475208164089251544407272229302978778049148831430642784189202188803834164600818840160630431715240031037870324626021914552634668850660782521501270538822186328144622302802132139610720975140316792774262255341456440816959159539628981399988449336167267028281305684387301796448323115424243265195605220056838635164473318364026106265370269944316604122917029946086749404453208868749566263466920435196862907357457453986351666316798507759577813380711793284173239638068983011869653044365861915135628658508151030096868953442384059313890416672560353163926395292442061333147240958298818854889037908267981634418260441487598555190772300336482005107323034511474793234294348726617411512783492479041635290040403386077016217779048706273806683202863203013797509762406068054180635215712497324064913072882624001508413784531782462882093716543319110195356327622777994804756161387504602319101268339667648416059338116653224578130162833133355076721402539272423286236797943983189408457252316969002109143356405185418268027050599960991257000111950239879600102612053742065136058124489285197872344103808050280389002026376171736465419397845955230064491259103969791500913681494568828854300253966613338349876354049449924031679423864111718569455593861902968456891331816845752163050412482768687701714286010330435262180306781739214016837939743224959022221185588900002745430010838232274803918864129010602389986598206420422599035116506962999646289991733038791241281855819772074590110016426873756463179415010550554193486784681803527136263525287317899787047340210642543662239224492226526767738791870973491292512557541689747253928408184190226098731858489383413950700281585981666074417117743856622032249514502395086111550821625856000647093064098006285752358012196124312042060341722310642933573349130166372196710940184124905276727424508849814247713509410503673891999951298938228742617456213486554149641871854855174366979793726881887423854545121649584084239997641625128243967406526049736385528704446068599258389943695058102239508240744361667545410399891681396409110702186219309233812573817688706890598796013467669994762312109553911620033113949274456385813673882990230422951442029961369891936835448740137054564849682570574144641844254123819256485066617075118589812412418236492771948443841779222121298188032549045291337036418871252816027550610764919665819463466031726013910506217028167219380869153041731544321987836793109927351285523308905984428672877158101508411440253243303936873619643700849519846237565379502703656387865607531299406529516847508138118914195195609073428157773724365447561580247072789577475827818327911894222974116022303453102587035760228160726091005648780039487293608581912802075589726236299225168733072358520738013027885293191113410514195970464904351002169831158463654411525929880124831982325704210792886915807145562484714429276521639407982677950425025184932575958854368984380339334419585470492423036521866867334892037386570438701639097602529826695010899162129392076661778365108549663938888540157350277317028019562146191886566938625683790109748642796548095307781933065699829833193896799234197266661576163943281166907695613405918143899000278239623491942113543532993173280772684617158135614707167139995342646329632667912316985224730267606844085128528720742870322919969851744657176985705254648766973986201506415392458555782141927587725550139672933354983979157085500114466243063219028265896372223589290809076031519560619149991847571342806762393190851506054251545328539341076985480416835569010840469281833963044636285600579182706224892219779814526421874122752093916267695469864092606795554010328609998843957468976649953833819500579351932026357235550575496051235407677164653281098655472922810478312380937772851725438765219877369189566948492446020734837973180775380008232702022619788145659994507908738760572986955009610894799382389838526568930901060356764870854276975028155996121477248587259708388318647858512897761061677688869603006987532803099368032084599011460690941513941776285332445656460937098169471031665979690676341168051454346788673618214265048399318241283905723462637867143551163772344014475281485173441502914274163477182034307995976409533063826814820652491396078624277876172096711211248177332208032043300710310689576065658558164038589995325218139185892031746023679839299692350977830262632593616400546811684967880409450254830704792348513337867868393793787472571732733255091766175764336283124061150580868311211509276830196346734797737520475205268168769026355237070053664682479798568883820681470667264157656196424178773652963896879630204289541146663068846326201350055289462756757718283814445010245026401960819352899568944343541773045342043952549282899623036610190591168921567003204630605727796000394316283767624419267014034101193166586818261519270428194024426697109216122327701106615237636740040340044400932409183608197039253502524626089174835914383300395541345377923659006504349995872076920590312711217329383794263823427244473027176461974078895255216814558498268000431567985224127303990465143432660949833724860300646989468084065914921455987232546122950438548754749327379149458324728824655546610668672380321704203041911884203385619099959079498953591357789226302720198811559137682392279632422361144488091393281129197687289361196609595303587192017717272431940525628016725941340268485409642065587891756063658880968189936685894627023471919973781372030973712716566790206552513531112633693084074604774135286919270830912808780227198286214356352613233630628642742073670902379925659830225307068284991557308349697266730361687173364771695224445483034224538468783789277370021874453686502646683836801323517186290341752549439476438137233733277936772261584130584850272349615149384211298094533405741091888635066029454196133665926388321642474035150180493361021269445450607427613135151864267117531969601355293571403376044951849395488073056457164987075382121427919364649686071397196903880781347017612947986465934006810738919869781755407338605308467142511928901442335344878222513361319192391437541198794678107720239573696728821199568684715845657380387515698062578713061414502088052725519313455902298973374994167955263902525692762319019466547848444356082225141923295143269168989949289580335552483982527853063887910585970190771007670373316136645120663255211038686413767839660196543924695010372570399484397041131169452063933170118802338891053933828352751768061515817968979986276319299308531236352020767342462819244627204825747039508494559391281515566506751036842922528357426075258381590797121895618640030655382559429415623355950959896370971791467623298415818642734204536826758118934914196760366768556176236607525438116695519880043406648400998031163153622606492953060710091125940557198301794334940647150965547846976367201952420198983147762678543031816177089249049987013931572488150172311277875185192440425861250471724510529506424196973805018220772605896602047216476951436075548832341932455489667422479671898886184596580065122581686431536336939622532313366426505582559906021011176623233873912916964429481073652425781333123464433848349647924327502052211258100134521974102155574647280824310066603886457585020971249240961100155855866536333292978291642585504193466160397215636722499048684370660488220175841340890866176886104001863547788313118847950753572301700166610666517703800605792612165295958065424316788790035029466796684322764751928135148596816590227147470557867138341689400549250113209204594582372696898576110472109544492635100243823388515723921278271195645737753149732596122337400964626851970832818247387401587550327457550663484558936845505358512602655753131079958725898602897582763812994990790749349653039577175882335164357387648276812824094485604828403181113780136113301833479778556596648352004759083691685434882113770421855079398722925678092546418403794845038241759737987991665756941151207466011439060927752281310425445299742031059973034526991719446766626745242824705981612439854289163087690895551813397597255964324995467295297753005596985902831362708258397203071110760280619087279649581624798003926521583919623884289643866819930544126790297302243204966042724607064089178540462677762421848630015353725843105664450523508308363184420820297214905004838970663350672681812842688555190046595384686667894472198584037753062996288887900181237459876283596148393486079534640775020834713463780175058416437058133703179694319199694359349586048519478673584392507058991401906965580567458632916633517351431918867228578197273689549400448957029649749709280523307323817371141768614991806210880243383658499522607118926006274069860420413543718447761872910506860734677349780922234401915242653436386681669094107799703735924464176054597971885001211383588515974037432904247461626432195410108578826976203385827278090544919403946039175256949174378323788439389566510591004916126182044421214605505888983509091980891558823695822411401784956181561445122731436560747416099834525269688553167727445141925978601379389639959712962397483283015802620953721845721868547416140370107268824916227513848200621706753175567672590683356888254231965185640830147250090730699578293346584152762285712615949835967688134778584535464778920625187485632765760220814951052055168440756330804918433080857303065427030482478191314824794764472025528219653210808685409270961900594526408830245821277275657617532100292421561119280822021486721923294968077960824957928357817772011493754509515127083429732395891726953188637273675472019197323689797578438458006013203305413212807657872142643491202068102516429476013340236725327264356450631190125412192466742035108873809240978598783253675424539351454775570842799938278738434451612302770695448916189923551908673584590253793100696016736119492184088897503128516066707165020639987718872316414021479323371219613944119171914434669703735465539762230346801604158234834648708031053067273407809616615003712032687266402089051878973201073158269823124202149804629821311076529933390343669143403157465089584325313752701759440149169145927888454932360872910046187621332221276207421475014047020995358091456571790148748948929849376489509647207621652052786576978131794889366857874908331321075595948302341306857221738142834322107414521542219088043474483667050559030521425861935366603146623755096592218274354520617591046190359797711056367648130410977920702536597820807504256460956904342706241785901967348360599867794803577967151880097744922245723632112822361764733736099225294528113819551901021822377412401665005822861453786413970202452356786815659285391669090949281754877010192502978944231728245795698162364152859168240203650451900488232127045702380446338311964642442032448539869137507705484066089982513861710447703251401239643254170594882290681666359975434447074604237269277185029978626975875059401801612290037771915727400002928038116625221077166384910555337408387366929975548338204322895243522524957882708431415944426288784981439525259823282314610920279940249237789013769207534379937337440891993816523314110967207312605237819626752476623909734013600575049125281317804034536908194141194350222446892944806801648187010399488061568465331036157849743418440395931418880173609206171477826911367352502481857399027097923223999302763798693067472140560513986897356419347435901338302769500586360390740467170586978250315850067531272325660983323112709589971629191852016951404153581706348139370356021432027344748049400244642602066209361417353624758551259543855139651934855922063778075941594513429423120451588023130210299942401500832650316072043914777136434142383511039973993364533032031140576077218884387440468879260973865397176115299682725189876797023616244189823115933496564573039795083294979613326174652218517334077749105516305918936142975324043107078461962609886063930869410962539116659523115632239049624628342342038425284562152055157697210013323972905775662389601060787426207673838338723722757924532721643852203221481125149210072106859999403534862763484203500672694916115638020824941315041332778164844972419004043733646570660714141376168734359671392465212168117850239138509666840555344975221812264400903450736406973445406029362368518239137409648908342084815082078713421340093732258162527453572058065180448726355343760859261752644204636409602132424589986943934234650244444319133381157221137809978226955460366313514989936804985056219249348045825025565924079984459029950437119536604121958360859742390081112055163397380603203318972020878184273217654712351903601065473248471403878106102031343034443300602077629762606004320413332514891976974426073853201321125735616459304629046617479860703662714554224257719961759875762799109639979829448584049493009296686619716454671978049703527124053650881667415657226543366799700851451259916369698794575831444526043475198511603962418241054655350854153981388872857923910210773977608105846689679230298510568022566462280659113590745218389046866256993264599674823749552730502946774690161886711316125194837171921872527414654776349915589233054901227848245283414149639681523465415543571404931902303167008213782816729640296181253549361640316272723453871274436095041241391285559107579007194555356074054181456392903240039063316903890542342681830399661189388554561767579785766511226058938619889962487928001046937936964500561300716663207782814308782699462658374916559732221662443377391094694118631553693150176306912425078446614648866115495904009534364046612266188814932073415727164432688534830665251682687883113169365668228693221650589049655641245479090640785374155773246526018939564917469352431012581241397309665413813219944955876665246905945586634492303306635595169439675508504118604673157611823916760783715446552552535961140032008099012910935787748508949091092331304879686157485938434278475223604170729853752594622559789863540342182077997988422253243843339800542549428933217951024760504412168444278090679737114757916361962067259106902199094038125082269280961538343053840073863693416464080321492777172915064353024244150448785977851146550407862996096565935576468140300033864950202148007265837945588335829420632229985757602305513108691983733411404329828673114118388398377492866480745532616754913039151661647587332543350359025336895096230798802541163039273159612797463960320230403587729968364541898972039329401572122274476005772442947934078417205710705498574095119380842568422433858232500251237216817825817179857852586943629726008358194032548501301981845760116747416241317126114594534464583260022438897046483767828592593307158009676556048035729871019553946659521329771398867795567656411229201098871031867147730071692357076721051859027647208372175198181711095791420459393367305953000538406254091698194376507647312367396815265317291370938070009512822530542950585792231901388701380976391544741313045443915360603368434076442626903865779966398907853496415140475364970582020309201370635126339373680683773400665994730753077692556231106753873739028878406978241913345733343545173399997609252841543538735537718529142704370787126360020500279853507847348287448430755524277799381606255353879463433702178534120181585872579735760488707012029158120810745079598778959562242753527631165274003468961457175365038364128362130722597034545361642757665345236679876150570542270193435191874085000212148236598438489558182726802348990674629467051668477586292808085438808126676298168148711804003206901809160216394241598283422212861612042333654728488915862529179001570389669943649306583127730405358766963806149915177304636392836362698827362458156820145309384818667160476038121054166571349855371085132112646561212258463768540468282814901290065181084050154138788330112590987270040419200849073822588726771596900933475992949870501366250770051955962344190367839854230506486640093931030294307109177282540303864624715545325231834081721226533052742833570670736470890469558125218318032756693489096117554200279474013828982312682030372747470183272512510087125226423037309163232636059363008582074647294869490734805084866427215301276661897000634213288661249560475940805968976677033304283755344822435215131668842742327090895910722986847988153910700250171467679663425614714934507835513533431899902181601802545373294739650404529719310382367717214092226067632447171489438073960576970015751113405820588907936521649665970255632368084894547708176962006668604777277972074534242865856302026891831682831207834479252744601918342245289327483528455555008052853511888902869340156829180170574461809092878938870508894625200094132335391520764311860462198222368737510945483999964069525875608597119456962783764977406206174762409614994776967903189672737996810245594107567410132292978971074348324302195683660301384702676733757969878329648175179530266078167790725318540154999708577162094038304263096715420807606904973122568497764268177455379801181417574281741429539890083287235718667725420691360696535492945827003397597775707483896665165250951744262738680511909111646516175994191174282119905113071467321588645957283273145874893951121541612940501966644150259396764025463167138730833085320277936937361202347079371862533807809827301068980052824781179277916763521492486276369663255092714212081547845642238974054935330478350925889194012693111899170289571491213861668659499774940425979663224156288661835871510391891844046224480707279359033909396445908121696423513243197368298746879417306899155420853533754563552196838091813874843533291525415083775463502627673842484468686617392260943549800648621068815545392015352300468228704137145508429238782722191625903308564357386948683396432287348770403973941185130064938139405071746253608009183156199814146051196352369432405740813425771476931107343858178582855965294536406656120005702230806653443093306227227774960916121273829287138058590368618486046453220783783628880396065991391238278496482380442448065689376407039993522150148183717319400311647818519025770888273935920337325422415807524768637353903417233051028463096503000012051073010692483319729502017573231852413061340698966694506791954045601317863934195781907367009865967744731654041416116221179099061392892455574660905372034703867068114146066888171519721578661442612224614333600042964699653790850767014582462058775631537305748531383784697766231086973846670756961246772530619246994444663802285916691463536723994393916386625081068603043567254113172157801375095937441839752222190054894272543349136337521406211288605347563773233177953297873644446786340345478588606136921385380122562551683148938044799787547630256863336640269119884944100068985443907772233118619010892255562353997043743060599283257020784408438839427422441354665257127194726912906524428100498677321726246669301582190745139333444745391302994874964002204540602017388538134672747522106818152225485654631726669919313099094218013815989749593520656198448416500465025982485798884201939376863402993890065722026752472260793111874365985482565153337851721449290907124733618864419176134152388409540530204172600399229000877766061114250490895642730531473434075566056760249556490553258205556317128305443579627525579368501546026009222003677958117836415885347076803665599304004895997202493688574394730329892701340897603302662377487949355584189964287328013816118644165366163810752512421648973038093350884045443655028803066828907062901254370753529585331927575077435663955720618000191973836885524940450170767794226460452274408214958977044060170308199803439842889513711214559340947693372660657538050321608015519010448603996929373338641897083276844002982391882050431501978774046218507360120605062768173673456452907142098530625274602332772984775230307715744738540986144970528316173700927736935933099447966380902152937215347590483792799079248484329197639054307435791725673632082598444551250748677424528663417950088121446821401448653504295037579100012716869344254572838946650856506103399904968397858455638782947979860797505102427390934793058891686226364094999229522765826238924307221013869516346142989688649837545387169830293681179381906396303210723646259865358578970713983266519331178213326097427328011248569160307591640395358851700939292686894147196926156659285149467590877945886764921541800750608894043138697167482080027235347369739214255708676166838313445770832035417204367473239127475775405398226922654091089772007068153198196537769911882980369583251124796605003317513522824984786305607812171609493227922156507300663960364520122223634989500975502040653572319203537571666419402671322695110119772718260610237483028932945776067684655014583450066601439325261977666392465988316467770670874911010269647723691229051006952889146121086298506240103798996307884077766974533106518519651931820034913245695077325157690037731137647436638795716664956715464870772167458228985415040475957134259954107619110138213304469852772541163833685260271106179625167634227318085065816482885360408847827511871389314234293601432751363925774810665580026391388751797568943928198485864023654945750864856039567000603158473636924742828927259706903802871698053420180813946154718159943062455178299773857490082904043116894607359306300666694585921196427711049522221757367781430663210953813668338372041604260200181017043546779285153818392908266900238440807230684234175965588503643218028607369254826166409455315874706330620162455803115361782548073943511317900127122075769245107264532200973419967292592866587860990076196381152477237129163636442341855862011539575088985596888955607686965040027089025073290231957673884751442839564058507947137650946388338473234057209236173093605203836593883893134520876695627863370846634789058703298939008958146985713828485353149071433327041475293848740656724147955320278846868105593485588344965278616398179567006890519016540252958720146992960923883793290851856658842813064390752480828471450928117627389818618125614171602526035799280174254986235462618127029253640721866879073654148113068012953497925878263196560598088724388784613373250484927683088001173185630761983491701051192776764451694431638920690891419385859206169575262754476746422387525644127780053754373498493355435923533664299395258978041500975336045084547024102804129614688224163538586012669104162294540211852397751506035917428501114218775708454759732028241197697100441633482230001141005433037738908955452735871099547678887342884167857635637524205978031240956464995893937227079353457900459085231112894095084649573994756458910867116892199027838355524894024268384433023569123691003759942439565852649073738279054748206120461517093262694639756132034817225399466555422765357402651724514392257483165448123955858419876977178184737435881554234432986043302334374257785538251105474674203785944456877164395921679129546303983482261134177099189255559039493194554669167890875177016673900145455941048808298052717619450017814577696636572804508270294113962309175723574149395481917864681591927275084953601303555027130661302120791500658722430687918708740644967419755369951774586050406141898401814325818431966578822852823061726077707682138262549534702634549282916345683520119022998380276459260737341697487814087854131778259025861974014729302167296139126370102107880951420556404355191227888382431774770800487279475232438942152745798554615975049284191138649092667967652482389785126690468281691421885649871534048931255131273873148068957999508434764719244951657477874503423899163786005621305029354745924651518415576459747700089507461923546087564336658999346507150561637699726409619105550932221741674138322441643803718457695802953372079820212861172176322325995026714251144441405108174350370208420775541850397081279396326888473884235608094950043184855173155803486815201916899486336517392530093569685938386169271757245332192785461297035005293126234371418322686121561664909458502578660036657545356647034347826547759462518286351046375601567566772855865366527688957325244568363732166932795753529999468073876644608455909697309450899885362522201419294644720759019353968248699089921918909999431030235259270163513428671752074307566537255142922463813813261073530728920142686506267207904012218677613839430683151870376409304319705494533230831526838764576703415796131464180456931954106245575022052037311413790820729626657222725123590895604146052539497803775992835855893674104570062408478373635493672061814821080399554416993978877933026230860797813925441069553618481817122167498166906818770337731294883221540699590464092912598624887294125879500717467154816298619744450940189757294775643633206750540844397153953610365170961027201614033317210691058496974883855159861696663322658972343172061691701585188231633266605310997900326193459336006306833324508056657437494492090869457191041485509847780507545028359294961605711680998180851178346881510615889431590356438938404204777638162970733539150355323257139422267978048577297516307483000917444013882685198901442606331467160017241230875865443179160141454926827476269839417233138814278489671954466323674052465796226180339002964989990160384845147381803261731884979602016742146520313802831135081941582476054818547702479060319261902214956892843280400150910402101103589518761908687503612594563008727148328706847879338029255116694954469272280269519374714048460835541332980866579872900498509213672964769228459873693981578680902950773237240356053457023383735891904299357889929311251487941436945304098297701687613640591246805303105123186718891056132001832525093867237058267109503488194561672267550866019067636010010854137337636500666181853797784522189462050137314057868591222324172635041283087290661105002103178849092620541134542107499610758850446416220194495257975417229985616155562021105432174864079749317160115836446380978076661549362701878243497199858484145865127253782893651488986863594070082028839198404257267435557403825973198517172879591915564676282259242436299850874349841442654131708585711566531050974252392802854272108513754704364998204912290781035137279054553761388688462021476911789409336511921218046440593653013637784146560272779920043765767095370087293008414746533335869010336337133505627458995942709776457378177528844642218131005305662524108447770776987110056494205288298287984874751777230531948277802340722804716106346344908440210221202089853895836866587699672714203592554288800278390857087677832273425333894357443834466188260799351259107278681006934762271710366611743692787141263477748371376230380976384484795273096600059079288449433067347941837141838398005483593860626236650987213936310480594268621957658362996113285089095438885012912828385792199018187230847311452152918065879223462846544242362604545962547436995312838056441914458500676432414177573733208090830546945698821854036399486386598012551328917499299051760331351741065915285999944570472375959940530110834297891215195269305570358871904376543283333433643254790695272376120768133062257348993586490748535747428367268169756399590271711744922125166818892741779981738328054197366938864645165915959463173279459813088275128033161672000580159445311352987192355539853668044039677669221784403550457100607869800282768110588416793565076305277783762206235727935246454137627280987598059827337235986848017109974551810295528379353158038598140631799013691150252066024712046427577554336556780849209005179959218056051274889898169301366853699870812484831584379699291686025912576956847163261200692245603363340841829097768061389033181701917998043009135468470756640514617562994218412595043680378534385840742794095125640147852125613503890263865297604795244292198970964994989910959254883300229774918104485966469195011188398143797165198848693168246924670733841405198485595659925290387219935036378255821145246306923213906815495196605686661519243357629967032559892613606279714779119306068752698033868531918328091034920355133615769215178524925696491028995652935884420655950389860261165577378669159281478735416736414592308206821627424238677165189400097239409883406234939526549611896528638260982214941325857978911018581170534248344185217104690941154373441429927292809038695398131920281339412294079554795850860563062936803234569761705413458121339567635659825793162251673582819997963402147814308214997508129485572378511931370851462157136630393517617391512812474051583805341108045041296570511709654024117340064161197242829675203688580420712006629647659139425202924702918304971759184857734218795689597541902662082822547044770147601335402777958390626450090868712628202008790437389712521843645734303495492498259274509965131988184627169663900726769712122443693171969254453864021159632294579228117306212747851326436175140214909834459990338878510967547022832175327689817201919795049246485844289318328541221095631891643269210662056748960562052368155371458218156409275619101218612699560392081883080282163621677422649043168965340642256202150453066723843612931060755106878008931590407464426791042293291798141634564678482195169689656451910344867104200656677820187667819082071814841905902054829990943622125099124973091434221207035400369036362475580102614284871150088187706423891521456036779782887612318749447014441066844284854719886139651114844307880033252590944628372615874604395702654569033549915513825009861569247594259685882189273685698236011558134154042956060134670962255346572104416494052576528626864397234628686726906911642444374145642950668954638288973696227384795226899570187471645859326528378373081904765147225939601686357932509301451846397984145282870196512348359421530710926824075643823275348498901131605569818279137511961968100924946805488608406053577276762602636453143229078791587212410388863494336563861724969840686629187131068368776618713992329161867743055187140195408936297934041524070382228451452452910536683374519088299846959764430780779161173519086079481237835451280976269017297948751821190350389659997992761716035918390640444917768464010207194990962225595706258864612256848750290765375264846261536169476178158326072925427837369716505706399395699630905023544201196704409936737050333029942326513609628785301270647486299769323211194771114440985432744339376838363169137536993645767285511073079166969593480355350917513686760475370926410955265291750095370440083497766360706887203698440154130651636719354142887992996771557507002864028475425157530905173241294929390468371077605892901872159242497308450991380902586916309042554018274429869501134361731682562037444944577998350804238556356818759941017242883239303071529299979454442417528298151993781609467463805959566046975426049587415595135639019813254805826516518085022159265648127096556987193001852601613948644003265351346138592371468993015728277349102572710837437479133793111589668993525230545731253432791513275375379338577681062444529312957785697403096111123293417947641714935626315905653618512220378097504923039098422054308789513801625946847767628840262059710341826357205161330993452962715093031230399280844639293661657671899930064226671964582881105531169218127718085125626103192126861437036091257743231111893475905301037235690535871509892911107579684386649289631746204301777002290773873987403561717251330475658062441045760531618802984455001308773961393313728111308519338066325999695933883212657795505357224187315467700009653084319934742940758063168189114413077891638851592487452244053901327637283120973331856857360168988483638318497042387385620447800106966899410486173735693496919459302047368582802783313374575836931285444880533355439336401483404003918366906551719484241017146409221474306518454470537940731495939692635861375837278084370067061416678191165412916785356520252591585655180387308818432844326654226472659841015309112267439990149199395982910244669763744467286492946397994594470908794134520667274370614152061692067545273769257063827225511562937351209555297258046958275036704417798923035298575458560226675377090922203175891373236987111482619596786650969990984851254577450518150528707069250780493433149593322958100946539475706712887203750909465320064022277615141718128624390084582149974974020954054840141216341376445687644606840143534055848101516556965854673885579911211771797470879533705882034172299133370676046380493227261996092280225786521126661566132953892292340434623095622964834418717702021269334676834499307536601298025483908663173225461228463429182406234096165411517961511043408885938111725990146776336924634050004376814165163685899154442335058635611196805619179087434330310167011230581135318330690497543765742855937997779206692873087369292812603198703037768148704826261957933573227793438062680615036953204312858899630644338087411207420780470189599130613138780925203817512598728376098896841212400018931460241756634482126414015075065997558658229325028687485023599013531138895164645581379769223039779441955590145671088342522727708182122185292475905950383242661612726572294459011836252769811788172015070035622945274778755266862033807028398865632864845659367257988836402940056783714636178725619297501303160701692487180173548513561927191765837816827034424810073605238405860162290555225432566460598485706167804523558891829059537480274201760512807518845984115530541821913431205131164475699417053216749501179711642294123713613667681265487250245755109445877864572579591871666533863279011720141851743116988850391861998795854289153180942290027848382341854221674850708882230039218543979121256575309846988174151583011750955188350912682468767233490420521753740843770281822170808788467183273373415092417901297272407876350898867548960586184472134376617099174626749237771399718220559556024346866141867366487265253832317003840000708368729996020416390301967994873115532900017089198111028817840637522362674365867197776803907842054215035686081502085632588303216534516682296882266325064701822879192297678187185898467546921373674812799880092061759034907429129085150918946196101216224753123703722263806085275763073276413302852050019884184682231589656208466901109723432006151042946323106430672055420773527654414760923547650487658286664669876004138687813229847943181429705512614376512165453971219443309950487727728561598296046383447613816149710490595372764354878456341684998659452586586412591942490754050178798645331033272978629954123298644487256556163652215242086435827445975973093243296434500441527603500291349220930347704370108551129534251726412640444170042658022117722570645927116411043650820227303742438474772956709349018347334294000660365751465389186454631883560899903504830026065714093111360099891093646215692691359419280954047049125863047754519524332978175379048705458227589239465969058278910718316509105837157258379075791822776390422016431792756917841168388527306725980655470662887212638860501061999961508788113697264969037168519761411272678789022068663080674649337532193013123896889501726773356775266249096922913247086809567492084074438860539361636792856575747688250373840528481328463069629723121615969661540251285757478281378615928555288128679230167048242812318017656750247667437549063566692363393880020325827312933709721806131852883621161714288436275656849864633436640478713143673288743990624388807735460294996890825401159536617344446466755879232302237944283517781916901027647483786108826712615880884054479769228840738965620517512717171693312504634762557016776714883589431165208388389881973354682540822122653832940275636087768327044088517894655489417375175764463839067764257272093026729950295975092002931672878316859373775702831569469755484275652513846006138064590153045474780659884985192292512803752707647618056038245990187210542845682521898157294825195974175375496898849965123676110626315002937478944980520943000269521870931109623369415722510508455413940432972950586745538391816332798437937847626663734955708902042405593971984133723309332167953114861491631139899156394463264008643925823846069725834039672364063482647892174630317907714990771136663123771768714706118048971088116073287335602118926816405452349598303742209130779912478310247905702914484502945255783080372838354225587572519303718678365278865006745902473211221531078422596050631177933958545172238638082917412272505465376409948659537241773081173228425152971471711334782804649425943571237882479484906072403534136833282889076230674566198630614894954834139342531389653565857464593167689391281094398210129575758037831454663445241227993360760150357648041496019057122634725839695087400390015843973949921407333224817448463462294024971115271466675798795084894084878203535367743372463620917533036232403183414561970399288667996558840526997627173889474558406422180260232620822972787683414041431559686676237168862766731287475570483020790590751607340941594643245408204090879359440707518678766590357296237120694396367334671781472126944516695477333873595464514442187047928872671136850839676666122093296277787068141107872078611782764016644714501194781965193649069817064725730460350038318951905056709253941708870161900184735997128241584922700123764816374422647975250890935269212802555455378715146550762469905506822004591448962010718079826349493237182383041381621717194736818573104452239621219394467653192812144512703074842134723527934910538473664621799912397596098004729643793797806569047217772826594240816844497001204815255498880340058494369806164979717769151672061261547543630824713564122011545247510843343858464513952464116000392927038867145165377496868449539217487693391435435452022345289846824014028863928491761151099710262732873814646842621523131706394319647712123436945366306770903820152375553942900759429287693340177121862140174449322922605227902894691659481327399593597728558129456032800656802608942942317581467935034995126705872459927546913580811415775310912036802914521356322249494321955769261134068666426516039133370350003279236093388224921057571599950591239316368797996302669100446317350153491599676880572106534880792150274084320811657519568188690478724495772128304803457037305042094397217168625591408404556858005626402127074063894703529012936328185083650164027825423240200461617002287160493640369406597860358959901395725457466897681030100478138467662254054904076630296393681669485130467623648998318841163156709826337226101569531624144628669638123385562692362001595592741779647191212012399123318947474283502584904342793919565764664517196129204107401492896306423161044835242957598116940966348832016841103940981974067234049061686003735797934549715995674390897515853237074240172997804884497282163591651908032807657670430867359814424828509576948318602389376254120195747035563268159931840478342069706450181428954840860382317919321671276697618496917343463961473799440887428076742779460622472166437514982081215732321092147854366510913749062545332844785669735323141693268751914993951554711456757426370661093784149163473267086387635378842037247714718019627174091814606581988897405901528789741997353000936447172932470766980437731940776496512918728876300024337655287424235282087847944306634451026407115329692474111476372315254831221744459185491083145566415980409407115352122662009828555280711879843834488631628939477223902370058255647845984338708199917670206936478341566588360333861481018757363195180361364953753929627062286116384003265654052424541621204636273734822855965702262314709196888427241528157025423925813821164475596510707042855483785259467502279816642998186335369047985214805225028546150032416987828318441971909489375283381726480236071657564015423971177633227047683164895793631128899940331990964374757037001370424772873192302987767454990975918709042684566634939448813090469157077084122243222963631469874127770646253131538436333095600403865200557146238910401546899390192991810903042990062301486719862223198994982860471530645776182953904535603245373934657642205461572703275877597011291689478736962880167345438071407113802682724996536290638346017312047016725708642550355239616529761302377299155772945276328548059270794431447545213432722552194155663598971677508731219492661254055498399282800228936082005386690651858505116386352943876260452859745857843265870271937917788561711947428636623341371694976493327677905972121131756966986562512172328047585429228132781841049329540386229855260425554261356649541914260903486344768002918659398187712859332913862550067651116652576497338200540112001117715719739841847985979480452072806380486787215448235718663133984178565701234676968094198186877165605348094196172467539555909648891788899471836682140890040336626977377146078083032925842994253235712844957261698649461987578158044363560085063149726326158062722348950273946251189565580227623093637465134118407348196693203810717806246492751282528900855537160077325694945594244570603102953509922603349124192639230778232381559217524722930998469301662927516765656843617388664385317766755026938081625299998964042260248229303008106023758839732320217491442123135593525624377106773100290767930977079838104854605276789045447460464935161501141848101761077837632993677077289503270211329165716712063713924710973646259091742645179562138299716097823027106789127428782953252946549930004166804948328445917423330390057689726664351212559765441408023526816404274058113575199184002900028625729576872543954927135403229460676908107161759496787276060497198256130917614974049735221205799666663005033695401267369812543499695135988526197311074264543732747033566111594662172567879549969151982441579203350643543645314763790111254749329559250133859057944586430674320211923262778215598403801020440465130716333127337648076889070806272554312710683430182773309705416935759769880805932436858811942682084275387042108885482181541052265807299456095592093133648822302524754937244622896790713102990204737454365273002977279380900359078830276919194114114895743157432736949290299797005738353986653103707321404112771936836161540329478132808962112603917938863763695933709879260905554000362198759584524705057825196711015402383073790272793219889731706612038311373434897884600035714514076039714732607719726928596229617900899710025670347552843679451790300752475252650692028390036887873506968198651679825279557564963938985016073253974149042218878994518803660999062583197771468330732890816439406173565146759085681711331767030269860581139293682222496553938664349983706347493204022330805194377760349430787142658373462935105060980742911793680926676629470905407119296933868562647556821935023906513186705342343438424202769367400937930539660095309115978146086788107904368649645069508834279976015307836261726580493112777799909791632535123497838758669760979836645665377363517490250706507939066976542546938149099484891721182611118007134842297224935832797610795125926296655530948103768808068132127700532564174602200888882208309907627909880632755864210301312379500622074020538172101346005384384660935209664493546330765825434800973047808444027673034294155359955090761943633668045749750093246763348759629405761028756020669889369575311561902069962579891185030608694777874392351005621843709549287305104284132795494334322752746361588900815062311291155172701120616142558943447346273271342570992546015908122970364231642354614877004734342660209733027725688975378617738661448350324381186264782553314940163802208348005035895918332640350157615616054806825276200166009772879472759141275621381534465418628533824813743760706887590785914759879837024894197416947357678119853592507088290897653303215233867283683106996102372649312167566758838622338953285569105149275627711318428175595146352960304383546974473746269197690492759391220952867730347078797978866408813769118182191510345298991683598054962096817212091066310158229260266245579886702168900729364194639682528562075854258769637765107020236395478445648566819943056422525693551870459473796784662584630312893249048368558501094342438221767937598026028013754609644131912239436608856121497156839481927330866090677256970981076268356771981693110567336511611340467798765181025612571397865337458081159921179953744076758395736070133036840135243278790305743667605860870155665227975858783386007970993992632081677786310885074710540553552363421285794746907176354586061481097125206620963940187054830099929048960295999103126375168822040713019226313968543773119199539337588186110258637081707989918543160850663697559074448876915415759116611330109786438688408792172532601121886286106325464239777338223671432825743329868449198930608935180578357118856091987568857371097729734520094617052173203436552521632526076740000931363420038395605111824483425403871468373029990578086489488506724428474262965138834936300415960053187207928935188462555593408551917046391913784308190177516321025890031008431985891482840026095653409791238022368077568980027806845539507947359597947386534931347808265985337183964008392341231484319320486070052700104125519525132442429613950328168040456957024086163194059825848479646269628572841468392436372328621073626577649360239184967312461366453315245028543699711583946457928712291076496718336336008379369070230690276451003893590879340609165333794500636933508257886847874188320031285048351887665124892819650316247596636981524562308765644051444433416652136008152945357428313526154095019270622312108844965038543339169533357405101960999909699014990187107688301354575996562947975513759896389240072110441952322802546839449328556213567307743843610048611192294475217327157865813675298123705123987046017330653659944647280069229336413773861700040854086677889544330604303869410576256041041915639092944915696291027512933122611084987055986620969930872267418302960773023412778526366534694301459977025046312881668221194055058560185258783801831101910126077205135005316678556411295602049832172359671868483710686803403141910017076540667213194669501654926115877646601982796020605062896402269897861861612828667904203032781567916013112427602393735033236197904531613175062370649853176320910213354680009328574450589161904497930749715573322399327549844846280302627728694603072657787512230670707538258626773479969008001326738385518560143494508021423602138551578612548992173634153729789928323031945173310906291096576111397690289871614190612509993152644418765557481092789214728637903079780137568323248399892306697994560297749413221111303101783549022920840922851970901010345615012148672654452324127164772262128820970786000305814823799968000637110243796696158420348434647998917154461826272535384584258247465155648502038805053906172231514340561335798014891768623351890838064083551095849137289703728382702433158294416571630011498904822839220193519115516361737658618128312699050135966831167688645525768625119223037792451040402128336267032369025977826344668780090973928378982637876309990510869918432173355485303128368714359070209568981032183714687297910513619104247891126689482183374832197766185823660156542188756961483978675978038312594311753354826274396325048918641572164412259428177486455124978347190995914957080508110099225139147020292284095351848603942381341858978525569060670128317683130968976614556976985955389222451952829313712111557225126276078129884015827352310843604487335595238233041587744988819093005159176498178134515204387100849260837301474428221015258426829813173308594146796290277249103743159260780745257970327642170859305254181104629762051713312019727821598955958049915459367084756697677387858823223560865770574010131694254481862029302728515901594075729550311158865691256354102739991081417534327704282062454041853548823779416489291775063937793723498953200889051051344640649499299968583389960363255408479710038256151552091390232905412583057055199104617105063481192139088849506646702014774736033170376451780619446455374387781057628918746471436522120828060876459637228903169785886153160722489417282541863024174585647148715862234322373580197999082921420063096704744889882748857782697000861112630541122722821135850476722070125004283635940602758932601268686518940421683204023755627217375650408145564982030488888998450721474772473638342241062916403255724596724698882241246102489012374437074191701251108016175764547959172331428692821067242841589236975253379418584530053202875306227617162500124730021400609641393350061271601845136512750363168030231647310927519552025793580720748877485918073070214421887805166831190793026099820053303596474132094079137850001296829113520599899301411321783011410724666254323251844589444597033794700859927133258521566007401814593941161657004932381940659095418080779238009268062104141783700858944332383549959737390098688670076682153979126884504909460616746889442386372838724437896291489168101057369954703621224071130375046931600822581070844330178210343727695591019976948877325445569671040124374504548742060788538158601592298705596039665651428568429928362756991258928930219125597671276562204281054544557697164365780597129047697158878814603886639941677535383850522222312265662281271249055038699105520554224049101147288003902932802981124184938725699535276308867747462063162098088358449276573404012647024507199741170740742493836231398820653070454560869915290152988673282613324266098438326434808251443836231327475079265843478865217662913550694852744689851261709123506539288848833988755469646385239881065958175022654895883131364853547347319782403698063403754664277966958841586514285374135544663340229821177261949203942648522239143963279342174801080052265588594566141863555513092034898105111229311649902832838898440254112774688176532884527133682148081390971295049021372523903853882281348283105958431181461482121741880480571888124116826068621455225276497089986645088654129960257058684458981149416054296099748804838568460495199607830477429763034075563140775882054585567749718069180423316485730884963339546960395911987430535436398458176482147094492325895101069611369752841185277578772054604681904253174961864661156494271226451101562528859957557342801187854951215024012558683772650196141413291138955615087533939912303538152987609131385858985778674527518399522800478440855424798405355543533346838921776799785491762177402885880720068596577689303175243378464095384527143479376714217522304259550739342860655499776877847673088394741029293248825227980643227527892049312634785036938204343581756425268785842027625176147529675478770349935646532409765030431574296030903624701411634723262372595807390157550946174644146023855623755999552346156711861149285238280011339747249386222029204397233298982547962359134602566423959435816124489257792466827236930133106945861810704481860200236112957491135653207979020644189006643891586825873938824444371193507847214841776697308311185942661565161964870358462941901289960481702834419063799004895772408375120323556031008326087749554453494736446971420638939138222603461652608068951693883593664759053317156719022294013593742494627390891625947716453414908065053214211595163922480440164127493036507449750162126521237446668504524878474067870180064023067075835293497317303305965728360010906742198993856800346602190840955607117398666239600093028181800905988624168044239405718735461958527241327743591855463071970344201994292268641993077222641358168854476847857205065480373502265814632024339271560497241999742135944256668337609344139756461225630689427701372108033080130297814439542569775241123312088135694686660067270729822185250535878389094416432586561881095204201860325079833248832330619197573426124393200149220866907463103865700361380365780047297375877823846927098230973798229589746429533633130423915403067536739090363391237147352029269821071722677124612611203129513534155551258070085086536239087050526923179268600003689800579271420229491143913956013969797317594675900851791432826912647833374660963324116696627276942875512040554589000498047710946011564157693353422206637449384332316904044920746586364853794762066364010898042656894945701820027438887192248890218267054416157777653500289699152113353038883725759295531369002234400988378811810545068743268561226824440939033076999260567255474067480284800753059355932601144878446890332797955298202804714326534665779059142994590776290085668313082801285563418276449587792042036410296392608567959774113794447429372319128856212031229404058922067502448596272977411208445108890965299636203219346226321149545887553526413096545210767689839156200993854093293889087464731044685186200729091103877198423264604347305190019755523985354238941310340535286027235372283520825986437525399806219365877603605455523612501296906850340689207005081028231822551316783400263250476631860873508750726251687976224670756057450058409508695334536365416088948631637510987210309530730423080254512607177868065183637239902184827767499893072971941350511941618193413147473803936981533063918628451290314156592256710994934440871789121088238904786277658039825022102748791577183790447104989127583880352208860542522982878891084399276183301085601323626542064286147746061591912167760750359495266407974930121196272957669215385860845588271494477185956689657235815527033750636674554420273451359342398045589621780037722183802044994886048918063277389000628714186903465816192037317655771184406218918187391527851998363705280263542607364536010289628082799801575289974541861475892928502292490235877275516689457431350014153716070751181322523265794329786541294949927806997199192707551255293825476948107433795148268362895601827486247559659651984236970777001827517963638245037816445949002824637239982693240757893130550922828762724134803734832915774900033188898366920231324497413916441608973791939865623125934373172419380809032303421980440223549361887472478575667335208698518080547429686146362712016046772594616249577435908518157832005715044686149542826038439014895690982145629101888545180611696275387941072522434242463467783523604596543851520598378654875477074732056324681304243859140918856078634016927033726288054105959301868105782316814764624397643028365438238376485458642828528000606757926642687793078713369139981805932597291100076673589017716234863750967913719848324570103615513095030936451492359184768909920886184725630124100457464772594594799415254197663140029750224363672915802832731794675006347910585150771055607522434911997413083004736933927270735093939578109411669177187832777467093835713950800478258085702686440034379987655014905144591361137105896608434229772378544134217832396634417183947005465469034443085870170798318754246015021066009874243056097302446236182962241303077845227053941226293357986936725759302209815157239382384320811174552238621565778735043028878394526209864348073154244656919234947551590954781084942425069504006165248172640637471858094596944141551466409140795909748191328385097159641997581939375907041549906196582496488612589050209783039423621203170355084646954067939428786705455646506193979918789586123509918844396452989531713852133054245662361283379257419937259117727727698523406719127373863802592363463587042909614535153761709582861658142143810636872720172184260900106969280371557065897340687117124491045548540834562098560574875330790071494829574061815977733945744378368800522878557039718065818150098141056479410508879441693640958892507741165764231768834822089393848595223833561776126309643316751746153034268744084351952073049449828908471662290755175657936826235701580950163747961493208516181190736369749026388716370831052869166801145168870860311751938212991402091745205287673446012707825255639389439425844634450696314484287319093563707935751283699075986535252466548854271164386074753247163649062388349314933482225665368451279615660305751133495044950300101471472629654993005943052739694674584734334859806065489643219118229538756881975961118513768369149506160117686370839335598957967906300516841337101174090146698414268446135109181586042344828418461329715255839126170450359471063455802190234499276858746884287822442386743555633640494625301109797131158491479662741572963326044384068220665529818704507803064728256181170974513264350835860257398436456997472131204217041007978405403089689632415003450824696657765777607224949324207035527511724307449021247607989858870501816532973650230225873905557858689553467883170923984170771678409434838630616750387659718766127487937235736083305334437044976863246543515826351088124176240957971970013438781416666566622578840685726698534744832970365956210369206347955014715804961050351043336861096639306197139781047351258849242857173363388558822764723501239948426253750998866789945457109080182515161832128582448669433781031312622554038381628206316631157390594866201941285880976971881357839690879449943065139536232007846856983403449826231201112862241720770271366608547797007496425090488688028147601454025039235518442473446057879639229190838751081955365751780071776390145104582359187767496252831340100472388285195871939020317845824027291628509267651629847586898351085766336685541482990378070230040272165031668311844362164840921490726571017740005979955864435112875458654075371095980022969556130110379998165713530589266034629506105294988711709088086575559179222228302048231799346134646954676876689272542320659453892742353302122700137437608104434310822934507699041019915427961785129539017956698627988515484475238397110128752608611639960122352357034244774892841291857386131948600418980289820702389373015075404332513116869373912088651838952036513392564657739192066689695395939251400535032611644180719927444506548791761943408627700240477697467666467067510713012349902871870262866809562356281227090921443879483811242237746849641324407769230990686816073792205533334642467358764084496883017239300217262016365992601890223710380713522593664293647011215018226209167114783760706203236358078109250988249195945520026857856654440423130954831650486833399584868042967296644354047129945533820205161442046103227227791309695528325218887013841879477649413507925130532976928405687574354699111531996633617235167933181455038097264726306655801551801300941999405995397785815111310422891985587639520417360726521027100120077192042830870289828082421128765505856595430549724196920172747577583427351296150174733749650290875336662098463786048057204377891894880342790471768513817322609185735705192832950530505061913235644436516800868444729505170973800189079169444830102924711851255926517186685282914919489049572753466312717282622687263301957090507469000944285356354655384135437070100460508092252250440139455448644638626983328366746697298538381055175866644853243755531041487877227674552828269230848308050295559399154460735688298202537139135339717703628949768861117884853568839919933330988951722752668595838161306597169736861013704717617849585578593473844346885050764269058942214274064466813894612836477143104664063848668900206026613657889040525386916066215676525935084710529250896868329508493117399760293052128285227495713998117924651729806899009233247115732273823445380062269702860343473274892120621144233540725239206016822638940296873561438021364856146815912800898276910952242308266018979826761006224961671899597871315584486356486955446253200458964025823174100219389142692007874435314281765709870578014265215139420043234526116593621958068944417424573508917971361141515776694898012576464486344266382226594528094546424881994076729848618610843157018473805393451442032871488551119745031957927951467378148450261705883688279320864212563767513888464712547257620516394326735674186797149603618931898460240099638521680591937430825889131800286900133470477266191972919893632473850679000881361283149185657130888954256808405002458590728072558132146565227138148846353861906964058916499584314928211677774526442657300024233784224336378290636783977058743231805254155472286065266573719914406231999093709455300693804001242032536766667881983939356606244825405700757186663296938224492332700781055334905282242225770079622759695477261865206685049760751781641390897246315141698364930921649817517874503751500036169613058181782351947331741760362878780094669141896966735802207650022403007193282401428883961857685289636862522420131618161769768199480284513664964526769837382631430530197376444242911943104959567881729673596136615312386878938656758224730885569111908587333133742242927879988414914664384118302641281522038907578011532289679166835596018543077573013256394022468585996493102413693336532169824662925887202389260720566957773498604925148973527890698037231778650712465914742347654168714282279897806330539426289845243926891881212751084382655152730625250749239087122670495310002137318928517544910698994443339272055233241252456464212711791762725525473784326019940235285861666923441342466293609461039945959870850005939308241788231400636238355016210223776977202940390221259394800910723753683619025705827465148055592045614154988695735194742104381818044950890975725924770306161667681804830321531732238449822048857495256538518910470130242569566790753328763335718049388267270157897095146897756039534865319077980806906431188148624173578080731219080758343534182315913084111059277458799315213260749813963553935148115455156326083898814144594235297100552074040417461016282315102233898977791310417487763646488167440686910212158256728396110551848765277431022054853558584538536401003500590177195147818270957389795789279875294452967802188123289064588974074211760969314413646080874025000762131575509542800814388164505984737634639310692183158537566456209728596851435615055196725593705165901062784760502459780045363109349336560614400583677302549252329072229666128098048519466088677789150343516461260855791385397033590969433088559073019271848639202497085947630165540949284000804774807540048098052679422419986043948208540819393196271743612668217432032884551281640273838162248535025131290867624284813139467735336205070630089372767620573425148102030981165979272082403923806558725005169313812447396202124075387086700519612159431353310640941319251866734569079997275143095775766452546752106384069517289948768698658288143984971199358629332537742222568712306654484412419162170768240912009339744540360797319358708208919973378482856753396698227935992111024729159224085678272272287635565881537769584934741315443164834467895436533016994579030144802701102365816247954682651231623457297964105420324905795318844310805633045910924938429947681598545410665213217865672305880978890723986560415716042781303331391449124606202263699767406914298955391253112138655128906824921010334749363022602201083640313079412026280363654909461104860725809874250365760645009860220025594849766170592853087559356617904551711838312787663405572295824057496979262567378739747731786244399268728736750092313157558790413165096653161551099291984430810726366895996930580788785498407439296126417055507250576680919132976015603362934392314675659102563390012690216993296888813742138837809133245748558653883213929819526890090752930474198564016375977337337305714928293733712010679407136671934860812536047403259389389369119597698654200239642674534159623749872969712965633593135241291334807525516252865607085429310914709512360237344059229837342042059126798377037186102949426414237368350917365777559209333486724823165279855035675784553574584382688524629295566720437776290186168555234322285898578931599404819489399347131175096145487648338587307992441524734866525158867466084951677860554250503475942746736756643694327816182699151439978179112765213381212087540421500651758429507049242112605528226146175951241729162019270351626235831952908053408248308232305914710736437433607825059504152524107658188996079504429089794652556452151189752991265297301569957443173947565272301041345218786437304618910259673409940272503520596240925352059414191128837848519196002338449551800013328024908441592972325959403745459034512519943420203461154508716542604215927822415567299518944887521828063702904909322097485691322620867151114046254539424309320329336913943004750026641839221619140605211270812433528213664438797133576241515484390719404118709065837756441072497163289214086894512103806355905751210194435396790620863198330570194066016003245327394427531921805542656247439392692512310239713934769714910965872335829413882944641761070419043794586021655669635340040788047526710569146507953158699765825517342418036016643864983943359509212203598851706610489355650685546390365339211297251344208369731675282183722685223145742799000036487638230937775592315263839965876574386543404332259547610078123964759540729098203869567697746299825005564363026838977119445465277326575884871401150302608404011126803366501286309284567827422405586332904964602536664304585654004760025304340006489776406592613875835867756466835899025982695738886641928986599771025277988125079415818428031028295778954981645566152730932360638798194597359223049321305354859471173673774781806257065898973923661180222841674213231941258190779898948822909916488451070331934271587747043923029576601506604438994369182126249815353397156749265051276573164521415552544455752245678759654767697326374987422537661803473676036676842817855222048414368572279092964948947815801386087017846937413256256982499322261557368321826119781158141104699173334896799308729600312885544824315640545894108555459796351914465817992930675351961513194918986641592610764623505183245004130468466237238224068320480091106587478518729176640522871391112639206227968056763827634351263790400136154162828865562620958150643181862883794267704480435212639352020897506418464624014735339985808601481217495518278084548484024692049655558425297268354019532835795430964799049441230709692256832577046424169912418297644428416332846937856746086193620946372812285256289185660657916093156150186642709104668749148101032528540077928180031856762899980368788451465449602061982463664197067802239344028397410342082185627474753207284593479772608821476827879775989596291546966397570199580614147171372626130305643801061847656443589630297594215735371133596805671425308680872227707975439507996293507150188672770919528975533558562625791477245891513108031401027659899350056644362776912613956122800437101612478507697379810164104529156819032629001976951462220198426774608164281216998557565092180284740126617918492251158534384375461294089094548792016222088426297278510043358925439123367379093614212956115767810015119281017062007782704387810818501397602437672302440179882421995125768851538813945824066656525862944023613533171044736861645073176647883742376578486152815343588549043788023373615504330135384925305234717590423548470896091084655692675230119927260970721252470517279952459124304590205765544808050255541044203246127600551392512363708173261037591714863094367155829918189952082508817542168058079085998126672704748286607235606900084702143712292570482259408289919120413093080363329988569600417042919015149169163699140189940087535241086271436118962313266553542478072569511253906907032221410857240659637013251041895964606357514269972895836256670110737860861880776178844391197641051465118261137755831016923710666976816965189210884966518457861954082740443525528632882955444890026783539669347732342240054184699072430907858810838146745269352921641167517316854960859730282950535304551772235533996222709544270972835509350905513978741928333000061649674932128699673286282636727012660974408491956903523784228652169378663799165124308566847234223727333214579689604916748239274503050981655447473393199588988169827911047803818872260548089152583926794325016208379313401229366262718574150964897359011264231802741653958645707884709618653063891052267312496956608050179002311837164145831315026393642098806737654078359396346535239328158619583721097775922960581245440844616359783214908955956574661532250147189824045512232937952043556855368975538399428229957184841945129662408655785169904077991680702757539680203052043869601585477257544833568801190102432526647055870416726258515166454180650102516213524592906174956308310480404838330607909329452745771379945564175900839776176002256925557586634085406392499787638774803109059546720484177170922593962911755543615817645289668343259103823391971651173167902915607551256938568040502700218399105828446330870297075239894833860909186358152331774407912282077635656652621697807105410054107931958409680519114129525421678373778857886970887905650463384642882103623770268187297260757605003981597511050403650249670035293039206379865206768982094054120710124723233269949087688188712538537447619351426084120231339157319233933582423286478438863583297125780592556146596900081228267105650480082719927741164255638995395139904943965916492774067685323012744690767031232233261433819765127097656683340758197975613740712275087800062889853116272697225447733745706655108619584406292275025104876196431375795390045377335271306368124335856847253523017819347656241987540390241252767240155771420594383887934585842584026060341383162005024463247182781926252513480433033690006072390652495925189514374798381512748120372664932199541608676028860620541809709235748102265976917837348431638150065844084528193367419333893339881517435120142904020409821510395703958148878813366411121460825925492951658037235060822465416153592603643864236745321159497010948004930364026439880949139953877486398696450357741955072153221163483687030674446715543955711946967287016657684500053840883141996958525998692647694683885827423639237071771395115155284227662370728888463989733889147447865166109165832178046259948000256431093802376143002636149040308333571998563096483939278747537620946470094486102600027580059976185266702726833131010425992381332181736358023685663783897365465647454576162609053154229659650914515277088425362724845328515852321870098869878327410146951623524331547103903394294977008518976939034965236701508109095951996363515553719370727420290408316238871800878801950286301466325449452336660037914956965085139830397457998996213832206011742895867432046313910833381426168530431660123029831902660501535012100233231073484024880727742266621978280326385364601147545008780174660694265831968981500953535725012992742436936578932616176178686456068964255746684745752193196826155446726090509634575459296152889881240410787577414026318326595689133690736281307739320874021641517824105199475266957604640145757601729483448320617041332266176151467883068496371797179034880232794862194369770297889779090120819263894210269054241084779006463399795783625808167252889097731912238630268804133998359598954200268539372803438620403290245676860612642285693979853677609606695769812577711141758179132834657347751258830824435821337217126975183903265585802788778779089940147370323817680325555204676871475479251075850454421176609119417535473795744524515907240421088770964288041580618666524973311711713398416647031137404852894410027375101772097757560109164289724658751074010335248153655054019335883319384913278494476861167429103456039566590472413521428624358996865515043843904901148735309175440650913698286489166363705521153107245674441966645668708025088704243282615343821194445312135963048830890916412527334794540822588755891324868641577311501960899595638080889050344383575462713055325567509577418516730891271843456046906836475403984223174406267730492421215273592526858949779837315042825684522248349870919234465709767960348054825386287811732705429765416493174557002418485850897080097845095974164245920324398376300871343176615406677164543254038285021881767748249630034776845282801258644850108927954592468716317666177635367290276803156976288119452488454259684431608205832137108325352971583195767104515459851797020181047883391190488988489410434005654946019586792607396406044327439815154758163525289306863635458515427586886356497199414418157721242209469861702066478914900192912675584976189308445329673907322106472196704844972051732518624694349697761464554190111508530389480625885251508237664849930874297064729339560877884183828812262309401250248191615398155242392592536789535256165590712729408580849885850200999583421385072741568402972202530345734423360369388420972013179713867170741089908294173969834508204185462293637943623558758015456718358176916529117762268868352725656387673926098827701959154292674680979702628792615647561166294855027482800363210060976998716719566420150279399319165134574180748651217461945669878831973807827285190730516440683221801049089988522805964001150352182207947741593700081514405572820827256445629814456422795491855514833260430231179666631049919714496771358024743200850393809135909287845484800161862372970921368818660624071580252081460527059257937515644163039227356595191526947647301351682769440151447146090273555146482890853766055120131251096142101446352446793939592335976595669943236587276832255844567012979490627268296629270180072099843457540619509148992493302822202020688209741583678229120137487342151717237790282271979147181747003502292458571517082432864538051480060099435160077924897310662096805791484553209660541436204796272885538682078895903388910212384913032390797313731221604391437530017485046229811592723634985996052232466914507002385637360590999741606456462788255370320843432239508379388793036717873396247242064045186936176913144213152081292131155310484991018899232258671260260525052116036356696029026532215356040722193627547773021211928298719051200292037804620636899466518438830143597991985140055576557089853556522134633048860906758361659702553268538852531587978986095163757618760895132015187008924843791332368622390764829630901139573403461544900305284601620077430675516182232769465976713844425496105319063357681866512895229007880175348848313083125288589025570706445336605061169529003990153982577764750265478260443911456365498731390896220839211408877760030375264180107799301724634021055062143039120932289717188731062118583830720824981924057385880744257089821852294780356324556368430008327718197310808916729185796311291039773314120283424117143413775547680815482772858313144949782764196530058396772806471982956036314883815119193991288744930649444984449933679675749849589569062715493639172171747572712227940353762938993685493731156681965464692816644527762824107548634997666104870008626344778037424893280860448667345027091834097487293468394795310570580029713002805204531823531312379713464979654582791503165732370452052504657874647825832681500530466139393835280847238279233977590472642062390871558256285390788448732981448961397651744412720874252733943761933408342730400325228753026884509380259021528806254446924550881277806377782935453846744888460021820804992156014181526352369860408717126789580345924115803325586283247386925360009910488077074799246760243669301498799149124903356712945951454144552500625736558380884291573387468681330217534876233188879594204333059124443533115129511244008956598663727906848829768498720602803622298225782933743319806156347205463821231356944091509965222680792424345952588620022363266788619708339802341492839646024385405051568224603885134013544952735338832222463321849669103543179457569000958584450396254149688741089259336271959443536951852505583845737373920952185324486876011469067642493101475024214287843192821192600044146865057624425683850063338440487797900142549891041220870173379894118453465030104254099568532329916081952072313421722119542261885922746661745634372375832397267877235809780506686945878639419022919821168515042255504850315342768781517667080370510695908434402764336026848872456899363300985951317862460788667358908364674912419690561850455623914087203113555619850370598042265727161920114623541924672272396374574593830792632913817334192172352029722493596719706881518626190704939636362911325239021414696278718055860857362560624010613794622861226840559287440518521885364752895323639799798209858127383793340535465826779017275077256032166824906274508848610137555105982681305034313281431939014361660910623124284610459308723770248492059552520697957781099068896348523920635001936319642400917690509265544218651234692727923297540544584916061738657452075174636082247933375377565456661609704951348459128936279778490275628039761811232575454754382564742489166728377874726786181716396322454797898537848731825830379613342512997834595779082859722914176940585806111204947320040317623176512058166680443245805928587338257591165677835994683160519699524365039611773451219688735893501354952963850793147408133380642270354817876327892516356598904896751774398896934251444262026068337218815156712236376465322994778959064987984586750464604948657307005830380055114694287735203594838976581961848911228971267103556800683775433969564106848130946073964782033482097965545436507309146938719363005783237748490558340151551291491316843746764700766268031079214410930032731094176048678952541589511775197582596223587174611490109715351972017827600754918846994178478729073308016530245420239693624352456292084507399061805587920757206553307540759989633581851577688750950071872459648513367874530743404701303844274011122405493138312201268476592938578089785324811482205043005612853744518331729224452137759360645353752238170649279031747835653843393657215064844012040142844070006478564064670700901170466671170342877239785711308929559726664946820470616777306170886397800835020524546988093994089608838360036260783690486431448582438243003682588658871784265139093335833716556935507755542016921479350875509375738155578930084056191517254205698848041859331492108906563250446100390788962766141871363357988348792649814105909840260352479748944716765321584856486708146899138060411505269562641821106057526596745027428288499946420623641523925181220981930503440944611210666307143976348438229106294448484334539468535423825658734699524271840147942428055047102488836342452017701996522667193550619500485071752667837693586270811748848433333077999849229097800292638460423976828141664606081189072865170997699862562356444983348615342286479744150263030937249817476276043161331534927527171278890909951564129394882633145869069848665578546469543729446957995215502431764547374566884303704151270186639613046680162596603701343269748114501562965851773071469189441374394297709650818982146479800674167600591932553779925008394501586081779306159465987231387611550403146724419385662111420469985560652785911193128652604378806103679161008142039391208180545369412513609205836531974751552711049688324262203500201517380413962274077760587893118565024463370349680101128327477803032922485700808634723188856852372288271197496388770959027805043157883472320360549066967968788469046428304269376931257154793113061988989041718632812113941864571921861292545827887372137104808823838988819280581572586687394835563053692951070866747160839099132429333082135344364618816553979633880079696618535167137421922034394873441899509109486523069945791417024658062270738158627852699857489568490309011327581831581096849226282826493105078454665860505268439240930809923094355136920274030518392444707421227803059604394036390928047159006921800589969961417734504071697614729885870458112237553558972103633876947124748651715597917674083573376566941830151300529722808367974318539023468986039561346546791122106171794168109824384829107926268210229355203166296319408866176675733378626047355479323119149324529187795142116035174729398052199008893817301716329072048337424305908864923125418352188653434395066199030499363529985843981141679032228862393123280137333833090608441731391899965904075204186282311467738695848037526663888168809869492891018502306211591982212841420652339330916062448709900817661260940160863068648417470144724115841785317013721275866009472842799760745629076475980195552518079573710261622496478808425911376394702753444471987911085269259664692769914196607100418010912043267277818106488797021288032365957831915447422053093835803228049785500365680381409488035504959741086078523178114134909691491998940138343225378185498211833232962924422074062924545708129539946563992070311693809464367812242944997927699299893837283866581139187989625832061854232697959017229889518969849021946163337110336308952292980948629205980001081906028978718086251725304229145134485035878467474027720620750136351362443076605369983410398911995030277122774910872327408440933729823075155913202673957818508909146193879291475068838004903291226488546535989536759462949365038186065124969513349093377627570402593609392810482891297217401252063581221595007086707135599643979078152937123227732819492496149144215786765045490238800818215185070572247082733120955961520615300410161736789858585038543850231879126074915203265222909177526218364894155928137886804565755396951865471106306297673928806889859567462591170800705288926971406678548297880472648841982284886052082611269114769194646387553865808716440181692086389819404606755588165189215171710610381466430364652142106599149432724164979566521212724946343086005182763693899771689332092496940313874737056357786798560419164979118929224537510668915023505167129453422879837146850465613190962554961417417219520296397631246775324969277933155841685973219891565460544003029979691346652933171275485100063670679257728702008991408844671295091144023651446660216340403766616600163199711234596504938257334442998296384234867718789438390307469013695830318614610208892318441484994715928728787878565346458394617522278310643787805053028267696411315385825170885947475131189054571157991455880833245524261345571639231901621007567589346426678126888427470801473927004254847657616981008765378454217231537119897171320378061835968557185476947691428715595153667539013898985970315427679266876786315066317005316969677948756101328091136112670262968489340102761144104597588686008717994892582347106182347162509084816578960170477884825897042145083639121038171450090756850989019471357028316775102457349408084458073915066348714545747516607376004227943413894816126614157010519734745971699109253186388370401615529052710810478797478294250716910101987226955208590775117570184564390197761803168459688506094592623184301159158249366877791453386646761836087626153505622975039291243427454850892857280467743564181533907773108005417386578026789806535424240905074505814794765402384620700782054157192320943799562081789380176716212567859393361984202363799887783926190304596348640367037656535687502111540290430423105798450714121862612320571503918944858844548955408685916243166104184390158055787607002706888634425148585335605353743813736490928434058789577453552920912501017746053209273595948964412450813620160970214866570278118437254683329808019894973861965738192715948369004330778018870111363335988794977560215451085683570050869452822492508047812631319413916447871208911490797871698165941984811596591473637780473968973431362779904136582895633883334424158944380967152959922231591974052818697284666371580693348415897149655301906935980937632508290664567398321396590771787795009446542384442596288071611976123329961824434719711905970426864425565338134039988495944433414386915916636479142291412403686016355978291305247763231999331212211200134946827742031202918520364025890026015634715548707705404232065107883677985543539239024069428821526854869537076857507682090640904883899701763157757317065283779978720270112661224801677057680706204937035597142290205711296181385111923858088045241582744728035271700620155162082195027542161735206243046352794824939957042657278189123444594630676391461578088142079384763907425058479493429001328570940480116707009265294454195895295661675461761543593657756876119674320160038498137231198256483285748520498055841636807397042314265975189361735565210795593216001991091772206504498868311307984562995319957574820487769429206972166339087060454190035638382710445522249973872528699151961679886340814544444753952988975156629794380127734022546791598267020662451337941706641352953706360745264799324734794813563974882650648145692393904369145932286220288035483591903547721508235415587316921802420754542306814130276395970258361851097828898804101220965279483846827763213208756339604570146890840136808024635132467192727258954269385579622166885617262024963935024601468535160993823888278807465739339336651683026982160257920745361382256591491535478551323961919474877593526689101262940484390696977703873774200458874754644095850374581783618286829592204859678843054590395109287590142533743535331209378361062374755087263350085372948023380355863752406978404443548477968557917038640630255171583486927235497947568883034610946935971611413582425697216371175777371898494804675689767680636608301558886895509101287509628276015459419721904567763750221914407096334385909517937896663575143373080969900493047158215797178068173785857673655121092843959023924591641777106585984653967569537231619010167287395167862559315136606390019706550467910093923111059569182544457088670342180146721192534594710466307506657110943454521709667537688683404600762810646615201666469160679580289516467834512333970376262980007923772215300662172282024394151839082751144972012179158369366357514708799611785603202003514310093283391107231849910940600801533015088271322545540487338836204963933734223100060091802872482034874701785733366798757003815329564519742241658142675095600455195998431238256640173062545166666158410158360585567174758432886841437072863299962085201068352155504407785574488967832414525984833152499026418577638189691060011982370964937345470325300285017380675328057757112563626456005508297041488695671797275340232234921934962244514621564562682545104970828292672366783514877129561857603274678812167897874696472357003439917047584387900333158078638855879398714710580481776712852641206802721402889456561757842348034025434522606588468065542682103674724811505737412013638648247042391502623961224653828847267692278412973178430617572190249628320369338292675919139395882130872561307678954586899256618562060168541954552880775846652584170837352605865767237812870039302165965778474588316988456332080127358516088451575930673260514308245900823721258335290000482978260073093525736578628663993963443692303395772642235497937086572973627792128050926340499255654076972716350791215991258610760661383914045772985156536987066930269009910288241660531198670766671451368936873816317321158625566406542133821650552040365074468780199082071200608666246076204152354970871071874401814462973875858030997541858256415765030926635140725613654462321019390790310161157915971459266108079074131146822387612233317784320168156787313590917026731337976035859709454345748771643812861123172883329952497234442460159020262363651771357290975820192906519571862383485781773019730603359290923972072067224200041341501754390390468089924858239805530869027729927106581902954444777499578738294804583799367488652488004143950284182947718197561987094508820702219461221051999660950394390619904074380747128458808941242240623379274837766549763660021251526370469208190619254580859085172930681252083671431563517249888540789056006570850919684457276943709246621495605252802338492689312568827977676019929754877558898151681074503529369147577067002405717327756057589025709332097714693904219478630385941747742403252987886346044149766477594584291858876837298001753120337460856521398402643268438735659347664438840984756029444385257852355718751516866556225643239695320716653594038880894021334126192852605737597046600435209068593811767108185148006097058296356463695440203986299285998382460214684632042593809065198310219224479641192842031085850966968132519059764342599865438647765784466460173170636798193990976112966674279348223640215774166180022050715617090087534452254670773264968291397970187276131557868311752374978695424567790210299139824561162330063277774809834641412076805170379606042811930932793329267255200120832865551750521351234257503984637402143537607783580453649804768478661547642172087468257052625015933768865819424398236052897756254572624231016126693645983110366527833455994957177857904483123998842711723757749498202432853841853290893955624058519406234688742389086065868448582687139822567478101953250234460852148213058819547128436738940097980816666421714288170066740298890865675910647789715639965516900485460578186134653615214901548017447437254144999013274669304838530564884987281995371788581873012415562323049282223696869301253769690333172685482154011010021931789495365894324484809554831368427018201793940399263009242108013862942064222758513039642219929126803967761476985802019389643791787575128626609885936618440015447641601496740159134448191727200656150449563861357478094121947721223921321304495912817042488755369856608962234333626224806669180825948576928580185151942771228023281808281295238193299017322290999225922064564919834908232024691167702285190700058753326683388245485264662023354707870662125238013032454660779111370700892872094832122845632354338593003813933555520482681470105410276591156560786370918532971406227217280769976257271963912252697161864098415485116686602814085028854131399161224103389749481072346563999381759542914192560808145599127620959078840066831239981001654314746455195155255998509745248726152010981013062869368595679696652605972777590827632169978514865577295017881684269761436236081912725581166590237937418817446676792254479986489179777377869272877455664015159522436009743212049658256030947921232720237339314556075889045141204806973728273112065524963082890674360464200264771030575634206543039282226419511599710841641842381076842154301683506107720678027948382822729744235968100806643431507215340663729313183932785317372864910419814596907074275601134528573578773108376726844135696311989548638143304828388896603726365938786838089780612722904792160328993422899303450929915909866404172717078662335394395781624855089434502853328082706763978305058233689843434167994581280711139094467576369125904623162169935055518966823680205238928525694689988566932891512438845412463901572729589425151625652432133803568592469772760943490529702779648601087370613670022804773021950969559299768258943788535540854695714744776626252261847941364946680441430531374887161344892203913425102125789206706142863384862207492104857495130550043314197779472259610122205095004729006118414073080062688469936555674382611758159113986256936199224874888947428635240032469511460751842950354240263010614812256515333449728520442387455451586235148071014360410436475093514240440905851480432176671098634317458958653147722229716018906996926319054565290253164820370236308843513287000280361942220483373805784271043198954422718926703943020347817255501813672495991137148999955519540188528297011212470211562109775683188585183713687368962572622858145589664059315799482276649780745261449427113072425569967608034391043727950647523085898144954191673663264069295716125437719086022834371025619545155256774865137361538534356642890145756357067711144783371111276128262658637752720316426056620748754771068961950515509732678824394146148161200723595514624233947336360430568842790979785400930966280064679219659007457414355030697780251147633460946845371769552461501176573423702629060008041646602476710572409089137776795728050193410266100871720460091669467699798303102898996444221293234918825170811955489102477548128236587662557120969606449253653349175244816492090985098163643972671941272384718389079463219633628799107455717668712550458696426250198975491719943256261610048167171917808887925123602278065377843242473141376316343900308792529561145264055913781822529580421207623601402347068383275829465865246898605653998396851451642803853143732844634412290807286118230917508959776883321314916650006924034505875201170537460041696167323307615902224388356105947821491850897774456837330224566002290022550413881022838734108498998958498966881691076823726163541834577816703443159931550529515879021145175091117861699834411357928437872244523682276939335534677690559152624663139663216521939417225316241076491220308792966856799140110570669895210547438217275625283865329956193760642576115142606716020328060935133518902049497038039452455951442729367470019617827305930069129022072498109467597670064303287569109516364746574280266075422567063245516122913585828998032662159460759364422061436035380003021742130429288325927992041368083728608921253023593223918441859416010410641871660932040847093579571522797808979772529487256895905504060730868895555128004529202506189614461758104896224455530904675635751185502809304120898950350720402333332025787289864136531144647085121912528292086698834424970215403845740008761282286255435937920845366880800148006382572497154345241341461702543126024351555290608645039232312528583302685433323513101145191798168681115067669511002170917231153671483896031625278980269035579868825094609765153541985228476948123111924996632599044667616676369455365743540046621701493446731801230226184770556063139706194585804080986602132206762385715139990982401936225182155590089510525488637137046189891520132593876374379987925837553715733925905934550889705620180247421513025651885211369788571425856992469884504670791888949454056782865865773181380722436434141924573416063117117808477579992366336458986898368960457726218130091055259487718840147932480075225073606395684946622765847520374831671866147447431187363356924582444256969780155990382449521587802982746651115200057083726251107594618239962088035360290238822206809014200460194047396766012620518636948643381523623826197849493946122744100883995188377885316110311742056912297840850331374822966721812823806136355595115733248076225188985867351997089754204678638166931790316628571475330621015079470643185691201409537247630902070158328112127148180018648329516817173312333188764253976985801007175556231775335766781101838312824893860915208034065856324770316790533155724063101399791914657465727806529508774329852926216379330506371414992587801565507391576900151380589667236544853764140334043584974594309195499093949491757433155281763219864482257567662697936528426385370701266908419111502798811447341830916864019262083517741451903608193990632108677747688346074458751489911953582821508143425894878763215390695641040812819738526966236231296593382946367598730290292029021853415973374191685362366089387333300865684267313138028331061458366544421245140673923376271105418074493486026012768364808534511734066546527296461279884099816564025968940026061587294115631601550442603885850817115825025154491570468681642982499295735012192318538147640432130635561648963455699836026106744434942434182432165740392230686831498549203646110375010251363863872369691726293174500113493015986644076907495816886254681028549985065507716014259903999313168044714941724334205656983440614773857368227832262762390696025867039971748630490069172897565074933254547515755041908335014499493431519346999740723957315518205738817060165501270530927464070293067907078741001611556547355900419490268485834311646064600474034813956034768797630844949241986301578498634124381896755100258094347536442393498241039923361406956124912424191036894987826670550023992723913453598475039216470651459329819992593602871402846183630189283776021325972217165433554732814760429080020583978199550808985940820650519718360540141172834617599157047948983343997417379453216907387871897670837126962303113786567237201503173780107919103262232568189407336253227768596017883070269355513933039519400908727892736872734000403548957366558862311551255839625852315000984470757372054751024056875268851494362602799996547744812931380881983310615650324173625828591452933976039412856015004678973778227569772897944117959932547089840267404675458249095617239272660451062834612753665849628392257490140165713907483552226818823259117009321629893452756536009832097049901889098058309863638352819279931928485512749660541034490254588421269776747338301995699129346892001158185635497195464693690993972876135171552555590308459919671892273190365929392790623523714047864034238012175863386224515870391897093061493929256672302945956454582165526326222379800187698443393994094130204351542272330004693291077936031111340262032818812207532971202408593042168939220425234757741411793683413757763060673488889865441583638613479472668824637863933676785775785069717503504805229600855982854741256554305774071226252604553590632684307973758790923827172356377087982727395482954148148419017355002059094818714047906310462015074477544271774732078900191490588768403201477555049115953785879308717456429436487528043422488165159267071853010668673131873026524755913623421698974856712084627545966998736519883464658370846770987880025447101630124863772237914000170900456373431208119258972487380808659905859561237462511369260789024011364624055578843028230896812167639255235975790174350108281900234004072838623903343275796430153526621817697643334041615709875060747143845965708253721789628987770233628741025526911623249088485158620719786230771138463400862065319500585745916699828886653616482303162464827044704311848347027475276269038559285425332832165797708752224534560559756550962732207716151761628803069793691489439720748843361073915143484095887492271265111197814204417824169026051159481196125118719655672834397951746185486498396667588816464123091074330495544404896131028464882602953945932175338795853633795395080560046265455063665515793619417088576207034012454192143173385842681314800752101063931245980013513442750906907567942105941367888115773983984899444094917361681224616966353233234963271740906786787821748126545530069217920938868718206627551906895332514524755245583621199615850780061376045406424963559022534179016533562749180496606229002763820333382327994100959069620945777968447050023369652868376280110599728030533679136117117965848121017620472477960531941481304896510983185088534767258690765172427857750599378010503568533233970513062765423770921425698141291376858338023657446121389088338075680833452863183392275156750974925340816033922572147106168336174311671534893619976201199147612329414406419060830609446868720805266669888191240147637583125548796205185418803626062873127555845182163345414936289534452649467343088806700459808917200986882542660082632107063253544242834879848582622113904129336527790454632403978081124344841783251901397340770185934888233651340512261771881649059206663856937565980482235188709778432717152501497918319083175815702555919506734683944566355967521330994922677105960111308073472070475837332060376774165747255261624180804821509910480664315273676104909776042925809129724733187558562304961302122026682256064847060484857609719701169979093360103467662430127467969580097673464142798255648648810805806323633868880499177003576653193820620352374957768047662010415792497085784746354035433437909894379620314662765100579943648065461295001423718566302485590596075433682249588327911980462556996908001196067818535157721675889926891288457168573521994162551249400982983058524100054641294742176580582071958171224036239890866911086131397209693030900192192821387285478986640194151535203281423889184018134214158113011695188374421369383801770438199481718753536840267973773630599425207498638232516532873878897368925111423603720385669019111352912873031579787080899931533134722250633157616410100853250662028941739961659442747464619204858754942566729455413414770731663450617831683459047781686764363592212347303257153892696136524834560811435262973493975193426542259503222884548364668603359234513362423454351537112538277034114859465553049038487075033636724077209049927350313653689837183260539904435770947511324403539597646426620459505454639584519112428024540314271707471649140088948098695260569310029464699352681293178285262550315966929282897966575263565045897229290361066650603332641929545712839233539754315270725756237635652320222183480222434072437727873998541873752652458661888924516820512519667836199518804629832676393719172107872993657577307900433664260991998320658643462750520416799586759195477258709736496003950091808441569545541981046643297541956725514743597826463250976462919032973028764813208560106721281595349851935069795757269971909371354361477718455595214698004836834385731235448579242354686526229193605663555013013968780740631915106192513079004371734311336162661470176532943495622105638976156307842370795773287877545804516269830446001113982186264233631149388156051334101245018263038734518770170671103262008860832844312951946763235751833057858536622103116101793556156372710161360732729821348748574932011640625122278592977703567753287514062787312826215127510532159211986155899307250459779059512393614115776357224868279286377482899740057563072078022087878920229836111733734736097966350876883503087566297122429751094894920562525387203298018096494835407940343817578201453923586526231013687583486688161259895111909736964794732751981725315011196501457976904411095683634742124112138214600907362688912438173207702348933123779599018472730534525976943102178954394662810097315075525927590326647692866884651370645042344728731320533591753527432616213241515288336284658726282204381040355845368008854958401099126397291116291626425153441514171951946215852761391351930996279674325905619848102727178246945705091159657572120542235585062984448133710773846404012686326553672172855400441636979707932921151899332557738815938946337449192871946573562196780356671575640651703514604079461918363773406429603397968117574130503631206433475020023848048594659137463807485311904199541746284033910455228359713234510698924593696680184588496010004937279455995493515092771550529364629095811156704252441398750228729562936448372090610411837836930242485340463634381791390675198220882420426113032603006711667945060041704234675116903449718195074084145750899775079057305568905848796836605031878065831421050076352184807110117989077340092916578547910784446867549098660340163100605728064412259302423956368753324369459303008254577286788204455114791253601767092177634540322612698395511939590272304078229641323780256375138718090441774304140732702299525751330348823896983942871819709040891006875609552885744644268925352221603303222980383073330477314411493143201190948337155985804425519380818316508979710585012030352996712254068319319076686069836931243416928149119025383448957877227759771555440280641250621384352017345673501727849903908278474612145127765224323147258129559410456363707523962101915029610413574720989919226386367966531993406863196227120317206491272219209497625905308663348602001473898113310039446203406805438979015801298425588993923378059190646155648901050525928084682665601477788904291695829888994498201369642096986918434862994802514071944247104731847654767451879250343978477355339083431249625344157020379657994581614874507974129261544255268053691821817778272167260110668253408997326564424456594242841651539986404260875762758753537267084693639334518545476999863424027101116708221607978864792754146290596282104817585205835514268400402472551467305067650872640826164558795427306826349562628656288203163173063870807832199010121162072745581270403102118558284326169506653777123896641965242005167589886003611715488907233390427079762128226949512043616183970119148164105560919750837914307028900570361504405921150995981485227009557606381275074162529756809546026731138328696007768259379828806116167798660319467450079441171846348807261676162717091097791989784868903039095145908477039234648286986159658716047351923208186522966639776517289996116900331615284521199614483994315334538065372514815199251449046798602034099585475145630049186610125873005797035825020692927873675735281018171411172735580299617174862258474715563821815727269147102811988691679443996089059643463124119909847502494799884775840457805085182716630992969315537119480740227541684617357939232616062423139913974988726186175215619447538740110432480933020773619009014405933772860485720320299448279821087707092738139691944139773801810608988942634212496765109210875308825621523956565419129194710362899316247029369854892532421179566980939540249450675800707357725164243082765101766858761545740078110832895540964931492919633831293045662283906073033631480871014705957180221334215238755573758007304409467070480960236173130605136683395755492194710823449248350212992120541238469781306088709536587162715937802736606623543642496964783947044091374559177091884698302180332335947763399319680828610458534040047260389462375242710438912866499929045981089638692540116818967240936006794454159390855696957308705598898472683590376274277372503961024173784585067179378928270942486743365328236552059593906472516985436660968456201116072857373159811281732567357935451966887521520375193642838852555146990235707041402327490622973076198138296589773206707650400253351412709129755759106732302103989798391718073735120362875253097924178916996815677519917104726534788547837575421630047241285713820546961105573027730346183265464443872631363988705476273562893258550855666946521785448261636210326677146979219685308607039595705058172089757449319219328874274067687273415452091655196130986231559785517270233536173647093909859968627047489885960094301657413078768947585217171314691278221450447571976924538620735805823153079443287871807474900797679171016586356492288685027792674488282145733567754943239458837615868555786015425729426064881212340571915467727236879680330809643602793452152229914114387953105206110190113796654483515308285466852291239366634807623186037552520495091370783853512679371458203385278393343737260578965402405355734787565280682670589825705079206848108882156672808135107219869592311147523724819872404361459280972647649041766533553919674980628023445785514740819707838975442950169560602350525869599682341045723863876504130730262410367025569013707439867949024374100236766878764265608594381009436354596604324304992916570650292429510413933958320451422737670560875948071031377810430547751233920599002196633830131129809258975278034148007256614257267735256724831547738437535370392987633552253100780180472062445653469850952636855254423365265889197835545733807173642460556569276973979339388495502769364228318653301334933796307781561134649619372488159785463142417364725635763478462723492631914787488018765193107785921495840867853523211713323436424579407569552723061275155274534431214065401381247552376355327179296006909490143284573069739347483664731878221944993879152045078267961129983282261850203034902256744252402223637952697692158497802504568455681653325856404631392990437953920995735861100110992269483169791766252539342685885714159850347908938400201919686365933075598952236770296821807535326131478895438878875504952641235879692248886175839025209864849376221874948387964892257311000639934002707416454337006744432353922574016330891469516042520687674002998085806733718226738202924316471995569295416133792273901678534745802176774683042596823195393735013426343185330071392808348645929586080505377794402354335846404121770461414902131665674158765159188736266897967802350600742586519398572352885869999131062803778577662452937080937512589792242768591394735982049992064577483853424536410012019978769627059373559818101761536599881459830619702648151274818238225284871489064129329410588105323108248359528092185990557085062468806844857912438193475398649884901124720279728621996480089392666905648498315436062809336381527938976868040166762842898994716890517422462192265267332588781650362366227709457798062196901252332726203631993725812621365112863834579115109364315206378934359694358232269798729417470467076892260719246607139084198780581588153322301067710291851023470196465549776566437180518478304175502771074227674464858666237908411277744573591449270692790053473437649655752791812519850416036346733563912512791504614842764244814746674536420880259723534769707412637540748828693202035394869222865381434031924370355907597369209615834580665468737018750338146902863238693379371932829117716655503288147944914166586393128787731943441169219968236989851008113706016365899085939325273253119889247843242871275925257974089062610652624718750896210450141030619075860629586568854782221985641609187298427287830783187494355362354010539444704207948875491316312831371627683585808123643595858439718998470955500089067318057992765372357748516030004480023629473597021202124586376239606054814561479287480610648141067096343130860362905301307364929314034039110472824291536656736584008186370786871893171467504041712957041474632916544987524414951077961209701162536309598021262032327633533170426072347667351539504568084651362807162872172910429745028466385238819269772671079401718085809500807436665729190752582706276592707293294944060988690888470697714300049775178976848555753895547297144739064333672655448888565927400334452798615463950373129373613526365149763734366360569218098612469648491567646315900061646543410492871470780124959670909956070068279820142989196114048015000257736761799078196264977774218448814419721989677801388880950265085409035554896659772721807768617712708998655428271212909517474995544589475412876855312957038675703936335444303564023074741702661863099576695144870585844054552945814593289082378986431971246264792756000271266311498450046319888315190296641530701167193032365869528019039505113253266505747331047962881579567070670571762793142023667473603958521751475956083804049546754337016795020829042929790679993026339187594960882191085818100358831594878771501116859982998059209459333213162694071163394549270001570355654511436722936536689969276306650532173362639768742458699564632497384105713482718679800085505879120100254270497834002064867453390239705162187671445093229181544637941430496602544747008113473794675375212028413523821977062621304543046401714553317989327802800263866729169227387661037256686817193192265352310864123917175815752693275632419483196962528064276127031866532615086849723767575160555540288408997747625275764600877720720384737946159316907850012360638314518897298648153335706589926469700942979436571787322259081801177664206938704866585720483939142709104225795262874949900218769490690343919576946501592209257071757948193770059609289670505522536115524509863130471506670915584793017818303600456178229907099299605894484774692839333853289456167022452010272237447614636062539601154536115131501686190456945870299520473968420701944392711515133380675889170339804118839761527907126547346701061183030286037763626286788324425162060650938871957216807299482010829842349014486015939360961288874749333599620705675005719999079192939840590671428482691046232063653054920094672865908012408338158533819137724821761697016111789200729897747150658867407464674023179572042346281947558722060350551757910196477476056755882318090365101276072933466728206133627647373303159556407676785673205207008818657596975337976345285505466756488236699267741718743012667061180302196594031072557167850095313464121105840772168738990427086853456319259458780381553194993153391382185888028482852211660165809959704861902601387206527586749357290342981426588947944697962315573254026910633172113792472112863794328478759916144741517761785124057621324600857201199112437440122314828442476813112620389894338946265041663594056858074753692266772896936376599582061430882971887319881046268981182381852435555036973306561672223365852694180019383032531383535423279706620895768840688810500630322995650400084907481073161143870229303826635913107165247444485774580737557791630812189345988465255967671819610164495459292538245905961344888404230653435370704954575402169328890146423938123623103279788812652672009994837073511058625449619826172178156972818316818625662970108663716604221641732663947942562834553148992800643766161285269849623926955154315680551668552170094282063161603908870216099887481122289456000846869757126220800037962260224787823264379422467738593877299478215205592099709977390653513928183160551844998859845782423157584798810453970742960566148567170405733504073992744668661391930442436884618162480063782838884503061735500766141236215545204918425666137447572750017924989414540535909461931192103697014576126345079795614186928588095027757746110266375286032871993311969783369771420695822526118011076444083242378158378979143625292558346431403746257574919148486537784863595876303909469453524448611712599168599439146521625159712311572095490308323367851987411401346428626585754903786454795899133612628333717236587712804212633757895515797984420772372523113178286364988475903442467988946506901654024070811546022023067965015762047508345991305007947279942670067713848501819603457349628933100292715801698040387339049652934686251897549282301984496258803537274892402944038240941879147318227846316531798532651925618472378369652866221082688504629310599902978804598197337993962500840866691776726064862030597795876144631101631204755555479710859815819760290702440011109534724722027659721272446611992657616474339692478805985191336137469799703088423459329865278565895984239070645708422103217272991520452428293377450553521679667756193840269360582430177774037205287261815144323318048586883473126170656029338175202244643592619150260918484504713024299920362876512626994734657741372012679937367729014648041019292830826713935159367924485955388453469137916443392132874731735909560383051016934241170965484502982442471633552509375856881268126475626057154047933510434957108597117368172601442346421483239376222727918626697004180179250483150305341843553182241934277636002068120009564347332910765821768869742141685459940578720760295311325211605426471399766269029393182737383327136033157377644680476101279743952334160212909401397828900688633292386108180754894022967771139983872647563047835901794734083294548037008038236311373336586195115703119200214908195937488649717028048696467064669544228644064433345138646015654497012522037447492853242695162570932939232815487025076803153178468905918782140952688878537403889022506682932470061150652322968764401305684254760505383131048204723046603578422212546603511231543642697651582411164640142128800257571464360299809174053998407724168872175487522238205336331415620634826936151280397121045784095399012760039404394713096965176840689210879592269252011157176638880707963636323127691372658729781427024903447299992609633810934516580181230622949920656222326365841704541366102730754465544291427175270193443233619209385412372897833340685171330792550252870124815154078211582430959904163473138842359085307126840093661096964563637547300238319550540563912077807637824785185987260271391434729442590285040817200927504353414230409883669695666614021668068150807886811330698236146635711964254620485033346219324580317081771067267481505557231669930155763614748792405990194995242311457796725949175843042648207034506366910534542873021203574702886226525314199329955441689583172395410914518539940608703899234469088385907868335950986458783204519969472462555514589147254448205191975437932364002391988667983370820586003415656211635723880006307832648993359313162069121228587118837224870984231229302109054198985343563554885762209318881115589975962744402239612285924209509111958182164144276211560198554638292024674426302060746880786876754133985220509016681398570520974767925778869498568625915427965036253938493884436110436346497337065119225430577809448314435009842418491248506117040653367936554730539960942406261639902177637214908685068107746533342954242969855680033762691275977012616901885840124682913942020114344784456994276782455088592921405528711626595131871625974346864353663589499141264760879911287028526648635152425292777956467501887263479410630981559384890134433063655337002828936133521022503037181522591287253960737133186169917757642357938690763490523778270677813597380645373070331761644153638386497884544427977378585554428418888547906181672481219465561706316879401250065956761296553708503642400449579738118904654695995036213472830770865263898940701106488879792234888022537555672361919192017287008241646895658064251326631488689868900764761725986112943639334793441846058146460388163932878766875742964796680498170199738883771676063391882451059779803488203032625759477477626306454229203525035445952661189584728639013791307588386090507432430663148073508387400441557162274406179244450895655187962254767923720075085349634418164830679927725397997085663952064469031158184500058156612543292632794225911627895355139317808347874775449488682044873587457802123500602494123826873498475661075813935941767026599155892882578702257443202313119064947166608136151777707696960029300135471750611258750834054108578792453510459445725828343698968199124843740934091080815037404455334036101772091511680793359680966441081243758543853176773481145453712571896344842410418650070901988783472792163416271350305752466005823894121028935200183147812821777802985689378763637745313878298279664182025885250274803819717386407549107626987895639298591687697515951442422031686452942701206692278730693575096188217796135593005288430855327801930086117591149206728173798379785307733776853140899788655296164988917495316303631863448072845968087795721191469273570475059755092779468461849683419951997549762211767106713819840453362108901050764202080830902024752345025430532171367845025290195104475938879304924257759564268874463829863323705745585232293280470288825036055124728653258595744831652810571760255384791052879310712233222811296765418869023905148120894017059503195590559141653546264686792027383295948973300852809666130905097513300203585333000917771117204564883417860747799360184033251651388439831123232514852006613028394324304950033873263879482385352938709998225747823272046863590179071331909616480115534008340453859307355697864893596790071306077082122840603280748383422105184871357879613508006264995519454231497240090946683746026955066567245061600875016645355509465677661121085605936234850045201200723102044503048793191341072830905964522040010597175190706565687451584439858819808127377918747689982318662413533892057049534410856166068222251540830234653037428371156301234472513684514013621944942402879766376253861823835254049961562748497993243291000004883026473788964816100939747948722550353411024170069336804223206467098118059327560639266683824884787136644255082741902382671436564397327098925708952025889532987462451995515553778522566879476345713258577444380701696109559304397676010939393095816772302447907318570572596495401264331858531243725311793400000105771279731321668637525735971599446723323360492365787872604551621311968651706162745363990525408965547708378694422396289543432424779644396908555915368089793134642634265861487114801250608665552318854591451530146252349265215835551811807500189784732382145889551525512290703904840629212803242204043752357607878707620487993915115927000968103699000654678248066001638491498141259139496944653066445246961178274980965017469657055216858731489138299075853005665617935044135218362238993113666526683574439249767968314213075376653215328924830816471386855029668603612402921988483945047913711608469596706135333979159312900862832837238873722307660626439833138298669302209126019387835799141340971877340236387377513402125759201317578744919404258846978882243165527327516342325443644927527902862880872100580124050177042901661911236707055863207884601791249165464890485142083345535868957897106580622692455845011486924342125855867799286614577964764260622612192663117156763299706289936960280632493215432008102548280100227762185697389669996537938722589879032814562084600410729565068273929029410380131911462659548996353575295099229265176234698605701818414226081972075467697455043245972433883866028868576916535413286686172023913202744717681189677827670182706145504491582855859584376899366460818713205040233003721437313000134637420085231334309871272579009704385065345524287785746479232695904332331319351234418964209467131722322632945563180279570909476397299414685250632698586861135958178606064908688553906455940771500940489052046168025807138817687265593461975048211426253891367075602002501209966587790928120808040700894777812734830343569652232176770222444284211001916970961142735546031229633554610911231160427125962201520815395414413081414838343564857743072136167578810375658372496746061893038175218657839879652895047867672998699511965760481832972588650025094090075939381514350002576897868838909894332056002461946503833058644271404344106658207053154417847942513577757132556265605762340759110033586094534823064032243641184285621587747173818105457772060865266925964870653210560126889443010820874968752411699711149149195301869290127111741555565850662922082608095698662951682772613844663355730628003176331209832222672073401184601973427472766854861600519401270448376034042448176479917784282030474023940513725406256897326152919207292566672240434989578014798808294161246551966124465297746429762083643036273528683810201581166353453628740590449681141552596695209550739699903996034356447468819612327252606165947524005822935754848501206930624770649276320941324293239517747977019776725082520678247344877213703311366487527025610839369636500320693236710987439920479909163797860531289743371705905545360967872754938207711436172316604688049640230217733407671267084022628681873423332889431218576212358848121881520893264615732180292170094590870665619787869126812080787800094427894438401696337346114523517113512257934638693089342193503481171993676618422313102266672227729480536250187585477519131480030752066750939958735346725002707455926360574344054055349875093972279138026297693724780801994180154905178283121268146872590432589419434152962821661051299579495971690474474411435910443202263094144684694093559390789728386182991234754681749767378243772937779715206252532860763407634562547123124137702345640794637361154741525050688016197438077085376365395879423552826214851362459139405103902060989556403462028990572572227153075841586253503430175939964516379315404052622227687332754180228417556669333815866195972100735499886402417796036040696010740340205874455089433240689040202492183324175861801682154426102968658569184094337984534752520880434017101953575211628241851040853151694310725976929132399691392818900900149591533363897892784176701367789513019446891029790404066127757219869624038494352703829919829434489714283875956867547516643305370093976774550913275287544746595415386327538762452146646498835265987875894109131036232397391981556987887319972962962644390673242697004592564377032728894345573798767498862288958087337830295714850234244845468364249846601109345205815373758330221931248849869684970370826991365051141828934732456826388211227647446421344988286387560735602040254405941977697681653559794907326016492683197431183492442161318217894299290969240335918483666825823211718543734285090587761353998660834777171589344804217106995113866341180115499405655774271648704505560799843330766758980706760627862438284935852197255870822170984388609997541133419239976175938276287163627256656497655252119785805774388847731666261609601471214827346265432050294508578235880337935486544416075226191092503893740149917756766481841567635231493591089081226710321887530181398407047934228918179311802352542632352093321937052034329360694486176242657631822200150778478935701959818857361131970492627069953040228088906351762564907086352948124403327385122861032540270095962132280700093243988469087848572856887502582744221331686234505172778007084323159298786784054040241320246119035890685398733184872376342453964707364715965153250178125044851102050024071244984373377851132885456669796331123711656356149150808128240273405472266700850674420082500165266441661006101203902962721475236698694516950981769970943561274556124878704208793425003879633995295487213555284234898639064626127879556303454651767727302832105935665269660320356814646813411674697218739853084234284205632509288811845003212898635247316704209127546755515896452214212103338738734656900203468599443092031219337811946617395948845826616064594664221968979646033574790159308354263265537693448095682896208488175426021769721576999097962000866877171476152440601448995855418025073085245238324648026458051719291900465673716706377395955903476733902259642467697419852818713340585522200437820258806564315264018042851335222066268806838979390068021791136410929837505873735470412963270900031308079125040619531954721005611422378525568558687820063545755578403886073951276294970984325172847007850586332647813213300169531397115218154108388135905908529524470901664735506171135892577855877680589380002899151788929820050142804828771972059454932214140923774610516973923451460472024879167097506825415151782200056682729345909591459455735007415481720449968773059777427248801172916660475395429109599589179790755515129482929351816508261725836438346190731123725566811421783645748012790135837590899759555900430566205936564752328574937173107307209760409382631142056979577561376353096936541744085289800634020383385628682074409351715475672352893634057525846701456871644670779987158103456015480148632710352780726406221967164164728889051914491145638753467653611993569311982104248743052259224010218993550086069193034706746468966443719307798718255629162569742040642464437499190542255029195713144253219392587085614603545881861951762447055652857062395572665846867051730560488415596565993926210182539955226098367888976063781928165314837806408107009007153898834147839122268106953572169639281286328194482149973226870480252367244602541035897317944803001434862536129386117590937780085546165748945391300191605118399676001436262873473947129564923383257522083855597500872597215840933093453648793460919615925058804765335867190490030708534216856681861611467259622210444067311320134140161692166280813701978326814980855189615155663174923155145728160797114125523094486083310165927462599678319512193302870366076804955700603926340183449612847211709219408708436809380916375936125543300072109785683996646811679372743687358311442089776071671354576557865578338614245411722258310731501313201640099120684961134818967144314920033861520986358338030089771050781820979263640129318715582200497442015656182730909673495725579736406569303179238241291470187182154284059649037386708970980476305395147435094021073543309180493281666823204730749027416866013121952844510877699128265242978902520418670670381066180286074692778803876513507670845142099069993379315181153676350974658286292818273920911000704201506079345261124942893394649481816489092400752688316631807497202244021313310284873582141079472624123472491512812390374369021472819452177229642095564401023738633671261253397021979331966889264007225979882345144798589820068188928576279574085066714855922842319194457945885941890133639020954575437182557846750149659315943028864331707625604325009532657049607745170182953293492260009274067473091427564486307104361639553258012921887692726015276046717503492028038055884596602653520548463832607910011374772484307253024341188513663196185187469540401360161513673117328344226491905062209176073763293690420549810157321660965968382056052957095176539723305624195203055082575276661574363241101659637744557684109554012850020207128005190426116517466039591608550268007085255138500497745582351030527607328253657244929374416106798562683148939843400801301220446926440337210147877640139861421469406724612534123878935388126240713282410307577856435085290505293778306789187167912976502936515906315453414585410738712554718222310319657838067770160342492628567880022188663974741923426288379599332713301921739257058558119860954461463093385300963805861197750535760645237536623917174640565330117211382341050928568188750606928785372837288019910510667961332318893937331471544249592413050745032447179397059633548347556784332352074077659270486293831597072044715234871772657872238922972282977707598829431710293341559775181006664471759167751425998903554180951390880196806802086336048738038647859237238067894012824266515752831394113854600558271720927050476018055791030573491375887638813231363609425321928603146911390343955863836282756899301050019574786102583213074802900478617179406156765123009942967817251887894521948405645756569906940547644304125340391362408880523797078638882427687670949152239658005239367111872760193295821164324539272299159866215540218427333219425201910653466003190351041445816189901273715444297359021526802984551200573923784575651979721383662863209861394023822259560572811721623157229335831471077736075743306477987457123245240591132673362021307663494305347180572340461796795191876529950904615793949523353205596327227657455525593313596621648086774305491259494053822658256866151948404222904176143814381034429428371727829821007295988376528492064427770550195422523138539864215688497011107484727495232054990922860165471256172005418586688927018125170004392826067656860363242759230063981919053526903688493544251628337100183758862450950688629480776516025424761481258871527933988281089309962771709704914016960768965465063121298756712110149679750191633876060621222435211575893290463471636077897993865404690902699735437910096922958295738447794121062011504341796662841863464934536834846075512113689902641372619130925837586018726203182562270798571829826226765850785917101585178981851989492181675349047319412982997967987992674215104983423530787199466059774808712168510922285773136329843123356586137155607434515004756119428175882342783765655694521515557406745376376440049062629809684377303285963153687168321803307733035654628354971131880607020572170579588399338573471789027204049640566712701048403648688432954453789086642126483581104712339093615537978788908338859008295059146959268873597285025080296587690401426288720529810606471872971842547420319492214139115650162239823651443854133953742855882687313501207781689751385950572699719379887885796692677491912312619204260381597446338200212819696214769030522946646207241608996340881090324091935551971944394506269749110373066744343096240853181165198944204784780174003219191978144374891256256677266042406793156939805217864533367529008466781467215581569568262168241981094532855957003089677813004018488253681608563296334766230797928559168225620124353819240251396457572704451545408462394897937498184961938661708249301615309319090507459639845162936790973585221911461968296919697171573774086411045593517738639393379672986241650142465679050921694546499247649218358331168796893907001507470231494503610494340680539603659656407051962642404383378542266459034841265209577021679057020967511956093797370185069737717115897375487934817119352084689568940454874384333372708553316722808150326908559398083869296605013623004761206575089475032022547802314718416786652214434155357802361548442436031101708286515800019568571360730818426529727789551122477594164103141369729819421276900004155047678353788606201262723495731458187196929245714018642550367315198990716214889209464195143917477558484880103706328651179184892731544603497625874138180347798993063476697768465669098921763785058999932548095166631762522857646221679482953988678964593247350493569274445700301316904379350993190790642968424037546762198218653929211841279398024548214580306368019864915777642784024899195923980660391535517565104939500045727600981772340483379751606218225077240828687595771683093341709058140970106934364036143007313738273837382105388314494811258782762956585144697808958008778896662244501904856569570532607345014607164286533358461886773288912961757946545103943501582572612093120069447103942695650289013832230479646711195189801148426012295222005162280143593644124792309257881894914160289534734550737260338252122023726923696863575551117645875607557041441839361774610288521219502009033838885242886970775379006891864813673917873790708222759841323709568251245906267512365797905756740402745952062552797723039327081549932145814658768492116921202229751944287755895337344554358245557196597203507973664370996243706868818683826298493659593850127314893236182890034235578278517271600003451001324626310355998441226619906978692592935034130074224860471911494894968582031041658105301738455103699854699492457730675178255493606860238876626101282557803488968145043103865538739610184582427321282555233883195656145243019256960073112998754618646731988304859968045341502633789355106167526238892032452025522617913907983349174250616777826594555825235577101113184735675711400074643918930653724216984565362365896691036926995797273936775284386347461263039513463530449822960481656338452552391589794559611605975997634873738949878310546051061128012844761307304951218168102032215351267535364446884088401248708082737167887535797829174666893539703378013058047811822504339452911873408079910316494348592618944275344041361432974790904825327040942511618214693054731131293482361217739275783568304278038211026473562524731865623178905239087889687804699192838434756750255672973197827332061086029405927768471474442234024054292512540301812650101488804506608407374915737540585181225687604648202124337503766790071343699069660194887684562604202398773592587058326937460447101644813804242251705281521877004647012506485251634954018877980252892618878275607916331949276120878017533870936595392195281790067910113429058185944813921366219435786927210372123193005799676109237268508252086549924694793134929460978285431206536106970321143837079209060279103174858767633797845106810311511613664804497666237063782830166649488498155779950261937530847367405182150241571025341972078749736408764135610200061863250276180533918440672903124824223062488436355685398626393809407445028915513575847813150584569887904094522998874706229183604018252532071414178327460082994502819505114020558901648769420549960859138080599673533400142014343310306872638251844549319664975194166641142642637291188058993317349521893401568072812715388708772488181024493860936482513290901497139684236444498452587544493850479787269504426827800566237145635139178506154223715146629949284244180684071033560403217519943091550641161918596846765054332268807291911226760102964271805319812601817842684304387013417400621012330198866248559765486175794416117547336007234454566070145045794515870814738567362579867742252963618577489386348790481445973609838186403455736641926220041055611021828945059595773155736957341064072750034093611610699142484918766162568816759454305827620917289821909598796346242277787785801278396829356863393760285349711752395069382977403321376871425694794432370115422022019069300536094147097114264494357623737527888444480589296200433464195067296772305120646652858238655597580946042608146931020565709368782348448901620606629251876852790930569369684993004922374604387490046675022680360367497513847400429835844459419285182488232335241651931881760062947571332010512282447193090211924205973477150582556869470105364460727226230815000167953505744413577666814040782652686048080444454613915234754078603604423564856225907724241264803033412586651834479238570042285016468207037489832809325629047945412847728013965053419860972820047877349447864941254916492256927786325272790548087824472067437960311284987659144520196708216309614414576185496574085525877053181271936224100573536501875382475073942408612919110362437002764732095743502445852703265174340371539357869733536146220264184982065895609297724874560139581246798882019243540282788196016235658826857322994047060957516864168951634387192037556799324545843881323169646106644291894496367836046560579683176264591008915047637287767603971411010725992956982602589488448493033498570753103352277259399131907176655826312503120243096529517412405585664873463139405396999538494044143542161666560341346047798660539098883540327862649496246854046142095004813679485845616236591095499162745874220503179128029889681513682149289170253475125303274745575633993775466241767229246998698264854478672769115095501061881717814103875000863855094107598577824238041576732980179894642170817916748313872035293669744699784180405801733363270806952300303730851706577339674591631636105492921665662986053099496228391427352000484041261048630529825473021149629778054286273235854198166424639240842906338723531741109727729138404722513522371552327063131332558545860792791757957299075010156168493511601740959927011905258408348252412091279624746001465970999681489166099401508521179734662683526081536113442345578102035970745138301236007536309932599262726868826214107677416778356811328696791137438349148932982897760202560382423314730420179678726423248280521801928338024233956875215955474738787972305774783198561569722520792761079626633706754745586434925574007978876575471234162069543462840334705729778188177029111218938710436006707867020812431010340238316965515923396640173648905031015070674115463214739464599228905915420581700825294790657640869359988532924305827056536228633924408192883315200398409729625921387272404444187325917949074175859232821701741355475303066107165180635362588718293067733378857476223886234051723580133682219823898456430878001170923175781639039971646602839416759084146107153401763065752288234058628604719926613363172100159544817592185544113334600920523528715979177804148040954344778419152871368857851604801752258321183881276568951799762329623474836699263907196795985214689261883528092595531287247702256147954464245889701299888490283845616076379644301888820103924064833167876748101815114107573372816761896758560253234404161375372853726961206666676936254399811335692698762545619560860638529701541573251655913873342772846110662590985597003266994948834247238318718966158010891161699874323595906332462083202991235011756892491414526649595291161968933879928661058007503848465858649782042831263506484391549398643882060510349670555842019862816019512204762180911582248857942935876753518533756119079763682614684223940446979363650141705169416577549592984438378199927338567246193403724292918247371522645844951480419473934662670189589686518472674288184793184594482365033134592394294451091175806599441593128903450890651080378215858524697343238752896629482299954544366491453910562247059904253416382091067692852231039336754725557980411236803409013643464541212464192858423095039314635196752346323502445355142978380875354682341200083116742936046341937003126583299910852296759861688212366923252834009540051070553869700409976667167900660357534160799764152142604730662638793393765965459266046532661084429580309246918825029789182816864706413467225011534030739386019418466577414563304228448410857792773561443770206103101858423405229400518964497158135054267237570651908086994088111804131286890340421155170450016266215005327736583531224655565687925269702164997362563792460087899696236620675169346303250952984121438825529673990719174110802069168827392393784869761234175256676996691525121563322493698956750241199859327024435638550908445566964324812922802134911721236389298752936294707017692126546380617024862095849164974001346107605268892298404746835582058455318695086280740143885027669553736036434058298872289190445417847150816029273614744532716820321620586739982486563877985485750446834148243882152108406480304492357745864530881855741150069385025781049089225905475770278012611562318554234414862839689046100939377143873937406403597930279529822210015711603001533658705076539753752751640552822218366271935895113108119714002037990831081017497034832672011974774624501892441877627467629805190980929926424039031605924666809500138833946512762444333837936156968859103690728107376303400141747903648250999187837841910803595258503685287331672946519323135241158826113692459287098276460173188003292584471718402794630684442517393749451685892411590191872968570708084326216619619789979886037607446404754671305230759181792562880175747587052295088071746763696402638545640596139116754001583786719993430547254774213354539761095471275308326213237420672428122867900141762609163242441311090627355981263030497338856342310803060998226327223376587398781523457277865426757255027464568747871234256125390696542306840817724371351227974269794131017531230418211186557371955246805201448733267363745308266870424481698000279336328724020766761189959952028633253866927304393199723277883429510389100928906830335657052137782373509207797673864660186791633090409685047881747025297480231223993919985147787798039745360031269469891386117832423779246663414648992897816786216598049200211026176408012637570746254862593948180328863551652083717109759126494007804588946798585695769792763021988408976899697760749701128805510264444916715830557571810884875179675607671930589272888995266400125953582155674885596981883040801730009685016431137911513720593694567130339651446854261544217952520350698335178411631047227911737936421590078319017820020341063000093831135126007789330828136096521381312774514849387058546020038060613472754018382317727359643143115193240906576120502071498713689747316381736541561017080565730051666846261801604848668336015684438791253942817608400027820364341209406100338138443191985635420856666257897492829656072864241762023247779320818165067738927326044726563871168937173390817033997537762213724865328807302130931555916670899112954705117369542712647103194569447841174017922507630107388810082897171238042652961656604667275882280552706045169261183901341687766154562560001871895387387429848611299416784120809127428225371026145009628218228377309236292771038318014816930037661257222253694704690924344867547077418511650810508082179921401975139999491107442810908720647320494564081573539794170946557471074678088633805075108849990145363831787289427414321924341028657232773030616934870933059528528060739672483623843055237256292950248922849121381867480844327066081608755280295125324243085746952068735944882478796870154680727845136177790402121478941128277817416034921538330020414915854711397953543960141037085627318185324821933075170869556098556049479963465159275040189476108192709631933232666057232919266377629584368712622445124456778360520306381308168285100944876997391398609670801149698965815860732762355142263469621531357449204490098542845733152696909619608505378889462667246381110287757914650748139885909982820433258845709448259628586668824427896685851322494064513395634875835424896006603364914536978566261755645094055553022706423752168655400278462635609306915248683177163326533380123378641556296598817346990334746354238436897452846272995264882692497538807499035019716067844028506791707472319339677349699136785152714533464556976526603427487632210176827734657040185090869546937655020012672381216219720330640969165981576097097170081650187161014325132080183921223403721271755365946128106502991493393940661427226136499868717789269928950427265418498400363662509201786902763400676611890390121817551064861007562464252332714827361161074914302353544257410525533414534437758086551952844085399618624397907912888551165575862607007517667531474256164250698527935943295006199347532282935502245688437767505430784503618681044066393938133571048001638647357662102844094238487639746881673056824563814585211588343575718934546907573238440404173560892250944698515666109210404819988315220049568317761622466846345474671486353884257928297124778378074716918685781975578278782872871221760041781741727601129098524470363564215010934079069479677287298270803959515932458995263222225969066965838953656663970729534496729821365815162490291856733909765939891327250397699225013909710624475459001219740982956907168630475891427072150995505688963374047505374558588930019518281016456718763968059670854841882079559298318394404385440446584450528841244310820685028974329850683075381217954684413988430002519436640092370440350702418909013585403054578283913383229165224930550371603803830397876376034521283287473662627669985175583720440019257655206220171969285306479537201538237323401602611057026327406526171538639709126364462761271706256387098901185810961033060995828410818624563159015451628147229127186332720542315344628774033377278838250831410748910829412483698074175063914106031431609157466183051487172141434302389094439163164661540556676669221958164734030435237086069101494285162226125453489220704803397575018300449423428005805386059462577571761210547496347126913883152946578231483287079079862563880630038331573466897452528592685672021203021068515201676520857822585676413465463369720256786604850410613863549920911368917938114145012181134407282579249188738738062195185636375041142983937760434414155415127011528429609299665040997657149025238443166851198076431631321080336725590039904078159456028289877433125924334198950044969406768921493215648676264077245977783577051222869576198320829006324647391447722603785700856033986835310414545212530332631992350595069064876243191511106765512078385210546201918477543632434059575763891099384806625433195980808725063519264918713827866376570400522926070389156353779093204504098567857657489696947826523557653868893968002907963062008897432622018313616381618536727914791193252153464566040637941024225529681390821985982961503533054440911261748158197982451805821542460992938310760999531313349185135613531686437411458862123796102144963116502828735086079084604391820789454130415014269894449801780527808108341463158217154401842652284242954691878657484269806449031572684974251432881298145669132371651691002723580866541986189644120270156211868871734891615374776348208143058918730268169205449064656941459759334230253905301896500254959379171761718440077156049721918384300735227382083835990906792660652341647409434741529354752203778479783459100598836072412358403574962700876111064876795768750964083778483778633276529346821796632926915085219480643467937648955585052325292766728723934877933844751310084837377527882118128666410834128163172487135063370708486560393710194924442915368255819692457272005057634852319163548335759251495134691513968767154246007174571521776249584129903633597486188380930417097497449164357999058734801724729951922021761170515856287573397147034985344883740072873549763845655329195784438479460966103364480695115443884927546219195519597390252971766534934361964370647642886906979890748854163688966594069146590035693472294293204536570000495013279836369855166736821352576154747860801952302604952368595498452401563091393651723274298438884350795812527369629309013948110882189646904189340912698120285706643061913676560077408142650135928210576998832822577052373655751814466970573154280090749846388011865302475247093892336377425221079703577609011087897017941326238494518831011913991162729037831245913452062461940716168246367222073589103799448565850246162259409398689309556787197387849064924874766392549832816331362644394354525699261847847934364432233837511548960340647673887473190042115245377669760832808762279788419215496327803529897748149406620586584083315313961402804245159288764646449637341391174160503694935975160562263293543020436724701929795647636791906923719212044280018018534281769535470705676531179263222013072390510294395248037167290942602230397225246692463247280671838439459375035349817774209754885305691381368222971025421060496097869442263886692239571517672680586649735396258664854469915303340318461465737149922048421033872768325368186575997563709718565024558896990498026418362471782653891185462773047282662481857534678206695425454279376704988065432083120560862830568776926916975635807010975622496867499121667192169310710617780516809238876552207478448133338128812275902473407635291824376037886169934333189408782826183243900729359529948642715419667084434167076574001160557298567635185818688219629609539680967194303438543253498000917329382107603547418800933991865800017750038646486961965444584542813306377700288623775911845545213546647427564950769113732613010072469093427175837293565525296184535953344295237811763683772953574254148094860376602020448294936400180067573126981685264985052417248154048233766543771314976207222978755596051746817102578637391501457050024806306313597486719004327839017895975898175142837303273503780795274284362061285138906681324574811176988913657063760690657793829456340767435115498604075847988778966635246581523029851212040599003557250092848199753554804284808053206155889855949235533408548166972131198646520440264844704056838861345407167328325910396971312920214568913388022909076860798923191665729024765641150915315504533554316387450111345872491706388121993148177921062340044440684153229378599176554264050453335304525074406449674414000197300145906256170617295237565805123789233487975885218269021275447438092524584946243665378870802646221580821938225631146235411624845117725603659652363429973637441194866639676065382350768651813284968728671007394721074275413195601993767594105141132729169599877997025071487969539341701275390927131416013907900285513614938747731102334133976590426643735014424096009779775014677837171701345591263937926880588494741864347389052467717507480200389447755170547178559704234917030995537018470753509779742989228175146395505669754189752042926989785388239067492413730929322936052441159505655887355889616293281572972296997645250025224018740764730492297514711089531222395430483550327555037882711796172199025260889350095231064800674133716112881601550298503659479210387072507788257164829431356264212904092893458195887637613613977310121797021242206387990883653929041245240491218620272200364781180256108891712927954574050480625894166135013317673875366999678373946873419840045825738333611029900792558427993482610848120393876052204469070794433739257318512625122151878753900673790948273635137344359714749764177268728972702054997250881076356361269824983005784230275811172987025897461645022160030644450131023552609063557360455446437297871510607388844792034733990538650834277636855723550263204446203479621791928879780394920788615300253462585890400740121482277602533225109259379051106422007632649609275161554156809419516893250228371658217261956640406776567350220280256911700655703015174221421798449483676508832352848619455437566887519317652167888673287086970554487013930674197693554661494127097757802143874325635025764458370415729868771235663054382183438730329291699914121649462386628640051292348343313784986078164776574512610013442665248573662793561722594173147303200638515486557150935325123446005935165042498087983599852459913675975010376224312663091568132807795290990216763222561514053970105446958722607831481576018972108404254595186483699104769909065456373656440142707237541539425432489519820357363567713214289568930511582984916330002056692266549676164892062088126209369279742906110131434025956253068657718111792853249689681341024865968730609508663181042972157161517879628761116279018111788931561145974893998203003383552228096380820270022883091799355529734346215719773274322428813473890934508181064439007507743805471162105966184663595233445597492903994159277682325664472112543916799782475533872628584232084312468777833435268143258320188724856777707841337796070623787179071514756859072588248011071582397771686276792879915746446427578183927550779771534973611804091783438287501151823017686916997771932633155295367846043111798597894539468027619163028626641204810395561054071839277459845032034385705783855977573856580148341957541235931708857564427061029217498404528796613431902030029013783635954628255892415827797500904183803292477653185174807714337096866482300895601731561721562748718103621274193397427389674263848385883408498224777727296439499233967593152500278767469384295294790120535896331779685022311988260419430247279455888060395984220792112607935653225920758289626095354247292601412500523563333935815807316778329060572318503756218549382402490442538006694488618628436398811060815200474259149057164755231773554477172797437446782247340110604172900187622560880429958621018449879658121072039271977979031017516592631076444471567361127834000036064401511133962117181835386004172492471048590078343707905674596104124107666539553478415225456066885177071203483662823357227644094681717166651541520205834080818837769194050381656692871627097495674695737859488409473672504128475647492213047093838635845758220521787361518189422892814128871015530479336443184241413853173252202759678999538152736715614480491571916870208600386467867087078263234173577980385600872385921791898816371570152415664363165703162858339277730520400904650998200233060941704640921701945890767611058918200604167489121525235625012406570417711518892516602942229816146641812288701465649219889284117764454205075163064107501537335928610536302461664232479221196103332082948992787360848208031094310706166483319713756433294525343471059717535140159676043610076013572044114286213464656140798710300846824060372750093359569551775992720222225403285790039381502510490874722211469255307174581975598608568788839356635923745056034056793761774438015132303036372218370650343278223948122424333344011303997295082616692054877546916426483352962687291542382468317855174227315045524682458271864338350548166968651460832126786590830005966319376090413157327409164424763724893865091892934678052308660834102371519705549961342793228433639867634508417722917690550947609945870472741251405106737321165288972913412656333842855163407440974237962666414620324905402096714078433683996512136301061277028603053255875138462807414699201889834250210535843658177576809082723097652794985253406991853404103733334166727144929412291112139384931273080093320574379021395210493149756324006700936742115721189071528800677292535431850480177047254572677320436549314530170127902487463237813886449988519251089104668027739576194253886982544674584959461228770172710445973297078241353839975202468188801240181878125125266629340211577058218190922374521032190133087867147742148615019471938812436708112211320813458272136865369019858978250531056912835389690528876160461672254301930449497708053950170512529425764996870909691117903076754283709343760884472989978599365710884651798839899175327852749997735451497417788187189782437280825140114567034925808274221471346315358713490108568932349100308879754984924055060513199638377107722383132961927994200389910013882317581647801960842431393751101213965979888315820557111201240983551208886889630613830265029010712681991572637635589795176303264662461941651465596047912323202866406767621367805424360731957776789734015919731496491451913794102456833435679449726862424783620499554408652848401143192635521465979486102611798979274087691883969392999883943253879424336242668435941911235718222148042415186281182244896192569295482858572932532616092759823010828927692596730182222050615480829612817002775253802462235631502466064236863715047272245594915269900455631965229154245175133162462413007916316939342958706815881565334033328775028614740788123934252145319362716525158924831383063597993338174817559309778874133702360301376072295608855656848827122532761575863047339863088425094808489277748747385408159807008868124172834560921929590584865242455394201464314384812631690198020585449072694265642288692845178464746298306147996769986441154322326608594211978544667554782752992103197913150507538209840666518822140164696704530729500374903246244213694572879214018670211701092284146204416430782001335858465268146195985360903803204057805025106243347239150047832353505009967362776810525710291460122601056558779737152419468960859345759037798868350347258012187315735222753823093602099800497840850526366216604534390536720627014801540611212771641198794978961785902436071995897761293550314663573987881949201334321843455257244280334116443620430512548225195773987148945252959562706670443689158813695006088975325507995448974439466016066488105002100436253704240609765649134517134297387906224433055797665471129195852137593359490070866206808554127445770424755431371153550165498231421933988546834196597777478345437946074063711007783921230575100820588287851468425745905067722973734835591524653145647897592918986403694940075102113419614642834785062939802752197412503879912516374631672457993417863179485275390861814977441405658667631906158017644097355790694439296802563890396781250770007795708063996511375121529935048422861314335584046368938961130925391400114055853328982641712293905352305057833989378846770741115488736736050135880707423224144325845339937465207215367593559830060465096852816228584575992195171250557236332208063705259550277764493020509739832036746516474628084362977254851035418413056252875394563139902836995137542604765204523196992139399900215272186212213480757580226688941885954636494423093951245185398698223569420246838669351049889815900434913643804567997995024560053453186504778781820694492984685068658662989719334840917802468323946770854676284596712912078183679866792205141439599430281823235771746867114237488369000108853828909443500952232812789392232984211479692970733687223504032469444834850316592355001624369293534159614026405623608363967498194525611628577829889021031066978991049189859336477095413575775920130707395166934764818515876279091703806460263183424181660060509469579517497351310076234886446877484237918121244920419417860481172443335055701124262249127037509162723304094988847130989379457303483548132198574681015000188452542315351744678699864610503474144383428288673490452067948716764570619659024506802981445750779134426814232509106533914581795676599779553819216649685031363271025465778744736197107933850420378317668477161847057490326633953747149931264886359989090763770163406326814342082321590913196594440581406027798572392532124182747453445671324779031091170583318898878141013205911174367012605342941556424149021426726939948751887238326065370908654078948766926879250837386767232588607443247392463959851623040487909177244723855878258764324319343274789138328302592929337252608138066661599178828271952378724366872572282344246269622452105990281972060990779980108322681488032286541090237889113652179749278026450007960282526694227185449655433120083941860805443164350210743921921982025313891988751888803616296358181025359106879887925605349294929943313530177492755434625939181759728825481354828677766641462907312832022484695741993679491043373684477645898258290037508987118852208129791422238612378607252973578588821818628365416585371003270171827581512482524448488846411516725683059992792762143058383887754175030265473106798782748168089924159946651279530085917481501607633655418468945594050520728515740645895754649634824463759318408245893585687532379866420651819496100527384611630127684151066549145740858723502205007987581047495594113814756327944260608547922756267079993496482126614296911389325231293657738973974807542327874232833346412631808183100185537778898542899466014241211733918160289455071208421470160909778671937903678753709452531625154127632668415272031478423592388639689593766669792193569458767321952503253657649968889794740306574745002689838106099619516764312159354053843119316140553452761770844380991048289839571917750470267873731718292647140539386195912915961985383098366909552627029125937432504760489608033185064439236698279479881135147076080548741500092056575254735636038784015844708788979711759374704673358150768086877563451763791965653806475186187926828348340842581036006414226887931065255193827300777874505636985423591386784966673075284435607722910773296843283316188226724708725394081841901289043397095829330337846017435638743026321217427925562356163596558492550531050630757006994969617032401879761760343282620531421774983606211750475172712417027292294923626114561592309761224617967497866112270213942424943635663587329673747809827559015375862172186880815883148750571454593874486586889967982784932859043641790994744413893463768390196671690200810436991567091577701768349914329514459551328096747343000039694448900657667017734573554198182951240769116828365267390138710628074807313716500559610317817797217005705759321851974669078211740283523918915425886521677782542929067279788959112496002988148937741573399141028352871916751369855353269356472846848734541376879955946098797002205495099628650506562621081943545017163452205791147826184631852654521381911663448525763879956630017818730388583792955354509998554729958108672741732686515842829114960556587255569533869453804326927714159093785409129594613446440833556394874827147789543256447629139614900177543419493644663547826190531778806552326393896647571725945371408042656538506553611891476606564688967343968414563838855744736197521805960537074621211853196344649539138239841883935477587664758300349093559129329689279761066777848949195315428255349931825278941033553883695919199014168038842001503457088480137935618156663795693979550169249740246146798762135806504293216479050061576342260248249370359175777397416940556327266850293926119192586204916654046596559447678787158262165254468927855325941562340204756802322071039527873671508002471320102404135064546397484893850081043854276679810776680512328660771908622410817056839027034934973881740444367617143074877901188516255514313716093873577116084108192131515436436447262254825958847530551968456051320473522157983601131586447028448653614927241269844126917409744057671084188354602576831020752102532795075555866874422532217997693647936465991429147527802309308102258194545726206591636709033692310036776512997848945653796824651019662216173103361068702322571284953612379653456623333476654594642098160610622465648882188472664817682926549245629784578043800823751899056052624511580837434074583701148145171811364441156230689439384430021789935678410681678550339203726968481608764824451224769044484217357385758191920847817657147385947387652835108591509813462752038168989567755305663741867244886194078710126589296768613014983574124090797283468502836401219384299214983216400118762557561580333937435180058170547249807198004361014565602282347511676487919088744386834790007180276897730957078693974180461003108764673864264279057449718789768405296347238304637787124744542096548941893735585105061761112491594061089121195978596511164148995314993348714657834399321005318339468445633795343848383512784033554535695016211191262655616208662863914109847735045688266966056423258862092467359170264923025588372022654647914550492071676697668877048100226771212498942165933979818656912742893161473403991496140235479605275645877822662068448553203779826309218376387043873646880025262968708387487900909396517997361612229337428303605014543042038663615180341589998442686662190312586527613745953313684499297386312763715475066775097358168097670513582485235014924569700162209576524088885423462016359509579117073593056958296036456326420989101511088795293758273760686303996971100598639509608742398375411623051451418348823435045529977024676007621236328550195791171473986308448987611866723914315903490764240403740973496880436732384938326618054585824530431713312854811933948059386048964529939650626233422687962813559154235761444456699170087494031308823690941540383776093712287527177911300175202711756320238299359569921214138235251225047535651632808692330934504404098518586692382588879169568359661640500403031335083593246084217851348532313929848347017523996253624106581872902310138349905168815088379520461438770481745567083926740495918707678682423361869632010120202076036708066090604735407852101257688019985347756916218469099158215177641535580944029614262630736431007348157598370953332527418895776938747366954050382563841401294037801752358586811060613458746096544854628293924337983673541295343049553858548549910475297393069716201544475974292125224765487803440194885743561571143959419617363898022591507135568998001343294795378345719867690985272878617018653697971514582300331152714738847789549536488086961286484745766463239588880709376766341541421596683330388856023477852501748000673758424435891254343713307563552161208249548021499753919903309940444432731392553912936574841390651561982863128487361894846837694832255976831718501388214877151095657139149030961221309964211875093646187439254381220078958061645659674350095351008434328237390573262031313824060186692152061962924241698092035191144650308190865666907266939845682825296907907822758764622416296003968321741131144798065657829214728130279840802149412390704975524466951784853973729425952153412228351408144675130805606754341313904289962000312356848462968576510098068558042565007753767251275042502365919952552656184015188668432412791914572693636742931925932808099177277303262109765186874600483111788175729011668836394918393154967200102740704922814388933742109234825886819210187232273527829862034078530999221992456547680195579182515366841707277012618857596368533445146372913706993979649705506314291398508511204488462264365815250069309416812245880927518616484630091904741245249284294145507774861930411058452697067693019492545345376577998348720745820715519076294038896970122133935572689506529078020875547102036402829543224432100269032793322230880840922643830826499733769531016988201440568698387826877990058218345229074880278702458296799414953890226760176034199280520025834254290015355887629016307759624537320245297450030149166814513678597396230208541580764195104099378976811993703760004597951184103060283346813821935076112886779475195766150157060352855000783690956336006707695662489460229027556632797903752966429389342455369812684441770343801261115915239144538566692298791149246305898592142131484631084779079431905123833378910797399935622271256236502414488205257960615646390320590534154115569355364796970138521932429833877197266395152009149082469397853565760331302634420946253734174381184949734093253174302610992389463693768377623093467846365245126108276839700875075446784783272496676931465078388856456054336441631355828477660897422232433900259177187366536925655745496116582448354320364485426475236738383448486465756967232741187271287953021096664167777707476831825829317502199473320214797127164152895965298407173950820865818238999438746683464669959690461410273205773583291183288116651034050057095095824353200443073356005567769344951550126512868980864802860189964735520642605991280612650141959052611290414416075930782896071053506107349829671668307205095755400483499127444087328128639697377273347129693942823144094925241396852409366198021761769818656549934230530825302087041577912917814334141866388621910864527829690134380144961219776229204246397864905166458317952954718957404072828182672142113263198128481777882327096336625341988895763853595908110393595806421218268322386263005156190412325699379276908989816645216777034471917652590615688682885545016889818640296303034882034917363705357723899644971453349915630582495128949953497547633992170534872703708766143822756192823966964939849116074474896195494928576250625303859367909335942033419212736526313782099132676460479467566216681079096763715697878696061505234789662669335451495400294232531150028358073565634476234396046445221258702127228465185473456207674269346822578612315094352345457427045208692007564439199411179812757316457275951913967112851867369397672046035344949321083675243651681696423045556840204356827736946656357110195489383376635255559568361604819802976241599116231957669981721520979742828130045278815170426390150206610841320000813599561590968548483274825232114709786062368619197245238585592829738951779120337288620729892897757587176415857229017684445277641645163432049550862554461695578080239332606118778183207673813445632652648198324107850948900016510856314676657753150119215404930993868488746766645740735778838117266410447362064872611302133994883151664536465557438607588926510024865981180680931511506830090178066834975797098466330729862483766691274930595296552878692021836372802259917687150044480724165406409229788980787526496663685292230120324541995200342253678025119642682556054087547457443959758015499754751679160413750191359823842164563025607285997426882836954598941973066288503897090714245092276724263080465372870564759030362589719055005249764686548609380943975571629417540136844792418570775629113798986960788253696986383108983275588024161958337609914878180973680968050455390235837825399789235761708266902491444782958092766149339404159437579351637222797388019298023294240362100581208504482369137594314614407000972825101971309000579735143408994706717760171137227936182269650384443335768470197157323820195745786692080308959586874138102707903586505675786049108406598621819348587464783587500328100590779068848226197345014111987324326043656729575662507431253222443515914868514617923562255506190103465324765671684721967469312162061254263910959808017301419911394449312504677087141693120181244052913886940395841526580491817304121096928281138590325234312154606160867953778529388121149392253778679346758667872505047980110489908860463921412597458963970852826469133904331890275944930093140817840342154108940363817557606161715216893876709343463824722338130346460767022361413565161043177035655466773174440423547902134032639242158502896724240006157306497478799150092061681309331635841017320552071116489030519118403043156348528609859208848725224076045961250680681321898726656952795956669161966688691857339084750525769221980516641831189510372661184689489795087327019279940218667362795990243840237989539990437704781839871928681119712408680718717196680427387464611674070095606490247036152634505314804325969889405449355729597959163038624368467258870940889795914116407692312423366549300567635800203017843586608342259801682239645323765390541588717811673456381169246567117095143324281458207184949894065391964916980579412774856684944652748915253967377771005598507869277948151834492430214601736479206231043461834826671832727695523270858145553158853509528132237404787649986372375667420164037399238751105333386296742149689753288015133975066994159271980948773600590607595256838057919012147909406542513298475904413898755865276076171255906123743196807025867604667370549622592291582717403823778060675516960392552457391762615377245079513897781723500434080560491649680935158991364495220417161517152276884780945172688435194026097076903724512018921234075805745219893075642224052304550588790768930581680925953797824543524918563128071602618672770133713422386150483719609832491453426311604827469461639666519937049155163832944755165305303949730062241231240891802800833047609903764732650179552101129109447059062483227609229185316840133266241824788083343260260722871011806720219527455013020108997013171489097812013753893867240516186791522284132166159519600105600158041294199783455140566954353380896388185499530958374160994102130167388522261625623317120020363128851655675106299178169219041276350271752482824422079915854786729117306558528839329670493235301630574706967535954208338944944257312809712955452845905916121787691402234759430572601729992235148240584652352754767615721422457380145849348262233522509238659638359136733943221469260307898903114169901099060670300518933761122175972447589568849533731576757346188393889539813747952159780201259620358033641298835828195932084203985249762905819860552219868344510483449502165896214255808540474277616654955832862798044386909304802157373462954491721624116938500093067438589606166085587584251498139112451150379794903059359479301638170678832230901455506443377867626248121515941525885235941818775006034966779614942030277539087692898292250540315259891386178101501686604233304759956480300255621483038656563741721180035274321058414698587425086808462488369740811751901907529612590134200254643124672123799293853344412345213604911322239653729412461321672907171766477882104133272627091649820760693345055388738948761547219996823481724475969371502825316093650715766411751751917888754202542101405252314070314516615625840293730549355362531712894450613217356357665732274169138272699532905690804570036781395664231850786282666969898756347119317967821383806471979034314255580265830232067507959962600035615897717371642683356136699278150863488412253036010703461959433266382351494952421650060701899170367300186224155024789439501430022021622857316026269271092099988107511117616709177276991569769279945508211588664055198109570083294858526068354326280143951304117108963032393899811294683100713410361374154851134271461426573724605662536895718239221694840147604853458134194567912886961214605817439577479309544120619458974988990779501364594736624532813367908541357181906531918219053387968889229244659109536064272502880436882347636181479722484351597588585423718971831802113446786052523578043360282532209044872669638087257503627959236367479843588848905960649396860747674260998416208432988377093779498220914472798690338958213697808457815926309078759398128998969692534581023533017418017205319553646416121276548850976728740273702607865925557196518406769888601456341139269071008114683913577374924913234154516133390085776981665123312521758345002276373671456488378092032354622892144460356418463353807130756302595813712639319243908293659048582776299329073786770055304291518124886570912124318046650694136698908413921027938060102488217916832876516773155752056275623331531425260413626665926435041100990226944359627793881811836444990701492282324580642033063510138842021548319981739744260391818955578427216343844635686844524250029489530857325839574486854932264776154245042850274514910468147049983759414411278680980327766157196942269313357461620805499354886403689014039519072528460572380166750373458543968878605435113275602426396621652659282534787900824150627589184946963519694654365940479391617625553735694087974264300775799142505065445267700119760574821780466304709528385712922371745763929873459498028748436654823753128133885539150844576976774561233647118100555660458993273227743802607116004305842717379757407091031111953742576053952886744392832118831820509308688093550111486545600860257715101587143781672871654801762515589289894932527686195462161924988484111082924081614597712249622785461814831899054498193764975981318996160631130605820310431246598899729930024070002743539901523996941986189980800592402914709710817924011964979228827868762321332629742800406421470699656217385950585967484015454749007420603862299219705208534585353367581922793105425282829277526230694879849475359193677624190578664816289245895752805933573378068890445925417217797130909055637688227984903703964757549563350890727310779966893694083651910715204608364294856649405443086688668393558317157904900017955272914151563090827313811599269296039767592889542130920732880058006470624783823372651436890188950725850704213261617130609130123032884470654774673767799103479955668093605534849267077165245103411671524259452870999956294740974700945413248988247764848455720192131321994130756100837571635158055881358533273804720917218828013122255202688740213829870845677279660475986226113642550920450126264737883374330005985084497866714629033483379468948801456213999356749113743703902346236009230460092876176158317635766874820774538865242531319187057367400111478405190868409479407066256606597451256258702920587804176466604983998209570221651061845635470888563264700699079702061210954495491567660332855431266955119397371874976180579263930963791219960992289008037840595405524297156887670394785889534584220318695907955946211290402983342153939949276447757973851935244838848747358205067344193907048819523899561787317985535153482859013718417152953289300835827194316743973722570094582497398545197699221651035362152759529851211529780053113377672653735731419991601885892837711380436862624414417289770027386947872727263372138718367743958082114538708654064203098411757941262209991518335579890305897823609889982602201380086935216261320839109378808488356180952154662628396174105292002439189428970202334606945883845960398761797741901088747800119064831397358199410918819728370141868043938974756168649160871993655343557509666938901332385660392843056440951618444979339286914846003576968381575963116962568130699569085144801930168574781461045023517885934693013921313261730200659388412356899966839844171099555777751663890532265457346593891897073388128845997833515349042859329306531514765653570752345128887951594939725635256535042037965044685729459327158159237021596539292115912267900845717067565806971079960591781655685992803325886343784098560538417428083379984835237447571164154929175784966057091848070645685028644633723749390984976184315037215409515820798894547494646386831375416887028729949298784194420302684287595987035986103992282948150402751267065800791268597240995026684596526612938411845482390432283030527005768543663118788735405381187402657796879077031039588431195730092669705700336905763199377099963823284851598290785751626070960117940816345308593117553434373681617011243203183720039330149562558539343396986245710505152413212027304359320723194875709451505888033409993797686285420273899159170916063002739202606317487110114017885620799770956613810762894993185303379781083659996198284475533162516129594371057430309630097192907221793481087583577822475274677607623115887633007637912973033221367008533300983722634385290521832626354546436670483144208500815000086833058346782488666584627664585926486694410074873459895118520388574679184230566709842458849956664437921848556223885834998484428534357070710786399007413954429455419662904006333293488767782447645845581417366690192868393952387365760535475396621764765900546469156554463533669240973900372677213676023707580644319671041252489332986946092051614022821029763294253957944228753533536462465000199888260431805246278575434068780333359232825178910060075802248021176388454498393257644832780324331701553519150864911406287957262800807233937310130982597209053797984638799484807611116007136808139746540956519316981749631088743823103054106763862363187351489680100827795182917259501577670214626464196920291807729614061198173570104775462398709040836680882752562417394994039558846897132964493990451936462062141788853836846481474542367029361477699812517969172883317150941236212572964948567384865970211763878817779644255415284817925705543450909709935121051844498856588689173599647576893377259543412453768881400818375738219553740994477156062489310258443887775621886360256570795020125845491773661157657120894997325238045658898625212586374719018267352980923869438722961941389021048809081475000430666301709646332973492319063280067418024026991781997232403832837383463400541098100832600546721718330692816306831785066019512334860040451067182395677421754482919194504272270117377709234627160620497028791087264671127286360007303592736770229448502481101127922703321557636688712925235391677853404945573712033998834396875395440006856250181462653274804829991812447694810924978404473444958991636319222993981975095605251058948570673456086386205693723373811157106541416070293285457308757210522706613091331622943169588606260439605170531683471032054219309050369266816457677519274278029508976092166285035854108265781338641079590177664032311151138515295068511151748109188924385980544572539334685612565508082793104555350063406383823600698000713689848016013565301331414911874715412474563714505932820033561854034630457732465217407211090154875784177751313121073569305831370173443681643710802858244728437607552022518564249581142906163132962549045577926469199489233936693215674316361841400538839167274957789321089477435898057084198115281238158277954469331545348950816498848986247215948441082690644446752907916070118934523264179313482901464920628564106753762797386004317620212647047276445341529331096715504084446560590081268061306460968905974146119731286013774504828146961969833308155809052315489770808602887963431010874194172279723122594731684131628609878703682387882526128985960516036718649921790717701801349681937901488527690208101844190634374421555192164624924814298559897988480355572678546769389556911716311025241052426142138448162486517768725483615996029034014115178147989473599669844976799903928854888604187921322459740913678098214908395556795910165313463686256231851744555474033101654984794267748503939808672367323046769450696061644722593238174243585709467465050920865677994292703199235329992096496361798061151226764838249453231245315664577200201754908322893786746930227570370052312647925416943310871161893482578555865110707002410365730438983735008884241728919364038615598204150150688779312694596854349372065750637842209630471084811913186418611933215772990166715160366982942968336441695944438100868451769964361471736926617749595338596442729945229296481600318991391441278780876656016913020776612251060052246909200007293562670067193353882529780644918006300094374654231156812119811482327563873038908040045162113927672935862055589640275865170954012903578552386882840690167850486986748049149500900884691606366550616569207963014624641801587373714059611912224450177650750669001143166276176616723190408753281905724467675738553046996457094235077668426883776897806180225267315958376274534227388310788061151251560559044462829510573927220469005400939814156020691310273844725792793069938953406032785860119432743110382303108434455660456609400429445781983132010536763904516390055310247370572112004755177293728927322170999978011581946532937466707869847656920450121187181626059178533659300146532619557348876188186673018935097736889483085671594435538654087182306314096833557256372745244079920008979531099249591955921102503993249516151236571019446010659894617430412851474611775908289420439308539792544829752481224170905171202594805132199882529373976709669847798607616113715984582045416535139821413082233784341267513704420222031265170409090695500041841882662452839267807624581524723451287761151889476118096806068047959724616729890644278052333178110011206333534982364094814662576510679817412865176028530397320549648137515402124506514466943581336723936523244040754662930732951612446083807999431095610974086709409697848204435769524945267278239979363443016639466396916551539889377269080798403097484390860222298042426439306259688601122841654644047242828109163586495189213707294849455390386244818799070191310986978151064599718395945341817427439531267301596430075320966425408094045885336209914165188173516909389346267258859334129089449094741332173171533910670169233708020049804164780186543769643084615262959673798951961149969879080361322356193644170291639521447820769847557009810187342181251018806606327895932456394473904441974539931868864596417148859792698784126105830350123973331976167457916672332715845206162518864712658808403143640091059035247306252448951354550324965323536535019127621959460273551012332424016516754580529088345802901780608661981263623647416245717144692868645923331736692162774015742113528270421377946654867971258307357721549363216153232171498132305321980395292970774270742299613103595436330515095321552529156513339171352750367963991488517218313611417196429291300317512863095495342999044859415859007673129371294816422493640794518507394067020605739455536822062342254241112419452863072943836558818351659291093236684544099055080722074719814353164742305309067457433738554102901487543386164562083973370553748054805085775117522107344934468243437193645554513082084941994122249848480751280943292216744676966642152128167229512998289616928499390753438553457041372356733620090422012677786221988282327003496510713282341171754418302847402851985633493638724572975994406708499503598380998234172732212815973616011864648305615824263322169619517565464514476453515773576217610280094784453186317236269843078937683089793859845987896712649156282197053039416935508953046306393510026812787331379451304640363513563028917558274244739723092398384421889009602338627364677456157606854028112859697006365801883999456326933831233575871357237550912349155400961855781482328095028854613964958861921856824508715223092233871648734353245156672589916182181894937348946931122300363350774598051603524311244993558204020399146838230362185482682405321070836035039551060714828945295123085180254599542017227391877907731325105717946123242601793016624364601897774110043636560092826960378285542865270270329027223149415093345857154083625419452993397581648475016305981214634843305334504861781604603008230554008258599150560199180119246983100636638145826574966693709872928196992271752779502405140292224137287618030395274056080801748963528194235198556601830825735868786945899692327224098907423702975759488166739099434435572323505612368876128407069922957761980982602302662615765279887961311728241248116127411459099996592131663280141670489947463944141844066570243502106511542961995095274799023710040245343476881157910813062813401556842886372337447349768975738395432146780460885519386778091748097274491110386133396790627130321985992535731933485521187284888436014112199210751469922493402939362808996226665161700920407256433435660549193383799425596620347483600940220978645384759885385173500313683252684329265206401008063854312918536575066849180072394161364718164781124150370014732106397568460443045478513542140274233987408641770637340158206184761446595104638709976715724051274816140175507523338548531932339162596151242194062002097077243835156932205151289316555304474888981009373641503137329689136893224910762511758468868373655818695730321833692990005939079419971539205298213708954512236531448851895492270769113828437528526706645969947082239200270627225027861941010780571084277890764151754189690720836707967108279219570421449401864450223339613569230054916701009737563575073102915401516546079617501404989782190588128279912960969653740102789269908033250210412721576787960272259991081025631268011216933960218414469502626101505554483021980623849203082953545379657015919956439085877260874043076900348237222836379429609487129101524258187740783081562277451135367594801307034761941161984292638754974971377620394373797410965244158333917796511646235702777268654219101752422543711623358665127302304181219247733438231366794904216777599223434276701998544423203183322921196573820919583735874432748416399391934838686363430448968295772876848128074808369306396158183432664751871097982962964617157640972763442851901203968200392089297545372452998916370742951790369783494004985650475023947367941976882320647609013872205702623537993498206122001517510202071743679280749136963068841210560114477414535158726944399537299750491336851632102307091169674730394238524883160650335386372182851879584594189935054451342815751544857246607985553706246162762857034674016622203974135589160148428336294966199390366121498575514161900232413723649082837857379610984603632045945427861150634615521279871568733036609017153850942174252844596096203184987798978801616392238824542528484873851259067762642523236638416980617059682819328419420440803109252803423212425549607319508786420096191867927178549787283142969064745111818486284336580860489784845132128170752392914887321510884692486799744588057072382871754290006836393813429519183784581643504066965985478476713714243066848028692016123658801881337494724791732002016800916042531681079163987185777828886743174138831297017215774189904211700670720989529702554718931129086711462871763107471036626854782308084232911203705609035753989019034027724747922524384596047371803441928682468314625522449976954769590146308983589214385813332109303820108433065746660664204375890130025353047852942190390374539208583607389219896514101950823840727240393326031523362507859768500350067238509285554912089629777165627124799460818508326323578386865875519496007032409657181695786955824092480210069778694323014811052521844259227678002470904238048040901091114428174495926933290266374786298321976827371829316460067324046752497456001941476952702787998785904051675245525826892517411804462911551258380665901507479853536074735195526438119787603797725138722948320529298689562511266049598738023629559964699088703975851204826941205606133176551797753922084713613883098611001578892971806442101026118705746084472284249866909509318468932611062137571675469214989740960809001463905707545934886270574504037497348655966473935897958603019441882361774141320001910845699251021926240913405917111811141315807225491698041735012452494362397302503985265478995284592365107783482696275445687089778978894054992696301896301568659308530960308987880465064270581174561921614909229156466859088542940932015987500590535057907512706556208382962798013897189923813113005707515209086394730442602741269520764699522558815468744619037069402546052798428904704859886322734380305754063735130483865306945604697256146833781303814083997188567815707502430393225541524635264384265279418859106137662667596937095738116954568855178152265043782722516233386196132942844121098243073589688896503158586264021449955233304559228689768410051580808325376506140840893864465121394265600190034647867712597900179895500283605605378030523975845997790907868954589780055791946369611816612841735697056194146219574812515963933865656864619159329102884492301289587202806433176030852312791014333246542791113221588836492703375266211415514385066524689954006147000471361554859868042698276942613190112817407627604764115890076528392735559318733078379638188982056642569773181649812452924808669929202017940528960698079496542685704249446516055757956978790141554514860736708786945394057707579851699400412424163172673395115374750010377244064846701784523889463128575858495983392695881029458178651541885377696396308518906542614035621852939297391433224543439735176035182959458236477418355656782716521552638923188812116661499096966262343754843712005051255656054728926601331776395957930585391999265511183881233930915038660086116394331789630967811740112273561628754514647825540681399292306242394084777724256599786143850114149040769796678986288182959857192035556197558825902396782800882880033798279963798094325216755422191998304092816059243168762196119592530651831605991872279266442608642320452067173897668074190497504469782148992029379654828853849463425797783443832572568287700247542402784705244842034713061583377607738486723401356835988642598681836880831724027119886859299748889065704701687298284337852058468756255887371318530409042607363601937318872752328705128775573766727359645053414743395904518420386532281655243789285261541308537348619548526084476362917407318989669066477886877146474490714982564415250735381535557453944460371361801493291969767952096552415778226176105098201993726998075717680725236215584197690115808928608764368348449402766940711651768558212262193390476383727699275555862197366915379546474199811262421270387090432057900414456712643270507442056078245643435048888108227209399099859318606664215364964039706925689440330056583305884591618661797276157718131956980550384298004763812107989037192436654745598620523164793732043911891380088098854633797963679061315523566888352454834533865049155847732609959017503958672608782067741544765285243397016688845309171686679047393720788145901978649353645051229947618555428727684184812992600513037488374667609596830967693237764825311681684251580832353623328086252479075143308074639439696923403534384930536701796663075825125898503178416088875349877126398917735685223130053576839902257850957186881659931423267765127491406731656179813378155335936184326574270048331282872795218413951415443258953987450371358576159547117679135707401261716701255894614201746873815890955681210448193745970528018029513322426340884343629454170997015938061519626300613631325172280437023282172792987925742565662155171345534727677010409291025113763738150883103276450756374011909301614805690621612984201276979735800876903166109547912711163371585575232710559272028949339511062786063188885001763374990148294399903984155530080154845439754421361980169458952079606226842374911041980895462527800979893240501226662224422103342496846138651126037302654593744618141276720365473852772044280884922236770735085337221039320742863511105817633997816900320349835897579895031267176770567541355175690220008766073198604794165706031376967969848916480720330894989185618279580251953396398735595726758853908856713773899013315221656789504940260134678757198004541012240845008986312730154704601750217656648669427992581497743486868070928445277387674827775907962375844954876559687156119159991030977339002951327228093277310337998499205143776292681131411132258121688483361061570785444648507802671151386247520060325051528272680068981570044497520633278039817861978764103448489927807857942716196011769065500038442445067795715588235466111875469336660309771550618526884839554490074855387455203129816209160168284523553138193976759664629633934900960558619924067586620437667467836450540097593454084798184891344651266027500466009924970729715122968763166529329318920100381589530443203092279772957867856089791041846634809893322877803660380719785509930917968947863602223663545113999899132626623582139261320843960556420543751079477410813725753116790093408313525533952321452259416863688002448239507141074538424601279822925612508978111013224658082670618561282990130598250727126138809694898172811710953334708925655718419991063470844509955349719108590018942538941127627474621448834309420145971804929564222551339061991246500235596939952758143792264511248654896317467555657836876339365778000803073722635681515938386780315886599118855131983553687795906921435718129170262466462997210528395113960733811568050755582259959240214597055965803887829179778260984717006399461049735418363901201514644834449433445053435970599094270443648549531337204139478876377098029904986868938128349730702241679279320838227292423035388217643860127852079403436900690265797548327017117875119876245000497403478432841116763007849209928311193705680331695967773439337254618969119403434272026568822704891914640478679150068629228305540053953718277843126354748263944012845821316548553942458146351854615986415456316204944578703237847951226186155516701557957822682444777769917497058996346128800437763298802746079500791485829491498262256857236308085221189230763340136474467508581119204147758701473287683411295392026468187590101813934090545007077433636091274127746131082323080539556783632453011929642752607629217760591471728701494921726570366915620444854885763124140911319926668503659580487533789473603465834139352724243029191329641586260985956345417683179755730251998502322742530782467203734065078593822364551563009369213335742731631911371086627877315854522991575545858349500912050832512080309476330163095821640834502773769567330656686907192558958598478098408522806959001020667167094060257441537145263422303269328547499133069047217191973184283025086770804803389311974956580552823628269661766811529157151636304596301651405080341126546332811120959692809060798571009706819467877317701077121822150408266118829304141728049436121571979387704977775396577513448637820986734000213440425675135096840840838948756871871697988733394554757442354374122153401581738767028486567493908308087465805667148509591490814058943407420681593573777168428455640161326605069337964093085165962736838062574641743110338899542691343237054627594925252215918000987690614736062779249806992850237916617322154528434122821347961128530370989941181410479204902363516425354790314856047810514676432022549210595656925552980688485956608420428732741458894165537105242177640653236450023487503391547731444706095517265454323038367867361723199173809088059304585619841709286837503795423571129985510867194142003843738940726047581506888216468228984136633476293831373300648417689683089283258284391880578923948887463123649820394798535475776998655328044088262581598491591325356478612948409983244610539967735203983191539165501005556496049209255097678307075150778192081066119284506258066527018946897478416432755980134961566334608142128333020111497381809943197095568627734811806991055198794609728336636116509760426270322174156246342477491025566042359514898627191824118489637575781049417652280150609639973257870692038920708060758642114060485912919306354541526808580822622804929656047307920490853612663835055548364879318028267984861119104796729215291622557346894605146045182000753718935577303099981826268904443379606074519734126729300256960772793666371296314962056607725893316131339467917314328868557113866052961968666867748588950707399446434949600217407230168511560506429755869464611258799838629299870563031106285069751853428872157377345780739092747902338894203042569269677336241767797480586965290249197701877222677706166819854997119706802841103180913956831003250128053105193887232176169261468708635219513747884115981693156911706494860204321471742318449044344195330831447159083889806254440803172123008985045235656210694281424754566940010137421656891823625269730264003349681436948182086626673394669690953668989366161244856689673816793823580585147554866976386216270380437982324859446247869139491676665579849435862267451364323227639074794233756912240537408416480601176834161572252885285595238017191411040517176500025980634081351709346004463203684834773286165153112307413348338811056832164674824375737920339542663850802474355944526754090459431682700551844828492946290815668879064741220246163401442641864025521766142643254137945276715440937341758418509303803944008810393031849591060907152728682475288325491990676455941873653856034594241877818067996725378530311761295167604145463815325874464637797343963947609138223773807213936451560062409389871182921476919526212351781100108420525893967683074523394411899712725178176114093461922299132749224409385538608432058213871743988801890226727740279757541728399200268917044978315249909891328522645422340409220516341522904151507283181629694412088370182955952931799910769353785197489110518987182373315524783773042348855777006525639498017595431411777462220160364108761714298507182188098608391037408152755201714492102501296558211056636245805365504168242042693785306619464946885204430232148550011509551521968117060958964161015433387700055719081398036467511004820052422786902852189475646206884593686882316493670119191166088903520872073658584738720373711862198594589693668191239019563907758061887836655301135853212591820074677749072069064661117395765460705897768788123785098034860427140195502409097162055721786862605896509364645540448804385530802225637828654196450734457752849503697149916733121640399196823774031407716236214275080124340018298898803111161282655433216435329010700551108606153744075881266923046249770159532222746716094952354690682784836891617140799963985898483910070864152929416809262479325149245492437064445506549659474270422260238077706401981842630018095262244592742484304231566599466496055121611249515784529067510549102366061559165938518277572977680246165560315483225400750653712124061645291674701294305111292766540391649207309139740749544758335923310037754598434154885603996376285042960831021311877224311036103572872213431897840631931661732581317633775821851534496967238732902980999633250694248884471079270907671886770285630248498042572495148726911049042388365571578008468626469721878652411918831403477706369507716461071976193367814821767954802371582957323034907442782421141656138571353160688590034308064521820842051306879350633037754657712193143120820611859013827400335860966365600997038113085212728368133358155560393797312547342800251797268947137249560952780342291016942748350474200337574747932027569647160875989447683849060016906181132972373577646123927524680888717645044963149409296451972989634465416107587160881908765238648095021563572197621761798235423690967446368865476628987984292963845125212586810962831877435569998618247970668474399476035511183334947482196850941352774919225199876956869348878483309309564722707281665956182929789814499782723879769742675012325232070544423948313848564676982045051973084346352196328933222021953435411438994337836550626586077682422863805247536552664604424603875769019624707778728111673957273655735381560667267808460110882343815855045030987723208886502719929651612337887990325299662820310767585230158994469813964274542410414354021599666621169102051886878106995423916699631765083520783772569293833851689602802142277649168004647468492605643491197483050969086018285142028888665495071856737687382771025887777956843087819997121225669479049282873949698242461665269503898641073060263614952840891841474256923750760152740790225536525297482072970802372438940947101214187153538696965370740470218476558583459839989224953256052428930710235494880119694897869498789485931402991479544015938961102291062519347370612836434891100829825361416014528947271140173500003535137783168346811492076505699015818311276183468502464559140421383252381616138038705382396536184001565150974927740027647139918171728110003032491885730226198222783984901774215763007200880794559546863556522238999122262689988429390766452847883204940336815031706664635954007126089125615775307038730061631580705641861912684577319487714643352758387216563972288042761328941576153859840353801136061892379090039988953294968703283863773802982218960300186419292714057941643941078349070899757217274505602449582699872196051860464150388752269609817362271001254659058037882519802174603689224999058328109715774919901726518128889198978309554117919232093030556713115144701813771710948361412012139818780063986498629126693429056037326783911564479229126523319045218267424096360739883615869200107235026096000990981578887552606278179743418362333210882667250824185732313920812251214789163778187960066127042145646694787263527802337853530340524064622661132208381175886743494802257341704669862558461130233729254045966888043318656746863494198486435940043535271770518082018292548081345172101753048457826144895897802853794196368199307453280346819259618583951537584907757522280732695441053756823176161783833955373652780085115803985502215041980321580093622508618196426367825193579494523136918042677174516522785575865929398134778553506000095840901834243382621168741886914105045065988965126463263364908940755260455306742235243782772510829417879370470730806838470661265008186499621481281691594859045804388283259766549174892246587988667106741994752319362937324486455148746075523254859390171242905439444766300760160400342949689413071205469204164530724338423792655389059226648771238105520826641856605671890385418524676827571349512111061756666073348398535716134168748228689462267755975842724500400728926956372277040556555776305977273700933456473572444207985311481640897698692496324829118483275176259883379469029561934685692555779272025506070095747739954458976372117993578124574891268104073184394278321919611324829702800503865218719990646995659304715132528083206042792849380109740317399964354180172260556967218661218828610168596038789936074473259266041782395761487474410171624998734391267138604444973113907455319593089956664464085244578388624280428293874719574337346397099202681230541764000933075537457728725046027239244425568503233546927194516701882537934615783843217814939637028463953424147543838966522661524333604629139185440526465421463920809619034819347687496424456607496805305629613303082072707635582606165036148399027864536956985189744944644696856908136131275640262844728163433598569216811431373216609946009524659149505693479951142404390632031040485419549600536677091109865101495668131716165799232908299798045922790768125636733604474779144762673339887081077779346798424880252876611267855755619669840963334712097824535466958979169103941344779029241305897226521792313417090629166166436194547483049024873301066279695173044308770719166380526495130173005634992487044646688747972806285581244382236176148966301678173778100122810877156516995126808620617258575143205926528007801207535100748975665393875259689808247874943064116217011168614155328648927855958173556991410245966006918980662472564484330470242267617904653187746032539801001707531936564025347394511604765338607702917244862555195101955568727685390220399421911862231094887603051732191723593682672870830520172890993407990777610448059802580618639556086401824653632320995738904543701122231022150145405189519427087343757478573612771413838184913043665058918886716621012163044349672249254676929109526367263562512426924487205941128624929948088633360070915397369803642231520770974036536551590977374387540099325614137316591422190871130943508652967207321262481871470031276695226528271621274649210120295887456515250260199148924000952027082543485831695030150218511818044281730001152715498055241740633736496034743785285251243451482097785395858247080891516858795489701862873587313640787835468134208112255908295266375959588312570529625997782472724984419084110760150699940273279553501815570679414788342915020859830422717431987337219943732332227420003885607874174150275275548666281680429782096153274254137435011502194020040900800723977401252653151789042909861618918411842929012545717630565226917087161842377135409163158521419138364918444574616518721195680156354132207266020381220137228713475847604052796701867424510689132443767843468987990316445822448729518827207174038179672672450662410439612583197338494205766424513414391049471673885360458416167161400573334074766445557748923296876755935501243120522886078060676916384705823456409691477771490368350798918685415270051089152075281756162929542772290274599383347538721002126384773130361988682029207764298282884788147731606829471419827705271883674582654958114771784476843876199875956496252848012171748574336280046398125971655324095581296228436564381973024780840959816153286903604271491019004553528829240444640847857850522650204325968299015735411958203723079737743378555473894650528434209082842792752083219418557925884751796474384844477021971790408159009666774009739625922737319680852667697403318864555446784539353744436366661041237655230904132914658975469138448500199114252556628166692928311770519058291817576214221668651998503068953753679836872543483190539251750658160438812788470506643599558879771433977715158493516730654938911934351463220042769061189950322463561197999714414821537622250061512912402745991977819613298668130202572328065593034994911096005225948650220613725954187995939422894921528128343827863497269997761061168157629771765591445008184040772059775991227785692008654505355307441350842768229159220718529642768664822458594848961320103856524471466790670743528674606029551372155679902030001019415420957578886362142440675032209810881526270583921419628177123316881378875140455251557889799938460640968809694953702641083500439140863245701700043328736039881960556979623650394199039046540091215045808747501537486425702542233178255312964725507418451261927311747824536578698681479277857997752626753200374838196039952255853522813068377173464070407542436505372081316845593111693440051884396702818946936623938049892402564651672940466634765968375502532468367359622130146323528669618797224734970432332142336905533706642834244739975100531624844967640865356603551414501770080279106847819942750069242595376875556482602189602055248796468591895619892405613949225565520582618549405710640143989502032640516693868909669009461145985672855992946510876575815335982579252675486679487097531352923985380861096643225739402920476994166711047880932215234126155971582103250941567827890870697985816336498415743065742383352935143753469802284805578707093964932250667317445105064948302614655247744947619057293659405652378439606363549817869579085167420751549855598995258048759197915399286994595413566158799188829848754245643328652801691665565862365703350598835742564453122120538394728507531011393035940619838518306679939164777135367067328389057814690031941119164860918112763390672857017839083836826587651558088197883286256200562918221570451222544724480556220715968029212265508004818572547449397347584582603228040039263278056645890961278217238033967006778159857809429248607787614052759446826883626662096555945987776222445660003743281329142043504820891735719752165102203442297539763491961779660868612435325506866790474834885048453640748579238981354674026211461967652974331457019147687616888844026103418060010567948966097950237947439524834355574304729055593019448408285257694877620108078246472243007493999233557270234500380653884587234814024812107834527365528603660402288063397422886866623188485588030496832185958933415844049468834091446431797714721637505447799793874980029731918756878821757414843175957882661670241392193247960512802926417626145582765193978790239896042374856722503319778349103858082033310543507661701282156271787180491520760324228531592423530980285011415208576048674652981519551236772095180067973726672198458381033628651734666906485373233676846049278500605567452973610361099156839732402794900495652081312997572417999905957077980778781478046557491538223889291057121347797207800297388617463567896551136631013014356854715729886704643786219594270624653603378316395188725938654517869080151033163832924428581935602542829387097765032524335312655065132689650430795308501231137855643619565142401949400696768114477891555832750859102379860606333829775007164908682096704417316949965769280930582537687947745389028645592126597094930683763770955669458270481839086969807016211685556487565381092405033837479303880231378098178323833123740956342822663416992762638455610295224485791281679722008731018070593015812343101407986624887760703249914363372179707669874288961435788493332235029285845596791412999006822492044063160332822967015153209567470309168816244538461712544723660689193094748625510312830856569781520992511196862387723072427228567443957917509822888857585844529066802392887011680567153978142814508381401192157456756213804612587313579972489400788549881281391704096736846222711894885379347299699734743243646201164964517511288488908074591995930116681876401075516614477907415841623186654614708353946293956030476757977719325826279414603057474497050766209009175290936150187780711873165206718834507510785520560998563066068735826541149488457279263164838322776136927758088877570558055864544699274308674054327744111914737602752906200008605639601265947896410473697880441789668637059203788688409710479319471966734480407602983610402615347555683124339359143226938366406966482782253495102706935788596067892416147008166298317166870936617890473657085659446565923865141068071420506299307709159472052980350812768640674309275746878620538359431464816390203731551923703767252425761030420203548562394652485043939713655678701669987177696863870270101495117512954683770831473728209546585017446664009109327910017822381659402711572245220625128531580552059176915823915438475866420355965303503189849406223553796122366118315493620579239056191215930534128444858408647601116938767761264248898275412917094262055426826771131219040964177967820579055557434740803824075314955598349091942639783700744375647998845597246079452205441892349146248539732380844806877282722243180848250524274978542851963910268198619750866044553183718898289897075525770569776099143247515319009280726188393522907866241721025742335450920391261102074610539798770461027653992480846511446414851415679487499249970090540077558487850512638674532726924041278673903669724954308129764328138237658032500152841390353205243920296968094619831704483535523149864494213773334315999798764619972303750539497357646865843969880935339188900109090729363559323641114691915610406038132713686674945484337606889854492274094157010373851627125047864140196149946893703794297779848553076078297922844279814923797425707296486050074177857514085068787392169118225330273950873964847023452788104119514221517985758250115948873294189560113181978244709175560569282506463685001692608640720498559181107297709068374774831024431840737652430259677039349762988894023941946774188999832267848575165184835151566152249055142256938483710708809277533667783456530001291328815062260326325086186628336057537958630022745652115582013462355960651186614382463900572836926885004951292942840975893506563328653010423141121200579136138595131270362767063127356229135664877174397255162538519669288181447370015061288435474880021349718186430177688302491888745317159105080872078537512328914472746358281295164097457978086080534777322429227203941597641842757491164353952569766772310000912213433959248364487224287318410558792690971359105336582534954636897490416784015141102973745274799388693500581249896075848687594365696507500696411404410621995858146109615488368809699032744575378207411917247100277745931894883062760356029397909836066524881590555252856046401764338362593893954605247256679512982913025481771580544446866109382212332269046844036538747703630481985165823962492965570936635326701614319334031374018108341991647064008987645677194651007775021044840932810617907712842814831745828560739498314975627721703829043928711843934353091424876624163379113251020122276559389093274610397008814463093515124721477004911988176995072835615603597582409657564063633600219166180333369195869684147115753331447482501727976351820652885889512989058372593607659651547353162128245769180105360668694244040115209759624348987940805636942796104659619396391572420212192698413927729161526277681395080305977135031021727525436025573631705859545239274877563392433872234453321646536482830776000250625493971957484212545463841543965006099474121269720252612472280061500163913458978248591248501850158944858465430074914782956681080629033200178584907728018934316774026950433553371380771270468007777614607570835604766626505543566415164455968774771233972201567481548777512641968820303577013149264422467920006820506337588110903688288009418178785628355914486666955694879540684605126124915191813018252258331718172855813512320037035372406433438329120841866782720244592130640386510585471242946518474795215937587115452438237193513440949019710664614565579516337316214708027257575841220385746027142964339602334567114902606309439188017565546299284498641642106688633071833982089664584838563786549784619164317045705240524755996730773699489354897348343125688662894441262509667441866015793308836327283202118759154732629089074849286649865124566589105862159570623652735174902756668761953714004384145006760055140544875052993655361413079512309034687272118189100077062189351977672628841158580860099604175377854644968423933086688108989026202058755477127790419213624447610845456267972814295743591858271313339078103999423799224782189686265021972566965527087366041331000177014451159757606787345151878185963285902097151019826786004612746290380560938662748479762256494424752205902787720837117979254331172582244873203230881871416921497217792952200094057694705034784839712433310007130191540453201084072035113168637900768366201044651901262738091124072066358609278742436984431125084137321240059595006250882635435524047520747476755279083679119672529020739149872557663702414067164918000374825901989216884176147610083862596206034366469452194904079255356663578105132433544858823753801578464318881115015878946892423080422960968153106367087853394277293418999225510357584070428108912206857162168614803338783376793801271109959957247145281039383450044573205092424962122625077097634577190750729086836396926829155034413048234856000703718628582758242073231767184084614871669175053006228765564402611119733291454430154232638054773689875502632524473124850049294257768076787718987509180626510201225655318455758234696940328169942100298216791125920659287288475730957701937874500100467538846499668253002584697569159820295326809073367877527536433028878202435496937288468798196655687601565636546757449427886127004619514730583729788564961213837718519812065192279413468673032565348544586428975262117124598422782877505279742834171664495729157323338714286979792329902712302988178107059282912266139674098350127941253396614065035468082893244029915763032920345511401210293842438611270984995203687384145670736030545265623426217784511681300578005135069028392328728903110450180710400891353734094363191808376865479574943449631812971738022896906466534680480446370059376615278959818161735915412188541296797117698102570590628954896736296159394983532611677568251400305552820199693706292921652497584250223182524247707759335726290375439656547230851703972789858809394677267900334294971131264672702512916104009473659227808449767164400240204957449576133105075652173201348507318991795601753737734948310368889230932810762050666749743554633500950322727298220442108626812247337958528170900649260042380453511521970280440862901607639137672677728117789146012276550247909859571181051254258165479257297361227086456659829309384001790451503786391089606907551873558857022295602804096983322097387119457612158822913386244466962618628955258401665609139502706733539833698037195679578889484834185109630741977311109971591973000851464184904596892410338352544972678032155553046934920432132828925939519771592234335464226376231776108968931061031514131522047748209385526267562647736519627321946215883260993171414133682023056198225245766150812758302424535403727913653886968989085878316054531893849951621506006448620062904003827333071785001284437629348615085648918412789286394645816017153008033699878319139682256384521050594312699886956279660022110594942624702795632120362389658381840895209229450142133869118612998346309786343413662945883503324521956556186011935080935694911556479077868083071501136837616671629762286378401429003620802039325478185832429901378750087154676717934012028542720223410112649979510003168369020155768462625570081667948094796785094358945617952069753539988857680499043873804139258072590546607944067764111131325388508606142595595641846982285909706733505207133259033324963243981717043203901565927563361984844807580724070070651597914444696850887157943891319451355328317904972205479805052946637998623588310404184059447823157464082546568781775260369121395744534077891796955179359495897673672973222380801217276971233797772414532467107292358645336988965962549992313122347685688617518329966097588410676817789412615490223205723665439416290444522260449247287307286739161128436973368184883827703163972243106078146494645609135258626529777338316007421082776421591047862193363970678522008898718612340797025606528718407167257735957360594986367916110898459314399829008675339151294930139064947296592788532008974298127851865463891900189273581366129924317165534827674171604892818586869650595863314374184894383584827184278371938400598215710538622445975506466662756022604965694019585624305246357865228590020477845857328243695551630220354551890126372020141836698390469894543826343379970402605908288240732745021840038016011896441957360159376322378383814790693889555166397186541751787714120954662828142103465502819403643657744916314169512873533651282957026722095222671788684555720548103947174871251203263272727613685515209333896626158430135081532664482566569641290591643511855779486744093424485475374797973800075876051651921601740033709095386820452404779719777684152393752778258181490359639638493732067269877646126394471176345295491479573116090336620623358141889148298881633225451105068396212807575253382992662230537052282758239502727576746075714198543656743518785397182031440777860010059552340586127251925522037943170595735984512217852815816910202874004417486708501818581084650266198503425277710734510603770734651772405992012097191705059577451988098625101613924478986415012629605650282114492762192971211967073065306549920017395700002201130599967025054836016128753885418750355955699711196993239931900493652971809030576485034384712125984277213977696482557289763198037366629394628330521491489398134516066298675984199616193069433558127706693815524038928182876323370530757371313613181372287624646994709496128598315584662717687365885049323842433536062903295061085512702589634359004511569753208963706150707770018082480160583658918522930174342796103855203766702390443630367469936573313175958617871985365703264131242814705144550808866951343613720318778431023034039533093942762521195197246641863359609708752804076544306174767239764075778767387236472877423561659314925921138060199700570583721786647524064018603316229956186796169753092937656395476427111209623120930663502299320477590650987971704918605557415203002427671806077257739995010268361376961740991522812071818271468886214006250272818436085353461689082437865473537494406757509038969264886150369429385865406730799812032818533418006587225615413394632290763007878927283250747604581475143134790844447989225420068344463152159036849655715827876154285702895655539121547500596364115699263223776532630071395021003191466092129796204274066843494441378917757929099976167601390740315333050240846602608533890075074657638453221516537054997689089015454858471583592062411660287059652198395643390037747813047626046635051029996438649311310409723239236255238706444090050694855090568960497961439003427565142549872374333355916929393089612434985742975632693227761972179323816727167605563151205994252910570377558978647680689795354503329883767116134735748504187792252393936813849304158826505894004076381497232165890293774276066860751794251782336917999343752756826334036381602149595898909944840358448072041395107431172471378351534877943428575868687235630431204331392578238263617830148686378219520347895424601240213286773359658676502742850716792108801363488083234711315680383504125962911451157182811325902439429357826372720562059140265676484166984693423171614752304340476914988866983657502422418936638484052410993944782035405237252839884452311754934184789357032889008757155767981972635882203913031834013066868221731741597010893068546363760099960787587491567500104180655632268780192462753486367502082208543641939218011465103387467248540658772142613925838838472710896490805096081728504537831581314840604689453401109444678945697330677107063135333242775752174571679949118546206262904108147686851143996014648742899892856769459818435302999607115649788329598063117269429830966567144899928665896819182409530594238127823112692301126428881231122410282614834282552684978187001545986565011895389045906358980798447424755253127822677856454337652011899808785126997309410641063951752578923635071297246838139447015460932023543608486694385903374655561037692495991518093433918125334635577933262740184538423065168168269405837192740494224047456884496778412412864882342187281880164509145798275105916443818824265726136679340358000089594471253746629032255933476293702590371054050569327781736203292530045372251156916103904968814643670361573991205677350115721301133050609223718026333301484148436518759785276329137834086926945757012442096319330784053450992090361796560303168765984796760452999868127548804424766717716636580341424352635617261825757444571140453128543684769836570385853756445856867539620199270325260221777563761271285401629787323801231663232579161230215087625205007619578701825332031054416785337789464486498372917430235160984785560941726965654687179423693901680040978498686296959283103363300758066771112691741354986685677796840227819529240557038523903739249428460574120459644908587128151892497534033512872826715095138856740291200433889851846942862445683206530685133816987522354454885003804894377391452964682398848999948747134556878621706554094934041288521776611699471362830178193773093010070053907678144622057596167430088309368321243266829719333511304015951114713147800291518892546686093543326397818863303775580189053284816012781751078513382089544167032635116294907135394176642328479690299337200951757715370052431072524848871030119022682558179024929441706949070107014724127691608701528592524632770526583475241029976543079241434890344709366661278190696555201026885135214635871951265730885188015586300151552175896694397789369418384091247266675537442058374299212907485616258067735525594529096012183522688290533652248949581658017072018296404803219807592212283933157096652885173230062556687105785070587717039324850935604541606012193163328393533888270408058002973841143147317768106496700740591149705305227732781212401020802306531969063855494042390045109837127263166919985025798224655492893026954454695191034516488657137199661253209819195564017688771876226291766312589177393187960477113682720110414804414272881559757795440515984105163565195063021358292106814453966404987952260932828061635250621765335412750522525521918899585542266130215447654948418746675149042472606539630237531090941458540634695865168610286192645369886555062646596931841515901056536820628334282994581928746003745425922752933044654791923664812813556025771920667713243361200703959941761137997738471079937837361471440184107137571887906842195589091590621675580124398274769296168163926985183578099995380795702477352842843345738186081929091866653655752179286939868097564044145884840306857372668860530170319547723130747812692176688843138224429676810367887022814004639791701804399453934489353163103675555461578074526167180639538472643271810100566058086964052442725333919012551910454082015508381154858618924766994146903095752094822632193423154398654356056899759148361502338800300255963173323163731416863863324666402433322353047182574532966923260554402841354602000967415504501150782221869735609855293525119722511692608655747788334016321754234175657422975949889692107716348447137230770211433690781799965436130855839993458638021825154312522670850364847645448475378424119643217094230754054136219550275193907783372914939297843861621330002184476294613083192564714146706253715188804081686312810298509075786560772003367276095534437192423259061945069304497722370479511633273879004576365867139652577065288646846876024350815898444559537120230280509309175304527100092808673812838687194378535659456311117447610898745732619252594170029469453927760613894949093286615338387607612275189366621782342596292649309649675061487525505602412396481468357817493308689885214111951126124498280936123816825541091795125062159703474428269543353869651842956222602608981296051104218556133000530741844609287689119014540255315968863369097079452660211393072250492812123450928005739816839304138701192856907840639349525645303997033462409478009620950367327158126665917256864163405268913282522522668205222695440841375550982683333511701417865374343452681960260431101773508381016881067070960146672678041158925421462139374819422209523649001507671034401892222754246435651686331899640527808950297837396746477463905301628622275925355507760199632102593450804506897788609224646427368628277569419241483858367533343577221453933897405095106600604344197563369318889691020676022611482787621690136603501111905268181989256024162542329973542494753372808213023827747906050965567715723037349829015638602953214625773810920871437292288133168477764962059011052423600932589455207048863109006743403724958267948809508626245743095750280247532730570185886070687628044988222037948503195739866062825086074280962376037671246036045064170805817146847011585826212530899490822391806143916335611938659722018655885668746478640274723330606628639371128877710734659718733393091026605084890138073352593660719261728223568598779812827734649013819956264123851829854178556166115070055866783181304761796736725281721784954088304288063282341691089244340911763319233027800293657145445156764086094660056156999674522788044771019604280032522110287485133034360676758648651534562943415224052364226938256341281424830010950416070125009921003330443056530869664446929025156247867206153802708941844632995954278356465266043724987714530736863425068454099875453347960819993258460196534236931211197160203976661697370686775821653797564615782612510015604203035303649263785750557265583362738844990425318239928732454245315859457076343401911215780710418240587718123907217027298950443834149383524856154309396939031504383947308005860612004908119904764478979319210855432043809088438474987556490943856301182040271745190012068545790639212286650994954117895027977941896638531014305947585206873539113937008529611431253654758532159569515301257911449174453478255171506635269274230452127546244722324884973397130181195735768492466696176906400940475156552755897351592509413989529606705146964140026076372413738439653302883438769002925556701317902906582626434462348438465986690853145707187739678134229874912422662564143196951298440413904219759327932686137339470076087022676271497923883650229545070425463576767536186361893705915648286101912430516390337959593409583432330426091454036753173501761476105976565868337280459073070759213444233222913799262800691054899192912537474374671635859710469250461602221955962272985802002010817285312609851105173413805281705967350331418746704227950370999755681227886249215242262525894757680602696310240387170521298152240907425565463190716411393411082261082578266693257862645598941502601005682005950333516118190682777870400801915674175853406298898036916840680014591343310621788383142178138722675248032821863769226188082328841641921666791201767310000639121060454257092979905093168482148729089306208848844083391865673076762495572672025502377001842134266853715907964899940581406011842880947908279507896951862528623446297937477285426758843799420968956730336713407909130600241856679136660263716152682426357555651677922246058251497506983844529530869525001890483248246754648254547880863658285695622980600885394808132007345376780954609737602806981849527512533755233361135757157850997251505722110171074784992786173925328699116614027882344074306946460556796453799816955888632568510963070754633371267107116791117528203497693621078019440336903678312013352041500949539583769031864273229875820649703263368277138531915882523715917508120395915258697875705569795171884458850797732012691233008044566496591487384761596441419201089704341996545583136108109456029244374210112282473948037014641196862429692684932841465163278844232822841209832057525138688686347838257852958654663196172338468472985319776573327486600155469739661797537325215852174887979810764664739840403797839415736866064355721253696363927528910581482925094153324475831635034412504851309486360013823804547588186457777879063867670282926795203555837194136367286573235487937581939329204403891059167605481123093340892900725733463144601386980367477593157604645861846382420287571145765244754996830506332670108017661514206032503896384022556164173894481358230906425108531017811543400629241699413379232588713726391441878386177383033050620232912269667869840448798503899364360122648517362331798472663858153160522037812872180496412466140178993607587249160287111791363880644331668842780555712905446305785991860244961501374925192332842676669087430114826756866240573516048285615749334340410546014550548115285893561052124392312462274296839235554780996840419096094536817700371251797403481075774014057178016355176048214045451447535653522890434446229317322149780269719933765134256495292560008178560908768844396256921648902254709446352411496944880927108475512445333709019822601325314158531129331015746210356863455505425622914368324181875702384277553836117839793434876864191968900452141440146510039839828102998646231573118370562783999894164724028330515150239217567828190839971386978187799156632189656422532333075992211725057234610606300033956103245919779681660695368008216915414436622811854234237400105042549676423602685269377805089992811413632533179520688934146178806190447609355522523776695526617051216877185719403797560784035986131898109994228095309865995309226981706521582732249493541282129242108211757674651118299933686435381602661644546924647172733996092116250077332973674621669929268780892486375304154568794053794947858810315922164377219048479275582827951184928364021800391418307636073655627644888667663529985412153540757526231147949490371361927721723270189825146358844287518464942573050183865191327308956041307422212508532174366958193974521808076255045195466361323792820246485631855785817663715731829748893709574065180808151250985426439394241880401983668683126397527179124012727587935894239596676415641584310383005878969137107255962859666897661330250384308816592217781970617336758252855392714686988618310861017211597666161463506063065370429942206423107390344686188301182708361767747152021993638376566513911214551890760209478576758911147242002413056857305543070328467290374120338680712715311592417504495327488301660682988759549704103401838592024334588233153376391709293383827423083958067431063355259724999887780202660710080089222503284436570788056522505992161834986218417626152911341320365003893931782827742963180213517541217678602890252189762331952455767991728921005581314318424656341946127995581569496450871790956580023979359771364496231033602331068078570478578177654522387062321142036338747982597267310730705929537487297254022108765242107652334697028973674505550286383321234170170355898718448785245906344084065845907861300169805511736471975579459479690229995168618098835758760236359613268611758720180149634720935896406110020445997486870123613713819264395075104687333690160994126722684869990953202096437940495208296493076051477646868006965402512574702462161345447376659676164739275235761115892107263192987029895490934980001339304495980537293324552806277054663622484053492361295858453473329985810994913005044894000207153950421926560145819757399021430820701608531030497514497179114783773493742877067084771140249893318584421779216882796423596025016490928619175009839810765092121439060463063212566191344251612375404324792952725352372621296652900544212814098257817550661897780742542889578292063783226390243713039953815888479322778340531563882489532697924518695701961872579002931150847655744490166633838319744821442740003712958921551821225565340497068182769853277235119695201838062321232597011430459618777508133798794412229671091280842008537332675855218820401420127261475466307133155457913204689452572337584693274977363694465933035874844538987606052121159189356043771952582736330517124372964256811128937145901874066162449293139647945638495063292996819341389682518052262281722303677277213362100573566385277075489614309737225243385750876021068214163469853839326931250688876592904540212010443763217791822795638859144911982710260721582144369408920579529678660367201529801792133877724791909494153097879158599041824475322931540504997797783206909837987163299125098055782262525977882952238604056836671839146859093415598771054454349472124109087191951300098421710937931351011976846559808622633634105200143179950815915633161205034437782194492978317782001444048151846278363067981159916290054998031940114144196285749469930399815584271312531089829015568011601941241259101107688877426032563620668528660526972464651187819047088078595742409017354337101371335421230314263498901550793685622065833898545344323301775010318934942723256988655906693586962325096589046252506735782225152945229076775158525220551123012762233184989258997365561973744852949970092457049191008962020442288608648276831395512649394661653156029616234987225458878034899465606133210994450904166671765162970691299759735568417050888634953944957140839051389594891040459564732192442037288396962117280179232758982260702099824478428379769578158429013006363120523810223616097930216306546316209222406861648236752076990389364774123738518765047434194984135301917389867092393326335852764516210425407750348139893921206688474627084308735781519625720918872481265084241515638098285294921702138762731479546204659885194745852472457363355485497877021980642517292652230184425163554897176579530520906062784207753684256434295683785417294086635554325695702944667742620105229693806809232277127724275018168743912514423415045065396359275636994127702514901717632509819254915973306449659441385675472589786452445181128960934324390365187323614538790762797866509790309248097288316154345445250808702892032927941289088587573376056254861690786069269771449863229140437748217207575742636475607259703136251810316973069223411161843967975762945097792362745994307262705848584305594778628972584192914830766535673756449859627893708709996101428196661976281442505910849326226679035965308649050725713764478404483731872614347541543071623084722508892498061650184239702588903376335030190195494451449309352776056983044439294378016939368017061320417695841966338558866310608164040119946008803992147941301218326395724576779755896220102213318526743648907170075939651353126247920370623622468628479181310912384586458493374793266486052786137091994853577182464113940252783764016127257258916447050980698564656132677947016057503806106780964563302336174401662740171476577906323974154465673981699648894310928229013581579730127188398719677348058553008069717778695501356639364201800630707264277977916364247150055270413804633853180677176851824663116023734322176865414510143749277599127299422980053093765057382620709250314193660475032837936502936179565607924151234499710337720969706491233974623252256334406984393380467191733619224029017928642326955518035845710187110888641378998662734565678437209594031511092520247708914139777476600201874064915287924972375241666965078491186768104362980746224528338444761199239198835724334666847780649227951898757668123653432928174597124969737380281327954837457380576198024004210632244592943945130594269214620013309884074683820299763276429834658768432734513291207787632567404625932806127082288036213772057963389508494742156675350523280752546099557832757468731397056891523751275138404359089138161695462758589071008883804547347908111960742704659146501543533362742255087848623548783433213656794423416069259433014956935334393606052261215026355147140176773185292958592607001752468745712644466734470748995566874711881262656452237579449467545675689759206409519046686187678568402594049610565750093568644254539234255768121761342513729759902933243174608324418876247972967095948026310478842994777273261502493567487437040036608692400724766907782398905863628479945184725662264697593087323814767837305162839084074896976774862571119067297757620768565916972755511741460482523818232666941873187257948312887066341795983498356243510573304293923113413127181759586308469902704632949600585844606257774170129694224594344887646804941562284664037912253360333315225330820148077544830065762577200862573544421306082859500920989056891855734712721485092620338362482951057334535949776364568316714102891950200935771523757378589981656189959536907338277457701453013859457018205964898228445313165169231212976857673405627265447824618785308844622140066315246173682997185757213424813051871790265925480803327621706859147079020441552942204586602960646752639284490763773859902763596294019158703290984325163960354015019047191651164841349992034483610462452405473453638945223787086267241561692798229387661148190659760446397194933559783281977948823500236411972577904252811996290895035985157305602498490825205863595512566377987892655990969300770035295990908478167746141496901170167433322125719246194709256879029482117671065487504575442097492957295639843143392814917449606391305432663906997604230804328766434709352149217176120860869949227010262095272358441839904373495357056486338219532053011919877930652133479189770435970196521196154453076545237757697850555463993676768283283471720828995998362013830210529828406562512925817840401995112940304194737830904446206088007216648480823071125284307612315645709980232114529120671659623888428157742576896508777775649540932022449852180261762275130783478881328465508254276922636371544218423144532705412570753889435121636045433512203203041019748914398875864268599215583712716587188097164695644659874616189372628969105265819059016977988514487323956983095033444474416136220115577820692892900750722964715608281484493114300675080189066900808371078448279128095895983849629533812692005197888675839307440101782701061575994120908717017954743770100270911701264168809854973448634998066039539504545619681773809683352544233051992327638475295556815645172711384307572032834304449183502611469806307045758321287322787759928796771284507860071915597754979167823654470056148467147643607523759576193032631886366631511929843683442272932299331646686275088709459394924305672336774289580869904430184519543227160081155880891960234535580338845440946454752584577268251801410078913584330328411143454438533612808671510866477837375555066734502998058981583836897088520896221515690862869168107718289496251372576399595290083630212422060212470098086865336072481896485538224893226834364329477725736532035303409337561159311465465339496982900345722247451607649683300719763005019590662232517906875267813800490560840088592721754663336143246306615734714919125507406768165000603530645244615232236531375884123938456884775283855770757065996992988888827944752157335213138438105788503553277581734807937890376773927451803912703299996708673820890439792166452074027879989113200497826302938667987169916930722775577432629242267545863427121581352393342563601122146855210492756615546167141038937404040596487820041580061811621215843705137149086749575886706242029499483696518050817950971918017026557427142662843135335564182525467434721600873031929914477583275793949858602308474263900614723948884744403369540346458819006168848498315365977416366065064426610078608437635278443135684317946476013942734365206448400586414140977223685823269635846153168933554596729626631082777194095200380710950765288281709512350722686533079173269370772599170031729752690278977473921494337727798381493573706561204759391723775907304028046295230683116256963336693692791524560627839549633688529917642451046447505512361833140217861798631678541492530734016804517936098049050915883157471280000865765861994348272074487957126010584463113931997859530122986155612286404597670716709810087993156158452175924577709005643778436121774518583371469948726489091938511298454493673021036619622644857288590253441283222096489123139495203854565215454203881548019754712653711468531529910195402945973805850525861434014514825599237659054419810388112188294774677648945253994083127491879326013223930680842652399441217924856940045661546387173550211649229277586646116687702638985384477158126947320337453886734571365091218114268835094676295969500247152402908123963542755724195987065892418392905715382852375111726970220907749406075102527035835194164994787942969985555046181057177070062860293221407827576678748772829653477265926539969802984764815271946971679510337103863066001773040715277931027865713656808938808616185801117887073016988295847044543004168955791273398011306833262355763110870957188529391707980916252842726461611740211461625404849883300643198716232366937455903644856076313997284460202997173032272317062185513867942227560135818415142857091679880961813819489974280077291162302245625744010167299507038913620544398446920471511852687062671278539002593412241510296263028552869372627028977626058924903837966611177729940715229021864777711243165975271305586483579142810520962129502481075510687891843095084271091998132810926290395074158529891645028409390652564940258795561943692690268771310109315923912918483159494419514327552708210891598331071200541341681302931299615852326322629135703455096514640983076759491783123265598040893140544315988108873866808905166516991289408743865685584772495026226326294849573487066008758629706433971324022628950475761707655322564227514000611498406715972406272233332505520280076891156617793332126396326667672553902124088485143508177400326918025108413296366984965210770825984419949144248869038244236781669342695877307003347589286520069793269305808871038763033774563484668235128604326783821674304915320514509439526558417772471011128453146846462802846722056866466377679198029545427070640474364095918049589931700607211007650586852196031803480005629217567161495022584660888734862978667759195397093320956636121457772967139455573365099854800514455370767073353248567598604926234543326508733362745584873485917407074047126807613501518539754995635805647587492519395162270906529254292577562342016958575946651967684471669620500605387480457134369117610839015885651437207416563479115627724962163608899825063653669740507119766624424419707097162348396876512507888599161223300823742691174022661353077066667707063254958764109218367355999474573651483501214057334336583926954457560254442552437245258404552605772276559017764128001286948610472769376173140149902326421114700615145527378577830687713271280251866960566620922644394290899096697227760862714252045960756511350302703435120078130796569898053395448355711100647165691210958206125929678520201250979290346834292443277592062805945266475596019268237666587991209912499148544837666587250453152521000507455496988764849439746081985888831674275280898117345933557962628301399274546621920577993038588201142402706510557841322163704921008949589805388538189349626087373996320401063689796039186521165543377285047756530259600222848409489419077728121677692607504195508046127616588108793428458758869013039103683657198166950820193945526822486724409154760468190203641561446778654616006247346709859227596891651919418575750901850099023033697449915516169928832000816989807364640430525201338909560782376453188326420780300010813862234361309915124038202009230191503401613131333262489971272293561045597511072118035359069806014776141255449456748579336970537357722711440112428019003217401105326639699875263114507095459478206377910777283566039587817090384646773986968160827220530026332931776340349246451418247323276788631163072039720757820807951659852743662556930727280680403405302395011188143156888402612795870267047197343070394725528316621325877680432037881448950453188191460791560339721438237922108212623915978182173081456957776773193365117749851945972293277117343718024168989820271066018239542401710527487134282258815552190124559630997982042819452255754354756589427746906275017142139260489049891129852715792664944723285946032421570006735193849737250921857994615463102843457302867521708790235529891945823647895487675482348062996000386418273876594757122973720691274858878574325315100613738571709244724022732537041421948481545145811463265727209009273884818340314052741917956889901100108977314879886875609961602254094465131517592405734773475230267607182918916405447656227989919358536847889752458064780856513314127988389982034471597866193661299169107277171323820191566993445922984978684781888422569594629837269538772812017632253612558821104664127182258196737403524583622912594455360730067237039641412060545823604274726236221750052114959244687448773723802362959959367379743322221687675215376699985414456376306295453048634747768775397287706764408761633212789283417730122996266336587157287609667335816981043323267771400805266255855622167622703320254344955975778640797875394492682104670085456681826684175047349298229106273337229642504772126461244420403813936119393405146255624402216361286321561826980388512938047299358461142325972762445889712301291299297276725583133118013712067889305662833478528092357657827292409927355126863281442092172409103613710900367519685714992946589909949231881719949817368947224321787862151279864707783593884268279558373262563135612631257712012548327856352697067423791337104437627572504897685975182328964227209109379118221240364756355573229114102974904651860862163941249953059042897652834786970809810788797463345268486741320966830272119375784511822371294272261395625541796831185637745668331325687159528193335090016359047601278315240349894501986218331562428763924202480523462864877729990113187737372932157343235113720454395311274661249717690449897016977367072665554633773198922644712552141824425783268846164966072296432423296203427899865198712291758367875812917264262661001519455424501434374859263216240191535756888404081885099589444072117304593582983936573948958931054370282171023101212248638395451901446943927601271893450684076264206509964179580387640113767361876999835301853715643860810514865330945697360689995865247230513606590904329096101499014241316187630109429069933592609884021242856317131676602905436529508496898540084006592291606200764259842373385450511336255162469580292555311449076442286632258402339165725068570426208940622045263257541773838267216297795829221287690418246787141598777827075228344847094756404439329070756487755649709083481139353104369283441694477273082971225584046629196963043712395424078574531076034820443154789911882464933138313148498277951527194978266196751077711464393402830715865813594105792424540277450539937811795485421695989064870502638615277056436531001421633847061560807853195902845016526757642530569692138579492495355360153105837182718332321038213698007274116503164197033773125236938388249723554026605917785055977464712750038639587572546741839513597487881388417004850860378829071094511970921184402900058398508753425164616622263354993664069307248990103489113036540299488356476474049552447949930103099872759731693459231942951046012080233495211362193072644957982399589809295503639401735408277046241213853573726506916172628210680643173997816049865711982537581107754515231895541941641860784776705403707867053311231207434143508590359047088527574819409919996529552726231974044102810585398165126232270400977795440726304682733770039208388750689401297025742521290409183299256676967628777427170989302418235552467572202741888936110802563291828511541672108471650233947466609473255339016282664461288175965453162913255443589609309452357919820292844627511869547019663174676053237505045626379077380609666271888627125894690454346593042844534488881269805030169975258117617567734462654111921648426756759281297152984017415292989081033196963945680341365060197036390907030691541970299840822797451671332651181744723142253418239969162967776066290624976430772387781385908060221881434322667049418199671836333448380401024407097097901920114824067322023519326074023533785130573527732012083877598989625324419856208325994961971154086199186798682849835128386538550218885394269193840988296957997809503538511469083921107117859376009220934098229518461669791113304443243864644240791476526839371998551375710491867830611046488312220293612911720347615437959586199251780693053308154517794032070991123136807776631326282964056224301243604862852270421105795599620889675463450238313752419100403197509461735657490329645278032830857594941089707201677552549584787997110930027809352405599015443093527570051189401500375481190209019918121285288528093747220146259002459131345190706201241065623351773064552769305039868575900386740747169221828490938159018302345414651575237629230387273028542103948117737750837404299579032856437766137776739311499412716707030991412216431429137279791866811914994084013201295208606949354043435042147155007762203713712430915754857919031792238414860893003730457127014531120964076082183598027847655355739268456798510066302206913090990293393536751491541055995397357160397578324715403122141782624596189703513072404426572008459855792501886938118861655626059219381150116388369093552320873840179156435405198624133961524794851634708292045115256827048955541338868255293961561100187669447249432446296213951698849300442193846523921658803003989369346679476816071631538021670129145214976675745733126358942289701866130386230316352682197022456401954634568279434700836742698142356350182839655934585093790272072265205240895718977629621724591551135922436050762115745519122645527243529869218924737219020996488018328027531728932534223020908991106804529698998272790258191794770258059319911724732942064039349624564572962991206283544322551694690470282616573553706196910847786654767293832447313231509004076988722760679606023213061961894475775726573825846049352724782374205890374385580506771106711788688876218520010245818324101600994610062258010925784309792250027572795167109049579035776468227338286326649550357742073899915697845536991316351737661388943144598378219044011458919419372083617495384158270982377469037681350265442938367934697231815932593010713524843173922177886137172771822320970330107994749197479576801396050856247065911549149905697251941529160573751501887532780961683583441491153841904578106040359258678324058923899645257368580184996311487372604249300519929251292575192843773670824396968190113733052067623846792356529412809625915457137720759679156323439568171229159667862848236699243635861920066659720645060581552152138146084809047054152354883000133494945256491766645565336719112064168118515541644513830788560582233532037263843724653293486846573048256682160139846973740171082286653988176388355202381877525588751377213590108794779179745924802823243750950754347272877292823293472825334945462047193343990121622146571719511366185353470046756581496672911692102082912046149980803367386903533868980105783220038072401100415775326490877185377068832093738491326146556441800099149890883386775782827565222430587274220383158053417450248193405654702978402516699266729009978628961080264781605205318152138748199782361515220423884669638379186309428397512335232020075081424230625463066809861724181879976719456289187666086645174873500285027271536517657500721794011664972342441282211580494326341374000033706252981917634283890105216625955273963391993369081134054928411816248500169420934323766865033486669539827289851006483459571716803270255463458632763655063413650886599211614396831587250401351172517471517813734259181044835205984336121478721826137190564702686893173751516425132848784248771125840963271865729067636037087315491928504153810778169799550167175942315727915502163015093805123990455664064704954746734744526571296073937595614114304415149076479422752044326899673966321299015179904266330924148663276391883788761536299999791159871228986034776760437416147164326254249652092170490551670402863675188557547827814877653313143946036785158746816238187573234262491822163798797314041916614633707615478940169100311866775163665685806468268825969118635460199462337695820104925284781161984793247488059945981223878514124247324714205716195446923785046962165542015578495758579471265521637877850212180896650659773851370187602486684258636438115119747189935276664052205081936083011112138729758659141929711898705028719818150747987253937773459807917730602298696062769332038672752638022908543637177540904252783206312227808577529504602459559662764296052282389345667816076122472695762037082557564177781800726012736600094010230465398804265223201758397682431791199658372580496321883795100939908010231796828263784071621353902962876596622154491754386687484413399753451895030749838657569461299671629586337340008941603803540248899097722431104556052516419137660171370179168523487438504857731235157877683443809628632668625313286739363936114169354562826942868974450659702679209836848019110831883930835597172234121081108709840981197331333859549363686097686944840685492520482770655933599289921388441121365766015349417475378885142004046449304350544950088973184986665686265769692450730266011750471012587122136379532480529586173791667850870873584343082491257005975026789617505299891693608966307475681868406823488711432987336395219365467991913390294768648041502283997258360563033708795891527682380377896611617160855500149512448966315939310356891909930353770593627090574590080882884849189143718464173159620096191846955369027274357782763472754988477657796590104761189522817580417174351756780436807928036001538308562131025768173710699958145988278213222151090797033888288386493650465172785452165251234176210121162578171745035200415566325625446796993408702094812069043964070041215471568074981833671250636747594384580488330608250702320909953668295133694911109748696198343411141393084477067262518226353915438019837742043051436204511147279065527446122292264603084637057951621500861517532761124388972753541258227813538955227450789646957241942219672968146561716140644740934292403771415773468882750181526430212321892200225519068237427264367543669577276130035372992327080443302262727362104273094246475575600820861773768217852432841639270235842250716203066313485616471878524656620170642987806111182002257502059879774482568600271733404722250757525174320225759382951139049596645151698567440356061103949700043570315863054234178562929905264563284076410589801193315569927614317686518337622652516307096181037368868989786255925921426479642455792013397821882963085432240244677380575527443470182966317060554256650417878794631615225683029056353239531432291311918196347578304205649473357017367162666935531807327839004408367279450501803864663618933326234411852401985572930797857051625914179091345367136172024405469949165378378060284042584469111628103458828033655128548319664284451368384458300997941681490607676045858232451316249933905736399955287438493612034844130354672336486045425765895840502332991025726308457485054618790121181422389467988234753599678772452562279469516253572369835524980850311380152778650731853503720767882679320316026810982443296005761672898480092731986025799743539447743779229479819221124336844255616277972051381102330594644741127061857568089359764621051696185026436479306413400248096797102244942262314447854187452254499286887304062858381658811350812345994055330317705414812677245928698792069241960398891380821439482849063491967885993667275959994187500191298624592856480140805949269830405287253489767727376659112429687885553712150103843510611220761890517075730562444683192392627847491118891388124431476508752789462723410959309847278807065317839842994989582488583649561296272047140919321517758472852633665149312619281459845684061067501759952274735637154037393350408803426607645230710665497293193402797360086992830494198678304098807572111126209784899484740129779535511836182317704018109340413855564763328646430317383422791026597434725762095049755589333833226607581910557958357716066588405190660350947874199474617790851862809680357616049061676408095279600776986903440447421372364660420841562854284279224685799841485837837058928749502594155276594660747640893527682628244641008402710394067426505880506955941638605554137437164796666597962331532568129362566161146924827308898984165019393137374266750986114939955072424676448045628591317707958021160726243067485769613163611346967204990702759642063268557319927837572945170493085075671209202258603538259442540866909911660938236057890770799845926196222644109827531928407051197198086096005175056239213220460097712086925260910923956103470022389640220664091615148740269158344661544842861652642391359058518513859732576893196301855490107167698622315696972798033741724347463653151657743506495788263076437473443999266374827560551544190205213337416209573795389298204249805462703058011406576747589078741790889331115946747446840143486812213000118961637458577797970964495119834607774685931897874661121625470500695374446617693950322138196147930462704862373705796221650168012097349368885360720850309836827816399454701177192668394876433749948291748475398889047275737638969502495557702240023339777197127136579684100844919671007984115687609012362170594916909045787816360174982794957633916512608722225541134002815254734354222322249622063130411827089086622818249152818139156882505446670966128875920702982401283488171417145340734255694452143327454569269724148391306095806484641769092749376172875097843964482810524586500620327910767128923626486410116668701085545261601871797773569297188772580841044446988111884801063176588758058593554367493745365035694043701964185648958656644070553396741571271873345102448202888255751847115199749046034224809976049240442028637883447057806881947961999404551853611289830392052742911484651114508244922906612782131762483692395843965840940699408368966842728623459260346937682900196786760877755454438004923650042801138141145561928455742715711770983651233851880813120751641611506149746471611742911790632674146758125923186378597077131774399779228525922793286943138834180528565473610156769473219287686203876316798389036118734553488040484100101601280544212460169762870632420516556431858076567520237437544363248496700074903813093462303251274133670350667636482448947671369907310697884834145896652016839450176746414732888645522730235472554509499017964401809229141208133352224043449335649021978194877834152913194223486861066280655491888577263830905320315336971529907833678199242011564476620768606987408653879636704064451628442770161095156986541991506809030979719194396645026390156199380728929634871069679792631630583165545814792509402221624918231714642261130723710515577996734098763702364133073333717710992139844180187595062889724020200580886159862329764493645897540394092107881380367709774449739655879091975597688649851407055246020275428121553412597561471242909086071560908005999556443606501043794166483349379562757965970606016618589830816017902046264402290586762387282705378259012278243334194689842600649597770651869547690485473950052607401024460350235963393966534791631275102950434667926064048563854169472025006380304350561988658388622739422211960753093341259920718559885870472379053612695908965250169734699626123612459320040787300064118911896344529619712084027112628588109717826921336159105157366361353414717393778081473082093531381311152282048860104973107984296407648473559015125527022155449817523356816219832241475830790983537295625042189065870451411013758470196237086405426150299465023717030786409779777542668952687908575900460333079208682840741192395149434471791551501757142611667814640720732550849258379692005254589848147875650395724986337331796063871779266431911676216127301281138016061793929019867475117049434602720381150974779134486584804153859161168621546498512836051365058497045958935619938335811228421832823076067261325207820685922000273408150024579723118041117134641037809546471299498043133891361666579544013949634609257526704019920120616318358318615551762898240072557262037197342789195705877129250886087933932234539746809331433297875592345584515261235511532172525269850548178153585569541172978307735063737312256345610946500986842733496283149858339555548063800093344659537349783281751763766352721467311432228432980050744685167255056912999769048256156592446835875531968195592216763752182903012454117170655832660531922236250291725009124796859848170277456762368545078515001751975842691502581696413484805670675132825174224731639992577530856617008522777593646895334541917521222268996636952658110768862087927213096204104647151831022775832409622537955547107907009743719302063457691132586554887908803830742382254695746708214942197734679439998422969955447724709411345772345021787502432944979548690103409227573683153870415418429557002457102512576440511462442780000983822058093492850420855681924615279756759447161030171538091282969196680230228769554801516325471618899282761613995450851260658949755521019432499744554090247015616563919655173499342736680759239319472487246395441424797126999412228687061249654044259336190519365849067287579944652630055268472365963073369712021964370729327462028353054087724169731892970310274307388893831948382937447965345560382562353348183977743842624154316514406056041677752367017670597545452488572063416153090576624733705742811996849546665092415058913858329822882738386798525191595651613178491421750106251935372042114988287292033921589569473062280580871700469459449335161478251388279295832635908007952161112144235707716934175732549712356909626633554828169760959561685646235756430864822288106642024760087070586198392939337492108993190526132500529338734335146761225528325117330512413494338639598929586923462322460798675501595674971799924690883346452044028048632045096757023109322057892964036719051467043613369667737601185860591048365759405377326173867850616762559611707270523551813732216251273200514394768185960073505553228647022717762978800289843167062460870576128114363760611448867156257031805138643302328659952720057299269335602198934686753325656003915796076544645110628890137960242376517134384323003758517580393993376319463103405570641779821336139298514067294646911355880488505816757415075051081498121556826275187190367324039659286465857698960330905889379073784892274827691882105487215881122796242280932386354095795457537681658305158764290572776726518178053129391819910200383695259189165208592784784715495757114608655229763162228121486226020307972999379221039986369169060763812315843730666411873118002324342622205313601936862515939694269175791481462223133731226697022060953600774902655451981802698418800470840611950201688346463000595275387293138832872297089301886081021463962027886168692621362654708723990776339763303947980490362529318106199075786720699617707991046120652339924886064789347813283331843339044582598012854178483018813163566813933158836226141078268153307673371256752165117350122198750583670970717140399449067195756986115476563039984949462353854762735716902510328368834183610779271158122800378062638924807804521450186319037050644969292017076418275410496901367084505067601316676675774225030713629479392739985886234947781189904669066401251015121073564951088344447473025608930080245137690088269755189795639445388743167720067044411457423348961085818909408204527445186458640661167741645623925459839171774706003966915971710063805487046589036378069837333715901359674914888076846350854780599888537224134524051487901763306966010212214857010899317545169248457464906783988777654733820608977144414995475058554485120522281951743497551727356695807660644785345920622448756024377995590833302424493814940026348133682945466420907936639854997770566683062906904603173035341058089241169652157083958850103557961417656036886649107962576231782140962534253718730663419842402513715839681509899202883023299035910096255605467432433372313896134567622196749942526076239632461991764876829368863901596174399859283008584149883934511813887623076353982568385990175462178573437031376713986511955591708528040291343615204693606070258124791632873339502389681893615699735318343149019551110128911542799994679010044252681765081723261095403686655796049869388892673872697746576512277776241548152384183270085291189171549423924407301940629221724245658897702784256714088693155404179234266551527412997468186285004023492674262475879617864809788523865360338733742038124103856179733117791494625709391667848949357666919326284847807227816128589882405246865917031933875166782176143510013113695289686151526224654960628997980175590303388306550102668308205038243519448221901513692383970148970657996805197053926816898890498750616306064538574603428142971648427037167690782592071932615155723593890403339142718168649722213181041166272085292436259056941167207043557917883086868753355791847257928708603060422021567149489910587826338999573121120481218147489686360033472953592670438818526222037841717289838969565379549254500090808016357693610211807312924547790389300345566527726233712332014567140084826807894468126219638447247710392265100869562758831929946116372100052892866401111953599439612925447158358351443986156282833312763399546719447035219481799645505725953010432218799545885060161796246605888604982676900353498431765124571846751347474035436188673461708208128605025087098836509260012702603687863519205086558433314239882771415335184881080833266115050961464166450556545165104581127069922985869695641535532922269876009694961870998627139641010377408152305851380143570938131294211538756203480502549504811160405612937084056143156000668810171439249331002878510881114212708346627557440323229050062556492653284195535279916619450348012460704555243646321138986584629981435996902957404548063535836239118600062806745581635834671255525814822926954275705667374091999818377805866991202659857631606512614624952329184338760666928088384061628983801687427687840616303492831499546331080603351868324010923713673410373281223991415653270425361060658697309556251812911956042294527073075202746063011930405491881889194280041159427092551637535493060805680935316821549166907295485351890574820779503470150605129410923340902157447445780507016844925110219803135385159612401702304308929593270101720258371670177963274893639472124548486719050444791169991098469473808069621589981794912284081168065221652796367401730894898114625287169119839403063740843305948547483898073069731981226744550675064665217043619019517245161625678749268819433577614181658795889872611924580220584643968933083541019411329840187086296618533015493635575453629335368335332145633859037526565412716129988019600034491469020573579870099613864219490305622630396311594965642484154026484875592976554096146418497835998308067665891421073954021202861335815372260631126923338143700723056968415435373912428201516230146224775313912433375614234757342767513232593616305185062246153509065444379839177641350929458955706564270616553827437214249877611101479621278465117790413583834383868180275082267999888642950246250499051835591279774844223767456121683208056482612523835048305770937850127362545013324453003582981803335729209571425491397341415789889676952818376172229761920169930850379398102610820473428654427827788494753235698638687079236994017526331742883136349677151884660276327915836991041685898713481602824704687702335303855251126780891688930278959189750574415734422122663581751419619604836075612311151994068277690031338515680156271669450948653629561717255629212676249355653784220428110921478258515525233311366238838559869920595020894808871475145830703186444051120970643056060620505152957218627499497076975781710170406463827827968542835111433049244260644855981136534200470253881853080725832445905308755738329635347643602520923061711627899038419994967298919752627481386047538541430065977915618354400663589933641713716784960128546925293321095745599617157328284633694988868885398192773186819277582338141578039452894398646133595541314845189170956054615968965821219407205785149763245998197416574228240270725846781480861000200549495999685670063122244231898064281026685967324458703426590793821311474794594151690070684137739213160716189223512796544476321111333767683285099824438147914015648033816292632337831123014192463729487701312520697384629883519017248848370223704971363532731724892134912305020930891315248701606241844291060522856018438958589868034115817207528269468274776913675034214352728956527401296936142783472495543431938904230005069928394130836698479838962878139587426347143357922355256499660064241289571405171714430091791603274782971801503858775577258760795718502416890731710123974923165944859071102470403372497537512464652457069810729059713595345161886355669942170431281115459714985198424112728281686514748512942314560054004350062564470489419918220102624618156707297747167328258149726193056666222887797632612650984279123539688349758691622907698707453329666981187317393474366521293076656634617596263644249046796603634639922795753257856568248608798197556740130562899968021083590466015976231203140173318560780566519817331211328235769921610822939826467235899997763766372508414364310027415280221225331700939772523945360222477635857170155866773890177383654024049219439329939313735599415858976098313038401704924232979545478642503251786324898245220218847961335652049739733734088135990041079583044718342916565515146417061255094224196708562276651295422812312919979260714476906869495726218730425710432646137131156880474785239929440194137883259077472795130072288421457392564104529618027548451330670137866365487367769527830527814955978652611436659541025371517691762840382361023675871054994589301787749648578577719620738367549653610215246116835319514538032186702877905907465155460623334875009139788841746344019072706988356939684716932562666682546580289249223388009303816311816190296324770609040484594495247219584833789206014066917855224238155048149482067880338550004374595130448439290018131853027650005024007567961384881059020449744134573031105611950202828559107386356161905497899425193379121366929818611358726175893310554281509399126413908298353492690061804686111698998941349585686280730197989742419539365540636059180616135148122659961561055138847617997127887441091377070990551301628297357078059717469304402456715216120933498257523142765288725324798864656076853391128377131547151129363371783626124651638269357750076029969614198427286195157599954551163272362245171038183101548620949879319162962529625793522059349029363950872502801446813158119277828325290090729842634238673896379047846508346690338836829922712744741460820329887195329302337756964481980861680692885934940320427468672575818651733097499446491046193531613792079290665938430286958149720223291823537529597967279638335127440866399446162802986278300478476809870163882957721042888174756330642203734444192665187242777235550361286188416942202676551088342866724276710201330177503526070135769410647497301084487906136431650946270898929746599739120724643375953651899402551784078962009912592933739859653766712377272490343089278856573586695695159483182739345215163490541856467660881419350537841195927255621266935862308225546065203676175788145351540328373088834847082483972878591011590856371183191920492891385236772246433847060850995327754331751097943178774884597877664025312130183352987226725184185127645557811105400406863822907252862740666467285318360925940640389721522355588928933979710720116992899149179822482348036889895299384171692733712933725030003791768128908506849972923737965243078336507494943842974601417526011570826651367093296368740777672896509904289132114275804130858515137713228678232466242994055807558665643722026811905466002516316317738542175957885945587499109082312876796101921506320257447717623021094461578674993428687201130758569722215376187384530968467116766588142239835426628730967863686513247401223586189923365313707766382540054561438977350736685807844172646594401163607177885100608083334140229542244898121142629457421062509304860008181380970029371194279279815496687745997838687578301116115712816749179392373000107509827279136325176167315946867176498888451726465692984548303727385302344511206988868565062265903960971310913832540821413763715815936622640475718402268257987187302480875224982479312862298118297017326586114387357107928135363284685897012834165833611428119461431463825389654900051544135319212767446789656493884416610197547875830705780961612639149837767011928267467775342384932571735332978737301268144005869531136963615176478444970449624233147819192922730725456093568331318277568325790317951697945899110151414040389366326195491513474837657988341010154406817778922248378581428181888955595943089321596679353979641548707317800401057179446483877316288238962668016070710650265103449257753895210984668698732873580760492072890024483150254492617088097799467595386495461024357721194124630760900153270065545099217043685755542025740881654821966119267357624725609613789361308959953241528653799823410297781166731015613791705876510954564335454722356139349862165884113897081808873236286187869463536254778791553182046547397826487544526640143467395552940894225078305275477627597875099312564226724709195742285814922445768911793067926568815883030054143535097146047407970558352031292358563087752692592459470208322000547129017293435577138344324118346624280841941959508932460569697223515829487413452258648618622929517273513112235787023418839158620114769404401138709676610376087957787394290610238951152899696431925704750172608793116072956188960486658328866783213551199027647495372888177824663769620897882956180270091080613146528792348972481155106169356892509162277128459938752947487365464291690418073004263583303430529622592723925161661650374590406152547238121278797164606401133493612158421320975389887921894131827580449111300911999918993852324755022951730104129979722038911622999476620138028538844154886673861852634795174319229058803930206945517029977009187877485732252657355420583009836504502724157703145084868017485829972651255604272984449855750195770847831599042277763874672048529358747432147544448331530024469153000188473103600896929826785546145640836501043259783478171300122722967834412247963774434852894978003912051679790312425140146330833687861837188250984052479674582930230895652130235497722794489459185984025427757587515552653448115865866624191107273590225283406879524277131401930150067945741252749902343649756441501878393411943473062722242685858260961728403127246072145103919624287986481252029447085905371879986323783588219714846640907522376776446557969069728556387258970600992232667323886871370191845560450004175039656115133540552930102715439609946083682453070941921315162881925043020151748757049159060256293024868712897091127437731314264364094777157292838877541500402528181564023634090684069886827689686143472237756572180820962695515425427239807680227503760380897113840185002196035217741584029470192164027775009603815631976801083508753396394288589994791234331562795758597162728760800868024520589549498129034191170553208335833341185904153766627160550575023556791849625600286025731230263359481084379475004206574510882127277257306668504685939536343547251000464688023235236335372564383212749063393047044839812365165141993935566144621588188851332053312415671802423690986773254497108893090355934596323801019967805742395263620877727221874814500776770294529400394006264496491042376887596407877252666836849729066660082472143179829428444221536400432755993247068277306330776831243036710368705221401339703910253778648075264622827649026945394286357454353702851485804653784157008998176910355038669812543542384234799886061033342359056664340789475235089627293907247216658219931856229471475876762050896393112850574844136637223855217971294034849705933994063053061295498498611553110936936149949092976535524056110682911905505585928376984212019798431251580392554772188678001649945931146525900735773643447120068946623395854277054041451945528708986190009050607151949130050031080303855453334180147679520184152839873949991021524082093404085409862144664361803712889991279775953485108957345299121615782545410627240860182444566226740548985168097509113491002186015843990342065144688943508969388405254412666863292521687031006972591964515968381242152471328682360268987061191673289918159660967340213359313278557278915790137579825276542065698706036421134128643781927937599805993684967844575045593421015923265539278823555406038789927345463187747686426530837871662958143698835566772764007035192217897767285037170575823919476600870737125154458111376272989305343687514929365876958753383811742480646477499492625341221294538919946853326068352809804813838967319019903357722718411953241227985596199500471475622940556302771222726954745839614122783161115509647164660177560372754426307058347556830379645018598195475108681011265353861229333083891307285868815394285087103719830071265883814558404335450398348990358024902186670927346422066359536421192180891591200298651068677569707686122777709192885375303610411309656107832420397850647104071705093642944156091549211498162771661032235841396650726164083303248875328108166776617212343822518218521399632248046438068981638008551425332938118948750344365881956187906740020663355087053135296917697006014938498176510161161647956826042266389446124432327508722468007679192286863676469876465243551804358889122657925155716805855502069087178625878226113225761091509500447587893207748676757903612915585495511236604490429423487127907829951117179493688680689820962752412270127744169282469912968331891047648432817286430852431848638720296938249645017585685665293733378200935202138040020991794624673870653748325388221646043364800728910060072453768854269296330531077450090742438136084808809506010995723453955627136025146245750319093423599029983974342773180677522531721318249053199582026949685155910163475791550546087465519833209722267892855796146860391341363954890942026908766102595505687583272034969077790607093997066527260686214832374212930514401800008307028692464193223736511653639483145986629229757990784662062875949643387176339635996832124558094447499080959573893829500185994007729966914940682442494476614900869024894201943692573976262891999051434977123905898744400007656264841696305384958541877013185284530611007272027625735007645564449981282775124770471302034943973412695472202473696252080461700308074160679665836792166821217450325600073745211012520327497511277483585830142162652301934107072632973502761483383417619214239773590764201150290668345512852312468218610620018771424285600209847515310720084913831826672777571797142678337397574119485244575179629445606040465407780207885914529707279697512665318621991848634246502529477953062745875744343932646427718808922516689649457809694940657292352166942558192963025587556480382135394049536483439685755285485863836729106169995364627896572729838778836115230675072421335952823430854113391075170844607292363554444340584404075066879923158431246183924319596439662476443185151920444791046515352455004902248730361538386109286216025802903471485073772374090260940062628765982747539168701408673906093627415434483740336553807715980168655304836196033563985113369742534603668591351487277524431681237560361727434404682834339815419398228232184803901915909406775378028938636295142444394312767974334808680840948256979466606290993148156416314008262995184312098492598692175265368660004304512906550758354463184611028883899269406970956556021300817355294318022234907651842140172829425360898588132790110447232309069002565608367823331577752725002990758971664447803855997234677072929260945765274471228266843666402547024598302799602043540258869855539853884666669050758484624955036014486378398081031150291565331415572379711164777126049055619959557806852693042164930476021321118196707181278402713792866790791006164137528206143610599296279448821918235197076923743287512350737714009753993863121298073580085058252009923253262559337378753293586994800868361407734309835974090668175401629054464354006060434806547627721954931544545938703081170503660961782955033688995295431244936830509026553245677095186209099448264892183810896767202986267021720489092305433365832910477015825303552779807590497904911255504496020702280379451221946409646273901280799460707699027083720149621333831595957359499228302434424661758011132726557574515889801812732785943426405335293870371553883300325616442449034107411227383781614163128178197074643203388836844299617360017142439093991654070688387960180565836473484252826299929309422633810621632787266740108328070900273914235924641394604944245919418956427649425058417847909399599013530624826650320054351328520606912534592927702873351869574377246508358517737249829259991938638880980848056249965156071436659677211175886135205834279334070366216619567839487776323871486635444746678603934111044848944946664010510582986540430304803522718764687481473753146802795410783411710722767276242989254287230981996573477768891363459574596717824062666436791612147062398474947196844228263743629980267311993845529866064731128223778366613995062849294466930087661814921282359384158845556879182935472149226431258742406871899039091697079800944014542392944354831633520596890328973180746674794648414041783113495329099144938222888710838379822951534853964975491230147527670631588396491004493871980083052314749927558072802816937696281021393951617400711634072454385718442346827865312069635443304891968865953551498501571719954564649138504346269233068848508804715998363162564230079412163426406396816261392291540427309709219602642232653675053705553389033071586940819214379789634531218627652397010802658240234208415751196823643103947092859929032351819464116437118787127726449961524032638995368152380345294923306491265950512054160921326418261586845416804167884630935684723434807365353013312830492834890464822262962321695612881113414181577120910750628440529455467185216832475826142535508926137961372937272874726196300691750919832598373879455619109201086183556540729196529999761028338126686935159686080095173399364027554290975809152797966519159274553277024994017883158002781316317377891221583004645271276710483985552885147773451959470431478040207798140858483795887633973978103776468863195798046679204167920388856703161328563074918602555960598351965664908076785624649785876527368888945644893419034527352627654992413725569385430705880244393013180341556830513279488064750157075584637004964570558859066851440377537258284705688424716206608281371856412781106040625562740446629413657222739278709870618264103738420755337332162012630819702315516957741085709509536429138108129315705168258940515419722098342229225563928339774908260068689681858937713422380514834909957593532548793193829595757236122121477538993611099392416634807651841827679173255253506763282220791953251699354998912636349654231162160709985201565664392944763061596272889373445068098319541734222682677992976557027809292025891881220561734560877105766030122420070499752378741770890648814220814396382261586692441223342263792220244610679314626733079484133015657953221720336987446540859541823382775034703923611205528594795423684814227237652610754157570993334554446032187782721491461311082928238199079948216796391514911639257052856647057609852869425933882654148270906946186812410548800551069912894377770489051134480151332091127153373606531000315045147295741531939654843018285316179065932672865266938206841359457351349294654135367792638055828624958304052709094124566856603208516631233658416465106697886831028295248397944681652766980803847000230017329683478702377624798035388852097791289712835479702719490915088865874844493827520387877925543314626707353763844772647104986355777077531576980376813709372631201840626783058269803963326742372091238018115928780014265585398787450712262467746699561359002148177885387582745471123594222793049125193556587074589957833270625638690365706030615954241738404035882277505072557926650686000573618334254874770653682889599005873244465664556162486150273925271849323605715594167165569669228955918696857944719268166974357456307046433360573112950048141531230802969220184066348440833194816708538004526405824377385915247226904643429128298968922128445714014634433728151617730009047049772751773379913196134006246649514863626505851461925701480149317077322171796361592901935032929900700319953930889458736233336688817257903177005287232023520530122836464087183047190601736414256085417319024533064883676386096386811932519212965769347262538244240544971432866305176809096931713394450866783413034110986505138300855035892626095463515497940296484736992082182606596141171448547348553397065028138399475379577993408797227315623081222570061447135994428396336283321228404013601084207401792276639969310181620248119436103276022960719477592140678752004977198014738176345719928390803249788743701551026668483928689366955570634997915196358951901812236046690724766015566551412181542264031936370466799404310350650564355266288060177972878055141020415191970564611779077238326266686378362788891724115722236773519061707762625423331972877053677770910748622146871860987441500168958937960144409850994051903237674456614992876081412510289919148517954546287568255130547297482979807201231231517714667920770025779822768938258040617622762261465088090941084182951731585167966375039855171133999547695118708988221375263747603871671303742592082323142823696025207285356297423353222335376150165225226073094112238235345130033964345121282861284281607695517897889514380595280798936345506656509076340924812886260393898594585678470288817113252268656046540792722851511558349730154992131464766999378365910563028747536416297564991619988714290649167787187280497878283665693279272687370370016850517864206086658217770195551221595109058427264846531012523381934524994526423316411569732120614289398395357193092033359600618566147274603871149728585503217484172261942313971007438069469016547511833666025075293078914307807203955766091536509484082338643285885542067611303354049182078329765900512793000680233122347295512918456765670833551363711171700170069863640807951512249068892028728318063672216487620401722173602401618803389066183167595957284520655868757380798567401624898727170330290850329805889238306507733685800303718106645616189004362163205333085617644833710113022276447717596714914979584690945354037137683649387938272095669214358117354529411733229152826365875668972014563928733764149085043369584347064666346731983243599591074658422100594842465683167742139163012280151573622851601480090394307628114198675616174396231659816424984291034461663556773716450913179196127652572315488320472137009722356433423743350997297640168955451601158594093195047405503705794344053709170163131880030419173577092672865154019513180454035122746046815310420018212462127841073355467243041431603938263815256268688207464535682591039539892596129243699710604559835308141791886403335689204793467665242786461573672737755613007919864617379212980637503492291581977481297247342551821406148602245903769316726622253516081353593330055820797403705258479802469758872596200114487760595559127577913505607068911402697291057822275695525639871677012499895338068387592708662903037458473684167736029204011235688669380040152861915942762502680053271145641563032298183551208204838442643637353012835003396617779550578988807861822929668284859319828537599169352517395953601161291877435715063681769051655603144062196715986443772283637350574071539153702618796395599602373956676879496002909524704661673686078564826660254380344111567377433713449804328326828423268632097673582982874553103156301823565751026840835845593938968900962705505819252341730340553598020626733828186222564434838014546885267680444855911292226824776485255533150367043414316517797093039792845640798634007640489756632348164244296828668427978097451733290203055927012153292685946521400904465622948260929537441975269852291121027844946433904058270813623481449792114684936759578536514721101259594293277939136130462320505742287548213010434299995314456114874463518518291334233032119589871271446661926637530338452635623227742161397078567271362828067003996360630857578246558149485006080087647473144427452475855998494760596694079262073951503641717898473552009221051127930117597547775733562866912905043798776521263109948679740230474445438563641406226292544324479211464120475220672185306425494601358561194424593199094159232347087842686511778870525543122810596392761434932290971077266782842496951621054070142436679756066232372563233647121947896630786936839677837467486160821879889486852262632960046527281014569244209057082756857054004332535375770776987375060934074089515201609232986928728871154328528569884774423032398350403289133132987750640046494630384915250388579617206059830652162564703903155736850601825542569298703096435028522798746239025694670406162065301745137986828641704117837173144863008950938302787245394743731360830080830397638500997520023331856935682779574267942141405663321622077628067066405962293892722774401661443685287913466191676862350240061664476429020816850894481976237882030121420662512911461655098054186426109843996516138788580875988910915361843957486292486566832693451135813486171324272287084958234428487298646352668764918194112059629930617904284472211186992642736046553082271236844503284461496677027013561518011440740617389349355004201447552875169395941528290938505672352891922104159232120353739248855348544824199044091146846523765095246398368741092841589476618738400234851028307543947540503493649869120575560585497783973597510431778863027812340384600744720603577530391890325645870584370129077309676802835917404136076853195737657294878946520384815200632939695057587636507874291165738829178126443366047590979753936214857898528617990796562161160209200228207427528812610950309215753083394923604543824983342775901396204661288051243866852502552809477646328663739081857945047386123233747886775815438398659922236568162528136301151223180605721593643400010520317196915172587630002679920859209181031861765715995940683625783257012639205052326180642764796974947937686132084801930542298661046418316746230537330152907226251376062663485192522570362917760859139953797390751548359201941597706713533185228685493350737228449357040432248154309953930309713878699260791393140017614518628523214017531459311280771850087219853454773869057913974738995229775421934437122294254242142473987137650452961356923574701721040908434762417570732110677152916036707665385757593381345770515204178232670007297596527050809139266336010445991084546679701658827907930563076638602409360364907518969308764078259184056320724315113607195525103186900774796273396968739836824066964651010161328234895872312113487647732611898514815299022075251323922180170032025645444493329359471571512833086359569783228728756334529250535597813064109468346734088025031184445358811118949544498458760095842357605340711144886851827763220181611213410495413354586335127872541207688530493221574722054077445779989654554291980230414303226821091064176584254561905316287268632473898006295202936066105616388687868934213451574056736304734164818927096040252398557682384898599065577119089741628259515952297335339914381470456079184044334269209945966236881620534213145347423801781321653351843822406870424812231906142897600449341849990099461554212093311985228190374550607781777092051064114734544218103688018097414617626630860908756573957982839296588626548195974819779908857397560557407162284707710943504628493768386155612355463210277589827140649481730898132933538816201040317309432111134055390634190709865455840873516800882316636049701565073945508320436465185128158134480882742356166287961588183321121523879204908223584897487432989713868586839819656618142685038637156717080811644206713537976381006902486170546631244701895668938632017910353846759072481007193593865465758970412962954423844164444699217897514357504116825343658997674378676681709583839835848861115254081194030195017544352008559501184796219083113216624589883910671958103802978455661663947918681621240290389811854205782051204333642487827051596166517123195428489194235679657103816848537889669517174261020125030016644045453875643861042340404704889428179885718271705650244251339997231142287417354497140773511918470212576519890237813138950463244083383891555074519765705952952659566357970441915007096255123839891004584870911817075532842995981304938210419445251679855958516272080942630807149873675951661400937412439191654973122269038360501926880334167349929130639643242535465147199512802074407889694234153443710411020157933816003810435281930700355192985414035374706327069784138437024629482892128318989737527500496222928711165853447322759823321430619542056884414922724132868973260608741590409565821316832760046801558830175985844032095919298397224196634810438685852247979959181950275559255607526525881530032182565281323217002023447631955227854946382657822596883364415070129103686822539753718246967989928620496074764240745271172104508938317039135855270175595620716988636907717136564677773224651023411632813745894006658366148936930843623523823028329029165736212443466272698228438448636016580130553073656482675904588697553849039182981496612123594482681012600978457345924462899842568927625061294519242894422179732835701754591160443473693221008730868755682803074419657245849253501199930896781232370723308205786339698295325455405924110067617525059123905873922509539263520989203156475290806979955658484296319020236571221960941865343729598897727301713569745490214174710233903186383829723307069370234262015677656601366604613035233243813649881800187578326469254467167735059817560613856640708033526823908146390025374630849004886894714942907666717364235381188419375947611235681752530680618792652978291742772877538670838269776870435513781701939893446407037605028552677260426191980995281320013473022905278834759211282456587699983545364033803389771118521778246360011537138982543711218841970410472379658357416966655211373938678520588140038694949209181905209573681542122986440411745587372498897276026385025256965288827958489533393120285676204185724686436305281122542049778093601097740119221632243215073059102272182072739794318614953171038400324870934030627631182234790626966141657623801876138925088922551740997325444304438326604909787795030008673099730881649677692914247337818396256878085355648773515841758752146220402681563685101218320885116941041271422885068195652532851020757137767064677143237357766374762996321664805585945965739739953522746392920209243753073538271975910640513845502188415322787612482543712858731161079966912683021177986631142345039219047227815523263919090070693308773202834644449894926350345578577071696337124991242037418252459567626864672630851458120263478791684174385880922469731033286827917239622709652030135041380105855774356267792570255533267432418812574749629218019770399287278086472295018561306777262986347754795998448341171551053281053302945420961036090395069362142844693564238247187372597404744719073130767347837386655362432561146287255817000446803203900979589245913811043729144035446081775962508062625196308842876605804691261943458848135970657434397872199839112871809818856734479169059223155877048331468236493214618550532014625726781586641978089540501791359879110663415972440747242505666935355366540972605270004224936379074716427237993053239112367355275876157263057371644112424502715521688417501270247543334277009489673741131400798269216890472121030098896056398530328012073371861024090616226538127963867231264236213423254063889933574427899611699670798141499573855607446744652572595999968493673543463899460079800591407314225327801043094476407430864197170182957787255318523928798027698157926071402567452402792755052039358566994809408101287089575092973178796679115457730609197218268174139304935518301331688411545923282816234906618032264853243390036261134613386458503417930721095417921779744609630484080033091050242207037819104046963294490478555336982332478035352456888142058805005736714335424977554998207485383217281590654643724833992263647885953293870959817375912253267660059765962045059178883017689085753760536538551080292969466211856116308874688340526121125899616774046496377333069104773252761125513098631575993920583613567749326403253205739320452951541315857120032165745481066804716257205519903401780481030123418033352227378161221689479027729454427518734346240640880986121526405257546742331695820437454157141773876951276775374762660156046930503124522193865959666339848725044336784790968494979523760707766722956951592713333477200273902783331354309738687506142503437080980882949549490147938156834496681924219639041362514856308365085120333879508509917909743856209812701150158554014299277741551850576249254308475537553208562014599331606397477139028422455697069803846263965617829902508111695161920584918404554364882354227698563111882195593257414299958520398701504286577251856637402752315916303707431123122169429829031838741674403285522431870746661640208734682172469689714711076777044677706778955120410365154246136539368941935890916360752888236861298857725670746420893120334466363834345157364956975207570394771083982739632814794664713049193972787696984198827262534140152768455709509426737572783618582253310605534106889279667265988851615158570716597285193385645005817669556455036045601451469342311281699511439987571325394852519667497836940637599144238637927012089464836764766331531585293356975955562570750559830345339937354009505089151184324115313483799465243956566800727942189782414762518129335003374130039835736574343754465697307463078410375936540566923936099795306161374238640716043297936834335149509234056078429346061088312397600307336914425530815218540416407545770508840182055985772646892539167164485544065441339903783593719185646545436648376383112539980894517001864652214081410804731669156838637141374935357825063506161076836291797217358149759714229659370995104386590262178367921170263712696874435997134158885542961007855472778359084198783965143021561339474772877938991412003001811399169011897560080307893158978648887229674333492448119862691464032915644434246543343414810364837758768842087051697778907123108007227712509848328848367196343338020344926864721196902469782346617498711332895646981402508101113495864609099648989821521257118704968792572827801657230609472157847107969033998944077973032795108040663240294125187015529093706413480978504462957010918599870078880701293484734529445180351891473014693450920767664532063902437904093429459600475303547220823248505649180655266824512370556600408920909216737891691941008536405496571306422302240723854570878888575693447337768430475466767901981332632918406848400312168975326295169184222939053676039367415345311461595060052537854893570673589870833711778408454366898910701100083512948471986483172805079526129457818031944720452987537640572487687335501632295645230496365908137328374862764736674511490196595436379511778479425093859082725997213308269726317236608050388168532859348905411228840756757524311986365615106591289264861964631698738390840116265751454484458020339081418958819014869300758628541597883669022017046731184644508666105296682179391224962745563720813857479110267122191275609454186487360519119928472745007178386483205270690828820456506151551584415172803627322262403301232179260355136162525416219538828036519281338695300361528246295521874892580598051963000329922619973921268912336952522163459660333030793391456418581889689309595481941119819152994789683388482902766081297337302973219763878416735976670205817977867948131459752973948993306743892359644881951621366552977510773200529692940520386019912075801918050270865792515057321703272167501004795989551456825509749349050778715249036461450385916843586517360438938546345649592053240546101167319809563114213478298403958105241613692370243268269672789965157287175068232581747804400661757652702038971354540344784224326285629759613240924549520846170045224038994989273389888203292333430518845946171622005732360822967242692203756143953880471609282761512781825343293357621057291260196936845632063929412852353814741830959891839714683670082746050245154802917239316798900073279461625247940472664468564701033003792093491962988917455001451383038246048122046842164238650281178037318854940448552636088433488035188445436993230052834912865136273846950618090921945573153071372968732108397232442328128773846113092164425163397735768597904498934368427434493304199464427450644856458506468687151019433737453600328465453753007113205949793986809325323862573718203918122443834551121200867675637982722770474549415246579000264338899172187764737129881306023830606898169811045319942586501738787414063267172817739648813831301903739928007634559077646478788646956651381572802598296223566249071923026267102712598262216720130134906697837319379851220097055295710458810533328558373178970845988314426573980209040284605762137337946030830045977539421156203688277490229316933055864973184521802576309901770547373547364234905848763588826016128895564072748321056503583615575266481607116230202979570270795167521330112039569666295823813981783512167183790168633075989426213478926566977428663919669718920439355362747180219091073524884597500596794136239190843594787819657392560820151728623238804484586603261216073657424279565492953455832584817510836068277594583217660684209307801666521637957221992120364883828237634697336399584141692382637923710015623764015015404596258508297941768043933041968905380215182189216244689807250456738205389881854405742836270752363048388802830452666926061770044639025077897601903533111070349699238077931955984541636410484180335642817530952605899174099738198737492651194919051808604467846492591629481478835936302377991571655459910141773757561248034246789084241474333340756675265828709122275026893484597390710794886126462661386090224782204544868197613669585626859000380002022785549986530692755761077213983594863255899618995674639337916575233465369030510513921672457293318446108064322057954133892340732299976266695645242156758035328218175002178525835668075796577774985228403033365277627733873962631842020194085022168032837868798330415396446911806647883066797857043680755804450474526683244473118810575336507718819849085932967685687041070086831071323591024092008315154056508215422867654516237368919652668252914200924636034735121284299700634292946429100836274964002806518092245493797183010254092086964549105037112891577816177754459451402521174583925268324525317823924027494908396496066534596012204080328919709305117063922424345027292232529758949811586321242189143058393384135827085561464082496299304457364034185872349910137904604086580360377623345182133116896386791043576525695570806068676487677874419552185101616041376136959480295555754314387538395978368612674847493713771028241373686008104577036683008561115272552638818979107138756837616914771592950832099802992661164670043183517472364268670422547552666124610235575022499963568377323668677115549939116951766529932634972693082279973558118976158900930458194550474831383589605587127181782460428478368940540565653759813674185838698767798244261954119994334794047570191992911823477208572210210537193910775023524871673677706404822701084911178167668849679546958128039454923124357365399398288664037232081313288679032307608457688563416449684821461059558004191385957664635862461057905704202501642426322930132832702486649998999531778974129262003479188054253025411284676307130073529120824355587187366999470340527590195492995790969202189317727937963516154903261673299453595546037714503739528094379323365062704048285472471805230568836847373100727187276718966643580503541082078051988240268145596746775888319222312396193181776781733941568775068600798384085995463174768509793980969472027415448680989225508181606913011340757890301166627016273224112529715173915199744286206978904729279785828598537627957008655786194631470242574290762486628967424638648887555959006656289552137927020636862100009836105302231255605748595640091221858642731367162302037389069683868557389100955994522370585424623014841611167239101370792231406946269283980669081199577038001199032651002755439300608513872736425077907576889864410954674155938746826557790860481103884383538324141969455673263738294848931966593116668208659555728020079629981673002513743007664556457478708875762448893572354420188847590344774688839989032608361380431435274088804005250163310325428097437408464511452638815194538677767521978000542644254729632271154268422224950720095539711002152829071187718137357552782747351550328393619195592266244612657239692728208826340387791672519835052887724467808426334819602828933188795526380182261178766904597843860485482256426131568220554686079080401347595947767903304132096895152428683183093502828040333156898120822989999998621659070216218003988456580628050668004462501948772893481781216311104694702840416914105356355077123918314060467106965745667132713204551572093056557081842088239981332592683302283784903412806526502845759038055972077092824915959432036990109424733895526274350248994009496395127212416490411503718412910016121025329595935573175359651622049172560484732286627751695641419986236822434700384093757320185464866142888687819904688209581727520479669775969050384920858620318333996235993040414080940216681381158706173026688053310903018762587423845886711317959275485982143473565869432168267506401883879381810734361955585522433257870956329323328310902981160585251435805157065609530504768607237801285671144855313658404425015070908147756396917818323123083206961108688776954299894273130051337413201239000858724648374540843866953576202794899666524137172167276501890346373259431568641995129916047873222618700726992397124747224157443295077584689477384562824636267450746117425289569037308432116262840805680645066952730951825736307673403525953443960976235713486387658306042402486716991598886051118150277097861917254172940362192433523829357609493948380401023412755550741886862645809607347504721202576668123721618635503566739099113830883213880074099191477283842702918354843418787562612687385583173601289082202438442131031091895545317169665049333759680687587337937554276700768662514388908149591996929961866787398485182869129801683665739689309828588077113743035537528892367926090993478863197168573004448617497446762064081016333755459900730511615764044671843779235060477863900319739381001703599461859897473731914256827292061038806969627485141882503963953796963868573152485449952769438730271919028139424365290538998456401459115392214969810106757390759984972135389206468267837551374024057780818209197088624477112142629397286538766352860035319943604295369249509806191430949868730931902579030884554521823230354901645533169929828115129783816390604488839261955531663008460534095090249776838278135056835067267401108332021338055568678129834917539440834689123601560782463720688258919043987351809584810094012178940274779852365923717464978866587703294530342209848026842480156738215645472705786681062978090912394167613736271056329659386588798254405066250678768578657285171020950107248692468633963604307882365334768574105328861471569749677583338874527986747854028051037838297595431906080703622432204779557897042923086496668602155857158816682412082229588456837664746291479947106378703517437106475207787499876417666836176210690077525090210324920747459123439640385236737946736258188425969315791027059350221278158829491606432018364395692908098245771297683290857580354308022155298408116254720106318218937173908943413886271122720146710851576635377047269269098778235172561187608428173499590014864123293066149836800213372295294655066841657633540938206721759103410912978608818167131422081258102207439362500444580345833135835058180621800777341278547887399838110681525515427087975996580760571116814837513257022212149717192796075779849233106640639266685727545501684168866283421017022049159561730374683676325111545165235336457429500834570573388131487545130101535380996077599626082455497387262854948220876953304050385151772426342373594465692805155451309154580210308670168314314407552604794324257333674584437501752947939186853057463900864163507793399827890044197458647905442505978196025706828155837096015362766921944818159371376362217520275552910643454195316028240275280127248750795110414917660375485107539797579706533428788500882586009632113080994695861359673772963082192098000250093034116307454680948694114143260562285425287406621257087331049999169618259520585555383563919827276360190702088727113773769578146912505273456333221556174048100806416695730610507850810244021559008977116554497307019014941191913593476321891960165202073372066438060251308885541132741509934093592502365872069458941334355331286700413825565104326720600899316093469683632423169746273662260566153156476351836586099720756963404698241145102435423050966945857527091804909935921006146910599489613150391033133613401065680952931367970063153603591365897425001862075323103136423188762444549298202146651886212757293426635964887651475936101778089209975739772155674237611789625328937911438065449103598317851036976009330945560326638031560885068522636614826803912463875509239852689486433553452590192791655220953899738002301255803895758933444384745986657628722040086131997095871036310926328144979582576867195469075743568079598283238599818323020017278359687650962899220316677411569750273289359504320735190601971442573981428392181188291756966515125856122053018875353684273889504020888754317868774190820580463698707074236555853674880048108372312804009258594677311852676928414515889705037951856229565313812804691441776585912649838692105019358701280829657853088133635234363219026844835262901529357502632198564002360595217636370547398637279076587451260478832584017136344567907199912251455849726547982408637164258241739499495701997335501995785601923978621325573365351347902850781747396638134094384573522492145025791548172457661583578233859283734645629865254978850075202425640165009205367157917998431504067660135464880138168113330336661326328660440637655664517683889873223477930357545779785727497747491569262890575898128965465473444306380798691293084852945867946224238428861096557724903307654076083186406159816270514065680711904223818129108648891719892923708757919406229328682833396314716094737120567477031494224636364480724286923421736296768656718333617103705229423181940528457275626342667172842642600234658524888031773572514208825667422972800968077315142735268433180319797411090878842951259832616631915544941152111063554740102141656128920662625250086246499777496911833957816779330935324087182767166168338799320581497610301465340963300815656218470404530834771029453332574371319467075158759618057131609177237869547624091429358763206987532942038138162395073517234574483975143890690866011999437563246153927007858868142067180958733526716317358132254853317853241070729731679699751679038481857170205315330629663755788967212850983727365714477066655627965175352136495215081836571554506612300169640803293717796306512176258809485429677193099681796132723544996767464199390644423439609418638076186926050601884668585660943491373430105502292464642156385370885184113718673522947216640810315615393072196335487372323685871076068769935557142381824696980626293280992896659787133907037162331360172520200914728871762823414579892913682056122359264871617371850768472362436057477406276325555825766707222910864317166412400420232948090220760279127019542486549104503745168218956657816285430705739345394409103015734328040964287262636737830528669872279226668238263058146604522636191182388901795636600329999709189118848518650849740616465336737992898118549288680932416119775002206500928701042869113417402377977085682638895147630981766466339519341945456317776194195983326561647544058569682198859603395746774553008014373144619568339598241134985915501674401150832321276624912390491066602732860642505282615975106136002983370379112068544783258422885788038816451529961401480399247065919782466218327948586820754090057837062619759143194531532165880864133828853142895396067350684424472349062995797866550695766802708818032673757161698328859696751331627195414381165061625364598158106382954772335583426203122570335877053394572566126447692854635835782707795295117761136865368896840592557371706250521968135538443059871194621843007504122770594503318851581621431585537339065549324367510501012803946340049171387119297955615791027758540874240965953585205048476048033813673870812749891358332753142315920262928524587953647118750374119022153135924135655445467912417340499354003316474522711000069890760447679641722726620620532120834480826594086831142813393649935668172825585175592084270603144606647261379337703654042873368735733678971132167468019501602960501326786065149822188430761152050827731997785252880661642618299712657096632062670070880912225592001882853715124261302562349165453162416018012191974340506768695657352218661856194411269809626390667381498811641825409567971294353185039584393591207574415352689318534387231418240224515833888445982967979249359245338424064267118326065160663499998836746613369553151457756341603887667847894635620095226095578103989480618639963711062162853390678515390807575542302659424231732977531430445326021731157758993838318561570271045871568647681792256809634475508618384544398912860957317696906761196462331073611855233075603243691986355542543349905150708002493082911049121830973708861750298953451077811341110094248096894538953802892295868530238450219196809180362458423728841466028648487721207660197276944353122994863141617593524740769210266771357930561130386137237038120387284186365486617483621325750203566021490538576624261452628472139157761050677874235919098282309025880780669290660528024081568962517676439071279458506834267819627605598755113664882074886170140619161256758246829834547542879008301599038847754206772433287513065596590206348477259213781348630874782000139134466594740200944589714688089127462629751953600100566621663102286920459005605274809226758331196850437532692889522944184230631703675298666896725516955528454543914784449886784481431792383862506982005224629455450891490600106042831506773490768167469980572486152462114970533090255354882201948656667681880319506612393234654295447929762395813905460339477715373785134785062151682411239818984731261709860335874760384533112174858206602092352821306221530808534204705225444237461778837608861982768203551296558965233127499954911788750646854404803740132190849785061690765679116588720606436583834932060472828183914102795370787419139956220584316957226046174375369733924681181964082301811580787232451321692072066298019648171790799947556524409973405985131434569271409725441494460478751994514252602951451520295448852867390850296186435334261163053715812637184858215031300127926436297235666581520837381868179267052352356656978014856860784704120402581717008888902173783800979783005418305998808332997651373933507585424956100562199860881694645745369844374757505800396986407830008542072873766042099565880986899633863024153464120561302733543303320458970214277512258683147970013111594353836832121048357419405548582457515099481184800393915087427975036597160515343351545198190018021738616955935470261597685259597628435202221672391171682517631792881054093712142195604534339848023765911209626845472347270250449438263097656937437353185501228208185039637919510211965095466858150279252701299852439635567299286067764741609590668434610738572851438632187295009098398135337911487392992318904043687593225673266021664209917474550019003508845751898154590331364904326477308017783126354186580209612910369410326801369838650048514319922788399229355320669083210222437594721844898902456750291464563309350844753135475756470562389050599060226015464536486547831470406927977363605933543345081170836251766311889441171917625657695441756962951144159076859935592595422058870017978385013539393468541556482921666371879308065820401403796967569576789108023845142135281667264624368224001846910591233667982435268582939554233311206948271592166923286645920330491209891831567263386635080331576301728056366004548692330517729192233336311276540516159238811494958109556532226005174584332770665658149450378346251858976102632531171398953275280357351709157299287980293305473942769454789689922946997637690349503525251252418415786330941821168686360815584149560096278175311112018951135128774290869593262587991571844485434155467571308877629345329930182951384069707429348247397885326356516713934530563068647839566569194655010933687544490126851255799845500783205221577769902074589054804117757683870480195339580293542898661299670419422333876989008435396736774485383800025799461808785466066913121428166112586897491272482010442424043311849134723734619360860535971895521510169550339529892917031491178714684940235308296935552205979593647611566478666963745678596928628640121654529097867668013827930491941983127563734809275467258944895891934972539557663418565898432657176491795386851035639239983470006289944941829774815724290796095276544459470004881992193792561453336629618847288419258415080984892709190869928023363529155855461058645279865342416364159244365580653092762651743601449756072731974113724978401104414226637281892061227878647086881117621081864451212561816774759230805813067495971549851858025150753470058719825308652543574593886556554557686698020029847444608262531435482766003379369845379613463167575838254283950605380503766372084295068841563032790671784907440641296043463973637489586975979659447865698639897651131325001057730533323534684703348144626625149179196690432045668181887059825320359245683202522646892704709364578025314032948068802711222400437706653536091787823858737047286691190125783564968479141323655512382611421592799841746514385677063279390448256807171973664687417756165665837097112986968511687086661826984727119975331652238751682927199653919764323722601734170202763928352826640633853393336080680509143187921486475574748553243192734081959574738099653279949248166958177100090900236805570902142118319342176370000207063446456796461800994020034794123798822423902121945136574535479890615220166356138360339091058839018957585244419286933892086951536379031609207631544819898614179746787785239837811014692875522118284649631126327284689759727999865865718291951623984367879728742216436326095224385132119819170167636880009079200732010757238621761351265937168719124437401886414113031317685748941767362697056931863170204709540752547743095843893380943803037701235485082758241971323499192323709162241374340527219261312731936124128350192954521886010594382010393971830379610889396204313079773970467052286932823723960781295030737974289805237175584561631467473751040392487333282302837250831819926972483999157717488997781648235379778299891606696818273020173787995039150097781416390520407040438619225519416072250300259321671212508264918110172653506404478078507061370404884863930490625330053082078535359616662038048690324053490443411210398783652455135860700403965676081261411405904646800243078581039356058632604776562880236167818435803891072078882776932306402757716882278866095914508512069074674679073946053379252660810456455151546136465901104562102587566439716396437947484243663613583447957951557766734576011779269847638814015299850243904406549326407428184116172128983019166578578678354436542389089368265482469269767131148127367798749084161130043741635295115369011541581247476975053306159906376447579500579758909257313535045407036756387796685263997920756326525202558684439560877981857059359976688561872339983124224691958976907915182908206435417339583607893115996974320418941166433737777470201932858159224541618478302546288030785181920650493981094281842315544276246835326129394949642989092057061008834840990004936074135469335251207458941042154800870419244259868557685916825449243767905215185696155518515865340093658569799335362221656917049121047667619009604704092955223110148060689376538367028363359218160875604890836775653083397900231742648651329665465347625851038756251724946973106237513020277575484344380735111139072034463306562207679110447343088017738999916725341353024227623344127937389278122616579049737391270547476123109029861257895544038199083960288465228949522299566380430519800823167191791017727993383414290259531705564367973622050246342824295372040227423089705750121585047444157314939735520429420827257608413901515303566351332700280716424416195740171551458677770131802287451711098473610241218683405816648751880133972485192687155893830004860486096232369168212042380807428237910186077930342119907483083172897550537325160359932633320921793945611687905335300278333040698398812205469097986021393056422538461845526171527953612438532840912528694517654687541176448581101536647022727046057491832481942538757201502770659047020567455592515773369599170632913466798132985257405598417414420580862008734161563770849860736178014180190370497878270045128972161529008292148196606314917659886082982457805750374910007768094836423551492876939928216855368193940274494050508920204989331294745052391361364672473167522149926942497983943240810761875566444001840563126532616830836259142368452264256237749516122333232138692288831612565164397103988154438343729201220249498466503832923202119241358092538642600761906404943330492192001189431891916028218107323331771704233385384833833530908673618963385968648815259268158001791416964044491444481893703696964122731334486761628842226270057191917991804373921020472069424754889883973529454967797471836862981806226965791544603511075118122540444708671449821085867778922613198925649543337881207869882772133414645758157464863221310599065976185809146118533818787993321205289946738814023527845826779025793531656374088582602695408387254679215637498799703944983512664421615766898163174207001069601677068077211520361522301333372994694734263489251106220028886664610052922781491085455539681670387803433579705302644308357223989099509057314325604617210298025685323267391961510386283004080843897750469090129106641625369001768895270695561444061216073616152427771616492792584130133073487679991943186746753436936498163921268634589060064255420684025325895917140203916977574398817271808544243661595693110404067590586851012632246401817151810339248634418213655217886333013112301884753609676435949956419718983107876708371402496812376873547801244826825217568813028445071913632155384401487127490038539690067706328052263824651196332993983917561216622881929296617281720954361956674606237380950646314981751506231023327248757096541830613169309257735971252872041592905208943025645442808136952540090156535297707396692445670218093679295878878530476414394187031754819502385704729290554252447306852523856876926492387109622123978418281104498872660964207096307685805792260772016434501147376019576587165289273995099161696595865119003658234184078973606796171736827772661501972038992061166548595468910379408564839040758019913848162692959069437134190720450477924076140920043966458281227417857720395138479354181258376965642857377549157191891619774611673439866887336979820571359204736765958301004003887220794256769408483316208246795417586618417690501786118151789604098416220758969771970983466280823779126739737212806923499405300710636212905574805155400226996435619120324073902403784818876016866654530728788341429573540504694059994781022062361540336161299707653329610403002836610048192501780212446670547636120542753564491557708273888772850995227744522270252430209573327316506102702076661286918674319333587809979638041884186923406196434056773043740073815782052637898380349349910208353762950193609366484919517959291301568464306021482364811696583403464239376130167356767955033655275095793633256537019316263149925867898221773992311570146177545165131320426522988677411296288093832057220604214142858122252894108445123336320012985254958561578910464631798778012821324328083205053499712753096347679356977611638244083223275708278052103567453220940822147778391500411105474608282540147499748171825356681963347073865213082897160918456340452074282160399157931035282187722591106491795819845693989058887682628269549068315385705698610203914395544340306432168993002166303668844228584919877964447679188003187481967108431714943399778441506385890090330517266700998671645326401460781695744179018033826393922920365946666945156906467337865017135076216891217300587080065722142074151479374017607434204041247108617165552048358865324132934367760895697501926956602485326510936595272612206657722486176056938207671734963592892656464341219582159630667123261874317961021852342582713698923646623606466223368326988477440543535540105795218922753607794519507528975311154940174365664909839507594559788188366773653569550630666257550336669115761352406907893161846544340733281456113429042398613255739061946139607435846010608291375221195005191962725697860663373222774182570589433931006459101823644594072658156942561007653059695218645691644784729425162308547132717371274036155632910981284881484777994293605881938518084688614962464976499500141057971419226603671103187433911027583303120748837229756429887479559386193649529285401672703712652514553910013346657106324752652935735914516723875045120348295593978661467807597615894369082715562840128850677405440322685852310542263533623993467605473374318876555471691087814638967432643152894657879864553718430314073520682527102097574561230054669162568054148782425520598089504792032082946176437247792016647246448666113006903146148397606104133550260507368090462058861766836914223337365523720663539990661933101610156147515683658169262198317447321706795472525877513293714385145396055284738433913307742292751949168640292593184310845786318006142539845295451450816780416777123723428648578690333655452011085681853671355340956404916079275467603344251238119074363064042188426194469694028451720981798185956802099421483634202675345468627769899803367832047619204873164035071010723882690121863727196660630947115434977753275735827374488823343096631305524210768469558008824896644764170048480330405219788886512323478659591867997730555947067676378238961277558183732174102299251553916584289491471336720243070990926201304727128346334404896603153713790142425544066147814125286982689651589634580931117263718073499912293273887343192124047907733850438513144189151795299078850103985814295367634130880179283876474764237368334771352318992224329172869017860041999169323239463187705957823881633781312845827287039631271499659810981944861616094002074915088778948848567244245910334945645102694094756829264679409906682184767202891047360753043011880124587855710998757562603565289433255542641554780155671242964553478596684030036463297907286030410261722389710394262515618685836634857272651172216438714131642174717905835242242967208718148502329230640099755946693582696323665957229114723828177432192706711893274368492785009654518761797481600403781673632443565168085956617005414347706825133418956073019820429573525851787394671926272836486409285258607752913880722965761593104344153350177460673752493173257105071543046385088609819966519171560458408594269965655004147937463995239472313865142962894990752528829277340732121686845541458976740806732645479889266818117726582564513264311309992793023529167406559404415998043547495945239691376082657684861868334309929952233524455969940775356864432647843858343550190940269882345144947923832067358061555018599745455783944978450860424636288263434734147797283428717165558913213730469989227279074765191637535498300653379301573842648883956800928721390440970144264193765931063364356447788981274846958046391025285899692981265570679572742721638538012560522601696704737813871731760792306356650448666326229578575117176496260641899927915370277057391232299728852937017404061736137560526967629026920611566620955190895008894204994823560290193238494837921564190923946174946932538990231879021201881330775423731085962378273315614842017523911212921394961229157191988939830802456227459794597548845941096692039914690700996161085686641127048079373419004386232394026933786249702829113199831091920071089298116386233850480441582631201680598499689998935892141419200768304340096327133220737493634699637889754196883707360341263841186005015024150008991097129197376905837133184502720310719581540423833954345247463593034184939644357185548758044437763969096164958461133185344336681956872517288440385016712391016722847529229577804261439736418113916947273588808550591078048970035250352602549470492379065644055001319475800305433300217046802102919522895594756266054538504683147591723417382404439821037802850825075009359157705059327540101984109068894084505995876525210032579132662314184502805507258452434959235026570740970122559959764579108249575511760611010297068812832820953530980027264105665745267454143530803564111164028024435853338142058386361698708533418624785333962450344663543066986069670467733786924986461247137598887317637031710622963277667602176200294399976017234037573766940497457914988543218460533079901316656750716550500577590339244854766674434759334300261325865576925191374022016010167861044114063206303983682110394485691856129881368966349385016302676119121174275707277557576778002697470382362386505545476786542154632952443533747448983361550462006652178898415201987917755205246040771359395028259252208646975872498744884631702292905954326062065079661071347583612417725109086703529750239208786500257182576583021907029352409050437446759808321962866051244307531627624722078127295665595028591109296202868902169471107156614266328176364231691753940335944157880073246341199898485531036930152617212286655107656942183448319862973055753678919235454436762732968367832247079604036706883854257921324144659613864299634685107319280493578151528762586203475498516553685729518887811683846893251506055904300927067279706607629197025314849440468037857684277959462161056864814549046326692008589336257565809129171473684613253170111952193138226945477716834303924517940341224702551354355228403383225319931413521948108288487262785494871400118756362734543897474608235634610445806582851357064488984400044955196076915651114611390885198357081816059870286233154146436025547665232067487431543745732243665184030721013919611794743010899098122972684076768432992216978298107414930981268349892066379591732530865397955656518373426548962976016354850884709018832561124232642454099682389862113384599148703907799097647080220688576099310434687166002605362173057430746746135766579087301331965693906372281356836911068878821524610821948314959039381161224679660301130857303260861269011761713088555402722483981590256658380903195578105628940448757605598936712864590036608090591927048179770420007064256803249548969275114729919346227787441628781514816962362282913800763570892268952128035043804440001187178506843054672151614054179161780736647973305658888004094347255557737303017636595444903928790374204221447850882265017126887429755803278653495240454618966523230247402461932865735543399383663352431788854024248343993732384961507902340950582349008290916007987568942242666819203323662740802678936586849911900966238719474791534496727988747398491478681765971210839364008584333419010799960948802314540559800349222394691952771492688690358404292196278011348548421552319206697670200042720657532805795614277393918666182006396936631476738614383141228389800215827100502527395083847517287994929482275488493756818878641993762759743066116142795223809080649036621016897625440135001949048886966429643760473037638529936187345779720613434862169595863897347394584504199762954570356066332836000164254956645812954023134172743274758625813449384621679585810317664350580686103815030168705516931634613573511051431140557668077709555665504088015140210475150887377891014474244922913997035472208847622640638911465425346609298716631726221902542567296787215219108236579597980094755930149118497171017990780281093793784994119003212507386280347483596150820356634150245180216148079696798160796688795325613824985210653955661986959611626052922874626738589446749565725516192788098287226193537184080541595485285247728658382505452360198988781950015642168009137502186495466362680458354479941973768427945240767616280749273277159409162596217491478992845855902373333187548665410530275938578574325894313029999680038945773646814116420660261876480349296795973813152766911809454256893445468791861497207945295683972641975773515169940514388831558264212631376254300740410538789797808267918494593638886055163291564764720050519729773885796650797472847980698417206331847381657937525479605002939613012356529893470613133736168931693847169203285364613173762021566857508090427250789149697907944800429555779299130492197570184191259174809485885513428801774079717582880369543052255173024748176259186425460322061786549728569814790926465154616439981909347337248008500001673190200691959317067444777363649652808043650940337438888818182179580473051310281833785837711973186341241530902556405955217678147248393208950084455930445300680391676665530379201170806731924914672836113222176301427314379882173745303231898703016341203384507442389827910765355553835443854373831255877882819599117114370220932272381624746726210763827973805476026547183192523946682606228586492721791207666106229635896404158393095438750105407855811691457503259290159709547060303350080597323851855838625960609230057993345414182257759657672377261303161438100508301901840577005755752780782095276622818257393227585501694230280848835046027647584303038422360686275339260131896604483580767150593479714883437907021628087967919263537420342995839205218699325730610288557894446741072099035355536955961566553018384382783328853853250944305479122914868748737067955518292840862261696237863703106702310504890302255553418596153878096271401001257572001013628641845257320775526807256216087313065196257830155326050024424607637536813976535628448028067338867520138038763975691339881825788803757546163685284615567406123169391363644172192082977845179930613200602509913907608431514069708814355007598653611669273758922120322658256573010846892709001746443633593227297714092418707598374254887887448851116458200731042175812840828793241323503979062821341996401866296987341589603970579749708653464537413015475012597724145496972025178910978596599995148547349210554722487814289734261739664412062766117790183051428988246191231367710804758482487342240011939434687177205280871079935401356688693678772032499946801957968525667749148888411886953069855433333963918187655740894203759579436684044531194610745609353252513249969056812365566974994046850633706586999027149838941198490090218591797731670524308969130543938127879145443142766112103328376268063872679300554453977239153802493315590604047258131662452313363649115876103337764251872971694572963506339490843298230780712636776589180506942209209973032945286504609827835428168083289915019521954081503935369161317345379368837287966697655680432311111458458458540568688696501589310587773818741552943273887551277701301944506163132054631029654941566659896304020709808226226750872284371075489004171044165572686495011395547751850239363533445193038898583956748383157797190410777239525165398315818495803191089175822986651810482802682570777330480917420346037915156202020364127483524894745015555758607028266409934644829175245660465304744922388934458481002758863882528790175042329029883208451925502293744530906199068973772885517389056893021017045561749346859547329946781034551088712477020462022285562571200366045844925468369737490982502292205136964054999012279233341256036460403207401100842001666191987700482878857356931785804278873452616500477571885706403899445579177711576511228570637806422659965006111615409988806783164865401851600617008142259893768368226096654558881329638844768899385406161331702979681191207906318093316034615846064241329037001406902170549989059122011514874204419863487966836924102339722715931074182081309834344595698996982455643112487515861360211547789073626887677684745922876519903801112140566594025170776152256159511214088169396686859010497476737222079402506595681627956187074373251867698511922203545691955148888341712686204994529359848017084517134623607508212868555285962079567118443707001003941688972855020189036708685951409329595059584363053156771332079630174698507545091203451193015722685738365480605718599137003231052913815052489273575139723958379891224549813228864174992811199022107782084453190242531819748727118287426259051455852573492519692206915346881462252534483917206903401186012794439769676155800658633407562316830513704316722814058159867233382525419814852653597310698181943929999989029054377926518719059499632996976066486733958518668106343036111785288892133166832136617315467550344967904678286321013439325874522944612772390517387196206090972772089533533000368221622420717871450042096322558803409149050135588663666830818617241763124211926858842889163480932791586155412342458880865583935526915673796482956178746051161592779152053563395764103971148666113476278476320481963554779404496925355228397620646622651128489136602281699465438950482659852713399544375213425802245388008014765909594096955812283160420118081415622184604984797014130789769853688874229563174053220891036534829248853348137924918833249357760851436911277681857610287516099099555494654560710705111222406812832387367260711606275080377794180590252755437505604143600153982317404661783325452845523814119918417227073103655867793775881569886270308910421228043338848320621519021564431498054056099943379248811245451145320763072635045760555866416789167933205525269591974643001794692234789416960755615778914907168379505792711133367048766679519295355723078197698298221995370417996152369436975019217444812028419976062103581229943237432696686422061409689420927493009323053444676928337430732518046581934022945954975239908009767717933824293642615495032126823430682703786782190153730784243383337679675018147347612044344596773699183104598065453894815616396689276593245340557162601627807125534867632283819796896621135086204040448631813564715529055362460555989749170071770538170433551139123141638804923561480551221669990196122360521598501531388509276423649310057323117408877844944848879855533429996626593356545026789771043319137095249300873396506218392442078545668602467311474945292095821090418267831696865938228285267295423562505868699807864273698785097988317758050176978307916761241193617675546558389444609448998961705314760433040436126124248072593790023342224242323382004913156690202203452538748736346276698780959231681913754354302050070032358189476859554149774157938675613258391083074672531911340997564212050277281367399988299978352169351847487598116368660388510545442085018428031362633568414205465170132741113482909359251364700865796859911511813281770801452207301455845938546120328636751599991086676028514756888273177713784045144374689256159319831090734822242681249854616194278793243267740232126272017987870020083405382148733588816741584463010195822022978128709287258697016731869472903542369841095164534917061950437648912519968463269418445487154520701580246855611706975780882198266648558080955244181944523720170932110401064533484705212590035310032475648470524817279324942691125083076985056035564245646614182385714495460280334510401903140567876919006711897327194722922676905549846734993237194311130596797351279378837042005256547466810171354497357190023332751420383135234373630071375810559496821263139675483341214827354562830184204965903269535886247816004278753245944826470358080050307257550662896077054186177663821843237374487234738413528687417994892646206602113277891859923378446912673674685866746606045585098058054513735961933827432769287776795592887248386135539433899526881755694097563177926867912386548459080448080373362010849936505834105775761385504844128119122195762170751065018636631257071435657569933649209864262237709987686056693065382950551670236939064707637717609894705481673086862131090860935449882345523835614067090071191512127643388803030243992642517954766824461487530845144974710186672158971911079787107502107251059374953264143370201613102095451217875366259477827236332303274587319303309787319544792687795757451022449001804955274122648813853225282429385793643615766998389734304924133252820723958267291928014615028753319444805551917710240268541684263141914490094747580186681857674124155517985055283364329849906294866926951739828151805515878391177676921031604719131432014491776278421704412343038660820550389971558750023136305618179524666561541685610675395785948639666976303482548648245638864504303312742755811404417184846924129063772679651574644084142909675685243666161683971653806042376153158596824199055162974286325401137158920007059553441882553701610826433891380650224793984671445646743900198076403497810486116328513418872637076741005206477801791420250564907715613177565306775759111058513283038662951523321165700507958470549932869514408177257606609489819195310263755865736747509754658056684744731986210370284924595696752344783724609766522324833427073675619393481411615521101261153188855051906702830196697312514567278861190119728305288505132716257444282862977446238940572954647190655915966769058050951157273956943274887182813378597957659278456536915787104120656782376264590147132139766483759841443279192902288110253809609123618735472919428371468566434419272354858855872082021644231647439611673017270504036506596411773633993073623684881393855672229784936597896572773562592953391001387494853368447682828649604158735494183645657750174855928307337902559890101092809378819121646745551849956715933063389394117882270602046691656853058819331055971752428134732798766909455589956936690753491142085767177464426172971324597099868416970948038643007825790484359742263240915235426716393863075112692158100762619184483089315580369681190952664088820819219376872128040788863269780302462427816532095637565408154453726488992059000468662480453918567159250258946074468649110712378961114732566453017779812485961186185878078557310620520693034212441933956684467966897751233215049624740418846422320607329744696211098555855827168886529996851080797080372843592123941450206480499918778552656046017513821251569924357027082022686971478173585520410593526817459793872257720027173797022366349317177726356394533124457352354576640069496428528532460832022023629109203552603890209809605630772119138189109424692073452043434869237936226435369537918874540967782080372961840485345495613980652792529776858878146014894791516891337583330465634552787657010382506891714464696014236545750482676836115367469787717160227102986763440413606455729664629936109755670128407673085752794237697693397374395090044314006706682359380825748682134146297335851095958524491836788242070500638896832210994515702279334718767976659297367797473193735919252297440511835749072146165951509022209879718311461825952396792640194223576669303576045535476254177722231349642664555343014975557374872739338323037530331110683071870412794674429258294492009917763115932011451758461532885476986114041743628088481526561358986123419761443698771157904052422434772330597463783008328716206942598439167107858030817644940357223422611076312632446127500724223780991492886706968358073459922670840079337136243627058670051480604207432531609414567893904125685409156495409710172949310540692626619194472938439347833450580967661869793084777758412908068736266185039105488637961284473831449471555182351534387370979169793166064631749619449229455459984568421080915968362245746528929357406747676178093011743414948542864586624908373637686476587795069542236161738351811736185782070276991433513196897817503167373423533423767079467436435930586932533210758924669449908259255834685879804339741204230802691429771601285989267187507793536249506880643853529532120794285720908818479307712183987229818461559721189141193364617894505287693484424467453172495282104621801068981935793811705584254548579119026487619240228509205889779400489313510749310968953781947622069511533106847530998657617766071634793844678251874311672190007128305479125282382825360695275244195998018403400697981861043279688694801078946197420947697567869889658883089106343152149021192067919188240179690053362601615744726773258299921548025762099765235867736112368464248605869409262359055703671580948293344315884065020574217933769444136796170032759533767688193223829622061410925163585960805175005716095509921883527229595528434959394806501612324088276319304338836469957985846609594066301173550376393733697343428241244747205814959474750058195898242737325004033512222285348340266211349961814439449285969813434189292060863716692325548808811510810208970203164034278022356990734716141094204021787672550080837919526920345017125324202558349349334568012096335579316385242838549860248583695052391158401887229356831182006134789369673959280507869391662495781695433091199396818545275440951976577514237068975064701871300771788719435168579807161064897676754621895005263423694305020513019717358958039255196113745953052502722972000141866832396265445438229550319998912284553802836218698087543816738378500207612278379697078901098442067255472509436590579306278119774230120029593784106897832428054403124432125279439694667154427408234109915397514574481285236818558929335481755492423529771860776383112402423201706071629893847468073141204449109475660211007688632308101393630426920934594158727201950399966624669360869494254269883902530254625003291126969485927424928551690875085265490819641521313901437124784692458670132208267150897756258123075151274902023042015430929706619200994922656642715351507976147271557690948570940114549536032923700202313498560045690887440875722636661106949996307299105108573489319956731448210633622732738333710737225745426184868876994358442875470843347333446227767548351191241296730864163360668630079336207820823551841115667746679753414975677231455188247083328886574340983329362527582278160311405679809674803883831110970253951814246096105866512409628680392984753711576884875677509718899428929771680779699702390058192207205433750120538234660056096512872095352126523822152251783460905994687901802374183995502960313507737491111884265761886152891999938180950955467495496506463804351383970449053645323907843836863936333821028474253682612718181993828869159311596030657677651945025276010626662091771277165064689985540433452077884041987357466744982199123067440978565374974252138823707641720086300369591662694500599615452177115207497199219682232357168799839869960383501313917216005704284906054531937476302631409299728015328307348002367897463909161798783843513246822512654967336266363769948903632490920722205725482244506899811899882801301012440505313090739721767579307875791601773677281776243103857087622175600462034318616184647994245107213052777754445144711699411064565229786503498375503662579018435298913716956960902346412869965390186607664346454584194521654999948598872299919471773572513204568139347887172908227878591888952600680051865287901023680809898962037821099945425307049428265534434251911795322159929105885426610071623369858329301212781363936008744862162888471313711193118481243236642890530288272232615808687465404798942331980601883414374472364887114087710407551695061092106784052356728000112957900258063744260385534279902213982516250197584495755715281720433304389635236241109513650776138270133728782869712296660652666173846342141967013303005010393742660418083447082011588675071959941106180351138523467768467537686054035625168916728060250581114504760039243601803982834160009193800330580120394571270923836251979816412805484019501786193232740978475382199600765622335957104279656030084157430100891740036315967327763755037146839395384957404726428403959686386734860392121579903225776998674331194655754323704721274936334963660211709824287558367055826787198552973224100103306129842310392999125171785420607729734565600856480581711404624488439843173921168916436026267801504049527837828835561381918521761952127347911729479743948979662105185316123081972179885999224103813164343110187002239627227163319642148298458436504287777966249159919265839354838979425132519449226719377821044369098338581271684777122219842097133169453949895564545652955412514479058027916007604416941110051090710265188354649009947415249576174385245244033418258540630739568284364161672602030122820641947284149044351014683733951021361661225779714477989971799909540225001429110276143372606127081146779034332668400252248615419778082611127982409876799720726271614987854757307236154716517765043779959507977534004952684220953155559947547684835438400581732320767879232267832258555293439093294269634964058037556180713973922059265040199971388091394118264015981638293900755590977183199299454102714900436552278325520378384801624996642082021013628672495311210157490812658760510588577182689824636379751419438152354265951310723031013827136120017196380219651267117508888528382564048411071770136541444682882666422660378432414394317397047025087658028854106236904822569717767585552444042315948123323634136120705717642027100951897483573990808621447312160591046696261715341330665431755027150764272853661951554071179308768811132576999220429231355004911244915441191200683404590602182870953379389773132832361417215527538316465063446159980939197817452646856134677443388055323005309250448488796758825412949712743907191656832007511534128686689665082666714607056339683925959128424559419296474178039619204706129816073007347100047743255862476080120282458237289421962816974473455969866177790313980928102442309219516842439764773210691930673031477470346622714917418021730558165806828533601317342010123391516950130849869772819698156040045532586686859566662687982723391061797490249123864775287872080315826981355258941722124705392988155197451034537318181015953393595800924769273099808958286548690675748339403269483340349998034032764291320255115622464079344366840048357469194805040449648885564098378059946806541464274858751552035258787437962333728278110341638388834993099370103531806807068953188051118786951843320253474598252246828206618497478491029151631037072397081752714953368912573677312881275300731803720870719258717718775992680294779625208310329882109560742144350486355573220090726689049564967429852826336111188511394347505749294303966922890656756401961037437435371436003526282155846059214524571723735479801984422808404509476264231049460584846292550049813600084997883275871939734055198422434932349467653116385158643696911755692916905173477288140877024936567794302416552111776609619037687498510456520265302348589065451669464452965058858323615821581576146025160094246248738246151589491865360141714326628367586641117596836275654433920545535490514011459409232006112729785079104139987080124192942436436585918390054074280060085088650502908757638868585546934173630359163888257404012281354084551426867883525512988416960056710478242539112374013512870133320566423369754153015642024450877485908889325102875541739614724752180130396593604680203421332747239369316558924190997001465326874540683013387472849914139735089694616404617860398005427221636008764744797533297377946160506026551643511052262773184207994588339440660613138977656189687390257144592359046831978740891894788009114949802968691303706837667601540413498558633953827064392844726412639506317628382992083605128812742606824607691780898038219958278288968591388810963105824655052364935389916397007722447556559665330702640942241116232913648484837080513788867362512868026807759586597021789458091920164532923612924739803919384389513691958279811551444814369842799609275128854839814187523044930075227210871472204245866519251730890608560108113566205010452587973498685850138256336923172575466400314332389033910757861559532500730170111569125310663936770588733983201557147280867692715273348552496913039694048170810419613086719403378859141116137074352798685735253420340951020266231486098126320323251746815388467139402811139810959352278404610554171846871978947540422357928928135986422169081504233853837287123286946907914118650786190375391529288935653961357448038383517571432769644297988438797596737482057691152534614401653855263353696824996260744331503960781402000496008366913473669103881944138490033184582939328643759526602469990256641202824718632163382775136313230260322084769051569874809938385194452978502374074295145994504557138741510066771520572593903310801214696764292273036025725372252979688491423544416022321865461400712849879903138905096886593436712579996804850483736941378192582360502533112736666643252448665713229912747451817851373431437186150200366942610068845697613563539113398682941395034734279380212874498163615886684625295088123203819177753527899117116113348980455699939074249033002238397044356417243556448716413129041296074258354518462688409046450804486511134278039265296327961516707119692236926842204242249952018105534390866853884445261006508646704759189627961801258364409429634394724055253700812394797844090985757964342946999625578172657517303992958876006532241344938523153704064252582901596669236340445174020659458644108312316763669608260022463681328253885105309138064827020787052939898346103864445054649030884754825974860925692160748822262021448759857108202797148616581739724620258593011590685193779737289209086354451026109619958902970594805421136510284824606409643241611706677284887336321651014991864710810395021041631988924128729202960563483756534468885799092153607421331378069158588895586132635963793498172411240185634381720114084266974347374160864927475148902706742911244947822433654797875524380392127656950203688771221958318308485203377702558333929973722616382804246735458042842558358428169403553610331604258369079402693225387958165369611770872796278346499676727345823707192151597884028187164322134352661244623210442671808525823139810201237141335307674279400433139609542918440987091006195866100743046991951987410374224100461575662784060607541981174644734075467342255858336921562285409057416498656114247484502146884312506381657481778420770631293720914319712957679751805876457659367277497049726031855791036910774081123928054786101085139086048869096792598228828523483615877833480088862009957254968851851059276338088706833841239759846162543514792241122761243701775315580781005022342046358979577861525915324644474542992648582334381065827394209685146214259102106186154919580213315336623645170167210703213509216071553086118426762135416340096912264944840195050750912548101022942281517357617148109242310869089607882399236987431098677231074253719921486872940058928601619576574893766331138104182543777419192704595224806318001379552238423224274551776871977202223883848674516652557461640736488398902531485589228447005870011852244846184456180641870906014068656771374724382004006063250676150890606137731800851357465941937438119501136923203909979365380092285513630283415680451050897990552251496856207088084934702736941774566335076685282590777144162824700839940536912345614553527797287560321932402053081038634714560989241519662444036569498600042187220305060965886064512785133414539563568352871114398175022000544584395012547875682261649000155463146740618761608918619616742868614709402784171008264885059140725020653732914752526438930825946104641898048410120757115521487617667016271535917381669138247130883628566621136559354537439833736194526822843720878113453323003086966991352083644373895866555950203425567927739370416856861399018585079230627537193837436039935134602932962625365399765588476425476107773947523204935472171313013163877157574937283264525499089842489369047148253319223914543611267368625130435532327359586023000770035820590583372973161898861232479902841265018303560538094648077235675753234746248389330699861725020678076266537478304882105686253527172254072077623531347669372766060813529545516344173673794101732172497495758830781077583313106438838174353431665218544183616523886383128753624018759628881746011272953167878553176470286605044839471674722251221011210412521705782832505413195846607808501596356830604805395881079908323410261219755821614830025622706915991427286869113967232170206751150964343745794924649482016888815015469145561705905710452249188380131678050701823218662454117953456922899035175732868203495283466171469323265946317014755213137625203621073946782976301122524649799364123747948829136612305104541271696280696346195948550107852572024807166461243962930790881157216251568574849923413304960630222594957311336051194685132927498649387688248630909707671392867312266351351488173332125385621663088637453542110689117063017242444220792392448891813717729197442157281846477463841070364635375243730341138399283106527166252372963352616231765707145244819701973611594827852461365486874192833900447440427525251849206221379583218482268493228465745880569443418545092477981454257496239638003945362633591888659397048657230103635850477443755736637240045057710225189750107101686456035892337509124528372717448036630084947722335997996614020957656387808960892142158969306780130610178839464356379659455068765361077856738014698647861128947893850356956886058816922508633960335786052694605922062776330856751827338333579588939772962062802586120535210232925816442713692463729411666500656111541618870891047972498482240430189833114053366269538080885570379377592026573871524158626612479365768114921774563062714492990686871699563016032084574594322423105168257135935638871936488742039914068442132368355295532506051029565780665079791017086871456366068119388411887861587222464045992688158415238666546462309926968635379817393990779447736666890163539801203091293018973688836074527913363496801480254695994342467371959181409092409300106221957892738744842942067724329713739150113831009294541648956714588421336492350260477213488060781488609477542288634260232043681105910887749367191706068381709576995306815851948195758289769864556350279371535542491915931472102889370308408305453386924296917447922027642638488414182419383700641208575929000255688127245523378348624840184213305374878344601293448685754037391230638182000192796999156327279887053532806806396154251224116259965513917798502826280542019270559463517346775352493656377730009632691192006910320514240981553367114246277473406820632262187523063854010562917912575752843288255596726189333820210120705030091983668145804090810369703048029905647866405320118874145172485666602846139489695269519937012932418552368288331860733227570060248995744549457940298263055882183064503704360284491822651705193838725577084570614563630634510739637197177922923214007181919015516356714337218228450217818568173218322409046457343149253193170035321656563132367693069245870584982147297141623720145705935730901013367644020213775989853805718118226086541674653044899567261727826641276658101860650688077756953535401865536559261602583105711614279014230299006693553936732799434800317470143214915289540090363425027256168261829356391702032813894859840408012373509805768581121722026597260881551257187982368221362457217739769934999523814643765458926422957746385254455192330933559141046651062491429714523819761842236039635450361343085904541397822974877621295990688484318297399931102351818784996749502098145206886751968662351467382237375030517565823687872250306871708638539331227577571934065654626521682336053829817898791374796054101740632735443890632095705179834181126534423359023679883274227197663856083536443762547001049195678055402132771916572371028348411161297123075515505724300616194420980131967583608802599744107534939780942452816268287420431998134906838081555635453396047323763389544131745480116858010003294762132692085533049394860645224733520137123173506342872904592863729462340755192958486955666331564366413769001255046034484291859184684215972270000331552626755519482947822829500866310963267784646751855270156600905313391758584022685417795755953125658477686443203267981527813067859580952361009010767288048703254910995722211271581913607432247716088942794251240944799580516645092738336259463129364609392159446914059517277178833836431535619666286267056790806429377761261411962808947166358709432979712945099286121486552798418590876418885136938531851046876000380939859620883531936271392997854523950121332466147371594322415258863773642353894543539184535628304140807508854957572638657135494271788133613570886459687330879831678106205296825363292491707631738644680656044926482790736027415345892501890397299811896095669542422531653989481002775492634099418742527366232399626031015248241203640500022423846895484927730961053888873992000840575221763895480196762094649541011140210120608009998363797657751738401516672167541511970884290615912561958732652206089769182843591782178222302629990437210252346447439660399099336583520228501271242921126331505041348066077270529540959880524781548969099531660871781279449763878955596849930513515136515871925359136778087158036983159902738648429358748035094221484294219930077285511010784513393124105318224108108186349497953037089434091070245069411923115872746669668692867944405562094212040316464300805968410757943347332313162759551595575449631241202644635717585980260378107552329082799438970114338504024790278117585553176108448329840639284830071716214071530737643330291490082550250826706852951399556780275376038143997319507544315248367248411919691614616096212061378481881628983825332394220333119705252391474871246183192942685016181144581347414196619520646698578980933063972432852262177342878735725990617687052335623737819181294269277568994951220157976298696556408641367952245283093401605643681939335885712556067010792488295529294656820702727623519107367551162040293004718523127355710157497264210500848395509910582806116064190921745856489300806876145208529855193252972963406859663797445692529666763348959193102943533916087207730788016325872280761624752931117914936167946897968332719880616919796118604098252479651886522698116033490698637695393270931868870886478405013164597714262766367546809466737737498789044568043327538784933122589990630070403296353365596841550168244599346534605851613443246149284560638608688617567968698126722549659401651528288184788658073809439079862624180348531011628974100952966691527750431854910669859156047137882320619199132531160362887360281610665775763474059075587741616265617592025432037647792658533932565839908612172372265626429576578859563625225600089379221804614290023240510449575152148429251328422851428785766426518405917838819100946658532308360491356909281928600094282225414619247912002094010710779884814172145962906487888175871869098604575894124219070114359078305425819381716658877218049918442276744096236685060219270510672581038925473902321900793333189064652265208973417003037696287191443018914510662358089493557892290676225634977364430041841149095092047890151916619350333918915134704813265841879785130707384518469063105960367685962155548298279833378126786989312349283949440514096984815469330248588246492541555183561970148717171885464272488711681818548367028310771540990064070426432449153974720313750511258726770603765128875163260664560879497320067460990651845870238135846996797852703580907036525438165814411366547181651916811612442858289758115764756070005745409355419853702106189511052294008552214605961970483720932955094189249164024177755553708768829692739309940300839672280750494042674639006445742261779577652181554418714625901868278773975871597804882134575263115659793237745894829406538171063219904652798392678327922016914818413139365393624080826733545158405729901082454072572964374017381180949118976742066086214353641394144630831241446935451691987541464723556040451182634810192584185831756111434840122222038861557547434488341553670126887920434300061905414475163420431642412977049280293766131123653875178814305042741859137438685460020956566467208041728730921267681931325090577757874181461161939410319859993466806661729468163184865984735643103008670875536337065119096157824218016833918566512493919871415407510223093679930873789305391233000958028219412014785797595443174720214951332436684071178344112321095495334088321220042166106188801170698187740819659637844235967648336934010847808093716670988649135237393951593985393091111704360956304434612755587336357939359791774403039851194105056966929668641063363504282602870073362978932314784623274849090436422553191488593316171930849945880074489388919190020167598327578196858276419858059017117929381329776898022267000180378481497234606712202464694023665010991512155971345932360926240843533351367647897446124681464595575273189723286360044218842736825255681190607335032500589004389660573857602416873283255572994817975616874561982756260090012140350960392811437032018110502974741398696830373087138875765632769164426187143775314323856207897118635675016929416681057431371897398494818944802771304573763538802450790072503509099208740466266300056039470568281648214077513982448369400256623761057312218858190204245972861945114331511184894944585851916896638155819837691603201061498521757934005728707824192609926029375487819795371029610556293654679486601792459765173945930469693527407510197743783166450279189115450428449803411389693750941712572908983086940448762447153891636977343023357390819869876743352715518277685120128366472340906805638469482682780441990882056752667178279703970998348139212845560799523214053724928588899846621893702230135568357506431479114887357905654176863790723427318889599057663546071517384711194620051831339368971577461217303469570417375852198058870323914513910999210670756878412342314250076558052618636840163001196006857385033515979959406498920855719843927949106011221941424003246888858347300444774352739446751490037925141041410967322966777923581016961134595092685863700357445317181891241453722384636603223282423733502582278259564317112610847630994023030844365659027515618375471955796282464316188711767125018210778653976633523581492632733201985940278355875583033493662023188151794730162876820211163716849904651452605153036563807109044452574809737109676105416565734371527727466224060606858394338058738229586641132886574262981259066306182993638110104382640532349816400449413266414446865051497475902396433526698818462498905194502556785347446309143190879562746205387927018659083821475327147994441782220834524939819301786626402271846305949511749757824320662073162621195624356691138451584164717138251487816680891906615412530741045049711703271656596970483447791206304657409433894946893482349587788650246666939150225502580425955728143709373307784752052932703755249518859771488769033646987553999228776001355244307832738239536893674196041940097914628400498790448169896103784250119638329479283714207017711208808655665826161370141535147835633047983126711186371245452038931400042641470362065180436611716560374861191225731710907503213847873804071239048976367239668196037106250645392526816631197497705876626419155009029238601337280261021116755521725780726143600465665148765237179047148946822613101641783380802098080911495868663488096574710074124890135038186532058894597938074586584337997003193839519539021565804972228650711865284357305415075560496941345575697352292289220841581207356528858192045596603137282728607293385413101685729231756081557274349083692307357623052784212666248737313515832135547609715682404816105401306258489598980312533506655364348007569086874831011215265474791599524987599936245046903143200285230612047436281416159804498646090409979785423917261765236184890668593831066968405954246214351846488342530805224167093729749616330974500483892804395783487857074394464969178655973237385143144695704354631056406196752503677148563699090480648096971118228347437883118250902214736023903298853773375409072619166294176459691631517569418515485853175238193799032610393365312767851806024853773286221775225789131405492762565998848640992417913502410240200509726167201695718001832441991610265324183190642459363527788023374572818199160731144025353896750553356872764348039123310201267277764535017706592863971541521927569785310223882567421227503193060305930822008910975149348315647903437871711289734782107734877374410729922057375407364449618048582217878848854306195429636836194585638138528634398588334773601669486170192246785733543685746037295144919554985845252455689622643561716891141945892582974996776417489214598058277530532281198464155678643228450139665202877171138171786752393172493141058928670810838685592389248778277531746076610901877188882721725647389681604045942820581196281537570450086581026193664999485320126723725666587226211295574768144041824767888745806376272568059259721892525609496017108069972296186949329815331907549458587090366825813119431403148938894651989771691319576514295707559166607041483306131112867369983991120697434408313106511088482496531483841983925196703220383000097013614322419612305379515242516637510229324833498476779285641908303479603622579934086404286414835846291689993723438707680568430156125551489610615204968591741301958731915502877182681269751958522447145887941628832171653994565587439659035033966301441239550650250675593135697984812300787934027614588113628332513087835762922481268919331624377421135174638037599371552982720365012347855870771879879203508585329571081216635719392068800639045901978625810138054491319780627257548606889734391139724327952027686116163366611002758868235067576975618358048454360398522666404845152299100453365269427681219139081594220380666503714194676336524379119454295594184437344688914804475141662689001323955283129758151199015697990681572316310273266720746049407409379694114573195200672943084491398607566961027699816041661178785319723118573666203705417049114812121377061912140299653564103045978598204391921722488325531914754025117966198513862003373621711878207588122903692800382114512097212473940279744178961879692873374810821009391292812106243663361129058343234622989209327234760741963863445275131010096583164502062987187192911942252581410363486301016516606590913610624126606808677593925153301455470509761806727260494556241650318016573154486329150425237910882562346342150827504162532173038151104885172246165201626955889146718705462805102691440643316788374955840866639173134652236300331766044402018572798710000258025705996516681551532078044695049253974933408200235488390522040306671233635769718310632856374283892539838507754329185316786878222089454430195224232944689545418375677953553787260668549991918093353345526806010337940141507947480585426014776571397604525024618844268559305460932758347142980943626089353615981653201699908651934879843820812666381899478501734587220631220147119232090680402416238452721972528799155163066763105856385827616398477911626064176944359351669117281192163688763798333691886637749581398317365585166466286109087508480191085593112215356369584998376456614472522586207859135752768489872422093890331461177066088504347242625463284853140487177279484890604416395697858922472923381168637049609229287773107272463515502648264267620393985529273623669105014787777290769417516665240181029658234745502461929868286365215161636430505800954813074386517029668222330006482053700465238408259694623745765648925273470568964756149277803041296800921428362379456896763635232831880163188520269431587907996644749112343409307222471299383351211628370422494955549883962222311559454448403700008052335474462679110657013992982154354393274185245256057228498861654674550214766335295702631743007379032275138779574536971806239022855250843307263036030140148638811968030477223104411228532570499238136185416377691032418551043018028131649971590673750069011212916007770215604218747388566296724146930972376135962463089280194986231538824764352424909078421030851718582404070084489733434516865095555799942461257864367644742513096225056614559852017387318016881887657123412324308330764073331954223241314768331911413597374970372342951875326137861851156641237906007670955673274130056986710147629704691022950801803627670088380442026961052201230763668898431004633784273531819326086003894603602243480992625141465415501154570312930888777695305008795745820737876001118997338805504437807083828655962404090607535383804386509487480758370152346483512165094680931551810301328529198335856009857466905300780154298100430635378541214806357199425088221682085101870338708147261747516153228392267636553949547775189118730324519052969041483177280844823030399007905399346523578103295481610419184587948453571448698876084851757795814820587483434705708437037263768062810382187219053973820217299865814069830965067393503744588691247224071143178043987787228712040331212680962291470715125423000547404703578578176516224709259591693203833350012522363332390516758554495455310762505104071690526638890411763957618539178803982060754745361547381659119924505935312120908091307382411179136567416449459157515903000339204127129391306447404004096776050468788523933818325662900070996022003501121250099489791220525155631584068165766409327224930026120022382491725436782415078030230082765853017917750889648726499493913737392278168604881531048176483082814425267003641850968980350904139386781637637353090399982279791393566406023191866182098625183442372785301209084796610121505730933644140112463177282589597083520861088870850342737959589286800676592896027799220673660228753335454296931774040869168731688490281016513017724953809422297421112392169243486444720104566630008849372128480041325590801557954778601824222132039264902863306552358629632280390263163588517238522122631093124913526005070568185115142665519802488977449736746214660665606919369686235732069412763962831032497608960809391320033247089757378217060933716937668433282802735388313584602425786282088078530913786896273791551545728812616846357121466268912461484471875089493141826486258877539622697840299129148388441731388452648122155883898722131082198098840424405056047376715321429060438658562919642919308558377352362693940968985893092783701258158780770879040553983090695293528622882480453768859934646879268110590725830878974735106505779718599517189052442580498451933234491470488018692927584350844497852936977530849757251331255816239188710961732223388497387439946716878016885044070469647774609431734081697673973109418893230596082624004813559026913007276733876822932062492193737702022474890483967800855139773177200059332880512276660589742229372694279960074680824127714749221849543228329896823882726821591431040839885356172074153023947702426454575483397763283583851263232410311748339815429262136763857181059261489005483623913902630650993318830040789135515144132099132796831374170076323920675308278762015556147288258556360982238683260275295511840052104138196689714601920751345509405224029698859550382075225113973784156205910248933663884487812176781244399254471972514813046832626239828082120836656209165117220233274677511573974020588115019306908402437632547812411102055536213451120706971530986613831961212339863158540697137400910754104649215372868775576287881822463693715835028006404930615263692930966671139347897430012401295324875261657876234205943263583702081656155532318250309102571965761919885857297684859811916864887700894852698356450993051504100955884735912024143401580430802863188556544316802817996258036660870013717578251880759693844243885172009550983619513744449020552021810440796464561728781569267094073478072500161645104417516668490342171710297172424675531654719889191617139063731894670026158337890099300943642410002747552313242542767466920650362595840172614380552843302305345415567742302144439837816996577750402473534055332846769640607333302046676545603242870911308627701896902773532651316691952096635899727604121238623227591743222653843424708990936645781110866694456837425235613000772464050875351016760458754495379841371111693105885061199078447958849051515233186519825774877961637110196296674898131080003661500555141289339509340644165214440802301653347140252655712056386895158812486993006188942148614712555467157039927018690733254239976011214131264478621601502685920006310051186926250980063601024718043566002512187913605027960341367251789368729941178024281837934155931383352471968295899383089613669372794610541096861102875103626463963977466844181546380904679186523072311266773209920806348465296588584010852356771662330778016846491316252414726950941521046711840372066328630444961903784287422398808960358906071614223214190861271147405791250046092477005664017519620577208301579349543768233139022996845188397882577945573971952703831941493057469102902831957771114388470609194671370491188445747410836966563687989009715229980641049594003113911730387189927200402595232240022381284581120279307391451302370031297439446598566595768336986576948929929270998103871486783768803836819584352888075170570847896185197231236858911815321970407700646983433632485961047095019675629944227800031188894310089704623416623386017071360308594634047181496956044702024059345481815770592140638162025742946536357081288898834908601728506874008297736514227730704646445341956882364215685086661507855927550765654224279066169099879960837032686877965028299596312741568676887850545359117651946571678581017531936089178835508238112157172907058886844095940682543650099580232474360942570503358786521860565601735346580460854210988065750944725510250233606858540563693113377516765859801660227369594962189677211816800049747444591013511462888139310583548733478097080965531647347257428748768559485265856576001354832169938259337901425098580076179464585373038146645344983568847126729319109845530832853959938389712741870430906664431802711454487315876953599178084881474148198660961143970585436517008369397031400931975693992502293620492467751125593225796198619681893458062868698206290208359639103837092524705487167672228933545330350695761845645341993518748801584889603215384555341036215888236960272618093182147031519604730555488849542383859617866350254288083221903039968649505739327258175350972595113232931679053415657321954812520217901241028464182691680976400000407996536579549473469649747663667578450059061503067202863585701161673427585692063554847619678534129706394116179915419197821729569179291558788199446188311216911023493791160491913494146963459563932257393627065275646172861636089146436849950305678947047694916450271040738839637304044624935510939321327778224434097087019468267467144019736288441333704232526798881484619256463087896667402030256591330604984379081747122852048414953169534434359577392912436918312460145477339310349261439701557994746041313868547364908204129882724172812606598588645664995435156385155930125992348396981017399246665676934019313387094132589341579317420503336552789943334289157103301733055422921563926737931075586551930471117428151913506177850880380167258107642378680146273083519292984497059310173287365704946024854465503583082416816412707887311297778189278485434803015398270273887578280441655648932264900747108644754619238491295046354975389341309197237728023051894598102298585753167004144612156592870309729826765187892894934039692379685492461963611684787016446074384666889096220382139297913847130545052760345684982042384495255719164628583401690190404552640357999145784175296659853666194861473937346388907188128082376109346443687597355921112960242363908718915321567789796473958325410063154192194874383726259363010850822680609591061110716063741272428909172039289864789674633179174414658765481909393977752041001153663765896233809237743402165947402292872242407141847168668432012654618040941991786881630221375065264836449244284118438762982143101964399488712632819224008997502371387797029073883919769077692579903380064491375067521117539238377408979162935849190059278587002026445399881987514185478776109256911507945299320718909468653777549392913682606313784421784249151638989319995193685769970268223009263361189015791291137186564646281536597820030717381860546419132496084417290487494897738621979536627593678808323767411376375546549746352829238074400036960735495254164819662355882580390158862271517075865558580361635513737617392072870427220295153422061959327514277811063369924937750004158852447178544297278959476051342634193784769350097905165209793112837213804619142258413671268820850680817888526495830357731078877383456431845970003843191382304829525250539656656551397421755973167048707083118987428372208885047437944035913003108684545611054348571629913593815310016606980462856982479165246294125004867444559506185530201937296858858400531115540611246432003849956275426190627868818688742321044621227797790742252399943121920887852484968804287307347955436057298119691173700959635971416315424680391432109559387318053061076514927738219466921962028611273875557921989110814693566838654399400852017712614344433182430829105895315112840383689604081505000867337982597116810301393844400154538849500889150222470508354476757220034375633917440599016512129334315688630591928600409023534814214784349181653148427147521335813147712097153887231146014634451025505110413220265586593217544151693856982671690643139171760930311613867706114710096450678343465192241496719334250917158770976782736366631766089693970132844348558073133132249503995977827868012545936903398285575854536307850127888108969648946335586052837426153021531536813002422053553137559727988354877041158256386814282479481557065280351862473884574886728631769314996417933201063874573874321644603275148319515688888680985173099181140238437235131946343466921885836932934760212932839811062880899391820762870353138577432290073503283393962172770066370572566190620145790239887954550061304208588705564787524104624583536995436396713511581239140939952771010640932673604043007859855269941736769487840973897626400791761502430354811925712000945249917630056819909520778204422090263342699391725008445289727534873040208085787202120104251480145797422518869036797670849209745782605268153527796743396638830824330557310721944147179324868349310917170108088083367228245498727499281622843150768446958861277522480624277722777838342353366033846886342575867382690823543773237064549521866981747822678460266092836204081465157832242359719861785754197804933070605652110496775048135722859686320291496928622823148568208420916264615574669299416055843288720977854029965354388678457702464366458827006823188701900045196268436646642900569706144250920064703446135815216347089884606036077101083443895739446652601503337930978864455021459541105207126516603618301313459775309645594871232475086254451123316174253063260150892828521088319094053697002638902985744771792002253902870153605793516851247943950312352536133264245452708210569707821034142980893837171040797540624134410560285140220935448465256731502134457706291656927352783908313459910422918159305864546949244992488471133406533982254393562198818174915560240793918652399015403162330821601234316522832604717657198650868121171805401346066130390568727137806789227603467441237142391173643737428545560633999150465455068339400381682969467197401786627923897730806884096886474496108046187741599047404304428371436474173453068980917862157990595477002061419500078030492357781464616457231829092612355874029270562182411710259843680614606762663002106790802332285048799093263455515675224068451199865452720731233991642893963623677531312259414086901244365851028019245205786652713471733334836098581873583600936563213842483984008080490064510736248086748837490726296492430438953426165370297888300218753836246294668354548014742463884717915455510195578577909696376014617728179402624552654219397565950558990668719815751109321356335580518626563464254003872951163795543135057582951667862747122847460564479830592138843953031417826936734987411818224877944473908019391212358580972649373569930085006718055571746394341100279581031755747865153682245522297007141322022148138845059217492794392587476601984824599937540633264394238031133105049577008951924187808166274605259715174463699320902329667488868369468618491612936917676844910228897454497338492538096096975229568037426688769216448911007619771920728528465401168841184397515333683564957527446021057804949375508683461835296828118393681737759156071337964759009630106715922103422984339221977134900776737392612673667266929439154065813037467525395417733017052374665990761849909759742162728443424638278251336134515156548758974295117404172346469285764574532876706233456434132783005672165973718739899919890671267008782695685600595098904851507562960659307487689484691423351237179734346526425680978520003754153131094760572196709243020245536111402561807320100527538738517973327350065985477075615607332228583777444319418935717119318118841417044444871194088299684036106903486371836721555844896656840591991927992134896039601679672867049399849246186174947188134249502973674064240111463371328073677364877601068052744508733049367879971331820655986688049104871281547824561310471509400155011347402728091258670232834437699654604291118144075114139812455894391664084808701031509319622157500328965888059652639421049594991736566809084415333294422713909746774246859327750251826814897992426110908141398444337079254675324421545621336974880911039476851955836433165317358855125385233251520322818246199233296942230248034772423528021624624787435228799272049671086480165841534473776629057667533903110064314048254690707299022912174144037010138119086313964833810295570657964190563460704085025282776726336394949628055641509468419778117048272561710841648293804265883939215409073932453622504070039569565617820647342768081134630792571471144789403370945744838200644392197423039134840195494019639280997707228381398212886639389299390713658525456297300885739013335741099168754980596708853787140670850150432766684424999501990504810758685845347019779989549858440705632682924389489869900061717029245096873968103792718858038174044459427239199502860201243830032993623348401929180770586272909657726023277848271976210605720934032668474626826553058184161171494954009253200249449852822362953241657585125466548592801539117767621966913524543939320003611366272386092070878980757481445323928106644667689095772326299131815874209129765537959757563013537451315743877738108834523467228820187046231228737684685345647865631418173195475481689075019340913848375331971426807616247712668041035660348150479940465601605661779035803551848367141148313487544686819126060216572921729669123612190007293703601683756718752106813139140272256502498831489047281393221425296948628937917626440019860590640841254985475100473313310067785098520451230062556634748644692396075402736854724477033654339429800647700797360460195544018186088622168198642547286397355762058399121614469078114985457283528920143864553494029422545814047681945578653399136181783094202748750968331760164241325549081110671596626193626576443802120140179219261437690548902010037124760827394762183179358895959231882368593680993593036992432365278283363208368093235365537941636432220871821691915460809077122112468777075078813651540299271547342991270613187138949087498334453798186789863477183993560089083967852198082308482471511594464628573306917422276645747587605148253888369097624058523105953813578297670982536308604771975754573021864811155735831752875055172199144022340798518333770947361086929149999343371964011118691815421261021874748080472724450052409709413990748652520349219013455002408757732552776216059981129630141470975902592286642145125892408113714550397673858285102399371087526061954113787763628264736753626245567528572479731475829896004087959564805892078874827852112667944011291440310805179533888001692477379917411065254954063829919194693956449131834094805332517499362896981536017024676332680563449781359208855556254010601546762693926948554713850936588584108750100276059268887829328234971333968851783871238936522610721206354489363320396174335319440607672042858518124921929451628922110192896825051845647948976639189723251841097713012203642731974215690949830211176615537649300748226029245133957510285682770706018901912551871209075933196931730252339470374388106977296773302159890022733336853916980149792183638330248121008638383090574248104189304560326843762780445973287504893979783623810461063873229370641639894836452179474861205879831711196461543270429314066485394439452583691421717598667202795161412163324637460427275526317856763244179122471918302203879016200099272600632391261901713878386708494888464081794590709046769301681797723580037510420688710612913270948855827284210010219220105496583889810046648431722110325308126428484318529461938249559394318914008447413183298592200512440153112784893917459148799621452431489446994195991810404514333724992300805522477601319206925091279102214988246883087164183431810280139820216366375481814870955876888424990617925778723251674751498541058804939930350904704572021437085652140874412288580340644777551286686035924774928080031227821793555288802519133073280581468471962803261071496341609130474266390084080182252297198621811571043938277322571447896462187013468429336544299861024022210336001557083479500220345635457313943218283086438051390145179296858047921464994056383779234739430745315224761422889587783388502653391912713023744286345476547995974578856612299482647837870378037252243580748501507465911969282006863682510765224722523021967265590169418272763233548858690412134688154598815033425306353811649780304190588368753934590608412354984326219558293226698118359755086383949949464518418458392721938002202984417991455292450664144624992123448751901093697691461988194171592224194005209374419082307778115462689830839777792041437031573635720014376087849719583508240355212389763931033131664865704035107447586743292068975093020062254546978900766612251309149487273058522519299180799359752686716661909205707381218826591232114991452348892649396456540029373421860505834454288263704335540765247853048590261647883875168488890027854360252602679388397437325256709518446368105184912003336311334149486278907566078426117904505643079659677807721289794573101120152917446835582645517353903581425263689550828574506624038242071782207543379163896421373535618702866459026805304636100767338987115761712365205363306917061360834269433211728789214463023750681388638275722913733901120711615714343958916665419987001538638861616681012370142174625821330800387792167670546894285757290262366525514706659173105510803091597508353264136794049677162025408406301136622527181549117056562117136298769878767566862298148927148892847938429118175097965781582200055231577910859158218145926902401464940952272921842540173328619318885357228095752519145264062249527577032433664073355302854044374662468036181981065466321373940798358071652833609655192883772549868557890668278270949187178113680823699360849156877234575556063590031233908025658302288493701759496783727725150569419629725947300732100455069825527034780419236371636333053663925407820771602847523333301366268002159465511474080825010619886921033615753294401616626352894355035977069307295779938165273170713851727659036574463827588274027573778808978324153020222902479756411570952328425427547012217736800526825181792361859852408371344064980184917838801617202774384718287612999766079072988086240649739311370834472117520855890905499570068023059465352457402246229941888940360600204613643027407638789558013306051434897560537360533018581132592167998722127289161466572540786662561237779110824545244348060236267195838875120851480085428531054508118713635333606013153886888500490526244145812081889545674553379005733616372677023522215042333117502670864967417325506309577809749749412796747745157404640926886916621721321976233758901439794370492304928075843698171283602518512533411931165919531121044287540318650075984920117163343826143660705470336143663773122192392889084559887874375471286863207143518894043049381227495387021863591625510901266271169220676950146556053836713034176682096683260257192152957362245286528174203399152913165235627470100256073342862751366500489380233301301459995724782315972552148468141925503712161400987119772921997715405663020874424095065720085846821443367646738710001033707292873186807331705677488136565947697731135059580143269361185786279308596046761559054035082988269300233512411719507342890840201109264744569756079774696522290023298206597665019203047621022173728848751087252398592267801292441934909686325890314442322086046818055869624233932403515372204813851203839080661355187394690928218517649282191542715207560768270383935971322273303824901274451384876114308552607361829998861618961662470862578073227434442304556580379187070174091271011774194612476936768804139258806480683048846944465073601859053090348592972051144992413737345834290999028842363092391630376231310558967787955377507282500096057925383384319655292790711402162802249395654153136111435292897283093555530181622852186172588233077988718692886906004663674101256549673595774612715898319023000290882211043017738704482834498528884487907629050210865125590307363428096269038259361999298027704447962539222911658515187181808761579489208861592168576494332014785441391633989993892858734133661788530960933273391821414566379988922128102569452391476409023697475948702578574408826492155337414237272121975188112451895993564537175111013369744019145214716256664143885017657831899751661901699995352837279042104482348963943275861355278290121703433773624547934953265859684680596946518272302089098638187354198072950414738489845361509092625228851028212505076210241704003107867899095338884823640408923242664379892210235390873222717694179283809934587769685689483325536172113278845256525309061920475248287938077287354646599940935185406493897188728166832763621853326294839691634758709345846306205706279207226543800709510548023549898786459747708970945251632882937215066584737471960109567191676535012240059518146339886957118814260196097169506629869223588363614570640413950479838739634484908171040992914285544802454146475485793179002339047603623608540940000967643269459326600063669082604855103629913715143524153610310853239692920544218081610672315067184935586860356411848154704420681600559776086064290925398646492044629770604851179309117610188436264820013066859317452654866379423215387154870654615285324176184175757567888504172555355170243752742727080314329585133139494820420397015060717531298585500068822772699046611276368242735858747762530083000130004881357396648255288514184978881082771104931788907903813514162531253346293514653782765944298344048807937112819871398188764202557733146416521030770872362875857261330336686323907309177593985796261327274756480208060170709602623411951937305592114063620398425064710131095322305949533441692705324041569811673792276666107338084791896191403322484888966508219379684598777231426873411381386721606135562631465499139351472928018285038160010756315187174964636720188183952145515717702540850536724848608690155654742574522726178830627801215076881784576088114968901959979213026202098664177588424687228237247262242698930393194486298264232411217177597285721088957939723073819873533521501105492662188949687358088115041618326621444349827595265106388672494508361458270891154528720054608913322435102582853671440201979917949992697968925622978975515613086289892435012169607132119174576312661730070947711236662383650789597625887859062204761757309469030657558366674555131719556766473538383446303742253467058714140770064656816497015684358164749562718815135718812795018814832705722342384153847436561330623199846948419802975481164841429058295979076269398124827252027513330386027643058658174083519825551322197570782066696377108268556092076447236121999117423042474164645821437733560172526644927798220647816192320153018202181532963362393120909820949161096919283826816732161051770596167211144800922944590988045228337545025832414425876521861923137353855944442601590338429176168233086582429577208115227111504091540900616348010909141923259958276525561189062742126903826784762013158562833569383634050002175362370657833404725687108234090478958023661491015138510922451090945452335820991178060475637612631272640576534138241980646680447694031680460604483244765468063738601697595160790612053537939995814516136242400744013661496366136083682094344372511685026736333851998472591939205978487141800284971840653383034015258492995201383559765763592998523713229141272962422738900907432081193110629682833007778961018580702486434770873795162265369806328562913098643868615525487707753992695561585964782746321712672709831253681823857716763304626570431204385704235303929850204493737858864920534026692796433174674226596564096035572071907839256652854282903151962415045279635638269449556499411428295197648036899366528862103045351717632354170749425338520058854224393154659361006173868837771265151627962752944712848051452337801448577073356075327284618927728944038400063849729881514775299662383086401409726427926187187897489691566932392728694929626106008648188568697297309374868742133381514158583822640733908420692493054903983398768628075133412846502014747334643297714247625099125482228461328807430836349646093961309412287564780268893750340907743554438704367680742168511851632679913190831091524885405095607193990766559417967220605203361021923100128883440548142519617567444453866629495955476869196890766376336827804184327722920959452701386280117527281224251823489989454873547801197035564288516488840988144820556121211907550025482353839295513486696456300508265563751610390767987403235118751278873753773292120327337798740455831911518473034968966351207159307920444022838619578365762272945021311579816495282233963302401458403747390708094082603668780069715758756087211977766132276911819827627932019218902964761139947770038940837410082489700024275342212694589682853904232399951557820592826902730860271096784618043709843288411065979111706762893767120328217332955023478802418627342067289093207157800820434941993396698991690330796960862883462308081254200173041588270930404678378308376687497296867069187302318620196963805906259430000594699151561744025749349688789039908931601206880598710445078753035054034023973419264241809800373622250479098045109696390052443074297229373447305974429656587576319420644645330585796393287086186005924882012965555543258456945191068282613297023259509002367146192562124321271844792916431233327259250870327083623777232233911450781845466294532841055435628262719064470204434856048372172568563465947674787138531765320872784969984539485065221930616542458286613454306384278571367659254824923119281279690192921157847522713758842332580466939760289675754634454821409644223670729207215255752843149562955038939679474979692723396272259689923202130715601602649078897756180291671760081690289274817739009589295087556112647473763055781140967159529279373602135369128941360695156729433105519283582913609764405166974171756065139962067743560268402805096189797178577195316104662831536376483424085495934634745908799603044028375473211319297547643334750624674547237378886156294710946852168027467843244397501898208286623542003595537123570925953900806686964052401863297346173500445781223500892915345436057327070849799300991967267000052624037696053447237598479226896549770315873301197211630879926237549023613394327010165201012304034871667111653793406829850230049696090661949211137374336061574223361666376335064858219452923021145000990113560413165474490089796687904961650814501759239467565008624348359551740738185600743736086213192694936709973444036920025474085478526722901153805867396144853715878416434031741858003631992162705719951460941650621202227705317853482300434633466884682857125586106713974504753852058450130252721101305411966246790121621818875748819539142406569417708559439737589146863844564448314296123381126453936400105578251958995582934524597160448981587611595906302231179622086765856354345938019364093522107050768857049239954414081515910770163802158184604847602400802331329948799779902652450897563664436738683132367965513180664728367481759457547327571358046798887334429502773795363903329066055656345248314066324565663631937370108676605257314202541041487211190238991657318169340798108483062515591408217746802064306263173962987901573466528848080072067743182374242752940712049869654558373821434440748082420886217239651267657235489565006488699047157848103636427848504483310172389593982457545762251656608798803659964251379508893413832426711668456935231385399970920972503670931485067575982627705585930985537517094609211382482255701201307905117464027284843829519338725824528266232129086903146866551771157673708636277903693652740044520148228180040297128016207712180947824590064344661884062648229081741192100443011789077642017426980674951728921219831272241435287442729150782324251335223230727095528031448086884221477266047113226817181386589675320135455365306816754734984051521369934387507112130842207219301379695148396012877122915655034398625053781338277816716522142117393339282579366213773028761091464193263661175479683364836575361470136619669368323411176186965454344879217662427962891490178503507096543927865674566120618954462958095195939012508113017582447435346490372610870738580614010114143118732166593965902335159402708763865031461347321740326330626560773101703741886482714788353699476715763367805811193597622112147437893813880447040921061699590159090950886442527050037112050513572442873432960334856043533323241694363594303702742037193267203786981120272771354231413445083746145463090150388608486556815186729056016993110859232991500585709771230069534510046128993422800083107523528266735483106728812493167928497197910186221340657396983537028948647578913982214735715036915224350793707714247500545073229217353771098660054725748455708945859855299072613757448866616888611882749475233714346306370017025591609497642983094379328079698544042374224418824451520809614030860727511822851740897157949737753685761978678481551625579038229093466774112188356368680127798650473656471875974022961420825415912940248264650231826474600287110582687654179429800321432774358515820165319476152161049043333184984153743755633894261005400653755603428841991051835667955274122380926306243905448082580091876734122635928937204742825073181903694500343176489350133788147047328660713450304659021664413057801959138312629037391662120036776141684778671194821553339005441249097396626518655385253873388565878326500891394480704431307541884489339014657318908484464724792504288991435473892063953879671874396452447379653813600798228681616218094770486963335197755043466600786513558785065167938024207243124129413898073258025804933119491994124981515611030037753061369279571458360350377220819012899350108910335858912634442832191415699830279189601438944199153625565740594176723248669661411529668085651242980112861379089882871424831564948349505023980739699323449707096235025102260376120822125116196975107710244697794644320370363904363101228702844376337037093782424641846538859624256770377868206478078977685122473883862350785144080840541657333578252431501502315630978739714333506751827280777679871877604518349262537805859985482341638873959134967455757942716451693261994744337203168932535535920740976603675117252111632521623078778525382527901748421328608650471032394454421742609651894962792141290426620781231483195568146862755068961849425765807124330859464858602763898593500150054097263221851255506843889821286618123873390042876989885975616672389990363432984926399936722935508790031878009066979063213772209938429123416505299273456829758091832523249137979450518920912332783133860039655511779657234118679911318102474309989087201344540320152528970596573626071929667822138308946365316979257078286797432858652143144738002349423771898360298582796359803389029544047200330818064001039735519281918901535674753851942175864547751948740205666258125531877159210437033765276642394966078046037384494127333659421865943574109030026567252652576855403550589402705036306283110620423812994175380159416036819796170262491693450727688987719148774432583883922042574107500556028728391148687887284441387571813128642581519413155314489709137284758084980049366820607604712252260478896519964108371585880299485710352710797074208874423935145817050011938493767165351641376701639279693898763625892394456211200288310142795191740365059251507139920342176478048897491328625691486538412496585132648435545011713482777490227705269929183629217737022737398724378584039674968556380945410842786860475776295981896022979682374996179908702374495873715397459456026223084167515083301920893371713895123437874938686884667782977272592141071392554320798586378490141490795686995241152607378919528858980912215669407181062279979628439998716050191098714365063642467254417389058562892514509518663146205036355676873710142398976213041091649072870834617560591538093610463597815241494059548504008901576432066751436920736021583718393846406842005243535430021064470415829112708719078617172787030888288281619400745122300623411353688381848664283393548956573902440577146809717254163392940848805066614771462681157929823582614182971870407058177907638406316663920622015449158153646209869454968483393674851634667265735850463368304195134506702897843536639778106033433951480724158114830733473135469494693734093952419197558160679171908361674769383976741136854567893580366421849375245753555065567127321364448869448752278875307150429259732730378888670807296002536894109874488417303334088775412534715061196734595449273808942361188671656422582160714940658339878749661578195257118022684297555777698008046021245515362134395177815436375314677315349475473565760283211391025743086678063705913834737760659812151933639696159496792260346409889766017198689251739728572651729549151530456972552208282217689856119935289256558866830182753507441801214456458119634725951541689018407767243400339939064564711659819705832971522823767119535165550473505584840689410479280376473687967858973301815824340177010201092449656623107126869307756958744549902427429009058226605190122932713538957234693500553260053722342754057005213904120489693990728858166784538618839482280663423979067628906760030083519650593389192750422559309692592210168214424474887857539427857173697287032490525149406395115537915715694535677563684818522985797245722737658395802632157048266654332055786408684275742895017699451680420981242148088647790497424559858560790317329198742829804439143020545143652470158748616788077733707496853470167076698366003686775328259043496154244156849373690579391807903279618548965849305637974098692461332104522179968076836131749693973146921778707391737968657879342494437172534663973686064969905635755345969948607577617567583504805540461543413706382724957396437936211302953386693830007340510218808326593187768064754554293920674991844430624730600351862415835882893265968166874360486186294062618212996392928539259704306804314270474236141682552212418060320740016242999478388085880180886243387379701042498141065572892545959998185449620881514106681166699805521322116783619757759773301042842364382931870598231596247735836194058741507490138100723866497059632596661485852746192034413922869487763374530323498152886379978147438346946847590867248897023879578796174692250005254734133437543796813393706810648163561342708786817176658643107099326091263396114489881100036006241805542460930593286481373553708535774780395003931317976959413219600322057365293531425936646299409035537555020290576152635683112983575710546892253542405608343120820717320771937970158228374229248436626996394794508055169039686172031043280108351460425635867552014180447912351753663108144455356842690388741525797658206454017059867047862864879196280612945307649750411353491602382247306544282787240531363076725679632486217795038504822131744545100723218215525776405370777063656506613500984269986019584415711386493810186698153018185594101891355785704402196185979025905038577134443819459752553494094977624226473734484250210618445920421810595355650637905859108523366854672628585518321730206294411359780281124181276634373056101389771839859532209215359264068267495333133149956092383908274705200677374744787226544220357446089804267799784648898053683851393435533375088209051523676058772163808444432273865024710172265380286377833961259893467756793248750976651727502018394965853706185449329229574895118843319596748497002171779082422290926537287783971461300051575393419640179452545403185545477390601395481409482510938834039818649575537818392817830814913357390775536563397401516356293164166570453018480553208007184722605394827707325317287450608526433540648037758346041917698105237901040691279531448108945602420048108248603009868395736205922560270669620756445114987329145454232738149663977482884849051637693710438852434451571201883206105952996457470231887256996222395947300043778106530763689492092847068007865010061264685182595383741798668145461598150210114611632377136788118937314471460078669806938792141652317200724949113771861234761936888132642351578688656306652312657639399890041058817793103114302331493193287515839262011182190636516168579294929024636700258526298788837438919500920605670482360738619236291947116293092468210646543352142612975214658568030557751461837459649533505916072363548682238153576560225589836603706814151724893463564496266112426537559919984068631173671386312648745524475461846213965637777285268235148835835907025816194796655011987953669760499963939129306315511044358871908245553348213503123889437063231747020153184917073389775972134511956321779059652155883796896646566241465392356631664700691424239338640983772987017681126720928623465654164753249514150472507811259642933548263964606067640987185254146348814710212811857824296751480692236534225119735365935050613029521716985565169607276271851373367708413855414230182992924802597004404886833263787399635493088643664054328992389264229742486216321508321080497127801859258664882089214682843287166313672717297433062141323697678634693859159966391004511231139473854118078688533316968601103230757435869977217571186952801280979688919886629153142552654716323969522518521470610665995516335729890190704563000139120297142348536530692799689761108395197342749314805711930057118704418511565710952502332799346357161238829352553025040019262078358485155629520352387974460780006393445200468322326974271338788378563198933960158572479689988787272068340691508305300372916285101251043259299873664359736927103837668603534802772884011204828343752886542541615163492219001499677905845097854289491460851354618591940766427843919397033462924591918778215596717643293035159566250995993756833858496716309221974088657659134104760353741229372886399040346603095113067472772748727112975248455027240659412992367107820938382671637761637864670340726046514608540843800103279445308512614939155439318880301217251939053765587086183515943573078783099195836852950811256735777912366701265040824988813813353460063277653359143853629858146463588908930431539427952249648859274203820883596105847351089927278193013608191853472053394575581064597237659541516434940763494720835086904797199713550146170541899169292586276750770057511287960484463295799733577716266098170285642567787576290593949980055920876426562336184213410931871148710363037401614694053833905555015711425854947599782623319749021304378045765559891064914816391691088153506661179868719417928768024344834987442085186862681812319592614127929532888173163609454410146248158634035539486039822924148510130355378026858277494678719780434538007878597229085654114970407120598260340902502702270227360404155500970096820723002728925398216773206742344333547828612693259181067057730928752158303373730441064688937557881398655640132553593331121501894504204084986366570410139778645621078500297811050188004403120439463268062216415290254630202872295887990396257907301951478274282141904510862058107981423250430983085497137120585451828060724093908771971269764533735797312682578965751148231706366666543105240777829548888895933750393918971258919849868239005215186835495526888858574568382962991534239615579721290604346903729459750499162307618549083743567790021625875720873909463105628025858521709402947982110765925516874558756889838180771892723734101118026146739416858335620849510427537958782949708421970830216620490819511273868361625998076612858033460240760445685551398353121716326621625196443106307653863715225459597652581282192388630510951566019571998157964404204097058039161946531909452455822413936665116228443059217763028870318049004604172230035636635169371515769386187610511376947094162853297462909052515256733206438978438573516028239663257504012452172772903039579469072487762915007750655305364615035979963561668007041703195483464998621446891023706061052106358597103329896045453314868189245327819758404093211552486112207249805515765262391210206295700884937092460421349877060908191334314658567200682883525160652040954923649588169246130508620282548438547412271780599685053388057048719049884567759112029764428665022425875842103823933888621102258734837390789322427064164829423307755272919040426181414320274355677550270203290144852514057008712289034818270006854065801679736496045761477082386927089566282639000961333347916921646585240763089726297013807805905763021678512698955633421260234942590198328561460904516178108080631923397440595907394440451377726013178173156254292634250051248414984618853978579022860394431724353062717006610869205234725966652864463979688598074380218176837635274159098027186390021288963546905334593597367954782582706451554831584546725232255972673006427697557365131152955530121488195202564981212045562630244965229418330880378664036374706984863019570575007626576119018911113319562483605613209438533042541992544955309513289915076983095485485694160875175343111600463284974778116266595498787909433001751312657363832922121083253386763119236368669357611173461186798958955821248431749561868460685680787813447337986393472994161284779107567705364380307727707841277157865727858005166807234038258654720542888817043367030861525838385835119067827099478174890369983569194595596263838521093872045995821597401060068853932534237738006432818210327095712582997600845949415637280806202373040321959755207695518368342411284172513067289754212974936481896171846677523512441293431743332477821450692671209989950787625207978707220302536311989275703244127854525076425262913730652417438751367663911218524014648046051339843445283583061761111811579414950102571464785297587594740711878330902363582875960729429883694983674140572044727879397474765427728520954179229785773506934689888540307762998553855380131657544106701120878354066961001840789561874084682527590115381473500772459580496996212026483914598843191444502015683911873619512755003623729878115798238453022887041772104785582812235734804670997752156211592949771133188276274916539322472640552573317582042531500891048888814795012031279946512852306958610457857799190849578705715901692187155962563490595494249430087734416306031090629237402917101846340102305885391923375355575690597097895276819680231426398839680187228394153080767570770257996716918875147728332173872512188323372109006113401458332497651352030254987523382961366787294248161796195998546656555629910350558517477269213878889794189309478196532690995439015225173092303822621698385470554304033453287435654152447964867371849159500746704447613038860642872587880952317400047182005010428558333057508117003038414086064165106447369671095413337133735683630585452706598080465780086047892533130303980299323465496986957527535076988331440961959659985104597681282648379578527450775626159408535688099404060489304672969030168926919859232310905384489501369002012359660048515724177253818969393378270395630326364421250205600485441855253098987352614414285273473525331727484537711400556387165570376405815780034317816543471813307440920123243511265843457712779551974686235813513128834262373791216481617938470984308995075354646593751476293890420124725689392351974315426279341143988578505453640684085261428987753399980526691187934415775211717057991615955342749179937039994130449269093056151372244828966691792511570888675111738139298807977732548115010715833218177845131967030380810389514023040722667493911332020335181986733836672884089041771299621301368501951581366755783194845483115533826672280116413344709009337232362036491142314483280509297924943398294235562716304968627542624539092154796998748681614843950395917525850675127305535618130725259192657733437621057729405914440659774743935170234299621406153454872446581871599154725636392829404771524763501534891172396046658812237243106119184726862942866786372693646859932919828970876177721421543411761599076976510261925121793446834084283213790726785770513838630609130590288735366309310177366185623149633082194714893690026590039989976401967743477661068991372375374457067193389527834175735579687035142601243409479512232658726258049299408184990393124448468824964830836761359390508972719939740369390646674255835504828752704490871186371042289749712569137899108404929663471598484986376777862754179513194066114242371365470013718259597591444007964930227446942570573581989354539763083193858516017376771536016674020834135745258907748705241098977200897930685543492032414139306910017310864937884034856582060580494234905903794764173143105615336214702217545063168295197052698877376703818425400732942005842543577106475703758279956337320232698600352747150856450105993561178895442486229454924633893532753994595827775556693175175680843921961958784708828840488722011153744312202605626260328839577058046129933589408418142996658444426662806923212258348384700851787709900525520661619847568859374142251744932832312012519293512404177123016636608171675420981552386870324721113782960311780076567044415614779576494035403723449578079789697131800437567713973053244011137349031491899707937282396744554184410618737837510690562281038692074431197136477483312175961600781160509713157736901276454981112012945870052777835156236684441253799884436856992555965027847665920789103826786243018488676097973013725461808206543055198027953964989944805300962788063242605989146834136126286213100716478351843626351923478227567396628766582561980264696035953480936684783166668609952176624730895054951019701088926013935077995730146534361523163976684006559038017328607585445062100033292296334909434309787435631085341283629634757885566163964718171601810201037462790629692705792120179722757955309143957908024208398032749267186144976498992470121642406065022382613913830304359407479663901049645660437112124496803741675921686747170217304167920317224613315068483733284159861844136748494769962240942917604217739011866646219916255025674024569712164301435528384856304355633346260597317900611578198197375347410642041854734906126590534719643410512120233347571589859176419804849502692419949743134820923505103889518506528984463075635268741704985622449976364388869102970528192472276770941440628933014272952940214263297484287653947457022424113473026485548835741940447653826312476885327629127946910526709889323470372664739026985449428281419713464451253476808738341873621333924069314015068191895982290502544189366371675016223224251186025668681349862225875784553776061876699851307122817660821091148616636707052689141864218294633676420042422033107281619744541755484976858672285296674975248978391579031616329589751136237839524507265156746850195392734589183638568274309149009446620643428494609520390818814266529459991701732364401129065244093859425859711968948429553874570868964701048737028081859665879888006279071516658497106786907813499439690866812752125869640999539733136401980837092276332475538268649909579699804863807756605284642546929894335453456107102891760316411560367644391984279854832800572704448810720244562093426403379388778655272899890926044375843065326245983205034004144121987141468180377974401214785522412971878223410338713045250484382304658623339447286498597568023086883727711379187104669593944105726950454814245918107581898229674841135940656374128313639711530277986614652487283576212504197368334077848704834059800015084572941006619437876842699265815659726378844550189121793332261986553365778368709492411634595087605974181337941861576055905799085306816225618647543024574058252010436112549080770469486019762962959530212833656847591504744469367541290496474987701682437681988345269290592396159716702573326235331962052053066113892755799537476953451902979737415390499964639048844208396773256307115818861206410890800411559124638968452964295474499933191542812043069504376534357731106126455022345616540338917438248709787038768524420670831720896109524562957120411185738003689777033256674043924318467056444451048613868130405911749551654841022777027852330873354005428226235883099421939272689788122940298845057032284614496594815433409872173660524199574501347369490940920430103660430359816670129314339164560723946047412496798382216636680091085996737216636436281566673057408867100994734945078591022435121219413484077854032336311863716719361903870554832511953213199371190171645285472230950387955928571671254665415925908112190352401134335328791798962393113710552359795885079735513125998618589707379756979330920815577350294366414772305844521062336637997462388855933510268683564132111140703002723924022358009470410902410460139410982654608492944419398227936372125613809288520438247526705121226278819124205844016060935659995548450331671106614721347381175907068848902482503921664901643166037401387058995390046889250975257774564758407696928482242743640779707504213791711652267994565051218691356214336104387561379762949327854004254550836855120579885863474819262808594865195066337522665633430706498380484113351240723841967766217336314674401974960168892207793908928638658728228161562500067911484506091231405830638610430891572039079249260944948063113012951635038881628039249878948368539648310196596587807978947738229247348844871876214526600829708983392650357987342075264571830435881838617661808006128683299296194647465051568517404545374613680548814515461820943369948807868968365692013773684919622760473426883629042329958640784281749601728067330813067753942733928320447304442050016647762819767991862043648581025205721498843221392646850783872404404801855144105789922114122344989417072996042228979452428716183061583541103717794332379722565401686495425448240668287492582028940934769564028196340910501656697296955774839727371948447932773597609367903025473530414938111222021948037206475290277823340236796343495445049385072570560341183020556449697915887864852235229490233449671046662055604104248999421003001803927477401173521208662659579190329259312057960346504206574449784386813765929561046392343354328275406653022223255210526518529709126931654023102644976133179659317733348625500861175469022811792437937489074647254761205976398542353226926009162730839366373145450991982321188168750264631618484249558598882590876974721735357182551661712276933981205464232628777507514947093125366546241150830444760560132869537104449429556993581345160539992734102629751749712270408407053833795838909548944795409056851298104768849174503840355736113427637815937395677266248492697849758308319081635373313343968060119207434429598293713597606864005833747530317953862947556031169096723535659051523836787622641364225897315554442172207563574791832907129436021396992973968067522983461292044874459814018251346737756476929801221632912723551682229788891544053101593975672836813195466330261891399304826133010961375566454941085785656643141961048024572047901372473824139771489523255748210464344981066462119804732556659053778493466150774870399772094423693278549335655149134256253930043278185637836955301383045388480948211062771996410913039207419407088189010744904969996735215689057198331894455731332651212617015056244062477451396165915014350209081532061805036937729395792415857623725808704162364789453540806419351927751618218429256908311529154878887038284095503481192274841886547074090263931721792366005527245052623337132318109907114331546865825866719849280116597714392010326434114922275841621323389648927486576682829239228085928878263495611953507563919519920640489884560671703410268567766308135627666263947653921264903978745182123380322109675264508902536186236639784768331573886972173513989859788832360192237019645702326944881330764063471832679467493295752217109989635222727391234902757447239511817554577986890391259217907901583256172243509444683565189064493114851658147959197965861603303005524852026436581034742538764068309713416169251780187895269796939321231874171894225531438679371100384446773187264072218178483793707277738059621482985489053210337937883696912962871665455016316030705951955407564567159276064748458254292446525000102022269814390024822234292416067419515398528574480438299843853372521054599738945619671653057782383722128459302712732815090130511593510831756737762724998542583949109090071457644439226563543177505987346279273337039596721557595485950064419296257363543097597557798249768918327430355166912650973327348740933447050444155915224512913010597888697555913609064656359137489023259424179135449828995072959813585620287428641451930415855310499762875412216115081251652910011130660063505107428582182325279651540452522713251742013233382457844266500133838280787803715799521769818382632658849791822422040920956723704731504304823836948810374383601031366102349953704082299084968599545412558239359921454342283351117096467573959450005711409141681377491178644056518844853909349916272724575634087354912174952424801818504612029755450317185683400343799687447820093340010934385334226127034992314098271570442710503369373492080285516217848545814270984679852635421593692223096029213739650039290842734529845853202836229308826124514518715100656851650155458176513309376213043229982455450169871771730560512460767055624925166877870678086835825639789026778559031723844349484342811186882159309504167201114227857713697864693447858523540942666809333982687409347572191040274576297481896703606510176492049101743369078228272021294189233640500319093247740274465621093302579580306830553975639359846446747944971999167503554243334468124716527209701868287326881385423460981552326330413238357032408546553540982567576786947143171591447943669164614618977149652958395481598553488652060327326299617435727280768609568972481775360262960314646751392554161180110949517416060331885894314286104066295341863140116927257268701647827882061571719575800260061588806554119520094016613229376563554652156878252314806676457011171474888124657082601632880054792249895585352510251190760169882108017645952216759224062218823482606185055529662764772893448496596865249574282647486016198973920932950655663138690415009449483222333845690101639538905031130510692021253643495531937119859439221369916967775866306946702547347923467868616276372413074851496215787107824221599929840870940335174225423067862107695907894672490462272111489031367948277750537418643997628284703719076740438110434673864488487150234488324837416565557094331403576383724143916486275782821744609136539004409479014995032823226862450204190238681821407359090305538281587015701074441339398984465943183014337362714962283278521360065414531220087379654326399296459815767170327215696785227204837575746148646355487144016421746244075362633486747929008912677960076272299483717442974000946435056206664330885662238928778903529495082262208205376601590020501798219672511129663616580624219382862764440088189123891911835824541037926530000475450353987545497234341428358121624808932778964663480031179814851581179016737078796921515193435059435204231456479458084105099569593052365329271608896669030515183947308140710852123680272141982165207664050406295722641518626063480277902969750962252641496762557248945436692107072738365802295419080940482755768123996898066342226710981018656683048423100207759973265070621539801802228968977436915720194320164729449684169191640525532373445378232057845530298718695405262469981231635490854548811501467755171415187193623090715626133175028604337191565158428787719781885444575815681376488548216917534763936772603754862306270658859445047599301405680380153180758461709990617093547850230632333026429513127770477422532133122599189248854218890219368625790730423200292555584077434344659287680359915712694903367172915115839247797443434581056555193567148998660457520176839256237301078779666814162558358375424126823345348505898787237066472311795783599283641843246041744725614758982401096840872297558233097923696230576707219731131587475570278874405975343262139972965803346245450185952339219448859774966503765415643542262558813834788253141025560124696653396295327686848986004166922046612315116081799348599402772050073938244589064031414126742326743842764408441051799237845281733284286705549257567892908856118339714337876167961714905616730183015206456868101474269260314803755436714980296461082278686743930990623518911936359086658932282999076532117921668167441459597380259375772096427873342275915166886345524362603508530579880988788381346022057960487725228470697893563721811011172838779588928261565487130436223350038907994019491706377858648136996623976526177209120304684501194208645526866566713593861506449339112246294566419748699146624074598032440978406653233566861213323491517848985406271586290030388511936304675883449968741230353838064655110999324198593939503850640729782603566467014337412740815395958180972794274383334311089448833595549983280028950453371480656700804990983005370730287181297995693728408965416787463713064714733978916558933572074320917753445165583141015136632787425855730406380678295875645110790439844653510458887957301807743497553634538780728281313392113776427472413354736458169790271783719089023520895042248464616298146488385325348866672912496793219495401210424334008342577606894331119739095861933032903624387171433021435994327622650978709760087142088355585602480698430542697437413937870277422666332909266064005693377228846909928221942235654412238759302551636355846457119199652866220343330030031810398863040278511362202939884957835300052218870382306197067116178113949132042168740965691139196980403647866259238195460488752425458937442410176766048453133831656457196006236083238188470270840882231712465382001456199536838597348380372445735498143230947759764643316056801118037145563129225325145398916721703139246612714656467429896157466947663648208613463250918107977123508422151420534719730380506109204974042655222648629758572017661723885966113932403837486109601517943639286454123596172505027416696064172371546210934080908917059381399812730025533537885114198636719428503567378541400193494212861984242120637859118285281038617977419980836212995372838999139398315533211320504862218090006119204990952949882196471127472070612870467010993439997723730923597799883771447342843144487712024613926259669551631667570579839570282137320211830833801630917494370206616282698719962238315065287233221207159332199170959123732879522315430439261398833351995676980708240310795600160265088603935272029769314940931942328855707668285769680779189835009658341995562237301739867827563491708032146001794373888485017316172678927464332072149935359025883787990511610994977829184577574189366148538682335825109720192284811117258421654401478741739730998493743704080713085055834379694585542238893723494941627460614699177281123466565712705090738369707803610631584726740696863026458624376499314751073325785519242716903554693433567613581593152679390557603176477779051839214467351654594587961046558797253022327152652433186397758517610017144628101432975728484829787680813489785094155102959511198707984134903634430194430709089319855320041769334616202182176081715295159995629911865464507474666196894583360678441580260056700186353294385374876101935960057674480827988868784320146764719411955493129241599561790058248071721865417186486693689555103069276993552467251380572558768475827329635254001682267585237690062775670626946287702302249741318996469811115211025993115340016457860612127281468759211518038302257738195385842726935887953103050534713657375745727014854250618274694116969679638968640432038869976506635020948164209804227910940847761632299366592765270890675605064461261901763371786707015047907412005154895843920215754975779467593349233696660033568586569258037703908219869609563328965634065535608262789741599623635844024976146264798934030219878374265176777959163979526934337031433087489616628387046735785846298198783154038347733186168634747686307647328827716052726529265129666735635563971566557079470185780041381465481468964446603536959403144044529726269970147926706588106217256328593715227702200107018153751071213808312344851697228994600572945895715526688141817404293524229384397621933631220750079850039563042663416496293958625607536873154781809360254796406581192969267121267734675709830084162327670787300555828123749315570145148470500962802523289134162396517562605578828250895294694267980049852329479445965322592862355418720554282907063002989793883751289561399661562898616424332004038641611863958337285797823298299348944797648606853516619226483307409904210062751625515744085040572066807856205960421943771403423183771229382789719770035942226611873496240229454929907078756004208363551045320543506804814918774789731118188569167125285699427953117230828186686955404090793249006009555523812574977280011103506587491545972130999938640151885461210280270489400226491726821568064329133371036169036844735132491185273355012538662701621864322572283855074877092706564489557358018844885209086461532490293705575740977336124711994137463280572515375533696032395527292720147922916135361940696760510663412006781016106356555900893353275561648711894010804708794566496957395400215870483989964958486421335063716158668992141583811156248912101614808872006423539919004305634955974979023129881305723568573784512828643713425023556141647905503543118314406323654807973929304062831765492313120175874318861192983523342865683228065188634117105877361010316881942377945351716145743258823942024244312820695457904793113568785985803916215774165926432174885473331198079474998206465063055223651898409711462533929060681748206994292934390828804427795997853379488416268585794030998934100277042814840871005366521686089998671423637200395227618486577505569908644921324501634495506674172605532237972581967718286317807760737079463045224007749049700548899572789177734346079917907973325539340604371386981183630334567030534298266918214522408195939491984855864368248571631635953092019492915555354530186779422401713355083246543846476741995152674191341610959184552189450905350129236849379073190120609507608624478576810015759526035544250920740721673350289532330667322300444458024963384682761829878937687200846497325570906669922399862568923533933924898198967539295127258015852602182696137225668430970222270297920257632455917347797853666492190111668177715005907054359225463096948698501380785202083686671225682115840627629076131866261503951694052450447412212612421936103657863887552531916380597605168695349837784278671588964780832896908999505843905093955571011761116603779961492658655641558227772379339410301677497040257663178317763247428474113080416090693544827216445837934594362866470842548535005702551835800847286169757403921848990461600245676822191787269085920325442465838142337694023717168381520979582004451309970749570907803971732491035402832224879831795709632820828114552972607371750228606525065038444351553810156645414045842531857051937918575010110413713451344642041104981305066895500117899878064602275563441927231497055969753214517847659660440078576770654313623869475479686184601399248206810905475076354716612914773611430777814443254794225001179545765837005500330792605464491785734013952816417614768292779969850325463744063306926851000174595921812363029408452482624483959526107118181331225340637244619245606407098670429074602397512339088500549961901429129572778244866984673445021042646421603344060859087678123808359666938358920632508251355094448318101978470654710960279224640147325380446298751870669296733977901829373631132248366674894788879981188641590773648185853597219579159580637648631632391069641699378489306879429150258234988340316452697527348043503176531772285567617835182430641248248209249072092852173544979171234540330122024423548585887252353639464971210571711032492431648862454526117221950086931269419895732810614211640044569070793037615562845293035390448988544760411887766174595868732663216917062374775674390742963323240783171859996561665031100688790695091130525678300937482512514621914892060116361206038296641931116558238692003112207935922651818380134745591840035935446268567620276932553858871202878078107512358929482519795473510834618041943155209307710576055675856273017708754097169795272464723711592653356294351056717141130920333126218238143505910813098848909641843269146442986057995910785653129518000039107788645663638626539613525396223780606206764238706642865484288399014854952333008682687599249087961178875706866191364595355624556894522571050219878212065490325226811922531672372239399066995900000147765272412048550400164342685552727085107818060032061008998635031276753874957714093310785106521955041992075235439112760151507261221557723008199589705302442863893747698032711624879978440571483366023965563541157244999762805530071745856540647530097670851423891648719808956161502495164202553943425121921039502414382550643362538994180487069034452945768663094967564030265217776725481126991684615981674660579024912436208585402283563921575375041926922610701516046000376388360259906248708587248765850893589460445723227738881613390322134416897123410666718394536039165691199610531090751510391936274412657848100828264622504102173667258323228607773377886758417013716895076746207531228589177555829768735039967029813494709281198473843628114269753929442199420010686109572833617250192255071541915906101526505286662226476040620450814312560261833204007165711893173923704524787355733200648273800727398950910444885741568932114261600610319009341490268873915310340146023301694169927159954068817750936309998197367200400294352356885023080051530229865997783146883995479809037392338279562528567127146454339076387556565261192772782793770200559743206735561124662728998380914622216805743891508732200111217130955764081428807626248854499829641459839989579125618754272678231899609073813521702632859698151143278432852570557241322928489527010102861680130679412166346858502558582394884260683301806512538541403780041826329076377942094190621420016357251985790750248016112428239550528729138547459176321673237667938198537185873222844753249963713394364666505142428548225922615801494763730559657000807943436891013611838418803795609560727386762772562834407684600269977408420589123229517078995057203457916484554447507857515651199666444227551146528381941917553714568509978638969173626238857041318344055752615917625521669304544371791187846076509046818343540311487294887921558702328326928732716846493116727176976556486691905938233842242417398339036599636342619900857456445609484739915075426693146510709415112304381128575833484794340126104569641641091276081953900156544293530278583872400342700984093689479161350310154113332410227247628404632444820533146176401195109669602427907345127350868859540716756286580088930666536536048331274572918577691631006175205713146228391369714454156233911447323868087161959232894706036265490318956216590303111847341758917904589200636458660351913014312693157928148935439283958752098901399774776210421139931017312204636212977396638166531923012083588795812525003479854948744685442425767855629149243314232954487196592910923915468108016701885130924029633995819925352473839251788910751680896041828613552811763891844594447288526669752655343853170967698247056452323863512737275584030576636745618458386555514066324201209652620595207852390371137879022063117036019733750989095317532163969616700012399901908008567942813978973404649418216225800014505156642528983345583096043779823162812023751150053610215024104151915331332714474625697880116916935566271781848071921359871100600496999124957121579330416157326933876010345232690957791854430867055225007429247418486123749791611905595955441861246381786643452568800250559118349445701136004763837293224292381118089442431966494782288859829192858048048392898575366927040465648814462009690665401166166525343903390061570364569687548578562143631104528291950006013594549576222717964723172327422169555461126395589455861436192322780470301343610102691241265386201729569917972488815883394877879749334140425771697921228782222863316155198048293687065235525059121743946616099015732474615942362583163055179388730239350136131244400293487173755912881071293271019690709341221979203063625802991109019932527405884760554035758030936920533859965408790000784495557360718558917202030502346402751493530318146863528302857185454536769183967297529206983612634189237011463904194265547437179320052780170234981525153080947325707992719701994192453959615382628710633116792800626211391798425076839295643104588658235616516545332701426624775649341489710136630331153917736131723859983080948649444737709699492974567241191096288812255013735677942320621908213233992901464858899783827717107602710400744618607735731878175520126624936380954541745856155833465528153526733751845884634268302006697203480812688209165896945480769106759739098227549370136844163595442484796086909048313448472236733431669651453947765483645445570406270735522193879117341564147509492389559848981094466169260621800460086980901900828745348240563566819419931149085498509335268298279879841514471054401071814160696426484646531943088094732114796610873166608451104697247691180094794744521861400183088392962352181883257523956840181672798287158436197007212354832504477195921168858804190935627064104211370162048884427803987111167049990209085656794500981525513291151307307346883706129129339971153037372026640328716152859767890953608639929559209302467563057560793484180561364222410173725079850440785592770627169701274694310346330905570966685647932754308668957636963838725418689239022013402075254929305385614258048224633935138347081384806831150441670644630580958831134442848163639807880721670486917351957204298487085762935208980808967407752530840963734486211586966110115294014648062047517160664718962354445300970510593976173134559969110791818110180902636801435715364999037464830272751199434940410974326439164231917502844760827911432654941732396409961717661045822225445614201464985882334738397998609888819835310687060352021982843393062809836180760821082690654573705815975462622751085178632920845290958088654096517486165019357339099592886050013266217091143418915551182064073693210253714696711569849635060087794692976548981079206464205618155677311377234745660097576425524979962379994875246808343500997006027507087935497102894050004587144562568865966628548046910250197487824838012605932750756359606590503906108007483954420249523355492389881678636155077866113011768448186855968313938830476534950814593320603768681437848666242055333645094283692774607884694779502218745589135197947662965831476480266678203925982489156077623756513960779944642763326803815668898659832809346810602092027289644249735261998892470237727598635595953713848511159930037267494573362167282957097666451171445228864287226938106991598953631400471931077962492275951623518262099280188989152926030969947610548047080414943935509883762704606624959224514853505739166617320066192683138601551663906075958696321144934605468130603105011366856904122920831898249663058841604916968225092880170750173925005998752142499648514428550400603168242633279608795717264249968108141101464189886040426086630765611618948872095418211188724541300419015727791684688811563240197005433250406630492827337841754168169175526565002291212106333396868332447564795862003628758527232385009098122280603976612970576045816550805302283734206794614972888543459534423388494451344731943657063693523089553870793459478571718784999618002690311405714435564510416003771269706204764640968724722142422605398647350158759303978435677628589026297411275833131560061386223961896693571251819842341264337277490976370711046074264657377349761239597787245815398226057625103481175827776744742838089050757163150449362948294316161289680823302998392028739775327629376116996849453103804137908127254282979829909250283379707528082203426972795311032716329128400350129712589400129703890477369922866089655857298191839511596089892797514160641058785360976479226709025789314369690349531398973153090248629990310782118111622421607252004926426901706374683622513760253224352702340547346046344607238195269830793185199485176801390389492610077091125513622661702538276265216089804185679763368658209144056496417614596147657418247525167067228160985858612097779841270436813193074235518019817311973530234653397406251007574284529389444513729390163316048830212278335161821072676495204900845372572692931607525110503656797747994438255142793089860382049229681086608526313863448405271435392920485709130967477225412982228537718357779723343049897199271317518012526382681228040988585959603453515243587936905548573224399567489286529874440069668755532929258345821067718042326536280504987417725361935313058908805963529244988195391729624662250228431322490402788090230239529843636512614232140620917694087692013573636576867395545712456930515587962245041467996904949014232069622710285083136719086564251570928859298696249573710494878468682061816355767224841852096588539878466137143358061799748877657669522573597159517132037480917048917918931141673617799223185305990457097403369511380604684001515365593751786062253431465455479067962698640713423004942316016269433168749570092517386597353433227421456099505619497306908938700124049404732684742872502586466451019006350704276386268372996329399309302587488673935232392486131779150822959454893990989994821119882463751866381656708027966792322738657448354961916015552987267046039964772224483787337722792242441632404417261686199363045911032458082224957326793820671352342787927036600235321964559523468224690663103536160742701667623130754660881558669910410369788374543667525557566251717224576854962028283991770256171550237696525041315943624633612004601546997105751631488849160391120502735744329830058920201630606460226089142947894849701961189302678251060474593814777669030000267873977086495744503259177645760567277011976115680434128248084857995854849098778081980554146953117043255741849208006001091820380248264475063869830866026935814713782383543355711536949512904227466811193572030588934103091998887898623146960406064103905051546188044979218478740517124257217640738462768304873318020872425094057671280651289041090785743156635410221752029540540366151845297887725629821792755706410894466646854134136576386418153881671144608092810153440555549172893972926049028303850256919439422233224365005069579750669957029069497309537278641383222850337815383938120775854272176733089362329965307248684813586083692192674171407836000016373562958092747691282418943203932308442162631862860511457666116762393981559764671973420963619601892963061607742554406149954389113471376125073702827704464792648285655338072079021830460286029037908226891043462506989941276628833622189808369566071512472664892021357577216452591392965233338361968787902394619622546087545551564937423735590623034492241000735987306482692132598032139277381446579743873338529631316890132896418326520790055393256982983113347615347200846157748702844424089281167203783582392977128415178338251462006520297700253113078882641261091175530506715671233060678327345749501830761624965397244976369306193970285593861245872423692780509931140287867920820672520853619292173355121488331533498765087745383772917238325216293712164066802671401318644216105410561824326666138759615922360070030863835162444393065609153062185321837296281737409985233229168066799523040594720102120307303197944020862601403843185147443001622931047114357006405556916860810344661823177756482712608584181929508086642827678584376843078689330214204158767516342442924983697821441630344029107737721093629431837595928683599385803691003516830988368334478833103112862078966728708839539134513257785986781122677869945603127437038287261119372020859590064132357184853338352999265939704813133874327586594443984666940156353698955189506740771669902626937529075056207478424426994680561814316901781106421541825021050095577030595537847624921717946652896502169529228642636438162460331056319687044439008478433376316035537536133264930362488941254125186620205247355305642468755070043523592720067896181610412006300295648744831304706143869799178053106966174259937976995378191602056662111189646822267125738999421383766254168321033601097804377029787544926302140794273408828536576098824760026429885988281491652117776823535438798028385674812512966169937189580851678130581341011893964423254835785849560373239686008936283271561591730100032746069794678801604223349918820928853777786195771647873100154410912400574723017867944618910163128050002251919860858314238080586081006891987458301096065504116382581905104141457518774055457370940412960989053922535361503755938291153882898012823276609377396977701222015222497267874209604972796652098615599398052854550586601857609326084212394739051541133666543512903734714157145716102573985646010496286003498710744636803892421812498208040932585752028746137846602887063197304317573067007091676109330024667999885226328868899862596230598113811363159058005002599162393306173793657881923962480365093614927966059230748359254331493343505112070794869364272934990530116077307924095308867354606104489997038569460039653226806233922966281006150050904298767262567968547655302765041504262562655787370374565627821844269725289523373240269539572522975679346932155863090324789278909400102675239527538418318174130036191078387858230271149350366721312917039543756105724774067070132717459298054023763207205075089225876553319012069987203548246158891646368914606505884994649643208521133808083468424653718605168560836912725396067318529766376598511948842748187559924717397212020852713708489347673102008321238730773843866621211424802682585522505843762126413172706173854782577412208221685277690453420279019731345318761753253551785768735464114825051166929925651899661155457147271083308245715729404285268783203485507732994638153547864194041963678628261519899680364118133136501857434479170845662151467285416599072894874900441194413817207237292598067914907340744892953140626258487363899628785967088361596842584624351906318574667602181830875483420793397007917918181208973103412966505779738750687692277759099719316675417668367213099885584990276247819020140466465106011512665241894583083929608771655650774054063373111096313993661143766519906754140619604066860103181385602205509589141751877865809390107838978371805733500386453632846386596605562342394862049867481702405755379015874172308388659881459908675147836555993555748096873651006915200306624422945990980689317715506548059668157619067088323371790085975301410357323459420126308255776972539905899842263527702495501736470058220084535380488096010549044508098635511522226549083027370968643719323967838044870250603380996896505032603224232079934304065399960629784381047903956976868842083975608137613078593103078114214602993109295613228286618646077204868900377634938403347582784444758454954656938342369671356635161540435297285154110632609512592190971861566433996695985336194519082941385456810164539024858184672159583241157019011913822025039140578134262893443993043551655776711838632347268676872023546785768466362457366541713487511509323272108765401424610981320789683227755411369749357305438489822123099865020452903679591570653673056115420800095233076378518293986184986900904075006159559109758991799635429354238402463990954737921262742691198488602510106080793950140440656091031431847170708577019584107636015198673166521134884538142043602726763084205406097073156344035337456071497210077515395668445595019875867019878259421556299872095700280995193621391152819545152238257219690442845064235890310400898834986846546927367218225761015002676405451925318768184123082813220746378608059221926013564508351455418754157716910823964165863718920719530842704538556918166952644514154388434489044299786352476299484041427631937905199424861809916566642460408709477017567796306590732220891344693285935477795833815732092981392734069305846809052504610253574404332682386248298614238804734770045719690744942847351213143265243538296973265480605830575643895457114676295235926840522276448786127333579900605933813988293873182995023031678937002246972644397026336088459522683650701133852500191494283299449231625221876251287028630015779137493484692650401783246692957000637225858071789159193732084944623820910044527368666951211965608313130403232407688480844182935303829162142706504765821741528316925865638437454646192693266287794823639977490590626708468732384742902630844694957113854988184826212855604951330185507026944722512451142364894450059420254179417873223533453874064457667198178982794051005577097832095040886267028851839651390769911140732636047074259222671463592332364781300136640205906782374544180044469721525149713349561528589189451545893882711638470735838188090196022365215534753851131268618313690004522360719100311608713686309935361976452704162829407634361013147184555009357663760226423403159053338374084509444514096376147374109271685339071150290163156655508635053506385591410387378538136976632225065617765760494099937698715533236220640011933689020052596254101991566175533559381122184874938089769161789585806128359299690273171027599885702084314664581631859092991412359470475459422082497254214219462015952031265958865238176308118560614513709000243439702713338735638909418350855025322373895786275403279871314134184506966340272556585280883786901093256077318362761922647269880294813885544299605781523098114226054161908688003136543200946933356428712941638040914746913016905389320886187578021955225354288149596299250109386283457051948593252917246156053195201769225101789391869219716894555114225113218219903828936180697124043399806579080684762973646684041313739475622926494605780398815139796912504183894353541598884958385263242075339516496914681359785451442172976169093203914311356438128216346387873886733900374449442097324535900627371917830791194103309875055095820651856597668188395704005060358594795882822668044033522732757172121518092410705463042799084078748849628947997927740474828275746090125502790198696688867496766452627010127349849802011336373911508462644888755136574337069815974535790434020215855301290117736005707948518405674043984693767755262728515494941883584774746962501558234585227963503745949518200974287313838462882703432589515631329440890218046637415916919611387692300818765476350495106742939553501402785101895739274474703041081469306197799981597539100699486653076807968223498138853690230518554255600965708383996501145945766628811392729533537755154599410123899075612249525270570761465858766387572031109683374222529221700538245385206445835487742860735146288472061065947895292773337207010674577384623557129481640111013249507984386465408624652896092309099034986881064782388210277736564220034625009911272394305516783277590673629991371624498175476225648115108284157743427735835055533442356808120604479199180386036455840148594219360802455327335415189830049004252758545521080254700040891732031910717539769794864145837604636051389297932665857325274209467316942374329585338524628204708422147847169416477453459755633230830326800999049614577550651593217774991503511896709467779739601463587037273834200414014050685484942884818897380074781545724350503327321650977603813978398204534905672702722743488684094218014076709593232951099266156987229579975371487182025415767439031478628032022350307877898775199971868889871151622645736856684361082004474657135902892713223161115777709887114226451027814959919966921739734526929792207256822819110555792107170787960226715023088199571439817006794983437401144741894373343865723206322802241429806739205273955270554638662080643951459463361089931277282854716831871710619071293560427075780556207014686150235134888202154652211217014557718816283194390657501108395076256498541059405319683275072025107609482362728614807480996344746958097394414870205484885320100209441157223218771544916508514686887049718070389136027930320538944484325717552691972733243196875048890546824527332160534108643126850072990132368379751188428470596040460478306204467916617294224479808197615513363471877441179663929484973515497467002048868116144087091620477868672787272590242989901933670734265011820820958137920411575666576717331178555064086381825787539960014377222199881992835790076251647918893480404878170692617134690260010449108158077815482519355512639178820052020374850596304405218159311425461576606873339044482539372273381257420873559620210862457984105685604165697061797918974231950682885466792797656331642108621122634697128508796080281458514608949472722052580784176696675538388397202432916663848489779298953826179382805797822136241437701289891682376035282859846491271492351184449006363105352978211727069123898654614390686627513648914020758758865549031089910534109731154908920513755048226869510262276886405934722759135613693542857195912604331441167041769082391330240276838786288955831591257441112171295049444269605803919970107400338686278110479357061589071174008615311542726924614123287791244751149820555954386305353691338059618841777000419323867557144262501559432903826425034546080420865060773151023929324064405093009160987763596704987854307668043582220401267282506273821036253414182061304534921559681189190706293852603876834964460990470103508037177861308576541529066506884430188167177423158981044283446701635658897614885557139863659394944453851852350392138698303999785153279748844761321591578243772766853075835844121880850894982986441433199736942425280259779068740222919657918195749844816880992280509740070089434028371294059692649630525801833475935744927100810020347228369112818574157317266427017277779735714190775437774027685734943808977838036550181519986271078909896421840254687404394819700748988212679567089735844611228114638167887614816124615158069513425608344062849656221955901298156437155373052017202884791121134132344439430746452083769340596617973058705655439236174187220671443362021808482736165852041289857070183952730200283306814889952604535809774421057696323002697041952508118733010816573913322465244279121073604005863579521954412671951771143790012413918157657993526986524148738050253046942827341036656615564829413063282792323306810481746117718567400961552966843023258583220577431660095106190634846234183435577015803219997752565707939369218632009600820029922344112950540148939814945897234937062255351626434082942985357047730051032062158528506644310500980578154913911309644587968325872218660225042750338337139033104599920701316205272517353677412608081646180585764947978167118974760079001353696479647612019741731800502529382988216351475036245555512522170920757151373564751621307181135897163149750926001813843926291370126269323356949973857655975469995495225951252567221167213215680348618277685608122152665345315842692263749996762861363195197889740707191514279993390949452680927963033188162018255147112489981813099735874136058192227326976311716206798722935168487340536949036370256941544741484351250043637322862757474550120181969635491400829773962337303551106934307852668717480231869392089898314283117492831960906621393959461928591008221545872131000597324727334663654525055654726892025473836383951910634482045296536742472813095984032208992572389478762725291066543767952548571899895391007678672382045565739498029558239792568148687040226995717738934457829740120963395434996436760320662543661811544195126232695813705526044147621059422085046345902580020344203894669152569156284267301312965231801276618417709258094834371574019405289404130523090259605811958475061224594345738152368697880514281923390387817305430693334664146533025300053708594367231968291482549255358173144517897722808415715724517314492050502107355057082309891123638410509166523135554500050612264232463678184437211815767124427233709155583700996629009091574719370764282868401679361556152728879827611215836797626615825955601870218595761779243995354974897146225656696756721306556683953058555707942330324070743572206789483029279720697927263534848960499283097946790983517698089417152535210380765381808635998607756446582684755543809801570480376442012364043609165054969797435209714611949537190014486320789904002600887664205059263128368598305070324618000914555563714957205593300290656608350397042897666056481246192348690111147523662333367759644753854933105642632958950974154814454027336098106689558445577428116206203168958174800608292369837287268481588154852108874462879037732661605715616735223956079791343546320215529905574667775992220769876293682538865609511129531425073863828174030677205425188372281158226210577634357088040347836465049578185841735140790143413713986816818553903327231973077516526729948273776416877781924842680908936050012312291094137881121341424091169354971412023695331618782371052706423480388284429582456421817524098907973935600994609537100191731127987631931934365097241256275451422203269277799920879575604736926490238716283659485250881109705672287510122710985123836144967038353331422489029832964678833008551768370016631566989961005051208367504185238618019969452141439035219040858073004509062877749194873118079329271562592791836472993309868285011353797383747032580646636358613022037305024584185607583889197457230403559899446050045904763268382054368116806172286535320461161297571531151703867646736638389962456844289556800138732730279773070521967365288415147642319380690842792077538930599312822372741578949618522639673516926377248038715843873108718889383615745852603378910387209692312999271459273634280730837980080545332234837514232407824517465340728010807651528054191364153474389598683498256738708711468025092396973875897359567195844544835651660028294663468053919576931485809957695391963021481439951782758620078860152027769305469488588202236247176587099055712724179285484146665330671064268507527966017315640394954971569005384360576827187079971439065537344125700312382121138683915246919261811602483311175826571746852769955867828867624928320238519816736822626971072263273267678889523375077308143498536481629558731594167041602688455369937830665546856605930399289364049225694526809195467722640987708225806868628195666260750919873097215713816667486940374525756694037096416449150045686709305078463312710814195375448051090799243304885492946950592869843871286848312302294583061319213423166851351217911149449646601643807924593907776770106510349732012402193450008406039865490195400441266555481928861421850161458292667162804439124874528870037910054276988519606752625301887334917078806789950623135969348891619394195952579854649406843130876174353850707381546658599983344384453401248413115950047882581559784087431208111519143080395505941805601763938179231292637135728886656370997782091731183374300064619915832535668037785453726787310511518197271100528555420909168155051075085000192094813972096070365885051045610718714826980034648493603272875429360139299054118790743656678222590894010491928997383809008431217325881850906892536397992827423534110715692270133685501090474601092978174560431491544772021875710211968736253678111536524424400381527012515138530989728540140922330308484840780083136656905148889746690187675666539905946376428064234716032210792289964083685581515679220136799507195037742763356854819938473886342572530815906458491843926773309071662633235845462877340669310853953649392746346171673214638038404358420001869658328534034810039321570221703845056572271274721308711916824321569057985554365924302916361429876360194265764632163084066727295983973224822515103277125113565389506177759142551649263090600128104947377990225321242031745653883215250185281647628436080738049034821043995839000655547472164860882360715089502575575976091724774623379539628824005671209082213373261880701844078873842270721854505298748373428331909926195183822555569406712912036894830449332591897407342467455118199760410057451274859087497774480986608844710644800837400225552420869026682849129572329463983023194328852950153525338959184540621643304907267252181713479124819343522091550324380486629095020333957016090769087639593083666568119229601957036030204018013012689464621263170973648819184713159759191501789464436752734234727750733820260368161784003221615644897994230986520390578534152568808694279749658797420902331382240124155648628978589209706370204991692433638199629039473338761003554744043586183935867091099854042736209327723923794863272875360485112821120739472422457699221527230897634622398313372471770708742247747851955671001006013915461890223926924683258882811558557353332139330523883993609208499835394855484434301090649448301204637234290555540275070391104651181582356100276846886369699408409653735041023900284388573220921720916629592713809639194021174880710123410685735721335725909157436218253989453626244288892706795876697437116270587830727535845416014792863822680486001733488078492929454622736742028101092654813055843086392434794777963600353704885313187811128616137206203551009742303218022266704945115738377717981637550339959954029415907178910051676861514800344529881625538787707940018588651271856668755362697546395577847515191381260791910685130919810031252270018786564361629827653852737132178341966297642670045879403091425159757879030930166324360269401531931989135708128231157477305198231592493849314648770946829089003713364638364654800731406089863720427643638955842106107924126553720736029556008012066503270201067454409012241010797504854734341496138911681606740971051626062000972472600010599350158030476642193013442631214909387463453835569100610493401376861578918237847223266994642171250276223790392695393619471903691247320615210851335452252986567102961660288833339691828049001642113380321330433943916818487722751447454144041066959470237729827032237766553131770000000630699757852040222313550287525384183153205186173699990201103913605976153534733586201257432779739570804984900059156738836049296831421106031954829168007224408832632675002013278012481687061619246337271027553265388083901552366283385466576159824214326631498182174255793290523353033522210133712826042910343111450686495836693182568759257173374664209632269130921494936976353563158928833302976266681905296504961310708875338002260867165418352827740245839541977159278718559695756801126783184235481551824546869523671278803022830833647240865689698390210498737221022007123711974170548863015704422122019162676989322769644518846600109188716231556913228641309611842575354542495286371520914826214640308450223342386899572026146513014268244423032744321328441730875905082372604242996895165247046735141435516401785481018227649300839508358425871058550004160859075268912784296023144427813369038382434533029956700346151706422498903944574207100927998152207243449186463440024209688598192043222511609140870012996521899722315413634598964957907668498351892735830504875607023987612002168140951168745477256381488989276864854692476497070104643826912313263542166943196818944130759825056002882500384922908260140027614220371859141690673231555996933865294792015600227543188456561166912541120465222177839852391265455083810152669396003499737566902258121377008165089731685332494159474125906330600540916009220763876758294468639437653640161375645393652321223997636087688457216238359924592917483613807542336875712006647233028106559012157130442899651589498740015641002678192632904488179235141057981173456537032004382128081345700440600871451820002066142480458031871895178095062204682558392134931335956466311113742858581726832921076257336633415812087978320890639930380777910152282861459176872664830746482954152728804564655736901286783413174008446749366445689643249580405356253914513476905756637136257912914441688492684949536410968875548147552008549523682666505381416996658116467134030183143979663382001293465817410876787069365716126934637535543590908531200871568535678497165749493922027549140447146652918666424427956336078355539106316910823431415822774722258812963326430044030557428726356985880118210950496920148147560689713890348652775295616571767804007425475087265578694918702670920127607988954602878750371383407500084953741491248397992149638132674949944872564106427050352497813449738765942339111157701898342882122818423372517227304993236968407889661288869507990313981647156501256955058865736792069038095445266571233039420967930486892162118253006030774879805927108351221686904400946527304742843958449236034815635734561747395803479807367814618573758864660735383328943141552780018022432200012201649542626533345316318509107153600680223052557200819503778155229171111563661701201007213890746347877267822715624483439583071557735349644952469941037543562051889406910243690973997146647698736613802735309303423462484963353151972525112357346111922756147002237924250595392420586442781083613217019646727329897152012518413879183135081103699453157097647336178429207417352219328069101753381980567216995930316043192838207984853235622096271829689820175258356987266412081218889031436766025620955819553368309730626100318770618061490459894692603685766393030896777350617741174469294323927112826544046702797840900807559963406067261345492782818130238411791518042491969118558093369164527917382064632432522767742705517117648722709876613755588267977011449351441305585686357515239879460508248681587479736993636795194967169053767594429068443377061897610044101520038805794635107455149394070011701467092875334994683747311133791266476159278146495607685624283078698012943755267716009627684993434347153435335663103647698111661280419838083571741594452147053612430371660585197915940835557828403659191857881577225534652126447860126273530259538139881378198227788886489104285383552339438305812507307965672760935097894445013815723411030090051605468035433866499437330346158914758463184271704815582622005652293357125457643485368976852970062416499268538305126250399770207066485091214857991780649716884702624583395146791827145345596390347948966112551443888152451548458918339126848410057195438920298603820888847289147507970192795516677949622405525215392746129656347897724119318215087847400469680422830945447178034377429026582531837614243999770798160170947287656841243597061501436823013191715558615918415935096454399588088537181556253326897778680308044923928631956882655617559837059882597581422015490940396803090563601424634841308054321275751402235471707809961784243204727082200628633643679997649170349956405456386254577315102966300781527455787254790804502754714127465144471693733100637679292393645948018226779622863748546184751381209352376840684525565861544969863073820533862052704864583959404372266990925879372271154206832533355010330615674916087632386397466965228704496664241155489437786271384516041417937842196037274315407075583087456887957132745218188957182699413846042318132327506982689326741067648975144304983301447924721074914636692418990058105469457299901712468094421873450845591618015611191369244312995271342396728968672397815791955115823717287734274855044849993770921127810180618549696403211003977012387317186263473617480854343764705030308181145388775041806109400829531106546693495927213269119463261309884958433709023400204577484070424714210294600838366554947771881376680813182840814144563385250163373246923860933430800841768629807451618378561189755003178269241528115756105630039222872716648206275194879401493982719434332355617703413424308641202842228905155765802975853634992149237171127484643334877647273126569901800681284855088533545655189397207648925267301023598052524476113553904172245970634818351129669184774927879809892582078132661955891517109885376133135230282448126902249163806428557578604781196989514520333345501589502319782237056822266715458577799704415693103401455050580525877596103449651055948078212075803251017248343168803030090441699384021511310820625958989681170948774964446484802771257056335759051965567983717314240783375563256322662696256259114973635502929498498841438913247354292283492595725409170075746156040685171590564625256193739507113531871242885054786170594879854238445413557163596094116760413954869622014823478431784955513434144548318455767677867784873082864644233271595354043181775202930332372534041942197391589955926260977309727944170931182932020423053541967645686630409100823734221140712654058180906110279654446192044934491780949319308019349799536410438257110134627255082413617269453207247276163883859584657577266972981597285887948178773658119771400026720262239466459047499461829633612557621946428044682623709918362501217772204649371992900284493209194123441632043626962816018910915160018451355726655078594658218799829349929609535257109974624549129037815446286320156848617217966444904405815383006714538276664304537027622155945653408065720196592356006074672517943099227251291290662732260760963350219906082151163637667616698485856598658806044379791782760235534534952737310167458320592490332244336594651947398784760075400705064542868232363094319297602724932488926597870479061923249061198276768168165784371021871362411198276773594263036282444515839447840165089271189526768225030932297811558292965761235994829379376455529700363219233032956066131636757566019212852124867297682285700772205499472688454716158590916869172018892399167282657029501964570810844098409685416737056641368901387307782926473432766797810745119084066157587253149368918198721715077864899261820257314717085512677608886620661662010282919656305358656459910291773259889870304161848744758986500201794954126277476398467011914766684264395854757587260960363789762747430052026151832424371693714510027388527230115462811076301703513645053735876873044074283498568149232850139610957200460348456502857420878553102529925089814019271098522865266861582402980756662438221777386870641998632821832097750570594164791553622750285378086213759099970734963357691165784286498101828832918630325409885153814442072843774819875453019998917204416439902107008347251575119799884078130811647032772455365679534308312883003641523160182636010971421613016896904407014576864659893597675680303135791830127581746924236708807104064605438495095314733215133814906317395524045339489745645670953112820674953128153678118301556027402479469753032482390118123354712603188900882986720763161512918383944084727855243014779971711766438503375769451068254409262992889978327540693819455230898368807400587028461645110509491397050835369425710122781279870510730067787220119846869709995659657832651962041464681902005213234877653345283907643117759803552460168943677601520108546237164043906011424625157605187553629246879380019407996759195659685323617650189226024073651162496496580718970886791885063703247033563653886642663144834054045187026749376991272995893462985256804621354810428510044836894584488573597193434406383935057298790492764247046133292833837124505434031808592380855048084301245624001461018353661100586140996907017706281528988264817017197289174516143091175009853030387088945602927994312148489353890799725231164024017605974687663597843382912072734299134136483468682544871381305732549460893118151427801410434024687669785611752295854596517806704116868388942016743165589737628083151292521451889449014722508306320672519886658577951676031080018238886762423184258936565743747426486224706581446247790844506460764098124355615506802324443525184428457645808248816819429225073552588497856358618168829213023258572735741465482248106223730188088706783847932219201635316655545885508420565311693529377745556191241592661539049401868722345787625598056102550278750671161754723386720897029570715644854923828083653420687953322874193106534649721081792165335729415913428348107322966227941385610169949274869016850094787666237964349701425644085755802258968758812578743664886287717970485044273481365042971539227971504240497827077678799368168147285295381332619359618003960567466380118289541101715309559662379608598479804265036382741823039110745768939703624798807118677643022262145137924506773513440221409726028942032229236365936096203042387544244213362447207401025605954543204898823790575384530474791580265629993565601041089055081354962136222236764330669236087942867998363447773717822530701485803931431133522623689402683915820811293600799792256463624413917014515856334758480905104861944962353635574411003427760876579844320647472211506534789354879415432662000557664874400702358631061112867567730865391504827417328054874731591857795291560887584264911863911841852874540432300963121291899328488453689674110856526632349593035970454596879258134950730801512237042413310967898033384851691871316823039431766659205906639792116416910333211732681917112806947849509281459332460588194204021589426902926057010699673635396897363845514155705073813326764618070975142660914273504468525629519952523604599286153246830238774955264425584503173373218417673254136065927769332408385248289025958771615036640461954767005443338590651416022516995605420337700894909050395913178931887938933068640695419937980935140503057584399512451061162205014095942111739095705739302212187764157478456750207289272765641775305338019835287402125453721559989894616660706353828900320827690392979476516821958092790772214729339343072781664247496633145855028078389056553564635564160286776874374158368422854462646864462353699542877268214785937644775563057581217021223942215929513794009769877791059786359074549512951677091588680394693564700773623124999442159982705162444643403327354748264162872022383982749468756992544127155152289610879489219425138510885424223933425682077864939665512530558125252231580899257424000960278435785090057460778869908256896778826812479335067239415544346816452873902810398160355797583156627413424263951308829962672935413636638740130620391448562163586144676427945430222444394730886772701244146131160482704194630116622760360800845028887027838488438284878662244965436545669700815228503787625777823176173889227979610205608387482029971753850472838414005683582165537226283846143868179853703489124735651727703136569072925486459628394749329249336562551770019042700716267474263822394348101471000880455610669742052234413408691841102227604314054739780963562414933545648968337013978956997955445322854571126556015207558948887767999869085344020620457284369226259091244337782219510110194952353640952493186812141808470552008210468567492241782896238004974014287678802107986198937132497308883858728186080460552859773366986081931580304540585966010731472641971878703549018169381617727976342174916141147307767541689473640821570298118834718907429619226716571981092206126594969902522104082004084177562500973553116739607137108314482773073727537046564887603601854226091156791782030877156600383085415921262982602709768821992227245633456033402984170089348580806437389468435755232523701645160586058005370534017656300846067562918362469388641079415300781494609376159381014443115872516029002533300530491031125591587861334122621562505499686667116697372314220233027903974915062758079152033107374978137739934983798514896486439820529369083653298513852959844825447156942191973602189907285673105023059877399534683497881597460967067590661030116026770725262124454242290634107796253222954008495892264751544468357337292815659475124545186052617088069198848910873965442429123999359388744545072308036718852235090958786134977073582007292711529890049421735902400274899455511907695897303317314812547847285890058980057459725095676830850357309980942629698162570617172024101566902580135820276349259706776517030599451741939630077706230207241388102706072150666308015514621984581101667365083781211850960414910136344644220116193346655020412003202549730551138377354235852130460052819037344043424031623255920822463141421848545053128356052444832398883940373162527063110077204819351430407037232958060008896747343910723958022172515457231337410266518050987620797705198496024442876176040641234223618052046331628172874684855192425123611890498719593101133439060735506279336182046087437635616032606479924377040494926391534000099956518491314180474742782032624445585161841063232531127198341058509694571791743772022983141344984181263094745140917994587343769445067631654570220155294748900724236625926658069128411741972565934307855034026000433127880245296005302017491184770923880813377086905485171862136335635077497932661179685764956459313654577463563622678131774190123582730178019319789421539252370616238569032027331938351430614419769726570680249212406194584147012085183581172798300382831285431995879026890758869720550469258065592665036104482956303805850148131807493255784155018308295972932480909531819294405529964854528402856666444845617607883487275024429184696259916314298200626964322911365223595618790442190915234163741904064293120081533393463432663412927478210657652121240963635084951190806425113678903704700536265939639097187239274413521278116036638136793706176845126878135533236196418777735794063744399751983363982824510801653398986930475514123871548196179726441542761765824960565243176595901080522468709618603825934910355599549090346451784505460945122509768970451404852638904766969531488436921468465790467107155056405276433063346955715368729088194827591741393950044629904368951379972179809153031967778366783498802744375291879239796262605672632801105977397495860241868704762462302259752922391848855998654695994290436960991653250620351890695407049603068134318829114476471706219478344759458607152793117750426305237594335701005159914851039257743277952196902386678975282399589880189829153744540879727449511970497576404625510071946475418654711259078677231701552814454414056441076065629034706424914973731855252657655915937267015298836363829025839092529819735884839331092348473703737460022757151623065051890598536091255514933773687217161739389500971122043555318625811305829397585648846820876319378112237882721851917644685160462801529359083069926201800086863793295332131053785902819606224414914380941935648123261221455153043328210800552145470593198923604970930977378304045271190073873701703562856546552208630171168138485910286349264859924022741441435660375640530692954050990238484217997909860380126065240544647091997480371247742818319547416584137297060888948612343679105644728044059052769693588510066599553764744982613154147458413479403407827435527415899934378634616964542563324510887390434626880815172488856575612571998551880807396819588247315778569588579726415974085379978570597847083721998382401289480326673300502644771440170086246566102077317757275896892291683275132432121553008540570240227588140466571584188856633482098126557381735794269530356082663681053785303468029119627091402006717637734434992132906987381162122278681352164359585266461563740361463009582754229607723421218279808517918626157098621036892733391752360769319438081079071428560719854702637411237271673846943460632327681817721881217404728931573372188108084750246839611739352296273336764769576442586090981414892738492070119582184778283883503133317967453931827387759707996132320249452905067469370496234138868005647844960117698588924408259491467722606820372874072443658884898417765133582158616028768129217631485681167481455850458015301845545081062282791506369898468372601458791553071252587204073864818755775998303535590245256689263334999299753326567963099481178870343932593259301199928433592548290434384870248877450430123066041839145299600351142982363630821595021543670645589203687394414076629677147006159484586876438353488049288691149269239926702277129806495938890445282326409737012194724737124476638105373401953993313602698022022781371198710528989292266305812327721589839719807465840904712253019000005727968094215232698015347865979998253641398872815371928389100542183553894694469997845223711493877670169465605400908241548466632859971670316440712052219663119559906793649491682815712076252840537031559381127537263653826949809658151428090708009470118947832354884173605668299574919054677052625699475468149153881651978165504115769275919715877828849759891186908401729299997183131001032604167363934674983601940714211120493109472073697782044527136087941321044933149791093788211917963096523828575666029135647882922782703913837372041080563380832502288119280815964666664897197426016637271638079349655225226427236211908849492614875389575863575182263100381628837458684017529537455422121363230211177887976711197526146874809247617217483665099096947348467007922719015444818059654046458415334033601972343125922292153680794636361201728956927725913434845262948338360033979709696243921345412860853481562155745739148992398243436084493110382074778049860852108450911168201806074160757071694292272965624941606769712480457664411958613195388888654013578886020755326092736164395947596292862052365085868346295882682125269377540435653678778736570683177168536696222977599092013958372029993580425592941516698923066290432487752426340910684291598215062119785325929848381762296020388018011978411860061631276581658488518728899529558646171286594803432354103212539828340269549347688688231672205558544689809197681955728797548263605843228669669947443016983300949904173927425379181583766884459241313734397573243293601563442524540169957363744200017485923869816165104968311897095941118505262080126783566594186189475584808578276386864595562934060985566794901352587300607791304723859939472828906803950530385220403598069643927474712125428995605149560365064452537765119286205642931655513986115255849565603893230463670497843784422942786797632914333702664504158857461835996079592556373141788665905509810475955966276986320899057604680616138347736415870394574253690926598247279105833639174733501685243002640259398598569910774116382666029673312255071746552128894663993065883717744157914920514588825188023331736430445122393401461595723539223009461336638237436050983848438456789336070910757581376941136103440454810244096097205115263120290807100144980290477713441205273860585098070793165125922436752389261455434720250854657116959486318919028286047124767067327285689613560113461470376040899372458430057715604026185375356066159164299002503658591770532150155072079697227079188280308642245352263191566348307565820956212199379793686465107999831220460679433371170484940514320454603217152511800229900047040328434674005010661504029052067875212679640341463193811840827080048590801371070845988120185526437373040504067153412412739473605329943144982000958481015427930113138845930048931548727748264654285161177098898584767116386422989309054672731610750083421941281369739980959006765315193238047283415323763504754446414667278281343316960327449064545873129186691100871465802424239550406906033571043073329720740337150367243740888132402123723909915782273921277577859329353629867181501203243544596054160979376311119442194853591809118924846090007789924559630492702872582113835677629929194154931295706761966497475515149113628975337270304774530134358028238783758588015046397140038331391522210490993542940104254430449690332988230216159382209780928364671860614363437854681593979259630258690849994757694960961118965454437184374181414703869402635466487883458271521077109741025860880459015753771266040201216161618151977776281043247396763063817384996627967363393195121853985966615259679332828650961547892711033017567891679025528225000997982765073341307141009311104012314162786375422756525411376658639820655281117168345129880150110143217268300285445422927194612660934786683571162324353417305969394119589479322533716246712902499158115518062057641134188216358774726127711847821433529243287278360087821725423240495763387370963795801461128133861743053237793485493685821440866206898080490819015588600287590044246506779424259355554743171317526413618610105037264782281824765987471503403748272925981780365803811641539155047585254539610162518608482274142249072161801884461958797399107039124885075139098490898389526230158006336435432893452797395685421124196815776165263475889831701589152298203343998967710061450827880467099179992375947564473027944148112542256935178820854354582943760290734622341784400151722700403507413925877236712121266305608056179606199087032727688496875554408969865319816561907805779100763048849065807034079515234125540520640610764173782262776939972782648421147489944955431072984749460075683466187310421540612343687725772957848938152332917308926032757859353881422440130321536717788553180481202916174096499310709129528960473211694685652459884583738707454939793814516391729952030341668024090340741833686060867408868642101604083227767799111880509230638992385626322495506292593560920381045379195870906944008988313078923946409430934203849328553414948274195051195928977567453819789177745535416467268775394595504799636013652954584686981033398891520032827341568698653619806224445570878072902231977032949288652254527135519594881568933121455460411733179845955377105841455711516078772752729769879012834508030004579853601747502033726675661042630569475036024516568671805607144037270710421035615765437830268287003784951893582504873707801906614868199635973268118936582991524568095030626101392249195007362113507949604868015876469172386170619374151430135449264247802353714999758908863537099505989866485021092888588596633443230699356464451144028921762896808323323755499067454727556395672270574850529657888080670200272115089453471340204100950136010870040451857705522087027926880374222439144285667538017124289867679874485531133175754202462126062965397129433959700412793959615363942841608725985071760316009548950793469217185253612937063848339191744757591533879721787257070202663804979047280497978333482640699409309237150463819991065824740774925484229345322954046988464382832165221550805657984155258022223350788391269167990630545459468854188729079356945531215504293858207736106129271671954942816203655912048484412344059753608437564914344031533795453637728789785026813771282522249354795026743917427655744208688227796995718217911457306642635748589040390569304874749097001613205970648596337436806791712771105632473115060887954632606159563898103583964584988315761733609642644151847641496255532968762202904584897130754941676180591071503649848971050845499336667044269624223759061903965436516276884055588450838030648693197502028083359302221981156485041498344070309075824359353976533698456609818380105492454816962799700484139535415543263278913040463532463252351267658198336530227097276055903964287292108149081545909671765908382465468220641759670775989629033453232458435595529775793012780421067338631722887806810736800444025961917530047337766193105903113263056274504982861552824170729907353397196188660099922313994374520785296361775619619468393735392380616214849411945032996116058574642954057924973384009932598722951482293349490350387540206391311566136058337101104484561389232204839817202071934417069916961848340528106457900290470161833662643529951428971294307549147481882111107075350538396275424223378857493574096974968387538654610590924948883784871095893812749520779328703234407396335916718481014315959602874587913804198303251057539608262295807530956177579549832605622726560813022315000199288152411847391668144749389288726736334159354559339888619690069195303762729556620216635368752046811623422041198029204048863234325455406870356511656337456800176953420196815533433121671345670837721411303938012452261918842705303758513832762925056060509100992957003085737957777182977583874602270846762981874542911769464008471613593766761687260360354594207610712531001693840289678924898451761274343234195352304193901991012572725628242843878719661360263207442229765941099125618959282087693118273107851685362385141618083527093430887445229413235081552669234838354362240020760223016055159968849866911487205885001847697795068072049121150127922173027755242817040200774833763858415057061008332886160987201582658388025923166044584154350383509487647476174785107099281584275544009741980470445635591190448098813309122142504447195675640247440459880442101251704395796108500178286755879902654430314978646806105715948149275714646257472648687154220094998271915369878813125237129431795328855950970669050261309741277262355769891379975926984455398610260391959968769038058129633155611617718443158887693357679298389154833404390722431281690807897509683681062944539977967903580889432235572703660448547703865263767207402751171016152134398165075417940613363554789605577093644033837963917629743118602130224708558579306953514164340360754372058115571741260172268427148780285032261356116389973128801998110747955448946601373354912049696597689971081177147196234276620971799292635752026505704669397329309190862513037145443631213568925894946724932066808865015075438590609540973135597101430324801140311410480808423709160835530159777321740227253325753033621450056225409172925304755218178356049679023815494377202823418242566168647903922845680479195002278513528450676513237964189629933207172490411967671265680127297810445745937845030241311083941356603759831341743154917579044002497141945623198734712660831095256521242080218286022481330176761122443631363525746493483205500593119482698977933702795080727600381367494681456043159414481114385987637067048094536039565816582603686638218883429797332156379313714994007253945396364104994802817851783284792714746537716327695110579604028933395568431950292018823073930303250790093640154662414323078964617778487231916736674924496070516123495890491704425036018972679651224429668668770789542695852615694955405713518343376781632553476669778529525828368873293512820563033408233007068029405428570130525028921529610413540456091781268828927877119204988873653460254746556876047367214701408625215185197678981134142157390079663928517967410726895388206488756053320359868655755742265264982121888835906026576445065720997072468121032403525549627530131616983179920830460971140921005456652073843751056199846462736396180248456126458233279716230817878351860482634963025047068137585949085945437799505778859317528349881677199691533544511480751755866546481511955394031587538657726067937542925051620109932499167066544157143821193578866445143710836076323195046276573123367054463695477099815132563437156777898931957349656098866957271495605103727189719427992365783898791928725397107691846342555624667277313437448988745609231120191681062845664422548594399030501618658821520129514839911335412554709254948858319189939874308834676577459940633361104396411663041475971118440761681560232626910454577971093403041322821394601426536581698211207219440319714637673523641029442219094490170621698851761109395356544570259908135355663610496614172155568291610858008430352171289098149945537784207551970536065117021941211756971746510725865743585821003754990151129686746846813789750283881595497265487825034375354298677831099132909682639746739014215767231950608464194238842154708814130888678609322836812125474279507178933880967996018077595912725308383533979749501417312079400132952002609583719075462308587921989377351333232940766847732807031336089852771676335842020502032748140627657996649524677514167845087976581239983240525876846809450337591862381357820063364886872186620289303222156221287099611995679882798453938664537008977648102907951100441314588252101523247299835820593365716191767284996498002152200701962082352040971707762437160125589156933511462501308388909637291769321427815833304452745724534209635068385028083860634409958045674973944790093401169469390416365095740419032677796638861680357930953599740429686264188428660520401938728379331329820075002069194138873100034816955386673481333999977467840985187851019423438365450333828028986487328414418140470185551986581084861368911955231432258515288563177988975428008681614298270644419836282721512962261510314834784840774679780763864003981146309628667610395014307989730081019499868578426958927069819668707850088893336831364482942402738634842587124062603330385965897518357317366717834976232897612513036893946466947452475145630823958147754621307618976972407999792416625700441535167591456834261738852652331954346558271643459082198195764442395523070395639968430155983908000975326064416481317599669670404692876571676859293688026065305359677851699224605165967276328974947423706514700535435052423393429969545292377559081782888074692625053468953532644628972551148513637725700524961540574750545496098686304368663918746026711783331163412251894336378003807601687581626550014987141111914189525619232992540096141924105652663040921310831182073530235941504254816930177321385830107529743119792904088606240767021669652868554362788396852457065289570886973351364631834121806537558692004963594049336433307796340495513794687360612189425616537342541047283561640589417644136435198006572800895824518282887701200056816621094864193191004788057365778198064417953922830134108996838031802570906830632576436512369163007835327748123885768579747881976728103048608727536374537513620446312137190408999400488730120997619660444251957042049378049135663863064870127291425595665480028854012852618461578566448296371137676493049574869523569783250254655947058107963145614739845170057894745831289638302115206140827176499832895427084091614236009373402213495472199745520947954591431276699867046311466549377798373996418053201697452939628910767131849972390447360716648764317074016278226904552403610902549185303909103444311477533427859616311461331160363513217149627030199876470199805455670082937211463006959811383690484364235491854701675859726647316679724752944234000061617645528214076990186915683591270169436341832964131296725576984116945477604193177368458452370292944919116775393296881447267698151945625263675350860568484286078023072616074812353574269813243465098713597313196325516312125738531172073563887936148190407766025764365079729951603362037185739054754356227567002070873740701192750449550156306466621279610068886677189657545126518190259770528777306126183364299949755910190032887051074473903955235147834210604903918569327304781334564379654694494802462423602877190123925071155864174426167830165438474578942958788701093729980863033412067405933920518750991571947881382698438205708938532113281709027787074362731379376192674204359888344528970529330518369015331165147226640837450176560554151241723212387911914343662120868691254907236750809796419033078500922789687810298427298004743141723330931565452600115433543327650954851428057632659365173070831941837502574706220562428812671206878211511982036346880820023783262884775299634276239721748365150377703326287311517205554659645708705617502624293753161194240448846054410708732051748497128276802467716377380597496311406496699008927096940534121952045284867064442468379103304959171606418602403358703055961545606490306357234085590798730916805753366496626079414795708224912103248212912574988874880531004763010614054270560506715474741993775269950691263734359873072251318234604439029100077155947290568207101198803330162732291310222146705428653850138398536365981958948518247800127756440607906332680230461385051043210661271976660869552619822434468197010412892705893093819805145096111892438822304334483491241592055180951818912411678482850125299179937013067514397042084427074023113047805549964184709242301493323833194327167296937920905724139205549953427638796013384648815247240969883855396520762731375033700483232316752815677845400782148636023940954031246719674306804753829950822637973459012363802001948561016617986506996572885105927179071029371116559392912050637956620544132483568807590714021479048785628465051244742108970580165943252519170379425094321839522914334064010774279259317251479285008926439892275861748781806282354210692285893707049140780360880423029228459196010532395686547274764133548443906754587510818857356856569633017402916050057372250259312276654242929251948572735114148812697643266613997952029486802261791621537287298047415714813286937303871978431757698910611828270592914488705073625676829093819146405053455351240070394018133576012137554597801728425022063239411034135762270526204169140742269702185859203483323158944597958976595978790824420982430248380415297630515315431927192612935123185684379653853329845645573188607895916343465888583849727690150785581585228386204619126584151908430478910436380447394892749682706015942661759447900086196847027884066750349981712243824916584192163256424283253848545411640299430960108135539608809549348754293139932397986326129514044116688328522866209983298145510629195391161893128363144207141821464567805813110981650326542313516303530839950892094411751284792133406241492373915042648042713825532962454750729374948470698736928946135987143787511941825594165770189940936944556443561313545975237685751970792521634110342301950965067248156001998348064450036664939506504712365856869364217154205740337990006472492757490591259623193500164925823762442802454549538967792911619708845074902443201835195063918844803166723752770618293310895104969986415020802362286256031112246618267241038207701150412475977838889290194957392915404029514265582400549695657861132312693930854508668985895943459983043177790064185133719717549179031735309077493360061152866521827157417976665553106759264831635106747688337658534696908578003481214615444456758091829435567873918514101618236153890228114100578577124490522669259819977374990648355119873844107254508006164211542800622717327701795835486213254219519207859274457791930838505373208413695667492818017328213084066964690429871932585398611260955789137238272443396733464023790986597210094646639106599940735142323191867107588666786718412795678432868783331267454942900404264058241106650657834010926454320114092102223703844448372316469798976478895215022830830622803395347203438337417151115204787930900156546042829492970443476600746804335907515741322562976773140535211478251228805708149713019358549207106743849462347411777746969832303388818217774740634121797439454604452870197112911016930757470981762449055946380502731516206792433343732905713010562550220821375685420398677026049687798132795346325897596270189039297182624174546857867518861500582747605694308798973122843213051554968335791466912043904759088842905954861985029597927119609357183536452137220601620249206002180821356958177865312285825808433161431173653523860280391494740781774395237345066547356896418342230463913675406633341701221436843568772007946421614787337536438666388065701858572464824107794655246954100339663508041113450948736231186720518575838234685973510632036478611165482446389807550205250360738736338101221714844738866229964904673067542119861810705151935893617924241406559537723515157072573433879815173026812949579385328174105750812605594179440333679056208824384090365357503276384516132990893631868222334923546343404890013295665594520558944511325644134837014264272369387023696144829498363951723150054315412258629839045982689118712270429000710684966254533637012041574596879700410701331761010097108273608588559445124967556572599145298789949876438068275503981231851667664706834163780939095825807457512705601407212121723467083052754174235525413815566566019637076475244018538679419485005298723742515889422452773582673903852827473798809755537861004935066531523319955864724533412153057418424090384152084040779416579531219848013682762326346498945237439114965883418566205013958435189406199427277681740835730821476330463290691517415154249829480112943571295754135174480442519724416935765482467522396334456044322174397783491950424035704093714722325884339752352640144968786960681204776510634617935446458098724081227185173201171598134725376696011273859343389725256380099444766776068504413768329223295048101970858691965940279217860336943290205921291563147402604177654470931098795831010066874014266635376254621649119232460344700239418080765152966271159120022175509672724375610842162310486255124167820915070370683442658059530074492203778666206794214597556203027074538467966998062847807481808571787115740544493808172975398063721148545248648838612802640684470435963651483848559393593621472335652604206704715155827837858876791217168255937263689686698956909117187625990918923622277172187901270065202348271855092037373429182490334021462703611520982752924861232027934334896130258742841446545610494893435517937935345987307638100184744860507473637512701651844495354695404092941332724849721122717757784141146924430161128976829519695826606962791650631509667654563172114311682700171273215771674926168948524586081159295669486684547127146519033466531925513609516399539644341521459855082341360961765923299652845048264087535324129184055788694261481331583798204886817230764883070808685998797322710043021545253500594241879342228552574402290045690459602159563817778652277134429475919106349031272533440361463013786078294182094044758244444778413502411883560998628429913050703589677327046327883664312368124133974189559177592025981917294053103928631719215775374991421437646383778816380918692286614492696953851647955931180498338537107230324194405427742582603237675524942126691156876682274103750797499182535168081185470861476780762104112321430925268988948785407495817749504882132091294323038944945250193924003709691824532734530678444770590682879633836832639860634963170837773136183156230399684192014045129008489138521612685065678101773573465839989898163195572214957115625616606285769712279047164429583796640639226256793685274822557456135225788156428602465912188233967868185964126542460501195479604030615520959537350648969734560733600237950046503461403079904063144426479751448280003808626540850429959493760745227257829369274559051375369938045200451377717947260830511311368293686472593172200476433472979800190381150664222037793430168687339157749714516687747230021264553848305944619648506408171601030425979359514916931285505115352496929726668102688249122462177524165576188172223800793908490284091057933705653708595635912012219273160562937686167080689232313277071452468260293445716796130925409284213063348422418431681615469745456888907403335597400697373357595347460847472644712849449719223855131237951190235218503807560112966359073300222774420434851048048072352244108852063641722664111973899608914558254182137185061334075663338546800073660569092967375681273495794934140729975884529767739600461270516224609294666395992293961322902617894593434783782461904297755682107545168135705854371507998534296685266503022087135589960738621864472588309041902392336964043988058566264757808291156910449051927013811065478143549778986112550074883579450918597427815088466073748665357638809971215884957347591841327200805173334018288942617614119778851568427356289386265323501291502934114012432068814047475175963937881230712050623919561523423691255671905017511348296848163460811938396241774591569436468382707132786341684756639675674779290252054470025689047154726153694672958199321548510490552059202347301200231004925867921750173614132251506105784713750618637627604772708776121130315841638788177474080037579326309778329213085337298824137358149154573864555651964427177161204151926501108001813736672533692658917488535927647739731327624548880261795604799448741887063309085600475909779959492457234903296484597040398829241546987147307112209586720633711973659701299246187656100111655083003137532988360520501902228906199947525089580470733728385087859860862825584443503103124965511075903437356209677908328185505505760463159272038527537833142749837581370197901951512693251446585452538896062999845078232956801633298994921676104411360703229243086138384983587013214637513024858295096708707349343769648511932176973926187817834923660496502970792428334547986323495976106861930923962014410064869828550288164683090024001918970609099021105669744979377787720735262861832254402615131649132342175238801807407426261289062145167847312710234204639802810007708227692421856553262599687567137402418671340110409926561055498291126924346606600967006025874103697517926565939140156311766866768292014728121554599996456031522313558603990330798910132989295228100039189960316712115241333490246470144243849966252526371829721928014862826550449219619481868460539067323556941109675197303721119910695745438495607465581548511986017435678617507539281135997747356619549543339781489873833054574992285957922550485739588108384055407023024341097329432261330120780460602947981985299413667382345642881216275643554370661998168748751572621079707329715550202665587662459365793222024251003900831445542039608762429775583147225057897170743106638247259763351784851279307134501856829922898746948194422331158659841062014673123823959380745226636639973108654015645785276247042063494732279391011179776432129624129240622233592401473636938338344525487188506902564661512310884814883537014436555208577044724555717297647261863544480235763707156834465369950938614088678571886361755371697872062739147012566174031138537710551380771225533686086195963039978006587649564800151269942884385533348716986385220427445785788894686383761216217664396953971368505692688892826525359098278703296719927845631308352251957301905191153136781892254286190223592035394110156790526960365879831868633462801152987305921566169651941118057758375128464691141786883624161777257510897740505232297840578955463377756451516981003573307031353022869364138429472304276254553677727185904290187026149087715142639190014439985713961257751369215043402968656937758913362567144680604110963728050377156987512070926383758182295732968967072922031672437327574732157095409466607660232107862546632960349601854146220820484356719156071696552924153102914733142859257500100188094616165969487055741891988578173417425864675043965882281928282630859154827226740374405013218085452853233280070170022776020629738489353018519434821960911449013705727885536795267284495303118374141468159076105087491296656968444247871155986040635619940160387856141848156427983600762404722027659804786353304636370122585677080762221036252754005364976036781753139968325962588283431659076515896202157433026794661799105567795290056956796849741319041074944002283936216411678621688809514186968785104324978161450870120068798495145871909625412916294369658035493675511853437361020528092004711485767842309398836502708959600715138279616306193876163969663710009947098530566401565732501448376012561520833115082181356109599360907122243748375583137502328728609230908951969079113157574134277224762866271737746204972777977471329767704656348163686460202737456572183058716614851361699487060628038515145827366085933865214860442439975984309449802706081860053194631122749668387914684037444624961907108350921768229120447856536279484461724880190969035019145222870521616662765545465632352549764475494451281560485179240946273341246119928889008301764777891263089676080852823959004928257752347761719669169840164477654313685205931249712392174875620477207492066665360185811500232124722719759051145932937967571350465097577741656047630581418138120270074620191194044958618462323568999045769653565095410629637854097565409259118909081130866009641477264723640190116941241910119100250151143141372317890046562716532148792844584449862672169910263904687961823386516480384159970971065814938205958276548436137444534308800475100291356194333005068672941848196670509021843139638920739440388511407973430573795271446339136023136477527440781625123596436184270732566193879636959521012174128467383793128313058551049597873266657539897998830367549148608301945269088125353552007941925245574570865529985396129707969676634467759730921817251724226084293882763864058112235366606341687877052172617230621570527554098040304493868617658858572260362937954758849411476274029518383152189268053619452469504400778454084732964607208896304775596609788501178102628015727453561043751875250160899526919643583805289660042131994052663077586378684265965041525290942661035184939756968403693586258335624245225493434907351648348333858027607325673505932672592779562740634565621005597494382134360254591901736434575844864335273872349992387146213287208486501834173678906933602485792910506505461428753127751439518816166427135149430920166337209755755905887272069861671343639802470711009387096199563431556775854513338668412160737660099520693219742550668441229878566771101335540352368053919581049162153973923956653058173822325394129957477858121515684909882467018302997010550133012722555364496796451536093529060509757784456159558821457896097718459231945297709078335669034737843697434863284329634924232718083513935793238676139792679969820248492872427114924843250858042243966641502781308728487072972654141806979263307947934465563443012484714103637599674764201489380960081574749628143399189644259580078510531096704679125358033986744982595873216767585858627822077665623602832593000685912999910456528210613738016630124154610383978621040756696741141051225362117458090961734627278551472446750113896116873953141045070034758645238034868770460561340991402244164316460923510642877724163954114844999778604392669158342105934402914095100206138130495743286570199253930576681762056722402071515950166270246894572021609852311487355024770449666364877377451987192069797566031888026063469093972095109401630300619617265630268673048032743096614677326306811668883394534208617832538604578591201655886269901468755340697510681699383869083174581555000232427944481384598636435613505749265501628140502527538908886580797150376964320165178094004600238234074320195067885744611889605376261907016184513472070509948093916181795314603943265248128233531422809833789926801695036353289195740759835791919844433931569115671871300693002375410218481395337896540881789297230826740528611044508059971312118147090305564955294468047256879768796757260918961574196383140156065807025829434072260706682278131831177245754097964685255331317570042893070519732936423718333281914885454179099420892852254256193817072714216759521915249521445194248434994806484085930099824400096233929104332191321098164879995148407619689042310269074810523209676821477525398521098226857517817488470690572490523951469007279909948762432371812011775037224733024239783342582362143981797884681877716566181497728875767018222591923944828578848202624424367740547623812173249170956841385813413806388527652245037949285660892983652265318368999568147218047852305463924754259243740627291831844700312203812020087779297717328787556931929836318708198106281439543069537512059311143788229493317812441070351286757177226733166749597428628236477533920474842269359983707605593016651757876164692737112026780748887267631123942756180294615875196665311773563298817356891662583046308317671644843697500804002096243479565965530197047748752564668714736103860544922375930647992203590665595061768261757490289311205058268403420090172395161084985451219263616901356512441194320853336509652125087526243208756861567114982338279351324867484006855390943503622382082408050902819001211414735230078917596475730644327711036818275563456825380811019309389964843515203959167187467207825640303729946258466473142854547637538915908826156111113379250705220397370468914040999513759740789016993656945331878424066409282137314443387303118034138015564671474169448622238719144249782094507811063759879131583853107781333573680709169069317580757776900369519799370133258875239291102737023843374849088543566495294386461596570904321330539449007908320054711925113858444850959381525298969294217029019027386052734393660420347028251425567703842738299573531714469815064904335309328636563036996111499024999396619275196678950260061598875944388129672068169265608572875870665921111077844622406623071965410011334128439634555969641474716994199061627227043130096220923762802488820169834737112601563050399106438382257581635199854158440793753527674825880528759972212960741705959706981227298948187808491251248662349407433685902230351988264548603334832968854119854399205304642602524511063393520883916897165458324243691906365213594296901497789006227229347672147008733569532799177010759755350098390555916774821266436039921037526219817695332317531761896659402918340630070667298458759977148651123301315658142642550536523362942865919069739062749807379208720777073607452067353794025518296913211686467469483561589990773357282796348686078444708082546616638194372660443036940780561855648594874084847409267200141635877188004834784631586012705397716752234834632706033709050919195008409037244473325220955928087795486304940834983602237694924122879757479321283870317007202522863652559161250100844205048586154248892652787647524046609627024537890916351422025352317902951848230072252495959581038039208439208293770889710503883457166646151385679319908839000719099419393283214332719612901829677409541696799635607862802177674718421538014754853974767095764191091071664877319344302429427388495373063960811316701840508733512876621852705191179482114685343505106146371704469011727777430124598224374433843583920259956192957139950610574144243691614056728539496676275874469539758024400955517627060762793728836254006912463977372446757018731799757783168840953703196246558833830312580282233351889897342617141389060249979283853921579586714127376054255218170175645601533285231835430090315889757206841823720708595458682705343511564253018119538181194329109918418966855092806204210157355244739608376694511302686041916028650037837204672468843635992610809532372409925772495870558791618075989168522953307560240046597240211845028554310559941940785478627433408551575989591517145210506417654667882366155573783450185237337894039803046100259462243497635749969421151919495645374527113499069930133508349596990577381564432084910897360456224503718295370648445271793793804416824411863161692565564302420690975477438536211473039907591090165258551898560679774657389727632507632267816735612152010892180051506525129652519718371578517558178555785722750522118308925399522086654265367339798423896070229429039273026190771415045445914440168052333219189511728591464400229428335292105992253175602151562289134223236107191351451086466731182689571039404093233867054677419683545122665803958753674701746749040182986954870720160841187914437824699391001855297962593187981439528464958164963390949908343085228885013382490167234657057159353825254750782809757388535594114023599830993677129067417604036345637822580843530948294449279269487695757052285341233807728689492969323899604113455678757279291820992739359150288477923369214223331105939020545383476510780980095118110654551002697934074207332297450346046705124416447609054275783500862358040290102740274835740631792631334826340095216732472353210714024985420362284874140438776910082939694145923301233485361891898607007210403115086806290274203589575970507995221253726794706184257335669757372359800001541145257162432211947712220834360638189600477288030981656182805989637474801070648131193543124336927794209904821670256818101715524537715021429889162175848541383041241034668590367304839847893869190333168957173460952559310894666251183252604118030457618926965080670933150619580569783690292765940487857309057892286341502298068852784083226789420107608475476771180479144579151731331495094861520283529726661350647347137033104230071876524081879619499722157167495974755298708828226566831698652991331612590601353056425333714134579861229954114732570922504021284983819247040407756993046782888773309166203443479163227726427546137867108928017476730590375053356150532920050521054521933555115472945971114677571033038810848832970871136477579007160470332864844040566741742936631091400612482995068477303351713843038276344205033192380467044136995624258733737447492201622625876024085857426140365775817910414310732303236846133798418459696343951236373442925927068285768097619316940207928515152372548559345484482047286603931255420340360185947975976369645355271440252419907483593336957362190451951582081548677810415641507861621323259143823905313133804877342934828190799614659922101941217335830092116119573350229136961190560973173706022940204505940258165683155843134331145302570271638476050850706875041230437066826069780540464283892777132046219316220511297232192323120667636546750243035545133229133979266886311651185087117326356945247856672235143298405470104680622254336205054961102818137879976237835819669305639087506700008763776807480743318702050761581551347935215040037791015142922256051590124962678255329734292038601727822348177040596516393979307857735644683938589659269053680678328142422891172472678535120014371586205571845857186634834343049328723455288451988772242607563829132697489060695176598101637215052359697308378402151721779239609404369212361654742506657777623408931361782502519246573051120479534077207023482204671545245699500002754675787094843658386499351821944790743391772596604586711126294949157593213355210276438873033128766178278122117387434297649549977329199848269535877213340995045452514655012262748044463559834475377093008838056353296520569762106225195546801514417514558035444114454803566413095962466403709421932295466837660476532260163067565079052256841093938150972514839787655073654130728831030515155805070674198539862482938251831629451860637044206350048757290656642324344719144097926159175289319669502658588562705150405667029347280121647733763251989126595161730254710791433718775449160965542674183094906732309939074884053904745224209063879333581059620637157981957427080023585081705116141156801933177760089000906029844642525367117397746082679240869529229441726652938287522883279035666779925792240433800277534804862698328860310670350788962714294217926565041797320455576874699597114350622095342504320108835599099461221827559555172278668622914231725268874959013399748919273850264977182245994175142156012667229728493729096675106433757951377867384449785557390726148630584173236312755705723289511326932042980222481916152223779703573683690526344215687076346428228839042709355241025558614584292802268717213182287782513684029412491220246934312289098619006165111908627683255963105860528925306552433470855366749488088189851431649738677578087032630934770171494931553118195916020795677210159144501584690142619673982981931892927972278725706930835189981043585082837464186154506144955315468549664592295709908002564828102239520445988514641861086753452059627748369372576488643390073787967818095410806156049194078288529434618945903574629958507680362844759743592444659887904580990317822473037784169649162639283260738155061057166251900992107327504332157588917746848577281608077318896414794738309793723302062232145497530178766881302028961394944399074578413299772649017122730305375180102570124288113153735730180534595158024939534952145996591724894775199608056433703988033923365754529411159495358835260779935147397966045676817528441853541041756711564088816856167036197386889054910977782692162980646229567138379647163368060468495370889836216939264232939693154383811166511516474024130707066480359543572912380185833094826907669682494487051669873843612353906979370099629899616365523803502990464631680191348168204297476376098402432746072811743694122056385146053297627887220262184740491896617508718143574730965339654161492695186118870067838584846028442403204355961798718903080577184320767195451632927287367249250213391430166213938328604264454545803759374727690521514993569241862295543549034636503788581247952950191825079181841602615493516844100485608570176851979179421831939744270308047728710302932577598311897156947034714966090278947970614037952637792010587678388569740866557548049817034966482530570695125430678472935910600673691997572452670761974312775106215278074685845651001331513212009369015831195269432816113056622071936010559308381046602995822782262533604362632030659173764394150449020608043352335692546441828912817081015860040192646726655187270481246671038074223056456400680944850558254789791672653747625571797810449767461065457032656407239786533500122293642500923748214599170142531176483970277293695089125526813394426712967161647573004520526597588102193317469595347748226585012968457153926350227090423987566440749771444872537245761758328221734864285535369314502846151922087394981132077219279718085327239582461338174744551130813704631904677683783370156200580472932021395790779686039911168703381199222062324309014220987883454161754975187116945767007691071149730170944628636099601127573587445330409019446699378241337519984757848810288682957768599292523198173940909351434899858770994127544624378540695208121302320639891761574241656848713802435905790481352995625095302531630821500022450275976234491625645961912653194964240725442610027279604694603627940543575947339301482824172463822397839075486205351838605359112312053588073688407940834031668117167756228069758529241796882894066453992233024071735562002594367546623147570091235189498158439236057535732643846038446310061533677408862259528113874235010506284919799121713724894014673435730222630573143459905801748344860253412076446287566102890862137505747408216372594817795863459342995931485877611538262374274176466430767368419843271712828539692338348737239750479218873891556860665169039565808278873435631719868248749758964644124420180902187415111658880530240287479712512376739920323286268359308784595180510695302743450546166372089652849757559663429960670526814298867244298334966697920427061353890759713498936873458825963219310830686233179146537743153463876524345816806431125286111580948794475813197479952356574412547595679352159033364335596393498944624893437565215861217268027111364410642993168473287461847841052969286384414014731648217331102172878124028783876015871324530443020103068871896525043985286276650101580752175182792308708829077267791393010635952334344984505828561007962331666216240019729266791685461416883780017995982846867937623242667781809827578544989614867094687685978726262956925558337286344426768695281484798557466827057193386662928893020300645848412734359028880673401332053680451535103864701564036975025647657395251191192605536254275394618856129189508633169629748857123381721346937982531585919080455899680559683688893612905138313998280769671846807436223587927856820488949763333227781535328483904210813014676805322816608433198198464408915995035711975924555293155314342934960242346915390737531194705169912671246408496622372007329100577403911916892713885845185020044477865222628482607320934699409189860309447314479801812942456004668205849135896792642073510207785262183512922609655908427490725234766485403342324524661993415219598131008199999331990894786561218971162244162869689176930585693820719230183180638646505440957972734456021112820369299020260648264610847901569456890952670671346730147229719063427294691226069472991641214356228079696013352837639203812157831651159076113144919356168554391857942718693924328109731216437908571757349098636155975235805144721160743242709116878051719588709476840913209629998829295821771004529412123477715368222470798085847269029762188561946033842768875512549935117290758916721591214402958779730374199489926933159509026691937333141493087201921419668781327819517706512018851016517173648439890163334738432111550437790314938249044000620713103063163915498854644397417635764680145245209183896868440638138406098347356079269534254897124054196726456721777451536840824500453933092193299341529226237398773420743305029687797194112258146230595662025529064985274791515657124330021445626223455075164914319157300930667641342254635830765991419307633345496067178000258509754455564106581620598584864723414114249570591337504474639692094807970526416759366994949104899128544407696712482616437812620961100354547792931427241676900704340096783951322713904310549381265255306461785039435272874306694682706734728968653427144644075336780192003834735722980635171182904759759367897157514312113101930729360558903703325332843485095638356281371135509911182227135878473417031031614201964638263381840835488701622085576085740752886446826948945633383422121651695347993469079799532501668385640055655988503895329851244201013896338951819404806304530127550761014311750347954178596991297187204648842654293058157605237618984231132051325210066878531482175005037183051654969043481364201870389676333017368660697871074265594054420917789353750071714367315758517951797155317047407006519934982479547662519834922695033336064639978632369197432231579573846173481236800129557345661920445289792490974587744780177886774263619090173910126139621092391380404560663200531846921653555259720253103635025936033269434710141937205429110515747551873563614963215343895988917907652961721589658113121569996966899381777189253638303685647650349268504602478649025276891758074316202816661894533400915489880677248217699282563928883306603400889965370030310800715028721138079946712245269124914468313555001897775998474599616902934497244772323166342978681315034709018279075217433644503505398682666614921306648130472720256053531562878344289307026466699147216736177014408417162975339923868657980252425757495249836304869688166215117806425955361940459639295877120906491484703368820606584541580715350289477413254805839853995353973842265062340032934156711503745599780058886409632665550808448897458131967591977749192184392020026601118579378517926597863520732344932162291347130760755402466544567658884867915565054586530624438524870647485304183096279601833849174021553414979646156636992225106262631399757743005666806532057985889351210761210147308792702282991953218568922666797360440205653205009020472352230782763921461812551541999475194609010584470855459191020127884773913253077538705500812089923710596992011282782945316122280429558498368823385527645470245866344476342302835725134792220390339730813935592370297748319252307179999494213185323886152909549782867567248067171240506475082055949427111081420479786864081524656943810321950361305916359200493885481193061390175274309957454730985460022748235478360495046811865077857904412003420373495392618281436846270105261516745174611490037295875228652545803408364410383273326249167028479328894380860695640910968920493464158078995685466224508172895906902987674904700236993290437351535289935177470318705620046806005057021669525244041436804502829876117651756479494381471281475167334376815621671499232326427454124651600649686558217353945620328000701936978582578073706288105972894005827035984972200468034544909748085471216557497628955307011701389843597905145050697582391189778378934438763181447503170880510752902496042857872424354499366749804210360225122108320667319133239407512447441220861001169980151660460708177342732438513418560966090370335041435708599723880150006535257210833967762078148342164010994531469758554225707914221148443669379940703092750569479591687992810278948055723849689270192454524477605645244375593225200736030135367172679941894730901122806575988228043339081233088627689614553469257499898732736735427922781866556559971261259494143310262966231930125165160828891749825413700287741638603256575252723757225054112151061433319442927540215339687470722786746779777142141824689242136174730561457885474749142195719228113088040036677989842681284203794070158408680907155926540434689220222602157055092933372629432918833122832865690751133857829840698274393263894877980616419443259953092569459403301705441588695730396001352067388495368995185664578300890627508095920781237715512838279587175044880048756584262425592484618885307418188031851419149250635335038529290030172459898165794688893767238367592375148850140560806910517193364769468434422011477068408104356892495529028175627048522176328720532534341854408778690499519186347914535291705006139580560163295495544905382317579367406579924704485349959383843067338753844517570256243672019444107192458946084824288012443219712974707431087249016867152567072919144515571174730607239999382522099528301867585976794174033957989406565102029421598725753200703176217231767680931187426798604882620083870420582365133363710552968411619448305925544869036778710828056452333091154714376364400774604801280083139219279816247005410545305146084329447202027596024200030127988826740973939488777644636387249487573781166407689529414355024725928582626291779548703769147295124927352827024175507688754626569803590175224197458525897400521041721181651004391402314812536094604016212558195866610891413256287866770274990473689588868432327340344009695802204670771337711085656282423024864631765811101869262814502001928820781545458742111591937601946041692238923460641008327390055350344707437605870163765328811284295633305099372253673278321175433618381648882432550123051752889151497576018708927491119598515969840417989747329698501753010598131106669235650882801789641821751477570364765551321633687263721893691860736442311928369614642157041132624535458065527472478258643126462029535061394168609664436847996572047835655744128895942151213234217371426033839874738505853507196380958166131927714611387936584727506908103112660613339111571119956750755834198017323040893662926451165850108344003723418612878939234370521600598040413605621652752430793407446434527175392082060394283916497978147410554561887341765659090117513340983280895961348766429386535684534673884478127188492827857209699006405568360791979860117262605830137261089514511252847223046371885203757657062670933399316390043733191035581521638589388148297776958569312810463172449324527325368717114468974144489896668437975240512453202701714024104027663292218584832168896712722888526420724302219131924498456808101002217759065197352020229327046503055516951604352477173857186616400919916182743297165588276004942744880528424096667857609863313331085839314656793986175899337272405537336591389653290222967730897428627587991252870484050795072710140947622022869064078020400100598022415254782867508059899656150065849557066621352258219453555677805656739314801837551587418738139806545050474654263944613592247221816572642472417467974838949962858171097645159989747713258669868382167629398031571408287614968576622604712374248520813050867034928627783304011365043142852540303462922204073342048525081801997589158246149168706581807561030533608698433232162711717716894175541771983659468858171076956526258956243965520488580845813728634976068685872424587402725457829463001339148800215672481048588385003948707606463527589480070921092920429989396003059751924200593811981752145645270663460238460472052777801228947938822801225590455449758749546789317966493489451331822983357848129731831489709782237095009500248377516378212094510410877433677182456493465498244892839109782753789037628989077627814551009212690003443317922755540309898499220932018107490443855482207938936208994972844812263656859343830894511875572468426418485404356825196051267472281804989228076957233978472414566416723607063916351321728449028290823370595987648874513438304451753419234277042449304117017377978947608780935826976822088948714085436624165227064064777247197800428073014414652236666843497283042113559165588095482318043321367213676763435165451814620267264343945927551765890196638067469597170523810104596061313956003654758301536115123029168295998764632794600335800508104603197963158027810503103900321438090430445984093771158707720148887515572563207675203332683500656117933676840205077973715016049892405538070530947269917344759187222123302363019567836598118636076778778426885475077696111388548621633093512085369928610229767380045456121160006494936624941089099136022907690067227674076539223099067890534385043478245181902617203230738445361379208648181043309709753760234561118450123381985147470296746305998909007903621364244111752067071875925701815130690255871309924739322896196438492618852282242960191828886487636441446374553374454066970466339028612670259676633921166452651647102987635300497001350740329430344230864294683646043228042336760459355411422413191971691006241744975431794358611671662797940984946269538867568193235531431859769479391440314296861409469941860390637709521791369662048177435562206491901456301343356294121292840731592456330433286882260190748604895013569323727512339592305747430590463740779245478420895241301877594670965594902811481572398580503446745628103320026425801923705482042233619352801427937168438565759513611425381268495311565549233420832725447054503040651021209997527892549304225317410515190367291677527138705939774907916987680028826109088139616330106663056981976148045919190588446648369962191182618888976569472199448945394810231053233387592863615054584374941326426380277473141209684424450422497250575701350883895033210369421377375260499278576169541406558196466327165867853977777827032688451068533446530102842969886541870148210383797650785368876434661351877636530669528562448553593917203736384684121749367117919834973682824046550912839511108868733046764309700983446683902966953012002474639518384592915889050005012659736583663712032491438347140072781028866587693131741834023173693959438228272207602921950302449726242873618001683361098633073840898557102091474788921462344788160930044086724081955567488635440956795492471385768496598945339033168866404377444108376267779433471199699502107844758193916520275479061186974286583909006605652291408101555878076007237260828736647821687586949197767234905723751000635272865297323718422674565669712958121015134974922048643941380777831505746651875783316522921514563180030600873646007550311146030823478437590021711596791137284167770289113451324071915485837194364327280582826043295627680034297410714363600962366862572081521442497749140866372017169231342819594899522882774692410186918267215225717808243262758433283660402515778081276735352225382662481903858726902936128000593368826453894392260251355961398121792044052344603949533897651725385161986935452743518307205270646551979088491946792722407702676052175779537624750836445303483860889481176429623629303495157460335647650545822601134882445930527906442757203588649276815938811247682286831042505270927108792637923446069856275070052549972145708750118756918956496650344947993242798712476771084775872386948414700165957933363087251793203930750452230970184953536607971624205938833346782666372270198378191007818775183618248524587898194667582431216975509673937429015412929835780564475606303618661625132621542692730977729532889012223720478292614173069426789902349106012143337709952505081257911479372713169529766825622349637367380574866669798197075381584846197643613969554118901031330367604710265863532370235476463566898326043925455750655218221182617196215326284278987434003294441054177450714092239944682815869322044040539497016476755371401401930508264778458022841802478985160473259585866532610250014421696616867129713109804856168415333504965882978239979943859200686349723247486014245996565890250764876261104391407537512430482678729330591524377002207082997612998114347360544345301262538408970238462157919082598950288178069760936671359416586686209132975799499857754785226487377376867564481760499934876900691692710681344194104227769434489725388607836264502591489525427223583877390665675601698205892970332052858604614961570831778902186397071928026502482047623595806269854077412121236063954859293897943605363703173382361471869352450098550683628072221126896273261543718691520390871723300803099510825372255446491698959727315594285439971985389759142597229294520606942955874145700621424405665578606595903744441149774274379408322179884388617668658105018194024038901289954727628376888982513532845980003736718903213779125465893044113753026901922429847958061471064292171364914020122712633556238773889888091281331808030721072009274309025210785911942343619795393326910950037921126434153087641823872763624296471505980166548885650544130866179541095655286078236830230760276620771755825705602897458297408480968505417372616377838002849909625284334706081946621882912125654214310107820625884357819578185909995353510160018967961678228512787593444563458490914055853866654479823749988059145590624188773476947334455326696263082390812078255685361250481582241118866127121038447117943613164392261575465261555514306011282568827735217227777638832295386389412976013221506359702320854895453285159303212228353354985834390741977002397939404552052241627283100312662990083050574684282414176525337587824049942244202250976690533692896417421984579827710078542325820634127860142698259942461376918903402255018727411697630467646283302051489910250576344721875842811204258802439287524193337885457612818427057686861139840411637323751892100901313332698680287458891059058715216142964567003733193055967266441085924507011021613366166213469982589881597137390094444236988549626219858513055476777335713718061276996386775461621600980661794008321389124944155560898033487988951881395431907336939115881525923093588944894949500892746406440460964383473617668829532251264549205995507305651367221065808492872608664739622225400424980061242278164211162407701061599341470021785965996005985805184322857901101926536477325574910561401478827955522868247685927327699299012678782142427391951206646572793899985145949418920609886106319531958207409382094622060860074074926149497696717012049817245802865319609735516744897572646916385294656986610980339692600975991541014373752897793934261669479025398959751444584481125665566297995108724944308364011260446495452905824039470964370564031687413129006428138594883705207066447271862198852555098537047229427420782416455539566423545652597130426722928666306236396991903560123518910466403256257830319828994591153144193509607090835836034965110658895269386995173139230591157687479220675775629515794561410131945610254433365505473218251993447627717354407955792123798491930468476343107746662653919954204739002764648155574898891410452609122199980745299789166922836542649155089670797629709253771286264288990154115359398880070560485167760923614011767892204311728159069481819286329768466125037869348237400155102659827684317436239429192490918826206777182820868474109799117954755549873819476677999771421451367309444443361922550168299853761959728184293005216810088937766536922944571903865825890773389962607158126264289752521762668592204074662153638836572620270319201180059159170797167302637131377739353300975176914621703027451107887580689058249099221520373411891250286433073912279770026860479173029706024673032935520054067177179154066589395702712411853103529110522565320949384612791923745113022488809564240778062241349178773092395511784261693396996827117701391768548272670896931193179389591986796489815720612323877899019173905413996764692947077759190604764279679518835309084906428351578000004348270963509896929100445791040754247201275565728627039586984253379535197802131683795008010278001794924865016778770035819782223697217858905396749108303054270598897849640862928344609703215618633773861174609855346103274643057504773596806210311407366902196165067539872296744733399831559020517786403335819517184040048340793113171098760150189938687747004651309568971982616450988334511891608422931001072005089943790159323575734661371284209625485397152548423034601978380788358052752706236240753051293484527429054670270445159784911587161638281869086024337983086913874472269671112769726253219842876511579965771930173604083305465331005591512868849706382882027833852064337601894696028669762851400832507268292470632542325225059340279598000648135280474563059820517442848262520648231475731488953552759719936879865557753407979740627784344466675202650078063812575845343688591356990024548721341009077006008610444531758791284515558460706215899400187556795747678922817876226699640668811448278347821523273008708919183159384930076658835871379696608291824799277227872185721977658301438206816046271568361822562701741027450604517946525201020231810570562004214441059446879781399222926934288747121708896806062598993878064620043101062289135436540132868181504548036702659631679667820082432381020372634401689713401912827179691597632701187971596098395443386996016040935221063440115110968587980614350709484937735879349413641974998055709659760625256540103335135000965861452929413483907133198754761928864904675880754102887883298676368029804190928249587099200716886326115151797981990552077538240637375809723765384306853432026712024577977440710452666471375804929289011920146945044474428254318553987429976452544813268663262124043023890589083033739862545248469983039506579844646186036847449070260247639588866260598812086847654450765711737458647519210055118024392471741981730333719624434381868551749446601677937579078162344220618557653454475173384690791801083630381269518882646650289428492008586062495459380332730888465537988296902495151216208389835571107633010121893384222676072869340820549990706828208131509856115148067099014179552951221857232849542886530842195562389022991737219887546372365635358328699736737801093370894539303592277253736705357588091493677244478661982012284865998792876687253670252132471096815951636190391020831321175562156830030404450827705089255110068218273846104708254881306702518962583611172909991650422023386556401962434127667029889417326044766836703156513699167596161995717150364447956746398671156088922439879872650503592884638441461945265238025092113811989608716265770580863035489295046447530628251915013151025108932504641684585780815429615479032733224251651523258311695675226036854942991159235719265606452065676004662734287969943238873966342883056451853738293022674692608239034007053946648821596811473526721210764461348990190009241049747581933269152793033642497477195454069602903888180684811592367034229996076655273090218849360780447441923428971335810510149152612404538937273440307497229065970677645849913737196392461031151273213101545177963246018545063641660887176156820094827240731220489640716548217821367971151975714196575829387735445847111996954007409733591792522876036604217720411497394025837063810696203297400808218972633670796274859439009443765076899885181676838872278742206009266340371429424356383384052847134022421749346740161998353269608528594019498226069719596849421503871329223674158225933504245246387241193240741663540411518261187018277442824684218282097711492975652111804466088738828989248775555441469817763088114096448613256374335569061716152077787783484048779723944497076827875501579840050482278652315569547520202690432571910132178517679355469686363116032894404994338519692929192949367068752744435988908369240868326401872962693967829783030028724025964180534803173207137996926244664029994737827894300555799606585616263167083763304353051708573480728926513723672921230651747412885264140921803061441994921124759631297773660677076712587680875196870488398609440370652129679341359062602774201392809868766954073298227645650207348387710499070420806898892978285202971328908266316044870235163410682887796395308108509116245025921730366368644924095648576759524406061301869644114884855843677452747883063006057206377647775535391011857233505936659062506087128712040667393305017727238709968460156885285396229255454950166442593406435717896192163642692483446187318527419349087581533756072023574292747075608044252644102010198893352398452256709242446097347927414734281350762988839907035095541584791328884159571390903985862712300121400699551637020929965460136192017437173607272540863198796360303627722726714105273239036926565460903082314247984196030857692783863719130042170254184793268988246149644843399563399075421581162591422371226078917486411659546636839738105522654181300676032330028548096660584462673633988360281023235962733492101626996474524772985684159187698013980013636091166328050657599221085141977776267834347899439512174738436691271552718794966785353213523030802197817691570932092907468800623478399096426681626495183297312208205389059387861212912041331533541891529643302917723309556408909204724068198958007076610637994284677584555193549960200194370502004553879610652419478000471383299442855728595056036101449007780476902018546129991691142100857499427931028055959398230434601939877489307222607414072878926791427335880192836492493084876440466233414641880776609749455102665166040053966177297750185552143649536626485125514259884118045930013274836162847254823187133904188667948562351656700251897014142054668234149667685724084685717538654823752669572931990032696763393709180593590840103294374871880995264050488324200139144923300168200071077414417115632927198629436996928336362825037235192219684142902853121974410456689691036227799845612867956606380561913380955268630952378176208316115411228969165965111329521748930522344263220638490057842860754199397082596440315778140485594297335544364311823321313855363933177519201898271362845903440606376140329576895434231188482561049023200262329824168843983120718400520572992906134730026084009088888035472781081013423375957915234795411577278906465110365085206028267965847535749814497214619955826373222919566552409148130785985365870088908669380101518743604728448696064180869742562877583516489875644231748369113653478854232015579185229690906908350476688015497863328832305016323255778227883999368019506747015191039495387279358345439621350255912888136871007796209913059956169316697605765916904258826407571880272988298494178183999896220033978623720367050240980709435493955971787317965243945166854839719049400175772750352091139798875894473580303307156921492131780422128212526217697777508051611645516222589929187544913477897019609829131212518534369582545708883956919442117609714643824731612820783994903011485097636958176921636999217860045782409504132224044146445138182706542373087173482931384993859391776790081317163568330827304192959752893542874466095022839423995516056522664078791418682795883475727562759853103898585571229645660620151942889598000863419569461562670305232382108421896831707771904505169147282613647879182805424636226180842958075652793318657023844870626133083682968418968965080354363744031075165517681931320024302235945651405984694117624858933108955319811546114744757849315593244876742317574448831726220254093571189941878235398834506557840175077691317395753139847544152355107660698738016627774718545589776180342250722232311174842787834787480454338913561592272602627687728873033348644717811700130554941118751931925224002722399149532519399041418710013335461674534682438892214921444788113593662569680044322642502834537648229277021384168262229682705923872194842496715664518721857877449047166353936710837210724484125388114360007668058407088867314415198430602720375213125648734896189226562169587909704010860207166531974570229174689622637858083884859882563509532689355167620597998395502512498969644614107397167863196930505950760303531677139487547552113436415331709191589133180367572774370026771716962387854079237313557042660991692211854793988262062254713667267153047771450713195638111915032993387588188815932395126978934571694881913107635560591284404728582242369156190810145666613881873709134093083542149777604390806606431266909178185816985896165533585597788254887175460918632948624423743855014649938098366515026975069671791014060310654414220219746039280758066009404590027666499260366785728246455637216085660302528213111543518459915686780603909912536875679022333938969853057940720022201558940906319173923201423003750835568921369080916169644964359339637517291536507683556319732377353646588383512089954842805544342565347628428330751363233055792072980930118113858771748382205478645132558051503539330618195261079314758974911833740773514154215421748477062392057788653862574828110187048552571710166118212559031588838429645745727889487082749138086095146221832609251594115320729792031658808192470818369278648119724933022633434427186634097915040774778060821200904052285821228749275678287358192581209565819238458774552765308433240278426185331138963580702430667522545851098722429616138420566493241381593921543485485720648936113954974759421361250153192839211127827052127832363700263375764155181933170992131358541953357574713537043366611132888106075158153959711744074348626986522171267786529024132967288671924388461124280317033876215257703788909211097466768233610485443389135460738591765924496762913892164969558310885541947220687034832957994029368314763973616739094243409880692452735544785620883276169618757376010368352849192304123752268513840955904150812806177612694497770037114399478173315900049687047086918602758088418696820610346515807653661555468179385870774924837223344448376526308073132439363874302691954180425900921755037854133914055905551443394054261173098358249255790742331200950671045241832856787361895851741663631249678171493284763163011281880743649392273002897105496711939332498919840305363349959912723395976635955907480811972312650440604967612367566389047077824321347803656454739817127132319169103224550950817637384821102357616493334795806883404202025294029296697331105517253296662673740567909281355327540648322997092332340043576337693840944435888944578750094862119050800484626148944818399754918288005073051516896648806161389753268837327120525354798203962776570428447587546132997188449411255200463096402222797541453368441836663293678043971139798218834733504026306328417894283116650642178482511791520812947720184844047373278518445447810914072746330972955109596382238529205660724585595920233696409315880814603341459665225883237014547632734746049557769085203249338729771836760599698032948582704823284900914830219390838685364480544586869902676455538308784488207367193955879945653714737715778460518051488347457488786056447805775161030108542310983421323211438684242491260439679465080249828714600837431910241981488303693744913717373322628009339204201464198973258590145990820820984810515020723811878075353309057152346479278393702736030271100461051532371784557070398331431681520685845134357986399906709983568322162875797464042359684216495472854758919437506826257583379977774841595105266732615103727062978232395174243204692398563031156775298929022934540714106799056494349103092854670757167263145845035789185186960568597840884856715478984097622218682004094647723032496699151656998347593963931647164434331992934551057225702115925072070140656041291579827175895920638712062598492621014856645657517801425535020368516826584429078946180427210936648893459175132013729198887590175254021495349701494089039923024679192891376135236908566909872359962122674877966885187942301241794591762745646768973844993828783250437588790480004980665160257728360876286613874244942976676321799489347561474253196791635709217270863807934511499698516476321861082939971286397533381382196126691218456746070705990093299651726274410385154087322141413519692922281575399010891429811070971464859109142463417490896861643517787041390271858461197066640456865891985424626834820094184972589121624886015764774775375738677805913067531473748788150033372157440146730658589065939484926632345453237417376926857116832612580034964018798162449641285718174029854508108007744485100622873032655168040755089865591063602231633801899397101837897407703644092026643600718488804655028921535643908444079619527547886942733427293723122542607704395602211000544376583058164022454672431037569138069309554135479293381662138469411784761475067534234242753133544163567450289602547809799523822100925974574573982266993287371926188823974346164474991940221468608052321797137469649620523252608742925092740934803967213341128445255832649812244366052919987110712501783772821899897233868962538773395111275812807478699782286145476476731703108750367311284847975903649287711358901861813888250753077865489946535043724733440355419122737900948892379311808011970971937380708577244461059305967360787858262646233380496187061704380729618511499707781158445214407057106259551650403953760439947206043219166758871434480775847797314635487409734909943581976878429855518517586522467050730411284784389179742237765589060001884006264097375698000086054502517910797797321042206530998379194848579679040801283609726278275438058808705917348521991958903780425641995058640921505452331422157273791890934276162856536270334552229011595605918999250211041102556807182574631094246513558185240670295951503020583612015333105106026904925087161516963584584496708275803634391093365347748074784418999358337611020662460961110402453296044875426951177714858129287853233764820922289136034077299967852854710911141210323842060077387755551386321748044829931676201830735829000556451002659800705241319138232237724392375005503818236172333438555134922973666430824737692260820986534892863803958334611587221973820129689767595035031716473297524350018135591718714149538663133013858627055524872143066308003171487586778714142900385566850975601038270952545515675742908515571117893511477297385771162450562918731351143465906147185377077338836775122118983897457950561330083504406195191464415665026281260936020282735910656150047886282484186430590833431127020812490721878634876207121100948913646802740630000357066946600918645005756573892086782642574247723465177829973530676942769668845149973665800999519738690762184671170459062315300664996356028551065506529957152458143099306133524502210128393463096902402367443511095119794132106395405876845467601481249311721197911108958506656120181652723219970682300154340091294081449272118737652795220205927118426799682352164734198701584826090460341624772767376005373583909465326913984309620732672868997935093939887575418339988565393619265806691836896095689068200318280785131426620455196521226803792969505120107598689621525709542907271606150422482602083400799472303579819977774269795685883142273219351207237100581321117796651738844174554882452775979241464884558208547429167204679871834254344433809455159070853067204762061061015549809548541844869129935604254820018031926340291292922344797976228867761075242173934248728273067092340737221594756166912527613994189097514778427646810215817975137534330936323393580665904181462778892699296158454894213031263764879746450270864427116720080877152615267049475081577659560741106446145933615349241980353548879739054716550542923208500594407767056309302136241163936133745080574394741144086980520606566003964654302779580006743356356345822423829902176546186121391372251869207821596054879684447209001826323131856218712915331544743385447646301292178808435233699546778912873827723777215157914641389619467824205419202482368979630399986433366784156350021423232606775454977150300858109077337645225795494323745774400062775172481271430016446594346261210115401294299933082329554668087759163344087774365441218910696083458046787393988615044000851221998138556868787027595413647871950137650146999119364511662018881193242211790417921685578296591682270882478690695935533250502509787618663217060087836128648149378951438540391207298208821138891144770281692968576988986020827704766097142184852438694009473946113637775303698712093002607306436105134186629493570814022740474198194542503253769382709526755686015095522714421503012264853344641641449643929360314153803469101038766725211374589896671360389741954534047822424886572265949025960286044798520745871351511515695882955330933732394805932272640815465370770482834462098308904488053362068095324796919380913588671612351730365038381913854509191857436328719735399200339882327436500867538933891773373821375380590497467599187673507246473881448219407229281548528161552956314346220879942100218852289121989947574113983348752380047148270745527900753858583250090468482601922436306858037250849681385276282342990015705224331947638202121339112913366113298670396619986265916564296816311611590529605849560350848108071240342861603765412828485713213581481636084482843110951718356278173956571014669170385005325485290332277249001684832741299496158829417399823790661727309441590955463966645610500381144127524015309856015960123222944190462858008410400180980757239067249725778977603976824292144463602442016988823968634768508038015995792363243440669480128090260979643867455338750647839259347924380872080472045472030132852416398278995206543673592846056237560544472959737159740905499087929008185700117856541134050991125726076177183636814356414977822542722808502343277950514830403868241955977794853062129812422004197992949064219833635071661824355030097951587571549314816289243045694712585789448102833861661655606138596003118585579330948115200816394324668942114114378607119629640577858843694884844097359876816777752231654056444977073244881580378333590925632334792105939694187850211473532029304984466269938010403665805635125238499835353119955353324401548806430839439548217690851954913965486517249692390538843129335076305118828358311025994565962272656096157894817587314171142752149228837975505197103199751139763212926786122329663831503400274236637064543102572144789040324413293883113086495821906413928702744433663901521823818148553067816462291714849176345626735597050113571954907355482980526022277322187636058534440209561656946435352850207256893070592064905932425427039123528887170759917960849502470550022171688206204142758276775847131875091846369390932643720705889919368266677596256061602942372363930558882323892877241652901092988046804422473326783518597746019137011064307504275554752938688434527332371780074381953613245690638646703265582117551932008570910503255680437276554590999472595131488711550870404572173020316893893805492379684637655538011236734288811904538504813576660421201874291005194788043676966916754925910601705805009250859007585497514326411097551665642518115209513314623932169912652157317040055503777672633450277147063283637705367655836995517721244993067725752937188195241542824539957714408299557373480736064924039265955189931007033004481721384634566866029826695177961299018063180186884044648586183401414158164565109744458949058435666829074238716948825068936739948666635751635754298921035842767232782317247365505703591410930563831214601188510259503621846180343002803252756789563775277034040786138648742882937612628580744141203403964542517204441622872643688009178038393055904785993777859199992178843310094315542219620238364267459317195939550196261321131411902087670067364191482785351925175095224108610468513283781171385235302912225167951300003579146546067993261511601062536984553957047492855243789621405808283749645145208454615260252494592581317413059875867600693252821709628151419507050212614246100850181513492298871453598615105927402456045813254642310541599012688389318732955127043578673873452810164619770335529861279973871967156735487706930151159470712363155203186099730678812695100558859457038719101464770114713329201979656282759746549676930118995703393000780659592823061591743287173572351510759664257932782224414801892126115410238998144489416811146264822282169290480473185121248847256701317064787991928501392377085229801340443879276095806335861236062878155159823789958485447385379440804899317932624111883864896946176784980721441381192506188364284711771151813631877044175877818421815796886721821474251500151902948514235160582858491321087926728208524591736368305625402396224040615296239823000761997976070047485030102480563949026950178901411853488630689480285914300264797502071502716851169942898784251957141879238836384132758013770647939374147244291393534486539359381013159280774167284276357718046765949642319199383193580989464033500688027492785490376582915390956883074876896624003780750684114628215971958102533014407845971818455592130319390555881160304333809450800936234372326229844601023219784178977608642177173908822683796050230981705216972952957240404476573252972843912981814589050380191097612645439013462469912178561825753589805603909017719439158585818273887673343132797277192496179035820688153758785166699002020050382989744852951175034356427320293456060299663030710157938360596661849729936178130635779665697553624302498977073403150095891837920385353206338749256333090654528831635499008752937450729029591245791526613512337122464591670910770673666956069624454601799007450733735098898328227281896731767912153913699390911997963740196175645957448684418249313867616291391712260295553145179830305904376214174263555776447477475769581184866394969458088334902111477132339023801720623982829494056736743777412037568473646233248625259857026717882395672158280105446497115749220135024690361541253477763443584158360967494660558753608596750504994463905781422267788726545604199829291494561079092501523712844982845512010373895665340169290981735296915480964435016643400483448575680335660406374287265964878599911430102817207560591720104284834932957672074246750123213412599282037404875078072053465598870102993620318889255733671828542597377670587063306767819677855256317134194929885776995193492303305086838801861401182983323819775691824562644726232328528253096887433395868723066977311072688520125653000779318371513346479371261599319302628084824882825327904062120659282724259922510188671684863058944750342083109636961862998798429252690869000429754054259520323751106155593370656550815659404668764730011946439686239404200889481810876984109742034991169411977982108012547649650474609021725423042893171164886480488427535365097247928613749763732635274290949696601330510002738007327023389947329966213714147528184160144243073545078320634445864075061263743991334740038200454211600319427828972809169026245084637678884591885557068612541133070279878840354094400493858962648798670169574541069645400875350184777205670100779617935162942676954768721591995190031792906770606728707989483411768863412653074127706079740898338583582318009840232211186840932146647544071799712052085048237737168867803196398236417555631918471311556096792383563388881812105538842605507134073270615613355118829824161497940663621811460738272585945669750036267029224691339882050212390990212139800850677903638707544218563518311331258271605186764584396551761873669973997015062864325031608136009991938203060603980064928012318600663736710653000242886739042464248198913120482764666401698173538626340996557751253928458806982782074777015249126951772418888416360392690478551370022697691265931233141594177105937567466857632660434635117757007530756950660763265236341885931907250121206306512109597414889210407155952949613224690399498576548787769637665517737522973915726922652053840314255390045025069098920874801705156457068274355645967827278735663341409509367114531146759328927672000788662075488026925311603123259412783134187208794075979740008265964778138081135600085574307165777030904807006312611734120931286731891258590687859297024299586812793825998809448448681840871740858186070949902199706094388293306271664376932689379987458253497273357017377338089564500595851973136084966195561042977151070024269392825964269083174631420419707049924664266119167079769190026017635765810383762584935410326512786779122086301194937459817035023642736348529884855228405323127393017177802747187242378226661119419987479627861775065284027110943354653680165841067615379175039009742101112422133708182282159606450160039213552695388198080759205482274139610697983408315320823553430850870058412403105101527154319108818394086946108737515168777704262601748342777890930521761936673332427760614966302905553221779897987007817226954305890164514670307430847105087234498006848592178037093223242017571491272468639243716090821478112717570192727422624133590875905172696441967453856081126310241164123968475712347048452769219714951444166396133218416516124799998944858751098889662708020767621960967692944756835822762568349177259951558594023242265436408496794066239067157586766070720766862418035293810762326202598704045211189559766767446477916584836775450884956467188845210533006242441553202558606966293995447473824526725574913931686859983212151642477727177272239200498977736398665855455532076243389610091267193059624268825289857777941468343222041366489404813256923034309154128514367975151760386038914653195242945188791791934304926992741550487040678683267314288444901736415163338199122540602617336055845945950071924711858783372677141529364267564700803432090512798547906170721986875897091158689742063085543589736142621438157773909029788301629840291497861821534652447215210540344872912106365660482786239922427891894453398362684971682734622178786624035204825946443785367983154506686014841242686330116641477991230853881115874351154225677970578196653605108698924123041168191621592368731584129209104561767082748998604222749958686639738687213403604167358968859436586910038173765732393316958014540042256535557563644712833936328546477360802763370651494907610152002503593776185920269426949601099081681471586572594837708158016199274492848661939865023127151187298797265586371090536303826374600430058168379004194137835114760818897591364440214927939078817352108993174573378152593960689107255421229619489571133133090223766928294679195639010487884671567759589423936745300827901902788381220600070050959542993456192292316529355319473508910321235495268432168974998151673624669002488870043940622436105876355634410585492131558260649654192794375620332136096313322287767639189357305779367029826905434351919061395584542777512953732441328991484379837923226142264771680045466686251818732492043305785340645588716355416406333395214893450078353026244148377186778238365802604970220639563510099273879760334000899578224823531939071938009453456467575530024590964877882683705666611171107496961813859533924070483893407048564869402938025437939310791933361693013172145024038121512195820531902173508826800875863388202108553553267954329175029017942185776341387149172869861104430604307296738179352319895135836274617076421377526705387383540519440482137967437308790448827356735229502737317935848806075288215190110689635057424009303926685890300178687176915832138319852306960966118381972265148738817453783630251698089496326961008566038841474055855396902390208907850108981326281872521470356323180613492016310636206688836787589418683862727319292632044556480050256297717212064348055158080692113300476165240813119790064676137802689244978586853737585519468384866088262392850194756760367051904933182929483442042462440190475548723740573314336355771211908875606675483750112761911707154807034305831588929713431714772662035375117718882357544609418207499660195227148945085740812555262644043151173395291328039660946337156372275965291936564864550700461297724531194280212655746659504372899019539933925861686668778814847739228541194606058846998342816204014801974731348037983878291982586722823321936307784997983022521627707359266258218213040717256284281962549622379150819711020296581026949173943761090887562095350351859452559972267347723620016956469438600879304704980083369007810839659261888384342188238075759473779871957394149434576452305891941691232044025384118447743420411116136413808856331532516317413469249360019692532576933957564741878870211897280418099093718541517475522532692320607325487145403220450942671374329201396221612491502250691957244028189245916664354816925233327878502709979414946572353940166179301939760828602609031673637949893439994503863929457469775612971968479961183121857826020635798388876124062512578922115420825150742324874402515470436858185810404061229528217708307628413883451471279615635555508544187778427547722082410517974746725870738506304037680892118383634800840623352594605763239367674487125274483225547629142716718762749908815036549618617583601227691385536144919304723695579746120438087037633576073895999578273243075531935265066745573202514024049453658220935942225570445101486866008647467578784955895810747299611822422736159646063586208672191541187251946797042919232553192379384528716689325396046621292492740172018452240599859367316528830480432535865961831835690694742139112493666996978069758012233946487541987025670537458325405749059202686481988070777972812440471335325287787661948650719115939045484423001293039136267287177206131057398113419058360799176040978225653961888470432878757492763809476923274677305638412911009950961374709093301603980417120579059268469681218195004064922667781722726631788278459403069109222138827783764413799219922860360602744849457626806493668050157194798499541586176060486275162434076094522389220187473997880835322145369358875368111143740811589456340903062181835232595918555878461837988812652387722785796627234350212306168817646920608768188870913391995786250422844433848108459512629792088129729156904255412862934480652012036709418454540154102574968953668450466631966782362150622719409873150017865404286261403494306670733229913822354758973466480480798553608398344376808266599900255747653364566576756259448452646945815835243661537478138917479917867113087876070006832467435988319842102180755150527531418713573026655311586219247988486320743370960384589737259341321484996534384583635113160205845410282492399295010540478339463380831340644173552569564583619648993492242379947411128019184141392537708889144545429173204668911895406481908370676235553922395061901847616792160765189480203490480838512649872032092853853912213109881613203153135662134539593485338792116487158067273126836343238572481338814757837171857398682952691031944867131943900881564702091572656484945725129038411482428312135749668310584292987572818010432237626254495114201054930329362903012905430866040780789540036995035527586487562047684430066116516963896001634000595654814964108411511779686111540285478610672447877869578118907671394783283745912081836979321944259342620646847811670905741123625334183961633508500234845325362394884920264486386196900664925813502265652525806949380571608493472526025697219430372641396622040706012716817674675841132055027112855350559390734748643809626540298057693474371555344214585703181133034543929078992339509314333031998660467798423659013871317032644853815219968092006599267298370087219537118842988530457165738754707533714632393902457984716661089147839524485477792084914728285483641732027726702456461820861979302932986639944485251571644572620372040820412812838049947568854308641157968726459766895218379286135309098359143566061127775715561413746494410184021295837413570729296324612615336448415138009284701324565334557940106673721410656350746745216448449525766210689182697703440885835271633403537856796599652700442246783655011118811578501504841131568526573031867488695315013522625933793821933190949423554073265227765973975727509247852176039372511335608267222044068507137502109459239162516270840020574300771905091891797606495419397024589896177632255365647173790829632020312147169997081154665264165726637194142686390755626402599205849941665121789995101955335986746618228009798612653461937674193263766813700594052084139673971019950101447823688923044203071524341789611211376979124304280218376565690731511044974913053773753480685096105655033198059050652653872053038640659973766974992657755434358414253982828733788704650980724746144244748814603239651139353972393921531371096746926313777490224310319430937102797782918938553579793608194481286627766581081676871883728206055157154420365612027055207922086326204698568110709452518486281549624786199940768741181372360028811486224549588076728982817603040193384469767208239811943837741184197297644612072369213580264355497295745939767318692986194402796270364334477567549057002909611395576461411471227982356287115199269684404709646168796263955962928307042435928380671161049036451586842458237799528410969213063415199342236921106338306539164206605144260175889050935944322721476895500872377860531177189429263109517115036103293676271301650199570873802298297988747568935817484978448622037137909193500244815591933905661959365773220520248020456810273178468034168423554212316142796783454842705099143625573480198716544457734060319147005559656966965674077415545402619217043568543511321245288836440942047551347501526257766400068072264626144327158957426922324704705206395500983070360596114627248345855968637690288662552559932251627624236750393267779505224267358343116729285347693910693520799138162962080731015416598603848677337336938341623138718912695575757232818113445806262469435691169059663557789972658252934321233942595336018702021739536806639495694635712316968782950757084850522904133204373304413288535011098315614313648033125750959923598245350395394517936072571941307627611396037395137424650181601786118435500309064016161633140190034635654938201572541106678310895584392619695393040061163040465699917554497985044958680149846806739372728616790683700183257148136555501130270392097806536782389990981602530728511081523210824400465045067495746923302948648801827714307449328690443765966333684717503198110782345679793382876861168820925515851369065628848142839941938989430398274745485396695749309628377644256930833933849946489516283089864536465789953626562215068540277400826375837559124065672173388750869315007860813671153998454537252666889907136829629941971183088580628358623607183349966164628376186053904998215521878185920044352343015433735539952329228043445244867534390691363545626684810394204404225285202615760963881978068396144470245712447174973286398699140742410592577873126803996701571337966297791994277869283424451040337256605622315823929255456508229212998861809256556719047739821032433781245977142500634778215988447392545490405167994156459835816098041511934162498833489773479773088119453359944545051743105548710255124772719155700224994531767311567209284474192614770071395091292505886847056594671044664279973099617676991983606206273779216363936872132764304889684437312356125515244667974574779969640874376307184210109970931011410997736111931529460914433672688734863661051077268373414465689398202517834505391193196449202585663527147852744049606015844732651169107469402006678196734692349303910406346031674537219520990638543917443154438333133188761753419500822282953550318424917898739172603595754622321687079750586870311800224948193490962258962342842721997229092893170294743482725655511619544475159435825509546842808593657612984519371855213021596851658614920477474087716904887955233200716395238488048302969848174585287497739053191807824836843835382486178915053053580578861542279107757628266182650759836343438116170807733619891262845111639306747482226592115584749407236311595439246988758903192967951256195747211537854753167935913564514993631334409496891320564784519438403186277321609359746606595406127686379785481403176422846486831478064807960298126814591283030167242109542375714780973588347651428344161412492872713007973751256842320943784233304811731398094921302811074696401129815328361266458472343678508747348832651312082776651188801039598082090841970418134948463128630362660284821420472460690578842435507915441972833528035203605630974282604456877555833746874210134771587343551901122408965797279569815482902243498530284561070656013125115644754102778097715550323049714935304802378523089209862962257684969553155941383472868197833367749858134447269552017696553349002860245931766905117113295747870261661779687794438228153421492184241215272615638152048994782184267596547959741933576873457250936128577885045923435899489021874614689249183800514270795132862876515424248830017870574703920672770283320172750206978984044693907327968827282624404028344870826487103309277455150596962807066874568776584181093494117910045476680768326604735269823880010151685534291594690806847588102125972284708259700896731366547657647671543054411184064302575215410067671444761049832485247761295867888156751034906866771019327738585592319743471626069426300798576564527387376167280717930114505601109412936823143051625052157166863846129083899123881563894427867826327302853483677753709468864034236056097298529675953648359092490111386773768643069859267373041096629415561672404620201849097009817089776457471429904972421372293611396706625664171525040581586880405707301131777903524120710397770590191969911164817381528308460640303822292043744183560466965354907633420119217850518842026557683108922647417566507020655246547522167622933755499964000578699049637957216240717993965121049312897938495178188394220329915436828383012556863594539475792022777190848078119795034342965637970938553234821808535060129551701664150211687374303272131840402136720217672375853740887157187892099691202553392631666822475917811627649582416478929929146260091478936895381081174887094414282947881177048106549232050107846745912375247082897540416815404199710371509548578917058898199924157856981110907790446981226337631571881046367700879768175458743236738710468313678795142112179711390319443534590371543692343309279639909158068024244404477825098561818197378031995126343021555060191485813618348606353608427284000728924627554445965788920971555820368489003308730016569172985017333435913448750993415193476739427327383910932927570162304014664163633646522276643597286659773803013821698284219522668672131613686666236446768179838769973653266474345812743017453136455277775087146561472018809868754937166336679688847783871477536715308660527378666933603326387989788621349261498944713536637381730318242993753753124040731282901326911427490785159061433007322198114506731906080896255793206216921173805931703831185450518156846840536496186392811046414552581072253989470693077513469394039070708617076141311449832425345029088592328578429801594705170190768787449777523619220930018817515825718796113678191587669886606076959632688878338585460139369651424037738956582950435255186525556105145040190553380381803903962881621669412488492359495362793493152585747785225689335966756877210890789842287174653724415671931781066254061714469314252345490896150833072353388841849764940739499746714841432249301563789779445730522210785148371496016191167408348988606947145585931222658466225610544592645678047761314076822198444249308037865897262165168314751329250763395265135875860078787244439947031193251961122881340295899342787333821345683614743816239657936668091854221568859038633680615262833953049951222406997027605051936715157888083057900037588585492465708353617364606745348405319712497770581699066912018897239000669122987031769652937317291697897627113140738336851890886490736258433077416946246556274384333141729442785147072639663970374944435861832040599545855146203256970584174199201577780047115795627402570611607038621333210128645612971288934987808908862455836927428896153644981579278115124517626533816956407042603195241841716048835615605790896381337770032633769983075680670198662627662503390843532049648017024901294524731778678255672163025323148818818444936495287205905068841073704772587140906244157627908557808467872399003628120331271564062572921566096329946848507362831370710107958797033041968435628968156947473885974802209667278410408204868759561123357408422447602951647793717960686085574996731897799705664395033549065242352055317945763422651106682335786015387802586092126585537276535244970257474612094650088904373571168951796111898396191189801432639114340256715206488785406106335570470421008714438170463679594424697930073736755969192470081914228497288095803161404392124041921228309207217615988543330734219338537871971639972449364297975701141537884073382081056269955175906427401710683204843281178533314907136944794199812456199407269584240955795529690832586532911384925415250261018418640503533912599203869432252429593108930926628488781197864207259866642507604845520900331822927773103533319048341554887994318485878590684217993738416313409609064057813808989686991773541773981081010282826868912904531268350375343801552597156964420616464386346784750376751651984892708560878520870801179076738647818943342693099137697350760504469359324001964377226194129189693591125602646171793734369714209334982840258734011759230871652176421195836965785200948444298254933161143541155284735929946752978512708038079471011376341611470920991707517193736641899634714002784682861004996469528836271773103254094876836797726541342236544538013304852254048482600255699981556871257039109447839148156680845743638859683973899122966745650617769796613367181807528987247209250890260743982668116389895362744609108891802051633805253580634195686250566739972400493932440890350958011955804137790261709900381205218378741590954834852519385577105124744568101102303469802215665056372188986059683568585816346538259906471369900983022670018424622848843139079312351759440610813145082028326788866142373401539660631697793862890826229774826420187804407939627883881392732874686878980594755702363808399847047153665229578060426438756693600090991897376833925756814592483984470515127393726261874258023474601047719602531091599792637191939253559551406204420706983805580544539270039602680617792244658701619802515321361739348011937532332191565995505792417695237332735283418206756334473975317667216755740015321740407034300798062102428357032560237189043678969126167094615256654803280357800654161266485877657701231950703653666407786937488420596474114264258045563917844827274615983105545685721931427206692986340814799129234410311691870179358776532993325377631025629529996036417307890201517911272310493071539239249599673951567883190231221215411011303824247981825472513540935737998347667498186390389358626285630026718225511364870660598320301639913712664815789189035991278035146099129649460772505154062823902062089602749640823917981262311544442831480958537651901421188180063824179838101986073490148160672163552738952256392866642344430444734814368295467877245207902446709818501348939548785804113438934620600279671534173335680844259705192510056716094892552818671023455915955309785743161697788267304304798912976355918843535748916033070462168127680174136153719685419453399463106947456166637263896437237624963771807717821343323285108779207674350173480418577666651567078739287302801512436853628219495758900969461007549755832133169959667297600239151361056415452168947997589039721605975879977779369969460556024570215499267343177318531441174423450202266620001788690203985805181648823241111782581016365804411147323090552552472156858332256135734120582298690225808306876810499050694534066756561205374160288881001988674957666770419263690230505973211158357223309718330677343808786853303514658315761953595213485492343905912360557314981851472670820912543705397907209058300428456479580927692123215485920565584088227371507124096669766069502325159457967010989753240643535906039750350089040786350321532821008969578140367961247095548421385148733381170645545399521686301764839314847608672629462814072960880474241127157900334172332154176244802672358834905351917677099300960756540177727685099297989482404915162719048032149119932826582407800717895902464520825056962459831355281358813258242019862760790120811871285004499834428680900903025795980326805641846102467009935170119196705447683815475787264646940563601536171066208438268400051656364246030054572390821137484843546734390810913121541037266070417783238137375859264865134891326044948378577140275023486408294081892452313888222635283562022877220801158592629731913617276039226401281063499204495887714813849520119774457898751340053338535716041043919986552314160015828794402637021180447920331879837755008956831383343212037079057361120725852021198791069883131631938498386759243539395552835573127531290635265203710221151730840685991948097520847055591199480278174588086679607501997524793613683832359940454814802619067357226653137201887693740965193021419130523056471508688088115714078504541139380248679331388850923157039168264780221918300027907404819496556504756984030096886076359941754889899198949355931079185894191631342002916837289738237580531454637556891041024962232296783639466069173677697921485093327741970288968054478476829263902028730921108497185716635572100856820133838493251824811625226023667316033660230146643275278501642222106757400993318670649206466428851111713460485944976538220718757278963378167807013428377661471561969236824000391255466737588608721787247577316302975690731047272253109594540719162651677479163119363596783687943643258895785628970604039654927045340480688162221254717885720080084459602851008842183733427736634798154565953822634407649018138057163122333720274183772970462685169581635792133006574298838478471517882083656163055661895981465400867141439845227167927996445371292602794848245813980331859760418440569044533946839832377271707842475365856825426337068165117171244816176835972660024109936255739862458670075613375409109127503119339560712211339185387058364850103477398801642809351630375519923137135724858803547203375407494698182922811485940984563692588292616909333114288947105825926468927273910536987793530355084365247870473770988380261357399857234986326225695565711925601079629711701011589563609849253114209235961563236127597867213633099850058982121798012985871373093580472872505244335071250727680775914497354226995395671248236760005639246490904048555897354976258349419461549984121034742328406521280458817487716109186473116163166050781794127470077370399471562255540918823974873350079021288050551149848521365655320076354735366313667766455686803289570488478808753301245285146993406111090916218403885398310843627122971581768146646415659332739259152500961200416403001838940488927797189624024985759542558451775355260036350924473558410442882456882680403942526006778789050297856731187900966342175649518162184956459139279817346271042586893826345758825060372537477614577775038399927839261990968369437477386894838953655831689268106801645279768053392852267299244517562660224973434764497899086989478377616654535610315207857896156264922530381413139686951643698538608769533011505653449477907457027205611660411584940592293533443395319235501251408055049994146752387945720996895217133239709973710903831731043370218007449894510292289737073984495470149134446023199388690213354739698978712172374454092664389999389190535509516102285352289662857527696811920566946812197185164344049485127129843582713452254694980501226402967247879247523950904842149065074487881121748379136444321175541319959364955990744881909144289081189450428984023450376085892055770446187020113691957574699671565174893705565272760227774772059611847646918239198758410108516746007759838836849511478850994956642172743629192600930401536247880371164011842387694775336462169778681004506897519732676135559608402055734923382155851702593283965821418445756438132538377669664600953103751675658392018912971809626129234028394084205129048453426602685253248851893093995057184210805667553137992817897993899123607314259588666157551274940072076721387473789476335113444790283198961646879575677989793021617930892123499121198852992456478149651521121029640015660436417564189957002647165177814616665443539504363018876328569468408349953825353625844486315493339821368535571825267039232517845896089773656231880465836247971745529395640582305477274687628785739790197563007034532843987775566627916478075514317738210817249797632015438627241942515095532354304172618313792564441754691050219741742873865792653341392979819100417336992597852504064637952024519905711800049642169712786106624791055753632718069061446410111501608874201477838191689875749486058568535352080488589335316512293276145108274211946133540991888743557744265859222522798051588126191120051154981337060386339440788809463746583570901839634011235475873622159235672783790929384036423774502797910932076106473929147766406523027301260792227865144471136421981427285839297820664364447576606764298328665856983917698411290551292605072454908340362223659400372942257915834595437918332681642590155925271422683578676491791779754262663550209427854040138067991234540573247146929129757136736441582841944712998500923835175577470916316143632303803857328175067113596539646677685709535820176338587074719266791309099945152278915113542654660783050876435757142053339400796242495182735848816560071177967518536808398773350382489991381550518595079446865552004424327226840935830057294995345454032855739944953637387785763821485455796337371758238800341744558685606956271628454202965803907260270358265411555206686068146320588884200970344839100166864841621136850448807968901969807224112550780227381710451307766594639816620454155281060394299941813738572192557235462234049188121406909168495095448569254364629479177100321387519394520805649266469810390946578063400355511510157530093194693600418494964689507042706250847862134322322782200510866931419341766954356129429801885335577711659907185024089979954867330038596912628252158871787784448021558050697871596075669998728266279983143967551931642387143651978240931223612944192098620919413871704247941084064913640193049338257183966638943907919445534242216950247531585119392463429348271285943086725426411834140427339725659868512023023657198744986545283838760645244933192373626891979559444523410415053740372663721587891220907483432363472323342097884942991058751175557432024008252497342251981170024493372758114407197317236966164987384747006924582164249582063657933333850442602145372589884450221554008805702646372763579536600371364060904730164949113263974364521933388243184280007271252726370749287186999408651811576107764101468417467408758255086712125585859340772375309103527311203709835636467599970296323086577684634432429193139226331963968325075652604746809990265888677624409280716944799784302448202473680978876599459963951822517877561080574113432521153384185329263301602342859017818863367915909321227254846976294474805979972879347206339431046453158812173355486491883284312317451635544292302557922660752654367718687751898868324954473750228184494691883459027876324581299576016798840278726528454834888045368944657200191520409048721381940354333120849212065449461974803770524354438187639050588568765935966262252287942368675551771102856134695194453916237657648294061436525990459038940629322215681551472478278841961876520646118483192113744681536567954211307612225947041781169158218575951328561919690856302011856390000420356400479999575240972626351588125165490155536510244213159060597559086544296997689010992457055365590738278582377805865011336285766097830516271517712925684185490886029329254062605452979730934528111664229424873565145063713661191153851587435885007231624648447788984237172539618145991479641392405197233728054301640283899758697639265539908205772597866114825715127608127906820874139873549098577240980726669899841854752916472281142491046923609875084837164985121347745614983724859540108309008799408672327216216033751600839720277666055079611678645480849701449801118445351005311362739780171299658873088335347776139231453138527927347922957013847815171429153869119056099100792944902916272961666232871688787159118758220302932333101976795179271960964167837819782654149761861742265246383090103850551110504880868905915852379176659263740963925677813156303185611577696017975681423635223728168289730167338649229783936181588272153352871984117194969812730740882715821772482642727065577664805881033682972407395369603331889528702345709138369732752871941164079861250592414323385037700723518227760102405877795797146321641796748670959742850994350719723307736862199650638430537700235761615562695669941073218035779934497719989897266916368537554190645446263673500094100524105068261742918645824036871768938456118511947955615171034104210840095200798300313446819924692300441886584526288826918615476524854681485386029543835146991017543674187599965452620516894089724224366234620052708883790092180755124719667783399014683296590775491550894077476036795673767335068194432852043575275071955193707153125708871759925936664292033505408525316088177397631466135929892378914435134809235901493434271219641078634543857582183047066921576061156437367961332449625901774278817378599567384477703652020452041565869414330485966626125653681115664024623877599065513875533020369995036162582156668320519053094817244468659395452364104312790644711258209714129895689717067146043881768075670623067314255442833811619777609910104946036054891777417227365317310370572965143374468134164025727278729684570075762722273971706291245136912242121515687829045165716666823481623530914507526694066520058481919891605535101219236174604753924985178000863713603423572174904027143216096244679518123690166126623629092726514651803880774109697307787482914119171912057015712609426319497261955596388039981223236945423240864723917705669547461454590515138371175713301544593678606357129196044054682943266278845309144538787077707343878982855989019578927773154480827135738179391222788265431063990206604673485821746074333991873923565771987840282212130317140597293474319863679629331761440653492593278888687256800886727147967030120167578607163957450969954788979965897090139606271220889265153076555668794827209813580250049744026153927215628640478191598359394718273739875843489826806282506279546508150974407365893421032019715780682657671280092142485199205258712434712008658238550911277464942215570121055442072521721874787788408408002026396920040360845495167421104211750980010822466053974054265824646660450807900975130678800270432844249871273115445574322231348907379110266139159453838976138654390729922090859941384665610231879770055431142984010041713939127221418322478415631612346110914907360565597197195995884696286131336591376724744538778878074500957428107059680751931238682566953025066601845967645649678629235575284321101670279575072372004818468547571543149153663487933638763226960321518316063088868754276903230357399156316588377589681666285263402927278397708665467840326158575326499387968677097284091347311825056379064906449536684037873256857710658961651230808049091616193014267870957755279038749205646163279522779149300398679807320522286113450219070805748556450391177957792236177760330185222742749125109520373186686702032536400854362051273466816151591594171170307684241566409646601800389785085714061052232648091398786014609968249875987760320988250379835829358083470802703382998470006239517658235783242393981901938982865776291631647561345594406275838630758946701764365350835166249116225482766186100457978665253490120298871982562307338169395517403071355067683096093087169662385438287410065575528786882937226238127145031401448405917959302337581261381347504701338528397843595651695844513521007224488885997989431760056534319481347980527328540088713216779196090345927788927649509264972630580163307275422382419197833356390053580019662562999820541522513478926287868332771447664473719412888865750469657971453688448968797553449317483003502546164436761545870321134267881523902642553664899704575701006100406598577033468585848419905797621336621014018738724009683426565993135729453839367674782124395359923625172698303017997262378898683535195828115738330421940532986363821891144687711893011305655541648535526674499290774044876634899992605048808692597165037372900444381291891258790972180213556489350248060654978377607067285358989067298786104064545091591847475460427770431956795398403839680823189703697502131985657044147309487433347345230991754852290187077607758759515117938117233010952078550601660594876056759501858660984356218469429480764346607218918906619015345047553231067825925717096281753485866364835568717067242595100759790317566580011893754647245936715215239509349324894233554250370601937306005314793600024516456321418551092387920754472133065089773669898935113261475571605302426789088200722147320675022921902595938189627487245205844885043746362182070374037647295991967456109725289278781998406859670077516625831795132266857919623333244428271023325283136681451471211444432846573645539550658844961200505523614354371874271292607615073286117158304920581507276430041212888526985588923544735266205032594917862736822359348138373110507633322768650019146226193279715096669337026009398507243886182019120398266529045889132333225366178612031630490755700047776542791832524241467074040596740698300709680767052183492200289328421087283968409840020130467212031216615329152564763392340766766519481002568074044300066254783198692987452089520606084480970070018562507461699190849458097858281229891727427544105744110757059356285507474716544474956780634305227228446565637803182703490784712136395487390635308390946682897452144265966188291755172451494656187219787632094693045431024959969572039299606609886255464153998992129768936996332360528445127181212658355843633771112030990365602490487045033806939092789902554232174419406695014707470590187261239075741329993030514895093864868690606195634175935929912769539961184792428840033134765131847474273752436680175774993067328142183853386360863101493167887845079321795330470446081693944709792008943460409266836881172766382319516560166800082178304076999028498833880688826370469963092725142013785242602404137785500583266073021252984288118205303867600578874378685983133437677984503006847660380695336545050525798192517192233606293909903709170165285473953283171250465022427448603174972585515080450624057416010529682755445706982852328140726539745380612705009259028633143599833039366429852878988478155058914999158330413009874385202765655341159070657283960894659328571566078354866973353466019408019620002430659836909990183351006104450920396737982445461886505757856069524880960071983387271062164375659116044200239177039189784724747137670278536468972358833565396509739491100336802140903161521933265580582957601370477690377094522272833611566168003630277804137568866092336832510527586834811564828755956058251481406182316146863791315496294830884426256430877357989574460275369092745763477187627448461399347626943367301477601242009023511669131048268457048860016078655386486445159314658456046020266114592146793092516286189969294445094153935310334371871272845333007646781911265095508225915023937501476462247638545697116702430950930601321662616746696588786605576947754091504866561035027375634097557706613222454323468373936070343926525653334777492505785330975458945062059481865707303778985440343736221547157815901118523418616330792498613366754098540123999669696375778905151694748319214103951095479484544336855744910848341760474646482392616104403888848425036559476614638277815083595835472116032827371336207888146854540052926576338132492318440896817175960955928871391090744467512565362384221832674568034055640124321415910352373592179326827993492540537893112328287335964131562012013974475787562519494958385315286810745399629018533125091011847019065238768598683199603656412482171062578482168033846440357888805457328464593937805639956273149299467614723442405816928591220546996696334835069492193229330206222978169156787534525998769272348043308119813824135393730543272668926528208579088197069122601868703294805031662641169440941141875124187195484935929420988795887141463627532254454896160282235376799297225235839439028091015968440507341379439206444432514783055404390376553717959679722344391422572836278997203911096639340696711458324163953954491180734468567035764006728818636884934468612995951191550721276075005444681620048780829624586414301659300136751412937439599611820940054441536063553864299828309024072693452367805125652277191032212595897492351336232632858628106749164314673967712503059457875810907757491787177251091459546589800491653390368128348333707021497019048855026746118034201144301571560298961322539809174470805960823263328158623187313325354905201918966978396968485243396197157895384528639119934455113421636243353401328104182899967744617292513486505681426978372502725520065793170877366697024883487148341425936866802766497630352896434828869524112699214947105071108703030990566940995573143073676616724403404819426215356350279061928732383283256921534463333563860910297037857880550987843308129549109770179882439618592274477528464556296460543425701328510320116319637565468960543114711211692459994166461857718664900666201059932301726241377971980286842460763227298990678468295429220049302563290580522872992045301835586893823120053258661971275637060986474170094699223366862439959304942439460195445937898694869016783415513779452346713966247617044337442193893919868440929634992472813874347522448804971619086211125217949621170677221390865232034922973959356253274437165439454560601868860180565967144989229824462336857749996548353645797643147446839768803916304199297289188052278023873452998349811966297996238630543719669257173954586324896295987913616375126483557622124114560691617139209987777286861665196436137206192995678227446530005071286108506301910512146799723796012877544372570134815019858782328858496088301433636905250808905938935847685085897131659252777894869780160354678007637785747749423246033387808158856443724441853970070213439643024383143539853963478795878158601900250619546347009648329799960413154783387307734454891738145105934696223191632376344929578809281058619284482858686779962513440936557948979175896046707817160646702817926593533411665380308532215386186130401376266782260052540782806831699202596222571115259367625851056400519276437675201651737296133771809842175604686277348179725969288223822922759099348429372897061352645420518351808211536833135139523916566681877508742815037863189772549274764006066282590453951204032189019468116214395727789837437197309078957811695200014395057592851008624113174309380310541336200321284683988554099289942256910462988177361918567411914733019310596631427228451622622507564051738269822790463014270808259295533257512123424285135928225225443015029043081624799222497048424875835021680943562947274365216978163100233474567506409934571418456602615389357890365268032184970076744034466078992780621483075433480180889213411621905575743246378264730241265493868674436932849089145125221588342402138537346913196895680223372490940882914689168684570365035241442831158975711835058922296751549570312266826418475325346622239005239176724782712613739650261385553893824854374710265034121768736814994849629762829379614610715587837865651918422799532879897197280812518009153084500113543692582397399568349022890373975377871678639304069370606954041260073825330772103093210697281102083631433749539819784947531579251902210208080923782360718424623714893337932917384926685677396504273040144880018681641384277341721902028471191966166695971246052247934373802958954020783456916507833629029387320739392214174470579444079410645196929798569542007761901173241652553857341987576711777128404341606445922681685184273343895269158394821552248849523304265437648770753177797799256538152385774595671970000061931605242264487320607653642772622968628517457412269020400841930023218849574724444167765023015712059467710640960617081715263683946788914214094597325836667941781841794359312454427469548235980315687250095718609052102948649631785424602859705928451291133548803706790345450306442511567664554279704469720413996532884687259391719346838833185281335090011908645498963739520604980717266202680160552701048452997986958096525867042207078042361614539332044307389463762376392672265980449280495551659228539812910441307336511509298378145734191377508538920994156517052428968745985165453688348727882292222968979133566406283150234148860429672434799421965934186568901136631972564526969263175579201770162175350518934970977902118244234580312672551583830630969798502951709292963763904136146189625850604209615597322629546384542471099849331074346625494064340836958437320637180042391129120218458935046995203982578527553548039030882746627418160866407581518122974916199751371063498921018079781177573348621404720519260066624480752681226721947327711494002183335782447937848676153854127277645006031991908299308695098097949094961284302986242433913904766846825123367403732334616031568356653605353841687602292187404089172814327442693125058261546805737060584598613551873690705651612605104651606144440951065942471126284817000924450145936731044082637902650880421234078363102012512136151023159096360958020452128459466404159607728218947029697504350369956588074217971859170955095559598761264087903194810152483771637803137563492493202687122454956435972867528170768392305766401384008580318791853024444276787671486188330240374694302130046881736862638189346443542136798289216450303661663473410356993369685386956131831862924939549105401274712141787020701072317605005510975216292759159469901146831028781185910540125936730645436025252059801560180193974640258987207121495731476931115244845020343442820820430394382434759578334060300228885488804987662634714204635860788610797265546775282541339297548839463507501252452910732328275993228148083934970868123200793699642524794762367357274462327085428448075418659409082615505874765404707127325813131080951346256324070773671443092869029093175275047281343888926322143681847548756941966237938450053971694877128566737167959368638072778479554948352416791472528453359021575277836636537828518782905101112553128585550930277396450334069163980840757310784670337222242257029829878825330633668290506669124546399691185622716666306742053234539321972409926173029673397423519163024607748145770931706429216396713791922459099488756333730411726759655720520757114833415834459701003151049049479087839397864885024785811263409443184508158415800986413368192050889494106820770503813389360712726731348966799594649059826870161160579908338018736971503899505934546857487971824784844165238751087184203233226797035605411912909955848406674479270112007577564035823006960437072689338159849684870515805693455243089034478063574714092150864346968540116023763615679082812965683225467508724243443350032999607082314764716869686082958243571788270413831899648916119220475734747720838108151974912886059034842686612555043299986193490271781722621840970485928343520539784899986602337729962400290932929906324707350513190130900961552479117805459511573595635270973266153430956837588791910940140981390829228198933582405146393034456745814439321615499786903635005882019796978651502510158797002485451376305957593448648589705892122968667709806525715784000343315821169819149410807831775156184512242385750424671759206754260895747999791312224672485905507949254165363076493365903123785948179080485289897440778408095945572883743739497898171303473730574721383362032885608913276317971757933467574175915054406672063540505647086364645841296251330187207476527595545557825938888600428473193594309326130859067103801518823161035786730838517553610015889862183716245317663438013957870050495822474909880982967080936015391668514974273088146807383264345631520419547879175739422921197961654647956495059960590387234120511557492983407128735015963811084880162561960877099334142550870624380396122543033077450235682418480458934708546663397919958983365056629327997323693211221106571033430057375703798918726735675293722079159795751617218736039605338170495203394325895180529448010595324817185255248909624939537100983477613553975849918739341810776752838761592435764320848334949201565346767584210162747627394024805740525864010522424088845134975239393272517374648309239287329589241589354877899295761469038513343967577615112270357693862082051951429334876344923896377365090346599254196140377712784707718797609116970560440652640725686763347332841283730301161371789936424509255607746615171068262073128891952524916646211017662145087252611615752480491285464955267143535472380017694048738740900053743198119700500611393099912145213448141715216980651115269686409343715740483049364660880285992900248858282647844895355601746232223351044069042092450925249069691815269009794827876794975172762406014182127953531278966573437772107593173243192622590183682367900407731574183526065008318939982070332468127026493340014684206579008119834471220922739451665479736455784671633925146456854691128170369875478026188651110020130914497133258142644747415864476907317097407751831776243748798736318903224595383252926247834496905892530004121653558997269504888629719500909957733937549929443269016546324847445096364069208587495821699848700642743345978649098003232277801553149646781475215143213221095335834213144888842911986209522666420136436488912081229989403710829927117265568007581962444476448801648030562131369148657168207289590272075741398183968641866479246165419303433136452929862694549668608263566142859115615398315846070594951768238285941864755738846434501636288261868014689338533362368169466150861039791116910953353136811485784931216314558969881396137841745030359591260442489984564118649073028289466475100864786379551100796309309332389198867488816253355117724193511965302696643305005594677624989812177061771569436641529168521294388559483562468035957485516523993530147185251096851006134195822708707953409590090903695640947059300000162468228721822536385824102954989405029354532744353293878963010394796485307310398963018724141891427977062412140799070583890943544108282820066136667042304416567368139951608156445546284481811875268140144237708787307805404560291929560226922938130581961048639523648203720289464407923854496619367740332380609519635120167812748837791194341225876327368582358049492815426200717934306050294495890877986114284121618101961194126476265258450482797928263023975857650150479326857875887759881855317747297607820325571986342102268837926666657750616039188529226316306837913023730443168696348464886947941040317202316706411788501874091391601121678852429218093140323028145583622695472925629698564283874590732455356993036628519553930954428184028307092616903243347409126905824940735730163329232840508159435464905639019682433909520915527231282289917761784628130345167581355601532681098245758136541161432814621861786679045005901923677415372365368805058013881824188877098823416891410825985485200970159301453947530211042882003286433368973825086620004380842717886700091120620735530541382883214540654729614368346844956587603261408061521466892427160071531955865133968560303009765397804052667559630281454401138425311660926278065609703498801432623365861219262744143596908197041809219601778443270274692806432541756911445604389662350634378390043372629326955634187185882806257806866016179654402520043146422505128750620623693146391576406559537595937531516413281585860974023133143228012098818108078794353120348438824940608312304243604686270114208541606680020771551098544089974688232028023858695505866823997271991600078205655132346191401806394262108874422629989015714111651831192301922952563362061073471731954992738792178512369593004196826514932933929758876904148178485486151842842398320473990225234590120044404018952554592739370250777799780583048194758466765778295055907617735320861395364383625214270105357727605815378880075837700611189347601490787554286587057395189185854877914291782773416384001864794161236234735605088418283498532869683611017130655881963172073354816445773699651947177519264289536038728800549066455687284156437100086289020774694521584402900719695771812174714292325056988917032893614502697072035255087395895054778823903796442457102466194712137279959539037583124186167521774983055589913159673400659439164903715495559239304217297988388188473717294979260263518923316960673675556097534263477321896479257591912309006435020530802612050658834175744135985384993921621172669777773716263738717539130286284611631412721023284732006999816881423059838209862850657270390896598790499429038696682052169844755269082981169686282391311783540181400276244194403342392834911319185849235356243119402126805863332554341390600150164821876773747882172578388733697669759791225863031817462651414530132920849403974211154425616071080924936998347748845120031568390219281293379320785353387828340422749416360948830692286313767023980599740074112056665164917713713483136224460962268470900131440856280837963391572248451119030555354492351776000826906328147642082593050043856769983673394971818599388213714514375324709559350465612922108411698725976260570049889686660587055683108093772509895592970988857843610333209732614292058782462396621299453170659370752649099925146071058376304829683898996438092051812388816269999491655232655136997398637923344486525781206931032292572250112224747408762811371733671493032530473514348395289752517817400342666783989855049259815884789318367944689115757966208020820544873171207765602458249962553627818248186650541250541349066348627322237409182933198560266735365598667403953969881876194551666466510923696641804101995241692638736010772768952729687463365350684700333752066589396716950682964983182716760639597371605996771452567697855497077943200434212179199733381453692369655476680893818661229216921253324517843027516892675882178579481583367053669979514256816665481128272598770438736704307177986640656682150976312020817214298622077961175291952020778629507855404354294480927400274817494405935179173153435121949378602787333637816162607067244857657823122220845278865391118722993066049440652489739305291403633057008810947779096027842764154775758734137425246508629942618388491338136260423470768879637281330612964635738967001642856516581860712362715967241215383813625825051411208116028146164653492752169829464785826052134716621323279588485990214873325294116699610827517142283654266410982639892237613758823450637454258944858041616093421981987532442759347536551376831349602037587847771715922923489255786828992369539304296633866810455527551022233107174437953229101717877461811059007203211383835613984454093720351639025006287341390425792410009040678796271457917758011948759772201910662522923015614375009033185728345442399500681413216436151756297315247035458628076257436855661269153662512295770938897339060196100865677335201291550245771246002258610995674673415741542240181935480003072358452262855980236149138089325789807317467871047356994634626059698006132026486355713018230759650555413935517169519912726547047441335187595240737479838466112652069623863155851064931226589206830450543933224135493293336193416649693338065745532081628722236775738005509225443490596679657783008807633192450115231785889323230431312573367325295645422570711209647960420331601110804613293163606557865056733582048182583145694023377922999120681749066066189533304573302539397815744464278160771736361774593312541847167226203006900191788598128189059956159382841623991360878244051986509309922673369901580266819267919612578906159882299681492046661658371253899696184816066307339502384104107969243674875421027621528705905187357043255387709305346960114474804028110180880489685020255446682142357234124767810876805022232998070071710932044795345939815511468907060784816927789970110897382218874042344216907113828761221900830743110498681965461282749734647399874096971873793803481064719001390162085764082758055085399657411630206676607964694679317340167709102508965210648420405704130869088746110305040622883311022426700637867669763303081788647351963481386868971229152466643770417338684287733285298389481924080423271055580933010984195132709003162348552317978808018992429977325664390874089891813542946675920622608432282140798174611498403851220628206568861132874500109617026602971346523170940421061344698705666535792122690603266462445223348939001052115570915574487495688774417338189359445402013053234094995121644021725447969038323519997860937559037926172802536015875005996293038535246319630772038105330625761696548984611378964771075219967275926131937858405175088278864990225106327515470197858542131965275189929818106040999732994511777076162136223335639074362869495253213635492730239348915079773133058658779187071181193314712502827096743897406316693847120403935160909596233425766905339418479051108906836011204266994512351455227259253880119199522011999439666645336724019468321905998129396483695314180743422235290507900240124167032408256923667128594069065556833934910637610610754966763614205119169361557963535987368905632103937381877609763167805398687154784134451684275424451259761680845642299903998334301902608027191265628084487913616108030223379967301559795028689346812104295292006419065921752773911716725982850018580589202381566255795628532301393098828578433323378605222038188329238628918259018990081542074177270746802931422825622966779615622911467452126807558228381715354640195117564872911177157163303838985862244557897472904346025114830401448463874609798423100523624642774695182992024373461874910069061985817199102319860931779950983250742795379054407606770661006694782467504643876637197800422980958091504704724956745552906922313378876136061540017760808060409228231273963457964751438738494163198137980389896002397433531857126514631815062957933380242735403115636853591835488832320142541735021593179295109734115451995649773913850328592888654030408019138501609868342275947296127145055886659386235513568601825455062860460187496966290758689069479792742026431587152894366876176968289720230269742269124446141561261705669765971914227351288307401128192463259992031673131589441689683716454714904851812684710781685095058129841140235308615426226931619163475078336637709127684001534015177282108471817682183233063973420373431384591334479060429813000357671124907792011718538364067510916880845882424580122806507595838992707108260971844558777474326572477264628733889193762742583237509763607440791850595005884207923729405428702389999995115272976119589846207232667684718888177291805794018433692677051478399941084828519754633450017674017086344581773823233431749806120642635013419699363420124400303441049389634030923918181887749257941167792061999769169909543335942606063573681336921845304245642123747263572042753204545328289563487246101654512561213549218832345306279629718297023597057367286895227112963679870184986841875192566739620993764027074366630629608485377424605904213322808343651681291829854398620030757657682121690505855937550687675066708544718965875767777986152821787470500663609734396587003921173356303153106354977607298887662553556903883949830937669725090910397230795757608311779994877820654464190209958613955453006360389484650505104552069442185954020681392369914593948987659853331669335065125169009433590136357403077955184695310216587996310248052528795358677406478913350290995990061569762151990422924580276763423882221160164981811027763936590076838328876489840288942168757177524351525994603068604117274625299114832572926276286999116477129181207134603738753737111405826706815100531531782365318062216033142314448652048822183428232997129836174054490249142352019864608441318248370579462177591035293738416932317824352619106612100568184355810479175436134749524455721373481127608290291036457332226225051576684952955828164626723447432000608256046783313126610509579393796671504052178467846006805346426484763459071354516131086837284102240657614576329948574185862599765276404529960797979667692833213433535254900722911844270530387477633446683456404539661225055768442395542623756061508927874332143134084297564131513174999220922605489433220573297399002062996053800074377367176466014396018886112965708718945250645688039776114921384096442998367037586763473078267048898060417805138480667945143697869863262582150897789025922239433818572710005545195080961349176413160855229999311587757902346529953568957513269732804186221032032761450135335304753043839445796065359190848313782307218709386286210605041356414601991165373103416266998893261042249275489494298645158709387226755532264751675931241044327078301765506369040533844325184890074958233629401211533955263457177833160617781908062245565314248286897112391850836561482329619169476519531909905460948680593361940423510165886151964606351127381988673717768317591092305491881886405031265909005551322283379841977987376628386679818884855329694706841288379764222776984537428453463785960394300960650730358684356643280722518553112469482387168960805255733196661375209496867557105974600999445720512470553020748384371370313566498497773841725232982908232165115894398341588052361967064047754528096621332764041529161154550195873386226492842595849571310605048737667265500580853380025101926969755829266871654580087655686110850653120275799536607875428876372584903311965352247041925468625274163474154058211430050644895116546532177260125173904674065747240981692707345729048769056762136846358882498408252084002596265543351499441628822385250287788470032862471313420556173632581275747843281186721302402214307719008537110582069250247752128453713341536151035521263217216498632962377941205134247752263728121918274138791009542929085823652966960323371658915988829153005486272010668923061895772682532581157508517039178498851198802959046067092794621151062748800992042799195409380778191919423828208781220444770374849541753437818554832324545375691287848050238710263228945266940871690818748939151350860136355049387626887309247963786733292128190932441099726974416239214283078470012113433848843111087272124146701215333224757821173096006783640895822744010843876707113424315193092829314302026911796614681327690536751491047076364166431418111978718292028627233703725445496961237370243053545731232278010618851584714986359915729982701264742679507168310051306154627438835055024496892384296268362154691409692120881678387597042294258348771089680037345841880781371642528652855255254097750064029979080158862929786473821168890608628585836843055855316333235775091152098599996957061121751703149019952077274938923144723931287648924331252168853742780745371721602595740909904053459073041195141288438171239458400130553678341850050580212668927390692145452919984676138648473432687922210010431805297257674309202514095897073500555465842667735730729884127444078241683043297919678744272393702500045093043570094499179057229605150725993449113878874278614322208444038513957376196565523009346355437376535901292567018657925183401709203469595863758246409152188784037389372037926217641263201163812640493718810534034544571206838757582016773033541635023985218456539590655562141323684800722746710609704083274772394205643678650261466762801970765554796241145153961390871436312174948859739282663893227209583493995935368771796881194646058258024436068645127335729282215657394812800110340527174258122027027073776686225777864757934746059795858882092106574047416365723958225586722401486285204677400614198482310689677670362052023729225714543084048047501426480264733561588232763996130141788970256857535781505296760873721262589595386616610255699639498670932979483641873492839337410390541902846737719572502409992935502212297060253162197423792675468331680075556406286852716771643963567394282719534805995685013749633959131574261880379330729168319316807788298239454618639200517816543182696439187347873132428146615797381807461567111612259262687472968271076351757872549389943303547766369071224622556945389943566637485001336148521344290244601720999471009573206737315285979470979041814611914391727050151602847881594423258501033547241378427708355320378670582664039972756903465349744129507763242455166055714296375663051081152453290863884904180062946037177258613355083425310460047826632272048653600722739622692956106332893539553882587885941997051670823364415761776284831978150643800207808498217504451944699817848743270714279563976365877048481292440816757668932036896241861348042395844354296734988822354775208408380528096362537662280041323769494571362344537348487131815150577082062318326816178031840369398756659555175327254408571404281821164625671265629133511276185215755980483458833999417724440877888646863874470165754003463438922084830244927594992246930266955521655771371911949911683064540628020731039932554927224350798308450439712779950790694426521937121722755155810209914306135939210955342797835077329092062476434721907596545813869529762532850774155801383582755859467260690686845034611906109090247874092771458104256898133592366371540279879691026506922221673504173332009282129896366243092431112740866345911084963342577855947444515547065463036903666805705841162040480026120547952560698400033079299129328464841856365135758268805742133468796211362202603902891388770299894763079213780279640643052056836784921555868718991785532437468200752220807875713715708716422583688930927825565775290357370721677403070735504700034786924383618675228579750714344259853181220582444106244902341804554827757237998189139401573506259257536380830369131589931191548944630553467459136144895454282231777317004821069859962204923249056694266152388727413205057874119718095867865924964713610101264498309046419889013688806656033407067158885485650140383991879673481688116331982608334803074461667838367138241991308647153135897915607766808259482311294484849341867821164229493620491885817286213686813699444407713674737271876095886882966761467816867928849589699637951106056094345896489388935062242818106916228957635440532314873015674002033737904457372918228466246042440699527278030463836374228465914180502943992495402068416489301936349068284500197987079696694840355031300728048978669217671099594978606450703596100098432088849463231113913813934146357349353155836893391470279123118471798459879839740091065341904065265368195763174473452413278996734075352211362979724171764487118436266651946726401806902337699520573890424381316784093302216011546882493910709075887113525080373981611415667262099372359736675524246767630623871439389435498936173277247512353572588761554798970003080102312204102459034092489357864530176571594673266478128973600415133078486495015883225551051373042833598438394789271371231710903567261617094795284983635948324132854875745888781361546023944202474421064519580201122654506643805943067668676947663861723606832926508011167888888180413704745120493335472100926269069010630420518770814872311904146065708802558235194342006297956584800564849702781899707180363356278304484672607616143954348009463938365264447866798032888483195715406159943211243021726891336656845945186430838369561041507643034166378042783701669262146786967194242071626152548396954448472621213157739455320132104705263315971520531609632880360335162814699216535836496080346916228747667876299815008420825347106131502328720992769549479681837345798244927880982983812258754896597214559227447152753893355126118183514348399682312046140847703893097952428926952502598883095831916057904703900726190159168821531884536239979734471896164484705349206934688927278250267870000794911537691032544719137782118259921915423981791184780100515243589199831766101194601674316899787247460031200105497121328603096490359481525713714474834834877359754566834240636294852866803519248421090338790053523589924470189621329295114349427674105857781950659866373613884416758843823917427764651805580539544885734659924611522537586275063556072337921617364372107023723925129130057784561900467839249172665803062634662803886078649723414312680322964949643681978417846144431907006583061494909502006662000921804467030296419480417315146115632995152870068300436911997602783395296283847295676107329996841124773830865193614164363282665391115635460592468775038557064469808598940189231753755121412285391893930864271434585228284307865549537007212725961268333877831440309472506734338540685795340358378087134476455522734912568606773880227652617467139439820655430799747016419243274809141115114889601484746977981263902648573351891443499133690957211449433486594998089145478704646449729667150804356064637364728697812517853979319518515689531851018084626274966683914359710019390357950811738314388376006514886698448259159974297010425831478852432325065082298989542467766784688198152588619986835136649150283019927722087054738727814280258329129400416776882152891303860507259503314231572391775142247503105809598955752954797804109538939004424284459464344460203861173152957151804962076316214478309919507353604089187549218127420425975647326307204648592082826412832463759542351764164847669097616643082836061055943687167658161279694446784539916168976697451154492171259077462030158456080994917622923683602421542687978044433375817787465678873824763313000249073525274995475668776915053944732088296794955014970038993406399180709181171162248764766587540728073349235163069151465651413133949802502773203845879096084309316529356193674817395205108123552567120221543534826762967053070032918872781619549476648978718690977836378231707898959922804430865316197305394284358110217939658842792853564260779821140913530379648949908750134410321453790287450637136568510489750855434434216632808601099833613230471265036516085885872191607204357637696619712814230329185821537843626478740647262106503345756751138146027023991332263770247927070917000199271545092988773610194847254904809883449245202068431086659268052658420842360618127546394931483800683162939054244154766664089142470643145083291981207500061076552454309165354767407661951724509611655944324760164950855106615610221887056881395684130575264734375724101111182086308035930077545377997708986014903256459721874933778020877380203849292999450269182970742143953767008839670100230298554341400454955832247755798455122219378880896278800422650673238826398037992931316913130260215231603830039170322427620885324142799735327843256156635498367713998264878717808149084150136548954228279252872213528800825366109135903427914516099726859933727164931730588452733336769411124567501432754602902934503201601324844385206952862072991720480629320249555321301918595302202371267812333959709748921263513647761533747271105825479307605377684211647769340784593147531776079155437212156912492174843045040509470932632897308225402994240098840558382849257600214967565655090989676083840328475421473243596738491963221183727881968053595122261287721577513487250018179863030394078738118821262448857153541348111167325858399779277985932403336587825516809960119518768965103839389886383104202650604187892664879815782026536066835602065933156276097475925929408505320756047573779698075826191079358582074817941110555610264930706020307341853493072367380015378084928057588840795185196075174862640729796315752066883738522070987506295292006835960252580599735154554845378287198440154146321693620611337754334098685335807432862358120766401217269896509853645450825105282285676105145028793797618732112870218025532391812017829604531611499363935921518727666478963501239794483399127265277321840711338739186604907077430378531546530438416997840345536427843986156516615933816724212792432373535642986221043187746162891697611261036492877500927521478839174955441617532727467097698307630999249551280837597540044995960599534233499776338015746519211773329658428124045793423061020278871772682373242236131246360276559297823339856787859524044516774707745377969338993072851034404687928955931790347490305152972957976555066180701842439080947583206858436991432876060854930075334537876954094447963613512616603824032173070838173494827436257374279026709195997438379793880311292598771365888315723736097732685522995987336589918790088320167057034810080575971849887890857865234739122048465279011307780113336319208956431603339718428351744145570664022133177843549591192684109149364189710812988558621758249024120668653420030995887981735647767352216894580140857758514458968293651813091930924829215468602692741367917615311337838810872892202732757393194593914297659579345368927096728067009347153023659641380394597659607694356184111707403893571752372078468546803379361045643318533229742020087248357784903390172170471115908658515400064712468908746149715976032825980868150874568472717638824413967276625943391254382994301144161217684327975635188785368283909294086180504868831955993335601418319784057765075043295774560507485875700209374706870856134737015339320331575700499497582438809239831691263345701251198496620881253912410738540565833733354284096796609710636268151842190876773049022233366190450389979913095281792380804261738030585300347017117332998156416886258671005473409613021077828752590985457724987317225130985626775488895941599751846138502516574594447083130324342775252989923233147292403118804634774961695056221360920062252135483531068597194184526486465639724133251109988246665609625543128355588027737650405237243514469543067275474617393963368584268628207111088986928054222273042981926171477857125081979100467448105765124620555550819003626188699022786943711911342904899008540951898064681000784269206279237664760685136504985550214807770203984798585617710730495607512550443358810404990654625485878171418722325550132644576623532308635639703516198006752917072118520863525965471211720498138993521139020242596421934071434317098843988693125791914034963188709879883236419250338408824703571055845895525592069746780779616580779534458830892292656305896534423243395527402111010302229290017423725925056768523129058208082438900663679260954421891337244514586173532495827899741821118861102175944432383773034232787379835722713514457530483903206865447014254539119847665730722683560256357265725632058789751486345757490585803497780418785153690166019687530621403033789142518184154924609028219956412230844446957361498583344165416322484461065047136275916578797218022532317205517820303150002725897666747202320618939679391142456864716870127054815067527233109074452458506865219636829737157333517184520983380347058288166038534073518351553687872302961629921700647348718753218033780777730451415625628799079039650841304582892503866982767346786995286759543533517773116871716752117734788480329883743850732473442215572176212941630041859362902415432910179703149868895171851195640621205804219784843492316805603750633702876268145887208810674180356295901268046329706123980836407867248386385468648712027020618056520915841694780529467111407313110751151909384637034708006475176513511975150566535547572381556602516471410572066071086395764839100625854989241489625136099962084321107210657846786863658576488812268897961117506514603924964519219991181818019445709373019242740342537908897429323823565021229870392830738760639253384704130958163551073943521817173937207842171451662229222941125145894259539219186651170088229922114395108218773087495204487354337994017663500533591370511459196372943200159158202893954522457747880290411144401115455150295654038883148132228359020966138506264860619175895616728961703740404142197506786882133657779237695872753701781309647962218871799487668482597148101046975519532060960029310124608731551521133660931747507791984981279620148302679237670649921943352601359435389547459866225074723482275077408664128945364612691516742425612853648416624458168206214864653837746213036405089540182588847683991349679292293076227369737198910057735688572529925781780264913918509959024860041675982877681047377448657928240013223591772625910685690312622344559091841009180897354875469961565312239881064928501796121642515780300942289651655810313601191727272394847000639063434991779782879985249017739051260083474009879920787285144570953052775999632035858000008897969702260042522774644794342005019499239173337579923810681424247968584980794761493027419065435017849567302566416073923128759390447180991978711971097646781604996268608100210987550669840099801813256587710309219986123780893745943279221826670561282311296252058756192814858264093507015943393822508819328842638554905552651077483205408213656058265155332444579520587857165380071580273599581856167450967846916745275855843143603488605831868257485488918874930827824414972624280584016947666649943219257149583923408512173285639197212213384273494880842269248013292793009248928832767377095599227877641726449845451857802213342530420558314418925365342966505270658511525310574059449433981582644622891279693388684687055423998336792712252879190315797629861508821021050038629876589411311750297796777190793676472798469693928722771773926889753075422511923684411624207679009530928173465158946144933019930096276555295455771019274714369280718621924574499830785444693173499517474776729925816187348362116235572219867528487039045369361357242631290039007661520751380051290093100061945815725115063470616816064042689460477885794085464430702505926890146858743879405262099028182155804439374168981085370095614168288993401827491147598247161375862824995580935714291756602327537624430397504009091381997990405957934093476479663910780097638724403979516726938108832028053831949631209654070399263253481287365170557527314775691969320207372615410833079481798111838668796036631532070988634112089981172053576104547744368757921825915635003618654454641816514836801113480978117754325690548660254509822440016533197550647532815724269358073166018491102863481968992999370871725175311834956173411928535787326708247182812599304856996048193563006868449491533447039664229971329810326847667936830633436703177654401628649435076986550620737624301484252186240486350724590934107453011461637756705150002219543210946529692165159045687962016790282371348839988099504998247091881294636279803321345828486168137286503848220056605069425921663560025744207906829989895204602312397129411869056721134107355317417963504545701121726721899419238256283442345022949952737874968488502387497509790065562148589754331163846753019544351149530040539998092076663772699516857834548799002908897675331979405918726498614746609851729801877820698402940831185482103509551566831140127948499725416630865318419670360865180495357405045268627487223738270990642876718921359031460781151095150793087227208646621925097509340750235150237570180849730263610165744166851543539872668958575563468732812669522322439250740956971101007368996829522267778524793748240215497522668294778905801178383601276668982745255138011549851759802577799384292906106491306631872544317988869389191933917090906149814018669147277738729334115194932546472547964189275380225617200111755578109813108233393105298411640476486559436945120942666974692489199278519482436297791773355255943402864339174414449725377537908525399496695503512653984585349213504269939464876440396486489932691659778505266199540958265297616474132577521087053839788900189073214114927395318048460286741797107167013293720727695178383921338832486190769089329298853191404613474246541455006201013947677680409624677462171226930286961399298452571193188932961220394396387849040058837775312717826776981539568928930898671506025448292371724800042845264277358931829033823369960736193406788437090285566822259144009180136270963647527397305105523172436825666736707674512803833985647361531485058880335928988932838654901998684149555171668242587788434239759225343998887210111071990605333047693669784355180044580339242783198633596676127021915497542426349203155070329035587748376876740283588543250875927970693781162134690691720612782483900159497272328253161571828535774682682880845743919535283752614610197901964311289360368561281557207944472928871905119572772943667196021636423473920769534513093635478467761513416946637028409680022203272311716511773831089337912304850285265768406140795176427645386533707839097126334121137567007708768099585680709103131106731642188868924456415732501834195447307872382628925333614704128661248696432333330783916604313072486056003005414434416874958658334912586087802325371469454249155253950221353288639625351450821727954584599711702907695249642453445573538391104385906217604310575096326748253254706702269201315964564543433602727038153148340378336000837248505394406027753158990019785446277178532131443575355298666841824846235450563015575194197656344609923904327728045618442240724555647373449994607288895274704121390149493554620829939429357774986276295681988700804177237657073636865868269775957562015712228352140365407245629052978872690661825121002429640259583287628556559521332149368282214970383449316670626067486760154930144536391064661172296899088130803325901993910175906262925516995389115443427838487759582451574486339525747438106925042672611512123743972497084246447674204578673702397997443064380262117828018917206979143473344548290754560149157775316417562851625194533517001244972641168172979144241378153225752710078382663158416991816925076957642594074728755003413941043782169054356908865833226171703875416579475699438317518113400632666386522724606633170641682753302535854295171909873346213518372502341308163726839720281799098565518933593148784866568123736114169536760083300995297270749057288652308575693985093435031706137688743740580693421855497785358092980625988163643712214758249946682987547689840985809083739777860715086805959446874861511741676291481374878048565578674697092790730742463976792442833118945452504047332644906919230353029500653320431965414590773998762058775521630544251210901000823437683339786267096198209438909034602183731877212895275546464815898663569102050550419930947713942571917508367088467559354404937711146719018799001809970426164445565789860791428084851191690697962530153308966677711361533730482420866899938682502850308374467105742774455157818008078728560310459178440634997111559660373718697581529898689128698333058030491042286004721168430615261514083618183851242598944828383850980590029830807278498784409789894811195514151867737621613872825707198668780758158823009487682094698541007188537856715231842046692546872359748071886561181716250647633389407106073013330737015712291817803843101069063243884279372272024167773354329743729666636841537729840825148612194427035596285188734583895202336116185314032207930500397098915550986524607313893901062300031257104979703200340679348249550090729284313547407331545938148069455950115172266411221588264663362083874738587011315485072583203558891502913993715609672360643404399370883107012728618438273932799778719510150690741062713365609573388529981784792823759511099862177013541428870132764222941776109719113738023675877209245724713600599275704796144517284758576945316486658647535647509845541057766953773816353231620778371775445913256085698914764024358483361057484674298574670571461785633170575325865718822229342586427957961226489791482206327939493389362763878079164088442274320269928402846526457137623539669098819286527463943300978440087231521600229533184503769099275510089470359064011547873034573840192515015150440571444231393932178663861977408261108973488214111463564602391673887606118306930869808874200857501633095527624167863406592125943686054181167873443137119040026649919361022518176968764806311852687042917695629314558983394353291137799028672980902198320128432745773729948081994212074270260636191780994125165360653248415644075058813650689418563251769131743376979262808601009655089623546671417871615195880179512919378226595234459054469630853836605314948373987114832078365292702092066706692960571493713759793442817246575660034500908916814102890541938843014719576142001752004834937259741565165357198676188013702377101471319469968077849281074136263355668002057281939704994240244600299411555888237209944411229425762148282003060788375971577529594494110964518738520450171001253520424009294930017850540702834829922550089459665358954053292659773621095778770791457349955945445995330249792474712241088830762924388318877009740333590348717524558455955373280251547193974057411017147068051536325887354003449517042825612367119420855129945074891290736397316257265574709581980070272621167250753388830685134001217115496346044389262116427219424427973600830580637850211608707936874234214976646156126396276358952859752016695551157819294545647760680249517688410955093220250522250055650181571288641250320738007668772459320241685606036619486522508628510884175208203251791579349948631672241364432245066189651867632297200190625381644438416727165007176647016257400433869605099134160810290594157733692447352452193191966482183215055613195408817791439842601361994829822395450808567994990268215517241671490342327540126281297460859982889291526545410415704339529479869965306153728625077670058744320969864278283568118009258468810826282164458965949556587252323582382546995434202319750173957688301538192065892966238991640289453608363693345865091512121570942873746093930187875284369138725987364485322804760986923418298280328390526889227859325935282762412931458221703123708872971584047645014734225288056492156252147927609435414919976442409522974647423946834020463989184775950363148142932387351646731734810012386951402997887313355050724870711558334263071131783329838870654178403384729703836715051961871267102171119261781101947067900084940887673783187174359254637522148241274083858227915181224974936014618774473525262381977498892858862956099354134442119726697711374083212946447197182850723631469959027308121914070168237812855369704135983947933405141799844126057461628681509831193162808670343446586848122242531786296855426395957279397512467178301895111610435836853289308268433008540009741140950007410263492251307374059471974131723069523279008791902434419012092783073390413421726045941740506436168634063926565721569930018751747177209610861099932630314676892172629873123538332271234885097744055467726921279122288658196493203619745861616132181927109422466600892728274083602919300891940886943197108270891920838042348502532379475367558186930147490693400413768297910344668582396039673665031925009503843296865748591954084686141169990501296489380184357872141211173473821505113867903707970299586817933194260630116909202372483103508796728151790655764135170904054939716970360147910774536472482282542097004258266359554056656381459730989460339881563847287077386610698870290226965706461698414757374999165280280661008291321973993045231047788380936612144336738187882217647644614346885750598149227452388061003354597737002011084256909157956807692012334817218377885204557113136964515758428371309012770962129461526039195042596680053556829827486033126821663603895801893121345484450352453568022454325229438909500813027847897672795036062180616657559370039693590357276913414862009175451390001169430628374628337233265191395703527567268231898728682840169410676612699783586297080835266242259417864279206932206379844326459506872761747595252639464907933683211826926367028065015438644280450746644693313993285460850605308535089796022685575594520620852118686964468652701779103876002737470115509613805968303411680447362175041018300111748078916949688984059776985319481826194866538587675391444464644819707513196965425669060700979115580375874687821959017357125694868882435312127534722151120334019613140349873630872150748823429069021450880210120014795208801063059056788506863555251614637091203697892368924663905853431357106346931738488719713652209791358860713634271223564633281027671960733581830833583681011496615341765764864807074176265865626657619103662438369269892783554639473281314369332302403027909268850222225657088475384626319358421244680690834283643809620755411920098684457286977193530897503347003421223842203513427594101294064849389313839817111372354801112321306385065267440491819727513856173450422089511968806907278016444527022808731758015392518034566077092187327558499348973786164818587962414734990055930719687843600519555826837601143443837898993439539846449733743435351008134705136283907596835772600459841850328960500080128177390084368387502338814089971763170816873306504718047982171329017395163833128069890199728283329649379479702138603947723954754974519677192932435391495413199499096032532406578842079745041248547735462601408446121036734990826496056550432421334445417598470302362849245001159730301226180728227056587295666941356641210779772291446363047309919919588238820999069470324516919210277579408113671928152230430515760246643960137338207866909625152567003188583059607548382628400855491582732155263836000886185716168238146731007255560994300298228359813166979117007721926717884704024765993475944180234114459856576746179139582078875427829154449881828450110685805063051728939672295024055130015597041905524507469011236272861954722971551022590435611596684219283471473406879825577360303787292074849097657772845082285024071723966616864113877252310737589715336260260080793827117030990176256553143788137342676578446073482809321348846945575169532451729091087054281336051338150446368644298498017860589144691780557571025452172213485121018452311324115729107942884983214451393752653674975294749664385211145854575658478141286948882665330032555079058954638029484790533191875167311256688369640381289140306980862077932175546112597027758125527669594338576886600478325454787505992647958937383576408511093943344744618116087766036115060215876388995429660628818611494922792511619301618473739215403382386856060345516671718256827060520477178680028953405414652999780461156649982015415175493045825878141181392008037684419385231204103318441321508606861879572366655922370364768600604438752017073102598719166203473412796262628240165453638949845187628101067216768216546586995910233578963610861246705942592449543156237862450951887311880888955165723589277928055648324665929488216521845228804656341883652966275646631106126302133297217098025461471124688042862487878873026590951625917946454734050548221088462660122268878744568316892982234509551051502247051321016564092558618235265300344518268193011814695731722103464359249189766998189973794780473021708376680571038181745227133570962660111109052974811722840421920563992849341677176809665609555689318805850113069026737646684534834975489953835336818542954430616331498180126125840220403555019355152008697071454579859707656658691318324838510618162720765087707500346375652859455450652574924923373921872805847357348556568592169962266837215455156591964362372540760553964780087418137412437196958161625878802458881432286541511737996092872126075139129535370306009172518891944189265336391348524705565635031779478344612458466543679282532735500199927465655680748796791719958413583944381133167645202734382408854829575175715059786165397361462246187495103377598691310952552648219678140546478134303061420762217591808766025610326373798275416803703151457523542011487199318010286966803361473693963215503478929978899956949018006371541529544034368944300029049552845089699465124031024087182910706000695645868884863982027653930535213088475453324090535165152198455817353324501121883262165671712637253181627967254317720166023584721882969914192006232491740732861860767477060925724567826916959643918667150321807192753518989864132843110054585165015151293316440479623841296771019918176048803528518438498849132577432922896625524848758745550264686034733327254500263269849756029357884621948549534206720739541899716527996791003102335850506359168949980812464217257013425412877508119748555558583971693959095739212690305674045635135087515329873532128827439356274469710200793479829594683653709103146789879994719304841648828850301251003803215704803595852797251791058722275566518815524897644513749470699586522042502073141179302157609962463235280456032692521260663074673739891655540388887091882520238156986318582555237511070400784148640125315596105751213211954039906794119494691833150758849198669491033852268907844973917881406775272560048396851935260036256635438630044145118784463024883226544367293510917865349717335489386894472356713880697378689309507679564157951558747726711613862748291955311192544927999324756510289048351912168239430494907096943880862302083194181970426286610725096296389176652112836131294630394271072157586207445532458205064063563024163720063439291810651059730875333863436150489257680225848031339048809658296530491291900629043079148202529108818972405001213488149777452519304386452606024446413183003069855761542263879651547501069639045671218389312392020772934369827394234156129383131988853488166535316541964221732568725543257946743299219653705403862487903670518828208118267592873388529715549734836869317439149954765230323937353339550713273097827702136707227419854805751702753628679423532132109412786153782886663172050183395880246326158422876283665620133290765698312686247882504080197813924035633706326146282532113965555788079987910675810390744295643343007370139129959817097638115304287923539188997943680197115632870734069915183489400307246222081324441477935777555605462271098631196173349720504024244329562442891271866455357159132197759175912059802546061730456226812490548981532794386570435890683048390285294731566689906044056787408010832831242833581556419650602725370497816306568614179242799286900014771390068804811092473659722207390986780716862323200635881174943493437529935972188815741684258055893197660244526168264020053653402398227730876838890756359945815790077498366044749761433164425799608380371958259531062646674824784472455208912497295985649837568153718579445130428369777263584798606654938257119174948071919264226993665342276235554403310876136105829984927173475935827121099350262468274382276322337975348752905180389516652724537221483329072463437336181999381894903555258607737646269704172776397568458739166049474148774265334536825003212548271004764338738088056897111033091900862446815077186053408544058631984643739676641969606793669137240499344096938560143066097166384403856050858493636551169347213354744525201985732991678196062665377954621636384830548921175015752004051322021784537932022835278539542756442675084104056783836753319932628892502825790535124651366950739464649650684709709244071857210432140109288241801870434923890685874802901815541973746268621777091588065033213843673433157073117014420100310154747198772253312812830209358487053488130546492593028631543217957401213829573437199003920244249831773819661087571488207996320331439074229578667051321094532524493695110188053998969915612757397102588668692146967188175121082067653809032638921518498559308106378795452372357642268060216158049085539183289208352003785178669887276225856382925279324432763835661898975913190822297022771270720808628100273297316259317827328651778733944524080186999672176840857171951978682929412320778178749959392045248776615929662929133588459250273986195491163478336735176540724084578795128639258428008705322773211809001937337893106216547751516387614992251202960354129965491736877694704904464579092326165337046329123591925796073164506746246331779645167904809622110282862721199459652525659067955078980081577423443608208602573009607530211308361211510167864744904613524696459405779434270251815056357120015150785516818706243457491426991962941647244663606348101178041252929680764818336714241494331378078128717601263714266288357574242235609648394939069873267192381778022634518644155618855348046228777305688521088347145510622578118743439349927148967720276045528946439787604616383503501994556330141585762003791838253347274305493685155794901493744806697277467132203114174940612328815235784095721497484642855020676005705587113020527701907110612600223380514435060116019591123083667224805086954877981163312354122164758439503595595005316040079572396426559189137899736954510819778479032056916212590773529759318651571365679917615400601343880299016475608605970053932504327638775757058092003996099267357146972815390141761295030678759039166949711993194781691740561912503595390716151134207114048000727151643381169783541271842414248566935253234610783231833426264942973962222165003753637019259140345526844579770074279260706280366276471136808077690661649520038116473991162670563065817816073929315746236095863896058364779724688304917058886189843501608512985380766325609352366536327496700124604529819066863732498696730866510758088385815605723918088851353482340122510324486795390504506550610249886335627050758705923325440784617276523714266250058297383764569837017089494529434775984427452614069517247844842855966317311925079066321108395309150479315485648804420605622907295445113125273852389700135420340733407723192187623447922587137401474447455025468966306717050817579878542940347057986225067522349286499112827497577162191672989050332907980727830601469867359308696427213902690836187173845773076464263102069023386002801164031736143765502735290386090341587099554497118851869500354623249239874065587507940410382092728414799868349414129534946245661076197387534748179574120406784422335760423689696280393721804251906647212164695508919735544449152966944776567060146715629627609605542094387431263691174494467542706335444363618790119693141681953328926214455746478544830285627997921461297768363283007368093612635716737537469072321710586410490296275360877315328268287125807075977974942089072880261680601774278693438793915646997591974962620857194189269181725515155183119722015640472080909437041988493212553183746923856327750983158770796589255196665678529880594890591968841714211023035565623636506190689125963742491571252746264717037537495670305090576588214259961232323623673895719990238386459103011919775827144189344168829747550451490887053759925519457557729991253341776999988784571002154823564823400302110861204463105791499096031656539816276111096262794301978406865105226758293948503618240428236959985578547077746110740358638572078401071145319986014855287801696244845913127635900636300325585667649740119447773174169589803997276403974152590096455873987233100781254987500623478446857501132338605958022556493066674821110781396925112606914329328030371191124044864711410542591247731032373366566557937916534630901475699096140377622942637144564623714026504030700841150421393292206416816803323731839201829738011154396827746072551295199937377931778969471108190285733611366606261228070088349093022073379095580873404340844814346103194559842125254076066396839840866986148645401363933757702030277322113167315082246491903034764286840822300619980685859190339605763104803874510927645871650352624679447017129521256124954038781639897540075057570692097120644136350957177789242491705067092987575478753797575711237629500911374382760913718786373270188211464017985341537962120177777522963303916967825282038468213494187682193125541405890956078815342176655026317602584003720190281962713743181385684829740142753888607629784509128404636219614698897872613261546646532031191873502416275771157844200821754787795856337856473412357890769454848387090082819206302807168723403968264435002663308009502092677259166675254864814483730548337582959967532986589296389418525973064696943859500230613911287393388830036483838295461392275130018520738769135534437760999502036744671077968129902643362138615245496640335011236019969620546662988607107139063233361299977643642559054554802539171572163623566662466200128614853324729684579932728889469566932187484864635569967980053684299702232618616622635406255172356728116623401873206323323457497387491416429300612810602454655390577142103522294485378373856131973904589704787351948171708372266006196263738694199278722687689589635521319956426759545058565545587887518709445937895527053388004221639359010589360801508743400896383993755260596773514185671192479366778665000693633502521814357983063170735951276578012556374969834852329623630253713824501706464155769937639487535332038451131023529447889149422836800457559659299037535330374780406705957881767238989292081517670823515765461752033676211886890094826966999902674071327183837934031963550083200065331552215894541183615658960740886041877200071457262051106579142393381780279558595905146765759364750896768326828820339254789865989429247967644597270136376911117013109186827611365029145094886844884341097302586253723389448402576470321456381016612033365805058620345761503938505443946510676835664211818269948517511651671161015193742832404625913804842035805004026427432166533153196139329804843836799326688691428322016702511755649962162880045558835587035225094464633846792793091210861288384518171979213582227782770635502885608927895122551993095043647130071499872100863689638449822179200308065811716199879028847465653624266444728506769604398264615306895275709354352514673165271362738877264880610062324887694197010216994407418316849835585960329223155201121003248363996484750353779541460930367663425398642989198690334501619767351947615020911591231946466136112944265517588348041533866045195030739362552022572038374391205620635699980526593467170387497835401750672812810473470336852497712263948940313539041202823124301225141750747658019580310128872436509959373885954672268952997782612128630011302811392134065336078141899032129849136199472448904169341601338396394183735473290599573475961695606647336268934447575945683296229919417337155366565483138418026111068509293749707368707729180919248651448120833740013754785433591085317238064378002590710886403064978137180226462194129211821329177162493855795181595790005123621981082454559259362183997664714389467962009717801362345187529002003104725442790360100338230610275194596966751409573340568243890155834190318649648542173368307905927651686475914257107237024819931507490515136713296014907526968421008300227243657182508994653941816712712386091197371605552760947312980270722409671992535155445928955763191779204918436689587417678334224585307789194505703274401291618190232519289217574698110851082851602583596445231853914918051446998994785410672414756506790373708718119167002854767555070065398952397945483179533810089214752183614068126610917002472927879428518732961347604817903729447267998107622348401189023923958659125228562086369454875232505622303533513357643289338502220182617771980198600998410000248133675036100237123334510041631905580839464367014377079496430594214487270646591719919611582090037379566857495527261646727180814647578754827415010363048560126024752773159795702833619912680043972893942986591122822133218166918171422377330395475314260094718281110879125162040027108166877166875093959458261920416751984077151735502255676016484794355441090285659865995712010747374196187703951224696915907006628022632149822080486429677816866990062365999093497854099670811057138307793790031381937165557118019082752100031940910455688697403020611807931276009080010619527874384950039209259397409622394350241532210240445020519797765217681722890778652640410787672770629958189338487495455351172214523370266440013358082244902032311775267771861061546674798323204199048183665487470572635058757623680546982470368771631743704679013364187256999947863759039648939909609959573368784078492665834308688390564297316716018718246285905133356675042090755066752987094260579282271255143153301920060451514299605139940798923194690720234306292849603098522423086760108568050678883927883092992876729914446386896346489037193461022655524881051409270648490165210482254715239147902025428950387238223209693999635682203365777834275563982357573828532613239523150488370667565925915319167868469225266392653032959492049097859017295465084501459858412990159747763895477454700045490249137901849171179888528630850147991381920912031857613989506110021129314087497800099751885794897426449754779538743119072503070581029672877032017250783983276936576328934003623728660330384719562847923644523858475704223837235686965603362065150510323417257741963351812742294194771894819590319448516808221453876307697194816143748607604620372228939792467559688193407775999262482943107589679607297045317046159041680209558788080150711327384117434670242154025004808561159985002063909826998952524429178189212328032087287160044016405104004498438436092909715738543096931261077506207322048136954328673579847319562334218446958395771524969396675989706326487014169777610224607328304926267404214047903428072103231596874210511313806809569189697366372305354406203975751450205388001387530997522169427604347365502578064095012464891821489072107712069490546428341054348548860345701117046538985234846403285527553389222330370330348206156152441619468322887393469611985906520688896402239118701629875510619143393669636496687008390106970545594478776304096024214626885495755858393785064055595205321265203930104213546678143764619775394479809756862037385242435290312641630449074177714826550904320514816625126144320022975332011201866309815404714258221980202296557495970765830601740971598943471817160274362617637643255718018675425356808705007299034829035236135911367040220592255656455078663820472981407290007100961102381085839289822440139938681668811382157309318577989369774716705270089314465820574628276021655774940092653018814310681882859091241540224622579376881411030019532307103666128981310776074399752803916252872897041587311472233780236968539211908643182864198205788113969955127431761277814509874434858217066878821755494626039017050912275071997480421402432006846835174826496632527184371743132871605663697951399389042857913163668362553820317612445859970658185871134092732916930126187716880559082003451118661420138333299596065207325509501580565816939646618287956553251828434522141118693852191280799310950136134204799025695762157958738990186557642906542574579795333828791144324321586038086587907834345245786034794283243644811017555306862377914376042336419578804324680242586473970874699901866070070253081457086113397423284806477743092415074528154304521954260559608431446406497052022692352422403864270435378569701246469418222766274400210510839870645688064649574864413828157259601564927090743354431757621605323676403374164468239453323656418078073590448643619544985651264436780258850363620796092065404452210214261439272774448840216652796685778780006451564502636221974842303838326313597617685980780449183441952329680076768410261806798174731067993541397937075901800356227848857814578109237771766851439068663330142843695231976106217405449304887543846184427492089507687563989804871677585398844515648112467644246192425189876658633740459704626725926047403933457676789859046907558283329128000855889537296824131008014188304031023384473186086274441467619567790620309067517358190366444706017613082202235244936654584988521199125862807157499741627484646491757207530220721153962849663239698682241240596979797090313888839745374228628545932676867967625477318332628640186621461970055479148614216586374520652806380554003785428238065019021537024272702496001368725990427285420193656549838159874541193130942165321875342481004380446359906349462079252531300348223105930601940738076657651623544453415059769596034510969248408490529716219249973015656219149636120380929357072836133797455710623438691748177093587905501361104669702604970505036702451694577639416014701559499556967693564177944651758419565258737403342081992433073456943342797912541689009681354880015233946460764722995249940513186289667701698031453840995030643433063971333378427336426145925581571091143689907486566471813449335561805821784345837996717375213546784827017769339275472241696179811547012031469642873271566071185965414387582861132709272465777431372235351017645044010370006673612211625375725605566300851452709673535854191170362470313438167818394328076040522827514427369707757716450002171338569520148627681829131243334742358021116269300479375228784702568170021899096519909245772826298658116003141783428712229568395864830545253034056281801635577029492511492157326928215345036545273938161305772184528775779729152663176841316435809111591158020392635733534325313232230246319500560783916457099175400207719492586673916871342757644273161166623255461337782065622519731989073882346024780396870389315490053562661092725060576342812865025519382833468616096187510444949019208773564912479645082826415302652408025660378970373363333693604147252882019190190917967058158949393170497897629564482369793727775324522401864175951082892787067083241856091118446563863318897011547696091304402093564460134683889840384826073408622010828483450023993140726019411154443910668803729342956246178526911075775264080409798798035386638971500019441063421383764682457283590552788706314723493517485771596058648413569311471065317809248530669109982952947533366403196170619345008672806529047758710879451659799041912933862058331469278775157216421920993291685763873974843517437723441539141484529858852778118044427089854827632308503309757688913002657623730964060396941668277240891747585042382110246968612218943093261685742169602965735256067205479712796064442864148895403426470959111397411053106305202454453661805036123566961867632335679639606006233866293499823569302276971629724916700699172006791091813707142155911870773752680993813692007663367795498933441180024037514049737663012163551464969486527417738907024838067524624961376564709134630644210552290068950932639439988393437287103472438215101682505686411690232955353770109256392985418693024904923341757681426833055669198240044098728556628591147154982741186411759183631805405642259730542874261100830355084007960394086587726078155983607957121924944696803908532657692278273019311555455323276351970088753419346256523128313988895506920831779384918544313748729061976382463080010268817240420568523779957969560230076536227533244207637310865488419212385801810407946034762749481926658708554073062622686965624890029513325093025294595729767159649142960898925927152525022893185465937820942820857265823918737872287741347724632428621841952089064357579635224695182513126289178112598842485727606649849523990567813056560873510735053520733074978670638981677014371104176444010873561059065863589892769421163734362602737326132978381194314293448061543871556552468356861593802260619583041798572861162206437244443218597805603739279847484987945461189972905169852503030399059075758337406688272257131013415172457220633466371053277987331325155261743029170871145876768205875469028145700002960697370708491983671447813506777278549533863967465359131741967589712599955972648604202555785564268426872969907501683987918849521596336753033049452051706601258750122702759534150053440898592934169266700461392180358566955943655625944607145626610604100257654034389214497651916883997917284484484921533538428821089433528420039177865633304422044800004100522060286602815780601699518784446610512836418812659217803786846144082172254771588936856099864338088040570910670590184304226346650191019406647475679675061315876894422783549094608544822049373262392059048056281276172590608409677626795036464182443676566047172845116142925559748081560670362335250245133170935886401447429505085968562402312659689384242374730177144915586037554598491834654175432602016139808515568581172561178611390679674869590338451422628036300312313938070916516348647433125305002759153604535758962854600846583592216289895401563274870078690780684303986454039794796155220589405079530954374269284922367431453727025944382227700737212579170514613119324016889367123837009189074519009092610959886073384585209205480229977858288048900310724087037699547123666971185784600404020770009591398692906221530470384146164973447566238517502518455584559827246659425735541674946935982065870060928185996770045582569646950358623205739795581829211908160375293485779360095692794986676962719986936463838360314315334342669406633185589738464617686149107640076582768901822719839830050353256870853105250999594036181093140988231012354455647292159987045067859121074411939671765216550053941043775129599516547215742326795830551394539967431855124486385563661561919968392565104738476255770710543676431678571918975691948369392503915387732687623340948949021731318439479202409527969727790048962542608030576137136904929397016804647969882408069257871189027628827490607918427539675899484323188026037029663743879518963653601928210276940133183908232641431757831392288000981234889963203556873395215741364711672071459102822041067330129814494426103130831596548084127257905367530695586031329132999776450137000109048969492325697718431331620469160558627577499532377296760648663974275061382374840702370075348482798358737714475649346940860258314228887424045514743855210411232762989063852516403125875479543121758029851996137550659761180597666521912781363181915435642259263166660062368709742990649343661455970541462142297160200029033729514095117987810697760770865031568295028153545765721272783803715812095643193057132321649818047851229991758033232407853146271741967827105255023619923727263350268440699793905479033586897438772368470398619796433826377348056781590606636479124332224935192451854157880196613130805257043278660804634877126818701077104683403537278816320565778331579391331845134161419777182712953029056016053518694166302987689491029247391845934685196412944091746529661256590528370443337496515069692635875836641590360806119145239579218820279174933548819950205182028772589866730774851292727436146732164744981211431150413618943502573492781665203530034112344711019014856614877964123573007519670464114146585499877179891733799377686590099348210105692300556560669095580754849816225705176454968762209312254317616044292698799185512007527193780655616024735475366493058281778508386108466728846764198745982240939958440619564791326773158293083471076644093330988852607574238975440803122770906508196822323827654839130696145832948419890074640039809269075225548201374601433787939928770038570060734704700171051376659411931116512647367791694673095365144713040867640778633458354139404750404980542850314522959868388795256562091578919734637084310172373372784413270466968341955717271228465080605284122577411484153511503313806849820274028710952733682558273532232421830884477754653952779220392523346618782060919617369846654529088078035317809003318177202936907443770238974634577778199240382743081681082212588458689529431320984942711072796656198042539776256346250980334828897900324654442995346316071784934409329923193526675260063885607234428340529612879350832552295284346675780256205013010375898795560705753788786768068889526304399401810813125348261212061936488531490950718445105108768838818577801003939387767547528324852462520057912646796432771619304874098881635087741702585499519070586964306460074012341797347557888471931462722707338316778901353903335042536791578778661968228206768025751907816274137697877240333657957634982095688776904942994424387838520598336722743056348062561878467323927860775969538560490771104749693960160306783669162929282527866408852895778515423590252745709672055448570415027636273632938613219973719924175896418784825924684721544041647683071309895168534012290715215478223584801037588069647049687268672699268255063296214398255543042540458648948445319867002178669804724141234136865458275570751841858957850341540549046303158072661502199234487613336262575601273797398071554474425054775512162906590425412925905191692746344596524495388201349743614816059707634304867156982243289307080984093061614650086776745498409711016317143643960129887771761444568699624630907175878742887094865909614066630108930932957119199658185104460989492316841388100821924384342313840610026351677651955078143510918784436114136193106681955653011487837200029436192302466064702586580815033257632687355088959708236471400847636367490685970565677478501490749432506996525800208813604697769997590516839742247697403447608047163787174288132055408251482592802410156136348424481680431172878551173139083807661003801335722834785404780549306609045462890509667110300549054353219487455740173613945358824006278389756234269879954492565878243479883839069177253726522087873607666291303239030316057204692329469384015308209850492281623463972507295051043204199515824617646008982382286545374801334063686539907193847229452824824947813399999396104468751062881865827317795368227760625563012353098505428485658308194390472049260858727576210774112406621097332360636532687314216955765464237196623820089344413618571895040100668628273762006372889247630954712322624945109499942933523377631658265258631532719325871155778985975937353389397385527485630669383393860650105398194269920376269957683104440283925584498605089848094436677311218163058692647161523123538028633942860418072583134722788897270041673138461806496994168044578665397539823202519693429413794119711132845355231897153060339132013740663574135054848096298775679033677828411628371493935905206106760424016824419416258855109336576558025751169848871049631753981347785644108353622355909814470022595160693307814806022150949731209478292408213853425398419812730311477099777385112813700785270304853822937768476402924048470865645716761775866398530708218405436190765633396433562357678956638129956946868051817481958018179777856684831962906393286998892441569213665319544818706329414280972635008764153715548589069583201833275298615614540357617933067625015090443677701314592673744841970209055245013470150029897777312264174890777357116268119826826692002083641943253801488548773172391966852149639183875660251016960778995154784743625000852904696306742026876651594438760302949258384648543072676145115964651302030749331491411113545486277888440949853512121468261337607489742783622462980917285715254951728661652464246842299308969999418310989293487442542698019592200709224248474222273677589310784731551299373035626371350795149433608846738745658050508486549762733141791205092521299178684553717700857242226991122448767403519327529410605920529936679300463600310465480709657755385867311814726183913037831184392886425975672904411659542728150187479687973818531006001056741570797297795301287434589835631172610224478553083905248444135044442545758763284312250580976601947386662829555261310871453942028172047836517538867074006991594242139764993751142970866867020394430120576256541381214051751891539839563328002888342805533162278807847531231634132269256231562876157856455506152772075819702725330859429732096554494422836111871119971244119158701285122585950729408040140178318806648833379788770446210072637406314655297766467597222546593275184193368794408185495374022051068028406826247786814048939507611223645956236088507933639408330187018984251284265023565094317092771302651288386157760925234200750082717226632647267322742545690180630933644356811796114167487080713042960034879384316861677133347630939665373026608141393560611104995031928716375391929355648245246657190842913914596574506848963614975903608473024620643348277879452152366957883690183096742429254183604476548975232935551997906268166490227720480729887207951844102324458773953491708189622719555381112612327741441812673070634252905052518200684272713509455309650126973621434334847930917121516414166598465427309557304960941230111242338422402112077859159519082126907677987514269042400658877914928987158623797308502604862631297291694182205523940850220121787827275565735572412803565832642940195025854488397036996031881170428131615498227086612744834268347599071093351568368756585768196409986654981771380920024662816600522932092125688889854217442476019451106557194705347562667715392550706578999519997366752635265300012735691426010425102430678752313744126259353122457916914712906731334285239807689411387258386747235488255339040306364311231645187735813989923787722539758830365896005748035685717440266807619164922883087055859752329156386923130898527943280780600880297883584855203601689801215724406321266173604850241924122888508826917109182983906205941685321600608643674013334476010134446721651937233338294892953204844913182158994551230936895831581356786367819802701543626276748409013990494866933995517274605356608219356845120395145116394197899072113088384346355004659830812827394938090547748488985969841522972464425313710143438818799552666943356934311623042598362623153257011062195761831701036409496887250976854775399062128706499503518808050001939869310232225629609520499829234086049335980845573797839448547566185761774240839003558390816402729348241435419705448891546687820580522314474825565492401467997699378670778384350082128659450551911653133549884046118998200989188012892466910416863235171746780564684756256338347108057223590391009119526518455860381513424189348478815225301965131200783674843146514362057514226530196840394966997744405670353444134879586390306715035499346494365516996155621561762289604676444473381031480148043520389555868329096724217229280331995285171213722106884442024685733639295726218381246959543852274774095150179353866240476732460107429632007104956878108332066728889262618617219071663641773356760837323671977209656657201839632905890078623683930814081327154257893907193552855752988072139290253286474389694324635211401239893318285094048695182438536814339951875260984282788164504878275597822330972249580432440375249792661782392834082632938847272802487054538173428182776739725704873729969243420883664079652846811569364608376181169388649278238663239677983392324201680324548747160780390747422453604709097735037269335565500784407356150681344693496107419465362520690828460514776355355496827622669577975231529776267134589322554873965707265009255448119129775251696093423600685326758174953510227131876038040808635394546718750133595695448228667422148380840181152353136842658039271000539012313023624497510708322686073898558602444403078219633219624999818501175970415206266188153482129637852426667707792307401525970671462910531774486327214904454714116902839837521577822799256494633664989116620322326858777456321752982090567450878505070824090645062933465446933738827916998844984659120909657326037383817157956994584261037094483480224663509624468177201978869972840173468921083434801831360759790037093772064085910905982116318255450829484610037696295151352537694105793988982250541353309481346389585091453998857009552456972271858060541304980933306318014188851719474216546272212852967092856693391757240282659176886629432373018535805219343541449599646707013817388507253266467757782336104549670280492888553217571779486428247361396067083277058218815042252182203457556725218480592470895882816917298214062116457337899978176378888425106404086254273665255108458276146523862858185783386319997345385435814681811887529706560369230785581348717883370113056725857836889798307205306079958625681958816837200077688514775504438050431140444261222846364838601512311313655824079852730023694505428156271335355824776072879506904801079202067329612283199196250194756557286588704560120642024602669952071307582575322579211070621644013558865210920953522510112028160464597839258764339961188399254292538736408959588754759908197686399543919951847187231805237160561382756173492493701919801736919780431464612106391978467988537708010058972943128463016169605075379483981224553647807853283048619742482802323756821074022732175948017167577793457539130679058011059454775767859643638256813394385839222666421246144636403933138022297265752796380609108078224767666377921992389448324731051060958418543452525281946742213775284924715750387226195521580042514340562132433481998144324344271006019275098633093331837520253389882579567649860099844632966317393439872703987202133637631001217062824969543569855091880134185093012053051210147108239408296209682308615877086548712487299680742457580367803771084735205948469421820549898488368444085172020855955169556846170885322574581067570055688485285544633400159217437975080063254325042697715255033360920483132834959503130233327215736873998652413244429882492039590907598832133508615579173463283133356817149890893652781730488392847289313522610848224039919739635289087907145201209211026864108877575031301148353800123590129961638667622229824351849804915555425731820375765333816810454054658835364689815963601759379061029637887877182991310030663794531848716736885244001190445823280270915393693201870657481490877376351649249988002167772045171720048959959870436553694815859677508024012143247096130897114411917322151133610213685592393833433130595430660244961724660236207243052884456028005020409075377929744454143877874164254114572257421309403262836625433429800486023858252468620702579130889941964264078471950472983287867771988742992744613596620128638654427940821769059469369272512523568632321203178489724164290415387551299020286403181222473899545349506814041994041908211705785730377381351162766374798057166352382499263120651770576408971821404682606349670005994295179044032691353115325909992601655257128323306967982450590424884963200734303343640531688134295677441478784910754718063253000351867930305787239292462653390298414711144900210527108605507566820922563805460939853338074245302519876554773992266730549589343100965507016320459554863955696634722419356843304624486118199489205619730048143566548551357027082448480642761483161607778998059592974423883322001531808204456541233835039737122454169884694770112228625177447756496016486903918877861905573227353853214246347738593316928804296636508998522649758712889753905818029703456286195050428900067353824485015342120629171716475032868112674527782313929537695811503380152838196237041367621759989076792748496830864781871642787029947816836503412016058438726434397726177048783319254287563885639957364649783038755402560875695800695101465722981484086083242720250247322364632569595880445463935303730775203577426300447925438328467734833456969530718953264948320693925833279862347649295040733149470431009861301051271457957896817085803034467659316838796877717031120968227519378373333341195036709545946703190433218771920765991649044800622278976740607492310307488432471576147670738556132347099101076366713245231183951466675659659630107647598358993965764398558668630123535560289772600151500806470081918086378442814460676077861512181745894188367325259150983261872089536768996743897795997829825682243995705937253643089573828780407749747337818269542419404874158939928159075255604506056090047944717421885925917151589635379679957182533453036938418482329897758860540375113832781809652389130272785143154413107993245810536038195460446868586398504459233488073392562226693758216924871129520720600263770879669238107642059020518964894625679489706864240800033117227361594068611435858244286038005330167966313882627416841892672350199628818146925883176961362883536886958106839768759284172970724858077144745827843610411504026162693079319253586715943210473578815379959770154947892941441251839052348202568509917286949625035410944274718803678760253895743075293648508810021212172881833897756887062844503918969976783141366893189936511702413111725686394644180694368601628450651713571639535622753507283440348132406386143598383384599973933002655107494253682811827881289981044919142741263464709305169014924412017971697435519914506177737934049052060186545871173320388212731847968542648734086362511316755920786788893130388892630436163853969197852194404739331865843814394542401055953579230225291391911607052300984590415974529341797802819714362065986594053340317600842175258638375648206965643026044560459273366901485922985109103735921146565718009268652891651569754722970199509534453264058411186721781067724962675745693340726184164302310005481062931111968736203118652321191052302841513047646869609726966002152990860010874405152845884954072435141881797669963027368162160471125573222924916977001647938383511691160239723521526748456324729291908176576792080018810709386537524128576449303768381535613219891718736343311730701175050793202093522923461509502762222527767386260167375196800072766682006390659027252736277926039145005263381479156499762053615127170560148088198674894269019371450442926199477586114595664803850825188906190408048209397718070968861681758150386717996124926811663577034194655187359836183505022376049583607533900537405665243891311119895524533950841030622186623344148468651880880514229699064189309648584045193449308068642814686621992744625369306957068168967551069241224216433381555408408547956484983259090572324486922603388955491757509253123077107691144808387360947401589248013888094945720375347923887127850798205990245067447105495377503984795525793725921260659991669461381491399309407177470404626995123805608508977094494426266791642981574745283038209008323318333344033097976820678986209589095060858233069382680925010057394546026789260672991905902049967517213151043211609368686419426168056435217073361352888355050728573183327918928332573138759754430014913511216873414096817996699905650547992269988920404094016786378003742309582258493213859048915984390559175012954766967310414962510844648826029125800229696354386982042752261161694519277739489480854178349241261979675222842058602878111748711333227738353700292116853034260119489535855550710445725216182665486139930823136298124254845101395853111866921263809070326425375139427405789451608648536188575747493504241679894237410414957740222403305222197135288408401388586913256347327430048748553994550908585653338123340673565976055585897652954205286035788699075674066015470136295340843946892080190077608554983713103869330625170435417920156012146671657407330078625708265097432564286070275393419563908476849141712277597677241696000671501782320751240673163112424209976452600238903415389044572395258264088554573694607973035638395255853262916043993379582248460063036547926185892286249009217351987518292120144210085348550826598261855175658850559228654110523389971706535476406889438592797186756351775055645587733004993990459338912110864117113093596246045747782512807783530939929923229329863974894203072092696192387249359726669714076753597872364681609387709611056792669613949733507738805391502721045748219628088566342577713768139668461877724388926185720259277111040552261950155551444133714611798423358458586363561637518774946477159467122346516523848811888095666770124582724405623602184591837266561474042589778180039456078797292779012510990283391275620871697582110966262021779545361336109641623739601254510341937274869835251385593577203599551013216669890179771513574602725451388012512491570707705794956518101349272974848266008196815068672875113058691907798290849348153999856374518154856693825220491448533495547280138310789495097466716389692166339499979690752535993564239691804308173007486051557317861545771163623203778624846051843755100754242389895936315400979868269973374834295686856214660516429963110216407328141989520643394074833736354297646253116114880072024629850539124347863470856228347506570680769241780649247612191072501845648495397724240936807028597503566105336396969291488703461106732337966946104020550359206117407241666816267943144358565025815314016494893753446481124164062367602107758083453837444210357978215969521792679129266411058401116706671198922029012994101766130369077215867509374755049872239715084898179333819293295747424232561849458405284862290475355154235446045390857594765751821753796922164643837420847776381445002462951130860677658630369282614866888169024795285147947636420204900378425068391847344311383241452537752943552175866439421609342265555735076908982129334762929079332464068918119158892292519459428855505313080892142932044134838459304559710857178289821527641090665954596520874192253141201044331772386290776359514006853901333835282330703452328636067922820654971494455020866796420170768131561033812066980405021198842230076668965722981660569201988218024665428647413555712065020928670117127277870922812949194963813347222475722696677357164461118232394758161835496277044023782417315349924459243396681238247609110528235509537592949283293660859849792919570755459025820958824904365973171938672851189106655367815759606807116279386450121521817456258254742547248651800422678942505591599040657687844396910263980108211153123451052669626541965602432902692715515866391941392475416325771979035258137745409797934252588420682705837548815869076183668085614906188634307912792041775312543878704761165375898896296406446574460718896732041447217376316225197939010059323084305502995956264918429997750456330119682457759044873629763655193180741611359806739096652605586399378691701816955102319459185439414105754178777836477295530297307768453128338404881327389077159591648121093168512300149815995961193023764334014724856822673774239519754013291656297885246249680639015763889681822948669488680640690317468103442769955817795668564883935919597554936898110737363526605790233010348442644414841471226990920807630152262685132993147229878328387744378098688644922390575654212730955672740497634586070358460242148950464418034819737106318332515210271795094202096187063396450191500517026515436703389439901422796070585413214456964784118722621456555334082444511036678430336899150279567878913104735322256170770683734982989144811988281749906805390072882251248284490398551486646740073049574026386163117807444630456876585936075768561467158952230278696451986801406592456870851343252800248200608435100781695850280940885529226360776228896553620976300851505859903527054510930215655749884061813517420023231429796404946406228471154157388100938208426133503952441100628736082957029459656499436214504263877232186166849441107672435500149579280856748743092787639204872630083070363783004128766394175259165279611816210609613647092384412892153881530145593092159969240617005297548460650913352576924440620478671115541731018794423364927676420419414450885496680638368046151864242597993963701046398234234902767372736622943894873725482957907445961784662993881705990868147443725955005695512890481409148006829403039497491029655938571810779973904959114260497275918009225911905950333513678054203982631922583322523601764034863896565594735940432345703676333531512651931090321091725761865706105623639895808728865675415281426283675044562775396466459777233978945990690215723636469451613606627904503454437013385808264333902193940785705701623033963207462808425627422435700161566017343453275979444943126829303043943225445937394524792179191536631947953192213074948117931823068305935586649753039634773362465048094337551248914730948388414104747118530403687928837708754562774236388855389361002202434709251297336700471520238926364934962549338617760577729816442621265863580785118334804178427434759872463457061557865164931277402205042655376949121992826811213577416031787345013187978823407547434653368566952609245424375022682389328534855989207150620519892513437198763526554349816310275697316106229402803072982800246748497702550388331078029754485287486808756608773139295687630100658324058016128710496914281846879522107916277321329126584547101765531951763380303404568226106636619480151778187750009457776814160472570629810740736319010112870090083488370876156069114697278136040704421872498522203048465716565856532833969748322594131922162302188228021112779791025836629759088204346400416581488891189575791954630006670636684149251951117538635609250286657575019123168951992802766425572283782032320051673983600028126937409695042276880600012308798178192833084411461053945361285902072344087622320436970264494433268119414684908126236275820695595059819326075387792546359362724545383858995322863186668635332251413605866625524850928076749286980539032629597184969200712067805082059444783189178906936267028240175515749039729865595988611270153637887636168884146756033142011358573071584977443508610890655440502248704030965710908540897881292992241199690783738506115896730348071913746746514187193311318485532150463419249677550327302121869219599544672874744942160913545638806157410346474317330553998085497751808927317512933724686818158694887862828119919825701176398730517750400169180886139306503773699512053989358515665017648513430271040994279761781066733187395345381949206653881111242983378988067955580001681866080286430488025298949661006363300041499562692843330586563851183037590352490219084895173647799594429871666221540569366633405868964088966683981865451459908997260086955052426229200904692235108769843036037848391454373383575883339395755855921070595669832748959065661817304518534027673184632296507411567178423820453058421430676344504679281605076193958516387602433380628841123930684549620537047840398126669195373757867426276402640644548507203491022212456768340897248742316584363475063976756138122806339443115970835149103829372874322449971723718014050187374847879634743288793015289181357528102478514724606204595027716231783290845427705166089334754242512027073675659079306937216095672433607036630811272765150788576365603006030495107900258060151266789932459119035580059565532699289247518558395442747646820831205314656522801318142383339392284777025132914683786189050713408161968988593254947586046007428488446404244038864077201985268004259434556041917632109957359540302532755008042865660572412561565692156254824161937253873408224188290664163679063090937500775510017742655524196596539118861868476466497022781703034325126579289471790892566836714903016172140792536259655126170687586735151383327012545283961494740279865519452546877383809536389738356394514945654308886464642819112428058996992958544828835769331765751580615121721303798675179594751024575009594535228733137294865342752805559300971036777853023353343028631012747779572347024020623916533831387622946658119646193892066134962666511524205219485163218694112092218093132719503146278921604719007814686810407023790832995103741058393320830570490465666372557679283979038906739645697864544479416899230855302022490972076288780670085999457356289966845460355142509835631864761591694438069876198426636433718076657813199936393298300966517049032518123073723904873729809006349048883895223624378669036751181822340108772761434191324424656851332912283699477735460910376631469339251773357031580242563726947931702627791419142687703874640137657877392495889058000628899682070277564259146977547895979503763897355933042965642448025939047537608869662579239187633088919265873486801550669546219439531996403859017577571309237343279697236033303695933288657338520174702967445729257414391549714054880581707827187062142354948651502257530339270428110501159975702372429618246523982737719631000134236030318434304360954193115312521902298399418938331913243789854668295216812648531551177384039396866441040255550297906945179714241795150371251800910379129514093769187421252034050572693601926496134796332063973200541999317169685925031255725245965336851043860008016013554267897576299071165408041120805449297207304661767620220347533737060675741533991771169204921257733920537523169284925562648109094787144576382212892234091633302410762196376569027388443115791371335321147824169378519892882395763163337990904968013860801955915142065335119572269475560245035472650917474691037955405050724341827712130064930792491965401371607852339825614034137433049819188748065441182230296579339723040445320010611751907996204798752865541546492259191608278208751508787459902848766102300329269404095493209450734154201764234730621592565511728255692790838047310743297988080421269960125024683071029726928624629252351971168854640370187263179945429618680297963531202681425548034694825023531510213293862573788442293136725878108346003927881155045024917239387385305367755263638248097492650004218334967817340634895934608471474699495486835455602762015077979753913884170735030883754877135509666999590811161998226120497565881041575726357998292454073383527245409828719466993925651117640216110946488146279491353824307625441085894463403565532694510780499394792220305478594687680555369761689965756590463085280072698674718860453396513702504307494474477357024902224169965342939142221169219250392690149253665918171825435974425738351266063342676416851717818941077634317802503738474397034662757741308264102968800636252169758137873312381857814171929659546233895809533100827668551514692875568894879483218765596017687038326170650838818294001430223917762014647355112752187487282816935595314155258594016723663055918893058039186587866950133177296141832336679989858737955852349838215541214521527123515315393383147321960668765140883437409325084108969535522541415721407906065825057582681115351836380432434551020510667117080821525936259632621646888351717455033696441701302679964583962317303288751769053988407638896924491369169779819803473679416810209157212028564381577040234092150884497529118140502483037050715064180661451612469487759067405693115423064537986571140660474823450578978698839847543594491484341039799076380073725526944538284620797003738113881243898292212617793451575789176002657528123152664249696489392925762681645222819131700213171051960492598890808582063386648809269680752410525816430193776670092858128477516060607138024720585639332410184383700224346207872908923506672649545292185354674381699616119195580943182672767226804207963201297507069703389558047657042334374932845088298860857647481664289645137054593535607641251587291401005658262300996743301739282055025424623617532865994800481957904077025062488789173416496746016543315907086242558550114603618220151516170056629455662293352387481940572034629126757455166206829532703821684602721805692929064246282850768404616049912797612360771029466791103695422793249565589398165480151082941913571787275723339991842399476510077469780637779144904780406347546604724615323790277009478071102215235263088205653102172660558095295050448007750543954181101773231147499129950995287357518603865097681574980945103213241233680375253365011644556896527762780310073813131389321592397554583426200322648989100446454609944568403760554232342641787202215546868103939370124385501507110787259625604216197311533605830651879969439462905493373311733215814272152827320420030190379107456353175213028702382652868886323710849718740950544686116174415914472209621289760252754383928025260825857794116733139935508975222648345774656906939057472253404817868508717086146067410282707822668731354085750938815564901238236461694045497286163572087022199638652270369465531729747169513268337329037002347486675285456289615072017816894683480668593575914133779680873116306742916304028920612687132539074208298321003525235262199756944698825542009401048754204864167665691951127433395873984172726817720093866633486093591767561322907050143105227058997612520363386061507187455470301577209855309035063095329263230416971493657076683934481916644198453538972196346931666272580503910063409633505943888468668345160472680301369771314765997009478137639455055434566191402712857245159237609647424418628750867078949322089319702971599096674111328105320288787133245325939140374977237515740873679265759724893276705944255421651267574097163289723525569069464963552726676951729885508812570990901635432247284904326478114873146929899389304268954298396186807506391110501551976945396521415022825775824670283773136678537068404343735618752912546702044415315997625655770071068443307452523950068858919017662644364540007169295988348616682721731708627830466956597545331254760831740205161225786312892975632475821709655425770593000237754409362272774635261116095403489439680327779913993366756228562014108936856524984463610934125669879996601946687913550789962282525735086308985289967865050145022676737218568648449672412885235333421238431650435664837995188310274191925811673245702093827139229761817629697690369422699276811912305141374182871710725599872375097469339238624949808535503597287578274632725076118278211941443965203127247132702876066131886427133035423880272899039948487524105564544935904137393034539982245906556165449858753480675573393641531592263726831647645153396925055493359509104927649359439191876563807019102653496095768621101849006257834843666679851676010483065018132748216079643903096987692157233023347163481646255678191599053169252624221885150994505531951811567341274357335896958909385947277339792328748568506136481766072694526514795742475396719593597518464994387635249977860850408215395739958418776283397651730868233718203558694770820195707139747505711940762719120505995366616468950901741899677235485419506138700234146691025965584322430413154489943755574144593792750661290225739888938121256823592860987865705910074256610059388994794537579379087815765606491181277003166582283968986203198681716959792819451052032300844725991732655067513931453309514667139248662375948805333107807180307226245964665116540700991630481157985514677098187998969136603283656611255076578378350559491676306199249073644282533610291853565142284265522092279333547642322888488315352007850487098952992041917616713904555865668579331160214131001738951945007364916713356966411641883201668102806617933456355084807730451415810233854389883004816458994404101291386076305132364765154065863678899673054765406560808604580131362890445828380755092703557149366664860672929705457516585552569658917121274187337763546980299712232006151429091029538129976493040450554107996375968756858038991688487248398558878254240426666389944189304512553437462186517401486693076315632403774966788538889268396045945937724713699719920542323840948931429265803906421914764946776301355939617744336821719500600210691111660474150449470734007367336937175079845042153161619457082584061575808720983057619979710551520653642369559424288990747362204160231833880541230782758221154577337786495375503967796897304222027244157354915648661885824281218719935229923305050514135244285758456466821831841824016326063650785832923170756362855552292556042897814512952051124899814539208535510743357440230054409224339094015245451018724507793079511759493421033658722552974869379621524615513009244999191361409016684493270181362017664505417964318635949452931323027535277056706803175838277301191061995166846914620984629826023992724907313063255443079208060491354671324568216181677439844678820026501309926058834737838198664184046392158771943407217199487945345486276387221862877623195071695481649556683135009559568144109109700709987093605882974360287094942710497260493306720655341796453997942319640384224828988972191869854606461168645663977123441408090525175270769801836458057029648526003174481036673678572809447767064364778041175376330973758814021179567478629427530783223014744268430892406438247062842717458274177569343882895763869826922514875495488886395804044189085223944768330805411341686813930182444687588234179234795284341709550353432586313285650833015571869882919125196948656357419534620291155603523718837123171522661553007111791956585523169820111139579166148686091461531213425107816544545851538639296282098175054547628093415661973798671202860670665421203532007400614307944019408193300919878108784264781037904213962862330924571718071166537048840314547027638530127067648427701561369678976022362217989714971619918811318010113881137241821834671593156189560551589511379132544448139825509097331949121470803330456460797735878880208530998234022919737403784877990305759940973683329092809217992909775028821248864202584073223087993157042076332438304618770283050420423849066618077488706563966465124633883200554219145657421636537411641850022148613270504208084290635097882283461676524954639249206977714272775543178837708819907583623077274386262172890524049836115324297586257654316142011813145514167214774553436449933074949002226666697141766917755681703813488610934830965030496382765999231881661992282815978141337278391497847149383563105818250210356703668559847066346943699169109122312939938038425729236410443782526257726094199288133983699546685423342217638544299188646346919769701483140252872508948579528102547295642697022798886130553555964073649114503026243376723661129993861947676746078394839336699799309537132461694129378686398967979737618590910395016501717567097810149863153725948371682976537910125025678354087358338180345656688759009987923081241140798581145899780706953716127854070952922920631443369777984298607840467469762420354526483006370900120282123823236179534038815321298799171099192866235878419880770209527977059432770134762842607201348083209525368206836632620129497557866725741448585259522373216856249911079063234202780091903757295473555585207647561750423915381124009569341327884227679601022317132765618110350560816160943386375675710011978179139396502594635672193032592412633273827206314102457175715909206458350084572141778296369876874249873224080094154950333980495876063606531258329727589412794985632088336000047979002997722921400595659364627507844500112179727343729366997415952400833228144252017152471991240492342374577473293179526937204127157687819249624366730593203291369996724954224914096941491584710024808856367081381715885304461129834200016983102340278892345966164477403930413721173558641865086933329669003031554837309375610035730142911747357761355718382172713597608549010663632028176436155865046668290419159434257895595448494146677783156272533265411331853802575223530535649917188292150068748476276786740204585606583139045796875584527997382413683355454908266198147956411886355168545513229184759783586903102632826951122223060884283253956856179151928757187672206748876456776505097205773227903957898133306920421608599404253427013172068721580825358690941637163258487931593713403054328879908871282621622561679315242223691764788207728239740834165932159023944182008832722837830630419134245277455623167615905858359036103323626123482191955827039098480549260625945388278965127865206508027397850162600512661381800089564072234528303338828303496668969407064727930716268710566819194121753834913483862761041594936015355158544583465228224875047935539783837898026722110615722711007663407388088750337441196179259072963499450910691066569702205062575323497645117396758483115425734082524314525036109655719560849959408055137440804278756414896289999826137309528949357617098782857121264381039663423260339476088037771046150018033988886095478544638509313572290366525401434423725023743478707201617123292234932177010565262453573643757366355782219195978849918380158736936999663860372519598113349110327319261368785623447339276843422597292193373126532000396787307660091190521906011203574207114922952258590544973061949792957883339485791755955528388464845797062794597819312014188986374819276813036085185017574792380378761299637186045869622263404483495611477335936891700639879535935984367728593114530714216404991513397753151880986518853590823971832773437252778198245268357889304129395139317138048808945990307140960711830246913119675692252421396735603817442366619824334763245093743651548837620921430970733225713381344257742315820259585263265522673546510613042658840666660016598221376975986164826183999574293830041126535269425924704253825739831355255187715743627553189651793586591150813779108150921106083799577014399872997946392400213921691816178717677512102471989638966560877408775281824199753067115542354413077141145730759808534136431772553608399107549677892595619109898820787669918855557144283889992816552385980757115484530855017872246616215059496777831881468690215482243995172636317331108752417991606466587693435708723282042826955022525427778958588337788765737907077500490752825396888836892830871672209062736772023822901776561684008138180495900073200853615828055329405838831560532373849299029879518592597249275510836727093915457296257047891418204106646459987217291517130057373810789183749026096384228094178141784469914017988281735456940324605800977221803343109260310391007974415030856641246302726653999165865168786613665780582492637455409833719761886475914418668505262841042475826923339687305467854349740462533005874146204227893913070777315299303858891529311571683025767465971381926550215744562678626331830646359915175788773980615077816279548209385055279401089757662033724448947475589613380861407311759798524627226177823840336821206253542358169161536332486249490747750102635367867817413929902140866565376714663701691418668370743590165400977200801305485281065813452373450383958921980224833845120349250013092107902896136157642555309108061639087914044201326290332457835522926985109944294425446211778963076983751610804833620984785954795331882024774548554899441394559421001278473383217147054320185239919167857609946204553896918350843009018595096373074639466897145470608973940538806807855424009578567103460375466079872602868274721659939943624857061697469002014723585180723440420567905132088005131993703377562606869718251469406987100866891116040385375861977285907992434755258434835970027060479205706298006981940662342276178896974853155787804918686266042237973045170231758522773528204556458885431274105284313876060538350255722711919651154746343147642830424699044971066909611377538912210704236118158794045427920746584761219928362891098852926030615764123439055731491837697828535900276630149192444224209205957580575443181795692948878426315058324293829092024629457185775312227175182462284873794932022577848086837185254475248361507184941404785327933154619666190260555616929473243323160511281976145664763521568718879164611678290892483202541467958458921860319997394658133175513287047654826895089409832179527861950976609374039846086976130282128069915245596589000835613453620077739765811588235511468096588833267356716408963098497762621296525371498490812449543244409604597338172173976536000485456323529502944725943634691490953371096587504386616665379994767615080209774675514087293774920237266555819396110257754819137084003473205141073306178106195830006057796493468161294600770821474654640320342842338138595706597632947570174091179315675657051898700732130031086963442440427658200544386519871430910296391829456514855489407174635180687649620586742662770389193073099134025841897816005665379583225805020309921422268437586269945814395468982039784828390157258652561557771210679458142421268174287613090938740529054938307881122568671449294520565692992159127701939499721041433938874468658718136839533362234652180150520355769992880816022974534719702382647509676555264712816264212194328298097665388398517491913119201204037421697818749748861204878486805464156767912360892289394887818039061445183590767660503056161764016813724328371422568956007393046621154103814074442174148245111251515305131757556003149568535360067341946702363023297388018631556365683189454560658464097310752675967191514559081695660168591604974495201566953484160868121881157536527916758236113387001904172645059378244890865303950881992026898851836723898778138090560473159154655080890928731728511680305426281419634568067033517460424537502946953533359248217898659707658069949687923231938629058901934313863088336710156001086140933701311823231012566572107798321068609539626708851386034535544128728263302637797663345556405301679880601929664798601379788475294172703685074375023964251622646033120201823271679244289728681360999316324867890337114759080806268941956359461680640958843753547331397762255839311677757421087788065571023783133196524797048751733946048377198188852965472186656278146623465056729615709452051891552984031742054126215339014812585350784934792302922388404254175615004725755599433798520188972522834889413277945535784469451522745149314831211241569734739993999850867850505148114426380059999075149493079463095827986385726537704438469658199055402393255303610504829199905108735471055637291613393017847618909608320619277657960569957727219191459502199084100492297824198600348951471384549043858509295155573213970093208732193920673206267029020089175674677777693420796919132645212833318779476838907336573408700315838755968176585153148703745234423271259943381264171447888348839078297775429866852986934969996031384630357485782939585793672880951942853726983343388066803998541191389024990708373847799110390615640033836504621286813353860226173696939132050824296943382639822010278317730552867550230128388578755804425667213384998594704377115709004922071094758501816476738785034694006103810780852144019017939061982362232715012000694903394595339772003281686707016628769610277158941037673453248287748194546047631161381538458715745376338817732944111101459395108685585085375607771779208898545574305921570983339341622485245256279774273326126518417083551273225639517052135956581376971284393176641990522850999727345854489132776060720843314110970563069221818642961080916015901914648183307145594847289415668736743223408976116903738125604675328698909416798363852531694975891458073731373334776998977937788934902110078147767656640969972497760167363987216848041585450683457177882459922514298146169736858404199453964975337920351884753879525021287859855752625653285643348937717488581464964600683904520671447877886412576000746561348296498578079751959858663031732148272267222298280411402387858151985483606721118608380841544319911087360784143915225603197586614189053323132834005052690436717534422835760918286986915700730205723149178261750322639354750414079241352045519091222047351820081505153554757349662022128884186025025919363307408077461507037987219981571494440251000362264617201108908512992217387918967663813577662283227825082248156832573512374483820314466287457021381530709770166987085004165111028178900230164884938576121711009245744291818716503343718316569075300288642405273569093189855797905870572526403135918098425366279036574680970642555097746963685427459859141700088159675564179725183736637854179801681422445076291113398348428057447296880978263528245441471686256701339904746000560303309344158139888260527797589880387792750553238627497896128696201810690509287257808902255665967173373086513404010926893144633344406345944628493156945299197958887042935790265639627090348758513396852457496521450036491912122243968158678137381133465354636435470332615989376100846767003849934665364013511727554825711240057010443472939003555828657334249585620144094079708261190766311590752416523076894432831289425574417311974056415328051488267012078524635135086314160278646053424159893662173436148567338555615191906923086500958672604722361284722363015957439030980979052938342284319880214372793165333086347797446230087069697560270554836917789304926081338804776386946368034745701316823214508077839185915527211762569076398432434977912827573007016280329967803504823503693677875167298950807496469537609102030460019429515424123951934377517542750059683730986474300308356380473506528764216133559095627292266738452242222306669983730093398957288613960024995027734473734746579812181080378479835408304284111577550550822007823268486549337248408620101424477648274715386057452330756369668245133655212569431823924887989059126657516751151784364144658140845495059328535453422717000750089738346369988699661169625380183574038527050606485164519197827685575885567838312757806367421868614581730762453588296058055268699468826690065873912433228177392796798175785388554319422786090206814663527375240672599054167396526325211098031382347947375450165133636819830297603638695584582517100271544031173746867229384584749863729268720049555460844213429029297724929584905922638761815443198057133178030745904068764101828712728801060841135603252681814600074916199524330117588325693348707306110194118658467079996078478976415419091622721857781497292307505097619455182080604771607293007755824321459018454402685925078147113608056792785573842454477102317332208884699331501002637032913641669909148825688704058401407737088163168101039238420187266427305655882720830208511149038749569906524529644240603448145643387913271947992874205389325036532490290887846773883416646562042849774442348759378722825289388192411302258833329874491353727963962747822278937841560007676380583383907772623340456024265236308443096956260197030678960455900921900128485092149442246312892520499211859215415750339359395038316461448141600253539881671651491698518738273718935323324684500655340120018995265961725271282811352792219635990529438631879158829705390197491420828577572503942738335081641868538013115304184656094424601406206809486591904449695081015381627458730955443195090097672637306848344442176150358551099345764765674298015655208593683933868785087340513999249697181812829334659566005120570017139997488583555673047985861151333982278032112764550326090380407951758923486819824382110846708142878162794486334969847800222579299255062101397661341275407069161195016598379255694209449673315771882528474141982410987801113815237823324954208544729935357987595658948842702980740240590680066866045238449340647230166860886735435507605328123535602056231294522130867087588716205810812247690924909011602804056134177969648523482490964609711783355648354609889585419490265391674876788968161013950036219541294703502160500467355093723938865192564136044800691958654389715877552371312918940714590215357385363695132270328719091697672002060644572727348949413041908324749906126687340154814796177649897252858462604461463493924823427837634516363247541458067210101380894944319060800473267995465343342592413128982659256233485295954069040224524688825686941438484974137734742215771232683084255020370905512842580062254559131589011897685470072792908581659684359144883825273164180206885961468575290163747083992095568029510145234620583937621844714449476571848138756940705043491151138837545643911661434509356790626742980791469417942645256881793565841914464031700888955111831174398947771866677208167260074606279130754014224736629657150205798966443571567480460991579071005685703191044545603657979742577362497491561106624249837782294086034769354693638699453247738586523593631917930430539984812839380023052439272816246534432786500172992899414535999569296700938910917122816969612438766717514174027894810433031167883285143652793951247605491278352454364774434527107656829721596327661095081051076863629777110233644846265871329274894038452975409664824020941220085020291928775031062773505365829493405635251902254807030304500928732334469533097107573118693886166655779569669074347826658245908856787150190100698596525033707190677154877429200067811699300636758964786397148405644913527002240939231568246929776726860772100068946129549204135951681660385462093826490677242682024973434849477379937896242636896050385135199903940608784470980960131731291321367108883712742754085662178452506704890596766997505519393248192999775359003320143174717824596431044371833152705245620696868058847245579587918969000288879569177761129996575111581058308597614834895101011705251799508682977908221708472193277180254030721015705361274908957303987389523225783952525974021434911870840920704030178518955287270907755024522489834920548314244339210546422853290707195240001721569524215011904404855266532432585714190260173052106411385846089019399803793117963945677488757645364855529047219051418104505228958897937520712742522089036191764152455844214073902283327861542494983890344549893631356760650128638889931519958536214861769066999653579445434811933855279344344668268131143904593530584126150696032565489080622276059384029776179341161358847391038215923995580523631975098700520108027193464638097921305872765389302962886561838518940747666499431667242139435654790765372797140106897712045033161053302661250439608897051083564243740852610766832138033979466575595530137705946840006426987353817404838008190889772774219945795682035544316146523882470225593258214013988307083841107074148746716601091644888003967254994308976554802803542496034872738747631579231595755454092243407441007557586046687355081927496723748733252303191031587801732983675492900956379757291785702612952404861082457861136719245236932766953379412331834576618054127044607270752560846212230332800630746335316982842090373486550863125677186712979045091260519671702772102648349166557987531094860971094289723015891380844012816924050965712408977690185947011208298830845431117992899769886196653225041706684802171005504317850683558271981149728481422428553864766128721879503128519106811857096784406826132717144947398882064578511524058771060867460749528646222588405282404395845478671118257064867182726753444313027452877050848072623286740625380055787702315810583279062879278964553293669270758749416797893063480563282010507498098430908365289560953316953814638592797800285703336253608063176092186111428070647733613476050151184033838560055744657037051305544006380260607565145207942098828878215071611492680090216937407546886407128346958856514829408362013474797551360970251591387300670726653181768051496307261170935585339574617477670696115322276521469137730304383102317961637884238764969289429529665710660027854663553398449103377272709038640449005513418174433585405330782719405813952014167840022453491014816247924508165857806387894215580993107669614570497199804180034938422970855463914256152895371113817508189730672323138317531693278908890465516081561012935791168285366336937115746399334726049795472735231114043033284430294040417574419507528001573050666529002633666189652407943685821352544855318761106210996820366555321478253160751739987539783922652447005402085176010611005947858755491433450161017187091680619112194077671677722190588049212129907949292138557888046063558058811872513289844617423296957835680742745194900484264372449468066886812211505968983459443793320356137068748286316126297907056072127450262493834933043939864273290298127896176510825676233106947031932046521652704244905341930769681603482566671557950012672428737184034072054353816306748276236379057351976337872073189590394845577674855432605771214568489725166581443660268340646983433457944411920189342808083678017916118668891233781414324503090328976508721375290016447164232998453519960591073093364141385498715885287568618220023439289700777442341465823868040294054373426244528591427432889893242488089327202702267966611433010456389749814967633002192018483728996540932812021150317426123716778936084504644462946486627312845578084517003293583344314199826845301615421613747397286062684895580532293425790447426385361918472161122539281045303291841626043458650554650406086718132018086361129689873158070169913328345495697172863772755791041971866418934059575534270665467349516691874939263156617858190433479018408153991088466658340353369105184899993652776327337471301970354041506153747799737906170698938159949446523836238844616993991079203562036257292514623248998542074033629407100552754448992397365712013834028067897214195959688476366155230448303298398972110450496264413630353370258383208250433496553794111175598159655821678753528432262126590625571514253619101402927483422439549024011017318923135728429033438249367353836807432926629886059255676657480926124992505215899909122925078148441316035941333652804040626885118350918838525482664695741171023557959016742710158649380660418601173980263849865946538668330601899101481164284072166364770189785887879716865292434905276574451681995425370264682975028845239869154917002846687130128694694207274284113852163441858373469456589202108647494331482856707077395634719204343890392168828079402521873700060342631514484821060198181098594682466799702441835839526050075134900425471277390961517822701344622224018426038923138562761821732267467458986742200333250558069847397359434678156549926109182228329736440964052874171468016193028258738376316178719269790854210604749537097337533703483998284170228174048262412623533482145845839800386863411533303472462302763819456311483078941051188339852901862231301513184243226572913564113085957055450410448277763305712868886977088329147395274591286762742264438311457059930286630058932113604006024540308691636803923364023175490164655101981415178212957897494274067167252618618668534556278975155389220430150703597691487425176270758185784741227149957019593327169683826333496595035351017241716980677085593805020014820976717538538352326015583908205167268680626918834264711840848283906985071324859858771576902615622543310159374911966911303077161374512934261284541516713499636165984331980189552019548879557155605604584023836736963860124045850969369434587762211302380975796774281330879494759529644827537685857787644892978865369204777070184050755050701228485340419164930064195064133527660201206875196249113571442968775829583764823211718320090781249324862219478825278499593661034463493399829450042209717943193494551702768662616508832874861959434868031028679034544125063752835602548776836827684232657420194336410544224759402812259980621810879818761457913112947926311539609500332358471882520505368924137002835894228419358123156778005149705896612878775276181926058904075448884604801181150765297226339909879904708355920885039024028662482878118152187520341826290062858315400889034956023837891344551781956608165980075657738319249935946204306500498009485459130350129515878541354814005696527451121082991252599628051107332620408731824664235326278630978302881295003764021905093856802818942915813884396649048379818066929619647741080096411752171140675767706227045532212987967023105335533451906538097938698878158811914788323325030166362309052860222899571701481754879846822292546654576876863897876434550593789413248375511327305608368573623536150256866417480368750175430865032353536227468533290910098395428306901429162356715185497983963947500696332274050482543203322086843605155828025113445994446534168498279279872693758727713374367543726246780289500609073746582196636347946653614812562291575529289168873177282863740974332374740073654174996400864856628756311484516041789280755543213252931438335880491558511616196726769134922229746164440740631120665245012104457138413082149593666112111391332768839857931613530583954556684129365143211399715304442102963725233574715027405319874461295230241936248785379888074529018634863323080140135755943324511375093559574338183372327852761065803735924119706454321998278542948683932878877770772996554721712169092979435924589790411589346096690193152474249763106271502969737059435790736999899735258905852954611209409965231640641596935330423664083204663069478474467740759599243611117893380500450925075181876657170587735151150231280658628302788948122989590539842846947082015430703383616619496302483074378652148993598133671501276664849271764500068964062149055722764068248602761799768790005271217135544778421846939178935829250932054508239952148875672723045330799917693363004808659782579261231989433905351355950942831708014490350928391306582474391044171101436784250325397476124598005353489521161029147988962378886384395281979597585377252837289266331210216538249022034035208865109379927658294967852901114371100530546466669024992438314043440082150787545796378923803576010345590773105995440943085937978136779890721861054396924552858348652523586564336856958075524571398320981490197864059854777290294345663725197163630094472437795064705105477354839544762168480912632727137405890686214959058281384634824753620642359057105126576308029391357131798766552031495409372460299482468509970734416746135455647593594248912469911561317203210545346590207504516556451697795742105816668354211969874457967794464175267751617286637606812102577278167742710277619515962271647999568760751619814138854476103816384449355773421334196569538621708085119647893951832760513114593859579053777224690920177655011368205597967566472949409317447110296938662634390123878628567374988668148922966827517969448703548042595142738748217098194665917137282782202281109455034253314974292600864970399880709591768562113129318857852320763224342466539680112546333254346625185429634933852527770764538572139413462678639858353827751528140393526879155764825587682076712822921937512137064450300953948645020910350829699792754339269404660695178540126881164969282355579471177331721967532235432018473588473013098402774117514504716612007560482073801439399601228635363185761433401177523285477751696233735717722762728951435928656139159822173297787405996192417368716080309404585535037592400684604060209270860377426572997565141038644347492059244346519504296988517221715845854208373383651985427425606589865809971521742579250480691032603328027376182913313617429903939809741148917377458994110869362279625122989294248375761834655899367975704620984793838955923164369367491423754893311918847851698171601259489449275502738195496427971323755291053911105459550970515856387826626969196214704809370206252225993073910320471990783584411345929287557654147306300155676726523433640280090814465681956932918708673247487142646498845929836195958676000841934389281021569362477322169633324608820562571547691230202236894247211685735353618313447525821981216767095939386912398563476645012589939450806692515406896440355275998994593566179449209056252332797582212553973881252023248805784610978851330079027157661515332853625628944423690463566559722528132504128905030871141655260034761289876034552708226659066645867070090439117554502198406109978506807005436508475372677751269223132309473528040656680470849932832523758024176136521986092880312651671953591804409478909969993423787527914843432113506831929901657310866607881353860280054381517584749617788552099977033190551389089017324737794976305453087373280323139769954862314301251219285675966803146963496051840591533360056313153293221439917595381755757764524300716024423283411125989463754600857926581517164792195858956488581935201688209304653543734202401971934015801756104273120884157882753081366817136617668794278065458986520192515227363814257097727285777167413132526647466623717182512028653008433615592864502206101785285797890491199879727586014650098300289846635706779846385024810044681285594205091098636666399079120604950314997890911857362689991988800285154361106812982521241995095420156642639002829894571745218073476517401359843896046181282262986131086445760951608398328454956078962371907066866636217695424776296918719646438440597273445637008467559046145439469279787888443058698980156317349655419223714847146470308729079601742265569972366585285937334695687281768765092847157489489297333773099960246025684128472465697934485269914356350161971004264115499842408023865161080283304210886720365322308394482980021986016723916496649340692648010321700490474375712568753883885757472420546523168118096207254669885675522946138667239865353619067883645241428892299910903903400027834582609038039429101954694233175486498434530911078439205058568115425814016606562512941492215000637779999994946406142919573931991404058048617318452365628185210425318108129434363812843233645097977408006958956496579799884610320639064198376812112268211699873647006614645259432223964505952183135138168112802109053043600913245965146655662780554809955113190222227043296297652152951782984771477018347591573348815708500492505765817593448464399693086897802387464761800869336145552860911527560077840193410588287744579896548258521589414540467951161276414146490801854628513080421053677673718671090592002849007238277876212823629448713578918931202788233676135297703236867124636402501375473178638285419131961441815017339390688204103752042561427959757023595460721757330412914884187214463250609671261365692452364656218916786389031383356071136266292503755644102815734031958834257464521905697231133986004514709216711291266040321097454756602748101637025785376080310067968299146952114014991034251154351766176472035775425313370336332178317982869415649638332059911933705146044696051038139372982872487735007195034501251541208505523848663520386366406508213809473116154401345353336044155364780410286762893114508147830603116291144416197260625408980685285193882693527550658778358853286994872058770708294810730996793073566162970606046682652373156915134195651910453045683495601307400330869620834426030722632109838833419246107100462277851267421955791843350492024049221901848529424587949914745143982305017104306211126075551509343557338804907633360241279027461710341780003866339942003030776522325735749088390405515415628994868833272352347261562243357403088832438902193788607947791877143055189587184373245950499607348109714922823386998839643171940313812780584863048753703859925285423969105727640228742214537670709548919495308843773093691702789721612750979330024414106732056786650960125440441633112915604139552335390019424187994045707544726073977872404497893005095779451547652442475219993532469140111688798846820580084072293264836523972123712443213644918975791552341552636626002637157014159100563319229034778974470931530924549585172911510281796865084176528123445177902545968186656377575474045723190542385432041433071795010839933119168109894858488297701714493239461126817679787605616849981119083192341003505026011198109172479949221903775130833411746300147555153102392483257981242598490015701580028073727457498493829641637746749564760956130165700986733193891749371903960152364250144185711643014236681608312890690552127668197339794760380717324952331646390950544617009809602578487908829422333697899863312019406933178015774587394551532593004211461100283553715660272979450642276008655463188870983735766461066145560013249543144364462420312078525088277814005900098126590334957058162721657532556945413672523503511225644705753906170036142141025707279997405185493308869102308306252243310039596432687863882638732243193087816662252314793448787090809372863397735938681129427808502792939703390510188529720536888132891083274687531964505521628224366173311718882619474061693978277947035330006347334849104307460916998569001690527482611181805455196897010288521531176381695044654545768122577994904233246827239289849841346591317870362813482365669927711253704012580892871928329550869751747504407566596423726091072543685644212082928002313853849997806727979289354422981949213082753057734496554060146300175589284546582598449708484476415464026976119055439876399398394251514512775638635770957119625575566862066559056002669357531321283021979130473342133470365070122931140876068935833625303382726540790518415439976856025921192579214281621842695998097950991110195999704103530426592720582623623979643491498198486121836282434695107099347242484779522622244591671793035577685452740789383519754409364998509073141535184947764475936853250037403911762313953265727430032136051716412978197269344177882367395391843270441160741284560092578437680423291483083171642411192804496605242330222061118645648211740220057738779941012518467239161636280917842820847482576949450850506434819171013972206246502972189546814664480268375894668767159007460034482743384086684828752192769081441904756963895611583853027059182840265938603162553606914991881728340515720573143390420297860385820768839190827084508077882852546566640577794066740090607345674819667624263740227389737594821309946665825961472703125877338102400807903054780756946815228391241331754961025208314584226741008534219300885647852539344394251444785583533668190183405161861662869870979788890685194762643121448015362617089750137423740483018879878908452338224692339579856274608431419095281877925148415225507652139524914251830049913010127457152981982883306313898406407920804238213672710939927423639452579484732153936557898174071315635386142934243166223430516488605585422025007823012522144643190012923539459065199128502529074161234228264828373756544183716236689284752941446080945637552821881579235815858509180752939504531000851907933434033162848020961327501543224141101977638313128498581933427529109044299515518609591726976794112561010530298074355654190532444363114948537411929014856330685735400864511969585599112879281538453444303265982068991722805405441997410159326069234254231945664424726127386123503541403931948123191433411337197686557818894583850715744624871536615885003813160664418954748556179770189453901882974704174107456259927798892218741972999008236752136925043255388303683090145968642396588025646516367352957692629051661054447866243973109539601064752743789782113705857691066666390269453145319117164921491300741958027665012945831091436588427984767204255397781103050769722958622687301266565517783388832794290526645490652407139700352253403744908188612020730123381014830447758980314348826023943472474934004811790514499319547486986353863581530748015937991153206733421191992827029689740939519836683539077182720336941181979632318512712057031894787788883809542180823971977713083603249074567108879484526249810120062851434477552212634698319846358842445594409149069966904110455888867674961012608782438939739594123687871355402481820165310454417982496840124134742030907406193623034210343720901488443688655604179745710676246091386062890739974207974658821346279656355243834537038447132223769127801827934325303942560496573835430592322490601895384462796546190595994846302992322176767957252710447959365913058886151168209947108026604634878304462539392016090691241542191824512894602988344758446544705512969818283316799283060403150610372257691626279541954274187341159306399371353911051438446101788057282555156600113275465449648495959837467099364296784432155524739619713865812416009330386488689616644986657697906890091135595429713258496537692882996197435135103888916753852749707972681144532741316547909898709288615639599028718028025225396925680842395073903113600960753712159401161266726030577306009019737603618849111367395764814449992561999101824997408374732630453564142974988549239849892497977298342539101891119799435916197596879204193362616051749293239305248845276696542679971742084313317193062421915269071899299589536955545307240050037026518938635264662076729854910401293434890442574296999166398078835637423283461265808101626203282032457249153611474953094825920043940206734130289830181159565041861672803859521190568876303194404269263594197372312751805394884815933314304669848038349878054939939591020088557825399457689781172418600790633270631523007167786923947213488215209614012808711606891546514062906274592427028482478254286466720392542615842432929380195716614875248751553116346629803962250911880299436727080907345379891551942289189297976516565776491668245849027517398001425314030839407502235451304438114909691665826809196807235995322874924224720582325886608542759590453890710346028204837104186370413199069184799163410271001930801079774725332744961382168277629138665998162983354144348267101362877696759188260738047717286232964742563373512029786762200912277105318364455556455387162217056439432725526225053247290911806061783124227327742040389338138077926828876156920051116856395180465725439518693275562057977169462038546181726764395323720637360601144107459730876976088937074342033060743865024806430284501255511941537572066385831720164887269239198543267077223091936642792940990885441561086133874570480794309100562728677587119291055523647748432600957361311090274098193415298683871318954413336507833367393951559722151048679629686949034736421800849116165872576057120093221333514075106661212891700372616574774081907690509054991489650144809710991933537205375264366394610485172588679792008587157245050783579153266937810130565988215433258182094142054003805633149167558601846063674496606194302248294693072005522595195950291624213608388995988042187656884487718973115074723502617612266844097000876935183981288155986096538608319621459042329317727443809095404155778653582618152750455931093598902840842404482496169621206347372401432295446180540537954311669041336079293677209565043792677556634066067710487144630727897915498495259934097876869725198038167689981291385533078620451383795603079143724586344478993392633193375795794611732349365339347566762708994892049460297866606040953711437503266640987473359288082671275664331046408756080585672192098089393184516034208122504072160539230935136614146327571926004533926194794768062998155087976761787352374931810671182392024275058263949221694351031701770166336218844127862453175191828826165919984243414894242333340966016798257142219426641453454032349405452602114876379201263206741299474421258676338705186232746868283482594074423611364603706425326845922415003313589999782544555009618983350117421763938498478391771858405586074261621291853832321651754583600354801228183678094074367898513334403798525043267447644159036098916768494519525385600984533689906977432019496237642286339076498300958892384506982882141150879792370220627939238871925222151144071181621362175795575738700852620219694257554708048056432033924678774633089072631712673417089838889839777315973123101045614443944869879581606125498300085647804230649974596974306164438354018174530857243141400979501980732283305986644306332310488337068880611541205882175177421478867040967124259467397143719445003652137586881804044717512884870490694194051622505492677198450411044133896468863053145836678946924106574731983362026814494558173368101247810444621303791193013775351199887306782276059106785477389805074706159794726086877264659053264197093961627544260768048456051221980001160034594532580224070468494535674724090858154518178843049054522416255525663528219949043123063454381772081051861581196460111611735027039539194896427786122343791507100788852041494823505698769711069325747820248856518772729602786322964888034147396819805231396965753394525561825756902292843068767700807951740427591817128852589276528814362356722152447231404523573787706425968402927813851589521851325576852339551101085038549660301582164617839606076636033533847952826793477291364729888114690173793979005625616500833962331413137492931611497845937935827165417540611427698875724714035809043060513400713861370379323332575089057025829105595576679427292993206909252731022965281745387678943260798708619472431579799281374551120863869849166863692694596154241399760312328829708993489461625452297405637770631037976351234903268607318655639065861610456827058052368883495910901337499266727398282669024281579324162958351444519395938528005396892787860552663812197061473602366630089148636285750357147261483829438539606660768360354929424316910487495914731743494559508309826926841749115200908267839056075691336088946322494427797939650293971194046696984469832412754644247874242989036856889488060832825941780765614711393897293900560172578818703022520333775793349111300859886102926838125930095193681857291250957994863800926783835327695905554318311608324888142035615632472896563749669078911149972569564499531819636070743317363243636740027110287430307638829000718881677674509669436131460411001172883531106516342901676787282846467562733776925051580642560026987202747642665257943974034630179218730686748954611806321366646254376529181524551868209332776553814849138146573093024242229097746454563257978176897968210815771602080181562955551236150170195736950293231823141697256292255219515677713555615375812134149414253418245468122903242637971729907006573239313486978520660061096150717823088877969502593853795351483668876305613341004944641023794847122883458482963775719498520237439763647869625701173222648935513838625185196738776885852799352647134715408825467863354330341065956043833351987506266259761122310853994015853368045674492804518023853083074543272038644778178300089086421310299981901201482221552793829943760266503627681866059760581378478862937647696506319692925284570176627018733455840414376829883805734966929649617741286959133231340074411834858703010701226948387710278272316411384539586025606689941287541590845581890108467931688394877851469625351327611278538262977656414690712369975001129009717124707082417569607823827274788025997468013719828945772211735491513854838350958365157660331817753875706931203602225263771205789668073621845572110002350954608776211214986895124842773088888628438405342087411867636992777613934242306802842426515552951271415837699153574848813232739045187187256544119277036451185859786217184352552860816880665245241017398300096462957495392662414455645259949626360801059601180605071020774282931857493394064215022946972941796242934878600185329795984811951606076175427348991175948968703592689023013718092309644126041355278296982665428484502614727053941490340128491042380699674822503693697658669068909258721418512391685573323769814927504779850859746477572644295575720107536740462285714075958233922790802777065345464967279527176918988473572433164358375865017925965268326056713140897098696217203875097652018725813002004257806670727865695442034038030337255900894341459081393930367139621827537430804711939582207646981716762445953116734390909863354900094587415438105289797387552654560716099749627928340354414947342843156313013693382460275513198486017427067615103547489996599128631980315603340463957724503785887091026717746832482563964455778116477555858951425250296897850499224134281927192288670596741817520498470156237177599790157307417510019254503688030854545414878068629129586645265181269429832930386246738865088139497431043568514179370196620941884385067138908438262831476850288565654199446852551474453381008219132459352936427130226353966767488056175057297669408873681276472296491633985520250723007207705199475590274150881218900400798879833269265886255035952329124039190578648101021984186243503205097775740785589605524430043216933373524924872224719203556439578493801587625443689685699306243108850024678498648226552781289179672845488857617559669766396093721865961886325304168374091078821132774604224499816376776599064138473466088876163862163963618682181558163531142694993017865893416614873423262157205839122197080495035530291692893713107159332776166020065605827876806337487033823086438099878301694714998791446703366565959400319671582333992894921623339574911477001156156075187960342799178700722487893087477496985017745871113202194566623487993903070341015332448235759159011832270958127474304900888057268917870944468847296373579292147785963810459862799476724735253388179843085487315109546801845048448912438108918545628908776725697465003446981011834947138797709175403204584377116906525291341793667085932076142041829082732434094181870076807418115137274709412270268542449147376123000147062900032311916614091334281125721476168819618696525736687061420781268501119644964245450763452102510718300977132642243944962122432765357724830836370003031649622136125136800624490641639795058040254059025615353034857920068126691940795147268056631792318624523216159444924924903466672180550980596380341290109817890705990178201262606839754637072280288523224992833447429142593174321085383958920685744691599280853352221431369910637187471601146062317971816138293646331084184860866683599998832643610340112075727567069719944076277866189772792495385108322970289413724088320941513226524202513901577926591332197988596877300965243856648046441535158940210853673701886122492014351184452621775960559127695641417067383937436331573458557098065638847024323404391423230503422501691403638957364599391894512427039061157414991360694224643748629468112564227397541621534847718494063145841306923200106833994726682171926689045441325346170994932928446942730595619536844849599391553599733236746868530612633030500838642995972540046840005385956381193793350318508961580524623142905925960459557955198124758009837591913695121034115754753963893089649204869959408870186665929408530590373931257471504363590698401625743564548818746986237297115943156935021756725300680363334507015879670985247569185695346112677212844586740689340669355806066302059149627901805012038919607455572627629607320069862131308220341195896177620670069128517214124196439836410205742509284676238284288414660698452645867476703004359545845412542400157190385202315540479417191865492933296306651881963338508130401657668859957498314659996564928799792842944920147450991177236696183969185538938936250204658287020008534120827508589651615404591903283618150678780682739585830817860261151164799121793103345946772323676153473935311769025545251719934457668194678381115212247554314516433271785302444410689827504772604257441989346991446540080996789187204935086241673165836120443815437124713147525886289212253076977421951442096129925587222713680285153300265825615952147545669291714110898450737098830651459643254085820539286745375675868807417785627151782063884770481251603535512265100768920812150969200758031294413972057338169964823307604106714988345970985644505474028550835271767318263757952483510274535584740333373598692459155158932681221029594527588614263145728013097620620714242263976774444780039344577732093285571492542497202068012286442142184820700456231698620392978383255261786788804158212837678696624897372886081107435894776498194283244246050947704856742108447728678374683604527455254349261363436379330857874943772831200092372611185809633710662426204073211921450686289296677353948471654358467277836382167486216391268542157565019545471635549608247859638602465792678233415684639728891188402873663211735966671459807079534789716842327544910289924320998118637025628592713225319431035258821173339376416648635054189840143421995315876136395100752091384210570374947291691047609050620664769666428036580749554627719331533872611539930110784817665811565416714548533425621233561439763346856171470384794155905141039412306708546063680743079499377872471287376273185873310429107410825611544574275492930759307355261809390949173068300958009708133283796542446555348372158984781417183669391681009013179133777661743723318684306688436504175365037850482766763692533613306432615291382227876620298243906389338482470007878852238489861599420139619977702898862265694714450685104060287702229940982592750933221035167298838125575758433645938915207418586265017479900555796625949690807754046908653966303288193636769109460890234607641228520968684245532647169576183984032652434292641801361363278286989857536213181634328212338741771788510963221712071969422097367858270836939975724492066138880844097364022142779339863844041715812623763753552367724326470232797408545080344179991740488921290636346915908273044481574558839876150875795840108791255597848424453816806657727058410686536760700019871893062566518474607993779406066836304900709487127528546858987895919829739613438514699401612454152091237748399459227916688803927631391123685931761120525192953660040946093682809800729373723084703630428182269657585439575991506479935616120893805875589586172073082175697454756153407744110343336197954881551401231511454020997910261293354496913381934535026199765799559188713536629682610045542530137880988726045268787982547044503853972333186188035194537660548617445958539746624595035759717386889390412125188487592633079902064806561866798156453050990537276502921101301712322275949590902333639729983779267255845152326690287030850461924007843077811462302019008937660531306278959379522915095569779714954980226857044451309710769372299299173381239619050723262066925874480467176073358751132982911475042940683648613780265315405155239125270980351156979475777842664756061636134805483125494902814295620040956690935728841910722878670493331910129238045067885060570002596537870895039870711347630342993288316114122739909223270901178200528903187888538705271202483808256318495349640404579115917401979596886031543652757992451432204812609243180961835902421572595901251393321352637828473605726256558842323324403130008843437718448125715948732803306526618832080854406809910590642384516378115138307850799690579688458814229738375661194398249702415474771725560150527305935497907020247018585439753687958730811809269066639877339317820224529669849010588036247057747853772063965133607129591450155774883557918750660523701174726023939983945180648883391366933027433148061377511218684332219491754008941784314429364307460795181929883103063760119740170475978551224623451967221454460608062060033232792806638338437651869118582386334119464371101275517236053722582441324005550886177113379708964344232106801419679676399184421277999810245488179383799718140291124244255160335894779354073270576475701476878420948980944930983977087649526591910978103203255761448560928296203639695409454122677675736698703979124127163813211320563856377319978222511175586661509708682180779379828147528175140300543591448991461036017621027677613204112498764267541756507155066600183212246489864297002347779780497015396765355961482824474031031557975103293010112258629579458065326877825514843599015350849242489890755218522939981734316133576767341070273182019959927536680206254618671674116040103601717093453714080693581524256208749169342925178780133091463141349149451353895525922440442102391236570366956797593546376885180910598007895068776992007929830168366588297293572922302357954982741100613598534843033230355276519009138785461775559890970420153225183228849749280619977806031877941532947569484277842406342313373521391710717620118348171853405340391437590368972281178790176679105103533151921562658560296214742115903075425311481195248947136015711261281312048665186951150452571404225836449737697948261542464456054465243780434756903509524366640864876044244123655226001743265181549868607008461580298119750085419428037919102744580377047975555487201674335186464024276524865925108801846970236400691439095098625750161501854861451332074742025035321692928789626037640243642929402540299203439256680263317420181659628529639394641860491292489306866909574803360223569694460738988461916476424800732886012285535669740243477691061418045005707391873696047265889019814549850002541043404733556860745335075642440376702411639297217898634902940213804239599050405401326112438542481206879241806765935063201268578587663496480589157143410592965363134393038765714964000146888022386471475298044237666504288260441510563838928351946553046693122883235677133444897060323331293773928978748747353629009409476615865982610498128026010693572431595558513748433154055055057864273520235126360129684750717152528103633656198626578336200061900512035742382365066027668179509713159591519440625923509306779599604907618393191991839756537085450497075505702042311113709934346535790191508520071862843857497375032642026902991201786067019536330822948228065509133546741492324949912835551207963106402400494421584987748032756761160829551296091642595354787483544290476112182894686558951057848129226663186344955353655496895921404228172291867083356612439509237190032910931833299103802927881757283105737986400230053642859626743076628870719440180193868356891673642489177426290385499165469651436592055223111269635114660649024513285068596517370909048066923187152116978098285078630105695647745592481324342422039068698826746132913355675440532787039794299988527388082134553909439813005337458371346086319384774819421605214876619200490716910599899373498484671322306679198254123298331623380028459199786016555092045528171322351242320876106512205816548413438166263944173754450050493435459139248421343314772460095938935467183923665821007924763325874882075703328998622972081714105350816583114406621690614475192211871626550907296221201249945046314622439836489318028228720769322911016845337023884060955636056012774895308030131760550590454953532748512631735736765309804620324304260838558272319664164223674911734158815475699639935872269969286972178888492373288570845474356408545024398414977839527706508839919817750322353092296914091440535005045493718259826948430927520208258651726518876553172313525059954036905504205608523270704300672151098122737096152996186289010984994758472838033222107925783880448005573560370852865639635519219539184995372671696195082341066482281140885674957067151013283134907734313698362321502755204850035728819798706515375164149523909059704692246100471422424014543076365033951366104010042331407881413032662373466245248018376411448024405646489831484797624045028473254809811886181108794381375650064041599944001411277543899523997954172050917493781694213383972875977391185232243075922588824687370953297461823168556406585556643831250509802212915979808084546824134069451400004092660098524023722827845337512025616274540055027271865086020710584366150112162447579175955613233371296101441999820531844288537360764093557909594027305497425487994370248251179847853577076348374029242267177238374710669094104436926474794394873478176853881384987879061478204961277100825542370809166378460695818687793581434148486106451031879924485003398809703694034919523312154588599389885329827580890861838345544647275364058984510445575277535068442097416792454913221628861717165469913154303309897451817770715402742412347424725948809356251174111927890512002519313804046173911784567362182649320004098530269175134748411373263948699313106850001561973739996165436645564786878834080448852871165455268810215725365389719730443174910006431375527129601390389581932849336502675719807330061287212284047120138095526922628622518105052423667286685755718756705423473084422370392558553537162615845261264188044222831120320798858781310843364421651183953285073680867117968890218979731529378591077552271088117661028070557965977787614048209513057266947776036915702676923550841337702766099677869366959269965312047539965123827545125395057369451805405998613618056590912671819428434353489986142059868426407618415392021518250548559737404159501798838589360497968073348030225207815953951138310715613823313311915828300467071102026401378793056423594089262502332969566443051127843416399822791610294562228763598668109744037594999023809992607017628930592663041700910956511755293845173601420530949177994955203140666409504288386281226363832143531212896107428691283467371467356850094513517823031101331739593232768816571261464863628500292655961394574314402692070672033305412534400624082152898869329786118529490825667776885224379415475025297108473994221262283638456993129462834488302803173540633078501763585394681700055629352227996323410743270171255522546762305273702383773356377388339154505792060167263734990446451134676036072556878812032246963644230346314189935984298255313959477774443691822833795996942269907562763845657207630504645322212723574072610433648288136464099539097017615710145414258723079721833771683626121494558305120965514175778085095823503827033800676477385378673593969274538216859892557045940600516874979020939529466921719704372013992550726959053745312391781471518912064903228478737948095667631580519277743496323186875527177762308752432200771337943794343209411950328369642269048829363851754079916474991341799002030351883480785458806503110161609322029056268359600220338058101262300596243403831436244002853470038974095761633701994270510547269692858286089345594239533706549419242927803431712288575399614543653968674067912983179092822263481152543519264602457760206189333640941032486738327718431933445787804905435565905966479817849176113162767321453874519642637150500493998039636416278454659124066089086353567482545380419492587235587938434170313514464175702820385917972727995059815363198406450308785249930658358601943788252373977235375635170127815986806243590120367018047883640173658650056291137371487685204483951903254062919996219205276238017450156757791491784641147698422249285838753835870777571824849501245240656560439934944752307277552999230412847555096764386075910556599074034547658185602596736833381024786839945118229338858242326340819609712807720441843995343787801191992634161085504518814218256592027293311300000125162977356193199829141466570867748630757447755589981955512730410953176669975490563802197066768118574178988675061480531451917007524060230110474453259656232519140192351807647110760790049985077941083288014014426599364157430932208326971184048441849027310059174268180367867767642657679157714031566333064207347297108165633252278626060809952813100766976549044848550611376874913949503318945825768900617070990782552380568442343301723809845216093729179910866038912434096467359891551345779881988369954035283667335679265489697842519158647671126561596896908468637459368294935109473519959149197988530986541982033244139752065310944089257940015303919251729756189100460514887799999292305999151271606363702820319619833698244318932000637430010347734013392561171676380220473563822920441040994723517918555371452602124965859877631426353150462480365449806649347722377383292969119154430041353178511051203179090330694251676898315115982309767387059269179149999083276402732096080460154109462417719650864365408912741153125154499109455014922997382735306110506776997467739269132081521479495909756033072166523638715144688854051138846868491180903180734525049403324652478256495850812959291345523145871413212488807642153814225101270260254269717746309076895200904221287864332598897666181355542719978789519901530336668054270658745056917995263760328983103183318249539026914315297599886428236345736280434718157609125214107710500285260326100114676077785709483934749860155136991058468749467743860103655514102663658383766460273449411933841641745446248730595467148805094526192194441970141599029606778331827190035458150044634117126180681826102532609221942689460374744419297775719267258951934085542874147170445398510603133162154170202014519095419242795387211056901762040912849065405307660587793497135758638480536163229883676802667591713035727336727054935152046395276320087473469280875036424478047845261767755468415844668674195316097866207917663598251768350201904147458455774233784660484854251500993084432818060465124941684081508304963941744454842836462658097625922245610291893141654496431887623234615543468694811846098689355857300092505199059157858754059752651894882989378364602839637871456063555719326714479512653917071747063388520562406910245974469823360801897609191648952405286019843404510321108824555007492551923595634175659743694079251483792196791064581948049554076216917752060098250057213045105278545788616107189856867097375719116783269018002978249464025244885665224641256137899806804026537459182181124624021460415966351372085837445325212448743831669847646498119316364070298832103738455349052586374531579688398464811923213539304665912402477320021589701491337648992427086779777504271818274653057680365656816946609858927509950454374226340553116292913155643919032826413295941557505191822888223163203060490181285870083476080810313627675521088467217402664817293878388806634534730228588557356105627815903816145267394428589545358310683344039526560488911663761095257262626559171515282507441809084600916937292960931425051704921262822169263968448569071027525587347934907646649752243566775381093826054606529317702421307489588881529650474915901606445390381586406118583953446392098124798218988069134753032330737796328388379395085689185881416544285284101918027672837768353615388902526535167293633248036617208130681791449223019192877953517538104910336608488013395381104054490558109794060602099695423634914943023663448999369942113153063841812904782043646186228321961217343417333482003809804670459472890253758177630705424039732775047886510116895653732265350606419288600351133104869638271493867626347375037706181711078551978431757561118793277720186061819130476088298288130494315319566264036011768198982837597828682093220662820174373572828168676587865166754761725800315457841183099090201892269505130186076382529970265595639553527971193561234168117034752253191699953828717204447157437280523191212643778075236967863480823859593418262194968034483767774444713664985578943553042732138612934160844103064503383580394956519891117884769874868061152617987781766825608739947017747057272876511373432575447986433654146340640179486246761843993162144119401097612457556136633383939914690044823300966294233329059957597045603698484733277985407949164898716213515249691639660319074413959633373496242996878364216316029574513828224120091178821281034992523292994167462492258096809811574760774376644707292088272698980421588340749934389922485943007945754330202265026431747825883353255264300159550601845359014653461830571996263423757482760940110184615967878153828428538477227678151868704574473961266895955748128867687736592971791685845659342735651908425123364525213596388321356401343345825929781133383942869671683648443975905347966817958113074823455692160809383105863738313040847902234806786554310339640873705594615800859664840193478983426414030916336470014792416907480802815531521506408766227358505343751604257571203231790146932257185734893963056277556672575658928565339821847864186837022094785729179406233462829220305574753117500192361204273882305263816810307822201129158928869275085475059406455628285509604884624565352342408613809750822783246364028416980428901397841164435039937479029234481637909284805679040511022441434803166234385581230062646635733699509130317469542273090861899173101142359773912170732599024083819106594017701632577796480113820540654545572988629650450399515930495483043846980033056214188486474262015790437843020381149521808160958144677618284434184115813235088990841567280703178226368061695399994219197460896389088747080102694432725170433203287519629304105347619183826130256828901149403093986512745310301909329368185835817939808498211144592770188280510749253442673271958931763105938040396624699604351280821136391636000065259960451107923109957710493211414043425645908941011072843916116875815579406370002987804118512655337489436166394005357104288580071476728137078792988719388154219835145922208203267058911536669048775676240989273390258385551642004195111758274694331836285125004612653802690924310441633083117175387088228809749558710593488568790571532539125688731309130929143853490847461399786574090230084791520151020335499128724657368922368249852975438427048273869766999682592694185750888932664125559470855353444824395002880479184762107389831545753706039383477159765227625568997513994209000096435288685665811345770765616676397808817609584445935472758532317497754211010521419682035531757442355743839296823303408030570479617129462087482179894693684381466812557556284784264780887791450298063491377429097149251559038910292463057902632113789902842577491376303223049438825178688722707955765627005960283080438501757735697105658178221835353173474571986936772969611317786362263535156315743553506103496738907385598700291781594538135566133406891603648093561685818195139777319760080003325563266767072610717545382621004324352855051458878985761664596907931513286247545191470263807342669212176181199628410121767929650150056387513423368641080527673414514883760094475266992222019730327465678578236130439428568156328007954832419086015622246254686739275818245475725082255809982660273191691336431924260111468268786925650267276674837336422917365928004451845690432883181489707334033750747535564666428886713213015872376616324540362034924356813525619685759612872181370833045617751513100585180413454676029237520646964675654580645679242082765264530309397037857572953282433250755550792597892812235103153642230299464986536354880513263406700165227085431917797572542281586524885898588820419243874368556279251430745977095212669255186585053162510995550187883247526157810999376951159209727057424663193558657382665339345968660406503684721254715005463104402449829362393418232609860285363902783566195807068448655095129621084161335519820690049523333872620047277048813849483379225430628196375030144164044030011428514610857944166192361764342982172885240703492163342265379981048437008937796613691128393327768026265229001619119058837911891325576709599012222581259348229960927956271178776022297496415087340128703018813860779493593457167769918819409089511366123505705237780574670886848132538331630822941951806109249761345887116847294520227945938461208597772873971869530215242568178585478697761017250231840114517180296508909522495249324471909510531734515825410566287354703589958083259493698246984541402592175001080020834414567659635323019387443586342540191369163727530819511440338699127256472772106722729716331625772671931261344227303539238259201536296939280277253307988766010739513393375415224575287705723301600088142715165459881315062242550746088594278150773947774333713304586418639926329848332740067840295404818366350885529295012682851633947961803487709663665552800832898714849487379824160724285162818991936044480030881474697663337738561300336517329344934835471074191301897400953835461045679455394814335608418734696474891278938075020261456158512261220847940975944510495462693081128831125622888130409511001660211447043023315318609380799732219112309944404071984809424407669032740820043785676947687530454732841005591778698660268431815651087278202284358946075917614031101661886510839470170056161455811612745180361229741543429670836070018379426802297970576350797834052189739459203886007602128645765303235658956695071057829193977839066662932423710001892595385257934422147825862970040613357364678969350422692792595061984219469570896517814939157061413211751528073861065982278835649943593400354345829401180052394736552340668695413467962324185441345372761961064110171122149487492243604120411255194053335955446105770435598092332327876088148099487777451538161641525879883233061975428908122497289055941452046955446907060866004242262709033667284784833864389476888007655713223201702824301710613839229793270112858875108166223226568780588520102139272352688358063906795650811251648135367456355538387825979781493036478117594908070893528941946582981019627543786100998561680859027955920949775836747529929735533193881473204570071291174334191611044219981252117664611993635885598635820636402220581999800860329864461643369797356620355428714185502163875129775297017954345182059586874219182276961369398350927196535936937677535375566864268681901573780143162542822554711447156783720550149372429202081255098312177157704927950317134086444588519980970647172645693143965038405106600529880088589274149702896201699515911854407128850298391048149382154536339563381649032620281156323494919711330644394327750966873512098130565867806958111623941831175009574739277378588586618837575301365752603325919512325994351435988890321744968344508799761904714658033911753972720854553893882599437036488754046018733206010759979673103613524825928761694434438189774607227411173917852706892482433136846271273298544850021290710440932764788130543634220668021580968973876741012676219552898218162982211611215157611392145748360271454415913614678059820046644985405509320752531738524865990124278883453419465629781506673695967134635480719861275851842896586059309448545915439148227549970337037102194096950854148062664617219217720779868833227453319858331335413793142167361237397813982893765297835356185751165128885791592365995347042758120532005459404092645184542386511779793157048248006373021426402466842445382277765061149546500946776473963032567026396070264717391873681174285137190490398894933321367048385263567562504739129938087563729695814678327071937517011194292363745839869010215049521552348678860552235930992928085579769515610516009893369857404193568256906529229609563602071481570943769601541593496434686469006314153216495817454816608685869407681372585451604049909444660960824359083283165808136397589267333282250112664113605733006347794008301102194376864418396080857849018248901781984031935085975254794662838607472572908354907629972722663163889619588127070779393697687176236879142572704122401937610534690633752190980614475038768682570552178002222566458144118838744445411138188723075157593348887625316930058700979392856249613756868941215799465053346784421953958331579745907566240242179501768337284662889865598295773455187848016507137592953697931554118403885016829139104171599437799462252571100188907421502284657421880502400177734106105862576046186374822154108792879745603030837088355395759689683042105281836324814364340204777215766121408110728478286572140708612023071554052614292098674309362793555806055173027778801335899451949547482097945734239666151977747934003125238699292150913712101666662975404714964248483150503459503950005518222473600325907811276307480048375376907779408861751916877789220844278602074360604306172515510027689617002303140898187459864761558395000420696334759933293445987629654488875450557240515661711138986965964845800824474509667208915752858079866584857638914412928408785312079613438961975712930389977039988985185659932447962033853872181987835733194554321818331267915513481846638560420380110726739083847222660806775594859796045694027840402177128069063397298186318494257779415516546438143956197695734595524787479073762364009479776692806191428163946354518079130488218370942076016103068910836278411352555690308857379022406263024456369967696959641697841503010685710971353408974911213880007624766903534466675962961019171551842990642594173149419815099664918475734096795784731948861740776588239626004766083786792440442371357053644781687160379554047590153337135994071302908942510034605733535207447855631138851064396274498973665023850739771214073681528027650733778433720142173553858336648329551590457806326986334867792443431889892834552381646060104134226029193616624323589997693818630940078600363267498978739657975756254823186607908755786310638489380662366000014670768588743928295266671915082213949014312340375944870985785039375153539533391479918896150915222895051761138855888005073309251025522267599843146297432832161264376372391822526390678313224521330894654151598249038756921773758317339075342378902863275243487578864071223239294344144485146792701672431383130440630815246293745919235690627057683554018482253603733779204774609323682713704953924753932672581127707272702767550544420955679514248067027876409949059222972514004971925242558169099777354528564116391346801785680068791299272846741031125783467796917053176641513272703109692639024547069429432175658931993846826172314890196602387529931313742462263774405223361131937904588011710925383022549187074489241397734127984848681917975304981017097589373246618026110583714713647662198443108713692389476259947173723018975760052845107745706302614621809820696790383486493159152230175976740015730431024635095671973902403763302484308434441542987374687810917925898595453637168740785089312522891244680178127100659884870762792969601970191160560933143934864098133491947734592657049003860784579204650719135364032025603297596502439146583274894448444213649023200513585532505948815189320866415815433959397471494027595424384353022705807708465849462471868591829892945897017480375445928939516022061513522522556081876559513973853246082594275660316524940883000258884280216751644766042909704861077900374379590452498130630222770553478837096389479671593830740058094938189816372118661821591491373140835271476287149452983183772228813375203057425210644973458128843552423115572174912365959892144185235539531686464500665057100301918915490414834665041607174649633214184783009630228703927686783836230522737695588272557190455438859762619675393931186377423120317184509406832878920619664577635135248501155530498795880964321520899698961769829774626601940173837310619079343511612675055650035264515970521501625151276881342944609304964291552395940926219752428773163366383570697462692756727192619541525987547004449409966728143131146954261820257526663652754217702923737187303485189107967322214766224595372187572659771054422432617840886233387452895665307551023972680138301607936065898449095500671136794070279342269908666295752381694631831075228333162176407265736179990708980915211152699257458983431723154416608153438289069936264078327684570332630126052055682574593518194544035280669173531818932142103426898183287181173358141249474859017279733187483160065219373936478399732491021961522354527566299500706560326912073217551110302352596282589517382715647043359525462128528012247236127162854864725913535352869713944693737950983812218750812644051659618950100438405370075065958036167313834573347726006420657084431733102137667319331288801408068580819667356980623398965797637626400067585856251879754724097767887343327639653645601586100414356949200472688903481689460697311192050982167446514502997619741578258134928234275842108493040276104463695563781278553234279719948692129260589593553934390158915142271630007131325757246539725571435448165323212321121890920654273041371605584205450354929475049342981547550019844591233436941325493622188805008028161374377887410476690104090660855093416727169662107152894001902921504810211135516374972484195281641575302011028719842172111137160354994316077476594572216343539502857942775056840428588865771520454538070066478545094055726195163020480930561008563361420025090416642163659405733256694817234487600125131925339235606583840602701201596758414389682854746830334163380904192757050442167933437018838909181798665618456533540834351264881169976591753498767016748261598835261862900499692279738495822495550187077642416422161416820595132968187459691098786165408242117827017675819813588488981509815564738996618851367942620554133996064842353779046312768563148996093980622292526275214884997117437732424251029576568539963903223106231594988238791689474287022640084572953075111505574184858251140252773470849419675277087606962985733130992020101329069680057354885579280325490314069836361492790481626561271576733248319028853099839857202248016189619120576274421817651255286941399745645241877197911051590038212519467260288055827280333823166267005476389018698330339417801740726784798237248567617699678080314204229431355636557539642779730465000900083909123803811898847128857809473112191821862810936119681685123929657164695639538143305993706719760929060048092260982543482619839975948962034880302413384598915273740415365005194544874840665380399460484036052586527358951542772448131705094900839407069089905002523491130538475405702529777786474745000714051788109739067541214420975751498410586635959144924691705709516535852066240950807962174751617292165138084958500309174717547016985653298833538318257636136382199781379495497323603685400641963380583838828346077963671419331712689738248663178162510493352867105321804947418891868533270413731421084962747851939647301674903819763353988151675853104747775315581489639263616323791122718595195457911879030201995247070925656440886476350021563894722049035518284035651963201740959630405473719325073666500167931873100010739106938855117554557288370027948702783208823731043641635198917364926859853768374636807904339777549882676893658151693013904987017627271474038142740703130080059090106427332651098641992689174427803709771555867759908708710392870753896897102695227801969158744174202385503122269033640021146140188133438870943307384581843328568627818802488819186692943886249116295140158226942209721474461154133438213894048974976853712769858820402629183014784849176486655172613339384704860193618988564059548590636758330912572345931599287809182566639774064503668038767892215023232747908458291022441137663975474314464071480859288167075331733500106773246369115099472574859752952823819672771552265645044441632063849764398303380985480180738427347981687135932964710605143692851614080632166268576042017778953937023032717628293358220693562432571409927656121455429614614314442438775764208793014679759675394816715706245930046279525888809902351645354521206472494427179270608544232955448902782156984253706607851844600957656864168248051403415397287773822441924040357213291598567580982765948325046637955621556852280528233123856403419712638657112195038871555665278877505544926274062225014637513216234783726461255390450014184225343426855952444096744662111874497715605137885865310136844326786082154584904904704116668917752811275590633029312269645331880283154618506639524333283475754654140733968268312437807690320766159695285677660740499031703435422399551673601762499618171596461160469945330582023602067625672627776759860506956110443846812695341938171033959127391323749187152058386401576007821548429956091242107497684637918082735371784213026995015891882614472027932645632902520459706869144769891710603386363273888178692463855303089116052084060702870491888115840109581932972677984300339887934187265520335017916059232793710309657299239019248622636349233797074521817929949378491915914836198873948357543323311297159065876191078970833988708018091005858899621705123013561311174529794535783732910793495141050087789657179592694301663108441825721758069800277883431626639054573733650711390776105681461240055238607238310741257747292907264850813289277618796621367709333378799657595125975779456052518295201446006854214919321082807271246534508624137416688289896220840877600435029931773629474265681890176060875304372839304827351724592524054509070532848496964296988902749547283546040555518402750990281241071958046237156312396932841002565844993264531225437192692422534056102230478940479172796678056013887987338719343976492488838469378796876570260561947463970724628567922941209589185850848243552335244195907524085708189005439751642071268145845587850606644123490030153100521608906087327639292671725104502276594004413591827531610829126929615171894816773942494358033726876211543937316625400579382091402341580306182501492495852261738185423349433613809752721296919354865657085872584144416653778548644907797110536718284514331257672806766848048248048427424839778322861592575061413927556251089221460635090676264857711732842419443944819627197229269672045823337724830409188980869066273302189505391059370268372317135022740484485505222606761793160204333191920952693151631166501263668084249824769793758212505844560573313011094698531245250150033646757732551744550811572599243533586541629852087722598307248010613525547021397268722132597447914138987503623427206652754634291558872944989065208542041317964389315538019739391596890174529822462588637038370361960178916948815912770580048196729609077475383001592603368243964133494033676240947457372718071834302347729210893682482901712551564338969092195207942116879883202370281542970459431874797556336280576353835653552791081228840949540388299274246378725223619181898522501024532651522428543474323918386977900506539126268522406042317662897084757034144953416716099058844626208704786852320696765749226031340945032018963427894242236628772851403528816926524802580632474965074663664133364415721337719515784196007301167686188530106274617086698287824898870860934320547171153096070589819797361793964394855514657876269014064265334951524469134060146049233150330695578591160651321650308911667166672413698774505788758414786307462301524095734996501858338367056914797404520222998978535167029191812791703944231230103797302484822802142958593754580738267824652530199753297179824086084049454808816488647570598547990793403740252999977242462549355254064972238779573613303972840112185373812282881248219265436934092351301619035752731538527896427527597394257733100694765628838727216841550581017686683096939744376869593504577051565105160757486371337470303413517797569543508034532767212643910222758321766014701698090920494733120929001664028216776011042622731854994362507861320414304547847822617581549558083222101114581065449163930748872836843868548874830851911122353608879189894078753055240712689784828865037397314659329771772848200970988053202298474509779788906593435673753010993998495413933813844023146541884469787453243778294591628364035412233744665589324313626350973074698598534176394657357394245110160960812393307696690008188945390556932668431752354331213574474385524605256200886220600033152199932064693242890354121902405289250449437231069970396786608834922502064253157754336451762317517359094902086609175998335652880216994353201819234015335683600153107839891989524283110244983368812995434836615458943314320850417950356380489861893468598086650121761367406013994029878943645765192854999494228609288854073648344087306208337548420173522672692582034573448745941790395109580820241797992245582170269065507640536974146980989230996895078095943665642360001632035705525785695290213529850221230553799551308536314006471052046418646346159491845533840488793422509585322739189635944334267840216415523066459111374237674945422648704194380493318192228265693496779956441698730922328076501055108837170383075947769042747297108732127213359318841471853330039767674518695131543378359266034228904104444884980853728864847587131089108046256129446223361920359901235231541890138623391899551478034487289131322123423704871803443309358870310258065585173357918786200794338399518615976438146680090217859089097902761611874875806296401204614725982528229939535063596257713096352770286072939811247625898202234174423719890703202347130536277845539691643709800741475792783810888258429211800672039885423332246819755978617071976822709839299064246789578736209069427924926398931690694242687610426114643081448924360461282073155079918991418621708575909879070300392767925588604709464566648011817039893931467802656144102397086192590613966012252116018489403192420444664087964982896048704606172878149250665432811252977216257275739122248734866009022327142989430350216866546341734906513864129183636415062314230238876449639502129895163616342880267518369364142479725066221049999460871773959815591377554484360457024843109685982183758398970443399361546568804007744175644556759438731864086264395241363609551448978502674211837732048115537428767574508838391249359332586639366708308885345310240473525210702518496885375745311578054114653998685474887798082405528231105673684827136578476785859130562134547996880826488401208696968556509228356214744897434261012269799051156416120821413169444728405759919791347634795501341044064637321868634036776486372847581133105798960957126020011827725160764882328451082376441694579593016890487998963913882897324921903150483096829391195648683882031147075408054997737201024509658275924239591105165576345290357724657882720701377793315224640780916157044391775517858341811183587503160018971810643166476135254198661166240793674448258972877278226317855901716033439214394519609014348548380367846189704686470356107800805113045849583793656674852584923720261843998542778869816447046571682333794022662721627361049057304892076143823079889517499280344322590556720571797938709907930067367495227200085484087924229795378103231132900512822265005630529842441172356641677066939326473265111734224901640579664193611265436252507906470685130979365757248475032570581808722056586357129888189073105110963378770799730998652496449977010781890551439337394272244959166516951181815539023241024219568762603637645597423722519447004593773797849089738834434865598010170869704170451597582097785508297618009813557271763122799735017040345801021773034340894840794572395234019999446183650042992119280202317917246810393380716381312333798604347130045661300757564847587044489197057844064716477118254145491503220912591455568400774774283891246443866275599575671540542945524307082445437760742193263940120442191832104124798542349397973012689341521528868931503507475364502619073134774409971525504690607927045085631619468522526307346944945871940947504910446665213385771322901807855221859515512098848465500341391977862868534494944727098347448287204801889544458690831040612149987974103639613928997718041913125456977741800000728823167764603418041843470129921682286343729856106602496107333493198137242742512274922508831964609777138749752712347317447452646865943426512184002739573714235727820225290710680191335733692420167498696741864038109635638539363937760753031415031421633886870254255684271568881458558041026051908223413730796181464953484777842259445477881702696954774176421092368218753730275590148784022200745608895937678836255163360948164243360685627132549473376374722674648412311083852802161163386396890123194596495076092761450481848273307278830043695502639512708877392931222903004271168071639499300820416613032613945375249167219144726338961135217188044994088469259953552191336554302797092905405682620712610813784555558771049557351520565430231641744881016568258954709203611161224707724290297919853494512916666699428403334379578849302140815959038483033457117707611913101349867775167104260298628743461672324081381253561842338531379159667226201840903159703856016641931439314715367291260741405300994379647065405084970950572078597105118685724613429802556009133299649956582476699506799578370822302196518448329643190258895872473568619534805173835943141442795535389059922436913839003669309544649765183803272677818236976086965776101687042154528430934436173263988987886872535568204881517362893146987304175782956162256034652213067205621830134957819465656541666850421672127278756355245819897641295973744412424645864516459392634888202082991474707871724717166996979883376662467684718381667017112682757556777499447624404279508983491969803258877469090502504607229797146465274835440220815174083650158854106612073711641909555112099708927679207191519723320758896041818851474464188664264576655592699480770567876992858020541212844006312621479983202419978703346414278853202795893851283768723294575083007318832473389466642834381483681583439952559426248662575580505663870885931361278916416227138950193474605001229844219042126803384330771491076147710797702889247533201716838804083770775383365480450484033389447019172675030162937001820415671442857152861812091251160559152920534068487875777333300367189529359168735546669982445860966491898321521532497742681154576611172341084846258300497305227861136561942998053647045393917789097795788379903306210493963992842219656762703681185711469218283391578402962215951085737806446086397809896983730845994894298964757589514341962054570904486087624807270344605285872336362959468093752275085337069141328481290142505194009004141595131393785606021948376571274997583431683105574982271820457756720661061422990725226644509346837159643223594282682989695946526573360940115244358543745808288293155484122127686995767151424617681343373369671115699092445075973787694407098843345064568464631015032663600441302796084434735188846170857484447587727024035223889321912677368927283663132014286633935244939991491655835755007178852703614649370607599216826141197089030982843775258350767949250485922287771261994790682209596928100449698286944624033204552567438914760470479003311409637476884512778458735338397925353890213926614187662428822340116624383169781040457393587892666835878610014386862332587510225923494634073738934915942508081742422206877604008986173207500769619174728465666338349236534678390612017149661400166330137548732038634209644360835065957073463726396161880342820694483560314017231656217163986555016937889970775336247962648114138377039358566511760120992269692385001616037938050115960574079436259810528052503931333536188428772675281346416382737537152291193104037174313538255143013617594580478306846014279874701265481101139910215779334930532200949272894362935986344531874542787195497937673543694603232264264689674085516536659371492872391499621431538452147769183088936840018618689388181996490488462894448446877455285926428525028595779713609878651804713928477275278434457342621954282173680627679771974246772795357919254955444557525488668609854872056770760660230808960283012434996633509141435769728006784566379184375507702654047349842752486686257586723845663881130863368269571124333885820937648933525335880792148082083470569722452182420363403341063204013422556183892382200504495284155271720209882374609977489346830082501456829939039941503549686968650573456646714180979517179684866887889814604260941117572224911397902792591360644083991046381027994021486218548619344161700000533470284667234503110044584615779258704669201162901592277393053849459509276122721361385548137760994851425083314945502553495793399160491443343542044641778018434608721343641638411659994299075452657031710990061453571498993916421253755956944666628364468547422018845151027876194036860779171226510506361703130498535249314465551844250910779452406323228858293643706736200126751595781806510080697139119661150179183064881279761626540169574667657613305678521691107777979714990041981749832398171195103404673862554224845101825189648823410006569439410806170998681554461024649449554294708564117717287072508120953261511940044232487368036216638511489566779055546858221948535345676257328555054611891499875084589406275184739317448125275501924603052986471310398416271151182385065041587976445138578352468205548823305755965589682543966487336567302984302631050207864850551778765539308430637995226336824346201775101258814430348739533561355343576497178450498794315740407360549244205026581164838980080977537812602442642647239797217452307572168048152880288213317188258417075864874828479628873492122329729020147183780191431151756884023263601664451249598192963595957190310807902421251497213707471885845433247314096856291232792591077235584985703847210323181034635370667985427755723218673558673483398434626039352168934947845961146935536284593150537872400412070795019335199364574786415465033766687299281315875113679607983078368074007250025837855915186876885111731962763749344207880683073308208681621981303938440002204257408851739355562539178304084832447029783657345834081602695918709945948250839854806365588974472429216997134780965384750548574585359570058326317140376142354934678667490362097556469896074454932460047878257530580132444500304304148516063370385304287425948143705450001076485419791970953487952475408681024084477196593489523516029488843597460402378611369989217737990125037805476110821388143414161963759575552501097126786694073999678715263918879231914482743695177111156748787072371751635619762004763384099677447467020711532836918659918080208932558470689518555855894144985448156478577649115301114067894222535924831477071270841296654633855890249836732268563085333343444629786611949555076705971677739191234147240674154870924784533551637446242895302804253119431397951473150818980787099716539791115035556072188151401032616194721168234290328084661859221897873715781363280351319046979037241172621973958602162355980218417075036779649801102456855397131739197070594352085421696369283398434163428122178916313375845723575244687404847241911011053734778611500501454566583745525936850722366577870686483653493303707823881187482904189470302905386817190093443462320150800175417387555651971745399539113536995497659776121030263426521597307178253820223726003119178529262885886642016772659637180673761503936989758265555758678234794381345803144426224948916309315081445941636631289692051399424170604540138467780436819300235979736521291752242471732909287074955225597028407138480761809881033296412100666431934090341757016282111701648541899587258953003721510831531099637276766154018597162400630503727100947620104371799157825797476448553820979028307270904867771997512692877346006452366415095188129134585344269399338355825323039741258905273374650678032570501416542932790628099553940810327489256791303002202973564568325030910866907581512842555257395174332538773518935076550315180182015087886417812700701097721884171680263007291516892069563259047169254060856413391820271282748925809274955819574133051172855471943194557680770558123129210727874886776305772159382631168028728470179445546864594656182519473646881279382035730894932934063808897539160540296328877702748014730772618176013963915693524278349084464909170578342146377954151831475532549231297142771607051808534706503588012696265032869671427203731635890271331025406675009246806266283825321473215351700037186446171434384828891949498267018696676150428923136396098824197990992698696397512683863643899989517180635861810687970390911356024342236382462706092154971937447235221882277690257891247435836740473673756309515190127707680325968925939828483687565792819411541910632298164458007137150638489264262042987499826574285503388119096116397655668201140347178289523382910364613094922168700168701890123764993540711397528256899743218296549814562084542846068749257803727952092372594020123946070779214354445462288577688486669177044450587382208006846361445303083425977982210041039549994523435357250718647077103968892231860860458308293397226345256596552545907226886501492057880606160389543841959060574925432468779835126472651317227619751342093919643169844783721957337292765511788849607196787746629782116283016061337308782306911330447032121769109118489053748696947410209780374763199811131417633832215182118807312359577473063350476279486038110028696620800595548009788827847667167894500876777296866939497695615402432356228272852053509465092780200817031851634644402238048175101442203696578319251538224017232498558863196068832198611031065249024358310230173940264177581636470343692368806582825597646978897076012021172103993145270776109570438551497981860982145797585584593568548021465171620388011151960686520488697141041417091327173185590174013904393601186859333545935303686305068387967044164040962510507625940296481835795230062760724065161852808267503006811634627137070144488405107676189951702519877341057510843434539459683868418540139467945624393048354128934659060193047890134506833739758691359242944857856990586408399916157168579705119053875884930898529627988612149842796434152796845781126302262077292315083677359152671298810410453551985784382768104028508272820620351312656938670195968914248512071161051042315266712323988384774706607199960900592875445282382220152304437612900465720230541609665744514122234553942054824698618734373455301203730938653867097955175751614384038225235892186231205400052610932666469345951697050186982879247056373779497813785612741585930978220721184364806278545724248251009026881133110391011260322044564785919098421481771511620737363875117085023628317740370715582417500716803317274864143332660118340404565603898934705388783650873437587412299982753748879539165665649299098856070905893780667783969694940602257431812774595647983434022262995756480172630998593065378510013735377500603139322350427038128896728662708629415536177471849315308712997833097275529055670354501872583865251738336388885675893278685437220559209716926550442062836107179916142878013527225514350608362864778660896213196601764371432581152443070845693731588861879983587115424617631995683451925056348606646837154078740146849255803782806381243267992284387776796334426111223792128448702608252289194170568466765112040700416072365354435997475579793393179131007815142937201087296716665574139955259370028441633630244485858747647596435299274919777117514175561632531579916563205915108130537430101163196888827313430627498229227914362836288816074156569550571303454273534099096499175806119642124157026942474920132323505739353335850994741203496179328809594932717828857843538217614892574981419366420934367928979237886774753443235561063748430230623199272291134704185254662501324979103362272311052966550271420551067080515861734675629200796337328748945103672676566574379623057981894978631154613687066033201845615804179099418350839521319567236083233092461823238998483627427666919588961762493214622434574215033309426332648255232722272288573771816057556580101183965180036084370070053716305661353609095095997577910898714431947676263267434129098599165058957026688148331743007477127321421034717152504349620560064740536733526886937828470414230976723127081333290529477981799215919566238817138124629876233491845038894470691594105027354061066879387207322005852098456699103404629531810961335193139785693483328837592927850781168272568988067027485203004390028247867395365870167352119126849052632481513102200809308724954829387110001822134258456141704516468325739316161194263579986531858427841569912015989904337267826495891774717569741930651442355646687272141827153958255539394991869582269400746382936032752013939335910385164874257372228798361008758706723236847415713092841865355173966498072247400614242980913774788800550328913173145889823814284129177077130723483911473850847235416330821383479411634843227710190886922323800810081988226346926578577030107850415544228239261329260163712612661785664699820986964748749559444040825579629101318913328928186021376590078851194464034344171303086860754457471288478618340304045139725344082847690643798294005873642575561042012873333784181593148680768212555418973580953330737103652470006320517136848834698386554283011198952514753499252793321247931994242195345471844638352131141159706912870478208212762977904702675354455431653807027118663120081937536014444489238132954920697052614665240645432279644163026332674443843609257409153704459993519119157153314429300198682517937147146124340656764130119640253128920279086163263364605738937685278680781543428496722635389012220233483821178059886822651162568191651801781984976468152754377661932601033940909956349144528146182823105780735877998379903241484265552656691780930841329276355851987816459069552905481630075084554880500573116038801459269431047114940231482715847205494341001808280421115263280528599473650305443695017586747459559545498518882778588206721523575185943740241005623256974060140050860123406615228234254888966510416267268981174434774171505185421389765792108227937505879906794873669699551892036333808580358400987887983789440646543104233410191321500918086767896892602132463387691331282177878237546010094151690045113034596017494671985189131275926660778095414276291608518056780082619913537373718899518983810388934128466574270236785810290045060562157256539845770710325209803248901322311967616835475533779284214715342758469517546280072304143146231901621956797243924969965267312885739205602409233703725387489800550402455599578551991015321626866912001690416740944050446288191440566587090673344057573585102768177395229315701017865022679279177461072124889885690767666038291358198949920811548169692374700260311324967130850023953562675704237978760613935136570235699468745698185862110906427291231426854136529172581836788775401447697227498005707628688142481504695171635331134104268427881697103766888912279085832087289017238865466169551946781273631688648994490589011881563896764404852216232225554180407082409221118119044827961593084972914375647465890514725827690849244819241712351363345676540723630073687089399930873654603540154201154519555150992016492035238360633816624175377716429895242371370748170820433693623174417874729927241324506065691165514718330680683366611982348168682261801004604221040432107972668229408991936204987612510784708261585187485028588434839762872544906582571798777578706613147859862118019828927008389865063209572574893123638633019736773805511189151555392253935676499930541810085712551249286603538380489579972523004096186089913112085936227109077701434903663663171757020127473563893139999766931228773604375059827898428949759500511325755277454982652068078890822546703526137534478820402049920877056770524368711337047319440030101501476004836758705901929868044376582864766468768705588322086671125923061105084406770645969304070444678616263396210065568795138909070404032948266031550488614389567325880089478395111832147557047083738314771624681648217696612550901970825127657540449731196957764714466992741889050143675907367324618574015207342530914532585397293856966198796486086583307986509486232992806083374694238541368990188233419733448227187679827867354688143032753645580915063307842762742837997766923653996117038357189058160444805528637129473786320433211949927145088886879206165196681722956218034911112183741130263987047351668727312927523129101166283734267745222865914030984583768753860053206254476827878159772675429966597951013991737464571875021361973895933719028217823741869369274324103166289034839190611593170620246096587129691419775191188181276784953795077754958252852553933854829403360335658867858934477561291060033123669981742206159123817291906675496030946003955748413033825121059778934942904530630134394725200510603247198678300720780580300321107845555909537050415977945788105711812608227540770656217858819417585567295194872680131507595024983936885342128186901622944465660739635554144164788517130356896589445822079001410122146537425350633268288618716870200494169068021838349128008407660212550698693216145540484749568770042366789072018527109978932050600520441564052412020814935695750867683959036482180690861542794269302992685264537514337676608276016018442292772444361335693454585240661409710491746186030570026155819704729837084454605935093688554585543980292527433212304148176317693740132385694490281545016627299160275705039497664019574900069230560742739722588562228851326450505706896064171929496536507626459140811549991904746382623184626660541989828015369404233398327049408554059335449235001802846980390636847688558148177394122844706062975204349837751508049575399017045816680126073543579721725048621971908446136101022414031306940522884143174855447037769025896203334135645899740081090894933529587898477165978362578688338182812559031144533700181035829041735610868373610501564609511910898596330742067409920144877493663715835375297897967009099360658169538472466081652054299198033030048725639679202296545774485836696870712697875650130899429850350338398922101640382075325253257830144935639014566030183127244157236051384912636471714346599629340452143319307320043104648069450652555465548963731593270008816178259365113374347466676236985299126978324640509351412674336654510324041166708418477076763984448359255533958851506003106993683138362766645911487185841244445949449840537076913219981277053880625049432405806999668282782795934426021115590412486778407004791423333603573746869055366666577068646115978681880277031828531873418756191587289970046610780828530130604303201739730302758802751441994338673154390783824173633384488540000331519873758763319679221099664723303225788565883567815440148594782068660984735249387003991450312959462511855457764439576028370961759416569709886004782021542638801329373304405156434295895189020882288778201215892406710353877280238374944388666894128464563103381056972251331191786519388757839002464900186865285415270282980671005657816710969853275480630996639142788895040097084462451086397233050890265860819099831286131789264116607777530209676541113126657477828554737797775464078449509570237169191262203859944413547009826725375976660297670417139272917206804295821118671242193572965659186122564189637092058304202470278058719599341218634422796630161914528858976940516142585218947897896192637038346306980916336208542225356572609015753379703581700249147027150040101163673513996403429910314301543528695351201355714627116393621066097763034382636394463858958472762742635573811905029454313753852839924976398307395498891092052986348215609658967678509318216654473087860602349647333600863255374617625576044257952902369016000377628299398683836266132085268283313126329610830829875695205462775013433984750626668262697288040479230419074538996598719799780269704100674201646170654184257382055845148998568447022560056573562594267343685778554129823275798169760211021816291368629060240795215907242748697643793143696338382265359165081949417366058428313483356796079105679533346090558669918453210269072093583243886745363142335239264152938404466143927623855040317604985131976176396872579987715681940033134417428806992391623775535820159528175862749543661197316583540947069485737326848789890415383177038335763872655275141976019325123882864408469769338682831153021695647104650729501626880207831257008916748188041550389141137865657310914717024058184511350032077311361538684210502913466823040953766958491911566360799747545277463977980688705070272625999405133139724713128301316167593601049487193010497968008523172324463025190141819817489839199643921649218386490062536965862091665151561459043974689652041355363055009679393359756237067839558839848819538256649805674599938197014697711995157577443725471546310247485961373187502130771053716526652399205179026166983412641117051522546875930553878872841665535295683145571867935218706195431125718436292050468624459074860407345514587822919569690833774029891924891815174487666497522073017695424045878205741398779281950357528657540361373984499766156757048674972344285594099344420226828627677541916260507692375712699594549675696698389701797389892388681222755356719510411349676930879696221447686141375947218230584281338600743372529621677676442248396614360165798516856961047906674745027676009824267588479752419302808070053032834098422496050696226047264701150247423311412681225507408826910269452781069242214370849088664134554330623300336255362225544623875448910166239169551018622039728449607924133872347744517679575031570650891946219311431602389057156884295032116177652169300974252561074927335967392135256291732308528320539261947387450323169412044003397278557825633059807372779865808862545796066498666632900246963611078321447839160521730237877520280850824259544706585970625369165465966854652968267891498725385706192136440975677546846349411153241389225244935845734300805272312461797197297943949475834780966328819686120129944702270351676305044098984511964246350357506882657920450492374655499123082798424553488469924825546145665908633639540751882561056470498775293268395533117402686742108802561780387164562479870447437625278228606126393909002917277924187180484551587379214938890829197354668692553524137696306842826521866400662995267731080958790369836882771612683371134195945847722546647449051628164711479663460493308781177330492679332391766115501610041055833328165246234099062451325944887124142335837240029556820826339197294067820396290326737459497876223541349313475072627238279493427017820860249702841174118328494345657696784215366508752995002597415091396318645031168209207980601279481193633309239968075260783841402899308898203539226230639969187332568507918913872017733697821495331179267331479399710661806798305486007838095520801702581877823985282481536000662285979323186569292914508069025550912066238421401659074059788011662347228777644224654877870078662480677019205142627374706324955147954431034695544141754481256705306157823349238258340141154676158915287305282544908042768085655738268250791467362736355643140289296459545747015850651178242122208254001612439067700308430526430897470558136162896880880915173700515338184311908194699866243326026893012985792393026147835829289099770054061157447905078484827233886896471353647141389454644702067362942906131691293616938918207575217454268998950206911552454760064147670647169951628008403054341431200796070356746693294722815861947990150357374019340410687285860314873235796308353076076732103166235899950174451995049877274095979253319303914026286404797881852765984227132434596393771725706564648949933651346404313932387242565453679104308963324265843376289263666982970814624636564019022241794410164599303639279271241511862253418069251821309229568991592319288170733473244902462434215779833191978894545583920517757039768812554524148187485551850737888842187200947193099821434048385870394978628504012519736216046488550674578419142806068444121158533225121472652752395384345388178039266875439936718220473544730649792410276055831083887522397413019110188311678225787001949955538274569038746386457104326361151914275216951141335879497868865940835053468428875004588409234817966463239290546492696374725621160784115683536524220201910295873432017945920636786877856169425452100693458092565553049002026741947438766206850103989503678459478245338727857855915289943384286263325449413730764879002563848039163293187056584657999545725352999000155803423809469278090269332101859115621592465392791369095457126984703509839489191603819936746263039950326749568641077114888681248621055625276636025401283351562568115410898142762780591777379688695569066182255445438464813974781781015348957346524297684455872811789958904570161547507970888892598827375820835174364671721814109885715809967528894369586087674144565815806176126241423644993942925640622197214449905950783476253381563872845325007962852976033572313993169670328582768735559101220144680340624863393738970758691836344798355098604196152307905104095547931047263177298651194101377478274074285422785748439055729854433179895446409067095732656616333195769702048745613318651416510113779475034503502567293249753173078225857330649514180684209771807987108511674812952960075236485681536815009257370910434860280762855831066320316257297576453876997782924618166687850483611932724284400190135288118018160733387268780817482307595500738481952041504826542852146244948197887892923089403508945489141453889179372569940410939856116428736749077518574094780926063412198453499361688145023821060312789387910851913008425267500192780210243894427505251136936229041805290458066510809734141343550291093725055342033717156479912308441668160154946079499727145431471323045963556498755010128471221936504545243989656731362918644655507833173929669048241892935855156946184596708465716732542393792267679157527903023257214762577391947589285091881692204956747582666176780008389616311747545890272643314395841355801335529083498233765363553973892796490287603595741049831910949624145788626844879638361376136274656756526824744241665948850120549489101866998796714665222923416894507220464031379257248695133655950449964333709776982482857216076228058125981168418375773402135616984605536264532182662864615783297306658881377932453037220877696378872089039383782537004123540517284403529796280521648568458433912861054871104284520248331634588580299918846295112371476072645512087459149041590838306071699295165075388002571122653201028111013484736318847354180434728101993959106010795062882471749095921675894260157194756462527005067827474202102980544488506324326646211731698674733602290752683788323239400508617019389498216593655441446346744797509211381184787760573612908860565991990427550442078448088711605962542602888693320971435692690287631874014662449187286478339881180700034314743681083254869416594964819285357208251430474332718878902373774519785543264191314041059234899931531790536754975857616428405926136835232790975189199840024944651467245205543729531847357387688528494074570682779100543846619459051309383867993512038995759233989887102240353972118718923245065082542148101710579191434255814297437731582292915486323898852693555561911028996316210774203425728640463812824042293048600548811136244618535704100031221357484405504469356841122797869005834440477447775605420297466257326327900354217967952350005182963404141247164094664863863289690726999949692036310894191370392087556486934390863784805386950228904266716334008481263406428713382415024502252148630402996958230681535767317636806333112238933967759423337382383152573752087905405786503578748927695874870871863257520940063305901197106882105525152510694837306409056978496156355088927056676526845089132538749908448587860014819038543913851197540443613146498683736048223896396150438405968933330088154469042994285815014542354115548176250532085692562666153331301729194255592326491565323502285603964692814729395528652014487400572904081308574737997325073716046234522647199415613233677475795724682624568370553996055597556039637209920002727591632775728851693733683637602204418236392398844475017648049427381708270245085515046376576885875507701656014143600330617886925050468595855670436494618558965209284481801427714988789486092483000218500377131499226607171098195815658311114323824651894583492066389584478336613563993640021386328660963623631107550234495441354969494711636787462005189538766100156481564336563393213736208236814692684799330115148397164026623863972186511239754194813216045886510236342170509495289902654103962582096049763319489152890808924193024370448497533852531481242022349356836777499754821964584837210966886818384159767807020609158183375536451176315110421749141780051109829516123102506892505553195099535564009832265382032542467564618189799592051407515076856307505030547421342125035805553242944016812758844188325633441906106422231788278767417059991279505167325752366587074729621203926042700646757106942548013107616664652534089344759848694958790052923340508049979475552128974543693228866658566713571294553790742582892662817326158276383761966901921915839214291746274375161784283801606002963173175634716752125724135588927085281783626829702820763927180587871467869126687386042862326013974454044464508127921276213067219519124684643789699734958900963543417489911429683984254817280604407015855781911846766498502291957302722700105249659967870705484036045070510358971923508562525907784961273698818414333380521341300040929104108178403068692472350779042177000519966960970838139434482373134682892041699084788421555825598176259733628308144040285451383697113323722846392356181565727717553412291420984762589667632658660441158620433223182439275982339383786729916368455405101101724933027860813691252463265998808745296252004331668444624068527929056338371594321399267314832224775732830232526566383963695798609712059954039289429112495756420784865509869609250301439452714008212331903611853753302104636485970028988283252961809684428178578086519427423887012844166546735150536035540255597467908950566061694627961015920359713194550983808562838384085694434291531608809767852102798306502876557833678964020363689150894397820717674365951423082290528813913583477898964460556161045655525725682378987691706209186570947887149368367619430223279814061928460061053639456928206008932066604217345653317465636653940464259388173806455553519677630605846120642658704871333496738578950075341748252330461037578289173130961897909669499087192402677443829347761969248348875900477514352740171217911750004358430322004449647551186385288693616495316010581637075387410602479096506228642518513773675956115903725352081159747837217499737276725449378027304827324867104157823189253443117701594633987787120534465620133890127713250729212395570706277807759130800364053358885164074544510601402427414327363492834761022238560744079183551100074664651737805706267976238056739418780059712534924805338352829146329419695427925477371200606554105697742035103554302552613638461016795711770942901948370761815103846926059889712586774989763532448573169666226331150689151264377394082404959352355229431410903942531280199082046971686931779666973581748793810601076883111216581813412675310938191858097614422914576351535398312484656625487464337854890714201824827789870004923238503527075010985825801539926003925313524425882637735769100778257737732211662152163521172996642415790414524170720594372700577947257186211372258450457397705059621114326319225329174446573078100773473330435545597209134025633338224448467138719606316037666492103092812426915558784995613649426086580701568130745048167776026334651125100254441868476188275423428713715362290826389705659575000834548599552664000450423380898432238650632949409799641825030839368183993033354583688536069995627377122962219475533064803550890631220223099766754748646505099966785056822256217869222105512644535849424405430572198060319206674076099402574635215155633357237846190039706222950439113515892178445869593823998662182757212069082551499027582422573556663890143027028965621100885145260904428046472938382804552264921967028243453166419512431399424065547813135754114445137578898413268231672984467383939705026686239655642469014815892996026195925194650004774613821409948267206323887147796257736321873655662784200183785046829132700819851104465535771214130649329826912301008424223326663917475238810489022141957419468390599782772769776671887403825883240673490306907227664954041664047027111199230809638065485678394218251528930454914503804604812713442337134819298336920621707462413323489536039116732241162183951937518675709440690508885851600109733463105642262463263900357442243350577655793234048343117359505504589007439814031592659252891236570586752830278196319556687194800102130017132012465654812391451004504415962920702003907393857066521130350589613327102384476287884519251552199465202086279531393805277337863958722570925224988968972201732755308006018125630828690456691790545386851393454130687069316582083937515464448453208240775749903967053823514645908120670136262760422112626400742235166846844794942846699735969503618115871544049152857286619214853748320025687590100384579497823727103475980353596147228167418229133794615390704862962080951334253897068037581808254928116923888535814874842354621484797425602069281037216052619744876827952108809425836494400124689396474860420712559570864425338483390229651081564957767457776374548883635176309641832433764821002132489029019299065002952059979938912052019887401154293121110200358143544135012717543221215006706006776146853748434113427505871930614774230378508336508911946032828037374469216942105430495038655099050874656469758555696703388875086450709745139830404470166392932690627129526715631965803418426423780951039309259468404534003640460474958637160845537499849070675271502871435341315800687648011062824306390705760066846332177341321452181078122328567293318774257101377253314471810843647083833848833012951001095957424871855948604102837822695887986199507046865792555696100466845124481803068047471731910883983651099523047487165240624978188797227957112038551975657495841995292010212006549237658391585359709946987665601941121600624731562230791593707962466498548313227538298815308098271751115231550240068437125693580869463347507107660854999409255107143736450719318835438447012036878720603805484858393898801127065975617912093293125659851205322377337341818018621828807750375679548179683129311904478388604374191732619116080231071542662585449170540561885870516747009057994435722039888350300573813720692029034283159593730030426075034322820576463095432036447285635442859107674713056787009761622684845396290218396467301678446954963124802142668131918281876963217290615967837031269758182949667347398190064224731072011867616012972615497909082949021689795036506164152769879933414867618030710807979926366134047364889640005705190682840326023609069614167803488046062717140948291522668357270631178169103693376822003334577465946510186652872803776167411167015461086037407748502133913896919794854391421372143317699255814524970414227108579343566689635276811715664889020335800363445270177734723005317861113599504493691673492801127554679373321695854060722865395479229490529167218583583668799972358616750030412796260676856508584352285193747505145064337290830230117146065827560551183382238952811160229814096712040451002218368562284915219945298675089076038735399417879802177462478979209637418592817500201068639994857663502885054077144973302206230593061809262246601468798142122943316806805263207022554229619969085863576036021945412112794172693699033503331282463428608177078499118277456225282248674989839891070385749508267384529828149656729187700538092985854773189525369502996024950291272795181935132647698038455590108665759381154571040811459614201838805201317520256026860491260848048111305000831486482038697129021502934587324337306274780685745341060240877654108170899849722268306190185780835353297187700874773494165903097382341698052220135977457675342543824654470580498669816632122937148017571870710611696197239993378965419738133375410487845590533982171496433779024495616398573208499170974939371571112603736078074378907444733285197738139741297038210180607304889146530140097209540570437939880116451350470500999255308819533877058235889845037500451205495248944150786792799545066078991859147396361006253317193300151702874381249432429885065514995080284227972206062043131231776094642871470814809528676465548901070234687408033981244688486370491965622942449994751721834122300658295488901766859478735390519704829375423923140304749135664692505174886940604148753361586959227426717507243474742088282350319896332159004767641992965195831213912267117071415892990437281048380964287497153026739453939778583467314861232639201855669856463737277924853396553187919491943325675887935267550431428562222285711417934412077448643971536234283030092034854000816211424013323710018567621496175351438233528727795549775489950457511702201217804319379075405083643690853396665202168896245694383095839113512601344270064947250365381422762384887902301084186048453130326157315654667819269702119581151249957520344968157220708568178592552974334141062423509505716312554698561742304970889399825684940195721029035086104738769016440928773640695753236207423497643392251588401728794577369342386745796462825217991179183358045832505799332971371545236575198737474755417608407596759119678579032741006386554776401422286232666559578348228980321848308428093261560990159911195039665040833730091050551713842273010885281879293701075654365148290887933272209146771621583633710151194571606914685927384437156324416587735541867189820372085672125976974658970483697718951840098922791138926213754665390013096893468231396119966020023412383997036782645698135955724575425405472247394767324890846793156522535429427099102098109743776548838676651210835356465195810698242690207083450176272036437374282710070404054804847754077932397183720613921687779597993960601283206098655072138013931716729922136215665975838930658014514021128325907704566078596205787322504384638850697401390165388315408231273539128704385222648353486742721950588837410607080448222213637598666009187400978903053961841641295611186949682283371531469106246730272372815606397969882694397313149759499790423151209891352850479478901572062810379677734664900804267396245055596482809809821233758951541376095632014329479077360904812345712213879212870921333410409574040341226729887360000113281851476629918305293765684462316842179587887362663070676234100712526548950576834829511240165014500512127498019020743090869158373461655079835029581760725679855307948179286959370942961757707629587873378349388024126360695704388908062055232382342181893799183880969552675756253380539815684928336053956013655338383014466001211053756314669067290903665484506085739920047975030459231754507001755212279812861715308769339910852890451109964036339595274316586222161136901566100106415047217676206551587891099843949425162908979424105945341360084665790425446044137184492149904339424157564755243617472413530289264168847122644573824779117370371553645017741218467816771198247357886309207625364912045612058659002867754778469023989946963342383243605181293286762524548208473472395224324423588530856994111919369968315601870230716509095298673685397997946265512052486715244748218864747535807306431405974691664251540115425691202616248351640034253856217499038704585791450609101536247941566738301822276368096716431379044133121065362176540760324527366477149449161251071536460042179393037033218690190268313518470435341271138236423056179072096738007563211767069398533986776629831653847266353490718522622084457027109681217971655485645062925246494587359045260858655801734259634346015393003346623989072375565090160122331325348367583692951241805706110607210390009373353285012438902544376126582332035969707050960053704572046215132532876510980535525149683265320340794345180655133131340574690334511666655454741618177827693013137468421713853331545137571995615296611729003155851994782495103583910847274245076524309736196923154621795056856118957617349623643682884414725041989745815130597616365380533124669323867980219651993392190951428781563732168405007152659853249626405402443907396561858322202819282636443225792916301981200545648460467424342327812647454518561960429950917742426009236577846015842126223071668111960947714361217951628557879166290866544609305309493989581760577901280544349896030690846934007591466883171013347904106827282150497494858659671192318682845995510035447372427072498597005046522585837516482601977399823245436208476752467158642305395309765921729289701487091399298933192537748102643212767615803411144826130278114143626654027319355152098455579453930070229715442568663884480461000553721799175284875114457855224358255280149594469151381746228447503740048696079754997968351137472603215584877863037813706815667881669023903470451927713222198560773140033938109129358489961326244721884695660552076983128031753366905041882348405513442993615248691172670181900862437979139913214608070586416269215737887875759291974742667891959241466896312779877877839309615677427882874707603273132467728377617685221323574217512310122197041506847969156005385488043923438464680481764628215184096675554322483882736568259065429006379745445850897365217229911540698811994739710819143786157872269153495297185239161855766093262384277958157832563889568179453282644068057877802755686311977115870013130234791891987974799274844912587531619025728370268581396411326047423091116876985414025111951948946810245281483563173774913306896910601469446068480411641954081389371767302473294186478863212611013386780719612505923397668991830306322341194145138755531695037126662413933871709409099147497312736928175830169663746576198611507824059881908233971879502210153882123309038040286861043005862888889093620446333372601223761474407713577055234812766346698046064825303866696849403165602648327061797325897332453130161159901983268859008737009128843220582685744169294549491607514707499727351328733902369717935480924895037969780397242252130332099896664833107191362284271359760094088329864238626547794024951354871203928608984348059436204478476686264545513657951978095573889514925189114682765640679509341356511593491507801011323715217649246137265136795293155851869452277790221207529709075613940743918664007883428067950912121079856022681676160992194069655451946758779718510188705843616313590267120151213121709203625556535839146707963227355485555101930411623294382263500131583687737527461855273805533772981801023919076131495872837101996397684728372458276841374951798071184634604659688902137838259540383894741650389780086763273799173047148956063332141021029778348371271197999064782849402088250873648969882406035990293770146989734449418650013317156289639853625077277527315754387347051260015224645134832218419268139930240412172497229560087108797352293116676961964056736576402350158966401008957944842623808397735180216793594049955595300301591120782744587751933388142077601549151113635047657565644081017248246701191099705545171465452434982056557268811535434573345647489941650731080819347796541539263704296610468316452557605583790343802266713132585989165535929492064475008864150055362852727350885865934091857031907825529688040402592322631055301472497573317286319963955787802759269414423548135143249458550943733190653068557629107969236197501133226957686352323697092285001493281291466273222094373200470059697247835932855001757903269304919027367026431428509833969899998875836036132355120478462120469627398529258167856085975749350860201217827711028934919929288906206365364178874808470488412083074809418991121691279999810764277008554852649424898711837303316872322870105565683240532231440817011683338351165854393165223490392539623079210439251964101273611823677927826007699277022234418726430096024241790132019624384904608817088177454780212287995448597434159491663789029769536431110182693825935681640956748819211598791541681795541732680225043600982312469484355589062687478609185335276262616758052619463829086154094731928934194321023290264848078562795759209236308992089927083831895933651747117963921987999212048984914144772714764847760357845661433815492850913977140082028143150383686836584100023789349485963267062521064412941637486394690556893318953177336169788234035966919627067961984678768768515535873742920253096725531731205623916565138377540485549578975766201022797491617180552805622498109607022009344923502030050937671247503943824704244883130384280010732760250375449178843472087692722728608084608869464104088870539052632306991970909296657953699164885730965533585383454186428267698539988274570868677287325308464973161223836461421627852927699179689061620157408181142104854655864637748630488314688373463429709290258646897407889436524329304508484674542438517993790441425886508889537318814355786528078835293970337416932365483292748411150382053507343793633926501510683240570636052099615648814913179863309885767673497133724799380287183618363162681162902798186873412800716915616049613698449288650011775193007134794480653811831017679361145022712989992238078249799315662955462849368060187819254288164359829762627526786161213694249582934443749383045701840579367446341475327604833493750774611914584309273950967478811336164931588491784519614194241440751452102725528987142176140118767131300711871170777150741095629324336823705272511220434276953787746754235578794611108980855962621031415136155194575496017032479369998541571612973326472774398937655956840560742698849849815496395529997853751451984228579415350446019589783250950189222836975238502455241284553700822891158628243560553997579948620570155425253926421636999231548025649397601071577467515591019342478832989802674499650817888890001363895933246407399634438766076935350743315487020113957163901405423008949179132345203177089143461991334696214938141821051576611494788580183503925263424943909431151602409996220423869137681453367193066076225152062945734347703915073846380984305097151203207550033202913063100164830460770548474630114797059058972731430665022323646145611646450751222013048464169686901301918460552360402075730846330343952697684959649323909936505819339361334391710893549501973399681118315672778674963098560144696040624032837628500955101324999014214049839831621791428001037492039383657151435722060269526485807722652236347450283317837009374910605523645426215550482807999485783483181081193115002208116610692080258888808484662349862268482341799588320105888043950452125404764443382278349719227675104757957498090142962772373139308065206786128623658777784545908137359441506644686213473373688846457960823439380232612320044267091143552452025432376179150938852811701177205796830917930535142594091985952538060950514776488819804232126359005481719177844479554334762692406249841634199533356594449668918352777450538494745557225915311141202894584566557060525076548065426721256920345904860412022073534670555096076917289310919562446312421587723721362167545849564969177003351685197661323892245626767085129345875090098886085215089743689030937594663953783584647264585191013748699186474087737004190341889829909538456363511974662283060768691882993739269009673486377407626354621905821474844878142160848223399046935975466254501904288543273798008249759015466456226595755769804320460604976041391406478808777565121050322826950281282047055747195791005268922034221702925096533310060127974104592302680176563951908194680568456401586851388831024696017386660068900758747898301153496774972173004891973733898036674704355435224782057680557153262441774622951935581304447506900593267470684007047801573525208170764304938168585040750043329241473992949465813420121177391236995968631225643679114887602718283032972448909485948807356517956512964112554313600381103280459595608072553002432081643644886074787706375885048973881810196725553567485687839077301431964827206762057159405687481183830832798731725618045840801250688729079464889316672491587567404899422819181955413141004130138660239933312413932755244596433218021301281149452087749138688054774964643391413789758102828467548034677673826639369313700402692293544783356630513235975954352961390802468566553699493578835606976049964211430239552739049565356878012221753735861601108684787492027888523946696548042165060648079181557767785419128399426273568596705369038372407346702684021106984662975662551747125961131245549510698274332735534627332642297962602552111560008190422426240483536006744769578245675252959910942488466198205149291117863889339424484364772745940428174793793399064189395933092060580025097330760411384415958932082232751731587965175249266058597965707666979420973059111875137836658242066292039131181877523325165602733887575305924223714264345707481939415439380967238844077029057131267753330209115919640501847835978529769583635848086569167100971668531194915290736467866694887143568455577548270606387415651128569587913011903705823058414692768780943947016893153186119725095921293013664138932005283161275603178425056444385815740236483655449554567029043793467706094375813461998844188934626874452580580555616709069766481671532868786066659942264585392215803073882376377854153528312032810879547301174589280677414854952423232167381627144053981581283780183644648044407125811484060835967970967077304244054207122885466612583537358606683001542482547151982563444049995640661289046861910229064256628761266863770821231661561243379807649314907116493373946945588796873673896647472720348266220202801566708004906195840113517832535314341608947225293130587966673545531618907396967530496620390660728303158744368533444259666011859069456892855721543276522842531231571942965582105704632725996252157904264378070133271204482436263768861304140368834909361040957571136716183122337389701763019247703553475229577273991181014510871599209508036446924025805253226178344826669686530509789351868210707083151205729690177468030628253932211807159301093343667795003373785309308504671596509185302556109624349085127126957046839219109204825443946331425328916392389948361174321552729623287559488531901804769848109117216990904226583437040584177477577890235731584328274566985448924972314808945121432930834574754443127027652485784132405031337108797459133189106266826081508983961601186412864365480905181776315809596684509218747545560701930605858397153999411879959195024396862837221034947075447194337775035060686928698983271993220891096845180487163153364341685826129331385871617274094254154949158295812033137780518052149444310894378747687873099595590905620029189121335211961043996196857998816917827943339572806164772786862263074305975610946010894896514402063118588794558099925805678452565950693465400230188758995862894116198251671060967246573232967254336211216655530021031661388468023640376573327767129515511737937270242687358512386800146955266751345732874591526988348261133178399899806220262937410344353831310448823029407367567625688827561750925270614551272150894460167334236081239329322006010548106618438538417982041756604796838691065027617418911313585474529660099079095217537210000641755724813497881178071507777453137472357018154879064355387926678337932314584592929556206359850603174035266231143326339671691782452584140443463374424403280114068594528054807107019314572630660657370298850603357161625981787401464455319442088031132696814257609084850988887534333016841235373542674996498838613180723884349202507802630902488496101412670377627410279613207033933837962654112204045610371002427827659766449583251246078437477941347127141832659726825826006304186611625250140436724042325286056304965384047761228452594892096662263813630752275360125678045768683507959037305768839997433977176225250204235533644257988176645531490377102891871120105785308869683620778739533942980988907116290410445368812948786174785615229795480352172195302210657770139285368921513264168758295928473597676463720405024428491245405914539054659467383282818144542817250589592569974980403252295910918046857875589509352799478334727747754576657722250006608852725320628563213715940905491018306427024929255896607756566994705566794108201857977802748917513344158008969134340595432114346754170880602786141447848023906898331828694210629389637252750855130149940125697324171833648569410486070958942851292187419304956067811965851542774515976208605624825526479449299214840707695817288189887220724220919478103323975059712203669374599313154211046674217033288387076063530084986073957314713820935887614989695182728757902436835295150064293710122190977611823118434399993044501255973175346135196482530287224279752857476654339749217908346939370992928880030581312767712645953249579443675047202997098577070847763105790466350243021056336431999605771436229910782252265075313364059876005896688994483967878839038928257253802327745134647126113324918284748916103861865646472337238080138114363245098178220371466831780501947038432232668251038049197223643886398931574036806596662747517455111375970506514546508376018350321336835757477792708857803537815927632852653712824424303945129365752555804962861970021566278211120342770155690901875533383737392556609718932507674049504107720196229888539035877242339952948687241324234238745796620230482321618476951886872704659228609620153408147189409669002233763634212535646055912189291753560579828786406666770853627376074462411685660832638878330327490496984511955225813785590060343347678585071417115530933043872382420417889274914793665486865206666068114684905537520651383549495975348068047956321392788316077757578349376088540362363993055039415913842685518851212001954182473510885263769179763021700006724102018238354582347917948860002584051361499750968568257430400390380008894310961758172367291179552183278638269951732346816094235366481358048517726941650436681904949232665846611029070074432464355851014229859333838864572151943537882698784648748216974430629166109122541007297016507777451368038755141648946850236810220503734153810060915115060676313802975705302440722098615006912650459427961663382382742964184975338949160945354616760836523386522274758027131352172821042646985018844649798549700012635754010787655948283248082553422009153526606314045081104025286064628196420804392043836154106968979678386500691452960900228075472541600199967573131426006369173783805194225195782086509489947777149470355097864782046560593096951789984324904477115554568052933979144906585656504609055460422271252149864363129263486097194923145715664807346317853534535243337354687305062842966843647048482915069478208690666144796282514501551580811198480603297031084361615960469908200391251713423091609212478648839649912778809793531649217565414405105816041319821888475384084512970721527384480604343859073768793700993428221465793288443486909336701827940250243611673747838629162170000931435903139576319842983807595277115294077741941425273394024692047908034936043672425325845022434456497309017529494323247080581322655118367579717528437977835501073616017714635119634447172831975354149617116368358383496615773756148426856449059383049931785503721543835032230572195133122941522221734954232683454997652924343446227455919498759247547562196529217258070682498497123121505933341243818482229064866521921882881858034575993898452908137012391531400432677979357049090906153958250224349044994048842525462699490075085500373760058612984747985724457020490373844501121020851667152236574655712399702108840678846975991099384855245065015187653467516843029287686085341333853962977382346502069729810430724654384346332438992381414938834401781380809233601966004728518522113916836244856245543081928385949706872828277933338835125079055594909970305766601898130241093346047659515274565975555978886586821995705465044746266527080606413645784615004531470581743840035998039871768722918833602519818859249365670722077138492257484798787548902503982838058345220998874919584260724411688894573579967991734454703932562833407004647702708859815051196619799575308655802363393966254822117816193550579392557240257711715023427205125397207589828754750539063998100515614262684948723259029139556313203663820956985034650117374901092211412843162711154675147039101479030828576503756316454796944353579912535559366802589395078889190608873388176741280782010257221522216114295978767203749326790158065452742227621822081416831364647328290426809431705603198948275859560023097041587045340854908695522239101101944913844577486142629091681428902418763612131150469293072213059347366000818615878730335545832186838116011162827703547929084178349994334808444225046204022960225415259229336773461019055995718743982687210983369153533050986308588459485275634790477482587258310414033152416991097717462556725196503296261794004124642552381089069238848298456058967440504726783898852739899941429295736787895267200548009889212136519748948020521861448222944121756917603649632184180658245396444177610769368225702441277441336436547902114410692895311262567722420142328854448377904071430978237745295676917470151714502292037718794476962100326111064227391759539929448689151543641430095586172457228992251921556821980398321149809343630342466806778839583142823604420847689916694352947649553986172918027867633390336397271827752748434916639337322487904187860357049334326257829070400263988415237676427490853013946320701403280277538211767654304073455800026718746897491631097566781275390719231207082632488136782172984906665603164428532961958113986065577320941534223908816804183947078240107237912619748165709825222070799812767049673236169517334640142859167776944079716944066954977527203696618195462398801924252083653535556468622538978044714874357503914442513455000260227694296151812337012374644179451843139633249648072439638183723721556558132470989727620143570679824687045551489403630927583223897235051481112797742206802563518020802015006782256934492712915502110525340739443389433667385900191395470051109913519209511345296197846827983535849202744523490217946350071359188848556349435729738570251733386658694232456508350609621836650563647006691016223234639786094050021728566190488512694510009366721738029538517843981645390111240309455649884563854702786316279925097473735927350698071621702862154317875477806151405109084811571008520020789839738674322567834610557560875620949237665655398718299335689701416110877937371034421184205986546702916694872244539040891413126273918819337469893898119150836752451460393773224336334466033913025554213827726831233985914583124109525262193445993221167181294460977245953723248741695931763020437483248989790801508659919777905821777768405964329935130629293633620867116960081173493002956426869568260997525191017644303903925813664732367524758736119838308164872944331059280766176831840452911765968110294859593248964740332901647495871257443091697876613610460124714111682121412263954227448204069598575601752405369293497601236728806959244900220002329972031722025313147254210553710793375494903838751564323118028185103439930709380544799383358253411592249950343860599442337011757753139582427757192591044009585393939957460824510958449127348092639259404949685734024116503190382894074755437630954531483405254958811207536008653676410775121240199922050121820194336186830085858863883990430611618643162395876605485582006290206126236568708048683667233929657994693109862573815464673849523868690843935597619787673040874957023998169124560615499214514219777181307642347011568253185794650512174251980597595080814997330309616398830320236439620419986607502880323080172602296561272245949352153279028049670564948259787426251129191179497946119414698243379868113572425624210602263489664414573692413568534803294460056337583171704751908957492121321800287844757066290349708947542654827854578817108560267774482178902338155093089467478396183495215766277822926405699720751317943018003705147625614015963776786140483425197855782195532755348331832280062943067947924695920264885361376524554552107816691712636199080178061223440798799439109737204860170947877539645030981207639167681235978374912291936707698768495702427477635962849734524230897221722329064643242092250077762557641905427824249211796713159956077673935334314107204975921086534566426765099376965878062823904185785331261228343694040409129193614622877542055074450418687675455616113239664245072023123777886247902708761503597605072618571808219560288702379644222999887775694627842575846341106147279131837467877968643486710524831855976019448692523617324716748527901405645235584162711441393551528687659511543909889971784471221135711579233735536798733199742536753678478374613980800464213702769188130615708738695766236815187691328434439201886526020511747586905764209708421297739274114775635919091450549729232132774833991425637548269932666822978935962136343884687136579072341540043280562674115710830907454235364352391704808217825433730550981205746113668124200528487002301877086031527150953581083973698187204927134999895466202868567919681403385083649426893391571372421380232523712864203313284507996776625317117804049015532819311256332237591421978999406643729998501531755803747171222952569753446827873563474645109214225886117254934788904674422120588207443196554865067549056917552378945704273699723714283213418130407177124350920904383662176750765919426790873821691886248069191974169003332323358871690100269081474076785608914083091200185230176572102999427906101894782581306601310368274244668511738245485665358007357009294344178800871727419304265317771348869333960954586986671955644033026688761300810777719596795432915101864078501218338345652240511764724394431970933787443475585310885957536236897656135213749218024378836365608745859253459192155650714305667979655998491958944495945551587794311742654102703360968359259284791079720830998792314523433293310924985825562379801796949772715945256314365187173350187509646735321553549488470357642678500458045519560594874970600022737821167994066270930734335280860287574554515986402255823659581520475038448955506663674362064814860245346772781757223552400304554713138994859502592762954211145232668429750130253820647098379579370029692331164869531039966108942556587125011332892582184105565109896443336319159441284881491054170035894975853876755928108590328650110174895228185221752149751510381273236577091057788200550739576613440702844071375954388876531569060214223885164039684339598207264765627746419738314165456527113491548558243050225155616070299969503822484569982617576417629372239165327672124024854945148268908569834483050167384124388927877153085729415953617487984536651353123082461590207147650027041818076908975347339434847844592632112834694444106277109686571517624569331001855433571423802963286784513746295319580726988408805782200439399002757789680922743648852570487698225345334110001517119688628491010291039156662990096799866608176751741002539914752411271311817109115288442360918908796469586695503285806311075735696462177398463983058110530347887905473890754791742938332235794172243028687889078437526916255222775500921389108837015310722169603848728635114817733341123315800956332393908906492141625854723586904019737120371279159590668506721784747841417831143801303524453492099460072224968624112454720830208780178383230759818817505985734007003484557091523491955636022395730862541404480967570871270926051985857230758830628906616761898084773643592521399636166183370333741776518414685208112872794196930282295448275349816027753307081421885068427571440596701796756572149532297493779162634647231389535502457417492377272736911328455172335370487447642082888824985591396325904633913304719075907704056303504634181299440047325144685087867042154620408154295229371815412140085478059197426353895276130837627394174553739834416054414582092655714859854972431952118377056882489024421812147377950056720169967129358880097273336808940227261256547757503279925307577024475081809157320196453541123557976610845401641352715074787997109004728299396606407505117695143544979712898768271630179248021170380646326394880978720392838193516049402485732064395122023884116492326959863796424020011632468413678244157458777296322819763628132471183372246854065333066240428404073189527023512850412367788673292930427114267308468276759734268908025332193358155181447187990792902780332830165726343831211350900990308812197871425871050413151230730397199691081588097785120847587796260418686870294322460289371579052954135460335513578163812499382135759630342599462639352149928401145296121098594534990295606736220424425003531685347085699183748633739877087496290589557197518015446297410963238487420839325411607270305512766961157534901656276697167080476812976166026596464257092744585814661309931087661970714722413195920363681454148931252519483438717393646094159771200037877859428596881996843621165626629638951665741124382126578788146530684909124632686132880165666349071322899094051642231545180211539521381857388528621010451121642565572906923182353849574961093166905862432569893018558381289083979116017584669985174635265313646637743934902733571037743628399158467756877085350395493184430185354406866087866221221175740984723076864084128741819011734822086477952800392744226373803294525374917945346180760540320331428084069132002007024071814602627155602901199961462345459350593505873676998974177321408564600006337843656759443727927305768066897793462497833964328495664240501577470263120609893776108651204307966241145310945505262879617548719140701243925509002658847410782849981961896500223686080287108818531665470589273226647604183958619163961209966109225747258461739864163389862985856121762659176959299810928032342027934879482722495681767374035858382394793055798560351231734558721204115557499556707078039984413761040715902610347740652445478781569780493846919801184245782364510338794647505668426532103178424098352108313921601326014650007633061361876129186933809032990323219564584010285582686387896579976062463155587173696752744025134916855926103930417362758398338953056361302719343137164416226032982409975091548371228469763179098498887294297899989338837139595214841677900286247304321559109058700128809976807187177458599417344249234857128790960877235273227286510827438995860255004299234325071507425933052927323159714797142314443748900731895139812315695080697787150833301905859690753455448545550685145312309637551120518400783041234414447948011357841158447479741852939633327336041727298533312917288125373124095576235673570749738667559552773156587290978871797107464664077879351425388200817136393660595790070487269335646126667086821534194414036451026247713945749822212385825517176661361418200763096370791513790978242215304522589108008991007734897875859717399643169599891847389070471797926527509699850674008478079402225095316981102809222036501718041910382358168629130317546884090051776898248112768561198486224925136212410717205123935186245818299132768443661577776874410815785461116698563940615697079265515242467000464734036564229785809116829066202625256779406160165232394522753186712924786726206646593494825389087266816096450650425533164375693462185933597682396749510808009177008034044317967377730736841793987499116233874993808629943382963080832777175674651146521554449663952485161245591966461490210685859886519631575863400105905305777044539683009989805764076640507233143366335957639952585442896877554826195181080072647309259062588815807704481451225514395651482001624926066914064239354322924427339782000827433051858035934329390347536096004017334690505514707137131668499095726070441040178799978787080262175655726085279129625319091991762794547326961103669059991674956223691037631605901158262411708108850059573387226277494227239231546546599733497810023070264658717241309825091370982185209704400892058337841225341954266227935035225829840602105919424891976137043321793621800059422686281622960207010164026306916673948831601147075178619809052445726941644540624006314328826212798146136909714197241066882909255508657433851347927021383508990564634745037797639604019997916822770192499085956964460887449446333393108110092546076395419949119294191484467502534614184702878258262395130121336235780004532009730561306947529681923090510695134191921109658358434782618182341725433707310162245441078034900707294233037071094340937226424519312790983738065251378599761538806075597914641948050603932730199507936174653906913326563525325090003252316080329876338999620590771460034124972464540903915983553533744956592824323624814241124239581532540843513338318608740478307802813379093251996398999744358510865305406585701965353051817432328027890482498607923806528246594600539644413703099920424938482721744498620347436921554638041760282694406317930407345518680766457878136010554776764602784387202502431514395185802580262917171516311396193691280910397733736648544703547127161542830179399856799882072768683942750865863861373585113774734143823317341649872348137709794385328436315286776310846811668518861002401980177236800093777549669409058187964627258886019679825575845619616194800755926576436528866357022625004832273231239087935661269772454517099716389647664736306280309660603547454940925655281956919951484054230875494672718435592801410676166555312657694541702088863077922238578080023589804180508199887336565528858070000783111775258764165579623837605869128777575130406173328803505645966551093691569681469782667047859525723706321369596509705721653374626408589141102122519938885256320086045702841679779784593271321626930896920373040415345273758843273993831671027533185910355150290759097121756541122333986396361660861656597131922104942914351868272798450071734661807039601645182994739386718168086079734756253497328277528099757304140679211261956197695803149429013753730980333926870118651459625755400066430642565794183145766202597411967860452536116617108850354348347097082569784412801026397124062780691101828471831053066642351823148995529959706867215253078219012295852070506913524739268815385893731604510849104567567722722906126718413060301048143007157123289431368753044643422866164226200842332741675174272916459194684171181591379882984837297317959346638933673574789231503495753683232224792665496242045561279233534437345542276649119230783313471261755582358790130526151374706851532756760422330390436920264248497567943977210685980973388845087435439848309069748108225849712592318930231807685364131677644700391018974933584522384509687083743566928427957027474938284344816059106836953537936514593063920202004214489409423508481027643998864850117822866356724480571833199148931922473512914690030927740962490520262475609924076717688720852831173487926815560237895156140952200718515107214533161923245353619762844149835248581138598406518319328846063991969139963941753710559858207674587550260191960666280635715953612668514414842775937567633012228674976904805827586798828596764277438776523368629190750672847197900873038634840784798391906357106778582317822627615315339433334891463083713459355943100053161592711900766160550524348264297275669175427640453982817295322083610851750643418588728982601713174730845575661824256223253987630107545665366974446382991738369308520189610483774806869681822040935169014754586644610792935296196973323589653450425429837173055835054596712997239634196689652804220106713064111808278896665197046185886844743277465979890926525471429177826549905898135532475185205569379606067907827553779021029425781772113563521662584787424028458489254334130562498501187597717515923261176339823029716809814652708950506393894661676727327943717422651174953117303384011653629854144724723963785288810288217539558529368788448495958898815517566453813026919839963242695220903563572889487666952694232412409286314732763402104775987233173079644670969256947952153302683275451261286203813484276519178396599566255170142670104251787881850718836787257033020282393174115355170143860853406929236294137795013492347908564322482528496662362333213518778097131898903915889469929252048202933059844290890787114017752061221877450140982953182858609339466037642747692265248739114987237689617749464145260547491653799076756997276171962632439925388631960445076438983767540728992082324741838673156525428198041460903580012022180360369882937560049774473043668831031477308762241530384406242356388176129894152077694566143686265306518007295124614334506734792353858632146637745410613437648587498854946391906550455646423704674133808521010761380844608015058309741056983788491166902938296307802450184565688830884308822849055936887268576895043823781478586180255315763367390824655601378227564929806713333690869744344299115039866188535950324415595651679357375962912583107227162067971338513087190052560401218843716333063152725641555685437774130328808469005239368217591443345405249178311489741578737926315258177034936996193169658396191922250585182069154440362653893365177588236952653472793661219072956363415868005258286012609959188607865755525924550458415220700059261211063086228676353913602126393407544372703170219370448493543977951488475488567192447255750050284532234369901571387154540794637589196879977433329032810122893650006729926115855122186730359350218240383115666946783343595053608106925529901020848057088774837818285077638469565368246109860940537481120544900492478981346405578100600586332106800402766864978568136112578900557153939143398567078482113292704827994196537807070148292514795373626698337555787506281786881924669227825327653396186963414981002720599417273386363872349619256687503688292866460900315605428208181238822061566634296611279470460682761304507045666867334729009711177929798108560660816897421320274746230145613885942237081769172344691924411657610981678363516477860015065021767298987247827171918285513100052111639746843165645784661587939908147096342453606371166147160946011552279232910728386206288619794126745767645965446112319177783395591642699415328468673255211116803189781946428553336554805956555382056546270354166251552407701267861801223266381937536603172744077843328755057578517170727815200859042078090547349129657124638201690423894661882524319536447778165823919063503084164159219338974552636227362023189691048652361441636780443475369093783337300258888648307433815518837685251828098113729486064557863328467928708341808085939693819628001817398678965160804833841770626675819652432112545476382439454937760420649877372485074269644995643829814086581293515076774897871119195765366912458244165095967041154826643506692834819175739950535309791464744250110761022441501299296089914059058467036583872986686489901501175822549915567396435986254342977596996158205367192955030888900301745073678732361043422847922956970292740344357085608203635753779141873222880178648007227204330878694285047630010739280874372076958132323910416827765477760833463977131255333756267023302061021057266869776799625718971219447661971952669355195263763121623790126526993947134743423916058301264702490221480398850277399529032248432804338377784066709627704477335279541176513305647435044191573495634420819483490447325387956990140290979514726182833977752045734220968630271606581408818822826166665168757877548548793385962657311977472579665629564172620247695908534746204284846167735282106151580299362953197402708366621883512371089859408399149679467503585302552993176729525729011255502317850781764780018822214168156081043875191828686382522616898863986614355189268312638770279901450300765335546428203020135912346217492888860101396896684968807057630751581728346136036965758567510537907287040602809251614896008081200706950846416480645166344812293462456921102604399789866671012458323446140500935001342990420224198566420585720316170884429162797529326604888885658497125575936334009985172432848109490517183225699251244641336649934517610938577131845351801901593079985686970941877289164936234158880379351385032315346836330548561274198427995350350658364503195643956966509041154333916573101342414039304042388782824110038041999145285313036651839888216455933237137073369693120633664594035261546134350496932575283083673158871654757414449287138241882840209244080383261590444083968222218214772159001893235200056201230832824990957511583527730799129067218924774800443186904138829560142567747267658060315595357821249990024025071274167724794400765508746324737519601911730965961493635729636242801489172234763360819793091453492110962929738042728606161643400245203541039124696730855293304823842989656868962316940421959979129930678771305646307795586112814104587158729049379412352184424511119816386285601476514238602246777055893915990986974086100353965218246386812313857273568505629096295935072832143808528099330529307997059582854281316019789972502570491536149550733996781153974530201309759589609238887760201113050003515729076051761676067050388012506147343827860352482099803156256894579262685443965079417304259924352288599529438891354376659998691574148904724043728266285090148641990254703938635195318395600695090035648035319955496560337777427791556024233980935549338033300641302966981974672451193381198230104924529761340101947824030293432185816588174310552137890396457690594012487271150043436933201213710269161783719423850823860601955259971554219420765974331026669407546598682981128814072058355802546993442833922573686473237290200997149587587843892455419703982171003191443819858031297455852820175777989491737283812410250641042990761963121672631835583428187497035256461374589163287229862229215460860989992695281385434864993308082353504873331419972605169842103726993179495049180251807277422614176828126927882305744852393188929675611784692232282494518950428565585368887752015372000744119703868469228615629948270513916156982558260046545547720081361509624223035178880850935194343284352612417331824823356269788896569420464373578935823327359517363936516763562945196682807157831366862223878332209784521354545255406670159755274360571007878110658458932919512247907797901706139655550058688701409560904773547507254168376226010594576710130274389861309116504844196469939030121315058064455794125909415727846415837799632036298807080787134964519609467975864671142795060777480151187153310925036391511879195287026062876873570416085773951614571878567261407351274608237306809200695569664818750525630523889186908093842675410796329875706949532298221998401461146322824680135642584197734348014651797875676322039102245397452444034648599792983448057821741188635130082967666750488056955507813973571238495393916340542899497938958632958705132670027451027807481267116945749999380519510438477354638700523729014697020514962228060508943533891652282365765784553412970595423928111578212786487382502326611735598074983588527291172830191182717539892122439564714532514822003184476455101885163728578114407559569840762319438946572068843101027718799064331269301986625713179886876805615392705053129456297042291330334329590723955716173972841975074911974442888861550103185210296898168466321864138146702962907904440671137484438090956986787717055667379326891182783051185639909816298408576993112729781658487224851709332326847721513117734507509269026243747407603813301413351271450618147499387685906485715015689806881763942550323003809992530398222504808283656646305198778410110496006742578234912895782666140609171095885916685068376656512174355520406889633054358525201197628588537534124745886100099030235487482150779364699633502386278820132451103095591042915532740391296583569228104191601847867945452168223268098033629242879717274627930001459470080541215228132932253833104436627409929045306494997688811984285970058033150766440240955685262559814054581703710590215996653209104830043529166870328196259825617146228460529274126981050240745363645854484471500498606622912743387419000616512431761458173973952810791247997501333459296591550279046519250781716191111099658883497735801118119227586404699070526983166459552266594903238026432583732333600187325336206359289734363155067605698497808497962117813950368442974703027147952190228103949256361220347274858295727343696967782516849896152458155576754832760566086868452223758610676215021065445431880754232499466128023971979882519912183387558495195626031999013417150531366338357621484557301302656268842868109331461035227829563672575047049104675198368141761102280688820187521895513851755577670941773940487600513901057570884873399783456561260287013109682065270636742238817840693166292650236448497985960196288161543112666588431090796759788850988865809702607269198993686013998384396874458033442251247897552282839556888460057855197768343607435341613564508314161132017442272773256231134154390823093550888353774444835557739404554077162025975027891951599524016952576810081888440545109102202058101746987912649299476469650303247193620761655200442941259096323923485583130729914627588377288157795499160101665402132258426499135968286805295284292316215169136741074187644980737839350030701471570098937204765634949859637899219938844575854426761686029431344943643016325761191575197814211419078813501323085704562018095884274813225522220329645645980535395616471599531446092660389405100863362512333900105945669417614392200941695045143643783048002416532916562708100888472095110311902708608940978605751468106917110060682273627140334837162365296959473880835937038686290486279616621141956826242900398144927758925238769727280139918526772206451768181292546820159177419622970390185348984392638752373367753010475982622828626472846562094577489677342505343180055464465256856763267063619622878474998318336060885868860421640235245328890602172252037919330389897332738647488317245531499694006707335966320889925824669167528990098833294945248265786954453681230765159966624254294205717500153263549296870748029426792385831109673278094609768426119940145548919226030138801628495536371093736398150569453339157984892919774097088758578484513220921094239573504970851733756548632183107037698008587221192840514204837775790146885324688043998743158427921740707670271044649337778112595919266548730050034835259663848153850877299719963544588897095908275148723581452411996750541599559001987532552520958057419462131363017867393339380161987904003072119821549436496473081790462959217169207140810054971548980458891834819375891673839686164506240845079649433130527870023359427491429257982976860866271622297895254808771370686109763051925740500038921507533469352335579043593103909427134738510584701981124732876884545078137587478487754308642007750057352715979758450856655562137045332606126819469445301448383435693620019103033838906867678172310628265147533884161941152407015294441254434453055036462158364032245746039053969077307360543617424280185497769741571903028909246678072694186632213697279107660146363803780378281163376032997964948831335310886516346187390177278299639639472550299450781461927624564719145744031702045918086376367791678712483650311214410852278646179154379204360473994697819391382536700825727034974942161793853710461315555589633165103513740263425897084067187484132304012410346814716991860188065429520058389359432593030969272165668748796933862241754750589533065248901151826617939943353947126815725638555544135062546995693281348493581568779965553732938800302022323623900746307171869898738980256730554967244579541792247537236509323141595085493377927702436280043692644872497913692650812234448971474677029394981204512273273846909450414150702183558746370773145266341384370823040189866352639172777269499051520136786686293585011098923706211895177673836025157701274530801544761697402430310582976274240360440997742826079913830774261570214202120913439346955563981512107271668327318941942879078287953884032017381734216044705976666527755615200224929719434159928623178362993290746846074344847151258407286457599885843664263804198876795576493050572339941024196530756020318687641472681533018814085562413946042034766261647199002835323032221205617571637862684990468779666030783330579586669311064067003815944973975837152331856169871688760557033273986854729831591647165136384430668387523905630549811531908908412072923548653016139182877779133893729414864201996923626117879643450054187874227553498775777673941356234530925563819089172457818534931435046288522608432779620441720794431504000357834716495794321936315234846002411679417525056970306464085501297698780832703129463256845270745466455144902099403015346433921644313685773227620599808475072401391796458655766814402673036943671119267198589803420188575031480265433636617282283401478624054765048660844894047125454120499524106129774919073025745187038750678477304365053034866878128501887213194714730159042710900971176559896571875429685226667673960754842797904797205265378240149030517086835159841781571494397368042915017404379135668071968077388778925098238169458010276257999177081151826543876147573649394692842480790790643829268496836178187022830108024910939392874866174883507117027835377999896493244072857967970314871550994074434475404360292888013335791461851352590757297450311946171776776941225111046991479571778539974386898522257611060087819709527068864131647642013195272147501402672540357601204010353054092193331682354666522619076517851498055087485210338058347480711573294177268581126300281827904739935615564890815126656867701800686295349888474817347062585968109985342249248470844274809852281230192209458107786560508125910579850585855906620656423711213781065390402157843897781927082236775650080981121270556692551355537327967504120471290059327696670128881653651294394368498050463589987185124444035602508850547362014356008010540720142250025817659263961403548339268087409652948217207697802771832285017158311717518546281551168495407915874037469942268948174748616541663783321065499175873990785537691936290508577820504965713866476418085425977017213147294027966480074910339894442350223309411520817533104897152886005727673256282616337359328764835160723381134449750523371585467075897150814650249553278603554078797085308654375611905625488412894298471967718765188723468711274714690750035632015693443974722773372118610619092737738330103371952448571928135284941249660219551911860185768040930463370959133415747820497286123949198592948664832811151220543690800148607366497026262260513023319173728417601786842113034870117184179114003126066626194865318211803520119420396916533493906779444036210417241038890696344231244202959307850951256202724242588753903604527035098273450659485683415080324435859036557621310495675107567723546999688225499086905246253417503932651893975524445996170754328864983495684522493334511635677127761909064255159056792947916048706401217173334543808871774624653136228499323580951613440192411241691477333302893808400205155928726886886891054187393787418134797728669037884892016379652393393828291955119760840687735105753849861632044831390936284338357317498112080226198099148088957114506511262804190966753143085295689612391172232702735847547055841112645477694832177168945454266374196298625870198516463189584370760279299407829399644587718291899255673891930873781579372304701212551078066819349427555742814975606650389433952712770463363155091565223557494499224844968741266004252026191353182152423923273551383639153115861873827466808522685988904327697575379531016553546066333581842519429387820594855297238255071115421865210855344105765399817887843769699099026793643737347647803730520812336560405747912927469644185120503310277561184954202755787232234011596214996830388326104715658037222957756754001480664236221489630149800875635809935165408407190192429905463147882894440863121249564550445643960817880623162177429625680150998482839910109901724175792850299002967523239147382602951761536234326735807843822998846620359699986332272636114175461042499052889075784238111660066845336060937293104836890890193275841740424792793711390703449246744848947361396532909925684198153360847427080132251297271136737444265617876581445883743467213401059512118732483002910728529766855332218829883226757511846368574038910765573170772082709733995843816085198182397536339590980133389865823523965034022101127304715795882525429101933738158361966765017359013129506279121629322183234076333186110504178385438160854214173957603437112478545764292840226029505005491384526575608437420430290768131101912016715027100063877104619195338866638275799562954741977175048059765352043619886374589767066918011117618181136970028463636298350555754099157441401628869741095517577330369275243922481735231691606033940943818848710929264531253223430036488452710375846849981509889001450718571445437370604295992060422533429356014937064198043347584817462931905701629261019253292303092564144580553694580880145878160377812595677069469299920436844921993028230309208164703795736960925963693613376446253621406987776921068926551419940320537457115725984195491714500112766923968127385360376371667300858101559388402904992389564291971982882150292116514664338035842129269028591156170538967732056467152720783853380831049963716561944669480142941586833111847455310075791639735719784704861615976222069515098824321039190160736156444567225210399586078679197974221537004581722833395561009716994903415636048962483290940768623892169273874625505711813772617781408793500519404865678645250976577393700164897466309794333664052929942429221990769196417958434236178473496009433132296544787006287873864628977005833154393125213979338427275276602478662029480849000276130699718291699436571616042089872790233499938152595829065970468515554014799447425402428874747458354549366593304739886162213435218324999570593176630291047443288906844526250018170277502240943312691607315670937789194302061425431944766976180459742081789125164884909990045421092167169743762055745003432775871223572236301413461665670572280001103893233421469451621717448536660109547642467124080676112158992170440417007746167032580396575999222647410488289870748634088985720215623768044407644020975342148336553617657678191377387448273077523854891835692275425250284984701489909766403012097357250974730097868924945087496901054965556255653484375448985132499530006807422826454947846404648153898458250431949805881828872196393870782914724377678112408172682650112168320782767212437320691922868234837280475208023431889183470419600768988993081025186760948740886633402735880945346781128672899178934044186444325238884795107437156425349603788959414620655149059539878135874238320605302820933039015896768398998324074531073571498551305919550582081974037941112198873213108176053568092277357642004453195704766932548071333307556775169008829535816827111464371641289219164442775177405003192286586373161376611580808098991853168394916477399563080099935768397568316075260233776370281781460793944047367849806546043062156123021009789507986066312727445323597798504327474644577096780906499725328267054204910266035046858257505889021577707759754212608769303123005621402436985182676848124664417420396538021076628703274933608192169619934216700823292829779318297455862064412551186688172329117980259883206125067847190448754196616072349589249403111076097241996353881790139257246488864290617352427243326306402599567049821523264826113280862472954425280166157886534252454388103388227951343023511448587415996039546944123045017189047694837663184654407626462928278140839724504081701294061322574536654751715373034552962036186702806213313684866927803730728744578866278975851297152089617910058597343852842807487725677873036764518402052454875633802241404756098211224864979136038950099946853361332048722750077453786747752563211322953194051735179709580516988133773942483693900795670823113263174710992168322841610732319950306055159326900278955859182187716772174961299267818207375505254832663951793291818062460226591930311646132884181875820640922337677086156760343672121896591744743385116661711401319305338096143048365653884818102365663034461900185138910620486361852595712293948358582264038656089856997103982284573593488029329690720088907483103545584080888959464883292141795965852631809785761976106826465621312059356183448906766688602410436972692404910322380753484863100872356975552470832182619076137704385587553520076919406670448377589416599102260675901276461084616366662421643691396612186401696601989262358808925820651332830764246649581125325282616392817595168337238568169988492440557244920162577287502442241727881408602571290844208907516628128036925103868599428556354325270111670416618416145985811146600295552903723250524056162221103353728738518597481558886702883977827800688788665400563012694965851672934593412397692256991262863448657417404440013033138641064880187575440560876313668871870593449747457910515891254755050123800599933737173521382271926793195786687839832196565875548512755269223908287129699345004845146794193284997252189334273516832761647001347716779042345936806844468524024830218205988022068898385626995159961722064171663335812597299796344271155182275191789444437326849403634066580941556825808367529926672622532900736149089069190623668442675513763493748487096959754733273854023109015522019289742827475073512379173125128546469871414581022300406220802153894413193118488017051664729798985022072521236087274612414611467620077704426645537284438760675794075207469950058090449244258594074951894498366067956163882727182014397092028998057774499993450913136314329481419454832863623091773433090107677404235535366739507300765454387145216359006625471211232738220513250981234782625560642111334991332368631056111751561229635096389653143206753338410349718395748022234268464691739371100052386864811382892187948320986587672338926413192479603878383917317886585392683151165352457636808519286145929560159528839840879659968678669232232878653091121679193770266710187693112849374591821334158350803579099916072275445768448616385374853707577515287395839374016923852460239525492538651929214207497770864713119688499088139502044062947221959263146461696185090631591808769488297091025794781336495966281980802672544699866533570630775063731696252231402388376545414738359308899756529510446511628115847144476071602948900982450958360433754646195660772054487949299458840674890190176390014900700976584132193989506736660034092029811924755350925110347563909936372964077006994600371791131272936063725510982533714955397560973985759766948934483098757706512848738298197118777098327056919526825259355566768954936938446202887001146817764996471583932646320281236203102075415104828603521616326900701528766064709196797010490973080316806167423865482976234408311108351750919966200185123349701176547912957401921098415241564298922111234647627710156514169498331038305712680884350788019961514645827644992184399740477431738953051296920021387374936583139926414830641049693191302981765594846631483488240392185378036690308821003752788008969093935196814510134034006824690666275669992580750892333274058665100679094296656067497654297581908293594422931852381933536571700867533963265958449540881997862613314658338446079700492627684871784190985869445526192970993373513982578874999459567912203620817720455482975427173441158177867462091880536768608103601589202866164220606658720358904281375646931603200069726755365278890684271040668205434976302342931505181932379883288229590367317604942635316965137175657040697863321317965253925329489824290305208944408201664573462104771583109724146101091243448141868061001774999534955194923029373499043227992592501757764293675817125029976456937893103056302704462578322821716661056547262252039942937082876310922848964191335306451827558065741316769701675214571737977692152979274178559060580340189847070505666374009978447864194876904231757178058537361069674873550175290978918586793820733013340116805804932439829262768006016740549105129197870151648097949939322316749948115840712395559602018501417156757971984450681247916445512345155395001654204562348564560899665101523368671432475213661911568222038750780045206607809649165710579344287483959187052400002844791438301344986165100101799553026076213383690933642046637312061689085012820119769135035909831485734533176761749466341348329041146274104823714860261642440387188358711027137847206219065365047282423567336525864081238340493248402537119024522786775313809264038622693525710543180069075685677359627983137972066605112312974182124441887334415080236491747932612808472738044681765821757874107374627491150666243845188115552139936668452509755497620982604934592238124668032131439499918164728565598180161283252247036870886439165192554081334346480738389186654032860405990295493490938489078238052113848180520351373844331723113598438089535505678287892261269968276750363215194139617590775458717506876703903432807052474515670257743754099073650666567294594645446690119286977082366766864214736348116999225451664966352646170424184120786670906335974384228261129490183800199269605577471727169187148414957782795634204288683719194365808574294555611930752811325303065160698094029470547624120570021814662973243413638787294734799588039551793963873486992604953838546378717466083236324846413153361517608268266532893570783831908583127648447303445505163298836638786058338423410856945423388536628762353770104933344917548312348544470978896694111003970855574911194855160826772867710743449974739488663460062363650876091878105959333089052366661637773097260550548227731706222792804095099965798918221439895843843826645391842004118062553266405217033787386313284424554761870415327429486954427774677205773345637790661910851564960308185670622870627428217878388778540814743494525887969365748122031589445307636131884914008288247144181867775963421022434297426620901399029921472100581262453227678618588103418425037134611183755309388160626450965953961310685298718300065624815936820008933261950067967867906420641077634687137607032687898999445879486830441582099202481688342035645975984189649843700018867455608414243110744262993393028524578924015256552433486506141325346082782616516839298862378625842250272817073671572048926967106710596410034079663083427285859683257370934599058750039966735483367121698042999309566915618055814504868616139301841959436367017274825287174137216715268147709786764529768645461332765393016991623256569104591804696964323002788851788003654547042253439091373472989823642741309457487524805873223061731899904574386557046065102640426873159448961538826233830463442268677295325622853441979610163785112051255098757828403049000441545700586876622903596198288153734052436350539380639571588020179735055807510185213108847062644679329500128723198414914194543983246887285574693570296736493416582013541108335740683485861992110939515343714538691052267887245392442202997428940355265909592844274457288618925184873936581771165162541450240000626015957788340897262211072163733139811765909978310683896612925054193462153123882365572594083116588057963509893261067980783891425218619047146957248011779086193267936746248412104090425778192476011478479787989213060855828274681466608161922380155749978984414128636998461733328479373299040837324567056083122944416722500000584306804826264999835882102220091251806955268437585418611699265309994395496058291307880224472748271209166007146496834124047093986321523924747902663060781624113544269947187447160577986109460425272369679062881305031354034259745703309125708198542809292608817684594815717795859728476494130237114245245210770869072845440958449223176571090847985798025294184097631173632008938815463813492630108970948965405362680327557689921470010384033267093086474134082105525243038056766319894394495250754533772891316213278035652527254995593037035457636527523543841311115980414519031235252852820837005843356102834326032503809611571491244869232684111466402078304800214898077548814098978280751516485984387191602302722721929682632167968951641184577725875667888990253232069852156568370404177708492759031935583999697777983862597400631065803102770686702116887682712375251825132818409698246663816145098923119803198758138692181614337962252424292890914495797108171219413867311147304945793148574018555256680583718675292147484898189832052080991193919776081620430817187716941972159010724128206581251480442734392169981996667900556113652904814994147009241298415371912707168822683671634939661937240020454385911023913310868005863332930727955284154440984560150268000210880335637341393959419919537029256027001701568851238346630109309878010458124748852132907253636203761135353213491796591824649243169032011784112557831882201963022670937638335467549426848218159637838249080397901938199167296143198221118907054259269865429579662376536231813988176794539664298145449860218149020421810001082694637678834331532098682058577601024476499406878018655869022499250538978163325420285781710450821551731750549314469377336284554571882883558060601447963621514516605666867806674489000127222033260011900925819786036146031295893525576395209156049585435164637059588943930357319733959709179829487118732152298285187669035516430614722558800891445523550765558685615579434708679761495555586531107128255396550411667094128443408282675062911281520609899780265136767942548898059307231127375946664647775890226456896667717549987323933756436289012034231260076891420984380275756749019045798960431171514847989857325131769951069407024041746557980116707517427474232285283029788052447958239922236092937995620279192380287440189054898458259339006116678417661357441992452391921998294816718091310220820095390892236161644535970999842160782119759063047915382320392988509168304006177341807522345552375848729131560845270444116195752675042629446846701780466988966338288110563836054528991311802626848621989311029801778814888016226789071211638568219765796587993165827531829232760178180934655230858205368371763100381287242719950318126706918020103769670948097186318858676831081174206551451401450387789273775781093766528658792153593495066816086784319217259974392980485705611955613338754547670219983646683054505382069766754488525838388454327780951999618970005921157254759802864069734756219410227949886383045532635479130345537386911171234958170138259917966250107884564876292277931050219637247621418310136379715705728798947699965896487321211750110275238145036533664406626248303444468467939003588467066368616344335274703277696252038190944708405278629892150495290818772271487987968804019607188346690278290706842958551005554499519583274965624854443857043196084558776152070989528726218651386042085510010307408417705498748583399382913297391902441664220923264808730575690762303505605120952769436167695248395842385947659139329882967755305255057870782388108556860729211930040475120431321901188804356545424824903255055224427374562350366383314513704796282507388452006869424513056701965912384860463014252222351137255947447216051459053632971007934652796943600325870194249356826954793727284182295391146775015869011499757641943159404462214196680612936902837424002728588891397576519355134668619208882796409757315296103743669320943539203801567566256285222100375928493388487884317304732663361755216228100491922233106528078042534276906573037435945153479583024254745126221934726971932009607076054453537256166156645638559004710281780057487579443816338501987474557920711945831909617564098372308915178360795508023726146545942024131546868952286490207176550059920803025351908285472514350238052574621950630330709747443613777566069186714062303914887152592563959812390144419707246820646303742926189669533094021818469642559254763826066908992004420772092473932394892205181068080688727877172224221501877196531867364873828654845702576154808891634173853513026315763699502469598817964664692954462703695484477893747357013375542750626192264356441662401193012318901722117440551587110335664344739711785760405920458363444353470474897153747053994665472888714701286089357526150690550534331223505358560427661007040205776145121301020516646273518894345584468031742681329155382558135278079838962811712445892718761128556700431766164397430059410194515556119835270605114961404472620177926126013591030052370245653418659952220388353000502423510144952812933913962970352782711273511672144359971271884976341777998225985703239165295115284403716541914345141639319535894440896993617714658429418187341732843258829910900610346876336361082978258114240203435831010725549762456823770573424544432126920578091438772260273762351094620460213066763170689018963203480562793293598490795547204861830173093133426935457164316446847201990365970481905802378128494345806805230462081336442041950522764772595023667964931849499348145717121940038597642861492684731571071905557103425081953362698760743443951013299557365981344583692081837261529754664983205343706619421094841506662969297170772897748473473375836324664003486962546524576744931937804208267811954945751782026106603660167820403039308670538879578654573201702151735476403175849411900947557136394838964359329258636427793503705050228104018184793386286433951595943490548887760227530437657125032624232970110612390765702219035222754224125680899514691756187935809936981663641110853583708113869098596726306830765999114069765456197893866300651500184850459896452561534343751093275355225343639943714390236613501288146099577964103620126961445747898328571004253269871121750599347776667208759129115993692825838221482590515622310400462804629887320990446186281022174052761217435525816100414265499221365736594880354696937724312406347984764775194655307371281886705269092955504536478108024949290451143964118117481537916200789112484877703858658040744105129149216271435766022946873411589411000786033396851614027209512212774880041832486315858404499603668275325620389907430837678365319421893366645690029298214811117961969205061268263488751843780648738097730668141932263609623757063748863681117909447884411214018688171818026854930159206809680874167096719687944007093095210348000023625865586063338613683865616838749593419622968535917111465653799952389837424171689296058961194846187666915382754401203024197127229584103920121656470971569734493216859853068628871240359528375561644266019872358731763655039016320700619123628927569999047409460924098893490304581926356689275684257205168874710577122425935833670229285888953874595819843220009319824610777384156794151815799522497523433347559073254729384799948320782960514394224228927529524660275121582115030527683182143589527980073238729296487118360951657346992904873197175784351665863704064869859094678959723517979128505573813613986993864330871872270469958017999385065977907914688397615857290844016922674321775679322395272350929183383645863059536107075477282414107633253671274084845347602470201544982430232617588698924895625596653090634033523497883742279100190735721709233008374999059299581391199911451458980970763842309664069908886677433023220763888185505568952701463867992995525216810090196825204542604412803814433654618728573133370733881783271470956263506016801843900476011057584749732890627462341771165825339767840001501680529838379228453589614758842260990283667227977060273149065716932698115815556600125809809302925744755254237612747860803068902514339693627256194485060873743942744709726093503489790096147842602782302743042714517587422358253922521114759900872230364780523096191663339496525961322095783339083520214343848630207889764810903562462710287422775891129693754821255042591576737770274854704920837286675442882358337098624806418076479729876403108095494443852726747065707843352890809572991674329480278758509400293672101532197102213110432883537399664909315722266185595243609717234075827860846430067794608829420300081477501425423627663735119017904730728250144221783230364278933352028311570670865386214978133585796433847228686011104903715067015352893489485642655075962566366105976436589715942274404820008376585418979072330519268364669154733312952780199806565563427021491792452003656620989319626615108786814947115138357116408115528471691860994499214366666456043086034249865845617898635763501501781072449016585078354131504268675530405406784917700973052873775180607779436829205228135117134183838321010563492793834439687566428861697359201678985154927734115815709099789140365427453392502026410935615260179345714934953194147682076417572331941309100452954818870889631656846030778603422984685086503161538370541199781167635261790354474614559810964758883029347499272480908117782987392018870219278038958920374593669122650199351795210083935667362140621641382326621796082707756367160353884708437674454942875612223665347805030657377439015593621636134829743859617371722914340889071291282690944164959748270608767101030485808516346442053450229272041862892220081215582404496453521987553451004423027705638033570643798408659817062778561472238162132226569840538618562830420179180742201128977802533835046434807494070664943825285755384426023993738782536849970844196200946186338160018146750527142814518790440452562464977881895482095863029592607535232574520925224891493572841702752184909268253900602413546771929617053563903569827162231091212718454470646939821749340135574530285312462928275800284247703720189102909385197646809976478225783507431202565957610796091276384588257877499741094276234408297625101925308278691266009708615521608418460913963995224279205563556448224633947441050250816057849014207097477697121146826458605586362690788940470862810481055302585956698923871516184174199576066910529862787156350800767343445741209327735082700509015047119061591500314107129605343504940596599503480122459879365823747465615103761597469009680038320309759517643211130681089024776981029990159732093455870739271560203314854857910169109476457959491978392239912176147473344555259500144618176036457246175647087443425945262185665534865639916339032880158704027564942575622583686342866193716263381117311817308224943985616333897713484459864718295424206773791633919882124275496082598291901719161427973888604963935086304415218370224613985712907353228927391698196558082879084431173330287059070758092464121578436763826544038641453823886785017003393916763415897437223768619877506152085910397664966666810172121554130811484970735533862048414559728299292464651138277520449349555437538591671414434840697711314391252871511747520636524048098769770666936265335421160719449947672331820911692167315047465005168916888302246470469325855838988210751310744368621384437330686103164578099814207971782765064708995469979960656064012076608685521766995791208085992465219708174241611413016287893320384529872462317641878885380959652141039481048064649898201084019790747552927010882932446070197087900134211736441507737058463165358096268152526927884131482832186760027257086006054689406120780329576335079612749915244453479470459044566271184074201084436662890900676832779036696006764210659431965163646538022209546352768990959547180188757382646988827786492769983785776919037939751187657842650669143292475534438889555264446009397102203747963774897531474106460169493693296203566747425224512951328643435953463375542593877082208956814231123675280515042150036058938219165653945693283218957843866697011760111724784340666170345402379992202019797273929829157921694594311814172924209272447405730946222703328336574386175442965469303531611732367447458982411451324969557941135671997737844227303323432723046091827803760379005907912095418321918397648836662161994557836648817971273333555833560305172817431374447920680756941764770191945323654681335236676129300632865566046927259071599178216071561295250869324792423782806875177998663532359404986054590805040500255896453022570431394044139220476618010831013658327313723133225929268681249434952253794169148799367404690139194537333193724120939706087183065380511192678778525359312295286510839286383737085774026732306791827187093880672865669927018001921038834999899689890443652311099267303399176462934764035242802261950667482521644927032708757814679697675636646377814558734987002953946549239098746697407633636008555920043912206373058335643325117827414745640643432856678176954843794920990853668258004890890832539157565205301137030233400312949710593684422184924999445619030259573969638016574140672433467635512614138945621788824800858034438379705644326451200779355840838422718362285709110791419037444423457423486576408976752203830341530560200156434173600147282248179159179368834819439953796762019948315423627017612192386534663612862697133804412358764343328746240927860347955838268150750673727405603425592497259185043409308517312030822884702194505929203586951246120466839159174097734216328852817450204963801216261263231149691834555696973871412948875881355032388241174248600169577110041103203221545368969222194254429233286959426025320715436056146033356742464901841288193483715811893708922403847188561667070937613934904652113870804940613858908903953876804819519305786240449638222668608010571233508664262587080287567829831089799283447746488497867285569144205521438141993391320783189059010178184932940404954941763730211907392896846406208450238872363734858171045553862605655517723125595126836188843696329299007642860455946270829697419982257714415030277469949003030462767670861838777360086709488101222251656387651725296691045536543481505564404869940289693259467788261612463914134362072793796622307506803408173605336032412208208629301232584234565017034252241576230908631071087939995801295978948325775929726852282112049730094411563332676179404684610370359916295505815564789383076987070723009710137717333649525435882606051131192464810389309917104641629166925808511919042780097750240446550015653699032766346740359863178250668604294283352712949262745890209654569701969273273133415937892876858217254172043310670718160976010947760825328910046938306826346788576985755991650836102500130158432754135901101714122957557350145135105548343411854979850071951563412250670441684670066827019852819578729092125978761959385223090506806434158466185151362914886091261860319047525508856540657512228586169939166210861599184015403180927214323087564313380345541946223806042257071172384732341660101614996465603726730122621761285974211859188956268767685191773965504062466487354537710145768555422227463614124510493814402251622487819650127487428241284286459711668112680130786479592696691456827684559267580539398418269342293279597855806818589282082029760984764091272300313038620628777976832355139911677679340549449368921862896577200507822186839547548977203438958551377305938888847047270277307799874660259815635991443657589957641459942062834636456925708048293945090240458667401542796609320718369559868922923365745735529243905261560504264006927782759507288250196624720852956129864210552749799318926473593336429331834542317781019707069406248875575610263580274707225702045350705899416901670225985623466138183863904589172895014032436252729658239069008997909441213538309937663249220882701104577020947728891032455260806398159570861309303139445474798773513536338786084829396839210236092837847136964240652101857827944443075603864185573754869697608278090504749983445799803794900576098592430656128594672115216083945185818874756198439886345101160518715030218827743330129527525888314902895481223444016090032734574844347851235818885768038539262979898972856960345607320563313350838004184638916380608553673453140767981365951493512053254845917259605101621674490436093252183465037525419884431426544616300180266379659610307993802027263740084512185806355774144525428609232716194448202797363624276431551396002848005947014539895758860486501184589903520715417010848648744629984753239694815357581096083605373099231055937206426138665334505713319711072505422219005547583701807089349181972331171432086043664872643369391358869233134096258740242819843299162505821204026750052777109939228455129082913942702198880566158230628177439628099100450312902330437815003392710486975374727570885738321598041160883354837152751211716264724082722256309757287751435064928610079744174075765460632824988907893287672827270288629104717875426873417490690189846281314274264177301994147443895122998516051126608797618133130835903946818181640322552782741270630563683286204182975440324794587631861414158763692288694679243283457590096205237014429547770052383410192561557898596755368968658270857464459600458606063275972311650251226540813121428719331268856605330764102572695585403357419323596990724151855819014503478790766765024072515581015708804744399419282469146600377850489440091337817609476903525971009456151408481029419401685796524964027763449441861730873432244038890842538515186192517690202311335363297449984334384522380561362736528900672922044270418730144480643536381014408904124988194907736653031463842039716704959100058855057099852187242707970299064373306242775752246502317341215326345237565991728025441382908630183498929687768684010079654640407917353698942892627007551287886127095877413787644405214409079617928185493625003496571655264081582532497187360216283056205868374984532362720667292182788675327280719744479918303309798117254586394361549357353023759699138846474603677904661152047637412787782275992227773574313167122368198015500812987955902555930581670876391939311764855758166273200736609513131918025477564893890353513349368462633704948052821888020285598280305099581221827967087698903820137630302768039879723163882105269453134620675360427895002334618202346323936944588464176369470589506448584879119289556235358032226627793133859182045349066943305445448325501823948981886262640914835075095855535386358957941918439873107637193415262498106265495250157598640863264471334376029947016738434692014938131308563758288414761904441568475142528438133763019064092724631933461262887644411206388163297374335012387525363676742496211141893558724442034558855267217952720512288292632729656525309279743687394488587603997207724254327849408320241049588652039404351849847753172400913174078540819627703451611572275144141035877973575096587803999670849557915101388688770432322141306478524321460195651687408648865554617042030642389251561634633641991317313125053359444467716935722522654373387311966759221415198488285160153591582203806260841635170174222729942956686238806101142593245712010317093848815555792401288618393434952499299177893576658090086836140297166044986286805394743165020875178550387840742588192045456309767247101116236232118446204327694516451917618748917335084199230210000711877958773480583066523048722117089838146236053964924305157351828528669697140011946587870673085236510678157035451454719123646598114692083022039093446016599091203293634340739518488002708535894799202748294311902552358104285308835400631053522093176899830351945157372940435753287876023703401536794665611468492442379568325467942711972795097257130315710081992306041630773630078663033311526460298658600339600473537984050712853089214872650932130201707466875211537720764997236103739643450038840314179013081066809413942650598723425294305731580310393742444381876313803739568677046458885297458208739285012872759122986498988198129411663137777510097245149557379007637340723698111964493293246643413571183632540640359624332620574017051931544925221251802093335686287851239801772177655676689153814851892083314854079745984874192734542087847394547264383827337159454897133329698176006637994402229001035271355529092777337288373777338275042457247149410391185325676303808882081525669722828481638289524104133049387684752088423850244494079976287715870848399205630102677180709519046922485171808321042765534295266665827091657127423144474275668402159183712334237452311085944295151032415700739909734588924779171774879708859670395558540120430746479831775606362684538334146564578494807919126667149319992363499159803867567790015503478846920188360492478696540469899381583899449455712055195092151291425431034006344839658922875882142465881406045931993967758445937781485627103619566302104670437406807952648740356669953158050528217302007808906229865398705478420426826519759644898433966462567083702804426009916790735428546330578628505347525018599529566185453668848907850883395451975094395751136221594014496997715550839786483265732117189100144315818401721378989380120654129802594200959996576969100836238534219744224476553331602966230743080470008189384203769303312093428465487746153987528580417470808408884944999192915522711080968099562994777050098604160903254663703653110302987571053040910354277045253356292542966135830740953457996604448288090738091545934254549648443508409447871445498368072085683541484446687557075896716937823553383549918867243445697570393432448270066664882484521244020940142624931830086076291886225608577971005263105146816996258494568826432553027202720144851794759286627748244660930718222848670297315561122591335429605886209231919828187229890564697928477749300694562667372093917276203318153134646521862850373248988926301064968348012331481298044589750709241557615532056063051792568563726063880205478387304726812115625264346985288715565723791855721551003168082936752569759597620934856083691426194557385142492416138138015858949747942927025811062716206853693144166406077082586146305676729600853161337873274270747184142132147598244265082253997201253424250790078754724706583056215011401154190575424020197645247418096915091379842436197568753363630549102279667133479394100512715688486410752737104655688831648167312645347923724975682010180274016470873858819452123518076753045761539269674872645185523557332958501544444279706419881546820428694295354559804680601218955877082715530145754455187985955856893923171004498982033372255954655499510390663954298367993759391368396078398662610846080625039139808212854258041017177742131656922819025474799821415381171868766618932515000351412780622200456278069761630341853480541373160350114660150309948196993084073848744992337862523226185174179666761408886810798040222461798500255406250069950499708518092788817657506927956664472461092073632700405804936583529936035813637993397704425527468754986956894357143126755032112936383587093392032982636680886266509629460134068362153635278258037622260852984276968567756155104189048289385133156399865304505968894716913455671235235926922490010765021767658385294427165604475306055184381956147799127032674002361646272194162894713744508743915348756093700975878724442187192962529761501029812259275653073478768301696667767869987790000050832487767721253567295638853069519910881136648141253691990913239457232104151089341769168504230135295150549555309309143697878549720833690220165770138163630863589089113438947728130761793593683814489091376670592518489802616357616247297133580487636047432918510434533377576925496995793437861732568158178394068355212911460068213819216006344279705627132513530724637738914116100309481443521250032560752730503144023439362035333358817516793170197629717638398492065006126324012630065349803054755298083961459769225802007410203333281940827127729353625335273376128805397340961884143391133254886783270787614181344565469974342995133353133971996520300862649458750343945636332786010279967174583964265499948629418495303908472682099331604507230232607716182093869334055241681044661132143089701514741199180748314973204324086348944795624037173139417354086199974038659697957180264198794453996376622945750288213385592421257813454117950552953457210095548318962179675562330811978132753957959695499006723775151649391885744844807424203274482909475977414004564174038944692457487839449217014122909966064065532589399981247835750206020156502406889385715754304106152820286167886800704837095177449890764063030052123652585155446113496097719342232774378726344664668589859794291263372992266572330482354460644388833807338288649240473825677705544981948587596327449140374561141802061102841514513404521419808198393127283913076305128880059117871489343413610871909861777251341644829249131548321517443032107149587580486910054122578107752954939695511991579205063774866174563456178712696540576059921855751413069066896499846800159472618942638180908236951720011558678369694372713611802043493886446832327473496137883958547241437002163520038158393429215821244783322187161361417970038192709498418150119114045415934008678594173100818165779184842974604348135795094905899520937955496157404232446504001152464057304035919453296702526143436627137081277958686641646673213678548199996565531075352008644159977801710453048273194869714470825129577640252075668831550912740870092628478118501142183432330883988787825983049052640721063939036687656237994622454278222843887942591506971013638491628205374971238844498752937428829178540115466451564233067121890053003127633118716375232157273372819237439214488085337984598272860303850265042736791852007315039515773205011576259173614717023292430767096891018610686273544460006566066303235723104571514828913645760607776954736852003765370349977681759486856797968813957007664879378117064506210288772999465752497539863370862259975288025924837852846630663814251501235649415460752922365234433331708399644124402056643911750033005995787003127049881751947226974477042378695659349113756116250010182173744129020872638918995875578536578681629773720269549736288233231104300385224481943950021502813624183751986075898509542342152616402443964705696841803553224512402154104029573995657747162525143186735358919347915735211937198840692987270586415382679028523874249969398418154417634910937325008143740282750354659425671691926915896658375190291700032742279159614938674651395834255476648741886264006428690830659157600372158349532486070408414486626672131405241869487196391195280178203001328323099997620606998730425663733044351446388584936329506560476309210567914142285205793678667522537729799414549400991122913192960503654140566935845564749463392548105051331022116093778707080944725114295750607679365188987523648047891261990089392451355674724293390042493765057439372542226816108869628469576613348734844036533663908396433186844973295089988869281220863415405128570960021226954796188190413537164661226431630893305990008627102723585371364483300700332761962286411156429778177379867131150699194699612569467281177665480572948889296924168982161595538134869701431762809447570944080322760696832251869981354617539033472457773500181170325602555874233216913462248072163159543662652208461187692595625742916322359828634124248721315750769673296468331734380989324371506558904748167430243399317765853081946063549167261922527635254599534976683881070803075583980967109561196471786383051095755186460778358511945115101026784127293375630531359621913682217619026944331918511276345630669031625830455691930489294772960293763370200394614559492849059061425442390243552617154735802334820742936590877796274115270597893787529066587863708356668662573315733746812581323895090630777038718380179860318932652411783920594521134954773061642889623011670700373719302553873484591068002302414857804150551053103751258916281960891336685531532519743423945422597084591304145836179262173551997215707349263385180801405576609083412169243757373510092695415025095704819013628956716317858932155062063288818756971007525977813119702057277540278719757185233372326319205063145593764314048569929731054277300914037935520469834736620091120540613015072110466997248973582333491505427840458634515832266661796009508452059804654809270042701633871969152226547981031653316536609259373915494705050966363538889310629964620037989287475934265891974617063305979529606181199664166221071345807701738028226698341360995318265014727876665949233952256575557736264919436562976819463587148548510864988107667551865930369701418030949979864345071082675262937704160181580050803752753012588594096214056229743772504249510009081900793555112789320363991965839653709485715639950943990628725527493438004209504307798969335268609639909563683739871581846097477589049159240260947525357996404432923432721194449878663324415436597798061732195078675168905141100747759266088083785701426281771836802045652396340032321433857154497545062083218362902953717885579958102337166501551519634751484226038922263256275564397228275775752865903660937671638499247623683311822083615314221535767536766757815799923018148375323849893814192426762455270720309841493130846729072654332552637704537368034653659427117627974715334832317592687738430885206154275059394021130477226040063965611988396530039893521737230031305918033626461614985931881200966506623231910298441824646950964450249956687248866914480252836216916647048621067080745459776318163319614200202436272620310599668616558115520982892194433419610918930141336617220297375648609168531870339776218427925501859863024262168350781991631790071203132422947787311760607088343594478422445012642810303738622820960164564295539637337620971399320528798160728681772191840571721967418632685382584452459993850271654931232452476616550841941781860213782362303515581720184045421076302661670988459964126609788842205968254764184963856691319334497805215826617640288493045644557293535744026296509328900150139377196849087130478590489946412723596116525357848466860649818259219910711713452635780666770912453622115878916774475805050853656577051706084068234951459889916980348009536572208495342202492962427284374479222718730459063350727233436327231393829459707594052370466849499190379865730686186234779130821297933277490687605954040075299523200322076430606436984664477972558848754368562347561548067758548444569152754731751430802340959585355867434743616400097695617478692806319591950912458979500714859878691496630858139782227127948693744505401559112970437562296938041402404981796273013485620788744094564387350347809383277560074853631887925007207731244677093246859710315501022277923826790583396423405271854637483891521094973463411490868248957570106244773616165761354097959579456772895234061977600852116753884877767710621061253457918826746855438719948384568674536702891692202368694043663322628878427204863725842247277432849456519865127194555136509652934962899564898660572370114959425435881035793176470966189381543995876551904206172750241180523706043723314627613872246884333653728281097122791630014864065394974131206527554752851021999967852991923677770492595580002087185004511357399083194436180335461782705408999025246011839159492535288078265133976057480106580525577030930038948332282844193099680076627678492271056828781249719203144542400811901558931125341006069828027951191093741877490179446246231687686921189161545290451470367805788538200517744208014158277352982191963316432827075419915886745169567545342229041046446755101016399880793798961583626248146693472217611745054680297552790518470475804444799649380567075487390936258664295266208817512830397449586835066876906454972457305310970197621206145644899008769360538376330913394467718552906524885096836260986270802047186111393138519355988246700537300576238580861873866533160398141482187874273323127360191200188028873497476852449010481903426766490865456637217027425316183246549871393083420315018622088958064111249665835129322513361885056683391378310925755451203914491763694785697250205696315475317687508046487653854056691300396788088104048312306382645837070946267705029343203377738058465830176853366307290890672796056320163802152657687038885673792426281776315774664544622729317777251894795760887094732742246799375296746709738129236109125492838057828475527603451824191270972429584745150272691383593032081197290065973844809245754327362974127856664248715231639255909377381485804100954385236170700682607922985258030194968137569108856538233736983998879354076800504378238091683564530686737509468096159099063564238629553571652425518070370133714113359216608904428097797102605649630602561912161720842513468424900047323230926221106637046506093144715290720861783960022903628143716757078739305324889428650666431053353329993193761518617805551787333193125085453037627308161657346515934251267775144032898637405292266699379375175929915547029294937975200733034759653949425679934463527905627821964813811185921382774226182647005800173366990720610152152599939378788829638102967142072121924269274833499827362216127166512130435016418137988235605555643504092705670250996509672895476423909785436433624314058892986648972985351186929189068701511878818155767185886347605779264041110305844679002318139847950838898473895629502598487097928014387424459054173572030023108378523028224783393383446053172975992070480498659947813712400123721741323676910498870789786218583714475054245008803685588468101157753030031518126459242285411231064596698760351533114057773918458909199492859455376762641347559225320692405409634212013522297872178600094197296642287443518818754552198396639545479311116533638162642310880317378915532368128001578794938455574313269611530268652583148095588355232168340277353232593247857798440011137119920078706898663995036050899201240507681997994550129538444853483909910411079180839878664966030526809484072003540689959861897524036933574256723629097952419578734400153827202595705036657684474336568376063897038651924133814451976995022900170841407083722435913192900292362115235236263766437531308545531475122485412262564007650981038301271403556611224728910129835859983020546904075459477759427996971021281969286986698517848663985959752967077860955266935547130402640289325278166375096646401403870859592746642938495964476356227298036068059145790033563599984422760638463690903714340967452058835830180878694247454017465177022415251825004234076755014037511088570715053816363499259956406457412385769063067226020045022328728535328619503027448575549708325368314878422038081571874947400687878761356026221249158381832514019022522440658929450085552505960195482712256071141078090293629024665306212580949860499221713474912690799208167633037355577318843314355217832059428198506411368497317946826850018982127713538373073553545825904086161624758880703179985222038318803579134286079723404005268992530807747776594119204328781290667557969716476399569295526364487209222897951227687802741646478673569964320614744400837394488479067851928211110206753895672223586099212580360980219375863688559842540863516411575270138265912353634991780199536391275673090877005112666017455168401277933357821738735706931457814816453173813057627291144359247686224975176171048420732978219977016214961437746947589443356963738666402420798383739922725836093975996851485895905424933406844053687226636623326110487131455882017563445329857524595801139559343147193659870925015662794345527910265165210125393809557918009010186109324352779487459728630346403397623846637746263131944561001472618351989195401928337429849838866989393662875334162930079803193867688294460737556048839359633681087772305906957678252498459183188203423290986251209375649230170707307337647180733966947524503335055258179013693649208618288233462062281565960188784228768359771904620903058053039707703522052742978761462177205116771046207234868879922663540271912181127398465732471127286358361865303586500787717727813818648234588308493973366952830416604163047083737398993505753529571527265668230414913641778199050418356303102525312054814037045109327471887530092182288280841245701946630768575817204930585735518377949599272330017340101191041643586718065255552450532356786230875060092869206070090849570894126934912567730694459781579960531626654076677270719194867182685639804306721113771678597235338556751700949046517388751767145998113498167834098251252622746659659712601880147042338403535925215850506597070792099891564670286178418286067387455282676277119398280955200014483517952305082616284704832104425283397563752696427528501261730254282368048081805050449688113131622941036088536779030843176317636126655220098432681157538581158766090281886856259644767077239483157977625597905958385393233303389765744847688099770210437936118307173883339834298294984059447252265324437865549742348957152609219735154158780866411435254308920109366902815153461944356824426407495939226198740261249840871951609464943904653476083393217816372072460919513427423890313879894934419115515973137552457548438947487017264943480428445724755794020968602575410353275863430274206701848418382194767896252769422475728877543393264149082825247415840966494338714223182585580798812812777139389451561761098459982155348062284300121133014557919931115422845387768423767952329186342846860166364951197773615469760447363828870611069320119860343286927171631372932971315200890919095007450953389097756574956087853850384327952966722083149300321596388155223825767144433541172622061144050625551099714832795926442646677474494302664681603982993551356645562187645951085270203548408316388939899940146116332015916074820419575830815067593074862396902979929621806887149401672040945803660728414765756378920711592834014203215525258691403603231577826147150027700602364270030195021383434454867890912591955076412302422317178928070971936090755961631397127445240185805530178309069719716183253428209907722846009331373798236508973099631193895538160715683329446249365515086401427077193483627620046270684974225348840294270240370319165638762080807443047254632029645833387809259479800273415379001584743154665479983128293945229023203745072610816016181510658317128416229785135339751664865314247927541589383537212229355379586354945458043229678999750290284437341631772265925934141941318019568386259532742806896615147506239065664447346044609729262283493729070873092179818159027433856259594846749613807978474975486779041559475171599512743938604672157512494972244965930635517662321821015039006328569475433610583055967270285951052640140831406906585444711487672801499854727479953132214264263916849313470521834317805639101029590993436521855150754327502667618343723882337499041426350555627085226816234101432498289364877706503094404146543187199847986495974665561361863069733364928061669212005251235099067769877772407676268029999425324641103457600444588572604846368339134721032969678260617679565163237066227022267853335113333495982943801626218745298425369436344249867154797918352299324748363401003155539315937662662065888684701640859476713385067088468599110553070687142560766793227661879782184981079011897457611798280169841709947555107040263215638096846128221221757488563111287395961199376528889220736960697699214593259553023074052967887778926043383265138630056243982333840965164035245075402202032635342406841829162446783594384930406831531195171932473426865115010287215666823137046149954445975817656237672099518331723147652577580765499024950450350454067086177345718787198202797373431336100439567008665156365218409714883058097544938508812343401961519364378676036305988518267308215137420259364443258124037153874011487472945703736505719708421185442253495527823150477813670111440048103447345485897206037489287133538582697066401513191383265410379376750089658483495544072543590428747546859456015241803919230320783098342276699006787519069125877959163546502269810029696978439762130111727398175022127479960711801870406740308301137085233920921666633769105514819959253724350949403346345789735585721153691881933962199996643135094790336140940403465834602888977423543752632602299741519591863747262918591778537398465687463706757567193263821350352592562352593657719688224794925592350473730071750778353702179585865109531855437968275232731877669413987315079612976948110261087899658657943819132438151503237260683832668839276877524434601691650714376209339598661820817586912618159672209531743511044335181512745890072555599937782775783686661023767229025600659837840506890668955827802264567308794594701257200985444646924102996208716816319663843406756884879389689807941933955918104551074622085026845884690767664781790808259488643884334763977372031136949012659615726598062439681585696921425582362306073887238328520836347688393831439831542156160060740303144610592614313758655265164848030092008410244418223682091008233665723466848446808260919563327603619510528254198102663992816028730974473775863975161055076258391528267048270263097929882229153295462444531443408596257850229214943398316579969591802541867551349895432972270951188242411499211878949684877315219925644279236618574610738280330040607734792100226681478597272836453789495148042321649691401163435096778900100987318371597934798351360919191530799042840305553506723211138795089434413838568006957998848644316346947075314209878684393705992703062213640620436897448088384947322319466270056262217260272302040069173420434655773183807483596094717483740690046336347073991180355155133119714600549441825113942244001323155026345448420914391008140774798413307151882128586251610962057339748084523568578896252235297587948684042744981156038007729639122523378026544847018769583140523098834883283879239834773584974787917808792630800522993177772026494890907740286276549357410493506571283189568940468684916177635578429197769073377639834575532440593191595638236470135024846622838647560049595656693502152950384134044911489727308219572398361816426914328275496322185498547325300846870665190693347073547448342130946370582671786596469411593805358314023440039570938655911614416283187842396187289312401652249073389185393856340110339155264709897299347758478517468179350527091060624202900022011481903403098017422059149100521879247350462692902575223804416203975032794888692692107454269720142090477219661973708474710601788826829044364348678868877632074720977237023018958612160026471080422211458051680018229599689113708857741202475053678440065090481120113184206863408769329227749760275910081256297707283340882152515140314774710768659183971520630071346628836325333650653703452611094288716540660524100503836292772780091178562602390219554451260486758938510495554657830279960116579373961539409441780841164310033434207179519556233496396505721928474866399838146903162788688754314563924557947104193041631682884916623919320844202644491444926661080115847379762057701597324627605782263450897125396106595804648077966313853394752650193302101183480144101351115767976167257910899753955690008327337763143176248877353217795625298810212859927437775228398881450400216462277480380901108879726120550054839015364450897656659755913011520504894733561393002938993401576773705734262266232208567429441999921838245174987272014024753047026096415944118469554432215368620152852625489712348832613569358401118289153523546635461869825335099408357716210484610722313261382590660497157833213666611772410564722451143548187581574613381819117289213972863111053646924633800593261338027193936379140675385670782071261763177563797443971703772489223721747577882081475813134100756022032749334994866460434448050443793574842256538152673437714509110206820143342844586592676612399107593864428069695540312837601181620428534538101466571274287030145609265601988322382610889246206734931577963358456587010410825119648705823400628127761322982670714182471730478845403888463467285258515023432064957815444383275213457006689759944117787478603049117028628429680911125373945024073606504167558147231778487608178956259405071991618096185669975144483144866206027700920622348002552012917378034671415415127230640168121622619847798581003972635223197995481942447762414537408303877468685453532435620563132388311945740138043417409436555946823254018298039979204320797425876382362800816675885787276623907640061999116365178616466482633863362994668929505438702178655352844314667848023012399470639517033970778054636327895334547333015742995992376893148600874277089207811102205533016289328867118013683630731670290033978557401404511589297458485893462184338393359965002718998848321966634424642312755856983879275451924092019074379743973993696291184288160213959435268038569298063408449238431786631506580593685058326715166959695822088310639279252346746286529251866729945809818838828140120673772562866555395482664983539548266793402298534379259475943459194286639509228206616674686133632119755721679135234889296116146300104610742995804652650122848715364299560514321435182827570958081239877528621430443251282366833498776772691652718848730617448889584766064849156545931053766500248615483706075950114489439886480826769237228778546067741306978985384641752488454397081036869988306643676629798519231557268709137445298640312934404441260979809189712499749598885249187929851433324652244788100662105327471757667949672071156599422623774637899414244203194525226484717652831854734539657100397277408377918257620744783420931031984361653106057820762855205838133110105015697814182728271077283084516380624375120413309447000338855601241899991612501181535366592412455664113395500748214596347732684365069429072863516520621312604028578514293694193371178227996575256362006906172196990259484297155238863136368062473081570926181344905391385688011038254573593665160985530648687643557003258730063979630557153450729409205443242789617998123279557015162603674872153431092159759936246982335482788120760099245959135382009750283989127105100762913233130786960997886382084410953642042343200996964141411430338535465658704185690923236095233311779032429769705764836275689459686350657717988175546379284356318124978243579638820461177162638326837988323030730957110339989759380439019621073599581983318894486231848902754225067479264663475436997290096885421326378923672817234335020372730241402207553765004552502863759694017715210876622557946509542296914617303231510139208775276220959810964112396542707761381705564266786595353188904551531446839521700054764663039612077862182137970901440727987020145797011513304332154663838538874960140035973189392316533930871420016142481981866046613643063704792732259781371945538868470124115044266640683802887967036280413921905773531906087040174018663139183171386521039086623925791222281282795640356249899812257325640265587619757648314925967358048659751863218308364188470787174938943994909163532331173447791887481799096352848235223985194435416611165655155274231256253911120333353946163939987631535069854120555947820049331547199597871066888666518228625702896394234373912254469958764751478256879217539068965942034744481359569188931354802662685287431171417329229620553302888478829020491657479125941838391511046702038278259438785608426983012009136250551761963309687735719422984894559802051115616008928678120364169909762685816724269157210916069863946648132903062499663769723609614612366881552879906503447127300555705954116589870882459850284439587422130959250860696498492170548372438523504924659224840998485066122757577674921205483160521666018071230835486235371011891308294022928824567165685115754807919736565365857924182391484538611943885600136869942325983847272709635210450385870032136068416449066542491754921678312300748534099810570152688807063574846642632433351429399355327955489806535726810190026295376362363820131275128790080521412231873257764923260000902073531611233324487842160691459299161745237538842778802043842894573337871534634342473115372352597243161603897828864147676586580153946157610193722106451696865579440101684759728992440435417141520810458477167039979136743394743809402101179269628902455233520892729007971458031741484767539018517640561837600144919549433746620998211369320143973843167043918497595638156825704158226053669142856804442704972578365282515610703290068592292079928191552537434321292273519558888582056427033565412877835985000083970330006074853028043943649005458263143534431122331064500388144741936899428977586312875180353152582106622022982460627069436640192460164193414613574625622102601224180333754272877563739609250405434005564022869361382797612127071176489717008689023023191398455227803170631062839841347286299215095327118394363740229460872195917165545304887187170021595831773479111324422101563729233246613879567015986909607743374132377126390209324247031928509120801823431741586016597218497256299189533956253036028447519755305378604717659755392078843170501001222390443776985023513268643061223052253475084630407231537894574708038435814461064634171712767176948323792317720819895699037614648506236590417628571198997659952091175943735776701904357099090027127445548490373253618025898568528174917316358082066997189060705720115057867531554706277031186624808475085456472407177993934062948583419762307431388080494928846641657306279081254732050190270999546536739660591879429143515599723028073623094481081134910874327369443838539952812042842233370353879278000148862255763113323438482858386870536461135713407023900245008208764487942191327345765931523082320508584308639168596204089831714670564919448779559249376800702899876525052025954892903349548942780088261402018228861744515611060461505386660440372550561532938714547748946751557896307975645829383712670861345087737864232166600151074915514036454450689074048022143272676441978945075765263346026253436714743198616638982453676833924282462358827260665519508261374770986186001182425578596665006271103698487790535666815748453003725018330046748477939094137781571907355093987563586875728672939766759194860030292978258519661450186633539378032564651258235685372882354650597888921688666580551435512899807438192403745807385201389295482979634804296915056680104757807936599262107473730184470799837268794124861748010663174757023839695943823537035010193574883158874475070395534038764869865181692499523557998906441038779468839123097120416278216406106253017287954401634879343568129474805434419338149303620522152069340914691022101911934323174299351379732107704352194126789817236224110831675834963674785286960655048408902593151687297081945637276109264512482259004809596216523970733686637514772245051186348111965545910794670970200331734305100627880397433429762110263094954328404770480281731062615936819184634779502638254254797768254797716788965200552883775311939319454759720535435597243127740185149833080660371650338460730199161568935659140465666810598308227927479566215967616492869182898950866604773969572481601263469665872440297417889279721228294271792665897778709874697833919884023881079805718941900692897226356085430846468882152412482819091709700893681673040658306908931653707740338240275077028691421338893512858104588612822213578985624229946279635781173238931465981983136210959127847748035554593884123869052275216478002847345944340338982218417204838134312290650356327350140904305860149944091093988122875753852108434581663019750655038412171495659938670061513045208729454109818090085961477898224880038456748483824542966948162731696341713193769245370518072569765613326661286450460327803043759374376549035782472027685964765461655396304012177859628382990254781358795722549388524856388342765380383813145513876589126165950029995720792438300932618297531938369587167222514542103552763578811425253755248139951574354804876773582193672864854352825825460106993761664478071225288399623754961136673889063767744419762531411983188880565655314580625356938730604499831864666289565265054774778186420789538935310608420232788172709569447187200025500701418149641353067563239790083572183852897386305487844956262839502729659529721528162096674279212368187014726442092818045235989548462161353219824060485745768846412373623867054386159588243183303188347561208709683152569905451108715711991014451215177262560289890126958317272614164686528754506734364565587553896363003813937504479091144230701901914855841582200370720415486259101618510126880306238027159244078132321843483744134265731783986829194207079864006639544768221624379276047500442959370633654279900996543048352374918147338551803781471541455095520823930023425349912249850801360099552519243223238126565711769696961122289644060264456349585653369168628947337574933580085055133677392784610204573891326495710065879675770805574219684049547894908318666334572119972991550277029082472730873261413289714754966423681261746685520952957477269437361961839038103016922010614031557768859471035019794203146460221068524112806159410888904368579263014794621289416069927089282454836938781976440341379777461678834489291387899560572026361351202567988534672095439732865028342154278351945438699930936763739013593807603032669288012390195292942744214304496943822984131759123315283400258974781726005203620102190491494353239342110960661386128688586223444642755541854076756676691086465222085559985254917451846967927838608360957959969242012424326779549453187971958686394472152120585870459670099899146716937700571815941610557486330971713169993159722877863259494556041618846376968582706484875853218663071552005281384991587477228241149838405319695611736370952964126990578311889125314360041153907617704335600850082825369983188486644975821549929537365512335271095837751396588126081199214750223815672520809036104774493874538329931580899229020882162028153846100656581340721042305435615675331600540858579109015911969329039630661059402757393636100331243218380047245525772782050490671652601582636607733011963046320078289507399233317604568441922539060017031227003688318595576832524658090341186366237550485499392017023085174948386219208313676242011949308982801627386214513460770933310886991052809075940870769951689633990451780544338350457042749128662364066395206013719119325488856460160151641883614175952715842342939255465216110918021086290605187554477250037983033462882378214958076048845841593672705640886490439531281946570268960275805185283078058309744083304171039072510630665020362821680825783625951198746873351249241212761153960962811767633229297100369672951605353335250165586309921406923605602070239615914889983690009356962155404739810340431754713950983530796491341154147086444418251550246010148148654670973246893909987606287872311272003353041191467567655603359808647508697087910411253074874306066672216274598497464848937752774525296738685060846636591938635576309976014621325397030852184716566108490144943095286813342151859072245806061536098902381022034951155827297082078638294940124147810227992767385230427186198089695201885620278534066418804402065607538135234600172964448745556578687754406371942104720061912395556428419700438055728291713859788241664089409542754102334292848791549034013058156192337808734507892337203811931129278168545412914180009042621899641315617394768110509976408290486898419077895038603831949797948873884052747119477578182544517229632580009250165720983660573224918551438917584356717494800684133988907417558823437301951324351948817725620620404284899091173535504995059085176216337152032139415119848238533779632606780442937838920551907754502848856993316790453213801908390729602435230794898258383562008912510463012527647988198051560229684884832969336439150049069380808795519636494819700913225990888650116403555287729104323155654428368061821963941774119660771871867490878919287240404496309865077219317940155103434945146503238363448056322306928501360965579641762249832802883738289137273320432064304823989514231491059564924949345424947250743954597747445650472099440247700965931914832373903435586667564796325307540606283004999042534565529832449637621226861365901803081069587737693971534064865710032913349085052056400240623994195273412958310579135887856656421440485848404116263994971755203126295836455906624037246457998643207328822682157263267952558601505029887832401950344429504709110812973677997574190014973293887766001760121051585030505862007717912783478053760125208655443012430592704752137967789143282841708306276976111191492371319365111204886010061870237676883831522066930306984884768449235057330366889941822364553915658859866385730651306273928739146180601085775558110691732590583563561702608858650924739681613123163319783481898829425562662303832582281466327222883462212221413374925908409316542642351161961307296119215754115520889843203213589408348005857855516914523355730548907365814657425979275918058838410725953235219049892413882920710110727189484543565959340722499364991194277073734997594327434623877813821624433339711492744644765331996767814120839494235962419221736840439155823229310138762127056173014618842264154340843516296878565664402706261478986169355778264931424484544590917800301708361759867078812499190727688009233280711821300426813880865672358208471846703449940862346972961958685260161007704457223631420980708295066111249833142777327330597794409200855116970335062784896308055773191065372403006649651139412939500963617001123419714578172835978929310121222071222975993903778013698923131769956596552253255386015725663060642404483268765558783482005807692794137143619333701860401116178278817055769798104835966131435128416375252179165981157769622393516250212085508413666849770171524617628408450025312620098242664023038436383589317451146406568133079165094909389646505691062667669427848793004126534491053616241094709985569375980679379597866185564856623238615828041076209926784087840721509324471353736189860380664966291641823032147979924819722738215307194505520583471702636825535514053363693620127336971165631804266245033165466153094472687183647582736293258142318633428514368445456844526654846420351843063562680006028677064364651653906153440079800626454759304125460298543551720997275071844648755173715118337702313242351164117758943911563888665502127069582779755224114819077657060579704008426025757094567216656200861384991968019124051460377839703643343896435661794612210963226519026917997197638830942506219714894712957138490657081439135864288736129556532867963997868086545844737201535778786174950345670607864413315436573095789663124952564909792793548251052153849294871804142384990123809168377517590189633844229712201000375198223750618210977847518504592811619673918833629068826111846814201342915683074774744345279927869629757468243118635873160386302416637482249755965440657874500374155112780211726127936144246913281802544526232757480169962817037170168284226919011332529457296626255986513333709846064972797580330192807513205910322530649058744359465124560197812841731711327344594439071156448479973973553804506204255455674227971475215163539421467241128526141820525245426536420265774441521371015341329577767465383057240276309578731691145903983551617830667740830155914820909758236852837647751506675632231551846595565865392293495737492031000851866607751662328838102214693911942627436696023752636039296799530979169665542045076019320632181656106770232614551904467220315489282899825464109092606744775263545133035143858115348851622092596380948823754891526260197382089826149559123148507542533290318315605554852640561602467971959638433535343321031138482249372543589946728740951579517500008940836651437406206831537661421445615286105787650412594492305035093431589620771075846057358095028838688054136174320686136207039670032877801074945406105632505490594430258478168908917587701640137546529711313292692836335626812074173768618386806289075884478960469089523459725548099839670619317726073338987103280254915611398005495226680439124731222394050511943808045380103967400002281792724818565892324747916364458560688598881773909741136105246065947723892932984255951374553889273905924358936986961869872320961557151809401811008099924251064400250573782392864677644741743184807153056888080965423022179232634269762376947351297042613907494353817904249822137601794359272211185478768235852438608203499182102169860852874957241828395715264251241576273153657812177379872897907114710430452394164719404329797351652852345837731245108686327356106659064873399602192702738238676675788507010689173346361014669988112585799933975510136057430098769546399046556108367050139921097000285339735933714903180598334909116638352127011086317958569110412508048476098410305294940704181109274406017030402981225890195059174165979528298287251081216462262599628727819273652379283921842915061442051011094456679198013251840909744836204471447798655953975139162553410182779041953505275079347551963734951184661215939884021000136487160179374320868348864127269616908949194847918620796041044064859589824052806006860818485598484976357075999615097742211857219286067263952106028601130605461677381089836944698717659926340105188778910137062135682733067185333268001505700190044223430132256934347045685786326767108539150181822520793529852663051319711943777932976666999750117208619888862140726410508837967590875389051345082974176570421012517147691750589878822430193826282032392326507531544301170978647916720645959090401814545734601485642357899692804047644646715245283553147032196046136762038861448333518201153681544725865477711340379251300039454148720985355703123388230434821310748536447270572949597926705746912417444979254108399815400905744658590496331477239335825757286900722268863128463313107724011317026610342048655286253752518532663455624459589557347243083817789175089716260109161768739461227095346008475043329842611717526087087336081129391232137253476373495690021263732014015997240282283649415628532380617646079597955783830153781162555354073446761167443614476042439838530090293486049104662095930284968912884285707422848268848812434721366549473914828240807682417177960653516266433364498035812990073882018802723608064766398746504433326152676846831365253376392091421999609401733638536897656890708127116135992634647901672548559586239473105707608874133429309723430836460578562763991599925100195466293273957690375784907953704380868019774892315263110782360338367905771179355437060868310474577543379337012474748660846243213905562675005208060063140749068567373575490320754170141016284703150531609208420508076066490939064265026710756346885260262158579659604520053896360608405486107947351807680728522865682831882188078686534809452739787037965261675247926946889962983149001093195047969457419303961982468535525142792159710607391438559425134239361179224317641363378583716795637781202341519937022944130907277310011439766498233867750033822193887633262982632145101341816169417150988306493415134758717520659349163648039040501261802014815232073964171402191653137584132720356054534739965234694909573478761347716642516643340236069546712899911455813723249080738304683829791137943035463283690772040438922329330237846484797425084961956930141533424465271995922941353518323146793278912837903498747706175934676208261378192542837859708025922606504400830900998618656832755642730170330040441338113130144825230236290992516717138752101443987630102046187418877582494548451666065571980659323096930105882121666175823773901728244471133901280881297381248281687179682419199892448492483226172840190405899274649239071769386951972972704552938985215338322746594346836782267864395933257876050819995239070390821233819310321135842606396161722642486359978564840622064739372579108365415803243275735803897396417562084652162340200344154492981327754802012293118156780437695290809379513676484388414375505022895292895477775807119463716858776471811981175147071623890738042076880161783159994242876951337304151340463155076754810485131838576112744672390294817703224912614302477719477407775629385408142810250589965199592110762987039800380119660265119343885824815574285075243456596112702375036250370472319997695135204382788197164406808436912368285646041639310917616152043260037698581196271990887556221533089686500782408938175278019804294236601767840639410360263045165911092513701518695661261746681600544748382659394023940702249486652117020428573707286394285076825693550294554814821432618522487781930929897835553208227390890875747050572734721973138094487435039060896111617604698669499604182077796862102743877196430380381341536796450268537447052044418406641148748876979017406547393503988449619589941444691515331578382846725015025655265558421228184966262568267520426051321629705857708577996960802841560260742433746986180178455039729678391744255616189117476351768054194443292480428242893956900304077396185370899627757842759736712356287527680213459185987939493072647545322695766339419631443464613297407352766291680145464345824156296930445526482553477887019302284313993684718661386219235483040658606289507316084703502691457939635679545513095903500852787801730335464184994714831364914201846969625623653420215800477300699341200850884497925448064294342135798840786719573234229068140575679541406371876101819985798743532136890495029423454888087052170004614318691588804450478339964246941448787233069901745169063662374529535350832700989862043683428822553840037141736277745839154042999507476713727076149552492072860591929081035128498157130245297390977531910947046273900819653052999231883071140489711870558804336300306196308905750176212572583969431824683282905558345800845414712004497550299017717635083573959218341111788417195670808607176107694027046303253614891836280246690804620933989959313095484685941568934504492113064973849972505402430008355528659758770940341305347794408514708594625468157697490548673248878249509354005917568265629225023305289606830186454106796405630456687520948460206779590765736019735009141633605477904428354304011203780557263024718860677395166981800923864479076080631568453917728631725299539018345653161862225666664748861961317854188249437415091676591617914201970465462208272436368548386127019320492826981545420033626633616555292882089444387522003287882136684802305072179777025832149236191235987327001446106220230791638043819155638074599704197295594345488140664490938642019870801888717574078934499168194420439795670470668139073796192612184076557096027582796474160988161718835472225101030613192630026734240051413924793590158108981136414415166060767287136189290511621200688135536739446222306881961889451167937320374428543706278697400524084889908611806244706848137561899058015454443680151005596020573152100664550615201861155394519796775283486473970629572177675667681883642743564111271843520709279477932253742930313081203016729929516115613822885526502078736694125714432384574537838665770826597762643344152521418052625643897972779577485289906174945734311386405737562681623889597279631279463951424555783303154156079992879031634302566452822940866326871633655391980186804706345568961040479208353545503489121211911785959297193663503132805215895600294428050593135215447070309594193673937307711827387667422608653341046784495954051680902324766362621715643522545032805879291150362597368331527902543324570249421367166335991782265664395559141767313695344293454104211835193225162363303961599376786507858501789346485552208441910412080658215108540876549874300937449444409260474650695828394619832127023121434028217119510401514439408152981753540623995010322321615649946328548547905049222139664733091748959978099751643097005177044419110787969411454260668999579526959703195881643783777148945169326533378791240012718091386781922013226443153363927802687408482329794059303904679248622932047389888901422585210295424563760319826080999754612196366742656026989379675593727671474970327037641922905667048228379530051634450594215621463615089607278964194847448445478737782737309065031452500438008977060161033149377686140469921567737364170568769709294124097853843461802874874001878488141685770293878023035129848737745930940734725498875764002488390025828293125784564311120156984670000063120674585528110646633769692774924551776593986567534085782731744855084994682624037004660079129273217149021323727022401698254938378227125254872267593866930494854394981159047757712614157369844005792691500330704940864277786431618838153676488511067019441829147908871630138463242146211061794918113859194119631527873806000152587910298919938055977961562105166635921520693142948109824513042291401854506218807696135645122697243936642262448431712318420079779668821867287117480505304369721648362965520590477223209722898745027813234802376475070747695704171487894884837076656280852914470849941342080226586881898435813613957646866485372276535037054610633926756407790970103826801425577178694976502338428573735383031655552954823725862121057041647481538126278569304241461172140772418156418642420212926204227805133575983537548939945476471147371018935372669510733375153086161408589460049383454580406404812012711368490499083886704636831358272056009680501733372900090991578444573204215344594945475689491155045593555553297561914049242817567977813224617832561852461638039320853276033980168277235374306926552096002724873483876532458883700552549949632346060895457745641607992486677784100428957687600720450903213084265901134272153074272523963994454730407025048292065218111075867137083026457378130067380499384100836619050284090069542614022619423651835241757090908869798279664660752031165221993752854318328099165720438108731902583957020905254428931499161377669820242944173369682076396659987066585940086738021948720178569097165551359733492458749984142506188760140118340129283223359779346340140297470342556095329898709537378262232571147934430327849766190118250120414281275149101075507825254002855389865283300108282879010698578449691780312238641082022514717585459846687144258609990614669983511448312391735944846893509852475228667380241270576178019357245896032223721250916478701656029073179916493659071448253434011840694318218410177674560119264208870954752776092768526830604745223652415708924411302274158674841900141880930280091357116198071373613775243361536496430541078581215541813411788631544130568641486325817217064258502458167596737326836545717663778781798713638959306970732930594343491490652313557589457962801347943631657051552905134635464292607983023747862290355726360372488160063208127222970223751654204685129894106843583209359220598949653455944430569414484950713455429455171800108886659788167045155167688863486240900645178933824464718440106276398036998277060404309510017512355973189632675897692534771846211019457061913330461189866668126439281136861879103175241681110890621737245609600834247928929129373912526038420986872621937828631307218606799214754633646813417359639438289005878606424407377098760288082906902909269917976975294284391686539670085470925337041087283979188544124729592112856014815243212502959409554597944522015605812622281810799107253399082349970075489114990951382662544594883993766487475394452360996225781090301300811274779384753436136781883700900926569018829690011824290522018489560540973756930878821662445618953084286393134321679333410416922319198582870133003618573697252647826162590288234962505110186265143874227339680433501282493511321738019562658383261479987889235616748144641058587112414014745888333290648939868115029025696823309537318421762539485455529513895904088539719507296107253281375796887258053731085761780345206852303653453505928661433988718649885761864975744359878659759744635751853353844920668142322170169397556411912757622331990642904539797254354717112455691408556070384597791565378831194002589360156131488865770788257525508672361639195576242691386643036090828402046561729586582228270496809638845018481039075097605876357898351643128167341987822449066075189228092116747203626127063905287083231806099996941000127787048480255443687694022073107701378084290955703381550286551660422825772475227700396795961326125892432317227761533075241076516168354366503801538772533260814866326814537487967753917280072481499440397952364390817038650640232274688419007082607154716467560657194975837072426971525110243925030880298248701744059494924915671105997513678374341679984300290059426595251746045292637338433810326801232175176782800996161660220191556129876642555430814682563806943981436884825535240021805652590548905465473915155874861543206754854256570038981120520323631230205005372305872143115214369885401538828926378014924727827208776690049454294436196245211820560334081435225339439221579357704387766450540425691943313097922455232533441860542210270406193742013929431769694366180446112446550405285159665633777553771531193890300992371832689427222625488407271738242326969290228339143522745620518166260971355755755628761363115800850612459501870171250989501190000882424566485708617291158751435249540398245503765447809710012984590649278599252418316709691741742621050654568385686686461887306675589553671109572320875049917251907947209506741548190298663355325826178842979882153698178745532634853199181552804833026308681013809269758653546621534093954701797363832967521548280061248058675444213056917987849009124523865566161162829587730354915709857830716498087202967752368578928972271982142522492650270905821003120300176632754072773019084481419255894177584416664353061310256987435104067254823674201855751511144285948665159305323875460541638982044454928003666905924725018709576266367468566816505430526849938407372703846743468362414853410116838082337522126692832547480034673844700588137203731746086433090626605706214071974345246727291165510096790046311890495538899791387458779326187899935196311092235658883075572143229447127062171493686971570121004865420088854276226035800975344034615967546128357974689094393843843809775695937016221251512610468528175612772507241564744885437183600216615188031591504385846269105444098626207401611704723974659613232294876802916617470565251589669331942114603152010989777962471793940920517006562176790914952301481508931529646886459970788663164663610385920807276579925370721049155786655090299198946618481767127780199952021749154956848406429106141618945856925802764427649849943698404326719467709245324796688465127376112678685488893710949476582670277569410367669855834749335280589682523461425692888202326892798221238801551020393277475202720587986523410406542317884312626450709909363025403955544961641323018376713251900727282363979610565839897701694505202329775552220090217840960719444958684234376467220782322069423510275758271826075502612510501148624905468407607970483526658378832552743191651576118673704252249778402007231037202372741214290130595373297524681546582246581055977611664738434625255056699591068893795992932406491016311972888930012961154089654404954562673317109886802671403661428032220614049331480409449367086774917325459108560968274900554135749830087493997817248270108479548781488927896102820775078801484819523859712689245406846796409875822210134199269114280745830085262296261998725697163954095059001189645958484903674744011836541873238979879048630535521974261800814980143008195204399416719595124607527232982272011414452188411032848778057221656608687052285102993130629968074165472484630086117100682208181177471549855489087056710927150325275977334255012814947021579735953973796226029608575661609801692555255397082123982163362516030729300640713862293492846254604698384857774908483761292935864390546190602546528260106419683232327060199561044568817203816694190672453046519025992258625713390746493637815308269715354257605529376834839007369715640748514111968307677321313489335732065635889568526056303527530159812540206288405970120770019059513201642294610896537281837355635358203604183734183841645631137186034160294553306009360493880012440198970099726966295571958206941459927157238464608547336724279633891708807337396060075344702136100489550088085973650505934321544477851138821823678283404149589172366200715864405559940160762247768654009680960910654319878954681768772000540726915624557819681922366304355896606756449195217652676277814391855367766174545457313716599256702405992384500608850543399636397166521872723481021137247972379648355054986030623579682758510549613253418866100761758634950691847947208318059587939451352714444678238037063223670546938270133737206217611383957089890119874255957745704524341421512685699538907369469393156555768199729240550965766879136916989699562831598663473432357525182584582592552261241818125830359121522922057055735606546154541849940856892467874865733146709626578185999061492697198629455860192996119709312433355923639286645653499852369661210035713125519643068211396249922984944075913543973771892806193507968899170472728095326374987936917946922080817515227488489154417031851637242603312030328130084388315261851333481251090542385328792622645260557205446814857645706798810699911004412154369549271864688033428318449725315315038918028504238535588568011148796385264362842159752680747775354671976065936288915145137400336266243077482842719319834238177035380258785953515611381964748035246867713522691354291230332835430728137084564578959597823449345128003435349991855194507466082185952766222556935869821456259294922552454398864494349453799016279328849199580608642423896249939165544724475329093242400365804886012888744038003988547440932636556708574797584386136057384834704873969999625373048518923629194515282375103968439957809375359931237910866203834206296728516396593836553942560522072885357480002720889505369321847416832769908853221565384528687732415029380727666881281300319860588795538982042004853056805830972956689603941454015217632577309524967534242941928118792295554565054409107897222967990871764466496776890675827596730564396879926584552415033284897723637649532747639349480198306121715416306439428214157819694354101512457466628687969542791196531144592723589930346906930480245763469684221302993403161953333836077997379868770904119012377841607763057929823813594273439464720110047108723073108510615198978244364983370321241098275338829588732234200349831610268674090539069779054039387280689142874179589768452677835790186512460265462344394512362945711517573905084982342850674920405818630432749976060707200270825409537070834656802000276874294860516732042899963232572604712565379200954292834872250952470994835126025554754491204732162952522041493931032827111028325159011418566131223624841090254891892964773684483945990957621493523088656961161531906926085291350165522012640320071874915140375422017597687273197967462619829987158369410420448646956837571581835597009504379332832037635173297166941651543740712022334020955541279085885156221267860757318310359730280240597986846128300306013042333618953117462059207372948156930951779267449661502345510364829403654794897506931212162669937981901271144469658693718424438092930023150180072517094176812344587354645043821968647215265573662413870379375506497023184425483321951436783077660045690492203763405327832401975891933611371274841854478883639010637407596881020690993342989596303984604834374244023697918603231362450768675451707822504037749274667105659679543930098773594483118914322206514158733610276091837166842090820732462096497251226927665489164721637563288436325749402208060383856562467138774274137470769096533709887470327886939997923524892573320894774025475437175084714843339935970702999249106218380481258749583796289395582200269560226510577637831423641301381835979730478872454442203912524830401925686450573853450615115273373534198055315364364757001576678358597897269246502454387877272777500512184295270189826539368683279667037073730421516780833640169692292632616086731169128340676007116149320461995524466005707964366897371482617267292181611232268472330546748203138269840911977675056035488275336518733921365414563631038171662490984631467946191108211087741172616714374160542931462069001932233794328418394104013272871045219328425254938802096036863012744358939969115729097376525895917627776869148781857606075811697760977497979089584474854078797521914333710937320326355279244680859952617872051832643871388218507852157066939023988333306756463026514696327738113995906123130300404210582019281650727803210591368572885365714761673633896189949529183093563095101425291153547890035186769972377421389282500799232183924353919343973162479212660225443038099082020096236700087180304921121314420500357713341707092775346459315919782649375631033805987721683040760662962246943777452474365291053415798348799314821893426621380942448234559340733279917736781618884275826999837120642494786517353720522169872270963309689935782810438921445487095995886484074092298713805992688430138561000100075167905673501114401356516381303260177014725039437934904867981015254166755669825630261776852026965529953262040961964221775297488794340171596661952576927841017901999397716485570519340585770527258895962225070385250941404192388542666018703812907914577303756338960762663867229020927515258906502969857737331965445777584756443725016119687200158709393793740706739238632807481234764380593003346775748647318962751418104383501279250855991520725801865291719258429340506221583985123077239948726225743695399163455813935693673147853387343847100872712621769132174023856277127040431523202570436963511313589570385967892213756573986159423995256173659880292411309942313196159111194908449321108139211314415537494355730124997505156737105353078435402434011522805889824329847990439639778807029433258599570147076619362811030011984091995063639400156797757795868218339167061714273305689887356520524777358274250846742427395306422131146944408775116470267357559821352389156490925693467458642071518868795713939909370524720085993657149087949155258317127681442872684100528347699380100617805796708692349476027404417096452657016413962651596875622988627861930341230214494680153590656913199448099447141906258447873156220264700872635367341420407385735026191511632174789022283248447886212180171583494599548328109243895203695404997102618955616491869367031696364968086008932676934646960935931303330172170225238115311065055682274928727694434723796065934931272679448281645744541773526734100179430468445258581179004579089948145694142641527666810200955661843502006290103619176653073233347451791868557905705258860523425462495630129016000338119445767722510832646065893184953266659202463357067198484492939793005712208351478493886086230405221396992973037720679872157552695768815291457025846334833254636641739978191459420366095820353606714117584899698306142101885443645351458092403568597121454705726653441461299308970068245347632985644826927520932169708173741748948468352596016781804277285286691473675342752005336239756198491744506457655186060882046542019254112071845542359408793121291986519858320454139417258316854126772073361312911344695401130009533048152773506681257531679400862283440626694816790442722526081218052072775694585262265646969665861659829946900993295058145677458720589346987913249224403037356609613253296811029556709583529959055475683930448523247073387647068492134489551755162273205899556440891013564386123808863982376011028703388793029952412092493708855001424024638587873186070665836678183990538140366734565155127252757949807767093836808943835329358761914948472316541287658041762911005397938953916049297591262264797626502541377549364579681051017281456069637805086262125160718169105846184435113347989441568476435422903435385107164476501877870347790525837469094757568180782280360087243434516156187321910157219175706464260205342796522135612599040280598051650561525258033975530281710806493518133216823710498046207099935317769936362004599131413561177490377445641538294693196206844747018058828251944704428903385971681295143804703005859500010649756574393585864123772806421392392467454213478743822395904944652002888649202851132958479877686973836097069294090303064929905481929747211443432261700324321734684556550514126175522174670717174322158151929075340266616620374174552448815374270734070414174545729408720345247087002225747955134231046372942963324236476735025504785361153929891065006732280191607673619770451576662662691991117165815333944193431102414321570093353961662380657238441048897829778810516917403197892901964683748008518387613732886159640009703813872902709692713237603612549588597238213654613599256179884388367381637276806105197879212300534339957017924412143889957677052100607806842331795222734977937005058559766391935541466694782329013127830610386675403351006198877810770083399870276091381289630803951284215608432329223253161676069037445796588851353583391536607789695952482151144205465608441490814493326796913532275010178586376154443779484244763184156379453886027499427551969622346606091605998680115174799423760993756663882288104545427384256323616204503867486498932669062371570605842122118611790584384150725925355613351503192560511304991555307295056843738607086922662074623043743456817745513973417597302208859775570648443512364182934900955022960831456609230417810151265328387885978635872976706014107876794828256222231158351814353179067587274766209877123381093963993029744258283889377608546354534146607992151399043961497465797239903048789833787644198263580740708484200114180589955994143266058487093669310544014724726327532032457155743641771474705707113270049317096806765383640258121079683352650056488886482911696274871014562210342250871989887481818379352554856042195063416775565029149661924877152082078727248537671494999621848244861217444165379497120813397024388478159464990758066620352866769992006074340486387232715629375498252356736683360462972960666729875281706239159363047474112915703100591432632241724379193945031182035255234326185521584279649006730393976391282256555170394110716932793913713083573734978294625024226960232620374167963087787670354246202989435618472160155266154394465417710583193883681576675251201541374432549823929060242923809756121862120906279940409247653580282873508451652771253829835326408057809473681027992255960409236240801786148067817356982037604695826033418931309907729261721959747311725796296614068690537182739479613622285447041523447602816961022620306683563555508912754666430872077323991591143526992674200261181081216760392755839933833233028523418537041570312095643358046499601164565006913306329615672875806063925006679967213014760683072410159700848320147079028009354134339155103243643943859303839303562597436010797492970421232346110562741612731162121867840229225445089706015318247324043210686799946473176058926724704237760966635617103582570315885096068208499041498025540547347072618034469060658959178369462148317116661273859609984526637558766407945543156021829258643673185502286030684910989770286103212034907870327743629031948791567913253996141861542962336391686855841969491350763461252263522062049182942978767376664005930434885001731836176052468889875011322484699161166129834859483231615957716651804825847067008855046992571638154890140745410625870348961888323324917238377259880807482702236587871474630137583000058819969260594306878957844025746153884445700646732139515272355019431931841953510478877920090937008284312211343906464580336295998508427888294715029941108113833061287448507155731780410980739786680556481625105130105116774886237410977919976893086155315399376739398814211194576699286184120918670072312931924967042207308371590440657090203171976832967658674858420287059015414113072671179856703389868624491286352853958703739490747763191553545316345313621728856564507288938746357278698605959224318014026026277413096592717806474568522124978258437057513494773522760525114017688343019750818191015032778935962579206972249165808943127070699742719078807983333901117673527014900702785516165017581141546169869896202106228841506557407814396050417553551976272978421547569606435202576600525388012776124738008651420902520526685869372296126917069418518333875144982781371574657538635377103128543936012326481624211007124357443710288871852312782307886538990367453543217544504678629134753119802343144230854043073180855732462199478984097741769524592879384199582937966111818714913172912322288562407835579944402100151356246007607619966951492148355654938507142255506542350839488629248826399108236899258083248903062281704362584095456305696330481961057342464566645489803228509314569076016161949190518832965551159723748697166981478473331290976425826271528621725184001246753335861680118567298759119025028027225434248654197390559955720526634235592324803078265203154524501373110429678634909663648400696384548535769971629977249293690788890548868343023546962487816158932442600116192990426788616091157357817354780237896452244069490019036092694983668240088591325372941965754162493750259951948268109343301097841677879121930527747202511807407969442425059472733892798381410352382121553410361120165714721934593757052261974473901981003479926276517236721565939156971852548237766390429612706966791367748365606941161803379118227637218334186961334507136679404541156893089590329899494270862104347169854108537937255103006645885211663440236916087556848872326421531547527884243055654771098090595192457670338179235796515515548245779980553832887365720692604894157190381325004748543222208856741908085151823451948897816425277270786736437468151190390394838118740990031408165298686751279136631074173416393593329459477666519593054951087945221600196105852566491578872694662359053716947095496202354174259177409384132484348684005472498359609537383950844758314018842323794809700451355067954052276304009790229881613120454029648854445106853142336250488310010370544051925761520922471906384968641873512574166928002967898158449042001800486950864480470884259007452874503285756480473832315333355306941811610487024788409213046746682628938188710670287848273533017781814630359598189157168315117631521636578018355328689740939596721228893794500391082001439786914771461524970439988029159729857217673978117720308673767466234670762455389823379776528854164841182282866293304060461576863000269367261255253680984400025785587535382307682745762942194140463491114249715241706927388142679030555330846995533428325604000811774756071851486320801576237600995531630877835734084510094171272516010548051873970431415805381021619885688207350324878719780973213347460463626531524760414202710386656114015705621910326861249279626698208754055902856071242250470713058224466129053077496185477660431604366363034066137426261139204312621822411997964274208689090070612321034128238076903308293913797395985155290887934307457041800937933706987429338991811888401787324962604840408645733181731817341129197092219311178720522129049777126156675315545168495374333141256424682159326913215346227378425190490440374829742000210294397272945265411004848967866974653049720220894502361823891788409556207050231162387619796477829562511359969224740778913367769473359783550754297334559559541670753923063648358940771494306623500329644167651082854686721566704374581804010932312959735038843776364798414067607459601842195506135586827736396124109330828139638549962676586109420944231791682599138698177993662290639425093310101413885642576342252952279478915326444305845539715244603646899885508831520199749373763107336630730948290248169134150626506500046996708702733756295978198063503346991005633348194607265616867426415840205266132700113638692801878726473003908238587830744304890508915392331107235608987105015296923788611684553641060729720034678220566824515554353239855471400894094908655985233413361154899761326714506452744703273279902853480282369835106564761665436458760380763724705693198343552990396324859663317675111520205195883340204820248652534442937953662868117769967299176591493265900780964519543881937228050632722479623538040660209826974041480765265609400096118210212733212721724781002436139446292710966255101168494415819764345600725699839503800080252931115482923973086752154175618767456292343133131168816116581582094459033462168840967556717727197385520978257819127578064345824891406237122454246703245786522676305938516592814669226295501487352510976156978452309545837803254379294097906263228521484028800128989366649501264785126812047180489640165186580555556339645492489872920141015880557049878862404157963365114850952750038186801698195432863134060296650438820495216657539373979654956820024213700125492300714268720773989999171591608375741474675827531765321884165049435980698965947486271144112284017928859245470662355238696109292201020833258951343127268977596279798816028127730806139835010501717282414252966594849131133980133480495687463885258302667334054745351313899703339645868830498447506723762050990750396418007214784886049250041355911080743821861685639339127076930763206639634795690910992343436995549732947319576487281629438392546689349723336045380812033393675650207307565358747284696099418570273020340368757549909050996977140074339675216178302231362838547606263708235353223230150156994462662194092427287266775720812018551636522352406861811360253776341617049986207504956920587680058510106437893751630439695489604274626654415589059132663902188947058357028520200786964514295674635015908633644416051198214133771398262099297992639897450495228402867245222789550058291546232133600268002414998929772562436048048506273752026325180650694016918603275155759771018354133814137608887171048457055734451232488038129127142803275473488276470596413449020934574546857628273412254269975344173301522753101366592557963960920564417369317714435941601132886304277169304947757735178865890862962017742580952442083446635189354109656372789866484524973641254375231721870941701771934636491503346003056942297595296529172491804021295202661397646350925535104297437415563238032809174724985190231803496955256283011337203121140986574261787004814969071225279390635764406348210597578459638168758053711130636198173546067589434993844645031611572798253019019928792473082243471677900298443970673052776398826861406635148445963165001288484605936077588500890182698899332572107104261134576412957048346871114922324867109852624784082268316549447409247722153626521189762869169089060695776161731439464605344923498468004486644406390174259217856410535248889489713925570858833616459407173677007188163134262429842380564336526324231580276579469146318917248356468438789977421995889123915786761787983271154658346417714305427154759513007379442711988335393198386096088656611119309029444657817560480380416346456379859416078299386338178564311090725634467065487380282882875814362249989391398538552780471887419143111711480016108915793477781360025439346844313853111903193492323854167083288739503475764312639916211337540149863920653140218287319263777294159066708085208532943825296516241201790525323862950288042079878545507507246788723352265868244401122809403568577091818517855844100349442901590268801743532853932823194595996969772201785937315016114720113568732276518313007385854924345210847456732861258562281281840124444618949472268052003031501551655919191803232848651560512487333987241296231712593598601669436968590757758965549404380286590252555540180044699637083221959514530618623062749019152865399717673889211114531599333352166116436261107038558945208851516768499019948451689737219916266275363323350816476733080074790039927212977047513977256129599109223383812107883776568379074204865809073472495023265416855196799084884872435975869505467162804638431868179165183930414645592971005602028346930275057852441256044086850420264709864161639574856731225789180690048245419600232124174246278653352295873323753042923100348389311910865647603720124354436818085690396293649464305083684604472181933133460089414580461176906324231081979370287579096482715879833034122901591061525450714944677498370809127294138018881829181617060114344231423809816019480986045082843294387638783445566905908521540171809735288318935332380588261520481733045323493402854876539212679774581823354641677316027361490854319373608520475669934032151622486056598288982962445402289417632467385296081030854846660941679490558898782652282645470165280993534736849913035088817751076031725587042234040280567236920003465048917666146946338025949534967412057017585884629772106635356820829571161710289384484511793830918072545821192858450759254178761518047232168287515646554744589597457029563831161980909080783494303551799063653604566074438520520155119139517070138434394350672459862579995545930898481401957985706347462671963319126256208409496373013935650760041003513127365429618087454513811452505143362931768809851747912937067871465992785866429978927278498153509225790202080024344626784630283164451936032591981267985635620990549700951785687920338131904116060866565421794452465730850578547593010488750296843582244149054216420270848780398187851635429892165894930238782940890936748674528681995847520910303452427519773394265987652590649914119736999021322414288498605572480538409273406930860795728946780362261626259837256843042562883952959982980989339049426522696871165358819587502983017768542383052951566660587597655134455288865610464465484501624842300940217151817600365088851609921569898074367767361967107963795480964454334212371642894070280864306549902461222539802110049541324366884547324654083671939561930879177436409960827957799227725413145289367075467627174141534338636029541514176298020995770734931503684913985191755483095608008532808927682534402438647956367747278633994054880702738687588895236135325507059604307429960931154275752771768547842252491178593523578888128568075791962189414982444213827213999772472806057336134854979244053132849383034806353536912415120541872798377735569720094377694960018532824206037285460963834093553049427099771819880444110359275166540014430138420344171871165798456421867872279907462723338527177064713108230984588288089783556838605259163490699630766463048825667475409318597735965453632049821584094547330048183386531274697072723726117169222216441221245422220583901002694716074362553649612437383334040899117873370529028107239157945300197514663853932793020766992391092693785271446630576224358284382280879262764080775584345289732473075981738190497925621193477439693445878474376522148423943966153214131629364621696181099313584008660827902473577855434660333369195815849186719262400373560152220895436515258632383875112712454112499412457340245867657688689568641446160716515159869983901105316265076893103402333587397050068073057092894540530990926377819690748920209202489554492224421960921477676515941890418092249800047732957994041236732653590353740261781514183752378607324979413461889280075075693041535165836736829934247557556342485927585346700348704442675821083366998541905728533760198201646128281570010253135553821321706701578234031150631645514365808639500300283875759400692926885518946509954072507307541335147895219621330409204901654552231052317928454012720931592737667687560044681313493876695102058351340249578002448003432609236669890329573030228541636863624043225377510663335993629008541881764750986480445539118091695090922144972386748719631398191066047564413410041596380391733932438516005382603701248646774779087524194578602750853109032996774777529297889061900035711937559057626097254504627850142141541431871743040371350549983038369958969651040787351451962074894331435725123481616235727667135666510345480790903818702272161905172695706540784212421564696934213622136672990750560887716791095701441255425573245404302954363915103387408375101472181113147821325182582445350005621559249970710633264870403050791639448482784307438220674465972083273587706150236472016196901058670851404296790125410690821970684523904047658390361438847487654523506583030097728765896566699414650865301362277531424203567021032306481649086396394458634400876161441150617174352474853097890982392088430081933852703669231638885302386940247237633735853722438867434603573647681017075683710465784005839385584469367012362597357989663746595546019817302854951957908377967881533696305655827983308173175111586501497630131710810322542165482120390786607018720270905193119186411921401043887563138019677864601796519096334897653981998794318305900639173914977044747433730513511287810244136050017550376199727180164341118141977177791050973077549725470816793435266051219307919995499930244488858099292994226248827575023024116009636515162826528183939402707296964309274933717402969906171890582234706348230892273878816917658133919826376331095935213289292007569281763082591411638657053187480944212642765600815370467469262704013796072638350263631402946051620510172394260564542086709139113317848434692366821435373346386767282448234680593600488391266725264029869030905491594899748543268341633639403303762881390769984923081318408790619326706571455796832405636600356715615570071732788747309255880732301538603351127657742236422516274737608281975069439259423633306964647968298635492928881920538729294806224307570226338549406611744971327286867747997416785400077468071952140235363130151389034665976617294563807987130114041154119204142906290111341417242675453889477275691139348941145188181485011648297116510585670875268489875373024884163743383977709703444880599829776501007032302718366389032124125452794473377033083134078353127439690756893088458576509079018592915807726413493933513978204470621654557780283555888237497481182188753857373118603040923618814412723364974152025603853880466762128137758062646284965891918680220413012929756768101095735904185062463744046979268743028025331760890248293489556181832676670582415375584600352395137015012233295294084826026832736655712413397240323772387312779989747583214487314763022139863889175141463379900592892614208883409549976452780272478611312676166874454340085791541171471068831030024815355152522157471977293055861850063265214482911889288601609811340954269924478834841966561281123193537883192587314161077573239258179256381037731644706739220949146969127379149354518446608840953584469028425540706385449206586145735298009215186075547079165238667021123398270711092809820792788650245636372469517430442558920764434225552969745585437270510552593898894455068932243699337151274678883457128388380508301310975512470032231215171458720877301789620016188756582310466720392015550082078603336568287670196822683754825301519563184906205908528136575341810084782981065870155775487431826128314082408954247259586197892155849332343644993708429971837769371994681820721256433194445336369956248461484194340333708993314236247280325467244678665278226212956847726574660050924148122337764654464774606294588890405623571260125469009229884918065404348376899045586949178762830876865209050183026651867383377486551184315499603743742653542726705782659460925604814020850119461972994854728958996347444527856448577687618669987909219808610514929493500203235031301113045176809822846096010340849938073827553502744260091939472011013303767690742070006417492066369636959802454242506306815886103982619729516902535901183586724600886471376852522146263697869463141366681661023408626106872876687657761849525801185334477845669719246418180216112029522658096748341189988187460982071914386451641498547381461241552726481081973844081345262320301422665985140274659357924568338419854479454528849155887158990518156210190242975961992562171223054131046754722379729523599385889874136741550008770431064729062810789276076393601351540880303392658950071168426365709472997408656018170347545292475930456431953672585903615212241855695089882768950756688148964224211045786641869426674290759405666604426054546566000109791408197519589351402798360557872717218735519713014058805772031105248294298399897638280284351347724961575420844938038330861847532298128657781759566117845801500095522448033554502299904254133802647338610453975303215327528703915878838446378445239693358053850615220053649581212938796881653598645758701828646954078570919380564634280933832092865134412177962623373685878758054750248591572636622724927884949496339548164144660296104826725186342465221249010934532779977606122418019311756847987136938007964182063415295982918471606038473150878767980539739910635196489088673622613745274298419480598734058937406095876700779028466435599195944205451515793673240847280255682322037696762251904844984901134524204407811858707001663765591799349166285296699049433529178241154011789170025347437479125469509681588304968148414446494532407712295684598649951071095425934031988484184436638166914911225219562558218234277428444140636758996528524255098184057618801897677842043069192696467796573025097106520731485146820494487542686082548017849213470990674446812096595215935249042414160413541415161266353622961888410533761262394774143702405334211721480112915310619712813996706256109294358060602633481234729932809732800616888606612358728359212733694669249719648203516364444266227640916376063705735930808021975495582379854602763737933961710511861084848564070378397732427343390302312006541389895982985863037572086941416493882137632266356540033260974226818218387509877178952631936081171579195052769048925623866501089376842529190755481857333051890624127549983520257553593701234878807944760127039960386836238674641791103204882275709026564411987703117672958859503811570066958974032781825870488702677308358010289494550026617895681814075544459888939968118561397688758449309043653698518464427853485491169515348419037556582130134039880238704824825941734240824529737598422922913905177556836180268952644624418982276202831342533848905883652720131765752028410086819621234994288311325988305708899355414742513996657981677154708218147613364277352678748292688733625893902962821909619799703477439283288446520029195649645911529740016468276861832534958000893039876932246744530402422776939433229683910103546370691404507515415235953012633840731158562261984457288590348145557342069097850545544617606610217413722594764168933207497404245757426905879439731642539454731532212526982811304155608673428688948927031297411882636326898405281967646303602763020678816676579303534143479270358734542563182952889262855496325381635457187323073806600640390811866163131236777929222916462403676231183761516378529583768240055267354871515334066598547454377428351854124100617157769102492165629144944696890129361800069528799748139197476990347789649338726031453703756885891940754641213083158389220243282809795480918029083930173514216002801542114252857042740173470900916099306096921683223412128678448325715450925162512836553869721553897426478390186067182339889457952394205311640754656077181974333267027399336341859080552111938786937363259575304896393045870212875500863020945361313437281605320459602372740437168568551244841241880536413958194007829753336792297699740991580168036333587548832443007006298769509295407988037028838880141389627625689373493197222779428040572390424752137347449227363918128085919395843326977363387566549232928124004976147346778012436498493926299988963628240226216880878230629555619472386933654745098768146668261253540226441463760296440227264803853682963844152541686378221837633409288403969623236028672096383044342287271025009568812972939308305678321181775529141838400583982284897938007251156016129237020423586063112635378843712745701581691100191906944652709917315470745340481106512518074002418661461710341085359292830902497390869033316064752889899241062769907427328077027671291361300329010779895421682229493818309244936898164729187518074640046400759977430102759971702006986452025657704783865694489397257107256844398011271945668259757544945647721446767841105620635818935844468496925678200679456240947710580528219830821684124818149196204117453700317693082191654173990936230236816740445230337577509487753102956877987474479720749043781020418225081588418433588094270070925494694340800854339034380353672716512142942049165726512536030248327716639713350486241158590801818775676667725246436167326942442518355058973474635682888027664352311580655625946915236719810097760681208885526109518490617443783743930730924837822504681994872629928058866124618537756282294982837725000899499168972749660515117132231241426071203333184350452484712634774216470003355687641446062376556918116928649970881010377195610676325993683609630324953930514167915645327068732319891949669808594830933515116129628340916363107733298073831039067387888743214220410477371198389149490746798925646176346595430812417164042040453144692318818187129709361650316373144826271887988682150065433617174411025825587886040513597800647020456482078462021903575462379052626053342643334309561535612743641070543407805191746390621881161634467882931079547576542975697221449035497947996683838195657828861177519870883810530373613654017616410100331977504917048513005339424440451285671175949502545111158902439771928910560711535485591705496753554193857099671500806214725563691965929718255289626298203526727731313545135458058562000721563168511724835510680662528829253341772401796730793526503488522866408749492593723142451518466916522725004693461731522588823499846620078703710092019966372723409877933956207818397120933868409332930875789048940106462827871720445815942264161970000842132592335471630819862451520156991970140204143158920367742281121791334520536670412490262118248643394571122312667383453447928834020084358958153202713026167200154834797395773586953330009963916156715559740302560480615185883095726360338206427125025208893601487584361388907719351804661267416356577658992595012683425872984022272340056199028809030051981320780586303739902077732594584361984765236773581593794199296580687504152735115646649296243447374002211205393699458112977068548773253053179321377269320906505459694562240287455040570280693456878722283452662384005861331131281066588692448134476973898226763103349507988273089765416140472626497658123653639987461160513647461410203333032828280525901011724410949851527383682172845474605712787219930413492195897938931255971112475594097778567180287131839060665941543684790022387757868627073540115068086138033059355372941124329631396528507634493418292130564902218694659069249103404543601665338139587652725794825062521487731343675878355474355780902361464807738919010750825385944135529408498530921959837745730479456088440416777971247115623445790277756659981440089237211389374469464279223947264313289785340260822390980956631328218407582998293418526463880606131254645328452027900204390845535344829088201487629175144131415477979009239885775068756490514259590267849204429592119598380974448805167451852857868147772590440554589111523556841864658190386595429477338258344608098501755361977831087002007924154181424117686114628034243134953421010773928660102477210597229142567988871480852373979112711064957694541416572939800152379160607096909199374803250587859419027222930301141590992385351588483260853660609360214482316750226374636336480314315094683978978943304461117753387339310832077783407669148972506467126289118405355099740651282211663028290244873524740694650482303421930827332039381859212618482883185665736989917901828981125101435858144555191412853324078007971106382843861403264184812210652712362858538841855201682810205767994167723621737398187231823597942104308973185948652804797425993402251188372929991485596244689580747084991902114943478185006710811313003239237797399693686424006494584269225216897706544708163502780725275362006869366233124495450053343298158087072478057321617824774943299519109592410495801592273301702226594904921329815657207779580458350454197088808337347142963143434334335590707885550596358357016074992489322547443052161756965536798346239262631798335374220937311503493728794030628126579155463764367973892109838354763185003375622964073908844462515981345860245290720854673254823060859451501117488915104647634798132153859946102049708147191521896789863562785530999766548613058033757158887682830415405903783810984438128179722747434991855660636799847557200071674072201449331654059041370844927608837403767994509361664608109095543805994942090238615103829649036076322506299522721860152477074601123637231183549813402041859219851580749884891349903531903268014453654577334146767117605117709122371321491402436612511324425718729892525367379753598051594456854474429299746974060977231014098944720533312628422088772716965822752343774761182842940152078268991170855268869253389932587952113597169480521938175596758107541217297738434019066479750810955456611118955507956657230787188976930147053045263829333814232721380680868912962720777150326966891392305216405246523927020583487206147651641404454874810693437064506100978879968833975265852492721098643923773856162383589128864501441807613346922323295846427903065001506994584227521987380535421415185238304511262140589290936621079775104311228934863097873593347359659236408561147181119540699812831528955772760166544527070926485106686778760959209067867076742763648920445809489795038913250232386456287633286105459246876378539124964723714280918528065444412630611815113106550072346763966648956920420325590597380420766400836790682856389414037768114759602774828593379235474441346491493214363121340443569421790398606907646250503621394700480475650673440740076932020781317698143273500654508614820315175934636819905571462353364513500181076489209010768121375984006586802517118016153207350982300995152347987261243053323033079243610691230562829292835696924189428982303354937674067620540437430303567404786189619328056505561396822433167532800815214791129460047883619730545682520090986182975162178714741656613351473020609992103992451993911219669786917756034741313565493248014577998637190750826773141648351133587560438236220014817003058947439680833279065554300420061697273805607986042976904505232905519514902445034145800571518046301477473703206929078069468470769172324524932438542722532323034324477952090069805499090250835305103951641786747571834655044620460304341868597140851288131877220386448784919181896069052681877765363738677463069994686375680152181102622034338776598569602656447108017426281510029281980255948993574124764240752271959760803340223377456550066758360302930497051063776315470499326965961477571466540879913463421256841429289835195300833090655204682157229868860138058430857106373086142262431670069746087715760694725748074696012430682458903351022881873390702677170746501805976892068792982922857375431587710682976937751391504641296366185604835389784455264498812033523509968934255834755749763896105142161815747272042615318920186705258437784528900104241759097220513034637165445325892871866751984184146370689787398682042619177066090329185013326490699641305874151521814698403331110311579572078650004283712495973333843438755010491122163586484270833501747253677697616058175431184594146168820722525331680195307887380582024467778848050341257771592487587581003453806645689856618835048279221209863112803860733488302200485317102280754339651299487184924134322367820353191192082237591710067999788125172371940821635523179170078452702642440752964613464463512694896140494229860599220017829669648135730362010888069355346709398940525128017354769476336225755103757446222270050941627473199572922204830126284802322238542515266169301063716390003763684955207028280112952053094037320831746519305259799862500235734192961754377860692765940391175620855815330115187495450618369072777495713646601255788573467302071318269665006385766528293930947573452225728868450201948087371671055704326124788535430382700526326845451262328832191292483521864740925268979898548306994181993591369517260982659165740664716234430028176101941998644250506528144799822805243532221894872001473925431974311389038015238075520120677887861435150787183453048557934664906617482515348703297173518773733880909743083449641222503338490559325352216362875926439695291526228413565210523175937357834516798199615508614324718294839487131018491673090370700964520143317972378113751684867525922043039402992760480865480882384924336036961961529376207228875083662577828688996198472731796147866301520363704530288969731509332232740585855829505921867229328685377371339630491984918591713814940059221906365545762749425661844799785366663702040470925888603059607378785697967518169823851897997092668867346601585458091261446397521257248275354212975611163148167951147530592866645800087241626774790377559773194972947006435227513318872039747661534590708623525228143437432567068119188994809933564046474955148141622575688764488674036303795596338423207645020900744717654932189160529953602854326025782752031579154092644444827489370245939938221286622332807037628216746500168620819483199968212447410779873518640361873389388797183679782094807586217937304276960127559326276154313242810828984705798919543178264536722464406844393046191856787570752516775668960576719776617969880439595917358698534937260543776522311466389985852325429587184015265833009934300546729715733753385020666797721991925379008184436083825130362764437093216764158348131477965693808234821314068050267187678717946808080136414653396345669838717669915405006932505199007036834920401210571366816480073752219207907236415078116463569650358295235260656099159567240415166195623623808747718533108126803230792532832915800597733495925133873617147912056881466276166208284375853146995110582592828272423190597223168598769452520030513712810499191224962847244091191624488540684362592764042832716891590683364622922812093463897446889138589996709610203549592884717404662790899955761367229254080461556890442951052995139805702583452964092619160900980401546578577801924860220660583593336882617095144277766334264073624427580015718667886498449337092917007163083043167414413303153185890038648674192544667730865250626403063414676951400484091143296669151407343196621773740297906853860514783109995528688559171226936311131378964091068925050692240768036918209882071831037625770117715450816830548880220359890225297958398981647938877279081075578635376040534726532621620663949886821628154329824004075400951283525295628977232192040133994713099495966334412281106841033756056206095940226495288049615426384715521649337083248496796691806358984980400004802917502209705365617827480949915743218384415107211046487137962657939296322574895044539000409357628281335810588312667569455188770760416679610023598014824794888960717519859507559608391597969357008191330960631108230128110914960194354133400455337390702232188510372255397288045567568652584793116185503114648648395506189990719239709783252695248672865795286239155398739094397997617722739996775737297592743238410757612579455508385373411825805969583781618266445153217800437541383532931821154888974665984196336168220845957308378861923985934047602913511765538314338718805387244363172957741588313387998032240343598193286782791380657596055311653335231158841495610437325732659775287823942661743349713746711415369086929486217327322735345112902820743086916118499232143654397844470574566869222546305802147704889095989683865197889336746224572260241552245790642870544346787709788869349834297875882909015383989211772065335591601465114956962262387615661066570133932007883828425563015564974812458682709489869973760197883314368296159441411428293824002925372561695243216460007638581530550936666570906208603192905240044078149682341137240539772559929412392119814039549831848908811850129173530030466732261664549622896958228927170504815617410154205453412463988494746072189550025576737362987473750477306994268878114547546207910428891932812684919470851568533975321394104205438902202096474366272724964943593002970382576825170392617791386756008405916887917310087892743202685657587478665487229969074809486437225407917762301102440916796973566372147937573921428169984221127138968662382422097138345613392770387983540057054797109558632458929914832332374402266755533634212843642475579074297043441800678513946098296645305832727266766032335339852123252435437370432143623803534863083875854958414465810821280291452583711148073278390365586523911105716441234810007678608447246088506429329912095891461397840730512080989979023478909853288112085346099572604758435951626824966533408182812754605357959068541163012739040388369971126841659563085322831103693862563787574034029584422385321832388292737879053150691183851733917680507052079820221052605582559280160821136545272753296295769831929831838254962188713219437527026548444858052975101707907304843306262673607194880596324053191178405967474788829403725751245062497217606145158911523738753641087516847454016458398352036848777399290635004496153823192081007212575484720696499245444930697032297297665347711678393564152147201542805855981973449307264249809104423050241247848691646069298058724747236821680311486352364767929896190462307410104863560585828811933025562957157214800551474376578594680180226467929758199504042255869102682689007598856965801406636167511249106629945894331135789392736352079046662987181166016802025220672079693523202346636766607766246464754347171082276858866585484945099730645020154561027306287088319135697161540941075710624358223359466188426982724275248568605363480278751206312292950085447234698831792267392767926329092432229084806410430195938637897077050461900726554569573296861824131362030760567222471473723585284950200532065623978434963870380948775612258021951087601441500557925224703063855853470932224102675396829455105074878240925877350434113150780096866374837488860734376529284557939423454168969535294958587161702222219399988231385820046913750506308925592433500159669062473870197143741813882485354011934241487841221652664580526455053018196160842832161042070057387305905494844298292814476794238507359872637102853212176518682745373292347242355884698828885719098054217165668090628204058182021125161329056102110069884470497347415354211057511245206710970496602187675750332139079778732362370020435180574140118345834262257610275189449685990285754644641055418166651220275241881416993836611415089507006001103961104859073033215550840142175358913471125000650335054976696497953115129340322991749494183620016875345319504044583066917886223205778683147932553308618433768886923108338480204864922854075138072934865823909675436420690530665789223693868248165331350040500673220611228952354844111052063633286082762062276088044083881483699145348126645132622534937972049049417181379983639114280165588346436543120734149708748246872636778936666516895347654734180881117145172723155826386467744936218271882373382048033534459500440635233303949660335417795368923439890505797063428592225788298181324791450003032060497544262434865559873636823240356251312745372312091025403331291754911518970970506606407589318371262060843112022925862118275592170441900448549542228303000102595854557117295362745841832724298563431582307870159765582358584338097582720029987019366315904288198122238540567533779622724093355774597467692296894381391965213476598086319997320078541950026648349689857596087295321839485252723128674149272498864028671487982316496112550280333018252416208686408964098187192777625834271149459099173059994708168624267218685080788044789653540143948978256509300342886477845370780594181474470469273963256466956346977484113036163009457206759276771461209386051045001221828084926516545390731454660398574918499911976491997567033222711067287185648143606683045555802674417189387229884119227359262933053116281312487460772680958459159838715043332694107944173906366832618785284050238980377312630052614563011688916729130935657749189047119833703053604696227325744619778374812846761256502499514931049085115269721238335590855818906049969118629609283752565494153066669116595951880884760561894788141560835465915813440807135270849797988091087691685604823527000148930609869111410820393732669340766499971749256709618633962415099942348316477170741175513771114269782393994270555272710145535647772077502376028432937118041084549266417954680059740045607812100679187592027851126750054512411027455380955675996209671864110788933037037726686196469978062732808868532001019541424996384844164315463648544605353691081404952765003484151946593036805598824103341177268065956527679598553030453879077765879345915837201057379173494333823238839964955072285257252728271132399779688654851294584443913122519559975392609228553344286132878702566881743980811126061666603602385057935403481565483878792513047795244227773512525760623197587717689634107965904436268178078872461925774734425464226392258655967397469990561217063984078488230775133509820959199561843069611710697638470220348670293858354424480785286792908082946841945461689367876256813167452264999264917934548390338328665689442685604785856394344241488312644134328508959669067408691048529489584150436866364832035820227439700701481024653163146290364454636755917482226847955740932801622078915083348675276650463249317110755123906294638275177426350176765064276697500131995914767074598472711354273548121229942621652429582266106730608337539891359993361479338781209053616010915117001271747004727646211470204659760968537154714902149337695681210306790140280362504718897675356847487267022914198840190572029594134018221406763074180216822173032190177424763017705143133521009418037214860601833457034515869475988283778440215576072247693356352348434374285580740639337910432499216574941077709031000983172359974960396031093133656729235461246505177930273329324970544157816109289887421474538270920515106882355418432813459246632407836790809089638386868407369101532869860321667351528706248919327718967306051321776083598110408243090573533276652272256508584088905993514797158125686172054354578396101776042949848719308303640158339599308455125872716395789114016083200431293933111814555104964953893383399663474846938626048118923770618205679797065628455883538040746021453527395377002898612787128838095846543607792514913621782374290071059811549687065212332663070909824519327412827208563213938022370868350478820087791056001080283912121887981500860914378442807929161263479808492724997922075897479614930781027809273853559887664727967381753214902185235063382701734940878756710883328412945741781248809967843110998394786781210686621399890146288017720091709330719143352888991510897789779644441815239786130580030180006925044019765374658861871450267193545763743734747473631760788169071440499207141255465462463313204387124361603445426085366778065947872540579996289114171659426176434403498439980969326313606623158900842369981801856061657642088930833384952051558015235979971950276849301364709720465087928997527773693875257929700323740706301251406139276777262694252588701083733171825372619667951189276891793789931514197286451541778978375730375993314867773710440786369447374749547884056750149426885721219845492441017759978876627438517552991291823898405971958799776655545808920116476633359764011093745787283149803916225244433350453899396289744363867784656129909887389136901873924551304777740166447526388531148716740846489074359465389515920509744381257521933939132461123892442551444228387037544440377950454816972736957261623606962882761660676814395947306756698323399461674401845249338433143678965728564741565620888469018620701514902102012967680342212440514687406200929700456929775873886321329195064377961239290366546392462291269432711347028067106475793396350711473853984563845501420400000564022129241295154991076712385075401366381608347573700784015484963493542983006442800747146418523366987510604785653918118168783300721229479238481356245196473849733086476917209703864740498661840704325022078249435109696160544653041594510982616371654087588280831642217436985643347105645565094218033703905269820872457027196988518473884131211678971588731462577981112540313194339403287167450241233641314471515741347229929348932202882957810619405190965739220981204481090288089181216911454591966863766656704194940738398498211979817698335282806559616893666857091304641050936982123644062566180878452575673440183130610014790023539134205285819212778081611351448207084627390941607809714856420136645779582510842954493827815148506243423688841107312243191595348785365328867718002430273554306531824387505572762221191700892494919146992211236430040781378723631691804660091653234374264582133212341955196207042732781496104732665064294635861392600604526949148472213996082987262947904851310798133826511444522124622321573085889858393896860944658521417879710334693998387520627425605017071100842505416360347390112696946100777557432695856973903750698564236347498180648515164095254975989242602617215027289091436352629264620595232128934403555613585740352748347472431753514707740444026594379072735139021527375778048196019676558444121264102081177299344732005172603777602178493021945514655713484577874422238064136762193934480900537374395880512734244500299600486649085652852318738693223808790600933157972860820939266082186427885074238437718911148483341902965870976845003966623034803032538640483262098560089329249653093696755556319328965435470641970235903936115380754376593818507077946335504284708322044680371018952815878515946236120007285097783551417924888891917383603840379412305658507396794419023428303994849445601574465148462961823566519301570088526119394737182785851771582216396986916260823972942604679230614715599667932007485204593264019184072177344604051449688092761085237662675308349406275166878197105683123217000276136311281687311529760779644337938527236634004370851431931363351234231005681305947028445352606256354076256269153272141370454381958700150704262240171455844012344379822201056930474855932832951366493876961563596353763229991163790977374957382365351032550931079411561893704794696550387504744856079579103559692969518762964012755565747942725754613423494266279252666535325063033552862818084753961668712249122345639144086328582000981870607782267562377242117663762255358814967949263768030472943282315150199544935728127053118394307649657521941137912522845270829395789354185377394297132068151811441569366092872920672896502194767704224761320930196036824815587558707036857053729681676773463862715856709618097976726758750770984565392387844138347977328858980110844945676356481359602170517691619551157311936132814165048395580568148178187286948111450256249901446977050600176204770494853597851885111043011886025359818257133332010626760514130437221832112100286300855343967378581396182231965591950282419640038043352845971413014304130283780515048183858194052512483838892856070857192062137691375083330722926936521641502443882995204866447703377643100794328906108128700907879204115453608810201706579651946951393709234431147612987721891010199121230739842578793207562297042736351699022651356911232156125797150933189635071932648659920875634984467636229505400187656804561364644079414441063206802413661128926235222915318043606834754718111442557052930796366500374320833569292652817613884882274775697581676647557681584610992114627645882245522712231004728811559240799447856818073509125713283958182610524616461346645227755192994365859560657205025513778554677620412586370613802898248371930683697915335919471795033798188641850069953422477142844218827429541121758596297485325830486711235317042491531998980378870844475622877955781612000608899113066483259277860923816967714036511937704086180629129951253000442888116041657721110840482566521256486968754635702017921335539012366114719325814845266212753387561177218493909878490665856274049507072981845990710264290626763554013725908249655951929141185322444431096441080982358460549147723044340029929040819419752094501331548698293467010128318700098513945772136486193042143787200003776881741993357324697405135337401954971758585340951936886516429036697726620528967136313177939547114075659695236964250540064107894018103563816182975602296216592293702021419438970133206225922858531528299797118990996658036657030780853048032133852305694065650944241292929861362341961467168624533447158713169326827712217645936018045863345582737390772256577270982509140963370191875633349004284200646529638824240068200610372298111935356255803681769740722090993264466971603325539583252025699680121923791628216629323158759931317908889208806921170019711329957979725196139597966665944920769670557102841391849601224876606299895175991398362708365427454336321259086225811633849444184084451750785836794260946858505970341404941805482590628302959691625532923312431687285013177337644584135693283602400450220500568748035658022910224456928972689722543271636644752712453898892068317489782301407516943256067101131162328227559736871495181053149844590142772057319409975757313386869090110567250962357990522339227474549853605229787029876622560839516956641906239914303258010222047534265939549397683147540845486054285764237504713165228249665111426654608373219634412311096287294665408749181253972668089746499119330894541933234446903727366656410861625398134121324984217742684489732879245894358320394869621862055090783865479478116310002130593346507472518350896325516262354472276949879007913016079339045323242343496411587399099435323173482689293466549623221706177299759654655877297158643491494039724064544847552555215612173315872320404315988306882665259224814643561984412730281619890380715264971869492429698916587767067661557696496070079550278937570637136404287588916332273516154884425653491227408560277781023025991560350848050359376789922717838979728396604056173987668078949711452980169157543680069438280481458224032745917596236713938981249564878090642816585907106173199757975680657989717807349799735682697556701174306989735197166416612534032948910228213214725594227116409304428713298084714794660444733463889587450714686452648192626588404843553014988665434260425502453106873463601766725119709903480788056731441389028729160233126158743417236643252659503440699791484709452887023185605943033225759035491764166533169783170920236808105233196847502720925151247791722437421062259251703644127248291488585289526544566200045939666518846685796635585434561250052934167100819680520905519751575586319586972360444476026428481071474737482187414942149014622452390979341030042091302039824749443276245170741563828904564894548610307515931475193950695404683583108108515024519441996720384021246497808590313563838071735897358769129523364077008583739970991868464026820280192102061375168164626871870911823834454703586102534172896371702708210683635258907304130585281335291536973717713957157202787805096385313889035688931245350830008368712496067533685837621252814187129398406950148873459862871156887468843066408849983658214035547041262439746512052570459080254442154332118346726780942340756047583083443788226090584287503169415716296378454254455285710151633428324459809969546898539431460030854884024197482719044663909500659576019019678566649587613497575946297276013114952659881067748618128273060225731067962391742932127796306552781275112978407178823773624452910739425982720584536395432698386902818926418890250085566003464285515220520351623471107979596934133563175560430659061845246127429640720953362491900706475893006087232370326263752098135758012517485668554013877279854984508887830129214702719156466746972865408654047399576841041327750482847813789610177073661161197612323018782361698216979490221578847451074453623306561381906961755694843519565861031524070248495992802635126898825937642618854095029195477627620423534932579632081488293050686880829907895196446623554363256516557765658285923837634664339122742001107772891081835467761813618120160995123931023034051797452727691556475790705812303698302952864145127453655615913519555622441748714529367517184443307666696758565010823434574111086063325540632928509038120719555605781810867681650794735752888509409559082210376856621243631396332796993137013745174567946394509280471467830100840455361411873941569624924378931440337293704249069403180258637825328585198852840333300183178915714965578104475701241288900999813338587987362168174803190798784836922959677340387134419587178851156581413205775350438255699089483371812253083235359650232330702677122754261239536158084467170582749497948727772673715044398850218484559017018521322365837314663704923926355870549919281148564948768104380475190017150657042166845860450880729740428659776680441378337833257243425313781542202291772563674120683582890009426234946793545794604493151696891874000125055417993803591895335277353776424888243755973497196491858414894165436903256390917500515332045906025947924423800831659004558385267615004379075663837421384124115714579766101199616954899728830182677776371287787833114824687258541283450129926807315108331734807733814524537791322099306379763033239911218744809078873332477195668132032991733334773983014882103254988492557843362716568391407253363615544890191348333464652545259060998230270889512670345223186608055380053146916178818143679093902503242143595782177661955528529809263190243547613067212530556791212559858628732165921758429979871492007338703237360542441986170008999516562805414954351353648197019040930067618364663022358620161703605681372025211471499186123459582512971818476084076267011065734736078109853122259668640857927363289506657400759453854634896590634612629143623643734470128758941890161333771553622711498866300444550776459706293470529027888726356526770224476269715620954838199293639519947586927929539598649939139203346790228816447341585847868990500639945753813419433392118882607985880473063133309734813365152279910488041532243810638823948705846596876158553602417671566046167340469479977461466738428308483601248282130533059790322051452989398544169481286791988279449682029972545272638107984592033471660688360020262759256815797479474305930422264725068272852748331912644728255181956609487964175415690096055647488854597991918163189208978548451285445371177615271715199180690592573338407907688515287419178673785542463847211366781370830970377553239318402829862143769038168645468604071559087396630668904527301850222485323219951704955494150325268858439406355125233914868589107345880584691755648387155332572373954734814842286876773014022496871537314822670916565125233594406385554642030891959172353338078944281136879325637027713056611602527363829149932245888901015649867354548098516294998542895663365889558356454936810369591424947709544175001472445934122375945150302226788072423503925164093896492577033310507649494361023258433246063665111225442583989131800145666955696893426380971105732558129127953673135471615881944990014744681175685968239723281509259538503433383490635312315500932383788308352627573915057702812873420399353946802176107571957371554448696455988779047252350405369931767515299795954602762845248709122342416961036773558133054137120663711090256815173874147302443839408402694913528058302792732013606819055000686664850732645144774882479069172468676631919432699033684600843195997657967409126542909525826734325150473017777752098067205600761216599780877383977494703580711991458568648967446543006138061209036954963940192045115605817761832643802808616300595325438006723171726883991830457831163645471485603811949349112326506246022053269670009504286961294038873636006633180991973169473316703332794115491218365319059288253655094548055494290109035854552230815918734830203609192508479358341768818684525668858937962774143786388220458907928648155104889140196309315396551766717032040003364143972488959013584755780889290833398675930932626607151812915241108588911436353440642063905774255174649122707967868454584499430623626996481362749998450650961029934958588404809225504664755380648576342375583430377017050700700809170515257233452697394311812322622682114063399736281418540733704485591505024928473656234013818314489031732453449431849981332587320979181499282315823522895230879876459690852936617800664090907510625177305614636777638859138028749884814408380028361235899144098255084729558155519026515895618111423919613360054338720513133581742873178065393021656289772063178930339709784992985810473135355727199410865391607832333376609084667138452189020114122297758657649980030983428256426433444890629409319220306841902618506768297626186262283000447660542693458632307809286581007225830431058635332827759987577482315769785393350199628750583421844414356229428672934396771112328577178281182993953023057759894033811704836360133623062982367744111542401469715084734140650775586619393200500151308108288037325062324170639331923448631234786948943136794502798382070062662180880696527836746005508741021813799705797251769440658772414462561208338824950557915862625295975591855174964998475063667210907350524900957699477875751041685397470864965403796310774805884383153192179024901924105497557238237838900486669766744682210530478217328287122623884750831502601641529451725016168619116541065897738137439261655706641366776175862899341356399837200101278888669666393503480807870434542438720315211377479369107474122370308085152598327661884489023033104704635562431747486963084175661027385893641117943010558452955015047836745158812027954735931340173006067204235229338645353502095632707605316181358277415490028772715003269515938615173342454271613720252309202703016540957430353596114596947314022453247810048421551618512867117950492842138194502328392442305240903442983881652179790181073171795953587653487848466170518812988546877015509130777645300510414142634216591003582173175658720415109604485297108174826624625080109652243820972223470745407764048443036300797137427810282533305784074933024302908020672687301241292200413478012189498510835721624956160363505040711199019489295448988576205905638652004368659310742974363205106460202845233103702531535376576056350845523051451164467950054517429422050584109757365458468925025367747840701374737692243978899826771223396255401518388224936640238558735445564572327574891954661462391521365300566668077755513728192328226498628775993603190457554419855983016333229526900050188699234438360969492941371822024975643733215155495764227203974431398388726944597621003595920151674181242128887541198859438189732915468761594761542341099132080072102130857294611404503737758504175623188473126137232910079467944107430187441669713983570363848874239289551053542270715520347150935528096352313801062039515525792699193465002161285277378946640917000580080062278416446737717208643211584122777998392312134003275597940253903388353142187838459074096622034813454764490818818011120373103386334908353411690345877407210304585448379681076821053887413906312392355026649192562518086920252609997958796435264060048171417596645070064066913450223941557335198124285141848539948999515614459626086431515498800197233269308233028825651586994044509465176993761661114893840700794076435623728757569072380974413031238887979667883580463083100296592503305391026486678715035434430951143799140089163598417333822959069852407636441892127297044551252588579129259373929468261320441506570645383961805210382531917414346427228544948119854752533057704583279543122159340663268580863561850011209765432233020567907749301128223658424040646191780594944592239113226178748571914640143915738223347529135583183863071741168609387691194597495046946551363846491389804591488656716076413551146238005992796805844717639860366809925723968670228970632783386705441709776228254316629359282313562615086473411262187469285444949716041762218803313842313033003616611812164259340374678580663731981509145994036247610785670446838666707905555056193032349927208422108211666240138277659513021288929272425837718278634195032344593473631288927566478404160835829367972438756157696570783832710045745564562544885803432456579787168526038142639855324907294875938427075903717947037587565514262851178667333967604875188163807243341976615923277031297613435853664173655236050190072796683917948916687972679458213743903570215959736723156389696714918151564199749604300681999298861470235236052958329196900451521848897663072184098578170960093199030679159707903550270390863820406774997179090102757480063098549347721754570701243994883965306683100768609525989512843639923707448409774021281856212840556817812239945172917458813864195580894748893169481535481294415549074283779312216035745642393082992334413137532718745829446289321722527894383612890240481454587327386562782237267854458880843952816139563891670096295894297604547156651537592627792886515355935052674054717601248466608750069141154569094277144994336489710032994170903145883185908134479548141879958976648409601207449603381556328414610533661959488738394691430258397001123378230327950774369642715342241138868730284887454936625693764378232949222557235687337627481083694693760083159393046794374296076568631254362639033076310077662805974714089834112229281291948175120339077784037250593918109089107728337301160476037414274182942570582225215193526040421888702372924622732575037486742374025903439805058282933769272048523056159647812100775776485525604080082626994618537498439112301227494128433803501550223824926766848834771816264022295242715263325119947975982653700055135675936648090196190440667926580629886404408610858162467286309052550112582376910058995510056071125771501805996330238586586679709019942852690504319907446908403429024439210450944620602243219615984417307744290523358021210698895882971280016195100168089999888419742971894094383789890176478128861783463625087348711114143821011783082975962991666133398826278862931765403248738728053198868278086878530169639986305083401867529685988290313092899006680464763456849389389988636541866750382795081249010143332511607089235031587452513800525300800297786314010614654508821864780477619545211197307048933467977577623589374486082267439124083691871089843328725103401204201405287325865227885029046372307721131502690665725788171112224016711570291379144903305899031146482337076798144240250697179666844312733817533947418664446195950042140941948231814058280001652679076126195748693430688380695644661956770124233176133045383002629099347290637840705662749287535703783381869803084033922024311030606709435347197620194097355583394379688511004153693305888828350644144656078007887965657404819067231785320377503438828734207543944777453473273115028429227105442673937895634130335133789626610882160903114891530543674092904253356277487130304200757767696094179393312464115337606371154121795011248023579488010037196264659243098482081839031189788683174710931599296807684780260660475768796599947010221759900895170442167710011093296707302582203695430293901271351256605952812847517471170974794127561286444823511799643344322322705531264172733080453048032291000739379609021009768602335416237155370007842805467628665983023328293049302124928631209457410705784287462794568115753280753917530271572164825156875588769967010788255797883184964572377894561758429375514569666110102823811725405729786095538649982248428145875141016087252844066136727847221191736794165947478043230726106206310410586849683474106438160453657124236202051021407431005318491176856991055388972458197863367219561861792007757779743679013863830733324954688050212488086748110940427851811345472271241350380346683035295920011277531342017228988724654868315527302142924292994270049976190749523948729197944574852017723754681990767397705811337040769030559897735152142394067534671061023995476902745829194519261333349997622599779007356083512451843247467975775730299767502604898950730034389945909095765239283215303281161459708167464617297935616988315685161282580706618228694548519676863666007720685642565185872772473355842074716718457489948662342511074712946989978253427319677093645772130796627289025650887063509310204183348808283020835002701946803379221215965871748971488503922045327661400158212912352836417833937452451182604822116893088223111162755852952138820849869845986565445573194943680428500637646345933785704250890311775366796967472632706368613340478199944983220662162568450983619245581920446614273878045211160727565414750128352494583927567695673066973065544521461016591967584763445536586024510353883913269563039362591460334183058369958966637424879510017884504030186784638135411475956410674417009496698552016585267538756416472892177405963487439244689782540117004546274834028228698783103548586661830004118815334422859162827404346300262727646565064565292185547465788991011147063684628984950689701410277640997367023899665025293928667690973275042988422871086725230799024974094805522087757773112383200387457437711144796169229011181586527860014159964126965182754978997882419511498275472968144166386058389834602768283338760829794002012789283852789683283310601577743293924660295116209565675771259558760314795084286756359970287165807009467915700083087214956950372918033554978245811000879295239890680320867709849675361537925621508661148784520657350048097737046977663010388142642209626217708889615923202539375033705641419010859747427093916891563478606914553290036221854703756963631666629246951870749569842426305101762887459359813810023831521421893114866553147563662340254164139119412716659451444500662300994840839768312858963753247940455623790622846940346879240759128300007783905937522701673908322295139907015982958161253189771134230710170463263737542481731625149205255531050840433784553047634632814279422226655143828669801525231383895106333590044483296404070674582950419303655624647419782500150567283444454348705675929136388912933170093324966469248903018417239749810212945578358442081177924415937011661266665678046970003659364629037144320243660791701157063496875959160940372885148516567198270328751711356704574402503377485073899649516455792294610710241380754821281233593900872145379597839334286715147834687749499913020629020616292763544621637824592980920216298676788508011972645352727519644299701847969923983735993307662939001635021164631409545146273080608669844252429988068586282042358839825837077082460799083350887458200197471782970818431132647440969580587709246673660671563641494878670715122741872074470082830353917606030809710399992890525583464878387609360697678873336175510459892593248302140078825059798923582085363125717610968642936815527121750262105340361340504487804557582433385190557266480767002090782537718725796699573110155284157272981382238948193635515093841825288991086971658493281869258094913461668815548164067483220224560766985258198608607314520781779391708708004376771091428261680481501067154697658801060455590210082513624916085092523748314681983832891842422117388470609720517751867014272943411681317489407370204121036680678064238401262452264054371021796862598376076777896128078754791048039706948128608486389150881263176799895960588347447569386225118122607344014450044730372478222987517678618508583559975634171412324176638086120234057480814458321665955007032287799844201262689610827971504022869711074615788836690464650632400440410895299599023838313447583302522276177998006019006400909206456494100408194462848739386861204075731766340220796142741824154806646419021330577977735393974874342189169389393250329330862443100662611201796707359428965846288300644890020080472925675113412715061895846602131151292456899777181127589736612616532882076476251921666289036885237853069644303848503999976964050102327042937110822734168623660926203772406899688365409623329163508538720512351657093174446270664937441606751774653643469431674694302706866702134662222684582983764113947655806907735221090443869760409874174876178073035990084725490676189867863152408700608862473432592337665338513209040859603773776905879965413548668083417349115672141767136922408253879485293166822541734968771840270760294679804659450925405923388948109752229235119184390583340522786277957960174361780269043567373830079423087686149465404730736510339201536807840100441993664318798554176972032360947694770720944015810458805054625367301564322528140106957414965450908022077486680463052232159469711980105534972122210518179694105829528007321765315499344463311878344619396163750425151335633982714574692513568282507431543060395943973249176021099297197866787009556617215480908261415959762973699706144155636470853076956736803906314281208736930513642527912463423422727046002274847386234441633551109849543336453562239815058904762262333343577622450644609953696579182475221491948710695156925712922843933119970186510902807569372230721300715118014314228907080077647521582180413800360148223765441312704620623266159675629288330927933052707816564796023167483528504776579380854460076435281722657479678217822609450173454864911292342131667907887058754361459731297143497468871943390382196498204655002851398028560099522843274548983176598196818428418633123076687488601605158221692821999358381012823168349963284259741487050011150740001553038107950187222088243106251426445794819802234370257068838435170454193142353192822748086356894923475174092635536178707406705437870672447000463559741659548213906849976112897678815143656626442956599239465220308772037391933853866453437061135458254307968591588035759798505294548177841255266775700089193112452427087851967290295572652518841347829022253364310693923307294393709746174548444816693206797714357641679222649424883408324181721588449672489342350521647486627833163107378269572509099840527652434289376307272591440454402132348978032689053834070146567563558585587311254726710193683853426160127073230717830667604524943779103750094167571939561656265563481353123885786581950807612819300174839682475911857839057907511900500844771277885577416411246220034645421897103342227962843121941587459244825199011529234904871191304997486897814183056630845052725005416382882366598936004621243942246072850820787354142990776059767350771922540489401068053049317125761757597517291129364071033200127304912000453102871004444016006708511067004456856396464292585978632609511988295085660325837838763422483490409122983690762013728110018352879754886982306017203926880799047394321191789184770112045579641228087263677640455995670238339002912730671753948921880216154537106069448179723574918014779251266274953518462562669435197938890921166090759280375923375951512140854667807019065150202427240984161439974706757531367740317772116028263524700885928405936414649893486285812765616506795274204297272065035060153249872831221602640536505604251087097497917090565478774349534844771994029375888100712608164986248501311129965957211682675802421126656615948696861733620895855147739550101687095135250840892364813621164342657507664583025666453269764170226097896549887976612483638700178343117099456114376398492149165724328654412176943926257513157690200208309267041414103494148033469998580531341920035106845874816720684826123813481358747765286490859574570919303770653860362090263058675855921055102823695330462535802495888798714834170342667687720524405232863587638889441557853761244424289982189775445150286837287655189033089580134008231208294241727639947892157295371966122372348220559706733576490018586232614344952038069554605890471946303687826485633146047815976865560907935184251502040766962142491342669897359562979238141214139486857346981315786148238001856732056798344830872269062765570586910073385976558265475812295426839684149710698671978026707137406929891103241927042110279523829291511807031500660256617646518370495298062534058120607309518701488026262697243837626804647313183289532968899599193432289754365517777516976017034110016864978979391410069855837501799934953508269996184359037678531324874901070908906350468468250733897160769308072947307809534349646667741276525044398758758828749079980406208023462690399422335931443770785018454457299498872370733518599217363389570573911489469573900716869503974187069623399087736260350163208153323342487853364440763904119265772176383279300923744149850597491149608974078463680984103238324990849344904946834897899742891106540411057255568595143486195140578694050039313310739158122512265358397789794307122956167679018126078210026259009434699979874482953509043436265809670840997714158389205362309683091438979969414254094260686346258413423498891591870102011990772071145559026928236859454617276955184559761303900796513805924405989340828582579477607880458546555066326846771401353732364180858767884480406177365401450376225325702564231187587359216913606434706418913536396316206158947488185746183341871809161588038473169855019897898497858575928944445221163667336933695514489432571937789269385119034080713432017650797306937502976915691307657528618227291238334339297017532386286797012651182788697365298816607922554204966742310496548551838608692118742775426753344784638955790006508575902488211413466840214553636275310009556259448128784831112538008468981352693738236236801273780171930725425602793751052693816881010488370769598840758919197383078532005928454269592157546038959435546949056864658912673865678120483174808705394892504615151617878040265525265135566173173934549307300266325123559218171802238329233334422543865228451831550020005001769974034861025574285039993942687893273316791405590632229602695479010877525044552417610606937648518979345615203512290558556555237561366068309645775301828915959893713186495482096443412326094724066442211870182524306895147202135444432952181752295071636136131578510863215845932495158023181932537170507051768771364640317187290873381633160767725447577994316071222654433263238265130154365514529812224008481400679140939027178271277986605326144546556993186183322201844091306091379153873542586033963815620837959017492414188684779536317033286216941413208507910010426999554687983506347926137725875920197660262456232630539854179567349930341807553624300163463464570881419895856658573946134312352243282919039143203431376743048820420220405430761857894804041793822437459519470135977003184397413481978226221003072087960265656462760677111300259105924904897517861745309795806065965286152629072351911601029842805834875280280367139220336286879656184850063387719870595434302852411656605284696780339809023204812513305811521319885806553113291800193746779964536435262258254731348593582696889625528750269694649491544671147196794750979867862942564648651200569317292142204087101481345737164154101753432889466547326918830698024875094335541555632434313420651190691890290169793490284344373839030753672517821871532566329748493619478114235971959749222485111904865509403048475909856456457740418053354918200394815155556856674064739970536029093808402897426797690118033941530201997756446506368781384359093129939087356064297744052420238180506239137475339275186551872246057012635055384499422913826434188746853786037634298209303528640560410134702943680521991353519893255149834040205300743208529688794926328756380701166790199385392116788368121705147021440320652201573497325276130781374752285015882620113122073496212882305288541064291891044691046726051643536831820689100729235270832725273752162248459652468638114494578670549400393606190389447228434751441862224992775795595536796835908241957958613113566977638985651138800808439629368678582565443773174512364140732691412971914948220120628292316268780200722175354589999954629946027113375772500615458474145966104217214091994641364089273595845940874324386900135509830936232655820972248650660113311348487321853026763886532809765956821091047579223563402667154057130617382966374505559948859307010286472432453310739342613924483500730208322404137342656127082526646928586852565014406642743975663025099739661626398767878087351583424939461056499497623121005644285688471255208106900120155254092472704583577801631914268910607396816955154136579435901095387185453474000075979711608184714176808833926592970872337975605283610034032333185892612888842468610217801800994475322190293591278281931621055821368780207389240343125735211578582840069984406605562064486971343643808246999170116962366786232419644274091700181062896263460773732674523027284012910411565162896198819150644693713321542133284229231563866011781924964896037718795408966711077378069860356048328934682468647778968569418506675190249548106405016703574522338978752437402557612352778767301785212928522599709237074505773983834505490919921448466113221873197970352504980069778218041616584537409782826540991668786599563468031424037298800721639247732911478934302098256484423847283942685246708143995884931664622783560618790694010034257966489012846480689968198848910011850620323727319104650267078679296335418068215555991584805236919965379165118211943230180252431569773301165053352738897959875508364397741422445486642527003991643191539407428826879454964924400491195902925972542149244733675217504918843748999061166549112447483631941258552387034954770147254913788146128098146535226142964162693827749847277436524900147223911231332832909929860689812952355579847706245317894800628934267587294722267130264593017316891663269916625011926093311193652049521851297039181304529779265939805560145082268263443275396708095682194230109516029612810504446238659482297940310125816229329492312643526468903619232688624844753700990710302665646092098021585169889574842353809580577232881628778076998776189645233031616765009550833269346397347026452966574860899104921687235111367608953096504786753981280755790080358694330997169143848107652748479159189930833665252744041943370162065639714302673235703405172896612813362913935548667210972311158793984752477573214354222915877730496567220294809429343675059902810107802810682698981261445584320145437928960634206076820513503349153419770261780614317454037929578086317590160073122684447302759762164213575197846375426155944406979967944957257356070253838154163433467032340454819596326340263760968278070083815421330720454822304336999341968294843858578837679426621421246673115151895269808839195759603104050652496944659301237285116893567364755198522743613973940475577824196826513744662345585869766673967810508901633040359853190764352069006156480638496197486853097213285550244843729033962595244047490509475795697753767644210704956863963855092104283713246359685794710328450415382165809909052301447480312350032607000664263143175969624458781654238404183882295148185524462151902994339134538417317989197121767702152096311889815624922731549869733182738844639969970137534294343467940446924426470912978586535443072553315041717915656104329733305686089817678562768192338617785339682252735965537047800933332557900003531902658346141931673207175081840588738028539248510144485887405282554302557879264241332379897892396696702384616710925896611720351194475890396615570767156097150105545069411449426290223844329136430922819669458747765860578855786040034223588183056818065852284039150883566340641425630028751705568688056571367472925973225403443762232469635238394445509379320078749324087847358999566827191848649044980507796110213837617511330719490397647963583856868758107558752335501618828504279235839355274878014742792561022461247380434143142730020078370851913041953784121376793395475625923734635899488531418487063768247761402491690787340828943271554592095852783479537396298073442645394052785631322824345752604008313023901642768495648172427250122356996257798029517642112820273226234452158776400446073615550147982386446026379661018807484821722259387171161482785663148894756045783042093468872248006496308281734289941516940788393314023583057870004161243648119841545241343807982282537867525182385776869285382140890770119241951557782775319630098116730138269825152338312476174764267396760777460871397833112829834277184051841848230579893011863251000070577359745790920716466320653343876708993364500324738896797222372039370006657328447279281549477659250569012382208525999234631908204659404438527963577139797992019539976478948210132431239404722769603213285828142135632322415938973314971476932579908751032260906851895028723378203741469398438773380487839624848302312479066974603818985604600558317901008632218793561148102646084544930675022819360567621421617578317909302735379068743388581291923070914264281162232870665953935757755062114423452981945577193654488512351596182972447375644202306474262567033157712576236723620378163240366048326009521270817257317518110190353332684561464214566066815555230385289582825456413257803590603414413984525060204270372489242555481120923411966505499727426680915282857257912916450187487649666249908674151919203559221210734815493450977350696606706608188316016308906332798081593202820200127597554274061023761744094782853681408768234607803617876897120881902300275849014224306357190774149549540322279131190936013929400762436170483867156247770575275100711436042105586487759325543692884871934648345852378635271511405852046421396571015112051227743792508526916192955282733328381354578704232827738161661646214733240445664522880257573603574636270438251371847126218719149383906851280648031960720280994560718811166485815907559657373324020804369479356684694226696123160103087394862315015714540430937683661596305018191972432428000141265886338868740290985384661663677191467117945042614548575858606877555651569701485251897276221118182822209606931311620709993714636221069815112291901328286028782780854381949552582923253440975496262167426933864669832653386689954934384516326971947216728656155236035610021364558192646620420345842706225930495990618060574483086780748374780779738559051471908488859606726052723122542171566514494148712990677687948405462867495034693944018661744996514469599513636002191481269381068580422911241165030277294775353369452876924890920532230159337087282634083638459984121499252599118954503512022315511022345190662267087159493595641647410167672748577293116549959081697533329569178152394661503508106211023337486171487916586683414614698772558105916038236755104468884703827071408192165857754112904352294847350019602854002835455142182258413236438503153700977292291201866401965121917471475735665876377852437350165769158121607441119018753656804995120886280038868038466741288756048690732011810664126642876868597520324752338151388523269165163565680415709352231279338418019915056786160244255584809470244888604197989552890712349232261470478728625663072821798790030925637239481680445316092232561367674331620558842383632015143544321347542990788847433134849011962098340806136899171452741159108699701948373910986430348663142882626100832965696008174405101125092369284350889369467720444738737304971836260663301273384813840236074955077216914557040933089036910419672344801413619579400307388386947735550139207910066434985438773692588223891881042920753704079541987304578585083845812706891070185494298030289707754982906372990198593872624868349798765762372424487971385583672313855351983551245735574573568872648437710749217389969797698571772041089109060558419384985546159018208527261321890441372786722196579101130098441667927007120025023947121527051083038300359663777390126652557947864145876043294512901207928649989447516303544533165470428856763007653328756673820588596221828831287105950856480790518795064273672030213692680853820028729509106809820376612869598034645456840521450007474521582935467336690290119999710079599675111453242331240862850380569022942848209369295434082585644648303924594987094898761826748644586949369779969320358269718195450370192293042742448447053688429661084257412833522330837266367153075353602744482771873620672045405153124861064979509097439258258365073362504334725795729870699934774101286841347920983915929823144101930639662474676305471047871957685616022420733615016837638847482537494550537591982482060355433987573948934030312295898590671861162357140011207679892763187500649579008712324742563854281980444127288084297014724599088104361712313411444514277858460295070793689478378155810926187866060938254014630269261205441563077909766766843298177704497171032694564369738183886918636451784463343768450852975184941986902726812570254498378524660531296741715155845091781618087299352180010940404181280720403082214651751949540359944799312654358910776409301228111034229580504840495266340561781260381048333929209420515540731154172964441795818745227067279985409808230766021477444947466644633539976903467247923553671511564189046699714080238945775375723275169856220372524124370903840883972704793926014414293073658584521989982106727285987087966012171233415870471848358305449744042988585875697868848441599567201781008366041964054279003051554204334587133306697391399654217995823927273678341278553788008055460627399088095378990672004307040064824001339630500468144474169573983170270796504130342823324926631401774201413346320732695957505412112819999579381730617611956630576311831837177936200851722992215607132943185600869886476393740784790521831442374465324146811286639063731650115559484218944843881528577133393258698284791756317084269063287444440344959274312980222673473676048344162053285959070494646080660188250347591517808979280909804793341865382012028783475254713927021815820760328725681697071099333773463923085479498972914680953800835814200268138243172079671029105194675539595861671385785701015237533088370498546086274757458098578736780874730500888751307047989430788385380731306757811882057701209271146418542264594231940712106633946862737949634171312927677397973611160514506682929362525400011166176636573863293587454246602233901338028287161640605369737805808788283383834895783417899750439390705971155740853840792266755810025547903733378772886665239379777759931825410241073273951062879854133183988468610183388302247494378649973762021991900883792868128636909281760014041121404142445708433894496320983402746107911039868238768097881218227193249865500539889146548047118263625720472859255534816021210059335480880535446679532562844417401998902229458292571842542230617153779964492900948261248339227084302241774492850825887798590187262936785303175238796721223074514337707359449066886049237630551814164654099297396261446201772377190112836261553277776789630849374302138038126734421720844648923445409119519289820122320006562344930169892510026230381196695377694293490240142359813841989206435669974597358276871172608985363952668345111089830373680566052986884906735713993700009720934224166094498097498184507636918437234049219768954549150806000994398351267977353236061883507960216490158292349376607328984927069496581567604769774142075654535675537362093868061193191939579746856495181209785945172289887523179425521761044539828795895812933443722181690324970350156302062522162689482932067436236116487282186931541800464866375541980136305420826190944899677307690116381018875534442238469798985339859663069551613884632689247648418337965081579955594156779016941069253534090566838678271005617372264652375682144430124389737304700652430650282120490310253147056951752085662950046912830827341262230192129313403790901972377621698553425613908304850372845640653200556068241747135173495076927580553406366112348111950033170352734373384678553974990039142616220025987248733410952249911014250672704881005599963443012592546603192052526360630878063585360281583769570968083549472646692336726385679519103613157163787231826455154167934350712706074011361423457330551911440598926057219601484685601968608941359220867135353693435921049214407759169586928853502982680917952351126395954147976001817329053722943915685919468831167020610467953383764177465293220262060415567284586150188299970283378592221724823902063938947946013490037569984894317978576025637658878671842347284551249405890811244859881112096392577360128747763572741454913173625209334363865130432184843855056504072070219251252146166295409748427560969119992172458640519005887296495234344169034018873680166772224145091644708156525110114120276272082967635399453957128245177156344976190405779458323485814551684780527518116858297598328881301241930163870822014851090507505167410585723666929002713602194336679486650199474511340644176902952741652825348214075799297572310383992010825999363822006405660523574332747259145739710363397978541460994556982119584778206534888815978268201981474668114130765879528256990336575673745889772377287845752468121846819758448003655937520857306578998943407743621096926161571157763353391467791545561124785306630070008407295533373848401668031014264858827093691621451718259207884884180131577894444099520071287011687280778164520861816637059766365457204639478976329753520639090332135260110705241478323160984226627057749018503927883736953183034377829240902637769983686132294497558981754512454754765527695052150524019443266421814803669052509090395331072792149793797492969147461342808469137570420874225084397111465624927626955627319776249436766891888275307187719105960286675393433382295995601379195398449785849874680486316584788639366409045311133042986973676261427678761267378916034950811780127800805693569875844190158117410340371515150936759577672555307622686439368199108970185329970259285393128761477277837900219809777496418428360535459480094897349821396900087210603608121780307441141336052138989313740906026456508178362665298165839664323314491983985120587116813334474774430016394141694985177041295220963147096884313360229110382921473074765302320881988053255407256273489465644182796269223214629769348894401715042489946162194670604777158985733593421198746055455036418390221404253051281285060760964176679752068689625966030784859418197665153291881766193320587474305501831818272912669697068882021034555251091445781990631604888745192811181153863614336982081527399153870468144654270371066097361338024388223266952629127824536275176203418459419166469929462867987487099925770108374788716988931009202170663927491133039478846278711387184269081019721287639788301707789414337630049340531319487551213259493537230474450470740966049889739291429284403404326790329167589693611001108097330183149887755812267952831204449906353914618226480674093569153309774309726310156883215693176380622091264210702946663736676735246860535011277855721194396361336827208186434653261137978738753460230707166506340619492096795404082042677175138998152367861751233487735214807593071796934031172664824940339538280740667021566337813437311241309991789812773050371894019856933748420606090469759932081745683468431268317526017428485877156349345803512424569758185347574636431777202110060433710294100084512341323998344481051058415941776659153801348036036431008264453786469107866048974769518264283056081327876597692475645076944749197274908992780293315885289104703423305251503033627280799510257091358960155456869773930903353364356594676258325906176482850450943970197155724664871160672159493187764444266837781384053387997056931268257153924955271457320161754874526075926564717064482858070627140903794606363929730278810463260364757236492912641644447570406349647488139920851828086333040848504924671079405396330360609223291271800177375177692763477827063383476440129153330023620205509730076128259309273009819635460486152276096999187900907588716944646502315340871822938688820844731693958513853236167100237090545627983433369334196985196526722554235233899889911223750794613384252155679747694780316615890787231613077104013862204881274673355113132170174755396756204641239365056421165710734314655430700044897652277152855242333382861384759627249385242290036687585622226250731118906451245091926351008299860784872106847136754356875028457059770063629654522633672701573774059654994922200705393566807389478566366253618423658305540574687249097643734489128710061083649500911110969415048835915989470951107584772238369717238877894432707676082717277006865088493504374427288278721745634078241927328926783111447781565470295342731212349028696352502273592731189996952119175153157142877111459430373295145367809967664401391965067771600829827347619282253251387972722268894930810395189741536188028690295240299806324909633519851269037960158066101849696365241585446189074945106757669855983343824413241767733256331378115566736587192009119051193602017169224577297536314420279832292037181814010297507994442949236537593901886886505415280211470236590478285195187472504011727918424675839136173382964250173255508218708125540007187591337152357786472547349789478609912213444589175013417073291581143774126140216979719091421937781613470435806460035114694009650832881748626974283312173094135113355470522573574178468506100396516087586415465400363140712205240035124575042652848220647949879436471253688433836269287149459946350481677333511906089472044086106014544046029018651934863556818788673594603313323930795086365303723782503848459487680517395182847962593011938542759008320093669011479469476772618840496970218396513779240666289967071956468739406878001301382305138522359022582531069302060756819881803807414800823710526348108612064823908485209837274846128034168357772123751479652570889478750021627392691105300302174504446754609754091178125079310031170939229693302792092998750342113803934285317001516052251030205198523020976337448888502280761546024076030483728965652257851748077348708054728157420354881090637372287116942876573559332237807619190732705234792548916698154003066850589800523624622904128050119983862971874659760155199257826712848357363769615518032641978248297087383078165929966245432241040654964912295373029821918383500232190363953011485317725137731872109654374039741546163939824760636323457574678256278829270069239670001855690665563312475982874827680601137718175632627200378564349802086066930391271664223761815739126394621087597346013517246010600652372271827911201828218512374079513017392593884348037308359745069331666024551427687346548817569242082654020512570391510040585565438794464142537630515234556140947609766827033507822577846731063496683088600431621826332028906858502379902529286986743567702737911063990141520731770519696016061859986754485600446555504504841625820973065763917951439109479905018155506192284134572426946707471742898053949531209748724004387670111908811284603058656739121034571484268933346583075118004847089180505261950636028090784019437892756272744570467216289791379247250988381762360018317629268803009124300923955265301654688461263848373521237648229857003830493683117329396348728464719692773319336558744230737603020090173553696715288948530621758039531353204481199142546925910910036579540037175121364766741073633700148168994257317405159938720136278124490755953782370182267181966538605323675671897338050255880692968500946244873147402046887151647020102453395939143511994176108705787669158025341160944499176893736991768165837749296804703633543117082468740647762580196143898804942003878822664033744727723510818819706547009053791112268461715590816169493928588214391232618510405461457475400175116620630815391306076474244143209396877120287398636758044626257124420219406565257734478191336979673700793292685557786404555630478619163789723905364894169979215506674517281006934649873568021229486731829715895320562404442717853768326552611625628469888720134626234526272348403786521632244289371623030431831933787063512731642021414946297529434601764621572709035916309506635413778807410123277100226082471250289803960912761033376379893818953719887524291862595015786167326273879721518586121476338467439990485558660805074722081840871753261778417421748528064544077531675948101687140577581423589940205485182722066815965198909212145997658271325142890678697967593011936884135933552107708916056979720058061603227620652866233967153591543722097638039436225290826374160742473314311708222755221427512653744610272759265356756632100354299538891803115016469895698757870864734830295193052695570006300682598148636454163570524031647948012857775021605611232465038526426437899109832020185657717175396645861911248487382168204028301996263536701742883263216124807071231964734712067870916463690122823068915859707572615864660017476908477921961835351378876396180158494157013239680416417840907999566311469771777091038128474453458810757980661682523465594687286350281345386398385660523220849701571941047595481793759629081046388147868562850882234685030047085525564013430583470209476305560126866775945165632546979622883370537935560008116391622120075577844966084069359777836253579433488508875364423101951617545578850286383965952048869930323702512046340858996700590849714810336745998336974166552192513424927811216167141170780245892240012208818737111899627787852311734428534162369747449728287811078573413336134940440108782655072023260177785557172749088601274955095490245183425004808289431655484404745310580062384640484042230729784298103701385171187911329739285904848482102707325374004384530837523199727783127114133957121996222569212766808694281187428766630105077323355810226170859653234153144778487117077420975469175082268096981974850313625087975137165753935689905145313094447766341751909321184672141044561132079486605341396513867469782425361246363223774027552281009859270314842236730042184349527618887132955951557617937619591542236921043837108593341161000530735368501323629527710570689456347731363398174255090777199623383635820926469245791325948569297453857396929873362263260290823570052927728456288550529257340675304514183110929651554359380217298362821169508916370143897130013440211292444030695788612936068548948527038802466976309169325778110590551520377637937778072590374795766750760093132785981557817284172292126376627215325268988289151334020307477179817363468380605886753819222666302780724850239531466371465013235797180543440431681269737058294934432507348028986344163008958411366753086232125044666943939632105289625333220046384091760035259383439990674090123084283109339350443138480670695192688648864092029410947102442784711028332831616671983966046605828405624016725527071344637727980146083733223443829266078730472985030865757776482012661051801063345796664840556155726550896839350347935783146965034188334192908525760244803098503315232660018357202483768937841322030125748935756532863003582572190014419451545532686237757984892566445372260191411915081771575604004801152668461242121311547194415475180838068403716557042999544514301943563859100785801705028438848188657796680785377192972908412064779452479043696082608064789720213288343742130245388046143117307961048291117380013502770972138848130525323565377164577437016464961893929596187650886165367925111005485761815222316166052826837044150370348911680784243420805586535323305482059019630984293377900911738718079975887096369115198203822197098357284258629872653914470881139227986832768611776289944852737072699829645243757172346711213400837241276147550192866543673168500620468225184410808602085001125973201427951697451069195022442221608661210310254109689701123565493523781186008739109722306588521409131589217704429361605691040073220832974737607105835263206730340393470683612302309668861026627141585112504705850750568181771227929744673585717140170958790947314471850460494654672781245874697404448661172296817280740502398314861071431244589315718191193276642744851876043148799878425617114264962376583610857194150535432403873316210234495219411541947980718803958174702431034241914974546658359030093324827583506113958774874642056204483350019146621015044546839021541990051749397410498079957031855688871033383165516697918250691837376100376171396311685567426644935749581861213512558399188221945017816871136292219394230936298504464984887347034851596022293478412638817821334358402536938086388042657874025541185670674923602115197918003712209747802966980330016241164043555307110590572487990400552328567423274947628066984564583419086792574224903267025741529814511081204483397405873113173055437646232638529446726811225214947450725591362800480925141358145391826984561016311765137449125664915798498788056926450993164121810814691164322915714776958588539700917818504959543840526622509508386871511249406952215903563705658800551713363372345464179413241707534057205917867040865953358328735613958075145766444796573438680380594269837617379955920320726414641044380623889110779148165494516626432034409994313455772361122849104026299399068540941213465379005193500046747350300704159310722635856442795911728507005330915696472556395113772040802006867642391073425789310947107906331807671460363154260046761964968130101325128918278988318696166487054846707154584308895313352968282347209207635390696285299999308542985161601868994099614573408595795083550379433931320064025519666748721403122176303424449852155231035239575472875178680622963600279268073794847046383501837910274936587194339158640025250789841212824102658332013718856302306699446591820275952953405252224418207891339358859135056054645010376640985033409540484532914059278044203887850249126066840246701585023904943156817642928624406055966368879539402165825769221574247051235174687919982424777376732079610427613297168601271448791390061805821943423234900548417478550811918025529886185241032231823701219954641201610926843630479624110857536258582359917229543724844684307333235986545820749003663560035168104126446320731236008289226850217757425922204144962503577506216073945937886594326134845692143152285812368602695390429124227121824986585750825790204950911814797181965005597373981771631990963041136988581546201987003685619967620165899914307859250077321386653493794107473816638615923254423435269280595601178945566709689280870331603037793374630376561822984831265061294972930484217779084713427253886598538870286179435941504989157513393044877887626378421311532000259587215764852840565848045854323812457316249405830044946655894117385269207506007256772230074717409886446283499119029413864072971299648274665053744532300572915673519247188929548859266078500413553454658758838307101099305804674876915996776977990051610466803095198329127403485837313254806422425072400868463551925788499977096557855427399366846156865762214747236446310024954574637444844648831045384903174166695961411138954969365819561885240300866617020579806649999091581933303205752459905519319279678761439908730175813767303256566988188513973354736364774839643361136316265088791370768097958166130049718080089724796277397085986825089072067469659815367360605226917549455045947630174066521157102442716592186041338139514820164899492863606279109067147121126734671344968298114680354793230667117919029019695349328998204218915329225769891793802786244830342577730249364315176871555762646949170594543936693787931729900891206618831935508910717023874154389994074070629834346147989017461160226800306590674072898105695361438982798586218128680050211122025466990470723338846188598719327829911742688698371799478669495128623076711012041832914089316198958520010769212661648976856557394345261984904532851825609685894903889943636876589358676859548758901813006698018827961455472672340061579511862574477522494595529630394127874557370967625589494088181083710564173134844091531544857401010488906298167417707302045409498822111159617378978198297369127846395639039851519245878014276518955707905895292854337945233291571142685048159154190472531706741895244960680015042051779898632869579816586299213700784033149585592857885345240172124387242521137830333008074285498150757216416752024018695119660635908160430103843768478898291156252917101499866364765162621636977490737311599142651398514214720602849699935672202507685317716267147041592336085787310276059594819128332663730752506817875906286513559634768164131195132122475441616978534080841414699163911331877255591848515725564178981989671124014790073691856579106858078992976558244785146395357443469134278123001724358439851183518297477016325928881311726601641463690700285326296302047312200941935040030028869008653974524030799596801221555043226628382672279831278198409111937019028251599523642755271766524967180651079737302406346571460225853166989621221774345911387080952653401082011510414392849250649772190998815608427006311258253638030084201005194902447524765712701248169477246290880933171101403467563283466560352711197131035919917786437546439473524872068128185627576998595374128901347142892458135792542640740364358475218876249916462624878242332741131810774944342078223157136789456172579300899563793885212941679692240853593287061630746482674933720009459179436667263933214813075202943908450120228894339152116516190222986384156049056599655301088782515275239857035948563939677533647502788500262859574786921779689134495737222597809793585625823539021546500609182126818982191015951225157331932431853692137638859827625665777837658265534092928271606864497529544863944730281780323706306535102584512272641804279266906594657451710476626131714171057219214249765166286128166037210622111184678850206384656631759161524273962490774756466685336313438093092156383069789994023328548265991776476422464507247785840989294350844016394401155415373594801525717427788389174215655328198924337768880937764948923243381592934144452093772488282734232003083664411077477101212213484370181877205135806181266761934374558717683654117202584439559526831979782850697572348583664385997786205570329952776464158710159902545513803735516749374556190488764993277275923107789795196985102826481252070837379139819250420946698201013767627519776712104053819341113147293308710928823626349161421570749653913197980505353179219566664099323086457934668149154387569105811615027984868289047314702441129992005598471933894496705024850292435496697388248314530952877370626183104267550806312931443019962608533645734297807052080715248764643047205912279667734629307080523632476813718662010350518097058651826634436712541440564650587529748027797512985015697710979306566894384229375050627615395579971107315507783904254257259478064701823122485304283404545933759359025076431617711405077019980505502746773533883266523628241134609241789558790908707322921740246770839108643757989411560593933845053493691166224618864513471846063668852006256046146389687868476940436663234547680896282801639613369888908830758008184078594186199336911433225816665407581250674141863592535741033611555927616209362099502553140603637879695261661675239502875144860466925766213403596990972276340300280453580774092403910086153562901628302886230216616618779780555000229546976338265684363809414623518391002492612338974476492528302083476781901220782370279148354130351046773863879139987220665443961119480157102586932978358767545051365102170075993650753546999365963193442475044065184958172893135887939374964331431426722635656743048900201644015448135123204480454573215508998795751088233759402510343055585937523008506250618813055239311884105963704327376586145764625224934768690306343255128400445722990559185540080659693879515313548897982271096645218544183084744786932184170047888517989063292478361372537241666067395723716750803847916742287819469919261962656326932606790932351284716081572082142098099676162098824254585759534604418422909363829127361959791890383577018706729050395149369537456334469075818368388904231663939731383269982362730902330697324728629496504864028871326991993975451615117458686323748510470123872332707139231110785015529007522802084313968512864695735781481856933329240528241401527502620973971056408375849664199357254831206173058791556072987548549203399031438000988227924117915955684332836920543263460763422982511710080737126688613648272060432448233651123069230050244357981482418151435798671671401755673655135533759198363484447807841034420553222143783820717139075356545036085514454370778864097716002191559444251292257567808951433232890273159993614904700754732990228876314644942876568797397008365180956653150015092347676112957154515693638374679993194937690493578133739066768464703452651532517782738050383037387712312856079942536046282225059099405600740964340706293857370921326165025736261639003987738514710931952726903626730983925533375345425517021112418773504148258036556040057525523801343396512745927973013299984073976785247523587921768361679724287813059211383710690766301371347540690432316319351270716280397082413502230318827461141125139096310435312938491239342417045895316779074782875079905737588311770675124905833110400607018937878670675637463680755378625186249372711104879170599931525620609842436357876748399114872004109402357964926477648909250062028290031681521029085703755076055804746465829449447365061927650177693819037909495909766391163197473990192685153653467051935253986785390202482654879777760674355181549371619990892920033978957675713981449736594154824121546227606406425477536652991275410772486557037989040465635848142796763728583912397068367343524769743696872755203566308250806205374092102690696109313677763596285966997285807721050459642194173435137700758480625467899640041929956538686754972058562308973318888254824446040835425319128749469566778620552623173370594387098139585502479677354566838763433371925915391741519468766424711799377510997678859595561427564555657117089330172741360374396345891466142649285440491633208017917075502874140954275410294496028224943011296585034910734810569031510923395332404894436105449238184973098994126385296048145965831825077817395222427591170039654839268875264357620053576677655814615852528861602342625351683058980611582613351505670608327633022476511746011865127880918197091713973591669828335462375198002106216978703944156070452139683804838578290706544850211666927744466537012812818759526196785410414443847098638217226457009665934287615249271444130184610265340592945234215577540146219665843679849003299635242643728681393848966017035826452711216758811794666820111151512725113857174539145635565468271461644003356397002114725268569111915366892876857639955331207720565236928791263261951206472076041234671207245408092613974110109839326518228663041650542426706838474145123345420147018986620479446362971099917803039219536002169631312506990599790020285649243333757695636960318430428393388377936176338573051809408995807315010145131555597842821387314894289045251378750448324943603188025802560645063355308518845335103969910803170516336446712201390719325871151574648340409165396163896982576544210668726632334601841956794148936295429662153016418610619414280688195569376024167422746326675735337251000240223559810849611180319077859168151344200430325048804180492503049750403147564365492674179082407117976428369040464522652990116738460220262438876043526239083018888812183848747241565092072637142930992361704629586118229654681908749407169147063434978530869492918136189682396665490216876355292361333361581465610111585074503536537532404749215789401722511681849975433626367705750282787256874848258644677387471911565413283798533588009113162314011003487558529808927433999290982132901504873271000782648508789306412644604981351101983426903749096938667161080419912369156907861401902268721655650833433293395365337757907489969815785609713216903316053473690863731589252703345896987880242750761591182140411082146060731085732536513109422466647405486553327940526373005823783105955765797286489110978745508843026547516901941947079346400538297030355532664759180354319829384612618600895360659252354783579136891052968365399825620108311502686915538577266168378445726843403009286496015227242864327062948107323416923566565515127024950818683900404433033562002716966834386102563702380839137261710992515829722547098147789562961248179383563784968240348588211517091700923229512805296213172989947593612451514858384980177925340162158363188573741666840615802584471277345009851100654617539058054011718675578722603678009997195415930730493405913783231547692918308104808106394381690223499240895883078689824562647101131952429165045732936552515517692990383987115658396596201019127448210337991145579916456932750907314415107651630906888494131605874741359232266485270288179020738231064897839937045558630712928971458548854850582021840992080616236926668485962280017357898579175251285011044474398905091423417266738516051589838569624628877542995969832977813681799647764284573517344441108822035252405596508363635754914397156056933867643700475604326401110364492117851697124068305372270725136789425814820508553169207517731792539996357938905769944989123345950416509336573732731406312336783582552879687453827126057316652513256907071007161821626214311482916318456351659207742835442096220983607559477708100252049638449279670526713498321375802864926693795617496029970830396961680925300255778782278580234833014434260990858611763602079872772152187987041952523672194623304081210884596910896092172673411298651958379224991685446562577917277455439718325179030552313799913358859101325379869538125307147404087905259633833172648207550322100891257825462254416737141495273207204719068195113751269143541432006342333564631835805567023773145620143814003140110835534434458613346144567021194033176761115897807419927670109623766372237871064858708564768379694752380238492259944794441657907829132152889274912092472997238774832646476998827009246149386563834755051513359725305834430399381997223468852040946346156593654220365386361892516363574169457785649012067109813053512189995632156760418169177075578488779638765832939685182927741741481436901928646647819966186392122396805597249736949680549996071494493482338409146093781881906519511069590313645980996955898200161850718296501194028241877585891423637621614510858379518671132543907460272513639354265752482358882697869830405832129002871645985993970025708717143605817744316470136522263134440808696428060553089444623580083183383878186829812865995208357495629549167551365575047219818715479726010598744583970639479748525915791770019720188210896585300857368090187096591894264651013050110517417246710080733716927667499676288835973669636328470172289047169956398099747223586089823182313328172631770661910884361561219432268328056370130451017069401668278112475790093894586407114316868983486359046241599588592479888963800257205263906327372932374682128205860578665392592422287351070733267605222404809464201166288304027410268943909770600153525877122844949358086373334524858825163588879971388633201511350032860023174970901190618643698979077761510826329325684847551132625190684756328027840858296381602031789863911181642830937162524292976497502096605413190925240293569899135286158473784192347328169613764520242492140094314319660661392810019588704829577917314383180900492528945874853356246002128791655139193157134616848974479034985989920744690521117173147150041141275416194475041009265268555192869162833342401279545991165686146781897816542346619514710568620228172389557328584476888766923512618323158771255786086431859636425622810717507697764679081275869435848050122648474257061513353745423118816167362627314291045333377107851372685364868797044105446042843973438627274681842061932018920045529307341982969803222777048098875610527478716311156465346424836592785681267014137518563474456851727260604921208207336072772434345763947874217851658782241837290399512532975366557417064888535888678364368501108784275146534056742415543065853127208246089622712550252521521766362426412540630583608682353576152168120167863608946704590944455623204374493692796003505619144677184296311711334199658784659395737135011746907520413855856587180874541296733029019374170066646230490983579270550453374039833275214814580386500661786941564017552627812853720902931971754252193066778858093293630914550290335870606974973604811469899737473961311670681259282601140878565776015337525048562592131271856059729370517782520165950762376041925095420449935426972261224109522648137307020115825536046866246718010203259066064722879457385730841111793036359286423746816520003452423877125064021175795698589995536195698351439887408553371456032061313348606327191218635431015413045436254418526838013985648754635609594402566462457639554521205947016250706739321626805562059146916672905101762891549399600140936171092886202302905946143263126884004466491687188107266286527854200862883328925365311810933820809443483021246171432290845022200275125682482063385176465453350639912714880808158110377020173353040678325793405387864507237471986213548890998828866403523417725530206595456104499466786633214233018625367475410472429830669842853885023496871983776365547129268407853941520958818234364817119287383268727246816555219028638118678133867061290086324736679414787021555187515697098266454522301043571344225309537980451264706109855216647383848746345167781650831729935313668739257551085800685143927603424212549605725284660772325984610547671298934800553676793514855991244862992823565959123279178759721832255726515581955881997193170169932672071192587993744542713555527417334481878581374082914719154898408660235170127297572803607943295787523162994903009517735224589648480875914146922959669216463109946254102106823089462419594453726738830953545875043961347539535570559994116455019467525647508111140391643980337809777865159344092832560353974070856245797165302060659646509563889628800049674549791376165356402074352109701911792674707361836546194771545018380583248020367231366268994645176625704379897967381942340090065384917132887362266178151702556791035029190171208332288691760973330769454247793830577852276333636446723055609864035020036381172266106055389477949413180911349598478794533325935112247309898057989483482540587632020090633226089338507379280499574917317233162693689494156535053999627563819851155965494774954103971223916869779568234301057946328832812280241652182165058024676387294434196269603355098150727827816670563991234540681127895841711380664785794006701551198649181316738865068441154343417347014675402905139146104110942681762397943477026367653881858061648399650497405466209458146736736092250035694685534877479620295540902696804031364326839285953634954712319183958269399894037163135306433852565929514622882011795093207246649020254902498496499416093255969864490368717028098749186614415919084839712920940786109294739592516502780135321257558456386011422999394705282499078799429235473508106641231286025474550622178886642525539441364551837993485604382360599897857225644103999147984791691476645457449641709259984922142520743892716723464563111782061469092580068445593100242374623109092316632434535640963938341199426651111176435074178898638911799253195875969507603512412780386239704550033176215344856752502923304244341890117266392512856687547279079179760769725505642242989888214692440878414672569620063820883520175999119693554463849179823290064661570133859261636197989595243527307688093727600067607036042752257581772142826754941087314648233010976515223292285320231540296296342915577364996741478535769775537008421926546462885847373314076505765727171422580694732176588351924305631269719314861485486661007496401436457912031158760810664783032326761717989279759586529412908435565793536846815199078507343399200097816413228321898442746013212789051068770714190571308952875019671451505349408344958715072570847825991221755455946848077075148320449475979908202861618269039444821495960711843594186629889270336841537762805998745204692344279027131491841843165473042541520839456157537067006398434131375466084877150726994272107718481326273299377564604304728205023160240674845746389766155848865172626242648434752272982077973032302527488222967593541020665773414324870660874814651715055989609657209928729172683249579934115687311502554635400806955207225421494703786777462001083848109143775296686035738923010081308084097603354906120029860836875475321450367088743940519947560746776081084803641798224618806058386154247329667538841842260620893494111159576551672716289226632922487399931525118759419492436815802935686283661566871932490717803013683864173080514025493375673867956356071640265489999052914805620930024968810013675811212700102240711619918167876306463719693676794148775375475854408094612186801163843525419906922936804684048313114469010847057124875634744740680624836923543165390126701747913754477203768392483406072349122960196307634741643460666718414406724219314139683092343860395216995887960748829171247135967925826336075152411405343952269618861089283240347756200437898121451260856254561005999335908761572210434865050670593469483595466794295077436748722610960240155284364015224174546498718094088121300988006994042565553030457147711749640646951183956716348887217112959160812670617736919331202441071169261947602708680902742611969816448270011369396851617185089674634914079534775485433433646318305056594593839321684920338576072123533733709108755196416665385581903232774558887756082348876348559789628203975560787059778857812050099024853346911722788377896247874693486846750428182324929006914142172847391486746003434974045350629368224408409377523984446238755677244878559674599542865006652191093846731787152439108293115426958773421929479883011903575564755450049334206946964405999383521337619418508346646451416720655732689449192878376548719571849248238225837506372091427588660818215540140988681886551830159079955310401257674937558478930156141151366566817456849158537282851070947633389847418637215308527117248778341948681486867812804704552642365607850074894131733857350361145232059015830273044214097354695280293987458643369229345714085714759763233743129357034767745469178460303197363006396845510786208343952700411447649779949238408702998579439048227087086080934515451362487150248929591531965842608469016272849394373953244730059567709192985728823607633838974855165492300040086989757394239389332467280347632869387319396159223723567411161096189342865730018375025606812628305201046129124572832387567295301505744750000114168660287322102198015528417073862630642486377123721989375759807000202635448294724896641830304938868024111379073325016097536363874059927322130831658768485513997445669119298824711752644548796032884409696299635999423196671370020316610433164718966885696572651618878619934576536363405030866918514618352170158790001209896850477057841711646185796275187176737471837996811437807309554486084017174282526742419675711743148712675600356707904937498969582894657685729361684809605752533876674940057688511021191455716660823178594922511179669446836681692325582853719974573512391497514817481648673294614233735672906085458735182404360651340442402380266715764131995353239040084834021305013647772007306907531680271258819002320444464480994530715620530839033378745204757574242383651676402491954474457434167159534448891688193977579607964223962149874655327857754350670869618349892560896538466441236215907305841502658567709898646102531108301828877517677434363928547989902837347134450419337351927907053935923139715203688282735733748227294877530746715998016484156017306597664195742422153784375698171839063224466108600183226627166185937419155443884505324697865511301440408724026558008817452725026162087406852246176519369993897244356163773834332273126431708817737786737374760852280821199131391153834263723447006274609542026541071474701665071531280397700844781729784941039491459875207411321341365434416097921941185241025174474710152281446968608658412518667532625288901226612223218496675845444538462915890367071545258298201718698700057675656987735050655613752386688653956158153801785442467820834857301897150949863848174933794275265434056785105428512698177897144177795774783039476765474928873825484771669333375498431486160048952382031318353253923067187840468887329317993003484692074237661242397467411912120911039739740766047081827855846125138424854481158994105376376753411616648203406051827507592988730565166921924274264315859236848416828707528516848716118191558227129616029377253981044652904942732748842916153002571671249156838267716309362094690596031274243168874350005758950034640304273513227516055800173979301953511653396467142095726291730866066595077133809669051314033605423421615420214836700111102590089738392021765366977718844821580899508439614925922313346994681857508151314603615670239990036422900058434179868503976793436831859139394549748992302956189253686029709530235459813530079518986886863213595305548839595453675424944173342993226860610189694906863897817172860801799581383435018909723313721919944544250820551482343057234350407104704182751574213747110599707539225875425646538739533976185337074353533416067238205228256934238269223104402446222960257759798116211293241303743077284652568901051777558666392979589073829140149731228712099980019483436622360855306524100429524743704111213700158518318353205521506637541760186096347886154623105705433439695706735730593119445218618416012058531572788119667337750995971880399729854050191114430840619282145808669956013198076896927507626507947466389836018809059673494730788677345864717435007406175154649072661304424246052282683181662120420237178796819112253024757612728008596421637291567520417139885354885605602425943926136039702717137836581990455685829756893638923662054779796806470473019038032988009629522573414977107698752063719685187232810990364315515751930747115438117149733328194287644000877518448898720311612569541580326310736401433010212721744970336170296959981554896307263373524346537044462594823548855211314016730592000807725802102744088601465229977764851486262037585370073163494196068821596886288490855602423326543893859930820252484443611759723799859694806750515169220222156908472014285330831936472488569519509143699861689421856035816600860288273666631050747012191827550534434914820625469847890092471934423710734904296712201335151798972188026373390880297876114993519041718011686745907268670917083638795557000647384611279401646151522883901829764890205826771806017697115017093552305889890897522116202972927610704743525602123635009316638998288443182252308570103951684156637268246533293664560258073736028599267823572885613950398861575706443528340104959092087484374101726396010237513168997595010943992908756849293645103562183376061004824855674300321431331872377988516957172914312758257902283014714935227570689791669699915567201917990100492130764369606601069475822585789526886984189266846926858137423888249065711092558302937726087800947193964267945425447803698762791048376900570936394460283062014501521859383675128946352358954337064043506262295747655253233246232651914478981465786066157481517544096124939615657705335478978938450233576061649155260922802483342387811973680798183308677328395229177154576596983129737871996155782247271290101795544102883849604845859703913212551009792368508955549800038669599340030943720048021992238290439630682288513060270617360679934672334571410804409633586376842085887630671196295929532811575949892711977612709933552671353799415574161842649048655969460939481814788141388967652102169995172779585154985720891794530169534780285317784424073361651023663436828348342331728615092316675706775597572122666083019069340631951898170686024449692712899270770299383017251039995388080883437720601129532324019877128819484484221324001770262421258242273789909723217238518088341005644994394915216674891478080017408409784980217034375226222813890575243217558239987595707249559109261724457075876053303096538776440060240366594321831971573389309471955224930260169458411844818005380712434947268790642140287168418935352645930970876336564378839784105005386996288497190057949584865194550032548836385561124464225736529847730085243475122080034600371393726467356403845345262217779953220465754643063590824794527970927928130453594119007126499284006086831505519953684946218887538216737200395421339774653542807539376996310905511992017603188538365281833232288796278256939192291660500975242986158609003545165768929303169128630635910413399338724676707935435646034018337007113924198335982425640014264340306252874950699855378518867327098490679972182408492196422596504027235722078786686773504075647143512288029145795754419023772860864181388142330216699498009510839007370941680636763693197895046272897272986639338770871335689335319073481976741665760078395356859011429999776737966614953203293206990697713562617349528980389988363078629787802351478881006006843539452476822757497869248371346672923617975125269165982651958575227749808457306759388173223543108671712375886147304881303258253837332737176393348003593976415151118175003545724051707803873317829231831115031282166174196868589248713822188871843197173830837672161999532731197630025409067257914090768426452078199936702414985413451044956439624935610167719805389591318371697209441218497643736609465219650582327791307521302038275049019189910868979485853099904403974974858782513193911344452317584895484007301476075441406061140172949799125767943329989620386464917454363239412317470638006095081240148629506157044674500040278219854316127536453735409736839605706557233953135114764949190339016946351977046601649786468465187270436565861331421240292276730057890761235131891808983292967606341437586787579712017107009071045721348402775904110219922098083252966133383719948159611848321298748846248115684966511225655634436594115227053317849327219293093550132804787677966536938821735931229645164631558710501831127036781382322143088582643459297893513210861679097151842668946404367131302039016104690074779684718109627427868494762015542736032523668327225134366257646444920337752463466462075305395943289626082449105430791529149645660052096326059089035631244056869415996812373356066470765492760059304846095446278835720171041007539058144906164502245633267467562945899948160059651007400985110540633329787695472976846859397642995044614950980905511996060581618489668252637552769472104524160173898930008248291590855023418251206745117717940488356115764743197714106946855738430680255623921777101854365021253532558822361590057827018278054608428498455546378806650380145585373802471945688819727379113465639904329088220495051966070764059572468133500294655038643938909385084832335504686277517246411897605056516098320805368477073039947436681277559977063797283261244133239848881453673114726856069735531818362554811247861038768016013035250640759526630500947448414213716900124495782994656587920291288666860792756716035843380738076046799184788942027950149602856319716665322337632656878554584108002969302012400120982821188328583663938982331286569088453935426528441852275712622051887493914579597017479123770957845047906381185637703057837719355414640481620776653287032115679005557445576863618803620028535763339740935516766488389649872378511772361356831493538029445018576881279628503048115754072369106056342561822117514907823645196652056966670919272592556811211110046040411045473157980116187817996276031639377139435420363648449272977945865728271227279192334138416783246952406574085082956225805026458214735522971817873874393771882422147784550879431954152438020658071905647873250958663692659487928555682993259202749397910237083978753808717732940844108759450207135116120466681573730025964408768497270162557466442215901396082061265407687084660710101290103313098802004606179749208794496301073247375689408750075452511339343394100866278446411264373149900011207001871118037422076640234563819957692347683521088281765914008554805989645521394444665534298520168999228163528321882643279939144760826333001142566996744907830385814885060381711773849699999901485417285882887936347194679849221601326477524792556642048299439593509171519450804721788896641882495897558401128428590367284104435188509493869914105754866028721197747374722018616402032889438256939958399151626230728566485942861031039526468524129848738372252588397604304377291922880665801138732565511666193876228049400747783396237912505770135581682952242628405378281914345859654642893010937402916075676145945837181841662625323505030976346017901807851913678167886955786717587655461384136764849172401473087995586201449849415786391763460580582311029773031343348055082507177042974482137574446724145154255630229886633508863591551049673226557449644998938399733085068877531168119107509586112730053669302520542014459597029441516221114209146398299953196726022317627139930383604019471416267390336495011913078158953147976178368831390806421173732806777423691057134122200246599211670629814318351233342451566898494393357704664078619863177822421550854068972177188683217070961284184153176553371441890222943528507925116524362114446119377389908887692382088175171444585516048782662931964573985509853570835329860422420381801010649171449764912475626794904988419336122926990842698198475965566382155196901732482614209807316772847013130582260475314980108033879579641446701685161534147213296843977623000347198000723275506696789494693990229720923135127650318173765875693347211398345094470595747057781972737515133687203167297298935766009459654385328770099354514618399657584832024362387436109843606244079997018587056947400096672803849887620104687029328290816291578557754162166235561234393079171511942011786866328909023381850266049362259881867917139889332095446882968136882827677143346802015835437003628609462031647024425542514973185759059874742738068904829594305913034600867174990421503461144767710279154193894285118964805649413212357137428212906111919372638337204930731601249530505700889030007432219946213888125265589412724908905370394803754670073726141465083091445064499904129833627763781315654603600511184850246520467644888216581747609818792969785499402566748407585244263436564575898106804722737969352551315366620523979685669824945650855418411796076437334383491591997538221595707259147900479662640587229764843735487310967991136739963315163971272071339639682775460129122040998753606412182104928811219273571151834944245024738047444517054167047335443475268664893348634343032623105290980301938265881535934400885963910465027438770341479183620198502317645140695807067702340349180735706317193405756373565033104432446426932433757275660478955064046594551142421612366593488569291445410761214833225863083045642944239654959170414865888594153983641704476806044330215458696187673146410360373187234064852889910085737632124117245526574292570381946464876053840764701307090252709963869238761968522763750803041929012965668778807167255368966778366241103483233191980547696884441575076978984973438422288406429828838679475416116904578777248962243908804055671539302669016254028092334777374739844668337009483353181574352756514981660232081059728378126992949619115467346584421133201260462008449811824219917531618257149468770599840684876686019296660334665978162928183739397357805342391875739422077195688575718984726823712870260619261752718455453312091103307750099663320358622629948331955025934904035735658892010471530512075982886222593237392032741708076994886646005235294362276819519642175404614380821804414023838255134687135114685854156681892023369398819875543654092667104699890902776191085443738245562696901820125625585271410868609283750740859119811923411708021709648201019795289913794343174298122256953486093786825429439274606337685429320296980470683709635596860472335163040605469300028630858916279229872586808727027942536142796580083463376496110903929702580123706162227288321409874147059005886751536234845098467856617342924109751716750016706624264751263822331082996089089124140158988675224303930325998239917522695276119164616451620926973889899293444111946131859205731269182765500806984983294277327075457138664801493548776799125069413105679093897314940791741459167250555451571085514137848795287628453973765254392130443857647393585955507835371588532710430322390288159061986416484945836946024088887808834898302500249939777338008390850290646571563692557708741918242691130913061602836396471092469519215913844054439414281507612054581058550005056799202017483049425681384570274647750303251590170930356530207013940628844653095848692034539424174107892852931975627978533080390521573202292824020098221445802234463004095953596783440220960224679701890672933861752134907341278893638214172373886879022118732369795913565443666592179430164572858818402154503147934683588874307412030807658281553087468655383923349829821701237260298420891178596035047583867816466108682834514107253340766438224178761296407897434434891658899068505565254247891727773663915159936057704183539940700868505271960116993688171817526264105112558479677881978004412923175615952643154999926237186275411009625136851070244152615398711052357191468463992810246659416059752572448477528595019617918648569045458914870142641198275092934538415951903659859393035884453628757432949290693798682070219724010579062792473340695342123462198585321056945005986101034365800033300800125407690670948795692300046080558265793447074129852909182174198990753396090317677204604377097051741172722393548335706642708153379072826874720664841637948988498539928743347522234935166505726359499017183924815114085383729788723555376363969581898043456565507922140602979872243877761940187861293397012791131214875439029050362375415770175548052292869448817749605337966553317400005706926504198816715369487368360823619754346724248842308650666144748091015109984235780465428005734527608796265253438825120079962291729376176009477678434086204042527773261068376923397817719365592652054109921819638098964426854534242246163430010163096163442494984254484827731158555028076215655423874420904582918528549537063085897222651555947716219185518915978343101008503659394172054449384969991235059669304544304758044961891707939694542291849453083067480443733511044819631523851574290446985584923753709646874830158233150130229064435602845655119942425951404592474991053639947953516261846213986515392109470565120452829220128662490833316799350424479887879891306062526964043110233100226149881552824328014857221808981206107920888376627497003144151678179742751340251150426049940941535680375373828968205328990293610144045353352886642181388123409332047240463488725328159756971014266193004727671669411022738253423198617385271545430916514761421951158463112214452468729178459220077788278132303431403647143315961893986271606931091876927950348526954842697155507610848968382682975635620878391511830825020492627479442306131920741731994529864010593431545539676648149154846742380942871453828667634577060971282932752982678267444576884271501571122485805972773738690443103945972693728887918364963873808354693282604704063787532210601506947316023103729219857622722575325362990247522375749182936728292472729038618374178402331847346525307423687425850443945986709985717615225649423818597060232432080208734352705236068869868556634166679031581236891016552517921118291292303470322873916230923669802595853472285606502648058388851808709502334374648788506862446780406659745893055117151672280594906427897341631654678626961947550052485879568970934603046545653972017272297276952151136924034639851925087998844876843782807220444600772631199417505479255568144502012763718353587096792096535252845220285840271477705108936577420536827925989491435231889243232023143153769566040372105663413588545701967194846297469491311554284423436838935042337000569826276130670267378636338439510918265464316769831544584433017682768921043647046261954907979680443391900492188565098103773611859375859672985638711214725755273601261891123322028529616075010203412968032143067508732236464997617338338827837701607054456050788663132183577098521533953709705400864223429669434201013454977268243243550913680518836360063387915027337877761538521864204612360142980858566969259970571677811142351010359455008305160170601574289528888905720506507726750420681854101487457353157863664015512355391404451805681747766362335557054436425635723126671564082954579968743635739126441072409020886168824461566364653496718955729362551253563746841069530172873157658388989149726204398188531285424881989044564060736152993005026948369090008160373830827654268850588920924478155527703350544046220402581395554548404431534422963462838246127444733352990937314244752314978858908114904084737799077041744639142623232528157752053959504737534714755092486299693182082059360884115917280168245505769400606967762512735293520545639031779277614104620087806188582528665936592965507532310827903804737217655636368887550124335388315083109998407418705585506026642957420214724339505022203679642241689746889308797312239634654861913266972829255523255638913753885485060188269056040607955036264636432291936928761297283020556398899044392449382794504362268179640282762329102516795416651980145051734990211476522750866980742242599130612837849535373485329114362910203902222312198603673395187536705096274130192996022522115643478021057648583900447660745760571638906465968242502814238728103398927619844786460519101708628256441857610071342014136514597856786611425040692552018993955792621855962422245013867833489685570690216761735763185070078475013577428969241138084814921565903655883758884018384285043022370060555109738047486714558496302026534658988051119838575814444641133189503744307546100163366399743810257963780198175292503151318998010669978596797984296191545322423190960808799948669188180226632949834137439655388098995017556129737356412899345367347967856517918662180694712163639418281317900917242168903981828469996295402490502803021702265288006618567315606706756102657532170789223093328035107866812355551352121967343368482725435222456784329363302060316438397535748769333575853765305082466306602906538981176081192614379078254630197111394149658076631618507921307341714289770793394826977832599941293276554925449623179123050199152566719155543090585094561675360908002612662835508678160768379514884480471500900282417092094072360454886944475086333953580786124630671977385100066813704402514877280689177220910096198665851346328260023431546778532760902601038345802846814041144948198645645670299221988687891473050035795614205075663318127071046644381574790377541024463725057540500162417600964088179939710206888470003549080536090686787515120032162889965804938388302133391448414071430831254604506397605635880596558548135393639272792153930858130573074517588052434059814579129744766089494085154229742392560805067669247721268177801827974631463340162345009687474323060350035643734359637800211507623698775471592920709589935558209937386193103262456685276699515080235399643041226453199649676119068812474941764611832826926147813135116680134176358261528939377592942771782127974571120556844267826134621226569676288714148026524009756968111079074916432508721092429675220830475561006017054384731807221763876089585279961037311852859155360811171852091169864560531322626951629784796097105583966769187622092081200387493568125813188894658656187795152358962695890608359785316016674993431987740297241996738239534062597923213291373551829152796898669214498118727317372598989738695150198217055186223980806389218536889666057595326843152980794456590429250075002374937085119820428838096610979069990297338570215887559098062981293228312922506628403381060605121236808080782279309028388094063067804525026053626447066809036198653559573081788193725376902617993912715856874731041866680781820262822316277432541425609981381024678069221442223654762006940432978896902090150783835392758570810477810977233020097711336081556009861289867983944829024272661066089929333148705112365696831057856854569712034965855288884457145378343431299128331669949608007020117602002735755184500421910175610078400521943320142748518568486840473283039588977635243219198297978808400547534948073624021823449149338538342888943001742312113539621362088694713496726939092107302309080640206000414759426602558417490853568603253366233050668532095429747652808196595269628970779498216000339607050562659763811344395088779028776104592485612558139116971030170998307119856231960162290365930884371670654204077646596675868098954305265396077868621821394634704038164328186386213528890852204123829756212408702456247977365408692945475854103537865181169972711776637205332070749132529304519634441520729311568215048962704161737579902214975448343867902281135077727092584502627928761777932311473374637935522183024728832134281697176028406728597542705151168524178595800273955946873541554022968306188296624411096823823672796161908505529511246326841729676793207180262534891138634331143745604925022550426796105594370669738661658494839342767245716356071574436968211928355491339136980891343844447192781313751076897791967680708873349847452265135985400786791500739896632603298968771195259434032082922975871195802147541344277891918832891950904936186914756163935779424221208980037844234007273550651692240918217696655565114527171971898880379419028177643123926817868783093693118562479475734073294632358377946068657692421576977340283552383459607358913496109623568479041394198901386806031340728918957745907255479873351110914534330590583321279721658957971047607671546011432287761720686182951558848486395116510764007659084050056126995134626526493829213083729994385526061713222400038406636048232829352138942762330108845163991620230782939107383312856398835537000605746627796027093629763279299484407269016737502611111771386183990856758492722151584731519187589974219685396582490219838237844054301646426341894884949447390776148704202754647965227598303354269447520768094399363959081877465687748881542686132025505902642174861089855418661807581163169203322798423717803141388760180453720853695751853124918736242502973602501943560166866905502736033281640693062235721972086398797869857244471993329138994203161394863557412966424279639259493218476267339404490445292154088744905775793040826972919390861538780388375499373259556598581193790694982578379237507433491730487608464184758401218149538090100954969860284015218914931488493703922583340639558068624566604533444734812582019796896140797070051664324536903890989081308970655574446693519952101519254413637598304924608133357524517419380194290424062964974841276207989821483793300923580248924929192743086413229135689131643678520981215849946171952739934829401513546824542287389780796569555023919578536531277585765961050897429348319396576059665172287885145083993105452070515713639672164597922122867371097956042935099630706121549791112671973718891466897196673894374889667742168634505439098684488945910617213571886962873462159954421748672939807892758385896728563224048506418617449086845476333277278941379435885175797505848904123120545919223317222251455507822841633605813818201323759740450606879234594887336736756437271372036783848061093648229742441206632234819166073073393552263401925267376424664536424561636553502967938480553421346799880499808366550452110149874951373755889069847772184801927695167595582621194488282302051121842896954803384804856871153329586397394746708943283397156520035452053630532148657646424844603132836349116879151889890924856545173707728118302473443424243203403350272213686654498961308014855810387501357750851861289667677358163887835857518470259729775149831423448031611091762201237091317080199912319201254879698152288757164053919306759021721765417472511605448433234300871533316719477214215296725428745193349741086312619071492167934363385601157273320118351060057319058998474625837222734208108172433188805292992447043730759344852331878277822345321578001572096294068673641613643395494406637164244739803124816417859383480950004952111154249231115779771289348165012687383983844601358085187765884184125023367969473243627312649278947282930221772739578068213152553204758632418533469008914627184489963712786941836111392806788955158924328656825426646754112039503485973876042251331634639543731234753928704179687958609724885047162645777962346461789183670853754204105470536755051137553834827067812653378440576886417615061633107968192500824783287319502107589340897197907732699190003496786527949899307214882260528660594759477924588437880035575793687711431025373628610626790339596578895984485971189212470067171027517893199000472049338904525912223841396641661411284899289947886816471684298817567949733749450947247006186931696840928846533175438534081929985717460693425983883459013654968162555333633569013339745981840435958270077490940183764766890899214255360326855689391677037396032600749120211149902327456903750340807228966115646853909331192705826861460699179000823034045648510121589893074647298498875596062557459503944499410990899338367090463414405914011167271411358259263707419226055763060728140469213050612757097950732136881898604482490448945550650043319448024907033114837462285771923394452824670206570234983603406537277162492748069492594455704944596894834371990411521389273031764880196553496517256348241110674587780340805584858014095464645069242436846914788360615495620822357547015667836083502479613373512877224406768534789760917297967786205296827819008576210122776446908599451029762747826393956839659397960922141414451036244433525885767789759819629981803195447730098081357545300014216669023335325538986313026378815422037677443325229473760461617948612806597205975542167331238043745989873359120818976329434689836499459814550391715524679602653989031204620480283682728956097113100379349835892882725125191719124490838905463762516271877007947777526948229221839570731585798163060687151294887694128981454937748569295172577092549592669335050371679992287859275750158178361688640367030114843105322583402827884043623521359672294434234543114265559188711558499303769285833726925890983864303370582003177062546875583186802884342395278833407137969601051580155771206693767403735159563598649613483971211847498405744044933718150428891772038816165462408703592476363567197586092022412346274052625170240878523820947439567673669917618025282137798489294838855001797058427691952227943176994065007733281333398171262812001887341611435170628388640877085744990558448927612791439557710136561747571161294122199074142214877984392627787870676393819356531746673020265638041842773482922895918001432106003476683393153792177121161176205095888793255891114528530691730532598017324693043016151243522349233619048592480010585393058676176173078945498594259744210947474448425613160991351240863913024355819092252904920258254676475852539532158910351671059894617366443472457310148786404878020438918114653572349490881735059928176594019400470313536257053435633873006921277912799682784512223194601038396567338456690703535159747802351654178706699281861732345181476186309687002880744891099446721992394371074799031873506995173291413540761814396281031481813445612697157894086305667607252755239821660400561096383403618934398406336256819677576676178080552122028610350352129495686462143912397600934539237567975498570768661252523032213333204892739493642496028940132191347099486677440292691464754784509631537093978488920500496887005456304707041014050474033598715779946247611899301785550123104261944993642601812612105038133170628648763389260220584100443853660715494605574763253089836131032171841055809038604450409849922645056695904331144477672099634187413084629300259930939997704176351007191440989328526705368044826808960405741049206058426966991125320998366115542901624446612824052722976873153382007781461418134645797070181493590312838795448981552196853552845494360111758468601897530415532581693647919523831012842157799727487131025926272017476313846703579301244918392128761711313500526349753280615714519882717200813431662011958946160657569642838822513577798775774119240616120256001708978726554137178375634088591608640986823659307033744837223247621421425274434510402038678454960681031452514452242186325462294621298643198452336108169289336201258078414951487583603478016682417602063695129750002423747516594835661352978365048684626781954797689801442853314747302494573020919503353120183934354559500386967262519152456756161202985602652459314027531499076238723680935633264378112774101912957596484141112380253001597175424544994152150653347166589414913154712786413857810700841879348471029021514630118889078570983448488096412289944510358574689716472679441893483175064207526313025762825112607212922249351253107746658890260296917992795294643340585949597076980909553190529584147678555479199448087808145784330478332434457230950790170240825872249439603552593298880794148944319808453730282354464271181423870298451333208869083614492851643921931912302171836206997487670970248456176845890984047492575481402291832096819063747628125878185394611835669178494480158296164136047308154833752983273368966005154567017947774009073244528969974140629929944065444343938881639877573094665497027782190365934267435258659401458883132209334131432897904435760580142680742256185924057206835106137843241604516598375372957114668374963784147590519054116611408607342143576486273980993069482070639688496728307478894068327813468390154487180342151559614954130046100368095875551033205213914518377887077482268473176421897067159315604999944042793880935054146200119220335171319715045858185645687736749236728981213384740249389856690464498886445264053255715366700172484983435952411766439453657282911491703807038151310156989072028430392508176057593450827226182863230375691882283271114129193508576840063693592049598745999591041849329896208813559122569112485454900458005841823444154069033464035438377383653396091035521556146048780980456439330444097744260087138523320984453403434808520440981226495115630311349114083278125379632351634703660021837252405408262871516515210567813023790218735469363304208819245440164029374670861115241007337347202061809096808086776240813619126914316323060337843859877626078333662069366927282246827602011168663181939397342283556102712397795676815557400333558063523634711057732818225214247813322954370125372248691017051359533544625807683119674653721931765328574591635392513742324896840182661479929455084785772337513853485087610705448211845174272189557536053888464554693795403900304855371600478261272514671364306937882411902033017827038676095306302728310541582317903051014147460591183198600589426340355638934234783211509581581082636655997425602198785684274892282949016866323388154118109365816100182727524800759631549352302516457832229623344039823262619355212761334054377203617376400043469093333646474377639191775352782329320095534412471700014730083768478076548506763979290485789931555231477126005336470239163587025919507464784545074853496393236038573613739401277812711470251827279539351870485956062114274722620867068550424019575752396511796905356335724960747022403390513979464741272180369668886485719218739874207701572951550140707111692260435179941533736144779963128177195486803377661081898722939776302888129546111974726053585694569486014521285975168689908931241797068345478210352549051245911926247684641727303806052280550393404630016111803875176313864975881319374623394893354894487840489792428044775476002269826572730193142384151825843408209683150890064433542342322212608561152197653319512106763563336701258157563516116720830911045904349508060481642679747470505183067039922986623556292786786021410419275776654652342780573046202849525863346342756997394609317266159076916359785047111088423458047344441178766342879777774980541050688755476340023775613584934302145615660936317266071386021439192561021307129328469667947156647329090882952085808960250784980570052437003950082627106873128151006435573879693347856022042095896170730135228567383726269274745664468479890324769505712138942086165270626993845567664193942537654320898816465665072942669474206897627689468333423417923498107830737085944075593129806739425373927920504941612866231156025125947131870681896549495240477021793605555900969603201668827385920105847603899387508875564974836605818156041670557837619410322161159613451129255486245505239598449722759174002038246557659804919663778387742725896209592431836728090229203323164293180477707978119159537583217842767360561707904726775094422583444419201622484470836755232670152161611818658778146273874413114914842133986458041990482332659238093172756986825121037564288838088398515979985406311556178829443085956219695891537357930634999141341228646803761998109058892199374516116291585730197790444121653961953886699589580607717439812953812606498977689782362503944443075332247195291403923416130362728650657476600288817235916103490898970934884200229692892270189676151290839637456698642185207348465918686012322310686843453651954581926005758361554902928881264531370717574195967097870628104699893858538744970103674874791114601117413282430030979735414156123039759132365171598107438732924746386195640701817551315064818403768644642164080773058158841365190010247491236632241989665208136800443596003971769485056319284204124623366459117274585161443411704747992906182972610804751978982399958207984174630453236456784620042141972031049530512704244198008350076105626033760253173666660749715853139897345519762373176766874565704523877891918052696815616867366293041619611233167922180928775402593934643790919304114460630187993029321871984756395065807778779395289884536824937356238287427300383587977829230285270327729314967841995451715277241151455459321298628109755203185813231375655067197620422414463507316703410466531974513499036552156451676319427049878589130431990331743159283649325441847611115563332318641142472023004950240345058515266408481090944282198328664709368136493591351376650467012213834594630228003104228403492716147457132497737880255373402835415818605944190873672776328464201812962852206677880373055160570400278821802327226535211777780702289353450174000697350696298931366697330413631665027217157034802410691251910258051155232155809074584125779678739832281937459155930688041870045418488068148015771988829922630148198450735585733720373620952132518106672331719619154082192474612154275911259758575494791177413470739632072034182191203685478217910015035727413603646054209700714403820330604175907293221064637561974307217581193835225308560758112884554430073527991143351634265023461166145791768066524543912850086538833680124735220979682547385867066943876127702365001615203823178657918781201378088777352441168147473975449494384827270760749587421615226822755158043978652104200121839226386696439807154813062940059989827247608913756614841507160763473679979340782980814318510080188477302994284136123186612195225269570736842916987511682041944534895815444134397238810852384409322121575816006439381581711770160476870996762992349300889952179342420838169899541300321129190438969310482532205316135623834862125535640370429751906463214538532813701361487008934547178180414443839261157264025113140687064288914752506775389924135475390713980695710424913665593785505882762582159045320698107717871221869491223647191094020135622341175004586894280791507795255246585187177286824083860675115516802002021721841066433030271737442917166391327899612522944565204625873996493490495208959952625802438283699264739304224427819370730192409393279538171567333427167263078933934651423968411393234614460383679160401653320387280887434862151497552361892387658105623755249707293831942621602778338433410645383988912353372970985372989918887599380950115465131140503933338677547219591848318411465980964735400163004420338313074033432906741625648020767141736752031899761411354625270591975492064402685844557418173450396146958055909348334327806832318631270468342903825219150124030255590085015809124851409089864123203731312484490111507458148805474914647640848023330485287989839272194855790834033673269816876329974346070795943801367796025926251767690160975503762511297935559660874713760869740470988025395600791422180628690557676592222684709114487466654016218600639453950410847963593962242504559744283520517863781942758434260502541582904824322114405820255976691109980882503973205942855594342312224296454423578975448006603468557473456232498279088492739882551596320874136230934096467994359578783551015833769960183992801220138491101565011943052632627561620490027436050938170106198278468641708325882181055136236635389158885627773099268653192551682325350830977191833487493182782856736328559763450123663034152180049668194135062921201502129885076513213547125725330764849633279208517944790379786548350407194086459084087918148638815825365489286889156754575652796052980050480969059964102093235162049841038222486661150104103959460782826496144987847401631582853973151472503751602437506351461460211628609196683753565568900511283266408509400096381595482557526466620694969371347841790806161394626386130334495970741485583312311673391513813117104569748570437861186056851479464638881434397205992055647236858227849663967505908516079404786767565044181368737706153175285641023754630783763820896956238545041384317941314042528785180022484326583172703066713211984748914837584859451940022282798676715683145943317839532859953279409822139184821130187832089289866986053890174896483996444272996911584117749165657694590477815403375382970979246761990135147004820426793623309009714063079350802331260716192967154943037344294150903767355072543294972742541603337377320186880973785961854369036150213385024152016161976505024543005914261807211037717280342833660649916842724056505626701312621351677257989647318290966970210212441944216213966761489951587723030075090543309599783639282323894033210662384602005862902387286668383379527653867410066426509398578541764024024837497366317816805647353926767113377857113319222246056177332657995578116533582902084414373361342211342819261115818004978270445644023005872352691195589117204311962033173843271360904017333739137394162992664357935524257286445405653721981570433469172270603406780754883354004219869496587350852761923317378867084878455630197885555705257598845119700403213758202162064596904730185796923491011797727984791727529624136331242481601085862950263528296631265726768856168690940615023534331496203617535598013536064042131325879815802461681619486502578440063603297712881976847476099250300846123144460238092540879448158073608887218872097720011383548758448877060617433827586907505021560951448353406098408817296653946165760849454636945651841654826297428184703448833888537247185109273576052362563844306202667921744164327524103686428527166186361931148965449803774788550120492700974230446196536789335463004759744211797796116180203257312886479539812385484434824111183996986209041409600315185083875157110511190218445350057093967219439148647419576065643336368032784389551557349205079248365055227847640600082606015434306679047530749630580087096412547916866455710356106675156583575573452737171656131436535157402716025679293032723604240748478033419546579201051492311446109019044761575057358624654553539505820935338457656788842237289561228423511425657358916167513365792396188321501781734060659802354693761247465702029056018956439091026574316082658367006247199895065680673377465671896758123140188696763924859095846871027261598936897287108178630810199977192966565096069841583749057523176275475017063791168588085057038271461499196862656589655602494740304159760954439989919892217133185978063115848306330700882556599272498086249011146342014879495268926112431486364399860553754157501137257130328134293195353584952079614809495624860928995786108871251644187283292450049486781094886291862310121635011858682437419501854050818340462220346904330802585435929614340836002417656856553916771333114322917853897841429198452732457742020366219100793290700282662184454714998996739046872182741430229054067711286622860483640217992316167162515086157488366694057087768560066484567137528417023860908401290761981024480816839689150600607987637493634608208170494488001578832123372673280847895264959154853393744392878128291949452557690097079912013676428672643635149446421489708810350842335390618271223198846379352097125213493515092159498250592294856793856238322690237150453493178891785240287479452904297591914262835420495512686327155324630062317462568218324968866719185086160843068453891433377278252362808638708438932924382049512097422588331971694222260617806710377475846496579016632869047581722813383642116182066019300282788891399345114817158288017313258600856284531246815129223424839831005837299553606373790694774886739089096480096215874701151005553552521978547051221469090004947686419710148721106298805851467760649119211207560431467473841992203482417162952740255282434490387058459244211056170358558146020861043820813127358203812206420756176668085134153206051116451463041139479375432473718353158813806597384876241928126886537665774350755574410574541145279832580900125923292613969943585285783231220289313770445500215413681290907463247179889414319734184471646730830943594113432915034850065101740862198736450014752551560041995190536475122481376439658464728718653202646499894299500085353205205996878574585237999554569855122851368544963237498279890262805726046530442464468163369009977084709474736369158384545602926128548937183938979365228047335871317776097369164130727051027221478665581338638501404761873287409882633018620229189019918393832276706600647978425496331056870323376841861713366802925295098153819250334863493351143288325912278210440892572075810250142974232420926513791029180050897594281813783239124092391343275000800736413073211066977636440640850395240071926988941616451277713250015296573121739343951696473688669391240083874654934672342013731262504713786327311026712936795142753293050446882302266024295808325449506756676301312780088589684869279597652612672016537426519006097665252852857487194007531383036333489671990900357450214183781589012286398178289626025069008176582820735070094133396805481583297216604373531830775072408752351984296345324925713402054321728238088169005041198739938040281080344351037430398233256415825160941287106216177340627661599766712418151432987761173325102802767771061743326844978985583576751558332455097043975063923712251650579468801615955000404309082499742970325643861315067829645367585704289638655336615708042475912571610257838117008397466555921667564613402399542881851150560640165229523204552671312031313960415109479057328651961686123600561397488363940932233253963844667827052797826829618441636140544188529020600698037776798929535193168372319111374156732021274306685507657291808036422241755201272054490505961170956997112304719034040400638589458319059784401813702195473697807095501635330301376948571957112406505333680027730399716555752109975481763890489595294990237158818052752798223635900452168545521126750373537844690552943619988624114214079903260389753986317343585461817621644694156119741543139628321817036163842735401877635018260340868158623637385275256535499629278368284981671324144439898941927646144283542866119351990126343471436206446358047006765852818096300461048013373654904705265071697196721416428994614134403467001755887838253741343340448142128973727764538454273270866328284349093787968462429010187775189373447061704111910896570580313790082058331119970050972432064664049896317947688351838252781332375990730700797481120626918357579174840862840246608182749331219039332066341755801631246214960208263697389787257409736998446508084021164915676026334494695004277579148536155735882049193650234886804342281838650623693011959150717293959319530507291261983934496669847624642454289688248094156725567732461976403990541063612644532715085495468106357482876555057731054783781415316119818601696776786384813082821692723723470220207643198862557516935332126636428922768106599028266055008280597211602770457300259412292864821976999128007129367698736939089694664316401597556804752214662850973506016227750046403727515822276464342323255999920053026862418701193266026868243114739934745919744678013110557833402331115973343727371938420468763875939329123648559120526434503606337618173588071590609535222915609634562354865820211761619006773512887989710130946741787482629634688400008786558357364161148191190934045267847392415608923163079426093658369361906659145928132939515660762231471218293225811774104813126291360655701118984508672497763547057976074888779703180535127699315961868287648811444754578226888841692807005636086637240249056372180828945384954960199126251632530545476873666184693194876742909750529303253027571043091927205870187267946668169196365630942317257345570671699750444434814595140454243683961800589473890021051790970340214295168605703531430533477561348880587651969571012644159290681889018280740803578128515923678220913018861621103593151261262106302434013853930273193601730486591057256462157109176345568903357606115407726598102491558784606417122012245813019520034945771965919985497793857538799552024797522651451136681762800515364820398768977285373715287161457954916759304752205169999989864827957695150402234833038427866834571719038763995020014688836029770329753513770175945906151709906738893905503363436999219562798205751619183633011486609318127813541169941461285971396866555231271348810379997742954443854271593522081418204887097249017447645178950796595795761229904626831068952955055087698101924011519163155502689003137351651778423326988251354804142599595692063093077469769813621952177754346472740196785645109315987722830140558256764295551648881811637520402667367021572922781172908076914326373983600300435051430001490957479297263426762711905103154449350324713155407660487108126031451156024846645908005875312598078498312018916536289707792557012520104708507693601756316381653489267776949156180979871964709025287883884201032352328314901161696482179050978606417497904475646201024182418571494909214508532690004445551592649074701753862133963529174811341456952430976154930516254307104592162518907609040909368928683420251772230109246429503872876737258818894437063577974786587368548877485962508748386721396183361928071632031924155925645218642144391848369344195209390336076419455806610596100727847999260481713024926336949559407106710270771077717733353893850761580915135701295776720776848698997022646243485681664104145958618336786266101210695304185729790448224469475831802427952132825502217387361868126933626919769286411428122010001643772760061044105012168585029184578493757742786399657153355136413759774737408679436706882859001524837913108246313849708004938298712014004312406601365588907583056788184208583117999895014122847746091921329763073237309146217518279551087343949105854535981527910869510244483186740805471568293489071510023177642840563882490548874081746476445769351432498181592466818512889486205076247487041405525212608192087372943705903879226653936958913685159282852216915093658827495408975426867268533092507024386710705389883168000135046549848837931201259358278894312571210592895849345563061271708023843898264559636322126477977837271416447231378130223496372964434067116438564354827039088750696179982721626042341555517315166993018074036406793461577489683024123003388768212555347202700241616179463244296269002965703579555613643318824637411815090351758846409790032655857392922427133924563149916349266974039928163908548332654283209948793693231268114665821731448698785483093902777951128836017838606800506974401080974300768687132553156248023836122938343949811604541645312195780742562112264236015097358012123253475978149462270925511046474109624304787142884972898557348019092765011768306941948673851646209973490753582772382272048421705175532672993672655648964469632377703401797668221213870168846516545357345949421911701970793041375192835794463617218427049397032616790671113789573713161947437437020162844607562546882798128685868373705293679220248706733307169827544155617718296125013284060879316787527937803751953858625739117188297609759404393300156296569950508135678726989014921386707234106804459623294035608166401109945603342974206982575189811181816049209834814510742612651008130400865529266277504929064225335232246858279724149426924716829337233985744354362475584454434441845208413211403595700092956565250643188318099611386357973635214551347328252162673848076974121126191427514567856517020263387988601203788452281123419761222385834152767445407358327560009957887031093559826762075715886095567999915937828897530050471588453524556995321590562248476747926433549878857778254045076388101376451893920074619090580071233744030500051960859199339338280300461631513412483562478734977995941864037782955947759594213514604979059606973185382499428087062672141875327189070700640571954743011298734097038228480908923371206682900250065139710649731161249515211227764963169827713210555785435968742375013771452871753773695069933856831713689943226121895252177573792578159533525124553889683375357248273059250665113697140177478856013322314203768373183632152358378433931267282798475392821759538613416541259812411263391273354456337626668178042639897736227109515898986641885765990795330290262957419524233796332884368820234927185332616074260514793725227160601212805429670507747161714672541442223007655059317442430167182314797287018805302235033792171235340364999251957562622129130340110397704520373880319828066283447092396060068114243192532394839467304336549046177486278093703504849004695199123540614566849318539553272568234065685082839368327816116948544903203713514681377116233266683970419645360830244153177556380088746911216954121788042103765165322275431854063691762156613683770956049063612555375790964561957323678418969180850613978021782699568946185656938593606227317146547056696961366184809099152036023526933434945206053290799017201197701991382568663859657840058513202786981474706580097763554224979311464197579815252483681551426179467520158637293218230432230870225795523869079022908737096291697311326962638080882984068654941634332873986625333089052363856330949173738606858698858568976458733677956541357556976473707142407957358174583950191303584213201807519524412349154663832122912140181479413379698210494355974259793218085346611006320765645269797402642251086796762037065235838451872387832665850484942248190892517919147154702226094512939697407297547734258503931381797299226970804920161813796034160051479209276022132931032575483112987702065798427358321832833935851232449710885257059693935723946944985975643746464064403103752543634456614269990125156577573471768455199040847977007339838498794548966350212861047726872931740019115824380390181337076745720901230696977831271963449483538093885414058560996341529964357541673036295457812327282119355448585349341062203856251240923440973698530993664748834140344909335237902501586795518706559391090606972415679838888128388723921860470257489740425537374866662409603306009915055568480347455008429402435472518375038114330529176215936733073402015692821694403136643670411399644418448583637383079267691964976359702611323756090987748675544121867263592063674597243984448386383041150027963817646345112544199481704382880323474456670556295937906065383322579226883773131032347611546303758853651090842613478319325644999778453673487594960989756063977190913831055523047544245998496007242510932691028267801790747144553703041083784332898420616218992257102630119578254609857749224438821630977751751778794436128479512989632997033378988574686215664780345212440528208515837217729547493653858386711306534298306691057495675302094027350092384669706008127075794447112536611856623022473603408979991098275188122271069492970882176986369165813937913066068241216077130393276224726988686555236608105778651258376705834618557741014623218731369452024792059307023097803290705659093179771067377916119419346742041357181625438339297948725284605633324793380809220951438841968781846727284852541685034524889906482879254918665217945733590503996144860525989512086623092956378768817145422980180904246390578883067220091756977712109320257666760218449166502125760663666034557728076246088955828407854854858059917707877763373538301749715741906317084265916635339230727634977921856140702326200201321618445456000112078186273683347817509330989522466111286968613043380839266996160015622742916961884896391750658624895043629661818388889555082075382858239161818270510675262438102292085865644254588269081306674714631133295786679099985794752249973605602571448392736255180628727994323002432900531555512204663469647918135887516600756323360680841671800426336960762386018806649268301644877608559032465638575822106107608168012664962606824951431554222373676362206248894883163024656895203628153988096840118779393811002510149365032086119540293793219096726784766526938255429497789479992859032556586883720784410668564387296333252060615739486774997196369709433307970103164499226830366372897080155439346018484642637581917737735204700956186425664406599146488375217157021022360908910185101320303510431429274213659985910464249060198939379827712194275267907574556168889326029796113844753828787516730701190941444590762721487859377731936298757512181279878153980564168113168189290827927261817882115789310841092647245057728765320169699243924959181820719669574382407049991250215085394048362350951543628734189486821917194484515875845019708438914000419086042187466775490403651496601127968889655372382979176376837760549198955950989832012939232305564154738979748958372677063938241744970070813997420417185359953948957826064488349732744081700765515691061682542392677892151548298220029634912943848594809468548182219188307204040083979455898986339519828419021074532520784624584740575271179102955792789653805665994400414405900034779769582423470475301914974636663497801358127771304259456136713023807127292803255412303585689311336085948614537876344846825453169554784818252492061955484646405709969467596252153194540812963509869147080761595852181253255543413519729564762833585271715508467117116439663790823010074173091764676797836708128331816313159775098965785343089386287293921577653745606585625042566424435665525683684169666278456390173419990259953258198908222346899379382300423413209601832877728969158102983737319462033967594639365057861203957011903104627750066302994347431509201504619852032173309884128897761589265756713656894947416175660549798189272312260346914419348106237565514673594360157411256956810112810406275297738027675178304093593543380482212610780478513824238120237658588260856223228837425493117790726160068304438932918187951950405100967708564714664229466278170524670741266613507272614397063209530420968437640114772930310188498278455452473971709583997289845624998485341488832523982062425380640539370351478840358511950848337054050996009146521842039587773764325511667344862335743156454850246977327722509256360684976484770984287494563275203009369321599110772217706054902174455272742592338480180477836712420414007680765362048788779425473567471422322519313383249201642076262466570215148057643991991752213812674614397952406087164468828060916605604317896518864573190159028721303525772411473301281468178083282864857384722765072506315584342891479566508355243710179051716218507951174778506319725069677370312901318122412414538506762246520695324449887322316991763745127871816887805822546804684089231968081741490389893358368365762615810645463517482405016527262129846941436792216470061870511174233595503908201568371923686247238282210540937691349415233335237603450407691036960686285048165928107221272887482763731723301091188544016385949476823161407878863366709738657372203868823537151156764194267336097828570381618111429087017472716863496620936945522489964154077525667167914297630449676287806829440950077814436283074415768634916497713125001887069833520340126512274605604422585631645925458556384679074305307620554004308099778591545651122681493791739702832775790437406162189805394410204819174345987354653242987767563742296073665029592325529606636402107693945721366043531484172824349558681358643764374133412033226721241762240473300105714835382027248708989143068620768575724024769195178752347851073703534623781519970390429200232142402886406779582156675809825191387101451381205935516947853513556988051816962259969038835147269354732584034924169656623740284707857422604586660564319126485773179305143224906597948908213252092240927280496511570294414446149877627444587995863955899266284792282878898540902499816011817169996512762106268775577159354940441960611065724937726414135000621562908044368762989425926104850303072062718652997719786326150247555951223285328448072568154611398458333885700118991198252361531893705463167225694733551500033390613865809093729878446848451505849319336910286715133684310734397569942423939193269773369123243587286523165670629962404790040896099536622543441677037233123427691772861338942990009126180350771132102063273009465314950220488850854259466735013357474791222931195702172566538755662275067540758904607517359684017633331046032685651036939665280234967311221445457548956901425208150320177093300807192606040043843111186424187070499063223548962710339350185061632936875629603792779975169328853256912857413515901243416167504826042079003281578046621959725535768266780690527305074256390682366683677965239133209334586018305856215444601224665533691589294550182685407866514468758538110323608411951829613634313697835101088867945921927926688841959720155217696689040977133595912583825552697812907226449064463262444386552086810866359128423093505713083167083134685295769186957165510693884424608534043227021567333415183316669694447796204600422772632150893139533572558357169802767802136580690937631827610230891213787883352132724820806474508637993068856465386846065764871588652645879126331738665742007184172938512579564437834033340754904485369912996034839758901788372027030656773409780171448272955339648434651521818472109746528719887659920489167737067161170265604606938999180285229500400748510784960485148386427676918931698351289812552883930275714785206014373315059624857275462062044873107519284159240115959535670086354229937667553953767089928757300083131614471036820897828836731269422769780183420129325577106305175425482731633142720389129322249881431840930669970107690097625583828839041546504147291939466827587809713851236199619243391805465708044099031537034884090617615815339951545863649002996408252644408776034523898213470762894457542984171261044928759364209915242257837903689590760374550217021532859924363955552943853856976576690127907936677343178685476891875275607429501074362633906202892598386740425110677583191139709414627990547304688492234940183661673172657464701024949456419537738374422202381352731989385948662210463211644473105011034364617396831690340079815766239562849042525631189244553400372408157463318899410273444160079254642988642744743645282507556280887839849075198541546432712229346436258411665540007453881471533743365860263694395997814907839327742094888078054243971604114667469558567132303972402743381465926625404573484625531809929542126455017013483158328137515483909198039313809012431042095924850677799107783932141854304141862723419313450573465125865034856286490681653180934871324050036477309420836220593345188816481040018858444472001387248144422316074209614814232384647995262134752292726244112887362441769936681318701519039584221198262818896165337614715417769639260625891262906784069996751237198384975982192491444746698791073967612525070754872868361648599876817625742796055248188326873936282996479855236528973333709020496155597550525303097327085693253722985647077662720404403450417725121704699726481151154125082157855441422530108188902962986653448024481801536724809681490199601170042691005944471447198660987694557963757892424897442908665330056057852624484178465269700135665041870262415795023610828002880653241865057720660601153685692744544119880403234844170666253953675761623880698549035634238729208029182714214912875841470404429669965286092040656518967735163291341740397931278712281662136363500442448968655145261794254501607407167214648058910669800943963803893575221158512386747268999632742425691503749513829884602371483137245856278620854439352041163879719576246003554135228491265004101897830916778060668009167050016463129951493132968643950455387788550239546708168247163421008535251602124515483472612179710452812497435974542381497605580017389155312833997658457219407845006840757634022271132172529844707305323283455846313011023717566067886524478368813977428889689474993828827546142333870775652242273737752961486251856079119774223899896495844511349205591520851231004982592128029808806138293684224386455378992492662431209862985943934281906387707042597750391140163819569246793020019883564812236976342019684313900771426384150611932812474636802869332420287868358201577621366749433089016256290511357237783780346430890179071045208593956078692599360928254382378940888504681230015807722559185039927122491217203824888676581841265782023972652931411406120117779821458497931272294377462942900191302914016706860177204989630215347300630720840918314069764918373973898604317263908434688236396489685872805152528884929345799023874908765522961741987247790616257177128963746449973937093242558591808436686943779427068740611371930862969395770615143434116479166989802909785991252988186694076333397390845502466373042576164589773374735692672945481736106514241314778682051686226123835107870409566145767990049192854360890714296039980335145712555874249394247885220053182650316089079036089379589082483244910407089236929459996972240065951732509585147754327034778302316249667597515354858273917639634100833691603458616226933682952107300421275907148859043496724638987266348628532657191463108700359576568096692448805814240414703716060916024044806011849456894940802847098729925964666749166631134635926544901990554066689258742799916545843705178435919691681997927919926893723718981437250342283197403507679942934151924304002949026295015840117106603641461007210985716532559955465737930563666851207120860718968345753533360527855572011120886062579650290891379529171131849457295370682124282821316487845586803426992553694132145853975579393884519295310439807366832788335588118561961398282617326643625062447081278905516832977398959756103940069959033528652864985393293272307305449078353232992534913821454031695440572140346411845293926449695410828272293690261696159329657821521231514266191265558429541425557464765909720347852762821103743038570902849100934074159421918529071099917728073622298837078053824927869855045212936938293460156689551304518711280527067525233185411122984223055623883174925863481978309997352997931841005762200107497135220900380181848029078406409624247905624499539560853210183661819203404591567426631759053385717141940533704903606270800762368070326721127297103449256518345877176123348733296175110704289641059867672523656190765108573759752253954364296751316278276230920461214400136058077708303338934360477860135531744356501473664924117305666415240735195427002180932506676573877823550161058845350805963053930080259147028020584216923155005084615574015033236573829724477444668762643161124833470916316190612618256428485791871911766741491834978201788703716573036730695081746627469654924348404499933699761709257324086632173768013133406656473783298740906996965034480307170189865241548573791752677760771597555548544649173106684823741146783618533015749903826267308673610793780365967209664276294817770537869032421621725044175335490685020965364279010995384550301311016272192207887509678935280779176117782674627278972479596112513898918393211922290615708017035616351394241210710152531202124077817449569954839471040300070893013038098265231386855466581488467784519195141997100074023841017940042475098222625144910107984503504807191046083247018048267188430333853848809722752227557282880887409124358005256134593311777048559089334110979018967990688521138686107357741682102480836678121811930485885681212827705240905095048780361147458154560992121931195416845506163499346087945660858959616146112401011447988517793868070185179586676021381859418139866728802078503394837567921976510862770215701069831569932021100468561273317242031802345078515914298879652213153669892067642466183369265583042457414278414021880311157859853864239115221938077233611331566147152094580509996514859316275360569455006739486244982977202136113376209670016650275052505415858142564198211320585989833729842737572080009090719191934130507141908964430117235594518086359974736404084429402117868604737430663273277475663171667140930597562208114774935240765861313244706026444943868210410190501571588634779657260393080501070261641754436130570643001663383741852784532348587885197844424071352300383409718524403439008653920573577205229679202136653606993979235300197427636048536921005230444433660755756338096324876296680392337393974840271630046572353502046845997109116174779269154569198486821057714336536469532522563241157365113132697116392303910493088096225987953051159116755112889846161789061580096920374476606172371567922526414982682144980183962574044159654526253453870767203858173374293395982172876753813602334338815584402438612942590368937337828065057367421637350761070711608766432280985236618673483194100958172008886413824519356933672223878203144414144029453016066077288991019288545773163629868481622444414632309453689834829476029024513706494650694396187851710322031543027429908217935214694542101432594899245818895126148243254902833426741305788898455881032608944331752229946635698805792457272461901059737976910388536330572348208997582293857344011473112056104287403316540947979614782262768111859922515526238445961269465786023469011689401001714573623810506879785988981907362349235846735667101180725350740660708659295332306339579959601502112375929937193489847372740131563246638225505091115166027455674833033248401481868948939990970298502730733345520194795702784409901213331423729251366292700876694588007122720655612253163886705502434263904496645825156909307989622133754774817346739961750655281143300604743569472286671316947329849573421608001114685976902247750979638630380903747656027353623556275096461423683725052988658327794792129673069201127983000169463072695694587110889205882691949001364550919607094328217360645462400671613913515135817949080615405775361544210882145411184858580118261318575050542156999431120959137705007030724180114323337618726938587800502318102560783697368356945243224572916817617019753316631600598085122020103663007091027446011410412651528622239269022371657849948718725666204761986453121878165207616371290068371939644982642002771030250781131292075896308899133138447882399799558465998765619413709860005275397155445925483180542589406174389153229259897990091798865186472073902243983940696436250717089210967910810344819736990826207452201021250852120745483676379227642163869747392996736491009794045028763283318231496681564486293476703295145131257225037084172227799946932344338146240463594023622813802075954348497038564023670524774603769548346561627478866292344249176649548507507662104411270304101946079576958788955361386965116236571110625307898241730114742431489145661956062499196916396122803012481404520038474120380173295877278059952680440767607003847562716858062827586129585566401674258105872992903360319359780206168922289740181005114723809733387073725530906276963757569004278535653413767996204682208958613258106306028098963087646279386338415890187037379390410597565845462057789542068428648905596224222484603981581659198179556904048723644317579196177409792873144161094487504603674850901369129700079722770244410166472394192522662985775489419460563742656784825156071400753612543990035842002481884428014493280149766215646747150578843694404047987304373753951628724934130428450972983434760704008687346772543370759665071188947771304794632412109631832738979084771907139676413825927514059903135058879326001706982291152373545549795231662351111493900567185767163467107804384856563163366278788018474032814132146044663236758434855270858755437942131657427017702437971755836203239295710803018117957399271109026959542954962200925711668940139496481687919024730099961122246874364816644743451838962961010575797650341620575018038099283572937511387326672934215152876029975394952089669583054958040745881384932167702894966409233418321816038237604693056231167701933407538366396197983922692488876547564484637479871518295082396602131886371320412010403844996916859291284002351864546187160469473935879023213288784203854449621522840263474650909258861061178010233933019991779363181252506174308520581148656286670386105783217140436403066022426235170362494260411425902042343820499621659069279310710439545563631886771065208487375221600120395712047111051807051911368234537180027840369820527624336731387847466146494431407783144943110304802805280279911726086423322492351600204011994380712387638136717594487892101615438099137901546061858550303341425697289349087327507593054458551402509051370871169242790313465164479418367279094740908757359753358665626113655066558439235018153818001349554863025867871961172836113709092115476030175502762626468033555908477381615206736951722781732793268022795613730209139720302334259074755375749865115376279686917272742363745849699176529729997286456505586371074010452129907094365345578382271188497153407645322464150233965953073622735509311247589356111079818419016604935416574923643536158852117345561084465993203461952812730464285231324677739759010456113712080638745207491040991100413474252590516730820080487331279769257911358169173668569800764970946260159453352011145939325126944226206090404034428804739868548223916140729813455945798049004129760036893966692234366865689944113915895279808420317635998859044151440956259265416698360289713781664311618200293068549882040627422836423760550012488629586983418977805366877987393395763046526599822559425380877431180886286884761000903738082435958770907396127945598004507814359692070278952541259003930976734574953845830886883377834423563094408518634138186949967575518005021548384972215183341950820263762138239325911495082306479259433464834026692131903395370512841598856660257582925583534651627799728236197775798557382148264786242191809894411300069793336035610756502162260655733313742825533690212625791547198812222207966503194040088196446427284830053117428824548443164652749277020490500613487442775887314597403093884034826705594299580941282134562254953798809639614185452528872308305607803534768515639473010861079495124983414671878409208910944144235897321064798237825440629718824932047602678376197038895821241359760059395971938937258761240708459840460788245684981045582402006766879744139876152768023173421427349110822743473340077539406821953482611205222105667611323068183183636622843906733819634360022157025307389451866909312311260776747067429997370243663272782338747973144218347322394970184549460628956557997618747980544792398589782937829419073003869663110240531040472227490199864464813350252978094265941409225873664686120038521569625466894920533104800666409658244466292429618390676418599043846942286769578916302440540047611213043604758701624330541345922627787140833277289239653059361716870427299325599792046252641389978970732914298067060432258108921307836304129994924807669409228792367938145366831613116614121605659490281746783987416195973550914914662020988235722228419616152043844876238333861513755110926933198031569791211676862099392991378578280849881501248393063570137213468680718066081464972179008466356240303943203769695707300812871399241123687072466766733635535218694350402413657131721186363736137184224658165229931508110127600601617857819126601755890466500215738725990692203293119756665490365268914563763098680905725659332588385197243111071886750378329867377946579132721144088270453962294542454194568414944715537394546325260522092748185154147903310405659103075149600375173623347320432802499877425482668052921185122082386850375382645534982981450489621408029957867527248723365541413542002840272847402876136972134468442439015668737110876170569054534865373637695356775157183381783971091692553588739247970373790540964854360421502308433938408925030990455897740987953506790214604855482285656986096467551474650000523338611955560666149428011939751998978857997567965320077431228901753189006177299033125685010404877400211607133829141162896363790420298210578434096523049675965859569969137072920069785071068665685851927635938580103591568295525685253131500446522356002263292914951819902248860379975162002483270973425845437396884138547487087887349003182643863841902481274232901033196082852619685782162912813037391196125918902062853341817766532110677742889317400804212730263086066403565886140611838607333268087266330102421479394073323330639135951039769843891161113187047755065971185750150670674749621891004714625912676928225961618030477933375819894023547536947185749680636559933271361047215638664496851086498299342902247220825698976757881510358123643244351007580665321812070338699534429890924835600200748893756369162686940692692455094824152184215880939785110245293310769021542398668074235662985697953159489637668290401216973817552540089472527850959326424417864443917131595065746255763884580970125283403819027068282983000971922810367075229547813925863305601260455810009050773825134355737419535406813293443047573898119600268299016234801827204913276599965063828368725583085738947700845899723256928069101129729657700720185699826920341196132134341160970166346089353573919732751171143087416023215871041798094296236696386456082885525728516910478920949883414416623901104974105933033632223794797050498381226514497122656076236745188707698089995910925242737561821424025837726635057943662960678233942369010087277377332207475495463862402846686807651257087306004052186692482575225171872393702635338874664155126636775086027582949555087833660440398575291148601537739992459156933165417513302503924471568751635024141045288915705571927096514109021691576181601141209726925703289544938433836733071584791171797958466662901440703326583016952776077422266639927709520970292333593974484105737971236584460555491525883926070039053502885355146705248095556773625514477790607601772960906374933706718194507352166296274516785008994258721629934612395068286075656390718001847337536745218807734930567495007348850609829729384367922976798499849117174214778081315620328762794069632190095904406110166891607631041609021466965807291380068771292675001056179208545917624531993337149503115233449888493863217413538439617527088971016926543301005408228099218922570502377864299386945677836235339583729254963967985908147979813333025993836101480239939498413220612153680790217807971072089961497787616640369566919968883258333757571279774104807385710850450650731778842812737241808600245886948482585546447022951493970870018741373091496731527449751680995949411292054575119716912440033789069856100311117408977794772123851498693043953806630046487932781974610464081281200522780987922295769813718316013661678307659181136851132883409038770271404729599785774835026314095684090558462987607877668794093420572996294406132284861445786852157811597242388385674076422508099675444022654206059719125114718541462487900196230800024014582014340547101588178869188012647108952087382272151065130505024113882347947530230181049108633532197718187304879585876964150729693975072614790937550068916072023978819584305478529674392703098969695916972406966298241304409362482682641513879183097004122659257054317256148253333121261845211772295768460743780580940584785501166879226777827719021087847517132531116446808927238281024614260302712493442449986235865303685500357835726357032088793475606337941846094648853928490066880785710578199798051516040781136872125532202689217353193410177004285374296347448651111252644200284788243747276549054298177763033630806892152944256810114319033570478846818154082261852368410071701054964645039985980736267770886033806104613830241811396875659974199131377425245755921756454103320747749072410986039017497856254473879402309889874784168661908699525837637167906654002781152840257296017136026297029780752506967241900709536955940279707383781948438478853605459623290083242364389448476434063223300772263072500246601001583003284313623324928771893050340181538689721560018394944758125204367021926406624617393351033402977361270142212506097789300360983042771156785219217812244715292038497620346171497049626149689556094886897420877986967704507940005330338925949356818982157060923237118856436575830124206148199783252028625994572626916828789462738518705735759103582316842278055502032661963471975636715460279575558352814841935732859265270686591076308383394742370940616202177216434714508512476450737163560159347634238059708292879798603263763931730254762859350052294068406494063031669293511567078459137640467763666165696205420961796350328801800392726644451009489170169418605545486093117593251118151997198808003973785315692434094799471041289320809532690219824813877147764453072821839883386938102765153981133587218702106044443328079080287726368774136197343936059074164917628010579017095891544235892743713837315872106632785828173240338246458655894243047194022209719057783891948855547121147521657728610090470214301081430486298019294529868738779083611115849015462932645360143741257755667926808922908456852060212581909842002259589864627083467801238163945933110720727762285002725849673441393402296675439617745957768094593080393775124183994442321021896034805454671548942023535145958621327516769993848186841832026028846161209932556478354223749316247334096518186188656934969768503006180231773490666143152434777413411966462622667943726623291806801188100167629072903424936166366898507252874558884431097005338856688647129306581716718613354225114826413715439922542040595374280334090029009389013029570794719478390034857428352498338577122765042096901177449235053583703499133484392733156953013556725785934193670898450292075699190230123633585556809261844337255450416740582631574250411584816517179838390343480821401037339835222684605390707222803153009782024337520479316066393998675349819046092291506136178589581433627031568789552730863161556098378931885661024543559569985684380753109985356169689845643624850251445955921481647954163323082461570204114255153423219104670918441629226464689392866490491973914316458425459504585229344773209045608105709092198603887128873129325672994208107363374787802537557165023696235529974885303436645568819995804216903927222641076698491505751260063711607662929956875798996071594303238994312925408505141846407087740010483838277183762441244400020631439055408224862984992920880547706947012244040231741906612063356986389559757962469958909990482827649097437179993873791584398758545740264738182756617430184560423909359058070313087022462521400164106243356576085931615298646166279629033057908594786019405278816290649825302305989176052290856684739023196932515878269049262231910742763566131669570942765523024922226402316811533816906759673713315589930580748521036527100768981894339137353760145589904093691940348134079366353370465527926207215718332526166747981158224265725490405361514710455226957825179093379770116371133875208391196895490927457072260646067622359104390706442471152501302425320849828964038911776775151533274263488824320410606711212756448952248428504139634932480838331095335184454921784167485101492469718705038794873157715724524028370705470326250236323565344171626265180353483314900014992960375772480116867666245026075986113026426843305696061344545007245602796335311729901422255623641693613615687423742083516807634445129386428410279582614757000443487685409800160411351847822250801434064659221059292833348244846151451198190200677758937876159323938171598399723614165777782811987587308214347776584903720950752001518373243909779503230238817106260608075331689006201949493220108847308807385816892077953275585297656868761384574827962211154528178676588666755069007129093672900613074593006851797056680843496793326070407779427858393887456247857953981899893008611924086641675330550077212300064360583047167686900541648985317468802314591172609159494191596529697359153160138248017968318533943649654960486257188014950042478536918482189607952078528745095519044830298243377677926867328125575186548208073408064240247413731052171528406574564811405955843575220588992101755770386022235462555650948645567624817531608185779703910767178556192507105301695612074013475416548120810703238700687510323774488604650047732142103534641925206996328940172973893961887992703528300548477529326029885096750617606229433048605357947007960550381546482426468795346446164650931347974785307115954668060885450394978859825742791181375283447202424557378587030457108218554953465926494064105430764330984202121918381103914768121285800391925658172494290788534813443730542570478231782122128115464536247193844734413986773506969869331794039663667324444031142829886429225481267296247497891180377438680654249799118139248381626065127745221750847600440829014949741430569013678062341363535367257627749448381998471077967048232609067591059526508567137271947235633539406250162674323362968457194761835828768981787876818311278553800141566270765542257643881675455994349795603585294404686154515739096068398908735175698547104260922521210985172056589601493236101455524342965317585060836860143765034259585112021450521876278554947213428660828782591272775128256173312459351234330928746165375277961768763110297989885214323013901315913309699076792823752582524198317988707290816245921767824117962315342722587511041449710030037679767181466225500003901153539506711552252163916100636430005938981291052410800757855036338050226530432016828555458888404264676072654198503098578375072053671399517320932839713759695088239412041591781523601893273473205376393111439502761909093947146131872884384491137133282960524170213441867717139466073382085361803472825509177184688487852951839522523961965426947868013002762273621899448079418291717798415809593565219601479543782869544259102755756454038192021141396517436526494036550796170673834743289663910984841155685229810530285158995083071867134576510598481011969942487790492845132747878821058434837744595948966672217634723116750776957129405089104245034915605042499424530534595281245303458695274057560799387447237044603649084709607776668176607812352824294359164589327543225897396515089740206577337512584280794344275978300772647856785176507098666641657208655920884175660586463109457680305496538257757386573211924919896954391241350279638377904228121395394088791655374495096862368700049890092003597919303081943318511929411926585418345328613697327422258516771697845392085780702217864284560329562440098981586054336597788846025866726179139226005731652888342820328863075964045091460816229110918253215717438363963331686284579418026453994802433817433386395321620964593008449592140493614562076666358507134031828193525009898339677938253227952871812206521689310885889617706984931515922605501079923809635688866471166975769005555923554338545611964833698308685769739664638632200153504814622021449880316336719710970940478618771152935802194205497674030330051831979346089024719872199189885512073324781571467636530061787993129821823313024093886855620605498147094734785356084773202133865491733407745513743904501331512580873865397258388870880829892463695954329293752026722915656486323562111960962914955744953098295672934798779085753783944835892501309240847357733618231123973196983497904683817732382634111064172724086048065469952807174695744674873379755630108336949397752849351467644875594166607604423486438806508121179768061003830408865626531568591921515296997740819192260755657160854373553775103643613109263689422916940550465092214670222971950691667203559949033345911557325229333333549867703249681970690809659140349534155876643070546847208026922995546252338691342940977807900941248174893784203719027610609536346841486765850545171296729201648820795917866877192212035348290806288515619094501075075997265868320307597906155734960598060270747372976330253940744174284454324031843575396607775017023165559871052758515439892253611574004057854399344391403825372565777718137690347881089513984839281264667444230452742478851673122774776562559568452044868180446555241231892816724322805027748466579157165047134324681258642344542328485594937663448476636427625918562945969989134247162127281221074896541924392743688822653088696881612938123217973558827844600722304862065939153965682173015659758295480214664403226818895830247439960017251181291333248185418394162466644210344714657122560368314549797568467991067474632150741090375355637411292791005503610450718251129171972723056435801221519830878576417727111611398583545654568268856138827394208094181341051228938101605577378270135240283078870704605842236500446484904520322111447310775272423905725108837328141332674549403945569931587570956869776141524043480603795790395776723894963893786283842309691333170747687636306969816340741930492072718917115970156341753602138292649610886868883573648819511080817128536260549680640948326766638300388031198065154480364441024791289412494476443303790199923682488504380181126795674049821506079405932290979340262371180063308307247136350710467059182581319949184221764862050473876297318383221176724507291923519778238410459331955566512740901537843119147719991912840087852141127301579918726897791991837822604848539243228074786559218878878332060335599761877315026775711571870019429539271618568283379831286950583404328310137669859398894791445734810412887361780426096394328066439426431071769754326226230355529590730496240108166123097119135877228572360623157358918318871321514602651634310080082932233796408566936687344962694047525891455014804757679753849202499637338317980255197387522079581137350409021494926287637722620960765816657551702028884266277310932693590403517896577956878327645517666060749858234397993137191501054014407712843422026161945422655399584191694054176037555457397087268419400917922822531635219924321588922643072364412923101164344448321840034155582522631068768568219702107265236763864349459009071760834485992151063856888836679798815219219242269195699378509316772620437182149407026238457438172814328479121976648988912117719302277218491937578145576123623329565356828483596590287109652195256962701948411863577112596515382667070744574310755139774977936300674890093602579193551035353860681193075498951261227001391941978720725877310299230600429829183270101006551653881549593994458769472352785101366845786902422431029831673262672540345032035977123512839847160251583441873423138546063636019065223996908123252360716952302576800946723062368236247055239401884174119510469991198420855198728962655858985966557585762733342560977774166773854198593160133288108184441654179410733505281697385455430334801931427619651578134292634056473122175150755638104449104480948620168586892054095906348165370044131319956684188730980746134876192957795646681047427306556644966842374334803599465517978136389982885773281617758523512432867838411899300781223405037173324450729349611471025558256220181294605979883815706537937846617958760664166049228102589608195716310564055414752493858173666620313331457712029489173227457980462574170286858350501525805423020794353246280301763668841543666643935089161025106726880721392492086992848094998615182270227378990299327514485525569826798224497599489195552660023298175817394956433464841402129139910448345246993052367443997987539577654408820370659280148532015730975435916154961712664738962772398422174917907647910832979963171262340523433026606556789514716942547125838160111578421013557379777655222596586260443560752692066426341371669768839971870688684891992942924768672703601222901776487743372491717728905561957840835145218549546906338149367914406261540260663607043163331856668417310263666224256611706528706233362804366768496220046865485191968031183048005600073775886794693209077346200624331876206442798490858064483019959239982363361416446317353589832432573531709081021551010944536377887477010123533389490188860129749477135561920793914120513118694251887471264158981196134230743119138706967144235189294932122095965114210364546777874490447891679893618539643921176653244912141123401195935094265119654802537571165710291966375815673822118602293013106752764165222044291908959656048764268444511748596471957526563419521617690174917512170662253803034781353554212211168141071270431716871961725023420824048846658448366548196783893878794504679796487971946627528889051293079663716405559073091229998533184844543981783276280509558142955246895169200858149973269210904835960596482414469585487359120391202102118999559530748160741573492680841092031387363196747474102604700293661082842902515964873402808815471443932187072006019537135195408138214779053210476306649845225147563672070665825315231957560934499431831455672633886563017727387539352041557519329407516293652506649123926668773079544018530303052065772997748261845476941874391848966414027381632860688510622203377865441613075830369163741361853123123075078298305143909195812018274142928914401811833400183806977648787931841953687843751925459494030594121348857022742251869763838039717233143007182556254365031401058154482795650997445917427780886710481606398372724166780999184557114249106505601691387060297395718905322469348169777248088533696858629551663002572569676561992621842395142145449014319615416759189763311326274279819488165023783787233158395677928726308322801623689225870100127614848123252981340853145104988740524655303211017546166205298006820278007369136823520516136795273106831617400569588456890074980553827512519129241068713108199755837833429701538177415650961499392924774238553721692804795311470223968199059628738615174060628002890094378611611006401649288098137515766935192610045108947075339160207451034257996556770503857151791386001496912283674444762256831141934532777620472249336787189421925042364513019689182559132743452983060386471608584288907310643821109493932098452096364482036515752050520687519599130309530699564398973020000601944860774256201313919559689936547000841123914630804006089042320362563571741031335167729910946735586007020317357343791453238177667583694116718932286254502102380871581335943553392114898500133424775483900450008295569129427578081417474415775083021685194556569550211746950535553224703820784895019076203879193508668641933109811424935077590965173584405070868402426820486081204976907319179700860585665321606265569342953300228871612356292866927929543091589785890771307480375881028730960985019321105448431771940837533707422351346650658159550927459007712662767962367061103254501770430117856960194319064604065714497368598333934807192053454006503016052434835545432859166434609753776909477550235055283898318517248832000425649697139760625333344673839168375616964934043292857723397105296322734914609669088879057357525436272478205180614052783438845682797681332327737611478915610796207169369525354494559364277777328079803005398170704749571666123286688755639485383373718743621356257581897229197122648226650046381316675370968303362239369285573999558337682230726498097487373869879312927907825689108643265089878045718368578731045637132736108972852169476541963577119118305959116516274832048028775391176414309922850603662342308878838419988347918492818081137888843374602532069417553395790643270399172054333278734064075629665702978186931348248272654307819517789435919465820258996361116033996405109016410711131247290260483158128644350594033751152881816925159320023338200616168430022147246742914893037224290408660130374193793231132576483066251506471467488838651373169719880619899163849734084748462158738866441586351459069559530043367084142776914698392424466146804823464553284947383409829398390680104965951892887856738138766039741321752744868930977448095914082506958601996678423672126997123253886506411322903741265952014255611119994610673663699750291837657381515439175534315000835488583076527438153827503197604301174013698902642620991799633700136528160271289706175823393896955735357385042999234495555704835057595682300907179890428942780837562716524787460815118174930646980175847166432806223711101644557618546074943402830734365482602070172546838059229864319395054292861303970960280176781697207924506434914238674379648476748726544621809520831813795725289620136845131972886057259856910738375373898556903116520512862297331305800659108388452184328130731007634831416869691898294384324364990930718077563049528633670112762548041479209700518180992552047119830465861973420431128554700333218734288470168597176254852507027731453049442198511323127305424294562672939308956796430994668525757270343624941344120268112246293552673959504043037956785492873101513183495482723674187625181898807847244330750817971323466494913651272837122051554765461699689015674281919473799619703080374987163809158600422352069937997638228487529193961680353652026190879747957361905281055591074912836711266574468989244468324051956123372479057523819011969094979418825418151691425856915886625635765704114831006098966793144340804986949519732085239728659379083533898102418672971494142226033439252015468344060213514469125780068274098217991897743626895247331484852823851789939777751881363095900123611808462231584060120227109996270641144820883133440463082921178406393706195368740589734636147175717957894794690419857442186511590225163651729237470627849670454606484517785960583463783126131286838278535377082255001397964676344173890559685460349463688441127700373197825997660066461934735198517747434101503502572410746137991714044276256729602712732748693424522927976728630155650480595461195638414715683498930140285276747179824318353228262744842700759316161997858059348990752672627403636482461676697283002795937293643855890993976592489124814253252827777439065722941091432029802502838953892391087133686910288084984633237443863185616068748356801515517579096935749214043015414258163510744991147578937944144243408227275226297840028496691052298552170542594768044738149744617461685238085423939232818546701333382598006763990130199965866119074781113869336275345276663279422550058332008664542564499846916287352661891801982452724584202686438449057941944024987116945342090374153462692496538737944630814841040215564824213098047559461172413601902215093598715694479034646353700018126493429502048081350545200104434739313175033190195288909599601948405288672300684400447356986538608999947823127883386417034897031369923743593917612960216422274952805293847649550379733176808878403805529032678491501215861032033072626451842427459044440579662708197927506114825131798212398116941813645068861756786648794121376064540010219366523077267767112160840166570026085702052687909801639592008394611351909099269860191329398030326764070877429977889063296244170968191393240753606841303006519616021219015187440941082104761330226768557848447958753852090165152847230624140758444091839973117813407790390803394796355026942493186181653968961078330583458266779133156150122615335114366525356828578828558084124333552440317537563173840305066874050453388949541413536631093531380230668657425395952413894359841969433635591816145254846330871365563529010363824721764190895157543831396186871105735296836726347283688340942278100447510931927738841980749590411514982258877893393031422269400569134291333964803152777723730035421465268226016125476422171830445383977222292105622442635447559043299959362868374421285370745921925452488994744962826543485501454548604950601897978731013216707756750078719815620632640078523776452853599548128051642049442973186744596837583074292551906990723128763916763258124272024046503674638084510313881872898275384663451611130826808652713703596087875004731482979936165700510714385682127985073948412683098976031847637152613204996972109918820616593462654777990631324553343614312601769413334602199995495097578172021391328613505307343696050091617316963603881099190986203120880296760650984407636693857239626759684674980916858612105375708222410337800217104186536192592163625223171417470236953943888033140004838263817692342546675094788988906017859735588938348442381445817345100211897726909835623718727013277462292249310772378695612179434155319402286096250055182662654125688397261481398612541132818570004340001620691288843708391149555334791048332461080651024771447215343570410138576045827843297203634714169498719400691497427707779335946520166120254459643299765474768151103981160755076234191896180117489548999753625564794786269054802083722666432559431023608134303334005124925746795910201045234891977602384347111470956208734709539143501781532888087219497217787775375152350845888432762787029248519176152310644918486734272398563106580627510332800033321353829674201480462510059086612633137318524275145141732405986817652831865288333571421251173663699059122197201864111326282672967700215003606772928292486898459853786353062464431385755578362137202914745205920277410630121136567038042202356267269382726892339976340003432708365569118164356078047691495727585848067238517952426208931887504281495573815870258990829873240459898776876403053371909327938733698899851376122035171216409903876537245292680859903572534955551244734405074564818529731876199002033436662070460763438685521375653287435109710778400415583714253289392267570586656324824755462793307581095979384494962085649732624537344619119814181756572423283161321176605518910429849127095187673019005222570509803238104766480095155427874448252217749709839964326513482416387929274214585543052675591637898570918560175424364294502061316069794889163784592219368872795209747676622948305951857906223673084685214070641565469779510588821662412190727202092579188557436654753992659229212943189841978033491635648336404790135196910971287544121760489167762585950150734993017402553404221602529110133663827385774685545722424686930569824422017715742353967651394102298300470195866583852971149558583619055361607797510455483236722723127484945406895005791973866569642865136582720558678729065363750009484735871297687652617607497907426118611373809210040589555950844162704399073296582657051001056379595519222411657957719080128464956015471831314499353924411972373446990037000563972488260838803350879072422085794506118553823949594697582638216119058082446529547502859292849108399889067166264942505098226416504357797056978465019940629484153998939404716362756484466412452697902016254371845307020922649753100891728625556888305169147688721465763903562121970953283883393092142510165013725761109053859297737689479231384210526804425458041383784830626977777725969461139341385690797012062663197331904492660178499935728528966810277749539726866551874969065048980768555046569944149135028374276818733908412774076095341246802408861474251886538422489018165406686602447056724499356523840936902826457353501532706592749066987430498428350498391743238789994400206046000396134151376694448375396026855808222690927745823930397701717149666041813430728984200880255976888755555826462261572591424355674465695550347356172237736173968182605017037364556456268924032187595252156188437425217110428313887892929969158879210323795920965338105329177039626486151098091979523065193427169944412464336775555591417813060457063655988046623712231206197787336781910736683766886551511157848556058104782975627640570676064292225378693190205177444184417496796160573333814541134559727864327704867255936577950358888736050209600909860644939574852351941061184168361775953252757852172911713391754966093211771281546092770825240762235433930679790422835447155526636172557794879724232401270622830708078985633311687561714731551451771152126286795027777845532932249795459052930842881601590419942820403212162464235834355016208427052471166490372578455727024655543412308849141915471882683943186346200381652525774835645845575412456245350837784300005701458393762078858803346868838238662155702938630931380700835484316438237084178392293476259390081578015774606418238009619531071137205494845651374996969319310028702735290622720231644443765575333134058851481574543805523155716003480677059971867542835821862457389547823153330625749389321783491860807295788794776376981794827971975348268155263506272339527395321941963437713262585812919296493066799153084930763272319096665254763279991125485323555271852861891543237162058780833214053381012518430790387222745047443634785466799400249909067162327269657071577961426966113724863391545344423330715406336460395395236966172217088827126628059731966148321099223333513136537019090195629142243251735273894717865460650399465973162994064478003396526384746323663219735969329980673116735735907982049897365155429362828507920023441346168456774675254868561701740955253201639616560402813064393831323677807932446999355497451617935695454169205737539334443201681271804392353111719144304588807802912670108259330338220838316840009757561793200717378452864038536471873234965184316177968403550750894636368415518114510413215028444620423995292923497148431553135890650948714722827705963402067076451835860932667315930076728398251529502747295311846737828543293502288347616793780410913800138594959102957996688072797316438839545397874860894651484376347855429475875667197062856898634698819010682255972781962650322003153507154997536945906916473169464058807670247771903114967853890774895590747585664565971046311172869974602326018514086567158389727630251563238107077704667125268156328994083435738712391989766059757361765524277012527773612077167991368916011467461738318798132159472035235807454826946731285355399620511344596463281478862930232428142684851933565569533644551387441446996917631858398932048941372533575179374237738975713993684146815163572986889160610517380314424427676601636781334073238211920241759641714332953729588575823535786296214323072493034860990904192709466376721360472836401013762472528730100281167156228052027317988012638407428824559871320808376204727693642705246288332661285167966511431855799402212516061452896720949222624249366067097806066474301032617306242054944726066440081537178725159273759188864765310027573646189728594523953814512123333889670982358492522745361619739513769803819323725842530423446113701100513631728552025202257818293608738175867868925031775077946719213823097073017179087656369462646913350545386009272876582737200523577254737427835271114725021959979585100868766759474754406793154964062203542503050516730960813794383923625886430974427297039929302722658217786899580615281270004122571574275486637118197679531847340360210019803496479144639422295954998731261940575341135112720749550114956843453450843686480592846478257425163927118104625234568785225101244029114740266366189118729039983313564454605082972221899550141937911960092019325952869052182931031382339649381829205377177068480077718013154135735934002724332372206651850704664071818188631162141885521176329057572185749241207341397797766349326866024941602049332277154969377550737724080888621301407602942539288001340864942178985293279874747884027841892029959425677239026591971225348232600959573216595028316402782599148154949659703626470523233989441470265267844482313561192993396447629932424997409579898700635579706620079251544316600384127619958627386451478408479510967912153613266916217086344689478419861591249299531894183499876725542500316125979218589271464257767941979158604103934503883168786059848563173771011489560932623265466622670138160981498103112556018748684006536310684568106234240377132516420815459585877903470273485620778920315160755132913145008032863347943946090622106381326557027767432910220257448189908960089838805095342427936118720426044109737069231531125290279728934935182847146193022232323312124532492091651403478878981293606984706473813936649685415513234115354592226882853840213180536700252301443550949002581726083829780270053892615897003483046203092861144608355507199643746200971787317048081644244191449663831256714662324952627219128957262200691332049080831449120183530331577979716774800176061709554318200240416649037088350672136993658087555898410972574709554009047580828062656295127072995351523603402418213918233704230116647029908706808790775087374161943246876583752572978538285343833199870689780377433050264730134276663663938349930775478740936102295544279245821027673545710507175340999267179595827420651128733839784243300648356836477294058946491253813674975667755938893739996799662365543206972820230537015690684795100499230185623854400952589993939020838226383664000966797881205896320512059208035902100244468051099729281476440909501440687831654181625681525660233427158147700664696159694878066429130494421580950947841533067809860070219501040752814034983678642325932791580501791036759973274721343921676804622121376949995263074547294013712723975525517449087895308224692465546813283336068591594884109399883889539257921529499520712316498944247669582917736878273432741339983312244383219445906737495744046036816392011725010765802193477834552071223166514932015791188915173489523951148924364990862873352116681829976503358693252693571527222689086534295621030900343915282205336274492319620338855683017588596890100186710879582673439877543472066232370678965518032390489588370804322061802087207856804244531698862959692435622138023265879719670519731758356514014301752336510966860211862535333810899202617348290514592126677232504652989620065321990719936414276845679379086292312474889483025920869140030538045469884063608988095256009293070253150573161650929629825349812690481844492383111341007805079931505868784447507251194689236908122432453254158175531332858036351956968072428485433975881934467975456050648222272271402091297745875374192955390675356580841242517605497457751349326776318265078974017723733189159974809384555610093203963558388396707882008775684377705037347569564307259218518289912368344625543511183868934181409326658835359243066264893455922442610808597717061422709278589438708791786026162203385212788249299202812347124840245997459580725352376853701655995877710705421412599013786337284202979655883340310841431973448014923578800191228635584726367591006773257928867906637699553854802698251722837685553138985917794977860962416396013323197372533088412802063121504410905447328605798782618815028388553470334810147076630851141283805004768354357380263040637426224560862366635835200279416605032315737673472176382180628291611047305669299762271194105738745780419280565294126886164635031740370660754467216010625578299300882564549438913856201318318759723231765076199676155315402557241438097192778029744019558900137779427742802042381138572632458771220139030549819383652092050713509952464349058229910596965313830196737087002097894762563064603979361895159326264681997868195222000454894421868820185684341018962858141418988324343690587654607131508417107881896217797688223718975922183847370127319623632120708515723909849594059800463825184738070620374906719747057506145134742775201127388929575665346431387568265159753883524633368311746223159392271453481802477831990191359315262751589378361479847639672047965117910415605682186614293642598706776872053407063813557544817685853921427620473363351125721726433609229915678317793776519558074470332649671632490117350663621683023910055270640310479151480295716553903026474646292071016739017097329435392891137733450874249310018548695055384369591738195049299998145934830863735400287192687817722268373871074202862576144462751944895223815038470166885656509828097256261724189316272016184339264523257359942077236969667604665104703098960899451763863181485949611114760465824416795528078968328329991762563315032770589314067611281456403477548535709892229759122178562822565476281100197957385989591749302880073668458965653973280829264461827769972440856901721114242731254161697818008139108258022856638073924815362816556802747948943396200585653808185148804019527471425532854016250792815174187867375271420549910059586112945963232201529406514030343530404220750238492470611690658783092567536112503101381043606398684702911613898150372268074459077099326499280222200041790407335212847184175010891342852805794617429690925214105788005142647406434026320454223930310753922287961177509301756929926987192287803510958414571162665829018655905161252918366029621409608496603573298439906439954547049991435226487354728584552880893112964717562726618633588995934505467640008967096061568945356596432849893434333355509082161122885777525038795892458430451279774513167761466031344247045513540931237639341957108678148416784377553421577241259700226312349918741774755865639015528219675941807481203962787050622255119998484609379857933817073933336946779886221233644091513489726129761854772243671577433699964253849730922521428204819239465271714139746738151077128147919222719178270291014655337738025335360215411438534844586542713495543890486581418040771036391229171383412871760659442145551132666396351326992106449667203693802903899682082837425118147198878706206247136446311734422123948125877399233669490801866262054857694305673716353811819283876763021499292005957008335091093686789354516289336813117138546778609739091369410573064650829769166642872514510009487692121643723407783751066275488398497511114033624069517147459953810959771177016114453637286545412986007805938521412104899598599690023609971043950655154712639421104740285779269907404159722411921995687082036889469333626157105061056244334466007541380605387946031030656011804229915835683372201718626608535629489655116171962337811179856581793323180201117503177260216435051183838741637972046665714244834364349605027642122013023879097200583913112950661522081341668979421059793271774229678602973400961099362848807012375830020590988751160766628893568211252201068405812584677191230242930316004411073062553580303647723417314827173283579162446174891714523637375296647274528828991579054613421810625288728763197722821227248300222144743500642919502739441185245216018418644368306270772639578039275307890331731506493555857411933852634941013423512037378238978900802297450867954966369307238626323132143600433017189354447228330829564041865489125754898067395017919134898238812813693890428463451817137574138770694830247529218628867650038681930795710830196638332912182073357105522056521013050605688278500876866006994970403717455262386698314089201456185032900517358186893725460864259462023968962442876399252207274829015884419887734718825910265832073352411648926799593390357650163952842138557174800195399625482410605326707249692331819942647961414993152191962410061738986558322586993441593858887233801347569423195600660592278045470112106860315486990528913709469804410993056312671751842650965202389195525022918378943001224469480266578243211848415497249003950469447942772633009178046374940146559162681784319350065951929814622057540899008392598955956546484485252303507221973484516986018914780558793735629087465871596279782910753497234563667018249425786493046803082360564018336047491544763381207926548253282240987800908021394108006267062039641120320273717864734083715833159985109116022498873624806492371068194294778976366468559460279994285003320889520177856219758685112872635677231306246897374827616125938786225181471271921156598825501136968262044685262400995067100992768054393258511752082681378332912181232212326065451514725138086661912967470587379967176148171169064824313560957219192809316905837460261814910618852610480607338487910525046925362900198849110890117822847745132369587311605699244784394213783313603472997360667444875281160641977920084843847531297630256244292756009662181815408597603092499180649483080083288631674775066456418746590884816759387330673698164745250593834015655061548079427362592050887123745542506711539497270678965848110549882614598357939026478981505697875060813513670120047354915897610732106089114710112549702708586257369882294194705138197813225038856319888510212049482654425912547133873949991249653065410110408867044623997615930870473924582353465880603326519877608263016244468169812707495031918562384435680387360728259709856327170476030237264073141432351749803995427784717825587111137885080985284595264221137547041993108821707659653644381026309994973349882428762186870913273246056255948059641824613886927833349435298110600648119850317540356556971243396676576507462922644517420568361070904166169788395228015738967648105655228558728531530503019911153303073466679000393982423051569040757783787656511640331526335763750726577193504809591412061741937094031679440484707922057850533212793323668124695219937875883565956763215712744627933842470002043657922884323980897794213621411814251186179460482273455192943791980787691785083446716184060882844710868562512929121404445252682750716568145735636633087959168250917310465652842578998978550516263320277809840600390508909324451776116039704019449893765543890414090546713095548199480103509329636469408535161402381471424929791420407677813060819554211243395821281080932138126782532223160509499178567233552449065814051193412542414169966817605428293950400572941114674943524121150199442239160251112155282954989190653578871282875924961666871293408597808689780067165536245238449492167907623987338900146524648723038037953081544379472740185342195271272986451322664371969516442996070715079454294362466252937975492694558674053772591475026003337006348834595137701766385577456270619272777983902860232265367807797434423806999929111925483878556835005338859770549132561604125524533006876810166972670079953644828987671581148399312950119516929881099597671632614635502401804531288151522205226188779428212805125884451093621628606916744597007166025119007822342610102970276436171680986629566133647620218226142042646786390517936461909731222424594521548719768229125132157728476120673895540538842821005870504595606787285157062883506127515288551476264299780750194755078787984298104814500942247700982983254923184347440865924895994843384552785578357828083344178670787504421475465033575629900860437412715017559193991528737596294712097947181513866510267892220737040985660145732389983724837339879611459308447704235740125702936745775184411969618015795108347066899452105498177191566560037030804920847055910210627567402907473199916829921059446874751736777075742300157411899534370431277568088753281651312150924192020108449781316632191184888187654704006349856557791782104964339720502107533413681345812146736058765773353078105966476242286212611156080611176631417482829521367250713414810273262392551402339112174631671950837893906024898966238646025392857486091545410335574601022253868504510850619685159233837591327421711976753106024537681554947493465940748982941184640137446082210553345677034496543718518081377676094395489707643586873427782568569148321446108793882454453600347655284977677145519385046175805592891886923584589639621627028701685040813414361545417393863937151120814822830511201094002887070287082987856561039857953018146964329932477940093170055916155746794529932362570755675726816182474895230408692282439148484299444096077870688388200661923057001449684187443279541235019323193948682815277757652038783101520910803204549318210323302368798900855478251634654699757850189832441664085981216397607452908541671994234980637665817439664516776216792210954309865019620572135946006640929080987916123486205262258094479397367150454143422289420386510132784197483436626322406573507339288810180259640518053371321155444536571868913915847306449288267103546413388636595810468284544097357840277774042722370915655722105259271011652567011745355790509994815874679168194259135758266345233598268992904437357051864351136896752601342357895634409601674741887299914988051205902596449947613114336298222021398626408062327964643259936376911481111936906513634473739947037403881983419734875287986926519224021184910494744200403535364817718226253577176142028161235104514986806351310098918332655811405477412931853642275038452634791833631089510430661880118238139086697975860806077994729286760032184666173179813006787086653261858265550435650151273956593206949488068125634569233337942300460765923477926359359046580359221880853925451656149535006760095042009009943088530417569922624052216568974924463461249272252688954258637464864189145526598670107893388435332483596798990021913794959537387115247533259075336614102457211307645113792833663247498661283068361830751919405118162813114576709840866932715420189993364085949817570117626519535644417268836843885597089669294327047189193412088767868833420679967671431127213540856743230551629565190613246380764320307888287316024752346991419655421083467896613379013199199704076707032955668790159413729793700282487408313553975261861372553416497325429098561831399384713192388287012173774803074797101299578800506190916214596429669077030863788899410074221290701845830920713365416259065204028396936320826185208212364750206024582325905657995362058519643386046319529373842522336098929181760259042035864944588799838845834209215890055227843632575811268567939909503799596053962021921152536856860559332654516125705625285608620358546061792491656071916519314758099575140430881587238173360897992910791505577062973252593717254204441350136196803502875619801832526483200441209241794970269121562633427422181057592582519729175161065767646566270739681156480291234352118549810322644838826696590015046635717318895919511118925981208541417565523123172935710338933660837123742997311872310283068487628664285982599886319802871643531022492073579020986396688416461508055738176612747364483485900313177299020463923798188278419842096827675006135939385767273271808603788417699640961120062643052533598153141235090424432994703325836122683765397984282323625107008035698888387134954071896477569058962149805500299631279375687045241784880986407027866351554957023785912854637327996380359016717492142991080683634002601494527172820468680268141316158172175353320121807374700153216098075747505138679844616906414463187902286265714722090153726941195576176705925182385673105382754004204025959815686063992145394463932349915404863217830485292483093295907507104035834281269541887820073501248069237511279902995199732931488081364777989569784307686496005803482434873371591720831791280778290844878481382052132148673122558936808571642577649229686763339830467507522058462450862764164602197927457026200887315614887957818669137906884213678860417337068650690679262208719068775086199816588313114086616667745770638812305090312999074986092928029000025897001309422301792419456256942639923172946447300810427747059226429870287275268510174197854741467788494962509843226560892062074558450075213578184217671533704419226955545199016378703607297962959822096290666147471077215210029324848826778924145501059844596440351248188844885793974759435231147443103788291549436063635848303033508270030124259401056096222867317492888930638029952672836290112906102645282044696060331927997443180797887296027008291269677158599524504275737503660200572915383185295933602860654447601399132870089740665685669688327936113413338210196233119223528843569965444518501395429838254947270301971876034648547321429476084684995826640979506657547157054190274435711426444888443406894984246083568691537403817606643733239462099381418312806944146294819140407699166434661306533746549667066051136589291397373742128129443473723462864585024428311267670385247077569664912945974506739817607918093808302748396403662000988794097049576198052658811926644185635076796832864589818638179104397296500369571813962183305870411428801666231080664819943036799412012346206710022135426284933012689536435018586071800899253057700833677502038194598589377165008478462721659789042382819072761789746400473335962276722461669352445019904249503957283624109165192677393307835312068406470991851575800985178958550678960616699710013719181067224574043987923030672019692368960982438056585827497354284605618471475919973319193619606640452893911106082627458524887217251895024387456763053249154603211284779143128979703426482905923383298978498386252124632956895513091337641693428481820047770995581296293330077895773051859331776862818073787538033798274974058003937687061371873696703794676509985636267538708107165308987443987502790949107090009127183522098339861451343926928463253856790928158477264564569662937470784942136999436359710772303684310547618867297086545729136291502942634248563528182821707491231788363962172913268452147608876442375959540796983476151965730618584658999327526000101680642494416581613717274198425125904355009563542929650736759535062145351032321427722515328808459600139980768082474142110732334975983895152229174907118534925093756418797915282224921765424942686814436566904525772081570717401972982076008983608895073807827901498677859748272318917870993090789958477157523125519124471926807310514186049823802973890205394340491730957143874722039612346376634607105798175111316327107864097001011932975853296190330463528390051885922163425789786282647404968462342772043642533411614678110625485546525934315988140761299615379872937048380294151612381771043891967658762597394977681420297618437510242969347592431386521922495718662845602913461400371055520923997132847972404623662860397966847737001942462730001879642139947396836263704937409152106782199282477911961192994885916070249073432706116985072894097452357770585483496122867328488347069038497094817478929328639431024780048774221785049086284124614218402093702689490536615920635622020267543571414569148309358114817036541541333415185504518349592290483232729548456045189515521115882296846105603614385807333940072387456429392736116030607105229527457006624861680428870842672576634980056461955737791233728499224558002024983364338543741718101440374177855738182515683675952394959450722895474746260675485893591463267173961117290222047246396512740762777860353294327614747870934960126068464460769344629871252047593701999264924063291600162588361024812253746233133728869633395468669052326636691651399441311980276322169329877576867153108984268976635339421283110452170404287707400078890386916295577461820304160161091913116906717173082895844862211342528241701090083885708312997360614113100363697747500480989265987386935747738502010757902470850751981385619646364678623474284901206844287528522130834715996778689619546963024082874366198538343148257652348398097401160590534174486196453553813917353429964354495246230082866979287002811068452947145200014860184648526210553807150532850580816886359020451761387991797950798899110527099198880424689604299378243519847687032770088476417307508067764048882902256353610139074331538567009779323930045854484339568539148899891440745440794642949366808586054488861603394780548051208411322952457319725502494356780879118516100469084674810517245757561778899572819113640789333373284853504274971418508163580033248834171244955830656906853732029146271246555767364588782245689979895348585820234171211256923823378832872176658607192807484473288338273378390826114253237698406878653755646088607252469743555444607299998027086940575423511951393670586747332608094255495119834015225245542553932142080879579163116424257538424847034398631819583386071520144204177863799905062171765914855210112307555659171680972558465072353359593917738758748417222370731201242337491383452482355894944353930089084928655607903210654392796405332683852328110859570152137306825570128683295729448755692819375074199687712394752037615476557155918442461192037157646866703886145226084042638016811522471666128231367759562631901939630853806516356389660026775797632178988337617186012763070688211036575261905089032643544396360329838627237605474139428034837606941222269989603883943242911335645268127546445389331495400189441851415535375546660821418624475404257574063270659819993264058730209641844969988062788217246228251057625152319844570586902471025477424096962195288228639547979230975536026752179027181131277661724463569393537587257412150904748802964732031712187959012797108235905411271922656755146136401402797176705476628184401263925652543528378702798432450178703559347809955592777793381464313167111407379086223378883224184324800049793997164707688687907735444840062885389809845525078832868095268226874247346682206183925238620904294000399924167828104941479776134133576450253304213568569469928029305885734792860254019594355619211578888493281676822910451058888324696064255051259741118076347969199319703406076973390755284799124598257782175439182987043354891326656556738019220633655527946072731965526373345506825157236423618704376604602659993719235993038063220809616184776128004057641801656789360916524074615716062314860228124762748796583562154302968010523236978896626781512779464712326225729453508054177312361765237798546830216996874584394553007162174868919855250650358036726534284668136698165731841703467007442672492223166368483417683909403653826664879908403000926036612092310923029076735150913885881822098488749388329683914270538845804495612465419697967166022826528280797452059185821889082088439889453823353797795566900066112709038576234455914900952920697533440858046914519951202234291711116439384330926134289270010738203764927309251119812692900234382955781310367800546058394020774192652327532780326602894378006567148382387516361765577242584953152029850201167287208744569392420222665539029718175275408688688985827661788678043009703055221644757806503839758686933139358150760549924573021241965307020310207238469532067893100252672458274629005607987480831455936976108627144786073888731489506581151216423808774438815970380308571984625383284427674003225504802364960202232850794628088624684090515076961869233280425390300164984051799505041905796047432144467554666896721418134774288954319728873165648822543207382101276366097668723310484506186593486393138043559096111963338620084791622911964719458720629407938182315801543162105744322765837347511687548560900477222825406504880322858168521751275609853390345413892312333588361605586781830087789441641038996023081160801527130924935204174088853246408884889239285510215078062089929145065467135448772870513813885638513060451652097666009289543044018475691209714258215808147759983474522745077825035115493919959305485745215908919692770623449057214664911017625025434697174045110421707983871387687820302161872156950810070122568542506362378630450164208398648246694196442725884136780384360767079787803700340510330227643465870294520281466039821458047118075761727651099377762294595614015608866079281167473679680595238333710824397563079157072398609208999862450357485814388850979844888458131404893483819436361792883777542403310294244415755173564040719130472317231746449407345339480008273377429154809130237923076831846879681600651054163854168428410455383167906855367799349425269365602946181780717914664582744076395679077809882760551122284828137627439194131995223822105523740815149175772471767443659177310004474429236517369842686543162572423476709689045998722790698089124617296659376735615454943625075116005336468640819732674963148231079858612452659981852544326247240283231458587752186452422421894076873973810694469179790124834102020330484450118126188522441933781396591847327075728412762152574592052358790485032448507862209640835336479468771440982938259216303386769390911067124028667880065464630256243996142089162642801053145554885960148127787499221998190691416475618024584495944043307858219666661831298656025928888526537255509287091921040046523216063013226129752390656919822606148414158666565833773369000334717659061744389717072143937546490319362860372569773522177476498526530101818262590493760098243127164662271352009810186288490727054586346409551832071784080401034376537805458328959295192704581187695272420042973312449716859186632735269789220127459322338588941702312305976989778673383027622272346717449569923464324454120429798744347060495619472662495650537117586726191660440870106215544855558840596849884458300626409219561449083000319720095516842294410569221362201674238002165911835352954463020021182004322167958461929183840741410294815672740706410990746186828696654955731847206945910252020581517775268085466207153230614738274024601123990154849925768718352500850207361147701763240580083162082928136615346200527732645080659900433919660269148262391851262038045107025077245835553296648710563764864280554706640711776996276806608494138432479424947316271064527545850731566913134026250859910040792783305157427979061130467067753867892783812486246633606411804926670171873905639774994983825802462905616557950273255497406705567609457982861784303796512097586574566241104087139119052060560619018287711532548298120327285979133915612090136597637429914601013666077783540370412261951829193733807905800832779761075490967379449907055258594056227613123032252373858749764988369516460521375659992939205329240248335987063181529278831036867487267176255678007495929584411743053960992732433303779647679045621284624318022205475658010814897057674976295550865987757655132290367495821097691919350163494654963754317276817566993390806298154864134749022539978405821765319888574261137902875235885425418340081145522036141074657514565098461469292503071925996008520791101311244978830843390443456321563102935279650165122269624287127895060845030073818830540352604516643288673987138037037746308177352711388162527066103021083350580779313331357600399985349501906086710497970333709829412569002464647521542338265435664336883278938837772755085018435913679489874187379950987522885582808933063737556471228720687323147202537860919160563946390308228628526300807722431648231106816807252302913646199967966434623246007698461918429451513047726814395934609977680057675400367859975945112080257505277758723149907321524814386650633920807438778402353732425082812269296697120264690920404792631469931382927675272686380480130114906584995128415930956554798060866487784624152592992889840144274035220254163452853780743117659209896033140331459500901453875000022691114696479011578241977902962643411631348179379533709390265766863553104708485993843745398166095779422662869245210283917499737529003099598973480617228213980781389254158131583742142897778813932548719990437190990236512724947935252232384147357558956188389274596941851684715008046950867253355880768460889584115218767912559414754178806225135779206906839239507322897019590713162813465716639963983027258991283295043021069625213969960716994168692095414119482215502833008207281123168606947523751368967088847082090271373085953013390188444623699313171626654772245297307973880831845040847971347646109396859574317445436951804644887126028990422694716953537320262045681733356049188010766527201791730585156205935846071517323866442531204795812465004153492279172214082789073877082732903889512633016998526095798361876848091297102096274470669773902942465385984306838822965252526157141394608655587327510422386785182281936104047791690789442987540451603038496711656897432045619008542070893150439912615921322885776856176765174488262575912499766761102666856217093523357421865907162976856238988631441689705161868611411653939127388386327457917874851485068426611373436834892883626798900833919892421565346265115447555321250893309774866076439956445933661227662687444507557716122212310158873940811674793646403266182896295541318131075131694610863842464788949422501971718942736694033302248517177974538634471139477038426704168576107985759479993885991712145270695831041687683080998606716267080892501417667232836132894610775999315949709828903183506148549860568506531650484029146461887194429240890830389037905372355474372894964707390125118964107702993251314904320678609092081479808583532067092310997988846926710938710534605963843087761433503152025203693038567035039956091442345256515124316652437660823478649113363525749656677213524295513048051389043352028264002889033082430553124984160924692991796062910736866554083708645861661672638056360473010623520515888422604691866598160906157082338066781088036290428386512579100380874430125619888281586918160293492458882923335987156475337305980385541430266083636855514042213883817878487020513613776851007999272677390727541261901118598639191151159657373666385818485746076714339870065671008537274494189117894556435259086549480921352610187151111275332304367748408398035369105745315982581961278489467475559072322905809643784191735118935107951006117187824541615676645580112571655434344873280510838351049093953316333609525709281880796565784072371794682687097552996023581101264175583400754219538254432331956583233607457831076919649191985888251162248822995221685794285231278733364942536364188599423405010039140379507801273048207110106321971088851970123553062802283651575227928891621115607008533060743210099328498477434198343660178016838129554048023936619708602206059237201780067514548184252022510945080796766627189022763804550463334528713737844300288774387262128986379883480197556178871081113809917858020065733328634931003508879882469054581070246810307363740306898440803732927601400136390062996623357384464002320447700874152408080936266504889454121253198679614364917105783976623889800075583855596620200639239478056232051580059121003932304659830778479423665338676504627208617581458603503251915594147303132177979698725608809792246625708767046369601628091519212243108011546179683719640576258034906387896645526217053133060737921042234638459407428773978122279170969520954239332154923595179460506027811211003639430073896302166559106612694016609233189971538678367177584511627481025577469428837467862321285628083273237553098367756004259581579332019929905202807245278595039282259875238667150556460855099556176350183160149692963580574356351542100057134007644079675244147090361955691797862638351968236308921269395243547832043671364903781313859387678680398992095323527006089451280602080235501609937847830340538934088659118717341984095619180374642410990391191244416553815102027599682520456526628564715672434336117693269061303826132224705361271338679002625953434015014207794000833135960624669273901031514737180219407494475320349993839848798830025676461233338642041845583494301024030317114606229123805731133652640546385328827621104071371728983459738625886102471325279036133063009500082287251387842216429825324877491734864001509064652013874980508361451259918788716505875209368673586937386792439607513621272606667081929253286990651657732792489013087359908450200219479811488336926238550949018081112952512960804001196631528510006847014751718901658236009886939743632093215968279049159937604866398520003067432467551312119309857761105089379177312882237297203226510616386271239398982879639513865931997097314102084849555081425156351722719451150455174912156878973179423899329943155854576944193158589551328180128335720925805647732996973873024685510998266856829413953959465295326130074290785467742477262756101047649794496687056112575832087752528182823843155931732104093526620386403435398217994136139611396999929010084396515167269154389565073561017153516641643832883101349051688790277287147288688353337086214902505278730496509539769710396251664795660863968362242309154278444513667093184880317101759710158187774847339954090406543545850728786096410403570946099458066832413254364437044725331014181861418550545546054236971375798009906253306768980225973705512836716238085486632270046256071091279925771858747732143584497372452399839507988305434846524994459661437863603874432412156178101753983319282651411468335861862135731118807401395996497641426661606749813900438692268165931045587714886204151531447756645265681647130353415934698984125381051506363634516584868403242871096459817565814150534609160283252149001953887168181934279347556441927233396168173714518485394298052219673037830755936345247814047221957806795310542760176808951528546613480013601930631752103509890468026511988569861085902302226760966423066590492976100629021450355409346138166739645332936607024487693019320454871882234710306902446885476530114656602479613599647642053703855474832601781497741389851244255890158669564406327994941369551231557401923564052278761349259198797901892225570657539363677093212145170902913604160503705806535095667180242405887418291538027159825430981557613569827453787677525397845458398026434668786891683143643929729076125160235421305907991446183309328067865961953322886499981438149669006702389778906348336476248022111751218204119852945228424436607156453884107747861679423125533284085796244183237760823028669066760504849008882123141041742331216418117122730000023285490134323050617143977711463583471744881470043184545565382999421586547588215213793396176523166959287344589448626597450705405492061339360058950298945797553079812229726299841721437830882908208726771271165998803907299900718426580794476220178916378883381218642233019325059080413208622717927108292452592491268083599503575219162362449392011154471022182429028625360850458711631368836943066880370163890368935171561895300735654532813868959513776149763190225663122542460701605469307458871513290542391786727301315532149820173433664667547841372174261004054642631826964944890582667908231460375168379503280753502440511314503113604822248313936710691344124229208172395768271149961621893162781705219196408507271003457289223719795287265207914707462947280005513778097800960375551515031850377348846678560769209683575354131927152264115822601570831691838985689267435505579810710830192994680469425483998530098258745613769127002854031016999773818862475313439936749345834965342085772673997930663762490139892172038067919001124371497895158300954668889542554099340449905742447421630736337560908184974696905045036213775205052286433984966917921444008714126643554209625966804690115841250378972208740993220430226725745997709042757762167775249619853583423963183070924461939648086997490026038818091104825817992787670126938222942644378692422885773799600895033834120712995543684758519558159384478081366069050645006875016803031945293213542522154668573547650937489209371720690375502911303196642966026905383293202672398947019497831270177459160819864280241004969578697214949945954909200103948570562368698910837836257006460236021892289405220658730854076678725027733502111410131550669164906452704238615469362168142142492355919321330943582677782675182165315601262847508551033795726752512328287536501392399804752779495042626490866789040001075393229467582550402198454795039630861580572513476361656391727523723047387589570278558706358921122591000712627557170077684780937863500173835608260516439074400265751175049852854285136891505139078954759950143569610695656766263426218174707938631099348561570839391368672783979116186392157077960554214422402316806558166898477620474482298737730179650633200311232319303614905014134348312041581081832763532656657574257757771173032485681101683503397487344237347420267846236790045893403161794013695570635899689976228293932978114924734459424474556589977482194360651822707658839141680338127239013839293460515708296061600883133359914890752636655859905973172096239321702036475227293926447231805142765829317980017201758066471160034117607491139504090176826365700457448499761706147814230002723297018241058914005606123205821375559692624832381715131841882475585896284401607152171073869020189268694585562822472006956406113314752404752168979611913709062226658136123772859560130160174899840220934093771780778503682932002881230869150507419472264791812103821112142939462702684810736043843895591318736436385901566814548741657469251711971662504832456571003281257111643014683973867320967501490928834149617265847945406206692994005922901393342875805924610029027275109302880350600000951747870878276330366479878653432495232991898662127209565941679921085518629368754066384894632824683662701709550552633195620860522389132025789193706252507135150081513423980477960062082743882344276194564873973072931284899235769655821848793994760169491712242356288066287706238336314297702480440114143743658306925097637238552811327702037599621555461528432396631396511721684614701826190188658594861425987403087989943672689918948673004708105693227421102600949352642951400135930712350358255169997478679139373411855434756244695736857933105042245945132774742657449357435587034518966986818612812242366589849626558934264209695634652023647651223653270560550060917735433897916314308766152633954115129381661235249190274327935597602747443451384447478081860300661332962467891049375672232534207191137513036029634734100219258376042048013596533297419141782087564976841144166490005616903627419991383225025719797043011815777070982108365529112321765600638476965731999905055185352387083887871994327329716478844241031696942627792912032359489824714692958878927040939723713794826042881735362241829090317801152158846468048583779963210076334605014643188247135369921415457376925626876419924616262455664179751707428062186668066090689062182864343013424344326233325346053988784519382768403334359065111248216720468362794311905633313573243659261064373711111049283015795902017655653922933627762789643365768299810164942345188127689041116750198368524892922722250844384684119529586861444274056719389640745044944178935363097247724504784560134969274201237887008754678626887126576627951365499096985863138365916767442106753009976794528122926912471698573125443437690464842622127329248691372057831749337034523463396928596508676333386820975141747530710228283617793815606423290212169924020615406191805407292316098988090824121148183430036691425915266627683798049869979224031311128743999466504352563827319829318929982458650721300322961095380678116126762043193981370786698867928082055819571410685038406239670408687095178680096593574957575819589649044529311399070635913997970162297157117766700553690703388707569406077856646981743606679225299894385540432392773062230416008831843641272765026301878276010218460754386751044073403767588170964257355159934753043397326042054267161966740154389883345718661429584025492818465795871381325118808420099580603058795978398977993494538281369402169177220385813891569637077852886246277441969731746236348938188466103821734262131175867487776021029693506390424969997878415196834996288397851567917621483190726978294445204909579201241584556927084990575426719203823713672931585752030339280445103869312809747701236816332958200652731324173255831220517758856737855268259635389220046236633229828859363445113822058389013838691194859275334622272413706286785634629556961906457861802002162954869691357694495995432114834312644006028924295353393312165314629692786649928507031499344480290978766952026696269802068792291759278390532625103209573943004414033094165345410898947671833302836657388998618614816610638985433867251646268979607930807763431741273969138916594335150739802068388903910092477451065863861528317483256226164079697439987711172556905229702747955262892393007062240932921978895294382567579653125617176383878110968963429518127538639645242715915204695825386143384119688341041314191827227897755078257007582401371311073967500682207566995147357540110081654471758075381962820102710663945141113508332432795350628400360589869813842315917264193200143447931181199383261844729815570825793167041700288963738388475501269560594161839382369755764167436679386901570533145468638482498020894609521748439320679023333870286666092461034782608212723867402440691111734829753456896832674567452866644601376103466881054444218779836960445735340144993552269737166184700275606612350944933974138062642164493740939806249434825471754960344128516198276245681719187203021646837247580763178261136818894842970649771338720683118389959510194143205526192490643128703506386710525793444616842576417129004953134604645057158786536242752465691708840478783813312106240713552235148338868664889345561032824173315075837915556810455396163197335319548607420386516712969571003246526031660783964505287689112355065066733252009578081474898844026047938654684963987191794605808509676741307462338824612328871437939498636933313563711184519316351884966054622929319337772581722227293340804982291587667301047227607814257424532225282297277461092124488437701997772355598186437069354323413342787761559533284167153998178316280604408013291791174268176372466808992275424257725209183693846396534085372758473712116918649623185575570317723560154260106885380529984486904767411237921563363769337306927745631320975663188848604300400597731269345192354377599273017070214506190666674261271425050605514315852225272966374440628389461467460474876192730998768843513660851383621633245274721785017201567254984455021076943864022771049353552761387904694058943123943279676189044119860305502329469554548711268791437059650374691125079120996619674209396071006645890401304991526350314947068489371188920747408019375516710907417295366160693874459690562665015806964194624240579566966828523012322972336808780089980843036017268546546434023797713957784251652604185030228773681282356159346589567516328846596990264167245988595539107156675030270045897900289614055260521989318947977666262555554827697865915085415273855302742477885349454150651393836195896690792537120132237295154842989534768369961999985132259041163025752240181409449769711765476444602290439898088782095496371367625389702362622941434762097605662658159683826390515418879592012414684517866088623965214519594127186541793254560709142982561495101127514622889631818136479621051749575478789915976671716143520871243229531737267479654269832197156427683107057872793756099588793990424447455194303499207567630053227234777947558234036354602031172496851817846282082711422933285628482470540008700691406925437006772959353058887252421597321614675242388495287925648670284946182025106361433696950038527843778972570875635089067415208062354733551116186723976848680904983188775038193539281358583567522175491234233643231451643289406765743010820540480563811728864924481429471164941078825297216895507523482316865318894974818932043739534888607735949374670380936044458707631440702070606219993781058654221995025223640798556715512971150896306511003693466261058577728847285803555594939652502914389734382804461767774965996421339604973275111623038013380750722862004666828255872396312340636071069409244617506763423064188742222141099249751223522100296441954173928599718248044561641884021150065077413834770741133482549956674604785438507902009824242826351767949296765192400136781563476865523381586807775424357231228746134514844343437819029436071050984430813670493765026661790035126019974218161459959503015068934632372520306161674805606990015517488004375203753927445327358077916664222755615936130736085910399393714191661068309866241350771859722657581448373604276579264670190500813216138370454658225019755324362127373385020559545252146913007065895333489077693672545637955180261649988281309827965718727844004546791192079930123698053481348176057495832814732298819066042372111038743308012930701745794408827259451047098586777091577326133815925723594526368278336545299988105929003690690054203964830327795803794249758160168466289215499964232942674664687451495243473235043819253028381451985966818851408882261810472173043842086798417646271140476424944211528527407352121102222226795211427548366638498515733252910745757227165049095602110187060831145248000820455651006973637189903884949047296855499214201248234553641913985441852994173605459128991983709847208027068609548329230267966676826046975327873435250162934330338590614139815900024627423864206852034456541087079426674010095767957419590354002768056269756289296274288161618040647946325225040895611153360726921929359827846815763752310470541216040337434020164593901360623019124419455132234762462533922272942751720952041367980961808216444826902033945000665053539512945916831667824452237367968781498875035023440472993198578543663420048610288004484906804703146755368191984315880303323834753653593127449405794463966512648283642463904826617037785358678493017212163987061473224179056513787778220242536238898546886617703904752700996917736188853427342476572540107967292265390244663460543425028230744354519876238545957706372099745304153934145898851395677830083215457172263911897768456696448191521063702286660483874448610032370802633164950751936178442428279879186404397455442167029974959194742137495313429241072508269010805721488160548349492736824343876788535938957426997653494283650690188704971196430281388815557835474173652122053917187676721243379620064372422349437122076547974498028744961851201876726135262208554595768852264273035870488448453839992571280548130408404932634049109826391221095663891335357059683292970805681009787700862719636709515389596423844695284216507660548294677639503044976107561113069564725157424493713333985543960844553677672005858009469233086344211054551220182095360240976443301071420204811111337745422233661106016908868575694572054541411800555861679398904613945258101397264091998084596681585511515921654347439735429666027123810128400231136023600003062978492193014962266152112395221463888808202261667320937059267163636095750667651788414191193437065323821543023305366310800521844228717597374645843964822592924063965907931490229530908834982147566658227424657686527214546857310650203311080668972026336602882866862481597446352920608201153319803292128818574657056623062955117067364840127276263292293075366565095621328058393357495039378487414352546811794137571528959132425589322078856031338499150871395678441978575478277759497798937772332473338582532117862823777287121783978071332576616894446466896645515669203621953804361773467120170220210767964101233196566215967718043390941774611746995319143347306028525870862943478310760998945095717531783515805616201402477005942219773306080805133867377809644840302302406408806383453537981148728146713706086154352148061080189205768580884942243878397412899316005422643529835588726685526897192925166780465477791297192579152621190290705930527358196281302473690986386928708733660141702218806099717782943588384909826228606777979527280736932958220444154682591533794282440124261349845612790603241803613746705543189823197790451919181203132168950524735427251673551879931625741592890381668625987482022641816634896958262207228554869423170743631515458326297193179997975851030762128818955666304076210887066926198422179284356708200815747112556779524654498065203234241951698012582025214033316550663765750490818186868060438077459234862540953915538307419958949384663507491753170854287937422121661470429722789428634034858693074393203806492800464651305158760015849346221315070437057636043949027902362790493529662368020612079007794588371064261484302811982512018004381632884521136168209474320579439693110867524874101250296703973950201594120383287851706050141075035064714566886857978749509473354708379063630866400363961405435298169917266671717805335988862791152767063051916736532145642361081732733648299147821688989099410709255296496478101197914312019365614468137507509787786150279888638368389814529489274347062251296147530035246514455958671297257288502769864463699914273255636492683937973748627649095789114604158679003607431780344046353244892578701327082304044574125149181576399720681257466980604474046448751514363920678054253219657198601097907466837609391680004937296941589847996128633104338564160044052976809693831024039232739042483038267695008080222127808948562408072219555136100172138617903008426283788715603757463642505351883231001325153113230715279509219175127831763581372339029504606861520772664571805820255130370271205508818510057728540973350141209985155571560102946294647297375180939288959072151267253699852462945773515278928589005246532903153334407988345374143576242707014406638801073392895234853851671293765116060475618018482535051566748263555826503009646934471794885073382487264286214001290123451751819060844884450448987857154613176639529414099133856318080334773229676492221629656291337064563381202202638585748316122379713050714159021814354720181765879161684357794306823812792841850305841815177654427042657078843045099484681686929165404403320929673715384026642072673008672516090724114491880068825076315381065397300941964295723066395086602883700840156926921504922934284359983315752810130305783218172002135845578005424927071286290577972992623333898763362822051212131304303513061020670033110358123672500627700741547654811436829450958798947573025322440541148024578988078035927923735869180906761705967703269496076247111336126067822498632719635231712056654918321962432215229454596309260236099427407476365848232995326600034739819716706908968411974679410833941448879949710275467232451587601134961517405832652993381663510683934343417009806217273850356086991785965444244068625024193733878742169047799212733175721738725969880600038239350199792270718700242900815764710637248139468428187873098281009320365578543806028195625094284482121470924275361238155916813382522397032947285519293836156978949701046705793047488209267729451541299014985618352206288467572842512025016379907357784746243200761136787403129353176597596962930497118501030378460060204286841334120361335551527566128813327419252788269944917652045254396697498046570266242347391638748102362928958159417607069196729655304963491043418130791436110125691874384167991534268376377357785667907031863061708931193189043229711341578304483588947401986402378443000539426653817324780399767251924208023712226509617270317412841500801478766611664734609314660489226844399661381839185010141034118425985124671362071447530436072977522399201110688235114698360100040111638909678802333615344364660985519287353739844583252077017084822209164853044074380544905278378042871416055179949664014732375332133659189504543349724443616622251807067912183360978446403446747259757611671927157251746966597089496367166108750545491545110176300188821955765740693577922807977710431736667260040543035335851332539515632095086732482951086322119878833495291407669306265363546090863289455781568488831356401838463922410504614556075454979889074412880284534829539610516805845292021955563597132614149798900590587223134555570011305072769465969141924181737325210729890062854889788003442189458163162434830537818359839165304070362154169933971377324596976033129978636835611864303459894866503533111976296556375501322730229028021743870193890393950017417870859351896648761376689145021699340271300042238790829423337349602920391591501423355755235441878083595295497056139556513188992971923781647864396307351557367475590444810575059562518562566621877967200409249971121445353925088148282446806495954298228181942963488269337204424352443329559513494012524034996881455624567288857909508770258416131354847160929172532754114771847489991020012372551048814932059911289854575838997955926072713271912010266622692394092196621855989293474084041934999328128252615275697623110035120711382323851173429668342282093075072004895860476862210173348800724214629240703363393897893198478902351646862959974370603625840562821594327392139008069286936299434353447216722355837651584764772603682199095736947824593972712272525638009396551978052469731664587115346221697172262999924802166679112916266889741227825719544652545261055604768676254960659407398360598728457321888519648222139024825758062325643039168290743064525445914531219141217192142125273082863376178405333121811276614039068065044436742585252463693164195448108754171521392738928196143528454675455090717225410691109364707246388529033817925006815026110738458863085906222296865135646313764099891001867002710494748719866345686759958689313962939571365950296181616810456070405086794820764941306693866379495737191289123312688582377375654412700658455800036413790023221721726520599681388022516486325324899056162487748019234538751090690815460091755443811782449802859322147949976521421466643880948858035987103760784287888424552764315723893744700110963423152216384522972780010846851539028441185496464226021989323671576576730128664014762915987097762372447258657360903438081842687712851082773750231796857471371174311327617675602520069983898170060380532795764835436742022880750359406502687843810886695870377952890231469005044665019859648691385695646651576487153925712822025762276407977990485823790583521407777295695609992734104992634717264270402102062072765811380001925658028430503770856390527630153193927300512575074400987484681876175612948686988710412361267834064789793457073372549163975000987505206596641616509946709753567840062415104905850929124985840307541481024077128552362850831762974492426613950656507024028080258184485276098845873133210930080871574803857784328677808781399598887579740785585114065597308559833619629371622792065762745758171171671638763538021077904304222619408054408051848100257037836568879283881161512778555849932020104695621012865987449817683490474716520654717458907381240393683319113570759351773696278520775084483872042032275382368372455654924898897481060592623386978910320573118766617997341055526837013064773372352883986704247522984060905635548043913176071026441024153111179929622436005806578659182364725751324472156693247163376176352834731667705563668685894685373423032478902727873848723404792409967766584041106063407027683552250200444695328042100787203814159729000462010340686730377529220354213754564546103823942186962304871700466940841937808073556209331763841797114122978716490996545660941232436818902161188931065182899873497167622557906195741065885931464854223577267421478353053657500359565885284439462345997543409835401021129708029684669170184488638966458888960739158858436709462353028214185135303866588843415462519118128151271801620383233097861930300658338112674477323726473847519315415831782226924535103350588861800138828355140260514586972820407355531374734778318112947876724533366898912674820136920405728642206163150634144857667401399032893433290450665532499918725757077557168570130440636001572092733306752688301739023694969259517609301034869067038124276303358125399022801712904615278322909071989803900468896480355303329655382360861269724981836229338297885835110059104953450563391257858653646120802691402200878070097149671362096892350671585232907100139048314422442559939760658026302996204902496550572886700243969737403449049783083236552316804259859381625566553631375411661355438407716616665826591042119510520050986938036107598733406033199858411271935397251783650546717810264181621761824654774744513141609592009265001244824658969690977778652364996247247847226781301087199617393665317852259418161576805447480516482581971977470029816808580463001068832845504752262194489943635867174921368627534669897233190777385280229319685921027824557288528146029065950177500709192991895334025466520714663918330607348537006801788921538345038562843515983047782366824455312795548770737397235578898729253722802968047228732563869024134939571635961624179760403889638457088926409709079964812951270572921892711497964928732908284024563147487353100787795638549777374489966526542940322206378147543525123918944483658927128597059961493948964577715680305126309135567162402344235543440647150348460641824737691020478893670043485981645092923190609053433925166475780003742454839680418767059171851805694115159320425711541650039466498697759683934248870676202683423999735155913284219690502532666476920465160834985513855162602459618608525099474908487617812096664719958121392183037644997709833565951633380995033350429964312365388562042033046685681012351472303253997392050532758503818211703907855995941306321226818726178128738943551951293495030363197964604482001551097203727468639785380999734733767074640602212681036200347257109473943624807857847774464090549565819098386061891775342596786906010437585008682486369955007064530234179681308795853172092757705848650616333197323959291906948835981413501659801965752543224112668718466522139575424228948749315219285978316549273938378627973459738684443888513691597076047169306295315545078795986497154149489083636634505337440028993412039492624390597643193132697996001665389795208046236252045910162757248538819533593365923411628513867989862037948535598294812648158876834462492123351174298594437376434194878125866363658780351061610082310920295963874735666835448206867620919325289828447143983254337182546766919498653355917855882470909475927864019948621000726777740619152674178087932966835908561615596778442806335006885964544127957062545449322799103214253630058866476059308242825970591258414650973382206733234413546031194240760224258143590297769573835443073970440159467077133246550575844679196565512468906279934295508089860408983940595932428468451799935660879086537304215231797483375062538666595199242449567870209406205766497971193913358757579929717343471629118611132602505436356045592394231006706960385050064521807177395057344599604640628433645763230654978157302353853529164336784209818552605307102665430073708655087103063822475509844466113789866482437479215635977893831666039111334105332297487720817806001006891246037423839892434933064862096128911346403618267549050211112378661226672965158592358528022348246370813904133553154363313276841938386651863916123005910376476202828004313374677694900868231040299729904113539517912593015867767477372143477071479792518005550123360349916518038696671504169501178817652763718856598508305542391297800479540721181596862205272744688795681815525959770324981165111627455456640039156558431457201110529071106998564063502537809948965190056914147469072807897685158705946127566146888486949078447572830880425371467832072997963071442425703586743691710290585921033418799160590722841045339202467933242125310631909565835944669878628003165852814171420542064936536208828948789921889886177060337847308921482179690363719729151749831447466527221987786353044502312780091076076559387955822245487672606775159159340446153504907319913164537812128484924350699788864918267575343266605785921411037407500743221742539195948362481419324315361215775834176137081097002882842737625444947113446357035695895559401069336645118229923350221854414344855624976199372964251281003895580408704307364702928313055266801057647988771280223033359591607398063186448875993883337030165649485707181910908998768976428658822160247584814270610940221792751633183121924755360413746201642542890715132615678851219762039666969376275173846252669318604010669282891548638282695649516346117186131257092514642728130063587736997966469769197685349797866191455770648878145984421015550738001359984303765554851161816699904708220212144115140834261220859945248947877000622310935577177941673825786832340823808417467704370541500344784942414223198800148466746735793516163348868498269849316357952106374657469494845237611274741633537843871301280773724538323294098604502696449555102477247925388059581869612433956823442562020031695305094635814698003479127400405712330866168472989971918038314321849103377963157011184311892744817196335450345719368727554109760836816872428979473231992478090600595575351939089650907365181704266400833616207289015694525568267715884135758878931005739121261480284845605995820368111115781191717434680801108553174238003174482978131381570490932518220842474884554998347162056113318250470661093592692274444125733663868792176214676825366594976685734372524946134152670161954638763711334854664387787009997379954963874983085145832155460638039048960098686360361371893692112700220485262829202756042271074805601681745649956281068367016708959807485590812033012791199956271622314110080264641451594772579644875872736418811400843454528001926717845435802054076259114643730741019926572989298882085141123360914849568711587820878238638045332428163728945554210379369718481376558644098716549330608543995965810934420576945932508737828349319371192743780330349229780256782293920766380474874307698497921663439448756716160035642368540638263844156877492937478201983777523168915888186188406193100982526211483844129958113839991080191291589116447229820858542736135067842184931137549332830913441371417286214291060981281803407224069296239511255181516168426443381297721748606302735938872283816837949914889200065329834532749836162291957385675384449929727969028103681851733618073239074016551665196416860305969701641364266610920851025247968195220476073704516575661395726919468203086044299155815118803655845293201411731517484172968415698288569128341115329819263189573665517744893066486679299980479666332264732941745331970378957770248287890256323746591779305422581453323078075085365790799621854513914650314545746030426438654824011116174387921731220081661619335914658236975516890950747069846535248359171241182295622757594198499565141482131062974497238451998771189816657378907138168048638269014444355075981041196791357525185150419327763760648566450085008530231574022861238011856228421759773612227519686087558351262360358261813094651758083310949590785869496216122237181212625578199567360613940898073181061901366581107301098975373582620357275036051906716287128472092674402657667758683015770785039473030711775297374061770389127569649628728094522388824773086414755004631281918715760566220947437011091782449845373910940524019321585759829241119731712147912548631610859891625752220164638906959542829594049779109237563435166428416747803126641585666082900684406873397776311218602605394902356377403177108279501787754322632695604984801411177483658554495871533469903651637552635197783686555515251827229540139220389157684788247450873606690753728820348983724738857224503484337251996350546029095454683213974891732065757572480734762091949508030466092108649377488666903260741947792442252967515879436050515916176177404237511549718579715683071298238224115483988041686022947426666574832076918539317540752531319058440532543151901231838569839314322812410516587375261376244578755094409627747577837895073133931379565973028802530321430996077706414439992812937771802964629410229327271247560722442063188884100283481796433843452450899933329191874657793429856401250627666752125958507845951044113128407951239958330670654482159950743315483716886861950627039244681144209503590643238930467155395497040818766260434304900366328591205797071390083023117846201072129951286770902938302921242849985512341105250856677580368183721429753700732910914662173326650007605899901006372208396721773361970942177012003019058503014083087081174515018042460835066858653398920220236585224867694150008523190966303477420818655558108982999345079944737499655660932066089405354268983639384177966914541652839865523349641117898778603797889996239378239941899390139294820605271708633563440940856726525145304780740480817854768707664443382612186964911967223294135947639213609523336020800976465297510160021302702208868627546905413699582246405897913060290959643527485204662072975873463669558494162655111259558962584115600785933025767908237051624156326363089432818551885978954746419512431391974518331239724973877039079886088032734318517170273929572682535668372232086003943578301708374746733741347368324187432832968965537994413967144284955868212293108285839516345665890877817334090089302579655836837194302518793954375851350961376286078160107172441466689845060517808285634363717412560520391984730440953539416423491054316771810083577689194140978011851271478526339311896678495965026413985884532420729960607296201569630628935555813573200508579379427022128314740252934471536273372237895717726484462288685228921122232122686612876304763625270185437459656702610699679034112027991731271708227684866207655584381307094362300782928095237600748439206953584332012255700434920354306065122957856406460692122841114140419020423520147046499617879899178362761676190500940314846227010068172428515131029091419021272278225090463826603078137919016940983936223456771181826313662880798573924227375980087389250087609114688119709240750721189347464624507894828723401139932206754054942065675527152942965568581479226319857234163036535840980871809278663697665980344029097281630894220513819261105969749007439911904002904434114190129154170076442357916991840731651122697869528214708450688941748103861714927777291542436241976633016362337344740728137577465204759587479611403649013597918163657356587166743602258074500874516604663320149243263361667448386245280247523216793808536031036950871794288859567607571280061585665550098583846306165996687293078981078693931037583683781472508081910609342990455639194106342351953204828674007754421842516249876073057266846768505089793095495610375412672138169946287155920537381855899663847556769436205637237479965808819092742552718956140935887281299010379103299977130453340234795191514579899938979836275349858714548264298628807440284095804025876655846584899096549370682093098848827697499771035709578590273636424012698647722148270612108777000002675646932956074518776788089541734491281978337999258941873998014460880575723038017869275976872668992667203363809331203537313821388317779811957827903727221769236282023863660645406765930832258564564477214616984173849505904136671514479615770822786781681923110796924326406925676488444317003072686430751130954809699179310699748347876994759794276531411992604483190940093953029792819234402700133149226528697205054739396266067718565801163934831246387767726867872057605691838606834395139729420718158385163963435484063539745613683010564175634102159751470406186095413990372501468059752254482661849635165970659668106519900599883681497816728526070890841467710537442670370099099393841563564944396981639331336170758561969550187983972480191395451819201450404425179740092751437465182023129643575221783041431040633856009608621881817749512284139363624245227275861683738845245498102254852928839685942106059211624365071377140289332298332365287558191615588045799294338303012961205548041649890899741192516469269671136198823348595630159097717503327929032914323550716276248636827978944212150984705330889684616817293791213295442092767806033218871902979505167295641132583256315465062477152200998365889050131449429190690929200521065906246824714771234035730349669439255686047715771259858629175256173134415135856171925670640449964805758425428385137708477051341454084486863157302055686479451653094878669511076934327955573501334098304805216271209081825808737172678095941344877257535854671647988676880800105475232126835804945346265401796345427498763022799503920408086373148140530107719410176803350798259964423935313859347785880572064532660268115584666289319250524105569533789424494957532338309860096743182986411161913129320755032962634674043461367800321972262613734341459187285308361010332488859644302590510198911592412775378002137356815087452036749025347090747219337948390110161532791589951091779644404744160211579681476680256068808796980584834744501662032859393911508712404934376761208321030555047410933810743159952297628447104816910207922967681945246330179110618776856429224144784011532322361947162156696772271511514866622283282845142079698228486935967421723228891252474736217926895873728107507221114031099230647140656936004137096941587727642600500541345526204368090293931076823705350388135694743379444018339618814744093698237690869003216229873907294784334709694069280532153122389645591993489330147382443902560896961940883878903475851748856022991897025180027256950866978408024617892031728333080843034568223708510651207628962955782868503570370902051391905945508109002794717252415758104434769786168246049886657206138221042061672456835883342234654475551430843305886619614514800484856943653296519891223098292432077997643887180451114568234619083995951459198533861924970385901105890075659568245670287760507493813711153298661315072565960756796246958351056379111807916725944110469528440078319365822017224611346743343391608111647549493019710199398027604167849763770992874357795752671939092975215779190269363516402542216113160735739748849698958117295227992862276922993731582910473899683130899576687604422989637690608245826428947179929800418931966004095114635415744907702755031505002915783312448012136383284783487179941641129443704292964874840662194538517605400817638051151073185624151337587797967104871017629551661185639262368765504502589479819583489969472144717628973791729315197693852790216129938115947468047846834093337557890899371769974503979519462517008640450923644089181111546023973136596502563900084841428021616450815073109284932062872574224738052979084234272324920836791116239928807722032724207093281167469626882470779136560561174638927098007186106148292591926679074806663334828576382850208925571260097317758985244450820127837091564419204459336253961112551430582684303707639893561176638517194939326447152914210797181365242468747180601833477754391092027096897697296802147684406636287075661205627770992933258634518872998518568400301016646225568945016626288864629375808329148079091735530359092593231481742013504644216096710136021227314374108398963668166036501272438859621635853571450406773517013357919650597361063373157086630206165436827521568062842189221186330226598579884610960024754765056618721375353810616913111898297578231097272020873725538721284494753250758978532342076393862986255802385160736635177895774449830469653791395705217211878388734639773737522033506028762347776132437045713893289151517124784238271895362432332772098720226226653568288873415028706020935111717500068710383550875028831529529949824295351417567002839619342160754876975322285336601191013934155463201128872593952141223992492623877352515246900158849050461777990651892024836232065491802548017492812595856702151720094185432224397643312354718442349576916625824030105223814152726690698360634764740006308784230137249871327536983472906334431627366101995219013971813470695606829046070586864315778850538573121347149139607896227704804389762316933956073463107021478225085517082444402627684578415026878555134673790744348361436708801364044350745884155842900993171326888368593232645289776282749661911131792424609039154549675998292459102553070146475522732467910808897964802813570575867001758953534433664571483800652793850686407563306143473720511844000685746816665411940616174243946638645224915616677056515453025451766392689289939375096450536262177357310861010240558074112937999636700320474896028454616615094209529842769197045755697953672020460253541865685689118135166443164675086124547662908379257610340388554739574197671183024189319804059962157685250472159000431956002326661347212023394726537615657964777895518480532537566673266897185179294998817702825502762389645451112481273875265645817890092446042089949480574066759702549457083213619131024217357602232344057510825323066415045606942473376868645104843198353568708392401134869312720442395948650499505950297888057202240970851832841149448885876253131922478481569300062763513396772885649856215280253929843840738317486145276726180549127345060000890637569401525949905258197632415490716235378737797939280913987422141098736306436528738607287918872659178734969897599141021402820660614368254600503216730272172509058487689767926942894927845547334134026360152782160150525727308268433766650410651737630940532653801382138743828246371882826763609024519713362224545467975452405865685608860155709489451918429223860159057507723437081276060655462773653964808605023033494881382930998299145199435109625969024462656198973300032101800305739325524168158911478541310897537320299943514248007711870101790264570737030247497074992049583618590570447372420127414717045842232871442087922618686265686460205110500469397196852169786796250209673536827315937958982822508584429999581802112060888663669666390397863146877328596224431659012679534588656898852526204356309673913988072195485216201592048571362609892644275758694831645559282395711491223069307855988428887263844692227415704663182851897380302886930715154754467414459625480519122282466579450831802511442956413051086635151158723561012251132707363353656772647727968334425576869031456147993344383586054937503037491602047662847525777092312606853265508645386384422639345167211421974520907122745903314044001813586900989544895146755998956259669134611028292567680987172701443500714619151070287033825456651360735343738189406625583788958776985993741534043740133518166831480290348124455280443450426624866802950271864787912184931232417913335686550306838884145148318268289350758667567155363030301251267764900820373275287974513314217973808549084560525698475247896949282375201149002377735671744622062633733045520171578873866933667290757981938328184669298869908398252492210779955029152598211162965253326236814920285431524854017224363618598452306244246733062488412053225016967985170131375748262489011260656043210818336020409986918023870643061783552293864256688345982676706165257442984818188283008566853310876878405832483368986261691845952700121647649316261335708870979898510489489302961198634669450311682093098432814450427318927143287044884102639728769125048073385826795171556573355790376377096063393858589255929602932772701516549545866458074171667494283425562439557891142530150107481995649257830280786672499452615936891369671196521835552864540499678195048891324349476062155831611330380922650966806347017460549631354841163628088302852222753093769635504153121505189938055894268415804251946901150310354494818407246169752290935996722189720772689900933215900217578298626801263798745857550505490270136700557143189373972575110105261631735399566434281683313610678812634822004024093018527644005438981462070971714525847032088508231099955805732299620498778860374176631877486506153375912207796679866919020924966896582514764978011195099073139769387884213024177156669215622189765492514740851160907702310559836016149540351897758330400580323161029899977586778852730515970854248121389690518865723778286639008347869953177226503322561849450328623523759779235417374503572711912660904367735864689226570102945531598760330668228310328166579421635897294163869668395453392268555936663615450608411855337182566407389822509357126819756419856451803660401414600040967842590393193988630578039821071658714345258603503715295937019981562252383485622434952572735671267083329563959222725186995581969390926129565144302449402699305764419115999683054584679887998767783882100502029383409697320884396537455134736646726537930257596725747412096665602502210166530117246074927084058729404231680972154079060502385920244203586333532701581485595973260586921049163590554724867590069139310864767934831817001454687166498434753130895769729491008657111312422907021780546508313076741612183014837151722508368987299049141263058142930803759354506219331212263951667833960654139787417330804547504835901923969931085862333410852719197859609009737029515452737600237516904116741576536446161593951744269142533661432249001895119521994955975270439912295199732728339741140114759044298386956629084615620693661194135140339214402726871272005896107228330324658561125601804276402014827935065197924212041249784020619765415358126436695298626383188686515428598654968095524398747145552954597775251987959583409552703123427197395831599090424572930567692335269853252529096109204230696692147068398605513967930945730248020574034129861829613381802337439056280074628919196856198885175503678294564708502827374414314860134806556021019178160141653663649132752864553056784030198318500350297588498395508672125768944051394045616317446273441877721804229767874255842560210867871289179940242852646652680011214938970630235434555240977364767304475208194809507903148791061253257899907459579121418600467341258056406678237133267114033026604198897241094822010550734482118357209321013123544729168883134537497514106116962623902367908682121637955809116733321413373354838739597692685079777417677014927762687629588622307775983885265661303969006222964527839000184747935118189908020950361989485954661798387222042142492145049770107579591009946294383825013893264436264193614355630182524244576778266958976749403630347701199741752755221207330628350173365030486646443087878813271142292455219665655553154825712663555351041399645291116179023061033937945054967876047376309282824326035244859168160388699015406191999340796184969722185386817536592993946913755556175087754641240418872411467719975102004952517684261231743957633963691114077212379923654612636223851411654358734909803424205849125022367008505309954940139049305663084331090556079732575013027210675846954080554539203984832905408495875757376185604618187977967421180540280273123004949561802877051047345016866979324026583728946524412871433018338614741445230722898213015120139663917641708694491696849970448813336727580275310232798936331300982428660760711049895486450708995232714813797261728163033517145544772886204298419151674772397211955616717558783377153806759986750439978832689344963886279736931973142086933030882972440854316811233398443109756860126944973249182203964167347616551117944555325798535105815910727035063041274106665672520456975358947093374339977495028163252105977450186326374407986074241962155754022551695868218475312640554025127414701060681938603993523479150825990716298539245028714409433128763411186298912182805831788498074062416149126392279824940359392893000941582347654267416071433448093071346045250716434863683498963618576843178170420028594981343638350628710129363076807421715819247878717546106788068263845281491775502425003287924820742783678494511654961579091036246464149949045005644946583717807197975172388456255135048232574636067899537572653475071040340484478447386565433591567880571057298740104540965059480477154773721858967640720440197021257263130637193649388312515235181416874189348115699905686189275494089432983003862812740212388177709413144363819533850227651877672199293733430803585246304798638982287586380590013317021188427213308082116190745543226463162208593364342234423675701818652852803889898142029414058808133423809261121591665392626810515309513751150965775229455082035768060255881065406485429327977070367562487707912763770190024774420765900416424240677750434395713184812929737364103520694436737493922999257706792078532494154107158027822249781656280498101128668301239961747650545264697302189001779811693084155055738830343223960707863956373893509161639049111854141304151421859408631795254787315712798475605658321275949492341834338776853104197931156891323898678646750239146614745012996775937580346360959879992541298628500831211074733575173248039716193226291072816487379565998766011043846521424494967831157998647452459272751926378802481275594014383519258403391322034408624515925945378025887130281570422029524385908498103060709323691864857627626513753727701761570439626560661440974231265043394122077692801570621989591493029888161762969663433235116039530830860092329222948990615613401068019683526350931206520156647258946912415250074177697561690909723129752822104543288031172874482399981931088528373367174216620761624601740656869097011184003251012341763783879114604148073600819433545543156762267013729410321611286117524948370150886935546863088844913451292434118982504625950216529057099702026404959481445417540843249020623135363400703607108954603521130545609106158649360960336157855528940628664284922489386509726018268712649621962225974227066132250066537720068079536894341480090747553319883419878376329479506830458236969678512060244635081471374576802599805769698396536183692742335150365543549631295394587271652496509126649699842080650072793714332262947578235117319334952723161610572416178916196318078869255789778012629754450215536703915642345503511946295799795661443702451294533615772455930740514964926620590023422821879468943834806476988678978713997920328025563854338742426205786481334417474746437349058666209177914353313427340796339527572693777817876449795970305192275794277429767692223009342332681045992245980193306934602688265347259421334118123970247738888751805294565844988331156540536049254003455021844442971114338815275088547919727317978405506292761030247147928269268364172485509481934028986679294741394728831125934839442981284583922057712941186134204263495652640124747817831321329740405698936442477122320704123897852820045471944501007567606911813293553884617596428462255074936431906053624875133070056349779443447700091510455660069762503197934650571742516578296222328140146717651570410496108908949235628455708542725820815344076582145248396030823396886883343103597428324023310582787955274362490991982557287985992530163077116616097400274556804224055707121628264704032568237978824060545996741087576091706735015208652351530795789446374894554330596728380320069999666403263502450668966767908248928664326701845803752873252440495110943216369926470281823894263871139324207307249364450591839192766346453555374691487680135828242577309569614024965767754425253798344918365061251445596201927091915353862411101546734960081213882507726098802822667615566656809392726775887590698693128175275679901580408047429829531392148380925708642349476923109812107936739742166233135049605798599875323048819910701725396180590662857473428600198095355591478013732350082487728606533287389498488095604513228719099581138769997563007993874514914742883640046388742973907036012627068534598716900935258396064225399448719624818769755973094768735969836795152074110022728445870476366979857143237491388265559588390225512587291367072374491495691742999918436206065313725801070922417675660471726081290929587911769192432865239442335050742740486132280196432672841811994722982734410555438676005172235845680076575611655979893635260846331993764369279187299727816115411386435801644149091843858635032821428709532653645334123100647590380968342033155633419694684479267369012101027045070325697200205406966647334533449822750771330010978561969511367429900876837747450471691307426553891806463684817265889939453121079176548736369588065907518616554907262684057591811956479942014117278924674637795819495263983884422008724412972810378939518646051220891368044284905436045344675038774709226628503207021286322709704837673507636981770237911619007851847600494845959796384760219811919460934562133046490203640668867235529080551708589024853205909995199936491452852443044393824242231194175501041430823358383970395067161995061573247559994641645300551523952513977107787585648984582299600617295951670732047149774444331724418749265925716037091797489035889725982584440870409609432305540950060442442611003016712866178422990739118367799230607512968943263213764060290670640920451963924172037550698594719834558977299293380112497004147889836772439734945318618755782073771706540069441723157936001930193572922081094248463912635511952933019082303113532000788454281278898007774258443465669452778771270026503160696001908821403554986902086394554951393755133224246365719586894734554076482132739879056005036640738255946897256111417049452412866130333567904126083898698196841691969154965438432438012942030975149998716608103205675759359857845872219450417702691122336950142579545502309823768966886631164698752292437816965346333768169477746721979255664667205159509163928606978880711889606159182021629652370617208699490647448127724035323202599960977865288869458127561803766732365629112202019895640851483306492909952962819264540936253555074629037147885257868018494546960595033642115391390398632390121964303043722522238096486757451861227544139256142821331439797764547682621442446972839000769348452739580997665715649974594987696277872519991741858171020039101221895080395835964685630670582058062021900302671237658069231060147113746339265938517250540542037832532127735505905924059797674436831144280064156922710036524070950103031910313783794542430404691950555348502553257118553869765704243805330260503899903226196885924477751187927579562616313400641918391179710201900699007237068083253556631757168081814421368462844105760835445129703201824945482068224155312766493067485190232069482552312585413975965900991095895552202477856508614083829893269632786254949890134887527954497437448730662972509959969408660079246265801585697977828373066568938587475926233570371969640336285749901112819042278451169026715946409086493475958556400421836482162729202263929557796655328807777974960903139203870374056638257963488456386857496485848326647527192480293205038003238917332901759347503813927243692838228200930584353155932016518811235040120521606590150069549539113236516801428331746839614934599025104854510227042840595514180872798091814639396437989532724513669345132444305024352642353237121658754745717967645833253603009739142353248578056010355397287924212185640414768315462103041843088705824651349778000700924767591107280901996975164929377475261939732448299205047488123551341315346032538453560774513298534238707078880786081942626833716542914090266341871000470074570139066495819674453983145336146466508720245038609532950268679684022385644319445115417532680889418656055618958345066958506544741068457987123919760366495772644538716392082404395399865835816101552610378236997503282035009753242379154961302555453215543181147176236061448866701680696191614963842530297377568508709048783662067177234270972307885318241865868693846639500243373278085484548688029094474407330092476676633232096971183161123868082365386780972200226259940927546033932246176585553327196016231690525253798664520267727404244689201431095523884315584778581270508691161072108437763162787191698935255807493448871354338264720110964307941780307726290825986607177833520457635477494033402729088066874785929545028190936230904307209802736837014151057859700842592515629589315554663692544949883859665468953834725802910390931285911806592566946657909575968893910961117064136566584793075493868092077132606563227807061971575842970342422762040423947699523249104660745594332945062857678654540672218697367571918174874081736061296055540777918642936264785339912394208977945742503423848272803535941480985872153550937001114677649769841514510123820536530611545514760175658766422620470477785973686618909718020393583378355129835090373059401366227429562711957302549414748530282682573481714343072080661834360208777585893257450904994256506937021833904634546338949227968198613175588590344256921377195279343494915458535106664946952687359252300384203321084158268906035111874380797736844203875743288890362825027332404055714924362674396341588900748938906983994838057211872306919950784919182021971490847563380180148299881036700321117707565400801243770309773329853286164120841677522534190279648879440191422533533195827017293059006006289929008918791832294776657122823993688166039150242817896274714920961610822745881407859841714452404271937675798317366715821259654641072273863616632237874022628741229948984508949616489728500889753682268892563062887589216686959577605868836093853267592560060479461670539378389840777151135285583117291948731739269246670534642634847576567365787356797239408329434298702786416473280318250973725856328461601231630459125178294703585958932283020519141059006133769003984388028629973126569024295217655208941203661850115345364218632063392314423170759455549993877319276009166686429422507040318617588176175313428096267107072626954089495730954753707899631169166764665494819033983668509807956004452424424733231078822978027608066332275768792176628488786045224462358901953731197289096147968914412151054482128228697446826926167228953574797937686864796951967743475146220461728425013064145417183872487010452184191490841835106466476384460252619178863453435435336033416633461221157332147424123020679057552492223456964945783228880102850622401442230543998520702437208074111463925835056175322715337441304564845301919338467204546741298986569550740691261236680916248866978287443235579859585535952997285703146613371965782692254914923526232435617243940495276856624639667387649202276522663520754604007296456477335208797131584559724253901214202399530557017906156404435185007232556143253563953234224893853777208440527615547453073243994201699169351781399284179487286352652314280783871924732019756670574439089492882299052324882088462624693426267814213424285208405703193055103789751992680643273939427100953877557713208449509458712884706181022986072950626125100973398954813546525961417178839373132711111462353553344137590953799547296808657272550859206044036783958090156727076486311708942871151947679521321330709149319161411385760771021774551122196258519133935696878192530160679032451241191707859897898309810767456220209657187906152881935386295421626980270516880083116096806162662467158723411833854298341194234292675646280447948003284549457507414493059906490108336872558333109546417063164580905726181911682467126163530536208923835877497341327738656798516006795770826230493604114580155178340726053595487569988817691262781904137868467799283486336410340815833479376608335371141934863867389169274215086023180056396742201568253691442029617889073794122729972287474870488122383204977335174675620272065790447404640786326225871881038777425868741595570290269846516499086701201953091441712910978763832652473072166189770211162313386562490878559572002824557437221917574445955271747047004588473552369669320843283486351126095943181174526796904626518957689499960184599894159662539026313989451357616754615367231807544865532468896968710903926346623558140564148082640623773819041336541930588400248778355961553324287781843326591555433328433603464295349604558509649383802477630908460539236732924258843373173362559056699496433481734223009712603484164425311602149407490673101932496469266591370525949436618740345441116783392761289330682717816546598074608688803284350857414880074673544884892167191078925998501625576953115353371556355854364006448358645540192787441052646329456964631033358694871613487013759543090678009294320406222263373862394158374344165479498459363643967467696888375947068894313679283991656127560557750410700899918567911549491855863529836848301086531012506969814865572886116208070935588578521205690018008442285655310600959210185081147629380735409104103218444851855398059618332406792599231785577573449853945857521103342372621885202233698821415497430105737977528311296102752023723450306327948281955258480776229300005124765467037545309557622036757821666932199051104273033394155080552808854385590412866746549970449118994216573019234545309945777506963076802299793213698992939972354598009579420121553450525597470778674822885535526345156514163963316044202465551830168634795644749965306418936055076690196257726136110248233422336362523242145920598344064605128529218589583738233371521178173751694086731455503645977077302872007523559926727471438006594582834252872252857965671379860871690277330623791721152307252281491748006422509851403064352531662867061256204202094244549477343331660496653664261000908108194813599626158838031638342536002698223627267917794823331795583982597405883522283966059690174773394761684393014700394307615004856694222655136884678830520864037465342063068666250416433921001258953284716110209475558326356302809241599339114711345696039921594656752870791994606043419831848736441247895179619046988579061947286384218914668711095393849410986128821212827345946687202712359323229195849069028250177439837713761813510088960585697978319795669713288232722833491413043510507966603512509678407920751499332326066767639866404517650805407653151104644569123350570933819478178601749465690498292294534368437324826101350470175719165326441091970187260696108734500287904519781580527630869208090866469876112031210039207077016283495425756452504323329002376844802013543506429654388447475303467322350910523147939741846991355707789927051837749384391884483202602334815202786074905108026425688286428734292989920946687211242619949972517476157182222767883745665606416097595143818575218846238510079055055403135118828018042027656627963837056326036680351645043646228969826179149841184631710849885536604415000432705752969641349141621265643903196961853719487587641204880458652592583753259074952906151356452574240625653019673835049552123770055803646247798954938541340931462682912559567548595907290947517668043469073171246843498798716325105577660733828354242036241099049593901832100061948749140133563456102833332998439200867232147983721793897511563917595277558348541618010103087666097521824497350618297837300861533872166426937348674301254069530810395146630953931657016696763449756628394794448312379059018925243134221468518535070180108333439672645179421904450638638073920890064052553421582458153406301169751009056646158900092339499291814912050281714830144840954504593883272224144335285812480042055681978332472071113603421174080160623352713628952490049448455451496242181938567275132169790840545481452116148733447363281068389075924504439160835288955527809448943649057806817558225592401703085927479769181000961346381587629660264293479904251992307474457827335928326712925883790747396870258941407769697958977553807893173584527481387790329638383537853791934363974608953060375670443144294720517557624942432594450565311918872554593174359422505891184029114774025571949786608595918046057422293362194443016909123891496085234185778362359694309909142348033377679979653784444292769834312010945499812254941464288928074497730071948581533034667754720031324454727685077226001289966305774091917544312074104208592356459247172040106442856939598528575559848098721359427122871095268362880971721249183737980469298900792336472457267873620653106073054410937674452879719824097084510942984435004670758160139846188081417078642200396283188677397213700117786146169672634858054939544669189853696285785576895971726207846817763942211141121827627042100082559365281312348197123154527498620423181064187998718126623372376338910304875361389389872044381931168145390292154950382986007633782891366971619432574886358639719596174360703649876584197324817709702425994757430168346450482037399471631481475456171238544262203451791655732249970751712963090523123293537083659266137114386463352055846269177416166624351946887655731307930294108053602355590806661203282155081690693542005693778753351727211990310900785403556861530036808271165886504115230914050043811093706663387347349861869582804050697221810541059190699631091484894468402004373337154188824395834016303109018795296716896369565658117915232700063668466789753138471220843860086161690797700402416705470530226335065881536661202767793293947408708494584510137002099291292934801700743823489254462142856995316138397191755824635057081299897345392507259609453696815204353242256396833144263508363721734093024324754159559482874150063123276883691042668478877330866497465656016264316949375708370169834123318546865296943574119481262635789028744898641215217887653387517847399521632548277449889980956747482847423302241496641599331434137460729855848413825430253512812754191268434643952596379061421277427540211564884272022265304575505947201399057938120173362074325439280591978285501374521313552212326826476040559466751681241876509267075504370791667483352534238923255771406981755255182454425118153571454747491329012099308733755120439713193559685502133529863138203328100320798547391449253224437693135604327420089565437942146230994088439998148983742950199650410514598768176650417792577247827661656989203064565621017294896162008751332255153409776953732811060747181691793305342222054576898684650549564214995901360152954254503807653673070856325948121677315847129683424848679338437994211639615054057188732689185351140051064523314203813705854580373860551151018133834939690069127891192323048777294955485076466249864295839377697510785464934005211418430444509192803879682826866698187610321538424387852617120839970841125050923262335238134582844291080598822685572486040358637512461916906514556278276104067412946898869790132819115339638598984850848762480075160279909102183731386710132347091887395572098457184878771632874318433521821090741401610772857336023449305211456834196348999985102461781014130127294824542944336384937167813043641740380659464604019534997942083478011604147675369044925135524479810948807943665481487255088376880652165833127748263788790768687786060084227426006885212208114796776607063622075069986562477066663627109929325517284986697419923056246459611067581620795671229902113537286621536057699926294296036583256894981827322625036581790223418866828380092264489228725578467011481393733485647366205041705767252882798965076537472356970079111687826209179835003017363369972213597195101643575613070154382960834386448153216439232336635685415922996658457255623613697415788113967201113943291642369825655675241789185853422208348845255076555493343572618693933638457591139077129838397507000410172525384571719582591051745050634865039069708648260395889163827948179411836423304277346360501529963883377755946114696270148092828280271751511887789968365075065836061574640662574187112637515602692574046949480099532440096025195944159925018024743156256106235462103984065149615821611458824044417248041600999713703339193940845531736114529055398566656371628708045719038313971427197551046675655942067008642823845985271939330444648750599634224142134039390411424417146891626595498764019438805177376020284743444725547635746263676071130541601728349549131934468193579377822629530602003566438322669093557361429315185864977782030315254441922623038430902093312561841829936514040873402731249843512802255400181678727830781677566044467670997792345405932361707905431993912616895560434185230264948976534978200931847351759058875474641279112961495935354511492161827977428041819708571465132754199892575186105510265432331420000965667883525928665388906131638533206219704897419403338716916056493518010537257325068843047926777935302680630039170006513167778855607094862254268618253929447770781533572530202226327980408662033567749425941382645269893536599355804041316566050976195662844495607132645063247382922905923398100850873548431998875057831814164751230540563515787837546501070877427865001916730846220149686111667541428855803821520590296449272516430772666031192873344733763080134103635514834935574413796606307283459026842836164629493914411215745484036712639957812918384949084284687854118709050953955002618061727097074624217825316686239280616208927519735397941472360684985348805491562241056596819399341461702279605101928986110790241884316617421847153038752725691148656807585966348825707070482647535448011836322779369042304964354039808412858963915237074410409801608113042825753238167310304110958487762991607142410141697129780265476459029355203618961987044627395465407896507280123715663174594305250212829146606944687217715716771982080697083355476427256132237072728029808532978170400778960707096986773217201607014246918445429229439732249867057190736067062419382074960365071416785269878075778591893491105131757718608731213086920398166722581395925938485005534945619438493605817550070800976212774494580399117015731819733861983343351323181054968734475030753015317494415311367792347116193444008750573209176964844489646283443942778345280298732174142234479113626537478120892221256376480343509182753693859594124251460698212685638218424852295819555290968925116831388413119198814411609285010817318537146621959609675611454333264864870840576435880440067277219151182952758644285087812426817650412310200238037366297693797853917951647646894710893621034729441536466992509009128420978559350432687045456193639789654954248062178347777480623899065724143982164901030425563129374938644634577774208910768769285757052330231829133983786581851284108088610073004128765185368730012064531173615798725830809563987911907484858799573714892066341694340588972609413644847177917777414738107039978558503572081188740031062667779411504944976990510782835388968089394868354968676903438540855493419401513673715081213058322779340623929985126938224528928456570803744594559939344585463010447995688638684142035759485943700976336303995723074647112681249744706917051958080706375123934410877493790904972653251796971677388726457387583830060005049243133699292861183166089623902391211936573577856762307662576501700563147497337466529851428884478543831775218357258734481792633963134228952904235286144595370600986919349718441475195207170209472859499871398057349500748668834473660957387683081346641528598207840208576636930016858231263546162345889431465485716835400078414343297201958768623187212947314380630640455113079021599170282313062907905660243637048453937488638995865471613132507564822510978692686492049621246325817178336409068727749526657362234368375521293662796119230050343362948911104262635257169455476049754864307199104522231149427640570389579217922087474603738237926648509818728130631031619287291557907638580811076994681615077899533068010443203295801321635028579853048317777453508277749682131283716420460291662322575579524745772900877450060419228171661347331088419156536244581448075754457725351352730065631176402569767917865420376307163339677891090771063249315941078522766689455663183821340049024246976099504289771704104821630144759550255150066328399717371027114210467714503147720111831894907668819799871138098713446035498217244141788644476239379747586346721674622113097548524949901625749967930592088689806846064552258961284687620548036887467040388975437539076047041223629294246083469467966323376321889720750562942627484273983011189450359634887788439058653653795160926734716582809875947153016755273539055884932034937037095703622280926455284160791150427454530530192044584221343237819714576045846951752742850961551956449285438390850787796654469747298154937255922261253838349873375043393823276628250967495893538264818303897920447520372119332461280670949354610716064479485462500592937912025754038717258204695777495791739355216477766627287988674262345959610012660643579886881841734516626820934914082523680588307868632605916843299187865644804617361377550616617669270464262290163662950361727712153931579260857194815927501552211159648176615425085566448942612699303898445309324890348065432596918760476771102244025674765097164278466248321563598097254218106782004354759183850880635810878502434763295721762539269609940152656461582374368354467891823270228743054082435125992979996190017144075825697136305877437076410620545946469072053855106439244868872695867490171718511456960295017644660616489646889073382685377767847173006371052558279251165645285136945063249631588820618000167395479528429086642974149899741943036639020743822679406014838582466829839410858052805921236740763339229658493747610667775870616388569008661642759284377005920371846992213223960597973992387708107347101203561819956303114924456064765004426218013202747439458358277808647581337377700872263638473432324524086881310631167647164388886238979634991565267120869891275150222313637385412978720433227682337221775555352429116428296958151048253617546284365072550020816306629730198485908704601719421649149088855872754262228358877524013867304659996718808744669364144192399809617256013872280963068756344173887075764981293764555194920611675684848024418328182365737307703029710882852462193407808878464952471473087423938396649649799341004184206855764525226292397781096550485327944170900951753195147144541978068648716592187447917595965614361281362568558903139069441695516017109693941539735086975676717569549673925068086300134472903342030105740347177083846538189972873806803636132624932350028826429223770878237074868973166293583559164973420840104065959809418502538438387872519226161380217832006446952441553862687855915440161326349301403182640397965310671818193202413604410474769381019642756880015711022109811257955944211650397025147766351749837313700759779556709329724205801705303286851462888804672692479060762975149155834858330678920185597419308324466912229594151549190180437500122625205869407785719572932708792121230008301978815740288834760354161358202545504767939897594906102552495147721431144883877594666065960304366803978970245267808932381622817990327098477623739195800170679099943321624555563206934976012734253061270001426919351617583184370255216100174031046646376871250494052747030481872882496172599301436301721127292087775405135330713938949780157572665235418766341784244956890942204641368285434644567106078184037817777358195870833278872117689735051189451571897794593677550765007303092787678741944717429355481157147107230397961598134637335917508863190110957022417229444622587592917800536380414033477605547900597915645533018565430974417334918492464279284088328295531198861088216641017949299024206853549442054239080294326535666032740806383414016304511567500520541197274462012047206035485764249581151312064199485161553128865454421113244514754059188722476984305760265977018493994303847827702209942327075395180622017939797493464864397272866200632820160634552735348628637695932202811196814017276193023646060812398298801000905385585525942639264418025882919962884432057914476592141128853267495939308028054915684057000264340290946705472671114977889869907124669439388288854347755622054027833645940378554106724712104257544882110359810197839550758590540507475131444079896827026516909196723422288969772883410078885577565075279661231878486831257933329478412131998930509961543519108938416093779610002052927982072041161155068992744968120442540910558992337020280187145604025750777682988999394064957859854055911636678743722779484194328715802078443003644200201695217329166913822680063882727754238077548102772196029256500457602689293645298833590520766653744730470855356835493217394838063291565427729103018250143844366703625308380511885117453378042769975627641854781469791098360437542135549457378301084151380883288986593861884301690740817873509680385933064784571537298253432058023295463286128928755061272291022555582920107317438054783019713470723489149421337359251877699964572397424986600268552768870837206395970055148003121832631216086507826551286997270117420107170181093626689201680817129533557424806561427973800010051117349956643515072744997003801957453976987716888048042365520667056526973362858856356957064291703570536010068903897456856460517790288327384261418615931393584304288502784428644107743299722063992693058054310674664331174703607008793178269327801098044973504339002454498227809170115298543614941212970309833132081540500331823734778413446075168570172184323433131085031238613956925495410469824088396002350066256584576083707917224499758606520294253342884538767133432182097286627015915041431364888981628179674796269384317383040382961556079675964688200191863274859277036093148063662531694937277236237997837711339191951366832325268570236364779180600083360257139128064895825080237874251805140607457681186832695803482431835476214916908713301190598876051519176122045249372255073448187128007577379560764006069368996496646482777875030237515526866598999118442009418915486066107527600511413322421298241865835067820716516134979277133702518456946018679130803604308616495681161526486127065893945942401069380296942708178609222447757348281846579820373937762049154572818116927329524270047944922092830520604054947787705074346984875987470060278430040254839866811575504679591119206865507516222198042390601239108737280083922584013487904439323733320165688784697581594451979011189376160607614138036641637236503688855457925317993478106472122168428150249687122394977817386501290661955688806429484464776755836139068491023808672050346569844371098884050563292545730920497838271107370938588532094399980861289954138130503814162448335321754214245992201245343058978293562009132566213902017030393038965380521910712231175065053865627048031008698526391126865511274678323658984264226467338288645627938930230825758448045861247757455135365237817127293507283729463249365064117908722251445602896752044378252325922979947847331996175999970235925125419496665059291610082083609777341381953642745854366170005852103294351710389758918265273420519269967818213253145196688009159932367322915542671372909826186129362021483713726395965683485684411409797337275345270337094626856498793742447995321798530677473262393304986547574366368888577822314958892713163500067038729644832209695637133815699284118399381447381544967077078261420095367069873610228097451523359269442138442819511451427911614677460768062020250752328424832378709835023371693162886736295437513315958670987378973516539076451488213337073735399295009160992626247669561598845408027086778439416445713283453463633645139715017430016351215975051916311111911211929727971972670559854405054034260281585340590015043425980305058311558961058266455334835641901885258133040510313928479841798166103958570934872164291929900275328682522156138990304938920880104089074565038905471848717682241482241517675943873487451193086577914647338600568908030732473446923696910705872046606250735323210840863999792742636669631082622265847468896875976426869937313267103159042985365410745084967179727380792334330705195692338652452267839093594121993553819237581955520414387942610921247483074572828765439097812991024450954580634676106039198908728521470751226283385733548322914583235146942262664098667832002038628526317031768600074815014935747762361271335321100066008736900358108218508616046370097101685670468293129981924818374046266961086220344299202866522105840313154471745397390701156756055280044610083935175772770303672937059774690408486274038698954988135239683175084880189793700703796902231608274446880064416533806936944957664240706072079864439005218822458061432009187844173697848369591925851460720479400012516592652209963843960385858539372136985399850987754413555948059490351374766573051768606915055533288960633199676148102242931991954066437357801036960401215932605075391982458675853088028789250348231336768508640479519696804739817996084994037294071263260294615058419880373878926563885760356825103841693163017286989514359338003150317405856769163991261043903729200661079457170238377464665548111189984346808103653663534181329324126143580172201452979056304721672806122161170680029269869733763642186553564844010824450904573957664348949966228622367697402156417443054703341246471334034248116395231619877975919442017742459168436204320290817097868222279502243840819233533274825458271847525875571980870847721180377170560859963158998571447654148328644640925225499533637091116979352861188050388046887915470262581163657704063134101371232660410924765730442639436740833690496045963981296645678378570807792356722115685253522358323664893054535984301400836794191669435396002867522574008167558231265026787704333798593389425160634409967227413533755148258613847311981307590692954025649603309716266638613566519431956841669534108784315093920469538918441020258601485958755931047597866137001684453609556792781208992866335199311215902678203076397458691919800318806799488357965199074390635116735066642438087340528668656485978774820725094631316229662871419337911220669781681670562753654190239738055774985298793135769127986381544121501711467534668519427157375198149775018897745541895672335974231419156895607632975484385767521118832914932643484783478352294457017223974347380158972584689262815431633060959489222740426101718239565030065778899420294215178991712908553763500278228566264244732216037756148364387932212170366756794093890229717031043258726057361223869208947801598800531925752224998584132907305365460252823894130774088276551725762560434903981994454474665126610392809110777772764995855657882619604396313524734269573709479405405550723400295616682888812447828686580200090450894361086053727638265495327081109686828142804411064324841023398660342074925957021283574656454560389167466383431791045191514109878769558772248521763873712372516913794015127427195439471915678993465790559141255052363271938541785087258998056645235773618489649466431799721556585249909677378168364236214220791016270054278844462991821547474357126520712131302299650722936277782161017358187996552122771292781825459769470857666519839199469186857173645145307004716118611807183764196889709862849802215057942607664139271804894463856955630963801466444952331803450418630947398278532960031680511856289259414439797891873804246846681297637907525450958269426549620932244108296416703889888483181317437221482437012808503983074676895449859235773595948322651189875961107294928175490549221198296064557792143895439208216186377574302935907110416093888866914599818580407981323255690584479455569537678977703861522019012457190599761348206446849319177669866347084911041845867467170699955554631923607968603080012825762057473277375329060994708008377849726830188897011031157526605408604959133216146968052940293731259595138679053319500865375462686416153183231301359739109542019617911178510534792399201701756024376035027033036393473314597634251309821431469792064875298747443844611207833723338539588454455171565208891141471051591809992092845015210327268272147356650624480843739752607001546041529254870051276526701339357136512519046932874757762350013675868178881513466258927388563170911304863140303867822230853782915407797178160901831521148927636568955605743219296920870766280071160234044255387267869000122614566372935815460756442054428413382050000309371896436535510980381255291459102950036061602751771698615522875987381057954971080790386052257081589061804370691361178691689924130235872697159301996390355275173859946393722659331890791440687963466008513392231244223152066711547927494418566388795323705736856238100079034960053779811086772829402254155301132385721837594308944017347575842034712189650472180202007177408797696097145839062773553588851762950594250550565837783704228279295206637234233800342280759920568772004719276444130307013823755176226237913114922346969510744503730665418531339198830889652340983195308773616005238686740570013917822824913834435478632481066928545410965837136029465671651453764177253296420955148656157734684218372920485013790923691706626150834251844809708576838669682459557200999243762664533593882793454221524186451111243070121810629646535274985603113161068243177970382075617438627384463742720494519999631015247046674809969162864812980232236924717833609591105745863449097980579791063649154085562768589895739710186136800287514605217973362595531532155713307253392210804969115502670214872919180539030307300061107936224422924219167456311355532365618388102202344471843448296892015407555623484071535756349712661881957030327045806138643128106634937977718096599118062108969010199112700937247387040096322278247294441234127254470100920949155221706718630586459698785696224623691390322318154171131303825992724594359061722878754594580113949946555817065022286670005444004111657983989895331845725191796762450234328762769035137942983154369556660342819973057061983047633843032333888078452533085274746139457860915653147099040036910490740014585931441231099456934729663946026752965448554426506801597171972336635641544951983315308191702622288656967957351516298060756012347723347972077089744430285160007384790499455095219054945498055858193392887726126424168319432007609350146165267538153017152181171877595998235726090713930022724710555031920905226811061092537103346243368685619069509519175017597031910186775339098010051288906066545212566229398948282889707438958879213007487539199309323837287511574359996473169105353027589385183970346675787413733002931695789023419172377265355100354833692402824134195648071717895085385310024074880142130472725872716326465553070894140091461869504729187018804460290856154505335662862625681575463011216024399205996564446350247353374841951823349423965221524938926487463795344887614096078801483485434529837038933199543007029350970480718219235869713593975212046793059964980315067131095030669641378337991885380153566118042758127644883249899566252180123927492735102473120175744715445720450077360656566688080961890339854571961092741388180995015596314874228942792643678440776372524619335960547338726150540902231353003563100315006854105139663245624254657016373448970943884356709201940386780419679653946080010866064118826744217666584061074531456588378451431138440167357379227397538781414723289672088978694124774450310538789821816062061570906824445011707225890054763267481419981511968029309351057046536928323619233572800183859380604703953249734644352393362457713465867835985639920099784587226556886868295020523508104382206661078312086602886735479893779357596745573147522314695286170684310498430635874974243633013739209934724444790432239983193796341153906881137719682804529601147174939180640050971835520300740338628831164504932491215774877443211393081598329046050495404276733114621478307919512240256567526432807978219949637315183965513962562058861740437746883620583185744214572734304668860435248183029006692736170842607491043089961777407492414275401343044928317879089343843989265586104601164915487234491541490451537729508723001339245280692974427830463424274621889570216673805191544428698430346204850051243936121864304128266778936127697756927274716587300254186560761635739958037688311481657898113521030802403132545545800755282168572161289075207701830803981865635667505520608037551153731089183991709503538017885240544589470249536034913689591289212134977734823291569244831323969441416483003731792467762917762346632997815912837108811650011759014029151549794304980944558043795397324189471953392448087556767276306719030964845706247891365536828850441378814092416303321065921606836353524736809095247094534745271419622152212355325750940738006683115695004864105825850924637149100993325172655428929366631342746707697198660243172269309266333936806872646086694355858266581606991689450974984376566619495883757942462004586826937445501481540157327811045272764067007445403326801862519371278374395031227119582917246678058967194518047041308754617287219299334142231772448107065433994294059388353072936905842027558883726994215985733921297568248844872502530127102128267716754141148125543441057662951020099268302570207518003378528853327025055558124412127093620725494254294115853836775747122651288336220920535969759687060250463513000252805164838048232282657104554528005406720901875223642248974640653937568257277343533488685672492768887879400821988095965055180802601742405804250782136620147953440988230184449538446476095157479854857355876249428969798108319941371280636781647665039963904473214786948583882637326726830286169523351321403814448086947654634235147572699542570313663349444367557390378440934099627555394843194196449175335831486856014194942690636205896469336243935731080536659933931152115415585143829990303747164948313550499736816257172769556334692114455254404768836900466482565372783533293751151674720127043673519103007361822482690510225412560685166864541431168975642203013731653861917492534157239932091130372608554011991892109938345448004595803651386626927046251817365340065297070624683771339904626740553529485323353925556019021718972352611721305077584742439628288764648611245495862036815767261160452203709922413024299064797785496560828711844870065233020861669050664091694091160349528337878390431107092898707267358548159757091549311501603610697221050682568464245968305841426499379173758525946872034304238168088541918674367378441084084768226114151914210328703999690104158865137706719410736484031666896795400150519693907566305556199195302127407447521420988997422869232192807039775089585110333594935334121409233491717637349244627030728915386007395105475965718880892367860274806557442834962749494595368703368749825890350150386738062117200600495076343024808600071338552247140883919441300011652535955251303044601550476349512496236296864447654610584503012579833364984869166038942778256590724584258066363899762836943340441724659626697758922429965406936773290365288694150319662033746969141765106726035674527140994863097391793091387875967224548244632844722053194486565006587746504224069931292271476917509604971466330611366579799764013103871138332193578556060978039841746545813455396547326214626183407664121506215404381585937876697251514748939939437720861148483089709908960658408461629898560311724370281517617556528790736248941661020106531327770676580256186147557505490191516810118847798041881930138873665615159030431963114576659066301289844214908585106939817001845053545390961181459704655588938860409766089568133450331290218376636422013433501403043789829121253636899826486891854158034513194745637765147798740384327781074841753879093866926864075349155111142914036895353409273589811039993839946069241286633651109274491127320876273169621238521782184620578894483158638531483166782599386276918742140249470649084284207072199489989436607266192161537232155634134770951739166379403995319765114515525035380166758593596123487182797353359809396500385194242487073014416836154623835750712837130653596615867281207348089802536712830805303201154931092405258122201850860605893564393713596708823238511438019921933283500951681197325400814627765509298048907740022250344056922635164191581907404498088652980189117580876166106723385387365185294088145715905366433566121407239516612701542052608097683840905855126380056607596257374089362364131712819821304777840773427173028757931439863928046608427426504828246282825250708937675438698023347870198056358738874236597316231038796921604197416804328112623688708344386530549069200668242273216217684823853410764777621108911890922701989027673254101070468113313624422590850737471061030521031245989594792699310899474948449184279166338108788509243135828257915824359820998206177812266311723552717851804165417242616464133216998937470663614000542487699633058967849379383397887154178326409164804878322439287583523168870195426621624548107803419417960910833944196129177171503977508299172946114155034516670221530998639198329492784871564961324446701689624026434813851732773908176418958375430394658380885147865439556599523899420312386164694418928608031028367247826313589692114245877100980180863894650133489445647308257958683985663778718022549663101556729500519918691755809019649311029288021704811465248429071290868277619929200564631123376051727192777829378774070750701503868449513870454721162714458744594147502128874127513998892519257688276065061582420434503689679317723202377649720159168920256810976036366185341434773509458942293763158153945922729703617232899864373286671033294317336561048024155830509048585120195525445007786371710266299490576542932223832204813815943835622138217556841769913519135327608674469468354549401937761460298736060254240010571737318424196371846583919939354645231244289107428012580750719310990698487181955986157595751427528844993969567821781377375125478586611957524281564517559435541783884965458076114771525369154952197235268838825118007789226772030735307294591056482056384278220750534870685387844372661757535598887144140320536858674758499762957078141584110072427910849778443835842410125200917085842262296164923015529582708995984170950480136101290980931697299873734657269132190050490134104118956111204101649998692120836526570287835810779850304808637821151685132351825499923967829232693497190466595658065801818681753745707008141350235630587927650473900071570020175215178008788168150350757672573578931260449666208557335042916889732575782385551928888484196656505245046249963390325406781723120093453880560782205112405473793969835854804074234857199200191205520073461948070962337132719910789900423974796708760211425331990594100401369669645117982839117451590223173128472185725175405830861125319566953486559535419345930590327436625538749021983293037587065536368261406853402501847089367348714697710784610279698638964689094691100670173034902799720328948433925517624440652555672728570153830973159940184343667491578713480848143750630930159259872739780532913235863625508246768361892908741146746848640237602736448002591623604067602405870252295240995339236167207272605805168851168653883333463851050114969295986403716885866299580912209437081896872845624074045262319384237080858587109335688026926738531391848867003450971894480173498011674221036815451234508700894856167223023432043750746621377647517658562996091740416831231367700307077598199997821837569224595952387168157469737577273538512916697174691020284479848577633093520247569603533466526081654011040457767815972106547909267501526523747260467312249780544543551733074153835263055743190020447080047592679325219428411077363865345122464435272289057689176462195803374261025473663303544870592565030961494186877146079231177864010684209252262514883198521294458790006498521299488458199999585459595447791325026919736839770180121609553321598638463183689273914788546754508126944669450069339509840462374137905320364392155123905822362771060407270318243959348047760859014265892214775509777018747836857681012177928184237563360844471874351102089451317097903208611796593314529040812662283670196507137149941164886790471085141424022497751155935499506469652466322296947176273515581052335514804398013363097006829821313672175800314671806785925563703409941922387029690622890305380923294529125742533314546471510935999993045653182090360041708475531060931034588566382851085242342338153308000612159593174710612159390116238649513713278609095324246018392030755179102866504951587818836104358600027608807888578058601116435476155822471342858965808664297178659615718503675669001217531588384641023585909523095091488769546308803608968535940843586738179598872241648171673647002565852228286264221958773696537694960670991395622694960040205590307032892963983010347318372822108767448146577535942360255053778570593156713818693287952214410042917896203752828451475880454373172317839886096444588582085799700475196531222738289274709196261564886655147547420781235180002916025165542487300508740310346697177335164046367726067904373825077239074575468684325899756372565494084693622193834094202902399240793648179107705064360970268837030428576970473247820355816443266830146715919005864234381026332969250014708048764738989265155526449316002585017879178883512967648593639693659463455986530680531049455010090654238492463950958106271806972016840248391856537222539085870622743697882749574454912681062160845060412026234647420249932710870966078623100399276308895146126405276829020273190261600776025829250762369101759110433479927639448977865069472596302054409400102304667022644746430036940609399965057150110959912405301203542723933922850588520910181331227471538931623195710341715073338433145796612434466672176351377163586965490593715189985122123638783873765492466550000505141793431719962998616640211625847518734274277500909348603956785284179108113016299832779250502230328482111346735362779403831177871542925238792149922603232646230084647167952609688563209501893681937114192915753674516892035950413461956611158524860976702374388546977597223131156096510245728631830504241241908062158666944736838657485429842166235134688398058100445836541914909775414495562164973479620100325746053768309645941999727795178724710192965580953401370468967076369159100261111816076111507971692076943972227869532750020439909274819821771454408986388086011500969414205378824893657423794560215322791882008681696074509637494012763884986991032830691257798714648417033636427483746500370748734336095100237125824663033075798053596963133486016854488372516988390630576617024199622833700191753644537024270325314524918226479135725706825556923440719347710411166301798410548864949462889784056360024538374527231260152250879119346282602352251803700373302272062322418637485948865384105771525426055974172498048869534375297630533418624080009660425569818123575141035924965304562060996186684459314300305644598939806241817260486161994006373499418605619866957722591708066920819346675709957307626674323183689062306771208119220294634267382993887739835612876956753342441349300322145441219235238127362774474148417369750243163625448929193534944801313964382045082508654557745148908506801490096000781179264536190657727178540379211101502884346123757842649786006038697825830402709990436968952675397054377935308454976475493517742715032569168434219543640378079513874066880010782465434881681363209801673075175576058735338993292565439058368229148573613331078056063815469905740413551864245624670564773661924362400019469700701660599802364126757426910247586375528820974318731146844547413268546157465990745538245398913880702496923148772628486004557474922474986713605118993738556182864545605579300118372481608837530819177401765103060176270016456121902525104214947586267226975138429635487197339492603568672223027201798400858312060973084594744412170416355293709306482307205495959243851943806197850395913088253960502376522642493503265413097870288899404777286476302233416665294397242009815862709173176712707209731991786345545059082965623854931777432757844093166962860148078957418915962814735498967833579133041499311725902779637973308637280383152277067810363491546560319246609862822868412681701466695931332110791053965208545236958511115658860204182806846626011455874825094208749930760426462078186187626649794629262735762568820967088691382399282953509833146901559541297774501608937652751507269440290489046916415108700188060354154135176137728936677255913930597713496355470161992867524968064498889886482074142070079704257572360828498150272036221628245601587490695380044188581987666761257183060314663866841084146165650360997074921573222491701215538705711830586774288956180503054271726231295618190566954090438141529159955124156273320603354771912658005127047925343543672871323440106246838379588951291350960432324245167692750998346473472362648543948779550229845396963544125550373376433717839059187170578556456967955520823251163298453049726050107510915852006137783183973641780442419974835386705220544532541312992824534564042819270080873116994825991243313664973358829868851059654460855292872987410639955942897958275731430107729977739220558356656734302536611018335254733556287096287958292859959803306918807377820393275317188527541037772178549950915361690396850059910660386470965212108153867692356495303220642427560163593766633957736827996093547370507363460046037508206624634538285098126040044908367931998259824536674441790460747975916490134955757913027452647084273068988021883429963447606529851628346157334821803885063981065751234087797212042247853908930449370937251900822055021724672856989514449049538227472189275235506924078424325689875856889758753512953104193177952184409132518221626111491104960807135885785067184770866041785742375944328135511993477308380248571285632955452067145899123829594000934885659150075152603334635889405673228271313676863909460428851581308501602614929906348559796394981066191517479985897459156687595836993124731828777039665193554838725579443383132864167837967168794620701758652176695459518751733618805410358932756725585800601792354317380427457306765517315571516902757895564554624503127793939351042350768484413766857882364876489188528645620473649719471186104995343241143552350968417251759887827536329112954619850361263889219919532617097888470035268153207772230203763187380597949644287178821088159650109364280246686996707900355143842338679719866385146821577806530904613295554065827665460873859177360139763530181374951570410402852065431419273884651475732477024622273437144091494870626955768157471255329475982212849194816204244513263127452347774354163724775844492736987414453297049904855476944749065751104149489351252160188039318276805894160594198969173036488628395281573081505722408939388971771602883171019023978102087747650034475487974077953203359201681577460020776373117509881277924811045077202063923315649694413998845136911902716206429180870084676772402740922745499182454926298582968039285766992379730477678674625969031962055636811516444743168096076240616560367308901234099451791727781782799717254218970124768981570617206509785012875654791376049964895497013538358501128239163042682459504493225946078914601551297317941832382856748962387689795450789249691271874362232098919214560491697401138542726878911887632358135665118443887328213903958483141954332028069822073189644801698235468700738369467567981966159000626947080201357485259787890302181180707763523768196138019069152642888532846478972084979890598804309848098905294065280667531170887219623328160987546651876736642279136078886472794830595288557276191416931200577373070288003037903176034490499797895888617781323161133465455084164626660698704235368360564326340931611538325682405729977476435504244367622267559446275728039566494452987982600455051818321673855823286190459648491939673825850988530576734689493227707454174860817679769113306582939565976899222270325250484815284478504559343498320182540080092517255193042244844777237316733738831921773194872790138895560321980491163642572861464547824575551011600907196886605432853815910536496009305747876123562591605293368828469893822993640048437487017810163354870229748122387850029062156543535879936173103670667856437562493089476878473428838774616363317669602648883989785013851176979349685126729698438971674902964183934522440412717171196334789387012768548171231349935985877150947047307300458124057642885053518294156701193209282176430072096501461676516430512519613888685639179810480585729007653779016623657005594578623798460334571862396313183248819412996536458990672248882351628942368682898131664319054697420231433289415548433498300944760638294418343555184436801321323057968884007555639520489015484727546810778096907221866859597800751363497263349095450759190058270624326420842347386402243375079867437372495508447762051511948020141980803940769407804220105454254337442883035311384898798490869106191463800753148376247168949551355930130679982309807345706966448424925378349173913900118290249175274490535413971289509368927062174836696711355282062056748576869204746340072374727978203096025258596908285665189435741923346152718135669473616188724360590984250774035724791483588249361992504338783120088732133519638669449487752711839634669897451067290831751545658238149894235501590930348434875094042290258401733204877938187976131305333441654535098757921388895084601398249825508765243068424842531096332050875693629564565479587263352742862419784371509941534704354999638461912394440978027412175859493586166563618484949177995490236409323059817085437647393289184017758047187456222618662422516569124083984067984228983164876114852013072185096623930094765225447115224661714616144135609181485415718487870255431299400241285265471694165944832958092318608376189076870736850150809315522668423198031272724133331840603515947206153517758639440692381334909611176892148862005168638772569255642980651163725851788919739536344596960112604656474013542402930137119640374494848597219215903088219200688573551285097660521515552054967051063436979076201566412826152400086508549065903687711971640467483000352623546207320122336159310961777455846791666700267947997072385616705097866203217935501059939900229675860461594936037092037763699019954673021738446684199267697879421564390576338913041150595523552240834864086020745872771099261223577482354640490351466437737549260222855753896226626274125026712256214749750270264555563712165601225686364086895865324730015543155584808561178402166518261495924655549805746533207883646604095965992687702624861286241631018492481439653184254752831318055446538830009264535796758272989749726343175216019313020158487521766336151875997801333145250338780971651067607224848388732444623120101755537430066085634882190507552182203066299948827022135403072763505115483584336806346904981219910074992612339544453878040930303256819800239020704109836187661161826088320696335002924708175360919601946719824253144914736389946599609325557087151763981722381417841192717471300921344356076986292817957284072428802233540317273200967731414059982294471016048950159696432367676099485090680066958172998329519393399001441836748828530614017536776174769930910692109960148934118686780152289534892756125432442177551424036947610241075295729128687445807131325442676585079162821223242857816144034698232759074619939571272212916962016070574895691998632016979309904928405572692247395899522598445488728207164147765784444211872602802993841054032846774803693673669240891281411907776590114505220399727806346411644728890568672216696599267657642080476319233261988960761172823728578933050226426808183426573195360833615578587284432641276198420477956804196919220995107372770339370276791303466016436413031503103590577334859752817970720491686349040271412905854119474548743603209316392424152998600593472923624513135527373444865628102395277038049183906514050497743611495492599813215683742759720486676885305793554497281800873167230988476793324710174011702644330618663142106669315326316281187344342994765043630790208222290620776405903875886643947083282628490314010772903822176742717690178107822844402262271724002708204659100382269666393124197109156270678512561415145154641880928836141854380551086261723848144332815484143031377775272632946690808034860237347866355110226021818375215332519379332653154844556493271354817940164247972955051844826211537492391211054637629809111696174326506766158584033639910242733343518364321153330636564226892438749585884661177315393670895591293690884362318334587909237076387595719416008583079426046081300255628710642361968389565245008331616393479827624444039566391004280065633314120331712242629610005455753832383190370236712012439387806407629031997575248989149755747297924407402930286988504902602320309149364670167282130029583844427132674828575288049503527079914031721532455724098561113825257569738760604048089150577136838315629527788208445991379902510975906023531059977709913809382056698093775540126151911810275380094412296688628177792979884300386712409253605823621552914127616398602209085578432925019046611953276085072698454784322250130906456396506219503029610110560914314334416717353004860076011370070197200433726569641872747763790974312324478486706388407994583961454114991447058799327025568210571994076885493722337016393788950268144660823352732448812731198868250303682643815559742821110055619220416028200954304854022922698867956203518239341192997131123355011598461945235501059873533861756451213403639726904671133589862225353184960327068083510578575884193066645605473854882954186696976743068360861442280278457279428466197215687149410729123666490210388620151816320904675718732405857394728808019535124207769909839100167395200596230170515114078463837729213758292498880928384725344586019182102751371449295650608218835270923276667891143870401184704075944092641511896388263372137503310447835342497641255607352178221704092962492132241573611712560812700809306325345625493634599244535655615709955668688125259649753082746331359448190948267436228366605885743635640935537479699098561449346078028833183489022547221277861418922096756567996033982724906096140428839818045770118697852898529742149140640006190447053980814481332185215564705379772041460706609949857972428621808858318718697173569584937792413267622183876827720945129509856660675013519492740721216044795396156230431800819078346296439032258828693006503389545850952488871308059810354774741368001681094396562740834357872598346193795299569455035420074732756634488527914685209520628813452374696784766112433642177987631007500169178957515384533230677598655738109336120054794846039250069045917215548257892201621283246834853831680026877196532463357960937117716849434440139712052784885325069423462744466536656546725625046348108136471567197027470348986625721772804256792587648022274857014122251506262869145744646433599444983371607059964628607196297651592927133964955957117135307784625834483973988079368696108737174964416663222327495752982207191632874017669834094958860666483444066113293012353165688926188729354575850724849644070137288657271695151722482213957037354801668485409757669579794545424133638069493592511775128353948884011602961415447627998422271734373340534262707701251115245308975764814053736474840801225385277592438765113216787705758019600426235306136620143893575232078052188568578554380469704686117471531863104159483161586494746042576567163034710842344959518430907911915386654662510491369819749743177193045775595395795095704028517707203787980442923216958255499714672365638835874578052441982066716537903749159423824606979699124345812914960934782231799840917394509459574278678776130674655082082215687873292439968777599853003571443964244207115710461773488631200755351735407990968397672808084531720041814583582350853167625977864022758178899648618964435915824408229526676484942493916372722304623786349693548681272550431292923454332899214005085787559500969236869658043361467544749826109606219577961378757086811723606519773133787070235269964914504455991633884824608484738839490375920447736788719342424516226094936244472078609598363709009827098590337040647577483799137711036349616299639867924833663087869133002550236014658687923362327405690954642623928173278924805025110239411434161971658618766834753403843943094121284063743073289287015847631953881112142492244515170889934471821899669340208400527315445354448436510232659733498213992788350821224661764951279383547671602937152235069926569098502110879243770717231194987394475555068370321510245260096865735419380263119046938944462642262205979265953709193125638902804554282439955191391860694217881670908109530579355766821515148205268063028780793341194651966928575088862016383048470469585309486309857951851095547999858868471015834904499255046280214960383607650204359115033875636619662804278161264557893241840961912315173664010056952305339237393911643927006614404991662294425243783375163926096209309299788591422158877831558801572693035362849265377817621137139645760890118605781055475567638576402879292039015270615064395772332905696135313118834058464698258263115655287139657333267016496994308751592118474360073338050996389829913365764954944805139022373622747868925893056811824742937478216761622737439985185553913169168874542004627623210095964857118171460751630516300439255502437646778716145891488551036996442422126318599859689519927800403714429863988335177592721219729797164390579735333884994711447466458594645456944780958056513712021186769042774741547068518305090474831947632936649450001124007559712538890705830396289611299487169052816006124188168263393784554163367643634823734938243024745014838308454291248177692042678883302961537451067583945158269331700598905521228171842850802846226550788280929837867066133218071302774626032189755518973324822533236839666408259570397718469278694323602496280231585961000773169977978778816983753842812253167887439064283751751101557380863206351506088723582619407249956344423941506335737016665410751016347937342937227924245205820999379344238915896928116174959641806941914159668595577098603247693681778447528462938492981216404886242536184847719454905078423783795442142584764413362338846065046784783108862890702069773291315529592623560698245215637122740890873687537092483261897091266959397653575828450721874433622741511597062144990803248334259968217510254998940952341817744381894330279006224340368835229761425328769735557260499584199825522584157409329815702679811896034501397598640421664733861820651805211300417665261634113369112194154156663563726669126661346832316561782170686105143295996223639887500677422775393356946999029360652103306811801136850679695963310321259832001143852638852956205502455977454655485510307686685292813521592943658764517679918199050986999598079223966899844548624161163763187492671707967378542180550990418379112020874298044987935476255815297502614207279658684650953897639705714013597881285137615513520341747014337348011955457861779173509454137985326031570340610379533991403497001096570031827250925810750819269967920504718077879000519284453942959315615688760744040499768849400108878897529581972514177020483998932572395710088164224874943253568446177968653079782721242042001734725995743233257537694225235997751700897976847788129502629634668356575222594857856078993363150590152777976594503579052107703723713602260402555863118174852561701041053721487880614671474412236012741424031719446936820571428356008725435971383833855465229406341561609810597766815343908084103837827726920071844980750371006183684750768274478259426873974112785603969199882883633085824400662890745343248183802727692875696176489972982018105375726541944419530118557128095939551509300532129470266029304902587994200040248274698477199315420812910043461677374997550392349222231847104298166612775626531590602615468075304523623974298661496417775290098137963799812300177879159932947786104575090652557042615819501960942941283920408841198062662978957382723355758419506198583293802479848583870297323611080210152410771792936865809628543125732664201154500006621967761514528329481174006318496533982543370453655512819104850101908426311932302042588504308194112430618507505872874312205628285703805842869788057112068799694675068166019213601925545153246471903304788715014377404011805573041089587321459090688705335291779568620102621679708168019141746371164361165592828109768150384511897675482714668138127363852853760329136055259314919719552043490758571712598005823251131831392919543947179626801564041433222664676342825178678394810350083762217855086731896929243853076524821106710018951473886830855406623442164524380100111541888588034435425702233231211913565003227568185742333579194294805114242560204520165220846446864396814522371641869217692807575778117827433021408255659876731912921961599411112051463872233783486658997936672583573296449761719280904660813155805957592734602743169937441796869240105555159155586998236857285861242484706626998376974791453251630235468247474289036210983833148806295592243545857834772431829240566046711291330439489226043494405462688333183775254106442593398551322975920778664601384686053023353216010431825221802128769928507922604409387993245227921908170246737996093011945614615399582859816517598988191827218961071388276635511042957316278056237123082021145721443205868593032114115140520479732184117633915826711613075567691714178415220595713037518937861457877207716272622997763565956833390439131395550351716676412792075946654647414527481587392783920399813093615267608042716520603808223746891135526304409041975664845646110499751004497553818365930241171794706760184554205933049505600431055183980835961860879923088159631719047711070787315944840850530978082955579710467189257622695795585179689553051127604913795768026364797653774074419952049211992572905351863651628345825940906283510507179309613905300902223528537346649875908242893060338005484197319835784293566865818138870277754983887781971697909572168220317214434380824292280895788919180084232226242422399762600012269594238371170936446554557773797482983816228535903097843102194294518737340804674191863355835034847953650473810669113718011734013778705250371511021366025430572997623191080711935777936203918278771102175021433671730469764889679337139055142338270365214614389514054430966037251602675526832539766236908117959249034042726069110383584328982632272215855530170365219742035045564977634029977620285661180764313922874909964937531485407703237899906086522249909633008995222692232403232737304850718297178728140390391136127186779198260291082064026248418108212241163010959534691917211719528596449966680229343873405223909173106533409826762559124952095261502223963011671707876435562884181344386629776161963318797268448250992033751692999632022752289909635373744619166794348443195259228357437591516968036652153819586175078474514335744212987250081284441924374431948865991691251103353528803269919223103008000888646521247173868396721338797051673638404305944405885507623225131910825254876583094445502130848940007686177569030607284251908575993641484258026613515104696728464667325810913681579179373789360583682860348017482404117703337460247293636043035135818848232640649831393672295178942478164063644250093311357859367704755304851182530582418032165643914966442812570365386479348174583186394412348405039890412616051536228740074600714386806078626966832755211525088510913415055137932537922405079084312480138243676759046605560520120626752178605020900479385320888274221193938838971758597562491336431092939277002914231004593730175467738809117260294395783658185438817724442879145231821361086488925471628324193131888012751995009314570069580774925840141079995552124398619007244494907830244898200726929104005218456477236563487066724405391501287885030740813197676471216667296200331335471503598056696365817485053564356952764867503218984782239901640889570733776611210580428054893675456664120993050167379117250774403177941165464963843285649622924874798099074889162970073232206604387881398476792070581949888212073912854685783567532068589890542791406232513090825441221010239533121266327270093062612171226704652654899568016225101250904817820629491855598012309453393868957327507588642314035740052782181649226499334175566756990082741489265415646294930761417264525345392869133806631557566419836878076071577501496109053325848102564767900283174519414629821737660597030709820166371150129878166285406642318036407565195900705076053445852370649558598068994109665227780917274058132426863822736585751399337919282475006895375983059728803680314208687021181671087293783016505554196754515890976920422237449776271631171376595929464468965540459183566915062071482011204249414343152960007806306428021008838681464472963660466518344813473171963294534976775769170446267784696821314402597684997390718969276250243605783168156919358005743255821998939193961900972266354719465401033104763752954999631564089732117992374679324933409479383677079985267307762118431410926317687463547305439196512171512939278350489345136945468876722666396727365447584586323548280853687392651141066966158165252844420694132139279784501317203903490924731066536232657221596203831830710246596189391588018352531756706981444572842084736934535957557970923921148448315675410767528148589385104416802394203970142680229373074120823325582593926597283678218149443883497704227060700115546668145454053520071596097141775801097910400768089926184385281909500327352932917160823185819999463238786101150012688045550226529744782290697931730373353294463005662457566431188219363919308375573220443997415981753393043065443019632757248509968142083704124655172957090169758433919710037946101732314509041504396816880605472713148409357530414843577709935613056012663489161325589906319202801039243171094274472599214919118980500987915982916568409716604714907626258233145935695665685921458209488847271912610614325501700270842299814510473740675093241899399792348515429211394431812712295635897726450505753531872385467517012761515252792484062514836530628189808855172332033258498915008859372279299414943103538862360171209042444481150452515617246417423414978187681236497655680899460190603440138133997907402674738299671351435460935891633553939691712281367291636398931418285008583719903492545884913094059876546805691116793519812498747381839379529586113674901785629648506939124462794253957195701450497809586345417811051322364885338184433024522053651467086031689632243825793755844338669356469200800326467732264423451939725536363177114702594728390173832862976544328616249726680996525205255410079931926891726921681092086378630739832952359154925970075580241455128754362820231162292469309801089627163741739453125238028985246562036326989779984560272518034873195831796765644791296286089368389499878461389921851567688412668978044968992798700483714656408962794886889632338859049107489697419758046943260089000850369458179392887342206523031223360070956301323803953418334847285295995134884769993546707542404940319269870291717200580695312341319728598061670827589052256934713476914549390076396948116377222066307036674300228263963379575075603118267155703292684767063249959929295956363371469694524198121560033835943350729758872656571764794574080663645990458332559979867677303930699799086730835980399863501653730639892755078763604095640596718311514533929366240657234072330536681312871680870329042661769641545465696234499629385044761699285702546662986835530744815189913788734002860881051080486365738391796088691854132534432923124406114269247071126389147574901318231435489933014998465701204496659526874131706938022011134424964423224185292567216120534124435863933727639613534732504437343362204159822221831828114516356801158263053625065267406579940387415476371371225715734091399643110894757270938750487377730836070576968564984333606679193802436398705842975775121998558352657932998932460318806147017878000729778442861085501954553167099801920656084260561952392706195997954375688527288600626445701202673382135080318608377146588072753103022881819714366201271401893430564305216989354070992279830300622631560744633802481826821760516908884376597925663331851644189432628643465398341661935973226774822863695026419870408607745978537153829719279396482719771530263943894460022468213164268999515212093688205864712444004443807349912700505964870913137524712526745724324893898466340488546707476117937699801304834115855532405338607137575814628257626321240452531467678194094046554072745301252487263430986661932972338347117143362429227709077839627722498548588389889126380477945251695623749167562528705764609899505082355320858913566079821350808064913064481177165723362523298586961954445609449918879057084077904543849889668137395497017355632639934663887771825401498403960773920445933011185817239738823370457794049541125930104512212245560317718283563015484139787085237077908791336292725112577648004960262255713331947539665527124210427042295362873744395363599230964658851303333820052833419216889862478549649579966012031980384525537677519968738853759353882477710849477291209266710544722895239316773043697094527505831582172511094720226361918774632260578341323842437844125930710496303686411602496342603709980459093076815052363118280432342367196450370541257299078827568261170922528735419643225233008501284744459186762467430567139472358398875522024170260767125564558891507984110027931499435067075333593759532409115847305499077302189076528399192335310554370794457950229253586655015122388776404107939759341510730920954117909786594405143255406616781586725582105151563688878828725874163610453407139270889002376349378241876098014461065669165107899372576479874991533111134676607675692244584665044785990653686707532658677949564519536059537594512874642741817400772530136357369890994676909431147773913407821819043579844506956814248337893550419473371064278093837919329865404966991517397059913050902793852677548969446488810488168668533583922705705542940517039939331301901763791440119062503597378206072526752139411217496858433762113597222232531028542103604650762619953488369188766151822422463849974155821491925059883193475625176088743353866945967808833353649640502493123984147378237374260588006524702729622125170967851965096142060773605424187368924887068165449435201001971294054940808731007920303805861650843868252987027323114417996123917579817774656761397144324082936537415328567315138802340694100053462735671368560414634707343694085676967191130431374573366496341357510852937744140525340757949857686312954354268000708719206173539612257110783645248494876396387043299792865708253012054372367223505290738300220886848043613431319904660961549924592479742482219956065440586248441290123483010561505674487554097994552283030176821372953533521630136567956970157264587480310088429602553232159449916974184812671166742709200994777469389709242652311074694218417792106931432294900922421848344296599649738845624513047149828009105207244851292109849294591620390434840517482596668522915047100769201260248215693067952978980691092868058045542025569326469477250391348961291540081440135856519590625653993610841828516996075044155632772024516521157947543091399032538486981520029748594366487902339684971340135192752701121478340169576970204426988266619077256194633798388419060005739983408865838299520045240637356129258887819745310734851438558036307201292022586239826491376758350390549567637713941906335376850724653535042669919559799995112798145308950348699615829719959154239122500305991565089695880118628208524983549225257169592020825052103690024105640611235263169275431623555419816754394871179939435805758557748759159342403423347571526610276415665279556381714948190375191500800833165471880405575732320442647457341625355578492917580941601745314819687617523707251042206135417901764003907759222296885175584135501860034046402447762059863668795203312373502084752841443664931328982710885695187438880218120803080895142522920536785441236133616679975813516183603572495644994575796883452692242284155061687002463215717334993806921753229088303224716855610769592832357357905004584384496540684420311091765433913627994590440301173683867705277709317127661639638375829239622043191872690475808250671707243769450023948845862514777423220751365853972810767868615670192094497585456081710994487511888599336275253529134282414977265788023226139344004972332088571770681641463844845396810145453427485556067545234086745136820858909420259832841039905912841980063561236824852974787704967280880993146202992925012956741533705694988370522048311294422864350745950324064504197078440320214665735946293990051948793009909819838334908160843174278926744236971555695679831978279019300201702031423676129627376212274052393397275794733931518442138322800915484374540759336791200695157634485112080126122899052352519903947083858220840343842182809888511480443174841982210312525562795766026160292729282833737091851881054650153444084035995486524156659057876977901053746047712461528539753117213301046652169645944971132499645537224099227797433246019498564954139224904857032514078078275306795818985226050699756553748547282157538742572288375593157496139810026540331782583114709271997981567012371121529431727089079428781254137619950217861474034692136858461816270909581849443811391972144969946069183139423624056052703241859081495329380839192490369149938949786861172022213771898032232475736558494046242441457059134546627216628816688512503023023246749705948292897470136677475844846693814815400602069697162459603916280084082747037736462596957898369893799198744983858917841079922802587392286078495686414326475266936449656954470361402934193889002871831038738447298903866776126666051389801914239820746510564090423049110367565093313920936697634858189754103402830572367669393941852470807390805048507200918533697056349139989350779616107632617367230252798514499682806838657949948147290782684418678477733029619407384996771471452021023255758584401166190480891787284870349677220376348094350013213854330112068074512872058204076604236126174338055212866872285897617998394466318411553896477344580908229810343704224028214914083560458472396965784695808205052347853474230621923521084656777505016646161285914908263567853457892186562245219658240007860986248645706321170867907966092922246225615765114398601793189841223941692136262560538751502399305935469848548755294582557415727752952133958705873068786002359455980568835476030039072498066404030387590084802564022583173260017441421547571975125976670685149666580877218012529578641416449906611943694816796044531615867388799503995442585408281002820916857733558760718620428117790901156355863509632243349448038407629441198396048157278870874984715823155262232790013855552959551233111842914319236874024524300739044992017600662045856643116920697403394504751221093690058424897204457663274814875284515533642112189185233608083582018373333807209978833866181217818710407441869377496462946755276292395714647013174631549421652178240330168460721751857785607607885540569162579061655031330039525517657349157373968532997164509877555383920493118234902014714665897820419360894914743042317289466834333192441425086388158963897546653595359699206299125749374648632700962833618810768695779490590894677369954005068281269345265981995848248880012435977315333118761877824559026036206561533962874650934971630686015711438190886348310679034906488005077521698428429601955685083553794466361568341347822333031375375647966153785706083792477952433604612962813367353074784172162327322595463499557604807675825829266474988643221083675988933482448173623629769971726857417260025094930188810495116684525581660519923279176414062874991871402498782406719125747577493614393346269549056034539456896194026956836252790391575355024228551712825658299873014387501239223491412677151921018659108364170206018928654836731380170909372207721696362509399818856379021897207602013994490739298673787029229073353586791519474221991908820284687940995729941639188158776055430505253143703538505354468195741287487541388249244244722008960211339202865920214507402818550288384332985064579641828780849613365957225502322521742241665237627965441510017958468046224019439214630671259678260235789472919900604392931163954496742422702983693526111517424894902991080086689074553712856557537704167811154001921815323512683270276662622437604865236859030854947519118154854584248337071008211357936809490989349127716737277165062882014147309265890623206226503680040522319717202558656612629675319960295449415790762922476334864961853373769746625486181498161051726801768266387844300665918492551042513684583276923336852541187862092209213944693034368796516576167136885655408591420281886277014789870191166151430858048534717195694004747477436490893612645199620306297807746688045857868791064238478218548400095803580896566346506528446256558478398739949349871541459703578868103844106256356644065869838378825987671781928191323667813220509904798449917891973556890180899743571188211577552759648211275326085666385023563336636195223347280505504335730782537197852234875730322917781089784954004204442335463840468040480248235587732546894543540204844778158040716658413140700323723806026045218966371762969111455825841685021306154828888807654617829381310018224919207119433791145627423518881850982763931566047397069265545945737561730620195937567310969594085669035257556674770702913064425287525161542668479665571071791702526878231421242598465549115409475303401659772966599200135589760430356988481037671699311387231889960431896190071550867044473258636784651359744480031776427539991998069719333079386572667025820585542936384932844475493039736263154785236647151243215193867299257425514547937729004831840769690910377533086043070811119019140223066524408325959799948374463811604627042076843767785812494690180449361807665015244549147752832217887691998413474828247412703183006189323963314991420735401998206528321107449118986456721753428605199920704669564583166365892997323359438585168152504162930302361160904161363031366720499004584519269214754941193919639828975312669077624858324324022370140834188528181928510917218906322052123540626320766272400327890356208124786049853583854349694356527562072413891641523604195421179194314353295460034839992877437974061190355171692040167409092060512468569953548031480169056352052446236634075493968254366807624712307866566721365961038913600978539535634776467272280650757809876075011798658336303996518737801924142041501191548232344095227463966717632509088471865035069347487200906339641596998074077861945336016217225819118788599015641223032429894810674328494871257002167443123831863040755227204156137133416989875684525186861588316368808071896077695648193274022363767436365492178249805162488938483460980939713051185232303041944772682726131119394847909845109694364981598184586098445675302797182925732979389228473638699347430343328389541577918381001650396707984022722098253948875530866772563064037382059554841313515503960145875985829848045451387076039830043345495797748946473793482405851054976960017373125453381223591739232689958430950776029419163248487867404566536841767962339433634766657476121571144204838857110091594152841065083403999883292881234000527794303146033020141263867752265560996975359576032599433035510383891934646556424503446086644783205535409489996801961447193580678732996900059901177761375722526538297140427025371092753774446674170554496741652694874234103384541427879429368462746891242552168140838282897593587957935926507568570428363494639840344421585582681759692985288398373093530678552066224586508121468677206674507207224621411539261815815179335994918622239690750988686657645870814891288874501404475609792926613615152185043781867854809773697995628695710015993188389449156381398147519926892937200627891454649910608102905155569780778260560760128751928618450716750404734532383008626405301482657527881843836437392225793286071667614368348599635285898715049477368010487125772753756542536671512077669831076140911105240194329365036216455892869971523025635732122356735827474496907486600244136886866641882251182414867342768661845503286193782860231432213420042650594311875186837442263216776855754689726958762540536782140801075073951355269549445222699273382258142312690374705372966845968804914570076912324878179045675440412676803263379805221775446883145517188027859631103710813054031363492248275098232914806055637268726828549163213993908853447303719044277292687460346384315617388994387150500814617934978005035365791794953959000141191244757040030803274147889553603998578843096872168621193249955826390530721210001576915718888019216849787093069173796715121498473655081411548781607704326343799808038815042516035983082264690819434445241178268098898995476197353267749772827581798755794088285421820025404783433675408120938796806851268551739468995919137708325256695082974278517975802602764209858986545125667292397283796945647607254391228651243307850976857587082704604667116938927369836893813653361676036445925117488668750807021972597504004973085342674262917144049644240841883989682649723572016997273142680858561029397792530300993066001573876616667067178213781994587276933916063146848579603883859889891767177063363406059896216071034813234700051943299940971212576507934094230193450675064211416965444731061662794776917590134028665095166806675290853347209207361497122146538171051089969735845059294246867468389342885637276088055529944905377105559624704810175516075929871253917047107385290762841541135406626040553753789950654683924581790109335038858836420602269269616582292820127521403823585917749605302837158510868441380176891668516306771092923858525779656330305498078055591073191892326771923560581066800495348873384006047230725400780176618962310152025127879361544893280524740683720341879207224121533650178243180567698569270587298568547559752115833674230652922985635947739008447952011357741783001895714682254275576549117853657866992382818916349961788815402619834277068589918870681355241627516873901375070076792995825623825655104191206379190818935739114261152836423323848377684942789866946715459274395287928807077187921550288764506325503094021429069887849759408832648487649404398084599543044825726391793092317911268826136023484424801469759190973253139265649293855580803240097212674054895733504883451702011682418887715266851648892564998969077281158961997221144123225494290046428948362500424033601095018208378533335473818699476140055531876982326521268391047907888764060990221155885096600367813150258054670229249675091633943055861565437665002709002568495382972030989557070740784588254864592351701492830079256091860161559665622354573102779127926687776847768541408438819888495363818070254526993980607866038961369264474704120159009947077732988489714389617464189032869880326904330636193289609771522747763253293898354300175385231300584435299375803096311361240279276014705465353251355817114781897917705765407904578910462714500202883234016344287537515728557537836190729586014165218700915144036350769309361641670781420385929256981084430986354404132793946269730207291545544741856328011448151082997471064608597813153932348762256759711539318547507150011333836669884005208196578912716798648296259218559936954258268487997022832454888067386176823149680243734703977650347483188608031707323883428859516197421250089011687168015145253049886224179079984352265545570081671415155067386298350602690563586055964514180903909542196147270654335285391358779946402085922463700041381313843323643047147944226661856208767926144237531333496198556203556304959226451875453013995798519498802569586471179720305752531535889431697411339450450888031801205347375781181678411785925234766487212228278876963418361427553182717835582350935452266684084114668335314372843752823088478000006625086120532942158956113693653217907485333493242649706435077304454285104172395738996876088474157332645699349361460787652202479148472157355121178149912807118921890391817475080932350480213014126852525360262574220399060055199027197409462546849499341134062707875713916708681864274292423852920272608191493376898189067994845474144033807904002338854905312205104890332766291222147251587305056240959519085754945513350893584246660143385514476001362410234380601195926415213737233918497741608363480582259693999340204125353491645435378327484638383370438724815214845030572642405990408262235129927534071911371691872575550933356152636579287337975110909467908802269861544034609297892147971352100738455103450128241307667459639205249837020957529099076446067152659684439005545371535465381611546862019747960158734887737926583293875538354193641401304698834072666196129242370624709950414818160041240085242784147591419769593325788391519699530814839252390608679315671383790504058817683442426211170655258026147978068060877983248289914418419651239787898633150365935616421855464164896910387416116914375099885915827268291715666451679659215651175496764328953751689786222309593915552350544425762451178772018963380151859218418442368368505021696964626858251516376776009984844363413086613441045765462940106610392529417972182066903717158809630309951155909671876553679431630694038544920190416620891699090353147113709351533229997680570120322230622391360087768256814678806925711928744481077703660959273176096234020752749624152547278978952668104160033923150923002622584883326001006371093142022140310449817871113526829139443878587504816319720965329805319371543947682355175935992548588566284052792552673019532575705047640969434507232173500750401314452029057139360927162741926339295309136068295768078536813565936388588847778083119890677534140441674984210866747417384185610203198241651864325406161057331789172019394395686394833300316667428364868524159095578179432411031708795529143201627554223693934760530000777976114429666789189167467593001053222774776147377574152452199497511932687347231468862711155788502221549864005244692714888608857951461994439024248524705711794627097496245775224288658217073996120038230775354873676826221611531147699338638362245898003080201850561434335173718336313828223185914106081421409180763070228696331272978976545111227663860103383237233629794304151639327871193525864735384821277400907225236706820517037310965379659761059648746980299592665438861164815934779794402150490218236112107784908577475252248238170275711075749792140577641371793458588252194745010394931095230059616930173799694467818143939088674618058346938028846146289773507383496500690574473528992664398396357775232406162613820337612266448104371999745584806982023456111987140132855740958663267460792248603517099607023702967112300932197488336194930423276071658266461792186170430732798595988405678677190905990283070991104318908833819066166089235936963931109195815974848924966283587817266934059931186705387771619997403448729691594098969605607658573742703113051242388006908133131295420171242621244180180055492303500164888340577332115567053428018371600263522833510234411837680001342049308911055108581295360261347698738417319007422478555861254687179660933149105633703429256112289299143085134956133101107034556121207561499410104712368551175964553943164626055425545568643827026345193517176053699751171075040032635516976907002086713849528764279933519186925305694677202484418876476052093074856738096523814807910049098513249958799567206842367182919694371452181301318490751707320109305410796246298506420819088027950784680092169668984581950499648862874918750111234606288753573535421502666252086945290482770785143666929459580115558090571808278605756512122507418987721787888834447182027242890656766670468622974153833553678349824965515697418542390473199188936489963813308203034961643313372047392711372155997253264438861892724345396645204179130442985482318383528613460232237085053221625855426706939243221185526179314732710403499166787280124723538130370537823066972313065090076610256999690451645375735889125652113314944147469606891625346761274346977710099773831792342551804084137638760361632097708465936363780535187873970145962088054494390333653735880960616804543003535788276662247371760786961038122060811452806355886102905932538354646697656335106943714357780691910350158430671053059798908734170025350768524093836739649154905855365867135511434586277263186566350677612120801164662579402727589416934217893341583812033074656946517383128086395413686870234150373633412026616579814881504729071952564309332576665809686627531045162018162432990192497006083563384604635468521602045821317663131203106696179002137707511272498481701743095177255736379525880058183782712802380685840091658535436278526684161638990827034615741141784936465984503544985295020178755145714259911993717045075678697173459463315815429347004857945422830276184676554617873720178141876276186853722905290387469827945156175076736102566779939921125607259527194309292587577836702509458245245351482962170792182013199178423352202392435828796730478134603637553966397214461554096930209055942317496576892632327569756612415707677432068537790212970027987985044126689822292285490921265367684284352352140677141379194309073746104468580094666073712753388069450120961513418853101520441070637386688872205926882550531282636258737176579929801606795226896697977145173409436499423811057189164871075081505774629932438258818630681324241930230456786050538803995959285204368259244924840034163690815711347161280268505142140195864982969658877659933234118592526207167838071869391678570431069324371917907598655151776534365156568289104723750880448594743582800389723310501060809847126279965682336742387023459380461597501130556546858401281002821527096582132021654481770709618075151583545544463468243558718778719519039870872663014447415111692799530607254967135353173188733286602526106548521873474323650076510669683624688668524479184225712158387335810507720154071129254980498700271294705848750571562080858241666034295513201980365817116798512585372391170250543186777149278146871619551676378013540179354985731224265067154169486311999122574808616125895326040745801658256491996522101528924105643741324520504482844172806751808375248449313728545803756670338517693738959958989814529281892038919367214291716352498367661328261933549298385503730836469351917535681924768490177839248820683038265894267405162145043216492934623638989991898342107908082182590854946278764482467021411740996411562357108369389094327975968503058808921943434481040722943680229493662919310394251355878537775009960876835942651508246769945285788655913156506849087573339856557454081042985510933542290946961035403996442915639088719277463824408781025301276941843294265823050618068557857283645296308354077948225214373441516623825249396360710891119179580823638845446277563380784919536938378922490061507823548311729445215980694329231441643220471380479215041982875927411551449096306521749369313832611180789811029785271213107212974361402931269008519625174740814581133148652326120593122765466949756172726121749194164151451480045607456136351128721745306851688560849714089568984243791781687882372520642034921197615280043197660586447525565098768036214399842865508170904034555902505403818136955743356930229736011207674614234383647162328614424905507576971693218630817056221795443064235924848308542518146234807111581439225593710914772941050338522434722497523665959850173424342469745792769756472152658794564446793866141867521290142636234945919054901650126008210297617881339699120390210579914221514804495746197198162206099189007315159236140655545844677104996060142102408468230950966056423293837498104645169196399176631362580933676681963199619231835174794552070698225785834983556707243624589269636693878861087124602378677674055669696275472175917667382127630215210527673445560127775454693326890924883034996956201882968524331079639041636714154173704258772415283869119491991128490038020396147980742755146847445951281669847079937414355269666240081948782223731781790745508080491131137653751279930082593453080905093035391058256078064288299318381795916727701040081260836982561591006347473270832502393581703060847376333843924953384732590203288506461977258197871444145840090141548998212581450762807983478129107372342291408684567728490581398456031492897081342780646194025801087056107767621475296353290140703123885454430970047226401418895423368787929884485865988975560264648186450793255350664750110672144850180270328151274942335537665636109772168495235351654836389274823306147503327153116136699087026127807083775584541844256459491113246671579050150714385388949469369189507071573569854731374361043066291260323788299739331147666187705527997908877932393652662313290588531388972287577877680740272547383337309062313325903437008095309957913011976389982215454333269937763070143243744484601185890516040782229807672366745344330135000389328422662158531955929114203395983969426244374924083499268413183936145778654991559275327984642217737511464684356618321790372516815116429097753233072828165952349913488403400391078215520593082565276853693613373432610826521919489030125763813449654470047721728629487163032192587032978025928444913738190425282155215228824084890587143535686108309669279795813319112237315850696920639660338141837775126979292843652564918802858693952250821885787478106173813873827149410774496223144499783577436513914860766004095228407214857549792593821041373971999357222303692919853041442204877924123223283396280371938179938081269140806492008943440563015880543564998572310554085291049110240923265015917421523655502149941571516410766251870483616541618930653100939864802481789726190806137411993322805988540675233579606691254864687793364018661784433199923292084496056076508628515957663351932210332647301286915451532501048386762657029813993715436186828901011440657199418726513595840151725343300601822564366766997305789582366788065817086905051763676930376398605352518141891753493866107213908384930274728259780835843952240575837667977887966125178107957992841293401858725093776494312380817557887856163613339300868361516372748345930597049547758729660610926672812722849192638939886403471977978156851255171938300012774874676135102941979994505335102281665166930698785524543613600319744540375273477954361718858198870556658350666763017452728392547338710243360562666248982813918175012331269410699534622646881084920601157509575504490772090396417870558940979459867142616826974914372109798865130858428594077556054212554223467972430949138517067142479475055108327364847854677019925392200744562671748310567972626325277667933932937999407890185226182914455917543643580505242366612764814579323941028833778177294703252106346988028851464170074351377951678301423720647751406855507376271406707981484105143717410607548585872466781422358980107770202870151085730588992895702526270758585321458385305230831253587150213423692533096696455431441638046109853293300133837257253159121385776848926023167603145443061055471807883252060657839890160846239117500100249321937271405760984507187001477329152386211347985690394317256806054494822309620509369178827300127438003381193001426358266949504545873444460837454298698967940906024700519097099737814245277543475121814233401533439080175566741485558029646022291687620258922282063001103951214628218444104603023020405631369599712988175348477562612030164840516907005425035529720562868191585196002532092648785424982503412613046949609813516420219205591405596169163287822829100435224161575704980302998258734758859346796822240843187667611960937639047149156785841152923601940326351040068148651194026833439896843341408755762546982935753769064315062256432121164741357358866274600436729391282963368658915833058553398437148130291525932587640960073384164610736279874482415946794077221740673330223482296184480440949734129491133298045253199972674513620211200905527092119236947410817741766869733934322689573798394813889272544009301746600898009248209927446131257681480865467872828231321232676430521127090374167738675781641378945114586373428907668912545029816894335456486751961561153599110588485324144975374544075109406202029801843767953473371481634446897659421017134589627363271722226491348393330407542006630436159196290164188208820142572736326187303710646519702002238769550341699842649175859542060862797608693121470752530679166619272491565038771749257538345466528239803373524372640010726178780969209000612612028710546424164902092127543505224347123026968685261041184484233592823447676831892714632557289437237647739058746382481200516615554620980227867149531332208242801293552610833153696411167156098347555682695148043848536441096261171294809737822445751285982474952702545771933358266022487297151400708796156839316962198796761044842884310654125175478741053471837364902242939047761880794544674067804631532775423432905873009744990988784340744309866704742046968033020022971439393873278329006495546517565761040996511647309208819316573805364536039207703820602044383382580999971348968433173459919702088414980339399035620653686474966069699012519868297189501619905502775423080872551221098426346313167937248234891610407026195743545005063803949577675823107572132654430737535320145378164979883254795426502977886380436893583261329713639291837207672321482718913729628421329464421457678021278219918686397390329802584654068399082978145750858916749719545326014858227898970263395137227402579828726174257572924511403238152086686214285223758648004710984907478505483241326028501972884322296186904253025050552569487147612147248682151710313356746811834116663294541558909206427607154965218124631511553413518579103529211306212061656689748711451404401926031058321988466333412302529158905145587771952854091227397502731028455964256657602927603053988724389969035645916050858843405852214510623201443598820324026078751927001079372665144675947935119028536833658428272611607370653217643050735513820151798284152453915764780577278392948661184370861675738587413903343490199978808657961946165292324311829646010512827554073103665236659017128861752378093416659276929053191498023688359445174064075305038862576320138253543553204291025814912455790956505959755333828458620337227850564092724057357008991886226605345901614351571753493928126939346754509081404187599291494338817890001667463229822132744833504370935994546118349706612092791540789100046501348746921171991584031881734782458006006992898208655494793197977264851261948573187952724561284950176204347079579890400937907091667796179117401548016375980751130666665676735150480045395591129417120966676347683785567858249602664715604045577751639214802859286070157082513510124558472257811293383349379009571885179422759278513364180400737225680343321815575766804405374355478110777583563864473291741930752890569325196696005773081214428868323864459857638891491801482779359989360553816582937030503909978990623943038269622141414798185582751493370992327029927771382974444291308471477044592494847502546477031214398391759574441996808101370717083332456062057108903495907857212372932060405676786891069805019460291228099858217785582356548887145549026177466360343971827709424077515705087098775477691650166851790451660114400455461272899682396667295974469855434238300102048288335986413149796417384236675909877278026419018666057708407849985562015343732108179257034554630369534056739605317682057197705990627893944986402881056201588893494316063988247920982192294182902305584894280593560256138694067317800400828971253599912341833228794790351612347795546970839609860505806481482983568882432613834566014105838950098467053267931033631247188150808682960854695978251790462542340337736721470978467463008693577159274346306164682627967047837852105613993450203795418378143502930465983482849377510094090828427863746214325800215293254854565144261728364083232912909242547540019570247891773275942072084313264283318591384848914743810890881010159487400918624015209448049991736786421492476155328316834457027653415875770304503246590026895457577389445984406259985556178177827912450076843253482276237200091809854311724244489748687952386809013877890820869107969812588967861943905632059032811737132109132327794663826203968986129716431010621089509107038958534506177295289014953409226561861934808362477485663942356718129542867204545828269599291182891952233304132324394751840280068303967026519480511575540500873301623881138460268704023600677934084544385584858276831149025230266674592793749912171233067108131220881518446133063141145257306257564281241201229346380286101981267677026296004805559493160131880352384195268542377496200922065482218323878861114047770472349245652473784659670312345017441365657158386424420815938793029512740045693593532243422242306076673230603207285670750553376570192132965467333575736423334330076360687969168066812474391793094816887421752413783618953598759366596258876109413914679276678337873852553182450233210903290868811785380526553366827362977228007597632914707671234626288490254726188591541117738702439763449363653015116379713932908246606607769455563315937091958666561970101778728883578584249173089213812625062213966556002862064861818936186776113266553626749998394670679212004511555913124145982788258638260836152391636063601016454224792697690534873509138022750756094210576801594688195224618585082317260045508762376016757995584499147494219836877753634398491223829427045134331180232780946915087679777596585680325856399349461827706462445656837418005990001945740675617141315498663376103559320062441804371328622647151368813135180124821071477779352530703080597370399266040063327002549471034447264166696960448502927293090027384429321201370833674059668245136278271640295977389264886400127351489890379137577989513145112520255874778086583704237619641051936283254363533790269494227529156259169620937561529562657024552122091017449471859742691715519995122360022482413710066678332007619263453053353531844689794741754741747549074497462788728755779749999808519021540982728417310845007346996661194095985511505824330351006724816750679203310810683293565609555456757152143714738711014963084351840996223414518055569078122500598915130169199242882776528652499601279878307469062834255875463019807854130858399711196406726957893631112386359089414427300371108732962610577547421421375637440941074622424725884309017713294000808032935762779837114085825475405376352961910132350932480872168656591057982826156946687165459640049994311398345426851544109828493084363338017426304207525850326114555090636455282046354262335256974641207890065265382997099788706874235650890669539406737978275238771314910738716445763244207708382790768570759030696547368617813502494154241326477220375271206880890045585488445787052207896231792393886347357664084743867461332124059306664527444069015980538881373354632818181133951589323888256376519438743858242810784434909867481830649845492070345578527537835204448734709509556949975767139401595779256281582950509953287622750367638760858139753307848891061757835955755461944065265007498495544300453789753789777783345725529610630461855407914218470108194913025619191984996680996464355141328400320169143398316341162708422672176658445980848209001342074214280211239087392843387655179830352830928304820861643566341018658023592340199484710013915327287405639705135825574284613772107116851335180295538716403868525902026986010172393189984104909233941420769940283784005923133356649930002604649602294767235856131874702038976026659452883903876187662729191368043538262820132672184694424456736432300870415740052795718708886531340193315148152667999346088523203375200134611362872446774370855746034257391181758420881618637856866217484362869172032897961173757715336592598887156977965487072584823363705448393248058479722675397559642903078887814358298784238890518556716500426653790902441864194503015444485659652466915702367391755179008782030324468905780871796592877171004155606891306223693643892920133428983914514072620520855124671298673141512170803572958546622106886807695939624317619639125631468161649980053601591258964588142453131029891754946237835516978266807234061381024534278715599611718753829498967268649296486533024768452052904273356197014636126416809383834273221174297816659815641710199881923666707430594553616641428701035451736162526336097150299941593626843026878447752954691502021092307277173115999979790158236839875848239012207962730766687538668148345026500082763150248771758239873619325474359086632146764769970200289700973556305347446580527014900466360596624909023759381152309477707983320061109122734523187959260915704829929976571447950155319890449017856663676602971591670556609945177337958874463496266338782254306530325444132346987990836608952885745264251668288252858378064786311473344676205959126134146273596657388150559566718518095785320289687754116768788638878394225810766502967092564738429688804188982141229757838772132116877807287822069093898958511312512141951150274568496011086751822886901438545215639083670720879458405388354442378220620214166108626550078441476465205232870200568637361851178878807563775421896236743493572246415048516818885591502096956697681725352152235784471002254102450954652347228089161627464959320149745433948846898918468767196149184867464712292817990973789946200516949222815245426785209291066967054963626362615707519104451752252121572827760098048306190445750393320403479933032854904730727406664412315879423169834751712274176661220955585534016578639445345011532100881593709322921746680619710753075723794810723877080561718780478981057559679369045697176857832643587683066984276601638380775836494029071730336418209741539101524779495630598880620889969420367007785064777720357339726775172645107950963778151178995095088653077163640253668784723938804913736576051646331228881414402594830376616993029125366631443165656168262280052714086828487948910320321494807547917718711870902510098349973465373755918638781646393513234538841599484126259032935560580993890734581095367577566616109817765133254125637608484383941156222555337435736475949269152379974179915526845848606230319135448900802356739874224190005147749692806118862507351490247768708640000540860928404636815638424159773290200660662951523260291224151392082155057638432609854715172001372982331328138923296125037586932587457223266551193758473343055868374577448158068011309522767287110443917967930726911065709299174723711246391559448654728820154221857213830170025298788381512236693371760992196295603725245734791459299646281009783659802630151134730712036224342642561212711708239624064636013391810350434878133188927405580231960748853236955735389508064298613600802169301065804263806246830943850600587570465188327937279050271657884665729507876639660801625452751143801615679634228871548363471452275765530090880825756139145300345458167883799220583631959255905808425688558371371115116199932900779443757249846986691780908244514534579975275898846064551008240514428805246140314269249269403257235040066589035765733939843326476122739200399327756173655556412867888739726328354920801719511326854404968321206156932066179077315378737341105460361720295057040611396907043020186604740819435380888314581024767136096747465435370425890960111359802130339581417988666892035865145150102882728168226246876209904912368142824091195700912165875005871710108625192207908193224727971279233115728290840433555569732798391456121244451480566743964712593838883428414067684329655148325632950666985660474628526763367898855103417130189010404368900502554341774472969304150189778310873995390566076245763606570151693198034686106834922405616400780742384938080620044222118915258143224404736143393424254347543976200885278669967711737274443238599900126162456488930995147670405280067722841917661277658986609980177067334708220546672204344934789526747627194948714085483990318859395769086877919669343388498549349098528138798747551504814953463858980587416350150895769852335113119781276377208173238262054216494547927705605301509394321500114673707407947737163729115158996119076270523580610279006810784538307963593701656021801479634278944520197182980107957912920568805005662972222548001117649733660718697133503654082952102507937189001182916359196726093042394593676608990632126409073129274122014177423203367598677735984389467174134827184861441793563373027707837576110596982193134870795302061430907976472775418383800299475641799481413558296899493690248583542520612825318636797420424302333628508293623479617917483822788101971541095763765142190124738525820868443374335515659139921085879470692667420583508995181693963761877457165961608343290691541774847792255738628442418060715870421642970376866672879344380975997875717361392556230224543877383628975760178397820073339042223757012347263641013974759275488911232713185333745788306178332018950011750750340978317913056069063265274785054974714728498118701279482035154978906526248464977466566510710072485129688228198641838625820699566547825948488808087812927225340963363392579138335225492374194092598860432874114188520609412434221730993150270005811863728325739546589899815773253533998930119615202736716477348249683681841003916208650963022277627317574029723290912300983959374928752501599543836617061552314480450942874108012659121402028018352908569589972753032560669700872807674444100307434875129737068992268724296721899609261633667874981289959138640274023471759610916516130312094393805631603637158400067535546697026083265785570528692053637441807324288724538341700921900429610580308034596440148051249065168468067666097050524992771574283381980289145424471700308167210519326051326725053083532816350781215222586124667018452889015509038454835280574815096857548442577402176039662269641068436927786465138446753460338823331208558307146207711324840395450489653507287167508163728574541443203605969385005656996589081820183431159193163641521144978513099085449790116536003997411568349418090564288331868655465343697318907665405215412528713463449399156526884569108690459278772264984712154940030458950187148707167997466182716937913043251803431541778235436714561409260462365695171079166967779751968678499771301019647577922016665398707534388438788121076077132033749420209048928807369583046719916770081416203345265201286591002966953961278263521619184446163534565407726300894939103585587268310013388763786418734366269184143613887499354934546533792678115610135164824532255299779003544778417049153809487040020813904408556259136255616014160519773171167793655437822200870959283255538799053507698755236012192485295214991128785419891391026704555242225418102614851881209968804746354197516624420840826169225346446737658664887486282164748828456213836578775158228316199290106044911438216127391486725626363493665741498179024548029715522122059218166212506237653716256158443942287600480685381562039980724852097669402612344890045260027691286035751640215610722450006467169421703563094571642750588029809997953230624937499750041384729403470772930405052793868018226090047634972592300097457078124824500434180963712980077040017651519571349244942533043763436664671428943690646852623613840552184849470891421285509989522628332632529453294489860505902610738729582972848217748612407206184415131405837518485378491693443776767775930858409692927905861709904102929113405925249832713615517897589516774058333957173541813738094059046480468126840867004255333593159027235501499262977560665657126318092277871344969661457609481907614949527140701886138557391249701305667848394400313118974390674525907117686024783397386969957461151523573516042155022590068014328034024444737692416174262749405215099083383393018860306176090236109850023615427341217050691303328844108410383948511859342320337244443991653415794929634234273773407044882357566210020584362353174990531851573055829670746224592559638882967989080726705512301368451428378610178201273910621295447651039356984276072568587659973945613010391257166001027252591511717873298048128497836897246840821793935810539500388715449831551846712999480042731280152656547866681981134149244332917467867910376350130113580897508631802245193308287412981988027525365320454933194535119475943000433116776356461792595102460586453017942957587250593465870153014330212380849160872613685502697416279215367739006128759234619003791141098963348753257536501240012760446668454602709110944734161281283655444091806772428906025490233846840735311988343961856036890242218577293672602454509624864741708025176489636931641702842751395797493447488236009311876012104529258751066589986354951945742274385290595679657448842502132954558750811153771154678357007414535724265135476455727748068038523578581458582479187997586955960792087520577634144270488808314213616546720946965187204073041242329388032441176509897804502900642783216800638565757262742314213697300209657105595631401473848616190882058787951674066204542752527534279630288981183982869641172437442147426142109515516750267955351492010949468873052966681582396208926731481281834938688427954222236333797486297877062013519809751023813698002353197808839770032608332168352118862975899880439611110744610163459551007403105502477051871432812604222248426399732258536113011272721972691668321375770629078762750789912604152882616732207142465063179782572497499737270620621487145845169189446781148449302501561176964647965188751728632634538064565308013747133134784977420213589701965518459340737125884512233639915763886964094687772075397029548191148307370039392740734278889900632844463448976520640273164468061515803686895069266480399885208809164837495196773923617770447521106648660747591510947055097622454448684520631618129168620504689153971065895429618975683305986356446128011883902355770715841376213751512507484597816284573499916982825840628685437910172924150446724452894051915997968478726933552108504804485542564745287065454293123567951154614178775900773562543564983431465856149889579891312752493199049522464679712235783522188280107315449368382677244186076939384625305358911577937022619128150353341601896672112850803999520555077867362919504197121885369610794087981417513654954197961785997573653647393287504944810699073817177086858849514585755542970914787893206351945784582671360458818461292239477249511330354529793026908866088764879033931414814089029957009924531933080905773498918779521826846627442509003034389951128473836875081958236084955154577862811984113619867886852547577653630847753744421518799194563920758150418907638565823855025701145266796279708169525359192188068889556951370986148282830733412673049039358767801742832366521451656743129097684997553041514663636990653491348988924236564704508834491758207475725013967543753065663788358551312737086750187949695888430580384287368653242591616937533311794385671171211769702653387037443182461248150785151900038682207199418398229780246613606223376106822685765812628463626604922345515510224071077456180311761329862487886600281855440813662852509200888967382779652803105673139936474098133671694978300879499257535523842068193989712201956791340355139349849161293304566695887202702298479364355618300807441784919053358006732354129360856768274474891522346215811409810511018140885187949251103121806278120905557522273419304560642098024730614010267287072663732923118062749418457450832965305254628855437124457477913223495917193797983795240002113966705841649506982500537205909440089214431559701379746774896445349822060188692158167292519763666624703072328545670923825399449025022022579822879365037011673573088113844117425721045743089301904511841574300092321449232575844559335701032618662622970391971697058201369681218926603919934622873327264743980826804246592729112109736890401780300505982233298420018906087841391278595484351060063172547583777465188811937448025216982423330082219408074119653069515117273050743701590720673368130029300508021523933080117980785502254081374776365395419600561590312748953033735961301364013865961865369140857674081668871656256811226454861997353877836778580804689978030520773718939051627974114633596562771117747733425040963934809004864852204877033894615113234705710014336137551025200352909397615151732377407201711112208335078478010805475153883929126052432389545277138364941404576132204890046434451159315147280279570063469052039847456853562783771890291510423793214764758557855587641503131129950845838485510253818960222994414005605304768853567550228879010716787852025467599533158246945156344479384247647066300388075625497340342949477510872460266922670028108102963828126616509554436807903182737636419821254407002754115806756753127628009638714059202400201244357154134182433938848828934503378653612441638943915278890791403122243864071006332993040789028974848381307518205406598400893429777368501012153892701811176177071433512778342437366936883016683508938919966211554202848909375805095471564070224051621755492410123688882378803653354185513428595461195462524664073768814097291288179950346512172103464717291320296708107770605592260219828647814877393623138327433656953084993918629460005128151733299762814117665141345697116549183304552079202566552972878690440988336477629471128519893149771564802583203168870617092657651180272198310565390122330289324012663405686099636159535761899339162743419901048092078299194026589783439904994461582089314164969130887223134722208945004574354606062929756154535087930679050858080719409924619193814518393548660982900845717601613114069859828321228481056716322170000556608940082987876958147912392513245180875311046078553648874210288163970903067442464299921700156406908609592708328682966572035463162805399204410739114500817188258952844449527389035239550984169443701712378377216822889629976513582682186191583462697967325817311805062807034356385863605240747000600799471806495087776858350562454773528447682656832205322637862062729743461778364637537560316867111473342768320362558791256512267898586273740070417180692689640019203158980891294171252605012046340201661461006357993826283037383941611493252482555468566821328321248287482250746888506640398942062304861166566796290906319754182199248720027127978656428919555042604482353485278018102707004143898935826775901525890217952306507430721781226425464880693934027612703541798121210903730119297033858560538109506768251590836598626482444939234768172615030380169276839073722907792690920493308974502840996640098376258696893821146557278756434288494118132079177113413504544434086388697661969704553537847055734640404107753841943690081768797303468386677043865061490806864944685085293905047021372082819475925297943486258680031487080808181226440141883988473793595768967063321226040901752687942083871965739817987512512161278516569528881729866118993997741467367672092047156705485158705948377684201238352246374180813372908924128820871114695014828290918620689374878373361220523216760211790851073650223134527421883242969913924544797592405012405409939723349458639530424989446708045731561796355712687537348183814239169945306890211580003590401627744191487219357007429378744111366124483776119848699487253525435781461632421316382125509083632405797403495161369141935563575714139574600671854284568986588398087051375166221890916927320023535219738773016037321674167607618835575021579877364059358859600797137451931041321048851225059192416927067433090061256052235855428904685482919226412032774239227672803193251058958507282442334300238097288815905410967638135840196808056787455678021902722150763269450406991084597423205542904997402647356629824804971862873391338180766473776674057651435739820335655047029196440322879969266361785729752188146833975036932414489727721979211842271777163837679860971670370747984220745901839563882606776484186070147620655679088289564572181479733021988231046335664169859725905623989030406785753526480203975912204610079702181725635708614814544244151993461833137703012005348032436196926692780499555678090512019715062151820091109339480512986797259293219404985910945156604246194776755290119912847266466370191502104017202876538845852604970152480997350856022582852944640111482814004645228981588166335811471807909782735177784479782464751038424243763656341172759348633636256475408510982090039317607003393987932438837272361774980191429846908397395385750961328839625537537035628613348638285151253928239285940373884806472771503855447076831467816966383487076807956895914665232885915250544016975384175356381563170704758660950568084285603682417387518751839050413174756219022163737926056396690769357782392290716664018384490005287085954988009982197318639815111583588385170706946099722312360434801632621517909445380674908640808193135266300800349567515892179687913111182027511501124476713861173547235795658441198894786559580989216504135003098216356350189559186267801559750861873025154754347035026527619189880981133955239406691547042150036992490784139043353753573376391960370446381221382945714046145719777323998863914187448087027927125027650243720579782326298846991957045342210369839511611296656336585242310597901228945942279203629593837167394287499964761750623307444567023938245070419555699696465967995603947719272485266321025891458332566339229105048271071917982337883672605985274807858496040954822784593090411755876576750820261508171361821739914196552720626188521869289583314282731988017805861566155949468621926864147850558007017741261672012000146969268450565249999512123350642592177779070313726959417217086958511180898368318318311036925924559847122620572353158472559832433338905886630661420281558081597801131680772337398705737876827230307231789124423292384029914950885140994890917438885653869242738970542245376147269771603437796851582004730647594732911514425826047141774315803992230285680164726630834736892638198009000576469784127735219681502028995123432290084027205199296334047620854821384172658160260100874336003729789728952871957756978296378394696771968361543506880324055813386737424826324855548816508063201964520281557618568360917036593047145652926158426590933208181036429731859630605704361461266874804743371329121432426504297837742346554830186006549643920549971595168859694493026974154978276895803915838989935449585316030889582502065805736365588046844360828527676552793723476420520248395969658069189747763025803401390292993224510573975198599385687819856866675717361823913277374657090960621000672103080215116145317874988155404851214644118801226644972765677695559897428489741100017314871158476316169977766625561493214356156209245336447614505979942933148754015625902152380324891185942664627694385315980388125752775575169558345163888712020209246883442381392389305822454460488830900143385216315675553080620251029393981905805033487793887053849771401709719326331127550291025985986105829349805969375485435248106681821785481842683833673581944893106308532135673902942559354625443912086726900129568747369757154798851017349998597504154530374078762857285205876053434940748476923395186742660541018936996881965982240594857981131464097369028308057302069528337048946778911942320527547170499627434617768127020803634728053179771877096374847681714682528481822684123401444094539657692638127058696770849837884667501933253971314219496893039501171674909790776791687030093681477644600074922697991953173334855595193425889792413687443146752448711306420253537176460325724293202207793398566335467214473888916872040388253830258882045530929868077918624938749593943288681112094278472750041875038105168818617533824384916453051604987349998013063484834588474280498719860157082387764244229236210793970986993343789399888685920577239818433733756916039449883068043975124426348024061882560681276339976413105749235124344476484347536301909687283977393775149461033698178458322528962559803353232753545987465297582371127487687694934047601324602059678705581897839518908318078965851393801649855685118845143898547331605489941426867306224566504547797594640193193640458976218613477632555499896309593308846191608133800568631105160655919433292928941560757237515776990502636439155099640667536691937761684159803353842587311091786663224993045463154686476366235961094865559390555764625310823142273104139576089515527909027943509466799192296844644005003997298950334295874376174994827811533375189215164429504596941098562891348378612147983946382274872536973260421944132884697702173696823632166863692145480679600619964818512240038778516589049612749780518555600797580267507828857230033012705755845717097640824329490521284114028189912241961629846105490835918201481545252354102090663368774715718853226939320014086404431127845903198459544705576026735982881986544834129472899369498424995588118026479073301256399514249961247799924711525050299467155451775716432544457696552811932165019277423284927895928724631347174065792448854525408933739010879527381459215903923113381583139539957444536706872109001587712180408683421623517255048460993738309019450265721723313551536393815504884473908355439823972023851892457096749560557950945158979951101044234840911230688785969934853750664933340791816932965919119049632235034358416344231592137459735413831044964265053375783300726919965075968033165784513290882135839880381433352661667415774832901696896804157574016875345003741588677209555457161782078860162778403747160347295997061529114265711660808166548776076840038757735397975068975643335789666930631385564390458409473727738627360255794256445442245457438792291756595216398441389209954566992446231575366951438391105230756638408204630362326582722019593141673061181334674287662739555597346822585107562751064174390058533460355398763169280048268783215612772935729454936197065755998862140516844912827760314320857952376435192079835220842368377308033730990505682684823295176205944421003520853868445738517028765860645455001449322139203291609600329539948820756065026495539954259130549393379068729912876525192223566074984084238112385976631237461574597874593596755764288382439715295364873415186430472657705114506041004655307393932220604274796386373531307043548669532742995323357252565053384644302616042913788699407015261991106351540380677851549613764979343869054697492262300465653906607213277601514843549283588672396508806414478088623982702063085783399174191323486505286450734221636646075845691795754827445762888492240218864315906066001153056119599706104147825278220245029041243777616674967885588315744204640692399741665154190541797619743595164819101548875319292752936766796662587398802392777798255601403261125973701416850967918035447027256514572683304896143127972965888361116507087750875845943896668775292418248537352028231835743427104557022664756624127851391966070037755209005690259157446347817894499179546191837856740451053668722922868906893072003669573624315678444680348878747910059773884476224849741303178365665477178171850059572780750911337491167660826018273184077072663164176489708778416957620945021132313307595320721211537346729433928795051639520740723199539689927346122939972274484287704881099603030652516472670847485635030673359858624173007631137775471775278986933210416857605696924796459261223008115650178671585499428240608999596629289189762332540429762579660108873106888208866768698584767604409850581058724792798676463995316329909011990818379882719510211920667222272801317780048506341308404567469106593249348415096771206290866241175149650008703879704618848810319032258674543226829690820554823603688419983280185247560222741334198720457341449753031536566822921396112089242579405657086814118116278060376079272854342778194987825917023142864800747309162690749254512572962544196330801475352952196285473759517269359013991810204478065768901851883382695313541934872551717652263472303242660126762291972194304520306597077532704615561235277736536539115484781619229546952513458830881357911069458294622957846022186957948282754876685654616828963664061965415992094483761241390521802375117706018054233975719432389069046291638885305643793459705461120670989938467263004435702747790338286144547045958483194100362999919714759650416647601910763399828978568399914566136080991760475362686402642730252274022072113038841233394981457436549690557442882999736131471883670807169743618199422535600692756685584134502436620395770042144918867366100936118888335627420045579357784862788740154051675449671315805905356107981509921217939110255736463422727929057190502141699041720069191006147153176897126332444528196741180217823786671129517087230904456801640337391511622078250866075972609028705987827355120548242535177995341109902377998135068492648948958648226629504067150942893962682986170371812666019170218614071254381986758770700161873159436803828985431109957139981830385253834886531563435052202909716688164771770885676976449871567700338629759525873487616903841417655212547136385067532554418415156815296989823478607825433328072113574754354505972436025325158467044392397922890403259058035286918337830685651867368177983375312619929747334130406199541794985279597097075499458375268933316861876673988567303613803956995812914326259011803055091957193026251276294106850318548006529960948806321805794157845337885637852361148076064840599992501514048367789214015947104668494791693062676852531392301143074414060021401323232115445347458817594316055937221103090249024217755914718893598236064469281305198293607039814594357835816253371893786548249584851753181757892239327346370538783513655526083273003363206137405517044309171281881923864905551694424806968160788062828723561699485980875386657545152515600298251500773727934086611892508768870351396390000768746264994071113153793378867464452621712650612659516151832074703726551686219986641788973245629275672599946299745958018286715738203831344512270886083134851507190544039729887190492856765650665940666077050389474738220541475469674364637354252492430103755435032573506389783871209577633963707837245956915289471599065223887731196221250974060874093115724048389597169277523441235583367204917829913213155397825138329684547439913802839693858643786290832006066859816892004063714945545465239643048808016966295261782253596310496973014754380640411272624959567592624904744780808188277529106020821639530510203333512352488629455609351912451843824979539398294931399036798621630407871050782958193055243299892452840457144624608668046062158996094339973576340619184542744395808509380078017195919600787770710923823866312125118734431577056237712035370065533805877645744392712599296595699356062303206345681261776570325062399659855794330041335641417292783028827552672790811796897963342616272245984997095795737969368164305789269091680350134706004100810141833098379015483180705221510936532144801269213979270613968813056106397031093069982381112072218050578379372213880267481331938260162179822177752565569987996168470332556803880348075251781785605202816590724240436621478446842952008017361445103391495956353736340990919921154019850629458011264148399446241554066845128318223795361225384555476427538471200286365737854065635192547667262899965447672921842911267152261806648365017658321611111345128822706750925683959314900393108392183021215206635541108360502365119183812748274594246318683286947338440020340279302986303994879218749750420601215707779481426285264920795750051147122864071124218408367134570591711192260907483645374726629000931240670077547655569453809045509694869580054581625367163826187903029007508257873309820214927936119236039567516681120566240400068144768388948628628117223721002856837122811920936477276941912738933606427931746446992756860894172477409013052600297446435185767308643260254955134610599404296439241873672690599401048645343343405396599700466460533678439477826777402249899919673710340876535468509601702985633835275821360534777446170407234934271074120226114357871870671721282556683365556216120466583676122268128170896719816839602186562098994283509108350177083144711663388444860818887593567468550524242794306646603952157601924876525756821018348890833812832711789218837304808045782867009975265400215840644064424254002179979829767580588396892184688251155835754148182597735374662280837829375802701822482606526558963314027176930760572347720180062878233816824798296839153711427167574179000750452041244846231478819357818868353149387973680415558179245502904786869017083088643843160079037402064419925411592100597739236140663919609871685668951717336384336961682087046880525809680240113525788474638091760939640542632024268378133807809090814235865226518527167143170767932040164585259745281030666989280279756423520344384445295527467049535841318681478698948726503007809022362063133582547185312789289423003217585240778557507689357514229486998831685070040493296919897008055890273507450451471000885527467571789131552828505358993092812499901254162919133717905389873164708081529743940316274634536272669244856992870146022191871628307987035085554894209076462482220044134334068140498508614027327449760861382938013934262523815577395233165453197479615335242870290258574438408164397705276634628711011593790235973831863185231718427376443071956497671828841258631967586430694419652972146220613424665611090589437349700648711651867403023218905336313389167480541320324956049573248587390136285833817391517135847264316956226892023306248245730020568482849996401849476241595385276908890600357998340695217199024226483799037402533705100428653655044529697115121015276591478227502229734195733649613286110422894509875407518827554364639605495955318312579396913684115709240269224372039672229057181759839204108096601984022066309611114695676729512377211483793195469633636709075384722126829421050537562575169228947922459117706690683748564871659117202404524577136244635187137410455479656755349052519581770997070559558218687311753845552485880604016201766260240379705560700943329666359637227122761087894564823987396318673501261784927331606921966081389959933299050483870213344966030947477620784269421645879750142255048079372147088578384880717481166743304725418058450492200107940351499205945376945143790225053456806904418046028998715178461009448224015104139562055095061926564969841871445280890444451070226973093947236094714063525600136181782706327355348032920987378394619408638648873437402562120975933121170833229945867923157023009480301503537074440560204406341209989223185643775609547450771082376119317930559943228595733252217101275181866978167998339688788045115757181308246482834266539569623146266445517077186123467760983431428601197526105352538066423702522978541080876313370496177603515661918999094892160103468555106839839378869960292674980607059146397332705503327478609744552665843901810670876593870485465357700288742353435726448792749309416622083818269738085286768821956018418895552430875543573053518154211857976874729501201820298078147635830476045500239417201589405594126375191106107130497221242290808150573992282127521638687640788400381645261277630842721713172185135911839967412224777375781120339650989772567544330927814624776569578102622937833536552077503387431825459892150486890575929052599308307478352751576108160167303361879537015363615227572033935955310436355365741007569444983806116943028774301544577812079175002100395504061540587527020055505267452864312565192588653922243662526757599970871942122928036220806973984725880295863430363371969692712193917071101421405916769799264200725197021775069505459995360877519959075538403843773141138642947263306008002400582596423731010141653409368715274886292080781868090006324383530737384006362173123492354924220723715718769501154374967716463989427488435835080127350230102213863327739579776949614278351578629393393182541024213237593009763560686727159813537034543395425962803992688325844096368175775901258199085332517110573531679161765858814570265792794681605239571286850627865459944054573355646995960269616376935467064214961898314440144475293235189265800398105005568148589840943946073434197503790093492154478570577178344152799867496040719178645423013141222714349344050104812601762024195302981551604394397400411033782095753288093842873009881840736562790571561416430242674314166779672630963924735666897988341199706816464246294028059268534473600681392068883291946766922116521524970850232532540187876667064608791947052281957876158490697226652421269655858846475158533735364159663425947436833778707727420658973698705495349563967212821264491323695661871686353296785051946416692969019309010176950143260663067461191322734860882822558190751978497702904645328600764076387518266270137195618492539539704276176624403988162965115341150537088833690929393585929943913898126571797472709765593211401008012970601881974235781014593687308543315326453150402963428557283180295753770841717513163754734195820842721085040436364737580313488500960165824064370042103801361018738836747758598205797771079252191005154975102267145374599343058300706474038834182793865780442640965659519970318873259060165669342262997047133941332199313574540533758441541859107979764311826990280333454648257699989600225546700329790517221961697349362120991940379228426307171216794987032615318977501440911812303886851652397962594727766605513558122376200871112739999708118859124583385815445730648481470430976224895027213760882874264070504297765005679166686977060096895729636563277018529035398316048994592197118479223829435878089568801732186601880834372738533998212715005570761511248815919906586188287704025675442950583424512447316084718082714731937842075712217121690789382790099011038853456640926585728756820487695234203539352331916701069412333189493820032731852408112264607461017507460828843586973127912224126652357720097262511410124192752764521157222762870680588635830148650853417836745196689597123262146720068531524142123928994062230623704920108471711373972712756748147289081445333717799236002173143354752629228286786645980788920605256407581624014239387265330234974314182365651029700047148612385572038774242526043885269281748823982727146059860566144278721980431246256034082652350044842338068059900376014870195374758477728674350250341755510132428286347754910206133484260990853224627388421560322562682538281634136622548142096262329594217201397302348244388205703164629016941511048427043162004782724678146257024719083334970627665970505930097768800874815755932091578494299705820533409791847719826060530619797695362669754670246093698698163780595010801912643717621135717828859501698246746696910848248154841412875956813926821810272132918635992566867958990432667694411083616061480378416731060593640472349873758238095427265607482140962010329990771795098853869570302041528434994337414041017282137432877592681582675923163957160643913679691695096384118436402067886732744160229616285513301370835896172032764871797256015219307037981946011406350704977002635383459348223668764598030474542011372938157161613577071057407935916673262406244834191919289891097474233561440074354588942473885507538355401979761982565214334567136283849402493791228245706065440491939771741486264243068656926397180201380384516776516812608138097818962739031024594020391506389669016577963270276897906869236248608613976591878306754989801031944790927574969285631559798901853088081601956367502663222502271836342701405701931372230010286829605874054968174733424589506094851967444434854311349406338889056157870619045776319180198279570584074105727059233740900721932496481370952530259407265028636068458365604777621992496922607972553013150504383458469448080675963209578673989942248932432340025638853254454628436454625683644601310424828242980698993631143047569095273478717831589885309397396469741789535815006917263961826068446936067849630183996490436412079265250156353490954516491228066175627547789161433727082624501007261149810643737115848006796496175636592152123679967803798087201556713323964443948805157497936475491268933382487000797757803637310440194695174112138220207518844440948926092746690239156753808302816601943287519869865163626422178148872037109609977928981737014754840586293007968073123670102726716216021237581439887242427726612528032469426963683371736601371538318497858616870098859121995550485299485721313741295427002191125550532128370472911528037864547873333417698420662376456344263785725509225380443882126462961900598724228848718538305018941715672904274381360617247517865405765021904717598240828186494007771887278274734513270624653872949088923329295696081383964174699103380707854971035653051717004913690798915542390194762806140388355474781868138422962178759756839083167539767410131898690557168583287954883912679271997907832738809842680500117001081219273922512963197576483039048669860904695105088148871525914043457958076203349086439254181354978995485400266093396294508401441347113958457645139691492246980811631171948557052907719675902664471015083977233974888563457234187994383687993143596347072047282065035901923742015821235875874330598929972472157469562228491447819435366402690174683908325644305309882564970212356431551497078300725410400137279418347997245707707820620135740893224719803479623809053909228238665463840299522980272912608794217729888947073259187387545065818643074453375224149748490372345510384660994272805717123963019102092876049605443797488077607317981147847471009133998824020868776083577690484532096222915111322370266110022643616056750488526046334712079380078801354589118067316724248240230018864541223594456587909107484001274495613382377057002762002881649868357438209718628512574209703230633107305732245022771333446414707631334911128693444684805136151112018867625809046824480516875276014384105828761203942014660086815700845515899459528312465463315356459695793585967156258693407282700805996068631099028379166202094901204464438704565472731853683063775567098172135018188632730808833037788468232214244892876184464052590669766029555193408344474377985228793593546006154965907069469067134971245344437794558319361088298308077474824632854584893864297139867319041971760999989765431477041903933525189885740945040365426907379518293743548661671775051604778324214859013087354309550766539347991989083374913392860338755489207051039938444841818845707518541276528298824160786742402988907408416677476414777563729381074967110904351079383969555694418913873054988571978250498348775441054876419822206183933481906818784568414672494635061409862297374597602148192924749634004322590921397818308961714335590506206866232845205135215323486363887859323219446725576462077816337372864131180848502799044861964613091983043108482196389078513030275264261827475438733305805590667292596299357973743815843425006452922698280087268246851244343981543297654257267453616769961856847255917457877245195442840616280480234026287302421134212281633122497359002895220502633904015894696395923619798542056432283730586279686773473269664762065632491785324870429065798344449008869136770051819715799049293527321628723634223537641951771420427003556301824684684711321789177925661571021624210358052583449548493416177829636273088624149861196883748884374558325539938989822619332927464163091036220251972389173391664740356946916387480741720736331720194811941187270440852194192079407011484575675790980434279127603295484585766583013564376126402195023604475110825827546587970876237364689194385525482345138550257722772935883789937692707249936519020909070781166027956007772663552923276327802442554200607828910176984749407025015531589559602934798678033111063572720116924446049463810599661708721227716330069912506420757654895349523430292819474774888916975395391397130261273220531445998751402649901755982665021549620656909588354702734979972608333442079393164421616042086277004524380165410866727028444638852127849881729734179769606445646716167240359160022839657661257584271369740651741475493865045514682506340376134275484932845401964475133984062051819767966080244827570576941729729944453341486432781689925712929794514581322074297590773189134382254378387946819892945684808313557896336906501422387676037241718375839945807099882998924025673333166558018000274357255608184457457668601834411555034639862001021909362971349565229359590243446418272638352530408025050419893379471124152512044301587074018314298850223721617136730922262862540127120645227608834551247896257075863629987635359498185578240805060172784834459412648959635764287859832037456707606822334498410226321414383892058064066588627425915798061088146537164325744515902301386145132720112404966939813732723493079798607027576971442783509180820897762033870941210645263391549219681360205734804201448273257437735465206639694252026390134163244883259533909404905313721273578225374327391673196850100446201527384538566859086675472017671863733239139727808579633520786785279744693294431821398396770518336349207658745958159434098627106302101336056113941454212434370144194961846791716633821776613632001690394771389409783426704078447890658038480053647717828551631461898034236331710720702627807175013817224121993088738384846959718912505949123488408142280799532327291468957643644908175196078231768848353341837056122559236970080416693814033518866384482187346455659447370131546727664729191194046497029967876982527554020878374074793908417745902623680008717294133366666201184259965887677406120258045852511761115643173870529316120416848595072104661659167561773514263369688796200573037358052662003641558463829989397300670041042274264901086782097100907802259452944981336715147193743661794324836745896711698146196175012725873641483311409594308809740279616362612529745350648740503278144709806949370642071761772220745927908210285464731492471417059349699801916091145017788431480610678729873257123395214535151370448969916762594813370066279669309235086584518170987854218434287478625471968819502005549734066073779391334823294157470547997347641803607909421959437287163293137074031135022535101873428830619497708222468107934829583535973887343846576002835074529688962699044191160554996898209389960952571902962570166842223101362981776290582436538249873825901655368248907396266984935520301934028215179167628671949836492912755617270046979069635156054602093215923333253669367352823168924864133405636213790722552215331845209829408927785323354971769668862825526507895844010412498834504015056474623895560337965424379567653564221079508151642361131690014196027172248329920486065122068011760707328723476791560206064093827799036357258241551380851515186943549101759547316861659913840447923401198892909596724767902357496268761604173120357006025684814312314679802255086901062199388958053200789147900895006707475579722996083087778832862079423675779027754338915517784553773386746037932667504299338661637631914118927416760517842344088261553010589418927093079027797539282199603745868802799429373650907569482128334071675016931593712696868582136645418300697749491314452931490735273373591460211626051817463125294269224513184515502094142270092640346612820103702176146519231770942977900990809569294269827919701522311181468553179577190077606657800477081530518066671740189990674658444703894883826164207743792937003626878057984021316045939235905545306716333669354014048616012037752031247921652475917202609192358025235536744361983518686211177752772032630957992545939340712295950868004552527003828096735484228129333495892406929612207669015238999773451139693620006519434342431446572958181980889746713659870614231377167458806680261716715971853962675789284963175572696347395987020311942518061986649971429974619332012528286617162443841095873615776240204279522107293478911278029140192537183719408436405691032686142248629540290131954792923885749028182388174645094479640647430089167576328602856431293022529319310896733971443667269136189304024786959751365618662797765656892909027658763765856979911222851459116638436487019729974390037194316961560011916012787119320069027857802239047864041792822823817345822816819918210616819264932849936924001989052187535787953341033495393977512024391306563655364448390821920153113114447675893306416720774429242628525764103228773480251740805401165886005652723746490733381490222301137634429517529930459864779600607452162154045827550224627807769442054249047366076805883055049172974300998367330596778976238571753545961885559466507583135035379751498655283577641318507016872449309112513316270106107323398363209090227396374338053068246272470758148500764108049604886406802377358707505482096498222189392030031496114351025113290952468895382012675623927817524333417064317132635351806558379897611738681311814743006761694737955316212766828405168633593395196667034645608835633483382237953588620710126805657887263331298929284619516471049332933970135019882082266896007136163863749066939479218917178184626037407939310435887142751656365988053716216742547005768778023786098405356297144202446781315373303650474120584016191793029644886351044939458853018136411451270359584085107113229774356316818209130300747260140688775492272114881602660551601475173181653749184437719555162521259516616433320925430758100237465245588245238548284299456004834835675462336411775720890764367368670826391590937215431871668230820023090538831683622014759152147736422819582159836332463911333432994780938573777210959187790260269398510714640005495838732387450394557230393856787540827061646654048856646518832869393344815437446069570470527991013468257366069013824039960234281694392161197537067107240658821613057743623729518877495952403207756008206675229843503551601620950048006698332301283822691476052533098610559649674214785791239598020874182866807969168190993425778791955616343665683664831686509367470434058356573347928122776358690600247643356185103818608819555146302609512187763798823327239446480155781393853387665260137712369601581851578634710363252516428369962638693647639144854090413867164221786103946841722435055996726844245289102346052538967288665270120861827758828618420020997572613101991824272681641711531399153603915321517167670928361775472768408624847580920902402518401847572328578611948507040473174630560013634352195895236081578031180147566673713581583351906499853962876504240426666334750025089868146619422111121451493971482774786846332489132062987924797632459897124670196462595043329934913285418056174788972280085912183603274981571186050500457816224579087086085369322222589900295903194805883449775248678062890766179442694750881772919977245280179459628480773574622159626011400825281482458943615782851808725190561745363681088162730240100644829071572363677195450397499593136248582643908363798126904887841239584217952238269670919440216672287302583078802744773365679451017936333781466732616680071194584797243062547717696265790479091078765288236299784308803091873508981815766383796566767518951168943934886487291395996968268247265397881467019259838007008826115418465876532008769074902182112927603404962623791310191579773758031988431139708342002892596228830636210002583271312844311106356585453872053840128171016753584521371935577249718226356516206685463273436657010690965205264284640448232074824721704544120848370633409489499330020519444317431142829695613692444388130207607637771117476646310132445073537732963135093288473003573691914533907502519670008109927481853642230007370667204836580380421297766120875970436003726728439079808562515924026140038287528809532295898553082392984095673748018521284705307174659961304560119250922106620790529055125202215940247428566523625855468439255936801614236397663114925734943498002334356985672715886930985141780976316162031247037281740659581320852692118242431438468075773293764965309436623069858064750036869262602455728475644533062240548938868692180848828482914918028406004824009870827040671134742415254420363537980321493686409354687356952076878987199320108998319061069268468218857800620654522572597714494229799886836164565013276730686826723194029841949909940820319955350579907398592051663332031271772368116516402977149132044266144239026734365791131098367242460123469502519455689686336544365485719946168424998478321132554577250468845393877108810153229202514806857317663221713779929766378980288488005444576064869591885706860986550145834386489133771014378333073372158956246470750092096686439715038925835937603045584404345627898183490964908716866906179975733103943803458374432469234904408628305846560985366248234556934675084167863025483379279889072919212919544300014478673657656263188216184969117079389303608887613698839571836050869061413771060569571948107375997630473918062315232784849957672472751151873060683641506861681384490579400526988423312775044609686821234344418440853873362538112977325356304157547387585774229462934349809141676449379457876248721973724643268186332283092153470322394037007794197342110625258039517581579800066043168474724131647176798533480004133782818867590021940242224067374853346694631753572931515302484385705889345483015157106634967447670686289849383914307791723832367377457414913152006268330555020774361045815490246222414060043149795585847794447726716439771969012596019786767144099945841719804997925581484857565137029466591450862364961278224695610785576772642251604670993953107825275253700494925855731108844751605403327136745178695122100141847378432947899956852856341637125261039759984109460313956436093867579897011515065420352769270165844725949529540878556115499427710840256087390904995330704125500734312097608035719060283340688263322511554372126358917538562842329159438400181625358952373278701759672754513381075779743588381934686851014472846412516304455588338727851314672130714515377125108174965403677515457194732296611160268033431418538453845915010492276392706441046937651356806459203154559960610978017689556158247905154432071647692033092398714144851273854138408768021758927129952983331737775887737982120390135812427704235013223119187482974875595025187501059007721883590030727996959599363364185072092747169066034118221481813256231126723223139548796380639561246221368878815136858039050530250109891316184808491235936496585220381786715018771979506012844010002705285849626253630688404168990623541823793608629926193357161962748194599217738914637491943019289580859249737412211493386146218232574049826683580350338409535291236743093077962124157183534603912866927351019313139031520063374200452705328038428625291447299351229064069670559105042420341651398049951689917153865661697432668159607959005881791896758890601710378565021247204973518969850334792597807302665402855606249280123837468124597086024719595687769537371823006828718605187550257685493966855294370781592976300486412659784197404766356303529655943224164383982402587697998751410404660719042603703839710187921374700671395056230683029593730662661803884853161492268571004432702004246608986656233805463544103271255488461780158698882547956508112783580046950538685099463879932076569004957205106480917928475692331889344295872948243995636113597655475971274064205747857697608241204536808854248466010841308595401811916523050776065078782931533609353424371834794587220268687884158168298640883817660840002850804135711952045778030487687892920546451408465162795120501960232317244575037735514902625670632526304284032360812863280517027951125125268391653070744850727411682582303949085557464203677312491756290079356900875672640205926064691594576734536635551590395143693170834024958430494452014075293779788396883069163841395048607741006201591830831384786695844343784833406579754690374553557489619292268519049660145839471430682773262319405923642522485808372201486938995340463067757855675178382694647579714579121043875372235843476081108510089083038856861022306113292583643690945980694374452311494266034236413859619780835150434003089660801242091098276782091204962955820055620430212050620810087985691760266741944901486212892035573774811251870000875420945612738138987972387565674351534496942327886347253614848705048436138958556593790147193272109118740189396551594750435470150082897044875530030946401146757834509254157990132943485596860056135383859868064556539489811646695279783153708123654287878387363055261392693994153957967355615379335275289577503203563686872810292742115216728019807035484032244413426603735506640419465318219038842152919077384383622616880927473220277868405467403071138755253538246021529587950419983712820022402314742405879914870261790892876178219366023679788420729314990994114707549775973143013927902738406406747453190085709053017657252189434971712086759994340438139477369867098367190645195214814635198593370646803406567926500898687919238586465938577243886081825313332128037043505252608036503152951035444052751840172258196446797200935950949437407024577323905562087611241888327757620964363773783196673299492155759969932326499640299162090842337237803459601810835530934509515536354915169651004548950683838199864269432034740960952641113320699873783048921049927283328367655607226817322635524696793754885011045973771777894607579523128618307059073521523728014034730203604276153386612306869367849286626457518036132990347208707532648548799382753647336058538664931808446870690093142634246615220990829743134305858263197487396847444371171126445062357063550673117142915372929509814307723738153497050553884418530403561076141364638665345126477170178786091411996046705484890134683331596549828057402769013294027736111817429897432133544957998283725186848103337408058422506103635837572316313736922001764235020832323408283152465488410582300431663325649481383126601082878004604840149050236531643106737863799397593336890119941879718961841973771073160712987076606179730430334446919329780953837657443136798085325356832153968893668245206448257585569832245667334619911581581334006683673411603712285021111754028448922391502093166423037326493305209643344733540716631264044752836697551094805135857556146251514194165534592169787649129297584949882312424919961152089260361495428132562262637070663378734932325570312768794361587729719215718617084454853634349473870215396736487463866040304366716934601415145082330988510986628885817174277044137375236162902249831062172657982837730161268849112862817235070024323812645626648953891151925650479485691668000857456188756484735990478570869391070984726758403596905644233515773663621884516362076430390802023103991716774606947494616056400505551343651708810161510021653897756018782948072402500995161529013363131085274172469038257376247257410985551807099456300550652566106287094888155377473434716075862943171570425983237078823582699961167516177647365834814885585329723764194053198005475962602330061516652457348363842436926538783872072666885309903404661919401489084845122832737770042312457579328982735167842073759074350652304487717617728250080261607220552503607077207398616171872279366649952287427287659476077707842254117500281602431248163409322201407288390719791442099280906899477898267142021228550461248472528664766892522460914605186995719303805144825269551985372932816908134660282698403343521679221149795305669137243849396088480647577188348015427003639284519641226968201190467633163865393778100251404009645804055589740489498370891974661921739729675489386205438216524134064484113361895833664011740629376368024397059476763339843873371308622452855639017453033363113889306232105350189858548665619084570877957041227923212905411194918093896253316757366281136486561870858289690451841458163867292910111045258643002603461668640895383374995538636056030740829067767629986276887606993050952759045886747846593314815381557019387894086198316739312020197531877732034649010368530623854463365265192023748626915232538349511373738390958677516841424498328694456124196609567617019290328497569396766442181726676880985516310475452655064345609784736348480200118225191846086764349923337989431402427091229142480043296237348774282019477719019898649109227980648017616233624153045825332062834901538730652906893365316934325927258799962335634432526052132778818737601882402405877605248343014734504682044769906678552096977106935617620060664726945040636668091745770417217964355366499941583058008960654057858005522841733117666638349751770594174064207242172560356306446465470808523535343329704426099685976343665279327621622485873174474408677060078489552455287990642038373829047888338949390711688439157614832769323701865364464773673519307314672825996379429514337756334787862033466818364557144970410707231542301902170202123392591435899050605778935809466785737129136805497210541014874684140124274990718203710662545771727551065326618268322732918177509628902885856060261397733802167952784692942095972600265678819569286207071253009678580686362926890374207419497458001732367691196944445381271592893974549111660183645068633868230771789148484257034408736146733947179741781855047866402108441064361443898623791422763591741631438443664875118584438662701158999957621764355283678495223769773469433617800503861553847702902693402086812002384179845709471334280284703678756201991563012055685291282723548621072596859874318867582924189530550106186162343952304715011196955246580586233190249197722436017513753929809571766035876841296810837573115656888152101412521703459960873873822427670820010449447838733892855888993094393325009608946947988723994512866303959632554710436397727427585783041464959648220749060785196659310448732843570511668187148432708442240667938585850433478638469632601181249669130318360021154697207638272278998313800451091988107401147965943241509808612889646475498396313236521297245093007715853108280532458389797086327638730066370966351186849198921462123585875851478548488957511013124402014237358427901949635260784632727699395684545917636646180002100584320594695173571300437576774563959904499652644515775995383461059588708051716727897747917552908157611478241958705551224830412781964243178234902591567969677471112284228750098027758782572125506068227299375784528170233798682880353509482489219823599901273486629900193903178562283932456000568511197187682778898125883731311869613902232796781132281720840080599519120488543024652057327890780226434948559203517128905162530931249675181767807885435023503370700566502885296279809335406466655232089251124873552524119088091358471076370721127475552639606180039161567612928477857559498198943435993387109885064280976586855277338628349870626306898181143048023674587558265756904230959498293166833724973010258667934297141172775256174738744443081280146509029148348146242680547728077330594303130914726177127865973502719210733428518489395089765445389758392643420288655901678136102968984096594311486019794208453907089643649585859821372739828192817459358291341493494149010976466373995944337072428085706453644787146169611388902902447652676081595024869160986509819487516466834114616188243239330896892142441165019575758455646671850610226021244852945586836753779099162250236036584609244621534166879248863086633908883702235312223350015459125485007738658023254219731832535961368573049929583108549866875516061374016256316609691013462038336963122590609628384006474139560838594766959224458727935397635624273990152996663832454943929040883766510377482566884210761107982133520555079067064525048311383514920271119586346290647156371070607276983860808997354882536745051675579732086737290362157632561636366341814726660108517531269937400479413660045272357017980423479843278773005651750573808478623704022400404070906003199246923602004131210955593567415492861849927717590581624506724073193884332494831322835290832152187742625307380211087719595015658155572500430441232744859225789742616657465819401424707610313709184839723205364357886041686652087551762634406168126552191800271906959150592144760552725879135385632696714049439424749153945704917268313351378836496864550572863556495956945200238727282615139343474638609131797451714075305619311102215334930423733552238999608528846917658789553265459757339500009888153676603901561919456001122392686479863192866917783116114275329833668931869410478556744917585913225777572039551002010734305992155574858098133343359196337041211751032954131636954891817896877300628081496733843062146027176561709329701390011604934660247329894503021510680118679796860102286780702943280726464978046931160605948578882420898652101796244662084910717395543360174929461406693761889147380760557879769886875549454898460296941441437263820038326277269814262457520503506059996385866256952104887899963172359460327503687800224730324914048579138333819355390596452423480980865325106389158498019080947459856017399933513816708043032121214243549679420560136590458225561978848392490658865893276939802374012110302925354438530632857203366479911472913474893712547441037625349170402502658052686826604569836598192155863514748269860178379041168299486361950238532104047586238496278705795763363599271922157278557810369856546787507647882683825381170059090259700868203857250310742014245867159504430409189496963599585026406947793687389811272209818822861171591455128098367240796193091372595183500355780822917207884362083303872327572071815055800530376342360312809995126684163793941894949729893587237016462893659464852004359432298777136479112766415961628681986254480861045368469708896512408952117656432339823259210322648858992994208336144027022172052913793484886325118203398324904435805527205765687793053917444182834201473311904808581334348918465011333563635553936523657051347564506673166358877623878397643265120502376322738743840760872492305055093133838001442098650034981342380667827307727385882512383312831201373218387111642819745973955725922902529973252853835498823356016096829080195998217611349940875170074626206245135284727166901872429840707176480852554420773453696275265448223504528314477750151700731985939909845128604546053342413249015005449961050194854922223206110355358421049133420681887724103802364439777063048351165403475519596594653602951874904153128446165654979146451218484531646913246486646962511215551632984767667341297932701398506363857305832906694905450234355976838575906426883535326377430615824856522701418609357311498761920788859994152678917526818184372178973505083565046583159672795859224624133105742661664613840832183895589056645634482012454900065765839818368118500995842681635009944835939907612832698520370453811558743131976838236323069275077948846394015214686337915131390034305695052551514702586952030070822252690058807719460628839434731115549168156053448171659167442072172986572039646086340539051560441130118817000360835628118133105552187977491865869674967628049509181215037039072017575912098513413012719554138554834825309779240040169242154517405278183675245616656953866592776781285341750213331991131575601144497720041929908081691393731787208109137592913618432358535639659888126090755860464387133483918822339237856365928693977705199206685210893388839841955936524209114238576951807308213284597511844185717290777725311982912245750096174383547954509225204249652867364366270668784802508762363574377722658109875424766639495620364596607235157284473449307018800115407993848165614632556663822797087651641991801336933776844366342062576537387050942683020125138959979659299527320669025027118545501606985294997147329879581802847111799413815704317166946759238200196903459832027378982490779195461303703859431814115797916179959885984213535842542031494328561952387175552113486965318549122681167901502648104035391136007330066571710040289289079056466566682768858405846610268605897295901972921961183645911639807608712065586755331237797706188185127099320545554658835225186993789896587895787863229761973865814492663309372783704653608841342306801684839674129637663674568447291846683439719509840000737396852203996680733587786985215084176511889027418571776771229635693007735549384234213196255477667782924474880433720062593962729312230102429439489392018668634972298234368885315369245955842838259422597852972238931382525056228611260895552283429800799107452333189772320453781241898230338335760326600480901011981772572880807813282400378232096151412853457529676912894891041410588354157519194375379611063582022051060568828865481286647986717978621616254615755734661897165571682047048708621573259943651797336341574052405327372369391284782624329791494935742155393616266338982600639123575410509625439948284184439353498265711437622798277742458000190642139995784150273545189744611388433521531778363002544768444970542619769609424986427767958925409080126346425913446004567005564155718612066305294731484160346757041415844234765786106539081807756241740110459622706342651162590521412183716791840479564807222933683596296545342461577993695596372239567394742838791729149137913905108737490808987855487410340031253629613917888101751328544589290531426328530396810496648233736666947532522138855111299864283621620696982248857214112610681842825187002055869752425133162926483490100754971499249537879594619370267481457893092213919050764258222009953120019413309693642981242017964964309885635503606622136157670455766369895523847963984829555824032782251844613753904694226285093410193276453968078269327715696509872968098275595487205809253147902579475977229647964401995815845493773769442111119525691821554155088413125338296643110513414603558997847281410110457899081418421886459745456788998724422742213850966295603330584136509392884497719949806847686724599575297949515907254618523092351329479615705471232585231331642966857902154160017339983607734840146232433458777939277929097133355246920032938457411962668956863980982432758353869788905598175519995727036658342100699254715420292538096639883006314617810144061387064823752714035967625006144532998287764682598882877195316941869278755940676920199494218404407755397387234522582004003779479434957860545541653338298533675010129313086606404114304836407338502559694634990159982038775334867409184751856111510943296907660287176895316760861517018821590877051054537913653107943983971914168955873109469916729819740566454988840438649710503690360887246000413282539469845617673298690322630118173724521830624546567095058850808113087285246549745680150993828516547593635934780822480418416927022530516976639043114472893965893874476945327391468636436810326359240456364106895749938902691693771081377221645409586528673596025437452148006059396472457403861594632725291221444338838800252957484379608186986443303594255667415236907771797931294552423910892297144728416267172831911727240820306982868144896587639291693670126665443168202754193312201118043573921773924510496071721403320370133527227429366264614518490983216086192320032407547607867310669960768187368965606818062379044713334044445249844187522644958574624361776839961274464686309804694910939016572959234729217478880855231666756544066063498821197609540919733629118998317077097465138887939239542545251214480037787306035356894870451269803644934730266299925169178752892683924125588414428955585171658462040327434202279908801994699929842256628132536469624728653245382843852140054459366255898772883055829706531196751068580945887078350804863962510160129367780400494107148458565367007962516380714361953712667808536712551606092702821372945153079904554399562029093908224169998643971649324481115612262077213976029185928760298664301109954057448056713578812925516438969643501693407707849328987676828649526211514040445494582191646662617210676483139361313270328580559716999599269320080528577290646059951248575128043054825746239287322744499296009549053762415088597092607870502149795427777363160394321323050169589403356253924199561394132143741006796218475884786953110264176395011993623738867229312576266410609163804787269367211178363604114431756291761371146496009341510131930058861303858026180713841237796311624880568421797915337418405215660063477798239396413728063150191397568219190500144245237156612632782337138621819236002316642556921117880615925718884188352114835361249257511451534679037810989016122384536221303318608012022407090757063471776340263861010275228719197814978941199737398900104932703236123347438214901936966472896910458633705878892908327707893848011025022250784795080712612014909352390260836728037361245359389917717473680288754839983717414059684343257401542252578529402472149003842450242672586065564852990831777272851385790209196262504866816112757894896799356475979046909387238346393482718810083535998567395600530060880129218338710573012670109276783514389776934806131066958381729325573861928422902374863436099296642223556362609221704559297677005817811549735594647861531425836609648712655525392862053298117014183656106376901202750034825351563243618754427559873288502243818251053695589714799177539176081060256973231909071240420418161146996072382651899469379285030376156913251517762333853810499950761872574904426683441369850358692501838270855729230704857850146787803255928672338269268329224200067756870840992250484801330126223992267988008640736658689852338581005531282460604485739141994618007629146279709058538051142088351461014348373668803156097357004413786012673484104599441563935906020424814981841621375615625061682187364664455839309028752739781844809935232067587461657744851344193345233777301484906142243510297133546421536838112765342773247507827768567655338990526620552234014445320251432036561569943972213122631959675553860452083947781237322578882165799469323652432416990330526155199204748202050780770010918980975797350759689238542945155382375359026219877948818311081722137300834433851004466876349667118962179058312804324394709677700900177709963883517962035992857865005040344241806502180356344616533486967332919879121161080113758875959625721483628903095680615372202197077674864324252479251263687816908769770389515240109414217315694849455800711181220452961317034638918912963738551894887957892930907530124661879999925706073513148767368936837081463809581570663616459977884268755062428818264360329727663665305741586352379664036053513046533961619318138678814338733921594102520107833809081477183302374312194598353917239756913096791454248550840702077637293598266221135233397967570560444067993220807742069092914542290152519409980046165695106368962960774777849549768861185049394266845181159865923292156745246402800665418165615529232298558012245698476456064591543573137851680293570541030553943571109623625882202644606687515586101095946552257971637927278691920542033964145326615902782423252884740213567908726117746281193534655043526519868776513340877606543270813438843103051538666102838789445470780080403416674010386030308927914530916689561759884905956166925842940726285289625715345639810278817003079896425083931500189210169390004947378209570673527690645698594696678994717416265608710704932181059447607471021935843118403294141611645077183412850405666255768737386334239112771820924653788228003502401922474845282820453521660765143776183902189875108872594567523687706702033124655528481252525793007319549395639970485826418597449785795885293532349646082736038717230261453131222723511916061185438159018249034686963649043319759848661412016609851319740173047921919574852184245238937289109941388309200401025551842279073148471767343826746842194212818397618976861351899342403408463781320244623626562297113046506282436798243794132394580052416348543358754777266783955863106140256774747742956457154621118649081784823296910725774263756201881933052854529833433292269928648554405213072589943658600749893415986400441287190508661892917490159699470142340971942259485260388182073881366202156855167580571639085108522561561250547423725059009228440051014380673274605709574368727078134200170371421602104704212802683676789035532701254149805698431947007102157610003296286937934474934977926807989780660145309010507606752520365724474491821042264107736334657124258120553058276168539109935578208039175020510076089671899244797663607227007910172653656606044778834621566624677979119799482892316547743417982205534523515319554793401465288014706916927969385528315870537430737060290357831538619222993814529510629376160309816980725422047195356366199996316332346799109592677123584237280827212133265977375233226788504427152650475614039054787599419018848299669400729518777465584248815146668467348541779147060619957613594147296705206981541731332977247249017957252090381847964463940352571713977648622259179855329310598701120799459610983101565742408402145359748209394056750586644928282269617894760285377385198758751176407758721574838498886623901299336562620397283160349976412105174272662737952687297324083601337123958159340241138163503438937787913992900510710368435455455962116036410590244686541072422161133830964131107301981757258185320028938327003863990651388181127750269011442136288680444340259731833956503613892865173421816521042074597690877300041864882543414290052497686996998876026585332608605472197180666709250615343864293165856366998726598261934583854200679766057780930306606176827202909605840760476280078756503725418994721795477280877902761642239260975801165338947400868685159175527342484620703786928654199594491931633714910882662480993232647008828939309210036357437065921397033881385206177596601454301169160560587532816662194929989724076215195521682085662951520232223375806487734194703399682615849591484695891190122216690412600723440378280807432185583003873079080390585181136973843382406479294444285213008694333574404677981090613548042645455877366246751414301346383079230292789002097783877594611361658812118056855117323745759315057476841298122639429758897902906035471336602801138566970930385464285301961019344382586904822857216056643737986192107237399784381419874655357619832640811681609055577344876280984998068962955216472009506735034161237239637952072241920898285534145028908766458190198950111444411510922487723054785807340187528170207741941453599280734756193529319410109244460601846339517193883028396626327865037952324879939287695942033744738513544066832086209970881760114410099158569176724087892438666132722869252040148848447401441863755646115203143264201481919950722384650557968440314047717674160391196341584813042330725047570249256673162933430157643253616662474630751251916266721053649434751429135153870345456967038433303803261523772396623190030748504611125958288248473331843749826081276000323328104034252225788719478834914439159673050666150995613284155237853459382597570794872715258865784099804637851032991409571771092194041956903414892887316328791430020290640227521672138382999927774448727064751211599863454150703325287640404735807455164532289280129989810704214831646480090488287909482813913160966055318783644867961818884312732303821089304578744163182793057432299283303181950398225335852468096873434911978850921153046520433601541103835063721311714409288158502490821632195808415833156549464583761045349708441303913793715038316398829232931624049807474880614190686347899662664736671478271791746188810584012915897723005386240569494347600194430499207897411128757291376308857555148185892865538583000609948750220851541241437332015086144842518540288417076816085142627058932366335738123138495249260807139693571413411588561455062486136899459825174545594136460782661707091600301841455906801099063587853480636119273820759230101090635429979389524345027957696886563955585734454865535783583502717655674942322397191506384784677070908492469666294352957805289358733475286982117164354978380307704300290241652673352061572780351103903224680736282339325618359954550992032138316967130489753211657904865583805259024808269559386723224203449222317905144859759396333737325198846119147896442245698373341770336072254381607124719237911605118182813656494724238040257273162591503763470847242906798631923598521493720985677649219307902024803283146503617347647851289914411997871447242498803761935996005263243609341948891202130692594912290366429046559168321614085923110537444937739103031758312050900785788491733126557443276030028622585579895473023537521664922700338074866825228895550502346534962643867087320167359369232321782319385530429219549140627017681282532727905573756314660404002809927363886455611723328765150722670141206674910504951246921110295144205305034379221829869471414747914280321902544237124596929297154417727292795889847341288046924524760485770246766513610772998165252012841558017774833528219769665966744062872262989162441979565573705911832908035242279087986614587565970790379687706739899123099853871526593546334529498815026286368988645307874524772740856354870158927284529402867783022511661828940159392481237461691404693959620043898037862164841904408223299154524991818437509529622931362039580307752666279997795599356444376129711818408519810216335723316957168245506425008936012490924752735755671788386116375260035992075802865247303857081208665923783421833715075070091607209579421303089210100229676152984349419296130680182079562548034336905001883735693782929977799208998126612278189851791052055375464287021925592568551228886242478874080996677581382941375540574571113487843189004826357833308593969960999109321833504114138867119110300390285805257860844107254241872062034865943344058785983738605220917727999805884237662007906811369909975019048300563952418154991413701289199678269290344824457021382851515196868705605017174433818978523717259812430282681921927793650719399349849779688121876728897199949818987368131109178933686462682094934028100763562833817875122949805676443325801891277207313379650447636353430883698929602280652992217512606255301236022575914065337310529463353014543499696967403907925027607999002426513934785033710086793102907805181435189079856370510095166643518190738864174765097271189191007482778096228459012944503712120186853660506911197097927726329277186685174375757801558623543852010204756404686795822364539677641293708332379902945201843530070372704869245936512677149183484528571836360100832843365713237683660210760342330322754130815603156556362304714300720674318967340061025250178530194259358127182022889485084505833345148344756056374897024592125387882762088904286112834217959081141370076590732033202107891718878341675792537011168429465417524953327616149556025778144088067054025148950316533215462720704971554294736487590485049122918253266147716817952525233160762520928228160344522286062386371565830599134383838453643430126164546877023328242570850439504783538906050951522486392824920464866987968860654245127411219681856081437322638224688837707199175360002228500273698126448733111314539273200530156784503964685312481655662369104221198591589476796447654968937572291425743140323146303551199331102165747397214958788465596659981266001384706871870472486825784448193364659315057551116068435878221676020354786425446042842797089844949410246616938685373158537001364461116797896321157800939652829843770909358983484610364023684606887969821220104505865466974716627063156165287700017892348618610854141124226244693180408615516057157026815386730286619060768684009925875468867810941069571115285397731479016513557503140347245731067481213364019484328949756026625064425850789411515611089846233399785092779895469519900719798090933036241955467257423884669995148411119553132402029140191087435358875817128419087755979907798699397855399895698120599282495651625910731458009044328146438398381207596089566288558422939018885406927871555203217503862964699565620533886623325502839206669348914329734523355589085901065297053524033549513676277704396690217401546718163611570390148548739768955765439426979459704879077853223751779695187256847228150832204484807390717685073589672151399482481400148884636338297780311377904487257192663923885107943466321898845435771338360462484483165053124378734211616971458106935110443738690833582631564309700453663862768291286336062775369113970344336379571773856229602604453724544952171313968768884882538163368826189216499983521869160518063632511733822688481755430971300467084893424588708819647254448583354007473022270049317685861600665932281100833752030006553727886948155676211102196883185639885700542196805368518224881174475055929357491260844356780522478200171903136248433827395187313880728682451171087785883613416107064057350897468864979449458574377636914108817725428714739147746887121072821093903693181488795121355226187038772971602645589177908677795775323570647719081466106036923534733737568181994405156445039338043143938997378946187360306256368685559724906783235497263736975713941231751856302581134324209726810089455000116527475496572084850241689164974969640653050765182193864238438657264954986467593579576978677624345942220714654172480147689671468474936340197905672095873470994766456773499580343654388177593402113034658583856212209089635839424115178768685357643037758823985022382452033120728550445080538309603418722148566832974333766055745084250455756615779338346370395518473024217344107415850789998199914890987916393463786957939632773576547116280665431666996303207574761206074462946204283202439128730397519880848062522707970207040638138229418722729542199477444662518741103332672680198482014455788498995761364415996650833744777478556126404428467439381022291900181252788370932660484710450128492233508123787385798015712567461608900674917155168550869194227776356833120996368413254630677258201290106358129354626851576380965170076356138861941056162492103936063926239138343099273469886828361607005868597355102374267673468197629919758759767388511186272716425889440418833354041794920662502638264381017641725891577075031285938876197470184809828770909813932390485526127389510617443056364582729781625160695209526047482839208270130274557566984398329330574397938537745331282927263104328044339669830613236634612737130154933312048070426977342474687058774149877470918569319278980298706421931142308463223060717753331717577201017444292265753264602023541273711309497959118567994169718121307795668609313733398170720781305335733991731845482421321886364053797669245782543974986989221852903835938619793585989627621650020060961217876522908495120616399782260052527444128415925880593072876529140380966211278770284601248300655628134979035167640936751222284554885566051554457091147702352309344617261199363471106639347517387880746089206781943467504952058329699439302051215816041782312539651775193015099031133773281435068892428983638375625238862627273608899712685752539528754987650999322716554280129854299527622441870336052677532247099403480956345211318691710173734519651669985878043772814328508216092520822494512981688812670903811814770076997352137318409917989656453535879950806353901576963758694829176115610132533944528442518540859599228355459582600277823844498003371399867014187608276021103477349511871341766321814341139880970608476017463673309308797720590663327341411780608957581205149378400179499868262739677733157200584004406689355014850120496255730355941177361840063099225417118714205379216758305270407277276055449620792667846383352830809681745863387644034213999793998406049391846873928914008155813138078490593637984883459236560408584216751007256690805955155597575678212267490388555401210846204518293773362478776100282834055546434577878436455370245813535525648644281472539678395226598559871715062246274117195175515003035305818431115666386587693624628271108139860620615051066406298514163967007015122582490265260159536844525438877275606598164146376349059370556381924413942192820984738872299339175863275018060114215033229674346092929852948688447505236503856304269199053328281412055040155615957534024358839158774252634113200865891644097528499322888249538002483291274534983382402712415877043136189478946431463390659551368523892658481647611818151596710734373853790971303281531208624876021995615863711701195562717264512231224329165319864474565900489999091173750250231292421360140617824914058464341248059322344410274619352249617472382634714313656351342745193514159206260449142676481500031394413545333615799360972902433605797188172005495418386554187647235665147192581777694769300917752031763311419401524670103568908973235182032886958318316448662205917092448792244899888873298160362525094058474680928231732679696793871728331054812897659978490525182177480085101039993133624172095598664954665782555070267501957390899109167430223464350490035168081130508960143243997922146251556608584431497448672717960739197689717015436111706404143650661919797845509127552596514159183893508533261797534734198462992660021580280987307512182624443947530612528384055405900671703749271137343772468168857594283464032974302649341894203820297176931861634167114735484183750252570856226688199112264037048811745022399344483557561466373155014078823740671654493888583011205688234285374496305631726902737624808367381699850193545981245836560528758564761233588042670309933950585031147529618424774404275804730096264360770739280357419822692741972752113351279237563086005484071095681629865866617194954585477321486139652002897993996894697528683248117058085006197424224359006011691692814843478793064204104386489062087907924485153354391352120984864261758155974983830052900278698785993883352132849823395979056695275073969072387476583814798331542371159114580078884768274428212674359296425289099002843162329964510509117465051250174760603520573283669622308476364241189136823283235314558519493602655614406214311770640102142336741454234510280976873989891034403661404548037222677800358469954350788930014018632484115855320829633201157677701693586533348655714175575123458173231870803774659006962284849880966803329384510084274499597570187397268043566545796201479694404901823601671629942525205470587837447194405152229099015783844840847150652936459891108848400591075361760039060186816289024270154558516346419478972681092313204022980820849127624720389423589071342004646749189138910478526090979741693876843110781110898804026112686394761936924907812209869863080977226502393742461393793250754097357631761513874473353835804837368394654182013947831478715484781349198022421368963950691037792079615230611760872938604573481387612029200059483130406911716837966630166447893662728788353954121806467947686003987697934247007660063264016983087623185124226270251300280862762600261455702048357484327405323416139829517947542345238599526673471086480029650100455580443734420399952087532320242651534857790859519941998596637975594720265337132657294155698976661373122922584812101274181429752043587368630537223317602076793370327111860621220324077262857231881467365911544254221398447877883031065669001940947300736756187833475923554910991502614677909586457468375005803840236635760896276481917252993001727572132724320082593573025349473526039244721138971059608219151783051064384495856173052008733861496347339546622236992656204555869204366168553912781665448097149807034331395934799799983554355926651824095016404198319903456675984114397827012444948933443061473810247394962018521126763030223458478028374168593557165345370460698783207580932934486778342355930075628121833157826804836055817085594371091633788970404215391780477444326461986770270409473782972583427470140906154277753283824923326918638576616358900774773564531279349405945877931529382072714364834763450794811693258265699240108599663190720756830245718196107347425228607050939328033128039806504620514667963031403105875607651887813398755365807154902437148814416893883001621179350152248724928038779937581118009807328759097662764066035314351418683423000762504594795379268004246574963396419505647217836803840960485895544593917870556881982858009963675654580883612199643453750865491436754408415949113193564758298327445873860582577080782477751465601433022554230227225066588876944415073872728107795200579980657003752454832438155739551832179303112547566788318679554819125289759429617551762106571181166022637135111566397199106908180967205929664138114194836801990686111320513510062357479565369320222415626269553931394909121487560621155395343613298525882905540733413984886193037304401879124996541981793224906168620684141557775192335605237955347039968600274281749985062083753039898607365138448381228599659833920381293344311695684058107635689896337360953989381042832453741569659067179771864997112730916218185699303140261278272583699759527189835519162539910223221400667856931617424997831596504666234899962013139310370549305104544975963262877060585019954878082444863818254692784685721909891601206879702127973729284524633329301157753775490895380792333171286058489002634318151256650233121097206392148727286089174518597415611029616069685735714982975762444373002926719972034146785818259156493465381185827000523083339720442467065332970285264205809068437918652916435258370890431717582079878147900124328033302016194701841232438459112581292543486635557115096934871191750018100927470546873142392462160667203098537510090012149680680627227732144346086977598295152235126867817490363752815035808266338084755279139651918364208026019778371887107610731126594615008966857756045202183357462086363714829160221430445653885029798514580552160837029348119924593988436302151011463119175511656003485578949897983135451683309635242008167309739849506263972317711914522666343675536285622009887248555970022109658350274504120058556582470843909480801994440647188757418343631217235305660396353521117182610402637645516330834347930015965899817079069495805107214875826078554482030581218142583177081730329481490715367663405522206539729670628554930570891929617269050005560343423723487282356735169267204577175476805759551246733215780664205566332418977771957412950454108625298339069327251930324932786441876681390801752591546581500598324096513931832862865498034767715307445099786825187939925574343132568031755288718427092053004114782327537467538230588063055156664886378229041221350223704052683072253023501789114446713462541825122916738751540982141750064909674648992153148418684059497932742689239089105841539606128057626646982384012002569343768497975913454731306311136095819848831253780693692185430864067246158615241196743223369008910504682179283555584680408728316002350893229669842353564826014286520202873922264518744231506432807370010810477939460983400068429540938189530517198567145895039895906007491315923726833547897640688808171821804625332671085436526918174960165596239078683854131917851380978229560388141443199808487321560136320045320524404597429061762276086305176144739137518211079322573003961158215794515579675548984250731531253297701652112930063763761087656171828664528546916884843478212508558769709738572116611613591686829949433907626995305607949096008153809091268089035855575518940709726151525636437243094689494312399089118909141081020398902906717290553690474425494172283487593736771433003592074974273266904690700336196210929663639264033299680458951594257342105981855479550921000730735736274183860521824441306767426316719587325755561222464029128778476630933367634256922348699757727580304570701691424444250483041029278648158028226084948260303946348481772200538514840486845123629051203381297914347926947958098667610781269412651255232258579348182702105155280199102727303572975184553826043273222640964739686099445814569124033830641945757942637207166633863723360298820453800487883632330490100784559497720376433288491533951166760326448645451370294713516296799065146179036623829760352277748975895991114221762626794564172586792178406435558492258417292653902270551729661016909207399486029130017249999785305704224683577656062950899809050468076651396980401838977425509197712597867548760784694002459497510967449488342481184456450727196200152996657969572623024877061749270759718781278318826818033795105243362869427785796679524289346215888252831739867560986362641574872080386477273488351109033122763404296623618981494110507945249798770261932715593223500191929995705141198661889203416358649111773958152996749030558874074784882644421614707719518830379945017553824257650509397808883465358558946841186664641925264692968629034180749333958870757086007505851198803309986773186005640287574132089378853995531045230163291045618188121606320277666233130898649859092664064817651782558426382332560225394326853046608373240275606229790696419201037931514836983659849964878104638032975932064740217471506545971137436499326912014053087257417821635005148368955349479735267812775794694920569330509661587452501543461527753839753247335574251304641754654389910653210799947572349234036293022224197251519112321375446150813674930503232202166211617793231070402830716384107706310305890980704646723221235252353673742730768848762086125615397776896729807785446226934683423267152176702067884294024139074623935241718118195453408045048049205186955578992168934935994892222383341236052751621926585332100737899189660993651937352988152905881863247035804492706278882601415547462510790165538222054985478075136215774305014405730095679255472335143044789468536451985508398668571732613692714689341298915359501685538318142596141134518492077520748475584659687434581233844805595993999010285569791554340518323144872972033212366404968278027261958632997464391029064877834223019732983847937961134836614181344419144002047325566303690208619098814180378105703983917438540992166275446469283530513946203041995309998920939538544678463610339909388760080787537362084144652682389370621832679044661142032585905474326987095299950724570827075964847713944101176130348720669944393745396375718733775091804332094445176331399735762428728136029451199569476485050316217439275463153020886734179074432127900315889319972878641825026274261887540783822134073128457323887186611631083683347184981469031567621370120608417804659691428813146348901025909139395703445608012238786387726165669717038787232257898230733195738110922115259320775331763700817027830335792153372773825694622227249886498342544268623261803159105026960907326778010520904866292680778676525366602381336451447668750903191081337129888355759023794906235087586616079763934504895448869617524386841240712342921180907627463105588775468746433011295352956597104576432419349611650721305114225199557296716986004258928716935475405692881271906914589226678975453550957644282177184278581098484691251374650278998396182036229455569323869256785408218999513689602782139898250976630771126917562540966235917281845467794386433596140895336277919436655378362941678944886888297513602096716085304832036224809087780605339807075937700261532629182664728164046710691052324237901516736495468414643575790091891407846134876166598942181445862851182082319871570125136434448199059453782429276746901743484818030421071851371143450293980475930497154066946432157047338514985001605862494125455652010680326734871392272592545051795918882100164919959814087163924008057827930492243182922997850436692779698802002576926039796860413497580749135030509862310841658936975146879208470724372885300308835071208067325958234264606443545135253905078046655149904372803258724925510359280065549890334203294714532698664767419481424382560852184498343455388732311433861327866672098247282752094370262773298221721724988157056551539559015002330756204141312705390179546550103914745419289846036154138141826440878590568119427496838477027224493377209734064598223140401516881337859600174924774723706027800479983115565531059169523581265914690098510752322456178707278263350475701740426235233714168742364459088257872732087188729025998788008906395940279818504800385998110538064774907580728739422385466832037033440386805461831964150424724541761247308828709293855462043390190530653625674622051066498001576950331296719708243616610482985109314781242828834233989937524095331201174604564520557442242801671582693340853618005352663731198202407950039659235916705616464579803625870862518739989997359007552973044912171518165467794216829444968940965472617039791849546752962585601087355893722332095263919573917696439615017129978445054551675280093477532089569128445271897292632866489758674136610506432773062555661085638360310961717423795215655380189985515385594726465097172340750426528636731190499952048850598892770937585827445834653521909185047316868726004360563169453235258373729350261375761036895762802102729498845974349933876106604490684119850775449695753187866362803905018518339173240891692951377365845245077917311972203346895959358038763097827833952416510895883144235449065024649862294258075514276927686803168356451361398150722047470423551929090868820358688572433312622916455365315201367618469479666382128655025002393715308464000245122386316605332425999412527812620191077633957227764022858947232841969005657201799531384234508968196294119781802270165726957746974759895690184459820506479543418092383007053577402281364438511996014268800205844047797778946177599973433059873452588989420427555362644499275167034371376801463704202665887656086223708830701454391060184560311134004032641008595343367400109220848980515500606019163573095976249690251840927228420794106857697464363589357568834499833597539400990154826434208373537606989345887608272636530259147629016237902006016825326447207492304774193320714695444409339655956297794479152700654550398801073621100942145857318000096413975160691136566250769906604214094782882688511786122780483937756604680321609978678021944612486809839915543024737999592695020028209755802304943158323603446000279959573171470545250109137758726587477060547625688950528203154005789355326624246206773831316771567983751412899241458835262210879203278134122527695996450127501863344440061704257885387328847995864674678603499849180598275881293085631867923416330302221485020562369983858903299447808614784252488181054566292993306977626151227891014525001256685775583301616504094914854089825168016458782996325924328888478853597425521476001744783042817647141936435550586993014618269932498704994965106779469863635044261822653807695392784294157476234893292378431938403990962878050530900099318981571938440170399130384898610791020864182702597851181160872960885619430644734285847191473672639326150248830229594553953903017100305199933923714405996302235791972404196826861235638210178965246879488821110604669348627879621072781874965299295984964067938876762209938076081588755570803619897150252058365990936069229937325316781993195193403636343506966779544180629432565438990901559213596684483123706696107066018612700641406121574906481120437866381248857654885241645409656335804727318624504317399901164313564654022211917591282966935790349945152425340569109409490622921245641717216448815463307479813528030440583912921746453601885537611169717542666342244374036950984185115856136426806367810835624807874888026730867705937390511240478946160244047605149010341125232506408765003984019675095858160339874370048253143391821954734855482907550274538931853488659727706349965212475112837743354163526847453931323857038566029027070222424283781788303843624190604507340707622910160624533226651331312435432196362683816636823812742071601083003756343989471907533163934092385596922460408899362510934649169765285414267799622876531740808459485636210151795340072516513068354761773739409177139954636744683288012694479031399694012356520182104360285913704959565680505212640744735463585292892225123333969497078624447951728561934433315140220267457721336173257780274296278574107126225344274933539668905794799185104226921655377181586204408475178445675897626959444613890712547939101276220976192499698374436365492147300567121820384363697191285586937717153059335823994866946190282718825915313011256395970103223871287459106129469932750238204243532606631135465329428459120814364629110532218557832105238214270791516454223739416132107954313070346135325382853688570684797345444557202581266531186604117844696048391194611272014352504589628520044754155410743708543685412108274004612553646268081520287052910767441789707837725500876616686673669926333600714797446848840412921684672551691321769636384672348015025228177418629892411379185556536439852492198651933370258393038829541510613131147427682870360796795073491713946053927948029006537632782419624508625057773843978890715520298324381144605387580787945140149465593856986269203676175693188403434431722156570024412700279625060578852572671712427076990614859570452228503387610197781475233755329953071391221107326202247602882361294220507165927676544950563889945563356216403273382315539100303254454386135951539715899908330587635595337570024368515958966302471733514649110409445306519840614098156115634731019716392206440517995907137999810639080075960552260691327852238804313776368322814639479456555572135527097329194865763602582972556615121100452293129828474791437348133644981020205284680386570909142837041762097416341184976584210418830338320337977700824704679623680356851387199217047522733488389575662278412895961730903618004789605485134950970661237038052822334645481707365826668733242116143948542322616362904697259103957105045880631615631890130744034929597346273730362822940497695967263661357328982709175970638975050125841389242922208100085408108969916780569735942955621172079814641275740766938978707926603449032712110972684491335086561746949995801763028835076056689103057236675494381478716180752169103792800983854335346605762472018072364766384338690999618304625797790345439817988292311244377384593251758001894948126918379233515907300029828868191388435664366544672574208333785778650689708739630761776536238056564296510075925874635503782274453777985455261081751553943447176519175275881320235223305837320634626995121823076739951623755155209737509158553615987495332545641353551190852733681130109443784351496191884493426646921840580356309898461717052057682095823446398371564552290383406584409905665236711387926750995009544368957221484583748705156578280129487219644433596952402606490482956188952738621758334149613535277571545349320454815452984994680599824316746506904700979152171329217215709028537574104616958911559376873195896322987103490502098976246863129026003888245235720416038731816913133294569910351306200027718862046759647271875423486638678629983593818735547306666320258074031373679555395747696263492323215137664042291403313715625930789559619550969691164252976343096021345869401488188511561893503255771542803264623378367827997739402325432601042419702026209401947461645331216837411983620913136714986058112860337632330380501982766067446006284130773411734225546801641711290839279025281064803603787030314434451529739527153638447973602821463202798314392036491260229546433854769492407668043628395660841852893804419106878202537044140268194883979810073426777792675615968431289788727940313712076656156468061822953569419498333352955775699685637115849913606640976040579515492124344310588617141786921174546617740879906894254342988927421798219359574410499299798117387386145199850583810412349519504610254500180365046703613601108438614358088198820876394849342842311407085807061065162103701808596759225264331605723969177110664282965547339412634366035382134948909227933244540573690082377102516825654461031188364207283998043647364836839592493469154025218265709205046832694497750485748732794472703863662063105130232422993444490614340654591148156459281941030222356808893551105728020873494446939656584786290926753822481667734120390854642429563642977765423135451077237159710389821093863933704441446738200206919721714272326147170361543587130692629368613215707238113450113533383969158112218136482511725043549281980317675723343536867712513224829772810194968876648381012253684917657052176370865832163699885948846065997533716790111599981185369545019401437289029508761060245145520272622624651324977884565327439595964204349743636501498849390926390783658571690337366584256392958618268242464851860108406495279077468253906812354166958100284420683751047585516512805097273720560397561113676079645454976933045401262431125120863284299564487047957947310555820381481132417369186006039001612012289058569275311197115696058346373102120833876513044619834947016835945095514795960274771747620161472435505206608215443657875589994920490580482784880752264154805382879513315231134940335537183108238175541896258401891354763775177364769553214122277853067437621469483755241268516585716222452136984601212747968102818730329005413294603743892612449675433583967842097544622838974000783349113695949291804474386563154388782734768648902080027739010470953082662894781797089964179230369105948052997033643362228059172009332188220958851160912310606399555645440338932172520970583304955291745505046999012414486574263585817149478721750483213187031658601373016516625119984851022240515297841119442773421228118576270701053172232389270079790569057559088505303302114071988252942168856830601481735014192794431210448722036043859838714221040575100271737641005920633354459918816275144885469913601464304146752766934439187750202311948150973192655983568613299143248316434551106900790926562668350917480460522779363280805813204944449372948081315580245748869176634077891587390164776492842196804416473691243732144302229034808475912855115211588896311458238997869484559953809700827594906709433070617909041533588890138220204412274778345752524900707650402823465870276838372355407905063230404309047916259776718181259454447782853475433521566545703912290310257184361614276382646037154003560546279364137537591127088573157591038643292069790390177726785696794690762675613225360683671374870451964926275143317692867880244098064891461899677912724598676495084464269029122008010089244322249832370400364643606167183294067822605746391190417771456723216965094992418860290059659637279285461818756981627021041813167993651270582677455517542345806596036629089601879638170970523205033879839752828000604969565256604559304457922451614133630249406155153258000616709894206571847557598340305828830491265400304791643413198926688526173287439763970028870990147396186798401489690706974915477339831132838258425208108140649703804115772952520764701504946620862639714287912851240550887962889595630051367630873573487531349839348498563067093786467190846554737942548416466079466611173496689282502113227657559249268753812701051456117982867438505213512525464658075133593253915095554584055894399277272721063868295827282173691793313467677548835650191217887130741510136351190920959706829017693121685581423437287740114989916762333640054733433299277983416023599570998909193246456863746181364127371719187231752029868730372315686644776039408287430370390524201322342589148517009241818871078912158598662654414823038595025017362972967962424462427259899722040597311280862497648248970151232351472470983079345038227776863993394960440420736070354678209484195485222888219062021720003090129037621981070649400226269499424269971352178660851227812391694791647026842005394097775541310417229929683205132321488859218442471327624670634373486785233146045212485579161973296010483007267061756735016346519545846422513905742265212848973770399390010110526196895637918950510464496133025580866547850675163999465559976263754880189375803619349120913609532837178211266084077294677852540798001098649437242472476704191975374629660880737094411615871853096334821906600710264211160979021748430794707473472941960150927573924455365186303123231184466401010623268692561746326434405827721551487012319219737346686895355315383630368281765526321100114670480090373082133022168252103725684083451901149255928179303837209788499384996477184005787850795471688036106101209126891953588342080987254120136475617998557834786693530094457366986089271878152783641499370678260725413204949344411393828177729747772849566386573651340004769411704570692916602622263424048456482098142873015831272540232331557285663301250471628809059759388964978285941602193922161064109795559670418964906932558742758785741061780663173262296839212116938408898264584011825405416953030618634638774334876713744363842979929527590799459401627562794998186838828587882892356028287719118589791082017907189171124380592556770510655892416791924375944037875115234669192613811861457097868527956247664416308506765730324328655366787210894269497560670978242237079918108306267824697925773986401098329643153513966034486051880301349732009867503664710378547749534884134380499001322611427823292834732129977684761709280070002153502603212018371551068268696123416796428589518879125134923539540998245505912897152132833571736482836404355861145626293530136490658359630348385439991572141864610899159116168610955752488001464598866942573094404607726211319773989450297963726661475660318796038797858399515766586841575792760577853506719827267926450889071904297894265289808700352246490764221371040035215301844699249158388178825819201825583930661700761866483629669475046296423545283675350836361220567852080957990241598509359261505633561055923966347014128456077231043924364271779438447116860167840388594263111171974572651707645498817999480670486795325822900566686691700197189158454815203586036318067407703892787186940991346218202335505707654924186146921244474879062189440003067907000664434624379603645416773307964787347997632226283051506189506077521637532185977252290595668848236927157434718064279214007196433002685089650677584807507287152805203873241768188798224462440526247338678310430411635547328186682480263347643625088936917296834486652095482370397462109723339391600688492147414855626498779048429815210495523011299749146316996112011319738344187485934265905845494931535624679698948176177195588783566615390803659766377848024170999470696789622404129288123609011862774694306093289487657154321259971812217880357814483584633959445628699886285330569938631352095184646780506330833755991353887060261707917779805529403001551158612345832364753435252117373413130810799364043472945019244204897972510610940663850427459394599947346687910249418779910245161011046671777966884229652978867656321753966741500050437863491694902136203475667439639549520564915325375855989441248323246436361378944047190460891050612700315173782110698954900713894496251096053996002353123543847552408981783875950506126825362718331723455957948849748598425238926298002450957895036278711551734757769407377896470595892709425832112917557954122937557732503309813510896618586671714412863828322840963490016693157629946941076837776278192656745612785301332476105613847493742292978722816105043030342255569160987088187672611052322670955637098002178522394379777276970408036493244252137816123680310356639695448305380859067363540881889634702310923937881796836028429652423802428214828531006639751081505431764567593291261388031117112371734706763611628479273874036653567677550936937231966249451802940705105245024901902990201056872224049524755504702721066434371937141204930361856828037508585134565230711537438800326815654881580289719779126497648071705569181739222464280168023819037794352132833060628351569101417648431642600684448343451535459472440674664838630392648248808089235690798307019268312407964978765981961514016648486282490481218868913092479817241318868353125962215254181457569074576089608457957549912395893505915854681977698706161095624951585172522866508493188193657916077234448459241685639630953585670787550846650173641019150353878082815506012978624179832388091948764702195926717416128431798424903347696833891245563342122185119582972161009791742036493075223545727082068986410577261220152945302720015799919327965737289554617315721558607096114015916604556469320732621326585979402621323841196783498693983627931842206096017773384115766331674405609299512555995801759477565598986119347196142065175640879455739533233857176362285054616752260234364831381258507135013164003071423229965572066362177662162460581953199471854068450868103228720074144623088655070779154705279624697081524160550738858809099251135119280853953409676766207345648731534405307628461038527627545978703398628239512718579798947496617385974202762329132023988387872249719368266299336872942355734815224621331043106077873039446159803465418709112308447732925914461285327475849201094591194062178217311786301505201002992985222171488505306914591604960908876150852040097233311916142220875486756413054763602894101864424495814699028620346032556309268486988594518022742494905331159451982723400570249352967447914173559641201410154120693879539159486267533837059237854117657924325420842876489950115696152182787425360992606389153065124792658987295992116866029619669345278821337944974066090943394000071368437379267223806922868464070691126717676873482472106689365804345198502740938733014366693751933842068569574664512096606449310677040308183902010925395818703217682825705743363737380878686763735156888497252967492161357730848819205120701173052170597110700988757210534306668023787053820762843884772810247911451031249884789696620353599251527975803635710089752596206491918671343503273201943073449864188074525784067096807830641408096905837709120571487733991233491303044207366238526143022865205709250798348381429595895435937648380001340443622043266700250291982501270445465004330444746356552840742598966628235733558008377507496174122152021555330037384542069627401073809581124151804372055884036383961762472284885345330719834253373874961311223795147259072602587958974301206086057750235816145391739975165232105395682704805151974419754901379236771586353877512701711305873677356930487837461181251169329112241213246522185536308437331820760128678179899528221843893535313726089853343410876274842344775090007632402128149678476377307811625874126883088021655872895058690314953140999350792451102988969449352162668957934710276227311494713141969912808007762156282088548934311449085324502998358677226121875388749067614954425726993677728345476321602340272361653404408919160710729287824266523736754265367309022597061443877263057989704893699056059547591508355529352285012153270940325681886042491603420566060249074763426092019551535139864230695194882441120932739466039350655902610971290125215164378230791929679735978019791078868486463001230774361777167212950151736338562272661336424747646080000773953284547187246944773921982742894200316862391157173219429294363916956970729161800936018132108715348294396918196731516020979835341723322282075984701286134324744402065318760392028971859809240991872539330768852016416707360460376912761955508614713748353283049973504050531265318925685097550398723780287871234769986542491921605054305651205813746112716706603626143555755994279751265832598801905747741392053467278608521158981091272056464948681558640899079042099950686325540235551974812105762778433591891078743703918407831299008808067696674102465687690702141844936106940352599629628845199682567629109350742785592231152399997929060111556734676923539374401631028528182936782264136049195372803185572596747554643374856471233663149958832325628988083457021121591626629373604711639531426665757574588508912105851411740061993654784882704758466406748569521560027275535740675115943771571563207711310372704306060858651358024380071804985431543586904414912016429973151339138014703687768150972749483895408787210188180274284470031892322451781304534369913067985093941943781432524438979614977627370550021553927700300295602137459196956303182614222448687063806208689635731977378752696360732753450948743114870134345863722639897836382675589598646492385797186772542936482966216313859171773299147895519768757910944556149396867982330235192428847485712806633176206768534898997072102668261046046840892617531584015602505464292039003720310761383856238918931501472835159134626747106812285550230155707386953366521322183146360823405817108363841974862255466793106076276626843263505385285211344234761262775973819199851366238973678694598778248317615000385084197613154574447487171189537000456639100792070459797062216488463554149896179310125858336395714029890569824499824473376691311380487622691407400985366522189235325353531268924083853088684670072615482701882631718595629742848412541281009139567978802071228800802915116030941080059595328098699570473961290831635414771870043601874676458265190363029825737032634107836710824706818752483978481477050131626102762671115503637884302258150870456540097392308724769027726019165678380961772489719373742758414980153310203602981680879837883691576498390628614060041757494427981209328809980315001470405568281015177371095046722051727945161881498389742089712301538474311744638686869603185475674705057286687952101854037932673315394829358030614302978038724636259463330648564934789781555842785425779547775669351788188295735140016326051895875049560062920984131914852724145355587777641424273280119202383270087806576496146151096406799913328748324182396981992758472659944318048640761618627738257169176184346248740802585718603615192887121154001272995669428632220981232060023378352158256175649112001268588706291403227554814558504617909098551649241121853636811519733803539976889973536323313371392140338835744862889918405045633488031856820797163333926316659025804185923580307798196206504377590668824785366547258487264210713849469115930172936096796034213107616766709712113927705293092354420210000346992215263477245008791197775643996868059788719987317475339650072542222226337257422438871769099571800510422989800199555687626597472808082002837074817476183250337155444618102606879193595533446736938494901908500830304081399999274323702608335974236442096146611996168182154887066283302669042083550019404178533973108119158755324758807281311558140728349818676635806530174756667760025388374019322925364918322714674672327880509674987814914032155991690444223492683241967128017819354403970921349850406699421043795373484080492592430698637137759191498353524514252009304287856552042377569214756581677893016469811166652429761479019406370720383270500457052791236788005161237353608601417600343783311597252311477088644668170433426031741118275183352001302124573821169869279086935002218917330859173302681001429830970605388852407029283851350791225978471289427109200297894535044592421455083756489771765394666658580704472122555633648328037758428840675311537321431325126700037877698957074938949285918434350640521743524098322028505441670201456429728046146255460362953026003778210825791854645621489412149796934851671954353470592536183707716691298392351056449072320706407036732652183509734854485996343865178330827078431541189764829058833949295005082907968891061722537474207514498897796822168930426579242079209731649693145257265852070666427775845397639774397684119401125818128487762642434690896914750334585630522938645994747083140920258101087386233856869047108123466948298740737528354084502921968967959197545002280420902034304935565147682874503081664299295171355470481468988101394055238428804012098182785473383692700889098458803417418943674726664745801878952488251977523475796938360832631032388316913805597080004753654291722397864308513689419897702854376728012316694095698979696956925098771670598679826250279774338149010561735945232327477641696059904968797167915687230301015922156517718339386720656802097649239159036552390413057933924027726054628120813861233496826344500964877496769054032411836659681556636967982300136096046559987756942826942648287913593269964051018198323638036713589903560916968458346687348215522500337574739560671239915824357756255551837614763940781533729942561158199754033156650978932510413797745188859614469915105234355718679086045555991869246539403084763556605981498378330774966474297285910833324631772607742070148575659696856758995815761267999334671209814267824847734029317723071960832750828829430599319979393720514379879440105509295180106116804568270153932683543642412169211035000701481818489457175838332215456745210175550511467513381256089618137111150566333080626972900336554557930865214248230459879778022076666990231144232181405896675350641505611900162827554646658536220782669329603090901598099865575225823378314649698341764462821532586871127848235031361541440132857490874362804545072185522581528828245790291588629911758632373108429742134562155512523783677321985540459851845874309677277214990096226297108966710864794972158733720037886532052087918829692415696080404248547567046049143097938876264018844404140892775057047266728584840400798058954313517490498931909754190585040019110106403962265197765385575912281172608450779260387704974285231261208673862413152600854696074036517040195790144942525004473166899554872764259397035477285685776257841695754603361027808173984071226828697266432358351919065505639796854882751715191173473443321681593285666035677189869750291101913328914131788627928235121823051758679987561298280310126115098574892606090891992384335744156273894634570791415513299590603008679884150171312968032099002905737031400040337104978697076340773716539086641436562086994749654094055315109089146953417002695194796983955428701007978110768067387181615425243296719882777488776519937714749617572700434128306744823547322892225844912812292146168268372077183163073097719642419293454889699225617625453125141249059742122369409320223713905369898205319699459410014626707871017921908388398721051260586370602944544749984123089632249155173497103941964048845477199802804697895990203110736654148199510362607927425959740784662087095308592075033691632289425874651081110625831957141297302797702906937312621577085317549381619312389692200678932470848049715458839566327471321444051561855052629597547139126787823211301314264258192557055429893426958289376405832119346778730052040913888929379228431104231774685646061344159396433314966008481322806511619517321599685736030995547088088883391844090035042272109959570300318674284914007573580257674239900824532458772741349477652572215366129975647707679652362486488650053294276438058655102490373406419309230351611156210363634795670299554761772830372489325395496253829743515256445845041126464270087422141229411063443950164932666268567084504200160271802180546518482439957050359659777464072701981266178357778799590164490078246402822867944757852673512270366897445759064151878489335517959319435350922766418811144640921961746344141329741210062250238557390752273943158960684411351213720412271570254846032138812501591299959652964841468025114563619525631334227108651026802848945937258123883327220359958104010616955811259341856979900918588277489722925449545632841160981789982492838648564455934669994274504529854166094919282588495379578990834044545858782686918530684175277919310873877984063442175196379377857187567061111184902657607359476834263132982510774600078041863138353022539942058423352615508123080828705034890836027127970924591861439512193766478637810355206853529832369410498265888558636596400304523338910689406195498576600823582156383508046459878591926495244687568834658556570066036532201755616266945014910750932158642435277892513354585522534516955590725641041490518647079173528835255043953382919217791041179152881195642075383003828760843713920622189942755784953631675996447184805915903420268540843401695819608074143966788042138534935372379818349571011870037156378150519058411449354163625610690495793926983474142758837119795093140630085344848758828058822396751387937296005237444649872280178629708117160109811001634960288645554113335792054048354576812444443789485404395554177056517391851875392878643748098945968046700441907315148674311423233558299346069972037273594786954290996233123319996797317571521884279493933537239249832886436203683195102685460041219015086046329336043652827665370579214115049820107701871121186377632317622415946146689063895475692931991132613136510620215717709771070465562382627188029510888214748308016977520689280980101684600841300439184752416692802065432806368144989968640182631319051899333810058213778912013484470154959456141929205856043873415292533220688352669007915847812714272999981481811862085292114097052227808074256425121686111078311985837601103953564164203990645650962460828755496074251981219741461662382627338910184561535730350526114609246907048436108757848989186727659842943697656376011236927787583637726253597617451920875761479055018125450793489284037871542075828363714813969320630105134201579498818054156088110354839377398380445305996601326164209722000766486967758468661738313293132069460509192220681551145466053299117148201282366600711461585789553589034897879038841411923001113609130906846386501557938524951246427638704698350382928931701298585936608768368723142670087504503787930732965588225399489429287899578513866806310136905326159181713672427712970376327418681885825390447921434373703182674230669457378225037089505020902486824086442517285338588800449724644829668574386870856624397976351611723081305581327923426435903031917555977031005368467411107954075656816309573573438587880547364126917235446610979150295878595393123853342339496314631681443360081816813109309589240772668864097522335151475016189758530678236711026206216450609027463272938154420854189536362563623344317911167185749383576108045314771767975425585918399519405973710664708185311561388006472107708771353004560676237274244900625660936518503483940837655643696327959138594262088577624986037864575987952397496071879903271694500230350891308248562129118850672031105706294989188256504125541846861500453916504067071163269578948446213916109955594453545401679293914466892406308719997937537670976866095474076396869271596095696429213532741269456449446996994501689967266994670620379246653856360921456097499290293708760000837855157458789909027963225282081478262973979343246575317518736507821615683114209469337463901309856461705012563626858556927155903333054757017322999846079220628704511491897784948353173344384520792691057637472911051130013598297844733990028377999007449160186454078318403034728452867184732282193275230805702841973371638100266405820147344710677837671741463939222545226895258546038847032827460870245727993858733737511550010597573743036228226171438198185167431368419469551600290790028501225331064429661256582299868535412309911380635065297020835568835518029265646753537027769925165951927510418800516411860548123602372357550777468874179263367026597199844124296655578695874986795630989046481936884212489515035806358259912282780671649391626539913009951129206657538500104173536128041901427195555461264028075308368122953714107168883500065930426750582359468567543770722461661282876593203303305151161465857650211223908850533533604000508083115561708850609690603646176960525528122205475671469411277662368567140211929014596997165399878267620740756990807363942408242064876232380564915067889527649830529112464195270910537417234512193473787489362586235433927660950855683348234451926992627408912903321457297265044190448560676787035226595630843084176178819864737300868164020458107402857884618964845494518082015640456290073154971407213425627309883068593556044831070925525238517833832813228374822685950506487106259170821014836299416982071287546168324106962780787099264361340244245230657338552479398478668760901075572737191887626464417376780693476740125056721479539212900754314118172639200958357144045195323724940039776629652928894201353986866850122017598791758240286799579231919640384037044115237551702789576351642721051514072272019344230300955766588623659944332529571504540029366152443583760031079156703851641256716119059816377858893027600119222020431884497535874151013335631751700527239962424481787102814791567019323615833288010580680544110971013119246138058485645887019633139113825701604862716820809727162430595422655066945951285345064698654089111867516206396479013760442298021789131111046059427653205972974415975686943162216637968836106662221668326816473611548979853015864232048152193967602640607114899250214961697474810435923778223631422513940843015520519444529235860436385877653776947784319340720117106503694016164049607099752072457651608102226643518431069326863719262463402450087919421426352326790659520840666239993332449615184947846694849291510694931816311201211161987263943073988764933262423794166659363989646404496146574159458717409910317251901258671288217674579957304606589817890556061333773539935621805564241190398694624853486369686123935460288864533316891201638398100057758085260495327788783486582567533456536074393435901640656540662472602086601217828725353839032475996214348134462255567894244903246171420170659887779443080203875941349843697624743095514423309865194331382871498999023389982076712279762147428990041410974611584489425608271488270707222358237441102082406688293915747701443684519147437293354652822617404930978523260624936705647717082920201034349764614187941960338686271867811582710703191579955269494882409094229363107859347924621282406052293969587083833669142944260136209513310136868136323447144542858830938821822535184753692551100884294100624426345980243905337983744598643028416208961231047112783444698905802333986377592884295537725946206724471792919587582478358720187923002911261612147717429285337618093386722849109204788967191346101861014269966024240315395126020006117321003539609887175495408245248939750370942671788657289884540386693250490155630241299733792343935992457289881962514584005116102296348131745325350044845089228194850624838017820345907174206453144763780876436830488202563762157892357999705093920076356327888547868863857196397800725803240704460985185159612549796545407161977775868419812623188518460953360747873436659022902766162643173884110466867248247623776886557553616280355501986271900377960094484505817669101760146605483987714779136252209450904472289530964901379909615920959006927495631563930330195349538183503014126259518158068206840894245074557821636922218197849840575747853396340834215124752988815683876793542283341706027910651561880645627370190080361398913677928223401610113207680777807616949387016960308650062988785029452983269487213269156609944476325752524551409001910858695756946679765598239952331115838399179005035129999678139580263989149534274338238541715526905335563639959419492489229279884359213518174797813000242057280633145560571429356495634681814033608501741581233794821467384511298172119027216971566840404945956379173828355691499248711507681083485879821152503497847806870243210158241953880147439826894129272510165039339064603180957663442522400519563423509361901649566313106225981964194861143983756081263685135825952849435465952756084058911434540612740600085818958742252495405739621092339267646355293818003055921395106402372638302221942520477501082555509828429608173265598199354702827221656060527667012909532931310283061474893544966704404790185443422224281548885871960820550749295273668858124785553222189062952044952530121068489251943530694751762977209166940102316778532953212306237876804306698398659079024701009854321669279923191859054814479936311092731787367313467663404303992605467518919866543648895148404802686418057066566750355792444964915893770269572365618373140358945006674083579655856250676644595720086324088639021760601416929646228521913488053706445176829412017455893927632402138558657906634779540505544801258075641431750873081172712110556729747534204200831440976955939520777952120169319409251445407350775838022567604358635712938524224850292861457365048320352122168780819221520544820268122626958504266330663941955805520571484138165477348585935826092023559270898421063169003302702172944601154608184741748850498057088249950817967740848412026978244844457225446232307202556557223205607936694506296947999527497183935927792651965276676182924469400692956408672866139629072635892244421822477042174183937916473811177201422791578084140446042644854977426400814281938268634171060466164249264792498342664941955309038544217575656660228074190216845406685779484657275148326923930877531056565670053804990031533223470256865428785212825953334665354718761345897024711484190460853569482683226228513572679508050448329285602958463829721381969015386507928297982299047986900155536236925425417816170957828134602663998953711936741939431590774483437824212731498845038896783068123230195990995062634639043812056511117341669667653506518618286464022768100747232095764758152638860915314938987484475764355608261175632933605525297021498654069882345628361112602880026348236090084845702902074020941411922582967896146671705063413217678726041694948561275502511785399399118285207887483600867654992958502351403870300505097893132190271007400470945948488805521359941268122831689926585444226302053611046480105096998819269260578394467991734533347855148731784680731070295751454123766058660618046579553307777705478259784309943128243568145957472419834183037541618268089539947358599907051807395977838991054644779306815317787703250784318798092858439104264750166470177946488953355125154029449577420922732596291708108254651219447846329209923865373062415225256455381017660766298728583809695812872490133987382510132518532075993554867676996066789204683543505519690899644485445083885264577198504224948442909557166241882381477920809362890401156745793455262720786566273699516972229204878096902881328582018442019108937792441825749012744273310126908862767765182380563778773542801605870509942628600690709372786847809772494129161468456092667186718696789769773696372581161881087566367312000381001649411126797911990042322699385942122359242712881260552466696803816876463705315307996171657338023983951194621213990857072178200795849297988172071626880858065600923399309971088581713242553407167520722645486942042197697866663836504319551577010293732389255626975241721802523095719690041137255925504799857091523935079634867484321620411141711920157534207724312647136509384623402477817229052364096240348565901392964646254266246034481287975480562232638718756848806575511265822237228646001822458259800459574441660578793532106084474671387897567079238528594777638319563126034022856345223008037648722780539144486686189668478849422649952220470573298161517370641830430683505631098407127421704494745792715997080525862496722569504673643464367190336417137710665775066002889152579857674091847757995063685665741120492813398665937197539248434585919240145752119562445962263482391400924786555187727023919534442963525994751636335855979633404798661352083228121291076085127944432106447766171470824107679950610195258442634670500599746850558843680703943719040776278617478162003417163067102785253688584103714353112681887262933599232839581644987001341112517911545933137473594386671969607533131381539159656430478044715292051148962944090457360661096665810800711397696257364090905443695889806145823924462516803202105539896634145551190214268476218695297064717084968861928111279228376236853226305288122546031739977752521277590008370733340965629250238918124904808374994253438209480315584387435561116315839108864619304063677375040673481196107688398572584085639758566998431012035149861304536298482778101665977619440675580191922540313407213261938146849107504796019800926126730583953362303969754009075074765140548498300482168561144381078602647587083758331271887514044843916222454384576352683920913272173727263463761699078109465599343072774583173573135824926816293099554350947007302726994764976861903803326708543903580964646002832688254613169725335480825412355311319246537213004984399800860446290247539670040221202875485549008451831958238830994345210391231399966388954278369941330768768525686008297209314553785884839761410325612927110925943739789367925564690389323578366672225973380862622185984344610715469257456473849819666561220532191698370926713105950328083127504259095280041284861776939500852761576079533519263459766275157828165403176751799539766606289743968237465148185556321443806814815318059853736522838494539233205984855940548468416875392743064610329959131279473399458441793645476011925722888448848171194262338956152007010707390504492104190133737567342564302845482389339329043586667360918389066017217124131928322083193310280501901441357196735542306193830286741209143626410680325345105131007549382121866316419100858706936600292094390199541917945121277030157267387291454000810834292550519881255722362780675495513652974105418947207023996580319020431892508760569121184529364469366955768982673600334052513899354519701642490984943344813770609026946629613819278340992442241276131685898926862124133880423432876365410089317567240058380187640381234597269839606154631044024900480110151366178995419721162462957178242708556693480381762728630556343857732162610060358776090641145317930640139269387372408889120385082108576469654393381592484754297792057852503122595739558544347102120370898383613984642308387684273240412712284402311313586497675087646947707319588989214537269975401850524802246282969293281830855382778060077788473425803581773033602370540892012197508318663914712730427116972133631214148410978045261861987661293026405590291936000051696983222896630476024293472232444062155937850808024382433058894086567464251651165243502217969908165824154650956725401135075345333667104955555029476599849875598061740616364677948538866184280338045894933368502551230808265881716519903702279833158499290873170327561811828710634285742343448064879095669678081821771609534711990341684194899478457306919812909158954333777931247068871718223435825409310079856073169552561706047672960310923901969596889866237224581219188530571839199244964126660113984011572704297812841630647946340874313345346836366495565839974721907631193008312988682322624641537644383381807853768893725361816191084754772956660175642536189233370978167297563765961365577552708472875205948867681076775525141810631091671569775216297278594373492596315174704194337455300360158945115670389075705456746248685941549371296506049476852706212115995606361095634942937750308661453660376873186559746307745512844627056580085738298688469194124193365922952262591272746331068406186382063324633123649078556459252683656419302684132221991501281216940485515361761504071281310258364466169167191933904884151843535582339331370977768568651696693647793800366059629577345065769515049783587651936135320440343672553052169782237879633068372108455951655297543661484785660663195162265701444656443094972541596949375574539221459769388813416628581528941158470956563735570716450970145798269590445064706932200778164897468601597050338952632930063853341648890797436320710183451670292490603319671826505655952880156274383220988687859651010240292414914737285710957846058724968095049734333546952505804587786428264019065002815858019555843626243323664581098117641606304954663221976698232100465605889362125501601881817095575694882440439678325791948197549342904684716388270730531067451062618442562454130309372812725574346794087012354504989606816817885960709590065936385325767551723075844273552787199612139499243847801696005441621550547798174319789885679360677531432997302949818440497317146476603319216805448100357999008595946299274128593447712144814396115167637589903937731017257439772454113633672947927931550045985142765229768014234588157513087176661143186337788707739500841765479110414400717365803646550489674343785767346049899025823029284315520137825695364696960762732466169532117604171058029956048520738374574607818917806703329754764588009757220572345811860238694674521284857869194832532906350400429813095950682929108407864312227504209053251348080959337094802066162747294221023684522843004019475321957629371789578547941406843479524036560319904858990988205238996324518644339964237166106641016130031969040534379271178789069196481690931981542165015810773610556168050216729976086135850894703127248180809415822064339120271773758505675019795137943955871048320148624365536397681932848973426965883554442065993021148948518013591381857518557784172502418963154562729871596780581684135732417437650981514879200551079612730690074075464508177629171085620566882643757587224140703891985627126319619408703565110010159410058045588487462321810396506416175928673474991255310455799258369653023451390562971965813654498971153400996868202826418233491884892146431340804570997350816793117836474372662872604275607860508809380662681952933574433915708660728689502408683108680891551973730875404246883816557725988478548960850079709449254205853812845913882458971127173916681539719670971699349076951150975365556324749714613324985147894705198581709741834608914987747840045502704367822857863629586680563531436177866478692711844534397562709873571521571612781114814211901273326720884388288789143608703441863140632185657454910692070058745439035764888217738933684232926761192025719870782067371996136545297942980614025592558794805042935871460168311569758131493047260837363328802627046066228733103958565958047778019201648167435188027011646615821566865067447868472748166475060009362014716346563681979461553117049539740899099948681620307259464153741156544898284902209275131344740645038091838536892193604476454663902570512062203430884947934666823412915864877554989350491832618471538002395380631335253781140456477532243410317567249589520394804372869829007803896132686218278424034782647416231448092870153809409576798163673922832317618549610262645525688628529986503747316121599344240958737528132237740628112167882663504209059452869076570033105031932025961891182487835548120780844545619239707151089415404943406156496206071529634798173497095795349819199241431656440927326366031064087631432214305493504755187882811280540051645283298274190484829569237020535725381881350695334461388613738278382881079815572970331627853015483731557412184123831163679283734412301116890905910111442271832489112298427804029968830922342424463705674580734658640857864966094646284355515182115877949065266098696794268669344144488618887614101872768780370519152345120739690723979853518929735024900779154249365273469739228789699466031430646162235042682424370452470501808846380093732748982522933147331739140625574386056440525512657470770535438575225432891950071140962581495944804588904408898426306942783039704633294913391291721792440437019512607437147042395339367899029916354925071514666195853552646707872552825378156734073168009277616200595707569751896818072472816912846770516023938720133628360859037813496889999316021357087465965238942873016348982949106301523625507673573837018553479831699329577031674707521940403917267951073068375849443623965236294688147659891236037983963318755735737566963769686302617603072474595805875372649855247865779419522330548406327095119506493194019198810939023968011995214881223281158755827857479044033672598487677085538236054411885084788143808298140293761768514575437979850513408510731778395025526082207478022723365126071478402115946826611551078348251537643011817373493234675751206876498026802276218467865155230001621819326393211584676070331627484268044288667849573824038417153770932034151122653605899350135509874526831732230022756304991724095999357253543761722549631838709428931840815409264057163612706407829285517250095902988439922694089347835754027947436484226371073725363026116520019569547688533398105195728735360063671790334837347367896308439027526938217274013710780787921113368463793577285502380335914630685782601574790703205130477305717269434447541549251075410333948670740825807087866529266921867299271498515696573919023493377301387731782798126055556616168533573810465051933959541137523205759242076400854582559590908969958838638040704876202242211881040182592146970487325698989004057898596365131804211802735351468981916018686152065298417899918733070291323037487345249315989482671079746494577585843601951592211092682336949149698136244175960598881483496133971024514453021149283973288884389197938327335686783025167827427600998504751368253346748063145442170571472091557515439959202532643084193447577698508775182425669249682268959901036683685932146097686105429229961458094931007399054491839739331347299229470241241655674109959710009711006694638317024799883950405734194945254553684510520944851125928243136394722325694404590037688260705248988427001743097056921838046914828123956358196960123328714693587732966846323312774032343742843063255475516444009629889234241545400149090488066295174402016875819826570655094820286163028491313771883425712162862473087308639002735323705101759556311122818777902399720298322422555732710150411867789507433039986120661066187347921774702202538866866866849426466206799628556883723750044780706746030673498993102373555126341532749334563252342651201321955779905379727914373078867384965182804735151894815411823844176031645034104177471199540488949243056640508867574333658671276371589142342363169228911045677638749703751442474786655716816836986869157036600332659402248676198930194268012187897094714152224918199791554540916034273695448082958274124289757429893481455099328171134860589525757110810385170108337793496654698067177718730511237650107040154148812997000363013156199631403861773314665079227506954214139616229227180161634975528698538009121727341643783463559144892017891275519205404401383429328089820832384410205712466761696348075460155861173801257411318934417994248966303960012378748994862880133710241566690904618211144758392919998431015127895963608357183647109176167598522880168761553877638961480723178214547925526510104339297491335610608936377107907313131964353566238916218382506583597951232963779907935511137318004031876101369409686159645546312094145478796462030968329631736284169122244895044381692530330637829970895310817651829104556246137351584601920593865655472979014842825859586801558829996500297528519504146561595016066376052954600045171144082064513726066636917967769309366342628791853890400866080637216580944504302429160041768472237047401480879984502901823276001669119053043760440945481914987552194956157765366349838408718407361548854671665878531297101822100914386128471467184274584863885958385875543208559104041660376583620484185986782309601887694344515744824490745703235406928123939533154077901144278089794291546274982393801400499465002164490212286548342090168089900891016362501947580717605800045304155126544279760116175963829914209746049438585241817666627530559169751057450099401064231999736088810058825126715347241509155172945343118664230532684163801099539803021609851075863840103760912913038442829652043693828049889913294334880663010464135707579511930184831797044537677623911897773331415237688517764763154457264780489914711557302048446274216625133811322702861370515766069536297233141950912383073487091559754519955653407274904301301822218714339646739574773993476163131099825313046272661347953115338180831192937079004880388847472163723825962134942737913804638512479390574283639913524382487328152174601606328492104265790187245071045696521479578356012481492562887780147627085315160667163996621227454925938335106897052495486574203473605430696247617188470886732789090153306959343761975554897264618103299739738774828287788308334467634221505995849106538282746329644221508674766676223037595284021433196340634668769866734996994181868187236489222960868498769229936116162232535599181272295876040585400428341753032900807431390739892573350008858191960142429647267845417820683480168408145893070062016343937572784900413553516413042922638433772000437845918588141936285512850018509623875241391504845396174546321045580784323026063591426265568315225193469734257080244478312311273345584171504946718118938883133055724565056732512917533402402961965419402722717732998469816045677680461468121003354410618602120967491489391158175957763188299304088788945437007773940727727877275790059482108677130476496963501966992998329163261793771526730923371720123022436904337486365545592876889478181635558798453060252547627348133572636109960480910640066361713076193679497261704684447826071353723518160889182317641587263822918110216534117872762247702123558050048277682843890306084477624641279024687385458110484643297308407501605386825370697968236479007970415796811234258605724435694291473185947591945802200374680930758928907138936555022448777725123712180801013123013643318297548211048123521205903914196409024187485807905077788713638711404917962463461589428219038042149863610458197891059505318114935302446735857401498813690925169270739768506370877358331755612542692458882089587955443262706740194514745673208146648583927349533934500962632582646733095243072602813319408511042902812723055069384513995053970065029761782665374215523962606190616817334212421428296712654827553888268815621261519625802593399709065980838025460092235030930908161080715696686065007251532266100180775712355302532625990862287492281421429375052976294592793565626200424927082633512399999240322766144518937021287920237053509592066055870226329423793416106804691494065417562127094962854979275447458384108851544572956574967656108030697698834249140892489926920410412550276838010205616929211815345426608767837726164419315400726127104473820482118515679820513394128429153155647457260596464156224100174121766540870296316602410183504845226225393069054198298510241095691568298273357677105419890169188748788160020189121420247552236778809720974934343714605882699426760577753132284939919696913152661843656209709531718760969792588207059674600923203378617939045315463442052072941033826123249618585859704402492922070153738923754200268105181264554480945100519509042038506293641114152974284812893837542267342667868761876838262842087121499401926349467642998688852404446049051720265479694091826385979336210828611271893820109912351829742807871398672086462912677516005802958030076455980910832798675226371898021277057000393302332009761622293772499290880318886619055422148440801793082582457540010387099555681348023157612405024260190986443162845974967297601847576983077896174112851731099750091405466654366971044565346180391155594144537653196064544814326412894359011566994593267551770736247874457944671874299972627826765726519750909584057342262876920820885304155612265768358679399426960846652204444314974620893255788228918322862220512412349443027866669575224920708322559649689252838625568619525263940701607914333516420470057256904668275360821525911085603996791653758944318581924802806847525008376867118725855471690041071051190129226944417647404190459597516192845863671960208533044961376216351762750212218752991994934625341891894763040084356315794078723206558775670562065889555325830405341738280207014202466113895151606414456105695457226773414060216108211338351821001155451959571945304787402014573083699400328924852949909031336451156253227138466356887047271888587224546504491738459599727497025106372267242728002935484082682515936399422617566960919823418065541185111671760149881625256089298097247515999882510974629448265561242114749906212355984694657359975970723408503967286636362581524021884555477553078137696744052291705446087798408686350695584277159723080967079344451509941209132289000825429519342128105226417334583484739803053541970288849625602640460628020583600449618733143992974585802890386772064055554896992972149145058641147731772448103457440730590258379001320055820618987867337768125950981022141778149996499092154145671656092656540153094317339958214241017655349993600853729534486031613185981910938611239055627105388522374065531646399635713458432886008159796198193285894019141255727838317153648541640370622763013591592565803625979825508044839841308099106383172227729934035192709177341849127764336755623071327578157950794905136451590030776048771918369350252421165524149738058793747131997376475348164516766885829868398660855815451079987348209957095717761437299748126409935336984813990811931090459596978451685577408194793516294096886530242314748869827660235797806721941421142102979745287138200369130930409426264352313483803720581333324322464423033282671888680854274310977321270418982634907249331525628147911485960657489866922346831833044742063283313100559576225313880003596501089641322830219101461740253547895126866872302264216241066952375958134331091668125580338121326224348397202445658242673587780328248685586544212269176737055271204447183502565648382865795213977326633872333670392533254128840707931020625961150898226720698277450762161356133933004807647402264620970987343385208406740636407099682999922751356834339247272386370090690200810198667754323792820297496947560402759698100796091538301754293712072217493338566585556247004801330141340108490440122894282928878967747997172735328899346699622161814913708659773019466934869219136835751633800753618522805193887094788714378101342588182425983997692189623194717009361605875500281525309338476080573691386200681187208779708391348853005097461295767865972116227404724362193165112344720452555626493389838218948245931088894539149523869442106067173006750327106318123742656349522162367409459713706055257987528738520228109358363690961233862212644833986913859709801515635465249720220156755942560499024409749912551567257647160497691131657877556754848412782748085685952540674647356531176181371061822817001446391383944953648253559584923614458801442850830492416256040278917524230001212209553728153178767716349949920969894579737330673103365524265939287280535105834270575703117421983356339421817640200336120336729235110268965065943144925494276351406236713390329140348708608547259954368312683795321802243250410888286852983251817846817833906225936977429570450145718575844524477591446728104410522347739411270655330212973791909108585054442346985924165939802039580540117887823810031796047866097974139152681842005610991335702201966711675304667927395427433798546896160366029510272537558869764493552477945672749728601704556231503560514818205532682741012685836299560840465034820661772841889690700684263285726651972961490691755046642752354107360569462128089321894597814528438014822344982602279735149524483642941028739411385985415341550640153197622701113796118295288085179383588527196940347044927811957812089935220302595252336926653575021485623308066571598250776427584056817034582250769941619416810495860783867992345453126629476313170561455329132610353616259238953779144743202442945429458892029641320164880714928419180495203128956667844396430104526571054236136431040709362680236000656510698571133604673601938826458250362148538799620387161179958669801486708208086476549437567306706367287554327976379013625517782042464828880293917585315342169682072651477475725225880007366070378858827769893120471085026775435233984155342363794252333415014923086518529194736810163291575932835926326058393213532156329968910548575406362119027581291077765740693556309408263373901340132424804450705676503204948591206659797613178883593192551312979720512332310313985611249036932685196795664007107127216895180880477916701135759954619176488522056639981875181069934392043588381904385407068937480751223622077689360297950467092770283759944773635752358218660313389017285795007937423683714362074975784792448675261319632499424532374534351929431526444628939514983715456069439998890355527237809048672073280222845511275903834514503556980798465109549942913996394687532450961185100212792817570901175960686742753559200762207582296950930783063853191198391066995669218805069235185146072306034456933980911646053419036977229743171737821722539240666577941847098512079858974293865391137792514999272891163584191002292207395179185700044656725226163884699711475722109866766158489752572027900301243834812321008907835352254961079102687943771554766219016756665972876404802275969028933596168495629202097933614122088683247551639232511765110980394131999582257313569820648009974505208634536490856058096399254270018086966678952815074146356232902756376334173339489834252337878859369032732204030844341241309985131688668527801616599167053735829140962199555357066858291287942207367067388295042267705172510454313188974612267264783841469852758093758356895223962158518928635971333488153338371993420089080241265451164559989733119704830414081364413600835176011314757961811855486320020881971390904225590106369668716024245391881951244585202657327716596872686961488620084179916760455331909528376753153211368311405858392753961166840794474433471247610171406397293165515747839666493983074644279132936985499284889535102254297718273911462387212016661570725877736447157139597558497423926845996672474279587113428700822277006060185844484319800957829012815164195169053799497541700653271342713746111258216904843378175755078088015337186510103630307586276909638975115364243244481144361625102962835213822569150476936029605815191644295845227831828083830283763499405387269529249720758919843249722438328690204583061555319496834788842286039288967922412804818649452843467439874422701268789183595302994213686786025223371587986887243186276221028244428315340749668705766589393903915752840527058714152515242525766332622453627972688834363423655285642639571053613522884436756060787388307731927352471330467285524384475328698336361252316511540323445087220172863443010390838047371113472845585863849493100987676276761508380393821202442509944993146880350490971716539173826419678238482433645994464406546873109913311366568841730385891858059766244508827023496789462742981461017249749136085987425731879632675899508074587177661824681043621573622262779823638521559967722499237725772186657422261508889064856763864131922480406612574816694497361953992934438325358291717891656441610792417426112686191092706487670042559666430724579903262327431329830024266888518395217491716207293960714311989026855934178347733990206327584955873100747105803721766480277339456091266703398469862555537371218795879714498967500875221625699088964888412651917111969186842231187594833059235840500149682899121395868400904743103647187430392086028941198888643869933490489243738031595331314141083610122248672752245320385378205893502479998054857237921626555953675969458567949523464996946792146553957370463515325163530177837416893898807856171334605116265821474654724960419428735289767391027581980153165842622014113681316952592186856723995779807931181316855976691618373255313768634279072617398911973862506383046274579386590039901997153551385677701638533473155118764169196245966228013489764494354641004591320470903522493518900473335513066295056843367595875460381570499081861200834762984774675972195886226626614383750417535024121975741847176387667425106565053576003141458761559214808590762374144042956602090926650894796152900249600012403871553149796406726222841561586518058781977858569209083817899354305295030341956722831254683374873397590454609404988538529873570703065022543929509479495207504266443163330233099966508913416963773109207277225217601169616731121469430326962798450896950249819780348143700263700602177805696889911280044005201018297233772358271050669470031172548588219809494352879193247778835102744684095843165953170535078733386717363932959724507160809831152973159804643629984253893991065029466573913888119332231923303531496598549019360893968502986389258762870733693938538113389000775070579035060882565070080112377079806170516691380363173605726523879768120136576891109694913858494249393925126568405870175652994685450769142872928514079029963038708317588487302227264746483240446938113199497340817008207411969439218539900267225456566874872451232481761394940803824744067184167562562123811363227056894911564793916720347280139401514994067440176582761971376735190699802430830084378204611800565369719049582011678361246160904789671954263049318711016239928592708680346531199468006913989353350749344605209921652775482038849259520674449737677696369800438034754623564706214337442449350670426117415043068874515444713483704197441237096358671651177246719569726306721792921138735986421174729547526830687225767842114059483537374160879101613725670283623859164082721399945801342540142105165486814942323961704460000320674155382778074978907042316461140293528350709513801443781508222043052341087350600854954154519001834870101881222193676441709607632161567203385877273563652814360502610181986398227506194461034275423982532718633450856541593565398506182773254192338346938260864678892665274029240425774567700070143779935265468374693822813349963497296212417953059663746794890734070294648956633092862066089008347422425704334779828769299296036517613002247170105380994165096241029352003766803856786695743166775106068080805396283726684038033849767910012993844353028842197820566139362291324645844088389685720438378786234701585147075390787145185028628460132099254732073810111584923150604890054807610487170832257027125160974524416369850829414915005162875091173275291050058523316267995252403492814376164190961851836578350979994258596373998164258939811675529081963727794243295512182870636665739784296325632825712452777746591723365388863157784880285761767077973052865770391010799820680771961732350630703951755722039956388462010660964488069093477248402451709083385666174946203261219358208061028026698705073863699480696657240461316049051158842940048875787239609804164240458172935450860725275692681292421196932474383133744519704270036868614925323186932790188096952655713808345798078273665516169656423371255372622154649494902903158712448295034763319194579625167372473863426988309545195611699960392192106336475227272913674072779644329325316727823451030753934618120565188092349709728945568583106722200651884817604169428706286796270275202205692412684062567441628085688886645654734400027759010142468663346912340761858562991698239521820345953247028559040194714095875676024351785385207877994688404088090523664862694813906963777243662906859742621690980730251991044770885998205904513943832129796811706015530256204365311955026788089665254945928883742047258129377006034897503629915448793904839349656150006110894779289262043743546794887073813434252145043829600602446626103068487740463727787984319704113155539257418003749558505704987264811720892724821137457260890474736162199248259187382825120064094152106392665306615323144169423882680308768369329233261199504228040241411624944251258121583151566702700445851736321189968810328267107021212947884230062140258156833907909487623810161114666911664034850218218300018217401723785880427283493942560051774438401722597339193037057605749627538387620620312464213817771351631461472136595168617320296367582531706348805770782936287766535679382346902015500072533047559005182814626439752007580251167000448457172546710680298509350340327572781895888349835171283782907176935999335226345933342851215719689494480923957826991043962336848152507890278574523378765110128315883486613277704812705969918380748317970208077359429680199645929054768180097358307298738471943928806209305581668593608574619206465054267214914562091081181198220846722839087435221624146621123842503708614319999968021585307359422256835176163487427921311330246226911072926601749799454908162072651177727634705487687711248044321559575291964479016895816702824940612668465473338490254325866888061454485033344645456583067843878237043166222827767215928366640568753005768940829600007798052061320837290997784843260923975408307793336462696439638692021100495113548469041172776317587402886058364949929169462564225378993819798103814482227963849660045802361065681377723354198979756958411458975978436401863245010108932712181555843995229377784901483498634299064629152824865167131848764747759269900808917147001276563820393274145770716235662883023221422996361231561564649471763906744989390051584503484492230565611456711809328006219423253751161368772485517468800660699443910454542365795369764679588384145357455279055118080229871919383681866098929515539223961614852663520702880432889516597478809667247788480282651052613460505470225562370805392080239424878943735712715382027802968020882517543234537327581615998208748786465599312021720393937683539272590762801759372879459985290171871576548974968470140917598620140686353458073064843167502378332196112699824304124389971539002151039493641844535133965704951377259347237386931348234767904468541721755967323328034896915538028987462279159920065611648823959520203353690368721232335138292550320193412518228100781751456400874404742919794594639586931022528046076772487740977908774436781759103834540090644133885755668628464691751209075949140782817371198805072541367801170791021324678748057320485136385065885104707004815574331831914243160939940355070455784323192913468892351173370313144271406421490782431305634878841534373350664895326597837548259126162021157009805562795462601987461975079037107967541080473993704030938814963695440308195239265948186636245006886971364158397445027404453882468228860486542494606976441292873987587149631586221465825399628039358908357039117561991605111732457516569816153899798814149185826232373918205438749477027808964635388809211924660150424783807012420747283971904686048742539012828422491188552678458022738839100595393403424048923431853930454034369854662842880628874448758647462550668725282650018014869127003256465762807143358078010084562369447336472621543846428977379427337356173172776246388499415975630977622284949597429093471881475061395204823054279590053275086533722562274681829160002971456628539091020866044124872255104588379312200371754658319531516649693772114114389823469085306844439854394580782860655474288745468507583003767067741679070410934681414573150107310588245734125779533126955916988982549084741666815250488285281750310949171640182138093728562010589292672507423984477114665123355069905836916377937890942029741514898648142383550665924927967551260345624403706380195646573694051562949720964701036954593107355311220428667490746814436918250805163270695260180719556457309766990940849885628311687006776230081194572076119471225387898817594016146188916349649653590374349245530047985377116765302951308436346193596257552471742525742127601395764369570598041003101180580750729093042307081494358185970029444372013131749187788058114618603626478900871959280705369257466481236912811183868293194375472189968410111462889689896576795050068519610538342343127019917858974416532122067909500774171599994358466419221580043713947154149407542946672088725234607574765290655759528342656458068813811117075889550167641849393624288886843901489268948231534705535599272084759785171481443451758127997697560606482710136641685111046702879782269871271499296749682008445290138275421077754511591220305913042858628462342671990014046742098683642746998988727566941739551338143301207596378573026638964795112189215060731309792041673066848239944590568171173329926622132468561866144687688485840202860716097562638804309424704259284764435796695622986709757531278100466111109108877473705164265935289123790449642411690571705067802187890347137480158017822795920350578893555979340130397436521862848133420684589183891996727461253487623499965755563268785565440516706393262601235245784487016338663010850363096038973259146924452018727659301813923517571640561470006361977035499207067698816327492282656055866497335021459455000003091690069951557659947674157598771166610144067337671553933708009214198341317077025352191899773003241248456928721847822001876284761213084533032863756993362989536239971076254564298704097663528747739269809936434378533508603446532550376052319718689471450516878182801839268983363567437394034452428457402325714316467897819869986464355894602398051683778364668865597156593027099290534159657326034128308741431623635697773738156523333232247063373177663438075401530914978863351882011710332445546872206597124480146283660479858856271228258783323990216450424383955374771530769738929377387343543554210405030252373982598769820123491339176482285221881649885126959955648944023394249809570768937411492228751000782852572695154995818394960767233162991551721674023744778859286585109863343837470379995006279299175579694342896042538358425218956248632916720462812784338949022411014134383076438729940384506174440091765208583217160458777307626146848619091373372368698946456823425022818557246621736296058042278196308607407648791687739551692254730629580293770543228610234673828805884614880863874430162607676026703918231765725960298071330918097650969017580234856658875331224887020012040872288358556673106240178749264222004077039115208951784122903635105613006637083335458011237907133642178401009868611050823859934700614059735900732554345925109559845778894940085355519967145784389949866875190152333643012364822257033575992204896488717337471345788292325668999610238140430253058191921324670564347291872419913497247201739838823199173393137978551712556311939559532831673844224428293107678753287986177543321214105482129970437674622788313897927558706120784226207481716962135605281763321534654222097520426189049503965292735949314466454106314454241221894823621322503168164904077664043210494312876355051146853745218462110214947699441788485697454920780932287760245254480671637361981986862675934502703923044510641267325583500539066300513578046605197779761952185212779702069928764058423251258437165238091238193809303596142861201390576709803445798371786829677160965358812151230215006954903783793728132267404142717379289589520589646241281795343858793906331978464770872766739679715081987226417227773944213225974626103889996282765576785746471963873460104772700208438338516153221360704769787818253058664039067031161921789687222545541888188750094084523201815461061999391709341400322587027184782442856230810195965553036337862090958146225047932804040976651474363417002010483176857392174194475288578341474333210614329492666861090619486245209895415931051678096630930126554090370964781972034352557096104808606143838852750927038461128666464065743122696947377298908447216633662267765480634851763970950492796480535693512488331866145699664364924715158036468939895590568717893516335499203594177721826795724780261417442845756693308595707838503914638906107944030485666788990346908434352074626162614903257158594521709787734886270957813788352429774043917604585877569596052985321239035877372440624452068385262808296570131166233090811471273844348135885844264963290196577461075807466229770718001679618168204798778475317095507320410522895687786130344396029315479321660498135628689228404730400361214269614597361893937030354970692797704778521417307487239122800107204234585247867665953805712954711697131129139935654542014483014274572781131650826271729449044973479024614002155394526624780449204145601212105690670349093265434619183381261212203928259702654678652231831271770667556998900068826266555775723943633806702341832867434284245132376436293686796579950966240752179846885254918965865821614099450102236011895638830969351799571324071228864508729374521959360671859002722154422540157599428723325484608898116062157129826211727901101750588966977466149555990653072162880492906973926735943631251001294720924874720981038661909560388542769660048006051653909905603664329205078074495625811004815913050123482412621685317317308675904955263267676473912200984871538058947538551946874038200169591015252129352653512776794286172703455915344482914759962935239683954886363492941115711868025734057650898665183771571744055929869258726884300032975813433430349565259640870580620268703241035107577600349253899194159521742896278145146005584631172824664264352320464988734795239480648143312672136368853317781483612457433131858572319825993191487405640205168216969730235384829838647923425648146040316791742947573055369210835500799995770734462516616327765698237142588376000935582529707689339641339038914353264757405675425310597898558164451772969613465090828395844980312361823753708928123062623609085950521447920445512425656327701724320305086775688137724826307155801341594667623628840085895386535335277411375519278758387281587717698546480186664598765729751971533263900120499588000397164129069846662473515907100288197506047487855314700189219839809411906444703140600116777148343419013060503936074871071974862640598791449988347136677739404419442279606411791606750106982772632858419559546875537633063835249221453066206124346723886013777781958046066807577907375762798728935843599791079983498932026605861151663279078225187196401896485351301798025863647538393096192760183949057652487058253408234393801916281142723500833018611977298879906321592031014021618905640952490244517243322354723089310868192506533133879153088875786583321276012406836905941589698737730584996760001275124764365154956453221559396798110186211693185880666650530949519721011692062560151854023439943182165079311281432108640162974721291638424066381674254443937104196207581536728609901780571818692529922495602937469257814443136376651906241566659950822083209034108040344705714008628076859295254627760179177586616665874068808277256086356792765812016376836450919431662895895946866595874175209261204950628819960349245705282489935350089625171109016317085029205470592093970189610584093689010268907449052916128126510059127084217035112876497854885163095164761686367513973839746028255381335909370599033351432328286691106632363072842766785026597883949252513655491168749573100027029357289354982019510041965597967921305207381229764923833896888421684554520984939109965052344038058963074058136050595221306825575962134312529380845775773462786583459664358341697561633134341329467904096450161080565318880626446542726310810233164627956583178453497752187096767398803760502041915040613648618645829546322924729030870572439738951284106572292717768623617512703240912260551814654541804729834383239119615006126430774222253986321953708097600953455972409526670163267055480822043881407993362168126398974803468523108093809086963496139610201367881137287650026583218423650794730770227383281936028827265819635612519964176139758122341141938598644331604630222573847836686063574919970076096015891936833850602254675362253805480491464828053770536746715472370101990669497600615632197111591498336398049606142999470512152545927444881043494650214877787348203124791172016161982263376194466624057736166309171156153454483596701818908526272706280783965564676557431995240646998430195207266444149616540275523217960687958683312141778285605355680922882784250212842942306014122276800106620198765219523396103941022037451802961202933163541657428510343307008269831349186206154713533744748248370979974849458004657990713973171980183795134668964789985395812885791944156403254195853580491324781064412934470576594861280322656444940296944392040543713829553239553337381207253929363715188037994128807495073201643979589343965762189165833210310226482163779754610491949639874370996764166597393170982585464577478318935219637032810295735602232408255119298146231494849323038800021106339634284709212624808353829865544482796454359786830932045072603899906335408271539447971152135253389864047877157477871370068868170345146887740965762666465910334672502628935285988542287138477222279996796402420153426766636900527228790618240335932893513776521928841196677675679056557695420879702722771432141348172194663470137968094966202466495970084914439199422850211092197619400034262552222524064092792775289631642271539812260866452031892259132556709817993674501327498900407857883300553589992011016634442885003503431052497710844013783880954013324526943908507402576733463272548321248272431601210525230148406545173812904331186455186163516986095219854552167311661002956185476771539331032677241148185044100275698550157429344785005182890558313448246239421439753077832238248220934856608198957168903715532711470830149301935226676009004994468234838900522473914245670023657332025210758289311822283636713840330086061452840773909595009303952527655901628948244888764140701658357967186758582449902725609040028897144732331758727861009995554993509766352903768778945709441874760734529926506344600694587190384594009231729870096267071943165297738953168599517154639214133191001513523745841425971875536432310435904114960238446446693969110429522781968201662474925423867161291156711721876536269412097177980174992066188402836293312584422992590133447834863353805576606604443516545960241373850763410161611775738294886523058185106257607355609269270133511375896538985777242647328970040898217577074671158233100077408861143264186057539978024601277790604569904205867974781778742722373560294744105873172529536915949220440634574923614030524649124019110633010879054166571270215286100708559722771419551017042683124896050020621878085903250003149579000001862805466227898143345249492130324657350299373024385148126163888584551260306539792668194125331618409588723636452043683173391733114304986325237870995742873637481107249546458416139900726353677680759984308934854047178810268162826260696242615250917312880879866719909513374465486019233741582034649047844279060320144454966952892123892591347320056151223008771277735862430202135406213419616642335174673938278466684985300678021821613226972218174550567475254382484554455973678359481788943241092412556236064990978580740369990902583729945810654769678961255500945308851542556937673788481527976260497551822601029416361425477563388564227391522053449898825513429233673999526457921508325345133449428198525159495786458137651539685178991379325486508052812352225460212650742449946127151785627139061169249715376125678723024380599828843420257909799499462822412769454836954526531109291884135363635386761265442524687969689265006237512705362949699150398056081713112623817319476004975669342006653444385363436146154076358759439216620919615121351398473354516648893855073500072049173476502518308474730400445210955151312910624436825594132580785165071514108961043101692666928953356284079167539407751236113698254670881948351428362611529747367475310895468179041731123121770051128886729755282395666143107714052882863862545536767244433268503682988975089994511528084649449307475172389076348791479068838368824965217841587842666746914750290100757603102680242923681850803609584086161119965334995640432689465281393045770117705903727842974163454132803072242252961430909999071645036756167004572774222259922780476052776341597524362933982377200652352993075822173591818036658093654362494862872624202371972541456077123936066300486867002517418036907944398301678858510512101721128409455697639151598603270890390426341160801713684401542024808459484361124764015662311757072102759285313979301851177233429862251719066828948912246088386260823949948322197041560242626634906045639055387414878649341088935023485267254335228772641255889489891444181950068052771345957170257281536703366156156837007440205665476687396519528500314721339569710152403167199372442331522640169341857825164226142998108113179918535867017183418741387042628641097517151717967146657011854243295293907981252005140568577131870326382143459360616130942810867375812421161364724030377230981925843558822528728203238670026329836775075448495358328034008535192138332551233890131626193315733805714508892398557537427416009654086589355624364557928051430823877396097985382057765551190591245851389183687554929896054192254347500286448647172380625801722218251476249987918890073409514848640122936586626107761589995317237567728006974348808221880238646781182018907881851654229272619672695472654847796710744047012958614403586349598389544670745447916102261447686155042946808457469298960422944947022181778880305918758550497348596985475087764287715881881552748762703146837727133926313988962504119736912416382288332642311807302052391954979738642783750832506127721007566005883272917786700209803816865500157811956762159766171468868210843774821845089740809031107221223990068811927916699811213025044623864689497982378736584446200077632664227316376977170462349096943418921627378941862834143909716870555055437407305047614124828612906282487273885005881913048358852524432260136131483303090682262378987671248512548335773885573700229037552056233420806570091506945098315181137001984859047674844965908276783691440982058373995409732855902597167074429684140158129777568324772532796863524865932189953948317847118577316523903525590431658511475175740318063712566197136464746701827126968637039705900344422271357618682104174115443055019913080562445788204174344663948511836235273755497260505390116068830462840579137416572918686773800164515891624926429818812633854067024218678049235133088221569731090666976840455131742816492122338375679543077752314233852544847775753996756288273142996749479103435392046619794107518210806694052129857954311856099296349310685826614136892206034080004644217410157968999238626571412889715514563049298608065413824264267705213266014321972200212279834772126890890473221995815920802652561924886675920720565802706470305456849285778968988200646087609581157791130854998530098517657852384198117540484388146620055439713796215282669456327391018966039996860331162239392262670287346394501839942754314819443962088575303770902701549119593073078783401317126021748231118150259077512755263982048191458244023653901937208182141076476511412749485598995910699900554864606370226199750913456149468698726303427340899207422087091329466583301312970839387238771338169561463097765451808891858056481780819756234742450385353863990682243597865946336358276559489979450992499640915590631995337080857083511091296653635669561855788190303021671540181018916010142038917643840108093449446235774762810088187160328961852877509428592451555436619914626288318323084636278977302527192662037581633468356555910433956404516530049756782937421683307168809607503177065571795275568520506242055634996659381157111031761521151432195134982977077096453224884895005086211337881846790757756556057985625157417146897333338862693291114517063549927009198549439673214906062474062804114405049462109561851042878379637749827230859203425389795093729041839429439389826799617592840559025804884763460807719513102968583921936971194867516857824961942042038660879139120643089067438392740981160500599130825004769081098791988842755384779521286448444025822205786017318014596897322183129683177690742126117414483545430641478149267669758223282000808322953200134102920430061125142959541321265243189974726897534089972971489580474979262592975668318561928430923340434033499518375082710908104027767736528228024465366082533101076084266244925880000009425498088812479212953617802370538120078626457337741132102353941158045455470412004888950431511480895851686044425079041681080765452776536072880069936671507265060467114399059999925217609203763024103565510159489730462244053549647606462355242285153762470073334407719864346617238240987882084973223684939829994473147383884232916376615110758536640198753901426800217109818201472328494917480991655153559266241588809260843799041283541113521964538592265574937402206768102332373994055018004038034338415805105112435522836897495037399470657745021354784858327770146889427366311670954869416818437576213889069711580482592560177124978895700401421012299342895379010601848077853889917298838093303474356346998014417902080925928792441609034810941192120105026408059683394202797732631634669479015298002622969264837591768463019820954148951807115092419128066258431150582944018148561436190913296596708149818806862683616578488770322719468440948926973727615803242028105579046333879959950494661241604423818180177885738135905971346425460280308831195222178080702799051122354316880830598388592525479541691886240522753777062857754894994980537152113274745645891995328388533506179560590477656763455347145709594141108090758766560491890851689416050687404510060267651346482916254239785890149291440859539940728504583666217858915403212495867944846741744328221655905841182422912556007020607009331978167379451170477955556732437301911962604543313896138477831349463209270687986543199525404012196870548122742508333792139606261689351162230400010828075305911436874792224164602009609626376057978608054828820313043514916462372178376010242452244178701478569360432524313631951661987694759805332057934910192832683024090829504915356734238968701366904190086502687252883111373027643784282408535861979489770119725408747064396807333213138648493342977705805324565462199129784686803486010490854174368360858962281011116251468758883413380128766028950197457749461991292900850958023679686500261801154713807709717067774687218509249090398298173626169811011164193698003811216361918996287159608036320803193245186183794657310046646467283155596446010238034338402692713359594323779279919482271336570051896755516654436131513364633192732454492285228927055969474947034445594605332387699670648238648520189120242711121116627757538080359432757489968789766485189460511870894291262209343043192094185077944099874071895551835629288516627646762937073625126652814994325362901361258982116903362934816897729740269554070814263418930029299229723835457591831475687863644738023675817123680103814370965518624834768122048087569020323058152687163569527098460029130149184133260260801859458937431384306314704240216709973216992483706678207357414975507949024989060127299780663277135485328244379042344280044371453353910415133049571094495021566573399019373461006642133597506147709031029144994587077393839490147476880442829107017469774826805066149249255490446299273430761451554112803056925094550986654477228344882784132988046514055100868617322208403646328160907323376734467324908287291139962133680681220658005469324442049269737423202414297950860619955596746696304285890693642472823092108216904418618102623986979943837195725097241309860527582022473700993785245485594524127210368885241142001539549430120526607805141606141387896527899573760784551327556543166641431867680917721645532923178401551646386511667800819223500490094605250435351281404838515992796656408566906498559545349217651071904675195846515277981514333883195820892090218468935984127317486054821317721159119062409789853368793501107088987425570256475422302794263972663400608348108058135867179247023060634252323958077209850933007864355607049920975554585684508868531167925505840847013322939325807535127486289781747126114046121083651348087085058739471917832743434743918064364729849296591248870813073380183712268557789640667763538770682487308480839984331878767368991879612611978237761122266473137843223044835120117298648634877530513864608710447432689889670935648219685988768117219598296808657430622056491768476804756357453104018301689580671386703863757409470445305315947208305168371690877282692562543677864208942292246539314399977067747359285218391600865053687245939118593736144263302827553828188240767302865543922169683299794692090065099065439799336220866938238650247614713061938322492739631120387522263862640909974418667425360613949101063855586265365869180126324993217703259982429257594045254633091038904864296170957039969529602121007227376420524899609016361688700546992207855108761775256423375595027170130111947728391502854754528217600190457981571316239175400545560838877526664146312470187593325573897447411192084579384352956455292884147751934507419599978077000754222942229022361609137162332345125190187734720043583751351811990580306556891748274348442897404723666164376751077976408449545495540423461252936852927136919943315104753803099577116088877084484253672525454053675885430019948635917314255122428695904938559384662157831304226019661578942468327871315109876023462083243091124887796008547015540650104964231383341875786912544479205268400335380135729266746393678706143952585071383523314014478418987760808817351977385567943186569010203052528605844983450302589794324862849565108115725378663400061089569359048408301904840875450310423351469103100079849893330119474296756686139021036010865965165896830715216915117170848553830149315031438554665282652858639978327757211940777756987944472144605215172485467793979414422887080414629461065437567587833480143490155769723328966028315053715867017309807554773418515093626097934355362829109620227109297804283676188254955132167198834612728264864008901904779291946563251948183500460070986175796551646837001644076586499501479537386437973025901575050376120950877248521065037413146137942928029763333253693940858147881059424341887439430923649714878549157792477721245630012473186247387833630708813854757581155371989616810715585844896212936744860703183478310531333812730432371957095464337407985996489497205188244121148288052974442230709637263136980040594915364473062639434526612987826693473490429052214597213291774261107113547560261030005775761471477175460908358703600728698434301851436954362339356307070824470693522760735459777239832656426977683685995283638132247793772107369143055456423465273028128077811644332853671168855178976688189057301458248037717460627749001595334644794071667658396691782622586705052498598672163876783692970166474919050395606357388186362663579643103599820036189827481850898900996549164547251982431681387861699476175943970454338367321268035101527877098197856021203694961599910632477189997564102199127181764703584610079095575582981590716175011196426168525320167447920225056981642351880516669597769093971427848952324449644899700745897427151107874199478725100461771298390865699800081621669877153889195067608568141384850522255573255790988921242787353367482224019276691672543863691964874734119675483389615028403509055089826799546923637956742908973694784195111527357069122277912294534384989882247083016491818060117294521927603673042416879972213938239950301917841263483551150398096647209760110003529896566541363751651114967774476878250147087040861555020551788032406275099640595061627466304490864823516560979384551921524726749328602888621082975996214255728790214987784801096892597054437034464790045852834562272461280177552905473434442118247664070839211557891021282929051096834211287905545149530118142111662711061439042236475822279749685973152943511310629623408824259063572909711253688763671132618085599724864422736448687458253581246193973694445073870419622942489977545877826317382132391770427190142358449930351523314900679279778016009519548022001770630357283773216293679899579953623232095914432525494510801479771200307729427069092426009249319386984058812269592519925426281785543847116987052811437425233571064144419899666395284345304780634448492763954402356789974078274517591700310263711292016569490153732284939015843187235361980960787801667220649130705548595266363515227997203675552681765554176697224843369917872488459487430029493691793318058521063114000517830563221628241955353288290441627007560950113256815496663935136670660825058645625841493361019625208289042185115067214951291092011083250326685915595326476539705468138404987571324204891709274142970657852050114941898214620940879910478750705268564398956278873396084963979578966433339132916825752260222672673072930744259455205969240324105612156252472186601378218295309894231127997827457901203262540686987941763059595449931478988898476348236252086224761411970644472560297297727346587865398151379657609762308673584016183305991982281351413178141520893517763904374272816480839365969325054523051463762011802065739990166862500340927423654576534947702887397611994099411171974357341318709479783000987551686353190868860878885759881591888407747707823078143144910477620519751641466003226581368748410922231705987375631143247808718573069610970421096294690626149238410070797850977901759589036300410298353513348708389643594395548977759909970011975739716395016927195823684424218296084206456746161865272897905815490026875711282941578040222645920573249157236288564667967845751867166001957477660404215304805958482694556785457651217972458368610713147620780198449431649829722640650890325557684147731452807372097457317858496496098350327717486929502913476455622184937939915730633224951494288294564754203345709243709951872184353233932757912453343013351559886498713326231677661553394218773308712079714346428290326511720804340803783829237951571032117079365417949002878549471208975781326555392156049323959473693842191967451609200533155556163759429580975246694988968052446944943451904863037170122828198304870835345545078847252421578216862388407250302056911163056692643240783498601383475460207414073984290566410826674298666927382470285543201376116881774618696128492764751233360024301438682943049822595183495424947118345607815127069904314908882546406907853465190638117379064098908893964604396634199343688456225180967336311004573282171056262499437068893631601202102958269571848142971514121544555966455891046534722679480011740946757001599850670225591430977972677431268892811615732080713068971043961031516590905529457084766298674333084298287394723692971610606861857569001559781750093684093624889111832771296359405327541381678675270655079078942827356017423225477272348588602572835098645571596977658346081463725070860056039584319191749619627635123769749381739354045426144391652172037002901051769602139159365923252645252131399139525425420425647849913519129925945756538806212324837178856178563006258858023392250748734659564580007128626652349678740428999084838740792771647696790562919635293047489744882612038527196732439617326366441497877832359541964276761340005591819913508785824286326271070481240072835643788955871242615739401688411411090599457100336975156374780301134334185992474559778767492845322817689437267218892260200485437330465082901305183801273912019040714588662245734520763665926234946683750907145825495632016974745324417170269520493398275172533878990507737040124331692707234548241776552878796753154795924392456117220653277119564549795386384744275910361777696349933023769810230698956766701231388437565989447237897224667404434967555940660760530074744553917065229896950326493183078465926315027251952964993077369575309649093908095372686384680212934170593288347473647414359456051366871088217925948689372362594346766146098910556344569855521923532550833391429474979335565193472782645287785344579336552979876657453163260995750927494835169678433383116160133255461610095238429465861954302408741398517299012624688716803908498753870876747149828058420892032680367602267035025220371971704872528279106158367497732231627151282954991112379803464325996023398177983139397158468148594449821619571411287660151149380219409976425856716603239806589482478722631765749029717007733117503004396823921134597935069565324019390339092108906405544158966833396278725414155085930178469233698140766522841710382224508263291557139681389627901671220118961700529055539112535475281010197423007714329803401258138685397055438222142300651211879784106394769601096094506527574965285722581296624801935746177761786456865395270096623550095065944965235792426910773665810788617110400695028753114605514855485284502528102427765126594159567062456689067624906651455098128623206998553630036290499727386072411386563962835744366036400621245053472563524945992814817166160634976230552767640856793356365372941240606701458512929417462734424435543753981592895214762352723189530232862882157741388545317056944083746346621847458449946148997955737477951053040802339622818179348807589238149858739911832270521416916271134958024303656752656648211792314201585089420083938743394812800122309743567966556324735044220526316457388485439626342178706057648043716266739688909065842001324838262423828112582366700829187541142623167098437113284564501347311060282332366287960194506154164632754468281982298397676741448034081671181908923264763260631974587212776402861537597345733977533842677616883113793243156715398428768036049247785438143686994248814883537680035247216966513378929246504620472804868800239889526063647483721817996678304796796960802776315589453338924115304116423495442354330851562917217537521101151869226947569247222916123097580633054043701784414928881416908160023821880629808352216462966496341529517192836584376781688327784795202168948289525061712208576093699613535483201803124896934336264089679002694095758549283619874994417445072244989593124441615166539754183837406791484747125074817801518405241399678697394653990144290888008970604966998487874192516215378883969388109727796505460675309748529666970696599683378681613692484114929389977957240117683034841779947559965690344528548551940573852700121234878624370296943215435773529062442324421385892047777517138432590863935487929315596162639763495580637872409922499478037802538840589209001394610196976923167855043327495528174362614546702217698411355579337647572141186350441706419507019224146640830976522376061464230536375241136906322596999415662330079490911406269264042234613393213337424495993166348412940577296185500692365973019547245539357261803228217203858332681671600400621110739724597451684761317586630320258442838267313398025127568743972435622449432688531454593398309334939310996345158208001693325432314151965726033871275790917795853229363719828456245868818655353197264922583203062341893481441768275644235071431005235886961732154739573981022725915981318862503013296642815675989673459122724858174953410768797393167211343822837623029496706908073973918185779999498899943013424629712024168530817057834860613089417600745364272565035828124577168721044593364150111479887933412112184972610376760610661649903255820090177804315428875045480862965361993659628434439839514946481952184825796182818806309471454633840497659634916571008288404013776006630140108147931410669112861275002630006116020819903897305469249563642582785568947991007683408758376729152366704369468294965023460323735922011982380865023577299844663420035150203274283723568333706068606122325020069122421816098677427691498626707601772784744662735436848588471609895420373498812197630258078240667486282037563511415705160299295237777274202437213726837123167647817265328180066310466442294663156978602506635522738799886692746944504883104606098160142684952873368499800671972417449565216727430235986768761098338305677786263473413975960396569716503462486175272013071406968632771788280879909332090531887461121801861517680547482732782250299545236572123481221791169835496098685594899133448178215068445121081907116136295418425539852782318904816936396010226618297548019432917447036655969544997863946623726000440600964571325207049257318085908022796769702243522162721752128707576652293453179969254825273286668445675760797308934331371209574823982948252006282602744208632444311287952095313263393746244500716737079430573745349161186981216828578725762741491076201173071988670667106542773402531291625673541687996666449233858121781497632914785970318991145464625294786577412902296909708817445335769399164219649134363680341303539801882929329330921707451620627491114452184065136994783216873190453579674302864469985049079470966563021074739273361948344482543993706159873797047853608372141330732956084416594034047616374714505161594449123486753890459741201694187234975725965383613701309854721107374698680651793368701919454515180979421038460637959445554757531232419904941910894217401985993825853467005525143408159348069892254789226022137390569362505236887841680802427167826812875645457894148644772860764319303200443786330026963766683939459970023330170751345403973919289640520382279620751671167993981997242137069558246792852089158419929103792823395923911684753169001631286648484529789083322335131439572336748246499498382521058615471770545982747187937095901315206128886331084140809041546247992274210959925750920454046259328502591605679919334213234127577552227345868671378029391758803450369057695136347943196656619040240512090926596286693915955697555207838089294442328024184192482194596224505317973755851298962793301205437134907341461051791621402127333522166697565685589297235174836699753610629002695399887168807053859409993664934262800839695217628308559073811949296181213593442911631126290263182221841769267706130630091331251873156342525656820848346585428193058888863547165253485773494575745044686058253092898834418267005626833796832802340892918552192988611291406405118561169498828143406874757351402478176212819421852090054130193750327478435603208584109006512521344989776185185790737847987207426386101810575489076640838762049687329210507727018399476990917928051690981967895805418790262807180602334015306014083094897477913208426986508719929693919695630179172126276589540508086578830228866764545213723363123020609343025139090095252181239741893637666801381837162235735989163343024458472120088998801736835361277367973936010289073462460015818038404686031153140207374217570134205816281793841738724134780556055279125786372210470758215158210157315016869839707063745798453535610721380529484869796125738302412595273756461875766539142949821678368914372303751251653220844428412969870309902988780729199907231821943452735291816502722255424160932186732677024197581673963303809305464502235486029313657864667324587233214234169383535538653831414237283271563483816432090281825473352455870579219753587790697797994050988411811772451500485810094276013512630286453634484995230330196107861686734423979183613357453984414233670093289271502998765879556225796713296264323743238601888086132903933391505232942865336666937849479642732632038467190655414939491242139813551739258029390408429431459801500762629146412561413371888814732743957851469319755130550011306366176562974732189843840431378908631331413053454061336582031644284501118585259923959763240962844660360331744669840696659925616780536094041959822869757601172447901244555684398714801490772338348501272789724282087282637868891350473673966703715814374710952052475295722823370893537839406481066268250637158182136963702905875571959195963990724159491098560592124591577547178484910679432188640021739469755042253486084929638473270745475540453670312690802311142215141956470223753535566411883071387823136270343680602604608583275207385573251649013536056128986011115629870740146306400431179948884969904896051981176118879032305875180363465130123943161808116476628703447335175232390132402637629968380587098461559951059137935114204587773617110446911812805212387743146645342894284772347927041571021110061537682069352241550461742954120046333811215319398666651900102954523592665802633256045935448142233909730400706623242809291171049130817588532910429563008546056546698330496835053777307295796861737057862530082777383536052662853477410588676655668369528960185642634511728741939682915826699671518838434392745130948814434729840389790710228743649663953946266517370072617529279109366027271528612770536077373949736292541449047941833694390690347638373052225314856834674553215392144771110968077019936946777806719635978458820647423716769329167299273909245937128685062248745786499162076738789779879427549506319045550705797084832994445604418649969008566820602389346323235241105494753610037224280470733160519287624361177986411719901846813217912889669119754273872011206375435180448060612994140538469686275998517274805852253752275093569722038439009671088223289433965254238514631542811823443282218756999113663237286520686125339879519594252790704222582823662615822022418013707692866236426156912663785047236446789984514691491152648191259965826190992907249386029388528055831920002833882755745808770333243175543985265341683310018463103843327740035391707614091074252092704424821304260940424716571712745518384058090998291892371381096785824465873657351525307584158551674706747150627069533322830088593596004616726711636191857035197699596125236445164573088304097596356267892048119444526381760942999798684853841009825487128766281005059721282670930829618295978273554048467356790394165736084679250527988484725093909588198501039574101188225623097199816533939233013609092634678738290294390191675052002169930332972752138059883803793720435990151270551821986001404184971919812127903776874702221867538646826378258069437035434842902507319153694492040538221850164347002334026176811278388856484477165826053465891677376319184017756005633411669284992188019978473614696860809230206722587052195897615765777081724939022985175609584177406747124407991385933063408070692273906482820660542842771466375584002621214348139959472257494850212907416851171003934074740439265893833552374175796624547123975702304864685813985297866643369286867868463139594315420571746349728192160823968467365227440293262706734769321482531337888111165939990975977734478902003290538626513949172556267283872792969057591896496258736324619763856736276841102258284583789654679640549915016293170007484122316501748913858450781200124093600079880058919603211715325292683879868514434790214462621372797762819856341120293630062967032738351740657607001046579801336235706798751463381260337354207717634080013011358684189952982702631168637862047086693592184751763631298209721542666324383104023839566398371833700170659270300679248154024278763619334908963615527044347407025654270004878904707639369381186966185568998050631600051343515409795531056792776697861077708166384046932801921894011769401789971906849430353444224351381814033027376555819891797307427014408214066547718509344224134107549417992488002172092564188193620481846605276004289961587911167021094389976172601051901311099512308572576595632199790671329235112978093028367700447624492797428563372388846224237321586143215105994757934182791785509343744435431325156248677623540272178440294293908535115151490762022594416745694662168610112946363714127977420133750779317767566838565011089800164755109609604038320146063128725030196255100386567282879384289330166864195859654675538942603118462490283005679047407919035847566952186700798437081527192500751608930291424136929493958040260529955706363741620588606557635009540207915023033985541999454036757718147159262427598381008753457700134835444291088827918430551107329974044956403498277565642289557233582693963886965860589732852494013465630660067368179463576027572745791617513911598750802381437999665859637932099875375890810709762897788821829824223000547286212318955431237640664083954596026742398179564503555760008033668719286703732864506633754872581238161825346369180337688833814291639369538761388331412877950197798311316702030310875528003546086993731993646064080527078943947413107829697305713907896774818053826744758055594449115917869693442207775901960596955829005039836274223450101059457612626589325173707512375680456374251174228503406185470923416967236412581769011475165928906300477388724490060272462242944458081516633910284994238043211517873155529539754861908090882064027766716370756037601785014061363838024141335002922667514634261109825080471041836365405896182788811491251791053441378590581429127349515797679416525376937814646333470961585258489399252411304605869271561370815542680005147907408470029523555871184518559546478710126507691087017681435706753449425803137126711160623108976206160900301166395690852001600310171451127835442974601684593572019403347847710167877293085848203607191395148777484864914846584635820640913880496969090720577998536684250192896803131028687400477002398207571767946864645602314698752936251486279385620586432978490549819365854146580008157407760701226762860800774685018504573603757391448416606133086000440890015429223254596308264909531735890989289762227099575700740439406290626772354543389227677938711019242355381264572343050980305828003895528359850633226838388095137592345266453559529635605721186988999939450344294095418883141608229327376236738764525313941828920139603858409349148314066524019299587813700757324265596713050102468401447112704308694950277116606789807542433688446841109090048851060359204102810626638917693896270821705043543960331100518484060876765176518546932406944856209091381425890279833005023920436631958746949631376482627881716081046469929989583854331489484673798816933164539355264592524904115524853574346919891253089264062239850927675681808952488986996660386740839285027078212416578073885582197383667455557719284740473671259262055068440360113705107875744507389222007513411649676404931231934240482419140018139187202335096189029695296810024073790673695525037400972030274199935882983524680284689376102800524403701969270705439754177365034446614126211133807260050114551278539880003816638437025604058027681004569833854629584588354768643369071421213653543140224791847712672752840468181687206493653373525421897918168415468316288054624719911600926965408288418007184819600572415129381966737558124105171162782765893887552782772239337668061496279396110072485436067053139973723754951772017412890449253045020291690591488712702059627604065514424150960685151238061267568781490907201650275812935984781346328447655605024406641093950573230574703156048190749632122146567591482990961102522468573912424572333316400009886579725633241403181155169901146776484228613635014928817709458401057575937394095542925168582093414110868810016581526224700097227853112946917445874528710699706056285587806819541649426409988212923056746712204117373811947582933676050734605415848870718728280932376638474089788382910001926911804101513752067734238848720500410534023468238067920610032946738518851045113907706373818569431455225061367249994636833614482587634080784335391763120090674800673812206020359049803130673040972210028864673309455316257616029411498122556379759811717919597159345987893107164649313300230819196515505714496854177097230376126453973559117435991017597093843512692374564501018022241688578248797489605216149624286682096963761029013782345254385919665646937680774766815455474602949361901167623958352585033744084781849089646669567452115223044042463287101220437768315028478257150901577455366940066534868582746145402057433406021123154882780447207890004054749234955383807131452208872376772454994483504986339808327179511567747623125552699110916159455177251738320212821665042829791662297752850946921979898230671501569604719261931865810966906640916206796359946987764866352236259938202518649248699205201386713221798147265070537649973128482453874084571848958933139277807790855797553361001398497555243605014082110699760022861728656327533463448148712734085910093808944101977433865428105693338171775206628373650132588722583600966481632737975082467940984477472804600130561122803801178617182468106225222206638899732707254575940671261059420099423997808159565400871873691249454470790704613697190672020913223920193438099225316667345394941380720259920512149158251518067601359708918754247589347392203679175337546052066663143318395037776130996892023895727029413912551324241869161878020787982631638421443605180788050767707330980803884561094494545943707307119852227906798574749100359083446952659353007363306033793805937402809687679421562894841737336377586288319645469572057654280902764644709518027894109784982282160706533533704000619835322427835184401234726126339022670701759084692124706958958691497852156276537443300383645345994570786098624117093310617380712310341002994412627734831818587600442101792311521753867643027919263630243697071034558262026824482727937222902444634493431882567472105462194010201552801461203176606371836592937564500963075084889021569859022641581325279851899113341844217308283799697711474226643081098173968620876848471957344399291881829287864966293000595756751231279292991039225857611625789961812295547853459987909402131143038104969938380737224348019783713767636703905902136268584874272289359309735795231756883528036330922924370304007744504750430294910108371285389630987177460016659710630610323537005132071897380577973028636555568698594409320353043849355595951002092779364455761886259943644552024082017256600259917819437979012583334217033482791887584378620555450390713859416822325960635317464455321172877126036123429307784488883019483459073438902480019964429510123206845545900788273462107775640409727769892836773089511474005107916798297116569020310044425241952781971897704322875947448531655664228599255263611183218459079549995652515907190049434685990044593439863883352605823603037520055532640833312563452194360378452421042146691450868924694045681132101762671907886786758575634060648768092260445891865843617836787469232352115215190186421763325502802235545070383481224074987148780767773453235857413573377185050739604943503326112428701080776664920301182201078421430418482123860373970682046149174943955199189768431567614576780500543777460822593276303492795218825517389613814433490279860644058070350430402324470868941658475457241214347486860599493865417885398671621358623348670143222968200725681260589224135505920637012790181033303977737816375498696902239328114431505641865881174418808870055616674249997258583079347951367044258451991098657748376888565232093177634199273284985616189879805333962120041596080603615134080509528047270664592283885052281731353320129350775218568945522088471513328715677125544834208510332328592117265626781773183437978824057303470222368216660877240784845914246646778523629781919280062675530164282735187992230898637642683382791233456470269351783363149832883118426386317683820506697081714976432446085309717676139688444262887885804312212053260765487686522705223799023428573454273201026202841765735846470176632876657710744781202458836039755282119888233340551608410382222569042827037190513155218323807176151912627931092701701406303841581463452488705652071919565887786424427114574922944343452541430892120311097127011420755507008288548345302392817156358115166806397334071425550237110256079461218364650389685592809584439906504484201230028956118740220261716129815113433578742619214170975278055697627007123885580204675736021978766815044913035871752644814251062420404430936585894807199716165910444874944370137516717086593524987784829191429210589303191739839146244083968603504675929583387864299922511077417831797153625325243405017386503039777398618540756006141939825080243209312241778790105006488166072505414127515240367796132111578281192026800226207728690760340002014653668406444398423562768199853622533145975572774725098878084720985082529275959985291055716949635522014626208074283036235487424463327238757741304343921251373023221326687952331491834342749793787405047748073942786472258792266826627748483673357802685256156662258234731944415065744148839898662804430913387837150829501513964638860396093109521182069788892754594363240930809197774457652252630843892026211202434870190218768480977396317672791615515043184703523437811192979613633909516435171765347124077824277390511809706669960585065157154689421024946960026429296764283361646973982515886413373353699062705211273787816143442335789406308444046892912021588479007852063802567171256069972923241028657817443143305413566332529734917200258354082054658888735796348716257972262318431398722227922437529896417154957254527203864605778961313145047891738313594332706688869354985535847129305046125902969665985766160322957826209081846443022844884940417864014962799440488540476459826783891310627343965670695915554658291045500983050548954319711491975704022942793359066453377717428026915421636678507194376400422862927091867730136248122573335688924078727845881390110926091460858435940006730224700952559721080766943985198519745996926708777005018327401384635764140839174088009821399424749007746592622526077401534611000521533174508603139058322297067682810327610864387543711384239358569172377302841271634464898136466153006122445385283128728423537879999623122082694011392888272296691908944852800557365442016925126085758452564714241456519353634956354758083299925106803266625567629982741963615656266119866120369918700189034847143456743415490396863350707916150342805434581965117305856359631642223266025126835749567266628354651301445507406458971830490031633948405383504327056488093090407358280745972596997959458461180417493604991046755411441443611785684034957716612021269847707958863095719525944161437064213954450272286562297452291778967554957214730753636761282480462126216060757930618181773019431646002111512413251422492341742442843169037502135192173347888560445076088254907848985961641825456334441749839358460815184141988509514206545540705247421476858092221266271192286136422357157843514625591092362242755771114112282917731256038623486224247991026422270144228076746683168247004357086994193560472214375541887951184400880743555339391371459235190426196685708768690226427696604233184655583501837258526234180187926046650723455894198730561681226899626202205939492688299861122500314690572474889031062185445883051259229419440826565478434774353492460211877944260765322593945406526689885804057342513593870088973889497614197250777955747825065916679765406898281389247143714766393485830493677078480971741706324290905455163108694811157712828593957987486246128945577421406259841305480848037135231366682297860769625328790211761118033593912784680477976151348426601028056796367728428195964772734742419921788969521460262804767409303060413887652351223761143831578461796317921078650046676314631139074706624303516953454003844875458605858112028696208304547640169280509945323168059180877991682352897161764286522328221212148090502927126912908709175348222286972163651263664237819492891702587438218191572713793454340197338570048201695874689784498186007542155399719634156307472972780635631580505199219225569790855753166137462343940957100460356513844514062832192504175279762821253819696568431829401228773710145366600318739228261006973429246255619529921009138649504438472644076031838570567633170273384285016843946361488560362771477956957288707447547078329616451448785180666128594087239939253537208547038800451886619092667471495737456596299063100169977614365162163130601222629863912987701417188982313833546345945548038388789670979083416150222324920684135829975943807947151148214784761033332881385132174145215322616595433967200978815425181834957355005211616675521318532593438607092925062853139422879283246063515386307331034832523844647493709835588396893815549684497870513269690944277050395057965108396930474787947650966507806541360393961601603649121446105219246570463272095205733538612418157037935039717491977827802494088153071791805099841657289056144518528940848641982789780750041931915357188767802510633576228907083047751431489822413595214786948217768131937723646956111084683651187895359407076146192297824122933156492099570373137902424091234461239764812173281968621217565869439472273769645731805514785374104045856591677612707551597665264467441490622619550908029971585259036982567502253920617219856032173723649028110751092156245010602659756089357300304561646162554857678534982586288377626632605136859553476987465895491433930462913855565784494688618829830983761702162482744427112880906331394739341177254980581023480800699585485023016921287235561731484361396873545741734776311378147910325045683080995473756587299339718166255609868947427342530548720873810432301758760446475240423571917983153808769274539745056579461359796965262502176604149653748054900092480283020952032662469703444422664115182721829332133864446643396452586023369632002088378549888480108583296680543661979012808560630756892573717114612148547507192211520910646813822547256968658273576727574658280113508441637357463077158295343195253009096969587365498926592689369232954356774672484491262898681822563050258328633291433451195197782524949890637957672097238295277231618406847650729947300018302900498792817682068409311841436583640792598715444734644929151824571256907735168906844356060804190201824273951867377802613608037077400041613130291772624661741492924533747605928343266936929477788323779147222749934240581220172272832148890941288448223083242486369502979230139469729926019876743137659820733986622898411425199607122379372403802801786449170735901068022082208468118509218519778708154755944863029801092418268417358290231571112950374723595109174168535640578622442430780621321601283282984427435566921133243932730583201256657444177888522362695452005640095145188542030278101632406822497359983489496833404317782701653833658160158824891642221176375169575556888926919790649679650060205428326170971595995747425275185430944284268602684025551217718684102399756503453250865363298643032362810134150658309192865945539237568854250384333181112591420643410677168519306579001428303093369315558383468992096764461326297740245154723642298666888952385227075456025604333475077455337484020211500093293674856839138471201383692452193090421618949124892167476479337103069471851510702636191544919845857488009000982117892159486861912314788109197461173444244368984138589436388346308373104194694164373076883130048405934895472645771149217463519898413952189785696887722894068885330017377114399576247154993993404046172190228990399517116268465290354364919445265188103004546961995296355250022731464713689754316616266153610756263212373563303393243462611559692686625366658879777424110575558271030739497104647762027445326794128234634369525435638904926822245418310597662369206801378140059745055543597219260975336759582436017584886438021864590858101047606913985613958894726266143013698508140314184933475904727172053905630945688711286670424002503851182104527619202649952980122262502827444252669403284215585027904526693980320582661685158646839609262659251360202362719706507632447462535649667220157409648540393536520420606383500576930724005398230340780522650595372258468601503175652703168942775405605435472145306110556276209552071390422145049289988935258853067673264739575099470111155605192553852954498851434543922356573843000651319042954469136939223492030619941467007195578163826857658733914921108403946182502378027282852345826896359137797508623995507816280500062385444611458425663326288442885503368796271043148343365837875035583815473386979273438520243119904461891099876560156640633202248649438204863646403518174133032580631830989230594917048024672158279670742607242805317354489981907400110792276377947582972073817638384036756723701987484208785145586269926968065855842830290616509014416705985139424434117104732683311615621183782478441038347533934930560315388853800717328030346256172171022307616368335195881655095938795132575060696508963048358694495449945144370162753517747597337221938845661307057071804601086080729284165181326496739354832002444531570831148744167321282101919866990441472320312309155534086787608266694965654700442728559214501782061340612288797641122727192771521137010792444198400050416055338362202367622639124765584431030782774152054862285007540978734790845311637434067114816110691356183454724377390173841626005688494589309603032810756768933712423922049656745402681113000668368690274343407517964705230234848552624736868204005491824453828696234513574160560384566798952753947078953312480465763349957462602850886534572099593132193204919398190743454401643749828050904702073225909651235795834740321068472580935436693544349787704657019383860735065073616767245115131991934128461179991977070950226333226679457467724125699548887321726033024107295671308917047397565818201310334336097861239916015341142364236472913057283878844525024353418440447202240494390334015126059836313282040242107391851319871238922829474034551389478284054065010579006917914609120980346486043555664814626277103858447360795357421904456770566904110332048352002531019329540449450967962698999949124391994432121409909290694243138905718742279478913231977747228626113575804346243434707319182016705558398601544863638201482418426246875022962534307087218828785411145813839731967428748103697108106544875268027228352753848424521519710596029356057029530911678196299257829744237578536057512854777134044309367611490533499518116531253007340565476868227716142642926839224063836464153242351253552664409138008665393113231478599147277290918688766720195486432470852596703173839591545706742264242898731728003672603403572825744238088853172848871868462628064722294313732094883690786099118994198085950779832395027193744425617763981124952532958771528530970691414645100414993106597089313412090537464988179695250264628868298897312632838335778415109999889267172822843440762067788619191519173356227460529314605983707860257730699016640490332646797037156765445674623818208265471017856598792354184955169775424002267279107056568755572176377287261540533840242463730211158976913071278229142812505733091316334660328820606564061210538436274202871103668038825084710168007252007341780849563486235360524430196009906642060618237623635777056239761952459166824687694378207697527159569548593840769659320907815638338536555456165399182458821129367991505163029541388037986709525979818450253883869354649864180649432011017518414342795164643517500826647165937948508655158611458316891369453782147221437774342272683711250334112994854094178947189886722234280605082427950748219642877638592515454256460233072446735959878644481520677015855057814556967840144821700100045163554526100763792424221357295848822689404259540723662410004843848869311107668476195194729377032739124232784082026816124059355679016979016515124537281199800200557633401607674519957556054757842090965452308429511486904928091940659683197840427771755803609429302315537852762882684607757109554011835146789639612172745305381828482415576332948323171133895186311548041099711189180657985812488706887539387914587493089877822422149418165030914504270782803717637668184364913607135464034675068964657714697774609206824550787453731315533621418625241530216731709685888986946629860580100232133161517707651799510793629106299668591154872851388072977032918744625856978427265304462515708130192159188172747743671706101241528372894067530590404857877510550729576188779500110536908195489199423392834578117046440511547484000196025462085342141319538533212475651570434297058658814085897510874813367769782573323124412023267906534436849699434047031995363166210342661697046025094390337453076967593120370286535008748283761799551962031508173378069254770456416533319955243809152942862215700051420809084966618314209177766275916132474821045298500689510445453234391786536255211492341518765999555368233372247984876059342364888483694534077165825857301963198344938882924703419333013962919054797191576484532068441868803788639311590345079317620609571544028982052232518464792315489040291616368808160228944772922708724277764094478489394195933414758128333116606911475816512124022466194465266380984534629460944250014943367701713680787198912919960761035934135759866320133179875559189698218287647210073248291861104996062586366918385821801668778038473882666187849674790419896829551410124739221021784599121558056368436226434403088832962444893734160888478353666034237166733149019866583952941542661023909263668409783792495884019599059618658589124485227461210455523322923929859999500486417415235984130878706004839078877140731028622170985663272356810995816919973258760709258036555197290773573545287403601722596269323602887087781284044312922153460659071934603563200351618353604507563049833894400947373523204273903228706522676337775264123055068944830329956686296999591556345310527102848010289559170622296785955900737901801785781908126578704408275110673167422366908267239114610408580481806447599101830354543411549645212228824235157056015639194931555539055756428391309043079163827734624334181821448695134112853980323637648301997867455234884445312262874824309543670578764680542345558078910429853965990694996516922886854718623629429247784236558651738776084856777680383507046441863406330278213992478504401432585104357785679034227442446585641613089850657205004275598235273591088225515050357505156431771817165838193054756832522912479571875530679205925430359247388555588846337359649764709393757829188735544956801943221309878655429035718686089836440463486471529623544739344852439978798894488931113625067115332101957216976866983848927799780284766656076373305389280955291446285013223960975758899151544230660851218948101319630205194473434442558387827896427150202839247960515006600843802551047876285124074322735224477415630617303037244797089695865181922570521623755868046513337084129966076206747804566717593449185191876617685746820616804273324969306948554389363320062120497808218274945494527704219059679654802741919698232881357505371240729286594111628813388845371013949827786521240860877385033398093397148582201919652189310931126735522776989533015690142283673276243976855964860594207546248774069877788594281553450823223750870124717050628786969121006842775119073633962720561636945076412304913570103082005233499904605911055098422437530392280003067535792607312515478500318978568349545746780845740962919538581782814261182205711252430902427201859165058876069537865278211029948599573324664283495571651614180824528786077275197540522736853730505148828401990316516840139813502115553434019429154719381387068336845634098441483113614069439284200580949341930758839485810965409473597324725095522164968841963518014618493815078606227150683409977902223622238026616227303430520243252583081665034834905326370631594452646131989253572036799255078460538336683718609369983226707576746999490945072840884203922458120633777673544189655522890823887745033798325111507440996872132604896455727275462156516316571473789142336944318528755940654543049499118823187975394658851545946555452416663871554949270316469169385722780627704685087735618297589373988766243966447653688449388280032644679501637882422137773480410226310897127713113779469910647723855544772416171296457195402895741977801260549149135729722154038854827235129522869007637792645201375337378853203431713676102402091551425127685832581322348740122731386756623988891132900795858060023708281157505768929996513753604436503290457348421147977575693282387125521120581658999934531256860748182061147633852607155979502233482122949918498414127396842512278081844191671374496337843599876289453193326635587720408354485495222742241946536355170890216778166866736663625580688481143967179985135403748703863923172574092790060598234244993413112325103841272779691659171367453378719396383308824884279728264244554306385632027511234030988077558653648194930929681426481915749734937289163718493646717283996102431849834054232021102257613489952195176193077461709374542549073853368903679833815116285026745795565273063117012781034884607567135308045472172768759869617798476264149707249194149073671777705098516801939424731689944571846611292277349102153705344167649711108088198838819512576576653659499666967195700083392715496477934375309341744240673324926408338177620080196704132384066948564659797284454554545333240046546571824408513004157895596717606764273000083928912412265855609062105510028966051581817942900473601692828193200744530777722630366636461506367998249339493568196623264058559461505827784456781160272566556648229362463106018489541125371446175740028905896202909063227621853419925286304669882327027341439629032461063585327928663141268250587042312361537380261036565448709188300240291057797400302692251148406684299769793134726524964325817406370046308601110584449085021984353535274458122650155510645137752275402986395952155660160621389772057641035641178985638436638262439994043915498804061745172812559508231023221764045690627459104085970272287212778815081528592949646257130440228925799117747351845150517693721597436937461421586048855736463726104837994160505834307142301762941814890984141888388879975387959611180516734347878646583438654701369636732027476413673055037796791962833436035496228025399423249296590721361471358774823942859419971756736045848348999857968686522618172315852075225641122052676000949836470841446785135676371319971077263586022653000356234363126682384202161137040326309242591699884510706176839902875487462752076944831555425220008385291569490600480870624729710139236229485062358356700473190840813923654787959936275659078986787788478867961077543611568534797485104229145634629974491311761843319871560581742970939456950503688435132709719674663766139341671875252462807927521785917400671318213449456451457863267684300856129935706928668101426537392049562345671946536942673561953582200579977607225117655247618579957170991660499271407051351405599240672498372664450877241967990347749732701466245588218661977315125840457431438788658798048986787419871535547056663997223591140072312218681204061854185980501348767734875594538574843277874473985114816628326729323866975515047829886815518476070023671426441439428355700279610727209237196100491113014648508606263257098966799239503342689590397365646824419534917715604736370432196480526087766239397350643695861399439807168629540129810459514710604075236136292154095185779013367770982948551867207831910351033345726817863377363315659198596211474129434915466982566890335940016195444484251412605096638992579846527207204569294140556704676232153211113087074523046998775345220712814152337391817726124618342686962472148529288886293037082027328776691473363027672274573869472513106157195873456050199341599496065608482225188328084991818217095952115555345621907510551730205073690368264179522434468136051939195849676025468679427615242594694879660490704337341255472811825403421208419420464767847420313461945603519822503920874725206895278262858447008985204412622307723760572959169836282385299485990078483178415277739103427324161682066146182176409854635419850180673154376436022611204282135424019123108762365213818190672019688890092351936912508357521762825246543755059966855112552544986252408824987204591691177793588988390996998195798429826488217883018786248963111699741978094704111861595873474680362173173265351379463467772125270217233633444881973765576615856951406234732374286350307001935084199043719565246063476616496302523539304113167785102073375008178969511110335224886923855544440374978285458299341370583896480780184369620907915448965098182430465314570922921516811594710281885049209565642237895262316134159477685597027532495269357607974259461802917282843021699344311808542840434113742334108061752053832549847933050814458392166022856587787541675185490930793028026964049350911375800828712117968925140157640003844431907219491130143794586940975926439032973593286870510757478317823786166622867862930450833659557478247756253235933805215319620381291860504690825379286211167490849405557848609124826754678508215595526115058301088874614245237158202632992083270455961235330724173120902623680858851264373093923721661152514225834351743698710950015311400438981480294599603861095100619279315879498176360151322919832867450087506325864061167237939675681104790491993095203615402807189855902040876170357374646411422119677076399479249624519053310859757133221527721225122085754807467404033367459837705502413730217950138989422184414107482570117342428703547772939232391772711522936603765111476856659210715710637394799702074742334341981047342068073960840849339432470996992135881855258862501994532282029848972344603254333006729918332590250460585978684339009996209736242912170690929004944923202854210731171525106184414131171153581134713109014640333027875430224207596474469517681670404498178090732893269054362942548305336003250992124498370182101678919762566246989854866018568636777254811409977038049198414330734083345111367998319143599191037177842191923822034385708426227189729743610418714336169438059806783322381209776761868160291093105256961144587524429737686948769656308336258991131848585428440473748039578008997295886000495226316056786975420156093363448659966397485923403481495997199327160608721617617643124134818527060522310982181778170666571818106601996913516918321936910907098850564154149096518333843075387000859913185472071742011991673380085197710139858877306150862160077578892785988459905876152182667265547350949021467449701873510391329440344523216418811054543145394108696570317685139604729014705542656726870135653148543732406891579648370968568331938539651048269275284698923056948304452438807803010602259047014549252647786244959380799847528787450039308469428753515122943864270174177848943667869888691050753907076249756449633957486530202866771773965931073068968197815374015634950715306944920257043177615025947120647622273948785610232623071030554821005774868931686759899386208170213433882628599385950777467990250957437142804438493614143330747480097481994603034505248411888484971404499459824247010779171497520228287107120324691067270957210283590951338246531082071693795714791701425423910344369318428766995446526983796662954947837492121877663769129840657868687191936290676967498141853019455993033292832753419757698050828650317396528416475117561238842261853771435705758723649267955311406521664362519075885444845358538279545979323317808775346267057849296762498163503289186315283729099397310972829556437601161413315441996576636841684992895709807567486970019232763493349510958622036543180047340216525385189239047076580782982676234249524485549499015414612756455493971169175618585496901502402841506084813957898886322954667989322339499914268208618642023434379533103190440074273795239337684351124916972774068314876487991792423649315046192877729246388059065657618048965982926677411062397476751600940516768783733729313903594347013261341637891570764515111030762595429007358428924814001793367745402788024198615048895449072996356210195870166767034184575627759291429390457427339450737418423530815688659464107722356074904197885646781199428096932037171231899569437059385174135032186674292661054315966730285570264025060850749309577149880114957138957078704342975330570647054987397392923241181692763120362673238506980822995027671761270258374669516365973944744325167086911176650582444890544152710509108626445892625547581913798874194638483087174783109306837604313733950670110486223707191115798128531174711202909447341912650971015443358417379245641815176544696880598822947269677607154425809213707218624907326795109273821246690014681374122180002311029064033293066293281780744016044688611717509973927486930841250198354049327215438855677525633998841888505089702147209310898132096498187986986534429072062962042043331459311224518299012947468531123131679443118178653514381517460338512178151539506106949121118089057684413571756219723176451613334123068201938554204781469137125154605672358872477475958440228001688747685255250307817565216467459072257331454288971758698754125185223907580559744585454550816043749448793866547643140374354666308970911139541702204814331674637905393925364147438341028304711402669801837388469623893637683112543556446130807261307852138628516321956292296753745964308880522645081121956258618513229703205251285756499869805215925766190330827561082044257730966085186522767634215525967359041736035663010656434319649378300718494440976989344070508172614406937745530759785382999507450062396595107596927391970897417024377177012398084448456611591767503953241899918611339879456627594815751096185949082007489493551806012579997756214991342488595102178692553448269695573053421098321622147490416155669727138082882771578244787093203630956614054538795566314167157331857884722194662574772308272218007834932806286525118869556909390005011800198012620966060675748946362635322848865327884052386261295721609733581826157584183665796720658539629062380444290380905532213953077774867455994281557965570342402217759835027178295798295955786982174145168619955297318300844221899051766116433535396577466708122400176747641578868660321597469894643420414540300603826731768257802280580198666769754257084542434843619638505410231923803132748410854621231438606061213278947829654975476238079348552878805854625477657053033050174829445272963356126970487827686356330170257037756767296457773400720728291732543650551609150852565169182902005992971770857529400669937560322466627874229126402920828435280963119802401895653127926868562336622343494558019996890193260839476060933013441473910462036352483561050144155947443802214720568101575822422051983672451504767140656748915925962155276023921353542323955392938084424126483523071203560623466142124875325391707421186283090638862670744951537365702158535263315725910918932245960171607092480982874004800780721571495975871190675037637706038150662453154005866833424402940841984598067757070516553299504801089173306612280371028425278613176018934438272815775590142363764011905905157187568223308012223307224376481580039218327777334265824825492781324774169827513588212643941316487823587814511762022957639518814588709734720092639492700534668929546401777210853338218401044253686472084600959801367842829162194418989478605044799779225949967949127187221910229488519536197833777898272944689317225717881428502390489350730581889838402625739300718483064592849605027108652634420263569399721332365150405743461120049187935357096935838119633412210378500626460288626823584595830025193635555255442447908723112182847169379708470334075736772564878099701477121205120292353993592072394822861985924131799450856289537276094016634062758173876650373680709639544416138855004878839507157951693300936497417229171141899962590883876164287552523794339774034309233917883106042860685368633457472570874996391082897472628546307425608159176110125413727469418724462431753905851991187314528458426840895323497260254380116228175922672047647280158964924909790946192574058135303158393421919987208640107473496421700730816815663323225640780068981161302745678586998305621176784893740327608426192130303620176684954405672603028037440526330014679254970399201991891325019239845782115431115830471920186925995818609845941207712337573683859032683602823990760494415542364486413184907155074526715370948559026346003898200717869568173203294909652439248307264222097784983683926268556115766551459356136144208867393659107804550534229724839288208879205079926899710172010501457024296031185451391010674002641947915926686640479235405575903836622480396644760379692145090723075298947798052402693750533607000070904290109603736610675287959708765663983931105153441478918843263670546908771712875132740599074967928389300130591459016307457235080219025135235055500624149396734288777257952445576839688670865997588953050438377527749983957317459426535068443007860807143542627127952641732365282732389466234741901847724125941870138756567917940975218552205504154586691407563968768256716345748876219300733230419748759435002420317892431739149093297280572675521785158422904877545586709584432011243202716722670901548773558080870476014815715315352985998365460209883701732444688043084794076144794071671320837380403301857199448848650287241053498738778419280426177155736798453771386238881108827657379500377305553779049737268984986633826122816021132554089790453044058056630678847064317999595542815193964149976468914024526360252126924293378651270836952918477594828596374475991546973696234830487103940358664777264595405889493836109291360332393648125137561768636837482384176001688855204610276084191894062027749233307998756850243154841501796570006120530813596320104053669140075328390376828522865067777568762684236336293543291457237578189228569423444951801639290919401057113453698732345570127520847338580453735464517980184567851375986755510438637673319384579604117107855262163766075949844413045062958757308272924647731388589607026097005541612969252238328527453451824085349058015386483682179155564004806971999288432809100757345548002062560850045395383795155161467522376829905376881751409674188015660007252479436750644966394071415402665570397481409398330500026992305277789164712221747615790193747553306741058139590835301639040488577159550139419370104611909312418196543214044323241129224658561851205739792824496604985374130594733228694667311437169990537375577414664343179635607362077180046451333419463434832938664675796494706629819338732182376438979782465810943882798076537993006258141309210699145543256617598243181912454646748715336271070122699328153524603349249659385430551827219898266676079113107619589651318281522423685855615222515713288887940964326167221992535654865831991339601298135270994500180856113280744650806064270166465671427524195522696426146239984165688988213233512071160687584130610943425462726179915012308842481004188723700669136933463748999232364621743666938156086318385881108915012813895117168357284309907669087362228206728059448072171448964950474089847791958237986990030758206037844503276370564036537044806353501218290206065414352889564991069931973853061077052158437248799234744347046090704715907098180840941647820419773971703316090469470929258991471112171239927323714969460835512311407228457850295761199244451302061663537802629833624052156822373826350631611383390219172461829896874075226197888830717677537829607020007059321517168311731522693053387480729972190740151523622260996413588942091842165500161033759230278549977403293544513454836559999638058284480050661329914499670395707064622217839294759784916748192197143841021862371599165559973855412435703221196048729414973007259930662707012560893285721762614825253938164293935010330756856122513161328878976396790695907461896006083197382802860059690230884196864322686485443362844944108471755993810214486023908295711989219577765640605148129843443174617488155964130695641126132180247686582805469230125698750861913976775810655640437143430510862865788033559584624176772375925360845030369317903937979298967762776201590103697382638264783821536022223140070160892554511826411261393345706450833732165650984110977992634999716489558189135903415331001643435453082776318149117096605650591855073248340822779511978390175267887806398223206132355527610278389623262046985670802797236687267144414285281153742893989240010065314954248589320281315161151731220495260613895130086137074891932820798300149144041795455344628036953118175017859731954562521916657257532324452604715039866938554455179379748467537628020411255439353212924677541764415716101550470700431355335968187622556224896513302323715156203487093983963455918622193477273401553499485486449034762656948564270925428911809539557888301847619063604249050417247515741849708396261483001926719944594012033491980646799329451635740826672537341392226353732695731700319804080107549165827199540321764662176928614378674255147285421289728887439111961746853270899742824797038775767018996443380477806602580300521565792071748298434582613769641568479879067421412693975374961969132836471013920709211363791999504560675261981333450141514345292687350511671725922045957454639727765455108190235295714607232496592761538048692830479206977692854260304876148283531947806450751125936755772291728020637253640594616316199356226387790655982849958936867003047867739586631942648706373168617155489114632092705486539059261830764509747365653649943550444454941638053111621421371612385305112624611443375531716254684388367986878527364848660554321834672513566984973127604220213392434634520605528204431242497824544334260067256857973095297865925955860042932515515921328133414216017707010272028575757517371625985459937470991297987929254179784292226361103449616016632259664478905787749001270621511161978302479594791504747552664271602389238317427415648441313381523343089284211042516010338317787905284315593101976865143110679408477390098438476838139269866830777317254102510889735813293029671172741656017312126361462008642681620225909513241648107889190902444968977138222532832548838800131083215205625052318331139234282921174309493454733711490767611478661800410862137731320082091785923961355338743349454637354683922496107528041367446613897185466422491435532892378097777098604380006084085608548557169333667501918232586108856451332048187477544166128416075528626320370774969152464579562655819481210018452214578839431203734666566884323279460180218653086972811911448504550037752218331086836420848180097950776364085082480278355209542846942837533876016110302509106226812085103776006075040439545228702387234049387858975725320483668073386329836177727113755522778316986741846168250381934903534248951804463632461472698470690687168429761354559417107202297898837666621419671641224366346524021251052585316276209804860544718381846247973536804646447913804577138802943739930913276582365356896241703258468796773833145658527449679171925515816226733095571497009787335435443590228862967822661456933573346454804961795544398825755968002856899381434645924615677035743201972213418533138056499034819840921398238143604562048604118533604699709413867920030130195150558393241836199608470747101574007734377741355862008473617581175654926809075707898764195646141703714512849215058779752603270490714266370858489150386975325582999221335636947955070572566921691746858216382580401340954917961238175035012312819118709177690836963068259230169031241334585204442069328572322953397725638978740351904878763204236198096946777829749211888679076567106973679070797908523881949502098043482083204068073971016450253111196963751899692149658995797905434511386354212631186987437127993209983289013785417807037017450794466312418393125681450574248620637949133074579927195606273565672159494687101946202011616064395820876309935567125252327468932676015528891417722317565487912767819170678340311845247947667193842965258860836786143128137970367279827544042210610891370168506103414011019324500200508597372790656255418607778224273449039931699458822582954644363133755394591587871576279081041593363328972477969215894609983627567547587301943736417477316737827728301582339522814155129550426931068727223948253654636708122903425639584644846970802437976797893850288909271620493481393150071705852159157037494199619036371801852910680981397062170838905439715434018709976859989777500209658419777788601752612036207580252086154870810448192415878270986390545580197898005414921436442072158211142403508231320613993255965437492138486230059643510314523929717544409192021135870760088868784068458677341711805961697367428315507305029704948789598769741514921810709182587299708805645135812955235773780092103220848681873342116370147947402654732404714710712352984622839719341841187244554639527820193418628287930731205598625945637268425154902430340084103293181742231625552227827646161174417906892179081613564341528772646720585592398033049861544195408320037538464016019454898136704680069184257366573931417581604943845495363776973099796395205352260055080004702707658521625260231510854384636484347404909666134101126052660037630640594708996657405752766521556090319717345082926405128188211015205608689389473117579090235403935723670458072707671211557658756307391601122334944529429676268008159331858547581801211046752927154280811551439913170255432045865860078172999758573062060071328716727140011625793445510275733565154094254306175869705612647544497607372319892238362993620075111868993913951005892473215722316960125738742938519718246132634357100400015213856078443167047900854428879344395246324549898025326461756252445369509636885114030162383384980999485386662677250999927742804806655346471710045987032015037562817502686520988675043809028629184954999258232183562143813831489356502346043697195524688649541293949290652582517362491041466331007978067790956978050462151883330683784965259245968144503226791316923911859102431259040661464528232458691461454026163766667833123649500986875883855251109599775413823687158165596245795823944798535036320757754486190230487867352108749738287589683034929638979244282919136949901997975563953426190142067459290484416004989859144827885837200922383319694383764540052318147605049177560166505522911380970078249909161524465181687765189340746815740136625397402769482331094271049281243223789065695518685627988485185752052605094606434399852226169658684327787082444636427677056087500469582232432050184239988060242437874875933481214171893299140337232779837971457971003365769146926230039435994838850902324421265525075123401103549801088825066817484858327854218790297176203328773240983497595135312879513902098934795127803183274330322534265281922911306279148389418001420834222914943409857926450040773210554274362508677105309356761868789069376479039111412234080493094892163369415301231115443590396862811487499163685452193705123980039767378283905022694620182667381824929191198676892627473026610526303017820649819420220627868279795777795769113895700467942588653533331534324849966215165069912659463273644168767569195451751309723739959012105545523845540411504281550961184762178734182021072678656144542879136798631623320500611670638479357999523019654370851711919266608254660917658413466465143823082038541300115807918781446988116065057468617514994132167805868515324506336676763260042849277956086410630262384633902533813975833167875091555905360936159243103039368960716499074442680399691553122246977430880786605420323483867473168964148308230834218831357008236319897801723007804920530707368340659975377565693734557015608702493358589635599041460602167009432523155958897777090457201152456711327448985867508089021114865910962426433337205772818723404944167258547133400307791571555993676657300875401302171569167987142476470406058789270966810271678635743564605905264437610413688693031392889881163054747053579729841386381586848092415292394036323125268262918111626249388361034475559233399915611717136731832341791408483082312248453835429649036797325459654215834282094809415617768508786627958134360570065202236962620711334718501064693796436073646604333668602018062150812097450362565614273546778049807029419884638698919167497781162133069931715277333767313166829894701296906434652672410334056351646000293666402749527792316585764300899908664547855007107289826443462796539270846364324577581349346065292864045426183353176507369595488783857450012433042460476175293755971602873751479889056471546565308373318138384473331069128891631086117049962537785435282941835323248857887898291029174291954833276129459757113542043685798826142386363832795138679300830134607743892552837075041279156465837942224600096577793469436659673821393300219351726349854810196051358268392189068452491741933996000337337139384756397861555392129695734465883045326667939341145329578775991409238797536408574651920804196078699894550241354275820918521141693515739765066005359234680584769172613886602686111604148563695521722558654140597057644118307422804934419661050461095373750067773621891125727536285187312671448593543270431644282667068396266420496128628830817584050776867692428633991550395513640778797169593627944973007062334369083918571513865760112388090847335536907509466832821973681772954229893328362068329273833012925888163979826244115286017606986918314770370171714111284488347173979135129750485471555194045204956036317775232134227579393764894564766945151322325975242303024064678690572541035446881812164781386312466850166604233534417809115542933062554796378351412034294274222920168012972627694843732261990516828714784569723289750568553707909741979623045625943206376610980591859217314221506503237617173568577679621401406757860948766667354793659551014352511801098761190828826548899567784745951555963358208261786179519039835266582884704696777639355116422338331883988029178989122519042303901367064172996157693079201572914255762621091359186335363633981136097741432065495075197123796581786350594111695152903075282596015711829432491267037717414105915111723098982363546613386806778894806963984317479726820066323320939060654115370353073855712929340144753547589889428577416549361421853130534008496266901245472128458571639598102864131811251573786241576451467082492580141183089779381239389463811134896209398275368576421601645253904511840409111119906884715777445811964853017535394035874474027590546025892087969483785568885430400674486501563515223592088746359110728847521869756164837879186724165647413801910110519751254651421822749364885068557784098817288477134507732413541722508121963152262498031325360666941902763122353426682539127243041534793673715365201513358406536216018360819961160097899453939849959493879662299215415930202345396292314983770896617189440508180962302063839128627196834624780321811232581428626835745559591459384905930307961969503675440943732149694868980983594641089313513710378296254021390080147379497931602555686058888730743098771375355194426392914039427846655316815081152074208390196073114444700746289287709270365295720384980360727108839969237970563835639277070190117815128937192531822382370855255734990066607891566915290041564463812683245477818687131791806337221182969580800455226983404701118674541677051902594320174228056269248411981917296428612217643039191254813256690421300861155687512385520101009321801379682307692218564607953575313669290475590845315046884459782315672713896067827292241391570033957474680329152806407132144708165163047453363983100651679678733037623858503343012431631143311656460908470355651318911960600003490331787703282523624239060322786135417732933612445827730613131207396773849328711573952826992790122276934497962357955163255185861183623060151317342121882789029857963992625239168989203250802107809607079708977907217762935343018368131437865139619257695750421820778297951263342965698752671036552739185415697257374599833806726398902613024756772639309212477084632031820527788045488639292733806047666078407701705633114722240306942648361043219568580534250169720116659989315467224792336657238284900452299487250017181223214046290936911503038592461116032416567847935765832654092825832959554238567712476936453907869799578497913517642162201102150262663157342441220238236027573810250594441562266895747021000317430832473864053937997130350906121597210331577171235285725590620369920806909544222494851414656340459020563291345355042433870215473448776819369129506433007161658822035462738871032931988397395843180577231544119560956258010899181247581249620890336455220464076584230317681677582611323954901871509502726197033710815501630157476990066739634711063999213045213313106153031833642028633541764840065423474025825133810823814385114478425381745248596748830672817308124440991017003737926589173179343273071950103005199972105107494634499377649193244188683911511396860942356579921868784562952591134716162134357202136130746587462025383924365599625317688426406996279834721561042345799685142090115115755746089417436083165939608005210804877307083910311845531796620828437084781817358821453733280703343548763947499190985760901554946892053671992297606832917746002721061391569633109359785835873068179213810357503043151991167875151823146217699766086380900926856161334302167586534000108635097134180231943953537438015029118877282046288079734372602345116240615494857970070504695629069194287023761209148903282430189521584918267920503448782754423500746619097605632874001617002297058697236951431741206900893805988607254058009825934466653536286751942839622566376078344427008838172739262140289800663642199503281603885624249634293190724977641086535253151042014264605622863279139263121172481374518125305712372634069096981494479299121747792797526827812650811945973064442670961104550019012045475757162860841288831017513037754739255784672974723958948347932236864617384341064187421283115636013787572427784051491788165893131268460432755290831534055134519987465481169496088557368312016119449999625210041925400864457621818629665816552553590256913352812572203176787605939505050674594376250655742566124359154594901634223503382471153045183633957354536692059912408461651130142710908684254571945226994816597408589398899455050046076883252154469743148483836350508197372998075768308646533385983892925685183340739367243277496820227549036105501846861848447891243456784384231235300763805844448672407366280884418170700970566192329291671591734749095441263934799879784616289645512309152686214783063685196770145602826182993420427969790413210178095922929340197315664526462431335034934319647969019471716966056738791542601259369585904844066338140767336722231219993207190993568422177722667615429677074503754995356320668842098643535894478080626102303072689127081183797632834273459697114558739187471790508591373826979688670309242695670508231051698797400834347262801909300446918449559416382586257292451474980897480324574330926126408168627810797187728631748861233438406241938102540820398305173314232053593885996051808052695628008746176763261166890118649220467131351121272505086868064162343924037979545471752524862582598692752913019553607739251851137698123858627048815395064420644007296213857405929152307379077660924383535068986293572642860317819836985740729980699497949544095955810823726717379341173154522868681942658364391523959595574835854571818397535090619974808715347203699043037245507134507523856225467246998135052803934924213775736956338673634837751095960353059290020872901174307045138351610615047165702231988982108600466443970773048927443021691419190971151422677232405362529660978106610706872112732943041687474208081893494557511287657655790598977241627864329501054064746561417704823340427338080721548790294403450079119443563542386980559241605218108459442475402600683442168134655527495571537718769055904190166432426316140615969935954055960007319795756690038810792270991536027065842652527356833151959937947101016520709847345237873868377598407189808003650839818069948088002693208990371115781119293609066032121954727186544729440845294923633954937469845958158349370679164952403726942057456792003247276680838093945925352002615904140574697379519851085201485315872769943234280976266021433666652175575161337242197605262997862531456621463127569548215692235151643806091158869855799002754106972568796045742123942350368057842870704026667921118206200462007464065235944922902716295481282607488019897401390275469196061396408071333375776297360785229799574374725941231485369629226944112015917180603779517020793991438477061783749748102829485857586620496959154385977204143416389697272063089677992923780874116914575117845222712803189584379162703759393865030495247058063775159515948868579951020447924444664849814989307028670365782747266919103895334998955480988240925905322560004543137639990172909573157695233329852025995068745114113017808264819996085692000089592303726306584262638493927273607376658568350090724831349479281762383224016996636584582974416465019013933230204392561081974587229876815213421005883406022596935043854913752208504933080673573441107879687617320050736363481493430962327949436380921175586172792584525899787757828666096536119701615093884000311517618138037644025567686826305282110556391762245276452722947964103770105086803786918585044092111740420983450277051976083646033663475113015978595217153510996593111637740175867502704450555448779288714243158715571334311902991111411874622247389434447976599123405431835898877645050915161546943430493724563231589061585553237778287847131140168560250323811373905636595685057622692023675623716907461928669245744793064601067710882046117561740966055282067850638121576446172865565144249995883218682491997336155104308371674852996050322560232796610093685943429632325809500493642390103867419581526577791681300273230289440860760275994743771716523634367397437140409778408459216013121074866595944274181223316152906092007018103374411307000149327222142034810015881114365148999780765490718085309961129107535753640611485784856706693735883660310020729258520118231105547424790323663152778114203673286977914748876968074066346193409488675755408130909762785874453679394842937806891892562650921109221043847881940254223828268694852286351278061698384820194132933519159726403406750544114763113518367193972152177258980294663416791574238021153116515927035990484104315242756988270914563103318663234851400122659198066100663084637247751683611554148594556111569736131079976757453116673747936439046681959341633208661268003542082164727259996287283331949929006954236017847724789980910301648332709805847197098620713209585751039917118375873557363019567930606935445977462845814317251833199255822334999124294107548052469557786521916885587136909225514216562315561450466224403334040106458288997279055964934638835351591699937409093979821441448751319188118384206179388118887145266783651209465750026855810973671535207513635905191143430512833340106157037646724132133459474623294389464273203298278848707757515258321066916711907738641041333255167944299907049611544456055818460827352172394342056343109226541892632850521689041949668449541673961230107406794041236208333154168989196935891097723109786683921573938097422594704504313617719874473084818770073966435220693650826298671894502971127256385209742289747223881333337723210260873178902397037571121247804006622455064306646349532769257774893165815871790485852619928642335586995531456608128026093075586295456380251558843502405331798386453677179254888471824915511211185532685733232983802329305198855478443192422790235390244421863401827676669475075567073845389915379471482970411449827048145692602360173950332641038926475440671529098100274497139629873383408465945609332817568658302942359416603678098868473204312353859866088247256051094701814269007868234210173153842629661122788414604392587947204349449867204582172385490527864498984414198705806640218061817543187310959539517036533902905266392989543720015244703666001067554973582004027399054780617874533249065105710088079763143835668948588418660972363622892518635001274084768938210357966522600654653517223708825098571472172011689322770986333590543626851715782217728908328869647736169764498159487454135241449291791061035859404958710464109751754519059507671023033322884450279120236574210446776158202297786273372468970531027492881004163520144947347251180003483473359607166277193497670008054044076438187758513195802890730001961788577088439770653738545617914716822872059508992774026196943909534984977746548282416610447220740906323133607750271516405023459626751180357960092370682529277613651243671280317024940755382465587713490251904020009098583815559537266415358560481771320971474473873804188668309053322446638200399836678845525582184436566093050677602924216036123939351103899539078398003680531564089544346215452798782797289906049401115814021279048484391946861330384965940050422789576397892355390501921865633462253638641514898833937901589811781851108896638691362739765823400956795211949460658174284924194681576814831294047070324171601535093280612224701594261229862402209637144473464055835870738422528816540907504671193399769210768576468187667821331519859220570760052852309727123412391157866630526164653922729273703446632084301278118100238019858099398318127264393940289341661258978547697589484995660850289788973420291820594546129460013553307187061724644625512281180908172783103599418470008296685304628415260688768608881509654027260231365343747349991891035120279090916056472685684705422427781043293842178739172487692140028278662051431962342727676401420307862288949418426305759686549873927623986681282809248471399665435096463391390671893557551645532802422670241332514539875535501269429818854994065239759940374656011722396770987140126829693442904574384546723726828839430398035297447065079237559097588184077108539639930986145719081536292191985349587701850794818607832688050159207894730445709047026860218028596913368276680945851845591035269292928878305999025832194771384519474345544409429078523172156171797678109016351195410749138064442342247331217032833598677192147270535329424504115996139461517764106736615714893986213061509790122602920709465051758834527253040041006800103352580470222083639723540304089739369067875222500866715805579076595333045636984029724634363762191363157581210243932099671014399810499332272550186840343469792418025391826511960926117961823825936435569222012959093929735582434873762037677277731532079183797004213755580950831266883263294864065826771226457915780438380908639270972845755157385103581945166767349027126447430771429762225901272128107946933151497927487143765413833895388780082062676334343880380920022745791010395159142548491327438488045945760708705013244248461686418732141054604936529962873842325971186855640917216697286329623227843665766380979770079882390779317889120283697691778595479120270651475856440362347277452400039503536755513238304161727410958977497203665897109258344175062006852324673002330487785665658934730263370100237269564140463494200689614367181873754254561449626999934572743147161504549840865122150163738892298011508760060238977171437807134753196566511336536396987923606367330998668660572597983745267488562331346009456959189238002895889922140624164353931892091022374687148105204674048827610310872578934355112368718861183298370178383299762169494118132417740497249088915992423611945789863076511832415525965149440013520136223300460433941547627338452355902764607301459690756129983153273095427881668644572284814869976257328311193687935334591035453492552591756951085754649580524682194425740476408277351266780568840368910534225911451791968395248323654874137552844471115123110005937583163694443101025242592890851598590138553805928484112240141498983035870017426401736753069797458795936215550607768409313271692491965641282864662485742517262877942077696376996751184524368013463851115979048384377695262188922801463878875675099226113388234509217366158284644008570655900427079527858678249948867572139797846412520792176822002275946408956675015541765147846123453722912977303561261386934402935386742981486872472489192165954662787057549115907764354225191971888436723099471366090943624232295137133131617975367337792169235885588902323930866779632789191083375432972859065373527180278436179105060406755362574017131585355338389766546639014964374621728984577287745854772867430925670713119315559423344625430190162411694046205512342536852047616082594706816176470451249054089341139433000522086125108596854018444763582525355879849788135518247587335479632040741455656630555663553452123680263237045242832509985934192240765628178373064323523303958386166466044898346660577507144154026168527500865413173722649529399835754109705982746282624042554740127935667074101127604802995324786648663080000095008399412018664478697657916163384238181210414580613991150525641687057146917026367261061532537606940670850446426527301804443877766662132069878333887487509634929465016964968986581120312368907786567085672020231283282008230624977441164557537188844275729646056246950784665750439556808454008334165169810454483403877048105044083151456394995418693630644933123955316606096213829222219378844883206630063669774958082131449262817670167299066225690912616399009135391722385770216680757034098380818633076754499405736340752881579066808390542251602073216302011170488368304859599236902501301531172631220059591907854788303342682413867241551298922645138231464975630818377524291086472909605407429108462231210819592949358449842494272839726676781682094044557653840692636260902367078368042411270946308423869570146955763697047625498191882688315544569712787713719474436728809749911271130997630669944536915034744731697702068348582423243840032348734029075969502120819960706606188493485012795110421909275612399334339278408682057019314742027580397455600158152908900427637926759870179956479154439587233744809396751173342295617938656296001840151596433756033219853006546828971140773795080214274599541629402197767211362129802660320720712007347395051117569146767985140513944994753914277203480004910297846243651468445490301167697489453472039095751817354671883431822114979681192959148674320827604872924225882773714554093957146064508354543943029699288875701730783031736332965860943918256794885540536106643926150883905127681538038932021031990161682722508424870014452433816652641788726624911767628635122375703351183520488131081070531945955043533170468733801016621056158798256163808304502000704371875687624870929801992216767618836018563903989460791753570181547129983144736183634600099255729150311936146962982674796003648565953885952163063349386131006153077151592738093183117198855919248927457328280829385175608842546120358871054777715655831619787452873373919535685331513610650511283109193707966175157099819105739666084671277057197397529807052479614511745062393551087249840527953191940693674061017346137283079622186075831087560662870021234215787806551333344200340565212333204333504560426566688108675943371109900727973084431024513878516434545032262433675521989565327204785804237303175790996549892430800227506752022678411115423697552497354242180914868098146018923352093127190819819645856009246478940455134715199132522719822188502426131600919310627470967449591472975312191168801081666773643819747231381641185535467297753523512468493087223743039586993437676378288082079304918791102421365045897913017792440705020482231559440235182574529047355738648277617871639888501189972153906180771106907016093696169678279387578468133335793628466870368629718080600163522369569081206277198481094002257724250389456260880234495813878970026994993072673771747734073039065522948439261221028214439868753418079907878404647777537574115338760389763082148945107535952284813769481653728510713906573714909137264853516473730207848727062229161133973134382449582166296187887778969432730753770158302473154313811670621137262622554539935869123667364759987939346390271515899079484834635032725488487112563862250572095884289729374555843116894650068123867384876087850046852814537206576936558422750504457319240161467005351818750502555903730779579951008423763847368249196116813042263238040441521296618222546917294873188968408269279752520708338416005110567803823933296701907134846504731756966136989686497890193608721710334022199283677298097290753722784220716886820742906892827642212425690070825435819135867926408637129945081949013211295304169902533583800170620818339920235301505891640903725862728440809602223339351345543115390464180534232526765847121483629705587019162255223021230474388364594707092406537071549323815331017002129995544453587974320018822111624179868197966040069329000387950051083119519347874463397695801779016361412156188103158585222579508016503883192332366286762151874524380199268324431633724929744410878310343790678513768505634780729115673911188655429412735155811516015789681910299577656426782419889495977830840191979674091412419290005101914152676017922320787870909069660050187555811967106078731184618005766665379920144381362471484347490858276096254789939817018946477986394952572866167857422738601938159356226584934818408763065173871399378187208773420257145530810247070980867830503675076680912325165429122690917126815797296720956676089393798022350665988211333288517682653809679580347399078574274132061117014578455081039632943832948318290791251253496233933754474291468733187626056320681868201933510120925828361922519632758646347837274463341066728780422254695466686399981725067779113613833659242670455058286485962022009035328456578794191033792076423724798148697416150781968852037452270091766367428234685643338164672483529362953781579559845124983274662332391871552179642105354559591866249051807432006059205504785488762922483267911219437247474424528401451479234516721641234780977492597504359622090549476799449806262234043346516360731876358282715445806934343823351693779076968863760049327473328370392911733564262599648723676962866993624795394743925563224566048180585477141949465959138469239023457531500985096226967538101104500664938074429410777637993874538963598134941365732966142807661183884718024904213440885710175560482311817739693766591505603454921788130850676185451947309303719247717236346186035474264908498261674463559733995167633193014090173192831010722388574695330086243466090704847603131321805835256959390802679176781155247486241576650802051719406437941696031513335150733425710793972783194806892854281600141725252441726947509982214323691911251314372135619702583048381644127981618288454407538644479885207020391516414838673718087320220749366450193868545868797403069787166051339072163489843777332334136505428602798575546523530255944848538935350526407446009133016635440998261988919380855771271468808409187916108606658896924025126035304792784343284146462819029558594640759753073703536215072138615737831929310643022712928628963998418104851604675504802776121945935271712536178805653845473411530725570959321159400669214803942621862029157534607585201674231575153076090325706382021409560213071691134225622314311447004316166452810304063709201161652489328818670815022953756278738667364380897562970583749583526632628923539236474225658883945150695160560505345025422209210033167570544167627896505097919536317103211697371420930729489631510380812160878639162195481504719817980498255887430706233994912325314825514449000324124927936445399384028271851076009103832891256646086732980649492402401384193791792310522284384498207922350112474028164331580322624693286675124046411797256417192288465714958526369517030262869395615534710862495183251301620663372439737361338139508023554620791963844092136243638511036179690914656256856762038380788093245819672923225747103605830989359757079635693043219965339469971835813223429519055532368004975429015789331449025738780512454252776277232603178130949468770521423066853765699377673560007043241453236379521348336966232121514458792809872987654215629201708472868468037527182387960953004481137568848372618923675397307200337126242830327727160409067019789099098404496437422203106269428201826090444857019148188916062130250470914585606275641505923886369069571838575504165001911356460675069556483151181285275423186895853488965143820101903962238059464347503380921252813046152125930134999615861668887460849323868358499759013069106933598447951128022674308634675661571415095291095020672952359172992057361101384986296207121034550840506731716975907957714902261188903332320449338958347660231775393116621738166179641129085996153819742097486779146786622179270025993752746084395354654886579890423761937766870122890154181433065906552262723567616241864919110482130925045100667184371116237656388393653748066113370091571150019205902128421165332077533461660681843186024284329488834746367548229350904799087187973741446397341508627588594127329655227177763027885394547793928500712101051566985632660022741443671375474071684767627761159371800165162839613688397263839731793941178802181753069285540439944499228389351758588967826998781291471249649594758463527110038378723802544231409113674139854916708897314293247885376864847600377302455720170567969210711153563189879453597584434402291204131796756718476487702685072715181549681023473540139170621673576211467224026264833494258075879722162423652782281942843068200558336886988582039779310939609458986447511114309270040911004768430839755698631424613005230554758807315689349202809996835197744021716427411235919934881538917419398973400604338777902653510995453306059473845049906530150369669978575622043147689623969862195280305317779458995250179519791277034417258934736360401555349503077816890206450813126678162886741710443606547454577970346337053931763714135503498700647309827356095616661383923814563942175012119280972259929505857505625815352327308046374518772078820816955436124325269962790040090757782641484969397142046743395571444953301722491730813231415112863824875272266995411686829178973928671431638485323546295000337066649644253238313129971725982679780359443146675558399560248872405508211031895095649638967063025078008420596088031183632658850614152139695381929891086773696745529831863929702975691599356942345215816898144086853586182286382847324429817861144617234861877095001585416298444470007793332995509312379695903551588728969102107297382522469059301657936649025676411527135401045914660020117259180261109973123294335974118560498658360209442025041244218528915475181856990254458814249868328968736816841270380832112168000883550643279944954308136332224610062071731080074296608360298619893554005574167590007960138219587945404605817940738320108508078289415329004385618169646755507127275195455814247861437854939795021052623787293332766379712765013939627315597737603766532080353464416743069377300050038750621069410413046972320541208051045046916808751958713033619042052964775406431610746472500829910014601580723500975941565072204714471967818966212439960878660372620022654842575407524859524557434260221868274997346124526678390654196214290540024691624935362407436049227839729456652124848710559807125469424114178701902674819883387836168643053935741525782434402522137699657072538069940305943947128772477688608062550753609162981545390128408206781697662591466960678384654973576604987622687505603222778740285329941160744868611666814299506633772949145818540114221152767128751673370382900870220454382263670941539958132640025479807123338341500893606901378192163999509600402296762961257890767718595099955113399201277803282083507696724197132221806194337720445880533752857114026360238022930214868660537013026715433830764047757586870877812268997465722851200088272927511889165332874184267986738182747466161166479136919231951545554909682470862855338048347491797223706523283767815882245820613458095828209880628499208564365805661101663172851917046914694004215777585052683224752098128170394071112424078644287554605405719209457404894350069398874524142482950105333726511648894293080691738812655780207658658158456506524934338239608478962464961853632044229532579987610200350262203776329418551420399672738835893674994463658935583171802289027114441202379455547218701611857774718242100635785438214880397296585491478711961889870887096647691542378719300081685856671713697786413132763659549654098236929217532404781534573678234125894600367224625379508040308318942058747167956804036076068963521148235234314924731365290952362179437148154905936507632559921749757878622176717367397366577898694887271625562789429967802876621148229596568129233701975826530552159043929243465133243690053806999466431540741538363326224674221948329286721061220026680426588988285753336227722590868211773079134598301910344399804124254424677573359503948390587647850717783911334276358405336097494135329846747217959095958298715216448591826718781274121685993218523612132364573894420396587429454727416909623258065633012859318468829949282394326332506585336525045078349008960019485981742873704242605432257884855667509918074750946567592427175153171504715697006991056280329665879059207766075922528959924832691943881534856113457516182826290292246268044685013408262514468751284805724983128350542708060150963395144446218528617711343366116199931660598112800569118448479521022024173523538005027277427623395367482569182523994770482711986859478424769591299420411882727527946568252038806912622867872907634846344570884938692052816379630644058568590355631052724378717586155173065597243415864844938884576859679510389123478628137368259112957497534400752156588100058418724865457177182521245577430219540236361414456118272174327808130338723422880247185928823313071287048752676135062043704482228785340316342067757161600287240498952969092351156108183508880470679433754848552856324478112377556549540507878013307491079566550815770759766740507129611112082029848597048272494569025400182372786500009128715316471330987377243295309794491321134896453330808093594262153474080129615712374828866181105271505619695945082715046209102781850550798243051003561266080958594467253050912897008143654823663980731675950679881266290974132001319589914499725543498232635879680126750172955992947037429976826888591696838083170636867587512126564337260053735804088512736732004502327073912709948894921891305143279953028493536641812137403705516574726278147823701755017296910478972338470830475240799788367646719260948906054217183243470872953930380367483295269292240015870368309611193236185613655844653475113786405129558786052781379217939364194775649776416998876948417942264346307118371014556478925143515891930213161046169380591601400427617818674277548764265620878658811127909203850668356885929568582322513799182676031229639663332158677594421767865267981007369233888453923103286567326951442646801580320922515236552157121018328103571742903445728909757209916720070477675938745449075019867465836141223738106418613005359824745418345891955590475239913328276598500225788862279874297385358082147557935862196957424110493772316245122327493782586857388200314218910052428768636199317331511315179649348918082155973894559826570342990843051209866652302161660806971916114511939563090781265662111334785161005075455390244948929164780848587841139129277545029463685909956330728161301768521916021537541785659047664162841302667920062087288987279141133633856070102508495853417686820655060516667962605323019411518975215849718779072022082832847655419807189095273177320308552052563879570749127590030874992921949328442267144973413585079862472568492904633015023592900268859540016297726544563022624206448317443462467326855414100215218318770852906008207099101820945738639458506333719947629276468092178605082676104017094511560207905401383361503163043993449275391960798594454505906864250862549867810312499565600079627526272575971616571189974941415138715848780306618283001358381932864313556034469433778712741520330077561600827858968271709621782150340257601396860018743391023398181176078476124975488019012858916462330963149475972952992689213349929344511871490064600321273277362092822029427165690112770504241113801799931970682162590314260328607155456679913778036614412669730026815483366477981857211667423356786857949793687874668364887077097813252570170040967905213500432196453690302887497321797994666917646224326442454731315023971578318590056538038693323887783428978477343493913898599355858379496824659870603771446671046089510709032004546054791152919052624021738073331541010804009117979827586886348781208263361031194170815509548180311248742362767230888425722159004717518516007263395817181753193950216482513233180375347407172380422835707060371313187453631579872956139934543779994652378994619652579755788768639905884419171988757024940500608035756927030754719476979787281089645760319002162834542965391805849864541228786401940712619335333276398604257441043831862663835633864565865204845308098856454806582244070543988934622436274510220381312927205424256732847039580127270185169601150628144021707278248712104446432288927072301443841379667799522714785795324107414066246916282157945029195381003343125048888257804618425659012923177076373093189542683475714648556002375526177308576804648365749175113938933606075000247070421315040340617001797289326289698403467416205087698368271094247226138100419483104172034445119583637423309354192304702013598231797534126392013557769749530292733676560276835415709435266045526640866114421311608093702474005455208858008559337215627970434229904079193507273801546355246455792673100036823785513224693764020142523658397410720962174420740874068561681921912346421219597888022922229179092373696083674473637639598482946235385943054740578455655904778237427558552119211989283606276612927960929876040321427926033172424409683590548216608096854452576364917039542435396379136348101565917082461143356385003980066619963825173352388977629489594540285815173221456262639651848055883581429254431793082096359033090118487259151661344251212323546825493517613011902069667953458207530498507540926144028474706680486338815718643956761957179097534359724596157391499554219682865135663927863076720392614805658405125401629529730133576654042457009017346333092393444645154941600160274865767564988229744368003517232934378136148361985983059576342874943021419009264164027978282725322631424100358240459998562948990891096201354732082287291889816626111474684507033426711761966894116406321506864669431832054521636906652522234247614196735544734382586511968825044442730037534656924337926536484771228825777612032309434363378267895510190672078747921547428367816676919084374482214296772904330813458269755022511297496251778423774948516798828056020988717436897612438029238484803212707099248693301831301133597531516123368242795684294885822252351135021646239899012596370953448948934049038714561214971633235271480068925208237824467918969259393683444091154660488051558198870460224207825300600168580940596517041325417493073016002792857122500153373367596576851755634958955766252980694232323046087745322197007094961778515612403026958369487685935315316151251641309756670216334621651228686336757732173806018878164963474965984787816648471946755486208313351425793597732870441882869552376373556200400723673457290838945365700494579014361600401332916440554381066369499699873017058951734530029206065716913596475999231862763178121795423894760608864884369187465646486025574920206209323954738111098668234602906878021697010462696314731048303937226874692376564449867860264724109115608523282073255825049617700075118513589152042818706233584059222133101639858720065311226324802565340849493100847150351065641954597587621803456087583900031916836239427122600735993473321489391569758823001419564055414011516888296638662492420380761837542665163267837276977471346576154090472189937333125538729837555187751984012340287418587726995073291841500815888420700368414575818464443029453854417897079727628208669149251485261987699810193003722542349527002436795691575032784138080955926718652400742811930505228527100917834572108642653021058240456040629382579731780352701899835583573584804980288639150955484920161188366585331580890164608457521762005870015931113313819940239430182548049345937753647153435070988949440363499584814475281034276479895105203170310976570215227876665945082259885143882569554171086873914611453512255607977688890178140761800904215877086730384275760142343119460974410365461835358033793319570342381089691375850927993185918788144153145825360236268524499039806018528201009706213338146967459376784954142019308030845813668745345916390116099457264306748138886578629406877353149550769378141005841186557687180832257585886885300174952754046062903724248309888092241885054082211070730920742585422600547078788527785449438934374809060718232904273052523072134379954633024453814916538680696037163797259719128706670041974400396510954058104673933770827929353952772224035679349945150083848953501664815229067750235408820715124978633549752596805095540093298932710375831945745573606600847499042961053472027102390070059966231227214192168776685006820161235758985663634830370456567309148567603496631865171577886322363756376102731377948011779209900232953898987174741412269753807387441594370137007767137283448514332906035629095014515243624168001537773360574919165210251444936180265386103548111359106176603219782481110493828458606914241078632719092604694542752364010443411136060988242975277325714499837932398214179816164466239852670404782014791963330671821827346486094037580905182270734456510468643673015395419753574564485125378207249609523875052040258015230317104577257279914810129208858511701980801123670905519996511453730967782141933171157840388509142556699368818291897872541367419518495039934595496356627116421577939102196863841417891504724693076890581480431676984019750736785849696681664043856906740373273782044344136630230245653200091351719389565126706230295819230084755741413882055781550404653252978010605798791477817167404512406258128799147057696405715486050745740474717018506806598064986767720340901877868451810695700975997296146482586005390298336609910091807880443943159907688067433902308549847443783529261852335206707676078944439296030757005698251823543383469244836644671446601607241120293141173381343934054313794827809791407510184918486974326109217775784430782880434585293242506288751587312991526075028280970066422084510697645208309199877750277624121283157837761889027560498389317128524463971076241106832214026706752595504263493569534555417083811736023907115016439067401608700002807377421859308932119136964449876665279066077257912386657508245144142758808434182208683945101313233821009006162718419454770806858449345438006607446113581201604610779457555444006001440736443354640107419859351368521938273487908597056125417836833171713371722070668490732316717685895285516829749108357310735390263202732943628403693986662439689187905144460507456739205731501888020652271465182633342375592837779750878677851581253650114574502229799931054063833445321604231748235424901356124473132784248117119599777033240968236776022283642359032816463208294685359669275493181817816869519048059093961076858599718257818686176657065318808242232562478651156246691908368466347662792110843123475917674789943335115584383388354512675299672220101968228909005510237821319614775073735329533029977878399280541381145672105346303533303587932209595290813994340740245494125131711596556588517161786920191755963086145282419829457051349460156855475376463033275708736137840499279317100976772742359505639992403642307888698399008925558171320970969262238936400814382902202742035098720821084682136389495057728151018348944721996491212497696513393538330521786295273697979228844768837211522010104321296338767699528498095213968546557603982073381500841144360986009244295617558949611281038302012060457387452595642280756201053311404424881394864325587284626504992145205028028917809341628909906665824712851226240446237040783434365724239395999863899950154764059440703738010408810437300521091501225097471560975017938595014816103517943660084467995548931689750937827056291954534376821076203690533799404631031588991152617454226743948965860256276341426345733497423100904482108436718878608307474978234292668969136314171703519816515815200175642785016305349465164747546402241130670760513456673683490676458807010961450541731264930520183135224697225955537695742553732999777253466850046048087694291444366361045571892389242299026966860040633908587270214834509479261979612394967628509419728697139526799946942035079759562930510526695465680000734765214805831976101013491177040625919825249189699634047852115826564420715177139972234890204373455308381933243769847421693308088163791656621504289642715978615761340868675782298170975413780922400789125160924911209666134590813382616690648333859801977075393202728803632240041096850770262391117869955879415212543936490736000724872858793371907898561038083286851127633422861583562253103137823080309805070872085560830351990001600626011155457897040762491006691783989435706667339554183798004732259455276014383165281135416223887856433815821488819851100122183841792091346815718614220990760806687824847220981890620045114058702153950803306197348671550442255076890989703203345922710656941096788165521675103179331960564691870015897824492287288248623833824610620672239967346774921427158371693784953649265054902295884230790182988541092177494494464744232360726554086223737334082178889267786081042934939574949315090058355189910812422986563136353026669725436718791321979722348702273418280992575435016762033400875045429404641885063483063402882391961389028560007506891114568475366105036056617378546186355069232639324705931418908602969158059895089436388210229167445282634736989300980079340367929541014353325131799558218328365786553322815795342424175099388723098289598961749474229598593244291278376316121877284626661016532641762869866946350912319148974428184612132103287112158142274029691945049538899113976102927270672876862719375415445387169919253668044529463064928208096926908226652276427590681080218963428497087325352333152801989651671297397865710038590674607703299156971604968482342528862076037653715905814981559975877762177588626752206571501904236688327986595719043422639795335385624321076000563753402156971905154287583050895638782056172989076587362439683214009767122930886313545883774553114991824211727534210050695922360703712016128479856121099849018473388521975493480913961580548913036746274540139230010834120968078997113169301408783675912099509751969541913973152626742021515052644842110663635213047239403908168871830825433180977728542368478420402525005777700145479689383836513367354029736517260537071700734879003348633637224698810600290369116619530791914171162583826924704154815054527752842662580702620456585148482248967620502031182281761077780172363596423607024550919794664829939923769238204234714243142583764552196595176402468987004880778130672350419728967682207994871855697995812932220992325379645952768053618084769479877873399522128965660648770540627389127165449424939736888624498368492936798874177554947211634981601836906095766669091841249377816707078734929552394902936490945879933516769690639100294508054018050139009096675240855638553009455353986499211683606230165897722497213416718281440842777729698552288815350562267175998567608063760440680979222039292777996373086468200838020491256077641256002907645327268454731385876505503168244495757768750791949240924285412235153166573225809515137258172795677551602511322825878724031552639921619525967524289927520597539442569438786487053904538702417963689029574867592770141496078600889366025098470446864253384022245284960016513123991392711204664243386026977865163471284301414947821479312077317806016837514606872600089883163124814802412433207708585715010808753075148381817310197605286819446129529668060779858548108125091250529577353122898722922200034914697617915270618245434811135660824430415597912805475832856573669702830841977722368555665718176047792922307635195478729657048572197329532462366155258532011770683141493286745400630542054576442151965462599278719712425413800727274544130315079842266631221745866655142348063495208009196333873297885964268423239612808460696738308632608413462622334523031049891798693968176693258181315602417302495891007654123473830783105257699516177848884393199787004934663409803565003765876264954388465419164388173718966581077844394804910725802337467338907686012355888508823275965779153800053174902473908779689953105646757898080511390318029894867437451030451171245095968116064603776332182253103175224289046910791034971276532759333319131849823755464301548490539961052493438096740806064305333666450024952227680957040167327899270052338025526404987932118875936832138798961884831802016983460109331102367927045100363512491855789712422696835186897193192849834403538817892801243302074474438084927163086290328474605056918593536204566687173240820283326384239477788656616663989713392746557873571961514066367778197024898578467836822245868117203025949896426276249233299432996398517489338257294524390457474029678506328518528279331341475980257693693679990394722260104726231074646056279058222257424424236036380116616806557870069028104190567448759691297273453844312580386518870319226539405553633866999530871434302842968600452698995603148723669221144669648642707653094689734327087946150490426204327438865499077434162319167248584728090577062789554693667885359018817477377647266913942513154530448443931643996899688506756634029232074069055486951536530721440293541950637095829719689274154651193036491089884243295858327972660602678614399429286675995729742415151136110001489068554342400536294102456814748707318730250283127713695435791312867934459389956581984861279055221927304294752161467941839633302221971664496741271409831015073400999940675498314917993973800740450682401420940846052835592094064017205476061299491870770045135966888010424626806974624687237004947936909490879995014135899047530197335412547294176788837233468121784792979423073294739560549130891166285445239601318489954819614092548067847416377200450503916861103398046410575951458064477427707032340390276585671187574912879716757643572836574398294156591052696996216160334388187558119207216932972092252145076708354031813801633234015156385653038293006281427291583280388514959031973057295522058201448465844454278334600666365588562137396523887073604858234615491307328962650562923110078464168365933306848934446089881246308621134981931512300835084454724088446039751822616907291079312959708774136381976553104200138390583677190207578327396070017187199292583069586459976272459936558878229083318715884606146854075163445217066433357881639345156199860750560493640215942014041012593453413567579066774721848984649384161085503576804221667269883129370282427893758774980577135347628676843136704331586612308236258848690151552560832133336909157335145566128431487384193626380855502404273150567246425257020595576767136438443455478420634652690969200164622509769808111980250836058397746803532281995991638441520657241561899336840056361710608417095245618904245192354978230943502164144859798847747742957173532610812174240510961943832084894963118425664845047577241006137201514667739299198167760925074488950642660963077001998772498892012710827544619961689014713490404758608095292837131304968563721486035093050928262155870703639181064361050060200695074073390989810185075971187529696469000294321691587160199510410795681907087454451215866037027659855722966688934961094241810507404137778661588968855677793390705432045879235640211590747049202193260235185396713244733898914733641391879957925100996072410387759371009018195617681131878978971082288992941401214302734203182837660762812907093110198891301178259649880643958012044354429344947186490835457001689094385863382044130458076436686542317197925480604624745510549870820859674277788010507258392446224217955287229645053057613318412598107196680309210738288907334667920666018679347054205745685813659243316671796840118570268458785888121035498846987794145519169713372268305698543578954848836952755434890462062352999785049455231637588027130389614513677008896207154241986921519118730134544421662178303913094756118477855926037214091114065092725840270965077639902938387253438030931482785964581966451169164265780731973932614454685482713520584816641038884139588887872497915935581987032040831077331660443395370158683851698254730854748610376012729391217983718907757249377752058742125539495029988393719792038372044587587802511224517244657996392169688430877348325390590934874944532126551330925388243963418770253573357882358870546555979751744831454395509301612978546250221533010714353631123966072815349797198032352354841250737934212049576877434485687352784157893734041028424484977835179091096842007089597172429452073823213286805136207001701868232060751664088204694965045771001586421857251995974461030107439975036309918489955484601299219657983304854733279894279416878477631332013582126556558957371853388291671556290275716509227334262105089963196953301647669545551914686686025938032970798626543722575530024484406311275415118415301408222498063110374025873560049966380117199293204534299808343951917884163318887968504970186846376241201289898699962934085448715492200397492813389694173208527533934639109382732303471071981416443872676518421942361309267308985886924084278802566670518065620607135171421849338621970526359790822891682760455700182016296148967666707567180282243914109541861849755454192524362645929769123790031418163631155902012211615017917026400484654868082761216645968551800152242812183755577331500085900498048614876017652734608975918163396773635892015104024730030652702110011300448902090367974198872278951967072281126921782507625137203990514974279088487496580356037509772143064988859906026910576321262900610110130757152395925300157392032922367613579685906963972940875804622974385442957966570239216492668835863784335812125460364358623377869747979967031570900982097576304307803218071714923149247981342900025305623827661421248793321808734176748193134148558839025417011871589235520550661347202648607373271991865288684464150480723886263520135340886822215927191438353309482121136340919268986673885067913207256849005011149696616063726253444804175836395196412294247555775799633148786999815810089155670584659746224417071625611860923620223814435241282967586750877673091321966182255949787283062614820564476450605150768152063204659383505967487244668661724180306583536921030530114156337762100532043116267692206552520487993150782333844056374615261447770347512090073718116474328824218627092591127205491194667200859085530535004644971223415505543843917831409637892416617480672604150686627742819866804378051041399709623231570117543021951745234425919859922508231813791190555632761274241312306108035223206653448801880599590440825256137733477066398556351688977587522444978665982640081956051300444781949389323351047993752782012594984360201196962273711806741172695114118381812389354846717622772800613301821815272904676639273487393052138810374807652845077185804103614940812938970389833987202038870583946172630685742554107667646886297499083093068059637750072511499879388764904144860242221097454321357384942770602423429632789981588466545981879221118326705808114923924841835414296292139631933449335300772324546564630511900083870654715438277773137206868350241340428236803550925821527855279969274555478478158366244520907998797075079148309950998861401794100277385848186835071144776188773826565474191685669522478729997949529818239386449561475498173237488453984518435331019723118492267666492577491514161863515550666708703532587164413253612992591673815287408951521760877364778375752690776744762720977309092389989114035392202143870590558977091649212759275766578702644979083195368303259762855539337046879900326875695146872585243825261726946986589922798827458442595599628675373585517735102575341866780537668729901942402872510781120376506947408159832219890145685552199494918345159916498667248514607013261714728641379640629220469958706794693363535735631666525003992587692206002985185342266503970923996665333959687647906561222343248983503712341786105778232108772185417962026062811314553078933399978865780373041326969155808148171431899036990423005742914064848442240332610648364845415687260801786857674185800576501443827752185350352732592524552587800401083842684628883176825011369740961960160732134557360294564985159402416086964756303869416163360148558048896367152008216305662792656184798223857835931183198829563373499574638742925042522514673096910936110000654755495391103392038468653034281998566220931554915341652107429441760600582883557616953033447391114083549738043108357629461573765563755525507980810623963164698730305294315320435506984555883176061230982150954203787938035402320435679027960980534248085806635002789673953182260410589060918618821675091085993496048247899782290771501692186471615795874548905879913231181941577911462797710867392887567281881750331239861944678714792085690661747553167512451670530372667058919647832267982967089086376820136683516271930194708952290178404981367840078817436527183043553245818334894381587370268029167668179408898219978260531222191422470411314247174118439757703346179178789907278539091817163334846615598299277681753021652401671940602807168007729369339696301701867788453279485083098062005614438627585027047044298285778444605693729934984324480043577438595914327046687590596792526172006798734542517109797554762272698230683411645500267267642099102477394315687245443028793637784584895133773061133393722653691910155978317985569192388237566825775237182286221623391426047103559072757073385369103731449767080734106867076450702070118896037819415560486553458523573552226214129855128750739195388482672532234232191481565468661011593173479277337584226127249102808361468336598648095121531679389120204639379480273907979036182185862139770899280500052813105124716943405479827116920168253777377168556096449707956417520575688779887477432197625088841127321985606291849915374118942609826874590349745130028155604732565255836466845629287751254751107669427857315710511224758797433469228627657607143499463273559205264176480159983618359076351883293677771865084161304629985152572771150978652981113593687962121432203439408280700131797116851208603537668986777268759137257859963374591209597118475257636410720498689029560555162654874129857618060179193173728946921069321237618465332735283396655641358627765006019404377241342484738888003065044000020390335459323490316493081636846239409728514992487585017944446912467262928373362442158686614430811114070321843184386721006823705453906690502342321904292266663912071146490305426677360910621708043170303837794967859804340940957017221990594584726449253304133781561818389687950820575191762898309469716772870580642454098152614287602245249153415806770992285482233087881470535980050290048032687020154329170227864546363042251932775839087492055479092619110638096290397861587035741074844421647550736627962911215489857838107857732446476547858956775588157559568405482607507592635493672505717371679212227253253153095268329149307756018926396309195951660528697359969677833587972776836345310117232649719329653880385447168382972943127105196880856900334973296809441839808713059245866812726816274647808409645154045904242573687724786345989562213593625721707076070973543679438205029567850513062590552526840420691279683733101667872779351941062773251255354596837959431546003362821310346068270636750381143798309891841523460063726386485857998087772262534370235064091934066924608968747468928648457380339360719441144582259653668193226131050637636593250563036098688163488914636959339720092655102270709399795406793008150183262261077116915787332756845159761493086403836032016190806638250204648281280906987160709212531879038781719208841086996500936213657576635848194444633875495724879595032728353442348284314445432810717708251248020243104045133166988162085461121873901162592210326029336065571825248380911647065362075877360033171246204633390648953252140625432942570827981191074110780170815057593692770758462776211654359340978405060164017669346629964813994426642756206415130142292223185444208599011018943727327123150247215668761370124451768285861434528106086357676907246771776345276535177832015720061661364490310196019339215225483926394610404760034933157193092530716277183790727219545019412969217814517381174221294209383992502145674867042013260488434584250023936986405388030929524929342369745099340244020466211062254621326257811567288966209915455485014900603143811522371511803278417559860935761065497701838072125290725903950369321626614542669306102483958394528917051778919455289829629303744985009473899692012952177403866284051455558778554411274744331760774235632008478132320718554527115976541208519504962444675194335095919561340104512451160752304436430418055445715600917299144299676127674004790699571643433315932017035798664139321892447700081763674960594908118247129224938923347843344337981677869744089386414521887821797354938775563763662492231285932815129281395745730729006177106317290136757156208601702286024912528324780925006447777823708672112049723272053307895732310084786610737138696185645785737550842777995672023241004407094070614074641565160505095218174840926540967348110990287959712696827312676021625594457940487386273796276361151217870838911301866977692023278728916832516423060895314885429796685041272359938042322698405624828402523404562126260728556348471119059574475288425970275016793376246089328631667869896011856939135647626535135205024820396882294028560969501316772121821042597222488997890031100921823398604751632239248994253290012833939476534102804549947600702747200226096891701628708781150956492453953542936171260664863958406688088720693940212765676272080170215928029137405717931669965364963134811131767509411737499649099638875195334857566429422506083375231266706799675774536055859860791214559704851646932016783023602832371589700244135211979334399779719173485750773282294377909185713380435694156602389763616109922096637768559405584745902365588742350836711906254738801404780894798459640117350815919633590211103028641244274479263889693275882510200367218322432446411884802838801469840542787838236989417898631661421259601973594606151585515111525547883364514564132940823148040626879913776148992716725005647218989327363005206842109716199404609802420519802649063293989834471521557785522777451843685450241894220047561399483268104626820083886643774587399986119902176583759501429519836736267630661986681858433480084080051029895971171595778417063755095904506405590857114045456488060912711407604343454187017421380679782382083333233454166101861649468309059497643902315804052159437772716571730128342262615146353669671775504874859924692873771633562693009244011454433538969383487208666303412122903807747914878377984004183816497380829774053044597488600355294225930242578616340670789736352829597857648384894831362455474666400581050968465368688302867933839392791641053287376786347371185807307892408261464572366408973986769949468001077236053838185549457475412447085312626350750115499863516371811973058783891403319906552386891332578284198983179244768529494864674784459164968490455634290401685484088436651156673848804993954118168429544886648136939505890446268066697197318151903977986095513878073277239636839748285850346693230017742543106972274914996090160124047946851269906381074840893330955652683555760106001613079409355917399975195033894933416171723372574484497316104600171647386838639682755085997633080931904665005628690846993576497639736562576581544579322383277148690916281937134144831792918801155809478875237324479478816639767425153736592894665943359945206156915682943515927137976175869876001232796804250805912129164164549934749646202044875088869903975365825277131047443399270790000059749790295062863495608257469248294987488231794738578968259121494649223144108591349599364092586484883623654225928867308264048800753139663338800582125793128931942250901641094712900037644895003176951873645449877716652212750250171387157067422997036870970966654418922169734694741430184710525605159246589411486457304025245350549470253972647801853225105861850123631262619657834826053418075430440347642585115902304381146520600112585727390537122316041234630269845451133808654790864676529607311953439842460224513225342031561568603778819657538189852799842870590222090135517042688736293319441510713123988539392988069462093372876507681687613363535654035680723599335713434788302756854604384749857840141654973518601939841420251883345715268079370853170969668611816746879123418742778513000475286902923654758776459117012152741033900219762099736004509440332681620766556418437217643309710341099043065149338614836827232845255810292411745429958709051754471165952322763062923652865859361561274400339770585502157135438910596307200170308187571375714227690708337488352859906960559159802687474516077104404770418047595294876627770001763705675016648622252127669182331364203754222873329654891018501286261875649033921556887907082932337251548086740608670011387747135554633094140628537281722193956405362580699738255238993628557587594346440624965580028094007321821783008560584203979835798065039229093506733058936745062743595808197106500794164337084493588278653619006878138291153110041558112235782120989125943295514973879884056648752994150567052362354654540881607542083989055847769159447570857965697264724301608596544167561227005802800051139874139878077360216051908714109236268120276864259012254443633530319745652455260571989599421229795261005529303382716504068428783775832821851199161002945595263894010705773570221075824607509454329447081207609499447673902870103970057921828378891968077122236991319893943820680720818417526182135205971693238569765779928763293339001657348278617602186881523513980732017955471361570831781695338806583846854264327058741280330285171713313182529991151269660243236886311962785534357709123550878449030720677623626175485456991368085126508603709798328521661138399927879782228881870411976780560106030748618173867265536160505312224305604878062241660541846161291888998237194719920935545281025479332906499187011271904117072386312400042679124220684823288795658896778973176853052485902518307355652466958365874899081378147227270437443484243389092350251330974075244020540395777359837948186769172846468040360270485664407835144756882607227069079068047922107974831260829566344581950975151094917446763767589058989762814155031888737065967887849541416429592087808471193529450411942729937161574177676051942271811530209135878460178768774580145531771615622320626147677785591391489262818631396558526945834386447938062057634566329617659638854431203068484247797661217849137992169881081399451442682219230939960463299194099425090729856359327256137725347827439756170911612370391276250536388361732874861899671061936187672382539624204465810426190198157076171077113468373093838342118582428316570020348680032256541969936619336673959926248127292816995724687589745109805818085795163580622044796702807440271629152425885453952329160371128229617145421011838018808583228331310443641855518172044121782105959099910727354252837644649969395248681071408579402800702163637629844795263787096113463526714187698906830322559906294044080603487452413425171301526825231158797563511378548564067443779520315101118615286634979005085178495927564697430298383080069314670757477564108998846027765901963599237302342881239966923106456561199989330550315252919858637350469819233596544712115806408029760182004107224878527992012122276347474625740386909095946886769220623882184734581450752920220654778962000771427970218365881447948874741892269860820163294990783502615817789290365896479920387850247626363785755689825403666702112225012433090900546920092512568948621797433751609064925109302516376338006084735338787275894905230967763571624745244104967967089602256320754803485247381530853636406749321876897676986491989709106605274066706503707167247061708209291515621988042486433037166314848722280153249128360193074860279897199973028927436255629106861825863482230995736910602201028111308723707197570613948833494376952045802478282893620306351505934401374726507477544537836371602450604643062755135255223413783423387871705747170674713864304473857283216031248386452276354812513005248171853579615509209495998031017694839860237381312038127869618669957297493307830823829073623087974810187400076989676531401032871127426081080769661496945362667141117318571458162212490783914074325864695559900257305743157363196255087554987583182076980149995929260041958707928654329170811327758015691064897025125924590811216883841862102082308242251586723502713505255229424858849765310703274553596530166155262450250992102264807307087790899064203074740713433959292435124417482551522115540330503252261542979217455019160969400686643156137094128804919530036415354303672237275802024049608244162159056271464033114720938915975973935767723908239772952602060823151226713907547109572244604569017264862765270448980338596939736308808198219127713516104316810903186115219705384931757798396640712570969602181907947003494365164276889582195600085342136123143135998011902806725552687478648306766658335987488112925644449455262035882842797576074590917702284255737440101908665570483128870267978773443469476574749777225730025529945343999297692542179390291874538338214338988231928555587724305593406430356044271125296169302577517469076422568209272603802788701605203910694153277226725014928626774174677909327370204860137968514514209240158017096883727616949983322761781061096321960550293611450548442904938418907256208813578135174777260904171875235254904642748801095775423341959302244301710247245210741278405770672813841701730271832907587318747270227005418676494021432947219965908759450441199554710645918761541637199205978230531143342878890403914385037418049721387729983694755693288928401737700627665736854572302357272340448143603741713072313745691479971073724691478096807336977800503495329429107783078890395885074185994515167828614057877872825904539936898678980593969671173685998520519297223392882561259487280363190400664475515134476566060781742740979298938930104099269953053591368966265201143873178732036915343534427065499071822390699965315055378879839085653985147329128927130354260319215860605064235607957648061745284232021871092874799494399389293280243577422690141473568371860259297526752962762633895231332206936151302945214665408686131004486332221749968825666870893764100729285220964477859108073163798781842736633556804443867070685167087233678871148312980077599665277434885992109814950839270981470893877787602326600589375976339782548496083149579177910299917192040984611541774911622717379834517784446728112139734324368493765674651580053101571167659674682614626585819815393973462633906295931261936781063522158613914388573284515573976842610850547678212242582271240714345922749562278029038288903711915690875471309004716650658051783348423655361241275803219692459614635703462036396803276940659408500065629592775848243799403877713852006379628510832144843840648432224687044181812128973281386457231177690958241480289585634788577207905711347291090222626509279436254469904030432479882124548149986448446720552656834384415156064365846148043642575858286590465057608406300328189069677091884127556500482105527044701162037681274132695188360244693378807764275913380836318369675447478537913356525229321011568481989151378319491660387145065449422158698738787640052886867851615911099209958768060053698059818043011852254256924719619733468250311669454900519436941416248551706363549751434360333040824866879888700385537717507602967356167789323036270284692249687474984606975425840563963167784771794612136688100351968757818692599281147772036913518307331245661481332595914267694587335929249931596330598865374614441983261679860758711939974122413001069446525351218275507120529502407825595236671916058279627868670712723795867659032367646881316171018358127400123922072012302444305077862845642376211598419970470687867685658868742087461333072115613229432274879528493526097408925520822724631864706536323745724985837349311775645194507954405955437301028660772004330961481198233963882461236011916281042846144809814204517598318392490340467524922951139598683554909389150277243615504899134053365616960838775960666448830247877757537633699588171190773364343341217289815006786498096113836053784875656118527242399804048603655333476099979709550049809851278345977702466125625442867271074495861863010961007072261306475010593470454051289758591710725024572983494633176148497306623195189751659249849291195498977631534300834086551919823118354462048366178072278899984637123942089684075476623639311985127426900130495097529964446940829142136386451564918620394332725634106603102623707919853548336649881873175301136480904672254493589777926125423184818051240140478492112923224274662358041509185937449257358114922843984772531506969633417646860495562684923127335460560699145662701071219620391611888512088628055723916717218860408553692815218499666616855841751378944601290185638413611785325381384265253176408291283558238848660457328073336900254764606358502773118474462327249361350170842578754795353480052441907994813108092496089255872878650406284406162296997813222963343143347305373168188318890132109494848575101590748915283436550874935210722024634104027837975243616562925199882230429572890736882757869950262577259211193304330007046977620944779078236847957813210758230182778087425701197815941813348573858076306690174296345468074370367550917582732793320324671958856020288015188009634355345135412986814847956330243498329297468219751925902855580023805062304457361769482641848174889314397722409653724986109919456380989482978254359630747221749365158918446958393211630731953577839548547982496970679688957848078056918018089052735144002247615526602948591529360533714737960978901732399256126259725419037403575941368315370124259497383863282165985484963543189002606895553661757967736067544265168235732807352773679955554895505903403626716257511531527822185642158808758849526628332471124152957757871496877047511633963042076721451057326947991526516372862626484292513462648453238860424746217187739826699407927365150630962748650823975136594027278246078326650283184874283704366341152600651068026038499174913998006133223886889703700021824169128558757881533635740651205487335715965202131901737511237757829759252292679995070981414778918275012286199290892816622488570912013580379646640606170921040688103810277913283549083568531085307087461381682447351864085513656668198847782037933302884069465348657871856356003084107796479281665886710103890232680076908568523341350326742010155769088328842095002671999012693245228672061108651983820143589234671953269725877289715670592110350629803237894138405533370911308739118079828927621877904888663709970122717228263006968632344010886284722504885708614698556219628031100728583593384762880596138521821470977134337000622295338762516685221108424303663980174953448560312164689705353273924786571370697057516492755589369963775401438939495628089190692229574094432835021150353825461378312016098183673005821439910124172764173069841501519931298646035230078710618680744889934565005439880317525101037447758574264477071658935661804983978018795747880350796403485642706368835324427881819388400545102085044895160068638312706794180544150840740706080177641413104708454493614720879895258024725466933158103092778558662677653556413381736941805528088178485664526270140270731960169017862939323497608157770821788915225766456213151993186379351559698168866224577964360102083543249227031122208112375935639083883238542249632899296782100777789643137769295996969598669812400351945446301680664219388775865688208148654491134012946249546528254682278874193371528711379886002965358129466386648454135377794008038962736337237652732818052979172710738959906903470378568093499041313581914670821410705745717109738906272220327285423463992651910884857739788318676434215553425232380971569465919488520790841222016499022917361932616682675430752753267242161202052652810916780029601866872040656475560568733464024844400037244032365218103542587370394860769048661380049106129829235206452834027096390366675386929836531046128693760820888675833763861078672020474975941380874104094128652040666661793061211337233987875394328881031724431811304271450478890000369006043495264492979246333002271593297904622933430915929367179898871786817028952170585737976042299680002541409229525986488618973646087241029361133582977690585667846543237766484951208073956493507649334797842782341066555420504536026539370355109597656544616246669412853423469268656639255969288688056422811608843011704112040125929427148994606831301981276949153093984656229489054823082459794177744223913116815231130391414937574924683820153942533252855680033230312859923194771999653154306728610473618252750699109287553087983604052032171831895763554200628784683952361044629766977899150463515490311325089550547168763872155061798719162526791433609283747357085324541594366876703576068513582056333874453181102031383737094583174713720178245428659952562164415549522310019883787919486989331939731605250417243403928805362786739880358634753417435150747684264900395049550798894830608071416037427108398603520494265006475594071352809136244049610519929134096749182811023463906563385520567607881168941096983568713566951645602791125142632982362465195739055997904821768870864627431246256081647314696622408120748071882825614859274611528484812255708364173545013151986632322468634571967944457930084710378328365289071495916323570917128849089080535179195788074349643480149205242734324586853980323358319024121450440981866206490731719374681608492554819829154448765196027609328169730603086059529967587329611221817926043341097962344904084372363029960962657158867062327282277255838164166760084890827430384538640808166891844204620355620945969951268658541956029243042752958269039916486996158764164891273459076069009105415732153537376371345571921409906781233284140076180082041839007566413891491136557974717879081257806978395181818114247331616894472573040614680457158839554810349292203034802707670938025126554273715854979568805710103503977441869544090834207173350126796859695569963327180333794987811620056574265210349958864864778105086910543474180983184358645576105540729729011096196223051113203586473071292307767194238464658879273963855385820384437758602584223399215830549271929955696891866749810548300871706542435093994224317366745680530879125342822500194838543768568471836007149030271049307012272691843219220120846995470951691897314998637764909948469985878547279099297556851590524379686907643036566403978103071117350623928315170484284681738795575203892047628000663164174602778230889633717813564425331658837745872009124834940693162822396943713976930133661839849601901698356673563122838972701141359712794529144677669828184280117780344620593554295552003045860111711432952559262373856460319897790045144906332931373304390047031950016467335460073602584705339700808937474214976826424244987693638176884452775588986577078370444950506096548568979053367276286070642128625525217087803425864885319652626481460686392312780547349519431938326382714780367998015622813329199354220034858698470006883410544347473386867565514639495173499411117069956671366708440684131280684343739275071991972212761201471395006123973461564202560903139424612555070602233703729437336222894310774710773714511742174167694193119784476686424785066846163862848759481897767051898697653114631373982243472262607755005737626099135379349903853421018914073403533460598984750465644530157441423215768090929064129401662443954293126256902322794753247926595014686742686515866783753987950972192752341171537970154726114209841500814117382299822792640531870051163222880608904951892783980745751154028182024104287336500962372124551464527808252848220068853766934774878827238105275019830068919384956822979454094060844198423773929661269743982236754308401199445264855394488192145485055098492076698294295230641143625099673166413252580369210456573842565414471345333775846125871619987299100335531957270845884094879166812730319377313198993281211928517924661793888615425963551419347710479653149468088821754400804654982434569566168315716371270975125396405877863902445970870667293334544700235458631243962571537019396840357746913414496424441616750076436791766277150372144668080675952196929191203349783263607916946971612815686656107992742660376896503971001498054693444108998501322204586167543470263457883608055530244955629943071194427170236069153009741079159559953448702558317305887310926678302453268834615747686464458266705697380301728541842879963284062895190796218287928738633683753199871975124870482193962927853358259857942545589628087534649380001255013358753601211333196558425319344831305897311008108012302959458781709383078793245865421272693343749579122499038418845526238138033884146651404547718446678589636217435938588821050512939850445337214533281193171736209031211300140958393398831633778556392642777346317344974238003002915372426952157685019362665940157756802313352125779828932514675814057946605089678171765515609467722013131776635346116975295757851902100939261939605681892228221782755182036405233172729876479358832153216229455575833135596081897874730424345744948838215869449844832659762131986573611796918607273849391722404211991325819139287458391031865769599675246381688302760418840122079289500266013156620381432191832692442767207597078938908089484026612791916943505699048342303729560283555450717157674508849125983862788205548641504918609666041098013285899212100299222366323895399299601607137245840477048111718452911141032122613796414965477710852131974233866778459764510895084236734350296632751780478090046709754568952110747451413314548685032779200315588887209188652506173843129486536141024410681437403681595474869475004069684830240851029309399585747033507532357738358787879541175349476126770362000301128190872096977771878372507945942484050118791861169269838181080734769786691365689542029523846271567149381397263208543886820074916483797861697016149373824686805575577807484459234396739525655092296854572263195127255255225166342330542719700293583486641057498107139347334469050526561533286768230176553868616361162781587267051467166563139347081473015661176537096915845567000629935542886457502287718966583169239206690351413661284236824942423329509370612570152689196982722471320306273344914531900968628499531934292821345808623685983552697981550452053115123987419478078473525801597970347807522031979594221854047896735335463242091885933813217324723140712354784426742575922999411365163676625721579720192829594661201592735496459051595485921387642864843219263390516414221265533342263504660166889220065528311346691861334856091396960153446525535407519400608312570686417399904206324747497984488890627414465367973454552341904885782843633912401225527145062622432280220185725431552309077099644427609991527540236534283446317742214554918175797034941372872662014296324849295530184196217601978797228578676035420505631070389571093616306836907768549816591191075878039937589116493518149304082055418483161605004067578690102593523581640264081166936879914044491575212159178716660947275894551810841551136360674052793236060267988884834314155628705450986030673358755392081100571546436120628388637401887886788120880216792151937701375677296524147619970140722241746645652148144452295154445418875862650050903088763552799601466420646526547949556033341861492154902520877844334069312075420440362729056200953517129422884634098501872669976634286359928962216493930897305968464110762396030565370399880396308996911305198555143123080818837368903212779830379823835120276912881851130018171300402390254155834242031778334126337844569407089587313142210784370009703298313597718889865223170787619241501367060281823602715928178839420886036993412439148179944270280451185141503976119230703760054678255111652877384804632510375919602538769151509617309016522584670374329167434970563704333255900376465933515286558543240089564898626828993992524924200195362582383179181333994481412977489173746263800723321184191126443466949425742251508026862340958788942201166597709593316944217328134753615594675644974125247049170834250836834571698622176155403443336891282650886892028597958940898911939797397384703078887488085907444688263612968953234194056385552063407590139374920337651363270241712125072749017984599053022366051807538681758232376284362568562703156588887697456294641304797626609703741498722754744058103159323229221630730130320356725888444998154737075153218361210515555961197340849823195110158330227201676895831381922761974177352750636707577128854748905404590563927203105003996006636461740970843896566587401331827537015464424200160997320997997041342618915935331413860680269866004384499145499520874728478616557149192037981339955985968921790154205030289756706844886423898746273091504780377766806513873948446685124839358120489289495400324360482260594851719776280703430586660588369622170520722911375368214386916011393715828274466701531668096313365089557110119543650561848572470566079075810082316740985935455907017647428316850427161881090445890666187794853724003648207595999731915327541413505172094349353498687049925928997937994767618342801818211396709313185925635575196405654543396774575596644535838480969009764788788705831933385417109029121496055179849574636523896519710078333549685348045004289184074523117303799402436861752711289300214324115343519504047591531385986806554810657071218456052467489203065982975989940165009864070646614356831939954646872309065096022087067722761029310476409313566217003045135819962357013641653991584625129350082347855289151200600567434882063043445511560043319776356056766518474113680537836327217750331852358591659288251536597532818912061438976013706372552475110362809079912495199021496520153155830949711397056983335031245519593854535115074845701937981760708317966792010707483550956701600023879281405762051557851094338946505308961842014495864925423868028816898628154083504537649298267721180034294888635307269463983068734959253556681949084792654921322812191591489034811272017106441143767657988554037993028229548639654573318244636812827199632290498683288448983941042052821064269111588000979358427420017097406001434167722963470861758396533792552339248677646734291145305480990520945497308414601386319686261937774561228313821620494024771903640005312684512285709673431758959286790361836543310145762242735611469842214213733858943487659560267726663960474521110332557104906194189051950569750704163491242255699503517562595793444537342196040493797653084350779987142833599978409679982593554236782160013107074535576415923476017922695140430115469480754414337360608024061304079277060921745666629373702051062235890569236749209118698723241490271252909317686861376152448823881003175372603938134031941225374110806149928503386304151803363370618401592278305847538199535371608893447502515950847689863504735583038991003863835673244453527131167095411516000620787246422782136592956770685183725369818288955068530134163664872868997795627281941713170278579192028929321684940403003629949573098703852576305633682995573644602496118522707634070811620310060456675887817717966401020639570923279019482936001356319879746615581377875831411885795231708428607139902551025291683349918042417630720648525398533643031654207671347725120363391703032006449277984726524275940453666825118045347711096921185574659649207021247122537353845200874082389124939638196169168902067938568774907399205977315778960166737421625027658600272973884967262022141026997095198613419100501696649803884487775718504023406366704489023114386978972675674584405046706926518336036065311433585981551609655223201158374645823268030543596482535051142239203148958225756568967257444957936884606629950926069655906610557214161188807212656016767053298309047705004897046412311586734024292743072192966476681521898110621874402964443395553403615937716923341512990725996544304610290602697988103893932938787118410873043991052334510625679698108542791474039299407910221567254836744307634202985211024673307694441912177763522558593246235330743901088172704408347570548836668344991451319959416690482028608587428329887391106525673795659729237549940473951269571174793753457662696501290562841030792441778272636063127831553308149303616503258554150423805195267637563279227816927765781597123835582607991745149855496477600714347244654844521138702230998268168414145051876666013400171347338479870765947581122524027068710176393000433815606529294127806705103815751484249261317904420491637517725035914555508481282870607508818090451580057204090708006894610210039307636172009130805981128111911968752051930086009646457542257716753730633630699542630601101677016294564513297261733500631600310935406046955705874465498321245186380283933374071849462838026105997702026956036685220567895001571162849014150540786243645829165686327207747974602020126722123391104703074266953153403687081451103893579812997480910182980867475752869667690143397405040388456451265828549600282250058961870988993134796026037281746123825308823339334026847703035505939968820912056152677554137637315405402656502899774937755206165278929366732192386746305675727241403966848861931432056768446831756395739897070035760553265142984196931086786003695125032233244461291145246937470306535969955803139644127370132274181865326880186221102881357063380627886590626932282335552821391486790601349484396114556097332955652938586955624210689336891991668855208387636996911956185050278747146802061756471116855458988043360790168809386468344458196626315756659334831163265932879516899091039425790505744767864909776565119991864979479276805672724561245562937960273287431418638353539267414143723449530855956394256731240080148841139921586807227827424160148315031360669949945459148463362466135513675607231886255219154097644020685770766807685756028708072696755628083538278690301768424231121051484701162273264824093342977871758995239534572776700698182646589697969138539354072082136458890757356865148476096907963732926636654408557569010723671937089747387774706044693531401122806548347643048714113387113961334561490795031948338124700117636933403184830073189762110413844184961655410326518659289653346498511635512681661363046956615188590418543551946660861362862931812687659994110544819457824455138439242632135098852393935919925694239877400585995930035083675464550620424562986047364617932446699582164633279806090416010478947286294172297573570141069764721513615448084093117975837625432662514751826730783148086265718560618887874671465896442109353425231461434369234095285004037101219459982942585760324393120790774679957147787954165957574332108439461675805330053466216370154152804236185182666077300950254194361069563468775771855557455582974463775977232356395557485635638160134557431460023777379449890695581595961753439539248601460251441912766260472535848833759414234586847473905707272438802198539723415343708890050551115282252092401192704417393592592551987663188384863167099416412636537680960108911832971537066586872731748922823619812687424462578047506142285796077599309267014918129590392593674300495257308684016774941759966929544810651125951585103157319007517566350916017804994948042387826112497891453748013297013188442437386342788084339521817742381182774154350572796728332683729077580089266336179886370091456615903966415161990141451466567662957101570331111669513227047911697478622553453064775169591363284058404287975699936285003976547888943403219615058869288575019243011955834014929484552752666480964169495663370095319027052767126816339630132543453074458943097739917668616512852543600749146460931089873681260408648238894911081850902508813712579361645405287636014460541458009851288794414723936624546366056705835369883594796205550217790115616984659351614676924127368620065088299003671357033807366385514657775989304493460073196876846929887578111323136417139331174385703129927036590628587936234745795563796869978576767678740698618642743570471664540568402861765743826796739993084125067622344787549695335374783367454516529920231121671520705435404586161048642351126692873797717135254080606920345567938547536762238470449068824106553873946431992791592095173103759046394665284039719237286124403175184027426784587930531426918313653093634859306451677935277495826670343320048306396987522042150624328538922439626153521003445560054529921124615602507637529422842401601410301417916024745813036131208829421229903889478435544706003984088418211364807855495112696252830485228414463752399476447498297740120551066591526053674559037758643916352151588986044868331478927452895851297023030135849080096510373676009682686422245320432200076871825236458668076386978363308801742113299159546336225734496729453706499131615325036761477543868188715061161361899415852229879922224426034666304807008253091641826866864141735664761532088925511740475181536477599757445680917676999250542712871437135818346161236871775704390376744175027881521863223462738458534472070428620804118873992539136907636757717401021024619847439284767470826359567107585740362327795215204438637654851757470643990640362139983663584924141959533244125020520001332408610049034597187483373941895494918836704352890614979336699796445342683840091503471697097959783849662076733105296862158561817885557619140673826584194583429104104154631643747467861783596199518945944007409726893779792434086482352441858550908165968575426458998476836797149471956811513137535285014090376848458524953534765434033209344915276117222297667852334033981862453049632850533680128335419064512284857331783201797175130427726448584981665823264316245064722330018066942206662410522074004852165558260725554021169292289712719743570225400906674327523465132578456740564277702798539667291421525153086874728803558838663175639838580872934591488511287314969546759036495650033760758934277706066811836327048847171972730872102462085256769033889309906494612078428308462489638670657572536335754006991370690423330991275836924113905625979965269602245828749050643000059297134133769964641241646739824419080814045420430060730616908480516495271796440084540791842138522680104964603705962592810194850150501063874201438912013717862114219854550202098760465419605995878913949872033658593649822989544082664981223911053045986642213313662873539937875963898317711093571833327432891021439639200278300987964685381088033252559809596116510496503440570025241410611320117307554477403259248363844839456838424134691053936850420571025976071057661619663960806373753338645639594991283831458936565031494251062251527488791797152373715042988347556472194104144125888081457529992081297420666291996151497691704152895598378491037890558241945727174154033286703722129508335265591967232571322778807126770562771938313630581625128377132648995755145880753047369499539589118555365530068985053422314764026578608268929079806343611380741365249851965912199386731900511372699615667023131272598178981563936673122247144596034709808460643583689961700119967450741387936689717580280319934332177107810100436499809675251837675387279233313897480114176193668320757904390364338910798729477399371328601387677038802972305217034599646820300968958644409993989324427456645315306739845970687952093272575555850539501447361309429899875737498496218145241992338948269164795659739542768257288407250946548676438735228205880049631323291284564183295105787112216362865271792352404792860892672013585425097919629964615582756659019664640464473021409447473511660155645846340597350308139489274155654592326410483875866612672459302803057686994729643751580650108265127501612158017445747655710847741760928112411773987906453023375377572255037744200782611152785897912737579230967361006950942073768933397571747808891877831530655359137950121878355350816632920204977035775040928682315411510799949630885787486642134872965122636548510995168656665126567505343355220575389220318254970032916721569572534097039124459276029209251463214986951853513282657630405559071859567112861485851026894224609508179131372203657544071140474953770217338064899697825449000493592601554487369621895536556638964210833435632138967711420174298255009761492907942712843877022570978657346200906122148255159529789611497454829332291928164453038134954054982705629856898054223740563644380321290903643906530867681405022374810794334465075745631378227837502939514628555119647937968819698647667832734679471614415362557525872168908562164451719472720040907135510838881934561979931499965370487201244720112266370913575494003146402248621950419432145645148798179992308505915698111679090587733912941682765470121592473130297899449387170322742968814449130730785548241973841078321448379927198714187302145492935122110753598749287902710567488931623903328309518059868141747936746789283445239469921575408412090297303291925785697809011889980499526376673425120495042800185033404295855850616938637783208183698476432492525524973997890950716943701797024489651050864155939167413773878634802303693737554304772055745774800776596988405801048032215604501815025270298825971165582991622203092617663995005705907994377076929404454815746102972540694153360958373517608033432676244467089975002778992749374767490612263367750679687554376122413012349445088136705822985116128616861650940694014956971113790301938757920280692437833206142715841508191229572117387519139685978419159049485823118981815444441782123422992932881718014917512229511687173226741643961280547648930899728546057669680929962540433297357685672076541739880560899977547846362550711303443578616894375671925936821894781269577055793621479097025952606411769604135216673202965996134396459352261588398001477440852300873621815930832652324445864352541684259658688444609080190703719182828802513301979974734474179627151781477272646582218501561237804703284671443833778191861276633334635891169700260661579056560791080702123759462442970832834769911054922209118795167689184120599708775692332733742334404070415643877339405118608238357964750880293811442940426740253588934795423351698793096149347621072379909236699603953442824325130313948427724043795293508431737856152460987868019335059870353072106576403901070036704138703095049921390655354675477566175900888803999179212393348503491716284800674847162395374280981955014765027172742101122263948025131457914264854175287485228356516153100975592966430113034502657779037175558337085989496651976451869103194658073403119291851183491055870593753605554547157192682512947406706177432275817614508778337252571620103876776836279803647903707740386746512147283455649315100619475206616626616909810083645975624224699417359718610354119806385158644041564230648139200703314718017996618606577629313996037454017559059511150485248371549012825675994701945280748395901678030891925141315691945455268381695096223653887783688176329609043951052851725450392327482029086145820662256391424717408563126691715406062569084589022150279701302586314131546387847566020629491111797417380199987841732305520456844022701258744523487830328516662478004841752352833380587509274544487733937996012581165331148367910207530250994812602460152081404614946873630890004371876802784914885935427072345518986126072715720355242666886556818453373382653691908314782831109843272457725725679871684915806493309728579024501172650008581288099565103381448216019416087102516448266694500749259503308670748417689634427360359649872490119459950697337409185009814957755025295732771073670301805199311163513932735732653811610023512452529919996921714624693033826632401796402025935043391446968706268558383253081765900704718498314136461595882545702120503493841878199180335779102526842799741138780773708390067275000569453386430632894539683732353040077903482985844937109962133922135501123010286497212485737273834160850237774114093256835234352927550212857983475045150786619091545001329491640523674393594854811899938488189966693350325848134311712459341011212476840360524604032843015157585708725547520055120986455483879626260930394360159099680235467440809864066579487811954961663249530740494301098528189993337890461295449968552073287174424854280773980473614085712347347561453867745330215527889306254149228975377704173129156738089024763719810434140636135547936528832509749456882105486614382005781775243752109974897051583879510663035626057867762013403246553936723420695560373249477845346641931516318686561506182270461090677384799753384388246375936829400213972746169577885580113578810503157811076627928502772337933081886250505470705877327401664809683651660469869577334885878717010023518412083513371297411188292912271722492154870867047716914627172066643495817845799244907696966958719607427712089284763122404929522643045383636093020978313931150149720583374853377289759783305848001177290318939935256617192480293095464211325407741173112320538859406552728087647281326751641052890601098839907996840914031305988270072993745146199480716402475026873506035753974427574749738275033884620737789143765147412444547463796637073726139165872867578861038219089583416066577181480354383104978682197396916208078781802671862348776769954502656946255944754072021944771761929659159491915802203020953299651691643204132965314322194659957544067132588921686864082060668764000817123581655233602374173268208881853301826470079806449593002221608500609793884094298457114628309577322787389802079765253055230749877999661730408653760187760570091340377941266594285438105624208034143975745433849303094217160842335342882831989179021352527702737063369792282071268799383587643777141489634197049300449440979674239053937487891902798889586819712965574532513428450301439068878310306641387540229845055201125798568362589518576647923217336753477709867121716773676133484138454780797400656724237352042670626846226242914621390446500165898977774634700617422448894230651787665190451849618051907140409672026152491661072238076217476550724643657242429996516995338075554250120514041793923114992856402980355146734550557693107053242092837391906880913087172917397788455246842443514875464709277751695318593070328275800120431265251831012391642285829574537933574771112457101347498893801801284001636583783616244401218733627132971337222261711160999372246813933503390159914365171996022715205565961402180519571600732195111382263246161203753373241871387062514865108300908283073504717821408270543482419047565393234717015332510435721771754119443756149947947885304325449969566677158999187991570610227710010298662836025380852063901071890575532085810948509690060468196923696614219089914643759887076402700647203895888823039591912661987293407327648005893850569578942615820464922228598764314504527801981590306903162332697681557790605277217591797083715780041092688446523800384711792294208858734773638397104352649789816915027041856576248844905753318055444618105143877998419842364629266537712455999448684254807588857450780991113153614841234137004284190967909187270383747267096686329092444206386126887525333012732062582759242032077079078654076032795885779912775804624322308793201086678162143911157211144418512156208770704570471113753951960301779840039838101540294119624282098313179213020392802353208157661512937605426814121343356068314871677487181602550909251809610422194002458977955044087255239014926244448568975790118664262336634687967787765669546735129572941920465637036881937337201830604228822067165081702069943195457906544220412833405955645863191208109124121351934372118024154558291826113152537054564882931478938100415932075507738989615028806877634081766645552431066451350806620459304325734707227276486091251712680930096805308133637813113838738274781028091809642348747739052184532110943537871546778655047555832817888898661103048022647358657401254834341392647774852963001609945220416234409251230224004163884260882426627621315688536615265812594179290488502113454232783679125054046051584548926735703119521343367988673199888324264403075665684430070988227225048264855984610196469577190944604811806808841363452591978703257506678217837305893553583343694766735004471002427089388634480903155888048586348984378424292034139928020595335009146103870672261361171301761739739238732085768858560925849137395539722242569862979174698850129526004072554031142017024824873334455718535248298274135015027412703380747598072700342761012006190471180024654783344048650305377503638643250521072647089465187532316056163487976038244960399265183555282428453601533585173701578392719573025506495465579443324255446406404127059245340109920712354833019758969519438487712681706542513438633299057168078305358526051683306993031785672828508872699784398247043529969037448665698090327516740306695843294590906181624347277809020360903900984696992807482946372412974865767999629198981463391029197657330070946853438587065833111632764717457881334326152891730475493988674067536042069967324744385417168800333767167765524669166257300164001104198462960281715510831860356188349616366872444844941927500755921324321895654580959626338076250266076381463958125238898953042020436947155701254736594687683912649495591774485783713662399109188053082717499612717621169331592021894118315966682240933627655461131808910235799013665547021459263685111117755056790065318772130735897779259983830707212054554233910912751776744720667926439786021283833011444959933627683924655560431044725929618113614724882876880599488660135292474990298509439393825744648626428977071812611214342859619045315635898631870143989722474129961982479226048768961000182572197476537973956239913297210825842784440951329767615769049270153587561048887298480412619627403112675261127428045791055494168034783629863348393477504957914358171367419078746168051956420743394953987952310116716259493040475396750371334708603896198869657315737781069634738364897235619034640181618465513593281154579627761226937389681827626790266684142782416682750885808092299782169853153017365732880184304747812953510195261262881426260483242696474624168598980907609937266372681235712890857221782194902507005925865156787026670643332490349784875507131137283618250573522752262902944828609776118048446487912024167159651719138202181585637911327070948347829674559306730064879283580817972686835140956522413597752507926105599963258581166132212497242633476156040307211679968447289013130557602215050597479208947871401929884543039782497438493899427523875823238937442482108792195053421733345373423652810247778725030755586308011200187320341043231054480889944316756388425521110596616318048143513922884325529214567667117689885971556300817688647350095596939753670880619382766752496620611622288126237835144055500331988213272391262801247145054589956442950809911658176503730190266571722630390637235821843563257030069834113322248371310828898685067212279520478189936297807397194034501964210931257906006913773079589745128464013089501280214866076611402891524535695749306581944829015019522612978311884618312227013379361242734263688350879314502901111104690197986268301381010007742115884112850105307526401298675949097189390740286182288565807931170693821322179467851811277358062126259792606896423802725019072469714920791448967707609514844530256915343400456010062485426304533422628452668926683351873721431354728805524248817177726130639332959252740851773446481878766244636072935517247396594271040467210079415253933095398223755597374234612436282344780405716917697165118605449517302934251064067043513800262977636092998065744892271597315425259709199337764264273787396035867872673746389522292340562223980354468346803805055898207908640355572440341432733176020957177415757279333186622486919307321511813971033349004939302636105327710695263602758658214723915837507725792348599563369341499210933391001381111074705386517953606885909901760531290623716381778071417832664080426129244669852633426513781592781907335649244064359791773950622466489474143102861325424258919670112673297542741454109559053770740987343790813399146143579666915839533966014060817431346855836557796411132441357110576742395288885296459573891106892503061472149718427923081949217036980464333917937023151858616482534585939768668797956333214343610657674099373170779443467998191027304659496221372548998465785113854766338823951408063007915338443676546034369298511706916658871864475886725539474548459333828933632479862807990693365618129982758903066286405252087614803342351776191899643448210716941942954028100040058772255598065283534552043683604258914091838049548585723819598352464469442688730852115767880474853040454091407123205305225236832285941919605696406542500788026424744279599397557520807498700641994448028336572382784164707706835882182790823216627521244995823582973353344754245325651972195754716598567433685144493021536885823719491882310570175542220597384387794886231042182125438519401980720840798815328828672385468514946893100133719440386950730812997700355042865799267567969473138133249165442602905536305400001386352291729941139686659945775009042141660012759815561206760379913897253814374317022286900601717635697761984971155719519257088460760748154439886651363847399571601328804889747123658057938214600836201410528032771314302508563449061983719270245381678768146251054979568803683596222849687425725975582953598106615079551645937130763339550172604053534824981700224937584474954891427221461648053028396400730529993091331084820422688711396326043051692934120153351848347640612964239213508352213756223982129815854814575963165110826810543030635409210074418634130034251829785740896310736814446271662288663429605118271827844334262651956944547742473851303128431300992336643839896163957618064074688954498777685471864456892844504325688276943429831088528006875954550840378087675284466091098753200542109244446964198963757510074890088519656682424736446382406187474989987622082126158953002076610393620310336046767596418531173116002397607859737593172876189728263185137115250425466010648085775382481607757701259119874178691126905938589341914967395656983976094709441110168964599792895499302921765841559797830093128397397535107872306995283638025359219451675262017821490498241864189743124227453859585110551955514563280489128052424997851008762700273760042878592946277829854856708568926373029134331415393035884646788683009718694186791344960282632226573145664973136664519138953469692441551423619572968008905535981399826099798066687509129193810231223118270351801575024260678257935620150807009128893204956851514477884242311034690841927585614427248037555877334369688926770263534004764120255166331898873342070234830584076145769740819897116426351649755440256206461026982256861452692725615854986737658692723969508463560726905628382918032491188254348529306422314074896448230542318070915610059138764921897323521863059264398271944269096167610921290740057517157381083862858397325502404785819596881605897224051477647750322775239573527126271652443356225420055909418293535684400269269995400725248599721340369508343366041186161767269653031545271649769587037402490182932804119426091165447951792040051557883465484363724531179767107079257854527648748111101052592852054178816298705083579678495962747875020804749922186279938526601140955773721728560602657126161190553161623898299373319485447798346204964679264248919275618074355518283098020799999140018283558720581683110436336432602072485919890979741497492055692015806953066064998131425989336871125206115399380157164740134841276836057904969417061210667100869884913424039096096721167179995457555902729106516435202860790588959418711124486109436704779667714500812284748441916136725489407255225345800506185675238741828037910778975168156167325289414249466345216529999879971810727075615093545702759232402053397154961680876330703744665995689972293852840952558429645036092115834183166851363690090001400981183685785501928531548016604814444277998721836713755980989641031766472993141835561385437745457315516520099550463687544489770669387035848739917557683993207244342874473754135608627110590169515565284279986175160202341492587449358475091704036607039355026226066473273221879990446873896321823574683572891106046496337362865272491575361405894835430238685312268038890547655634543418180778895630763274495200330384177500316999622687700284093926844334144919923526637059238371820383936035545101397265080857739464098237967142786667278630550820970978457036904299333058129287509818658318626612339915296411003623374174684592483738783987168558536439659099262875341386578726285388280205053172782050840250495050372519483402396160407970275471452632281748868343818612164762444013700274371358682851612015882082213877207379398465186910411423327777854650864809887970728349565753534120445776651790921767633314123808539985748782070723155962568622352678032289326858623951284640319493118134471139703587844260896823435330237304957167847477125119780989241948939851520954416033977212811976708901959609502889369566263387937055588536664206480870120345639080246632852489154531577855184046402240174663767035035659011244342923932283183392637783447843035268927441439580593875410633997634824110846603771398334415058659904209510371738300784774142252947548652481482078834934903917689590331936095476868273475757277337768172259669860622111268345444169738272284253540328323871771883210099446720603082834308244987203367625058838683859432928469800116055828620039843146980095098327023807085195806280064913396531818976087867112072043126775358352342633291972171691556791954462946679762099541253951730757493632884816657855351276213062488103958278236016264151598825819801995754848297560913126158287705970117668571798848398758444877704778741388003602461703568370381660380695557218304740332154852226121179017437199715327475323170336282924732006380464672454020869321074896461574325610478724577828078134182852958611816858790119683528039047327035723460299193089183288298301057365411585773739451390596048158510684670525059446507509011100983366355532249161510433771722010017619345368165279988466107049595031496957381915209655361766310630538848281765170731083346669856650899144002293404309662339773362728743138155032947900190452911186431772797055337352795670007433110740769002759571526453884225291418656784006679910753795948391683005175455425927459524383738413120284919952854556889235347812856949283710085352131023505970623401875475119391344610006690475172726681483353997850789678544269080908649285089270665671759007854323055170012283797729112796310613063781210192249019930221044243553421604568773459473858052116441596972134432906689761935140819776295754187876493826469295681612280048989721369628683401750815749462679696554624480623657597625503062086549507228489233318608472574866207122058427598200893100107067866182916205599529774989406044086956542233823760907373137657816688698225118073050532739355453096202462563571448493560954250392121228127310569839739133689036836440295990755758425433039573193480593442914780361845918171958082764073896238611808301619688761079391634270709406252685207860601046934701516407181740013332615842114603514513309745929764059855170257665628529937959186077297425379202022737754998864582541224015079400060860738222125063357968660690032887509935906271082587439490696965828663915196600827604799346746797212930630615868415119173277253766800492782946648323855552333922640468450409366903119872936683044902593013784764298737913781490280380604562303049361908410594017466063361438916482387784029473517898196654681143957580893731200830496662136377606465712065072190776013370328896874269305187913364314651769343772909994738669480799484220003138876508235219344758654611830736439641614399924683456117308730742268010135003213244109665503501893233740086744419336983330745773752943750436319483993686045144086769635179279108780472006878714519271695480878518408166845164943962109511330826085838896161618482179941953326100954578435102266466903562580230271646673488723794400617722298047256081553042024501584078125113933056255400740248290763187757294774682769031954373141119957188784046465047140405792304611167694232634805587763706556742380394409382245868348832076226338374298360400490668285972138528653189140080667720625454034377361715792077620279932417677356958721217505320821251944218730975369353641146572148440226675358544898238781033066341830157290692735756996892245982336590267263667315540358791195480910541725960352845772638005860488781701627027794786953532276675757920531759897008325308088095886971866791146557518246085129287220749895329027805800656247518564046238976578249371506496222207368304266842164384320556921191116195760010836033379130089353520616646116608211558084239655316653122582248010483214586198435193026593125178616048253800875431544505021109290526264031987635166239843955115081199323462860094943801600707183809602987656423217083818685704736226722534475168186072804019237836182659494136458654759841758599917758527591807040412741656692279396401403071194758661035892827046311966850162121264859495494303584421649154513119178273247073000894789575784485626569038413955761636324202721155857447504076693948043030587554517748233800197151517831785135870167794710535957039757072194166823779236249689274606685000822893587664737590567051016914604213010232902630054770836282215763368735843698902548384640788346063033355794609863355277260670304943758005475609460103020172763936402541115137032817962002245417266350439647478742785149592820058920534156856833979176209883156693378414507730137086659394473310177307454972128350453908280140546941814622116538777592458836252217407635879756383853124729463242323036931565154042347136692667118052932092481458065297652224774071382696816079350424943348131866429280246574026060452713979915589349608625046853872487635930227617149799388867950520313273598779276117162202154275235496150597381599319206709983574949069507016094270948257705067029484671065812559399733140834790241658651327390062987574117280653028013112536853588379279309248217891762918581529285841711677222289905384365098622927494699277638555339749424190784846189156449692135315508005074389321118389296562772491881348001240947325203677750362819327445627106510118547476970570832403891394080760877550380981021638623825467404654208915347076584778712206797526582781619736456819863472050440371729588652893722726692170609471978277078804605504963292837697027515540631074190347479650996545770262402302807870536000056864949161701576727336887960099987973306039396786329898276518451043217455468283656406556281328786194377184918816027122814188816161033004575587028559144435926518321609034566050965823320399216638626013386473723379541330240717476354470462571435734434584978440246602955538453384106476720636950287369504679691111102606840563895608501337569128397397727711551459881811809620031176325578465859274384693212618495191033617099659108963873812599060849549607156495473718426015716426675121862511570314104316820798545199260833423483372895231129984544109479714623563337884741754738750750240381295110493430562965196941899062486051224052398498358852577488386203038152438459450398849480045856167018010517980588432943400580429460706884408623929195779665566852678280860038832169237614635560606251507166972596280630260722005030519448797006744833997332033617687972688849813166652751259763895863630670717449109272614829028309129505404226397530683730667296398593769870966634502700180896339686001341552289946722222229041856974756422332625773977006673116681828336360509285304422852738392555934543694262670096414574859019242366630167203578499481570720427819033048728573832436953535317203554489446312788745594232595174577143395796898186518781269106851030658042051988577360972500490027297197204826310456638887286710787572735564918404659044494289096913086050001016970239378887075932593617589686290850345890359107124482472152568744247353007683061760031170839630443443267078097469795157951060008928523544200964295657517680788197329454325080705569890982960958864716303254584619504101845357205069469581613287229628099049924465395610463462540788843151147083918565327418146772388614793810392405220087403910339966170866935571693408055509061803918406399527866634721158778935675460425399200036379184997648066426733127213530783915371323304749684836360920908013052729249685481325435965149876611156269918752827457234437673343845961463075846769960088985078548455945518473291621940787516946491161437889839761697585422576309603041568096240911050309544312178912782110685597070208987542102807950915848048444399749659945034218468138357904511683432226001748987950375594998338866435732113851834206348961718211911641425723876008034929367623021953154677745925027642563872511556608625468581551019373031006082144508628308197632886473216675536192554920055447102144459076966328673278892740639129218844643031917876569190174954325918763944416929985281913585237856663102515907700665898747923318637068157686944445043231408800149916898372445598400057767856236841278238378705118121878328121615046547266436771379247279823677429176918202860927922050421173672379047537033705607974776217274480396382412533180415240348787419735164963395280205681727699368798983452754418626719231066095604032614672246249210737267740594191405895232541294560262689047518960972343859577529544511279142379422034666260495058737659039430072553772606902672900813403884556752175899455731749289853511603472184895862349759199304569568145414709021655517692261878648623350080788219080857742213533408971576094621832300647113577034101205274298557620260046975248520977275002815639818803236907875995913092409491815529631717747078855702789705386707467658583183394511010651298304413669094162517350572598414093368013216786050325551854717230443668452317948256847990891851863364163114295275036132558206989540222534796669110999256961147427589585138997630863627740858399810515613817283731267425610499163361956422876580189325277045217747475799684472838507283859972051671387425057777784396044271512011637416380342054979501616296529394665895241151381172400021702387333882250993855925510251139473932757353330177107960684224747957158481443031008858147295252246924952508828069826445053783899827464104125803674477943617361600444309043945786823651294416986769704799853401454185884069552626998715446382904992479419994219325621450612342161158115845851480158717569066251551357296884031954385078907033110070774980306412837418525648419713421307122852526163371477859478030674414649006514516187188879150845971666674529503638731671824646279363091667029582932853676017880621718775002918444629214880260885736906929049520082303087334898675416852571296173731152042033153308308330620251213817344219642797070176648448097200964587237258355013099027619926628279425733688739899099003486323423289955124781502421573024991105928948683872592562329136013093556739862388097716884773815037725298467235106699708034408626867365606511156317971742351429994680884033924389871151928584746864151154996649354513270347274695983208788320063957352910623534311459270023494499740070288533457604641526878651801048619324500706085774855226956693362179240583259175254425850262303011234530184877246104276421127821313618274771873792240124904027348532381614269922607074234130329234220296164191026350553340958029673708391076562623859311408807280307171064380659991948917470367144860076456799525171741030002275223509076077656845022046856122488784721675709638440026740051399022032346604688815807356632351830000310420070081272818070823832271480312399448664615047721213198863108472418317919107773761807504434146629556165449204753219365996005634779823371122997977316959463523836302146117045324549478213538260348256829166030308416288158610568321176315724658723858651985753455746789320200446547149850594060760455864747932115254331909906040964511344851507560793187179555026706066161263533422156271333231756823989580753916888734667621865771392457236368736604578800392402585460711693603589636104403129236703755578708231722766270040834548941592277717935996233302049357653203088524359887934860163855959483951582552319616843439234671827051690565519125865413754301591343342587669774369393111154426909521390114414618061280862109057506424023110617797794703286233789524597093921420606611484206370007797583709515257023190951122027836273660527497805707171716439447334478975566408887383915428933977257348298168657937024651341320509404655986501147311353368321536342244836120503771172070651936788768841561848781066566508253282616816046277373727919042002430861759129228212290660873407102347806825930542435509415552790258506596800953963608881765861134890312028152004681173572167797843361531570291938332518657943180936359246271971847620301039594188268284805492599147099552769145722833833234453918485925046167667869003545180328659889314420965317329958496858134231102881994477185117227844694929562623403090765397064836101601786538192141382514928914523754454349056977204597952109849859007746152021639720679648315836882917900804571661169342869645369774271339053355170654637761890246451634228816017764485886766208366750827886478469834471538981530578135170725163673951590942569317492115874968515218595890047604647552139403246401547718457576385622594153753062789887037703607382727654259724132091221272904128545182807782339631080026774074304435909267197218250628239697870649565476743854908651927696139708317656027858621368022389391134544159757714666325190520017435420216647974721490005696780186006977162179232693684123968481961595064036699773627087564224488104707089821259958013531377241188946592814342560119112673429741395100273958824966354496382696166903363336946423363618983960286663264276317286927767309131680588993370643403567396192820189004754049876638880916367635661994170533469628490505023483197275506881756012654627111037684541951110370844107467955799395493728053872832522955246320834857731331457221066387507995706925028414343978995420372151990669199464285113985381646192270479186021422747416383470520690813908900070104563609654676684991197876719758632111289896490855394412709221266008358827537171710662168619201370721867920534822222945383046980017328535635283417518055417630137442032425254790175013230746815846079552635071051242292950010143541927569628547510640254602665160623262200851461295855218352902011047714301768871668959652515538900844222009521498920095745299297050019804298394491515225237930069237238962246858652374143450859964360568753142781766942321750334330579623976616969823021922192371215509414432279680512975067729199117979114523384030263722781765896829488588839324631739705561533275792144392798861580642457999175374244065408077628995390282263194832386174803766141753110232441139845109707519887382926630798195291271475506922887823919488729295210304846289869857752967952618108732091599993311630638096670259891511722573292272202114633716125849375269235642678782552489907523967603744869688863022132838739563801957470680974706841053132355646485913596279175889719748805374675824344999601267304311785439897626721448513668493413933523934881419263980820320880766311342716524581867983960033088050449261584331683894370145595672923068079275166217963248579710580869961054730033611102007079858711841988376467803517535308412852380899593814764249801896958837820953457227694553707212073338443462158584389357774323382543502082490589018644082431085725552015686851525908646667169963047077283308628096158132630779930511470094580635097196820055198741248373459218510075657941318361387263403186459895803982396065877192573421438907410360097185423294031919473991170600131538199668363252849674910926828728868427936474247597520248168300666877278279317339324839241687198273860159327882176683777592324261816168873920435396345487803051155244203245279439101608849691091839849242175954418680214212388255653892096377204158739029893893775388436105163565120003773117206004861799335132549031459860118621158251362147271682042132394489978916031223773737869929513455630176838773130179722879679345784323349254335463148456336535995012286892176960239181351891258697245826449377619652935108648069152893046417870319613993875193242436445986565209356632025502246792959101027747634955089683764406769378370483211212127950391002397468153636476979824339578688473399770192653190309532439459646071690492778730032874868535157527087240977487241089536196078516288105550753485126366572338980334488087692359278027168298763975299025323584454618253173679466669035720779228325158522639990773195853449314227369000557174739222468598042803346133187299211475535741546133037452071411018710971992575522038254663159526229884614118894355940415097452270817985263478405658760106872165242011855687750564976052567445471952454781969503330197453684676324747093156971720177957383092935216980513874766889636449465016153420976385140559715243740792528247258674531884904488883774130674823430109857734635365069225858347457172109534515712121241517750294742991724906440091460723972027711883515841719252586699207852991054808431892887210051684373536883215500549282858822647407497529372683543939702531886516404857138657493167977596584559100657581243072620958257770232780449411935469332544305596636461642847977951052798854584247982944028771968074117606897346473080031743049155241246734965612123627400228876079355112559331955328865149513879208705525829374823042712000046655851449313577954979079623060172813291031779674636009458866668750901653672030785859335416027228812409939017664057186896336850306583748134708946659168302816630950756811765029794044877470804025784657088785494774715253528989446286990033719486333704658318538298738141710311130610497577709920820027620573772058371451456427112846692253290622547117318905465655104828372650603605333112699847561773799595835399137239180857276586364358286872767871003687570614200987704747211034524283132255394870266719259540566561095847870586346609866988189744246581066710231417303859582778173399730159532145434776849429896322671756700430407312673409982762431781147316747688679183818601489793658839670260479750056960687025237266722333926225564561715329216207289188725522486149571458390367711567702300096121161111218985714731374782961422573362447897922918924212376845380301329856993290181409974917027242741622681918268410570655804080012003342785669774665778682948065285412805286614996772261620030799645889624234713688849473839186204684451697407375282752174494358631486135429630549527802068872652589399503355595993558708408373135327377067675358176846931806771511366364080798312100106543661400517584497112320367370216834830937325104926122865502655335946288938136207836338901960551648844914969005826690013268094298099095983036179053938709072971191834812884978049573579721484286163434199653755770010292879857316909475837141334387199360959142372296818439543138677759827592202197660601931600348459578791563230318682291194297331068948406127553540814523481439882972833767310809152597150476605081482622391449185012639353339896535182462968183713202520929441768903859675625537297135954961135894454324477573998505110102140675763422233315073070536097910977327592974137519579326184284928128587775917929897245675559492791327208553670793925107158663051129988864274250897221146112301164542655039487173047180010161889762568504507163325113153327625856863644792292655991365231839798201005889638775873378145274628353471980663197331193216040262768182348655551346289088942205775483941259221714303290968756520506276411763746828202390022342845829539830152281825316446666873193990359612918162641186503060724575450408145845744683017563820795964176023778060586064484887203082389686426681272501683714686496256904042240177240295936199847891235771585565200041207967532264328059184064197631115204606805989738360697166435957886295937037974241215186403062223181006983271742989200239516635733897248873619236423125618269329191045648069952491585091464912032559234467880193153843779415500615714046745356564206073035316567554472817527585741053083593834644032180518840777007724226103561438467761473729842272511047159937440167642173189030967766018014228529560113416727798983553262205257721173193291147011977472249407294978566673647916744521816972978832499873052516750818974805161954009956722626267948369925788059698544100607639215555094679626088760933941518393160200845610017444925157734531038965880983583653728265636244301761653811197570735134223113198930944627210799961571457956875787137957090834544312306571244448646297011369327704205901055161146289052296910170543655621589777242231438742548331275366927224273306375852566738464554812476178504509367517782607703605884481528443104546246086084606729320750410398884261116110344864614139574147870536727971159552461744164277881996380442598334080747209092267171325201930208183287292026967791734651114595158026568193282855078562596261640739118428770782238319592092712267175032148259874351606805592199932754050159530256163349808904757219573727184063659830763668494509871698876283978521576560580817048283548617533472045746953602835202478191530950115575596196043381672900956388598453443827935022012445907037303530137230732554655031341069069809203121895062334625941539044151645344271665148731991073796355111230371729645883584878783293370515853994123456982090407720763001806514434061101683550259184208916933362711987909173048342785760951502798188668560990297510837674752243446927656851661273686908768259740055346696695212748317451523261915398295986013547734352954995842025873531880150852187522722124312659883472948282012778100164537207379908427534268452852730503654191032121833687201822833299863721324724461057925325627635005385569756829037080368572796691571430823259524167640245847139353513991650771161479644758635852337199666166970959091770893670099091740664967098813983469723406226912253006804476203491208322173817411852126231818157858526558585195444513379696170139319819029681155645769159889910531201583475384636835004315243836586279005175738733187883625376618039475288968167074611436000748749228679935183110355787526752663184411809996380868179035842204325310702017511383767394239553183335930339441996432786073277692809068421677621447429738994569610259398309731103565029944173240171425867164945971788494426646960521644973803182447692385713594160516939847815376811208721914464269120019886767874027460486158196988023171487295447125867811199493379512923322360043950018877561179852521073796779623855520071686887610691632364991477947998483526377293497369745220919276420385591166206876694558157784363775318835133259522351337363095427052093012871933722864481265832492419301088711820254843319468674004563497179722115507671577074767452656404654951936285654743163459140971785528080143283333507291188864667320697359349974798144169571612720243197537238396878305546802828704455540104239720821913290201804580415889546516279060850076196484312770622888580170734772293547273867121290685333593304181026709838122543685693943489674089746707866039001370805557390987391649573234542613894324277382051230560039448899431077333112545178274603848585384721227126241308040637907511590063085919720615560277962447288119235958764697379339403558828187598399083220830506518679446769334511684308841547011989153868239890386964413132598835598568153061885310143693055144225389272391017033646676279836252831300273747698219685306196771165323020105925829140102470720288330431566815910107266904870287379274049332168312498772121388301447572582418570160841855107332966626431307077314805356533133558110740955207688623006784155872538139558304396201922272576631099154592060962669482562463817339324918934685809384613376648302601803717245775648601226974768242911836622018526742452333504146890154131168936818089462210757852620990924381558676485636871383653233860100038009194441322537466889513958540998895695740469268393439749493102798102961805876386944921798670008087313993126413875096922752535973309382049150969403613877008799310139308826638562989950584701799160275239781190475644337890272268450343711945172822906768357689069490451486807307909947886723808410252027738672466784025122921497102064427655872623068154819494521674280960441646394104387117752889429009892732408907997636474825826129185172139183585619305403535938601907417060069364057657879807772406099183074690954520111100885404465435356931990861148543639708320196213392600445788590490438411967058538223826282118478919046105168757098595802883357033759223181021420268295514720165795683625903022317425141427210027114712234157494163924884200632426539714680495389909636096953960180211895852959704925047850012082347287544068374296636694721512498248784019734728797682790669139261073160153689894069547964007450311740240302619414949087320853758490694598941661416917248074461616660090007404350165538645029802193713595396922387174474329791440657893599623332929409057316512037775159737864479636124659972793341775960990670878631599851242853429450169049453764508328660147582911113965017385868621436804795896691135522518624868953433050664756455546453535334799698560603431055981470180060186133744834868562856258676638737429830104474045356143917175491140474424118638843015231992758577901852680734421930547730418830722549874577151081205094707171947811823700321423952131020209647013363654513420154067488142429173074081393032005105881597187831442142124468004400709892456471080216120050867577410132465669564915757287175073222567733282092796528277878837871995219949457753799882708675217612275249147227373439353400597701386574080425975139695470779040726367347019299028028296666289321047625132000187706473088158308213899147110499512988473653830115179935987660672138895311957543411971577553569964325896636954418933484879850320092092494130595102670724237956758372624704438793714480585686282354228895576778123372861161785160690662922504870869789846912975874296184656127566917812027279582360540623768201739808286090227661438748695237350041813686668734136668639341850885405017655627463322665361525808652494588248197821918823542486904269121234714029633380062666391606223608686965142162241038180993121157354203948868423652247908334245919038401635000287971214513163766723376430429517381017903928319565699875940499129061960411006184871525857467472504323507940921462656424527382923022784972204550801983069960267007373479471246195694904782502504022058702220445132834159592043188898528077363700953623068925209065114155216641487226052928068757605039415458161920211016362379516227019641168251615852682922292321245989633073635252999168640904835706421213667270038596253648719326599216303321752356684313240587947968047515446720825173801015996222295915726361824919593420212668002830714201592699233037563967073229866549094249527433378718004359159675660480161194194724020767783119835920814470101319414117094216091370839967022223987336215613012310715797344663282399459704304768914855959737709774172622127450538296125158762376129092526508596086197643810957607048826666589038639377918760139533156609498374125189661858810057333051319503508785237549283960870214625685340285320531036480223135317630545784838080474372531291491015301101755134584681940324729724403166331235825346501896175635787459045487294832190734697730964219025815812779513416921604170904791532913245266117927121993325248033058237956002786234443946218948041597476584599576720982975768554228009090907849341495842198652935347174189917811661695676704627790337432424226821951073519666502646914087673905443439000914108034675540656037807323820209137596278603019385889989477105154208397239027684914696172106905460265676371207613410447211692273484759779600902191442270596742615607636112030694404513386004025638107385297885947140710392959118213178508711658510560156560867667433086814141652143716647264987489781347723539427287893616302970920199982493332344772757747857234270908732591393275476500123454419094829853848689737454562532629243026524761388149365170418133457032287529636706521300134328069228463031985664396658264634931297351954272934281835427415885174376873185879877089289678049987225201917851684998349993349644385377424586162986264526727504067854502728087239396333146193015515725443410524217921379307927083426931949104620495072547837311084185983284145552939015101690276626548437329371138964538669980120175542070165761224207330988464903047700602914459858761146369373851212270976922046456851275631054545109112205105987687253512053072492098086512149612719484950636489519416736374223340663608248985883733430768516422846895607038583624426920760751939633250625433578500744703109577221793909906934501725780357798383072746793698799051452869237095100901866367440850733496020154151489908980576639355461391286249424856825198827440430740292237467501837400840766425563772609273256334725479159012948670268358217724425805118715335760680674019502415792797803909374868866134138668642802633111006860371459552707043796116540015309003572057064939300291306426158997380671251635143628554287203739709766134466753838539935506671871154654415726474371894548763048395874244427410945676761644482528118789932761647362312341821272482323518010748574590832301412350214028337520645929597470861475708942850917314581703626148967901479291795251742886855448271596286952683619145822557701067206203313008256864794303713760272575931118095872688659473632830614250773335380542825705472249487725903591972180577636972870075435070271516081749891208577126304510381320921124681829478342735817124334641343636149874610463905113869566142097743634455755175189320889863267985856946386472514623590383951401357075584104060306747008392532460419702373302658514626295284192687209163183387017215645794790661092258188305667437971652678711088119009665788221214438268397967038508418944675696164927832115994828963519338466347670672170011601265118335722568374699889017640161260302707218174674843818284141981336739126036161256477488238596710178054750787969524059636192958789845114481643500236175472118070238214884870764106540966090952028554456846059452939514738685503606711559279299766795482793565599091188256097637995388790819069324739049909308140997609089224957468584651397022857927452119930131532693079918979944818224668775618176649388655141446772569255520910423785077294267347667687596682455216375399867430605226462969617907434582416596720674143464129695116971472134748370268730520644161835183280406879972120705184809184616728427683830112388455763546674776844347826353596221906902631718899894008446522599193898549303314901786945515855879482305129798833809591664658932951229248281699109566100278837180256469710156182434481639198572826197667748143602937495659858719950211145459379062163988332889386786464985850185980676777642052544766879481632778988306626428814842037290549549267366126931349153514028575382137764922414686535323174630099135919740147373528024608531085492869746472519463348787472910883836094575499571147573959568116975686755262497514808339256570406734115258907491354374027111637579345709236161901723796273672550669578170563357440768723868492341918437273381804551808868059951646602780814442479142126847805856695743243294159254066536563438852549927661394230504591372942738025555974295965634476888930706081963833421216041015603511752410057306889022791439934659070501292739978878890172612108933723289255326228076317910060556124992987376312070744887819839637376076916615897254444178695917463425133188756451387880157418228193359597509760766944083759584807898902369705948236242595659002633392209429882096153675444350591382015560056741291006979847508651784161782679265647302057129639734309398667541530510821221504287103428814436728226594324066503556899293657131945498536765724887822522878108029805314524450090613377007464564583107435613274396370684717270180083822582511093992159165249872036402639538792600370988703237063764628888592132735844569759033263408862258976978492832442510590332372833653529048356190891565808826908675793136713488768086410216243428101157159969738484086246273878055334904642051615142338640188450569753399004498718711276225577995720807647130995315566976604154361938380899834424375323192084077278147178918442274760446809883009899955436050622411447089390579387652903419467148800695682864282353050173976126811891511440073020398897001950583473187338178183482195849842217263473640411711156872359101178798521387759462645710863840429387733473224796556230466652030474424739259099627429570756557945961110503362798920094034372597788037815234035293511738680973631505215030259036699991520416496256636609836674307678529271206070397269524137307249820462428554548352771567944257969338862530910354196901625667789878690974621133942647335953618854732267893988366473818692555961296747828629786451946990384529880527891769234874035241730440276985735766132690190899732202631544026833631126942266219711334716372728775421297644239586679154572066388107601051208721988571943470452524346094016839499429846002099060702301348085586911301268645429710902593842660684736553400880373825383835563467223529816542459232713078490597654238710249574685582598686048965642926052379145743966607086438275622148536664858569855926094464573251957593547111396098650239600586807269120770537536269239961330062123174355095734951763210118508280410469178038833462699970397488211766684932342415395736973077586631759088627432555955578649114237390626481501161069211336055249696670133812965169950130985725773012579822737081255358275462004796642088755140238591846202090918693799813621352641293790982375649158018661062280929311217497471343715877338451285735630297057418136992786573282712208386761117656723282162527332092908828514686920463813738942710491018308710281767822933736213154880910693533367450484914310837119969195954818487886625095474975742773969113232453862518434133313532111584546123941326160205296399783819283103858265716388172706879748592783195464030615771932533886644951932983420110621103039457051639263111320718801638532650048708682262454996047281086769706500279172323637827172126415161194659943311167817107119415146770132276741736407451125335256062397360208538895928861754796455508678643394333616887722918787651492044208218168951053473587130805392507256832408794535687148917098856802117442137225148675944055335535136444760584534740305676551514506871077601183767617801721966831041237253951768444406232370777161688963827868722245655475755148879250194765474333018101727069772935268667445117788871153469631247294843343553771805882941726053511605624221661990669241760585195600312937686310120661112851184175147205077754727834853718372520376034460978625133965437578576542244297389369946175849694176090860033902503768222397627830416340398838542236320435824475645744093779871513488695901191799190440200899313052481745765770637688678522174758978825037904516135067253603342854682298844440781347725232642843653896548821574761585712619282915123366497221306337570272964642660750137768048345121326299898652028003505019843439067843222364971233024649683026804400962167094030778906512351031472229615709787904724094138547153434422249700076450109604769756691630169335148916384441408837440669140485786678206072601870098819306558685116292548287550513128580914018943944047597093987983526376774621090883139013967729964420460953879541759185202542205413259078142112327340767353619223282974758992383109718711048423336213822649088947164904737950706054205164913691906995281090030212798737049245812160454164662386145081870772448509335939206554062169854519066750630755744108739930640622496317704404168643995555123356238542586591025026204698281752182884247219090892447944870344764844189113758584775425715299684950383478736051733664973089941048702488473167988370515101300683110731754791997434346117360279499552692004391146767720673422285857095969914444217095173207533706011240727100006378345476174891181461275142963551142264830042877890574524590785884541979397641866390847146253180115467275171522078370867040153258654044829920409538026382862612924783714664946982212511297781162870347368439773568018349358584391940942360658800371900982642842533483219746114669416489222722257721851029417884797898889832469080732638889846205848163084480868398627916841191178420651115096099686072257089293277367319303989136350432720378821918387448225305996138982865261187534560905207493406287747612517504307718272663632296489719191822571004275610261529452918119752544378260292676964397787088464436601788762015606351129787515645349035424333018682566806420822188472941041128094123714791742988445787667266519988715589236296272963367208589618192436344318860424201355959287428299372383152061652169540902261631792418817877333775533988193860121389940377868120104180603787805643805938131996985532656473082321796732507975072865926695417984900510969468269316313512496508260999836606163251620926163456249294355629193533859221519418963076269470399401895334370329456626177896848030239983003497552585628068053628615729320482511206508615235932149113308788097667670053538883190437379164422304138959656244110506444796156785439503673935518959542756482665072733346230953047693885638418249588711105289639884503798201051562394510654714578974805285367165554000313310371143602800049102025183880029907904385070288719466176173639540933235434607202470621795319664528059574110320906125871725043654544621001599537926276072394645347588647414551612626252137531197186855413779106260524844899219012069711947208625299891521030890780473976923190991952543891320736248149171949381825303592440452424178295570292030036978616749940461213037610140482704811156488459977323453336060308202754320752783493432341077231414885847786223475413868445140545437909075170208417125253402803867177150320308311059506505879381472112819727124622859975081141850957110651856520430673426151121943042697715931900503832987034433703672685881588181334110537669172355525973194279738414122696308190136248529700809703679176325092963315479670070252088774732867725456982198586407841888398555165300851928364988233809781369927628544834650178826407537587282689114995032603493104514500398654382389413984035397219987047582455107919142593973547799601738482029289736997017188279258370034243934008876906959542779130427739326988768206885095387616657061390398248805652572150875000774858766296528404121952615389604088666159440079048002423139833503284984490752480100333088725661111235496732446615800638938534837905259233323540485777328600909165648547624414675080678385439689969137351550828761412219275948114060694708519328577319786301113054110015037204098730367150908186784072078589329958423831170228339482679635191309995247679969905777338211277664465686958926819064776069841135677458323521950366167466630532441048714650886898495588804795940581799514720030545175202205468078686566078380238926664813564650231133248279329121921017040835872770671784982777184668495520238810810417149662865939013787933051212830676141671955529100905992402514990579582359460338490566578218617423771392675663215694897953409306117424645244106554807628654646557075665537260118131241510268418969244047601600432043123174276101916875881599562071395231907317503925709334968152696664388706575549785134118258621120323740578265495521814103282671186748712556459749536845023685677929694036758035720703818534125946278341161118910979282858172314544167816122397013443204926312754236618294530103541763470014562677820365344153897176820268682660492977659382518329559101693627529842694529826891274164301199937496574711328946517092247790230679151176449018807645599777707460784268706212179353600153856623422060979867338853923393813335343541442592987009309682871428172616516833082705678870555962139613262496141350743007613273209462676889107183301504305408607522885750247071418230159626546502077626992332332606422873794151212107349410553487154331571311867058188230426779279436518209680306470512145916951527154826466830019278750487843411045536223397934249090801587323941233920673323701144969233274977799146812436668540126428992264405008763592772983431235700142819616891663652383224408584027023950286831276674108707282074416577713536117380063312706821233819776163730868939168885649123810751255534049953946600262186873515396861332789439988964900129614106291464010956047329012575672118674460698486585849754965401758930803119034899969484295366661331206565995086988952667891848869661934199609337992340978859204908011053429829410340299634379626930371344544942223769058322746369045549421702792834836805196861975582299328209846008661197024121374338595241712775409314058074723012904556207827639355376720580118748330314422982311836307143073871136279516898030903508479620217924642139160816867927228390413953048039853456044565511459862147186529756993894706777083694992773821434000391336281520211740364059410989702892005061944144760221961682686519127745774454403675671471967656282957748080400496625093592591110282831586150094955970546934142493679695801026054465924544586036732544179737963260291227554535352859268394853514321954376293978642855461745219076045612614395800836697525752522503937304823271948469199575970973846394371867022463817395061323445952559561748486125481869159521828660583043454429248533776965520931144881467210306553614193269854891661713757516714499526222323979838338051678477325450536660158115620163681710717188221305490027632228246606291721140745214503715270499452987598018702919398340783422783085338778729293208766587495790366289592691527345334664259342556865487159776914248085261911184883828698294482143457426858801624746692647359653379954027822291803373058512437447541722567045198631659377970384720875953989864765890795888523217292332969238349142733648718558879501921742678927823924547140093579040609568305419093553782136064068508188284713426596086396099044415515540369047084057698298192414973357253999934442461660419430727756523567113574361811074025425170048532087302940539069731897887336366200021278069913159138816382708813956482632866835559295028175946194062636889460779335982029361676972394848247929449045347234772156296616704436688306571123161668358871906000301296968153056839781677408271871636169485561506941894912382107610756416711715971206876849017205851742826717530063543266886711515302947551715620629783110763790729132845071377805926278631671223676645659257977336176177636522008624746663479885089393441412241339407341238736133796598258676067485734968763541256252032808809778314543287399050225799747084133536018140256580423303813495422610813087195046997007312828820121826633257102596902770028665653686543895990819544093520830390947705579378953970165502716300255259107420204167595058118646671925607952167932373794064090312091514940020253965062189304083524122707364572600059704527570855140403719270255956699962323551059009599235241778087342338169089765795573958530586946759199618540672018392228349792471933985786751121017072610888761551340596965830107128816361466344566902483735088102290438249386309237423258670956922132491621271957114066376645202116781342878812402853099595327538040836339890169323136858810398505792368361148981102256910471011489846691201999705815615573315266650329752046543170492219395101398502781594557191216936768116902625960578265027404925508962880926750742942434407342950386049460409613131189158971682018131561276852520502927771992727832024528852412716179200355986864796675725635098178978392335963972936298537000820761519118708685918674912629357976656225079023528369764263258450114779977619580543030250375643735960805403154738123901064317672108212648019326112364715193226868890391486710405658113405664841055535266632060749114419326449078775036962839232603655333406299763735913274327893999873032479586126641265917752154480646686595736999473807363109430057538279656365513741114750846478404493032093100214363744988345342219669436166880772974240283428095166313412319763468539459148346630792095323127151768270603006753205568278328124984369386089885746987809802830373550984470167530860519323571767214877529886420599834319110038198084608349340288304348170565191407689584580962468138683931543159660772079140986594782940218717452145012607071738176338436062605193686745546454854711457578801107037465768819324287344139208565424697341007087789838599910921081690762454363353594657744099976947034485569979583692312841426793185655768733087681095919090356878279225511047283273175928021006641389781224691671621838236810452462614263434435876964394167074981163512624573558782887931939402813808748059915091716898072578737015716413563706561433333809256388742649313235473651203163479153314606034801672526269757083114722329488925169683354989581600176897113873978908820615998366392679058802946418923687060294404248057853316751135806789492546848435766567416230646217991526272830479960757087683892306977675822738143072612560910687949880517490200746541146113155958267753352000074263452108590294596553460525590061084463932351658359682465169067422149656595091862839903438857353934682798340410992208312299851501518497750519704585451921298883147870076898468404159393093409121764515912445754018523054517197123284446252362746525214713844838316472828655601515025751911768722950281785808209428515015525973112868241968714145527815928710906914350006081599532820712070331439213311895257634661045585221055694340029060841412554559242097272774004343803131963729945675532069854398247829486834920012274274209443992533210514503338237507812178231394779405633611027618330188807613560282736075787609154274616452788769432411647172224885213240971577254770651358906495892471900190369874751294047022423037030101426591354748282468906251345741717090332725381558352665299794629098894987968755799064055287599982005529045456107471642907489887319313363094776754939063729430449380806842779778367388233344271472938861014826747981613465116363704374493605919635348247486640871372667493909197705664310719739722783041886546731340393889653686107808372702939015885908709458864023465442912304308862910139708563047018337324711932819260622771673647360848154025900699554567527902459369343667230037367902796531505287793623602801279514601746180934038372242618447977982553939567212970992556973009080271827217922865186536208705489863860003368571395429286237967725661068767090936268339178084260586696171967429148504461431592648857045790645747609578551597101150394080112609316445248337967776714900737517684064570929503887838866944008527528531944817195933531426530103338243312778742845667346783029232255586203651840646940796922088725870431723916841370881783745835117294810978059376126957901324361935177160344507896019738694722851171888167062231256283374491308822136748552903351402534867204731801281371328777464210051218717348485061176735966707676622726706794254169459243726011506930623557500850621187811846186431676806225615951241765614917794039818310792901317901793929779556228670818650712485052377587986156698718448674780047241322696625984934284459432162128168611608887105213456772491298158622840756047903220947814092997609065247738926990486577591305189446510217444267739482352096225471427518936101668459782087545583588545703200522803442936610226326117023488487752179002433014522198991129938156780885807051045587174488688791866939008592038690712484350413670489688955541042911036268834570662991092003877946102521936718337055281246768389574869393565620454148817708300502643036632434878420397857341784254275092417850063582304437240960622782886565225257451814956642339724270168179844070862609715345867588112643670797981478804571024908873418950722346501047137010050623107398141394033934166159734352217443301417752901257263590408789038554265741643795340118475042184676391071603859951717252179166447357079721243122562088191323565595535401818713087365527719524915881367309256747863165031868957724827290490670762917404595911172144957493662594719709671985655116574157440855917106139048567758252215392733323045100565484916082751316385748108559069481427686012868222171542204084604986111541180727120172541702546026912253152453260478493528585865019789309881273074921383667085353848244912733357200500802318405296588306372034951183069003783489256365873621984391013925396341276637876832709767647146021427555599251511415240234808646982449719367534862571238175946151152874824834155800558587102264573955107561208952509506255625983142736815571871006011661780346462794862374786281165281988163816981585754817309519033479707083659195730147750676893488251810639497997118098600155256557364094387062916096702675148719990098422091637919307414017553079614105082334773256534525536590879868884606535016926484739500205679222517047971226941263504839618496164540839523932119789269878079678418449063061983997477972401716113506051820932309643869846460063398365296777581477505138382603832543002172410688869007450721207719034915339538819771260745630760260803132193176483603716297471295720112506080365822456735925837134764825296755719625903394844479129439246024142263404273278482169331713337351362487080442802204152967449099202437911757058963698512753010042077693234182390939360817764953382296172029522368992900875133066866053599113976901321898449770174149399772412272976378687228539694036327201696095913513417749408815518532689008148562526249607275514033254002666712607816423452347011081165847690539269122393274729574495231236411809403563784483301786783012557659480775988518711315409033244016503432171679773210657089691763632889661204772689020286352924640662038219295503128017876364769845549162647074231802861201142316841433145277385601738749354517005531514720346354403918337258434257116036548315258060653693802965379932206760835322305862558839814706774229168612502733347799701582167055749604802278145501331067849255517100075750890451507646097285130129556067734382813960499409459893294720542363359093603132044021630024532815314466780891489100011916735974346932919008805693994229064443940873027498339530778979832887188799588138786667849472117856706440957848767145679971440260802491354866938160199481429345686071778732137182555524679486744102244081717165889571607862421352630941717053336129683793035469550136184087518530410359808272898728773836967605227233153239005693309305685688386612524593514535879864642092151517772422195844470918948027897360632117194183739473622630626437616137618083932569332038329703276784666399501074147403088749845390693627477734692387728897374524738654989213828132562446110067995478598201239769343723418953291821723145689116311224457152856128949247069783799289459929956028854902295827523356333474005330195843738031282126914673714096603850281765618907753503253733708060391596145208668528333523724292069643037363173278585165657689542576333447466299975627771581019476034316801567529679999559348662244604439599573553709764470426536011375281633523619179285564584125409952405366835266671524889178404653966945084401325549868269021493898526694915380427387808103737937870541822883279106031130687897691578847573980819463600694192172952173536779518833188792413133605577278063578665884631289901799833245634316105042540594590008851330504109371841306871610907522779880569637576203794418802626069755146357033591758217760788424631156339480725517438701240887997654399991376022572551924486645419287695911382588652755110966701077509394369727523375087548885979115965357570188032407673569004772378490318783560585879771548428692002377507336572701816390861359009563794953990019024371580379832839324434011519230487329035791299518579281516253901079106574146766390577094165416618367517397457894634393075699407499713454592398599130778345569230714890301332218025628931418582190138061547908069916890032606966366845970858873454298720472226921874129300805146324150611168474135393955388039201211711414390881816435138454399523114126774662623916281622352584931817897356451276309408083367815384712196262615815538363636133632581507161879940996651629284452932788475610639455075219477399919218326400668957285669175235466631585910772255695741673700108050246402400984287230122041436206985743039526410418833457361722642669684819970662209608463082346508489388633584902683907678954353735788292564557362396769313694399389767751479116938526454001770983026252503198408075622800799687883226229928836239813565885327827320589566019822444050297579079665258991073753260076041095043198085886979348205793164910049613945618349292613403870425229803342360599631608325884883264052303878153187120501482250323608918947468005228806939392331380029044541507469518401031175945349623344886923235974264428958237561612347212288886639471435795734804890348079675317386919645581244446354620455184947010427362485929931007713327633604733722394820373266565928131322768420020230116596903363915346694075634304686294306371870204897179220036892122159078807418836287163875749416299335109173603838644483598867727776589833159719958749103118601483031891406554292287863326496212610197337612233276507222225411050083879225082535027972531146688967966011170883492287545758357402427169910759310088376686504449589905843407150432822825375073484650641084604317834885178171537629454922887071302825991981809081768815615743194836391778510887663211678161061351845752174691899550292717244494103629306541737190186017606669202283103099670222068082270817127990904503380996289153027392562528901976050088777118775258505947609277576936814468525154960734871995714489588543533906000032185573665940408673489126103157269075834850120334421935177787562215697250870075070763965606512390587975545442782074501254284942008699892066974168234195630761613976422046456455221806107605583669329723779371568912589566791373694721537225722698486613795461683965524484660382132816465785498909888165655081545878176906307023601753913956769661079213471480382469825820621040793862594458737107054958457701838384871780067310478831054415556337498618587312191519557680215764673356105750449342425512515753436225594652419939050272855685247753943751271491774746868386518031868550316130331340416886802192067126586900769880192953036618616975254327769882570575295318136874574878420363603923620840724471149870523034116319927235795293620202833644628882010594409004536677257653733702172456338360709094448105620423887013271006250005459249567994959883623493675526025131985168823291021251396055715876007339171849871851436977606108788153729625467167887412779960159759719998418332193112199076347013687663811172282566514099977384030896813904487672567472668985190936357858224099983682999985640381189503742246474683680301828477541239885049786365920270143203820296720038745105765006045408052106350959235398708065661595438721905387990804730130174436343908977475241122976316969852086650074497933921802599463770868639216179478082641142224755375581523402209025283388946206836386795699111935809666193927227532202996166715106586733962596440621732105571379254604326398077563702460959109430286446588286989693742914289534969981730802476870715151155486167216628913636664714644617417550989425662668307537625264431004140123727855830369132782576434038611296532549622641529147729312777911502837337859775186807978139655621964196087312510355652288912223296769696342818685474788711815219449233064260357715229628558014961946442363066506554312108034040578075246213282211982780820353440772215309099179638185264315119298798481047502670678425726087837880160343788901084174691690086166634018022454659778973012677035038642730244804134178800795454214529154274464174033610407609230551141061516742066347237156386650850901080039472826075209144758310801351426611582245399432323746050064697911826820445020659785085087368548727707926445823299302304065287788724326475166933870144417988426750138658979682610987598751636640125616427635144558369470327452864191118961653691364081960798885766079022885186035090714564069142099713600740082780185348961696154524129300212110372332837784494692751572579548969831078890225896780233206458390514029543413303788797804509798057263350900272842857109345563850985969823339713097674820530343016605518417201736060175820091647753206673059596801792775945218110402190848626242064465672096498781045181641032396233352173233090805534130021184755541848380776421619997128214076671110563980188005804954141029238366631908747614600671932391618640054162646313312509924722094979271623558324156082469558250832630271747080183496850486975770846154631128366052367305457386832963793519154232768059229343945085516170742701964742828576303624195326322258801944883165957653095132586118313108811976448195407246230924506900845834565202729724079590205322654771502982185603786152585389418764712711763871122274126608547810453557406698451261373382926832834114325524184463122128783536343504373536513850040578572081024836643478069489483522036846826852289153503473407404477077808072108010040434050704425152872878939398040859062095335227363732168643753544326467626405374794579833754338466438409655552908817087614517331491750305081703735305662542041544103449266604220067471331822452010921931692186951929218404322398112974068959441580301771813414999741950194368683434233050188657832988157305780897454335722939113515552972929066897609732312132043217079420728895532555988141365167233439738575644735050631260576937696668999399671869871678541333086166085278191837294407535417111689947210406996302528475070478777337148362242485433012218118259542666051905544289464177044127127498501815339794190733248190753959299745942874674439608378304988266586172552092673732686786057288978149715915639324398164470284207987653042132893556589829403886688023581757830389728150476839526996409487720320230569198824902460058083708773569598670496072622604526394490697701649226505782134664353358723361303999992607202935073080616811032269683630771070245226909118947858512825611538892654294423135739966774482251011626572940873574368834202914492901507866865083942261875689406494409196381999088658045706556627212883703321393139242796394007109824951761191067980689266717110977394345425276068591955552288849555643416940092901010491877461327389166660704765635589877913691365799726039148056949648950794632219180933353033200533115114498278896297603709568558391067990536873440466910380108118362184122952425392348130567252938137182093218460413777203353313154420476679509066611152609262941607046339885865657391278439749344850120810594689829512912662686922270296657789088669344377512746756635384015305343811996002306775854329218043784847241343309588283297280639029674197101833463189768368333745594795790048580106996252634492950806973473142514039972480323208398101669643353435057266847701962485989737134417782518160115326576477799274198884501723762343160195926792318813777220798824777158894141123461509934292155319329139901306325252593907139873916034261372072043001480466584079452801659555502610914677216525688615571588350664859630805199873817041020854146057610289516864288884774831974601556853465442802193302295857057849357462933237636787304361992215165881573745315716626062518644983207034806993373550703142425869145502664974565075008185404323632201174058735028836521588838711181664558088579482947126163859508380352437663950893283095513485387908859587235472236369672250099349833307927154479630494305240987401737298689004830837984863100490605618416902179617313868052595112126342028472466403212846022392440177246229332943650038490502271971824904128947489935539792068859549495678773891855324571422080507845625248563862874504971763989560319095306716927396844324560421593396709813390539041664912630448942501486566714434589944944071659503588924267472471900113574559363903435611047215218344299301520590495961879092400722612728034059817214890885138321338755719778737318827117603274133364147095055997414434967842130672400751269217906153273750033165294270818835738244380311232608546984329744239242075423558458977007663761100603638460461256041123621974419101997840387920302618071260452480064527761248671195700875744259492170730972397907550533411539137165673086376151571683179921647787156058803386850036350305728902369169264839793407512218944362108724277380850203434869466995496702002765829601064752829592402234581588064957269167215566541196366371394494183619054605202211938283855528000389947166711868333639507917667750430317062906672677061369171601354248726874327603758140809891195206405091868593946050996293583054873048044724285578717208400509279182585024533704861740449068947516144457384526876669791517414331020300437380377171270817999655734848359497896759287972932895184780833358287706504241698681090074902294494410567087427409246741987532097090812396469219536584177033163991610938960589463385845659635467942539418780937412419183600383011626762974354862619607259226906718514575575729391681696753595089390194915448897491022938621252255428900199806520472554006944232881327916185403212545397546270556608533913408004058528571254051054174837571766578983762827681326831059994325067530716060442307012278924459176414594177202989494661728151433709505066696177168110816276485576683919118206966209647059203463296974998907755460758391911700155097401353491802678493155784042058806507847182213144811253596831097805949787696095325170298344727232308398850359093799240666090068977191671991680938967577726203061229263893089528412121259648505356161440531851551447572264374895878222450876271473254337136507486801476208244173830163479885907027840048124977402932408258566961473177354387385952331559183000859112779651596773455554736443233131087795822215872075721911782203237674900772381966693088283957700089309144942015774541199277203015124920387842165289694680148299214098950863955494913692431554456813224751053464837039668313636056262382010206562751841492756666800597082472792035400439811782095768553315451185414236717606790468284760439346163999682859205229292560553241046806991614661867116513674993300014365347606014758056823954938966184986217186896224641593416123116600962277861024162569053106260105280359899800240182527153652358806615172684884601828740065186196395454419280381367906385935150583426153510748422101602545470021945439831648299466283911789212509852248315410210235005984321360694035389969728220132636748209652621155265790245069986252742214479322678838567776096374411405094644511812606901197490862435282452298870150035069968458318449909476209385687081623714923855038018044786938795397086057248393693542787570252232415612138257459891686714671689217393517490197201814514831585528060165584238723167165381602334767735946891085697403190861684981918078581712831180074934693954091549706630415732071487734085649264810540146584298968884771306034988959832531852970138377108716712221935603872180029402611976162528261092816184532040486159293030315349946458377690115747219639829931018481995367344705819616676072730245350875031167258565102885882583931194028031563180215356233644662050841395618887630924170816057887894992992564300406955280975552094594456224948384939756721699330337731459011639346580877084229290564613873840259043460956882366981595875823964928804282214364136560092575487880590727128644166709837128525375339222666478310060913185299263502168619213216721660436069463723032803864373359317038161671276495170169654696811394379889026273792417301618848501129224977741521066249310749812995397740265148246766927279515536406857524179022778924856630339308931650754389043289784677764428805253052851280496192578247900956494914255002644862922896068176660303610471622304499147512267833768864787139247537192334337967225950294295084993413527404683496987574778948183751727338100061882965658122198028103887927509583962842618945865694483273856596972337017995288137664873388007844525371493538637282590814728042563991787127239107399258414625026499779775132226674909224611083020135561448554338951290977545406563238036191728814309866470066512633022676345864468667004016173305249635631515076360849533491969641956164076102940140331366666951861814419093208159080296442466166922234745577124246753268211560389265370812194951755367483811418467469300201743388362348648355136769746991159114382219919582158050293241942216478107770389144792690787013007529509817682864086691118829770013517772007177721745895805170470120896510767698228953513150956568343688225308315499613184785372216545637182594183021932209633314771950331897472039338961275654374134575930289790312297504320479610153261986908711240198110628418923621239532177129071377671871307714587823670025883507864192093109618545705382112263074400105177664026942921906660116737275853504001496153002626315842622145970830686081019795885206268462010499534855954240336835745771445100640827528275656670350509642534768755447370624598893679506600078643130630512804812377767433140030470568735604867450014086659736004815059662360244978959977886740705031594416681029009101172203868188191695121421415629183752550977838535832210276654875728306840657815532632904108238117623599945547196048636911243758922992642076622180679450510835357789858068605092138181434908137838178018915627141708316356286471034412020972290144800572797602818997393724301387737662110322814470645541629394404473801829771962972794968447245304381461607291822414462701172551309596437733324644791689727450610552015280868957020087085767469782515884902257241884585401026536548276649366076870527996401087317507596538732559083360460334391749785327216355059828703870063460707403332336502098194739337969852625821813049309214406777676775328152417367951169673752047743443742198918525057568070190261738849535130925481742040292260412762577376866199170806592644769724859995030855973242170089522360744589587118464931022624130979183184462578021609607210356395692117730832240247731811957905304271637632654254916832996193587935487003890875645549110017176739636781300682453775976881316491788850422993243623626736548602016489025800355974707798800185879519093767098762558557165341574818530452126966065743822937178434904147649816303232979745617075811108877005011353693273611263491855542350055441994102297589141605468036811515987773295123509171352648134481787265232990598660482084944232922958116954087891207819393473426604189060300713195400792447535482425815952443406834042949086433162766749021306076842950712555334225809376914048833671157560272326726534154990847006227891138187985134526831893411357689680267633577885862582595877217367240617718618031443018144040750883342386634439911167909781289886494961140198868019608265590411134893496384859218763178958655054489537278829894892406592549043411785789789654877250624726919628071796168897405981565871079489264224772474632457373842505549877057974515605158737728874782386868838024015209734433323767916584648852544976520365016063588067864971312578785876375056258532272943387061134781435121360598385406876280575301869798180220688754330888040479261426136395817278641699296072572982297846773091017440015768895209901353921906038397852825221431797672690222897975942237541448147644116776594150156173267628358897035036662783384564411866149199558897397628199157905190747407991727295242247619958524968725068665934316049899572800628273719707140167790440530520535327588203052258043148909557991987379570579311400355819356273476340143324558471995222247282228134884756747098118947793047276768824939444714788548333922796408198718788879596447220848550484004501460981739631994239221491860449475804714687446884368285163882461772385431316519783157314616420188941646397132315037383748345533661536642346590412923299478219576731759986183163199683553255478571662888593708907522257949155943601355582973457647336480456681594463282139729285725107929528692446770560094052372247354056020741764944776888267206783886942678692803949441528526222427511142037615803974266541958839758425474995417047483065415823794915637638908637608911539784518249149968472988024225651688132901604114564994450926798454262021381912080403319254111955580357206047010247586518809915305809387522108084018456412946176159538895035022233087661659769868647775402641130397365510882655432630280479540013865845143629124116349416954233585066884039788536100736285282596276879646301517188909294937675651008423260141936829584931474346389593731923033089579967972695497651385258501686585147141985230524381126677129785778478374950696059724948530922731184855172420012848658183920793844134733832870046224109605582123428837598895027745644716444639654338614576029234789860354422871667527753092426416382736365904969131166637410772598824758782494593303951203282897014913292836826701359616318447382831579694444165086199057862692800384729599623564724015962338214964345267641672370952760955482146763711832740786591512944405059761858789482007589982255470935743896625445047553103987819870994760575560136219561028543219517802483248515041240533956526965027286953773981282276123572791677295019549185788784529872173549152665264571363276358799656322473592510305107644440977160547327156021116734370585778324234281561384257158797655741942841076976008202183736349931237947263596513100233860519819812220189795200759032951600552280783819393168898564869929189784625322582046752912748133173504464562371290822932042180704225518881324658929712359084968783721840440712370066644583133163195717949971657663396301598469308916099269093700660527632519259122200376892367746518117180358865071398484538974509645160798719608042859467113755484109297112134617774115163144119752192159205443737113603979974636838786791218819775362994656527621209540234733314018252709540825195753988236851505739604464713536972180044502253913310367126045817966464969065271494039592849970805228644986484466937011195846598755550219524936117167388340274927600284120399650441754884307249629065077739251116110657692030234632543098985997673558182310761525439344337718618631981808486169580238930418286751398306322910228300124374827071045585274605223546145590939317176511056998179348627622676333138106785045311295018733903016344730966279603948576693409682932752098573693603937202041689205889941713603106196361670198360881906932108606150379237773900246313193619784016968930579130322407222609669956072886100341931134281229383902653232714003111915267428318633503144164480588533358319280351079338914442778855318963163347567083760084021868671055200359221581782466827207296917710258539272203663649858630948759370921855917319210826424230839901805973388646748034505778873964691151073421445048813517273193757470959340544479135588382356920437870644190942311211379960737571942080898065673697652667667656408933825949820568791498168967558310446814726781108393768404604465573226288295360226009565054944028497679599396020648374286782446784846985648251611948096594730496346570496043052180322281347191312648759367694108694200444483841879334610486758002127854595924070467923323744746074567896542622673116036075496970669332608764699408904232192892238917995951542427692935490699538145042299644544759568268859105964982819859637806569321003623619469419443405232746123419413263632189961258225061805149808020831838424114273955768559576080945900556818059477376087621513281710413357550072956741178975804738211781934475183206519465028052953427573100943738011646527995390158526359362717173706171208002344121634628372456473160865457022921468640923959061328736508555159145985176276181190288844548598364298275354967754882129417134234321360933711813863076713537949740568895996452474789993396273701949847088054276004146606270770563339526731088460585914155301297187560491876499260958674771027605448075845711809771196616440417281131153390530105351502179913687649128264125581317617820048173107094560403708294533192515095637019584942848511252665774976801793990043919864607002628721543645219165815899240742516385133199149619453102395422407843267049460900587574349200331948992595772359470460467460817785894498427772778714380857948782481399591003171212126952712718458279932119707035893696585991488880765531902709117773721730400449953509458124642805494399727294148086839493456943037379748789542259674235390369303701330690034990554209996565354017297683210024256462168083784493942453326149413384593194853836749348531104881687678336380683451336555330773081921334067218614227983917370727953637329136644001322269446035980266841585317358168730797516839711175830056365504461911481982809497998565432421138417064596868731724311400330137001853345319528935221771825701349400509523621913471154661195054395221845474731369525547552583928336083965619589812577717215312651357537034103310739620969399380108942721463694678667810829337926753217511601259880999109980123827088546304043277804156425746187018357508514616181043584383755730874830153904747587565032507825939257679285731407774866069667429328825297425456024478155137286956163786408243063193448926602740258836463509900692463216002063225769691436922934382236018106774590855749522429358884123068941145764155094950969374025003673070557070209808593450923889942357957519460635574070414166016324259929922616806523462210240765909912172347145198302671987383342928828102504483845546863933409423473068899253942678625315812421358410387864915904243462481848493784820477201476430870904517082601396888592068948129438449403720192366044082094896358188718236749755528164870176291603056534354937949372352274414534633256871008033902138687156540969674305185104547206462104643675853884398904748099810438681112253058139827651395121626140382162483353799428765005086887761866056092301765527915472936100091658843154286135132656228859242877812568562534331256173736855552748696399019759741665951374213744393177267108527402913888401943148294152720876383926212569045627469174518085788281934460912204766034787227969084213590113013960029532396551528811249700483858448040434813506999161823592208708097510274265813471889499604503826999563170249389483953106292801586111581639962189567841443403476816653910339218055432739565017154454944465070835943077026619968158807705636882407237359224623840269204047680809641879399576450561692585649341161923095772593914388263768970441562157943245429522491449787544066202265359116649496986635120474427990563022251737663425263171768710036561102067862025234920866408976574695680569488507224854839921212739700530016364702018349374455711984394068772608589223785955402937963888755301645849997270515827264591481565524521199947541386750057792749910773187815684522249951067608939009435294071566904741985675128839372651845196749697508381293755062477480815852588242418717073962738925274442255014102757839918875092691505486500106100411876420576082288267778950850686306044333167563904206830938255853619798290174845776233718732163335826741759748610698151213570810801935399846721088583424104538740856344713114738927639199497372357834445399280872516360202919199793388918756301094648258939937538970395538291868343753184998150696840675700140103652751665311011749397102072368150220035174367003760913329937081426830062949301026176942554195749103527738327121197791109736205713747584484198397234325207610370794001543727714606274256995562775934072079442169318849924255695030367312929396278744362767997347234570249469786694312536277396796383186527378870188137357850240525030414971682247850070711938616424792041547096685221283540723590774918264340379277789200363224144451217901350319699907156698629814339070591152628323761487999428281908264393260177295608475844577969229807986166572852564193565081819561381985464438696638338827286787235924230049087201758198733340017343180746695235699824248378175973931520171395749278683722667783514835342499081593107166593390783558466706138216383345387091422213884469155278585850386268520652422926593751896997448330985442443370514481232613969586652112071856370067608958735766168675003878334052187766849673959831672769092410080675369580755769851230456842959417676121046776027280346756755930698102781370941971475015663458732927867297945032635289852636960234325315062312501955470037233484270924770145806391117288107057485730034584536205911174946960276110435766545043075082451999989782974900424760921671804715723797561179316301860402792305597517021493513793765226582887739582518225024941949205422061702421544075298751199574473255375884501405712861898317558081993797311398156694436097044267976672993132349711538370898395800096622020270109160201848007268050811525874575441794432707164040505387233870737641583453573059284947507714781728887984232109818369906092156957674160348904700434269070536709416588758100919754011612496727531106040189138515256634369994650340651652899354709261056423748822153306682053089642877016332926208961509934063001179542636026048021809971341425096460888615726989932986573012801122680057575318696323900708844547955976332768460056192460770015056792354017943417277702239239242069026126150563026825493875987002318221525970494022095200040934122632052839451013689230247102830853688648984298723214719506285296540772660032735031258383010678991660846126861987769914911166612238966949963525120172672856900080388201259884671646273333440936868516503501273602568494178985893493635568309136890895262517463908043666312462566312714011908282850878268035566105098213153776543620755685613628002918328644085288324746588129664946530273308110951695930198025794222329206889621871612801396148115542917835483626808981055708054222901324155480321579160533840654415443695274790624555657540713442599958087735979812483958004749285146039653215040686505729323085795321515573092511020805754263785868957474027991659922164246313937493778805197021868801739596717330983787285176241174607783402210224941372050939465802903770005854542538251363348742073052756778209519139623011187994627000504428544279992041402917110330921050176716428459418004726484055790442839123101049834633500238916129525990100043392364234865664651339758715412112980771227556880064398692634280755164776784224444126546803029948636042242937281691654664600280060926770336150120331405424811652895910006835774085798029352329566963645084848937257197570402346093262067754563639659070794108747311237965542361500213927603976380791039762589132563081474169370831445878062200833375624337700218656538684434778042031409735148837248440290770407631627157354327279382544913109467300735427849261884428874358352146327806903003787237291711782928465823161590637645473713874533712373785316008314120897533289684112717984317175598400587949885739898060244791596959112890770449563314169710947994280751303635978003980969017353215180146397949729129600866826140300470488535413755142910588503128085345227222724705540999107415491452944804748681180291790284493455643523322002192738087320304744664428495622413039298493482215939472035839701197861607622162198583374835238715824407180762467520055293627289208254828924834936814262762971952802580283132248631845721858151354239144627634953520549209121402410807049314604871165016578334094205194158943346944373318716138209739604647480504030042244787878934641098350779090622435472318278403968500003678136116535050881625743065258538421395173285468060656668704720236240120322802143770097585200976873858159039563453302625252119048168724475281808986357386831576598429264242334454088102044050553241906943333930579756663404432647670597893366143401661072570024063080936483053387210239822290792011497341445936369514142028810610349231083970796940519841628905074764256940436077748703822817062473965092359147366697044474538930429387383116576426293862912360038197154819986848350824230807335705233966254274744557179579341552972895486351817941825265184562057252416319486563737579810142759283401782315070482212526934141362938241643842923634993554580264856630331452419569163689633825372938786078994335078318118488132554839406931187369840465354770918294854916745242571481228575182317633683815630937667739268422369190792858630722389760323961891230239852253590460498041727300124528882997677783408675319074451601090891703300716019127799762422236767080260059676703934845409688470637932554694587112342953985697165517120980072423898137899449981355530374862105542345083345878509844787072503991377005015060310926064896420454030929605586119655940823690361120896312746328937146356421296672215361594372314168739455407549441733197240087057808736633565167338115726986043933060135578943886990200582279556844614259135049077461249359929545548600935197283894902873376041148658511004230093256488380994298216094098816824047503793737762543398636766613507716132084379379906643900174600320309654692698012983264994138919835764047226597527537787559366121515282175578020488808711874940566760987922264941650086029111636430378846790527290930803540087453823485049397207324875111302150324267129917354388769929127330856797320301168030844157055718643832224688592349221416460362615806693973517365647952764692189095594156514402315708004812415527729827768587450141605341822402712374189004705741719926727419971475055237114902648201272765166698965780566748415047677188961869444487153819598853830550667201750104843083111629041907630921253906104549508232879648929874615975680337470639750663049617907366810069077243519934243219393717316330287671847923473558143785987136939004638528124441977152493545438807570756997599373838570541930877553625187063385343157240774181036740268911655216066184147646893330056021548927461312179980640550720807051967133834722754809225424481069753948260230010091747199582382015055915409637860925817794657397260558370901349374797369759459286579139379694004592699167993758892019467060706889803377270761170054136945377423716010179000165954188097326754275633217015092034939309637972866272694122496658422153069178509146401274846641484904033109287142879522973302597945726172745404602820478670317558636842223361469963011449926110042769965189050004716409708284919785947699144215902529921223053823165231201457495733225213628268462735803317271440739830345696999989625789143849412022980571938456172275802040472488332356201201475292701965295522404254352479549021187328963501871344362173348332012564116825490665667800241904707106523705009922782519744856065332169491630782100612117781614618108639397891753346147921442567342274339755517461717106021971487602242849405497551963112198478906868833695002595888034813930131116494773631765691037958109630717531145804356744142800845309620768220353702998449515180434257789803325980817428538096725870991910077158973519119383637385660155230841508026127132198828731419491645606146308939548763143854352562050902142964620245072766049811596311949714692312151421105819708533112522280742336714177160430791583112997942386082924631097225071665055891834049818732082512803173650096803586174105096419697583577620693541097349925106421664314492535434322598458783919800010335704085889838406548004302240398703787105430806890259433412719115455801754897561013100829475038942722020564071376617272962279339182045857904695005614015066959106247121822583347361167213313474339215478369634049527213729963289752715592646947406660225263763952650156997753913603364477255364415779178388816004508936066862196648121086746744884112235323166381202414349915691048426744990147509797011628149925061413046475976512523212802710547893644097037568130594921050759482884045694089378696837037725280467864739679352091722108275749818166635696008599193633030153641243033126966744026510026537406305001165871330216969798487484888050363949860847404112021017811475943472616464248798206537556075089546809551329056062320212119571962424328071503117515015859503482595394737329769734139210710775286187367767967177764255487362109484132131771728868898927417535080104462729851283716940225538918731307129863759865236686210880749718686803149785350667962873508181718410948545162213695782491272851420770269894997455433055190434644079874498195150029472232133251267825126343541524980889101314956934278362585711374008265723047236568210275704370101088622141228972471494099371382989475310796535415240674878369419603851158339242045417510718230654783280995004548056080854267839401996747212489907517927212853765131904797565816158462660682139116719503185568790834036373531456086180027237515486897130234538683636199898154427446045478666748768759719326640538573565505439190912846027445942538563005587967417447847545377312750990038154669225308676072777978901891753805719494047453670159292709629347331822086731449350748450680672190890473190642735513274801234258676767726921906332306699757586138567459306984200159210107760159057643964307067886164603051645240898463844839601908052496045833049400598597982798318699289963815861929627015642320827717908175812446240173037947791199197996218467397997409875496526296569903610719755620568965478403184535684434348476287767310075706609565267716994351712177004920471726165623980896880878258453689831073086198721245209151832728409726200032295492200649304274908192037273062125978042885724796815097128721716366212301610420322458167227172679968561145681965794770894095399537803559004731007342968342823425377113643104320575638126520735367427958529792915730167780159529565844862462550638832115980111991566704832914667432324693514527206051907887410533106255558637761515856314341813491966166695630734539066840448088521995597601332624323369624532122677029867616547618410431107145004954089057998527233793779296132307075724179637951713061026618739509569040089953855728557865201234081864992026001295345620042259860702375278944984409375941616635016613191376299504221764319028551484350794214662094939975820656344065381695201216814020270695930282439024128213611004640264690116788255208049895815367748174245986361869417059573285500213064777569032544604573102421285086864160936119031998953508855693712368770162112155518609830860544257848283879544432698362621477087763640161450552981495813975295016594366967481385816633598190727532497289794347972176111681364403589018788957121343010866307182212115220814395090408768449692117908986780534348969649568042428502425406460911133548780694924221134802158667288125688177160552375231334926482918960726640192518549261174723794964386501571407278401053095657753683648606255921582917744830211126709443503849607577357041419267582912656318986967351216800900526730661587799797923330944585882175517634064348201141334277841414755309839304780156954420644312212106959731436326078632375799842975442185294655873681862313425880930122836147307409916103371854865732175170947210201662725864907638149923622317959151035689855788627023541721688921136130432781835189125690263201316144478213758374263000058154192421026792040351598089037623215671771195106986361962369144687393222234027403683923585793147038481027525057019140453297866069631719939935147050093520525666971512545698790594768798335647378845394737174079722142763424545227059529627148162684487847021737028716652979029471889170533529554657106028490090868793230345128402232445302612550742020311303815426173552890306863053689577721495453319024143573388070680593856524181993022274890309658795369496800915319286434974255709847292645889322147366953410656602970317719645018749564112544694863408359545648087599149621859760068787542243129780353414718436210130187907599221185648879969856304765672879465944524118011186015879716731059849162287834872094467900054004650752141183660556202343292278538302973784101047626038838385313692536589796513743741261233474188921799922661205608176684841535023944491131778792332812177093656461029583826013441676477647669778557588113554689224645152604156570196615059425687663542689472599447928566840450390230224419937240256630538314936608390398080757600161354854028490972576811507555361202682659207660568309574175736137347695185266442383183572178460489610627270402302695563267218089199869609226798577510509749639289167769357833959863899406406484271534102838145808525342246950331653700349799240156644404670279394511551864183198012228297962080719360844518499999888454949879455634519152190380339213186254949773217860104289525887427508211106343954415449223691418854359322809709012542401678016214546420800954213608553322204348618635359636411552883613582102766778324439044529316128898367542019095663973725381283244744312549397662723507938494770857485737233460965591739254034265078434565294955901854767245201098602366906010195486449188763986792891637363245282459178053254958018098287347836067525711903939670046899041912462760780137317223873762489013740738660477519581748697858933121422171390064755443654246226321728611261807518481346778282479234850896928816741949345069402165272300566148282043232578898205999417676775604308168818015522324884446636879217552902217600875937944307251999109374280925694092281581844380235215382012033531574644981762171036573398916891034973754699006638529836760025898542132823961547358870664766170442812043692112001805289873230983366278958489344736459380918047011666770422900271838602241332938815721607922191062288793700709370418922717094401363067150391152572934645820399278378351144998250631922517370171525599964758984032273442542611616902133441536201988936279404008955504323060497858085670833503594467445380736928946400190687781592237597518286708447410304353719530719315553989206529957410480910964451540742599242490607464963204196448705177768652124648716327678196734602032505636807938897427661234144897661152716166394941848862186003224205561028138149042610493254948615938957747447238223897016973858193406786044064914104390420346920883245922500662388826830078841885177399533289568514430775305632501278309598157487697250136899122246442052775984047653534722466093494227033604723369810636373358119008320355769821197436275997806240979823137356140857310267035663305253623273666669761896292623757015175227433948438206222070619472300088742551044853968785339115359062244664489177417907190311165739381876232958090641853714317951874169634567363353964860378029370400654574403159920863457711078392629217516371705495805063979018683963880528820960419955745903390862173870768217539971345425838561371471497503823284782113661020182124543335574837650720960230984431661786064705521942869710650479250380748414818183776245215968904891007789793499882007004325985699098875145444476431143823743221163981043521226461132575883678361068538706133610509323634534078105617199503864847115379501766087119691967158089111830377079489987629344732490657722103243107263161641402632044506801928378361605239430682070616090692851740146408581909726169929383819604369950409079066910434747583163518425827596996304635648215062507143863937322162129917211383356858297723206317844104911403504596282375685922957352655739719520270359527447778274207868334971453327115428501654131403765799558282793141955195702605820704800706598453545418261258918560441560444936586938870370872864483410352109588765847891382719139374613756850621662687225115170923972785747259041593830846487080214356016696247945413887155743128802649105516402416816253133808903392745908112739377484294966904709332198458276511842833439727643129769445595132950978647385330212522949969223304388351315272892939271559992297271016904943326485163865838679182386914795946828808199037875724735519776079892244738024948029306045285345207913701636832541326455865704717638107450263004716952727895208494507198441508943206244006486604312551774983059663800954766091556871840054694913839016488652115526585726017684260351520470477338278288055104842373088167848358261072074269095159096179839270203796833723629467831933542200469458657056657429183597951985672950092677642234321822538975014701291077514730627350803106868641475053229297878758254643633547567712409216043233246796190626555521367829147011719852257348784817867387246566175025671044050863132479145417926352266930132952909291028762842104727092967202133892035988127544854816232578148442485225568388391682746970349540939816886060042798319399483742380840430228868079185465827194422344814288770921301401349874560712730270554588912184727189654500241048542417481337440031355721971564280572332974464198194433871463048508318418832914028439863597713526743281071288389052826757095558225132668524842871621835493665251751162307719991087879412318360839269773113466477560507132057095489436068691799164865596467068702861154963538662995026711018967382985996199301634143347984032255744684408364127377209860545326015741748552005905887035000596619021705294051721659347794532251261296123192757668134488163561916865196745336350119731512864312254831300063489697979630840622200426195959196866404333677066251241308688424227469376053943132994931137507903636247273133710188750653050431053406218001804379133086500849776153506222424818625492561442299195587220270653556566316511576055169344836104625746623972136427026937134638522269042074433927508330584001301546543975472000290616240716240046663324435482779234798169022613300485356342921889180723678607484239176199284356105636442076678967591204984122135379486722999298820697885394267659742685713620213483021687946863196176847460311718769995252979500431210105030883805745572018868327994786581014340819183646187996353813024841123978612827683491828069582890355017274045042456821825394667491925950649057734302885299251263332307044274824381414664277521572882596512944252102945412972896408506189578936721106921771676146916678130535752225030550066049565555296774658112891657363656686084429801306419705983013196622841029011100591448233918649018274167887787481763132279609601507215611788707510153801208253683855212449589046066641681500375229354969875686076340838607249758408844102642236535477564550925692479605267931286161770673930130729130333248586028377382216890988988281825187353796561547085087673166278277278372062491321322754558662915432198448795383212336209575686727160835419418239559563369620758554457419371679991156399233186566693350253719231251124273052734478375498983152810617364871939068608140459529492965060942361329238424486034618653801697248577060456975604026681574926514672404915521832688746136762702204237050490722393740805219013237677726451350056420079301489447871051525021923681090798509021563537823675675826671486465741272042989305084984697199844641573225484786167705254745434816121361708826237094539358657808214479342749098187121105695346875530432295442473052869838276209358617474380959909946869494298470325440516488762859352451170386791859803480245130763412909174099025230750842380387666657174971484765556403171435333334340336413977793234692088502876745490798007525353101465678738140917759515002852635948670204123993928352209601892617349438344313752299141628086132283835359171079787280341862427469023288555896294554916499130445931701378032557275601876854084182156265795687831857566892564173942013913815789993509979817975801981124620967556418202626701566747557385827867545839590138560606928105990510883138855750810180165155527765244787270831965237197070618487389331704025035437276473420760908990501833022619058946479361271685549513707527798323161295794532135794412187595064890625372186104448725216193084280771370558402404022592294296981502507780395320048497353455162611241022555593602221730678233033862060694910138702414748625347190985453166803495347758956040647910122277246586680444214301019676199495545895793743268696480487454544408666159566045846389742885882757260958936646944303614251707066250901880457074852636778964845338221854604500698515791352307569617951143071745365803624974109330478431244639417122446867008914617173174392536857598085475599419012662615601952970673792478028239028556209409036571521678017058558603373122206437914766084149208485298379230185179191688357219130788293691758876053455475954809031131532403973319025119812525706097498874088874229171697925861526909102193559303650544739651300869691794908481494132251704777772566930851942661241506215521805506887615437074025931129875744946426017145318187932074473938039256290872755845751683817489064641042079005670403082140040157097197187199186901304235410518233963659880468303610009284219221145407825455612245861008973465665648494439249754475345833107074443103221127795451152501976595577990045239240980480320709218990816244402985581176923643031179402903032035778960644711596002515787390908449758818711487611631201458348520614405420018446497233506825573640833675857299117948143375531747545662307402821254416265055602636504179543875458929587225215909524747016859925292451942420249066392945859850448258561036013851014742911920463355895584400463444298638599002001108106195473792640697260548199936693272519629031885401756149082937955877769816285414698624475826646416169989845679438489772638890641706814258387025937017820557341344189421529066565237167798468778641619132534219418464268660354662704064156806016392890080594417744657595831924582821422961635141161921582079667305005954008502070674350444823365431150488051454726915328834471141328005335712787479909074139264492450510805373631061557694136506687686769105794682097480000907281947647037885287572914867516690566805881733274273817531149043274154781689781592159666064490261501369792665984006355779596383991143012881108118015977725067475303487137509403623190497937703840763152721286398143012512645879573159741458003212590246444034193605950704482339756848909424953972743849741037043946102920600850439187548851988090522850532400437717172725426947757589461057812270544224780035246845463998985854721900247972335548869912669759689649211938906199545229172162799706432488428890268296398515351435574925777500538549029294062118496938083150208963485842024720805333930835571142579788183563366027312872257891691326467188191817153614761797277358160405245293285250147689801246347234509974017267823030162734317807287429757660881653635482303394170068607324169301563613870937671667889093853355616270918507200038347483799723855932892878275534219534192186249721233434648673538817335678445953191166785562467646079930784021775003507046748835693612188072547216461127522415645591121824140000531436557114551277554586778512491797487658899574128772267600388347277940109692241513146816122184250869724862180861836514489127332606805742759996619083506893100000251254613086429371930213425583656643410007317864796660086951173264660885864436095492691300023955737582899627803938740232832983727237939312585891759148392786844931179403486199026776827360875461001691210409447603038526063674814453371529748747114274966605283308029319214846011031750554196577552578921077248698638095793585765395484002824854332770775087750155460430565686716091770081491603917846421958198424449848911328220405524001127191463813114664499853534744038595456973753351422168434775176785971894917160815382080086924794065274222221691072767024856516444224052078618917154695093932711981931147512543062914327794960280513736067156002677362356117900690038274684459351551233291358212905654376333899393259213404481233258066171247205013628969807294862275261677620496735972413284895746646455618212559762310442879415595953737217403699694393728129050617464240877337161205043930123511932055976760118258658638670649912738903384954708808834563954750170051806427629873444492493365386621701089090450727102939234903476404655887552983094308832569010024256976784858528830200115400462387336706447045924098626975872607262100384195759540449007673568377815786734331234182856955853023268342279099788082889231945270317289278913143096372974089402222323483940250824833991636722450363631144303408186050746088036517865765334728945257160933700815720161573157488097599605357088682751091391334246633102353089806049244656829967686518716963142149669941931050303372401605768946202624154084761615262798373559638420872431115685802640682541367844176572267567483688714427302292873785361429109037874715832418391464715706856274547521059013442953815487462678174309274083504671633305682712049493170687221147442778959530248494310475198916908582845884565346584171147104632180646077641084131203206852932766648818426347647377758662414186649402187112339262066964792726021274013545697822449465508096651261452089445034749889973084629343884580551965961868251696605660934455750812200383074484433121532079199053727816503796815963768658436980911738040778024815626294960111256408602620107757446528946878008960459930796973937023823867348861090041654988227086203671780477643382262509612577034379254675069127993146716637237753233539382465647580724232759768125394354656416332678338061010305558391492989121457727356093470277848859587639902339334906588845695555845316999609913367924286016674673825440380214042414167036958923635079617304147549958142527433078136090347961040736628497437037997486857181992405846312591770146250183366633891729162386006687198645533415633475196703800065629800904844597521497185131015084323610239930382853355633353348938211573978800662738637953594476772800923190621442621956332473635803504028880222453267359647704728379850127052715667496195329991498033865989535812809608946937002246508986948491785566156413383931520137925600626886416734009042617876226637009090980642873043218628402635475173653269433208019068101348540856873531877090000571959269315578475932842232713746322537229234149229916770629133388338457654726098934678282432701140066312929508103208947713477021251745933578592824369250881672867629319954562452544966490512105268539700070311611671364605613290641127192823660934778272757552061731116167182235999049785742300114748973544471431488524710420242419843778961485873752238022735808131544901030690074720776196578311972248886479826944208616837756074911674761392489509006529050004363652396723435082966047273926583570068387788742716550942715845230191881100698744444920955114796162393682436982349034437879041108381762498506566276528692195444570337290573271319702834242770610344205350648992020443602202874230110320110519207037886018114391983982967098019766784684898494346548379708132381891442951159252238008573232757791433201365037026135458626078053810340057487244077715150065398471083827108501625256217467363900187285778834026223553525549949952595035555195809904568881822404407378114316670093281660575680151970132329467923744392735974855242115864082331229956094523085107662711576022009650810263160003391827067753088498995523408744136717824250622889490385705777014191861547445664084906822615491714924840974077264343579621444072871043732878518227789311384397544284863720933966006852677267721659372695156055769077610208707976274226011416412927832233527012809778609391551529307817111706046513416136984468798461550284761557740478860473615508934821013871500602160402084006935475275639197539676635879398310932519280145804556015343185097879420408653155400246315137473117036284365453404820468655229800688220253500008573633286060022323344960878095408501932151243695585980311953376704836114654612317142058955680885512319646159982978084324753536413325637259382382467307244317893316687808558457879620073653180864203330810403429881599147657938892828779632352837280828287535250534499010840554199593544152212841122275591860498064833846823616417416702248400330050072322307381644054600962353711300805522902785482967121902521453910343086749048553041730669120568154150619100684680923809740850714789578947473683109577574223622185366540604203026978078348968901552849303207524772094502549473316139749746282511074678385331428202334165483742132666783107481609012087922022668331757437957497255914384792495445188321697170219527228449378314865908621507993781092670322458420910165326212385987871794574950807227512994815655156904208774627934167004935336803272766353825776890425326429552232083419202730675586877609430520475093917859046700979421930023066650271842398160943088492805327225816687197112472541373579387328592943333642869699942107083578453357434220444335668393197363008641407247937371016718349490594960279637722401273264659556340110386410338450520145012785906131006641164881489847990070268423933751871457833184677884580874867351054440282132400444254936799561539509251320802664063552685164696375361690251253576630457806073559381560382581697233815788462816913994306275430390404349331187197497030721557287928052758878031865663103671071743831748995975464029213565955388088075593977751708788119184869973861903885613307425337809533533243421847362635645177287527583402586523324564219406108114152751676459903069374810662743677628808096814435390641373434196746161233538439242635964942534433533353192946083464428253818796616039754566632135838176060673638802642283407779863300912750938338036046070684296036796585365647291261128118036199701669576494056233114397881653559705946518681071099662820699153069171596832493952105402790304414053400190147854655048737433962690891687236047655540367273955862786060203816213043283730383641968819808063219942006680265775589564773000966594383600455189799220058922554327152070290588165013507223425301914907517604402258386833569509906228308827186549626830905217493670562549842131132212995786092165988509795571212526724141385858262069885145677560579375141668712473150879511734792568534873816308866901020229632988614529203691339149836060415594958962905811888333564513839093358200009755380046689587300709581999912832887835902165784037963361630496507942944120186781221681199649876383050752009131432614944750396381840521470067031235266948256728775375700430440239757218797172465189663316667953663076440455285647162440753964786313537118273849495757679399679788333802919823207144551321135344438542472780461255733208108337731577807363190927041300453710320106458405445354915589659310147759649654704640082618627714864845884450127599124009682738466957342469722172139121382763160643460089218213612255391021304260910892510327511162417815226380936963151418704942036133949808526620657019577944894911001275397456852113534570584091753231665243725196569371418092918150619040455321911666871873239760854575541789139148884055285870508729857482975915040783467504579965850809469626430717989682683854772753041363907767083972552898769637696454710421891614999606426495152959994820578921642544673501738601908774399187914365071683968031568988153934466415866525153071680574539732640333042164478507395518829226233257273141899726054701721037507503550982208744598151631686576702953572751399020842763687341837173652563663795358789565559498562809207138346604029515428891596480053996555085090043614431456525944978524855268836489928470447812189307133100446666373598807526235706158767046779302749690785983302770146923679782283302589307595379532675068350620026569299591756938454088328223708478102648903723845268714309466168462246839979804738267729352467468234257764545684247314978929035461848452344545398160425649423866868561196447310555302659025708566793186525668681625428308907267126350466782109119726882255117701964792845121709534167328314419488156115163400557944472336914809188995915768377429356164681627609459360013884609209770114236211968628882118676768858753424001946023192651660415799606637466717521150096205700278447011923504429061873163966933985651062117196408115154681140374285820253971797745356641348233636700058358581354953449821641907321381887378354316101818003250403605903507531167704386259499167782263548394704627032868772357038269627950796109559341771610629280605657858999465847660155399440199915343703600724753280017728692319264241650491503000984774552547110750354771383311956814066807560498767833842053169175627129590244009271662183207325493860235334131573135268445394095958222525750657409706957880936570990080620713078566904319992747458638849744312502269939332928382683774589421500810371430554565961313796842066271843910730764330222052213926025808423974844616330343861462910890169181545737519457484879618927495599373995072817495731803805036223424593157170928034503568841496774406463575747383775729990202668559497173324054260088553858700985053431921680130317050333804837050297733135663358414916461959377617059377269053670007911314620634261194258027133373389901278176493398372365888437585445156293898513532245761167525785550416661495074178240710577259840097160993290360484179140316325980079157952972722940717496993022949217822023147198443643030793613841253736985378981407390467006684186871117910857234870152289351694453267232389145691464363103230459450676620214923930166481720766531867726325613264817002869747984681768145867742902989365348838368655293866041470573185555056097447710305383729206607090317654276122627572660741641302611017989807255476216117498492968184762163672358085416795815403025196591763660707005996906631358914091372104908777078231426558731794165549051435321128256091486988915302727458978088264041508915429413511374579067491866470908340326312800110254363931649603509606893178808956440626305192082042039791108754013984421794112400870412582286216270186906468854083615467851315282295659712008585335835827509580599034415100494673930190637895169307902653008719152259945237602240223177203489236525578257508867514642826719158801604768261546111616269585221481799019529327520262585736985877972383716764599383431343029404478092928771276809536172450213705781334135042450788639712502966104478508712473151762171556752623565918075224265572216857906405391741532674052294747241161685459091410971454695416858659336891168999136358931376470960243457739669665903614280487380302550779836066561680033540068757709809885521312135967396338101892390866082004284823208367363463998234039919601383365614681341951631300419456373255909392795454930177277863127030347230967501040953191680531691535787452432873297444482796255248096064941075619961996954852481882497103308684727758854440916206696248172750505054595590358761745599565951477945444841820725837780870625960688403161090402741762444736955154279323589424179984087585260340963830578568012767107329347388978130980335210396638571975390128208256645998277361352421100134219966337731025577362622549018687752548141291011767096109761707522124790079121543273528697550167074170629731979500256805108751788878520955727908509619785296257448817275630332463486336045197784050796865009291340996149565005357254991791110781136436751290837678479151984808435570200110126090766526506625180873053921491311355677135063909907495842202495213229034162700106779740321865166005101544915438971539532291306630619807162635004617274598441636251780647793089777412769950101080247732990625868719159381567907887266674672558416831307889319315058783591458002495006945026820889171632075004149462422105622421796347476942328482786780244430562859763095508905563754631096775558589696639056372822465030759522582285089399127083391079970861028943563944538178807964739522808213511597112003478321470242728056276886305891587995901834944839589836767024828405769604254368203944027982688978739542031760505511824470042737565865282747539133763776482629082141025229412421535191206004484291972988477042583147454758060296764547345732791371911682236595108626379082673022763883617731682430316312509317105099350848593450223957628565455296037255794364176319223591705428735222080183369173704510968239877347797759862744842373792522778341315294516420534077972196941662125871023833305654631511395436372468691127289881641720699060170828001963692678159919322847974065673661551987283885248950031682057744491108736212689584927380966856725485547289252565629695464930444981290538052088673320979817221980557402778292112614920502525128874607501155310289722006181130224521299810264173072446574493800279002664734450091638973109846175304079694208095444795929499571320823178329412507133059271758175970072366505358280337779216145778934900207949746684613170266577301286904930742328671390450817601538079107170062255286338808463843813215438238508818235111226961959047055077122377672530920541904763550359686885385681475113858570203810590223489041947981204352022999252879806286986930810635378179227080510338202970413044505193084137591603763989342046662491721361028423724426995838376944624484302573717873948505168227074354155432763113581728355262832390884717775360469911543556682939862360916176828118123465089208460315276624118352777814479457950810515122117515202815468852615991802220223531335656782602748205164468300388974319274352578891398590274855322374797732396255926505896826108098763125014637596939871803741387398939880172115267126535493810478928309689250416025161361839721916048288634962734003000248943047356777162424742586688365586300795211672280629449644870961036986298181817381472394119606465964643890466329561109544644623099445593167002311478769438431151542021806643980134179292016704494355375537677219039444899737321256209417020934065601564425037187930340949603745917026363500397649927405123517496329102644361798094867954795309873061600369149494450470749958043733217595632479250727977887938796258777682814094896549294953921684191720150438673505444131299520822226962088131522287090601113155297810424470868078319859427982758552794684476148978566986713133621516676223853138995711899563370575546873313964636167692030019481512506260734860898607232270652421382802068277727352686069027467973629499434354844227056936918900551585995547379438895633476241397669756174945997905910808673148242173904369339517881408856847441274842684893963899356932904436654465879584262021275473545644379938267003487979117033764456178558311343389659930507523428613900837115184594753709387076676616168005506980314753415402448447934629032460571659379955931549211652741617226219465364389384773969792363413729042599876435153062834348572802050763833810950197818920019634414452422020899606965057882315723168163073981707966327763809767658156459789142661983954416723729876885723269097926731452065840551257891413449600997551465301626200581662221442265855403983224149545267971361377347678447894942386546383244519872334207561106696370167995576147829505619760208622885415546053769843483720181899108815914609442516663923629527625393158232026028900770938591766669800313418169560050576447454255070378520317267937632591988778256463949394886947326112456908410059861042289255656674459285812741544782561845890038864413885466267708417516901555897350597566441482230435571025649868938755440650966374565101603436654064363057829849069908856652296157714996660475157065258934742484436921501325404269584398980334550613977471855835592258212079716097916378161003713830513264398177777428001180723862295994186935604345938947345114340573093919336870563760814455041432146047479627836102391267718386300007437425360240372259374929161088720171400541694377211019971317068047250969513634179126773609258641987111667956570746211427329027488671914147572478830647624464758314502303383800500141775187904722675334601938101345249304257380371267072596747830580127604614608810356187675145459782509103608244110407911184641855636861841119535192777039936468724060545755172060724916590360081712085123344699921019847171195345504612231421966009634435772354876514654384549307618358284953223935149226862360425262259768616440325873286779711367245362525723816062476657609453964426236939735924149942405330948418783687246579622875336308367230509742215549728819897536708566573249113701439891781929598942944617223699373851909972038046252894307931761496907186042489497727828667379350536858571457486568936014993594478948090002939689769697607751311981440305868815836264393648669797490703830519914296065924012260416856122715417221822504955899009030097451548424153438555501557788084208239968918548804326727011844404125962485350206288299855192333924906934629230765877776851843907007189759573711064218373478407300989999648276293259988851345472422301308417808689600599516768003895830810687175504261416269001137905235450155259795735510644863350738120617210555942192475919864809403007389685964734309366150400154621357898337889005721302010766855929633842399088913974333210728842520900625229994612106689361036021359633599262179437221860638205161540684349799617347093626995278544360441737105965168480291243255888232438290705581397895374976147102769345839289883058044560360870686206039896109731766998239927559291491392070337164394465870582758310849506898995895010020852938933504253685880208209068542019900359849944436864746558230356907272071919833193570430188787581596354964606979691531028887552404369118169120297382186098994444530078763403070138468320232246867000183294438787801628020132164739962030827296843336869847067864733222279455718314002360450665091190303190240136513567770557712195087018744822165663172914654149272165353913549242539369622131891599928975668043072641064002742548100330171135629902254847481437278073818371280858313119173112865269567989808848500112469814933603827980963554753060145003655955529382609479630928799342107670649732102368519101814057554683466505038857795647674657303840360157781097901849235694396151744327201916591412720779578688696705270603652869746555156126798847208463573054711882247030413222434192381450300006122199758609744144893166217647219448478591582065950590827167935173333318969802747354515511973553065623259395602115045669566216629161977293812371062592918525161578113377756329632415712159386389418206012826377838921796686274706172997822288538254300626737729379105634174913085755153365400015000523808973153284267503933509553036253243006056806028016495834824312909068436578829534950072113191212528143975901849542374138026309755780011352667370598433460962262994248569012746052792362689381273680835022877497543669084587997577305286526284951368265757108871496167649436114540922987002515441630758910776579349737311677284467212396441439931397230475770232044698265683448374711630340685621178321807127690995971397189238312277366343889463265439570609908445503953525014104732480816024830916215086015353065878225481063883482832761646238789692587443809516816671585125779481887968228880674866167275837375541432879931687622517962574547326025659270687952463094006147219406566051922476676208394712573739470273602287948432409505994099558167815683378077295607508966606309485257150101114075492273877184184853286528387892150517300733097562059752346360653662279963519981006653410928326619861014657223826161665483101199165534521985373764591002102695861825591533235240744118666346904962113067265874017351308871091140689515222720385309868083280334935541695436836945084252247822007879334040665747388537217806982908343150736534643438425380443594893579918271463318478998429319624336338463094779484089161547398120714111901480212655713566175754327777733802488745492440996750076468194005510672803506029684924131324957060513822517872979896206865619752383838057028774379892534924074996535946662477594419046061340290980039642329359398067528618376127595433558957317982185139688869881318513197670425060162612063238826071786269607997348570517382630034801418171332813135810453163204878370642995024874365383335510796441709196656377220715098057166045246374981713059568824805298781762555990659682725387522642704521721482986947108537221006533676026131349557617424649106152066050562485907438096095417589458984032965108705998602074671779292194279118875439893547971622354246647650241532217901778214625429319393694821536683815777877257427284842189179523526839019075502638963345699129798302607848010689849719431803463836995850801047894517317453964243178033702387365658599773164340230520274510863954419569387556469321899803302428885908181039924686790649957415448432953758499748141261610301460294550059209803480028385584942935426268738667723047800789146073499380336662553582984418831857638197283119041780527384290841106931274678815422626196479425711038547521271265259700404091260839844326481921673025591020666919914440339220164424830971635077638644986551742608912275311925945459256619828115686976041318680607634671916297658030076277781847611271642455858965003671244075132847306235008388132869324728570119401951526827125876317187311472486483343040028945096867580583403269570557255380774195482193408119929120035939562148085841657631998818905919449104236667785782136460507115236500576224593761839069352737576779473997091666944020024813830084988022795460414134247382573890102427678246586404533717065992132793119336531208305604590810991562506029329093681345866310139920425916340156540227051297308154698290587837403747473342762280281596964385866440679133258636799561332011659754244788760848910796049530645287563598437224462558113442986124084684000468580457344386651773766476501620516796737812963462873863748742591822402251934994379996735473812654484885630701063495444884868223164980634304856232990306630769925460435291506249301207922705780443183635587568531799899009914784126843277093361967378564393595018339267745487851354003183687145750357172778170734514739954718546360355451589919935944814725110318803558638888354972463335510214881713489917564408416568365862751791424525453779224672887235644727908035602956645332120270268572705267466890731287701232344176184717848529547397322336146980143529625866409636064384458021610945806651830580834857131487902868308476225051432517249770755539411687099398904561348639248979967290964652618854158795261281001133681451110895207770542140163074875843454141313120219085028962822115893464498662706054726522081701466177221182948944566441492497778488644920547710636995026026363134108026900118695958883052511605451027631839507983963550487822883651938099794118519122172519636559920619036395977801088834896972972249662398037526574493881282075425314764878765834234334172643963557612572905761914760190349406746223306576883932209385145506654950716729512376898608785719969555643447706785156008402522930611873024788164872242260894549163243916155284281929096223566600529883031172617930935355491594112659483998675280417914704974657589639087350044144481127400767263827710131993995212740765960064039246055914070273615678860665738922791882459066680786082907209929361908231429296250474566271217024770126491925708511356122386517897269299373684574820820833574488557084576172463788815694527442794518896840236519061867197818335842351841286677267398739369246920364691711602406194434153124713212711292354751669660617291047464256337140595996041053548960783553352632075731311274870992717016322870479897449490995316612249391819664681561020665092489812635596291765936601441598176379722400215256836492011388574390306095496501374875684804520647876688519976438452927665436487424390828656179815674161687746973906258026598902310898369557589627134225379445591999698252385319598142155485911964085944158626261859200789676879387389844789447730793898226421316002813656061388625402770524861262333858723690432218830107887740552216989223016278140390403710565829140345137287079540259758446141794037873027180247525921482550069473389742558551514377596558553865267044016243951639083877731159599991487629517951889189779304528346523865997221613741090526589090726591405714893827990741726374140724904790351451829712823287083950495032448013283004614392873883539501996354921688575447024806597273694468393012345311293151312862441975686939957387100584564227924347734222712683081064157681553384757426715756216957677114485103316170971661458994920572088285324441298638095910882599973922140126294042786045164236320826299261864923130998489327196343988102037089463330317981650540605173838490729839441933082083674610703270552186123885900492958750434117432728737993368638188926900285273319595518039102011714792671891281364493569418514724094938255928354332265851538196673944834742721630661967932668573672965135721534249355449221796168927581199694015866378063575237613332484390328616783278428940919573125608443203601521287128418090772067275683202250586742287211652018592290033524641032237029158886132898760748076661594480054685787843279046356524802173657741563866970345350250356645691721295727034167517562791577877854911028486585132927830338556931027006237628293642823758193537159369079529416278820690290986922181810696671564278984252751252020018592073794111868050327275399694237413367023604388874670414859299330403322405366921585652901871342725639480706760247787989320049755725481300668912271466294833508056969448704882411279739822152248588986985179787541110641612415299690291628315676336702831787312274733254828015271253441760645694648179780216421193767065800561846033812578401249656330586909602184796941098784725358029261373497197476965940544683106505019871459396635710976578724552997151530033480093362722582282742018814422040998503532665149292373323748365896812626481265765419481371064858395141627708470860616979231600259252841190936218011865346306238716213782945340170590994836146390739709009391267270598769832947696822178201440635985333316056273004619391706544175431761443878055098057670469918586488831803515884952880500784063779037835533439710558298072137123422937674534134392554201437385541929751815079052499928562705576897656710710864806738154651390219065209684582905570985804248829843073689854283497402980594975043031103960845070559380709870127468217604643857311459803104593236305896063028244727004083566943500712914037427509875465977686000461028861585043419516576449931958504421660881728442913421190691801461484174738773474811564989832858476579324040453001559443362788755432362620681106779701950529674869243118076894143909863552990550213619267974652451604100735836583240550577644951950044187114258890916979412093545802603294165001401565031626654928552616963802042244417216305725275330676767864908546486669718212201477424583427763597478173455905582312815656868866898535146762140099128979054804669591182312999124053416134253483305512848874455855804647640106423633091769832703841626549046806432385821471745155423072492303653110952987651623419902248677837487169714380861452218869086806451831239071277242894977080722234071264674298321476681095030451983836446478181811091162247500654946095271999604066409487042734089355278235755080536426894013776631713899839386736765235877978378026028811484885530906156477522745062501690693293282304076455213666606427991707425142508190893775574048993970960183929404822467853353597271665165594034318184662296367602044567841992221619374666865239579465440282012380410156865325477364968371985306990820251270434235941904217798581832294604052097222197790863089640930692530355379179283466749426254146682297425947556618028927584611165965624638438360615635312032185013020929418093116507614382053826394652383427947665186737261506345010573578381078492443537448475399984770382767913825120534396119151598793996760755567694299487640472373509928357227310385663844565019478362197105883234970552917720965928273085598864486597880067162161956766982999013225609395585012230139467968736759540088900318902217513953938684240129332241878408431810868095386507148105916144502880728307637960198191456659356847741810565293113241564017573753202418935703796953333152708544419924485754282409288319272044815567186589226767319865602635632216460517243887745397740939497582982524402134885247448098779651484012701918920033493787373482970169567924878387735721110481691423655075459505771100827125802691582480087603218995349277178689627204198130977523034032914374037173287377358187164444000567437537044327342782248408164391170553515535915757748094608001496581717416148239163467289193544642110328952964428512916276124279889945410422641713212262623887590328364678390013732918494686694122992889600367376851619306506906167204805876269516441483912432943261782399284050444997741008498158228847129374916919269708369386573654789298379859121822839184426610172267603280967842497084909478233132611528241206090491633199453370923377157324125231909302912812803063681006205596969311350060350006519361003027612651408461865144153123450565382141549008687832258588622463898742608086369720163779947235863225583174815724319938044428499627818762393194272805997331578414257108077183772659394091639684993550530155062520184693219591021735525984514942105606897646845491109525938691272462845431387425302126471434253756329236090485286367907702242804868786110681283112957781900998563637731726921869409580945649217659246108484116933597265188619612072163752293583042101698237418986296910547736672443280979007335083845696439274969495818166761090771960108037606402645888403630763719511417372974372456466979632545148223225554827637215662183286189132322841112294102994186335058360521202262287649076246462285104451004288376936188788683596703390142598541022011791550842580853937453768176728187506697950305445360894796453710513990185123358478303411737162634351925931527633477282054105808342133890263756858487300212282624175807388052401924688295634818511509292249839372543764345054566952585173904707893071269083044038282730226035495932993346485111653966796801716350127650301878528211103429524974535399496671645054576520372320067084960738933973955888633719947782632957176908842902216580221942266290458436016759649333487245710336540128396431299229488985692672034475472730040127081079842483023228277202467847011819337447794846134849535373910740167650200154185171825806139437548970263424984312374307988886862267025872882917939870379652681438205038776674106076191273837463833074482759171328288949327145618862457320988547952763787656736369848481972521196289549279656041190360632721448861098940605180733818638506959032902726492688906396934053761233131889360317817590802066084268131100589413092371720107455977948681244712637262375996446732875798400690687741447526127620826439177078554997631497091186606212551705355066383202391586397518377332742328822020091218247395030789940530765932091688379709870846983430452564702547056252894285589361597063152780416439818287389359588511195819614879501764086666170435361475854915643603119955719565633664265646174200683748975447890829436524372442787432625547653612327391640781201211020562473576077452137846701406573742353505331082974891405357868200051170138374565515769049380642893015891512276089661070830284983723251434070240338037014843793587502020359832867333668059899170455933432878844648403043157236707157321695226200551588158192942231176940184803038335205306275023868848900177909792855313376169481704359708543250777870942668577570725778209179364525998290916143886417390183594954874396212871805277252129578770485245285728255374255592374755701394466159655546274696092589570943685677267709206804800028520207053893649685979520978174455393047033625175261895618179885884593894440504788765311071454489721172255837766617844858979843928533991855446744515304389999295859329039133000493377704993693339110587564845502181722971403306144252511389332756771450119026883599678622750822689036311869163746032733904236052658489251229947961692850064539498692761262318298018141318174925652914959070311778966944717475345427322852051892189789279275223403678816243764965659672953504323194841830040850657278589298714230551934105611447110968005373283352797999472656183472704185175498124177144949567549576879202754456125211832591486398671099276269659920809097170189186086724078727183314095189719559523439122238553907221620015234943052116523585169792492435711272728226640438704403266702771983370509062004315661721243429281848153692500719338807986880754853603635603612015582639881876894382887176061572268906905493387984989268908604470753936953374405422900286590195206965506804624335246690783276595096939293686823658824245426912338514165707469945558116088340784102598634030164800548098410171576331369252746450897501952354104722510617571719121659831980499688174028776585729109774944158321533544337229371363573743841029007944458907986791246287078972208436031275957003389519574531507561251341625027517549562306979295745105250435448106048262001390834090994708568654719957590287666778562670692609411669637019247060194729158385560064293794871848648705167634323160484317652252233228981391985406161269943544083324194457069964409431143788772785285763376301704879809117314011434900386693643919390309630222739111551293255163528030778856336335634985422580703476777404073421542686434223828088251698071392544578123163537765041535429006724149687719622225762574421750269875710278564288784463830595112439182293992856486955172753166933732816346556921864383426182185530429410180865653208736361591512083720720048489025482015466232311294653299440527575206001824448153447353977015630575449982433089380242093115611428614895103545882216994758599872050346295316736931261776635205935514605896711865552454600242750387502262970974993579683227406985266151195251911338444941857677253818917520218401850513178552061257343236838029390313228133274230977706900871148132831542749215078346851903761545922684947690342384593058010063206257012757041536338788523872115759613388784101872583900028615699904908591582309095756039420982249391455154755433100168147085279545819672125182026545338552005202459937140599620174816480528249081393162638116693850262897202378258127218586844749299332842870835112282105045530661143223027296842190132228100045293412431349949508857779264240328096470698910506380815065574163108934516637629975945623244425366930203471927356236721659396820866852325767599703941431931806667088861955197024888694283529888976561978367954639318699771056877754409921381482069897741477415005480427657457365028204165690439940700163345582359187842534436337673563086562611398781116013315670667491130076916029035292233009307291633728906980603013929690488529326886511957701154683339294264047035378533918196750984071512332955470095731798394829771302614628134844317920300776273429920789323379024938133841735170281318342407142536516314223061226779038237834609795099430662032421371075323554641743931498792251574218498159277430405087972873966335883966670352983889885962281238718696232922306895023011601259093711551161062052543393513761916840932756111555084154251223250283143266330548856828096965891384740633133382924170445900618501992934923466654530447535233366435691515310830303217026146014444318583865478058563143242842779971598878786157463385677027375358205504361860239289548151988521685852536845312745299075395826821838066466289892237162032612789623543460802794414806644759000017710828651820933702017921899102584755512392173230665420097456444912609644622492477336699828627254506822807656320601111500631814999608584646581706395198751964508938461845262577542190735444794663012597251535221613622056004697480454074323219254318820720779941617422634029463539647879563720117314036145562252219288362176248085095497686829259841905455323654087276449812408676384237704728563234642762147641784155158778178307424211711678216934143519471956507630456128043384442786762898339793634754112679741146359898352176040251720064888158938555134184660498933811317768809616051449573786032563714130270987755257570514228797453550337780256572132435973879258068430932220627126031051002190055884480806324472188899424884429046547525535116760563055048748031699252555291151064616301187003093672116355680082503546699901885626593774836716509463972283932500991276042509205230714568287042045746910046396088267230102933428516326660405325820920738469606150234225397828042280870201716383670735532379203262566449295705213894746810653548558309033474335157012715261298202849912878063831075151980050604001170190958962116667518727939498466728756796942721126131542186915628492624044777154878573003074586675296031032536338803694360247341183487598789976250199838551982985907136510088339621968954579698036560525302921019989146062048455991782057704453523452008703832091100122294079692754476279531791283220042752204146781951199117925496465365562076935551746676544014898387938534102651879895117522539694644621926578381826398740009584811215619709806900406067082932234516759029510954102477041720928382578055495735808301329679177834188978129929500322142035380337478585994651129087530232761131949210403415325295958257540138595027090902841901065721959301038497347353687352497095828000922681993820377291845012338073493474622883350435713619105408568919173528894926072578399810360036981684345179155186493484011961904412352594225151989681624561759234543219333848883466680473813733532016288780349889870551956684004489221539417862730878600404144137092778614642884665859124199333860117115845035969227261984140913989560274192735594271679135513724803090792353248831698425400303088911876964677531274583925498611259074749416424888354476371658162630825446746943243369045824392368134823746304949766708841772137127280570054337571242060760282894611458665547672116512532645219514869639646830382684484878282179227568997962716703768326344307623050971981899869387642909642058662835734780864276442782437023269287829868837282408666333000151489714409310456994821018844997587214492190804166543397465579114584790035660520516243175976535291190259090697181001827156726742851565636440187366469678090846203064673855974041734728096371516342366019281578751910090076325506513354504071937195358861190352596052056970488664373840795656945869175004362423718749602259321915579808808885961567853455924890613093164423166406667046471989695690335557351488015418838046599951001627812232834731915415911750738865218959893642370078712386539213149751758612022332808530948082316379865268825086805612254951972554539729255006982184789139119126121088057801616649048806617120819523934283758021881380402605598267605052998626914928381236510130607809570757784521791529287767299565567558950406214658931076217835729865298250339740405403445333547183042214030598553973520279387374060777597359299819281212812869302484137789835664921540399583411457988873479695412784281546509550947054238189826719994293370058941211348672324282481643307494953414136315125430578795825912989897164749141079934661500744803018422361462838446178281869927947214541493697127084022252349062750932743802629748280570089710090891130438484707967794604731989830717400924411262430674061317644609188306766047692816119212437972281591136550507916391521044827068324426926252610715893339910414261529889333231598677826064570694292767145005274036156034658155585994568284620265975095722310610205144912697952521361947849702426688949647521572167788234992622515197594209408662406836278157237015091279247734440995825783167129732034092812824271268092482161131518621430223781290684302189370796394513533717023936850521440710753497525771575485451453319619034835954581578716326401304197032977444048287965064343558109618163425222310701792673423408915114716272434069792364671551273048694706033337025473555315035422662886499093605112888773514769167318179832136398797714573365428921175016353126838557093762810232681150414806228644597588389834811198060091662178853893841180672704971796414568182561566271327112426066989432185241262425571730250689396779346239497464082299326996118964841909703240473589427477694819543318530901529032124846364122476692272052361468361195412178144108053346485489149433562491244298316443698329924563728269837955436730854188652412487031811056301888156760171256124699913255640721595357566588219500243276569087433987333970135114487937209323458399544623995416439092087983471912817293519272395880146607084138344884044236122505585553003329082736265470391504921784649997066007021588948126604105912935547665196762708621957417497903857090505240482557998987921437151463785790557596427677758177879425534861411586728995849257526122302611087943313952927954357161917429767625203663633628173269321255896032451475611724561004914611959523112834115896053598920394162617230350200511708757520431031343050868616438681859626541499087221672345099871017845973465466429715933897948081710887478477734810298455360565646831192903576711365792802142945807623946360569413459544377015596149062333031279788186019281159576188542732552397105019759994915991201850272834244092888492056333594349270869594695802555421383838365028786371493171685101886079580190641448148274792492397675311173158242650048400517918009102344948413071486792480787395686264347781763551892242795914522407995219691023098884236652467157685617193933539635028132937302147221784564689355234917681290618238984673382500860320627701779878185369043757301479120033363493669961251611470615784308850666109353407152032443766186156496759826044088841853439004066945175065875030960948902431703208201996102044950906518313819536382599379234799361610178786896644535873576594086452459616653680871027309100975290325857012292304259682269562700694388988073447302363174199752976574491582746391074467224308304117853810295788404283214796307712398729883664372758999488732467774294156907711215524353381053496280840895433859182699815814562548158207037670710106673245180190615296763802412317520765175141704092748247419434705098674549376056278706017578178174570194475525906516071328597660586880100473288847178144706023839128895556358797301054927397415114759704114546265993063610067275294268029333914010189930020638286003702878017294055597906944497509953336666140042740638935829162806290429788548507818586397403897358685775224547438713470479398075352672464842778484388842648255163568153218614667354769721700400474897656309196857792689506109705309038800595221041329215126112117504010007166777492695557172208371415997567961269689588558269940771124748438453100017787511322030777593418727847671140037019002004062958410185025714925913819032711917068591838471078153106343027175137915499812175217731654424039224342434859097017919611800880113120611358472464943435700284683453710689315482868333964584314438464674693816876787174203983369814778528119830022199837438927654202169226419801861375795686287140912862040554152532416161097345845460850967354448249446956422906649226462778819248891715499936846949761239147415680675870768202867727477758921352760009876768987648761900085202323133140381625394957862122959111554494157396492844667569489962054386037917511501315208622940876197323305074947383969684061424273841891004089860105581134451250908529699593383578315510140412996802318523526950678879615146723566034024035893725201396858037276665405825184839537474358823134158092892675677224799367234296183438434606981447526257625644357996151554854112014124356460021016990733867205126985619628214593874463730785490812214010452734475140706313533448230513251510721250406790162140967788552981028537430392642464540198184430005941268541106931206466263845752698371811708907007807132117739876254289364143245161652259227124516594127918821477403584600294513117936399218717534101671181220060318182358337078204468376142501991168282815667676751789042461762754546154974456619950116272741014321128041746359417780768569986081800886753083393047380496783153630066234185752475818873430974915028444575864357719441478126503886128262375516697999294989524225667887721751742248485129888465083252309454924750222988647050355435794568537310408763854017134206337395831681228196364704819571349604979144479646947864154172375685595265211001788854444033637970861134779507767736976574723108701595642626038855329568189940548492618254129857875176189699918071015437776470216649588630901306444752894539851779197538806381742380647005970499236683616898133314950430189584544115230257391089763538229198123920162940698370093498543181201562391316468759533658332055619744498624998507492552596642989721693415870769001923118184159510042730024467812419663099190666480352132036680117042956667677477308795319008832295059730726286553713802297253861609026904922966777484532989703746545062593204952701699200556089623220413201125055738724681388607502932446297960851446445996078867437787612393681048217162948773020268367800865161459187626800146531955305141275340849711657947689378592647599384365243032158609971601515888429649674428873152176140858773266743048458401930370417657159851557253584905980849684287989637861161542162314735782107883651854191100629689211575097454307646215132601448468880134310568745449940476205388055759442693816577660674138718326424359175312474161703040843556982458909208364764583858355692997283402339920554360544411663827122745081153887747978715128206366010376351948134072937823946719692445151729340751424933102960331638682370618185097302178959538449530215680063466886088269707457733488176713855354122734902287348521465478468090371670241054812784784661248170341057047897243688408597881049884502616381961913195632307232790490301419861753942421448617300543639772358977698671806068366724710119942652473055435465696030526685580414031809047483081826354063561655763239690217357091226613649538119588810835831447801618011451749865919279165167546831789083206502194041394146848757138022168720917469764694904183762575732884129160842877699657573001497545985684047492702019211397301394730778931018277043345634497024052546581549000007055830987496826033285992809720737450650014301673196516132861942977596500609584945718378323310584817143522619821928790202517212612587187333899283811555509863324314620595232649615191878137687717946087342587279783887849421863724673469352999124258153413357442584620102272828316712928924742040482386621687750703366439310439224920337526623965092930763747110584508959734432928349871900264952678877178587417792390776374070109956519660773194319748444155666729503541331796461375867625300088264106151804994503885089488224010886987355453657500727026461693998771644370436684937587463329285081320848923848415330147490582920848939682219886825550707445649712686569503888464483822018210267991361411433080903042894879589703677047313192545229041086990162322128729427143131737317948477509692491668204732572498293838028600648743528612836873940004151243419089002278652059946936361226111700324204791177300703970376402066047889178904374280093284055182498409620196121229450305401777062249346023936747138019730495210946676510516263948771040602733369234831399565279649245701545577028563272303545824138009911442806190629174450775319848145622301194936001999071607570886512345785401337159010415241397346079312770245771746285369846653445407373420432048976981992406891470492389761090106676548000918289428043036368965565813415551027208862080297559755386045807445582065178044366984404031169675423878783250061030480020743469071556793387747883189062352497931281512508717447673114375706518891705494471791940058260818516025356131324733583169360714930500037770426963123171132385670331237977117972526377781126141077492686609448058002430060686890155329016345152054211948717986089366323105595555168994640314483167815521395390777164148897262429038788142429691750383145231628639658613132059875786308655296975816753412208978171006798536823331804778017155952683080376578360081461517626162123585573616401866553498519961217130592677663959324080385931389048425805753389469039762808119951750524608115612548823470247735694026745296050791770114293264205753715452420985326539078057771176901294865255813075107822777602361349136733198487266585233014931463259270186434145303572071170896464410461166698847618842171039579321889913937306582895875249215302718098365480859119686101348531921398296057266212783122309922908337226266368798387734757165430312532910824356341732432376336277185999143040757268220090843196136038337618773935462841563028577616610945417966369091254978534537100175749574992959880545015104253017882270544051179990309898059990102471108368417910503932697725483804161180787979247605100239710036075471747571582647118174624746702165503151111318640978293249270816384896303717273749790585308415141466781191132306696402111115429606683979322402647264931538497230898388163915552815884615063907924661174094855056201512167439025007266550665287045074272100028053325045239568460484889698728069976584294112590454089560702681773495189058290685607677028819773590160485692685293909737052629430536580645878787167400421223624552970347191384967197392749713076711895188304642007797199691020645976326792669068871957273501043181773154571678127124451231436137274489593070129851682126407417833928662989735039796647947746494419236679600634245216632881415496458058253999592793313426250063781872879001322257439562529158185237529880172562719858188828223705874251083865432062439719110603432405072654633669932232461738615888449182636524881531817792106498078773367229654280987740122409592085439275479750024304268110527658825219560857386345768356668224577320894198039337900500304251718731898364165829678349232878624717038000010420312971842064854062190408960242482793003000129808169956248830869412033305655680187113416824011892917179979131188906266757633804522245190802085996738780266343222605753922501456939555874534871315649746253631225504866463891542402048694735064870097451049117629590972520056335684594713579533566573646821730884602909806107745750553541825664501011416451425230478567311781949580049170956046221257937242139634135939572651485399589933227841179525829678677024968483612310787369208195093909284324222425078302079299779547332983894973376777435861695660763272893740057724020503710428861740899825375203503809066554271714971826429562077127940789983084987264431137653408073177608967673609208315347350990099295079088011706667274432196520260256868169594178252719972581700166514353066824100280349111731188662337930672270666881119028385923479401937273880107373791083108689467920028688594387970929459987118744767040043767231551846402469902122598414513820383102523138381062451910820473278147329748576111939385883328456613058162408060355777428382412399449446009341826032531286237967193281346408553104952460048623125643944586887319265447548619800340493342619237474830576442538841580345057746993166924708363847601413778871471557049154036433298581779177942105851037790108658995708128770643025283854427998878517958438081325436666763310863519858359482137216777198390389915295191556251086862705960547041189928473168593290514873422766474109935451795393264379476009702647415870738667951609783806610150921314425206729432688498175408692815218334486553648939469290868848218970345636710466755142169905341461771951992065828512171946648854807300097718880649496551635882787870529171335358289838032329892758524313250933311178836630257265361960370504499848222526162855346079927900414602794270819546268504940554104495482697162395924864118252433532679445911910897776123088070883369842250709171421481872367866056073901013390469614450711900516153263595122964282112088322494963893510603634801001302993507709286212853890078417784150042400470348056019721332488588119745298891185529983859913604739813949893889371091188157676188738491133654385053181666758756129978699120008840843808776954784653512446910412562257138619379841883436536102150265730019476182524145466519287930092927094191720118424045929829307736702295826618884033523980523109499042034126758061514697078368630843886954277883295373251702448994893445024670974743817880371708255339706300075243098492243309008022550379348595697150745402791270380519708212671374382189421221991147051099641526316611556514456105729411874298248243071789549770151233151460746575791135864209893004762535874552427329562459755548970348967736298145255082028750182457085123570666081030734683064821828756111321099556980707857156134866382912787493592600820138189850415171535530858710916548641652859452985693423222433111723448159166679872320881189092569254771543673555622065095117598695771921663234830490525797397431864689612683714755050059988872407705647301427706062275533343596921714183615735050833021623351577337413835006619174965893543858928079563115010898704244563405142355781690106532973984147186656849256053815789625547506835870408103148727969763787050376374025338296956987281418068945365348277953227063064800415872475011950438454376353864492528896619437378029686116365499394690347970192591388070094835183238792147565610135469425702695033659861281781560164735442226995572612740755660907295852521468520810413634901515754782163943103818048242346377885147143211207850618676818676999064408460296153467897434753436569910378505619589054928120027547389599580940754194353182520008586128207744340044782784929492490201616312118671173320327267987897391822471877961547672069908171622849085611320182173788578491375691260005688737820148528574501401421649207429591226359150193864430512696081028535362121152826851161935523983663825207673914940111633123818152330881937757080831375817957783944540299921229932571856382279555972136929481622178541862829829021245730730654391355402015280377311199557099573985288669326543051205866680731537552175374620256731495629836249999591535255458370797335870649513735704947761473277501023089645265166836275059479034659536368530123063185245971181281457917814424672962090505618665474655122110254691910636530648567803974290452271206920472308536144797793684495130729333166850813484287112267925724776247927874457223093917479473146989837432103378515889587638241473012009900602012717609772356466824879715771534371049048709708281100757514511087266488474910120311486818333848554228502938237952624163742565026783417915931521984787255476878917006635474181799286757372835398775284928380088798052893966533691469678113377951910437930196320621012503544075575010268792496495982663051355053489206322340459391050605840648147939476311135351943498893920667066603738106626676379374351379791921324038828877404280506676403425673180306896790690245568679411937276300728600681315157907082490776365892695033020920300285293307251507309321214241762295488877150279265710191066863761785655531861543692378316921827735764185759568998048743239846459077280419952177114543702359199443700946892250548260900414553811074122650314899730670468640980310953431669843071529633819808459838080689032078584808875831860216693827370377459900271087568316359244889423832447876037194370617618590547859896474979036028222218972035386024935887361957780718728082499976270986893286980263338351736790885063521628641955241433962234538212400220638102690763060205546826708997011981358356690951544735903803702720818459043634958407898844418546745719830047138475750139291902628753676312703397612704973667983669390056646009613709120723375648968869114367142463221451687244137101578439465260630855533687099300863760352498898145618226908810886580951537467868954101957538973731492942940392224539803849379109407718767254677625581747215788438887421877407930893498429762408984241469920440189052060788741383837498426542282587325399141506560625242364149290381439971719326783574666997888857784449778132042955101593851217738311993060491652637660156331027430069426396770875513033179965092660743458388915603027151693612772638930950203612388840750146448977597881540634675125231326086506902476626354771025691597945519272709829729119563566131850215386905605922322779830596612437797996346790219571371637550816985115812397758337735870475773291499843720700733960579207614071259935855488829490939935336818795541036510290111581545150900451871168006048120899454735281097531070098008535337972485866780423385435073508872667209368716862803648831922510726604747892007376953597682693474837517648539582487206028461820692253182033745402742354793305633240871882551201543470094511429989423812819323386181938100748570261410753927026027168962242490209296865837351041888633144757904666077961988118467742546937335082487898115155952959239131422064808273807365738769695150080872315677827134872729334475880161681269245364923857264425639975443081449732349655175168515631417310628314368505294486956213347871199964674139276415514065209793676738797453809470876256188876740856902804770680937320441178914365529002845147491754416281142026440360358104105413362853897173847693179154813074529998169698950683846012029773224336630988528193579240701921588184070445026644363670364416289786899616556278629503944116688442251870349110341086006065891863881772516684385283331622187690802209490134444365463800130978003045351925610988602070550535457033809966094369054578402329569179288796751902556577295300358380518969189684143028641725430771574111613480058440327162077330119723913647983003382561200772970586235846707132518310152161452978852988290692835477581924691248335197162310962811267359317942613324381515335368937686292378376055941450731766061645976286562126536377175352451459552770437252273347179043527951633607365544102668485759835240647198937861990067208389576235111362341282359396279979680325485611379069582380562985338874536444941123865017664259266025676437371520278734345043506698255180716979183400922555486017606824820768673682926951753825392533126095540411951036747645691737006484277781773334801757924534070876540735615726878646524237720404786195932570221950922489003857230882218587388080956867443855495428920203100838297541008478245600160380055937912115188359740059572911770841587668208061123440375518995782637712949257348875550468198366307597556187493964066615385020333581754731541735759045475025796736549371772289188399535180456550504483428494360577660478525176885892087497775387418371714017340250857996413135834466786593022748089382113396159710718390827570117780591550281747630778537701022784719029885726624102586785035932612268381352515728014107973337906990565326441561453205900857624856328913869559843948241851071633049766643804698173632672465669778238663280301832444500239990607157001284471210466320487123358961868636264132185581267589679253621643466481375283229429776896470786912699009153611130882610022610186777829124720186559037278997174681236862138711715950954748378118928832072620201265495470609549719191284404826625993514194217681879118214756301050570882734130065455416402628617462328020224729834106490206658456530942754690037368310318143465706284707022600628202388757482437297311172931441299368645374567115050254207580427852827817208983829203938876768854241554481377938952867946962179415410281174914854219580149904593868144657937140954529056847497488681439120943219121051385097391793993064826515255695965920388234757705676352534599365835548687691213849438617989623888873872962651125800547965748952462459366287606124110910183588963775306620944155412382552505269086393296289510047112766921327412134666713815542412978256459808573343420200112668055711131555873794894048668180811606208221050019401220421955498169518008321969511050387175985472240443869495468811412664251208471649835707148012007698212055868509108991190920302442185219692653930639131716376891295965249491895944434166372677352477955244357060867629601678040796227182936586196663777615961414204053269159345601254340650475770093160620499232997037946177898843963130847062569690724972876028366286590231527487605009221139926649815278217479138112619224567449729022887933408550840664849029364181240553314197855872091048497407934861195439704839729541371987902264216432235496582537271155373068447263305081343923844370985024582909122023653127069856698399471748579577081030788535211085319634269343198691565188983561829994787082179949264811427672346452759216599770076177866580733706366139416093948378216205169153540521973026279050201233238326896009246836014629071750447813911705510741873774009038100880089833624577442865725144421563678514924137695199848025198633711382127392410394667565466906039204022510036787861067032128020490789059675711883532204918616135383738718021623105598825827884102122099124682802977352961480718879659154203143397998831539841356049958481277750785466235551738735565798972320032978267437601193484729068691968052996713570116401279618868634512359122640067516813783710863850548373110363929457627534884680910312282957971069720881188326716349096863552426423375713348149852202811418123618489370222473471452304391190241979361638685050195666682919933609834510454829810345364601881450683062946030334511008372999067789648749454004218093516011826453081697733852200351473280710285088990494497076277268068320290739009960147371284412585472197952299109320006164691066994086216630918668916396772667977802841261235791781961791829523356009451329180500469902297383113459978328044447366894022782079577870506518831112505512368165173275079510025703652963829598376709141879309931514697417459993619639846628856019692749775453708520599226152030003557026592570482506208042576145684781557073619817047686069992965254015181432819458965779882267288681233073769605214939864163591061741915625889886018226591834160269279713079285886934720962132838203975958511161758963401935090548251513198520797956645847050467619787370665231360773994057103008771943668796460964416123887238007915340788109508904399213464962142050473583409313389113615601185938062843725747231674270080750824413070979502812836023598737790634814362114363879550322063931042065175633769336148524804378208452443539720815104471501132835749299124859814844313187098719279533897638921724419448467971590332554724880449148734453686463624638301219613745527523850274407809307448322685301952392710591771738419306439176182129835311805920926304214011063925903934902935239283569334349092289066543348434899619508071798218669683881875776910180723567093185774037684918968041585359486376568749871694784868407804131878792965012893169621159809343974416322225206643458640394839219316993535160734091479850387853377916892635236825161641608332745095655244428272078219958764980191548958825472496188706136134648025978598779060560485318147612277183504691139956220538882262244578364580734257157231775834670526957526614863532371219796174326572166353809857527109411856889507027892970070796637335519524392189133324726312091884030117201349820535389244990033727311406046589481702557321534780594965147833057129679484518947086479437930965548192322687002977735044426758210825493841487342871521854635098703668344061862969063380590710007844769319016455064826698771887581606843959950526497108280465181226302973179524924599300520655535869245755973970624708511597192266831277424110570527829112691421023101413976231834733194336402383316492857445574935222171591406641768746457529654497453656307842962059746719772509187654503649265738117380182642774238469629059644229383745912882965557393355411736734638278500059921527038732300186749877217963404538535639775347335334884575996105812056485325288571353974472426184183536358833544641318680374474108965252582543278413390757588193815679326099760489039839336045203261558320883872820457926967766380573612256687743903734880789635637560070515849111340472145024843216084651802637933988539092066500909351328761232233932417010077455696093959233936548140537299843982824672371103062254985787627037586707526792254229264744438031675889508079876961252804033865354967277201262737913731069749205317768582664564918711380404948259213036786483089776943077319356342733736981422672654147687257708470346301309899188651668371491045534402295299911348529347872771107370221510062315946523511307046176427825301769483847691766813494558436543372682297910762366650832804293117059744060096243681006543074135464207496614941492011044569173049803492267456901152825998440506698637875610621853740916022700372584863016968406086390839139169094961518664241169891883401461639481367096782697273440516930033312273615338955584035472466182781461843881784295397461375819296626892372553888241823695338165843719954433256763102037389824342350405188262582270889581418267955611901497589274781824199359261524665841146395669733890533785919336311099926464876957603011931830112759399743927219821383666850642768134805309667737393358788937661406835830701755258678211105472176164152189168162001267266651303933628448551216871207761597577407353121545444734893779044192097269217127183657536861591786361209159733764491035390302718667396105867730732240696207243807608889396318672544331876002285105710063156594714553199480092623783124937864441575502377802216368091642411259484824751960602109222074358183254075789532256379231895722464963050550894998715037843849199459482814032121540576255017776494344100863164561528813305980306899508773165999156277173305946785500721261232683236026206319645733062970705247535518452573328741480771787350963316571127406061044797536268731372975582247879500467883440588970963507027947041024090457345359343275350781450664261669231164767380577794710369380090061716180947470466389001482172255298240757506511831094432354283713928653383430343927817356017456892905702762164581143503241219582365379633439100328815600316560225661443120931143735737103521310015776183738270553843297882905025345352797048200295458810052812625493574985465445415819061574495109230576378693120230511467875847563314533030120871147085312657742802201684116350557334414626309111272609860947000279474715448571800442644091753735722908411464675752735735604168180393991615736704637802231479976566545369638514699398247441233919605768170772929638124578702410345321180522421892622819657089584822651993670327411551584273113103561022626679188324767905248131332362030581709337953463499035851676414023469260475173708719097321406926007109509863308829745249930201349595198303140848783989845993038264626783665468485749934543102131505325300601475113881692908694751264416820541104699264072764426605052737462941540597114405067731212122078614595072636146596774842890758434985513883767424142107305753195923944338609736801713483149223026213213268831471876903252141290306885548678750368783349627448421207259331350335237892520077630040278121256589116131145941272617803368572514049706376450874273558203433857470270009009366513371318467859281215019438405367704841753654337651402563575700801198950959012504475625352973521235571083302228299428427667038274010804781094573104499302205420165270768551975326484086669731114845195414618232604221490694244927651267584048528989060002227675937187241099707056497107761699758455806899587544626002588600245074433859104043845234558542875011800191622471194117464343329687634954357600936699780465584443311836744351174360082460566131031121721408606446515224979289869739234749968652734360700691964299936487955523461924167056331226046092897189346852671542531633036907998491086682662812370446646872036840133201010777703511769741550796433461380210205118263409555949245350477556427165524722716897686324971848737724315931925280475719529585203800751906357354729721541422664826693067990404510539331996644976650291727390631792791144920972833314247408162388529893126177515127431906315776712152650409267995959759248346304238573994308113436987284265425302463456662790455324661179266974546622517275992484596648981151057400917613306845918696833757429571090448384358979344118342072000835911895027225823475310688746368369553027164722559327163290518603582554217589227554416952055538067371957750354956222414459491389379322325423064632550032306154296912856513834324701436320693929758479832475930882822097257258187377357810916148247675130963123352322710162685236179917716269743412467825960025977403218731547222498883682099990842394405258781417099403567500681354085570323694910468519823178322512949641524798687448276070836357985719633498866983443002284675616300474174150794021698422638160364739475984753477410886125621644023904596470193263260925092619911544948277565033263817061954167309275393429498992455065859215218405416229489264158733860404554467698571739064745267854498556528013313470091106971521162566994659926575068206350090026090052796082697071629110366174898123748759819625369536330060776539527779043092829446755955920180800261090083370592895925399353391178069845345109024627279151885789076665754260010069238418015922188865126432797759416422750061365135188681273873314349918204143725340881649568419722573827118861437181990677630630653899482266303469673781713777353902510615112398961187146681127397455421756993623698566729362099369880127096365022318279127491989476501585231647354389616609684119965674619321192261645963579690234270623433347839527745708883086337528619886657801791532137818100599467856003961238352417825135068268359077383775834001546542423842414375858564578786493496575628469377895045114220757962127929259663364760969389110593174779767808621693591289704100543675604652121609148031638498732855071497903300183256246554792301773691679694691467678293918011533716220356779918974010218437949723237829662739032225797940689149152004249067453374652885397133709580338507611798312541987429141308963759559290523854792866698515534546135190581404740726581458756296187877625454399758094931720809402333803040002919806328761699382911195861102576086625062352831280963825224910852667042918220866924655494317783867806866345908471145759962739069564515037613251762330175944581255303680195014895246213794827977545273717638089602361198524294738353747780931613435776911154474879712599833590424768498186334689246571243196984735286917348635295602186311752678414134987022372334291193547034948981109547745374360127146054997269704660255790359252359504824052279891351151001565426601509188605670297367546897127407025443905439053971929604914483312280044296604073635182057219098184247229944973402189619449656265813028901120537735356198096011044629321967016010817722916675467015521701388581741180351142384684769335965445813364162178671898146829454840301980386963058563034057938141642282491339954254323962144183651761890966224777731829443104742613338858487116303726255885467094492640006971725435781759033201106183480577514543915988437338316652021962459174980017160970919663905255567084780659896232936461801562753006823439980534363675186171760090644613361143877590712578864438662700848349164482577925923308716781744412741099195852434323417119259557744402443962895753279620569241410574504863823212190051385021480193062128615913774030172059267632311238577199444517864668052229273423246834358508844424400013194268549090056841238923307455081033166139391719036869553993737373056766081139942240308948205387878928571934847287111138507864430741661469302479476568402520296545405571553801725374703249685781107686056894718861297769351945437057809054537812797373561836950122722133014153258935892973829509345887585680490314751009360821666470733104320843002305867882819472602247322175827968520175385556402690158241521233055156561533895931873317192024464615920331651189076927583307056345841951950486160749285760599398132984958518231743165882434766134014353305231817300433186268849760269287058086821473271901136484709626051925478270410982466069823874479395654503196913788275969303771845239693349160894914807812302523223648418867652950598568591604044206930504057997176562754421759850296480016359763719484665979951732184334893874794654585053874181109997003050078681363794902450049081379766736935873061234008994670870949890732727746057138321858644993526529362263127232213198842783166819384230536110208981629082369330063849791712035160502481641933360905731231156744326958334100815757016189951041164148678497078623835298045945545317022921426026354880256424121566012954143515863064220346956635982188956126588387052974435072242004975684645553265275383662198681610881580296290735047564050228230492496749889048488424361785866560775935916817236064170712910990996204312161863667234442592139304241944626971637220411387931292289449881746285840806536903444338168304635425130079738476279407976626559602792304408897959551814507681279397563838910969493964106249904225357538793654679970222306808177460096989370130006200183894666978784467731567663365486044422432593633969201988549253362553064855100327834817432267515934892880441005797948659130359023680878794865593325876308072683873574989937712327225551544740218119477926654860952722561398792934349776747833584593057826850909696785112822080455717768118340027905175925840278280450012725039117028965589285791556609559125752084539956878318381872605803067330899025697462463368651971739966026710542249158447805930845878761525314852009436507244882281963879014780849397988742475547581144499658371629196010113528002175911824241796300967019857592647488703648428615452981499662917276528154771332508364277739135236908714536900056046617594419123142431328661978917132433667713781044935678001742883088063089211220034949490086705073822891149672626479007365449465990206161543184913597438549738790182633858919971199144393399831117760788220342114369046045392654216335126879699370850491831786038972677851339629211310476328704874128507201370997942164382666191983029001074926860042087724564118717819007790031766833117564671406380171577414931769999637128817922594786813049357225198097222963669830584674276617671478946687895078935458312155331477040660208265800664267362443137232637695912727566680969725812856636052264848175065753851108177356921366289008650130790737806009816022762808177660751423050830201063440596967655594902069995791854684690585174688700230465728664554185111802214623363713500710308762454023475712130392347005349875691146573658348315937034215237475495542082714200980737586834468229981254088179227708728085711458202589447447902156974254020472218904492238599885398096822819037854659920144946001053402985924179795565268940721090671909910195912338230498638969745092766994797402485196791974397431087630867610427743402592693415239515824950724046804823008881461646839169477035991519168835734775227644031220619873298061658758721820243761844340609912114585000338638976764853677212838388577763489396364855614562648473633200314161864777401253271813000218209519507922637585424238636841285284876782421626710673592241287673903242338043616927596633184503234591014031617666932978248809005109084909844738776306644781456015475234517390425766433440623490177644368731477008786263581966578943210913452396140615665736114520526046816492202863847482848740053134326024568226887869127825166222544386050090405418414651821717295825496479229295587257127265203472373224702237518199156478286167888923025299719474517135686919892849686683150570662619311272843627307461233864330825883640726804777505269151136526763775840950492239247060986449321135626595336847830102005589072631385833241896918730302278833970644676538886608752694921946196965506105948018447378481747606563709548409055976968476882692444873601489569526901810795167175341062342565899082845767670293444329852830497954299013963039867309413700953196195927943615039684677615447972700985720973946119861554331500154632033126368367686210587709177558094164749571833244242491655282420021514434817800541522920593002267539478281246308177280388056927025962679540920835777015323137873313001651446209000256807002023406223437659760848107531232743346292317191103964423521309808868792164456653709532327984794617907914515393573756151640046952590790937415918948657852881091531031865900184661506602809706874115583154724426482943485785297199790972994160804585144135869030993951238234336727939889914846853529276223225203176772380318775325340188153364985120696230388464110830359816441459786521491602742042755156376051476085367054971527878255854189252874634058874274057488560448094914753888335376085733544434276233048466088664864537703767895118674030361299228999861133585642703384251132530572243277899247659673304495420085023533781294013604146544461953499861731761859607915587594567310708280068956226868637519357414282907080611719625874793674635264075087004240548460622799363116099207326607044940015443433449463548645162840906896419245156779824031551538155613534318829290729042398651374144795760206641843145085868874766862940177014509993564234742472928730362330407453637662632136962798708456863048057072817835107840973304811781144534113344997010353460911089401180220022845744395145345957925566224430926121607951806212226189514292965788125883807532098489153492559755706876915266889594562707437818627816458722982764962742645881257120873705049925561559890554721055546491137095176360610860972883346904077877624792381874891995860020193428871352405026393919012858153059899419498503138597194206339230042870258269409126062495063733363847136867570097112773068625120425168241507190250826427915652227839503870245451558469612662777646317706867127946130950785492497849448684538106888711180020211833235463405034483372947595795070682162374410252142407530968201956564154052589115613236098418494289597805308294387800359825016945664123095425293424939600271750299945703978622641645321575091308573186448117498584783028019505731689433855140065218366271884022663165030316789392815390317896588442578336746646043692579754796066778101407315721957800734799346682009237217133018352624933572424058528720170171810040362624542614275571058627832419235030019853822362599993977199384907217668310765848052708532677758828776516098405138187990900446343164082844931991609472213189687604464551103598974767221579529942548635746295828083087642735621083810271665290740779341769776012066697681863080954767121195680360499675843221687051565886868527302712203968746676085022106829823775868334825619761205950045353795187806332082285884132204672933734972639300139983456876747464575994707956665977113511759444852074522555328911406798424309580105046739090218974945154149721011274115248087535510094815824750681881802740200284306565349375126507568599736477292127712044058911915209227060747602309956886598911515527207002556278816820275130741351488820088412615481733833235089123937525360368531424892349857635077174709749972590127505634348441592517904014314226210672890659106287872984957369185075784423375139037721991715966459297192349888578079295750003804990312461859195156502722937098958101619226690417596770680185884811127357230139344658919204555672409842504124180277032700977617243133816055041984892488854632825273061374616504088793027352355785046494730665744146235528670147675496966359668702163734027741723885141199376537151269052815625491783677059418999987147910736835335973936557500894830897539345176714274300648985562050581452812392553396135241149092547253682358422988466679061963601228135501077509304489746914129445357855317720673586362183183732259411495168884065019922353182451927053056792260615202030099797749491177370178419923538076344548295387976975016933350562200253316724447711782299917047477306736025320186723089035550732189098672952320505798648162728788137764439990354798032270746082010768771788832234806658410643170359309409141785467078677093066233804820786034076258048103957207776842280271344830198764975824527977438808873901863340403842417482406724822385418770430145811495995162677957813469880671229834893206942993987339992265210113760488225967712835032270987223301705692117454755724667564024350896034469939190367329192483801783277386671117016446272988243345160327489493749782988361196041467626052492926519501053840952804357682413465258095346560378116616774234871123872517979067169786386812247312174958306604404373669441189845516787836962166815984267164367774416679331533619156068588679976653728500076727782835615968628303145898314919481621569651743044650114208163061219467988842942117107336410412778515999947584944640808721571379882894094801633221404290617492478088323239863675488377587962133804888753309906054625709171223566069722928053644255101171872105549501587973525843712464210426154594817861510545403513117791037649119829793596394123803159405310724899714805851621729805845701826114990313235798532090139960436094738505766341587311337975540057610125308945239438096456240268912453078012966314475393364766048327823727202096514459020147508382762302452776716549124255987847459707538401958665528342821013271946226944222598142114813313117389533578920869926232888271201805334212396304225370625520699178804805028212523122579435964066701213297375359936920473444485006089755987547221962113753476803133574748334641042717531320380645048347760550312892670172045907257449836960249701985273375783637868502532196980892205485366503777622418247604909064398046812573073338546145182786089584909054130880173620793371397735516234452465273450061286607987152080478504319473846706294406005498021274810096582317864691199151933433262654293972984154836544015959581641806999197983934293011904661022714707938262067963392425733985306585159302806519061417504258054337345155493991004319321401728461564288913815558714610247254974930046978118351605360588233148000488753913827921948370970600382522286369973144557717877822041187456183561467376843222218113377126171417102077687535236105714720299825306671219828967119723113798707962926480117678131913192906812537866693962970319354182312673513896259071307697959163133429171807753654104138391452024470594987495192266158789570973220951590678901621779306372682662297867621931328248723403797960819070299021489264915278312025295083390520967122024970671343606121165172994614573490483054884208138567731746192419140093483916826624166346588448846483271213061382385815386483092761976953910234885812783654200014258867505937891847539265414773680712163549563492287289968510154720969810860760233379816371742017512388774138592414694073521975813917145917790949888949110688253569751024558721968636498228605974630360803368492563595310729062591693839645127559508968228617855579295696710173090403345947112410614649509296963884158644694757731170580192399086219611044166489744275211613762631302705040743681177806251641981927217626569941200614253469131120185135399378454681531013286351429728808346017120709412441971648125144471932245994847384662064792556781645334731069338910135166859147618802105095634159176187857146730468127151384277226425472475220601690464026877204445965961551421469998783503350373100269220437369037535025542131366272762152232900490970338636629755190159773517698019566128672233348857971396121655218731298757543350998786400515234597740738722452829577372101075253451632350939640020418426068220208656329046955801591893477437556058430291291904536677331159273077715588041729121603743755326894892750190021213334356025350389871259022128006959323330317661829182105732851624039807533258525015222585182378165310245200542837060819143484100883002749859021574445007435902216651107442527877892326805652118948633344273282267989691651023282131773253365959164135844512135107054109371105805652140019295376936745370633380945876860963109641686590543059105366832057903532595666383588913277323405894597569651736091417952791146986276988321104689489514189113737143162178978100043931540491874556115763908143732204729011921003511224952874642009862647133949428737432279596768867917978425096504869967777319738506170375170566020418052236726281178763281464408050379166274983824587721554555999961878087059987893113437455434316716624074545701588405156310570148721573267452674458865938856269101859231758348645151470620091524761816594284827168689144542910167013563032433979478727883258903785984719089906643132868228183852163612519934315849764640029112066585718323509776531624872478167510314306212893289431606651324321317208544681288491919953893205543151396061881503283969589337421207404006439351076712306042558071683001375905119351074249834450729874681671190956045935781339766655217163993984931348259496157186560452379943612993332709123903262634804968560006724362488133902917630268920036970212904737678753646128549814596052177994260091036432102450577454230192994929410366766636753349509774044041247738537730483690334324067795912753316335408609063496087406646872499512347481330002818051509548244157950094450543350267838601687834793097718593790900235422029576488884933602309071513145015049547787187057583922210495487430070198004722225590469326412719305534985973520896222300995586916428750928405457258777624940418255434321582741359869761564285261542779504138733300033095799198787893229530828939106724301145282941317503587901352603826298801330119937155955338947617861079759611230555278857015363686391264453033970076367100324896872995538466233254532323809241499722485726461445840335619066091671562205750770544244714925876492268411054480939375611166468684102772798715040501629031931547771107311756837260918493277930583979681297602244871491393790571090621521380783806560993449612869841167484831290913315820064973655303627277853050288716426062613424784699568704893800986140920533191089677479283457170316637584869448395658058130340320326307542120842184404416359168384329125404244049448758093816065580579197729316833550033012748277792505813329899341632330844178820616241375465797807124147017822766070154916948107889881433449867138046597790590483137916776825234419485455958686527348337930091625396332267963126982679246188452078273966260758387224345101808526317658439069390719691287344264826057071676175390308681603807724732254329716169086223034825218330750820834235987178268297348643506467413952183207060404881025468891870933825448340037727944628666090245491763202319920471640091663314715177604702684436046269262932849300636223878519607726448411934671958983915938760781589144487116884822978475221682397150849184409867723076550453290867035361260673342484686112433745832498204954036164332915331723594770807891109180028429004147998829762746832237905617189535907788524666394594147861387119028992412957050445535398283363565113327936683342523857666528690275964975194229026510147381123268660257100276415261414493746489160985941133862324972744896914881844008217973251096808167426031358239618322792654954235217477616724678372577695243850522754748935538221141895887991556869483425507210837581808816879373843939483562894109626715674742958947555330448378456341460427248739848109276917156430668360166371931758985905678357690064260842015673999544583320366419245244517692899380308392759878955556360237442199369039188190016834140172389359809367283335248216152005870196954679976893989687979236356868261686874995181013172344533080471046878086486002181348892455385589292160204527865086274500403148175689220525002517869603176206257622874809312725149948833877100286818869212186424547305770060421711854516581118358024569017426551378977805730074075410755406939298543181381801544935709530150629100726079064392651807544362484454371958325521045381976940066602261001121946433989382706163913526626957549636822049407504809692557208688439977415136710949938258635704976114788518907369571645600564100191222798886346690663397066329622843006418398723811758694349221389170553996273896051935283822428224050430798411421638666255293684023708664848847074393987508086889739441468761985965786891043066189097227384437958126247978792096471940188684759430039054788691378593255844303256226881992791383501216148185880810457711771354915776555875829720466118841535665383939427021797772437792627354644251627144879778942636623056097786030310263779282696241685612701168638314675037195287458554474731812352982278119499428415252849105518741638226202287576244754325799699085040667360460398017442689246510571755671592623929097580373028240619236396998619753896463831821141456206645006600301267438766751659375828509298420632750759800351618203842823281765696065010130005610652777438709797531512989202130959586921048936750525039028155429702389202000387004715742820461194489152517109998066863752582849713977258651631230880819186343400013476451358012825412726942199999680909253400335412821295875449469409052152370184498298873409220412334920030811508444006714569265695141016393213422628936277265536026816396974591822610940000408661553891842434361188883798151337460964582059074959067593327606510685323511964189018507619641645107854938686708413362633920701618505592300602891672178729574709642984681862636593919090240697448190540859276855039485481486026231075216961523679409668760656199078982610119653399902401754531833200175663920410062771030055084811523255940467103926044269454585133728050812332304767978885375121217437038208610086277932777175023514068895747938546585960357274825413324474974741776576851172283116908703502461776351853073361260307058242077996878938210516803740706517348519117572986055045085919311480583171587075394076644514370041266236632725954764449373777696418660908133609126429699937184770514277207196776474580905573904346334858626489794318939655817788277293711821479107114472483670056775014470426114481801439940997839337428556455006512213337882520277947478461259841658417400080385762265995102494908697254315919887850908444328814866796939039350819602289232496565646475142850864285411846343818194964337796920832766558079829113746213533490733245506290975190605748451404594896845367024163818202399089150774468568561081137177526283327587036851352128346493353371823256059254783644285301483881683121787170869240164339655279298832717151311827758618415137162320634112260074418679612490938705547227418506521487069396359726971667085099538145745556554204920706651008876254086929701857609921093189977608118210203581526637604895786081324236874932401173666992929465457965260188623093458857872235252877029329656020059520855815553846262199516701716607909258075164946665710879946365254795355067280776268480797921944869358125471398101338602564951975799452156339673853340888510340042684321320312789992167759944784579037551964469266039808374612950228527131199812864950133058309855422712520609897204413861463095616347893443610879858620949450350860536588580581699645310507089556045305709368995989616398921819442425298790472443689295207203890742810155037515824554634714418251848586162384202729892043363930183098619599406778040740704851711526704140472666336034798666808471398859096824936504699663379267391232823500517562088753521241292156273346967668670258166347786857187465551790506545578444182207327179925013400554206475160747608112513417118882153410577347047430759457283070917006645908958186395182010362707191673478304658920060728095887927453458664573030776530325760462653550463365949738305760367321909646326329192401997076037121405175919955708318854460771495765735335932913030286068066920249118664351917399585229062045073625803487672999168172263295531684765297863480988661426989103584928891996032187526647032766575055292162744205064220026468038896620247474779685340381436788915784238504594433380429030248975165469334928134974326444214529696448231800444584744475212228972902265934840649100033138148587512574555365000434439376917745614538625727095892872945541119835679568454703169756742041253847911354131096252577663632739592901105726329900104444158571511889572542468320136907295296111119393952432591240549547994278792669612644559723903990267437757658431935952559617229464800621918798506904544984762351730283159991872064881111139275171048901444760980300536870955865306125049785820374892711646985095748682423861361103426957279615735813303351266678014320180200810138723739179162346036527717044214308429865491137300008704343079988109552548980603014154581478350647079478073045172807086232896770982805670963224699326894334111258017585237936559637273500602172873093922982598505782855833232122827539648493076459204821152802257402822819250005796929267589952446473573872355310888218994080591209132747935395880437874769003437406402109114898548128961887752854678823721303415527540333844167779222856417218362450468403410884278646956128401839695449714749354766980078945738134539081838362281890910057800424954995680246948536635542483508100472994279805324527565673362457600881880480623306493876215750419894631367676053664693932574291522825974948242768970979623350962405906327334390240566163848914727654076138112711997996301418713181341850382372867896156773534760983827735574346566275983244273799872417590344253711171291200361894888236550111079643214464009831103269614589718187086631006518587751524352601298700343413923404354625911124293082378028448131845045331787387580938518413314194842616800794966286954909156108641448702687621472575456227317171763713996533205699167152828920165237702211848620396050806563283410011564850460534683312425430804496488874700529932610677943760765189400748968431003328971769145627573181539041504579546794438432750428019927605636548206477956093121638998236106278387969454013516671300736802406605006676794741263148939043557287130730199908379722359169946678581908401199446455622954563289767006566343919575497505104151998396870604780119365196312314689211844825797981230006939194785233378900372045977367385855150142246218989895127004889491523160209869969624670696943482056138303581955360838403118699830870955609725675317831110864447606224680166834841708475354181518232692079900946069363671363550676764805564399693879865061087271533402184561540533086955513018900685661010587911815335173424125465416043995685634884519326436871820473921317531587018539604878306390110930988315912682683789625303377885017758916967570478713359821146340463479299131583135209106527928768723993485392091631658148445529687378654204573168286353089436160346762743602637362258162394130331977722023055726268545189771986178596610036556050218320113462158417416544606132742305314947327066348767294984793783688374118204665056853638031299869778175859721496977926568957026424031897994015502367989574637003521794332217573607120167457228768768378018934611962377952586812344044295010142063401178765163311442280757094274255141557624429936677489647897886762713878349139172990666394425681450487313021636205280218246914880867563786406538257478762784027593151945204874037731187225536795223192065306534350471057935172778730683327487991347847918943684906617708309463969055476328801842980562142369146001378533168175725969617351285032504881401576566029568546343101740572550733478335625719153895170531108001535004516847773618791713843711273720353672450670698181449826075385528440097764373707491331106910576172381636531587795600607860542474720612430005556668279365478119865755872684871656811871177969988657144909763414513668842306581968063011189531800886526047169236509745034032217347163183306060733539645713405599015707097907750803517287101481267312224899493329643462772670561175415032948373864707888548828134785904218165740246574976465092298735008654846889847041106274477729956827651624456287598139434796669330773130736556073218617681375519778802010639567132662325399416937805429065223684086367346566576196097015935067223993854148919467929761546388321098227332064600778020209053422109545162558590928109216439606439275157790973440987530603227968490727758543251519518248903289082942242024420587687311960814974371016441810230488588353293163997863958301856740408757305437209445690098738298486448115041762796647654894377367132657065208932251979547232308428798293784495852800348478520414959923643907426424346400540326917035192720170850674547518087406572362380885676477189232641950386817699444012207530962371559423882239965705047145974637109525819522707588369353284798786836601478754751814413993902714739371428467643456985413643249335179526075195182353358600717606933148263139845358121497696695128406128207422931536746227157296339585546174382258397759267713487911801345506550425008906612696880247084495078029917354350778319536113534331274249595499686567982080460425133645988326971477299651537337638220082746026439096639849984474464207975443845620414389359758174298937474967310664066733911963629057861848257923400222483948530372344201736558517379811080503194003306540055377505950456739541920510749684141931913537415541130702485792694364346399847443432265124356604006888495080761265409682670443318095736259840342821291830268716955311255998936125815275606176635432289842943445182635545941401182235546143771380841696052121069926463938713629853200501005693603081712943470817721610484289766843140652884826475077694086989257183278160916353052081988750198330265526467004698181975066785852452178048971289174281783816259013317055229568674137737300372058262946575325247300456111939289927309347884282803330872427313703911059816835883521623690575036010809786114492217482152888631410854125361296480465247285006546943259217881641770887275818777767887025608305607704964312177309353534759775922490994757411310204233878900866040882608637552289181825539768195389514956455901378945586590106341545286753382597737798168481082888526265427557772663227357940856605507286255811311602319810506830951084990904089975214286746710595408314648862016115578158150818763315135877784174373239604512119381042815181338676857318634078540536050985199282296213249627437561592914091917307556036115695851776961972745093233132906723327017764585820029581478871713246133335265970099512014632634869141994399543044769863510970794719018277378225179326429881337364982277591458130470452663116284425403259048017005839978151410365112768347264870552828637268721840794452775803385836468678992385982911895849416565324318857741711326788551639124521592665138439193987431744146998992217156188570227837223501650190391990280596411708736630017081971529257649483367705668127459372851116362846184171969764322545060657425270038799835685692297504835337263939909892721501577154616164978247418797016743555887865792344614141787548551078756984117367582031827914976910461465134419446981035664550675111755194958096738421123409827478546745997084808054447523880712778713084196615945577716870862576065802673229684509151061529252054821983623063311286890756995728186656387886014398939888736382644759633834454176128414949571645939987238585153117638390505602367477230037820392833340984196487639291694344229672572319494859453250503694062314013068734332381387931586398166054884613879239633138767307724273100176343812251194761790303910560556135399189138409308038364051224776198465024524666083995615027559963979995249472348894317658567676025353167046170089831102870509516269427878783475336494224287963791335443393858752822261396361590594400443151442934571168524873331902246385483876040853070509705870093394038886221002228252662308884269389040529526859316646406912167554605195414795984535554424883300766539895871703949501250990990658491629527571347020762194047042870469595372036523738014815339191712763588497688974571190630168144866886614531641862045207122350237288422622839612548543001691943816671710461521313724755887849841949597771201460624549795151472242193576159615397795830497709234065613663832080675784349967244772114427616831665884923257752494974583960761236063411748122762753465349459334027879159989862866853373717489248525491110721968665218073043486544771342678704745771507529683707059170889070338439787676386903994563445443056598037160565204675154666021375414086333348178245554652883617598553208530012854252965970292839620973978023601840794997925318204459505897603630162856373157717789829143201911738544855813875738062933174672299361645483076116912822009398270771025735948700240885528113660401525499769042711982821698412008771909294761672572200340094904413498662193762140175943316292389677133359810513578488195831218998817422396422601603907901856231092643466488496131046652557982979634439630938191859196287997292292107007380676642734488880550817545549591793284596816227441751172256737481228033540999990341675602346878810187873913091408549447744511851850023365945240054433373543834805464944624227958587873325548591954571713321418024442034546715950461309751768589558226541047797462908238945960200545395545394811156794392633622743858248941687662696839871327112329068363273805851686490005854465874158318173366479353723911011722485468859539033444518249903174616900913719733665789848449155936902338049612446869895815624117723064453817939558194289666675153224686514679773791715276574769202681479350007392158742199003436097082564746500760250536387408464013474303416368291358324764494059856931465251448958691496197095996565646055794585846178460809540450188953899661466206061354295672241205477617588818010093351702897447365485405364782963857420296757654510549940966415030606498684503848023645784990601315120038207028150657454040419435771790716152771258860762558326971606429188041526720392602923416472995072145550136583648083819111815147314416398717117815304393938947981131410897247112602517310148358004711109302422057154643306882872897012229308336980850222671444597862740787826923243000024628333447874196490226935286169141787220212964027125004064826623245439146665866044072110908643926777756085204166584680035755262484167241714857628005083080907763724387815159161050944727640512903273961349558203369207110459873865388967932155727027271462589042910679224002540637319094529578008032893109364091923486946036421281535596004846309803086773292047880709026746153643744560119235448171741714760531816991965924254649408820484203285008209551965646077163403223087604567335091722417288218653138243661094510340809092309342883917179205718271486151720134616232252895057346132595960368873032688126773288184224364463590202135357776721815376418561627529307882353814934536478324143407096415094226398628457099535960964626526437898878075719820089252858190564427704659635266001749157233451351566165238897929981891451407489632866697201624357995160174434355113970197731552187702340686323955518091590202154597903541443779776638719869284743065851087171184197792166873098905166709985962109784864468506358077044058864423358914461204963480915207569269745293761300141436132854247414229427462491004701003213316342811222271229971654203783868977379013031177878461580952068436173435200181280795043460825588730488682875410590014170191197329648074040712547156522226340502785930918674961218784425511877343082193231769769193654853714079944095838913803351913673070082587065081412023002064775515167578900381207470754006559263629170557480432003778500686763429620992367333603564989888480246034264489233239652569983030620382476218664088538186032804538112675896241435740562703227383243127845739336742719957207466459844881661944036507086840614129855348317660063390762447704782665588480458022355210057049426576080279126750780705851572903869634587410460484766541200000658008095804792242776952398065363035227637341964019744546931743359537684461358944568206430149124357947450940324490309510157804089961164662484704830155305010325639875401113772432926178421836773955558538433358060061222811812276375610339581483646095246477902768080620104263887430780882941464733463274837668383113486810577961821498799760172760008258042688630748656944420799463361673439499482281626961358860323783121991277702926415443712716155584670979092589457949425741193423949966924908407494063191853636131541871367652364257100470475585039601429355970101117166958229039499252361776342689579287299907094984656997637470158772628387401722087852201076599103463180982175220325635921522484994297037180994985623311030965424827396483548751719718853646727048308733778336296924662507842179536123118816057852759321346724806259779646143759265310283595338679698180562387593718584406469788748986856179984959848552442521097163954936306781653676931493843345435318465507085409975174268108110674683864495710827318807282384934993499034433426799776696018226740002968867715635937496200233088188064053737987868922503997891447690038931458616223394138368797592050903804938153628169117552182578429354194160734242631862564203210020122635765779513218909808123386500246367746187197944778450516222134355720429247708398697960093744485777088647559600571272206048647919286830562611823868215297052606135213337994246987819780300286019413128152159584777004292303653045605865938049003598820079896432085637035729725515727049026929163683923252160746688746595104972067245352902874053159677338115437157720121316816400545226411612803677004504795892883917775418031104447733404913266505354310220478992815051898312794753380582207356972775734846549840428478998975579152605401307772038668775999731866645013133601109424628957976198296030481205732877014619548406888251774724571453064408746121855597368450668890878013243009312155173789972594758347301504605921944925723840907426198308168806659979490433022896638057479140544320205830323087852222308845853597245385269316387748592251621456529886303077505204892995312993557205606893332824841843811395851170641936539716628618989903640114373943900769107892915465135610908704818534711263520538933162038087763754983676898007057504235301260108801399978441581725024287213356097875476250063926689613449421807873659412394574173499932590233858046305511039560662853263106256283046369634488174062100718128479660555827584285947565491691273168540407793810112728172905871585695744673037745340981559738616943056664284739014326843377243863870731254810556381879972955081977274797458954062861946890850707615343893789504576466538127711295416795856623792448697374855000495804361430699123321657752063939519621889148066476816078438560413918757767568616326449309557526497260066256770000681167299506583752799085993702813375528856207715100306463253244717428913463996850325968164240099279988518767507108276452292382111896748482799928541895292624612555777863419861857826859771855463479527497338188176710430121128086061970216598085270393692525976408941181845777662550917745496222003620304675335375052325262386275367625878618465205467481920876185775879484462100361896814813568657543838531319114891882914522934999473686856036736647407682509990131967400402571801622134011429182865748390203085368351644994583872388779920571814728192241778882708323042094289144521298594083951461659845601342530102182688202281412176478619707929650650237238011456455223598123595263475056878582073121602394516536911645914014192486844390347769112967331629298466586702873026099278642801336172971294221784398245160272990484677769984327510867125123748944131904825703782411178380804832231104309026432990698115650395901978906421405803375134597024278297626721871261990915236122433000010565050346096942378795861384055889829611629251121942353284331186260354999911111377672113479706560249076348056652852949974212840689147418021332426458890930768092859254606362729946987835957221364956242792659266145099594190432761317286790182028127219453019145671974258274901331970586475082519735311764708513156705374479811088429655611348375534539374899534994448221196099716485825485302782394441293596020764363043476530553533082901888781892920469558817528955614484058060517518076616596344752192819430381287101199299056608177888019381665759474264788363765062112768289263715220197292003458825565545675773519675888964374811763277812098381022021392975731319872137665585221037414879287079964316376988640690327891575154559171000178196069486650213341681111096560949097762318684737631676581367560582614029169967348197162116855082467179540431695860967023176011479715064835187700772350522993001266729646406285043710568118647200514534534690371591730119491616253854582964691618639195025120534525320721587365053881684894017573576620676169776684607984122331498683663579132887238885624318516170312497185227555371024968312432352512978846050626352704105338269466586311926712677946343108100242221586807310601904346622084242564299136974905296610279119169329629660499334226058720394121895502362206460733138631005789992368072684936271082241328059139928857152216166016951243497160647934187472618801149906883936754000106404936600436121029687643964307254209942382900733413109886551705623458300454570459385171839252068258389857624416696882984942097532862423719637347941886325868152735049985286663998031344532549824144194442982919621293161895732211406523339259853159184120462357600659015395102081513872940177978606782244252250615444246262092225088388934870379437159201186229815684621820514508748761793024504659154105699913303898811753514222992455854006600864290072251960560524830512404773830204792256846399641612283688757593622078810127990102854415495496487638838696038388007629026587859276345083709942443407009283514178129026410593402071220250818277577683782774363424781484784081511307261399742165842515503714284137364048663935125926986752577408035593562348453138510152844343084483507574763886518061679870745357680617261410871606772338263342538318748388304681794973171486693049047386286266433623792921822691091134809657403317107337399444910692238971323708435861774391329697869365203433332365907782364905181691685375402337245401290257503135845426962073402513537634033178853684606474165923125641792768347758411346780191388871740506666657047005170034682785501867302564653245998225302857078940999481697768156072071779736996888729480791125171751237256074861896062349695847553271670242845623878340141166211414728988105815399487151237101970898057876778882130273826748308024282715095436292786368069660260238861733599464417679110143891796812562351584897839690470751175516651120430741530314344560520291084591513519612672322025181411090127183531098735710711437792071892099134700728112105687526613455907881904019295613369437689845949057991481937418478943639865491824524444927085716346450109877678015564052670675488217650933138588553366406882040336918144372998143932181327142915337870666362081484348071541669371368126957774417283115263770813520596507634016286034740503709439078347719310395377399922352919791108104876346482059211043783911490906713956867102310970965671250063277106044751814829068913229394643858897529586492410461383712567210925805219402060792972557027921596521382303938982768044669500978389030309250589736234006616117291376419169829499593091072737952862708368828243631862352001905263982031414581810744765543885754214790815544674330404498104515048819072096378103410866664099694157180886172819749258464910766607529022889706655884566066668969024903279213453534744762495133338260039271917689752432580664119828451356322244590649102536447618307801009651729656117919845164789708569521169588346455940577626168627993893919565008434047396252827195657061851712317703398183593818231350427011268790312281149314200317951532685058236633157927239221260826375531197477413579474684006234982200344848659908710709635645325121020169232670879223325820810145925337857047526306004171777844760023996395042299610302509622916317251304971562161329568655036805693297098590372986461866236891511406232690339690630464402144366327797199175903726224767464851080239452071780429012460299359626605594402379223332999715388143466152880314212195275629901987070709636655203044346426453133945935256469676248680806004254189154434264436889409409490483018756162975457329543156246188515392425983836887809252597028195616412400522238162419998832030844680413794221514627721059096502574341783119486204589552923170269232621650168974827737249459285815714977051700508508501225141583482465076068437613652214481159055275648415535535413057191476392386596787834741960510381900607154589575751037656980011828969947598772333833705712300081931127830300963974773186626810178743940778750241281836363796909000209937145085843931315142182549832786475311869672364572163509085103172668075395325512588685924108164897505445872517107299193010791660370360849582113633505213901116698699254820035796090207503144743375321369229546806427079262067832162998746834278938514201594872721250795741034748432440756746704592462667329013688235740499749319839229348100641959969017929741279481492429381718565778922218462465339411415224543379289526779893476518848822228973181784477540233983905128664930884600772539426888810491544394107283078800030221029999420915400773431343988487166994683543247782096478381198550303859712789193105278790358469948114244097759585470797114079740100586924144241527032206992521752738496724270610352646669859499730280546904231196614930784180937481186823035028664280463298480242119245687695544611395300181929851091046174795320210490101518491727278235985385788306745093081584289880649402208749535865524161677760088256626928932025883906483516930109158263868509878839266731825358074768025289685739414358263420112470800984670682224717241522557981771361955954230739373004881762743037779226104311256457796276397017625116518037507734126393739148155997437881134746111493482894917548207132516571432541316658868457314109118502157054844081325853080300123359229498839839807298512866109849926577542037606974723469364012732839002663931471636887491246230255394630373442514024601610048098522200602182918629212175612027726019232123592178480349916531041236720224724636573568740137907916734362524420863153121162901189479898293948790669746993560018804653360686648602848128729221914242110046474788974273333767231503125129661312049843684489113063353154787403651147631213703484365185967572489767159746870911053159771937572718230373616397744299357423147370096881425208044453558382200663211683925988248922171606910064426710679031446247901263450138405588163637661767042700698311574190832270083344443690965764742035982107422250347473386444583213394903305288424909777233794047389105011383412924287215574834696457019900205858737587090162241714131829349191592688057938309972496229494024533974107146235799970788412489624801496194031563225984643085061985669714584886258177902324515152937147530783377129400574337519572075494082227574667129014082753532244701851674189312267765325242865228012758071905064964197036309256299418141796927386192131380494303746567183148169670158885827882301364827253659695432163644730759552701916485824932590771042617993607370849929646450488445504690195865542300613184149183890843884146026226536296384924892727724171597990352161219283149898560567580378753215921477583545423599547999732631457534818444296313164230986016921978763220110583572341228070425117152549317547312251609450314582852525149929281845165082032055120837678767347131346102104379180997142638436182503056080742552659332739123851423654814040084793350383878597394924389481679315494366614207121292283070876859743056078452139590093738158866236158434558809952908649500896402811428480059989915030547424855791428860192234792874333671221943420505920376670347271964079681578263330196043482999771678134374784924250754705224609521064811365076041616698869087839248235827613570528642117096915578857224173089542266230512380370028106358050894301128068882176587805206371125840707480543136251009829264116423475764091941758749814130380439965198367715500036916438484952241723813717565653236722639771248094398797434528015551403718507461206430392054209826780473756075057056625113120097676408121365230366500297802772581837223834520864054310011296977873786648696155178519141215993553058130851587467487103412250077710700040648510957616250506959809998978393727505578270889621615284547348734377750760282837336608742299441963802264521384288236024280204228016335114007901841316444700855639279651181485016262905271116476301263243529110030563956434907855573745149260957580759273966136847768189170429254487268757415851577441697089858168181799102024961521553723245692236933346838019512979575024684270257378045110099681624949820606695010116085001981663257543645240656003266237143456238284402671352471690416863119082804289985475838561847213014178246180402944788690485654624163718165078017059787634448672821352226573465399570526552211729255680758550054027666084963546974260525218458144003225972920264400391505750762398174107800135915302083165713849468344125375888941635123811758841586666623652411306982719368533183785523245367655493651115497452633098503439810773103265880053156118478201105533003277165045163223317068577528185963598762183332430084561891585644131705693600997741828884502962659731272995232533524078987568963197858145853677449389337215224082219257808197638277310977214853752371358695111650559389396649759053424085010142094237046675505468820064990625864308024522349570891563407165235559566026378762390035555734036026961685069506606422912798775037138428636328256721342747555325956556800529202642890651293674996576348846814899919862385517159309006402788354772050702153103285710901114824551723608877359886876224927223387884741167104412586915745567801886342152904523111913318958820726587390161803226678705545566167145577832377583376281647054394961389997509112211914275085323515894165143530409073570537073749782736586399269461711978976571819403823458022228907760698105106261635833952991253565164200758576438581096730124339435133397055278419459186845647556052936365766796836420248986489938795041943012826447163223152555350131977698353705935730102730005389307015830632230561651636594180112938874073797311600445938094555309307460001362066446720581925715421659147977661225576204502792111783535603251010629560541179384691001157201219855838961254817875699541025005443791522118943185818302530733727535947571753410221461801323574386317531527723224903680457305538605487541498877462766121322258454390652119362607384926852443037677751931782379849118578658180600994106136727541568688373060551730097383724505481522968358426478814910974442672267366490452519269653728752155234142531213872839726228285410127243433382628719661097280148003154107446316136417986140594569219963020757144402111457396231330224446857920029592410913141363603867129887296794789357694665524980722528311213885646437207944646633179836509597508452667392243452910962104172167960383889066665550837362890295703272492537224656187885987501090343412092751283043952137968326229594888388107100046187935054527580686003464116498035010400082503021008416683701074011113134215188817786300159132704923163500671765022614853192460915861187906482515122770279563218024002391267434129649312139572974766780666429297796455196642744929904438059959419321071944223184678511884170064592761655697154438748392046863101712031367437279007440125246738881867110762636637321510843742307848301886104298924203045816256531043148932188589593722802634169900104577799109992347720429993308674550629539175710602677388689580258677904684079596760117502561708460877570036641091395032895377472107405152729082075899796624134297535761341740642058526959224199844374816564955803287778946768560367415824865632598055105487787079824142210925290100335171865890858855718103271441089361975355349897502438779718796944272528776039752044719373694474661925981270661818789864106619888118938822080242828589903916859852306399448546425543384378335843734266933300525732519394548585422600243234763583233209173310510977125808785047996809505493727890572204961768587686739619381648933982702524434881713816479674579031577258343165053942891855614178758113247804313639642555528931575876422309482539986693249379595096249964495502170891690641916311294581181309683757234354449166164605970179567324230807843176128925569092274595305293679579104690193687954231822937515981504640026553659619319254906626116839593526586040943718611250896670610892427575048273138507747247787074351219920025878451760746046249926967200581645259718820520934729271013877341150507932777170800073724964933086345806043242849918466692477453307859846116481332732758707382071155741865646048394832360351984257945023106576378041480948553749837240200724858591987470384747114708833496015393276756191600053255266852757376358776312761037164869035313789949333034893595026062788946887522215187587682356566412767189194462205599047174902692340851136155537080921030379064144405686543297993859070758008173527330974671701870924632953074570566147379955508550763690224908650211554706362898967426489599707481856090052854164762962785962551749676784449628272042625849705283938465358777967682359145389094564799881496730079952810644878419462321446827824674147359861502103459104752407453682283978037977135989340701403411901302962764856929753117979632688188293918515462829890290314357967227998438404611252667259749611191093576608174774701201540507352428142911494076712518171837464637888121044753704292653426844987573369388113126421115722027478840779170525385750596920899261841076380146588834451054318561706810450851025852610013856904001672625506204576258965860334593322118304365032718432904756541866894834109430459524227896515701527560857154956101608527546092613390638764886127060654400643728315793240463222171785280743491527959216960347958859074142609204541642914298008562857813915821618414355614910075150647833567359246134965742114026470396654238168889523811908278267554815805366559133412676137464686219672335597935107464450152557750955943373209818418559533061075649831613570312157149490674314985596855776990351911818717638107955489012471796357839796542182750711935434692564339043553413085084235855649197560176957998668403283704480397683511234701097435886326015929049467818368279352981488118173274631120364047704970914804237379028961987271053215316558632552541922613358538452851906386269314936775636246430217058527686420777355610145278506884059082493591325148038318968893592864702269110074493532643647878364047390097581188667260172546075370927070272607590570934782894348434966245677026425012714128241947734137491858301605497528446893290735135904369959457008391358378074320855804375348504902744527519603546615537025568571786666689591303891824337493069046604205467817785031994505369629460537766785126466170905972046430370256623362246135048052662208830861918541163324369391119945003203580114999446056577990600064484284697087205762733283184852727441671363834645217264411390387848641643120275758279022201618259134823419554769200525405854183564172543658676403607596840013833594718224796772676383613763924930894716216890333243223026168951744554170751064221495927774846086034481352760890992947189644290758219916973961444821016929735706351907269621518425092015380246494300106429526106753630613715433331331311100633625695251864212734425387951987208352833860711567667529749446247358810477334587410643409391360916143403412047686345333890340908196443831479376096648242030415234298356981333041140448336875600520950195267042633333554564074995779888517919452920785093349004694097347506249158936322218701341688622193361213716202399858677589856335689350724226803229544751096266799611377065573534351023610388276992001583163722572738452155747021930657261627642241164040637745473017637834631570674170917625974028916650442934977639759655673810048184582803542187050516339406881709362869931741257734926719623846641512067689810252858581801634462791147904372909735722158621142030974386941896424841660790063821172311115796570280287316567126186023823888324226865792095316963857335345296181999579215123880163096642965739815792708363028192266816889834352179666059305319473484261947611794596161029506481808204832412329865958801842764176940527024846079718389797136259334098348223410391786053058492692248265190738670677441470566828064695549416505334799753563058078063011757677445813327182624628402526463660561883887219552225450745433517218713262972923870223302901796484004749804317194005545490344509913093296215132967066560226570177369350274886363554270622664960298228521763251066747540196933679885321049888500138340478737229157292016023455663490733733793717388152744010046208501442160683029092266430808390252051582290291792769848490715766110276549947003111725546493047741558916986856367539041401799964607995261389195040279472847321466945313561146320308758610704250696590413916151427843953349604161204516170159742007866562764958576949157167756205160380545966446717319201824565358116931576452980307494107139313286665422377145459669375003182014662404083609035150053774509006660663329521385632764459360178061321816289438946369739118559380223884174032860600725981407770653337793889035754928033547569819526297375489567389546306119158838052263099680100261591303142430823537707263251344457293665322383377489068493140501103638806714674215585580770248653527308998267520305013516618776714726606549775773884731009366414936630318040839331010049982048187725411046432783279429376988764192141904474672616025454942525963052289722612515498475471921135837607553204298707077830525675176694580711044574542565128399673417472278928132799062931367480778595371986493805827909417145024828662051620990543002323445287355238076977440243148536451260846834238505836679781531703305151814602070534774208200764885661381509430008005524236578095930251133862622190369799679840677872498764875583703103014960296517859639217814036861945449443623440174786458641202306011522883594423405344351249836896369883802973345200053009421820568646017688426838199724704453412623718937084481446367097596252798362791941570820386208300198874864944745232994616896728826587302770451116423764233419955316687659503491840904298732294784244558077451474084319099901032740210692353259536130841772511547775564980758229426942665101917910145402206949092224757721252480224684302139671695736294529755426769389532638065400609057534660888646599723207580806755144348931751022603718057186079561042565318873125736415500613577567168772187018300466911571577523836374725287647310031523090375434352297366021845621116743693164527210392160150319265601746341248998496508893872134513760525630163206707465671884680286252262202642822144735287419915978139840460514284017195819355779611175354362368495714761714008284854339523961402015329112091534672214171654281471542498396419815329820881794481747081352310106519228089123889208995045106462666312305869656648975907569488412798498815791808087253846077600556027587515194590754417769834552431407455143329874018406551275789407771718211231603630939180276846208817907484017114557858149912520400930524429209050014459390351574995208870436839397540955594931440486107256400834272486776783878916954100926798730892555242259132646906221598807672492016371617102064264494277687005749580946233880832077801572823063019113738303731330264321681787201632267749742990102863195228534570621348341392540758772146074899046407811106617224812159025460571093437402286842576521008692206988500638084927217156389762511449325639589440715601978497725777521397839002443335132574310878395069561687139231718806526931291082381074371223850610836401458368384099817712724142671077346358568637141833096303571995276068205710365392772426966856328196078777537604071628053865465953889285606958604979571913435328197887019734408942710371749757639700529110749633537077431226463995337687480749448777994029358339898682036444197537921055404322983768521207312225457009208441681046126704635520291923704948962662096347342659430183273470661736297479468856796524105844547925767279840503939309785688253481145861211749428019218755297114048604471059727627910632814626752157534779784526934494818483580230346051544168750599323287080521319437398320531031533022676561113824768488322200656938427090938920475469437770692437497597694696680075329985785377587937291249738301153477245627926044481897419411781245341484345869518435268607186518538892032053804226308784128465494135475196084626898157630346636031484196498636338741972755824456837226478890994374698381778969627390432969358031891153339288253866576070507375477623332539891598294486492518886846037751292772622717465389679090908000879366770603552253660963398791721845885532802601211613163411574751808488351387042993152031994234293072013345245356337229721210315516215767920670343535438398957193023341446328348387199433275111277849299999394112081090064660085859486302843439129093847350108310037399946884694837798661615120036742750355133225894830539355801551532350188893838123162073655245612470506820409384759826241359493905674261168841370669047578823963300382033295111403980487337241164146610016907382744259833568881499501501050164751927833729195284139332300038931442467392506790861762119296784286391054190959743301197968135841120457517449444192297623466226902359640280293410636480068038055970146262502930234506015356579161064057532431046132293431570648348983852596605762509137731263851118876423790942001498934201659757564369670183954122203796310538608480669199127603052033190176627362382615253901048905920839046011625439607619626680098091355969042023467747831462587937159221655255491433948621703797041260224949242304392668598365595683879472799429046140860317796986209432121095164890172646648259540258925175752194778855224128568305305967531343846118163462907673397270649092881799505783567300331956226420299997636459729141873102788622083690724922687464231881595242073810904600052836579568407918779749564124940555928469979162052315488694139771581140212986369170004137013965467301679125483483955606052332438845450979903823941369763448205855979607451024554274666574186105823715490953012472146584923843636070394413568257560535238604710564987235248078590725121385890849636653568619554860096821376048721637075240810292451447570776047285197709731298471187144363010970554567512804334405733674865067513222789090107737113769052436098564874019634301959049579104495996972871756411147946104722376483160727861438044572948984903584617608000746790795037302973273870321539855927545355276577805046852745555969716396040604533399291233210560250791612527136576725200457808213492240267377644322726559020414458470287751832722200079914002887193705019256297706680189584622315924854188888261768350513603228327171532968233140179546950518552499868858407200126272728929727650074750062418702042571371132138798821013561612365565493213135516126643048183824948121352351991153608103292101930651034555588541588222963887594182941844887107024686938905665115839413321145509767980351706990813279464122792019122901037023602006792252345951716875819425213389189020577816459845972574134261134710670664187340277707627257644527546457384094976229793297594130504433762349200532420895763661652356800333260257200297609086222783777045022740707505971558668847328988866041152519727097396187913624744133076994221751088623567953724093515425115184962111306586228197423549975851520918542375652792315886718381340798315949298699105354972168305772273332680612852376363193930573824392746142895374360482790629315345838848407637536060323476199479147186296311657101913592808069938618713099812404889620763003832688188572167050714385106851766204476762183750245866252715085108630349040107607609540845905985550832761136926404866912065856045196641120695065534518902527976892773903829903728618726428550493855475515407651807040261583254608977658685926431715472940709135832506133169778463133502913791942926274775525643341716119742480871161759277444206581628548337395664848097313678137101611927675800827195897216392018320314662289746760556046122911033116198000111682689617659416939150226944356072315167059693236139809125677932673849001442200618996212868063971233422576667804996146251223506293414462603013678529448234293990097983827062108047620793044957872679691730544405243293663429445254342036375422852960143432083231329204250018597080547092325352258106032874310646608934564750919206428687733531713381620379041799384911141208593978258600528563271424204263310581044120507460877394059837167702023920153026596191329851245578390274653388972147897605242074295879127961760720113145496210461698432805246617406964837601812463146357404098179947390392688190085577430534705345011663425874692470050627916193943146689506153660607166211766973214787424532814941086200540707241756844920590553434758263337331230501768672583563507007671678750112343879205917568952824261844193551526396442430345363650558173699940043938812294192186336024528507607134749104300521040425267033419385549135250811065147531766803278963996449730149168726395913289247671493001881493462918683499146272093589577370159905383999148357966944708884589015159605859809572572627516442965211255828953452815283236701498846914856689147589906726745371251007161471229426794559997829294366197656619317901769282986746668733624020911529671706363042595769562913355810890510603405715474950004238133678391202062639375003067687305981849330645996187575267107165848157898864866087858768236825804991759491126546071544424614926901523475700927783806170875871981109856706500548314451675652184424403890310924981056167974508135736566933771073246875850762013984791095994460218379385682254657048915846120717660321701876409152136000684680034859935516202053310935911095278994970160332785081532701274365312170164620725307782118905703596960411190722169434604496811585644620242146184367469482378913078317618923871882427831616600442658880185916757674428097350124422435752683018466582522141195927327422854201897739402937747994252914685497656939726709256807583955961866668130590952395892572546887143767351519465702658853891721990784233889599417811012552671523247188590852342343960657903247449417766783969309255676828268835084601018032674151301726907919162907168542418524586240659080878420277673845219027435078880479955362186900005599566938642794725418262529804111761925542964592786806428753202429496758390787410001275011046761285773613042083784646443452644287261229241580015208046807924515726150885494112921922600817927539536735117759175652413446236049907117775492666185490468576278782337178710356547297301009286085968628369334386977851491320700348318655274860346762543556559733924400677117441345709242477002972173093315849084958795756229988444428068522334547924066955867394333638323709219016174608888889817704959108233983390018811850842538619301767491338014996538346001188022458842733379596765381271951169974320730569423265494516815974143827273065983888541660033548899783634012422905560515837784257803731300401698655289388541106012534547739465414826376525032070611881150590947333926593453606889041652265989850622639858988686278344461668160311669121581041347094058029671098104223395207413755989983597530385525366149056416179803045251600741836445790875786943800238034543157549111152915049935346450541405786099370137360433356840450977083529606316935823016002357622100906578000442336034133699397474649843729221559457378289874602780918309593100748325231144202817806004341138901246532300452375268501466505965709637940473720172440952042994831420584542312532603187789353147906587166068610995358247425263430989887692652698089579187646762531499834188858483938890652799103040342055144158767120579606309197482887628150216565437718971563758034029050510257842372675083339073027292790884122792919876498401582568531156156038524204198680061647440804346429287589517336245866323000645312731214533291947861308134300617885660065112929823647050495542457792176407897892033193573352811402812356020321114361989092616984247283691354490735525790528398535299021892585510390355824887650971616800587952745489688903825367666376445328910859346948961120842050292538015494334567997868109022342005678800544931894615757411746025851594989302632629581454098524055418338726191275591871306377657457683031642924734645897606581800871055249742286568932975318462582775433732095971020297313805082379715899732869169486503585130627936734974532253468704231705576410133628895582743193151689014469775120886441930282856702295873061108318093692708755706631225494512370333020782465205812696461017709318827756408644903396279794558027799720120069702712286124888041413283588302966944785381188304122416947662890928075908488328188901112468268944713997667662070539735436284453745111922560771245542340615332150715074657059867030036148633305278123548815960074069203179989654843398357492202153898880027619269250870784828490105212352425195193651889223902439100385742850469108212397703801369766884451773753093470659008280255421581314551512649086812529001129612898386543346351854099346281288454262640009337522485851009959096856048406981840514260591617081344988274551799928200607718083887509543711258216300236385085766362744904259026509092558281920866426392919471289788301662833703607593606196376073306510786986764527672779140335356869864693896153132105226835216117298106693923625435010425702721674856935031719085140613438787594561010759525241592281466391219025616653842843927137924932543382861772809100774315951769472286400885850708312319193185122111839451730255213046080973119642252936794986709784424612365093161549119331150752203356395913206949224722931931702948799224770164294796202869292220714758587746086695316099946920964915465483577295787742888310760693045782110712392868857957840712546537777742343822659562812900962865560709508987364059186228467227050859715333772960131897146558018395606520340223467395946971390820180744415365882987961650366685188025892899881594249924357048698375928473009031576952985112334110786462930538692048777136817646457915250144181102018855942203700506321669540524909984970807242048149006782354198291763425253020786109831766716287503600939902573914802309168228197909057400198000390633292022074148685006823070636147934328644705615419175981765214113692442031450414250340066976914128571485747501844522490304749669400051764493411717335549299037988373389387960180336279193147008817572478197933604127315204609723443859201132148818409117859841125975477150535407747588720136388167315963933826206968553212414707914805810555166715457138258572734503990474206476817860660019351687035746020050177277418810773267849259255360740302813025317504439847076183488597030646351324917147081762325603761389040639110735398330425965775753284209667994444283330702728568247565609730013381611786187049455774171583741349986374444398302976432036871406485302006452430086658185301930368728135183899280400122388103338060868528593751849345217436923048828192024466160559638773826746515149422551808823905004616298884257864414497565386294208217254646115262622492332092684034279511565952327452413612527395981079382494405645051936591058217315052316876789306164052765884873814882488772018734400471225344181649607702704711690780715363436730001205005664966767056984990123533059121871972971381424780912684268114109363398103229249006229307751425928264817312080410248112495243194661199440046245417452084687927659394005984055350921221039212912321003773155652359182683166072486009344149948731809571248186305540131422928066566626865691561950626628438418007520852142450077025124572936816273072070706569706740231961749703611413813611208260421562757553926829370829199694597549606649179518916429314198061473945146806626454564123598205405832198423338898618111867991522884417598709748023602793995469731420421095649668724644361237236056666344646743681594356625730179784543305575555521971237487467454259489372015840504250096313536028124533761744854142531452800073074351622796692007291119904573421053183636738991014807716105605451127911987498532252489493715279972844299135599267575605080433479175162297805586695898217642874248620795763162762507624162658644044021935075593677707946744399332558757225364773938908825030385999440973101632327608890676116292481308665365262965645470654726523110163146693785720576370271873884274154701292614090062425720373591400597605212689116416527596701667205176585702119834502599086509878149660302271744117063596719498670380163577894069945734110428596795204700255875416324720124822976253497656643553865214559937158132948922464915603898327015588002489564938342060145041237586734507844439634346065571253370495980076470913853623579008153588610639347137311202848330308062483888570771858902506918286122937748189553785231456990626622758966528397435348579104286286312050181420636643644290913972494357456843938917959746211487607506315045205292214886430593249452641186537921830663011368797879593997228059652006843424689747297293294023934342970948639949151998286675283429470726882549952541334623636926527842131517701886931247035905741260627629791782677247933637141181607392609151415941906251148839879059756026486121660102125699778737859817505863855445417494912438750998115155071311439736330780809473427452531885023924934681468560104475684320577815596434040860845189808605051407898397086869167975197075007316626979789692166745462461719688875489535929382704578950069900414027096622576001995055726144062593488315610728878415404401626370731034304523554960900327889069760163320029103944681531375896782490104148340191932726039392119170132478317078578623645151359437697179150600932266764297610113385046517062212195323462953489533484032824077611467178542927095596776696387966591558806543842063180271294345502662597377498052173780763005387342377429806902568548833495084820976412980333104877865148736904863586833767949038849716801548654304080107356826245594150147613076997290042684785283889643099707759969471550684729076366878492387236712673915435519225289244847209078311163759534915590905681564304925514228646138392675950171964668615765749546079734084654507543977044078770305794428087822953717101631405733045648599212304799855725192658970529646560108110872985705305712376909168702487490863306548630257737859364249304877797664067015149699771999274250151637405677566960150778332011661169506580320415744111140275475692003661078946667234567220624366255317555898750360497128565751296699005770225975221955928257172870259751652517574852712441574599164272595233946240355286373111073802902372027540457071948573608993397868843768880798387351458401201587854378046571810099126690653890833923392700372150468601376400391214044965114863748206946282539705662485328663224191533510941280181637215630819101487216864162531420128605542167696754781339313235377129825262372332788998533050530820232720927706895029824782491981575886189699700666488346948597868443089336422510679637589339191063478533605536119634199915560037772205292210338734198950421621697393960043168197714629178024693369204782041711787736468921362916901390854254812317470558325288666997213527815454506951971210747143687238891810508590859060537448001384898733386462102772666808261979084063037496636860452753459967566810485454249852749675733075444707361910576004075577400816654706177583816058843426471608722286473842318603067955007164704544012907999053188619046885077194306649913823771478854471252291688561990563074969870798776445240277839765199695670715874244423147104294761300984065778630538476429308347215278203968188474774369661127234501499331055598078216492086868856268275589831460001941595354358777682184456389098949530690784891398949687024309971145879761282289439571720432856635627121359232160728014262065622415998409368021307657263199138264825397287079360032578422553202603454331891194517963215985458049438755593414401530701556559198986268244432913331958261090350801584955313747600205065453732983792749158906474190643971083624303777253082181421971458168187297206528812839626520434035780737518921551031206021055996644649054815640677616584214213385445920032734892921939393694346286542747769015451810155898996717808334337634972641880191162321820826455244102846573032085992530774069950184000703149961556182983240025305302424937978724776989018206638784015453328789143084543412109173534288811555625393542577874636649419072551387030932443779015875854245377827957840074269059202864383512508566752038954342498125701865787838914830344074195406347665216577534937705731798908272118478956897865852037405518598990446847623086372858995379376511578386613225124647384921342241110971334733327811523951347589427020472216011710952188672276536560823553952354167984473799832825649978179236913796237734292177506802030797017162787514251154263833249934259623999629404614464494181891038895039170263482550776009888315434422005845244284968623117158982413391423680147289117449402745415295709182313394419397815963443663565748430582604684419619619567235425940117676332765324655064032434911965226147166554971279643534365015989542927953006901925743776955722203430376685518659136325559851087016659030634542646811726547597106882242375510260893553047316910519836915256709740463562797061644212497423519024102258405687851082110974356002038729600193922325347193962934255214608030220867413532119960129642967686526195263562332552793259507999080602507796171734622179694628136037195310057952356629198869374911925474995348149246395849709885604261178925134542380324915854610390986308025437178648105362531273882548220758764586880539245015679296953640562759221668718858673934978074818316325017892621510847819992529107696476943263823107784258456891947368657939726872064984395406112013134112400526710296811391135225459482674142518841532193082497659616316657147082509950216194488451241144802814023130427909646491551511682291183072196003001631324028346156463626049177747986017411861772662277049424788093123740566587072819135229070057117906942056975591131396792859425105192955831561763072830507285971258535407855704397155770630142322107853352809839190037661291114518638525478582398021609489786267624905614860848303237241491583842583491045407547313258451577562947864405653299329953502628575742655261706851389888940758903480377269430369925560744127449147422884048252501934053520655099922621514345931761995383922904772333274695328217533726015880803176016932410379520343137808489179359030493404308523095879981404297626977261253791089824019603551048305418373666352028185943872632819168420860898831739472750969928502400679251250086473102865274514310449653745671240925919805164540933308051848396055477190791107838263618178444747001322891711043662869961645003437529582983628317329466644343953658984586597502460258866984236317080201853349638085678210576425327314812062298282312068504065251933604678443174957100373905658461213366872144855270545244383586306679614513520219103237129685081912634640022166343408328387762316661091964424425326613899880638595021359114209132673332871925141494530435915265828166069982032127076410265662273835292291971308658625275547055905316200560765398927025983923411653759757713324352705042390021344479734206725696029658565873144293072006107904488351284316668162383340833293861533992789318375005390004254071615379283445716872883790326439178101925932912994641472553937594838633024662641910124139933719988677256852933297135987514870911153017972745687766052183354317760035571175105456654624582783804897329379811626080606831929899465386776551523549938378347861781622658602746369635924520185503624542832398822119479588788188684076036348312830018342388936006892374597900863731942218340057453217816837750280815293638562718612470205494199808246205028460326153427381229319955917000890483629705228129442324210558081855671259740799465622093748731596035624534413406186635261135801313553751528504044171565776921027696110866642840887138272722957913904298577738524376316158593603080201067704505793617604288959330698219241271296254582038821664146967075887367215909310698203237432232192849563000157259305846693258650638015235170052693407328758740932747207203308215244463521301975038546320585137649866729893046754035456939571241896355392070515281092850977672458626371512282081991248066930630973244715668938415512579792809796645684211368554955109211855746955347458041198148087494637730033200697214500782882670613870201780917107554599418172272176103247811336208298661567154599921828759748342155962318229675670480483967378195392742189446586855883188512098879009339010721225826214695404714334854864098647618461756562058985477062296617391936860895218534194936360452368789665873687714745426621882153486211101272826239200157168211143096530302899968318240680804389972892694908624481633668560482693505490105551884364208243770827720455672180852491920606255223358929527109111687054615834795771674005208082607725064731529661205479647115686520666307684873134894559067743370207682022062629910352476098420868185401624993982292400252063299119689251234570465800849680379429566954921147836666701137840705862897526394760138637821253759414338106217900256080242182143336072766755547550396955710340880882582792819871581574020922695573439168047886875339125453232308578420211811799204234740226766730637998814693367894853589238606132997611339322936170248251348719692307520590907189808766630287313107453752692379605059881268691553803952323172021339989410871593881486125693823198115003789442086120287507573856965627237173444741070059527913080479562280346327293361840325144527943723537807861159251885130186471386748675539789195988178490535894614939282924565136144599761562972857321819502381345969320559584682908665678319501242144201464017173665364523828968761489400259432331475311275355217414208381857766601729603671936981255824408436012520811844023368908355527944408772344315668205289134924929648359700973067730925911925018353845448454290375810632265235767524594252054261060220863189826741693072375516792827338719578401861442470688456182050632533816774522783446931086447612595682355683880893598218462810193772951998366644593761594022199200654606681467477864212257111707791560930359440091671170689424617951858243155370673984013112987277290291418491134561907154304405276756541201409932670602884997685401184089816170992238882529328439434204279248325008445980686913931201904429343045307000758559992640462888440761070826197011081020937578669772329664362938528387123342638999601815699109808568932735125131207228840749705775044725108640349685025564516982063995354102037515211887590857650230529137357806241100726433735076386449385797571911866073110108937402109250029476176459718120421564369779554912037471547435106368081185541014424031125673334824400566250780965697112833483728537806172572809187215534386607021719552790962990092771795447995349069135593237087182576463974382475503466331630718566447927076821918398704321044278560873655032352088939550299750601303813679202110923535588213100001600955653937174855169837591933063536746819151689227208561792159158993362558210634720264032361473532943915203703859947290373894824258196522906933503812172476094454966508672776528545466365096245357619789449956141927035936004901125496652924077447745837531881541940075235558070137048558729535744018194569477537941299280173091854520855134073407727465305380626285831546365649154618887799787082873899932639480381685329554128461966522318585860565471297343899699907135938604571478418148771878874877893427542279101031966444696789277280012189583919350392015097020102254130302391129167369482194705558964765161105969980452647275003926055487266188475904793937146028120840993858423944651448449464840798087844162431845019713930737586306771859985480355417316467412504898697438538308060801243504554074182366322600138165329538694518408899993525189887959575532195884079285762555721531502344907443089456382718437220973034174347604865637866545561759566471329713280197659798894245512027540324036166951591961937124476214886702065086358629310709171038722394307288754240264002835592677721110573114890472823456835389696154117872994287047080694378358306126171234118559920608964546634625693604196397744325554434515180652322828295918808334423388983461000759032314976375233376405920643899729562457194567045642097266838369001545840497387959663180593906007386346190807242349031966274337034914531582902187190504368054481073975793919778768126715158167802983347222326005609175123293862351114569167668630891489165666178075403929842293333690736530579257668929325607944399889554304489176437104449635608217825238522150854600311552217323333635214074893219914220513853902390917644034173714188191691312838059687509014554100243868671605041941486891086690392743211518750286838397131646713935801906448658765683069528212022081750884906828079333977205238777663414467196188922414692670532646143159351930875412005555676282402057912456663545834891204347842533419309277052455510277983984841108938963894977747341042041425628109871904120040104631553521768101553318091286452611997740913799752145743024446191160951919012373243252850748201591433077731044816880788843765758283182406770793284936096260606997977635178673940030788365134676544880479986956838981891379834369254375218913426228442159406605406968960937946432269906929197109125822484782122157588455241663500236696861044739660806702055409448362334776010664003990327538483024786146751841559196627023562575166096290988693875583096679473831695952517260746922692246757164470324173833394905299623788927829483869522991662794587917387752664411632503389438773118077997464536696205068317989676369612064463858574122579335632845752029080286291579837414646571143281557667441763620113553553821191681718493314604185124115350464348519126225187133864223716005213855998478260391736421344925914277895135510097182033117676434499530312455398164177338419130717864602305454077437222599634682967074522819145922177034719051062964727180834983203535837945665937629637910028867402787450789728933301809616792360679452782020829939908511329139562809766177399176160640454950691308232902154301963691520432436397615288416388879936319883717652567453718214566147019810281991149632216455640718996571860706978325628540301502830286013029056800103238746421446676945351404071113427891746899209990773245263772951176483484749823223287317720160034312191318122201711425927211083668329848631541890028928460851665654290690885519475893646151774837486658165724755138350440995053712533264313582701965784236280073143167033832943777139650382699358275566716965910462887549827644839982834957325358472606937578937880650878434121848158723378765678664718698930084693712702471598045352043409315904316142553720187407844358815443295174121202781150058785190440466198968885468308493650094251491031185754237748076712886085777580711048282097982127634001082278831087765382973231415598276710384143685518589590328765352384335331225951854331728861567861898022845819734193942642172170243755994172747132367256395290273793037900931676110724991000951520345797882454228391123865577103424703701952143189385570171209296455639928110612378992900738412100609720831029621454752694624322314327727758554545399048914275240085714089330723306287873319640214651025013283588982394524441169904023011738277953006949167688924181564101925543899261862959788938184636535305794287209206625772483781025712885337663983159975872489014558214044901020860971487893860425789428240161252675202711110150583763945601913701075008100387816599049242363851976280214483871163560202239676518020418040135931229799771203505502877403360482712141523447997428232549296136779000765726166752541257560727349618900865188597612561521317843673238767295543283400082880161684969747462395134136997259024246572372423598053437261972741643718434469511488858435645754011331930844509669484196801881594615177231394039522464949054422859670913736027898466788497958122823366645250140598148985253508811128116979301106008872190861538389409460451868407617158163291693206816363674529822222052448922108812304050825008784421220448147719440764006366743977027694811975803627928918162813714554212608518452385218725411159599183848398931149096949451224918966283280172605735472396673158977043058916797235341464929375256988491734113610291558741417094250127239273561156427607530537354241081491716653846283247108423774283951987718222980128812409685532636239485546996529541118878029211177947319660762986831764887967517385169812684122071404771802651957493830390976098743857327042896227256682364488478495600487375078469018889276285847896711165841528778892923726682410059571966028939315259118722679564798877300183669136710573411808409285941740015983145002962615612857967816691899822550512143333030105946200920882690333828170752708132796925927164409835942680944177691869013265112352050253533801561318870670273957058848366779744648495748633565644784818824873502067125866800411933302807262127404282241788876299276713177757045961727869759619787187576807654332491651946069886988619239209913922176462915596247622526350592904738745449897106055654878429324783842283668408445830392605604860518969950808027552051399371738222772287388912780430064502768809535161930324494800388744134790004056153172841057764300962508734433701673827675477195272644795913949047426993357816149598369013956728543600426615896993099639935165756415509130418523227983995508004987177518577882204034180893033004828331622364036450162402288127626413341795486791329595919152123372052883783440673858987438932027816493926704011343320266506230187645039734909119115906192438069766960670092514609727535602682367810964427556618093007213567577349083494869352782367017745551181597625790086632615160142602134437924718764812051606247571073782479573178012170816402608392920324613227520895764252936242559406577703813688623972423682946125135977887767056948880855526437722489559506920547599898510366658148160428821821220165941566354950312277084858425863986877072841636985868549808923223003525163394286747813646275943966601019892422071463908283638945330185860963404457010219467915346309459020725627967330581709480610527374553636145004940681889920087133723608943594251032321838383344757321887268665599104769142786661255906003869877020795194854458747944572952797628990429216907264431303594911186049373867877513463801064185498261458402087557008484850701995435605231809557028924101999976448542832044279808560497762590031197836532979141497526036089965668246429391926092247820141854556951729237021357685091029299550729468193500274410213507620354891792163616361325704134332825779627394367873383855470785304761969698445395252587340010472431691624895437094351765005894396287069234938944646417716068068283655441363868697729763009638688173837373547797150447812505025266055655421506060302389046641747841855053104272888306527184167081041797587421382746908650368767725147123363259816207900972126504063326113577484218287686745796843844192108100715459550224695279341911617955027588539149001745983110534373227764168639821258330235423596456832403774884381245574265357900001856832130348670838155942586721345401425726318716791767240606770850797453761277246714489806317847599373501168528498612596670037978163196974025821598650691691232502563946352024193738149156321437436542820696142513138602858566765736205005008358676867444750851275341009053742498250922250667981479930670340022900246991559636491950336310162944179875989976350342583964675636572520782630680497735836554311914831446255208227741149113873147280794682380665780303516743868267218618399831253816970808679471512069323442066927838112414791004374440522605740351976153018051087815252704737999980640896170511653487559406239400888728959531549966662752882569671518992287424818393277775934072502977551056234404411755696685547671318317473734979763264797421868311225914895266038828627206575319416520206732816660422739059162544207836594647563796448211318411752262900277117162728955819505755172768868004073480432528107495831190349793380712584929732484673087920326802225016840062085561751953039523131223154162864796635944790456743956481420674012602307381816133590760925426386122868605591422941367003573092858212731983141755164066703813940426300782580940948426669077513727952967284913415142105018806985760623776481690097429003583281812037042774016035215864815412111139588332091344651967893959893325149963871002796751887823612812333377212181588721356362051955459725625753845440339327142534185954752430362357054591741228105721082174147082460977041223605617880674232919204304678812189516486470924516724262718300145454802410949561976035545038900346833989544253606350060370596598072058322116410720297068253176057025729766693789349724356052455050582901715525165542380316585840702719085164062447844449955892131263927723194276330047461037718091742732367835744259927772891445670867184311707205403525573265468657501048864505234106943796661640797619931155832711204687345180117653059005070723482841000450239529315311082455451472253405971663869172475159126056656408681509428881395390755031922476262939672488511982066894868058562237052681323722424121252215790151695563236870044265190290502394612015859506509627919021218814020020262846074230777474543618391414008301677989266093777052531437487533526962070030083990875865097178151681146458618757120136606071491359659344033278368922480817983614767382262172599112346538766762694793022751644951118277244402391481522630356047056120487766440243567214971777401805915080305947440828376321201000392214849260054317690931728913127035385775327431417271938622895535594061224750433974894016245464108015420832935900592662817814307975286362452450035577036858675409845142108986869816974908523750200941424202440031403167579564357892098786799017939777698040038533333805556831502796664392006044503415448202095110231975081971035317476210152129426707777720939384263536255523931985103422786912007412052436503839287826771582581698082388246832977777184427688718601162913748113715361787088194658576199405344835888986065641567937918014784595258470930288331394343424503234682491114296762067551736915559353583922439889669397046531259308392475020207563082225868036269870257309674221155843942777966737152383236668339469018045248597236822963371732163934764656229976995800559249009524153824348765416754086111376845793682287377287447513929978964209664049607386246535738249185072542818092476860125563958039466394515350802331385437603889055259175022432411058316422584255516647650252989959580491237733484149973515682461926826869957662643906583454313032656765201001376827094701053317119802600816023985205857130254591290666659578617775207366181234152862860723917696562458222165260407508149055378643899529816713212891208972403187772513794817526044557942978281157773515520214203815895146076925004551838175516849389626843765625410674740367418743838915221434433177744169373809016890260196257268606953753141555828398793496844799181678272528717954152469808889965363570739957571924318985179034272682124382219470512836331425987212493977052800337653788009035986612292119310305707909865413884882346715036605723199534770749987085322149310966092700588660206136215075235822716473714243665544507148841946882469551335204243501537471867838121240000331778644713239798542508628458034518000243313361170493542909380675366538860074899245112547053243112811045302215683840106683603663141551430389261842506861389059392804477632577139974668979908141500452865437936855869422779237870330085685278624945543620411844992611830031311617956953034703386235518811215622982300103071261742422188764672671146468216621988388241749385935758415449006233101533773892942908843201248100485240241272190098740070516448971837840431084475203800424609664791332111284756551388085821917248734016178714188978512515961687523166575476943811271486593359558770043193018067004917638884905768817072480072396248405827836119702944811633897891440858980020375572880354967135542929782665537009478492582098558001164189280019630202840638446823230149504374151151447720644872285844098808376957137751038473335510003889177343359840334231912420730510780984665282590236911453454268612382431041768396222848058753980431659018879618067317874239361762767288860923338576004228296883911204566751604978272668462422271475302170571186970662945567378405518794037754960360256638673543831569259792095336262783478009440806482099261265058052746113371145715459353190050533271650721581949533404475779456700091110878110777596563303832722286529471215407324521252477632712471343992523441937529764046912221407811637126068026153532404924393751337583745337373582115835736900777839244842209475062529719292577775337092915652800052297711794842542344905088939405564387687170520945274854206120817811850992941081016480908760547953819217157382785549349449223469253541915282259308391811746093797327154998921011145485088279029957619614192055507996447809515668976946642152869064013971987386912474770001802004074741233376605765142293810729008762571595340791579946954036574986141353490670892457021927722935921498174592605290562599638006657912581778216163719852197304314576650796460234386909927479154403084969970235142181355666647881278282665937636752273521115333048348648533675341119491030357239866654327826546635782322325651982515071504094894148083087009227083415890986371333869092127416389023946254398119978177244545499092233152977773461382784825374855696859203775728387870751251649291108989047847459280136294512458468121150506973433513252963870236099367761907419327144474655948628481640737677772585116483169957039671769217645365566894491728961239193774257969772724950818898795546117823692601882525070645956615880796920780876541891732971351231258378322424033338389866669776513429611771242811519987335912204846187517981473549156686319848470454388545754676025485337781788593958505995746551402759479401425530473911530773006115198981631674594526153751354145518808473387904474810783400056233686959069355951319343282568550945799521033980777391159418677077049426580894216805333745346534109160141966925024915871114799411461409666224291251474206805115930075981760662004593624785078079604886781534267572604216467252005000134741659405874680555346007094073759688356575423552486058642047290031377007080913681833762675882183728367812382604542266831870193200073470182166148682599639456321063040293211977424728451354711648250680983963205785392254817194664901242079369676737492902488987098427937362539087800725212022059703449929447429955118915549241931594447312522547803617204823086594558128963223109313447527395392479564757198739897807848485848342052811247295181414577485099601592710091478189941024604624928278233835619761501602021508790417933639378571766186159743591936187348685642253526240522956322556464867533684857175379790764899308766028295711701231441715595509616964769035521186267631503525067581283302852754398546748181508605673742884440724620128435340215906961416163466190845544305336235554376930717750427000153449459237650110123500405452129083370874079411591139649473485465374834915418531816291506278510383749373554037442226398007592347683611336245338413384390485966917479128279716577499379840953889367738083704752617023856810259790389818301270967808381446629751322783817555693577053261098963176157095372287686907976197706189308084284029882874978883633265001338554013327644071185136240144711791819171096440146649083960832200875225511219692978906900570105747459212478926264886352943995414518776290229392242055066790094133726393097522321398073831653835592989800977195981190381552225758015331900376458895977427545597843148160163123180732512326077000949059685928193747416552162185611522047475601177585492600505195244027762554653610266589086575720721694913297679414664354611072264611585800243603148085062211231434811497086726183605768434996992880772648802117626244830723645445942841059336749893891126199492122634720843763353953253146392092191619002429314902362410323640008582175500515707245271472179893996443596742137751762152459365023957976095745765139954774841379658157394656895810215488030842654591372779437896694744453280594474878730635418896754760343774305582462480427023519603979775868110385599912506177206612126179311667047043970255369077406686455573365458015979629465500988640769528075586739345265447290480243570342486399119596859547295982821924647406182111125207405701603304854990426185684129795244445563998111579396987577074620894619395496540448188174232413843824608065033455673119151060373965314021321528863222997372761558177694052376576113967207982120454301105782083604622022722609497837687571058137995038095765183529206820336059301514183855559313838915565780655243566307295194339872712160371041080540088785406187619641787220512172959394283173128286191381714235838744860222720618055824874616901938025163095989573495061964844545768764467016270301267550763538431043156946241652888875437853414651034559810768482765152661721645004630084268887713811340616291326563337582289207219766485055561706304721550547121092679709719186646182229338979870504343696004880539505874064162077285078360550564120341027995809397844139464741223167791582691195593891285337859456250662662533497092450302165245170710426292713997862290655796655177519806736757775346440297096317223467713355097314137111825811829212229455745248431974403740505962885506755511955346697061407678235397293047108177586579683525166513980864088802436949317763861628143129466874204982609065997339182301249247745353880506959959687841180747510793586418330628191337073526022246429822823984986938823849620989100884340784431530887098668305842902398460546047628124629994043945371838284343474806738051917138359443736010821838402897949942395889551277084370245432175208038795216203089036631199416996661398819533850518833712048966680927498400344217879913159321070522191668915922934926937622356924618920933296521737311391817375405700972886274587404989235562014613469400386909391937049961448725337890383212820474411042001432655393512136298353618101685736905540942858669903841105454781969672335030447638307606040207397699455484642642487279274356422556369999149879041514009877203034468921622550640164886080317089925039259610561156996656051432725782791201118217689655542200495469737905283354100472893629203226996295460846513369570404950527633557390407574139520695949287372432470975337961699736466750549428378426500657877684821661928348296741376508280003796408999710249468108070062867577692530891333355310012095203450413369043670078592669124757642338725795018183917214624299902745990531378177584296819119129194117212138885465223072629557897552876051187080952507110910968618204828931438550913414219203793003156758914008863111507097843594973311374842044133224699641823495241773291518177556106275194454990280893993167422285084775509300926286356603407784409878084626072121264016668117787581636483871931660677091449879997599915328311286048424977677522180237088391910388589067486542360015717568023447854785913864136579553564844365929917654921549925721556294747979449252627580043816614867644384139067120142785967221112272481405930514654958705520654855709824969436888930011100497615555591329882361554064649241594467086809957405999971730422415330740129899607259911614691009923626877041069883291557579059230241874242220109986436175310447181526023141345737111831139857930876449867964828126559050283347301199871555918351787728632712368405766975191287379856616339685534656495475762898373421787530554883260048562340072417231583860083360869359408062421528272370206464555206224548182083794820688540362639383495296015013687205120114510344664077693669723577138464880444644688950809235059578998952233807141644114710084382695848927272753378784692005296587110669596641696129051371907537157996530047077018478013151104323187182675339142824969444825201968971296789450446550186683208390576638739762999370831078689561521004889013038046143794420461916117677002254501873590698892347938832766784194409298349610461891450801572905417684119743498532085435431648666827915656849388343616035794865980514275615784137288537364442930452961568661560660397913206362129360528667545994239726500444802996359746177361411421124465264535204102199815911808004868996615954022595111160902615345047653073799068385902313762170493891995143618088698543458389882839288247839228786751050210927190247403612851097071709922504032173945189472871765726299996393688603297678114613521631116926996756513804318689434844868302284748756409132854301390137196827753785752348688210300854352004769711353028253774472784426722300132463165185794829109811810055366039927472124272979872039589725844270436547199469550538431469428591695468858507353324568753809414924637887663954274718969707109264860077710708710498053442619256925500039504462014549817249058686578765671349190493352183274772462880708656452623597713336077886042669166182885917384467556075228924969712896972490671158918912507197087640350554114369225019276948982355225102586105952908369590490689509332597277756057612001872362424335633054926517348422509243290967766294136663412337364207874046114936864159133776845175054241235146523524230186153245716472928254457366275411769861978361975951035563392877227985386612834632852155099633644545852240685007497020503979305063246131894996493918592954698359286696854506235194251275223199372218497148691665749728048798473549051417608802508829900755862157188909156476387929213717826747901656096207579322195886397673176409294467827113753016519217099287049505019960105189723896856898572435765140876773309468936268640111572227954308024442825026881490590517058748847343616097410926833275255120001341644073900351793597932217696981550909579829498986285829221691201453115654288976636202894465948415624767301854672201347987031411566474197068888524813971605820056082589186115664271740008882858600396832630534691477950276764942761478024334254447640976960312673432075981054280245082239755556357402534447583174199973782907616813324731022215344640308988006640733428530663128113698964433306722540853662437529991142211654029804826550765776259485203921457562337065140192588561231759176518761374080497386251424344903748181048813044615877171099150024265230652199150037088928229649025798171795819976910793397866946388043984999060956083487087256369201330548857265374145166628823093177826768235932691686198668313819868392311000106882039011869209961858368065877085944016359766708770217476391252266476798888016030157191085669599978465587130661559992305674065886624127315447212066751516606593539992175006131482460969304590900405629835267531221516335633521997050496619173164758282945122406535523297922221391211242047223466590807447471281087954124674527993151827962381783840204088671037940225902270297215711403893190742118040607305339616650819864013668029548012157354385953322910984200342879262040769277289816163799686330674372847333099130078019591688765228964541818600205178368702101821043002440613077918359532217811359102186564033803039462362472867135496206062824889176985786133622382975579876484572194911016976977503441379454330027178065435855879162675035470163795923961667096390679142940014975851908248310847720370035669649476430738146778917109323781268056960293330635219944995692625501111116939002382714192057774073648188255597499413321303304841245820697235881756215024981082761802549162935109087793117926817444254943728584687524887771626230681065891955061831618685765020109228207361904687319281900918259298430864086841329153220415789260614336626481369359349760205461126447496025128775251741535623641506177773094143800702416187110331581011735538204137329732540463407896697129384273225685750352425817289902552936022870423246586414441615543299607641293278364804451821919907303356928013418956964338151548505815326861757678334874198430878131514635439107598525697753907374359712211934278207864054079153758524800496715910199137231051198817947612195202694328456362693489871213638799564729817463543282696802198660216816329173255622060512190712078198068019777598129094490509613327611531156892530687822067260343236678129168015256163658983372705849758879156868853058491051722908751362333488986972761460266315604411441269834115793484870392013857239466186203868911208158194617675484512547800610014208349997985526338452008651194165420496804628649114986740359435287982884785584106780294917677807656644863796928527009103386918249284971193601153691409645630819236903479998020417993655299754827946288110938294690946615476190555488611436525720349053337246943023001455831781894042413183167443096703402687539125252570209020073937325148124561657390426277239123442562533918467163180303292455103511789833602965991536814259016781362689032420844268962505285792624096316207574724351633608032797425757692335859508030750099546905025280752224824677088215544402925713008072155841606630555104982347990285110242131985781905105449917166061618582154052405683809792100092380646194909862400044043151662551559643232290226287948037335065946061267692557586711098315694635421604514084937332705089858297644792061065381303769095130404731032210048622552277861296225399538171623336904661085132279174324700693163270518162752910375321304327401022219995625822711245799382226053498609096652813928074847075250785678661198695430636302213563100780252777065734200780535330206434121646564778425245987333582784854143988146308641010822016705395659859254398353560160250598416236608175184979136968124133550771231836381555576009337119417837925161347829650923231200623403185127272391830789213747491551695544755934841059305275252806471556416644441578184603463046254077055166031244520611215475339155805391316719597468821467014733765651226855415948615310703216472497146227114703525685039338674084860554262150052932366166712771778458156126329754426875371351179755021406675030327446234472293352257415245452724384358603391927665114171968343042823599354425164195821791858573581192011380007381981126590409947425337038560807978838039814895467761229443209052337658464009031304677762609120338212885691194855048137915456939750441733544786276924303553791226301528354232211935926886809186392959621904091631204369277225660701710511546820830591221649884854229280314109807796229216792454568806314798493888915949266877168833425905044840757558888986364153416196334319335495656602474024319845572833894186843099801752396338705499278766451668578259595576040847830745003561851519612514639849260871828349576482896524701578607464668870262110532164866261866616155987363639106344642266662683262699691084535789395971886989257840011922140582929271314924158441778533899863203056726303341546666162942357295835364158969814578030575097782728104825519619577591042744967189155619280122917497360759422484802111095578967897800090651185915572456354912855746493322639889442636231382119761706365766568665632142420356556470354542149635547483024409130795249232627156162883103797295621665633557919302797041280964472807955531862754129825240360653387241160279770645010380972795937751558859996831388668849734374202864487474112588259209794479402519667494556014488832597119675920885304864364245572296870199450823761682529475908221189570538619285772493069217338774937842858002640817855544639747829569607031411621665145865619452354049990522461509934415255875410581585423584687487661757177819136480820824739033433224069898251446745969338135529320610997730170159943337966337967109779899340080941571886308467809048547870049551626633454112686671005570264380582044891734809715586198795272714793819099957151812218982318664979903748265007357802081543915837379750486680615727054319355144335286405948551789997110576478056793078765152737088090735828621600082990000104758619678920214489795939923268555253730553642707406317638407185123966374457705396637233255413862251483717529468025440390308138187171870724451136101925198770892145882433143778736529311153663034244449932399263808469994125795941086342103130317166268921549988362009225395642321083785748544131717804790985357416404413970527453338718180934727765108871134334084207233855835262594572915269829977196949161233946135304100380193501416549622134836049703639638312283757367047956352835110313829938259392085069956044537436391839569222294572071081318419433142103795411803493514457236310377503646505679642498098287583538205061732390363248692715538662359193937493611288584837895187101826117549046008582706537294475971125247447695150164430086329480786457629218197309287324004974676671984118941918510587168594700232852481449032979761749392441070521499125325889189901997033897455794513706239454240469763949737071836768215682599932075411766781089031418945743760246117257102103593400508762161874093369104863284500162226968284891746227565743243784285270275506498604155495679900938818026826477102396460578876147001339139096745747518524180639539548971557285686931750732703798214461523064492217997332657911093427108892013161212610686973951240931891944144549585090516560368282253013091092754888542693564929990190211194355970610282154972228216915862222963588245710284457532062408646398390136234142835269637680918865343974553962710737033683240427679952802027283812604409309414823500000163772995662542543284623786386634952073423178808457837559792687039216597849297956202576963717183527839315165748309016798360955627124826731599661021820050252862115557657805312797513722060232107607397440308473213272916861161826897835035982089740374357372773334694383275027654740741429924183215870551764407336575454688404092418765472328881522550046183901361435901323180537893679919247986632531942403505794201233704215798213543131685594801252943186809044539753024296584702226113770451550113481907270882489659366199007882014086751293784289252920421112069930078026703756612069589119249267892535445873945825317453406243783273928923275005422074819126025044470919151427846038896784975730973380983283194655479591367669040109579053058933501808765516066359607506258942824260553129515205950520789482173277822931634588601357365649249974021911536780049994232197949897502885679595950838072593213569149617855944247672864858585486422295970360713106675677514451693672831306605906554549203783217981726080175662452804714652119625385967211292477602348787980917090664627692294663408618921218024550404357431929048411195743797590171079380246058700271079922818931795488053335425963110912607303753291338396967417090744705293542427397548929410096752702591831815693032273990497723675798546571481228281339909883770533930008407868042436312644203767938622011846634874399976303114531271386346829870696015172829108043512423063961050315433185673733103491349082660158586444508198726079944455220072844430508897653877693987423522538163366968151650887237405377612506182314586345660000686457113390385328524930417295859249456949528901773408517221116357368894939298949808068023516734115460939600591110321089379780062118723059751357604082680141646964163972528747242543670356956335005991584989417424179682024604370571159960822770765181405776900298300276357995525174597518758306597853766314231088669387800942500741132788828940742446502599785839565437710953453100227901981606174526393468236660030561013928291788715880203515021769087258464729096558019778891756156990731416553574461797317020735712388693720411950927503370174930502978886218470981551684771765928908390047023146012007889908247196465214529555675977721964449131225420328572370528314950929951233920579547630852030990997797030111484143626051880768090585261091930968199453628234236787773869797859209518159174313827849195146841302869835964545409664499410694365056990191497347706845469444800827987825380327665208351246299795461912138571449520484468126058233355407140946745014471294322071446005287030378676818950688637071792149722882178309152843769524773246546055790493752585497171802051275695031719025121958782096978801350106265481213275355044850407131478726373055539797355041209228674828512230641454002536437859151478069287167757190966755819998453581111420503654187628936331709390028717855009007133098487553444667263024298047947449084822688528220577762452530296471944314529065612654102368310753589952538898203320685539067536798972507102672502219225248414425350758655962365190110641445614118828364554563708601497727618038462737339313155213357733436596557048219488055480238485115237193234856356248282873142425032902823759612804065585236045872929673737333918409636323252765194051944496779938817789902303500205999492390596169554655447428144497812337307952680692426516124201307461766309338261046328725266414705901936066579287562878794000638167979878028602750872076140371033282850891152904831893387721254192494507768386765261231142459496596198619095127150522545040453958860471447969793820512177826516410037049221990002359247797398300596903132445586415001750973917445742810408700141064805529166154875157776005870145576600914792178217023333661311532565205811505847993445270170576119374794761649034809939410428546203860909831208857400966789033527666564214941667062041808462398405318298145755060176808899685063894783102848016190595755012055727246329736908024643215593985511972077774591024113693407075145149839965621019627828774757353626509077418741483533757480454371346573051112909451472190730982744352297051970910867404721301196115575667410870657741392520851629921168859161796105566946010464052001054141851603055415397137646010945887648381342190504495011005979120285477891126455686882407465708625016893962294278196538127634428662016856496838876922947789691994338405651794136296207232754749674808212919611572216871300832373605107679350604551686137692940251685353497124283762038119637271316871180122689166128537461376426058523330586027616687223161152543039760303245970197798489619712806941106676717687645958807023109827549246646726054185519188227134018504668207895950627292452793822337104981270960588460872463209960059955345034354244770108199633654203479017406408888053750546995488810991483874929887638004017147931519318629683942894559050736782513702903907912191299899716301521154562593859202825648386795255244035230182901378227630377157426419694117740785311602977030925874884366268393073637873395472366778383355573711185417634635327529492162074241071579883455294917027676117358927982222877194620937770680381270847779137637419408860076684616799462353304609637104352437190711533482435370433627366421069701873078016517134392604363766353906815537170405936539664102068396706336165474967233939747457638280985174030383736208534973680478045205221440773448951528377045552231511897846521172287676475967521070828121651118643415844392237395319276806586641860532600120441108497395014621244726862587612654557528679517715652191089548827889040675657786121267063845023335998141326963265562492080726737089182812040721080545736163496389149034038124987718916429600849707504183620317946960471546851183872198670750741946778211736059006656083492820227303925506632180431936549888683786273191296309558230874246824589047062178198530027148697586703616088285069644507376604401207885881815272540680909574866742531918914086477395927643939413752098228830643949505574093774213143202010175470000983865900678191353702287185591235717055526323786881080175317330040347631530461427989530986440673157634435521877536253897497845450575381327543569025825388164120699986198912757162084983216582610687329757346602925707883649514450532150068473889473286905713766348049151326866843123848900671716419188996934028831547965720182551426483667492575369602112102759403051011714868377444337123692171175418316162732528361674403407616611650516337968580344068208288278007804269425573013376199119294771690031434806995707966579865619770768065838780316884553197010747084412085245093940348285010416953036785993785074447106236167084059766014722911090182849131223702503903276433116596650698136839783381606971677043325649231324531717815489214714003607915663730559298372948879230931812853299317730152091313778440313689850003361759613867758278592772511793988905323711449039536620933437020596333492816879109186146217582321383722751263705045535071042131477106234631586954283954185114853057897178114957443956144641106523495278429457381308028552597483902201983768601962256389121252309441157757770830560218192781896109432305973616824587390299464924172665889887488266989728187475946375139106255643828871341035211261404956636933948616375671849204349706042834595327727037659377053475603932582913078916807989222148300314645278086788664913609111108930198484912533935812732850682666997970778042061849564461386003280149185647128418712604837248617881518103593236123467009007651167153013443320208570007090280826922870327295942439436064304701123907942458921136330761792464824154607460701466827802596032082990424379788715583547783410823463255838011705339512487515588575803896872781148232731151309953027311112506820521246704624077600479646332082255943860307717317662764227663847022240698078369956508294724284753695259721762117383963341108829790968059659518738440178180932544821575070120253658610843350691847526173307498058574775079722509213094265894159041150400721180863495788314111239394797406416898167422565498450293984417558736506009469601510032500105636819614425246694414336833967062475761666199492913628939375423232816550475857030561020725868371911960503296202966903635867829589281529053161598459530415554887291517227943741205559051413826622960569962820646926009295854071673981579698015593740154600138374655309668151324193877264632879186855695720840192654394748446093779602457797310971304339997209967619722525764080978472470400198270917455898372462678557966168547032077202753409490850251549855091510143957165693530265073499230236843089987510559093454113630080138618080652799644073429695503140085290012535790784119324319212739267180447910507067832601880056347929134497524403560669199274380572637615004509821478506084182171550375410254810488725515440594689810846416890388430125006074521912473919246320933127544649142247538780435103754367516735937967451527586254884608404381740373162671969164272031727968137885829615268384957443281325611120718876430039400674697702753351619789626445420617124964925968090766950264455220508495075159085379252980133590207626873039725572523757971319085292889145085051872968708299052723912608953816865463232814210868312714862093424823417312385704092846105628118205049697769104908874908001371262364053541803246514418650108279461158228935780346824116710991396406757729018427912989398650421049374888672585231658865471991997359006607113994772127257072320977855600184253417060486972633808341471449524453635154361595345291500638142956573168340796434028517974446590237637475508671256835165129184281287654584965481835776277428241210894628994480857387457137046896589536173138500978981238249285972856206728949057001337577145413329268478208269155466493563069749834311166892327180592780100012849577546199077023991416315898176613574683197239098068096828223325238343259885418110356933246351067920853121481532997893810172649980694605694682229008620590600609639843982258307747096821530965285594901062507404371620387522072338140491313110247199106636420380165988589459439882706873431244969353606828073139708879495651972217536392911019729401267626738214976322104955840501743612157755651600329416309000490422478866552443161573624395979951374003243098118530097146945693962556714625791471743315230413285122672181133027580727239244053952730589456902344238552626712345763573459138350394663853550666638322273672143313447108555391656835301426986996448050167438328433408442073877111123786618109104565208486764723902632537899311206549937745059532649868739793871264993026857116018877271522632299808195685590008692985886021380436075208461743987449850536283486000752686969986050029769603429508886286084245115583892448818421341561634241010445210685257609806830739513971605537913370457279720295580975998073781855246529043569124223553142272993884511107813641587624397529768058305369116499880364040835445203171034883247704463433291351189119512383537087318466498514976216486775568574833536796871865887297595621402941764509158540271040932235828328859471486549929703088500891678020902853086754987309846312958902139038265337935938936457455085655266502600979584187436117057048514806390994478020631564337422518218364184916983292543721158816755810599875964725112047014066541798207492542437071200602964284493372875585622685564357509031312926783282620052400193186695508857556103837588581941508503956299485427335958347022505955174974162381064256082793632988396856171547547030994859019769010433981693649297494796818396965656795552265061701907907894648669734650553061256699395552235331836510208848960370927382771622477067687285653803073043952818315732238987953121745540506409329862790703261548156572226926841998360246298620841516397476045394516702868902864708719371083581393056865987781560896490889041619790703416947484866931555452879246969660906862975102253290579289157887142297546672060968666939014904933776850810526519498825130910098244629329956483418202224876154925163421913756463456106520893693344240734890200670850481256923632375323477967500891477650465447865519655763799854415293784950105951518113597441321880525243065519209045743845495850231963587162681129625065486028310461615828689785931694046786732909805741237055836430590376429944735593220257703196565997462719790630133900342273528563658137405663997192268848952141327537947725076952443942956147439034905562668642801613468445325083737680921950111166112829087719792763361794258963779905755597128536789185946686751294629217016085280067046425350700444888845182442386208723256478632293432882019945116969170374733638273682088072003627265855283504871149045629742355005914240407772480284727838327713475497971507815490079292332779918780530935047424484272578054591042318626613125713380320374379129705239787343160813215503200998155029606771214181489590929616671639280945608731626951801433800359369597188664669317956732076804419879210628777460906229068447587096245270860125163932233627087770540415915928503807263526379659636910443811345779892295211806406637839731573926888132739570828649833526405506739745414562832073904078427220940084806124269477847741978491587600099150800234824384075550236584723160827516183716667283665457714706118249512551795120737637843736222520460536143548447856299446244981556014471757091311972719864397802752361829521255468123156815987176923270766113084299287984487603139517183977699826739098574750485560069763658217166173055675453560772207074339938308262148182517325683087622447132808338587431174418544960925067559927245105918620409886977531299243830037118907572693922991090988895320893654975578260002300261521459266609253566948879993835745527293108264623347113818422232603100190978377097790892196607347280247246881139655848655445837114957648835431944593368966097814925503007231538915521565762720019663188792969358751980537018002675500499927962666828209992195334600257654683313130407083260207388221802387638433990163738771587502311294694846827821115675386454081833797877703723681894030980460244861164953166768412338644950684210773037126557849023868493945265954693154491687979275594644764065614716461255670081835260482309952158782893358471470005864341753667732979628755983056705332252731747257958119007870795150568677558672956199691273872240509336564491370782097766332315562643083874183867074980261454754921911066993438286063735729688583414136042841106304711235725008763664609380714656313275082309420545108528353715640834208087168252430646034026609120768674154642177528445250061965395054073414076304261331591468411069154188984206855471601615233452253128578868283188300525763306823540113625795078857983938447194066687972727975541857385740041970116623699057408697293310634754075194307934588809536621945084788179060886761521850739413528063855977937306584366989333083590429544045660400473780607657772072584546076346286692044639378689070448217920055431666783258634270274161612532465372015604845728823838386569579271683693633970292584525101905317687548603044577313473435520663186572138617241850599364423195840722129347258587907701072040508206275137597774798988385703300340767639494406074522423730205885745628089624594326539627322586758360813777961051704530975779634322954001130036395376611161983082887647783257394812951402967517619221360532332440657560278915085918998209778827216670031687958540557909377959583534678732894457529578782294353699269388527171949260098154366378143480056192568399863213461879814659945817157800930943697437276183831914375996918872698440062000805991151924794224386049327439175901480777579484689596221681242931891690066608060925150508668699482343256803827531416497042724325088516979521154560353368278505394062974660916089481362313698458841509619817587204942536961964785451916458630132106978478227037728432368682804020900036397481171055010307236676748803531336323119155596345693886553686293592525005210747328521557980832412416736762601586347920003412132776163528898431648071313897719090589638477854275125068332628102326003852208591040711858160659900894427103417301808684204940142492298226526926137004710253163591312839398266768341431653531692017834402591292528305094658765634871387369296718717340359376543642816096603528567070185364941537415164746849046705162981577942893097702049856408763919501361003998079542928155135549428206685215215902501127339700275739920454005162320208491550586789094164641495740678601072753574606294088582558885725043451518677124326600922293129332316985368732361058933861523533230208892708300431927178694276107531012802554075991748438336147281390462411506059659449362801584622377956704653549047533260620073716343444529761363961946480934478804344031680194178476939638522042959898415749508732716748687206419015819944744121880105796248894473935238329618889007929331128458344167193019775004426468545321326179281710510714230100741617150798523378705011024824868882064867432773022078426438263578428765226535579633498635965400512195766865571457984713572614760242475040151847272408987231063114404739232782110841467728011858597111123653645505559995718442072404710092821921771143052596936540306983752668848031790567733992680574101332984903387254681099863503022950546116525193663162401984892931245856043160729621294689181760210686833034742962890260559362381952053075419201211749734948197237748139807629048664327588206573146451718168566288823266166214794923876442738571814941879029275901343176956743474548096909648321283547206060321756172442613554956301127517499233947195426003973057104784153334582052795502189422681371262778178831683578850665819623702262013586047370950689054171314207753952337546802126694353886845979748546964234100339968545503655550964199576507195619350240136106519501589559812012063250154508465970193510565704602989273676342280568495760615847038744862621566245021216441609282845898138878744542876291057485970057140125324250958793208861066163520310557932858011162119238452331444280128462338681109399888356519602110529579599782462134097800629257268959938883868847733984007602304896441433328797594664108873358445682078387525939714476043290973504253555426439590367752930365107254062089516177167924767013626372888666156797778471870235795116783376035379444776677433980874325571649747932361828590837548953266535501083254430281204628124082560505018967441707565840827648015826759572355412113686752313378437944211385372759234493857606689159728390933291328922674709818073795005220934385166966992342222454336356985561197729430626587514285497044487400363089496746146444754062596618193841845805073175606991966679199277607752497836094130104436047595094342565466546881347047074138396319227149202889887184091044214170796963940872399554887819996440255085860607515785584902511125682586537736730501519796987634221517874284271982353788945966519348746445641172217529665618332804600102615985667808294110293827056381656155008963917437745727013699417582801122701133064594457817131107310518956114152670090693202752447412699797750660465297105152437550354549137860794761722728703757692319524912502263438734962128466199100275434969185905388742440040688469822148159665710221638854227291832467846032216106124095929066170390463607671760419368030278143590795251506595057696276119089475312657476881083937253883168625869675156524224967013130130226782250755057510297210930268568467038129621094354305545206718782932268387275868869795218657600357672514613680614143532914066381858257360380931980076788640372674284886632116650680428191765925059289251287400848856532996627933354447374837321445733806048016736760783772208753721224924090685995257511274767021331574165769114406833837352442800193698827684393965442049806866297660741388218354688850652099668934101122026581549486353346116607777472481148506811714291913948184778094768823047128046892935630369007773623815847275935721415389081719805810254189850100075827829379474116676910286593094992774150539701727455315444329599455986867767349900162393648210069457157311461350854406810407226060633426363188949652987057318786869810380396273177875030595642611161290405809668186673293254486617393079441449304847777069788295973153429153422108579365506368622789201146831129141989976277751567486272118480896096772215416615682428411060599257825315804975626183249012075918142331074788379110891796830862041947773168473562547257394770116617755455367214360761731792133899424024970831154933015852036403492936391397296188533133952153987274411749342969993016272273326696982496179514924064418980063754822558667888206026388070998757274032513516864409366144933422321523981992859300528390533152318314487166192448133298514074701552969281709475635841836652082814116149206823391179453473719635298282545710199409597599656578621285571840429585355433877400334238894448081800367522264162763813843259304092032061587993355505949547319190374195790316604890818400084379786143191934846420096801470984894304106891329982547553190479749628363685293382786067152504569666330616667351847597816294617904207194941784518641394880917714604058623800330664742089752708204626417419459659526060039569959407031257176313623713563037910361354504862353739179729861377808778509892580005614923024387836092929223335486438127381474713582731346595673616741768546044372386128733209770393091652927289866327360326744852888798280282288607661484178639154501163701184448698546685739593331236977830227802458933890793365402785557989706533622429162874612599608417562942488920347359323162215662878948953375177987014362217411845295953304031991226529380271734497203601643602467688277979255423226644689881057191967517663113630554238752816200973355338432738330438422847694398533408629002702114086041608379484332155301623250569192232469104664035396429651637169224032013931598831696105504310342912045651094958757645564886504853543477201980374364923960322689139540854475019811932611235090747956334444701332075301893538115510687079097101203888802145775903484164173468629806003717238358816111511412475193632300612144057882598295247122894200299835898352376838214764600946441643388931324810655536343180701425954565746975089597074741007774755119686124223301068600437800058712010228520405870543755197642470765009816604558868606445566896718543254032114737323268698919001154645526715415207476495009315990885530801757491776471148432783749377472651755585053220489817996294034947940956176440647884170927309311830159318569860127040653035509779145057447665009345395720603572399437599490037707484510121524069007343035897275623174150572095940375098971444754611386675612348957892301245189204840324009395796835351879423245627598342388381703568063737357199964157565694327626707434583420421561549961218510792028426000784127434043523209459296367033039067866963527166937332856338740544202553472533991421540209097571855834076856853942708132694229926939454065975158395198297229894763766822857678201457912189850020348727284744523185566868036483068039139666945630915944380854234319986733143225284127984995313307053436408916337089370458757130023360163181444609447111696305442950995968028464443586417725851261346148552925482726604212669061034019940129335119039877929699139107278657540023426282125342451563975172269954174024228651000420317115715076756849407133764246265260150721868486969051493813612830386737279377545960654893766989210311883982821491978968239712776517734909005006711815949350814162420808190623308594034190331695476559638966001982841708942378992174230816208372306053864525571969641447250793481781693820240100364664493223522648578488541727255119043983139943680517857196398847873942915525231699810019615471635414332149494903448151153315700515796746118687069590421397196908526187819785347603922078753947444756698567506931279589808812666775544422306597831297269677866016819693825594084515408507959876942033617629791495431502421371724970866948697151600121574960958719694628221512095163654040919190213871058586861508658873995649382204669417788860541173291714709534003333566410070434768086358663777913931440246539419185306666048263269629396561087536534311114816277622491490445766971563741141653744953027082959196664970995630735406634664592721362754085557201327794857791640769407660113998505950882346967227044913494793626342089056244547375884364682915817649200411846041651275263477467981019685600412490198131214734030254822141261303786066178960392197857191350236863424478741205034503329783454475354547611044092452876964417252023836645369417364207891697571576114014047198208411694804932781409137374243534291886974177041391036980088932844162389002936049409567832967862157233503864192963795703934274600749392510706402694242502346621643277109305586824199055988334903276932282321509853054204083308638897533554641673577229899136100003821654521677638035527231688177149504565276860632218045101796162887564875782616457847872881434989190655926064942852533034085257579909849017384804034845176559034560973363355381820533575299491290051821110745750983391828626368063142639337661345981605982366818495647347980038895389916362574109764524326580785341279273183616968483872880033931811606012683834390669636964972389607444769335198518313135250683915623991536366565822920923536281258506040313831552188541084215199431583947015196572799315889314744725423815782820573538288521985740279196391292629004080823609835728146526887294893855214077856426376765474942915523329086978927803024538173301852325807038709797290202616493974869475094704897630795258336514750868162107626832039545894633774543869008843187813989333578660940071664747206017446328092950968931591485701256732455638009650150386818145150206109063477097820354483152892132653001237448554115531889960476271643246253993144508932841132577726780776943172278192611274721361001928417942394021251249799979382064997912882047479162380540621630119255013455350427206642610170785229607394401642712694576169994111058319854518804444706422926013422896830013199353494637853247685790256196445945160122313374822926022095233390228804818963924686175743375216328840938919471355406452534240693190786193796325864100389989659222829474138389461817641137883248140244186964352703703786806414101028720406653628588155775198042879550986599258422400469029738249425897570379492576762193718007515896722226936591046835226962696873335628251368745889877696631272738495898598666761246520657634881979241623447258174463532572707022423891075419967107042372652046729308896436468805575875622363428721956285134275743342367375384170131076765187229215842291079274490315865727855725302587350280278979403625047700387141199927460494143054120396902048285666117651138569400105600015799857065124091724269595282500537038192556566073646052414407165339419061953254466658870728845557656648094082133491600173940584680378020563029095291752563320488926526645037029605073147516378851317301322318242825576226472203366996970323379467982118433371998391305595658980270251207185433195173276825847535605576804023798857188088408539848321989828141454460715148373534085170401312746426278064882053522386829008661435269816203745318015327746326759055944368081586653335570600827794959521586402896920548864152850765600798471433270916694617533167872322123049002798159754918573095096010333893864303454300217536180594483379979177201821809649261761275824393046016475489364377781826001341558936330755608786896879227948997643849415185869377286988089143013397291434051685270689981836910978845355908740966532347291705603975865364635061671348750512333746849661579702583540374440729210608962599036345971986315244344429186593258382684599252609938492912806541019658952218785251775539550290726452263703263929769239387172019437027805932846460395413804987519424214150808256086334915837905365958329124704723804084477536608652161342164078317635179614967860393221578540403166230968569470689272773788690903076110750413220401516778327154020501396798396312383257494975390144410965692230873641415797572125144782235613287961306226242546143912739621896646477158817687647621549060389374930911445338653622372429880986760643092156054469587125704446592222100072580759577666458382404569161421443234265596147217056668979768577573716469257265963398233747923934450798961476650120751828988940719324104809856155323321040609291217826437672574303525153704570783449924826945578641689146484500490561338870106547778980453817229340033440984264933846804140202890731289669256884931459434368858079025606004573958395846502874457068163463183289148181651381785443037608227139898428015260199554812048347181168721117953965084879233367890329632353318241915329929909967736082757965071056551551041757007981976230105596753430900529527732096852511173366603043100150238266652349879302607922719157142986179031260243928919657851543529723607798751180076989370494117074961507629736569001466771257409559873795938531937190871468479860075218443298906294127293306149521375283303013075046140915263937742886270924200119846702706486260670522512335464299869421078291762346709655527442267476754411086426837917775355936203613755957115965453620674352522245972917344211060476337097538916105367347624678034414340802525073627235524184522461846917990942866876884423863361277712348473484134221821588176697659908417769955521658303896206705996534977903656918557230862714898619259805103855218280564257043313577832516043315549764009588426345259776757751963549497822286501741005324424568674175580122551711609628480868504847536186965405621189259037737263926631376958439660988020145174408741090575954551878740717335167213851939373086888480288786454815020662614015113836807313869896712278453282991358485667248829838890952672551817862976555144628890641506532656971406233518599460308592506703882821479831319742834220435262490858380147018745760212931932093434270962020314901496265614498539285555661820854838450913705948820554815670946199034613855122262172066225860377184194901439708404665124901240146138635603556785542384546029745409626460425716087597240065482213270827258546959110507823151327239001599715750709887128763964269343329148787959308983194931834572430426828199400521497594175211634705847425260430321177021886987949432410225672686378495184304745010900807925067333479944131101793654574247718748480461531809135942700991036970924819455208611797245752610697462564088798970134728075209774771093198181907366848085415232324817532853157450243727215238393941299825870930337962931871689710204440528025233487300150547957737783122703972201629647161904903132167612906999506602731301490030751811985279793541371045976512022087746821562626438217409598480827690632642712156641476430344651254264883798406036691249120338846286112719582480139897032253546012107172854580011983443884943387329292807447131951017937396059832066748120132213342072704537935863283328750352513079021269310939786204936328260564585978384863501790963576978852869063763747362231746757037631600394263599977732485611994932634009453849875571358930296443101193249116088747813369568565307744095521096522688822327583128241266932961863401199487867799783764099095152220529907678803971858469518979688096591985798974335934742807055883296822313216425638796995610580975108919738866495089504110353008975499426618091359372461817627486521808442162349800499488523819861861814619156778934862909655403214904589982316493286950143425145516455902974037749451274858143604548752768951606182187251083143211224746932991540687657186511636556094382538452529126912776931887018962665954912125051368102372486661190483696979103113470823453598808429566721853718528217841988762469884897509204557503633078392594625136409552934422092347016690183754321087668280950937383205814029264675389332009650570488314633299870288067461433643894858319892601115495612981191041410185646906831670078913893494366907730700186379327152813899957064668486645875034223514999682330608784913807380057557097535390566800554032484192729447259043265814817914796079501642946584660816569749704951767440158272824988666613927770285255919489992871612146198902795331330760609278121167739693135801900717205339608848511544483264071217431523742935445759691001011766764777141040312576933991520880333951432490099815864576767355945908054686072749722723431950297243026462551111800941187926982613157627665853932551705849791244642218292281914475537216141764519185277993342809816519021350328289387833271361234837624654332111223724938145552096540011088629570899700277272442258706536187443583293538681063721800995185719296879457401235915787192622537976638553212020771058799532856264805855841541543919768917475110067178595018061878272898624021796818185053933510047160600388796283324859550882140072532955138689845505382071423223924955795463297367168747164719269781452533608411894873363492662787101172580941556539150494108594723250026834933383977034488791512465301674672888496603179378928592491007736735900962320757939913056785615295705742482711938117905668975167407737872808166748787735168692092567367672953292547743311742907132633026760425367929444555833706987638583456062694176597034517712025854536306694039445528351562042604223921116866731621634731331819648896511933486956089589700940565238963305736796386879482158160549787375058235135420439155723273329983027207046467109058511030622302675147262332377107205443277402858840337026600561905929457660003945210273934477923855531917831633832337162173536407340500080764546408217079515152387452093539465627201981336387139503064869049904744635022763570802710969810783361226681996607396172521185340277757341282592041479007344331984982439145130895743972941872637145300725423638442663415025577603808172798492213969699700275200668405498049394498521950033747010404126238458150270995685339813184872531382947656919493600270444820987331781211725201004725414269003787892567795600466974277878415613568557014382726456503219092077448411919589042400346895291414826219664648149998157276498998546537326712492238173344666016248325079765590915953473334224898922380537570748168317925254661498623282657345767532027148427584070158815139349174666854991578423356107988469535099620795843493838073721058589291201402391001509061688811130574626862564284287577555860741264316484618581179726816363752914196129827505206716165759718218636512655177896827188503912700555374851908074744912430002077553942300024923691413178699317955302778070217000404592602987535755358043213320079230423235988149310423827157090857557044868063560298324381507446910578275882043266168086087301071704084726557712857245385151229784661848283829726416558739463479011560922636261659619956651895161166918887555844466782714643421039466142501175770371835205980269507560055036757762432544998713452190690953918496727142564445704417487628023477044309164140061990986582133095097871033827217410152935774222739372627212364239729771300702216173383503208553368929638045865779174143886150114972409908818469356696729827203533213697027598188623901506294333557301691955383727382445095780327848608987721763544751134853431780648364796405503760238873335402627695977701294331880205873244773678966997958878926452914905347576527078462988621361466944333174088941599370869213484908351590753265145404759391292916354659620000092165213944110651316116598877209040027517064264360983713990975781164234591602433752338689832989362786614515468364416878246006149698883224501668816621200045657376999479916209759013477122986556194429219771974323678309401644658967512779880771196077268435638480924826220263115109096657433778134509742597678538448090896480832135791407108667024491029811391220377496709151399752214850987020565437623502280410897678082063363699996284122516615171142720421629861765629027937882021266084245569501394317953457188572227831671967753587370275244437576094205368394248277686933201402967412728859230147906598639285145056440246144278221013059516797029708388585129448336960966239286821179823831676046900075395598329170070148224129411899061090288631574374163953557985370035377621950473714217207826397119974285470334993982022668621102906426548275000209523662089777453263882286158070875931930846704764326196887615376971338634780333983684093659217349034047260104677221874309582933475039895177481355844932865901888478265819475164140870146901846820027519549806663701949118687242647507487777476461664503583480426489378951123360920650300502376190994917418476071881633444963892128912500351040020783731271505981976840471746803541956801426730352911984225052024451077587563735718768959942075039627165009603919310067110737956686187693693207296634654209579553875521248900477651546866737111866683277188785429663765367741661957095308671353601550493191151327748124034100460785772549103118399747046596758954319349139308775043443391073742215427896944639423359614633899450635792082143011798213121325956821403939980799887629442733761023532936372194188736974737115745338798039538014203214935836531793178574689890586341823693605993752310716862094547577955050623804591086414153660431946088481119477478722542544181633474802958083975030934267972744158068479997933925002442297426232717059899463284083895846786727516091351256589601608847652569825862855645569090955542129800390871539809224847624612867354208552410934114054592623455647406078735054109737704070227139985793330646116305613544709270132985554168253743690368978757800632010164941672362005662080823174167726932890634494778540811076916410747071116127882668826164721019716955418220489065087799181133152649069737371866732354096882714088976715467130601709130666669146799690991310429707638941177440025144901878016411794217432449290995505970301784999493213063810744928513752523922403936602698069468138755309884253746153632554793675952761876389435203556079162898886216382862359356580850249542840008121416473288064034740913620141966808252754457413068567281068848688091088091208325550679427423070883991454994771571449530302243448545513338492290987679972938205705870596269338078757099079828549996877987736485000310780819307200969393103225430214053997476309059609616868805080041972550740953209073076665375262266043515145127641610927845940401230487355044301458219744333134736515638369596865363580382930521844613492891077821573188429995124967602235731904296855171735981178552649441557873811970576146912823688966711774115619556835908479621833734037602370972164348183046926288556861208834857777097686128032057403052513471389535494051698813540493454971754837980361807849365663230133291763913573082987634249831072158813540238617296633614359498007331552395760863698974083592277065723240280332884096042500677782048914624314053561487647965598740331276902249092926223356469807018102464485502543280589708761191785899396181449330718799755580475577360331941333281585312241781004484100535545987302687888354628177933119879267405118218897065309898149169382226590604433240388005851207155905708345909565069146292612359499195027915435112077595039590091177139541528826467933945413275455834498754296000301271288181465339995897722755231061554697780854352969241270390263280955104164711010331192349371567515518165821228290383519485740178930664976716373043985987686891403406019546886603550016286131255700346448735234437291676631572082227726269434408599747007434446780490592438386677994826083851702999906781934787235561378115773602961788179757728040546425171159304214603096086041872517320691616847890088745937420103546831639364455313229802481666842166093352863511315080395399927449800533389097658113247354592729362679097298107214967082515043966328851399609359223111726091201221633186250668518897325505378087366560711595195179869022680600364139926580748072953741244995262506338030367205110830358715298740995670737852967506807201562353202732770393570999687226225925791450324744738105322119028831484906996649118741784978013468644426698355508745495889476300128018853230479764633657279857705524671304492934137386862121898691819221035831018465891930698219419703334881843875336799309668487852122922735134631001193674084415476756782103499246026228729565721870171023831652798385025465265611122840677843221794096284984702244153286952918582414294339887073819848867333833951811887665040628810938775162364342521815395366199140167334966380498044819365867995245341719877150737646715567961290563640938684379073501798743958699857158004954925485990583883827666616370720812100652685705491012680833381211893090061116596566337647096373251111251587639389815611228632987782380342705298567073468853662609970852926102361358893170478025121317533080922479019332425234842255004802448744552077261188788199236393366419815222410881659656145807241679102493263428992377455939691273016438706603107600985421309580456049339285983292217897502702436781369115362035959352526660343363447776085744545069137736677307530153285932587363306858941958804916990824325480676841720524407197811211111043455343522455006267888267868157811892525482012975142319706215498720898888891837709469606185505079187103883348500170200866227699093737169419391801134107727064191304781357182013203611584218405526204423722863362817637774097328251115813439029676837128437710297180967351872054287940257573254392368934338832751002033802915295991688513134516439525659088762578237473428129636072311162970649152536075485795569470388684695630979193206675908275398554636017703532864642006330835092764836306654527938078840733398003621655747945859610875238069181578366981227672684761892878419937075563654938476965411842484334519380581707017186742986280203760344048539634112643028999625390657192374584742476795962993254541126958314373906198417382041484850144157114624094343637931941783443245593700211028233491945297190173026710397431531621853103764320097740847826254310928506860661062507234420142363410535347633785266850199238642118104924896997685436526280799845132913442042790417151444824798619117345956594006884578700217004256958664038551469284808114804252294591852238376783151594772306914612027208244203185976156029691230060581203672451523330059789806137146963639580607024956709214779679083820086642739398095855109471322703359151748824664453260757096150160864638683834015410702366175716025418081168854093337296016517961841292133076152590774137801912766484860820117735221293077199173462987473926401402607820511545004454997455195755162133195378214014491105931767305960748965070016696521990117676368238369122383400338662118028948071662079765416154466847473909176858931357336066844844490802562614310606405069821911102465635791679442161440635999826615929648193298089510587868890875783602243039411995631014399504595526806097000091840278461795376735661814532664795620518130411326911115218326031693778817331315008943513833557077122903872455945794096988738758684642168344997059868966598428551249241922039027018697992054692267201150162562484174054189102563528253815137138398703616165583451988278345182047704043903624229134452078266118117346559288431522618848024972782343673452608398992141832884654367144364312782698964142230353934990026123395640564813548776981046051340800961664883765129065947889362564864483916650858117088542304802115092201954744594995928553965604154513818797495408210079496790207209718039347563715753697175238193888802336045432260993571328154105245246427638374785946777448646142998983704563929029554622405313538340396342381629046194902223197004906248577902119654301142819593604459968773084147894874671550651426305964466713140829952943009855266441665226928488018309259821116237206155594265188869057244834610309669861690622679910858652970843235762457043842872174918110427531433118510508978220484284564989558551199565713461332582750521554861857299480696241616544005936562040979916446285961989320054136469392442212046415586463030015115979651817749133794392868653598469837987919590121654876086453262467488066689342198020748279216655997910805592761008701079008144888568781573419168536916265944170556750443403043676658701683267458490508345844246842254192597739250739403686647872983696460597975298508546592810910604744096693144225299763442749334271226720257869797673059646044908141096547861607730672824218106705431739518987980229710562584594749563003946196783043848280871352761331878660646806724048524370858016346180032378286493357872460263698146951925387355537851323449726952242406912396115011086323786684394484971546202339340166391078661772911184237087294666553423597649730713692807161580057995876953819894397882999769732892503368232282538522420569047429606299784202185517363867976708979809483922679889893713033940069650720290763077605276233834624633541036486627883073684024798874204508622538761238119632057389794183044861330199039941171400058379747785501655843687765709196394293052160743520974504827467670793674326922223016351177262769481899765009320111786368713725983807480428633829090264021307231163630754882614629380799546360134879985697629347871400611134451466857330543448900829145022479044677822066604034779210136947895239849133827198180795012227327837485480867037213253369644808594794760041270781746691728530616667147209232993715799622211953769784465681930954040011519706741879005383312798650880073225116880680263862559034904749271032255389365770243518626291852599547175184022702629410651408327631932492107891287128962751504338626093520491553636703000612305944435449296322181497265285195310727052933197286047339745254502379196692517368118105933848006211589788564099916222059991609490677901779261152493324796960653307649859466527799564836575511058343887810660490485306298855043134717457628548498803006901896313715768151495167711664623590856548873094467795721375248008951027292832163708047114417312887510358782161761361198988679604041324361791968612442999893486528488052002175487648188101222452789245263587961818964248754536378192386718908731754280814210507510716336193599742810690957866280102209475691938342231074347853991852069807217759287574154690594059134637451469915429497205581304274097233071077878477645254869965808915377094293899520332760813370153396457371457598300648717327944242838620495818486028327754651001255871683852422578909446622933377073787204506929489837338906485395679190318501971185981420748401848099613430371754733624316249111581146031841312309191101763340211793182035897828464648093363115307178968138648474340130212581252338756603888528950205729648529628215236405079144935039528086059781577251467234539054305397810853221132786122759908075761181098353437978881615720726634441907684963756313016131164234912758034074662310456054466335497797539533423773365319457611566109593570550675333942634811848632694382936193338070222077466122797581194049526892426723543674409545588774389430810265193810844893051443159959359688499248012038929660937871190427542035920429006815078514075209193685762060183114061182986172202079192577401223901394150035748091794541418387453848310700387649057731494804450370643902117485239566429536284301309271029304583768198567645504114143417863771570792425785551577083262440145629243308595310998705553466229932640615030146941417003211068863236747577974300888873094374450678656763049162067415458350338144316258715333279403730261930831198961686155418727424108692600528149398511112330158602781568968730743193724823665129552340770878826170084783806533287136970948643059965217218608661066198021580637389339807297265427983194883919147884427784727076775266776183200695710396352231101498264087450515069251303822996766789349237380403114367466841633502887386527791640928106060793721048222915050274269245117563841862446272598347734189877387185349388583987450752770233666695390223610713034452798081315998672279351848463990151112637270525078279743186806992301645239200213985442202143201118421415142727779972882975937237320932828764921060928638127050906954784170745357742294260933352298713858277394665360565665160328691874904521873482623264209659671169270482574404207867058706698052814899478090709458681073934253440019254661261502241690033779355751561058311287612935230965773862228032061224612757975762958087935869461046110347739718873336774948713148793290631848786897106888471583214653888073922298730771059853896511451625100048698902392130346686696731697198969122229400425017432681696903776773018385538403845785615795534912673117193316392248517009873740639302196498931497117666037169594341186967170198697129182515650813743676400093966794990648186545260699334757836568960455318751671403564733164223553650689822050170143669826499124983091147694332009231170574201955546075462356415518821081587875286408696337305483789515041072626799263261493755360476056644667711340885692389583517953023963282505926766810212738161011465029426557117402767687396990003864893096018287943008648842172748204010938458074094794209526958185290012671251357227020930394134382612379141209514045873720274827705224281173841153994488870105677649919649703640806409384150650251592379164137539328486307675973654539837935290085356508263690151877861518464458463530232685635538138076736693234116686959895220130053847318024965730784608718445308366767359205891287422974384211342055048049942878899016813268518779756143212609276512260061527612959313194878799252457073326106654939583971779196316023820387054445549071803614018901992565875274785731666607171658795373932171646333451975722402018398258565954990482832031808206985612279850329552039025232311069570014485675347970302485509600566445634022720605367256686970156996303736053234235065467975074087340396902695632158829982593784566876530287048735443564870901426585172198738532227727600900409647594629167046976746848631439152711242410383512740625327144623769390923852343832841266828994608720711065091340446834060258537734376813737973355128737984457169930048366527065501455484070791720837840247234733406556815234926721484744773355385523805061849121978899846967035104709867372735481763899504137970754591256113328857852208851296317684643409038536731552196637640159437318193762573037578151141849146631152954343859019924145272519723422721000051534040736619018821523559566445782177458310103568728102164564512816101689064171412294248556252024448053716178240791270684508669401583125568228632263963858129092601426916957804817339768379167305997469190868357737200447939090877459484502655284387962336372891445761963686813431078941349756218658620283689738036247352507382432048264463211186749721377110061602349810972769206195164668051310022412910347059284444280898960342381973853429664625916616091536125581379685937922891730704484225972109647812726301438369111506806487043972536804249871225177572170964268420542066734068228184523089703875734437312927626597710375061872406806766974670445583838474517609688343296844823792238272232932055114054122431021809688436548744670710509439745777462091335086040265555053074347813067880226737338134674397545755796975247992670589275433344525359328431906462661586964747006403199152465191671679412786310083468697122662862318501011352473795030567641212719988452604656841497091985893772061321465231890800031591541954761643605778550268124226354358908412001770698638684342224226953325319206262597207297014520067280626749407174606059410492568723937097365854057450730917418332520828209029652334020088374935080698042113106586441301625560190412572573777317783155971394184623787858482617104224851315359502658858564433854594298811107315168687601019120528721206370375378235644957122055603419541648271062668890155269800632861013540828746613608318430332510845291987783736841122832091505488834104279458906215553494639001502361774131665820339419005104412374879937906286907233474295643324363827496891375468478280291762480317622123543232226936627277391994750539021141455398759088383295567934288901328469180646868604821770975276870439411411353267908912823586643163666325420170009987479815422636659462832692535327015381334323995371267209477758594040503240872563792163575526925370795525702826701664363420583987873446124968433001981464251787453129120303941490252577656395570440833469245463437726144914978004137644786553074228520913411280417370561300118963367798965756383210944450935959129471316132180095091377115371000977008533991712300362411823015625877052753512323020988105841702871547837859236081430484733269818709465998000739799240336006210941140942521060484114050886211289421054384137138572988449770087037750972082913403962906598249305554812738862929231298737714828506818745476117036897793086292293456861934319142446492809920537954092533028245969956115893924923780997671971963190768019856560538993977401122291399740241126226242204548475113022583521241758500836298357405071953637753896679921195890567979031127988166137939233118983797241951951543443205620307131050226950589511178909067077328572180895813823068997365872862310306825054002266033233382651087923933725315228357346554778604501210026805384923464609584350979727729539359712914631816726904717931152244287830572932061889908852103714812386702814844936012826617177358439349479108748988389369015979274962822376406549692631639374504848695482445629534610451408196441306538536438603551592718831744492412760560560289444497531604703304080010394897419312228408688048681245803285830170131905483255852541299991727342175068488457733358415378634448668242220790589699117357082140847736131371533942325559917342332450764829875278113537230987255679701794004348454113476901868615875050081479616452511611201477826810692351204722024746237383393955899214415880509025405944398141091301784564867968593585777696297366231097884133399557292792202379470669039721215708830494469160900787025446960643715186574143339556213537479740168667730674426673494474191481312222604448799695950950914502374881491102735906700005418956254890999718480348754361821792688694932932688717981747415829237454785606012133292480805738704688038067771946490973992166928359098762969489863830006237819667684574431651536814740355529938313450727991605129616593376651441814760283839354173253347494097957711896301931439419297538376749281796667092500119183045887647458449465969737015831718632926621989085879845681020945911258753311228120250478965958059846991697996453626276450564086923161885687898572126988163941425935761547826865221603492307519351271457539661664961214680650003986794601391533371010862783901640489876544821594825386935659051380217574841463787653617469402034720368226720964454552056893408949731810915416663476783560974643545599933919490047805909730685821469746459323010391474043371891395125478344886198910921683497596792951414683208936010340753216541964571120655010979530253437209237099139336789464149862793357302851496850579656369700140815114121772100122154025167749918603138971431274121253019191766719621033467995158307896596129203970642130950733295045303807954215125786928935104696879043183678727102724812576275875719323150208742442700449153351639793632519110690142339419506861891927256640709622688776011173299351411954569081690500933391855463484664270714045529394026871761672901999729564543233457128360225775546728018423370482011548628006269845241519852763390519874088348903614739593148281457949036199271593941463245397717652836940301557254304173398309589749420067027766172697809048821768708993077762744855371077254686421833341174192982353897501905015558471456345183498536670195251549682066339932848740003794391777563677044578176135048164942897082349373706781266676092952237526930315784726275698861896092537017310277589623496913101741452560390708588563763544944117142652037233708304133437105458769224828112973798986444278927260026000609848798611870944333458728926244312838190054948369750006848470219524281089792950765171842642447409061211559485654186804312857946497178909999993733536825484481827655059885780679561452464698413495529017368406574328996616130228027160829400753623508307555163397025383535725648947364806332255617298735281618337270366182220610365078957515434023035229425474231890527435552839488057092006842292492230119720733051777138767731424947521207512654451245093559936641165091097680252621546262259332145456212524169905034816884608430653005725425271006090975949036999224400444917583775115865438450803818410823243483411053396090440857526724150477241067295895432008002533624796158428548718615619797275419400420896968044994438085669365161718687130052394820843846372540230654886010018511218877157700901218712736991665171449657760562413685323594443915902597720907183367670088743150975133285450244742468288934452047687093630201505435963310601397690338072553998814344108127978540095913295708878726317212539469870902176038596942915476199270685460423943423567882391147403637573641318699064491013953852920879744067913248154476436609060408995233738916471587621645797697501279539053009851272286066023026378122682344206202219248672380954153924681618525074125292307331966167255056247669940799586519101706461828361848900002307922338164984651152004912032898921609807598413108084834666984622854378955178088555455678692734790165728117718874033879626771314098868529869355552898662803191342538297753283207967313225762252535213310969033517039114054313464651791611869984705726249667445545600015984334006882531063412597995477936661221387493098423208466802282546907506584039019610657830319054755326603087990252203282490900518005160380083871248403260069009882950578794851262234039545052979612546241488653885716742412237226974320221786698685323388317786573212700017760231157294946834346820953415191348417799612937724059611571845153247317817433445857967753954914694593049412388131432016385947986611965830767966734869685352383327403870709229258000106210001336315527471087947843555756323043505589120233163144986612291516414802498503164846254313734079671920718426707524920823390602036230060225742391139133201904099264476504667028001316444441114718343799470669749489732897048282734104705227446326164174336305403085314442872596208545347584829676619703673880630691967224524163018912216910415400522163343104924688499812017664934248864662445509239454790185379854330573066646089554010771447477126434074809037411767892734284412900782449103461665235137129968120988235157992928312731585345492718630840722432421790455640071456459468126286489762019233458198061140186617215907726072291968945016088483846631748443038492154232088817141558873887178509945974024884385842592696620255799433257548847454435304951681374126516741884241724319019271962360503253440162555949952856250681022821694202277679390745541203680190006021517645759127684268636237344052840004354739660923834041774556774661376503325430341703993683062662640310709222251677236923045510348059611743543676863656727541961286877112776638006801435807054545078883413032513468056585988413793622830941297135355123415039787572132129989680752361718167470950721431898957865332202084778333314874251928780992101521551354119992965068136192465146423728704518769881700553120118770207229288828622697641550417564472547240420907687672930437860145391971699681383066571345379436179776280233005497675676632782939982842372335374673906966811265431842617636879343593209598565167601192525166205669353267815911473327847515253947511057410306412415168942087407936999804082089119163196363543651835712623436082980614578605912375078767429642556220221482981199506776825674867565948035010764815917303326364122034642744631846333556416973576041009775579009027155909320175603160278967146330237157102635768026443061924524028485433982868297220553547917999533868307123070586356443395304963205264183903758690701749145741064340527157417036127094243607810982874678250100316447196687524246501574487274205805036109790679064139437472660623062290939587715051236780891010938832399250598192431023354720892217485184279941929446726102114283835902285594513163970171455177261487052318095935435981849640771382308081569027089425729002488283556875791394644948511744817646152757246038551169194075539102380766514941474182336087328458791716841691711025247412940397669257057727353537872862531172559228344648966747450426228488291428354522801656700123042176019928419103238349423373412116849295020818882874286411577187156217391753470161075702470320638606066106893007214834738800164000513604358779928430377090040305803308329889986963374905419877338953161411954124414907105983217454491212941529429537255159722940057346624729187839426993105665489911837688464056924045528621214371841964926572040736806430522181310589039468842461537921827417099027231003974895405267676347846345622222381468974980535013564182609712170083237661223760667083711534889347255640686047577599362519727106784095128562585849699761982563386570506329405533309894753977298719153480124797658275227654649009761467096588708400377573814038194307037759222443551790465047202889455786034963617710748815293241955671699397624768009335779783881420861799947300274839309617595306460286867934415663566755978599513109600312361276443392736612884683010477220643519351273649374092687134785663370506222254897078063320507312087532523308659719701785943846545358480724635796149988920059244806977374480020644724341960536312813905061208076970583646449991695900786936571533668524788448761705850545590632476986701198845729302168520000682894273941513972797491867991738626838979300546503175139815945901649784704323848456950625847067358571400133615770568488257197145178072723180316408973106417817498450195535830529798167722659926638046156951839989098917698461368495003194300804581019727379527614519456833044953984761979487894419853478856774747729083813537318338219241138236590410835543861630663011100772993015448145433933614980104368575008005300308307671588100341547561331776071361847143267993320519293942251298683343311020906686221000819340329399211122162797742381417118219254068038064969709234197690025889889345175010685157054308138165757455965887593668265930807873428010454490089620921977795788693323237903243269621266845646645447736207752140978063460086919822384142787802335672660955173757727621388698049167848892721250803904127521703543333254095501756157686588895767527217572548467596581800810699884754628783348577862954574246808893981620119458053366696432871181965627414754185623026513992555509527091996141616759133646969310843189135841451805072508398402806641817783920108176385101283255357877326272910969542762175137469324882611333088332419510107490561433798064309331451518644397127945646287837783567458193671568004481379540349891455707851078307154741992729064326531271524741332912246802371435556662183167312341329673677282596977753096408595928489704715738025507830464125461721515273075086075891491775537992596527947009533501636388844932722107198704620431030059526766689388480868557825613063594236312786483513489780602735549017002721218285044932010425637626793453216172719611549406846909227306129569146239434794055567075795533564446971127878556715565994950874493281901301767476745878614388827655206450442670872255168251383588979481921462066514545250950255656008336273165859594118095462277667575650737551172620633068369109165176502540025753660920262870271049369430478303407845057138025865159011410340432428612591912098249623483374964606256720591394447307205465941270321316574009713284635513276183481789508352731175664297091538383580807314238787921847083424299902767677861482005033758086479310177378698922375116399171874256658169822597645173663416493235680066676889157840155734870142421083950243729206581437532890219311019233652015562275822196938753908742007870192638248667117543575121968566371128816749622063754146358737955930280671381171053326120450506695508660227946301997554286673346109618318577100211286927184227226712798206095721718049689826723643331674705827429228515235785620936731130845547350179773937723868677953489850915071203009574821132357905313658384399368108464302228527728344647593538320687417252461691340465538672330384674365573347216326238245051589024687236356295515849530892771646488580349711801198669975235001683904455815032021309121256972456849692582523143127651101052216955676009134757030921651042151643541443008049243894998898163614614864529162230685988771370447561507654515995910418114176433390683414815109821364715491173648764029348000691655459674621569743939972330682682139356133831518610788891124543297039099425916628385761807413195847113128308690935734092930174338582595986032233090542666739604525586844345056975520492257443660496006544411437890652349991531673002303084187066115156845913686845526023882100143993233918361478397426548197377923565227946434550914862512776175486714532351029974783830271779894234285897787097884618067863318159096209003299930105579647187905736784923446223922679378011780236371553819496322856853722626573707372681043363598724163475753528145878289026632466433989148587016647716657644324118469244047372081330810163549111932644199132624124451403279282134423911887673940977391196839654928832914265685362397470287711822864740937372096614131161441477066641292948189863361563673658650866434113102215578296720904962783203058359031349422240768291660659222510986900964760988164803700416691075598245761984173770301475046645690712245515249731365743991532533913596006369878842379357713031187628854703736094106326764192688254349325771223358522117541076021946990597183925857529753137311033558368870304906793794580238727533295956819409993290135139386508348069425441734300841074606030862656347115191476383688080331022953338896480902313017522687635751151117156030621576589603446977650006686022633808365500574473022537042489412018588852919875871237589282616594575774678028713376026091402709576427541763395779794080222704791005228498167331533845527334378466042043131340129867294594291938516877943709790538719232702408637939210106779430146885868260910609851173234039607478512642931054754191576534493757293095964657037157898459059368291382177831846043791904247509146820679396685130568985014731441132875846004677241796360876710999215101853088748305537894064220422633270339914670117162924692716815095065226697361746757582139848798563277553123012583111170070039291620438660600325837461682881472918563156875543164928566069598164635382874198685285244033859487858861571851999622467207352819607263454172675328027313948615535979508803583106619963977669052491242759170969173136245497368998274542713066903385869364424459799916806628225702623859431070170682203037349923170753383942163310580813699043088571719709476698877587513024077997865283386386323823013574511329282311064834097527311231594700177452257212365528222931046225416382106038059439540074850459933912456035332242643996429284294383336540240178299534273136637592864784391454292142562356427065950804300433340092522233420171112112220651552607558561810889217531375184644706068964627935727175562728403582909510260835462348692017941298598142666429416600498141569155387232440327800397685313625012407387642135393080901851834406822357513269044328539303888641541819059213849449610136235743844708227908438276935370431564127939259960028024218758893140460034161287189191720990163800881581455091988566060259193064865270346921143882042424975085352425700158962202253926647076882112083858345201810345551885748986162494552676784291942069240780598384661780750097084112513476181633591092560102238319316527731414343769801491191853122246303799899858418656377158728376312336680099933404579297933195796903658969333417258698063089977738615867475031704066714693876273915004427449391249902185398744017337764993551185546204501138480590941784390437500663679442478118274313548800378340448053014910014846346271513563924162788813642000224577408209460931628641686779784726354396494270097532701628609374789324628322715639895642679969583548066191941824521863468380250908278391441795719878920104772445620969545105363915070385549113939163213761831588514230375646421945139161668673117603263098127427927042975241853170827451598742970635208705460252324573429118415373989291209340892976817685275244297536074516164737905696771593393158062618550031470672588286971146211308091429980116564084068250906675278101086106725336618073234891272234664876304450232399248261434369638261642091006711181472568209027883688456031033857324453830639280936157509792350283283076875254701689118992402499880141219500356217006291478998500186444290444769758814328301975006630192280879583827980777630720122170056474066996046099857374929228994349323059139118212706273404947307729037467449436250618026895984761980900652449903377033871810492183642146041991590070825177833389664453286808355902002859030604602591212544793914740154690617638382690630772457962338844414874253995992914955343996148727177453715798323124366641780024927933106404772973945364099362823514218493097597654894547794378051459696393157560915706068296735865315849186422448485027809969679682943409420201791224794556526298046903746788886142690563630254335381782818110551354657822649514958779773888387449545705036699594406796849890722943899120242891164093006529264037747846115554723586878302290518754280439047614002050474440958943825882173421742361161196133836287777199178168047575404767867616083603776655725976555946943737681799131655764428045294093464327377759610413044846698372886086562586715929128275828140653787737897838123394838603247737017842107649391851482494599458196994607323560247234170202238282125909588857419567229170468992358690594817339733375043037741019302934605658936033105829944416831026143550469668129037813764497579828330754980136343398391441481925236401188039092749908589195553234956776099654771753920064197865506522096504472680042236601099377618003068089064135464915791813542785282991413042127289134577989518733331075302144256937883281300049095475329349369287975308984877639244429381203868804963100735433741583236077276645119804923687513274591423054116860151260391017343259698723671534630365186733894231328304273391763957992268231304253995098297625936335389001893697405273223444998189296635381573894966581497207063943899335069825366616486144114207577884316565168709639144629068387402430202312868853389188505041569874629139580096888857703455331635236207945719755178108376354289483863362527355750365778462374550610627795086977777999810133580965530156274365841412296163165188257584469402772565180202642077219838291219577954336985712080349603327012420978232726204407736206916572657494400316889171594206651898211723003299993706660875342009022721485093996671298074710976913735969262684589236325211028048741343374411591659356698190658498767925758393351568264048365160486567459600522653903551489777491846582746134062085004694793157700481669828067054478532588289254953552694938205153618230488797478382921327902913891774737836005117248725315694438150548710212560777222829847297331557639351719248882165850337845578041994192404538855697038745984278515915346938430285436465340762526444448086690925166204870639932916597127408278687971857084880006293453936655133053473096637404117709377584207365130282831585192372881592700086082089847960230434273199882683042500783421562634071410879301229195474405195731585194122488496064543409960015132327723613025435983475557921530450762968872899542294584240108763723306171830706466609394894003050978017970638944851112635717846170190196633200036615367554081382665448788556959549925181795487168401821162108685554811072544498674952720540527882255931596823293445153000251978483851710417527428725167331813451227424175127021959308085217997842568728234804770632090409793443214275037422389309957365939837708907673069828214606891365515610616239013466061457968068137369305860958889388273433698297855339624178304184009795552984040116128331810127819266976617306180331950493764150317781106630047350055658518508124612467909067149391323917042460700410484786410290600795979539355815018706688753207400811128524908876470317802459718382518100690620850024008944779526503166101021055391240777680351761937572955248629713141871197835862845011117661926687265030759410064717366314511644115390560783494166205091379209423404778407612120268035171474607258062405982650802483248255778584772813895879328646081030950799450756855631444244116325935454622660595308576156581152806325632294867621914884063270765252515613433714588710776873776984701974184440045700742368966665466773260730836439232390127033865742861185663894181413828352492720332146985429351813035922192810280985566413003604923733313406632581352876128954955837058434834820521511885863367896011987288862806161981589459751324385263573137430452898968818245923899157489938733256665130548239125128079735950080328542384014304599746574627379136217011450630648254526633285138661254637988484429282310749900924676757620599155239526183108157195281561772846044734776314671979325695432457346961529622861146783270167603482429030202615189235453360218675396306553740987560049722817492738451447666425548563090574379395919235840981656067872464712680505486942477894645740509651818881249179608632290650767992837333562746525118370865451367330556783315754406199960797667374229867135147953720896133323933668012005736488496093140983219134427369140605290266354467415144853186362364449806532004830296404212490529610170925746658233707608475959682028041527339529945984556259629554488381976275968666034039715635440195023512705552096161076152536788682301096988633407814196883649234277835693839779434093961204763307521518358080329004922502339160828265277083379544918215814254614995180812491183209806749334012968090070585149580001561774815627063080308092646415293965832171444911378307233416812763481462035723733268813706540461412581257584470316563388425768343158263631312744427388927466110659912628129459629198678137341783006872193649379716511364252439927650163028304598799637819843704365710961565303323749628546955915390150779422040540829386531254205258059326875195025459487390071055162560552563106343122929331347932626056468480484339685738357117800750868934254053808338204548352453124498002932661820302895935382714389201095295726422855523416242355967002630598355998318028713803410816840016374816438472997703949874765440498479104563710138775214148029468806939313853949165964339972738236575703578017191188959202458419532575310451295694044012584961330342721570086723227188453537913613493117517403428741295681381289398235344635597618426385422266895603908091370098249676130124764870612999312278578129053503412173375755702280659364329356284735353546377157499727478793834527778293724755707926793436808844711954172193585502040932609437255994773856445753075732117417041277487575529001500591355604389887342832250532308809688890184497883804891133447838224993527910767985736238951221373000545344741336372016314222153705606643033617112676005113088842122302630592876631103812090987617648912443322802760008427268209344417704406690312484185168324114367739496931442138830312276834100724341519575788526700877607275496142946667952170727215270012632498824267172440132416750792290752777694706813793832522770617137985996758393843625426910466659891957993642348199552849851487804469714891382336378955928413576765768395782242318557792082820637435887472806707446019408660330231590093816430501947870706589854960494182969610860189101977772702757583283236592919628151007054670269747108027412055601967286244815888987716457605928375081045931109218983801425593889915273805206970120750774325875355116416445044875220055430721273502280724397301519993006849923850486593042956395751845868598679490429817274555817042632276902160303327704596000170119705452318298127782417376819870193701543622078903018117933307534092376076067517039208658254747234927721375592612368724691835643267187245657077517521768487938115184594471949341031010885430856274483398644145125910136782682154251118672773406617681556406755773686881210738466367348496727911291535965009771979603085548632503697277792754208094945577012159414668211210854980473496581135712611786215832468786651889152779606609396750653712936377477522397261274749378482612296777160908339046250110126835674998668534915482330896727359066728741956528420850642336733803526218154591261063237444420645837457006036127385260724305513030411673484203755971767358680700664169715282867147285737709831100539779643776541680918649772096022491107852995611922083524441476819480975705670961020756665343952244792741974777694508962876689592762884770258809504981786365361449388614626373277079362677575732592582388426994726746010320004057765281177175573407912232056858536035871011072118435016426715029128624984429352130375476702206628276582452580101655031528687608215316769948465851564233317509772943482243292841357230106879390200292255889262748852701854712501022355498051259143955794746222501450302890814325380538339732410833156160950336315129535383577160369966699424262621043095335305450919047047816254456523773103578732285609092005136539382478686738503502055125620586018809881676843094685912772362075120054550705543193326279741595722417102664532253212792137637555393467195148605906355971041528912651311747944947335069087595406029787636689864774711703546068721157522578794137345317989165728397887839761867253620449337109345217877101110098711714095501305937013026181578959245477459708911980077043026193278353702172482905309203303428157681457596626723520833751285366232797278304941592653078663564583673406060592581382291316054548827761094303159410257023301258914460980433172359646356957247325401349913706147926371070641975032531587053731015968472250656477873957358463700795695487325151196934475734663339416876514700518481694749559236436440436699821159309186603348275537899268446284512677085354981021560911062549015431477494131793837685939471198326327835752501163037297401387535023170362816586345300118323355613791815424833646902006524234800668512240332931242683980819222353088269936072821212592794125989075654277598884083424138228290664501786088568201864703785237557749265606533077846053810767963605458422641900596337797607094900547540847639533999466701294791451114593684745212671383047518176177956305790124088307952862831642339477897742721724689930997890752802273167349136399985885739414192707698467323284889595837894508345516468873233033558361230584220967381986703008121878878253828167448308529425936680587114940364184265270557388062737856772971361038331645047478845871606112281801439531895377601578798268346307707447613403771208744072951149631006397443395036598369573450453933276491298229548590315862428725544079627272001835566540345736372191583682008941120570375280314424784719340924322552725713401145602817418805333674131315151038485189912174551452269271646717273086167827204490064395905686307626048349999178224180652397215681615636855886251214521904968238621320320370959342153374652896128653759997403437847168604336758952897443978906596105956982317676444074936803620051885761897970008338273028807849555412014302267634474963236208867987086737864806322682650909510948144912240005927131990948825465989979327221626073492608685534803163067753316842212725809620511727494470531570955871297582503857712144250146924268332031743949232446552486342740513371792869736245917145444936735575740718859600623072130025536595670320480359468689312923780223271794968293819091726234265815432365330416995502903330671532739893157056064900912680940052789526750000747731306524941549220448314205436770121986286970299563557027976699752898264464067601976177429132861503590006909852027266493795563698337811931006179536671528739260130281114226640098234394704973234188048461161153538313638428911680502611312372186956079374151944654856454514415767656021233759773558365468988027222745199338577270974240783688867824224316320262476966097653484271297647509980241220425109827783467817762623048841675018416641843715772314546227682352910831450084629725834382135938229063978991901174556397016758129549709163677306469217323015287807204921696272691745292509623799180445747678934017583777816387584850175775062700121364592333392337818767370242277358695517739919979115423709454657748434411640985999749142844528720300513527461723370630871576823413585426848510395748328639967280160908585038892227345902794758521219135264760595741288988306437162975667855137605025334928940130523806953053241370915272709311693535288599836121787538935066153758131986737848780208449227306461015467165924981797989134922702186802274110301045124673328777484526393315971577410841464816543874569207484796927701090784750611180303031356778274189418617188410065537687770221102602278948557976650276489278837785457030807079103075973527051809574120852354514276944836504361473338188545454418371239683437761104919289959481510212956267651530763674056125038050242957231373765506101029381494343605161655847119954042890630759217250814575392762415824176176583799396841299530438527259284961936936402740911483849899723689265434175151381272972657823296558473368055569790235391604683592533270345586119493459739920201797387789271711881890601531615315861091038314515153589750392462498227098259887103532655953825340872578536347754580258590276425136381468871495516928410029503425251176701234228826551330168876866940107036092422620206025513939646147295042356168386361442911477061658786801309193838232625381771072858448925010917028048691282966359677231935934183744434053237215589550490362983024239886665984668381056424387583976728406060930352146988719314575722655563431432474905931833469096440261592520128536349400952665123882666194333800566535020983765836859777357640108199453320563428077431355254678638584029723148989981997933078636370479995575949849939646180211153963797282152713863494992420307093920878415041013137661182291045749554155190487758403112901469957260632925663813186172122793461215490475575953545537497656904461752981058279138070639875667885881576712246183932801263949228119418505569832239859974666622181495080837724767476215111215925357724133242745520405369947505318961429574241089393548079393561108792193249909686034705153786072859328418110482293174900925646150924653339107409754655162086279508219311207276901687687919301798861332843789095907518388212038287833509869325992210989690745635120678729757463864304517085983174041597862038444756680001091761533631193320146321118469148911782491888188726438022335103582773878952824866206573017467265728363706997382731406814087591157205997985040081963269409953285009192639300865050056428292893694305378889737921264902018050972075454374479406774889582334435466564147650257811947898077528552535143137950962141959536768524743826412832027321904771245171489030830586157770542423163554098952239400837260070978938433039349847156350648027177661456912798976555018377578385885546852933528231077763004407824413352590506148278094224803767591131768623166103687709132646737702668858647337067013456269979613293570115636110060685746790835248918203451985098332382855044472252761628185613724543922195058130231859400703118413296411456494648931808891420737829072599695946775563328530143121329202072220020607811370040194906695995803534696583594223958502090679003844721914894199549542475148867180011455144482224905306008727066298570369806095077804267200095977408256593324787772758264147695251476130322080983094020587930968506682721843588920353339056115292070235157647917543214265029934746717286831405104835770916615967440973629132624777244643790206423678291259779819801135857956816552158863877446793316306606348630734905943520791075752869071627572626383567342117933928476562846294981662555485614266407904147819393746168917018638445890288717762523840247675820732376532372381556976732018399991517794472012298652341587851834858709594435754167568538333498182415586372708900584519954116941537814276018542685730845811486653211119739937731448982696405559187081168345048825019574584367433858318067626684417651748822724365190020378684144948170041018323069543215230960140734736935432206762267974591538777836675816183302457315954540992570228687814621164391634230332010017096828436442640518119261709234647398319799502132017767540368805938342610861287147114485654860186866498332427952770289209659456356497895138724910856436256523619505706647613535572946434083268508758168631690431587149824483271310841881754620537035314896915711774857787249998754297721681794866521551875036924605997360635968972890169396574423409223987889501813502682817002459860274435807947459606420463750309153935497469139291597540163884233174004715722960419545926207979291878669650539909331321138066654231574340239455993015479257025305875320514469199561332769517202417338569768400732180624963387274020141415817741384859278742087696809314234667131921689569992308576878393750766378064863908788785190440106680396560642874818056535778032133911366681794086745666450205223276176682850644587100891298276249277664337076585618994660064312924764943028093625013296136769050968181845378737012875626646960009887230675109213465832466545942922779356176330059170234046297840648835452447613959163074013152376267627214251263156320956114669430539253717185234541392604992118347787450911399434074891733476887777980514907394577922433874241324729324971948124570800082202833617985230336698863745564182195503103571850689977540633976251518652921947467327259868887914859140778053430564432195924176113667550417005386747824342918832751805275063193593872197759564890261489854813863551123264909014664028867121857828715845705931116522355514184765259834116437160424340906265348911826813563495342943772627633477781032555988155528426208677036895615911946712694624340170708492280897148050403869869220386247593112333258419979142011231660906502946738805016821204154118234524313383547433664419371335804927762392761124489460435835464219201346972779757982330017822105157748018098299442241419123610035321846236515293482985577862870777493974335709204634845211134992146767342509093541492514829900001682694477159913923765427449140582380841405760677907240241587702989730894164766967596053438839241906504265132139683532015355456392137038594456089114819575197173529150031363372943713874473353996151175627970159536418210985804276481975733767191623603434268260298829006477610180486883646734593750182329776527186601041407548414499255543335321493318772936345125267680145820989542988248349147641347140397614388865807387194206396050336353022485519159307454104070137972675851541152219586431396487821289253441806783313557302701638530714516444001636995104353088755103979378968051532865876923555716884284575402954988332268143657724898551159137740543552486003829227832699765169394629736840257919152936439563630670057606160076415902132444690027568898624886706317183027639592834429577264679118383962616754853456771955931843584236375996012566011005411760074724439171363677951593868529928927445130903300921749168251635498980946690096760651014185842218567205921233731066041936986180040021815800635046529649130730806310114099637234452117769060264307598675522398539504043608299254018731861475597025529649565893671004591607517744194126302116059642265528358071898274059084550257352357321118536021239936356929008145775617506645656563507362957738469100816106019710922282729428685941564267163578675272913971300838043963534853391743634596743727800885138110399089929925801719507351147530878292461856544196260147566474791875603520721140114788112514734879979563592260953611253203523874005476707929594214330402254517990149349687746397361648843661595811475429482428489232212171465526167207888381709279500988116851527878219159611916601433072963050573995480334853987484199726880270765831547428427153259738181851663674742108123194251361325002526039940324704651257060574377942650503090785305524486594741371307632914716564970276622458111624095562696695043705445686732935386064611599979674949174430741035536543338906480874309135253450446886942339638328936751375614238689927056180266129994305943733334975174667438679385860917537759759727111619385940607631443965275001712538259244694697099827424123680156388150365203444099873793684625870157807343066901409128949243742262695245213729041087186195410613694140169660059366860839545283562368733865468287121628625120169717379049789806061406357524105351744513395452599469661102613541436441144987317469360496277304626499978369881749660909750564418553163861302732349636065102538421953936850929778175505087752339526961192117933168882632755303624123359972550256479078328439304593293091683325562311825020605713277086117550256569607871463069292011728342744418146212412435485360739121033020415903043011535652118200751309582717293465362603904549804149246132974327330225779410236521042253342031540176394093367431249169476633785194388544815959915031615338039075080752744607273540520106566952496445649404995923919297880871516955365772718201899785845327127811967157997455718974170278227733836308356016996949978198495179100881385046671135892979676668721185187466726475941269168626491748413364058632813787734088871745939665181621972978272693618015760724288091664484266152889884869966262739098551921702034627956629592410606498541950247291952762772483686436881093313273379538566521009621071506738219740931329081574913635603104846902104436189487401373577971927086220842565034980242853591164715338801045865006201912005627847011319890986805393652624789708466098414927826044766332777640399566584155715879001358618698327100656063483928794515497555385503255300639950511701548369103239820456446318851639400492180452723451618253579338934738293292640093427112754219797652505525201820730495879482776624837447342180548993334201431575910504314214309683362589406464194364862208999509333898463929149602681592360608894890376177464848393567041660257170267556825348259329329619939605161570982843018369177426642881032909468914557146624846459320017196209479155550193835385971684583101337154389781482352791846824679955965958858146913956488690087702425404271938759718225002545541860135720630545451203784187613192894393539557797167941990160928850246272128792971764125020541586885543149791005091876256461376997418772496476188879506407504529488398268487080711909042670533201903405673371539891064406799019552506900673080038976094177042278539962061142730804091495631209601849764672049044435528329318803992144424397394615786584267220682910488504051840515890062456244861492333863255973098819574902901019221862947605973197947539853565410062703436732668857997705534796724502677141240697479839053806202828768468459634701179003109888709050205790332292085652261757866332966568148693479999283716478290236850846092181126074964532288965505851132108712358236574384216596434135904442122868139937899438055747118291230035032624273545074698338107469775533730274421618054581054497894555259143549111684569444099695802023410893927922042661209208405948642401846373441259770571394908211835326767526527790933033992850402926782465133121920052857253914317452652687854191411989064951449073078410879082544457300179770568364308143961877910685575891955073174409763429995202076304623226397587309038484689856981575543116043541798653974034010123396943057006557262769943932132184741363584117426041050197051000869498448360427644971382785350239477859179753818937803154582421158572198279211160798706903516427111058865927077451724835252390602528320050866570883092304396188176551391706161930052922344279534340754599397642184172610332192999488010925958318299720947984963285348797601780041617571046834010417573505357475606431940959019834833763723107260656780401447464514454990701356292313417094997236496179718387440840805511339277667088798811137483150210310084807827114961497047218384276219144496465726920657920988062337088066150670955748096401325563183701971447108301279122678274292402293902416659696894301115600409864444804300085617160144851492945228365865792257377096642625473604310867786293307566078157138475019367160842444907817867537091915346540839456766277184490801143415010541224367920578896524301483069089762743810482744585331017371818008405433254056426245376715790153481989735322667783722639296486233775603144918789941766965614743925214204627837488938498606349267897513760404903093301191950437688306695240228383572426455501360407090791205736780737148056445012918182531059022022824160169859243944357619080846228361998880589093055959713718049120731491797034829291329319197904151490476403892699364576869208390127348493982891332429139948404627788717377695577738656189310928590079878456841585132758344629082516613355124488872227800406456707707383672946889908747738474650182295579644775871440981801549947882024323296402549502097116828540704442485767641010339183457487554134538975530045925791173947954587390285646761838700069283565713584313445295911439618697977883390238825572918548000465078946577506768665203724431174537424845332204843319221915849575132191369017429095893361263035833091885730475110869831612394469162979157974179007023408058993336486484859190105066117855860883458511121859832392307728720102925557266143094605322461606185281497682855560719968371884146553190740899828047757542840887521496111194787613785160634109436213090076311167651024127334270139958299603270484162139262280859029474616608102433504680245478642053231088330909462663958942060111103338510620493233848754877549391014741300203836076160519690797098014091929950578837160698191532978691941986727357818633266888540387803095172237269871186329636550679430393141240402306224585446344016858538141268605656296038357954754548323250153514723902732356620415827391018969025490567865824385553111753902399076461225084586689757692877028984908814926419212793925924548772022823884263898035664544715712186368800701296392977863864771536535969141591566572450092538793234938725794134008600897752851997404332355405230179794523044785080870695578234568362826083795623242076241559033416079816113105243664842830782000716332440861778182827669570066994600625883109700289644274255109671245492039214768329789540055218785276841783148371929090638308862182922189991070539697934790169183581918579429694020922402790982758334652118828980198697761982598071827339233835485333533315272480367906059706896765281340791619478204956499474952684550932608725253425910326924523260976345738327573338795201274540720197088825254413295277128860391958005945777289246682388656729803874753312533707565645458192876909670247654108652969408745698229199688875781076224726717692919479827348678747144362167107304006986403843624079490502040908383706530753622464668722788555997795469850302400669878888223553376662413788611909895368347895778535177036095591916151173552729333844750123157988337729766130464950374215221615647882029728354912086327663027407585155787883138944861091826243673542080635196329120350303029138709180258472547701668946634856222134783392263342760924900916979790075962689091605030529012045143812139470504575451789996638946839293603210866552037799467465799094394911775340325347881447083181533184496170863046037320288912626510799247540707541713361078076689454383611868278855864130241140632024901503767282327266126322590313508122764035794347920007514110643596836334815252939681910805658733162082285544274078791085710726193002889180229759653121963429876331227733224510369511302239253104514849788870481344355265057608280108138968509854917402112819315987732467558850085182837315261559320587540147870945339273760739498106546940539013877610261720511000219721371807960926088114725944085954681798249205712177783107310502148125270728001288851562878424048924375234320519560091266352004467147912498714207082238200171576045327819845615965769430874550824240421415691177297126898974071424227772607215507180569813014154359817376813361794130479759635839990809576367080735080884472505229083682593355666053340659370105364999335961278643749801402842967244240828826613726917257499574398954536276225533628197465895453634531177868213764721948941628173045798290160056984165949863936278925566307997627216057399995401095558919265721633793142697687870757092043863098574311272458720054498128597890215689986913816848699082933688358398511032753992499019725915329533348491229212957487005929740374911474202435760687696479449045755130286963006119125977960412249159097674068189210828528945806476992626594399107182648548194074310747985408575914806002116881891155715937687123210075246928854066676109952093366047073121421960181130482070880246165226729666581148262242434416303748075433010869417510136299603962577153390727343150646360729026594313979110588194051300524209548715443676401798779006487096499211263538006301625674834900113383691920576420471669479183561472203640496420502934808189673250378419390590591401054943098611276592327798174122467271877172522792914011413093609499063140499358478931049727936477465971531696114003138698636476223540616819744137031364736835322150755248578015747560494826047521529679100544708967074082619263024138312241524728546044138508535769865228594531287937910728572688012350412995369181489827337052972511496828219529431484643574158077875511879459754762717754450044583626757068440766253256051228595444790317443529445856308387541467281852852065981784250008986634532043555237328173727376318858564547721547178754201228293511064391402644067317066762349285094814589199804121666688599787807932480970109472319464969561835544522459546651288594736775760842453671393160250339495457268207317329583680986204030623214182043122818165514074419163334383361941469798284330416993760543482518861241843718699201987239438983564225883666625148696948425098475306571624266720893051081565620773401317662438236957798095382457123184046864880934223558038977458972928696436162858022281329539796156368426176933367995441802364872211179057758176475586010885967784145626191063615996800283567221752936461559763514009077395497065852282116394997902919970279952925128256311469449187409075677711565551973400523542389929440409936558902609144020552729784164692283154362113297410791642378626336013935060291367696294799553037544514938350706449830585221873210069349024249385929892957066024727511613882476714952636589792877947125302023425210460575498190267206425126336440283561830644104741173677508109195312317183162671585340500195870529242525791057844150931071961048512992155525780337920081332363911364617559397275175950954117344811692350557278650406265556051693617277993136353179907246624037684770498842690104555986471225260595378927910797578131524720020084250873710631657680852993194969006378033517890106153685341183357767763407387746504319594621243118391630560483694703450010057388814017066932854584673998088238536070515730298640028091118934871900905321290495499963680440402935613176384044953710275045543815116847720800227444298365182333967485091218862909560252041300664824362175216891699060336974866199683505782132881550999726465275410159474500287785852742818585670376997041956341678756599939120122309129316398680803705799906208701818086964899716908632581471837857882251699430615661498109341390212944197285410870840061037034397197682000975087400127814234152405254111552603104538522653842870049973398716880116031375035215362947672791734147946004972489537857301197151317771267867237224387938997824138983861015537693576117734098888597853384435171699692554763000665171107616913175099517323822855517092736900452042941889275003528460767258072885773875482890310828493216208722219266587702718736005606487296007530302385228504008822003930703911824154204437414856706237882014793200625164911315676417750686341783968249462347655980655036671985544968361294739190552507181358250358443020585136531601626113643153990313598674865044958034097604456016244445806467223570101512285275381847180012668558958435709085850269196277581195587128864131801744095042035094107505085849012483019278253010636397545065237912336558254979254137242927968395134844856282204611741717048780276192577900532173918365881865121710348401192804552804589680763215948202312954619590619093447216132595332826325682095128985797038867915211671071529978143152144313561072249989107061878316865332021740051065855751652259574318729853015781804574775926594745182794261688621280375058956497658689083245189819162241325006198748472538873119152787908144596170082315744612164598239969902329374002451308327104687283557360952323034140042793985928581027598350367150631565083292675458019441053973137791702778079538338628510122635954964794735517409766038742407028698192432647178745842009619390100760492302455708524945064504438814308900406945113171483456044218750431069874628039530853305187557402026684930284986323822877424937746469019700933864917462194651715295123640629474046918497317256116855806493054367278985913338738988188789492212856375934670452671747263931239717702342617579075605946870867405418321201037730298826150044727194540201205431135108298824080878046900952651476155502637008299780061801165882137451810153699475742042528325586736118330830610711611791418448909987020420445356118226794705300896769990036281899457852782583507628584202083750880229543671033866974002031123548447122276015159543432123120963138856670467630825532965016885537934982289962592162606452640219298733518584963576541524147533183537352816485873514875027600233477930940669194202075429013029150868055724832921740773725445875330712568752377380174340573172983600589812881638973803953402593981215001713109815909037437380761924702649420751220679507631719386917083666069065579191544327677378238620619918914735139513442898039313847844446944519523832623378883026853414674105732020391527301045593366201340478064153648017823965114178523468602596024156884681504028971757552643030069025951998732848199995524205820753256640302031152058370550545205845224771332913395569505404732490826679506426994083528576932278275955030709318059507223962459373258897043120750510904488474852503258955041097705792572989842268446959392798228486643571060988252612366779557224562412475142677309260104916354078595284118849772796537546847676493523568900404211865687056966642798368012216366686686728177974558490173367691597259465844788980989736104357982841945746209137935354879584871713886676348002065499399672438108670525141787287867866410657645231671826583159912014145791543915451278263940775935638630471235158690505470813242887028811829948419127416134433087051076086180938215760275596005640032755695462752283320975601904294134717274199334124590750702407241070019701613284714539498069826105864790062788402712484299516951934595244488684642141358816996107586440768632492492623829904432489241035421672405118742234376859493150411865697577235428596063698601528171377589763361435689677388755598839787571033410850088814475045608492300912500657032018385291977102172131156623113682028911253931517339657951126958352394621323370913353776086106016933530812799811752981624983056579054971636923829002677928380459740900637461369427949134914824343523808902713836216765561358377352517117511635940740329654060964662602508220156897602089520397962435552301404669390287709898184831817503904943307734918728549684350085323192843764433075476159586922408409313272696793480978291869763948167434787915187849612879394963283094751746678063278042339105487675796427383786617014128888654522004469578107901466719011391026459060951088593950131974779272459951331414676228719990040268676080441144584273487360427447497747310883707351556432962844763847725047268338786080772729736662024440464812177319210111810259683940071481268380565113428854358332334822299173858228839843045472717833927561080696396839217333348560993348142413210816298293967183796583122762080536819636078528651082949734927560369366668167420832921701595485483981803275283710889869629745500108967876341804299137979714577025879554476572759610759448998141216005155220245832085481252821208278316125402820445986337622650741218742893660980487922287702192571175125507799261961047594498639067693409425256216056541504941279306389228551064665388512725948853997480538921932878431366128463948157922730541888370487958237459208377944529870419285783364176089754861664690487664947990450471035087920764945943043964465095404353352883499672417942117943099843627268008816406346852446405570657927415982144053237095588632464466870570156787095544259666834646930486078394730342188530361439507146437985132231164774162977568104239567971485862823205815717448275861982535030504290264540410113051699050834879444024309126729030116610952114735506472508879278337403744160074021971265045946969270789564887062865686740946167589934060771776593546486989535792576292795490051677233229202522684274328559249378040368267962194701853854858380929449503746047817962457066481488161025600458677959443245370733850497807023286768152368659450288013670363139372274776825935519961471279537184134909426458323072165113587723785988549400826984139054028057926911430624034897281997224336719890516232565124301974986841701796522992210596285531027031535653758645938537424571705159370584742455394529251816577643310719621591443640787948039752243046653578465389054739457961153728664474432521232488921920291848940815256159621000777742342710609087351854750292125505353982371421038017075664659880803921378093260100422044598667054843668616866032727699675028647261952432986469551522814751128634900097819309229136006832654552612080243459015432926361913011918455355608218588633454315870744241368455268741120868902852297954029720928673883584033425325258587458643743071477328444611876377579612458428504137573560947126508048796382335356001720275262620553939384820749222943326523831868924461165244630748406818824100953943423749239073686855202205285801150354666293159696450865168518666567570723985009507719683850075724060121201250364951642877800386745432780615005852059293491463742867416574666070693801096181358558568709535318685689542428868797367080717578362678993658850561887149444857145500136758236963547058408280468223077109442997249789496656519617871268545571831231825953798575048592289308131048131594132329487421114628267897112880186161005102764735575624722931797353418652509813965125152934763101639530258697355261897789264583651967335098448787881664154120164664055213412518459981013035999910686546005503481798733839845565677560123950714399002317414888926753547911145751775396374583388650883962346625773242116209433693261927947708169031186421707611759222169882264855975326205397390047848481343497615904284148835717350659616770364574047714742885482297072314861524087127150382925162042823265540187039721060079651970748852576022629551638858439591428889695119586798419000224081016062032852823747919875118171837208334195538473838938784242451662288962447194281694374752024142597394737436063322720001594547603052978354290575189179093963071727430162856554063839624311666624151297994265824051083376305741694386155690050734024260813013051193830585468433386586398236945476864638323876079430063284863824079791878049461072736592868050972427258950558886892783303876180495489779402490687097132144151289860223325219306187504714759551164012722381388270935267210956179766949834235151005101612520555485857477112164518639314688198842208546936087215906038563586966269731440129325650895554676738246081704480360729065855861169568467164825194783631488609958598653398508670772079277888379796966741024718901225519584932705260260454080294056290818078574739224732261823631771391920515433185139591522372329795522232174393688570496910416114642064545798645839602943684413949818481181465589489604097570692263042542316369866351433113444614110002207718709454840285559047498999826114691015279224853262198082457806168340368228799693635138381256757721635855147209628121426395253507191630681711912379958341048667959793927462329814918880950371653933694728006590869207197947500547909339270350334198724823838212722986411574102313683434364845400011881958487815644103993457586418339543066273264614070257921788555936901964868900339424705288144055695709072084374847909017524571864344868968758289676824885008896663499805237650970399586592123875923268823533221751571382331439936007468287470026157918001454146252958118367768711587214361030564845843334463668473741535237296224199098713464681745976302063421319874295903873416753991217728514599839866598703324158562447601480505441457094244614850113362450188561958973216604320522448902225730180608232470652198082963929952093848017519106615300203510814766431794104806603894977101293453860623737830480704189466839380636603933503775110616255762817217191293563862199539719055673783362407559060306923358650146480925186931842526637919146641808476907805052475959946491128880463240775359297155239752256475614727760537502184688911013621034980838726516008658706651397620975968753777800464208853150084922833608438081056417310411105473643597872081895459518454584322160346516091256542349413549805533542574624441109088520766698605625791622758219865555485174806323801787872939276807975285221904991333393328714026719107625102699212765349307523632386095649750860694125321037269374331647172079018634498021329803069427545194595224909228804509170427194717124885519943215094879244298673617151936789588303308940165707500978317283851528263005458490734438376774871651345480803299028395698912223462762818560007825404805223352114736165831369952370687379209502387296075190575194158390321130208094083190346580991184350408008614406890388409073348062387045324180833150552133472599135187044476239350853643342718794383829149268057843813316784269410066406978225655180854639303394754670389715232956145278235736065702148341066758570336476699069315364328217814253958016240985598112138684987072943830587110036795267534284967713720837746277124970612414713194954383770590977361987816510789188315137990366463352115107824159633400174890826076096637060654893220207319948884424166409776092087892186852046219113824158423134613152697540470731023169415364856745433396637198037552578331647439609452405258316963701536585523389756399570052591163803177452107613243783600079262387004104039089793555481979218139483272029302561166212950564686619660136834619919265063727945010493120151600042040738984017520925853442177531250252617467869837904487485581143783325005882190754009802215734367495835557085529567089032133412543907127273517076439350065518906002727887105015587353312799655530101067588181464163899855852456953672317610984014869058117692924943165956019912472109444884009702169356028546218080752416148536900300112689669249150138781820660435523377830770877074316842147205046470198291695383709636548637266797209728347090862117869354475900844664564006339303049846639131692960770848051317714769311966335828754110838824235319395998052116196810710256875676431078757295478927699460316042758946255204651205553473905577061477598833657566506618701063264661770111637705134508607263487669241939688572725638437881165464024428931151463506330202387707044328659550462267536942035916757012730476721350680407297334625354264815912400703125219892290114986498141562221515808447782941053924869792814013184118331073580227377382084763203674131017710041245216253281221727055580692668974832567725759102111497869957917243379352746791409325754067622634291773147281614756134778429128136561184342728175591145072936156939391632752500469152862346627695931349745596142756263495800407306193140672851770395641885360777676790930794568059291879882986312279831517071660676366320504785812178251576785950539411910722785173460231247820145477051667061951887089881324685035656300803821232651040235843589731571154518496771588417628072613184118832207319355365087509994183592108631246292778581479395106171959847836313987517324076383629518071442695908838246486793697479064328711489024287480852295275935663640883077217459485730275484894345858073555241118163591860112916012562224764766341447601784386517026277506823924436660166145520131211068759628497179995495731673947845140151007465901637826478455795175141145097278082491683244034750760582783390468152056293739707211622202338119859679953023382478174474632171005743393932331163751846583068751046510866516901796097814441191561539712764328100934088542439686681040323318642544216162004168479649623823035059754528290480532448177389015555551952847585459026600127055976043605660678300473323515732503193499729521456477909478998226638845407582667260297746858438224147478707794612390409148559782287416320748963022206593311680977877538818549677043596382632283712926882727304701762297795982890278774532248477491022926513804451454318590720743956874838039990121919019093940933024004292470184670015745264421551787304053682481992225312232160109061950908867346334396423756168526419094564334301178945313458143583516246328669682354450501970691539681676229572017024668106762868555194974909151518016293702334005832055622323065621859932622305894770101642397817390550776729343280407096670930253037005001862370488820420413206374598541582443338837816075454378627097609367623986022907167174722310091164252773534419926543303601265569703787941699487953389788072464895484887430298927330684192413014137003418049864855195344549179658844762911159106735129227095220188710030209504288249309736667412974321165676995666567434773839137143624708703922255802975726351227966581889389309768415546431522078167488072285484026769251843598189775503478484110597127718246879766258852656962182394701564949979757013396833128505507291888302099696950283737896928445537925008248423464713040548790995378815590705456586871315537709401140252078109091054880951802356446168765381973027938007613760677186514816382753646410267305044943333319757538476119271483646675466673884521833939724854311899804347282707470184917017977107497623571670392055823861496149276622014907704587025803982487065232254309164432163872980893970494535275202800535059980056159124630054673298774365952365185169124623069966893991547716816728890950851040286413290674780085147944346345024933626972152924884479868353631441348572877102334298023570862895976027382230412256875830090825539611496371950484930556206622588292338669772099301146147664006969953868604486019230177398881470224981349604881066620778085816140304057367128600079831429628788802975139511034381313245694572980731785504203908825093066552198703490622498781306039641702823248505499638137723505044939418025456485777945510920876298061902355467282936277382348604506347794218820246132102275067817372310133393180510415669837742459874703446104017484248600345530802717676905143042437640403340697722316800175176940095119967005617420872903781360942374859467683979190036202464397209976239229258651330207802811244778999410681973471284882638749456654204767525782555188036003382754501863264530031147692199955302737397376267427563789818627088508563870757963477737918401124192188984594303931052614343026644578346397515842547709711134834631990965876019238283356867599409502600956629310590758988256693264094309238212067172971172030316082304679306985640873810304480669667124602468465840512525469337253789357092054632420063596204992873163164665659801415389540583230355736308268576629541501848580964721147419364087407257161811846340374470590224155268965497342207623739308736055993169008209324479120383681881263459293841453066453958042854112771375273304902470633316477755944873892775860591254314179034151718349526788132040349513747047243086425373897069584799648330643757649111079502349912097965104574252220179036443008704783157285159063531999457698904760458517004394976300711755985324858758583005427288449314094607070403914510740743638875819122538068120473677047088407457656286436450635203713295922060207406743336488245835205557261918684004946857538138899471230105669786848778698728081207897614690380073362318205960106678684872692443789081872893873815957267983564396264220253034565088344281983982414998737373942856967028928974879813593456421637104046716651894003105871867891998568481369157287634306621307637081926702710655778417848099384391993602583482574014071578991163281398096519757245830202202192586579870140162149305095795196236230093049883868098952520257539974958421933313030051064255351391753499617661096159890378661377286960079825145523308666156571292620455647975428161157218657668129966973480636876432397302155734447695585208710831285405678008779432705844388211575401436660277008598264628930163031275333165502624422178853452353300255043766342522220526653345523273063796812614188791401586509202694662993035538157997172340712230207686600763769129772563366771258207959895435016453785471994021391940479596138388871130740296085620475645050129976073308405627327688349094106524670314942278271210314676356330826417408934054920907580458667587728589539082245430990231031634041696189761601799917914331414921920028872880186544009642699534480766177693103139395807217452046141438710506984380629603238922755793536597183301899051754797265905386923599426044257141543514232329340742681622191510948698188805759774838982419718874074839070834770041614749391238609692952181090698364368633921008150609740708074151851032753909115752609326085886795727139655311262977269242896916448097365367832145165368294441300749219490742345208246927910075935514832721458828336535446520796609014888168429209359416033273386942526793988551725148059302588332552533585549123281313483551680097742197263328645566934160133474419772387173694013974015106025874964393139281546957739169878700848485724195453285710325249242507335444927523882272330321010750440999496638139531026399673706302293670009601283674446908576331212685185571653665606328219283631302361625493666253566503188908629750221203662678323875558442254564056167534274191912730545646053506626090729221390017492761712585227662180220819250523850856661854856059538861225405446512553289273721107740068317319002507309742255582682172395269115839238808471562451174569302518111497775240678633902803682544042320904058035325387662468623851939281025609304094772198618842266906138932865283935993206798463806806967163220748077692211928523121291730440434008017279209746960565491560152970975469766934938809784200816211719729360602265755820904512722225777822834307144538964993822620746285903202381670134197297330793937543557715099656976755771875146383327767978020162007296565211849187315694303371975363638063097295601276466242848459224900078123487928769133497703642772759008496358467148406197691239176426079143443854599673716185879086424991785423427098087930060527887287081735589108313828984095039457476412437704165473056354276340102300124357298192359184707010561597323562103854477259741718721927650320211071723462735978095999477322404144220095928876047934650543884877093611923394456912190087103840309540758179070550467216830659866862617613281281588918728062867869469230545601553343693494115546308311453452564000242136623026124927174015433412393337447668127244462601057989086837826747365668886310446779891272508917521129630208519646758367367945844773777517488946117275758471140245310269663502563405608319245428311064556494309925310710080893275568492572568785884371903856387306559036340683003047649029459742788121972748164964879814572766771722925148519699349937901182557517611066069805911618580011754397726486483380564415591492404350696491557998353393693926528992484942091904092938847706642686096807338013674036831939385849502411738707180529096020041383334599034600583281947400250386357512053459888589399611488420689811033257088971616160779168438216351735732296722570898207693439861133307689665492269020005381862786290222970739983188213546978247030128605430960825187572280568463458424025962002629264708138357106457692573132472262570067009011266324699058895175254235363280490057898631724147644423939020259017971957328697385538983691871061680178514148674585317229363609405847399420747066680945100692714148911465565489815079892861264344553706689815225945159140945678139852902583480270138688213567890509041257379036181895059676594185746139893770748691600792875311994258979505441859095361310132753479918491061364635663790871191560605842856729065196147914993198981582772441945852119786904130293300038438633329850927820043529814879113467962662050152742191735518008925072121452456034278423525582843466873749716702539445983405800765781583687851756080734604017988148814768870612211063196227553040584890033587969836372806636838558180996512177500421927077427875658559725983366927957106687782584222061795094102220639834582216012482262254793506014092677772899658356376374077964402307768707139664321629893859450912272253290779718747819391448638757766745491842176200472896339481366922660659660586927270013209544729712891690041821420778060933813864517011456872235834311322220551419108473475249105437488266225688765440388457955821447423704134106845646761879637859449501872125759782063826905244046088303820950415601715656542395996765454955974938854001350447856594141254718075069509724129072074348768384826791548356861627625954833091582648297672648743061973095505594344017577357556063069546489288318524733583655153551353202666956129567017771009238424676881279637481618933099355090636772985434022747819751793820362683884536124496881091244998678141464174882937700808807278452266149437999124721678514599895984395204775964489969074853132428485773546768954785988329169604287157947256151000812557331323387296575664246441835467654067149827936206320647093688644440016010148102622690495335163628695516366279650012601405833880924782648660842225087724589849560653827304881325587002247935268786414799472429335775304083988948093273354214212479192423326516747037831895054398808774145016529772571248990531807043158625073270591564846607453104390833626111370777278083120292152386751381772500909977632783840666948739058712787635713295546589768965364096306170491950957027151089254395874798919475595275213017777398079611049172274089556885953347953114281531476983622785066505420994118468438199763795548309536816249071995714230616964146831542746018121783446106168991671035242865988067294019430119461805197909604032117781999277383893230583979015413838167505819799955068161557075628662421246442607695176325871604282466075464236117533916198453677858627020032970225270327338352889424282151799560937879380505784401041735281954728741409490105575903440075940640309532487122304701145443718442974882564617395321888804311775902274714556559640224679564729212879345535738091267523161131875034532864947477529895153365551711689942353622786298903229109372822254003008872758135819549015734690813215992614381214072934354812957113826905746124250112936294609722849328621112983704647957337414798675028148045498443060320271804630528374157829979058855043452853683315414534946594297247430731249558318707416332337546971429322614283898497083193236603487420366226318968077964850995412584851260368920754491847240403341348691028178442090810721119829209772813152515437805882935378348192238111530632653753972270501869017252693632244352275210004836959836263686956424060403425555951991178638453243166881384215469972901101850991110010764313861627285210699414528553994993936424256236429539940593265940288111840363894408656557084543189054039629977515162730342813324131627748605079953748389755144432830401423889470887075061021061921249990233931237077059322293424382172143989397071622127674978090059856797675263639514275534901272669986015087759893288415980488463906466542654062723155150596770967736877189637628398603267368525513885886258880681837769130475484198983349074620002445203374973245270590175942915324944894260323105177061708370930757232833667201999150534010234933109323056378964636470817180693239795781121914420095478053144117596550741878916728749513472702198326999150783989505416217678233905474616709547177896270132943198477078279198005608089841215609517953927053733060999082567235229648272583741962808120187841596723111505138628184598282763865744614587871877322122247207669280411763305020729426564066631263844153753168039547342770550893039107468034175894010796326201199771051011411469580195954313639261893017384639451458726604129770287164240907920189935408393635342038801241095453330353693393351592153329901471923180180829712222642167717592960551723597809052330717474033221408211749937891171026790787697874017985798979475740972468322931107168982236415854254088204516261167355694536897630425904375274747196709167938904009278760968794844684633682289892013019894603940899944070217948031046909794858555038727325488239582111525680578626193192527235500256596156193561035888653127104397873698392836012895739427095233913124983546137011770200080469076238764474287289787452504125194978334151793649697182575877548735610078959629829036954494285597215839805725942527110132988658494368376503496481850430021758162041596548580787075391035847730737643479771708985386239297917444343908405856764064786482501085327795868412652076710827959064345731601020104285590252198403898242056435653873496349053412641893930744760351167803537310979602237126333634171980933391924994727996892335916491867564209016044834882202201426646879614106102538308698274851453416883693766371800755392482285409027983259582457093812547943587930470722905357072048178254916253984231442273164698383703847113058653496362774066795886530243566110786267859241424075308974745556014340537587316238185680339127998435998203723503751219579497560699833745439711057324148948375356316455772651249109780729510828640971043159545194339942666672975380003509804455213911658304942030200588932697770411707936220076326064853714685171694287526496035090723940099166624543107859519713774140137747851711621789549186393886990360681824443040278514379188513399548047869120859889717110570450986490975702483182448219731019258010672491477794086001731290835790565451654974118168045970029015067982784361508678712536724926506285373356007624672573488502044505328186143061587742167026475418502394387845812983105277075826698751894967370571477484718802933356814109140331170983353417791220334323546046694401329812883891069485187656832977727446697850222374501266758412260198995083371813676901567316163230617143936619485704014418563661984747283102725995318973786424610860943038570682761884163348257303187025246193116068740581315201504993550676230878352679994719355207897246347792074520792937845302408734607574073252267338800287652136986861938591409749062534756139063320631310673311871451580748232654516124330034176355774548427024567877629431673873128435488565172034987636671487224349757966662939467419779930398854096953200012359096196805946230322718670905754605667454850994552820928405798479434175967616775321648100173072410929461002811814724548651298647466339686685242676572646546151134207566166693593421727719866442088536231588089308017077209212631197343125568741158079016253875825681301154389640850455144413933648930837931702510111617241189882351276684556037457715287618179137014630250240710852284597205154826748604666061752300842382505300854165682107476815213711497869747781593551784829022487473283958534494773797382994607346238328652017441073181865847677744678585493975893405871066512355802050192993398532128452276803936248723216367289374389047850355693306210107788865326787160998182485546274806486465103361925721082292065234950959218371398243240969172288832667429637837040060599994995336756527426487036683451715909542594926854703654395299633351140379921469595666874404987190516236710945605605436605347019660084601329806420701789168142492332363795628583192894232748133304093807099395009238919294931903420857599782139130047699816152121805721512419262577265073262118352895857192020240837695110649000690098126749260616879896643683058800286907598569419626454078536729145466640692683553386849987880965512190036583500899978864072586919585826706596863697928535761885692566914372346761964427246317285663543638215760314952448147909957148159173849095542560162564282954385332937946680260827605958586356463909240053740858174519624405372697911303193916350708736821250423334573205042665872902885887511857580281723092437571185452254320229039699780873026253603283458786203136310167788304788924674598365546611277975374791067945791957956710566742291381705254628478435993979502241048197607036579657846249456412628341113011848614483626462252999873651540270407299706257319375656451092947530309965987453347794581122615903323187382173679571478309335361238302394125062651410366074014995893279525718890189417617129583801514153744351494685019583814156880120589636424447834176296182425596705653028518769854577739152943597980334503068159368842593695942595892559165110249312764457220817323811834349084956901324476736243020613457888300637762036852092702259825156576077502349682540175805972689079861060518623014786741189147956749569740244783790196711393689409259384530985487029829138242279005014625814426360912841409297464895108125163851986984461694020342401780311497939917250249144207521186032391541947265507384833892657380585690410605782346854503073253729249224406162075068511665551173977851519882590218456154512561112364228714877500481458997904103254157244028639188387845303379785240910329579205004329817836468761766507541359168451560064904206861541724974428292562023805572969395020043935035831878447605603616457002248539849844959285701624848650565464643142896295923216078373964233718665194004656417984123854844822192513694521622670504961504701221101075425571663905378963050701909403221509190235807742904109119803017517094504618313545816942871678215412188650005399335300871403676204540399752129540159233833319071767914112920745111650533259641590012437977760597010816908022206902989261264243755645311773978993753004866916225027367908096819712417881606606635661031277750717892847320249195029644408771251054691626982298342469666528112265367580970641155351075488250478066418548886452793937994136699489490407648949575943236814065811485070707164436045239238046535846600513136093345212544032333477258281796515613691877391418673993739876791602745377749604572049356205024306344408612374941742554736095746571389355977170348802702749499400276754887133957504275842976092442913921308945879680227579443281069490205813897383299359443106730570801832010305252387100084662660498773820812409782721441678752827065941634543827599346212405553014069649910498097758157088593089243578499622040933097283451919074540618261485068783617126570623299653075941497261290538525027116150870283162373160037139844329322733711534789121578623009315445732814872110839425258768480639356691879862485938915091810824086041283919877790747636957406607167188414253272663704923013554279004252321847677706514330260979657744887842417310638401326534045464550298288826327112755345713759922561293649951733947836049081115404166461505455632764322342021074524803023328905459833809230073589016475212898911130571965834419588635673162926592148467557142030551331911244317174730288638407433148076584927110458267040097301968144303534975611862688502664355701036570584844953831227552944546881053819989925605211768646454854797728282046810825405284794224975536030943111276585499577584007815194611837344828564394063328364269092964706715671767958377627740335392620370516029937753142379298403253284790461504756300612031934869944953451347909775747716405025812541885768055953577318206646285868221935097999622128558943069472162786783838461492304816463919603044237095940335981086564352043598224500407879233673410011703379374329552796390369416119283864692671039360576487115945774393944021391022753789918287833422764745553319045000200952268331563231599746926972711647407512502211701214827642582619773514712102146745868196007553002845138369014912841281621730653362120613418041828596715257666866537172084176682279259057052229326435752261871204861100788936826576650831069084120338989046031793513742538552812786239726491722643108555641480246797670646919743743162834646603319811539428720376192381130054956632887848268270490775992639640802853632240114578951358348284100474247600287314390226374798174799890941146557746354401107860196463172692236514914639927724002420885831507249169875614074020747441045890572753657607278331113601915505072829650044649537888201944922402407244473467235960034647921738560640801290641794093378497021745595274806960066671262980977166876091246511185007443332513022289032387879707301241659406831609959668137759083211170693727495426655329675437135311497309902397191032758295608419650138684968867818628011208391646857887660967901567506282956487295082641998901728862751394953989845059471783317979330635499354143034747081404943462273643644647455876271907679859185459875700650795445461842567748445268103068051743073674556136030534640139427872614691934788596817151711830203335033252594425106401861217086746508204804254451860763113351118599792578562822639125859804918955290789640091420216419590339698506359319244906390552361499123607394117624542623748389240949894986592679134868841892915104922475753319410779144086352967464136498379151404108935543881482166848177076145769495335818697467094989050443736622349532217593028487702829640157549439258353919111336780324910550445629460532259049567378075079228241752157342055808936554823952615614758694153269876831270856953200374239035154323984892135126213308613567340247108499081281920741097047759157508999899615690882957011899546752586844646500606581834517265202542798596700624701331654648411900753226304350768196978941454491054768952464621528426599164146756917255564778788950734643160105442657551066771640780022011464703562654571669594764310600725424758010496512925813226757395026302678561526942544015141636490593696083007341774052010999982954017753043398285794462445609014369814345691205821325063516368558763464654467689624537977638425044687582861947284815484212803426902025561311932992565106458931325660582218500998053476248213643196657840071024630546033262361012764399010113672593027245342669143222756120152594700605811769450015870763798151668904077250591735105203699564970628628832864206099819760220744613955033154640587160790143800765056600089587117455033152040107019649611075340958593426826096349260404545939423256223163860221494991758768073262325297047422675130089184503198629430476922207695625284697500169064002806594726765875689056621521937641550538444387747050243511211277435448502942604856435386886337388686791422157353890041304756867532477831342125643204539173719890080843856622521093557689620436269075841279928434778527807064385498550183901377252365800702781221695962766419987410788417773480767200781287777548164543269028013219021165629258963882319790986642199344354133061697128531150758292302654752205728991747719002787834831045276615363440310690019785608557582066629888870088432259059070663793099197840348783965852073170688386138112199154601379545236652732294017415158433071335277469036684438382183865550850844667480517099793212647655468747264219687435544418836770892903283569202580298397604731963847508106904310001170550248996370673518379716064963515916388067970883869672076053795317850940078304336537894037902241790484999345826979782078386194404738532060259102203994212514566882329215176356143829901255919598065158083624242744837043546901027630461301317030817435008465176435494297694122029813013627846941752982040266021647076942902992671808042780116168714704172875408540434429722057905055294721607400556194124629711031384238677877654809724234678588199281723082164305727840790387327917305229476148861311256890261613631814456856733243694360159001521131907891249615158913984530072867908767092164446467127089153203989388357937503239219781149792076178612125674839400689330619646315514878895718878194514611406968660490801427530869936449814526069823337519687580773263859818865001074642572886262248883750601811855871351477570959242566179684747274002590000312113489389928839864365875999530999727194692516632345361014273151785239053950661588782106536416869535235295124879107294994688198485151420273779266095353878358499247999933827615522623095602076020454313555344351271857055309092368974648644233014198613030004003305498954843056156819762448271169674354097902976932654346904120677861204174453497416779566520143078415395932607532501083654359220143344092898070299467565916984608334295772620561922545513511260558642029254694755305955365253819056927206617015237165529398885480171350489306456325878543114264513579316205358195349652202905912923928867273873930136823121330540654311174200754510700347516691298986174472589707344992820448535837586888436178636354395687121493176818588579553481733594798766160394428312684911537564342243310076089899100060309169295743299031480975078922721698013435596856196608918064767384261946976941122126318758514860415791230394432113699258197022137913145775246475375887649881723322426233756519897640317045268114373471663710872876789817748085243844802563357888496042004729789478454913601268368991026039551681367224282259564099545480786247436430709959050595208209369815148655594904540201504902850074812770219888450769767437557284659239515865353915345807136807219901523323322940963185385081871641036193880823504464295697599390610597085238529310443817970580392517185642581656690876429148095519120857138567144463884538974219932102758846223251253982734245200555721273839523047070376131712778183606077395517405147534514234861122517364226532123832224881203091033704621114674129627138818355648170851211251947120329703008047349583678439423362489099836084040713950122090733710529243536066832033101192442769239812889971467827367547378827870833808057257107924806629420003381440296173676202516817311134028851022559645582096435065820064833970929880355260679312981739447249764542001952087862523307313983273709546993503783727767589512593994130415384242222140480580464142897702132063206440923034881485788502121812096408190909625446217497503968073505715484755735719995618564177413532549134320653474871299008889954430576838971387408115690009137645400361811408645298610494126509319677745611797176688614200725512575763710851939772898273277661154674781916986415545000646885172017796349216234464981523534181213818442170599328890954698349240659528463192928726930393166639164168146185490909991208760140374095741747455819043980964006308982891621029732848051671429058317101657601136852065707639193947090334404930734646730368006336115972156286558614229187947317776624733846005326082580348405967120491723264114271407193485177465879126057296212331335624138564660293960398083482079896241579690895674205285025103723827690388792868347226581415885736693095014486418482159543631480258069638249219475772328957422355270289950046131760782186338045478335499129411760668770549809331551845003697875097843671698195559305574363104741692950220587413345555480276110637961561163604026642528611663562236743911665380531520830311478868678909553288526564231375884027517199630042052816204111747950126502493919094123880244239019850760545580467395020245083308481987272397012769739902670968746135754883516738156447729064019766841157301231127335932569639561048012684471615101374915782747622214218300071481463304619708313468961298909669587799792353589412237012894598442965788751706401652536868082407359467665681599418490278893400640639950064995487794781514238041689046969021244305987538785336446303482663318164292128319794786808135175465854404804515273261408318420544209761447800101765411204483113628034396731727562726401778876665521404299078531238890837843558653593203713691206933989204467979433327785551996463391899112492538385217142439680387356744354440907925716950009163952646432902658123527797483086866867090118800378138221927077938502935744806245257844894516465362092525869587072238883813879755409654020617424181392027519080767372534896168185916046807686568587881303460664472100355542635888034328349208138510024744918547960489517065431482551847729795183657445104434937819595355608398242502618597066435793657185448462473572294997932283577328007218526159627355191961719763766071966691894880443502687625788214097052616697484022295708230549216394593055553064910914913551398559048106628433871830618645571689992244701273946730459257315416751436129609627709951568445280435134742440580767173608514323413634794870707300486786265253990639328534010908613087655677237898766315249500392370261033254851259205758295396274211265654011690129645361204283667747869842617073296408623137812977153073825098282878999392549270139633887083777145909500813100914636550843494430481360219651207792654542148011696971305384138314880078760801831246935538429334935830623893085511918827297273436802176149809584223822051362066812211729273028083454904117074393521890942139895310320669362454280681807423246159657277263271373657790588335224464132537675042363462835894273579469584813097769976167606638053190183440346099156408263951919427480782054112940976992056574010190211680158628324239375171749758039830335993255271646682953403378708563735604947640772156242087242846850951038922277482663900273609140898444516134841911394663121380525499439067842938312096772290140784581713932252163290178530419889724237177567112362362980682464651642376971599700702140008670864980345607635582437200112258992765595312357487653876542120555156979115110805511947334448528805479668974715180854263609715284449614529548213043419998459213668111894931668765067305273681223552843828639282481304327211486187695223582937842456759194552159580635480786751714436280618719156672715516089683111029511758415636828718305207466520010971232291556794488580123488231742050413058233776245171217374614405303290618315979997869444953818043764696075594840360414386540861638409358888885174759933539429544394720416350506398320085321220761048355956869797280635824542005921115634834244665694649926297162537201531904328393956223895151013979523939856436023581589604435091450582287582228078260537713890130892010506841635758092800462101824636797349800291636458899824717940805354890521092580218783792318103791933669401431112021597937830056490234631392929843663175224160936803469469167413701702751814587456059641296970440420650078489638008435813234411537022976283462554813454557147268035597333969870000003779314912947554371511670802219151588656286010875642698981985975450747921468319632646175552151345070279952163357633108075454961049268746410609065017400985077029459242089993629560069109534350725211155170554637991949691882521283269055246387467793117663775815361375235235805192577806776025569177473909839879251208136734838493357356382985903289435850963926556959595208274007289732170512601689769189465951896599647940320751901546315713129933467712399558713390228635613098026373984540594242262841321672186681835780883462528569990754901081149141860999158582794503838594285687138477786909875353609041346535752490413436279873087639842424122018180206785869322102788544845381167392676905098408207775147374421940230261415927402012814110690339341864858367064281966228200611428895564483001229729556422080452499854400700175379177153960090897232990405817023977475119673309229735270276633426202633061295911098185492172864991759942254762542937301769706107026449960906490788238789335496696774623892599764034782225347722462516694364187938120713285990747363081288103653175875593545586129377914716738306799572186482038892997705787017511283922863030081125240054390727688242639480418952034356344742536281743409352324647081403226675613693538723247726168229576672894709584796677188002078749831351730107576918119927109237557356195588752659820776440722005443481592008666197324239120378068685726292120082770368577072797506246076409227367870315407917529129942055859683157064295534218848644006396826078864118564715750103259200356608846361972409146428632158822786621734845868059841228291422981867951695532064155949909142973232327856414947688051771388387504589836655842709027085432386782957665205884079817435642705682665540087436752458587384567104393718461345782710659348144365072287134244694208782258154953939727916000689474780865759361649962116848860685266927198915385502139235683278271535572106879525023598802586120060141523755092837202412702206937279013914962556374372295946516915011090663901908405414168157062058513637648796078288110863866478327004103152008825736798501003285049347779659599785398886567397461490091571090025246498841032858049153440988862813038799285896372058234906076518566351315950540933972434281274715032752656094812085811784118487968265085053010955224062221085844952114197374197262559410415009730734968359731101355041520923112240962070741575209208910084934355805302119206199304184023852276241669062497814166086914716959418552555193074783031581888300616655159514401798540977429130951273601005558579072922553108634311532280343493704865701959286673809746385927085304776754561240643695837721521924888220247272032277612837418653508852194655763990044791521336440721553317219735596745644964902200744957063157798303824500579666245364139581611540984982601805991526727803850857730074206842397546203644845089135395303366677649234755910442110635097297876598218649290310300557991470813622895956948483883818557859511929360459640583509142948102146013443032130918665674371698373077869952068237370726328931311178188109146541112599607959142116724370677511986204334219047127728319678772144456793957580991436597176811370463001228056079861230794196400022836002023114529956292587845905111130636234928777172431574887934596376713604783791492368863481291906103254428665525680327052717005155409782867747478560161879561781142515185045754690336234604134280637907278236930282319289147526651263060197480082914349956383589911493049652750337052939870071638904516929260014160832401235452965489756414525373752449531655329781382459290529277284011715884520878319858390891431925987831832603355826972188630699364856151858706600041241341349367824450239129734970553742406219493367867624214794066711505567960998923763563041809877914449222742239921409751112978672245994419907217764002569842735559519579135743088988728534409156751025713545896177085653596307332809600803309453621600453987204228650259406326085790064498345139247763639260521826017254815628235722474397747890714275319492210534172872461866994101649447561164483565282887389464777854051248292159476386343729917782812239572099841135956498081113982766595180254717220763801719718795279964511903950944185798204857572745212655835024992873749250523597340533148296140651515312681000773920142357779720114846213096532557218966580541459221694911976187302000014192818324689995838202522533645817123804169437607949415269162641515926621635086587769094074269673313935877194285050841738463277257179154760699999123089332695245133340010963225639823867631851705488675064364050332813203798179686092208829224654249419161457182954353870615950632788953608479984175214114487037485180944232640095036113213226965212123313624683986309876917608762629913352850517679692782747026197891691742747346796154693089003082770243886824256999985543719722210695487956622484189545712350498260430396683243452164991164900121166929518581523641657901916895939467706965420875696336163215279411162294077656240379446769299909459006898187070488765526557541579507927515507773666935094851282016206736509911859406483121922804899300347532602046328928830652841496072051259212269292611182347216462885266934904924609597067557062525413275500343417914339936514850342801959201902544441460421125378389280739101215231154783242483614949730922212055756994225920039436529583705481663335885027712345006034399354939568106807740473218754920947197402307563121037384195307296532464011880069565297341769836859261611661954106807074256297615397504517961911786760674488162907383788129859215163572461332291043027772903721422860143841112070738414383001823733090416609520096151802569648214878565731883443968948772731476170371864983358125069436280919639670109153487972948762835222438256966258584854270884013061766475831005552917390042459790313739167128564914583840018314149126155404282149873294807328671805274001290407747068697830178344856239617566016085668732155172045679572051642100343096581140749291430863702669214019568092680073290404923898391906546008325331248615255096741360918464790569964812400823540339074382126431439884822733456796001390948523581265553460838509538036192195269064123383209888803407926774192170948972074887272659890511380396873777858124739887656665916529765757745100120498015396456080685646199372409419992349902539231077711983927355207289892755762795356335126891718967535777697054603075956129314981870392092143982642091825967712233608332249152942504923680226074153108751123058285472774130797434339499178483709278349191857913579650038854506319404290452315601743045770926870098211493639530711584862671553073856795315113020256597894461153277392895156956566217421170048251458743231581924066744624622346729818637281401689609264373581159511505972448487164740283615970710909919094644148609086448420576817278345137220635229996436668114132088123020138201205790419022520666409306230537066196197235177133283511526671827332691566126950489434438417885113010807275101598638865673880818944856145765441754403990130426550143730686356077188656972949202958977301643154785336507302902976834037408116554000315061901389155382950013230422663741336132802058247333488177812800687547004095166287083576101839169264686401166708200811971499743881775581632453916396847393641885736512435908278412784385023235587628574921282868971893383311810519851937575525603534041400438410286492217227761763904052401963681639994144181648558735742769140738758146078824611968883557482540399360197153485965076480816751205683342977183107012938162708279298935973574151978584037114392299743456026139990389913242289546428279281359206645852143737090724055769272295549951623339294940889317731443780762915865722768650603390453537050870336693664658752102121475036529466125540408840940852731111119262073092565365928126786479503012479368849897669821374236876907716898713644677176380893568615368847329421490089321999734295555473915482357589438387875525195386541998857095357678281668975935337729434208042689143408203388718448009606899421904047069955227359330238236395248652053523966084081459829778933395134667872045624876752624097175888040368749371313560033750578056671832871756635815421627554244609975452653477046862800915079929787423483864051610448551701794789465813271325540434861985214757163266932876761665526456330805302172063423193064827657840284895752937149149418159167942047947865214961527324394703036070586141363988032958224666488640283392377100654809724932723024788075956509719611914052716689842153428140158420173794278681713073022328151371027859653705904423830417318426349261081386450518866222517927431247123453899087998726061545148330844803966189148459603318806908238311594933095453009523937155746089142423246257221884236323155447078739068809311183945651193491311633000920608381687418166509975492726503606753372045923913328646046580186721326820038836894350355132556210658253698104336050917035040281219395590227278685774091136112051674551146489926397044959688983684108342950705931332614192101663975813082904512513391119480519042669685448639716430189736951726489097167173045469086244180505222270802180075955239956313456909505823278802000718702660292804539409953940212930018564287934623905008249606719044605234340005759110719426175965567588883709230931791556279807254747758668755322243816151649437795915923563200598246963183735744797230768955504080894551240414750200002864780368915497603998120513690442523782710079001034892566124443784858086485718457893937022354751711262435651092042110018192772683942933601961959118796776825410028492482935088100732427134313433348761809166797667020604800864658816684058084772458047493329457006630519524979818694683069187072015341078389257133297922823503865919499044011929310677279323117669251430560581479177708340372324329197683234724017652290638790597490621500027186704223393870809057315081903268243508100197442544334124319934546298325638436330593253948593792769094099140255396325803348090866997584142753058323693688841744507336496178894559584992416292187255659825740382823348118982763571038612900148284285328812827314754128728416363865637568901453446284334603884163651370451604185400087881509527578574004657812216836886352266350805526343992905153149833422893109960459328106775304014000811499031703271636270999841719209681840299903952612029411070115312403788293247473616248003421197697132972002767590312232885957151107611037764918769051147898609263199034947446496286792720171642128075550512228848696327636686578597998189597576007904730442445443843303763990887737271017496675672711843085851902320606651629697545361556996731195095507454801372429284089415982611184044129552771277583185328455967648046348506122420003277085748630304583594521769766173242857344535650017686579316290394485826254774379147154536912090272017048453669333051119055750494482593223154904410894184901881003240025939111130835255736535968593450857152639432362865147729207215095265054946303316090654892473592828430756752587404906929046749359046112523975916512497279560031206911425566486696834874310330768587265961177956389849332302094545178702889096334458485169354250233128571693860386562685537671699213888436875901830616272028440883419126458564263253305728422585982692518235556743685335248525889220964354678254892021582086142319543190046318425382737227671541322262636013626678846721895326639165197431083991890657033541222714562321491431000725233559692544561318117050902830742416313733507414100994483003151777629772652983237206608485262154106572970441017624398651932815128373197856927025907785337362202223059811068493294911959356066173919184406460957698782793834907093424713787115679910045551868702960443822924669587954612879492251567261890871983040546251088371890420075880515551400360736863657836695223733655536781725369951940363529164506747911230816053467077356117214199217514896964616988977467015168769655548390452703838691424142487390020078242045543350143497340488829667285283520941198492469488817258963539161624263509876907000255812839930807168057391823587076694147264120613567142276618268882235184021666324941601079684641557148527415790182278282137201834800716896655755022825965447706855412537743906036380880933053627902976108973108365800601275819682239631752903977056237446308092191385471854522744990415384069332841929704053775208338885095981926266076250016048814256489470097241827808820070799104805334335209550910426959138492371895433474256356262852730082805557606354048677417643737528176065897957804733848294403618353046586397079961772831328905426020669389630277752346357738105376591431395507372959484845098036983555842396653579596559886151165931340849022397623968267782005529226688905178824436110969728368779114199873010164516526114687966161967852820285134500446047593313905739995150981052321861451341614225700711216888921235295819437470220063484017099586410038339212465945440911396459497177420554677479041299062218019888852419723252055261075197802807284236952892878374108459559362432295833946291598745523628077308835542611657132271648593533736176135076052925781801325734661013003498261216823836991861358698020861104619811520765189331141092729543361284404326633900551881667022793664548735234163421949562802458516174910895866971497211991442154292249574371216175039806669050812335856977055472971644020945179423110260100634637314925904705750835712875462582277434887389760854920682787407329386519447410408753413378918855797127156916945616988065204561840450104349203406899203327156501787267533962898864764265520834813071002025703642449654614961754538609742365676099437850427042727520340556613044544240119459424458039058663105704960323619203574114539370939006347375640265022480871749088379515958754019219466186033298603252225671416083919276149955348464561216039472576790708984664955137062527875187823611040091280850518293668168899849105859945055813807784052078960283931415115006779506005606672676655591416606489672840615400474367439498409945567380807026851361095132123576777665012283548206758872164759258792411552656054763363921305715042659864196964846361295688991748831366472503803003230341765531931131625195197911662206339637399092299789475508680645343471253103729857048320076414950057632565381228582535485942710115921750759358363726881954000532410386579473866897252255608169756349398130652728274016648017546188237352856035571626488378571873832866641950187373529964255835164327310092249773549436240833494056607473705201912071669866929019256017431407398267743039996163644800769268326554102450499046470874585745484934075764401648959294310944939622467101296374658794332101958057378294048836207916513654080867632033778783825021531924030815977455367183447127919508200060005422861090598087480852475088801215328113245872077567558492974675482970590098598258299663018576242222053546820353635348929818041971392652425290561725499442161203903001456998176089314723923389587681377282401159149946672403575749657552330672457766887606574787215503685444223093512413656574823627349914622865154878639824105062155784775580973230717681813593003125958172190584866704049027034660177200141712037129877146994390259895978677466105473777789027130809437556238417848621749080588574432787642370940358732492044484013257831000954198021021711164873623336837934830705199446835026671099557341506498296652285791188907416202784581785352341315490293631322657481257851968170126360705804407566546132923558323766973045285061997315815429898265872472641474814965879480481619450140291206518893298170956654683147030337732912832247715550993477784204882185632061723790290748953505516367605307986706613628725368629100921494513400339849370848086847242859998772679228793059805301144341451972951715086012853473911064031074496835981373397558232266203983692366943440923709276220343705755738155031437635959833138605708720148494480742150817041111230976061383872053821005784496934333498227861152498544378275657025997892531233385601455767772194554198084024684423158977582331762933538243831427239949141269197160906092815021710899400920992785613330793002469042605201929778628261514953907418511350309334072504234295173127237472128129321078272487296913008772536457125689595239350686529308270895762506452250070061731025739197035947124267906709674037380486895711379677964968004006060100684987140044588568353451198277502812327612110689117087933643675225145478381019777274958763481719631225425318662294752048279674247216321845056092231503748823583605445667331558803980087621970072214048046546589143254193039491368400993627138939592712411101568708918213037523179318648160627999731056840769173179708823107901941910497739048755816814178218491241022163261523148114107363428586740945119289114983702734644766419282324292477684769020886297600038908522552879770948447540412613526083717278628343372731868405606017628060495545236538025409076731610507083476560743948760455437821112199068177420900897435985575470180645011937366832164476926096756021215948194431181325284425923253022207404154426691692278734672338753262339661277892920139185379648932766820746546662310537810276286704065775678786982907499291425676880133943746291604968755521167344097997787198158985029965162494851270812699469923421097815376379950331349119569134260762486414153052552594775589400811801515882870857097213149619338747490422336589744400961974686405695704244402665373873498570438365502204972410546903649442192105078731961168413281638376501163111997597507338390302748982665319852047344072062484224753442036518675231458339839526523445466505957306537778730010321750344858956360484977021633130684067492004542853345975683901751812947144561388856290583007409918146093294422339556891263228609088076128595412429296490605297777232827814234876556340744492728858734108395223321091449667248430459824197497119853326547382208081690238468367424579733551920837450013105118878442148069768679338696850398165051016428231621052468163038099798232324754983924206745763964008099573130543323066914070764151425839913111485529686939318251133389295750326639216945257777799799032373065699946195138806740497249418186665192723657304768992229652191384678539634546907983534128188029054263968297677365837303485277494252770840115082483402498057708222714577224337298278988009599547768094402470046918029389582429455203474621538856083004867761533012454363801386673124933568643119652585185145015416420676186719777274129385533145425794326398342198553333363803245135025531457593348670362377070796633423562541770215968258675959445366744697205055265765103310484710483648785750601790402793502698605960801231488850851030449650131860990939659882585544365595635039559922904137073165755914966505029639614928926738125326912313158384747069406108284920040790736662606036104342877173937667552578278536474920135384400595298918479487141174774731502982222744942162674230465833702588632008413348331501311910496499821883525147058578479994214801378611173597682818612670807493268998092189431191765007798039288590588965746603729034195440608046768953278364425646774139082834176281269591789508915212622206308259869326884708374552704326671568824980847256798987623916018914955798189676032369342735563804062807834096189527730995980374485781825467349540419362126238576912471644762036226828590445139672386137666728093960700907113278953082093332658670325397587310488122312787070749861789147589009450359261997980381899836642772643506180356159686276173962742227845330978587322813645030738511292707235374955679393324479790719928919796577858851690014671034394608366299555989871714623990405607636353366371284719813409106356651581319395379958031071261547235282838030899464105582385779841479387602685492012731819991443171314456623490050251556423549601139048711332082006227650020238745964008330401590966415314791175920355237094995395992541372439816422917573276817520393140646699092284913860119355136563180152261771527669396293281462772824040163051555273005681020790366453768179083181669238290229227661221686368674853413747021106695418401217512867693615269445202366930629920007943737217617409498652630942804948316808701962305308775549820138172107439688472476678232970574305781559572193642637180076468508236262824570104278289371984151660625541850120608249253000977451684196447279606051617714209144998483849291394796715697304286756757004659721765582645854546083557071487218372208022118199669352964831379821673041135573606098494524133316524112286191811943657949057618611747921038419129419196700880010148464708689493061219624888082935994490086674426727284741559776259022535648411523886398956175612593281907763099685789081747403188556640335058176767480249923925431018921626484311716326317644716143478304739737446676540291354879840867707636091476138362947149560152633829613948462382295529551655085462168096545366240387510477601776176296884622624545422838221574125958206733871305157183900852057925353071666707583167994593396835977873971726816653205584501478708229137220747474956732994354883819979640837424891368435487051116691628300668579226637754802386142117369220688464678104268118320844505714758836539061356248873508782115768954409807056369802137737811949913651079541480878878400013985147138048256079435254866943342848565417747215640356275790726210575622343876947424321899963580819181764437273057278552196362183031580039318228216832830070799031185816643143307441394393454979678793620618185098863291504380066191443679643283159458988245932928210862022131642338273875514005076533756029162164739252541652606842587969161532167701526006636087874096642578281418489526711852238330763286036306628706805726445208437099350543218476759167863656837251927801280540368826490184017519644539732503110792504626146915708730301687616391619406126850759974469333360271627085012043529044900213599165687221234571550028772055143652621890304479716476247048755457871756104149130543402736961357585266284357737571203130872478127108506033277373995079462991572617534248842625677991559726718766354814214892933532657002302025008973905738695536149854525394664962880139780828830636200018624641804455644547224619143878256318813461282986179107166424591114910962480172610307054215354739583251146199361213278372514567175572358334741825641826424937912062191943262977569674021029101147042594074312067425250201630000446841088005638364766926169403838097543420776395323780697414138103630660205947344183611448943822010961413964014385130039584539958894652202343238764037102571431072730645463172695264147089210092884982726850060465691722302570993301807670540278486711020208906533171943624201641405796849750256342768486929342377411950737194591989338023473333308620301630955546861213214135404234370649435524899100510899930363469985187642891334471199898092160441886967106307610813193824652687984896353833466295397759589286307503710835623656831064866274875886109514621544606941422838504454901699002177086681547032965188037435309071439723585458765113829141750846037800364692830379937667013348706374538069602899227851401660080678414195489627207339394641085329991456259768019716626539231338069597699292792769651466063415969302659973021048546562535795598794095314816733736016270355533540473649061173095345671988455333073075358874674077873290189247115484807255179409214442876391394379046140352314774019830442856099459703841996144457421448731679151255860293129189786464706571960873385439462256133691140375122001036056897626420766860226030214322182877608104435038907529497446119380636977358049831074470408309968460506202850116571137154265804982653148120401346828432570175439646877780106999574696172051365962319782155232801610308283379470886802803093660033228662123261789913401535500615705233538092992630223629686986125865231379398245140631757015422248209854731387962710455684358633332646745684479881264722432536406552521256625852136349521865064867360096300363538461847505305474876009869139251503194370697577407594764943350525581923584533289724393922356142421870271394467911391900143879429806499409242675991549328929274965926205132133025820663264590676335827959444944160163139890390049135475027560714980151508342308304610622691064630064100310560575139327724139597797701394101122535947865794332305570337441163075569860444874367077293225962276681014312585508355112648172347981408345102418445391072124410874466168788497214567972284309185777189877060646633276400460080454882844245075458435421926301828121882826517420397560381472518082810671935692187939015470298588944880445370763010352299678423959070522102169042243056134355844090691615726397678614361522731945671566697171625401496030756488977007545453189847635554278841503786683461324434478898881827670726662489366591414723536501523138940902954058676014439812534998160193105893711282531711620744673351778158586568629457254046718757506184828619185333095944803808408886085332971687909309802646799825435258201093656100466684003541966533588994412663227233349624281577964946819207553085000921567596913351196516363729828682018095088863042884207605345816843508609320356631845399078956512982966591795611177442060621369938949487642109225089169285861783403231431854054961275895953425919030707871519791134245437353218048936148417280943523465349102157329655325943671002529396750401902855583365161777212200996074683846677930178524001948039015769999559529071079636321450074442951027779966017967739042386091579372206907181765895907860716491699432253349011147333203706149544972536039844925846735370735983553667623971515734130092516513568523216584760338705272412246607570336477818266950209967749699106789155787483047533518431405423856905405393307064421327823629917981473730688240472957479821858858488568663558113674035057335331721030070916800358587127390383016865515558874222039015614196506787026531964100692890338350862140462633635851382444759105889658734972248489548301774749410811829936661788961841128266672058327602298313839375853284706534020447821813170779136346136765777285714817009624032967310369057488448425829017140036831723290793679431288244557321801553816643184108738791311417715750169873372488855614361558415632656184352646382853251926839772332203733809678901907092711430286415638320333240631621564175264509330643791608746604140677558616773430334745273682417186636436079180507310369894108902138880789866281940539350918211055575250464793331343070551375667864063629621577109256261797700601776879437948987575704370733778908739455172726061189745797908882086670583869723494686146302834876590319648415850583136943325737168526801227052044032397320297752301860805701204363532155973951021255764687015811127923494453280224824635750135112061904173212571715422804152491993601484119635647888371850954711226517100921627783306062473165246478209092134782885392863661823583736298894774489291006428624780418005344868985200159250169903608854816886541172088945772334960841659523803270547019671725138409069246832042584792278985967081724443982517734368559124153567640264818771328648066310584387473965534708139319596188004391467302514305886667253926685409165124609472901382023907502610515363373674097487742494844366823503731522823402143852341146836810964119887697974752819529667149066963805147012362893379097169594279101503029808405506894978625931337221206464793038431860493231193815726757859786091476086992305760679010742637965825820857798251619082445304628180164389103476874917875210368909437407313889529158567645026214755757009873791964368699491216117051177061117232880084036135833613100829439102240529385440387185224074384302357427227611033975219387377397612007286118298053779217883053153694259661421653608487520587836923871913626209403605061570645685597161904287162167739030455603886517754449730735368967615851150578589163758601838738344092698220720516689346392161079780057529153577360479670613003048759526781051981879952881356213216781785311379839944366606011133025974036702693313061008924568899998239848533720126748212622858402990445390525717042172272493638996311997881613777052494885410133457829634095142852602688655241397562558972595824101120974639371744619718534295513769543801390419328238514843744143108523585369199556984773506308929473437607442203430942160514663394195308705377922926671251409492696949386765713464839171905651933329007795581815706727339595415261040346102020203426842765114321219171803278474069018973002328552194362702618589036362397450776728177128299105607740281287668555712416815959854753199195304773557721359339292345514356108179361460643387319342905415768550471523310912695127254798328841650800951331772030859136621341918191766472943389923122905433608903572392384731458031138048690249848163960726802721331126472282828643423865628854322315905541969296153157160885676565232646092232132614149433910259998851316283430039813820243134822461064817187695932799253962341812803489590573534573971304569631377384244705884282632871210664781218684989526676592069116217597391007236454733221638972177750859053851356399686383954393363494748628667588208163974896724203574124222361331158868511875751829287921837128646638199937426056932937027848772577128748111554665747254732366734798001006951903376644186577831643685874309123936996334157363263263524455339521694634150476332073431706990307635399060054523156499031884289179994002876424205621054406858322678144198919763525165906287836293190038078804162060794613551626955982852213625351598852219074750552402226015828785799755424819087225093762270452437639441119006042051592000016519561222418150831749252581813283097654361599791595669331768928710456583518074998580426207123780333110985235348865361636640922910643969745681829273626044344903535665723064090684935994395735951848218932337227319270686932558410206487223415992382286353223822985149096702262949574436695592283273553696772708783730030556140358087681343904398205341971782340700734321131928865478127289587946106829853466424522016047811086182556648882886272130607306773519448777255695700840229503913641673089883388217123335914267905854174370874417782606881746236173338867770234033933479747177364079657627509192566009545609144220496749498599964749933932473846357335478934197091970314065257759954303909020663012401087352490368434052003659732842257963553615210646104204503368871577272810082221490487601588123828958881962063148867943886086998596561423583654813201290055751712486604048473869335229906116332657612480166730378950967176831396361427899066316586922718387374907617502365984889980863385422830192798448406830829973352731069943793198739139667125709962908044695586756244174044488147640921113602426840371568928749183397168596872575783611616750826940047330531307923598112507866227159227945314425826197783263609309161130004854375388673757549426844372513819681922205453896364430685957587609721148495047857413859704007626463941062213195409195340442076935476494276371211677072918706379718539863261023452612283375037725497692941435073082818930705155583623012505634509853369831182777820913318788402069177942080839533977447869488452022156247655840052776720825928593151835713694329974254954311773472214292640439152482886484157369567296220062962411439006729614380243784677993810473275035310888877090411929498820714543369543862753403506569199599638967205452072662423048819574597615704954425315269721429373081123155771960793844470342908571025913239474877689618599779412646358096976038670464345011039146623366871811160991132828463944106666976397179677131338300592109896457289020075539379522670104797270098461364993865029145139387212949596379549951663551751969687854515368816044538290138300230442317434455186784615429556119591954284338116720378194452603408973944538682768832796423641420443737003306459134845590114478615551303230549023633777574313494333424392232659164668787272264047464489095602332562083578708008409546850622408632813186995686807819767584476576599824758451521422226931379169918768615510925954268372539158009551628550581334574431401208059372444917486084625850469607156977981950075964128328818062776137237770409347715334737671388178067418578911935595386950407341241702131713147850383832305073149879538360851259832719884800568150708896789675909044526136376922161877950302600821777830378886598962268057484519793171276380958250171159866782952085384358272198049467210644576441686036907939840751164364006483437409465476256403872972627690241345643297430099765582628318395210354043589968104752865478878008447733348249486035257836226427820104933576183893120583168813442126656860954835565065405584891439546048287252862589204517957787157199599069550769608130956216054653611113838109896797152049780311164835366122832850088537469179566202835352760403470699603847857432710375880679055720337614565474845055323869993437989584206568793455414829833317352582304401470824963000972658123580856967770675855309117283458236299279338597107909277303154597231761657772854570535048612584703254349317162784292213140827855644708556552107962132429429240682171773480872396169697573542621701477473571583931287656476148476442909083785749979270265722864388550965454442761535349140604902227435265698202091217923485998334458678408224717693030394440666482023127271922007719391857010683310017281594301059512219174406515508531160303679066689916800988142919300383602294571022244555160069249206815823940116118948915700892999084686353516678244791818039765338349186338939290071932192575847014571786365949378917315202254738738139745779476097800453819842331860804254842846700714416861549929432837082945984212352145998381808653793341952018055697360764963413355792188805059226458094283422825823728182914860300045358866505345349650319584833582551378655910284211986123489639682421366820590420277190312371974287354591072468528097925095576091524960596194877113098120437780128373495470662108948355219998267188566736672915195139757114217985728385210956967963185861622062394663790923548442724823232444279031752148592559442752428812040875809452878221609413112181734730334980598455626010413251866991081880555110531368942140307026537894089592275005385342306488267161330769762459090072551185989398560270332141336192976890935896626401014799924715009814295741287303019377179263925045209054701021379156146321451217456465824116198745010883525124051306640372635390873294433888966657279852050075303778801927513681126094397264498130626725327452175318953996711726796165100906957609430674252823528020038362407068424653933626119999233437932772364580652448125696610360842147063757558506011071975680996615890940494733374760136681658856128178280800458763734987098084022148710224855054781523928965189848312795324694980048718188881119032518824992155286652942599420509997865013637224103850900124429757557750369946327977654129144353300312018770072077129375876684849314607249744193968690242713481759819125226135255545136406685261197811580691760328094160142627597947178882213731991569298231620084464983521181239456082418866522844760597993330119518817498832729472155079634703241923855826273607233959768710713326116447993216487211838921144157818788713355893051973602804163971669415375658645540785564061791816799036725475230905310080986444754633482163609165254654557917672993843843828556472105908942217572168754143052458924322774140465988425953745879539566330305992857000256838252167044783049857254067075827686221057859767813242252519506831715122088405602104060891203518126893844843503400309028782565231822559670698647131988233456768285299987805109424079591350876804680195561243226578718118879935094551599169525368091058794357327308486202943618809870232226092826268712254665570539727782743269799181869960577287605186680532798305135248518928135432832981910049382760898072541636941501282206253745864385768166350870292007039950969549303968184700899391102169866691653885085477323309608431355892421564216891703906202023114487999077904019620319541399434902515382167004260394413846547866824161559035599473666124865041663511697921651791872729868735518551935419894963062456797192250458077624187759981291317401621219225275828543237588357943734944036633908928865924524564815734482771837621012269606826430602654188722162583801495864384335885659670803643886306824005392570036783165194060100739466660256442742348628036455637690301769275175789363961956864140957822280752594165772331685951952901591826283218802123318820456150494570220885971246768341186858825711733686658290264498578554366664354960860444323213080580907786006292510117075255874980197585726176344088836259093103559824225674626605302290489581493644028156738975261100489473129403814923557635670946376041817096767519922372508259537072514198567457532987632175571364053932519310384467506042622470241636082701423716905752043342776790655898777416218059703949501503896851939055900386906431016994418527938784317760951679062797695174789578077290206549659042990147694813141674835214092830660650399447376063979712303407217965299994309712827043787749282634754465844516378176091990902003656954548317672832969064978887489621230786460360125786506205437708403646535841069019224944984413791515905191908066525285916073190463947697912182254644191493307758420819534496413919943216810376921651730536596588520647456442599714294648987692423002916734211339857019752876979723062596633446023808237431297452578012803510249567696831988736041406219914906326864229036158498124960024364116765760096025620522391311586861283158379493445318581533470602505946987399198759888595476277760001032245186777923183243203967220522907978744371125591044166569450710416191464590975957238113319326623744297306696463811302828861786240735802185272718501266446739811781630702551252958174616675767322464707503926892851559415589680913912788856122347922522953114747203458075403921497991511958059357769418426176552380515119871751025851776434981206064287364393173905049666242568251339122431059859587549543451941572383467397954075909278828673393428955871674005731340365052767782074041568508081465843847495082546333292520882721087708734656017436886071794593673668464236810873282833192455990271011276698708412604730871253060337055098586916821099086313343485137348689674238162751438881822246620962372824262595882639000743881114979686061295417144034905457142957618897680444790870738232657191288467274264722278114385286544877251774831664300068035023874802542642945427962332700544981307786476888878587678837898667010226075707522810359465111116526132586367947379211004748490248611660571485809891614918284737087329213327200862432045963751011872310839736507346171800471488858053712275082564508124434975312071476757885025998852217796024815996959561154819507818991350334465620931547243520610878337886059509148352878314340579576889999994329445388450769551448114275005188180293061926472853382275008088503234667383934088580262779316713312841786845689912692647632456915769056610492690467642774770447079730401376093708064262630040940492232759293537363636712687829352305623667032417053562929653956197263375053749583282104051534688630095457225413958691488787693137027128446884863696198520773381809406684153036296703611086148724833600869375235022834699742451692615302685312252720474733544447085849657953341604102848697308503087141981457486501931012049449221159821919571281605869037100596662004938722281790437892947068093007975840333656418996669536416012832991636925786819719158269211570788965306181240745868633480874193874126813029690638155602453852243989058318802300588671240717885976536933884613400931847669549574740390368535144864677631964383622090892330816808870420211561763461599674095408064513634279901188580153746516351053578056983157697598294257168559718060259733324880548219774605388579448851718571179567624060292423467903188876102635749297328943748809623458469694669357755988625988122902039000427671804409348637985917993603130973898313017087602635349518466345398228285990035698980903452141588712610598204339315999498984120856183681291786723366010427596812174456311807334545246192583579537841789022526603951763926871069719704471856412597025089020406630088289587623556783240317322262453340096255180591118675790561485646833203719289411836782754224985951322628720941332295843260382429376580049686907870416984185744433967800575479623763038627962983469974482256883519142463061103598030334740655749980299401645918919077498297314692033138370866476088287944015523665142671969329084768722447146834789221188907106872743176030266074795570281171128345829670819418604590146696310819528267448267073395240998740906869816340762598190121634171962473207165070657653829329987259834560960328744663535356772824049772068460219752626582300873326320932942049271754881124890876376299243900092144208739514793119444939252522610976527344250745788779683524485151165892940289902906350454636434150623017701154860146595767222535429261922560720133083409325296818578517797990292080177952552386841037181124199532052366568077358819036373544728740476179903068960503481061128124145826673330824390095452132122893216324368645455330414445585549250379224564784179549514542230827078291733637646044673743547499872802939109584025923988396701814534914777056212708525379198719919840546819751603396481613419476564188064892428200469948695313933995347528155687637897747660643815128805676173905931323436527912405723831953042943466501144358529815582982230893495531397241033566585388071037458523135113361694280135375778838820348286917775598013458576821731387615429858739177496553026995187043003833979280805420284429285837472672365334717028250179775626994189765159335198895308809267613377154784750791145500250465433409618870274812448480836830055136744932136955225092690322709910598214920287397933420951862932699633118393834544294839964215125627416244675046808251256856335158654823047017162343885510329718150536213491136292719124276681106884952971088592784085031475469119785063898082260388467474577096522244473973723763186261571856213877549906838574649975320860565133161830814927824726285584671490506142565239617183726049620558034056644774649035998192687320084537444464609512812820839209075670497747510801849776176621248780399938351549642553203445610895680886291029748833177085187697460709061507808166221963482899974637592325815169866053089380146297982129398848036666323546273031803126726194105961977680305851970587945190399610995252146565229490352047403766687923563141352795246079135608645596668801690667995654533638938115762297765408219068468477142006117824659594585045539874849055455919382732925657543311237111611644037569712555134313808642852633034885154102408155346694777450230314810985633705943857999498003702028410242107150069926821985953792325896421196914389353708057412952886536078596565212909616858613575209281998129868394305906062121496846737319569445040862983799116659966178291141243666487829727058481301590854718805443584256940758466389613708822274958835633844857626058358895608933205603006555775011428261157973395190997173180106982982151136494941008701318879904764611509929829503446076116198375009338686050585844353392607800253454291873215897004250057577305602356259751948751050681724974502375321757835074077294004585880518943881292874883053564795316278985091152231328483728627420846117047280369587778469937722552557250893155213415447537367738654131140508788022001647967987616946366230364397977338750956789790097775597032140984107728278823145460364575114701778176256997869271179043027921170322308573781117633827410725126812549648070220279810769500899855050668364792779837377630316348685818552854528154281686573585204186975683831377384150729570321309877835902651827104669005670649182417510848839605276163981786251044037909536551741906209521068924230357592624725590418260007923458258853495548343404106077141395590098451520430925012497564826219303560295700338973961130915527699799526973784771938499249479716272193120646750759406629119356412596913468460238968339254426105898925389384070484200611981749349392066555952514444674258716524538692796244707421014306833568222878725307669843962063194917316761572811449080083048684167517966607395129101260035295237016429797867341632573002701130242926202745295653139614466440973703621927333853246503084289492128600270169444574622946467276928248599179894729655916221097073650731630844205653212003160156245576527491456456147390227504718873827771076197070362797832319782137895073608697056451791191942519611131222378831045001120597892290564762914404418187593391083718075138484760699459793255892207382102083942970730710955397547586410424517471165969242501834437708715267860036688579497478217363976552072202662594854664340994227788690423960345718781341135100008191837346050054717260610901988110807208978823541034333113735564419406519179203374995320562682278190841227230302830428226259125409101254945699873686890504881547279633088232797413313372543390504581307934344864564291747120987341435791247635993376227670664532926420403580920816350292884870863193529683119010635367315609581298818374059090719749262032705042841652716631147570789319983647254953105827204860105564851542300718133724647390424434058301164873840628552792885082112951360707011715244037943349552809785089175757835259932356707652140127930731382111033523721495626137428102013116281240226468761941579129776844567515765895174295372152420395353906382458537276129456618413814183598564299318468999950020881217763395579693472309741687114968840707534965422843635703842165016745816028954845524607606823503663825378213703544476452414130664158937845160516785459998162917468433873391363501375662035545121933473027259158604096447907667157868854873669367311690579433235344825115384006296558488063842657530407855907206433685074660447173436952721096454674298603311318586562140829615406112585353585282167481641448899545818465934639319145820462684547858699464946564048335694254296035215125106028981559900260290385969224623944138823816407167323095596237122788604432986793169742082323862253063212028079169225753623829608372298461228271442871419868323783625455489832717286355060164598059656068622495327319977439952998298743136269793675409001124616015144021485134932548174209298285008529063512057684032141427923089823109575459733526368332734776365443921136368906197306896086681909509271980726111207678749146340375122439959496502133662798065643497649809937278197397737222229918597862602015600595508430483770565806486918842167156063875533073754775804083268841866512075951837011620963018815920371733885029280873047138304469386627381974293106928684112769771098325704347752366071557468636982542872986462739860125091929342504215901685399749398662368446784936473589989711086491802499543168109378583852171038544076247107244689156937483043954984389456545105103297868737361863687899740360182327063057216804754788370605293711065213991659528829043168594239820470048551228938866513334000345353819320058310711368819555311574228756942259101184360407685128864370538211476746699670527457659155429543703231355878670216402057892003619318301974394503663829114351377645122869575586740857347316411288236725132766977216011039664310668305498829147148031145453718283499360698270329991006432655907966104408674345176917604041380495069961029990209083319358652410269744171719834360920527962521735852634286205028013369903093405382032602461523124932929322600622516271497234724569634733236067602962384908301095541921933835796389845261145088260737990221537009042873770385704161075325002853423244757844688943587362950255542805292512576873103007408297663445809480368338336466803183864835869634780556818991858175862740408037301541174254943092870773536498635052812989730999407625398510601063760278573317939154672560154610535782332478592314224112086840706984796919020233632547806755410935894653488860924443556129938476606139117931966335592232518200599531476905778995256326162706449398179540886027210878682745595091342472880907265159194785699705181847757443579223660034058237728028510954645213546294666332624487167503480766021124626365549140757926255678005718344425864346717852282049445490750441776508161857075989183739323012279003143560076521983514485745928429565001534921086139601095356324997871213529949522642802511665682153160394552969691536929786470124059691373079062908064138717419723212667201870096345613110037092450210677069237551345897308712711815811545445524258720884542974336430426056676069560010568173131370547399899713078467927556787861010497470120341529676508675142305730549401804264993881708387685311459158053007945918781953685346770470406154610473093834169061560438258809912754721505838991387217911531088848911931375291098582606581781412436523407174499160879207586469899990982221873579521959566078508793891391214748437856529015625061044520793097267539130844173017131727352021146392303305371205813356487317641943771318179653812749697567562655068775618411220263010263671898800824554439411263809138732463099749915403384222123241473452944927769871282431978996643523378765193590146049430470810901353718279588728076592711109781407758830907061730468555420883371069328805078199123800445414552480000924230356355275940385322172907355251681187579567067670070537712130574682916025816103154914209409147700208568583217480007116475157051601547664719605026782686175950114453973801795651764557468286141953380926421426676154049573192103385449610906569152108467442392731058968105589472024055158189285695192950326389663658121348849745172274017851845085450271640559876082967767070885174264704967824467553009739511283722165045370590838231477267976122502412832084309380250191002088854937610634994381356624243367378301607551658717906769801958581675428938602024398259357088020972584970724897306167063457523144324813654908756807103059589568031278599568045827361577569150737678725871108497171203479951864453177882759859573528305364331980650025644022093649570743708712963155207866651356328340527468522362925046401886753965543720482205549046274415761842485183877043493409548757378831209917981112702380935562257841868198189715645126770714082273365723336850822841786486320755042910720421166227049991523028360239342215873843870844563985412760934510669899863417410691767182430258867208931969426801720301999875673644825972051075967476262192726182817721603587897031938525368112192345032373414120533005212710196840124101073100788182699137731619678055834862316350516248997841744998999065025210932541612061854182996358979083411140104378636646518565274501147200393680231645138356635497393085084205173085306389786101656679281583774636149122813371649167080121598520944583750738670982110257592536975718812750773597032863318794743695779803024619943771417868306192388319408086352267034446866354095482270829780887681331267861627140089601163906967270517275801948389321960615170306031576463115905340860149747432709143686930588844448955847634905985094427176789781497325389886050394095251492214539902531854611293090130881647754606320864268958168156977463208573194627901169328210407708876314442000625973441216887042024862412521258641585461580435548309291601585046238450632549640667548884314386895519141439807898505300780258966113963946550123941153324192360328081850630683862569882614096836409893051572098025575981527014788734514631643377390586145278756453099362246204756774358081311992417963119971571373539561436503777639039156117071238559358224148186931673684435107643801943801003919234853664614117782734842018198372871638515270791812424231492432174504123145250064852510781009473267148583668255138623743696781650586204495460688417553889037006560511001188491422266784779538715523930389297915744505373966001084326028547143533977796615666082634218115749923730264229827200348153513213616632170823535113880189889402486019465004001577606441538845389876432216102844459903689512201721885574291235113905102772742404670123769838977179959287349936629348617518543784015599145398318476204003582450650287981877172967445816828045518653057261676333890041411915261853360874699082353652477891467066256630739787697965815862355268042941332224676767562637383538857642566843876479348705006219516430843420482468748620412124686518538313270458412793825414078619143579980991682019863791133795047529798452798452420526114289694278589487332234927485774194821602266069187640341876024588290536406066347160900158773402090945274517943806198465279916576932392763633491177833170352265536132193902705181256405816145017127927477011736952498480779257809321807069920710681177278238903323972695881090619675554829035661217251102193231357567311395700440975431229036086609784878092163967191193581194317273897680501909815969398259748923554989188290285833701882389994390272613969701480346876134536109303803431144780199482414309689127452232766796927360630450568998863835621694291629107761354686601350955535544951754993677669368546286773991094353896359014406139055421912193021207199237655688970451771343253229218786358991646983527874183374192354595045743728343097245766762592900032622115459394189721756405229531675309017086808132370982577899965333910047636413745647301362193380415158234565160327708278543846164905934872423947605129699312288100048597243486140441595369409069210291782135261384401710093868069999205932798559132175954414748323910849608252743227351753379787699043802764220309738230664236084871852537852011351340542086861371553698528508835669810055565200047082209729937073195001948912820489957769014931010217731620096854408555317730018621545857594342831940949720945816051637366324925094775840147276808708330301330332736917417546559153606041268010247953193458188579888871615807857005869307914444752385613584936428675627063382376269038102993931676454728167835068214050506095883507703975091739984583974477688560251265244510599055889321553235600959365489445745369299221515010305878530891516430865714758331706681850157909516674206661746741148596483469914326656400269624220694350439700114643971149029828770968006798665506489138199863141538105073068153149363024686687937187616951481270855765705689802820093472613495647400094525573835533375538104852895271424352562529001343089496720098805805429764228152334777207132303847279780427550041911100342319602519439775136071841881764840513151538450266435021460056422178156609420887970291845715772933297042828049577262765089178319383770300377516588837415867748519215217144323446152885008192058609506297418675409130178368118535998143355822934429064318459533479519256945537195666887862977927183549755819688625748903708152360929234554095051696070504840072116961875239424145897677839486353943291332338512236143470182328914172913649015332267036485419446226012829308280884303391459595111302485969580356296184301568698897986807140415920122866173421241984132486881521975186992439994275711788002361310130914173705532571406796240891984850478748307712034396555668406856088762469193131801888992936002376986259577492199944105377675362324618742766913323056187046708170278413090065874633245026296002742969363136350245601597449313267445959706830891962379103338359808235791502525702941417491703036044187284794639485491688738649626084134136704557700512956018703831167683257637313293356943280220895974896223864386516584285642522378644296795316039104117917000950382995536292231970297163360988161712728678847035141288854737387025294825886900903899547337293169181381257492405161493225006542184913043405353581777365504443235377664864434869011205509873994731733978540608633779578095892274992434018930367578277904632783706275863995891217896659011120743344999542230201005429531959604967593009715370177418699742002660915239267379720043053229218650729625308460382813089314334892816467852566863486021387573336756173258174958028674430091187966311659250948082665775066154573131258192531127115264145822645003456123891406006762384789953457150427630921072567505401393433796572781449036709805893116440771571940263779657897797447536363317867133471275080087873337085779528959599099973358938205870262791777369994664545700672633601971864337288277065098914120051664381145061294384737935493641947651228253388054198166777588167701284423354502925132836289180058833708788684277588979485983275231536693860967558714872366722000837956174936666650797851352883938227681080752137733661237862608479972553431762132298418121315780967996157422253696194304112284465026165792375095718643894343984496790318153827560073351226679915740996092449843436835537015817009946076649044171753288711296342473087665809126125701876756340025435747825309997999035857622846298374019220187222101909851553228512542261024747691612908005131307688785845015920723729427289504464914439053416219269061260738752808347901216525892906477288158887338895926300050268096244543064834381382182018363100089054520002635374420276614559706859256623705734156309676098435769028839593570111306258237953363372485512627089335511808269787720402432690194955502522144424627845034467457994443515416212536804979960906541566033526001196810226068162956215546035586232761780867579263881670653941701039043478424722201619495467866302384661562331004773571392943824683230843473563187386883634204922186122430991588349046807638164867058274531754047866508262931020474376308959998155190328259283005410340451332185213665778057362887323313196094886092879673739591313380639190894600800320773398876019597434356677863053125794469475103196541300481740329169372100165775985492110293127584223317298786917316473648217580042493586649200969630747898873670520001785067858406405208777353245948715694338537231769106554322494165521810844262016162028982408421830541702062020698243308292823721032609539780256560438268944199041177727306666498463397292074088067306229864801643692861536782910277981395550748040735170208345168666636253131228412648239046242110613935294875897475451794257213678182452965171601201486222220379856478394694591962416813493624209941146876301732779368800355000512026866466268074845462691640433554030432609231063247592290450119339700999795694370671959699185020255618424086295885127853801075007270602519124074031944438756986695017793608150396129682857747726115722124614992705523773451253849211055931095752017293681405006750317071868139971267250141941168907191678345755054383461601042721898837803151881915848174153854959212692936618696423435871695640045354318687978361165659271919277638922731478953455243167380876921937687586887231779749855083007175818429809201386609837416845474686933308844253677635815761495985486264698216411458159166193766365558542517490020273787378339029729606357920262050203108919655385460635312835120631866840275235259472245130796540184895776932811596215104339633971816290220385092493211679681872977464706514963949460458236708938740926195183469938108426416611294170993217207803816029336677201791933477950135869080571572539830234893291068723656160963453834296378599894668018418412569270807706180436018513408838828454412503195925597191878459633855691485344384395757755973341166651877147039890887654152219658461797192163888997327903023146110317244749721716522637152078903646790492735926762643159648047125864368625383157337705510654420670556232231002356626152228844281147168895438671217479767804460004693505404848534626851548005139442611619908347438889493487224275242674757763671149145907016433935406790603682398348407511928289413913794105434891742074511426675142151887043227880603985120075073818315665060446262626238099857784018773577053874231728117185860434394603715583454366398882006887491488244293973921251147257138725697777238902278670630997249787847605601950198743066749132598988482900982262857387890628565464167816149286885260057594284838627798893258325576795494067898717543663643106438791238420859848168094161096750074721194201790868499640971189289106244300841750770367302388430233289938953658600059072588664082475687759583217433075534997818525712427611036864698449279172426054823655065728314781872517771534399297369685634806699609937357398343898478112131286752726410532726048193000611864598760010189269728663310127016785985283571893641772744891644823755690507151673026084213671194370772420844567070469534739041536017158432790000717102264296705745924304387997501575599524406051903714111174226724622198140867879371921844492614882171705859929341688893752645076113788573943917751346834306739083684125754456647982385245452342671758075548001671484255913606188798815332154256723587513543094362299646702093949555920528885716814401655037022236826492028908560514044356997664295419019863286753504121347396532322857527319821034614155580453404202323532110640097264730716056093046849336909028391566581391562789267609342142368733179657311630941765178943909812897487190099939207154429954827446838937936914692026120218698490839481191381096103532107879797694170791203916139674550792736883366173466066977705029819412674562320606297052726047087135266478832706223207201474386032399208772840318165675502317234671360050897361498985624725096611736049597715094671995330559306828953173974800276541143409698000443566546802308176258285486037787746216990668820153729235944241836036898041208300957486523957884365396038238202746772649295959462913486292306355774974035306202224816071051107430211589352534226741848841486873755661652809529705867079733239424139756253527971354213312178314790589700005291266315504636155758622808300107652682053312951926368933554263183991087487885882248698195385859110993363498041288420573656061887647705606310219933448053427539901566678407198784344553717129481447013240856141312788492875297296693016219441283828477974367534557037217219932494045631617069958354548050442758911683271853299311870154025920448645868707720409572298356737246790107096544029116111580848577445162324419242861978232589917388503888603366417626848749117481326339947886562117623987459498593111043721983203364091644469625881957565655961888544053279352580857590341229651567205927297100323056212573741307676739836148387503985266621233017102465255546820451817531530522050243719212749405284152269377438053342058299682846629996081808854526864775365981329633987784497612240597154654141172467089535791831696533802732157630216474205442305874373604671584702935159097585182168667020036238893295276960031470139672906829965976525507613642057374490344546955615391378178044670828596019252898581922800324306400040628179093312219689036015056046236345297667744578669127432075228229612453783263291506035124452169696932404636554132372600567468738328550027806542609501550367366610565849759457738731679645928480438284362566815145302236775871892836986493052091643403610115197180022621398879837665331257927291097892764509700677129725829746736919436826053038461132406375443559545483332044606391152243173468468476720934276464943968030798134307751812795734363633772099919375564451118052409921974418952500504204969938829361360474389389461774932501341835176338668248473098014436739151193752255164666161383811875392607069545091675096985300347835175477251892394194957341166311174146937415320531272995479786167662383895725042483201424466109433214574826484381109804284920523419377378921046312548675666928778966404770854286120552642900424390937281972586407415868776909814053903274311124314162637083756792552188628796203147622838202890069511890616178687590999023634013720158064036569826885047923233267995943501138220041150518128634678865630258635649360133825715196832616663820990280195958863680898750172777044535263387927987093935397770212184963003227146058962342343193643853101122638209588472141913652155170349513081017644509842629980057739922218162472389446277625526849100317751948209709517109519951515247348147208961787258240528894233710240703717216419441361115633040551351626343094509992919420813545716314636266769131218550095799130313506970767193700990514094697055645108833052223005302240400953954890773511187830131386171654595420813526539090570074722461747415251231986380414420610161946630730214119897078628226181251901983410485916647265503342420749273059263767028134066978031680710387432899544957078268641289657407154590063475301978828370567349377698150074324161577896392553677158473178713242699362506426504074325608140507345193530303960929197363522288608917659577133796798132096051024689455980856563422627975416491639782254766786283365705819590980166470223729444245656383623511927861025550467218553696655534198730516701579428405669101605434325908849791467782694389267198492541621363974552300123130273720087360712493045370057434597187568764306493984452600943956608487595484409006099655881035316195620150639966256375422064847525854520998736316398226923813735603563794139305884769295068923698380906132052792210993444977347084116262975910152642933906990441572816014242792715132928505211619723347226521106538352910850857734247808597188299876982495431333146061155656139521917029594235531569108839713024408736619427420859943338034976367139626485088554387859881222113357251073399294533454592344234645025639809406435279105512136091990515443511709579749755599772578080493208113708160268216419504621478871090313946088167360704975637093490016176041057109792760899491005592870690456517627922938230814295786525164694167422518860558005031094807213862594467932485594460169672569167828577182574157849399991852042882809788358219872920093647257439136832996579053199309373984427619590677213506226448865699634218469470233504826954767774334637753085462222504716606983369648388139000069373298735835803567782890344186056474705120449477439025060708258937382729857534710489952653027805286746000987917076289130962274106131443463647526668234673928701397154779945069985360367424380334777867547036564995141916417390825095735343266977538987435425111404111301962682448398943654225680007470880333018416644320285364583856687742582586541622384961911982910859056465106307375156594040613329828119944033103015362464456046356885791920688082170095237558887574809123220601146252834914588377944818805138445053976434652114842140429073830748063368596505726892943963633803179166693918941766856829113891357043203748103283220229564143051039788057145884895055354831848890465111605058071713570173821167304785006018119042885048646274388818933465980367822289670368420229798704425006261902418244374244789010632682376203597560591038043149411630357657961532620352645497309737311017783583203752298203322548067314651673888131121181875947543891343066573285328899192845437066074828524256626634929670047941678903898000095369881538271558353476772642462551611572495302875977814785251044818964542686853912329269487828162030940991520670115946927588109514392418461245133982631790005141238596806626406393047146141920841550269962618013924419957760164771657834255801319985438962035392166486217088500412327166921410881248808444325383494879269970033959817897701460658407388587509053070978548135519396597923931889625029113064249719753166073929197586763375119233946310955653864933221213912996463236557550853427538967151065789844689810572940051151389143920708440271199936270398723352455710627448701286707337099009295952315746974235894399948711430704617257597932106614362003283516492178838081569820257062401620226399490190028608601324252392599348620026578736020887196996024853358913388131602002712884103716036609529144439583166534922153831415516119143964581840116733156272259179133923810013008875483686750685340561864080404330021451484827147401192339755869991214695159466066526955745566470238331103813877118988170030179498873765371352401569659708580479984409164083741303160618815705801983679060598480586723813400047732238773080897646086320416736078776907857781907273999684243658309569781579157794983523565015396550448397451488849320473328332061384342437415914451415063884134567475204629254242716615481534084265583347023523871475017287605284652632098482796733471418293601810591255195127426522593496545400902654509883135477268811745625449483862346356117055601384011948853131704138098965845370922716557288126999370329189867721365192583283000929230536677700836857989758398014381201601986136102213996264917520150977073136283486343370345339308346569389371741519731436568942377098045266311108708835599601754607367442647890383052596592638087409506444504443222510248401700321058592170094656502012750852017709006109387124977037755579433827750534604581031994030446912608223815373251389635565294832953802754940154872237962818117689103461417905881148059760205336134487359885448684972544222409063533827713948680505829199305592309931665195759067173842757079818071507607122393264242091795964942499878563596188062668580912423366788203953732607149020071322802565838150808502959365008966511608915379096246439739010845537934724039306840843972367478583759623370352864993478114125580366436018137471104807839532081199235914765097559055799525965625449690264008005641854595586633464371706560011737893487853494010216021557300097796450288588867671276958092750700281371690075419130282182666213037403272729718009353396491746070558832516947468520776076337782178621926539938173415953258329353342621028846188641633369054036718336438569314938381819800196692342960709102013282911851181681658974874615585719091754573367738110996449898145773681780148798284836164531372688019646675183592315615416413563271610777278040890904810581169573680618058077265682634156912390751261856145600782225104426470866237405802617066043175283915256851781219196898057267119281789122648901659599914264126460810643687809490347637287802436187151835533061448303185689020615887386133953232442206221194394810297304159014887782190835877238696116283536596114099504589565918971736973438794636920182508843271519673256049824649336570392787781249131503058765791337305001479985635733495307165471004466225455940474132783347374404796351635205922407136789418903092648471189171877780826750691780310519725538055695177769593324806485932747055537001611254186332928299809956198716907858399204697969677182252539885969073434952463188129671835743040276479558770490381031864943997984224630179757917966112127957917271932238106821554824537546976668948764358790172995064636386000207961598525825206619486708549871229183597259959594541679783462986574490488971623567847741395369844089885178142143718852125222302884450567477174154849232154816826282305216513238468544927409668713522693865374697200738906881390979212042894724870443857516541108956801017809911846635988917434970839640861969570247265498393208761554401407336269434154916916792056259586902774106258078988700914801670646092330040326635068379580609965476532249835602913747899207964166494964851876734043820842580964889893806663342401932012901984947158823702940402768757211639788488290663134631652786764291881472836571510117803654407747645882458178471839121552514999533280321025586617245748190256054083068401304798331427044158541067677379440868333289827045209547150085317385392977763775573796174967430594138897247026933539571568173433001149773549831639909469776080777295912250847666369881071561041019208121965012837120536537283260215851016296927247739950081876008362072064117867867157143807682316354260862166146224239783143011707322941069641934195471069555651182740554290557425313155468947337781306458783767372645267386991486399912972989800900923003960396562006559452283973900939476611128602466760162131275680095307727020140214793491031501438732610621430161750150474237438163547618012696877975717942356088187529606038304965998711735393751550398737653105904929086938862068610493540735516094074941070859950248188137171936741926550801006741016497782670657614415616833000473826939019592973181058295730337156417947349614618961170092476135171521254154881651677631672873908180857737130478236975682363019881084897951112888072700450098823352458093728972308930536421086879577525856920362438735092148567450535094500160407017828878686266162848346316564030529825631203621562536235498068080271099845692725755096130582349708111833258798482430454997218951870587172591252265363199770474365790582395058668993271071872292242150138359940111610536936022976660129366383641485399512170474534813213065977199181206885174551372800530242257579181631728621943215367459810108185513917995029696258268099664883352884240012085716987896897909617261204675169237480866280603732496672740411013084347098214105578718534271899192209470679917837787720108074904291683176383449022278163881086111683268588737661802319034150699431214792562205716080579051784924534276370408394142379411700483430200967658930752138214220470554065541314699583959714268616444820905315857091972539813298625123704196752189848761201007129553389653359118668673144660538444219764241376596175879822388938150681083992718879981041185535837467474791285942947273858640264208481259031865913711392391653701503903441653764253997555829506412659291598796129710806197026245948119551308841820822623147637873183052335814088691208660125726768718323696215070492083144632004927960868444309366052045019828682674991949451659806885374069781376331244777809186588084779857673140856746277811694539399898584304514658481406459878465190706157253361089051231357579696716207197090149219481161692007536961073175256914664099457506052434696068591592669319846283654682144092960953597003102706768310339795373253152304596143833221541528176080535418521269043099747240414673158334542423008416905670341211834686757970672980281729427201692263662782207092793493563090001361808601322026659057424648050197207571471520672488720432535968230962645454597477680189561629360131647426331574831575764185210839561555424419744541013576065830521443774480648254685288511485987884083238866898117196312306457940220903353185763051221409518690209475203745968241303006701948331683873181180110685376216853823492800969563674185609465177613099710233786046017245755873332356805725495806151245468572472271787821424456416795446026338776179731149610317832998785469857913975304869323110583082596264594527921230300626770781484220018426944805287284888117004554462406365965797596089585403225629474332556016132799578971330190411246973843587919854268502357946363031855608575738130584103302513084895864580206996752432396724878415812997357615161932525263660145866892687739848903022629919008011315513526237171770917173349622484348932322867427214010153390499483692361292042781241961201905228261877230304299148734564259083719966549487760893118053187134482502497271320153302927864320064166611356104560953931478858290510246744940972214655912073704216459432644088399514423185991410546059911133422023273063101152284266799056286483268001060737765172481566673874043501121353980031134192286222576257633734267998483969568645555330149606601794410554027179808748005322068893654045420224212420604030462583011392043044840808016399133482707289714353602300211583130915098103889135122675591639824834268887416355994999569565149759577577908130709066113177910694554454808688910374795786763083907725934627768866885491461381879281863309503746908396128996911746303486652447396607346677048461022118919705112402448556855585973857027331479595435899248343885825730386510009278431218123047935470131748915668323278588972025933660928249314376282488614097755922171823066941915460256553078555142735371515658880913519939681623208534438925126193320217238847392928284674982152133518986550997727614536134703800943439864908059430943255843065627029247676730925665490932170941103494373991517151788191229723530368720894508819493028693604676730753020156779484223721947938596939682875489956639058643516320810368167788689650609887779090239780496497407017860177099803550249164082856670817639334463295929860412494271244291247329284676561082615709424466892887442915122922129988812274398763899606227967962033108649397567774741560120037425442020436620352819230097499580362003116180699716593830295591803865124196861216158086428233862155747430739813947024778564985355811616614676593806509570115869240060024542728926101368925068096179475477023610640758721013070292941061096274672524288797297666335594077718360023475852034433609435607126466667951297985908635964214350617005623599959256782222239022997699145138876422151809819987976038459501914534026853944851548900642675221090003449501157116373324325329307408398105532707598160858819359627759271947979354716211424741241536199950344461073217809564620674687345961849874955608051748822918062165214677068443117584777130242442019325684290471634434943169850434436168114253895050951566301416383246788314357079775169968776450797593862214942316750032607942466293133756034814081606015019429031873069511255383990192197998416890112995862241285495847072332666770625458519632547954609917269480458031810914965472455461093193696942586651828356633126922852515116639296270389613842152609349697657108815619684460164541364407145578013323373819217613621156930042357544847277409513020678893227810867348349706114913434995121784101127662745218708206578190052030056699078870737518007847331580353075205319001785016161383053220585038956568396601007044734491305140992627042872964733650310819172262060801481507971131032396303446992649725797365736901181255242435927646230406738286128736985916415773098550716805889824101823616651643147592930168093052531506192790262747495494493864555755838596984555914534936502608951455196840421175822242007237744176948391197633856616838110128238388863538519702867017014715128089343276547264757526271762296758913151248083741714780398461738704084752041030512697027495783867767361025220211702555527317549560552028100345249632799705450592878948640379261394943593120050719842461381005125451617957203166692657250247213578378668189461571704055941300961113840466130559729755732278374037162129084347300244474813330976111017822968821995008346599289601667814820856561340374327394844657946792276691841231229728339616921511835544055031840486362875459216094909889652767773373847895130422386967771874884245070856403793206424639282702822936416298130676177625210664357607840940540785671683041738018953085451909490406591120124080784296796736364757325665758389380472247611748898746639037770412483919058207907525383576515616916565268768717072832762054371679547427138810374202207118465634640118316299635967944385891097912089211481004164910191843441478862292994418175271162522485830545306716608402606545138017021512734438639070526244186529330468835937816074512731897976681780515701447471346017417181293963033789863666684546755884356245216373554935026124676959613571847109819666618122595331394003518138772093288041686558609896481850047859294358029215676672381374313549713184258129354829701959674441931143950864334916167064849384900251850879140302656557413606726582420231144463696702955974236222570580707670653124822178701152820755599398758250012901563049492402671264353622788762159725431700403470734740071768073638554112607037133202507986331916619174849296845367991154708683474135295234996307213031976695773427129302690149058457776929424880014529760924212516836551222541366541098767174498533473876872394210969043275289830387409599911611646310405734348303727499838319953838597256067505330522983073622876692386627727584799382355657149290994345546226234233996097765311726997924968473859724133006232716321202834145162003888167768105933161570018960048404592792428769244430517114800796131873995129862087570568008494583506134997889668919009162905848406298587042745772416693462819895840228624088660742645457390415875385377120978513597577111445041147341296781749641904253969251644282174969372354752797275132824366012214988291460956348278101270273429765677261325206779884712010840063238548381133242613676975692323070572594996553294201507011817986134049474341522307076574975662216023500056079302672958229820469683306362511609184174521673959091685462641775678265515255846401970668793188421280898124650486777789476441755704213361258722350128781147406592029370544035819367772541824989666801089407120674382672713667512745076746331006881517848897730393946601969461796230484646544607821107205554499776600674759885547400461742074291876916535969482410206294582026058719128043507952179872952696407270656081552017392732200524614783855215917226164201225297063244858202159497330687241932565543013738189676144373480223161850145255575406032206627064605792950530070850423288843778515263879109086470762491681082727740918542853762087060151847145955755423777771195891326932026312030643537981718533816163762224229082410115830748997184414881203782885584571168316238812318687126749686254003086224703058734442192162566698806296786419463924450260164451401862864591019468185657200915638661082143693622524254684655473151730311722953388630767064079185105228864514860242663401293456598645894225545210203601914598817522300316098980413387706496262951233974754786136391357158510361101052645289237527375526159688615270386489171694495126993547602805713094217623076644982447062853597346143554020315588949295637487350317673439136640675838061482463001013121438192084133504994133135146275594360273858085700870087511014716065936497834020316632879168496544015527626457984814184435860623619358691133110997597441248933832273683556709202479791543374423690214686977021668311520233871029102464057314034159134590035234851659225121258499127748133125137800577425343462386072934089705991973650840336694816042650728848296716001979505294139307295117120801295114165655022582638756108170914706005896867131686580300706193876812791397796766057297981570707601449201638278488033504437912491528742964777800009830494192876363240549065191670732650952815821591311732660556688144522635399773562413300928759121076841857962399782374562426882905084743883664533168756971207561376560970342442320135726154470517023643736351051308654748605561882160948592023752083408317274726863610429673946813199575508595336585662823296049582457922609437271966626992647257852592541695288972673093426893879194247767590079101306025567276844887365583938890554188004749633166628020850117320133577221345744262637974576659507927586105161173590747337105342616414863778297487731816466822859449410375063530646801620683074566361750634326837226129157176277766404267137822347917351633032835305088624278186742353619537474267296146056507403846953042015948122817739369300727160565335723684322065794403277120260358415218355315363618586294373087262162542629690303863919862597334648554312205820262484728928434404477084354680208171773487128609024831656748476622735790742917700690939735259575727819380096347870170209737042586755842493314026208702785419837355323664575461528470963909485383411814510218725988971187347449039702813828966850435190379859770459184740512127085393144057797578191946645169109398910091851050652274689444221904625391437912868808178589796010217563703703070369333158134828898355566817343018493498038737458713117124111012440439534835218492801140723132540076525128120883029519670694787896742452036350505776836202471197890681927070482299338415259137141674036022756202762149871058211271693251875429986848028711198363983137834495513160308775833189067386905415144627667296631161878599497942913083183028948923132659814823908630895462186844800109959252289568130242444488950659116587595355160905840175128811102059806029184805045483933518213986695301439190011729649916519922151754711142548353412517662187447280890290579930884355100820821953342007217647783417564856122703213889759565916754238544574857872648818684733242059934352998261120964382039405968215294045599534280035739333163828549700692228231946837228447300805072356781240312533644401160706861501183318421451202030721507777160188076327405990833174665870613645044265258910282487318194649126237201592723047543146808097818866596152011248974488114558198944809977887467447925548600319381593435897763635589741664086295509200125054956922739779394900715648733224085530248603840659486800348776756744694335350716200225362158104911350011601477641701276975529839033121862073748748777570581926240514813932648103800291702367829499980708926451101465349834790541204271992158452987574654196375488227951229020498896027308586817863993050392882115085148971616108866716972964578660834196585727922102740130001775389329830503729365658851825878959133908653626757932238786771537878905903776856433660148335278498662707458979988213802206241695361671787652742292991944452593674957494043858063448604789025723395023165295039279723310059970097384999471910754183386533581109281944945252586139041038924643662554729233292877776383587227685796889161571342880194141830030413057098935291967282061270790564129242530645872044292482803370742498287702652381188118785553803687730075867766165209648747343604882936061029241133434273921107400671154640413569613514364964054336463948220304448899468635609603572673291142932885519014971518496030147093367618002586900029884834847934844158145410010124243477626204018383876900952271885026958888722289608504359305969604409830733800385450890210336113645871945545660454474502038905221395763861022966390534483294017143027348254265130489144754816106655231298060813223414283585559533295489421380158592600586399199457297389055779749296324345442429147609747521961251436447115439545375694519347433282789300549337988731068495739933241455443990013735602050400370316729201581439708094569021213461331909288373558516140427738610991224534744379593997836009368998080086980632737160977617673327366950657780776108831937074587855594934279707875702144341918108928461309208585812749873048276456443929766368131152907406710857725053368265366239511356411779038428210586572869337410417241869851595033962228596740618869768104949168594969217374224057527063411496445323324603587967668075965058468044389432742362740429256780861937709183889691884471891679714344990665132814948302140907111144522372157312644968906870376941433692582004442562951320085831195168339355380077259977752166401559748912519390764601137782864400244412015402604030071678407745239823819871721552915951767043316055069859305263601853903647259351577656638479650320869213792778171353311071151573989081138524880699345263552372792282663360921197556389501308914276370199897808237140063244164828981586445560272264865743445613987518825541422540732472197281328398698609384723294916901674894508601253569350343422740711929940522212648254820537415907271283003023668811871415051501670305283809562495295347900499890242848668443064732151144292110959921660602814512261367656156159991513511166726451570968674683108268273231394240413209748422315874253490956844516615234720954492412865911512028835194043890425222197457657001650027767091069204292150401419879063183863522570620649764285286543929840842293403929370855615306977926622937158886357572668506054996304237203836820118831912648133945124464135589589189467427335897665005539096661584761831015489940768405811846868900827063740059125333025825184721211418034777439265133451346767053611135226321634347249244468387566107716684657266705747794928544743023857342098646728583419754378182879835143811317610207914884738883971185441567879791477885230832570039625593807526314735407213485239772789789967141157533852788562785071595232691653469580312812065599720921958768265978400332028076477699706890636081114697871033061720824449923403799314912580970526740218995062367855557773475552188378507408835651330303322015328640303958529671919875970962290284728589048584492148983938725850688052405757318947820456470699153054354017679019562159911753851654024718758385458283161694155069027355904278942506085242760090466400336679286387061293011928019596163973977855197292099953024883734392995021230347073302205013224819716661742166210278611432257975033933866172688386163598970884872484090328527327960977071895235648565991366297889306966352417421374068917072923709966668275368350523624172188427924825376324235926313446661562615638783842019178187160813582000679845390111453171166263645847621131639480612269055688368357128448401092411812444997031957276450678085345529191475235151934284227356899703902976452368044812915215101813015087494529790668257969040719159004077944551992569511850160584235882208729080540356004622461967944897821635471380995329916661707694386033443777593461045003031747158689288951238811234497931985140149159988699350609177612866173614664343573843149890816779422589201136933925798208728501590717107686810799198011036338082558932708689259786977200685376085693237259090478355573167292095826310024959464515143197367625890114570875393680800361411220266139718614213003822269781298244595838112078060970221996777500502328580489750672296962449066772403505097015192416682024791223190115054528629733830095247375940614399918102405566699851311768298661947152652937598788408199749955022257414031665492087684999066238756895047115811081400347858030780198049200563647277213951201155658842221967922535705510553008333214112310934615183941953427099165941042226056834512121414469186805588537270894288160364350294045146278164797107342416083306453101644208753261535742111911651445503433013221371706805163343203533264401551257048276097226233701636337726262048422243472582314032407598454428757817573710955490476834312708264583078798481752213568702504225172569190956215828478384195685508950231585712858685976859739362216852688898582951617047336276894750958837916064879654188002260432215204310105467507035049999421258700595019726037287786972888883932797185487875810293634393965616680760111308839501167974270112609409789757229949978916182708569673465793457981025194214380331097430146314772564579688168787331678330636806056741996881637857805911250554498042362391674681482333989194694140860147018252167000972643358813457715756662663126460529862612498909039348840599384618953945097426963384767991012911854560857342236403086190431559505365069515854978930249667277513373735560900004431364637027167038175188093717484393941333522570323392940534442152705616459779257560417323132283654735092711947487427740908378496459155808629080470426555115393220912024064682916029361971034477063705421051852311671184608903638741337975015008672098191288305369272497498303149835611929109815159323651105444870672790066780156345760435297648071028195731232151090874216275891286616603408823440385888974308699163736399253383628952240308607398517553907485266648761828453143422720444987519392673662933246978350191002423790231292914772139321363498053435484642838333543013655110489993303088737526425832499396391421761187609657183371002219165208482345334953677588239306157944092111765697030381711467037876467286349030348091541127100220696447494301705319773666994936296384168410880172577358346397908726995859268947582271814840250412408160676609302656915152537391133611280025575683425965773028153908364946141539607577647055251813498847405179043712555847107524761312836541332512379638310661599780831023625296583835321903849162895579243874517595438449074251489851365088588229127832618875881405354624962680237970085396964400190600634131586489872947124266932362034136938929441004307909402443616562622686919551940425515768055546341737926991672874299176903030614425940706660845442078335731941580436773571967807738205134473835948230569748406878326334224697240097771181083498111217775593658805309292615241759059095307984267330751713356860393073124403389945119409449476138620990474539902238474143998711243986538882535958533083855978037572229649681280180098167287335842768489268531597698393225692303228830460130200451865322581275939928047045705261089232783757210833080288258821617474365539870777843852417537716835984542030267167972295089033937265735287630630336324955142050633942905479544391388059777507394866106678473902946810473817631205453835060479170246365254883964137250939019173935261150213702204245379065056552508819891798087217189128511133109572067648282830060741350791546017327859569890817047244054279621623917657922062040516334052362790219309714295538291445276543741007186066773937158837890645375177287754512718089774857133763040903613818097494384317541570782235324927223371006423047574488610473192030251317848726306013677531346660282449787212025013052830277095346055589862633373061237195732416263325549615093758068792483788698399073433049153059938071799694381207209920169458569429610222303368803768757382560809010757177774008297519074219360520065450679373542629590187152372870218655507336879634843574215516630867650416477432433511035044373890842226447995692249399184215161853414401047121905483003684509221532059579002437738976444134807767244572367145733339428580768101337798887536767739962885076997370001194347660573465082169750433904804838105848861087116449049996940006460645468403903737735519888202048751939245687456694422101137297441871921586287493522076504677905427608543812475462849150241537571052290203306190725255287641760428625097658243820939171629728603519682856652495947890304817901723918244877224329353767183095252533772334603748284480249494245685370758198921611505163219202217707032826866118225708836051687555202097659664593451452694427538216049661665630498859361613092755175778819035924526482381559728906227076397705275280432976347404118957950980569006170278365052436373662095601047898701808672667257328458831660431144947806217765371776007612650085386732692024097118926093591127738265864878718404168254899749955735256295367597619342540242477457734212471100712091687070330860715556445258007932179853220788254664249225691261704512935548892787972112940368857680769869333371282460012713243458453582747785988044591392069834604007449542043765216124589842579178044957911777617482957989131871799298506837830996496054766446219409488992430749034064659005427406614988309814133565954986665007668880809464588958623577187648968214199405780645034127743342459188486653233142160540836735031189482114471855259953413131305338875727284830605477100584073745385800907838510508288974748566844868499102411054578326892912300358190302820138608866185161139261730312323852997076007694851493178004230764213544740219647053661408673034363388986385626192171211171589437760500626809960671684279401119540180425630391274376928999877671319706085645787512827896023769607310831749087145205000083472115866365212667566112846398216883043563004187991884201956753793958417470027048556243847737369658285476968895847510490857518328024700944977723776694390375423805510980856649782407613191294388164645163555742983133099139408581734016151181985375547239803181640382081083582273446271823720979742014629799404640162638968778381278539785247170797625084006048157255877750742972928765035231214869037457919273475728420958728618931626011214996802346086143244214887768350946378989710438162596773375648587137520781305841403875876125282778792171102914510408409170421379501539121872491529049734513911989306839275350263348515086993583282287952849639552512199125167693264835436463962579424750330715206744287969643337752385536397683911702256958466122078607901675973207216864754080909522725876137890916288339419077419456453995873487941145343557574574957981902398504055625224641578412464081381547345704327089744375826773180343811849014353809225830617619168179072494953118715502012538347125410560019184177575457186749565856471895798088590851409461465507292704244383563440039878654828731017761440123992135798177374893743969023951972318135762498328488941136158634921975825625650909605553149658286282087197446597447593603589405471377719664146285189565314518521041541427918177199756321146392635420874978713363782224814740176655508463253429885831686528167418712417241712443124665447367938129910772052895984818623447298274993632456456727147705710747453600250751882089172568743539361410140272459578577054687575694398943986740633118271304955539658913634193465051422569593765109024648791209081391991413954596817012272520438576551867912545673625502825378156426180771707911692276326618157880376085890031952692571036121520585609551511360225227287022168190949662374230995522164109152814714152763786743380628017390404382398249641867013586634243266107990179159933543837646004065095726114686012388505743186320947907799643882791213738070073430061081548246899613816386347999754329458353703682336017135500220657898515877062579681747160566400929971949340140102884392157186354733182836447782078619377998003379003364894798762604131870584635312760854760240631682721118538605636020744840207540967665508434136431824238126035633326061360136630721731684585212753265763803204021930881235374160564017144500312528190083050678589530906408316902544960175038834154158612823449771963948473986610963008234143565825328053332710456592040802606122816096558188100761661875162046821077041466107221249918519306611838127601221503322796482916331095822260576344854399532676700440065131929491015003136218171869074786569526239235121554158639588282833781138385611229516052869355446561781677635734451746008638735514716362592122742747295043275559981515569018816164954300304414448277932624577619996728235833414851155804521992606809724744824471199321604082346558007421963032244060501487765926670164515093636066025577004551436283825714456005094738357286069770486192517952292011921663549976345331854053644349247500416325151187210984167575325107208401532994483535845166640159831934728451058359985811885562697203440222474648198279177457997343905338238552190211063932722040308032308724030568501099289431000241186181883962631902388531831152383494380393173329725447258097819078491986512591897507786430821439127444620864323893464786031283858081090699753055663098106226869928355460438526901888427469950856320143713644144679026519553153401277673160098778395471401632083931802224774194470400272528722109396810551738036016070484920689542684255775250553279709285514232190600058260329625432809127604470813912891056475479704653352442402129825960582177700801982195438956750197802724434224727430322582925389465097383072072760859798883906547576514929346502273913038555106554297279277503625761366312901948353013532057360295515535678394230354300689319554019192117293943271122201988444456520840580126712506625635939187583409986362308761636614057168217331547310178603500429909472005909179164372328710600421755817678835686177863808526309207221768121244089399621337767502858170690281883739550223396315662174359873505623039836470509587185157534018186605440658350162711640243056055000726240692038324026439758988461288728409846707517487115003942171793085620228149437391873619428180844574540821854645257932581907192994543715442908406409704650957426076779320224951386351186125589187125492042243172330586055003760785282213689502155363913798314150668657760601293461553617911614694065344186568549446932119823355612605471806761298319351127870026580760482197767269721443043352248383164278137332043106142229732841503387902873139388768849789956089592402217293358100351471908098964196465024703395653971639678862743082562218620607895726589004363912793954829847592061714094375132079073980289657986647585470875416166392612487195845421408940732162386132856067335241240853292319613652144467561385188053454183705592432961903384089094815882821930030954056520539560851986890133631278403746674195353439488910449115265857301047168458256445286945408854208672602625238011816963831912197924695040883980940219868247987672855347421029347000094781289853829568844537766807768418058484677849164372532189145385797755393686960135633021776593249645916328533346823467906800578938146421064488034657102391590483027200457550402233965391070929042698351847907248667306063479622745362370519826173086719699702559706091221809532728254140913437038381387373407705749728554521496216667034132178267724774761845976850217660883001309487613143119507527828324170859236269678819341671417843128585355418122187597055269879245671373190647721386219845639364713619832421107671096133463247881520133602401057644238002808659618697491278604534744208176754323611211848743694733751000427860703232383810643593903500129019788857237959587754202597198932502922050176415704311756088484485905139027268172771093787084111051621438755426177817260998122051771897680544931985525678969281264261862824783134567900590772081477141569767553631334888361979958435056110890332178557168105890740123080345880170469579208293518465914783200659166900297169020979356099249060368606844463321840243764232754802671836866197885666304707628791918052796627875816631835743117739765417261418829604010962653144227080913988051585972403394846668506642441207163051382506500441312453237092827634065973159038323656883105946734890634250462886900142897236788682430611954091588179793413992519635560212102259487498366195571121710280072417145601896397466428054206475759674689837682226092602214050303595719173675065918415328757105992571238677890909563983237632087964377806144216539567927242180513692101315147797177808499390191625687383768494669664204363862912947409588892457812179754052469783575910410885211434787324243980820034560998496040682503272364830872589890505199227636148001151385358907759365211810009823918698634391863992915344138316210495874042959627171284192519710114600311866256524249337460214571448590187012506219951061079005735784424613326504497982022634423824953461452035837716703476763577549561392032821832285600917069190078086137919326839059307446006060641318219300049106121025060964857581177329030660519724872380869693060695727175147188465847931953991387064639264493777500091696520187839736124059839461599953465068447845238708615116853889121026429488485558982836189086087272096813071913169597804902995290287977613903055040237337757984307291961836678952741045806024287439226420363877463926243356173899847301624816166643599503854171468586005473389159267729058712172544520665712076152285264555137485456077246364353452675289461496574961561633870267702468064899018924251894907261122687669528254035850902675109690524183859231421329239838591304161953474890985448171012071605551655275951009701842704648912386599015713524172664568769239643477459545383428144839616976247457153217058157831521317001616177532816920530263950091314776555273019718763267942419625296695091508053134432293642431917881884751195377905056442556804928863474305603387603235526543442090386768311632141097068123378879003391610374363510476262466915304225878566742037010505240004833306109602749286495013621112696965125469409031668943561966222031817886360960468664131860490424573838341320109271707866929661065626212578679277574629759129922849698957658891820148342548141458978008159746905926343577784897830532458534315336067096770756228775137509126401407676429397242587503708113265629852978742797782642709314308547706336498074252471436206224160672618776964367615359997466531395902933415178003490255454201079062549504570491399667306527191040772116750156719076008304635863179268522336334949145459579619087442261928978791809534826558229056812944975363542408326238257124444209094779541886693605789501588017795428406049525216324225963372297908601654804752528673358796393252582723143572264853337264663884466446437913714312104022216338327730892719579232962382108848587378441952105113333697809775903319107838198018709156154705200828020860202305851321161879570968652261101592172619053804740370210012798988909908765309003980065632283445608257333847482236080348228714496936228764356759815237814887539573566620693173264153656719904075355022339284977622724937311670178557501357200230565458659787621875229850604122026802421342481840154977621360454713888677401874480651556909378968612228717892728168700903585688014099121578042240049927551648021066139142674858490847084648650112521235753047372777189649457217778310107449947410758555620678669944607600550594754303371647545816381325637925232513034136864435279868759194506276436862436009823025169845106084521966184275444478277786666055348668736682080332862974629223071743149393692891973318090381494531393150197496741336908260333398288911401163558230373259750305143814225923555752143579598808807066274556281499062510813597835054743918567729861546788907789949149125073007139536972252103732951512430064564045591521195356608181882393057582749580594413569796511386732040563972224044042967462359938635117695448985828753696536959154557665489410607637226030520982408424305950069704202935072294397128603235087975490126811181977080302228692470917712086356024336174694752484883565131347636163413527648654766282212385232960478119915155689065192282008675602091141061838668649053603169515870059646218836312032172035654234807658372514325144435771841022519882478918395450429247416156155964560256932571840662541667133175849402342252751389214226269193706044098606101289854235085973907720684057101789649932266358618757352377093450442682324060225048658275014779425581904496356413421210995460731219915244861181146443886405926764883364424911705195712228514144286472332609884223924851278981413497554109970205391638477224957758623042237989743903569458360337446337508958429804712872269477360114269324395648665421068731823222478570235515765548301766790211642085000763084363199343061009249988823519179029455180893503496216636299205855133841340381336884430627539097953568707659689475451240460096754130374165681373520852761133367687675795967094921980962154327285271319459666533321867472895091959491063386872416000315761576380135056267013412130070746709094562909712971755143698032548137930526652024839916630541521879669109114289097200006740570519049488983939444439759936512556971303167397035831985575884177385496899884649331841287706403729208668570125309685720499636737256862588031433578012740133200122970147315699218485984387893697078817816376360164464883672043098665076318212324263159940531481132207347454080505911986643897777571618077374914543413801859587310816279901712172312939834373334485507525570899506135562553090310402242880766171770563473612915239226161841315555933058326308157248885543144653011780764843930323384851044755349220801363647705421768882007782542330319762542298060175738483466973241283183525634411102333290986183357341601199816909270460170082791310162062420938621124806149565784192413900098334466340714607331252110834806910421609675189729152566112543331166028569104545636458380363250381755174881179808089095828516551904853443214990275381273069194392533467862997988920789993026607426861867613125942666616180999764831908389897364800108038187540638234503859572068113964158831142458171224492394370251955344278856485321781518517244448389364489784085672251091948958395558558370994910655494157121830450779661961485857466125204589189966758007569538344947540743999568771708870984600809268212583896911760561354233676489608571449050640501931413335425493750159244108269797165055222023753889323072465142181290482633974154260655754797500845488717527780083945950821222249306726204990507325739619047683088240030658529796029088775854248288224954368564518441235921100243950862209368858568319127806289044801472659668045562520768357772407161061761057587175340431845135318400387999466773383006122001765333466162590708713294871061228369072157684608731935396177452143349601386902464220578251794125697593910884400264079877794095586575826028156284149984651961199107456799000011304259146658160369934780975210220230418741318270465333297456890870726975892712797081630109982322126062929554932372379225493151333738427714876409516078166363774086773063050373221325782867292890198508081303489817835964591020635006367030574139061382554269295494339126097439128901425568589351837345455679889957720042620762193980661743572150436429028060841700311822877613454467839067079968004403094405228718031436724551349719164804180530984392765369258367353505226025287973347400375482555465235598281685813208112595882081812624227860717832720279993740834897955838528877449306164835525148286620103414929364946261208160688013694576645771784598598128959122491510385570900967955910772374289754417879574525928288271744510075621915851720445635537391301843981490733321065206257735828192128983093053083136496044034218749984157596601849468968840845786279244301538455441824361565856172791613086992462838463416759346306644821983990140362746978042114394162495518419997222397475687069361934095356960482699599083637168660734011538536585776975139700302214134465993413916101485003720986442962180137933886968321051981147713173567247238719334415791073445480796856807903708879116497174165615142894994693858617437958128742635119743139308602700919052906514383934904482143003571819606177666612215697055318454761436504986102943085895862500649739095128212694113096200365105470573666946253901821353290045956586417983599416224073123767684917541785998594821583103515756232747976930124115324477551081725126674043810501571685883344745268627665252203596234913551287712309291405693624314485862613396368488651602542298107325110573009049883358774230632244866866749604033838915288589514513367277362189834391588468384371950815125282262417594042158023048306071351735220045858237028521384832666269797713624672820325227419372784751777960565656611498260747570904250527473909912091791266631593268054970754832492896134301394220850737272396979706484658014760211033458645556120136745021317412415328574434104142710488132424933817292808364356988886504723711625494870445806582692130744474389008939574258193389610496835006334081834816416579725024328372400336526878823120730206891821550320216217840751875947060667431805018485889490749993117182286311209400708527038911851105514218793420501248870262337392629036845015713815183301562738211697536559087258712367274229275567837511244292075574377690502000815702168699705533915981840714647032145397349356422707677573392970080965189234248950712373991211948763351008796412035356083932733300706964879989310810700833857506941442849338536632110079655902554799620312007758761096901387558114907248943992557811830249217335527271037129646890944423500466812318060122354992777664866795183055147685576744590225349355235336445992592639792581819262727091115061684937856571397319557225788490078271785208033010242061197505281542674487859580755538156567794088487169126281068731571831086731896845390520465796257967120296561528363925097018745099712219402932964556577540167525684558542948375963885765015574145766756896882164492670914958311299924360812216780511110902274529823054310472941820567289480492509297774065075571983720332985437342234638605328517403786056306582529587324048854032980879665167516753426418811941401639328224152999190699178165116421985140734854882737448384905126496388047837586644466058041548104917980651471709060933606941072261988139330310059154884218810217664362696623982378517633172435875477883925205973560001618989407819649040165310813090000895285223124621824430989971138328477120722556361492557944908751807361436520338574753020075171951088809570913538176019898221800961336112082724054455360308561782733769354978947284151833617501869112697712673147886215239989591907523378905152029049386117715452465685467437765613749772105889993020985009693322550382799872406627328314320700602318173527619318647507555317578044259230813228588155220912806370481563032930300473860081103945407216506562109147043078181423687494223542022861319931575537162933807583650433885602762884936692443689173371085164440107425461831066532634415432756421079888889224444290459124724618867885400204149117250575922788430383370179026471734616995936067328184826086761132342860205669312071066624111330524695584527784874609301470158196171412239224506680817875797161112892987968227698407102996843782442569650796070513546955185681551665033138940019436945900793871286296593409299591515046591832914948286463733802180746836504676190843878229540551585015054114708377029964527987741681273089738033965170897671537350036841184072239699206633379009366593089271260421287891876574740197201607422674677553122283099438633727222590246293997261967650806840454961801907679213104436431413227959807252597079859425299350294774345064517400073131299316449300747643305538246060716797493984187639185532036691782768349475997064697314397429714952511844790997656582442220097855094491109187826045446095771960687372748114484115571069509686771746032479660289498999515066126738003866042985267300617999873439820234299495767216335046437609356498558775110328959079205724618020082564742641331223179643001993557331359169170093941378474380861896371191283117389019157016407343817596285358552225576407750853603411336533603901011725066648372140798827728634987891947705365856010832745411819081985838419457947087134196321187064677745753335556822490468448222477284676771209982256522822509681894792122345188897658399069267676060073322754844880110648652786866426295751094671052566234963255106964817549831979132650970774764481170796586404949729476483446252996524833914733449265586331990546323476974514950529530398762328176105411139756386844310813260215958515694730230236195742456696541184456581991762423097526878498403827870584079154396146353687832770997656321839019477153965580370588070923735430579879550056009420134089593470840765356861841124342178926735102474808376355097737963970137015987458486139988789690831052197408164070049731172801647350544003099458408301566503300021639356968976618610650114593632623090531108672238559908333566478074216746434408805863909649115779014044936143330630182692161375861471598412160669801157404527576746020198925306779449992502303709561137023750632347529542441875222778098765811676621221589090836757951346353265216331974527039662065144181034835834237678953223668971421400272098487289373231065938507352864342344210773495240495408115159032045165874589073667503371390735808060090033346330190067976004675611998829054196132009698458289981653696388241510457961548186192565792724325676823518226514219707871394822880784454172863821928124681391520620982047304565800928410651473694269316840638541820440107308777516105808945136111541810890472709661718889154974721233929435254277978362402439735507723766491499260176908550718253965926849193455034063213770633553837453937758568210695625479266340589547511817316588661931565998482268306411818569988515654220743966427804155368076701921410472383785626681130914940767111435205306075097072542466894081343687911438626161084311979995979986406450518870348729777166999298894107593315308876150860855412501947342137547951692402344664409732010540096727984612083864928386935432758075998997021255192642755453895141069488738505608379405969580517981334372397650849759132698593507925598262280168028685900541455704378231571555015129187731564475314126122179125378019439492208576075069069525566178450907670467918160149536274956284110383522203515405788172476869269303994072066702852855715606949909225960768954622652453508426570474764726851752791024222148760850025694315438496473907516226349393219444920668541279426685801639008645211066421926675781703085907978741562405806340030990593113385490622939388092427226035126508968908936332119730202967917133264913325667993571095147943065316372971750906730979518845121594449421131275941654957005488630391007309337547476407449240974709349249221700435978031989635006598990359886587520349221976165699861031130967780958625253440231600804103406805821943434230790444136408874062768090523409104372284270109704700046793508174020944175458737906234544990296319340832862373792272216451112441702498335142001206631765944444690701273764284647017729117207868829807333965525642411710509032831955583198987089852787881355424088102814161302411765869782540357779120648609821260290382851003954628167791047576812818456500348077352658037800050152572644217989814660129557282297169557870278786456729436198851719888917267502079961971338095062755080300296576939800314449347510321795323828282925600248737230667899272092648098327549516573739123872473802726079539898305168378120524362155128451868054087505665258144765005790734730727622189021566901842858065295073287333666608226614565586441559718139827653471860742185793816501283288017376591122540869959761035135858628070880732337752807084630035525554062454118848565614649857404999506204725564911336440622024955991033383835389670269753826319101674804492366976244284614410814975189802954060965438592903577409302102740742582259978672555420014059274965755198222191141017322716006267919588875909667322997548717020371225782861439685538909670428195589324995396166448333823486251295281546271884334129448996632462243863120061247088770268952745601530960210334721052094656330556926353647573172533639134000919038251778597277975609362996375750794441601635415084091143389210201336659232730783775680469112217740724223283367137495494779849493458241304658316370178949181124822104143345674880433648280325294577954350241285473716412445776375214970372647380358022965246184839290821688581995390299720370381700477009288417597801397597506652089431751724290507101157480092071858897619227349387196727840417308700008387487944102874718318297650031190781947142152586551366972216738050610927088775284593937445276451773688146065760824669041430904104705214209509516809765925753860787538775742457709191105375851966392216810942972178565964414462953171264844763697975532225340145644224457538523897052125158733883079276780631219456300679679099493281992453435862499755445012621895060137306822853601381347711308790791018069346796135899006502322196950402958122583564033608447652742241052699109666012526019586632278079275715717033996837482190869906954201319465865371076960272426454580812254852555199570881583843872323922989447220509159535782867725619937794893860873793563261691330118705055067744270257795284195976547166796873249897535001115059738588033871714970211927922959337867355005089289560469407690031515281679558003425217378574495571562820961909590730663231465917546220412107017743026616946063505413225789041405327805403677477166789358941984047460407253891799554056812982878708739404628879516268513295950636657793444480820518665410757842664730063598428211018277268228123025945022268007988976716224033548269619112808923080039430193550952188146913575213123265257260857551832274934460042269700836208137800549819812086591009305420487572563244145663917272100301312218540481578335246223362676211555390330035202757927548594057112823890472601283537687974521135874486369301450213347386772431295277043924851847345872167128731919893348891280279058291638473358257642486716084053613956081548920021633161124876120640045274433869580331361425046212006157835404117751731750804277786205324078424975952345336620022542010123540369277384586378164452184593874767701349854182029626382576386195341563867862523271645791009451078288940924664007221740466706011557010989129263694729085813999049733821452438324652806832576711161886818617059397309176395816200749735015786932025832041821725106310726254845603335138398961355282100257568806899717506104489577519613138907285744425210509123572034953978669798940405226020186311237126825695046437944978738364200682650002894060410277932665230306163680046343290222562794791024970525313214040922123849176047825321112079571201492791332063013376235355561564235804493166454573356750678831299456565934773880602979227701084953619694138308781567946993778265918348438708636168537579711763955521780784004073634619934039947746427965755194656224224945292336787145328725736829907477766169701649693958087876485360528933675799041724185727494119431643301781029157952213717292818876365988950449533861049021147335016744806581796156542643113968456311729415338723259753117696482086980835492331383014404990553205721485104157665932789513967255710570945899119127402962942411617022494714279837107340431917813316944111404097990679455759132004842233817379853979863551060511020108000608407611375924083172783979017615432540460855329197140224104458476132411080270410906527447352495298309510236186138721836619079848573526901546690780687442665258540972351207155193894229183844072628624371260876584844444226312697933318427871768730553305339728372065825060782045843728911376116252925176301639561126050944710003032980666234968077039092612969178403440401801423287381906176417142642712304045590175802305187097496318384854537813270441202708835369490452117167575107213612121915150666191585106588143000909189523571741967679780536315509951459426382291061162240731672078346492739541714237155566684659189620486834133772403768391009679898751530197640992939281294531773534474534243472768462976646319635173449039023965498805655555439101470067406867498247713468110968378812308400168293707056097504042990655977459925401366823595181186754471708197357887238154772996393765816007116969488588503670096389935020570170098536198748142502628531847081436995845723898799527490810708385658604754812397907547608676528717930206998506020946102538787286604636309603554740340517959723995832129848283240775583509389902956348247052063119486710261066937723524637998635714533739043630595673509812461807142562731301599410927171148037911682493663901767186930415567328691942353054677401659404311668844739716171516877887725404558021294668124403168572838982502659762741147707238414413305952982940581533500830557955832226769142845525697798738957598176512818299518165816449631391129232580644947868242495115614904893032049196371445875109508343085157708185471145475164392780341614849183121484830723948553359339276199947344486193844033861477425499283704812513273560275419720691469432600040425409334899045780242797642462679821882479279927824322943572805181855481345179961761139495140790128215210997184341286075292654010007413029723655127709913632343411549365419982156442112368451426779010184715880409238057017526290119874029454293267901329449381754729548452559509718486931102680772179605946461554941531552901590101551306874968216829521938208462329942725145672090052402815059760216424835829677139112897199360723091310846167716831479865421062394423825966420835065603575182528519342494856716754024203207773434954515600774561243427681734151961425425067946421364362010902149500862853912182636210175163207282238107191889410319222853993400886477204084237659829268418244402638529890041394897029211084216353837403489420198687866613245501520627784200537378412710386320840099784877349141520707885671021874823500173576149881605344910916749359688195614276643523127001914976342045056351330058859054211180100677024095587968540332139441598128399558476529723217680532757465422848402041147998713344080744610072921929796260168105850242195426645059335806641148959935440880468120104514780584507606450745980359166634244632543259380293277403255111107984829296288952542072082120464597364643840167952270474426250183855777722881651610124721686946255245771141500517420916951454585404727614224083820036850388934364760998255167287879629346503062927477017409302191132870523588055579931410951039960949670632798554077095889274166279691277720422206253523838361057825985686076255944652224796266333667512553997720454793994497858471264077099661578241471229371309045456930898638388229093345628385506749949306080137141893974994563968324938782787227988954824300974095188405208520891001675532997546532438414459010674035852332369615474743725129934289181337439799510386789966927914467692702491450925495979258512641729158583390469845650858416311497154643538132114376886367529147768113446245141620448341614886611901228342429705503417213862915412500883076176758689065358053478992388476721558697058349443287765767338047980772871249884966095435209526546295057300073656645427592462476019271979132916452978558462582842278153823427928929632743433972650805842354886529130840695215271220682454907976050564647484324876444449346717882561646196160753834172819948032413821025614420396586424009290500063875902276220048720612306556462782715878802275593390410373242121216246763969818444971625326325621540240932680065887109626330917102432096384823383338525614298494318503142039835676038718294193062445674330180922226540558789761843319870230527963057283148047817909813023045430682511622657723336328851556840256216998486783189479625062629409458939933223263588563784267265003608656673303677649035412724115963029813060574009608965959010948507675230908873466511556421900438649135277199008697065382945457110149520837446992588656932478418957484075969477718715453725079401013712451262535010854379574608588794559058862554082833288617493144234514884050757077804632627337011947062627762408834847281031532477198852372817043425053890882767949162272079001259689334702032620018261799001914165498896742246829544010485379036559474337632227478809705042795535451214817818553586951106460545572552920035562480728443511529180853549739795384419206780063281433022560131024349615849790519456178671989639663915664830501895894222716935673177924688341061928088375821319228334977442994628850989885583384422306468375205345699130828098598737941060156196789449179917596589105234157628323863670407504580466035750274533750347176668339149401511932980412333864527964794703304433145918248044346070683708251584657064961389646818827054567753956649630210553312474271518032948603011387882506690330152653838821087272667176884824200075119358684357259056143465547710434298576225728082915155279419374940222963654429292340873218188861782449605042877157617225674213957987850911396062726488143996005513445354884250040691022342308057288565867012083066723947803142184048264844283395648424954548979409110008039183865476883185189373616774996178690508423451817948488491892896915322322451042263651751551644909219291282249251563835960823391329429008006214304712185200337175107733237255360741209453398263098109267364399662276046136651917555218346533288304582782924567219189456633525429304616214734944197080129166938390261591812285099693868141388163381115275761284335098219658370527757527724449158727891803526260147497448410537860928146000142211126177382950268350258799477723735934400788357617137211689874714134623694874457216028459245091188559358115013332765844844530060247861401600405494995085012789456242708396655993301935683423373059171480207032518154748813463308762199998259543963880280106917329587144466354065035787160792605346530099725169225761998227584938406891255061567495574287661151337343318257375865279738859352204765227727997082165276439451833052756122536123382681192339288066371270933174620542551524569923797924391962660513563253936178934404414202312368468459483278731797042733772807177623606621837084989367133632974076338463054617147451883923524733310056940403308341800479128200763903846452229596659094185373059985297305819910271635022794166884566879773188201407029098392085306165511450384471447350218549978963115884359346018735467751172926929324839758505966808056167032146593795961673866449566335453864352159702161776154296631343126466234232286319040850026462751565678815141923566624719621345942126099251611956924096629154849152053700670720108474105616869048298304415961811997656696504797267989478917477879747984387467340142225975838164183676135160395877647432010314573996478012460658870972834142193698743457747790763678907643659152908768751876189499546781714734588339478820676110811307958490982778678261924038500787360813539615064727607550097606462322251596536338922002572260308402658472773740662133853871262151893264181160016963209051619704580698181152079626078254850408466826032073775542957481241619214143823995045016556656130460774681188417034749981187093780723136736865099838391321512771075511624323391682540628314504770811808351265981824137789737737424314147784510414823397008686206028754100252998869814851679735128187328774863625666380596523078858458785807795290209919674458140578312854589904708273588971863696190285868872549585252291746645737257024247947711680277918939025430847996033118348393183465072158659114696962008781926628976138384405872682414177236466069304972094511896459298508043418110092667924445341040022654666594361071747282700842352682710635091046451640720855030418940098448374144156411439158111100050045750518779143877521796546001443563983969505623700820193152706928512210145588661085516340228783945167705726486634683553735513281177282099124905031422210489127315968964136147156020851012018333914453202955364370197996285215163008819810156961542983777985730917088458522680748668575309016378911470403668072257488080341514494649641434921453629246503063215284858406828350751011388792472273652457922903353390214923203143973871736878521937292241215192227550946473775745376977521146012708850227689116685518920895456966245724142403772669778609292139839070443065080814384081347122378245535338993154216439389816223046112213790053603027654843856524252651784709206366645074384767759477580498275537035574646479954023381667801013382934867462028491583238736378680628852538019641995394730137204804860411332624986420065001343341850503081887168524912627046377119029579120477370677375208747009416154791358204646515798549281139308286394376278226675757485898995710001604903538953898881724658244183946733611442499210307089189692896716362133627329436941759097582474479609286008563874048922857241335140141610958651907058835102296776273448124899812856697895714708941348529118495372934199743729175435667019752667229220380487290848899354226088787128701828160292024526462214995373308737796519969525784302453254140697980842132966735159563462598013458770236763615115293108863268779630710501542078167722874825632862889563338746979599907200676564340781092451784634468707771815588411194060648378127049933927758015772678114914633049907402109216035585119930805496322008382771552114015638757395997288895478727010272098662519230922271426888778710571474759008067921360807874224886170188681881346301208479348389658783602569973756302542705711004123393889657228593462024649119441885672672504762456491418270460440741005127684872327544623270914421988908364296961818677526131527705768270318627216883337773893125010102324591586003095209405260643548786769617112073316284754988397254657905558691056323576755261319968527932025625579220774219907341983536887322063370631401374172903770879174730073737538484131099861182641959120504017305818350141581217332573825485591901723410481829200147782451356600592426655397157348595928967564398054447507815855269649976577741801419305615192958237459758988676082876611358343083386071500779659391400853489178017278827118681155362159618520835035042571545567145372815793608871003070596089709508459555128052769101339241955348424816654579682616033182027974016202118288732615892956343201576080005303214354346239784358127222194415426181499380854392205263696466195607324249513689086176387616142733972101850008172751564576889735622616116487594784544254107706910628680428863426002512314973183221997081049184119068135033058975304810544486520427860270543276447026927775875404645838177735991892948629618413678405952340817844727686535605805745213858159980867232628861649250247969970980771992556668747182834233247466645043239422262051967916992820483697696558381475964655625969407914197869568648805951936457739221003091311098696807190896808784021829491519476227350303543929754487673518229181117904409561228823116662597640320022716138001196367842530051996467223918571838243041202021914124628441428699099174257575001989662672047451079344757689920358546038965397112642327802825649560886978327493952337791474477230309026064043812237447724841011657860023217503037346282976072799191300863906162885816256864476206345607182264443672486701166435946792835612820899151562108700729648588419780502673493749524574309328782958976755121891081573950033300390842858926657178724034877104097494101500170142632087569403653310739753006958400936627494438985723824824469513338079965930397193748861797198027528651301887709452252186424437581073148972767947950425129839067430233329260136605549483594344152062362928909011309915578472857366318247970657339929698059246481877687908984655355101662367100893567511267200275584244729404647416508111341341446428660109100728238458320881468077540420126450253008411998234839548882323422780875427816711308374002823655827252707626131536254393121488536623714781245388699577090523111202091874316709011309944334189893366326572784821143310091167022412038755814874170613494233922817019906287170259320477350312857971412366929200804961175239406653523611787605635156157482484198134795516151910855297834438191592928735948480716847159655431713781158540497136156085210704248731393299182286527212301167873674873285314526563619356053553540758833091722541029172614377818423137685071480797229626152767298911904485004438331536401363072984237188795919225813560103239096848403127745891417759155475891345665400359252544734670035267564800864093660752778198205133868577078642662476754265337855981436556627859760923032214413648600293763350226194407777159722832067697090345018357142352505463662099750589289095660798568293160857335186064545879949055941898027455043240364124937590046964321965526337985026741255253700473833285128331061437458433715436272184996105240348294728238903490608325263867702730304037427621493551128012320291821968789003480605003305237947840011739784908741484558161151881659690701511690395983526328847959371902192916157227411169796527872889609754358508642895279363638497709520843223268967619504555386714466609576937231760320210025064894843226350937144192704705144677825191481033790034758360925831198252642294181592804476159710772063525697859841901321273058758664276515437124217268777049317507938161815040515465815606998832178108995408162608159624797938644687023015594027595459161171343103315348727195758525928368465356320621653710787904758045788255485319424898970564847698750094499332031015414548491996641923344598253488841761163250788777216432467371594361368914227420875992275168987112377305292675499590860472561704007282341193490074070397079359518118035825486632072203718383417155472206908096972800695581457878207059332839556470007943282887293204002936229842823484761875244900524506963737674726210825507027815153852055640278081334759722849866190570174698901448718085727573449720280027797042795943652716527303969264343039790445513494015976020324092343776673291878539332276829812032431350179247576479420798431235141223405649054014581984776321267272212650368747727280274902246972478638579795052095441820993300307310385598287612268174036108829427118175559432854140775880724413748342150258426035874908404320020841497420365673164710329591626023989894193922724880219745372428339082707699396410263207069149729313115075539232470339578286147893914487197363326044761690857471868425980744009673355947570549698137978825369305041375923173766566691018391328103917406303681285455309946634353289138788720795937549372916403244122832217921723228859650340223249565370356155914856071786766178065822227403429578153460878963192895984466662623986105077392503794188537428154537242444499840069031249498861999853747525198105582477085119851613707475596148076782502665371119575027481391561496920893860320113071282760124952577569496610122934717483150731523896270727864105534683488110745044150739757338433200404203259053505840315457726027770607849134552413531724176028397273803687460947693339715826007841472019164525487934285062070478813541167544435497535009323139376611601635471798457281528544751916878819964837485937270332319777223067971921142961788089802249004364000648083740912703608706475082925461911217839043640445573550867112091892578893170052173890660685821119034710859004441266093317090567966823223626750237405032081918310016140758628566258829152497889220960641662601390189771801131220248085650773061564510968306507234188203431359676692657660200865622621022025881111082288172375637434147729524029746154652155375334496063879207038860632806889696517810516320674661937094662454594096477058691817707994330278526231186886113472436040418755725241878164810000485331151225053125183486000364801979491395605099596354477310490579090755085189761608163706441295320752371168226679780145192007884622782367590014899420194725578299908582284848791280264845452301886550421406062338697397692615299258724223321592827380530404049486370938512336509199502843422314856643895455318552759705168815750480639894993381038653750627557500315484311101109173192641357435599076616228763135876517656353194501087725860300379387840073840208109321104912016724867987211856340863514362542105354540627137733001130900085054872091287332719157764234814982786866066145061183317916574593527430710991232446640605317856690078444135885576994789028764375922537360367875565250743352008971991297656243036395087498035392741086571230915857132469529423973692173791567849932184361536378496791093971113123639214492608532952626466873509440555900874195108748511086798813407428602705862994577273826705104894692495470040641380787099711046597767455410527849191068197834113551431872661893553295141860765794214870249136457448119141702437895549705833347468259412037510348387258392911038530709288415200829952285252408613031084839387223753190314942676636779538475563581280580177684284911750047518991225887411319404889113901706983761034938675142874517073481552682526690951120402394051195322662428700859023230352153585638362745496333717888921997820560772766328531079490795303260943039427068503046203992458015017204088747534117694828233863736473397815040594184056685153817469643689367831378162313927529825314124846355498068575370162411704428711767802204794555066007274490783383871092315347097649384813748200767914199940723932632863360885594031362222586205920712203069214736435290024363719728179025316026767680877048999792464980515879242996899568668402890156465680615531231280705029967465745431036001051054991779414216525356339844446314905838046442801322916099012996577677228326556198407792935885582354195100808887107974611940387237676164757323659468204805117783142066816682356251783526888187046147066461722693413493228800905399989123249658618688900843752505828643301681779458394023828977180653760550003256595337966196163837430345582310236686777270242760384498328982524271925902993513522349068013052320482235652858017923465143348787518361872440616604926749074574698777542811441837060069380419793915895472721112125824686713971457655769260620541621668265044958239161181591488700978896609055971210873382249598785499207442934146781765246640082267553192571134235502283201526815358670191885036106405420600888191824717715257285081362049451978145853890520892237846712499194755719701860259724494422477199508337823673161601676343706484218117432898109861327693078629241309377693896615166577773030027563317372095971244027559290749319758394003702043877096810640218754589970769999692443651496913116405345683711212494670840205045300568527980952442339637801386740695957798041451341324297560851862925106165881562962067400870937095778078205368436528848985000352930461801139850838004904757945684247140944358811556348230492607553326590819099567081580682895109869800083544751789417965897675358907888585456234023716723472623494423185995089832757201628973758066930315699062049626388305388767820469797105512114926723505649011920605751918342523498994826916796981835984676813492468829607024761874227852056346095710741345301748689629435178604984723122641708179503847618942229585139224345113985428187843390890741468448176738894573084363558810069231106203185033671621600100927982342635904809149537813330883300264025256785971751714846395605947657993917502002403622977550422357990408543196662214777052002838709734021822150809385516626820960438890840744022019417767300518071831453068755383038435293358118865683234962802376756909487335270884554864318212183974279640414463641288269866320518248201907964244353845498515946629879686096562324551712955348852276155910002547633528885450906867250635282564826339974991178192576992203895930398858395232181633219149887231996543236012510126621125029772199087330225109166925246962473685753054382768386416347690328516502864596023021253412104612375242218401439318112605716042104726807740663294302374743048634595015209458656626718627945944051997826192663886584191735862295225725724478493050944974173553808432681809491547194591892328512973342204170508603642189917597320879363890934248460527922303339847202082283220903721421875667496968943732941612799276745813499539038025426611528999040327725101239419214335669793373856877068484202850188580459249946951755488427191821166451223749524927187170791314565239154002961306340774409544987820903471936974352133738978644558097344622810020268608064833559897975697441342056958204160395300852877244640054622354023191053432456036922464638458709600825531097602952363319034817747631420180860667335760251097587735786140531828947246837165737880795150939834030083627844229645987294614245097929382092017259775041619062789773485964705711245429078143899669654460688288317485343573085208487239009267706905036914642236823831452646861496218123549515857198040041888236311665042166665881796776180330045509121912925603622924452203902626125133768669658592896892802742520396907845750029451427822332576421713634954260232722490921998184258480993843844660224337175575167384967600741948636832590116879961125283426622715689034483176494161367101122306364405475831658512586924177263930260434561567948724227560170799110355293545679888215953602749227664678583570018238325061177366824650477942937973516965578833842467574462835701537148978003540622350608348605270185392192801414972454321759285957479086353895603615408375120517766827631401649475796970189463847793248967580058356816211321579255051993805364345823502439441216769200662272198861552858635698928865391897816242949775748608555975617065585588565260310732888621193174717598711968159467394972615925256863927629719208171498325709667218374404358675834731738211571068025787265493250279270570799140211722023505641385962754688906884468026108744903277478313979554862332704644417764000946523386943114208277087261849187249375264488551467800737446123138696114733737751919633152661809222553316982499353753429195890691202515751909943976047952848366755156263799385489684185277536092257130055118652807987958362871123343751320886891904717124906968613040818051387827179682629741110800700759925508608866716260322722502971767949593661775127643698286615066384544107404075155481670167537658183400512351920378924983785561785402563008155208154056676185889821560006102998899064280395483652203677525471743123327876215192696701538006700833812510207764065413481156703771004548032005527581534389601280482515207067207856502314378927409382902444811342873158134371617813892311772764755277732506487867467909193141276884030596226739008430377949173747898477541387669482685782949609750268380958259312122706032833416985886964032471548624401872557421958880275442520771380535945193717826959910119845413194213872753831387405104286605241856744033287755790660906901744633757659288509401845945724767464806757787303476767060615221602552295227138330029221884490037293338980559490026793114809924487716844093168459370200174781639018209810272311741064556364699222634917343092030072464705124886999219646616256764214788458904654503506684202709717368676017182081193664659507101817345120219941351567631065218154709398375408512031135613356905029635626678364918662096890502852783366166661351359497924459512666460834297622863447030762386757856895358090524313093042424978669827047383588033266240540922754686402576419182583566103278444676682026978067609206933664576545916578800005869945941943556027387728493428855686255629193359040310355455698110512803197202064403038692723751132699226551354265594868385126852207746051685433303701154112460771850497119442741864904773433262803269720008296314849551126815207098364879989198135016507962012639402421841294938736180731051355213156335312262544878153188280059820113421913018652121393445580237510724791231815035551405405770992412815639214592161236376088890265959374959968434392842535546666015956760341298400098921496460462630147739433129370307780626419246379877452318555051022456107534115970285165773392044696741868546296028787951261195029938399622035254913904548453845367021888317076069587644147769150187773398104624046158408159773705432793347943065792161674662139101670573775337198175018919554869716309819317247998438524311000267362134159532214204701935373296699601945055109622223943798643320084135859369509018101630024684853769416869531487067753073226063816792758196226502919178497898270404377987735234093486978909770465893869874546257620821113889739325547593034876575175061606055138177384228479775309538886040008989205576932316346896559196145744769099489676069834390426335463896456580584510906976767769357908670435578645664089298598929084364224543650625597076830834927518289846120992986032378974012931058712267169251452735845427491836684993260253290861105344274226564015195916405262783900350182352176226240267838094912630561668649550630923936462978898507431371822677596357571676370384875798489122876664082195146638374479641508084505565673869229416153699596165543773398826619294895621813261213378825696173683462222371761541484364461838893834737430662095952438241970039819341602409672198869250148047219432171323855960829505447381639939199533473389076388518685445090310125064807093126973482166354683884762721575224915305856100986183986841667632681537693836936134670746947399424400215633346526565680252534502605191535266465742154491676366939406299052652751917948854397836951101534458962035202339711514241671082596387939768600796464312090779766630587831721025299220124798607951536885651027694086459105440835833263542476662924804874401994699922382659541064361631295325377035403746222893430896379030183345637363541233989264833795250197110440742741633972781516732674716388807207127778160433590032211607157470873476176480370157639828412917590109876230962559949500161938115548110656382685677065437433872295280051728824128909785637748768630475188534470841237258952064044591796472771074004118156196807312705834155870067820093732016405281781171653814159909731969034866268885586315931719051412569671173397103609246346312994585432551961965316646781976575079089143497581514363109268508853555446287614037409949610493960543444877471631460403946029101956765290557041002963428668863160680425476270039517449397840003361598449270088042079603832225970886064297959252888919396987251482678992375708831878653055573905320473007881059239357655760646580928708242011237337073088472860654345382005399802981694606428140711148080954853840258386241211699015132633829754926957995681181731668431841435333744295912581493902945001302316413329456430597777043236582296225543708578497824607605383694580105475119111383665662379010231068043053286934715365950964446142941452217967770276318579031461548394967941740524625425116677669873943598316703616539098521062188315799760696031404373954396725068045024748147676642457203990133054900138571792923109878461534095159168922336734567148233979523022875548126353216277098231510628416423038016521081571825246853776985161433204596376158952963217690620747693667427767596867965646298756846108090286634187623376973132038998482871469573483484554622201238200254699708799151966610647548969588070535891563569229632221776484415113662334488289206485502767238864453957278828874521153401729227018557169542857676023707669220092271542038157063166663858533871243969296022858186292649394215484931782713706855958215425074887020314115224136144573981609795929318855945173044859610914615755657726610778762212999576285734477687428634446927034542940725313803434407349958219338182172402401094733602025410916790953260647578965190377794644913684023422317191650649787700757451241177771661317352314393896881341635600296251823673984774703825792004327492676918031487397400080149934895415944612053941273915601338396147817466574013985811479106283910607936954275255054981963829152411077767125164597469104689966144123835395724526253400250181224797250339412377855454061297278822332908386880625569189342700884736095593621940593819148876378772289815287537533438697421389126399852451487516003743063873063080746259057618436388640728021080940920136679623469898758107430340580775679030953666265828891313052759366963865173301578510997613777804942427522642305592602995059368538029811561435523473094252796222405002673980785035181515323967051225562054489949657278269984376189378958412920833431006564459176570958915132379334752441624299441473949628931228418242994064869446432123986126473783630153811164965383816297324615100944321609778127942484403638060081171282896154259683935998353689493085910076261842225652205584823099135742906739831990684629529921459367338416247289046982322263878517436876067481467130748119790441773343450158502933477580387170866719668322663812245292202938471701330406315034330207479183653011648661536974868310712239438409275229624623387797834342368077298140360080926662990082829602919337372389487427953166465759532311492151333125437070025807492544688860078404603446619407964457008994449488328589185455029970195921253759401725064065177952550970551761255350487574907319007283152553590998697098892819816600436222197690927511000175394105148182462006469814745154492220639735779778042637988905332499934771333630879439220106701284000184127882652928088073415797078493921261676580953102882787068956647949842781323810826422526034498423089069193670903668074460949490601417316150715760131891416163514612496436175368213051816961176496602767300259876688981556504990267709039869705606985099675581475483858912244712182028801428406263616409545376531775524308091827243465776558390000815925018899603543206303586381691048538772282353308077607802744984381810685589968158277081576704655738356035867761819046808162609544441135022129946824770412543433542882050700195320195289835448690486440824548239312423269290663695565484872515449400446878577430049232746204824338508168566556047500692820272287076518364194134200331651904835156199049077485070378949971886459482863371020495672363550987446910591600003188175850709436726199623113458156231695280013261531733085890135543040641831197557343629274580503246548564909147116020701311599766178594828008415027573637930349379495972017372552019306491915085532616988996378929955436475293845745733151749296921499341351673093034315494597641912163346913439272678627118501530186188300867203259359535899390230673456282604836734077711355986907323003920140244936363003051986988106567169394974858913268858949313168716681986182078324520899698055429933327222561400862108577393290605277141285846233480857980285481799650522374565610553126754714523251291720857236413780448112849302929138566129228793669547182405765392924369423595481439198247993038598794171893936828112286267919352939513661220942192436588390568928996020127393873464476707866132563997104032041603994844455259185095302464748518520724267890075214906663569996683607393439586720210326234437325610038246819595990702537697603510193499955507562739125906219258516086077340362072359874905677664359521749177327289669211216875921101802269769919971499202096294909437528595960286236601275472012987119456644812369261101313598490458434803648552513961556248107429426665935030081659020694158209728581262624643906332223350536227098549857808301893272682092745216431772751769550318457700693141681769892373696754142236396699057088049723786399591812768342586220102292115835971856162436642903296816124897617863727855718315759851994721803467740420818519116307357005507852605325987587337223513387116198100946939601062212804848729459567799339509199816025710574234949117804333867653697663750971725207131810805651740889152814048718894609595873310028930535085949624066713838149798596474758615214561233107246508041974362647711016358658326941717353205695116658887812215686709058581116018054112636658030096388121735205149343165598112190806582559708659700038830563858039435876073969398735472477479307548686614888723736599180374589605570785618943377002897867736877200367078285467396078234575674227245632655061570681790386712908897871021711761059611170005057829276065364691848712256716572264102213899732246054222850187166749121667072247852493854797082771609585509589937935398579886555369568895024159289245763435128393031824175372454037797397895056470132760401445942850434614958512980124219818862752796614700989317469896380983417022654975901460855364180953635576680510960874914240228850132720232684965463647012442926424644729795863731684039648294824200427987037142166453852008922432068083931228443212378529077158347966808072593102735778572510354511617764376840059802110125135315869899297220591118888467998999891608740954361917446974549892952264142024106473755597229426248987656192219850575676578288166084326034580383332722809027203558894746099075181118467273563093255948284118705417866971828038944458824569187931976381413085507474134420248472039438463541278557682334926181107107563803624665861138535932224347041967900290974368537664866698130129360042085976217314757086283732657234959656133030155986019902484003177674437934950272108136229723881830536481381146811583825822375413012968240892420518733532210760990989889405960504174196081908496348612723327494446605540406889281190874428983603438284473685936725798227795223252486443999640870785257788762379005850843358957979306104822277269382240698698371293183639863456447632191808600136904504320736598335438101999187475385802654986134018156277491210202457256032474538002989936685898558994354755604727225376340139367082064846991994666294286790676228603371088079537802975427926439117335434351174895514337275952412737926205873518805101549705131961102707993100221737165782503472264731011197955674765931673121434138309879251143326180883185177738012625393316472231025473397995767329854889825927480847948001177018959483218814642143741695800894207308249680766470038907842226622015301319808501306134788100706916780940054293978819946717866780942882828563177144218200834050616306702674668287628857589430112863568908885723953033416826152631478182444343405087710152072314327120736450809546814516936373845029207939696441182390478298710636106350426136202208290908286280923897642235905029246666453576762359005920672872805729283483054431693740521445551084388356215719833936462726552034824622646016399857578233498935176914472585988381126454041579117625095799992805650465263411717925822643914110028637868780779818564354168164136956295870836399493510902091226465072675324046121183051293442985396993283248659991527622300294821785768857357464073413175496522633871910610314441959985484957771250816642922392780994326409918052718057751622571960211851985444565842452967832130056625450182744384316612488119400725237646894180203896032609946350194775877849777668058946124358715351334714160390591112399051975818463921035619887407896246035265456261029394018505992814718052084720759277909683645244647968343773104178820330809901040613703926572663092517062779836570326590387708295597092788486193748668026340344950771376742075912182387533474637802004262162542678405605597174417784187222786596754539498235265448346304494825885624940379308358926418466944860576567236206655920289696544123691754648760531609995708519416208510580495775129095218497631598273488119201282114530713428469560724441357141238091521811397551891034891726784586626434527192549804945967801733954316815884611171291456993122771909818227649587597372623022012531236099095875507657118251737271691535171407291807019741207160568906060277185443585587074856735000760828186507351892880289283262743558872418796674858431481806795242239571947869623998927829916285435232208421872980001594180486469779726555472290707967434591603775336702389681852709749188510010796775294745576325511144566309466618711908584273550299810951475719714279893397931315053584630160039392131637032597891119821799933213749098924033660127840142012170393151343094391201742002851230763033196405103036591658579709875059821451430177107887752760282004264701600906256075941139558976518494829750685872962301505481967893052575431653279658412222338860924074090143776435317268581654856452252642064876415310069727096959489286241622726798338723011904903574475019615902732671604539733253142114572339751717966143428016436003412708504876118992347841388240268610646931177330419145644679725634861252418358257852881619569606846838738692508983217763575591486292287632798653007403047258821696682373985183173997449581648080514695684695226912281520300922581623758478022803763539753262430530780824776160393410223423275705839913475689747061055802266158998603146027351811663776345067859542702605768962584662914599468195988116983699375958139443410224323344281143500439932280296378588065432257483744064669611978240099306999338064525427388329295035269171772670961094250160911754256284704540863535086486056003468624146238386662869764269681439408305079734873878210036107171340702389578449148094566322410583501549919002606687072142807759727762091818637801399248709788573401316564348233786489610714423555437204428946258252792251058590123073460154763732583037465161428295990380153398700277032892055948939809836957062394186020658292413832681849451961821604048450107132046312534300842274184310348958019188728080554466413606445023165052658261582732103403906927579861071330431932292946373877055185074190757860852735423648384028109463814370937175001192329515041232570605727497649870795941843909225235764118188941942401438606168095699022277346852305838708489789266391774463676449728797683778126772888215372736851815532945205678339810533762487824913267444453270926278561595908124461629331742414068731559483563041869867984181187224091832688703979973403879139856157542975620857160781191087150206798647173587484397853916571097793982541200919925750581277005981411962624427155298229878409606674862998475513230562788313476616498165701592437125295497454579073338610737836511949464546903907641962373761530838298528728076629641683781967413142791468425049636156894176574861251120817967487937032517050982989682797440082936764199437055196413728454903379277233273437019758409649738075920220664890964278742797102217017041751293793272459354661992190679769192973334622831899669267810286512409221692289969861209173315706583537534819669274273408521346733403852806676428596481160853743320516832286256432124159024715707113506138114560417920815968617421448352995630941194018387209295868010506995780901948844235433558341979277464895515192272201827738101834158403836445826513884609286102499883081057036771725320158942617118992597463896822321494117735876300489010299643008155426048663600148906911071860258368157626944525461655193810244667296822356497932193604215656020452598735432667656915329826681128854759483286436516291275674495796234418672362139548935818846746325340697638571003831896040826545991804132791170193916400803883890793088575749563120561027361303872548577178824779507585803390998992651794727691038409882912836649409403846260224108294075067047703827488853446025352600933479143606724124331803762957658201415962735280388450485473876171896041359599421978703548753949113383691650670056164041382844122198161263689843196582785916480537010578472595291622870846740323504839396811449871877470540745862203554389802532733048106542302452230679167591899348121476089139305009179241349636515282647908410321011611187058666334138251900213883118861526425923077367418094973697302151097062549100571811958756910868639821326439919267060372389355479733418675303704240359286864164813670027974703293030886969495524446432508771626332026200139572185401921431215375354751716368775627759590092855600029899242096947084986317037411989170338268205695896502146972562936002834200733304836073969995210418417517853984408485310121097131977505818598174660165418513952141802690317934971235798117840687739540947386979805874629653122618784520277416704621938086784068466422285602299194149035056095713671043269513420010190137517941240766021010733056726001167516006267084917342404032993149881231475712335652473824134682431491522081561790922693147123985989636611990643613077978018177219557618931331424658814291954424390388463624631064742751669584536252178494629295424669121403814483403664293859756211893483732131911448960818478520328391487897335920987817588351138636179177763086617478862667825460722309016782682944177821469241743240424969970845731638348755803719062394770718130213133817060646079288780706661074198929423180314515645442905172113549919338857310108643635297180454959799443928055011997807222882852198799028860225337005470853944660737626795492132719941742822468936855587705190257496341703303946493867340939837084160213036837199623921858828293961711154413965180353550438883832356480809840768054867850078926853130515818751693561565432841216673710053406212239149901223944634410057226965694117190329411370290315527276992606509047712959733729118392228605827772353712904125669873184265470157490431870545479164917517774601072305930892432465720818428945736452243117315805154604576999398530839585900839203894450928805629130029647898109636643881494644255696922204653346874217766737011045476430220720026448878747404942522721373139224895349758159954550703841361010566458743847107789828563905350015664866947785922135687921832752136039629704764595335400382054965211624053345966692001162770795815026699328575709995770244032319898140733622518775990547870247452711341225474983308806691704092685701368929114552174557586596803480840531914786006832859448032410670766211941957307119998246194415810829810936996773792911744534113317741849787324788911321755186261154490343272280078273145831351260476635161651059539439448547096307265371821687034611165748575748803733713425398845832018327996493808080145032021663541437199579101730547286326720756178048543502786828263317012108269115065247683071084010072944392391443318778840667121959397995142001580281047837949019487917659871711904689820374595280776635432454547954010810838097043389022964942178741668806366690212204944270470658116077085868577136106453362086352491304650709542611167742222027539367971494969950555421231629958428570372098008409553731247033271222155231969631281765580219027260634739246603071070920405166356961800353352704969468740571312354949082368631342180944525338990689449954440706605198607459199696915815369800751823666436820187125677432158258545289216025453266681937217156316899327438905577015066336678085318795636852585705311734773839827955866317889474714851052925829736125110154813624399113769522161726106946072520184745669913188461954373983731889582441340914591957774909613387359366139421101034775636241200248722805198258334847015213313385517603978940186090711779280462519049830550139911900373641139144089071526950992987436425942427718373599428474303017887686379305754824695393532758541041404165989797196754687502013285134621547536760816197138105073456766762603510450454536035574545447458736585686753899429397832865606362964643642360287954646908881228556198412812872252299220333072959445894703665132718259472832820085126080369771254652974295558423726741822417386569435535952612657803178578986331273916689413753536798140167379573065307367259344054211278950026035533624661337361026640816790570817863234010103634396699936372512701180621101389821057408306688998449680848545841977876020079793740197528890699774720161571504259140652442991670028390168116446648044373684593397688294844098518883808324645090767521717644882156224758688573650288303470596098230774654820334005647951317215218078145649474603077668189295956199191285592176257590225680976057856525992586780878831038643056127920578868633859850651515940185660280999776087952755337353350352375658961240264878360814355378269879835157307263425258139338846228675754172341866517734905505363701754988703920209674153183873220945555285160639173529504273059844659615310717527425799863613213762128290387495849899091299122574154630458707332278384249055609547159278331737616183917524340840171520174179770291562560904034156667406533730039565728151534857807418078980332357029955211974173027991871875785617686509570809645528110183263899135367728968355239816476893402370226262944626313828422370815255784378541232389281890179642512140194672328947837044616239377226822443636000075550258813749703998915255192089880169348290085230491129692643978359199420824920889262187201833562362585827479945467390923951616722410230689683079021183954443387329137295702027525443487386722702277729330786091658131158092846077285524513706255436217700122084591905773935848904508980099263007942981161571841858966169698491961087357795735970201062424354907792077457068385467032105427004032976168400845568996718875849804278732440004472128499086406829499968615353020168788507446635456168046028527264966686232562509288117398851601855910735894306428009917042994488698354510096747436906687294824850699392284709978796617205402803868009771683611399744503808459314504734914580690752838745452236501907925373895877237459695217803165323781071536608956558876236842723040693999162735601018812250018695146908678866927218762827605755092561024981329656088297567631650522625353037206464083167828596865987837912585210540849756426425785033424796567182892791554800162382473941859647721906791483599120082361660767934819584263608751537629452877748969736241632509446919726430778140513494136190996041783607029486374090524818206978127951168903733684150091620803440505521585253709280501001699801881722057653372284821608555042787283045545885978830133677391560395151553703142484621328686744710232751560660696896284870885656158598560836361743983273575262179333680635234881521847158060846393759748233754520311210680988560827372694980334007962905513648844882898364981570794178916098569215925269864898745372993375136541146676945776306407111425936635869925277170543114298764064113011379125529300768510231283486824072527329829052779253500980418907691416801567260594486054386537900610909446143032392305925162843708254581100703495288690439491313414510906773947450224907316440666591359824748164962767294394112806668016658521732319901978466408614463750570253298483372677676938495096139730969063461406997078879210645454354034290960620682644718810286377458256656147738533731765686696079846365803724939290896640037081899864432934383202344910769661116813376906265736124365478034523335725100253004197371453498658291902081232725742269549984234893699110548137140962347629591147370584657904273401321664186527131926865449248105660432954313118801843622123132992302948830336756687478886250945489945044002907097669672379591383286942705155254179940813481110849996900881080883142137022614147097041618808097653985346516377709996488961243557412276242997674992572270499606267663795073618159359541390894382503702494135413563633613688853028016704258990848516161195555541295946921839829297605631509544227822690754820829337309993345665718511135619649141684333544394679134878466455113201181458765840490359463309005853842875557739550526533855719106279800479889500375290982413035500450260754257479989359485175516394391697087458241353188164139465262117917138695900984098445654308829945928886547867003407545124796047968331926432718011940486191114416426360732119256352121712026933431744645701731385611259740623733677956965433320609298634875039730276826423029035809868426325541018448675577778495446417475541785138812116003769273110474049250491692938045203666124440328445484227250531078185216817304900698687010635276055013385568659275613222411278267777565961871407256374182812732335551415305705786615459471696805780727795161574863611767729397938280354499704484071549236702908969247486660296877861883180986823509852417960153577072109748647715885685450071813203719439867775927636193994403572122498248537053168180531364235819466539200457127906642212641841719932831541810449388361941693457894250127961349715977944806231512677660117076581268939522302867668323192490534014538799664216930292380815771465350119311574367390188076908970562188964679835487539046598436920055391535658221115914592389683327692949754904167114652539232712879847533013108600443991186385689157881008074662054602624215888664516280157501801111530796518572316096089376362323011146664124492438656399687856622371259056511460652400184404092828124588384884008344649566234331051515549962225348175627973260368118210237202378697334344669589218429341697501850892055052071312573179462291214570759236056067853765598092084270207581473564967529130446145061681553517254611751434089690377620685862267098521071192527363363387132343260617485955002267748923581161693164584566570479730478825058603383900082549577466747194840174268868027854891147034575880157856511344899339363201243303367827699284901007610353607965984199207815254189686308090401974091718203920317748196149798310250532973532099754924576639614897447873498666684483761387251772145873910103205313814545530681760887875747476501964616124484326034403266813984364189409014358051622274698353935677164394920676037276037041853661726824248085902250182801430389795591602383120701405934328375180169640385452753014301534074819230188719802440845161370304733753139716566224779336154500675140759284760087801021483659843282873299313689566895936154319197203442405249924008107094659940705728790768703899816711187943886529205768220555175711856212472790444527926571233693244965526550083126945812634933344071653658987000966303921272390773118942725755195738322809002514338721975747648560919697718460027930591376964019400895569937505338195047836693298516476796828725070879071505221520899375441060209383731452455161753802620128527666777900676336265527348358426055876344716147590064320111063097597594233354976130420208005701048037271477057301413305721442068691109142648350119584412764320672601176855334093148917865339271222895905754715179476631745943069988162408871684963852481702304187196925446711585301654384175863265625689988602065606384824789984928719751173731287610100604588608799367549953735366757073231625838497925220355265356934996103239910117040779792287275539621053676691968829133510247577602208287719090445992349163340797601641780520821279376475185501557040129075442395788649646484489220989533030705009717061871636780540315953152804045576127620197560323293233027697711955511641195161219303055010487854880667443315126256645638858876368161609585148668037044512670545203122459163389603519972304287050955954621150973576675436156331845946501326936153813566486169788379084560549950976684841324206380903111031481774528415445109066900184149521427297634299694607080934295005935055785028383837075658139411242176920891722647245090225485349557627801832758629186590807077915031779103696952237982210736137611321898381992979190547159475265872468901180102737012464421659883639226092837610101133118771152397330942602831131858256883870379679964898689179325808394060618687266521058822753241380337588635058958095672893881886487305604360777291488490768332850257197273116618510436102639066527769063096816992352198531467338347298972979610708663812331390609305293006564383454554363869663700163009603156240618363376898861265575008178023213077785450174842480399049913439275755173654543501510953911037801165006023900509206680107796749259573948005173798198082299682810207178733942725851382401041375467425216435975229963687634687424610739580798011677977996012258231787428660755701726131566002232806506792406755858200825985667224834418100249124405958207658645177823277881226767290175056047534718594235633171501015105287024894865112782222037471213063850658681539526067359663764484585045794067789363004170801604704555972875610358593105239066288729803273811046770471817571335951982563084775444115800359344509892696212104442972965786100817082065786944413106407596628298895529300898240622793987813610809115299435754583112018619120956479233633411087549808894294876452893237914514972386775333270851250301519769360354354231019883337908077140482137788901915696727511408947337018224481605165010667751051344154039653193423799726719449393746851642224790325578141963059188414010422432633753382827467387095077347757964903200542012594166172970929853800841544016263724854235501617602875314363444480497652008300468440238076985713916372703926147825160240231894814167111563573064019934454212698533383444308611945279687427577779551592816517073737933091552139883572759319685835882488426115055359833436468298617655349571696949047845926731994405018560311287642503451720388685158539627310241796135017345958895235669554200444878912665902798609060256218785601934610095203088186332730353826484613818270756175192482481676062516886983834329525083014910360667332958279737252492121611474420146225876533520913486876987147940512427489105579597048053613788416693565198064875892929682202072239855719686151651510133627586602065204342315116441829204037678018985851922750461418196826792270398147857773666150017398928224565089728587459704541799331341541729179931958971765701982819530070469985505357100570218310330127324823776576152255849821382117285602803620656587168369819733686869140463506753059519667164617908392659848692265329586625782082950793712988620517552491565817035829883612460449727771069621692454477705695357074863491229179575118260465519724140282512003546099180405234702295680500495862778195815836880594533802961145005505210629466490430682323554434689830079215406925490336160464184781907338937242912494645806132197734799122620093054494508912705601395109923375635291241645536654529748910924312515921555975802551527087473022092686995103464342114536673851544548159172127522785534231154606849936981177924557605178652690440768369320190949816382477650542003896975471979355483855538680764169608642612637458001754538544532837734896789119964319550761812925700216750521861612540034132226506917965473474179483154591856101807254264748410130935397489125039434142962931484189719276105289155461539498013167510032705214618374937678261344936698009604459357890433561062697439965149141017558180730287665946307051266846120767429757701850614829340649781121345968755921998008223853882947141326574879652938403947303394081627078983647697871704921210860443808102134564007401900075379924486524552687480705020215528012858731551386814059098976899519744285794726239045049970223499700829562064393292671999757522774627199456271076602355859858082192589288410012321957829943352094944299353023104387034822297940194303273964569132722395322985303479489182614539784583009127601068382554365319731504371637794241834789711807724652889479745634228464933592175875928711813251365347719204685604083864208456725782590063550200066051340523589815646550972881514694810549074928662864241388850992900064266456351385840790237967725419331916181523243651523646832992090414378949161495575976687591494561270939889102858078047245409909975952415357661179917335952180682242288143814720050942333418136685803758697487831024729072875861798137624004798884565620095667252775003794477483676633291831484755577781676352221855340642877987183223027077720046996181444658129704807186564047049570934459477349561195935367310699797694007786792107706742416459841100630670756214743498443186771576826538906836775886769156337274169518743858224972028361352358695510254749706616125458499569215476042011417252707466774068553261920641856091499795911324972715190970462370478905527757627700208256106850137359181931137327417986453763288290527540364111765980760110068011190921033519539908062140666984775341097881331005385121624970094455643376143840412428945562322161439112502095725432883901590290315272238990758807042936791246601839882681142358844433834416531143331662815694139839562234997429546785380392496837169397427958536269363394192402927479051734186272056006763176748010621586444096521321180584082284005359451385611967695182301511492385434743309763408812139223423113232642496350917263074647123108647784527584545049545874802606560370108429711538533166082037886245515697767928980819182230597986974885843205551096836975964449839350250672728829722493658925056077227061074903015708649336515664085117617735484848406841021989623679111107412109308975876997201328588610866693425475474348870696005806800043959049421523869000685466047634037425775967341942619664377037540487454447614809820002536327638743420147942404367835857454272400208585793929843261568313065919738612543807465901588256280681656017131323916719477787860995487743798454984265447426173894675097985565465821117720990198762026387367878998196838820120523480003460297795487056979460040641087443965528740394580371936019514529598077794721648215997153878362015671478076167930885865214202668096823953198365201893109524163842749510436750604619881114772303973237522875895579931464999685373878740393429803986228472729066801473303623045986642433813400006611272815021520247269804237441071629745397403164031423254784653191248675467847506968502046177038878246706983718612730572814869353702079727109162341809070729663328317570608158514230039872856396866425901849493406396636668155633192537311517356491759933216544317882894767972694780128193691918076220823360502501195461275300927217520340837415169347676838981826826055440138612810100412169002841602550081962929187272334630629380212350493446659595058590949892448016566453683149623197210760040438383916069261383553092662377373640661733191277740899735601016360110093107261323204347337636085141612762594633295611814041930917199862627658848429438194720355119989482991940301067070537763972546937764143078325795878260569661774041174031385513981818363112385914002387055012032000634002109164963361278631990795604740640243635417943010835457166662634837387782752879140744441280796970258568146545666612257294980690767322325692907759220612123252753663034690018072150411702462920734299914048802969110506107799819034459447342933385163738044854421542469225233101364856941225307240945651460939729207253681622982167926019418960275535317337895820662013685880321169959308981944802682759113747146658814643159945673718903786857808158822255053307617744604889286983296956595591834347997509807081880822585584823299039015661151319323833641772612465560138311596547736357937227995400024316074132192995926928186432906911232777873153972380236447689041069552574526426878092551222430978481336293392430329726669972719056617109314254142854845248097880532507200972855343754126968719268449607662223258622965622676517272437548510256804951411418644322477204764616500162895500347921415373424702502012245530115454155543498927608557016920140762067127655828734527938244829901244867770938542578641157035625016475001400010620638568074951395670155422408483191049489898323724910784507591872236360133403424166096245218908708069645312523895206300599491350898566625586105609013330007905378369802648459205563306444161812877048183421680759179852697983121702903341322510513649314609235284051380761608419674215851188914223511379449621286320472240911822028003067321835952784726734753394621094807750477201676081865160324960306027797830209262353748343513350504220934629687728316299863446430429389537419848738944417289068634458384246832195845741936422288907564703661228555010241153003026531937423203932709310765847376813668279265986394382468143050116820786255953461168301827254830138226260841591138697058084195129286833716242810251172611013190109387482955675270933753445162585589618471535064336997841640415400066834366489930279088105935743435605638331758377036810018105386530655734947402924867940354098087425107153549580559544159149391677196583963153473615144412373554270618249987325118415051668447399808421634355462533148141394384012795254581012855014411252360082844236080919819882394841513282286688030523998996766096299980467554209484490687581689601708019560091374422883217695887235350043896700774315594973949415359419549786973662454919140639994030984446083435246370681019339938060697719080826913657820373080175237226009923824069992330820099039748392780500406257528376227136866008675728178923776625782157718267555817078484420816388303999024631732718011815091652621377125879151631133858998573051354734095549360187382184296339626435610760833257474338257656967845548303524593159835445544915220880454674084550031971899234989601527835955690214523826425462018261614609132822965833335860558360441313198331377988383514511549572052252335315612901684855762511925572221720792327725356705889885672123167999220515322250887798189586279308324995407938632894086248738088224620009184577072794924833393767756991127407646555458031471160569566321358884428843948188190646908404996895164760614087118185282895488479487620517209320826652881861012148093606661514789949421565001361703624711007302700266667820349352599796484709555035026865717547284994746991415070190654631832411809866360735347482907217146314398533267335335752236842521713670419843491022734951024554811013192253277362854825224042965953997496718250787884327415678751678054666708655673078765626472948124768471510574509737414927494636033030802768100627133176118463710090095786975517419296267281306163179007152446368206015785566982502691695312223961797276156927992805115720228900215397078255276572826363025579558546671773941905207216580203080063249406068859068148910972333674302859984772039136931088094400996746705749247981198647808692167820825638360202404101239904459816407439308558618356217518831856276092928537967998453367737367236679981209949433252147109917346406142365389842148596196829107116610232673278290089281626869309374012195684505228349158318407588293566282844962967611811318433391857855841903708882045225091938622509005916280493980077971588564547861145175689927611293430348925591465122459240298453786355279028136223139792346146713304758707923654599900010517064072604775080169179853287109192890519132064099091542062124315430641673828869568328955079196724808604143225698889986628651450145749807220316683430515249462768603082749819426205687809797364590577784478502319370125539637745350626537296555587351039787883106371348405466970724981902256991021082991155673122092472647275375401255563587707057215198937392705900339323191292685963630256843344426874997787980019968428378401733393878248876072642954483210259406954290669128466007633832793594495773795951168225688770433498457466499442973899781002763370315088114732738771499333260482533025073994651682049575124075447415961381573339630206620901369973076201932143273204768727194614173154606981870972040730333524676521783491009995637338490413663748030670195985710715279151288588208884705782059520237100936637133541882391205752724872585289903904297819343259720543296677384198384945033084832196702515475768062700879412840052264093771560387507285327347587694647218298745252182137584779801252246094600343314141999677716401269805256543839469525250699387636880212634954906294542724415431740355338077450353495231429078966277840817515444439251025986775591893741759503244081517452895259661745686654419545587565494157369061974503507866014291505009973660424913018993769815818287093256658608364834055770266298267891423482458046081484953530383868575031153687760820368689488477656703173880713100037674505347614920272535834023923764296608691470618192092779500446611339182327757840088256425638983136905025598206488024683329657399951457361711428471299322618139097026840409977023089441212753379751777623456508760200178517796117237000336968264863467349876806901378272503054954494739649841591013792358034376134225922836525807047684172183966681214434639620230340701625722160093148824603804154804108716513842919427180962547406509128420793547470853792010009557453803101905277719097120341831974593855379396437092895238192387405479370778732747322808899973245696315073354491893909422719285116529594557262007111390134240191195070384974404353332991170239436649692829264683287929687520365379315363531023597523298115439694866917957649208884396044947501626808080851470484640305585862503869132504691699775850542068022438048328158562817438255179813855061815548143097481913210661741389173877059098214995498568613990624440180100465827245889532672163572632206696290743681206944017893935460565444381308531061533549841732642279311304702479189091969581329481742419100955732167197532075883343977752588131852264339457957525615652480750752556098269193646784697426847347061851747420517761361757039449204856874407692646962918399429206840409134499138111500365875043739635485263897107900228151237294680823197475938443523910575590132403330852758960036813999369061210136995635725913385772913921669905675842547755170025642560685961733137359797214705737210363741276848572279006535249221936937128202845812344797252460915775799215462129990605198785460377111838104727774885288880508728371956721191017734808804498918506343937832319658016852463886475311487134257446538929497207014103542609446937847661813743759603401988389557476282023583862027308391924492296985814252398279475710643459846880291861546212624803433981360948708968003538253615755332598663450132744430521529237209063063009619655051030936538239339339024617678661755753001617425696275790745890435763692768200550727252052864573301344377613044588040837088265103938734585009994938466258511396211670235673911966491656649497222910989405919010871235523172174966842853966570313361876651465535209604674648233419898875129157428884578960571138452362858621409271390405133060138736314308555247723516200277439992718369414541089560854665208614210600135009463219210394716415082205384470837270975281801386405768017259963615044946706108910967697179760869248597714021974203784268040312409324814766735612703434638273731648678057080021322405572379132029697953321088749996996036016163260938893977604332609161657490528990732277419538300728562978130328535160793652436937586176533054830572563460288580203517144357725217805149348721515023621665740270356831185978993918199573646203961820519459283372093035413397372660283078939181359360367063040511240696573458489882753226558240607591033649647871396189701450959131387079155679998319501436341906637938334109274605373917211626850257095298614312690319196868401434501436191690497751157415150615033876667608415310240405082472333756623566005936731326562908898819712183055617192100255413479580670337797930931829720035519110304538799846763996339412167599942146777469438565233807053346721446540089179948019058272085766663492254007078225841893032314397311712107255779158462410372225375986369840049772103809797692863493606250138206074347632320340205401821674549067157689992541817345510561593749773196658676558573591089692747511285083213376295011289070729422478601317915968408795421896715815422270318187955219563500522021024550545696137053760704996788139248579119891658016935784054647382741618172214172746456124214266387557107592144808229572858797537965226241330935615163590289321756340802649381057691712722843938105602357159702243838061136447665543504768668273011050229516851074123313832307864412623900455334514097497799158196248712828835817014075325118850759019110260064056383620860093730819449456907204308459073446204066175281345593951153286482465133955025514406132402730564105951640027157402546300202158920737404824431855796112945615702865733087119043124744197550050335520677474025485787014913889619184255660401360045396654887444380676173217496439895704334287086598464929508388494794111060286558065159236979880780477253190561693168786816948656635459744092538406152039376997802882915051384697732857920522822741538359859835077901777776920943750237840891703198673673016311465981918870160134511991040892507124584532277794401079282352258211195473006570169606667429317373995675474540437645471041871525140964855789878487587028063436615570683951950651117360470716269607493207312131758567478284762845113102421314634763161987942064667388241776235752247016962046106728123667335432206759264514594241560737062702436271361802774019769647479455443587682479426582058864784596499376567337408954231262829988368776493186866380811209259309438492412109995638208874275009337193440118636549872023582460592166031232761976958987515436448037974402480515827682928951868653538311911755655080421708781310951297868697153248415133692191146933198975392829439687304005550046633768207636886251385251857658410621165589936001111605713525641980335685222496087096868664731885900998230569070735980378109173035929396197451040155660999317424973884885157838738198801915070910187214036690077591352530309031891759867635771510157281004039243854569845397045438817306931272306185346610442188007522530314956628267472633623106824197279619403387815679108577270192641958250562305851333874441595293308609644424892971064972004958449885247390572637792582725944517994688271400361985293309649969752991951376205505714662373668922031793134091394884461078320155343216026193684096804176773374368470125635161253481323544313747547887605913575817543813848502942585365751787853769115761521394474466359691448797689365522551429356924721391761053260774020659633924810161141248682277197365074956803765769202378807888205632938695302872166135141233815080044467586223980357471770246002985792516056622414652522430425772627922538205194325760417337132802151123951931585567783531962124666931522125441800509002927604114159141437714020865841329992484129471073366355849764183542556714906744222278981767209167689144017022893891409199118758839820631884757822794331531292874934833903745272915499723770845267825717409336332951004424373926590128681510445681794333416102733805689417328977449910412780765091565259260709053471228289583596686247341032427524378375730206209858659783809618937203838063775372739437016348153467017477377060663247001628202403376970241182641027495727130784714624906721965022789504337825704227185427669859284725920471299868993196065845471243295919485624614028863421672475850541999122236153581460972556691684957297922023819924319483090929250522093044827521449254642212657987777967188160107602134955112252685823912247778403350394407201848567873852852580536803826184989551490516387963752572699865953566712320752143053958184942060729985847637441671058845851736046001680056429117825128082264125312956042349776046781565410801476804197209202623670004207189335588875642399627889352571695467325110291600662326963272651247841114089940616860159413437584028529101846176529015592924702291182425973920777476600884197335522049721487738800426039906545136854667389012909940427894415329486776075943080117530341535974413125905579968840192301294538960865818073592335292135093357166973507109949133407729874366593209980700712844671437357458986092441122841107984287881857497066335689342902128512930048767949934713667959313622798813189647471022077381246625887934652878387859129841529179491730419828230889713884123074998221240543117953406113897509456502256915686117952423943118017591848148062144311491343727813934665347469573439926998244252389769070223239936528525206152837967564382724552857791668763115858964298463903592747682648444777721462071126884067512646131835202528958308651144636709394747304175668793050288032434516858654326587621550244173499707976507172282953780569638831158579918564324703372024750563018052131101679635599993583510200755793783149801640752832241859091574731453858865542910418205117801291924239649602488778597839356082200792881343877755994373729034167695102013231621574089549021536539832039290665424767713138097315700471307613261691762691431821683340599956348397721595596364387433855701813629551853776350413662075751388590157425374153259415636602018589180479482909774891772936857565942279768407593740363938925595749011898911324222129900506922018262816952846017288456008882329892618491198007542498896653186504705988156785862125181123341060639573191259818625770980251475226415642726065745661228528658474837241689187094821890778700049772366936359860826061229712066635962178303591910192271289201503958877334063365542366551087315337179816281310663568170438189594608143786362698178124266808867964872665853019692320875636280078870616819138482111315345819149277317704921154304111692502963403183071716086536246985921235341388662203405850929237830502888768445602086042605435151035779374414149967557364023821261691809741442235100401117453737846905894351813101261356769062874135929517202926488944941779630585257936684815129473915244509921783829505293665194174663261839316182251101587375230076285516839157837857669585007731692190277027558156282613128143717703546060675478643658940855983048292078209972746920983082028355122852840843926229344072419002948586913120958208471688579502038901787526402076731807760983059157105371754312015018585719759897572065958792015817291952436420362324305924839479447637226400444095793363647955587710239809079485155015372497752192017557427675801709071495576611188873251153765509105245438007385915288917510992197963893962027861387078737225266318719761060448753705923148607080359099664568000416288419329223278113089088039250878077109235547777871832351212393163432612853485132469774089553042749631263692266124641455824689285407227724009824230988351397040474942530244536139461107892228977658459293493089891976491421457976132723529838920617910023483255059954885453574879214173600679690682571718607923691610453821805286406251659480822935063238816172595913278157828704373314265155956009273538688770475889827708645759726976786435321680348117670259355313461501096792218405167806727311512800226230405250854954755027124663307136802027185393353844426223457766662833629389038017716497037340534348232860640364345029433871358808752741645964273689168690069452367284327030431206596795536176825790269308062171919438061202340669416326276793435258782810601515940246183657555667918794883552052263574733068504429766256178536538175868760007328541359577267131632659196683398944288652350346195622466292011647980658843359553628819595458222282603032280679935050652306959675598911726617728343756436322704767060972571576377634124923436829778250790347254354536261149191395266055886633235056438105865675446845978948439844974874115562983583155770797545794780015296328999291199418983987255494067130375883961809778988619092693931420567961194424279279232238829419996585006700298629442433477455086805754417939477631813140231187706684309506993126081420788574569120291694461232489938816156129756844667182170716779565974628309201247230007627830609252257156723363646968226712878763354913183941836612878938594812385481669304055085075341952575151448077616636212829285962168146142965378340163865866306848355237982105149436788939108707296019891060864853003259730410680949893222054294836837012947793791196088110102590153953075523560297028167321328817700372985631901358980062758615916921227021100654369466263168811191542697103653422513969352188968106992686058386807052790887156128877547017615508311614288646126524003427321152850420077007479565939321647558993268035310265162131738620017772947379034705856041138462259341333205764661981638033650649984767595679662168542353691749491906688074817643977846442577460976715201450832995979164950389839783202510959805330539709349566170822729057554449197924522690042055436892930330722067579131296773276283262530194726150781443388976399856652547978920318843701767546317866105972238534747479794227623700063632830127537314849591248054457471613399382090777036282919080014438816634564114256791188377556339608523619082250484012307998210551447181142104034952395783413547498434910851874170125447690992901437521252506788480717326498169033090971671396374988717439547483056832957975424551349184582500164095761289606758597280433021357618053765505610059047274434931927312902085170438430565985682428300027042166704914374776014468669976639773751674469914923760857201181866441009796785723743471540775269005489980280466193521616831031689988002003743066533964179377182203996526820381936234234464662651114213232476615789694257096143160738233051125688240785080052856472265508554663862183093379569152746710094723952140794466914149903258540467627120571461657475012462283091394046520397666134298766216201750477013675600871395693564729734884458363158370143200370384080113626295882003751302691697667040561533344097072084877179815372787343258149274578249832705916930182410057022376167049196745561210329107962511790999955841859925175986716366457893503665751838253830784890567466858838469115732417834989736850086913468694434820425488024393381425616715119354252494747914182952114636718170097759817150624089331972063892442732541123772041623320448917621239639794153837294823247547033584546688364749379352334117253804745153208398175943030990789879586127434868073212530126422562366934091269344448063011826148320298497939956154948812725796203090842446570353980895116501507895583442204761335571940611047161954714341658203849917864592651918554565423809817718975149960768404401119828307216623159305062269511839174908390456836106701023681429040556777587943927084389751530313458201225127703407499678794350398898336054609863673921437428260353669155539152944846218616908018807344349121382794987136467368814186651827346994527149125360797977984765181413773735632617522940544508096869591705326986089634407091825176726151997627419234422148331235628808199631398324708030637854334920007563338382781271133434333650292280439548808755619237245827559473434018280575963257792710154174103906698940472512771351530538385300146789756330771294525989958086835103783195641010553901170863951792636247477306066150066569735499627747625500919928657374502058719119784293309023804269179294346085575179368045942946239855746273674161627531548654511242688579567033125509951679107327427130494740366337420054230323227507963298220095155213258937465408653419011177728599746303964197536963551419362511383599899326643699673374630768989249751811635066141528742014915360252191352152600944724252098625204019384010378351714501862804004380766560853100334104831018456815395186504642267668110058198411554437839607407722205655302707276237981849935596810311396003945591905476697826633387792546201639264174907999965312515385062352471364039083042549773768913739589194590468298002681355470210881648978731812928448157911821186084853267248687700342399900451091000849955254313196389989105101108923147397278001962429672832645394795805663347490894789135968179877758718954176792425793654706177212924503885798655488618737960663800041154917821237656246611494378985640089386735844807517297319986035926414154139066022474527937754260513219879405295716318619001543876937686979640189505115400863475419888400190477583851411842508509440057897208169353199414438089196038058045990009979526860940722895395661394113534825032216125541298386338544519519815713159250534822161151059713063572325282128358915638146609490510010572124113369032930477258045698766231465985736586074781199464561727913508868993769373896498185245367056940276904886094636455524181386823385637423175460301191390240787299786332115743501238097311541610303032238631368038785709509188301872720851010280993688670647280715081280239713024165177521889437782303665839020441864790602350848766330143002636044702324832382188110069288463801430360994870966422190224715706100306050658613816463065363995209897472266864870423091003488502834642051499480853269784359905747244616306410149902942436092074361806864289298341159739302125356110799380907674478668680558883927537773081321042852692616882085275975867348240489171311514922496571256824439377344600842674135919949223596520624171161865422909562809568815315092880564818645658749333868551327131395227872385637749087045759142532187741882575215737385504530173528491986866248113589150373296593981144970670231651034417075158284684893996332964943769848461841492727913894265084234803946964697376691105346902675748358755592576640034547703602694437475743582725224458340969407961852663185952580650755864244747218115452809912006558233825485972039743463267959568856832009577039985165413763799056109109912658749312515003906816347591112986362713992572372689907659806149644303551973692053359815665413891252295754757333590012388399589404555892246925261366516942165594960640890810403016320334566132844418649382548279192762675150458770895316380809712142378810104745816150401473848184440387937271386681918018093749081368213249118080907922490397704378189006145190658019221705514754439276662875188668072370927117180819981357916524135371770696630046278329913858453399851273720127474581600778405463471915971810027521348676951978364368777917380133397073408888488643115951782165823227621166446947081781368104259122506882996999877684518785248480291446627492740896151240921911561410540758173522571407942810195743396438304859394131581008349620868537845041208498342826999533081180541015055334067496024620394182684189201467263120988469580984569726104028464648970740607861182889151387844686447776453846093576524129469289017544020455851075742885824529101828702385153396986504891394930481097365277769325315528578016424161241941989369461631998309604193976680280518096125703879833001637065999666915848882236151028206726109219816702530636281699005561097603550840128253817290163658085884225259519442351040981636894687068517505482905939770281832899426397814423082493671011900829955826041746387858450669577569105998222852281056208850431232781154256967952213812336543350916595678976644923583427228024742248897133437209448258638756717425311928027469610095113543581550476327406964980081686635957887624921892238718637551313186236411652877586523137306183707583430443275424189925535899951180501160798920904226148202616583625654569321247835009953990058381966410414155533582664992830613280141929320303741890093809894908008358189916517425236080280568794892836822310170368705137359593295835066745942361199795723765136532512494541894172245842534470810711554401698473308720880552030082907032439100492611417807341590038549994287058675501362670055746328383031715659545606502136525370910512466155648013951420778291090235044684161466662193341536527747191728701758015482073134661612813077752186342012344354978535124861971914397361050361048875806650773618668709592979339823089134978807682505050528220624629785360428845465073269087327871042131127395345548564723271939701514005104292582844152614773392774631559527870535183971430092792891594530159586158406765226830125270400275694169629425966411323634737627771403956721050413517364590277284363356698012968311970816463935782044289265475775442666756666621907033420728030473568458663213725925174185369342040618132534368502206731979354876173245257615559902319984932362174446565664729175661502623265369609808023356269093010242930609707388949534396243663075102904022718835162685949438204482222649291191610070868511814600266331270098146490273547122555298988174930208024770661224388334413506828173218175039720061848333910635339200668824514273362841445460474735972584635988120371261822465396552722282375688260845776378053257038077838661094606134367287345614790362405488342826770297067957538135934605254180035812121345050832791535645554424047800240402441240469005500334980343199138211149604379724544620354226110521611579164840017550604965888671298878637320506366775638632715823061706372010068663249878000053336391034987846457686453858145369994945006621030431162870063092042074449343626687509810458826753881574445526273901658031139050605735703211471089817223105182578728219178537870396555612209794283432983529785556308309246345082296187584508299916312648836297849882139725252472367277878617163053274937266698298089937925751831933635189409517782298957089040295067154781771978012922829655454794107411453758713891436001897201698743833068592764312506403725898503004629855292652135389907664343063096826173536432185309138321321387064503383793266952794355816599281247638467420484548400368148124454732398459250997292673692139170312231940627120418645934033041078018087370254436397133208027723850726469743671309497955147669604932376215611188373080160165515947773948738663993672196081220697495625560819948406705796588545103671290778829667043432396925011028964896587113282516103840649625559132768433264685605390966970787888472274992986570943612844133486966077678388692613711237277000867580980737836495498177077978728521717444704984463045611534857612719079493031143563051983395591842134792024392099374573244601927213823046451009263393420138006358134094019648620068706655572150776077621512790773409946506465029527603493451197955763380730310181823236234442062110707820944080704168010952304214177545608325414958195744826130968859967673941211394599421976367889429372584795426404818625403991251126695006558025255578545075344507077762688175481763564519178956990057404342237722982220423424093072214380261705683453687148350240020070162425342440502409872937385015081095030729903915461885599363046851813467265066722978938441898692375532391356818886485160636748131647858020975270851378346330743751747423500654098705316360646007200202693092639409603032213776395083553336160483175437719639870544085689372947664034571683665300996686253496424577187074703738124064120705974028848829535190467666249957494432021401062774874747355538474137375759973852229056373608270208903519494911954312226667352318581874376266790865940562282634700689610721870316454834393716698319344446711021938114467141394334935361957423949279240103028365353225102354293432604597601402390975924948757042552724634194622134032907819967936388745576574975169629034523123148271441297099911057794511231401435904738183386934678882065296009722464260848644747467570506417271044351765640330316763691220148322185410707921389445252063980725638923373176501534247496861750491336668143523467310276757699096825529261551822393724578411539714473273856377645921668395721825250096940841368746540100461073879695738035034237782570309365255705615376898644940995658247282369004223545714472982950906807454048227989780627804395240749690333008519604946010743719414009275288685318489935140351146566982161304025115539526100841533901937212520706946186727618165167176876627353347388397493691404334395122246389803636382930279920622359204999416783112319260128178501102107222369092785251465757271190773787772442902275740576842254002427670292419448059528016116404936172276826656766732863494758434315803580037302692235674042115979657500686320899061911449251057483846307355070501039090098434772261045681133312047218801050019712308867753524215652929260672084989228428318796530238741589352976777161419228807144015438134315424906349115767239830249701475105144505618860154347641240457491371691148927232792396281546467800973608787662522398280815029185446178773843178427179811435196477321832380106554094308739501425982634649868466892781830337820195113010916972406421301899222879675731489111877250416490145687506168560031126819394262401245186537763331674104959704925657100688267585319049637245897078836735090547036073735393797836481861743514734078657498370687371360658196944426266904747920825934655935848942950594829013365943939680001862562708289913801990636989280962245173407363725341829752073998130012765681543479192732182525325547892041289739205174151923859089867799199266160593379078935254789851153362515024768563917295111443147473177610180746705405253865508431399658307937116564636470621637140973410743204188789390705889307994788760438300742124408199103426895696899065499371966810488570964718259886407479364818985926337629942236684355049905672181508119884268066481547383471976978410147768840994985000894223912621102949409855608126258179517795467830712310260375927648277109774942827224103556649382528947329820226393380419782356910738917013605545992843340374228759719276472684987799506325828935174325069296537837578271724927081469539991474645150349436481755083025306048660398359617704465147812340260599954526787541309833334131693618171152948250066818884244423446806217648508850012078757921234693880622937338281633898056262761460767348451751397358852232722901158547521360310075832456762357482460405628370336189287441330866090206105724837951120063309319395421167965190405036748120989503291067564379801785919980016162628947600853486257728446330318889429518972236603074103312805730328215627376232443381344994604071774410848947492262510189846503050514317094647573903051022125744644157150424068472080224832758580893864005975103536170023160047884256672973896782202182117858325579642220956714537012863318717380803693296208179881205015970633732195106379066543889186604363385725594299666979706145905200552085403065949887660359738905476560933753713743509484221330684259763817212817109130042516065092040329284200483727354249171725228619078865548650770899713506294614903795625298042367014414143717590257954660276348361739566640066291946073072386765249675523579528304450977910495079814014499564868389640987559350876132834983377529610222338216322221555072862943983833401776473123320266218675900934002428661010125844259701732753968563699128187157726613663959487533918710417156037554889003774633155867715527694538376166678328206038913092231858445013413662497401063330937703804411099947250378551573940334316041994809622936109770649767820918992143317881095771042906844163088028149801039915825766512859746316374846362299615323039412772981445256310989534653878092290131047569029746438556776112032685420864111256290316019953142400210835561327857838516291665914256908010043691853254475262559358536643473675240611770924447130018591145213348125406578913330298689506747273086116322316100873940380478739504503483227679820951474441552192861744246129975557994929232674169310557605131787601977054480253564666111842349908550104516022996521847244837251549282581089354591826809400625494011586183196952130605658309484424902223849964987585870711764857871569883147256732571884891558285562084174973054521500262944418048495585222504943757684603804030493011916134714791044717488135255008984883918755079602120294566980946428891134014486298314778705364943961395809362954389536796300633773139666191033964466082691740519516496853027294701247316839057365679707969138860848071113985550450237414439594095730140988995914659161056252614268423401963130091797662683403291963389878979210546938947176948812984514288459725138450283447992946493706434182379750013538137071535788096790752929738918796483762750878678252401629028005508942391685383534180217821494026416749969330983967058118300643342819281382083163523570780888006105547660550005159095331433335826876978004728479824150948981641031007402156433729960167823959026867742231719988387126909927505188142488107272890440265848376047003856859603754876879062842373717783634131123494399819444805615694462730571201853336129072860998509972505691710013653263143463158362838057422933961754942900983289474745159606401160753241915531151941435444812959232626017186030275307109499331757599149122658965285734278818110733753085865425074549793255147875593991439375048048283473771099305007530105370228314579526126519997308991688081398432184811738236375945706344695478754963513276044567439993597517903499522474389608632268932805615512441605350606833545160394736495737205850014879667007370990600169915218270097249752343281997013351739207041691663950842309773877410736838254881846198993291663232110225256936532814650659966655861068514613608225290328699307798381205539662616855818945965878269710403827102117681436957832074238139041162707909663348702320923966667773692349885654254222034091620854361428727090017472007593405915114658597997659057109729925387341166731354372005414622343773202337952083848339513203994734271483243749276626665440717463346196814223110411322759397068982718887870205109573235377961505328031691025543157734790486634613833947695794419004946281794539697155448849701304725796781479569445037100324429142124940686773584656355082154679332898243646615962401227974606939514249386654458814387567768572249351856285825408426745140690764755652790499949513563880677539707381209754778174221356274278119483076149131476846359787368693015225752175001414136696163182837745120893292117432134984905354171495185900238817353366990651406610659556993174776713589017437418923399941997576355383865717756978518891967726939430695639730622885912007486217740977707611711906048068162883194490348227416095629391948035460506080396119570810985163177856703291370419652471876863783176844951113570523852906816796536453222820339689206545188089732556486184762275223477040571204326532108962493701164101499336615826565260275289920357087523959869978067435730655068892588786484303178023341172024201370548778710127549186163118458820310699688387683305058280347049167617191838790409772314279719655745521450194928090636999432504383290482467824106374298147887763133611625219631366963163923063626731036852756508589300649272903716168550805413934145190444751939008267601224069071823342031697233539406145374736457957811669811387336035560633502405252979669147717620504795558977230207495921716218529126740389661087145747756765233315535765518298205309551261853550695146575926721488721933454747172831443178935564276449622778321209433637021021999657062129354434541056279054697048248088415957294820178701887156507362969846263482471456000733383994657698283354577478966660988407153765038034433793607784454067501865597208210628965808872273062546638229822409449456313070175787609907537968061679172121396714937587805354851205922493240475308844293787310017914852129980961817675929850214310515073850421778658194183288184330474401086631748433343476488536559104548500630628808161615464347182410273229866179068127938636393013486772561413260757279115675511721919405274088726324969754262694660940569959021479759255726332518280176060478078705437060573758689671631829208160171220871802274539306075017439350862972049100492228107594248905073809635185848964787945063057823041217099744963300820921783479830535199531320022225394693468120833096344888492041524586255625880311883430296863223150579185803601637214546825954860052672586259322776975398610091422695334493820641720541368164777980867864233415252349540343279781979099232529515937905024601674608418337948685457231539363734876616760732571259050030221039189310388811655812425446599398471044095960108948333835412657273383377563336862806012632132214267386499124266110603352860408912107542070422454920546137618753234849277113065089324910602141926430023169566347627941542707971223947263408595019033832095672403644195358912315032785995700005639051717947098919486979222352220822170438793655062594558485903151988991915947779402104666242943617444055516491748686652813167427148194766821904891619870621012323595855135066653517693718101601775890242064209242264997634133593036083037215128844307833234917760905663016731138935423189400405611268149609205187967080856982343492843934153954591232296521722365297629934703827273377097920756667441943649205663371321619744520874017911404840494884019063476337952485102731292897003897947901853997308582683684081240160057823113915256241469098362890757467942830118312529475730543171946799194912329530948178072383397897843661729890094605355939686493516775978151117101984875066840182272239672456066138785887014425204844065642766070886552542288692726534905820325954365457570540116378809305086742121386806908775872219767617990206448786379129205366056513047853045126020097496843113892810927624299819143179741312199341771490152822244419630926281340394006937083268585760158741236967060014487281164538296082271433921441625195267557050301079963595062245582122694598831344357137981168807365609325650354358031438889247926041436074658945463479810534446891972732215929382864458666077651155770410043807792350595969545425034948778808408615106380124381623407983527826961088956860913740977460048863534068805056534007547604862037567401214499024569952870732362606233213981969024147956560652901928975416326043307708400184467497035089332607249532179923901614618551680246637061758687482132947718364050444861151586229948687867631585051838092668723229923594483654507418678454549751092149198224141398390325242819069006000281299888723782310537548588124787142049008827108595739298812638819882835070727745954139640617455221525285728768695297422727293243516738668583974677646344332847637642887698428953439414305025271266076050891440854067043414719095446203463617049307793989447296338453828036179831667650795206285482071599176175562624701028615833609658304126379236945507968142272406645861021693355150314045787439856863901088483670178199898337265044204292265193298865682692054863069402855380223896138929843623913113648986117393588515892518859661098547998509053281453141047359174499914283527141739010459202341781443026287615330182452426761323748784591045177441208855753099526987744411439990027956985184682424395872806998885809140405404083860611260086776128166452223219992600253107460706345108383796358657657554772005848482063405882743369297107121738303075238981492508593042173533671260744516875303933211774447785444506616961515595197787840043711088851406700931188638547107691226977675413204015411987367726080172611623532175420195040717696481734859880219367555258795629628856694892214454972822063815300607084624639300247858180117073348993839623116635869659713013581350132306739773779814947126466874853211260236328875991136698177659674025824654633543401750394814107844312022103466546662679321368414622685798923490584830836543629853655598506531187926626695127089031529352772671656148272823409998744938121517686922106216418767080403428500773633462799837541809879587389221778002105991968137862359471667268240714533041959969864705069809147704404235796376859897810959114101639456879300956787087118244485726762607839097622728558922558532140223410152480551239107684703727463173056820608733678035539741840735203735381132065765006699087834608339506543839389897523734667251559257933838097873783540720519114872306304915659605498655413260406796701614186604111097402358339262897138196924712660398498133834180776246470746243651672860189148886291104398609035330751566019607239142074838763402818872154123774996196592447782955995844866327779803591952315871722256402393335584442753040147532362914716631497715264917733086427039473367128312821951733330977943800144636553153229265832775966817045572962787169367938848424783205846054874099842801194923757020466377424636717905616863765468055511042216910330774132548005833221108723634691407695973237370915755072413804199517385318095679104664086731407442508296017246137921218607126873873068588053392419184998715422832633761171433836951108063056701787696958686990226467088445253800507013077618100923129989099439678709149190821226334074741476826438969226856000198996127813903163660729558436510028979607900606221880607418949340158383673368654810756138735721132828899000915739195839552199619273220369124632237945731866596957267353076149373662377461789534592388657122642825589441994147355337602575261706199101377552239317011738495324884401718039222906928856783502748798574775071747865645089336798734049055566665745107094790261441847162243287597080635450724534641479308868552088975890861326156912972700022099100519678170666113061188051435677537262557495665296351745471403294048046360772918722344447317548453346079685245264055714624250704025315269132291037938111652032194497482335502473127128496123276096950934324534638003261658619750086344931091787511448555458960181439364467260867796905540946861215988333533296318257021682022804664462236291122821541336935057326789459483928816709034801661418007307740011142569629589559061905606232038239554500802805304686774725197604124740074282962496441480940383030490611406821643648582304391964261138219884463506079257847874597495903559762886421664424687620838863570244199002491684232026790823012311873112704146578773787449308533605687836559125760747260943909475700258650734240320106084018714685895536233090593256970573838489567352286639679164548829963162727586878158190690506390862303118655830141056027079485863157450949103908783896686478926052947854472345545676577129285369563694778746040387210891689930541200906186320287594115732104471647751581286809953612089022264339572822805610569930123088428650909426483787886503906430870182107017725600796667778570762418021805041739332431586087966890670434939523491984159149269469379578447667869214514803492825979552531845006266549877334060974680696860138866961262526980611386471195484886328832173759106165950649158427314210381968150069830354726927414950158008031731092712738985746027840076513408804012083956833473563191885593532560947246012088093861801236485376348076763440764050346030970795985223239718288122660302919200557424678994369097626433493878074319491303460169676287010950234645530352921274794626065040429505544478296894216368992502773574960214866706634862260120109741804197565687320160418110301705250614106821311186711771637867181725889063449304970774382354597563154559614758496410748278942664046831416422198934196849058151315170133290059213425090435865458204624789156862124863876163477973778788382831965542148748529555911229276312177291086731004488253500315263423866136808023366128659732966857998240659042063455075097843360878259856983363335496034948697246709470180774220171923712383950676623636802916096447395654627270736799348966711838175625411876174712918597686958923009601426142562744021011935338385121797862287261014639499983238069468087205999445550153850664140062887065257558170018033630118717517635786458493564956211818451451826998807816493205377952662127645918249761093655639213226280159935339092459239979748540096936480026095591140828087753409653177569894988306872186560866269584702964384151518167310762331369678857547781373947490247552121403556281729906431764743931615373884270062464853894396121843006027522440812556584039449940708332752053477610891504147637552310730684484668480556256431796639739213240049914702827932187032914827353991805274769570011353438455153119770443694981059096698880326636836685122263263119479740588891896841300192699777865398017053471251349315454344121439121226694871025051745603225291175174073731002626123751416314840944457283906335170386108761795394109411276292517388457656576101633276491935144956247215583344220337425414557143102569878241753686041826718229141421189520405552921633749794915989634831273321784650801815444270444748935684652511321506879042332086419662138046651191166404903341955007311153211702811929505021011474245941895283474385310356140830831170164102145191273317736439018356002686701264008791082932548265156672121071207702562729245829539474106328265217839695923199498090672833298971920996647076585168957506571015291378539859264843952685301164096020012612323934632976507273964026034692010893950598381404385494803710073134076494053718811019141972614765650043673185545625335368850755919069777866501309334234866268563531509084502685809811247988339975283618854329068243862573310274978625384244315949301683842899228001597254789313839574683399935251117128570377468287642532110767065948532551406346824123217007772957390671731078150027589236650978138939198759622607378278777033072548696382573726496542278823855030939662422621743006464793456564872488371381937930187781924587353661512197547189570695935122578567546422707645702394461973001894961408317360627973902514228217591147173510997342232642962583648733600589611428509775264303801621316034260448490654043893400852208214977029876900864125805639165609254386323587646870867983321133515245248602940141735646118854788965804766620067291297349651137639814275166825965758595891592735396034369852035461492594780021864055196319452046926492761601865904010511071828040653771383504592787826807760718514417866409450705510314060401241524111969896773346017105928430298498553142592319127832087745443416128953739426517617198414156673043990242474500868081612379742554376683102182343872708755806230233479220050663127052212624911108769885317327064910463132827238093533084602511280192314473936648592341399298267609051603433243735162443238461094256450474858813633318268717796824713066310968774697785603937675197466494629658750912442722356288490180817227363195752355108051096593797048624518577760484013502501342108351928504015987089901836168742099625710591399729387376874010912051645944758826439261648305819170346472501244912174832127705456221143884674229809830831096464893186259612512657895807616129098034307199965154746062504069813026264229898232473042660791188643015905335849014749741999330890795091329278358736992419448331339317751279327530348596116125978820878565875092353884913522882393866241371087304339826063607836754268238373642059247008762114069666523057457753201631036815470085326098567738828219037066628962368651221896415544487358544522753722905830182750052987903908597417815167844164267336698235333586183637655910127221979295661708139572859072208065154125998117187060531713583887581787920891997598482144990809908042771374978704658916175942522582862631678429638004661655092704362522720621066005415943256803161860864459270648047122698360264680666145672476021230601391588913531584546459086134954315835623028821661563333206219513017133196332389376879443479195733713681791357343303096963059573139981038021191261946675713042157031855517258681361509452856272840057200547708245538869444178234361914712047974828261330907583605889450537071391071282219099279284711950926942761378460449991096656985540150513182661440875383479817091059433254101366773143209366494125525132945217509715424133106638777939129850813865873980114733231762106387545881056845880634708870166444172624642253286835377365389872963665464733761418567772284890805958535688944812739903971665759016270837941286740582187137545273249047257764116195909509170691775270361580461744705278753316874459828678339151289158422259449124907628924817789345960851483949351947889007904616421845237756487731135451626189015393778833969820292248316922137066649844425604743386769853761032208431094842300483846239952830176157622484188159738979794443332959923558457436260172920437079413639271102440526765806892019647397532625101611350380152743036765828657020491031127623227567284965754004716115850815950620357966462581361471996323733388890788877030270020335844431723359895130689165815566959787026341525963874968876737963069183564153914768326965192070711673228558602733999992513708780277878014161791389216233571447358832848435998384966268634198656650263348929448620363454840180389233052972415517828993422923148377682652354035810716645622323009018571687295134061699836366631363728054195333831581894036471242643578719025364746578796842786576091363042423369228847121368727310484445228072127201526623989124558602426564483560434970624769044245615034914984277480430740199968530170407331437066969771473595703327593286163919391027940037456039132854127716296168107007970246053718109859242489011670040699940564079661173117552443088327259139007051118544357290559261390210692731577268677415552968722144687346784620499791672842819477141328243328283694833200346958140434013108978667772925184598337348873717884340734813692937969681316529504446030909026678056457259009653927677750921368854043127544126387946283905149184691217191267394059729777581536774981552778566998331338056590992296634387065055357374228383096226561796040715983923138914418906191588010555245401538939528328360000264016375268928369426437471128881743925936862487516502791485906494795291083932931165224729930206412385363116895789330218816200281562740940861042962396125418181525387548458449640966893734118539397704317319780751794118125784130072869760932452514267426193980097750556325832371376186049436700989462515156803991608671227997065357665187849307863369838000349195653694737086541551150209274422211323211308166129063509020624366997326104140375058465669149456494490200231977880511015186092985970764562483739076947256888446431549226693596255699598355285985055210870862203884323770794886393876217614158344090562961679777346687791037970325126598827475513301976470440037668201052343532680072586091081640976001042851138597744128952014631063911559305632968300850473889972911582219706792671120805002909310529903823889847275816351695071126632823720674818018036282734018945419150318665691116537839261627609867125311889101285333351895498043679823301245492463961730510147668785734362986111261235754769317794179744868665982752234506500347480933581102331480818103364298430860861903268742412156409014475385490022837248088585460431325154050501284684051670373895739822171957960105491211870927339169778744776883083624218182318643984244588283000296950058682490193255099645156280661370172122183036991659040074371999107074075254273591033357205099982898254592129885818262981598540502654564520899987507987541795529444164969893132579151377833005738507748696803410457838777736832280354437894458058013209298602923811145498957116759477353710259989441173096999984628733396410739630276258083777883348057734147814324263964654527638471594126527347509277090307524178994390755741926117375485162785840738632748531069255018996293486274261452794357232692338465069363186257873647526755363208170793865676640954100373112575391963755148688101717511977739762002514076550330022482931084348679874809693919977344787155395267744213219867836846880038890047769065861826153521140911580955123377186673620269616996300613754749187261315987759306602228019654071558814434760584322092151159199970678356762533416196280708034189017190733381510008378942407354296523779836827691705716583457708608508178777062503569289272959908078698827596234065944501652360334063977396518104079148340478303041249488622574887923429482926946690886821869130491251629426155181502686418002702672550651094870248806856860487486408402522844391668069480059131002205239679162933032859823624603945376481985504259822713238605531859304281795100289003043091135009180880007967991952964565790840801658371316584722543400276116592065147935372758703948005623213111068914696565838845696523018321554376360627078189313369973586939067881476963297467590082889746617102162778572100206199596997619588515840818408619540340647569170965731025866196260395311131266135848432837668091723222752834410004028347193470535898940256915131121869346515340615137376476310997883753475005621774273487571837608396178425572276645415525914670389199159701259008199636731743800997173658142704521006810564964462008793893011175940692574578238685911591617491152807996356822246625853069365527191871110839852764341057228393955938799030290100812867040480656090856936198509352406098117150994181955762405692531222593589960097008084350928525268116948420407831944094243879728063206273332219876322488602350116487789220235886369343548656737911627225957583438866381143580230156251690292145090100530365416020072261089606099261562280156609655883080462456698106130105171847290863511573139930911636965942440024864195353788370324237289642860441664586325185302114800231117277090682337338414114563619898583441224136667013235599582403214669449871016770500445979736261731064884153637357180239989902957605091821631142992422539274727536306879483602117969938524520523093298439357846788470624104465240105336467709118467794288191730607660937970787810677830707077216503527589020986213530076814492454197545562477964614137349098839124086205518347315952827314283889616270408755776425550888716069384731733886001015718136783644279076866792978802570084345632660281858884372564635069520033671710873009487919730504202856066988875488648190142501015641410640954318985590989077859205708371555954558147653410188609624376820215807749351898397174127284144843390807368840731579205880728385690553198382263180502979245047560293170626072082355208074083984348772631635935670302232731873911530865698049188566037014129030896791411306099497963739534215560949698166929730349967640523132947367485809733855948461839178058738539339684917372624020633459622006746845604838079509974312276925317247356692768837157415450873683336304847787699254262689730807925239959691516740040306024854753938487632585246071227700787541133907261460783479863911937904428820113306283298177434858383442607063995380121243473805410864989909318371059764181045878999949611062952978111904839606636157319938956308250985851982038848707178382174278589599647980209211816491557013193728227136981308981984737823566037134642591300484937907671165595151593121171134191117178312103179327941787507360184700685791602764944150705262470561110065196243336517126411429709652373032813280380152886988043144380111251885302436692776956207913270486859819338827789547784042078866049895365822606657807745663837599633158213560482951969759309319901137735846063751527485444125108966766778260335675049112492237259266190388925580317717547008361785908567656018495973661058292441840429978619706331536487037741028523588464339932462228071057096137330879578980021286472139425694647534237865659198628822031652872349607826051891112277251675389849166134885058214752860855705790298017586275683326307907883110676916892541925980268629426513373598426821354650317345179506250108212121757887037770006763224286600649637251609174221099967024845936416369284510190882812165667335172845766652981980026388928487441883879253408105825263547876428721372684844956633904982153427721641357216768657517559863349400187366048413000507912669623797447854915370436053479387100016426864137459589533978831096247336454331613899226988466713837883293689312693067422285682720449337414237608399007004855959635972672913788692578176467888917079728707291539406988551718838665370313477188876077126303931338649668243389228322014973818732875537372917545174501496476527679785531768728039327651816959064468035242511784373289344398077073072498762113361397401218117709447362784621856324512892809268967053429329363574324695933571283682838465635058858473760650838794100743752970981654057541345718685002523817989979359038872057292024208423133972841693481472485616552470416063924105879057937746446067269796619509946862601363163408588471223365856992121387860938043575078301868043880240338844142354974365019716680989400217768911608909458531327614501000696620389640940599642735263310109382327462365256308326031571383890018198184130169407095960507022284679125524013071547895035949388572220249009335834071095441902289871563602613292394791539462086091513922315173024140013857898005263215130598099082800329780250147726115196795885130427125830451579976166106593916858489346899740298107983490536104328679611270467530033093717515333622045162694824676788827908302116161852786427439871158140062708899051317196173649520884060936942556809784312824091834433371887693340109183257824244750403975904542007426127906156736241279630205598092169997521390832404428539106675368683465703087970678051513345069887989368570154082776459468075271524529967662606383700792705085572299009620149178978749593589012691367954644292305495104955777209694608624427754294052546226128920819775050883380577961343606885725900896236341559953675926717602321062052078865333912095574485998857418780220264879643047281321736805234273187785833917014097608966246105493701295767918985058783954652157903988212871044240796901327984965914845941053912489032900077103836291397457622327749429881554737364359668191817991190938154060277813917364277949622980988473334354475456402906384068670904362714749266428059172335420023200012173751646024977185207152733880607510037576455538652482569823420393455575466417829238732158551989186507227167309026995456797200755238096718338440248095593340594950843172069189149310690047451416897588000761116475738278808335706993328232749184996189119273949210219557791770698465109227696296473042885777151465705853311011536670591619451411013195765832910330909461866274000152305688889593589600756043853427714736476956214863096919873509039231413699018190605231792229243100594601441261595423917499819704150960719952885120543942265285139551895123631533408067435558250338484156494760806858515355285593354186334671820747052586791893310402940999570594418220051110053332188138933524697057155383120783677348580734711992799292719458291894598507429678807646939044128575874025661283083942752158858142071970290521685568816099562082181882545436170534091194229315338958986244888612720781822304200348077205927141835264114040294975965987303000726346791152977324833116739057225959648779942261471364422890960885387432835644446623489854009013338425126922781003043112881274229221123498516355996308799395027017823056986654805190602197565566165514124686171797648264007816835012814650524896618240941477840371717557423238519229752207239627522649413715493443828390507260645651255767623903684724066919562541866708077500925115273242911828166181326783470515063465418912719533813733334108840358873272237734882606326946888370707220954382022098773684272932861615604328603843341924379205620307974451889843185003510261377829487133159276116077615944419186082404070495880311757976410706861588357772643843039078962639416636422065547170118742054387106791886073436332319035069496502851776215532276983628601496471154141369591550325892144042996840097805349523462508650647961127102900214369917462006617397560741767045919095930904287939807596531016990984449815704062161512350030712856701771667113596653435866946770994171256796687463390220206145503320640063855338881660616354395961340402281705233129225408544615355305531409852630270285655468738591287669877535438616006318586546469048340489971188878763443463253014487389369922389328724903025285320938633722958155272354046339218586300838384996299123981800214893957378871313114367420757633802213412492485818245414865367849100443490107209607758540744386215998096952138952014824675723331957488742074370830627032553263570223605625447782964398769674031468813203496348876589207856233783322644090762415587978585333998000861988930260539870316077774462536701853276962907279000257899213995363785616756752768093278771616181770877634020601156442006280182160274793962397444019726610869338545088619609592935127158047547267230341642312000772346692708317271559544765895866798408134943600091186668828516924147054754404899317831923678544425012421801455027286218967525404803756822221809935567785739963691052066537766319321500473004801521846589107655602485490210918740793578439901024140647660015500352127090361681241567689948418800240949475866696101237689298756899276172033101138465478748775491768111621271572840617292006164147352051124864696430009963201759733342493294695442416397278665751081074759580165260212236363275458276896579191641892176977672399040192536652518981776036858757496186311346753602276589643350472001211208273544067857540098570751878110757887801443792051367704865699282498818125951177371262813684779184856955969066522490862962338362449759594606947471591616811208543147840905239022268499650206872526610010317652306002251660693160123503593125020327156907351874701723860771393779870049165882568243334444511158196386029262491919832255634292389463290362472609642833122297870044580769943814908982458800898746157354845731136262223363433532337814867317823637840855567044380609800742322008400878656004886577020505091955123123279876952403782561033872409148221310111684757504866570658620189363056460134115533519821184678195202305760967216336312531742341040630098397178638743133646692317585398249490275602200691299612170538424303218162747688508308725570544840966803303718304423996198038833714629353322656554711153564348095678969742605801075189723250813148019127936784729035105191060896559773794683251202065696488828852598615281072008001570469164182260735995890896072922406810822381403056576111850226506856259798897663485835881692677417526008455119298029078218137119280853606296207457748309249735003681470298584510559647151790300431981302042312140774462615986747998854098720013855016802681603489472867093816779452434255742758522451710716204589293152706374740459004303731724919554951479989793391562570938477924309074977406002960558370344094856193488328540396854957065416543206087396914878181517592005294664120626031360267802834826280020538691004156033310616098140429861701941678526688346344675670712685351455552903048677112240187647430597345644737356423255999831354275627549550695076235693861950798633204393795323063848976815686287506327884007963422450844465433968098794778525022366998056042375466189590513867482608938461775217564503937285936265625256742293697371088296437132046309545573532600846824465028580309003638376380708955378815165566992068150857063010133277326422314861534561779843217366130579052078851262836231221470923380711696495159030546134049530098214383378210993475540411513856168596542139263867287378200523064059862552042045350018228785454063525628172220227799598117945617430088048817190218882806702954926826331470565967486258496730967367937378450956567099702771432363825900889591081262182550323427853073432862406856975816366758004478082501289184162473268628523472917539333350244368922276269090983117071269082053452698096313076708557528618937423376299124776379547135724532809302816415327816183139420244323467898519778690988918272718474273491973111884151393484816809334493148167931102890598877644320982085744179817517921397896508748911699036163600776364110948402070269956634079242569064706169304291068258747209927232307465090745344378454123718136948537925227457139761642350960640203984183312424526021095452537341188312657210936370197473341480480703633950618452568688331213513613419409211977289695452956733308142777287074932755073862842801422482858120886463080295105426867850144819581984462891023043501575303857660054222661835589828972163818563000876961065864552367963855162973625115311004447347360939632066881871551615243477305042639987754652110603880572796603932408597456486608462524162394684176184983668995280020257168974955444742161874397662212873728036443523686807757757613782968066825633117524090578279717882808458329800324114295021044554811983708943801557816840025708079585597174252933794101380044432359463802784326834857553828294898919753083244670906317853660923866783890082240867427984933478838841573372779338839324158022494459041588443034394810800902962716561994538607032485017242563846575353846367065509112007016965729353396018630633828849827716203885841005139336306885012756480191616269932329439764511173033098643327685777752111225373588668405611292516333880398805950180503692560636484288431378109395876114588263963119509824942589235264899117927771096553188165078235879998941104996721397854063750965904467617995838366116878485719203000578774019255125721669160269030351493044838929621755863079818328478707956174629907900102142964684278928453107304103602927487815136643659909703773112342097911323606898377472947608494223459697249243812669346114028310932670424794931363016409764484176716162651694658469541782470155244832660305774552350209328905258014918533931851537735485854531993860938662544045401078792938020197560951085246613591733859618162438412489315489300868309399308176986430482970764951163896925289981061328291180739796276751747147040831713591977733543315485174500928386311248943046268222880551281807475254895577103087235578588489639422781001967668282308631361829383549348637155840165893687187759505396450060838770784944597099228745431548328907976853387273277518312655367315219268228696311428200651228839657332957552740551717372895720040483561481974833676816952624435557565073166054786404338359444619866686506939230704026137712388373366668364947419421627735526190900510739816778297165044524419414488757948986460464586690327953017283912118100234536908314234550514192674113849464134094515832178154000493805963602262552177548398489153251350663228924981456655194374364206464639927310262000571519705652071216091343309067149538825986051748788377058028640531694061723321459487162702117176040272855977926251131834871111037247916765337625084734573145300635305447253902663872166497306366084876514781823134079006537161591140196648226360325462411950087833840956919538340045565683482618477834711058320623226829236517527871311435718803469199719387115760125585885609224937018401580653268968163379086171698679018561041902959918142242345683590338309408033714583812118506716849729563099497595177984126185768832428064678586051539893957651814706626499530039883920852633369458234328100570328512063263629509652739749836857385234847275215075746479476824022157232526273202332879641073202325910390295605902706994540346258977271493087604913533976801292453394582289551126133513636125676852745678903055378385381129505739965854404544217379830891979554842609233071469969926819263247641540331646868365827389191307754546760536413324403983565328499701135484791106761739372038831983143193118786510069420069604641541413188738711677753994823199754712196934697956790682694155920491895693674259053874932419908814102929196402943318084720132054857013233696781808103176851494306340857719707794517034956481688992751947440170133445459211833863171709739701415399017256938418430492153057069634907038281672301350498550856244359804125619943631339352775150977782702234030619630940200202207629612835276511257350154530426837063856787273598354371647830112435775070193512487618435054733560369297611151985618575126664115119129047739681491053876132039641968404927940504086115510733552900114980260512593500944652383468378802767520531356406307599923169718638669435110972948697376445325489140845145761675280589794455146796802933771113272073362159954516839406444013898166183867658609005246288108383710234055703398380043656783761207102424248805710604256244747922226596613419084698005237902673954688902228928837643672762599432377291904004528863864358022897010377714991351420001323933126732970470678467236230375527090646521449692145133463483066184066128198523327481775649445893396769169560842298652852505326842699982466465147939710790810484317290691216374968351400573207577490060004820541275004963671525435528688112732638944029318022077284070999628860909182499701857839150727408280099544848647141772087518676195515792398918709716050548017317449075626920739744525035873234598716844977097129067121831834130318821575339450307271114935183076147268442320870715078789633951340130614103318324420871511509421407707822349007632556343513817406907883871418945532330982013367483670773454414467447749214627023275789374489678713086985259690394764122340627873674391634371522863810054959454189004364881232483459005451459110546993854785510881128472963732633370286328209202107016506328209315533595949094000961992036766641139792162911991391875278638487823687230938006299645878472677164735701209810798019933337332250089483503242092550946760776152128421798712448086928597578042047464359904409015125992974971585841877935342119610818861653612607546669636809476535643250549441966468126307585481054291584642102090553197808290893564228338903346704667264709539874872660578854680712436687140341559997280330843708255802842648848621255636117832452788238995016950908980258619222597930798199341881235203082017963348198538998008367458991067132985313634578370022241912125410545852198382083331026255927825143941695743465606552381650776748306152365750965063223497738013559461967722070288709356005843074177377043052242924253046896858040224005459681322603466696878689352902169001422299000937515420903542597503721782510533763010537862708531763177653153647659438801223776560649131725784225831898355785876325095638947229457905110718909147285041369978368143251588347049191925650828764456398045492138464982663164614882551513625745332838566361835907692659312386244682373076300479384959338557864411445438010222639649866026393059221286756034267591731092284880298022287835282740633732424464286577400575433483867029021468607646539039300615584641645118967197413699201368814386874564098609599518630507831520097330759031957552642743455117838244821680570778081838314497968625910879583321681939194210966838563170462534598791209725574595984880219652915589919921589772406762962779648318535261647348278241656691480954601944811666359514819285415150721395083918987788350873952556747087006231529405917748046734849143167950878197855517054570534540578285416516779577114354483105752649495478534066168123914805369861350149824774432763879941245576392584504620558839120530488941859725076520099326341473944845030241220319893697582165084828498372906367808082009388763311802293677386150665236543940955908313873408331413072504902451477485231686427581914622613835140860517177240004278711262184121786399795013530580024377140102010305096640394480237369528978091295023393139544330290103626518677448184297193303117768720460165952826355183806318482018593426312169017467676968237564407816135216213729868698770098244977940027243758205315960370035044696327568757370485930680423071412232267904569442272373532577991392443502621702073442421640676525910449774068093260284436839971286155743409794092427214717691687266387877367373136762228745790107894234011213102143143971008666674216914795503871501299586508549744365082427187511641774171178777961444773027479028269679180804749333726960838010539558660231511844902712690050398194176964678838365496007546271592334771199976492508065617757785762720802368510518854612309592100881984828895308078896235722504058475127268885408111828961267686892975931551702997380744285566569858717031077478467673492874945637081444743539493955665432624505035513878166569036718935332052196168608822721351910031273742111998372001476087374578926840379180572287085410786538265242077994799283895367746237075523806318494761202468442327554893181500355728606728959257172199153402808765054061989910142326406180651307515540843908452833475452641921834140284251936910230005164791245354815889303921276782858521859477516368295047550920820231777841215752879607477281843560486438187645579615295299037500187624953063014218330414459139673932429975722339172649126809347137002303235151885630281253875131261173627147489494817082709271955798426556854437693472921211984332193450089903186662170012665967428149803692806841135740195493848787861662857627691555354444573490266048631859749185452277856358469985306712417510334555965900173286098141138655028290567618740582715904704000571504581120891141828198646573700312703846951864127118320878056443114311794857995747341377149602810852075915633410562028991525272896820217414957505905179745422477095401135958599459479437791627397689225981507991403872244835462438445784553862336862576698365264905410406424499984632907107408450342089795717744828425549892045701181382912090474210721584891120543442572529771307347660326424135438390744784210291053186415957553475917245850788904855682235913173289129034042468892713976365770912943157727522602172289558210382897996977577721679192927165428681675427674844577520154156609515687057316683769370119863007266396476591868599198646209987372778871323312430210061790911332890240513952137829635596713639270551773528627728592236458061638368574651419665672670308932951341570225963847857986657769368134245597365124547824995645725444455349440449089093353500430362982762484872225378941753313388684950329916979152180749657785608085642238153641269930719316887503024167070760272498987453141903491698915611857574485222417381155430347964200092225121014786752159030845416234172086596473934457901898552291816814974866696647116221566957587705885853308840806306816230618212911035144269740979033045043269677654303294051735080930624762572135439928909918622939654130005648706740414712839792759457530308978849507858668664568588157345980418355335004981998914703686833675379335679844378796985404235095828192922295561232425172938443866126937837345163228638964055745815143803651858340254680441820651586441821818155087008052729179853095749010755512844484985506597733462714004155646942774583258459889793168684569433309293216555903635782819912771246308172399179482594338085528058700273853066771960804299587826449780229627128305781799054453644456835950325132665367218959640091481778008980698750642960509158821437996156357190761068213941168056861723159037129707672846950243387063939904430120744411533637572888403746715303204138519397115920678811908832647378276379979283391836673143388090240556960674395433670280418898729682662106713763906353920708112835725531720892138237877769558911945868736112723548891677312105593896831617789560105441927798520918070314328524255101633352002951673739572355451201483095304876289967491053207850377769122877671436741392250630937831231957773812531398832509779130866664592656679713686280024251837037895403564454751341208628906102269350452888507688033271499144933272013546654394948010344875147832559348270729112083669376710425747879776349142504887917591320599462409234920606398170405404967998642719105370291418107356708926359262189151346340771850352507463035587559009899198283249702218897950481203951440308416637272881561823837074227290272883759673404409542841564638395143995944780920499409310689317584287214567080381027354654767214627065471812718401093246375452223050137521813206394060179516173396382102652818887063359840644465365872932593221432428974879864543610729063628584133987005629270303769363092354613508013325240267655755617628224976175379584304288733779652303076367913723660147966876751079874384075132581318624115458052268918487482572731756999110934391472234620755229151251574498725831231156055957381779392086022257417855397499191778322895869040467259210479106186778350355969002398833236971736154858884508350943191219768450863497836299847745168528024053680699301898698331734521790395249151170499425233848240197307853896634692167285714892275956846726614805303024264350196083824441657051054050856474558109362430163814703138035078856542085865965671305238671498708426057947394217196166253414530472844993636728192076223694114316703288653056721720379928772972510018357673497652319393915489412055394266583268588361401186758531954923332849038261454532259124647813847085947561133683347033784522979055789293937712893270203836133610084499005400264415443123988328867713220012231486617133321295421522829194048743190973413165933749188035689510973959974799163689938219342773641284656949648366461663882272410553410905351447735226496099343697669059982214687982832264935251891399334862211761217343780950838944764993344167316777328873769497953875594249282009243495493087449948910235200951190318204946252876712142560974235567301974421631009770903412973043907588684235697100152719029987227968944011684500305293517462961850253001051630204938479465741983952002527478355973188244705049359129957468617329623594536488676375134763587227098937974700549341968722752262025537013863044476463182779601876517685593873748117688904603308200405502957496595319298267077943856656577394426274733179823896489789223234061898871782581639193504356181922039750113896971144823915952780275388525230191669231880008585049473571710729780980616376439218940953468110121638817342854273925831103928021999542836204864686104842376049285510466100940867859016265751530306681252614957570464130546602158479061197524834890533880040179696583092140092740210851677061739606234492506798759142276140108392815768535423070963405355944264710339268001248132510751052692085410637951603927147802853976730309741972427445167714859360126749986765250661317107216990125645040982928828150135427900713912617091719500544351243010394574442424094730868778010408781648784434572894748329430964866132036526473319514519944948046219941425684132409818674088109402403105895515582931959912883472714374945441327005538173739249538191091146559731769188060182030081232463487359319434147774918431526949327950909039398469267664786941357994260447232668554462955936739566367951056090476601077989887060826349882859992318086920017094478590494932150373701775201412093141978658308611706342892216655403672225547369051251505085850238734191813361582136099891849069599565746868642548478304321335113377855322198985824921009035459619891206650129355872646903462080982296276202655913533066177679293329672259814177933441684577666405665068013993619252046858477858900187294238069384710045626263116885871421411926103089656910374167827835055620050572294274669350491724957497858092251150261035569832882694109618397501166531207860045366816953316722548757052915910911172127973254711290636104652847018211393030128365789787921924320069862296250596011653172668576557493548192140139302684498730037772126338481118760292790869966841653606180143952840809124610199993407976678579135219008711477310121691917444318731746245781598942985221146669511830066726816348694085606276402478881219687104706491281900885944344129371177352421394979416711597255887429533625422477601718548080319528630551590787381919158682828692907561713565532954908865056978575456696651855533499743273637633479090003924523179868335943838774630649790796998960646275577768310316898546336961073561081700061083994592792535312821154586110532663765417844962628165413301427386837189422245522154678052128590504534270902145117233038008012146703093078829563025395292516993095441048379000281756164200996086696089121263893576776141673682509769114001255691859544129967338832271517357462558119156333129963109391090723057395580596604528494576092921157256927667724324201224312549957413717402559762870048226361642105847145107380698463400556454265427847823537300324738874818995000477465674473688020713969539038434659364641712368085712802317284214979659522226185187577954690498863798684828186803590161545063788886493500923326098328185143222572064118911732167381703068785139077671465048665577705212427291718845212558666037089854536103815313604047278287133295134006699699759848693323755150721328977862177312376929400823717150339454809856165268589335150107871457089623835462942729924762819698199644324896303868830820676120341396386792114125697315905655953035620696956296382211030807280677384871273554936076878307593943668596404297130353831372495215059554341578981969613299138281807884343125416500442451840023422578820952390543779646054275189754826130753542685898398641730490329820438342293352511249238327973415584781301917518909652647337091059598029875713117116306284685616215755415189187963429578855508185009311977380318883926585215929301617607883877825949973151542763657280615590342077416414825820655447659304436492348682313545382282583282827179984942579002955869702621422369884271301061553990313304948130929526952515258158967985221079596468895307307560935848109022196052670287636164303921412332445243777826430223980282473574502855281409574249310678296645638481666527994996970990683280643964591496947094291925077327127857367441703239112265745183364937607410521178266258758040162475342363831578754348722536635372676132051359699897754229920884978973683976646242478042951931165836387123442627388720257386889467825345067363469256662596888751608918326934710238112718451112708643476330047788388035438936710694042956679481393988879116379642319639205410873074389800319580278071598949550890758498193004626547198244588156401595812431500487830223201152933192750122387789590069117077711061256675495892557191799065657303406557332259773300428319601333141125500159729578223910064085385872828267837351764835222873851492205271842146367892111231110223786428321752344314051134690681114403570848273040802694875484614669707526941696478046415484605614710841653413404859699260172729614588528419187612449367130907782044333020378208076244086340775038250525959649186477681838337206676089495767734700458599835484632123235182513923401814182993449945487129237252406342327494728284955536961320024295887830539632263885814430149972857138568611953077653416464866368776831466946756372709874627862362461673396898421786441846108427009890428540340092646278482922100644492918394571309127654485276177760779479768118118617850097589453627484435114371683852954774551614672558255091786674976366705915804613448830190367196555199886761322229982478957890621521999617564166126769564064224245440461772926739087158236529911043784202951727301784477383343816562061492426449227509435861388767977985235208281605333555083871048923045928541321094867906005934212336698082794750271889729623830267697597402260213967707007942129279721711741063139932242067045784091275739304438959173991460383848463669496677280671371862909611471185284188921265162808379489351702210211293690277944862560126196295225950059560340422837008169937924768317352582979242865006429134109733103584450138796045850084628831960710242374437042422883348657854756121576663470608982617157367039241296332278088078527588119952227375360213824740984271225576372203786526538052214707132083518438727641076517586083216417270633849665740114550982542124975501894828487803895005280343536538134554906117131486409004255768750805709136908386310860906682607157563733300531400863750850604644021759552397388397305838347696516752000208363003323745543626234943473776380714543327304715914058788073862539879483217758914130352079214805342299833920722558782484348050162334271498021444504700281475953729779577659940446438500730356006869871344692111794124531361931094024797864802052427573553173971251146406879489920586827374787149781504649863575492828795643025214561752228410300934944521219408314828983251317441945395787872679901032189566363923844089637616582178722298895283516855681675917643672335020361091701672708507990996059412196768540055840423227125835830617295973859408726131848856627956796318770178657697870132769443725570610270388463254069491017465205489962936562398298910520168173014314420495952510443725713032390431702315358493135826443216989777382751194517551649861754130231907796634230187184157359137716992760691960735365712949181839022397469687439616361378184263225151009539578673543443141532211956390434282565544813076389126831769386561317418538383117217864137318582385434560514955590646301309771733387063119058450851058571183177801078583155235053165270669054125339890127645723594335400559404362434461998848012705185992877879472182392958384790950650104341599486388933977840823544645002303806347314211475972297544033867004319290011940713148891500480066942575291432927841482960722545743720557349826847669691021132574612323624856875564578841687693272772567532521013711277894531063907508936555757909789341400475446328191189199245450624510447692436221830953082707001453720074106320461136585378402732371005779174204297707252620728121298163265415948214062170397415237135347238998001123617039034144590057376306555174456876236661172717024580966038348447938019567989310669865973971743517936978617169028685448482028740337457393796940426438175932776854539416952906976911794804429030788688434255716852530414615294426105451516476104862083030149907436385370923491636845780225411607032725177422125886257487432131966843496929329175567039932610507149370299779093107720764390659656637186609719623613131516746744455332759645828759542459755506165734371324520881256456897356012524408357659403243365291799992123358332415198413719416095846862486081201891546787072052352123037932376965525343498321606276065501921825884228892785176967602856929219610018187382460209648029934325545902774237546493728814746592419338217561555005904665067147077244602469967760206530934280535312755105278219495786685202288344658823563499699712208385837733321352798922019278507721206732509697561513055387091350978679997082692404034387088090436907565500183889338844658747209081797629221494923365052783849649510231684126783157137236277862040692907240948291104399977431492358679386447582532381974988771352357705871564165918364319267717458071590719964522425926472654098726018799671162343163326280702894703323387609488558838006760468973880349258696519148239888961704917243138896588549872167395419708880611620817270159305668311143000068612659115695737140586873341510083246467072758711483491444147588361393478995498675832716057292787179917618829558773921891624333416656289466972503192189696425052991158773773388994262365724544311148551139957903810186126786520745537206458118986118205083038186550172400740653958828296608218052390924110344517411169027588589104203996390489172166272864111639695233971438566828814419936923185800903025799384694077731150287356455570761983359663984442197632072506577472345483951850300279661257199388038435966078842418767643695893528564471500300054708185066988116669744139153636840580928467344230163307823857712861249087173286631181221082677786614363128196268571577890527657818080032809173121686038966981120317523304020240482633978922657135288970422297019169740622968755698394623191845609418059553802294281887407978164933970619122715086892743032150405716703048218417701739592045642943114524010227992086051744710119032144538536454350171357047837430722679742228922329724456350168997008002083465054210899921366873774358163450995283679377637639824484981316599865902961747544000068690886402453776387619260057323532364690725027558596314251081102656435360128600214829111111091332753353249430282570671656054135636019706792946890228855643276688272131892920526442398239568935052295998624157590633523703072882348272043839579001261384998097506191418893486184228832114087497315146673731939925321859376881262178104292962217168274515768041885563537849305692433427855787951933422643265794348156387660756468395691930487789050400712311053935314156975190902547152808764863768979059072574601347465626076606658757307629384008543256470274087362421375394915048315499846729303346959179613525803225581642808467412496351116091699089100937830431101427600406370477561992347778117994335021136972804524545345158228764697920422613760031750410085513020368586892849239352321598551701869109602023190278410340134568681918695564404492318595607410460014795413220235795933620925773125750458758742620287264158164623481506248418890868305933321287782005622803628378971694952627820683814176938459454815891782713711778450932661159049953064254848337044146760607956405790472695888915969482348572637791753391682801106147836771426403691567402938468397048184544830868066308716729200687282313472057622080353813702136782848079273269652359027919183673448291611388729190128419449646771001118963159876647481320774482139772606708237072289868643413026250441455125452511769839174220935048916262486500837158591596323389799195010589607803723053782551624681169122211269646883251029307422101663486724308697622808054383442216147572167607493055243656845405254540203503787102819704073469170855560156190049595852482685612729596812370932629764707371832690691478858320743411475268703471773563001245342215626114230681232719388744350060242860036184834568814358273622355965450947324325068678880756226111146772584088303923556498173853375021323356573467543004061272722049762544975354944564606296424086859354445862920889987626942448176003897679179505735638942488298693079907666710567372800710955313659194502885966367014806817279779626007192283609574749358780788518298387925476949706846572115076667686940650002992390513073512892567317350755030178387555237005206320848142411065712662530125071605718415341465161359212236743282610509269944351479978329685276562975813030090839573683162571296347583700269673125847339879656518961411691509680117221536719409441054469942125363122768304543499820720375286299411572697114372306847526768673336666165681879719763170035385794792370696278902517641309564532460791262368930477540217107629328826131438642591510589399841841464643082727599488133204011357426534101948924504820983757068627492844780073462356480135130358363090124005766078890482463501838878415834546924569544752330900257507782080705825144411976256352021054838178391024611838010223690860347538002872159296777058632321870557085433420449165647617861148695326567877502044491618987445189868159006450150275149106870048662226629916303106657709274109789503546108069453764532450572256468284270644991274030533777606612691049185496467234026095028785585410880586921008383474844233176069739677401042411012889454733043891350957438719725656722128395729701161481919686037256865075995417811014524289144167869615587775670084785004407886333268468660824703893394480580160172734383006949505944024945781630870472204546789369671147244037044734599879163376099847326775470270780124383053946125196973377684099973180361715351985847209735219961456656025847059065835315023912474983969614124410927082001730338394328283528456840491535926853077572826625944686313384607316517098601172291570451345323199408694462212767843857273241333074930283263242497525959166923259065591986708303462137868939369109620054405877147203500028282605692688212416719363895051211418767648324509916805283214189920289393375210649825805211642306678163892279486614697108116619888169016318478394309760410426785367630591131053650599329052198037290551296924768744033731638879718120123883824730577382807994558860047184227535185160295044472957252667090969872208686932530497257242662269286111878127106415312950791653024146104441476994457057662125251715559278378283952513820522262692177327400252851151043474406849291968811899231788442197928018715185744159790398262791456207818506931065721971575663022590998425733661065535787066294666507288310998539443918131266501914969667967737966859624072109430626250656691699906063489703205136804238511633838295195685458211750544715569116729884975535450952657464763665311839383855143215868044732186527898442171117169161990576357957081626620431590503821676567038023114855833876799608994563579674504447572949907924990865126227184079220582804087581237137319532456478910777832873346956104563696542047220253670166191626307436258387351395716456915756025781178851785715212792316925255186449983929826622334740491652212744272056720026520316307038135582023277627387370678735228866981330875166373841395253016865080458444841340009941624639767415998231632335789672430074720306789924299274453006637955180170346092645646164406472008501970966495413458842507178789541543155991678044357406385927667577077210731366667554161401764634532415284995643323368486646021744948832033420638211894507607025295703330232073143321659963177957321558545211693720233158054657475336640504233400770178795790877160337732254025322252340061400407639030000723113544559588782633870936297619726843202560742685436267974735740207263072583811409558102179641221812496426134037024452668664724939306457650442460257749018275165571486576621764579016624761557533618173194870214384953351680974242372781708329684066889745334417773133684502829550342164151714139269650143203599727341752165531067900073776183275810999829371829071421848634297663652078274548494717016031399536745789560008746760696199703665024743106629797797681466251930089511231683122317016050729097572234278379496409610386554868528620439859372561687587031635477665357496048271318978696298003500146296991942869293053023267011345579964061010365010466855826379453703089796667455791642993525620682233015288208664239331251101920354547874893893468660776899943181795670873233437422919554370731992636504383999714051226557774393513919896199280164489543608554331563276495516865486907280353112808044356318266177166881231226599048284777733317735776938207573222932948297981675922397906636193287657344573360593333493461190432235195329379814396741895365272183776940773984168315255403176136407507735963980611319838551152988080589229704265355174254984237796486135762466141552893054945375610279591997838228646106019127844381806041192846672772587885670680785062096423542605097844462986998913944432856785936965471830389169657084924072435542432430490315195318088187249204977433805639540019337624258590578849792898420112139631768089119937316763721391010637467443288593172820347429799683232386004533377850475882291864124449585462182179715069118907234911140184861695765453468112308980762828126230514461284120444391555790739623965280518506622623381759132594349084775899569609809209729928160915430283502290680851447936416914972708788776953941639409124222879552222546529855948704112555597396143830470714683827108771611168646633520940446740395871148611082428275383062194548353554314723361645044675921785166967099227187447019239832467747815530840995954469461321261383807159110304354616342446452623369182346768409323786988131065576114668042780761094098663203926163314648118495108415850088392576511315714222437422270092458039272149881433578001179308545953919091994851855739978076519254528817171858829578886532460871967884492663287506970924421498171832153534637103875176599761612545380133276169424765612308221274884696415527460768776351286928819383567663423997217254347469996251517541182383591893871260656535344498244641706806213574965836567434113023489444164713880562775754884886599630405817232300894871102802115577606370755414064915876014162586453906381145161942170042407254986215216572004899102733761261294781368356712117172540900393262570656259734982837171477986009506800637330808101014997026217303828332672759657485740445665004694856804988500016212047807738727075090944806207807811950302451753735408259637792061822847173120697207265585025853931704952374989939982527924622953730377907800304274368161841025187472959830929339405495756347564097380335377411465977759872407385723398477226921103907226825652960367467234071251384992682830149280970161053909233663346780791078145934718836253714139442600260955399357506727517214749663841696835634745149484999960129573385479759454991984535376237345849129385817062162929369879173615616428524891968874370228279509964852502407894432183648110199494767730942307352490850860335885077941728847949905088036652292752001568977275155324296927660543086546840616185402801088531101726224582607496035733634616019309646439078569728240875554304683630354861363044826032176061686031930272271817687162428892289092006506652477752411586297247838555832542901265738724435468655906056063424931688135780430848900633459147463837749320021399717844797283062542347107026016441122930478613157441320689818708881298295944894718762538733288871344580575591122773472576130940149493017730626797018723418749911228286589060200144392919869599423182686038876609438463522039320600821890560554380805752769770127540547960256572426722886871049187878106751894376598959052164340833537727181631554249928736420668285932450486483332528914805549068104260385051387984817036529712420538529236002492400560628701608353726078140887406073617354438115730626819275298835356486633025527648068683409799517052644175196126375871421454273810727383991480211237121507027084444267242817467182390278244386203951040260580642406381591423746435334847077396994884368455881678400885406467873905250128127076570199033819033483690644584616203936062324406575746936743976796467079407099733254597728682569515798080974991694471747340598196928961680559053582410746672347797927516669534466301930559772936218895656505034850416609072118500582072077361502247892768373854573294547965295132073176950835725085387662100980500242179396867929160469265895318621917529511378878535534837150546619035229624933130871795241904885620614987217877351511846389298075200553467035880395565563750063628709518492552746534295377658566892723334769805357992611724294533374905258202038072165619599349780865612849916989490346819399773906200818527597140307367041121119529414620386921501730423259391500747057709889592170193931488620679905385890295238690350934342929394760791636949670391071495894946240265900203405515202902431800415935911210035764832928620537786644677885232557690348335952237044043870101581965131597702165654117538193074253739707412752519414259663100096094758526456779952423273966405793210317366520938895225332250419132340106784504339574011520862045812831134020693177309176878974047296404820229052625146113637791212467162102259201715763480061969633593246436518517925510653115608824477024835711390928713205562589790434696303333270662687576697485139437584320364629834046955769647328357512748088056824009300958574148948259283878700347588692161774578899186815611876328840059444187387871870392601252556807353745561011808619746058462702239442199390289256799366509955713268869917080226972623371685013330075724841852614884310854235747499246642009424402749774479108327997343255437495891121436463050028278081134613088995354688503969909811076504141238163034057455085732274577520444575097988734475680740406387753036679112130410255333839689265001539618302468599898067072927071138454355273077598610546688296628335212052317972003582557970148895085458271791643554903196163537862755342385099192498745781053461222233250870566444513486215260671829627903946122476620510738860637444954311578450797691072174380373243397652889265395726009698677460686155214135682112037712035450885538168407236391402538713350788178510822221845905281649561539023103555638748553946391126929901222422205105034071562511399695931087893733938947867363727992320887484672725889127315769610726817699267303022463526344652644131541210218698640978649338181137044201119000040288028734148385139651469445895206788492958937933116443913088551615034033667617854882961609847994976567955959416342141760440394999532856388263494213163524712413964568607730423417285895209748812901571451200174971351641145880759583774354804179706099492360914149175056500968068555286270360934798276788768775956696076301260783121399239252907535264046228928468722099320722049718220154360645564036146876584923986805332291131366429823467261627057993320702279219692118903052946428722548661685896418957563758281395390160359487090670283615719666006387603557091358999391296715366018022356972404110090941945632618771903638826875232725006600747698436008206961806112892043524145262874555603241656945151648266064096116577065275707255189118365836331009563282048943773517532036026345916303700052214307378512919225768758646755867072609625728714484108030967955552887264685143960025092299687907878977480404078421476848457432697764700577725357037977110788483235745397624495054142798158671680490238627626169526202540142863908667136608866009988209340584705582915097936682880581573252994702034027211939640832025694822208534176131462406946002215887510319082452655655944127572214232765915153150455019870469745662253346819126671916991997016974417637247260011683486304667835126089595937717948599061234699026045784822722692880553973662551169643456813553208210159698367820980985039651631115056136635915391163780914834571458833315835510126866284456312077358804209357586096201897425936180613882245450376948772367639659107031205589167334577064742506623491204892977162058563937670466513838016585281386777227777259025282311538604181160050712583564296456891786410471922920272823786322529864188620460462487195162888546955360722162633905513260951146790206905893828157179866346199701061825850571404568572833749982593516845796832561430107099454893620903972515233941290418514121828231516945819043345483623663951776369864670884769190732231461426612050561761118826361904070834671623610670545878604220263966690205663410900694418363768264381515004846837006975466943045795428328784688911692018913256503051341907529962572868354860773142872732380421342862640208101066800619091708818915598936252643911837511944711295671511275353775820022043707526061562050289875585076698758445719253046394333044584155350524387815334372693114310146627487130650239158947860880125353556007099765857772804849109679251251799971595647366790463605536872311326807398855273663638353770957230563630520331223379129412330121709026913401953877499350352754852468874831877803383093478359152065932238429647699036333941030699290472225940920730951476481028624844539632680333774920734802369510581079263563401956270225164560867877473390476794469059505028717555382284105792501805126769641392552167742929156189993541456397296260261085973714479256181597778534129222107617189412756410656008750483659199206066766940463517599427121633322776164061915086140667897869657632530525673996546131088743064000161986300817959465155580671811937462739534076098645578218802840954880107791864581623592023570526707374322753720056506789661736246639851381393908407130169241988820682777846548823730794564642859476600761595031020090184374930714290297948457841915505528421337334068086891001847736158212368716833718323900435058995872145646120022763888986161302944513809554909058421096933926524863086180112937055432985114054042489482590681278372151333992017788633320264976020336019137950237490435866761345555430316771342867209233658075212801320215324603503071031025652823650285339500023100327408243840156876845074969883093639062329015618451945463755871176490481614265471633073428360208416404511087915150484735831435565452523595376709170157329431832652363006841689782317074415557396384106934736914369211416221454993660937813347708698037055755483919896161844320321961532895497164997118748296292356864094232087547223003052507212243292896040396331972703003593881738746858137123250177390328854332657265344671357155412180454961601330882874464628898523340426560058343464580883987844160773587964286487995258643200328489680681884053891920090372696410570542950241176439421393683042943293444126860103820238190276056480266493659114848088153846960502000315419979747039880981174097632543939109299344428968684062725050344219845155865027440314476071541950713194593124090849334694824470156468414476291970613425855670793602094344298543889206290195149519470998669461975436268040910020379354930026985596713012798093321405988990283328196762862022364311032663957119444832052462211324739900870450313842710061213481384930829962903099826554108699574381495334305576455565230676469357341763196225488047765299195947665225999014412722762013469244939339806843443124801458367486472028313013411525702383541188652460543050535769686080802786947931276840670293527911786422612754587769550907616589997190079825284356098376108280249493523043638846108677315015194506353283665212819454925145654772268093790988100436498039681784906870645498634402940519262066841449368845464858236704371938025678718835502145525718150588738135494904781495405348785651865490759936191585011090177983547819321814142797345500070601401184636128644254090098974511269198521214893462846192218412287620839903636235176975144387219548957523839630021506578989714136553764321443695598624185043946258663426182573910478682377753526161487192062337694113585330376919178490709464571960438004915508322878227919812658759945117793247561122354118184568950659437145414058835022547931914011769672660033046453925073559993417658790778861474755352379601385603978661254431548169789512655083720654965525882688891062375329422890363875266658448591985275925450476839538241211078143303705899298672885979160464614050184299528581852489007157802734577410644749269046805999237208340624662454507482643234246398613762877944291380663438525252046791389660866363387806842636011016912320520958977508471073395552587088203828517581123090998668341585313444993334482182101881543795021061717547124783990737718621580711260520551328698590193734970919041975132576103487727479991645912244728270664449207175445224354377994472504215167825651948215976670376137682552325061391934619798722261058724318210804016050556927760431758978241671248398865826407416873685417857239406192729710790801197447805259270276058346553649861418947894673040698210362184017388336570905911957453237766594365901002057612831868106137741676632424493069402167454973135309844637343743013204102036926833080201305973308858989546210205424344657792633313846726260281369296651594982014011237456206912099484003450655340261562573580732331025280860712056416754233204891891566758540223254128733391829091805266436765092748746556434624437298360483292135784380597148645471810871422680966908618073052491477796559854996496879830690370961526471807478466311329582298199365122201846839514765476807443410249721646416722595980567838062508048220300135682856525993408238534021761508751943770803116109056839809689870375279518163054832858931238111238656840249345416014572783904403819704746816008218988261891932396138442657247286670568095025504776101918410428222860439392298546927913791874175971344073510893754161606365479034655442462435638137326713146221080385639873375484379619089622583230213435114618435559852612908534142170306659418593594421954656541023059296156537389967422571219998290657502269511904211550189590345323111034655285872285857593256315836673292893457441583020774210619072635734998295926854129525751146639388031557150760823466222329556730619959405770508684091921480656266757771386683388754030749820242219382013397029792280214381050650990101828182884827925676953228225478979400653096895657870888366647912187617344919173567645236905844291242857634507672082143943556404288031583884897629069502934054511391318775136282452126238642100716302938797794046580382142393036741783275630671364505275849112596030043047680943622300962244376586208042317859211048618282329604356230207463418922310817486144843817679213086769695241109398944291030719113925261634739976417516603111437385477306017551459564406238636159923769297655538756570239289688643029836665569978111368063481522461804939111607367119491137550709432306392596413860597962983229620352904492345462838844643888132952719720251918306902443884603293298577993427108302181520140434228551163550622935968749620162682611611034285429235130400130890946567447791904891421987911766926697363776832829251989082656043864086353771503515774990383374294163680578504497401584630012959711906268991746157067476871177689089258722538810226026697762380298291201254864946991587072279845537410514476932227898879857603930475237150022631861384194495239801486519445271340045877783224740009864753795869861125585642480312633913174547560912525344001998959105601711817880768084420848482196838076504822942150348774082197227801439601056009385685670119578530121879732006177587230448924017425395440799711592650812628386913631618226975670831240779747486615784847134693760090284864424714869518902299193256265467317339007736073568124707487752927967811779069434995683655576592268343555158337366982722030695152793905819664087585921301789598619578457885095960722888951279151112648222362063280768472968957873952286662605947731481043939014860400582000037813693906816572899644690674626273768408420090500151542466608477428431916116354461007252947275365672171587018096060310275692560955998798247866184121918062984784669753536324273486231726072167609947303683198180261535879193847808862033613716941978855397267199623914541247782575139507329085570665842297160218288442200385606316967637334201921193466783847339424150676407556097816924609378477875728257539408965991715695401027640916176527776752649797856097629081124557490707948912531624785797725732134914404161358508194307357010233892426709478194410132917482036916084993506522405523605297244127237609538860542012755159142790102773830912474380232613683259920408494757843745731964261498051662686606759606945475593914670525027691224085971083764939408765279457195279380813161796478931451372584234955773934625410486666427662259858951802135386634360473104625214863521251947341543918063040842239270281609783252638690668475474229898713007285832739586072382970560914203064609812801855583468789776211896169892219337282997570304166565942733043943674507500258296266883261804608632770866374341718116392322566568440657284413925139909186413701384863234345399409620350655466272747406537160154652095338900349235806142210715452073237677302038826212185906039821416633491998545393579150419137287454674919026734550678900558550701931738102536697827345776824179107492570129089866741262588055326019770326693822427363563059462424412749215710294404316912343477033236500020419142703094289591584742585269932693678021680195241648440194225923631731641397118305249728561812976453210169767373156472225410669161469421353893749334622281301296565899008331868182871149477066329982555016767668981433477463620979073685804248852583572470418591077084498559451223997707436712879622988560341037584987547029618837146424751529750645262493130032643780973806066890367530428581136024065594368319293222888522762141018196704283053499586341343652702993072305355290277365004485593165122369501788361072657692251928768189209313924847587576208665677912310210823172167207308574324292514881693883492458154449658381181135312094430028013204662926808001702586163819476516511489237947423862012966574067974358774136477744164470175456223187399665734171241636434198554165421252795421754390345656554157267463736352416622017415596984942726379233600925935945714866834541911810976497913021265691243089881809851591665349710200596218522254120789968238283709140840243909357411847946067942734546782152940468012295889890791583383262488607365828134374656443997333489506506066978458384735067083039070486418045837974088447508330138052795848976912302725679823390069651568296662848402764244546404844358390833184936805927708087399513198962890872391254692880003179644501754728374615695440300332228827726321493195583125403214778730572382498369628890673504864673982656787664557073711424512332693987180145889293576473828964552394328212240492860963942805920709791699209959798251085095331724200121818470512801235812151580180607937859635988260817985660222178819217078456357956735961576878985256124296669043588274488352359220228894574835683033490212257621842945228356470742624008804962225134741902877227636502465105289819811246004349546069636098859249806843595754426986884034629097514845582489240962191576287315683340967239181102593956081176104631026319877946299162097934979165032179248563744126206554535271710301336990910844771584619118110051163804196447853345062497161899891755487012666992776899306007754544969923674189633414017806398242728880403526684817899646526286430157371637819785268414087593807197612953910305602617470844874598405916750426331015333046113477731653441382259272683324872701059356225437954649726433268598644839511235360082881431245369420739543069984239650010621071794220950336796991040240114297068489728501068157623859770377062134322447293911737809290081909723423396832727004877595881928519436235138449916247837610201424378005574512834120912470435551871033833499299863878144921398030518994131388107588397974588054713613291091813117659935817397296413081118662605192040329855113940309145796313700295316458247822754599268911482782384416001880181040618187961757334418696000886002233400043310466101405083975969603831672042112095183884602539056529046122632827496144102320651144370594349208424606798406402546107101532711652839484818889297901329691640485038967513503757291030968129579339634828896289258472111289093667827855242759586583937291253088451513177638127379192429822434756435438918138120982232656137736167202166313428748927396627086140670726641771184148974667600448901084000959878354858429295037406955312629497149602262183378564674718393238236568788121042208146301193261515837496123614543755420397188407696166150420500049654668641445689541572277741133128508245070410912567640465099122275747709388466344625140608186987803926960784221129003334369384485102763259709230452169561205346286899390696769803456521077170946715406464739247698404316382151704384982314052637393927622864213844488773052438085669032055805238760971978426716625789740462561005263365649976564844983055724557981116439953327340926568188713572609069441938379515575776586229499633981150934786874776043074431059921200052921622235882356683764268631334606379298924217316749830486033467427453851757439532482071769550523774508459698291856320333754078443031906951185756725188571573495767784543626345785212815195857672173888823216292205706001254477621393135885441625209388969334488167885001988299182036067008660041741722352887337297743498280287641852020897496196309074207876817283606174454624832392690411336818655201910973962564225496570405274537087950672558762409825979963537309241937506906011321457388284301892954884478339495659833794337862014323451483536563577179257096383894145467350748133725278171522714820718335702380356507511721349462084044558614920567223122288444384436174155948338670822619915537896788230107313192476306720780602592837285113953732705021419381196827981200613885860248817138983627972041660329064615036641195347976572248184630741134374859013810542244525778399491982210770268516536205696598749939376007925609229484635684173932058152639663995012176359101029407257686301149844906347210349391728830481233058651100263275884805745727690040587160295408483461471453624739789157850397409528166701011978047180855467589713963892705606754576044299004570789311886419304652952780608964959178447014935329271466153989894935171399461211582229459782807319254576241558603922075387451730185206497669265148745891427397150584036087421532937303198500383494649424318283666024628684547432301833198439391402073546157571511853286217318869990637837861937009394462844746593368355820648743728540285871372362205191912527991539780401676997316597418368639774740923257322181932245726511533620077124369218918498499389064460908057396589592274846866307453043929244887813718182392670724313660161951493627087742913889277890285696613156616556840760874982443549246079670916375463256843571119720077823191930725161756422719080924227210228591326460167320737985854238285572689633606482726317160011972263045872274357086591913931519097720368369597386220929809786981999269939326491843273837732445276561886097821484807998208103938734580421713093905776652962231898530660641941566491889466883839453019448303783033582824942992955921403485478978339738823669029586502477718785072609451373546969890236389697203126520042785331014813955724621187427298169818713459781188233276723483667498605283671124453004450277409913946334299138493281378260182134061780405211036291898441846377036216620219501581381866079581887319350667101810171079787397608011091770629324985606580990650115473235416484031265304490314735892990573887910540540953651079398389600296014446785985290624288085284372548130122973674321526688057289420539508986070685824251865341708135514567939486106383495097340838335831240509383115117917154031473830699297156695831167292787187588600720800963504303513328911504050749889011009613735714498076589017751122712637435627917461366530884534968219842861255790160518812793763764390968504548246933508082516926737868386412047512822888480775301196134444848302503222943142181034891311680584532087083560441351200869365419570346295747392064555123458175550459045617914391590760115402145386751567467686329719616339552847502510363128917055414894659805754069520443479674769209807114160734101049088559260142288078670786194439177618278086548365686403002715136865384116646940851187453661357631849721555430665985035815805408208843989400682511339291154568027585921996347426234118525635021012946629250803199447393224049629013671361445861033451481017082894511428151056642109116735753152517210545798602820090165573740997568630509753674814836209752616120174124402251040754448466407599855804973598919543490712371947606610559114259424038256647798310954024983238375280072650835115402143580295323125060109371034901783760501892907971480008626140988641840358669763887631655387039839882460489862183534101126201992886388301797238557966720736704432536770380289333171702729379154093922751853088870476567249761580139023097561099232091236420469061759366810978960799893252568838812739267669552295280896889060092344903734839636339265215979929242442291469031239068741784804367678462931843363050948164293253343508919325880664541263108014023221403321270796520298426552944793326056181827399724702773966572425059640729611298459977964809504315222832951687723920183321894167033847451857780381518393825710051227174695256077600216349758661709048634069808124081482446323252222660817066227359849175471677881628004664369505376110944066458455678144405439995481712508246935670510907412047779631746911110568093360359291476702241305574107771338427569366765353921819444042764789603296235161626465380446057473367228134811888389548687864468888047229843787993396104556283321050259079811150093293532562211032722211218747565101584343285513033718286890933764102773034164263728264269679613496303590851433091508114250974687407376013678786079304079413276742046188321500812878858535395315227766335377751628450120402118755804669616698020580005767637947364432749788620175003981484392335782370357075771115188786887572687504408448658103855073669780459380764010614501564461964650946868758264434781250813846652534327391915550860129384496256556981927480541502073272714866462913080656300099599170512237703003718904486921841465846984269010705752824564963013028667717501494034981627148234406560054531615277743335686310127928965413655138050400893826510292197252528692536784805964536504453759896369266661005310971235903817396718547823560772406479954558488818475359469474006587251255494802812440400187857901677951978859028848970786279028804955043360208221747664481249966364699975858420817638054103246405565569319988517349921355332979919726621338790268356586737373572630821056872281160699506219550711852311735127387696140066084090814101917881780246799751078999277745591091745361184989469376180062440106066898974629080482613301540132964682629999918794193181300928759950616649818509761679816839022306206736406939492250127739545521427670389879558675784427314299210543596522112629897481754733561645262707385773229213665413621901949622539235915833889967612037565763560502752523985468193060131775320443244135764362707597858002719701698240283136672901074942916211456335151081379008491047930883154747589508867299980042326439389499471586904544701160587984411172823127713478293331585702612064729123285892052344856434452946638329980778402365498636644144243748962363768202800132150060841884891127417889787798733034964910336936665007963272557754069633614664977773205986397994808353112876758311257565247789141588736058630136648296097210547355848138097421241839300518404249301822974756546525223494917983523783038748595997625904428684195394772624589562719323638729181878801597198928414012365305041121998097452708141847191768335661567662478116395235611909469757169742064028741984288409388254006155974637204938226530325497790942054221913697170655867645307425821227440323655221271045644376899150503089246020079235549353976223226949860014597791228267306755772566025679749256494666654392713821854041954012345101998404721721444376191543152403022806770931558807093257525332346979028123476964304032077460880859195762812816080630679326107652161973035305925385951141730736983745588772316130692389656564407726380876078724518426594364552666530045058176133744856426585420737317350853875956027197961447632644209642687636086496053210741906402681754033653907279294508517254821652076462642975923969894295865259780559166526446138352122009677867709278432109459260813040974809497089396842308302303542609558324324595660914194513636733842592593919599408222944570690851352022035260401036123036475287837476298851859960616483976934786529259547133069695394856212059697394745115370338454963403712028310700860131108207957335218698321101585700645468045884792323547030516535199443107289383304747114836314684284499855241596150473027912489848546898503053625137487409454653035059311775526293097431614436460373052101027337980558022029469475034858410403582674296046785174074670270745779096830439905893607462655735821390136681154308305616640169249794600606675103720668195272412128150876520836267129758111573956120488743934430576347410875896701819874640448569007522701744332239298812843626054281665036145564096202874352262114027147120289584159703722166090213927799076757519124760201714543227429572920927305643806834032022620082693757964228138443075395672232277167348348974479511535707356868046476697499617898727442180185313967639142584967570605357876063702064561974055498988409526560322295729860557361027388029346600912021597790781834786277529750969217540744018989695247273075423066140541255242434951153445909026623905693174982935017592126248503566821034383263360376814392382341680473753957137139308579248690045393872787825830729307377072618778775441156526356752760189714114982325801351384397130747421691161198410047852288787870623139015614939444218836850191519951210246908089044242641519323224904456306847911583535866416108042114108751215787746806383426191710206085231884409698262099553561204676686774646848328209381859387991277829346446033004414345294304644639547711499844288505503729175753232827460703292618254256393044749080639726095281181848668387437124615108703249559639821160437116581499565667233006968905104447099786327179907690419640314243503105127196425944033598977188966757135404063662615281467324449662711723330357024950130533186956178391165495867336492470126142252934619312563440175564852544982292810914682118880621001169528229619713721944920892766732090820375169740398464454645188824291703844352751752926479745830532390812260454906034797978370627415251085339005212656646259493338211292624030158534076691226605322178833330462260366804877759778375114268507537986079191374962774441916422108555047546484647848512729642733543896251474455009976217693963789531084108790526345897891843018183986442332794925313164665909587445468691628961309823394635961347132433162967161242574691315858544598208560111107642855272303110690750740548386448143553160955531023453281516972297581349232036162095374116373093428217030380266098566340093447590482532934953835335492067930325255989050665261521293545575450549297552840392648157829003889787435885773798456423552159028128156602517686390922296301656655984058229747384355907745855591784427627323740313702314854423646663606398095712082421605262738172540211741869873967565983062168005787799105298939683887053508131193822380867874550515606237571254489695560483125361590190853973052505471122455901889322056588590202611010309939612677772262823611881993962758786215875552456649742641199660111224624288826260889190975182054907849847455733786662957377175612805454924324604059610073608831513435568770678359121567740950130412252911380053063796493356593821323174164021380311630213359167740555026547743325892503876629511546997141954694827783124903814452585245843181419958211487036369106745551196552131162954500988054282680163836528063647271393104204108257816200542947470189527471941720214257000041262397189757046694131136602139791601697136490080129136423497844356656839957833120576759877251243541117915404896690961449359597485627437739279150292600612382401557960437762656993668735226077769982770322437700499566273709857090826939815207438264549402655108542611845653992888212776868574146066378644029949924761119802983261104786283909057158681269619218611900195764284910539128483681154900290511908819849991687566584241185641746020969307689427644640739778553480542856422799440191566915382922505213686567544435890587924729742689636032041084636687443656186434340645345377956567276214326470051867200434743293694067066588756634972579082636254406130543504942560846183694818445047052986180324462141606537999102631621338386925879804692457442116213471889339216170912482279500201060638396961823930257489500288280849106232583895344911271246310891799193745621357487148750347539607620699597448472252523167652514780799037591036323576776530984628264030235443451686092668587666690430656811153823903980168280528794455002860639683764295356992094396340188942086934114839810532560276780286521001282140589513914183958763400864420885810477961885888404186022088051994848328491908562572006206766358443882947240631737018926541954770342062518628000674512295247819839232887424508950115314945026113103892713833319311065587993336257966778388285559733370184561133286027043730381087533475771535699940705172190267205410356832761804009992909061446751128753977685617837367537333470159532431633895794662792747047690295223584275267690361742587308859969846996705071340818096417926419148258935973920560775087364757458874818971530603046504822699021551496294066448508452874862881625617752470899312833559247393420109146597878465053886968157461220374075953274553126946150541574840740623372209484491426405564451705428222501806435735208385759968798898107315332244857511227622463937687491100405977134968470559332371285280700533059023529830255319110175057593892788241709437557814432543157370582254813123377941771762578869644178530365543974301703768718977882427863095475205516068516863058918173631299533734638096117049307571948102279506142129449354965575227627532558632385128279833677680396228742278127082662681960888972815268974865494933625085865124910151143004750230997017452804539200088183030792148695995559111315393353518261447256844420383579560450669409178951256173524561290891472603139026277128074734682369785311899143375006660146921365057681211480168750650432376847677634804941946397258305525956844649843773344266264898536854722340484002871088628728443847374793841946768535158892130716710094698634119565504248334744309331177414890679920359729800377155922829323151118913272876485577534900357021991521085387527911328096806331797847703168530368205608147373778373897034633086014894742779015581843616621058432315925174762825402394501251288182411643292928039317308056749096881828632332224265192647345377661220431889090570523673458568356084541680917416609927414035913850051202123283162094611755135316040508987200717404306943681811512691681615472706449243357310613970443504371733489264894859956981865960536347494401183054012868717244405747586861632074974512210171600703564922030514052438711951004937723579913026835131177735167496065870896474965968696424419510947095729295287988270867434906336383007130499506565685054281217400541553653015768765979684114828502310934496187312964931294705577041352438504431976668234270654042916741611895224892351701802179685938077427554409193422570902592920503925964388330675051288222067147080771016958850037458928739644479638264177212381236357046955094536074793445193286355786698433486143620498188177737128146525744276684167350008418854215060820910977019417185591868026058632031153482796517426231828446837395451929826005791239437632680321542260776274785364802361082047044366775289354590908325863123980273095882473485199815002466474947137572736475660189918053036532865464722939879681003335907092962935536452950071302258874300963226694872145299452653332638274884999205537787151530267885613005436823163584494587207728614402551257167857637810298814444071357073357637033191095970043310679240066028061585598331317060393232359385097508162872409124881968269205552611337653369301966627326967836034601528873071052041216303001243000868078943106133007286943222192092796434872554735427340971376842914844099376451915855754659738741453824608393334680413451646190990205400823798315800655248749224640520749948125081294916644872029932431130174797517629502048836809841368837707276670291332362399783745448275467868941652348500671785153123422094605474979918518523402370511490712242464065951739698456985930703416050545720390332980789038179915525116935019018438600807478664524166306362297529031969499023242548021893152161613989006586519724935366274343884191858392313581159754184108843349213357521231657335454570658028701759379408356212579443980156976518526043689483127986212054279824232336667174165004175047281373974225566706386105012361124678083544386589374616187556145368137870692558263767888786473899375232518898361288309976107643556897904005861398651199752112298876674167842820715874439828898156907886667683902844142888936042516799768655820151915048569751308486250102447140092950001820436571382084877952353956355872193125887504460746593929838977313677033978026846874983254003501679599354518697511552607331848947961727395072297072145612281768759927556885990098402821709261246747854121506270488204543127053334767598789880237394277913759298947092015092304692852757947321635027287127932851863834555819611364323706270274641980149606867138169163889595031108099644358856669574346340867626198063246095197584884173238002421015501587712894995698124369995333564753680064743360399503114462313561102022385043687778597926869069580858348646623302389445486220772401497000265996693780980111533867739402361783275433668824547748305421795494859985639724579645436312123644386092290174565397266790540115187722277602244699069328463103647450804646605975368235054354841774121211932563220587694649679094575210459554504406134336599704873384773947506201627614341460346374323136793462548003180744444329468108289327566689674873962107203922255358296431858004061113387775008692421131840644651661970866702139383609307359888876239057540703009918337738266818156482750692647197125044807729496439191406488016637491381327988372067564954188721845635816665273481133314738981795642061496909204072669933219592526130173355810899550918708495183007349028329448422798344645931064358379157037792195681806196975450187657264706182003858483444419888541352741550053688536185486044275963424117724679651716864600374600396641241815464590633371329399211799985687604758897496025653144259288128251988361866537324243782689308091769035308614366113689729101256653714303685783530621569516736031321379694997008126350606207269535775868372938782915381568636889737487927423294816166102870968019228485233511389626095055210059222863797911961006890879614416260470099501490903899749219163098419376190907827103514754127093049731233348545232189862824339642302760338338933393809443182689088948946999015911552639033173442662081803753444523277061945537971598067834724361720644356235701552876005985778462325247654542052199001505156930694330953906390050717928121411616304400104797498236248474206896662988557869329129619712010961273510602725423760026308004202250720107816408205290069375397655278408790048400905024050890868752399158580438615601778676480087866401966564547451398373090897037845538569169997269030229892455243624276489712259503965242223256383197466571448703550810350496879804240971429201180096357124677247206755011576427761759718426385245146124008576853810404725959351539995247663085900994600573612669720851786444393674330097599773066378849260482314432675016537794252810815969400009416671667909162321136175095575089411006160291142981271721432078559228310140173193533206654898638012323240234140289352169389735691140141940955412690391915280855710555486286184228827874963391711197305779998620505073742687672753575614931434795587185019416570936322870558843274637696206323693009805300894307056345535683900560097950210121510657458634397396139273751935208310935529012409519595595677168814280139649080474968236263614556324148462279891420139667137607254350141606138452481214607974083886566326604629677545818753869312334533215686229130031540093101931838844607101959475542680100596829790015659230930428856906328020551956460023555031759103621809669759961139267947147291244371798801979813782387091486195221895123740524327811188901987665796605904052894444392774280807816862657627073324132004021752799236119607253393045886697751674592182717335717902161290666416416847193590790423853579544079411987140838980804348948706439630883878938581791426676443481911016158744401411811354696356575001980503862553487978050700922258219069780419912433563517778096088471103118797396669699251341334891716053912124365305262831999462171445979565148410735242281458621309698386210256811598392217436435509613425047117978499292191259188668507130343191860501758231723966235769585203958159067529157916840482782130241755169320657979546347920197224291958505781274768255495960327849865452024964214427304111499584406533610276077909056494721972545918299137696686458421301163350892314844522808446864200126326139827872779091160319783385753787868267170148864144008475480023145604269018965913844818643432468096434536935417336900332096707055184469597395473290009663220852485932611977243409125558193496699187357511519601628490854441960426494198645904773448465195322172442285194649531701104988544018830623403102562374283562869273596720297126382386515158858617885465596550987394805837901157374094996369180089843441479980788061033872330658052572659495031804519368921511672392777075882959869387712917146340760685633794002603491230752088987586107765495769839255256991035578288717606028207488025737773198113807748448378935719527521115075262669409013806483474646022521395384874355610029619721378023350574035218512363639431398235820136199629944867214231078157123271680774407637823856120870032426040317765451200266939265256050314465745147235114641271029419177926035458968146258986125260279582151155899285763210695428198945965942520994363423309819237059857552687706741461232225555081656384318578332086574157488675427922459518407951643232395050468940784828941138815217084790479555808422195995381264571397235577526055057586940066643831744079113334198750555007773918768809092166515314793515782380228750758315229223324940664995520347163407546620294082449135328555112691502193732303297186347898977222220273416753590172984595343712704065602166111848607626106438230990269171956825759072552410246210449681511783884177524919788785845114823403651250887239601230517202387070458408408076443907691361739387370684428079147553205962150999109811658910385109861935499336006387341828926253583209726178815661332143612297021489486356909302984094613002975429496527227075539722893212338394844998384143133168954582655986105353583451419199644239496097157999153332090500947578793088808702642900850180511852782436103412151989174346497685281881860312530038356515498631066330262240296868393368090962517708881648211659609484795022088788737315701962542589207307402408088106749188467757814608682854360570329224749796612757213925711166504673420046836415044008490631623029949389321879189406587868613289189929406659434924903994773634224650618652617279628815865750459394745605177166139386902433103371282916705214309171556102295081462656899734141421532395422959286991110480034384156786297547804090092289407761640499417067029157114139097168116549888752206496367794527232421427774399104317413536316955971095842713409477635669071516508873065048505186063178456270334636325010039223330818655846996633893618161290046466570627782219360908942986137146174557044461147392835427782886631412387086295726829248938418705239650914233137271318210464578766564027680167698027802987753958562526443880322591022079058496028960505166991345022853474749306147133317282048755558980980973028789668708540037215087995574476373110884662564098527228102847637029406666335691417687451396996708259380989637962056243354228741648653510448255509398450059234205728126898347214618540176336531402241921229037270856253135811684453303499816694045494969194480833631530519943065906943354874904312841401038126445926402248634430052576077281636237221990628246671442838003473283223962856821044696578808289713600018094376924974871029845609344669220520120429145707500196309404897911473685338676447033553261936990393353957112675905741544961400582112858557484864144937004873252743513466166002346011548440233834472723207068242060435567100239779873455184097953786969160285256313335740259050011372571894826646293217122688851746541184665201398289296825482356103126412892307940471169931605060671673938082178487505088983751744727708176696873768373350832631979861739727245027499706085793802928058036520582451994175441151509032468667287126089980280972316608945141610991810386426557734835478934628766671548549396122743799526212990156327045540086918493041559993268126499540549111145403745325276383877221690658806801542274218873827625246339423755719613101888699101133303556865277656017613468435021800839295980742021751707961997424045761210612300917705925597154845077525379818588738188165628380532932110471935387838917522307444492207637158024215343630980160854665496226366145623859202438889602190326113032162530596325241129642618859078235904724361237729594415423604120753404458221247136272404648332257797303548741190612816365324688533756666439911951685261799833330690512371147753302760310206433700606455227589637528350405621799542461185556860210824341680973923126368736399024459777874806743159517235948533183545863660464649714027191936573535158925641196761700100891690604755889356197212332447916536772462002836171504647436141060435053758730708661974633154285316238161086377212396014813593884801523560469645347414705831886393865019127636621488148279602536615998635495560741137119138171204396626502543500062441805385083778302412570295714226992365988424397320920321608522906393815266135750212230285679487382600967913669716122688311473616269213066044237992107739183869904175784102459383581271058422360242935842640830023649727554908515003041969744373761182565842047705872891267405537255504179112242636269219971513709674293393297612417345026118312995509174482158346228119965829353251928058731263511201643657487777860789380061457422086547642098724018132344194841474451501357522803204249911476911984689732894528313048361947615764031530667159471255560614316474526654015627495124484293708948321740804267599742197592150540635786031091549795831580529834392934042670076971362486171193208660263944390481747164576777660474116067052043414165065296477416579811004147324105263144815897650968173788158032664957885860160764181153279797560574997496794257066734781429481580247855726884821613650101868871562898198504572631000223356309661029182099850162090585294732289206657839618030638630098434461659516809387838791444655349491901442656027063942807444284700020261740922951814078518265450037269878665038110032177278227285390980501239563214923605471817758087293860927535483297393938516133996687192751381782753164029888594422777475223691556592434359238067295016195363081726205124605030578763007388933698242694915197886528437722788169391349378353356210786209513425486064701402706736199301679271234065634719021522050156467871125150230370728883070389808570548689003959086331380320623259094913325200728476631747209333121991621761934772364799270977009007233835107494194222344682504117746396991808353070111393192856129625439916502476381256861520791472062906167693686829425695164780930566845418371425848836456910552694198567464674635807837943690697141132208317476046787150929781037976167583533114013982280365016654395800700237676715652587083136000015128718906042807580617024055655843423482267818413604816020978652302290571912278559441730244289390583383933864392111293607218387368088390679943971030318260048889069907364928001605168223877048992318779692367159715857484193543513501861087369350289323562738709377626097070184033596549302281279750193900379129459902256388717787668447122379032377801420804754060650084234519811964018655273123472345294683572716247758080863007597037013722496506220249348330924277618696936141392311515747531382987945666952291638751926566231794667866259827968643975118712695991555890735544339239278394902806046310943060103573977759032715083442955771448431730114774986472236272156699500719004474922028633786199546345188348790951552813132481766409635821811535616643490141701032452262782458363335759438350629255821024544585731543726385166646626130393231238179498111879727931253330736420447285547744093579619409590143851892083385678418219782204842224604540556026225437224292009979067645566274757158342425061927643974466812517726309840610940399045672757227567696729092882483267621177038157975995165178590227558099545929577976932528507787449201970228787935678620048906983482937436665305422677899771910254153728849185621084221475915167682554270025589560118438867204806137538138725263474258652325950277706677533851677657829115766349289651068503286528379121321793150348415750082609032208848546578295845734389509631927557898692434425599431737515536788760025774354006663982360597911641180369188052416430915456835710502787844516478721281657193447898836364114245496704051372522885519980995798289110526523935610980779725926522099379354287149451315327048455614764660210677777070967740098350632364285873576835679247503572133094829115861972196723895351422441907365291298969776795189141932320055814176622262629260527311138952126385832100216808221891500109195663627837005880264699568131787032340489715868635916130361630133707078867206227914579865396440269701247244223502020224300163846202737975499082231011868655929827421591707636586407926741218034604488691157304159082955699351418372301248645941381287995022662728639923725443802851518159826939066823276643135120563149770294795998903565221965352868009717872110274489350587077683537612907107072083691138672917341516949317794759030294518190002262171339387986471106864268889786231523428887530668816394211689679697861030696237091705207196047087364784366693495491496790214454060537467041556174581987173209507077340858962590481376604364717604123362392337096801608965502788199486290231988187375352001832434033323599433458312401382968262785931566988818111679111555889354546835286926776515548826791202370377684639144798050150820347646969701881600450090307828918400164704580141045655306715718422870679893323579949064629427544313852404638507104729300868925341311348540335655376512079614220991783587312497792288842857879084090832122257126411013792208573828880090777911191660856116738611020599160572199038884205341407794776721441719041136067345129362603486253794610776130688921714586833213029019825578763787936646027954997720649215630066359458290966855448194479019441687612502952432669288126849548970676066378160804222405918773763982284063925014036829895074746821342260182170768607463539029432286683045334625214461587011777831603556818026789648405790046656534956723561773699004407887341359655364664516757425950542212359625049086542278165494038635192944207400108453720801360810852252653024822832827614091010727147755574595007821724269102872299940456064738883575093168231520436600960433865463607886642073978912766995531479161972392194987010294248046338951522559465270865054164133850854255747244861869409995500576615846822884805347723746474523281892814189275794968811376386687706285348074392871808436741222943742805158490868781705744833680519443644504169250279579636599380928195697627656315488175581951188876627523994277750532590727873855080438822524830978353825788658676359658945096427166623808729037855686746052508860949257370976584783623507697055511075864522693498127733302762804735351828932423745095317306374725908309555138065491102185929261096367132987548390761601188621703647019211221194310350959972578084865732287636268734524335318654134183810778416838468613186032710858797169390533217963875679220989076925812651274315370771683153325230582915497562620771934013997764114920642967479734151567964754866151751582081620520596192784661950781205940343339809400190832875631473555608747704223664342065329129148671069198814556341465912157890694001908444829149810054028477205863100426431543216676443646801433155334671269740036805539854951910829383813303948345927834250363223814139951043752828063440437483334583100354121417135027476621719372803449001649972006577725884327449317168657689069150761934383410928922914506166308493119121730539260429896359869992880426541404131859385777299080398064531973153316814423907907097990899272556376563552871752429263780389409964538224126311117430837671754010362404296826590429366082150154191317018420934652488422431116592174076960150564130248887054135589293507613547980087269625105742356094802514803272007421282529348159674962276292943390984079022979824007006568451574794261381588041165882170523252270668280487233985734097471519755695191233031782646239838732517675150647825236210205208184561197469616561725225642466718443997646233987011109049799537509642232756619232787710847479780388497501498659651208955499215873377550861071992347918750048957885918260070701724000169602133902057282478805295305329402524568602729964688107386108150334804985621128368942434517780135246908300534955587003231399100155364234398554158810274724910665225100640555819218242647409510585631177006318873766209459739589419165633366976970630317695350654929877456003972868121030717367785685517144995264960624661254735403516406560652913956520994232410927427899570940867589329820783375051587813585362937628951776764309404702658441713254444295530214416006869899800853860111328982075021338395466187264498583082823239496537021570466837744710219525950830504109898067861935704808671851238670467362511818447466857422246952060459370535105794615895671483749494499226563234479202671585666189976461434754286187722367004119658876690256283024485749197814132135868615696124410602011112262313542520037226048712077736165018053628584955623467417860907627990689265862528803679829613508080300185571675178873955311714554954853519529161895120326781756714506853006586920142781312164592874316692197869370711454504969140877325046336830658240562614689570161583857931860820012170539335175055324244425555007060759013845061532288534157485456257588670843907277564537044503030392034374651802259842024114720624894779271596959608422708689045417986761026212189619803872012749585679903948182964011920931447262489501347532800238868772030084834118430149374060047019397075694838976473068058401592136672020513920885593971201679506678157160767599454147470514915169025890611732223763971228151548392744070657361873730256438509739192846266077687429646660849162310958002966568359425986141390801278952754822731347371144546602328102904599513020580503417167505400374177658325050794643274697403705729881517597632644523005694000127557750041272090710877070767742599319182660344467837570973475650122194327193514450272927894524058150068332475571928784643033557821969052305717373451737091691437684491159071736802895312873882227363609543446920509799476871546440278811968767855927750012782640757223668342271435339825423307302289872238675501438133083747130151170169778044194597997228810525693954514731150840519669129417967677208321198598420250195700331381837950249850223506989225865721767200835518172361492661694677504630405231736274752474491587581872988734082783093202661645078742380853461601651773222821646582648331743864660403538801532212314634364543879467548127409554780595538948283277582409198762032635247603964357038728734919926404787911694734267692815223899836660059161067662820937732074218423854294116060902377286699906169999231982220155204895034276615964978084764585164495212655287837061097951587038721535484899976264470325404828639126927717224793688124027322453018595250447357699347291689026288438110367051238927499416641794931385721063596092432546292356692248255020709111016999100597485002317179056222567869855719168043399761505159370239198611495913729858362361899688108642152031582244155359592290704049078706554628322122272839899694370700320613289174575974457434912963149460867352372682606426325388045079251214007027658236033646533183126121810445837728222387643470900400987239286368111717043074782599458549873176659085594890027510280384596725789778175512712774706466397871120401423247519903653237326451321947664742575913165049430831508242464979422246807324983658120294728414089794205687972689718804199112693100035484026159104445716128888868501369407644478153843885867220953666071559515159148833120577072900455217372886181032491973043517281702921100058204559421791276638991605431147704757968348697542113678726692028502929625265607505251962945928471387583324429709098152573896808581388727205877151609423155520568844702921420135146171800094267973106664239396895627485812860016520639144090247040366916890156202428412229882611150002097155049401174707553225585312143033287186521041001892457831055215138733644687146248657972247548718535340760845599869732356248431904498002542918256194678263462846178240986788196370305966953724284077427838555403376288009810173764309967820494766799565298823124054369098459057031262239646211486535025203236259644404159447631962687807581651402101981840110381907251027194979779207533859544653169909271976112089088132717005897789139482570890997576437040579923644668998446497205642483230937392691382537689483210875220553310297682167233112859551458995936433262780497457709168824575229567754208067056946828918050868883830860846866875100190947634907886288632024853809317408046187815223935827014819799935069965622975194961397576216821255958622126805666555598628632286689322566677912876036256132571337574784001364567503808262922612996057646676655003370798892934779766864353955990738226980329839568637216105712907809176727831835582553410061711577448930585451026013283109597462582078571595754805545980295086436889174473786429720440773093103701082501835347127695784081519899047640056971611132253012200189020032300347570142483315967760702028472099545152416410915145910989580582424931729748479557723384745278836378323773222717147988085149934769731450954350131787359670936232322186659269737812808940224715521269652496726300116223040185292347924372978527031334356530170625102038784343773028590680046892218773263524460884290269630063271862817739518165457436198441071486976031079800920163230293807515669966960683030256672708659445865977517386385545518484472556885267014117314779163308928378991690122795254501983422031796779571524776870394394192579446524658884739316584669104605104036524211831266674306611748786692195559798889027760127994202948222571363065172776554371827202625503089777747721986001978413390998849801445656392047164195858441043425126479321901652834745502236806600383441850922344153426527382851414381951257455094412735629653239421379434402653359615332858367258460696394899424891020658370852253173029954159714406710941501918173727821661890713037018690953963238977532711587983310485019065285001407394600692197122613852154784151296514831353013859774583650027605717990364485965841182856100444708712542168275355175201716346793282444516460535719802693030085901011497406941818006289698620980326094188994863470638367738540688615009686892068248723054154806314491992132664889594493440699966577461516491628256773251922718837122568500980596774224577796247609487722858837626044190274360658748460593409208748927899178274013340635817191155414878270192501131565707624326200153771549083170071409321695191814597519314031453013581436627466275124154044416875289496656763346656480928332795100446250156688401235950473536970436532658011039526712921487078768810609505844633895021472624437200533486661235826789224526617315282039953102792124552744590378009157375874886119113917081960912416844031489691276704800862312425330239531808416695251159620508133928165361582009366142007710274811819901434897960505262654443107652123452423532865285641107944601572975578777697949926164097410167564129430213668782517969525326634913505455274513303051502086153681759857156512545230569804850515393223234364249204097766720890851442384970154715050717910264483677285763626371610995387019375540391601929923741862019352957261656411559185606459457277609333773473678983430464931950849737887990273951443733922532621002933420330817254813645536941611847784868790718839520716306008782309024040397119147492636628643447544758079591960146824303837234785978419499861169990777162730024606071842850406181064981148007439234489460089186432695332897115068317191233566011811120502078596912011841220541917909505487001492499589287598224542060707920790534612920777351520941863061148303435572390984273455391167861091425132636648145529001915667074130064737410644117756227385842318301654972420136595806985953548852770823304712773957137113923201423753795855697427090162393462998104095462165683842269997637333726444488118686465119247423030595980968741560781856499360358679508273302887502229302282554284134643855195544570308985584591434720291142159526808229638139037799941783737941808673826520399789633870914608200337539130257976970245787327846065438180122335654075273437632264077233711776602244858662744389967009900708770075792419746540914564600043729657549797064276615222540796975706463344001837819174418853599079460023175314484485700323071798146312453290181290650448753460481115003896533027202348834059887496891792976764552899971271663940928698868874875440979395341538031101887319268342241086648091916718251136680659694999272743089287749699618150595333159313134029712394894363303083664663787872881607296331712919486261026274924689402899949044289096904164226061638837679536890233759902261100596729976619481388199714077187017563224587711257184334577738797123999733902910766297650907655449167739486454766100820630477726291346562641617329830412562250060761300084973061275170030341788876715721743607145148647687760560070605368797258058694704131892108872331446163422738568022927267434025127172549907526594373654377139652213007216398917472874617252866240205478303062781659942343879052032732664717339408332805841548229384258383270800355877495451538131553230337141615847544737078809517831563615069213094421816352635032067239580471945591037143103907077786559377964541408851577027870239559534542328486509174707824620393790644318473754177234813293118448123410407961067349085192097675714264267444921988110355863183212487332859858390032355918251900674470896898393482718227909244378384230452528815780271684928405931958930130253444873631453843667458179138585829943915578354414501856948593862257219453989804552443470440730528060182108705898911028230027527528501770095326336571239515715563210889264893161412233228615114144663309112408965822977819095688201670269557848017400690518413626287228623766203998573081344570395958464925118004130533680027976955467854699672438860215671221236632293898470092721279983310707256302144758280322339949695311197309018671210525050460337136248853469842125035573776404007954257370326950854385062001216483627373215502143129909157156221634500932014371828824748691354976338862045020337051018075866226679889461151446468371318470670338752498525943221379903047746351626445416793944408543259844454453672669725060970599516739651636915960167835166420775346248121185915725140439136302579455655348291048790523316980150902964685523466793004381086615637278935456839871425384294695945240139960602236164928915719970566114399726660168358894905280363017326069333044436674873023899858256595303980233052407825848651149585626816918770135019370105941986154119238925477832245711718012446155048970101587847242298787369699848437590857680775842917959440468522326879318100719791390668764570710129213199434311178533429480776201196936826397355754425338910383084795708056722362670611577097168433704493661295930697714274767142206147586090946685355104173753280582031389846585739186258563146479687663629745750806343997867330361396920084731872951945670063242762461102043181598753274750983930178136992928717485604106816300499638952540661471433138694485489692636403441342858225717789154353360650287704474347712214285950116994009665088454787445992458946613514435927335521892670995730057085217391148827648357337150237681513064153919452706452847648878038459458074869972842489726574352676581522743695996361338046261132718267402927184504985459644239567905409396100731908587277190925327792109316826096810374450461781497087377000522412256101208630203207255299913150356490523268919516045240847049300560440315620603414439305748772230212015738777213552641342767011669768767748351749984914627838583831285679963538336379091755392357340273513985712990959817281759003223686826662606564627835445825033873953360906502810807009121801207808048598713494542585801566035584356683224920232531066536814391103185206319481928549434529279385712878743251449515178763076053403812824773485921973367674891322225794118373159581448056527871070392168450241718193589956449144617678279770213877570467645184236568326194220309377791280710309225166402663857087164099166712920353009568849097426056348021214636735271910221494374997120686859500002185274482269895694937043216919730203057100129461812228967045898260187135210576056340902756216043863140322745692892151613511543091145908232345214068307418281123486581834052258734541239313793337208031361377372030573992336068802220485950002618757905749007093776921877580956721726214446000966516069730836850499363570660853103696846372275314028216267462777883018397449202523393047684349940588980571629183342569315459731180093830480142593167755609729578592160808590637325824526064298268222375481785076055711131835226535816287869817119254291922050776710804251083204996993023721840400404721073945369224121113258369473653253407708344894691813225506814201371157561697127710552735545972860601900725683574525358223696911071501090266377739376032346728244504617276506769492755681824012937107747685239602367207748372846235183718006176348166181569870472180861392370001587491356057719209182792827234943069274645788510068914051277177438160526178971314060492579995710800975452087013772457620690643695926772022580578865522615759634237181481423440901076879603043793372697351077016254016532665023136866086995672534758642809018554349498615864860772153253219430686339851338045909730363810662035461986483607193042479428920813047824220814127618762864365750029923345729700768311379025058156872559829053783635961035720758483755667606008368092379273076676166163681635138272665023896827899209862514936155460682185607869143496386364763561128472220085471246587985239381294453365800407522801755716610659847083399473254659573896782196973461268876755687025385796035539592036134733956919245609289619997030088871674968701374338705511452618705892575796019633807723779128728051556205968970915386895541678192040338463204054799417643489651769784415186024248037072755327595034993312251508024617936215268069554302608272742339175538515542686831440520325691359347796217771984186521079768818545543877171873989792110125567965048879244004861309515015908512716668737152732525858795684654237352658867651809944897204381482352826908776010527452627470063960752249817290863220610050642105797069404782151664442485753347798028879789404687659503179869967901886509309683735488008695863838585334606184412632430577848303771991099592190091990834666213150898273234141854758786803508563440906834019109246549179610290408470231496153624506434563931024757222210143559612951253141798646479295492631894552736125712922601753349224270562136032913880851729767267521920152896705260897527373306840717765900720021067157620575711539114202790153733341856785655803252030160477649901641126557849786553075111232379237452264546824291230018371385155463868197177229340640248268205927415422193956037946228530605485825963017748336723180461460975099608143368263003107666817977013113343610032062390393366765640447978418685082913276671951685573088852928095326335383874175891454631577968186566189630752233084480091006172099988173998394225661274416345965865359656628552378086541387712891240618270174702035982484528357163943845340828519563717693414289798585343476076946309718525246636348384455791686401007300231731771333208672706456851907955858027457875297510719289573336334434561821390246333785664056847061854375156218901268890157398939656371697839031510811579509930914761484060973405177847928860679093881326225675310791141352901421825905308696851935248599972081931839602666184299603867037841055823868181544978294591032210445658221171165196139197481373398033765353728864371347232670315114231979331903835890871117928050792336099526296145327887622842726211372274005535673852887333191045577944266245072394168804831639516093713696650018887304061768307895223047613620309983888806520635241744936966149274821585975902248022461017854701730960869153386368652948783311357585250596353182503213588196812969115954918651770674632055673791182554270276951361815496151674960214874691750685993035820255053751493506423282109243526015266676848253550565704407693160300766389075060888506184679189105271086830710185075393157356515574042180117154149845476998546990683169001429943038071653493608923447126348449525932418603656628814703760346680648995539893685585686495616282937747557957052520477029430790760351285111381680093078274880582415023796803104784091515980475751526179265007547269517197457731871329736393712494924934226229537458873746643404284177815957638336131631655824088133613752433810702942151245375171951257253162154809042562602069984057981380515620203336110599362570902514961024469223661189921006076891724688446913595926756137808000952943023650626477825178441614336371286563084571648519466515510556811024348017473830503809622146212371466690072263843209670478365185587876666103767638356101100040040064097039828901241635026006612840170766212225328444885953306439043960843663218506312921761094375945725430609451958120586127026736038563815179118446927269564707815821580722006682878395973610780823220864269678613826915207990465602409978045023922074106046534618658412639334109678431712484167552055958577240005418854322923959243260957320334336284795814515970909441252588516267526177225691891322899854447383209375019362421258976341870837295843125167759589418882558005766592574328755759346679604942689211237164203827119056179784779733707956042798756189309186734595470941585258785042787152646209976395712895833118064596641652524681786199465040957206012948093157584768199106522713161811429611019182369040332686986181762825382532003744494997075010836833541363497711649239350601889920021239222620092418291597455286479662274010899129875202971168672230590743174090384412691181054648120292613113483131116094181927080463969098380201454552088639268049156157671937955907485543114499000961371080139343015643529377514191746053383342244874415296406530963316928598813297571048756943183514425570659912171199459700342395153540929225973332444214984738490671824444510304930825266268300442068144030304589607771006660260357570530756218733390459784926376211438984125167856172503566604319268987615275615058171365572511875048248471708227899908981719176953864392205046241934074371529486432597314513846529647799403933276916357443577032408534906988863897737361488659183506891702767261279915058727240169528741885992817558793144769351982413202993001178823285692684955871003520941827981536964540955097924244271198321161591193328112711467449315965163049381794608560758112549908830282957514053208720285896679742925216661963521331917748919261911806359370333230360475554571366337013325369669069367215144263196761135434882013231418288380664511214893068704376384643170035773560362208912729097297336032926268423513491198091914369633107271265232975255215547352343878385735079460271739264097183034880799012061646133611487793976738192753023080816304362612815034229929591988979540924829747934629839808882221879531040309899893794063686268866461544265257976874811495857959659531794611647105903133613574494605001373011949758283771618757844839993956786349756046786391956718257770933229921956905791601329900796755106563849273844202776765860278491768338241179357368011535719006596103237975073352490291370576740615788965399691838992083265792700738703796830777590255136359350271067824880306500596994862340641299727359286872402348254026236852704874674983233257830718949286938538547167960809971764912409226245048966476545722859862431473336262406309866472737686425301252963550941986219158234710058166692109289912461573866800681030582239935510909369287221740666556856526262142486236940737166059790347793044497934331492794711508861964261400055810740298072091197794654452108001003008048882559518613859291049546855493019805636317545856059975740938822469951964600402824700236173645157768467981287001594278629444106628201823373670799468869976581693133104194418275325849365190038916344779069593677631903182544578542233770818612481832919842998008559608625476315319020975919302797876327730072337614676430018848619293322420102963647250361817872116743829695551595669906824013062291564226518790847000414067471264133638576430816492879341188423245695598674650665526688250437702547853935977417546713871449548276828997550256567087506400789953867871856344277544820861407430780435470425503071876310230771386385774144034984050445349595793619413973558905896362626663633030144352261683542087131782752439403713915124892421932544145617813733597424237099359237254671486910732628681512063329040310280828326059453425426267856801487044507039334830148989192173858477340752480157632238360958069929475699605491013684132164406422665977776938853318910111106167698697607972219476078508215364016221439199306529271193658161247959174107100103661709289915768789896845652706752586120029670348112417569787523175574191240580043567714259028085988516733135083834927169495643086480727323640670646395646831952053625890127489096866686012373828766088258659153723516584779637779188819092604975648314433168438094555610620522271316480765146279110342622681111411655581186726930696352519657677241557616880182790610611439738790023254744313379552311520111515599671927732087290813605175347397025632898903941926801206959202210591526732014869380256044466979343656565352727379939188647511841653946225117000517004818889213081206479958701429014794929248001630123469906025490827917348244499937315019201871024989790094986821904422705635615247053342820750990618385232882911727131776497643315864109145970898562851227250059765776401759447989724495826832385475195288263913673279438138807074837125052588248579918028530575844310571437451215154117570718384685746887426396884871905565536819988956199011163429814026120590069729127450647952954028151928659827657376987161712698941984667905651444266331433387786384887468218458227198684548023124581674785553332394972290328405031833319584606828783430192591112933067866010955743057156405080140656874891966494502868569873828076461622526833849487743121606011438791265394053965090188845647429935323637342901242657313951999358736822579958361584131714424945484755968403290195026628275631946416243734495957244561433889208786006694486731365432186075219866974973278468051455048554770433448703379539788860582234044897251495687950417858069395928462054447231167923573287624428159395158176269150340801817912417262706708772417696067247817697090096919057956568479568952175213205052097621576443195498465986208947970193573005631379028671020855245936603779509477812954743124441531207275598713826370456975103105779532009348911066360634192972736373736155493021577563590545774427705192042298955264944099572556743078596740662616529518292598144820180613242598055782690640208902629534312774137468962418311663962561357128831818404712288108611367012589525033818138021749611336349747021288136401768068161047655575066204521980101571821490316076661334896482819393660946662885454596487731504736696599452687919876205961739864609921096866170716952990328432658595997300974989021144655406532214769993320248993785697662011966830681844579651850466179582991772754132473585554605752288252001307268519290235207125051823106914031606296041477633410490094454578511044493606944413774895354116954151812992001153655330308461247389259414325980754355136084783736351319559217039116494741015410445329808012098647486499237142261509720762587013316906485969585184901007146377639523114237078307229018693705976090938089409432023260216743129112350924972273629332196314963423255067935383155520489711333380375628066103884952927314848346242958189761609499457504564112131294789727453677917428172468250660274833409996940626220990055898971315547779934567826269355718975807113873538774571612822444754217011067163269283056255494672991507928394297400353408601199085963235983610347503801380841931996651153389106807750997685678632334818846782240912931076764953207947892529886450489612959341044363312981193531440113580555275259414040899400799258344398007012909034618578225677849283748989278164705002447408356996323887462710889900624016163914082633457398009576127975245907088625620562157870582674754849220928708194870899768858205679324959394304220519639784261119642888961900058651823758025003585526563386464090655604071062233775752551791381406120950546119594574955298478265963107733757674352116799045539219682106678727699562169083649809246751271369088561288643541609683209279615469378680979101566562745937166713768053526202388166401253378179495328365792106134858411260595179579705710610453586541595540455297579072282446074105457404827197044130445954486508437716266848491856628419384237602074193661415784009787342505750011584993147000720705923291303975693484564050910278910819596305604447857987248659964820183569215592297925050224149342482297883928787804196299303128931675509323877625164933200188698162886279354727186525641123798015660864143609354570810941345426827547030835106262109956724218789430478178570860301854937783515351097413643472082180674241257893555934007027072954482115656365295968707875391171189789631803012566874476273036122888912565720983093799144781147669668655300324366687178471383495181618324931422862227735875538129002270679349002628931852570375843994833957316843753302337101348295606351948260190532724301838354318518514774971208285767716605442601686462117433855788295020360466518760189573563133073111491082079651804652706748816645213770408771999724822829721623757956523226703744501276970819306462254444390641427014532018445119451741637132530586712555003129673828908585625984275382802615666590043231225704447532927535469529960626826468761620396813639674137136203689503190648245549864703551163760237580551147546160806220622790203000543028435712607786246810302303353386936336685705512219549165629537832751192612173249215603007799722505477186436709168239478541344071538817383568948998236596426693144258881139236967070637844273264617072557983057305101865263343030030524190509501351906572974852925094359273647296764495285479198595631180516070303038755391845117717039314107688315032779703311682395313444456794103295441096895627050353093547022435126577825743552338354945086774133158671038565370840548313452735703477053534741034470598404250671803579740238351586517995146660083695995928997833639488981056619996806738010656489692157088461158217822278413933950162318504315306252599843010088528714136042542159312702207614843907228397801043613516629575183596890247079685094393331430738315031793239502850050416881456277638702877745202641602301990689469137563611515419780452996938773111998307581665939111255021470174961709404069263128055215882080966841864709174995717933728078362399775468411896474092178587681700395679303371786101061947119083763524257111389558120266536019867230785285172475870125337749252491256954039499624880459927044093283049752058961359113016729075326599969429253652226850144764093646043534611374153876553461547250749714986858269537202190112819645114638164641707835777542060445420912238692046581918765373458829148653305784197974654592245579308051372141331411791354811657310433013912306331049850054677446013725035323017295686597973018120182363484620624848075506944031423775782453483436366484816606804665175016614928348070282463935635149521727620393542717508310894753922596939120354735793643293158949705263987024626769048924388324988150511731125174624969004996995594638515325520408697383717545301187296484481144756860790067580860167927705384002728497190426768024625356061611477354523060320619817052397512716812287175162910188951050918923837064519725084144853921554760089579087789909059274721512629154765819252052918211370646918455274583339555356352360106989192073838587595560749495435710762540621788674705227317641795467961753027151937162150202148736130233861008433560722766295736417917562814316263058522842979726067515910729700728059263859125280777310315646333902300227981766291783689438080384408578527610998417788427513721358127890045491638074132124814658803851663184070418142972460118282418631692410500293085129917259102675378679484929181666843070085131268095661143970431635613263377147914724126810761447238090006234187268128914222230206797450906337923918234541644827994187723025151154944670617636864607190764762501226819374029491652492393349555312218441613801053887328521468820083081467352364780867082292385236472146799670123097519250676201800931369816161551431438005451414067666679480781499776584295786567300945892617071041712912773780742132570570904746450784870084046699653681790693614132203033237186223225099575868872034146139686303495889349933005937020114255512695792714382747121079778915870112619586873357549728786373144556106518530964205353730210005984197225632815771383899403344675872931460131300558118189396428552036222468617603854723186963600032309896381438225365407030109609330320877923543843113525725154607453995615102889631400863791144733426907829329434911943151776661787009328187441638730141038714535779373180111286226395551676738470187900128064125170148790962731520034209559123078936628311071906078145471369288462888059296344499720356410515506075813555944270932964869082503811077618366414972054372980201896993243819286283146835707092101311212562930867573448514036285745216831642705193136989117460390485675214435129075378080026740624909427805736996428710789224084904018813444211013203956467758844192625540177971030661526497462025842179598371379851931223727683746816355138531763420126920954408791397390346964378664053514034137581608074442765522481983615076378198613616458681180856611063205867214975835173718023378682465520404059888136760681937134857397984273732442258714798351074830011686569363782233749062639032998877212342994760581344307828668758797284217206296366311513787937521457138127779964385476040471856078320846951638297583069506539822808075580055911761797475463018892535167274722192879123948514127621283547320892351628912508550943506220519391340511461402759899964361484206427976613865846595802069265739627730181813119436088368660933305538094187985504493835005551372097342590240796615662187245017402139323667476092692708721269215819992419969935465126911378656607553222394029235356724417956344459367232225202172399023512201836341996195653504550122876202293134942437396475113821305361215938174928112931946786522218132545696084435183256494245174068526373525026917582643812768239880571110916127962594149721187679887678275478909878756414431645674460163631787940641465712562947288291639555442557733679519216233055212458755562240941107424489997983252212114523862323173336187577777260672413582574298630180921819708080986931781903711006213171468508029258273681629495128076111789851025259172077918785869897780580308102026883085022801748932550734295712651306917369868126377939310712257690033850652988768776827338708157278151111927863878075144579683503345298142260379843384278266591014591402362138537158858920135825328271640928217590950373719564812262875393808060106029007350542411981208413484742420511232429681409621889877685905583728467060434837822462833792302614118281808694379384621713502175523029609012751254526754161668349601586530303826323195620781192139715269800357249296738487915881496535151611652531801178321091628134007223617661180343912542075343028547288062752416438615065782796989231436288318200647807888826411742260462639945286084034681267898603347100827102688875081302775125224088220829999885614042681009858176063045813287570316471834961258673836560932644356510030776134317776924701093511967714815720028067550800395653110823635425878901456531329779243164710237117199273852438054233468823827852008375987993946459610260262169480939025453055022324947082105386381956918794906149825433439719721500672206398877902006717870841006800259861724244733546287267117974369209398107558748503440916838912069342922119486721596961035169043471035434579547266675334797603793834532615871991661297900576280681142098757897397917766355595593394602129591828405594497618181447055491743278456580033182787837067300289982054599918646774937189974702110838251569443804043577657284960034985968096910997331984023795061014017116826643171690069073370464774529587669812616839186211287518451139454371457417947883551220691646859690462216113444209970353844929314565511505056795935791941859621493662194070605714263499008434134750140844798761456549499093147534257278154812285506313245014711910284653227700695298625952591559293905037224122570723878030736504851129686119104647138854642134710530897747820098874736073324433655229449956353286666001314111437604393798323943620835390429144792828547218616838888792902777061007224426711638583592829731806986507491897977357843560240719535741454976510208141052406436950626080957262534747351192979749961050298229366036774472372078220660615879308410461735972086224102631334235128137495553482590633692417253037164499644141514168024875473639906669270378423077851024091151958134256860402272916384593294327957368956607879707308884977060671713610971568268975912703717106957122117561350277896168891672108273520879891466275267781921485151281053578039018792540540435997700936290063409052270767233890571934593776803571707164174465349118674370502490692750932732432923470233897238881499645809380821095843007150697026013546021645627205614941394208008201203175573035024644918161225765393933876203123413862960844930164704215080433217225983443598018380030666761764054777251674242604923917574416947548033140196199994049047294384451039397370438821354505106821873380009754364109636066564141980389845524649174043715378224163217204577085481182003442070963529322946405780495383593124490509583150778427815826134636960818605351953874498341967239340115473972120483802268851766720292333683725042356143600704419738508361424629678562029021928378256403242699029359534429135810049839266909651569029733491869549525938482228784017617404875853799569014878076845241742562697276457578023788741460384218856467912770489441590956117658195327322564533163482189847606490945386514124724487885032387309657378666835306972894940814944662303788390390732367521464627925000633053978976187226517844752173796329210234566463474652147231282225664284478437183825234555249811770607524534418420909349232536250933991502674811819590139287684512486668481268184962766733639607444814105562751797188455010114771903581766277666141319510381895155569165772411220791351471163625308928522672559681755606883800758521970334182851080181715986009892608728994364099095538912311577007764695972393057437630030784369634961463187582728580937762508865243300748989758195888598051482350139867997024140456277256484045357218471090590765720077462508538933110492359598631354431845467622722408554984063573787296047898922416908539199685944410196674881610534478455141083732437159377956889231877958077933877857321530704028340895506086390501337516440541610274878847844589142004622941765954770438551753036402934497996954346961512634616069257388049660771301539339826968279632007744434829984595005651918516985685503974951817019045957598557709177960239785017495389139285546860575929883211824116691848942410307990966126368724609319055806365866656416877773507535749960889748408787379571245252566736198053641264913523388947316834755608420699201875528000924387747353150448580774592949182040935887672457012583409521078597963427398428672804086660777640182858989068021043408790985959894520200875132489355512611345738454161404375763209824092594302903048147891253910102485309169881461579887254262591920710398269880782264113481758299187712745875988429922812734421818199963401032677820248864168074946201444895309948080958997040221192173721758535510830362488776307029528351252107443253394985650289428431098529598861172049163459142834595938977721732277929677411553262843681512950060998860147803090745279045138610292462089245726059514707545702923173582283138337566239613912077478345333120750051725581359636118611120790296551330663532470726580318402939068509704975713113840698988947205509660214136440842725384193398131969525912169630638443432400074894619063913484791887223364419621209194294334539513849357724583123514535597128263479845836473498986762312767349513618230925670984507188752839539998617493444838442838196167120555750211402348363003351278752252487746634388018533947694469584998670748579701433982742187548064281184230558164196477141177800075279321075249035814487857477589875446073004948001979667318672927756335012653309320375018983278956479542924984922579499255033239951814486382126262279415851179673456693882906612845225752880637642503953046225161317022174798204333262596050002584239067057122405409075831669855480739424353078702474041654438765248599702487014864758999105197329816815508976304817644190633323292707811839374729217783394073852145452812925891841278001026924622839688295921538982956128993233071840493777589402003144388752704531718711443221880678693259150734233610866151981803083699939831655339514088374979965298087312634225142156124238362925086838884134854564117720514479285255980858291175400686144363428125408614748084466466336046792691532311772845473451412773950409228173888041292724049898597545619379979049771391986113150068687117351043797853025550463261211846620747649734497345608746041560229652759761913277693697379408560226193608681247781266156289819523269930756817065487945268518124077991431441035224973053110609834010740255345472481825174957321198671996818098618217190052889057061614358937749434834248743734345414422177421252257617455585095278106245445260944452315401110067166929726438088213478945684202803351087833341365803307687637927018051778633188581531631589319677692226604455635219778444594790684630698922036665523127295345010910225481089961968235633086442317258666095987518876138723732508346633440780077643036343376435775461027005230287530148458061109738851666520534515597806049145479492595981899959251232928555270126563274972554136995180509224073099491490524907847889128961391659094532376861610812838539674535823765552232253786970066933945636675321882551321070696926720590625851731652901713534610180600797799656603029362055362453773056407410464599347125459634037068738278754129158905226385429795835756329123688206147947359783396029358207834722895599887107459096053574788291569904429897408016351364000731780367158299964390374608401285126098084358221951287713557798011235838247217213014096130100104496520343090343304648289135140247544687297248352250973672350697485533089527023881823271324084324535550680707278910904538724155332854641792241203274690335171824967524350114674358336765661508001196729435500132262588115005664037210481930841080049254198239972256653191501055659002898445775988922104244521531130359268199673511190425080355620733148242919577279134780448687360223167493095669431831607871093904091785255264633247351389120408163596244297251986400584094659818217527191194465864744352191114919954792600155814943878783923992890258680552561430905162110916948337103133468632309038373261790234667239403506846120157202217851623484717659910461806259193687860700725348512874989102121906387442843561261356111142572071639694254156309856726305167195525868826349872072201489239194900055331206615607020097029147569043521736490547838519131611352055544363194881408048940293058698567545013724619025935618139798488039043544644757077189630330843693158984571835934504798563491994074448062863015545417372787003833610306451993488868305480555381151033678394556324153607694278580938428823191822884696941365623078224620956876149751214223938210823237685073670819387064581459055162853601119001356510497479144094690305807023041383456470241432381126681478666047847292956778104335087166447588471610484415238942051489455480623462385369825896537756409343841950592359692004460671104050469711155756299496911403262508058942460380908238819784069248519839608075831865066104942522882676681923178619592932905942724481001750357201713367196453190989427649373547187985864883995858428684426879218958403322590354525676976793154669045172489001152266533958393276721985155752174103967111659779265074707092043766776829807418651181889707673408154277680980871778055291373302102465742171566391106727729441875413017520292879914274985240955405818361522335932343460194118564923094277031843290596685076371196754232676778107087899241722524073347099981396127137653223741390317612988597362485145284829379984157153924846692060234953021667371517378016650027241834404334063846005996444253868299674253111036722888865157019504506803936839619172018511462669133028008110245343557890238113802003530317649861039379951284509086235497418749680712193767608799584611831836952384955272106830088984840994210418508158302682191504053678241594315398283220869366311118110762692621945831452329403433949910084159627151978831288263964049654871577621288827927815245374760160947355293199977118267330732969391268985824879438022299693372887198213470473011065953783713328621938233727528820331027295249384843730460014108343164831226238059269295104058513718660671571058176019625676503963250492445771312892399255104081226006375432257112193306607959789715238862821864989332708159223162113894053241010261007080766064236999988126130191725643574895104512636832311488720757727988492461615121348388379501766573115268664698801957473962578262782286423250310571516791490219544930261335945185470555575397092530390053891434239389585704998139012464772503946093679927357563697016398930656904532142778604965120981190680106605294911358522063927081984786353202929893641832833649526187148162639638123607549241399862964063597321901277091771457422294466881692338193528046290688263992798332316466640074402725420039132793506384830847974102564217199937135476497416999325402673954388419920464636010700791885134652848954846221581621573756481149164355929881904994612711538767839042853390961067344132405487690173214817478267894880899174702338942804191359366446017370657858980497425616425723150004003700744980744050670887315023469548225819112221104134480973833962287900836066380153295636950166636615029298368274339718688908445634838313572676440650816414567814811646209740504996533628196525803347408093865238204146939508210771055674319230449296149382872605693562008509530730462415027228580499645461559523083767541411773313439711651546649343658663845908282493737126484592669137150829178307466883828944526542168755482222480830042127971268456976907078219790654174023958619937462409511981976286115874939647664700378572398910940033375064929234324262746904720830081086610244708380142381033257951480698116957815250982850299205367957070254041887097163198365457029352871703467105499636610105097596671511251481620623179479215866086729159284912648480248023821909326632824865124550253864959798002666437263273326898118874751665334653296212550979783381716200814684709058392020079745203892848291254852890972196079690780274505448700703002829969914159501494747266049458791474340568272758099697575053910597526454248155133340673468705875205455547752916958619378598797049665119866428996004461347021595540960543289111248278736122345874142688043462801728179818129911698563194569622648486920133586218023295085520427493318449606376704567692677019772584593297797275581218001117404494329640442162872461410250540471936134873515667814703818474308071214644186855058424976533799591632617845500701836796256296851771381636956668882339717260754237465590426483538827734244637303343299962924052954309971778962729917591619858259577751831699387570382319919900104642332092724452499912029246762907075844405989774972822266082111692879211094711776986493479774266720634478732671793294894993880222925975707113708269048844976975972434529979705399197656314586427290414676908958982952250106736492453733854445243639673203736920024428142460739572934161329383996384897946121122589669242740478935955884332086999485738394119650829602517645183298126938855144756323747141800732331830971068069231337828532436911966749016013729713612902374089923901750625667356604609928366232144329503974326278225217346547988131443697275997434709840391203279032706353986105351038709746921474347009871091573854178443780002722861872188822448241934289967000389578953087612285756878506734937518933108259576706030384239240482392164713464513681538793963744184483419009282224920128617328257063885811483320833837157952444677578429676664651966988705909129272631240416143254944582180465439243780927963773659418426757316926634787009626477654623115254160000518405867680177160300177385300720047416903922422425632430876669628935866050721643544428556133324873173416114949266768860890780624110279806869849393514668222877533081282402681582586925656837988140465640732139577190970442891773584510571896376460988566831476123019626504647360333342271266637299600918190110121995586206159987946578722110561791066631000314215731370391197526620424604041498152243377945298729173699699674703858356887693900931396131971394417874061913899521413347409484391479223279909856276409514044546370016554760545309641953237511760576312192210053063091543875130224249736898544728762988112985423351269124710058974561064349583138382254807949859651413367592852531077840826881265613358359227471023456105574997167630134133522565055602575920859981952321415363625855997751404248775604555406709226163869105579506798043036385880634087328117285821787899746674690859261736120227266922285672978940606950863437471503398864782536800863276877413266937640068055199382365922215846905045130729195624193594600614538834096269423054339189958696268979802259967111988666523204826626469507352790467591284271230492813614538118413097250296402039740377338376624356054375686498703946093352651247327469433936084798632259143960176706916121871465287138844581709027758476585088666366396073375377553839880133627802498375190699088087976732481552242360819267822372087116422916806439260465023030990429094575976510644679978006495945240529502158815882453452400739978912812509102198279328985210363773380023113985771443756715199929437370529478815909661131732532731891306512313862630809391475178342797544691536826535237435479884775142913559841575408434334723143576059138667017515091972177315916930973392820578246485245996286798411409919907857804529679605409946247827240666676482326882479926267480221082314299050163604843387843673512925640926336258064229267491168800517041513229685630919318621105297043627842293882365962978639163127128355109307184785903279256082042714093749457471696360710588686903525208662761593243128113858306382295837001717523839476643411640409876977792805865698893409554738708161587981574052412388358722187457567871119463893092952703159627271912119218814558306962992856200189030768717979811956140103104905976335921754164419318381775292793163007684105614934587073972118284800485071777950914277843741729327160514657014726207669872471807817185549126966761194492505213361861810579282390402519500921294432832424846007369717987251838875824047120827382274370272642857560720062992767167700132044942167140292234713076080999818859825583257267016214791783613016744099827888099464829260956910523899392641675609706711129351564110872357048472468371850413685353672705157200834456263380080859417041154915065128384638680031890841349820042840065459558975728987716509922048009411384524477802296731707029323039500904659067642096712179560061027911667888952875592819202965297796811097383021922513242110794728566223949503920664316343023793987040898286718357904994546093544032732093212309408323084319298973470914825380890644316515163008130095735195224168434436390594622530088130563214981718333317750589347143645681246223937089867991686653098302820838834794741488153347282320827706522865349334403150890438192399451199700745872737388194043787102520949539602149399329199809793582610267367347217903753931889073492456726136883287872276155236371391592958491523074887621936476173383696454030567407167817962388280800807074515169940728460092934011415395599486127846434049681863191962875031456086773186839811886587920410205997589961089969179412347078914211668343829947161187265016271848057982950976231160319526654609514548253545963307518827109751961441779900867767921314900750709437579080670767048208828716068224373739562826585847765647659378728271984574242086261236698401827278219589606357349897137575139072498442828025052430203114858644039796779047212536896110179414636953367934327510493040831607816358494905877223001490759394631822009840167438295850482962241405674088820953269391490658627190936179596599386483568031088055790140785684465953711489878476447189610827053771112180336602133948206347322640628054480796648953087393623954566242443618106027177014525095502913253487142565257829083127154330636664636515539321249159963370504319902083819167591740541589044588241372014607684548000709635623130663521853159471690079600243293530184075173691885695138384621793190535294210909839964902999566215725326461169680188458768923603991395543377782878823053262828338211520725503204058444981692873067608629655630850531614940954972903199634306332387093000830500232758263246464433885425206618295442715236649060989462507714062577753242874508313375926295775990438865045285860728104897194422236719320374012185020680913399013223319221366768565046228606120134926563777267215080943886744794984557076903088788606224211472144987682704083887026108547844163757728230279520364922513531978224354370350892442090085497131692032053580330788952320663704744373959922971811748690673314662132547991941818593018410416680839022694445920151039080507328066005296934311230717046351081604496620724120235352226237565409267532201172849120958009435270127670392236848358843377110800813747903228383647626548747452043541211454612590091106617622361171601403644646865296915959357671572625674825504654712508966985908138730873331440342785591229290280226158677859731523667600262804542517064223194106898717134230273924255150145198857869690234530221303071724624250433894948757796311335024079280104848149973492954487648052766849905955785614928202953631183601252639849770686309268940312537236471143880979718324644194303992319844171424375820028908775730710938537324615649929333032634567297180585177759180710973262406930611845419680196358723170056787246742066574915609089232644878336185206558592612804991965025381955416555183057387772727231991743653899748025906658766499004366566654673507733069023038881767142052614993983776535756420649389465754462136653027511745253533671246423960473317893382078901331428978768718247041341446506301603736696417614707862417723164685152107158051108881839419922548629144170243467920954004639527275996744186158822844717921559304356283165092262235536135678677649722083258217139431460760734123963425092959961201189195910469854419464187588422833112011600829265132241192790183382038000728930187450080125479154221302519917494728114514499365104893836716098644579151877571459191411767347454012338798727715131591024512661410291274722153757961274094033674369807104964157472475906981133001950394432157953117176752929521326066900086285846113558214221796836681619001603703627232550523550285561709389609815117464766544298163144189985675861652885786660579430534257672768093386370884450092866867971773949881355829922293529691940514009072413444759933758001525269511881012741946182087066498386422515372097325635846785940130806096984742896964535797109455714974567491859779836167375076457005446649498039794471327663222475842433066849822152262670347155642506890417677674142865761405628540782843639156961469643688391081472878050614397035110866382124433305927289241749026970770105208080815486558247718519917834501525223526258676529980681660701282972214793577721975572419923569603288532398603105600974247699946649924623645908042273162122682522999538864628372953297257943272547654209653618381302902804723711434583035718013972616782406857678193761806778193664034341794224311407257381757316277756131045394400143800606381530633994268979662098953832092676389919555090257429201495212899397183531545388685644009388285240477898972816772420919630884267556395655703608409225179061959968607271019542754447403126638797091233780570758803847911886461587995555310021157525611408983119348453861910059235224419717974584402214307499214523937198038108190169021342723368184443239085227957950518467491036107113482833643221058558401589909974948844652418644926012359769459430878474826926662943473645060488342846990089493647671273558248412065231505219616519370155588961485475827170231238791465622421786802023499333890996250092027384068730394734765221243213861597262514046456061352808336291009931971048640227785031899260197033543141775802853611719357701506471134566611705253096811277831056299865764344197559528041514624885463530264791861535960401713448299381885080699608597332148528779370610079930233212710907722282886625052770810978058665816971686634191501957277412701427469562214235861692719805686375174435305311336235309966594286424195622051050349812670696967359571211447352446645195051549483956210462932221495804965799712277484077818583135644835462999349819403621236506476994225894677187156169333574273827903022732167519845055302767044754415783803416725861139777645757868553501029875411296935719400731011386552443307174840425882135328394181591382257596212743569778324779830509355272717990770093835344046523863010352333258021043369945649687201306585204448402335784795522075240003059050958984706940721893335968057097175248502110364261649123036785994359231286185003142671923818305959637238117964684432442465549169898430788505398865654300559342924108717149734900000758016099953305089953122567587104342637930236075163852973964509040416249496697839621185551866440255164611237148681502843975328429772238787487883904793698924849393195143705812284288260750693293907169357606632032383064515816649203556179679830843952689150073495219570287558733259326347746896945240498827130509343448947848411322398551156505579436427666015814650271889871262688610098036875030550448587496417080099343755342365889768349409524440379609913849806383131021367479591993915335840775541541329645852093443619038907234842917866362808347151758537908569782019948183296056757136973453946852394956982819371375253391622711082330276032625538547682332922766789009583505431736686270311450314988765057710306038107056689099540624422798597772094035196468920552136997318172185029822191544928150541224168385637029037458568386965089857747234816344998767634650583734874484641609347770995650128726591265762847728414622440397609795078611032980327319207944542749058871620849839885491922518537956516655136035075478017723647424694909890144817964336932630384743230290541675817857207247652477075079927814241625486078301066499638400552930204109233648163094965557726276415483021919844316567655885070791425786209694018136403904983855160078821571411097116198006237283764368700720966584861166751699151847991125310619830829211781722376196877242575221415293265067029222240988858656002608650480565731175227522178683555312601704802237795811693911200186747150834599056372906682231428736120258731837315410611668673651195323066398995764636858471291034149003965128256306930804863462279103416940938941279217874409763517054695474185930506226057602468565809946332558507580810274006248230355443157011136087004705696623188342021723582803478872012738753682147785916287175910868092044248178832100509811086141479028693027136922032097900137680890306598482362668222512547088580620119904633567034681571381781111800901484148686598718258360756810210626427248204669042342232410683161932740183971412089139949050388027037054504752930359382601615718452970748164780160698312635129509533445734792897026556809952363465741158950688698156773773598240037947700247146478133147841803284765633166106295860662264144034877024549978598566065912863696015532547789916232566637468267570279245440845296888270582734122141382645732971042260400935510240305703773051409094302262374681237102684877804982619854730816424688816868059296618203149970634113085527067510004719239372210749676318376554148434078255460730499712584801844390230839927634569576943709390678719026947004496549203979697133940951578665481982637992850167242011271500200695698573329048452762189146010896784780814895258159408514092466758069740378245404889341165781513628720663280491926893507054988208960762101367683865344640297603560935533256270615558323987851701572857299148735466637241137940174133914456896174562249730687567403991672208538637928844425712761686535297149818856739520553635220497384675587226623335081661786007248746779027354702537829247505700938439716307093214463550315244666395869246053350223395537973984141688433729947023386602032001817409693062685974193969105990306389422495115463903132900835853606628659981353086274276086442646444881802828285167804854988271978911996615992211203970086485567435319832557585293964210840834626360243742653733960484135025552538112162682987386174864911204100246275949598910672365476917014500666495561922410441240145207637529165052992828323899306414818196504476521688049321311143707622647609951714110833818064863374659537910712312770245198363772332684728383531163273813641127531169552983022492186952854436543035664418277158691986439645589524652226840543968318082789883368246431771196474985329616272021140705911915182770488968258946656813851873985582374126320783588920841413803084651679321486157672375079525471552902397617284056091954312455088557998468408270275891519106629734499530330730455936939385788931648425541787522344301662320353548769685887583034997561451303480863265918734904573378723171139902606717157196444040125256248827932140402496691467899770410662469472893735098582579454379245511006032026345905263099761700640869636376592957370623984997734255032513656764302578862323012012518616776156986750233329236587567936280533981302397768107952186184905724495576075362431331838608216091850574335971289089629424040786616667605713257644320699517214938719607003084484158921638862433515438494999142413089287678811447414883078325192687191130673875287545107978470022490864106353097180824848988978874956639236106830476876435865647326096743446768438164015546250739253989742514480711374859554938922655684068095388244010648460593665268949966331630975367416957845527133068028341630456560110679001496971175810245876626496012993835961894708147479206972185830959571138345086261222881290664273155326803554340275392168635205971340203193590848583787733822954124211856845405880939859557384251821412733052332388382558446339561832198360551982324001490358179820163869505562103597776634082999657544064142680408251296983000616197237426455130797119796629158391501348908001833985450088336873332586642603314092239125132813441959542943176325359294302023839778282172141695180754902034110510115845499335686444715689603179547232810740042945650750727286529457474661887664793690854082826953433053665505282157340636001754574304697179300385045972330328685017203122896396221089953625172108095264796726454483145768282473189371607803527312442654345758651079396084540472783677680372190887474952039926095407039842350043664297833690430400885040863122192867726786727987466981212945375129979518786566193644561310170033802545062312528899977828639861579136062042636354330413673107894700409441244384646130716892939820220849306288015313510391293375772970289203197343141125666868843717930147427850505850496004360820832886935598102531162136431354157015586834985374572638156719413589150747027108293650871711823928995341578784209801059753246857809515163510320813620216490946221201394239240946963176579155076239815839378166377839581928676761819806385413601095378960610491374919286513402109050276367803169192336639005858593565206846707834402931125383500652949796239592339591872034262299268620702478438475117298704616838837775409450314997279636679681232462207918681571827182174391751292174437118356791744845106788709752388069926673373919517043693977413039007672920797217210280975773202171906498106337405378347978451903548557026263059808924696600366335477553405504684125644931273365427681360203429864365646270655042780713315367440799792037852231794051193145084136999001720581859365364207828734188160738559703924881400247558127625183781909850203313907531311690533617555734585009226996942733334840797925241067566787592917162145603716018246117658894730137974320387884189542971238579995772840297377906053365564622046947063358347585013318152394351709492903145026025101920966632969545110653607872390137794432693714490699272263663885957981931512709392258908363502653635628704391432383078587590231646280880488540135058893171311113978276542741283939443471370199193410925013155512232608196701192880319364534564089120437542311405921080389104778439722357944345881901949575342011018805518740376333583553007855685449302383295136637623600399570104133342766645728839035079719342164434524460367108133973244578261696391712991135881987881154675624604404207457389820417962695358755501415596326179668576993519382193909467368095919119774405941873940392413992483816655178612277420946002749065035482684133833676468273510756917128105689053843858017532897963436779325709011279644950171978913009829826241312377232006949715821680633954860920400813206442584144015694613774266310335046203755953124210740051849194612752926065210815267766512657674907098129622059594167043831806257317019983368367892248647462380537214643935023124814983893728348410752176868786171632115030204544158897717738994477856291022973195380401332278296144532616712407608786956775337512066888833822142211974826876330974235928572486553175241844575013295270377378823742004777472022913641971197711235088416030081460479661508183236844114754030799870260606476284155522800661573465941386889090966670294552184205724077089976430130249585765302211200664019703052689780574323805147684932156579391424505521584208808535926811156279268176442243042398110266387727666441012657490958574364264235077381099038666886692660543042631239533007071477834412363819084491684402992063297286252979497544305900326238920529449503410093189899092208766170764881463012503871811163956516413368325658154478442276875568381380884305212206993649445981314957571222867608366014211304451685246560910202324802027907271808336192244389349073127762894124963018420166182626863799946741113076361122315227855620576084887564536858320238044359315648253408096127830066348340056368300668342883236633221479446849634404827810021949703283593594343124952395215231944066438865040267009605856168188954373853625140792169802536810917842047074848707252290215256084851008483505042236406475454140961125659214821154501339195803781907128181997437130359577804436287651190494489586225628983158672351245397394060140377004088637208586645044817506312766625249364723506878120456045324699152893162729542142389886340114809955509390631177055698908822585188170656683367384968498252788683413952071037314186865526969091396214079559303619693753872902333947025458314620886608665605889088437222746699022725247180087504413663018674112984086019614562186994919824127307719606460662723891827267698473627073514188454286928484071223975713891127970969424774186917556357625766726956828496375004482982607212394808630429386915971203767179439186284832870679490882935883562876013736459818270141203857032003032180558314812535502300122208580813453221238215087343561507744551584939137307996634491838402146022834945279397839121454859063503060401551354081438539504949877810891901739999433439994200112248793318801187572290922763063458008599828217467248247517600009686632724877565175291196547197383728513802463338614565274813348085218752303094200656131619971027876067355089994393873892453045225279402619814913368713698465199305968974112667268716604876607393332741025981006982042756281082879756668626080501364735951269036228998340881814311997723482142792555049351413566600370402081928335532430034609800304293450825446910051625957006868291148088029189637575964990241717183576264098581561798662739991417643203675501968929921354288006847340300437145957517585509810471983248059638458952644179517063012684778827088763903784951885561550315382197349517105712952155428038145582774995371081306491491268239631131994333627952037709715492933656096487071947314563281449197211533259105761084371823640624786227285771717836847925075987748300199666104416501049550812218093103403800841547716308590544568787466934337552949563399252137288196952727543996187528456286934021682531015765473833657881214444468856985979599301895286110610192316239332620348976637716487357900540657066608652171205888229075249220273923544046772653438085542856228410909020228249303942729802123220733413383400054382387684015075850346895798008343580507780364764991342561824189738243025528683674839741348248199580797746570547796814086952520567514386774971530147376128199454118912578112221409563968792253281008048333005166958828851362087497326103677896235458692617136825988482989269640316126550741144141739811529835300947337005641883731460577203637440538720044320703948868296669740471463823404919307084032024456600763488828066021763037231034197564487452041166725988670366149091863970608438142622208665670636687376162912044354069699490088266470979974163583269917973763341757753017247828305526948890202251116587878766505713084168567617825417506290622235354701337726585702140678040107566224585777426186022809269326318077502528589118972628566048162951892177700419001918289104879258011909688192432553825984795029849531051719313470399752155235409210351292638487772051506716868068152823640601463934246032766887137975774937565973198939584053241025152792490777089017787143328276474637366894825097518767588991159918927765732203580188724849680937253075069342413029352958978280370391616238791444569170441949155052640639956193425318291459867226348275994003262946248352421604224539653658113589608941074872909261200754845020515874567331174916938868225269556785643757038477035256167828358560189320825601063919051590369914118875925884429461391941944637474030572735112567988941871994958871362465378303173798224413186396659038642586712518514252157682801053423977102749560279933820838034291349650120003989083073237504785016013623828389964034488284839472746940540346883332859797482511357329848536242329075245637375724269013121774658605502975016306232740893450439044068972729665076165415812428757045986607161107992036416132055593638629399863429403577508051124616794710446999756475824572680851180083394398004452749792041742560501250023018564197472951640452333322186326229501257638866317780579782390620405273935322581279459633015151586411359647933808671287841959850884743719606657483522829947741432458477771195433113540538353901039837906108129197599830727216304431998293971315461514754147179737029866360785895424881145909880248136906209676347141704748846514178337799156454403965862952432177907798442055902314902421700490806928350992454464506302207877198968222358968970878750051563402131293407415285116051551455302459484948738937891406008835446495598456185058275031482686236443367184993400789602588530223875780648897201670449182729937211155544158798114056648613258851251593781732213815664949961418482731963422804211545276081421485410101788221284232908371830534689288182783116949510013327116268741279542115029493302446843249962926959766958595682131737370131048967136100036867280971338006803645458330649332394821276062596077726794873467245966043112896400483721119681903157848653952396169412278994427482449999739114508574917697265248769401027606093347450454355902176009511859597777863871584192860273259085906769633541211279992743892788600198525855207599503378091757471298246106711975765866655836957863926681572572566422258925473927731139422201327077799267886372180732801430110251933719988991316635822525444944808692460069457505308246940925057891955453936171600619137563309414366450977555095392157708860661542173584086591582393545216001520031310013228993921279791497468787329990678040336002173666128088777026916129032695472306556220088273626013432492757436946011194630018180395960756984277689217654029027870586430099470209755594674871260141018775982868336285355865835215076103269110196908691192652436018038149102001809799025956848221389949575198318547722056657122341633330694981011110640286564825022759680643853832181197212953365356317476510899412525561332290977322151358155257421298989777016189364466046488914438020935826952212699524296991935102176814476181902643500441006625994188402623458413950692252593876895420428404290661956817950005204826398941320109122282103386435210511134456062567000542552253183903524048312704266842333554032785573520606813101499364221992642794325278405286919975372086448044970870391639542819430873453872443242284723872898664012097502518687686286363858208701453075888681974499278157432381525259454329197321942140834387355787343730113331729218880644234596590315897845715504177692543698502781931699700344881825515970072744807172472734052418279304979455711256652690872148393632963549895380426321970827392513700622725692863919075331235023112761694466810724509228347461460607695943426956640591243376039361223346255523524381387999463408742370542295414997467788507339624536036028951978647810751046926183859214420452637816430840237547157787528518580459523497331041008824327901119617608723441879778404153000395614799125567736780543747586160026795890271249666589871538370390952907925797964525043376577852368880088859369419148865370563909615745945151543730902645563027595817941238299452062921501025629278151586495142261858679517443293857052244866371668714094701510740057088506201747883881477327287461508087038125974375782607951073594829149149919695483521692316960026916653502421537130908651209058217978380089830238003786289926711724520991815723766806284563026539229801122761962104337519676824241006900678227101383344004814062999051395173961196307261228395663238062534452554358367275973345787449309208493212856908864716733319097853911991530368680087810708443655543217330047382095581011559117682289758371383757192143508366006931711141417699985810777202057938690139103632028177977688127992213112185557294922708833013840022021711938452703618718775694539677961233932748227566521574986971356239274486070017208499855717284033953772826186071637060079864246762781514166281190033084104455401704407623557018830620991624880236179687237581076888430471753659454004367807249066769079045917700082247525792007891221825819066727168524448271194814612835735860667943422342768781346705567280878826407263864291330350284849285955219099736702778741412132897042256698940262412186798718459580450604410693523347220454981717671234144823838467384539678739546333228133415305420118909567977302265725955179474056796694438054225366457390583702297150541967274032173310754948800423856399571829475692281775832959346254591306923722534854107234872207415007747746917894526790450483211464948578324014841176267114457425406668184044753461610019912663637006374245814383664278568215641660515027990927502852134809819237790110008026165047626034332836854956587398925117977757538281919312822826469492839863728698485987381159640433018462736717077797242642198759361157515074238559010000217994832510935861069007400247782375730731728876567052181787688044967339706284522410788339457835273395695517088719826227599956378096025108350072661254517965526896749216674509244670301902571856962364247542645153667932734986368560008882056630311452595664761018630680010712381413224123109598544496877097804593317345913754806746575108267893206254547464706442831944414203930266659247735548339039714914904212506379848017889782744189091384712560282467655312269015247375431835306970017125110469593882138137608225644687138202947890274523782003823749488868989502284840892426893601556254012626294393334724493407236810717844226799431872634629041789939039878284226470063831394087676366171356890327680402799313430508923767378450631770553411560582864141359918875094556981407747212507681614157247358604486912379840727264586701361347989794389299005364326894668410512091095469796283132542934463183673748968233914181440674773536480927497408236025123958268715245825154162640263604299985073117926994986718511080044701918935165307031821371145917261168736596594947222695272246356610630538600228433447605785892733110659597877353652090715480173611501321040681838504008422947502928466779857645152218457152611573776740628172684022991394640735869190189616087490857167970707882747467176855028662430576445681282345778431847707011832843860541361379787872215823181479067721401857772083136424272932409261147174220546338426406389141761929507018177458159844040259411572835957846942599818776467894732633428551999076791487602821927672619927105800670431037966242818262245182249965996952313223738486758120076059495596504056923212176525395148284243276161184483234872852878609229082414809735816163212243054050584020389412642888316469228379461092353513220203357252646762359366071111048291365192180687467314412880329339540154870763322298629580416243045154374582525815573784892275148247436937695035955838117539566619176525858098537314183721099671368279620348546283149112113944215543415484266773550813981841943598873433986231091185822465638356724836165431218015991121349002227845859511191110805571437951760406427313037016634630687436084061275189720067874747790453501986337578292504416140978322933114037041503833260080029711657358129329324621984674539820145748082350170828672204231666830972139116340880703723892158501756093762234802689603831954831776059166566954517322684495907522285301555932820902080399812530879957701129776707983284589836931229570956734301293090944992761894233676949575955688393351293453505960132268211698633029001323222128304462199856508277595760483086324788074624172304565281785453375355489832415608330738460154699933337436391356750724127680145523406920407810316380320715352412484686556491440070631856359145629202558181708980730475962962827256123864457613653367476837755483872970988954806216274308731797622838595514776318464965513272486977723936167783928750411580541257547805454757317108034952270576568625995393574428136400846684854619001388858462203031783531432015534290842341732002811930845164776524906973750494200362583579970287445049211102295126424753558368046728006364888341288672225745783928389790320065717692050100210498588540084294095942372145635684408034702995805575535823677755827287472133069701163206783402526330743393465073286154823724649532646538742652219645689072314850970750229528498236891946509695045018149327502689122244720416655946784766189872501950572019104726631842871210674541761906690448115657074233059723031539249858552537002431775490222243576247177635355126177441360949244594207741667556042283888840344830215051075773695809336557219546293400985238530568702583941259119088091732846338376826475203283680246765848992685407461932333178056657268800282191498488692932109619361786857556566481697030994611304914253898634860673719710550051328279018942168041738093157238315744644615331400552296507122321812383757285018040342369424409706762140037118868502961570395994948620097641589085571295512111179538084722820918474604816016771403199322391141594575303779411832125353782526067635414486776697397311472713191001587206355587720123561778991613060072493897267754962301354114206270315296220336108263922704959507627959634561139112578500860610772130414738824138912981971360330538945101804539383928900980918718963610994591169426164063048345303945199809200584157632648283657403073235699706997179234710565670664571015213678427840657928597268354049283335514429231400402054943558871219449023696997410820373648522278266945871081454556973931332635234108225493280087469684577239738063913421964224505737987105384749936556021829863963164976521978904804921497019388744873163283642625253464914808709336829863606062027141911899179388715700814601779080478633231112079856927191203222328091067542176097301726516598488478779883597914526155193388566094574959719915031794031724516880850710491480450799795559000389467714021694009890991843829759335382188717307842186697714632960342226148965993894153721039754627110321913177095549225954015506250099489832982695432667674223055287080197469076581823201743211009889584336825532794737864220234210794589984532807303626754360972457892615088276284974698745992215591406023746553326985956444241063442668807645001133364433892254300190515799709624352497231920708481830531732947002333495853576598321846826745429408210426068138843274378022436469387446486333982051526286054695780545626978569629585745426899193902031282714038203504245444889797253623711753794862698529029676814208667048803410168004776893651377421510438475574015644229696659905450985441776417146524053904284845669102478794239761073219308161641277617818779058696485772630413071209915604305484490616856619713022363757298316117146107995547730679243028532132124781419438962967865243315667169050731655539253013530593791041252713891410846106704552374371661937266751322099786238304426834823801394952723375704933542116775423430405141761576397095456910428331161851767372943012921954308353329897855609134951380079785069893479669662555670877047572236922047547072535277144915959111626110920763458000035395888869385600839995738632477860464625253547129320639266283299155836587712029632225906477951740368617276004810767359731975857088330239863715413119363597428136405776386404494957622317891756130462186853197446337298423612544169375666335246802058433244387534211771147057763621819347392024729973048428536820107038978252869743719230210167483913998831546780910908315670445462507531990744206540793332601394418584561666888935781625077516950703377667033355929561618925842655263078648170038719766450381540338515029755465689797485894527506476923836466748054813735392744949300769950859999403550059885345072414403280033611509643963319576841567276719297186165499209286835576789058651273467428256779071776292748993740408710442028437571022832470555157091923594876327086925839324042480606167799120490047550270804185011333483006317567878398336534208120144630009850913568322875196713384041840342374964245478506970320329706184483328954731437463624604756905441563282358771125362867552377940792636874263098557782690703695203779011825452701586066727332720184007557388277945914198720659047144694397348571711218609537662282784217248992208310953721192617741061367704919128146964749474554354344427558886750987037450782693675884688001290534087372589892668729442217349976296387960643688462243164641278860133435279859299862473760328780941721707490002796726203813978992649574942765638571537619046481542960115356508542109126868266285857448582718105495443831284146467775097886536647389960964328279323890560890764718072439086355411746837462698145526655890636950762848444868573867428823128884825421656218493680908522794537752061244988849827445111697521633523860053856795902378757038703903645873081308405001401217774174500163454613898291246914776374577673104963599716324428392136616466207413018607643804863804841507337155080723566812632406150314885683115444303792891732521249638945436681417258936808502392839156913770910544474202034928172817833436263734654445980389491012357739297616627161096488671677981170017033062547493534243939811124114596858448658314812641300375447938280353556911149676491950309728760048069284017408720485523050297991766685785546105291134395226709895683551430748369552270682981062964883207417730201173961405556681913930614811717247294245273689300157268257020656857411233217988389282116096100620537046088535065045643886500454588336105069091006199546801829443896302247086367584306440950922184760281777987912535672035179678955701960887949794143136780437658183780391721771991675400306710036360906318659395681317296611308398172150721104122344458446340700348439494351934782270627567896090757740919754051099448963452111932555237730020160937178264455804238489477338041019070722802845810751235562690930037123725529881463670908315991091035407522082705517793924411363332738528251179256743868966536574006503625123690925337540870219390864012203710455407567222696538155166655258818476130976522168614322741646382682949200988958054962586340132998897926181057329524302546145223838746976381883806263135486543579565104886342705828439657043000269683898098781529252742056335947257197390359726693235830195411802119021385510889740638562132496429696796151421873855540188808334294424796456344914372133518698881190930568803253875720145720762684784418263703198224693513202023662431703550006691831082181597217561517251769963305429047180452947791660651185845833786753777961105523498386297993114353969235408582487590704747158622549353969296965315911401417409069824675638553743372761654239585986608548641551724357021763996503153765266894710505692458231446955368127668064757144632565213088204147116472197052066383989866607411888346673589445445444780009673910174027178614722583754065821946364459059797305605452533663341468116814927094817608055828979899534205303310736069809885958024638041623837723480912471778906585837283168514479051235872795191346669675244891203550177218917288123595161919584418222913174996962312239277241511198855086914976588316462673541167694103710305018660836417452542854411636149429218273579769042059614405680760253053028415291401985749775836512881553468845803366836139392891560578440358390906547254975464089608930812880355037153485694143247074529644150071934233491349991169131101678334049095167058168597376175940583470968311840377748075473197695658196605240268637397139506379193277271141342295574798843414041968854042250893608912924317594677417925665033434035060893228150824520056564469785631593338029525719919259456854214075003077778771494830770722328233724726213047283547156061031763242576290511773493814136922749714135187650830131512976001328263289536119085990949661973264816385154699170120227032534564281202044656787726795712139416499903181992462102115626973638900192290744851560002718419394665176534079897031806733834201316614212918931622304765994787721265593885207284901561050514590274393567664815091985292296108393598436820693186678016377692409891310633532203173010349319725366562607494384259519690976369146107293446420393609790075671678867004532774745448285724251588694051722139665827321120992345302488518349882682929394346103353280771999802155724217149969033553053857099993629324545330855590943962643283434030499823545785057568754237930261025081440859917089702428433008812729569421546504602132114583615714491340965767566009790103836068365754898745585386545057949540761993301475884590012470356034538472235337307005117588595266562992682770982632776305033688871411841698407193794027442950562294345084716415216910041669250664032841243523602600886116768124605946565983750310923312655731195685330899778499383615318718338346213113426227493332180162389158334522846203194253400636558950391596292668878898939855484831677199888784603428910534506696404019783705894239717115719913919652971574863049199686048707327788774853031777958467916946211375232499089537099923338451221263250021433033365098754588875231040739255491189840109433819021216573541071831150890468021356850216727334577111552364128027690916964317882878519012103045864630811841990458680091494001007278714551527157255674781923805620310040967650767986829732898128621510267448909148858143889318005553629997061590516774385813562902191525819935001444950094873241927571589614478941174388065907753187496574754537210316934087876013922208814976332213014460163845672973597703133781684629704828192733862800686354485464549372668362772066312024800142008818078785424833389432946567755208456097265006071316180035429159267672410377675358544652403592625333644483126703438143497583259685475294892325432625609056050660944118614933967890374345723565634320899031152367864187833643421872549106674560184459582769488596654661973108038154172700613388805423650509383332480432114139320357332611371320497346776241805928533657893875660868876720202959220218835962505514062985532757821195030429152252430782649669454396416716353380068952889942416484795000560871304558449319128651015065184141838130271555208934801609575240544919971316758621523120800825362482601823991170735603496989252015296117302423000185079860267465707406289548808966134937035465183768788703389945008569113990045271315304750416539866840142414959689003511796203856748824609738225023581335732782879697808738674792646349121583040005099216856919829870851205213609022098269929284664597694692864139852246961792270819541743890615836503715602614929446466590717429498490023324629084644542268783131410763076926563714173224962421924095115968436393247558807756754114634933686454561074350808966657301049916849289055402496422036025774718513570579486555605493003689974449682885575225084577116117638908837322142363135773911129874685236909103604377093201018752167847339675525579094399051304956483641413378095899622214915503691589600653582628446905315352359391195351624165412022623547522049904852425960082828303634320829015478688599054374713275021085347231524713427294119361647328721760154171093124805238676654123927616811458164902853711829359986898390358915378559764149862878637725298665819143979918813030090404637321973767793616416090444963266557434082590888214804701093356418954898535507634545224814294300632152449079665193209913207171108877839709591305753466680978960492209831504196806929380322707760493686475488353901953424373128061012469729619962135332914753103075866064276710778398009628065566137631366350309838560973556828547085726532465049599839208767573084356923770887494783072398602845968891200185775837449147498503420604755281666501518135239786719746623869675673358880022739955188132631864635064789602561286920149076998023147321606596657812226055442270043162633104835242459531548842993207850212225691755752122151935421929832482797242071307365995036428228391580595402555963985663678690561972711273191567888018104536014946460814863262858850388715993557669245464812701526028848194514573479871546524370974689656969102187369300736147372233722777405548944465738813673357509861784417797027020059539769440446431722971560574653869345850605625038788621530906430802243139817785685030777346230444491010623193100348982391572654278903796044118898576707301260454002863906175210595276075449471500392067186980328259609766120794866361994355952618218767416159817109333961271785195265966370602980347747986714798841434969315740478109654139191119596068858368229339678009588497223064050236095682251152989503385009424995098578621816985784337669634656752741403548805913489280321371309532817170826260903650995838888330472765009573376937159760681404964792475759923007634211982467734785609026717740472314339631824221723245796952059504943011678146549899422237137223568380760224393240701716117547240060619169533507526147016997040993520999410485376148121409385806517578712365971156647023099130813952481148225883915057486182075127114140527084915933605015914994806364769991516980790814061950174171747366096640996545875888103855923318478163475909681198468458184876294726068290711199076028656202935360644825214782296678514862497886378747334246658121156493082667282855076314198017306258042803117835076609140266841510970413716541355122707352482335926593675924060680855172687093619135722236944583134770443379097451565903497945494338683390973613490859393289702758827130812485024343450556423433030344155378617273441362610432093719101245255377349059237965212923763228384628287892179795321252916039950081128144649650271833078878097191987852055687439248284879679737494676349168545710864286019789048497143384103234153031427890014958222363289217344063311025715519879998756499153754748984279946187263013003967378724928705099639047531376443256207005149906646913154918995346070679239727284750425265687597567480909017660336968185324163228051919212460582812538052364947924965182669142924618932935920744885459611842916470739557049877599019620509370875879467325621287168887372292517489553276802365226739232505240552934216209401018037174258290136632545937730707531676961388474487659958926901324127026888414414843720383210816572850378586669306909687571913034220210191558656470448105847587668514358206172410991176532451267788196733135801808972421830510232597875459717518923864017879450256327338520026513393517880205021631958247940556342583189357452553064174959654135308801990111256287386636129770821230659343120362434275044183230145074483005012015110464304517074173628162172375086087553872117553537905293355064945730727578785689320503584996543354993311752405479069537528102854463997650098982916902867444787424554162983039424650619386910321858894564443563205274421441930674216868359344795634929786429971147361142416002644818042733860647172807997535182762677226550648046925940018618153628847174871976461846173030132828803332313359853628127449859133449633585343078910850022605373653882581569687325527123412662166495829298579857252891211707404533086938198425082209772356798165946966230959133862889400628291237644994732022751575997339433779210560230480288751788525702586597546478316902186871215626497088861588033732285104252580130183050034682721192140353479004840035289716780823876848938919349654253021144288524675093154250466525086041785805378484130994185630210879390594807088352234865590941787999350510748718869823459067004482314965687240827896505130397279400974758342737870785779713434060360058330488590029693173717426636667184696333161966289472675683952562798476368183835614051666066258332020427480165051434494736624858678888992755227480751740806318479852431610722843170837617180866291340454454250384375506271119962728337484608459944958175376052185920253865718519308361248174356475346257027486467262401025454773276835995977038027928562016365385151673259371864930608304615040640139456469033818532841532667714989855213579038220190387696968125979144401387218897110883401069122979684838339633478512238618049621810723049494335574792054607279433841910413845809192438664424314236504204069793156321812922844408902578085227336369596534135034356419550155183210946539798431692207912965095122950037072303280171023061276470660040951030012688695804388711117316826306798400708285609622781244275128144594948697412730237007330954312385129300386847858234887405447390651590924028799715421753407667354878668794548855463128756251769768740694644181135353485888331737860285242257898988142845911813817796244908027942619098233370899201548189119210608961993085037616345793955370473457399695340501857418774553838715635756899906729909194625085275359136264510807277482080939022944127277548738736620410408619002596357755675436603689849877570631045854093438604969707258974367966275947646823278922351267704376561944607407391562830589894799657994268439435928178884166511361451316943220399240200503152634062003516458371158804101304126003080730932803736664953297609757603080024997708762045498888704297968531323549910057409753133206293603299170986605662657173970406512986927029509753318391265908968882931674079115323072587331981742122562351359884762471563584239360838426159244458538786296823007742864090158267826447298367416747323058411432951543961080945400747891740711569481329833461892771438191518218070996473966122458564095677833813548794642171313955215902448342560506481635832306198386467458679164673786850593995269158187498513170602231655397240006908470636962406239330993905374992583619266868947181658152107746317916694690139030860433946391003923176867283183646819750108350692725814600503656378276034109254340219446725022592864502906427056318590570531407673100717375300784164121923346426742903081229245812192113400595857228664470261443378843966581453779173289683770745407825399106811582262769083794889860327519222348945435417478090943779652113515719894227894774415866637631290314672727258160586218311075891206688015066273195342208659847846207940384479329251527511516410587086712684668656113112659857503454039891382859560086548574644903245108894790526154203281034252730936835186979183129071727203983647619254807733815769772061199721611822048312067278879144898278618262369106990007367285900810101888434567288460835977891497473953500840058453795521914912072447920547986508292881769299441896209745476135385916646361865083024669507162974404849698458145683020054243629693134808660115759832539818266518245535392037804502154627639075552947432514276605675646386018687314193318271976998357096462319013830349032001400116135340436085609830991089749231448893106846509604828198267553125747260113055949322585301511371671342664292411070774248602446200950108817994695109724483233125786192739831161651157313889615897818607031967847772406206647224802690731521892476704950059913269145095322475669410544349440908396401067029720900494575917280780660254521949624659838615407581649267285160789369508617032075603996593747186948236906484067085306585412948117645557098668415523977882488645073970457920519111658218711544184871671401721963037149456230007977175115709847449367598874434024859636371696167054470409765587058222670035673702196947933899857996830393412074090284785435554331351688820261673386357544806933339750821018741682042111885391524859996274292187394810913913843238374928507724536493298545857036609507481624317654529036364102057269468570251605809793151876559227360673555757168887869447674790589150426348250304682628795923296843774373536554348809880834098716703770083767063083902777762081216569149679132018199739308723689356129002733486186959067142907156630190936724604326765437930934760431805113813825422519731064637617062565002957038660853267361588776147375940123834064474141902036206860015532640097703043331465920995700635828193248667543592482878629000768768383036625633030474787062432611812675904098500100388912609495049035115891561598527326308782671487601232120756815896814371577111810241379825331037144966976782143306122145235457668860216858365549221153982870727268823450591093057882640778928178508713683310393791054101947135932154777451867489178838596584970871777565649027233222316091197523701971724139984156990268518022051386979882442272733975309657316812306593730138883979696118622903238504847239870672213028699764263841922977865494020452956407281351713841414234124028316533709731525746506238937169756453962035352054351462662379504674138280514031584169006315610719094820284234606985917621880386966033040302910030854838590193154123104443064562372499075001965474350138920777403120101926684731212249266549348879401870271713514372222361970364164489159658746025854850407510622146296408981495254840356162496112379571253850043684605857037905043495985786343772996679617172453096071011166130019466049676663405812790056507751275000076749040876007822590021729901608092787143846069006767202220024953879946488299158728484165293483208998544037996672877214558141154181926758973583056195493774787432883211093067690790768602308592292634413821272935057524716688389897187807375410648378472272836344678999732869212346959168761197339151059026783984092550616400549060548216087956752899482972634901966545542582143063487002415821615973743995084008815368477322651680099610289781767865771452091558741522757016595368928840205160074164663727392142108384763589276735881370462638120122083534807006075964309574888235918217198635551272309813387628342333120077588019940657388891166167207182881879293797860771341160888868291742299179281664439576388643801615768149281577476583796829683707331179597032215787973864771470586366617173161988260459514841131791773168076045589584243939003860948335972499067790409121443520803064835745396901211481824592425859639440029344660281180291872034672535604642651659316021676011954892294621160246627250980120892003047132986632348486427976386724944881214440017277705573250942687722229958321506714065604029953450866109016683671497370274538528148642246004041081373953842753680070055530433473111243415455772251322739995321130503533441022356301166157517298832718733371124658401918943738853920297587664186059977060169969133858640497057206561300605845975547569264272192117395153833128157539416176324733049546745612537244903482719737418867539594297297835282296361942631179242248232813162313721470044182750937107459286902908427004930103650053522026805250847843800094409009884420784363784599954681980055753888772823380655182929816728254806223329911480547316018968663747257421862470444061129531036837245896325982580926134500837090687317557201722371821783770905846626166797553520157981982068016274518547353743467190361758004061373135855901667794383805225987616115031811131777795303136499124126629301544957682489363921961452593720671067679389456954911302733490139639749959739550757384714639179567273761093853857506611918822103502612957626632531551007791261554488956764320531707426238211231817429650294879446396531114473942802202480827399845960462697719003820554712365856428714816978691886758797903953096089394979691075486835390158065758143477782050218670648173286355482039959594774514361920251266871739578369787466813791562587478441485048901592019924478493864875177179646109924411996519264501973805519886574181741688109369764276339343375117772914569523997159962700950503746458155479236483525049503966156710423243290327205244514607635809481502235433700474003036572514291975287512578502098280517428615782053619983399966957055106774466620646133221019010300733438188952602253716231529054265289833187700781923171294411873585127652684921063048677530254172941670696788165983103675747112072904879332469980830329650715508913926095128364727064766561305561525904443653998094896630634729185805360502034527945436333246018387656848358727175423317749450207095947146614778613369619203864615170321584514213681452643680957750680107146470456424716486221946310633882125085533012967065943896979356634340801027332348644944600275105863173826439409367804784120388889828390267531728927636382087935684074853469250316896853291282251151503225064152894346016542905920125701675754956760654167637374219732468176164038916132803341842513401046311543127110931340888358538771380739312808772172497164792625037500315942188579549235495080751896191922332162727664552980701124152129424151044977694190669619448111709155854718172536996553326157741389243204302057136816397314061001297493447486527851338197106629197084574814312050855489969252398719418081403258872262488773567098490542627050428745635251514923078496562115834249545551826345766568895138278816360717131171449724021804732098368390822093251436250207854776662421083216589930354434371788385483642657222112566047415769298172717851203888576732984333029687596568768259594972392504981942227600467603434290611738547238401662842372692722678731455020463442422849927005019890798842100228626038819845965797730623272406316320378702703686019230121008864612060572438972834230857850103395025973042384868102413914699853182432827545537474909163084045336050822783070488468501397110936724145559173518464843170799198766774507866323932005051230444511328369751086379396823887813709635391179318969201766066479038076772426134931746837262523749587672989151146031366556591534619683417295726776884533140001230771918995239817498346007726524918214934592608459840872429811873361550620550992263751188175875372781402931365863649486575526283896850924769126910590577641505166834990908737432963524470247936077794972434789080599168474630592543604841266519573583787251104031202340733096337630451562727759602336946561169162942854720522355676619251221231099733582899656444317309287151440487613314309396334423813594546556519208560679064565636445580403577973110456405499564965913442287422298125291295041570445445400351022306398356645159686566497078573211918393056450782258870850172262017920548614739168675477821775825273419195963225382633018032977745243215279776310067130229885574605256851583292251105379995204848269029348038542323949826784162066011826984724821187911071893350142593869661408009611831897910324812708010918956437009786565560855340942479487202842022192925526239998783109326560162133545762813720332430464709674955398826876792468619567003934374825319455264881129489412074258954026754172994934523004602812151043597289437881488308253965678311207771829358734014301979140710755214423309030190140234001190726812606129221688976838192250674797146144397625499899612604079325643418662424577705370172748507100404445450341147048576587104551064842211527669684415142524890569422092857047911391740958095777682734414014765442321355202791139601940458489053524353393715178863566299305222970324224179892498092897480014247561594764182984697251254469677466151634773719371452070278107879700381505221986700342715262398095220089535159420806455800093194123276836357187737812349943248932638818321696806119357804779937641200735346743480633464781470529042455082036773479227549045387746971159419603799466846103057809033427311722869625276779930864300540264478338132578360595365830239095114854114985400574513405294203898079937889219598125355359320398928989295716807347411440614707272686825317220065962426590908581855213485787511771853119297163874936824844122271557902555395848273001721028839806477804867405685139396550496173041554659639886710082574099299273250929329626032881946547113411195527729247446373072326319690895817764411028547689706311480696751799350811072994137185266967783590710942308236940958558904193473627827637699219086517564303324734781076283095769182263518788361774576696971911258018529051021172413638934880855255564292665153071490236183410906082221769262676922060898498863906266076336556985248912478395872224702330953773073945284855040080727785552640516331228901981869288960851832884187712382433126307858143473705798765457178212479775489793862169766000172289141826399382269324067835580889013955225031976427202724910461649998274313829949569054653437475877879021079891892923445665457966496291738980656495421706741139031920035214305919505284488722021332040326950301456487052511608696718883285997229857304749135573497530779605059515420973213660242920134585368666007942385798922103305723952154951282354416692335720706009251709585864330236555703314042304654126064448073144970647259880353977193414536732540325642653395123325435785045205864963286769882206179736081799318059834007035633120600307689836621352318058241034748622213356149517827027857118008061008855080667165385700347834342932542032806996357328708321912475253610418755730828851735599709734166969790120195090612486034046888931325309109715964305967946748394685499582469265952281877256144912564040204201054351136284207352427850576141074928726704450005941584869721106541730474148983252972409289435188888646074165221977344006291306446827086594465938185581056565932697145314797036627676264189402019762687543172849512312987910351739380026262379691348548893229988154319299245825513814505011189518191769224302808353784540195348671906195865831218175220407443909018403290205918531364953058248952094648026201227799504630255804780337283346845032088727580140659644983892009620423705841262240356829671844176404099091384349758223401013800904628161094542875988113938898536116684249841400187409105847615429725969030595922554721162713581548105298531540086141081745582942162728848911467613742485410329530024321350137564302776571729912877942677425201964117255378446455326485996539091286666967954778495295640231450462052812979010469693866627977844367373234545635873732590203887650225059868748170560568108604678032403684893482849960258377955544289421224353451965686122920601242985726773186317985580204510432104637303182275312553481474503865595365854228958179493375102970442764646970975225552282098151409293737365839845810097870580227952258640067066504035443260417494103232603994282000174298359064001515313276233626743586920971425285579944390586455097014255185440275890986347574976417300642682640102894702117485351158150981615215373859677760547256376629300203780309505846549708316364699328284180380222964448593845563195234728512804578747885641895774588564756664949769648256131028448882194905957658146726474466374165111937301913833680972735410987721268399694365156026817254887079710853104244867472807602393715904338710457311484414473039582976453993049147845198016563227478525213721550232903529790837954856865571856619153463194910407138323045208083944220320103251700197324642135185253253287795729771273143456204406751294313383594552914448098176729233587084270652070261427731222105818333934991332528416032151705400718077070953475717929108268696754230034310355986153301638059432277598984543936291622167426752848518190817233010030735575885918312030421921161012073945729763153993072913353094939298101502724811199004632435334265629608104629826007239490614063869986660465722813339027492034590150194814124630721739147932987140971218719461676938928655042664017233402149495121950318448452821588369861478644738158787166361289169663005084892258561501890372879370602333150309751912610839426237800316056344289737678091291935516506131405202100494602530024353093511212521563864273107184150285646262825366178012166043474247603684168314045716708271826572557942245819161479708224631384811929901604895497206735179346200685086125278032697976153729641759287224295214632410691349280724087916938788869467802845697912765797585105771014242610886821374717351049458283451594124926849991727925360248483167850825133984755292498322209140718402334706363778503003944460791059748868433698495401004950435591903543194129573210800554983689946079811693521122678592713013154228118465805393368253840561202124429379870311897663015968149822626777793379203567626271328821065038659433588605303745586872582772722331793912891054432402544903067246009444762502215510848821977992078320451650705009035246716104756438007329246785462605823979284561855946459535618739908179055845810442823885305441695737423481218281608946820854705379248680317475779068334438405446136720778705989930462713212126638662827393534020598030900687371091560567154286006465004349260027071706967512885709323430210911599958758858403013194950327526414477891784640964221375002312411934830035168856254759433327425013296115404138055229314913928495299474807832900940664543689039862004713544478489306336464272855823989437047861409986887602114053299228349141347153163965982880639514081379158024611504737153946092168444453213361051682374270083510846426584373400066745193625749136305297613493108362925766151183726552243712049827127417368985154070012044650015369566917097465416023894546042446180029533370998318635714235951916298610786752765536371965533870182426798363973195000300336091197099378406471910628107633710991949915515805041009822799575773159917651279980915788628267719429077106501464026384058758304829825819609098811879734388389735549042338718021235394032154212845352288200209460234949831549158857722846496358395178389989202144424253052582452682862313806854686498183603317206628402509448924004930005031111769098754666781400399177977004633136504282539806880094123733600335597830054783529885892340758277503277265071437932377173802453588678059029662059300349913935728725792813140433015133364259116271747213033537189718696928527510306692658932334222731953300895581891496590883722381993007543895422610468822774094042791398826247786319175171869590059908449041910304114309666544596914987364517356488475265165883050425888496543057810932328670512160020044639748564317835133272700113880380942594983712790990870407442733095573738173337461317225750463236589022184230505874916059478159934090738112076898406236649346511462575818002240756023811846466611921780039303185505811137348823605426249079516036252338413781049136471816631240750520277087882073891511072038341446733171455315535836587338843524053720637907411316405982328103476616315412028970569983999991119195875613018602571855126773218473690986552093537954963041004313492705708725752388954469359167276825177418795241537026738552023780935049241785299407425776222080437537075261517509582927991584548466341757503088131196535341041019881593041429126167856884115784183884859366914566447490183139021225215207909776239993562818846026783705136575211745767975721456203729182646130964825909664337211950196231246113483867956303078377883339280133780213716431736342801734889263168944617234228821406642622787691980103778529972513551367640296694366178762735271599558210065843578543664428183487611209140247007384816093260915271470345087874311205900351722585025470073929754999956295916179017485742762494690959489202917208484806693389336381861820165792993822065830060530350328190958104888983727330450884036786829455696351753362414121055517554385363862345578109162400078495070782745189829903546107861473786688620402604489210994183381206707114637171737439800141044230324331456644753209595909615610321559055204278158816173379140523081165389784498765902735098776735673134823945895950796268119318434742566534341600124695180242594546224097540661754973083292905150488271019589202484568299971239399627714007269143986420121891542428245993437424470508367708101482118570663917788403570047653367110096788698751942409404285054628653994863740748152434638926617141547628417372420291254677201147877021928745520128506403038572467393819145426777797700162964073553726429892750997736813187157972437763783664665111010681168581730932439010268228071611388915972083994451573632899863342900298991341853583932932034914143320561591533536412725831733568821675167613667958903064775197600176825743058082538870141402274094957763574956182731551655495587766990569398875050259357140835468871994336034066722631088637662196682160010596536535105064681009989290108344281789090588854035088768336861589364780824911886229603075778738985819868457127898098290105662566402927145829434146335895816624673731903125203322764028842460506288374808926316683794911564943314588742930690410611079637998419830347689143015513999488931837963290728813998672590271330615726968937521104327210243223459144236069204205790530713289939607910835818765860944649605934361334230208978653752117307050632740302298270220611491794903275071101020295851357043215396215000909448316461921803944883602921321947377219178101968005015961019091548123194514811052862562377347186335439492226519579833694115130425621154873996575561541216028756378881999746496963135645224117634365150890246409936497897479067115581941157862289174181139447259168058057407354299783247698728123257558452635551414092132935515901343817573826816080260152771213137562896700088161258594597578339045960963928548901872064252656513960032108852855972968368230607026987415950738430251790772013323498129348088846251527894118824393600631334849862004774781588297662208132578914705007793283803955943426675961121023295521555558950224326052449353934950443251943475589084538745714704154328775378285302404132134046086734083509461498813865521769733979263952739639096693218049361922720697645627748356423656649317328397180942482623523408091299105078257634627263536438421209286439228328096416433117952986709904527658656047297662861744431804155928241439064839569218932738076147081602294919242329683365058938046988889858502621926829725190322057986809247657739020623023737297769469176420247136580604791753872290935668162731716650573786061128541936370268789466248245638848775644895473238217157605450394826655500860792480279787013146101839987180551213317937599251868921254031250798819645433317515193905453921531075215876404043213548264987733494194867065877406724841253763463570655798077970877265287648696757799453442702017828131846468354940666833820071434450971437057998205526101364144559314463519363725658604597403925305931659126908388075941736361595749735113811271642279330690044442828923429097489780540622246309280733582113912703906273461022965864623765401325252740925896851535679876456281479370588162448831652566113024700294376897680497182074410987766744263354326469878621356399483283857987256807794871259343152595185898404784122973261791753616953918503919102072452609862130395595533152589367545948920039799087438804030164689967868411853709627374256274587405201070208831487317606755874626832216521029385100329826939100593512682629941774694155282532951296077922107727539492946021634753437449467770545604681522169448384364387866131140769380451554674499850453915472832732399274386007048216147347554017822871597733714484509209638084473019858173593755976195452648037529749634688649884144127905163399440310835297294831886274639006513864972299313140560618066453555855879242746396205797807841736711858396036446638547187102533376389124712049920243485115679047969517340203198563631430121401771039283742269878764596096751477735504141001174065833154607204390255657268414072933943297553921334810126475855720266936839677199430129344346629843435315173847145472506732694296002908945888791728431910188813215156574394236158865312951100511301895184560128684697850259315645376845765545801853528048379754869245983926758803784158823145763025925016430482249867239496746950358754126040769228246243137309681744026052506492444567359272335434962860787370413225304433253178713460833709099080979101182470097212074926990248337513144146801693505724574804268728148575226483852453549953512427666069234943119055858288519946860219399717693598214976459347734389098790121960978423201286018630912692849376649255417059973779631095740428229609545727134437687096982665434560338911960765860105780248689658011264756541215870731702229254052704588950791421936426991859439049898832379378370449481082131963158284400159389375062016921783457088178442367226001136063447869001799891212800807392958080992947988537522499711649735875814499098836011625684076353806888894117928509803820683057120190473078807447984515055186489377341792423100794759872471120857112845541652745799195587409408753008340251185848612020779793808296499097882399081232322444348833418805474327658276914496974715359083434704775262928434500588669498053435495391479931459711913758426566504709042910609642027534167842005529554265208938312596434287735997860976760620832604636196994946266889803536364701594058977300259250893532300027797433754843470666161079380546920443549657444563640331494695461588801394537230198601478181608263008506861536776697997704142006306239789125086477919360592840267316065027588851696284272689089959178474661049508293892060821081744970416050885695016528738735163609418161077165981128104285745168132559085775026870623676121199829318720526469182127278530964912404277522048075404479095371194130114568245629720275906147764754922486104698426908377375316253492057443375498592008968214234751970041917957026690148341636548288598654423028984383765664019086366105176256789891565122309112988078301447573441827979564499471029439254154381835343804527088971563587197138984769634712489565222675322221948735256757587591037753435230562283647249948567323292231285260780004988288557440746407189280083347039803336954500961175566529289539673806389952934634528059089280283564665648477706386077019076919437444814448949768471979022605021045152958854715919469352000562424421473927452731594593101939810251293214827132196650303365868867641677095356702273948512810295434417577210289347254480586346562895968541907760476267977789878214359846940205356254377776229879659343286580823700898854419265565441572863730311657185985795226498510260284923291982574522149911181747953338336792527180592378152513229257843913992635629515044342414521344102465704434084564623236335922511959600160251354003191412280793636464924235214636836805134082224702236610232993601532583770498755998509030251663823091725157781220599543086982364543249206847395154270100171408027813250829248796376011433100406911876528223304847772462435613451317628334599551171628988439511750471096973485316161248536935133163936347864034427647661422623593179155378416269496489543196428256727683070318760863372659566923226981630124757977683362105238484291597762539310289784132475455661234681084886644143421977826960564551059995708303949419067615148040359031449839359240880002442123573789603648489083184336450005863870112362551095867934588885301324803219651941907775904539191451975520280156993255757169239971094943929339842801729886168880285844194589127082011563670440881299969113428627955266267788930335599320932828387448187267936881500504156352458109772593490177212121884059764113928156148520605422790093655936612221074829542621341150666048482990731352972663834131068787347156506294741545188126932791332313202240765082383973040077404067762603649889231216701229134824195015433064827262007169314261223954903969757127375721608292387506975440959437680696864545168162891972768211322785422778111427634121184480110219527089765914684237466094890680118677160431171692011581226485574664113547480007719870065691129645039619944222184565731820451678445274972176557082498296377255465205613908773060231122649638398285366517874324528788653946773207385450732183498496853340584336632208630518241311867557886278664739361967714992741912103540528813794380864958405778903033900325677655313021646245778087941878698107894776090862645112336713681558100006872208219623363982886469605017442912871973495968127929170934667861122782550545314314833513606763438147475642156318461033443510577322857112561138667215112552733622101392408827168743153343047649217227749232107206366323712868297142581324894494157746570164984402248399777677593275933264677322794434646432018251127818658815014114246902599193926407525740691250924625053677967326227705818443745266994820740919928300843811157520233792488992651118300984401521164827119508204659527708240391232487347286738816346668037990381900546284953931420750837984226648522127372276079007649483825833641947401464521247643215731024572758574974961330682618822334058416162681783896826653295254954518169974847849771187922218931693103514083586230461405786351812667007010615308333821088370948151070407726267604218554828341934907988803882736682323861573111875148248055295357900988370114620062125695477300982011904698555920752329130644390920878302948821443663488184168735727118375606169122553173885209117454001434065514370825408420268177816272167499406709696188284782020166201299468805664750871277644403560076667134136741739351453388560130177563915344221778479368335093223694656803956381244979918191409269493539951020455158393439292730010848442465197741743086844514116242274724473143483342756250130638610889516672174839424219394166356935920658239142699123345568439255187342664595387469009850450614762939099159592026165341984372041821615387042431364922292657419260539043970707852683769684190121055766713811570625095608045482411266890982580167587212718128657675418095265436500615283536273358858494847467597340052998592969854173663328303958223208067392197829392342038899451935784576998818446784380693749164116440858981680940498120151720653045405323936358405974984212498774380899772757227171315510567213570840319227167328855281372226055489342555429549606006853422020252252023619922331633791295888328864928156084878309071192641831947507518760284149783952798305958908424788772629957165862414555121904861081593180612380956335299301601158543662544704786836717490716247882718395034499165507274202005911406857610055748155183042831125298123104302500972435635703011158984988599598300278346461508422496860595098603114585835384736461756809613748553320832489198100693128021401266914365782251081344227195451827327712376627189644571518513427950509003218822699920733949635701594721429029724125951004957529494583382729821568932152976084779348523696637686924214155697872908280138918176779707710643881739310696939692033927309410166400795272714196597999850170084412312246892784215644905667471662418282508108341691439740022357714060803723329233329765233278412520037791333821211886970051544881473666122534018289821525971322840464956897249436743593625492712168260705204454863644029612215886518228500654258079586212425840754216582050933129567925154729265111428945790064635564953679418053128395376636166267419891984339877185725813990255789154615141779910841059006384873035714069574434491384884984070772346736719597925142933301559762483470601140927674577467438179563483728264108613875332219371007550292008294910723653240725144812333067760666970344247951098683562769575939088052407122783745643925128652341963993599861998616656941525951565241938060479672221064313311479053039563455323933294536944652973331800037057069449183924726842866159389508272900540141779851638421937279521382036317880532391723390109125941898668014874644489495883645156699394270624279262239727361543602615462192136069643367318165208327292625205860476064381191367514673381147058256637320104828358971055278600146724845747235487196862301434494654205266123012072532926961456133892975085219789707017501398957924283374344882293310643552759261656619465936150445892709032823553604698636332448337932808191557791583904111004393303934055931882733764500998483172860078659177926355098316810018677103453265687910864754888693380965111264776420274217395894311239645143881764411929093203581664330849510912303837537889889319370905102728597493312338894113062061055779495279126672498626638140544810732892328081024969006169054808887638034530534448092857321709271866566549961048904629243103839350464992707155210337698247570052000055841080918670145380003370142465250658879260419388382468717761146675197909708172720122371600965422522653473620842630777380285854535448565949589056316297516146446356885525226553198022020944963652159306537256717949224903685526421854923267307681192323492416706411862797968850292236212735785690183151514191460695777204734027988753988367291024125356487271037761020400174765001063484476857188122088889525484787530741186766567335759650577466765700050152533175121786419638330729352195240126971795711345126629558663843539593239959167154516073657228057133940475879423097684702426223307398168679146957017239813176428901696393401208161655218021488677962408662441251520423980505426084592701488132443623253766473810775017802248487697025009616978275802995115417332744333641717929031943926644940051312688293540865065657159379981234986360612311002852750392599145300957502834022601507932160047142675843474846415974355972452259959953748860707149566622767769384698110445326037653441056860963748076641757040525156184372040036068782109403631022910849342944984199470422743959341543241194538867917997212845567908904267511786414295965077825674508566596339294825230211027409247824853984828085071218394550475565534873329037832381617008576253929443091015228430063930046537103903231690522135854954989806249952827724309144122636015098766532472570233990445816137715856841194599552917294179477353355602037267347644016254792721444637504112926988925470111271355140461998260991249268137428584661008992781666014238470227050346091684077879196168329743678379407933154224550529186842653028365435425502093810844554541444339426890620500877502726499236910223802782908216441100395576148201864499547109074094470180053147495216258006963462844370499670325943577316669309520941307111787523937951458867801883902795130817291808816407311862886556576159314088602381861280393257026228263027434213222434323470669271768601757640824934687484685741111426905004361786316627752497891644530512738427838651958425574154260423616139196942010205559481686347407481789836429403266316030576230958498723275967084590385041547870845696093379296852776537046944441663104799241493512366090137871489746180773110438403985966735188864624350630597386496865004557533214893919040138056731916448497136656636339333785670701438900588798307479683160634289561033050912015194398202232335320971499613270954988807144582107664846809266691531154691801699418876404357136642364656328063362806622578941518114007228056225990968544520899063079444996337981094228912530737563684680990503464472688076629183032890445135422177393691229737802262550716873392786328241630286835048196123139003291840137539597560628683199788975926254894380917170461314732924921626350081402836109135907896316878802555775645941062443937288343872820166565435259415102360772872479457082838408975852838671275906859469571335743925625867605285727823752197543071780243093113948695979187268411233395684064110707637146435555499007886699683304239376473481153813476989046333411080749147558244354363031525099019585648129792201969465459523929265353389021295762640098932486927914526759668234211265940105387486243037606456823682658549348459171388755460835943788478522987867310454164759056957778732801652907513986791052559418086782866796456811895997759498424588704125377095743798559605189681652555263821844634610836707668454119092304417601787672211607529030677287516891702250297650645642948489987880700661320863641428697633222825796169385490191543763070945426279608369341029060805783710823036201226031942117105423236309470468492750246044686607451077979960085909729985666527751258972586796386276268981904760715226676848394403964293609323738253454533807012006544447954710097042658971620546673506443650971019807152725142345446841182637982841834197343363353383007166905683977005687025171188836374203342221405787906160566900057834220712546901908818913921084967402383847906917391536519500101475211663136327837661764027025690376377156551950768821177366707420035915612169416419388927551122945295293301229797442001589525999695682828334689555988139750278594573824311396297050628962322779424847594547004557545335691138907426296937635125122800816476986741505266884715306321070203426181595419152684133113569245516538681539946341767429873459604907954820165316825150372098778011157433658452555554062905192313923741986061276970483075889064230701600047147115144513397077113053786024209867860060268998989613258858345717166174093695668924051891976680262550967462862196515512293059914855690802803237255803484940833430003613695792064657248032985814798378274582246698049829133535381194660200161443481056142959998494842393153830316801357526349052533843511141954040751516553030934987241629685977954874409392967273858367972800201849926298433384201949463649538936033370962915745542230071494015412935834373702335006996491470328999833054950959497061878897207526541977000409855712714470867701161844733534547693268292670428892898094883286749956987206814229441644009072412401925490900327048957104884573298650807298914219330609039517286620918768887277512341616900691698814834480055887010461438811211744083689351772988907453489049979237704112417549080364139189682286389592612749364593865439816603902119760195348169148742659683090878478810067677007829665233227958648672279484114999293039793483003830766637833648554991483040331837926581144187154493074008485438196033512715735351339194806697561214068519301600857611008243656680905751601936566678583683222524821871902192807094892229948247235478862465459506832523452465616906527528140449020777837419430434220132479774426576625665122489250130667466442816008013391408872094120753253807287141356086077063592122788884356741968156538705136305625527381009264939043940516332669469730421013964188417225046395178480765686312141175807591215981372401228145972885633075409083630598159347019791725420665541846630700690480466767445989822846312769702575863125468907607161986525723313531139081422027579982757252854496944678336598070487893689271464070909189951483640766862855263375202419831072213625626336894337734791177236455402899453121592010363411670239906583419754397248661135635071168232536852291594323417825611945317452978862541845231211359842825359278655361428436108255611306729675644881007811799850257398775797065929371219172348994815825971248465398640180326902412475669299386559157351469755609213340776004850059735287703408126426770777725303207270227902515733146353535416076837336475360942777970413711402665050642405898719370347569131259426982139540492013281797603459286051620816762054192316903659271929492505051211539211437655359328535703865106672875443431341167022342645784986388588884869079050531979636773764424370462246721547070491053927767412676856528293878682179134131304827640770169232369262247317863529457232912657470135934711264225690613692817260148662334277113442023894516274114801494698084627655493337269440319600666179134840909335423561929062743336757848304141143974861215946358267220074105938779880792108240816866130652777894543066683113702902585750742080327389576180700986032646693698368914469019368245722144001392475233114925622640210365570366941080464416705669190310891803423999823255847743291533471554865967077992694530711701753302850444317522548477497898661678053202028172314668191231130160632666728106687444089657521643845075493185607374938763696406476238568676804411755759053664502931462856371611246748550565969655706006111876757631721276780054575283564176686998738725541256068927869042094977052147344626377779911919905006720830827907826312644795367867749761898379289716597102317997715560857575971483615319544648162290967914328294695029527221105387624141065522507651932557558062430762472147498040523880737582148691129689569819610004683024756333709506442498713717962417179445274683596133913567085091445769738067001141496506938829419780213101035484388671057277672338480943605087911720596769058413125272732836399882628906417147322513911498756263415133954281304564182606247154332161871358504983984495808665727677719462522081329107256456425392510933760777848710409696033057442134531945924539033782473217760318859223977738995480039819177763107918202088415530858525058161970949498407512518398680133543654502652387390837112350758632331113808161595888606388198791698083026260383524425627200877192554437868651345630814536393222223101683473342720933121389652874456526656791346425784178664318601114569389215465404932540838923908195667693169436026971312900197943485000490299583029833008487435608389664689396556491821921772182646430527926407831066493907540521754375638516570084793496831883163076007824598841170781610968757760337627359752072343711782138469471743196112977124032426392306976054923809021151733761692277083517914644580193747463761884765491794315830927819819430373584763990875004849514762917577396478709101601873447963751298007411988871027357607296484219316873999787124147526031476886378560608173119448241078563299436980353498494994601390956683496456341706766392702391193731524947861242300062279285395843748224707862923080177254038642636522683820810615443570198417463216684400340053079612932351411914288837985453014067420799854594535653715977239631491361733357519600543832277483527324871891219303124533792026482692712211264733583776919963208374458814058264733123845192222018192256300814300968379404027660472827381118751309211057973950759806764182697309311555499906276834934194547930117227642397890430945164299334151780511893995131156489038399849034901739561692927409566487980580675669578725146858425215137616377767162937152329351574387383150267362846437419746077967545290540876069671053249650042402854099719163950718399403566881339305679095551675194983592929962769012064924832524568738714897851685746907804215615967332813100194769528345893415874450131409326400612031876604828431313017736766936580302443715021182428109585109214026343451726055672963558658377413364225176785612075559337205124349303275715959319916988699534910297193492860948738359104638545046906227984599699901260545413440866648897210628889010009312962729761613387603916298511976925513360207555880919642097360723143742008039029573069782799478243743069493061969045516708402489348611982695611365447100657578937702279994088618386324237377888100241240630022541620405196999330946912967514052890484652395774961220113574842451846103679849282663587455138563917806259905142732535175415490408417487896838866077011607115036506816889954516674643332621930286211103442792053485462416836697520471327067075935039100936910510292912716560875646558456264210196776628321048784873779729891772592335503464903824755079366270839119198359053145697902234146381742285301386386220023277328353663178713140183083772442018697169195962847061108599661796502842845254156587087220654100954088415566189732966429723455398805631522105670487352283719747704268489624924663403989509291248916420385774548764832351181745122987167878117397459358716407635547562370914975978108995960109282396162159546703663105363926614724387905980068334876439007020832015475057601276182593801625211856168148981374941596784095863155691558747880642278002401354209422837954350283478507243455774027897177246490140582004279386695917240286611080576421336867430869422851424370833212289717805009820632205345774359180498172828264124863086947577370188125175073190953136095998969033122555705487748920823162370389663255945162750165798190329788010719715075609820559854030324353374814646175702249591229661982574629307445645758145780431431738033233743301485258371348190450047598904659707919217460632395983160997524655711759996823047615266740935529304083186699881144386822650653484682806412708950631378735117324829191811586726885980748716627120051496387195557090206481495265291943244070516180385610820563693875153275470448711678645986565378937407078944504988558843532558449505008271906650365986099293660836021395274451224755301315273815730012381717539925869038132145475535059879278654082345521162982844841889915824474903105060039769405111175231113680815483860020086105478490274626416242262710576013451689148376227226296966356832840324034117307738888877153188107447976819683329870140555464844785080045130490115529542754207007036929271382044333605168948163205980861348065865883115380791260269475930709681237014961572227650211731392960312135127110794467024055257193294110558846228658214679400399026394084149417121537817936439101636601133690212116139247834942450677405762039797418716367029974155712950717180235165089161587789168200780250457517834401758106413064194328848313598079808386942209282380004775898537195901627369158587468979737338407285325663959556909046569206022867525897077831619171697505814139267437223599496881291391775875009093218309438713331116826570623510425839998681150872945107302047408770566188685054823166396571639374702977725521685431916881286414622022585594513624329670986087710227031624316271106502568621060420277847740984504851523724149115388337863354709855672232703102518365459735788475691598103399579983533214215681412184998823603992211482949282729992269684166594875182069055111041699953370690953277438817522356998959172510953847689277266730547899691505269884443755135413177183930407611133932067002336680689197116402328109105201623625232276668872889244250677548414646500002873295698454462800421740360920940287340530262143249216002371300009573567529325426885424952273482781486493767459803346539403986069005526840879316999735912022912918897594283406726011471671202152987568500111673913725946235880405734618392463904173050165001865462704281225119984598652609792312482208160540128064681467835497508756016645588901402731648398714814288832210020672287059241825607664766971999070592917496731704453744119279502211930062240442961697170884479129755432713255537208669494652395794096635746816045709869608271760543568091987585120435464369128587968980319094479212578510945047943783162077766837474721961860134253165914605328199027686078472919354915485160398271068320716263731516161005450783506122563796625248248836237384721734209648758150054720589329566494559537771776429237292747073818733751989157333531833629742188208765398715466007978185320519424780212034009349901065088130000335427800092318419415003642412763684910801684373202604077779806463680856054291448926695203691153048479007857945470891407618720418740121702923120491666686890098740276196811809318322665442402882324087188059425550209121650272878576987046202448127187210897558212009188930834493843899127582122416333298209380714090049349307627343947678076232501430755243503431853501643370250737556876952910521256626447800978334750370164156415277230107576124252564946273419424195466826342363994957353296516052631891055061869860504426333165478244296309340995257660448836261693422676445608530294642048604233108774130371105477085808533791438225228042699579539176311356864594323407174831315707452393143709124522243307752405542595117095546775222982249785541384813530193789328886482143250125863533512900367899547942559145171198146363539997824636409884066367850682359198243597304055680895289619996129588938207727373288867237722453600684430456468353524029605509484490893860486628351417609835617676095797851949109542805760025905680185154492704574547114149081435053479177518803573141556011908002073531056328825384016923337278981726786968170440597405240643712271474142134123369998392585665029024118735868471524542686104715230068645409234552869542044401573157399714623097918522423077648014627871113804437455268021327649738236692477357681575146927918387693706864500447076971609957249972245034749314284868258253045462051770391600236920755696959433071578835056174982676395464624892946809594518396899337625029932094142860198156083467196400350510610899592073833049493365810577472665146830361256336635384764420336198051836012908468005544057738146467559772399323419576111031781365965877430037789937138712838598744090646914458638452834393122657999475635586315908025948048309076316958497867838695349772769390092556035476744774274759797959954321050769449573352490236764690612369968540623004414130927059402071598655360095388518916717930625555101760752960674409800418739806629097998381840701255275908484021846448837841968141792204334124307068438331434609079952572726956439592219899035570050532657058822008033904238917192981310397379876071898582591072456158234417553502540961846318332211991604254980059595108013843875468440197628956319193117987317217258079541630805909294953326489306528315909467568504481545814119515204140342545111224937923212718078454669884557790197382167671465097473364764916126370456267000928670282408473092570118498625192375525709505739421419993712443640382015437461131031367983594633927629811071191139564552076533427012764457956313178869252529351282783190180115695211770110669249607861732004554823690397288902299241979890979768884260143183287191881218531689356985432542656275671540248355987005266095964236545151816381673107317136152388505520000839900568175324877029359759720390032981967231107491836632328216401203995082411347377321819794746905393977582742328232617746334767239979048844819685357333977718490215423383958928365516294118324363349154860694763647364247433379638907531608023638140487072009712212659021145556668404370413835383581733653539245220799549769600678856028195442421659898301069152766314727179914846767614691657115351663571880707497491851506624013942583721532228613734812590787237096276816119628869579772998023273899078206269630759489838613850713964192161631621400104097870582530123354952189572476112142931642709761151859145473147283121234038422207709489680773553203885722806495040210061097372892182869590611005878473923361006610342970556291540253143023738890859280813836527926273121938452516364882540473481837993022461855889726022836922979900662797082655982461521189489469533868107160805689290807059778902721130677102678140597312515223228870443763025912507253013504876348843742080806407110946487678833911063267445959895238987479445150620763938687770451663070136261700515005310169017207547989337036410894761681903492702732230398233820926931516758309398609390401078718305357517295545032420901681949630053013782928872063864637886260452922360978454014910117662269040563655586450536500528635711667301010822742345337408351014751711571439298667333993804724332376240589653554231582123795807940063782520171701537954357113752233078189276033291355219025701109114166205687457052268856781590580016680051130154215633867465590995600401232261527234833970336506663548449871643453756648318064123057188063826209330917863226889610041418994328128985800101268416108121989856190496624047694297471297090252675915080693257517654778146127972669206667806309124946996397292540046537913839066177081480969463431519886527852865173333204277400324014947909549428224775096476640986777572312191208402046189365532380872145099781717654762318500502718376995012788386606225205522392484337590242209919098311418819674525940389313242830472539462381275585087059466424188058893418407131625000235737611931786462590747629104229097150388747372746895623563751100744862059669084966558155536418418389882539682737014482952850024601315532276811534251407602840048473909947617475550517387860384081370306320301316261944188370968448005203953603690646117617829793084994727091882466241791027641628072065595147866806174228234698904054776513395130999937738672375316493919547122420206989170361557021688894216225731337764179498306237721637911276729548041730650880383111474539359838136542830794859474845492669867174185179242697976334489034023033628944549060944405237969249210579897213583447541948147065939677848443700078012184983837646443754949808512544781630385898076886582687801357193420094299208506548841157307012054717336327497631028038327764848646695319497108106920722345508981311335736211282039205474203500791013490212671088671068151510059897842189063784289421660263019814088107839453022990755995944292271464961144893597507771165759075667631508862184580646708894599743064574687889260913392681248538027549374338100220837451145784166124176684707662493844092578012209563901605295961221461686106540298026499317237963150175494240831658032510926372452554063732583893230615965173354363150754280640500186271863435220738642476914559169380459190801287415148190243121121362649273775484170716977164801333890687321182017360702959905829996232029652107664342599258708091889227768084139369116391308618581155397072480133440303061704135500035567431260227051388924426022572802448793891284580124843595328518804984760736831899342479622349053194058313534591344980597835337446869606238507236339954551053363598608283268672200753234186978194578436691290790170399206254678816694771613117421377851641856074557701095667206444681951540821426589654751037126434058725548495966000184676998150300430093998048172311704915920574491928585037520052466259749489356747708645679468668531568733330513015015904248614640866022803061185746154055640413156103883060385052077317698536905411956878227683454333729727453242952146432733002762003270242643894807763144944111962200927087349306822749702499668999037918357417667604122699123807648272548981150501220431700543833755250301643706028853306407742814845063147804477508278066045712485961568301092646320134089244788811890580839655547678627767510360721841164509951862377708452813152101102290565999750184054611669999436377367624418664816816282678245264238503132148086387497942973197999756931037920949827889693443084037177044439975516341414066278099352653917454779798100492064110194539707945595569284220934207915232021001059559444284264662504532048277824707327026800727985007023329554696750741419122934728158832291904690073118752395343178827943036184212678364250667517532733896036502127669871106621930542319153072109719847082364153581074914846138128484550358279208434640006244125771154292165326067691278856016868012005719643368203641892432345521052466975594081511868358041916742443998614769305374593352235099524631235750496898622216130447993967709631944831950030660885388233367118653428607686735310539952952231621165388052780050944779999221706103340836421587153422332024248543015231438186456786624262061272111300909131916091490655404287129204264366543544995023406108087373322134219629832140228214564451076325846252988047882651401178808268296878823041872186800884091626756936669961597996154243422568009793607156523696038623051718630678417139390401362740864745374551496371825783021959165707288624232370373076068161895683306819965213847773671460935210650670851403210633332149621486361769416758604142948345765311939466510243017097387585277863441060321905266950317120678020117837056401749257876528993866842012143077259608340950152003485715601551115197280978607378345815784177450934405940615372724984805617458993250214228615334195316136948487458019269553671249068148845894276858173811071008774444730670583649560282401756274128516985537247010222770034371129683048806129366806898112640098999135291249262308244295289976588238429584264357401640052849880793377024798446630942611451894174089309234240337359059282945087112117212315582322884238729559363925197572228561056148266313628748554721179359684294935936473351333078508622403375138280006792951898408902009883462813861300395448059885453247782793768027959832217980116967231264395566462860951790772668567825456384944375285156120872810628662204180974996361202467772494009057589047653343315971403973979593306568895732906226693140684442877015365909617955577386477331255286398291252132454030471140678560091143545083473748920477816931310096864019016552339587773158986906156596577260065476997884146165154428258759062790151139619049726262528152060599622406382906958876593747808322570286992876714171100482248513143276138681407493326679512097014805896706554357128696009310189064742854526189251142931663621665206483315271438844201675903639457511561393180613214326925967278927188333504368579450201970969190461789301868422094624668782672872241933196783813679957024310400826406106008408504428339366138658633329472784719807342223468157368148375974533738644756075115246343394741023810763567856002565499272865089263999087129993445033940911042757047018139122351106572877758638387903878196306181018938661581555832645853209585010407998213131421893513923430752154491820959888339402828778558399246479476135467900416897731877233111521505259270699731197732593507844987953032372746967332679105938972033409576719450296093723042629789534358031779630667658189792479846453154306912369027710664166057956710582382541141307017445291502695377371769113078085872231258158838985971728795693297710544833862255837671540531617562768325423486578723539923937519488829184542865923899099668756462476547132469670060789753011328923018480590160190463186729532191225232004142445170240662408423234583008621456587955830439056666807870081112349621649532215788626032825039121473459769331904028982288690307026111761664335517434924104659203989836268301105455457330168173547925750262205586129883411504772650297753938322613988669191381076443710501427816409811236047305319398464405190250750040491094214208088853864937550358783828033952782862729299091459740367666867018390333413292125265299375141094915145772355308892732850795804551734376597468988358317275825182266056218099106970105210380292283713703579239186248461042876056918764860347372108892169171291409371855965823875162801496589623598222803990224392904900733915088802266685790698681357961919458529321478616163907866622677293032795730008434379911156319641423511292060584231930485978535619874990636225418929701400236703534137202525791666730190621897798954438954486617931956887779942481395296157190137750185597925226761017124247659897130540520756641862222875498508629370391672057374986185800306787277193805395730067778067803059736570392852349495809539491052350026105448171984649311086634432010877044777317776693485113010711943276065035459550051150213749886956855787509055915307798934854852834446712204995557427445592860308327253860851782428596691358185643413502430871064038151611837159007470973228784316868911081467782384249918438904617334682003625820238009937972633128391476684121167321612011608686173700654349110419561194879913217103651184944273195533706885786231442315134602438741327283263646726835595836342487201218324098319448964087053300456411720781405904168754275876554129915268351563132836464699572696273298118260777474136740145801868645982020833943899520446474519285256812475628698799170407663838185563511434194862160794883995704776481783473487789424033718806613665302476341581900031527886955281211565714614039078837255508779673867525684582689980378523685144921719167341796061043833702704579598170864528242582867900829594361872696731516512435052290520127449090063753782653819213541881772024229689772937727196905046494885623885022540703589104205751981250541932203492708870594136671094601753511610632785501710941240362895843309251584639431602939383042609400599215212235984249357167137897022794028765644272646621866981121943515376876922633944851632977017886006622169819325183883122772209889971361278153952672112283731689473439602965180065591211471350410778865684893914606269593009320312028641307442151728442547843766392573667162225213741181812613642711820239652327124575035330307503462379835256235813959072532448673409701232066128375934162308557528413930832796240885885959071703753034397008614227611070735929799201609655168919969621232938844725118163536412407826324134716992323415524244974753789780258279280332663849856068914770901093486508001775645119343952075568573815418257032715437983706549942337444213230757494019085369214961825884431029891263076432604352583247974081836463375663216909060744762223941840087123661878262223840127676706052607307179171642599697285241098944064537910829542145562874375364466229527979757044108395947332779996717171984696258211466943798415642131200571821564486604363648290949285908772382745651751353255435839716185200569065188468928462206183007492924631230069336943142204716083278306955759019113697604955800228453345236367300814280249329282024673906564841482533949183481191398352303855791184214473309102737271865399134673754581277847981781441974472612258563021195750303771147205360948246470251317345697891778912537307813898442683068904312378190601343556249753757763549509083846205211857699777212220826398072775609960574761554267642455098447478775427234655755453563250112526638669750873076466244095863488072786672704195546745814032063887200052092476955094310842258070249611542717015171733531121980776044851025925146248061701230130606977556537938425117648278347640060203717263971751732325537331696820323765159533255713246311626094871819625378639320718595525586313934012066788950179235955567091040596266078808347637745340190861255278491073964650928473212643825131946412037676403689012143992360722118542437855376399224146669778527433727211607904655108380228718835679397413190513978587929670787367763179035758516592481618288262200860062288360880493258332627231934045723062326190935278962005114389696188600102514919685167001092921767587691410593572803858040311061516686632719548613046899998685898836037311963213161514052469500649681349028259106177246889139873816074311529458236943706204128157378454046710866101667387773123201228942113857325464273469510648616529314662113508039220703776520206854496224360689748664481003230668819228215022245613082203613182250995429974976932310991676354213001084152621890949834716069349379643351921084817352965330645309514594053587061331220070469103607144675360072989904412595733053831902963187828881911378652411824302687589360512144340662491041569296198357566439581171908864667117575190704409562883698832510550315787629306236882793569083554540757185151808368773712291181463671152827932194221681803833905430832677477367879659063550108666955945511569257783971147824952181544920947684635146720336421429204741044233653448294913099742057431100410533020336617813911748217285873250914545215200088283303553947184286442697361799709898205589859727636361219503255492471977917980687634332589894148295709678850820042234901457957472875702383358582222428584734334114845987724937987605511233958015973255245973081672173297968321000803090544306839424581112868232571630053669497339839326879868693445125362873134057649573903879848982381827322759278760191516274801644689705592505775904365168805979041515147270758152913302368200041105711721094005780819316070875836860022360191241473062503714650727313689429498255923507315918167459315896519838325368187177290517555289310534022423030895773839334016703244322780074655768792679755689963372610594359918718981751029815824933139196445964680984361317199944653698800079324161834150669326710142117130201689192150722653645446495946048820804514165493411354084907818289992259816229568865939218067250182147315116198470007179206767353501481656623427726430351975332553761030841882774954301448825086834196165583658964293893793536286321165398293886702585553241083898971142435590925157994196217511512763546493999549972439170158706846411667161980729432122839044128780181552812630632687750679181710488146600998464044939202336068438333972582787237674752512209698067095078229683830688089133298435792015205930611391538729425656079813038072209821277367891988386653810931261306164220942603942453853705455627500246637637760074305205932697819228282027184543029274589402108225343347927738247842117237514344562760666857307357288512933315682718065579042339747424560545910620900288746383659161620244432927013065388845823066080719537058381555090161342381533191741107138984139639676240624080206163827761721534014883944865209182152208717793590235910212170535791314206686837433360641338742796269225577694117394845726740665407556365192677095618014688009357512925769034285233909933123862998447176087259787311102204465236528077113393881942288431520790093628815038385857548367188869009167992377785733797000059756721639490967295978245632158671578544717948481711466782238537930704209343860974526952885867076215821789384160365452256526649716732475835394579943912593173860521161635614589068850162934679935415343038351564645629675075770554981911230193567359485502585232513104377892644852704836038848391298567746782422841173019126980926327000206185669695530231408295224847989399444268214734368806023067105486919483254865986637696560082878482446896063255087885958194060085543981349285092108836306364679031070376397444482523330684757159637104422164338743518564063852510822921185252923175492764828324383747547855377901869194074513238650389410672881836627684616435282110506311647706689749044742116485044112638378317612915802037035968008375905507337740673524991026986621164669201904337052274025342214768646313368155181370950028021544220258663000020629982755485542080737570197040392783982096066149864327756992356138464159565199100941106281450719247415000254596588365936629269819058805570150655784373781852512367066194730656640224163252191972016610790669132610886215728166936905258891290985340377465522297933323409722935662243556357634783500694548180978226461552450418958698416554886267208709052605908715388716786713595888829017025543461555656824904788353494569328544206290939636441813353892547467820054313878340768056615582661037157894160932754594244860108085020352390792517458990474687570365369118239720448159358667524706012974647486303919022802591621457592914659552537287946317053993217556423510196159168004341186545464512635247186643497937158067156716309480796760359692631428798207946294093578671487927286557540074377816807291700411216433869488406457688878213436802102517156338781620317403441345137650665478912576835631913082149300007703858007137622021576943718095632166827343633756559652914234889875769616597051092165291924385283673382525977339893729539858367025850073333562703595937405707476640523415238607364956201364784725075716096657517065185922549051596264186645364427203181363929631167276315721383396415541072120393080015391118791955659157699096861453221300392367728354740111770128742459050309510959274822150491614195432027787758346006642236347691928578082229533398299203252615078041620887983653422132300113235612612823670830443970444618727041103273984487689254736431432369610887624034431686839443096980793970509506334377475053406755043845798750461880108843202717071452491223846800005560609228714531626703794266041932925760376753751886911486515464240467760523215022666326032689693363181284644995669759824521101025283428412033988338590305447721928794315255204499989677580434252602021271212115670951809063698849789239467405541689108541325647249048705888690896220348734746932837027247877640470342636674583111657520585881781039987844291769020876313850180895618821071393034729735970222288876656136420639203027412983533299512894222558828785617380787551809613623549436175833265578580296275351991446423093513333145771796218759577575262761542575562404794919718036283592943519034521690624926469878416644567484951194938998994036689715512445906431329895174383443878447604397289643469510218652041168464068592443257619926228211126114885349445853067618891143641225618620120212157160640401227245078788666473128922853570652154293854266071980839999175436931839929089219087874035023001428603183111686606956037736231281879126660150234035700210583289411991223217311195017531723553257553353195465881116902435160759023370428709189965940548007888711684856925324959698939621250014934134201452248548349655242165732801188315331968458854743661627583047884909151786253893407336290121896485576162162981668218052901683650372384395998224737340188956890460951530162758162147384455608289635284423064896873410199818313958816899408033558646024338869664382726599381454957408230217546444738568451023767872115754142575541847584830694573994250755568846984196795086397053091121336461967793806020446710837479165686284834390921842767632629785319207880436106485100554113537717118489458339607130694798473507594928108050714359166781282195340315049165536024091571419643640502472969157554785555943407871023278609921422257798260142135284340276463637886128003834207436517748320142818340953513116595459470230622564348746454604896123323153800694083855080412428166273664730746121356894715255601463718772325815656211310549068155318623533410446518343335031997238052745546258899759105163389860629462321204417323750236321097089272150789304606140136522706142047106415864807842807790236733112911758415865495570686928118950783459311750546571640575809486256064386957013509801290464036976630782458446955298851101787148909844489989335904746890146011570286272840808598735778028034320825236311503278226900793271802110811142339105569441743011075495385557597423883545665666968540915513538885195985788826967542194612112224168647700384486842998820139969129762028487130536461978062245039807535046342349531485466822110056124579574693900293743771092213764978700769283770966125825375681336419309125451148753564958983941915658363439293598553852735012478798573090230926113111867261376969832470873523598233098540491265688310098669154208783642614383525617356897455424208303543108027363885939192685823269185861159688335525196263893001058688983264325140269514712807695195389556599877388772096488715137771560936658395069798376255688347459424755673617932374425463213984688486725003181140089189161925457070010641232045118124773126653749345595936107806973005135522075613433845701853625776817205212187558437142784545294412518340160578667925804898428016196705748012535057735906428242614413513049655315937179221023412221250315368225318828441102377903676506497524615757538293537755393949456591092785609060318320692876256368668478542546023867727421361979341793634289671044396375897229903944996958040862163333226753524975726144114096779308579276616687922933500630720177436673083595131418002865290754354925253864617902303133997468388248762934644728774884336044846086293059643319252847803893725929270583734602199540033430051789679688934530218136027496014428182441229978672942519189476110662278259608366079405737530339080221439833554603166853745372676768730107299836269845744903822378049348717209536801412790253903969196367596343094287572423600126068035722066955134912986882265843372129688845777424600489399651725052952753809165353398534823029950765782748003655122508253390496826854771139931210919681294155037665835881380373307010243937418326027054526176841738748994446807603746708476073969165909549121022766250940755827487853120859057153672856442908161133954759175872250483315745289068677289755069392390005685705394535130138630845691053606349405757368337306559124140793484331117846337209572189599998393788832509064382317474759445762342542207557710924246275209440757753497873974129576625689482257453646542178506061153257324693398442124670961879371887491565800327314210669951855982662726277290130112232631017873477841549463868481791978132723512770954045434561863742225551730785710393086954689338756661697195967819305249689808206287858084641918419096152617720036241386389914772863151461180034134611300229806210113827111631124783830301900542851831688335011754176408787482385311865598625960448248806710247641893846770376393217815781870617191627103022813658841756743802038550644966837990149449951245153544460706181545179532348316386403585335575432062199581803820059055729261486230543587408055547409612641323610483272679013265517845139721656323713405644467216708826730052238349487697240602259295927799803523745488992935400991648627420321730180744799139206335406436884794670262926425573500446595132038754666256184969037877026391686726658039790872265934119038356171806323516811970137476027432619609026592929058551608186703507930897865180419643764553121716194780890688016122076018304100879978759316362989657373009675692362765794882731752123986627846635643131905305328244179131282219475865126788067633920854908955133266937607282874879516822204571587593183957617732030207270559503028225923406257189281183985913739604937262125749481952189833120260393375535189806925018977710712339536078048707636056965227638665369158718573808089275719838074609481991792727058461813443594650853667443613509999287560849546105244303558142035679045931156756636604195696537303527448298887979587236296614470007822618349086979339210982908553794106495270872052237687549657910508399238979493592380947860789060249215840709678624027915993668736240866318304137432406138941742692537410658859609806780412351183998453820234146827359240524415350097573288926920203697285976098691978472888552706799817539139184235295832974442647993786995705604975791779624517165991402399917756098017195902556531691404314722479103232305962433559782191550280799629641239807563144591010877821802682679878594969601627329919694782329504002673065614204429886597551568959225241345235374622826586103793951709485688921174584580173860310654243678795900740150901547739132321214502395703929360294144761889314784922299102569210263502227081294665091748725335997125118764191312769156830067905803904750802600178029270685871779551111167179005735808552755702369347521779033062781960538136533166772169342249948604247226070969170636084150179185467606843919872435312311594633405423144458772418411766301301810744288180766397740284365398821815174926710734910443005636251622046894108496143533169926236463955328480996701976920009218424968514218547264701412892850635239137607199848800364951965705366351706371598634070801430953754501188502605161842963674566283740534082906285892648503567672223963192337886443691733659902965014556876247987092331652538320294183990631899760551141992911364520619073135780178293656996207247284277208463656947116048974419897605546936313018573724979002972663600257947476134386164302253219384943965704872925874309552266302033558458142165811998406068926613024180575085192167062787975217876574172837808182355616156651581017861496505692553588804471517618657431570671094113705556732540043385950847106594353053236759528358170338940399960633100485086594408186388840834903133900588588957802775132889574984358948957569994769765691901986857940962580117341927739790743240568952014225024563749703208063211926131738785940930558731422649165712790032524839524442059867725496770578444802982321790193869713441193549763109315521260673468539654101501765525736679442205411155682374435932034849822558754829880908929310482215856940562704492088475390343684160035295642978821732655646254222903851412591435835491515866562681679770912916574802726605508296820315781155736903870563973603316285435946300590872445869000180967780283381465748256626814044268764473811853036433686228480238693591065448328463030004630206068572697969109862897493495185734505989743530930627096448077759862982719876044904521508591619184099154513238570549230290010087441782392939543550011275197825299275016008644497314826820532308075857806579806187704809543167575814184502715374207917287538999098916891124978980743915295344397902346913616189582235659689214756883573981004470866599332735775465326097404390259017308662992111637196610732526376611095782439445591842990518719487721980433583176114241132820535912300656252754861882011885964445373048719688628019428541241196620523819422014531268411018672927696046543006382000799703768847027660354897992644769647841370963604604582468635088496931996151662633592424301151087845074794364293872187232971590270170643057372344740966683041691878109584570987690082023089967552697133291567958248117164826530758946013307317518770080468305714736083863060977508762375663742829216897676927842299843030501158020069797099211548574598402851734379930053743482160153403087464911210304922039385781058311843463176240579994779994368033691266613011787990454606322073962366888275900274633819036072154190892940591633074070580617739387116989902362730530243010155370476926507591181978694341341211516371809001775984153305938732935108677505042950099771966046161421569829122027407151881725968015144583605540202664076222281739612387124623524895879752709555905636365897076585368135026505449552418232235372834504316802244433994339306011692570021239881591812494038795410703905465150096286065956634264535570242256798889927342433573255068554224538522213326499582703237898392455464128456493750713418079003407694564291176345177346453447312065329336713007086657578466297949285912642467638663727676008946986570385035561606369977213253283825333421496945796040378525511951393819794578686772013261283398005556384039601526012991811210397716664504935389290609688289315548653692918023617718893301104442737736465056785731686427024376932400361236196534468869614645082248954160390495598648420650713973804660358095050824352208383156526829041526340550979914782882525465899811487088630660974410024952859205432321610514025201552610626611475346498033463117930828275866551235311416234359089599728733605060168009394840182586926844760935709349341863445409465945963541073575280055375730575261731598450132055339415925361491493743848753198079337277395257395931592167008480532929932627937361745690705320341988142299049455987589769661355247538744041310578977222173347329022513242842851124057693114774900514232497932331122191072085120622454692158795660241846412478370131445447353170012957839339634953508667921725271553590387044012907525736279618265145519425837858566387525522703764715722911918502852059724403966743797234262625414618250023624220934346039272634764152389246932981777347057772458851966551119633172596403637904615967070714155297290358439544181698722522952521585498915501794421110091734779759280085517931149992742311368181997194947132264307412274467705256294398364654489310808219883476459947033132075129766097127003680346923025784932616949525590220103119666609293147983344460276450507179044848424197425219974608178829511450775690744489308865031556305053037909611335216566658889432202258498957351573207194617455034897337511322320006913168887817646072412091151978255854459436801644095168081781542559797807132615500317806126272414333601994813128087270382229120746441770852259106664901196719477676444435912022591454490384658339605220442608500479631632404966775606317520209226104396641079053387330296439712058896348535445405491880897473278073086336185552324541547081817339447777911884751266273799395859768190745252747903038704922808406151446603661240797507178681976575290680793080546577782256666538872186081133103111785074217500261543780761096846542532543251737817538711242685178890931041097495209393575348215993552259914793107240920386548277730833522601094642670885990661365340881249333919064833344004606278514752152823002580705996500421001797963460605093202163910239974306890667643917961581593526587812253624021278803096935731951600232849883486814658706411179092062434518872037651803864840787913958737296178060293919855218895823413485452259535782512440074074052390439719558082673021258173891521645068106253679850554288942246178991916294744733379964375124454400715246049924054659120261357461020606213797480081340762235952806236313158335824142329552089692828004029764001311312030822778375390110566157704395990014072374869064238535051739170126690147054881962609338733913737990530447119599968312088863174726478352040066264869680583357409030780864849892802286060013092270848476829336878117008464663416871542769428576953592468510683397036847893297957050748750580537518812608636914039717764985959034037693527312555319909818054961463058847603633476500035029572623521443958456880565346656665551145705167489261831744521044220680206997132888313605429289513828180969915166572309948187336131717757144729824880498826233857545896928203552398418177447028876258464831019723792500179283350211940517057878520645802448581478483083355465173222412834937592898999402130353946356845072713762434525496925995526031787120391012994394071586838390819511037635547319484878895940749575224060648880080937630929436362667389210955061746846489548644759911341270521240300722453504237071727241713359997811843577021261917660090206180565022161551540893819504545133808986283230121493967262101059790091090342145658126463971450221140193200982964016479429662180002490668790619330203344919428759552103549406488987005225347833763648045590439701128122557729040517682317676908464780641019981863054316150054468061269139193930394284318315769456804301796614669385171756210765813820954094425272520610677810786685188509263537063985971309714085922972086792812029865447206088039558659593959731735244861812978148593538728062468663315865196386213238560565696140927869521304635720555480847200954994241810400792004546549168742482616513083514490855730860197586840453096116169642898829552823609071087992228956279238177044752738396999669759780593408413585635976933245068952111130773511603929277857713634104496853364406182314512805636824217699610918932684845342474107586742121613642869534027936460615992531491710997434079878574591841281229110333262817229142639918629891713261434098706492688467083664839397093820582690962122236572770204197016663567977952773632671138609979040818587172217919241659317299578131278279376201779064290593707223107635481260739128448822654756808221965730910792333715379059979896983435828622203720212430193316166140741664037335304633053955640386416100290939758389434150578326580104187477697104391731122131784563142970646830161468837859526534328589025502040213313013986971048842848886998426138894679864825765076884198989245768232318504783067168202219029879192373952937889119624110475547606027775992840785156610328114944831514090225489765387136549821886397345749924006552571971309845608969228450476080004764325933710754372317520955253526906810735052412049270943383955386125485320116774291545880018056060476534941406994926331688665810453626946017590731878014407360932704033434476453831930518888227482572035129420573711740799917580939695164637069632290873411481820568556198208298105559578481520870384922488688318015542296506512230672683540463994968652951771022336208813536831042079021332135965367973905560179380138770272447267815498207295713656490277036320164400709758891700567381851248829345438709492240523434712792932555094801382644569737327023947964784437186279531017495973542252681385931149919903602910326616896196472750880549443760875361380662136521173271868795812908950663575187773050061972506263598002592271871834920550065386093573655114612007102113008110147624302101179793110335684532821673787177772349329882086554653151254677981187782096848468890366552790883393233732696211791791708278023708332657810379624769119187144434995317732011409432020651047209373655745464952653148636405754635586552912757556786989914378788362918142899241674325594829382189040472986793619568092765922361170677992013032703274259701892953031744468260933892218021099318824751979731284470564641068474580185174378703162856011466009033696358441825431247410893943810220636683040846405404612632666057540072075589370772460237241123231500536558735667441665371760631980690283794750827587107312255691723967951531569317168241598504599644871315655554530231550575739361553551859190781119356006584617315693919020097307421755991489062859937924661094289670401681352768416318831493671157159568044075095169648175524892463313915160632237878189792356420278307622542925430923704480972985004349958829199440180217659752426097578237660199054425227700805486975318393931977425541487656580044138904441174117930964404208478310900916854318906297626933602734497058763721680183142885957222846677698494171821940233552959027208616908445974884541142590722538661680485854732689452561822638651306247206620820890244176043457535869655315050274923219034863091260061683120168373760725203371697649238366753243501810858883031299615286397157803252395748892497307126795634485848270281088929685747949915054659721502176517286329476727108957770198772608068760165942565732775238570228099636364090320881330416440593470381425573799562079810398061567602293983781355540205175425331783858345769213211654696741749043632980607914610308512690114248134349159692047447054166552690012151202954445873354128906034774930686417760390825841288904081816511691181361279420973132038685177121903587774992691426398745449327779948915329441035673356084305234471321146270204200672979892915205480497704363235601362804571620150639074910177542254392930875624657711434794071248141574054109033529103350371675969053174851492837775244193521492571610926492850552162466647004820711746513143120922342701833421568939731764888595875141333210783088214619581827026959741091111069626600711891807907175152132339297867310092832920272055764458587471196505182848912747326854303542291302040260732447297931597889052866641018285764419506587066213288423928791092976197420811486070164118462350830617869766694445500363882730081168734996907622589446097308714456715758651068880640322147849934615985306298538580367580089387012254824847007535209598528342034151936834470758290027947411209989515738948556497638149949073944991196043204612327663156926705807115573352922508479996526352408132846869935734927668753663270843709108973063055379329971218622103853910143027935053395444039096969046909184230347919152783091666382737167407490738608608544645021079252427392214830098295729048816354469055793583300217078361536407346594036920631425833098653807759865309110428075315863791084282740176483464487727743054733792748271996150815495262579920949012729351168298346327508031490377861776014445565632964957060756407490540564242643458838779870608805013378655195799743700268010750965821051815964603861511823686606892823415725450987373837856135544492702121096741602424079007269482007431637849967730249190275510378577751195610151336005107414812552626018790698382898984829580879865130467199190762622767755947167690348926790157454902907774887737945005703673858159738335120422210656956312744274523763736192653595097238603839117021562922518124227481454053102092401102489330223250752983061664137698878812047224009506570109197941789287868382994526426174111901233154307889627731517285290585906897161217422486168285720622548630630545508750811790304447062038906829163054901775879269546152086580776085592978039005896289419132730566227670776821697366613194337758529210583604078828613677279562874227432522993571587465156062613888508613445048470305289159154769615649583998286489984816360504114698890378176661576017233651846857775899722867622694781080784606319036316577189838026328449428185748304261155922350741079244297255144968877365629554519492578744329086767342723703988806304134644742988211981397254658575338813034599151798870395424655829993460108085988680481950860206269298590981219787074081855016057772647792600382726503909275051543717008905456455044511874291908251458293938406759771765047180161326620367864499598714270732551625517697041305933481523811659547728693692219142086837825042033402129842832218378713540882210106017605575141407531388381908672423781152934592889154948308238587649360185321572097980295734293412100913439740804556084390003315654557765408546676237836921487891091312746233705963804615090382268755415537001115056379982177943521841071218701111953853895122971684706522671080940184954669049826169152788424468486690232669364034053894258538418537943705701409431195234809725377022035537711429106355561518348484567799743152508120739007128787726391226526957301265804833463120396568887949720164067019572038634555397512529229272311454013202920413864898030060212245102425398616981946872910930730916686504983249753171152665423366859413323354369265426994019284504604399960147003289197953466011273820254835843731049708879672856973365632823769300817352373717188890830334343034459568567196764680746267629708062563668824201179015721270231336751450625260284142260086969869552604054417651740586329496668046468477154839383001819729290301381242321582868924090717149935009305998290493681553545099206852947135476010618545195395087460830790232836895219547863181461014684422614465757039871069653288913403684548266327871550723028826593270555439984529312415650254911821781413697398866013185226946708260339741723780950216923400540095647422169831842231367226637490047329336700634861628961332998906672957436363057731888817626581467353818440637897458071318767574588207430931117054719722245157953130712444099300316042781075637204080669547222751462537931150375259640164641022185707503220444142537847877154582469998643988468672057606391241208245544495250308131676697677718607354919569535116496620641546506412112312658327497961988498647691073113540613885267508538272355952199378524541214648952256814011688876977016832503681154995085830531065848311860935502923200092842761840154070787348778797194989096101767795849573242974649121377387454568598285162395231884766039169734754191395919776411708468514664012596298322512946119518048373903697929224923052841826705071688876673367252843238557435447956084861646786315065972817027624756375120401539677204199901604846133757707259928334884365885184930423834710642567582590780047954407409692267097488892894461944597817000748872974537301952923979310595526596001133717593849028032951309145705403551300498043191084170114664817705856909653607051160458916732313316528560654047062931394852441476267030790543347785616590487414450448727542847158170771214940850782373714884922808942788939621624538505817229445693120636563178254306073487140662505403827244277285570028362920586701553636126401522354395891159588351899933548994108817690122489544461921940538737003557191946369701007592774457256612840664428302547956273643466325031572559942982351313478907899782918632970569554150929651660099307818749033782699072140005718201003059767477262610312689841851944945926147010631260266368881954926725072235763757344804404670688627643422334003825977374670511492602129776150374678033556091992778794372593137503302516781215854448457381529361833426345799016290505395181927424353836053795290908156668810651395224687190517915225977758531116959039326241639429099920381894539027672183196661981256222721564689952929274919685700686602431415416004427485279058849352788181832156085971168264961317146321040058788724079637295888975406424117714706613076601033570117967756193052795635961837405642438569903488447383611374500465570562520012749549686497009969298940750732493809446351855098853354176313719883397355912606092802317537761758330337809531465695026277172208576140460274768211504617785323972678545965934033181573555611028089092653770484903460984779443087228510314491273981444809679327704019229876467485314984215058924180649668609411753113498129736652805787426645447933783624805035238132192048891058781502997850319639583231372694898487149364497517566283359735517854068307031358240414850592032109128661122084845531181520905670615690676723651842162654608196637011831122273350746028212359955879606825953873883784999670480225143387062050137915284646760568086782836973340627719837420228552548532154690473200723309382046802988957209489127969402888894156388329591263466037670834662004001534253316136257776127368254529559668639584411084172623906725314076506946362511079953380773435103726652039718320865885484784456731127295338179260791235142916134293407434415584666304974085350568066448641899501216555856838174158784934209236235558638824933409350476736075892074372645703391455165571952914647655541958635309693262658901082039590548845161209353657125914345099410733884235858184649814484169423105183208989384057356862539456865648157561873275786000057380818970770379690996694922596352365943104764791738996540754406742808134878809583618226661606804315826748240803273668424608102705568304947748693289117101022205472117874388589179650399239045216280543451459235643104502660413117762061291417599162742070628756499021953374748433006899716636829188260827089163886559965052263438167507385974233716137588654642852657173261657782916292929648675921726790524607389226396019578195091995913557005186053778750704831012158689932572342991799500656627169356056658202843119539062274837928125702406426351781654876749320232736283570711014355232884549340094809174780586071046266360779322363687137933023758152507071794976470904491211654225752198865555710975584975342512995467163521856018279993251112037304265960908660017990184099102511195752081763753113973848759563148308463950372741431268187387391166361119763140317393775242691203818334448056677638149601551170122460058430868574811348196089113963103544742788723382725627742171887012481851740658520001331556446831348836818952438718458253019681905492832063952435266519658492200010660077452211510149752902229863812380871793357526874474413605572001854076509635369751729959952749533691592487369534537663166815303333047162352378307221183301316383387367312277056609933046063084706022981253134136222645278207237140585950089536975138073259203339958776929241564730917385128513770976591535803440585332535206655949707454043917747366915889612467670996596220497853097282135049050819669784271832432273537244539983585906168289366827362742166187469551603398456645029238041650376969356148500901100583960270861922954555779551577963642799142464570774016296185987342792876499367878283725041717330363865606403415220114275201293475832398994022985353975302503192924222430197829038060912562510698430962774838165561883626472268608043089574203791159878108698835587594027965167050563267756935068180080550044219742119717906238520780285373380315517956005495138561761337104028661726152075964744809354075944169537085351202874285316940411420274389967311130094676612531437354248572836373420168347297429195216707672793328117125414930734435501224455333889645556858015597517939615179408072364425518845025114052764584813428167649470669964109115078491497649396830442529229118008473764740282692677588738118559906711266696064676008924376850628742022760377370020992346040250643385809549502703551722373544330049617715600986537410466962752216197735762736464395835440710185055382033575981907224177234882328250001677975224870681709491440418353529291183622175311370808399790970141034870618430419302333963379703196101800119247375223071064015798851646224495509981549374422336296149484259551267866731112083141456784821117022605185252407253082212223586106517537799514138488731385660022946703985861535717107897435863548217703493347348935375797546539194455434722091439004566035119806584916275269840776705118576750936017522131482424313383221636149485305899476173151871930486833282150005009432402085636903636305190616759028079925351486137416685839642406726645644190769770625723381184353497819426087716059687363518425903113763853373991185050677839342226802833275796743693577463658703829422693523752990543061258349370391832515136315385367102031685939336671732172170786198404816506951198212788031577334340480863623682316786407469014781973847609714428614769368574171267646752715491297168463849254460637158082216192110250618376929442079558295790026113556210082349518137575513257571046958462332515567890836596740447054527029172328304164633734867487023079275789022244524768689255605852453370413606113053522723429752966497137442887620715809069323692888789548706255011523165809572554016019573381136981614663322161119586003567910013765675644747264953554934506135076654717841494734682793558328015166774062653712066685919512259174659158375740058907578134208593257029381872429897311865437510549046597595315861557630601112553077815710847012245308148321703584356639307751998506435309660060867836435184439089074176119208506090932362221262794059886340363137888221648137349140406535687960993941355494819458242022933122464559720461131513394571616238969232217448160415732172835042560529382188367992538929878887898809289084789984923182521552044481930051030546876815080417601550085535229967374856105646671651887681128449913719913857782962625785398555351389132803255833244034953308653559201742169655314694834625954527633141871330973382501484423898427699292215899331167975172942436417081381070745426931833691538542398479717891535584276598702787921642853349826104513960096340597587563863206805445189756297008669389222690968798596454126285781641369474460718786035926031294020123197955623092122720603270646145634728531376926899317930180695226884048081979539577739111071478056076184877695490545707769176261415201207125813930035254561470859128909465357913246646560770357357568189028271191143214168302394084020155805437729935158298550795489527251231492609851270858859080933480594797782064395152605096943322205060118953204937869191123565839510195299240446822911488163717155467984505358759413801220165216944427698302140947874586146803452916848660729907712633670477115408189948096844401549897100327816630967169573752559065217817255575945263311444425237791969249909836125910978068384471542386535361118642917142230971701710491033057392005924527470719461666754787435836369317920398870174641935147053015979556952874624344866852205964199065119415412115491109091505068290746223681895532337221052970759419718604688234093621354976539559199835893191616802283061250680837893025485134176214399481279971762697352328799482379097092385498027968875408914341001090696317458005450257975610511885217012387228126520693913513587982196581270305658176909112625449374371152667467917154221531315897998739058940360571813986726886014550573412762046216667175205792139413822152567305840700684602305508948964969678984637449751564793709531198853815118656104804953343895618408783827776645735922439052921485014409696596863354818876728474221967764334545367925811347291014714065334135542031935780748536202617333660410886637610369945717953245494769623501070145454516750555842263814582419644398753555964695337497679857779470692418130266542022209939587353078285134819637145608503723037505022815540283099703295566959493335367575279882789890121589919511567158363412328999066136470676924833301625069332536400277091193036017861115782641144443417283826973404832520101395833837424039054906212212700880645844546762395370700110801909148422237354022249200544757027123938729286378390845014673006506031566993123657731998865928969955366668632501272490999544055160695456731059001373678500630285847556525674121236074877077120079795946491618711703679658081141012289884209534576481128194181631758215898170490897827314176104439494800118413769793746562448287037346199630830503681465847385106535203607684787542887612210403939467308670581595665943183689083337601415431897257537883208858299144082479504616922456259266658916305385088038908904221172443480621875842781721587575676109179169415824442873483164626725081753982383221553836086753345550461852441121973122997313902553523412674735169900045707943936760076317353279573269643946199599834485790937330498633167032286535368956461225852703007774417610643671092436113894320418158158423419432770114258050387629078500710493553426854319760255299688467892087592999042457449384980031429424082268559083275617801596618422099107195853552565866583732360402337069731102600139521367175608021910583035730214014636959295230140139712626057848551035060416811124324298498735647768283814992164430689129559257225777672580208289739953629380907920894427657377954095886097379492360988728690146112282852130973869204158034990695242891111269475195703463471418362841426522983627882526125484775560054777936795967891909975883004372515914290642954192913864383020616307106394602002989023442043815088688204182559603256367662905568304067130446322840170261585098767186888682955842826081635321494220570598326836454558527247385290028650321862640280211679195888962098590770427666532716039150273725647835902239271017464459925844529599989055849780168630060114725002159206136024155100446125668386556260787141036400285856337259648509239769405783300402360393239118655783496538293446288217196353116396652545309626980958197944885873569892266047181263180257694623197311165136435224049245937306120031385628725464452366010806114011079814814803252366520646051090288597724543753173980673641671432840865981337071169894678273172274289047645551028483341557787878088523539829219195221020809646828365818907314523859556226246132045825324369733158101639782741957913687563905439610559744338869635805408824869269460936140144441453182055138681781080402699935471050986735090815255476039780294695038044374263610220256432123675172888368201652893845988030361336421142590369405616655811219410254223190924554371878191097735451752645328016100296009762310490291540410513521548411395075653840480644433259289325413344229785049644058147181762305803914900647555996251699035370830367977931986005222181868411087951713064512309657831497253038060749518009853726120354153429253759839060046518680336113024903011494215372567637397130441401955628454392011380955770942954828935302059853388189031502870296825460240985407277101589236866767126415166742848697360851717373612761629475230107868926323366567087589955230953113728462543961210834581712954505841096345472483836206004616946872025980949358067789834910313436515923898930374565274523120173117388904687034984267062369423734915666335321330310083958180709884471250389982934728367718977890473048432307897958422950621730602483406800166314177639840141917476637034540196635082326600790645285421439696045280622729225096446084538329786752510654464614178082576746284266037300725971886943855050309042687273836019208014353268615659701363783663759521820767660031522968758668583170309206087502211521646929247826773586121639635744431645709755600243514714708818725702582641583698453522006500653398391974284841555408802964241642554083881736409452623590779772763947023823328562403092284676173407435665960168242792120621582912512628768878407353169684098849328008672423399038376136612481408797067567911738325324058570777152802442855729875754404305487178625660339327136970598302888278241426725273670311245715887282374632658060050815311975426040860927096726969417876808687630645303368207261814958909892365484661176901214753103648210514117135153710138046180733353917405264714558311579617653959250670373573965034225026030179282348301304979657981795419997890851921921674070500698028201750550436150531088654626015835819197894858705109110822606132230440563486660030284367848867583024737649533799738232848202576468511539808052205785013467990273366128804381808567285755868842464407571400184363268993402649902883502819988463404443559668935006617562575591816711003079156450056525596415452563632571590345487593954469302303719731849065089829831896538411626872266628189313763200878333007376472845060514935330574670420080276588976889481485417921114605520251240362830888592689969025461078299286864299438685562245887149323691331971191280033262132250708073930867258332152232658209464264604711826849495206519939866351262935135254118426943789367394600512235786446118452889042967865884013063207437785489754621298270690671135273471875958944713790308929876953782164726263842487783841447256171559023810814769388080767915688828338621317943002548461557619822628825919622786420218159543208615719768431396753244974428874256358584170125074105759910129095618145727563191815529150642254196981605405639836162551621005614488818015906953557674148737209973577428890529361312823419528889038363700559773197862553913308411549036447993070652283428622419917950209206669560938958050072091781483979915645075627639963491423298124510859972109190057222128633130722753479387506597837415844513040722848037400464141561025162984659361149568115511850073732654529323530174602509165423768374078622480439472520686725829849657332579953084859566486682893316449486808009554377578440639910295966945390945625214339179205862952967149524443851774728438860498808807666155271368182171782840924549791034771706014968650984052433775265582400418664180579454222849409836747548644124554208459569839535886313084828555081456506800011280732100473233423198029523248199121100283121842701824308791513445995639074289606242035622476288393739483136771150861839924288283194834954425515061890227543288658711270878570418322659579953627837114361401113805493626180854919860938557056314692816196918509604093487960038819140876632246315801429393277770072895867548089734506896687031340665013812212760596910476124240789682721867434930671871286498487650364940965332873260017197895466530904391659866540522832939552983706290405414857194933845966801907526380121000210415323345206749633221972762324651331372491445494957744404943434101407838850372997084146514445997980934307294540788254177532154470125401201148839030165597764525764868735897449994455396195159822465599047088093023406739774044834205265526169243763128609508220250601971988213576313824046073373964999525526235409389909042856876095113551473164638790607089367641357176409015168489635258795472478612065452140619979228904092648416671217208461471525754297426830135025313859156977023866276371205733094443366067363946790902289390598846627355343299531334508677524826175167955322616120171267347496262802814592116135050272366152002614064121160215677909186794023510130501258963281766962942894846158419295125542580477708493862140505524060977314227135486618742556749483932103023713984746504806337828918433114603224635504447241916658442228034246220946850823782428405947009397131188587105449011358297801014076355155145626363666770260976497431843010764297189400335350324499508680957750510886512054262115425358179508589006350708379888001625078811838748340133779913499376074623237903429086984732856374611831074320906800064922877042760898232217777192345677372938050995338545716930185374371476659069716119303049739990321281904823873416496402301375903482570265712714541430558887287916536334575777578832253824142994575678386921000282569047213600090324789912157994634400040489237589413413207232080185290696829201342102593325402937234066534921001548641716447175438383756250010781217862677848657440237673444332118689463058929625050290911315172669176747291647192676815810287070164433832752927892270650471864742204450440342914478586868558943941138553815010509158283169881357467840295662365995566136402122781932495313070618568718275479906547270471359180082378560307938472150756539062426529532477748507996812453907574159298934637657491734552146851262867028586820393607195796602938003674683568226960135091246896725975511257944969831009072387524344803572909024390114448965555775818103727751502001278259473583179650997145824273318508323510341422915292553239632367261770856558898718807213535795192063363143184681101607052714585106921904419638332060735581752400468439233128086422112359812895915630589155028018281378505876464711742784105053673577141846432742571144790946204558908781319999111776246155705714368048195653424011581845791569987487010121295377771593312262040624607564145757871872856188725323791612891415546638129308679971187965707850735236891410577397474082699746131523243818073751565207092559432824044689998634161342984620344125704897331421755770410112728633083502364292940507100919098761139615895432299718235838750205882906009881974427101717997326857792148504733136555721628113123086957376758306093084945301252295964295990079404401675687450189289592783200067162394514786512430439637345410685025575229202851830767819976900837325068382330955908024592953750344914629870578021711577732534723828987306821535850639079814411958591144460035985845697783287702090763874725466307175585620760337072106781019371092770113946232888222771594227568880667582105840317995218679216751766846583293033236341202186328113211423369923887238280777959677811593584842638083379075448709303798592096936265376975707063131448936549284936412079396387363264419595526833685024963050082934218130177992423156682532599894900871874973922913425101108928542350602089561062506214631622505964097570072910089982957803920793336066264883915803929459615284261221360833444602494478929511366101989090004337285854875089583639951368178582592077908838101982440988967633372764899587385391166950808997887203734105630440702128790935979841382098659507536000362654105854403053767271486039893331158289222633309719617244893993782454243187641986399926154375604381293592311223105710075733429713072784676044187764330547506976902585743672658280215713013005344170497664163853753826184959349591792391903588277695296923981232845043282365524190410150668668506001955356343420867905771638511236077667872267863769955001567423309029934792086785511014138175958733193811137829827144890086773261236758766009704591219290889359603470230336446572232439863882474732240779327185268498026552345624902787348477918795241726539593539659899367809194320459281504862465848838021047006528920727116416232203331402045725821454885034818613542924539658338299085697235876557133034553292760765485055380269201090094077104813202473889055095452028271490640694545185353231024549588964045594882322209594166021295462586052738707349067310970534068535538996052277461936683358630013711689484739753811934706843585069919863888244388325896572832170582500561266344399186227326331470517318313942156408265217301748368472259974045761034283307663340181383737037064548300294661304515948210500237080352450500067747800713628290416814367078024804849986591374805716479257350193182250671995913310889596153789906892425553973258831518981145567561763473540630152769015036541963668010383509854494335053929483910405889552630700315695030140338983315885299036415627608863279481668943380141902775411474064329347618770786673698878827371961961746395426798242842386431535737823664548691891703311321228031378790777234564472747723172702176552953480093683543650405883644659507358954019289920556926462081786980404667507079440321020047162500556315517236009374628127304238197211613961504881082929051799331030939066832332485227357626664559937942476448637071051975480903007681568916437174038813987463319421408575700491304761030205732555175256860927951869159567211741825530207952590770292830720975024313315691278473572543077961882965931491868582940755088363025060965569152881508348881887004378775519956228255579804670751437251788005549728599082478186646222118647864134812007405231264179110235792047091763787898684700620771293748742184793131066027401438022906674941094589747700177597459892101947353427879965573888057306027272776359944535888598787260052759254387629464483052155431306755915481922111768528810943127294723649604021670009824616167751041900721166016576526725245012121209286250618490079002584522470651774533915834246946998330513004123094531716764796900568378692124298745488626245886012159188187666629872824717993736667253578106314841587532780492714511290799787419744603989682578553749730634663665211733687955876265463123284830918504575770276066965875704449169711500589978142072661231747174966753740168340604362100986375790491081694669827016829828879877553084697885632445167773477761398374804888394986905089509015324368654204147670255063397130971768370742098406097470753333024553928057352573996530560577873563843686356080484009583919643924050578788544828496870351395208541679341954186641835955870745379757512531429000269039188854834884203514891134708758965204142402981393129354922674134896607703673818529029301400640733016971881246318585111486192294152270270631032330281683392824365519081958545497758544599964165668804608680161524158307960376445849655431125109662262626611329878682494604296469514760448894609201385953077948663026913969230279049372080595270441410067106976749652111068896459409963660190675143339325318182763301509009192134710692087991557371871584320836228446624518895293767268210674262519090579173638523712693246439306078831478175617446209865201581945164706284373329538479025988587121357537589840570107857000162028982632902621606864883379615319530427924009004233996723503801270160212185044172566884052073032810854541140742007632767377107745257720080482628153710894660456819318214523185728415094407706028147340464444651107001427640083772028147496333294171018804024397885368204106571485221714582401115859208924009249165837422157000561492640623200647221688746141540679831946325946015915646732472963615291557423203580375593135253996727018246437283996113969538152649234899745847770782863955242108554117885963924552606605759170167764610408183695327718914049511368770526872153728097917995596762032935067407657651482033059160077491545176489051945827542072405949797265208072733781075784995638340344902882720336185818085595556753728135761800843928906259210759845694275151452014699886157218861301158293545484369478682539779512940040968925145610716770961369967927634151402559551712760688309571693760933256427593851288387025268932630713436931871793942280809394647350581734369738804002601835584060148370896611515616503202840286122957791005399334429804005289481183684720142072358907750045878436270364700211588918085635889292895801277402915266301773384068623124480314920006742685230480323952377805189379616854310630518101805342806253815314218257066148735177146325904201059650467979603988047547610361294146781701995282426803405224979654110898436621972551806850631307358032443506816588095019526651058123971683690307681947002391109421272901828243421423927165260258487028221872200310232431132660273238929676037721025047593130302786899325441274266840368881537617698034618619673489395530952569885438103204153743343597124620361840011582854466844977123604589612544014922731872524668670501677152867003237632992617977174389392477741461833309599574106347605260464462099522826443342933531997356319023961826114040532740168487355462360863047602288991092067689682975281664107311746050721155758289075993591011883892938136149388997348601589697581837715882280251791708335675086425272084996088524157444183413431493743227089559525232758931861244356737463773363136840977087664984184671986033042980942269667652134815829766303454750128519699788252611607874941531337096271296252171587456389669739535482041403921982943519757673758769705167467630625592077415846288995032624261448779015861016508873074149161896038952328439950128684300954782843774228114661886105779313293103876940252980160485586678794562788207275628025878244897313723636218111898624350585679186828354809945286166894461196252849570490563593809539671735417747098267956528064370045643693786048534754947324415332563674656784506152305258112170340397881126731283421009662342519202373657354948529061983999584123069040742027872242254517922485870306864981722136433533662229084698766060086458791777590029097110037202825548790115636293195413114673993569630741951145757524331010721909618258191285963749996732150747118698117345524949186398272011632395989855287339058537312275224892405964545823997459080801828515348910986496000793980996887005358420570136135074892325758086785902977177755944169834049832748890784537993892729652433978503965821974618841482356378198416000630972523096316251250261709430629016319196454440458858324179756651276619294552556002098325558512739569094043249590480572517826367393093701151366672857097269782191922345176930923535573193046090806425822749586924164165255365902743790020160284139405189461688623498454500361859255344555764694891028710019386547598053209566404484112229274848383091058737774445514179053497354664200865316018594038204023153532492822509841629106239463704456587284897668671801211356769155859079329497214486764494014618752778475342145629018773020394630958015418849537047282539275308557163640703371956926927840358620254441782122803014950932955579418900595137135292861484401239588052695287202352380819170208232193521975601012807329237927522678438308919990431194985390360663638483012682212493548546291943147214774554328187767120555626959916702086986144840340607355265539327677164295169050173481340266868070862490201251726478630387095810829531979679566605247249505538320027191265615211064774725705269799524533799101985536933194778521135634366072994760737604535505598662716727624081873258536901144885871576598157290112100784830641588783551687246407506912203969940293199948501366293573378602778769943419086849762752147118048777813744839807293682216210987432097179215054084193289323074859771160208612968246227775720051126604967312534940860857423288377113333414501587355612484506955848907587284128796123501065836102093563684621697883627109250774058802489707499411432615584868964189954594024052316255533258663457540136245284823518338222019081134595133750323859740307606819878439410425255450997194266714795848480572795765293074627649596794341488648676462165169151376777017041688922252096934846952106151998085799664388469958875465291185742551703417402032532830383193459687716358265580597134381717280946121037319933998353924806379184175486873139971507711907506676532303532619552865353473615700088633318758496616888936240267213871603023085274163290103795965685334761228625157071080027183068821546055547132624940480606763313065485268516767767584035374500019630168879722757556379569276005302720568061182407409976122418484506973432738913370427569656487350583927041061699074971296151596940580024361196916254306005605880387624640846930780544002507508468712566336600646806568980298588976799811576873734605986498436020114392246700748859628614025695530706287053495568748025689437772159359170216114700428353543932245334292880600415005709742038357675585693686377235437986903444719088239092710077433812756678912205244827661870773478037963828635106633777364839247578959488979431135835709369103314356034535603329672678296478058154087605914311122198281157888643756986012059082923591801303650108403925051567180742552008130273000900187948794296234810766545350433109943711119563247697114875170567737205610836118236087577287099548921513128283067549054415937644005458307855092378079919419558341141362962521256011517257459310794864853185964879257571335453390424728355743525878364888731233317837790877758695891506505243965395444164728386031129817873795112467806307613312602875064518599644554955713844722486794327650134786139904143689996296283504484798762486165542861855578365540290553772237574303355951223025428878611319745871019627340901262842135052442370389059878831904149206587706041723298990665890323412542772766992188309158808394677383652472734052986827556348620216927109964176284414963886925577353823331021861334829520755658321342698769925617202428913515821063263308789869845402714381576722829736442019490720836778810358032663249868377400440431662486739655730188653194232891904676928414757870085003374315158341993436987251576785229458234076800369219268938660366942391374404258512055976174985110937666094776489651326622514642329062317409898921912697147902049781717744735830145769523511722357871980945929670647871878060092522188314968803252036010061766280908564051468049713716209946851481114032380241020831599293943044886528074795434583257581627793209037906774861704948283510742183799937644842030369118186851951651366562141802646556331436755087308180319141861584201709484778432761625386285747218463284181511416141292914014244898594099681385497260964690872580235646981584312706946005282205860691412364146520741911740108537277457710138336262283136763137155109097129502514400255494876030758619740617616586555863355102331655548035216212450457651867003338922994889632768912506225098237909166461730527283270969541645810876476440538749575472454479744697401324438259284919105678887918632795057209855149170528059442095033659117457594180663178871808700525326498162449301661743422974773476511389632436261549270807208002887495070350741232718127539236919182735044081379197452039752309874063141540310449119136065389039995949764506668566592763558946582309079023273848190026644541310248486109752426541942961210926909939658235807123487807758561286434983083532449139232124800391151222463969250578413987650645075100103667836367523172898534394125506640702809152779750492025119882073866742070949881613233255401923155534531321454139849086269898548428702364197722649946829615020788728950162020681729292043460755685016002839933767448491912491551857599028745123318153446236828013752912232960338665576825621395284939126539354576927814319981784356310011774116291111876352637877090345339627858502199707251167252599187258198423558693530079694669373229356229472409006212359200735428889314487394382727573283007545283790579820511235791308319574145595451886504634958522862517441877379594221102443099654243360190045100947756675026910827402891185384927932305705296852078904741584397708578189018870382473818902690204284764776897604919089991023782834857332733265442542804076415490057245903268246773756850632156849506065305411636736904751702460235290299738574352388699829437012078230728230636561492858856813874182906169894801706721137247390405961174024051173624343935171562062113797597005475807982623094164008120957380726683600334425757069183980116418567563216518529922382411076528696375710392478283629676559322506892274895328021720410705321213937886005543240720749801190620009042881079129780337054519781277326818234396682870494674745338923054592625834771301574002271945367607976221670742513792266742607830871229473252823062879355532847549107016429481292154637689306415457686359981234093145912829930677335648662191834327452522102979476649770138569983500358741603210552595332856738056414094475249274027927869073397833342701388571017975807444352863315126094743434064456541934030394510750864734944744802422617828811010279487533154816988909006042689131557666618500637212035606959747396715895656006418294467806776804874398341645138030094878851842837221440038408071507854201015505374029661246951598814052355415016768364458929753110094540480003104976546591291915444316063553149278846278205625935189534021912310291585477109412228142812935620125403820917861375825799676038777822896557950917968918578855084441866246898733463579097200653949979022964623991041439327827938530259922282459515494863601357112639794769723361331681734037538290999803153602202644168070599386553019372004882503606509861960568285008049022832428100254374453680297000086939852424511628876850850542795780814547485886741517109826681308532320631662646417354306911195851400742041112685510825409384959790726114079071293626421687467342221784438774529657696341036518860737289826283296486071591106878032318708481101259638192612156574763495491323562676504909243218411174596028004798121017569489237191506192638305429547325432703558220489179857388108832259212273174809127014424962610333616848978213278355909458283982033021641959642971562867131634562528191235198945859433270258879771351179373456728066882841067970063106290331239337117657189730989381018800047207136993609060814967876177280843420756199415981016609965534861626511897106458674444275586676633269566513151994478009300296269588970522302493244878050064220258025482635166541579320417458342089674646658548957851188188125457087559651295679066890373880688797330343229073480459125690743232169571494385231808170318512027402993119132738598731197007051794149248446192153789322640506917590696007476260564752614373221567591220923403358630440677632939418484617564022726125134163524355570337335408631123954025063480172045457365321622609421039276900340648097946411080013649272469115062219673687433990498114573269555380237196628018007307698332933458049473115616104871631207993639125617216275881256718082946788537201721216191936519369801555447973528250836969663187304151389605645269437685747482709738164354993723855548975137411416630084732441190045715207033476389675206671013960223693998409522858549440550676780411276417856109331636049321888984365693688716328277043730040266776048783988281829184059264700198214881914468884729844909564180514971935099556992257210559446340779089281598653248091519524817677883003988617556789351650262976793482158422547011344908009859409459367405116700591451484777552971220104651955725382734842759325211700422398856879939387563833205949382830476699772969939469160538864379347138906887554832496841982373463265686984737536487455612864738816965151068654174699465026140793382381003530503683241300335195775902611208427988166726705019322293459754888454298836431476095892942262883775734824253052600878754635350636325465660655937779563710181801392471237562610713715392472805057718259025041771987289821032160503898293516778748199064787797596443706874107849764183089362900638473033644030384918452865990839138416172098542021828816315829374588577691372009416074310212163265949086193135146108561310154966364755892007072701593949418935302793834313615878112762593892281846035955313208300917510753210754695058182234975514539278899027936063499755583183921743658234143348535031076139007111045986159962920202419403037642682474188354526288161989246560676661597637672821912950276645008532760912983114616226454128753166078750769847156487017202615061928769018079122730189863879590210743266534600946102818294058971543904134059288480460644678723697583752723846276939048139480375471108796378277082350246865063590523020756015808976223044677370743232464057627034343982912312469996649286823361864668131379447979120996614415248004699108855561363948870764976713807250830623349538678790350846318318181666531977911509672160935683094315340452188021932782579147069973526761674189673636521730497048072837956337417136516412019453424483453585257659901081074782247708696152481307399995949712741898763843269344747996597152318866861995086613011744866540167853945823628452535474750426992550472689923457009521464194267401249441904906725062931822470235490480243408274271232703185465578758466973063571154798111620560166409928895965757851041000435326357870542856434097201136582455954096752992232298143453455071018005757798074889026940360787179313271399016186804478561551051792875668491454958279014739583379850406123897542632598318300083591271667694426581123836412230759176434729687184486678428966756210085362650628001962125330768849323196756203431872423784872089315570706322513846447516991381454113979806178962370749896024604318968837590554823825251278102470310582126134202906952909667457917929951747015669397067919782695745667193550160706919989306945643496783428836851424003481044584708503370087581021736393475539403903968507475732494951491442327334564355645120833747250503419187612899429496508126767064455969335417081672275284846917626519726751325004510236541675716178672229831262214855772621091069635189738997867152189793776969003466501795514570315966605996990941965557138355448217452000606959181594619873101174423789409781386854837918739722343942933641458424881503720314010804874287831231486182707870570461810261351695034573822730909360599698949524574147871492641670074297409261916351351465620165979185178747121154878727312062238576718341651184858538933845757800677682806517202428109737382194507645743153221719677507266776612759346022557623445152670060750686808672461308749211892199947273751901118577338543488058451495915386119553710508102010602932529822813333651314384759456752324124919564874049940362441633902792475929215734292728340150395833928051711935438833318389380072032628610384827915706604148290760481784058647911877619514234319454484500059659787696798427176143347647828684018823889175122902509920043367585541745709937510587159319586324774506837917330711737868399026959811633869232455709752877852404277867577116787521394695416295733356432993002787515367378898395966371666394824574654133048642688433709541796102193845431290938778642535384746907910412918928235383626356078703375721545562506909667096192446242730485567200260984775338829515320631321627078271632256748300656548552063289819751379501182276201809732300004907007353659092146250024624844679011561503961303756947442453664198240984458892451375547326087645701789663344774927371419224072758406034849282710611623465729042691363977957845200772933524376090266049019383298071487394308335472555338542497542929412265967595183750332900291059066010252684954479269300636129016637236621182640404298822166389082398679603644074655818797394722707897947135024697782445114178417720081966849718505540497584461216787136351730279903504840955404387058601726765573583313849743200654176465699519905170132810282976457566886067300681667555472753727215026524826432474840014763077945847283764058702622022546462404450107015546562240275073242424476299180073597703479807367140081918761929934791219329052889280895771235540530233110007900259023386996862956221320905364386370116529043505591899685520044257484630685960625313787669900933507140750496275129991478300342665109627452401434710953129094097473552824162413718678498208721955285795408002102691210220131039955499641779726324581323794831592533909960771921591869718638593925820616808536553794933519297434898480127467279781096718494923567440169572040544805016491656916440541406333745063976374460735917159842309433273356488327377019570878604824443630916550855175640180488215040316518034821386370170043232952384490957740467046968920713850763445788778868115876151773273439888009146327238254703619130889001515299317940217851327249780421404833366408153940462406112486728782536967616428976706491039834221544384131321396810915850663459866865380429989688626935433789705861814399538213672172094807470616013379402285327035918253583141119580136744000429342775206746341738111079445913825062382566635686345988068756562420678208452855602280010333136781275693054086648819312846248546545713536038296911026010148162650134594880487845680316705351917147162116831833762875185068134385616001394288302236822167125677965064063016302018102413407009166354994066975467537473770031511493303296837162686540268976699701789283404721705376291641280601061166409675094372809193310745706824330006729202122724025719370824746880539942204915108093937821603915901348124201831434443617118222570920637831539995511679725855772436453950619213660672436020297477983678733695781333765927660400683202309365755370727460077322060154962713694243751239362908144143799775044255253246542757658362236820734731337580933702953812634417638102528270737735957427113026275236472981154627575389608841117704967857738387129964391535790540392171470701154777049069590750170203966365641518874358054637423329564657294407711410355017954812428694059217725227738289228202642123758760575072974831446757759296556356386833381608044454896876933446735378232801875188787142851056500295930185041045180759055065968680657556372932902354706902266509595018136266941057767434972683159580443159214333248570943282688107895597768977137068409829893213046592134194488011272670495702843208196114156138095403897685595556745704580815764933361316921733004920008723726943271836953595715040578692228010387617338991756777699295974695236110496687472182033751817815512420516485871143550673925129913554201012621032320746569868015646953552825473866915282778256838259979396321412732078336330638126216812521824513966036748231063390703742951774161643057229266949810012420064494544349068506523773941113688577510059736033507453880023995218566753814567693745983251076875464824153972004616124638312311027174069402850894654003434133023458796411249298152064097044857660632033777400961966997838503920255080498523834272750770870058697052190268033289130710875966552089271558873946232148475634095346673549498999050954824864710518226746217916645284693762272687493576730585694091315589257195240709679193505061831505487510277749677442867096124603235242067571810521410296460620536237906258513706416898179658236961283610191070315393465078177893702519981082774481240531883269788431637823073642226799915395173214383162664739052690026166553818708033762037989467012576625688662175138162861338054099286589118733878845358825097252011161581972943895681650376003268786023326488311960370788849284945862645731840592623461182298143854579925314836413426891387816755355623844895934051248341988089127004664273884826326772444633568487505748806003795033857559746206944574992178066775243197437673690190476220730904939559721385047738409410482056689030559836035699992250004035441183577704060942928988039662319465967424240795600494896417652922746934674579245421984840336112721773936558540616318986898686058036860827959961215078947812463849535839895496674877163931476779643929660449928775113735535322425634807020707492725891430338898996877231255809970343565562507623410686012225864004672578244783372979749096938843023980372130044359178874753192498093190263929470546183563663782650501751751483295318320001551840757301239056573119588656588183483081626353637664089150340094944807698346917410281936835089166561903612752870528936535565173758544261854222376328944122406637904043028519956684045784818708127108373017676813384728284333375543990989528642660277386112688266412177815770301198840823037696678608338085460026813700572439251201328092405928933441556450908557503298711757534267611370040294922827238698330446905019323046947371770472772841281977829027964043083118322035572520949673799302019633508458402728495227599703645348587356112171230232325553947604924911274744835743242935778253159635531964980589023489255059739079913556437740097186655978652570376333193716828455661850407294242575150381959103314820739964024565435232187939066153252878092121995729058178372660508965624661636201243316360873696163411008335905401938515243957391208040614137386331408466725261665611518559283085588854926957767306978903418098771543035214136945226335872128909096038923790722388216784275984402266333363960343311946971032793663328602666325210755117643868060009721167015540205926166714598614200857227933024004388094054502611108985764445070750441058954616949359356021450583424035369716238296291994947328512399603862904991745662032177403091512711693979709404901194953018776485999756552364232888922420200644009400430006643870265468943562678461901848983667889917181922242639591538374704136415881067340801674864534700553354553428783388196523192838290243911058830039388502803339373242841532769855803592476927578153096157095084271133337779312352162904002622131089042259654337555784076844045335517559962385042678787612642043225892133362727141832107453392760304209146535687266046442302264152898670912144240712205796347497483819857477399367337546221916460268989514458077546872761180879282481652624647756794365457907051855486977149906331360280704151506968425073283506036551764298595009533152600283191068763357942809189565291971271766700111404065539686562436379219286742068897502169244048990970415304112394256825357954735641210363213602117522901805168297654355794666704164876289094968327217504845876404485628411127660500729181581814252638507935750553768868775411412001586089922251723662019570013326188310358124312732999353721624790383602531493550990987561350548013541119988440001552551763131701547896427781747852586035513348971977752054586778348528631609306181406035831722791852721178831104694766081625532115089720501507632179361723337970388939829745116973777172068970063206900131396222025398322288595838286199131219376599653776028054725852560388066182047665696567551666697382823755625067683201590460087983593992837432946478575979014368849593303530586672297032064675561200705278108928483108287472476202035484942968322859759817839954139779097647595622485740305121813034638155358423054104734169583796322518360457652505021613319221845369884675918299050326556205284196723039606769502460768016973383554380172133429272266155518200178404752243249311866698232602659178776013977861122691239353998378402583206909978533897854319562760281347509326477789063745273978279887054530636995326894080607837139361494724726109061156982377438646634798449221366136141211729497809957314840919070140110424470341431043215232645777273089037154631469163347300734604301518021399767014500428237750290224706548261208829292435768496700295163161112914179627018467928288175373999181916849752938392578423125796356355924469541058699331285293728655926639600399539945501610437972213406941427122412971700074732700926726014600088439094571803365467536142642522293281088332508669784080618275469799389226354417933410973512725649454193810025826551930831328477752184539826675267929666015447154114091799273663772196839544651722432252008048609614260978168853059401261659907330167714166173346529100696629546336619077706993122208492520801941764570815873156480911710117985934935186809187743823048202247086448206213029259556648295541491059243424306954043742155609330429327200905896723115752579706110124270906093976598254353411025816826757580173147798546205049723916036707947252268591222232758546956307258943005660011085771636447762798015002941411830990170993333268947885462535681511808388948068331974813731201555636749497746168870344472986311582660419222287592227493500538436364718401372417206232878918502130547621879359089707764834428837628970318813876342332006385425152833437902792299633933083572036164989774511041967450892833340675898672650075910421313279352521925702685994033999157620280347056556954773511793614199488844213426497992276287131124716112048009241307225749543449554359510488314177190142592867510082192643153726983869417730368734952504451635002753700534760644294816185325126493196772003465521722602035601162382394241880031915814854524073554545802251978596381973665079617547015663996066344085994435792853348370427338092208094438414957510308181933712048097985352627187755378570030721408646103106207661629918546634584038701004034700101566719434217238723523981806996859191161911926930580006984682615287972536661521973113258044509654054707534499513109236267206627020048680829682094083577001949964384063656395524521461894441953900303236203736754093150504431122409872660607027665168341876076104017746823088121446896519839760592071333311747618610141146541661164306516765036455238442350640415216464077620027055556260542599090519894378469221983141045682798369528399195396496124123189649985785275836713980412968493695800733003556799522080836742732026709015131572671802802709157868389182019759364886519591965988580416572981046055462658738021952013835576847109975050404644576279217458944579227724158888487191883747434741231173091122342068523614023247507384238939946763944194099083488130790099808236743796000767950852108494085692946154703497689005449525412754601944702141776325096693176213966554241566611166773386517643328049467420444197731280432115384703270469380112550134378682984366938997510341016655226441927945001264910582805460433395446595631590599176614993593577234874676057380322203316909561105640416645194995893500299230398774646616535972534277463149817189208117075704086410759623355182143851232314750584086058458174830246529785196774857724080831105755563348899907896954399011548659177043042586166070277052365577967198679222443407184948327425883050460053763341853217789807523978717799255245138800245207661549950821966389826760132092215677168662132668506900789472369493214093729277491291160719551788115303983032906424671926800233710317417443198903098395379438866056991996776332272555512633975016793380282004159349589988693348497515594816605017989074031448021816288192581779486269943569274914909491666767778041577808588939699429302531544094436052770041316144349482577335179420781290325380815489118338203378003439786070756123423171289826491440256044408687929015604456292911396604679957000899466595041516766714662874387558860479821246410148176207723826807702631493270949646838364417100953521936187063053462851459462795883617828928478963358995416665147496999920840800874202992882384143552486854580864455818745021221604155366998728131431788410163918661734704127545619890045574879448418642381579182716299239267568223203057125050643954503946128247205623383951962275225170476618077571325389559169985410801599444597361236003099918955561357949773636581088224174540666920631129281777194593494647144346721808509422410652911220246293037141525457084012943938475433216083361189505415571873355107372835536413694569995649472626307171692841440769040210136380740471995602107162631100799123717553039689751763484380377552068254980817079037433587022994304446664031541573696370186459729426706019096448638106745320546015002207833136066988051612043773053563912492463578815702329141632822317087754900022916873274575714944124426083486716832468898996738569618608371528031343574364936342811832174015672678430513663458765616528704075570701662381913072134470051254066091843097013925377394028215148379584543424074945154690012530316885871117407499271424528209093857366144616706320860729256016849147719513338416238769300440657832005400178255813825523675604714430084071747594569190174543368314477374555995156781724338351910906118175907243448109505588248723327594875593911259649559856274176962137263570193941121208337041112130886766369536122122322195555049978234329874089069786386393114188427794777355459926504390821190121389687970695712784428818775940062968658862952029261075568801312174182199393086341469193694977925342595625028478107692347570442254195599830239048333988535222853068942340211288705182626918528084111504800570445561690260789383395183554831633836550540302907116664488742538925742211545081219154002176210448985446293100785247939326209013056894465927499188357438233978405680977501954905175836789616323562137699839343090045103704578487475514969021638374068123415538137245037767169317867962410031700888587641040095685332102444976328437018177049983652214599368253849201923929571195240406547132380031389362489454986095291257353534824685833358572064656529644988249186209022810399334537429395251295760438689162256227880934155624999236440285114454012276948111109012152137513997256602251861379578681838289475762566333862400242442704000192219914232836242508106288893503739754833363510681345141946167254200062494518978969191442881856118002793946037674742668683485694749441411263220448442871305156124445832953254048104437309043684604043681553170238245769182585274921246468106293929637207286190059529756688375818421714465078351801280558055931986957820941144768817703652978892361799168487127560197619136351987847849406960907450488673721133646738268904874948764918582779637038006998124046768407326644607425451792705504741264283327287837801467690191716972917313443577013433293703165507894519509367201930300100299256546266057082030328277828694852533686998306633570238820674826684545080283825568251202928975296144369184406427564860666469590131804795405397656790938817165026985633163352319144046438234831900946785384448018673249135220977370636142961420578405238333333296195601591962998308668091066046623110216128291249685045256839964904293483958787386036609317383880081049428910732809604966498013342879883612283939925989362871820196591573350645322069164722322310388955900048276763499214513374060135086809112952036225008738310718907486927840781153513563564497390947716080456041063846188100782990377298708509916795325377789442632628741519401894472341207882465198621315273886075968239704987668505950566085051294884258296780154887307599369003037241040481094042057365927757484068903270140950759719483353239079507109004042827601809673836200059291107686416802495440401704265133525788760213258405326658079043926719412825139671650689658119413455303967521941495030405557601602089200910521354452530787922649987793457086348597425633846953740414911998932117331403129627696067179027427186463052422726273571486129628241648469529037807347344278391371231374289718246461600806819825746076590044134066988086603964375296066766901211919500991826213372730887958145146101109723258999463811256425861370982809838085534187124756086420002050725297882634708382655940906679774468970900142380802227234670456974272095390256256348633771495124199722110535278738000508946345142843868184358332671573812020961072069988891502958973320505538028022146390156206796136977849050134903474313747370533192804093806844404815141294190940379405479492673203308483877391489640147817002367819475872282884785425551416886273908250891064995001994074467238363245416424842560021211878536700854360628210966172603572038581277496516330324859735772435470925119636785643665571296134523331628807657448076046084082479661783771138483299706793707037892002142665231261813372640744111188807397234429250265322149333208280670090538518650933300767022439704499569527811555715839266747351064489431400173573607945486332078990525242647081347008439900809749461722981268498843884522168671296655675224245969560414476597074653021172834205573914638766446415014328356059350459012561298529434479718816515539160978775088127394092812787421703917695421448743821828216121073433445704435746259837661176954144785873049587901569633710790285890226538153764800464526222161392010964217899962522774941046219837393012658532334465999385067450812353635332250428201038422920733313314155238012885195377369264824217906171082185394077276982169877185397631524636042568384528875817574408788189660977348687157097246448369993267680744129831345738632085481941617363518476713317159642408918686485289365572669566280455735572035598941634600424698870175186840389501529994449001090747306323150568802004097236624632045239710025387441064589518541351508725428372968841418921605528200679953317236902501738216190911569963384198210594020811925673733869355948969935561860110018135758753674290346327696291054659685901014731032918472381049408637687822752399584824061662002217325515561786513898855396243936463455076338869502948972800699681108845742638965926205553048404940571703017221454977079837702733788866250319436275296676860269895905732868922429613940669294148578473398369174202576051335835631412861110331999490291983276445606871157178436829646018119686545147027981571096509945853461448311761719733137656015873444088681755222633908367586292560296932014539884246681412360161134359857795308088657231459482262778947101123672805698041083706568686557474889396398681396263600116895124056166289030027963352886614316280462791156613519764662308492173536996527395760141630323322369752650216544542768555472747612979974843321528878720464969765781319912380709296394193940604438043324817343705338782402393225754381668789351853215836919101779816090715547163349893261388868456048786423360914239157424032782768812162454387265337650062022964998974327572477218380288635712974162266018409583886350277851425796598529015243977215668421064143738128717095791314011532694640030593440365954876905149112964278222518852122725018218642003208097430660922486206463924148273027965436487884651562677846276148135035133607455590118120797697308563643023474072787319292898414520937781652358415458577441786809395686496078386563443970180265970261510761006087588644754414864992529831991969748852947279894557365255660451207775715641889762435958059157630876177092698773618444057282508948721639629335573019880139778651018284351705279289421117067120863230624594105102487978286067080970847533888136951209208044931349974409111600059203044453654577944442677166766493361393622030406501776430075767750408845094111326577471678868982385890606215050245415659464052877817207161627006916206705606185634409976551055415712150200688586840081638583182682229476065824781539591681855218773343409510676826602418689605095629800050384853222660222707735613572027548839955451449597652881685196001862756549599855821572864644052809563654465846131526964446510517563903286439425474478682062438611333995291320449156026781298910178806663667503253031274316760845085786271151929136530397418486931341348105249175167391728584267115912540895850064465849283279095351448507048202615149208132128140324008461306675430371423587232568359669956798759007849507084158970858646166073993451343946131731226986259471204792434962565014356169501695276216791872599168086235981053889911832696824419164145484251099789831164844395002559346597868238622980648872996857489761083850113425156970102969730992482872651757255471877463368348044845516449323484843015625628436171920883273201752931824994933851535937209225597000034542173121683064779576233016517447305439554111255818350269459020872092415776449646849111724753348435200434854640653326729457583078547805699383314059802362288082449749414333553815748700280724755701588813559660591821006482354001866418911248421275462823732810852657095317059646727945873444360767691337635610188438248511462368033057128261599074422228450520094989742589259157604019142236471160457598474140494457348226155113787405884368950868040099465474121500987902146166370967518478424968614925824452224677840165160645921936374904575459885156017253305562643376116666624853449611453281565723190727513699985184743704834843142913959226203602699092033897985823470065914666870488825987949115106483424854512960326104947431878719988045949514783784811663235700425177537789812942888609944508209105169318469850426630488703024791017414406343175421336777533044051649324709054800808859410529315924683269202445144934238457333672458067938416966974709617237713957352960034461321832090102865452869206785787139098628903562185135003878013274983584160827855474875447367871742856599360510745007850612567251390752480924962743472089918092328155979036050635433078079730734937416500410222125213653862296211589995929085038260432516637318002686452720599380851211050614169912998563281637749287506828236688417007212206550007754985432596057608953999388511349984457992073085206935034728383188948437782642122484681593555901602469617764925440059314643459374172475509151961493216479181825957745416353612843122681143105240482108465035218795221964058518081539527955169420835140427813135263319532030530535723979275894461983343160977117619218274928775558180170760918946694307483653810768481118116490863629685642256609813973425646701838321124132657470166374846665337992985290922097437501621698665205803815307814107288711916169703434937805760254883552465391793589108649870537779120239910086760571890404512910207800698569633935867495036439584299203044093502316332036431037259005255835361310636614328520016531069091867999821367823552625737336472839186358751280534641069783873601529581210768077296020760275015654397735007980693514529241646852416490840646657204322806213945129260829171764691720482311572506710880596742574601042750182292912996694554513402271742995051870584853868006470973116877435571469957644569359459422652284639036693556442289263072742290278306914423983363995194526893441183909458375859514631802689148554876418904770282635580796757873116681745227651191072235086849095482218881710271111905685628311698174704795550472640398079584693376122377402883957786723584408074444253761136492449842428204414946996360563520773061434472787555060957658315633548174205602329526639670720397373001308152459082925308196702240730630446250239543786968747112909860547197966557753688841408396007967218339160207517650867232998179944031490853192304948011044919330578396676362282622163769004520638426859241309873460653928989448110403821547123080753562168439196735717631117051632534207765910024640340874507466890473702803473630463534425616184559002644726707495980911537272903058894816516917809573368589865335561546969671401319739685621398513974601854613705004486790702261610416347464579774015239455694880785195320407250228418479696540361547305898648863359058236647546746690669756440981863409905106894084550161661821916093429739892330226225417239580522966123211035454785381367378204805366199355032570001860109376294728510934099019698472247675537999352398270731246794016569169499772068409986520422642093647459361288184075177595078899148905797197783597870279334493279556984760352700388074716677352849846524283011026797038490224601227728080667144505212521876613531060217686543687363393966565534784107422684626177847771128340596853305414506164319342508029365311124950230941704073083138367870062987441404011318843190114646621869183234739873093101961001347587046656478206298228269867553649552036635864990935503962938909314597985255892027453842600935687543877972185537948236960393060851708739579597932782674168490333578789121965318715718460473152278923976385766700522238794527386703869000050793225746814254041583214566329635701991918683853421941549619018244636988453527162533946601294857487950531301983274690577748483587161065748665912227093883454400410142825314090892987734751727460315171024810204163377049273322030726672934809853454397846321801479518569856911075281765394700439324639397304160083774150827522425211582595566097141216246504379166722875702065192054560415741312050459006075027079096563579102810912717331637353729026872443980624043993834962857243107884652243553304271422328186743538660910799989203621407084096685889024706137920803573641750092303062604087045155004397123402772193123320315355931425086471285075826733415091055789021726640754376959073266065706033000923114812857410768131909702881225179648962977753375843069002224679705603372052698188239452731012748559451923406387188016495773721390418631495407105334481350872661871711467220045049909340092068565134566557667106738806574745608372520300282396953952269696248231443325255133154848583908477390626550964011588481126235038510662396824826690423823481505907061239368305001346237115087397900405275303822737009003649417068357232278506933227074432495520645755289001929413705377772284479598254826117474399192557303485282321792966503046399150471245101626270548556581438477099483924729728425695116061769180729753889940476423135916260590332876275815665527089968101178782021710639171915545265500268431711139018511547432325983182742010636227644642141435037959406618165785767714258437934027305469572994790903430027207560260455293739913565571502094658035891010387644735108759553122057314234150357162802943710731191423912942270545203824035810325168081115042506264330814230118482594708947629052086180431490872244641536406344933218906961985745997210987919075569656101642768270592414029559658793281829985793102789134677559241502249032332497001049240713201091172734674256249456257282424016995833480742972153026873692053500084921078671875315180760469434267164403360995794182151514401316543158191165946251013152098010173262477868584685102073722024775608609435419052009985562896325373317661054680415260749876391086903692197794008917806565530130591265484542435608299981403367811607480221880149684369584191688139080529622622594776790315493575683133724062604796927413557174797195307779946110365506491371679285548451836496474673107152105269870089747804148668683592059647348040041821121549373956984484211888852377569891661076243453296135276120557575266589498864499530328650139913838312293026487852666605328385234647420966025680870660744619867950058965644274973606477945062543978172606459017396363798158592316330813367677940708763291959191170268876540212172301922835123511845730399510554103936492932966247176837814419645375163776835028980800262250323796551792343167345421370421984646408281000989600955005484111542100193313937754983095627175892682034195971799887717845405403187720414575731495784911241749660327461274649702857651396782424166639482649807299605888596646806141589322746219514353335437489803078474681859526101323369083753123873799469153289792444881017664196945532013385960543922714827814213736800645760641280450310393622126630717062819293805145918903096900556646311200291251357676441250903659403849798877015677427836438147621253883070447433984425413652603335312703985435446076198043780871453420002734203470282736786822994207377958923373519778896939606964626093658482215360050430010741001310154198032707662937851293483408317739204524401348378262602665046941616096865193510633305037287230494481716314676437311559798667517700410748441160952371114158784089696260100515506599101625736555364944717590103732304314544962178618757238054257639181105769256193271369347761815445333757657049642596385308131719397342339069264850329072338583012045783818600959604669920946549732609730961614629956668400568714199490812875627855908610673690996362641722650788532809285557472591933414030404344085515062801492537371193242909861709278941737777393620434378609807407694540769139875055040594523506463731583951868659907555635508589546379415423135854850530787607217679493543156983965871932185560946818769098303122322610923311240691325627851103458765183727881221439274768861296958720031477785704940014628078668993576583567177973279972794930521914337137350213798896229551147980997857149537970555282873661431527196097022674202225705273124113093261810631077138011236145945253735303229950187718530224858258298725039034244673116410923849118643528050201559882202291908248828126774367839905494859157296389638227981286655035956299447050757924923626763748042532908052382335097756420964953311090968222062576136443880113477252310871749699657163700498607267355078813066618404819156405822162359912535447058385337732857367833135759283800333221522655469055969320013911440844534482101130621828513836500474579936162915993126484489763376513431326237761124546750134607632679328238871541463491771685095395284889168542785375979177758901892835117704999741210742132611429119755408749901809556034134886185673071114352960631844325772650234064539036013073514000024116622101330978290083022772091628593165641202440200077051439282008619636655532137295634495967672787659604953540998242871543362104392045117854736415359242579359321419708655837114740435596549954755651644065787836872657360604351140585116478737684083029777654726398766999816664191524473218923908913566431087863426955967750320702127119171215968493473926634167243388152109623106566329576138318461164559642779568374563463431125452868667202983385247302142835083570665051990651495430323684525064832424493039890368059438511935620016312875205914433144208372387044551982084642359749663982750468711726909003437730464375797425683712032806097063189240724071513820603754661586743342725621361659046330281247198129271696019591546415767258035003350202044383090896712065033824580331928442165975958843037721333805994591503612540116627392181802072519632121270556352930852310422025166290166580295436358874441730059685128242499469175044302366996641899220513692238609440088046360269230521145058163749900403132778621006568481265255606356408357376794751568387542345456561172685764170643005689810813892655725846559973434969527034018416001679697740176437973840494974595881551585997006472238896800728896127660415672155197437843031862650870009479938649592000943606059676826243019069975240340869004594206158494135165241499770639476020456842761150707753634740702134978541745468195924071319488753583222121456838067039672186505521948341313946972931601508522373720979570603593563074641016352603156357964321809818881030719580424273683678193538124302914795506837865718626315676106443236487700532098077080177343016382452002327591288132911742347061451562299554663195800478714885992987935022709866317715246335589298399368682839162947415804477589623579861832505671753648849337565416009314213773959606003327600720374251767521925844336275902157191658090064828841326283800213984811873871071701501217236797132455440841760715177629188538988287149148236164445797957799903966703611612422887781033493276481586965882908264488102645414162793511158117506332727614675852912971012098776853415513781126724698104422990545662163006920463503449906653517804328110203207982712212745767022642010051523180294235153197521037056477414628132987705024345764558723864008387318910570796736739539562516657701621076434682096568196787503616354524396060843384759082953545828219517428378844065017438225323318909037863989518386889762126618829210152616030922188884462158361142677796423072197693801209160312732065369115049052501692817446776893151959616319641534280890859913069133448618454628459652967546522774767659562945506314495909691483185547310784726801222029851471092675500329625619577975986192189832725793153446955661829796188815486128416996680309211694081088673037871217674746443678059489730320068386111250554074989496815338933006830423724807106958564269308430480534750350382055133300952060717602712363788766659748827493291835180853766895075247413666657425245401352754442092873715718168161260650751048315181532733575367402992013139728129274259520889442613251015068125624503920075825097949659051053176046447940466705541668815425904819708356958913591457594250777453403819861498898379937321901789606411261125921833981262616212411914012669423564213226660124398435984584497317790228727659140395159392011744734068656214967415352279396064567374718117699900351157315399598591807386458057512585616035774210395080459520190145362888380228215094834422542585966377498947785244735326485932947143465611842367444608540093625491035604158149012641091731554531856965729901232450744011503333325542233444053164275136797208424232191698596288506580834700143704376201169460125765084949548508467912785488451175801299658350751788394106273100357631648174972464957680124495730860768446305231640245607961440692879976932882943680359276819180060590897452313273204133540877544437112283385310368404035420857839497405563008660733017663976236496143971970284933857031698289748835702971302385686293659256394971902469539257215451536861140019159627961422757671310096053804091070999765750234201780024284472462648584317865606332918331657904794997635570291775760065666109507528835802302369465733815877794276550533737403104476172373037834073870085625430112542580956315095467957273723283912839162218452646384266123285444645185978140096554791845909123710634869680296531143765903718286097778086385993713507612978787142534439302031411628165109796400740893124930947891837961742703485728645320465651389831427606705748583487316358055923376608762105452642642879585132323914752615078219965752276618565840396101095605309545526005423820742244430373547982932709397531979161224210513113870178436928647123834011019944965877463220050088175663489074461784828266593552879693282832142746662609410691802081769907976112392639023895267542624306414966153389888615109002002559057786305687942191727103923664064309130473200201990786309350721151053121594194559593602179302360698549254958073365237808655818637947471232790769692788274442325847013821476539945802740503550550530309112848923112745157297888800149578065118361702225058503548785627072144342798664794498145590893553447924332893998953227463511144928857565019894423053807818964728344950637992381344967095067756321517996304908196290242698536198711037294992647062640234968742700758585785462455303633794488212766479205856654942502144326362133312520546378389311333297725639679355941028486725400504013062438765835264548097459977740045496982756365566228511585329859697746152455839728204738435199156536520093251200737058295248019684973204440597947456751080274972397785912521647885349334367481522530098090528797256386035995599155003007024026890102677386499012263613800781601569284260179870303556151803701214612452371952693128846004941636414646903059888449622679331862821969143671686962972523397160559528601361648270202705162183159150775846453745402266581622379587582428033179687669266840265295378282243841771275155344996817330223469976763390313184862041579735053218749590537086266538379539585002498632081599410492271872346291710839809435880933908285559030250211232221510695244918459243787960531758205967470089072846190276265750995322786489165907582976570037447642460120593296214523344375872641220521327989630323570538041861697309566732904880571773127499418154293249571747121663317356165090220240325241870442596595985462336701633501476243686579680043285302519928736524969950924598778171380689366417843964839082539868217807473235201446367940523804719489000268399876427518597752779239131325755668178801743753475684644964409825716504380209940876425453527111359548858324684551834916743053043700675421364499450923021184331151511874881341231210416759191069507520197824294036965665460038706238391917392137901917026724156617737464263875742416403719452907551761544705580689846563130125920249374859404610560670151444317803832007182498336248327329249067141521754001904403626413621093483999809098261843505519678853412697901811775756755673499898849567346935754340811490171799610685916305657412572941594380890128323618838657130601093060754264938949436972819573238581075408419274939566160046571460261581543944342102676025689697938353073546444440076395344454748395014906543541045772708480078575519225973168087530048739442842017090621064439234223523624225618943970756642143457925552437555167854382301800713279685482772339484190146226792735858321464493475124433132806026650469571141303169724264449257455641463983503187950577993464475302420078146433555157213374391714465578537121990381357967799079243057793776392160240734363568101549778974049623818093093834388950236020869858688123981226009482775184977878482692308023055069300581740922817892158055812955982707911545314621077516415654073365725276001859736612632417288278630494092309482404947859198044953606066434570941699268204512609053919629140305962592688593947637233267529681764392270432427842673675972802829716550121082723427288176729344032673335545443529874422939622074782659030761964612217676447689032834740268846320799147482322507785134521097675896744701884256812753069214821102026995262421391878935190128800483749947567192905749007935607350874631522640246797562529478889645109759419345583053971997825275475506142589596334928173684435787233810869235466996704616313018176529573993971751030015237087087099167939887706087738769154031547311049461479110346458359174059057839772652226424351036988173158300757053287126543296011157821123046015780524140608900988530148680206425050289585236325497785398825119240048475188269059477915463130669119331787740493976054339719846815036071859757419776541525230528996543180000829095128785045760407333680319525990829382163610674467524218715240461428614750093723668429066630830388619524551762797224619182381128678014288130237627637951495269518660185139156620132673560408523377123965592076510449650593896008636955599958275750382976199842182008173507367867897303288279355287943838182907463964315037009399359344198368099447373671265779225873229287564220028554483332415709317670397156811006059943151227529235823384933110230416849851926501753060502644605955269397985732882163328890782545861086281208509570005514748290709180539142816493960461854736534242075560599207062967181071305992398892999562395889036352201828800453726704422143309927191173981178481242618799870474870148742023564784643936667719563508069795654471913619048105945626125154658261695670055632010253660716346817422053865609812705457428062440901902096133594694297714907009849408191225922324396907188326051571271592700992534104951532914738200729792454604971663763293808235822762730188942670988018705010861508753807314280279477135699612454821239587265890418875603260452997985780312801281819584999306619819168985678291849046003617533661120286034603096095812721501262958665904981676664935587131117314769033623606575225447805421836051221301512670996795236478232966464085546290814250887645684516841503505596585151653109709058618745724009743501367967894233767831696896836951730529287233654576608902469569511598953429000768229015891000435787121372548551482604223443130979302848248988307563677144894743564277636991641409968051553314046681100432151777711719208500583533771381962974838123557723256859221921452818278661796152660112938235458676314768640658531997208724644470167957705319087418161570035738979080124392711860761445095604380308004069523178521239020038744567656471847477536849282195838853689176295154127393926141027514056658720092296146472149317487797176464090462758471080094786384605474358969076560463991499890068272542352805922082637086140670248281903590884583863526089220658050799468785608588210108696268835732315595388697671108684608676812634714358148843205992450245843122858847986850617113544510964387932126733818405097310427252349778003110130969489423518087813182892445764090236908384524103096477755721511591632717877028251586808822297639985396887978500236866520157119716141821803587966262788673970394083294846253560826039837232153829846811379835617539269199835388271273717458360045002189643960410666639088031601228724357966755902733895513602130314350979340498773463703849001943588083473731402612564168033902934846719024856028783334371405622197120927746190815473891686645296590186215962600327197642847174846148148886819424636606722987186025722452868030398334549553255473834209330954622879929341162658499540573368133792277619549388776541357657769221990570453764735552128224406478387978902646225701974342572156561417528420643742059385148925189092012381782701311162763099524642712400890692908125543402338178307666642899797772164320012836979167461968104837935073055570259268163415934384565907962650514820983835871648309472837536127193649689948752296643351233184053766966113716329523598365841642455037981697765135658283728481306130441646761627008062850921765795709759070471602048780102221981657792707371644251998645916692432291091555643484727429033153644078481682668421291928780491218988112533793297070624387113006809060992846762936104859661528917202820368516492491102043220730226106271044654875996430243205757155443337875721365202260405065946198734078656628709499819225844258586139901315154180704982868829921773565272881152497603999030633047398162980366739951011138163802406206400199389903774860722917477646292989214826089444828812792414960658585775174808248277570951872563156360178077875224630830495560472445803378866457216788479355400193555923245026060363130365507422370249190215733142108890907177764334587293502765748931041183914137782769407994305355410971344563123373773528756118215047806049136841796321303571338194506190052787474073824743751538314502872561338715282587941778851483337866787437720659458303461240944551957333313219179027135254764100942646388036061625595368235242432871142586109603405728058216298635868240469159545965238120727861811516511801865159233626269144730089500781939616224735738110294161366582392985449131368135020270642148230091274626701540546966490580836611774858676522116861741875569735309294124759943992871246689907821783514423034357818299972015767741505756785940508848653821927037351630479183853371754274190899752141322514215461025929957787279392288390460596167154118615525268933865316515692283531849956117701564679823222089160336039029047163560647759862294716598441227425347256044292088439652947339690993561876245698281305161224284219710158986194350165862898264376481208082061650920820630226511280634815227954841340725184308583090900785043433457252227269698648765064995402883573566486677972975473435223664472454528045925132304008270062446666799560583386406658917704717574291400792324257932508888991078120604158886086259050296433531980871320464246881624714379622069227235637455840221014610028208165360075843358568094728629028539802999458048207583647331531312591848327146635649602450602960969907993168673321728662816245629289668646023178675632736291323570081085132777036045168431794394364847321685732975630568763864427536808698912353991058940245496661724104448168690930275596915572560949660592628085175478828670745947365030478108036588639636276803702645189228234600318843692504338878168668058552606372912102981776991257885977758133239021175870229018237588616323112192930423633539001638040620069788103176384254613187447899687350237006872322716162929146499602449505131253965190047513383658431583644841101889744981095305994434314804627314177165886625612213289491446353432995452860895417350974108345713537585782966724644929294581497409894635656731039083439662316635069281970201810055219248295850340177899124106108827528420521226711582735897950623583271019640659003622306957091072772720231187373237753945710158286025813350773024195984409546605995780876532829908470313958754610492619960925340192466631958142554318855931555886972654190267337253699498429780275328044489713527695116791025997821646034922141505980832814159784341362936967576295056683836196916388137084915183850298165770811224234476658477213622135460102674748766586318711327126109472726624911186093515717848338880768944484048195837693654878696175634347106907037001539935510039293011678967802824656899354014189445935321309505227347319376371662277027040136273130973498897392075280997767123190667437890012229655601357130342314656700545459905465477705610999039994041455537366887141194096936518107567480978955295117867439870332867475619780384571910317348207378318819662740782694036247277198421225608974840812631685963343331161834770947287684142014336713415082681631463827926086286392483768186141615936421332678920869258174680561973685639683689309271332760489342109534767929228949670240286545946702074389944807976804708783024304995313009220121407841589904395887149319274855614728566393628049856570075270393572834191793823330196147375704871670156192826381323117804322360491418226536339011556021873833279554887174962194814465829307740191219359742639263881220074321549339552640978936400966263234095912788819584952776681756233118660976846865206875494161841098226383638404822822715896703843416672344072826379869079211538915139201857076723196237018162034315465578449339844119646499594119463501039707317766781062084722886767102354843110169881638591363149924973437470980550489563532998384479582783854814709684104222795990348723544316445969868075069523316763696490732909318985847228668985230905341751945835810524412598747613961841143552220531366260711036837895108261718855255468917112332913718027244912661150871834774516772813562475385648907355498746326173932831121915317533221240796725958570218154479004188918648489642281235337314669298822749243524576455086292765112940919024143976352197948086062886788485460469208037933582017913385138245283483872882273374762002764911659664482065134317513639909029522233891099394614656485709461182600689024091452523005759115585152288276534407952948640955370342930955718998736909185913425622146682612184062019471496388917204129917627581469211045584581502484853074483019328907012123193846688779513627906969546671071161660017831853313246734804724896805649853434985635986186575209627876657731037945261812644182167078240580726849737229935284133896950301237461821951604132986369809072329172265106201289035537901733141014719748882163588027632044797339217846808534666485175167690622512413882676486477292719115221054717548751925054227879357763949978449350756281100555819862131440460820106315471541215844954033846245546814697152104288019960602695136045853342579078936518968604950483159046757060112354155680113708117761708677183014277455952090288163729023112077297523291385817134473232318578935898428278628105719640169035489257027943917384270419633446565891698728169049885799808107764716274005713427206801495500102667505732887880650563156173704951857326091768360253141280644379539050253744310988215402202284304078084977881193061913328994186897016479570785417265522242932857025236889124189996801494641780796066907646121643944124155234501786068767954394036294661535343830432243246668689281736313792368318804620801382725558318287951742604675446144205798572976016761142892182232583010903240194088537983964609648179733387464829664934205549624559078185848490685948180262722779256126599632294240769934419129968749685328309638964025327631430845251210486110950374859040127961421475848473405716740504239488919256509101714866102983215068533687618484812924710869577699538910344351353375119504470041075965714747340022344434124351697120535888871468492851150979356132349936079113148180867327190766323120310965111845112094126642617432692131577989409634353165739723444067652249357411954825786534717399486888458131680592698294916418797910934173985564419966704047771596167686002368952136808984861157756806155082421393306811417777788497704056112236156244572071644270504160464502705668155152719098109135198083871959092406825822954482111959856407418051629128601238709145682710931665109241556507454270466537395655659988608658665501966027551249912977104898385161730431899115788583255173577629377679256705596121925364575863535896676888266892627425743169561563225885818019060757473248202535549406200651235313238058571962302006077642382779099354702982266463747647633995877470054342813026823589039417453770918104181845524701563459578946089355349181203152484335862517727864979388945420265018699619484064129905443487566298213221651802471550509796418551203839075663970226325962560997603009635584299540888204110373396660461000615463111392159243472702216177716372015805202187754164768331733571588117410975748352646923801637949023677688641694425523901171835997344396728275864811077988097146022599203144299017079224095600018482807577284957781093279425728716002604644160278173074191453518209667396883273279316575379218637090193156687921757307243683284359613989949272882875833024294252875700135794462715906849861209287452986646515448916958816987492136459390948398187723369117299944008730680249884754796822565317701880968273564695560979885447067062894075973190824578673800192224588171359035586265758829153202815980261381871901463393297795836445796115829867527314063726184582552221421592761510956881947738231610503060248519694129134413108128037438554044544919711579351152662034307712202625852974097558122485105464681076176482896151065378817284743770726053214366320143751033097999850588828609606024599618910408146117906450091582690471984580662233311126367180562331476240275234098230409325719608810359501402808377033320610486007178719326869678189877219022632085966999903739351715730002434953462680798796728883424295167834139545704804067412553345172395696748458678525886615216645944516317829155153145167688467672200806659388146614997524033113597336059841623254508996363085582883778060720248817322703033650709647898135394185857305702196311458193124285857054640789438362312207643073588324606474534943513299781462349032927876375083498373993284190031793895953039959348640140667276007676003354368065553355310834234154503863960816098408626057084100164837739140838452734115719586315830580293842955309905403070951150795410141600252073083202799009035233039520902636608432331271322777278342061874197600380836794280386647957030522001339894847873821073712552707703046680833669477467933808391171570328575910803114298125921850850015130659119417564253414538082092126365542273030322445539027247416745401744526174205741630169570359893457949278215733445794432547959987205735728729994428908873036942194197309864788602441516664528938646471086856309480832913710697261761738844974824118352844731732055611825874295318681873151488527214364576517487060212711541302893730497790484253341233624588533285939549124041865210093373660872127384547388353475415567373085437367893665285005932016359223863762340047729423467813248320398330180409094196287248864031886151798828847256751390720806069553209661964162196987342318312652925283074234687749089192267590346718257889859419194507480226960266846604941036292422416599975563336207542641491822258602287276039269812483282115004200417434807038287927329111514389723884337794913822108332421095523735045101607153282527793274063726959555797535027276383822541339836711618410167626294006544506902439155393511390551840273752682552960102108041242666514857841682957761309136992844900718204204608685079138173698592747701506176437548826973641224199225661549533187146302741940019150218261488086703592570985878787297714580629589196525737296748073955858546877361303984019800391947860543332295363923823622647443008843185345197842691956847243167122881418339058026944793740713782584978276732677827955635633706325115037436420845747502723723274307564904808356011333200161283367837902215239062720449148997572035169608017566710654961935766115095784962726304324102183454606576930694260210767218098223614756403500861615957244839521582268292821737090879914969944255310371227241811257446758211679484542147813163799266420523933396683234891542691563873860225279832973055753321227023102819695875497632570838748400715825095323964448034348000173782565691052863586786465976684799754845274418867431637439914280744224759661024106100627311498577603050202506433053627569651669113515025322668270853338769590131713317779450088779658038076582308082719079298098557529419767194957089556271696751981462789661120069305840610028487627357367056884673876089059217171639205318558414625101377578821833829875287921794133553047595861745577974165898851949278972115845002085376424927183438872780266475512799754052621092990590068127886392469072748512075445553943018672373426204227771655631881247761049818362792536473257778527616164128622458611782628003308295111051760586032746270391098321330571277115452609011471499423769108692875365181116981330760116912858750183632530294336426605113430348538900843172431922973534531542298118078521084689381756373510202078583553396707378862843436993173600326842185586976926590513818826228786285926680593824249587015984704333107287188538052849897620678117012739739859752336216907841742038109359987294220155719936858624101916022383410149416221575078468902798300157761897656875215517736571678316239464483699135682229619425713272254013582792146388040785581482372924675986915051771690664381484881365346812271386113805999637609160457019558540057992649716186362611279123161855822437570675824580024382330900141294563012066662622612440732805238898081904817431605070216278709219687196916411452608224591191893203241054058848040518976681452179590323065882537113987712846609747476809627530103557432417837843301277770362212521967593161955674236883786584128378756049473822495943121937938729670967333342116480931120990309327743423501668537830007739289800525614300724772492412574732731533762368112370767348188674456739596665852941441391899169237514391933632681765752211068927610127816618136565395530423319381688700497275727865846170641410774923279294878683786401003329382833357501701154454475853511961015566502966662274767710640867800749936077206270342733704534750025767878333571502574708775258362368250771801119282551214223284703200204254805713608353384535427425341467585491981752232760326483526122638953078294127690366688960507703198310434694668648430959001420419326431669129949908694654816934219797567492012897228591002700182124619677248150105912446299877688456281121318152370504682367445178573884761716058159989403824398715403557674457489225788090101884199657127319471339797576600383396136396983303603406852920792245946458092333899295876495675142403046769658077373023907268638713917828743501123678036509339745350302995118104263255923612250378694742564487372825308983835481266475341880417383779011671424546459123591229747412296656840848375104244274673711762659951298813009882992622587304839260757009112097169207970666836147618375396722402188906017454000336502082919933563381725018249853959707108006065738077741030005943416228961138690637886821147512181634730673455658390983384732045940223730424568251222070159538132864545728609983534760983927062342576795484853083885649162711012676423557665405226709908942646494777444290459711740544331876395813636756001446786166662067344515958061080470503274695491610077050082408907115896345224072855499579321267069067587887890221850699223944801024140333565109077457793743717065571643336363848070442266087604713634892591389348213465799924207970091493289715031392717226062354052637848214841212299884113613620924587317386609889159019819840111156214750234721728362781764482868165945553150525016093645783395500589724610213258620590678231034259462454625818117639795000778043748188104696415636018361264161779217807485818696876769356144957076948425889925063238442098398530810174695562454307659850108005448168858068820549131789639210943496279441790701243753137617743554889460036682724854816624375530389240806179311519679431623985588158833305521069416410821351086175695627801807560457225015561363331028058966824104796670351155685897178113982016713504053984602833049899499083998806439722081895888620987750472275698300878016514963910110400935966081994428149454895605439212630129824112907637095220739694933495628369347124862541841923207248385746870486590093412362865633801542695204889621112468863526948849768252444272669636233186511819894087710598462014590434397432141941797274865686040074752537720161009874229057130603085765346468459256666670755548489462950585063084021871180457719318366213725590650383772153418013941190027003975932704089990239840488878397180002473552303636600384928125369919934836493977309872036399219241110869719483439153202084256666788759501670687760151453392511608205187305975378712257317212569700361850740789384480856359507962502586074651333182059380470302049146912664882553658199311933546329200589410432042116816094138492134943838965023885230300414581295226550726492967032452923516069031301430517229503999199305148590135877549832397469544338564352080187888901933127577141881504795202129933935231185328866518740228267071152077102668307387661250278292068040267782831273971625076429489151964339515046901629436057151997908271073939182175130595943641826027675205554556004020034871123551574049550407508451026823150398262798209049464641549976397822101026457366412870441910070502416950612928417222400717445125071862368202004758981185500131667859559431131807104227299050155518243535020127557115855321450959534581137751211734792292750848447560618093232993867556053114108783734494374761374806375601336124995535609222708473144323977712405130745986874036482111620061034397793475114510739625891376046299377580699409826180718726878950500801456426071001537148946148896081023248575599781998031768792021208977793449726362653916789892137895787715698446556679943562681886164221271052184535727596210679638980409913307989152917664593721059650839729265295446347414922202630664474567092333620832835504163781636615285960632746243741411623070520060016575449526941528709127245379879322616166634546628002955834257021693524415069608082697916596763996580991821812782164804396680766725266111144451062019173418265604537296902203543542837001023328374450882756675383917107796897720464904336350428586327835516327428602255659758790960247177710488631882495949925135957750424507772663421220536741632706810082135416613740526271466279191031645444839139125654591363044954956630147413041416267203736739249990592183077844052258200872458215601169873991451761896515207344922762175205258657744896578920653297173628771998701681465652018394233641138211027077004225188257639120083758731296236383579795384363547063887006127878625653142141395525078574742001227741954758943574068930573841107980258758569731531865883810101366340422360524477236174534774983126353700162546170072304616362350324434019574207796870447900083941815132428149156893485021196434578880027809567663274339205856478893430762510793668576796007156196048614875852259739284306308774897616571449297397117607405226180419962916570437849968094720363544027830134216427328219454667997847883182634734735074470675717561395958761209608563552680568461012635645205035359476517263362655779131340936623048559878802852787063593002637601659782678551484329036701370760361405413851910056872186521886692532234080446489121547557054596263684144563213277960078608026259992346471645539065093895139581308122329885237219584774448124474115012374092322740550942399367155524148897764496773867110661772511390063463389882104475853385913835413157312669668428926078367002278130792030716261688841243859540901378341649667903024280080375635417378642159234501266741970898600928659854314065418321510897220409034145685851618142028700346552863252642339632799297929705174895246479783273366560192070323475122182884611491963114390829687018173463715669323933819641368711818429578433044982217496139546388249747809432444667855940276947665456972492535268075929809921525042518354370551765749786335957887439767250905861005505217005152275496886049557418565469260010058277596897599832327744628657380246771659350160589234986035294557230743167554663435027216254537846193925283241680743913179001136946362912289949895531953334748843195695883796206566872143156824113326770076643087863678465442967163380148129035169041894829239261125591676323396178224767558735658669750565528507490200405222108025926632125154360142357683869571714263733628755390797184823276701182757625107279337659694497753276489529403402036818325322203126765944472725706175336035070709661483478150726472397049303583693874842473046695495776168030128683127919794592125547377459220499650841151791789157064800541753578528815606461124884032173963214961789529749026807604273161466604790397449866202658597047265050674819379985109365676052056344726086162845487093767480614370951572174240361589971795293102510690677476894699473433650181034434569362311932019602949948281710669511726144834025514259929903486891661980858967181780449182225619930536974888123366439743178045549845038582865370582783091502073377661857553853031049375288381441601019834446349678250181782250145015471091605763189392681473440213610844318288355980107115124058836261321227236936060107407362564752679658373260490707021063336921601670790358835067059658127868414797962577026166535296560399369847444020451656866761722929607626919363014729854362464043272292812687184641391333412086872780951777155595070802176600385436943766876398138778393018443265008558437992997944413204919991367576293612905784359960481266237858032519926120142021867961570582439755730221717646380195705467406719061403358101517000629572408489438929143724799896616475208812067720799584863337468150931075811877909349458913706521813380026623469683655541843230745702728580296028509034109921316602898258261343058600080703007918650546955267768620671211370281982915717750133290996721451289187080715174874058625233011893618570441750990015540746064151309731885933921839193460618530817449986322739779187286619537148176521194064222632759531204149836061085315529778431061467710752431618770938031940096425081393035439783725005123696096137585422848695192878588607621213832173604731075768346603721973518359456662119727641257515593303833048517103799544484079306666081495547050658067861629582885018664184959432459208339658283347430710437470534433701707326799949535223600570970120915943960438212741910879832245810782714131504768013260666405848484665105650221533565329613454655072133841848474584138793264108319731732494503517690615816205261005881215592741327618199717051040965315921634408240594382433779637116552652023098266069124058207624660319246801375866597025705931755651772400750437383190607274162134756302638865715817517609705375231175234333925152888688347036372012826368273860431200769260313429885769107872743232911214932430542053182712648195944727230353217347360534821997839398642079169742774662921978990729861745059451194881982317211476945065101559662204584815922025433217456341799011113928805920185212721456647128633292385532686611901883216150824139933778901619748048885995976216939259006107751323316648100929490557968145133935414529850465845741620023240637577287823885660198826018285177352053090830731272569906942116538674133444950077601137357352132765624271448311389289545609299117090526204121915277654491785660202946891464806928280006509494328698865476869461287126564924028986696681994238598774520162624366830874273648714755710885266054763673999655075444796364368904079483762785679014240123885296809020604770456369988564734482976079789371201826563378757832667758265686557008653633725567651082970150173479452208063338324127267746542364208993540169068303281685948128380420330971701123508686706638236111569002342853271528415557602920023697723877377043424682607306457340629422250758702856312087398413777634071478565856144181856041770057920454362642661794490611060831383213004790109023633072395812763552580377114547210265219720107725008417533592279653973647044326701805821190017756753361261692997454289476790022254714223989266750180867072955849471513515494708104743079215228153993293814615565665117308218078267720796907269761160410244719357888628998913194915639391789984759821519532729727587039783061321618651568145946592751964427656898142666237920082637066029272067063799046835034087036768300498653903317871304095971464191601994034681257333657074067384252920100438377443403152045548304570365210783658918360635409687851012240377572437007944135576389472908097146166509580103274802376849036370773658662588124728373780027775718396808782112155040657730744784829198263253428071797538307097760776836145401397984866707395256081523167484708956444545785107807555781366950632072824266804899281284683762382730574902524849742438109424422540443605377823266282275791838572351588050540635763479206593040240433286824200787135756052798161833390045872999631808366576149616850975727012995256522085448278588832911698588319065782343363555581969465938544618654031878648388837510881995465214293802189918382264528650881535706567194172791361489854056973341895834174256886137156241145438187102838883749872884002347282267508003293211054493920530475588212826620073530620306494587011495724844159762118851374400868860007883455089111629645787607698613559585564184156851933291097192015264887555182256854397232275973693399115792661955152830730346434199141013004124287829415272135472743168249117623555149276650095147633456093248229076096492339315706772012142244415587437785972034443785765184504125202364722819810761056772305343712974619311404831555371654254288217400159091383739931997545353465956096872532894569546420495722597080888598122488717278338832625234340422119517562237959851310727568495602368495432934197490239023823030558619698531093179819393687550723042122458724849273842887416419240370250524284281583002568255406258621890927591587259364283461714749778494157697971740806718803673302664021968742536540118197138717123459307152616220285387912732777772996157471024879602310640823170962811851137898267645266372587289342527306350259454179981145246982076225463623805996541393806037360937628358319387711162191409342255238505459535244166676273091732910712030079780089065109496951414384634016083035736265278043314429357294229527719090476499513461510100670631322587512146724284840000636744826666274478328396605972670847065109509952212527637639114706748212146290725145605399870246646276146691723568920971788751759987470701489908035671575344833485028170063341833852060003710091116257174066964016446626850159493183597032893111786128821547995817752570673282588618785372321041877448073685253563722205593955238525876107235304355280154419348945554246693466089919029104875762976063107102461081893521080464786278713101369343944728467390402210981755026059129987232191134977949332780091958201833894083164119885626884782915329478215765241461298755182517159925781545747909216887211310285146215166591121722426712631923792116710835394178110495617844147695949460506707090387194100063964126682178493482073383723809665256593767857665781232145771956732298923723503632084387677675331412675137207326758805600869893362142001086285666855789541974919894743423625660685682116546567647690971290580753889737153483409165403729664987386272411934586922713306259756854485769751144692023609680250061619124514442432256704405767703043185948677366392871882177516136871029486149024055631222473920931279054768960353844723668467487352635370113300774850982319342109155044369537884907749508789325104469726142060431048359054778721391297830169977167732600481385349430545849851286957945846170951009843452100049833222268647947609701668522254729238939096944225719330971135178996501455816300740025087592697434127303539312756170527794644943479621737287510208351052833387045846029015335840132526159839599841717789640225482210949905938572590629703191885784145061054341436083829217972375393844373244144765676476261868564300762935725953388758013140854216304990765918369357492089191558695760089753643073463906314641696273887927707501469986232184127700522599349891496441649478161093394477959400599299400870728868384340724209394816160224300836247299387638760206239471594086742332875359498321838028453401013574419818052810449277222043928192419645844859985164915531576250000291536070709941555394865645722094002846096464029639688036224842382781713314034870861792177716937611905016360026504186474302202713622999155010774636063201727717594319514867205471669615952992322757463509422953558739907077206285629903493151309483458102559954686883944045433057218121577280716525374110903321209561141932513342452422085757356583740111853159776885665521067166925670624691470354166372332544391290087386886255229894819111425109035473896532048796589510232842029118786543086513012103674690254808236779491666004409352605443857669514598683439575237306312199159117544362252231926206246222577865500357717823607262721480345614250751208151732690578156582200997250648542725906767935765068600341087867461463141704555042907972411284922084185596480677796867322026594615995967569632812116021632975703979634216267768665049849829609882125759999893974962069942051101655389401823853971246314822659979383771612120498120798213170302612519087242017649226828170161201999696493801755134899832456717804812314666289786374458234491564788958620836049613598340110713836568706480736939450327923780265498765083261935263624809805153267112558574146561371026304706478346506458847205404546071330207294648022953797669797360763451408536799544129788238056024255933539257268848527845904445268359275798832036428933823078732703688348447799857797943732892664043412405114387076561037942716264296013536888052389275278201348956364347837315231900124686972051895715297253839198631864465122628482323352162450749276704935352489365868508520326100563090566457456546837232014814085997095461680879117419297252129032757350590977396458335873762884546069548259393467222906927099583117385951341707440222612217164940627154412589263366835403254508629553024129114303109379067436765756975654283243971885157528177812050494867147217704031499150276271881684562207321676492624598456976350369907650580687791866018447285755219387409857294017755723810577388371969947069655031902616114664591012115711933067607518947714234354786001079111846028164315960990173396454915703865773075941442186425039354957686167911268256618487677729145944226376471691411800631810460191523772311518465774077164840408818569236584753313714545995752483322512048195241760736248230348868812661251282068003895806574095992502002627509605666312109997081198632332951628101984422308157170307825501461792103549084029455623175769183147568114604421995721487964743362783079989923258993856210843298171906198924598073667103478908006058420160383231022150369096835899652111159601340901155898011248676434036200992908875550773251710331574318434677327826398127178195953395180463129186470514514547583015616734713147505121987505472215928135165433469324318286257982490987699756048506181539215794408750445580625516251599581334066074131349698913675542979166823689370423426839395304331166303719266372229571729565480319012495716769851255386082638347631978750000243548551101741306806789228944620321863115123667240507573755872657298729534999833125619730334066077301925237536943163873886179075888459402652235344601578517499232889890850242520725698784637204374593149466791997598726777140937960021460356376333534910364782792207939949918533681603817600868870583999680029407296453702466570101106580353279838331396925108813845211914976579310381950950747578779399672302872499244478481577823538233534844773924383101758043542552127895849692623264566596997226785190088872827059776349883695115643629905538459426402731201815438376074665716901586878458549346572240194636060439702193395914933146249589977557476066814369197771849166886545583968099956901458830068367363530183232335735083780990660541510731168228510982925734696092766637393471860623578316846090452158298971496859042027308851682728240644281380251307725938056344148434394321190744930250101672581610916511636626137607910711880893431444728426365458993102237858925057418661966490527857332180567586275108458671773813339908967684262983434580986713261747651939326209372042855887160671089388199004427539082171773310293674204174699506300572653423280396183523126247134936691708734386525046252418675249763627568735755348017840293361587959610896835656957377781084526760719328368110699742330496484199893224205755590287877741256435014235254956471012418802987269121451730255152199525741766726059321184847740660012928936743050771601138335938446291444399623960472594417453493139593874661888118584961635179932667117960679606632533949243818700659005982956166187693495219014354554204961013692202621067640461998356739387673531878908761112300812838546126066712863431405852650804840423335188173844964665126435226846992079731251482657765919290781601815101939309979569635784682398179190015850344553549516825728331095044682471654876108780596820930905919781495675144383892866510331905563354182381553473638245068024681336319183201353909986532208693927086776926716863717294511131109498170899911118556951940110703269721878400236339780449519821225965679864063044543381543908737253963609081718861915970559972013851888344626937664122399116071372636372298185738463393834484502066266575794654404103782246102030258417423367270001531419926841941673605244251529167093133856493282450353416588889940509266035734127718705931184111444990175484086875210567949056692766829850584596723399877384036237911051661731608364457146495330746851673585803547085859623531671036602483885584367961876142693620953913711669001997035107565193222633028323836995733082970931091238263573829320877984328965745092468711702315274535473273280176095274999450003944434626684687868596140927752187970344199751549697261068191285144628156717692050302408367854074052007725995433203495711635215458198040997019709441423777587887504320948642505016314405333141379261917527286978563825910634429148394543341391875980137329406750407053398551756951526132331463483473596515043567681901053671664060006377590482509114805050692663226716643436035473221720166709367123079845486456280693033818060490106828006419087828745405979801479343209448592640657146756172143554699276394030619438061700463684579504678322241110030382527082023894673124544541765927175004092871203799932025417814233007057496641622120177900359375328883203583542129199507348497404790810344754233898134298083068528340815359857023454205630678506205239428663450964942512181277476900048671763550570626603994347610604339075222620282479955179236554576072850610888322312270597572276354272697077463215440946852651192809201767447168535134506516884274216019305671072892682697250442791446782857954630662120587744210436521520920251009251401166730889843221489138284584315016757311509625881654487372267681680710911578145901101310312244284963255708454354873049206394465963839443662733713240420893966012770639783386107414977269384114926768613567960511078066073371459451593415112647554466222585530659788524570634323348406581054191039730369761301751243541040220170811859645340640570464483827171675495099671981935414722014845479863210027197107288278182509649162140840594700265941007071956750147511648053782385757029485358962877337162637479339192588823801535542686078653553263394362850721257276434488268971399574377840039653828845008990200064875281332495164707415729801559522736454417045522507445177395679261044121286862871053581600860612863249221236137791923250373111978219410995567811039046633552756978231182063901907822757763851233007315153146846253786651248854508067876079093148501907017394356221618864322794332647895247422985357916401017190459151780835810926671309648401148706250949394430139043122313245008098012927124104057868505874177428330447390135112692191373587294776276575174185775070351775370240199626945290073443385142494349747541618691158419356544679193856442313075703857822214168563247492837227395956026682733021166652013672461721038702488904145300401243675861530133280386866265884295756289110462742767084834959782640384866172268063977113771507453982454015671410899476821011163745510653948431090633288567070247768531771823010655104071075162097721108202848577326314614518919867848139178191532609542611787592389240563192483666689529139198153839154913954277408374210541456956104934081695450424796642913958381064272860701348997506511897527695669769931728405952296900863874317172719719872230532037509553113859086887005754088145961934852427976754108590661164329630411910333776828708056454961125319182152504829937660717774436594708512932261277727314666265571982174274688719600586041704226948162887938829721328478884809583818811178933236995499831700324950296798795020813208587808015817611908765108052715812326628369799660132414687079031273503159231654032560104741284481649873056063344478485040429556689895439465641850660652474267068043919876908950619838685762525648312176344200588411208696933126133772746434584860961953379651646304811491129560655492716639363656940056962384004824037406963316907278051270587928770975921042488834178518933005066327943983530261053547998874645850249647113008888380607522523721519895268367887824912164694514861832383345219394292583704123993630554285303357148499266473564914922952344070277494980409922257328419372368498799080330823658715353160792098964042295163981778961110079979372932813572126218088638335321145093380400823204066797716679488993918545645944588429735438154362909166741321341475314288593910309922522702218240127802637876506872044618072432756975421217898769105883783248120233943292095486264829817509150336049936714042850179336776774791349462055665354522500603430524646501518940889184125601910984363636348755989161094800401818092465524317113316776460594610890924780178895059726394060518306478505243827781321049316084267704334391842251396042202596809968707033465936283393030761518291387224709808502292610098116355064479570135114027062004309876792637004008442114233776629281992518273046267659750122570973157496021907028203390716449909973694183972802418986901040898845903636316547438785777093690394464407708123005981358954135215363375172176866171565043365725375157785667049798643588158497277924569214111827187233247357578665507963569822806326558040749741925532123650248369069599213692923105006625142394184108853336965350306999434608493320556608641889589884348503845922134282485951060981764233768694504976606541612907642347733670611479561623503951529349831807545053958431759891503552827427333017540464968078181287997559924490322392675823258247130423943899081423219740594801365137167362660281744517162050178362565891210137999743625724261206871945549442058215539814008344084635311198836565158894092618196643056296076941755151694820481363760788267389863350358670971590677510221632406191349752791135672700149733217648541458017314743520193579856375345997162096276125175077391611871105461693389742476221488415120119908685566134192109621860470597434013170959795802695543607653869961612128217900620105981114802510585386552344779494600658445062453251974068606308587183567634785806292825283123803509964765446948907652864526174487868052292836528879281718440757302433167778581529623915894675687221374284853243690641518585182415556735855220835035922405222605677702202534489049782102598432088946455744931589390937103719106185711669599175318735269508668221250997299318244636604111243337223748007196474082880940108866699676310123703423452913084572722204918069983592686664951007804009413436642210440632882839380192546877477358271758142591635418337557636729548955564489501233415432945767083803215943833294797386127032088872686264576398159000648407706287839844775098973338400752752339919006982229051030657378660612373774596143655972717583737823356265782069052526205722455573474602716852657959538569339324733256613128263295158321675675738526838115859407611550383417991090065992742580196864062286899778533606259333595995868004067988000554182790128856555612290390651963350443834075145916655622767806139873056315230780893284820714397666321269964049371361856647353600186886960685610891241923091477126100933491148813111229336743403719671542351958715183161154085273843942890661608860763326775066790285124732261626845045115507053300939664925551701679986407796314048490594326108937315845510397376814963633980800066299165576348514487888481558750422120925622669485228066723484742540388071952774646386232638761016454598723936431552501543352551514378653226399483391522471472326728418361883327435360406188839714389152289090484998127060813897906591065402175371811187800672710980913132626724734843132548877341294720100652480881313871660057406191135404590662061681428833588480172139036662864999269350018959576890240749317509590060481427911381804784554132722193346146068042311597788376853928530976700831393949214183883520879592938266131238723730299845602659680285694168993316934467596549957786402878541911150036518478694406295621499343172774409798727130415610671050566933085963305613676465580328209215495638508520017122237637006253954245038037479927284315369580498500264553251171817241193926833356655674718681963234209451420966264760660891853154678158487750500290743182818351843518851143624159855753345081931751561079099877948270250849292226530314653781280939077156011614390680484262059391714723010060828310109185648869431399716399924405915052367339965258542032297019161543667176679541523673201683876598525549931199627941607880942734664389425091556030104815643283473607395802569939315957432977313025941687896079288911019812590403848384025912191505754810814507935794001982829280945397969569754642312459885757449198902559882018031004263908547009114421324404268203857286519806124661481736464083928271917696671658317912423583172123850626339091409264467795071188933195299176965400602980767467976958650653320488804092255542147183971941303920493657121170752046726019602089718212926625408523469709489368166169830214191734776183336919917873665991292317762656219306156013375196589645160788999493618407618916630353859645467351270872446394494646421105470937364317010627876236435170594147287266755204792657449693237779425499851104986883901658641207553725281705643514137221584391068562006098985179397544638477380162187704846444442273043119359100596099879238682967940514727307225033937971107511401565614343352046564130837776246344248221420617196054388180658392711729694513455083178650761924378290386534868027709388272573881118322690718830635055389467217335093057265571819762621063374080203205739071395478075028988133987415502392419179799165755131219690695484965105882246566160839299748348612948893925287568122960999323861631796783523719840016724971995633026147125851675230844353895228045729656546308346794584466476078391072173357844625739527560777523750057721580616356362116821863426449104158627065708087255439503123611405908975282747413593234381165094772739770198563911730081478387883468172523768365473825618340128735051428628480249587416176100828651654637271851877721840503574921925800788508707351370697323763558301949289268853299585655556691419038007700014896202934807900174113233792748180744098735161791924837404659741460179821307687209894022530575022682713183217698179162172278827459640733308904943550446677879656765456168360284779345930191815151278106787874513729693815630568802925948394851961871385805560053199420407508350182846199643418160997404721728667892388769679559323237653121552280837481418834779698264992476292928584796379423780734577568727624825913524646806805216343277984631687289444247069171880312671067903072843896788500985353524929393217691856127345212582799675484609690459127866881503501190950263970758159748618208089697913014488518527247394692175164366522856192614281377323181578638987351264465901981232758613652722360374562012344784024172984663573651354444664907538620942743936221413163245814812058122994653730063756976788751188573357073202074122551249343648013446837241387060693238246694224794088692966133347840857092594501865909887735728799929421387490857256802305949729080283447261462385744432263343302176990825715832415658444193712497648059164354562432200083390712038613779175347308640173280045817035534904219033864523449129379569197212353874811446718371829650115193455049561118453197435231577185914322953293731974965155067393425828874668037782682381274759358102943368058677150144224690745261794076112089610220983769380304257526073265310390328548623778976214939722426615630572580288180282550645797721101491498122968892453806570378739915080604813757351907682097918112625704031967562826883807338216524743762393909422758136914414621204478945353524302728770770086146509993906269448820183891817779243861462928648640171000417000339021097627162851075147995925794554524357601221495726210110987523229426668102974793530691618639359525900171409898613290688136790251197601414757976696792173071351016972487214791590631871066430564190684938504009397316433748888197552725283968207636318652732573894353348954554973639320716836339420651159389164766322209012540025770268669791071790813895210099030573978597225288353339736176767155322607598279613319933377861463778769115460669131473492938284854298343935488140776914139028897209223780121872105222736919572407191842734476222724319894681941896785585109029535307124320509463063216275812821942794034594371704890877525276150889987491862136422294878360847522174670603991314391768702816318307158021985866644777347885471210667353240039298293779193702654021831025692402448899901868452721262361889084938121285577915504080152955266657588425473444463143457414366906948172370112091479177777437738387534950743488562132054046263470387579807170668143376177093101217698494892414678388297364551943297386869412609148821319430559527994775900495074421721676027167778559439621540595969984004016778234739154204710286060312068997544107022597521105405512913877818915752170241902577460397569755431823758210926217646241657126558343189099523207483772387255242164878226508183429223913626618916858636140558529134217078080986096366262421382908080540980836641555805056558425464680618173134412038279900508166568898113697204944985167203022861015621696934199760681470816108152008853901282292932250490951189039794350819855502671118430238463811097506946460614621415673578380952181218071755678185634182378209372134466580655703113255490198980871575889280631471861010726749056896379376243834580919568937315691522083540876709982413746302223900491551441935979841984223977864024901665384512057046689868649532091861147061402873146004352734546039457951242830623630961767904894554226793881721733707900271182411159479365427981881489439151769237681416740734511142105261969386751155345386768691810759307389212941688165438720338868068386466314023830878289343196658956724446547072071865885109666826423359234892421530115722612797758212326928164657236617545546405826486976674144352055860211471415315130711763125570663547981751784802507330466734212561491216758900587851897896562072085297373757291491636811599225412752305918299470285968966526977852630321185576349606576432187063131538303992184983838368526028985460059372735996236901121377219387189769157435020351482689998074258489450269066769009216932630995581992729690370173262169344887503285127923837136269337178788427023834512437129258000617495094140976681353138212595426275040476800301043603153910000967732369320721955619749837921286498610474941729395658744270302852500283619907002281417716142964362385824860878882242167953582835244562003380007178996737878294507025816528449903731426846396653915341223199187906764093808279497303887835236565532403171434753164356225959212744522736999963486304116416440315340322689138686508224316491802174649220414822473007534661654094981581650093564578817060782257397062535207393553900829064347997734551766172761711562935511980881597987218045439051461470569179428611001176549996978390685248737675359230781748615482271621548717971028125782745136100880034765982038872593707517998403583168809449879570222430212252192124149348909967524988829482085158077837585551281707996760679971933031423520066816824645061438826491857818958285809847200857135513744288432376940169564056916816542173462027462816116370278311009319611029649557890571553265845687722996250773189602087202946681001076938306415142702928526030858871694407013628250050537592522407756364293125619650238838954430431920063436842101362476805402337942910142226439264206111713271233905329498640986311047676184746105912454253940149158000112385988206578842123790939317957587483018392619870981978848197563655679442910521966091207561445984340660130509617036617662717387378488953777381253020398765969892114872442872405996442197153386093090561925374844242194946525078249425560751622241565274431637084528484957880356396747542251985359365356957712976025419738833297765721593954897723668787803121715260821108367792594218623335455483484885979667062954838981659126677581482440142323695365475983639000965026883425079964812470982921630031211313784548900582033284745139615253946147826354897997728566292695541456610015209389596729680509849918052716977260264977607336922642958494033697184753819588607876988786014281773835355318391287550140027064651980931013718730899586440568475575417754330714958854915774771467858439526908762915769235961534463975947399522143535876234056783814874910829700232618940191087445053528134839652831980751737108647267202426147581540675714953221140169925549920145022008722648237138421078404691541085819512719772976446894131750393428630090688250815844933145258076559085792523376860290201430459001516434212315012556413302339406118828257511138161809397068784004647697459337094377338597462195314260073211061445506336026390605370457918621282670944505640047739542214890339293783640683176446270994627063328560341389225148658884939841597838084419212008066748145856796653820694426189857156722085716815952305950050893833375794764761005425416035942356132900577865571999754236916543480637248050033967991261225713842701452788036790193939111315936886802355626745423832954202975778912839875377030168835658286978841639281905923212107051325238609587334196794940810652685703864269878701114857054922850775621643736982537174004594819703429613128913173373907035603564035399908762478071199900421643598746734274995237859277165704137590954923340278322799210089013066152443242481245967647263488613089126701292278012249408681635227289358942274920258373439857015157325174306368257559517488524050033088993213696919060205186678435639076477191718814601161364240062919836504809852436289227839936283294070355666163412161906792753814652499619813658084848600146873391186389039930837030437220459113394655790402978839782179062146999494355669876538757028811793444446304977587909065182115618879868881049801308076438361888606198667920518288670999969833619297503687139803390238600607905561407321236593720688639257549100327293852387562826674406331779280204728516397038970789785339276396654992058897285626874105096662697460304338103586775670410613248789832408444717521997160566837073494550360782735244931612316753691693653305383638833329531684156800317731536937709553176359027821677774319995026210125140488346645604541430670689694197274172192464576888896304154077702988993290403726794669720192477596589963796549978668930556732161741526301656726928146667809672105917507018013460187213716343402114782764338387733943102184260638077667102019592507778566570906318192450063368391139250183353024105809255909847964428621538070063431219013810988028777502481947702820255082590440715763691119205844273632590065471489600088630537972680035384897354553292710604381269313611935904728015348280202965413545863288610984181107578060163296937642468985910387866504533491693100193810996297609322757240719675708981608935893737805275727600858325036059410410878192445940764167160228259609535027122886052429966907549218669133214289578432156202779548266546274132257190188089620668164013454172965673935080041457139581741153671302401079004469542168219239050469758247488366099058338004494622880607885538447689448984442178978552211989666537307367403524690251699058040344708452417476868530783764133743345371222001508962407093420207446741297294531901922038802464584329524313765082942478774469495868302165552854572698169375459493752635573359432553100056901774771342172957242878690176659444357778350608412259643673359752292480276148295148375951666618598859442314686662498793402683820624925558798198196672381628403472126012334320015434040739161174206482110501753534475514084340466775332624610379576014915093843802938439377754236987959219281284083718455326819054258772611228591241706862601214136354744023057712089216552144369331612180844411332906896505825391942748266980982649590692110616077881118707331071062694320771836038502557040646185619057600476725023057895334161567204024855563443819427562603720397760301571923254211442345022353055036111209995445673358334321434036411658755088486877722265570184896378973162641067344442743103507352291904393817906048846080622303317637873853263021139359778305549601324689342107149389295201470912046310427775898618568762631380725209966539118572054978604297466130664530532347405845423142010621507871536823040146935532327499404025081878007269164537916100227773759958520375486590988954713946925465953352112884557378312514450519927198334300660001658083235766346521719926547572553768155407128893898976696947895241974420272615173597414242953029634746288385303554512566781014832152195764402066573310821904669720970634066725228480195393900305005015794215324795260648219009472488191149199832596471765792616887662774899672771057230288720456903047341869694234906768944134948691693004436652250172937719255178076936308642206077801037949004161138568587385372997695607261292617350573881814020726737247686034392084423870585794881108539897609390376444942199892725259081734145154336451325898343807579726399162658450367066643665505831742370420285703957182348616771343427960866332275751731008916419203197732348871714810644008560308149166081635748093624892081276432771955928681920994758226182890473580805635088122335045828606430562194862678620428492876624381624939287836108913614914309743941124161168743168198139727387979672238517626460020880687461705540763318163366072392932010407609406519828063766550934824764926170425115764074177589669523325658580365851937401127180157185262078659665725768753623919160627198884170324288509414818035103097440361147343468751535994390883678238452585266976257370718793023782459925665278268316928703754677908181652756448779558042573998516788881092046582238622727930458350755724373069295134069496318225071729923418588620249620320330220027696768405121461381606346459848983005455060005480891989779193463882654473929534558176530737518384417708415585814184446719456797034188148292794227193608259483790929896609070440807284761853673788210068000506721534783615070160448141228389155594186061146198612543945396387931379792878990148166838924847651054803526974373803908087984655287374114764904666557603608899747109104481595552421705378707035980473818101413867604118902841904536935489189232386293145207227307517172659106734648971092121919885905795568419059427113691960428663598408038483867662368166592087168767454775221851373990630748078969945560757525330870967360014824955730755229256539483480789889310829508410292589108299051057852168984551753050488407036827521673188128794948873828116777749053286411926784770867001252892473569683317548962274610310843504393801482195886807647388496142342344684539193518268826736562463956536631815140117913461808757343629882190283559871567842953070577190924860022918497074790052639609040466420427766791151662127224120756053408870120769410482044886238641297003227727296771655298081614418646721190924441710872315679163971442633947616441650015524800898502576082000576469845599436375961825446810741223900069315305043136708267944292107393786389178850921998012233116366690146340689667152943914709819059773432539095873953296005161575025198878326574145834643221915621924912605320814147694557205992757184503011928704269862973170365338920894082362422518855408247693988527366383508815031713900135092025060848488557122544837029586934860232217848696631622303446514789954522707716776408418095397340361783685903269510568670932747904815822767013423896443796900463611155636300507559300950688916929465986470060440890541949331186199543235637299069467371037501683951052653785150190593779888541448379428684492033630572580094545890865594970360980761087984449334367842771698456623474044008891396253396559293697094488041630103585151425012058422062673532028837461277898812949161796188904784470404882692314865306303813806202599161626241161561784256107869680642760231258901604461642102257701019687460965314247888731836520677782906316071248595901329912597020382555901246136190032357618760875970697788947922543510279167065561095902052712069165498816302815064435983181376596425457377572774478311419492655792689755958874523847073003499711695048841048018491976471201540475183273084898176121563092361918424871108330859396737117662536089136300573807328659939265050712980720384712075879474509869767568119743408947338974216370362182119488580416118045934699797680985040252192814606258079837253669492061811562110718976385415726148254246004997551637895245287467242842828488160279843497227887020351748904681143160188912784394159592028082682954976137529591625107374186515642967563782564475014783833085096399357338264979013910668326249228337961748247189580291371352473936201580368996437759242721107115136683472584856681592383912519467384815661840558358001044371612653026898801492000854768710354717339563566768714185780895802019857752055974589069551219559993683676717407910956281564248870323311720491355455810900270887559621334863623575420598562043810761937234129846940985675682029638641794933163054812801909965138321770323424418105621202814876644750555985948298766858440811013607965905086797519169294670368830911833149994460684912427524916530883442735904719335497733957921512692520548188490450648042163461087583926592797235333794639750392445491023847741764623978219413723208493681180176589324195992776837562999432109562509801008533949650917067390677460979348552551223263765156464675578403052768323949898849158190487624153376706143313194843946174686781889092242702010011046616372000579417392276782941758381927950756771212989450011825639772136237080458971305283920407561975364319659745359333082788426599283417769709599604161704869229964782590674484785553383430415898551266157506119817527662037377537924712550025014105497034644861566199931866304765887619852746984731627360558946133863382984945046741378859195720986607771845113438998771345618219246400924720911856401212886170409993953990341709457442828478167935945411425619524998417494854999420419269336858406464849500574105964591700457715769350124743272976370799570987133961948007378916193949588802213672922407857742327030240286526463390569036881427800207384514388338164388649564726103718602120913061726521006534362972812797568217882931863223733490552354845948102896493988660152243731738155341379594079231764493215407948547372594422490689060332115226712935952113541388612607059988300928950562337197484311948408241147556333016184138259201496791949788193708630663614246510734047713470055311880071535295614264719796037058669956608690143081868853079750591697378952496795654078079105357861387170699336202964436623162643607641470057507390316769364717328692760030693285360220860302626589945789752853737134210344612440547141249368978847657506747972552309777795599000704812128608522315712271396462020384573725420563513990375356991101448381385559879421528385940107545841073157935849164154855415753525847329086380848313329123252699654741816560284326754604882575005846743627945820790379684545342679191867469547580729170755498963769710475116392976511055033164789867528768252239014636956520606369412714339056802441836956239953749622036720740863818264543916017109231393643069673881603227787402401531864949766327725014478651415305573975346444646150077543035856466522003123719147883891583956029424765050662222782117570202022515491096065764103549970125241024904891833571902188451481932098785702979575401482372456499577377501629572826998699548304128674214298817338218936495754893550354425412709971483489662867954146458169462997081190672672241130016935711749067315964678157868627083957493116150082802388085636621564485852620071052386770180497009809203262275377776589367048792408285770923325835887717370623855618630684416867908180709565353922508470390831373447659645560955629719650815991112339782738681770409536511218072400887227349549553775376669968767697012859374727334538808895251058359213359634525567566983780717324131277257731666023667874055032269076667308292555301017383798925213405198042213056235335631657762359821521107895985832871838836341955870943427142856127078274035435443712172289752078035568622996233571137033639827145705065290006897187338032714278803506822114455148428378792092996178812956282606107459167051427751638519018143146794926917022335333185717200574238689102218798255860345281089938041950533473051345256653885672535316145544203110218659154302680321729941932263709954351856311855892181650663015916809383255668649822507953133203043251459040159939667605621171982353445729107092179044257583939685094690262147013391369519881394965498779316232498056189303938561262899241106730894715623294642967682169477111944440266131610725636579676852750171496092913296447754548045412232576792061568119322662247592374468495273995152943577786848432979509060493628712505371233712267033001409498979877329322168127379640406546957737517175866819119274373208987759752121190258151195304631354640457699643920885068389295743423960675025882029413155423179396675851838691682489569875386467018655785454136633298818164141139962126308782180748654535256820333788876669967334760240249121199728251634030741284145298303128700346897072773234483086426272861643666362494332589988599414866699633024855325624637475788089613315453784507163953540173748844492007497606200188818842155514850197794289497687063695218180172615367362346412449928435159225463063234183811197364908963976903005310655567248842296725960582798796397662469666725391431184495129376351274806976162239166562079390104112672393969925483232058934248218153638760644723320591353155107131593351731541849345941433466629654497764827292625366806798829609810985125713151149780778212643147006285986820990865617084094059002257894756504908315708655611839224401750278176121581341123689752443843098006151240164870541143128278243169139431112236210214534128767654489696633783337480817121564492453360283499783880542108606987625779481519002947613934024718740732006887567130718095452074465998076486186583076492825379731110971230552878741276746405644200562886252579420102256518278262510304956637739913914227214172207605121595740854637560818098025044257680133293142505301655568494194108973251626525744709542974634053337235003411839884904652044332606306618442810897964098121406014270318498667004318143518527627563519241144069868458638827979842666631913544381522352839878949528746425873368526261703600813593786408483213018882628793646729874276083776558734614661716816848048517884623520013974235429282835574643038069770604001939692449334414708592070942727255023954464891913900166133188819983052721335789141403560632696935816642810456439297476046388639325903106663649241233641345359822367588907337136024075012328384237769088723061848710430909427449610093154209593621346418756331317359150486708484626702725443305577331693319941967462215785526843517557659289167414878781370755790955754759869220840504102454729610133435639625106561142261331452027269824489398269203358540945168131234239730455944270598391882833533275560232427676885219146497037118112047555779575692972641990557666453604016251835841831949285881480817659986050083599599991035724397882236651844637534585591042320899786003341854571411769915442929475323911710296045863734161910007533009473741044860288951642770289120654545948730223315012464730967160941245130414203564121940295261942649166773631687536083244496045208926364468081630570673627473888281384506560657934456327979637009509432415463540019150682084207096448629995404217179139054307367114211774702504967733627474523711829129323954945773626810858210813059250031912173216559466959690387267067500886980785236766213462600521303711743242588210730056943434708223811192199914403183709411048331684389859005324971350241639928368673888979707392572237308581939823071360546396687582475715700331711711344459088148975067928870600098050891069465495109537029139609829515841244118915232388782858463367624215735358326280911992095835521867922188213031756477355142683725489645296855318896722464573986444005314599029171039807790962952638424762486273024317810876477908405461428341547180737649463839815008039498575759944666865697704666593220240275768868988197776134288032023701192590631765328859338131529340547596322233968429558257731199008132993467424167370673349079228330918995662247692894938145836288829299905162133719579170531949619099388035690031443108005960144748043533520123913665153771678177183745355229711262111744913037964872532734293683018755504183331842570123844378422661127641827307412594428131809291144405215644193722364523288796380259718687167786214919122335787401387000761634718843709815075763263243178661696540253252139219846496173161891245510449524772654707133502518558662344334123904996103183775133395394466135277284429756555513129128806891470026801830407621786477356320389213340652570102533233195363290056802598589109211383157532276338526547342718369378993809828443499372300654554849852713175057812288766790557164001269280491694087710414141383770738212774964359511790435831903137788448329841885749807406554705630991079526370345015105688784508701716311045961598081312009707266404013699938432184840252807511781181953300875273628833604838318576433817622066638687250323136997314544486530923838927660037347325074574467485358355926702417832593910597928276045749161310071779798119053399264605206589557343810223918539415601875296376679019108034612175335143982046467117109102514592275221045270015286265314204954229017701041294182305731144630938828319806825059954072622956502122514767945598645708850578613601434608658923268118350390470802105916968308120014389290255630778397866157132670190503484127250431499357536642642348937941835289456934753484453716636343541107818940979232186740858235710126409640728409753649958740550646428681228541923511710851258436730355134290131649160160678156880012470797625433865707330891154291755538196041664676425271189108347427806492554225035936029113735631776257028475273316635868094696891182803547967269843378574373936196764215692624506554490053343217092895583853861586900711800115890568698431793523734664324281540660514656984427840279216523779990271404375984941995434544874845366630503263653170474055372223646481005732770201591747785353340530694967143342683820017157035013333967193744589664102156912985416796522637819947018920010327566426062941686111412023203570272355380704292906818843671771275542281836279640740791237144999195379926615738102672142355198078806087588054834370048261334176337501794576833602249385141398174093794353624410767086237522329401201488935083317782779163569984517154786864117242749663900177154736728914109871508352783758037977257857677212723217724443208893142631165737374745007876531994424643015317846148329461099191734616515013883082603932783078557916077866580580838554661507555472406546322574311619362820562725725454356286694315530883006091424875909426451313072343600700192454174455157113747510192971046885929739618610094100654545133753676898190814387780666569463173721164537611053742568055321022064852021024932945392387374869597987891689085932081883812214249391098167939836276901362850040717746413167767490228658723089862458268887041585855516853928384542587919164494268729894039261444086908141636134541172895377472792409536660737902223164591526595419989443387929690257380936338443637497904227003825684825262638220190656140229653057604861651689404218098590065804582911004378251127895029656710193611968635850335785887700857310523325902882340471783633100933818460415618550097098374318833938281709699380581873918219592605241996594114536235570414423601316954903256520270157714742411520120822935497780184426558392464849035101992897056605406022916959424263856338809126079017508728607045117461287228366060092773502281413568099247358366548158647353756160859777928610688583319209698914467915177013643474313628350003120828740266118404129167318980581874569313461278817248925248775926283240685019869191415694378001872758705293546952175243080004077004919472442474265370915718007202646011141840143347153986499375209205880431379578910863123440559519740239175323446813477930461302057387476786117893594028015601847745029495158643545267385946082256321861873761853149803664736893786029175193253829305297990404262301499692631628434801638673508017815677334698369228099431436012212958382250104502720574544658750501900090704870609442364478304379823619946658823614072055577476989292840263653794295211379018169134725919951590991772307744817377220853684048500023506198223591376516158264895734819681560881564758687522342066699401119943778897711054470306096552113273654882077653485739383098986695987255255845896254272636892771783030696790912916374533589824516023843077731501229510646690492170085027606335820253637301543261360797111186527157374966255099189593028610238793647434826015447145806006873453298614362686721193349287477466597895127067700557762691326087010523617410321150398858631589723145019356090865616114294712263986447624204936867632466374003739473833825843511131647228165739359063124222409299344376817184333450648772315792147904226131602122574385095693670467562391159022690280591445664515391806456959193764072910506381408641497908527721282172400903437529265376738128570022371195047019786904744294610356659313315971507812735332637855860751405840531043076406528526388041060293531281331235526979929973718315032702742204616832228400251507165461092352811555888212600356678739613608960907107527854468064867130410217999585719846370281127773038890164685731323528769439995810436397409713988920792441028502315196151156518543998773012766614337562106760880428892003980596778993726500495326495851135637579228846142157591435656927501548105699326806601634085373050008020283031551438339287820036786150722865108793504074351031373850289416250465534335876436707006924251931435186081388669565204728826354055564660660580351356559209468791143504618417196397852056213528994358468811100130289609732050271038395619353284546469441662236772707574791994402916798954078655988554620713770887564157830452400615176646414360754416706237706848522434856038873474792206828421616254154123833723786185286693037251100548988625594751064270270987117257489970648639607081151214415720130575331633870573551254090698518237657357527941516907904812559352621678815019364484148381130248163330792682103779743702713157143040232927353899936777014407481334548354351969945451051022315428334538676804267024993106295730790834604677718783385654013971341375908554206825024953057439903873882641742688504767615374723739790513252115401184665284380067959173439054475081399647769712335255812259542824116630033179969816228759923770700682860684393505778746684375787240360363789070282001000034975304394396799527273241316272113567543679966517959667446341302198011648525131036523073017396597189375681906979404391680795887720552275970747807495188956040178821599199419444184131698882137949790313541246373066791528947364027971061733127851047317500143566064243816343184586755863941081002442780291085372568969296256765609596117062202624953238584096438353266757411308380302033920338398974121994844598215487436185630149629759603175662031621702412443841201847372411307334258711542844871118049296044381525601117438589235043985396996406655553733189626608881485906798268453061184266431812102437424350074971686626328950585513326200488574719455675824200141577131894799388877896327170239189889001442376844345436819445434814798408426640965879644474431061828302280843436920084785484307596658028086852110532717590993336295736010903016320168332857889574797544077331889277613392403812194835202319538179292271516962961951387494946315859305501106651007971535254658416239119627440828269622757575854333342748808905227800487578163893355198552769312452030516696726577488339708424226735407737224786671688459726401100306605155575183383224802181533305123152861280911018397550562611432484258353623695420084581657271053396394393052866227541769680416270815060817009121324408728485436344441673976496284772513923715843100386506823521894242223357502045620490224522967077767189082451234079750157656977098401313310746949420525432039579613802192144764498003253767022288741104964052045348668799118885000630618058533295596212960166493503226285985985177103662677709296537420786453491214020216503845404587879129790884217330697654598692190770711190095865822086859251867823070523780296404407253615960723871347081169169522650747391258961147944145037988507542856541729898308856270605602794412455570246315694142184459559919113465897942083615291081614390444202196152114874261077956175758347718282683328401924221766463593864774709019401030860002742609808854541588593959239055047749236003517745076528120030136559125451424072448699989780710113666494118358396241575307894055991536678123539511413868537309970927123421054798078776701588275728315613458458930154206863683036742419582776299335759929552387581264561652992950002732661085271300227863471062619885483640189011633638287447052560665881174916407405877002730918137199136180595495745708781270344142974329607453513401916341866267488164855382849284760108599025353096165205861917859628182613541467343079829754536781517424769458509958666118808426360216477680386293186768868287446038228674507140961462304535702025731281830074980968407789213102297759787601496920173401115827254289526250727772562776605682142738278363422247938283365950827892078237484991997843136661890070207572748107382590522034569394054821176640568219365461721232172314985729960516074686469623734438273858393482518232833596622214966631675762602749528363724084466392254197976444029422155997241643854290799312085304443308010927530531662340887693853296864896044395952750163900313925624785402743365559612797400863184004259638070472193030020458699611620089999795547005589373611403259696826825751016724049105480732199361943749485870079916211590047728029789581571084831122602694608270174175196535078771415475347458388382484880644692308478356012903744572516247872793461462243757116107793914908119467802771845332037282582045171394613320001516203492262298796338642772186190398219129320692284458632235650679417971694949308773701551731205035010309497769339576286074821980809655589412131610789838434943015001583645756895633924873415797320272769708649203238351388908496052487437964237527413556029449638974267768152526975925995041390181163211261591190932051802398812634804341361588477014872547018574628460776482845729515887584719574603936413705092878274050187362038011761735842612675496361123929372329117440196564222839828028310334985318963367492468968740385849931449834522817227438917386565948555875353032962468008340018352283516347041948771800245490771539811399289978759192179625941608015381688189974273350853573984359216641335147736361359286209649974856796447288429986887512435234853905461566031754882319974793815402181702398850740489495654407751783222370296846755779208132062150955034100326391129249616998185628417900857075710321854778817077206729206640103619968323734569632672249722131932484182810722521138239469594843820785753843729630852370000091453485638866418373181100385803514439222582681300744835347392227468897642674449779856325600148399860264197257159316420906707946445235916402830445969658701923251120586323831279782657835355710849210330640351240904034009992837170248634773942269491809094490105383909994082546875124034238674690348636273357067398986440103471075952607811117909759589726689136964916339946199154931664882446826563778718566683211166327728535534690195283892950221101703080151866558314920971048405278918724558250489593857202248828433712325848240620181601975279722428413054369009289276481166327158916813475720165591359463589044753889996053917681771607222383744594793002795814366374279806311876437450099288192229198859774028245074290122975796894204400594879143835300176591372529392958798158973976047779273912415250304623565073879671127279256977900952927685698173293248070035162540526957400780892603503260039611783771629072914471451376064424427297499980304739265987804107148145821178094544719742532049242298878855746336161596058838429279609899606333419683100918439675503115315985412575808730840006720480397781893460630787894247115353427242298719013241227115885097893943345403683623772026721850318260770532739990524343104379686756678319579519377893324200308539506043356376779566038801662029099130090913329273708941041253321301783414708960783549068757261557054757896126968198771740991955135517323813337455238646546024007500112879776682557827276938843475329424888721871415028095594036541074682565373077974088978542293815318939600229259169677788144573409331034329024172527275938683101814345130452048612383241415899612347428399758565366629266957809113895565593009005930407903268287014935145776377148610724856820049588258919950800529753082664219808637999485547107804274745840640505693015154537425196879865267532022921235645327748961793971032107170966102804508762813218345747871860925107655742993786765801732039790278706614648104591772383001110925190676367729131654967417407607871800388320372058296021908410140712981821742781754308141759437277014537329312857413029462847366974788852388925239465903810428479018286304935389780861491719112219117869412092571245027036127575754917283873761647390273770429937879215010330810013713521228922932702970147401850385762746800246864789742509207033687497135030518068178693081861126796776489080493215175605152838526310609495644687739682509052010031787513282577253060540848606246575002455439221506919212655058929594162093752906965471317880054274747114192099627229951033986322708814152598728680370085048243397993288539941817722541402494570341707858991545964797625666524319965402302464088487787097953118518425802636370152167886028535547594947696283875935246620577995910048327093358017154245566005635559704525994421559031886331575278137831982616486077500108988151940395146484956159982709112552129979230507500244978344381608667922355846350920039918520569555017318678062995235805325095759397928677298014177244105341595992225716104062357448507120081065674193574378636694917095908839747674130148535289284874025792674034437168002501395808007010567929254181938105409734338527910237507917066666622723110334547526673200464055475969144958887112864074696866563732674212750125733360634668607002569045385977116653653316226239209211120932256186486406267940743960405247369210573862591006664308386700629352958437822749422583867531386350130345204408720866614191515325441328359695291981121790324817125032775659513492309714799752095076586785664637990888810044560282560544394932425609957428465943527549738208951868021330883950291072484416362513341940328061135894861937957123098975147701994478943423085006321766050044849354879021395101954339426728477681319947012002747515538849315438096343996160494951755045538928699657168068382589843623413322898071272819505372166445870484187483424400406191304839316213220460127879136963099687907073645052119482920185459483301025821346909131002610071205750421882084738160044473625558959263023902807329062823593445719781206057005039510376271296897421878930392622824736305895967814778367737787599015019487380319666127820933772576266515202956309060574425284689284130954324558922014383693017684868994911493896166253819454476909024000969803186000626082828983962006764590893956572001203945809909894297458334596324320430568612898637392453423853824724980136207033657594132658478810441497431142058152810106874969750797974069793763080950363189425623120061205829704380655049569300170379730102292525320649379456967820676430969536682008433509332913421002141927812496317453088928194237740311916073079339143613018287414803490752331731785257988986792431860367518001110550031940868962958494870708223444156289797672554132776709349309052140899928134624376639813165782687152101401682747575626149205340221279414055688185093082454942581299801864108486232261968640195792372650113862891707696651182679955379992842575318307546777288971924749550011734309658946836009854658311890109825715681701019676932985816267630138782014352320507216370176157136631689127867462537134761757494794685581325905348818199372660474976385891693269710901024506378221901061608346191667808717869511637957383263558904665177398588689053735434119904922129662876054018749266388002354481609030851037602451731222973031755943540960038689402190037864551660863020684988790121914878812013170510552774588367845821850591294481462505899685021115641957074558236460981042348837063783493319555461190334352960271014075474566540799876786656100469049280250407554142140759202616471088454543665587432101312739466818341372245475318534330521030959870013899507773144836158762704352615412168897566624675582495377313147759970541376138331516220074238143551204465134007984044869520599304149248386453674696402977123306853606315684794747860989050778158203136704651640578208939377726869926468443426532581013613993083521375633101647496869229611808737996189066530953592880230901832133406278781848271427524323435903683017812976740578093465362056652367887944726224761021258301339456148342439568759462727484875861076527436159512192475234387314533901686476574901936369734407274018508624904316317693429132550301448821410785103532546449320093857358198647859947485343256483123486920104285107231123105019107377385913606605872166390943665511378101380198734262708649605491409944605910054593706683299880457811453976590076706198351743455876856019283079544355236871831346018698394838536315049435443859394655150862795678162705254889114016565054453491621822725072031075737606714914750599839809303273448818800744121800650573526320427338766900572187332355247324821054150214891024147771796330505526193930554700423107931999035924714396988448178752536045692119679209019756862473401445714066149776574764009260982894733407183745571367010866674208907331232531796276544506214071670501002723067210300619457874236294278587316461688810334274409444474433635748268006447201093001049095678808532060365524276884004809900099758512336049914665083278242467381557282429055968290958273715449607790431401585148081541056788335010268566477428539016568986808258759446500229398931020069999053136694099156772325801261335153216221585405285270247580742740918773442938385610627048974114544790553126673197718656068082357559550909503724828279849874137663433948305819987723394104670999941205724485820808026799237130949415526636238569469769064186787041510461973294885458702317663785779756399494493472941634497401806976843612719792560436664602727524405796649903278167762863002621286430306588344872861896114389169209338514645455026356665159104014842799961814862358890642658939604754817654454759042038414768921017037982781129148675366680462013704592172659948617961357740765729249301185662591744622954139536936753282071650932027420763395711695175659774879186524470002478255738250677303128269031324736595656639170880402272788785361851899791084316216713716294221153059101150849495154545887244246778528799308740314538570751598211333735391683258258277072288568780841248023824299046156250194507118177250174857621689903681150385239073297788615648807947169054752004888695663574602293906932423923346746312450904761924384545332122663019500614729447802618965869227360266232588936039385718526127665233477499391616541253702005958518860146248023165534147195267201400679868046936498609715757991983073969779748259704595458500091190091033788696857075045025536767617947002331234564708940714639841319818618089867093602991586021804188472450782441221457064063870248065758495523745622714214450416703152683149598509427598381613682481240322819014780046824474645057919087631725575646802230993601228170524422145062880604587631339552463473985954361453567183543464247968303142416031473245996859829731395501402706524312569891403988392086710431979637400014002876602744705652884960196341180369166979072489013498008023292005050974905609374237696671914775364514271851177873428633263858831585871964775734981001253891342283785040722522458141278749609393009340358700480062572932673273973945428061751706316626684090797462635679275482746335717679551779656238447476002680595364452686709008956779026170424307644370299778443257124394835783742300549351488725441233380854172396267912602156173180676761984674111980678359768939965154007135835475569518420357361446281948900955550804688324348968939068602150091895546368502868910048972829946381605734639380052990007995398152326399974360396963863972909115085006964717749331333357827756863748827127673587387380832435540101569844582833098460289769994001915696336867087569006478252844532172595689967477492125962422524979490313267223608179531388713262642466157140791644805253564211943071005704072726459943082115855286767242828687421926694418956252386242223780323474856127605024122808954135055336888605631625301451337257675199840913382479117572079205340351397490888849368641926642285712503857044948172942419251652007362972553073197882967049153079748004155823313760022089511406795739041704306795941177724184382384902660699675001753257987108534655776467957019291285955651801524637519173552204975469177259255289871212227316870430015073255258537030128547919781606170547349677789201977729085381512609923100307934106791110094471944768775955644249082581430707850357754906694010793517968005312572390654479141857429061565114917919902861675232044934724673303123927024747549253818422622786884808067517515111615495310698884971240803647925435016773381714543842076520284549349141183776156872629054103373549341175022282027200157822391908621312643013592794604233737042077761331976452499779658656904867581182521308986202040542404875712155729410000098473186980630135951193557046423182510036087720955940336265330977525103013481617318133672762700015221379221030261048608837233821886423891196257159190352486874474849639327220331134200905134657902247639169066426992861848716900550100433844628197097477992667499960920901130578801894902768667092423417519872028195861122141822106790561412534411481893900434371126241850259281076874504347059044506479502877363946921247144046517117783060915666463555285788023979118530132276776241518392849172744827936100082847355998379884757410415748061138328419885800093996090285850084607592789760320815176021033916044110341965585967801338659644892317822427529135953637036280848963872999866507519932222154058307811878821506265622858570066415127323121408035670156317523218958445344406240004540193672959409107570247261781131856463826362313009230009275572415252521561075730214957905815180128082116539907542714202469442323102288928680804152569577669091686541883938370555344867100419591966644721797168454732765008197405525628485630468693056002956805811278491581575861938654535128341017970157458368927707869806029889994990611386859283705633297425291691790600918003335233675488970064615528703528421542365969843527372963978351698475962677175838304503088668346634665464428369232642091507511340444260566748201786370062136630584544508633191144636727848877573059878089056824250832206498098352091363806968467194515108151687127119150402518182726392552145936576528762451060470027137923803104507258384419013213127767272056840282231117494645614480870360556510725834347231568236449926541297594763183436990818486278807326752388765232896965751811044031859117237752043248509562703392024828050488815344638835455836273442580599283207939701611922300371300923420753539684967758978689115596712983386756862582599559473849289637860623785461249225467191011675259172344080794412534044714241630778579073523307744423906711733112028498679108993819660235397885567247873391931680624184864604930620599417727367637137991539993275161766282879912114592432973744390073204445873194702553737637450265957348323602253930982847045998983885511846096234507455398001641074129747898189906596088407981210502304770300436366385538324376708816767863551710206707225322265050062356688718156664262476567491395964631371594330720128065208731101964837834787221377401455743853885744048071354528985088636737408121944595510445244573189512908021092231275073831807269950135065892732388041243055522672297606149666427961790188935441559013227970732946736010197044354192859498526087246559068510934583364201751602516528456523973243888474046151590368888377227966473905485415632434753132047390659584645959416292642393414588273914037432538435731787165141704044353551848894237624072835840239017472466080990473631124565885280016757837873691976390734885947401693060062697449161982081862169425896652863667264888555677882764051244276466886059925217111971267972224822226346807175377943505670132286146000290052584644420120206918266467163507012996876100363371422536243053286365126601307305473113571289093115168600012506668834541254987520979570655161530387793040397562301254307067452311066080847344540624395055564765026285555091445481597892353489964191379631713813546809368578226103947764927808505895030302150787435976703322686084314137396470668948393280524016309826418227478230588089740894984758073954815916033044189686467078511637063904312561471589789993250953364386770371007749559906862359258322512213022792559739206427780472837079243749011186430201276737255277199443277933909798027066425663588954858023741933660954723619924305389529402880540709390046878192673622782847010691902948914570128680936627653140852457866463430169163051835502755317502697944727282439713708723298519027893390037834697744610345880605571154466918415059837509090107419007602640751906607712820778056669347952984461102944740571779448726743049018125607360161484925821012961361082157312920520377476718768386811122652329126158743865631038812119996825833951860404872250295180735452947212948921822981655145676720038547454334145969244180708027930960354151372273401272085451720087887940657259061570263426456535058943002984429144264523600377687349734907794046808598260574389554926135495477234883052370441203728470373084757389242439274435882329896478842108524464848490495767421434428717169582748970197107951682425333530141579113513425863200110028425399911338722590474306626278712523316942313531340941850200727161084806942062380492656226785651473469738659873912661448493904100269495386982079139782476099239173914681693486053085980930131662334736045063391787102228666429156414631464977040834897191173006430442349928689363179416671074269024623971551261477960720729536132258438392153142368420267492326772389490520500251346795407575659312022627260584005735965920853696108185396736906319990737541898887863624055949376386068804237719006462675726341352989582418544229743416440194650976916524540239957459200342694810013613300088404137005680515899272521857660468023366927996902475700991266302923064615538886084864374491398131075668680546786840231103122169042444103879731408670550847465105282313326741020068735368615111683302088242104453498208253927522170167120421911970026825346536974017434466858797308656923352763667242569872299119789373856345484573083436875917177063588946812385249990222004107380158957598944860855549377611663679963709175258988202038832903858055094861857264560610060879898964507289637708407164582302346546706247648469711467708001476686050299809752771232539145086565586041416279881050131069392874461190640125331397188024971826461861807135720487104707495459189557497807333082522908413184806369362928658115002346306478446680584240955222287911334884597122543331745394374717503328551971619006231645343119275086096508301141759819235424963383550502817450438775966461853056927884493633433265462861854273024758781121687166365925135414648611527719720122114948777357676479867963547448472477164379671069412428415991816843388503377181379897892664210407889168901059264635394868384896530751566350636400802405702108610491904687359683116837173192082658198809031720677761105977810467960213888862093431812122486853439572588989325707011449749560056041181941937994086125654689992332073853019385063429873732475799072633957513387880326616659569675670456664636777004328850460403033088520877237403131183151147890443168715802512726065102892025562142618223417076484834425453270308638498017557026224027264337129657493162881630229280953258072620285876495022066995315929776097478521792962649387416781683552622398644049840562338756161856250368626218170559559178529753405829903278823294812718701999832390827897951881061318949748738351042027138597111755248411902442674117338818949551082149399402409813906783837929319942278312893358626795286163060969887861630157015269947946433694552755578019541947446863465977809561364542230567128782200350487893084614858182850272647912668070241690739700838386661659298396175117583675561634746832581532782909406562690457728048027715437575225722985895933863345139454532852610253875854103907306325693543118528338627186077631472568060199432526001864027946761525201067571974662806704805067541715179199113238446316563445397614643171226442487487417271523544019846215508170725268828439411045275309171623755178011635095018849552843887955214726563753766816641767702888948932726945663312371306430904018061893529810514465657637185652432574453682561765246239568591462421097052186441530510041671959438023959710038500943368705091135964604566637169447158696251449829801938267653418004207076269612506113360984394739934308316833459335262626941078168991875561592294826864065939081014342012282083712715759728097244833408237100831867407456163520821116407898467110443336939634303072175748760964793997311709086335290457238774527242424327968800147322505749701778416624702781568184303331020150166209266089569352286904279048575965103747092335182163966799498476678717749260956840186694635735453557072669309512605253867227275346827343389715122422011009714557199412240240715967329439181756687030396828037356129174620977052310429319014477465272509384601688109902025693998829489388555611469042015165546945356644719533706882465679646339102265919310412738129368078159948237002612324679955274792967737841448803554614547701493317073334149170810014653792907706307554063691235539151030685561555950604165046859743730837438498671170808028180364118460591021627902490632265163800799996828272805568400584620795432443750791073135621955703242507704940185077564132381112319719846578032532855817215191042300926249870438171256272186429369407539789128274818083231793430711172318908073645227631117296823258535424802180962753576840849544073536954278843157738868432408352238520289318979401347992221597063014876206894501293435638860104329544250914023314170002909641443402367963922009654026851262804191845805286308971487904631237584633302511153818659571098821913762124798723851011228873316264849408846060512643707144278963323761265736725850286811288200737036999188771339186344047616732463152872085618842433063198183568147627257016377527297748752307628549018695145996015340632029587727192955585390194953264330369872835380750919672570988842911080609483430497974703178383800181482300915828513642329917884960306590853204442637284393572750269775143012027155872319860532987467572856472279974236155831627498234696198800677321012963684836702246252114987124699245667113093250123239464766987199634787529593046560454708915821651506153351250140542021635834741911627674595368628431705699852174548269836990197763657895928504087181673010899910235999805078647717711024371666262355892572118922668383305773947611740048027101779755510515780633056027799519096669830845131824566153074366115702849146919805322847869600408245275123239184141238032401649912116849701659002053767384186750893753593881076366734775790866828200142432387740727391262117603421868008132447977704998077211588533001746194147659873179363209692043000375715170775934084507370931769539715005674549535068945196227318157083660065942473536365728275149784893953561134725010141329610341726855577068589991677885486770756764004754881371129471888029589733921566316977451825827417404668587320990015755412759472196811990990685126128864055814622178000450770862793174888364839677706195384184526426879955779945049392605266347362593207019703186042824449311039748950382305993349032997852616404366586224402388044622141112403839346277097997463139777886147835510903654405762117230806233844944054584957287733764963957580875119917192404937641050573579284015023458479948144087687289247919533098530041120523879109827236662294134925588345415398960711828451100490956408269695399600424142089095225491444045462435074548100760455004738996018384279007133143976431401860093346100610055097514788007250510442543460560531287726466223193732432327770655082317113324103082480689769250007935158876072918755196302174510527723312987146792276288704296249311884367971455864968768601543831645349873311239984681464249396491918688017472097242478850957206781333582719717374649891237316686672675943051902878252419525994671820704207824487811147246814615502230304537530151496365863335329153453003948361082700975493130452435434381075447717144597035487162804628561625694371774147366357105690466624408965204105468969719599543297673359601505002239679991601927831834048649545642283002180590853895535606267272323194412382009617316986251648382267604162361355120387102828742639495404734549888176364752811242485179879432851644035601180296823576840659382811440233075760625157916789896827814330904018553824374099761458108973501646345810361061385517829454958732719525166766566665717097446773408481378151057277519633744860388887038666071772334369960385952638977905903488213876625220184903264152025239369540702736310289249323143394885884958838182242525947921256058814328262918514163454142628568591757089421488593062232793917843763734917936971121698930363904359391907001944060811140244757341910075571233212362355221747905722652163484667585136115779078392018988348870904698331041285670468869776868696921381399573997717622449610569527971128432234992422983610092202573913604761843660359330289369477926527753765232668467827025437130899405894061778326636917821371777749539772457837794785194188621054796614923761405599048652208352101706816075219207178405736060719205223427899665622210988484510505518409786401039932858573193378922554170065037528878242353239283366392405262564095953531367074349633558036033025162899604447600445907986515006979997325384808969687635135334724641172141770651621009992967068510811659610876493799402754999675418925108423250187473189286314408522766432266006521289344266767940129766685513589402466586777276364845177810235288089583768551269564213482400195883113808407951474591245783525601231339291137298175519891291492965693659607908514396453587648676685044469390974250990113091555863618796299653476605318366768901428433305768313114293037271356156867449871224145703365505470627265908359262724360282375849567292194630093609621420760582896609607425205993616156072679632316196641633036350268451430150927655755626075912065125319715897981380579036161410439535165901907413169015239865837667733092151560989029756513851670909468809416511542412890170934012984468980122141491298289764400497623028037798706234201306619012225038390849671768111594466373203782807940386042729655593367301935555061617230485627387228618618587807655135020659312246357626800022066924492252512349039090351632333455068480030296075563168539460423823065429182420797960676416195701950054837310234172038683920162135771188360160124978498134760219569107318684364968297592620396103306517534570815778756468181844299741638156382800318969679073934057862070734680028033839855242667681720879218808076466906259458675365584245027944444328641392288391508066775642177978253398813994089851590235675922760429886729788027464172903536105413896498917023161656195506970076330999780151281441675294853533448634400430006098188456645046279146061631075574703013620719646429053551658294079680058020874062895485715602922542129826408549794460984700790944911956102520854323894052242499305307382687666968396840866415695420299263389079942186087124862479529567100385785407841617903330909581342762491113354542665106692661216583486135465145035343076920344092423836020271262476707673994631784221450798971147354518937791401046438768633315249448556607592925302668146340639560555875997426982786354475782645874210606500675310406124770047702746260290554182817041650776699509896122078012259326093515897268255876378010512685279764036868886596299700728678485248443993154652033567652227105983142741221245252871064037036684151960069377915778761536701627792854130963488955833559360490059389871037396508326505128422498414892164416998008234088684097866009291622223149447064336456295156539035403581016543263720377034899296055607150978348158027914076598436939061132054736718239847220677434555302974754983588722458070779197658220713579200624379627343211238597245782635585092126409634176037097316207211111975189428988688760646944860934021501931462615793389110756156043541415578446802928686491779623213479467156920603233430613894162329730761781596810474287057218165512725386977365503368053645536747375399823330183088717303805140237003704338616640720308769274676564525685148089880930921994341200702297652792044234836697851459040674279220393041317913021966584537523142719840290771262295918752507187346461349617292229262368529215627793921280599591748483496462251850857310561629742645420428015028322971290052498502120472759712040667628810814631587679201887774680202620997891192615422167097783588754226760093254656883039563568576401914616074955633566302151537295013736336452902541345539590213637643227784854251869269733632900733921673415330318761569169471817792367821491918547918778169918342359233488533423906295116568208340098611503283236543714686011029541280086902865944722734970460350377155875570295601423818350861636819196650465830538996558170941738861446382716869341654899430212993793338439436173990488345489259514834484523956874415456334753153798356379256149704936070468825563484020560412675427912111390814011532090579520172269462009611208177096607780746755004115779590721742292380625191389156799639220900332721903148996088532306457279634524234604386055420726714806997375871372283645554605371600161924490326538636831144925816000032694231236667524835218377780346674454950077318625839440188667916167528633641156260655665148411987428401894931056829435524230480217385565380890759696820318305798898816183597646904931882712914892444140129257529406455178158290273393329683883166345162067594134952303283556263190442599238387142716212590220708607521303526897855601437189703590764236503832677314665716837507461090563954436119354785296583638122745306113763783628933184640701549248328997396779832518108208996962807362958232285467789833530669281777598177861565730470641121951392479865751691435558966580761235273748765800733475608299692106769166315634739301641442246168740903735594978024736260261098220545650322062645047147174233572218694636662083165176161689050089603704660071411180974208903114633495836103133578452750195764973142011660887015111325144640443685041392619408221332802650510727316458948339915184316939084966917297820569665001249197552048586446815869737129183938214347985077668377356207618765896993751773450659687349202887854523475154863438566642840766376012769445511842574439084668395848943062444683428858402677117283849895692429466454056176554153377118112947336579912139245209400226600933959196707830792011463096778568529462875326149300633831609495043081066428486244163351021749673461420014855946042138216264907025566485629576514417285263866249599617502253359832773493610905118547985919594670504648687736822227484855280565364330391463994489586486696887097221414126491095675573289077043150043658898852685864730425176209111344792465554179117153607087207300540542254790622284083035091108112641774785105205609569656619955819662222746047248239576159974220414319587289699283981027797058967374351483505555415597715060920179316361458024485292633211785830155661250133478706492016867202756885063316707701814042118269190462429849818401533615859399354667628547075805705648906064317694859136705544041598085793322008291768824970675201346070764557122531597285418112861677102666079775333637312753684634034000812410638092759059538548798706109458433255659173719653917226552813960655887362676891534416841403278777180372385805876094935911136815148906931022075058748618897618510103346618228792641136767210484054511916081299755196654606922550487825518810681427770239755504823947913148020090692177743176312305689745688350977807959787592724484008402086422073499656992449854599978991756132427276627776024933052562713582934671956215967722850849480562594743927391462949833039045802311913517788021795383787622438141513109451053200234424523847379369489839136328911057319926900551959952689353932726494361061262968557944184774863262371451154565573040661851528053603568568318798438546403226893297099501178912208092809292296466594596287041701365477803720588071351302341520871026090999483267212936736027316194294627160737959328338378178898782786333555398566105661665389631261056818526537061790445969263953816638492127226744256524194773743377171867781724078111192293333643596499793590535831956273816347228905827573354542159909609570833370183167966661619391050987888928732521233494570085455046269264694108503399614013511456015123852193328738561205331735443239487665123894259501450662513953531363375788514769002376212080904250047603726936867852480163723397935879958677588416792313837588092327909757589950467423131273450176802134112420181207263307295461926451222518739639223699208140219398894202201531686357889407910395813868631159673878570834424916436254445455233680093325275318793596851638999151344115728656079370252980121825620708109670595863446182339716582957116391322512043600463256882488618751251651323151314573532916113069658744627343647129306324901011231110666765126947488831195489484984891041607073007658660535985027051015491799468766318218376004408599944496460118263702478469999187870330291703776757761578925701472675564788937273226353152179552079634108330703835503327336060805846414237908135073416511863019464274728271620968144154516502307192420088355123120032598476344310048495063946897564825240150948315697824928027632637978501390193750408662409508806447963791786231545083422073551437907550908073407703109487736009692044977428666301615270882693288081719373748058534168315220052530321103809163563510855034068769045620070838046590937981331128309467819487975497400240616411728622908345118409628347631535939824968573961002429235719450071460357246871469238249020262167039644575761208068054266816912111756145898192303876835949515437960860243171490471118998654271556351527156707406077996157065648846949578325148312214580766223256579199683430496538097494073164979633349054429503737126771950646392269141752321229273072193909067671279232637289851303962451921074510711429181033815600893701876587864195909372591856931260499724300100458517794778253620583907288708916717704296391927573257073798107001141986858244491465643006107174112607845328521643209352388282879978821458390461926338363669106412658736473999092576163344758775563894463465670179339387537102999721152944595126717840667857219496047893224027767019415382941054491667946527648452366946857805338648930887320497452366643932276064131282642832663424506341841742348714507066907664565236908016500817088690455995165905627962881798474473632988655314222807173916816328838128017988391254379614515285637792764902883054896863400987313839860943990318975355515579701092802042630070001926157074467473693947372381304218087250589506065892114551432954185963359196595935009147840313613018237503883786033017980723916677859088255158015814078775338503524442204174287544802875361336858305762866136588952445959806221809264956076829951108938869876266558600359531177938666338425524297435989309684019948894652954942477478306911010814902983770320155986040274005273782248943286107501198755508788172352005903258924916716819523432346913488954063344017910573999738450960461065832075473570307931648548684733048471463881325441432045481344660227598000883454533161393423241125466598675850847569716829498968553934475607907682557807257302828081797706908330727789930862259671030489255043268980905717625122333716615063200352132762677751396106173495771324793550766828657796851410896486710245714524253706775295102891101067831842353926451140276743045513549187707803875250484012923063201953226614960111967641879489124516379046380130766385549316158445462532627589067001563314892501315062394265866331699526581975130778556699456297790241996529366043311062112766321287165681755986675343871039878947124486467476819676468866396989727670165841446251423013636302576715196862454077528179608538697577123480678566923539958245242995754263766742717891292392356350005993248861266345610998924267935858394341755145487738806645621787041149870690279755509539507384381261213680926048483025071739270467633601160841194976581690178068357996268453223453828584244461969800783933604797776567040173543929077601219873112430469319983125281579112365396946198063143966440355993910481497558885118368640978573697909149897567985908788622185637534354398270580571592105055348086472765311468806029183657417769118814865258640323253180452191410101111120246192872595600053659503228169452690919616015636106085884890015195199311278067905057496410888298471856799566501693145321716443030941115199175714024834343118991731553479704963359409890133972951640697453778681487507033955951523196238835193160681444276505808053478923799315748976338230090700075811312978598639464771390230510546953459352103177077783111221025161667243606803217438518240204919585072097921205661135974507065824931309953602441463594891891284130691175738705255863418630989730324247790837397161362003271495800329206891169742460927594466098295446838630120934910202038722159089078738486605397699223086907792996540440622146039400776575967222821159169156935309712121614057685707165958578675244532950931816829731828657420236238527246549950117328731784089521074389672620878837847009739874824785030027536762619653978516325294492087237516833038080364813426453870074995373944378939334856743165231191003844318574700655907032507129658712968916136605145405808651404859567693656949836603253350367458484571368487157534489252616313676253289780883484652577937214000267499709333814938336824885014990392065078882630829170356195300443826594736222111774498868405983104913445907553688605137767089384808443359737952015645449112870697194051971395581605419472022427390485856591138455228227624658930173137266112559859519013583342306088593498379912975234726956783807752699386885728423649776148876199516016771604319068936016388251415096836262574820475821194116289394333909439040031982239562058275555777546920721609925457436301039426703297550084423142584357702530811456116815728216468304508629654388642937933162346551428344319210604173106534517213644894795059010466984462494820618097226283633149867257410016996948386161293615555305522788331987676663085692705457366107909635999287285563618877752991510907439402962733740526417933998664737235570606221149869203587033419541872370000664480579248457935885348846052426897933802188188603706021793834919211483010201223565969845037235218950332916092086365433487609044659336697643896273969573514542278930606634341504082193239619846572018968337227947557834069927370757070050687967894686556681119990915988116678985100631435051731696777050246213627954912074530438065388042369167951988771068542701365079687123003012039117785411717184693830298147115354004990969593290953182311862422212286304300382000455321513539643156349368847375145653115894379671308105254204719837010159955137436653228371687703013720502022269312458919752137387292283953157571566999823327382494493707835457624088921444594080262554002410980008181900340215067216626059582230644724405298068428376735022390577624956661901890540362599210868932906969023845347826671827897312517905620219448024551431146029710922133098877376478232917458845296280653948560974264105755298939430937942476266542896975060013232382443593728086872803870564632903715105071753458505163716281186549624845625196214345756610644206172711873426635723957531312493613938695391127696392844838371900690550338356412486637371707623144849726526596534259255368892655611161504490648162013757001636819775468890442159701302778116848149344274755264542155195643003934827082381342074364318063381455066754465047291711773598671652163297448851458176051753248491285363389855407923544291308970149384009901172799267072067656958237829749309439216583902870984620745979102213089032250661400956464400284058816687336408509867743230551694199370466775061981394032705501897722638395763926158970521907883169553230629930985351773640705615020233291544749006609613952060041622668547283037941948057738052327551174842324576738743738973544726097890366529026008694204131578753803459709104415739365553821396052391418573421007170184692121723016463737230676713894216061835626977192009103453894801586818117731682713290255516811875907299759219061909163772510741890447302085614931227167367467670295832668250412656198746695355056490889007073191680323727361842643082299627564349513880975691862766404559757286225904614412379391906212516311128365432119753935374272755261398100649300155235868046126683162634034664123586561334940098515931752294685320917200009417263927274721265714371193209317647550311120573172114379242024661421376678896131395062249175020854279884865354009994009720055611392623127369340469051061536468718513883337638333243488701706325306551146347745192746803107193979093278421365485054206747530713533612465101167052013417114288459075106446287554023302324371920462884408595751722668310239648925559352345467365650786394270498529885025462484055687215660937731336078457849679988016943524787669125077423109351587055436003595277721834844461790323391735688757273904824285387857712553054516469122368203023906235204284261629377687615008578477942472707246004526669961338377045610402584786002688574102856753544246396367786591058939350308669042778720534312958806849464868039013267156087227904734029506259730851114601790659246584145558822781751116058787063730497699449959864416973538483378059088564841196931255945810014068973603691623916499364546786394078926944307748827381990837434160483166358543598543342975486617893919311184443771634654621379215421879196347002735836313816527866875454302914408879629953373998426078270146105742332299860400858746508051574131351854324254926255076392324830837046178521614858452324207189877585728752107638218016840561445002970056771107076172945996055974291936706927384309464903459394088862401303985307256009444406503497201391017143407166157117887310458481811317410799312521297412292822809977916569399784519597375359420013528751291764509116251127017674255138936638342063542285050339200599603465438919768529336589839699532226832415430815317429235187936824235053065211406140138197164014758806209480435446047378750029898301553769871691983929991428240807347047875240375636606867212120279780332615802813461899215811162793115187607636600799094091973808072471512831490539902003445759829297957956583831341968652198165886080096682445428321903424913130158399019990995214324879253750340369612934277649859712343027519921809496616417824957873587937555533551151635468598500144059898238912672055675965157733457122482978744989804741239519711118587714140362195202287488839977891817971981411940736996867897140159020527588403363656821676908863883419103543874249163534813830725542051081013477347051258428836734200353885764437890427379184974945703751241755139747048189870841181287659688300732755456644314108236223848397132334897740966814127268562166230449086098132548406563162449933677751764333112185248439386841143913690202234866375846274954713195529653327621624778762936176914690399187110896290349806910050705937296239640541840926645647320494113323532173204411912495862601581254912914558042020263632444799135862156353010458319016988824813266670380795285057385681375668472795465625660551631853145734276545461699260655444942849231633061069334054549414695571394903056175264223007849260754131416655497461453876030000878614982409432796440124019925796286512671386230088207020704193884122598092380364215024388472664267441130159556131545091374163980841351828566886345838710482911870526990978362568781622844539080218317185488282822752082300586846637868808950306607140033830351378157279689183296211612558131305455478216036171186272485616969376024958879992485450284832413078571881811206458628948471918173136332769412887660883610898498231762856415025263949885065956143584262474729189344570808420280301263220229415459914905545751586974657447609525688320151428643248518878455406240880975433875516264920490715395719222072153238507282170838514924744722547051912622436680034659286294636531345643616783828878695779383164959757449799379112526205675820162302642623457666290907414997976372135146634180802820850658943800153892706925299631945038899197989792121176224354002390276867457357613736810840204938642201937258147633287784332411801744197828581005480763529155189249351077378604335748458829261246180323083317345315348554757227482879100731269573319098620734015078098137774673764802559867074069541460518061690470727662645096356792032446467831752641866366825635740328679100444780975169133606594155022301289160204675523946386347435611686259657803835764909940062593152142899545031306746485227061642945719520159028993359216062054458392732294563093778248148523078348210547391086894681652399991051785632347031014205207746747299126207573594192646668195038007451332904193436302646857282023957500830190737095263211668021709315884570045163845867899812618104593284930013206297043956687534681886691167795857472459310870405084118727952915391377117254067318308539486245314637157903007237974581454630457568660803360639581537290406737626087193275282712578292141606397292397444891346155971524138093312828231410801865708251789407090949580423865286928156061677797531311675667550366871178275892071015982389591339959622960702076358736671734661376398226461902750255445443961400364201462165343323147623032131570087364442601839504191842887686678959734943428700233843846415293925455825350805019381367393773080512535791807646149710371780787990301276435243796531739693233847560638370442911551150136222580866125475501732174382123629571709179815107774011654385593111090929426987622410641178930721560205467658420333838411879702417196046578075670513078456190761629001021866518359876576847528660008512395436863681549600878685048162642281644750224853747229414859679835287856624395983230451589173833543090835923224480823224653488644331855259051964594554454922482587986764843198074156390325833826214487393126079857089570795996515254514819314637425716078022175665606142041034113110434460580323510796669816577843082371459317307784468449418986306728654511265457023778748427100270614950522111300552479395866978412273951074476777414499785501658867430570140470714920249322607806218897448581460824683479252168581148379974223930911844518885979843328335409876383215839775264977933342323693475486159274848839308493777904096026397839684731663197016576411139251287938427995180404459290838792671468171953629815716313066688701141743183790364037718257161500864270851422818099217032520439180368214087264135753868631390219272478070430091304824386796964787407375902192785012971840873732144871119702028871430270674008626550337015608520997720794053869440434168526653002669599321205444927446743485190328288663865727461271586006253870217306300793554792369042913081981047239398680758948323183125630262630879752690666668396326022453364463674329708860426306203935623638906998338400659544213065730362533824626702032554190748239198535128377231060079810111867217378720298666737901444465644579814347596329349970202867591463458730967981399082153585220704683176326975404886560559962512969138456127580105849364809844995030563159664298901980500914656806766061567045978309713393204177033874914960709660842850263580252690091974605858983626508977389411456199783726257121958682296660725513083905831611314042830561953431788633433192405590256243134712075591564735111132539673522011262817847765567385939196608220547582832282954234239774870248641063957282344203727212970896988663232121702258565164730521194504912403617486655420959914105863375691101651361253060790390840932461497453255216905208645690348062748638952488011022210555972676599631981863295521732189124210349777463259849564991927295127582182048665911100810039915330216022949310527603474160636464762337440237853567436758395077944145745206551106035835411606061899530080328025830530088159193209527808957866407140735647804258510713775224506412149529861118273318094962322593698791021572715285542230193239058383593057632651555026206396127899847691515536514905629822606673648865184827223511284708422005721961512955983346959759024442349177862119217380084291084357531658412993045905116474358008749854343906000152132996490694921382656828316957672824835778899377123116954654349077924288714019810503498959020076140019873053696247111285192673854213964663811214472279086352192687505579251760427429672865281646395240741739349179941555891769542971223366079838572096795379694090179821197249720915934900596676906945993398239114431495181799711440298042646099192003972411730666246428918472257156472087068674865645784356810964665160239459200826773430647074689289256189776492615137879695870191675313857718832928806305439052046928947412445065319025993749764507630996769503351232681897975731743347071774934923240956365912096411534085741545880867130185503487699084832067701779119435446510596074108053706686939334438063514316171700949868817144072898529588703434935718749018522161217600379236118041234117532767051432131016900310923830931279757253706609308674786050683330921475509338320390433501200656491933796211292045236514536963322527328277436408928244735609006448184606999549423944833178741757179312909908252264679312805032811334802612056616901050365583425700062313621616637310245836775216224876195715079924656129410431346226154059783457206984787512217480105458990142830385663469810055720477483910084559880736473399549614102686655664569021607397873992441569959055266764725764906890605388626023817644290833442184740372269554684112975467976203635481790206983939302372079268450551650597342114637559742029284710971872368840708470465366366262960717873478428259655076000642804002043587045737595024310968294348536722060831858022485185884534837833439017942618097889437914943141254831460028633578285187760894330521195779168102409984943854669346134007310698631250741074380679821843100299824269710727487251264089366663846452902876545367460517573306155526436863223038891285963049584396497904081783510743655591241903599996181526207388108113267412951173520926643971013300682548157967745949930844080020721080293145001781478561068099924015034095877662627443693474956558807351643373178702302000089968087486172856272116006824327688590968406502090439010430933146971879892471967253764805260239037181338098062767075050931325409586479617849846227687118397964100310885387599322707249421609484576844429651250736961940913374605492728136406942279267545530605425283744521518983137405731612421552482192322673636240819453440120649756952770355301377337530204050782988129711456532143689229408812582570968893214561587110082963228923321088939260601540370378913747904015139164497525416209278119564899194829804941299330851913793827496503277038284167080160814830304773594422348726213421283987861298074640376179275697021875208491868889675731079176455636935660463890256955030928809792874952881912328451218580872044352785137395077658725226767354194282287291554809518861626938165535936150141020802040707612657672034802018154085375996648602250519943453267185475745220562743002127493526710870242379701590795860487027059413172729903040697940985410460487868778698526579107103909623696189996353959438281903362234212749105733556108635037468777186835692776226491519080556578244794139280865299202319922059387235069486042010808172102084527343063846685475120685432996024146914158884572426687946645761926263678068782221653253702254863296516597337971650417946921901653730140749121224563173022518128998824606452882526146385625757322054300580785983024389105303548875153290005100618689406709047642912847683238928989219360409611461164392687637429439859308634495892389593918773770383789652227367123843404272818101564781288929540074944561609958175353162189495638550789254027268380275037804593329277515845986600184476058233337049526772913130800220667318191796326633524395681928548313082604357677328381435156583454104381356611923663823458306264297824264876645946345124600691131963756467308610335839570471195971668064184647849140174795511113985405643636866833947036197980677629420120992054986589306546507692518325544018018709884617968522280910521626092255756551320798870487027048593730185077702437612777063188334904876338052993354551002718156545651605724357305644200091435182786131924136757340770898584132681478935595321229774199557582686615196977173689694333608597515167876447862045100203041509543379134600628723120296036807909459297900589559743469428116312719776347305861974903680918755798597764228538340270064859440189892129093964504296891604546797874988987645000004828573860645106029513227969917723171118619228916711629383261320711513223453406444909399675485001115872521927291560486661902214854720140569247271671515669999526550189595091385697749873460568739767433940467563880449820007357463689202512628667305499200219016484797290418100773695290521392176415818712677654861048437216254312168884210634175682729320964757203282530933999723139772020917223204429257862539946526488924285804547918463315325160182589897128304246390243097440126292589151765173855787996779281508603779770592421091168143703811827399487780019597027506310133609695153957411853823044093364750174834058537243569633685563461490489797014720631182021277103988318192472051642618531710884457932445328377142584170122790488486946292649556357649734699538521745734137745730764163628818507328022323969982178670545480354722308212695342408104197571149213202166825370657902268829492878065232497493611633287130371868370821986603033452613856042823401137452553230883536277086683033913299003189120756343885186695145750454688887136942250175635132918817419593020897152045021551973254224131256919164953678270532129971646507897463089456127151359530608921136450864992504361288933492476151164855099347917356052143710048187374378730610796646343604671434590036185715156919743699545170255031203288123599331596747503013755014538710284931632537654385803814997602721474482507494827438804095107274242474347009372232685434136080679036368711530445800835465790401125726580501005578208899601734822035891942711146958620058023078531336254581339479185371109482336152983396993135684775491422546820128499117264463674817326002623128488794969710054223223967517967409289013247273442947673570989504944900898102867849691084150735646192682411810350238304496968716501809635361425564563068750126717464385504423022675711432342543076427992250168068749938480707281202111805336792483197946600259437608927824155612826901197811979113215389528265436836274591781107992402012303366761846498493376237832801049810082530015284460982634102255254384764183309846057212421651627967675403320830653408140984234451745835900091905543154090946024085334746405982792452103924893553744415968411125948713339985143719152325995759127176006515886168851548056050871313878795898529725867293896907726600409079560795020099244868804939150362644968118398592327254531714322092180602913608005960014685737352175371556371948287089797319784576551540693625174572668705385153234631501686078400319682114519438542472954544697829221125362773621725639729854898592377580334015093077266591377326755436566016434518382499535678162112518010402040792108242534405679599375792369186387464313757720423806123818633481022208161280818114960886730127855953449969891413627283442693841925475807683025743193810767959572438347737513934988925106652413076609436565398500345256753733196739412732176785264738903725946669975030419689149307463671046887283079351230487407698302525056617346785575813428865838795902541796817797201700870991060785901426317535302875079267273925892685377876259040727759405753189092410926681259022071538032637858221532490417263690270039302566001522292422360221682273949500511863295197699854428139518791981348700879511590175067218648289215357778669827229708084988461655974581110725411421101102085959059787608584054944800150308295410371560791068130360121824909048219813318940728797096658493727097742224645575978852794403535871684358505917234457825261279034908878048793646217330456991464432531110808316177136880435956242071744575186058584410287541884809306945354272391797232065309748634918399538839316249886668122969220022179498657073454426102848457020806128689030260907975448501528973995885114609970679869889436282998862678609398518994945177630286170416378121289598468007567717843076522938586692919573337309898688609080800121426294611573743262335116448095697287318504735604949186311526234412998113859382055705934921799561687930480356464097057247171864958786769065021999659235861741964044245902477548419733464439069561142674786326160680111684720694055856884359771748433819563516702828495077547884194923992964535457787872456571831913746904324847738106593119222081585402646890727183821180814768576643818495520687395306581248906437551074345781411670787681316267014346628653279882134440765671890817955854473758148366342464168446619175371704425623190173301983566084764588189888175740808227867231408032043628546778142668833079392426621751648671982200677907088726086633876547653878733606218921221950172169066615591664217089653787593089833373305160470761008644412628842425357184561370773350985949678004281901405538705370108228979034544163573953457716105162149440215907530801416607802032956582166757832695837005080661603928731241323608458185358976894355944246281971460664329527267305468529719192662792403640615573711335407302791686837342665802976748270082932077823993341949640901857514590098173313593469683714229413706117043048806593602806656449442490545960554382533810700752107769614413173972550435024986629771493122258920753554271785466722314446617337140066619237984503362842391285684986548034073404560607531821584212443342745384210298699308027894446343067917061196988027175309599566217641788500288100430180195861872353770602512801373996318795611674868247184746228566762449882991392620916575660846544460513910996897255060079180426275520733737908584684853150186950512685211106994902890121557692358871919662529828716678939449426837719768720591064086970370350201313149612448085882771301074580423342955517505574058030010674532389411324872603020229055232116919493338430745797720008149838314867806567379302370671154351790498822391785610183577548566482898341415797566178330251118498392694289766622736482079928151013293620892106933406021409123574823464862938832732401331190061544394495523025102826554585851147421230258962797777149003882738429605941529294120095802356029136297182385683192807392659068082099671139480882631122000651401614310481389296466137271100699036085364227765315802795896243170125256944470420487222072878500326685585744310830438225124089833475000874277245317261960947983921469092090942460917075945475684349815602376689585736538877985196841033816298483499524250301966082346531393345112511198225544121347140833586414096635226560063012986151664907452463243019742561689253579782720280189417793745083242134729788357068122252777709088496530131865147107986763003053334709991391932525644990651092593200628133061085513876629172713095372025169444612977863730833801495947430510502222979703443689792893783703326228401974961212845382806129680343177414894798825005000879017710538563105970081849446466869997726652780305527833257689345261880273183391903034243597032058888989758468849303198371330209291886851027307493277834464816582028222823540308451742245777072345019445297667923100767539274641281587093448912551531786188463495373109671195831621128944318251148571334206697460719811864426345246157894143506423614139377786411302113092848554739199870528615802346257014703349896410569497567927400953901364909468376554101075894206430331402831806210670237637757203233773424835688465391969414050416817530444294035599277328776445226887741154497577255241756403797972272912299222279018418194143843152169707746551336177406722904024895177591522439502957153665052033006026793073099578678127605362799905186646190595727756493877690800098434694763936241079308897298499462986929458399607237558893984016333138276170341701412594128625084806307486186134378389008492058774779738475756982236725898268425100437581517336032137097389150377159467608988633871488117677708829984361130938514475306351426858643178718312344095072309816425406136707518718246299963850844534644445521203556380535503268060225547165913787778976973313995820025424909515098024563571284966344048661976154701901092497151316287293504392846643997214025808890627980454602121607118172661390386722139047716490365184688209213461015568211367336745459048355786523487319235873895326747916294881625620649902988136978741703251767739078973623621520992483829323163303361486333644544812829518004813671620541997494987044826281111289795218386252677521869828436228320809155037580911000406775308470885360520507020583628414028753028742241448941017908599936196675994628804811181745477202280589864138495202060611092879292709271387718047290297212367854701707082466655710910126420291357895571238796260391440398909908416746525306245259666418585381900707821590590065598060077193884084079538538669223282953757290463822863651233407986035596420223818174974935478502303096624967418559461448603044791587005658337191842306639619619599467976125221106725878099397640685598390637881204334181544493325040240060967049676377560587223897233275956982657129230652007344501590892309502954652626143657795044116456885904880844271663756435062511336742712949728973695138641112790249666075270177730354638636475390432481438670148273230111611877699713368085903334938577035138943745397494345722216539453625541895829605621797754860930881350618389813704267346567312721013711904285640624272115691017891811247091357050075306987964239094229732244567998324703039270894505785076634486182877689734716901489672665119612039609066960015954813806616334988943854616295292133130933173822112579742664159542797564699954870712864924416273227421736610462650065192243053637470319622128159264035789629229808059237421366243671108908470097527886071424196401283342569887841196563085306416818446529745067690795810761911814291202208260883992360417172676993598147572323919181609440925718390636985736951883610350880186981616086595148038653191959985435680212518574744796391494858456341338860954481780824647746712179499090896198989270755507379808844781041633273145929933619591066280623416022700295563547168323579865579235536201408703434280761319071812406308254074277476235824372746014090740195534497638057775023278627318662314153413803030398296424672572497346006505742117320112529298012431202854889592560833609483971572681550415664728809854596252408289498054654853391045036089529260039204554104347795418146326208238082778698921717611125275536245397071342578243338459415440564440561077635913668443672073578716127473424152270371539450266637618198639230571062836007420165228407937113888073180423560154118865051589217596604351115988531327045643723367682099041149389198652869034321276341328060113272998591209568906693687058854678226079202751456541351104318500275341741905030424571022790062335201703985216166217878778800137499141209256452372774243116989096497531419971480697175643164492030889451004483909151334278107415045193782497762243874158079438239954298557419596982490455860668897547322763740322777187656294717709744120962085322889747785798479041070356914740546195475231049615812679674584421773325622007836973812520394363940011109364873502773559683717605225781206090987543661793723366060959131013641388790664906735183625874888906054464679304091263894514400678682863240683166633980491303378820737390645521322410482797771215949826339505329259356672437356577479119704896556311045752884376496723365197266438075454099802170925640879819030407983929992005970229086747020507577907568311320368333347099261130142540111441896697254342448875925421572937794518058162395917931349407456878312916022712223962855982571280728995589869989992945675419920862910695499965796332369489756491928103741916629218031969179241406575332852124179618846634244662781774063293541647155238556910935837237095631736359081996290972175525331216108985498243613610487426000315974107019964014935814683957593078537795344632920287556600067690520107611254073724357408396136976786378919603707724686596635847861515944644869446815145720272472655045012995720287943230764412416058186713550209834481659363406515496544520512632139343152395370336098271816727681308059138481142638947662756174871725074833004625864113849740735657087361815024788872735270637546656372731267485080142666212548679768380880818739509461769590861644222312952191179100033422649825498650815414105139404938641653547767197151428397493157879648944223481495105879864250704450761468679388620671148558915822363443887086030183245149434891511974408990614062090764107374109823997157437325179700813063734012835421404558876199090900950516246487669019174428663852097154164736640447031777418140955270876722016113242266685583616258999981303245915824025256228782595310809535274046326951567472573183745277260169256094740781110834606665522952078001192792641401933130756314724905646322747593350944431590277470298969692880209948596414491611351616334521934629414058766326673854615516959950318156640381882701281971210227649402415458459631351298298930918690992760128802624571111119634802370956995161062349664918813889161337019817095469670097759127922636775054794202713378681092088396534803622606077680787054358874283135493946828208052635077668763880962416386730341954423400808855062832628646934164891982485658491305792170486191386970341592324858563827585587773444555371907632262735092259087287966556196944863458180684841829939021661568095603735946268681717423739701993290565111412442873209070117358793087352620924881811493586399185749314702110031730703124457319334542339772372096698679731382040045849059179626277278209009509956169109173852421347714463065286743273539434324409372456585478475797100660828612220649029275438176973379672055355802265508981501569968978746981512504213530639146579835408083571876720751350503667242944723557624328826466273633070272145068457308979530962323336969675153913796059792904782762011343053763828653647371568348995280767274397378005751729447018773269642093075593590564561557897277093406552956305206754097966220381249188714956319898109882393614723571365227050015835486561524652139976146614886793420250699758370435586298236989634040709968000147596982092373117812865770569327460591341381320984100355091580724312791665759340116308908776479646516436339545312174598246512729270523327134138848337329132948119333775575413151581209774153803853217103202400539007420257466672302237315918696378128764126157158822649547355571806042465938196185915755061259190056054709104735028781027779707840324204441496131617205989304956803160964493664366469462854243948260243550665712416710557145609395083130199285622816469452505590595733322571345330399696648480852991917884160903569368170856024011905072168534044084376482801179047951956896690261984350365819134532593812482467133782933656899461196678788247043661382251169957473101703117371390089837112082079201462858895573189080039540223666831271156392294133787806858369882385601815506079165257458683469659023423845307757920446278240539010553365081351988642871988482775405640115859220065280840966324878682913933499638152553620312740131820158894215118859402693718549076121428292548936792199024580995151248762450063379097901359058368542785015764718546159350629359496633926339798998343834613973931775040333944781345876284734333780207359057744344866930186410996950989635791439725355301960960488935165524918358449713055004747683025878195854275136144592079098777627876927489661968962762693386258749970082761437828136668934538866728423623793094705311666144984659828817405231878345294191532331054042369948782307935040357668194206019858833858266885948652968669113597216571805556419106110503524845228995295464370220601358048473627742899333853947924258822852150821142783196122899263240890109635751152135735347226164212763833125916251183949106050447305577034423136495819853665923155539702875223668010900467944386385127972268386798976978853407345236319045562167488860405605153758309052862891564305124975826919844295259880036053511293007412899294416835838520710589084953158333500759555522557165899128316774607929897143401054749285599899903896946584628082743654455752658076578277312027204810432213778603325210828486728054196618938107019934739309323063488218866891114911321037801907520329859391757824038834764000954424943121486093089830547830423544345680824347177119575815941943926001304897297732032271582353863660403365011933105606018983639707926486588928437382369744991591134578570224277680116997363160468243411120068370316942784627556044065478663294312123814939987439323602283183231309681436787821257974303677614098492981152678045791592677952884119142857802336257919842744910621186432950470406813815528918413214262426414935249799876244915950472367876711241168577827909160061687087592207974869419227024902106797380469968609241238323462635257010320320950060194637357429287870168724485828960960535899219418855403398194409219275557631519370570423546540215280991149372264555910599376005179987452960105817120372447796739127118014268797296926066277464748615913214713799622211740370610425874582355607685491936660573414897343394461317307095668212962261655161035977840320048435419555562408644409930907657906489445506797841099934822512325592029334368003384869548369226784094548769930660442786392251375251596048906782239119959586175558395184715190060765237677419443106721945209485777931428998595265275389188261057434339942328246781213922628645650209934423222605274882608910958198182926645300441018359366870406676604571906723400414107776332668982571579007351097275066897102780725023193828263871254987861425957584038911938607646214099879342690989848342007312721862345750706806635926447988686983785191742789304958649407696485915255647948926685253574368309606891531773832304011645983587326562739468086087101146118264563803159765458614927207975779021656227361801079463546067641225271967433091416459060996175095189268945068560240382342213713656474546248433476352288280246358570232064669630608814556143442508351316614418620561587926295274694651771844209268828585506103373286585140846629436409613985768147038531091546260841698102194085987690885058436786003857111420354741689857612230489201457678748001689193048297846172480470316949228464966185840802191373509641767479645697183533657502967530231917065100633711856257600125375739795656913365171592325709586571098881189240154470735999281481515443856797333663665686326732935934738239728798075400155599075748480411897858997914472848551010542850344343447489869333095509048739951364750712644193613667733628082422895844698917577712919086707286802916278843814622759441769108731825905505230794974112459208962709661094932641170283025735945410786010469831909950701051198898300340276551264265189301729283140132008255475709869747998881066790178987262595153211456911994304070793828182834879159814296452934657808658524000141682454346122711856995101763797121415921579833612027240012084505626581118181420802010150941726629025899875152024582620370979416763905070429444571915279500505461513361891427908115357967762115538616808254945381655662503426264316413301952440223681152115794373009087673030649243102742880485373294730288343410304257408549380909928261421057918855496869749498013857568207701744825712859146287011108747055652605723974835509512760864674069661450038839176951868112494551285673694736820880672507346752014092015325585391992473278719315536824498702198486688058095735299156332027252525636189897376952790358142678356660719463058279656070983033483632132219746664884440041828029989858518778943537519013939829049203289011015075380149800279246765193199693362222214489684378850374034621467304831999257783536503042546628865036043128528647511318442231843074123352571956297351645872878012867015864854803667760616362038811014864276952095621714273226745748347626739000602520065881474047280761225446927455261448598273713196281921273221634226712788624920114487012889393527904335276338128186860410830688395047499234320942705543010874290450972628674122088575055068960376181581851720165149872851940007013281023683996238428235088570162703101676055361324788653015305573505571776800409341849207745019203002286676998189058712868798079990002456392636275151276508760934091188508907063694077606556278293844152882625167422893889255626896930303535118801789272127417909882275480750980928406798010707975832049684261219395216655144926494962162108720845352138528597810515563487540858729508177181830715764066092512370694757793919396843173222209676375901778082847855602319854175925711795327975397928476678788268634081053103147857896483059899577241898526492328763091053874793706764466614073383198728406754201061558481228422296039445558460364201455067784282328965044190070618291706269556300882537679767650266388284052624930924122413084771031852258165792967053877011095388985278307792921537486595307191134511570957082809494433193890181346850777298513599822845783941036151464850149116726316697237118256913598155691476136111648389294021333762633282620849994980689148864818734687077401997741305410080396253186751820891117496817944442023763528489690184993553368578711930372829286978393446466184874454595379380519485428276414449289476287728616246418507827426474491926977358938355742650767182664743421950997947858854465510048410047139218538996716980622864737400112785844106006253680828383957276864634760750555655538314822832666750260770788700147924671933433946168872807042465612177522733705435156695388796421510244083539579407878705743396980220184486004548978755382197362477600725945840142351802830168815890008887323884303455293596412261123751939690754802924192046628893402266124026972618883468234167562762620063810115307493050475984356406544767191355400057776170937506575002366497956023300699002661353937502264992077620090586974345027721203628350236306493445229119718756439466971998205297399651333741815732204072900434668992888937791898253224342674679536136426375515032497363694896360488863174774397599519214599420285640835172274548860072467658262618589289270043729728570492069087703264496108617843058395732920855680452035354577987890014471978629632910864413969106551824887743268863926951718197259639203549463746845972858298953953404558271602831259226388825573232466881804226750953240040182046559924472218304879938048972945754558834051143085656335944299237968797307414063171780534072176521366812649494345064003771480073660067776606781255501495269782792190239216356506318498631891061283365298897323747747770446483968076776237120028694407483618130945414712293601390647391188953197311432472557029402818224420747003599999247121556977141257296391002417825488675482995559174880999025786171841762831355506475826524438752879533281999687710389564844947845405571341065798687676257296706412517738120627928124433750233393073774218585534902425956555630826863827759809435294428243592046023187938141146605021385909678736480306481575521378660605976614076118523929559836184136839244921470845947826166819298799325456987924977822398548925782853730132581235990714594883347299281042754698258214180695262742608479849486866167497957186523723303545698317363458663423412536991838499455872293436341486490152236191018984281972546709683557179724805174882157621510455116472073003838585924654982903636082159518610999394911666268831181429552272230520084819299261894565511712496784846869667578543017398447258976567948450318865102001712415510498600704392627036945811064147656038459131453752843489560519061781443865473609590860043515899328766866830051217662794580270793905981360529677023095107854509681599819108704707526241624289392025675024249783616993803823635586352854055746493820045043968412043052081497823348759392856008760525974522241639393125837583669530840987430019761995130925663352488996890326336240627553597610158796011879940511994048499472272345687864933123602849024332918307061766205371937774076708452039845342743348200576076860211387225949901924137572929292804227787473985237630211941084243147391659034817168792434979407249431146467733450875185661025658350236835875226348356272588099926750313597717454617321055678251149587794827430599613976543877853665492473083990252763700932030549476916024796451343163305576466934462350152242964519440092474812723364739955150198493198583750469917462186991072730784910560091210930782774217287998912579601896728090535521807261530544545942610221139124567223461021026523623187976372308785399964655799047882706604269575545391404996680053248102264256901079481817211273979304712902265611298805272928116450621164250113328077498724919375043153514679414568914729866605669189645269831380008224108680194019027670805914609156706797540885402862894544292560099875348630938729396581290964135769670621092605140446375665709599549663481044583994186793712703509571179915977650198049133763168421035018722445783552024202002788879986953461654776792639414997114406900750210642088243061572875007958333763428484601979442661589882947978480048028439071935365309859181356552626131531616550283309628351718085292762718956231019547793020350210683036326745124701736538753754356202073259128897946802629613895727003069807871491407956217463242802927817552347594119839625671960941374889833280461583653535475313462715820116966541082302413790439747310613940311758296332901520206327592487052750151259313577675658395620563605651259407485278887670937877854512309958677153924431770093266159045877606244976788191201240647628017638144566556351041645123292136665061731461665800157405393764882325441149549454933036529039100708281667457552905778323086237094891084725286821520667369862011119852579662016936739320834519209501888906940185253703973998441642984616812495372793407935935022434344163697384583954279886686939354654963248148656818009586749511290473869117710701026172105676330044082896295440592329841734855968611337457753432228197875515010969777530247569913460068800262372558833159457075565856729191711702685992694586030278483028355057838755637428404664574531071408012325122986317305629862268856597019126780661528673069785211791490234372322253014478073022130897449518616480939531197844795413568879326188100644406716977522126343484596455691430965144722321145148364435915729674834354575600833978872299091482933563373543793522608605104257361747810054371525248591166526162103211215403296743233758901315459202619138329177837943356506869017582544686854692949710445525026264836193001855815526226228021961115207115757350804351178489406191885078869710313716661612370846128539758774125672264700551184433799330671179840672196843380130595223203906614384228684423939620123115392625496201000330948222863243389373529257060807477146438967744367482168053944384740103653133032385433471687453564205856297906142902274110345007546963205003942876619820504043071052436135579096643671040862966437016469784904067339652736760545839786095977768067532908397980139288339051744084025347308245031772997164858716004875571764304112408694260489656818327518597413085368766194569875308542826751381889346555689292583283341149355484888823224215299456450530702182091073461565939840226432544595472730435502657546650762991799400518403283065510418591156828297103646478935417802528443654225475655761249916584499264516408535065062437645774871728132876160729754269546987738561588078493506120209594581744606669184041327341688354353270566331631473306853296656227564365554053482000163590916427703045944977880980334543345274959712070505563225790036918787528376235884463148265650831935464501292204332747114868143860914420560840009997129971117375955651506836678307878426500257896672938551279060122683630013530802797444261787824981946740757658962497718424582531035107344094631681562451002662019789856533070259924939447454146375130102946716421734719056281908964666997337212344969371030622749012983494030293442611619341777301560103950209708512027717538516178412009690096234931702203781876744182697317903508620796074350025718121335374082295864136942481576890935394899913866035916071946514814230473505595016282037472118742060459922567048605180182594666735481220389504343351466692802347092622748337597968234315080878031332304320614161834176920321607664515760458826754078396788458237729092617056438073244198027188012359700524594121929124756741416005514447386397283589536786626649198018509484288905141890385578288672892144002284647250106774060589762518258960172438493501451045489300766768998033075814467750433215652794160753788024845764213055709494879137875964493481921725902667776314442878548932788783933240510388917820782769240993341999308560214605891653125751156893679085297534435533393315812438812281950964307303062174833609627533439876284680470855965766568620178021190339191298551300371811736960139006628325991005158803141849481945858894646445278706454860632381453083422451340282252506564262408146312812506577768021317984054883068665467149371065770662048246211234051507079773029636358629800574843717478378870695615282704982647918036728196646655465393254722434394733912781298789419843701114204278337455233724704404561519998564096278427044377953798711954279605029364189987867107968548928607809623587832259397748479821574912236409759795552914594919466904007906217445887422553342307149456913474087133729576993024374841111282602150984197790138586761818334744038378490782055903560937848698322676323679163522435100502921287178941464154582525774275600351934397420141344311241608985913095285487653599082663451937379831160358985672071449558618803567377333096200356389261994518963888049604458185919301105312593146161933978791980989465569733086122898038231147315624321075917102458163762694474428873872042651175268017739455233268663789601944928217140656763033765814918732767835576110905164015931254516253600755684815333329798432743383361747307413242645407192757392328334540578383201544918136892246481709040816275603717718939977950129570798888623372808368723716167340874066517478819171394346841335584243705605495826735056180430721984925711031253974619503717500074985253456830679164261247371517206462694350755812030093334893656529269928608647124769098266283302355448007790182397361012231998295043935050366654961956713909768742754575114292879906488644479098218700985448427466951847831003481301747394885859813426275810914482436077412550092000416506453031899729691827604642159042643937691946761435601708226256845693212021553111957364019593099774934536105884570765729526643092210238328010826694366340271096947736402025255015364648666701545044028472230980676376715084172064295764125212458189907862671846225223861546325300971960509519258478638836817718748861048941384936597300619705381334493482489943982738618046568447586165379231350147492048090662175451488882878198123590118221726210670890140902113864317024126146632627597542673651360395710379454454042946052102611944537024730960460159370765582612626982068465805691350209613665517084689071142606827036389881375586243630806678116897225616704520332707227713002264733405775333575151018151747204457667896587620194238287093031614853330805451312637084022168018235833144866150027568160319563642102334319326176339430989256506468501230709265737653106860571153321603824968337044054140528312200376697472209528260407911040549492096492275368170565846271551271883949369013100768261068682255032674653542729769883507506857567539918753775664654931148758694678467928905915655034932386985075700158460302881209337912808727116555264165812198615594092650430686686143517728078366704416961796377322072313991457362577506775362946236282013174357634977096241715361713695842912122596838365762047484973676185630949084150665412648075589765757648113865482250957469346521497733977410028575302349483519871920781066790363678300504472972415702842425175300704755351177382523933632685762262355390340697025257174043727767762328560457228046442181937718072455927324628192571098314880472805918774144184718195620561846007659091927606189412122574989454765551404217164780820810427483015738462662304945020163622420523409297965081648781222945327724352852767486274005807823400649062111134931435671527151058930278115535860602824270883941536368970012698004856377071434479490474423801651673118093732147761229502261548603952543502673518803304593759167830494630376772824783142525197156754344786230545275519646813275421105229711063559352673382084933882287862015342912063828884597471025808905029294655266563275257862446563198425507881222751328341671755093760352411387036153977955391122637201743105896345459868042978065764179878104124837561679404307359650969083146610080959195883196926672211658495686030958645821873343519344459144637942602649708850202613437639471662539509935927016642525117831428641707232600453133892973006810518509212313272977810142231498701527104213426715704158586604657348161284556769317711388044819523704194405937834929476528881928013364757655646237566813961086654823830239807163983423763311340567196927349717143513851935315085949944367579684993782992885600206668520221452815234301314108485852911721699564201633025321746201313301804483566063343569364018819236653704860584804253654271241298347837174336439013425239139549318840952325019434608065589826036399829096168059064964752133136125397209553643713800653767006005206731296920998839202217468610553624843307619450333738982172341346205050951514091981581776344598824913199913562420664171115457366459489397916510178894840442066697419838368907472720737110514985230954118691146930090579676389053132997847668989929510796546253836126565537845197017664190171567268054086694789411709165051322369609672578177341448000211821439873254914090251416863100882708447087172327957577513014519888143468882711955887438481924192076680169933916897492680277111086257384281536518966499281493066089525158961405402509706525080296389597013897375185556407448121018450701783999505543400380685159502515583517710176151346720027637874921170548511686745452617731427199949340421517641914489732710938532017781466201864982975746533967399214615121535772158490110642575648857013709598048495557436019079896040235659733177698964707660120360155065913938610045067787459170777507110893166964736154056165903049014725140270927202816471304030755910910671314624709798359682942832030609457587772008305302340273280118357762358692965991081502655511950759041761361463459794183009606821761868358971706520259634609848507896531255697400027209468160311855688714465406137553355554341726271258071108311383322100594872465875377495850267472851966219156610197694891721846499641538448392122075834195211756501441402626068944550789462185289783114106341409153024626129705544656461641276083601594223812767168913272743704457181160919861344591063984247342562326473162302557091912676708944976404025958388898036925951406970550166044161497596488525843565599659800612349001041391962300853527512770101925469946071561010196658851147194495158148032420766992059785172319624570895908270327415226366607279679169919637885859294609641144701625437964648508426039938074865307627428536018970349493070513625476026206953503803473209416697558949305398827270684080854093031561386693732833367389929404099095088106134841846504463383714136490689692139744101525108816210473807824090265172449642181333044151704906094811819285729760402007992617151213141385118805809956406002255650596312991458611004234393512688127752016539440937979755503249045625380769204046734300647021006900868347294180035509733548944713951850371379584238178794987071708429699490367068317799485174798950850054954214810851003292637443542833087052532503722005576283726393167536092808314130301684365558685872873836508711640397166149121464358440435845523590972671866194860150571988227379124356684164584228772278291555631006944220916513034801025544209336955936367981821488110816538840772543529396153982501947638847095197812364255062494413706825106441241368700298641304090587146292390414202064190554311562581418081350021319297397152697114888671547992998479547143175129462741082218855934827844583005077027708478006495460074792279273642917559311474820753387943817283416425928101591814978794878105619442430314509999238236408779422386117692787750405571044777797661704080962267884245445444145993054612947625160498182292064569902763619674461104351072102810535763329700429725912607054922377869243769904028139348114327862630563492026868986781760777109037778976349751144045753315307678456730189422333513946640020239490881539167686129193965394457279257159129453810258027483298999052625310456876651812261427128090369939133326204171792372860269479661966452118299315882078552824043766313641799434665792946465876900448257129751206647905251858250829248215932901278413736126541978237460525078037420437074702909112623209697604291345723765374826271476639919961624167617887419130183057657543330584150477155100984544838621701150774992386331110749498125222014224826905421708640430932577388866625122200937781212121359526577062122232591992081251977787654442739572653771169164592123567557615176777640652213583555680786974588660412116978150606314113461359889667183785943578115635503771901281211400095754668843907217046686929259993189653348497763540333702209509456347137121851305879926238803790601749762342525270526146557035565306646724208581710597587688345690757054097432040150810728946965510369197522526838233769011594292254224225554799140772194546491261969547375207137356957863730439764899092588365655105139737410583293015214832196590970282362390790724200102346790653898916965412633217118910057785770317357711112255736656419659274401390736987005973160091241325292800024751303795840327856605861987996234726845667755156798474349422850355729946022001431640569055553225043891135444084274101155660570853249961552395856663796334213175583936210683113134743963997118740973170374687388664322609280274115802959961636761453708079954420088238809708942181082108776970556330035754055105782422646900511224344675712162080538319651698464402062117453415376063128221586476320426051048015891821881691795422498536870868608986669319878867259226319181692647519889000719594430615280442530639544158553109437047715812979313880002774153396362537436222764141543570175699879368161194615036087826732697399724714280288102735073479610179162149765535436814127301138788308245387232096905306233747998918553501088920131803689210532380845947598493075188751231607517276469674684711454191968854652755447093094545153708087480144779335123312681865648333571455701114600958818491081786561170371955237254925368740308834147261226163397489190257772395031077242286055545233076532320223126834947303680429252925759564267456623533286252843874979371406499981391512479583192963400785471371904835943058545525866107248068003180991030835590043492629347281535632917066880345709116427252057094163940943521623242070370470108868582198232346217626554808006535229107038871909010266520361289770367008456049276545047449346861207718149430298431627504822685548593618187737539348912926274952568520113006834486795800659990031453699885960426464882461771278508071377916573116984279952985786586667646758632104576920664404256058218676566881994733351117016161410874727885804127599676887895222386050285228086196844747816667362053527215325341079610158157864622714516603979763181237661497035526104816090680096744591962818981072226599660517471683433631427444594234816643219220559863796192081217062118867354958895745762782608208482789905815737534993347774859852965142116250804327743968024817736029253343432288824271453592806491341926445851888916036089563784091787321933881725099232245578331164070132017983146862549937459894650916584078536765442874048335292014267219684444904983290874073199651863634021680310439813653123029767496880370368353075183920387362996019330387518660856262767299482660777185091307810356048969113199839176552664617462212380053422230421526230925199006072689781708511293656704600246451849165263248916737506557581646523488705200503255989089032796649650070424377044389436782695527055149960785531963614278061020913414306355440100216697828350279769825073196880955461525926102396063085522950436881284763331467230750161833487990187484748038845483231000814705781737697078205054243519546053858388901621098941889636638448421650597334513452877671176613454730982278701777289197105255127836900138265779398390514911654522947527212922460259104112128238325806012132950989143197962300106627367453722293171128992463791773100633169236739182430615388277281998835935772645237521552166894772826644953815344070307622647167674995427631476217142927224107540605909795843401325713080735868505605615150309741443962378053950651137490341430123905161136509868166660706210819595621376472203357180778389932438355121069217877495332877433350221436738140576861014456052511943516327504456370096799045512932626443731556744533128993121679835339044180239839384543854187789994726936512876175546062203095509655627463946098525771933369070944491347904418832169762999540137674517112056277972955563167806968676470861396080888388827674068274251805806465577575159075148295447252340496219389884370780816945846746502589533671092982870135593187000511578746609729973380197115715700192828581282511145296050166841488037428103195964411933079537621723307377678291252161830360441751930998742883673328738138327735536000228055594208591394103404695816519347436718358736815422758743230252776020890628648061915753164957408117283945307432198960367759220752441457552372053271216818034168457389462891483746249048553303426854329732778051740226390781717251914172851950938087458582777252216962692998229743779304252907662644312041063356839128337042385670653376685362002834256182837659864159844565144704438820509663196415071532857421260011874532801818533384339194022692364145271675029679540617332137180106392732677539599077667976267850823810106652217335489749062699379397397937592154151628877704629107556165550038415147532681341230691227586602943830512160935983546920939318864019575082875210551104158335269982287095251580119576743960668275082215702081196426806137584171187348011544224786625835557415632877212973463141712637204178978188272146579043202958982203093640096897171965078092480221379128526047379869231957755093717546298269748707732710381743060550451718341002960519898917649645042756693784074142551253204759197208194465471973650638869982865935192875582679749566386147935859665012048189564441866837874048921053670889161215033538953223109751948317030251604757093704533721766654534942998921480539862559803242138427322479505279031847761645121133832332550258047857305518288933833486424653434777298180974356131551711394173142108944675779067684719927258266710512580277178647270801039998976057682152224846392991867134091314510014331323392995496082888495944762082786490885009859628377113793157386888059319894620689517120608562150529139353855336064077278736723027788495471661458965712469750800131492773487402344341811007048362076168717237318827600279689127652064539197052527902058133621752131813831724725428351139898239147393639937346350668351955144582015536201998643863045624539031215412829287877675429780403493136444892324304963535342628102712474077423621998057560284919658758364970172924149693363312349215228400855341656364745407838009477970602860361282520473264305239177064619190812800194076791791194001651684525790361566747667183916926942880622683760746233508509871973836060267325742559269394387519714921253791544383474268307796590737290662529979173761023523174203649901459266649629913657436216653754254501986589880042026668361044783013851936286123995897720921595943565613278683025645279458237763909343733433598918170052441283444120906676627594557443192943054148881758924204455581780015151067794681417751421711303582913635914684213558836781822426705088698934582832356840871312277675331788639450246885837401589241312949482429571058096989153679972487006206889886336156399533016600257754906751067673300284133436530939831045248892568948400669613923967942775095478328462762741621721874969455774076016654016823060768954179051468026702266303024097276918916420765722860830567513619482615662464889043128562838879963157841546636531589008828891186872675863131261968742402900024498664121122178483410581619669971501702998732077709420668129838282004673676091945154673764818032073530349051267370898221497243248046048119365906048117753938219493514011717238870768064726005144542878675423962691472401986483865538367808534623488305324365305779443450911937228407723196848655639207255137530796147027384922897445730584177401465606708752866852202408736285204006393970869867932228636400027042955027178170716585771129206300091310816493987244212837744973993461203906376395392961543574185693247773973984799330513509832744394571053322423738901716117142554392976316473869348719246962924950099330393627527228879403601481106608331360028525891966071872592154372605262972721220981013187753409438937627826677253548209690394602607982885754074392303823132317232068796395604861443654139395056237296058051347254118346149099526685903546634019874437077871324167544045123283888042667091711484188449936080689558825400945035736754603410737435768180893796618062494224953038231030408017835585825180151919405081550043864521672619820233777226079315903914529483446980716758406545406681993406139665095162641180315212039057451955336269870847921587255323812718929223215031791086321768663298173619203469842968440811720062054025139918177043093764012751662101678562196595709822879644380048775069209133017164888157075234889325556427252583778195065680951195487079301214489133445564885205756538496938844350762429562762930546745532134099500030689453463245919232299230497359084245898494706698634186992467983436191990874372971207265283626136073305338703150093407126097717547971012965073020207858906358887819852745856115645106405634740809119044286898038878644899219006949174380194331518945902627191758577435359863189396930260904675635604752776796151242667287555745246486608021335553938630211001454090013645747326944522232361008504858960150419840545289134222877749230519642156309631321663846543390576308073302477747009926665724422971632110374765858500116589029389418486476292508788184165906652351098951989731225239374271355043391045031040198734818168626948401316494404301617524043341497403463218417046430036884297692548938011937964499030577001193284599091447773807724650085007752797832128901905714577995184564791972785666404382455584413416160660610134452836533466232214176174636754717407430333240197934693709130614164884653370088464166286529571353474304850955593618573858872213842661313655761087149608726551095577799929872113414484844694077219230990144174841409998461650678257347815469779196451919736250803489964157068578740245290545404321230355501346126733808399837838197839191420797402661709870250844309865299265953166141737351118980888029682811412890954856771543401656453241002663609290367849043002744083225326777348808599435386095054379829615055392639825549889720205720452621987919573184283866288393182649922853465251780003596147297738794112304349976064646196813878542778704690879797063500894012035007556007993375108258296729977082229792714301691798342849156098903874870391438605648072746048336075652840358046781567210424219070364609781264990878814958977620113161068424654079526827363196559401300280637305566590223299044089606340729092877758694908731333672862275560786259672367080487079882856701982096217007962716860503839054678039844264560104085178155744680804182906844587738534126822477767498385651999501436134796629082227077851794652695559582698789210285852542728818295573791164060039085149906471183862270093092912711078725316016910989946544685281350669077207606306100927914225063102364480824585132835130383303178935828427365421690655067719136168407901110933940682230790369609757608573800787553205247258161505695656140571404036902551090946459040018877382933744617401450623331055980009688285296097726608081125030268642934030455444403525070388926005613305394176986532445436232785159677003704830672190585227368817511772891685482970694914151074430285348823447589741222425461089757379691383969233527755215137399548406632436699839475009446782952228779002346814754588949132816744977488587125048869727858464805266541839256084149631600948877564271830121495227699592176226730697942208285985600153702998386513347913381242177128562264164520786479121771967450677657024675820467294581371400796037554118395951207715255155094406543114560121088960314404359488125638098761295326712739114767663782634053952586181701607665414994980009167771783893474260605779873627436956085863854141225542610668467939225790197072073783728512738307439784572658719820033993419515517165943361932323312916601825437199393455258191181064814063273758134073287413955636778350624943400778774604365069375745130690502244269249095077879393472246760437252380507832193227552769591235853788872179964677830664560682918629845628201570203303501938102267778788228385882632864752972152583255711404573691081011375815630610792483571898501752342059026955105283271265201042273853759084827756448878023161734102764371967973954551502139366352526864094681223332033107575443703542768904570206165660466709685654026842416193568937872334170330404542370791088303639082544969614067389816919200256105981632410060527685246838930821458472738708854343513523463981794010268737428787426497273746279616047928454526963899684297972497304321013817795192793844781556355946723480361242786596711634962054024564550243932517595191476628542471904147304188997824393796187852776857569765672978850220389983854024161886041241621126419337868256750888215943062223507945960003496569833908850515294059347185833627735657850311466751323636954020334060049966530149935492040041913722481320768572355127938039116571426100112626876077583126685141764276023279853484705783931880981531099922273453156892836375725766070769904867615488440424880338813993676588103387769324499795825437657129229061706627954867613455113928339679574418048213256153639280716786695973018180912784784601001868413083318791093253355053071652606508225387310896352631703767474700656110802289085448166554474726415404475294331982593439287131479923624705552550503996165546726328369178877237234232332704527359241975859230723967913051126397394796983759936482899705130249555378691035714606883596555073336505514560137743731223785686707132735352618935476801088252025664790003083515258956173545131576007999146027889371314038481910448942158467370474586549552259790978991014202053024208413072150958848276267449619140837594228982519944167045666026156548132532054881144819221097622930679409487805597156868438650128067274301986694440678245094644324170513587037873348316210747903417502555561871239887813638017031181493083995692797944171341738608923194153850802397742797241513716646694478746356187512391443220037631860950316407160848246852195027341691390115050734268245875291136694129023143379392484236985622679268369071755628110409039820557346082288126935891878551126116403049051710696392962978540492148070105857007299108659995636754621745696436416523608215730863633925863197777811877588899148633299044338694964292652441858958270379059617872595694862650616654999862225318035177831683042415301053350719813880230597601860405076416881389001491546892648250559239709584817619519449183245967551596089469247618026776421083727574412957901797347874660146337416613760660744988405579274933524496779508829912313832907438907559669055470508478625509808071982741251369774835410828941996366993756675546312620744012489347079056335796030587666038770481020941369957093910116356945658437585319440125749871541788706306640193694799359569743252393958021321196765691356376968631911134496765638698130631831808591882111403708329744893755384799953194958696302368872413207251289302092878358882324015778509870181793252634390561995865118390586887981728408717738760896217954692967406185626801887757301625025187962696489662401399941660454677343948589250243622802396448078521468667780479398260977463681577026594113833235004043941306990983699875749990064139018195099926979845731612489191795242738579202822988887552971362891386669682336377133794797207376891708259133330419281955350052752958479872451961633086246642704054361453250595916259900124773769887717903381548642510858453839115375584355784720232362543832368212900939966578919901054803140371899628386436311517640812231593849562886384268588566476023059406598356041280932246250123365897622512736058164967365735658504407461502574246719213073542371401320979068125605740833734810840742906485910798894351758229158999820775372541405156649673637514297821735317908340547726606217246793231036509685851068518270551266917410068125243867600448298049046093091184869308403890594249020408147153835257553245226543211443414507167239993121910196331991206262069128045569362382890945501271897424284432135758535785010137410707392210670093200390097757423994364566488767603460805205481037486863721546606332058190088606054287052311101273094564101833483130954804081721599373114679167846801726048104691916246256707538860603223163060506692676126862405872932532614104357916519106970781471920424166371592428130615798927240892924300519547086555298222908354610918490663037325194577648412677575817862471154264449627018272278945745166038624523663163703494232045447262628017906754111532688787716432622199096388385221804518558583800768232118458712285019159444868346634417598846961613111917993959281911764096620886201035429952330776206606151085149362463011840727220946016375953405025678991698234872387922279801649418602961007958584257616109420708486724776730600903113342507748134873367842338091429333207976292133739071747404415670420179911076596445650644155094789476700260707014188577437289962444188190377686133091396730058788116939637317740264278840444401954189099097557373594174716253572342693509997958714939156276028997574137600695919780545399745759720218404785045292993469599488790373536053920272152006368076175197099021656790206194484098390877782904448542508218613635213935936374533868928854088237246042810506724463414523850045477554509426600994124214262390956962208066115978513535041301427576891246127489865412481770236109170975321434182408699283784433132475066767208945802330702056317393138406160783541848446487608436317992192982563221320287772189109475880652105157930348822521563889434605348921283305567514363227106644145818643135140053350869942945984119487459221707153862201950527253908602567896798563344625699544406595639793505278835173136567669816465328164562199199121743259962531588930042809592012845004145305585563514528146852140554300166193829338876060576739002132269348212294020658408371121081010712449561790062112923458679960265262665211428172375333993247195754831787637395260687530905839850312192707231808338169037419299570973073732257528991309337629193033442357398462243636617625760785471854379269100919857611296294146820124814611042758508599291951850220685232723470051191146776134282784593143029626881073008401712717389976439586762904239931269189285535327403022053756143050440204653073438798567599120850887545170921921290589489845429632889225916219406728704726614689983606071911880481374720052026791137362559185470862989400082391019288598302883947481357236767049442190966106367045149308636111335800350758866971221468971026728287004067411358129196565925738333044781030273627333851436583147405807053208172658286048382046990025229019926709612525834213529018026126993884425804762431812005932695118244456017347447642048110156477312885029974087880355347846482772796967577806341441794010790136051503562522272135447901441720596450550804396498038546765929272919696413524423761515089200917043255840874252452573902944038158841690828941227731979493123211256873889641248899782612299539721986193643682624231892364070070326589743893003251162178977034009138469368170425744273595456309977031451054599769957801370623134274748532575802837850713446824782692961360806754571930105719901984973568998809812100696505106605250098112404130198833749935778029666217481849729736685547859887912849275856584773610858923496170273408362297493242208347050475818898622418322011599844749131622845799264306801780132317216145220908999515473713261150667626661553025599630307380699999361370729449663392311888878826198907000713562591050025098903300506522215616051041740857989825595733662156317039668032321178041801455834413490466544591462287929902792965687226405022951897953276597863974468344614040647030505475643216627970450516829532960070326862764573490866679176069855937704675503917974149001375096155913400786979584481217754578138542306659133109509461857923041177939428908830758651634301860234239045284445728154715135913136849153739602013843966183274723327686983188578127081093247484373841749532155606418294072421070341118716153483625094112268766038662498403045448708837822905067018412696009086792755630963957105932779025783357296583548662466287210012594368439480156124968450416289749288775475979148706672941085963095521579510331651036111418935464791479946459285486681453407379192690235506611504141582201141773962147516312199602014632127618524089489720366023799317235723858128059852212436150133991289513091562311247167872486595955363421390502278995076170695565034679618470235318760463105835992597066171169379958058970238069402832771983274475513864004555705272308165236300734660274784298714592194771409415326974771319957120489062069404006827751714214472581140913306675759645103315963765064782551511855095124584853750288597384637842703816514223882920751292065175129618177607132730754893816273801919448556839889321322580033087294052130923289213108953295076654099956681112666106918185061120936789636687714633376393938176455711224331723961175447373679532616719614485055639188742571219907383195845089783303508836823239609490059336901698182754881139075022920561336922923019142294674927429242729631377175006159412092488996229234457121059305635478389972839462616964174259122176540838433967370984572497088318268860396019917836986004043751874935932032603032451420044322385117981521803056351387726516180933947884952306823677695892736043418062927317405685066316097641358104672962506966343338722145948459873294844478856231849012929268732631971596180384702411541362085460750284395866261015439782958387661936970906242636235881117250885405777331812435265568771876235567936661599953408745350074461994869106384573186787468067476963519168072378215458355240392211528308772895103004333803907226715727436096404795758728557471145177789462361526465902183358265756715768474560933068237033665760825673947423643207627998780150088146375011882206748431938942663718609564552689126173474704681289278282888804616060516494241319347538692414213127826797407947896743659350680467692567218903613619760808891018041801248173577523172220810091182354407739514203884266801884360633265205895875284234083047375225391370400704323889918257408745069765261347480396432375251604937443529802966114049130044003499649651029053042620329771113985596057784447336311898495520560922036800599684321675014991154513094533243326540428524699531794602508363034552215006441269855095311670999588820088908597130453450081625002251614573706624432333454053561744831333274873542686464082302538424226217029593446176535778700917681298280590974944062334332294004522295827951601764769960114943690018347096423216406161675530196509380736188761646939692697936397920449724267590440908738828550378746511465935585697617237288499704091409961054595911730633540804512363138035961908800511678956517602686873075991214141612626778727136857225223575488065330825070099562627574232480806259712977952605137911803245906068780096794996769766367238929849748242697016781310979767003085114214929879506619250733117535244778178581720410975215197706340780551764331591045426503707913644876189877513882292768319063815375077645400199100507453120462980317417257289613353560628283851270314523489366602822809274482186771754188337827987496468926618191376221979200199343624302275420082630267040151435357244599001258333574088329395733188012885633394751356704727722852104182157739836376289083809390632991912572350407478125025157871490452869336741629639134329616460754420127061283166265485802130011071102816291433017727573300981970660263431969663868880273501349963576293921910933764606589542670133218896021830696137339748220055094229629748754691409681050526097677264115824575487537344873944283409190317399051201013044942700175260593878761408995322386803042360339287987823233373688608690164756521422886222838840351374288200990733730622341441674778856434722064648288774807357777147408403610980251684407608187738809066297805222373076240057628171043214326000366817569520329780647286166582155798797192991398034098039848576978499970343360453720453618094955335988844958400760318900440666754572508911163082762995354748869883723470917969503273418250754144981316533729739111681079900204639658067631295646367189478488854333981926542229473420521155793323185944327199402732600678451877758581929572312592772421640966556842085971485788894871501717485162793924942510352554461964137616408821872423720646792233280470922087189742965853321082853782478466397511677294866766791337577406812472235088222335316375412471256071589444351755151065456764161973190056167139529955800046207326658775129559162816382697581868757327938826135967625532055669895124651163561861060109909123699203457276728715712003650224244357851944399403976947911322158967157853844954275565563256127046378791600106807579177009353275929644762975694722615995194303081019997578361041723443702579349925026118934701707584589030018761517989825325158848604237249858824485412243616498156400415159399018566287906043926651565469634108788095141404214075275638042047544784519039721664725567540334108979726546661992800421949633964622400170282295291872065253021384720155173920604592946106527401509596714732494958797114425923237892925604446186127745781297379029194762742432472959447377317916041604490458895191349253199188147231929651167114079413599964044016786595752454693305809017756194853302953508247434907292124952941532906686585163076327971384265241697928446368459588529968741004638576793225294593836678747808076873188206521848006939011303331647841608639339054363362024410451113141613114156697121373155809247023488907312446244044465178489426713915926214057285147379596186873310303260887934459492227793794436071609671504365557754891613427785012841356111763569350718021117244580651533729021444914260545721897922993017599009496277913816502716030777758898334426242584189331989937271763011826873139943404234797868318325906777485177671356853382321163354747610096975036394409067245222241975805383521379716755389351959884090677855223760636755043396468425563848856407311587941599423694978396936563299677371726353622906807958595908601821299051411889978780777480398182751404722952373089484129127522610070590306060092064501323779437474654780610333884650276795941541897146866898435059084089893932497951909440050097281455035956042436643092170708909521605731508303914395233156401410399424703258787072555873587070801952793403107423126625716808764115437660870871542902679049170925038957159690595876474563849717290687825212176110538774289115210611495067115713781857003998951937578293493898559472973762242394433974610253130550705326170979664095623354021826495650848072671104741399813344348836991080250551864777995452471993114193362685324703432501238839710617044599766221136242354855010077816699363018664849544963524896001030406844087533571406018638026622212256393417646501716993690829622598618135586798911077235653516481959730806478627591034694012462434531971260915970785438755844523205452070917585929443870193130381793932386505016507874639042947673256955702444101182209442976503390562262143668502098735962665798049384481100446315532958369337369882984037628549741508266483615787251359576220603980078962248692178209132398483105386318925636905110582952422191545557510181907454014956388406660169509514541589261095033940896018739163958165669736309033300102761933768054539964284592833059816635519618615746825085167634754838709508576377652830499118107984236775633202805071316523862851511626750517275154736265543792832385448579765788713049438872455553551872762254378666923936580613069423052843057306453187049850447368555156044261242833033142110990934302371902376285688948662642800713000138874369459663071326686355577506727512946816440485353917693709603372739026404452847396102022814625715877139275727389491338840528589145519401489720894518257612526187046883252392566937169255457757610126362187241641527365564578702762524830948706735100380935428777595669127035100658151844820954114680414456726378437085325890733916132958004467846418525421896411828638841901716654694270474556372534439527427935568989627115173518690415168284493062119813405707877858427256178670181880188422320851737492631627634864364146807853260828277670489041269386929159849053462822262317886464144548511565551025062156958884333516247535125798686188759909032152881002755663487670207912384502036711954836521838817298677289396387653613880488081967103320630073565308224719350390815456398143559412232212094892701812842498934434462982087196710624649435620765078138949088556648684343285158352103135583006331276631172697574248523304255662695227799546618411442402864086712984660027825962403654444536917775648049295939445015269877057453240555304232639942546916594818432614428031887795036964938682107210128179787518985899743950970710453964010977920475216503840626295292106934021941104815372826811111774718034055606354542449331472981186174221841172524370147484994398469109023760180049006886507008348049542786230301493662257125880135047676899192328703528697862572024965894157497702879415511769164834325343607023734220215996862952770298501119971956851426786534335253949426241035619360353244885245974320943011061534622394044105545328596984109750227668019193469367886318981082698076992886214744799531301271425518562397536420327437734321060477715331199358583580429628195375897821765704765379977016610267491612836076636579928444891299321700048209461092859068787565235462307299090053095459030113899822483921297254264624539608291868444208401943951278123923355707112130208973137828864790635862860226301715697822901129150272395621924163901001322029469842437604144857179160694508400786951457746127591289536453848511744884093323943980260180361095606912832907379437886675874038488822190958897277429267853172634187873442236997565095780022135848686709332756919262344919553573689551123969409411913164628364307258302355230593153702412462044079818376325925417519013907862502413865997166056193700599386602063493938968311623726913578175723234648136366682350659845451830354859907986107385153460029578257623306218944441573048631523368348167555270985802108411364361602163990603345109591129294856439194812228495922776413707915891281188425377749311345423568488030855249693071226079119940288316619329971240099722588471339950171897536928826714066565074905692658030396131294279567560612131860939483578137866014967392666360606730460213776012938442810470862261996986396543532438316456414510068212877700147556754829393944494747172152541941260346247138482323038244751217448044989971610623126979928396188923804280823971443986424850360466746080234387814430672146055563657796304565966418055665789983804053441783562768274024336305658586116965721284009045778215282546531476751744701258433356405460086407339562300260088859447884650438219378869556523589281349991702045331432597405786505505475073770391201733303968872061592593479424632830125708141131759582362079204002739528960288074447235459670141867647958380026534025171215630069536706480020573532721436613579815089394466429214756119359502417676393534942405285765521946145196571703307186784756921616606157405509878423700632405996358027704697087287827635096169025715905343896701583110297196789266624592151260594888260508973956866489907458516776491060406370366203149914240357690689176818128643805858012549487640902862569231593915739530372479890965787777520134956879064380880375993195782144287846567504400283092740355578877553086935782481323398546728800731306328799156809754825272728212832822335131444430184063153021611510567580939486958341051667761931265218517051483643926491128564116743310781983872666968615390401198117729413374729038074602081804536733739117821244578921164598354477211883478473076001590120426560303785017880775190809257685156068213108423689252785091551563854225891586035477718244880544276499038140352227146665062809414160456322149210624713535780800299843640269775889205799164389010085066602160881258628068905191754640163593251681051899511056119343125099181398351653638248846635735225517558551178956439758553165116203785436456350912315076782490346090281674002590156925135161569969256919644731367171478971760559258140961752227087143683373771558313032482172307977079860068149425542362995098027520091822746223898989805846070155444659528529321060664199909276611267797730914481381063192363612795065989547300258552703238103516766707170300212098462955783275553295506741661848043018993639958831929690816665381584499922928123286625485328191245083718651713595886504229771951339213890648939625295187556663472603261714567252710631813234657067825196997959389706346779815259970489957659888642824466743907543901217628920635398392519120839828208058570838349954939008315969537442954979068723795712500157294486861945173229514961431620676326960498491157171974259119298798753267226293484514945445589157043818882735561338258250708612817137793164277707938343228101354327272230684658797122483920330267804149799571251846323452579676010175375621708030393773716625887814780757278590201107472318115388208270798884910118411344109136465189118196246521817430483649034299741144570119412089381506700865017289548838508723981978444461312350942639118648908538908394859012457436948041115590152177826607399140215141255518370419509906992759694642179582556226186244054687641977843889288955833838221564541846531249085047544239634668466430239563560508515044768228612114408851397588943917019203317371518296202895833995957023648684633597864280035021361714055916749883908460444140415019854154846654213061620894622086017537868379814250476349777156493313795856096533088703766616631776228849066419900487926502094210166866585059487108269850988461728549981362632523933484048839076972168089357872908664884152114896444301399737056105796453737345305737320280802192132518315203493846459151090195263799669679032903085181747474286012843739585277379465125738471436350323510525104581655525689443059985020316926207038960090194234443511399472151958740108874499663569113327762198552633915181495761714107395067404835564166445751603348995164699172707977163828259805214425386698179212300094809922388392373569300253490090690430166912349450576784755799560610459187175247615574891401743767564119854173108226722016414225736910094449474330337581897274417646510176805931745702511433980136451848160811303785417734056169964902966853507745746768716473747108163673919727816098477833077213655936910193401660806054620719628590241128820710111183822720647863413100564152835975017475587868023168267058074288049407581131098748624484804115532950755093527532400761488004454286760580504892903293702905077552287312751473572784180169319488680131190896366238185037991075141059132898914182931961595521417775479719478023177067935462277195495980296215975684359168470190653840136832897263003185938572666817566721876711256010972379729194688497556424817237998833827678578702495108081185776027256872284189737989147396406683349997665002266387341555585310631063626917072103593499456840364749240100454386862598597150550440704613108812991991989197934248108703782768149431158702473839855863076610548705530430219275079235585067984892901960885654392831353175940375874130458628783539276890137921261199614880740488055161255263939819318807238725517735452328870360134700033624228909784386653285621636381689676590419226203375638037851100740081083669284917714246805913709799016207692360154448064558939924073319491877207573827000643501661842447904627091382816248027225605582575154084617616230816589357225730586018533372259909439245183062547013606401261302735946116797648530478837697153913448069706791668308366476071352255652778121270915167151133901751863564606621958244723525416302916864736335070241125093420022262452489166296347755545805013836244585764472076247793339432991110252818735041919809182007704614230602254022245326443854982552050745042172708550837808441576351016477464471238612843686161694308947363238363460955275169172392955167320978073313631280691948620264196685156431993197589286030076393105882249536198524644642336631250358348742567677143882395628017354700189521791677960838769171608274567237712214166964577683625970667448442977697159772341940754629366217024275706924749021945877063147926207941481156495984555664934440707287845755926306669718537726218737427912458483786590103257128291322369116727010928797863436129475823764588504511045747771753986375171320935395410295681193180557741480883359355216021981082006793042332703038892026951900797446694574163433467285963569706971928224618602227127165689336291023132982313210177549429042529671510205091099867246883881875409551807697373482428655654700848775024710193665120548792834925285002996566214918232687533497768290567638730524070858979408647476832168798961315703113675568028585747208641058610682189796449179724705579526102317038931232260994100385471762247845980421832656788020232797484647132911960384976991660956309915530086077874602165829008721800904608265980219287548257522923498145904442197821546662841639220488720628785015299761214467853360505898578935682321352780938868987784209909944939856974283125820968456740513854038095231207092456526631533663192068881025269355880934981288291245796783965262909437990067494376989118915327857433524765841469256238030104976592486623198209105351899382624103213148199202436461961072528125783851440531166305130247155006299635077015355393192329169695301849371608059358095596232319710712227805543278347755541340740007687075109426240981946214769448119917497940771081115926582605170517481783084714239437578030574315767252443082481258772284467162629847384702409953354308956748380374548586669094303672453726821225419081505486501320212731997645855182432722104575537523374649545104432130220869736678537282867545051117886488620869996789939054077284498002022276622178385171921364379368230902562488577685128044910358533703193779966590857201568024264726258435153753998679495460875104782680996414176289862592307990641749827134572155503962841313957969648753957902331426609573552610065006870875157231827890786457917249917874782924503052289756348845847979426883999900385097952740178266239471562910608319903056244703414908944646413622176765386711598280093501840538655596547579634993443233346476833550620227191538165791378850177587695732001278027493745589602151961463861164946975414959616421143496435195405266597195798859379905424292907302330942475875656680920462057501415167941033954915791003438918329151505982528008296555325093309732846709261494422092596438398092433160990986626145028329937385762291752794708720944100745247685463517442977405562251594603874782628396776966070261243636103376296152998797942115069971496500587601781905186829772088743932388431611909660965082946969433213459591346696209245547053746274027090699052485150347680355773639107767488800777965436921956738795244546505263677919453033097931701783500843952596272665048556377098950571496346984211591411178633016106876525950435060438738564580321351148917979290222529086777597271626497969561200786804024794040858542067487528396861659254726976151687490536490474016169053169936225933189533863853917732157037527501703098310423011646775766944283279714399871990037721522291696819042490289965548692991230625027591806841171014161756451370482332089445658549437964430323891587610681636967545366276948722439347684427351994585385708180634142317238150448490223729431853989218632087490886346259857957317913280763133037386284905933227821590629900489336335690787415362326351159960507448549237267598899510453051179850898252073563724862515304490638860431657746291827508134148362291713687410576220588404763906581882176881306075556759408231802087161702919635712225380982136688032635991151549591593675492514032251290931759907751282635870955782378087835829591743691437305799357771146354496721437169871133351633681423923213698412820438231794286484446739347563534725112392991554008788504586400481358727253531396091682542093761805865323735064539094241980147862983435233358610093229401132205365361008909279461869403300093013075392657141478656464322349653270125511566888296582619197002234475684306868751575083009591792130738803828859487027201995222861103178067441092351080638460661733087248631325827345749517359048074061274446382619509837033708833798332121252051397076868762883461156780604864886241437911439600273528066067508600099729360696251409412114044479442949938139933469507706640641920864938882817736286565071704024630844394526079805309763252500853803678492927719981675128220634931589991921687162576402963426298220623347531684800174315889010286916622474917492411916325133266816227679647628468840175485749419928108090519543714090280187714720101309947844353461661423038279942936292788695200686254707040122493769289848767148612948476081409250929918052025286941070455827774908774569337811021834918685625886711747288329428701463283960960918974094594399877046754369272624152851390533550908100908508573109890623321299554854547080307838961207954675290479701917194182239999117699140994610478638583241217659916520035279925482591718264966211245996443465715584082295864844534237828079793647067717702988131940774262195380428380034288108395775954174548039157294213286645733803801545642333235726797778166825945233884345536674109281841822954647435618582125195031014606996275542028260719466436176517630882816451863206106504545799392131646409994647818822002691647305794981540862484223111405990130193931116683990110059787628444516495590021373791688923762798960489609808877222823266516448949378709207719239321048467487456581779856146137498904391992658723109065696193210524450133184863978205489110749919292638524136544392217733392368698918292613690265878308002018633886946333280625720962047192200917173496350465440935885079957199066290602864187068264110016159911729361339391995338563675197919816223291810954107304843113190121061380062255465012423242590082976223701797163847341421686787776518653739049894571429936626670729828667621553600601048146298867428991851983043178875130217698873767676316054161306978963412810892894053871112091111916822466727787540220735364947276918861793380708697171793153166909707657389538076708167758564184640940190297006826523974339453770619328629492533211656575054789191799899620062891043549552003469840702386712759164532962217648989526487165605975589665002751215403957616947471588057266287614569036021711282622026160493599984023721772721293288508219777742693913922519307756213352415386678451578951644405291393100073255723509224044762437255906171980982895309963224631988164788338160990197175935011774229325131389292142167100743992626776247875048174203897074378560328878060005541065076783989649191397244550613317938285313940696421068760935342386106813969749541073096458926633338796228473213286082148171603218720555074312694727672018384883078121017129484096161199559047780370770967939613717902849013271421282022669708762495200957069890207289570091742626667294944294020301324341950621377200477948891808802376405270626302996562164809039942667701141224373529266779700590951750647900731516227214225415302721369164883464157185724961990898790330243299469076940811037314979428407939306373185951266353617132695219968258334346118074289637436609465429517565506515520976310777976179422835177240553540115178003943430706502607975664174283596575579243646082498392736891930929880948702215707016423655378743698991172732348397728593840806429970653527799432619575044358250396729275680685370234211877778358987068152701013577174628423528669725949704607325145775429957484021580698679082334853874793689660849273182562898749279744207894485704995951682396010942715112646303406333073077254243328148358933631113342614636050303971202498317542917678862620957135529325196266974071177912016663542250017354163901511753485976541233856917708503371242141802386717727803757784406690408883459051207095029174422171998242346127615058073785365760660547737844533359770624562062607557397963056034287933198892405634473939007595579362105982541585952703596331395393992852666542137715448699401234573748480676981571953350473324106997972758659581987162971497268219897165731354119495098482832905358946822181419159836809468407492801288179736243464606180789908284230323818835110682860359548106155219258652518110206047667399730335304856665788772582576278945552474415677823808336689071632249560754105029745501931850708498357027486977796583688150562473436839946605114275458379514963501238817473015211148810386287510170015712952946640528990064455978665525854844550659280252852698084665698791040068419310249161564232719402574396165015202692757550467402941209025333028623864725217633147449685793213103071768517440061765957841350524338964929307501815447744463051216518085243898517073756849469699884835877388836434168700058308004779622243963820432638462232356078766537819566401138405764544783708658559864014487666214814232392035121454609915187839733737867007452327553414280152729966050676383591949102081609687870688237838311898361713287224166766307871884808551327373277678458246329342548114100327008146312698483980696148943531635529756479240090318276211632600277220799352408564569529903852180187332644770143160335210358722377329532686878025101115670512762569842122888015070376225613653585183385901517750139027523120338928021848361626879409420151350339004346754530280359662799790893268043282626871647893453608160673097322876757459145129819826596001420097719614805646311725000145864223030854219452736157983348524321589595064606601998646088014512733049898111215849326111040162342304902930456075349579674684488789375323090574492802410191079773601346354637551097026016076123509731670397554643651728215168419488012202093997986588312659499683769874511586349841696937354841551641444541771912362173070002501698494243941485578625391936167885990728575778458079342953405843513740415911415885487031745349121490313931649555159218433038165831127092991224234141411967073978587240117222584092700865338950869239471102826117810032930817279634745082472744813289025672003529651662663546118746531855251616212048022289133951667316996209702288536632614267271940721497357059620645917324430006145764023724631972510070937191164154600943893915746924530352015357898763254259752642469192679662639773106736734260452167716070602918229443130105217069704376862066126170626433376139575721166031412505491986546667032453758840631939823069169942064468144766046058694513003726800267536940217965373202979738915060400168698778441897445301844516572992524676976659290299139927822492177260075623209040188392578257761149069853521246979459537506042360822281160868667043422266108329549779107282591372606951723816038428926091961325456797177791870992916633370085929222605661823106786590036296393885106712427602824229190383882926653215747508550265517562727855596144700596108982217534340666211917446587489071051275174196640454362713272077356813881557972569949661401174867931889681156162563972394209605764201074473042249678835964514324235916678142901836526338429780444131630274236660635171904230057102190126623688956501398537029072071620006764491334370748225574029131648529391717693146903126384723379541108764362082465572505892079067045016221843717800604651301064156103655478435788207780291514288520819823581666616276754074000110640503019897607502113555259706468993689986503980223163463944125622469367919400072041933972374481734254064143962627998334726124854914917590675958675195238189941647636124681819340672352071912285508349682097232805760696662696337705810546761767702657324947173481522365592880100004862228332707121784414007464460416661079774668498870693009560081183920535448077511791036196643890570976911993136155860801910167788883380030770163426316233755986274540933248912989317259311735833445392096284587363428549668207855418688907257158332361066993781530017969688672863369286107900007738720775544865512625837310929978631522713482535793875827927150525283747550622025087910281705518503173215729903334601218688384262300120209728198046311728313991131171282001388973066788201402727401351212095421965133683823644822229541386279571157718999576487218423108411190582667006059780515474306165873406471258615222301765229468755481858931485231107665255247800910081280626076928251771710357119296908824109543043509120687557259012210334646656373480360830483258955424770494101517944547856978187683072306377478826960699030379296242974373070414271588014011671281649937455941375344453314646528342101980445703314645607186418019946092914934356018892053932856577675493724864893681989953206246754199400735790964869845629194310378390583199218835919664534185969164122384175488679600395272383942391662444110556416606311027595848153859338795865029718625643210251529101349744944946751127596877096147700173762494349112551031843475627519125516338576788638956095384526100645154231029219941702166453068359876686113677532124711164879413528547713196991484488980308408319282156696957781767233137582114555923576005245561018844173125619964970540703065837519603941974430782301285477838006849681059621785901852769945609347259947286832867396870441989013687063914516630187604782839859186017188716941986796726585979851166390319953207284733865730421141586806894114634621873318762702054999971836881034754879401097965254754798099716021641968698705459713818342557531364456264582868830332613684404592842049274511446013263693821749597841277556181800873293076431193740561008350303723174423699968001112601519110783159763600071781907556975261550750171390617788201416789753106838476902683098106954470223746311819470144846635166683885367675261083275305127043388228841753718235023937226327172520876230278777574354404134902695687676223611379299918057018363822635212341854822984088541946573965599456477116850003377281146083321447173271598702131889227360460423578294668875235711363433001256121133332349920789364363336941148564691454691828827246000298549979415782079520993987790103608762101070501534177280888482363759402321320855117121323768334415624757060507790066842164223536633334459532946399522739713151834264331402015072248161209293395943970035392581931556874007117669119219937990884207923467121735776386733851635385190239351324554358454920428034772862524163583047870266181294092100511452359132335860883190925344977085735535596151280296486146606631334689465956492328226085916120205447720927415080624525766387643646318057078403760840174163903250431092596101104719714456928920216397468487799354938337894723040176153168389709063178374870024835015264519378296609225452289171887474102070165366697241976786494620613866959004043914518262597885356290751003605329063923177101053885182996072547293361949949667157655692261165349506156679132331780478222468236378338032048296452691937015213176591523853371105149272327727517114524821053851000210072673842286074443546176838285152160670709806606512099092537519741581847645525721179971344455327771731838007257464844511583406865632930661615243194364939301240225247343514405170101599931341688800504611040887239589556960512712212236825856815316803557175982043484414034530175539978102718804514625910684086809033171206045874787318643809576064266299071332218810787375745816233982728281637862106747008124283085703278703978872884645131668332131921730387159789346616782352735074812512474624250633972254858949786724432212387165342931766666977076520442275736419983133885319144101271320855224007919006248696163668583094471977874629040580808310621820772064762391171054047520343637175409931428322244911527007383299713848822882796683983841821882571832115458344779760441899005660281245413930186418504254726674073235105391170310440429499530694236365809899037295397735969001301224650573047856877663536827731634178996489230997239434259600711243124976995385739135098631943177126343768612277468688921911139602351567860571211733754717786199024137482735707128341785986504357034710565975738554446629817276208820558030682434734773544101187243349985166764526429490734417627296322646467565699925921865314830044622326028925137331977381474260775150997551292209948070638902549408346087091330083376930619429712726333465162023129185203757653630387263762497303569299807323770983751440010341168288743132532291284625233395969868946218464856342519574424442752069237611996122399332251760278493868237967177874382203927048107900941422852293907033341747540314076956009677673891579354173936886572558123758674721436946897807811351213312440517103101037076846828214880849484857516189973665275974614581805636617341999786814576891391366572609852046873077697206954902277595826011033129318579324288009049679658143185131292731877574104663751786622191149984509763067058975099535287090475705766802754640065307635934084324481607204889145978129324779514443111799566980143316943482287114798598991251649699533360663498661533596303615777106623322591434452684099930582803375786434332239538135311179085348611615291083295239777455880880047016445103042299054878197851805018939768934113797336976935659702513307553428981593605855054244879585494577219498517641158261240051436107358639428367310840567856667379726238753010698742537724242728059745685120673591455894220721413949913388062378704903167330848663113380763858173419720013247308139069701758029612265789859542457618506235376412659361232517047444711288422882704492829684585358274063312864691893291968372195903119388805707967017222663576445940259402949701237790217694495904257518268220232251210108434216063184861855559120055963090491887566419664381421277768774299603223064118912697952347824621612777521508061772087987341681776443976603667061179656639557040764791303850999373848403520715316470074782008611904581825373308379998529735960857004292095997327989871442066494797850161148740493427736713348737964341051399744243597444156050700690575376614698058604303033612794102667693267985373383771197441072451347135519373443720719697071976753137416854240154731257584953042818944375923300091654416449273806655291656543144526433334952583359368591243917879389688504177656952162522452292964715255182592419258727856805695869290830011946255275999435811151625448959933436393879810500297463458386115285496356765824903812661633179320454255744640937790842339413075110340903121929493061639491126902903369699950344769120183542704690799618296776721064850116761968068038125591513617784080879685179220001399288040931697859371343299515489441170203672343445735036119095659458747346697821980627690151849902483958723457149415442327426974452485332063806263165713413756812857693285856402160360320554502014915820607593357759674959408408686429396626237078203663902991807764207291029570402667116493573760507828520911277099763545820117617797040248858581245183843016750706113506915260739064767162126879445872662624027926268326303618327669023309285510760215335635411242844628245418318947061454205585661918350300538089231503433095048257909052880913291200868836641029753916019256515495646883476005176666706990159525517028469355672500393247863355377089655695433608755535007241572407581869358485790734023016392495906525488581663320249321192141204666591467673483920621252623299352805941187875139246968782412962593756146928892827828831620582808937139806769218857270800278590241617812327369281518068524891823029017099650344637608238531434449901817374218579924987746704434106493233340581471794823827184194022086733701025224129518506713693392665727135550761719245726940100003083285793907593598510325612154721377983461048919875004457779122816374179135577732621649757191972607856858084406467645592457287556197576933068623634306828797419362270343383895306902463439569723822519049246718866970618662738438562862579853028969594409520938340360027217751523912015282853601372630665691692631110948789241343633504439161260475579340730915180846141354712048372019454844255858313847796488196719195092438699227046892002877850405250333238430608476360924701968283414094007380402443727163802651753598907538292483378609810869216902052404771727573027831371658216153803957816567792207074778139922446854557685952726350255652326684171373260002458985051230111098742794662848622961806295389143697228217601936136734590658969196267146224110550213390661915325877894240027907013193394655823593982623534342678760544670356704261100164558986163121432801970033113986930358565417745136325294676690323094689081540956324704709584499547576120690891422531717405876744873505441361427541794251287640877521409524612851260499913688819311709005913480906145959624276761963181836994048256095653404187812696268742080995510040342194858914027948092782685240528321035111072926039840307618176839104652015276245218597709446882574536254321947404256720708905084520547171172259855200422517062704131049480186302481016923763475543891794898143048869015370454980095979547371626312383561544795527305330952409055558265243718923269993864535145687168682101446366183321600487722081379616429063381292573670301492131682299677552008324342915662880703005113311443548048882735202406641163468046029461340826808029220458315746033426755880571482970707723205625875975122810325129223338612343973815615603780254565203652473681935684048961486790152207333116411481532631056939668705187449617020810024254236404656514927545359017516594884532394731997868796468512539776071533150702967897743488757693624372971902292265583249526032749310131763730613351763516394884217436531020353058755538077515385185000238161437803260692070799885914535777361095304665844284500583100080995990727031074867678998757656357326810881553037463741871227387141476298793510064127381274172488104179705973063380380521426159887055225357537639777045438363397057821069428556325658405441129065031397113441151845706536634963634408192439260441100903220300591220523643103794168374211412619500774663515474396417560749923612429937634950319430158597948311545216399632876341184499926289649542875276679437710066140632615541668838467187358972313153964608672567506500263378377698608379969151310303672444683146011886009315741704282775925305509909904693087088380741610823886694528406866746389670981357154784075373165296415677179241526382705934216431329853334774439444304382971822423049295099322493569918275709268636941439074835085894435597445188234780918576165108655789329824720968456698159281052279557283561834076911079037984356243513516077910115107320138139552764417557088243902847392346812977592625361587782051688865578449350956122517002552792270348862767432614685211295683612179973150695535223621448725864533057425205277877202305727149613793195428685372549621392815374122250093569162994338598138306851158491487495833819883320280010514955633505558967298324984133449984213267236546713591795403655531869933822380736497110800142581718801720417399059356738228431010056423777985419695310557102338045096025808690337271491906545858897742845834011326284700742766542817058794012781047846186487176946702612268967641485998606526374032757692083592321867139697580400125475758570880292856123554016007420054306364000358884875730179828481714080020009219924175954411457250463996421326906869407288632200398136829327501000453300008378620002561849320672157809939113263840269020789257288918930566864142951200616230511493395829940571580299969340781820651065318514089271245762658127648819894945787537116673288748887011381620427520408277268176186641213376966355208584144311414125245010860294072215474477191493751903018287347108250224128651279677503282912805515263124374702538779807751397346653971566921067453044090024792645075916902023823416777477323439214516788192092745045733681340616903609585194839197276287827135689809745899757613403948150065446394417685170342292884821793199771300933515617203932863443495428860245385769390760501816610578978930527066806089498948710279720512704804404785047626795153599280890262498160487484489210920609428884996059380790533574828680329967897221379021232070934887421228962427638287770728279610481246256227107938317929357339270919604606741030130193185313267616612691760819006559158755918146280225810394292203296633146658764012946887260869593029179208233452011493907181282534791279962838933598584925389996384962325706307377188099592570123071193455262133793976040470159084390517656340095947919656323284991955289741426372112074914880790086796046153984243776486309971881822273103153830842154906919747204070161099383319237993777652764650646790225135620114409979552725200180128357425361298714663184727434068380708102496628160656368787189954072330836422006153118742229206902265020648675834830753501432353213767212351488545810767788202348970022243157713005081664874158492217860659431311587941525003143873644990136104856411660613649018409286010688185976544366319693374677629331226840495042110671376455928448482124062291253979079016544860998203889801317247071546369721343050408618711839692684749895650275709746256651740103941178531480136268897048473787092124892876371194283291168695523970393366403779520885801718120625637620661533252079253022728332075647241818420935529796847674275765585688403606350516209744879461214356862529022898819550605207850893780768915875116781033099961275193268870117559732068730714213729284095802762697663887066090433595682804589825594221095187607859401975791884856473257570521184829907863363732446559988282608741988291809255236230114905853581377802125258147203317914852346354894061610876029852494174336375619561501743059916322601753723559418818495296242342744370804377283930927973952748524209711836906647640138620709509989797196239171544673171859408872688573689728931831246508392418686418071145870574777339507529595496857856626165563029825750241602323473926320002807790736108556754939675954457891130626341248293773028567435856851111248749599365073184997214902574813474115360020943555943632772665510214917447124769373352468962660580073919685421848763043040336112956438449859903486512509715032043007556335178844040151304003239059644838781398244953229578753058314502039548575298438332195549595999466279903630626118329247772334958169387641179590169533042490363261201582358580340995428475348795080620695819010458384451441007484771914543394992230999525294353154520032371097959755164291292055081334127615648656432638831412622367945360161104999723620987351305430241414501281184382981425211056850841741836401548889064090097580473254731759996266707679186797056854285752753112877489405510267440035353734562397237368345643584059143622165168860478735513015393595911111786696072247818018083193852663983725883951308910759772468965965905749620628754039021681821097072277512678644912928076462831407645918739838758580821101313868362723205369717334455604951118904119740620693611053278587168906306837652796422846025515159474951534324376130151933820268149927576951479410308822801111147705222768095954523870903002751181768569883013200137925642935324869694649622176433979752961561271980415880871055195794484239333573419748584794391679631586107247064840068850502538666686164283034619418695001203653908989066326207248390810152022485150092242138177681110870780658531050365985356672034886998560796633455950987113259969421840041624444065466062663490557246911627474679063481434939007517179489736806246816211731928701030879294885710062217650985256092864240442040410146408458340126317904522354979365456271818582182662463203903525882230986764009153877065497564359760801704218200316455172289899872029754419119924631654669880289646149313739094588028325834074319134937507944248579751343906374266062838401595935151500294797610832214143480129678369195939516907469188218824414694159730844771414371210591916718160470084925479964242385935890691230648603091430830107960491254964874039208507723758032252354940588854349012558323029441026013920490064920440845227535972248187446200549195748031686372466437897068529670058686059534387742941174246884810890843615193423774422693048577239953802611110978590737104383796906594283367874859655359786746390666042611279263310577280015541849389478835511592986650183058516835416651601013727994068909934263807618690099063145687683348936390983101689704679369947020032678348630112472992938491708984636686191261200134096226897294773380327523405647968076191609581150647475663611315174764753732832930985970683356445693851924109688858808332381527432118985832038291224038621322259169633512763047243004118005105258348933873162144858771373234643227781850914070821727795592485056211488104821065398793930961184430099844155941600727254183044298124063326874937725508784822066312517266562940753148678882919251554541179908414153583031034938619889627814831370119245623199454436449035161997356981787604157734754114254910328516104259128490014984934327807642309310100771336593648787556669342666846923317528594274388252072381803533879926098848246698663872737908961123959905559304816605530779674066147993983511491949812929271874287368119735338972697081147674747116125418442365555866973671231063988384006022350772558482895579617706036675117542985171759977539138625259432599165421357411884774896907838511108187910583706328862550347829579330265524239350126245392498609051827040318198492907921459068704170575179774443357980458516536640675935474059209656202155338648565846064201042945545844234010590565037341898897453304468879341302782021006950249303401875948346306958427615931600807298829477450293985322557050059486465035941784506993245157466490927715535088641480120402816302671605509697957387815473645410268647971736612760827272859097798205154568227594650097261706781695593222488714402287720118715332850303010685485069539702842429936294303429866517512325826055062706098328871607976567926734312140991406322904936831128090458484157808461724655676906761588003138230299109500345661654409909839253285565344139892786268717610190160623238752138906690740502019072952755471417699924414375283447068903122765504700319485596745178552506219025143024158765440928490691646717908362490667285185604483412238705934210071342832619333152000407052728513414071921226142663076123625606604726216742389547076230494722603748615402926724569635007873720403619255439531100581972468124929178499720341646490391904193457773296607735444828158185258820098131204509549554427195483940690121798040998115596461303161695760138498831119789945279783916646891107844959564851114136806261905465965201742259019061580529495514346678576532161771053207720606323777165750253738899400174181014945902481604237942357305685000196461044648879681010183742769133355939669302606433809808873804023726977361186526554316144559720098060495978935395608151535226436039351709893672060702418193676776152705420805574401528844028144183506802982602709641134267648336599387920466609113211113536090097139014594805646944470928329978569564212862700834839742957755737708685680420999283375116609844232208576411908621774611524405772464005715428911660400745709506576854536230859801780167864873054287393706667156043370052832888014659267391578622325867832680798901217284390806290416607153269037051091063163341587733604927931630329513808685197802096887179852336052629456161280882324072049905269612628788567192154284623213298154170066002225652386930947565146218018304707719947425991695164796928853884381477243083105248110870399189525551096751504646558837200676595883077369894536111219983746908955670157538315561019201370788904383753228626136460224520733449306787075579152437856969281745854062693915693043074224206249522012445777822118338955050500624964033818663574262272370938963983945411815107161881633637052433818838873025545070608228239304808840712282547136090752213120060492381689506125122292669048568568693789528667241710947771988147558444920001120134260592797937333076898531171714208144484300512291092951738259397569633611518855266004863626659344399002295345124216034773146755722797562986833190576257539227683886322253226218235095775112883904595543390056051140279759639167074085476984569165418447665598114630179410422132032816066406709727315058000665909879161919100103901905770291785357079238387563181556593652434976752129180553493929332888272097791387691481823448932437692492375146614182230460070935937133095244092033052888128154163480196427717714710205418989260280531372980522030255442664491613978205764472805079405820085959472001527932907927809282627509896592164806625997262065230596346710476721652602447418130429858417463587219663286606999950616634424082049916124970967541619434231515714904946309441882078601444469870774678306183615863049333543124246581112918223186982360361608612496605054421110844408084445845012602269097784197588187393159426483238548932724294586770910539265504585498494559593968189444201079434456868230789611999416540765121702278871066329811668765149655777297140542355493752388344927645194440542594921198982964233451978160468606287072929944707057260996354387426551458394865467781901730164132088418460460674682299475210627218443230922525920351534634013116136229319033817873880503550698168913134597350642812637905307363732908526687963079401357213296166962485666394830492324874998160249146078384687298272033448855996238026612166552722037767955789038866224112112773978885953108580678165172487977651502057830251661372457814076257343551881710274046455673998989068994091021821269282752559611081380096456839676951929031065577995196465080000301320775563302376619806256476406706856589544488318864188809663046612508661354842239196576005306291902469365023927265425794287067947940472053010183646023360306643583882092679675781562322048641181181969231943453883980088573892605528728320239071681450778904879873303618655750870248099022288511264064046533996674013734028749197756406460602946851184132578366489764621541490304176106352899125543598405720745808651965989946861445674177812321633800030726832421415171239165142937525558425102077286038213725410943987386863316924740390488265172970723982103277305170106374331525255190182040196853180807555156126985801151274132988541895738782365455322455575828074478386662964753047484797953918456283851813665805915013791489158535884359401903409236175767527696982774919438544481771888432044179939450872787582256579826929932645141791184522807572193646852483473788857487066644903389621521332358179339505499804915588197456022730798178522041118357827904223985679025082475966758125251741331702386839479632443925166226432859776213525798461147806397780592094455360848213996170688851435895694037829091126491665503121748751472632321309279473992581467772988845370281581679376462344843113814282996271968927560624106478099390363353745469810567783858690959480304104874695402051351317999871522327926791196133685893782905413131372551259886309288206888330195505797204269621183888593812326011720722305811416230606379042564361099359330517398458620067071266387324645174256427495751909171977326163838770393345817958667969666352155417191640854608039082919934010179014452779321342609689878236171858529907596842879467709492833378749502722992831243297417015904742030244842461501149843254584521162527469418206880041274796959082439110267688548051599503049069005085553081243473834635868969398809407599002934814830502270036717729379100539780749381651316634747818555979491496988406072034431964969489298680406117537522125154691963470445907818254419906543919107894755598979537179016672997857323983942654254367136660233355187465985917607429853571350437322614601851457994394979637470971289419216575110969024458672987568828044380555672872194027618540953280383220850128512037798448868612210925030208352424703014050516582512947142942856643780903713373028663954528337645153717094059856337272917922234235279466077033363906814762736562117893314473677094920319177343268725372820821219198486508583524397007725107328034491799941074421876845503813915791694300486389997997283713688492280169804425358315988271423919964918876290344122466860421142070309228800469451349536755950546597649087176538482075794882148637001537246418570120845850056218130552558214464219256800347356826971718030910651594589559948445362560727991546994714926131652042484236156009212236957769352523919633250682227145329904416372885480184050637853211070927313503647916177748665592080003545864237539534233181616590956589919456409081185660723621578703732935314880428487550963648137810181472214168022981957352364161710923599229235320281838998314591918047916893660953591099062975835873981839713947149413802315187325643602041345529803721863834553271331221299143636206253444974639735645933013149791640998888455213230615964590576880244450766413392045824141776928032326257101953207958352379866384290415320962125732276669401260887956218734593047239920293876893318527815743305165479042998641258641116145728109843846343248018298502059038960161917084990289754548093174971209332865348851235961621433531126290668815537115679368490930253507461675448319903479929896190721055371451899942178986738479648756412893594156187827279138651992814124794046486125925795676753615297227680996378890754630318764002969020577418487146686247657189686775221185905830634577899326150862632437285968187305314725684901719722055365870512260804788614404774095614908017297910431526497092361622512039978628846721961475050163606765191145972379109760150996891952838938364951134109140152053979470986174952925633554896064209239417342415173756849697780360270032751662999276292856251597238684895767664358612705726584870107206139852117172074571106609929250745291004292944421665221420671982597198385538742713023364088630074304287758211819302792883909239383492778307925390693399358917995540585958831190184763252092200945764571834651800986686784307221946702716243700551475840119721720261685813834219511126449000682741952701701555623229878333975530741672949866887437843361662693158713091167452633069361890284628329464761229414546921444576805403247387328939404885725157119917026682412540121015657407521961389869184368202672219056835839919805010771029675815281583951414959457739044716386752920640345655784645042315870728890218747402724843670235224152986649124950311800868325993366709207281155044587467805436720077467222985242241038330854652199193083388784180892187667934313329483726079333464280059087084899416103498107245812880468033518851504629698321500990937549271403156694964291891259463459789699907227152806876726475920966824540734841584870118842181071031670333661717102575780429997786549446358225805016212925950706779110947307080354464113100340878463702211724909475489540679145271015961859960626007192396966462984096903154783791400086261548243339948721382083481231204063085571548746328958406008925711771143447824046286249835230152478555592475555023015221538134802007770440403339692281591073623438675180268427884635922132801082166328360589803419890656444009972358986517515194329100165038445718899808640938144864323829398587937174257194493174086963004926796787298547722271895494015605826040618052126086564545247384405237533791282450734888439220273428650222375771129875721977252969461629672349880405445683149726244106440918889485461701758378837116073374932253727519407582086976488641780816721400057222811611332651042215061024131022246111019074023132646995465749167130726865058149382950227051475792155485178954096645662907303092393473479197957995840549860816033721202486556844190959194213160061457142026190849530936012213684685493734265803917065588593867101560105688344964724132692995752889060749718805961521057757655196268116147553546648728245646152182047437154085887448979781217656993573312779489299378435640067823453378422918084117173695041620186076748617310869391175634675377588477856854972747461801216244150822666844821122726042662112543111242114825705639263021972071368825855518781694403799908896250752262622415111023330219203156770642249779064926597243899517530633296873684289292263892012138076346660133647558688147862256660926588832141225504499783952530856909609940822727263877464596441830624585077474382015693849750610585315763214969011526524591953653563570977903167563012584220863905729612005167154588005279395025682371128950810712478300810644213902779792219361011517878831834656094508532704699754702128526958247477885602135211925356464513218790793979012014492977188459332740509129131088619554202341072324319643267491019391289551600373270098487596591097352227567637073393516442708997874581811395646805128235809841533549389017954118981157269845688498349754846795519267447298030787972584177125095805788333729114455373094538826576072255180933372332623540961730033549659236178348417970798473590207140470024276128503469538423320459030598150435639156946900307863739322727709080503356985962798502337440017588174914900613803350528662812814333073527728794517669654050976915436479161968166527368737866783264080097562611355101342179929862686292602000165235734723963721708316906565195174128501423159961184563248450080065306374817246109422427952232234878987285993241694634928488846951619648314384096887321832713405571201757196762602171913859466062448069507405226887849694850209484751805254808372870684750663763122998403797402208212656349228798671483862509912147989705225630567163967843402489811509911733219282019321840573939548125157570380778549615265658897322734670747950912096497071765085066463353117308318163184908806563682885251292940665545888222027508786965820091253482805213117086878166454715646626969741097395944750725219756252511172243947379959555615097168956744734422076627230369998628756621791612276749307710467808257344958965284060084037930848605739645410829900160726292995752880506829348163765046726236710246215837798558319393197812287894901211682909379554231104862837262219666044573708515515623388225394130489708589815913600561845618441636502945841478954591755186331652770460644370059624022407545717871946088399899148130525987281965989960166106238899018747399909052554906795052448698794924788229042288192394185537916596787110049238337395002743313459411472021753011658752635257246565278032419967348218455549848029197341495179203275890981743599272156724617022940526003811928862269270955491717328525127591447590959950413697898410307938726914476517823632680412104304273150129012139940069923814764744698663070066341095286768437318197249993151009534756201301817612345686853903585980435306240532938989366282311538849488820832774394833397148602198558429011938339194389960638358385095884578607446241346900731758080992194136749149248896562442932245733617030951276782061706218500855559065642898148857303500691836618416710062107403049835570387245390134204069555337210990090234734818041240931208563133651193631000239985024609293166321113023630587987812007489725454854296798724436692889552429395860984816313631112988164202334941608670754233281796541802695873435098471257585132402677374268983875675957786206794178992804016250187009095841329198586322296121621622628814770472334081663204319369833404388207142547350411269958986431891581203260698205999223103738477529119311611887200606468848479843505690674583949833537286399713420476572513093204023215068449925844451916150137526594916738768808756364295013334640952174320863148367793212237680530441012851480223470420226936388705187654737325101343775475060048102352674836856520390620283149109689041458829838935500314207585383378211333211744643440199589220920469836161824971489348398924088220591954770484065081114138960822690902819461215341952448307211238553219017575063319399519865808704285294490974757070708503019871909238631027217199126760302673145859958257258107295619295446693715183213509675531533465703772218497526937009016313372800063279227270098192910236685870330401785832219746977407973807811477965053790322742379200909830175014834187259843722494790095731231462361500590058474593437445429583888103440536329575272201009339844816062909720229314751044617793343898259161716951643548180661472864384399036080085756392547304723482689973733595147428289152771847334083186052797204054998561245960343601756872205086882845297921996882236809831367988607470278629279900431793598943287035640570310506706745598162426348119096030784406117477733622940523928172590782216936288171418451154081962413248793966924099786040507055220007817050912774523267589086612008559949430426301828406723487374686873611166969633535126013305716976836778748243333931955200944824819609630091713950783977826822998696661751055029923906778733222809900949550165057870066359159166108862436771271018674472406829218415408818098238068294593955713819876801304343173260576814828120469944238143460193091392220184913430466126978729573728026430707186898863903084239536835201942020600333175222018708532149594310731150445167513911180790694357573936480345316872125099878397779710479571863140666813802663999929573787421627423686232843854997964144394122109931172016011457574987806261384617214542477921679629157816628389424254086263356793720593509619554410771882916785417183085167026890338637749695704005803593052103084578197292523602141959429011931684823431829717384887762520052759548497845570059606249977727843324632981007242500485684514750411495091886185261084612420687725770488703567442951064358729204953537112403840446363575532213288222587986299009253138254877787108037351281607907745468358001151367056022041323323359652334203307552291691755016285042753814605361031556901075067751547077073021857980831081057004932316292303860161409149729788117240785844465590340975785840774398206256715287952624416324990198804865043022716758353721121733107925228152165852794564382999129668835327909303088610161203217688861328422567222091477176395569639914766723887751228034655627130070087853408485372335960736575811614656000323081242809382201273650571507872737377106600243061156220909471956572660038631106010023232306874594578724919351303839522098258882731190648556854434052602820755259748700762710298028153054362829294337089912820436619169438003143874872376344866908943827948741774608704708899591660929896037539273030439003020891728630676856840842479513895037858408455403515802434937649963974541920559174611620427359561112515131638479852050004279666276551065218910802453474797108714158410415332425521105609009734419280302721340333710039153053767325204805943057276922118579343657127971569030985735761403954891541577982502114205799806642902980104596599394376384224673805429463281966808653630971874881767584807460383751525209692088577670043811618049324395171591010256854413525342951370788540416193655979897272266120827489533829363038090903916682052533168445891443782908759257305025599186387731262301023079860620697474897437296080271824085996472389301281724234165796663178903499087966838087872575247518698182971507364756930145466990816852204931532306250454211351862855254767933899192691911560418927339490109272620704369050221943908272010223730585992624822613773916251587020743748824734880884711610982396315914385107989954780483364177039151988686967745563513568203527757696866084429101468763250687265100543703526895453342518050654248809115492542840478319645745223938389027481559849999198396314952509816988698165058117587469457364647420259829476120716868734224956096182936642858291358808393043645115802499726343655791431233099511075431871793699588591184906479828241302067858684083212807665172428224154817903157407640885146206508780413161611553487604689943277779225900615922514264335884016147873674282584874288514176607078364687788322663703479933178029176835419160765400501335188488240783650761026174461209280332683242009284901240756943309970347122197472389127861998203795933161046817328088761750970266729539846932333394766523611730171989926028220910485784940772132372748597810018477284384831519213093633294871280717657077300719192526342567591199366145207023294936680900911798128338489668451295048716322788075555173560884831682894205547633619416871504809592601436604179424302874905425768800752650543010006238056908333918774236728790958719428061845641447134636342566583355567743605614044645841126072855235842968615914707552924823097252499299642285715734236547842011587048554783290208052241615424903494614823804458733589697000531625059149820470147139622845517037199065761825336255318428913278003325207777954734505809394532658342181500684864801706698438671724210956476419323726566407548105388545513502033165289301698392509755692604380876206853261796390164695662195524640792288401928358975475571510342682885176265208267245226678432624643455153849320683191503647699664770437880037017545303034930294575721935416898435029617703991835465064754230119152580162474560945602606292270377447376268752241772137790975938824747683084513204868253721686048118356399507448896038309762210249525120247027607206155838321268051403311145477905780069479478834808539121931629184971223005323075372525145853364374508091420471976668241466956921119482596096780964700310128596069259449398068317920925071404562606107726405724739075114968890573239954318913034164977159184544167159455303112468551623243395182016343270194319624575036727618192792796120203855185359477427388671761307696896189769137579624379935766376142108441697742857837757393011954370654528750381627679097098506418427241467525161138949620799130827848158946672868912352986175113487248972525019570053489767769459899066802382240269956354948690350131469248426255785425224673612285847265990253967601831696442958291164270602817509052951061126691108936373506231671087709234178023943886328821722592294604434128307621305690744394962283645350324004483991090005827631141586750147830882263780967945418325831505154743087102146653479295479046128705314626895642076682933185876237269898723413644134030622157943869633990050281952324572051078814782789708653181899222769590250734846197758879914482411688452510174163193542243247052176618780023330552980172690345053796820565473664947335424091933843311239138961007701674429034198574262178362620298344089997510325965227433037949788444847725252469719086607085441538124061623846202092373551089632409990276397815719182113318455444308965563157814484286847332868474491761314292036919956457920167041733257953678561142288777992641233173251194818181842831114001949135335535776909510463795668708793422869116321502515123112849585598151904060104475586691229414606764649746991453809035546827998904103203873845779461100273632970266318045260196314566100921296058467578273475183824809215197041404242513005433745919917234775095852238815943623996855285028970228187691318352543231372332508502639353611307749593348848387411268846395446571783076505793443646741789918690223970975068934381380682213766752526786612036923199614001572399338779117066899218752474850530168200666783579387550445063287547348182258161701655102256830365122982790268984945470811665968525706152795672629128125120735760729498433775451763743146697673264306861643802452070579681279193273695109143318947471452743581147426595746932386159876157503949401227681072940096193339180023445119887107920077018616746005964714318417565668757342070469414876393092717414630505261822095270784006728602465466649592056683533031396956811180699089088332665067711964852195046436638939044332916520428285778305696378552040012918664166148457600508950948097259551290464276433388609743521939395748706355845077542763668833217728278328248844904558903660550161205292596947881998418662735000795320963415534720337609664246542785574040050974903873391541147631632304790372911840570164632899875728646920994953478356678088786827832179938789793481888979472389907353810978836648666183993353927097644410240930374635735292833784284771131411129828690428442407449286145065459303762936850534124044046634748123962119336484944016789764860579496426543261660664495490865095378083101130865516532462475705307194238149379923773394813277114417174281983693031705199276695150657810224062839854114926236933890509693524588011075855685179616895513281020524041993686866802804905237550040086509066939396664945671184456538436856302915933830143270814359821599332854103020459920119257573088534387018796474815900525006136263022324140113153976911646504246524961987904283431247580237695142114173376662346178615031994719775136816730316856821150091652543366710555322227965295551053194563052202703753701555309829043684072942871119781697444982687787183083102414364934125524947763364026045936337592637711286084089888789200518143849562746805829387441296502207041810511170648646076171564898114966985923258132533697694490723729510966612014511486479595323754658713811105152835253801411050113484752590673290307830411102970551625440796593341320098523732635374846421397256279873220067701086164064590512849552972186010638979180208345469196072222134377848571511389532025955349755450000412487518642335416434172636287208558914876370858951711527140861499005815038270470697441271912892089998982746774542067942073051402497733737529956450837645859845823566148773010705850989665923304694304913161939024307060681822733874833711137879161493860705623042457004481196026350077199934620582994793587038478146941958295914711855152623344111215201964596510706210440831582091558493545760867524107125083225608639873932001309361626475145784435984109480015215002523583155612870492483376768008363540578221540530126813992065117851417199805087798012248564164053870661699983108735525134019629987159197159724498941006535613783542532127107047941638088014795094321358682809346632420215033059591329287128322797859224048328036130621533722816331342302465668326578475700081246198850011999790382679076028755891945700992339605214013247170529672875328434157538292244175555608285325344243827529466577877450309987338913018743633517834649642395306728507251472703167499400262995741215713789889566372583124171967977234240061417809618064894296171865816588484790025223225365348782283386998122335987192666644356848081512118974440286935086836917997659310815098997872391510432162780147769401543979081657436570014829164586111738232808269173972173313482155976704667265924576228139426976205105585744666862664522243728582762633958643331647450136135902339869473922695162684333793941929487521031748589802397617176669940105595400473131065316763304169492083733891908581647545770524453204369160998643098533683175594964735825406955649270185875400318138096865062244252380278897648247797110035588177240036280833395564133497535556428259568370414852149107896248068407942276553682099259482037033579156916645149767175416670929579653040247134320974161617772486943440112352252488941304289095689927117181003704143167413049026042061939848849470690257205510931748715965495414006756705363728590684841012808886098312631933356946084907752576253618978588483375019526256723304277475289604718097333903934494374662698296291516277712249391003189555158476937388877979669004921092287598302306550501764351159061493360786483345258431631881418675757008626179393308570642114123486403535058541647224845280865426105215212730109242036382214719801661200078057990287886255061144747673659947488299299867137993804129619144951018015551325769600547802826605579803114892531707985228389105015578450711545819054023782733315007276858230231173214336288891247664439642548504579514324943906052685395907173235962246848403357006929312888328295288393973623101644098534667052374223197722083468543827219355163343210457166540560660577291602451243483373876897819232513487221028972500772648507015100742168880856407948727480433582711197031371422399602307596648459402341310875980708355792320965346062111913481452780956629215575842945976381903274377398476816263478337926220671210249489267613431297142672365307267315258264543430685615522101366614061559550708849076495828373578016187109077856046695700567056106768243446344982340163256926845322715189959370347740334255358077285546352866421835171217728204325861549741955547380878391337064942351959979562958925112046230856423891110844635076305507562768368192296593705184266085206247875637976776673839467491167050812496103348962027877752194230841215716786366292839412890909668233093465727300180130608007407278444868319314221412002463946530952067931177691039700462791558034374034257868087499650977002622661263093859178204023450060632241363399153656039590394468091682021564988134640798271655411529840789555340359188275428669398921509257228301662748607400947590666086590582149996170085317917012214798162366541230056432554197895464034187199923380658558580239728539609359578458256213473728142428175170779829043471841308106490769292186171150584014241806518269126003771530539017673282645278321359853772993338634814969751424801478192647314092987041813647517780080804424603250409274881858955591223186892506478575226394499002476187681182908027798856242483875552166514204805435079133827970610150584075514066743122568224406600365447283429179977994260456925957933638429241530400206366569368238469605040016246377046237027959567254071019268744099408282720088918127677632784414719414325610678273355507055744539954958494674169398743893273726286862875159010244117852797434915316435193748033444526037516367480338342787029131061792617879829903214815743189285246996108204889347984988318176737798925997950482306154023187625682421589939468068730083684501524301497256900554639182097026607057988271595986607822851011272714969331999414614812048433807738132823097335215154398275897696653481997153793414547154117512650658001851683006080017357268244479950212957728938088208293510777538342309055874701397692367344784743129912917835142231916981106419439411783025022518111416211614170862184068130099379471730259130369780761502224261667074441218161727501618846456956798654618299318172167956646790374083772031207613880379918299633168729910115537514163132941612011475100475441755171729929293059901498303777346083933096909115489123627318432701217080670081340415534882895154980591570147757730489160646311376275121643060390199137703510924196821570128948257846589197609248030508910981834006350393029839287134939608760902177297392849492105641998326559879469340354733445375172671504981264083299404159570327163872869324530880841769718491738947647500583256274921861538682707091627982700312331281326975785135525258351798515642611400666916674441366505253779677609938813779714136027200144308863787826377935245350245445444128524177007041791065689306656620935388184907427688552146871981421218965690912158506737616442709645712833085400273061800153533122194060624731780042932016823726684777521643385518912757445046221723223982151869932999913260512738575980564830360056392035588285297958556227462728148259822921786651869661659996075629560629338816215218515496258489938344649892872812591242234351771378306946896456593105564615463655606311978854378963121291501296391812177108857716322349513580349364646715161757609874152177374794029985039691521999832946432425184577956810970804869782559816924685658824315749338183202953604208488205207143773933878516288142299292927387258588953394205593355808391938587768217008665308850647042194921058577453489942514880913578499350390483375322927282373987819283609767558369634784993325276551821980439313157147954000466444097386239944595678250905453738396260918788787625379164510350936746541054215515883864211866799621800370640490966205393948439216363416637440593103106598698421243049565816161753503228155318422293966810285548176050532862404779983097077410676015342588504852015964357300935815066040956817309754071568776971789705931934901965894604173911567995731183842465617288273708693993416493992834967323166014648432269046074791651355177813348848888338639999503800467976042313637151751384088182492677364754436757814777622796304400222974476811895196136810593198416061894171410058541376310563238933882184725802792081623852923339806693081492659552863115277234804996065862241483184491373995308066994271803990671353637226867631763428453480495295305689548031930841446374635751285673744808744160001248667922337142674642163850298005142478973024279349152774260573596594721538191550503462483250101951488504678537333154695936121863476255968361292400521198482133378294740295711027673908877746436696254510621581113267030243086063365856232325173724394523944950979963279155958999655209677979386190160882982844304224238051757289042988728017603338642141495303612184645326389646194049222729735158033806122833368004679432215933238211104783563532581886063366395311713657801805518762312432929670951399124524994514354312363911174833705289082042364542151183384768961313362381510330225726248795787053186132509407133702993220252420122031231193394762200500341729919691375347909929349578314325925156404244977981520049799361486767622564003673913081571405594591364037538219270355347402574818877223102275343613525388220215943839021668018929562477553506253894220210661794649480613233205571997246244174616145386842415765244444830367026691974566265285412759396588437187638519011216310637779608693730197666133283174580106474289089381325789002099765706227884753855102231391217926822430896481693508476329167594281719140174258377008239433514306148233205934773382596900326762020001961553884907845027366124528975941502784316938442358161990422007633161390751590877904926873220858071453649503504406516185777749991418689848219921017757602716087775297130743057286825509225581738638892588430704644793304451172884751244368222271709341873082482073409949502460198712941575464576579032274050521459515487524866277099168933957928294920474547812069168880465483697735659316797089651045680593289561263653097825137906898752731609214873528875979463185573924293660668338961697269531714312885293758343478871990282966553912037275691793770835350618514632965368676544066388045772427413979488238094106963901498726828359922680275450449569233328814560183850023048683707335099282320708367983519139910091461684494938108402899958209231766189152318513670903502465538845619546308132744866089136220571804727132538595899541026348293928572193921409868613546059870662634004046414306105839590794400663708865874971031853945503034115253840853968872702551741063375888071420088060477215483263219751071266393471463529125028927496686394808814026788615847143983675987187658883448545083752880421149517337355675072967706052830925813521269559778739142607253823454762655680789830955830535597999500966814670569565151888187883204866068870423387096258683073664575407215840068901046862932734986910043108520096105616319179573379106430939076711064003686535427455709967084404321189822440448454941120143425803038045354128185435800664591592937635335402976780092571185144386581568856340165084436998035432084282300386811308631871976295969816955423675394948700292476201582753467007546148426625116787603043081731487641631487204858342739157882712065368829473997003229242652336066782456206298933426154887581588690800994629251471431528606045686936467419020066192273608149319558476206611755315641238815250072782296129889253123143507058199725406569711271545492017348650538544304416864032720237253645136504952228571987773277521881097324385897444840973658887977904299611960851771984280360490454148558538544277775744406516069930628391356341184108120101924428816711179609580391862655451027022687809089957529176819108208904779926284163158492483394854066796818641345061849245080620533328359175684495538497318454166203339206789631999683783659521172196686028523454978821375968663216756330340478610151117742452281735039208720802758578207177843263159732789110611383768690905642640589783032406853500982462981521754945547763752278357738579735011353321335751082893751381052912715190144949655403554698820934718248785426790546674955768682108435116939269252674145186643297753873492259320726097465998264891646343659329876758145649026213326225744377810324280433506651770586174505084055877567639282095290014943757828003101044172223279505348514217171207767378090552111280700875719314837443808094876743616096227499182217563211782959478155356646107862997119539702621400056606208411227208932416536998855960342509441069679772295742435630400145890205454043020732235593223056588699052951099879592977860833095616678176102542448360212362378688477490474419056647201722420480240095597725015655649804072296268284434616955094350237015306023372764102618306275693922301657003811946878097631770925331431164643759320146071489509604958869902354842757684446820822710567920382846803559867585819242306411995367808222544227205170872539619133116383581973539759328774473630553658819347482643137769333163698575200435752260960090011494655803483598513815962386524227067043211242141244931949002166963753895131180537164238016065717825474501980483750657545452360807145102332637451274496262545255078281395978601904534517777641837684950037449384025404936898199567415550752428155379008167161242767225891164884338143368919817435039330952399305479960640297501694166364562192202667415482076655346046691088704973665615934829838901332233384582928322967125954999204433821323851259839381789017306748074620648386531821712807289151976096596351893877870512584535901120784558322315443360420715373958894827435133882914593826213825179654818843749827424623948022602598385070304911195527400248666697887491448133101792820265211459775687353607862824812605878065510814735759127397354165729242776932401523070084493515164923525077587326526153249183881942324459918001716807451213133922172782090257556400651826092380065894288239626187171563614341228326458320316593711051330057763202280927854668279973205657571731143147454012790083276867187203517915201433299544542845314710477755908497793031123656622426124372818461986791632667208860590941941107693176314256804297206226835182176450261141654876506082811591049664514080567389508496495885444662866601302931977977179676003233240485628181370874158869013161400671808501598266352963438048909108721541767293876881571749716046971549562579962605541139925081259705836583400333234574377727232663818664597142120364717769155764272816728494738676952657835922149532307562796940665307283453721176992356013537172935464804396704928040808065409067113094984432907362089888961176324848857463453587821505190523806698410247187302138705615441832207643056178956310956181235334904058154926971050745710597849740414511868263630833852428360782065365339693371918025351286963147669667527940584897197362342184700745495006885723151955215091120748637014464032089644269937571669536298891339788608839988597304720371639925157613127206714357393739997410056451134680514710151439761660014068034350985541121918832829143049994426516450649923950799551208216054085603716049404175537214090851536666690189396798693789141663885125243070193044166556751452226758680093967490102644111704697791368079835870821746799243262602217852561534702790540287340684175625833709635219057096995706466277232845374500870957184066455884213635246628519944685337035678141431225063904642911575890946099072409134007472434020692609432057306073768678607314791120400611923325533451794840348339490118453071222508968799123643741611108404853312066991956415389788983159849892755473106954736807252329840342078325698296190296801234590601455941450550315786593718717419556898503961530805692100556536299523108288569248745636731656869640750718591548138582511273599290996218166294377490697102093290383634310574127996659295254502609455489992787976747353263813854887641111285225133053178700045224596228027134912192023550477108439258557185427349352149529698390203610333087653044474578909560324526648632536932635335674085810075257138057403538614332275212563350800961786541495605326673344727990104399233850781568753305553463826771222108553624179129526759721917414714738981894644347974863533079104627941619344355384467469711217593451437886401878533385011884822165342548473576303289234192484625548767920479304313775913090188488020268428087103209133566379280371318893367999459317870345972691126884137055308099385869187239948130774749647076139201475224999482957977851954121538304420422765167319370351135844348682551896770759811119850522296160693189477450372202909067002625520489217445812552551944999270428379094956361522069529796912708567134430719984901049891692015264186579075005117488892978288166868478013189172669956160203829388710178804642519001604417434077478540738019378205678612349176830048709857031033020912970475431941024131521134227460932976498091618498035273744596641267596739334375638558080270155614415371799374107619859559365774306799197005501019606642932797440544990595333727003377931540328884909348874931239749367024613082017703733220726992559418813847079686872439131599136577377561760655577565656570816427613524200273033465634403104687104056805253725319382499650909169246662722559187899741137713447695990561446859718381647519844327110231424127025522623983111915401064131822122803027046490736586332646972575292824797583997752416428608750704731043497877101918611247368420812540021551852170451117318374764472771944096259391486067352902430858798969185952346713164674585483919815281798142449632499798812583090330741035708057891255389136917953847482570575368415828137645046391642224659104506242582889368548972745119723304031242009944984251194415837095933412967219794631700192513558960877165210113246920347265461243361747913834995308924706485802941603848478045402251196122158092498743969849589416317121679917359373740846668622196553493630524637770508355782254140921779984103586591508232036853984200269663075552370453969265231739629630260978524536851720869373083817325328942634000026706265646898446799925480556893693633914876938325076457351002128477961252341032119211394373201666331554319835826117782314857187096042275491415709443434897073768902588691612615085624250569928583558625431375601040434785404912585339416055130244126682953612178293004051836695850688164518137011659716980820255929961779031908679363164083023702429137041841900469405937870868164305675699547594386371943172985817972032461695519007690700268653611244117086194296149466354848111526518222658228153417418031267420863462555337336624368969847274876063012025538488725470425885558586622514216018448890463395726922416754181291173315389730316024099111862530214007565410910816654441918535222435936248241085753885193012317846686555196041298612765596692601502656489002398747972523291559798670363221295605201134392790932915907134156470017407375131977025110481613407867807886035402986299305622705703245436849438026033942158478130046897001272406080754257977255520456141212768294279537717292406131434043232612260206800647242178170678338363582904611075928510960298004563422530274520477745686805721554944522977934707216349583789410114832862661310540364898040350748647416764040194410622696052111269249680637878393627290231626579156725846297875288232407938726148635098632483343383373185758846208245471947544831040337918560351065352002933539644063784292758365228128770839348067696153249800685427166914370761823036400450886222732459120350003946205900168303480524660469178156897445072035641835878098667388123872776832323143512626763970093309198026016729398835492952499144159902424612221003098177387304557798893855518582002326376397403115984121119166380697032181544441586140012350308994308975906517701999503017930619878060765567237465592662358915722204574361457604265576292015507915986200918351991563285478706930789613274723931935971715115041106421220004223687115492615252194765014803065445662420273864998792657830312891571179045542137118493576062410340430896531262738159495486174712425797930690733311942188419086753338938241759302643490533317321239272495404648107172711404644655807118242799611872433131261830881443529726110465496710986847788969319250313323381475109674678767911296825725609184756327794093317655504056752098747309943190040991590044848839903093836312388411550967647148678236314205578540075156139232932048977647214652118189115175723618694992959951715608923432778295679821092402612065770797202563261545385678551193565061057574310919875091394867610774941591834605852368599222433011209312640207019696372798668879444021407369824833470307505982666342973243568495103756617592439136430244311015226209060444715027981024500827593969030527928605556555166918068731328232528792147364812373228680083357953677739646428130524333231260851774504001813913910045431818034061675525391254479266211804315784757901130602299624599791721856253299422075624588646925005725078116219527662720633508284593229583333530366833401043424790900821847632310944748343534203520067329628812788608814295049352406056313089077503368557012960097117106185983383680306299138570229093844168940607352856124828122162853234461593293426644052717331669042850073149777131346447351567150356484795762895879751838289900755700480970789839406495074983350876216537458318474695276747992708301517347110926883487201127855099656385636020066971669616047367431815450418543754536665208220801480118581011103971367505491147305344845047922300278436753814859390028163012761828761724474715067039872223390953365062809826846240774487275299148188453356714897232372888500613852936910307791977074314608107296821463415030563699927793493871133998353169862781803247415826164541700549677415658531322283878290260504443561664854294464561080261986749999575075651928400600704086814858287513236771533658271693080161404247751395373942150664125896436589797634566817495024638502073325811901183933789692262990211320577807662731050592934124857448671440836390686409598903568220353909729153851628639552813949294468207663142804141457626065705913602240656434729375658600409344332460172751659225011603574713047362560756835907582987099597264290202713979372798404058362437632019009588366916335132779873543401728641663848193751113401261536825134025749841091891203957787190140834567060252996516050655788970119667953331513741730436384757101791087902613978124080213704494107315206563426969728730168115299306374928117615511325074883604584676569153513323345026651732505767873155262022702434940484006329430402097486821825243080156633200712106187955912096652158034231041186340100094691401143574308680209515287165552614586726757212547103661900083454314328495903380514462834692655274901963625874893777052014054440772006059025786268889552692183026444034954420748662944959770418985089822719499143844431932206134458487246796771092656924256509100158389740026472709671809469227340005475046486894020998929765672982965696788038135345541502947208526474778854638508359595544527902180788431811093623447889555576584697092990975101852007337522622388312572107696112891555922355325940947675740934867128961349292107154988789351675333434130967561294686373667926353524882683537505370057201707034320159398459446348641323822566859219940782783401916513302654064027634283967125180159431755569421658090389609795135197619728457674832022870242027794395704914868439070461670348846622594805961595691604291930484863677740468582857159175278763902346051885256404480945009093382085862621648774792892863421314381769964757141952445962105761106630356286542000913598349740335197051186722648224833479279654913212488167751004197664081793904491098777994649600308544848382005236466406170906978347991328265121850716665313079244683337727949141310516128054639612704679738201428025047004248301540832631057064882038699422543214729580068885248746344154864126830647270111753809690980768073308847427812624672609109550443091612930284871702581319158546725311777062437828369381500388789552493288088705227300815637949839761758923835836391875937477042362916125196883878591936912125560171438083083873560386418165911428354882890034573451828623412028968291044268383566287161725758414084835809076582504560857691661740765864093767609744722850104661342610206367442193386366147542170814086124370065271646107960581275065374220389736021684635893976833599666489070871982259536975621224513372909795095983655775706641991831595780870057958220343475501923966550023439490323366679830835621966271043615935008810568434559090501800445183711208238738600671785349824365619816531174185600844095360186768342287712448726766006712911003557155605917921951508644394459843276352467416242135455412966467096912815937693025836222870000614538396104769285027585343399352829091321951266352235911042674961812844912452862320496600277723888547181782416994812988395401971254232252296241956085976485562927627917691170597558415859543301581186165057871654314262541937905112737573019040620625839754644428688290616936092284537902712122286691839274816523195728647302782208742187898346365962764076065009628115054518877116038902053234525364248512409504233353230465971971478337262840234762421953652976887873673128653796593438299738119145734740513396657729930611540776782537811333778709921773655163269436922557406094489020749665340536961047862429000927165969630854182040598223986140838266758632524039945137604615683336382807518276646325583339262129776557528911986854437424714250581767967812492649956090403099643433853812144096975602089884283383983904491354834177184409490835596072328532881718821458843694734175624020880297229881166909241264451803947963459720725665415585447713771096119770678212324791430166347690352030025622470656473784316173202149886544986151081046933468269809776829975207782050983967817715064681165961429879561067597720070894674714403041698705256675030030283983909754447373977458438658908525094515366047417791776713166924515689268516598909664276828155703575927587885765597709423449839927456312620238153480547833701237986456220401781215950520000636043535090101047742358658809093567542283572748483935040723630281206573804913419725667764705704176725295227172994750914469224349772814602957170044926910270051465450076387692676123012183620759794473786430220097915679049109960445015968882157785104870887372479507038933721656368672577248004660396923699022433556579552899831926457921616980988060023477914632509405179631876204604086135532516336558604491999251457679170078294591868710953930195344049749261682879798740693438666174637799870370422173654722121820850025215406647067973764480017174047020864792664505459388425296792716697927151959735725241255379613743102366170905624623318633322702994036176092878956960973395772239002715117518271956978681841462703212744031241126021272756796913456401566572959003813557366723039135511527089976738133109755851336253305838967293052847324662867674056275854682292956592989350821978267415747994195412339285561295039249838310213979695688933042674602383542570477849865369332968432152036323340506553049643813279998039465632374898573824056359467125583521618826585538161442899906514257559933042384821733453548735539335393226125696857598790887182967930564738628666647232674713326755177580280325310255068296061559232331378939159866658712409906958364355799473396841660373271895340105971204875304836336304664085995444120212863250416139155472486361012873680583404694311543430818596754755577639483720916196459627673247758136303495493966689885976364560037189848911532276623821254880109388994915832764666102559953477563165658447988100821441929618526253605060591198468955689561770816722201933819586871777169444581082074012469083057601345875165813607646366003369449388579499734776925622623651724189362456072944895752484278105192745185982935397889949433930485302102628467344925610339273582524729883529343507193902761899461454270260033808586846565798228766450640130773126753458446169647873284834505512296297205428785708602377834098778996508512706893239561388986453516017982987922032566880095045249451788369718476094295052494906760970533263619248905441175878495873986956016925618378589112526831749951342675089280739058507076268753608010137700037720287744740238235759850022789783576079946420636081378630432302420798363490113327598386517338838116243076126798858556803898019769074800091691183063929774018980889763829552846326877649010466800067102308797587816336863029901555325745505386790777487008492032288746208979355221841808787321807769546136954015481336556142628571335718898108447155039386647068968766560069057529154645112398634978382865127951217473955964061414947003733230619116064347169904327759311779693087963140389223668389320088624139530676780009676800769869479242667798600860354245888217695268143474572560784247452164416139683712067502466484037474314383742713663862778963771775228575589714742023216187193576925321858618265140308939331744240233863086978929870384866402047415913290655248372051364351232317188323769380179046522719821731082526909743453040047169378882258329953887184690451104353650652564688598250038173613325053904932730649247102518301754589939950605414286147384142501046732707971513289877438992078705364273138804748677665181827947124732208041966560579710198578678916734555496001965099441443655064071596975125291423169563403373212040694125497420291744719774589057719218968291124149374894193151703715669792582737680159965502903962176848131539982251998156888435452777651323842203371618196387410665164716381559187789657992407126847118000163881678202194864549203896586169684149011888840058786298485750101729426901547445317387229454539045302976796237714971885071106447466380118153267651182382845676867026910189275530596586338647262273698536416911964944602822186630096570119413235022286363992708821831232723385096064568965722372396364914527251001443462223131734842812967690795161711482096367726345600471477983715809473936151769608085870787192458746614967394243903391704312906071795399691814615128867107780955101701516244800162454701766967948485371934638005040721244445903673158650576682817818584757007756747089635500663328091172702906843121977543393630114501455478222115712053834759226545215112226702506731873810097095702402533944390927364736612934391901084309911138957639723866903044238729346164965691525129350486565731009134175384616297731957401953016576238037460207495502034208887265448704905805929220309688113159266231025026324541170320541396432215757008929166866401162242750836492133765478030440321891595827629427374487182337121035962776457011543150872351457237461130359993259063459153918627196555928755469910830097237372045557768749276741086338898991769948494608018182561066023700642577591899127380873565406268383293221043376987494371161508989623442624139772479401026031494702197725707405009261340045067124811793180936231540200391014539727175884737472607277322963335095264799333663964364371923232106915952656426792204888277479715356187569191888722347162418906359664535866758577912269979167895204721984213605193993477823941658612183810386152095932621076767807268151003377385922594493795766877856157954068103122781314267479398383693452101504288127809238670810293894620838006959681565069077380686584802623956373731601599500779228842350587633696008970462261976678914535169253777238715038407672609292945909540575724479962446259126889964403289400728856020113716089005095501624277372643918919499577341933877848483592272872492312259451667965903087865433891147487916663826049874810325307508783499855712550803869700121414128493305403265516228412894129437294587364732918888191594512553883269016163693175329256057766518221024950434979510245074567977084063886613509762352161659806454505059837651006589931225001216097717700681867649169976602031621138786803693527621675332131623661647528644046358052408149561703070985195402421051591075274084067426515278589487368926513364913120138306779801506480102531847057836807823716764976794778213399212883842878615994172790453289767623990753302268915646636498374931826113088647664185773996871043848713068424281995636875559318528694418467190156877914697245492924334481633393084379746274774790125073044140945566432081458826402293970883298096527368383901479289368721543986267033356339635224679484793982559346461683210518835212549954985529671419178960629239387535432571968294949123386363150641847203512481193044327266514360335558922293800255465593493899482193461026024315954341536758086116080023053217992051680328133470641932910706426143017865458212474889814687409384492533362911223088036959483756189332185506930525100939343184614696430082966236303889473175745207558605467242013405260753977581405322667359317615369591827792711722840607321892160293723124652284544674605684825613669555826600414411725963702971902467344370779419548490939654884855795907235083464997668421389275003615836526570178349603785300142555671936896325192173254899456539515431491296309211568051464161012550204154213388944070116349796920005233961936937580043451484734499971105888327269064889939177946711660830627289119053501406444599425719587312996333258667493754066870835344397154928302035443496195319939448956297315541571090586587724242746181226737214302519849295575894167538011291453204801632964300164353667023604554031135801500459540801610976622456658504416140966604678495708081447965961900289718721699110555905191451413704892025341102493304626311034078955030075677104129774702646419812637295715686519584377291689644406165563564347728768571660367757137529931903328353405093419625591927568626775960337426474181349257691146999750664661856564772124970568394464967558539745241291929304709719645494511881259480146425502628972441020305952629313324702049581706057103338218467381985683264523213043778657131234445834225960193622557149843397334472048103496684668659487480466289070287144501464928489453141089337062671384533514843307133829008902347726212403763412638355770262285811854397100032796076540766551469753540527727252541214083827996190870076624462885858427782656860780016891876919152215211071056372750188344308699079047168278967782546099882578123243587577159642493482998490444796235510993152066670791902872535965711390604108360549928433302768818240267145684989085025988196323581494379445480371206730099737782796349684254971066046168379161149584705360370288807545433172671389205771688221458404587642752725413638148762291272176172247776425601955743499440777043816957684523182105919314284900858059908698697228960004577910732539758400260874359344316464264421375298633129828662099733113880360599055735458312440399920514384933504890480298684715039759426938875501742059898155560059039826305893208192745311752235689048985467631136928223072140581759104803678557806622718960985609995215850456129983281258403975992291981360542370792974739557428905214859853047209897107539082207580466875143310027910416787178891443771695179074308799092161925378039019777843496841216796449752909978943839856157955562953797312548201705153858328162561003421231826037119930785464640391778803866509539101821097950179837026916113679439446018089668660921964314024343973640700652479687629125743457394062037752220369141192733057372527669726137344440807674758966597702953288071621593138484073698354189432999865522667806877114621168507708980239364292985653003338608699199562295515158691653947497326646738635965752675210995804642838232559220916435434447789073218461260286616382180323473733052074962909739324722768337116926602116484337940749193079321519101188076707078543888325436315654204418000020180428192944808838272185364830641181182933093477806816033403722133002038960380730444788035620015944413339645709890315346743317308338437471070311582516744023785769111943524858384222302705564029478053062978659259967783736689018989443727501826305747135501107031144057788368908638104141644527506221139579424883066918006837496338709054651810255105094515234031043713274306144200425459068449480246643993003246157285556606146926393285798578387222729252972583178684275960738818394564198762974443811659193149849542338679317542553253662194943470265518722967890457633499753191124712842571461355276940423721213992929976443078475426646313496146452212351787029781776362844770773901235575184596176606444700662939378688587667443807145987308363065361286444290969501477285705987917071264237272128387509983074000314884858180686816887120265960443929269126691976757777962405519409756072966117655529192255930135841833474074786022686722288102669671522562013785739389129571547922929146245578859818004711004962697331418985289087414953137637072338049857974270127967445999962785156534672602624636000306151380198752697681087381052249077590372304206518895173094422075230708645663608125993530819066405574703331508003831847433685579109205214067686796933274175361683186296422884986088401877394137489039180390783028640316163666185123887300636294984676537570529578009948820966044905977248196346612342842723532586720409947963284777022102822574976167165848731496096110712544666589680577280262273664898744849753119095076563480441600614266740968147556072775895376886431750743571650191650094454229335446684288735381745226315809134354447779026209501994314035617700944151723277644671440084201612085254783192390313200844108297361311285163283757479084900593633902757537715626090196926827023888584089019718330882072964891336149989299159165790165152458503149821249894766698431032520303550810299991207220578168905876206742361214913082711546449839524020243502409036885026366497140475948392795210230218970507312129284251887532974771428757821985461076523907343963518840272837524412341082004501274550338526396099774363354556947315506083590969286608770517913496092241114296077504732321426689627636162492071093930055968008567529356079463548358699726653118230036850924877035445422490686579798397764549142170009740369788242499548028212464859459050663621987107779987199292017992181827638189208601993364847402669882130623398009652247001245875012934470168301071872757898694536959774305517563641695311789773193459482123297074380223974304119588342693106068716720685612592600107997860752424347168810851233807366662046699555376542621244720386762518718916538961862097572466697080783661928649014261244711145107233934174714269083510332448419264870963770490456571075070710849645525426981729080213640300230179413836668164875951476350075792583373000164828569982546272880857934883323249920012395046712731643480013399627722546279785264831172106831350539122025834177238204375992326640123089703869412757551430598762285203174251803002435416330377628942612665766525360661587653179844727294380660289662747512727173707502202855295635003633263727545755626046633426736679737241058916119415010990222394676202513738284709340394680633992808630296179996038636426708375827104630664641622651088468233644086609996856735195439871071759126146379691587140193759394970428555940021151136673376294989550969364882306799487803633792358227152561567031837209240630370883882510611300267548628859560885502505350685230891813528945351661692884102271470354578215353186054276647177909401063959622924825740434077812178211009076666142327100101783952959459563313964340554630153352691712630112840278433055477421392018080337615701625550490398754537549361090933414875830597072321254681535870676240181851061305310352175592137419050049152989007915859553560853436278142350156965916636906173518105155828826461822586365883256827866327126129596081675086648684821590039620650720665225264403932299057223996258737956080755639359032314738229519610391425263016532922384511405997918640848509716242333075276167974069891388350569649505982216566568627048668545405521932965806816206698283071048225881853911939468021939115775687886079210038264308778652621723156065542032613083084829879668483119543996587487986288356697266928207881883355919222322549259931516968850648764297050995222624925541769741905710114180411238784415861891424639934907785124317321772898101055194272713577442374527343048435957745869054865539162488106146077214151631270791683452778266311371461737678177291973292543293753603902459819895266654448496749781972935461460048056574524295060198548963875586238529550938227260673163128436455007684870166489049804074694608073143038603008932005954641235221195142887048479132861706931072632101653395220294562183012885495476254267860240954777928702333818652474497478232623189082825558998247309996520421242412089138936084901212773618582065137766670471125996325411306394009761552877752385635200460245632031727144949562763143135173909795239849163445014709401148579919481916445853756335641599011238651028075925563488898256509144012786724716588597722791219875206995357262089742257015386830871244081082848774383531650692660143195131934609410165704946626099299663156716481597113468364434001712877376147674437214591193758596000314630208467465233876840366187312177367726716728652537966186019283373390923934777505358817335566246588356868797591927316914146192295555610366129289379822114765862224748290940466404681488039282385916111945235206933829105315309494059574394618169971307438854179342620542187853504779402215672812889303618782227367352948772509673373123857329596142713274686087237010927095150787077224781778043032822925484089301716370481342274354859106375215382791104326781570925616022602499197875428666461622170563364911835536638151313394332005341228435393252190662944407149970593787682729293070408324378044813597839166060751688870404555844936959472735286729778299648680080252606348238327144338367829409722614251988228205985045767292937776341672397196310725256664339013204896774843571855048342300359422816717710739849393445853248773999367395674322597508847754563513917844019584465510651110291914438636864421709824320818424876323198922450686715774905285674044425186892397983028452143286935718040682478539149673895419130903283433926799803240991212776742339728077506004070340049067084072182524987728858610043121998409822231319183256181214092714977540576152145946244924448613105375476438914633703795557837306382178682552734890950857492349243702913892557366793702771697688844657604229481240363284319703562131905431043076912146413190748012147442662806667651523902539178046183087275560755258894747316630619563891558287221825667536704035018289413911095948209512770568022486550899296185100673642424488414704391426186232816759973045229031628107836475298676075618345176831476743239578084502957455182389732204384183429639521421281973570945577550851522005544727728887224080918184619643653891325907180047693583156889113304354142760175891232865659331606416873031976970470982831581056484265461094642322051332226148386166584068302579277794360419601974381015856969656362314527869729949675191862212748518960894016316891276653801597703676350973536907568565377630253349395224789160058614673665249948654827412941451949370642886081432875931468434359683478516311037316563826366588641512148837750020394957948883462604612614298934588673597045314133393806408826722537003619275329890111790603285319664873193429590570005208560076602732855900305590689472735684668415816133697763240257413210972681909350573894434918371495124937410260704607562573434257843201911639466044530168716758823402870275379042831584868549798138395118338309891961547979332566350382470890715294312883984503342856340163538716891369008477528186156225908176424153564918718425137474172284543540032480071740293435178270692796035463884077838047356738671733758746324259602956433272738304032584675710549536447634493679241289030948883115605528318687780356026297711355690961442282649291909199573897764239840749893073729886132740508084701591372695760575344417738496241972069759409432376631700192329158323185400798024271660554558091690866424565363006191671563272759317436721211213917371136040567149420061653030019745059989139353010258395083584540278320859950574559928134006665852733866045029401702893530926705761668292876000557988742203974427763143826619018071325003610167926417113888077501314670382035696633334137338019587295182130722559562397490134990973826388510114761036555017444581149575000878630760853591606457764342821273779091790279242207709995104991518381960365861782779697606975822633099844844364540831607113804943643240848990933795592325327606864678538515963861424333963274216349519284656275011511674364540811020745026918080809848305491038117038796684691752054717655416476812045193976106438401909256000004911336342694235371495944703183596360800790986241947045292106728103926427392479062689170601151546755292680136479248997608844820431742731172471670514151741536169966806118512372601454482272387930028705889646576863112780646909589255253566227613091697662070715914484322544975364909349776916475132529922833156534658430063058518271207160318214772434814363252113766843604569923997538117722531467056698117881059632971015701123695318471428242402356398482243317973471442713521609755234395737115031814534202812584574225422407413682603890174791801938218658129012007258465732948652658354092256851340584839405194876195669001139550105881621842267063567967387148287705175510745947412120952137857815996939580452132519950285308568119855528250788537865883978184747615731153273252657342733653036531363745590791230483198514512305032010628347810382367785975977930299077644383515541096190285269098280943139347561967607946944517596290496058724733133013672599325511061281806629645566751155738623407197515151965188686613131547274983423992283784209294696958456778104172899797050926139375578723576787402214555974424272104378943630440662717574285585479322703396533912289989410687165071332960717557199814909522681715036238072036838730434496751802271323971840424052102362264169953973195978321728305185915017917015029370554339553875796716199272752266003887423413039600332144155768735816601660635437658917228503429052673758337100142548086077121967581899476829852453261511379333236381581993224586967850238805074247669856829402957325091112034005384195085997219319064518099097677928263049035096609023105388522170105718311892686958913435386186600369177402653810393104141076004980895554066913895506938574291102725521459461561766017229464498531432030581877243182344082296529568925010212796683537669992055270072907699086944346466665602022800216516264717276508249963804993427118630325484639558403395168287094623699124082964092491035162089379273381031014514461106431893671079461740992636150075323185403572124401323969480548285552279984680045018827846990900383682943258297108181943241588876241817759326060192786637341244963663563349194184605155011193523650864330558472057821195479239427894586011064976560670396960339313143448759623545892925745086090494596947237736992923816910157827583343672388910297387969396553574006382211349312165689844565630505727145266597967419416279227763392081441033815772035861854094736056930677280266893416658697108569081817864263621636491221504625966227587367511160995393952346162326247992153528479199654255774234187134823051373175190517517357968143807723188802586000309176918637247523784618775085549370720210353473783273470517439148061221314027217638770848503869810855438439622664476975490923733541347161439726361963764565803215751071510588532816665827683248771964174020537332256660318892445824540579115232568486303857349498088133714932988269338523406087637695321459446221570970219428045669275431864509741275218041732531787889721079444587730959190744187110098211331655573344628482498548264173296380903872576694883874792357022903678008439612830156384913820977046199668970136279021944603833566656053730571059684431796673134456500489694172257310638501092849218175011218181258646260598039960579344870763142989790683055692609422368721438908741968357734960893938328478753463664393992569352252853885658152878964091828103263633817585909955006491393592359083481918469016215346610079493102728603159267365544163049854350632768335869356643860410222920199448125601027215869043637693967837034509232649689643140529759281866565974749388784777792888480253746863750587993437063479240525135089116790645850936352797288862437849899361808135782059109003192134437102738235962599928610744356228355750706370216173385701453364353791987209270604660970282326930803778015338101456553343264847619285024729025067614241321156137772630862923008877914877673229758566824400859095769272997370875899066349745549346293483747503178394284013083475673878969644028984093747733465918978985832407536283953419243546084359542003266328544793217210263190021771804505482213276515292633609835757595671229375349408428733598420148985309211375300726292787643177975292867405911757949646889414651118911436749224236708413750374166615356137715003178654734295203349597809845931542933142002627106323089112626497027268944964230170763345591417060585359309113534380939185288758660029402314952514442791600070209260473817592468093537636324728654130629978126038353303006638811809109914336543246020008276500075287604217956725199821831590184091514406774154854881874144015707067119484048614331807453474836323492712141410466800453228407380957812879388433724569372557250383981896962765420326716344066026469441236559436847098711836620998013569588657445827763243191322780602498009875267948000173832027785679505896161654203905041901758407959775944684430548118509267516785213254854985656214935252302671898184464221769303175477991563794776267685203114487664184066230128180759473332222409367990505279301702488298249710720860577652197435008893218852518210846518807859737078011141071061970676967579909635951896279637102667385807270860194635609797653694018372489135759821300066614703092481740311321384552274883924007637788493810347968834965727913281834817617057191890326112438678369223434305225273723989586332831485305249598370802949147404017352155103367874882426107083534703232454118998336143360989810676493290022138920802663532324164517990739799537832933139229665880890639459134514025316037985627483968709737283887965270224757438791604455927104178534402179649809577846253553085247496671329033853351801797670622982152022193164381429584649624325461904342528976265805271862682372742860302477341259752235647567088820746365209400321179503318575690968567527204025059242340477667140293587735630967274958366697726776579457549391052057603331789961417932775409814491900914679363801961596323847593510278274725403846530898270237202990168167696404893778994787031345482141728500216890605478001304985529992873095232220642280882100480780116485785445061796037478106089186109153712743834817468021262452569336310969261336198864041129070831662108499484756471048347780546175446871173780133991806899504590810595129199898080955389493923185654311837430770373589008241368286709069904041016694438831818456114484310562381358883069898298869744914800462230204314476196683852915688895528596781813873889564674980346252240442178053694347419829552289669731254505992853626754177832720130388682018171510523732513041868489947358706810811362579151912609461155702428099281717196720632491913206871680016420193160152941119181492106851673661473436464789124679466446014137560728969218560308454926087893137994213722680952981771388186315391535890325365408760189236541055912594027062549575891267605324273761876217311142267414014154210192457939428498580310232634648875630284938985525990041679518648289435379865269614374226832437878100398312779499594290149087260068909969273280091750873808087575345890696570037456347877458101943753453896272461029395167588947732326550474440039211452497740801318586817541417433126020243826131143568679051550075602815402055437422577856032255416249446363591767968483867486460949174164681752984573858252887166024705954714096271908997024617875538120504745467704191438986636306595657831141035107060195409459749076385926122316506005141107003634768064117828279316380816812494143594251193611615827239028671380118772218112128963960654895569304600873448459267380308789369986436151461709732451235368921955921439006430993864193005297146898220253941094553594355637329345155745689987639313700662130616414479519530075451644980335391334513769706347348701336230463314500257861981235421080648575535470262207511990071027610046937246670129723740823678666396366645005882791165110270155752556407752758462138926750222085106465736263196509063643734796988051862017728109550529774422255850838208812040565533240213688887679658218039377049810791873732840696628744316753491361849237497523947619768042863910118148921268165417650335822303413216674819352812686869349879480198288337577563271065881658842498370780841720064856648627396819704186267672863728555482514474895338520245226219833281265750673468302761932831899695757525707983323143271941513907605288563122902783858617687326337702524698205588320428942022003151306447874394477193226878591862718582850495780587583473537851039763841239682281401936169976751680557390871796016219429441724130797351554897051285561572053806292257637527678393709792197913482731894109005668486844348427089667131399751224251820952072258623054751162154013367043968071894488286622950262939915686127732535240091303898684065714414171374411890672012368288187693569432989126854248081030643284534165911469035384272507311968320826583955145948061530839321525846222747628120294849680888328772260302326243594972464223744314267489534332928967527234295908471625658334949747884125035974669816384272651225303091053849663159512870733796323765818297523759689549824943444121016598268227651014240504599857385727598896165623555302335268240643690205484382619623493179528561359677923919438626036048163502927203348411245076954043727606534033216724298973622310670630270458182765794809854587924455190493268802333985440246709455258605438411984349107243695510439061343432235279285502280790142875980992214254038136452056405774345965671761828089497658180325233607305180107748895066035122681144267880945163966858234165658582639596530484366417227286647658370248220825250555553439400159656128128704974896377875240113585881569051656034647797619983380266752498014747182461453282231509566261928513542257173002677000392466994772235709322093368730937510428228810552480748271494496453737235504168534646602912513139928223523107729878106283788673900540831279103988414976444661147978471308814611806316320398988232170731014098283184842361423359413133945288795699034588075097219136872195479951073629405275244997964537069726400483454306167954854652366608823727116703193136839126210153556443404570501248189331676388134979737998875588986225787272186146781041008345297326383605836482038327528799165644777169364246232679709830774321265341797066842018096174361853065242394560864197036152328946422525476160052882496546044603336876614188010638513879908603857538650032945596447478242142086728350363739666814983793468460325965861014516228518894631077769624828251863491276275990334772680699114175548931778433226295396190688295964208438533390038651382064789067896953645844254966172873888014382235028103317968590546094055393194841617007289353542194526403938669443034373956545605792245903798146197831497877326049228528169342472001286265407708693349055226487922541074258285390224493969360724826219124208889024556846379269276545436415501438637024586530454078315068202652850585069364050676514772937686408127783563757582078637123243794053412759448383453604272471659432058207027146280124929217559151480995281163370410474030181936524145996952926806744330746297312647182919964539435328178813285670944451891281772721440065994107411992000536674517396263374931365027418482383119490724522732399338528783021123274024629738696904498630385322514783155635565049034840257884181254869921977086898365987939946573544026857347325268751589246143012111441669325227056911996568159456227736904537107863588302527482259759254140975295426465047944435501655375317988608368359810084729240006818286240980559282914097047868617065320461156961985310505005518110682326633206827084110752533261026525275530549027886915006605228126574719512037879514557903965578604858128521722778788072694704787832089675891518796270640319334776139186335564508549566622323549755703447028861736611381208159550305726109288960732618112357520988493111550314608010549471074808994500417398514152393211796596672349246239110431998515933159039565836772532564083928661288346113200174703873735386889549272398586322336925444010170421134086899341307409315672775798245342387851719579073864512914792651076325494137415075546588396439866895738102709178870718139370713855112333262325667988473302768748126100822858200070432174458810043403835978349978618251402700893749428636526364468716631376804765563905852049575864274453541608808781883280938737912360957344209236131678711596158778796875937069207812888028642671878862814632994628666664668483244167604972677923643908043595332719773467594371390952266903290681174746899493645971416187717558185448764754841831597132459580453392722478803964075739029725128413505243786097441616111842733741674711252967050884126875334698257692566701090300308315000514434408672945813540631043407275331833388963694757176604087963273428165609147579552480974156242644602835513599709716658894288789495800467136775456254774466687536260986933976299145411196614104301548442697793013461413728361438748892456560510962435130719313037626576626376538439036722418892345027832079144033371941488688750360151067703983528870645472223197218429559810165961229341224961916913149179326184530746537195911881604356652736927342006415520586804567777814636541773238017575044700951670520790460200869395070649977718766781687953138015906972316597408885437203514698724866746827146679233988469459108671463435392759160864119914810489453836425908456393996511842369295656541262532537280433413764916747284232315022326471663084310699886880961715762898753537186749969196787173790893780417160358077663071641074844079697008160920596457096184999011238582121381838541891973731839918917034754949381752487282282589329886202573449634250254786459479242964300215890636768593242158487015378362639413017461655751543496217864520380878750949174345288119132697272551675502004654890989660916704275114635400957266141611098071581721283016273050903587900008787377007598803746157614931650177263845306603645881849808968948509950626384228456784432550398939328477065449356424958108355748015359748911847838918613208241868197130239522474577219122968101956598108812696681189572340666569684319676576735620125222039440272338222571071544007377300963405318948903583073308924340189275362775479053043914853197685119280592285888291864945642344346745755534536745238498795433429813542498770688544446850472732712990460363473579024950528133917332869925730392236874593969549600091379962935361284845605238680840209047146829275386623021935354254314889462730375461863963189921120340998715638088562790113094524177301263431555299002331137378001403691470172507385849613881994493595364879482628466309453369306944285011145265154228444931586470175117114083422354728425916599155537561543974749409522150388572216591071429780222689453337721464091653265391703297613956874911782278163638509694130698431321316810756607738736774053317342033207866890871313349128087399859294168690192790024991729490693766970682996527122829839357387431921967184280582406955236358545046521370373187546027019656483149667413913962432870361936333115875096339917581881743100597873783410562657435192192761373737240566030400863394454633011750065262093225602079231485783719030574878244383408299436224606838774596254463300540500447432792709346500973490963629367674557250510492259562287625053829155481655602298192626369342112367632357477421697782872202445611432422891882382246066351440723932601012452062345180730189421296513185335246429343855333187921563324240731195998976237830084167956723570620022869353203444735089768483666314309725197737409302726374568699650744176462946489991883342496894081567909330548269984529036441495002678555081185405121171224938947512977426497905880425357205132788492375151391739848850202673637576983339430224928206339301431171949730260970564459670027418594263456206275263523147572575145347013187936704235661887281114998741956594148316643169575549784122302475453890536891022855837985405290943699978540782750755638571441628316989711354510865991829150903787020891852422836825985671659764387076741031748528209922244707943031913316058234560104302261345567830911892477714466532905651982941156989344896053277604556337847749734375505723295207109008087212807817746670708542735014637995729806021906423975130553553481938754035603457662153431632186508368395123070796961403418322067515201732742520464699218050656699092205204598800606021840457130048571891270009721015736316581720438019790574904431744387959685163332601950425260032224004029241044400845504037227530145412918814149662933349766378604279452475955433358616657397727417509584329905818666925184538949805115842471987193707903987197056626278793258349514536834215493539454314005279160155069477542425356105389527451696443485682987341033949916557879566070247033746850631762878502999431361552648463120935552995199759130983848947561321338457771862603484736097050987008141181228114418382687596530957242432901241110569766740399878138104868793083730984871268533886893487855023436914394763222549251420483208945419831178346898898139436389515771082906515254921556045262197603092991630895666689969497084527067810878883322515970115412855255726839222754557979869373810140484275571040071912384051124770619034635368201084286289505311280641059437659709196455260624046144838486738693508853721766019323494419013198813603114287147627145507779077275732106322420847411637160111242415015830120778375789598137783917133500129792762515748227610184773804788262825074475260822362329350406041924709672449972249306384677233640819230494559346573848965236856485094962098293071186157818778769328837714569483006187311908366937392181335875202685093245207493792120358024828205210429393408684396070947065031012576482689832510583676260255088387932631395678154101258073589144298421451932767491691254856443314587084205783102672576714433671928485617510190347361195650747102543996615121693509289922154611627945169795907334537952756862108240014881701562666770000496391765650067513667598092619123574453786883892477284363149363521909331714886360591684211269540619835313512993272124630260179034490736610052340859070247210047624452759338462832752624856562907132390148019699534666703304738934065753112584339715344927465485988999636797443940165421961480926925500584702197414252821249536823907979998456504363316720421077202275799407624816093017556403750255912171337758780044149586049236781939356246746957456570295457278991260797573355489312643586154146280846221631172582130627803418705421429212711180015461750739286281078529980611423067864784939529275907321805026935496878072745244219685316762407043699819327955823814249628507777888431614817163619588772243334276089298800051038727297251332671036706718322131187816747901394154591640173717710747233337274944814779827381598943595211269327783432365852221831892078345774616394545361412955080297551717261268860910445013023841772578551910994464669223725994991237444399823203100363880841844183087492667708042990244207909682477939921822933309062209365493291989369180930692454723405341318847564947024462374561742587616531215204729182760721336666308082537262495200495280962813535961537092681203696663117125932388808956069772911913036962391903807747172508805409300052791119947140320084153115164666302266170229489119535327959401437891354142483059143842056556399468468914413789882938507806768150513294385010523511183159999404098587889501267788433052238640793483365900455197050310144288842236561007126496923976431700384857280432966437455773442421231983211174396461095299307908812397922865714170865247885700221929944018334787218422290352670411923206874215659733333808190230916197563837012756823750841342227556370018595330786724971946226562088256292947180602936938851135518140731622521618076993632467660069302393340037987856586467131001917279582147003373339307555640365535225416779910453457705298331486620511979426036965410594193013053465257356985665672582335360973248302636202025920443584820973125373240458027905367089599310703195806895159418294103795093599263698476195358728749920775313604226558199857316674135483212762790060962224316101685634853944188123083346477798974752086126020373709029809434382003077005417649382425009992607208058715684936778269148803391701031574134038308389635760447269308914641094775564767187654816597441661179281014696235611021688052413084712433640256075488939654420457373885510881545517863801697915499354967844268177061512488136084681629618052396866338326884452751818156467863594503309629664199507777491663361043607273449963074407487134098651984863190140696218060913256166458242047279218297670518884971285970000607053707934340365565449488698820725172775062420669647599364657412581348547352826980851030632870198554679209633240706082269677151527229260827569570177452154739322659550329230081644370363135802968901522061591312830064615943948702246976576486413696135851464087849813060170265991407571465796328794052547968771626299006825432398256933800519087201087763062628857825175777197044967850336747135495549374577045253650783391482498098333352712591290893792373623430149044507666905657768022091380130162666093570418222543022268397569911300704245377392741697750894467362981217593510077339995617672747041903608842033387997435108807938676040344141477077960338490992698778496390907359153631186748894605511068611833994625772280857326277523696392596235519932290490593095500670950334908581486724058194132180755435720638740664565105413176486744388519556519146484635401298049569830923679050160952725025660073809674632214616208550322065944325591761078505279201480248748211677247044075806396644385610706840877178828038083995984217408390800843102520320600181717726757487370653038638463361339553425304185405861666739884087797637273832784591353210713424874004085364863498413662533026932442908907393399885842588345552016167142392616779816466366689793827388086326136761611158381208208182007724343930971986509998783205477422532206748591249463804956069306213961819295819742776934252540976957531821935207037999465694245401753494166228748535619268993106546363454120408575689328844438691007768981847165361302479867107512609518719749522634388422868944345055102441769816689873850971811461801822500424871243985231391477023818463210073759154872413809301587266934152895094602155999039092272510495661610009361121128661933248542741282070592332803414500850607375208986308494547862350511632516470401297001459732240995340921969840334030255764815415994698738655475319973490755259371693903307467376732180659747906200265596157776079927888273459032923326921858864727532782542985352521324904515958891322758465053273663136267146492270555487322313752759183047178678015408687980703330817354648740016833887618185920092350223010880002373964839854099564854516839021229801995331320147267639281169779960235892702098549513671060779323705467896399132636632144329622209266099544733119712491906507090084037422230233716753401813010101953281003353586518286999863055288921845003799895434879553767633559092154786349302842355742665478333498177806333350142309987619124309215594480626202989380001196353816191936727828912274939783268701452178823760656690915954472043921170335113192539455021844732922272268872123880520060336104756473588241373494443808606840977136318907430148783396691024344434650630993573518424083863954525949704315572307332973591285159019433047307128251922587505301317587356719592535663243770801425420455390297228611381945584926858436124817339136464870502807061368908078686795214761383346267279118014051541314269673999373936953790556389475335856609556293741695809475093190283163078005952640455026407600502286453706164841432369821577146067359636283020900011433569119845693913633805507294140786843429389552188228686011054385501156413868353218159928014063557881868334022675204220399508414123569117191580372064926910173461596193531994188752891198438426784423047500866906797609063490580208830682457398251807333250431654418207487822058241310630435169516765664417226149041558209381504517250773926769292766638765879608681711798600754047808087856379315046802347363476845942079038132653258103502791815722446347410441721650839606699003397521275265695359814645798706943408108462766022516832376064342444574816859225272851019105812634250545586480089630620479064502284181774827442476189765176357853470483194221766542882075908831074590327178837223530955071117580965085682449740049875151908884693290509937783104644259895594941314169448292363949563394621288829287327013340705232832349832690894484908420182987273404180054000319665671450282664486031338978556477821376089001694381850278207253472344242302187820991021163934845157196456950498215765650387923866402618636722710685282517665550401327533613519988143330402991950990772782420528634715304970894694169499621217237963622197135972814441506124573944733346256264203541388270788088203857387240152928929072238957935342982453096953469794361739937869550220517344499669036206003940890393138602007729658784350496302554150663281713621638980181732490592196329613861697407749908528815405357653364647470332920393488427887340791066000278653432152942535113576247449020302402302151659172329450940498045550913819414189929037624403013137925867052378001187675499139082078578031624000147259849254404428952585395759993507436840132509322074381048190448534576158330980426561238712924833597009268531745851029774023409685340984360423124793491885076357191251088669724098231705871828477279420410341221290121321369824095425097307521784498344050344758272648379363346365656069709421452784400618578864697408820106634216026593070194111446973432416276300293380226062572464147170683145801367091537133671934863530683077144236540477357302874992895365719850176206510030984497317413688099147752142271432635460552001832192569297740148232345832841863962836755149924635127314118035857729792496202670431666709389225249596113010845073095160097772979286837048186118663782096637723368214850693649935776802266509246705764198804116066462479183775959922024893450309596186921047629689568845926582869406273943900234675380506181863210662200781514658780801197913156408414370932433342435003958080668496737225352694211198756582412582310387543119371513000114632224879950465191165951667506078233142027627523728670592438422526166281219789622644214266379677724773036278746206844376443144888495964787188266988220700005961182465533142033813588337068656973456768883811791447162533282673187088832478711489917806370870420839489668296001321665225538439471357237867903059958782031958489817148239268327728837374005054861697368860731061219227329406787230992775248846117884380785333491378077604304034012098082523774161660356077444479966900724335600430132509043226586287294777435423167544868448623830602894254133927395806872359082008644552822988419905759098654358317553965749818538781175210747353194515169238730982560096280890591535656984759320050644581760854464214790923364131601965269500950195143343682171665610779372298150800122323646868749482893254981928120423961120422037664381708514471071518935661884454541250731857375707476073039258817024109226203889507337846988537741911695066147921252502609871586403063185558643385413371263851397114225061753704410421450200700656060218005493748071842745093409733917502167111655798467620277390085090453247930149773978678565712203293672853494683960870461774847385685256569727551830321164684727352744328327387229380686819989086841632720026471177721837806761700066066899438091918879252676450440292826825435566579722426432711272623038514157660345110298019778958894335749745959388921121559512570655978021599195185413235989977393668834965141360171518547741847176049286636944472926205658110460803097909810772908863029162500718839040013898648804047417457814479647984758629503780436126323845820176129021740339335221488360417121762583461302398580502558961729371308157382479703756693383899827073119389935314500810886473782156846162070572946117349004095976329446046709799090962731548601339483984226192780308926054862004304570495019326170535960936591045531264079464212062090858516236391900958057399086701250599332427876346458710677097162832930503283026897651863296664435639820038857626775536697465913723422997067841349911270455216372302509087697909830632456415352756357604053473943183460357041188687514265551112451714457035168477869687190031289790170210759366637820990376351200474519737821847241142205100557526605786410413731061727242552996769253742773191872833044353932118923747961665610946063541174051311676176031430836732195483327488657244365131751077747097980336480346842000310580578308892197691819619177046994826158265639339618503973565043980742876354630576035145480634206803297580492953292995995489200519923970767827882203725508573600103809577688659839682747407553426915783419454523524811058975435290868645246282411636430565887513137911352786373635566324665572317813597855555252689525948490851156482283113069699595132446313349208742120500523833636679823665780511979417378239051311392759060870920491478566616773415754616117852509097637223132762691599583889766706885411017184016930774799486267513422614021163311837371913779594115782955248490034916902726038884600097803125709552843548238542896546214869020637769817548862340485046375342661864928033300849080707757792808407749597375951780514355413757874714782574724033866004886165373867820675811726639204732606226299464484769187885121873293719728075700543895387725000178843564386884081187180073580120718325656160197912754990652194894597798183645955590882486802472020696242716204947071825728384069028899137493277739540408997390873296928480212811363607381317365439518442116598767485370198444618236714755647961554212697357637514644586952768603162919633893407192163540800843135147669293144723506198316825330396841558665353833017896761137633660632891938764355729096851310810442380422918340508483565230768843480750147129936100127525889982363701708177309860957250970880621145507765051915302959081021332144890602730115347950722132282067198684602760912636071916602967698511222713230951014285042056715058397736291520632465041830699649998067042099458717489824126892192752323370661855299287235968107794263025526254168515023261109867560898461379481411244436710491382090299628420872763546053533458590877851935390632556921643554813379682634238485480680205961474278147415543013021599221298654402780971319756686418154495024222070792891291183937307553272071965116838990417288551565974494937716276497583531725055499020215883438535094020867080855379172990758226999389783724609139716651579542576730122224086810677208183821204492035415026149516589218284842273311332741798423361042704086468699333560087752721166864518742149225967857645005163461182479468693726467348902821812545591038723948850299597925270423224630594097026353451310490257246035389168757152198088187025103039754559798407524219941518986095805939663261265967647311556637745770133037429055281805478777522650129370408876220789963645865780905099986941776193244079611596786837789412592566258883331421166069675563803788354542754617546734268855863241281241798297381557433537194245245996777901305470288643338234956592043994900831993095454203955874103087749406382326512510287095731551948749589981317396010255974023080899963270024257007890241858945129144556349436532861664920435950275796770208378633779522646998336054606427409010278469119388443621072404985805247277808122914805062585185138884144864385482123978519853525774317443030582224123438089299441080116653870318586093721645729919537782161130558109363980761534067276722448738599808374332972287870058307885477565261040260026952568696357374898193721042808515537153000567687562582651791304163391226241846332946322413384263333729214685321304369527649347728586743698764274124504306991558784854169764115401090698271536230377624683093832166717328099267251532777306261827618497473773723602360397498404977728878260743385324232216756309918429351912974185070233671320738355441249145325697996924538501838949779454188239786401088763365068628325781039280893904204052653408555220068649063978485991893696898897758286935639496767738089547680354234985277489061066605438737799419747488046550675824184262815088965695169229395074856045343136143887246905434271227497486154222715476039755442537056445069890619029245802953281573389725913279381762293740130200491115943627374328489352646178863792252704587890966002323237681729310748211377166042870611307452784956335176725829697062062476324494247331171148324059415846539626186172957877738083109990309737065989271250868029625651679628943613128034108889129717143977843542661264164467217589329696035175828543780354177230890975238570344017378350404170201588902223825375804306939170928637119258359910286368582684353910377110795993891442838591229560827516405889752416308469765708802369540111041262697669378769926876787979978565614901657665048983879420583637467029540305901166704940486512647798288015369740685619907429972983623929137016201393099088602902318013271451678114952295708573559953867453507433531328488321378587087510616290611748304306527126948218553541267919789630658635819991793196747344918663179830722703624150985228466189356888649840760054992553610420206525120108919775255768036969284808473407179465614069996112079699758174657767622687063365381911909621521176571280546952830461227691270913561667610840483031120828054992783498563852616902577600648315506310897724764768757925441684638942417492481050615303539860772490397230133073515313404114475926595537568302137301911170013919626292720879772965402715242868737017909969822794467254511224697153503376124697609703352336528097902397848825180811751517563892097332958470436121772459136836170287413304847088510618511356114283963597037965155703141856683412145651414584232993905279504090463833288751980517109052474753012787723229896292676549073869574699884242001366452606874240859269749909482033838813190821964099521372529462663371145056550072618043571208277845881669122941134199122398275548176205416501998744172688874892152260145366431369536562058453988480071885049050476564873803637845373805730027048535615341781132917236783359428732819595589571776883802112889485732508022783353629042150368720634296409454322513963520883374243111541375120685391042552130798985472316114342532238890961953800192384819232177293843360957005532268194783994134877946492545779491095848716432730002880492506142585293398989788286692113267226959642049811028517333799883494713874163916533418870849026171579509394377563896927013708936294627454718225267746562934866062097622737693976680542699571098524709412187685608285771767254440106965030579628760732307630675017876639724378831234646446047871147883526673601950880759015257236252376346684085319867747721448210798180552218407207789999344742449678563996857242324823084507650179903511287920101514084347236049550384943718408194865541428417951086678026410488640994297582337169837313073237417784956071311635964046863635799561137401985380406280991218577478488132286428654610820608572678457976380421873826905257559911534958558415073873715214500029255007518772408370606966341860724150857083456461774068503484866829702029943772658454896127141486123180016420091002366181923121218202645766341586479990658303185208289389201335001123559197916815864016344756967037923797858996140991970642187581796122604910465369229037733844558834463212393458869025339228098927428903471639435694402984016961954595206366236795433196461429071667843470701411955102736779813085465131736738333463696324931889060206323495699651086977459222569460711540233564316174763544919334545485461076065807741190831864366291415287791706981076310815844578964786715536152035190676322517504296476751422209210568592790748334266035354161483810310974765290268430318947219957979406718374673278369514379000238841766887091385187308506664715041697817577444702274265887982148993092251049767646942097581725222228430734622853113432312529118854651023084415872090342152496542601324012188779763877487752041457671693231152404420000725562849605999110270699903632436526451774554728171979728982008230036357190831757251058606156529952494379318020033170326688813960112215456478071195752591473675033821746083126624480114894844876795651469344438717581513987496620588095577747462325366935786059281789178322993769293510830189068271647494658525973082177633215008478761727622483175589710855904708179721440770405229015180475181102158191196661220709227894787725331062018545364562402737905208715487000515882443843446088946496117968428771294646821987163666408291146032512440431208349895928023174393425472554747726501266550113533992720028000766578669230055077029473443074835461189630760703075881149443848808255217764829841167817921846876920411192335894695184648137306700060367531396783027727790689673488945340649480177954132325018500634869022255986694871135929018404506352425092724597679498257949978464287871913487313753916126136162933941702703701506678628686223540847524638679601807106019708375897779479991226701169329051057084033820113404494743096380688035704385758273685238070968246495749224818509170663428498214658267910181967101638496605822967205127114331911625626041459164695059841414827022646559001247388679377873597998344211953300455748819535294477333289626603426678915707784414358540424424767138744018817655104135800340758705070967213198688341735178992945636056568942243536476653794510678526136873927364592044509812322955044149653810554580200633625913429114692100405348044701784566028801710213772623261743333239394734671133230113385329716096817992661972770493827837652955661644093373282060430975218111680295321693656352050887483440950117828862338755367931604847234768438979831807528895447256603875439563384353920580140033169498028522008734551853612004803237687282841977288337888328496162267843402449176175457125149515985687135605864070057915776014894494634977185048753112167191788492093807054623474114424563711457287123579860226067645212136707605769324551331791683345655019443724677775089274288125998628372305771249757242284679696695285495668472221265012468554185808328116468869514357795893496690044283858422488609994756254294988118265367732095939961457245755274842613669832451503861233914328504491192176472286494660163651409194127251760165136950510070851351467369869108075355887587075774727711830649555408084486401229108797169298378339598216621460483535257115713509321187516224889707629122495620209496033070293268494604272980758679864291971730390849892235921948583445203461812826264860930047106458262555778671240718099775862251018731165939941138993869777593613587791953675881139298520898260439805173283416954545497319290882218105524567703231958610915150198756911625593500071117654176079019840192626577131986942718750636198860759465743770025132969774745248223192184811467458297429871135320150822679558252977343829724870319502147345688113453633768011086238388326039012082329392190477096698578728718325515519156972038900239596930568291477776424058638094854657799550159558461637030324272101030924639160969423251334372505520842872324202359698890004443469135345328658490499325830121627878580854644005557407408246994330473659524567550819519096719570560718081379535773737637589545589999813682104414709471190067895381834875288260587809956826147396737328516811350122803459043518939277628337514845150514728792442853029492288127694410503401483279898812927530089797364177104932927245209618059506513308384394202565698308333338669762945026910274752108526286248812845041186460365127544144021416751119318394739144418318925098765070469146550008995229184575968123138652657400014223575184790814833330721050101668850804941431372717661138675737777987187992109000472886645339618291181716608934713730498478949077994786166971091476745540609059641054119208005223492944406030557604069062543072518114854776238474090653051785337306877603521334468098739715562107930548586432875437912653348961392254842368687598309320403337963799020893298841596245542319839418525491734933597775286749525462834029939035818588570085838339543294297966338921933453006995126742173269394044771786625082472747302014224745777875792825832958966124348328664977012803475635921094591480704377947953414306409419953072245308245701317276839510392538521364547392852129964278240632126724464567789063814129738373072456568801047728183996003703631595171741321063415353297760738831769428845542220781524257150173382616373206889605183249586769251052619139960832469321605788045520929319803911947920812190204367823419923749082493276290647739100675234929782833560101549284311845586582984550274303048032123656308355704086116767134181995816127672554774392465001172435153452887566471728342292873155348099233164233200872145242196943494473945991274221125065512511240058986438008303453476902697692126062531588095632535498308944515619240576445030105029602887911818559710214168879540943850523406341768889276593216488712041104451952310267163247850908335948207823481842499116407415169976219860178436273288869349954786415913064082060822497373933485144772557208595678095966977999495676533781772345668274664704720907414504023910275310535865263320804945348849895390849958248363724775353199322760390105371845966391959202369474967038994238655255456528639911548255468156089732548334748578813542198566059742832821014843196259740189006262481905492087069781117233178536139393198274570540304399848036945179976885744222756111469466682011405624773606535030916963676587320315631035139015794938255255368005219778338563325043759130329992497039714047476972353455099139193039397061823564303597938109257807541979592810819432325688441539359700520820045192396990803829345739246839713536119022805246089336937499626320320658900436631490666501205776582761651971846518299491616125950483429060009638016875893286116879395415949721897386042214180391585289519081690644761366805653480655472604361517125439622387548694497755719911029890213651446684176397009682534061745705344207096766536222207195404096880304280510518600794637451778208545506985287695706435251040085491045379873709603623155750852819954835736139907846455658264826643782921264092987591736630027687767535108760678697410341803814596053584400384206720736738352318840163578455773313061620758916884954358389435402430268780197653639693238747614463083450626408095384809099788933651390171569539712389102868153210232656440336006979492281469010677560048826394163085026439059479092705085016312493479387864106156728267677748556725115621194579641310346942582133276332541688954627003835032482435335998655307041132117648763187670070759519782607315730535202911004585089198063011669356661539479067408431737566668014627350877956605708439610208984639702082420879941371429073296387862899655573967905683862460907938756270532367645058383078095637891859236458157162052052693953793867143328441123761862060070211358463292143852904158852483991611336137505291355936884995763084613181552962771180925132466259236699512604420292964741643838682789648375893453480394541626648727256921539865197544655434702190657014459716516345113423329987159722272082937213171681040779926214733461944086609071008783399927434674612069232470272622904361141533754769235681912014582806075948021387438402377682523414650426750598500341113716989904565049931194334509688398916089936723687723122286378851882784685830463368936718283329624110481620651558180386566129599674005034714403602421737324055236764536913351984960288045894555266865292710047644196144322639467946156875518717757227923129860065691306982669829480556224184918379939411884747477366189146693610183787449285883582547081346352521670760175563590167885257346878312540981131052653196888054683909738086912345008258592073784473255021175604505018918305523575676985891175843207946925467133046791501923630631178653798111823905103004773595667741515982695977648924755687757696295131175821706401568227593398183702936202837718498173329688909516712128703686678118874354278841807330377249161119802742171333148531186153479770121508905266302982134698342086550819140196446791452860076168260794431765092178812644517217778184272189308870469109452757006230590726295835000518458012559968541239989188150149355732311419648511056728821348454977485471843206693100184810824909120079758615764850774536496744853102776024180847513893223512350534504616517194592055132436493725162849091675208134788886499714008766336322492557174183550879964375193590302255817728176685124858092544146067476110620800493134682256172453146655570100389210328634927324069513810749485595889597521298300822265620655297635169689119331209442514620118068417422320709442613377768267251463041546968203537356421372248546169185391802968706581500785148439653620167714913552308889225470928346263514146172345638103066166781524638149042699291219709500974741078649524387164467101781853436577010280767943976570866076550564948267762090152135574005907337877168973784264372825612394667007472795263532849111311199292674714496866199855389285159876553473866625089389080996465820742494302584417766015019982923891961868247222835308763854503196005145987156059136287151546496779263983472707622194077762795185020585662165851118160523236489870528214260596874580886343904093531646796720544995528665411273455864270326582962060092026416141556510894724454815683460739391654654787063535903643378620164819037295114243312428444339070118111890822116363319816043494140217545928986732721884723116345398041241937412437852196989029547338978910624368171935238824121225472555990359950032932527588247305519241765178783005641636664645159484111236648684129948441473775603588939998974390800736003718250265031661877625338639115051749552128918860980365596218412339719308069382056540863000999092680941991952519874419850582193673824897210362408953697420573194360587962017032380791855809935373849730646718919391946288692492902853017934996959770284103989935496550009369333910397979556856395932301462888671920261467914644000416950809483992187604882355197606986812006947566946840348738166128899838646476539875821862745870531565867940349441171236674731495824419515368875611154043597805842883129617539397682319961636826423755249303020362759707891843435691898296453791278048853008944233455005151824696359821058552347884419110208411623367380863055465311015057975449298432275511839020675943145917322497107170754478429914611185052769473854577344604177632945587315087674132849908224659338891397803825763771315577608473989264358573970161137186657678145024151855263705322692734468432293749244669186814882224792737380978493972255839714644838624687255356005186808590379300672264248149038272609063189282098376030672374456985663166386003766985511756112950872687811857532838153438916814115670970895841621576341102310542799263381809199968444147873143245351498398680617277816563895023499532637632609371843531159336114775901057107582894552007999525675553042836460811141739424095012141305643947264432049259032194096668582829447612104167169226550996172488099136406729475285671085837461309248796412383299419091899231029373407721874519211284307511268173850278575578463504289164035561786004948005129532512401516954282626320621624404906991517140013249630685660712733646127122551774957665512831845634014992312868902093123618779589504407902044780849001039014262760500095357284770478864101695158814218255686041675952903738120067441712175354969456260273827666163801838685135959243905856623379076685103084535514561294653445067752380066175490190944195904344197969289319075707837695972298743130406261076062624764469241637958148327692755908637904238433245860915434591619718724647194529275374239422578349879748553387438637140530820806710168180195096685725171805600466762837632189513674289060587907443411028443554864511698617750810331376224267573682773543850485302920255910656232216434199209421782492315437094361803719996278860143850662606436452250525687523444545269027618678699938323144326782613976695777466472890212718385207232488504916247667903492553465546514210681979290953940499565384352518347094532451944451083016614703044954390189672916036492771224953685779035669698167771814489100892124046142838598472687443555567181281114904061258289378324123830368728807967368318179269200027675298126630598577146974971143691527324221532859848944883354631468342084468551588986184574903091968838469766765598687701605098099722506778420622193437600510088127730139562533513107236879350404310133154855284060709195537826758127975481299749337965984648465800692956135895155377915350179734399655530710212863143368414617743249145558586479673724027202295981730617579571638130833314425183988941471155634272024570494478914695953267071894279970901909845479786470922102964791334313309647226211770423335213025922605162118242410931096156947866180337713341588387391907774652497558040918271774423037709839940948586756964421650665167598699912041757939344582097640535741130275007549505516574508593325829527430525237637206957156066794524694309437443342937716864091329980988116417418252344007102215682377153508624576919069689490182069829643110879035427443787533470790782486665093999750172207393406573621210777196731692465389091258197121681269449784464190156511128830181231332343846571768470463480785263366176586244201327258494690087995743667897605538902185913084224534859320364924215740917279969817314498510442749029620489977242238073876623536428779733340913475163285600030270293546023728424623099268507818865182380420349236601063249787566328063393899854867517761355452140820809798387965992662899742458889495347398639313820975512065098645004025447728289825180118179003728756874301489357300962660373105563358479266675122956315723738284005086491309120450380508606406602570016935807299496922202772006299180492818096171239278603042149135595391844278756427103855306288627421381355957392098197967704701533697472788583211836966659520964817051192668484134920211598537989827969697252167192505074610309021545435286788391402935104717743854006672984677708579796133554589873577234731377502621128489645531808986698936990118394294442786746643667577659840007504610513578256127861786718034880250690442458653907872375381593143661474808437239387950309512689135301325655042215051914494809446901214174212954297009912188264636786055275869822156830984623493473204100624635973471903061133033601993738860177884456785260960278440946470239252113483390380970899543277075874720634185548018816629947338274494713330055131836408856513097606753307059108389204722584912430323499356033591463847584859724240453943591014193135449066368919748559657623059443230161223264518487849932206015416686666302813596742597086263111529969154663204939206862249753429934012842774144912879530946694347437421566921490789384769123101537029887248105912639332986283757933070122134343177408596810760043999830849367493623625339388635602477428235684756621759616325029500234607215959420179758193203148052295006122501452279234402413276766379911928010977854819401397376339104489080397508513056146375791521721980563506165786990639891023477856233742302574236952698836743416766310365035888884831640730873150485177034455770245980747060273396812186429761003165864566296361185283471534647818337613499135142214920547470307288479884136443283661430444446000812625365668537615297779245161119249559663561778989356957808346053297664567519768942350068265898468950158569171614856770069168452227353839264561152391508516814969244011780959139172037009492325305041295414422136508401720760131082945978961243621203035101565652314225885564191820306341074630789310262124934572294855699596899867767675471813274137533943697088939703235747632220311359433963344519902071757925660669589253482847573110382490214957242728990379832758786797519195427029572549365242649551773800655010845338182606977752359140697716941396902382754917480323466579683954470829447202274088902598104671146799856583094441938410564283486148793933016716865401704407351844787440419533907954328970143615216948243487734499398342990817470341787187524665243270703701212433882537308736558273854491563920337849097945864470917292061304278812579633988850889761818259086447157050104240857446042502782247403150860097870790625314530927817498125241205923188206615002410481890963489671699619309356274538757380655191539708841222560130101325879678276262351031338170333965222537096780457127806565562599979264629275432914775301718835801637996591006944065181209459867915292363171788617473323256514051313865068950589738714588612571872342462225637358088461058071707724816646639898353696901987561071793645253636178788640591261525971241199178184018500141890711237596059381244960393856569449459462159715002177487827619834782879281257107798831024125013830176298590842248071566678540212146944457369173528070867358129892571960357507562791203433777995069604254706007891984567349066331542758665589034323776108065560307773994083066969739813006951446802918902464656354530773413195175923545477068738766213622775506145257142574340195287857208310651567574524386926455669763344341340931633895313159583983855286146273659376589669430720473709933153540025207164121324199222512835266088212724397687417481412619797429997257963276701287416268341344004353795417641733573056920686074479363027366162519814066603209703199782701869064380227354803939314006188943389766182213904418251353873960299431463017925358282520201699959941839710377908908669243913019166854365923961408073207665538096742092670963699628875719818908631043682801660332614122569872701462787298191808542373936983749313179662684657911714490617106204029547289612972095958810594056317471217278992909806709459987101692779048508393962345606503036412394458203990953400060985036918373538138096388153291725778145402663511527727403795061553351733399982794677594962065560179366579085049946250948399746332077837814589128978393610847377033619974536372901018575695713602368467629864706005970298706282290619845582087466117773303904011648320041019108531335152474713942179101245385571103656063269505155264525143537544705457460474357334721522444259173021205412702470853425778232443730508465077868064967754751611839786417492866609005888066945959228315042259848155770152017272498348522317187974723434359368651463916178871776427301377493973298232683196368971666919038624842094242453053465315992760471572962684852591180129424121831518635175448931536638344506363434558903740485764028278298047124172079379721141810983530121920480522213088626124664779062188285192188074660682473097150486689268277877680605974443535097505351824176797130236335835164267267285196624233249779886683858699101147884133677010533433299935150574053893980057884160719304403193198422116582917370217792150755860976063870112054258819766009182050482089488499212242942776491393300721136139886157479524053031741965503061224377354023657269322402273417055614182751503741908028930894980104533427206913937467014731623826256888177342500098823641552186793259766623075502357476875448885882486067821761380104917051900154173963489825110758035789434269869471129433743491271868588792213907737945213749808566135120126678005471084002424476527817865331114360134565933352178026331928737401173291592172104420973203305487930901250144668173685874853259234700597250749466972517388245792416686344934270177811266272479449047039239511411000082327602098283164498227693624985338065896489031291680622241280521892894658988756733479630524459657808061355498854500905471916692599644619461476584173460974118905005931723874480396477650210301611713284785626555704396119533851629104293795869899956070511990101378554124198691269706154058935289108800397355328292958452191941344537113226879433499175217720253701861629635192111011279152752319164421509326760998708962736363969039819561271902720069706877945688051847317597698762201291524667396949028429938374870932254996545334584347490071023979674261981680263212295495943150958551742931501607326219016413363949187868380433457398975506197009119309332364196792754992825077381273901201450205507803813552255055224460176164184859354596745195747449304057368477750258635242394773078065336756063595867087126738123100785768684859958581092605561554777081140461468783948969490818838809212984480992276260530340004568335643565052080253791814691996169246781803484773095325545021875041898946903406599923410752213866075313751075936086976722871660122927613835904993345097333784317191857100072668214043959120668951926411197315914043366159638642895159377563955421930888048506681961199847179204392710974567088133600530425607324680145004746439512850561938774705246576671619792813809115373425140112655843944482494386702977375310868668443548956312049557967581657154469345084043499643563506340346235358651098301553523376541759584345573526501045634979628358769468320574273262612833728471806638395467205108894678849626298435395224447376116589482266775076195288687625608942329601157927111084212688122084847789652373737541276761705075104075914087195040552847547605047879369460340055809923515226239869800397710250691115439648211888781761838665094981180273085387978457177787440363676838954330895729493655643541463255683920851313036802622803194113505869312983878789541908577050305031874764675226101834830149525763376822708887374571416519875507499428710313535890129222376139921348909411615361951238330489557824401425857619681820378843267316651800376985256601223755021727575825371048990250425925844775790517662236874962219360862286020053393761617746195173335765014481646588635267554593627075606119409523093832985786111270763941658001326458792420662635362592216859004740353107404832812881170826423897870924924344841283979646811814010244826848683384642738737974266208547231115337549986952015164789242174222643050782133558826887371500457539594961172529109812181369955847936061660722036822980384419873219925751393052129171177592624698575355668606704820455032027978101266836851003335634492643445344577853291070987644920136949389693795498241755499165506835482345479412606339010351956571729060241844749882623433193121359528874257759231951839930778445400158821631194171848534529339989048407517211674451588964654228797028441596867853394149949998259488098119926791238439243119353672442105762229958446118071946289222192074085495193444430201976932848463309262341584602695876971521753800271782888277452039338983343257906005579525649471656357959141095501693014754658116831262473077947273889026787258431199512082005086361379483484220711535136447751683714866445392380322076060189756784461847305357445068856971381318491586968266716156311201658861602424580424918763768429044279596367973465187911179249689193425437713967210554998490103546732621956082064354364183029179830524115470194613405618947928375753430211075829829013435408277451388695649476188517516081221849967243422158898689012917645198539541420424760584077806808145698573213414446451708312628625391756869194891636671403769221752159629958227159892142020105622334793469084506866522669905039595642557945231809924153749736079340714788450071515196013180743146725713884656616933936844763208175756919127607445709418300370170064325373265803781395657810331226102417523031022675539611010430669863464994437633531559656994017320743551925632572058223127981127678648598671717862771197845241311200026216196513194894593279018165224776626462428165470234811375128682184319567543167579806749458805279556081459959275369482444837606397440470359302026907489193291419170151063860829764611379678660553493037180186553272911403018535120253498469618931252679692114529851762177657744153758384165475813571885038701305659605016685909842421178115627446244239355602174429183133159300989534635671221628565460548616716470326786865315294672303106599881842061791210802586159728000419463917833987575158402285396759419843710455427860422434778404514684440101881909294195071350560217306168282508688645159033275127222522665182075726328779554503542981176653060323706346617917553457485547720592577733443545149996472216677674622186212425817330809543126921521897475708349591246101028630469662485986118483008671093015611702019803670426001391044637839095654381827425925725385105019365555805402845613955572558950034478343249269619239292151151672275277905981414167507940022856673835867747120793944132260237447631602914058304658572563134458609216759380263329006231749539824800711697456658069246173856553959444345218183197552037150830729447685114604371660278413731762708086368894837377659218980810201598986686134938671194191884607115127587892494019897356201334125521186530075882937201206762351297811918466446181344861620566801007348424272269080747752174551493221587417058805257252917020732064755183517630601470765485809260402008970246898735078863635512563389376397685543837849027105940916811722600688118818668124557945768959654853702024889388165439753540972308998275532210229821544238222073364659823867938150215433132104139841730280010806715484436223008860211778846248013846595502561802222676949153033804957575975734123603980275370267642544741392651451496384036465744968184192825483626469424923116565364632378587317429191253211654225908509508783997464805046255154171058168969953459243542395356703346665839286927817783633840423534752672577494896339108488542694132340257292986935303956952857797277894728140320157949799393160042853418273262001360463517219726773002656661450063914628296401446671090208454493117864439356833293522867620828335316523415759794779535966042448119238137623843391931889123058408712165400077463036809926235101713467500331322843440481215721382290686911024673419842388150060404161479472067555782682163158955470023092710569661281377827759848394751651373630303831279751998366087693893012488750648022721820367496394824164901762543769078363635906894077221785482305192883649734361530003600034961570839404737563013160116289604310533581683850379998026698158612002834460200586636841765317913718391285242061026373679240445449670559887875352633662332648795821279252782767269389786774967166781264138528381009933659097341080542262430443901539889755451008363266765444341049118029159153740256478861523581938456182995577166338230270644975980326297363015668715159589359080569236910901582414016130487214598068799746283215911857360151447764793930474292828904846295032556734143504883291512539411898206368593017572999933846004648631098096945480405457889266672978374212129498949462565161581980946553499045640425031977522181964850847498423444910124097578443684411294117111949029774017956443226572685774388461383689589447930754323663842048707031349579166912451237088960978429957617664323669642350521228162753460627853246595154786987892247263068036454089130571231594120440445195363832257756038016986619104759432206223186083362802385401184351790535982739028700022325644079370026226508171447381591406445606597909404702369257333524342787241777314755151064943462311122844380699022123964230668987914134355354419810500297440841791961655965566371624718357223888974140779167947353836768531873712468189553372426002024895283932678029805537645948518061083246025528011158564586462486710132838946814667114942507767283186502369900955972216305607718177628535167111621148869593888694676553234660734432260861777332988035337920753645242213015099318115479360823121713692206851512703120129388471199246112633140409481604116690522364857528336822658420007012256763832126644292218204304052906490926359187207289346982515868050258370927007629264023098232383983823366611372822083603966922770914193808755653408587368523122708819069065931166575486150047640774062563881058044346959089157062193662879470574941876736469664101811527807947318310064770970713406893391213203776404376158413633045753983370647215998435794210177969640068314123195326875883565434674781922189526674660645638545642770531080854476540744469765326859199658066609605789600733707345224333717192357095116906809602954010907436007729486394209135293646656556010339316394175255473952677635087098090934945910853639826094205600342900278460357734909767416792254706675746265513276223106521366253583068028369251786892221651724366663369992703648373325543089775963998126825000241839608819845679228251187778370968853873414504233862141827958924169340836370848350440341463484253345216692079945671770664686146295726994004174072707029625280082903622191458694297438921197861063509517059758120856354834507528859539318921167064063387074329553805285108677759476510474091536804776719602109086665040898911711160936178636428607940776764141218886793687125698755794475109212902673730293862809836160578236051318438214399049888133378811301822010710970883447403011450169708506893592111168363028854290718472577022139558297860555600102356001375746025116425513590179131327226471646108203233928941645790050522014907459888123491985542998900566560381069459342527450777122039500600105487934980087732006598521584998085232869797545066525477479506369041455280744475157882349982752622626511376646774597240320864248535319912161732625145727407506395780391151739853821953987420518226753210121811744566000447218066908434401013217826272788916668574856189731521952327404992660723163353572451712397953019670152950343842666565379100152897693885845622305311674624532957850928602637755727686810859602712829925256893344957043099735395206776074703124040272915125901285776600852853484043822832915312940203457155095520353242865985613936936251264570752320969517617766117629407165878965981794981544384670810528802509647765467238084349638446946308085852478296529646966933702544729447349073509652149874391437116255205874747517754928600588354752462861622751889413470087810962627780218822320357819426358492883944303334569761044519585082405020666484171931879058925530382268385061984715063785781425905836579916020399175297435339733315756202307692733320738540733074022332123522534078239358072967042295605550834579396836534306453213768688087091383605368974440121027693894202790747854426500896534590281518661258310988433810777910641238754373430102559921493287148510189582090252631297098940006604399371847948639275547085223328117310459925115057495975525396556087582507797608596198196044388810827804799345248393196143207798574060094569260567264706634416103415993529499339503350779769312176176288025151699986992143416439344737719302735054689633566517282819883197452835368407414347002665890736888203908578532118516208287374564511431175903135376690875678497318827026087913691052435193846121706379702029487147471666206021340481276968169577729725342239144147963287570770612530470329771285101637253267691978280050411195581272167162157011458415965796699650077000945315709644309799258197048829234873946879937090004367346848666337625041103600593575464048395960001370185305436314937968914854531441265473174494438429295173931245853339859195508024366870812989038258166183065061044556216802896942254875417187042670193663376439814547528574753962411350348598434033742409475324938774154535703998381988313144243324770198668971055057257565551708411857896028674834390048928321242853000491919776295501603360258753242262239458795522936945267872496437903049292454064189728853012904872936598282319763645374682050868515856151749890724473752322033424558321884825102693660527483787915556219354933902615450901156957053859197871636493356286974049726828581137303636184275362932922628339319568942280289255123447003526499484402876290446604541717483444100849149162965782988599886401801818047697034120344758107554123706801236628685398619162794457398828963730955480319358118696289834526324661239814648594303591004851350441684897267968650439100278726792527963941533353593818346367616144807705238553489685304279325794770495717390930250248329054124262576186281225297134120520612971009989255476524131147027711241324628052932305932237365584539326242845893878909402477021501501770687709658491579298284641616829735905900597651735959401074243202489906528540463124999941322472661952641846003765216481339825373560116922083029685859307824749712856437645308481807693564525312669493199814913826552973066622009458629685956741007876284509783146406943047840376383705095270135426334588754145685515422823832964347263446792584171950513583860356586196173932775573685978273908230887403309125261691437336540519056392294153511659317339739404458025019078070400021083999977854740375609643996855893908874875264503689626861904541637780111919434766261333612993173989669841383141111071050822749483808898592851293696526519667870089927337492409289705934534832071062028528580398830872940579803458590851382596437748581152812030861726813408581622220916729653472273859704309051031391154502982388731917538066030462836081480912273490309930081342972149875564505559927901852166295496744494840171888013037688464051785973600939438255086256641800437693336792853902517093747901080104184742253933100497791674108060025135688121215313409053100304888277732046379390332628367695541584544279572750022903579452783367666685580905581155783222984363766034789666426083330181833724827219450427574738436074922027146871097140154183495408734732373854316158090418920791693089093083126017079788891129495040969742257406783036536925876323735283663710954799744358951644908972351017138581539301087612829412300036937743410028863824895604219297839837623806155048506095096533520497875974740146328867871051291759635258252014227632722701787046184028453606238252031826557885529763032971203570867663074093380397823204252687472003467696208564684305460083824480151133685047196466529127091153940105930305119416155195427893540449119634331452311473990280810296824239491214380490115063446396279805571184748030788642990354349381821684969395422607978927738971973198440562025080184512523029989705136158426542678562579517156350512140330220934260548311424223507201361202487537983158081614620265429316573525842032986038841586518639319586029887548086887128006402646168014613412361623120824791396827977111933456821977670791931737804118006612976459217415771195665075412743498151421065506648449654470197383924288702076955655981376601319066970412958865801536653679482218934180607696538011508477879818152898625223516753424968899839737689827060611229408801692110402171521417452545909923094358788233812351397275865565397662344235686832559201799716887933241278938663039168676289346035064970004694986483406343720825386201226920139381827201558950606216870258717088768718713075353692576605042514230415098863304455079502871925860844536621548532653571645943826335955940112952827522573517124155391114406466226080613180480798678922523644143744403563724930411605857287084778248802556073804640340262516432193206945956362725395992321724606232158266840562042885016093147145714550111142381738220857655071187584656729866787624821521467572402317889893552103483508725035528348682053164696788967534869849808497753219968117176295219510527368381931841235325213030683722738001735125438637358756830345201144051643640507530671699065571917135022609555495282404775646452736779099242339240954114930506745685154552005262472779337124957328808255322843137241477817696736752454411751938566071836591571793495323483068987989170813626089321862878346783763853869150470188337462236800047329247011282658480267178690252426294066182335527945518755315302050224110617456671951570963070883016437969440104920910504773907313826259688588566606578992047822905901318931725743152290139901921336560154443050563854207149106839663864860226237274094772141988975422437168081640685499141608893730892670400971361372744865890869260265418673428615304174528243899474929861955572606457544246307748926386344125487110847344838536374426641178299162392155488612219914417134203783026218591921849462052522807147158862298508383684435003135112681686897444386065575753355844213031665175393516003730123096864481243286026989146840786650224874848933637115797577678426238583723350093419481399415534018811333875622407047109726571065812522397139477865956215544305742105572238634147307226134389048858213004221763351838511361924789944321560729840936968872180017594269169944392470311911810543144701219260707341967075202382981618096071451273362535391514526144037738374564208216287763061794863066455664657832250641993737109874150674068940697280095832966027359116737092294351312909162320118122367045625045753689732320861064883869617203509178411474339403666081389543995008284066294166694105462382887923073950225758586880705456716400440538820823218461438111695144856924320817354812661686908478425433670581712237639927511138070560843316717260256783800897385995930176043133344558083009642177339143722752567064853239550034430945716854102743497995579883026196892559682282409674079754713302946586941436928255151374677955029819109268729461567774336868606144295734761392734933135863124386246424274955688981622485087232368923824245155296178308414645723561523042923762657170596976741842995309287577594814717547665400645962792083674968093089202730675929850575591467715191322951490979943869748262014169500534671796657015267661951488691189197549661381867065965731799040565189110575967847435459024272145837526462084760342000613130686843299439119879293202360926659504703182059627717306353873924464052802620787678505585973473785741228134892213360004588023763461750194849034785848451310367988172886396622245133641713858974944302507368803182789735769566120000276661297421825610367990514387171079711614145785780977316073611939633154681789253113968450098337657632213619800851656287454333036334825996276052866331716569503462579054627249395097058663033950146411474038913859067823820570292849787305708599571778959953799814347858122808657479473070953595502953381568218378044046803129430258968447256447109444143313212994180058631174445837921369230264604805450777913925790117893362412482679519951891807966866546950217647712775743046333854236872362196991503321165908038818164284908738768016305718250893470574090747448911222318197936482642190506641452831542374000118666995927254018074894521560976519940457371178893368853115995323638135126739735114629765292067828798526752119429800918817783556748538884584966912273843125795691962105354036098817632744749961525118627917382293670264143086769016189853779584926271013809484043755465866598049900853707830161048984760414789925010435709026648409331484390946684924086928850852558577348625570543987105141386980458670272424625251763007775580660092666416165278539129854607522976775917095693555258407894611584409834819011148749771935904606059162199938507532546052054587937056368299284091877894817887681274928633801105809610000471254283243998113711128509905579024886805084473299883734144707957985321067274529307868188350291398256974062425689675253439745601983239937312499490662668514702111765432111591053856168219960498495455609140744003821313341353493024736101791194899354693558676447022704239940048126621091767186277201721337264129441904479326371856125744480363792306856726886371344226435312584129251025402107767173389467164920523676619424768131076970171123829265354202464478093132987592357193362129265251558375368833862319813353737693029645254513486068023051808000770049277777949405853385841464129990684739271291091367593566176104731183313529556120635193914804187337506030268085378568916141129363917237725644388946536857211107512784436764512669364375918253309858772607942336120433058508294036920958431831616665997058103752879911955835380355189598119562271555679734155692774032446101651312889719961704298109597218464442008930678888807512431029561061892097047549137519328462937512376541214310340182936924807809303112151623924686613489088570826239842718127320234835693319135973425427836048237058101098470863153990346626753843608492872016374729091733386841926936371494767889641746430074866390426526335133875743098644740881271709087631612837572396649358257654256998732144742276950651563532141631658840764784699970965025428415880698293870883529261384393240410557500354178716959111736160005730897676991576729618048679357920986571962833560762113817454399494891447721213578397813653236617536603670181600841475009728081585182234914855382267135523816396530498408446404006918941243825711051012377316042869378212620275711952125669238964759815139697150429483371349810281215725368197258444157295997446607478083954196156323894022739487980991042231657980067073803865527866425122805348307909328375727774332838124788113440952080471443973243647736702605619189859333537707900896951644373809377238139086913325038658747620746380274206886357236803886027288876323554763938633519271204714478786024322668996526367876976189735061822405918447649745830222745741294568307685088190510188132405871651426314745145267496177369867413531729230154863924498167621192719751926833736261281637048541889867286184096602754998094233584039837717172928134869066394159545820844147069381627352496670060308040906598014952869650878376392152000971452622325904179450921565205607488023337607118233212448040784025876222205349108463839306979992907377897586750956640323714458626297055980112235668880204924219951557968764194222062014804116724739860657285600931142522528564258396283186790799900854686926146307896856141489224326933660353986170296884849772694349725286895691646716681071455298465767877957658573839800295592666351298383413351458247679229711897240595651091746749504264849232465439405583528909896362445507809560123126690199901123813872017332428884385946394053737713394487501091614180964442163859954839795331233452100674669470194782801612097535885592486328047117652703061495672925109860420096795367702977682178658076034753754815183377462786288434610818599391018870564641346436100801707550322547541679538682050212788916878871079029074604944075902884010771904863216699361990938695672638301872311846133533374313432420663289161712411746894447859349795159782534670698185918709288362901561828112044577361244843827377031041937514392864335483213457000551858319172834975721131947820286122772637156710078022707359186165835751807415368192158886582591368271307518172175774858452181959232611954923193188822996703633633908202035984152969958379484855798626810822831379515365057269607863897813699593769198125851264675403472362197097368408265953907802414549678705731404595189760841836589599576596103405515757026633646957863984336657123892993924786545461122508532899194008038659851274104211854596621929790063210782342196068087524549002804082821046028912706953155511117711645261936997288990305709909431156240773586897722576307815807695852880318052228648724916048834827461946196521762222628786445475052111161297996931301822516053491582767022739159699916161663309578193243527729384764033897228693197928295520642110622618450237703020556452811289874146624077821779917768348752412450832384428971383060658919975871485976914505335531840480525048177924380016684821715725932142685227620983730698101493081538329395064984129205419545612784907149874608305205792617866748732327744219757846207270913341436933455199951749332023670783909602488124402909088137640055078377119426403510359979467187166217920332987677904848753887036766846256328316356546651546243100823444236728578872395726725825548875093002463156128073243455844627071119756589030242115179937372973473565542152549809648516795056264816008581470126127047154848556512593663387999274985722822882229691819506811175584337283115551046882156780388917243557265915066370764212581208501806134486666908112735678544015503052976706082135393476295798902728160956434497948839762607010303866240204730272480086165806964148470137119641433663963832957051537660395989992031172689390133136484632815200525585775571716772165633184527395648485885126845468106063584918098468556375260855084299270081942983871904800129519573611320992719157032887901657513047509341935022647159807366298623111297163541567264096581569920733301981612542527775214167514328324708442625262813272995062809520043702636771803844523452052450515481823738291509264005922936418517686699694616090772394708835325669957182686094312065598103839549889980792267759335572740542029000477959946846531710592291955409784468297872382173745227983228495798472182313831164198799711753465056580296853601450728166908611480175967193965444394835052444732139214930007410734439424669896510510828403296969551287974872040132590308972543648826460300044327577115755730909986364733727271527107421776113277281038360203165643210294536629132158405456115964539295685580518724613013201340604160652555569810056562525980495700466734924216618615100758797854671942524685645732767250194715152395543619123323001034614985100667349360807321898412106154182185990697265323010017467788347253701776209479662184903597020247992122582851044472154341430227524036558711034677405489856658444315076334098840851158841454114566451991502404430432129221547937664847503363540581923553977423699187628777910227497580620315086223626681827691393101473466531680645460554287931108317279033093051584677059626702834944241288533830347862023061384849968913122870839910742495742132885952324326594504849942723250382110259229688991827736432528534015108803677601021196617401948084328516297118639264651596354074179374257652077866758627257441618876633239160023343335127122229453946496371416412024449812999341539753578834260859371366307853670938584224292722885928174054940672920788842628824563074860783476349597278422140204689197131370604254238602616623185740387920274344060585957502191487971465510630592800960449454437976469464259663214857823168045224949059724758117906182402882988031906636715476574662561801658982495540281456877328936365949703912156856946773436926168212627611037106980459961933878429227734541343047888619186895834353762226079022444569157645809810197055075368893295683858844006203772338073060343013675048625731700902647144966381719940697404442809417417494050072412637409132332263693741399119998726417854283567494107251453602353168927764181903010823232434738638017783705268491293911106609070392000087265362736375502830913712650288482323740989068658141043478729019517045963605281485752553673565595189938953328274510012675269408268739300916010632994676742379037002218432424153680012643948681397340654536235021906555442836131923166389664540021261531341917000955656430537555240702682988528638827089499917064218577626084524358193176642054224115472033281868494986767748063588167193752584393406529422345434300093814794087941939223227816311387263396168344372953592860015486670668811065689332299719390310021142369905700921574126357715423849333565797150458652083830555076003584107520471504404847944552699893610047797089887228763770811193580315366621137856558150088897835513911032408189532062875753983606983890355413064204729685526571252019815763814587636430876660323174439025127407669672368102757186239654785805546312425781519867036627065772445667060517653033099231183238824246079715326174509106191139313559641519512952183341784281304582002821058119137702508582233332106107120582079257553731064089428539432404104515189754476519929273568628611421296997944240225701499578205962446854423547056766409277217811965309910024885206792470111123115937561720695142215156844886969105674928176446960499653888410681790661468960203332959045076287422026023887062221278594773110918140212882165385133824451645194023878956203575037345909961841003624970708547186401642174507347123348193066143114352089584896307818835867637931912684124985547469781384057463369504959901992769937116032708294776524037956308145041562001781378418729226577451019092510791650667141064591889666741399532336025213502738608762777025411440973726553585738440432927866460274276302299809026189096545746854511807215188741376103010226225935414304511497773389192305362834379894669213047441068339392703371652978887174366511960148421099419228750537101569117734509722506774799298189011572306274578745250878857302221667621827150769247279714164661136583256759155302074823144590852861598523346765613583361746525995804438034646401578370286016989093709967060586702256285203259720636277346882767031010768245295556735880013219018186997328560602563934859172433179304613055764409555846896397050719192104830219200767592246535451406223398648158302589878561852740088581857222051722667647991509717472478238533917952479891331265583227658674350637271126038195561288964139250027676001479390680328871602007214598540033683049891286536933126722672885155210766209294511100871563851875732406528195126372953494667819303496891900705116779302253363195379524286676474085971717994756511414761496990971100749165171854110665796344567766556121023460245775471854710111532870896285221578356092152913795790440841676065228381212441565730608417282583656827452212134625482521637359844488211080656677843497242438051653681268986790710913367978402723537155601915220214996253138597124932204938434259518886434677546744558745596080526145727619312387025294781768650484908576597516111970975748329755171064716923463573039659875462968928001894397446348607866624353675287685119592381220767543811994810419400776429346526941301743068291054951550697096907444630335559710918343734934605191526955409502234203781736839017350059128948027400957757725899536375935061931379091730536189585101305566856117816947594454104883960913478704113834015185543007361362928102765611970282329025911796236668636250583496813016834307573822121256931678485881143075002637667008541442677937367542728445039080866297167824629150182239515877925963014098877351197079221518847214832021690289350568715274192827810822598007947304999487119778823433027570386360349430479655241270703846298780164442734892491373047954287161805696691817085591322143056951238117851454098719139218089692938024402544309929444195835556265219898257138846094591164037903306011855505750128344876480411855177555226093714082718785819452859113242247201814247794733277123639981158647249848205803354400816423682567843209383764874512124928017891906736357543143060835877423700310136550704940639178757896350111377729704666636296227891865977454226370569484001294954508543220858059772214638955175673867996856303883564881416373922342221909096260345827911134992215843992981223272711205450961374325304210084038911824980364551440132703284855760959446419632538387646780794833326082068276587814990245080485760944606299134216452809897777344308860887320571098358225830877848581048361802486346401899685608236238209787062620256104538126182096836413425051256442590226780313312661763575743230536758978400980953987523041529545470098207767077064073042792905367771968453551640546582525281745286239209198615935825610810147982338932083388691817346693093578977785698069242191901043164847141988097024706244072840041780394474973381329981012567975264958003114813317620505937470718415433185810851657825260023442635932715475322974964558856075736542129990769749441816306136396388359876129616650283190010732734421682110066213169779537875883322726456652111469729520841214429828175309486690234561908164400666794384960843880289409626895547990665452954529403916706599871171882161890248746805886630907256228184933844651667191140416742681997748411758612606648833691240136855353705009800655607311944927054926608690266839189328661489640574628187720920647912613081480152002677328766845950404593728800542350227000969185646684689039332897944350110751598121902545352321345245649749635593749245867979760021464368438891904767918418162447508226220678915775549946735236231683122884036998737782849047602063644007597066907123189043006574750103974657011871074483057325447204476886003838429462118841578678465718196780344469341562442537792463350151459784628312455524164100233747272807261328773909940274459066191726837046034007931982318043762416909275837957112221134794881924648027534181714423113976317518904996120045768731869205213185083959005180146828367234402556965186228768341035638280625033136089041019227399564265356251548089681546711926631697256012839317431901608013237771814094465212069254738583188813392959463122360703079501947428134913009991912324621555191820570686394414173555125451695159765113977352381634708321696378991998653952425292117551042278323125404321052314246345444663138506564823644429833804294705210747107883427563062372729241131007903851664768197554211337131849078366595522337160419781584226001893278113358978086382378481499621977310384036831764531922712719103387713818655994267870410339255106435089670373941774267288337704926350606969463047891879113544517890485341795375663770431978956483149965255504625704595568832817140014044550076566290225303609347578192267120575544352101789917495569167510471715103766692583502518736405339701764613694598201290523057950781924787130375471950879017076062511091853239773617536455843403982122024461880026386265691180087302035618836208363967290229709154902345815039407189160856085612323070347607387445781130670000133753228857329404283644883423766375520113174350001747174496454692962230273242931549160989218246071081288051952283203837827627400862294384476269678963602356826318677044809752309478350969736047067316275011567190368913099957016374866616104140919430551254015609590544161607458928603343297681084443666326156687849243294698169414653059266902892367121822453203857626686005965981349942843757944490032642281345488727008163734501521191731184090591143995162807527430229707154294060116678240511695189671506082293922053348777228281428661461444819759835695084140806117307690508194801518479357261687553856123996475614550131134920746285965738000584612127955920781098233556150322046431369995378401136824458443014928269290225240840034595630201494096776386339977202220583208801613346162426764742001869646460938508640799075182931706842234684589357247774697639322821534345834414970938268280795868525260613051870213129633229140543642303994538687378059585875139824881392921955375200517028963448266023678117383897048403605038947681597130007953853940666880259683735304874345290077681769239312954025494767392009320631780088909147476923573630554384274876679446201145401488306273564102554745495305264751200324140934830725994867478168724359495327911029833430529878217379518992376078474843010332763075187298980772641266868670362272496055463668739948301224686489693709406685223544705928160549290919596334866779964065737170537477451440467180374161270399871915010775369828233356433230396231682546536585597839619063925651425664987617966109117588435314080513351250574704427312563316272316143148811544527354440985030578823691329206704612024940041973334373637387743049908941901089584644893648844104142043979911030211300930542576908794710666045626614614761760962196995518439887050095511002166465479501548996266303029859059630887725474997963584433172165866898844333916950242951175120529114493121325842564862317290961553601816603989909332362000681107647433275163982461265490353966531920103824766119640408305510902926189880810397346411363178630523691769754988372460168581842192757488299664985765059978258406611922742744268095428345691504951378835121831578573535676598401537474781822189842704096998127107484055292427075120607154987897566187499418120826950725803717046910071419366908685609057882512496128029449279808943806794061756139000158658499395138258750248646108912837350108075922139362188539300065665568739120151663917631990158330329805348832619697556629300888892672572051280047086455914782818683389139601474241477194567467289615160432111468496922207229807794689136766954889649409389433033171826934495516466297116401908017858263026045521944948102233408029463935481907309511831469188596761968185940509424974236990369863734731206155063149561616301474163300988481281291972519648224665694663434724367717560433460690677270825895180254652218808442614356262471025081847553914330296332257983314501027979361495559072698316053254381178530300400443009882901855823488629399608988023362670889393562698723486060416520004493204849554914498986439368617841205022901286277357659810668904003163704821276488008414558414875275719048006128137922281776892550283407598803266044697367420283387068859379555847024162851119347928215210782120344148825255515034080372355092613525133908786799244903351170404299385103274771520046261999556949855906757515914871865190018587931271203314994603613289925503343362223791635508469369964485805463885643649972258274025961778616158670356633889419631222740854795036152543027895618789933151081036774017453799637037686072419255374739633982314653783892199025904532786817011427745359859342453061704236648582662443090017214232500110510943157079087653616351702264505589385781120115228763357817216298537880270287099074733803137183540081347957120943158931536970239101923454521927314022321737423043878509582078080627444762984490461146402056962404250988818852562179112535912337717452355183798567905150673296540119782222931896298453507743665953485463957173185422817937526599978850116381779418170033128371821598289237194734605340932554871856821022675169772075312540747814469256778347625279007809661487613118548372136362369203147667378521625579923531623449667796678442187520440102697041923944123058561822103593768707062391265653986732330313125077098720135693315029055258929084862864966545691676015555302271319501372570228037732582666995221694368514556680245625268616284487974980294039236505711033918292017232882512788697765075774371657053436293447149553896564411344202765151011195642513006821190726425253520115446679605692349160500946026377047266034045529809873601641518646667329843296619778537577842360418233425778782460920924562689605430279374254886606926496136268674054571771230374018833371118155917885219940780607065856589985659474755105406710371400147470670334407490771266706871193116704581061884675495157601316765090587495162375173032760922611119854597851839896957391219520654048480039310917669974671725284749606637086983169249315699337958971724223085893971102260176596253931148259179838556528700283119090317085613199178645240128907064309742166733327181336825048682731416643737666759349029314663117453467907479663625731652453764068057955988880277410619589307652433331338959473807906484390127644455214375087307894554841300626006375764663003880850509931501764783392459286131816981317840537735000109301905571200130759590705856561875674502951627789839890588978290817603847827802707968214038435205275140545453259363355959440858373553164232315606707786940564887965415145921789566199248456070025141349997812537736648872498296085638299234161876655935250799190670412077854093051587144933313799955089830168959455875342660351480362554919827114995071750579206939868747406912527325157014988779638330280608988825702926156219708647895287951403665121937136665557959677614577399257391581268445639827993961630830822031355082344815271451510142400488359723049604668647850786812218975917031709985588222459832063735795870051977378647137417733266825531378150189041263523685710306520909266328833127860189809158739197227161414928049778956737321886227818784275167018442936444541190094881432733485006466471626739100788339897660454610699486496660531435234423324335701741893524093142242890902067954853509913505148383137338717140342044871976027753114425376693130108424762761412910642770017199386149340632819355867589267923476082282744944265494038283125576013548456533264219142650541654907891907492240890535952748387023456750491478965452322093118312772028552666143629825867162876649443667072681144304623544166810977770108672302601957278440995237013538588210186453092639164332816235814079170045010200667234059956920088433802095871917818782580154276018796063625314152993921971528975381960483453024977146769041886711777497127234423371231503188084636805308845749990068132645641147456251425233954532903954031867213536337766326343432186160508859291363739099497223034390352136264334228281109220847627544980890926202694006835728556134915560027102129420500416207480251732741153154354182710795580191461895509641206813259531461663156033282398813729482814217579040821807734444110635036903136039948424601058325261632649131976469483100314516291971577584807968010879275706925261313218291252028131616242066830326388621870397980704679180789078218135525489039450890526672579516473192377152677408156854380463102698728943589945203212829595192078087544835241008611273178671585122777423895178023108003460448860439522454518182714512767538039778183786440107920607272884252842785083597406072283253615533126693472298969751307499478364253572688475516476221988282884530262563660072609850749029685418055756847378811234900052787367488888400381189731195870715852717745343999447372725212821290505030719585342651988684101447829579579472203838920050162110224482156092395140707151397250583395851219957625039302853014631094015952778671396059466985280027723971053710530654690905117793877188806395176850230588052406646765608649408049995644970113322272569000681698584423459526629728999126033321190990193439625509499456221813062397628081125922017857137590643819612405972366931480012670013059147600572329501359051426529592898156593648960525451161730068187644279633375952071725119459939720416811252113184216635403211243216678152400074255842561051711379205820910088035116410654034194832064733448436583518315657649767544637857400242999606283831996304358323422590942533001641553690237392634755893542206181320328006287678329776146790347569624056485157229957322240727366587067728903084093691510817034013353378560572249899351774870648080982018992505660041601751502668065660542782901305981289684078170731392721395559421994052996658433199358154123194973908763473717045309207755396232581182496901799761988576325843578583897084740458841025884726422070181172977695522268521074014281336120729434931165058192579247120644144512514970902266810819374203114568282975174882983601222673407954212757010384901654290948922947419468476754732920386245610691418944820233006557889973721490934145957470594701550558082040031742865006275303141721902714504151576074142767374970925757663144976967882914881601052726557790141882334105682123910671645908201269391410848869709365405793262974584412606628411122073242818868005315098308795734206691685329091551918922106456879968242226081435002730140762214647468927217392994708340439412200798052015768131080960762548052615394793402122349396986573959886053067692494768698588592236471305074817224212161055537327046281104122497438095055569739015828655643770165693861401017611092543752466834015614824661744760562839580920650725724368424770105290576204931439582293959966555048060703752984591484518714010670373350727321845139262176563359361525900043187513670382022165117572958871119052643164413692320648808266778291945263982998633258479374996553558344205750001022821287706932771629504117112859281081312333895220391647394826225364207484811141562106951205290323964958370504677902252647772093006232327419341119020843777027403312541476894059022548741063540328925005456118957758533108996389927156877270380342161679089721835243828236344988277357170056487924954410923265256840144477764229151331087188521945574955101761139898817543870620935715178705275153755388196851337677548417350551810953801191655022154356633252114740712085030164884638081004805821619115045779517557935423047023397365738603930060439037520558005110405657929783612181411639470270519486011805150273215642772430372455367494942026192785926042581907729819846013777977100413608709330233394774136500122341285744253426718438054954883090324933510766519893185301999867712044181088476837406737089569035055808226033550916944029151391254837152168664680428549987302975122729297068368374260255982596425636449491809963527290921837751492715779663498634686421790116508343257284822667680560161195571961774253883347055206630873998037212653875153045032899114331419455854351325235706512068932908350781021283044829138987130506642057996048077878335064662087644160274015093641989565147839022015834107419791502859700142879511717347845121629979122470720937246281411321682609824933707927619840730873155789278012878509076561530601979020420722430563762654344953117759510422901287117816298408714400323084316912652870459080789166560646413359931350077387079982413180159295414422735564462712758986286851930187105589945948242547994858013339764293736817496805285824507956352443492321413773657948633941125381419755272334069159944220999322261343415721639569201168633795589864707319985882039426963005150466973971863838898299457446154177647978393535434941334123284884062475105819863919642893742006742472747811122654793247899755640513918505186229127220304041236552273094696423971192253148511045354988814104847129021452501439394640815793835015911230117744579128276341495196736139185214924455509668343477018575572331196077758808745278576863394051796002724400613661909320906289894968631903635230478029853786062390184221509116872698501006087919853163193678658482081587168270962915755499390989510336457831929173913344305844011957040530290047902882699918527430518193020608113976380422742164445640225567170658960311658492106327686330899654364281032411996030526014081720908338285259508212934753104637097916943584307577341279302107780368368257583875963002775454625660741700928176377559446736078540094419369118936753526019017393229043654838916461139674192695837023908955940351104571192912697468935720158722566917646593283979326335850945782677027203776905959564716210094386375764196065293303822101935016010335880307829536109224865810669470372821180361715737161093921409740860204251191999040755366772951272457694136460717682875929845973117446488927131037808207789969566900418096086600058542846840811380963715565867797556901917732504928931804520074069142004995272927103592873590763846813962718484304364102665880727574163856820488021706842917632471063364102285226966949250172921063138098101060406877124777703937181092210991711834275300119013750214993132132545894882824602566909777641565858712699782520491853765249063700273272232804063980540030641474918229586151918408739004117217154695779913759571615802986054067007892764650372471538928815897361694969699862066917690967035024961481734936551654098537228762386606821803163422256202651240972568218331378570999558851930616194108089845035085991213024933177865906138877573515904735363748474778539124535869801896420576891202174412938719756786109300627738958098426615138635898162919803514726570691385189169938992331363157497499877174712759400340292246422656778139903311052938174680565185527887905591122902635574741160470493265813531941911374456557882938945656737142068083360130438118375306298481293668392612361580726341872751962548765183144232609019039370718626730108401929969833176614873511797530011289500007700746223647783913033077448319508561187567091229888506827829171851093297070983710413257380205325822905603444187593410171467590718057158913263925501124745973191772530574899721640615996495937554094649973398699314246795096813690961170096758668660314908327975661217458270948956049548416348506101495407966019498395456171533851861088185660700864768789234525889684579142852736196358407356921588454119511010634276633234170318572879332147813346936919866344915929276244947857409493119218158702982247294388846206595304632068597099265039538407643783179273249098565142827921332741450292459201624194793827936436863342806657828221133543055124250218486188268672008582498132260798241543028140520930408244662057413359066427010789947774325311176210369083729931128682597909958543084505624476545486926544339491056427403009974276833088341513720580395308970424234920471603013064668537030378865730650033215914570126542552755999094789331129167335225663125620396705296702038567520013039676376361858311612515819027885046108678841674984488629694840098130629080077385981250996322795422186996682655166591390906497614434836172095227845105530418491730713303504390014677897652945699692406527491569867558427361487029544474105554939745685514585345277450815192976029069099568788567471048492067472929548987695250489572858657788879840368753595599792922140895717829030589403009323731797961051710210279179066157103643645967811533987625937917694892858416489728767913554139787224713215797384059094025385218226940873360285035136785375055038856780068473244043934227575124713645392406235850668096545009417546371818578830812831646920762700011180605839926221961928624771025349166329383150591348129793907595062456748497970520671336108465842994953871302290782333141531430663345590240824384980704229830039569734785085714579895734194060777738493773068274832012016132352510444591504584739100377367422589127544042221055097479598192358712447580597808899280135744146816088684750392916805845002880009213968991727355676772838069407615441980866487146696898727505305345972687842420819162581214363498776586467223601260413452669809927569611460208904708049332035307123232645527941251086781204029381082866730238224022517941802312236225834915433939939370553622166391149373918727645717679277298191634548917519329972827884953295231272514138631541760680443473693148317073211866932988340720029583919599910309520011629778024001085517714869470188163299628453374291483911513904361638907663925814442689504716592013599397019807600473574318088777604007199668662305168769042513146859178882137014395394052382813705716365906710006443141983304592597451029507403821417349774593233106547071068068036089002204092379165391228740250578317998510730189171984158902077917767855414603796670106446477765349544115460436097083691394303062139785744054028865793412669404327897755579544643382823336955803553547636068029478670103386146944765438215659827597615750074437199718989209857538745949302011176830234293312978141023169978687122054529836542460207759002798589731098003017828670123895112669200796026158824649998018073695244293578919374604433104232762755412857335163872266695812600629055988347707230562809094654880698524975376562974140232280302528496438376851427198748100330784923706814581332983438106809519856657144211458135982803770422257019340118773657116415755282558447516782495802626786779025410740115912896079867207604604563372632434787715875921047890084133777387326885545531090337198893729512527766036278825039127806943288334897482090215957394043247768171998322612959834783595670633439764789881548068746083684824801932268530400815136769486564905450180472719727106872001819624034028908402751318996311581864855618004802445742989406669108848456556034693968557426242329793941312997295307967711189973640030014722726718857598403710150208811764889076119559660262894260740740375793620245337849147241985083454068164308060637107586705581859223111252023539523624967725574529004988531973393088549073160255785301733633459588804672525857008480695848244870224068017550092320020264871435711819451266560375948080187819777817457281657272166141979282740915666720502095116329027163162666411846135033553439848220220693994037639023402011504704672350895661486005783245688823338376408058801003898407011015570823788636794463920444573349294749772995181405378059878778516936606174420338569033912418731431774645555602936379028803377597634002820984929716814940906669523520831881793185468056727621300838828855079547762271861056568033396561687512970094344117422306199259203176174202464598661665202192814588285225480165349621910557995548872458241880177858728957445966663133896844199686626908196242065253807316994938299045562748046925376323438688018786168237906603657449835315831043018879973320598017993300236367233291259891234043443201653713967040410805938078100785946914129419026166663866323965828372818920595721245685754701840029514908460958668812975642115802082906857968114587997553398925181501787306879086645346105417742091288271159108789726098858555634236361184760437825015969185852186163769470657418931031098368138646094626331027813194049615441553878417944977690842271025501031484500467392247712022087259049414861244870537380726450552436216638297806686229241225989183771848728006839101937652355756392314498424132997149498880197397328946794563845210521453123439599996107132072708215535612019795302582852632015625755459109737382551569154999264027780257336137813776931331753343975390722350350757761061066883252666465065978112483070825580069658385675126116151931871292074277096349303431114564586802439663279920030799267809604662660354462452347093836070354572644582334912280008380925316927910120558358351343167198630015064083464096505272125211524649907975557748820574080128960183289200610927727546357906379198012872601364808922134402139482959326593916453796503574006074100937478247355153165291647833211258965164902455264090343516954939892375496388109552049756209499024515831333054667009091734119449208440343054977772901647730451060873090057850666153854167280860241166988277931733643854620691061056849791611405334973798683529972115923711628159242343858674488830551253871208227824564416576605284505228983192163863479535709570348074622648564305654542308828862867938978903774393009466756971577053489360035427013727348037778043002161227505646680602027236144792412654048613661519626973740019012975255822119601374445472645011452434198007922242843910462994840211439083306512538486716101798690725663127281915268106934517502104416559740722179761804830332750076758693757212617801114771187828791567630156171320869000998298434531848659342088154381868053661518525380673173459953049121363221450659260580960274213948929160792519325525304321758226076878649053835298976297331586565850087950048336620884110143562540658004768011442094061661255129291200142146469727679036796942895423766510250030726842872135420268530502656713093669899282577855373621352390518575614552208705150421928283683028206915395592189850936680696710985802513299568000808160146876989365872796670477823305408522260559801996315580302659126138329822833042149055640764822183324312988768741539874482738357327861184214931846226565163569508726677435952038775038820893254724550243044689328578650163740009559030605275647986656833762669319964931903015684925422286868121170121063637980325725308469623853446168577992167426835291243668108515219980707354034535764406743103926005631717532971386283626438258601798817152150069350242755302772449206026314931268251518029975007148344902864611533517408208767267482229573590258952713594069775039501862589047297378657754246956339906397376977804168474458981966775876230253494897700405220887665757022594972846813763153476012987204192595054136700653060235780128516980596802037051664309387170730079973972543564999845603382091400386718796837954653025150800614202520923527061991154655742076681249119914287858747757612639219575341380035791207072800818313696986643490176197893379984281429935172258521209925635531916128129128838756099864949511572879870748053748476213847648122218284298603802672821478951693088665454731924098448502121450325379937564591157273346017270201839312243370124340314712021607273147688674904573659298755601187809013353751064707318854705333899842385588823672213700024615082256200063127652537927143454280415745939307666711008901826843095091526624209927520084314528139128482364744212843188339131788392059397277404844810594403214063791935279876059389291821187354827419555890954520103514292512818738368084740748801028339968052150127082172278637853043034197376553560262215924818890630823285649380710286415725764758536777313565598011980038715645868326471113873908566527777911160543987633943370480096636349631880661983802451998725203511448450926171550199971411996083755441775088626002743057232512790017720633618497842485591315550612311485042827755869864210501215982230121658821037125993430855554675650438027580064434758938975334015598632054768288672167673284906137669415688467629855850810033594272269759398824676504244566796020990371254850345148974199113100942251888680840776503663369529562706969969862445193043876921702630945643871050252209104272211252793970091587138376927224441802980105744556041038960445410073948667119353497010124686508557265945180907107947379432334653681773731519696237980110208197326167946811434804929137562003188514043045947269338074434256523559241270646422904963203105488147381083364892875121312412001429225580268664846231013655193876269917269442002117961981747757092615966743112938748161841627534529132989901925518415917062970701921880671946106627838277609431680373263114318040894297609659306130223865854827327742758379471891850189653944896486606920622626353850032457394759635439818343706865164408978642510032717796205484720811445941009449120060997762158735751754776317762077344121262368920243765555979580265976515224825367557813603290529543969090539455366702201435874013681348127727038492281656989531668007288711723112386420021521962689796268581145712533343514644633478126793830185785832569859327063729687331803583907635816244705610917148516005958164044637316637097087325766075899753603365853705556731368672963742969363707466067227776901808398337429930668136115134331568433522337957468160006542221871039313534371050189728180785999462393129059803379628144628800398295677236009634024549530361973851562872793801659726464383092316828359362001764498161298352368365280510648251525818652371263916200045473841235876291174416261579450475424912737272423388155332902991803885381212504441214464951325109278593270940836066044573126919118015096394626874745393068495098392157007616150018866541602107129546237638173338620925471705899336917979935110678371606818692226258172238138440995081215832706775436691025176980254835135866629278094490541469708373957431704583413402412151420176020244856761857813648839409751073213659668632962097752543495563154819509427257271266308641951561850389690493729040458076674870140563080843843658809377126473743793340219228350307408790403301934544918551477287444578490880390834923378135475324622373057063464331963227013923324214675784221343952737507668948675368080457085346169380921396350471979598677627881605705173265069862995659636016433746651935686281897955738645586941522878327070206246988522436299868502539038623981776028235070808994321584035530604328005259612872443234821089896464075014121891238155613695979751117903337243888859934038746513095914949812669300537254321913880162220075316970581986168439034922380606121006079003823875317523036121278036583558321659809797561488205885156453385496588797047298906966182622318619268407769447747965535590890177052788230325548076373646024438483782988591291692027229815577022762690776538174153614174215127045913588360169885883416628740866807916572185866889901328833477338589512974284388120309294203533352320251625644675027030351278944074324865577495483499146377281298784047054734992125445421483655213891876790178347642843706290459908944610205500689094571398262110094969759445403594492253993690538618010121626829749389037204142914041737956189947824021688870820079811114030643501265941985065924510747236783052990011875768291589969853830545807392679690793475955277210127585940794198202205341572470267954047266713775449367314810924642953967880568263495548513874366237412399762143876227630073532259905197688837685575266472827419221753142988603531444681430898504099184071313134302124892563430595150409652009892515449035375431753999395689633021103248281491111823796731463053651681775032549086757357482486749926348678375365718205683882818986700699913156659626498101599752808003474421965172643090787143762365024391416126102782517607506457389401709155928406707707599315616148507638188752572701441044560964593005886278882029503204917162966618482921210311893725917890765115761067230957294057356833400793452633944719530349536932847592939416930607999816148436167390184671286751450143422733095434741506948497343011222203132901411409362749494904267569799053900312423748665480239683142527321217411741248856305874463996511064255251164828256544264274734192090071342445846441979444508384787723524273911020720659084888342530148171182416006170362504759209481796557636372210703901053576071214649044246791265670104656548667186051913128295408589052093277886375488600391946776613073407881990887090875643066056837158417066048255177061841411871771708134528445860897665820678564233017976223783056496205683787395284635941518349092115426969027232636749955983814593626355756604921301766156216318749977448759930273010084408416538018973898427436202690582169376062966347575597199564826883513479803238296357376622859556664971362833419456329867936047652403071467907071596558308862475125435242595939225488130755486071916884310003245225690315635927473013244486166406468518953227858643607660106853353349665327984201381547636257745472463276410769056824965672337352235693389780845474244903388212035266438435464415324496651474676648387503620144803232436526200787919792270080673754561397307194828035527582504964580581871607605724044136840284924699549768858194274484414097137246091558570716339300317762586919777307961189399222139095508587232622964029777814405239442640582572129161345350373203578084297555577326458089940154431190949747852279204398729305020198355072461511306220994889261309383647588514969376751930942509122408096653377049965438071934760597042754143727703326071947219281302743507619985256012320807827319084163080364783093082498073574333791615949584483299408774258941971364058860001643783835758680618898838590676140468044217230100418061537074060374886360418463724170832032730494836618036554911686483129757473261134620753377988445510660093170901277424971471959031403654187196559723736227634763090323927959618883317056093775427708957982904870593057313535409323267360527940274321443913682851745102520318692665632827366546490251576606898807266466122514185222195815045251276249711008760327640674908617487457589063648847065083745317416203903940940821831716670274698439825919306090949710124792273947362438360779011364802929899520175912146518533292444963132148148752401198216510734954052928457546080561165852759233421913912939208929557244775781453916955564030668559772496873688305266453179737181174470303118785049648345863272528883041143620278016043734542952893675556179396704520590052189812762796872948446325033485161588864207143965510895534310466774649847370121666851356063486967171656352614384770572491988079269705389090508161513613600971709805753675212982449423395154323827321709822630554908888332269495088815471364879243931151940300539975468137582496324614439638988876791848515741865810253082686363015641245235002325390749398424249042458529526523539147504820860361018235840396590259446273401952688823345002453096360971162102555956043665335561931898567762654154395583546300012075242790828271843752302346702125816749570573993054056468345285882517193761273252389781353419206487438698552363995031368522241948399240377338756477224716418498420805754511850034636675433538337547514084232717503834277598306488562206607213784411426868009692595256171043995935758961384915668274308966473461621904296098173885405478075934081485982919522589191559540450307650989018785857649288953243774997145256635946554178679155554562937740254555757122284600669449718422015797260958200855115730289061007708592563259169343618640348143591803542845870893302101968792292337918251973794294377661784976929572631895819011157293757562605489203185130915152595188191512403507365283436955651607305969784619443232730476987243680140375026257701846432506056015860942048895203564494295021723651725406853592959668850666960861471269263510106194089586293912606500456743515465195923006428068226184987095964519165151614413308000481476951309783033788819608260235856498073000658843216408582058610911797661855247116395612835322956272124137299637914136365903693586785301839017203261100999377971162685978610044519832200594920739490056495948796363838056385400330037523402778282272569850349882255279853145768683782198383861086639661904211377923943619011685973001938249144301901185933269853161572500528990113180815907122705302561376055068203534400328035017435218425881025032443981169171654279842573373839753620237553233207577451215680882792309794082739518979224500792971084136257321407155675039543715959792659883157829251357051509942987847764360639295111358841260847830920162466940279918191977670889113823390543181262994999333038420123090767423527882922440954661551408990143292951698544873243932644816775097269860891649316513467623673749459040850468966749937902288804002238010420410903108475087916894239155305608195863771347095793457190854137895638971068173770803764947030551151839296799501711609171351552019102207127754302601935109564467425216491947138342152124655749043671930787017455239691697608699640976750561907295818712952496537336518328902542717089676445960714539213726696804107991205591898552151831206790769606758379910727799357846064013054320066707932815724527533399707892865559495922466948290912063085194181864442733035834185962135729116822878669969090242445353771366226723641369807425624946815518022918350562048626272686032414691151850989977003717213961316100053298036076483842193877375950150689809964025169265151323666718765291771452203195772005201003438207658829359656999421730470549633010477434061645340277082453667937519316480309762373831765361852926165667533969067841461009295692045738232028107222216020529410542294204973282930328073109491321144022454124451797885240768899152352526120490120603655559351075250603870073785291206514860579886358597974155358511249889971918790057252098071254743910745685215324357475064338963080401914756724947799636109673274811599969585932864952285860406032424585968761788030925897123216065634503256414178674010212166587183519109838050657903994965837975112164226696226752495892705105727113837040699346609169888512495020032026260592592178797939312754745780839479448150236384890160277654899068480790087877537984830247627718890408512728109790604278113520359088213691194636316298966279618338920209329124286836804530565270747276397229086247844353758138574393848694460202939296848003684162536739772250337257220839500915448629615006247794241738094619447005651503799648712654609816780569220014497804163859664674558141912339303739142887152345940509038462900941852116673193845386425475311044474513473832428167016051241561661978435638374766475095723006935468480326226862868836946247431291440866387329593721582424152502576877405154089846175779449207391219383425091985553871180219710752879663885926388115676788926538043575713100665063717890515148641526574467717594451166151954943848187972350374799519087427892042995673611620758800606719417941087626495821588671827120860774085662951027423065964754987580739162343757056477735361253029684148956530616584091693086780765898203078052059793296603422999817473780990334370735137438948358257327868501011889590354944005629399858768170657552120064723098541766930544835417544957272267680203348152809612270395920123128003492950303696776505111529750363748695468564943936855620663585822465115327186889480590657031798965019083155577295588787190793483117081522909671460076762234578375653273188007229849032104152461331058426897429979437834805366531044031770472628778983042791821019943125056101632999663703124577524441972689331657192704165543890265985655826076560866534503711667828641411047392588853458723444286023633387949578170308237503841575117228593042380218734571845056341838191053674050352371645074856902984079134806533168969831698838215291398043606198119435479481319169896501029647704816019509192705186603082472219901095714482662255904643531782684125633027303325341924842873978702766820430541629652079851808831596807281040628193311878945911322911740916920079617904931350764370803559268834449234520605790004125117364621455560697873278844796754863898151900198100112155320609335029062780702741991752436980959357798190404651020457634811105902847268169369644022878044737205814402778468724804537554332784772358098845470480254972425452638687489769357134456727125804783212945694790672314567155459034696012837536579042671682005875703638268569470177494651103864962980273597480504241849811469957772475636219240078293390885451301235320267064653566742168029544022286571968484258372872036593310734410570955871606638010219313756633961267059524601516627042770904792967222863079233502316484921026192128627101577961013715306400107271742951427079260074493831842349283807810400288077034462321219719810351086334381153221580758879392894455246127619634162343569398220568885630011499226263571939890950683152914940695957002997100334733786581311961780130401484038941017962031088141404554099238152892539150815460507618709365326338610520797320564808754607106236306553018780597792846931988786076042996849260085615745161454085730727572920011868829693643056470510392701314885904386364474698130065755454804851099833826832223530431714991984719892170184280658250825530097084534153070064684792374111087591263843185750763557677067508074072306690180045999749561917984233278911754842276369581198049616621836563927219687292966796857924230953994305298513875059312094030686543764345535398360440031289202640191157155142010792023749245942654552447743216571402605598255468693693914566496939516817414176284293994834006848061612870721171394739443266169426012224505141922669387300757744012940805908970627028404271089109816084601479335917107827486866271896783643640562954787305884250112535609982089705022275065882563371829858428326466766883685432224149765503158676719376904597894796921152797957496735263851910327757382121392032291780457471411160679225683376922652110442625061634063964710865157060446966190422385736342150249642084433274868115762570872246909147220824520832501890754489736220511779242090131684148657080190740591283881488007781568203751705816011549133867245765985807236123495233800489559790239613476250238521309835052383031101178771412504104466554721121301075591862550870107674189743612541098681111626037943005282061850753975589419824104954132640407261662081609082544329928700670443361145262369616182728381013206023008978302630273628868386427210899399482665520932763748882036185007330312513629037593599789277817002777046558046664559547472580342195851292296704711697729547820863496178209450265242394364343224511825643822651171180120782756252230489427479027982964345069204340235401974842165392875720323415890478048459262751552618749144110872472228815075105514278107665049279187086314133555117314148940612317106065567542319564972575932233527834562798833027967355177076297807860118452007450183939538849283682600460507679112846784992264907012320196979233735768170872251837939987783866009738298543368417089689247033051633547014977062458843623772770241164686407640133036951307002701386418417772732748355173855638671781935444120030408298393632701985176412444285749341957101939933145360603170111034454165039824752542934723419072841992040789740712365262666469012963127835098454131564543355876382598990069034998046767715738699771978521347490709387683332666893203807597585075915515947523185163960398536294005606774780460881359761429058972976670205630309077812366318844307368270080287257225888528376427199682069906370232989991468794020362112542349395973024719892222928723353053471924164724690993872108817416330634103240009554095308544500846184737760451220291002741465974934808416105479498498840664760944610334282795515214920960699913111575321785326988120227811685309711286300521169489298327202741750307260774696335755253930680996553226701631814200277377337054407333477846338643088192591012392117527751275851279436832051747143012762086663954394479002274183319740011092526332944611100244122609549409570384080875424615482026816047258368046974976353291089619406437482838014538370018767017871769189480854503726790971524149841201832640863759015556885964277136291355828312992567988115271168698480109583314760504397232649443031154993777250365530218757733244608836535073876931230098157687414505907657007892099624529776990238745298048513861326864421550145442109960088260437402565990449045028168762459630750378527840870778244238219716872969786075813454294262936998489457897705730498778731769464355965643065786666268578018238866664622206617092142635685409623286926029130248453307156096569909223734784153982460636207904716823301744712137699806596229443030506698873804979402455922067378305056747306805444465492703782574188913285730225656968358641053246531366920439178170953136908706328026842214338910948427238645412600639095690029538120414014127592618298353649236666735295104099293288603550307304217560670664993097193001061469550747637860242189035432226325774571934959435195936141517088506989446526814003082583340510953723485618400870473899051964558096643830722484607042359589399866501017102704280527964599417749593091755228813326059537268029059254319363685453585267738656760225764433215254675436634213360612218351441008013150101872508148424485709358077452710044957756194229274707486338908930377713672425688819910977915529112467190010084755199859475326531130707023423455241727109823848180345225109939106507411548889381357767333857209545334509089762467774043875798469844968523580921811973460697798074854065275180722615981454086863488230218302163744187017265192308531741150138060088667772297844331989408141414527741281294969024969450761541027166983268921564172556122771781162758407122539224625408466837768559884713033399939893712326260532803332095628435145175745038740398472920429781581050070074669179032532764471114338476170420410260468760602175376837954795391737772887168972842655246184337431597115793152572163860796474044831621394382969039561380242168243632715935627527021286237933096479695321563297013921287090699219726813125926820439005979358872578854641342330823786222356175589410267343331952477844926559594687871728615176419510667057433528157868585612503575034556975189639448495634610493098377378719622021161295520131768911584142214177319769062919390273526168038214448792485108629246424869660809233393740944736375780912004740721420699548914455104792563248031653095157196393934871412189799971801348008763823652880095925897825354835354935859406180053093464570527836457859761913431021913135128747010923357094559773986015494366794110114995847258126530125853936682185540588658710571406839060317728903707551439071673030480361249165103238198867179087690244697937447388355455440160221246723547777952065453899064648137983759371594990295298011877787546395148830197111712360025134996570587722242373796805950700608892456287009087792036828596637577502332441009301348963476247240093747242899841405667766295221958567028081779789989575521164640406102915145753337518709562051776370324665224805444841619603210756039269188640556613971063981125697319168902860680439222133845916979602291094223055467459175192073711247907038494946919858526966524885502438720637284413224606457099696571531498823978342232041152644561054072736678050761037494064536337727446449656116111313202490596241489533991268492086994212797041332995230218762411328741617984829535740985142389727663388342596738251840338946395638825319180637632716037083868972177916572866171147262359379313653003911992519263051928260312702263877464298859286308482406243940150190029260645943318907150131689572336301047197858118380676249741429178753344756889529472037546333273497121812287092442100952034573353736773020401970983571893962376528935526181570998845606569522753909248918426840901785907599816538619701257874849043225445295545018814493005073999723138011310541124511439816107459348762104260820168163617636302245431802017826131456204419539958051067402943264388432478008248948161103339133698566371679597417265604285858686588322773081887964427649326206169830345022769666327487427339912351299877104260458747704669367428295331430856138818691646989107319127021227538219073641311394223519279933298186490016109737850546514882293346659197124205528679490973467977337071311892564627480596642438906576123307791754861510593908442290072594369237425018059937189867604970728721692593935008855329359614141487844164038535936128937057484156691877099219026944992059286280618228383427096093947013473616137837582791383308140003719217500657898854483018625728858045199490822006060745810023242093886650455706557198787057801328610673268012979386963402869493822053774410780086550049814007917939236931901268391438136101200117291688269146410498299903023360300402950668406731168943383124904036549485890803482670238400838986991828567535598716563213626085492595307601371036377203498228815979346253737960167007934656247984383188342369566165485893857462001531581751839335380653511354063483159756185237697099458470342305219159225902915327352205532270956506778602593730557356315437770784036032619886981166327173114556326630796907701839824575299171520009801039740679807399483998818967083930305659380447049166870618239255708648421929759108087367734153851789636530205814622451282003968149853298588364785720668707695445177497386513067588614943822452345209064376327719253388578138902307740025387843036638818451559633206968754131393379247408729471096446538360333877991807690814170749457364509507432552063200599240247574091986735428123466892995762824546829872669049540768841193177719994524327135417605411888456613265696091282097922606007613217787215515626959460079206139984681858230872072103814294868450485228226860022267824285429601132479971474195591102815948517470733402368145535696281760925761817581892144630748149626002861133009103592182153161521478690193067623996487417642448109195380218236778493074730723154334168235189093724454069409053288942723662466265298558782541339086104866750518092151275222524197783175629828662262483349674104553028368504917564392305927349771432853814614158679489516938727897800177418532725613942818024397196811800733974255488300537017644548874065248724703585318664298575495007173446962400341984135763007262696406435547977378331930908304608544626842450283874144465011283263632008881946106611012828534524617986042717303359075022860355573474061383167970322157974574557870244791348002936644912833021234460531859840255267824720006165594721666374619750665551620619968001254625310398935398886111481128901642327554300211074320910903026587493679142952862823883427122875115452782017923427612151973907974407563982309717563789139367697424801509107970052777820971509638081861997121611844083695314782072148811042128029237615134814718084594231510903962910474610415722599214916358136305367409245722707773940941088760593859094030341886077530543761680128153690313663702341309687705494861667128858106629134073793534342431788776181789920585178065404449462878608544541978715784463114222545934701541920790422049379949209729465955102457065710542826750515639673265725303602948144366468352011673905382845891686111688132341900557558470196293911266133691366381049376519193209624680275700968584398052720102389395339715638470769858720741505451779843597010180619044230397301318159298580213827124821028322619957251144560623114526943966177984959437315946985658373646679418522066216719533689410332536067084386908362678873429762232688271788183888341953035098241313341149856824183122507599342604149817199564280823914323190717312518839797461032692024406912489297483380682177592479658803847386762259274477464605343384678901606240427478544018047306972532278313850323826041862272504945845690103130300705221163062030031329738368836216679082251311889483414132870136556913675666099980938864765897838509926967894275722351097324365931922202633868050183753166720616715339670510348938686324030577182854666495254568185271053433815038883961350496182700603841635278365142065643394662582508207949167344260806951485988723886474378519990814037699646266404200838015616586016440547317780971884321576267955403579963215163908478627830975530099925564322386252497167422353359813295613281110746918070899877243687494925505171435757440274777392418404976419412377348143830289874774268749804029152380686651336669196513430610192489352277996662276535640948283650395932810106491690736682381771107890837083936608634974405948811689957760449647835781093429289210251551774278916959891876264112021748436470887318522960787253943163731563345521624269213770030425173257666270633721773886925932651641349991619112798129166297000951362219623101214466818996613327631296988205709281498834250617603324647028664826290035394813357625339027797513900466318782689711870474511760134154309144085774767780744718256493745077342988417637366326706207014571942538115096805576085468867323928431723356540851837805908096802434178565672495079817337134637910063975913762094606357228077684614292320676575190881763468333390668465220671357320215841002123580021669580081591289034767585555119473693323912268908802138482096706725595782804074098453240547492937050720839174817625495770280248848691121128150789570254877392914587398820086370158979110432645849553757762560968641692903742442331309657186516469315495189819314463883424799832328042556847264105886597563179534707185758706535732989894135300088565623768214587683030086316579141334176368537577314649838830733118012301138537932475125398494985167906221437735328212710515817163940833405690491021278661003981439200120802704818793265176962158434390548058002137498461509782777553423700020928042202308275649961700451085720253013806533208679293202725733392933625642685002082442371754064568197179789557263468842961389858125283180841252259096483153017645129874599042574726978601459208411614439626721631111964959341611319410591254007657708498551391484939796425207152073989969770140818161856738134326680813034392418391650709455815910549835293722153189232781140889362523950966047092812087176248565090635046982116417272507751547820290797022022470017025090102960989278568045122809006817830668928182144084844745637497841790593931619630302742027819201440272556273075112077350637703643139024054164149462464341097474058577865163878824962258692763768163933169615384011729636271581272216359525054099077342652802140338156850442130177605326551484538856084511558011007866396758424769646228617765578443113312523103338736704299280544355355873917762581982724487574790156660203806671411018598408320862327696113147111306640815463306713219927174319900461319564544888101983877828202350536873625131006103931633437919989881279678781397286296066920751043969880525220234987083462979595145799988968377331793898281006530481534202657471929653179675876355245524676929352353185197729335563449594548030029034710408216765790303216618220450443359539198869745257010537261810888094690620686711175206541744015617472176069020558072658706306348313866579826358266329500356044031953681701817242777809952267739707592229080174832923930072763285499035178937311115312511908418458405820165341806621928768680663161698402175672722224867823528957520633242772443329163365899140114653195317194720553433616132130009741578665992638249044673446978948585821202913547406557376318985943108060682872616097786200644514956613519327253633520337129327631843375761519212686430150192851424907268558624669645313819192729364297034984086597598338314297990663023286649014428075743677514733018203928866644979744167675387950696905940251170112968683851955346340856319119230127924373662413623828356417103085287609920209488416372144826079339163144292358643364906795987725369137130435835318875186617203436014387665034964206114625781428190165554829577480441021250595464119511150944731246341677774318227442589016004258073468107476106885970954610696102176011224265599862124205167989967155894500812985198397911334203313189458974510686705242880114884816149554769720546423465016678572716257169591046498439018073546949216511276368989085456615882252601053583421377839464904669163234158953290311194118856844484136497559853642226051865766092956509597538319780282621931232602767006556037658882498834162941141935370343179768097368437883708330067615319327362073006188256751967618360227910724573137449192078082331805714143054860603252306373672614689411362406373954226118085266390211411216308937008983523907994769832346738843144130088900955422835481208960728589754725380968423372690473746308765605908361646919063961451731750321686168483131471168709309210680492839699672555119741237886445492491790976023322071987950746245068485806052181976900174579592776531025523032543976348503334667044633134948539884595106925509703135903912544440429887603996744415407925571747663151987305004042738710282609604052404757895434791315512569957649986743493158592921942037847452180138744394161374684684753897502978440605000730018129793832335850381743509756395102224528293356454455579248443292902736449461166505245876217888356241760898459744724740465901930817231485866199153318271388696704914951763540802243025093392895369136773708819629362004258153840013481677686582860421531651900866819815753236167416007968231921186225279031256400560846123707244612741689192120323449947451478435422255427892996065951784714314470089127145739963751424097165763589279821697841351295059730979244134647534030727779053805243365638179001377266949456947499764978100127514864671829675038094849907048579678265200249341921015136447182335665677958832570368059667018649098096554262159754742757128502133153995412754819368859469193658854583822262146674672537726786140643624692218484217534179068768780850973998218678544978503030779954339277052228550593696680565998355997216270767406906210475399365330536016447217745730581573478793328672781312299817102986152160835600107609119142348289198271544680700771649768291150026978705579042629551876490668101845370139413565242454795439124700395092681559507480553898561144659710700370580875138455944353459589552302569885755393381996695870698238198957488352160302945333741850320710577556965025868634915274456439170834527599894443458593288084471474390844198845745825509845575055744159545752257656034404060317338678424757192369525319427640815676678609852447930389644297431852854921854427599217731089857035248251849401842320518421586100375581899698771428958821107648707508540180029096834474748899140530743613702309152463358380581530534483859781942562382959324871224873259538787926058667633876158344757231246925071761322125913075014350392203285934642861120033727043058174139673502631351986813325220401959286176433570928738496988857125770137848093338255336484662271247479955419490323681015840897290297702870691226901870439564028139870652539534368148774054971308888458037787275307378650813329056955414320383712242335339788800512964771574216886345358819811105212271961659262995417369790036119413088843562213512946852156934982249714268344620422744120105616830258533643223540865152886660994644694731925064173059900409620470158664404209551847534233034090078759366208360458262213677863898648780278389281239974206478045957105188546771354330297301584043628949472501647714497014572222789432521614013503410247840174323402278337826458650034089533166372197092104021389492670106548606126326563291123283801087121501739350166721569731534870236584398171972181954487569743172976765171223233720274719335806680241425475447894582987824841176473913695113515370862310959451826821944220289972451076273493479064693864397692845983411074781188243989110499602417573374901910719159321926253111579215753717521948629132679733589247950064273719585499182273935986857987702920073148667169314448320925339574723214029241119559342675476364038143952751794793376152924957998925207828778731107226957441583703567077492165391333384592954649074190407761669096783193299307795795549524741602133719886093226787761571110341802857424020040400619196546022752165180527423525148885523996052705748530872164866078887089756975409144004892655121969782989014249795907324091512797464594199444778403294852780073448453004646815186304303125088321886742241835895425504532441347135993147282397106556661456616395014136507592023289687574119590395819454822519388344212525089703267699665871301628089527731549917058812424508601532384973448972213168062958119590540147745733727709308310117849533749004141723707002751186958389147725724518462069953103534828517344496269178224337368278596555190581489476553303362356251770648715186825776013267172600194935206973846259521165373747364544760527852345221428371780196513937389310856373062165537221794136897162086432709071616818952696802004353761793041445299438980642982368283358897517164447366754791574975991015058378692633288834862443975135955823205360714502153249264552624603948144103057134327363498418639916446226183881114645341448535805886435375715176037987390954966185614793566601978056042102041621558694502325608152671213644701410570651438002441884646560315446396987336805265443973313789723754516511632719031076857673932281389805252083186419867349613560531821195559856312116885320750564282964303707518421168528716402141536205398194785512719607800837162544464899251962876623279015495660921747050058894324075242795442549675341559746468639804446643502237531341990987757571578558618123817122090533432327667337983931936607727503929770192490250989665058471076279218767824484286279619124925330093893188239862691182030997269091891811402165538627508347051101237899051883571683687182513188472084160819363831232333337231950038842881809002480179112819656073436190735290767996737562498701313477526453126022420270268814188327290776041143872030553817350722763033702014367631809066854608911420556655006322868556090798792349588597452063932877570540421981327589764049599690395512694688046907238861243137169982531458753793471304963392340843546690111976982388279335767142103068386438260866943481802886049773455256594873233142318326302314133832508770526667050229732973436315725507003245356192609476965849778309481474635525713873952481254281728102314098779455434913294002145568416644234680893226184187721799665374876858095126876472378819580818287051402087713331164987575747439289699034410468507265488355695742539103319609794019375767617235284988693806378622433302986206314972635014978076659890468602635692451298745434721150710598141725809727286173553335979124695621753680237435440790267896274001360741215675766004653307732227700099570864546201357424384648088919464088786612025792544879751124712974580103674986438408765593330157403141954303394140231609200590201779322575410510516710496501446734592157646123438546379180001535228323810091981265950588223713938252824517515083343983539738313658604061599292897812415960026108822632928153180459305260520312499469916018503240838742061494921557151888044214010097928197240816757247737914355954242419294914051525820647795312806682716959977647445292575200233711955434531291810927060007204544492624323319053297625986343076944379257064726692157715944745851694406533034718553256954228362573343885911765694739777331900856073941416322136153025109435810042817901561779776822668313829374500054473461564908412760257415075058578440876274957521243182008135348182733428762127614977732213428075482591886610436726557847572504127530243504521813894982405283869869834181943015837246418002410622928323821622850965978471387824736503861197973820116454783429990693336761944813803950363019151579700222794727184774841979331598668530548197017120345936789827841395568721526350657403953529433284440802624158285277764373727553923625312567012050994535440820459642788183169376373382922172436193535801920553191625890478137066936593230702312901837459697991469777909529052780564488578761097149432638422933864373859422885920096435505761279161257086946911477583159080970125703141342719470484372297006327534690640236134443788026839289762138636095453711882949467435601100750514258560624132399519832947397940994327827658042707520743594230100017751787755204891466704873584382527765041961809998267300841740913274154952260844520045083351263590203572300553395100560458993094057568726163148520365247742503832178026655956318890504980250834481987267910733583106220200846199013544755961809476048314628525863551758399106953452317128643707195351924463686756063282963171439906412638815628250026835024739402332233262221468110256324280762311209605165889155850669702891785356115836957970834617055387136363158532649658737073896617981403095311749363855367867024396922316971994592245238912179747090577189653882546360478056726809408024405171900202444411835217201730505117584852938643764407782975467945876457249502450341573338445726402895357476007141688785042775490534668133312881752687496140262827956139669141708823658913334608064807345603363366669811421213656113888883184344963498861440282650107913902353458635188329208687732244738663925583444695943013904535493428828097400455601779420322719889204133004050427700798481998337406026699668208720975636769331146213233650192400002112726129697255306475145485950556700927996270020000237820183938923087903979970088451314213029569171354738891504129092968602503790746320009726248126520439748631762503407998723707700251896472581665501409449951542427231653810957151131813516945029493124856740451963957752227982976082587986980236482906501825420945529699120224023313475974364347016495411939339730840349824907583924109005463421444617203195738670737461782515893409027259723767574361756374598189258144566718954943536702421974326853014089635159110730545201008241186361821248014903165182832180852314671172144269812266464203594769948951979655662992746622130846456823712051440379881693939983070436387383189275106516198035458352713831552316165150551734340867865950924942375688985523772735760918174817339587626240639397544019944958283175097918232049444732298400773889262256611931461737649531835507086492464783689273401562617493406000987819083047185105501468928971827650770665985778071936645456388387396449212565964099056243546871841933637782254997583367793175202458237464098106946143981192365637841475075449639338398215607593791918234789231354761928525514358297185728838489483393231783895629193729004617329622997896802620632555336753364256335599262108579378469713357341751648728717161183635226766452604472741234513828499066272978342627614144535625808118579124209380019778528397008214716601641110397078467016395633683219459707296871785305209587832427129565953587695749428708730790465252366847433349421288974439755192175206096275830587146769083945078754619960736342675373900297484675214607435481667440358961971379232137242328917842105390980502953178228849921696950895456097151400306047962523221663548018572927256911143145753077252557127641748591331588261014213115718135442998143697508055326522532842608498523195338453032218157948020051495952056061702922881032675122544161576815824791186770519361940185319786018994424501527418089161547923635158189350451706079895547450455487418234614828696683469119974295580357891896754625281156826531736099790363032952842981017888496002802321392301069740303145682695840636877771357321080194753947690312224057768706545070334248179328642669925859258544326201090315076093630941020988998547433338644026050095100529832090192049342010502047881309607325114895674353526354864620934494463202352464305354169464783885968080062587564870516188039074762702988000722124255460290130399410619871298455523559749063762031438931974051707947921945162632650208462105848484654712207250409301310904889781788972193192329360936340121188157961038012112506322265709022564829886202532096333021778084200326912587962900450268149205149063869937014913970554778701465306401686005444418979560745279971793312631518438710875374721168342102315815166845399303674582554202879115664643638119988911417179439428819092201289599836083262989350382152247238914902965834492456827009508306275285263001019655689937742602147611626445414049474829183702029611543809080282106154379827408483117627027471007656670762575353831363573227591795742162003176157443725555323111835631104245834275829781827762463279011838804709022644133768096023047357781728587834466051386442408173668751189929841783011613422148809237328525752811389316488105435547354344935324858619180773400556022888082160972538943304400012617906002116360657146613606127970884904342630672936192106474142790378786566397571669892286465416985115188680112892405380149916170272208192966190650888562669855336765723801615069378458704096631729185261545072414365061387031743270909391346701778552974959694404584365099592180065371451132337584655107369381097921450465559050563309184620445622762784788125445563863561506201954715184705102518422272032200563467081690385663853899916543652774283748714329803918628841239773715657373332469671652845125576183185985650159445934678211527251974083482738590636833316781965772337195135986811992591555662749943663296177099809732294212875964619445781952107027649812500183278201305567212763925775212935820396922255723351263175925965997892034412543525616704030690181625160857711595522216191402356891907523191038625602744656727168207706996166888928492739796838031752665896515482702397431888515480372265301971414129530200394598977961218459055983052155817668662908964019137211961381820060506115330738032005775166307984004565529346514191899546068025448835430974366318063663855778901065860408848770863854284138071637215103851912969301288177530647538499773579630718010694521465582093632441530940101064061898337377442633229998612223095411178609934727809900648430866050641787031468280201817935818465557996670741706422189654413544289323776073543209540287869322827576811228622103923704100398057908838598734059577473175438922205822467086717240602303933151941305184060943553041446112836211249603621833619033149329396944606875137113721912003823483584288266971382482879734387734549733981644473178254933236588259798703670180691791476683265432096772954205747670879819348246414653525858072570667311013024977285007431591509280926537174943299530916197581057708285978616991474827166037141011853808098398560011831560822960467474436617151283397997239174528127525838771845420575157900850754480386314027973828553094426857730060659267317702264685937616976081697624856172944495882992486138962986749126245436057901624818804422094528181798110729474197784805475302108447167202788356452670364509751675391151403857725185782482718407769071369936268291124108812914897411408096669274817099758812365540031591440461652504167786498141756482037988650609085095550265808832688046112104351431278715021520805871089380293128692719971706730858101395101411460632413882774295029309763795632745048851271807729018586376584124879986089153511726221163733090505206354713345777455069776263745446386683845505437819387955156215475791252923145969080340266964973529140663573619306536813911213372828973476660500426456627618611023157618500892738491220722109037050160346154831371660220845535707970590227751799826610952289883099481962644745226036282310049879012637396449264043086618180246520002537646040340881800007649267610611097059303420362103877061635175879399442149680515401658153067413110440583873894551823061090439958564460102926518387702707336402712326733860860711851293000062776975531922474778773899153783856670836711683373101602872572707673886475455745112634689186278417774778361758836777583186337817151682776012750550398004270765058827374358376142172238661107561663072054938646180961107090836227998065103031332000209628897764225768269645287701802415030215981517564549585673995417727353035860184077506255281098620018593873327390691041409776204558841099896546910979051912659705174805520587169756012778203445969735313859282264513648236786214337513899774741658804602436807289529420686438437596250781607525755911524997854779433436814285967323680301752747882733823111667412988319404540405158041413337964251953338339790208966474633786061186516495970594070494064199187302328110865722883852333492216764231564199185715663554914303711214124359033069177547315181579021965388343471429549419113908733961104230689727447097610747669804050649249817156096171315098130394648960943495550982379912272345096116440005147503854324940116807683254848214812496795534635285571199337228199286761535277923540512829008415365770525778162823990675388333755276556813780673677146812780795033268843949305072427142295979189649956694389597243738463685801646970838821635142083807825407900656866613880862077270800792754095943934085898077718928738836508495125948813346705892078762945324940135577289569854267160158065648410716187060094657368665498286145166808273646287182887346959870067638992048637747138317644241806510632573027058106305800817997218742298413538765746460023584537499334945700900318885303004260539085265796124725171239961064299818524277983328625335307698280754923189626935198093153805540255374171573991370191880802729452575722318576678585377639976250382261569870292391378793549632369813248043084280070958942480172340233464537731522216314689557813870379765799106833034701305888769358486290692708905304948347887594597829812734524885798184025668646360399439408892926038038793695757602051912868208275288967850513442065108472164720540670611847438740992029824547837127683202016841149496759255250502908975742031375093497409117854029044477739685418947783417195769643892504399251661782661692151169502400137507910427781550490266980052486869235149464978959823254314219323841024622694052034095080977921538051592015766661927366688941328623937820775658985858931015390047548300333223543925335951202622345848138388975768050727066624310018339286923642958963796670554652101186387242860323794357167016600448348921408730333222614853234683896986888018439483489611428472939853880503661326539597770163279672558932722382894978682992321788627283845611981266301706238347400613607145831772096725356364671339617574825110974887843057556631880722048790900335660551908605631760804604522406454651216445932141016381838007116904579298016538114182850588019909167825323473161195972766751004241445255802413066170557798252221095010225013436853054020503783876223575399601059570749534198062114809596923154771883285778605588858650573109453454659503127642438816776127617919760591461883788068979785324378354822201196352452930239814014004769825199176684519771050991892548283895978569773822327211436930411343613475439890458221597406699729535443622395917334614413495209687498175375330911353867355753221164246729933097442205945155414188873963122475696594925050108436411248027995855263372464175138161704438187752653330902198687745341791403478254888228109715311448875767001463596719077735341659253137367101917645811507244264020167342142356746676994080213799388256293918565660693993992166247916051498528537792963199899437850880727212467414435540725333147870148429010353548606107718240873277677498626022550080617288904220358793826822881621361538363681689152921747214546311314983691710755011450194901728078121460656851196756628616769336284145111308590307994560030579939728332473718611366114957458725367492211731806592157078550340593667236820934789436690081445488957879836668640720284753446659382257486029619356956105978365610293186797445972819581254050240014484544876438658784501163675938312955876478319329445016986672249913796767989968632794996980330705766586684689590181266722451226980667371864104956180251642255686409495449589173384584944387322695918322651686824697580327441728680588444314301298199563233172219247908154820231443644485148905345555759305173982313882846009382375684389603478434107773192852668570010449569913015753091992566788359781263226641461446907739804558121981651619613838562229773909514520329987597890202346407326569912591146598779224314537932783472281474062246102510565620944198693512218321543496604111397742815937018717540116746715227199294502702110087170370966060035238853386386876173017623891251938102245142755453940075448375412417991695415522136829705493917944123415038943706681600615701070170979119377155050063870095275217847682466283601073418590093917411736946432973041794562637009139304543815237697316669412368709886496476593745023378461623335965409993589045982003509379965725867695028003649132080812447306777135243826257259425985443521791117918687514723646328943014028458749909863741546247017390659891868919390566006086092708422076155057565195856052917774866841579826442845654053700623408019090985044305582181927827745989505878025015632427934762523824122182833397630132278926030882630826674680960917892644291425808765709837200849463391704225075031164730761843033451132741022725423367268384678328682147483544081769715020706531636154288882724420801530520021003397257302591065985518043845001109084159272042472793269220484115389821021873588873663073127895279954980600257202534228323642958846852447060529629951869646211473360847347786297147734415770100679260713454165955216801584350757173107437571432823869851415405034366817989858895760800088531277196970796560716195912260361359775535479434504232855302320926113099520594365696115182591604121148937082016520324984301232232566243163292463535455833161748466382967236021238413799521238114574946517216506571543456024098571391207236279339956566377927491049858575470283682296902206895301272807750186945554484866853221610827254581259012395440776561981888861012017697981578525302078175810619151419334516590996371430528656937003189147767221553983560604531494567541787479532314333090456104191282298199718833104377260754483873642959768535260143006309756005395010984816277448471650575009930630635706846352952621915089764156749894597399358344257434781327249034883215222383252105769408446417566739292887486203355728578490435510375623389010421677236031149243937119623797160234622289900645125719471521642345932678739648170735619372489856913920876486828966207335252324811233168097919755706054544982516083109584517676613786119232492060548923541801976243042194583068971607198827255772389964676682419615485246020411186951111804573091784613839899152876915301853073749118267174379706639993117823348959472780005730184801883630152068312286252999622153035672675387668157794067360609168549824701779282075156621449889120169968696451160749513253446642290060260603857561286044802039567452989431620938297115548842851968843990765036655103484186381431035580369278137974224477195409231905164796537287530718028876588127027622141176215272047573040044521170608561429248550426218745188857444289509314372632703971786613628724479640490774788605108279845982236017210396899928759234017048043955222925932167662330759026576613529926457238377767678404622195771631551077357515689305171694313897674702403656508875829506772578259334460490253462161830550534688283297716640295431487068329698760275377739573875596123660911181005018087700613306080196599336019391151039862120138020731811773164451499710137045753469354020944179387198444107666664834799765962513229540430811468669671831643904737298543933960029748961283248544933325589055308699909788026961232479127870781975482629565429354242899872921941013286528001961566904398899088647454041336369517880915318831781514493882612292018442232582403931920327185496802431582253744737947217425843353697003091553912891387054020391474039418261686825957312734518230609067976485065177786913821042108346086798867495715974526791584877514413847364196404570939163650994351152983316107556506256386840198746529598794652564605985639683713202104039291832199265756238118020263445164356743888524809987135530082675119561041136194024139144639499848226145279355996074849289484972919596533602223225217528038414601222996198084169779485160206506686894180607779898363717829803130281060666493214673894452694229579597170118379934149180746272089749387631183161588963359135966983203125632652496886216831468369506025420528739001311051556509924408785716988122441780292068124896652875717502124131286242926695211200456917557417405639934603752378480728295323177187535649849082996708260414779857459865163218367548956596330071516666058190937341644341073064072712039627601551837620317258712256083788368573303682853220388299183887148700654468308054174454444273255513848713136758584721658313574401486963409084755629470821467068171290106563382421942012348939283684593586831786208479349701189018264053827689861826603007710344886364075079515993628352168211285731901585511276616430626939094411683013545836535765036512874450905530804426920570226316281793748662413601526199145642881918770260925476611234306120886180570092308376199338841869998826233135288206991966324863153891895307795953897671120757262404355197812061196316307297320731661104210020159052769785839487880825660455736433810309681767022350827959222041068045554433673318272436529560826410578886315186626591401428191254623497040690055863183512091522812979188534098393871455932498387416018467249720514191221112953927331003038961661052757351200713591027729865327879266501422968380620352973419966808064534171764685234345702302939702571636903735046964023267343760032692417603982553442244942657760308587677821777516236178620140484821878322161130658728225823793537150670661692655516360616798809287297510582880583337699553494115962320914021319721647400223504053205357701260304642540514717010302735931604211780134618513777811231800877597049121161088041391597392239219112530311200088721136887031076929084133470015607253795827170537530297359325668264189606918822062063862865137474691601425642861567964501191671152881272832705208377366682470407525871199116805138222898539037884488436007911773188553016319053253715057503321605029830816909855475953035113193857127870328172891468751659566116648177704302974689312517186772444104233719911207131545758085831007971043457229628550862487718600107772402321926492149545223358032023759474606986475561681903890222716499774656900546682265001384670528404730581127069951520081350089509855732668204774286944916209007119462307865823250689281950980950769541462608389476241807477653991840840408712290578689783237075681470486766920110320773428456030689643690734405762414509822563609148058642023500325448604217034105759772930774369796136214387826071717970040718176791372048055796794766808531451936225362301354429971882716366220157719780318157406767747193375768910160147922692390536794049911301965556379690077002411732716565199843638798617323265413638609571480197051454852704617767091731603772544439550515490926745282523761239740058012128521531457352447925560446208544093204880076966688750273156006314453674404308607993770097008394509966904645855220634412119034522728629444019336501289464496614502369198473712937129656997517211059764548865286490643061509906539698509439997298741106972865934987092600626164356540475655960460626812964022420763590009350293597579070853680767436371939780396753416637336344064817975642342609264384045363913770396528176771319794735877965607487535072179390281924173898476407664433471823113184361615822794366870362476418927913609155553628189297498094843097216125336243348820544255291947104184551335510758292060527712948251186037945573352578461059758563451314887452671402860401628343199119651463416085713941397023123070666863757904219504459177726137210894657082098916519503961887183170742361649684052226017596332210924325091373170884022647555365348319083777082646476676315240719882046543859997747402618353565371758657522791081209424638632898190133881086470502290101432759921514242800320419204247435669756175895297872548108506487839254020330679442575367264127974616917801407954381993849361459307241796198008229148212520114862871430793345029797331783828137727353881156420236144151654284229461348209918516472758914718290317642310214895466242129085396268151275835094976693242932411050174096173894594161438205808716730149543856643104036303164201263041071430231097170007795691555813581918840642643490611303188562600267939909155140197844508613911089877713693116467337521900488295292066279190928713405500357386160887804008035156557710159852810464610512906614928860513541733756325613737521863487267764218490479395078207239355977292783359069940594923184614691470518379386160594760625484388323789165586477108854781080451592649609032796842288316534249842189415666658047619719944674262545172157226924282620205603047785861614921329888019415205312982995595128456875370186774340679331405165657639628954754252011029289213325871838334566511164041995832754356137880155735825784907269672560805540426762971228551724246378055184148908253382327634149079210676658483902562187243523250603285496553315318659897270963653453698460825239398565250308525716259338003048204539196139357769387123306761983167410564879622307546754336750085929566080449355927163640738402826144008963443726504655236059498746841436546192834601879088431455973319777095939550780996954269066827741665694078257580245516205310077762276609005870408900608422508093981699325102315354209554805145758661084401755520850669327273490551041202115653267897346563378782207749380805583400468054357167967701051424328646930977079191134128468140355139038860417335002892569456519453174480264545975787846072344565566580363577473802495328344336688414985460869233535845679804005060194020933666390598930857433309487927051559216021588741373571341816359597882507108652136870644894950139142303560665488868540600241041221151834597367612422554231157115047717395940612449791845364291582520318286160341911287742748478735092448916803922574827894432211342005270447506071589075676428269405160383749721077459622707622732437719493401400526293572670198646039558918957771560227702907897545556177641223802443634204231933212615331302040506125955320934990897987502496009820324082801174973347432229481013689366755596976184951730482887143107016096182129691677458477194675361143699874129121755895624349587017423971360066892891428650642182017380751041991467543129398794950279057543716277602132553311257166698680740991910907820825972138865114362209434518026399322489708398102945830816473053839814586708663659280200408667996961203229040651958461375607937875666552863954145338029721553178770464153366624529632552813013334834271555189140032014407423570306304073595383750674557235961480944369782282090628685593999853908797824883610697232068221837410568105731841098147914823734639879875554951480468212446714561612399371679589825603956625990398466747834999558685444356729352783181335597259393015258435975836109264735811655994883918830251728661820666678229841745255790706932924481576627775654862297997571328052868685599881539335933610420788342766125887011534545535857710741689100510929100492883588448318701779323567973541235815626062581873472372447450235852590913377880471357963904394810817008072859308523862327681222742693602662414572771206579846109504918910162806347384991875965808272379081400104262754926511053304877005290953212061662655905478621798182188109919748983745431911231765955624333652964107367168282741092641410788215563971308933598646894737794517449400860451872679869936909438751187010506734772112196747799990594824823098726371269429405516236860875481304012557352277983001361666264058678118071368265807048414813253026364553932825756107712459421771462314253774246783087656348587561485595126384812782125555883004902409000784989932306741871039906584717421889466209563375596913762028911303072091761877573384280339600361290316518635501582351239365387458298905976837822713860494736466173664722422594565999608814157261693355040482687535791326452804353758582118482710510455662752629993112064428105100143345076983572938558401786880120384444872860314432502753552806726297573814985244299118480382658822078784527332766547088449848437243001465229189687386627013790884760932326351480186159799032038905828703279445500608953419603195130066032670007718176131989697535372444818611704632258518841936753121266571499028157233362167324560659711492569951877601838861845450145851956170678756679064628631650053688945275814018190729310294326675349395037364996765508876830367820174499495433110468694404780581592361726913311704601231550697983286886355895804710482028967663870823687941883843330842165683535284422251537268164206220704794373596597861268282925430819537023807884904461003128644936336363921719102106358593279944732590132270343152177845117120324530752636605198155829022602387950040232517800612008814373308843484448555046558853115254005576209133347129887111570824840962195021497067587656941634552346997721953588011139010424145928150040136073879116729409704556725846060465238853999880218012278874214186814117010207168393745175264863573079534587611527062499511321130124103624105179555413358840869701875351232785733633970086503482908735367414690764251003895747446874407986625360643229603604517740803974566935089586711436123270911628548865801558340691483758393145577521014714127607708332400892804514303483251006527166461472916111852939209009871561040326209350764538006753538617297783400601883746474343748561299541695997540509437381988715948037726227642091058332164298632796090446535834653875008923685696745433802595150366695535105414039644181924565978560875160842414010531380082191011184670731667471602022187885725366582834189050781233954545060090614026148498432755498873751553884599470985936999577553048828095467687364617551726505779394285455412705598698102955905383550469986353548969010641770180763107111800475371866811669140910488883243102013855822928188017446381344994866555351099120171466591622072461377057244362768907790470976164494799550122720822078225660136801656056372243821617741157374413106617751308425638032571886228790964045429623756133703798324738384340145133962790173059686669227378058827987343970419589264150715644099241271484981764059940548591919774719560861637118782380745253781893574426613729159304062771651641887881504424768455402144809245543414604758770933528471681781253266285496349890116018166232060597098278879867161578437017321541066444017077554032837851106916245476845914580070778870836045007073350884902928620204208733508304371748619872017059211683114944393896559219364303868968029110617791614032500546770474520881085017251073944829170697999469853370211519154675937071107224318034394535146431084634848349711666021041442938277805926719801181959769630363232243574801514185216098647975787510978261452230612558608484230415564882535784102334370487064033992012530786667986889528196891434993943831276736956222596826312910397498156078117127103795365824195628834865364240554393625683447705084039975762700082076904739201201199856770392423895947810216007161505882240264666378415655883593373215251277573367732457489713909373965855322318206164186009001212338214646622557934071734053385151012703281212171769065812626075781998930855949872785458239003830660482426115243488719237974338440264125122742656353854488918640459794071574030301427494738776731119542811841434510184088225619676219261997921961195482335560993828528590076699296878549094128007728135156346851444594201243462330685798862412397013097108634427975300214376225640717899974878921789807327353123567330601746257517256227506360490813468454837181778550141572609513224481846639525552767690185627312481543654767960482446885449290429360277107743028956477748047773538255454185216125085113058699232736070362220443935924457885971280288665248976777979668883419063145650891556401888110696769648153816176082691001714980953576106330287133070309248881394483016376612033869202139328103359230889801259941139679753584184434606213243224391092498077151424525146877690852290258722402026740045355203856805026432741414414400519899057764386791099728201188010109919736385333260371824382209579360557908151699180765075116455592757329267011999166079021421671994362851973791616774900753949864433126799053341198308360223582642901220587851859448330569402782028786584102252716203571000315698480050584104341911342345747475653857860350465493495648456487768529638327671275251412487264306518767584967953842370175933138230693512484672566408180691360211637637486608866113333754902294499661803013307314179645376222349335565406221168425147803644372306407500538215575047820844927899252609715022318524281288434040438489737618137619735414331207080048606413583425045478887409812094791770539193628348410813203792090439081740269400693975274253450606221286532472806752712877678503687916123174406221977771785434915134911961556083915460707289488452377567665796927503124105280224469152779853500752563789012294491533790022436620008190863304394785299282697209108881704599242601589135123417969231883190852433975619159198537604913496133349800978951376426642002126155176469748249122495906934024939559154046635095672859474262351630384459682777973480706048805916562913110081316260163826719648555598231481522851232580246624544389540660021695970486356067896731190571775215443714870408403139096550341839569668206033237134755754954852015078262441595691724553003400336868342999916813713559733082289857701322961549653031459295514135229914786782426396326375985177224249662284808434806524996663742502611193110517419092551531404083405902470627508012988906956215710476147480677474984583461329362591950296085820957563154884435315533629257643974652994119858562087826121144237213267173572648267321744819692503865345474933350679886406209596605214948775329441826667003970919185715361287366777944165645466711923635912899881614666212819162821309689585562729404910742600006367336996904786826809339821679902771695885371279114839505334991212323994422338096388607366975730218435588484778671390090995437360281547682365055562100120367778716695927629720176920113008031262220342511561863589027011347708811626164506307573407669481410117736391882808218534850258767400777887777935697984274317258348316558194512669524525981003426948358863456512504289147995207012853948796474205326393088294650505029067160664473154947560847297735237720428376499130602661512899370135247397754848309463139547994077779592357618743096588348628397897833480103310701607961238648716783937884331532749877262457655569964119423923898145344567567248767292106510627769045882813858582141513494753338649925379841609561855260892139140247830531385672063294454438799177314258998326206532137515445423305007012238591970304691604098999233182185980226992962002341224765606813306200416940335844769869108845702629253249537945430623652166429302529225091679482500017972050602517603766402174360359330882619318696153939107557389521031596863862102575201087505425613775662110571214227774943506242434297996099050131621506353515190394752962071288202346113646863802259741907404837638852436655949702487561115682079145481001722622341902446630515769044002262455828911856230099276368829232905763743406903654913423100323343994105876535428447854599393067767272720450483542017434910455804422219115029607749537242959850671297740176101455447020574032894907860983316720205951806790581259901873463904047876054662341143270985647037590410517871760686982222342235573426358537467980554325379586444300165297111987241214459281497146383299630630696772158643557189248965277739800941601294824956097629802390871370883957069035408957477565859861541898096399088327546725950793058399210525855842591655202392264132341404953897969913904012429905710483784593345299574643791187344538807137658597629028919638240714308977898161503129139492214656493439474678742313117061395461809579898138106390552363340848966468205843859135097850052397802039095379899255140462744935615057286232765640104665258880397137612197193624327185167467818209308389357026274761591154828986011351424209837672556607098368884620768951674002936573544618418365421557802693776072428083173295232105639451699691363963030774788439258228477732261106452525724760269731679177734950055934701071860595481356371770470158937675287768985140617999285482790048425647575561012001082278491542080470008093767651858366085640239359608580138076927520777826069980523929439783933325943243885458956207966895577144878108034852168285187217285119270539870743743814756504689039295643442772889407787963834381104728169362410963204037437432741583423287664346336048777863972074729963922091043619248703884925552781377495374108628223711141438540476727254941940012900727749742981620815228971969941313114478101778108570779216926772412342920853288988606917160016356352265670700806729401515102915603448822108184668101374651111900598176665739221237880314615054890163273909042289720113770594029179425668488282260590444848547568122432396152115620754060943544186152377757703309204228493967440954325543545405228806158532586201169363627325124010415569208704551708515976838451228674215489340787373161333943597376804698138481641906695957606193777531886843922466839668792041000285819118624870742321876804659627451403906204047029386568812945194587231026445416437995695277406401526688229998694467804007617952424727891071154714592211598923322485487728886615856879700355992168790151341710233868209192207528703373292461136133585982177971884652016036819240967553100540597004033258185850329614932629448096831976899285475029721452074201664525511333091379152665528381729890843728069527511728027611045768850630094922421496045684554030425244191198883819858616292060768007505015821960531814707419072634360832448627762344758695381075283869673699802496802688166394625677826435250448465857786014067925070288145059141512077292532491316827799555622988104917471610770460416425869811524189035540558503911908741673884063102088141453631126648506406072749053079808137934312625449651213721406233953775795708640712427998035458418297326271620144706465069296464825823866535074516500238198164718495243260628215395651226396178960841595245702497046231187877427558376020631196636664959709684939113129287844195670109665602929123250821064121092877575328623036629286264440552160170151327416613497320745988694779615359041323109742904353646103374753350566987195741371016779905098867111400150170302384535788282864400299693933876691082746060577328710049659603386206767449143356602736508723510074796476764389716717062921271655646256486665304382278235070928277763763421192620330451563407875290048100756639008470491349705760609734496999511993804213488515082749824285085696346532699806039733274896676723823844634369127358232921881659076538197456367280537240221582051337763653987548115659720675817924040923375082584740259683080341945455064559541197618847231541194708925115401322792282148317550767710729054559226058515963800915410355525865894336764285582139239310930429869150917378202900659998093050403470060844501944486108969104158088004257384954237105040035301016828140807952594959505854281714193364315873759096239085447548900674637685510527771413014894166963021201254982906467688321352678554128084132548054681396250942121085139607839907429086637764385787556782986128881756265811904890367287337594380794263348609029663780406134013965017183623502997884409579349411491250454480187134566065445762314501566916325168052014576438047822325212404112696589474730154744822020636850406245234950703170194168592599926547492356675137791885051578487708385748336533182512142346946524902310556393402298313972808205147270218010944667482269979023230331179307765043682480887421155663122289652444353752838374532459824603290245515750951321949374294439030169799774166751415605749295557039074024301602184093736716622449047525658182847259131654823723811115943574135145960266599851250049687294681339773749363204619420254546668138334182503649234348451363886883325323078069697490196319239826232099165935182199197891939476803120158618204646370230986921608485252544180789398956449321405979799809571262317382519436156076859523624014850642248973645404981875979202672067872083038117698501484951825984149415831248474180796135163212105075984178086748895217025973275366185410990739090682881827181312900597442674029928500929764516716970876625700381590145422490445712358295122317226824518038338048515291593588252060100939607813096000161963137334643543871439649516714389223369990217769044476210444824860691396708429105963290640114752745235541726469369844626946265185736839957094158902902169549062687012896749404975360667393287355301153459698847352728945712755672226440081428219797536711748042083481269779332110083521373333134796057919661641651706826763131745131098500434081186524815642137215027663872938032003341757139556508953005522745076097535637347529168670039298681590688893604364729059268356486181775807664448213843724764118948821552514788474177165697109888549830310134942317578908365416168065433402165656164536195919421037465617448881090523467050687330305061647602210444211971493745909149831669243583482644069325803213527529017578712817399991580860628226390788536911411031174866206758773243306474702992536915661923531205040641552824279836559972376471613895428241289584048949949816948010854097788663051020261634464315145963740912575782006388913993497188688735608377541057933059449644476301591547618405587564967573229357571222874081504887340746805591102911096302683833231404839587253715120363067770829629718677349622601999954796710763266110396934753619691680140548379545748952790106704293369874020157107194639287523927973631228900567890102834220532364757854332258030635997352981383953755869283290074137874326494227223032419720699001861138241114838064536412295106144271409850066283823555908864564629610878453166794809294661201222155893126255361419769116221725246232401283812097472080347823203755886077233174813621410607921406984044485018045949075580679780274692398937661022270736373162767677958921757931433898146913697446656778860142326421301052311163289442113821849365708049050460554940292675322576181560938320215535503128368278410071754719111358864463447260849246175914623574252416774363103575550866821810325000509340101876006115274178786339830140709064099297460586191943800976787546559585214841956157847189711659237672585615982262246266250365513498142392598291350347214577253161220260015893984118109639477232737868686123216391361390329045809090329502099533432247787429617076443836851606267369591434743019377545329586856827517527067534198441722035522564368587114466512499020228693295546236852778814623787914137097947820059958158830529232014098067547149567154697003153928274212022937010558940752145362581752292229422341202921451970973700229822442504049286299172697372062676246916943009729332575526244662892362780580467540228402792332282837490368374905364952802521770695407645624867094100954246261316574591729237514849966615060960178592486761083688850295895285283570938518847996345199747640907676290943929889530037052611044693744418466309533653895800669896928815720427253834567058637151417249987419448952955117655279830802792934243989584461480833049127679790518871548621682298466234415498905417511275432381615503940390480858588245754200801414629001873107020415038544631535167399910482173482857000172488167009506606977362830898724611023118119003938144959670426409501984813580884155801636237216736082948781389981287958224892522686170494186222704958768718570745794307015013526081472007495727603621464930795932516450200152624764413734200015780505180008540447985157905302594009414044295891187119236443939099928253338771017794605069121222438215232481112155175817545452604547036285338277660301851508910728520554806421152286224778390791025599776280687702167536909789518738192718669111964933579588828844807356946103131541270024560788811121757771156642807856993007111429111213828294487282691243827804449028805933116812010665424513247030179967052641724051487632730717179912891267203190179389744674854397356812160010113915710139883079899139582506829060175189758430484399511873824574275351365474745124032404911990192787580594539507949129923009773941424582237129003417852856694177556128170888159175611138394024050739991577083551395084570459696824393695905829729539212948186033207055150252012875199099475477595338747663759927264644940728840596158724751799443020296018258206983177099594540474844950839450778893354802180566473515721165758173319621923686756275018768959136953555004182378694677174973987035592661403127845859195975890379600990233999517277716394905225442719836942336306052018870081956637141510512597565445797937783963404874601189336161313158333080105966882175916222495250010577217974113284209408872300065546202807331462817608316109789686443944541951688950501010679244291255220538202605811949931903748162189260044777873523627869337536223228842295200797638036835681047233350193433704560449880408354777241872653767197676148436524161192034801298066201060327478736398441870276512451719317064081990281195777325775131117256460337300418736551372978748633597502953034256760346018721332356166867599312274994201329213398775232789632043895617708550956271170998932082682961624796679330875509029410591649320876274875257153636151386494167613676659626419393702393242079847936279459863828572237570848769846419684992812553771371538228250613080061190946980333382088703465786536537964045524086584365002702357212742840226886549095686251196031599741810954989999335818961926712387662336092481260572738879584344513036623096640747696765237382550217611624349426115000448643716631480363351607320014726809857195136364206036169516070491297184488344767946056931344494111296322881807647333570151260548279035977973367106495274799593851456783022720952079675491668158116341861400532439232806862093140920356674256573166950788677577658533814750792292057743555150870147398047652606514407372719041865690387272432633617830918395594993835531073318759374831242407350167409239796434015573718760842719333018999454766516569766869912021376482913781296635289153861393662491271802141413768990317936667172558509394291802565000645047624730295790966887784738376450138755995780111518329017396679790500062132332104946474208747820976686707581022664364902982920358499547077502007412645193835152673303447344836121726738052061447477769662168489508459945799117491810582991337464696933949021131636927174101139374902681072264396265459901304005244978372339982034129838833744842771041443649341006167285701983534022879158731227417589280386533670026248941705566574942001758519739493003390045308112239531470103057910068155933376400939216996038702309078703630806903107938963879911686638410892112884302284142100304770878237175960464446475380862883663171003676687989094510109827875663168970103750831428739236303925347919135695369849440278112496481627157207932193647983825785785606431005660528086897802987810235450099172932222904825396425256429586181577977210979960250276808497160604751935621545793582814743411450451734127301775620504897324543225927394806967786452058507980499209717271286648814816662873007857934443140206742539220190764381581283285522765689803410307061430992994847783387973716869120987038706537407949843501008022719348312719185498994208424898485696861093329384696020387947493399512949966643588023675335801193134029208875882785034755723695999536539981894350113705521503530437961975667573810692160757910627587409109770329791316265252805746222515262887571666667469168782859192708595299280632220957645921589839424003301209474882172252869222986164132372234723131717273082431244677855250558116467155797227632231634734586919251800146184358656305554441397064050208381213101314308765238223592009032149502871679751960882891729663673086056827660271643654214249150182352438370344666941664805865432877039222329014357516165177063658120016260856348469408621643800446135698134320087092769905610683666417818280648705343391879494898001292726839033097249033742664335666617747989344108066685142693221317092067661559255484681124254958646507496983125258430123324627179151292896953903512062567106926205393773883407502475836756477091536061969055920311632544548266724454113953880954936877104770783267786489482835241693511315285495848251700241121696709952660199338651416193475287905340665777941830339113899753225342726166460605929481993057425041997481161163291239567158263165716732786488605314193558963849721667021947058516767729587635658140771570121705989621651974559745260591025997929676535211596959772388610080510665240552112184880696330845600681745740538909097976140332081002114521266390394876861145629042617045855387883325344630503672480814513588987545315000509280768873047366059658243190514847006319003544362054744836302325931886445241980178360737346891610103911470172467861071124730880571598346942599318140594309868645572485569213106890301217218178673790733796643735488779306992007049978619721899212862166246777049562648972623343072125163670284455808042444466172148095570217403192306283919780913054008957053174824690575404564360504406849078295967732040288628430201409483052753706191722682331441235317926292563170984062999648606645654252022472497955588040876835533784094816485914181428085598307848282866656816326863970200525185765982719710719909953299967436278992476496822231075022150357017917831361947370327588031364827905713593266671572831090814865616373120872362458872383035809596006249789308693022692907334546457407503179368313281329619314528784243477142739178663899763189977048028782771221857366944560071762844042607273806514806832698828342839722858166569072711340317837979391208809175469898518428474387508471261019338679599840798348731552099162463188875426540086204693504625032994425712962982028980913810552717005118759741493155422170424840991537372475452132079000412888625792685074890639420654533068284885329379078294020875719661226471692030437285729082879194725073996093060565267479813453654166107524795637620669641891356649686052166113026580516797730208927052527526772590692162192326727998143932795135399868976560885172232307204109509482920749224261100651660287678566559096831512626325027232535996352060694354064030482862754236555539305856289551207355547297836906228537284223770935644174495678648645326819950727485718230207792430631188330444387494175329292853683049576534369113615659011148060241520436335664600887341229850397148411664956521747561621290324694824895296933193385122270085323107816652179983903656024913015514356965247020894422021387282702602942667074052943450587190757732941493343827281182106110859977489355051312803267352128212323339766145511252195498101685028353680351658560575460247270357062172057334416962011839123370673432136144171298889126847513062851710490779567407623897267701917682799770618563819987774880733938087813696696432976391062263623679225395042876100984436058563857756069221848791577711380488508783801283207764053625152214935197204715894626630538989601699737202706308517303611652751287771534749640401152642319006322422059661269591000340131585860533411445386639998103368232981723942621625977864368297841594629332068680334986959020602001718147180792083509703488746275497681497895235376963462562502231583661768088736763741664908982316413275525449400864963134215647707735676080886058836587937511989414186932117816240488669196263399426460657014934585966506282510236979149887939616278419632515007686950010099865182408861267733722210456706745547629775834916035548159573506539392899767119172981104953597508364260319475791328878540683580005486290864229207805079335191957018818027570113203392581927649464327129264706054041507370797622647173354942973663587073042608956866633419646472878757098434576795471330605696707175437085511849845995634052802303442405038105817664421685141853365426486685577223504877429058969038689244493752348973704517642401931438919499011629860986822938474457621343723144885415565610207833311463097032088425484602094362380327371418923932496035112729082203267252439446009790137150298108896004018587957180565563408237096096104112449827530213128720818260596699967568899154186627724534896811948048976862045481092832422862484892609912168743866373679363801967831401182991612718161967113126103095894564090675225045713758497130377768146210105832786667735255837131889674530762132142808644231221348671532272692167066248768370433116866628112559321376996349103088760051882088602215866273666471365775320820488968393202804685907259078858752522325349869163643519001779871087622650539906069680049160836506683855014090873404738272535659007921294567173412380904216747888786337543605516414269313589020343876743441787383099034083916732279347183314620947244733918423961163031922760399994551997245425689310964963898760371745489931874307298511077119357581445879901185718048580961354283679818593136647815236055327100374933466931903538841312284267304696828361991169079332889810084942411617690995601352940292645537824184485186244596014045459296655363550789830546037188823454871319443618603703330994321630172829754061283246008062348800469132398431888925797731372262133549698055524475467846680347073182918780886966558892739296552166529002891766235082742302105518928305198747080322350666710735854873641790517699221269104496012269489978511984502007616797494749099986049121093227129848482690320193710057009292540402348768299087928342211245233586237024667931174305239057548249085698802722518005233107886303034348759060378876712690839963380752368132913857992780877493747076532227534510348758650057398786170724150218517775436241974771065943873457638590933274482846764640238332786861903880052593963044080874313057858091038437797342118048536268262009840769257838272453504881125585999409941442952276655236557403207990167810989670118969390888234326366538843296652189857026158443292480612867722253138813672844889024435938556219757092521659788788859467795124257615518782775987199761778075011129881179016650602551053547912815617417025955596456713265938523325789746516331698133353174658025109686539329673077727648163673732530641338518454282074464655264228177562245498955212990884139050115204088800454790322974351237048879037179247934547676197801094192815908948735705089165818885750343921691531784285930502184996959229059966850312696702124474309355414589254264690521408060242849081816099205528622971190876921834047380421163181151723638115901481599173004936332495304203101875570674915318166665927995149738226665698168255808945156403869179989880294991416644287413297469066082270704110924697674389418520252080719837848989513288480158144066965930409805370281547288832063497019033155493741858040906805607034471045662436275255751054398499722556466170583834863305545223349388506816342877846581731392335389771705981106247938260588447116824810027757673164527042071246027920553243038475041135054099703321511311001719126682113244616482893898818533996972221711541850832614542732618047823871076250998592097403953833833982745446690606086184492837159068974250233302053999532611415549684980535793394431088565536102577197173166819347553166566465572489891190857989690483524845329320810258660195090958073910496056048168062221067620237309045001702613617761843139108088013392315333394886156800436502006430642710086017298021798555931037750288635895955847228315897317467649981687348754526990165540040212045138777323304692426404096383262366540004369150490296128271781892793519066142194369666838693311945681404023186042713747174798653165892969858487372752944915899154989835254510752293155047651829607868435652325004973356966629411967206890172116233744949756852098703809333733830755841154910388209351453886449332765531978010106064259911177880244041628953195991175957703407235662945478909390710481134723452739483298871433570626489654595340308712878871029568030013148843059933731398827887269057265845033216683597120160089678253627072496665008777681408741036488579744513877712865671230685213450130018797584870626045359588611774374604040674894605297464790910793157691727004222088384971251283391856062747847554534117309765977881949966446968886069396647370098168641484656970654440165053354105969493557746775399246965569735716931178413156808142723569549332079952027022902260482070208246674045179451930858105459352411904174952705653412769867633539889563885191887228605319491328152366156068667354753195083116503639121690834979969149960491786303958723676433428483271116303466730693558389476415002273137229935305766439369335541555526004839741903176154405349903691480357437189149421503389144004934665282683810958899271968114684454191462977972164016701894128810757041625574417551411330572695100913111308626865155854495702265237391269012929709082267844108193374449694039352295877192085127273782878510019068278615649464453809186873165530461408053346202853528504959869005101471591134085866320047073185464084284907431732076629193468835096238385226741708197834298061403704528897494717733094434250801460006613825555095252692067210635205306639060656784432697622750351977144227665200648700363648072988244233017128749444125873280047309335770258886801254576483149539312553254033479405145698380451492351661847481515211107869622759295417642360451410852777078209541160800596210039486275906330433236322938988382660096410448513082585116083562030696608933628090812267202331793055706679575709529454965868140605527072266334621410921550733809611705795658162628913063573423663899517701802789644830004126801074596897576815107589209978835837526472297452124999026092160134740851033171870750010164676257310590604360658627894645162243151588783983942765840823548137777259421873076978594762456990756608708835652419260049794284148085510995202142662639119482399246388017510717293986925767692898216871116119860748865104078160945542100583257405938783592037855159383267661982384058770605187851015566160498327823475333520870728377295389811049814368576705967204823863610008947593327941837136149445747695447191085248125447782924505005226366963333037120089133282404060506540216114304062046982259992340274784538029349176605890832520062835585042869824332513223949564072690796830088908584252892736642912544651194178179881098264472257064818523994585716242744704299938515444825787560818549932885711390651975564559360881564472478654806701018646023632289690668225275595825632653264776899604945163973481416007704624869300186165853559353030452927116587119649893603591816983196351745032825285590423507283584579527762797758923508597801372154457698664572772617024465037564637578244231749478932354047183925519812546435886506254593337487904643175661010277131427413186669284758346424353867765238759525798397007023546743943087313818460730533670959473206466146059069121510934849873050459994632974611503530508786651514469650001193564790540833159467044936507145985072056853505896269594720072335525567685575802591486103085425125954821642307254043288037757639903011539213196426177704128908006806272572740528657164851764464448418183594393561945045302018927022102165510163133191592375519860816416874779015068943546875376722703986253471904415183341290535411027039158295729892392365028472904028248957887927616814346919379602833722467081517540918723177140840047140272740735506551191975550189237950211088749262458428500937117783553145142978185981799041523524564999394906940851654921009549145458300702667510967202091395032031001915749129026695200002726500342374768358416249858151040127985713285736612141111027934269697103499468000848543003202008892955880531712311458881514418563558773284785666818828108204547128890680795108911684297952084349659345493972180452716200782092542881922113855778768823930403454705270266101007589958993029208298770956604766249202032446068973135406157040551209667297187918567658339059721847953326315481582294964852196545600731421940372069533208721848395996390620017179305673696437907684937031902781718400954984491165617624842302004956810544986346688244974031779746649936902658524775561085446712421259156831106057495801532871903841390479403835044881223163236459802428945174262255396374703803227346964306801981005500044062523556553674723325160431034776851382291085456518484335224815127716885121201555451061820817842890457731548024041378433938387914701338340631537127816343558669068451331325222857941854023785980142672822121752590688910545315018877058924152389179266655125163025827390023005737107102524962195742459566279409356428563106207149963957661122746415155640610538634428904917922944304030981026898067786890488141272262882266840928729514535540407422274706039112095637515343765373560318341326161763282457841620671338555417337915153523809940396687094444273504741223023556393151880621463893225569416518103974627455324474329914635243728714659266571953868158273358480097650358713034769402861716255682602415633489845462776839124272927309329576119741183773556628349543010682907679125847128391394273306748355183615703883156203592353172284698191716279455348542770258242570906065141140465703232289732812713166143623467625889131062264095199181738906854765924465596491733612584161487335670749069790945868237066748920901983058213259358555818490342333977946665925265332044567674274995040761630859476761278735478053076128264516086786042941675104903866231852614198597617112331381381995528490910767905861501822238648325892450768974685063981848582088149754636820330441856765790164351383764006337143368952517826859029061599878660314533573354320456233584698946012455869574051044987773880065118196054393977751539216701956437654844502907390157421451663999590706122695893516140916660321319675434725143417170901482627434687684120615039601555349587282248301148261439015453031594962792256773790854035434504603079433266599595032550194791252141539134654539586523928083599311296539682644413720736531594806719389506760917268890788808362116946869487531563472979686364889371319041774135465406953926512936645941582831699836098380038965497446707101986270204803176899158490869408260606625157801003316129513442660115353221367691149763896216079618691940070986093189610814075675909041843338796527849501985957570168892152093621184491739444624293338003779639001223299456078355940443519869579140210165867735418713223410030303982899488390381683071483781864816428320107247304445897601026913764110671259113405248637652333118795115809300605084607765026043231639115948779778723069389231499440457647912824846962105999654449754072420377478916260856755486534123803877815732101205766624251745102847550334175585079961326894891106085010185074368974525380515544331810391511052271144494302990305700591013233672830717257543396562441091886040687042993229630679782137987112026067106115125284447370177207496443601540028215139137409890182445590587900696448846331477346528476678697276651209473546703630121306059495155156748048332413592403779331101083745853563826623358624283602445345757829913402279669099511861444090514554583420213947693522786600408030546589056006845845756095764080265339989139578206439459721062541361713921755487029032660318886127585719858908496112397831134343825977281836300853255705679854057479451643560104010471247486703279527679874247469136972913746112568310946700117054275557174810618863893126367141038236390791078481436965388218624879337201614283278852029793253172690340213681713883293249055438408629618557960563528187880066804229853175687605190781646201809662222754903545895660664720934991359246404411491642069956574200115491340739242837976596850864027033098915922495234555365804578622958010251793378754786755925690973949878871931437582167991725940741788584247384481493429084362375019285388298671400133053696153787108560660842340006908571466175040852409826375530121457289564338855848989635142357957849017996391184636457617105125174461801279341191059596549114349776604875247877671493549724052722413362899873071301231317794543175232307345766700434845042164644942260779728082950493174163346124772349548899283516275827246511995463150465558184893687980187130255434524840189528240465471469984818805185787374578713414166220584935495421722902912339742418378996183374649671350699251695860939774471648807570978749712344347872898905612511770224847140604728148608398723128807852204222703765588251982210128614953056671124323656167092434705540596716383512256576064639099904433371109519649521639701595116984528490215616462813507871387480380066253158203988750049247112159749796285912953888917148961532351874598527138490783871699306471545412514290545410858271191391874027874755881902615061212386825085603748793835886903709989452007287520413712096523699669048499013001971747198703342545744212163028965456316561431859799816469754474916398403472117230977278842371868920396512202070714920356127086151973735593925095154666702686466318662433738663659137500336874514468883331811969652721738373207722009575530328272538609489665657053910459505854738879280962893163801893163368353377639575370562230507021586700934982950205035553562678607306273807129750189641063994787596097596240578295699061428136309917123548247827317175026977625911364432580151186120976773581592179511518284520719111676940246859908511346757601031296634245582870634327250863059113382687647381088496743983677867441886676185990106964550736445665681065688127306823921003831946659893686690818045466782418293764622626221086500300436056310433912228119447126053151053619768856990226187188460801844872222270555938699492278917615731750120327148483372589014067235197303842677245688621909462497031808010648475693965362808298183835824939681176733615583467866153646505458191956395857778918364464927080909129398228573089042184522086267834418185496935805493536426457124012750348210248399207093961997633039115837562364623137249841054221683885151945236557076740359495769656030906087151418881162368337229132017047224800737486707643803997860661047313187708680541780492854830715899653748220208725371506567883190449111103516925201531728929514695700894516528020517291113546275699937065256766603312555985196463134352647562154575851634717759433792854223096235531353472818570231147351523455652223772643485999749061723762188398484646702994059585878931657406198844817952523041159503312905733952694903137386124856041292570746525573425438587050000230470231250538361719785800220767960655685119269604158722470701736127297768404022428285812446081122566730648333496025458873565143549599315945615118226940694360240046224362989104559459162203434428782452058152791439090422107343089296018303755124317706479816204397107730620658325240317094132584429390635878290894661988994032920456651824617420936642718340838768640041576010193813275697151992783345830459172849463565790785946091787387664513868338774907195765998272641320536988651377523796885107425479427889236881459329055867979014368507382457004254726392653496564223369980739568021480857318028505658912529101155556610003714483985767818627654382129116668831107518093161432078278973082829170150332974291022985019360233127124262358297516282713359388708431871909237973441574199607755776357146563203908640970579111154749105651577867831465110644713463337485553290060352566375484760610442808625784256625249860945006171577493814076208873810812225531385654891891811448542760573596011255196976903409081884170861447690187224952899430217928923181502306249105948718591920589893969891480605796927625564355107677961474086510307870287655236934546250069075798345662560816902879654070221034603279351604137276877651756728621405268201613755916332744701314538636396058602712822687463412601347896237900600315117074178117639795487286758795121325138947381931823507303631112978558777120977931757090961852739529900222923670151401381096832821679995633422195338584215053860698055664024597534297859316740547339476431169536963396789273521520640096754975430283602259319230334687368241920386780492897614989691185000607434664248854025500497772863750427247882863997743398609447086965048691635835418496743642411127593624228895988582033479474547951387862958715259399721678255018260050352208517789474691096414445257717163772194003191167138612401925146412884637424151010069547406989209342590251186053649305940360043846119176399683761113055569622514785389659507674996052013687130168547847240350556199491587201105257712726605472015926723770834424152841150835629541761471919778370083297743032077515569181902886849908993965991186378430571145051981252795902115151009005838053129239489570706892503220440726013736371450177936739414468950171791358045320005952333371569333855236369915086346357987394852982673726569061426039466071264000910455768973699694819932604971064616481901084751956415931714870585557358021265933987872130345446642844042019756373072213182359686144008618737443461205487692356924148232692412097574597369538517947085977104634398410023879521494124793574936558686669308599432259926397319331852596870189457521479686888835048328068911325994537594854428547688540318545969611590746038605640997428048985729468253145026277748926083446809228435404833028596118866602294318777083169934595942993932042294340826810737719735417885437414883367305163238946624805474244549529214484241521017249727617504768242470362431507190545017670100003150386432005797407347962617689763829444182538666644442622212571132539627332492289429618025912908814175389831804077056380875550238956637945318649816042802588558056675903320991925099513553954018651624101035409951384399979558430528636523288926549431250231241104731846260881170218531164426364302675017288955377695453207010444016224037958882250649215684431245133503315102766718457249108987655767758043936195127133941994908770155547144827331043317382057492941575453258921202749902325463669961250117740929555730220078564432196008552158472525921671855052868349428021574228921696473957417464662355492292512801181405369100030748736571968840801392039709927418659279294929268716329195454854672732782820607836889135354386100571494149843252358924288566522865174178126105728042413758784514801628350463680482036386608702290522223661152924752569446929022891688529416861296986307264875101492125511136381525112704099445638749445949579953011243890973286884259186460606139004138770898595325211930982296930874034782573780999066217079465212944543870402780492935944406204497307869970962680381156501534272278984559033424123429812114322060749132529923418416248115903561715202009756854792472197468190864552624481802445344308739926057746531714521843336174776014237144058691242440795672083105550047422900176989643702760655668599154211910214975950808365130010009904963262996787932504249649940543896245277627724798652028350195498396716156134784954859070624140811711394224500545864267074886938415022432294775706488189889108463934173172887315333274597641545319944412200129075960170427463772452189574782797564953043362969460648242845633477345019706811057112879937389809467177072554102627342840508243109905413046554299803885610871026694500688841341543544733266795337226081442068991030817997705076807951583353629150083269222470166584585498787838760853262028875192433565350196371978624016170260114734803066454230497417595971751983944313134210190980564396196124574705145500458032623112846559698371436372393137368304772580481068854933153846647568812095892031576918930816777140385841152749555826781747294660164211971159601142776128148436834888637846037226195472345936350568370523603714216741871231504432779851405643111015180640822854252564648688316656411738987167783363605897934398610508360172954054398490307068222849488241242904563725112305451174452351024957800315580248292933220105584915963407485492671568823172496854658856830589260056368159795440155378016812148831204145902684443457733879033680009201447855935631373994611233393764669081554210350234545545035890045687349330544939491514504789374573524741291980676201491577664863773494391572355181093677075975701625114137968498157864692083188628033303948220625041101223605568188861207759199298051584084116255092743402083441461374087029129709676175709018068492278194401657490215157347230845342868823427591735426306838844175841618304911508767660795115635130825822641379186387721591961103832080230051304142245231606855737583653917885366374695315659999148387399813813222110062198479194069919473317786287029151748929746867916518644402497472751513080563252964051410605247160326873443656868675889184891285983731244811708636609879779518584906831498726554486607705073341703963767813481771108617509450720590065119002697514315464653445617224143452747143943925513970791069413838845541851139338975263592702938334618786254271222496806185524150682022792607308874820480431416175410885044489586362741861339352038157747800752065145013477095049696701014278162420384831885420916386581961087138819179336466962698700752418286691042545081890246114163801850515470860478953312922647638024341320874982749876516318289237757994898595042041728540839159950755213786729209366101524190110268717865606854663287025420444205492252745664414227479507024205174904185777140421506349418847772610839923484031902105035117586053993548058360435983567162906183688952610425007850094013296858685245891352393851249228728110645770129020968577671016054968330207549548499300466072227614230735168875989291002933132657815877001922835091067329536118861895289470342048090892348557788746767568898171606516742234843061049274466142431452595037870500816743611550860047810086024030922143792619343531690119145817813771439191636691104968252650136785845707760346259860829530401177032743601519312343801652212524216744285802489326995339305552816276215153595921638022414753873622688897517581586809998100533394897759035560717478566745116897219788898209265105422131851452798230694423456450312147615342338338638600609652886190461461270492460447282681876247959941115644704574637132949853867713071984252850831967434536601231421548577494023152383783164490814198175051043233410526798667634902684019547325297198973061497651129767236208834052275956038147622364531996102498161671997362225506489736858865014809696255303968883886776787670451547427275678865989168735538778907339283325167310848273589805954097735290151266416280420046253500919000834275315605863690410527538246110001163856802292378358231177026477248333757388580485727706224256339365681503420164463769883082023679645828681595343704616773308740904137936941632345141667105400367223515353992978801683946940704677558534509745392551859957080369581135045605177432120844555762262314875746343906689533320080783641288618482011035319567486355939221983345282745312755058134706234815753164061296593898509708580829926885334033577081538165966178848077093042473717699900372284580994347191381741444459026332780670439824719274338555197819551371279308766658101540564497965992437856914479425493867787696411971990081639411089951818674118726624486349118596726941177161289511047936495836500414609380062354167791116129066369483294482866957686441315267913642190040518633993439993569593166300684705344469643382799820620364872114367507212714395550291867632827554842223044508324184087838004989041661952934794320327125504714772035296719494561317984333232003607906556763724333337213579091742872191846191596291990119897662877969372603380500632164307995324355194064785576733541490153652894364163662166048873830165388846156958731043960129308603084712262410863169929840110228698413236683905165339508199563257399807231039568227807561968039931253594766893229450697759278653332803745765662142572708965295413872785409662693337874967826293353118434950630957518791319747457847740786137963867965173702160621541425123194495081010192163830981757843093919945932739445223966137420221311145013594066810475078847510624571011903712705838049531325382568724792699801002251892651330975729285763624649198626724215723431127411602083952337918125584561080537437941864555241277470308144790956349514135603550387943804359059648880564281519591679300354511403479276992532865635785940107130174550202768411831173589653874248973731127029260965133384320098516077984726144669293860316644808620297124477026169033435151019647263579728980571313141359690823062698060260054730744517016946882996472049815293858910725112961943938984748384051517623178794479529624022123942661704767398011356561680591815594119501517789449087418469697402031304225780778363644723151856738421217085169808492701625504004286762269034296007205203347996232584463330943609516969551029754999762170206120650712950422842032663783651618212622812741184535509485284725592754992602036138540498573767554913136727842613294576214517544096493323755519997184658527916505402395100585233103870587354490682841759751259117903156408807771030792445351586470295022070342497989998794503416151117010054195882073544234253055409364678114041660276321672855442676747116865618332058478766668489580708621380050459588437426821555208476597874894632768939919884400146498457089334273027986296862910936682710271208880170910540183140492934339511884715513141550613115849543790377240435626891959597529079228635606122973296658269169030322665453340393752411315481488023425156319977250261217611463830054263022606373956464932963095648137194102352123886392821894647160467919182554399083533814189899074658930041700923682685553144755504335545038547841740056237700796394379937380291479464668804357087064294641445757668686859079996070055747159379879758681076536292362747161822936759095224397272413871338147819511465179287181809096421105995177763956650754448557788243540803356399247899242392088958134430903279461771561211726131093556352254929568722759139909062381717053298265194248802694751466900626243607642385510678675685639868843890768493972647761810127414434712012561220977377972206919746785425369068436180882167254482190148723785771009481355275475495360293013195822585752884303979636845589147935021058855234148303707875424865055404676453331081773898693314352075009527678434661437016749684741978826980801317937916760795794477508779131672830403851010077189496123593645536226343243333903909275236061423701876772258284394410801107020654736079925143726340770817995737020907923604667404224303759618565678210290955310944221438733576431975728899206789918083426524496037840673275601261971363398167003924633723263128181494859233803230247180114727865715715781432445454881873569864602957393074913405301699489410169907018349623886021705210035825699953963376255610415741642374248994727580473141136063067081428551918975485830798061519953526090309971607006410152239767704203627730809101706048887657704893140651360087729908369802115696105572139694133343724913526621953633527425755912943361731561637954992007946851233084880965092372155225350579712069264127819259276513575035116832165872040749419882535342194410243570938147040882285464179720996931257714560141462890631470541032382954788552694401721875243087511319578180085247381911675737554342084665210910739186942045126747310010283956013448254728309406512395920781888991609481121703974608721513467274171047840046640821333268942274278433219494424548645087293892363660160862632806247545947307575071810907028483637193728283164604142773539011759270329728995837413961833453935022676111698910428117882988345220935936593716215596138909569512836681911479227502136816008117834073618984912463281262212353620183980480344655186273356899767750495387622444101426373385333034955893779433911339907538329441279721756620659952035074051160876740605823747367778989837307154725528742738606681116120293484231180388605735012628747876741811460922527907522610062196888380320524518584663390970497021287431485610264936154076691745542129207439368803733504934092995715238841534739519308748277339880061864999446106017246841004332363183391716313900497514336277931571737997895151386243286886516641234187548463246889681325189156971113131329977515648824649287830871316719798068470865376861153488001883346526862158944920587021278173667193078162519976332342730320260606628158393612040282062543448298151373383403261909254218627446493853090337340413410099999497553715974920339696865686187838128223690591827718765249195871924255707281441199212529326791042358656493286855653723177711066338284447490036271056849040324880031214387815992376180258348162565186729437997914308795411610425462085196547168084153762789058377064460421447460309030617192984391152092528909592318282946484438711553854287429110378003013469311583074946270057384546750860387039724692867051489095429922556388835825199043530752329765804340354979689974668670634949558624615392482820914644443501445460426840916961711223508021702397515202146119929930970465897069721023755112527837649166903434396598978011798493282063531876687333981648080413364238675991711289765097284595324875246556090664265052602963622977297397615672928006815366871375353313015471871147549192652786751343087010584734318259671783314684657744828770577067764559616608111564334564455775711212557167591988727201525584444512171933597891884590961124482075004350493025211376165541968385018531956673114272596643943864944698916698251930096379906200836854891537760152846354288842554151202272702907307216173478685799282427311290877205238956779655034652287077607022923839991618360408248749658848647621186275562112453322638193963037890170339486702975709597043161544908898324142922181395312215654957672665955552701358600879277473783404204401984996380486663171027203322948520112534581895820091654635748635416702564372711382506613226743975543575296896345209700235786181166810148243980673794539513936886921438402435902355720372129013168265948425355455159929573502105798118842745832298375080676578588158433792775759080873739321099015568108700354550035906237863527979372558978430911633658112028770066362476626506145712056348022040146729728743487522149621200180435606225890177162919116525599178121789107783323746528016235992142645951657366724609003759191737023575899104376635039967127669250841683774608213463304154892029896356863544009501640923613992980718165373055801175958894209808914686255510497186373329362881095431563836709365398659924587758455390635251858587873461420786755677343357508822113252703737268185956954468194110521279613924289612862487815338352443146353677236876603434223185575198141525104417307208934401076447651661949919882333316818994511301485834584739101863798918177563493769147692004268749383493988457626420643808342486843320531498740304608149406945569013943853718981917189132841155968806380080440980081683125456344562732513354496426129838461934011901670678264382600900951500777946144243739331535659815110159395796558832441077965060995529025589945274208002588320263036153866259294664496696844797951736556538209438406567889210734086400524269367835125014220240808735065754331136577558045194566715758728200466233663567396889504232059121361181114047860287350071369468458901465380762966766037407781920497297537633006532512311894402079440695714743864387154932868042612199000855526741489140316208613737128025627204442522713209092074336013231525138769155439178629676323663771222782512849721097852918364864783050893947063996714648722937100157151960872661082618926373701952390644103330847755238600268526055610981547513295133742369028784859403637738763963363297853547834781803687759644299910313167069161750985676063522399163189408487271238604189753442527866722937934725191216046809775664111684698830781509813060833086096209800483354236856065237107015822193064932717585228146520763439971108142471693554715966386898896406397315369290716878280777156798774629241489921348712600779671510113867412459903337869542833261458954961764135572362408729824584004727977533658415818704082287372212558512280004432637834168523833570349389921965587339757422951825902477905343242779478921070855873401649746821366392568025634634480135132436967416050619273673132471571020528371568216850901893304050494143537969421368252527214626468535874744294045498521599180089506451796602366945436034916537525645389730440626237822309248422164415473223084791057198367247687673888419062674496224023132931646130638844653068981142639954981535246078519684282858255144565303338455101367269319898499219117979815510028347401040523046852374029980512993921774090111598363423700848157285991232620418866164820825469414082630203308245830812044060445600332201608348390465868223029958052311430904162138917027392663027625255912310293467188030184185409128462114705616481317344699400706479161514040853775537280999936162208268599733409637377838820685849459894944188221615114945265318777017614801393197339824854060742967943874623460008591291413076748376933184142191767229464360555089664769181297468752840107758785915354946767698642779884813557939591634988982818820238035552805788096299092093370637969475760090877367362511405684662228573681149433508043832337578479871460125754237599980209460513684043599436111716510196259713906250861099128351696152270245898945917817419881755254380669831321966627056796855046663344943784237914244851779130977824468748827954077310268194335234612987244118571338078857218136052340924289775174352897332440219188042457057835019776939830791018769646694387859887288403496098484968325647768203439387714832204498346015065364080363942752919837425357248576850067396428737589741071193021951779992443931125762174475412015124807975214179433093984246075798653754815531971364976750000322049999162086462107596333126133507855188937050270854765786730056725089371678119980887870361958955772584971829624719581155980735513455381105294201542255770864696832646475160048635206733197494363923492731714398404113014495387959126157459289313410441814688038931395612061030316356488241954918245358990491440058325146633247772193351637716037548999228473803779630518506502511961611095424445120971998098777450119899602763746765073586458526725257909238728494353230866911841965431208773713785568512547628232735123046453150335031948003639713587229274091799059813085069667899189322679748613250563922152998150588962206406159807204638612529183410574304425953160892943947953521609059346996100862879645045513570917842111711648560524951468956555793406999017190850847554738197903693349276027550259068218656564844950858435787849627317778491447916659511453688922858896208798344338104031661105315213582249987219101036869904326185258347564439461635775648658042592935791313046609115428859462594638873051321287207241213323998755037806178904406653049568218007997990028817904550265136905997636987531022732309025161465747655516356478705013047878621936001531392362383983515906587111937407371232416855939825157539910086077804729612981227149345889886873926054776794935805851814349213088016585546728550903602327848093035295898571055817388410413735677058196640188950344456408226632428381850412945987870628350923831889062667051195373659774736739216794818087177194303583630729044997679231193152270850108725124564649211931240744307632011810657651563986152984562725826427860471740443879341476552508971209260613949763330293862496863870853492537027435079715825048703590859030081915499290926778829139537661007224556221962338929109327669421209379891082688662026559669573678730426172669154225378131531335452935873762771383887208598483846406318046506024581893578471981849666025677560761694988176527274532889664306648030955781200035969216945840597015544932679442220419658238755301734486617606993301825134807150344283903410760170420615416979979432659935830522889737841742163135565154247780865508448956672338098596607955550318184904938865908105059222516127083571275854881931067556269954961585340769657920506100910190263701745513797262033263412058487367950044337818563651145304229039486551902689545567347410968104988211871793385128676267491597937768958999699977015536207693482783542822622085059475500608397807404407584158464958462285082674975645629781733936153443671852511148516154884896207574571492745648514771031231586922937971606260227513843854250027315783870074934408746196081700416003331190274939798777596280140786331888027581595575673993094816571713685938760632695748677862624262422676878396483590312331375351224911931380484399053832519211508121819220948331344702792535527013059526190832209873863724720713730274324422295898775374126655674974271370622434050110055495329435326380724618136798814675417347578719602360670449622031632107382343634852348315396232066850717739173361076199624705447686242857476922067778410604882552209211489409954643983767577404979554540318650796761689642071235096375293924308222243327585427828578775075321184022056389651605651509007844286941862104353096818504888129327587098602896669499669505496555867999813450945735909492635614079968583715702789477889109415695871354533229401758070700787250274156418982329261170901323201861472446167943699791829440828927341807339399795344068815857605988142187526481530251889653443939733741709444928885371028964220417398257000341482535656185804509703001626999479477252364229082198008632988722364341312253059132027216382710508776610667269944806922658509725362704716382778443080327466548981238055477949590049276774928673558071696651986665284374487273779520774436211655198432432242406403221270451521893457431011761103091932237936035964487441551864979794700022635980554516448723441274176486439889252103445509387939747017646921109202210268901717351447667521433790198357485317054361865396582438226557498014260119997190326020572265529642901700241239255985134134361968313604769998145107041133918731835300349261365459588368633778977823522638159962131208933901246924242665926568145966821602167498847939435221480239104002342262734282524866973078445322469617799242483218871618832647516836440220430906541757524443677199439431427852736020053714406792204113461679235372831135700832875923287759519478660353437424682333997416978658886349894793739793217720104478457579417792037890366151857458565379938022746879881673495226080266118407800763100318747989627467211410430804232523033104429499576223183957316782718940318289551581808109018317085574380623568786265932664980630111217704941810105955622057519466803921182983456145614353900254755926832575979912434629196793287562422935001012865596100341622481459302347025021112072943382368200780283475190112055415014316795981973587502041102905665868166109898981982480869266495073434313578737940073889983420368595525795936048955020207961666050658878746102101278042711838743751396468516109038030093185023999802328694659273629244265258162823401744686007356737822856330926051334846044002479106961863430181540637528815787313873329497070842244721960869291115302363578852025858333054440160739754607945557437710781312240690169271876231230678654363300810748074386935630938643396088519661002624083829803067674159002875076973686935773310514476144212561953709508438451846467100810346424169494608865285119858459142736468951312733294594517764642428407272277338357759939796511022131869763444339883423221313338527470746670625611144341853889542140605305712671334492181739515491582900750857190204066816942546131171471308913982497869713191731715541182152818128148070109068586125751264976766611350418570579124206525900324278904601698823262189704116454413493158302778191753187087324808903922004500841118887781794051357026096654596730480114921496678997788185048408599576030792997045242732731872863819386037659793279949443918330435113357326250540344598531160039293669468612409006098337526341760318493761420612197858073208509994808680775674652812603640369390185593646568640052812064812265580591800243477953080052104921952902105049826168042528977044655488249338020156792562873232742073833196902007395236187793655042249152729330505462585068907916357813877774745449618468801345821982750795224941015764097666226122077095044828152650653943692549627968840485028776991358179177748347770834473563707066313691095779259001497622756896064974879521257893209052931985119107680994287607348578883381569825487800773848314143104850894736485439005575689351851014987028810197962452654571677344326840002686273527392922367389030585337746877744309474342220119106160582611509214862447978202212349445275538503910561835897545655019242528646029744495603220579306117292864859111401545253539793858729362635722200750870489118628125303670851596895591387416150257891595024203011828639773830536141294499329106893151765870110103492335460986244340501273915226667810945002292195200404636890825602504505051998550827503348253426962904652847784790088568573759878545727218538027405830905625360542170218297350437777696332355222612277137199311394122233100310190732399301103601006664053048701664748175314363202916210812548570168499023186832976255706991074530237228839625121665865988750810703014756583906836395660624985806997003468700202022859352985613983655994952292517670412393852003761303893291730665003687622133696791102284724625577952232801925193841603943014354641876698136753120633041065315550720291557328785359646288626070378339184937976679448909648426784930800344618202795417174953973330697830755444694859110871263426397399095975512372096880214112619152741049834184244842829322974613213364319002047244859671636457531369783862257758649245540570542894924664392881862768508868107537857882993440578903184824125374435693212497223573764795418732560802585984937003661109188719153903159848527527667203733392634755153657563001977077455018360666395891031247514944576279714367374207974860864407883441106038336013446527495643238769129039299108477979504390943419539231040774597021942131905247189553923625695810781947178141239829177309787232358073121749233137006482430585476479514144929119524235234004794081526166539960541775198410771022445066973416757996155557667802595085325367529988438905907234149623338372634994544601899292279079305435051358989579317194908380974230513534771637527497426517108474991358366880643920714985625468575916004793534673404486878984899718713984505209161484252047076129244781683322891880674082992588326123674276005139367562874829154369815528475261297354898113380347195429969014097766396027518658541429268309937108434745490682051633650410408679908934705526012489855100716909976153532573113093949439687508459142019360283434375556051116545668656561893700662504616196102199518834722840171792497192922078560741449768787746695882772170402645913147882211457014813677100779369024441248082918372269655116074875644193840186848533075158858487438591818168996788212998872198548365784627270267389262802529591749097942472790957309917559943152024723539444769582223417437581129961892570620079066374815594623978418432100880557638249563919111386943339738661127065443068414258758831822212272053466064509642470409668588772503492558460752413061071640228376393613514249635870541914490470431757114213955257473912412098312023804122309077468184809000460630449449409099406539770177486748258705505783897510429410074394377352835437002979115117857399393831053516078170759644362389601907571089828405581178366599481344439547716231446613452443331549474377293680092172673427750027727445337591766070133319687311253830266482056992224300495411001932001211662918966923998329397880988966224972084121368228683345869401240497750120757900668659547630759465848515957515495024974346079581327261262486901379533252788633911567635407459436543450060666612301840802102718274174139676525373714521059614474536438153782309594756682535296122597558723390202290569305426075214227086300330456493186637615199840599233810308998638509159470756255535901535764334330400234257211518089731719482473937312075355278803397379261554428828278484355708570048197742116796926508392705176851197481986203027321347307715373565771977332964043241820497773627152778939663118055508158952604905319647341864638443601359882865870933420356375379899756451580142067499646198764708695714713913503550935087616593182269903818525501016133403690456860567496099174815758609867762829264990701177991357374744442295984963251861374848945084497564618373067346723563509018338299401037132223599160183403094669400355961921646572709710249118232479141275263522965216023761338718299761056978913912596183751148556490804486638640102552844734802552487252524036197067514413841970506755171311266638876993774572395662244617312420716484547044312947552264438710306104394555352123287656326220037134962235690477941155296772316118400866078666921257210519615805050049818277771929988861272550532358270259724666072724941488234496591776032179340912107864971049335400182674625379644979670927961043891763466624722386002240663554539645029985407990735274355049457196709877145750756234055552547601403580132384998602878439865683094320391295538792385615785071048596889923963314908235765141658922963900936059349797295217578289257688007075392707963258736392968554489335643060698262409739030930866831161126230375506872245476232058721733865473809304379096032076832795280875001105318729285101204101027940432982248616277491382864324655577970073540505839339751081900850240198756856915088593601623811263167045616199441213898008606288515614484679760899437734650972332158651444725110573955074008041289711143776364459371336645478548809632141372783090352438491388958253331493053490544474180565212584573859332092251320355134388458354227042883591762904861142816056263244580603480586275605329894814383648497791287281966084615550816781652057212375003388149257355182205642761340577138703478230686348843033343964224625468335294521269856724074969648043979516544850873127627960868728334216167788003209740307988507333983447919483195053078618581443401984851013717847981133749312280963686995480081338041250910101210154974777001131794947224259541213236669054511844811404635188396878160053196665875890816728370936313115854898315261717006213682089509956500400484940243654046046543386390771148248061296072913591356841339702847809075426981531881660439692029161919340922481680157478032709813508571777727293710769662689641452395972666891537484010183451839001140528773232373281225381472146070742188795460681324988355065001793191860123057922364818963366842383177431368867512716278693054420815735100129228068446557170936181429301264374002075487407977663562198614793587743986459004453776777498596680533317704670354931849897167027441406973480982598018361406449239085549323607767348926527320459661659603789371877180959688208550305220488262211404118290326819882188035536789054298003982783550715730721954671912370418216036478282440005209305362886046213837610301267279425536588421686587379880266870577442875936584128604814920567980183324051370256601934208803329230021744500810588444660658373122457292085232444458735460925946164866345212020404966157535709415995906396792789429740009056079298827315471942784452465749300939113159465665337711842197397419775909180160662291838819380939230423698769174926900318547769952984439936193047437356691345647214098562074302508811168952900383415436073737303413972345074237599110858257685198268359298658101886003748426102473176192575314547005871348452109991105307151773881351042602362226448094725506255007865179306384446354293422617973393148545417653330902582736646473536520206349700040037171396606036085785129884603133372378558982883195054038636143142962049721385751674437594530427209226272244495560259646304817886082438911230812456880568652010864897831802602749221428380888607924192177245852176445050851393380503972412353728756307078284319744552165266493313743700807702097479333932674230728557081564867107395996307290658022996099974745553997258888911003697411339216053612836802719266444467986976681755563609108841621657922331489598262403533977410073128949436654400944581370810071213163889377910806694907075645311367624728247348974259854169813705102819166293309657212414970417739041371903910584586418760907512467098126091603781186956019034826462745304157275752245493321412374624630925909707270924363920505096395122723522766567167538055370067661110428126351739598331461733656980017446954154080281526629452395876819157923377963375036992719019965723597373531807427471488027370888434761307319647056254117030714910845375369467369369091857991203122482223853476340237488906900575300359773177538201590435786929161671332494719741348185303207597170535134460837283753295367519851063036932345803752656305563733653558686786849827302549101582094453962943022691092200728720905855637253400364488652801675205207939032679839497398288770160796315015010081782893692275703668601092919303654930125751801269591289065783903953469164104077615883145849662245068730273478706439992256994281044722543049260613029582316373123941879606311051563346901839264647436916345112349172518419469729072549585864906608212448526955379274343168576403997927355247851679329084457300969758980368906782088463463800118083793775848351501906981476262577994363127489008455280405051199031595619018911853848941818914564795064157966443160042276836717701357251248630989592070846668691802431326687972251280780466000070773968393008499502274377486033774365620119700876057863741929628192500441780969023121536077060945773897095893219197278267015985623501114781123711286400262786925509270639629634048812486344475766482669927906247001635339881348010701274729025469228353610414988330575903179934054243938551941865669140795189743219476928932877526968348012771842548422369537130582341565632175343742311428927136151419157915126543048970535685210529464832876179325849356541915525402889461727271404575245753303200394819665061227859787971078178236706034721309004995750890743371823784829138820732742311522676648476627047643852359077806309020052386806354607136580027161003277394663334876508616437905700352332241527648974945702828953147543515475002251196302379766648789613479159023157942981673126764922876624848167655392926653489303804407890082034732072607874464294564235178185035257391494745472920846015522221267387849494941010436468453487771770215446621377988035259904364101164638904102310699533621601791833864492904574892635902453418381714550307084560396677193758786968708261890125372017139537522208529321896444172878025202662501495895557831053887748122546071581671646187246100684180008470561921586642186903860685739810456370968148362068190331238649855192468933025401898120974468379297473203614573540776599384318676066601746943775185132428550862753274637241716751813596498853715040918784659193745636177007681451194994210787149679840816971353038632634886669313418223288320860102957220041364929111907094811895611824501408609765912026423248266125951709018365190169634630905317824415099384425738199289924133656103305270746705621861523724951892897099407424171684074247132517565562190623240420004790569071304156861616348815678591456667629176276784578778545793836783087841836271097590474463548701660890748111545042753022829224593119383068990065136649585918876137294543937877850926638927120144407140341617700067678992253612294003486733649679716413455808719535037147707615832147544224135601010975343960704800877095477090955666782552042868522039682598838434744900821363030291695977192625529952339335453786360641805604747732925189464221557776801441682873244172846434473967180902814284842137907043147407016130654676591488312535102871068352729135632429912284934210667801636055165686405603935502571198397205393441669427326656000396595669840241306762771993605572135592514864634342183551615927760070643461942668905590057408786012039540650172922006857854750543245851366749282838434808624670035590522283379841520086739324241034220468024208185181008541526821195980738767783621355490339069964632562271850324661424701239683791894723769012481479839962149091090364364131251772003868350272212344940901793219606185659446861999340112991467558672579112047591392056796734616224436344262241866818582333637282347403007366101236079788436679062090124756865934375064362438923306371928404269047589159986099859149803423304910182453030307684729843197850999132840118605640491343515781930938759871073290593640935438375244639416796823838559717528611521405773127151666157135576163467177022250529616757808843126274986952193994131764726644606721585261423341498047402813033469261557367130380222463341189212301445813634525953182544266970134945763207409250371270520702309009745451566889456239788338720138272302314121816571951150547534396937328688799795498304552125300077445817820104872320584048230347966954016887831511231344105972088967490501872216378095917818302681513818652957770404119629711318474902127307722200572971748317547698833698660439903486181234699505824204557059894279243461263656252873830222810652113736470545634447655235462611496028988913982092839617446433406893151094196304957949172637907834519267840357993100310998811490675595783294226914059814770567606784848584051044082158205008107139446125789333859267322624941456345230258996245755174891677733499863842391212619808077026318234087990712317066032146468480041565220418721983151696070025467833407517102257188839044006464601445701935450142605565719891921009330175791813002668147351288220386899842925239074342805846768815101989664496166683622554474114902178918046301316666554416258896463814166112575329930774512699828579521080856424770626215037529588837187179778064009926778202043297891196809485526860785797171910845159306535242208989134433951393261251531564409802920587050762829741100808411141148288993543421639299418455680063120592261268605248548318404145290539898767261899379514080202737880912630926201549302315408186634762753907164610141662892569644052698711317637463034513808428686550279004225015195634633972772732446052407392552867647129277569577870371647695685233559559841595758034167083033250655572437628639949045700966991789689350548521444964342150657635987023104848289331019249378382600472545720693908076965301111481083760077251321376412340096252105630918031367834220252881008446466954256085993081426934807310532330498027302772028635804463045626331603951660213261991727925606812009413110430279257429796030472766109719235076790789643323567234083803424039599435135854368493891733228762010585971400925241365799741121184509849184135111639191967512854272008404209059064367169131725901500579654380116353071594679383479312214699901140890108694169512263534998096862298508095346767459282731703187337525059739360122400073731301169975085313973538388915901104165646368908756881338342431570382828088224428608948007825713877595661611616828729987162613031356656558643887102349697051755943082163816685198807441975320300598402806068836979617241410715940873358500852845270372746091119013167946165249756192713909232931390557347065333224035357546249381473062973880741596779308678535963030085340772560893932129571092029693579124867147758593341239065410917333174558026302134843728930092903342617885830762457212739586834392533066750993573628985351654526225502633596090131703735523687102051043596336007303538999579961699702580338904103144455732937289746149093601475139704269869554327899164147325475887855160963242369564935876878371918269084565631098666801314843008861401275061302499311324216724017524342134855197245586546307070800017212608853958184950299162716398171946307939166814040836018472897279725493297823345106362149220223220572375990707140602264653329342419809030948170297348627310158860756427492270235585540704560300894030759204347343305978353212382133088155100480564337948766053866889933925954991442169193693448130988940505759596264352243748197235062482643194695373612200059582566488481162342097854544761272706805610565249422593724728154354339817748898187558136217528391329616308125152085431062275771108180378927266395171820795825351670480143792880203100542944640707672790588114731053202249115713805881896415515885502897641399414102945870779775213555613554557170396034410323932121673303179979088588190624450060529695346947009058011542822440927385881873141898777862336458958602596535884491487841702772527079781978298331354791489150179223996561015121877899283169407153411963958496917915131621548635955613681545955179536647508362096674702395509088198340899482279294100696533200067230829632193459383034838177651594980691604936369909270324323998828066512505976743144973608671087324870545900798729973379555259604066194869185957577695548806971793861412307387576787010365241748905108039860527839533824215881370869922086257091903745007410981118170409445323136879963416622081912343705878452186749447545627198097518036359705914081185801524326808241952312126568834074998332296700571735065844146612237766263941426436292557244110253697576999567388073264187779138343645886644371975104605711708331772504987724451643242521904514582006813672426191878898056137765290679176959908447147161374262352656618627178118896080439997245874917010647847301335076745036648291001807257545401487439843831018173965240773406348235773356371818168119198718936692370835788456410686110148450090563762933357722759113549463442876850316135993772892378025123532806170223659599150237843174864765806636563009986764585661357017948314082187321855196003943345826730184865820713609666641712860863691232756350315825084582876201281898783254003620636849098704914399632239874233130107512916004261733671565224271364481664734780651723339631715764100701293160579072527183906843435795147300151928331147589922539093696018801379437008629282677018164625171231159204798881356365642046303476200183094654570869076450316136784459515332517554511334630833752277266281552629786506355379490680217442332426019285503334351329895442256460303290189021933027256988994215761698675718153268528145488946257724359039265077238432728803843158475238088532473558229641341057385534959164615141202283127475911149601892449930850268841049207627877081051993359958358565516387070413235255679045458945895191005695578569711510574255793215220488222404834836893408463279631829365062370390707450962698180154870704318057836478445664234672191030246555917497838794137634802217797970968538467259582379680827616849848208184320947692330267006192223713621299805902614911664877839067360341156099404205919353996459728535401769246506399507764381081701039614118296335141909354622539395343556284254734154435901187211088771999595528937569020722928299832212225850666603837333817501925093829354303103430349916872103412347047345204986442723694747846315745068811400896636130757928742032529526360344955545067720032643835721899062808860229005897656905635492891436869619727236224157620016659969903934872988631711027796824437780368901736985031117461373722645642366685195931379265793374767030313202445120272601861956379501462922549019328570861790475568127635688457076946812546773737489400348191012166186953671458300539193564683336880389536499407760765979278909956428261745893920516158654748343088666488451979309861495960860834036520182074500490505646682805822243649860836085694057920204854371690656295041015970585321199114310111582467373911324208549349648534126415932260838551796606728398423130372348796877097982662464489731455595478009267444343145745853257538941267246838097314785966426843846282113626930143106032093720383355109882159179004340572595068189544954458282555112875444853290894213347799680479106101979697485197763916552427145792070295804520838574891170926598057630199207705022366197281227384314302574147358440036835827574374524318731750130828185175369661035007781770781201097563597574347477966870211949354469052281666998618195845682042873180885754212484973663974403572694201196274181376321951611020897872144536412355559816687844126742968818111001905312892450099150110130776170823340461430503187743922840487336011879804002247116605300072647754058679844262138004159385347783111190919212639935079619476291575722747123552976918674593410523650184007924495367712126376954117672114028506040270932340756423820672140412271398164417319893540410120105907266252507638385734317127681883096137734902201537385295352216102870432949640099730968192813154802623614973013428967107056997986587424860826405900210357640802906618931607394005824533126468008547185955697779631812220429691369570434556546216889254682812081928578693662738547731424205748936171859439987346093283342547989802896586741160725978154635835433432380141272627191516519784802556689086523393477707734699754663265209412146420383781551033149433343625236947011108279705456712432551419809147113072926123762965556832555203612871642853469083743670543091784481020175303234116690483311824694633819814154451253380894014884953850370289542727385916961123659792605699715447091016376510777313030832564322628159767293838112972631469636500618804239481433725439532190245690879197797804660860825310918271000158351869039950621161734492981922423345523740270171957180074756964787809705908357636609097478666880722674932281152254517485308619644394920294139435947121943929590375496478214825100739508269830450809921013640009225789376535626645698006680532176551822409762350614258277970333938665730044561395004693838391927061505728828838102437647914837502147957922151202556279967966112498297492332762246875033365287234981674136413919125853003191080709093640472176653263344587413981374655281458844447265521216547121011643900984331845324087325644516055787447070442059102044455156039695334074112431003073998243218508864466800175604013414742081005475328530187443090997522206814585895584622968784872119516478080290606482417996272415408941690017380205598077148576051628994243518915067733740909759919520157573287195084988846638921701604812108066737508693458788166832600237613160841386494083513115677116355941806619343027893457756411190835735044571578532953622196420911931353456153221554097943903085657627835997165399833021739196813125591256822314591402352998428712677952377774937611743472019721475056451951533336209994989394788480232981410001759773645084969657469867482427222359501785743074098375800466184707912499762317993522367507303728540138383979230651040287442217972957873772613714690109335132199468335405070995434317428014509161092925322702288866804156770063533097237766282255704953793405246098952172728835208407374543398499769818666300191815083423156216413982010491894442702106358144485632291825448292222521441508110796595845186655516655251844648913106796301276766602949706708456681805121567144856440395178227608731424450649071104630630458814993462732673948446611721492008143267379923338181516994552231732445259795263491124885284855644760838685105414664516769728359669708146577936242497592874719798722727708529989892006089672487420511854383008082610473506138451980268065136794304504030009510462769711445459920165732960597577602527065062199256519791086138370768217532681991176360544993438774916227967285404374388129341768697660940461085111449825459308446564904351170142495126502282559329257446212095995003860621116472919981204805106524489875392822132559510427433957117781787177290335247727835886145048856847613977787955607831330066413096685729438700344148611845507482292801653032925074392623255824686418183144701222213271248446329429753848655746747485268942834411741728624439733999473992806305726970289661708848430481789618364610217566456017391949991677501772865235914355316799019810263746223296723994811555671508039543883812285803604308450605114940909953088148784370897525929521432515282226457741448203131729492698929629182837183078778923975696412680969126347165946381037147635958502682892751690002870663029515100450537614036306981539283694710565231422947463615346545108532946697429234622609350438338539770278946286820601504340097246646640557557095606785341985539192193873845896889747094114849530346378786253953983058906197535781800697237946673101657586974909585575740569939597549767706576893170835051303352317149689213573072742401319679488245082140679399285642083473821002626330778319110128048580544794963007577222518734394537694017890221352769670421439845194586155401616980346716398848761536413720163757475138418668402339361988308813201940426460849026301012597895616616428154147250717013733163398877954046350435182961743937627097241570355208874003271404701416214293431713864186020535766925538747540822858478801267080706833357449794439529522692677879794915365268871556239748715570840657054220521109339495682878736268848939751934180048494242107719695119482779961422738886423116264546224126242918132604109454514263769661865282271821240147248811224428539746952610827180704340517534686281079802068935821151018430402875369431818629535153874487072467423643362593148998901549401017767389270327124819321605707861124625643536594355686845193728907767822465868425856466327837446850847227104156071436386107444248903737477105798692152515346134842588024495780660288394569393978050369664832225649485572327900792104452604982711061418480537432585157054511238614188157283972447707997738231393249327674145002718280935869052664244007208407357248847127853290956631885986024135167126362909790648758764874319138481790237883446804120222233407387064412388782987134449400760805633553175321617221205402705677247742082799985556521459276174325255498809176084675828166686964114421166913379039439825948552302097324791606914708555170779556201830541352840139009073767773847945755566653202016901703947741916494521612945558466313746331423385771063098100225069434962240630949323398525679397987680065809056505906855302332714752754879534606866445865058720232915846024064179770746340212902733995654950579440208349611716995752479109551079122520973710665077309901922746817071167834545025426362278987221363045995522332683842004762360907369093569229522198322597694581568287944155139677814820082920691507508594129577112618245209020657619815969008591755713317311028390912907380706755119065003732876965275781589586582466134376078853404066801933525027235322469150720149608850780400065894785889614072493450464678154588089816485021520375966189389557814085324485557169155315028198935299928515306644886674347943264896297593079171893071548393711430559456210961863399633155454096234676268444626908135480294415086833819487452242505127013420933724358098423586318864495665489091540211518788866372307276159481831727807653080044404213505676820296875145561681991282837453571112911305231153261395614775894214140029023359489536323375874328847123188916285447160963526011522114559544784380134953875180017951788085783305502878669697531381707992095376731215354624086917843555737111619921892818576756605578050557408033017555667790630622923297852344936141683375909031121446807236903127348611381372710658859120679972766122476413507259061896250568571454735161798357470244492649568711762589159595864881404526001497266401820632990661483074291303633488208934929946003531579062468046002707262101196951496176661046264177473820259071511166833913464585989542812750536947447284538880515039344648424780097014062891271982130531924601632448693553536658691192491229958499825413129570951589382208607177603385186484286234704534824533759369309164718876007947903545883206569693485741313901101569752061453551176277797212281329493475170778107109436405252683283136392613068376581475847277841072791486346654358559198739986019651223010328149426213137728398422715118981425707468814241159712261682051571708778679382451833265328114749841796321295037500374605960895932227277899685766687342307429108551507964010482287478309944484436189892953997334525770591263424469118583608128453232703734416743334682735520741715919434256294065444799924252708795513878470639530305691426090322022412374670407671458989856074284042715493970764448029887063901796804141225170069304822424383216117287057939652090460641722410720958155929654693207342119779661426615628967621043416453380129408559395893421718262301628558295288809892165952787987399124131250069998613498962818018102642530955432190771956914795594028337439750053179925359001859028964489976596092053013134876282856762600367171473091440174017441424352401389445612332642861881666061960528153512007075522360801092962850293847239884820302688144440795801056086266619993677712100160962781370333722085770531177846138111269276299645614135115242503242686937877942720641871839361532745432522019701070479754111962640307354897984033640711344450309015120170439215839472104800767848738215007119810291559609096772915405238652360489878746644287773394000131881788870952004947696938239715333882117943834588697475357635864716602063282250373629834665419196921694302363970999844013307312395081396204818694072619439155147932771833721837606839319807653925121522021004504994715465789936159873861445328435033423334942161641670301427299201083323318996742778319545364279739161212443648270534614859014575364317505552626366049094069232063371840567635361750483350374166069382755182625778863827868987804113142228473379088832539701986620003721390755133904862094979717580101875784161460373721907115828070867183255965655089620958681561198838720015227612798989383194992985580992030790563991763427700441627921132042821391210510414416782549260672501088898955385552290030353586755515241524778673187183520050097936632148135504506751823214076319831683705354662385869626599655071718557028955108915868789230827699399141852036899545814793589633227167328144591327253462189748951895643128698365967412567573795814437484594687464828362159338800207278396762813658749575526321234498568319642030528537722528914834287853947246559631728652287790057919635708297127750041281906217923483152405571634303661005161260605885746951073896801138740500073294442230391066483407900918013103321744663241708847779055351490775653210776261274162811719235247844561606432906909383065409097596120523279986580803769164260535484914349721102334555838543039258435099976293151312270210170879360748412702328704374283233371711905746731390034572251889259510380525319309633593389159134090893093544346462026083384884776526808691724334678992644721756381289997333600135334209814760337745484472192145715099563654177772923894806729158105271799679111928797530726819978183976275669933187018800150861016989585795226175914730585318018999464229437018723147030403773719481631819131026490714803040509795703990013589956822956064244813378182341980041927475680168287589635732162919223102299357059763895786963284971763605979294008793276019911576659491847040202309104781019925353977465712335715977841008782767618977565537859960447738907693695768024730954905091308730150913901860016067174258818528284200373507833533693560919249301783586358310164195837932236185670842221744341175774216083378301820281430832377698109915320958451251926147787033589678398633424444027888015745658021645771335646446697421383437818170649717697154409449339959989527498954802544614497761845062637591499564756541483660700526500252464812146531820422800831450662694791962799355102981268882007919046226919042562197345497621943347966028100286995679326229274603896767049341041089013387488786830694414255157878140972994701758365590946581990003728819232341047714577423812945812448906519642955437801476620194770288703217885236023740206249446671892327896329801277006428349770986043564092203081390606359021780699441839281163207948513927117312923221100756248388235427425811682147009793448180443960827735563926743480132694050079576635119506577464319140613657057907146347708136801359688226679528059083716680067973189619549907211114794074901427516173003940769957971444696761662290746069946482079145691081592674285678838714297726478217135389489185683520291104340690064985418761211306429284931545228886009593598079951282420565127941305501317129477931319871790133007849575101792964254536153699677415857296778712656101199522576814402927938867268913725481943851627717618115765112359558368737656825382911000174986908567793427614651037976428420552432170642446729240502312568120266277020302619315981982075007825785891719099785991971343710005473520276827717055721877202071070545736930232876740418627607125641193639975672755406437394599916575349786349483196627767349524438837380780943358154402551290955916525360078258914949949423592760149771585598501242677621204413229775950546083775245594407120440965222619543963291314901868639228479755115151929102785335443888735554183700523932813167856479411333601158853088254896417313377558815459548936947279881904245082531881151082055232620917829608830345683576373059715353432152181335531309062923123747406469656868224045846183377371314233539458208855394335106327066590298577835639297847430878582053611404951434458687914992207482094944065035299809196138548017403633232530145382822527280309750386189584715906044576064296750352373947302607591906474064267718022597238292314698481758461845459458449822985655452208868700147406541146600745234921208419142108635907439979525009593616029579150157634166787996092999764736684323027954991323653741774568417653516867513890791224034563987400018689120556925892314531216326174355044612937069676825633795776708535896166179009044700551893043184846078789773316654036733635576898746964412935318918213096131015268256510509479297345484257466217349610428344959176081450032409613608463072860652893190866074839942525878916884600198301750439995004240512967354265579874765136798768018894476273409367856467004055200240079781505417179795031152682443555874587284075325388887368383880320553339447399409011534094349678705431647788577812326533650332320678075939078152823327702161667272038921183804335013518089417809704778839253643576157817368078111924686617917274017962086753666238182975498542628023349234571794560458734427496348170134717580421429053321187009461255040008935196234821020341875972937090252812873300587133124741935739585594536679149148094901974565386655875299361552617500129643473925482253549665477327049273567058960754016488827690849036274179785963073995913885832408861543815733990810958231477684082219424655395857693130829955180002068366736255854708145521396611019328374810411931165108704276240186936982739486023922674711505591116031204310544805153648134827295397146396077582447565676749595550355856278296331052750924581798376903012925395082366561181240164394286703615078871568857414186444289364165738519665178939487206845526595159907904110778936963312024390794496165547349142332704428540040028503046131857865201714225393384456724909654937309053657060077840912001718533102334726434674125440689205282319891613628202933024708600094371668844136270933668815087147795818496308746296711588792229109658341103352677394512075068108496203641226208340027284349722360055359586735002503635921637954846766240784349523585620280887132006898239586467159016330469172833541109969232813805363021278339170389165773039420972946311556041883121120502169391102945550647588995310445514343719621366782873805642605247872555932334443625657441003057466539620556884547584495337154396161756317899447815139021121535610286322392619193454606924265497177997072537838724421760659053234506403864789459695517027341254813557840997750648825630734424656175908982760941795527934658358514937942721199885877414010339383799359162993446816878739411430127895084814762659289222541801830900439350183237980046229508512967947160153507032490926256405214829668135005200654139333014004806350656482815658580688500057035527896872656384155887723068918801029754878952956873535999047197732756798172838788429796337526204512726379710789656574153306824059135362826942085480947511523921283216829066771871285934881930971952485836325667494541649909425306734743574271101997744785318046317620160701971231049488493176744579803308286744148261440328244078241103200415972648153289581301296936792380214300980780309306611092627691001013370430431998483787876251336899152442360700910612847689214485906822713638741510878031431451661359241957659286649478621644380608644118225733261615171585781832016092919250507052279298215732227918665975006468891425653865182313671011789443759154369052922466130965577673773700718925279001897559023771997740275585150027491311503948293251265369652323404017065295558050670610072233929028320171833002232851524826663473325299447737848978232786303048633199039427767106122272950360025988963472132361232496390542347487999684145259862154997794026557611870480602698911105884381357735715699399630604107581757546042160289555953373838022527927597152773866682132356553786127970718572478514164995753407968923096867859082406436331198877226618859353539285194638974627110711803856498346651218767122461038346622879448350721615123130772770949402062770620875333183399749634653223451517374059528578196068696625744445990792317201577247490024428146374409454103858148666064830345864722942166563001033799101429532181286657761231782576849698005818130126228619968663062017977246926945959950109751708897223183752116030985556926407310075480863142146869230042416742006450195589440590259175010281992729860197438028340774224120238288403328858951772762814912726065222141460488762277344710622872285844925512393039118863905891869056852236221533679663443412235199829367559125323989081606960587835975750145617512447008752318480774979299994436067932248294418548222015181435720733354267427828393787772755425061827661641251094927576165891243392259604550195399707138736407035618025971384609242748101700399593002039491130917906036940453022938871863693249419564485862779283237063862509470988260171053222716878672789522014791597512309734818518413726209678610070180018340951477788028640898912613796748838030188631244426498339697971809903524000845475018272979072462750776535823082687276531925299222283613221610250541534978123170668611364194575421563795874848315269449890878679626845777635440101698577708948475950947207441196216168552719449366397086375009776765170450745849482253465084619857458804269749440759381481151328215840395537433212800239049695034370720401484059804768483291091775658930553299250769945248241406480993705637975690470541575369412028603640658184569056687525694824916200530048877561602503540575705922748896588518607242878762260432135429503645791327219794172882546313582415275514325012694451221600524184095288394203476951091368624839264488753258986629101841084536055990162875248239370821965474564380720914863344877208274385661034615717066521271679066462108500318834873762849546912349644700338195019500339547630476627439844949398888169262867054766850507466240281352537752558415575924947588413149666253719285649176116199634460559335123693967634577471210665380461212919659201523873599999878525163954603544618663480540108436321209095314542938031812774823870518114951790650827461527314952875512744052119271908390392430769511291580469011495594955211793342987105151285054253496548235128453029191741415314938927517492056742779993238770936322778193985072108132603505795584361861185224710276771564703712545766057130388978971975034794228572954413894267399837997379989066050177590468293502210260830182160114434807830445043017988216597420150518550430255453626863685246506916615119505150435169080567111381293089890314159905003133429294918048043222457582055345801661284788185586727374000671218306740326723190108983808846094515063534954766265366139796080394487844607033669924093172803204575057178206131536459592263032942281080995410662168901952285579743451506881249884758272709995309263359344533671900164241147422810201575533922304964765793342717878895629962028545732792002701052122028900043216663754903600658950674212432679635742120916297740025250420152480292213915659703148212593322345890808999836865493262033122508159845246469431875883021666108019263166034767243218044895723466893590762418162064588731297764036388487957953503748636066225368313608847507608020024364872188346530602992844929512982692054381669272379533297007852925491390591997543110219194945083479894932709609542004924307133831177310708691509562354812735309748530338403498206687241998571172254324336463882714046176735561960977725344032100450991082848358432031182314699402128045575275592485396324603086245899772462645580531289754755849720406770686891105073343571627970515829752399548155453626627076705280955159840697937130456965949970486266773679055201378637836989337175969412916855717594913654176437269346229034367846125582572026255488770175450412321607176937688432041284513742474721608963728968788668497899278542132504479499291877602831722367502101071662591723124097842738852415616558927098056576305349005636291744067020576213497475261834978729852359047481800275242655638512547463893735859096744080558539187693457109636271178431493479481883361471710837598502665668703237865537145512344355676004358113383246231798728245956695354338930504452001440452092518139883840188443434373842910447424396781863829681502911980701739151339279642820624934364971014743758205206551079900615347264432472788751311327760329636855971947767654666195327240751542573950437578830950171487210752635989950578790618859434780176576098927095798202115892210021768853580928782289169802131800821252290039495927593946193855525840366384166929621928317410365256454176016223722760471865252633529583454419373982713830962974210350346540684677718345275127427700622920489076944952397711361608203741349793199236104917455197707712144477633013944730440071002885435379449555371448577093074391179696677972677183733581814304556523115982642923559166896130959804667222405832270204297953017121097334785073707664638484762717317081402582751041956132933141943452820031315896229999326055836797480294376350202503672326034947754981398752777893952436018808508209681105957585307668872416716394172344392848177710711484961956299652359202862919156598802162869373541138120491419336622932987383778802255969447263806290725414558722883402488377274076733391829867825321900158056439141533631931705750875175131305259843403838748925472050534541936413871194920918133756348771237718473038091672451389254307290556900195367854798893566895960777425763273948137209501061667087939435321340941491720753015480068729063157580326110808983357995632408789678497094255919461604534710645820294230835949273996328383576057898893599758790943920745632987892315578622205856562709806572883906128041099996246636435749349822420629110325314394053355257750130097600835997886809373883354127916261258220839966106736245820627325042161444742106968634284174473441879880949681635752537525007535186499444241890886300488469715979020253946263351193931718430567369671497331063729435263144281953625924864904675182477946825199332988050784962470391841272046746408609952235799013957815718942587505640976749914273869214187940256885004928073857146561901813265815521322894154572759668590889119707855541921288716445544911477471405465332234992841263369427147374161792732718644842597994947732064784042715761983438723736068238237940434042114159994334633494533345782891811032569091267612110761441204273864812359832850193841597627298156562042357459164860790258742604828995494710322626193984827971777226708254867458040174124346933461262893100326427272401610655610707327414426364429958996034998430232733010763525051379808617186106215204636741933027398102419666140585698545209988680300804398285732532649650697057769367495865726047019898904216780318809642907569824034826214011964908722867496882305481782890348953894870445535094935390170234129523694122531287874242692197412736544726181858984661325007572089843136588558370903696961944773376716704021584164690624591356282374285081601773677573130877877088166216459231267921123120581941401946581783701639092547758026958098040327654525117126863549306414204388673576596864764375932501540623309588134516772448899741062078402954560908199268075578630449405383495645691237649392818220278575431670169201291347125993295035499366855835651022314791450206772154866668869332572247698847638264744990063952477866159679304272566749818857409218905862777251766272949092955206737141224655955131978907759504892651393334533405601884643242270091355713385574562785839395371675209910136242562106142168301459835843339859085246133609119833225509991614323825982560800180295425401774605280097998500240493571943792882578507988236010501885101983179689036296178090099063685995409193968254686094376433237152978886159415570011802198411426408847688117651843243556922312335413202634650588410222257497577184687552841840385673636725802865258441694777862292557501868026234370860297889425537471957938593434553751412894982634217969794485482691220297895649416315293368544917839451811787590883087757051946210924657235081466209788799808336166620422400640936772043677695280634322574684840607955783539076086081775082700956706552885316514085522996965333263399061911436302312260733864418584523535447890700316756716943560570658389862488376483967456236893382563303138700532304329043704513955183444716253069893226603083673413831902974185695021451759631360546490002709147333075250493309531121271870068226763182772559169847220517704540888633235316039017046997564937687732202111722161137040612542242905336075657931897294445158707061581267441622902853169077015724374786165689192433623133186393204734104020800903583512679652650289547672854108911697174227621431492696574310658925760864649155452983573108805087007596528791850357940793137122353509498768831330771339671653178184209561948171391448302775451251886387545185984578879948732578040934072786085924015208284163282186224992744056812274848384197539759974613124216234458847438098195114548131843762901829249654344824783646638676015662394490370408805692979140591737347881231946513433253096250069469580108079913171662543302172011813400138430567624006501379260364836625117792375363530406026791306426503982999340985751986365300312079916471399959578376317032300994335231365052539082290320023145429328875699586968637001217866073374887736141743214055598165834550416349744854526298884419451624677264824478838467382174080710837365002859817746722475404281226196558612758481918451770924966755084358988527618012318354443544485228866890653217672527733339308998698671755387654002629307339352305392226584772734579640416225945814384211956682622519392207378375330651411185160316622334870290953974514239436755173560699888548022673116153591771960097937288022905897254201321063121431607671766939170551368440131878743382251823179452323140617776132508488538345274836286341201529316864408368274737615632612598120223021670016988424340900467583190399193856759837635317616827817680317004666323842298513579127138329547733272464867342077097664283122496581344924050242347455700006762953084342481061415210125053458953286509981088810961812921847997538754568029807925396378946272982172723574982345665392707683413438079710255812834581442810060683837614992845219334396370795478738453150250090279665733732295489747366574461054696070633411624108565605455734011017383621827727299446478334168692478694734948682754996243198358634353023107000087062118970385663153402014045648054843042735032200096612688107467806429796884690714285434384226665436305662076391603640312013448761717191164813906685653162397068981908639371537551387333147402526453979983952650285962995097353074659178849917727820122988004929611858221406374272905196583868735351227444134219268386514121018893214478981577333619364657943260480548038648068493620049758104785200682026064258653558844434894438738898681256919106277153305543541408491675002808072595074304606550146072414559988815948457556767678910780984226424833103097982350599169126501940591517481690606132956393239581141447172118318330190460493325084904931091684009599496004843243301337166489698066922054623271804054177755236649893485084527544188895605793290799093925281515877167462000423237719253658104281877070520564299702858167960505958311058220512330246052768672700668516832814037821399587214165792543180741321523012627590890031733454346706193001235997183894976986323573477576042179085368240764318425755500633910493426511604512494340736915404977731748256627509437124458794342299113738389888214147681602089530037378470601113509852134418120972467962930634969599451274286375675609258755340451250323872214598038513526156132974277758944839294512718492579310228492058793841742280734828098516278539522439440495982053803467388967027989278225937089814398418859425359546558216691075895041625396019171944360333329381328885651504719190580538548848598782925407496303976320308341154486030830475778339703855083164823087792661472560484366454926879375859967154916613531393093200251990102163765431024131019710348838011219573096295967490992771720823012212768601202825992978586323403184037133220042263440479556230465626254207634767183112286387704079444427623882921413818710027335129556846118729852038763023603899056515844209959093442961845765866010046845264173642718939569823864226105399830411353091084253385586076708431550654775679280504925355239848146708281663733931199020704412452080491127699853414409698248775963782078530130524086412243169214224464220126273472190965138220463849873099174607418256480823835328566984023356517534765382612727726634913751593143590431088948614582099043963554137245674863999589243172234587348731871883170503930976451172554666702379425298954431732201294788413122906516106324484863612363063824518030914518618160359469766065102189496998809149559090907922331987368973268827488322283669135830330717865894436231770942873837558070449572735675000527270405939784633719008292696148766381961888168402887483986376147935760935528487923026290213894287326572458973828143075815671633894566200994329760107879038131596393527696975457468251257393416094166269029205269986981765070470092998497508553666694885402919438661170242665511889496058691885849406511972302495032306058291909713307519885767319742416561909086514132168326713075170492583386172712753002854561081842906287882043866365633203241533199450287145998608955123937706101089831183100667863286270327060735952560484542095857060869523590624643230271513656684645320907553466584788533692329484698871549766743392829857104655029839199292640932468583584407841960508039735999353129388951924387488719029483316966842817124832670389064704215397456199212355889288064173365880484047713865122962950214225354669546812609757518060646236930208243675749084684732860334843281235440378399708099643308355905112689623832668495811787486898378536411579530522052029216385798110635965315016214867326691119189401721732972410899674329349206231005253265202226011330180243259725854384170844783120558971185238986028599525420223962905917127286753783367752478980302761200611222968923797306229770074862585315843688752166409346905497642131927357520004046830479921622503084171879865576002679937285864259567313412798547203233431421058530210793310984521118910054696301858806423346149961487720471902911232937437357723405666729082904801372388070862752570670897356837511950803392612746624347798002836784264610767413019268225698997784648529074964920975655613159809958297106445264346577046423931245947235077596220843303246041135443798739764271482098033618547764734364641775158030466147756260676909022462094248247217849254742535145865361172396680931272268523046315476997525015907030765969642401306878358605157128138138783101193384466455005541304122538197599225682240410650830393627483122558524989213083816065449521028675960345315780264352752573447935100407144645222539093765187567696530979244413887622555641593012125921910033091962479672922366784485507214371431460557918567277634340992262587109783554680964968827470601316500525923875326609089089433288371657439440754623069557224669904074737921045745092449034672645696792379382581582582488830011392125513037536446283251441896063172145891193400350029182147632990092604160836818574224723655357812877017190461528344310411301046845986585959940353951884181146883424469048846977048249036392174449683340972399448093523819783528012350856915516310261286955782394929862022816510803354706901182040081408618962497260317524823772241335044991341199345931576191367911231517547940012208408693122870768723453741715938001110526559459184378031461957469731353525024765663043938006164480838872255482822585646175871451974794371382748241233543015421984513091826830409371992272717082921612581865310220388360856807446483549413613205746785018626866815471117417581017291403229162111708262938320540322161390617088854058764917458880742734000182381458434923187837774485460593556195716531479397992804422693864717844746334910484639087728809584435163711299708740856177045302869189919450066077084273504174088053859112512456938023592181334377264530317166065177455032873937379252689523300475467363704697153747289707772400456886929325077478395780964276739241894418774734920342046109013765096698206191239888032057923243762544106601561691035479061466664407640177277477915506432800790385102984033155303638792641323332292178767720509237192078216458781040863934853529166244738095961026714383072935919063135651334840497139099723678926654948462955439041255156631181489127159871691548092749543423010874473366798216708895128379790807352901620771450900995255762066853016533980631256109495688793899697881438900056057728469233346088915871237980934244997361484695319050230699063019041641791576223637614589755065823286533012839718575912309015348258413281845475598328253180468483533583229967786110904136629636086627996173751634708756817362183115247022021061346981572565579168905868032351925510057386215399622144980040030866022333013713055633072525591789490433233139351555930808616115944851283629105815859092684752279395115205378669773268386556764484775792419757976687178296249257658463310822715131952941441494411051589975538414073399887969588498037538111418681794488254668198042627132175395066285911169216997198318921473065699946936469498977828109781752397980021494773790821584973699326972749429975235888288190696521999246611778432727069339511536547362968496049440913123779266640139390291818645164950265091422068736214557457610800514282682966313490260454429586015814378795125426423269186492875206749245776755431780151367649108090158403329692043282223815796435569946221978119915768208018570285158977568443294552222227753631292899640417526307547014871797432151267992325716258138342184884660985522667521961367323641600089490194167661355693005895977025862607554355601479273751273846929452188879830216085255401249509872460237201656974633648491081700233593509361792374180013562311503271059928610694079810423093181305325182016590198241554928833526410672115241114417208892617444989326840394489243361642200910133610436483566928289499160357755867726953980216622459543901744289455082248522772177827169716430279268864855122361412321224428512605217065521371292479039652843068994514653819422566471559076979433075580234979858649994116762731680363145066288489631660269846142432603258722306776030084974523403925708305721322201958737317474153958352180621585880871297468717582697734403795961079341757816606695733782185049285881680859439254919083000427467312219855187175972893048753083240066753169689587205416079700689395884169999747322744879066143482160788568810672321906639120221861768542892162841514020565567658810855422226055488954072880093887478535219711014839767727338690031828302164763719708887245361525854342297201204515578195763451435244623300504918850837046600144724656827704863046858447472636067373161640402621909163609679727295663703967454368514274209448351684678760937855835605292943496634119704331915402386724249686522667712894591668823340160386737786790058031416836522335271534114921325472907028510381186202013004862817201925251122790270976214799671314874007441284194510853778431373307479597075279224894865563880633138905066092598627673785758740827519149529940043692519535612248487385822026404968785482878717428951068999973527031039448518636911481669390830593610652898892605422904247830010155413455126375837340877122299694356151788893396688640343173359213011231863385007632261985567073016237684055617221289051171433355997487471068525800747656093409262799532392522353886184792861283869695075024275285754577027013286618805441102726554838823943513465272719458716010605041183864413813589439073562383192820727784036480162952294742820545739139828388041542770377003420758872428795853841444909246038832741066813702120791472133580995538920799694224259765333800872924773022676496415263952704448807635926805570696600109041250690536968692128673083763862278130297823947975912144302890287471107231983340955719089706535534620870190661086470037466926924287783158386212846223190136121673575005667517592537361362176955835482478826598401735950461384460695317173610033819679686097669134837137748578195610562222826198645716289919861157844727656399936564945932429355169878338218187481193388600427272903584004108190895799886149225751997974242393347125732980944905716150195051688728024772586574105804403420572043625907863858000687676439050596822937812575086517467160247029974786775261991163676916672913158476262077425109000673058616393445481959021178640520286952627044922791076105637318589343464115696474829791594875397459665984971264037529308280919299181537927026085781546146746821150160439857769339514112701269016481378037594778857655603315409326128814332369746738517333323862570584520988760687640083174237469313695065549942689402115109165580018857965536996996419081542891758341937684631604042162482625771395013824635124319743578437497327747919224778482954083942170630548381855622097225049882700797256556373933178224640334969282215244263386409574803947760467730488707941601749387761487300104509229915861279521265250079035896192598926919370321596944570782131998843132508038190441092304881706353493710838749486190105715716009391472630264767050686463709334464412660019734943285897047036642547401547345192628129487211733528122688195108387188935428806485223564149849163087385017632765506471156816298047387864295868805029712550824720998270987015591827480164760502814065894609768114880234083857844849991757211988607698850037524013795646060282760510780101713602836288672295637670988601718527779505850200183640518731322640867092986645388438513499024402353654447988053995946483399051943428216267593975013214022080923741132443618973415920838912710942729818715345404088714563663914852328489061523869055180990096975149681584739032693856949026896952158668221098304822799052053674963487017854440893512974182137346392604749384239194134985021164733435803291658090420376223867630949339347817449276949928804415784107462516220024229797149239846558834185136328498302975271360419591295893619657369478433875585871465079031374419339834430718407440389929685610491525095680639168090672596292754646576509238793907963906345522390247156458823374156350957060534918702753029070535516954573955664448886609529303407950253671136366133603175145776719079828953935420806482712750334257973164045818692096906292870380875227125404258357618986286438007518746591740339873532362995864050127883938541776409986270039416752129382723575349283953467391051594304603327186913276226144215292297991990138823095389597269175362325409269846544380729692451595542442000086372348365936173499431045877982118180849722403962103136488277842011463504546174430488162963778550545056431681558401780646216704010359440639696665131673359987447319102214969764586293898566860464790925734153471863852491654003134387123334382155781792468197301690742146878656548994587269158618168381197405608089205617987399026882130546925739236418097353306371992718077639443472756216728296550971965258988909201906935416292371195633489015284417714727788732699637303210356161456295532254754403189893713785463354502994122358421914235781236096387708510913146006504136879692278790210426649058700034260886173818936960479257742968426764097029504579680147397485415997797228434555406213453586948664786903943805175696680442780823291003844079355404038498443975823612809406298476521264210091487980604179722745051107623291392782167633201833912406472637097096814530025961293284103956327103657356681634487396274032408117142941359984238990259846297435941200372072117199520563421470022773316178105282113657738241123933443022129884729628113941195863429003433001461569563876975941010420281342126297206551341932770519967668817100982411842677706383230950180041323695658521406604325734839167693848701832792091513511595248679668550339994825141382253200743571733159767354292558620064492993919802804931478155194819511433464294442877259573220394452464607949531913228360843214761343770950392573529606419749203043275198404338727238785323921152525133652877701913861907500523066893799103822935673789104246145179258498398235721149303826356881245508143724981538820221493788461219152065690667383289348310643009320792348140709964472216369663052243831144731569791176549232343003893211257564007250376826305254817102202744935589576049609912636589705736608412722063989472982885502712533963312031967795230584260392467350790349440826667053097889747053689319362926597122416091707626220531104192030861106768998616302484149212429951633284934460479983020634910804263011304577239162659742730467683580003010976839739159624107860289507063568586909714942533438080168644392157882259190118819430457330351153683845151701993729627726635993033618720043788716183161166639302257430719379345686824420281469768275069252027473356951943362427597330206855672447604336716361820926564822562449185191626571494428439174176521479515455890851683650653969777666332410159443549163950525307693205810299944863701620145908082759563368205440169008749454478338024544980146510265250015075173095047313579607366054000697405694698315565096020909001537561564881378736888816168492454736632440055991133895869677497732063794043073409455309774063368144202813404639000337332210307603555230730298492262341264250000921857793154666927280356872104392537249401989463053226378917481443911076652252790339849225611044538184545821701093618543413803955808654197488212231191706261063784473160594995929511756205315435429632309496403199518711636083802469539918880414480786199687856260190900513020557005294912358417746587608388470644685323373930806194802254857669194068456292190862515414237229049944472627335618709460838524540785235569965821998738768241819730404856011851928562170578929596922833544573235424045363456175142335896414327927524420163214027113437992188003923398056235972419545261115731159919626764853961687797150344845646532954191938134174938741532013872368687839825472097700652537998174151799731796499259578856582897566196994484080103898718836455374772024499789614950849427827235591626676184352369508631874752612607360870713101127097235000589405064453861734694659980631101189423318943067498448706738363884406503248396811858252494827916525609886662416137594741332893974754461942283526209896091951034612026907195256015034154486752341997089482181999409057484998630666015712886829246364895422138174701189700842915742783516215725083335935705752313444855821005852349515728156610844666818038067933277945371846502079423738602031243699055112637143805052294324800088683960544083900608273245010502398064150302889653127077158715975781953728316413261499797616467396969967763333632508435687176822333498616791569562410191967526683425101415667604119996000140777809310495886084883893455031511881108801090933165528463882475072008115510571558503601607990812721283063484510144027836809083030810212277852721000159224135883129146806399650041672530509143626844928954007544147125952033860746945050069774080219773655193641894339045012434831585801692547158828530224525913188462533859461309909103227109484234092421321078114584298343967413539214232729621194982407350346778907124293013711473856980187395449182100044093334535795202499447665154208481158612930906432574386006253437556022569581192773596618597805578759342227719619870230141848676729559385637179414446311017980300321925290394383535699048159453821444010261397606642437980696230082965281418777445581934793869520096829983888659249867632915541218914302246351832810089198403902723282685882501476434334837451469518020921650183092001731526435633396153477571719702570645481378174972384009131330024900851990612397685604472335021429061566436877831041016895897736166036190587314861548453657339105683244870731003599617149051808079661640510806950714356175498844293409939308130661025098418131410166739204686572805070199631501906758403807173800988692281789436899554054194264201434015469747365561406747254206280582395666850667139963339347787725447546637087607519534182385942254740210947052981040269876275889083608143918578385577788896498015593760410332946179255699977978701018705533583267733098702801947346062382570370383103749516351017811426034044501623065502679391784941301933569485320631795320743584990124696816040635998170030745398807541337587339136806115877524649418445205713315329234356801354078581224047160577986715966314083400490708521384243738238657373177310940815588272422113253456508474350144956792684188809253977633904964916290636062792341582657488279900448878894501481580302254215143968088627849112600566587469210649298864987307940416945792568766006361687481886586881951451957474120713696048136921271102237445576421885977018020677698098826313277934481465990809970220685350598888147198922319040447861704506669315717329399959834410912686256524111659608025487959676389125456848699933196739888618486771413385161933054953251561489598631724990756860937107474817312615777326354157269786117200823026121590453851020013362540584280152990262231650146572546776602978535628097205645733449228287246694567169793956816573309318878589087136376065485156237462257766748742293465922022793711188184340754269507601712969978944274242223658416356487591831972964717236351320786516120442056427375590614126704695259237381646372587806621712240852706772670990922256172776727088678027073558746921189773712340337468496584876711818179451580185416001542421043002432840818470703935499064130639880755805031823874347884701187156712369183884751585577029045844024567417911245643914809646663844250589267270550136002662362127762596871119963502726823345065620351274556731121141193145050758199179721182561458865943070254426169227994253960583506266229427788778922369678954244290617264523902097913083641007844886987299981530179626162130866217748870722559301272493516600314755438359987426469288973111977366285073097929887633473543793495628134082277489689139353682753415060332874402009299074533106089405813693919841116671100195480219877054141015185347361586675351918195622446362562129338022489761157404384793294401775852401948000736463805127966667754543249480753897122698714019478409075531854218757193266847369134598929933734361580387041009180341250171581182356411536752240821572011931392489593019613196427780644155879755091119070177225187077051183261551256910054815780637865925510093381580810339473832586724337224018421446655042737481786497998447770646350914924538409780365152832776265464983568060720822833108323107697177614949649917866652995283585450343451733875109211247351845802421500976716699642048590237636353113312081064634510695003197655990266563268981309226718955308078227678807859367805131712700606732932041451870837949117629685325178603478455937835756898361605768173838484608743619644555197646442762921756009845642747102992446690880590020236773066274981610208594232792612675906785548390406780742083180491009537547452224420279367843287275878311053067435700008832550465805091485765881855590029116380481062658243336316387306770954738739356242690808860187382885261424755279637451760144165839097351533834785858225159092399481674384031710079530573373873826312417417653027544077701201726603824358224860082393561015287392041581525016985242621128667692607964146578364861446028262879309628413715741356436843774863235432662760013037998163237950513450740427758413989652478687119342725327057351917331980149796045999201504795722725122342665361722899161419859549150512225366693509998891800774700400328480299924749826034401960446875602763859514594951213099530085765852449607424266803427508067305875063196836309478342372675119862776772264083869585051139422238855475231283865969150042995931502327389819557898707873652588977577878064679307859048058007527773514725665613478922350045983165713577978386456819971167902410703903275915298692627286249981850240112155095204117978073834433705099733790833657404797892289748121113865322927801674377277610166800732751863248457699884201033976188673990057799123568839480839899510825657158416440031551702138769585869964882751246335871818570637799395457899326291748957031711211493413143576894761172397213491587626982504010910942852314203996445171918786093557070377593969181351326847679135821967144073135877150937850311539644700579216686800854358035742359576365767708597870555830333819344927267341623158235132334692615966342667982432399515380241113887012774348866506261263137167280210508875120101946008950915599126041545861075111997295028498477670552786812931417563316684388952456461271579746847526974957206774746231383972560563344847610212044850766794582666174792110961630488274328813195571287255347483377810539764914566229742583793531903702831312889493841827035652114608691940905089452531548863615177877448574022102589163472501910958213135446027192061164250382339684080681991898492627997606920716223910793182458164237557060847089174736979747726430709426982905302643876037666076840319866278540833847270796932859659361558194975869154384255367659376211524757440984402219443068350112247044264879950703889282533711041365043975483898032212270434014196911429797048838407391589815270355970814519946585766840089161693042532524468740313839173162525197923044464844064796884165555428769414840168858032439057030291664926029669152687637806740266941643693753150347415080464578433292539224944212721795869209912552423368704571132281704184639495957490964716273291423223557450206132686126077284316838745221358627464478567620269967920116495567042678943921953690305705516459216816427746915415555645561275604797204678270593706945862352600779929326203389989428036993845021935077468375252977362028444258971072842918125487500153516345421163087658419645084861371341967195656074361835313190953664278801503784604823745152888823148002167510142725957149671403866360959664570701043369831858543424267181714292316828194942964544794154773380895026520094233789780522238004871443452691003599847408975553983100109923856841040596573280419218406493137124485556459245583882585813558983097642321468056765383258472706975660480032803395086482663580979741457503710337662908054112260017465790330445899963874445702127996773287704702818947293281112840579210337410776925389515334303439215601513147677923874043062041371012808878974697159183108564857406182474335402248248457370789398096196703932733584176542818741327617088706719032503418676195729939163045475130762221795608718476381409751519816488069538467068542580737594304429753646385647296950586665659731279573560349550354830061926225269239848136589028200958719889128337811100922243949000290927942351805848712922558573075575507515067976489508594182123210598710284839936211942325824283028293337395135823049561561448784456592608795891180004717307881669413104042227139301699351224169532136328950461475556733552364762835044272417649277641161566403773898045174924321190916696016928831298736811638140848993044239196629781941038214702042024262632317965349902740102540077118798995905082398715641826707230560425567249458643841095900121762102412221284255207440797888790385142462681829575173275322447778735125967415781597465442243265642252143771633082632920041962564598598678282357893195737594246094097121723819293803982329807035222419431412395566343440826653792012650317881244559449007394003592638108508455208546508286434749645919009169906823402981018749854751754994280183245543627856408591625380887493471264676729841842597358908257706855518986353659630196743056067297235128725757570700146020010336752312152150775048835793208983053771643846331512487779925095192509638009805081042916120960457186961236663667559265056482790263482723452512414622668512138261780709590850588641097963736272423767568110358972469268257110534445346110432498903800732088376530918508296384982759445703842743573298831868639100854372734102444813933933836056930015741989836316228648567442684396935126056885594681569325254134023842922533035238939061326619503755932246474281505692501471129763571509269051043821183771727884836945496911553150374995982072037684883673141767021718009240458023529151883516559431800561351984837456159813729490906490579321006293059086520544413530797626423024513703692803046623090401151821350214825044540725695528310559695013087511565080295359677215106152373217854774936256880761073132105636729274021850611110266231110713579823521650289908414400923723043807504843235034795678706218675409990979806171821872109751558531656521379867627716343230019470307047464110921192078884252644772080661922411438354406382545893642447974982672563274974360335502724597160705086541155774308302236173033735128566184310126953443218244744293618011445101672314820886295034078967399345771395747295801927320645672283337530858207602165673063378590606177330760237389916197944793226050724955132398574048630099575778566322285718243896514232091175623917690086451473854546036981469263377885359434509383238843866508717647442125595640521075369708074057990651044964044490033045205733765819374979839462225736838086831455292978761034650987395610046962619336714938163965306404960710352180894104350305298558285008857690374808137167472800485377192351661293220034706991356949004480997033392008044839145050794762757808281349691348384022382660088750028481049069107730186152967464249497589984587331763395563068877902406900982554472828231777528350317941228883160805508310169227634595031182362005839944110274926672334989235605574396102663552643692474768374858420796531163787401422543088437383113096788961719343817685927721800449676761927019532775967986021038561265408008336814795938687795358455597486037808175058846440204608713988080753391887437092139857767610540538426384363212817549137206094337671891957765842333203067167247274333938888062257846265415092517108640853535143611669107451570680847809335663538457387502477112679743710280534666859428856437475972398303964036416015093342566363597698534621640534597855416918050132001422974005439018870146092104723307796036801162865411569957539114341487484816031030860633453590695356464368361702004199728130117100146686477878676167311296641716711752054380779973795066438104292368660232531779955044922938244947928085228033536029625774786015323531806444587822951525150186176286100697625767412653454546102814728342165140077103346369704027485258444896237123996880664996983060368834667332219048667031341336159619603388200687703280212321863740143718146182793279643195073363259327866977571682610869781071242729520495162205090751086622292196564827041053491710280931658250968479227813360478410137901557573407379607693631670335872973530800294188156907024138762101450227289193527673223835288570528626297472653444875937476711372387555452055523800050156519617769207939635641966137102889395885301821639956656403772937401748256360100656205504479261753478667273014009587672476554678164963747423362263062759288115277852955954518968837469697330049135991361815280077232427813555702922700752073408141126705357539828493104414096020257892634851206007382308512240602503190898826747629235217916032033042517328493530541500644781512282446426158705440669984848641412922328293844450015452866855365010658177077340213425657294166769572180189421048030570190907556825811061835860975373124693650226781724626410573356234424656554458966103591125281257890642480357740031570238612587113277351294750803970213174578874038594361346769078443142103222325325849752305229131370603762698414748723137938435382211420795845095659613888058339884100912283026802273245009219451539303485197488188839036278987543492059229611633715751297849221159344814647881160103274143076087360359043919351538330584078969286106149104691745118212904326937151951143141184044642170505139417929499981089652101231295407719341931948843960639482333800024388091732368757918861453973272907609760674096110497879664436218490784256104924014430675370660615453101315341073690624292957208468148243117575387149077179327212188727481564449549235422312565085969974969006867975500138984185166979690817503144576469068553143939803648965147118694380520056268859215337339924700655592526014439547985819552165942591807026909341693121209286578778868657083993319550562072841521487028163942296237538646926433641665053633931020054870641561297357914530925869339040893775812430494624024275670394806846876065145484637497670591494301884044413379665414933495790563051610040153985788531348368635654225253338800609940857623771616622930212934022140068548133809687629270809745154975563068601973562763785031520426181320972934774354999297791728707592199028129951555755159596816486056263166999871215130104545807199708848745929954189137891750140971389275134915027238147629229276985344996581474658502533565020513501118390437203151581362600050288675544619157498470142622151620742614872867193247722402860488300315738957633414813857224822116141447053931398391408732081874088916494912410100634864263834589936835416603295832062826279317590207317423732399054575001841066792858898900166733451198146973881182347620771329265764844640227491310608641044607471998324903920790924340431280742089817463562856726285827434432202309653611964397727315170971473108560205470378551021699354665043221488123885948086516918006884721566913287798787196510505357368321183206884453890046282217088544409486419012714908162224715399439817682318735836902960594575211664080965773765470267949983431072339852113655793279419152781970382131809612838759863968904603157854227505853300029972370185904703370829886730289346786426696727958943304336802389051901209547408759746172115200045673407308865431502621101542730263359689746693505396013297329657505386688592724750217978499769318759019336192256560985407608140804951634032678722473972138764381626821737415711002478735367445115753114396014921026428749154941261417849370983495038101953058642586540815651687009974453839243079226305785370973857321503951066022202418524397535865037741519598892442422450504319334027349888939191834764148842337682667910560429140075464756742260055823897468434841877127323766645481343351372861581188595773344043283741080220765017685714287268420061215752215967430892199410969874410548937837884699456394451671789305370054045440683888057787166009381042694119374310805478696179797438542939449630360080911499540923741102526960362621548262777983264044944806803104030775033419904370671306604975273612191765246299144887184177760434577950919770597366943446794756296417690286227663584591042646427813057045262971775259939244461984453796708863845971954941297846000617126798456652888717288047167353997548156544230318243791192270914958262880277764697173293734986924234185102386478861193857150403369663705703678928798426160984673958924115170613360930744276075175929062458219164304063156513641173330740801517740414175628527388668814643737342468169404758868637027951509042035645748435760226979094067549378568989825715429644089724063139763412505906135095295550276699514923412047068089917196643967605274834286107181738540744410602572441998748821040164768476073777372083289850776077896539345220026338120725929479191032101406939200871462392875737369763646194166747346750867588369555562246168453497767185793585521165981468809963992669070694960111708401482788432859390926798542048584073806986362549612949109840726941317271472400869448430383983027089938489768838538779159386695333517221177596195092628153602302589109495021067594509378750789157853455566489903500001976737727919110008512252594132287472627477063746703525890112733339221281062017847379853537371021232655193092335249839685782349354473530693397132502640353445497360626025413099607163686189001698022452921364459068905678825841540704666497176564683293334274210661539941837738561183122786111170836518765591890872540330258056622211874875201426792369474372281262691654764251731791426955135169356721415199717372306549444695984827620935155458343317055864783565684922183216670422158099802484615653223960682855946516149595935345192912257767153971195377578432457959440504573181409902118272656530509595241082443272830642935607381480603820566933278763815762221811426923608599535483724347990755775695019527966750664679529529191628064361406117360832476029087376656521009672077402483528339893060449235956045718237883127598437071809839775556907989321724065798188457172620568302798944434562501450770311444724466129299627490585523227116223870083326602604836120595355376912223426858807116327234043588373351310306831896451277649638941695781550324756247091386583936143574753415421927366265870593126430559836378094163863508697679040791455729480452884612824822723931115797799345236913550329180623993352239043607739460413441679520627616688454030614333361268841416832833553919707314238531469508902794646899352925749110695259318628938174947577192286826446888295104938986621784350757830524196868396512630997724095733370745777473852989477017499162497152945579082282473918517704960104927159822559140602140717312302154991423590972329952282193606070896972482748606292877459210988322126599307450265905260762620560218150801880490069368904047683539348391785537692637005936430968267573771305688458480219177622227673759833455352790717798050032528017399204408166370337871210504445914953880036357747245179375336860262492797264899429814105656324762886625793501854899800212832243589321394783913931851355148044819190420015666211377617144706636831863290960256049334615438631729755851153123406629462638897535692837949401231433400068920261658071508439805385697547291150782728727722337470720840701643959157792293385474851555741059932843455633012823406570114028917989559801048977338318710039463679643024952935129490534674417441808246071534644584291824177060422110374112122526253695570232139334228831938455112952475404605246842283619227917871200145110647477858548400120267353057969666725172014596232533108359907723360184279716207255090320945967644655136343924359199995962012012809913316763446281826382554307141315338361533790204097968473759001300144305472248531062990476964752861195438670957823991137966315781482731785134875144726296556000993936650291725509045215106696036362417952762179154429871773835434466440654059387100024775338639765189100490252323355426060846844939565798393130206477156357529896516714395327142423651675619575448019429040323800637903858034374705924334474180508430243867302816956828966292823444166661226124622169904852772598586086584351282729978167839441579025472312556038555932885165695872430107346382793435484324842863388223175374248689763463671180108455790875635865319381176983803846000311762909348976424442011826573017532842897069554540865228495381960024807148207513752846209034739880286316707955510751065409724089142492823357726054608182398344628591646108429461410242429825450557689229204897230080488042321542852608941130093638518171961204341421552077341471464176359558129687102888961532450852417320449868473946262073674711280355825891659711522165637320265293482839196482112176882135420818865821113976631507729314801554002701376655303965066758627317680754448136842245145880561561263428994929326495019051113770124072753632713801154789313963484298417047355441402570387040779461048868474988311023748304083596609249390942962926016554791486244186675586434272729553377491713760005168095992558046486639733085699230922399572196642311162652264695474068216496693326075524415888150936717327687987517496601028211896478796041710174116267039790145055973718444545054438460901358089856986164555821331579737631956855691781145133060663190120400136242322060553725049472272824673348518680351628736076764813315164052951316794240208857752213027500143180916649873792418174999876685114259015394696857427281912479333227830925984063729179088493782458397628260557966678917473375572713176686407307971644125591918443498131216352964534019218398382727705175180384839943351912746656577394458212404039783777336334194375444295358670581301693562668907183269929186083248641273787035368656633562193969121723843572846569926215953773534630051783503830906822569450203588551751366401750511143944124495154232732561967165479178508284589585581965686876527053503773974418503040452085062449712334051815277491753225824685155175936680596007939785617786649783786604634203189277080985533594760386144458307231104731062916316794371335242979626939942750064397278180145137398457493006349270750620810856954642837756310941821093324631844131838694080737317243198587223821426411170999623172493171944945274306540437780918917122897879824163315422138429500774376840499289674475135906828895236902656817838489375807163476938771002307926881073794876827835220668285142904806471556719014337575963775919427195114222496800172778211170780914298642137228155510293097627288839441210079533406211829723885096033162314809417440522473815755376768052490275699383164856047189211481164654053089141475684065405730859870509552898190777816471973342855811613743388303784928715611396229744688375077595780933890776641546482168645934389553445070028597669625902085318351523500642301277562615854784140893667480371660911070619232585880117211116404018406107096493862859336406837017251101503751631623930800746861387996898455220363957162708993962045087957151811561864541337851497500657148192950805398191208008191784253987498010567428590802398840471166610161444839867330272335596069648601367329684799954378655087823610926008995098242023207519287682738233380563805021849147969054440286192841134265742676183156019713252691739715188944839078178160875230651668221344194780557825969615946621201155577402322600380164594431972358610971508726221442208224825004201731438305041258706767525771134344699910491815324365426133116149581845892479001394466654672279485502600818759646814489644974831071055591933000967746465413601313242326012912860726950492149873005760730518243384029475610899932780133027066786315560319089443998122533116580857567119137221290707521314940585421912668473524873476195078475012918210243681439769168646951763215286085802193944757572347903764231257237093513426996349909726619383966479332900152362296317854822162894604722040679390495244572514032710416349647276593484607731313953876994761217108343334994067001167172095028141653178595698315620131706888159032639963897627426161817869465127860708899651345285690748223110358612569702792599227365992376084284002454355760012534723510892310428041286770175051632117603152317584659462461996692646303456421935478508993949878849686842769153178075151980392765460278606624281762720267515273547667707023689133402972872560872122112676364391530371675927085604451051185199397298597558043542312538321141333513169925038484307845346140536583207022436505320266233111449466669681962754412653860801127966027552355470125939236902319019151692053569870468519126842939035475514234828404061253540676827157570796655376503369081647677236192069798781886560176940564572522432738102036972933666572369850541295892723611386590868356701899291809371125835359665730917897140886131255308975852088942603420107332686640718967105971963935849192332602176167664178112489805139308458432791677333358828134666183502109656076275977718567634948844042521473629071854703520847934990003272012935372561852892002306210491209051529312101643269066977018880349940140837750187945614402135430197231297492622947219706022173022616777122571263203252421486835689843987489812565201932642831305929884986017499076524243267496385080939395674411158253658962907483188339129179426011893542511824534931690349003654229288822349681817753924854741334178177751736848503521234975058171459868439929002924018006396965487092963494107339586040154694619874587057806488621303369468697722026041949205181896167575095537089664493093075249592820157949306729788078082398878390384989182534402312095504466457827876630621593396926614121506931970157236927977381868807017809217736745177222222894870118165920185442753305391414114250972077613013834569826606132256630252666578109871114800187659299150274571910707793960321652602415873729522664051859028385129811133539507781728894568579386111840075796008890615150438506136662499997259965488358167232011925970175387494613353048546938581677167525959269779659349367513168022376216487552206199624325978539856010581646434371312475994232816504397818347636118288878692071922185567638517731132289056255239750250303384137940061119154549290888012263586419085889349911966627793880298861931132616111732647890754402350346753289533516802300464499028176827943483652865980302986042458602990412237016269608388186075719929332766060104130613992840056069698327081534398631322491314325067689349295474618825884207172417290095740545535255231904145180968389385732811338443205095771468539114339979323235547219356136148229327925878203395991964488312065386141762570520735332906531055953818941646590957963513859182028345570045280715016685460301803207864492866211132166927070000111851959749682327022681865975693097446955241074984371663570754227408798677029459458339323570697716545591994918940558848373307506242818279211830470398193812137550286408801183662753237893073811056646851170442737786213300373752693370851398685350850200109793177940086283853137808074100554101893383343176993045317756449295610362216271672046191112780825557602228168567356897454423751674578831906232298692525784779878558667309656066679253039866506431895939069015007975908257140164263040936487058853873264463721436727698421113612892055429111281411479172564538965044441307143986846608325271252957497443640218348359885935145085683743215118298751077129905494083640813932731127347594257909117449924304334054693749043877823883549153177029660018460979299794012856601592120474669166592240842637406037899516151380463808803018422916909171795999584559226832650028807839638615192271028198052268838339584772581437439554129993883412637164778198899138323242745484223643925261548303847575800970467230054354696811332649014182013466710826848456652822842488500381638823947965389014242217512261672854402984846187440548745398199188191853267056122505912633228543351605629491017722762028086412268500629700754079740422716985268789700022193698069576862931122238618773154864333946634214338154703098286829580030727033005255411018266054079925692214988081281207406937632467294785195321546306152918187201071758563615720588639015853540952208438329170216353140967362711209068862308220686049122167731495064707717469552576718033703100185546492497225378225167477659929307978863999484405983987462355825059687157079551863923295798018916962276563804798524809185659872939036900502276855901470008118463395305693183437654112742148683153300107215649151125274611341218294814587945747786215063902683159214636136475762128592919686224415024552692147626511426307353014494877192354208500887819588205781618716150905171764305341527164126079379360690048790129679972469802187015768949414327943620315137123052378149915411741030426629000114425266558163041201818753951163436309015064525140252019613020285533965347051423759223056339192053777535812859689050158683393756226617712245863556108229822560373169806974755057650012240752929918122653731175487316999678182355469792058584645326417868819507903437907116407655269234109369746855841158765863866462702122063405589485821006997610637438933639297109508047584001670920182400626089350004342920917122530705119559055013216057462524629160872289110701421017188576908449080904026586187391480026621363112541173529607862444553120567666038959109362182463187989883775806697533687144700775161327037996469110662435946954870709889139362257050731257892262323450547484635857982471077541599632803154856665284204842877599731264083977706350674017387764330239561708546356144800619830375258256930436745160585011885277902358490466965834587173595137999994412403673607792241084189835685734528829739500816741452832386251224962284223372126212253454768810742809609907039153084996170449803657552203501183740289053204535789374262698403005750772805288653901975974061676855665068469395218112599138677022071430514377219723226473051080124026065365957188723934334090503028135892922043789237649012774069630639092269873465037351021369768017332109738981478097832540915201128343102473572566936156259064960460922702266547659380658905429192570860912239412113801307267883512183768427330986511890200314327684224019135690308543500523414457184719417133393491529860842948654004823227400000469811606305561174479716622526385508085868104662127642368542350658031366071184482541986488446497173181329551380923200082426183236064138086889035816974742491521539668064550037257443201835918290989872049909121466953129437724669253534054478270030188586875646024167852604925202539052803163975554890620846304646815410763309262217602757614369601272147772602675006756468196016029323514649499894922451797867112314980818715162564694157427761341460687599375246256305860782279427407403969352853460179180044026416418255567643324297161938118072928109319023982052445577110699802532440996516350342390818354798091920783343687226137489749086075065403609431813466141309199457118318306245507196791012783853249280136033695545627483850789598649681173218379028203082709004877212290808780920275407127877652495042618364056534430554606973264462111747263465589985666991079501334253477441608948303534402141199639209375180435024702670185937786680446269479588343243494032592066298299842456372203635903546431672608000018367700004690670552158489898034776386689962637081973291425903614189584072364982662500764547041991215698876335484727296304914126126984220183623200114525134863211297478087357158575303009447306792475927479865259679877370610934422461557827613997382002503188572890179235483027109594287276887701282723994299440714836943115716818840882081341526910746124228498895238359780017097324435228835779735858840185974767610399368043324371828675722117744238429299327434099532693606671606918056404779747504862081203346647874582570579426887602440067072209467810229509836706448969369266838622400922452574855810259922171648397487069794023534162342488878553738662375772347566730330739310634441841630450046394617235907676319045180654399468487818098999121138384633220573013522911192882469971971212660932142890628816902296794094143778975735446862546123746867912318813292268487650689863039577032955901566116772742286596003772671475153779712276190486539971068404118087503633869671840529653222187712824095522860529176243070758114444694447655675156845342271059278420234750743264474370147376929527985775364039592526763159900249887980763260883999111131654469128274582408139573192235116748525192527249785324722260464438785501817472557333720963771020875304097232002512902341573032345086125155633612265106423207626195525749886507965519597222688991575525238419142163519384149911495652840673921925041421704456137772793369492326342144920597884797040361243865270967641363939327477008868707299607044512120916517536133410481263833888039075429541174273838249283288225777358877820781439119392262225859044185512087057266523890287668907705772675795583618395410255055411316450339121200489496269886120140677774724144901456219799292277217351452010683543815332106667089895678917443727304434510110983880452636463299527081435037561078340568710077330054732690113999437240365928622476942069146717666684553819399887570165664959148997168661594847248693375802506518078790932363583573160894774377310248582300610328322506938429711362529957576877822337757500074675297049403426458017383252060853279348081842296984132207379643709290220499225408891557954755304228183445214420154703917521636734894561727402716291060614377897643309125379751163209404612211995476264778655658396826640481852078688278864398854481328811739923200178979396290695691716588865609392923973923207149498892365582888152861568716961201236525448220276655321979311495440148918030222211005359068322484858615758006009156899760665128079565397402221173464878579254481799667374986146435559595153396302220785937284132884277424311396678525839346801207906756240764290630647508947901735126716737819996788440367397227255446244790495802734669844935435416523167918497935164344717806905095368432411994845748839232613509237452182746708675615781990038026379206645297333227081462884259291379642652773582174264006415631329345431180760313067991348606929166741386068113554852423098334210203474299551205343689166588287550245950647885998850041061087629980863310093552624155571423668266488877819845319148958977920823631898661754734306841905253894255456903368877811718487307975121585042230484100429250500375296112408521934864673110000988360319910248435028195518213398766485635424851001855211365414482399193108290844519984383392764878628165672251918682622669456301442970308586577903537188328629989922414061038826236180371097444417992895968862556424341993808702871281085611357164114315771123590422079850947440964128688141084149100295888815335991368188516522766105809837750292000664255256973538051359384988631843447142096599871215530030985424658511433212278876841392860231936837703889419301282411242570335057623071250244103885163571534141133051455699515762262669991181331279545070654605852700393314853256658638181829555544111121374321885882208705774412016848092424179310194752455455292391011635620239839405080787845027475026178441039307746644670321985188885881764612029502990496388243321624802638356414693235646728406573582754363769637430395238771747864662783922045853747984206423591091753496214564897663855360496811498636758272297397281566973835800750025896456029468322783187731871857421276243106045690553255195652358493864114951134988165836192720734960256861850230061177597373971762395401719315066592984303906508007828306227726009441619086593682954521262558085382705906480953064883971592105587583705390607365740122024368643485768657079679458903334443199963599459683078990776410743891550846344270411972942682600218790237588399636712320065002424353200559324406473828009449045543225691618206216835002894196152765171359623578019596740360562893339664084485692241958864379153403435628078509521385928692988056523177225444063717814323413770962452121089236952779927361165967025067910799864569263887841480681095768001008403396934613429322486505004393726842403524653795347458425414168166251085922907357640245864442261339190504967998222084130949004546696006940220730691044834247268601003245728211915279051862793540760328843314886153129786173973789013583952468685510933233774100340623400207764584563657854478100712067294888607019037147449099902208593502852995168962375223765004525946700361349666164436967725437155606753781859782419842251724516595173282318064332146430147384810368538966844096788411512450826433487179240954695873963971721633632155114634177219415712630018829779155933232675520348794077518615134641084083800808569539202902470503140619992877895965122093494296682381218284565824169501306721328277917152827725348368363559835995192603557119918664959222827792228805899260708183352906183453775675449781021719651795154320403457209852134256285689451020477560070720433011683254477049428295865512017595285811113069579638792902082052079237793975051923273905920612954410978967617109108033754847977820797132988024761735174323163909827905754605897333122778412737723326350544364630389739698921864628676276049348793141266799393890150001374518716103551896925963467691293132752853554303381731069958498514145960643690202869761909399435104135631221369094204555275833967273778393070320966737349815625132537703848953711568584722773651736216205201493572584593374226435666259541616977852658972096570126454512585774910220787516999767475432798687007573422474004074608413629018672477930691419985549989604705073850253631933868757794104393040541499476910302918656021504817362650414185988987885555272762087003686958021039466987587626317942333948593655812807474576147287618947940638704141769848090773908516830981495917205795365449944386186391948573614994152090783167747001060033409826282548934828090689042833646929292453919161351371229181606512582571269420756491401292450410681897453897869779676861991146130958950836138429358995410223467912972627209379103714559632832321649816996823443811013992539491553934967132944622148505322146656636964966860909973236877186607757776329780846070100155508012848592337855706200002992248386933369774083106419158772880659762125089617980323716862847513168326968497143653050686679385839959426927426034823471088750357507864479275154378845515810847441452745293334371984481384474740446365498004148219454162408780720612970609739747979522401103931050943836177668618735286695191692565995797893097612252231748437122203880538511974267007695005868486133831595467743498771228773562293536258695626395218618047278687488424451287598037292512243926671652808080329452988262381949804491371884449568254973468384351071642068844075851223016055135248289006822603028876866736404059694468540443074139037694206890453556171359439662187791069976695203070800631930278206237788804066036448624190011039812147722488530103477479100304337144491373093441528124154999196558963409539711063916752663230040261797071304329716442079917971013972275632601970181913416385151015086213018634923309105018260698833830498035876232519486296914481807246621481995387813081841689252267402260348968491576375411967268802361571134571508670271578143755956322435700032796763544424661945188310015763005844495675409664091223253566866727332642164106367572933793177282087256337130377878810115367450124205518278944714799926860080217371856728184189200226590834616362946326419877044415590762361735902560582046352106371519001498363977050565828639343045309356022188451662534964956282220514953941316173287481652599279220854747525124664531102004594095272636496196858942517477143409583309420118106413990198705710942608738676457397225421062963702962592664919808007350325191273709898189694767441792347335961198369210312325638229194063104431717687880718458933161926652701833498533877185809929942020019904922965934909575082218840031450786157523157836895554772462810862351480826792419532437175499815649876734388946988661639856405432413029030824028436198828448588477404689018867965316117265051418812386884435182634506974907013790461988220304258312121208851058641160112776414067243471948850197419841052526160948892152148488284877314642930378158621883928137306741678657391539115742728705971490809163749392400206890381171773554132300300458941351520374939165972379970147276736707844714247424071045258879654876788131425528984833588599071069648772764822747056573937405879249008549438175747315651202039912980565540689485832669877107252610967309733201541978409057484066728306987857593470617258698310032677891254461057475001137824450738289227848938728540121990099110953454198479269726437113974521276432833884931042791076671522699746340347291423041310947056245396016645785801870583375052273298731243065742613428517935960321475660645966144622319212998464762919897254326100215698092375087880403037754510629361207184495598846775630510051868207674016134179703466450974673890991240299307001446936953771124101209327479128400630983995272594445860181898726252636046800332035792546880786197194026360649337686675941328215491796984786716130650651649026345989485314469138041152264840693928301784094989458593277844013590326549635739490112229581440081854818267308656863799118404104305169084751106787516554077997326272013467535788622074334972155426700171347296480208928458119221949933255013232578037689914062327111418685785316650115904072459999038345397058486234970216760725006733098626232587862005588535472632742551462697432023320681851068766257558984823026243397624209673611799849007570983106537702031676804303966539213774468768218854049572555762839948799864133920133444058912472595263106935853769359479507176010634433305666843198242790100612864333270368838536908799525638460011439016672101270742286463024771600192577092742373317629530276553203291966961855940973425155951177215420847195790165863270991597396484452928258978253422152672876478318620998915006192473556053015263263797334594825264535205048136379728747827235192666455457353920004350382246590928278220376552341920459945304165147648915910191451972949338447376857494516131851824224937932647050686549719811594103583918726001443186734022618811882110026107099523777751548592751491411015012514912557589201840757177839843892512012766498697293559870077411061183578450621384980643017050927810089352528322311479736892357113621048967352655450084258758926414512462025382371945901711459650651569806276983501444747447466946361162467165632047988162715530533435231742384302751047194472046331941507113902299721276305214220653461059886643160898704037205157495571651304578655201842136078974871875271477573906249676038181756956571419380905163444201377902495280216145313455407612343088411036447777031768797113926136959247000193710370065904788504391657291038062908517447841419451854126731001662662393568723853036524198957970383702135285993755129331612983150071709651078564426191758011139053194462868506218256476426220349482797904560907999922787686594834056123619402619922491167140122377551059435272849183114215994672391247569324397317853046786556645658431014114949473189311023902428141833450711660197622703175917699362269452693468397792856854994668455114680622545126961646730799939328433200938926886028539150710796822819231051660066914573083447579408566426618066757006135265641251116129230008734303667336119881008604743028346225789242229744980774055404214925097363169247086247894943600188470792288128016315484276001593703144249448747177474891905743268635288004865948793534641764076399542425434631836429995470101647303737352408454463020397857495986122497865842032507538081522819970325921936556504724887971548163306988955984947136905485499310578870533746387768605008343207712760103484806118415165653535413555419724397628002901706611554139401274756480316708470571362890659636062776013681092840290683545528934609739670279475963887560963006831171841899077179028363844445177393544015246832182566973482978269361824620920101136092727003120740081667486403542503970950033428913072054625654938529131149904481949117881062068049575622104803974376207199079679141842255784372029227707785673169390267901898370915172940521278828053585158205895250620934238607044545773712553446981830933537406999692699698507418900996580211919597463187103931892426362801424501137593292236172212757445141329884158225661517922833215459470471123273085325388958381081266435348664868921814018869320693701830844312745660432247202479254550547052136275842364902592106396216880130675900387761036678508951749173601065870532575957558004075880233919127575806197133160739331511014646735272581100029758317803719803045707455511532589825749307790061163380429230936213179270066131499369981082288042592579778828244649839508968670500928428047168112280326956984248551412045847733510648090381464801712134046024380209826883028126606689021430136649601496067122110728837082109985558190529815478150049203670799696333035700394200129350348836581178509881271601781031271021238708051697930917929100862326772559315027301104027883549209990630145482059197054311728161160599339467778784239233119103714109218607512495666702075968983946310264110034698087292528789832629737739534999139278113858916207035567754899664336774073810221558799769783729872225933839467068560650724613523690425613787476716320681685968383367603640707642650091432814950194776646856706890706871161477207752751067164299067422578564471989543366740408714907361777345114750842379716541863411775496377249970913595700476081695067794995073221550466114052981814532479393225378681467220728269291009408669897783756950094889574087609181465483755344500450837948564522357766956876315206969895159085416288281052921754810454169930538804585930404387303137779666227397128823908967331068400866018628307592807387435504497265185738029109639877528796344891900871959838736626605395819932314189522628838884067942601273407307422844222610475102160867232414371051135617776286051912254844804810282463524283472062369234502316073882981268199934996832208946511230688462081414554091948236873284466772892896223562290918829302870469354646374326059438048569452811379075514576580051071208470008463411121553789383386063202157304669599035013156818947316901223715759052105455621072980358026876395695913628103943977143582268872252162367295634714267969947982528261863708976242524884173051365753616668582395058545733863253892695331644470943583746972163101483956078257935987249091381800113002706578771554578172872728705446263013889298260397115965079342723203717577334403547606703617800926538859964029842629325544451702210851301845058392644862656568765978912013616392650170170997997492335503866545403068099784208528767982310440909641022734430840524337537870433791554465893269646990154510089594134024440939815176568331643914593407251543599063341721122671443816196585705951199687726952849066526318993795572767328298033020608191080009762871979376661845589981867838763787160503735368159542907214221641122385468587431723748103683127532067642966599245350407139405279176977544062111136579262974329421595921315644020520749437513980296377823550156764696006896296467959165855989771158006793478086501832651016945246604980720696486390030862167420854542154118942193096915703231368042694830554930381058431180343729035687596631174723122128210433504095607338926395670384149391581870381564905983971734132272519510383931877113761869226963847740955611684372321515837869015049076257484391675328906268779535044237261954032310136271773213934997986596677099124823152742839148332584307025366216184213332236568445828797039410523889891106886180348003285186143228699629391478613329764549378769537635583888642807336261180169458221270812912520400537936667945905299978057234580924259186724258831868999801631560928862168322486359926700620795078444534777727221748240868776988111219876890035301982178581577205244783851910189101670440891172258741688385299235660233082103851602691427769601904158072439281395998213611685421923866957586870498832579601342960661460410564416477686052899419687089999008728332459238156206590422460699220896380184273309235074367272091268585139987894806957415561619661400989389252938342355889378288602971156233682445555585707197339050147558887022028855790931952990200682570842527406533438536093821837939764343604264726801472132921332420345852208584912253598311019314286034025173163628015205158769833356845634652362711171668628855413351818169190660341094160821324489501446640488557101000921022045801260843389674850134841625925987182600195438031420566315804909778610947929512557615899936562700190375404001003578418457089770068598294077026162331797792234380811814174294375837609557523034958507014210947190085497053048519885759666270078561340981036430771726584683225624203589540605773785081887436839491719203391060183063438460460294076899394795969757527531214402273186004030991679723076730110758108808762314656869861419572007963203481671029310272668534942559173892027082578026851592626711900906223190665904882274417599418604676538997339633157919913493091427220194849955502201367682803266755395117458505514649938950007771670034275189520663636491929563579498180134268232693905591768716385854920763843024662900322031626429214248190585675372475320527856179522376893655818673497391456815415350140075519642000724111691061611791258200328192586189812089079238071036735642550537574223793664832310792612468232714108530511430312181703246251893109989066342901376120677898309222100093241668670653849170519030730158882708977581903358071482223994549290809445667365355869836117380655207683702525142032302551209588027035159653178589961294259504963015106558997812317059062323871332558781846639062134856191533412702238177808484639875262567234283286770660212276482612547296833550727155325214515998284969501197936266399817368810733309491703788665575973944179233174994726328459278937957417946985784322163448642022466229659031110372239847449021877694229193967179003320816286016286240416381304629802303804673254964433466770268072385697458048247923287757956972737554560266560055342598748257611956989207322327839133661379154527643741093922268585039652482196301172310515448029790129677235004662246774918132805665292986703694297218419508551621098375358259924198079504067993112776717600964217600574514426031511667682118708589526822276652755928731532328714201428253957073618504975203080331239427567181422459052682776057999182636685804812581113140765901988679660344008016059618351761411072491939985073148087016095990254450582125764121596442495128084204798851772428653311454417286669329635315653712819257534101648937478518409652883456047884350195598455729316819882469843508226759782712688012087785773104559400220540385119562071973726636565638960640927254341507884888029978853554943591183649486137574560438198505738128268173846331028995681861295767979800601471037305739196180696712198003183760180980328516128770316309076853105711281619861109937836925495939292932603097380150165323434317347865676272875415240631577259296668241912741090633658448468932636325365770340835322847591638548095167118031655022214666266761831530329172343946551999436785955585952421763412291614388256820634907002025726746625896021733842914109936401179008790325279653346579133840205674637036913756889390119397788880150954194200390879577983594526689725928877441583297203532338854472688950033010591440209283733984590744649645553912389174086811051073884568025407428291177811642274722167391213487995525558338990105823676449617574229599020424394737357705091911749546715672528271029436828020351235889789793193545516445072827462905476267510841242267543480210995774864401993093822988705706820000062642608533442197469500892238274849601802505786849216134679313619480544991829720811292334146761988904787752883196535617244648893182193690174209917817128761231540250199969410401795759795645879837786744422326769962220875939242499185158787740580923846168156112975953407297818002676292497915156609632230525154789234155780377666096786769324606426218392705922469562669557101536350255847202246366709689867660066360923608580995962878257120396061058145944245102227551948570794002820731135818585774961283324980685547836676328720122347154317478013127647686923366449621585427673315058048111141339921000058682690637047779558631977555603016820584173291157011083709138288529418638018575119629521598502338253206450609493734927505873272552802073737869717339287552780640517817105310547011877640409520885875166524932422844095650291255094345362016111891332491969358397341573074665206043624215644977466480621236521561456396537875392440757242266032503651967444779060518823621778863297866524561746783042521153424374077065486008136984770748971681710139549695543178246543456333712640027607184472289431928855370075932859649394802426852625107376928630330117361720494818529954022732804244828508892735314182808436253332837503324247663019434522287989365135054300871143842680987336754322048764346535859084764032556128453801237977770212636725411877923966243299556257750922119596533558245782427351740390238765885616835271949052191030016855201340395910463865999470991374715999083477997292380102229338474993941309836231983088077838272471205631473765945844855326062340092831611551119653418916576870912161609933587159566246986342695097025632409637491908950188566619759735056650045818575796408612761953353493517634245589367711829685474963582022260792604746164303020968027290224152194631018883254076280642762720001608411247831617863481423176996697786243816110867233021591775251024174602757783987080486959551942144313983834059802961832602715818159454784935848343992046005399836279222964793731590806403420981856666059836353745121642872173958183900810587520681328095416214669852586691635920654430248845967150488031458643879109133309741833345254966579658144979197061528306520714779189959246400980809967683733055304287776816069170271630467796079313159659628353219212030921706204692534796674812685818938629143082418230706523400069859857651341496959320989868209560436050244999738453923762465353837884164991815262249370321554209675295759400013642391400442806407106281923508708287784114628514350445641246824761357808238751128144681740594745541427162855436610828360393778713988178853921478267493193602769721572544184886149627381760312120008461847677549716790235992876753551164485624590141275895211854518507051067397871375213841495919178443823530019830605070865800716020450448112404793000578259267311739269808727432820266694684627878068836215856631920713586838782869212137106132207174226077285602055849175379616717798962595394097095117944731283689167104577601922980870747624797549196645336259519228850441713381209068501612600130842615189256612667842785329697961429295577042769090446708465569242945335604608812613481990899863271305415146737339003260954576743052940176807734421472160817338085384691111301758842962420216668765905283348412072679239160194800219157003329249784728212328061895195799488624758554163233470332281919461676672804903452010963701144535673492704408330758165192831541524972484617492033723699238104112869170639717533760027005939426915037204115673266964849814492726285076572276770437530906218407881223066911613734360518872447574463310817958872057190371967882625471671170332012495808143672997883308583378926483283674342349709953005388448701640358992643327890153646426957166926489044357199640981927133551674168333178210257283667111225291993650561255992309899940689260900830038279502873985960421561360838592106196832823993962286746782755053974204038359064418137111664921649520970139408457606640585344429876491629418458164330469377376189280907958650116022817948980013358085644250453876828773296032718740376715098226362164325457663451050116576734282122441386253364967630295623558777177271819728580289646951291157869525763782884612591551448728367493707606334897076676308857676649106753135139067633004101938591952678722896731789441252391870329506096968110265525621456235963609808276440370616083671261091199077523157006134981620619430499825673847312473111856805107122790476277523468399822854672793873129853694688087862450757783255848169317051498479084775920292757173266140219951567455127467281146528792106965089764980187567073295282396637733786827801214571431986600211322224189120013762704653443534263059259398880038055905554012817092500277451685748988949085382136983335449351987098018893464660313505745724908122310338201099417126314213181524489142472912355414121998936178099909484299839887334551565380772452444653660111130439038586017272966279336222737560152041659199731177978113804628100779457025564776377552045170861216499529602230892900293353205753946786963754988619264904456890068999602911030176192940094048443449116330013019245422766401108203388639021075419211067388859875882338359980061565448178856939848037335868890532249356896977101964108180471015425470621466410952851175100863891437695497613606490131456093892611186306250749111301678229580499756167733477075071402464760349875666368839226316079916369144078512789481930549861735771803037382676046771298347914449587242770334892544486344698196664610855169848792947122135012485985142634850702639796356767570996345293425024945968838332784114931294488832627452043913146954830736163466119980703325799695196050089598922833499635577804909644373674346754939595125414229105795205167774069910090693582421073241799071114936513358958565340207759545268627913690756836253194514785214885992396779324332689950860917240983129685689678994632329159888236836481127739672198648842057927489560084353001100423458594387592379190731566048074967498348693609442557530104777520070711356105643747590756729271654781312288359299642047200898068075611199916809637420461012447456323122900163827627148383121852439034825841518618147337976999306671314020115142944911501714510461903434109322430208770611940156440042974203648272856838371327883723513685535860128375025897890771131020872197749635189977559426505498136551257961614496563456867433864762421347892992975831749700597723640486761920724872031934875128098594922048266568637294617212733371021567579619432177756661648705220884972766460024041207844068368101079447929841892361258225902971539055291668793078102374594058695178484572004691133986366024032560425924618426634998557018802498227895460156846650339420441355665518197574547279470865275692873564983743228520206757324873173136897468257889507511977313810420802965285965026332613877826571905379975429051253467211272263164711776784776685051337701229198964662315259316501523480621219871550267674238536273969430407538255031411739746820790397665131124914775811848911064350757897336773151720774109581614990934957481785656296777697880555651494055417178683520781750284711358269447396402170433503157109389732619358280377458925878310308224380035279181766199900217425253035272484428578735910722966036043436076730972194287519301602245846091589607715768736121772632872115822387946665892756070754733976106399699520413131938835575563160348326580940839484329230584457089594489016510483856585947204499012652515816896034191472823833987420591335480118822471232443469245886062403000354928092152348448298834267424828478891757516973795909249465203369703317916569852024719815103321095203142391543562628289915278768936188696240913473351023468024155388237526891278431629884142478060631119734879604175413161100799361203287678193543931282374473004639455597828527871794214900419178207480294344931210408115205162019722728915156695463219205415877576779778445238851901210657944694312788023964676038186552565647455803531773013118309012740118496996737808227750019002694911547970856210807469018234491335073318796426750207601226788408029267392599921778821850983390819026596645550162198964543233025248449598333219757778533549498707129748843671136504419802547965402909544894067415972955098208395627066343321106375774366830572856927930918424394231306552283913389793818392963998619674722264701798906702573474169104283077208032898355226580854395007437838104414852108957657339601061820583924694362238534682812402960836795555676269160742356983909829763518083285274176140772917002782017085793278281467450027231351223624580151684094026021970693852932124560972558321428525217674719250073986550074476575823632866385051417789670791163018135996816920425076169541296247852546440273472753889856445777353196312084233520398746491696067196288007275452566572686579534205185639991387886123272423555111255322088938075010167623570927285857920762909262820925672793409771683915750352063985560966810313926361354590286414690181589257227899849841143755845875869547876480640227007906396640341060842118017482485007339311452623469512829353444271316625553824683517119334911490708643075140041854778854468140803432404800851560736014787858478755837041421602310902161344923476977525912120647665609373287157456561382833753035031170074203075873025089194641745184029530341395137300349562983580159565210562441659472366999291422624989538808053585900717567032072444204414417983505446949141391657894792156340153764841372869650514278999325883065126184041194886828139321822312315841506312703239476408743189768625967057108269807059648453932404245803364953903863486836117904177185645974416572449586981127093287486991843305381062548573417420175670031987871460873654098920226343825201914949434452693320117721927176011745360867122605858542992128505788395770651200297245877790045240175133541213939204401528915059997397305176376542218804184208570874717657270100592867899054845165119001696721328435238483933515860826056952225334282998659621884850153155035907251194715843182518951574427870542826655426119542235715668004749440895927123182122196046666044516043033617954314220731972321696109362344523278337771473906221883334585050160768255727755878972594950797974036191761548812121242915339572596448554341890074801528330602242431228771300045037178743584356747922187708140418498599450493915395490675962119890971872524184056781099978588069337469467378191807993682521331528834968818966571639585763432659230993654346229421194156442820221258765140106293803680005442288221809618363897030818700178272147520599851671758091395190548901033428784083838586558420102189312035390689760725778610631011660918923256019546513704031654101296134323344166606518981278382934648624113815518386048322004870981976440340524036600275916700122960989280891806453960720664303564137034987666442426541172713025176683630823709908206320741401084531885463448809129415996313737169951167786749079841916357419455893541909995215304388178797236917540003179537455001312749421835482645376770038474666979416551481765788572130450183014667825709922392509299785733312441062779224226770607439244622432641207105965229610939912347973407187178907482919316212275418862403382799533572371350774925050754876201045100436416070747773150575483749578187990950864894867119264508013781816993080325744885994419705961020064337559118447445297697230358214695365070866526070793742786038939304728820549081064984712807973440375065990225905998524863987851297019171590908732928899401899785413025291231074494916636990827588093917491375259598862506622404149613706236558971421217235434757254462163437168298226318207024374579374582345472385183298327507315214622414041392617663470202697497116481703648158255768954025423604808982196270740797184778493369972880173131187785717473362308036442809809951177187787816804364004366986033883908369082949445191920669942226001308843207377529422689939725964789559108366838807300389780757001877584021594838288526561968593642808663066576140857294912380331659606184642295028695172758501773395335468327126856127115170255782012108344120317159447692837773982885178214865749658576661359120065016086847066749228874204811720953177014940970773114116555677037065756268428842193340535387299340303082184456997024886482246929115513593632590549636783606503288128721088547205638995604470091274889193727321578875311862912653465088754480790153487858045350940237482582195295553715432940004412739976216541450202791379401578905658567429045069551090360468902968200465246220406190359579187283580542791572547700289066741787797723885276106931590203532029628912251193923394784986709796767449223078796343915609966344587303255991904492763335973829491914467612779994104387763453661033391772853210282844004035551157709245616214331628233685070211857540697701584022653132078383161084223300240635592253790539986228101762597132189557480677406454843581818776997379616954728633634373072409170222884578167022770269697101124014948651726863372749893699708204198826977906762206339705418806469728894176468310328010705846925659817204934522770185821283831478587291429557837109860167281115253720763790195361466022542382255236999267079427626213778783624994043251213026170541448317535391266647875591212953656078297005808981014487462474195425959610733875827756180208701305359247011796446663925005463480405602766816342974243507307204349589866584342266229125800034197585058173952112553143944876593840604868487830163219375252106020585356564432459436182145102324051925567949067043768944308667240234197715021522747633328690727869109168401255280024412052825442239052349681389039794250566129552234646759602799725827351646779719178702361135267161483333659650885868027571531572231916373451042885194996473154897041151495036021581226106629021519319591972084867492911061378733229846389520184289263271400789107644169959167846119237450530678725313603366328190954170028313113747600885212887270765114781489833748928269723899261273454276001046363429739075418690781303032391919661789228542038537180869633010419017464161294353396890637221242708458828800792019293438830167860400240935336149485959440821770652407683446418235168470307759620522570708313481086518397696526833835643310564833938104224655226930544956739486958191714451090897776249078643067715723808840540953997717069065226819841313928991852771322728818980253476692803219057908517398494686168558572527707502102942994231534069063625929587132005858243711026710316846696433864981799617069605058144488676945161690892721905761462456106713544604898048483727997457751405072339192847938543661307266755338081755163111286298729708150528116843629705274190554500054948316321032419939342367438358042698489411037471965128902782021256931960987747667489676615758468466986632639547414504011314352047220624287968573075362838404801983630767811513849293784943695317756277908483090124042027751148151936802521756091005189014537963146715859024176982168665078827272250870635223214300939643155790323311805598422917288272889147250821381660772640990613367245709500004370541016137456213180886504402101802836657596572789231820996356191538102736238768853124668758367704140880792775876038690315135723169149928193286570132900233360461197992617635931202869148327822721058868448955474443227097664993206821483475223255399763278833943896925205822086004756124300364228414601730896383198970673874925105862883792773673086392989006098230103222506581742983548539573034387186573990793337691721376794003249978232827063028280597529142342383921933210323129024965813217172992069154919307207425047522229938488204379117565689723282487309023629393489345008478636582379920016369960797638864909120783409608794280214025065921332724664622334768164955252820554658778980179483644992942073535282033063690992419458127994843182976460778807449621633575873681869267994081816020772454776633025545378008212244527319308666955947425182141044536121202618345386195392601048104260182973754352018352143617423265402315145512914680424710157520870516330475279741392734839927345749344130255668115950655873693538597096539720023615829822593416580620351924077031950907390426434102372038111003654092403948604831368850636926140664634246824007689996068424596042914666769340553067049570881056766132895925956800249671079425819686226221179196020233044323540752164992184073223509281805575610368249811360852483109345696689504741922435855588322783536002768940637235337134813178057689776502896875076550361797851078911432140182421322478729608491165909057076721243192740204350618278849015512292954289628465506225891206441485061021970583581044900901345154533333609505876048920221227741291799553900485516103828615109683744162491199996107244299980260481536264187975940660921345766513678791098357928946759285778777870850765680977933930150236738249238597565638045425767158501704788169362036714873024065023779428911715295091039554593377859915098741963435634882146861726998010585744648719972276628641070595017524885049967481487132548481601711784464845938357732434640173765976433000087789062541682317744366744350123171004996996905886388270895379835904337123502771189376021986778869739379647480467009390567440818608992398440799950657139926478820141269631958802190098769066188654487074823788539049973236758082603508595082961141542247830320652330202453499870226963199984661446025294231373979744674717151708472748997488418869510260947027142555782344435761565519987840340947572988286326464255094504865688054602086485953881967143138410861738857349647944895886631300068347361380277723356801966457888868759158004877486124289842045098856318111336965256775074931804811137765080447101398299246995050930870808727449479357705748139182623938755498989236303363296944011686054793045124358303627709376898908032066868101127730405442334066295154815545820681858660945069219490092377008357536021924135948695937293448429091227262841327746023190523596234034855312525129951525491341501819878079222243791596798278672423354533272919630772991374051006413994617019343905850891332947774358119972325137113071569439105314384493876620664286682605573445120258864085268674106710078700552382563827854394473311420909352555560423659118900832102279103302669469020313852761262247452439697199341424733391297097239889300143781526564569958451970940234163680970427194236393427788979730178998227589158006790760145327647520011217350300228778446502081565698830702461173121426212985428729105188241872056132443593127304429036034078684237614573782398575916000891765111475050830339259360279693788206750662862675165432341951874001959977319011316995196153419512014239037813801296336028392221607209352178687583613809430103338887689229278598575289603071797474567026739850703548309337862191952617828368658646692232565281535693590525343180903482479091684676221102815340145115030392083313225721185222566324788395926184086342947933861873062588676699112201955458355161025178166174877561461568942083548320639341884789802816245588293300425514363248494930913374023460284867050587710653790317963250552986433163504952963751651771476095051657511200049868945146153409285048286581447181168815432439587715272895552999828051466578347548012416545914100371573432375900656216062549558731410738501162121726223798261982083999856742300126944334815108646477284348885178081757643359336394558077308717476901911534712216229847168723755527109922570052736100469516497846039048694484056118366110019032960839808262164607360813507751226007488114986544028563924558124707253748793183930726528573506733469850323821401533856090449591814025627482451019774346190764352732673655593890869003621429363749425140727166994739521902059758692066957770924860549467692446446423460781672145227701681553314894182421036205421995477752187791112135948085835373672628208605194591375620059335892619903470372711464199505558148463675770294234096527481516999886548968179014989007723282506675437179766128705775324141687410026763444587816687869398989358003911107563489863165505581050029483692066893795799419805938602413758621613432426103703165412842266354803567550107515901875310967336308693483283976580396324132131051522458912256551325556373150817431248559577455716023948025879430578058281409387887289894605856615775970495608958699618682600344457941813646815760254696176955754203470407901105357965876289529592273517510080011515907006224251648858535661958855067438641680683647859335799536140621244207237243628662991666289129837608271663048274552729004042729971870480591569391646221967918177700478786328147686865415648048308096122308508372910963176245276747822588300114200606339408329865675465564874306730817391500069994808613951477481141440857687624395876802088140750553581116029187578057420262806611231303507273265975938329708367435613370949908536280954071750151685915881478161973797846793152274409916590588555260233249546538655279595986918330405946599936399140934845417316225694675579940538626103780510463670777582280427746205064890116956088044376951686828668272958757112558930276152838190719680093307119081330617209327252279552512102864572007009620744273312069327231401062648139606126003807909626765666754715297710590716355543984259307753618474418331128665658195797718611012020768741652363801438674005285342613561088003124114084688305523044844594565863531957862144617624447099873351517014003520738255156528330719218760481073352749386272947128864539940626985036740945098834868962830077678199307210216569945408795906985148852089397392090713465134716503145717372000877655410163123753569744394686855643614144357486153389792834242546035427448824794297472453021798521112028467671028091202603578106670788266821301270149667449409125621605778959819894708456159953400363376907503217680850561103874042884031055225692417959809061970850515942446503052235530804154504600056710338825166380364090629490781112299161209651712363610912128335272354328712286278664873974924413333820041202170456989365472835051674243565624012766611181118052399609763377262294815802774743455810185641783323353645550165301353617904055063672528021734835733191151081033808832117992836769370615042853185498265349088802387866841608170539264531385498834298766234187796315001906789035964769102841867803267863763352753746627792971778910136856897498115581125307624968742031887928184806136516159006392441231622579141580884532727617385311253856153819168882343955070712391684996565755390618806513670299647561789302161334918830506976549657715385795970742813585854196199148305276827238992109756219986946943026992445622156871313893517773019384772783623392640870377689093982979749332980116783060550255843194176718815664348131558476571121883430847259936099137615740977780488564585090397857938826604421772007653486695055049114457995161137820670410863985880090951119305595006481413325007189771894388052199273430857630754779094297126630385423264116885781912224357679699666010137512880990907348652060838284758961675496731172015213993230876825525953159855595214614456746670128598742860353458016756891769772224945878511314267140918911612857987681467066091453022627505558208022961118350100805856456258453254776578905657596651886574981851107685000775864933865944578360170385646668014599341031623092187761599339700524732499941901109586218938321433185573312089264553029335458140918232533015676266458656526286823022493706990158490221313373314625273679741608579140384129594467334678863296305992469123607021075727446098020426010305980512134139810426366985941941220357309821591026075750330877875265468255249671760066531568643356800020036590416189607114528863936689632704928838434413994257493142837007704710666435948802487014998756496278122644668265727994791891417348952083182724069315343420744473500746837156454604649603291259330630839790518015686468662288431335910151823102000092220781625577665735100260128704940607543302099732223803587816709660064652478507863972454128334732856095953489851638050232974293608010860002979468750599870034950331594188011781893558967644493900292670082073859940141175550663466609423131964019142328879533233651573690313509906712837485542968685590594752183498209860934003925642785869461037210095579836976041710275892865714381147079257806747177275455201159848513538743120147467724432744110241486774817212647519399442489757791531006523027636748261218501239778377816715521279097607070376598062357190898063581453373782977284916920372055389449423319791794992108808842860195747603770810769139554761077242515703842617871703649096302901510537707564401833128969511697519432369297347659650934999622925592936012543239014330839773852152894256733943584176173360744008073413278259628885107860164339574143870246214319878501330694387665299303386134651183509607854254003757855307890626097434171437166082227798149858746891782700794110920140438455710308025238838140711363521557675498427031483546812787678469959730828760827456081792751438476457567114077093513470872704187273968321995822989338384983838036751917426296331570164351555923378285294881959895086699630163978259767652306634736293344372485845459598989648093461317364432301499335924104572108171105570816614176592932085201954861768257654801723549563722842725500830763976539563445085191573001319896723919173215418962882528938698970601987153028928190330300684048299875760248285893446468071601879341390120966528981452032631341122386438723116250636918863432384393422150080155014001567507227591985221109718631019242738721773056304424471730516563629193934609206434907697452509297153760236420160928923768730316282359947882903589881638099837158819537363260898369424901703473292801107559351567491705209308701100012739402495839843831654507620398765096459518578899433361143148127612294896639158716678989966888724472875616268607035706994500267144391954600546755896205983927808773550032108402664736216223374848089668257007713047975072322852686984176167144660227226178779526384276106222556368032836982753877584548788675720054571150333552525913196099529639769800887364125502829351224123427032128385733983418496053242063233584662287303832688883864454696904907132080600848581593005634021149785245898751840553239102250560308126232038100466522369886068067387192899051465729638970504596385200197220175307136403756456642119142345860924789395002215244398679539911399159427980124958008159088617200609993200212832227970220423650257469486816033270186054240789876147382956587555794737534541057388797662697145293269626255949814428293514621531740874060312369579648586146005502899398421984477460825050538835425674693872456056951334572488743623044235227408439297751738365889684505887408084322426522027856682248192347329666262972690240513110691922761111631813036532216011128250962551969480607608462416017795329086606372727204685203783851353912309472599723910764957039538228727872216283826486946525616842200695451211950960648097795070030342740671079666627888818379621379645830201183467400763531642543192843353245938507575677387425023790101305321014340600743384212936908110380633741593281400103298371893136542515443438655336057618160035958324697501874242089311999052218893862277758404455060192987463181897756676525059633177784338515463268033666131387196139306874080455590424096559153830110463653903557055283755978643535217393149766715631330843849624019881262609096280048324787016331754920852700282416891708175809977741126181644150253799689742733927407713366058815156715500702720030752261142641863487969052370611698054169176164453630492139054396374225939390084948828640744315481408212069881432550915999936071270017761830551179569387987314403254588827395822598559994392038432388322048215906037539757505561771199764268504678852594874741932519621999920545815996146914671827678336619048949787986065125515289087758907971952241314071389803746916017475038945634614626190121132432541689565436975831858312212514422236271816050243603422514210547050906930701795828717944036194593189584412475972527922683453144367321094709036955471194140602356890733311565056392860017347865583907369809545950350920698986014838955206012588385737641915198398212055685720346802960847479672061643894342612498700508786784099701605290405410294830370568970605176738103345336151067923851408177453052364270125679357200724551100020151378306836820349402478749547110508662285375043197636550878707628631718393665705616693678129230600627801941020586992271996866011413915428919829630152767480742296882352864251227765551968640273574207046983864537618256688852391286953620156050791687531070561816928437169328629846760204622834383030174147866081141836911724864389315877862674580781246525701563233649620162798087457705255141462969181291399137660327873305171046210820502252959145636370457390098022626820540204446711515301375278222728040207300850727260826233315010376238088606322941231124949770558176842014168757079204454583676123551474305036253122148761002088645323912502828082114160408597474593490944883118216391715097309325541641072235080147338611736013002548466574157724710458361203361167999881673238418956385386909606654915182091308938599570423827582205375765850010130362956182594115688729404139556467592646116428982168394953687989879519460758133687048088820903879780798389803902324933830713066216934091064650729952580043055563389685657515358352556474859833372288868705205070595269184512586157603033557556501486999832816599490823444873722989986440762421783561925225778787501195817360021410642687139040632013611777330480642816180351779666947031063932944327508141181275176579345144188482513533727468566725863316801324075136414052347648875626160605015369523520847251679556861272191236722014523627395268262427132085932453258439003695524004168172027231482847048437539665353146325927107254544479858639689009137988948934360015310143724038403945210277979667967466077559543694083991831545135903421793904465393173962421850637370641082142463886110254745727826303076625423535924404592639265766102743475304130531730745484433005335888976083459104311464999632258144862701912281146159905186617866688351925494138498037464254763725773864298591710245675945223370600562003485526530014421199132149645299847423710606233401603978028463967269949046990824153914477627027166654303406781109241486683045800140170433614748981913461517752041538220797082442841586842155649118420769072690268528087897538601646871245063840753459210779060791764799282290045418064023788665876916000401164322226245865695364217418549199633103474882571020451435435717699812916873607956499321937821163201510836548022483537283263825703878432772999635690596591362551527544956998196807791269998061299533349384196039833003087687808694876538955556156186572889061670318907878506692699781574687647246268734884006449759923008429519342511294193666772592545171870344660533958666412361579361010634353284026789065807055268834042509412779038649707286090903576488301697412142460849950889278622953332832328510510303837734619073690043319372679994337111963737814552823764854092003259942523511899087221994542804568630147158831694624659089411180995690801663179766243045981759132752232382490355402931749315125096118932806391094485330778743205730303284275396634750523760970553611558386998569522891920770382217810475383821746307251666691358489925202733312690206340905179521670327048576822682064936030569492216601569800735902150470055843195373934419435464126645109523009600100175881595235870502960807096565418060285183112372495353151109677823253393160296205869531888835161333599386139468499256539505734585100516456811333472098193109284194670247107772068225254334743081622656016152825677791174608160730904688093539890010511392621520203165194096846899698865974281600279417578592089918408797969521563739274101329529042439693833738731333622068310504517368120517220361112483615976240178849255803493127903447583288978111407263207075058105325690090996332247535164529607027706379280530058304079660208560529245778891211249596393870398962446222022687299214926227213929791843745690252340037005030356918255764790046380728168159086743917794928334554121847975152898664082446509622863935189408001855756022191241586745118533044769219648797091499827773925591355680231401166872850920967808989563004393889973614702638030101155488608413519321616672888486766737690069421566318975381697360052305553878168759426842065869059629351111309043618736509569352435894725916158094805433731413452068535966735826309104776926440447313210629528139711758075742250844333873603075858675159881984434948140842939018970072153433747565186102624632950368090596966477193754320147320745394998623763131782437620309342119715626858999127818771119990325030110907782932661881093471625016553769468755192560690372719611225817068811032830742802282965386316070907223270206073093518356230591633585489229745179549209524188293376416158147111408684538005304111845232168126381950603914898551299839880625025008284740815997392631196204406740157699335082533996672442032088814591961940897319359919284600220999786882881856693141245435984077001726151351074395289579267119388490584565024409563522266485210350754008866400004078419181001229862212693058927247628703892936896804907530942948197419151446604407634470817855887827044876934890592364518698275519433341136479899545445703734645211433218171759347838526371023564038088905876546834951795144063338146095089692554363846953631260449904291564824472551128588161101377573834803869135986125795696885586927139759717902609775593918217702512994442749458597105070951014347161478044852785884307211497860114382034492759017958123471936997183053194530162249943570177704734184442088630562067402825458408525990811725650523802055632347541655537893466520465356432386908944789729651231413006919560283736681372330537284357657296871805640144367665548452174051112006844087746987819656383518296740393555306394719694044129911905505618023328043237787839356580042131184920648261594998992759076649664080456885213794379851900326852622809410832508907608881937347978504107226373912368179778223193762246950035503984754818671432172467467135921305592689018996448777074173067819608083562813620259986993506626235694472519878350434749237026487790287086581065439211770905171511292102621361319031041491585584549313815657242615713311643560294042910022288327737211500102862907488869826316018368737765382406754380994451609434202453643410788288834584650785794252256020641005246327078944412233807193012537622010245930498054695701772008785369491659236064436403960072193465581004704742385998969485849012059797320408064762739200604640904986312364260730733319968794182389743617321948920831694679015878216068655466910685968225796557068109135142812085456410889049603504852064208095393168152702826319386112568119907302046695200396646057219280340911433837425709641574523533494955646239189760170554676741596916938769430349891905745686689911461328492117784129259240500720996437942090748409840437859513728258994654988485661842558295142058914551646784718947608704993520777306275109428792296026812976947838321905716605287176785525461690916521051158220902973913218442988836320074911601648208569424944908247824166119324575721569753981558894129202898854608056179550663283570101266740914415334837769393286921407749147166445232494754100731644694815972164757106668446990032103408807604099038367785390890684735976694519600688624316433153842354690616176146299068129341885540377812688825645856114439842626672625024507156727293903235115360860323505516489123755085860091983113178089177245487460327108834837846431393929640575497994696158980197212702605007261692120086837404871793288911603943618128949994070125895135729747532397242147952469610870667480052864149932696610174363219911350240844387964207622141258236952674283338539155914728726316902494732310371208844669201314164847314808784232870447971857662987590376409098669921000978317786569396838858886671543093604237972805715883646929818051209906222294544419489606666550022978113013545248694478785053019012509940945337526649097024681375692623565310829959020518023065598291028663344474076723196536030751368166267268036682626197355379547294770912230430190521183875591894260331260486598203038875911312236172008617629567546736551128840111589948597335620683059601174107748888022026506367064262024833109313152916849672853087451240356413944546845527951785562313875233343948166242639228114237826383526381610154519976199931016328847391678728830412464637492182354791159653686493939467345967523931492097427645125608553262936832653793996479901095902523756619190671728160192629848104376638603211938298826707110267279761618790678089307087026875167041628786443620289117218583696734295697201624712334004889697995381663049536490015565419854331210747257704672321369036610556943224820599352812904258028050821409967854688725793777317586419111902912408414045496221926197826016661376949342776475376235398824325529191741096904311003573433346768015100797618481553368906303954922103480768792794489963730664183738076578117739622177750905709157663335522851084507027768420629279779033673826686818019995985987357832135759859764086283927248364773490254061100630538343772578994123210754375710897239962183911122515401816496527284808406049456283720149080409589154163352345525866110610320350588786122834499506317516040576898584756925629918198695089790520478425065918699450483327904803046938855407565741342837048357199007779634975585752871751360921340927944277945550875603945676851712176563956279458363730958282048775867759339948378161583560340380640147932758040435641874827297565627814540256525538719759315236802555270137059237753614752793294805204690705511726524718713173548169272824054098953028857284030706089592741718398366191563661657150439981687262059374404628183935277645873490483444473787165141318192881607166737185668470273718113856088722500620383185583820765155225862951575844435611346382437860660288524178494609657367819730641007573504375705684217788937054351391761465683294891161839717680538350057542337433339066825847768690113550449172498532877719506141748728141680659687277489849101512112460991727303403414720815794899834872615885149605043882756918856341650599886088073352093869173643867576924739861477442714027450669205140565089937783005322718637401455166935351986830669388655785907223044991307606915889720483940306662105854787196313590999121951869982837471871193536202865631874818263961454896723810078604972115887503967400997371319889228759569030111535365380687969434929983586332874142428569330802995925687024822666435370519056977606086689921974294443558141349800257374969124189368718018677964259459445811416716199111693453536987043826505310190258534829242260975961818331638840304010712248724122556544408759420739640801344247709358745037459175741643587551956798362077081864055176243518861841543038569577345443471262237978125817472400286896755545946201521312391236339217404966013688516865591058858054178231926073227248864109407290833945409181885086338832565341494378261985586493522555725867637534361316282035332258452968213948939942373708459890166149064234524997023259400544159789128905262081873423514382878526372068967987044228832507591562582272507109604832108875184853936414892409376366958141973494394268304846126274002285342944564992992992041072565939150874277375673011580003752959873072014687987064199914929494292779224407482332345800358220061942263285791041555586117144096783248432154530234579249702408549413166846049575271774168117781809555166512957455416699621932249468398774100909841747811845102393821538239160799579113165872781251740906202517767981377043008163133597772722735073837552153024034434054825787714025918558931932244166410018399806237040694713375604834787034944790534806272458485678928095683305066469204887836840952246352776609484192645134866828814292168860944300226309170790205385481098286771274352858516677869182957284048319379124528346901273478095221385591059050690614854253824216900708897834582703519223366489720683095010972882454931765279591734208573365384838691397438869337364163776334513556528226429363933346766413930750146092232524469725378678524400585249117362167004379703260838818613303575880428702343858923187340114190069764393004458564448217061027144909444210910263904551275580812945677142897967443198463279603227734798505804112771759501714130433037438258514193450397289303766773285196636698724718860248468638712033988544196038993237075984824789302729104155071107460304474729264553880476596182921517468261539385961216809565282916537040799508458337582305955371760517475918132401643412465314830234408787150238482940118320369949523125922056275821193437194086211840248751976516428572388807909110936938279607161818269004155443993400993763056991498538722585374403985406963239700217168622429941629183852504552131222003536491706513068642291041599021910943015724683801930218761726899780213653027428553725015768741492579801231218856344987497773074642487997754599616422018220223155416934208448523314482715436228715758486368908461184638296583279303210772781827364089828760565039638908147358566275298838355345045445578834605547504607966291990148427439354791184669395283155341726352938126478565621044608792395759895927167576964927538862183960831945599151387779356911561584259736194912588159874770436163866940931317587633462878302599512008519051628299837430500452884918069971913879939397787783519526080175626259839374562253434780278811671957850595655272906008245109521796711631300596322053906526575762869158679774223121963597185489786267797169342810151588979875643205420151837863965399725321030726384196708563671683007257813770912589997524743270857331759891753884594969687003773070537759932682826773357135016369742235475577791839791870038558516616398756313888609317344727846142830175312345337837178749114091072056702400312512183493828013785446997387711345742092158167415848786689358113600428897478344436483982225937259275352708702866928789034473849535206385682869697445655488606836162896807298146591141510694856256469342864700871999457457233675897931891395977499515553656149376035596520699766599113017232622527941668196654945738856385707581028573844236481568219296800826230168931199862778676670855741319370570401187156266104393985727743211436705309573267622886222373166180985131798049469578974198806603942148434517360922510626305118582664886692527806903948075340722471623293084970145375341616644364367143634166827367592571187978836177745915089801841210818789344303478046253759747275411413514477535277540586557666263850474627482531260094784088984640428725868846782733576552901302559606774552134250242296894816529725261297281934653740626916186059181560886307085347967536505021453447264411890310397957975865016865339585226137869733428668332138472104776390591525374915517196441976157222652992592933652782550689141918081485591776384216491472135419589593193028051713166420341826169165348386891308962044435725168478417201080650180793467141917898049254107074728891597583798034924789441106998418575657158209103384424814282182041262889677719753265207984688246130663570108202394503006692083160422303009994024521201665438340514400332899405213337095208371075105412511355811675842486819626897512241155645817485759659207868575411311640849430357247265267215864987819860904790421161488441152278171276779579099416814257209809826775966677876790960421868250454112987381493181776946456119492296989309610985151209452853995679624207846401460937835036923149032507534806340703617159053171812759128650699591397015082168652837341798500304505017583859931949778488048071873696426344730235958785375030250597991575976740145923555751854316286345858452521639749331315458575206645473474928319165856024934249644979232455398100078802371351287041577560091262046156647658686247911459494438891314931327526104142207246162639187552222424070615260172893521576589785458085672731612249173939435653042069430184286189644714753976808893281238463366359711188110576526460243278697855642515640593902965063572601283807875427307075700186666427101792667717034878949535965277216452941319342162028441509362433247513907417799384378585844287220287599919614015827779324018538206625042277545793370147428696404371248469557771744039688076243520305299142831311813094531962297529420443262200151957959476022184194125099583525852624400937556361309177739284605069472004148228801554482964245173476229092869333622804086792247975702789855459222214052078439534947853588016227385610245996909646087821402554237142885466339942840369272752133503414347297594019072701548619397927013723786499406800977670198762471870956292997379974738541448785519676746701677998257071609384953593328973069317552448500461040540714733780429904533468533511965357807362469479302144879618155223491345713924559521852869660783225766860237580487476841222424300693486214154119569782400189799413554639408264302588881040413679117210025942196195118525812473279770417038476397458927234574777312338784712530108331957610818113987059452781790948991616851985735219000582585421174278438075538561738465243725621455082559592214804942922056192340232110401015162713729209064363110065105887665112586883325805828161721439113479032938133540446018998341759944936668925369603532290757527529022410258133817923286407481551427310866126668571843129861884223033773991030042095714242110188632012855905960750483814156584957957419061566931390319560691132410231838280994448612262161494618065329274557739489673964165082067988951339376169788043138662476461046889235571318906101667837079438952638604244380943408612509328531269552206824397949129208420944247022922803620178565838248221418547045354728701053341214183534863964455384223890609677519738112703011734329514028113156907382854692682446300983513645152156645580136061957752153495143439560141710445411579656408575931489385117384585592176193822301264339833400773982001214364256131980490339386100614322057361585624725705517114060306318103181643737208052144243449718213107320549450503830527811588203251344797032064750536040161468308453945269565202535604953855096006214969399953966724927990106841875813684942985519494947890342153077733651867672265826333875503219055558078848839695732228956466138729190930124973860942916395265891847883068170532070531138896515653468292927307646684068850576206272914876249816428723443685993342428344071697096965732432898171378422453358728405798111461402360618203295015590215284154649830155755396268828884967793850444495400810091536078612372896276883257269548235033869768402288801737552385802781077707641252664302548999246253907951673375480687100104860241720590709290291425839223064781455661527233297231238080809066043143649023186875977688043964420536084151501854627784039396453267959166222766301205397049517842565496868752632539100349210035297175941088095932112883000065293832931396006811668335587884616918245259831586379596160025711819732424227974662372192882948020266984314900708977333752181770981221282751363597419793236658135047351042602718452216948919819516194396128816962485030057626379548936648483774071932839521198163771216212269759138629714759840865953621666600630533697810295430130740438393375754201438760203906288087833648743594920569581205924252932184511964533267416453518522438800925744610595227841291352044408639443199729531993550831931743687509582511913951822543179978725910870498983581379693128221414960762049400054392650992141262557628298061820722225308104937006938983964257353017588776189150061647882667758219974312731140759358177887682050028584877203784363771528300893142068149281692848491505832341539638004039846886146408134262293691977497307282569099051611301589691691488162448386122438402496604111342368062221462387471023345429795903765851118200860437231356132055394850461036624077282126492704683007491381037578593167452498286977526469412566705048086698530806739913107067507152675566905957723953680815987662623798388938133749736294240869091960750865338813674558444374137984367749541259653351697687246335874991380573712659538003778406918905313889307514263810219554061508186894361785244338592982971640657064633344585103497920597735060522470006097441433426844736354819997988751673512994844240200966547397442735501066538819081904558038310769883442746152728869236365194322222553756400219802173628965018183283908481812133081859498806022279562272371180177201205156081939597186993549388160495687408248531811119399231547956970875621297422940266376159907347865975985266947639233005482773109490670079913765779877273341731885489705367104413582228615844187853916792163293410928602333776801942261727950219140676018702286533940107376736498484526005056867109391456191867726538357691291645320518710354297496059633446668404565593567599111209212691436886727661972154244520782821329996914058007434944746496274618687144787757701833006463844943231440423129054474081489760589661418789239616749400146434140669374717814165365439929052860868558375423437104855451705835145817035337423674738873891908822846616019310009871445289362891248284016477705840840921412329757453962944080983671292797259615835505966707183107965591145844421477561351257395992775769152390171194464268135030342959892740925957940368990920309165236821549491138992791151256886920702686294249976468444529282913013636387585046415174058078959601061527278186248004423931038921934467777750571933644773159976676977247499115904546066047445898350179716511289272979345587698514216750343934552028802633586887208055926697269514826701489617141443116349362596379160401899294937458006117135831041172045636768057266559003221352011208375415663996650198889615712235380810106688247782803071684942587676892972350492041410712502625513680464224826494960071175355686955107058175170030380778845980540342866458453036379845917702392006828893053309040771704391245770396947288077101865303706611435294951104096480664847846754760935757050434602402075559770833063302736083265560107821722826057824966680975501353242011814189016116625391145149853310461710164639803719668556658051156541003554244177311549063165962077133263067766462583978494618317264752653900767326706269394597949035017199892125744426108387418732843019474094663497187356002704552450352322347231851824429479377641003647221439274508647213142736251586964282318018526647717807141750751226873797800190079695516080172302184470554016540321493579205519386730147887097229583971106766367605732586099456029451598140743213560235804496572168632209521799131223011516927267444902618597198870089119748526448966035577023377032626101708854013920496030996527521901110923421742074571567468045697520347261266998451462780285049872203258061207436056790420788826718493153505792866334736334727416924728146094987814738245089440995300445269580876220590229017261839015949138902806996786237293639868619383981101049407771166727569448318474305891361721075903160171184212729265961259281057143740601349619936195868614772453000514618287776414391413207830821151381672928229910951708277598705389325468914705069566413162210730843786391868353951739010189664460437933615680074763527590931053675792643334238260431710669838195373385326687846575909617698554365595733756602791187992483856094149982715847272535785837817848690830541407382246353099358407135125932015804145893777224193305147180173996373649306367364187784728824904169532912144453031495278470567335264615757931725635663322203352771194741730422026228578483398230548317612922039305494153591258041856862790517259669120444217131315131857461003291200595724498314334329053059144479948791460714545333236394994115691071709149479595886514377608707897059283809711901770635837768227539546947328706561625420248663051430833871400177463612965071527610252103974449286971339851219452983112226540267058583332345676774457020008998365986801336365359315514820527516252226434641035343747184092814073289772129005556669075461700178244543985305612471072476521107096488712611292583616881695734614027371452678805883404625515079410631494649396023120725633938456742365713625757941437637163982143152382625173293772765737097721762536966356416630653844853612556342258491068485849015918978024504314868725494585427929158081585266560629632353229830987881368437528500537619481246862798686783473393674770002178359352433617746415326501814991384482920749815548871266180828637299783291563967101869697069771151142070950707425960893237042851921437027175956255254528730401047022858023786865652931249771808658620149911833741944578406806695890451720423094363128904488345987028058980045375105810483460278358560274371554611197430641382840604130972614249476527326592400372431807970566763361192017172849666622278109161986325020690988831049118741516906922195393038548453019384023533662649065550732797094301535071356694286164562516449308472493627118721533131816889299755393077136232839453506538175714717541338024255350767785322139420096881806854422115071241452829043657150243915760147084213844829217692804766857565560613687380997702964977967515573202323476404992406047814791483332220038123613473261008529208664402750468358401359925181004636079059880823347200750166340245404274814242761039170200802862493733057206197640909572042104502221153267745953643540389006366181458762514740017530706264391548657060298164089257133008316152037002318107800887182368176095975416620767466718817842724236746007964993528470568875575220412404188523989373576579147560755284314385082353163252614143112323986307391547093758065092034970973614966433380082279284260032511552098291003576203789500337635411619557202178464289087978158458647351892414107105504057067269198506659168481410403111906254674278981544843198953786209073186677053040397422750408932745322408144756776952531509548298989893256335529933576673112470535138920623461665717092563909800183894042154255783367947964077750686394076967940350295251428779255243695426225212160983165093686380826325650695295357902555786515459990433263303628006038177436166149801722811285428592234819481152356661755449598453009284624994088879202203164762614771866540824086943614661648932396251886220300344501412026887197463306446209755918384104913235826517925041186297548156540737329608275202166367286032854351525293311147795379867696080260224235086677765262538458230198582065745924865669892332339673032522885335719723327603191177394437235724373362892514786822096174085218157071681970231476420452179227471375705001086695567695442184298454532065200286670634139865244234275668550333712095052339011628810432227118661685072526651661915591468970571360275827885714872941462642903087171534755485196659787803677139502372278085360949765605537118830831469688544340726370883716833746571603999416121026895756545852608485484816665215180774588092933919659820463731244754666899490787150202817226896691735982153525339810368572090208520775164284881266068537270452328896672151055920194785794029839329307396853637489976400504115389844283748094425332673660499759644057095997418379006791836263230256241849588213292892694345897378359579468498339729295059658387038081880782969323046054549801732781447149555521811934127582657308094713242991624130175349126007868908344041177085314917229303975566139310631024690480465659518841222999767808243120667838897890995006529832420917812762328402073476001819046342375392634237226577367215070753978928197656367228710237841336947999634459565918675294845481682999789595365896241964823041394464722029433912677461061939877343724091060160665445409300854341008876880688602185879656852100287109007391444951755546286195520186087502799841946319454519387111217592769902597331151655329950907294627044361800252165210405266815703127443752258323587253154591791393969326651190008611000254371391422881078873472376180793467102105557907296106674762246039686282903112508748133673660941372364768649076202652562581365553781402801498477295354960928883197964078542526387043915097266444947407757571997300733175530804756171994150577166167499043840519968663176383797495492349975318639787713938651934244743102202248375553951047906029501862857894286000462534124610846034164103449868372057052639547535576515728090562866452668660665801151986766774926097835028985162141437423647972963833581378969945179660279169181864304936977065857066152372929673069304254984120879722181669673458585495522067113954990038600763813425906284641349090169017095685514754824490682990034468840492759636646930388396662653403050335936231600935197925678006667864832865143162217491051596571012335499086724255299499174845533051879803746723066314820418342057963175040504833552472496862019288820222659458887183965464338087186945571033083138656118197282340471219562937413524201656412784408907399526869912887372663943678201905018301078095088604524341500044403561051125485302943061561382201767198748460686027137729748204556730422320651839727627510194516390258239759721871347740986098644121035370739830422680291970412689812387321876808986298734423217539735911094724378360725577430202603727677571527896689386100641065585841072924917398831636945887036593061306739616076676125083123785628225327427871191128719296155427975864538297495086526353577500985335874188550609201276372139717041635627567134006560638692785698045382958844028802700572983792478451421688688273552497662533268867996173046702494661409750325898119942730502847624667998996943691358515750042186428468653654583404924258103992361033723422896786529729173748735301042432305709899403660843491729954536644403659100961731440815477920659826098988087549523045716638978618134049995528787473282002931011442784823258901694043407169026714598994541993309775551858678225526922541413312995822169846231891945986447752491334687707614955760840216449742773954791779181340861384166616031250822867860032813602406363439604753698761750358277850710285431741028862981216368323472231151856451534223886540302132277387379063974277969271423654030229316199977933900931518601623926956542685146980831455447350488535873854348521976689875626294499522067518746218968629566547057187309379185926136522611834366721084291111919910683143543286317443556167103921780317708259134151215737533942626724505495619676278080070269552704932449125420624260865991126620424351772292506004607093863917796762136946885753495024789487020495319156391146613088175867157742295818171039893983545245215294969085163852383511336696422398258449819628489747510912480667447747332003507801793431435961069558183340844404357475415766341270604761962625502912662058340991143830678462352050006949089624016898404311599191025108398326645791150399079096397850500607228558099552785801250446061311864694018841196520283032349693145693172693280665799005973703926764625108407684245719459283612236852428584515943194891644261267219153615368867348775287805550581757153729243909773364848449949569632630747286505008428947894030271752134460881368229959766904156827540787668305371280750301810885710745452458229342705934382227052019295754696633748239912482692370727550725115950820386749811903406603200398502808448940176310011814293233933577912316703129681333753711472337584086336088668512874828973402495230625642831683330267920668538393158691695305404137117912115801111870353973927835400356450498926271329434074629593457644440938802192073872761515462327907720880997891801377082218555864613698530133728764521493646192916054379175580411977271030699464323660042458382611896774782532005341753070073353505944384972543735974245825294852681455438236459548034436081966689723117865401724217287094202813916789411008801669759704661688753392518551285228970517978820966226013618004097245224844704722218963342681653266428080784770931678910738027656492103656067922106980856253246330765338980515711436049355523805464610869102086163090077430545017984595714468812411013002794335648124520731407103801184721849340432147211285785175980408047423009201438228837788497060388538293841481458100173000776387128434540997009677161542412042854267838209354891285368280574958231307375760195312770083851378183169251846482392209257958043165386712307351961067157875391883166294075101722329840705477748574195270542359507605187351374015214604427789136915072275938071503705536722153941882623406393520103994071036035136809992891624742485248227176202182669817693280639949079433492475489138504833076319255128909475211650580862299004459386288941848873557984532690260344332248024371905873859136705334575223228327845285720350654845177082688285221655291307745178851929062416957303587061349615728136688644896997025611651375283839282409661714467982749490854678048588824031567705750239718684003973598641663578181095465447464811397375734108414572527447873414466224243875521516668084194732730699991860465309319593277572664655304465891009021921998258714653971572166216649260139291606549543522142768720916052887847055941128478514675763070532698608603442794583448656686829531682178545077737027043456996563711280126107811001189278068194637605205237882472183447779985531243443276667722404635941176685597280467154494501129636774936464594743164351228583116177746818632641331895412931026142338706118871072877354956398024819186689584033682107104083351262339925501444129147590080067979397648909098825858731887961306106289548730365392433848411963990761989253793361736272447545406403651563424888608252226611627411276586747809459536316415706975385517200633215505224042752791833601321309547210106103326840983654570912658032341593330746725939389654373493368817112412027446294071101488717678182334285942057754723916625620079985616351333634240410627309530300640717191742041311864725347039579425655590197614488063997087789661336975311222895584060414594539798712244562256841345216369236040001609076092096867011738986282052572119398203237015984526278592227133417826939272390870482280480824394681906310808094491911410394270248356981322063760801752888099453083622866046792131557483821831671679370004468161713729654984181238604479406838911509661210853536683190296771163539627013237640537996544911057755985984854853269849736717763750734014739296303955067580055189099248405115505177575896205393951549486034667955386227603503218895462151022841357623260155394385444030644378855388086976902066198454909312688512431876463629580916488642144903272426937045332517751684659543243152525507650526400055710152384976221571831594126184167430845843298050589814295264237367944534550849958468969940675153658657861964288112814856565068743188757379616176894926361478992084554583152801648203659496450055782260598996114460712071257829978773012088900156272536632585151400677381281505537928477438994832845769585810704661397707667080586894888144326692248966592561367493041719944863567909915068084459703543474971212200289955586531964269576305542517736555465252309928831937829392749435449220219126740136274641985563670069445772671961276338289571563660030978770293737567798142168012133841012757150654316504687233248047069059871750026346720536234179097789726627468110631145080377500306440783179739116057342077006545250339616164425215128919923283878518059236498015148116751051693029637912168052397278960405344639434817529080855792686875507722329789204891259728505576562517759932271612002524781421319053094010798395858916974677071864058656039484953823670138974097110859416402639412354086555591374056633311826904329214634046083698910930811986049220158368456517808254594262144017608510490396525921748811706721111274531319311848160586237271626093224584150407322710463037025667335823472698893260713822292527732658098969960849053238014900164486430158235011311176433530717242934893895833884741186980930559807850814801354341607705914373547329944630897380265631613002244185166764632366416052901743564234642589728345887565764635952702927672592931560523461856138752898535953869512261520889464241148246730202053161465354654543179531842719014521859211364832110083201650720618934096870185783479161432139408097697556047797707668943307173786255173575379986288889920671752077285860144119195896717949522417368921090610630971340373237748918977073221532978930121484962317100917549362736258636988076406350747611180356001231123443566170481861971987461069666718767462236191605990646301497875641073006516660356758731158523004991199852797383114494336769638125695257821412057566906035849654634223144115351770155527333029269861713229991348704712421211370290526706333005113869076788961008897345278061588372386845527917722978476134328150244329087813360274699424024305348313439610454495331259333095746464361005196717350244463830637684165443517501777777155433844665121333779455011814930300038861592936358598097011888812359022296948286389554950853333604754954969679597572607362793453000545549062126393701656048352286207347459965363804254384525757475715149272903891926152706360858995142732122591818765435620654469755475769322654567938961178450553130695645391417048248746974180609142595718295705468946732152030832507454517323401560728137703218812045888694003844960702824453482849164824662228298205871537140737526458563164075110819173261334781151732364023348402941353104605430479054225603827707775187396502240295988151817457966169318056249449171364920282121357995122930097730502744596912659125212006290929087743517865743445835900257664197333280522463337342333519303905779296059794103814422437556055289717632109032880150528246864362039230087431897730510376605958973248430323192952705036592038301082536194924200220645384030638226922903482786414465691413378862589024913637670020252217710722323536202791132614421495557644510247468245993956279040263742979419684717698304947544923885480147343397321858030267292391442225883472215562935655643655185821819146504000083594947130843223029364560112313216893534955614649508666072720099419718770581094804799299634495805359466524135210012154877757928757685570005131811066397883614262974288742761288044454565860217543092267073707250655629023858482659867505844662804912653751504986482020488545897552735726683082274009251799219470263383776041387404604941788651077335768546307913688373969520204864351654128680404731176768128280693973415115182302809674732730989260702849472675932761061942440328429557494828232791559407018349265150074203937908095847081784763214968460195763530043468723578612970189884397643830048784508953777929411522744503833843551906275999403078511199537929975994218848224639805854360715799724434481708817690217860884046204384084984727454253756802729272372369545098306614575357185748777635493722031376954112888531310103844043473224614833955305912683128249913065193462296104840923259967233697424170992438710528618590713799242422301074655055186395156988468223683350945486342204622303343366939813004400330447552858225838471583332313775460150544247140916991988642134862262802546671661748319888108294559235551291268264158769224395125169383920002080351936097296210872064239883933467826597034735255618896516876098732575501111984242082235028345578771508145791274627075245636788026099989747792698948218609731007673883459159219724179275394810776497400422552012460764258057493631776918910552571810105013807217117285140180692781823604650610136559373198896363872424250681138737909240914619590915896432407511556219500538590920573454704833093657908643094230159951446119418148092655214705000681849326537451284492128936335166434623371097852598929430433332017858309900731192706892917597529600031522536923907385877352489622996224362509979251876558438916196720530130093091100524510943618169593692682636579826062671624864243736173745516971047499219436339016006617884678536310983271758114719015126935526551595809045531569869163941987521522978791925763108673506899042265866137867898445279087986258072844132222693825399517101740207284919524991436623299225524414983824740923775711029228145163554521138563239049231956454012915350545134735964180155998065890012406253080326304626601377671224172932165488513481839690042513379140551066345267282570089346228763046804794250023269216350404258688457401477441526134775618671680155971767541667205669787446996294263902388397645064444552047309069758440231794991213182392428553049274756943558757928507038288198701393085785781690577914015886650276902826480541926396028223794078849926484158612442823769244275987028736315859173261399372615312314612383798809648338516655952447192509660108534160931379787040752643387197121687716056650359120824407073177655476510219472965691835278277061890010415133846931178971617320014058852095060255950605619095881267543451005829041149945873316932482574784933688700974074058694536261658993638684053047990206314976331375966909785601365737242202409042006204905161429610482320629888469803995493925919391405874001387611695231244890897367195166243350182466516848558883147351569895291320422415614506808196208275519961529194911684454618208980795850830460072749733488044467495077025896723506607354353246444429410284483499660673609326126416286897444959983668121372971786443229673770941282924379029373884441636103224310614061240195169495700801973266188637480485086643795815520677612659853844310576188240143068230437224580039073446878696565233466264257011850345039805734853240098156998357269642186784761832171651734166099626253215986322245700850112708145263848600633905677482448891878043731177556042364500898720144328483951838708314534040900377505500766207427644833860187276475750100102698252559758480348114696072846842078487166901195319364770132292521304027272491974361391556517186298245659712735855876290063956521867285750560524727850761504061576434672630185169975389655629399650320529752342353901492162974013720987018867256650576420002457373933469096106248312255925361518141018412280544812735778722048227043877084382928637622274238444760380292928394105527224332144217838597036909931717408944379216310810739321596900130143988529999504427497094413653347979948525069168529905310884165770347657075676589888401611124864399902062724250282565750655162745998948604288458090040156092072306672328723564126835092725688704548072959192757491391425579254628385755781431977505509368029942725568872375372932504395638417565116390597014575037217387725258101004638477863716813259242943663792769968068502644574554082349147030706607333661325946515505302048363232986139997818917603488744007791652572919239875600648824778208345296414695554980342396268006189091985439703731381896445101254001488980499427203910137412659894043910020853932467697643830698303804649932028762948524920860907854686888663358240041417774905438487758217844554172239505331580152686574136929612080350327019672529048744501348973314740943628989297548188334108719332725545850102248321948311172534083788238468780304516331028092550058513976257529668883059106892356466350065590615170654966235037642718415366012814935755084481439256011914940550487965383434916428591466504653008355468186165013059762793273661759681569571705904502444003581964167350546828858758802347930769814550348270742209796893336027336474230963531507454857022253393198173002130018171576142212456221791225286272075074179263713925837126005822332745404705386792177858442007476461206556397090880637407375375340618315997796493532743474758212869934313739642717118148284327071699171385621013637578572378447790023728572310100191916462159734769159397246917624472249594732031831468449848391844169218771891240972207481098028759136751824364045339194673694122900655015280014311635307934099018570841641891053586464831963149555439132574736144059917278355042994009057321526884318106370695761150593816304264233811542395004399257674807961266439397077701006793268349721205674621891270354951932706647646519507715124644620631964294652357732058776843418944098430714271233945475395241157722110680413882438507737097389287364616139565885132345478006439611009990360630678426746382678092185723658901112619252593692129268926873929084257539659968455094196418410765437509823387956120691019895820842688602333901432457328834497052144413284678875338282878914576685367161353247266827890042056077338677585791417140737525774985072815615820166960204275966836308811921994169463214508635040356913133920814032686683500360613961952164364891015810318602123571081168251568567575978452823538569978836174915081335691482774935996767167372672120577868333679718520794472910454402389543849194639982104256187728440156584064854658699767657950451310121323371233071757623121864457574952550617875822291061780629928202728968248867880738475680740992023631852374217398545413523772036811289216597196718463715368298135718419935223488465459888052415567428970026006347523625785165377443524619997502567769879186627678321013528212399797088960364211885624302429721935325091361769192224000994592420732798094662937171514085649727051448982824337343728372277448928099120821186537795222426898453942393928908139962545625268144723602663965889045344673164377022078097920824846632470849542866536478073415118672622306497477922829191631260908244726977665271728521783641741726095058694930249706192868675125788830249933898319232278235741594725402510154976833690298573407265330600444151744213420059217023998164674919051392092863904400644894200469091598239291177196590299293221999240946469330662965766076271457852311136751629859573707563975280856254590957645075327211482679632958120989544060817369718113263750445845543450765361927364686378624986492734951455149846213099096432120427973489653944405983628209210728320321876031551337100207785321371138549548745008605957075319060146021927712253572584368116236070619254430779362404247473196542967236182199725642923410886330827589423679907072317037333374937483203575355146844136960045711073723986163464975634317207863550229728077169610417922995153742184462758614096154127479168019933557292507446533003583014112697445859842245431784715866482650144614339253592301267694190078938758266269864887100731776760349660467189159326978598451388540607655281732288089842429116239480096956551628977214798947877652809385420907861655805713244351841643006926396547170931363967654306883155233537311113020705095167616165143898353606537782798290902600933821344974834996850850118555975788950803901234095483660765740090554559620276946928306089665663986433453457480798768013814045996689833590785028686015221764136186797043634650759347230685147088221025197805208199793408150500321079370056917429854019779416803359565953941719738258191190846620190387854466325184973240464025422229411210575649084936871856215482209228402559100402080288817063103312858134813964763928389528377350267911205987524779581317356301616434055050319451155736414798926842752000232580129179289117192229749963724720311030809743058136608460389649163368086750208977863430926419845347022239803397656308188168158902814918293327191146184754985223834874975741806151044214640320104035531265307743548554269627724845292236472854650811764480948476337917689074439971145219178875034998292333509519303133279143343761660333724640543026522436126089368336981756895200685678892551119535316030525247282835798511019746997147761558392296282400042079315734312962828126802003271348737708298744783046510734398693321361836933487105458613369966320121836827524276874888201721670315473134777069960010972289660823792509251108662761707553794329479014116079480835864770006141448096722355622506599817426005375160519427734716572166351946566206932462509938942318217897635164377064053744630354199616894345323858418670054826424566107564556587061159233929047320030028108203533441368560526501884952097687472630629354530566275422871481254925840349650199997834138162208440019569064978988944308676075337136591851219186563811220414015419432263923764284177776217849965890137355008495946029122301862942288756954689077531271398552966274710160322878742811539929584106121135083985704195667557883782686166689559184687767494873849114801819961739954426020398616443242241226353931570958739589338159812519720112165787217342554632015186498940781490098024529660675738756626833126843128968856203698298074476469761725622694371086829302856812902918507923660557999697082637540301984901402750416743378336325960414239451675675136984217923928529127592376575900068482393267230672813733223214544612436915340024828413456099991007429189933311661257559491064723766416805645982577910830062287609441642769142596265731004708120649535625163742120016736048128478340229580837486557299223565407937314647899534320620960264616859908387627408352465598558256124564145057627825575190769549443577905956311253256477842977026059253304548312519875234165556458505069921147218727129876738063105597697158315083662629540544282922539642102055128073870902261249112461065356278805332429108842536183025456870189168162869854617537914361317187174798987149390243434505415582017515807144445866803815073525713600852790251518305615717996773650354315015899777257076713202645635220768022548557164644036129423226151785936061929446102129351609265408993898325328513178095424274151470384946290075005761551792297336633316528689642745666363610482966715280360616559290091165101457068726671969155925319223506178694012952642387275082341303332029600005397227463078716118582194798416242363883599374558782020437501014604148916637804850289434739111849092208360659075945632947779279874305701144747959582397308346440700723611829851929096437930259925005380747456992743126345013396593855395240727505728324680313761735493140894171449904529875847905588075335652393186407422339169087980491188523200819760812129756849757956367460868564015608877962149395519458379645495709806827210704901668324805215963518395645735970789426760575603221977024236432661051111602391076165184935886641675369194453488630733962215340281185505060426381686051237473024676071190354698020682740902231953823568211165710947264754628955360359196102057596962617168167187539029857473040618226041650740940167517425281664449314554050712257008878678121315169489092150690891585979119468906590364042363985704465872192175932050245412025417733003840364765612528729788555767111285071857712245198450733828630159763002560262987276594530391677487350581288187005022622890701822866717759215272430774311674272959709490815493207681533329067565248765193238409939908199619480188493260425669567936761071825768486722915566116605975619044093760959277601019856957689323571421793892331763311454025412515464542893832295027488961817826426142318133135567925196154753683270106186876669441129324502919963273753470152661506793806077085536737627377011354896555475787887372817882913687348234376462541720136519081364447998942859947943175851890378860006718597714612376292312232273154882800728047173610024475382186874254748381122968196855857812667770647629594485629591195478254090344830320322609383689627364135822770028605851088888091158163274209402033911425886937317910653181521900183749051183165156178062207592904510221549679645123444999896273412198977102665399148281832418809435363155245474033190549616537884381798699469425183321449024225752422094235445301178965240169939173486654409531990228099871731435532721741767397181423202170106909013365008927508369237169370705363774937535861434449675405359728442895970638257254755982653812701112754777288597545450699010232776840074435368987878179504434860446869096683582991853662537876479031944351529657308324024219136413719277424825485946919670341726283231985142556644489757025015937287874491573964291716515832162022462660427897212681498601358119415867102130764475901097793283934940036347389690927230478329017552414328995595960007746118009576864699737677834507423257024363937198684496314674259093539635400424753252279403474121179413408982033128303870853865854022673903791826454013857402555952336790697833681673128332195778866196203814489195685570374775984650048988353506152441546515512411893088383325411739330184583051180678482551286658172244232074575117090835076484376166328946030700763637931111045235069307035450100824330250535827032614805313515787529153807642890006300789100822148020968658489770606412435344110312202246138512383707921430084773875824875401537273194278361249149503845088513727450880606425517211431970058042388875425490580618090196555712267866202716162792545977350501396707283876603115482890363647875023007885707614977137331927940270448908531474395528552461404962917339596112403085966109417531930697490418292413062572585555908009536163531875603989232873812671501781557551750956658381828211013633879809224797897170191710730744067293901743357657719656691293691218031006400543318551279677646135166352074849288343256619753475044213369920781771015850949053066700768710672116516586441239923516154471464235703095867537739100651053241092466522876614010676940012175337075140586429496548179584875556358599136145728035316640321837072491530153894959081446294220903676307391837254252941891401075848145069932454798985439622231883284353596579909471091159405434250081522515950220447101730086487740655220528506349779911397572701934349347085038501336790657027016763948984673207522900857573296385242806241261565895746326100649179810581144970408969838755735109905167575420174330960102557136606546458041658496970735628533856091365314892551616639860455469400536542823853408339479483254370205177608586250548896459343859353593561372025077999647307397548703164754405099422011853522032016779051162740129378714960521992018611333638049904801321094768303262320246972004959711120287331283881429473176668023057010343934597241954847452374735305080035893619731398526436256699033853880466959539771357908051125065404877763407505677754401910341330142664274893953594303348206395930102294987117911904348048615735941782159718437873159778246723848375892066278872736238094809933367508017095367469091870343060056724805330296883528168219583280134611334301834016870664608161618452218722568018056179903613962795097488732631641580321852877162118169089218181313522633386926248434555564200848736440207496941855663002120179942925130976627655957038938325833009866874322296936606668519002435241152510602829884197419436921408366108603340903302354123374413035046077459980963195211601643944368409772590457293670626197177446993044034035881194442429668967121784807823842074255786092894213980551845767814345599139345281930216018102055644328584618908390510677761728531800608947653555223518813218197528723548819390971585893988940982169134316658480761892062096980913422029075938594832308620677046236421523630916363587580123485855101119809814715100046116574528284089275856804142208051475208880906912159986290472995460614159039941086583619916866667820793356894703385740644365475921318150185948039393142336348850192193841392984156645552287661000663177586053586439506864940097944016608082262756613384857691919557902504026106311926927432345505494219242991709729859092677746934563137927672504967587286097607216787211856402828698296768582288997295873901614526307987413922257830077455579324543209799413364985110470892908344848543703788996295805138219545424094551664884976086986967455866867763487208713958499450367051944096497184238379641851775120081988370971914306620357687092861882464379619684566055707227760646913853409953644629111688956077749340304239284268099395563944627908833237534914917541590797544310736780451431990785354473368057820638247885412453022740639813017555136066056194127474658126494428453660264424954164285606406941679382116015457003965725437587636910864443909135129130298765092195283106119956993559233803201062660495722698703548442974341331648953177809418623538294656648264672903699715960453000254451098347300901660473354047107185478457239899187933226706591877971798442244009037727599839298864286634618367013505932011552201961312586150920662631826163380385048695327096672063622076333834860134918999784695876297338293239602044730233011971754913402374415651241192148320508416460181939616820280960490223086703019456142000996705077099175122232235442744690009920273785475909274964142421756049011544548775691871483712780473408325145087684730827980088846334561313355135516623382157766152262981247248905290920367571341675076557709534597482126913360271463646484677681432517043250224120235588401948748995906743565330015847773468869118392385583022837566418126735875261172314561714274524047450860053540677988215860565580254270001535238481914730314246389398502138805398960082687948010689414817626271576446483616134215517919023324846258657888558269430985023619491930181862513295691248608041142048152678933962005330627918380838925582739651124807627641365058850679585803022302762415842623345514167999780598942933508118781462018789225692061487779436014974003953142884027416058991616653482812834359873763339748772720299414602936942535027661457459061397249819845251597042842101536676726499617624385970244857257604170892691131235547460504155316477888494401183486722092637607715314661051198913964639734198928377652961368931044409113238084662812294754896046383091550598041401242962261266394612462579037652924769177766900673762179209472915934462293839203180976863128171622484020618878660891523224410036179550084959094840164908472464528667121322406485951906914792681082829495597138918685181760415726574165835868418762084701877083178099625747399757611893783005065192660419445508546382780291929375333036830700129335519133609982805650537850303531710915617304213994714121844125170726072869361977155804107251898677289786602628692660002994982355831822380137832294850366943717691743531668813506021328065353400953079156749698306527860675822851505751170079097814399287224252708775181877716890505816161062200110912921905537751864357077871601359377916427443756107229593941238929502932014844307506578225162590024960085844911964504908615303186768657519160736629045115355174091802740169746989363011821835693292904208170541789380893304464992616913618365791122223492341741469666870449286373083460509879297415266556132574002746978722794907005258022164097340430005072383640279520080345437126339005956036543034919070768299479981645961121025210915488762805376181679501524160558164668326154629368713200905498612761697415907141513514391863412997514037306642503578929221058784581246171993562427995191113321432209467886160017209716791426724595681635967105492453646706119710309110374379279033108031286790037556707320655892515156424071536188380780660192268025212204508700554476206044594537496658582474595715936642373413402506210522192298041517136451997452416140066507407833871562577244881353843592504671061339172014741411915552786664072743262706390506050649246952931503661018415147209274958304294361220373951121979403691352114529715775360955981977034117605159504642973445869127239026196851286267207210636902731973376067381763925101333042670992376684491225568586390816934364534594223530031291977855124954730291300453277260381762603306085030940049944874975221264514906371672000556329051656747235047862072618785042466793568601922922220059008139187221395892334839586755229228806552849271020602028235318631894336117347590875656785412221909776027654914728236883688206212517630701862948092692291628741694469645132105484384797493793707165548187888494464562153151855124295296341884584303315791168219027355317879929975981168795908571961525489181110285937944485946046340151211500584141220921831760550467354763770581204420639226047544030430027643041126806409065279434892828590048460621137499992525242857407229149490466333906576113174920474271121941924740926584060198490906046134148270141859387026124917884392380847952393064522560444042250754810469736229539020618666875535483061403034263827843180805722663496210644891122848719810077809275693241329792411367017371323109246159108742844848877400525672145463656111276881491391441870217801022026040502285769075722125731778382551092277568024334405262414400807451389990906875570347238686758121709212661791525450815277981494582437444449894335151620785189288152917013961519542116002118639872717230236622602223444908397342707635740980705334858976423830496055571588726865929331220677963779880961424444345948946438766133898234857769764594198980811634161048107257785404400134621390220815113582799099855675122846869103532082123718003842035062878005309043495986585607270273035980633099834925118396106507446755413905371720022022587123171509810652568443639885142249912354278975307247087096877507923626014236795972253451655516095718800275468441944424701453112226324223202050402219618756141524830664903362377113341791883679654728470807854691070459583053237946426160413993849629058442131855100885958553428047265347574772834487122676614702263461439729032818956639398106006380125293806387919377623514928195302090485801006786559206814264544837371229721903777708014168616014187025823460583580725908004748372836934590984360982276410269109088806678845282572583648106542757368400014341075773997911854280350770137125518538194843657532389386748327835184464409776643866351094358462052990798402351985781915602407180691524731764423551190569952671219426991696849487505098280411509135987393228437619025945092300202711164666520094560224212065755672968981204902580853851612282210253708175606916015358427625229065191028825709914859630954751218291075327443046869006522755699628278822356776064821455493186946572611951450786867031719242841316186652162754645178124178203343424959054104662289803700415308502257102958305820647260810724966698216555955388506313899164588231321532716064849453782039155839999056928735065414547935061374801289991837387271009348154001783890142245800332716831544884705712478578758190488810556688902001189152038940878267031211625086848176214841723109206577706048965038762614955357155565198046907347960887020079208779340032974519038698573113996923955090021813239883619114866512017367217050292368829593530565224767858199327000624269618361687417820343224335782938049512133996763297878603434010640760977560059348442840324563805221699478280637394220901360683620601352114868090302649559392874841572944960373715336608275265439983550324083117775279457790506381703942718782828486737588891089661402584186841004808899443157001679611561071387113960926990923686779931149274277310445103544295070648940320435022036169307781194510961308509448198110646292134832995363719585859802702457288622510541588291163004141032781721626335671012094712536774192260644486813542575944969616798286494113994492771797106128775170502566785929390825539167345035276504666360064930871065042709553536535071860652095766797989146550127637268293800263554161807773944980688424254308456993267557535943831493442851740093972019686392990378427060264341315436020861107795272575516300417109859649860026271457466355273651273514677416213856545268286635962129439011732440623928772562609081634173433518789708553413453560223740216058900899008519771288893765210860511748873843060368052037249385437311941211054632111008986819380682223638375309036039298481546330233002912305877634561088469722872565533163002539822502998494353086952137204152584562100139580022726937818245002286418519285224095794526784938497860855654101685150478394014453453258751055090081975493757636497206913887348410553897297302981591915846163151654444108739306528732628258143013645297423423500823677953044801169813701777284383931176592280548068150412740771447232757059273708231228551902353035736036396183517162950031423643559301287849218625251991617552377855979025615962189367887972576421524504585041009215147959454849543841700704629311561693281868863446122645992515886376293576169150752605827811033123949150381776626765089495019948444822138166853323166199261121942774775464001418914057909209670509889348722893720047339360149986413664588599153708779213399075579815855061836885488791917329460206349226591112137699195339783478383010570867246616905209350355041893318878939155546255292453756992102688774342639715172738369305019183374078320397427427131102756692786568196810571460239159754924750364213838010235983536642699529076591176657401484839657142646717447383847519388172337454128940265789330193021863334461611818122400593717183071527506669890462297391839956194286461900481856918963985953537086022144227666823942502718785611224479427882575372165738652071198951819603883811348881322782509405570108497460796203006102821084141396301022840566218078985783409305395543250090762727065365912926116698485630343827758123168339474724983337209130804090531040393859085186957604234663033472931622681000468011868943000930004854929936079388007600830209324031596762789367553706220393635445937217421917556767220650935603912515971603951886853284095849015664854872001008501941834895898141428302533471241062961240883583656316144834499392221189226691725143686699493331419915557777998755839788353130223890085021863828417759756456900488544847644636834835613314238488811597964630632156772336622387080503513777363000912321148606739282302190216794335634659242980940173767108634243380159850202313239233967528248667948630821535996198601725403432764707127759930005750539190570614176017971430029115554148957752770388071054181534125981128292166302913753061356847917382245597142074485199637306660964280872161557504034918831261501723124259641643048590443723590813168398652962922016147949089199671836352219173308195106775454570090046177972353990348069402209316818324140756103889362307325209499169028098566655081710218657864349893801295181610465436081383336507340576202103814321839418245460457429005967777503371717334149808210855901264856938186215471094662320591472071358086887883252931211785740459184050823360045400109292180502062404818650693827305565556549014842031631300071287082082538302363261642955369556580937692111026233918011260158214571313496873407982945548557991970606253946040427933253702476216643422295608665086721831258888243522850086019294694024670126471370014485241373174554857334768856876759639013193537637923752649760584698092752807211779967160839705655654710547639875693773639884021600845170768928542099144025286520906020862183875546643457093259232166095219889775900453864404774005219379934233265561792089887513760455668607378477404217215266731600259394175875736989114688061315484820729429732885354349191374730594984941187825322686150602538756607338900612095154569608244114842884540262561042993080927024853710039476814740404400684292045209110040511107116764968201445959325081730715079567285179409418942309346654542363965538151007784091225354830090806772159112698116597397036554470415284695321092750233242729102357183007257355197547388841740350431805752639667290630380016172743048667355081828905648758545904221039816230401079718517799564122470915768759812188636731283834868560678010644466750661285099093055299335676903343833049667891133515545257481173567079389901578166472913420197789465886858279381391143275530915049286830533985762967899302103114081162376890563443813340240007425439222858037657054327194405685596338869344956428705473690848240089201624428787473318067707139457775856311223563905389382238285969904089382380900040180260033555245379623171551130793583353504286427155556841913246568753449937092448833943673286596078028850174471014123919886075010431427294524001814308487381902482120701086885985176057109012890850433986709819338521236613646495091337585244285159821863871102605986672517689126733133119389203386233556742842245363030313729591938909429643177406974180150290619140228621274913094253141907092691352942395533101805255747684979483229558694777099953240420943492035536905325117183290802513129955591442468596228607601653499132793410198856526420390805212189619755517143252370771071076145367581964109000446920059456175211176143990333844594559575841808417530670875710015473688352499901686510812447850682231471112400244388618179491056555563305402669143251392520111606506074546621938393716232557462544384861613362740334833844279228550364537487066179409115222338669945904138905392975819102787764086118864411759707233554636418893984874045286486402890329402300285962732959778727073519124448125644316572791072889904142926677585484511665467626614791637676040124159544623423430093319215505453783045761001752770347372433603048187186150569015899557937447459214253132843694920822078002717758154753233264387171120296681703080143659522310099333559361458906154150800024269728596442350890198876614780740868695884627060351892121092728918410567356035845245247994712411778637874775494275696420987215838983333192979760234413572208553779131823133414554315973287082913260373029397848508419796696207931775838252371587459630523233627111474635221028993036129431798389202592780671661397943580134742116550079770737860007205297495364447902901481347290129316620309813160093217177607620052901136668712079211323576086316029331536226354913593038297025824727630841002630298035753468166391634843157484010288387093746929931425754324180278369794318355992882207320061217448506426474962107628024547803935089633267252595420644143002690385462014935135662827099510905339766892242124350550555480589661406084891169652705994100752901635221799272221567326729072972637358840823894644540262620400254450278002703638509116585113085498788804765164793098298242288688188480206097807411455852799889063741507919353228809118057029069596378482166266592090138372467980125404536345662597480332708680072093907306545693102644998424223510877298634277618417996944506874018800658985822420020633589544906576732276408678218339942852421801049915557602438461618390384220693730036749488448333361401204908963802662138402415647059467658332347952497942277964624257489274472556085725375949053452448670470505266482185858818047100646305248247188862660070779787423108230956415156806646753858219716105154643127579380839342122525783041688494006320953044280731472926539731099759067832535937582788998403608729252811513391471981186430807521278806289994062766519097748508381028661804675164221301832038547194159542855409997399702308263328749930350728646281561634240420058473743982708663064678458200226363891569492017059307050680776232728075522030138799782104296417445187340738136901825446625577865188017635854944498467690324030234926524842930940378501280005318457516303560045814846470038944432442252362225637171632584869945678682167345623612738167888230356501137223821130439131745166282178248148951506441357358074946336553236939670082016813708758211524240183987305865783544102093585615381243950005304349406974516394679489428278764811409762390673742481374249305339441538671508486890489630859180437906311475753255726916899549903876220334455760899022268787370111277489019660185158069345158083237206176972680522874479758860045014171822133416884135765833246401067608473157876742625443826311090837529014913441749776420163876079753569980713484699752013421779626301340364297477916821958057664633600643275507902947055071216076913738742599751263218403881417834161027090280053173172633671036081115119323377105334876464738983916720212736770826530731376951734518350429478366781368248916661994862502080241902143015907802796580945332493080765746668856136966079625077092818319586303396675177530173819269080541562987696419504911075149687607372087817929962696266923632318918275452013691507639588535035864577209057447545507492455251138427685899287560725508457202341196610989281927152044345484468427140419861314731323144983009045197060005943011277627763944202055958629248704440424146239879653153560647798010167245341728882203567208493260582381979543348537563260912882440910538637274323909187052271221578752950279114036838872842348787169961843401104877370826676131911051881019145971020200215135739998053969253679565535504977553934709227898870550719341745692822857616704164181782954883581050696258008989913184382406454490207592848083356537717393042916982975732226946550155827767102810930087523181662937813468625550463695418844010605790015606333266475166583702667842421524437258438602122852966399764565921667334380900487094253518386005076263088255705833050946951738131500559719704447502674414341163295022650434056135546703631273798342858890209759163815846690547783736955888341671322085054323876170445485061121688132476838475217000810440303065018582825909629784695558336114124491751016601692143483963568808522209141771370527685769714168972274700735783310133194062895541749649425578325794033472283449673475437808460931049646484491888182185870809159246175175151065729990211230666153010777532837920047184449750941282503702914509823071135605322617904295261055391134581142896474959630269733388030503818769196291438707671631049287412351151940600834017577636499952410590616071680598449346393677218342363595145117404415862814310312489850824903654575752597263064293406755979769874354846981074951261757488816337199176654383417165535185339011385612747013791646375062490426967742901900273012341571476260348225442676006846961631453748475043628555262804277013877571866216020444894961218771058213760163146593650093116551223301567823788336055129975772976665578020751990993190093067218724390012091717377759353519416927535158368123519320191950997214794154391192634503719978356052701938464506419323584882093549420264749299256191284645510355829629196533037174530810398336271872046592422884663384873318339747346408119177575684473795560834033538305165107123539940834295390357945242051842143972255183628163294474588205470787930175698327048567463794452537708912094255004085176354265898205117658457210209993039105828167528013540655474286767702002055453192074903182595589458948066749795806774121626534350210231263086438048890959143812221715695487888857560537351741441306048389634242342752785600472518362435994689086997676525740992834031451954000558650095982209473318851598561225618951052768534556939394375433906038922644151421944301821340469073092816290409296270932703233576526107801816938813634083123270786986894760794544428555110465899668571239848878565444679127882362125729364883788772822545579164952919464667800164595888533313622416617363989768429401026032652823524191569402971303519250251266645447335197089402155669114803048130123007696613416434191982788305857692013268811637205778426494172347507152354086324020517202114488596011323824241810505446973776853037474783833693048973344825886077255163198346857191158107924302040791502142870504694175975759338131415056591687495144364185050135380958350552419180509144430763840470331712829257918521542810090491935840396207792323835440418742617623674308898158594880933994515152396576977094963713575342055246976604078382937076614542423476597718649535992660447562650980049460709447581432254586584399203791061032305023880147335580930005054730871628408273329800765813568168638353547063785835982597275184116791080106903505541794054034326256672741991616828189041279101892449506170612831667715211177599397829500213958710845250938533272419822767241863620956463353069656772803925536366900675304082439404278450914648751485251644263048156889289025316807429568336876158150016540316479412839913699203339840942725783408388172810674425327932778066670324245128335408372627047194274141387110427040465643334071881019823250586475657086461511078869514767362974720570730320898533692750128893549254320397810340872054851734666041023525502635153536915826307828086932547317524877156229440432102842129449757324759035911733713373719436367201009474680422924047798695780874099829003272765635182343901513446870592492967097417959544810913672414844310286428872837885627980958302749413249431288915628454564592798966092418347239768997598844768288441005004319450100159714560278906192344981442036156148347366146936918989800290415907477662076532855203792729937463112406584066059739887399744912800146403119571796112118846006055524628044894815853343549337155989576577978618347618358396660984285345133519292866478767314210652362330844874309806785500077779635835951698007304105779706901985087900885196185386508935455236828216974661013583868279632554391358255855332985587648310642504956064061421564898822850676259258089602600003703933684345696793562340001195511478110019625152827009595646085876769744728337304577089269838113569401312564850488805802379476209219911038803107453994324337788524534148855969189394072849612769184435748464742508405486549042754490620742367260864980751480617212764966047563203882045809562468022304869989429539621862991194213495749654414633783919987588445680489641706504366415651366414979660324618139081835479585491055305482443677884121518918407473440017112152663352748014865134131762286310798738545828597073529692970803553857620498700374978723986396970673506292119216354741173681504904039686012348764465399212708084224988122878300825670296619527354678519566334581305138416451955258947518138548866358217823585273544307572535933940805323121198345700674771361183848451372305250678660947108183436203958323297692562031039861818811107670496899346170919037558320534342323339006684292558413462861276138772988306783104015439235954472406679750696378662438096178172109618207800326288524946586458835139225910226054380524202769821486191363756908679355238657421434281234622469245843712508366077854504576418083682755131676265914473506097849889259042929320817075841874899750981654014762894542433199815548968424082531851038467756171980391238927937545909731797068641466945656134955693320556862137570202669943558339711017384640621901867927120195042792678232157062169751589179033167235462722948013027943070032505044637913922858452435461013648067396285993777212771341215927735798570762762994909080994932888199053308957267805889762000130058191682172414915232974090214799202960040328649874553221136856723254779147497233280005187151750131451838751533191000101981784414503134582125762890056850065512149775717946166582661432124767292207144198544930830524538322346071734438207653802668032099107904807212465565720386769633749636856443892743723636668373291268032671795034372132639347357563551067550599242213971021970282657817739112010188014993148992339906342930351606497949477018824063594171715502590776908391631241389838741404159810222698698819463868143785646462585740616333665146025158489284705912355372577199533624742263819505497223582778976451501988563919096649367160968752949687260633421476997187573539090260211667074579127802191489567813809112857361517022007038064743848785669842969926068131506841444266302808093189218717914688600696310336457363429234170071678815306258912119246077205946542428212332055315456792208394242128927193355365993879116982211073859883921319504907270343216952136379386175775903157318383809026942814145446027764345587935078545953405656199209306771396582583051927818476602253809677232154743841108314923032161055304062739804148095385045818379287935035249936066328820506961140666391976420060706134822195301743520274406352004781976837136771563293660569446834994996327153227962952786243152453828914192677712196741248368170270410501755018287756179626009458094436621977751666724924084688604493410685354108918369557485422396263865765114682103090646201383172054048773383568636698900794919855541291958785333986573788854628677722868492030405781553727981876596537018648002617629750573454341789205865699084838906896256542220719820295053770388836338068944956342209289183069968357127253498611488391199179029490956856749123820128200061740390860653446403617860530660651002817701493238620839354180327631171087788730428535247278392620274952104975206192878616304850613219513032876619931393043163243354315362996460681452430444857156193291345145748503485622009014325729855423627429234769954094501585565370228395834831957138400906444492315405557699894966192134877861831522984373663674651022546679839751821987461848425885322089459497792398132470123276766147937922465133556810576885529116663977785543471340597599375010097848422095563532194750661590112248015566240911637092869245140038506714356103797354176510108091590889115495387094779724471458295622337294988903780901493315123246020052303377496965861817560918873180849213093163134699588452667656622951400907439061753930303770834266570950212479449237212109007624745936242979837767430714570308531004556255994121926379645025800177006658744602937494609582482484007124858005573729844930886004730592235532394916610511585873454655389675302946138585750559950484821780822134975641806124107470018368500461165408565919551188587803897114543612518620938830300773075470588508904296033789003648960467639327507669616352161639631767841205636056701438245071657896275305930757217294023228147756458821080641457804455917265296463068887530172637760085039594272648668309916192311314058423587523127310921588461296630641134796311971003829397555833899638673494243645625600935599645157751833823036543933679206006526088138912178606591538636991121206166111694555418559507707770181047839487684788497623789858725685275594293818720437453287648329763039706415794835006410081566322227649059894629796784900559766828190280150946806347206536618494918699000852227721005876787317251837816016115672764664500770409299385109053982540474749174872136684751695249315563464812822955528391966340359600427412468678807948824909648704389324740473314053017503434302739600721501123004966925503132155330755075589573471586904111976186670716698119862532692803430795757240595110032069232201936136835087950930368121341915347663464658790117782670604165223331311689147443256433693437962113334915262036913029955786811095985032161677720195053769645242366688736869837225341830116836396229982407122781430507344889313057697815088846936778843020775344954042774213909973262431386257756515564593621127717100405127781924093392181591376754171705511137440632561076827992691952543210138117952432605163359598565029756592016176463364519886644645186619364019530740574669726177813883395407462897167844233502638396978680191374841821754774818624470754459329052623446207340390174118963330261240797686446040765545147522777129091416885481502548809515501497470675044837822610369129115024929522866799601674143732013126678958236532712623906098203223386319735376895675214119018452929273440054402029552096529571312337644628281467434344196879650770689513240162759350419613917376687535651106489378448454333109825101507587326243320024177751276338668005821691423189902795714213256973915601486639599026695973781153404721771568891116835738650590948414460088787992322632913318306779982283194101383270799022832646680191456623491950654451501136994825900140512878319569914672303788719407008739444522634843866450569275021501948977424243721380126399712715123487196820341282004793323694175180039938909566076259120068611754022492609518735982861461805301504517511286276011451185324432742492166104453618931804422637563662526642697269404007189839494945209531696083778289879973873392934923708282628521713341694750996656325751484715113717177965731815547290972522355759697984591974288924935539089783018453411584932694818613774079728331653308891902974270726865712339395035690231280874847040229150607498838252486491986165072130711835522398468274627769636931605625171491428155046306459756172028304004856876840406507118148745268551134638850249311289827004755713379003409322740772375310888999626229366175513758184121328086549041305161499606016789990099096498337775056486006943702956008608495816351477479572853467586370560948859502176408380749024660605048661604718858699738406920178392742344250355199969919250260455014478864439656913573374242903103667821467865902207381141344299372647571578626779490070286740987915146534064093117324930623483695167781467792871947675112491640170083454208710669734781004184144852131847517136437728411308137055349599373803863335882049409491457731059228953669282583833256876526747897500233695294039398444976490532165778863363202894257290784428019157662646513600768085214839629354890655762192989494703381107686544335312863766639611721256611126229550901617686607450503062171530582909941812148949331983905229930409671364994357999304056720122539546301735439952833481498100521124366972272569372181976837477153694362746744022707611615870096124314820197204491573211365748454152300635050773185105946773006632330847935534836269492031227796615235926796547578597155765582240312203216181763123228555990595215288947929686438805018001293067420324333723340801007308473081263249027618753604570269129385184294293454565991846994141906025489294333152310470759044661787148408162330462612115647423325308865930626067341913482544411461645185516377415175855174509768565284669680611694770784410323865488710011087901127504404727112648944269890410861923262997145000367962249461314941942943497690931339897975956735555592345587715320210866190378519919530910705302780421903076906179863781418303123262647605312592091178302325338566961023875792734239733141547714766129961378622661149700399857928136095047803071373263348455034119868734908207167715641388035496304735930335883748589369532730609754602372237215142067225521909748461326665731817457467986492571491346202962002331162085517944461416246389798095391210852161797926345407612316595114735980424794704110443067746583471196139384803220697327256011854559345630066796670177972208980777919043472123790722037333291423298739451930199074433762677852221220841124602747839150336972460489604326207292259162654132889229098886818384823968780275065945120062149616969578431000734597567283705653297970577697838615257005383629270658291625714264064611144113921917891903389735801009186373000492096315570936823446261678217708828120726461426566892732772013084953866879732822193306553552626529288540333562943662610671923320264485352438898577958154738296625839429349244626555636530545526896690062244675500509829911379740007296965829537905430580436402427445862752793234077365914512017905084040954162563036890926128726850335075893646072869530479683562599568460098592226771842824670183389327378031419351592836556103623760263462574535802443816359184124291845913507947660746251847073944472762569667718274154532750007125383973262747847993073846671655374230459793488981968131179369660213658390357346842146601403895234707078234954632322282953859152781768892873097780294866888357215342248873131222914698555308684524267134497584796006325434061848347423469705255812326110179040982319742714147214057232705414095505264043071387671398087215751801874553197960935262462589770317137796314938733202529150276664101918070986874421560658630392879791408501981719604655588752049282025971654736000897789743761521851728814661770520606150132762582052871725122261366273405799719180786023330212382771779832493678023269558361973528340525513674791282041831862769539934707724864042151561829304139098225672766771307443810806604620950681026174532370684445512247883197151756620141547969857408053204802629289485460478797242100836669150134454354352519926085398473625784901270666867562462840481630118115364810785054351486137358966883946215509522296659236895332030516749742676489908544178362293477550197095196626511766353507117022210493803000051906497383678152726536147930999884140776764470299316249294106041732743448498260237155338372221029665297863332876305966749067208536352744163332782523548795596189080159771460448820437274085691531809166983341132539197642494942460464583409397903117879513066981906599369073586885360780485886256264302923511137608596270785786839067188205839002263484205875149754365451533392457571262896845615439652602708252215970828632818833460048027361948270477557929862375073503500343342741161758877861703559687729188646724573978963641461026721055422067833600342936887061544814656077663155110012912686959968655673648938824273668025545009585504850896575554446300276405487269685572996960849162082269432401393385653848282131972023024299972783077976679180972627622490773579686911333429147415559949887254120312829671861278049578729940495652418942048303662691844979609444889520478842609934653449739093448766844550788396212727099127156059447668307942513949304425633245036951943060348234834910336431337363839349877135966825540250060534622532707530661062017809305162516499859325195185050507803683425121640796114469870770328753591283725462692284148277363414086668520975425065200541976180408452512438111493921869533656691401654140677734658929352574957138965932097805958677117161398793751000570129622834521963113287030621450232329984796065277701217430790767161841280727535858412685377212103445041909755662553192813779505895422086486489093454082297340857202128782784648476833971667379672431561415343551411064412793163842241058202777966110342035078923921603926056839866082162456233259108864316860084198395568156071463239543302410684652125862273452172053145930201754442376398270178572244757520351045904511831256897908702454543068216311030683887678486076828515096104641806999691192857485117724407404777518724593629176178452736537086465110011846018510091653508188427764120042876393730368164151351334922977377489339495673217410520025333453717881898818656015149213688275163812190168749554941999514591629375304246371628952166723983862848268034165707382864354035883104067851590679452788641113078621079055313434188309623375158595577866460427646551009788285150878037123033687637083528163532959294700839607118493910452115288229136175255176828584027702434970861933835641738861394338106713518260472082511551344569327952498076607525556252315064522370052286762961591266285119451316775592979777247185058886195590770476312140517207105123081990571622759288172090822111368790036688647779770774166547987752502138554089936187978193562102266898881483382286730981293546137810018385215720403170889962094801740970519657035779125553023335228768134553962718793887216315810307486627306848332453373154168270244175369955388349446625981968952823047063787821252171011044764858239134412968971806046802432066630048139279642160286616293554775125853240535644505776986469453452523634088770970239481492104951545616802838513583226309827847895405230418506450325130289603192993237477790082281368675152240748374646439142224670331630989172616552750782149894715535375123615516300669718676174340861824637213644535603535614349432750867526698667515973614100247545405622761303240228683704608134426744357034086848290197229278685723140899185670101803803255553502618408121076886354646608022758035342794816686261659051962586053063380558269943525393629150555118040886456258687251930570722876252775777163285821734314358487814434188067418623528864271843171327308963451452678119161738935141234252274379602688564523932089123297582175342540329241689701176914796500177386587120215877492809274046933348815576121090796109993019977043776972463081268540118504375426646247526819186273509694371130897951849526262994840314452849632852766218568760421974721337301811241057129211222751907873589233397541840245548467018040656251376381101899507143307292197473810375251717762479392534538787892139501933850667755723753450813916216322064416843692625536729659219831561364041288346390844153961884579228347863251045007786261441146063794602873483884632735604162488132001283194684869582931741047147812141288551432841248581839598607840903379561981522786904493983881618390298849261983983408855579681734688522816745712239025822296193370977106263889870975350964035989382601684585170687975703672903745145652033465034244706138541615987754080564894804303276546083518067315476958449789233099308855919232420627238831819515918342805215824378587461004500125360066405053815619285826783043220429243178052262926156583185160023688235270864739672544434497811760905138180109689110377980470108351591085415172187934877062687357362903581801983779643753151981589276461536446085429007602453629894336124205841268437781125997394330983815302126806259577754369192110508778570536564651211763979729419019567223833095999784624953357964005540308590161153605291333609520584208900182664398685951701049914692114924261532872077105934754289278959493955512137246353646175941771223931099786371755972388898393479248766494009904399295404403416867907335465584152778547611593175448805173311133781817580368736362258113615161064936433293450603027537063087125550937445696699774571974747019883764550232259168917722574839823534697352496766748525152447021889124690521638944070580922866885798014620743318595509413501702279678158563713405199852636757665717207885629321188106056432369107745063330697316401136107323873218390708962362621503856551209309859339570796183367089862597691830545551291267359360957153644651060674816897121983042466445574075150788638169402348610114232567415046231664367378682489001747924745537685331674570538589576834209983995424589559591476940568236671938790182129249137043160753102633533887022960735330963552334540259039359561662637021983858564802398895773704157448107020991998300311774746944584837387921141160613517305700049078623577112451998197976307061362126858054412148977349806256999192761254697261886623804537459668423375227342080146483514502718144166511321863002558189122717399823117123940111806734992426703311775084479607944194692293071808704364449709771311417517339127922868836659194842921052861439253784444436796373879419688365257378459481058646280991605075189518443569092180432886018478724784120346055749051012400368383935002553474721679951172407696877267143366613832465116582350883941181405124326231663970492903129111693806073515867609742388934181128199751926644184053699402326237346179492985523651521338350441268658889706997839629355060353399238803103782039430144463768364742415597735164744918460681454616484816495867844899730815524307124318726935407383791418261504579134358156770384617482296096464073316461096885240833340919766716238881735143117983421314028207560319319077321182556799771499509301137574180387991097401250535426692416233541797210204654221003261925650260277291504548586051431545950388921368088998918923957958643357089018192951175329344454957125072955760620314483856296430704836750742381473533828820400318256021572186220555126230773824861746065220805767356416431446423479215778629664485963882641688951141805746826998379351006847458827579070473436127964775243451097576750251684224848148519889392161627534023763156755858116552412441740411262334718734820948918464960978429559447703896123382050269743913385063625319043754433483307479412585728461688486024443792341170238475792021900685303975705991849391638669332308078592815379412258435224934961381256760078033004502927237895054755377493689149802116261598692737819101002563939341639692390233870740783017067341178499382380166073302609399193997374983591499078507498762421649964868611921539779564051455125187430163885403188169138099480853778226022241346072664100559990101274002703535745059794719153075643630739969195537661651951883397416528356986302172030641158216769111854797289579597293784271644286381856625122688062619064596394861480911613370097279814393135385934291407900238168114915768993972345449835205435087749064269708478573132640505974146136270582002034164202743069493396101735278994203216099295668765746556553275002964500022372989786182183881466985323270871113743548107366057685288491735927953126318938563304194223722383347836788166464863890963511560815446837913337871819189074911007252222950303504367016250993706029098636716231036535741975293778424292604364307457858656726726976170852448528112926118455991259071985880079534850492983473517800369241158774151917501272754761588836631307898133178295790853736602348047291139818018767947486590398502642235269221396436740750645001193235788797292568283217620534564056739939661842812672188604767163532671490965318585182522968640158076609968732690002744503843687773753290306981876942553458781197367908171058583331838236352936251669023187298413768788079494191705660370144843808477688854469818170690213821041103662475518911567435571057116015892635545252080908078830750654891503911638895245304901130168960193061529360787498275835548352143414661186151267694022665938620186963190725469480445138826156729768586406388255678408989347511905450519838581756424875713144511506874809463597932555977545938142696221363491275465873332146870597744336258083778369879198288752128032677485985202596008347782005525882722558568396707550734280236083019998757142569409554147059606222395610276659874900838311799763391346393462612254671939108659562590053391107083332826960141945576926358585921489488987632790877796872295554828293774704154150888442278329725025039429527199546035519765538203711965780928917397060588437119202210266998410356862427696553109616295396662389581946936704931257237355192281307522164583670192739433478103799754168605197651120909747710692302844003660213384139270459045024447531628382144526958284679941335747368260833572295842256763625403575782000688380396717732308888877429418281627765632415317272502209223391597505469348402691366828097290493401049905797218857846831993156236867545199131719002156022362712995202759428009227012307943842208265952465514593337523335679840990120935641711435189181576070125278526585238606494334136606503150796140522337087314842912354971187406128824804678434658824699041009929439281577979677837831146180473038285997927131928779705723380548316177885656447079621933988284655092996742457830304068266683257056976495818377921708860103247804694485382022537822017082876514461416416824027817598502521481957047419032846028529260984702399511466552999456792827691019786517770210150562669608685974324436682254970125197124639239088492408801301049773560154420006933345927146744773096679347484017607638065533334521747508727523444521080274578469634477670902305926736397398983928497813064044592588823903430930879611696837810247979026949859488415682088151277187744613242692917544038832808898347052527615949915338224256186115131978673445719660882607421367711892462670780669487057889425725401898963395165483869889332651814361189873320446714551969490394497161549969233938789403577473062780464520946669768367140425447721026419477071452459899390027869748512750364776725654208134367916576189200831039215089395391220584668835042326444739494203638611810098344763315795758019123179421889704098077587997509036027395366160571109983376227676997979511354052983383718146820122630405163232577681986094235274337188273328186726795103128675666376449392673042490659119854605264356727315638242814619129697477617253885154327218958198922854431623772555603654442277293012047985738519536837399561000554400635535022423879992322814035042104420019040296101303761238633597554709270711851930360778345172447021890972421533475718498189992238341116312842968797678360160657784788778104702174229870798695971641216517958707923650494817635611982796948026435671829494792965981981942973303248773346365771370517864172656893318750110734869839815947663908151716017317453561216213748974356466588440075418711891556973489627999381866222348950475726020706499920361855733171589900651437169369729212345873288970789716544459425206708434777902005820131236806332068748834196609839267619111999705460031688287233608249516664990541838739180544828285763098599326013310667837647100545979911194556256428711472600349040975547010053356156558046191710029947227605036166191219760853499065922083442494502429657252207492278344230692359540998048577374157741384021980614683631615961934225719870311448671820243869771517089686785883027366288455429744137410789504791290961718796759187895966341032919634690952867556995122597299166608708953144322856826794681378270474972043388544070284638714658339886439319719152185962667973915806768479659007822147187235418289244493240453246798718774004725267619428169719041438903504902674992173718176851681244502905396700053059418774218592041086594054911690286068182895516269532718543996810970719307571715673358162383964155630853238227474461880452642354031934711171223743122658886603276055180559354225341119715084961525375559404469231253790590073747616576510192416786388698171200202369985812786999912410016481693076688469233823835314061402281937824121431033983858588467870312625330709182320909412928670643493944279340138147620036447829270265580066729451044293791074447787259198905318987539361971624587216300140181980968723706168500607648482189729836692945918812572127464017100665558933998418466538624127539754372262798206125673695742934668055108730248170034873156967152661992258262475464955866611774493571805913708747731717476141146912178970642324563252757015308259101150977833951314159139432770644265253702752923457810006560303399637417345171859267498302615025074071270169250955332068301168197651936580252589859510872784355443245320703210681692626657423407609394475349037478379534239014251111530217859361529867692549943688852117134219360732327244192663853935077546077121204120694847063966908262870230957113537240433484383087184703614300576320515154649856151112009202590860805642398876211620882963090817434595844759411166907391964939765389815607902181774389789367957181208535757116180887107443630614478711940723321288062271414688200765367112090768009944595125304030087203509194415081305525549424915623890369058653698936016577507611171439886217138736220011074672157386460944606173017610298632617651712401647870702279963266956424652443786631658646630766318521091850188632346609320173867969511372269825904365301090976475856809965036055045036638977907005050767416714566822312787668475576778928695352556535074051419944026318089033059794906206937730497664164861241763926421169744518767798012921270852987816963748631262580085237529214135093028132366611855626990014645893716099373424696009513821434013621940077567679279302124976885333850528021932422680289935675950662446321226520932511839707175799297143907221646798474716209528721437354505534212740740589460175396990884341362807183481049565628103325618412511060216937205956526277436240263622217271039263255208939321423096769418275258312106110409483724253526741657528435693081956830915136461595440104552727124280921710892520656659219618174923869015343002533398675876774033247628087151384564327955939927557327878739611300105822262426415871927284033369798715602640654882566777139380192648683416111303276348212692004044154674921549764895113190813317238426841804230779501071820936004517833572950855389731703980300258195585924069776781550303814615300187944290893127992324551425624697907522019568782000557904918417579820155547968940016371702228320884580838118513456033114503521761402941155325582637023787906282842533983317337386408611987023019306708272815913596027184116549186710831317119639255237634601967648911818007673556270815616952337625638607943484567999428092319497289533242610358012342503816460646191810931369079991585733771655932805150815686817520856764471457094084919429568817732680369733050275771149537086346581246885466783386318076607146781858729381038410024624761489700503654864148347814718217791297356563564890760839186909353547056967622036839120332101314143984813017371497383268755763002019192135624378173181078734122633665733407678051681513738575136852515294148795628345099279240390876529822435169573294932160974529226123424129232035019684252128345941004987779808759557795391532837645143692173815435977031391830002850438899590807866428089779908062166386552080470468135116482553435911949289841220790146180254883903193829998549322682625276067523141402400938274253233104932128283706293874733859444423039407810445176763120456037922512598776274679726255849190431635361576381387078250387310157120654306934664003583959010716357697825070576379935778890970128678495179724416240196034848659238796248205830643806494874786972264892934260092822771624909152683214021725290110916959441904895369950484698625587747540163651846068656783927367308280673457246825894384745522255562566203668316049705958605249321294501825615822230732258295292969422662171256783802153288327901834022909152582920370558101847214839929418464581329414870205844258778000131727368028892604488038265027373429999907932238890902697421874255806029624140263269020420911473944444551782278126421715128012164699608685496061842712743480232229029068280156370545174576640782596391018151821656802969402899797524117491662774277598574884294183642743312290165783486011870698676592744352639254302982317070565071397144190026340556882640054727891906396458637560510840654360930390416992340056500007180813831920068674255768823433200064883306583465380509252836755356054253924957296018261237714070408452082517236719607147930119017229310601946279012470449436358413727334091824700667715967649674414280201070493723677573528461394019925623916908812177502888903031078111024059908682678541515343201347215709408350240472204458584800955836223911847326853491151776450507340540203747559250625787882278676396792588774628020810568469084466126307324888203510017978047751383595244934012656597981353734566491024319840867854130604936489509777882075949550139168786839891287370678595971504859508607499206521262060789611336471485751921792252669859235011744881126169298453216858759225122949299499117446625771339758192951246527619052984669390432120139357911506546333497620732421605553052450674548489078569518406072968512084188120955867630565902696809801836450086858124041175295698634293187772407326506246044975956494018743087956124958132578946932107117574074903046351730862281897970356102124644256626756490280881651872005661510580117503670958243760250545184343127302658848346278137099264838079190428974542140032047470794271537156015819332915409315220822886954039491063921301466516701110246875372893716397160072100313967660101237059395399826622276067479450014497610735185069807950197186070514803214045000057631098291500773229891857985460578386746780248076777594728715301448408730347519367095771303884785090441235952901390110701533018221496902015478986469591878716520771626876326155712352254032927184842853984558547815971756278586881008399085833757521071558839755056687200549830080919363184782823418667397522174163387730960465214832537466559990284825571259296199917066475121306479030235403030508393666558497677098808585450235964411326487437942095376021453556467746263605847510097835519376939153703164510816921328163658574046877471596336455962359627573560785511770064616847441562770348405605093571823197797630437422861729592620384591331945070215262056663478692665790907164999527669538244504446729929855342072830847624363490963822686909345535577362732842845035135904307641754495166569131407497604533060051116916492190209614799757761176281453511449289929051631575667692363840700947830438752699079486430233407670200256219543388876829030925627378965007854067055695815244101944447665055710273292048225422123004688294648464180164280890999460357642681609297484792958812074875055109693561446000572714762676077469346582033422116536700047151695205696605425714395089753767613742762994986610828416246562482685274829813739122988983117700385036649482371720451124339561604348199984061405678381203285997263406671167768757848972651688291555579141009143682096033387078714159367266990675790531245643587579726988936789014638450795454633333201062517789318207524809667441451139233214488813027316825941738314566612876790703135668320742793534005013579824703636966455000334147151601435822812719458382087799352405170845770645431439892193692431117650511832755308135291616546851126982042651506862334626296306874526314603366426311100814594477425577210674184143455197230620806976266409041483229499612224280233207203587896798604543994240115333503203465203221509549826258273352895968639614973368942782424708988325646858029386150837195151128763446676172946339860724290334110737588914527960257287695222340031455849795059165064713265124826126898952479064881278365976563028429211813329511368871178711333380427125908271572590890334349610638938717860274434555132329096283099448863932706660014794039940613785520799820234861125283570347808778425673524197979250620350155915197823045006729737305879706136878816177598430982084473173912222441233856993459025919044649957511840226430053775949629787386369248632379585717753030301871390566909964025718217756518033018141306140432035480595801799241345309209767595911958356847062060263816779726667288221731084038399542038335561548714344807208493071932213183832481897846185831625536986620339488186722103482532848721753337517806159164800416492187299548915024976343823338182185087393153857728870781528861945472563539336133835303024597138373754193166319353064568262740978964539961195696445842405391989230677333183238465511832383231213484462226192196852281356954864096743534521050696822365307049721528288888176992295009120585315750813436358161541275673287879850752965344838100764082125157408849708590704212403604002325764041043422433003774621313139897752730789566461269660569436811223825452842954707435915387139828086299245939318547454652958612485697888399218510775301231026224267696184053208120942203005956755055436261741689993309631750098932557353765961313322491751334622765265090519110860104152878080227035261040668983208538213051379995323812105618564954900397702212343321634118509279307220907354877155244467412152403391761184069676015000924121534962132920961013180249253118787061465263922735918435290189337736100275781350478547355789665415089431878101685393082751466904821705780043499944196600664042363063970055962902491753625564407253342621290391904006329052893126612300938854748658340674444571185387858742779948894694473876254715090387115335183213806404687488758988497583394355889691458852769482922462247826417046644696420125500971458054915602032128692317215397354541727587973594884445777806697620932113880560507402324174811389707392508844210515447766055307474871118839359187719812723370581421774888050456517867207046368234064435314329305158808667734706241860417347493597082556998478858239641415789828240420750630189258596438131946954725238319739523146250119319301600734677934515066561399515844727504961853488915885318744254105855240619577792608225922805159423697085661351688201365034700985429546375444585268514133217641323545335939093439962482072387001822442215475514263067887571936106903394519938234937126042516948292457919109626691955960348992178473028246351151089172359931970364741074814934189003602628436623028865417827712668763385515747781645799247103182837428739132176969772169776641169691679842782200611971960020821414793443251453073009843575084838230257909198612737378835707386926786244113619425333309842084080828215578186158609872501822055303732770743690290977588367713240818800636046411416583609399270858679851306144457601932546643188253986414538506532675361475704020564588771790961825627761898240656597763844561444528774071713500218973991396923455916426044098472343481440782975029296556597253200998727660354880370351959352901562594664793055233555791996077217602142818951487878446351417912994945081853781035973070693911356964013385473674517126771038951057579432849131654585192975069125807877584074772027040831707871321583754906292076929093244576837380992439799090621372110677868256084068508158906062817106281279853248156026476598789721447594842512925206816922465116997171022341442867494725382441718417123115762650040943953548085686260353041099434832168168369618417280152177463340598352983951374380087539010229781942171352402444623113694315266906261438871958887349307014867157161060061033889787301281260731619064458288698516604348177309793376744311674301864058389561452371350374279784448832394066038469165273594203594928184044889613952463688950908102264630184255634211188750724390710340613681675010977813125446782601806024553767825097273863171491428721862386002335230914792516702019647143488690354935844001429356576846513631073438205077918611044379617965581105104931176364643072346914953515380655408120489007873949142106927827339330173197316876454412762165955437591315899605831201839346000299233633471452780387682318794320583089179076512555394201199048164555884096882149825327789492264280028440415553896553799896041750248824460968353388488015075523344976895329522820610287487719544853813616409796399173191778999938341934718279086705847029606208816747712246953904733641351291299523887591333089871262818082417766683137241926607304948362145981612777425138974659209967440432056930418688619940610901635974302159326027126263069338105461873490578889911268613242954661909192055837876030580907909280291666588610255842769682303087594153208977985523461403209953222582570046049070442425568704315292273501963685253551240324793243494699948747313453979959001945806532122830287808511153797827887326196451692840959721087421113072302616112799531653309397986325458254816309105764853665840769313076791734563854380147222465259099453558101967533295643332172285001411515855593044908345309076828757897229472320595710775818376257075102702614316457668210645732646480770125336382753027782441982777359646895821243797380686759087743558651828796631444615125870751021301052273086321134891750369105502218958685305791953001875389422896810628297475085176157253981906959355150487821969964434229988848400326620920617241354692816149581575290220548876358664365738306475957593142795627001676576190066296777875769472660140881684063431001652199094345218359961166072070565262507216372429791057234495899572568201393995429075312380141040719418135901715205421236472796625030734864961072053468129015567390811000486845941407077691285146380722240459440902264069823605451571961654482330597375325768278960697746060339220467786559451330996779792341950624538504106154879315016384566232791294498563861414635490300784389590928808637553578148091042771881216376033873740695474822504604567554856570559678362888162430220631777434511594011959072179434772650627022939983197825432759266524620256708438295033031357458974136005037639406592240524636767751702595921566039314631699314791275286744746486770713097598232992220910899265025820358873581391629363409101659742309563829499826209365337866302668247060136212991388283642374002500248415367809545308440810835983893981469657339704813754703677480713319455788151263032196033525577093237054596184120751012948539665775982192900092848066171484279082131639028508307395886554840308989827982031905808550641047050034295940240288463344587127500994946999352986415012133262424862484802981485671899890383138318054401324185541869322372043290912198987857979101895599814186196998172614529626704484006046695117701679273179871440444330812551771907509315661479124252136767412455562096350194056453609588588244547768872250896018762134281829528033012121932019439195053320049828139504896615014585250928962242511097869970900071745473505289940787182334304047774824747756907528640739674720380595938484348297820674424932081476632279196721408698715454963980044043800500156683400244519257485016397738698216279096185986973070981924330913138486450522920736872079497675253063032055620326209024971735314546780247159048570599415557783147111949795042919398198844381607431996243834730741241091820378802357622513740935889034012953087311894947501887132408216824231330512726395721726749923615956856902317916171604328155184551051565837579389074380595105801907396609469023944655161013921300430462374395788579926851294171354372150513295685012981971970156986214716157526495183794673702901941757925184844251634392370439745704845810443296654772442562053142654318437975549662380274591988786664223611569236172902592449287258341913070259253550181489893463987063358942667736589090253801489796946729227182323213311199473771342008492959023499249440742901775379014576588441189733395328313834822474138819896781795635520247548272218414788503124248353091208880808244525772810292626627805857235874807306811427757122078344279373718406439471153283742054904560267615330568900614364347363982559933020823121647474004078219462886472356094973116401457334647890693237256911251823484299730905431215690380739734117772098673217165809048281463561075738470661118681547378619376441842344523511978857262401324491805611720654263858719871612356630179145811839456773922955530537425616901403232786673457594198824084531757476656858002239057257835867622000272548526038792795849150016820396166142565845332046433195382841511880638579680627532831548292540505899270667498353169675046847433782940733246144491895586576432586111431201168996380361893785803909918017419898625946751250692594936409252816424389844009443247231168087292825509502569602243909482622723096079511332344109308006466002248872909341833792793395098750554613805393819176090498876689630085774569608872524341491924839290746673786314829329993040258746720704745229072663345835095978483407617162946697816787435862517693889421736080075750009292074613523654797174467761740348489022738425107471356616043100989597639122762316047907553239907426034864228004105892468328493292845025424518443070787017125011442737692798562691146909492374436785564307183100266538175778196260111501409325309973947151921897329137184470045381968010656570096174065704854280026061588285332673774524442537257453017735545657806799868859404684867811523047854963424629944932272112079987917102682476064883182828002423354438499615101436021856970215060560247426591698795400520951151102548730760559051532850730282157196309774473918219927436481355540614263013008612292320311861452273928030221825260904451876523216283303413861268538520226709175904022154362876037060905620178930900838310838376755080020622706991940528831121115463456330887970165531697996605190897274288424233100917807203325221457713437473933503615652400611012349700151805532699398074326056372003651355482793255583263181515375917497308975484954612298568259106429121345384692376021697760090212973417927501406301619876393543190672180957419396349650127823111676832805219711304570020353667775468456539213669776480937579595377521573604235599702035256728628884346256374364073767428517743814028018268116065843075476990677622837218777566321495696299514202941875365122422152496962566280323650385135517471221261285831568790876507894530166969775333672391867434590240950743533269934647236924293796002233516547761813758802141487789929773329547314525644142803546182738152379480389727697395309493860916351631629831347012816151603191378442766460519790468764091649685090746774323879133536656413423446240473670764821307071991434746442945563701130011757923194209583275183317205864954719092443833729733791499919806970326371129808339236604638962539204135379913532277051029857527138223538284196061310655359774289278343325770530931319176479418289682112148779611633929949771740714433509594453447834951405652676847446218614042039110783742706214321904183034072760142894779971008527274302680711226500759979740932457499349774668885976075938271730965775141288128826606423810273223891198661530030237394431051381241021818520651191838231401534767621178069900933755644129454731687580650226922821343316809836436004796104537741076807970195517057907764586684360885087061236652835698471232891251424709211989526812357754404402534407724805355762205398745896685675995893278678597780207021293868224516144071728096526949565301446654830467791747907135487221758719564429495461552174036828288560725714721254551063936142555428160521749729706282310551478582472907895350337529416607652199682481864868202360353552482857529145930814242529979301164934978380602650996840598730205065479216846721907395910624305063150594578664165705996662124579116534377839291731637272542350635023323126164957145760928382507388917097538957958916083188495874493888615871932703481462108066801914906405071566336123218634160394840058760574639548385396222966403184211110678075059343228870554708151254968659762862004092700475828927397023765782474452623741673422994043890771502704012641680060494593480422479976000101273517142210163548511460560869452500569663909975557538952868326592810907151546562029173301631972331212638341211212204245304966625021718350726098168245616201183376678146548146128695042120847143297908791680355694101527451127409177683762812894327758824018892151880713348226166032505672072921216840222118727439595926600170845255856366782507556635004243556889928545694408309416824099483866968368451949072863391225807435115374468766971797661951400377890537357264578610834471702996117428746397682320113268468709507432292963027474213573362770000061216545281425801010211618298159428540452036736597177652470730146661223093826702413007963868125935491383892130264546380231184220375608963676751071806919971930896069952949052753329949476814086360343538173333407393383407365586415245359588154140359255161093950449232741651474841276363165607231100632288308410447427028464568211967530580356091290654114872447133013034336790104351538849707071071389951770812855457676063129865703364693160896698935487424397187337540217457498119575690549883429559074030288639029582520074145056989388223969645473355677966252383034921406394728346062307020283537131439513875491227610186856530009034521507192602434156641046917120052639414180575976212596433482115659938786409988123714151722999937136511091518779608605604493924241674794624397661055309116083803220492719868561453289305066870967587592050046190938406439230050165501194250093705456166073544604252017757246797509423537989304848708060326532609819917384945410516553942197791702270320324875562846428663749929767599686022326016447050333929923449871797689221815594922711083517286699047420690603036552166415108714640395935252121375580239589213477665971894406524685141460580378773888305877043892556067208951328213437136381363911414984349615330725090083335785954615579977650739966005447785918243809848939703037682492807970414556251501202760200266017133577052912692305552761965428558814157102298490775011791371990973382258053278806167486147188832315326369453772410697614719608619725741650629664349931081263481507243633067774576180625416336874809240031005136229388690575535593884846140974184421443251476039015768362539784827237101207250916242015393993233379373308403685429331982762225905145700808125086556373161560831278069493864703638751663673312993404121824441742679154994503591143883099426565705603896034127863687381485335904993985140706566487314050544709436777332105100609769474505622919766346021332740004012401784876075964185750723244992910417929104503743496296265564390789466091650199417747949559470564457031914010877288196710660952979266806963958812662578784454159047771476003224852026293824590928183410996495096504384066958382263205833866608682635563901830551874426602655876452517594040007847156789796470309585828613035082534691615665698136339395726224726819731323802514528394774038356120042087336834482990757171467632943749747330501064148193969415139044049352634879110765892806665043174143999777187438415469837762566282446551316032949402958146387953205560692892114206930123684369770569268858395372299632553935146295265496239293753345501701775166180903416158972313690497643061355880035517386041796807306192777472590371510333082973633408398293378551043507934786765926359776792444285374040341611320236614032943896856472020959689311601722736134116578410322116609721340012894158663743862840875967787115960015130764778425592993455149909813070606985247556811007211841822968528892158206146493404770551086942555221570310453460352518735399543823456874156860650175315795550516613720586384668023090147536048523418066333215632220418698043064483843378736750324493786550561291949254470824942202192305548216403046014964079230110181768143529496699133402862792918364948496406407192797900452363764196751856209062981362933323075824325612424987448652136884922710972035193703853203864351588331466648700398301971160483114758714506482109327209256373896653834718530856712041769964929410045100903583766256725007034742032249750033163661583203678912789452137712590191559506956337087535141830545310796983392292587904474596599835922772056457500152692907400495124056663537694831895448656251773179382159706728270967747708497491777715423130212835142676822309953519194813164714132743134802530483205790354876009313545428673200069448516407877039195046569373973502658639469344568083447007834507472222933384313399373141430746937277906175149305340312944533707973111866023029689838386067391975988843428384163445094165847293708442160846049470721403342954966388408793387690979289997495375464417452647764582551207542078314628940647548743497605323271956276093722104599837386137202648915892053297938582358011807825222859559014742386482696420870521756486232615621909685320881200253479137645939829703191134223914223622845712589524273022621183243274536923736535496831711290992996280064024625362297868101925862719164348199922507061475051357122897850325380356527653672187280415777903736069074478340961618169954073440924105950165116736099558471716293163150926215348144954461294345452869917127286724276989162119804119727861379601785443285259780749895261216340272406995798058449776882819922398234357333202981089266059454928147336583226677677036197161651047483558071490583110172765225988459328282556822010918339107146617351228848449004985296276517812051494497892347982171115213852794464082117241933384109829695780217598438843997531322794579916999074816326139639734956419108272178681091544030981735788961243832771440737139437007680933642897869754301192230799371539478951458996847395224748856559913166681554685517501737341336928377526454261387990655194287947701537595549935459030753047526830159333126464823641175715408149467118406276040302146359898145511824051972443191175029324894076764167899901035646088143584251167137556826409207670139858522903474401216213219282072063023209869354141682811135889737689242190686856159191277231180702552060405883051386101199750247507843128413718982400340153744100716520202521586740422888428799105176200166755109636776404441828416066516068910643656561148068396335074946131627489955069168789512895782187514579481225791860490544556893284972464127187797687541837549721346144890614803112416621403667336544016523833808309235380742573489539973929572755162251021220134406532863441525747886940358670079547933236316857661594045326050749796695585074842513269903708459176201598299237198912212074129454015836452682398496163060559253304002366456157727348087382702287077094890184614530372841088780890610818350418153529759488073388680550006767965593255691907375884955055162570000321792519493467786894984754434075332457792066544717428505800954040500980569229433143595199763097287909806045080590242493187040020656822927640133454389200343370311270624824028045351389650936629932106898400916306576859130076568253842431686142477157339493265391304345899529697039046474807026254500118467672719271883402129248759297836332485414011203587804226412456359675459663965524815921850894175588033652378002954459512774820248050357684717748919431045898194734657489421899241811487035807464873871208578810914987442489777650762835528982270476772343317411189765170178895643047144144677407948811098936796510943875867604989534206127807138121048835779570106745686714054452602269712817638910470994517939976022332080209369381219355934280829222249175136344882202604527375261770230662602674794321777650758516700605651181988724473593183976592233872818310102768668996020495809148837849244678578131888514148204851664239687764215170591128234308730003010515667239876868221004344926472478902488444751542896827383579515429618905423863602831895041981409966679840575189191411312450114692813574385539973422087063984825143136972011799316167490022505199678417127851055779464324894743535748550791882247767001854670007655447869854962522999745965012419942762833658344222037842245546687898181839037189916507605084599163001236562246855628774621512927441064123676918931427907311947535437757454953360887282192645512549783886698290991259839901331652526073201396367719632118488121666704636486097979743017253583174057441383784405109315959128976894956093724316405367318890729064995557141904103072033817724989582356867319539394701798455972094789166468844095943525708328835450346360262791032238088922735440359581273101191192904456657051412840139095537101921058587930913692571572246142391564957561808113737335641258829876253533678205917906922222759980314106164941947418827340124446663129743912600239570299684612155334045609735620539895486375331566819520633726586192229657232714973501843283580189715051501482647471986030692466089156321754569852771590384375326722231600851238885792333256244059128700379067286096068048889325176953694904739767525238479301929083459108316231772003273399094664537250483540864669861993004483403525242131510793188677749308892881512263862080133734543615237585779107775232986495059958289681260386599897635948399033976814217609611523579728259718205026218915470695582609492616983928960496326090675726636879066624615703417750147858474201081122128936062065749290400715129524369198433064334353451389778538612326303262056807378651036752063901099102627997801886374526322402752740951879013631448889951094069067446262645010434644029444983014806608376863543895819198104732507834543050546642524879275180661031261756940490532722123824608374220360483232800887421505397977781808920466604914923763837998635692619023630982008310562308788380219028143383823860266652480923907951048085730622906744236231124655671156285195975800864471722035382338746840695632251726578799807310459738919855389493562066255789304140432661676083998218515716692932808742249959758666467959691848285567527920466242617331469590404919850963764443241702620629489615209886062813563837201756750255578606687129180662550262038489467152576708475400586279716830269866312167868955496860342414707391396802301809786389290091306649609581351682468699601620912792138342671895821830130002319987464974313624771941605567797368574805245497729095419368787933429651652807490618143338905443799934768184767239544970970638496805117699325189882518325574052826635008013648280723193561010801408079424107590132462029997000908956354042021697392835865631268500447762353742486364812392938227654704260518788496719002526714354968726897088287787450633216130398693443638125367266926379292809047035958391436745460711783221950752509912271268345274731529601035760993342585800586119334951787052475464778409576833347192455235993391838020132941101783998711716548191970298786296979141372758527362226329507838076211325755698472710920711570978418896320458027040531456007036754337428905812065854499040419491894906645912978554862300321186900928260810603318633238613275566292723690856368856228069021158890225722388688619712465885382863890677975082701149860900166069440037280594358401929136089167523839494613334552213037104208150290972402655786860077293293245068316029076607205730201233853602097932387224805726207331427279112613834970422318603930978913318457047710034018860707547877593264991310419870038719661777504400679435872712427007762991978354268578813224893743374997945518850939731144308193106411851184153521750053691121044673846689949899508289748511667828842711901303381596770543577035234803414496861251858250990603889741883052826414492202789875656551416228530006636507725317482505915183702433899392776434822064170167691576696287181087587909517576579932692202741562528091003596971267927104824516571382949615280800831729541455813253148411424398126342413237396141509128079505426335510722530063347478511331615482897069829049782612466265221699171554215260766784610617439179870434590783174987744634977994961985807235982727552914244329283844602275406799298227084785899213224486721206845913849260705911893936681288439931460998208667443224356276302833401513569894485998977600092411315025791094142169388049263981962759308536341104250610937270455568049501451050615772032660073038963197015219247389630600479328161175141564584492306035866769907280903675643033452490644584814763846959149111516427092136921598533900658845403203729369259769437988960338436567430662800223009384445629074865040308013994206820711255371725878951317906891709616420373923441171423119867250709311213784067963374660578034130150472893105986081260883724415968775743824491361675318070200319063024626096485865008421153471330247482985065019677336871615939184585138351178102048164443079855696458604846225318117714362958505929159456432076461666762930770462104863917557668901332522215725968142415006083320034881550322323726915616425968380805727111624220555136832130614625137667683096303928863466581045892760746151225760780753322880482266213666577370536531332348977811879784910920586113958664878402667836621596537870554810367700340952142923562571063890231252999411272593047569464698545800554593941214220293566088694397343621953800618302375420023544035818227639722599734084648625198968711367169121244069127316972248647018079322961003679133007273057452909871117565964555581840271061339076004089230556509429762001915027439064905830853909479761092819964443157960819871540717880701659289633125443023757005888919381457290095431709451771065831560718642360886493362748567557717774630493746907242254724825499498953762653732867667416654314768879261739878111621372410876321891833838446126856869587179839754229689721259015110577832336532698503705294186307863966460214568549349536722576285136743359768795708042575121403101642133344836927052687810455145052327021163837781631421539604130615513574174991042165049228711855299047129820099958816328850431136498675132154643458892268806172603193896482794745966188735454525907767481385808825255586456347238597103679247787214860657483855734185243486846310785725435797665505650150376084233383537754817085582481061167880611521507408282961634947517585996259412729535960661073321301164722952284593207943185195804849480295069743808000611418741582695654807280729686410318676040146474575239967449095353653961090869099141998343067900991420657164218744095924646161847416416113941096851208388244807459108298014055113141767445376865474485981561551104185757295377668210811342089960439874741266667855959921705096624637618271491180460148787771342771259116406980379219499777784701705010856187240628200157072278674489542384611491213256193471559265825092791526903051438681522345719395052315688766361925302694978332322956084923192033676317047418016090438407250726715803299525933855285887929540580587546771806511685101142303077432321039796765527159844456406432649090593287518016527722836120219875143354905505708452608319444883483615678218224862525339704279886162747482395091324597335373509842925878566689748870764829792340573310141655537464462710310815409668090811700839147886462185923185419388670190225285733357837531180639922545147600285699534466752629738130407946694094675429237245234246510652537411363413003388537415443630133781135192872626392542790788196913525206357257866336892864896410850368474701858441302060666913717081419871749972984677230000265419891068983792726814484478389742893628776739873027031075818453324657889736904016153024374690889300838597251815545007207127207616953128722620300510515397397739965432827595022266738320311290293275930298596551056798366312564142869864977141880800876314216741522185677941332473253010459965437519897867309972532563514487809150607775835788436175041151504188174435081958625072661765949143640787303265230344902126619493246608348513069275997063943716213545006453992330574582173115516854673986014595534399927607984245592379888430031874029027502345713523170443288571378688693461339925091099494915777544195812464531753737571671465146492239149648618231313681958410010151820451945742616445468539296128154860919647413239821628084966520504283356306844850056544424260349185204626010684897003434337914448863624437793138505613019553220303295319344425010138956932847217709655964463541007761782033372891080949821850580689059837488858219082895215902793933929324684159082640346500795411012593756202908845551821369943442243127612174959260502508169871798567638984152073117566407708851194588997503229943933651916294795232322051798688050892118808562728141660824175472476314884823460376495159622077345466931481511715241990254569271186971661202506353449501648348280966248069775385967545805816818064681747266561092743776421977805807566780562567373045009646920750352033091904676250360444703267513030107735606268389511328537088196013455714455680946467867337085964208019478336240487708663324525701635357854925873538384213076401899922587939786074881177521051381906499463843328653480395326746038422172915765264951620192388257451773637893044102040914918100432308114211971634313096837982276124648331409794334631628915908352763515578977322911588835973250972396013844594839912644924102019008693134241799051293568273437506877580498036431984283227889226084655688928295611252231848938156855281449563998468389919752551050241754061648343966282196699973628868964463605649062430022025861324987956065290568294896332214742446205836749633403166590889342850280951468941367234003086933695478649483596468286661414128565460379668164285729876104103481492803277225614886506211710334294743495547723846744031667125783459065609337106790750490648938481566434680659970536460147002083047369205201486499322301489877098900376745958441069027587570680049091501411386574258361166360942894386902352391136501451359473112500359339985660366465818927660224992897622820804996679554501167011716933582138793812544445168534639278922862937573340761395910640545508502500062078815387356610447539710109638492959327439918923577564607644880397013946053201910631129245640648676815388939010571521102491095874014863781467183084357145345259465315980340000420506599352953455367556046912115535245727081512363023653345943882791177894896787432875785523687819276078649937181462280200355084411340721577295374943831376935991864563177375562375621791804415014628387357517385496608933441903604346911685602387262139917332204969260263957269796486217521792519660800920130164469692240881476955369596476540031499984370359018448944259536816959008317623523671989171329434846727041988467630888758617945609911458018472242707923105794513086560370042587083093804746737173145552450781850170517357752591770428323432438970069304186525673474948865214058114774583945753997539899713361052770126306604205670342410837943731885805738660310106360355577338412240068261346348456605185403821338786369025840810983800991887432283423742102027754235838441401967504440620803090534071965844245573454189814199426866436881143804447415315112064575412753020299554417147790755458146476274529948376821404715452246203409785122534536714087889030307247699280653219424796754425996327441475522051486420613813115743631803748055470390643896782216838951819382048337878148878939513397021719605124468901568001879607094612149883359857596857638328673739922075397362783253064286830296570053618297004964069814219208928863326226462217612589456235248919338442000606953881467486505015983441486028496710498541613380539280868319654790564743999871360046463558948347365906063031172504228429998448770042969607333133101560879998996532688365681264108380772439522847822767867017397470790035386537941016105360995259489585954492511136554090668868670021941190355810285820241551335138379708638410136027912939161954763155458741009847531494813508506870353390186155237412416032293658134610845765847107750391414396156804529280833239230614944038168385110551176566144481114996359881790512667592349713993639780877036463077675438016560657618662190648483745888848325874625756679468732680630651377363360464928617667051409437007784796188136727278931251235905989974560290171887442379653920689624551630515307397497624001030771513214704280460560315414948343515094428694469629088991557634748355419022357731253139526185386015362383616853324050336128759873595095307616937608163449165896993379936195054883474733443425067212631665887620316254032761034806407352816330471244584801025684263224471252079674748427222636989840604623657470634799912460494900605686969282188709246969685836586116470842207450164589006504815053938789283805783347449889279804312526884534585137328903890238430200009817283533575944254924046027183371187340225980680468043383433933249909187190736215471348377198387770407875315783652657288788149455201483273094359569986531929652040529776901223235030809769969520656863883833099102842164325530473157782085968742728601405579499257136438998784433780953174739688534357165611982256032562790336554525032249186292122142990812349257328753877772486846761831901979552735467428802678864901022862103125701293479807811562878326410355375504656974944304858445760270912524025565883513142850642508175210196328686238729409951538362311707347220083810487215151385538332795742185437658662671393262387614330405356547307907985439483853290384658941917750665985477924573216167120359003044230511380137773449888083630123507514950812212647850595553714061571015382385337717799168677987150788389595202628088867979672220451616690431439932984203572531005607105492876767886400579884016456202448607073794893588029596381216052221751825481125653116564094861729450079952435547328591572856842368692629450734739074083726499967518937911417717550942179588318781085568174891628031775884772990022942901252476496782589625377524128708966510459230092268102073940340158023110497917753957595994794528532737781535673347107363577863317454091589191198576891413402715092784600929112643531212704566344398933659247533213375726578640646812568579633774263921235234794500758933455530134301550109609913034102862956780343164112104938986814689025228415784570622404091162733970046972184967981567114201385170776851429575551863661237171510176985419598636484899089248567211804167398659561238127362048854473073424947268847343270128741109843997767121290679414060233898183316277204720140835238671710000453824017999608236913420334247059487140172135698478814154603047516483336242208203097601069094913708424458617390672449984278377624610271710589458919867856258183810499032418147828049560885309219625349377653304937295386116955741376651883996641485335337509367195195691119809948282132246555666319397988032545898824031331638831958243675742905057304979446157370235749371956756062968331147854259822291835887542326012237078410410441807508755348271805616039400618291212542247596018135602576422844415060227601812563019127537847272018573302364909062497884316935227404704257964759190639406153941810706803037389020596923414511041905851062396903540610907234680949233617322093731160729009938080669349989836243018228208878116130118339989339249449369915657254829327377778033696858938978258243793130626701202097282143981958772755426881593408257284168919752034618561458778450247618571927970742092800979799908613400440371492331496246531840018389775510601438815173557546673100884136272970689196670936944931485907366993120890791401236688163265949394693590953213273082523391235691570302072218011479281466314694766646218624005302591154047778755437000393052433928838497982807883032315469268596617317430921035152546930852796500036915083299286026379797346592658960994211084486186786477165614612191119517677724956498643210876925690162282046960641956888021070470596513307233906562518609285120187691291377457966525639349732236631758485780061455336874259792109880625367837891521000207349615852494359283499051632330234772692120735941712085854011623549693288414885577904624070319333481291707289000605627088997763885523744300767915122144429377062797159226007537103418516377052753810993872779768105083902558657905156082324071337065648330032567368021977870745114056567845944514290903808824285730126321467516363072989075753361107324092638155255354515099613630762807428209870760821997232024912875288956434771134867741269984263186939613902071270831151477005951375842470979038701653733553993826819686182944668273881202454937829219022378148106147169542993098760973227803471237801164355433824541834692659736883850335264181327627074387302017246242455121491741885235555535571756551130298056185989412457836176998747728574442346450774414254637063187467636648954114300594894231550580707204523357111792123568027782728130526692085150730840173982851234763601714458902954284836077151322519811605706029039678165908454950560232695408782142805841315159332086364262065249452134108499415744029687062357921443440146530946199735956114249377243547576498587116132949075074556419841464966230194403848117480636939033546943737127337730013273949848309820361345004349601593616346203184567712343247041792620066026276690578730920803758586773116951542639292768837580309944448976599469988865822578313350437601878683495447554286119210177302279381282306588099822698712268978967866706088586629430122908716950706038374474287722025497158321398893377568873832595749009830695084996816230397566218026798344118520665461667458308385032591026889881275992992214939021599538869965048415973661073375844200653721845804459564175523319191530112009512528776939296485269893565836405908316206587906413709699771259631482548682650463052243301641567977585016375249048070474006157599266573361875059619498083534473284533684258441149204138575815132378401811792853002858973645450058794210866561050453535929411209310460645172191812166549829293447930468324598056067668920615766718981780760788869943090237818764425497772042622904016399219121479356113381316917990087942471855364854801502549618562087724003949379066048607519079639991949079494880774879385283306624451595595386931941602316177317761354367519091066040784852054134456650205000277242468610311679874825651791910061943590332636946951473098939878945292266894018727290194010253303291203103120238097993228554674305348216537264015211084068859635283562060203943130686480497088936216788731761268133975273229184348618724277990877238813494011938328419062923543194877393190142605238108938938157507798664867175053739834900355268754573135160976865671788135722930586025791674997635849536911175568308728196015078120018106893815573170942241589078157559935067238893322223790994976799808147111698821875169522385120594773994484214870570615134682552968740978815446004546855521595324045502856578858358280739856042042139580090129660514389633418759229755481693053226618500839341458770789297814165719424256549644498729910103828839211342801470576780412899341584178183488243810668044545176580001659377848846825751307859943588656522610682673137270063687070167084831303529392851204325261455076258642989549418922234034175102851666472733806407472331061654586203002458780040666541858962615427159189552946969285570914617289562510623427226889490645455380328751609881409616514611105964049706881281692007551244556793732023329846229167816594933666872236456051311897110169131299954413073155480864980060396788680687298158042476792904451461112838494471380557203424137558712652339124569282522629861198006340715107139969517871610452943762966769336367315035754462708883547737995655959028171812425391312827016910637608321480884698606924881832940842109217348125296103265569380282423749420056057804875131709763379869615504054575888394639652600520072081323490009148350993222249931847618955267241719830033833474670442721732840851465785977054960310289928587676006298947629802446725051053578870733656175512888351005210423599837074130223473949379583292315098860109467950269361801367118146306007794013638237026338595350978559432731912329291566860823272956966098496219643797925729426903833372003852919927594937614841880066459068652771444484733588688674820068743469167405051424214925339645747807765757686657741436746249016700250809609971801612761488900387844332471143857743911391418230466096018332546727913752961026683483834591951952897518433430454944115159030454805750820961970237548750290441856004829730041490426604033284166353174818362198840646244851830092126961478752990544997059419341403152997872866787505354586429060841287229494402468882781621183778045670368828562608256753253316501837952990658937797753245107639228993192614211304234123021048000834142226383264907221638365389970418405917426611506991122295602077117330615521693938254247533953142062254044872806423998884363918117248537829086004411083529821448918193232176864327774337190443086350575302111133645107698286148916447063184077742634502075496425639107904794967667948008158169033193490377573634936206309009919744724816578997816155268763186506120101873287952737098858577253857310543405106593143719934094126528837489504783736939649340857560147631336071482142344526335926096233224442689683972790030534615069583490330470196353956112417646202957708592370152483118400187065536117347556265091323298764355130109025526232697509829164823286745959537277527471912441519559249140882627075411616364442191519750269240056319292987719331648137781081153987513090465265258632100954244240250018734921844008532623995697559152055182881891215001663080646662477631008891189351580084198720874658111004523614051122753177832846026787204522144997495795755976827683383539218162051305159818672781428601847457010031425170770332497594896556819315646278127403492160309047579351565844140078902217114295068980905289686146022804543823202050613535517825826943708790022008029424913893437850207444873789610350213878555037040782893312991971066049811788080013006408780768541965461449857415223896882489507020134476351017041024694528476816469945307877259388391460090922712565413902799362663376584521628359483479218632373932856510220299609250234643180785973880709721048777913752357501915577427925834374146569651114160412548259859174033246184989331967836053490378131205540599771969424013016631278587838124937676286405939606537051831237454174887968653752004746279143000549754401650774680894993089355908397899327741255143883799544753678807447465804496456388933724109338877724364745244351133103500696333791289468124342319229274822633341242280276336583965333395477967525414885222775039568144058051724700662379013128819811866439028219085613934690818857163421380623569089777591943086700900132824948379882159587301080221401107966911249152064480320089910725172280562760470921805828969230834546443680559811440076405376301953366099495555293614927453288073558211505359356290846640281147734698418941945559175814170824931899284632770020851629922362535227466185498355465196330075322194981836174244817130829957120655311161522675643715052231210896968175354367017379511535816211847698997584106329452731987917573332755252149901023947854269465166809022862564544673642436433932943068306232829216954737230623473526039307354039165684064558544666421817140928440911035981915466549440618213686046063863475752775159168695931139615016495015239107606066206892346813248075388849570287309889817526231629456745873429573485145414670182308073579152696677699575809386443714430321873549364401002483708438358826992423740087100194190603447420266445876860490800631660822656241561643807737715307188018206121908957332753310879113021873511550315946203255682914389542992080646925737227351891389040924677992290821349726992921805376883634233936304177549656871325799267307587683299448797153008824544007680274741836243334209011841146113795953028493872092334352064972810987047354174775015679125175682317195592229947043843349153793087540634115649815256311638537333892181716426373960076915554147052121127723994635757370673854815546757671894900838133340713593569920295175565469343682642747896343481912177675262884155518390776251830525494946551248922262529578102230513904352884268380454353000484824780948240845680233847862122232839812107005679061103721204369789464900155979893387489275718429968157198767503742263042464483688536431374904753853860079466668626800329562005305551878008199692241855333388373544131043621018594346526336318332680620952847719431522773920874953626347402556982618575026637686474456371959238920565506828682353168170420336945338544736811312630153958818995884786391639373682462553803656077692310782321561565529932046164245815092416649697203148205625852469397478691199908337264329766051685353075083933283055014113333632981753556696444916778139685039396488460838937859828322842124555056205810980862533571153009226393617084094740878314160167491487858837533034587174748397891966596300886879111663165020343066769376086417623845112607211543938794546748966968161763198219832015769344351324427557947369131045090986019252884121901379899566223641124125300359834100763376053942453287612421305589249707513286421835708769984057372352859523338313980174506290887430932523079923723776781375330546482624362824965756929241276622529151267438279343696571688608004818602294016678353491649378618830650971528919945455328664662884455631515999167651984777349909027651498380370369543240786786430118922529989871191921064152395683193207582034840068703820432753113322445873168763658298921081817941052939474743533604283418981433010432742103578396413543850059328271387722009483971293148656823255939988641552428740795268344578291545192662578131916372777820191021086451489113980381562937589194071870921056560950987853470763319968024977792125833095360974723465122565805889381775161315564813329066325212378066593943761734760105353926069987502365008763240175767154080828512759030855455604507920407242693928057640824783077609627285703452609766502924918839066836116190380011180068524704005548346171428131824163986206329406640294550385716076395820101356960260280100748120597476473666174997180162785372007336466491135011262275905667607997547364821744551789582824028105983216598844684027911051685850898856186444785728228913066945170781790819513477565509689807239689902743899948401362134797562656572503933776620837388403166540513705017502817371259352166343628686311281653693985231099611021696837874470017364853699680824106246178344630154163763950486790621427778833463698804554726512073014566420634708946145067712205619144794549039171993541870920282702954891453545191769465098611521643917534519808169536106584784845407027607501558465476293736438677861502967838196164953391585857080558650521280098810960305656016036572401852915250529729964341807955657026782314242673665530112478673895377483062355015596391247604978560346530556478102910995897410197072429031141523191179682036400773980667395352337368212538843070072798527365394698663479447040244790746998279795296168583179364472923040073669209663492293827645839400862349457943991951036610384792751871786501241135996345664431430362769617303191962348688012852602249438592989533187039997646399140103911452996676118518564795022015864698618664483866373017122915431199586013047803576885007052168142691590019546159495775262287008946009408470859921756836816999114257729715332400634867017911453819888618504782312349488840879520312409881277336270926964435915094088042360594653395064133582029849271199522908305768416472707739601789658654285021789805501481086464981259281070681534388563301051863613619292519374114591756932223825124427042185084972320668316954920917213921936777245852400816437084600715291913493501058696654978405931332941091119664540069070992686178032590499544390483370185528767946512536070119657446391321226556907725404960309199007644036926679048235491766558289228249629904877561338459871070197241634126401957196142639197054865879237085399366483383959969864814821273778872446607691953379813626812143233204938090202315034449666973630480884907687685739542324603805604119043419582381450686698956340175177966442837069219738749244550372407409635005988166688102810542347189145611084121594430021254142689813009381550746204777983720463576437011127117386269937308808066216494583811470964664219961336625676563602002153588478654470608571914547470503148036986932915170314454710924994883715603400995401287722906573708601963792223671558978522728142859264873167649483792330372266627785917716451005439268608726284806111698262353226819405481089921227271841431528829886289434452129267761438488216538641010141793733777926819342530919269500186008894871967647944632037777230065598586656860543689583721242469989364337476546894067408826002825672937044788674800435901800206792400973874565247527849731401905531116311830429277003052467615073988456005957610016168253263173258068125295812816408698039990038522391768128240320042891114765337747737512514229412869787530556602496067730877724642081889781527905603129385107022808662005003429647394279822642396908095928511847904829621686196485327046227827785707816707295062611001485362197412477758290791098919083269186342340568839092632340022144561172623223715271455291957194960088543903400516427538023162793854803248164509065621688279012767917696976958864368019266098197411575992954637962262001611504216382953426142346353047009327804109742978672884429865827497604303799863915479446242425656493406324939102881808250855692726011815455377402407339215362766308670007880326989715122312717559171180316928955528713831597360956233571827361732021826973773419409312695408109915630394694324653874450092872102108006677961750660401163358623173362283258145733045277506727060858989829284353151300599919164606226223689822699946909801816493406486635792344505144536022033909559813703820329188084452754420861106010608660006664090302748320282810034650440454093400981967314004804120043751242403910553240348629859413673850716423912435783837568773717113729232720764752584213982464485851619079965159137261320178214659035493385077387725038642704114934277783684620269034306409690721805402423826154687367354103594532315034211385415930628838199098445802707431453310661733153829669465899819496526407599120185137819181999031121443377954698377589938103214225645259942668915275415017258506539516545707507376384751915961341737062093803855172466836378658162921555408284758666536550752998850319586752095560629754619872866562145490962385288219174966759367328514902976704115680600239489380768807242245340618709536423996448982049521334743045610337433520031216263774935288184313117966496834419951432765414627521355410869256203080297586433977473433392659790467864435030177229600286542848094206504197359694922516751639648855532347543181558892700199750444248698974770771198818617677598196441337597943146294149855211998611634167770527889012821854143741345255503370732402858857035014397089020769603538191231031071142447788688187069845533265504249221732960829113032112378004145999065858515275180539772185541420738498931080531118145758236818995682448352436577844897508948576801552612789824650731095131842151490039163283054238809401787395909147413767206960174881286931501241561666363174296516830064204124871366532479434973289637930365195572682769783276040041659657012097485178188110565101954623445520876232521418609604297497698464612857604887784529816457499838169085666414696061254342828268860344099775061571808824257811115662258845553323979261763389535711974972119363881151234300771852467337385278632531278992540467335634783533148377541390783452811350291444184107984307604287509928044000215564320188479388314520957662549131664501316419668125016038295903204764390308898556952308602944449556148797266879879418171088385596865276927320152179811266926727040987046548549838203114615149988089357580098171783212711758872203572937236505629770380660248319604951848035946429871138991218964197693377638881277268535517936361758703982331455707538185477198601366445788973235908514798275436998702372373838617583623971043830820581097663289059129495698028203993581978988023967766763536220041401383020459792827911056332242138341375180475503030795800410828519528332743636553188046796773724677786676640621237620910727992860394934784327152792939213494670427240584627146767735193922600640475869453932032715580329488225530478738014412513983802224310975805228234608302523598005394262742884009507310742922893048394859124020334331841320935112266071335431372353441580656648672276226502584264923883690885953141122491775156734136155714414383472392521928036193404526260453466945936841164352437397341312131164197645504364317798683254802068238208650054235645689351512653901269771507166584103616333250169338448971535752300446749799224241195777208520096064693346520616656295508809570678209187990029896051557240243413770264790127873689656642871939277480960490433756954105947118905888105044200573960926706596478869609624684961802203886357564207888120911255473154152213307136127489435588380497175761783972842696094061280050758400581491527425506457373643140934015525723379284199933362198917356841196406045202188266306989555860589005219466233129435612329511849816780644286729899678800564897798470818216238479402686033363388891613589604854206657191379286872181744756986042082818767858912250660315224121456724957451040882262456748253012950048487590929447162103299314722898718407407800178934405929671066382188628232457495607307200714352408964094677442171740043629166726753640793888983528052222331165572173689102105471185691425748696946412883172953806737676233763950394936713468211338336950682155419232226838925122174473520167718683897971728089197180083238871712452835092292638859997001996159632666385769210612151575891996452642505660670865324078671032148025050199085378646760390409691219396894056226235811980318570019288482365315560457622264570035491219640792849653632218335301343484770650234892832945052002356817592609916154320645542775005602092488004605549816482768978846656553216352980022669723338618393613809868602461000236094562082639983715822259704008967844551120002523402601214142310788035638673893496873325548205126051144660825812322112994044602694500973386650714456732659528085709730458808777433922851304806434822427523568811984269356288519032185999500779300472587251450923007095051412175757270457166096817458680255338583607636079692367478430056649992113891240619891319547366038196033130645740964188514426624146785492360052438123952508857605167111726040218638835575770195680867526091024134414551219454489895046164483221434209306385130808824705411049447455750299761718877795153682179763634235434697393194234392529102210755064078983344725531222466766100294641017325476936120855837085846811218788666272020589290795199109819060223685419237562169183542535148345063366456054941586817796463996199074786555258733856024687730250469930707613859051261895419942224354032697907935981891364280955226258623365335761302265045364024011460414894000020150957922629200140840836606582931402021692154235286449228688670288741800202818997856177129089642194780962534877009312675036106543523136794348933847409033370615553498723614363283424450989975871000954687034838561962393279929354445436533214742953634456173708882881000834673055995821158742731337349952790757262014176380648661933446663983569989544706660274512224844069453932763461922385601501075171114167054859746606463852406240488681295358769733692702233808941965545295162526071297345305609614545589621268821670023499993034469164638085553418644186158808096525595767669188795799334760157001653948597744641721761450337367491107323288376743700563694289569514774391356384839118345923427165275076684240395183019065561309250927094935037029262803046338088364403287421567758924492595094011676826867252004898142393993419867614540087719026317070264796437506009722829295406452273525665687885861958048253817303727162748003229604764421341037475982179967595813776891452573313717687781482303486083200879935943906720115893611344697245565883340645811748359133402089073037003278389803755267637675272453309679856443264720475896560156597556964448395474958354117350129804051268120146288071215555904133740832051739108309430173570152193454261239943819217636186989529009562245143171537412215784659467213211004580219287400562998570198103746585751935208631387351993700733155118098929788879219628850695951525061825425100292653326174690486410437433877182141421999075311212234521881973934350363965994407522174784945054279650616647898309448377597918457362297263795743235260191391851947973477434612932788579805929380233664047009385504864323187258258327065382022055467346265510397533601097804284304162690880199618254741489141754367919081315836239465313879890467676046974518293722941753172707382570285362023707465392903349103218255239552458732027616434963363902332225661090116626916926898126249386599094189277975536018244040996537069419295687269533746826863212473036471680375003008155670875280049685613615222742260848362889118269166909212775446739503792839413171220683987253004844480236823129521226267534452869517070317866917187234494315488208971869375164683526638545062063400491900636925849951133802857648540418600997315846693252332425705912537859646500824455584868332488048124561466178634184654746071278604926437897741981303500767778875683361908324939642463068627291530066560146339684335778233161193922485034053273794378489418575178043149563168489819637709953675860988546798020775696113006784788265474599342809275299008394148843260221807986301967436770072963787066505548848309241540213885744608568474823514486720642621665975904434001729520578040737595640806374178835392663380495129824814459144248749283509908554500033314246577286101420630481435767285882666565578872095928465881941543646976515481856714116255082526494354261811840963761969590532477153872759939236638880084835470736516921700539354381525363790339270148783299789059473415918603085466926049316920723992043712517161452147546544876449249218867371350916849213634709514677857050123763107637984826944466456561723333233354619722215258866997783567152077313021854980044143736362225714926605378541258940145806484738261849428295162519474945684749604953689518936616205360653074139744592746126197175783888495575784035990908761219052827216042648119913156551639445895889951931618805321010320418207706766706715078868224453928619397667581928552604092751796193478964112126875853478141243753916307249164550353515271331913081973938247013000398439635158123124190565554552043867875135239236049980013662272763739796542481859708434095315662254938130913670192622763498204873803582285972591127305623428283057336069962082629490349827646820117131261579130582184054499153630177127992611615600219437001699310806009264351020454108670160149318678159122723518373589061502706151490328398395875600127186693348189445422145073183349876348607863549803566799247385800962973730885565619125195901258573184306590750101174213218085722714368405120558704010029452154197867699317158478271666932046457051653866373025861268678997937379801412434910301968755177069842836273098410968584934517032850184778189218457871767662094048673222362836727564027612550131892293429058610268247972725496240739539906530185476783410588695030499892891573397534442663485735921078234639201025588094994242702236901785657162053602925685611288124683884857567401192374992929996749032514656763913255095128576419455722406577033393181258228753495442714665510835704248727739620369695814809191580529393835497336426872922384739029726674991179956037110978613815185135944144074256701745608501906033136372933061352749505899493901562579686677778493452664796492404397462199159796680198604357762853271690606379432196070535203906388365110927808519029227527380505794814548807210660354387351232172182933602080044406337223419087868779901560559916950206485950556895473121104964501876920443033724858398934793493862032490233876650758991079777180592128721146041176159825278576516118930124430622785388223920700571147659641536228320026326267344442625160907556793845327899810846868735675931139624598399916366160297668129389701210856049567037496922425519295453835927406179772333867274684140414661387448145614939415916963186591238618051931917747388309742069306382645906785109183882201309181439292880483131789322680217065897745070406107449506406936647680583894289971668643354344006883563597428704212555238893092056400881217311799080637561893474231433179642489517611276855251701331197137174471494820756123907404607355248853650438527010113566664931972301335917682049568929478514836456627347488703927326887431318706539485758270548230974701126640369205235214563610697867226373523667732234754700251141401589320414163051923410056394417696123661542593773899176430004038812032081289453968995094007020033597598061786191630827082303751587820926062108416728737203824015097454656029834835917948202121529741600333964032282422268803038624447263061691322056116363928182313371932423921436287207571094478668684248104297517570583787157748908047916239614295827460077454669339747977592748498630347858208744652479429284223255993049226495744089143045890230317536103218848304764867827844229096330298880253654402518398930948891740386035837831860538344202587348314797542138832628754750567717351474922607470556643716457968017488948814027689237546090815378077004267930508962641938543793009619637378789824539373792818725462945688761808026256917929512387192002068531056822391399515414317561592886084589157498309676177024793829688150686167507275734465166980515640579106464043593186502794440816895466933278098071390291926243329936806728683048081223080808148396004636486984694246230346130917139878620000841741716220370820605268736466130407584852699184597437610090465202522897357621019072614817368334167365219201360188062844881807066246851559130165890136123632186635291600534572638240909859815382877042089262020966028934292538508528675235430296806190860142288538975825430044899816635524281622012248614837426664227943159177541999685024768680439746195064506139514927487324456336044339355867758322899748872649188472976394164135139260170675695012933326837214152106764010913179415156365989656110886206653354885280062939580517816364899592200645657439370776266499253709517329339186000793264250661645083448535724208682574472684433965323908469755519003940105668636632022973706503884087892640835213755321138574061626551640170093479956439446728694140904775417684761739674943993994933886345062405524205505924014522091691132371554552852648472546828196328307073453468521261685070426499435797022274879047753747316389594201830232689430515451090658965705300992819680822200039602409988585478055692710566520444017298740968014801579031087623269259730860870069039704376847019160403562966608828578519476714647943264570638407180055371394756521627005992031545942936957416204555745211539426471379951103163557073691671826823687978006612330965884112533725148841272988528585958956173448991083441386642169955930276711745402818875983902028811352325434876434602491237059896300131963869938000232586806636379783907758014593747269744559231042222622446109366873210839084310595572743097347781042175687202742355466032895444513145222911172393853837400056281861675158763135053400933650581674460812272014137087136878483667761704012655590494794546538437806769958436923354235990896774325103002127733336497031804360745584457496032637172020858225694610380793709908730795811466582105452024108491315849992690839107680238455493231801583026678719691419357075174116830532277807348275447800676042504272682232331359504500200632389730194558131698760253293712522638614274068768856515346149372766044622989781463823397690479914864367478011354312832350258719816613041174789103368785029437153549775774398485337138284680723521397473478036001733683844345239523621556006685313240929667022378708464208816138302713268063092333000679877971194695690456918148229534792056157687008624712592195970128590042035425875352347396385030596003954429421544262088758323402420645873357639109541747214762554313042757887243921316593594433003827490587456837464476004804262382878028651066509490424200023825565822385879605908804199502294127058694396017473680228270954564354922249092196291023357668610969256726447873707366652201305821707405579921166068626057167955508152669437044838425664656254945705741333678175575210435208919214375181952231339328218136291811324345789161286955403462834023761246347886012799822129081387253992403504268964315149259476088549295177246875672365663142432248984665398654823495999837960956806655093088914320892765820058256444710382509915843465144304037660552788808870618128798858345730388118555084242189783401458125764585046985470417694974632410070347082542552522732396226307180272226337072040095692648183315645224600168007062154075000017915114368128864895047634592127672463648324465659619345459906310938374596815144281317334121274765499067618158546492994103104901608569401082895004590530395349214774070077909616813942295607075434951689694523326617380964019111427751655115636756264415153703824414811491205285933520952301003709383415465261697159461374528302056559498262956053395289715343930993685495958252432569564384975599533417614757795176202688689402470822310850834899655458671003748549090696340377407240156692452742424938565788120233595277379330486612403144973491936047384264353592216564779025734775486520550760619111743522740829982139615104217363611884118028078123034868735008062225117844077739381705372972615926349833271770504970226168183482344738368730813277287776354859966869145977271918141147825648914618833026074185046721812918764097189983873572120404790781954980739468924598172161616940639045997038315670518660472843878915367024226001979420583044984034803259115173377233719216847651821779651203725449104607914151631042775139612301202657421768524557460564316330873571086395382573263158528653511294387551992870422233252935311279440861654147109741376576339494995815916819209801293291116779387709705779756586854057475398071122346565911129559659506914812511525922788646716785372362086534838930035939451224532741142721198510103169260370652958699318300078037830887582950800885427477231494132164035983983103573311133116908109962733511022899754338542365826205611943946013731218005280643845554095820378668610143786844582328376112119228997162295070366297256144360291867494630777285926025827037459769179109152737629524822049118644166756656958051844490684365895509573310504329763874571936070804154184519825172155147943602844388652187091139805859770133847726458950731164764446803393770360222143948233784455489067942225278383227440357633609141017329027963202615644740844753747007568957648056005001618549751520115038973204772176536326692320522339424492892180961973184071014630732004028882476538026852927740403436719234768865819581857808741267980084338496735329473365200965405982325300197365028509889475797374541291958465666938080457735757291640901317769593453036435144869846937417321320804912667684105209158348691415744623988029244649643694247012165457727597984059857874953829084527912334995050321593467777187856027796000113264380301545972048388095383581712048646553727564208996694116176158475453493753247054473177489696570762988220666904930858498952975559873580117058120880681979687534856753158927386712016377266514678656433640193304506961905320648525597288854407547809053265558324832424642883927027387188454335071263875777228999144142783964863343664372831679006077452442288643344822781937530146211758546626476634203096023795723002363799462228229901418828398183244483363495679464282771571711556775645148933562143392572454534079948978082193909354726641632785838056797632052456234227740979068504200832045041236517354954446457835054165791799198430079109307943557723023512145440283282035488341035106328381091274315589658305215548547522222899682485642404399735177680534018596758345428693945760541356091724512331866705631891663856900260340173158167906012055113406802998944209735270493570921937231275192849161999923255215229547763639268675038123632844817979030414077224214526817305887623059370575048324501477827808089540776654609358347986656720349574186958420030970326816040508529714977519985669019032641931554903289364872006551597771391202187501588315792238836520825772005040366381735835878292800565020265599425006659853209722520758587423510978290879863976053084530014980913491822623036499848579048330312581230610313070974824543838721907934263243661616265676661093440099588770629887598519664827918170990113881373349204082045337295670398496335071210423681627364847861965556288424155661130230094158474716347616323605923763959190594713836517002828773516327652913892317707045720053737432374927711844957390497374466400083022660469824874932674788104085331207930542254463967756841265459720626235711177680660860769926304774384594212139116513388045209995559246850188682691925443532488582126498808582753743316932517855586632645990837679656412853702743766426841080657990591588981150278828662617421763115278760758156772044597702080894213049198787337080336954767943901600571643554176019311878733850598382802727670617529204383201377446815950304267854253670306478054608950238324366821634696708176018175934799572298095652395813930248113962835985857134571292908651980712760582982547308880959777928663377555092247609673678392726153649843591468844461725037207310262685488274496216028842888861179556251999929901204959833955716498576371185489868598825157761873170955102803555576346721541823365116651554027421751657697435326020370400857234802311823129240595126246973481401645374881577489918888302721954785686574252143216452355787430594673532471299771581804616766640971401244477280414809893025832113044347921222413533503368263395179631898217160934387799499939345019518422005315030762063911287887746349575459209953679256992216314321989090696279802568154914188851988214082424502823709415445910912175030119167519666327154106981373139750604528612763475470968499259544780402800151895591297940049393077630072294404320320034369468894883182992146101000767799358627273575678265919355911338174210622451769790236727234380757666405158177493489470188944027153375338643097902511809533716374053109207389967484307624076727163808379530496427707498566343657764623844393217920676569292929114991665800622222247835480882712687698140997762498069560472919367618890883193645499295330250814203601260149710875263164153463273600752850576814870375420286954250139382477542846070733075445758053815859638984479622392896762067821786260855620414624540666103621457017264089133848742930416666992289334887281681519023614726992969031706395922475413967883698677705051210815002716197879890048147468912694400885166206942041465148751050669019457702560367151545440592993764931508902643558403900559214125834947691736458168791435926738263557322291399970617967512131559214218784986406405442928096482603655024890922197239530966521529257911553346347321232369552919325795862397274490388223404978029873094812894310027041964897451027896847890426378956826232930316131614594231427002485051700286922453417259828589846575866727786026537621446238183815455067562892028901170596704412122084070731604784220467667171654948731213820148317203338129405892597663418035969130485162380864766898147341565245647977766846700987273915948904515390714440137413847131211360004378829679431338765839689215875144128673707207857292254103914174485120595498859898818539546202041151873570409131831535503379455148336877274348025818538545837286171491540525538111824613660929385032304798779571035018149776023438069780066450189543280550507880291939068405185842119042815744082717613315699200935884683053555312227312503210332356068078326797099314388877121698555167693187222839154969503731905641699001421543292798157676662558207457955146873133076712763638254079695830967795218059955809133982359198651553093703791966525548552681875534268679643328076325824196495004467183544870619387185143836213484742382540454503663875139167670408640129469054903318165122581129534205132633530092662364802142390754700219910663633844790307147504009087796736036712023883518648352936293514173208162261499737613764431618261265770009255626528841836316118726746167397555200806148040692014823755360135750365877314208257260259740440821721703147066544047203299026920044685110115589041506462173629148590787534042387756960688017278829637167106372102058869154476675760177158084251411875712996493288183867540653000237886971886985210587904334370392711217480978815392483191450185406321211499949009621627319557655224233211641397858097871110306283534055743015463405781038316400714306614642525905331096389743364828195002925551763700204122865173212733255697517322823306769716018503599168462693621540261307253128197688196121295930048663078991667544870622796839920932341879359940185409876579887887694464035704914856066609685248736634324226879209454654838277458485471142726443405306587627484467419865745211409096962004989977514569506443860380952091909254254200807503227334120214809349873251737227358031044936414615754450394753068868915563801493388562427863722493854144424837618678370555021791217761475019192761979635234530477996972374110391703552540840079955992168180449667509784250676466251545536261933498661164810932703722772051561187051735662871839829665675229120911638388002047615172793925337934905032815146796104462766160508897048035940015513958512541609045050995545903424128785849902605813273430091400958941548251378117373208250015743233235187044792656498101737765884895727079579394880699586982338510157478261612517596290405285090997617924230169106753460178584744679204181064909629230474453957046500622555353697500218720416515203352275713302248814018614743349828253571485282236845859915481838822120298957632479815018306988692461354470512449136542057379524244155475509645658120184919872547602109619550049164094198077035962806282272187684004838095089189678453900375989006923271357852897410749064673296722547043776487259179434062317553499759753861838616081655202886121522074874279934287446655238055747708590712805276734612352854708408294594896256160578742957882472252429489127124174709536168710066121405522942414589703355285952505465387197090526081224457883878090100079440059135033917574291645681278809140904634890487117273475770285975533826408944148997742849364141107104139523212127278828614559010219847721510689096612714000188447985581964540066443477508116371297449863181793031495061955480241335228897817926454743414827944254599057928549413689179319325725975890393845577846567958753581811035084709039226455163467678370746403752786137049526622530759733289271104714805810357782612055652468693198961664135810222627194621057474489145953428953442198667698571240469004178767649960272602586072089853537299597716723967187319033516609441262756414703515272358646860000927749680472188811863906398186408176743253147174514196014863841918239613219872413211867090952971697916750943518294612132771831650091624072219321312071770783356353982035899232632491814791149511601283217784453059354953920183977900821152540702671601441216505317097951242602810631168001221743370738058408561071696708215475720917475494778960650984656594578211443257386999774965655414962132722284856921182255662180543115223362466789262455157162599134498464029397819260579978545859881915443617501648198309742020133657446386388307408319915319678808338905286891413933242772571025991459805117832264177075410511649540868683342292931579131223555023490080772828983348071513312880328652491995774086276556590011953446511129370586008871066858486448037309583649520701394246026388626540709996857476562938186678189210213695772019522352647754933514432682720995305989961078160941039891954833087718962214512433301070297210167438138740201279327332211779574797784924969677151686099720329741737403227565845167753546644689801354810232659207846572552368562235523738832166551449850222268742509764590812649382264724562121569218973459515944901393995556872708898634299320039721716446399917533546840502679933859017851127217510310232155786756074640603078879518950001845393237815541718248932542276108964297043556471916053189692310635307297139420986952046773857320008615028940822221320163130739664667095535170468802425627679325838101251686324106066193038147353253345128979969067173028242340277922440121192558818773736692493215883677885664057530404228225613087514205952702183214781894366101031969577267476688928624786840236571410713064615798061062157898504521383336470874634310366341778632158328057701359690647134571124046208171870986255216189990608877239712617834223412941336426789314574871412603757554932542391251899978533151564122822911865391718721826288440175445083270810605836066795886496227232202514530492268360523078098522384228186983352894160094116420584381298804197457866625747507388646288809334698997661044723266235996737590808036321386009408135233052841668150818804946826223038308614552591589132516869244837493904761465481672725970570847258064822864201218075531506218855055526469612808668050584761871167428739809129787105508064057165411795024247606513343030001967176252991285450418915475760109524857106611534727238970501495071099371421757670850078360754009939307614460285949123868112343063508111019643683893684369229107450708266731085976597482283443551174734321439595405634109993402437367604389088513400234989421107137778690220990593275499632629528099770543069596161155491929498621618984617360581437157338752302486638813652511789577277680145487333379230967963410728164220348936216912579874748900320875461924985450112736109399073521761556808056881869159898924031632782304021795725428759751236751564234325737458447233768109153485890925585069177546673060498535607091241719275188433518221620084948060008146766065390808232751952089521613406554298257942707122637595296412582196235678281310646097801394630946650155263436963798424171805532013912926406680002788408385705166006190024848720971475750093124598034777100061957170093725862011493998039473102649051719786704109777288654580962476286082117200335285443594845903082150526411679038911133937723050513489698254663347633725491051348390298934914583602462089543895402618693570602120112778401503821529869733730634725808771091894142514925918788723171973230452868448824778646427669921165291018151332292417255117327046974869691404434325656983953834193378458068708978745501611844060979669776687902424291411427849357979345216545007103582724218436683986043126331156077738771155551957247273524247693670040634686876000399007325304187155265996642265499519952947634738811190200752172742825120596299203293971340012483464333825432491049569974231256844235999368876221115356583941145705769068767333449552858852740063918735013124564326481057981449635357135282952472989689174905412877917108361445451713797141748281118267931303366839330498993975471224787175315531897487441473273687626509484961197838744538662250374877213751894061828442101256462291887406870271941843473620029213314685515192891144323549603769618795060848345139439054986515716804304620199829189135742010171587762127039902574279524460323906208361573164872841363587719057054895401215214436816299228510424926557134017671657267743093813598948218510862738605246612359024649066003039278059518604748244501404678189249324869509116188700909727674944414163337957145804460629026648938227756589540448616313785920733593984958118251442986661368864820078090401612120420623589117777364483333235739304556146022385165182750187689718801606339179785445564073659358885786946349268955146328661960049878564746505434471965357965862317844992884951718702341688142980643987308109648561065539326803928111503094822763387710301911881979227851679922052574647891816519873785264292183376761584845302835991632077779254992827368396943538478802089732657846231637222112945930611350374902531089209875259507589902561125600988568231578607077155930260153908913787337525642896263596335693062023787779007105644902177642325205738819597927679956309446183774039283045452443865802159594217652385311032276052115704772242359151087819823374037128069858478420687583327355341732080516622268634321876107256076963784485076710142231315469120901322779878998195548441910432882511318639762093375494640834177122110769226570534389040752004736319212707315518997924188251478737534561825406736248220197104196625075634999705732562092535458079266740113591834875004427909322995899697318274157904776325733662085939074372526605797300417858306244400751444522743329732570311047891019868756188926751944384065582044565868773736987436719035906011899369393121115903656270438686622485551514900185376642477039884420321321416194481368809115326917286155629096587667731268076582718471512301567115222692551601107677311842027790571092011157515734551854091260587049103441446045653709815009326635056149739775496638998827686783776875172511933667943430056227442702936148740782307324966138466201545726128032462857240165059257281943678713201193181200225961965526492422978921245093747450412585572616535496228163674532917332939468953893456566823271453995536611846565236066256977706691386795268083393271332338095966857051077514821863418705918808090464167690402699714789031866135821854505573146448645428018324721987879627004757300053205220460180053037333174313566057091272064678798640491804569695646508487605655103781222396193599926623215863019117629113835367727694080747460991123453957195527011606256927156232957147700352187555165029360797366189654047087182419776829373929354753536284663474321315599740850448056256696464916799884827041334228756758080283476334331728739479600960459975782305055827284569391426035908309042203693512660910095642829737272462959950775793424358434008688700367719577922282702478018328794849822913354359355003450359248140014291929353491408302893702970274494142877561887512406030282256613576451679885113645050247453206467216558702323918191256755979731917858532622570450957915441657801215071429224611014156588398618017523869213360352331767613320774527604763252498832185512182685605859086859536568609465908203283510663762005319289184947347848581674182579670652035590248833137903300177709447524028162240917490343860955111212237339742499258758068515588385329698149313042258908419382597716437117422473526056721519289593504596678938909236720963838105411892901562533504717582078935951876434844464831899694278714726658648784347426631686234225115913791731990095380331853064486510419759271326830091012258799661351891271809780613749842743770116320453396664512220600449890252099943998343274359260722770936266491526497145126056472799987123327544525855424680818385702338317226901471898401464921302567116299423409804829188823055966775262279024213287766725867378949569108096664066879832003764628468966496399556074983689263993566398857076411843915422605470542676796574384652116539794854666781489678106379987524499974266510961802901018249788281117497617926108654676495629647711670188508268240605914704810567282595339806275671293822951788604314175980249146714133347231321260298731828846636448228103600879435541696955553745016035308822182214590004153566584714246169577418267901587594448469964131649710481507123752594731142703854156793325075922644360915543540482901386311015896350677942592435390684892282944451255802939357254714312939507753048939340028382625907980414829795734212494666200041986926264423951675454059536618032490026457351847986635332953964772801853890552075358673085883152383548863835034341583656808365857418562648516844602501310578325157787946811752675711579099726791408596750943859417356696650254999666860930285940741827383578177782781285143094636238994749721556070706742921359811591615683333287164151253819117081482887735346953861757940487188751387440590782224139540063117771190843025068914618641670135519188653991567851886261930103977482287414442500077158827348581939787156883511410259192331132368436133924792009360545355057178711484716776578559200626818048713492923689552455790867671881707100374084161314731746709235521932004298412151508565978151467058857251505800304513814745905426217761814194418814310359174407409280968505806627504219880851675076433861228269611816325486678876501473872277596923377370387080093319757318135511797064714611627357621946908713166760625560645911871765482791180741746776843862108826942877612532737501782611444125972572222693928278706254991859828528452116870044457446369292224599727675428950103480429257140793581265794400816410204798655192521249324383587589252971521423027283959926365082999760612725310371265286532250064997937330781626614060423136304782712699171397867810185412616748457498859773145671570431171201104476490757667503020952945668224086765414340182303735519442547314983206708002712387967584298081413572227919510232834498607294263833593958793260870679499670820883103636378536328049833804174021754490484835239077099393920514078961455850327587043359770510741139732708018245335392161798479701438083306999321184912268440544964909788507185944871886548725972070406160675495187474779284959524663192334007468645007510740828380023150317293767322010683281295691867871823141056829984172133535869971284234755037058888558777980179955826624905429799983328784110144951826838979626917679277534251537201672012577689719705777323387967771917038713031611924428937777333686685302309075595518563694525377321667540930059302698753172010678548034639026123222886530553329638355745604683604823922051095404487362089966394583328137111514567041983852532081737952555819538453344407411068685746528906085833818225989062422587204458058771082390774273693128029663849639648066157246686200686191036433534501269747838262878708740447206964392026181587689654727319829346023283291439082018882637305708053681624082614052922134722801797496433737254477128921948190266655919430539756067280860565173615542649441659520873527548471249144553648651170512016144864630158459233656932868749883179261233506395639304841304369097921995504684421617634820345930143912872742769865514560605249631275215571391264861665179781992033416081218930166574604360103435220910533137497817775541735467495991882008667581117490702531060773038802612304632149366465900816825361183496343732441090135676812574010298722046296320080872947528136295611443061413595342562004223331210866776672086375697362566804489659143154072205986009702379217339088324709416923870976479931855076108244698599879279451390849810265705709538265590977735238809899679941062436079976440342882829541838646006299557418777505823362397743725327250214596585714012497059116594236682974383679551253201461996193703701665309056753879710250940206696018886338080364391437704280314924152056557576155870150007150052915856728414423820316133797855467626817487978987592452895791875789066143639598831832582605931960912953435901761880074332248650839731510263318311470148357575295249347664677748784709559981588399133548423313665724802846324063299846960673514592299924757666145704956496736551541514191872436095322904589644199176089279634190365534085210852697357860952879861343137167396733384698236487491578096826022506983586109801288013137799757045264357110221979513332034902946127350620663944373142281819800601620854258344783814670070937558463189750474324556912350790202770673856274339362968353650502555994899045125613311653917704836572466958605427407505005498597762368113774481765377779793904377197940365869728737168160080111183959854728327380229254788937149291603020567149472478123167268582232782979107949865472139501970811532416004553705505652805588986654766813060987067281462947287827230384607118352153296588152856457315349254417134916696768235027735169670848052346481705853867367534968289941604671877454419190255839215975078748267888836865118919175602919884636489291259361846606568793384563724193915407976745127750344481106618979983290624747227002988803203079713702638701785728276808424443338231379444262989898347740268396227745750406955563782555452134651375098004771689740575183904990968753184484225537851679366345458567821107022290630704848671820136872211045568799504553628062916415283846420461062900720757810017294783331275629562101793151148398389243392237350339238142080973221229528106940252587473109672755762605748978516428250165289219200774947619376908638532496984461679146024949259195421621681588475903493860274584084104575941868241475159508627394530882796567381524262752459554217767143360385409601875914057702882652047025520603717406319750866902534741832457379595944942591839542918313485162631831139159085934586055726997153883432586035597798546519143650681591316483216831199395349575381265133084671738678076212552379987622726520773119842146350233849079582217149297652603984931431274079390384104161622700793273106407207017768933489311644006947897391935170492848936717286965692601007256798499413770576278052532442475716586589498792313604754684023185550822582580738850310371357768146037208997435300531530064686508662775057315492321901866242969042374779345865159028704695787128901247154931657968144317581384299327073471671426410795778484749154183761283485802742388824111178115967296465807254297022655013187781416555542351331447282032534246422227074084944003396321497704623936593286246009375412011903234868334738889032531187737860213235708399094408641902708970384356193037998884592057289065112443663083674759454150271653621541092414472158797046469268269051610491049530246458899790864557637668349282701141583074211667574755819129723403933092408167780465058343974054579152424852150429945337539884739745660891598751628409441603022069449122529227431672004797340056647261320955200823283536655210718352383917846624342679672076932169638435240578660195692089182755377098732447612923837708423727222020592490951729462845155361399645412986008375328672758476024863914151205119861445710527238786156701086522309237381646413549714362953385195994575015681602692987027013866361242545319602200083063649247706296055736863073417368484240265395989499998011628912290948358789249544666016378452026046384039683728827565480657328530261036954575501785777737022444111433353936309200638082065938241527604398244816105177307985029627327401951885007151818002730410719844210511700648090959290519678788494446719120921820088016899457091313033190333142727864095468580709986989327812923238570338223663555961156029009386793507406114851679661293407053425812148882188582747190241356481432584772464987108794016033993084221531329551862192620269659357962013582290393022317920846784263501115661267598066451042057852088461189085704349007716491986675591877049284396357406406002619245125678526331607837617225186879623158823477946998508425938853282984300836677431100736922292107677666902011740034063123245071867053498179685452533947934365008346792550126891616278895389245572114340875944402680069301038057285226334567397757131145170158043350704171070650517942600795269098249567782695347174047544848169824761461027197528345647883368517334244478664567191958476898941574645912335054864496358258935360596947375936787817779334105291167155805338322109201376820683081108316533242183161377100576350235645746529635788129917506036675538402942182033798537285525096590889799786187181140431994386774485785516495835483439971222513443572138193097578854783465570559581646972564239408647783215234107227306331272885982248730799048637354805553569560162811395591759624398085300567550113429921280744155364581998591156646029301212432992640218750888644943129351511436015659791056118204231402803268060096863656514038975951347739889631272713038883837307485620834608316847937880062354385438829469548138327284462169606110216760345093782715008008168677319262675666238462342749667974197062072929112328756786633840107716124578334572357869861302411270749716545202670160419695670252839980778669886769560987462783023734325012559738155932509839848535325472278150377978786274087539459596806542528946288575347587936335876381463793449089764587161769964565814132498449662840509984252553987173255645885898515491127571515741691181897717967749290001547308111046030579766806897401825986207236300175248103854353183492641303503873680705024091211960487197142564416988290679904550572394360250393620226834736032261874008258984030363064832096555180572400514098623420149468265012300115223844937725795671287840629772674479340387320347327091742683966912147535025092864378101882557228374252232938156098911636949727970073709098623419643051071172255938939539442195383257945291597590556828635012604371086411858883766448504574787380143660323923617123695964452860471977634329291760007650223973571892677155916962566956690206986294761253620044788692312246441885328803456634593228335024990636301489542229862993024374315286768636918183652773579852306142048467474407174572529759811087044689377305192107764954667700220162721862753598145456840323690165964703818145753890077681392762234216139604840615794752763357070348780135662498979792258877500455848727989801368200679353303921962770470592539546208547649667941050276670089537590510534551187123949118350422785054393660021818767832015796462179448440566968721724711765687361246464867897199329953242907956445847787845616463524884295953231161585536425649015837341377104328367743132317629989534031518851634590569989939988120509174668692861108744493427404298438654113291855079856524814437521131300206766015896177023566896270905692583484012087033774228291778832178998770279379163467697875069029489405914052481062602398886439922330236256332374852464257816764436071713345503000996332853323340911747130485016357867644438241050879928642813768208634667053468194345915510168615257526540988708448741242437240629556863597852674799239372250704459702057495230644824197211664029566713549467272910605801436467918537882185476098536921798174331255676495497002497246768797216974379536401949168422492205147520480076040903141802629172882312073824591937994305461735401937918275960652448549366257502794605530519823111855081279422873442135630335215131633558053902284182973609082880140868855627169966949458028083251807861711069155821987358383762943005760674559963515158449683985853683932579459820111395106146932034401468249113035262526597427904753809952222319110682844908058194177362442324178196082489636134618934316501162844814555598988727484492183177985956032779809601413808966790742724884391121802682155026466436297527283872265836806792172080441787112663242550671481758269294695568483072587799952727242859739757070004781763480241920555592035128857646575062107395111863258296195149967785743571917279884585713767837894306318253096505217452585893566322162341210591554456216984267330742982524418042728557015439001295646330337633817076703401191292493556207649435175770437224061463400529605878380787682347881246897323828588987449797709267643175102018492473398813173898610257727666088671913724943902377889529115787974227305994859478426514694332310585867829296775819027086330753769619267616654194281948121709381741149912629719522644829408540657545645203351219307384338729951257898569039422981193356377079045943586311486165895200697537499199363649975660374930533136930297917161870995334866938078245986223801217683489952028656296143564576949190468379159416252649097867800118339270211962398674251576572585672751436301301175793408914743726288581400248873253585085417124673636854919149872652782850244532826370099070322063559245535474015670951944249216931512517849438576436166931236029725298666796247578902208498617581942751569911093068127330890943060182280628263630653607853859415352664286341863032311298666901412812527822464569295273272302024242640402646779499215672082169530246080123418728476416618983715804229821639238286590521183201573498718580402077721188619368278449022051315359535130520204525944501284762497450143254938253041639264958795428435030568144974225822848620461945843682577115765218587884404086007328060362004407588184817216259331499622417212986899724914845445309423979897580852906509527749217165461720927421549849545395426372668583538841127181703064362085669628119708518264020240646949146033607549949465867103213085753801840452646185119729801802014403646996158986077825016348794408804685432465955935218252969344753595060902937021456027052065885243325420265641399738183901200998051562658181877620341708972188249205657655319647656263529168122325773139620658344807415835634747606255642892060007308288896293707386085520467727268883301344340453977470409806284029663140651559055238201790058163464859292089773576319697667696410328703678026670961805545963969122427439687206056866051822540091694687711518363382660074416630545421491868937676531724410489151063878912096313771740354029927617398924367178478685045809117588350314334778988785911821365732367685016470283211808343173380844358324667086524209174399910556182444938392301781380568957801768157466946600338868753350583277548210833089774436534097804282353239804478313297082446910174650018475932120719563550381965701998236617220036822683187560118826494823950322250619780078254118614025944272743534535105697988317790312973715244988187379299619412305993528214220127840971505303500846509556202668974865022493326974552484636367200843175855338333614124167081378975053236093204957966801000240828466410233489298056113349709306387005222343425707349909048830383569628260256086269785628052843354462748471260293835273658218585826874164831205257787163588233311604926257593786980947251798366104059451349293967823535209943089891260850718418427485146924226099499543548221926976299061787620997599235870621247129107223415752017540135932390146554651066319517928387546336112749348977903150702392973106438090398688552128967716749560355395023038655153496528515191668337974696123226919529455579052183449356544418576031456198489019863461616371168883646984084741443722441037979408498295129239663454132804133178557512417351916003940721559566690345913693484210817189396033120636032581417484862153347036112452234511455731771729198846292434249524325454675274954989693680937429137560763163642389383778803042933672707179352620169135512611170436735294172782178510440544544370297201811376310764418670343452935191439950292357338737219527153896748252438799759666828676798588036679154523171028139860247624165621709359596067338509401350976240968149194280958519676327575264825311200459111346657883981685853134192041900116457540940753410680564521466857192978198876320102134543828740815900387565329687759734052305440532051902193580935293714581403292101284246790362542969224146998316035945621651299013295539731364117703002217264244852040634075557493497031762635828385117832213247568219878588407870665346849878167372930361818250253406775396934496795551357825058006409682621523334978588225445078844218923084702509807010763403990768574246802381382137884181015014570013419789810723903962913109022045242677914120495738165829845220020899196666846770801447794641191349567234511632706503713266105408802940561196040470049499370618377492999989405052640454475974351600857330826872616083153384322153400371265839251704037527340057211967560762136479703465868528474213620683004284441273674988554982392890461169897173362161030844217951848008185908570470050296117656076988290408374964923707297097452313069372788633541902224410665652106662638720398511753367192195892748422379868460936438448724692123956384940522026366223484760167929467509986712758279411695161193545023159877072445787477971147400536562539009295232915924389305565324498621695617248655810597526181791773588249641075154130406288679596405825292437211730509679231745113740083814969398168394303916616203271263186408619753530870799665603589130110690056996331175036070884689399028350443033085887702885715413311263677229951454812149267246446533278839071341674950388895384397857168127018505268866967963427636020954075416146912802339231512011548715420859713003871343053571853187317955308867885089356639858950115418435784643097351752659495848851600199865659400571549878172408849984804437702092326503037564932731613289488667360615491743771037853101760283811769710875404583614096707932281653663179585538511593388568316397416124303060474647196036276709602994342742373898968140923900890662084033913844734426532842206745594015555795796086955408738634689291437770370741870917504621083568653964137166523368682341620371613418819166136845655568800274558399609341795366578212636222377776426190160404865843206246027276834628994682292791532365317148188056044970445701461396417289138718939717686287560294410900511008343155553211201718502125621685781722715105207450806043330972262530666095721496782300117217711640487623092938104437704748778659352525423368593412088010255667265284466522866922497938987492508952955955917995408653973244836461132298288166334525839533623081064440424316511925415587021253756684057213838461982823425086950357941900167170617359014079764977716407550341768919127254421625041628660265779605136687826890750225558661247606770889126963955326712853342247887429650347444601966217916374123621582738670956233337045507950955745964227173203504468644077434690175034486619113458315961380786024768083811295864658043902009784650412112334607989419768637758781226293357749151740998370033555133373086810644160834092258750495103266985369240841036413651634487200553488473317688971863574003009039422349730716465913700086467072055049155012326153420800544743938948399603222035442694056192136236895422751901822729876890987044741608320417914027174640479771522624783173971831365515668829791962948509416374951217347092501285780083222713780164475748429614731159412047391052357343073071247945351618500405562670154830507841392913333281571401878883150622978687076476470570963113075041828162895052641879940615486822263664829332214547801233802764126894243624990302293777349555123119552434979485446473892489842881587966529254636393739929431680350664174557127239360065079921718075288673520546064072759990976782874844095696866542925588409528276221743406017278929266129455891938644256248406687310758804366203921726839870888374464418000367039076587421160055591691195111785541089020883534873910352724120077543690844897805061021689523293806522066244737188730007253815633459752094375718590378145415999378034899664818474604698729980726505358185279581576316966565963029493518611680073819131283362007507078065987764109586375228428736303267721426839682796767101127467965975191719133966742416881069028443472082524151174039032516666793350445415202692547574130019673942818662203445096535707476690531054228638229407972676401331243993613013326651201221774205367256474103012134406521954899977479323691554792365657353383326522469379887755023511991898437223467458892250199192080282020512342420023541916145043660896672121955877214770889115743285616655428357006662559315322403820404231028759432737080819792947417482945821162674461594804393485593399994237389362171004779786386054321341224878261055482160294266958701156634872702835323920079790205965231366337355045255670652127768675530540951959700217980639988172816099243508730062512106454166451178816351370346650270580079056099255184749518140399337700514781576718174074417786506085700195611068175324402699990612301743589954338479186833243227530554160041001621960757073971158667510540008961442114841207672639677305547230925267515178964246185347534621460832896378483885282021785430046273926193257187348615195148383236546979870805749433459747327013077636462894263703337284200176756840893945202161143491569860878566037484383071777284635051619813329639232940077617333653014707389951007064276981548895785736060403815865509482185222941276535960937374514592838596378786152612617091387550539949921987692988181735321520479768915272733620553961398904171696573430778684260622601017211851062280869997339288877982497164594306206272143360696050589017358988129916536098346537902471084060704337066659914628773334766012537297063889204105957688317441350728711555296067775169456277790959486702358787668145691387821318253796975545419808780913570538922326896009219534592153130149268096367136353852292583021874095303289250933787170127655185895867958327888290182655129696295062703424232844534683787529291881416377354020931745434993641283384319875193075710223168664276539789384450042146097502549186372749837419975933500204484105465830621292358644525316312722875322411391892870912272386637769085277669995681808882232987933146139554179704556024451929921955884861713796564332874568850106222830046338792881169703935787847785111957561671379481595998601991655640101609892644741705545181126915753014945448398674465381479169658096223193589960656781626988307863303674063617909708612658284654061956025708319201152466610982628950887826905141328602301070076219445009858122140049401710845221155923010162656569749160726085520809274382242771136235047254458374431777585372833523132320640675523912132392863966491856651543244502700742207551289841839924431866984430712419103243274637226102434369229051454861054976289761627651952222046561973237600016751009804917206780876477117251027891142096937185154567974819177084732125328132415504771793776902463354546863004668006827256367219474918714323968157978976664347834624173698054738693759024490661806437286873103499944437380481219914470281360039258205418494649606474616452087331804176278551421173907530158849828106993374162279886923620639553290418400884857102589820940812036449242834701686633529544656480880787949834309964531205231780222207677610365546530353688479496213553113083020087356597414188273572702875457523771904562879300766778908220588506948997530584630316772256167717409364407394335016308292624971134041524097131222914515705814639050646564580539953403900880735469556823325528493787344663586564687155539392432815501932624781669595246887492384449568358052270790672834405915881297340477866901916429851586025184404688962306041748588207511287004826516006581868660190331713999416403868175782729324258068566193808244815255794065006345943887932563393319089232514152705223987003627378311866632849676824683893318400878023725031808810452874062924624138140843697347067434698199234103269682321908888910432883406999620064011482798676614897410286120665412447704966358718205687519333738011787236482891496743439344814210488872345236339555271290964369106879093723658426174105708676703909662991285744095706887552138825862883178653154604024832723532181503938313074984425997562655693834267104009333589311520440761752792361562128653892994857387387065861770761125606088430884469108590705457095693584702288844153435533968251053165949142548703096394518425959521607326460052361111786503612563282751719951922914697746943951764892458147468898521465874868434446544060906474310432768544824373782476064929173983655184544000992493765240331864487589064935710197848705583176420914603736384553143491317585710818526469018868377495695306799302024430240006789168832543063311096242933756954712726160729543543689672619222773412320701645600777969159680285079095802544692407531478022689104100544174239646297778965183046354404132527213110948051915832701714277349947410516406622269732244213880038114378790037635154788854627588869818432240540307429976699914562660549691785117030330308240013742818670342418735124941301204103269931654603418806034629003242942605867819898083354657648517991370097391471812679724957670897167268051768938995684683011909512085352395750843696593280127782744039058842517513637134294916905556294174586803429813167627232694320400709699723772716805488620039102226249633137724035535293355688904775606233842711609082312217737171142201422826274857193561830062940607301933143017566016607563802574530410605360992603689730991642031565396455466485479124886008260726473638722400763042604342386778649924722345771910644463158875211671712519188338146001309886218405545779591276538627108363618798875109747804833262513857149636793335573582713094871373754426136185828172054003715594425240638216066511478274215771099297030882815798468603505829100873751755542869499120956727818382564499791113024421703495156410005839278917258973722747533631323668159650687383437241436847765024967958918673569815959003090692287666090627427916559567664544520589899085585292842984920709003011457948767233981982934527131984386980112044578235204924229146759202108175373897387336510336848556922424164535728089683536091686461258064040955812980666158835661693525155035966280635998219509331771897729404653206259583161142671903045266036775961071674741160645175047923928156418666549892980558852724645305460885384932539853255054675709440604193862396602673192198191102305757293497017730975946121471310955369605537194331369667864298997401718679878351013322176808698834008097623476347583557420839709551928059072568169970316101447216259820991788255984055154604639448286750468269288206071083345568369324868520807164220765971943540215838501632416875559229243147064767991471667144130435957156389893077259784420300301566910180099039991139247525395140298438697737270552872774062967850127273142284911640656330250109249088601555837433830700740316473040016558156735136542564283444063196988524298161401867397486919217005969737913960729878764331716392557893077161861077317970447031014447167911287798839107647313716201201098459302624840985979852226132684243724940742346971999465303766323065146547909868710712199315596382314200062870545002165760113698872532482130504987994121203599365498617752011852134959835125935903057876253906712396023904529744805071935221862918093196697766578750608447761942527842526556066724780017431341882833935315491584839096545063131629181175985495318974569513397551507682249063070418985952948285461641206643933996273900961626503326237916509955420864246304393664456840795852545239679321487139338311928099348198995992624939729863345450417158173718451568699997133758027673972697346318207734377646309285484694060412199772147747461597364329334974592225390193912632278634386491905892988111337971134694669636413471899459574615140966217961857563168233585349123335891894626444178583979939330730464663265918776410940371683442610886515628546503281157639090551651449702371958379517660094439105655076771010499852749074930282792665539480632746395593246460465015480147438770848439052885542935503060983083009160539479476624142391587208222950484462203412488105417159840067658077209908533801014171344386219571441358283718777033666296406949666677239563407381032794724958865370945799464140168619539001036926277942294291613623913990792073341127955120025167447615451482772981678471878972311435811732364742316049136513285615526500774381457621218512395383098825839967746923650760815599083426955321093583476652845867221829158202243138150655614682335245845785628912098213447702723617424662363183474123473124571613191490300114233639344233246651459360143711335224543032094121104696956224918032204967449295786838210980410487873740889874961658344206384553307849355914863824457146945496570312892495319948750473777185641864317014315685671528539439962996324552923134357399862036034326678028399080129422197545485999745651031320711271388718437529711891294050857259971517764587531105751677961064477828453222582316592254528001299875569248063619076140344753117109491648603852867369752396144724389708206462797606605303813652389395601100947931247001059231316201538453426833540830280027988869818740231952356275739209987438808079962353809050482486476030189091782437032543576952198741082970872568457763703366516732305874424628612593702152611318913322323113128228692199392466058980283002161126313628087857205787647497584643546544456607265570840446917223903678393692249283487223166910211379376522734436382121348274028390818767577095872768569924894930530242463426758398319290337646946494354521832749386794721328336821562958898333239585338561320356265068049971750402427138723996845595693442172383987732209882819540961807353466790233754650896534876891125036126824664359118320851264472731625610643941299867904622795987718721847162493514396887268856544991740836328748155592591172118134468098347645988784680874675496406577864123616858110632585363200357193777254301416621635606964701877786465217756875325012831749058680478196676520717190010722472364556694499791341635279816274562007615381442592092787372606223479986169765256425673106589951971605050705742626531819299476226664423461143719277635837378652297144021624517269926682874537535313148816183560219047544483016145202367518469990365313813252932176825501984095238869088969751670933479307121934606656644616934178859118171067564331629316495307778734759292654729271446782644119163533043110923156929714816400237548831908628420397242038893333355115582897471364636407804689758840694820980933366442005327351372437070880166577427624564059251174222262733623451229520587908830892015543267828008446638973095729262502583968283628233664460904957753137962885165892755936812982402480464082894373588417208230518494380546127229449087335431909414547204904467286671824451205002041773445324481151977201515760470830838646080434644836391748351696471449775985535295956812892084854744601197209520863795100755537740725698771351121000004172919526117087007461768963657620306001649324695814891587649119821013211375109914781239122889114299180076357434582492566540386399800691907939681638294089509169936591666175432970942751955195156381955616805853475536316809279711496129335892568408750538174995123325946498674510368750441024730686401878812734419697386907880300179603301454183762208219679762190392224411769965623455836342001232598333338745815055895889576226270458031409032111359325706059916115640677171344511155269962451505732810741350652443265936832383583636768383471639260966996186195446839477723345925735392802568247029377094647559775569708362986509605249074105945031824560196974770409593283413295263356417487124269626583087176062797303957144730507407108294348059422542624440914563635102803629397441566651501441568710209998904460294025046067309211193783102069096798488628119027821872676220866587741754733503751569137104466588514850774488249925039912633049661104049018416003893131560252516679772100033701260114477391030929771030541466627806878190462194672697789988383791508696366807963441681251396848815674738503232016993440331408919443441426606845345921103335741568886286761739882021405884921354458193278332595923654490332047352587897931882519399006601530671962185797546667359818081043877326945545006616155365094812443171801093681305421316966791446130614873526337916597549612741285607306627061162076005405107139689884824126496986173704342410086668239925605558863444732807294129929939647989814059101588544645458179018424026098182522576423054167433361393062195484685227645981816608416585936251253059737932044272289470827763890249266968429760145935996968122824210229612913766756962657197571667681479138329044159132028873456110846010396767172930396158622997028755529230931827261507029731558381730977011410536173930162104119942241886698501759180395275323936338226058101846076312709282152001626252472760661501457092327293279279036259841178240106462674850411009857932487218500943806556034476514622338234529745516144848864942441366382331441672853186820340434771911697881655129082977949095488815915156953335490957336612223463169889918906829016746778124158877557066571052834295514812866586478937377277231886339972736695622815923661254552626406292715011755824250068124656676111684794708998318806838310475488962110569572642116979517973933553103659733797524659665836763534030145300369332634501475027490375932359611685679108345135268400962237967562318477061364896442162520884379519418198120998109194375607534926514658049360886925592421754004898082886633009397137685226021284943505113001375657759468596514135906434850069180833178581754685014463155622785556884368059040168093908367642212343158118955775324588239494647471609871643002003831612796088880634894293435571074975759182201331780882052239872244888501553330458413169860939222980801605232677811347468601439253800925396271958866611513406648375735902775190327755036831636739249136561392774338978545555256607603799714029243863290289731342936483869269998010684119510795481428720542519788467488889292885251747149993529194643624031671185082220720263826385110040059876888947923732454345860883968942521155529215429585174735697312260187779672299982419622774768372439022975607160836267812002341613510524926901821366643988012818307261447622116457287675543754313088176606219468547330768951145311273368137337451470394785788890339232429671866801846651916254199309748281595647106257597674880371633514351840162234747554632963660145219398404062831775096163798680260907896998817775602937442072209713438778367807820134953691749321034243947070822609677685527543562953208654299182591378230925675210588897057099376088804141573354157062390463281698858556725624597448456879918450965463669649195961918194984450388716485579276897422011279805056844134850996765972237330260397227763331286171649813864116815060186473276829637395441081250279279867297012173245673451189347620244728888647569053280980204265647751326869054230518630967754474269881140817360998465956885676909029986554313540932687948589960293816446374069340521427735970965460712113315103414321564283956369529776425264641970347768765150512773760208231203718297433166480059302425469980809105348034007218660665641820172753743553669677167386822684931686877059994306555797665110212449104127667004289882451282444677995157282693567381704140219996146902596280158288802775216820492451668759138048050684064928839813135803009578061572020707487367552029749895541239461568301731651694952136958790126883477879123384342623940926167057350730580730032505669559847768125366476087187158914952719683998496447449194138063204870769270966503365565979557942216511477466117559573699463361540702497277229142031130265290095617837539156400349412185450228242528414067676993776081217643746044854604345592142951119990726990229024992188557132389053606324931331828489500878342529106336673503488920885282378128590376575235900137114386492462309725287681552736110731683009255100995439307730261767927923173992331525197497798150465075046975252747096375403250139345063653574676752284578391792661690768992627059689055301934631597215376684253849054689886643766293575123804901712092290524612302840443430822978790875620652658066754016538785206248156666060251036519405177985855012087333029501814851866171756696290721253579160150846106936829199485200493499496031562247120985920115864725216525859280734065026349449235104114573798767224219166068332155695753630839022193931267390390130838912927065799393316096243924166221462260883090122822405818206702446698508045090068276712942153251257253588940187604608450304537786814247406327277133737841568412980429173352218171557644575522287203730299988970022454717397125570199597719423215278892365077815633205296603397023600630984489554797091274137353438641220198553035424797318318388953066748143142001176257561671940296851953638363453430940989133222241243063897739498166411800090797675150398243596310081060999392951415156192225594368159906106226411836068447897754722392594032249460199154692399560357374575276111272329143751890934057412382240510956376855361419374632031946725797045589963734913413252427813732375855017002364235485961228936795236515567821251016121174125904710046482312999284051789798080868592268844226932573257141707042325435574569647070088880520904112116573721923324111522147637370604774707230015567070103030238479156499884785037941475499248416693548711355644306846192891249523299773669068465850598314689935834852615400235336210720209021018843256042125706872730910803084102982261309627227653141167704614112787224163398946395952805745913340062490459946106963035990995398957628920350477467247516517494303947212939221320714798064424619753594399897180080139622832703278199617585789632078899923127608232994912789859912044555968446135787846638956807645811803326590680095333861753409356608634279043548382207619421307978710629566273382335816732797892822120985501898738613104313195473179665567172230872961959734851073947224949863162202106520572230041842967938570816578830157993074874033475787574379315374890147038651118152710632581440563765229516200324506598040368359860282156421274958026296076204841870631805729768408832329811353827394881410422458872133607811642207896488529539733277793960547063857069532338781767405515857724105992475988657287460431301505704641623826526003224075521860783859493570110229314996276437029567985155570187743249191297118448585686154832431823868832173505026320487987111029551551153704797890483528372083510096373043775881654858624272339993363628104403823202192295496547587218266292370199808268145585129545917223776595057227285020916888326945463043610762368761508192963673334629232368499600591563534530927348289750407527009296559657634785947695911497956568071768407267979089973698656043375057512602707620743671628578278553635305894473289985189196153006258870221450500467528425238499968528998977008784331209758206721314227222928698023471235955537475389558019239470089989546785391383059724555715290849769647654127970028144894692811292772791607439203304995850104289028767102987852881811285715576440936119559359994286801784104646845403778141651886354550551069682134794086129104244631289240474372195395332151234570419052198001386381918678851366333301593530184923049117257849741012376503793806937690196617210965209839961211950852196721847452135857173716947232915299704895755023116059893420722080846581078080625579988600343358825374152388724919205246919586497529822429813602541156728647659152264873725545582767588413773883639264478721029052257160349106930960391900722728711670420833241264069577902007678909214378739921949327829399848195292368804686640991917696226377375006575812217624995152597360481643848674244312199691111079851002133937700586708764945376601244774155177118625814414196557468136110701040673624832324584706055879490156967669672167953562918576142416530396360004080159669552699481654409769392902639632420459085310318656803126591747696763211589896372408281986263530967606694057354375944907535645495838879208286982930503193557890133311430799304076017711268968624122791872155244494426262478197560249339561998607322017806011422959210895664407188045214918144433898107577632378847185399852841854666373835773722568842829784328809123866639019796298888019915135367654096777198278202852467821268087426618377041001931114242490951445446772982097637921902066774509452304764441716037086342855377249434100800315126897808411704225361557696244588707457381111104652632036698098900376381863039197394824275791716075588047586400315697158958960972393984870443076155110654548393943030610459097023364749946092283514054112900913741742890754362129468965651146580606303956614363978308640979075958860345270139994536768880874097665138365921773924049975449927854960400686677707332860656510532045521455749428889332440089378329407570830662828437488944607002334686489467502508690844228782824856843483155582284538211272839811696613528707508474931960776775586703272441351579202171552565615989458280387196553016866949111845429092736410623349507698204585668154916997608104546963772131836538907334884164232287693723269518293279158455566430478766828027888852493222650473416061851492969080879783323217024630034325732728067260714158953325709467438928222789168027014827077569468276635227204358438068520741273928162210030057188330549118381580746366992701117643248620891497225564996430829652731982335027342181270805551951459220627243791523002768844558947430190917885463341124213771097915587976545921712711812646045370246214044126630546443696634832801465581278732457356946696750055175684556701835239586906281019500810340504573678997026269599629877061874055814799275753720432264436073142245059187106304924929020925285361850905953318206912801405385767927165221501130841310650393004852251914000252329604114949109840434829766648767590546727157927072845175297847070483113355896264679846039517958320353480688549774670243736605754571751221701341802810136955529536024777836511940345977582970299411093608574712115351473808933769302062099424654666400393388873160624540134725950909807339758063441764642897231189969746338744613493166832181363484946076286926724109574740386925800512275641640734273538695463694812792468232211883035569325388388848379529436560982225448876676313862142012437729647640115332008816407377056626457654120949488684049849531065775104164577271114301230704889166098074749234708265577192844883170738394793124386110965621037858080443402784649170735931246137963073771203013565711990600878663497724807197112344494681475617542031155093462801953934664238493330882692476653680278057767049164522802129187069776396696805188218917561129939679458630977501329240930158605308931441391955374561448016309566223827642355729531692149653429920038053631336286801251754005068664725954595892979530363075703873707189192239375102814088351444174660804795062031092438807143132413716798651217250099663852337467671296846358657310593124041884785433059004390164239514131624636887893704498628758903564062345505001267431253701242700451930688134520164579695673702624331097018999346956696929459201523087385784587577138985781515164621288908530703278184349970564515586972601886826196052345610167854357036047782364663868821065388167032039651908026034344983189460596883972562487609292721331470607597256277499258467775995323548294855243889812089306386021104637582730240735663288325551132133039498430697883411666387648328785175813390337330233657021818307110211386996339137963681261811527841354345414939715812850489453052259010612538094943885534087651319400064539236385162735052632718023173330806407517505131449288374594358221563246946644610781682417713867634881129900015215064064022155718731416254912794309474388258189373412935589722477968295544623358012683933903825562458332730761978523074228857132268005989043802116941119695943385059263474456028383254410707711915163604837305394385507958766108038273960175183258015723012451842495655182391054604860302339234314233736142245989465932429198795310787996999434696946871539417071533355319173964875028258742222111174712194451254930120839684681541375350493877586164596207182000679850604170633597940642129994693568336173699341747528561853375694193198882670205744240126088864545210800063237413286894693261692066808138832868514045031759391007721572996550023493076050213358486301887424805094660582725436316863216507530359400079851887127195990743604439221256872762081509026141122027198114362522823439378404256267810636989281836159714689586004346225546875108980528720111574431739805395924592742426744362504784986510032394068841374844970188786537928884923880662451958198603660053560913181864784348271566004935285848127622499261387746214416604139588243822236560723137338489035055006530009894189476552857515698343275955030983309046860747189667444945931558659797233522226152589513541043406647374579793743657288639232074680421294960636920685185024766340839470325274379939095619946656033794539232776785372264915610239608759840466015723740372838873370997242919875878855839338541883372356486540337877710839865033424227548160920700457706960546765791655617140922423795912851815709549187061882532486560839522402383008218368996298478379951372155494322323777574646010077570497674639773741225801367655272530646191396369859595298241936609381719018618893648525145710007032785461667301957329427972254629361515954617778559525587041089513223691911952987766655605703758985045182241098209897169641793548515967790437987291071379606964365079076174966409552346997490164610708222379517685409527554218789745487678573924542281683182660342180809034072866794979535632489188560911086857911324196336595426167163342904050390898381454682704021239758526470168357717277617593710703522267905544917303659234420178899007314050097145222080628564453673373588519170489315482791697569698774326461993917850186049396616526206301425043893292679832052626873234290303185263219785680541807359202381320761138924533313200760775310524776547605611090678171136921722050289558507447594570571590782718650683553373461651076028552078294997041474056655951791207833075547759377681597406700893461293296207157108197236934654575489934967003447103267273023935357709693377774407689635408625295772017376226029138534012677892703050626767047108830980761489780933319476110410541240009063239904522408783435787130546364404798905907651235355972183774661711446252387225016810730356429082130944092334034853226852631381075685470735169434695612105418000889813653754452814640758592084551418544427032467795119924328442500449641976858413127651334084422258712908605303000375514617423280210576631452790992189398664905650427767208573287469455819685445621779244366472142237385111434744667300207555406743040680423103191765867033978389381731552289759514367173296343907340494239139856098140555025958215094182912597245085471199730342543884829995717689906153744700705954650719032065157619538463131594886402195714643667308169392974779549592252160638721373432964938389250622927828693123819457183880670607264219783690029483366459957304743485724466598946771960611865807677029840437786608965498146459198813754117764008589469827995975984644246479167373525713163671285392722807645535229236913146976215202361965498589620033414806502438171762712125463279247663742160524049876482615697699914167942448881038636148378423869442708217128272575218351989585523185750270936873398232269193708261786113166859844691314617553372599888449922930518858850347457868237664813213839447703701803054319509988863512273203646031488085062579583316988258976867642734172665730052684868347816243113462453497633679356345192020873195761301663005360847993890658986116770561722109353222830419239102884659637787944841321337747211860590116743614099791396204143025688568485811814745567412518258955446069849638768110271824659596147668111383668548784502800821437688292817012154176351726479956483727253831227556201064769408737354254314071547103323103716379338251114395208934580548877879808000750260950910388584815465555518497307824698327062133463032477418287701322053102679783494045918061014981792452031464022236372584076341406389816457985534439511760693630410613568367726386457436889596697407534006146058415105421347154946190998464973690606946398601003458690223125922101201283892563787540659728094027545633347252078980255946059673647864785381236574373935539201419522998086260314788345410583643342666192617779024550953396126948640523394902227791236013409386853770064425265210760620918179337667737104099694874729500525909811607613650717294723353009653381608142348798051559658380263243205227712700544780528235928798327108334726319549103656954294839799319387383595839963869553182331459507851113496312865228900107474986353419705599957027242445799874216649154412988705332135774101646028630140251810797381762993661896086263598670489162685997974966719115922510394496021870537097672432730510239611073838759714982857255148279389619898387371627064420149912108509221514084566758282589649895358549469726832745298270312556006570715166522949165298806697734165858752888143561448282707254111872420932632934253323355785561286036989011779657880487504203289412928221766369912707509585261581615806172419503869302559941206472934912200153867016494244153284018388922508983897930731698469888526448517678671900395828821893454594905504073347542023517381525873081663614700623739834062325723493920719681053980446389564358453563668345807501410315177206086868502070375471448324274410206874429421016722776223998289733144666368452043188809336701692789818636840210917003769329658752285425502377034961447925482982072398350572191894037476571641284880072030054086450993849489279240495564941626660381943427230767602162964454934221314404838027449817512962104806656403404771853026421347720428782822922332540135917573604312991565750376062372303933126672598658468109908422038027896848053773554875957936600419340899331424766887360965611287468215587528733315869400850720984876091098741469921250228850878433329512881533533806803467705416668695127229277880039113190184183686609541998102968194194472221319022011946303679222228184847147031407232018794268487921812880115191803667637645218163751469120248604769674224768917554616220564148724457819221611344243751368530248066992804505313674623893870655322971945396102962541504014167956290740186288177449362867623536346205916938796272678967704883760195549146390055960377080253233132670239178631885391426420573862295219339984319462135924644163481020714389116206328269511887244994088287291128201442116808349487464761149492287097702040965944812612651393275468167063726034749221440658055776227441855688149998711250939184648954428580108679418485384848076113517667484756545271378238829280039993789176578982062779591990807521004860370251824117658487081753375429407325144861783688872596772334698168883286885921071995396038386014872204749184482789476471778005913595957426758094074908624414366955445121669506663775891577057063983300092523155363078488912083859361624675500961472272244197821961608857555511545320621188323738556415805661851989783711835603289468956766364330525230976832730333889377043395008674902730671734801443154832501877263969447218744995823766088469109201990177019855216927626027600565218349975854647230843779671747754483546192376519276137234191721358783527787170755995006691293297046355432505076068588166276995448738657439806250532307791625299173915400618471108839910104154254343588833115349379581359756883705216597135677316843092962464290108956232018912742554306436510933836724422982872344492699386079111534372050651316010510087683239887085630719453052593513036089406110406280462022150245729187628300918404776160734834771918350196125815173493854331105781826658942930266972317717079434758399693727673969767612305773246847594705484586125511057653106180784887963135465600815286983806346440158800529483981425217751205678641461375283223864388368518159165027657372915452703959856950766173350461280598658624742943791433639864227070381493104737126847721259022032788610595486815204682407961641655263630092365075341309364928819257556148145258661944070298625574121542620770770270899081005290594408533101025732411311839436030593053353751073593448799357851558895424177722636188255895985210012407431748168353221539796580088344950297657411359589866439044774674789295597157290246876892351751259226605396496824288664087973590312498915639579828662106181327112525038197628091598984933248137937496845212968901085998728550702824767553476101674322953082666866896273398438494190256999425323510452080552528960081837984606579554497640432276535757968185235220104114304481658631251445552160175391454273902546756710907264798196535925705587194786403364654023098563247696920922512536225024665396249183793582869884579409407706746243219481313201406254855556939969756850399120591442328850396050458928724872260488000683590626347274699613861857189120044648417589174462095431019113851460060182820050447398858211528555035054405804527565520797868147784923194101587464161332449320423370107788330206009668338919378059771072619234340381716355732798321938694996916749751581651464666083719827126157777581222364751259196149498257228279854829908124926323342020553179789859072395745204101425557508102734929944345615463849906951990147131298739314031835918872888995984319891105275004120680655192642136908937587784883042143263647101910054174019310077980366175338815292754747658841021435592366807034274121482381387915721274555052409384516707248135189326899647117823720238826901258949777723680210455209613892153764211086094704370723154515270251101446052747988841651005969461203510574319649905720442382483508388533279349723706735584315476653175659362742168417592317164574372550624310784755837389016313438447995979463906343973440404588356382086635192184205107665914188660967511692678450831020801471358596281534970495513707270356693983689993451398683532553004008604610714094198301084104437782336288320334767518677743532385651004693167167457349441023431524503704752795926034397750514358023596016079742511365185942880673626789368561567838798305905522628218902210193006047765466752124515757757672541370935929931480447090893711871610174937605558815404559007132592617248099547778349784971522903660236631751779144962421945096221282098218704136373560213581825079073905712303641747242746397622401854203039862599973461865634496913632167407300131070722339228206273365454924447777593729400402964385799497054012178159952239750879847057365122459265109858904703265615135611109617945956062586267586537946803200136378256628170447115015165966682358589189536177288231805224535211740718868031591043615356634020502570026259570515571534569101566162214370192257212443025683916933997496997493626946610491554666075396539310537288968820769209343729010805245177984100816780384495645959502406660764206038183399506060907668059990167680096828043107728014588053158730908069984650116111560674184610625022688485820039165225031013250944311710182884891571875664140687020918819010839259731892499995709039874344856060529313946425911283324683770548440340777420909172062899046792344999554954385348221612432251512218548287415978665083798758703380447230858818559308592401217868286941884163324819879176050241327730966450039204086147972270368402794685190624358116533812405622308143994708820704753118096580759800594375217484246054292263541726307962217196314830276723132216028444448396952243434127149879077436833381532943685878195985116057380224919219746428964144317487241888628045631556633577304553013973361596361262135479555345735406437666063426534203352878782849889531115507314346059886423780224690806050699664685120227927981718714904242045835962560160838086415732013742546760423758152958574069758344543222548811159831306552659531034907753020974853355285859339174845824064439733976122892326539734142835516835458958789733924256468752970970479390983492394490267552716435338287991914046419760213980829698563692434523149223086240216580257975595586013006340586092700464491676634808206678970887227371018319912696507058432206019491362386364652608809443579223491178703595192564898838737965229988615399507318712383279207445307477933775615239108886638966434008647071012112678176164866661723381258185294025792606220122065873372349660734946625292448726915679640887575270883983033618049530429879330707316665250792749896435800889120857806523255148169250578837190821221222366240101449334984696059058301387775477223029450803710674188382243652526457607559086578465548670220834573753676239041735154197551038629230234316570154029522713498707845932930051445795277443027564690347836310959029972369705584317446131677751165909274817916940828273002215634158987726266883399919057066653730288926615610107355165461939825791598231213278110199855856045233037331044334685599972682755138888651004060049868546767048732051231357533579174811705214532130142861107628356825853212987257672387090573724968835167231938656937537118402359258034359175919628507183739289730384724980219186070108127950251289741337340589117463974189585699371078239883212097742619936501867928735634581891151226412918329493316425045659049215919802895628150481075609745326285641559581567488343985687419728765298921692675350640923480677399837954187582990427612368950099729214507230781668024337419442734414619974534449697060671879434405213910693147902994007004599768314211004283150124597361229022599108470124619634717083931864546788697001143495740159047982737580251327501129790100167810512530860407297236908157449296887105896362552380227062122254626959799906097970599078110595928626830599742020548716190700881317188019108384579361261670901663680391731148831428985128223479570436720771975994229160001461047503607458306815882957406906353430168579358954961667329981642138698990307525795385494279455965879091345204701796378177095722269039979592357383379839175973339270074420520654437837734631628480031120697760669061131847096125002424700208145904017253916788807741384215281712236219228688010535406152824644244253328914162103415399753089236724246634124866392912748772539727084959555932269967524213821161536270493818179403815947811405429416224467238993514905474880979924707434959051014255176031390025521660299438705154905320632967791039553221348097800703299454298734686525548215542311814210791747798875709397284194811492516174666353977553100372505100471430988748394111426912241038827669990542065296446160445960126943748947002920105709683423648137792497201824440581950371807239671901309571540329888738189735304002883199390393787039456067289235086531759252419250451188622962243826634953839680737828803376312272546813357076628582266014378839583659270764558387267318422688309458574069253613574114890515069537827002997534037795250911112273879963092351008021295404878964759214485676477222388083516418397037010824131733578540544412195099765755151395930628893177879923690725709158206431374108661073521840427555758241458687099612613566277868669346336775949121038771010086277658116335112082421632128904725584434186284382081146756468725728909886613980946823112570264981924719392438991896289891272273149897343987884749264436843502140242286647565584558407964851247735768720187677162118738590442563113340712419524997140422436470989291532218405502358924410494192272365957212810983643062627623326789353904837199480908378554667940769784397017626498179503656188677769534938479035541245812983610949239393537382192718823887222606463391919716724154450913349124704988535397234738192818766164467578312680747641675060953723788908009518190710275014150795728246567941494840426988589059404468634173528224032116694168969310245978604570011777352511765028975608721578333567234418180788793990142514558011117688969152800997921209844441025504140086814828917935727464731843969841444688119357656160117208509006765067072807008847115911533095300822497433697022658460943333423815257054958954717196007480812082296788506633986836661322582727961447789921730654433392266843413064044724615473500197253476621875504377062885578795772730353460576796368235028589646492113381830198292976046737938385861653351365141235930398375402338505550127501655229710818368061221054297425135492073647260786279748054338922342410824387966675398837113371020347624162414915998134728602920889842253623804216085787566125322267659853941738841237170866535779860808814867724711999194207815147796790961266300690786065991940124556986043633842848751480669885384979835443877284984396884512486304251047056122197377138095244556376548335404875073858410840877229825175073892007592287356245782758852159911944971337098997838486062557032799146075211406697226385330710385687299330325241721923373439314666322812484301314313494177008858143728569004978938141844805902424664518117623097049251952332290615474705844666119311647084849718425523320654578314524087528308508714423063510174634055765012411288405608919596401845590172682156087282944846235263004996576864297081344572707941686971483675119150899102013693417761958777087929359571411134482666776394307510333034049767263339114963120754099591190891793104512172456338256051737770346458801263836705071192767411366944235264528761018394690548099162589857020082769077772497686978106401215898133654744341089982663654545865441651400912931462057310738006751090067561916386833998527490921090777089891180227153474384684345312044034108025304487670799159940163159905641637457362616595540737434733032429000344328324151602976084711191399065528062327325586158311633044173498737972915017300881768629504361201882589363233183757968674579042370915854073413165029128381291989388865703432930103167772669304383874451548052310666055723788938794214106437669540481336618521204742985387159434957980752440084935660015700754106910260441155792995951517498792274828371504522791781671788669216063044011673541954953662954197957616118409648243944361455393653162394016313231891493420060584448824978758955306830614066259867423216212066965767107876777034171778767928633466231557807906889769935521869294548880231462158536560331128260285379900554296343576884297019214684833729709293208259001351025565530383708054996463641091468928603265013767215681423506829397323949475765259269081376193446298023659474094341144448684057286681586583375390593525984533158963880445505035888767148683069961068875181670141438911238431229412197943198292630055661137458300853151368037372943534710152075971715819947629896489576491135925022236714815882651559650302592741941087491726923043038588202055540808257020545590417597749795654233527054947903281698265948299158455935913901210699039158764475700261203370438350485270910223448985827709459149987461969310066722886929773993134613711056121089034864581655605142040507574632020253463969294065065752959848266546394063613095972894629284404183540827466588088968415450167718585147547844119844515589288475007504882047201615236324521430859888743155546610036304153171364086124216676376181881539361534619738871295695118734656399787557974816957003906966255017985108897745573718842836311449839894265038203870064044176468243388491913071613299770915053837253564393875456797640065434573586200817504585973342567296807288182035599661060162399571731761003970663541707251542764542148255697800318450054415124839141740882786125679404445139537118825218883362980175836347793644599658695781192706970632869107625909862699320055094795962265871377271849879821053300299979283111777031545503461547068609232721890200474948250515541753221071694653936933058548539148902703286923980282497521499455566735620954390075761771790589633814922318474422102608103015744191905857353340844129650605217125811845929957542497430990788741022005804606907483414941055716671428270266302249098439037677313187018854179125831560964879570259855169579689231251531417596044430916743048674163144020398721715551248917239585864612935339458030725970974812469556628310678629017910278836629398009108227888612737761380822936997282181471560944944447728718777394051139082986320924842931085752379869529595394238210698482769482329483656386601217223694183505349373098410009373698290823628934121782492569580813881081775686031296033693268474066336697332332215873139590261660587037445732709131651182310215884936315439482589777870436749027647615067693938923040770368980456680572141433172010009249149397848361382083137627209097887174484086783317830875731763244591746281136273770608883685596198659384886966710298940452836377924712617499951627493391817177061927139585253879819781534351916954295663531527503294930610373641673081433564308428586377638560964280046118821330114587841545300049807369524164740516202375721337526646921652319444545554618130511454224620412308392516659143143399857249664318741294030960995135831576058284582229674804592232925461623841424632657488566885071353583044362770034429782062542351246691766192785957101386780403441964447173785078193232654584138093846866671305695842337312430825305991079691469194566194590483116210780768946480635248762371619771954866502326390712855531545600464864318623315007953102349675537980551908140647763968767561744658761407876048214343981629708956038484076303811440666531773771591595439542816490310213981428954785516045246626697529639465796334844670987696105452332207186967116789677415816212426887661355802940783212712265216788836718298894732960352535166500090787075604906887325841384549145763967666508843137073985276140525160625147103211771363393442036633977483709067523751508707927393816082353704486390256095680818263798390033225726269469371495664267447170358750233402879472733217592333748019811536372949669727939405477007978915751949439612961115003850330660221971113415498879201847901140694769154807591382241077979930208302454433170082361694020635688134679621357734141069730133135773725629858369749303390198164708121991202394115135471325137952780588259150848135177402338319310143199271298019348062404488803041716782369532947749568549183785926706779332582219250821383675200342795012026301606727525624589118073542125449680071092009319174246515483707630746593220698597840473114982963528526275777519964114254347040669703189910678780231907255396301756204726204064010629934225032034291421378289426027576711876998782368280325670505567183796107067746796740893322537473232585860581575261452228082401666260216287370314883747299539148051467445623195128880730836736932161482056530736303395367322123318692320538259868679221228321783821113654799962068236474338196518318877956284091971676274965791555829684718035593014343489921179063569462129041590916579142052020876486281832044483743424453595202906304541760960590107566473228612359017641336998667838918409966561462806975970061483593578229424855769791685006940843481144336184061329477387424361639270572352662785200288929376316134922612704704653471911214365722455002665329233733413307248453168619411125698360558466155486510474665426022043536764568657167412808560837735165019588250496667505807649934820913359285542039747410086404336043334611116813808875823455532586657152098897783214861099843823275375607390086495261032740094453032205961652655557611121179170721102338144998902346600686710270536666197478965256932839486429781174042350416437872789510566581037450885046654276952309429970229528315182862542089796000289661198036371297504716355060726857589692421260032982507414535866455739641575480672059765349050320629467435065445363466190135956866343871351430322168799433639640973390435236436655032334242776181348745850326969135146443830493407699995020591976083823724153634585778316208677851506132947692581460703158543640891879960145761712824781856381380965992892033022137629254160179568475745527283879569532988538543970203677270333739319565547524833871921254190938227845438138651142666768473407433585743341431149355102481477307320942116322214457380986230296031790388190435194880486710906833528331634034966671578657194942829743929075034227153846782332054163721798326536681958073680981637580401645627052811137485496230048369511532048975734151498307703180963007826299804335468416235309944287811242808044704366477788276551947776713567163286487352921317113473303552040644647101064555656439400530565735565785045871177556953590095469578364021466745351433309150505848596984365149698772126518595729555855605558295159424382196018046537200691555242104738075786449408105432189430859236001193855780141852726942201045948890304283250590406019322207123538584265879090207529482524937818665034224397052339887358619298095353858231373695770994998937624017442466508989406120067753309955018050004548384844827537726835849355564492630711270638418570328535958479565529578586878258789876918046844010351672370599311624841371712809670640561103350831771862141182620347448077822402154302934243154319262423659659464366385123108864506838397361206730090726727339666069782007883610255385422833831560064869610391776145402735519223826917888769157601723265977065602906380630562208048899030327798072330607062976059684298329470280360208452473186684549602484759279102455825982462593468191561919261020958899023104424434273586312784706351284680039585644311920663753581076990551218764111180975916583872090874401533131864455568791643224382834976514506659427228240141567818425082601032288583970256776252504995125237548675066126289468841979720741955085878106467319597938596102982343302024468694786343416510740778083245266489494769758095513307743182519986929839359593408819268459421525654862491072344723575441293627869794051873873249106165604262896313089543654691945313984032663123877486231187338190033243268475491478996499669542742978007035665982052450812246994842149551746128615334858331264483198023362826153198729593364800438579397292955452733463367653162899402998781687519420032800287181709147400333472600717354251920651159452449531900782935773829468819679177818301323435573256230194685362806636827609185910738696523851191470669619284340570312400462337063500712030620687022525787472651225018668462502618380892742420674761472237902598457764690425857931890247535604045819150999938040615324456160117674204422046461471085750562727562471848596432842819044640850332535461234276809273842624346997360806110222208318139021456798682908090876641450523363066324525909093779191121800765984283546485916670333128598364562972571877604107391279348259665967208987095925705865995365204640873977258741322423732721712254327270588321037805419415969788257459492189076665830315935478287297670265592790441350987276088015970982378932521441086520643773367986564487458062232266143491061666617655429403398756323518024753349298888052122587756016125453868711467408837695053575428174873596982998140935605668779536676676041822784926397249290769147666249316023106039294641991247093909672408974908521679281890888818523056540802180470644904288939544365379991078134267896594846403274506694316955659021017613898408930954955420469987511818615015224327545685058683573008772129291247787640419500279218240825188490801148772812107548567795268589718887849199082251798377114084660415969833385209196225894417351863381465066332473209663451158880138469916718748692463169509443488683414968780693673355283137001261112521100045447957583210235944235278108964778489885592180679693064693312866831503383273053877281911205661423772128475017929146069326562275774396630705584291682873314984224057498487008510983743730827387487703365036153076677097495044820737244394847949286353209598703450803826209257967905357872442181125180119945408991219163551387966504677839392911778063361242833749521026192740286553710486877372394932559791254727601779726868809155005715245891684128046003077747564729379097992834181662806083642603346363020836061728397177452872250364473379928683174683379051838586390842956354086014062479992904511653799570900965460665186035182174511838643239128588310855070180129161792634198480598840989459483599370415945917161955266386844998128269872424106007229073024784771208767309612527176405762631865667415680628715491874788514252961638899730543829066302823716332953466362780946661589571345157334931439800118094097763306346161061610641536766259936069646258791151555536065080350180872041364676529581933846579290638756258056561038130584560995932763347620835794118956255831417482555692277598543411524838146567326370845092449624224979078100911621113730312592942192717944365672667904852129042762947172934399204369894582116491959633591470371799209330434578820704374381564433459615504451906521092990963020964961960613601263542377515634922590345977965833748225437004442429271006210672236952518339075994032599090705584733957034021743685011115809431477439541334911785422164523238929360702936360168525702871674845878954666365738513327027034885836566715342816578795965878862225065175904738286334106847125979181552432101408975960244596555206942802026390316905816036236782740915192501346452534437014573525643407740932800860076233548176839091787603559275237942719068822059418279311076322959005584174611988425339829976398677216862466757059344927503809739701319330055522608690769136629117721888652235431769698472597164391585251613024295049980070214375223631726884254375746952328135906601442176593578901079553013575052225262152490006934265189991610867806560689720307515157012450576444225960524035818262683475586075765109724359555964243160489855858350387258534801729648286339489445681289611717900998397859067346929326648457037884309780660482012559085699795066389386338773829422892418259348308370825492252792570681335813121305849197635749785409656769801273409779998535073234123275949507340672148568524717304460985677228291429423570242462803142916205385251441487510324693004407022670874415156728607972155781922987952995430031498414011880580834503831936655819986656278853896607940154921745159294648229590339443756467490051013684074990578033867958312062639383244894591189364181603600972638865488078099169955827489933579851174323704433405564982772664530394221339183345141771517608889991594940586581012035870471647332603346840818834074059468055337077598237437705617456112030281051309596257688261536608391371616197607869186178692966182397348624867852159256966995084125735975175471208040103479000622105755853568605326072561268149629568135330653182422465760438184980621199227602607106264940471237025494891936902100900676279126951440536390468342755287601063595791120310379667830190623031618075288572977312314922926136986646233015565176009279670918859661046485324259705526364809446422483521159193962325819863501999484894451583937119348340419291227100412935614002152956867306867992591724954294030880070411369611311627222511572236128397129204542691479086976453529166086582299424319298788878210308066210488874628402166255066362418333258918013039179656803533072373853416552558313504591447765113395776259784088115832223769016417485682849758937581183606010119062429834891355380944836559049646945247828829056195799617796290324386387438222143923188786189996959147294289030031504293161470654067212705656044550729271167221223185185828629611990575541470152597272952706367978305292604373210149028074862180182757850668867961518050646086397410383431441962094162628108119894288179468288875307816196089811941172778880470953819655403679089805030415061316187131340835335971122712387754466571722425955198993084190031495374995523255601824724713055574336701743752483725592577867970530763620890950637510456930053620861774388996217251104801194785201116198279797254180126716243673552811628918986998196447636870385276111133121791323272015602569289289870611499972867937271724965586381308771208013249254052905811052280757112561217655607027337948678192301937878630771717276105455744392448746454789778939305427937758466660118113849723106103259378717359432412764932087239303764701604516948999767691706673677838641265470065558153775602929017542455685218594786139443939522268849829074891365037321106993098518949007363587099948208593123936228270715393369889264972780239911973468573979177360585616845176491425745474714891539351196366666603625690421093619965837898081714568988276278658379619416003045209977470081345483445628332480557249696118197084662113955078134849971988784437908451520477292931904397685908395568810265198127483083876373121343479748098833921756927327912408548389039480146579292871439445836893662136083629852055137023498741231336940514024829025254713808140302709188339579910897480701806222868374068411067030498597055324846463887387901126549439599628611602173001192809384344104416548122458163290044483739618875853325755266496553431178177680058737280795645698062850187907723494112985800615730635546435035961170591609514208116617251994016248040632061246440879012549303636584019420032146977007708354181894671426028429553442776461811703624506117047570559432560846110544037660325406408870167250474401008184718623657770827104031222995184933418219290290144308506961514974842254989182795322095158569189734835836867567671169409168216587242498240291513851277363174698920226457013603509363791638282216242500368877479353288234412741647742747329440460129481317014077836305807427150115091142482596837152859662686175835259493980581209764297430501066813477861036202643380609151859027735807228284739550569218215425677971123068703435222773443610761873426041034791488473021431125552977834852926757301455360070252492032227226517955071289672708995077601432577869138704075395411662622687688827834876002412624429537498960942830706850731163271275336173813168990822666580806867238276216832369408517789804094225426522538997922407977690506896690204428693945865408477328140667281887563553059127200062205202135631979704584005429588159965187169377026820432347864888301104759902546303297208795894042668617271621324455192890534201968408853994487667966657128527499875832505989891503515433212311160847277977950276329018974656054883109537891151715792937535747869594645596020732044958086571070091799342228949274274281714655253833433209544253718664875447596498960883050360349665694285115083541417250542364707907784460821865714827631699002566601162703213298769777098389103559226138562076144142697759139398467525784970516338925839529836586370914481242499184619253710889645270418367594654552072493558506315479281413353233502530523461169725261074195437558593373336916463268383100892258129849777859660345134242219264722637815392014619296181783135219117980703897535339394984492041109729972200538785206543431753386096113912579420737832052935343505643590729195558731119202941842026836078515531184713216494309960618021523578550905155418700184488441785395851654094641140631907723241185015032558889128428817885495048377821125911959691329828808008898179868555095966490443385800132263173588031193686262313948341647689112021437962183981200336922274176324346630277185034039925923587220107188743906949733552572161949901862900910837655550916006322239279622569209073197795856536228781151006774776679025279458188831279373186096467209218837122439045059234078205119484370594784007757680312674282803258459441391179407955838520911448652914209776429227142183273079351950577167621631555019001292748011243980446068727444313236356326496109231581257426653307186980946625531418832553287504998949089175113645337192119662033316365648935484405888929895660198175408728917158016192804718897375613440406666658710246133155057973177170287173106144772277809230723316913669075603113166138945412718702521848448010251485781896483485740006727647338910022030269287400615081775356899270001303794441826413876520930866555642160583958747579895531025099283040387142747572228461051217561717528799707904575586665713284301734077617177311004862502775822301352504872898803820350303759379101819032960320384468650145863633559624619079858677594060831343315626293339037816853603908947854323039017881961123643638142289922796451335011788237218388130266202630211214558668978284279176453238292785239502727778644444391518092619312192945770422179106746070204519196378430771771433502495346463702091756450166838859090283482212940771798687708533429680524683769666815414463171908134594776886645137622357692928164232980073891552420197097250665461130107252754719241826012013845060786828583355498482309502966356942078079988813012072196172310473409517696992876869943466385618997227633171638643824793329485448639115867277691179462926455728724150116904064411594488321077605073065415674549232231874095021011084052107763465095498765696216903700099303388963265262903921393824281644497847001822375179296259898537801455533299071160681880212198847242837038223471237613202192866929654317963081485278524810234064702038589095281564910523621639242938115538963108075276958214875517885957148193244409288951505574905991854482492829228916634355276113580993053893215169040605089573527372146066959484230708955215696211958541072417065320310094179620717463879825112157523758736306069857162871253318206461559316414392735454934161594033285285375408436921351949815436943368511744764088039967472640835617430600266582722910029196798000507403791353116916298799081783405400766887939671923796834332449704501890981067262777100178540907966234995699161449015767254129760840466276384644976121064001811657445398713944541024652061846453903169618671291611774077313858340856087146975877995725121443630739806978368048657331817570090586321723591926346393447437987351697674815586502515101101399228056224873913757065323583105446562200417028116193854038514071349634260318798805900643357331017534078826141213744304025059105607823655545858485063415266276365503996572048129166432725704134840238505464005132862112997084102455422557561781589169069254627501759476287293059107952267540901619335501577127179959746897353445943505629140184653158736423632434300271148893151802969317287106621702064631762504521619122096979705395760146858486275990053203698045766182750864603864770445908466855359924055222873149086534309042418908491382288786082652819804317852913625202224557169255168725732390500403328796115705543306689390957056318556589536803715278609539421800597655698214553252500105660246495551529945021244413626139639917795398605512967683571656688703188745072237220696951994121071217890649202528886641938292244359540345226813109821628325982270197106108793271650887488655501349073918515462147814219591593124998077460854193626641321460562474232032754148020936218560767734629740087232252725055445026193689248310447104894159841438825730181535042984014514633688430213522564356970942634304371532008371716618111712770303303086916156807389858896580052654604367931480614526831776065712637437847424222735359560178441931272121555270697250787236997027703913319064983053066423439711937140513954267684367384103303172146169419382284201131604681404445403379312564450891167564568299943642850967433900228698647478484521270443550601023473667991212024599072612931508545309379672850214311453504775587065520687388628867381565879128651082026947881446860284858708471997066752785581334979204278486644522410827831838455679423754519544412628970533420744243123020571050867204202061748666614078778464019716980163340933551252251408388578684127260678420277568038578695960680503968328857573213660329594098345753237133040162774278014117884946847333811647017700977356533531644206742113898766419486490027186558394815542658588000127175907569517263072026289852514390498047398700368051484653247601920950565266700844776678974002290560914581850783483382220844243106656508582650365698569286367370978529722241850879605616417455076121207872614851476099887344215806177061698650752516820730416972405382124621175071289057578377762428039283574505094536749296933247411012942335293530563668043657550996503184715324782465836949168023149878231869335167371321736861233523284060060310969494683900100987937915264801257937476486340680104664279077224268222034781386197869208127187966214610923190014335042724745519158397999021592280742119731271898118377526148932421718811990397734261835271043116460157134375444176110167527568634488037691872776202127435928939685638269500557800516077955510407433640728265248124670044358654171750019526965130078759618544822167284682782435571507195654272920568453078337640890013608856019582850884721890516984591151189357463535027039979404794152530373120035649889514552475746914409812850614754758446761955096700853227889443422588529660335050135585262550746882890600816823186332321756909665026663788287404133733468792682743468849345594353102936167134461610803664267178706329270805192530447171994410822299498661470724326386316981094178646466926069563838048108936021802223227182782117666694281683651270372663059343739613662550195454095098176195603860503419888351873534841772852318269247952197766932767259301417606855814097769750832467792956648727943195348246119025357281945222088906170637026088196099340859452879659708450443210044773825826242464727341395268864917377481335284859790967781731631651560979922447989247019336235983478797746420650567373062000659418519126655722087446409681587127261198050762065834145542072707525976974023402171086009120291161305755488513321115002992553405156791925814779361012879531507530089058134809986675746109368976572637874994951003392539631508168443874640200280095501100909801509978617633987995534657141440658819151509041245787096866160717178763522614758253198805556230580727731617433787281155405992726868021289583182405157176576425084756211444838378812828507700145942747592239943190414333763078596086543437752895050927394402960913646584677345120579182794971792299101272302530196340647197043742271682319587684607776762889885796324559387388141981169733496857701467479409944119353793473157973981629680063616943350658451647546369262955992613587463162387405273900322242095531596153299138205211234736742842162159857240239035423298251011304548727242059518905945153501573392341395701932097512219461140855831694253231177634262898389081552851691139514092001821298416517153391460534846768015195379544854313072175738723553542228439986405241427707209688393653173299442697357605527269334078142244476109909517027173881501087968664696545095103492406905958613062622382256233849227625603484740341272059090436046770770797572115052169441567719519483261333258422795587452417414700129040379779890046642339569307200680762266625472138122361545832948109390658473282125119232972066878147657719299496028958563299081692413067725571533942526061307564261341511512049904648969586919369873904034640924432183212317598887478615560171827964489701530532404030264126273066463593642350365070794919654174865511059499515413792068435605302355718660602593351278901894984646570329001307040161583767031741343983059489231783078227681719880351763773123167651370592344557787574406260624932553977672155873245014610844784201561350626372560959563708004999529017434450475949528925757688491347196509875746482747806412907725010569422432139370114069328059019356389287325288532674571752970773616095650059757576582816200815845386715010606432891051103532890891915955914721932898183012647371073414433899750731706330841944971326140612236659973801279877537435386498987286125027101213188328021355346177135738438478178556744372700754538618817304063512817573474796240460332969681027157894386901415894008044279119565137258760758320157188560260964019296505397524218631971077396832120875734753439162717038613776065778311473607164746205321083636133973964387143532536768740627385512169628303379622938776560982253871374367516971698763861776639171605978068463269783564686775122582009234655926220534220361275382719592913293487252972013677506267528552722576461681864737516878668132653279539767838988378712631487658643737082561204034912541558979016693129351127243574981199896030533766494616960699909722396363328393514949724266894951644591479714788359278951746812537060913108111260500104990544552276216487097726939502860173634207739482218312802934173579410646742293125916805065170384801917805845512283766283062509926221661460355265724053564602767458702569588564694257214356202801907184210805239934218883367903038560805943539457622465442164643885980041367428556507079368335210882942436508276002747231085703447476257660700414886839793993431586689177796957556726686061651866630463492844277236458227829953106190961584574807547683142700878251331108056294403058244671128221873951579433536944409195810422203777352226270895074114476228314779792805709248041049139281654947964745211516850553278235989398710749594921178912026860866046004998710634096504360606693465545915791650052030388627856458145834366011877023628929143344652994602597318871456079864693076276424781565619728128767186549989180080248036866136035162185422273989061299097676091201062808815985231207247098348758616413786789717632373515242637933288652189313732285917107934683388472569227428956933183464771419288015032683385956850707007409239370469693438122616954151921221524198517434767897944658207432880438720384250410608546168188086779209782928333952722568323644043780196173278813006879176049262740438926964350230817735489275982125128035522622741134218843754219265014108925602922585882728663027667956027271202230180478957908249616291254716602008661571516889506442035167938368385569315544783498994789420005276925873614024697021569273627724347727445178850062176105429423884135960718079434865485182627972736889738531773884202893738494656164221204647656766981193978680265821083463252002348040445407130502023263945211540272254019504195971211973153066283539194678827326779619354334602698549031980290028740214358924701180388056598781874382526335855404487042151335577803378431746643600862674309400767064906844302394073896857996053640735922290631314995072640838046191121108701373572468050684125289708509457996726756666926452713992964110214681192885037468013306670963862509456659199155774142268146651536256930981255361636056885188873816815890911251523352926132509351133830169894689208526894946018457437751470241591110739066286338462499195709132015878593640711024970076288410201075043920155333559561584414036100499681892323458924880071451808431710010564854142638384498081359307752725650324756983112223883489289770160800251512778871829839630767979502192953995771227177455107956517466174768986109417126415937015531436746516050441906940349836377578824786588666615644912257004302260414681689866022202128285047093397503268872047873292087326853870236267144304646616720135674290423409047448115963952089447340159219983882392590361964976486402567637629422083235082110615064820114510414007763982647896251947596869812524932142738805873200125023888475194513436024112489348749272148016696381660747670052651371959602114577149486380384211845550315086412604247581874441760511576972504204470140382023745879258851367350557047514109121218000954295679044657456435248027629152026664009256418655242334241309326186273824476894818875129059174482664049117012436941138978527004395904137400301966534842677233911713985339079861546838271228006554093419767582480121678707736149972011724271776457817528856801103100434597390697277240499214245629738479760572722722264124587340387826961121815658613265824240191634433173005600134682482257769586277379786459370083649211993727287155247698949137144457791883019835312023143149419972996523300105971636530425782348248487447728609738232677831962418407255490001498962205765169233652390310868083386494031934098013630776012922467903076871266735694258377203082257441715795073885650923645657970554488631165774927590596262566630582945722519210003887937883692891901101199435974174382502176470144384055006553190970181323772365523096788613454074536998720295643124040257708465445164777229607369171914045326379698279737711000450305714423151297159463884140902586784129017629610865592212048698171147949621001946960713961307857286247762658924771248017713104187646173613765216748195177248490430948595815364672145460948505013117738360246889375832647731241557909667408998792759380383642550628886111711863317519754569817120809493101258313915254230517706342407555428819719309322921802605570759822151159366774371155542017898917238342468090646647912948538660147793359001821936818683108146471942737415202986440247626504614369228592006308950155326003494377066362802812886048190506411901220566462778656770911328126367436807835168121775059583326433471685879263888230079573549026450498018110466352787059527074884522191675682724730075890844374019792195104353289343202771285915746495217930575255356950819527473573174992879214053612269405335273424120106428425950407493900841996337344305723298104237702510932103300061896757324933748459387296596750647865793088469292870925585505450478734806010264112993922017106336259009906162936501384532055089395666132954560710846777186213222141768504516573933979692487829863779810275537433325706406419844339284455249545646116489290700300013445230403634549680508261146888476372617883802360653469734018213200187658332902659674774904555668402549874063600620854815298866395763555501495452621883039297771768587095188742376083047264183982607800802743977944732776753487938374650341949480077481916341468002697834164118860793539628851868692854899202870186156810577501601273810305403763770703697355739029585874036863313576430293074013808158201898001025054583053622110863406101291310090973597183360106890167231988241463140717689606703245433189555780346894576184617609817165583038067593269944543206234836572763360153132921875242792410756563367350807647231901615628999425258246340712006903495083507629633335690030613133226798705927046540263455839050102232227328134790474942515472780848713447530188252708101936443636005491921500226080839404180518986058241767636940849144886722280018254578107875363020992643207340092837339147948802688214121195753734997648157096021570716207415237317720819509869199298571288629529697501370627415789485932483890056041215255422717336970940171667876264294983861570044236590787955547379556792010657974742093445103644954282897594874669972841406546256454771592949703474298410932189205650671707615060846985321653882861795059561773138668708045843366412910632452505407438844891161383477475342908195350704604860973135509295059287801508809526567672971788654187827567875803686008733354225314251591186426493580089775313940130907974862625513893208854367513053936027639886692070059215727890378637520162033317950075667380021873224719181719740349941845776227245686181146515346987727741194121603143776290780826409741492415643158971944289844554284147741880279078775740845717483190130772087573936137968286956272084006153665170378706622955204011340686295857607156031069729817545336795438240170887011690989626199442537697038704735304346282178809348987037553173516235917805047808393341745955577899755038693350596844160726147660961668124348553630808474615009882819995193597951338423598217388656443272965167344925809747423448206155556891584896891140463881752852281637158623072570749781410323982917144214436366548814082316604241739087072756907744907475342590405145664837475506411663880945578825000802389779030048823311785359481692401257385137737691044348781003628453364500822683424036775625830099538912447585880327129044428887343913692228574042387689059691886170216827362629095495216000129051188845305190925608956988926284314050092858074606261159107395634480340035698301777617743612950418420336694144937727808966442463600508914144400282640699707643333210989572461367010044580720923968252935201134580276158955846367726994280010031114999442347556857714562227510106831087762305062057272082465258271664038950900194877808048802984324502503104669725264881982488137134242793349716265422118359947055468893647602165034761648705493525639014304818537035159123417016214850541587624080708766053076401597109775236572509527226891782688272675443491664082433777765009294318380174564004794743145582053417246031904546810210148442503913538950704995641220047079885029922844094113554713144163209423188644816087778507858773125309737021478840623902995016266363604573609162815062175307189224557036049492944274292385270920999411632227757155375478988085357611757125185848245216402872176300077703608640622920361704998136113294608541141030401343558020445712579301055956953633663085064237689792722348902715957119732523886226159555470036666048442875390191825563886013128197014972034813400564629993263614082464098262001405658572412948844769476330404116877796091296473384114468766853815907802040253760463175283904619162882549398100851913456571455941612296424108289676727051706069836229924769518235384605860459642662168672762164826594084884968146525735472948299846174332424585128525754788768022741608448886403585170148660430409389566260161775592797074265043009662212906446351180188737724940713126633682291650623920781871970765461563845323715153711385639516918898920102266611510381359449376668041968806649480316836691941907664158869917321474670248059973534303431428607299373640071748118310057024796469474060202247686422893348418337895768721195750838034257077600663319622343622741040588524424828520094800065615177555227473183955322464387864543465677518971448099980639636032397700350303819290222015857732384106335876536526360886534897088030779177389948694402296520457670913468859317425704824006315004572708474964240166293439755888657300746618647251598894023207613747296519677744706891601676642302725597596611031226073982993356158977319482273752244216737584767650879438462790007256311803681100220330720950961422819344715284131709476324728121368857421097892917624659524996227631960236187378008582196963696605105866244112567670413039616989835755330784463877270196565316358391904382218162235843617253446638082843738646723689304999273982527203045683417169403081803182252107750949121842768968201363986994922081601117212151799039451074544282808526976989321072673808881051090881150413719763572831139740849289452953179075003066530332409734426535969831205513875064373216442857983539020825677934476580861751548426331505695724527170408874210430488220176508121351266662205659387651415576662552219737927111497522870814811719168280595866959049472678116770137366642645996907044926824532918909429686130660695569226899357355062302130462500151754371822777994769333008349672858108275583137630752733351190209942707854923318208999831052503304345463259077111050130294406632674537557675724660005564664493385109670838260786341314276632907974088620123790335564075880035530206007439467879416207147295440218130485083364056165541512099282987288382930347551128779488532200147650680806826139529989558016070143700541937043234417821055649740822943295045098951644218611895569471670807871170090365323228919911493307357996704158426697654511046659517044825074502188616689650569315728116912188050986319264297963641438646621975835592476819790536630781820331066032337586103863162721000123433906449034304732360105902392998653190579846982450957026173671157598678236685899435506694271163242522774073520044955838219224701663425378217907699112185792489183557310876024542771387615438957121786044000171605115359732649425025099686519176156974837093033550078762528899116823503979173266871543558272943267131809741760429060588381060160685487896453326502717745638093600518638862163024044296826434650914725225905692377229043585277456602578768174783433399372862104010639021970933732470466070898702459131383584041563062428870588986588692724028229659829142654118068213463080574235317659537781710867663586808972766153110561646485430942004359269968328708315619042185450594194599360311082423733823726429666442193100309368122682958673380274049635327954831657087033307411538302000754009090962568419871693177941563717790299986652374419041263900576774513862049074012176785873077197881594976796348815518400471326883107372388582276242086042533072861747007531486025471871342578457583079630257977848711466620726471070618486714614293620688109291722766780192338593849548327607501755084713097699378623964606387261695733461614703447161641459790686263023514937039548044729842929449991352534484360900988457604606109407487787071064178587738158244374145186000581008819143729376697161555843551308985542833699441193636793030841308192677034279667425909969130487018661776770746078408038324170872445463912573422110344634421641813789190093171494075607304565571851881684151573494670272853074475909276193950097523691457138762900215890329237029108033628275785760313458810355705540825905609191843906905918407543747897079056584122868269653612849209212883271821549662359032019278839291462324058919931287235829691016127138470726674899779729880288770808942236450190001386789835524668799197229059408587232170223568199508371703797678259585880744895294637777899006088488336032721318723126120146203465832759045404463840783235476340059048615372905954851753840121081311261867523601976774986841191499322597282083695262948463453798584109131707746567144469745316787468044744868920010975620043353207160761749226375302068331076840380440532940952739401272007239310526148019044539673995416801025190037347208189124882087901244040013763618603240808968741795747135443118557779155762098695980501989702795198202288330053260867020111248108849507501492293927348326652977970515327566770581236146734745762347532334272467845025670754215463788196401154112325533696525555375645954853753847239659313512500039769503821746197454265427440089266318375756059126584484998488311998617668612642498667214911155443288493629724515772285489492563745703364776306060245394859846979126043714044391068782777232752895545706965400203503244850849582459653411579571418470932318179838429575043203404768123195645294348933370593023011147286684089942276516209725554818576719551922257171430508118343949835059455865953610055231364149727301320990962766176588446306316250335414717543564694182903869776446746364081520470295998889360568486522761971069585174626911680101337127034457324801957748425080438630490620669994012595716893876108318204311633676356609590952529323462444201992697273233356888439907456613988358989096739007755045295103765062597827697768240553335920004648789820626795406219634531367491771999476828437851699017184902810351551485119092791806889417740118524489391208305504609300852459778626194270313212340667849391833085706300336621160436387713587248974407216716782858134452137734445344431064169607602350691496062234603978286770904446361700484355613809366692617749240029023934632813921210831347131986992237074704855952784710195865140222585012935507720414663397350385713412675629535569896178030177852275138445229747902232566728783364601514333687933516986428840792096712297269864805612259580916920405778736857606124687253781067416188700543427729444293148435068544587647211357570856213029924899807229030433717375323022130613795441976941904732148075678013369812298664849860749296286489571496596204618991354299322893532291376861671614222753316492418107719964723047819333870816809364564644939086530660692798310483381226499256911933330358359759914892018133179351345796530220563480434040898432205203812362056685806672138038252901165049120292461645829642211351550360142688089650920882911839023057308537486965902303707779184446802296841010308388227236445251479694334125399062576304427932143682562083469221728263522726028875440851286339353390895447689350926877443209200567607363799558913031739100365025388627623106803300424815853477783510557616757285081009754701119619779987500377648839994207448292066740013827457768107273920197463231876680801894934937166930936360902302103545937191650681270577800167941292901933047104637999492396024976486486868092605361088139963864846041465730210032371567186037345418082553807773975350515316692868017624498522544449821932683680569117708573667208401630936670639466931549336618558361379866876134381639062550859556581017300558114295553370365549597241320039680289130271572428790950865801366427469183861870990342337342213550976748457663430557139840404539459803652788317792882824682672007263698706312266007874121297030166372663178414511433038121826695936668574760539395974032432596370078533577842299531871635311218047602652498421203980138729502830616861789730684241262591506003842963621114152469567260611341282663846741397641902576496579724380755091793079186932427415777891960912759979788234462920049603521886637965146374391408212380350162586796676628603967609186622043653151830513138239385892256729666310116553377655307544873343171819561777718484129021077568751157442949929032438515150785379080348999149712684739991265136454032924787702679903995924132599606033478712729250112338074221676088753254006138302071520708086913741936220082872802793441207741650913813756838413279996334767881838287382138775202689989650447977847656540508624636548182071168735613726362876748714324388917267514642521044033539027382341923986039409983251951978086215704166492198296887810345174737337102990371018371414409237739498142354776555125327647961259468710457495777854291450773208268722800002860385619572544676654363937725336595775641709592182444910852396364293340215358045605665758197415757119848849039029463427372955554900682001106280375529173708715767445412238398119359795268814198241727984638662595520209363559629635602309826238483286257961077354057917938350712997294568659228688577983577445523463035785283570803955068539490862371232620980989986044379762093287805988164113876853583099827304856982488806740479028639970627554526109849097938892751632581539959720730645454608789891055146711374117122175886405097362460712465747146318573485754290610867391692312569028654327271570057067384964635265062585985971809338000813083032765775138504623186871482913081691255708461938049401793330823458441868904716441410125567504655121882627707100029559379957246032031192374206022476414473494969895674179621163196978548881208477842770536416054977014974604633738311240923459378052684233474664600515749912186495951029370134199628856006416939464429695217906193768070346758266010464744948565401541677167965730818161789867527700054948212117033674708173639366019360912079660469316383528485794631702905584478784348034343214078331226636877430096647456658247470336784526170831540818700288311846420738249164201030641232676224164229556601010920368577995146324763620980062076603954554781412040032416587225529853650304961865506342286882643103871060756046758650852338521486630590000322828754070698407618465016279411321485149922764221203526987120332697746203152416695353981746883951082131411911269457385777156897064848469486210740030356828010919531180622089628551056194735997558462438701888731822606853388685713186657041180460270546454311276053426023974539031060369355287197399645931693547507503160592115125037015322202179599604798314414224647218486037077683492859036638180535981441375296794665323050807465103653851890758479960005974699155012562282476057656297577041650099384029675137112973322053911576622212033263744426763892067550279895984979675402202747813092106562487956915820873529931506718669071540842655920029868589977583678663497023363707265142529797121727151519009239509408127836224967566009676469749781354934448273048981268567944750488543969771342117569738086379384171449065581467565580007164237107198516361373538619733831599752910054380343285410506198861885263667684922970798650688708198342202483728800760831581357286586433335901785361385352856232403328134760306340931494830373699761724529966777708196805330881449534923675622930883988655872169157088673654387934346504479128669725245409252911020512667110942740917099049472753674250420137678565618890209687505928278363963316082464877882890515091244072406867538194294149884499279987455313579596465843039985790211988977917378851565742942090301311444391291360924849376641176261481274093923537366739167456762570513683904257316501583250882482359113761486653435793297929766692034450778031946137551266863281437174006311916198390290790736216384520370039706123508356037840966248322273769847081747427658466418485817833110709877177175510172743456020670873383129506954494787357050323110855789586161898154516498117591906677454145201386790006146036790746414079697738891725365101098774371397749049923065356661676850633677364708553387162639998583987840890746917323031081732430694786636490551977929706959565935933670090511884024422469383959048446728300352335238678565650894707729529219101661537979414151752138495471751069611572494524684505728757299628385085203995106767792453444060392077136419838671714412258684046944046117817520017424435784232197609302639783438110065869912224240356224510802252407422882883591967512773088394759550575618532751497861825759128904747232846014301551754453777085579086543043105483352093640827548069032045515685252919510645150072044304963582014179426157526887949556635782524162061831523624819431620312178974314871232327817779488463053568485675740598040583828946395064257900753102058397137773844412660382778746960920223503113750027659181691922822179723884098566316627969393147264057631765240624748866524618744471076547329132570648256143810853966146794384542162909441836092841534921396932249379283836725386311695787250654967001084928463161375407246171145786503938825610139114617220399031765911552588896724305545749185405692194355361380826673144423205164058475799789816282758702285578113473740281818536860313866074912092290192348276537135695323577737507457072671021100312354993382111352706908302073267244617340770157898541631743764216061820692288972512800863579084340882559174480188370524462089950042935076251640702162644372651219583878494211580621966556150116416844095949568885234749347146953470458981993370884157976760217573538508477448433294490272084782363645652277067977774344976039424934646042038164015660081180749259022794899031437326962530708318260144094335946776927864911681894058016910064368596968235629644743361712339278148220637550527006716330505711127782528770069934319610562850228343980980232230347534336810705646509784274556527784200663425035896533268924775873087542961849463076800747582638287134136510860970167982092177909170259343217828453534518184942487558919405570875945192153721767454475186999734406726617188064977111071886190269452092158523110610137389235497383360620553897357902699449627280280641332080077828609458095518349955419203281317719026441760440958092594733863490982443764536688608942702793956344964365434334137449554715747390570693437335058602932011971763212315952197086678103267602042308636393493222018916397340642149988241784779787744864234835342367260971635573657852690105096818562754372428711886784721458906819679902437380523859457286520322248954831844915322106954458378686644430064298771748954863547267507474792835649133006301107936576803227438878808424058493350678887714637087940031767058195396531429315925931364266917918330490256105002296274395038984911868464489586314444754330439229988426472888731626408381465868492819157318560361144308399864929127150556841779041608791947333144911802836374197541442158568468249334896020814053914941721494693543798401761531598882522509211326807238011235777967614255136198866169500363294177571605101784461906574717239845954368941358242539621898933064920151994438122846092264498423830396307532763290022591706457423585412752811348580440949092689252020723145588965824564617702717965115824314532411740746054139662564091090975506576136289079474656431757325930587482682248831461301641132419816536985678957376712627800712992057708841632393107085778403918246558076912327980869765115095806387245155142769585382106814741224358670770242091982061652912126935966500469652310627026531342993766651203584420153328922317508566475545327162757649612887439811877791701442997639736236229502589422130662887696022784404226176582492219520913904066832267962029193306703955680232997122891243765897199908008897869717842924266323563289305688402920137660076301954035265649299877556168357003125697509315391970610834684981688666786612136961954575988326265048645015301188295085957256344903556352791445019139139187464683097719435922170692492596544545732821089858790950088247525759444133790484822700000597753467777671807790779984123260613771937436444580106733730287491836338198623862804291198619067356132220247330161011093971567048674850771632829109936560494939443540594769319324765430765804979180249227329238895122673363487220808406922039271991015773320644545640923207563691764185095051513109767210155284082176140898424612853899230486873793941094852413563927947404946815815797306659742634220091584890536566088840460199611440476827211907388926231134422581136865587673076875725106676991021658131315385402934848269241903522799622751743992877757854000829002521977004153754052831362707024132209512155174401351198837825012996515788239339455237570480275381057584516198866698634563010898548312194079404828287019504240394695568885866215368933400007806391939398582507122710977958314182344934686587358755155334672220447031899649695613946049806092559458846847068935847505888001459924904714199034767453688596372550402249325601084703586131672199889194412214009747060830236020020884667869464541547841391997556673672939361166490845484143443344449937957239702028526920719091957647974364695622643604593332817737627950894336641412312446354375150882380354721034985162405188397808838816514901064766675189057592911340557001671595291225214823181587113469902216897868788399417677310494198723340839495296718490454893091748809214683641673837216751400502059355263867263836249092206461972414659960618112694535005932415676120742838838857902326713744422720173325077926881339180686030355038935962141291643406649745993744946656625462307194775163465284162447213930231870384308493200206134353929793459113092989421235182468495547882384544685364707182203167118782170798131699053010699770703125080876797096452260607114968972022109747994562797553666533590208588125227028983959150423509860200787691240328322187220559526403008476875307447101732651196977511374235329294711965530416832586974229622361334881256307610098583897139419675068684050571538452663925677763361871711696359142626322398285879816313335640232643899632624697429690235513273729117565536854627227562041218924822963361244162285195356352255463390685244667948907530076229041296894486108186747122715539413855372340504598504688582218720841141932401684399827747496679253523060653747972849206787505610137738101300371879415953902136690111591204677062798941586572178698553125535249583311731600923148624534936472350305110046688735871877814482191928536921475621337039727042139888669585368931291745968638709544033084366605708105604366310211176711240922641019276476045774737958597969970528904756548669442227568785428294045536368273662012451402360092584690696200020216529744030439272389526493932414967987427085680391655136128960350918037923565222097094066919598725102758815368423402454163682916553958141124758452805477275111104813973630940466051861354568734100328217032079859225784043778091407818375238031950193475680308328725645366778870531708661980792073793166896800825201895379722900514733452708122652951690221521067944800685365313902785200501656761733269553528316277508797542475943901136383956321305005085438012459768260773951806986621193326976564949760972578533565047422050564116835112824849598410183406626844905922260280967976691072461120262051582126868354837569909051671192658566504106215900896820692068270018365000800807427827661093319974310556485220200785482988288838848516918142830335740617357747182946628803807761142703118797858524839619305422516524036843470469048857973589444144724709646872329365873768482131894284927795234350858206255182780319037326956547905690455297171502845451792052504249849533981181796206835869242758047721530929538428664178078785601540916003365083474083507277579611657681007000097025758269186560017517555196059851212878445695531543792269026586959370394906169535075026157536680418809772752888540385175992892882183136271971077365432114170187242655935964554193162550256185654239298636584799796933953689906683596876140948577419591811028840107297484463780342472431293873695667014300614100602393125228208684318957051145981002575947399874945623207504004844501548372251359679455918771533991017001164716496374575814656287637567974388236403393767948320847631274254591001912378744832677336279987113379064257554671020451039566984245842520201292161994574173571584967881524094860077793924994091901705482370223439208079863971933839127160205971716276815825870000008345478647366380389105201850581433153643601489293040448970127647760670056958263381016827259555426508222267904322989499529536497928292558790748283192162415525708535801695279696461035714682705703989520475232220707809761765963421914537266709446093677807937682711979883135117687050791062204697898928113311160314972442635194928389119520724454958670694792126899119347746796992969098713032587413472462058341936307137403751969117209003538688500720633440243910791045162992709316658220818055235988853554966794017940325979554486414067619138282895399413582128998224709403055246333363679317061091893692546364066201707804931204833462719547593288491074025438083683895790948850353576681993015540608214103510819370091623778961491664743327109302731845772413602331591567028384551604372931795838268058570472467587475808241334818826463264895486447124058752482685466899051858219476166372570519988909838870480270323149013456932931750656753958243345491350588519483258122122771468617321767090404361129439373936318803519199696965224195518845795679173341995808557978287475013233602392130622907793729703166375972540308054439220128679038719232357882036892551836116312890364593454924430834458504402612688592785591708760907803938356175236456031157921681520096722837973794072955153576405615570874204352398524561766288359744267153752521559059252495593138469058041626797098002954728866589186026677921214918652049380392122155218816867792242186900881809766465094706064257217315668590812777727752619266592197027326895892376130850267139026085977712965553869436204483729529394430093185172537970895025196157503352960099136520825120465009063791990627982723108093246788435430933691282282629572173841759342399803290071434949869915520447016215947904432463195374537922855041419332656211792242611012258761231281692720025604029189923929091675580404649498856175892537440196378327670995442883319546096931107479281470119808112405674855096973750653616674665118753871588883749900710973058088045438814010247704687898781381889691437681010318022837247727773395841221188100148663220505632189711670433356350027964597186814179875935210306172753667457765376492089417576815608525299764771197761472250769115065380109892167654752386273977684858363503079225349810465512844554264481477536134917902392683510090812075301318590218073100695218068103571021983998751403182290515844198637584793865769599296958711353320143756672253564508586698993932400438285598193753665395655712176183199009527140918552217199172339358566222202351954781000199853024510500615256163670104454108446247550073560086082181003034979108844838664283138463768988296484590655576619203818226607733595669249963031360022951669341294464918735144619605007963283408482224873405487362102248826165237433757129463026540147668546741977533461776273249227244411949291229981492995067146010163445147641706683043249128679226147963813725726192705003431480824875239562312910620971534441388940112171339664457584018012038313141490752154979534345067643511021934672633448145947538685897267396136032393839684115464438278151175185169744823307762831151568204430231912782151306016608823816786768373348234313195081723908715409069252163972338959641213969625647927834364084159542432375559405749035174345981238661903130572563345498119484828586968798445473858266127028787300498844230575465709018787642621666411868589830641687115346886168953121101249665789147659632733957521322761641593399879057670118509634585413789583066400273249814807746031335233545345659013953742974255213218214633915610171576518872858467343738217039968232910260395406930946038020470725219949123668607834165652851302100330193467279457704592879619854733893280974022932028950637863604379461189432849087995310703480799720851733010713688282192159124402143144680171757798898808461726349961814013020039618500735357735057092960020651365363607052544994723715119386301562334797867376680080129865723601030447356338887851225243436117137561629887219065387760310301815028891584173389663080602028531958009299175485716509539682874733117685804861541960068132478075689610113380944916483509676748307481816409822214355365529539224679055154985370924604743678638139951042268010237367007500422366376188541925878455492375212746928160042963311093579007848106433760736702246748182051863408301128648697369206338388227688231368151584050440457391687690193428257639859243214592782707995253228761952873280899912280987353561817498929596103055105839340091016923676902246685143293028268722172950119607695713944019092751339381258887812001737259582358786885717659832326793871189396820462765239270904895163863094874342909938753982340163691934015624037041492716945230695812751988238304726440916695171550013396178864853155452691375027777006928334310082526315709230173218529579264894303049294634761184180335499383859001968170973801950928519385151614667982133017671373360266589743336791916002924439034384252734090686104785041507533644481723440615694766655619762240362547246887611967107753690845456982651883788555534911779200095675546806181225836236041111968123220412649491449595821291606580789433837913827058311557309907010825572619912336984277948380851797498413251580119400898633821571471612762385305634558593495271318622889718340548325109740337058909803072676459859588928678072990029739770041431932202772265076925681462821566220453490481773214615332465590587965407225635491368462889442091645830024706029861331584222292663065228543977222170695606255065434674516973236975745053904444749916245464571274916551070522854010521806586573561605302885918431635765745002629941521281798755271739857748148237738518510417772468698706214310587716066978781770642023398354092431161059884986244743623779551157854189496781534011741174868621569664468654590576728810424774757835578808520278352369878076991166798949463764029744946881539815186727346783122519800445167140265385147592518903923266766327324524986670947652134900370891625148261909044854605632757695153282835602376551742797972538880646888845746621413713860336978986356042669246865856480382060632293123879375107222838331454574450093397040206863807942436599306897755437149609337354335618634011215026883863413501771850512436896467048582973979772974680966561545780148182614473762384169320521762067739235133383247388516192487433647863007271000914896160646401897757380380675256032384720235168320962461943081235397809258663515825463927262150779636939445001024475382084796261837633073258314031919164770535189123672957302211174938966238310478566639474195989175602948163732397816277862239305035497847675911971624257224555660989857648953054985658213475172398494912456425728772906143096337603283589645255350132732726650989319978129533248735390075498744388986295655649761582929446926739809577859823144671927290352648409234328544538795928343726612738847152624946338190774084880755127602859717029209100355528213059682570834492357084055091410703941113160479984446548982357556333828647296341990540837512414221182442954123399858929171758110420418361834037161360443991502434590294921326006682365246878820932937211167826127163827810118393764565467989577373227434701929348263443824167669288589164084578260471734673819607150726853246911627535533155845847356603418219617077579010875855880655870828089953852374378242033092500102681948035214552347677957286469940926258446257124055798332877628811658126836082902903262809898478571511671395610420139113028060687308724091234900155638499153238818911452410971993534442557737089641038668911245215895407888545084036866133033673862961113552427212524593890739773713247350845723566685152407789446473262162220557479594113655597780292670792176791351936987344774581757602630728680530624585051473744460149415256226628076295338049609388262952516160940796852506368007228093224795440777641570257632506011422660071936629842642541471340678750988619267600768198864194225237539859048945300261662231249409841301776504412739715841902699994463313047204191457010241306424106533500422475404370959719136740152618622915283401776490491523029930378335428289517714253598925276800227733670232802891079267490795685695445046302175949423756273753142220501168792616753273227939257494242407437615835969480243306868709909567511146981678723118126984582983794820237432558439804542260820932502683871336948470380453445533626302735084162800743132882609992748008316470390485671576645458976415881235815520927149087554064991650736508895246505998393334701872305526920268289259255651686017552788553340251482913376538017096462953489569300636359719966186778979423189565932454464141766670699629783618128136463810795693460850997789097439914458986500177614326419639240786083098360221482467138864139388324508743666397946536604755452757878501350295456521287663077145963234811276276379891222487190927085475231917227613682170705518709516380119693305561478351146547095809567774050140417129330470210398430407576938140245127741069915245829369498280908960409610469869646785106621469173235934149777177075126719878985412343821323911224708486285647008300630723033008202735061186591926880976872652414772772676602106020717455104329405512846787452531592764385533721171099449621272559528541291038071805633640337264503487844893398617057141293667037124085421353911307814899782696964822586187407544374196066386484696901621034975650134535026502634648811141963110728266926343613514859078923762554212219321108689264712219881543207704589930388562186997492726420068343540091004344987851616986897364302668026105447109659988426747629269110805474364160551116044826522554183856308555175761386958922206561670785636246680976768664443843762188004015589014667827226017910593866486036894096594497735504000234126116387041875231874619953179188946493849976979627566809679265627380860915722621694607055174726229102983192918471209710153709444052061636380253957407418099516298229680629234990777423417222129570759319814824472513423578086865501774475216748289783147506181108405991687581770887129356704043297743501547958716194751251489232652724348739131944946556087585572935252434605712081741022413864414801895650613018069691903763883618485956071774337367831658412785591835584717411122174447048871797811294281203123867755717196301152723233725780765130801694257388091528709673373134678139105064451830618821322950114964562642553226963557666547839198354759577932537496389474335538119625483699283208655230645706988518957534984794110895649577412046597038346448213835272563693278157858133629925465310973262908691903770567310241004167642428412557398043418848664245469716348012062927205270440362020230456276564928559688617057146575584677324079142366457743075573346275721408275497626914140127508242517934111575439260421341580768693913247677299920013917487545960907125867630216807388055553545869562339710528602243454803805963390166341739784615207435465048375031112136871004460020779702081691210622615305726643823375801234116355775991017695881812313610103750810595418311733989821871752483911074015830294515787599768793965828078645955825319928555801376334505613829722079026861260373325358980683365012589196248555667309842628663341726760891085108987214871751593032468040538855009581527128244202707756941260799569872087411576910076617700317135771477304841905063736207319474313315013968422217323394248405663268105390783695891394878431712264995974231817835452101697720480550874075878073826905265417054955949669438687726619737864038170230339974902695813362172467745011859244096168275587423332334265982128660944069739124538449555855052358233530438660343824928726747987600994487504330952120124860451119948908453322171315074730120244948759602297249565910105707262671996661885136362541511668448156842001419065879813051620402034386019692740344409853670149218134035378658536478476582487026950678318762767458465061939999716369059555453261645470225988560771152581540850730624981930317927357778673328811088432963957631374384804803622993304270947495698676104270039137520458555766734238480145400538697261675004404983070962270159508348593871369548959190720824486761485674336956717554875865701129178994018267447532986334508107456082033500848944058497268733476658926239072837971552265786828778980952359431515699746243753075364588301568124085367397582316859055447436040404170427562487148104775403091560791311734840086152599845503516921014933297025688499387722919455725391004096495872476267672631457568349708529425456326512424064658483209365960697274341972712035904920013385096770159978012407791980448756728945224101074427199731659359232471925068444880954986642622319342589356109794006456594590808414521265122129300533746192271417325486153848262195812174310085336035526900737959542423136589183095120940776289300033064954977417181733604412982942925236338645015846391729082394052694314228837613235443254010630232662640443666451781753552088021908227659628283836969103634388480988691625380976514267053465922006672830950099462254042981114201704116020094319415446230372665420329982195776681255239422314397175150290037993957627202085268925101738150336987241937308275438045080574634294216411025137144985325438375835227208146377757615829469604033926607119626966278015969192839311326071971008235994265606039271059726563334324233341051425240539339602187168581487817454304665884843957177412266365298708706824259487222552198248933059606875412186531136316565997278027839730901052333337857801817639809846398650613540114555517568341871696306255866048964692638014459757137100873402524668982502954799779846873971121619743173189065613892471011542768414406049810441889916967063433840267511227441287321305261606821329772537603285014058695854357718265405732827104793318939988723782524942977323674569344094623947688288628889182116867544906292722384192290737607288147629936974115172088554460750111085129805759800800059961423923520066038735789853623921676032108974649755922564277137293113173155618185979409808087112185282492644553637961081927642002685352670684661654164097606041814153499532293358709668899301991760304574796976386769917815721587771714104544450452528524512534480045268047276766130249902817367932250355574596512003132117022411860552903787415361674848138808321705953480345279734526196163375497471762267269658530569589438625332641149046100483682233150457477737001450583072617789586721076083095756442942530168443400556996878208865834668489516088821442919362918671505705642577576056098474681563364640016122100356167827544431257729624960784344322454347149232938643685159104754035945215444494195699637480627452188377777152368432127615115091992327963194073480448592281864781592740287456966367350402003702779076960631936564787353975905937947459175339985385154576907909297111653275119389807952678717390482685130358058727454634125185580946466290345394690327958533243749948244729090337007158506628801735837574481814871777154693006372991718346695726631488024054503061503550610056085552810441639156594962586674156527810687954037101603245833451177073083649546662846938031188674547825317079976381440241058442553527580095844814332377459023898973827333185561644470908454782253887873780927530592300534146265518615813007898261844701011447879732247726990133082063858606537962926499826844588865367302918988991097832264650699554844965958675693230192817061003881476919425915360227375973533886810022255060158175113254479245220187670636769412724479789669835078668375320655708648012203044618334284211505893599666193517688453606779279189431474584749585316534600747015984985535970114552251882004162710019100064091773219125282731127987242195516079973787855145030679156059891748247079158011788146601148217462216716753043005774417775132407728822441493797567510243966508811996657456073473415624709627742437595119942418083639307813617883354772870929617951700797455665086947184507033074100105553594734041995778010240072552803593145501142459194361254791377507393128933729775678562594120065616508318727299454444870067112260718139109885314950145735289230386324814018707173672618084182490127758877372605339865385493045041000443248324185051935635798599060733598301528977482411785919703016126550416225272961214959621551889152869385550728264432189064447818731676551177197182050007748697646389010250324854653973308225548243702013660347876531265041605039922446997456200079983446563484928558260527820868026851809553946378538627109084024260725228840796454095523307731822800951368385096672332153439858243868916510293980698315878184959031321497593822432754502068400861759925900337137365742897822445713017009560379488535563588539954805596794400345287338229535206968464623459371943100872586738628185632452591042858606307653444183012633282955519081701096095080054512295303702025393570020669943459620573185231927619931281342950755837472725639003198672851785223881597983875478562965776407182112087221302310512653952256496893650619963951926115858924673740059738052657665242708660138480467709732542575509096089817019835208853433683004009523939900909591188848339774269869354490004025375582150665528173202353056459675830538292188768073750716409028365007521302535240759506645719699258236932087913289907623784746966913708599269224894892949973086864011317885694224225398631198894632708202239662253025176054242483444526384134791042650825961477475973462623084127176443752126129852062244067319493738261411501866034483545659063753192180820739248738281594885974948502027807483512215171428483598124488975376111569623011231032130024845231310317554405607881472405485052381454659400933625128298502817705762062819606542505778805400834680368649809144025325878179771783979263437314040662141100307753807564614908755668039216408856203309429584280541827059257869351657422276406587017923876669435878519787543186014387376199281111813963476866255255510548725491198052471429196774892916571298768140692574338365130231267523728136577400211219065210365581192255020788055166081397716137942401299035250587459548036763320832030519970143301133010568811646821298814506025670864130144477485368886757375110241179188870689695157843445018510409127002271755374351057914891940267292309750865580329252199584072980905063114959025880954781658761107195325559376282969956927270990910944821487757178707653873010154528042846634237289541787462845258152410255102484386341403703865337737255955523677666396903136952230402568856959208748623704950846288842955500991831731956189340333252696823110696727733554270841805237323398129747597859493359891977692183067188612004734363647217063086669367743604032965493378171439362523103438367736408765201193123365736870452526863864972653602204349456162394821843472128789816623337072986340217826095489556394683808295697339075235827245898998866207495176645963144848869763818104694078654632113421286696356711060383254589005190125355078503743307902042039467138819234493190448843827592816286226475576807862107122012675755771813846859817747512482563916410472683996943941386591052607032621766465158648999543036939757494631925424690369684553406743622220531049344960359273454392797980190840034616069269443457654950445172708384334699931117140996739029417219470560839133357549181775974433628563265962278575714188370964645936209095950402782038271065560229367164813959641466119257664641055881882333928913083122298285141954413309234088096890817998539139337055998810388031460371752398768509068799867768334177532538611142366460015877399771887789547104865188017137820064080019513882911626646483362263423772842007321444010906529056602919085318825129540958843369135410361351901102718656986024347540170049428954128551385202830889728473130861062330049115919204524057055101215937744500043357761727719939586192231247879217090573883242388863143509280296368558046479386352994713555326086992087547215443843464453499288357829738748666403105043332214727849382970220538211678859714775764783412222305875776488966309928335378081719940191402463746166544194176313449121162157261624665532634237543328168602422431738753840531651854594222910710495619754906891329585261309841881887151460052438408870445280337389625434928935327087833014081090304607988868308463797468276984977173539278785593572404126703655507122601639687381786384312127524536278071439371489881691862413251575344874525909948203818784118620328892623612294474611742662706437326906363710518926082077830837632573772762664477643877229580877213591430687104579543776236892696561150431244003627981053940045923981158724058125678365156139702177240485994961912171236709610127165444319178203711392994164480868996898014543606602977434451416811809297473655587930793958705001126657976754697581282809081718849291322334304330375157510294448105134814936576198969373270610603101202172732226422352371834999186552146246064725325348665437219148004219366856187249123203311711980012159418113874305655333271426645175191523443833322850543131744646523862759044846805922591102283268877846877636130435681204550874897790395832351506918612394214555073649464702586968746537752085366445015724862024281518368657574410447117425755948863283726615805134123416117843829605653646185661633482595651312774278914488810090737741633939125323774125573652833240444586906869901260452650917034222444174798621381204257538418121465930025292368796369292556475088375524673636346609496233297863635147479120699509636262674056431239187048645840664982967546581611036697598638621906166707175810013193060641912815000635960581312549894637310364238181947127353681088431222657319732611107747516207478248292089986348900367991842467115171739236962616047465263916786480273493185371701531756972095377766208127952725765829169598163774438096479906343065044017513515911247075925587836562391594353895169128058494778210667975110577786910068626856678650110024122907490988783732578934501985603188706446172654606596431674745808004071534416927901937230214501727898483575077091986674830482318565051136508370232844368022188455979400639381206334754032180455249984890806393401667401934925338284051652835081754917646831340813848800052668389241049781360596367632242273113620078948796651999164311698816173265826363927637993695511511115521719712247339468296971946880238313896116164925077510146610346510602141216469536223276226484664618016363443321308446164264875338277986404114605696429055946462808017639655510570936140463058005595832839948746120276159222887227191549356083698730271247406890683879322508159427183680974298441357590043840333946386054927611298778127363566008072701577937470459976341307490235316125795999144796637885312473127010974149374309170958552404170835725447053874401804566439170456082948065543700724980310799887167932629015340812936486178079819379513790782495513272299663591762022145058422150183790044318626147022278884216012533852387297208843938368378791463166791025599957499807143899328731086829043115840374738566136616434314865599963770680669160775726238800306309230725270795651947610765639855281632088618364315097362516894541070037421253916534972080070417581407354106810841816635540376454553981238015851164479852797377480294580532820218224940284899299891764927966972052944514505554027967372806611718507613108744309951989844542243459731592202946876211037504122432225204507305532953110924138389405298069819058511057158403559464782252361904617447238350945483045953398036821055824232120195287878824233234069587235261458250037825249842328297937672475537973037779355600218668696544162780338223090576665034555045475966017349522936287479790968467040301343189603280710467945954181483595493547244537573981476995027019169091634927180035706090003233002302288801943185749744312723027222843746554858159499956522969700160198385389507357955106608632290751770881187485202120188904999058410870718385491089734737325901985641165369980769096412239714791627979054543647321612703750517545012787081012498572677901302011696294374114385109571939507923339094921772153635681513052701080399797292386600678647455105894963202767074535496436921181602277157272066038875468763654767357829717516396123741143154834056297144520081296298160641919735240652642632960847209945311146670535423256409605545246153213211224500914056498098483252264181995799026055719196340806608080963026683805582722338083076618257484546612263605715924101315872199430388431881843380918854116659173384711095799672078184393168176540267259155776777444547253365361349815042337686254925139104969363644637837648516359505173760300852587153133160242827940004188734627028396702297418860644839299093558670971465667545218461361199020304442247636168836526269107162715383326313874043559411435117827524640671508048299996105136843480978003710170573955404587779742506995992431639436988379702208175396854299909666533864044565047661823229022582833281143111579780602231001772890519294942187739429704633064636569000852857617667682915428876155491042167669805776075442011741364925072347301008564152763876710670088891794462944962771908312256935409420492774679960255085814163304172856066691791408219932402074651453954494342800754130873049070601973890333737049259725448460175178229365903822678770712076850808466104657325463267036524115336851998138606419905250852081687999159454611337456519583209122916350818669607211768894307212844584918603386272932204527555093778567314640040971389056420073268416767706728086870902130003155138468867624626210164584760114510613819073312998164509697612363949186203999963041753387500671494335464208232412627773512912082213980936838445539436492021972040898467077309880829873761662630380195042030435855913417764519880218031822883527932043591533960995486285208059528234350433548259904380046168757575289972528572741055732431791350703360295008921368098089746584500880620848966592985897824783918105620998769142234314256994342575803144700158215725976361863664257344325734934168374456118194202248995387289346063136308684497945916843556766699616946963319656352967760786589025438913642619745270852393222593229064729006742667080269546097334352317396453373563759110239061168988963137307478368762355944755406622846270992566463371409247073043900871648775354421828727721368428591450511473037966815777922598315256198837527852804871346404224812366802587003110585162514090510415433714895135024309124767901091789848887802029960664158427873430758257211074026739922179622065593611897580642589917751345156502861828252624670035053417065431163514952363080857704322408436431198182286654730126220465906117208978140732981363810476563424960918965564590535718595750111986418280773821992740524522848212582981110550724322592966243219759690444833660687960930780889302722391941634012452729919083095851097455129011700384360184819253756510250934292468729000417567958400245662735727021548965684333480906391796158420068425791949234039220583046358050501886464338212515808115990579722119944942474839696698240670829976247695003956197434315274185104593519251681029403876602226050065950297498650569238805883309807605193212453699382400632880230522067403968247298923718448062446491575163486111315725613193185381823011856405045344894175417493360331142395598325360856355927749516632362472574921465957165902212358892894724456024943841123493556658203777152462225717912981430863050673921022566423260936452354420574701361749027360149064116082905736036608678216636050801312277383983090452056477280711304286788703182342778756958047739560782315334997051392215606662479597305381864920078309623084029330792402882869485401238112925711030301892033725364561203588955884689142716075620391270296917363616809891669677310732351935460589164844057674202617916048896343904493416295389538003938475182334989372853045932470772210541784722435472012069494636299750749739827145131749023709084880220870832332715468639461431695515712080404488906185734188354653034514851516079357568208696484937396710248236887703621116793536658619772125641102202955285564950304572895591384410136616089701000985688945326145721765988682541304840026860765121770182407530211017850623170162551379494225849724641733128312091526593475364965401960319293439239142829822899294852100867046640054248099297491523013672740006201889426021336741261275561835379254260547134959062832008425119036768381906556277980915633326632748663827175366457127778050896351171147435999465332948691689662519820009535627436597190824511595870470935370380556642351866669584268989558581632509615045809605989063631097095675302516742287946939162989451459620732474587655816374153983827724748093314557476818861730695882410388937579914841925963856698048192407924338967611309258601877164871174757313028866880540676649770109519044011001917843001201532041704445009327075574420435182187407961434460065828783194530397582738611796647484308491798084060031863310420656137160219211574372192770222274635342793054411139240461482672874385465872388316100452704882166452443403614893538034381998039678900181409271732373335759778987930108595376020487531101083253055506535911143357115584956517034198079424987861176885924798633251556211889922844929104351234183948064529200381427282971612023375212064606817466607620508806790910057958628547366353215004576251300202853729972075241853761873200888293565447025908632217279827847990562878305662562415286611037270583643369446483405191838694407877115731759958804800281871957203041374544832107799546669134503648891219797914692050461423708957855480995517046942874330897981678760367402004819144284847643094887265648564563443132829387127099804117954923705272973924540180702992091490881869681754528706455980965685401516946444620672151479803815448873686535104192715658391074095741824635719421954087546330156362300893228854032877690853304817636285415957931221891686499887086029338291875995103236092942364054652993782698085760865933840678132798939333630465226896143912529545828700523258401727544244519067804764718358343671959861789229226223556089805870352918850266687088081689263038943209707306164301299343638228551240543605293973834452208906343406373889188644104670662703697214892613123280488862705936082352370395787675121292180572721437529534706951531427072391688220689000288583318328403369785590283422328888908294947708983282412635977894957291077787185641127714299731141907819060743657275062272875646509037302185899000223997870895970507918214519863372306949672324561524892735879388640527197162858966252334437062078780115472664518654355716326858764304470503639227407953387861140223090158764725883877305151242310379892915211262410821563567921687090208853080728180539623389573328052737379768663806767705122830581880775722812986680602792854818762948656818364124570673157094116887440706116795785303278952490446098960820400751142329044828583409426432996858962088384147614812880250662153050565203376034897305543034102696387154117350313392341202534005865061221700094413017226741835129435449874557023653212984523684141849255126494143843003890946154489561290297981961949385945515049986199753398105136990353367831900901363389676094829563188661640641364429524067276748310772894936275659117695615208597246636511990953238007112300733089022525214537124465977971321921660594836527333035169742761105252340202921092505539260724725596416962487671814927543664223800482275029039016831385640764964389565627485427687806392188047884214786579180391537243885036126630651138290151898483789124396407490032975098065828885586702980548944978464454636585034959150361297419804368847129112322337270517192743134779777265953795147586422754633021550372083951088725974411371190362013596896544137830986338349831744308462007835646883305568621825260409708322516948963131734513746646209668243062659324247636693220341959166807718267529170727429352669412665958351014266551186799207815234509697926874815547791758535772005164070812469888384501380812022669063670980212911403748112706347806535668738112288551951041762573201627071024736995265694116501666263935033100161314939379206193295117932984950383972105618875179770804303747914682954822213485129938861677079752596388101346959237583940132407145175392563593807024763881465579594044894483689336580686137974089322897490895618406078351241512856550328650358842240435609710410085666715546567123285913323317517123297405460168950311444302580218342666133841427612837186343593965570772648865349614723850855091219321991050894827031896969628551609188489743747092485736897249196595219317325656993799598375422678815897994466639407022227682643570264354547862919949311878883587574780352509284052654547584584481776396908350586548345682769743655216666944536136847908536552709608497625252949856205969748012042092956068766545530743103818859654284353137235759475162789288406571741606051064783574350321353520680007432030863940264217763568295503340633322390093528904616718710886294588100643757313017741838306558665718898101311299019005785301677571785037027649634672320731321822447231204693448504356483861004626737383689651313272045669066715524569707044024473193485634137907037897740237223905601632080955599437743958490444265761781253073549530984927443692204816390252149345119545600351688878579863970409777623424234926670078666171711145541282457487808668616849956992088235132738996602819825375450292397168678320787657999985215037653078576961320793688504031654908063084770263933857470648499104245087208430295428414717755755046369282621478017049982134567044906328877238575185297297537737156959351391289202096170763900787643517206520856338614810702972277566346838195019697421443532652609190616172855254900585726495548867730628052826625135484043925763008605397161068894010912223401663407871356596904695611144531175289427731756191423818543540591653317766177980697905450319713635223416885411438096727692991353545397097734902189441983514871092436737365419823950656125793625278169701021970958930396550954026972198880092499130162613491455679981482906806334321302311194810628083056065856693396187708905055019961503517763015377720163809722657004452193645378454234596255472067615935870352745546568050685548739757037571460668446192669060165972591726781183944570556623411773203071025605705761337967197074259143513107363523769885164684039820464703324272810110091346468760322135857967462169341191103160319657397207562009413845700086471705536654108580674409673655004137692965640103747957579962627661074141056060171185074853176107431464929331669147978903021092467370812249278588822535987922714964129766911389627165833984390724244264107321256341579724470942687339683682238296572598701232320169025604879475883030659694048275804353907568338118383808324448192374052955965036986935716408147654116226408175716084443230767221520247900984178217009419487653307272086037255806707594407125215557940039901869056602973541106820609171956932774809855825197208382559517374685375275108239022754369297390343961593720769766961682985444047739097278158767164651244301703664536019285499658857708013632199640094453510013009494031527912469774036027381744876269183828317480453926233533513982271329732655870162474444376573880869783545757352882159397761887236214004760074197432869789163704273784167357541628538148817670355401401727994005984521493858717692420220444762776596101018472946718690864185935987940568828730066427177771824775625009482109875631467909738094196230911357317012256215961621719046885719424308573628097315192691571017702896114177085607812391141922594440393641656444508201380525564298913868070232657112381673966327718691511508566654269924778093145410236050816323837957150783372867850167432979072717360316361663704161870797498888791392229418703705915855756051794051892520574390251272158471740677574965777895129582313746611326545495508294247646075070329908596625831574562133219303538065214044624257066568530645544484081834406941491897841119700242930258937514782837004514802651495799230606930591214101133761969020926288125714407972894716069862003283428009992899240353380023133751102631055301490182474764212187759520215472488432204970994436848207468185094612983114421048874452339815668662134953986611400937257612481368651417011133279642973941120525520310903843029792677540232331248834288143368135279443117350878051315857880376211091279429755621356144158731789441261163342787200418587212746448539518428154765223719018006612847875286570634796390589223502859339852145742787561976543589398558028461919176149825031884110129958613744038762822957453393148310497213370368674100910377723511452484650782200740325680575991364534060041448843875133435324301786402529656159788478962765654454756345105859436261312695053049771435999437501007955118933189477514674065344044576250594048397840654344389737680935480235276224790327187958862227147838926063973742429618368385861912114959549398049312307470962551578619400829628659311514968038615976221822355648370087832647530913494047223059820533646982761037243294785111872254868083904033395622241155437977485277901548162760105331718597836068164903554219345707025213376325915625946632447928617359436659069188008612565020108025931144640405807018321054498330510142600975437060390964182398079729860522868506079756744333889451724774407648387078395478265435700581742613499663235168249938359572239932017093495609762878397527520966786232999285078584211652933691324288363957008901114204687840633571404581806096362394324793786791503517007322638241123442935244813788821395163402555177693222522382683083001326379502012720417234318283415511922309874416465743835011180156181945697292964059390264808374654332780455379952723650744218042142167171647966176305071817566979701669172821413529000791262982219273379063999704929683692894561513440220688847913835052662732792251364305866212782360468211511716852994710216083103110130734451091123603059599841006271241206887112850480604884887632720003211102541774488529287382585158232244839143257622981556148096335639761758798302502039946240283653805441195653000047670637576831353217751472381860842151738602991123484981777637941153641311970009615438755047536620887728077624712157718025672876311741750052361420944879338397107205137161216977736987721789455801865838808231555862198624678863578669379971753958653140290140458699600581044752014069813760968507244291246006247838215130079325020604807749011311278927765352827478097762799568042538199184114795644900624843911829546595420840169370482732692368521209607962285713647801983929289972751657146762184602056175945733660205354543737095038914452804799676087196827891974522445047203185658664964102074964155500512921478818925841197380114055877115686936049526997969594432216934377100081969603160960047907811929134776716773528031910524350471459397952551459463630276193793460332053680996976332571945908351436760301199664013847703997375419196297149057584060850574128397417799886579633323572249952316462181095978402147207353409203358950176042218242345768949720448549636687725244681654021434270805836438732518420716450016722817312786684870222487724131121111840645528664218887668938312259006600082092069900800215468908301772197101201248437958113280949982989623901014266328877002987375995079409976451447450668153466355693405964638375876145168861117502944726691318565590645687182595641429607463025460199083424431195376372710485069058539087789167307432770804942665880173033807106789954781965366371551169300634527318654594480036219329405406130187295399602177783294959648553003964414284314872117182668289693575723135898057862056390910243843267092261103016982289120623757448087436345616546497664477253448510117605060160143353071706744674352341897022393558204079451166771363380373948953163223203862339269258664007022727583326191184966534175407693188600176967948555039746679230372571595141552411149917933463934240869562799289793376891695138006570111080151023867914673821140937670772208375165413594721427738292881576291838350415102986993019796111776024391667661596962006703838675989715399012121571108985118500422125115344093328135514868697086235189848608535066116725908968317241384932910313557196749751411851319335331838300780894362004774920571794597605574371656355069731399205359698457475615794712908248766712797702065944048335539848905401136562568237540911825973710475890056495722007259783217569763754698652541800310988130679399478379296088392440303441585257111735670693844455568201569189702851475862652574149951988348786175511439256539879800383754839764066055050312700976731723315825822578977684420780096269257335995392910975226327357709188037744229329799436299949132366396611779747821386875293917147495147147961731964778805478331490652905287735099759463386213401429036624580141104596871860009459424633135139157242702925655469427386565864192099002401116083134686430368803425049347105893438805182039334266878609539278540803970830809740695611548716250959047613636196447987078372112113855069712704589808293958963092668286120528969956652316273265304707613008232328514024910251561122886783816318330439818530299990892633140727697486061597851838145488116908280505044095133227422898738869201592660383521594392571822169307630345703663872556277918014087620046056688897349345551558256418129273105990259113097163938345535278927905246341969958903692138838425890035232617931236079378904014698250642398238229128873500856404831097241029981813334882984517904282058100302890840173236877893224198941744021127351249776636184507463311031030811829676303209411570986871563430117612244319926546371131226527264202492310631997780627627634851549792704454885985191905575673961086168674235578242076554329980364536092771098634824328904382817735895458444886005207580753415004916556205154558256396174096484204657207791476923306288802823975369962789279691269667023361754374341920120198040591815914934480374689946137034726093217445150965661341858951298609095951860787614789932014514198254437783869385020118481043484432511425537232509411055083187739465853998643711381860918676853412704798904166440300841226588922492162129943192934459794464403823488694439209923832620524848452518875771534770280639039340154294834376209268625739476355258835886280415938214367605347951371251189989857279147326600887202305067278420366310879023613981855538257259898995818724283283226300950494629907281167087278615400436703989118310335636762761483418783407578178713991927625436906895175869029180074743543309839682604049832955218045217195471504204089834771597569853638363301879871927985679898309854697816226372278386993480139134539846881913960347278793499809532175435753847849771468832255219235138947951388719554814346021016474217057199261472480998882601024818746690496615829050033946387674670039743608491428003350156851596639510178167602589321118665604023962472712954721219866599823741546490501354752173509802079580009980776859826767817141400359143457485886832934621202177877715148350801860138830867656167306594525253868716374018386750141991961772175351861797659914198072078517570952232689219830274108742303919542774373986436893398739631572245320878093501002156859234182314465024557666420026464672214736771901442869303217728140291646546083664210675855009153849853659885807193078801941679420577714497884636738364215917153247771012946410607732013544373034698318991683197624085434771170903343347082400961626862015813564531417552519391456973460912687534270129189506679600935251089808328808269808985899591859008593802277112846369686432208764362165476949850156162410943221055401493912516684060907117500717495827286451156109451682687011451712978653030104605760954762024469949015538698081322290200114432665035199056259076526055476261711648975412348838106974940747168378595349788669421325177688926993155084997291987001518423669937811038261048764613411272005078880310537207690328663934399944758769439121048928774629459439451724381558506395420033676518916145187513043356741668060121815291494967891523579401751325800601186833197797456369187323131152119610407725490733523048196366671309447923884443876981587053526359046601077073984783846809246079996787399212102942127898389622801761739486886441731084611664515067958084062961992608748491500417050999086359388687605589966908329857142559085221226552644405560134385347477436510153127673805349468685294055753408239854188919724709716702902370707598899058534153071432714313339635117562750838699376114396715331779225991248347151404320710075359851070683693568958013797413420067360998234116303280417686440034393849802946163126925080542220687833780856104800477974872284609123247075316267709827580115769227370663843152507421697077941852097668665298661766802579826171322538574222352334661130848633624885725340050337010192883623364576964942061650673015541428120325215566808356249922199187714615568922436387050520892609472015120657128889827257787122786139538809603429915727332309870047060867475197529698031783662805508111430909678922104479164907537791689959187233438161174312506565629872874811125810213790690368726345798861689494252289817797438649604426949672417467393947608605947365433831169156619145715792813268168806113133576372826853522454249752215337273951797535946003355624218991067126696855539544042279638815454407742188222981715310341346669357405577289043634972351115112487978437799404091337304112485937085102071074528821316055055396420311103668826134570233708042041244351575777476772453175651554853462320741959936878432967014036270293694506239820902282409978054764784566001470053656011816472411844355824017885899126026710107245955418829701959690601407504179093666826611070571652716319208363520724291367180609742245472720814623068306786549612818700939755483220219627609952310076000931350558860573528289755594160904873892073512279555985476993486051150671753683874312850790723948038437206624034906239053140517127067632306777143584932207221548755160030078332710877831815567057292601793153900278681144724974620165462010025451969028117552992465871963321622658589739963268528219461784809498137381556518518460312967773654338872574581475113051473006227045339964503880109037521396734749651574619995197746940697485006516474473542746099269897151165642047170055882351700197415661564105386879223372994875176008224027256819099271532606372542319007978608543204145993432134769966818583591424527639990699728338388625899784530741828347764087389894117297023165640305513779128812846158339136156482790303783681197130735776144374067245354613282362986695229026406645623788249017944925923506191237320572423659592248604285623448119820166555299389902693380362312101791431361218761904877535402431794279169769624043434446283276008279397417766397184251440359453148015114603390562628261443008697956210613335574423023933936025666914771417819755292294045236389205874496215468768986782021216882552355010905732256997605926440350313771441780482038706920794000451832607234043221622869489795034837129443823259141304197603270748731545725580488596545335754624137733405368902761791849595549742660738317421881833014910661754150099978249166288708406977999197264356219421262177456851271997383649763464832839711145643852395074321257587260879254583017345041581863838006016284412430195425088030107243819463908807986511383084368076437124296234875459975074745902024047409293992115365664434086539527312123760527681292105738849746526302061189954861250405669632578654322965839268146850534886777129795793466534906733310335460820956265353696715709851994890362059398604033269582072990359650385926653274089086031729599261014427914407918667187070674027034441234490035195813638324287965935156634255292016596642340318275617594756697902909671551014407927790521800657409826509238006489116572348383133801198171623939542417329513064818610206222831525100857613511226153913111006228290422441113316340995456236590340046148556120618862874523998958626094356648863549923710244860426795949776113658192758724712253811351487488247038976014208069830957587751870778910399749872148915300357171496635173435953583155191528028960091446507618715672109172114923136649322731380592738503018294082703519667825673717390216531237125636845386774170216732901335485822235645395965377229772748453211107675062170944247593392371831232684387552377313026306868849026700567233224381639121106669650401861333236173063169201847004194331616687559676761616653735455469049634919089899867111710526183221047250469968192896582935099073759574504874210517496756364602362517306788462971677715299440889676519174151426863040428095362226633946306624442055767433799020952320003690926431848053289987565627212503282167698603128390944970957669499791480360481633800678513276324332165664752916903388381807888111576297290166594892994351587907935314295059191264819858858816208934042971078055590019315273699390573228284668579705741182550268317541756580090810434895893291602358792664303426186569215905846764005778490382540080853861478866019363601104134608316446472270505789895136919673046024426975556864924881791019315039177166414690729187474288387432454651469124635835935126585279316209730074539062524418177837897787254971020347602919277322993205806161593217823596585968062932583799642321121738011642740463006768872896109773788423680828747811139506145346949075495320790839245172389810130493947862563187531802109098773807833054534563713981169755961192730482068699217665836141340743674933383521629288170474870398002059826172679121787053970986585107533498550935314002295864212859248993227214090784310497152035129634157191712279176450087765967562667179666666034877632417041125123986036880668626812286972825938919707232577421250255654635066140519177589255213667360903461760496482892368425174690306180990599015489121944549594192123450730761274662894270784177588502569877770535552461224495811913767747984830625601327913415371656776745362969825572832373215244826219959892382355947024623654268867717876310289874681983933643241945553446874617730031704966714458663048988419571579971541707510772465070296957398693820769964871692608894829814142964312681834218158893742864663143807442023725576809760307812194113092569916434502544692404147129532985923642363509141899178898286435655994951327994217767242484254938988060199059657362391252769141363323564446271793445583344919803265739830262662232494839387407091344027447658240577878982184268019340611798048729779400974883582352730414107478002301943520247861544145874879934808958178095811754591187296666653189925702894229653478545209245168827911836913382846242998198178288515493486036176423082064660055072636400264677939877854775683204300659630368078642314023926871053775319013407605060145816553213705770205359181186575833604887408821641141880004230049574307314576435941858193905813953932896077383413866468195466270595521917957257728165816804784625440995808041490095616036288192122533310534716765658544247951595443926074566516132829342196279384304887290585447579702715858792126450442472432698657122248958023794937789143129392983276089023533657464003196315641694762428435711893932233167059784947150989422707715718561810721813490539926437849652093391644438783527433298133565755930246641479756775997496472288384328513300722154031274628607286931033764115792514863763648824535687475492006259926598011218020117050126472181220365715431039913623229986181820914290500513192932788239681798865039222569260060376443147801131579945682044925796457742348432125896444091475823651931467694680524189886497933611843300993699846810047973606838115293454897209006683103146768724747867633689936070493640885997487514715771867562521710396195997457251307174755034257219712599499939451871954117080919391052386671421171364282112268217094761135211570911154793985527299933827238948215477593422263385413960811752328811130410650209333540125507859192410272630096400591895874803931885785851868577063531278349650360564291368809773448483146269952056945547345099051502478680409353678068468818766101571022770603213657827226905624055680390141779172825404956285475401140617069938736684671881971730460314634638346009037319618908144753776454401443948857037275471682866451916365056532380332436487993488122217726662900835109358429015257271705334192447521668697867655432561371352930550317951132389871356096934403647441028096480405136149759228908135535500273245330871946266764913080611876051229477234314941992809051312180303216975489705373000465470815187085782095190003991980161729522213146830066243047525263930245864689787432505960856644138216371142799540685731859932915001822888671428782690916596075574898121530516324568299789086427064080406072135390317643865090475039207946250500946575141542334194243067996326939517749426039520771564766971310827708741480687990251841461942347856213692645670060546387952736103748937926205648981904970602674000527418675869228938994051896352787010204810831939248309749411328165340899953489111317523606812468026848237414320782331719075826363929516983991190319260643184011402731683501763463904725836386328545940332299877137859029972050605425734997639088710415118512495098721963649227798396102947008114309549307418670929830964201656197175869419764312097857605728922593487969371419833798051292945223051240661434980593154002215630887173291111110915988079567839162807426262112512340048487415594305391160589322837121050874438078716934982769515424070278262302676449016086560418151916046744470937287809937375747339549481055368143513450511600032267894738609739008467199917552905081010236485153810320594777859443198277739061878297802371813122750033777817387122709575472077161519567699634779677771755452994068189150342841604594619081746065363781172237647628360433826126808855011149821791915126502972110586190531631787074606796064301054687139237843014877098959800341864953418287578772817314718463382614267951013450040479431889882764939961111966389277858930063435829524024389108184355467062983862933929465043685551692880142441049536490945512008228556809180271095632955617048881671917075981137000054027881043272913920480394251081005026033064354176821974063964495715535338005283345292301473742819408508294402570453906952576830991758266415809629659101343567910147495684191824204274730143769517585690568300263539542577855336950815838370304475240749630042831044407469834801124095523174483344280199099309044055056046620056812187571325969351055798044684107991625822211091899973916773268163529320678154146875770799436657884241662628949319122667990165274896353928812502909473989935118907315474052044991866906762412596918575155091376307196874694951315766566418650377255152766073364491856246405059925226852061464282646592128886608579879798813934340403413425488681157628845576796132561103747931689798232800864523458244483920762791601005820353301031062029536584016259227743348271023261696918522346211631284718108207349502345874904326965022182045028197399171528486494916866166912840905612901536708046870175088948009743488304313328346963023294620039236127618645878053743070427134733161731625185552430948797080766081415267929193120002458088998197345597481188797964884202736074022922190119596845357228750352975345432703425730612277264764620388807296919047344286530834768869927211515945400248980283872576239176947184784607595938721978853602992140729149379561348362290080745564204846634213926796737216803843265664424395042550875927005449390522016335934395033320611091513173943352529223639940918203832171916038591480338001254071185819715335946562257137627882822675715636969263463467970402128417953752886178436990602131220090978975077753042212457959430704259044005000132693925002667179450733270772415073964860651566757278272240373356171790201732988830116363448477974047702503879709973779009593932825641753799763948352206730585479346037972466622539486218197234057996773863656857950086782037761692604393982185776442900444703359135680425941526973482582474418529728929477844758033302192472971905842732746509738030842315253389378188295705050334548411386156361903041063178709365059403545804367013126375556463960481451440672662082927061113852541524256988128381122679157344987004886785831962906341189267115496197736856533085154519270068526730986644444595989747184744288793880710712554262681402051928907014675037459612879502496959344977194302521990350260471381413791606817942345034999000778014901795601066062734128660290831868558345798012720688614578940028340223035985826208324881445272065339312148109750937349276667580925493371406835581667554454633528401783704818099202102460218480817426354701638842481190739358672407955894009203630389504684471140393781668588621514434454850579381876185114006799652951178720895350728191223890090328884183698901386410931011220282949933845717583055848364603780008701324781369600807814926244843523344130356148338136602355056535968553160069096622098028619402406324586272179830985057278055609512955074322970429452478714150623662865424678120642142539746920018027861385397167436285978135874171228507099493751406759805799380752139892661631048346344851215182586788708698908864087588460276415153325480704340269521957894958235865909958698667918555717308728976824890619730011007064227334379605588610449728980782862570956756911705945663916783249922897989735267544616926665428343001503439410639419699896744473167052292945135382077088186652727305967190384700215565729710262174447148236017435484674397825581035920225487109843107278742657244266814082914786180161875094983702210826810236203896156188213579463378856155002773155957312268883319698079374849145437348222621086193001677689198833236273797672069369024327027572806532313054683498426881933761185146738352060433208018684405394203868745705234547485028103088999720568005883754517177248563171514428014652821896857775269371153354096308994232361280795216708892219614882604368482588873195357699113872966871065981857830822261401226264298117066803560747624756681466841240069439594693982851923936075807141704284393692490340198853503906262693650075126515660365307574395385761098142665647007658704313032295300456246022595348126314547181631697233700599703684634014505278006416143436285579565440274388589635355284318577500539692134317011744970201747708604203883869104292921875007237104231541795706689284258838556930006626049701867023497350935486612428100055505278561912235520359467730839934571958371592500528350019037638302265670863377743952505142440748263115345067764941010225364011883019499572998099808036007081664514966547518108402823063483919266353268586153462783793772513319199895752647391534915756766469469532405167259125378938559136857780053717669163775195728212227482558040719512854389413447464871753510751489514523054676217041248605704766673845013994334896490801457588561549702457303091713009937229057661085117904956252898217425996063282535208215762234719203286911964107762755432075547998079649471257116474411235123412835892500152551428666047238508988889899652734552649290930298210929260557592238824397137193263848667451963161281293235647722133908892159514083636211281982233407931263863343147796288647870001420835463382485555242984820206174370136354723516806084437305419155342738459688094135780089735353150738849628453322429933398540087130085519015685048509017874484860041291742174120975267370178312928593843924059642657659186482566518716543119156681084142893983179863838934263550669110543129313653163710459535091064256770914990766238279868620664668411612041708080068087871051387220522766758251070892182726718659265965813989940130832830745646460166206166537899478263398077317110056704468589368490113018256458890676952415739055324390335244282461321432084800785664968480927171475808105795149071059024374222790926420172901522458719627614833837872242369747860040761268552677666939151971432735471729468301727795109574619151216943717436928408465322891587246475491478494280600563644488900288011636830221282372809735622980878481953566014921434207911128898051737010727239315864321369933910289398516629053533152444184266292171107432884036682523873606008746605680580504151888986530285415661594845326901169173706410887445672582334535482273913538912188123152938915765646764947134019277702046342941831016698215506475359485624242403639887486903048743497657193410162603019108577046101473929917670486444301757614595551430223139317161190969943886164548694025632764758951312563061127214481093671668335307089788080237582014329271391653906462521178401607609078578377823412806032254928368756327566917810935779423323333985333391184713285104466962664055338645536643590887409948571742128651557840171093471885357885496472880830365239379076648505899841638564355353423592864274536245791625088415016287682253044399277575508972751770430600066272232085779392808972371696998094591465091762867997683025003727137856802537708123891716333443882423772214561470613567174401444474782028594858923704199056550084373242387290713967826965392277446199732490815759489592768416398964352061178268797516582719302803470824725943036258632181497056607205908488689452716414609574987325502440215332779046261049523907771322419280652255004162778534421459747684633601102325333993227804859054002010436778470072813454699406274259816532970551766420512420836266297794030865896074857853981578128430148802275335506905107327731798014689898232053219563797558062704616272659191948014435133500576402894694626769981240231882812946134692214175735086573986259146307395693447948814121826649597068897262851328249211416386808046996820976949620707364394715827021325430501485699626426899750805638357904692297407318996765352344102434481454720404482075725498850792314102412498151638432811976864374793247562064095146221080099062047664626981334272727310992951627295379409199312895035109986956512507053466418763157474749539672562994470586116196398510481546515323415130479940829793491421837334240207400107220046678604564997346384377691539063679673257533000119045952128929401773745298843966219203435347047520258822326915110019833545424892221226744594204265973599768797553258092119806185972668933538830711972351219644595354060291393683266712866547854678088427634748476799741472992363730280699598332594523595606308608026033406513485207452294389358266747525919137643994207173053866104729090097199274577641100886298607226748302032404045028471731599046290538205521691915265237999353022284438253539639788257215862293705855015874834549173368327485927585904687476928425050233740006570147120874528385397688184277502682402844853642297692965244293024065179065340006002372802210098999536393196953726704662101794887896368990218476037198859338079237203999644870298256508855517706355818224898861604837777153727573364317527472721806997091561414695507626103715330574510610411576511279688037843354453863151253452775073006137219595389511223926261227833876078027188160235008269372713298041173003979305917769209389617275959679611737536841784595421079687409415673374803098385280064249714546447699756953576474449194141511540941622013430591942673555201613160700384209285677181251162946073302692230643205957302666702556938424361567593768888063669718550875234442089127339362150174110930674609067018732053327727428508729860927498184290012361580822729203459095327489370759554515206847016780585572251762338721553237916188306285511882476965748128108763420507376849559922880416258362681059031593522345160543965042684945373056076066280396863241720699094434063069969186892650023575683031301019351747701200823036684699987165077424102131203818706203882975859529392720406871349842623586075238563567132182177615531915352980888785283574399127494201857933512381284196422537514016707395975355508795535002412095491818973316132951174252805596295075702441578255951385966314273319146477059659507781208822885910583616211754847018042958450338832277749901147089045672399843713270727166848511387972247682200536529609451731460005822516952662796368054754827384033627568534733372240188167022987097094969643167618978263985177579328449055757511747297491021818373537405887520238505402652038339326902361308125616891287913321532398742938461749869300308626667127853663185935415994539369491392308511168423114368099166944309568022823743213518132675459294271778898744570176452371699648244577885890166560738746483438342125562125906247022442816696464537297798460238800779773332147291644287105527481572752832578122532980997201911256114839011963103021829000041128229187733610809513085210567747675043836685349673883626020727437724039034476507654147737126850558609368186627003674254776569558598537515459232991058274906686280194541225191601198504479933317225904389341593550541670863962685375386673240280373700638412714234578289517590901623192557198349107074369842000344365581766197375292749059755320678335551576262223043000494378305113781605848964324014277073735986571867868190999810098771533892863908612994750305931721239666900491218245296648367855403110103581658230056203214518217699976050953780089007530170178938432311067667760067908176752165683236203429528316096125385582416802304321608982649891347328395389023221683778797329953734556112800201563067575623896547353323204663075399106062379857256623794239942308836589431563759732826616222479673942463593597981506937021638674179918604816791924195065472409731633602911935009959513169458404245939536852380510741116684977646036342662341851059398000902296105283925325891824051195325697378503844925254732480011675760414599042025069284136600672423469328404750860536202896117268878918035864789490680510074778041110437166600241172906916765793395092569711668105779803203643034205084043960208929719765269355376273325731882606819333919273483802666978638249836668943311506878077695581838178575721540534706613834329790349238271338725909695805869642039330539968570502233336084228564263907531235350805176046315745891075807955297295196201040516484524232898974588385985904695820747980943895613235133225316747976253963752415509121297088461587725039252559384594975144178783636319491454198789376780230670850993984097378109160419536029043476501659409808128359271873438511790343965143837214530487580601380262647636113191368804292986742600361388296895101589217501546237033029915502009929403292874813303039518733475186667914150445009281283823343673188159566454889446378394826672776153942716676676584094966241714354367226830915460973582115460906152760658785737150472164285964880898905998135536897613579803084732973080664603442077780843853830648686890856415641393886383692496501460095415025538519689431428842745953654723503966053608380835566029926470731885137517044334829920419747725502215899838274400577852407226458358177641050288056471063079773462522309767495644457179325040660284719765677830678977648730224691927989051704750207917090826439574999248656583960642786341042999221521708415367422215080626500161217539272100354384030308719505091430055308920384016046610301200306260708989498006293299773713057578419446426638899494897340740328359022467040603667795346978179446807775975100854853981538285107583061369604344436372567396022519419494302949297891708538878383054173575376830440636164153669438153728873431621193342043302675485516670950120665024206275260414499757881456648812949754568319987318049893162648848367700470210431696055945982322614532581913101478794907584190350680357420949936881157118951815035248099410591782824177078168634539757163654878776206294379444724121932633373879470195596232598782374252771816932974182108572255800444128776567759016851206848094306306630678860047570291896640679960972702835746382550483519625749882747348252452428775410972147555399069909822724733086339699839195615854871082115157059960015389841880462637916342110797593249317295759799832553127180181704957469358834508275631752795146337319609142703542855612612198493550092127253351779239090269240125809934018105870900612672736354261290293630595572317625903423658213433004211381254379064616533703349313158789881614711108859186970995013242978632596566729899841138019639164798475841674130600636351990939980813757493882822176373983106273722613691305848197316569442480023230790641661033860314086055621037708125905707955264567409436857032210756432371014062323613498772172319247336112388447863847660541658777031201150471113461865779308042196292524647435512208507864808581105103808668971129858960517538756642552427951199943653838746879499279988990495204052076830876805600565739441929606007968959041303335936232192653897912924895800567527215691972347306172243483196634210199761282667055478421671341615929382797713325510383032643919503210408084306014489966080058934759009272777701066587499145170208178793994761943251620418131357213909495479780024229435806598546710212481649583742683223125005975339045530816565524859406804961694733620470190218095662027374645678045419484006874357715615727120858706458044213951263526020510988769453568264058891257382882304031066705418819160193274992582501246919325047812140686904533435377630680616158549832792479511092670691879532373204241575408989109137975908756293708882112759487835866330266372030443180856391836298712696312107506326279067172669929198196172778075050102990176387121770314795387918099047783439093272619139649173241031994922976670646912238065843419525739371456565520639962892122832582288998339035050614580278123432542409977127573092260063468780638211577192435795404803523578844531700667079051752680791928307439967327565602209833237280804620398019820761173411388110270341530267656263175995990384112211677966496071678287812276660979816181486220278078654573775837924846835075023879342193217609259486367209747318519448830577448814798622886336726224048824575389352552305602566122897055971850785859042168567515507597065222138415038112076666491001985990252050916804972946567354997493230730258675088216772336878316555443716219041287016808326812757376661596863614428429085482583480588253832342620997710652821342296133013634699258446162188554175938352885252444068596137484181239122860330572186584138565174328220025009532798285497435591703595952360642389601550281113629045107773474571703281902901570014652862161994663192929073433552292289120415525238926360352866687445368688544150710003703643307765142112376132559562417675837314778855924076502925315089086176963074341808899970641183125670704678026801582684837600385659047314991070724254937694769162800062200437116325592103529407978467981652424373503584815356510804838834099940577614049474923946538446845767841296282174487426079167567544888836289231724770008615582036530503203969062176665964537572096824143714851904145629412235699195668770784763440928514379219856735685822951005172255607224645498401832946962274947065102342215522616902599580572252438603830230817287450569550369302979739181636760822981191774891640188363513457594223856679180168256785112890197420415555866667132557262188652246691926614998100499119584231545162430935425935006786590173980745403690728604236071225818695683421836546946880504608590164418537542514540062503304299675221793496956848762661450389355215189123681669876961197493309182266377932644618479575342662640187458547990598837159831019884928128738873222674780419841365409462426293038303119873181858253631158048404177915230847126072822996806934077704968473866030963941296008552390127181580596793935069185509227599566831179999953669148319062014678795365072061803710101434861169741985819018736579449044558796710167295783620482139713970219264872040600453819263567964005509481641064267881488464870445276484143200232870016375491539014623047818539117437871135733689010564821471753649052152363775352283885288542297292283371080033632340700624701994962376462112198905406200360486441076438360374265577963787197551083867062780785866725439769228551505066812525366017740507270117557436436584806038299721586865702206583849284528060009840623177374785064332906640270991025983712649111473555752259542088072731342931570497198805750877717679331724641314037656627988313558571709093628080648414629889103792163819304118123840177538662636800490424357672450324108466398912045300686465426722319820897174231527452806546956102531568630580299116210913963890109108199557635581376519728697917224516187892036790689389672026424383587076366346666367289252441948391585979312512733412451189703325754026089684472055488034776292677501637980402715573717655951474077740442900715015748034882413489039524293086755757730228864325838780451053950653331053816510335210207806872175941668735357266495280102979777094703902414174452069623758358598726584971558454144728186485313050965832094119589833224688195051484309146530673077900090764827216451002180013121086610542023787402976030764722235843779586247969744635675550674372380081320827726690016166367300008155188869777812879346260276734198059691925896356618297553021022742614711535017001025715003644816627638113900585532818851632806173710150132178927714579834346740663308448391886171548170166764368130202913350539259417427426660535857048778438544718677875620965252022606873158129033522158055580913710802073589151443186708700135764263606091790751374067633634006663286172622852443730594133207341298970405993830582176058779566064749011149353994274666416541390400031587463161998491402717750268176253377117076143805606873154065416445816673634961784755685413969652028662332891326795433358409305494426920004946325115922659362387855013932046123329013727405483471435469963667659850777735922616314278807827979527276244950443020891026352687148176989860358412143546700215921736469159216944420137447435170825153384473631704791149855871645915797859952866553074219486018843240859122391813759032635117579017318767102174210682498008124739506815283134608107512997320231593283012284442782704613003941247225820538576094652433798057506395527615651965160128756343942835641064169911828825016157167382387036675349081963666916896786865672630157630516681219677025304069417821550850812502317617022978911582142274789516241954819808744490346129052536508300162742074240177644386642874792159380100298215006411563680564677454839868335594432510217279755946570027403759718536218287539923267467739766969057096913563143760772651215572948950207929715273688322785325016243980978779989369220725346790576261699010615095203199012584948053803754085462084927028155990125273368302145965317921767951190379578268307115446810556557880849811485806640354058397078348742823188595568537677362921444315698938618049228913019837384363209281455632976763613376964999580774172297696542827753576512304571861844986127241753943598076516396007781138741835786859015937380890264358669544762244336553028610753639962785166550264969454280460843159738607675801650269066480729181646604685719490465067919963942890938651028154985770882583274064549318246056139684148985739000920870110815796976341060142897108550120430306094874716505478270809120034413056661844790456740509250799530566558760741622748022961516630725319178370741855755210085135634185466017224494062976875799695606773206920171532177704004344433255098310785219902515615756270696702320071221673553508370267138668165464944024553732919841131116841635636150380525293060199105483442116401808649217463032407348507565724493244285110624373059561683032421760395919326333418723337475030804177689064657731913999421302908113266461884624227972234605803799594969857989269243821754826006784142942032704564901076660496662060952154116640548529349425252649965097838147117449300065845311984409509707814352115826406292456640759649263560243529039849290345257489681793240073900327693662292367033986916579088679663805203053990371897204860592349498659265057173116846221199611882827314725350739658158383697775357238514476065506913618574052300848730859464444258462398516635137748134782991665829314991232464184930772816207934510374965382086448261114621907523136841138445320664140107723307806791595017380263000809556902923896596353357605901453200796420899239287984108335421750047433203670975221362225255791880588265447152453797102449449515316725261559072910852675934368612284359482543693235810850261865768772314593126377635958867988191358095660528138664955006061479671735856406975140714379852761938770631351101890872068315600150897397172919004187471241374770829762000927402844034289309546094877708615613116609517620384534711583837310780353916315456251892579337929566554184394201188175828659812503380107864697826026257421160917071099276597518654681319655904584103739425467111781818107527367480890285067375646913877507207842882304498536699695677063491695267707701096945270483932757937564742641253353473732384554274410047983128149037795607934531623345109715632542354740134391380367972186463428057094263826256298107967533644887250485821023633185232629666895445157959663966240638232530161570158058081591200703070064952013885283567064884720523911881344467208281201573488176549553113423469302695120034789100110292732875939306762818685870112176878252304926260664936951814661287872638737148164838239644430623490255343840511802063950528692767819205191795491473702523079896739434243074794923294526894588963332912801272465199291515635623576320848806338808639608672539782723371472338613148968418638220721455871079006264591788677245918613763479936443199225160955764583590832898537201792755777447324494126649658256538434469392515529502926687107423722219173718519676328606874819440404948586232890007319377918490914529868170991713982774852239192231253802670882521938813031090191582598618871422495884309997014431036869598939206361692547389938581243749929607313103090025096009993614658133367754857505434214524849892759756982079384370083705745986603906520100030365651158831735000275141366640129151696004058969035878178809459172273671487391295523444721348146656964216522741543655118594105950208922904761587725183952931033361185999028402818313926398922907864757511339434154203389973835706958770906598956246489265531174834491216111487161902530268736813107577720111651216072744423955782649104740170369379901718214276861450578968275786800845901009053682748132626802093387874415368675880708261271484113976121368805954133153806217024989867893052753407648561427639246432123681653429215443750524561767359995326546311341214744315480942202708660149691222989180674782998917126663429113438791022105351778433788051338210811925203233319414922339147083031268843213000234192655264636717210765871879591098962866468547671385479376608018408959092665158812793074933898719373454210828635886664268167265620830900442091711403364756205792790543432737018883976202078307169472146934122479885590282665478134132562201085109951821284919763168556524216845071125121573741091761744891172001530007704218296059774205883503116788827828871035971949318102273212342836042143531238150534068553374074137876935735843023797091997376373559900625520324206154234885995340095713182845307831351009480601346089526133632052088289481081709068082780381528176634383665979052337246652361333306299753300451542737538571439288940056753974541260135195831724384809701608177062447814934100056894702516017445912026841827804087671135408305311756215245609294598789003214010163811688673956350883919112833672905526628481742378017063643158893536960101596081795962046016801795456641337960560671985038802742905792257460969584544279932228918793960551836142832519665602455026509957333893878200738759429298669480014220002002887830833340873809321746877392435331532879560086194628906005077963781143570669000297803873498372844467839456144876090039651320839935598526811740979755207340979408680799127880532321081923671698554470841266595454066201315232195232409997560075157156664542957949886076403984012754254680183051930031545608095321510824755157931450714455383732036082037744951002165572190627903568859156345030127341551095158906961642034577508345547249561199923413079329599576130573002489380053963655273626696818818855500194111562581548020832459270293542461721497452444302896863748105420750408701955454026194357074262006132941655958920602630359409499650568769028146915260079884520667763639940018974277406585312805074295383471264879007889572898801978877416529291076558657895905340223904943196646620786343685502171398223458393758005967279433240262187574150305683510456663417456745287219329110397539211296422369975740981679393568268115801116472662519273794246649995220882960551991685045406544176314433300719453336081391331978419451886863538496263556286602081593782276340691967623748732275753151476481158314152772662525113962967104055596674003931969129986936513541563654324289454730405946259299740480288698068206176766043589935932042619321875458962026500129367979401879607806931010622073550398299894371991668495919408810277442635307015803055287143466265231648882575516601722739239814671934409274642985216014310874014844689586894819780859930684776142890719988434236136889679544840526732875660962987476473576911012024928240008252744274374587943215291812188886919379377822322826216100114878824424206479343415394121417468963854578650058040715751610443294137137579231221683499562611425215658812803713132801059413034437366933155375362886708910816015064411866639282020339305992478995123114709049877642163818785794963141801687978842639436071986625826372315962657546862379684505095650644727192970156734897486342458475116004363547901740727487444752273479394620381856852406353035366651787294144378597794313578801553931948032655494180122694285759181234586869230037363875630390771940031150092528362527075492004535102642272894019853409088228260259997036698251283836168398479823453648399031995890910061778010317017422274349611236573957490763663978684776353356084761583582979672131228335338648834027250078846303700017887525354796336025811252384581898234881909423692947981091328612599120856793702911533488720394349907761082416737956256048038791247477711184628597270229402450338153414773755648074355979353227809480063491523026935151301991557115734533347165340908679291629610600714675474323193077263746002107950321373932095888739130143104586119965539805955220763203928279905374816884775798443924898797866728035954005350443429759206743926860926948796084171218172227929142903726071825986308352222690797671835315034807965037424272547772983450327407380285788752577645452129835358066704109614468359999514705609219761753924259657821984525122003529936527084681311343070466846384868698904019141083743985780984657428555500993809539752145596028386114398066729221971025236282042006307315621409060165885882342461647418308059281634273393410532014856797835237773655113859451002432007402230937424176533901894755361040674003043560564747820080556458909464486548267669024392513030223200088521838771710058910913948581585021984367096599679945433009987757552776645955372948782328672447185927031655849034739527896019912446086327914082930557660899166759207999201428428104183543430732366203843199023334593822682512951555339105809223151386615308317512998509606401284296752024109814957731279165441716025337699025300199664916142738272721588454882185660068146580935915334393560961839485170098883190032409695035608042556029167032831302534300567125837236375365839598793715303398623973283574935915440264363400699820307037686358586988117090476269234033847054614253652792267240359274002311815849332978895872808540582468591579721176158682554582239552467768614641661257871216958178310643662933924369033495608978898675794686621242688221829318261899908291711782569861295488861996406616158028380959768173642666756780578473521126552026893394376371208906902771201734317079940594031323867728596658390447789128236489911797559097816764393962718418411658751366227485323562066620648765782931511372639710222302613211339533866858606375464812857650901723410604109259586407104130689139384096283811572662646955241784042911608288357199889049851073392912750714816942261619286580432479451785898197759401772262491959659408978919135525183917552592909028643095795654625530794138110860129200479248083490277342304658908265369034506106608543108480436154944824134912559450034820773681980260250688749827936377252981995764938137877656120780448329451978126143505373603106084853232808626832011340579602581710213675988286052203508097709100283449371072910823504811821049633170500641688981564217388682200157137015545285133643242525788318242682128706050463106825446590716568320518302426865922812732883772255179480645482395158333762881456930393164966036934613393054935891224830291457717726182731502536423437296900081745442595678096792262616977709312700064561662929007739875817340148984007161695839354772121748272240130903616892676362938927861910687161013321420671562239777357038386756326660847288591284730644694538037507139041293119569269307492563577888537193747475152111704915645206218541741710453258683680804887051420645376043617507731540084547277746111927347579394693527341839148161946278915589227226537376687367508833267995542269365082522702919287493869263358960832051740922861195122361675563678546959154859883747964389854879024841293028521811378826391913806051347133951019362274277128019125139731821071078199925930862683694399067401357298181659500561298918578693530648213400227679493300195512692767444201062011616533594324908613718718644756806457222547730261453496655903004305639478117679909949583456894381903108771886786776506333588265485553860274948927957137704458518574491236332720885641616083853917283097126731611251393764786188399438609687209837920831502026614002714012013601592289345517395857594444657368723327362127700545941973045649229742506812285407572973894302281161287697863456190654098055049442800941081500534337285802214722421576101201902470440666840004866198084857294125080567317159576852783054373184183261377868142315778232036614961420460726796398920845728300322370187041364556364499632895453514635716688624843644460068800086643122061697840440026326908385705871486474474110963188749665402806951542045368089340346245485622141653683283573862803944221027754529643379472138789366373578101308652534999990924948772785637197660128176143955244641515778147084026231780649851957593915764965035091453348213017965584920424745239999941755667261303699086671126017212265086796638358632864831003213683780704083774377788053588568849472917055192995050506600024661328176782527428002309650157396532216654492832753793162757185294567280436341361341002882773744744539787602046031200118484666196558388653440597375039250109625822968357622558933684439550771069019905970959270381864129127480492965466345315853430189242417988053415158953788154306796545886388403367249570057773811786519295116000256098493735449748868754633380370984068307223232043405704107407837685325754409296742723927043510811011937879457640202027415683768340498167926444419894025850600862691713279454686831827298654392829799901943217330204081662783900351171070636546626103094363041647325572904236122266150943673942330991636986252528095324378867859918566786169969241378272624481158619754201483901086711950676618051769828240864798413103216337199856800654046810760764767629939913022231327388057715833030665684198500396495702955493716422794378059533261611595105112434120778956643205701478566740923341312979374138159530856532471535275780923250595067234973618606021421351898280713282381970479664626582576239636917573065381221707500035911354434875516288837825177135088050979981422915098195685971684782074235398894720298626364561924267624852360320127356510191895668814056576097075576554152592687147652846254017086727408028088842370864279045799256178972309261193129495849620717405457972676308927585741917982594031621003117450256202571159716670421075763317918319973492949809061972335533646353117560544907848358039537062496790811813042595078951740163255529981330958144797929610575230216222376790763053885388243773571157058905250765418124142603474077041676370250388267615073243279283854356041402870572811243901351917407952093057132939705366943046994680954055917695198808733343792313144628175067316329225869432131726432144090132189518211684072065345589987888219025110166436280131922114018118610003740135130634587880114125082436366816230815384771937395535322042100350058737918571828042258263328348134297681265189361281056681878966943315156956060401230419656921385864772831237855691470347298839445358113464372448284820594806972764595293529685308856229528528270332636758801636389447753471014083570600859789190277316821867972677501704488850415374168827520018003200326971574049846663240794731359554932483132872464353104166866637617541020714772493692444475793185924812253048211345811717214722754591186249553799836009691839051060955938784205123710466577951887234984786537935795854993705584392239186605814254132743651010480207064811814574488848324858483461661823869866353365583049394327954346586036510380321403746283901063786898783566088303790367967429925055638670639902437892243985377179622377479891337416368905499748537032183053767394481216837322002905113578791579075630666759577317589855196452396532012116555202719492957210500302039183627081199141724649615951584610208579001177817829426851334049968189915770448311646145067366273135949455144167227941188166098283079918635742234195065904554718333262387719614023156145296558530854202899241181962141421421825151287742668965508853680008862553052456444563527571346338535766256530661521558494405558804535417726079608110522752786313340070417242033634898381516298684000847087978346105775165143548802680858712919426036841750503863714334379138799927266334120078841400848516300352817374152552173815993715714730703760348161336515048952605089636461752299826192251175021734927067781899195722361391948865743200784678079346430108301000429698546525273097590871008614311382119297318574436902013449525719311987950608352115773152835698045165354408715320548902151651653601530129374569985221415823880263324717379929699751301905872250784416365826429290993172394043977343230504681339433548222376170516219508777770911688377178372465954197230151973532934267892049205575103401288334434381652598740352192809435312508553958471198257551649979342060944345627534347370089432605978010742730205519308559047973151254295645823345823925523008210062476267729544213448839902259310594424824169331856808897632135309821358059246948886427457206699256132902657778012665788940314058799965963151553776443858545133903478129711394086748439595312064528811064787686554537408896912644457898786194118969236069579599758498808226403897536254759454290742494824201717504387714860779601891604910639310616884852764576289751992162077182576341829277316127704290285963879531673841719744404249896351196817215949165212782574247909223808321076804839933320131403158212392252443850811632004211368403291472356119554970427013727935073343769319444142668746739736937878623896482861469383615401362709790903944821961165431710696066816668426043970026951081059307182839660591402668371325302861090600171072798544086717533806271615120241104981418103930179891711636568379915758171321649484121177516711870355200290997636061356147117127954095991116849804782407532653488871467058880986456163517877841754372958520914580075271821068208555540494423236930890916245183102527341728719472313417401807750262152964036463708350996845335598453142732087429834753010494484802299054584882098865195078924079667111432726207604845615897464885449099429236903347105664174974605591650676880318451619565002762277623704836872217917866454456574472493144504567029645281872824810287031498656101713307834582949112620995528791170564831679181863057858202340975042822666050859546456023349655342546977033496335214574815319086093740590267564712953519464579692533426397740512922622691745517112852465665759703148104293108160031378955433450654996286344424393778684664818564694161725978405988651334460784578531938453253294570073235975620048766860030372448715366054728305917147663394255282757940571179447854457206099655345577283322704228105441658468295742494739588840330230422032857684139891506219504528182972736192948351764416218998049037347183417442651350719228694536702701195068918980098015763506272357639974742498587938175237252985442289059265094683803912191033660892303736468852956787192505153001679604655790752002445928257981209236331330986524751866514556537345064323231611109025945018759242153265879889783194252494240104021900594782485186678145196398839400408931271508865055548423673158497992251461637151068988280933605397571534633878535609630783598727277604267512284701470952994315178924524684609686441010125099551693193606536488662120548840454491819351495074688267531378332389174828338471654107350732861391797626192457645698957809252796904481767802194492216370891761429243189467206573367305129259284677015092819261882540171129628766140928230832011827978496454368414243739452984173882925462565390477997699669587542279461173714644823170298948059149673095529473968588046817378764794386684991835878978439642737098223606835725733270970597959422670133205684758501051846953619216548493117367226772580727596830002149964552731864246296806672381171509048326720304961664110838592192940260443488635689814504482018528258603264247642346512926383747143918408265295653755976764043304758672778727338480991732670917977103064432630203619680387447527423411188540142225716296298306528964982558742448348195555475548953674280259563025359079671833259062054923684851344657316816575947215445390303717569599982616589163127158894681911089954613514656371247796156977294279722036375903056412103832007543349861267554313443600942454586650713612009375834898000982180528829100216017906483605454713605631657938591980149118192665741356193613861604673731193789816937787254760594436425224146225961182791559910861826705372976037229461354864992567282131276245149958599402337294509689462339738976969778228192963103912674643637161537062247987759938644191120527965197958082760729620823074985736084677072565181708347971897371229821333266946946524143234029497800004411172511465765041853889956161902063680320366526036603408642318717243444821357581562436043265671784884962972899448812530053341775669961039655711564714443458818762254010970354775159165327988884580385330934463134185000081285255455209012201877629022447770081670295518720795210816464524108567137524120501384785378369980442481280386350052076423008628891000214461857953282665754555902989826815930036220878916760488417379035100327031567507070545195118618702584056651878470023818537227797015167055154797487290176608403704690834622435891835809022158679446557036451385412592723582501661624671820072967782858164695906909995421306577431760924636931526251462665008108448543521148097651061956789278023471954256808704850285562178697082993354159667759813242943501490057087486903732016395485965736818848371531376909776206249837338421800147810804693628932790634829635294601918312560029316663215199274214174638057625794634392117239856371026717433567818885541902352807743396740672173421970117935542666091714479515774985592649710414325404943070332901920271797281574668076286045288528552258255788466643092751208890612879168356284732816684584588724279257865102905627399244004685353960283312979435204827789958284454595327498678449400968277597009783169591469584311485773882473329036303743189879059024668982408997499166880800393265131796384675026274749300342007017866967901597862474246852496414403058000210638362495674935538867890950270904433558961110401183192552027431205070910821703876907207253985965566259118004660697564015606577998131199640554134921882866740832997429798254483637585837135168075018475191938328805411741212228486161433685508753840948176630276785244031734724989532591641444257795013692213596479518690147460601037090349530679058141207713670296046518921556533136054121283952836642888816077069616530378621680707022803575996106604085233238766095086169973929844737990476013509576809381386556075130291072367702819951555794425997668579336508380768268192486045380171333582529440780118178227296397269245376061884058231601430981468413822387166214339582723854476696318987528031110888654349667404048696002224416428615303784113394913930588879925988871249522706757120607567681835214537060801851815017054775444196924156407136052171726280289159384762592364299317797817052001688708221232660365755430823764347077800756396557515504040898031738323752986130671711631246547055244019730786092621398122140242619714505522578852494552057210768093359294776415106107480112183697610749422987421211758272672630125036361784195872126037487584605807290871398648544737081502458829653987190175855563946092874032822350198613932080724822061460150077904949584819268743470610100239802822169047105718372300146154016810609421841487665517291410509801841754848399524331972429126072123029828301191694431565240840243874766194532333699776699195002769955602751186622169338151182923894662899403291479074091145806947416583149988906998435835650993739727664570639310835453204532760955558263504554307581504342480039476160666449686320575058391831789567840066308341025354106972621824530429897435214397775613455969835234705192235586119282334327113525769215815694389255986382818533704323604116825124429182070356092476335569049494576128319751171582781950962254203556970312831573346481543118990583950973279232974443499861387478529446901499585850473845337334762813664581270255235631397233005791762807059954912237403816100604257526575228584961249042908940567545547684110375076523573832125446965450976325288459808041200161137956526628960677979058509852742775040971425055254612950966918397236932013534073989572576635692605765861997114947547671274672661241186198201013072417537237955989475534710236485478522881151529121402109259755781717239762767132642867119226482018019694648931819664616901143011252385900870632451487140844536581321934017155767565559137483426045627217309973852564590950792458808773854613687609845531304771663845103292059961454072813146248518943764174708897742515976440096784093887102835520880718355029433412326247501908307639446917372796193929820900786598006328516516452450118168985317316757392886784934333129639707142438616883791434006666369489415048511135116365399291048079752824895412141341983424815408501996437924621191004195456420044885950917347646862529833700896013650370785408860092702777613230456869926390742842548597650523325833743562929805345059998751892583429915087358129424694164285321924969358434342553928562928200278928998276090538038521584374456814010937992456015023107620502187597070056239265331480240498283812750050410531237451225301730755924203034944160116254872315153689437704396678397369451108353517703331951828658303788170922082278820364325689891684193053607575192743776186533884141161502060341251550545696208452692549861650536455601664975813707832247165932884998683504848974497730725093812142475205573910061508214923836037775133910572007946798884122947463146815696473696371069311017510169505863817332568806173314928283330646155344401018747517664527015517332540097377500069195962010034119198737903328066732210010849966909252265065536882899434238230569880089579749439497837020442666334989295820675529410718250081649020135875226307407340301788118475565019430906101991215253134370429352827602696045826286235358752400594239179332714956451242759909657962132111473935716933466063825310308785246101830294377528745024108534518508821857705712466370738819108156745713060086180014473962584031894462495487892808482641967846241112989389149106418010247850290624307747576714760595642242448489146108718822625008841163686004409104266647555688616945646872131988333759143117616121243465919057385079525600195185296202066407301025589854735285312175771663142289196457548136032426690121569675425721834569758067052993181904225222827622538872772530460144856712428500631874448897826232806647756187701402437275613903707367471998627585717502303556961190674610180381428654032843148129224984882873083513101523431420436794427130315114116173855765167186104569807961891848306230304014489696925426643930955715734430630027842612593542837485632995671374782877702102394064275276411156610473605645971843274659416894968551832474947924515525215384579926172166840165410161238516042472654332285982633194712504574749467562800582411725624970260159281690589253882291373184257118783204052588531805877244833278824489347844920719532740091046292104037730827930539291530554968209997504734410065867862100820087351230168553472422819158725443072592609468302507429653146786027525262897072892173686956792637583969228514738383400441169191830154147758803279022932831825100434546906540313079928440261822355889344524659096994246149531924589091066093963691606439890068084926845838666832839399478407481797362466206646736056658851108619832936487445812889833655438556908159516521185185271410202974046791440992046882490758484309800205718714387960368762496412896120879770930845420023252696103259787704212764966117546865948807540157838433626328937966463797708486087885187416577088316771442174649066556900585465873476816420492031464102615871715599668558014419391683300108780772637200163320980172671356079041781543406152704753247844603813012586201171078270425852247600008311795559802309300936808183150296363213977480716809383327092955551677881045697633213696955156527504738683626957477433989360099942069354429097235968530374794439769309036492308401568953076739103308827017409995310724321736788569434930475120216615290584013292533432935847938706460370638122780087687899135270614027332712843420199198234849689470202947423533176011570963063357736870581481035061686965851910137550722253031806860824213582626014997651071527485548574084976021329586943552618417036205116459535890345439856444251962059466254455715980928061043148492822775431072106528410898710620687294844365057498113314633911864164487929734243121849595423930169258431167960712274164639933208119710643944137083340839175525339898475781414501917861631829638865979082719300798615965394266582250927343214348567123703392974482201923664588418553616493340547975945304637570987916942781087166311925576216762336686399221219734048496971124531384993415092181941911378520455665536436101930199391246497426605687828083268783204490176437201887078393007599185517911957073522621884106960639881732072311628744618487678208311307746752521619075986990926659738143286860419529474568809165233782280957360617592702291638868442464872293179083388870498345762322662249634608892162594943676514402609840709240564661621185477176297751565439390660201074044603266138891214442628244998221013481953018010836914453156966722085429326431193642303935071245568482864502770406399182441357529565491816041947718672848229620634813252399088516038408027098662197365901316217940594227261373497493413525544421994050919803225237289965798767069488384888528417053476330729210265700129458600834302351552446355798719618308912839713488442927096231639337891150448799953015706902520462515921846258751073256424012416030801639884006199526272882618804086754427135607156415449833597294342875873575613103746189833345635377613412105626805919472824621878897977317815670782537678603186520985605523543635553590943939450713330716241476320541662354908385308328475331451642725914921445322176425035811928677956813316873072794056807080222365693859990274645443531698317947033692587631363242119899198559344632821702550089674357851913419636382719431820749548808772747529892827570103089919704715943365911146551896784021935939324123654445081950511994254646146905894137104833500844134791976982164722234609523834065095800977681969590677674609577683888937284450970143521219803477519941477376237803691326943665241588659191655390984392560373562555961233249948605881319583490093682093291021983740121563726868954894601778153302547685906996373590771339554291702736107558231598277148080849571877178469952928446692862853384900039740211367800920913944494349874754751531686284630092270122198917379669754489439352414755823950432393457525160993643068670151705160386800059827588561659045443910883110401954795165078975903415865080974218604031122258747477558437936937101090486366202231653815615253333766458358270453937359558890599572177110101834122225599559754383887527202330271870493627327664865905543550591855881716470978770238385588214100413030210743375562106760396049886795425156283763882261183699982941247955843827979839364074890343178504212514028508205078893397358810192775663671104220271454337805899218232334142972817813156077464613577543457247080579358668707870019575785551633658522036899036879036812710572141422742753413404072845213469508940742678461519221270327177066214615899556100336253356060227910764610784334203931682486689204554771893736891810274111844397011736487530239871775138723133216185838368885527182079299364502212329590092020408690690195394876448502061175413232266403034456832256270052994645925535224305430706515338937326925270596216863875792116741596430006566975904045893782946441622341355848120073768846723187992777708043638774911060467157081105166303415980179866635855905244833842771543106438981384884089189998209733039576764723082537719016020529919542911107356006103954429569448701932086121682119954232408930741873929553621631243053520638472151151446741394360501145044322769873260148156625693914698669804455419370976551459882758055526812353660270617439430810014709659162584964090096253730501993427214396713457759111957699823150267893340661103711280264182498744442254118331374396234501341239547741755276590231730908167158022698718575709615066250765670042180728940134489381736860252758486067725413292641302485485288438147714309982292646938211640018501869146107999198782031351948647602543377464433671541938046017345414270185623771040133586571453015568578643815149856487870222425737048316720966864739026786453176768232534660367312223660604801435541151613110090754331287415776078305175072287257501954694173162049925206807805037516281536147078482936905622563086318028671708572891161912077762744985659556539887356399806989796133158935402036092315011993549096221309509560142583844276537171306716314649193539896029675823379435201392212021126306321845932231410893659256519304697059239890681522299320592759647150895269680494937136537521926737830527640671995528156088071548656127882800835087203631124115959684973507436877952228935673073926485728753180989553107413882009653647081408590133659213648062254360180375885792531668755912675576330797561741701446463235215326913040794621871215542576485449330765528317097476278862475320324209397174356515332289365623042243551106439027180442909496665629953582760062332926923738153952653119985452637383643079288355864237748371253548102041880107093265433504114392597279285732217443935249580036214613900675710842435440212612012445975111601276642866719578938529906355083465420655821066741506897114028801212405972315208779291582551718783197418942260558166829174086259579366743337451021338981675751871884207995085247115740217495306111477556705361591249626297327689438830954744471868428449073317020088658909440866224370118968835251588763947681426393861292645105671262415683665436931564925919904420743629711284684577443131642049909832632208072413184379995022616526699638483293651960454266084738499514067049823898177815214089525052037155978170858283123960788932135512332709149319223703551537489172791049750048857373821329217906680375270167125802258103188732061984879956747072235564856826895568177209412726033581240552441641459739519481170344037314036649154770736193846407780548689296441403827560452062474403158207234620579987926275192368170489060322929299459388427301148618081804387121828930163045363813455875602850663504966125460606107657317634411436760311459413756526367007906514725280191440352506828000928764145717889148637595788095371676744054167591671146094474505106589209030514579435563848613782413329925660070637140368636067052169221585735072911553390133663771632411593438329669212175474029778935541623598247413556426322115210526318092137376694744373956775376646847563728768783917730109668790524250806735916985153617679035333710743135989251888624645421354980574817105664933729434210325213893793625342839939834073222769154581611735644118750890589542741470004817524199145295514458488402438245780455394530905267898292667687514531025369353555541157455491809964140012603983148815991475198266959030574508979206668353707181685182074911137453546921622212396508096371281838599582548385734791652957528935671863213602918191132600586288253495513118981244072638192871012117825855146054411443173051195354862367768000237019524562151040904584085430579497747379972398246105763483353842563204237895941509030519383207649823958752799274912913501736168984419618123499891173797737913060923335763038416860208423794159208774928218098738016889423285381901065502599444995220687500233806258163609754752744331059233089361190348224229038230625077330900463777789336638995599453490532036801475433722676238523749238480111574449538080956758581988621984566059668297676009670371013287323497997236529316413610730069742757428956522648384693959894778975072546825058235059721957455084536299991591177788808556845346086691295101632528981749852581733098711453925874815248333077851186987261142121949192397986794917364658269343800142940714791996413222585403671007174472905861641470117154675530423051083868751766240408181526572278271527809618538139263980952230519670782053975116619597272496500694566999743841583936860839805754080548800865376625894627801052324870329834150190900701168999945335402720604509870198681044551430994733248678787032138258461051867697443437112658303787921922157040073968888242667546335385861610237410281449450435390253964884731595916732154519334712664873981194410210438107812342443175780329200960417002145706739989452943552916151320520643002315959438730690820587468393567940476002908697850703597591645416785845407710421363891098602349123856478927177556801260546185341752843175451103310725152932773415252171296435649869930707113800901906555668069371685971749083446399282972524810178754078421723125153148343462020261696206176836115525632420862706609125447090487544495324556382023958863251351146983744339256618185778416370357191928074356744057374913836821147757474239491541486565544399370977256962724865175597898740125204561700866641506304382833299975704899365763706255527582404642184942615205314454803829166606374185420010823102116086835537383648907162727770466810031071377670778661121170949454429624397494719025256663847142158798835309663691905893119205745943063095989242731872248355281273008948689855837347372804782556517098010055074006232253650920691781486708637890070644818675716477041480350514804237334730087364885594975498031637944797843476719093394071467352539984142544525565832262819856290835044205480507741192403565132598526236500436075088103057106259953651178459721893761683733810440618240116560969841834565455152319059919679313159041765597767647326970698698134710119792688129343261279111467730082400379856900733753011776697455217378105847158438106525427736867478027272205402412537151929231030958136367759843500172506368177055823384698630795379936467245548397116464692753342865626960504561858444670341160413737675294479368541106076452415627797004441640682200444470691417868232477579494864414305441387066502103135239571403839010816643609387323263798252195007782982352051509615547923427647984167444069969016401865274198505697770342475012211614725998290588564137444338791006911207087652952135971803552582712976916966269763716106588487139863260719291484913242530541854050125177536176987446587978170908333399190467404584112409732871509907638018593857308658011455565774359730102693271117402454938920256125761103393143331904292750345619864017403491913171582952402337393131108055700350164319504211878594040101265192436616222792351487592813055500591987436802149760719350818521637455959528478242564188960751191949471531166111911827890446505899669387714681439766722057520932653811029768276718543528348735733622195455123675969545348475840439441176671413325213639968792378778792660708129080791531884918267489378255578769242294948403804344190232216672328542077692742807149440431240412714294714734992600638223919008438536522972253939927739701432127430532275224374264933231220349549078764401041854442583062871507775366955695697760143662129174836169950128433475708723580077006637398125722039553360928255355381170246285466823129314397987948021324207671232264830460171952438965759651538029835062589420373349411118169101455354496742527001097503852390661720976595081483495933886218187430687717958138772872753150536623376349708079514655078701337937518239908446989348424966314261710246429847539154811909466943668015116652498769454264508851955008960624727042467982942200805174248498190730110353125279500024548823145411308162159824272482883403646979736856376463288167808129458326056709236920588779041210811942051596710474477648530172798632650014186395959374132972966764862190595215129106890854956999282445455857587889657563694470278837542843626823386667436952864658392134217253999391880961045413320102307226223700305385477121904201846001570266886103669059101297811549772012721073151449070181953678810176598219035730811213320910756591088860613245090044186659922948314360479184593748960360559403424657718176173679062966201789358493144915039857838039684757826212340866144755976218528558216101732012968712740722846350335415870706251176257288510192173908865174293402131105708437595856386458350514980012987545350940469777281302820821365154867774136495285625979933188499155555065576272266719934398288953200365594487383482415906089128987177587336565451122913029978930299754937253043960715379004033553434656901347518993488944249512744892724490860110938715244627088731492618991878294161968011026312025974955100605803495820303667990520294623753616425623470114549297802609669531837980585877500110970277223666299235953687251722347790495168852587222101436183012977400646449024215298104332664286961496194217991502388966915579419485334215328709103564331944635078478627588488410799224921779259350677060973550514703111602712077635984609865378841280131013296455427448674908931397200546540298502120637842110833259060721989367547104408925860873562850514575484148678142768862536518836182668320068857359374852425156804593233128506980316900119643224318761032293791295471148439672579571055224065912881611598807374367885534062758430197386836960657622416855791860883519969128082095840573422197653505833856332746340939390296048601128329986709177426734783889922183361694793853453222741268916588415144562225249381867380591222969002660679304441261289024814096938754198846942497698726942603982161375668353454607500313121118458242897098646963557509764366944108359919835061079533505032513319145895715057132890394823958739341673478126030142857396669952506944125886914000487251082206253029185076309623639514098321451360057549833622183929745707697193245332788946859038095022081387642488951949230856774590630609869603207435388481878524229468556340111898951472448225058624678879246857571417481095434238941215722272110240969933038832965015007102381588119391573932442946863583672267145812358447749634095082166839456781151582681766010798724354121663921399508614713973307117283658898291422324533274591528031059791403024812176489468339198420005938162860972162933161572571804329069620052711254076723138352070620930336190210181923703980181472682527001755218930648768179421720030919329566275727826387992427627049773373876434020055408597521547751383001928447584306599049271481306768150798115620032108580444294568539403880659698944823223401420602883593824366495436806399754315275955044965030237158011720018551412071910449631990083244721647193006371654723434640019379224144355618210159894104806373339603214035569434389956939171504347810647989779953502929108925288520148452764330043529022802261074138787282580047897071487352826088977364810339961127450856462786560854112848783461313064966965799032276515875274600542151689525184020167873639638590609876180220476993502594707422023875597733936391386600464148753439339366590744822147544741477083724195804242717909800936227194643578515169136931706926961432415465498677487781885144633115725109210416384148441726566918804432250249130081781182602391332518873091453196492573888939685508490810929904779734296354583912909103388997030996140439893714932295243205632660512680050263822734857736113056065432634242425902758030218099212540921245202823858907752063061102598844974286611468393145019941782249412448666496883445579618971568983370756616785659244856652416032851259783057896178128466240627355341126966956251475261820779266078779189195694370568358164787265261742174928004455993433733694961821805409609293337954900530193005766842253452247054097645527131811704115735063683414987347948136302852433141665396218055847744985837954402663085946907042338876241296550184780929626812944022522069584544147005170198696279969077790022417553413015088253804945433703767573274453110553670472281391081581905902285912578843192187285208715143714276550845786393355686238878067016444078168004624794546969986436857841061890652848727961063121612094273280374614295682121684827705191871376590940612575542411863967364840396462410861138523973926164954375540605417146595578410400278531255663883806518391713804311250792588915858602658163270614806230802309375477842157247217095280123868007844548942697066989530748275068106757373651137119155254610401085424104197817719533926582857435053125566578454418128161665039007385627195079463280518877891252247780761628827210278522303701426369059767738802826054090455863947138840751798523219164329752454276198226232312462012305875663581315881635330573383872511201110156874111503905074104608844960984998456252789514668953618278733750662653586717449676947500107124011014582540621621176453614959108148886221313138251907836499274869986264565975825065286970139951698011029127452222765058452756173489799562034248465650554013894214730876714844539625981354227276470102654457806867148125219233393500532718022873121768826022563735453717487832136704957494888552133651696014870425452579477631067371172810068135487951850080778925946469460449365569496156629877975250731486491422031612978825236805428123799495332063508730631523286921482814444708981838725235001102918063309845681247072448381893161840868782999400239136244822501823545781065339960769368723241914926093688965426357920583231856803802783982054243368691227794509816070476342213015063101563582743769994459843424186917964747834205223351726571131175100129848177191857701655140712842934267299363663520779142749502569351430840344776869425018664813474137959622427943780404773267815951960909080761357110098145199775452940463738709055333516349462160330481833417916415986661275928567137513212190132752647607853981797238826653448133833037596482449051695361463219704328586869761408515654383738505406083913296563737517357168864153612222445505590132849774256139345183389462073711035019437761403713959616409844639441316451119771717767439633605997236094931416142530129822480925626284997019264656592614311930716035705548326735569739854624172195147286193698003612560318647327665842712646372776534137798235781892190509035356961068481124359574262505324771709193366543720665164350772680051214253754188686511673092253825841138224300129310612000799256684621774345235442848585511110947887425880981006317362750744309194103031850709517697712849184443584901744083873314630663953458693072077830344148646482734913729216057270592567685530763348221167483836866929808001271043124297098876090147922287032332389925966073671942577958541640125259472392911733967792260417571259897714756910758505255705382002732031436829377154315619976866028997639882514732985791419276282342943336302246969047270790756987691726825429164581617104554770287134760883326388977227955573062036016935982283355833884808858781751218940532989581435012456745833067228234057493160822024309371579394856711239342137771456978711816719988373048438242271788839331570148468487723749653651314624185409420868432782602593691445003544946103846720800804327458070248919462985445175916001814469949167602875416869557425556073309460665234633745845388140187914888659360597428865238911800038252831709973451936008956924104870967900994783496096374045820382816547550452530906907651564838384375519245816730526486563827039376751977022370834215604897847883705115263699720458637830692408980571598040698453938778788342708984314589552794304392452183424613757075413788242632169626549373189212126444692405341050149074583481754899280224579752386819179373595850795231759666953281835975762115494145431565214134928255273730280667661767718496204408878278753847013167600853688946392669933523425868154530735981819482594091434992433195539962029036030393751387676389227861228645360840899043127876630822594910227362315724222498635381666661004874890260276148189552587599874453760628684100588089784496960548629361509036484401736458515640767725716296113412479334619468426503083050885472209181011810280421561249813187595579485254641051470497039808318306309181385554130948691903879349998794395392457307158282178831096986892141560012945365414712023801092981943289232074303511871964708733520108729512911373506382851974161028316906474602537849929548214532519959762089044267134467341664226032681454725804025386815387674033412842128239961222630746257655410400920805033938742619437635918284950170268438159689686021287346885785162071256207122324745045860974749813621041124486073784890675174327526130753323546707401431908819081535520103311590827655171500380044739417262902839182294840876458824496946149312106055154364341571460066283901099836967396644525501384442070866788659318665839500522133054248118072154104904861206506981062302774839554757684489745555584870751535109853355412029169009663460367196011967672182099941842171060529919223966882355669467477984231194580410993952895884806363804355563486953949036516757146688149062632536864149261909045283138706833929087237083950605711633895061977808911711924460252950252474719441958276764229901964398630185312331133543115625805375371966136113134302776560075496222498404736338507533215351621778857017645454727210248885079938617310310734204181172214962933666803220863219938362422391602996655850164572421185208081477843940992419151626967337581255208275553428438291194069805853273227257614841189866262996161604797387305644261148111374235174516876171053844131722565556015383477428653675857989815239137174174144026211501477420143702706128639675464571687613034585057921113194915725595983742620378940442148218918472935330711515933459710888846031422053302591814622734330846199179866261925399270159925798344556468422745446699591515411970747760942522395535010196464848345480552827993046013251413383850444756546592206020088623693215345912744268270756609882435933488078322459940113050292294278327004412466680652948999251733560145439593816348300728669439808568631369774455898602450281594007960455642633756492253086154201835282317615575284837149314418757024599589637012215595766906911714781811892164730386422893826129970248199630831184557804900630683875366648179144117793981619963253171775282121166093523940488282333865609360289882093178888055452465902827242641806088179992293427061886835052862041641367511180239354459228996416600438071678946629703807340445104359005298050058601305249344098638399062599268373732131470249248029370466591974689546196202024707110327425565527854517020331748722492797152124971741695394129781712356774939830491682819867465823161323423205056740233043555773298694856171088848366544470862842026595472014071182872835181926572533123360532524591161839419210369190298916497351616633060781128166122472882676418137817585365384240471849075765093939047994715715376811841292338350351590103447915251122011265432123629218160387086122922406797302262861767721806022347869718725780808670608431786793945097007574130894868682120151198097086307399143823799013548867078474082734333196535208535096109060309825467365425262527170475809776249440726279462341600437470190137257633289304046038376773679339573021229685293785743142753118803373247911407650913566597600146649869353277059973796743434323938478666859223644297236226146999108404947637091172876737326892160774213435310657337230116186262285813467508126006600467420273944029741868864676093027064108152086594571308281508356201205443340080617136425231515288521614546198948380818289406803530787616297302609194738168950290513846121418298955589440256227238272980354490001206235509327163566197116093949760708392130571331125031439316953868900143404408317457373443355807003555988943210332077067896532270485788687492521615102369878523454826383397774966465541724931482331777778580067192066032206253191301246150556106487841609545352647075280503144738282136429356070049530915916881520376363474953744079590605098370997447887127794499021153111702897984023552435768754627047468097128649304710326486673934089194095417400480878489362840424540429081812743430699489528609193557135120660931221306404246848843897554391286110056606168666789053575543465502335485952275044044876431096857269236655526681203716517755990753972423318002449878587274323205734114280443916640853872042489052751827217121935286718154781137126452379744913975230361869811011803033343445041587045990231907358560533752882258691125008861783482450899532305581261256323531099205850106556321889113253499856534195134548658712420213572894495258050895975075732102312869954342725913321889744619849394995875007095178321215643817312171610102644385751056439186680201170807142507385484546543807694391192212491319997568169533745763808706973883368407397924160613577039897587540184336663855470445471180171236792379175047430890304076596007982570478755082553156538953491424308730986908865287406799036013802015778452447618850382292235694569200665577149250289696662733475949016471038476746377885633810370155792318834175782972344287715860832308740825213288610249079810543824668945051742295357887069055724729481261200682622798699879488130683546761378805283080918656246775545528922570590229141428481163132887708263629182788536958305166874625614814962657181104468671385337518020583169311295068137301984000873288870575711783941275991212224197148486722251418126868553561625653200289369258503804692306726865960762485572749953250222420863000892795303644950511388119959338129861970655625174347886175249766041065756825968857901300516333457069684167925052435399346623401797581655666962061923748944636240620457076947122992898688016820921619029860510749248159067765766038741838718762379661612634293219802709210371098614167021870708172069452121275522854396799868556768712449620479022997190639596291066345292323582459732848446958942806996824620077067618250015220615454329943989878776504799499349187871065223680079649136442297586524590146457883716985972738534170320154436191973964522745121786878923680338036473967588673398348029074642337949858125345798770898463622648881136037810441174056856522971893255632266022572837794718585085751268421175206101531781222028002665871572888526682558966501997039135454174847304621366402728968574463617991039976641340779329622299816243862825539232546639214315928529634754472873241624246248978669275041628666204124922373317944706372115500384270909032718855061134027267813360161642910990867956662399316259749906236965425169457036744416537266659971881648164599239221196908727761010744418752957160663811045621304790609926870171369525439981295531617508456609284358355310943713631332184435975723098365279018764512140582057452821841653554129922312405016114839528196578281738059350919030466460143502439860170137620494713274016055580198794946964381015112719285642182787049460859146803595978250688142946318012827775765450610457874381142368954649887085725904789568004665809445806535339832742854390541850891523715820314043217208216265227610691217449791127300907969562635404714450471327383651153174272777600736169465870859449638529169132764878687996986483805669416849408043769094844779140261853226544907128342075536757991841492501768452798774592346553533086215252035694645361312101206017550473807366069153538705144801483538941505508149226527210588853489623051713048265637610374952986277410181023476644092813506761190389411158851888095590416730064075613920772174860102686284875823261528910637013497128758313886149977203160606059164563218761114648647082716899947340359533854410973448248711686192158511588329365844437497044274320909059841113178018927732913943017459025970714366283130858966587016338268198227307573626621466913639520936012214614627896551449224604791945180696148247278469844261977844850618506305799802962166916834730861606085142409873455285847222192188418311132741526618906614557699519462142530995282815061654510326950527532112789404221921915267846173019217335557800327895217905450435219957078034371867490025535566359468517834300069751310676507587712709281749285718506954091185557257773138730755863393660246420823318426667652100173216493575689130087739492855021871486071058697116905006746180471567953322849017083467856023194910829885697565710403870709076319730376784878344734675605953178925045605465895338907352156301833019805213535130376922401547331625601851282292771234398569079052606145957350856093854171656191746779976222375568642532516353313452801229339957193641273272494703745107308924099031431706108727337392424254239038832958172107952683291381912771322747029118999635139160272988740506549427634388167531169387202093812172419584543239956649598338289345688969944067397884054943543228230839383412383751332904128916171892115401739365046713855157791895761988283124275147350917108354120484141911718876102219974116698761923795982718891806287619554464879908382663236453876493906994131267638970264162707469169629322462740720809315752396510205986605044151035612303868928557451955484789594939223615751302445182924522614956020945398708658504971797455925943595973197076897740089440167681920909886386046491667998873652813312064168805341057729832287776644692799482586873959933213788159841199823126938681580670748413205544680058672610434359303884168532632233166570486911064888589871796046653825759613947841336514413513613093858712283894583329532777228750140724193006511758027114846623858243721652264128614762788323286117481240794469297381724293088400557724219909676048174519282057972357068924978053026093131388142488708343989302029681821516680769381368043065514429567779490405384148633757961569835133102130171382821774253882989898536186274524871735239941549095854185519811970667852978410248651686287371991129225749769166351970214642805487907711703221578652269917493979247275811459101401110144714007898310399095697529900694976875257974416342710995242113561546308449690643239948391241526546887582036402851153553085626907970528823408126099725446342341587633833226971070198128093348355784474833914388929275424554981491544596226391372548401476741586191809542602591799986984102358572960517006261270774249418537129405227916729329752518986118578938324602653492313574300216901248012444991646158803561037966013465294527943729836587973474675226321462695759309535013854807438004309296176772843087410794412973781783872101801473324684551605027973717599089825471609558900186133271812061876486032475972305313916109952259791151761269637125619872589789873673450003811629817646681262505331860376206336174859960625801599765249212349452372652678336127983065666982012845487274923273166223853560472722079475174894200367895754017378969681724293087161358964210135363249430325617580821086488766161466100819221404474807209628425057502799443484277531707984626345834887717617247728259980048548291967600421837991716295290168920770638482258489767985433436655551372772900585018446555597483101800939219637350854608765046503927419813690080776706681665476785035291106447822115259560270694946264718203040807522952222650215524502672599834627638658331196496724324425228951290319729321108441395496204472376463415730157906530064229608311734527504705199386799048725908616737755157713967879816755465087741117739836216645301823356119240485954628566595189983727346869580492414598573351224964983401717022676972532715301164223826395367669467831786927653128978161910259213698440122960328916224020933446506262250907406832182565990575041762173281012897448369162461586521264064911028095617605218961435401842222315548169389989874752189139925129340981206842160251222083613029101313245733293463031163308916882654006382676059976948488095780528667509793498310779819614062669884279032572295312554452892161187170624310144738323142876637759330453321534047296040431308308484759655632151609598510553933763870457236421917061541174535628366469767413993891981591144541127255256220657491926217283643612223405355678864299143586667479434477861819208328613425794901413967888166636622206111439509067413601193990649133315005253355852710866106432523491191526457305777510526491301340906346272054785234692485603534157651684299059908912175251789964496453670796558715502709787243445366421254686523852567339273765962931125625124279149553376102704048338358781841187184688727309392099109570979147757467348347356815792734639971917950542198826966893852282037169607050660334636981861882705372468163113611236388958875569953809008049912903651015234504823544256730098049287664758208394570756709534158896548073244710395403178721970902970968399022353817060944372623845047158509207199549293214754120398027312754643678919883211696691187306630654958109967905065877453413444635942741270186557981633408683346887925343288747770220387354590607463474160342088277825974849202017168472905144818221108989240683562471070293638093986570341768569965557565757821263551021251631242398824154754989434625280964917148029197271548247831654420136699170474344743846494563903643808106647239538409936594721822661015680986909293849260435069776202262241090114536775950279152752567001783212351498083447748656231809130084128034023994084827312083471957035441814481452556410888798382474412950795727042661174601965929078038502171327651434256622282987130492742039652505476913487147823141433116893924319769631934284392415396089603844881094901369683180529595104164135444794553044378572781457847177854436388485306304843093721785095096770551784941105545413185666642523032007448456640136545634825864819174106326775433689227346311805074166725522923640997438452961641492189484744420346943953584328234315268761196548429123393694369222002542279153192025813975705346503945139932929576446619674096593505388525870693346057923223753679552813552663396836962089339125251716052400248956927909289327896487092780795031701177168776507485912894676628718338761214939095583938515199125666801622406657289407167941505290899727324951413701912633569410857422030946315842654635826356995150862516750048106978848387476696930641176714548895090340855270128843829720004073724955526843886068320215741974723059807370046874192511265519237074353531180662221947330515111278847247942698712321374730593628078207484324773330608186048400652841522420555253110827816232812987868288315447192697983575688699920052877422229555364591907342193450862536625329197055971834602898115136048644861997089094876357855263702040925077392642999693199081910691933921451389822087802916575626457819074557949012896239214049783308530525707154121168255269091651366743955161778673185089672950140754997235941783364774937597040839909005667506869752084696015664328529099813253845410731544688900108236464975074033385304928808699977600387075651112649951887568466465265350370530385911942063995259836552410196686338515080572499370949498886467050720870871319507808750844366695557615964183574306223639791323643558771077315181829011536590585794305105387428280316054863813258075223071907643297115884779840478572863028187418886158569208678281033584510903128504204405617406431501316847191045198201990560085969324460547673986569310957433827571703311154347966228210217222380074416739631306231557849926567227328003358435153879278916234248851672665735252117540925166305498355764843955816475769272765679188965402249097285201425933150198248007798513500608210527815648025431050727030980402542834079567700809188681451506812304241555111932549225752822582867961633957633767320201740024374687509657377131241123970379953173781211338662036301585922949213785840561230347626773781214045306295107252899335176765394212082323951567910516369083295783364741126025524071162598039215268698868348808105685576375774780480755384228102198228585372508081682889720113730649471747482777808534376849728706524487151491378578071905346343988402186291232701717377838741465399575301019018389502177476013799236148622210388566350044951777007727398917473963824986460181925890869737837253358360923341108864684537929691479001301205115587822113414263778860415918930871502448384170144326568281914905211245459168611054244893978634882462520184777917592783266796257807670177420723134391401992172133111558518508899095664951726604807506198986087120377564920210651698038896757793399826849420708983519527164379056226466630879331088585091102195687261106677858934480042688559435265495511620550894804631250446417829382406016628764003083216811163002309902041065173456933641694107618499064913857179154302685863287556630559380329113035223111492239580762899716182686841083060194814393893792105264024569491224949777837064881863137295496355966642382180105534029132556423758471713755717122787369489673212873998598877034991023315872587979154847243586461528924154787451750022243644661805910990039848514897557387985350892517053952206956871764274917533733233338637774606185496043594619021278254257250356087223434002168311666815987150045288764219908595059803486989981938746910961440296365231658773119696685311746722603385722517068721750627335123176342593703829318602818615782157499567474193487507042373903395380922474331423210236753283718821647844863216590825243774921662582266363867915845453160173215327953660296175696800573151089259193737725260212095239942139984140854447982602713989216316524296993060882299720821782913228168053890738410238212077255101160501952369745184281251104747235652839806889194679385560227868814633504198748530075917449218423967963584030866047111521363925888085571862953841283879435362902439164153173980498928162713924455294522375008556373786636995821700815276283231158763148082339139626656826592354466549063801279801876050107751436804692841097206443815086294650028000299728032087176597806013600856982708454367130285982564091544577265677188547095472621887389430126081377694193730785512876882208764501411500569588956115674062453557113210422788842419423410038683396525072005192583904163973772980398942943297259802559498097475304751235091022124109185281082807644029978610346227490298275091881996904477893957025141702247364383605410199066744348447070158470841061943377870075397328334662433990569110387565857971511515069520224071050954585534362624466291158009547517168651955873654688286502892857791079340420934697825881258811772533482194754072232510057413660610968501509886790321507433875616437128378201841079345561009550878505548703677478443662112068047955731301065865096579905359863626269822804810548738780889008037124480049539677916973947302759758133230779699832370883549976490495634202232897161419299065797898205458636333974319217332235140499759716461339556613662316382415312130712142835509302311075747923501231736572144015149830182012317004143303697115738833665340458833063533878500532637952796512658165893382530017371504124370629671434269366344130492124916384744828596710638965214599686672791637487583260991215906714021968647540174659684870166738775485033695152714101412577891780757639309109028652287029459242689180664353447741678398675213471160099586975273917089897720418762043504114031614799400533459948596464051419511098886846662198392564990273911372954594112504249784987312116167754202813977712547012769942602617159041773373360052589760097553637706713327179229822087285287521426607898852407830252348620832091681370981284008197302981742968653366187214229764088467451356074716454962350414075154814719590447445748328330808027337636241783902240280539956283122821785352533140239853493629242787194913981376603889131092594349601905326673122406111639697705463030169337050929142236259082204591820646337662044595712082237677886009857693563711859821084024227178858068858003318807236736427362884761742607023046938898226984278728973148425992735261882139508284464123425495969293727145236599267469891200892273555656461389477501620916365410531209062516686589430284166168915589927635717507914481652878842450968423981945598910163536599876617295286854442749044699571528051156460423976262018949910504385356975173635330051415374808754408837700933545224363665976860760210140588312956064484126620817175885970439888192914125991264362608862430044556103095403391684021033930341167314971210454993339612993178430052425379661041441641146228468891391089704303377737424362546160235269359737642922672978169043857572925266166992120306715223955327095511563741206431950119107560561848439530298016699779331626939328449381694840748750544393599531053636292718547512728979202188670664675162754709518966903258968849326119588884018823945247608612274628971901302166448425347193258842599156470546901254175558675695992736011724979990022791177682601943439353051597661259258312472467720711344617288753356162499065409270184194725971952061381755059873453566950254543091591926506339096265937728498745612784861034397962892565098552737973952929895576569285008329334982948157496282980557973789046166085392691507886854493853807816759956546751883749775427582341978850475948673548159743336368780994361413638909685343534086709811508961153789134065464342934973154425495799113292276459650894242609786600137495966524013190392263915571773712266017035460477735212797325687346117870809223866644458805830484757558015953392110359810424549468666085322906477538077765335127490745007840507060330914812849330335051993211386176023069482435730046748308559290659357471369431986441477047249895575123239627177161453100072647793243659280111136845174263544723386911525695279333753860129524095653381812374588515346005280986288007590236371812671403136870876570376769777658118407490230912802729164783398783938829558603185094133341355562623248810963901581637058763404421211997854429786848232949550187381916552890136342186076711538442624451242132796351228661694247423311106662927437733401772289326991446962965058477766190021208037850198723226480969285563867921659467715347837362823568299326698718369152498863461079161984208274198840115415604528297409283471700489336106427839124015482899468749730916203561332428874154404353511996052794082687328364763953991439464951512212289501563526793091716597446999716186769218987619135115658070337542341597348613476652779237905998289065956866385553720690378770212942128541873608691748310863443594687667972682430422960880454898449699308505840652262837332930911411537733494116984508799789165441651181701552761419121502409644060947003410161729569677659281470753182369375858097838826118624896962068497550413845802405149134655459673905473297888509238336456892461065763660466366237625805316799020781397495683336900641179696168122243324658980630864330816895484230854414706680916678874989197176332831805390493347896889626638322618076179822791048974829472919090949819717217675084361024863113912980384441892838075528471832720041322835685215548822764103487913580526131316520550819261898083822661054873764196050490244086303331382247966709864588965204386970655949183942642702636857719093101582463576583274308460060889144467976687079238569999276936140287568013637389264325312716308638280430528075183853319291887664124714123657619359262547152073538159375843177931482885402443352702282476307292900042397510747755473259769993050171741821468358610839515877258430640704689800509290337751176130122192860393959504567490494605779586570800423531988559139810709057453360506220271272191987707760245191916316161326620092005081076256272136737513846375836913618019925785701231967936160500133841472883291654581700353310449634586841485509968724915044362654104304629839570622688160519941779618746512017689322488828257588520545372857415503577001702132421043086385697511038921289149416366334739394691824788191497031925151941849167791802410088449855174779957978754370443859749653266855529118444513828825688012476695147692423045931429710578924876989582156324826862816913866952286335349423960895174011857924869769372655044746369102124963000240754686887288776642805196646362997552833390049245484010577646444106409292996126029380390474117413865521188313631903595457942590609387401364426907075917716451623230825238439928701897188065379836604239959757985754143320071853634691170136352195861269729145329895795703341072298267725925931220843598021496102791944142279941287036502536751125226957515457441413682061482782669586300891917044046350593046556884724694474174527990390826548561381171616222780593228760359487096091577776400305470800289145928136374960355114073572055478710400856380292986678548031761759646947735267503958815573591762836789148970313948498135619937468865367522174100591212109329373213691659424308433864179036891982166859073868647420210961972416427049194702807265618300706589217928875875136607405108906487017484691761240874174086358651669750397936139683813539041549746958705263091994111064014926367634132446131395699617559070501589891428075730291838639708336471500429660307249381469047714985679042458365745803656624819453242161328280425919889401191394318900112790619278337492815973363084265767720133030574943506271031464795977055643386097525233043860077460526968541859944041555055231193936831091773176751232733553934075729117087015860471791496306219223053690597628423544230288630122587698154823256086434371948602115137306530459851051655679091771635903359792978554016038919771723675686695900430419988996901474910781509547824082603974132109244368098333056126275037547418584758354354860568186298710666161013967016448045140155915386701031231707621557259200233772473533447753913059354858672154787612275759418036424653343900233083428371558503693939387009156197955551878813390294666803174215055649072364875089519764259162867570853199755731777048944047835613913415124604092589813665080092345685107422250490834496862480370986172809092528512571002512765643006129387866188488332259238257315304145679269488579546278329728011933130692657089800621722804001688359708265627754777883058711222667683031792373965094797137294806002648252429981635842747418530459381115966200549858331038852220175909588247222213678899938021687941714420967491906276259465360176160560882820240709254561758854545766207419849659112343216626742446693559374454960699007203713751945847780337121682518370251091130365471977723643082682073826498734772099170995914883423571507966161567109936633124047595716355108442990865739878585860894141332671398968966317253421939087551245213992348003583062530438322645246963109531304110233495397134449487141946711357794325700591569658081909553219549471477181679922525826752077110489288406698723884544773612856291242443322435871579951745419464514426260657405603333147134502666661530450868095857805264406503726855069938065110418065216103828979437124780562902429348085969130514977126774792398664289563684520830519922788578349880700472013442190576226001013219511552631633655536379588149436380490347945071066030601954405534776620923093345765169261283532859765570662237027664417523879204444267238357220426058219309912762025297470112624719952581789283270325804509487263946031651988497697647895158774615694988862331386075647816797897096858390014752362434875257297865713704669296052276643808557233512580122313224034833185542729207175753110089004013787431428321693956392282898981863112524769958376901124434131921904763986085699435075330766940044856338835961982828993573307768523355899088198816665306344136760446281768910937129808479465054512870149281803664938348577354657757024514325627976329588604928812073953012460038153909197027388323390072508431404622889635387576625189271654125256051899515141637538955359326293761599549140564187016319778186626920756703350389713966667543470312335077877464689508526495695430460713172408844856605629219929368326087534900412632915663008958907534160019722035225958073123340714993754854223706238734514976891473848065222732817229399846691913160778224308425510351975361505410839485452300770057423529497226736654144721835597664568153431622450930984859452571674824478722273111746745956452646115224303772438771420503129735180584626467199003241995614979228872414696921566392275164761620093227249588105013200053267572965331634943765105897530402637613311443245889919405394368689657690540748912179150078582990629798455057829233625456305132412750462684012258620366815594604883187284592055897170048660488573902432914829327825607627700210491451807356552032862996404889961585589891744069229754435522681773834788622164244225958497780799512649131280058599259883242001207886861621494418750975673894260732022767745085816857707495385322134422484993678882233522611040743998491930981632050670769185275857009106150152266581389265744737166695219706539011482109946024100732105743982113985034187556950829179811378396990773569975533151984447942473425931553917738062824051240449704562968426879514166356603581601566862575591127798736224572842658167918453104516420380871158637513366597741153415447759179926742564842381653920981118551412383681622066691933183748748642829644701703160663855029405465346786175156033402817347644946927415203001678958677884414290060213731097571037262059104837598089368772620214199356765216569924561730032125303095372170064322602653800380124132879392556847458388801433895447231321124903902997273241707488271175240189474588066477517583834389433009527611293634293193237295296705214084272924542608468051364021902475889498803156950871890964949305579211494871083999381050288012774355043451807349121998295521002378661029417370068087870570994142393353016540609656592557648174670734694126776602817745272753740121028053812158599700439635130215205269427213929743056331622754111217491516051066834716470085549300159437462953450260528455171252254893585664044163318841665644291379112552468226531295620274520677082142263271350917929667949028627114683902332459375154905548765153181763609775249441949090077449097872741514306625764891468206289650512617800841573978663863778666667710008366029257257331545449272517172549504440653183987034545001229499753541871643118503477999236600658656745146757274897479269469062489369807370823111439454609482893811443774427478888557456125808267050081226585751497962720404440068623523867091501544028516531830988895202024521853392198341794693987129316903320578904297489140690477078660245302371105485794679251311787367808275147496105136694596670547903673833678116124914976200171536567956975597407979624913075480992722281724652975344140556920435525828493974586651345514365801886221480006736282432114607200108092541049865027627060020299810999951603878278135042211616209997998630046358324467856651782285273121884120565357538111558947778359771541944350911210689086741895623206986392336932371510376201380039005344816919853255675907385843249621992435884655696536403502103730991957057739852947559468120119304350208285143925123232258108281750245644567478438898810647952830226213566223141282330501056319866517876088751097872588406031010716901949651764335709242639056383293653319893943945598531602012215386990836606186719285191433861541528318290782561171774530116085828821064010143521621837072668934327369645256574519428570827451786939757859459959378108905534061213305789301740591618282440438764007582456802786777343425004649755869735201821829953540397837713687637325389728154679225522322251896569348102213785908715661503529014403146743055657591558860057774354490924637599937172446204544560853713217815992146805936203320610225009021712612049120954343772195147892155987540471743178584210041312874912576228068540498859218439847335765230821369362997923704639917991376082891427392072996907482133474117811781047756144658728547094067994259091738983548500303102955818639150422422632158175507408763953790295909758938643927821760419466283264054930794674697292528608781515848646421027918030991697120490126463815055057597292852469623131421984501240172282678313454525745970578285529684499108132593219375720218159359040329606716200727433767690804868280800778130877168553398899912894326371605636633994871327868840769296435623489155392882264908100634622537906546592212963753655955239216241539572396931501833486166166788405643737817913492459265454774216152011685473932925396959862745275843459596004688809017482236039682367513882725131801068574749861750499805609194944789601534157645514150588187891185096524905131137310079222816247727645380878168484040300839960715911364618559400662383205197218800275673395132649488310169727475015423770770162239521259573034642687436478085825315535636292108603202526848427340606461174405640488010261155818165665681715456581132395450726784319107829416316800514793703257464192996979508636286785289462918330164645077092271884043688515694331364547646584627074965163879687238170128074642400889586886587736599181454269991827059109611880346549200602418439663137038842260279089445729943473362002310347110595226378849187450746053425206572650945067084516090019066554836237609138530777763655361369081199627064015006805001324660519735182809309828795950720400853684679925267733405958200578586952974368020155926172752848629881200116756817472780430303204326820517146354049184956402944706359453016047504254544669699280001615908258413410200506047422886157649868496675762969585782425499857414090274292806150662415859483692020353680037325479704332422669260740639591220143245747444435555417840149478288967598298647301362884060791250608630218927974974938610427368665070718697767421334581135188783188951070099693051928404572399079864246723584600220139183967091507723067983240653136089184409734534306182666862955176958111142459195200225568294641045850938008903175202480487879032861901547507274130562700901347896712880354776687358609590862157178625052856449143987098992072957425312250770890135575294539146605329722667699688592152405708643900933022689600135506335334261869869724465125307836973513722802526866552258685095167046668469435877247724404523459340055123590868641889538526129139191238411395969263669484983556294000076901136513116083146011173163186612271481387100555823224011146004849064705379167764663504963271249170439163199226056056176673708225546898710790836587302552366765488183171207448195889674403104948523412728097656617080850364985132573037255400157230269720787980768142862455457555629840727828885846399557085030962232799765779644018826494258464103383499350108377984138314560306964046211722924901557758293045737327922856104888848965149388634646078620426011698101328948663675742549291639674581921317066579888755375211604167220203419009926077498321059343154604893757820059079924165240469881254175392043512329438758394132171598198936889531592680784137825277431307120885276396404654312405468044813715698809254727314855518855328134705355197912280413966471998045154664133337195315127165645717660353334594887458196586506468334747508859872360002153721531879413649666283153800674206770851999725553984880212194370520362069809376307384802342113917171908925816887688384338531763328711056660504672400110814969049302338136921811936322512128534156923311437242541489016608699564858409470192821976045778807943783876372874731332527711894589301195803724690993721913412604292773986044604419389744891368399354727125490021869293970377568613317111909965165400688280630873441762443069562920165359142105830926285998794627818507164061487202926958835930272962800706606884443859112420497752400383216907663711649596123053935239516584054971140279747113599947179101682737840515455637463299052228868222301007421306446383493463160888047995195320950173036226102575813597116390357274193413056306553053981314777281303751573303467123630141294503832471939938317198330462160353795684553552260603098100487092213543377221799485228973929489798875452883596887976561138862993707825565454862267787921066951199182567480121385945237431013978342677399267343931600272532320675589656814570198093981524709717620710905009122538783887375577907336372665720197029092818209509468740584288420287365334558679275530849345842621611997470148009254384565150216347983598542024454692534575956142303039422501126453968698955977129762305063120038094326367462061751537088665440318211316122390344256400261856802642882285218304321573560468201679631538684890373907429571758778903649337814068279808019621520365347861356261122010702868150024656279517700379341295691012821285839506484419545637182157843948083406265883506018571605290119939555941605270567571165498689644754233653220182504091849837209788537589711676868266657690434644359215335273559273648610597029430394772724152407533068842210026813581331980926922617097567560769151958065419546214749053400187053846697824538723164954219613647181221990808799861699574755612735131984916388056878652331821821135723033266972186482350436579348025114850137245019455668516731076482128597444860219831920178990204218917980526522025727007897275556693190131277537630557525277590406231835175058026279028742339510860088432213220597964811021090734926894678261746641625878391162322843018190054768680353111010422762785932635769480974479111587283513575734851857023378462771845289995653994212004087649802441789868717052878675310046271586911399411609083747129935142263313166940267532704057612236674581026465141069575541393395536737975017746325959892680395115284913042686874345342896225394359685690895367284756368115539175983761431513152050231630310525260737818042407864154319009645819075621177999341372455348108022285078208423951094072072462471070948957313111615496285727521986493592472768741581829724189130372696460796247175441250016341727317815943611055714068409284157016373126430383477001099691768217385825408933827102421830509658783242698290487830790618916238781998768954125375848760489668747947381239737755566814813809017588505819925344452871297355683453638655150183479956063525522998705217283033738561533609115414257188082165557827192132198523481263619669203114885135310941800435575409116394030539424591430240116734058526692375347728746289303635351961615532343855594767446170867103830026751835295694155848162815205508683130102901248815216177775521554273158860812945952981333635381137379759407237227435915776780369247107566819144417788995127935734368242618138841669536747312446739138862849322194863190012483821382746665324011352294309105895373399993696023411386501937444920123662052933622465762763242268362871795147045454856199544788396586031969799941257239747157459203161936975474161564877261978339450814567697220818667027370513777083410946796417694899124594121996912053706154463477412881325360525787599476617982518606270185637134116280110169240832645264464912622116355442177247771846354789365973852271156445536511703828454767672009475525132971628304497563645299956656568255735033328188588971705961056465112310595956617401322699205812932029695678769368439361181387195540506907577429845601430763252800104017747305445362263192365565065768885375900246973241688667997570661771059057044968491792273607413855034869953488144758001729148876238534173438379370388763313020623698311257030250882866492050161097315564398869260365413321239983246183183999613392902497816897226922711103127557037243905384881307052744686317503293386538663643071823334574186653657399381763295540440523986890833352109788811618650337079494927898072430761251544733364753365393008854191011162521315268464279512540767700823644164562395237304188779634681652875389777224337136647635088261164299770092825916758868444923039947027514654313507451793901746658402920476588287200282368253751403163684323121875638880326867979952267218518185750022093707293439014709711129766895242068857045465001563405942401876961077438275020443692520036542105719628051750148692218752904761302263915251796327190983429820647339370785777577539905097333665721641932881708900509750783697646258910997788247591667169474493835044562053673493183325412449898523099391821777725705615088691051688244730082368020372105284273092547640810532726193489814574383641861079392684801129087845768294853816297687030226185709993593909199602056445604648946548249381239721327948829112337888315663708378943647746360661372250296290934783386679036461877134733255918387941351259855531470592148511726423732386133042255949438398465163112324996246940798625446454793262343218218125497342116289732504709331425213929956957477603374280325895028311795263516200485605257148716013780737499613185839668893899724754197807140338326566342264236404450399349081034496735811861738098614691402181342325869838665795312986805438201932376594871795771067521363359854983375117929887808409051696090228827003155069633056640584366858885127067104573727235737264777131513349252092684250296469536351472866466254829076972432212532342126225257430601973915451162848879468192574289297724412519611776766880895241923602176343465983044613043265438211613590445059242232911550832871341665764046672472153639090184901601114328322365480695519796291394382810386798392870942417714120564602190687614706428744082405695636614412856587157455058731337260535659142576030826435491669364532656169995548404561109192353692901591054546658659584769179048590937549406083938426360709841817178194672434811040209573022512308608601150616724921733290976728348652510168690857117190338493775391483629029364172850072016518273786321955159667286776030386328684541880787289599154252510255621285918952722167649786032130399393328988143917527901552791392777484025932621502467585064549370889112766975518208534485431584551006443349588609190993682483411535854902771005343992065993695556990448040719471628164287095573350591553059907687493971972596542937359759307993641211037621433675693880593243794811518309702588972352415666683473234698448571439791625350594820845760660996851640446367341343080018694173021368239901768242493700467135825082320029999875873994005043221218334039391608336260458613436060812419344726086116336585939331046718669986624361222921348810863536076313162891116677452127477869338272811695041182678054910978416391263975083062764076250808749803313576704518877956882615789788944098417809302851895955314040066714276842011192998934299933111885577899462306651721428290063683998646263492680535464804614984428897723381369497002482029758295583900511378556583334029794062394571273067272486805600354566784789887755196895011193615958193188848144166127758213974106195157042852693690500836789840097175673381593597659571831507120013087214135304655191654886855775205046034038087058423814852907652969072492477584197855177057962079203911526980506739913362947249674748128185124152163046731171032326261963681199744044095501436909617890026910141419706990044648119065477300259097666104522334545675633557553745012486075976231104216142107579855535701501781516910978283905193898299237071999092083829629909940831084319952741995673780038820395508497527526610507433226842915538412852337594479002878463780771496784782591482525030604121031808910740826122169415370171389471365834694720828914493174011787119444228783602187399048108633312357310435136170626878125805950871573956252435906982438591492803550237683400225091437049472034608207148725604326037053289102164105771300363225632814477691177725351350762897516523180757679256310539756082661726103226005213112625129464706154489124882995403058636670790144236928666529677076239093552006611013690379643125567500361996415921351533932157518064343960514375749430476452960274773168466971433342539827568016438881599450845932574691721630465517190091393669952589199359834729242789210840059613659174631339886434486916979168137457734336455235976046477767182013360050482935999921453437258288403627431708731419629896842871875579292107610382384681271253793209073919238245591095220357107982890398641882734201189072965790469706895039760526432310067145602838208067126520227408362038878199523917593586249407814059146130153388743086812127593992825585812155399920925232172052762677672240233584532345245413442257450872518864933317806042038361695922781268459658410243539375600512056491675378619356928326302618603841612148990595745628412519777035692499658030652246841630131424896878147512019554648062631711039064419854943257760475528137308137339924904499133150914880885903453522832521509268175366018289533026387007767181011310015247985939664264972503367984408947233786716196370403701331222784699854948210693637776847743033051942385128914724844600640524969452376502870277093723101228914616394203660082951411479637196146741066488803090533573494602077201062634625331565407551437728999260509816999147389482539869424645281194719244036317931848778026429280307451744557898141090139075047454264178191033430333193534601261511356882221664768171528175081123849352579821533221540765817361684334731419706366484414400637691190839917162027471010279940660703831865200727545484125839875550474378331235061196007531760414691262123022079859148442992512672305318382437740847651802384811523489015847614473372498105823042541305309917154980033287791051779558800270091694052620432320374882615786867516486049687233665954896022053525246436861128886131821815264699260889668806920717015951651623418173537046925255029511146729229119456038412921776681216470092937751614138122753828887547859668871156018856733993626734076590227853784478470752165906718293300727508188854340292581176797923599924336058999339397835137888024514566424472211262008733820096349491676778561846620544849814957202668109210529949191163503655419807318549816619217551624040168929916146687072521993846614085013793946524291977480129505392300062744785039231836130818973153788203639909984507601791719963648404728661482239691965636355274720079302113848569522325289116383293069718192269234636693253999256545203123308346924296002261134109568651216744147468623280351764578182707826823203856436016782615334121683495504929272348052425129583676252689761750772628635512736328674579298432278921030677229170166372884042186235670695080638017121928629700341680762480995078147984114747028319577234052318485682814148159073967703856072755955322755388597567912271409718643401405417477882439173834944045449193083770134226853343153498373565082903991256461915089840426245916967158062420021804440466438650936553420270969186255068173746718549703609693365876273387299011222708977009094502329513504493859997696777091505324807755428050024139452889227352661894231004304111315274570543005124194381971097687407288665751711034562106327789744762938320488542565847553833677552047438351119968884888005268427209151823033378537195157440602884905825965186565576792146197171727488032748402205440433821187386230284155150616893952055466545855515707978631364839998954299619616954546230793513231413104561111379881286862610940775675811040600026823818301661251172393650936927432112984240188713745760395255232701875954555633355531904818253915346678457492172223614998491326397279174749427896433415049504894884316911730400559385757542436906980482355540627409587792209182137567535673038389013509257880316269052987010567203953837058081352149297599155770199898948048216808679279948709774785997934250860805849462852945253049546718945944558527706447700682768307831641115218071922557489347788408828741111522020078349676508757638788733758390303211025957343440164315977171667339643515379246082208668044794232245802533739512824647946231982312156756209102078639685422207847653187927564402735527758832950275537378610919915361324103244051699930261609755356311013257198720003728827539179043531950849408719894314499994320291672639194841349201885998402640171693893493626249741498946663260949021043127185796885908073253412428751496166516023060676295073263428260671613449093087500645672662895624748057277512363599134062771326734360140088747585736737969409646835266516154248167916583167334198211333248026450608573805949548285199409210819020593459674266113286665323286713078935340295306652130605050932904090140136779440721429752478756954438056128113154439555625985744229916301369361611857486631658660481684738915809847341451550927678296173808949459347648321126659842391317353535879333295384323813894698656891931406698252219866891948789256691198774806453080994064331816924360097395831356273355160597064617286363499315260424934628835189900392265875248532219467547671043254012952571646872830422663409135995836102547646834772702559157673734846724305213597147995843689480218526204799837219075570586714427560057709057337392283692655140876043219917735338138175720931497211124772840777139861499561520169109251863311054006394867906541015716410043696630307828388374941729666697525561626076240048028926775074716148946411630375313662944998366763438661076487654782510226133813817586718372813143107561314297577697988961928017173339751113037344747403916736984017291336607103916529656757050452032089840159712732865816736518296478842657399088856933409117097819428515460739163741115436061119734583136061761518731543930878874568526345014971808113267265218242276888140675181175987237757194127289563500755306333560896851909606137213291231414214484502930846046883324790000813944231733687021244905211406844621484233785246482426650315965217627705836766033588011538833973676005527395961430849235063194801379331562061317972679492289937343575720141281053131689116476962214585977199427488065510193140084062807935687746965736492762382770465553111435594438992860190874197919734300235281407899267508519096471868067062941919552560360298971493864518886487040989303757899800435790739212020977317862081334332776836533434073403402469205420256581630733602818106541748586805486740427132771271213249904524543901040270410660437678248471576674716781995198417467252375143045258600659892345489762668612873081586302737497331438606154333526992243026566891095429575713929345499263434012765227319420092487767586172979760496511439385103386203491330691416727784924154864863178090571942919074475135056939147090448135191776066682896561258546728096359696618829693728335907938543803828772340080461370648406852564721974111716665891805584658322085603899023915677858231900552676046629505195209612384688671917175185232839790209983258583322206002692899092569436966640465030080112775865627603848113822946295235443939144318283716136589895204637701828102376497704018988819175451061583878445286391939619743598322748420955559000353137059844188004022842881854755297079138379650858005236307595363611281690185292664268200122951918861607424695084001720776135579761129911666100783483945991568013018096548961873069407557652535257624188595863132030264445106671616985935878818408158027252286153112841525026648443194428031966395670096257537215852427514802891367366211656126429060652491746086273895651167461929733168887783468489752088138790238672768130493885771283710096443234419615315914730187795508370817718208620192029035299354372255896535782289444196650089419845096296899610399839584758524214341000087291298091126849859004088919389686214197255458038470402503694012361283326962808191262821324232912357963965242504999364697987481828379406525031971268719501593091530638595025128824918276218541903308855686433975285497195523175979699732084437055579452867173876156105122727919036740283368117797400441600265754610800531823742007547913853863656880555379378919954054851134047567575089794120757499883674305113504096981365679687037716834039378584604478338240092497170294307193238592804691461557839636455873714692803913757792040916120702736913545607424553817316496237919357939821510279126672625367875889964431366345247720511466313944833278984980892289017703234462422107125508539933120096095074942470259788279459186168120221088640963413742681651813962999510949535732428206573605277833408725432432599906629853385079522660296427196500834918619995549082726876943124808009312808713423898272762424356001205296314346321602157330062399818956311978843945029889458690314830638234617639167557337762610899467166351479187725055552880459246837312395517105127460953875240133870353569096302233617103258852121960130929312695137975113395433761371345635997179789249751534780562772768426840310753980242173329142059165327989932656380500960368069907139317791799103328132338210845998404131377240546836135661878585536009428281177081271655650750552443182853466135125825845656508290446452259553770822588494540497693679551872623337151819623047854478624323588798490684753583051768508934945391167175873958272024040430310016122539820829356971652739890046973132881670691864264801865194405518745920438220126973565932097710836147513271927453786192310376447106857980423618771079600596669815476940956105309399668559525126841439360257941586203878950968966059837141105992520564272086735621871714045618241712662614285915747205379594706201476950099500100778606923848941377117602314000604453670783018526181472793189824473418402984050982506259753212583459110624389625336714824821559319197486710379217195910580816748571257257587116185422776682339150719445570302327170161293250910099676694437362385620293284723523876412246329471177473121575009847098252882741706038663070015127185364765317329265248230163118634485133938866872188030072041044578312816427405627876720899378712012788493672674269660828225530597635482299638035463826454354792430840095762487227798325318664956506351285761955787680064541883977822699101658608948135723952565451387145228377570950039010656539294655296622236352928062192707786593422259498788919464306679798430918250395736952611380360967840403080882552995959950677686826372118825064410192576543180707385979665955152847225319427760319574665237849922848399204581536225301933747208038354120354877560795202687561339933385748104335822327622800194424969789444613276332236238483886137630654395225844223177226106532435243483961415214974008056290914348722881108817975728150910298869633414858248254311515951329964597707331509034995978850347197477205289402206321666892949672699428951113684722089547997315996339505410009889536371820937661995287936073772200494798389868875584367835140370521636887449172224373781882008476253576455991478921843303193948460419227285835347691660244453074938846662139916041254777333862554245042807181835260255069440101067109338049861788551179079906733313671179655074781905957261669277743714806713260309151358628456420012293058939095819821575081638296027805250288118441183172675836334043244342417201367295711512296793201883925136810301147564046468795130225658652833660577036414897950709446991015308036332898382224709321846929544147378786925082881474931069746682392750360018194133692229002206017683657677845883364378724156333661446004064352230782423040570398515107336525286914029056364434293188032552793865568105233436817944509556836858267678246931921151315845287391297999452936212428391521608689457822815996449160460979063732517607486887770879180866189597083802609926548126371765376678040742229669603689873393484771407601710970051285421324808522824966107117076263973929129005711952866486552052127528388480118017093861329278767527443007397570756784058696179129797906493613875435852267225276375024949830395560332432134498421616889390707718930211855727954360412785668045003488773607361322533677936667522074862897759739829281458869580603044147128996465745915781348341354876102330984704029623937189953925050847394874719084995001047591587609309049376029423010658830196674880840876593985201973373712149060260990223944486709338894840295096484035729541600336623322882445120469956598900545875924412546810265502786613621758752124009027753793836641391915341796935295539142403555687871087545497055505539401277502014381079145792777432323823296141360616612454390988641305876148231163570308055706516101844231844405243791705226086802889490610464948849638605856896612079864068324288879317739826703738679756377948334031501276137668649706208274000914699873693159696632271181771842832503149658725261793692585820765481980938735542245202178270167795766494761131187045393407029295104809434111704678746761360997370944620378757289382813984501321262797597742815719071255237882852248381848599134953191323559651828955576809268095394040164492848594626146728553791254691210465820687273084508610077445524198848346376893809350210576335922359310826274504261954954805700730205107173428123233200548152727944926256973361487251702229290771704816301028469450671806191786826925526503284273471979494676215972554069404537801405726566377574474873012513453030220436686091725131341188699607925716577291384646472545865465758644960929490664178264186056046068128429466828880636675149168528086221634667427211791572611414012458447655574089585140042713013824615001882876627665913701130963244677234602452231220222230340112122483927378694814552098960351185135316381737135169151976554967342239717252882589584727786266594843307856416954877687692866600034908446742618865650883429253043881043836664347440893080837760885054450348046657176887494978803507872602252334453795965428289819293505753376613764718329290635346965172537766228363976173272546793320042777804057568945464224373618723893567283695592973892433333957804566275799698499496460978713124313048270772850871308096536933495104086892630394787328008791459821057239058792290900768969574684389903445737579126976517238974915365746264316157681436017704486059375379927081693162059152080466938821888478668619193097330664322667322624485289799440751848656427326860859598943566138128598958470840954787730880149008670841746572323713738357262903558208819828900709613983225106915551231647155767238705664729992236198542298772847305359078265929737619318889964086010897618321057346167652819549979277069467070402616594410289659976504898576264228307961560532411872583581417141739480796659090082581186511537425975114706328323335426694870154269412342420911177398643132213802349343611557226725262172183236544785833679660232258148028533435140279726103183992546794327020548029349695150354485496704878690410181372560498160937435919594957936056036926234052462424549308658106987792811423032835862609572557312143698400506603171408788121269389712984906412905374992819723400782982902647118854215305968269275169287316097686553737041620613811453157969801067688724672661872453810221059182158346215447978268121179075415246566238667457156691254978011262942518464178235963895875208916905164997350540495967349179381262524530622035909601423773423555690118178009975412681909211679212594583230408947940365061858183809991879414258425627730991084114891124010925916304075309457929744833577365903586038376736386591233689369102999035546921289889654133368455146139708099580912208118445021867407697507250091148313037863098149140610580059690690657444761657977703940493053966879635065764632784659897347430763452501708969036137797136765465124660505367105725591750333725248743761988536842151459775153538501730916013867845912154263684030669816071272463066295584189246095866385024802440791831080827311771063038818776121786255537366879737844721697240854754588436257191175795939054531225207705346292747905475003565418726498664190943864549771975447595321431509387266270104016252552416986933420001579287496041487213729773732150328033328690555314014767351143975490911531606472710586798292857086512743545210060293344405057310591372544685142760077781148973604071413944309033241294767657875323181786279632992171480693384341192457904943298382892588360438545268544145302856059285244910973500978453451225168613043273469811780554744168861308043083345292805161684074275296441585416028439959484979641417454622906608497191915864260012696215199127665799138723838185966619860882398819218470913618999312250450088942341789573536360077737415456005926411000950262355611133622581664856717273942450921093811568711123782377089319731730035906863266978992863131717034932956968477676019205005391682006292275653923401415569971649362245776029864896389810512624483851439798764806542639376703430388921829146993262359793720806963679411031807028246070315316232698520696201950747113903540281484243871386543498482087288826769942281850487216467039913841233048564479907527753329432753610539680624068155898424076462950415444143919271861715464136006494207741665632760442282300384359643402435553738006084985365086157530831011719849826498092841488879284104316426289189003497344896769249455377029494649247837554456604104720108844016257422883991043127292853983664611487857546974142232087568901910771052395243821662967564940298866921309984001889560171337264013041300197557755182809451674674902039298573729997062710453243446105842852278825875788002195428562406777035055265478818097091107171262681785351330291777035403677082843495168814911414762527718879396232138634574875480048458387696700242997114617088360011762948885047745391535998991293031759190257680179826289157283462148209785319906169900543817712554185742731866042709909115541768728449267556938842266258624118353044277867695297424213799550739770506044721410375963314440486300983581637935482037622033195565172896812104881295910305759631667346100489974927518602706847457734742173038058673285836200372218332802652598002305606711557471956034514620636517629423950127829371672886458962994715696214183370015126661332253546337731150720464336909639912560119584800573889479966486997173101217129458405516205905171168183227217607435296432987080817880305725533485166736922874595016572275977317927357495474519014923960264241403880366456145237558633440968277519176100940361712012449343429445086963959042639485735015909062511888627160160618823561638161114650126297528136870505318758619134480021835094426048768368468575158309845600220617904036343018532512367757174440041551620357872670984394012673168370520576803487279679900996927675816903811385651920489414344028119228115528458619651478513520304671133604083558525826621353578552472955583551989568531242006234145145413943027051584908354366714849544999284827481382363978527354992541368481321538852364163516897496871433560591206754124583542510416666661759646425010624313897731458479659143739895648845584491575230799340209290179015125208580131346086640366009295419231817471995888874359377261750247764738653949021625784828114032613682669063608554750838734073037517087722964163592645350796635239019394419715723305026611524762664470400873565255650317197362339173273911666496541034860040019548774646735833593061386644237024678420320913162320237692558132271809640178008156560978767012547230959058785500878247212254238134658688682929622450297402045059611613095181161776801712508261343110024576763264936756833484978704410278111981936951786213566688350837504395731963195703258658738434502296023517567030830722487690217389815792375557264739285713895671153293822570572770896530709674727069726181303414363615261063616976296553137405424047501423252351090432788984103485803661251237082485027097978803631758675146653538891787014194796087921930664512021565382246275774195483213729580471161328257954141799967689178934854424081071779574094988832780257013033190636308060869790437009981272671482092754328945392441090530231894083226590892952091363812789855853775205653713285177829892452483383066710229532011359661260784723430462451705691411284330327345456259560442202805107995870390781779903766824167155345961900722073263445959811490047750721830067439763214851595692955975979834279292087314015578981126487302610011159517364050084284324182057277423996718035119401871724383952914133348210580858570301706066191329900673782098044668791318939052485428696684684464044875385914509453723988864081279142281323312494195488595655187866899180815529473210466937949471145729571092447948830280905942250737668462804906368252015431378096945574262519889560203171656904227134358770876931853239923021095708938008076173601730445794831463964832290320660038850631485673424479137943809960947089713285800761075680159340198612900654462140015006626943490334762019124509909386970520272363980522319159915167846544376467524721356949195363980932556894055044641508798872580650812556885352203865300156002187945432348091904063248901930616513487886352773392037631469848208439697295858609507545756466149574689481596383385260058456493955078859336737205737108499582355547138257378138512199289119816782375534830162673782109841708715310198094290749447029132634586744639111004823579034682328665433602711756672012448515928784192801222697936079849399392409701227872746203450283435409209540769682695590273904545709186811305636249412195050189210637808581274727081033047882263511746931190680808140314753634283485481078452361696229991102062056003092886881562903887207819655419730626597800007983389795973603646947134203436981828519524687427912150704636178287412012148116953408602646480837325493472428488950186318865386229577878016817720831573938473071714307666984826658644950097801991686928327117882024703043247847787661252189560705811103515551085992236281782867607614648190779644883309552729148860063237098535028460038285588655727155859499216165275245834519728374686772396467179023792108100633702777116220973887202322419410074306471936169681404864146289477535637565446262015221739347340990612950832536646878253628521603771308625852311969266257965426567853097764927613679145378903711657157540561972565173829959453806930670898074946716173472067330153393082817563682275560204848286513557816220331653321347562053505440238136303485184527592231428620895087289453794964824628067043259095828508326025576838698781884476757934500654522218445606231079878702997220150584497894349061236901588548244029380042733225551595934653988718601711089518293384032132092577348469945316619113818918876605373795269149874988663600273803480734880699959044736113447412197831577901697408695309467883455495070530828512442576895901139215409304564636784640984167241642188776242679928719875206989395166575914104367776430799475368502657083943230874403872613406978159961564150086523272403148192159131997951482947259139219654292117374704455437570403330541330531260590799183567300027210188225521295265801090598863497768087653656177343720708440304682927768299782405677616457837033525034911543486479924801725399476500258929132243055228477856141385781421914771256344916098945106694392961668655591969989568548555255928066852748426233998415526208094918090857953948260500402522522825425583820959811247237084699648708843461251720504340434768275992552269172437253256671530836809435440959500285971806325041660718003026070213645844189716945414673846432995322194439791183302317109110019801270781499679796485657329258444049065003960504186890064471989373419495696351574847269139702714892542240780257108962799021614927455484723200457601212763115066554451086615194265463716687319313350148823872009223180488440571856362775667994198722900613210242463218021886866142870163635323193684827255288246970721038252686892618750175056685062194015730321436984419534981454797206480352248411304137117914329410230708449481048177447213529509689462856985926622455455012675535417884659268476229405654277873954823802008471258110409444012287889300763867657884247980596994568553348040067220822959004993835233521123202090412868965666792311155378559385570041050423172482052993326511605295826012234281966736350104351739561046624284012613236128846230515227881820634267835899320149049990052521930634305058522477253173579345801808634084042875704743298202495389071490345668253452904581170681604759147219804607142571558172362218549304372755401921397453509009796341853813775376294571468762059203286883547082971475417188226454017171329367235810448477858513347490976517845965981410181468326338238197366770904665759398833951703496302436070940328053586413070085947734261051995149098966052503467620567543817060959027326574765095559729751177680719047433914732823197730147952302027728496830133518383717902224461815115911618103506285045003301531392125933415732668423382864619647768171979229160986381309877607640908170199279651838775340773369961859047250636108976957755869248934621191842371459897243494834755061282011650666175398776211019824388591848250767874988497912433093237445068862979362485421288469548747728323919984558311017206272405835229338664889702964646615864635808974098233510627235641709149362083464427146017014838710508475490350214371821627047614132849764939532806386136241199235851202642165944028297862391183246184694315859134806859239356811543272358222552625997590187993140651487466044694716977354864156917509450668748755368851188953455157959688491568516497867692714322819876409300264555960282205638118030244444403341574608705384520256616017677567833399799139008702717670644443420298633604208612718645510523310771496324871531105101379299966558042020352881134808151280523841830583503634768007342442887887525077166884590702534973809811210071631981345992790195542397110654328915006155179942086009363820062491855342046210781302775665555882805235671046760352974840839159745306006830211268170240437953019305998776976087302244907603033235589140208486595037730889757809427963855577540562963914055037591462795423366690994943756727605899214988905438740786135861287701117000307025792579524061202624421687751620384478069127165996518049706518937335110114861818439541967519599018701888810068291988164292788627203028837440636565837521161001629195072174247283673191696392405713598972911895773614833060864482356257081992477035239946444587529391441928067208661918132937168963171849972341974916228159444450085173370404523063423378990645001582962339995368003811396162736857216175974345955286566200270079449629707573950993466357187529695866172726150215071699165084958559930370845429864457248886770729683131416516089341734995032028119837016034753666560528409025563363039252838862391018642634623661026064007521118677274284397534426526582611856921581443940987520469506803265484957336156467792732468121853534088801142960760394414816544923820363469757596841360023900294855776742385041276675502945059488658166487281796532089385378356369008444711241409183195052712174830870003774367109955044248156319526455988106976143740671422132516464607014548337713112884881008414942353769502001550133571340707910449730654518643924238567914303850363030492020904377389827656653776740133086598640664296551675262422031777305963692844233827015374047255962882968782837043227233579589770784031488762801695687650111844733397207326609460128369919611070627567738612523223853377303767865940532771896467652759386879344978176641243742081904851311060347473334408777596231148607307653008794376914834339243131131081574565743841241280451289980274939105936211230824033401761467761580670905974473306090568790214025878003468600536556762590008182777464919257928557414303470302126310910196810639680344124875983386584675030976749888005564839204121550311628310849105839431220296274167166032548247177367089793944105380835587877915192914899065330989288459361006964883638101843019592855373974762572766501894959972627916199921103723213001605286369302876067223159968321666604598656026642662932358366017012763975611851096501404442028974059748272474727505645057248780714389236559974968881965775217578615356368283785075126917656539676648716093870512900403640094272161370368058629579115982806527287073056050370246126924218803397379691863902727026948497612834801789884267447149513981592595095584701650945544652859512651165590423066653627792261283982445618514464057181900625452905082856855050421910606424735546947207408811919211248286796093752189006709648653625879560290856389940639546345311010046022566845853753306325805933754158770925273112285300326014041742822063133452248940319658598217742842603510545755702775777383084967778104378477442647859909645787812503494584253803849492306172942438583784991331199553023335865840527790639322985015549054009449963446867141619739379963490604483051467743521882196158716369264996434603570891820994172298815346219194626422513359870054568904955348016398722581218193306842136326993146562657307043091771711423352227014258651624967232765265322550089685187530063794518017237570757439636240542442697088915809937187861170776566637216979706952496669503428214384410115551328075641321289073692286002670406972544662743419178096213322638596808297129591117449326990364076732215205925575835062504316714406584738668685431290308013195439865882891800197078510193113169252837977378434043913198747180482398868235653873797387889737031972731981128962550470978854530871763342438628238697317936275269913978014404345342537284369145054165239861049609218411303489151806961438494863105846643860864005078636253046262243674431672973642507211467209059133713557807722080733510674357898733611379268536475888125788463522300539438580397694409775646563660967911016288292914487442185768759157584215830931047872325581681539490964101436864521651095107037606638289859716128138621780365488103506435377988775963385008108011037422210357711694119820606905143758614645962909974425742252235317601536816714618259408360006779465876792347868641497243082030321544374417176384116002286443866157402731395392997938206109696750004763555636418806882422511639933920843449297666761099836477026169014789854616015094340702243530670115481442989102969480192417570029043255624421962969231609979537195332599090272911837158220040355417160178239058212697012336568246266631991873955686942798073428211274671309948279677231594676439320362903930957559131885448112640227844181223759225510721810232458643643009539892261997062268321936504242696829846853276726608885156899074536807161188738799937445660138268802108242614023766189471371773315863524552118064540572210253204687830016603045310571680824377866484622989001042146063208903911250535661054125159504295977531277244233362911974770020197643136331900749268394522998508357543613768451216980329551276084485999292685344658022899793217833379518767508427908812344521929816226961621369753989003080458960106218956465649087518872255881945074322531144015259559377692819853344955210035592908929710224657360925156289664332325223074669582053463642260924770910070505600703965859913015084433071127368986984762026706783960778375101313845395410574372966535476276468482755680384116207984776531629600846382027201931262915871770271368156204020042364272097177856210180513788261549398411339742067267120656248127169256199157442226447546124917266513350435396945287221956123106904437838464442938070562211943200224943429607798577909584925846443899561012878218134004676361716059060565325911858262540463940094944931141912346488629462726826499271792934788771734238190768576956468068607595549763855808996740568137257630839895433326992820395139229760812354368047620424391500425563453707332800345863184033222782464119225134552992218306672988171621870234171928139998534497093751658561393764488505917415492665034438247907825006721900198188797904218792300792893620560829824394820601112517238284736212694635971950576232050329157462177663446696125068883366288794565118932095964586080989007964228754800590018647661207160549675161307574865846285936848513872885720982857436547359500622878709871069399327568899843706442807900506826673443717311862591354428169238200226122107083355432225023106547377595350447978025589348935746865292014482857801099831128363503976842512383927708094269512401969269376250215817203708157063750407990807903053508737304274062014030308025623457853958216883996440464612753911285794634353378354505583999894459890166185045700883523026052574575961898465486796276374369482530191477977560271252604334996324543432005788974809018006097372094362151852277146575530618605569325005072949647181110189139552864231622252915056895560036807814086448886197105363728830638923059154130381185408377407729584600530656329902613266599156029902838488319483140143280707992867318136553948220164563013091738305780217819462859719912961467905107890313957911413258162777393134904051183281895052871343496376099692145108495627622340824450810404747458263898805004689848072960429844595484083328232470038891181168648500659559908949658764153412439161541466481257450478487040341641157093386631447030991591714526163981744172935736587237893397224762978540271502116241199391486392905651283791393513448551648129554111032598793417156078587857956437617483661590611054276299247639982563288440601464724058965996120497593650104618036052151290183993044258232206061239186295005148723515419786745539492687132197383514337982706377407173952654177415795130984030659286727683876223418817489370790741423009534087520101750824282577102203880712522232750167548796313810547145735030251706664971504723263515785269135113544731932936247654727807018110188512406853891923597143533206518627910869220769460591548212367514961436064210817036749050589256587041299426698080039361347851696265974230209497136218375303316414959541387577829222165424186953644061251953761419317543943369020757066117929308583393888314126010975815692603907244337035067483435504324801263028641898355455875318047424234047135653765778916792018679711874275097287424011805504161814725687962069280714796874093193155344485355795848128937816320305512994587266264644582662854847822743244122370751664802777442878992018456470952272531224212529259655420411252370488617709938706432018205512450861055242184378359583811394549064418548741237830334017185878788656468976887283216831089554489770874912200229713215885188150814695144008621072789482685485587050152755954056417145249498076655426430378961792228024438257018328444237986229391280268134645735649402070131401993698791032667146063201238458654473792869459988482940422027648759124620070541140123691183164623953549819034393737161865316466065754552096010840590092692177066843621790517171898535072220158207483171500997647105969659074319975000986305442841200754238482585450869877348556545103204870131167825449075004789099143432323541592862901392674683032675490344493819991431364306157316764652940155881668955068988870635490743382093838376945778368598461048869033960402818990359603262031935644361737693846367536183518551636525113997246495922905250330212768177279833650298499230177075822721414499607217011860876853319067688652620805646861274161725375631367383431992507177260068667718153298340359880075517857762439407982304260504497342340268395212002746562033291565473484093552416444737714320396505998214467667469025722148910822137540808418205659255744862699499150524007882838312105077682207532831133495575930892567247691900242793712202816181389506272907383313262611578714169526252724575935007961607300342017286595370787958167337672336686929553746702618746605994310650272729304111729252561221825725505029550557019579886220853661765545059348439480709777388067346399645845866315779517314462286958166882829190279364970054645150693662675151660662308751290734033863631269408731051310165141766165011900018947788146063988734374721036979432084102919636639813196494822166857995025767790154869544808512411769951086546910498309872031584126886594922205021834874876438512869876723867984921025928921725649903973988040283641460743563420425979861271761615000860655274775989450754637797763778128825953378794096203865511926626921903386645722009836372438511912965109784529991918636134044872080897649553870116910369444540228522828167250514020640451103827165364169640471905165953700955838656104158645268456620767874743249115442957987196957728272149009302565226575145578878576223984093243338144445877292414613273632540269952604990837749247600600634058097016297958402855505334748332842914763413770879210807876576921184557723436819911904736076585048360684195202576208603727584251487569522725394535323827652818943187410247618911023735543308460170070632092150275680440232760877540611083588660295219556530125863045677937645812477327657939224991366174197097556806855369122337500740955200505679551705505351274959446408235345086960429392387293688173416277366383547721338677460194177951102339202383208057907955553891178269507209578394933336094994385975159262298019175783012174596766559091841552673378496661354796279217062193192825843212052461807389317747627748714333596305575381439251806408186089006209295056403877799624360758115031892381872432869441109568510378486053184778361123484380592767468787023916852024579342127524878101941004270643725130254881264610853365170262739422032854920588342927674040886904975849078399357959856418042922156725664130385112062213520885531476382571466275705305660661633122290139656204310845175707968610618514365866759589429801328273974484943172399035418478143248536478281567101554394527210614561055751264135063260900596194724182218857632663654610403153688777612897910032919400517455509162791493147982151155143730802131889599285615425536580605822019106208560930301252670476512181959979975392878262240892103543529139834208275780304978377048730252585591053737109988210766868859402297043495230430066720269242154847683875257927810168896253004639531355452098786724481821803100430927644882833392731915320306554655276077254555931867656497542873611707282214372384108632761391210928088364518187220571431522013943971304214744340691217226788675331555360528634377770921431069850538117935687700534332685766494207452920210977554581421100690701800403070695764209807976769972643959037608862989571255355056905287632309178698489934876541601055955898760076618932180203381558230076738179784033399134809314158363001412187701829293154564808051060632196373112270271666707322215436953759004427215393619940183159102044941987165568240736393864485207142915390400515679855141237226543062605963655762191139429165825469126874278278078121656460349500364370345149850305089544372119325894604646544434363115552149582129388074219362404545394778508819639549161781059663008467492911482934326998808109927485651003584675201206852655864190657643035601601854953062153046622719019253169680648394893003430835087966519796758335512515644295041692041126735836955951847282173931675610536064200250810355190781250207085825896344311663566887847044578373907472793317887355919963036286935400407512851951421902762721586576788487913301476776501878301135519750300634308817677964088401742140847910552375786380733800418651478141472759761269061818370903863286149634576815037349392385791027216332131193349958207845996952874612722887621922362643681879738434848437769129798797924145763074395195784236199051846412169472998770435610638656859405481508760351649039746321841977271229295140515201144568135888254058770184819376636581937012314187777823066510781919336701990121303545509471262622765578460570450344173092213960371514723095154830031908991167366929395767467930565887024393273051148457575421191504786915102981047080389277997892424749032343762411200819673892796152231192416649317157935057415632479732176799370972633446285236630310963474262975075108597949079205592516793430378528020023937877989944900517683424295125383567795641715516971795122102979667497659752967969809930373932288542992054713380591577047904216577520294328975607676958669564113859483868078546097782595009420160869475087119717167455520946166259658426277232033967255401320199734703051440305636666080581674267545805138661654186766255032002729027360891487700266955747559648876790861716911398426405545125773350635959054899676464668841565038212865691025983109584081441083642277057431749671418381009148707899073129911505827854728302421749248320488690474189570162246757172741014451621850511996294395628183866513700218663661808711060269485996151335210231017660515776479714110171074353201132821383985481524008922119860234394014985736970165317746782091006579678052741280511253746144392058405219262791799054818842349043190447299069364113326976523381637774565421294859735735660993209450711086242209420758704688198448643824729656368574847613039910743780338708594653160142832774341864759137759529939473737081925125587056106924701855703118647710024483310036599163692408389081215765214868052406441525106332510356598929097235264253736350767708300031006947774486189121346285628785813554191158428366907771975544170130935358760085150224640318338632991259063081187902476111183620976030855414386899681336529785921399423485765815886911891203475088907759535713720839219753355100035343690698519891137611652458546382242910231509443688973580205652166775978578493193412025265923975368663935129845591882385746224965712557152374294472804034263762685212167127722529685339095352641475792960490959339609799171940902171040867337902833404189227758538604616723977236048449012371439189620468615854927134885393386125671597638051908855718547750637279858484230998825975070652612799592059636809800142818218152458668888995180804085932835246523210362210240011827708732543718460009380025882295459839925599889616034951460062587074304933920915529820462444459356173988474706410117455794543251422228084197163693780749404905365747453650383104569769052846511762649868075939775180979484129091833281663926283715598483527918966777172064626057342713275150805864177379263110531234927463476522173157451846452547399105970640319204035437395904073816009380850936818080170231252441396491361504374967581455354270709762458595289954589415850845772983042468436194519167633726812934977432430124944895952486807382807045311079045710706147843566855119501967060162915412640393777229820757062869972088961750309792755231849334602502032039724261749930423063079861130128893903016267785033972964058640810428921746461320212198316582753366562993306430503880989306387825409047459040358877680232446292134584295706681195811459529943764556801654168765898182198587287201509915795395934692961436974635349002518718117289412149917254576296907206496980500230729647550612847539319592634279061779785131638085312828748863216645313086291904972180999733994928016027708288979839748165328627543938827255907565488592439534855494271776205757118461326849419344157231462707340932864800971951168272259006545218881165032641668078972090479600889138713067259117032802309037441674038192274533139191117414226542392834407221994002820761135342711469341056818987286043876514447991649230724689069491573924039644859900228471848663348955896203828034965730765785319996359837400525558939675614927515236031949082054248525780431491999738959990173711565969633816254853783157475217578545823244618624453841111102346087755128689659666701738890239279987861093984215604935376004636910140391955170551866090274714413173212491625643690540843612152311742481200261885908242412777527985402947534285188746630749855791152839148673282346007514609955756090408236795480031169258270803955972166962207580627282678728520965022317503784726950694748988508817723836450270149739085379952121669966283178087833247965774716701565170898455355626647988982820235118427687132286206738510488617963287869473308220739104027928242269103038749693268920122769855798850935922671876246850255957686848463402448955721869848848072181294822961961499145840349754001887285480078164262416063294343982483895449534312818078895393333834856246500519859428390074695150476093525997743533134837838777812535982949333686523540332332371846995020879759423692150363254514131316248352057010579241392656019753884137624325347580577009941210951780154309738021720362165330053658863256753905008791340120744518056701598621322051672970232240900851973903300463155816106559532564351621111384733196437127881776607465840116610042013138984526529101195189982430014613479281461021986408486279784847302069133243673318173854199149736650343106280177487190614009818742705892877347273739643933577742101469339115028309977059722063055778408792830656158072743630133666641665643031365516721215852646459513928463821177924232519100938759756102544493652569963226590859419745634018815710231593595870563096645110817573056441465013014722811824215596874515582324674983490299995547185099531307580701689521471340527249528734275768705588487327847158401802285851772204005022326506193234707142786256541948335927323257880873215261704609364056867245975111812547986643092786091724204648407414892574227380269267202047769220363093922282546641886300374680134784296388214796291185356718816244107502381425196107866171149908541242758468789348350879323168310614374763623253670766163503113260346604188222693307866424004462276275059169823175234208682262535858983694927765559295785169466388337371713139940724905449859224577123095589246028328599086099110818930730624505794633516228223774536599754461880993137081700936439908552949834557361035013861424688671354597794406176920829431309264953269364927268369686345817752270485788702563003431465189883611107930216593326419775658415139983331637937546222562567448691248387283174565101259235420200823519832219153599786616076552381963311228456068124820263813539235549872986574289818338400270208660089388405950836785801076209538911667467637744459747065518042630743855975512626649220212803059211256313828891661381933378623588888491485435341355096695807172830901333820155046040770344571680609771307176206672944195652639581733285802540316826739539127091228054539936989468452868880148350627576695196775089915121024787502484036736098057471757489661546177385005042271303643624659703103826766133777697874666028269529309528633847440762921943016918939243596398888293467673600415326948225559649541836923894462168419179879710002668646999964703411650245124820550157086565138407010147645420346765016184528466100458865791713761635519771944420501460560698574622895531741794594737104243566157876104339235294373538947741906177433417545759516357990163428998105837436048303070277587457803828239688778819743697640196993330429060993754061680021731035996129239794027222651503244913138352925331210412892872833608192677563337074133317439368275773670318823183856136694259952283123735858924737821806905269438934739066528688347985847171098888656033226615138829313685120363484244059317190681170721652555445556339510034279767294724443764732517319354262322721148364586829646595201411381807086044417362028185142313818055063318055771390096181803436565193602771042597424638332391730943523717117627889125776253800743301203014867389339230029670399052224053167428586327136423306545669972550949445031283443190456334434925143122090430768125118552973460188095468719567264757578898507528799071516771623238147199817814412884363185762245690672409867434916186879576261157598966701970324494710245623152902886585229183392800726064719839913039004676132681852046578168879836726927344571311991689771532258529756588617732857378398536839465863889085534672360900461298203916814232613519930983220804956673591236945763110018281650637074457006312803440376009188904692753915366146459080144556725835690230581590333686617396484989710472758961781558865712995775592240313107925522220475333349311478146260229841287017259522211584438250551963523448738600075075879596113259297840202528940222309808097913352026050251206130389925571031975843671398690649486458276117418607223575059921519354775888272906882114710386638951015236990736124262220814654352322543368540765318576979467485365428330432789320940817497749535427353754779467218376064109870968534014848453891872511073422511727495778434193839514640955539574995885866442137840183562574176469311537579454848861294721575201776854620184440835148148235186755645834128373060354260559163713706371204817014704430667322642580502141820850922642925687306381916238684120302430230652811103455064973951781321565827139138884425145976600169711780507204685574247646015656567558057716200781932262901856279989053136120998474486708414793587834206312847625132787919761599445299207095403731223344931472456579403248463860238044100346621824012923668980882752311058815535705070661187212921278150118097686302285998719167137267729552488302202018078985918266548263764568264290988029899956924238370548749322570373881360952242516453339719187166012912179695953980569248054816885762989808060079864684343826579745531271979216038169168626755945484677234798019302490443827937840762668832387611887251665516411995390883940827097202493342596821921318862057151341299981938378837080667744176488121954657982516064512200934550563879923743666190872582792162441890659065796376208487210491636611374436762968611294904384709103779589232260859569118018335506825568096669320259859368233405485242992518764980688182891522218035665995413415001454037685381349932683379819657065975818756011499962434675792027275314141471491005483065070803157457990083004091172456457206831379498941700863096515091294141168129480661010950117354970302805365110774903389464663510507713118104217917233835597237001250927517335501473265275841924537051983161749771546176353350460443199405917033425683445918500959604793723627094731096050482128785368849198327070061513220069458651563681500598777221169452032747056535675325144558554447481057436175789776465425855352318403618728629918087288559978544231876457030484891867015774586706132966979096677336641130020253647558021980707178918680331781425446662975222572703169469811847250169914988886754331888405551037196483948461936414003853106219881958023087783597663901587031970589863178039678852806072171010407396580288251100778682164052883387671963581832891352459327609016159821193507367797663618370842158627075447113442613115011883744090604878619624431059366601465035756014416538840643375804992109536063553227868602653427240408501932663878507750884906573592566754936485146714948796887686751041163558131816568514521860890905913859061880903938873368102476004955754187149931592375684163815402830206051227564762129885410974060670205468672221422791994670369694561777994167862933336149092026337113249880060432952988326554674018499337551342955657233680630842010405502357937726244057941603655807343208532858180769557775521100047249107449339709615758154767569273726132052911251788847894980030079593958698426152603924210236756708568800250676669682388734564917875829248005098332966483633814117153486495906559455296677580136210664767904006936951316890471486927158405192786411285690072747614591889931050930382547217933578620272860106111859855808987098003777147606300807178112247201010407215784468470141526269215290433862502736897878324878456110029762243480588144940280146099426017462756705918941409367050917389416432286773996343375059409274931177728263731107320780383269324575193338849402037637710684468545203129854775814481001161628485937071007662178788999972575911667523346450293337972490758760739559943904736243577986499392888593609754664071485824709728673900673546195275085797624190628878616495586180683692917739322748145069112037154633473903815003201507051582101726046019700610153059072806197544268817184282773327663464927773759512591896405126255001752673749874971473923082700351685335066400543083370855947139477902763145318620216505953742885835610087979372513814838388769700174371970252223791850672937276005262377037962432745360170533998156286971410929091134459144646237971477968669771917491995290103216155391658998534138892521451425911119233992852029683241413919013315981724524407058025943932341263233324897708407883994875227056525795286414533679598043451591581882921469715301032249350378793535052002137972131403543250769049330981445172936130217904031736208424975622210887909456778259336476184206345701836346627976278691339571743877499595356998684455028222553489622075466704411735519662500755138185214042137877317580621704465845738440990984940366334703767806864622253531604793532291975732749404393877406694269153544407108805683367872296832988776517825747132780000723774321998073193023029696247997208472843538342665428954804851844178284410530152935310327021073452763904370406673344181104517877263487271664617377048189616947660538605674064976625771228952526188944843345697555192257261689533626649039138243182565434882823300046812049996747250996325882338592812591705783050300817848789814096911541178918822171747812672506002708083374188456056642105930989817844980497529523506681389603861054126306991138019737285751826609393918034336259048833573411524838680159129428788438829068956569530308922546539352810346466038149418958344283578466688771727821433005865242036329700965650091745710834657155809724584770675734388453372828821520760478898594653321199716394096243335537328289928640236392085714775387104571539817450272163379090675471416776925784594521232246251812305342682486351399749071026283515305572218719956858695369353956218607533913366961512464281791584119289636103392532480703167392822406441330414291635518659081725070138714592996757173107953089999492627575804244118193812738482395914892596510445385498453420189624593273331212086805181262663102823626214847245980106973831035105565314718121310580179234662505183814412033930383282991891108445322244327777122607153843755121669658719109897361205593858765863435227489793294101840657112617522557094293961080857208905100578579440283261940154760804910567118970622581871824686369202612887027403178928378692197696668983241392375493598696293619931010022166492822888095653933533832320508509707846351246340815554477298305999546972333217792305701308976949053681717780897679811084065165879464682516485286155662122546307835173954140786648034052771241941413772388771882720547549074042605853884738307889656235528125824618657730878569397133056210492813508234638310368100527214940598625466247910729140776692955476526115515296551890552455063512036032554144715848725799212637251838915572367492873987149660639145951880604928683028824773356591530350345117913971951034890758735748927273141888186863747302861566468454577148549923306716216769621815395757435061515720015360182220226307762175762754581329254148486220355968949486101439406133500870365472242854757539949149551407441625855112190797637967995456431865399730258483534910413430173689877010946518911466348280003765564721661213093938315552160997652581126608039205707835414647116512556054157362384779743040252590565805373095340826547982910804324227190105970507632494634118101394001258720466308754945657038574441937822543425014779926708919421054547696518749274043195163900149976253470685725094228637785670394748420509571598512312077111555864290966752813753276570920602931051895504060547294564400735968982611168306523003891593766760897135921182962262652267689533211248200528360719262689689348844241743004332133263331157203004493562058638432384570287611523822867724228508208296638856768864172840916498995809743275339625234191130588106790723070341234620669155881796185286924313030352692201892776486196092973210334383589913477855860065264818667749736511048270482230393155330049057903478117733907270478828141143105890328643552327851106565281990160898350806048543900696983633720438334769551667376149912674461278547715080490307428142729230299731849492569622345068330348791776415949492074765919841130702735968748494537379970097622923634767097238223140863259289350305348818638729057652419684898218713695077682570854492750326091995015520710838068934133200126838294838875024731011560619810437600394471016004683031053911156897350515950414900110851775516476736894271824754719345339591592461820109395301446339498874129151340404600165235082111492906213207948331174033647198768403841959134566971629855288490311272468321060021967387582170065341210290492156963403118252385446050169836566077354983591553658383326117824279227173887970086336370618549960185791979953944385224295986843819404417037755654386797859600812586204587835646153772699585717248417096290219935509014980740170976634562876979925830992501068661802806126663743645434044592827901108048545479293203547124919037021340555358867875517032342998666728670264818372955148941879952209667127603357246591989075731810134487652667023202234850812050236183892986439295930561574249239961979227193404491198407108859578482548764808517534777062638273727642097068956609788776065694130748780759546902294631351728888893959147814675835527009778419459014420543016592263056026748223953558450061291521580209134579489571260848949789422650711890744674950817105230522126164486549670703951765128332671323849729701281200871658507712111857964973635749376951368412592425429507137324710707554616927578337978550167524707000360889290444209956532030935067848293875011393911866581463241768025438522949788015964643545286249691807367539299682303039369979379615689366622429585077881475662223507334160075664128648768897950188541237846034042755397792294867470023138636213715133668423026250693613561498545935610483440517597558601130113372783191844097090761295395932897132847646308078010638984568714135764111046264740988077493178359020998426527195304026862171209055299668577092856262789372602074018212986000552573691293669917943071321330761000845235152045777112642924142943565065539388600244919443635558463023162857908391706257724458344317769194233981284670925172139408946313048382269474954779972075547300340656243028045510472724161853750894785957640101238529561769123426280969229328371236723246833137573855289925167456732410754183660135879629415562452331708593563870623134996790468711315691824576995694097617483804751270035862741567399360201608328691187853093375316103372511488943975079154780415197536874960787852923736853762630581492688002851830485963365333690199885370912213726226690158726825215169537362731747410766648128096982075364485766689441921638703949508444044667254829927097292303791822309986724154003385771873944858628695224087177072301587332251211865536719802223988958524021642150025429072996448694880466100892740347897771141387766537286528820750329928897257880551276971311512612619767757974637181187411745819283380750463190311937346231755722754510217521263076759715798031384513108814467541372385463374883576515542962209754105919012530668305867062565096645423506067287529277049282664357174286318130458992616246405893285546758613812080959098490531716537944429194614780040891350866716372581413160077860342225613590619706336468534528111660432474574974332885534073720839843058288565928393481242527662930714287875477309276937313141908054263449934889573358860818563363717258469988595828857177285244862734108796839137968582555430994668615602672189544089075232774094074834477663414654833334099735837467734410856054462263070469733083620758237254876646345369786472493890248435044035890273687773613371528275310521548592369346979469071796371155883982076479174076185583183302865266669285141899061320268895929460167141089437387837841990711191380302060556132306444104415333032904057551737459652612269732889130036178785700892287533427428087971376907104003581828209115991699721136018764355994906361045857751734842688102661622142636963582591909569448859117502954544966078805598903529120869632896425452578816542367813921573204005947174674969692057801779360645913060959468537274384174350367302453183121349304800636346350209610992137294696285644924896317261047558256481039554124471721967268516978566304673650994978334716573088217982629031405166249850953868679591663454464756944340208067672007622801852238601679115914486445479550131038996023469188521193214187640012193261278236985080395881945380639142993483740404037698412314742600411230476830345772594520086268542713600972422899170958862189995062068774041060278327344931489090535242998240902173713497649993475721963387010196669330010592118116780655144642073472857392692383106935499403956980177461854728149208727500730253260024770104604173978287632470370142797085932462599960976513677364152111671647741338342921927613861243881654059934041827009849974007831686166861026722818061879176165061806136296720060934232214917677411956155105822425640025741777214145094915206728423144737549670193961151365337944900794298159161569165363308664897442681453799442048173244672823571101710845562083933530107618852102177931017623210546897982581694369052292792115959453727473125646182491441210992375725614924777538553130931766094229421082456729634817741674845950374385207173420684733909852075475132292106814373869391284693598281008413936480064789614624125449409068681055597785250680971206746663016088085993785672065844952497706751881058358375198848060041789425809855549443489409551290742841725594936285076411895296780166022585611877788845861576453531311984168597414366818051907898892397421353051636562456505595154552286403884722501571283897155570058145748477127714065652271966060184190171926740836470187294118071980409978663851606941790675846062089212889923936819648285044052363247853439478761928674616106580960192704663854056188366696957645691319462858728560406095864144298928248010861484136192784386812576568683261428207831816654187808764083141107012868517650006507690143563132359539669380729183114610146547446460987149573088938767593909860637656681124978563621971797778921392972161454140952750874244571046075960062073227077067619387867322406169195338047677225410650862202402769515213278624686247991029945805210297848289475208880516499881948430007313509422814718561396276477118651729605463529471480557433837017016142215448889884664449281922160644537961923455142194101423927435067483952989815716593369316987315959694631708448889004890852904888485627067508560975469583517381969374081950387637201836638643682839596129676573852892312134016740203121534807320676633752811814380404154081692501533196883256086410753667233508731712475740089381293854340132120497668786893310827918764379024174380830066529924941675871813458331449189034482841842943877304139449308858659993102109575784225109052185299731776917556698043639232555207377295040069752530520485435012078916129175493667664008966442791111884008884588924554484343862355110285436218002785640891839581546552443979914836433545894329330074376974492594507557656390533979100947528257621887450135944305611719602863673842271318343905120418187194463843740605943664233195439810796064569106078706994858960695665317621953298431858641275655704143981829764533079573679222191269268632200718018067036941551101360556864115501713086372148762430965501917639190911877320208762253522090337906110551258039305923749856866430608179792061906282847047478161137004556232972759670840918772713370749837861550923821558709531136856026937238397088481526954161412188322487883907101091633387220015808230343676479167251007300390461858869835816894893626031600337887796514917625042546258182235852709045316767082565969581205080670036325443719207364985584300399781503278866884922252786721701910655868779419096603004679142369207895874336787902264193749260904861459558152775060596333433857489000846230254917651259645593370634953691314853205842213658760022176551484125636502088040788517065816649228261091082759916712294547850503356739963362093804824588899881728765350941134735217782479025866341612795556661827477194859453718805710656914980065848868117930536415807728681278483819193234903790557121491983583083595547824344532643221283221908897097543595368383730792974402024127694692989512913335551778390565807499642172471612190639612479447010411307572401350994555988129895112499753962654710704320765028958897323018194048927394153821622413886730216815750274317353846539221579040061193047770029511438810280300686405534819835967351334101572365931721555359566577481990177853570388623808756518469412211859533721880227069777402993410312135013247004622946459920993072361167190225552003917956123099575618462090771044697390092395398454653481567819643627501759628585764108480001159546105941644028936967305395202920163232537644714712458345795367275519873870475121105276133630375500127291724089633986361985433339102150288256172738366388053151809786271327762539973645719941450282728474494883178330951914581593047862992756171165566669575933189012703277749104748686500858758327846654275143742763004101314483949013794439829528096154073327603457438113734971350899256092634054652615833720716070366507591284052284801846149559660228002394054052661454816120540361409224454734955331926707470597592124148996377992971822148498762917502763089799050737535207467047988420176380817410962889986475872068602528379042699778653922381045382591797796154797994980037701762474011527140832308859304540157261295282632957521400367479927338599107082120379215135931951238218008411415182688470870100160519038431345370221478682920052752731562049535370158713264332662139053640632516704460003792503514526685130397101920199342196404348429175332877099402639289886645249811562830074057301633495066684809453738898763133480846013970640808567959056943586067827403886214580633106367005059663884241487368819734140274793660210160861752525896598888255761549270516935252988328695208423048146907440787640333204852137871635409402839145835698229212485672353752819986332437513049483654387531234347665884514385082685193005931700856273806063256554319406664888468878132878242167957766948294176204245314639432530769136687873864461947303350629888172758262189598151657775885055749449669751788435794004401399074382930303294876334160790222253979830444973043165332287606981194430951941410443066683945903439522146403088392034321810313596763040832425743409497011129867118502093871086217379961884772488240329307694692345366088899634768612215405233441619921849924375674411802188725541664586702661541003878083715305638790067797594415631397087311298695810118687953676397360303009716795021320909997255918638358885454716764297705901962782427578900534808472191208669313561515335925240352289638265793306308124869796144329083074926283054088465940507682820182605215364006152699452197701887364286789148208795185082419853763560591812074107993627358524958323962467853437704554437531889752170686463185046954236655846012805175914499661663868385090351389736617723529574535973836478776898926536998514740044361258677846371536328932687522403532948053422554678605166931464049378869477550320761995410145049893741571913025919351546450365052133931325101375883461687798879427488272451743506337064927524921678383352127788785805774160550416460104160567662222056623772644970966049114772647150432009399055397623621908357411227508067202708859719328148183489873352820493289709012607392562359554784974086159597994575809445688416441840222282489407053010564450902857859565762564299013399655385428491116087661077193275979531420448437321214320530630862096406754148990839609612830496219193256590156016245727922753951186485889124613562903106178538846842221552752777017657111439262402566919700144522274982276198396694380074953521607170273756941453386694712351679625964735551823852448988533235278355172065988151570084400661857605938665237913859561803299432475507364207342707722914233910403772627359456111141917034386455683832970308126858965776315406759582815005712594623050135493744846819790205156665942235974540230913266182290338753508535371184526849525841194919885987204100855468056060185386050163758120206254897489518217935757592366088089530215145545247666501158202294195195562245481916503829116575589118091533781375572256032796152040774297762993581908088773242810950126791802301564551335161677020888482067981387712577218123443904133946303609012116996721932296041686741855082109115796920461681311981339622547415419279743233838373716024301807484727845207719002150834634749191711849327814263921996216418888794102187877100439449392383056421477485632641832838572673620417360642368730269635168488725481740670501457287375111465302224466191059429996027373342854843461993392682348710402438419501409565336040366126256613688586250136226012390212441245914791771296456377493054042353810496289065094031408719627555647386199946455073244833221764044869545743066156790817797140341791350435989005261800178202578575149145235415189521201088615650592695824159388118411267595942755711391033568820686105930529279190259347672623167752395958153956531887318610943693796082359386671033375196003907292747060131036103814358467978127205450625907471709014029449248430843920304559665299681423152375938371564137066725429826231951890814153472797951864996732012298218074054481275407212747652313062112110958975457809878154862713791041584365632196348627708419226924324580839236551047521209626672597038657682723316259410535842977351744268266396244487424201714406892646737273192004923076901356228557903218651052139042256558397656620266183633662282459455741194135063797158730026018037147291238552482599521860190011972741936642356631134766121504338569563083643902356262270674515681243583157899361692199627015198294082232190325001122207526902006021579694531106824108871940628998573808985146676232507210610935131812647117966471017027745280495840286519001670551616224664963890932395140292356311822005601769852180193811244248079599680143372684432790045293761052493708891529482335429874415238465395366646082463083690314426680549721162369802491302057097777425635873955364426841065471382374442541899473821108993970234223396272404659848317871957382101142752046037314810300783793304465985605616367448601865236373481672799348286421646275148714586968725683409903699471873798508150662490724782888256020821050512036193978467722802500931247385987501827733098524420353498310148739415001248597641894513727318914015820477024451362371755897680647742697334895189016014837324716690608229399651189624793886931217783838502856690231540197890981883151642784123524448083358836810943786841506765777399669263312823123587397088853649885976235961431622593034290761258854287003852947328816144451622296519854441716880078193263497483392558429218566110314433067748024380218831352305470004960418370811219182633966697465925717684907261486663899932791269287333734318428781355880457079476457196474790356217452147027113929718684700603340293872634589513874209461150275117329074172401241824756959361354176464703898502844500826838415722435270517437218912517279537365620107938789256541429108505751342228143304969047896040298931461084907621016205392076952359769959590054302235676525728836269234267150742482368416896029310124600186090554848274742346319587097236904673751823879315280211757917719715979620635809491706470871468054439734691106150714219345044512425009683247343373308598289184817385967130323841497827786908375992224236988790733411288979456801085113042481651787849613940318820574408117954586370096008828106312017681622755224007635947183093210194962691020829041576393366667522994316299062175704952246040452647823575532425553535140311964756889975688869340760146081772475329358396676092309523488584669575966708030153100587837571119030531638369344360254405621538506574868893612129001603092396338933563811232542618043647619028600526455254963131832623997844510519164815515189729140232528511948160205917436744085166962932418674491595196688900483139847925296358834791318809967420730256258432160945590904981708892564770529854902328737914796678103592863821961750142853029571161102639312147743124091190855114943291531096611071059250735402961370804376578654694960847897115767008929883883328545060585887754955118326595640169177866034556615581793437912415811117835763131462009829740302815002994307328934538932261841724074465864009217767292440120557232279622552790309480986845886245570970541609469985952667884461383910185446822725169797194325908975585561210889531323848631171030688413473738377973223631688702748326066253975536263651586887025959791030484876469500303398980351614036901636661487340508254111800277774395690896423241602530497934717708262064576349392659063446990840750455986324765544012657549572577703019797854344497474590391458947043928024859527421729128880738778964893018690910497673982997586923531539704119978924756410266993150610802532442179830591959735969503580322300747502944668634227888484839725529090087009738372585870317988320973080646933261214765955393013755171887199007497117346277810207470613429796580091137504030274843039678164462071712239685493522383004837226007988374986576701970220067955433520348782866254686418575817230572260410058755039442128091164019499887186174571097608559306077147845690166801784474064893470486654385576650605253408064271229076532541440723142684164427927977855068592234668937505886363541331548396041644144874095956076019497759590200009127872460577279007421438156346709547678252760487350545111124642708260161805416007363763011809811519256647039208250691162308575990705978623111669473693354433682690546262505060800116259642353244332746361668997501378906164961176244441010276976558431153720503549798697589139567561042050220298000988947443641419789784841355990820598153239157514895745400450732267454126271832236457913278485225547144129106862120310273713977234969963104515839322797563435895715140829644332321808996597735845716267652963108759401187783880879921369375127741565577186445984079908983219138356055960837446642555653737067504866533469801910254768519493969009993475662949905665964726839517837924748566860280183054567080915018328306782197286548220205463982773617344343429426410806502034571439001786342840149978012568918370420843284105056673228587138402354294262131065201435221592552476627984713778697370614915881305536591167560838261218703769858990946213062110354826952298593530872994575033620396074905530667071279284801684195503130030286552489117146413952041475327271333182087092748573536143489184252745060972180214293923617872891349956813249236833889195690412088953030612563426638096121349963142795551064515293033061266352403737265893774993633575373815208575212759193452262647332864830345005196041663923994728848528310900372512724441544428321025971412481627198080025551739950736111010663970208587100800835840390099099049405177134779952308776971098316928398120850934953376439643374518209967742537688374913211980964696432026702609583498657709626315347984537127805075758172636101300070123287913826921324122263523432758876055998925288207077990953803848904236799426211125324956288885083900546610468667032797938735437523280204040823563817819816155326899056143338477108361862517075473732610844642016033193830784054188339331809800398638586529776948247344628916221574134572621871686341372002320654479951871257971010767503154212782928599981098181874956856547694677702331564040896295523855840902055991078765161968876563365761870628122500193173146132777537490726043444477565718587348868944670229401058320456463757336932561697684540544528261950489933146532723141178032405925235484279967024414564982142868773094594291182033262705295651131370096466285183933762884326061015211941171014561396975718038074355511256996141868840315070705662431051511220579758853245204771991525054829381637993411442870081345135779189953443520999987033883798135030751549578052972155502037630294815701718197501982537482624474519607067099721973863493160207048349691265700757205374472879313581847386861870262848247139247236507248692082949312769323283021513335866176629198807460277295356850602949327375578024414558920956461534842737787568994341022118565657461232099699265572198141861424789455987730579296361014144851685989142439502248616981267836216183213964248577939118154092091573545814550554032014267377986679879884365267142640364032784390801971452428702789694796511440594687896041339036680465613264589567094507527467463304913795254868922222099809715664336190760071048613120509537621404277772266221038323416126020355265372498817906635306692498138502126625150850353141929309169271879447756834781786138504989428414881058609772861263855695290564535992418784490668612824940105371744757085565773755171436087824292363258738261803480072848830620009863259345014042852570744195462589952888210515860694918937467256904015305842873467558934340931393929459872271132852208566289774385642542825724625668011509160701589174447580091475297814717553702584509266157908281030899274680213406535941477142088551316369435525531824744179797617734584333948870914734198929756671203692578462985135467384741898817167194961739516758675198989366114559503372736933518917480766579333174573944405629863237248241771737912120557002162692463068010067090179871047261821615832336112674372397784878309036247555773812887974898936493477028965767623887368187054938533994821127716320425422224120620140738136217672200817150408416438541089389534949849976287806173621351989356356597677095253889822089314070289598658404081346660919451831303529355294457904260615514305250888344153791265973935179496420475264467547353502629267532396396740698697659435004515775268297680046802298863900137505553173536079682965891822746476924095184551905683115532969842139731077331075769128451282714217923410646631059168210489154426963112109343143904619388776330978535743701248097997634105395856305261768167338797935904961037965192647084601205455112013719905264938334998465374566920105388322776136823821826968204215228767929344006090496721752226570635888849380070570526260916126576868165492913900705640860827634182778966434707665796878954379791732185803105757980335854157227099986883254985751026995530989122447615922527481591266803756574823534748400021884960789876275397092795503499052973394630853537450542992806076147742061447578237346917602285237704189550996328937275727696244525108945951559730609438656183022202550901417038231453271501678040129878098456415703493340239363024860372733526542756984227890522913584068875512296388338767433358955925890622446720038576069344329691415469580482199168481950319435360296524598987088870786686400807254065066607045853805449851664884891463962144548123124233027979509160719873338211789463606496027192454736617979586940279505445521667752962094962921635310790036547519638424387729190460522013369324517561969066025800788385159093510414172888772332101830312639227415164394963316457779921294435018461167220627505771848647392983190578384098605257146261766619725434898006137014218702339990694571372461785974740470828711676804452491593880029349387426121215308713926913810736855901324679062291953928018526848819819446693327140004691304730229593708434554637061218747218113570755216000660531409532026270416805669641381947018667617749725474801784229888248059865620879653050637070750125339527992422215718382674031561195755289897155207924291449807978808299336234396121164552753461470705154491086161442126742895883852692411803116797524417117948640886680646570697214204045413793113171024362845759659041283023475245909802653827102439265803263446776544269122497787109915112179197685655963190484533401087088382796815212240059653810373707271990871085279173077814807178267394289543517722039341306547643522184746902133502058671063877434342802596098171881747410693089321998136618787364144066308391475775887922151994396950250596407883559849256215343788663208570026409683266676380881543272271375172585054675011357567693387181348649111892462595768507197710996959659577297044269382511712218679216917980610520925545833457682862973471305333445380384616605419150581434442401468273094752304347447165799655054109181449130729393844516454657628725354197178224255039067696287467909517480536721660790369756550027954342064770564186379225871804698826642136611613489488528199781430112600714828808520203536009005418816555056057592196777124999668124271432785202757393289738665636126488115301851716328220859542384137607822652733818266232002724256605030682567357844038395337382833137421144048994251178363244943206525278582820765253197083473088929264138096461930003189388716949944076312263511573125605707585231365928697026616805092407382642783618126634671406079374578252794927509160850504905114283760692369017412516278777288553757796827492077943389979509248276403852886738347912569531343156165801581369396548467203466457090193616088445784652067632821664331586340068947064167807622462836990040980507962207919479671794020744064838576653452592435974055754665255336412096426686017014690467485413908284154276615291379890218340222443269629103202436992713645430904597770844818672046349416334197030898399900839509761357006709433932503116745199476146883644240395272412216990331422285340650415643456660032540824867952356977259925371276911885302632196725172352387999070572213616417391434042485967860695529771717811604796087544447831427683660719401048503738538116612914530699697308692720051919275214305953520988328857617870988759092486460187217856338831787822767372868467548030685137353530670809942683523681930033019993523133261254815191509405193400117249510371736029733540891751147255369933273267943647860846792255330944264863724215168747258389085170658353137465077932491332719807471401938605062245740258156006999517004496034075590188790599325715809086240117230299678215420609829886199232162895435670656462437433851247259167483380883955672628032452655498346808218628350866419228492523208286780531927137918722609371855551326394656450438288930510449235254070422179099833413846976803755199546693042173107699785279745367155817867478481060699392004027284558304021185233878105742018572526405323441580618311129873713664374868139812722725812231804104060629620909477113702861667940558558225895914254048391362668598999244286295630195209067446489282662783081951462780205016171070344267001508653968156249134104447390564541507591127085763422206356361026440345380812231775444142710382771955556280994928914089741818723712259894140507960014760143774968873077538588959932461123327912756911563556329377379650195382280588489675912655043809377658211651819608809389803053108007716578686316560458335375644981832734385368705388271796725410467403077377855338367371488511226071654661856470739220045042926387303777846184233713207647536000288337143606122796128857313084692788901645758716650049464001153106875165125249589205400907108246160832934009931604532840898175531829592749133444392506424718685420605356604884755394283545806910643789077945319746018178991595570928106075356416517939032170538176675475277662025645611406868100403814374323086080229628007249629202210234745845760878844127082261987964560304410758196361297997740681936066403914976734614714129185322966441118356259878641949992603249503366992161894934174110122671712872004899041723165106120240089421120295578388652017285187244090695081510178917481251697714181957381005708479679238473859001483563614815166006709872671289732380323285029428743258147257703130308625579037832793833222886085410437135253166342203889095229942868044316055703711970635427754706673002722193788735604433728346355916113788005117296858364503633339375785454010879455401337056530350976428271615267626546020783897469384612300129875269466593247732183519672701153745694021278597773397381545741565150769179765747414566880154009449377997650953536318388122091497199696907193115028928806657863388498513367548985484304643239286848117459346355630389105445039358048717455120766692298431642890526322237011659998467521377300103364312939405820923924512819707502171144491760620608312811827627734681036725290451455872776146434922099650666486250144621524382709971644515563327324950561567494619576335844489670481413238811534527512480237329743153151043837335623882185659744882200077418613121102387768693018508223575230525453767421586102426623338360005997344781959606552839590168340417362441961024496699475478951757519077714204040623962369883494292918971521803260941331480538802093659131431567288649342209121364795997410330677623445156211042390285227579525950689135397904906507415908396367751033602454309602806359608973277287590086023221992934610058695662008285945221749136992734109523005323993866669160449711150357203064195140297471324027510307336970500170986603295979754963575716609905118123000189540587266058967681961532088837347981557213231801772246431407455425468216434472190214970054548079570710855586641104984222810883291059036280783663928709312428407025614555153944634233473371037947850798949734875312660347098762168543804870825007235956106044351245594260371400877230525481659257163938096109533876772080804577181627230919944797761005519411155776246597293740223639651115516021651328186993327889574365916981023805716887814631626837968506737558927345128713863910956736957168406030122184115074243430743345309228739714614031876534995692669407234535344621321663517495587626184969695127055856347888978775692912875539602527605494394564366151968197500910687363282161481567859802991828082796419902022430615686478798315563710690217517647755463313479955690331340344999156311128472956925865584584900852326246633165432727077174683602374557449621474844059168108418940401670706629832597795081026712536528649906378067556338365914453685100342107846833836995820766046814866334027787999776741280533886292245956966840582393888292063765314121889578631402094527966549838855141212457374781119070225939670340163559642864135909903199888287960618543567016433127238164620515814443573236854411767770798428455813309015081286050743956284957594056391680628566701943985886455894948232970516607797621118472493657732089042731579818547966673986819639525123918520373164891886942668987997452388306492066799645399838039850562596149509428565368516489703251201242654382125632411858609954749364929663183246337742076617542812872967222829962167211872027401424789774541880374053730707346285768309460047033250540715001480168094621844524016274652098147937891247716342150803822154195786713405657186065720198224254839359440367064490111331006624581161289479813323150257959627168049120975626386589455556043561509625073044731857502164449085919822496181644311467610594259036071426614335009921854082413259951579657470037848509915091494559763351059987093267053320768586827985806826698531796005875130289704558191563573519527341204870216930426035403151691277327286824032502522566201203494505725434554908976436364531981950154984730412086761909346609087369485666644045679879492908175702230448752078513844234444542506887780924638271471725536312989214377012876727113234451765471362065151659015766685697926272082631652644992389978604290360234216549713153889483271776698120831815684370636295588640642031525493853239479114017839515274282336619440783742629552405559299938523736825131511697732223240591143468679507526400096774202060530165094391765536385656525919472264655742028193613382304935875953697463796782664914524820041323843739078937658678087167179711323401587285445137001244935571920655235465334209501415979115594124156543306457027672215601293839829650780841808579321091705345405600385459790511657168320698006528131512526278528045509213399916455036588556343909492727199459604881733723666367071440804178096203830809947471775327015687086240606903936948095687197014251380330375360333807628492699970093823669220125169940380813933460790383495029440197699609832133571291637189328679196344150972613784611605657064207579533713267740555383043772073164481691038274575318512670555030386797631957249886661918546232619234534256053088262760593142385422547334073954103091318897839199645469019735193200236985289630869168754913305175797664688725163556302873217659860833000187660337234217558950869622730673694022433418996208954107308943649513768334802569402674027591877956378573332072639658509091688290635708987165237459340292401256232603275643921642464268548757218219989961278245302636259985510066403643708108733073570991628836373778330657415291373155754797807153195655664659994170831032559463269106218104567428959843298315632873757986991135315881902779251391346348209982251813015453335069858349389631140856693790424949450133779506147372607705917002316426549545930287795383178362878222409460374516988157525590071920675760626971037282894791975534232487563560857845603550331498567092077518576872243001187028395831314175321465723029942155092336524916068136510248120157432390823885829747515516784093787356524719404731201410663733544945650357525627757119365316654516949504579666538485082604602110125356780540794808620955636813737160910879394742801107301657330600390807493970354983958279272176985688684082138074535485767220208850601065301591924305235475846274813495624360609437996961931084991158314248229887933349213735777787793667354868861104015198784214044299636610416434579964120566027211595764834602129780656743089524864392808685622874989052049058718018790247767390988666944049964569107608409425170692408635659194892600163124939013129930498720157967545437066148865629788409949370633323960823762190889027292191834477705374859296255933391297794203942560157769765396307789778410428933003409070225251990665890385971211184984152147707975457038637790802449524674594876347150522554342374767806633202294050444386716594513305857936713496415002039512898248639440099569769710226751656755532977996856739226463716046006022156754850923558166466094178229988189740284174631966148225937968268098745816013606149044718911174865783558552234471572393693894649502326010609218460107889040977619327743372272840644637505879490250280730211994213994971847716467526769556239110895076259682949632187315339749028113777383925220471200427258755427363983431962396131566845352104057747536177262683080630098102692503417262823479126828112979416884456582028290732601478289292037879316729457630050098451665659823465884390703363555774804161758000413123253778743057018297012202634060840169036976524774542049680745404084959754976698784837167545488008097741145760060854650680501326593127443908971993268031139661991110676845162736531171943423842285662324358984477012625376973302637807047527274856548960375497234884591580211057522444942894188723890508866217380128841844713965521038629722938787411800892209010255725369633116353114272776338103212069535637130604779808191038778615082541513115126697563102433422686354152459095425589476084791414122875405884478896108973092173005390067577108942446694627886771767306652917225214187902716906904059504063011378056342222304461645167310311696025759544698764431520774805183549416087463470303332254014442707516874591963779430179875266526898911482315807526005834727373705026279996942870980317250726784038393904381204714099685961472353979334527630341836606735047988696006129902970834715209278697053997744477106276774368530064894521769095789021500194525854626167195714416639124305567176644532255045268659333949715606430801796574536575213409819899992827458011455008293037318415886731885715089852017013580153379016149329924547852199085985794572383402168575565434101878186732754927535638278011783386879582530350185870073991517610751473004224625227864131691316385942209199375444851726215942006492315840191813960457032317376934938876837075052842979734621555998384081566814251898164122328849304301984923202620249389488822575953280516085863649329074818568541579415299857592420753064185606716030443558469106360081488835838230718986807336851053775230950622773119666430174655558768979631787524874457597292259386518393340367778381993552732021593023178727389085332035314684522831605189862888055644548742400048615229145451552087988934389124038216242031441441411295796000940618777359080350405494407306840450181056551705536695973083070588467730243607146137632288609828473783894306697773911980450781987347452216124966101725988640532346835439001049391906339057562116538495994897385761289918692651579628508297553163125799559839822056827176755813232836190609520644591329204080541396552507628157936890151256215608875824803018424282806791564055563499702666925339014107553351870520268068267920922515388100029568699006178347074629753293563697773847086599119658480992975739897518170220565860846146944975128796399669970185766999438164623685119452003090248162404125090525211867668873607748625859312588558317477500103601335763367752116781230768200904862849607221553740041489947621059318508941219263947719003952390415693131658439212989482533347169419887305608791140748542638521600851393019183410426748935105093665444967776869769285695207691717272237432120087000321682297723032191546054298648677317120342636862757298032622895765603510473317308512843645864707620675072110573823863800285445295329117129635673115348889870852734815107208125862304808493054196551695921251802113844514956975175258503293534405834267763460558170684345749244664546976501780192690053041198601633501299714533311186134677372712725898794211407000245089775661237792924450839216603879939011168913820112682915976252428479149290441307078442999864813623575057771908125604547911262421632426906989926166561689569854505797025263888365232129981009513148590655668662493883870367505721283723045896489526806968669526098595859399008912768466644750715606497318777436176787591894768655771522165379479551167499162149746245842166412858136690377791178202303386426560398037606673426931986881330187114916264206860071129932666726344583994763866895364448031832453058952989791158385892306263040130607075701494684016552865556609983352191498501262486412453076521837113114415338178352752138069056976995519588249882233940209380717984652555318258340576103490108227766945314168186202129428130298087049269448825875700180176073170266763308978664277118134580049979609769449762429598940789987866218190639852794927975904726027777297930791419285320844627572308932086833501699210471444946605206376017701913437974116369399781800565093321325158534610728774610391905581583111160388758933457096511020561894462189108581556319795053859594956139361182369910730846495227582797056048211150491741856294566891627898444459276993602717118748524642738532307811382481954814430163731612005529266469211912541339307008956284744722515847645050756755353892100578745417095396749051458999981382493506282680579769952248345660389528255801148905390173756271386912733469210780458344721877537541314138107779962608958834251998454124228598855079680898898739369672856040191294974926404094338530946487131094128039883989424218583165166455701510758862122729945969613056252783624989909084071688108453503947975713094098007271908247466563465609181759206763359700506818773337520720827140021954770726549270121357503778249389777766317307452588888087838239471902286438045168861997572359897131011950871741409335486456816357010057546828543198316165839667763111366144179954807096525094995845912665776012859876104384957142751060301620455705652858055342136658048774877991310976392202751061813989639509880441294532487303894513559807782047922076332331658698638916923995498917181849082409562122109209384998868437891536895398613169523656113596462491162643294577958398094211926307580746226025585553554027215210396968564077839189418977257300663774301748169331672356453639121806246170086145740827104365590298289760035342465345338688486835921335936207070589517656377486222312053049303180789126794744083696300365664798094579066307947754358310838739380149405790425674479306223828690358964596976580532277850096841911399543927670644061149132523645694284903470604690577610229273219584365538543433063787569840710928724508615931413180470951818811841009689429932872039150448939616463385532451528401702565141367168349593645536219217474545986070642603744956983956526076441442113038922736558169056705533467820357197661385021001129677620302710038239574569410326062786120218570086883996848289897391226762919435786579172639798720223954678305813485211761470301415116765604481700861229945292788903614638843236271164455522925427522205804829554286212329395699082875280042544691106931261949722156706737808802268945965681141069149888512623288988032643739083201699524881775080465812400619753752748633585358822674809654901194709124459114402533359344430578006553010857215075583649831366835863624565652081576829325139845531019811628663269600324211567940612040930771364872389545102089130486529868741846184267820586707957358779564422299143837997484483829038300195720328133013134496585916316318651770535744459905321622175783240733758395639025466362455619005170748067523513454225048449448768742700417256759628012774137676616432892580693855009377711800134671519447602045502158235354545884650878458340117977143727147877800978788088997249841677334646260228817314482671395825479731409305673790073438942916478519948331435500508496908481778293485179792909630564393327820381625558329060241234999950787732141530528755849040299552082189532752264479087076702859477642951500520016670724967598532998287588237750150774164438700224403891207866122401044651790205991970273432646066088882374037493315670078071468986576871128156499950858337136174085447308978457189731447326910663285846999854948944189562651634656228371751118934299134019077570274817506660821650488673715181904223593109157009407396547344870204285229863714516764750531578542760208278870653516148434366043875071419139277752171246662480485445007327869365014568273701689507351914873660787884097437633482075382005165495591536899962570128369342028609937754072130232213529777695732298205921612048396780975714156527469160044603547489303184874468048751559756348810721088238250960517286303266243993870355998482580069466646675052708492406714536928756884287263833959636385999304002242742579759286552340327494558641560297314796463839510449393744454204150131161156356351306853382802324850615347978769675059598019079127718133759209018650211417411463703109137335009648245175686183725315235343694528509691320906358113520664151565047219860574708860699786722793675065700596363349147397254685227840462371806874622620699687439711016458697095497723952785392014660022093662740623883023871308727256248655714297814306033669734209370259141436371907787596271809289970005062352890341198844810052291171762085870950713560863610148896302442187486262094651793906998073506490980774671355962488380544854961598145938608182154499639328941252775533549649047129383408150158931442593341197412376309931816685744730162644651093653825118340613119926102515179615836137122406304487701962457360354161007551548686416934877475540799471520825291805313341479687603363138224854615464430489169760663991792349644995719024762689610877394368300215102706759270086778881829443420474231274455681053665829334515305740555228952760407793509961604871697333311553245251597635058347749483362806812447412449762496579807313867470419744651446503047249460545034876360986102635899002109503063530996491230009378387350360390541408472352461742934349980889092471190169158560998670453616546723928447439065162649209689225385042164662761236040932202025313190279075005533153471974830059992532715834911477440979615990213397052932071487419742377292379125548556962262641061884897188788795009185394399485715262271293330237406024905197046610016442585716001538542958180378416382625531116871755484309556572050561214737627692040433009897503414935761042906023415792974467482915934366479314035909401853365678279268649448053114859486131012621332832645859950696523207735122268999803113564483596900812116599360316421540910273387716987523964619544936585779440447772355375917254909118994187703649137789385754161521004693918436575407826795623520804492276781995282396735752469246945655784506392083950274200827272714730594732021988588878246893915817752458996758034862176647677572773813794984159235299955764424111078062493460616912851601630113877001192131197409496567205474108474318391291202178249689282944886512255888930146317645569981481371779001697489374041083563751864831840129974531791487780390479970829358342441336020008156182102050492684260057886075677657074157654231957434281008711998568739660562828776064128885014243728843524443401674275743855721602978458548248961925095472492349602642440286032653617918850021787009839009093072023058359924841994738512509690318992087258870136083215659974871431418191490932148033540684114368074019075966420292643389760256913407027676843517004609198584752775733389612657623410734477758988387991347349377714168636466686013675300417193790368937109695066456830707014667862763537181393806145730705400376469792853806615263841539336285401482349938061674756078941311492240471376148334535177905956310653206557032604037763741059519763841936397375354933470208917083443635961745367888843962867839376317772720456298997068124340493602228079511290971127193982869178800433750911588341364214080554843197440113405025774256506173326567914287254422321839910010395208008419533850265199300163037576010283873299647739975440111915941890869536074333867975518747987523150580391908516457046085026741729247239785226686068055998447236509180844185392212284950181023375535896466071133759499110270438830865832871560340356007932736216019644538508915891773507551524304683665594939693492117001664559872235953524641638209831820863137908134722569896868753846214511504004958631925175754329778763746799051777247380298828811081957008188202006551940333158113129781360801612920339106501872688662262904484101617834397195810462954854500810371697986039311517271854386222235762595758613337671912271100342858419574472232322093973826791340953365905437457667438595625269732589789483333711441106802436049839898392582325838991209407035609487266183838558710869692065858797773849562900812972817010332312374865214527237235246317999379839966381048320558868037695645682572977592171052544143953853461294833525861333206657061182060613963812809804692856559373307791520901415338402785983311586003125258171351135174579312998179802691502830232452548019965412365211270349309383643179952355050823881776712888190666534062700854142613876850625551313813628193354259221473997793122793911388558746335978454869489717067637713240441829238265744516060927335569394659863351201291645052336789659890208449778394414765403632618138531185219708941510662076406680820617165920032369104390822338356375619705901639978773745584416570858173444122592745717501281306828265612280474376629402679704268551914731209308859247497472721887607977356221603279618090119705802331489913448043398854776999619429883080936016568283618323665125488628789601213747926567111730171220970329201057135274163438551942135056806635716715276796237705582315057246701810447598366226715752027572343960611665430691547036377687782483414595088492065550553487718801573429078610426220273917570354908878128218207890656472814011005877331429658773439651440252593016831300433039486016230408471237089415576735631272967733974817253880271733112233551042812560275898878320852641031092987612597572894353523888677550599947061962153091508349041279009023835776538050054284756371259722049480896644678289555005401707078083228654137568011328709378213906667224734813232103246942639053263170444941701450454638264392013555869143580405315720593194929523368030766774356038356021465498097287464370953507174472259869744927200496650564496184585721934688142391587413561408222123028251811600513789771767877667461092537913362817498059088373787243825829633375133756400519854797925665635128388523817918060806016605545779358308765553558621768748226173042079405590078368178334356925739362836853951238719494987397961181194993291822555791996975495308322515469937366741097548230780883491730678110552822972743081698441767360712134419284842002280365428733445974521361201266476309817944357522332764553890709140990609319929555453517174299411527315842751336240597664782286759327378879860361548355450226812772305762910074655383680101972824146637759031301326939159001430313452473767616702432879710542990213469259726500603017749361294079159738833516737281551511882099330675775544614553894082366897073640858313745362773243920231601142676074976111192555685186404662376932973829784325058630070655780979183977145698038148310362580823903553468725732942748935884150669320818688784949652879213402648840230198231958827701338748002719507266480563105583209250475810032892593788023585189513601734713688071055085509802521260011683269622315120255772267973400441113563012100665371176986089114434910136971973236248764579367088206131473827835331984521467267763569062164242912043924519340941065590269842588638851587750890752639796601285134158165780694346665328697938073666895167765280560468677501089887907784496146708586386240941163893131571344832284379973350583352234754967962429391658787823441051588787233018865520398878435827508116299438366684214855314045695034132943724999753472675403777941076526212250511933142751580755472933773083387802477937524266978189897805512478139765916406870223368387754910120267722818044386526021964632311342947449992025250700958006431650772522078860085300872396052683731480768263701946247504475600394721943030254456396274005438208892454517372453115285060102765123986616590501886814966603942142933820605442379857509232183072698841648346475576604645804947590323697617453373829353194260524579067671702918377620452385330762460162942825108408619019310465007325479341349672050605729155972228400947726255495456078755732403605541961042386761888967440010244004488123681766663386711525070326751858810460400715422711413905407492364502138415533565529346288300498372796718553775831926554465833459875847065566491019195758531328380055317963000475649092466056543710655065368521897501726827653940386492701655343880073551111983890179688058039210479249813503746398303509299666151009486663158378762413140110586552847155188511664825373627165658521791527964741293860822324867213401210750429329335039296334960159784017054923807993110522178168137869195857364266669533328850037891835954618267353185899456826373155488770087542856038140490201838549609901482174519497588442714076649865030976256977312149013617376107470973691712076704606888032278284775726509654167908813746803360332079945868266502813227845516669568938050660665433333504075410521924161842072774010228813076035544220069592887571918838686547083606326971708140040256402049274296601936818024777108125804302824891806282204682886605354615069327506072313194690379172804391859706087853432811052105651747972145363734645437697969084693615529459341365244711444395148583437614390127601073452312219990527392856251237720212425023019381057996093853036896721184855566224311861364714435021053253761728049869168028579943205964382278168623953556000913931493449865766359622460308905388137494008204003392348298069743166863373130804501181113547934487784656071995623848977207223713887418939273028030616629749914818887434962411631305084053979887076252588556769242901333728829845528275935654301029580026231589216274461443146561182262833374232116440791385099865731792715825740830170984066220761480724060226640277753794959653796177505293668306836945405146904201976532498415421131641460852314001388521690376700674228472221046836852852122893688150051741887825730236871935848698649557203437609288473378363979669713360627575094820485680218613969344209679910558530825419451792988458752622363845620598215317631894957242569089906960880355324874548115693802638669744941874622882848349554767222349386292026159755813576594767803805535402206150433956535285604467594600120106947998837622140983832117731355659846580807843079042920554857429540534540082808251183025025504517192975090732322129536440518090232299724282051849473321979092293966511423863274065712013178051241992612449782254990943887099184369970044985652858569958090533974388276490761878191982225435267594822868118415653564446783588935412304216608646237824976665195899775737773621054687320317332491458571620874381826361003811507364049944998635367222504215759726410257809555327588621634823049958966989181640242935780779006098389856826825538870783475929786324046170185480305981406737290730519483111653950871267165649891432903105369833409580259865881413121594373378742674700869115882129901850440546692962635693268417755943791892488453121513496604234348771483701416465373572201214448260274869672437704748601830790757051568686345189035647130003968656478795053113804122059690736175225149949960659435971905621477063407069252034238958921917341583326653518016174170545968528145466771740712038086117494884661995401082499781755764030240556471215393337252425216078322611538567691407876456758267949564880265094894232419722403389156413696277796012181248695932298763623983415756138669063053119463483008874820835510194944441565442250705963832493780851382498134852968364674570916409493494896189940850359523261366930088996118459938602727565439917234317043206082938096853372129810293779337001518191254622756516152382544535305589522798777706732791096494719281841786399368186054576775329656249979202090386900868202919800907803560727723694464605160631297741158681554968257200191906108091428009193943380508841931783650998408594556079193450494520767181766903164420120442808038617359588486176366556934579073279208457501622751573514151709515646067643954537533113504845468793406865763019688426040482510271012524740895453988429647544296798013004992445511441787718047849085092288348242164929115430406055385470605348777289672938010959076440147223824080513550132566920814034174907566500666468786318074518309309430389070143042551969331345459853731459908840414684123022526901540022924178746717521941162086297934820815031083037067485046403419287878093460125200108488662412728866851313655011071786156643351926678267082275012718303029233098809844059630557475544672316673781581412486208227711014666431470733646987301429150451206608805063586009224459059221530505788202190329153204488086194321793306454204986187040356386212931635117376386589022882466693713757551690745114270028262314726704391533405340937301493789931801415739835823725673814466963833258686790648518725497970561467068618393659705174813782572920606232496300036258107181407732956287716209492235113744413313667164772686601526033030070200536333154487148710889008752155750331601015161354601043921299148476386754178220534565254049360989540581943916265746144702667248372310528944895389208710665370590439771635948701368876824994668655543363045012574246647397347484861865427910285377431639018093191236973307728994989443570682832147990848716706837531340924011815757770149366344202796276610461485794245467099472051673937108493277414678934494604980536664571717282201626984704048363182839987502441530184645897277233274806164012966127157640969302158233408833156930371675227773559174708699207743537378952190170748623087315932501445027641936978618943494554461421413592462536799244482974997903506886142794771476842051659847688758327991224289257569669231511982403397037940128740527652408823391908322081662675133365325967835365743729297694222279785337444684774316923372083781712846866178501002180819206647792385756480388540426739699158183851147133440850582146422284379244786217798711872339472381824829852532550009541788683174088868651176476816097806913519163138031339731623864967505032597061712653156996161671624454053414496600694289034098940317155302404309375962144223566303694033433482463506304638164202302173573132163974455700526403430319129917980905968094447075932370949714667430274189990957924562594479941736660351337200382136303322343381445144849421162874221380813001928236165916036923930464528374682632856908361278452717552735663329537117519010863308744273943324984007114273055693027573609301540217861689035979061045637604187950988787015678888146835871851023117071639523386211732124352090418817205759084068463641807052769882003102910421667315195730191436368028281619559008256134824770046407262653617992394614789189289030689250799738654502519993664801897279567911488332424308152241302865595209759317586197921054400629762320980477854569166896215990268171280968565689556544810209536602658457829404303562964675760815701374017828728673570120642802446238917711615442884071759708724451071195624463176521183418202470656537203897999441896994237964036952050521203616217644777579688861536338669393130994883213034491254097741189856303534971988906141200544122501198808938023568973069618538684264660782010438121926611312736172418221394791741000805129306893368285987011602581606662932521606545943823804057589615205746244015335748961735155735757480435682170438679067937367976947473629466368057102736084186976420888430260998100944579544057322298127561918829887374976657524440146076342302214052063268813023583419485378347014719416773118881067797824700248211883505399820907961056744108849528866660478911144182076939299487121119802539771615525297052276805537507891617005442863073931956570785251774170732442562051728508121431092116116167881243007912844790825018959893522752548607564746204046284933850022223402030650014056219983801890343300589013282696878770357920512867979011711888169572917385871144230639869404652405733738732293528694618298083614945255498539674058945132279198361298958689848728077817720599939003442247846205481138696341776344467190376844677096545875058711927946893527445450347339635181672210688909028750649349520251904163094849467668007275736509852830966894956847101812069799685039480834157081890916146109575346533226584210922458524059955548907895265627717869798110793529782512198549311596318295331987843998124507200946988434680428220539630459596935492474473264508768192591454008837163401221763379753328609654660934918858344350821501715618109604265062745331384862980885012895450970184237766785403779649669845462108629484410318426117450028939300765330652863130714722180792855862541715220848853035513019687912616232186488023429047803727500688061956317429522523154068082881868039297272170188987309835119122745351730589220216913436005530259948411017256485523983594002374560439163079233323121283297169427530301154519537141864682309178597504889910955949215681851205217582627756932744113378402007616856722015014182733796909012636487080115347241981658886035879671227025195928091018571417902743610106907305542400104668549649228436677122905114260764965865869651322256910829852406811016614097015847679701176331319203261886848125252276457234786960998775480165912522910740953003706505196836102191639010676073516966712421929214231441680806470229207260372025558889685866997420628585419622824942170290982861950877714219935717646983307045483700356418206148322636139505934636438383347198818134288284775665153338261995056941315283214836328104146768675360514492720821600894128712407232749840796604288058406933678192361926018882880694214322647443460283335290165980719672968336231938125856575705013410618154174095085073883948688433506751702695441421196610586216185303349270356114330183577465933772538055519188572212513220153270162139746502550310343259404995188236332605390022086557828238141997194584095129543430915620940727178081521791364735143563232452348802264514989603194283842943433172296115109627918164144363314303732207184890191460032823330447063805444752322509439801585040166277181451174415303804975521830848485396169771742116040506594895823573619041115122123537292492624773552230330800902443959734256160031517542557193326066918763179607674459823559407935320957775339297106279504582489090619709967527187199897707742200701462813879086569877337162406920039037680298163992958016754991535027479065078392835869676485196721878164666928828202435938931221334222436816491210672882881284440385669426156402845934911782971606056109696323762426565314214162351725980372373170408795412598387475117392467602232602954181621626837430566575282377880669445146451641178083567497983101315974908291128159916999013686274770924067316183157486482190494155917803377828777313060689249824231576746947785850645738287206014613764986232632872067475350633907925189838091648320511195882805987934606811172644354187991924946141345875030272655510830499393514763163887385902764631805013859636644588285619437298400601869311737515136504374696965604352722307134574621647283256752195187488824417299784404176037594695422511824712448881249526634919761917443824086144572960641350548297178218669418824815499520351348308589828193625558404010350886566722647945441713067031912877915677591500885795395931733499555298570229084753458823956625330040312694518604408814574767537871551376760525144926736636956120984304610753475372513625475634636778695724070251800683176882220096258847375571175255293480707357580879657559823166340816887993127114675718927623642484049992786463963220798416219320936930346421142028666871274645665248301196335869125170135857044492584326291408603312646936768143232565964493156073101789247003509314915901423708546822864519388326770360402019977897474643261931760169118031860516736634157188972249623254995852893590513115069960517868913444540044549882034504970805521103207431520440010637728160759985494510735582305574886735932230115123337773549525114899958847301807509148299329269815004459800232978459796714758762020976596314102412252685685802343463595237947798831958998144292177544141573072079960931841957849343939751993876887826678022411736979657361925995949137938002897647266833750953318310903736578182102536926522192430577085500362412214080510317348047040226487403214289662566903983086675566187368640585387436286825949192687004253521444626367714841533621661659309218986976927177680144135140182818303761747880648554087602104102091447983598578117606723832536249074114220720486150878208895534642488253152612760625626159441321414384279686013216678387524656363372510926355408828561562678936860766186489918867547234326284276498194910787764024196766552378973147882831165388021773166214434970136612974888471986121029663932626968767310326363883630468341858050392341766081672702732315340378836913281374440492814395892803315523108145691166650186890920310581293220304895143192914923132042488575738892048072147036348855269637440680419508116075598344206216395075975200204735740701812137236508364389046011769758167648050585821936877150016896744956002501867696542825156234830981203726961362591383676136053784344332706368258052579282726584312319289242403804339220602987612924098640485019430856408197727448355939302443489482099576092256062834480593486082116564168091930448982103814630831174110060135940914049198605323097394869233358818724352958852838243919509724458744698559164537889096251604531354656835016225256252499026948023154090077880413065289619149990029513018856698904629399337668650039648118514878784335010866495943905942009863252164758380586829966284774714536011076742228693957024453326976376965709857462696624112422285735823744563325150396994834698923492634002180498774583186380690599228245953068779246620074752097238517859014728474954996327830626130188418288285647313495883763920007499489382055229615950280491028633355848410832024922193629724098072128141519106007193218879506063057044025869629291595975573782462013845171213432917850277787749017848042544066066942567374913448237938047877825297302926263377453487214407453387931804274582724861209148101506015284570830605816023776109256141869619789966969472702802267452658103765009498500983299303806071746179485523061188385852330266200104311604391189312928623313244437488710540819010147635562314706404855668731416387034008859536177199109624830571011813015215294876893904258328335093843709958523759292067325840803125007651983137834072557013299504190445994675607058304011929982752299076968140267724770164556128523258131226613940037130211283398868972622095752183352554776286429137700512051157962416203644330811031106306993499836315969770903086109728714788979701473918264926624881604228326039086431274829091251557566279409338044589202236446147299633229178997872717098123007708686376285833532312631220668560713341648723567405403078000942517968354900129265853834107372216225958287796199090451493266212195740345710983029444888202756057154427877910444481863725531096985295875724280507241725865811747881533077186280522742977173039946026523107454882187564103823019171491649371421472733656760997203776723202776899473649601667158556639846435094392592367125310850274076920515377682925730913458098854126289629702422108234388646503074284344026669027220343458403630771734319534443848468221999442929790601899451117548258830617876263516604008587944225878247019991212545717217799789798649249735027274486374640110709342702638201477720077537682665617550393029006663671469723229854761768102928378332765975769241417658006282426535236202627139753879240358156708089740311356599588233655670405070780731664219777660108798049017922956882521382273309882315048589237575900631697291483321270668333481510056672423699428043655621014293330950228889208054493211240758988779788356010558260472488457977477632653025742289521209289788775676312373269948860975550678883810844825215272628550703834344727690102470062950728549996579440140448259824555993070774945452895626564503646857270189171588140979450978253189942813070223413415536011390757976128177481205498605875410802861598779243592378074320884228841638924976651629493767035000926408245149121679162640273808489522646573112158731538527717167380207582008258607888783803144915468967999039080129439345035955824121637075994025830629552013604752424968178574646273690788257752672468249404730736206511964407992046928045737804170495193669843930923652280373654134431787286361475426765138915363956000835210011032206292495988672056673326712233634555989997482505861442913132464480743835189792775376062248333791937394838527891110307284247961283446807522745651489105364721351537803455235330547716490051441420145326312006644338672261124707619271348194869472043445442291970416084726789307515171837726636266309712498734066831706753742251122457667006241271937425408107560973918784792702700953570529644254613461780994629693712730422047514060487721807962443326568407543107493272408112948832912667397796735513129090952017573620455100617003316817204231319463373516943735045056999542540196614304693469591380491872773927447146726035997876295951803545291301761042476304815376195730611877050464113023773892248737377462028864336716210190898057844857825627619955030991074869746792360815322006433495299585147047702297526687694013116068401696230454197528295491908191461456257044126542624791756894521314248104391203949202103286208009024799351584289792448181190786469721578942863325722211176221572475152567642855394135705649148791617896705505257205926326599610908348566475357489549633340162518271944993555808216586673215148958951403270595152068587876625595181385880724443316631165818977810055909666705502123999768189576584249490783596988722860167362892133058422124155233700327991600840856550293263806973976996406969557600288086089175190068772329508995611173186205595086686036635534239472138819340882532736983314214178663494260801713825152562272041865156768739503468048917521301888282543517732820822769853534091144170508273589841080395961685773115837573831490493564584168647677470733715457647444423494462311329564305227699620644729394795662638053265837360149580379909381388345691156220157475604432478427539945594655720763579031369780273514688860923222036931189724848358148898989667219056163607725643109368761764528729907659059127068574760368758424271827811235064646864304360077472000147904631468176705305271686424371710912636538517912734883690565962765203467528908234048842172477389801334711461796142854572293726337193897041935571685268644626027932409938207965007213295009686962576567263425719368790780722517075866910893613447653213100260345071723368897879792356015976285454127111860319576258868825677179591805213973806004681100488079378126627969643185888956059513949772251903437567787100755015103262007364105394136944000126846546763674608080921174459399480381342382373579524461675319835901522519402561032726554181612519358058113611866037211775031965704083130191238878110277046091964866130161140386416400626849044421378233413236817550866516517995829602925300526387625102486238343344503445659224831940793818572265355968922132160106909595038361306507274652305054570350613916523036855925591104780506913140849215358379512331970692641576794254600504742291827866295038881011080412763051659833675841655128877791753245252517456045406541562447965001890436547604127948205506106328107610416308654509089629530501443019176044861944142485392637212252894812787037827218067612983300989142346912708794471437411047359050228215627080923469127922102888550883242352281200948625972996195025761772326250080528278563583385447088427307858326531169870032654287413737798345817480483574671708542987140948106520072113979218605990922572107332178492364165563571911966289164451485648522547041599057976934708435791502108036664091332513937823711351090144686361622037016246796515771758191339493432907067885283380314260960332597014795702346032345721776455104186990492100495133402093798580493121710027241320097710142720443158719133930988454066327593888123484096811207896500448741954025314987216202222037051582217717452499279494367056731250946970315724185933582533959281949474629600027170180845967973211547086158953787099305782498010793826125015635735256596761747421168181563693229011211462876538190388910729640713331206826951331482924460891262207900338620828121453659197139037643076124676923964686702508944512306618455032653691494187130071856764303630904268120775472987300626135175174108556635021518971863662532008837731563989172093507062159383849470946213421887111017673574075906136581735641446485103829806671329763053379742078935920988308250450762455180918262500582002539058852119155143331863083348425682003624894299613539922495028923333997985800309721093179170594329240159833366870362067977529334437479288327792163131348713715011674621903071788411207845889060789513803623896543660704071630663955080161148350443285958962627539703020290748720457483123015678894409091727495137655801313176755617823733927821292292940767526766078362317820214136927454724202012598607419580420428102822245720774495954092727835451801461035411844540600217071275458795030629887643820931478606963817135422329049757733838683919061412082690259978821589492961257197429813021178793918763543353769737521623286250482831360031763182364666089227214670945990518038105451114548897960628561754031346496714930154999862498203879135795145381228756457706416440270863817881128667717066783972747747505402193867400177409810268319734666662629283220719220426876789759164857283241995292911060420327269568442264190774148477131434349563709407777466031850366783462982365723784540098891495165268044355230969357535479938199734232809392331217839930563028775694539079816210167957451524408349802960369072354306175433975271521932967087882843260588712208243605171482843268880024918309929453738846230305525254726680207667553102340643591124429285052412131357302852689853215792910037209683876573541218470844650191304682107584998958659032938147662893028510213361728885240566790697398128366262446489127969394222138699406876675531109093674737435927024686626792087301972082561821089558897029015254653140889321811697278926026766591433444908749933219863920502754693032885391929000906830710588491979378622536649243122431073655854349929075070290568840490707755931006264499671201649731969095494035026045656708353842316407321874010404775424304290845269454138501048077213523761410061291189094648690464301159274699494764091048125123889631098568376526483368930043167458678722162707884030387327973430382173302456658825152738643318408036424505469579068729922032810916322946201270587251120859134641137254726138324657774728516796565062979525454379616942336640812811756887688529432386950207690599713923600649952422095999965458504674301435326614542601232088403740871995054453664458070141659453858741344924314616083683370901869762948978365881389293589051553463224140297582164016205047395709390636438951960192627046730561898076407774401898846284190679509813625454972267143293148439441583034503053307386994092174644108920905368592662633844946848543094079547238942594225072102341475155120537746068226731174526872844745795668833731695750772516916072088864931079932355338456436911159640857211057715714052096543309570357415966938228886047845525603271790019831179929701744578741327784712963410226586512520243277703545057322846650089295457631993909996896559092975484168289810433827060866935993727754581942437987355779798245112565051174866302822070583086687897378314563512967064251624069076266834095725527115770400983699870260128012417352567955203268442444671675018660332605858577472510836620875737718411049857838614956384999414205543772403128253173947269600015043268174366361140716199056251470199361107472268746948808639435762279834032348720626460945622397357354103479741765944554715472996530593277371864865204511294895001393260798366754058503006332658507740340440819089034267821007751213373053907190684763353763354861146733310060758970932921035063511436101231551446582139946114829659819358892990863383096851564950010674658239564238726661291606250320426000103734797321457815449264634791629741831262978196640599331343551601263283699724852222933720321693682113013381285875891723078700443217190823467574465299946899091555442816061257932581686719693553436690070968438852380548618066666475999611319807662973965438285670018657704758733456545609623697549467569500264376700150533881339990977907208796739935761707575797007633563728162154692756345068412605330505334353048097989167631155490959388654641410782220711276455431777175598682358395914155571695119498732804244140167237154361166362707130702514210558977119057557625566770783500086411074137670833493227383736528497327320014459543606953939043312814503545928014413305818229458311613098497855422310869192848474447513123150567494184491909988413344781552735190885996155918103062490717235708881285503694560062260811312367079254866778697463087696456768822255015910090614692504695194482909500648194722231643111238128569030049639876514544995358814060651009552105836740684527643461041607169320350915245953417272863502178252546339480332791660921201411032598054608927597342181236624464342126236418849296720496392823374431944443942039202051053079359494171809259817094461910294818579292165570034264700188107252979685527874509768282235503639155566123066111502853198649028595161910449507654297835401067569310307667903342528456786543191822329025514334205187588518890081764291806413834849008373446512900576184796495803733473241104425055707675974577485549439679572460565883138543780216503739681247307581920320570588725021328379154200063756375146812869591997949589374080403156588223976428451749782280611968413167064347090896632618252018913923841533765638058416691422330642780309480330631664779566490677633038421356794092000862946005839493116311734146226004477216508392094137581737617659209486001308154770969091516351181816872261549620554491438250022743701001210440130341162110695096102612547123819609317450753371398381334306988634271991993296747526422076554729815922198912180575890545540907808274224850769414074768310710238221834726114179856640762350840812845768335186717963119106651482529052300807185422465007796787040911207794100395559249891244760337159474481037272165455874770174663231851532240563335698701716043910015325769123013176956184200123610975930926984517584763418750149660670680449699932223739463387715603595358810107649537264030227473741331071031347729430036256834747053655409794390729695844758281090225134614893784070853428098946388219909296466959817374713278202104069779788699052910311310910777936030191243635905829469113606512292319105610750553685472284826989093739244138920816448368288794305670796754651648136799945144427028885326588992776926514990877473951613867437753257589914719334647322132636656013530292039584554917191505168770507461616579866839850181822178396777907836816775813482327060460176144962436762932050147317971901911756046349946814622264283961458351667329883047975221188080634071448894428444644814236076901512100505978171969322092918540229162779125279631982347634742258441793007739474810925944985813581890470362942075122698152108403593151127902734148760109757716385495353089211605540737287799983222263498024432912859954276091601081041136587775150649644345392763479603488117949642493066470446175284860014677030569919298813354594574946308846071233996444884978363867910339821665410716035620412220232598216780434293462721298159075197095554541566029818802284259809437978272842648401415370707313359352380292295500266092369457346671445118761369019214530462280986545987159257396133494260776982488794449920701170130776675574745937887704969236872286015835123803106569364211517135129549805631970765892375502910860314764361773732449043191694637566953672036113360226382743799091305348122662559118032813239054058525432493198520362666031921635604318352205331723380167414231778556040635262693505438059469321943010232313263730583528002246636978438306600971697564515353812716527696121985402265643028695709241056993497869143164617057383265170153676725547722155351041351345089527585074052366811134062371637633656578876077531157742365057468750214230161766641351044597445080734263507361077449441320644483287073845383131864364327484117079729949752821299588955958301144241285556137168212089800043658715211943218706761069115973907440886130622426796464301909786464833464943124020474314196705741942157004300113793675847239298376956814085155535981693799580901568919296754033751719147917091765913844903668211809303740306938520228308743317982452999827662384354192424425224574566912057693883438862580153812340672399162413580562068342413103676769718868406392456080851807101354494132386530392348044057606462387823927604854428764077400462653057122120504695459406311067626747860866303774152077448751227165804589967302482418896486915066426715053122512628091970972524560367129911006351241654141804511069735978948210787501046280183118914239405722476450962524043367863423502391516354165461394017331451962277967056139835251321394574798583174491793944816077268816231455189510035839731567083633003136973040712303839748090429504124265914626251079627464974975139138873801686338803910960863387379802228109550073223247419503916865622052312019329903821692566628719843682600806883997776684596825101836467517030906388248607413736813518403515988519873341121554286588304368842439979756804010189692030057628443014353048420318878677747437887717742706096522682329748157611950793432493778988624448016087813751287060360060158744587269016596165194959906824654084125865981427662433639255386248352444884559625569957690597588184253357021865999199093293470949650005737083581580590484331274715201419129507831597921592558503653728659494022651121292735435012086441683811131929961398791268436604688584725938809654781424149630137262077664559052412848586334334638757919361283948545631604430680594694573643529886990818078401653127002239523091387081065099025058720976886849166850397951861587407184255347577967000517600041867677161913464788708031122583474771461588096648744296211029895746168998142418427498558207517520219968067505105632914531673180944987213306925777337141126969234668352922496338597272858006219287881880973138672473566033966531845718470178856395153101469397375647839423515539770118021997811426266886979032728779232968819823839020769095997661559259560979265476097981042518130732499504180126471979821639757138830868027040734460563724526329529673225997972543961766090081846536881748465130800743677670941728645349200523740454607897008463371020556703069736397615223700397392344078229179815185285713088949943488870566021684498275651457142819299228185892709604483588079316356359269592826564782214950505350083171607167558603893262850872618421298028342253570539756212098401829746724747745199338107831209435337352956343048375301436344844322490748297849552700824996838191961015595995576307235407796187509271619546530217053611398465475981400263516915967906577664361698367904529420663215761006132269683516604568931563782644164273202960059978081120445937366349576053768052312717699500584469387593010290301221951261806514506287155334061588409441284173224771060208751649067234915281719153487894526844568965026793744474040404195188260432672825861918079786469446244795330831317082539103180952360603121011432722454198207337135365110810075212487450362899522015770333163496735163832709589079525164161632528191300762162368769423786958580869140919593599200446001036399678297939883292048835102697004547619724971285183028344720994701005729244672231182925590651147413534052211319418863291153558381911170090425292613409161925578231393834127076552071626222625806292160667898842004857168272793592979165036538745575724035959658242014149027313328616691152356336043441914025232941078024088637026372150474366682687772934833814731213360686141408641662981571219435852805021287612118558446352639337932224450382118233869137635186897888208031430497772692551617120230318098927370803085423669305599003057836237260717062395042459285216090237190738220791537696687908039523235524353962256493990369594818288636267359134458811514273897057299436382273199005179136930025597411510836149607946932884521904025798873829301746387754383232628601479391098009527302639739541235888290320726354538652495775144895455838367783106863867154312764969770504179916534176675659694112139412612998208421383404369678816758994530646450199346234932899413929358084590189381300194411714194859037027064131186119386057576662831229657948851620197006909125311593524057420269450770987980987631856801052580164863188953524189831673222933945402525758282748266233050878427700753059134899281987058793338566679228467804650599304239253671414035176326669104490318014187430699060270194068046925181666651254237969593462000805272957348170622969271577472795070727177992862095768567896380175975052018990738936020793300822341750292792589098518984912108735526796952933075744955895855988369780741951718276340290317737756137840222641057596449380179707390341819948323223686382259725909956147639781375355541696016427910630854375157990222644682600549779786094595679408387782599824358088672340335342113565498180340433460175295891930361123845118427818825457962926907821185326897458865916021506144577258814617503216588363486689819812064294291742748375309152743511720923187588272421367939579527304516658610801586127085799735353775614282276245373729058675579393197526919936852505315560176472331186604699367009142141793846562149382932655705101743563078312312777223820050347275429644405328897053242984228232572327849925414887258273832286689184105994501118469502763583082730864966701126887972393896323740515697519876723614616928226432372517038268026404840835539808616648583242035922563140855991624859628869477032065961358330251626012419116139808598021704949028021303172636684950028200705033000806354239631276913789549082232891322316726975932989350465959058207610608808864261748632485910962319816979628322006175442603232046491344995378113477506990597087991726169727817074702804025750897679739926657791907355992915820414599799602119651292880023381431672551729071543288479228466780892224799254396042132713818961686829985171877804827674274002007292789801417119105490185391348385441039282078163143234698902953324391434676244763586929846972360248853949503344602410425945791256969624298323698456353096242374874714472197170194865251135617617493408347686383430412735163650814356244512511845230732707233855039865558421701242970222508248878552099331440826660237366189971389746421009724760304358881041449215384036096529970590585634391202653853351475522669636223728687405358024050538447771527608355300902043613890334391427527922440709701851632105975429436988293247066156494712138841923321460682213903641006712553240840127699959923058650806523099247823275043099585246080910322883036459148654031915956626409968789508579397373528924290687222639644459135201626992060887253312247552349752718651995115084121769673016979036344033478767258803466197221104721477520160266030005831182397769308113957597561285203809129755287667828594242908242253828194227222154422451148525230981076226220014596456761772859162232899811334292805845368924081819987962909349122421689342821291738466806479504804373511286683713452359063763834299531558633526732738172540465276126503794594529724120397326683319973531078889569936461188499076566514817806786816096126031543211572448201850777848034943496998651250840931193776357858763215983239002418865398159473154129559989561099941406633150841084860622755859572642338242188387932343684856563207319446533868635266915534170201910085239271653946643582777399526796499071074058697986492029247800670038762041138048506814536234020044965537713034503854937807199198623371986007714694510661769307649675970080460662918307837392900650771069800546898701650093807526586132090688478738471754920763836706432383483686212532394314542855204532494813735446862135736512661256616429513638283035100417590006119593030737672837903675098958834816238281650783904933322149313594963331364880611212376253432758976089960319617793440350208812967095245758563573676960632534968453266202033580154159988992234690592346070433580150387713364077910037539852327709526273011351919227758389966759759885289469666219783103167029045294039669133055512349082085985706859793402478386735478824085284035766836800062350470234676515154459110584320698382577510088457439505476389565751313360182211057476513300378002946261629728764505302474219315984872021504091569095939074868619953997660712338509106213337498486931223784931497304039256033779969920283324097112862937406319962019614642145731954452284472532530932405658080837026996847470135264451352306627532207968436520614768360200356789849562135476204626515437264785205698087958822637653644960353051217933439706043577535697592449027788508634902424229576886405860185420049493710209886108549806512165925061504045328005510648050562087200972628128233363157979910250977131256006366122657408526584587636233312096902384411104515313251017263140639758152444860645832118656886055565777893067010469357496475791697530926289566767978992529531606456888995533734084195927490592054682847232207670767889682372917177802760661753296495973523340371634789510846656785526477587639106770723555513727360377553093751802023090600438149406063437341136221842084964408015894048856375609334165352770202108945903006176934212204448649827411471091477320706680672590755691700132147906467157454472957308990468424869384377510087440864978630273682771210421009064813829244510356138743699683279512029385944900179882812095195412496492129332532753404542232622829276733476352492435040181651602120931708268098347990389522141519691747942851866412603086799315888095137823599476687869662611551395939467037076939322061789242688186518557940647109603545694522822311084655211681843630457328098878533468774660697561267742161388283777571634987591103651736193176012880580357325947740119275327218907615126651716835104365458427257121317144603998528712597735439418549138693551620279977942153657850005211169878070596243272890040723886120696184419230963223825616001345162732879593976239182917194900583907516283363110195719211329070471880829136798512003396656396679113458779845693523449752925640641649646028959684957105636717315219378498590517176897082619651128595571594112416517162657203014319669126230403498180644126674172708154451272408738052163608664390216218228187185000805472669094547217278664749744021970794586668512312187385154496547432054492340168122880584032246413819749574709087535010575489992488540435076474026862380706719899440910051091552706618631922907056233944161847886884117387433338704740770737865619703653026246597187358116682575874113382338060503464783819668008764759888956038522314590750628833900362672993528705531798005056200566723020775708442617930957529689194876329837968604134845167046579706544813058398763677909586416118473186770025199006763288438721100834534115902859853827590223631044183687573793012921235612438550465689900767849242860973158382058936504065692421248961079440641979883332269010796585897541031882145646512408606343666038892743205779557900593185974291144473921695054436049605692324857189157699226767623125543700247200789188984638504526865349301427609220382375907353693998769608019630553489765553346289253024272416743119853679243558386456290846573857983975312440361552130572492215753861386017007865114536853756549161832822284672213932726895994560794125053591138514301997834982087305542532990782596265029549943580225773947991239621231165275174525267615320229311539138234001104198160092279410200460479848295103417761302890645387191487427652626268762291785685019724030942427857921030422483502924895130243601572072037050596098725734991492084942603121871694767762307516561345053204386694334184069014541588754329746016788857703757395154184607037128321637704957456555522891171606470613054383262532642353059436211231440887844090988387422242959281961541716206340674218800412319904398373879893241243393522307165019032300302281379567746763283144762383361421879239053604350768680457313602404442448735822091105540025307415620583852741736121589156939934036561735048586592785060242633330961871086291449489701836240088577953433261972174264621335030819088814260390943383617928705619552599563945303571947644326113326758319328587129225612020333860236995328291552459817849440420195388717715948667386587782849142052734575132907887901424179273224547738015440317248747789712517412188060719736805531651826661944832935755508007936783996850386003274741990117692549438896769163384378571095311091976992580410638934351577484423030790003121924647938349324114853928303676638947089510564028748846202475399386240023663147841221462598596513363295451667015743030145726670720881584617309464034345354194223106214042302488827054604784157067558212084641582939895828636209538721680811443661971583721429369604206013911852791138748943018009091310374388443309405534830124796917805178370186160160255569440715780993791146247007748398309679266388079632665779779611971739424678114091889244548721286267382490255659610375149930621402581839109295043213913549936621716543814666165557401470509803464416333125987397007606888966410633604632206188357477103767943626466289418408689391935199244178328512069816385789489470455005419891877544924752572760536526074410291838987815166717384162385564156802689519657603758727256274240944882600109075123929840707938327890139415405808549329216834252928462442472306584196496664270557651579134832815807122474122353947928476248180590266618119050112275325814792934850317367710718905328297985597653077892139728305879350936694300080903267459579770501013448877589774515068482561343764645109147172999613993060821592210236007938043071954046945929501042314681103044380836167317219421055679735442140344194203046734063101377493511257814546575372495026781377656535827625106177290059204687061664713574893191044923823970751978392335847048605947106470958859734357080364991043442391628229819525996479742133768659170310560191565033286108244274594469508248770390751106502986445426932245613602973086159954042868584491461652071312441845996870312500416874579314017889221901070882855753499748026329484014918257417813311447301393197928174709700938246704633298527041926631776813944068988753401403622768820529102400773330157420508479457280578653993665575071943335501921975232154181610483910229576009320317117840104250494777255168260734922487116331378342147683988502820112368258090271292049328558567797968642652050043160776640430556491858521028205368353681261378379310814638339117775626488120396245102710436469594725828805043327944452034778560536527256113288542046348984159870212646050383469750884314468032837883178935871247874687666503549378839419276604005939313719350933726908117084634020719035760544494431556604052398530084445327637170658601816901965201456957560150409207709273489980995520074943373484081369755958589567961388433166666691803443921538840340445077689149782846741042630236180510991072941651421359040583955259732954374471578886635386373606888338214610229170115124424004000917615082031809533278057321587825211933481403061948600974665057456172402624408441235308449139342125483687938757248073961285660700772211325633514630999377757894921346913539684786972159824085127970365730653786524912773155580900778246087836057650747155346733818557993592949043293382822312287012104964198298977577774365489566780518387480393198031857231626804938485793336280828168859597795984542777980788209253108538481102227779220219606081887867886155263382237731006541671280729013334106545144957390996992189038686506587711912199889504231553490539050311785762265637853269308942863550902605555108480362013543694133097820666110145888176827137232722184114145199946878036233583720859450493819014026787811830753185345300425724870455540723759583432830116958841687455768977610941783913441582274522499082818772779361724936836600533946701348295336307600100048811495949503900090084540228405687243665071653704731071586524892441347737680205237929951402766459983865170496043281933077488165059571888819488012465016335086937207606295372241145067341829747770796258197286595124340908774233583830240447367925288616638035016917460632830291480652248868448431131588266303383465627686166318065592987126207057733045558224294764600869767290894646269856683403037085093294576889358604268837337575670351449329438712736390091785801027543521117756904177656318844037624501540011660334701761203027623486505160366436121513463197764861577357159731669359870033402939354710148172925979561667831155996743617833455191399453115907587033949142168344261555186565434339172215251674318651638199318632227312920327218683522748074937993852520885357173263168582327222620203563079852739049977777599230109556529133265189102394935221012777828379510110548878562844089314367495538525055792821963123385263514296156403308067829439531471438213415870595639782213246623700179572590441884006820856721465437155021838773596866315795636485872710673035108239493633718658887304853330161697552855991513380940489450717533327932415528201260930657631756261519761445655824292032494047011645310868710428358399860205268070929659108084497592986633247201533397273480781019078564404452864870021653591728733701469684278003425122920358956466237816292093349681108778062443863888523670438828830110461846694486378318927109481165093123326002400907786517786937267773797427272229279778677899144948717080751110890665489193203824409080444539758530434119563430929321205603221831041422459326828898433376280216033946244556481830374950488560590365381657714245891563225757756788571253728592297546780960571657390756991507659349472422612358746601766165449915358444706455426250563599898020545102703719207067504986980152882339077594037627494696340967960324765003413394509540001502782075294301706820037533054482920059904816731061864704151935134557136433004171745857061076188077300598166933418295971792042867702019066750493680009873771319241063325888544156154580587476694395762075089964577861552327197318584295537689478181700222135778413699839753419115942974932460906041896539247423066345432364864298028360972590033297099382936043552954925400561853472141925051191103610616830441046099148426720210710572269933876198801053908865063196815319486964748288037954051643286637438097144273521226068992341224408065510555534580536342730829241824646180896468150097873870987851426132930989912422550104812483816861773447944194997584355126048059513377773212457235547752723460709073161564802205741055332703754024078509778118628939517564233495481897968515067066520568049544278519124927715258680240418654080230918101872759742526727061982415221727801507581659356450440141114948945480094647981513817203047818236953509283047673576504194763499244400637181290665875752921853656359497191580304448138407696236067899889429188649106675676941962042819453153630439967157249095771443144729687357794294313456311179403746302527460672845453432501925685068662056850224816837684799416080034333299154624086757342086884898875670694250923105382118529110443403164528215079029929133825215011728989284783743195872209679435445866212851927751418432385303314097666055258621366781522192185715586024532662772323341671625128267550512911516625133219896215569935928489778700953291959979628341413613052542955574808577599807676408067627613878060635619270881339481697253597407748673842425784852147155115681276760857927997283250331171154805391366734837018360783791674760452349003525662283388957922163035225396094076669102544785056193238339739321271144234888853611550914107050410185131190616136067075906868744653126769586729359453409346290864662232413796179155694189118922150629177674142754718892397396970291096373942122457358360546094197029447810795374609051461967356884643196343060619111997077445450618207711763740930601255593247778997139052779264956450180705624596848713633362145593551415758287641872471810080691451777416615011460713478950329618430370259575867556631413430238827772791745376427507999499716965360702660250395858545467759209303750116921032888729506181676975674039723160026531544634407160167151879544094465313024668831127098628907416892139535794911041516278009581673976157089360795982099533144160147711960294958528363081930483509468350028918892073627919549622591583979551486521120578883989347108529220549766396915373615233174584336372114704435218611879209157660324616985573003836285759580397400732835898620853821856916502542492165804552783888723139071034520185466455895250794852791863682845545212004065039225377684549257587766454907109759215765892158943655331612403304755360018156360080391625008025575797291972844756239725303400643027541065592288361609807793724748855866468784779767242671053690560837551254480630510567033984863988942347852478977307339016347735958433006876107251022300387307818341148579920765691343797600936512882221708951870132441409811840671653849729875711716716338366342663383409985639853880765752128121185280504533216275048648684197128860111708072999519445343246236892164730532911061293391303254849998658004407778090597071917117296011029803095680083657989802578309122026919735304160760942483997477356612130756692020362963061462436100764245049579079712511657144605764311997555216018805195251889039249395158281279255100772113868165764214300022681303627364210361141801811112622919955078726065110928989221093881326059306087795450437799089072552123117109579049072931507017790218747902524417070218354272327427063257311143539639311151761159269065658646101915177538264348573139037006385695591644075457578865643304822480788576263881005259383115853256702293496538599823072409326530211994611435746245319236493157952717078419983145195660094399117343999868623300705139840290128400845390153476106795754174729758360249752737957963310785426510213326078754832420161079379203691757282330526680194362077150855809004321754459466956065112324490879935140632288258518357855473184902287226607411388545122184595923366262946013214593466381335752930569062446319140304345103445561876111800115551018936638772871105588733236813833569012344638427046714759674589303315351333293357520270941291723240164680584750600783172909767413646197020785107780224858782081148268573976971673264994952705713950895512496281295435382982359318993633988303636718312877313168230595778281345206851163722818994873707818611855453079277413785201616648914036951983184751956819026447016443374888410635407191552949194357624210845862115685191795964119283241055996376439686913273103890799508117151202538691129044985640288416141882263291447241732469610970757923860436751029247182005700708278476363018310849018419225533432145192969610583968472901556400513412279377223074870389579402443163229262548742115061287342998262374258736006352317553665746495134986995921769860777164101430683050179832809950901020606771786706711527566049425670264904173397109838031165253120937842361415734807236215291261943661238677458878457010291592306688338021866246694889688807952236649843567121174824292098090471395362307228253365601661627897025121034006119086116361659534255930622658955233766103358510399698449613604777705395740011309071330726020886330097283455447667329990529758926478025312538012648983206647765210400111808262063125499778198092850379552257585981947021728704868075561736371816702487253647942930096776371682242758726196464285091154929531027713276952144918423811257995297358779432294138173334571855075295191876095875777643137832007889510785353421169243494929106351756945365174114551537461697373089898992331049720947958179396418135264506639669523377469435985696018542120814213885516255736886927039496095150462897338264876030376728144148620509788490772154994127119416981569012511776116822828300976979122159623948039542302399520655456986745856997218342018361211938209357018252415852506192440414393120266635099388434395255329063294323753858494291469057171282161301851240929210037167351507551077940941939801534621610344103357403361754600635326089169006309739092411366095434634806889934394364080224921055710670558265278603037644930857549157823468803498499422118034950132901693539153095442410933354653629908044750067797961758697202299874081635667098740537411323641563551615452290635268417838233522942828043344073767634740155610473742168773434710573580380081734029769955832611146384048739989854173123151288623258591618548186983333767580406774749199347698329159768343035164256064192189073654493662602135623925358620138444266115062936129229758471144135044487686003499789814168477426080963610123239275111369937973723408873132274597684201354265056474394236370369250130400143440739864783628492501961665784342502694311919988169466470883201588714934077232264156517150881367905839552577446023242907667465191319074268234754112531128556390174293951228870178218499347914130126774589067028541486071006070665278120955063652614979397051816354040415878969986026344724373249081177454158794954563348881146167048354787186380122834327514287782588528440973795199558806323210543624243346911252163307134652756983207745881221717317353660685379752898182597436196978109676519587381515492326349693702439014466297266283447458894319811195359148700725102331980583697075170112728466184076948473526417670828749033284026506627377441759486847360143365731955469058728204835363383164383846881817488144899565795149521938664433274012926143972712755178726600060873008347719454918414242296064529675924909547876843316553964323793338618682993195564590960653927829936211139163287095339284626189197554354029595193511540603336726017415196140757695444016260063200805441625622840656612901173433966181416059206140385172473046270437554874137044694579796866037184364778796843341426144812296756520680648375109109988208633160892643607988557962742624573241149414048425262070601566801807764902688988339868065615854421943561354676611586589956429190870215869652120191770887476969713704247692266786931756995160890985220245930587367046860840394639747744687894638985787278172470760183766107612044084804645663954611133752903470765854425207503465590721709673162314684883182610960396646328403568992084932578106311714345074040649733009326862579254689517195084150598432043433383129799580287555692657741272299665367142131479837583846387819567477013672573898377203587540221977027941283074344105348992491113768406889243901253138776776102058679152987073546682766293363205105841380069424517444338169071476854085513946549505035015644999023157955926200727577822369614475303941569335796388539323914111870291242231257021519092899795873898470690189478642783640863701542240146088636309267380910980062835399453085663468858308479558739766184325830785386825171649176845987883058347622708358897532562299274258175792822247887951541857783472251871775250973775477497108896850183102196890488614437803965625051390370637361268266305915222905770835203191490267147908960500204418127014438935093588396661315308421900945346441324097136907667891867229425222929451435346170041434446218604313392057082974325334950249443512432655054554703787068580118613362315179057161343152648872783695485301894030073411156364044068407546422946623488288775380022823603025254471292809063842747216935868578368826206997221396449706504531726063115541676480628805111818824806678477837588120025906948939606024914430892534924846616286993493229080724608457310311636439228892663210380225852521259024890639738120279714779352243252423486646105052104795908938417221888549012097027129562288811746945269810646469145962868357335598562506334966007041665989984846491066746985153349071534281658683605251739916554946173221691186229364311194140500208951334279947148982149753258785392140665372093514777267630434904880519849127664490409113682545825473622922599866321243038962734415781298988200429316420312862997570429871234714056966627911919443064802793679883861040538979018615598811665614295010489676959664445617882172095266964634256085491224256563757408649252898494103325540389688248900900938669253450407968706208775028731331436484294603832714004306929324783322206984710789988296994429291379629851505639220647750071026069438511659361062104211946151394959502698119096768213569178048141769247356297866183807800770270639492299337899304736730007668186772955721144860425446459572298585204259517135319034785662693798214757376813961271926397815113421127138859521129884241556112624122305708128704295221634737779688400846856371314935345577522380736803552309246456260955347784834765904367133994038149056118820259491292855410631426084842697596258309406366119083263335424588154343647168134002547220730445667972838833477128419820577346122195818812996430258961707850068482840289946123350454598194968360290006516791019723637591675212266631449394503563325755007351284819772576036475533721191811248748450239046181829761861027177639658846038830440186816527404637120119699333336485662063328451944822893227070537505047190331899455251377807464430068441044550031801490823809567180394009773747373938876149175343645090461593849946468103012911383613429961990370475791554702361317743517968878111276099762851251389226210990323077824352351224063997017054621972093876899330487423481039805642327307442706255999391096631391196249528301505253526168432529439243094845227726127213061724146439129879083246047924466711710059740063538010907266550372406679403829933290712290466071987504523579246340055790386135493276705822793497929721643417931343096985625931236860387179885514266679741048544060509297833388162634361312691103385508658479862637015723980380757670867736310222542908161152369326197743342735970545335309981614416920251254006550760700461840193693783466133434272896204904160479523966905867269086091119506219777416242105572906623516605233551433906739996171236337104766339789538271742382539645525911815537267622764087483328485878438536742458332506375979212817025265425456911507044430332093965712475331095995725389573883761453586310668441636334534894377305206345942258677202965480180717637980919006498447995161199463910597980423731909588902873964442598454176902540283132635283814606302119339320505363431579594105334969081570110886457892504203401886769095086692449556561529071459370901555671109392440551651526172021945477437329173891285056602719212099117163574741939216018785811152233999191215009009225181862184465113634947777686715658211604087307752172916812306902045387756875093451128300935220395450876676869016423175135560440138791879052829647735844469875640889958741536840094071433992984582420934946145325545886365271647185022947318581286610972133438377999694347979774911548475937641431631118840528270583849587738615486670369181421127131044814779747052979328435367950272043086184659691147548611474308191865484922418269585409245628562052691983719469237876242626562933937200409863910393503693206654305949010244596601342389151925861788147938921492912939453783432064326678668608928327301904089476485441337883664797039609076449062575125837547315784709163188126805056605912829138000861497759587602915251506022705104038946752687624679830677366067392571709706042247235229510987868809633298121815681949482113312915664051877608794773067207194213355485419188913763884150128902607687817913115461500243424759441229085815138701372075681480118509440704014131809726214866810215923194980849631090644701804199218633382102336913287114495547282836930580203490298114303010814777854132665794952904847632047194812776964428926051598500758708998873687723382772908793122418544903488943289961061542245867582400417718730825323507904148019379967826649434258752846358044082070283291848317629014164756977497796457042740139753391256081340667708408695287090128086727343466062253894493287149749310346054735943883595100976641290800408953120445762782213184014449970676167744628211478743590872504629433612858225043460689818196224340213108556654711762303703248645307443826320524985526036622053060002322466216753829597780396320721926488892916158667904636621267686547712505473816749621749713243632109537954373895026344597080426857904996067684571622194342861417652850810701778754354002665520044818793369562168265697531940886646000573687867598507140518931347937467973984635089634526731659168103659251178034194969940733009934425398616075470454144842148252460063045079944803999077724796255090383131805526685922099716509707629056418472851842517678390296752647333747735253965861100550530739237455675811863213771337341177861630816001474130482119605709118805262191310459488120299159584608945152696255002431165688674278950141119917468988563199730927941108519516769156481497098927486045568157993814349020498401285495698930087313939695592764844474340064624256443667805086962922942950218258045816614469921812819282327544106285002690676133372713540437452787000339695572515260774548911929766641244967856838059066733798454336322713923838428959754529826785962335412623159897210486314424802632741406751638289819505561879169669897228454639894686459799498433020385501201895943461266698215433678046090237313856584911664175351338259330499500923628446889800503562704427910537959970748375683111350732100325286873813018889568979721087725511223451334709163614522260239866022044294260800385147712817999526821440649229861949456887527929699024806533307003927806148795968087129793411864980588490887908896530344379078861440568318130460701058035846546354446963852534124742760697244334611545592909332656476772222143741971470392220789393718674182853120603201564936695594149861579618749682541133489399348689840664410932822766286055208233835974652602616198086573104962055598767683182293361435263719558447587872003445520362820971299309049517404522025153091815715484509248698906117102124378725103360258165284536252784308184978239539848065829999960035197661058081088106087994529160546878317739445960085002496734004142182794212661888133948105850848037115324854053701906352541500667517545163972729569371120753789897538674042772752180451841357346757739834631525643682933512349564024524053902597348473093471462262261464127205919959316350491997746923600367189078126363172248158905821197569636932072333275178242542560384323036445620477538136410696992302778459431704576129928111286623118417095555691272990993867012477669962099372158455498545722695766899680490710915497754582075829112318346532029110049160797439864707586810968974530623046472588677284089888438542579638189057483929288344224122532558287505687334033159670296402088525026871744335832080845039814540701243680132514519859581392430457888569864248229248446968843876542646766534264413705051360533691541204595911133568554092014407899013884938785565796361903172426685206141969517702292278974903001333561922279376154150460955106493242267797806343205492658898187458228073412700251743997366912129875743539178395589049616217107401860935918977723022327702137698546250823121297455503259570687268031474549610377407731413304025044505167582989678992652000652947203670124711877355247624505933955517836111789501648965806431394679935505449684455572092595016581603791113118312175567648903761206422792060064187886097644997108642760174611478462951666201749250381492566812090171578597872667113200778758238500636803393654657658600002543972016971010528780116029715759864160172635876775215326336918363923330527505975313769160936948766851667324059137895188593716634505402059438796898922235012827574433371007515679426184919171162628855297137255979987502063460670949689543611704756604025412541723102369345100442307173816192649902796487338408239275498282161087709007113585692324851834756229383222414365361530456943944127668836355882470705171093904128756521431087502145162454646883691483256911381864127423008706670282209053253942467861766424245096103944935626417380045531035234745941205284332972185722789945743203519132203237876235468491477327164801359526612178561471276495751738711684598857329200544953489588001984755673804602882978699021626830049799366442176989489640443258098777229156321538811359445599191731941301060385756019660523974344897559926366890670129616756640624691386229558629396727289481537656481987820961115511002839042075483186714347975701349823630356134385535963081333596796114865462114480940553020018658157017509053283984333009098374778661659666551740831995635183326642816143420984673728924706654432604482927799686660549340269742094828619751402259423379422065052292239475838979831396760182716990397830920992704776723222243438015444889880122998851374280081407193344224053912666872671632241798573845575448941660264771808817263151580746945881472335024376231681147999059614297982224795303390632537568556855869967900583412595685744158265459949271850587634344999329030944033778970832281306751904717241455848828862639962882152810968787128069089883889542634522810572765811218228296849512293853230056691816627394155468155099759436293038814173349788464351328600233908770072292632428513749342611138970501776600085663142618406841905941255151824471756046993055279609364280700380976662075584347601592422245482939237757871283144543238027129180665195394254180450494919958263523412646739097529979326436863264088490380124505672460804646462983585952903243693308749843899383600991139547419191325155275645644313794420878873865625049084238641489581084844079889535501338117891168172859700479359356329972396959063665133938649082982462796948403739900405559379845599838157499514991871126392473134876886730012527335756449699890356296288156521964890880605477474434540190697148652284944153018826658023770809675798162689614090418633750753715457680564144706097078057575490252583651613644320955148927657572954369777658589611925254966500847289321905378615760377297525454971636686869655542542444851211069050617907617100856691096355651551118617704558470813223621220887116159577692938964590831661580735488027383074729548743341252119044582236221282470022176566417703520652947178128501307299990447095677096438706620138534434173874996386817021993764192444170626751159225254122404117762633232890163391925486062227667573081838979380094019716351314719174932909143603735811654930535755302760224335976699692673310582570614021535216478123185559724393144054875731127397866911536070305034416938706439818919677105183765976478167685879360680948278321014361183872516289350867590917313518095512712873060340133940424047902396564398778007346784040627456073560328536822797912844226102955829044509219154540015025368422331059278302563859622979675069014834054977331110414656843289449248240760171148945984735184256264775065415212806639234126101894201456524531827282687770724215050964593746503191745685635219815574682107432141451797129909355315523454200192010549391013873133461041844457598517168723449476463321166440511360309607400127418521371733732629086597798011777148754667006913504425724629283204518295756097904126158930216314624238520679698230115587399750250857908476902507114577204237561495666816580716488563782315676441027626177657199617438155217063885459653936408455021713247922933333163176302419291939208776052299020010552183616347304122554320919690920657234525079286788554372233709843980713102921628533287668603919049204258466567708231127130356228280333587485023659388846178943920913543090179565620670035923639069101130010960591779912585046191805544947704609806193482002273363804285966698366834354225333153870403972068438661089664396918922730720661872233141119251036568854238840302357161715319392740526837635535859470722592934419565099076532929248222780646759747752084975043627367549913077261279079992654430812863679208339413323697499150733976667693004832304004544870677192872025986396968510817138082412909314040395355401167148405238094109525316611306831034362833732528804785282868870263590991710663858809325128051390380334542333641432366241310154166091811456501786427132636156725345853300271700158333732040911724934923631955919675598091271127625138342996159308542841055145814115471621664055795178380981790800937719509281837529295774771842655023228752498170156545181621350099424264943643688786765046086176742099579999840274890016565060139855373409332455447588117565827323779627963322678298519638467988898627139160788152616265657287807873437239734785697899764420086876049684940137435881502639903940689931239918920353182001209963578225167177713442091610910185455988285337893913667910770852288824429926160473890218922672820559754792404933092074006558797110445179908622821919109900182480200043421357764054109695935713598815891168983212986370607325609568053394122763238748518960912370582112082892372558853416521003453454419370981949755880465284017090002991363071142797723418717140871185806570896867175017588518586532560712757601621320713224008037643028378364832949064587393696286146965734597105434538323341417651252165694705564666428609290114468209686980670873900290532823427605015151259458616855537337256130533562904660220986382971890036144512767398611437014646417676109184725626663686420771176010908709618766609042151867819447068326909612712608552455638974169312084903162092325388289662390808102862017519649296745314809375016520866743679605989247075304735887536739750601465773372954362164130370593214938445982387230154972660090267291590161607289420965838270907642235925952021878049785719702454894084333264513953305834539633364639041785320060176731959856339807922364597842381201562589970360736490319999318289645786484243402097699506015646547935880813155779190477133118098517463824474841219332965671866291772596737692480882118778271644796482167221496554035075198601875768036215659094845920831568450747783215244774462594293152326440757714573547026001472545043018301056232333304437249295622746722959937501852457798444298641078223357604721536729003483308716838493025253573944424746999283579511820886131108080191209325066187096623212852044962088885627468815681232346861674562475021120601319160627609985860674086797540063306205244084689427677012019269559908154029506490580042772574602900816156985469607037784685251523237723229250735618780886678812082919369723451700090412247202971351934843434683994596896283799314596580223362801443941489899074412959029398910410525088495496962881647398047567100068648346830769236945433932999523103756533636929108056381743577190190759717687550641543565999637348808900521987635906634349655592439611382646367312620329401847587110239132402844915461389695028228136032794738620938799705669590853808174663289497607203907427028910194335804989007814957431285899479961806600182672437000851428641353649274534847860992571486499705877413005426698596382302795391671402760326752671641157074594774644338458211714753006371748140099991107162659741216605014926539085016327562144977943760095051750935670284952875091458259543099479554881132262964656956808769175767381431189114316225239169343614200683275579716860334776156986138980864219141610284149316536396410223522279747752213128007095011227561552022417000068335524918144032181913531953203536237997334110121615716630088161156847329027842980818351963311615747493412406302772162793784790957241988944262792315684947992131538662965430600121862543826668297465869194050895086321577934013822050013478562218068465816066636300271795274676063816802538985478172731801590836220466835379269176952651161005074835926442558481842912035742851314983595373180075139859935920815042656074637725343912542139391530654638487343362898256415795882551792238583715076720371477661346515711724595138085051559465037334440428823513559053593508426928106264362080791570262167432963946660914337192430910449676609340376414326300599518568062843876444207282212898877791284066158511109727375202128588236583592973211242456331054980922610576736680613718074194067707998011395784220709027642484962546699396311409387112396730498761943600321276057484984050515957656551692312605580712450655692592318207361215309670628988427111504904369877203403656493952403269261966655758243536600202393185316970568043918433096480677602225048498534698819048730932955186709196736964369221241334319487440896103600347876997854860440934892201658841469778401080631781371169815946695086618341920885790425118776909427746916853262510510466453561222858571021217516306178253065639337184986643722422315483611074551513722778087415836877185976478240290127108653771630775627511333954275510641670920309323679594757114441749471229752134052124345970755806081117719848613730044770822636869056647608958908943625577043303299809589225774268918463556919688222507427334265959595705592998120321508228728968304043297344933836565673763782247361219419521132878322244395183647288471559253329193632007922729262825882311094407840442062898908653789564578624988788716470409505674395196162648960484168998373611118099770698726442642002608616111969132037015248284026784316684359157741527546109590434108936633276269086647352944101108993928822826124076454086245133965304610816498163411129948008489118448525551705327217983549516958391624720593588424999816521859710611637670193527125816712885804778056670421083605250756990469550672469794348015536554272838228309302235530970482609447485387925533638764777575036841064559197150338641469879728494956348685557317667371499382658906251852207170266439402054384491413586788251981220069293964843208802008702415095318546296566224867625407916997394139501495033677033364939400933337197916896233650749160758466997626190135817743481261213468806467561514155119445031505861260199966555654791864023720544613033280008150458443647376462956371115971229389642841430794128530154568344804933514259716318007046719553504838788598402056485072098762775034716119229563748458751441477426259649317042681115016677615582824370821752415579776779345292584146051593962160746223250741852349235611709929600227903580637243084230540492547762749571824754026878759181853971127916618640796956411322020478040457082074076499101997582168580946514644788531806406003000034925039166595854913136283159406414588561129059044042069164213315864736220153523071651656099472878305220565039251015269213329411887715055900640278948575451794158624108539889687890796050100423998259811255081123804411034969222568824957253797585771212913312397626276274020251854034848365004008219316355379121075220351614558055974885232082436901714231737873402275507860305737565043825274718945901337598579652633870206283710293268864416155080405687488167548576759631227510153955136907814099154698154937238927658022909272102963955989860208454087791355088603152421470607920771369745009342628212817778161344712394666160446146684857139501680859829302028290146930678291409721766468988052542309025225973074382731704615652350666225620634497639384936465326307250993076508739528015380465668078497618613594128806004945056514357454132868699491866460365539012534829803327995927015247653107546177195413279545841096605145475271461770344276557850129469527993789220690055040844390111490710567472682042374566073155276091298081720919810093284522046711220751479649306177975520728707857887780210734956393717157755171559686816909924739565055530100121041018465602451231712190905579913485425915422531881826069210005794969357098138984118729504003533633797063406725620922041370051252117267607691996861881025498998162988808765022963790074614207359647351738672186169155291818403890619120296685730550634195660937027806987437103960369717686112618639721204665478495433579843193699456672267156947913463494997834058802803750813766743242608622247306866946270828817556234856271271481175401139785884968174722951817169755168839153200952699313133368020462771080384743069039490274502821928336887607078343978005379337560902089644310855726252961189040816761576583291002533807453812763251282021025631318783555027415490788374444587490791911029656118208515389102192039241742720395600263935644545772284368439287423930695400269071910355777703480920202956536872791442430579126806456328720763510488189053491053917535673196148532467543625856649459713665460073738338357657581197051897067537151962210395415628796887971197847137534979027872156029283913103334960748198858853826154138015003164827247695655812718156842050429881600724398004207244126486556791036486789390456746136394887472998627740801035978173082787060787060313565824032169902006959485964631691037407344303249907130735837684224954943015393479113382182354845647606224015552241205226885291530733302222573802523737521605897280091466448019234605396142717414369352332434248481342913609738047250840440285229253470773745859159825223464956567180993633190998934522340662868392086953265663374673476712489451096573152396391242822044115373359452059108675188736097310426396722446428239481286841995300912382469970573420359385688744511981883627496808798698836766584171629927228514066900368785159737255249495276052097428584669059811526615987891579087055469743937821434211661160336255351689182209484140754279470335810616355276442986830038273505138368988187611178045889609283370517430608649660975129109914685008487883156952440784896555541101891061569844694771304603425140509942767282283353265556254124132090594176758575691361776312461304092806042672608410921830542050647150950091024812285740015623432104899413506448609236056093266266720175369018330415715970218193161098245337433726592692216188514055399561899469393269025683858882669593543694140527291145773164715868427971517054590866832320535751095276541565194559697157889936166652468440766213659221068121607968663065182371431435605857554766977381065190165839242911950023050079063349096566831768685725624712942990262588919284637301982380989307766165026047522896180970832222707264345086174027314064113012187643467824077681839760318894363976276514294493939149693564435984945311896446868820687861605196117514034856353699230025533837510787831510986617432038355086921931817634553227277657510179574902729955484829500943299694062721754236546055263575361368574130594515325283468712320275392573356037884122618531130315214402178792864035085361183773080036313084939909868451687253930790656380947531259142496626061397505340013604248857791896772088235939013899343618381383658506948675299591331946221496654230620394824753556297231383087165489463523421251802939169979970348940966924153552591474931029358403432308554183675778277034835810761607733350223746128272735636702225522071232211044014495745074010816686619478975520590062963282479176235424867651402432528136562324184385178502887471134582211233415939865678805731203504289830700360023794774612099586871829470901258715928523559514551277878488127467806696588163693708214474701536584925237992214001703746916611216286021997901814030629278256333910579816356472566614352205409330937421624833690979756234254567448548272746313155768926958508754055224387901441396906903906422521983026563096576933167602682520449674911117254516359262998855428399663383298086813578837057712882213260900319516276429125993982513662907183545361677827602433670505723645704156415302937839503213606190852232958445784112581089955674025184926778192401040083583526208146338858691937396597394586858522981615026868282505222333733070694882480308836140366530878748828902375572949001588317862869464175489857420792131863645883293981754479375817858459779488691259609988759994511271806380741569588967488753297761343948156408252902275828346369992190739955098507631616603373618231551287392997369594571745101957592889419857717222664260766191619149138308767636486509119728079917221819237826260935368987607879311376013707146340337028863197617224614522286122100294242411386707153565616632877430644773948144963598633883460230033281496885539939979237257098087889431662838316709903077529370624468696379326020069606359382501805984800612954733633776301481761746850360973201781205655739324549683407043629019603337033974929801832775333904414288264739820492450641352698052797825530399110410580964337922130918716687229354391527145556966100636438017215794952093677943466856066021133162813218270162523229294057367353458884881145114444961697346358908777676348718592954357353583857376474066102243067491520909608290582275669250120672413655833987372819201841693751083900745388802664837557735428386397505039732693932133013071363683974795230837762151040092543186068681779479540080879271739716077310380955337509391164052754913701191229612425630839740993160601535111370634501042288714170755970684044912701130527700388688378385927572747691329296290281187057294940890118386450776267711505327406783994356407723780816655871905155689469392623813654603420797883624820009195143804240748440596499046151789829129140599757854619659627596198740735601819102669022355966000398044052190090942560442419689798865799736283535374482787127053132217330264659136700668277740742189217484844014239685956487754696507208189599799011786515143209825531130101894989772239014951531908052441181415154275437581681520044414756521287274605774254923863396190546016276292556205377293925078636481681805906096620729314187192604030371042023305422542645327086298461848577336820468182383763273215605976201905354455095902803940528853605297290205935452677209047107014575781763288883839984907405890760742633462955511006539770442692207102009777391137526753843988283847067129367467109761823995729093918262722723407156770215663441328657925210586894867960850154681170581517348290718134818887745075138591328308565600608001469104239427664505791868350493576743365898330363233612643316819741496331295432047532249257789365603844195703736017958247299914063667577175540871815246427009438741543415534991292543374330797336006116874138308627479361806739382447620640161214801710467202384100470735891331561551677970013159106350583719505277955723270244130200173215817524456690438147781983585981273717877128518495006655488716139462588331399403698034701704244016195551278445851376794198565957933849978076429468190569529111012921157690471457901170889810321685743922509248236950132862676887423930025292519328019872965332126708056552118636196808758762156496452107598852874995371559133308955617502673630641354033739031295792294579999326381258432106819384542750548071975721519630054577479877271145488690831825251982199302606450561125268617747702528441001685000247386354769284108414280663336477999732910759869179487879717435452762840673126691629967352518172253726039503000891127457865069087233593850587883546666922105264232954815291187824922318941669175885385178845786220972493882122594920887118494328976635289012856316169798870002191715876647600826707104848550413471033441724447477752916212098527248389638941686626461816465919865003174941476821708698398405094694931636907060033921199683642267239809236842324780549180072618703755983699910058449851306381050477403391180505689932862678092885390069703939683932852456902475836553511696519504805166627903120746998872319882510879955294639615095764822312784622180534926700009030338383596859806122105980229105313234388446898074229640421834476564392593859204638579200723259006607583619246809958779231983502653933758092074914419947592885797192848005410949211552064327827010930231098413499493484569153700990950472951402559810955443792406704657704399371399710414353901207974042920240614319522266150317871593820477410425312279333311097515048209279998390405287162547454222664595853133059480658581071104552646380704195051084302748309252549629319828307864952847460555069866471037282420409219060089481840814200672237239715781210915583520363656192766452317990488629536039094920953256210953550994098257598827778246235589258522874763042812693343497916634069884298705692994963061576954995986711357981289238608002617742663997323344614478948932233429531225567846938386595824897157125359178544851756175241805680064257186043773755122254413214538187490585555788919336992429148593995220690451683071030538247091225608425380556781741282833108000855430834827473482143722893312784198407517695796948996784446754708104481832098660990197623049013800572438214061764516598000971490293381087201827924449771693199546485320427760423418989113403524073890178773895528147784243567000750645722237297851290370536432172407377755932727837164517991734668612391528912733719496873262556041367425065467024896951441347676525642112361826776026849237676540112189160028045456980681661885136811322479936594497403661887266638377407346462315118854276802773113245002629450510591408960745197694470243556579386284241260647581083125890072408334849324206320461982128180082367273730696512440103502136762228003650084351354953455822346095763959401543296742194738324024565108619172346267774675165071794783806229498038603952629278150827356815409022871098115729308974580459814061710148366448091637369072102832331352074873917563182647408655961723106212010333644947018765886670549392839128483958879244469013715949246458500284448110825209714262849370113383120545934600180363152332891481401745902478154221646434244546590474372094461689732325343592123188415815695680536920505418818439302059064093718026263247099016768590227297154730864379953768494214741921088907391822258058548349434103939038301828272095240085140772418615959205670792088301112738869886955522758342800468102780590705252592027207408902444984754120786609174766076623838268965991784150233271651803553930868667227980336254651209304528841606719941207783700455828012948987355865666350740028457251964598423870242861638966104346417257727695840686085121696199823978131023671267787109106457922797929462359591031921489390310347825528790844527155359781771044731812593507923311677498698522867706497064509633177429866250921443103111324035029519717272307364604468481937776360879073492429557993639673883206681735387893635303274511340798646878339114614421757803336244721682110345904803864966104182389219561629986974072255906729711913803923038949868551032648525915727408903820701990912082291433286677189013067632561330169956728400365111777328380730958824446194283754539941763560131156346380708776306692333595794286490905230062723790381136388911646746874543487199003110075456682992231064738695018264848773999843854377551100415900440979647403326614862802278438440757406925277127071892519919553703851182678263549764384486473311040373717451050516975246318055226051300363057416944144257100096655751817550670271998599108335629919929914173463921207983427747916096769759962799415240482903550505718624235855807149429536823588334154018607277087282339435573457282877350276847474806587268614485267134928945894489253741374382178355398524829582452368444440447978281874971178702976932508679489855113702625112367239657779809840276557594978251818892108006086466020538091699791402239768542909135163187063820294420282875986963759082767972575167148648365419359454866680216163875946959924229332338904400615950510098995366300088109228456838785592089450746264154269946694353972498678222986834673897028090099278614024055100625865781137042700284615190834811555150054835648309791472150970325588139574676040070364807844586197452526932200232870958584666638371466458938469959657545150982406865246872807876546964702564914409488603876312692193722840973592612015940558050095861176805060757617004095548877470143592992063422933006016450381073638169652402779490977121521698435448419845934844271236059563180627573853296821761212516395840819703492207378299920571259097947601471752945489234455180682184850031117082227106315702787181113434668818373793240342717642959386413866033720312389895410281827106264290202550999491355446972746884794879078089264182727400123554667847890469999916099587137682492741227187270907421126885540346845131336922448266711418560221329873206756795600759880517605837225392498996858582749721054946316742768545767481658371664356405077175919753305541777753688510991951617085808958682262791901261204412644308294028518535150250472358214737330982147705479737711637366942021243904213890965602026290891106895759906316033007940994469301911442269281300945078723304943138931108181383727775534735916211337604498448974550432590175970259844334757959754643313754413743124103996853085944738131699063140280199269611738169375124430187719356124493023981833512661143611642256577038592963869144669234762824983805423894632312254386500885987859912716486801417236356344343724189857950654201570405025188033878788259543623335156661505423287879775390792349682222310871873554167109158935692321535024095194546534001784992039437266696127232678724820803634171306085535153828919757179005071265463810586139344815574413309825687023707359417578833668401745845386715690032328385526765670468478890514125548998589442063845459258630318418914013817955966225218886360273334311788156870005981304741814000655508319230570749288999685010536509106868005995784337638707951639260489254410897240356402669064862794633801709666910615532815855807422524909729812321140476867226143270437153044120523024431585113406735599812138133837755955656893765155589508002401102986693293694777705710748095926443961396049866146156652174629136370437658708799328997670337592149677825212020006277952671115276401402503358091779807930521183270716324778621147843131021292439376536823594771798582628639556033822744245151776185225878725744509829839617973238608304146759902388348716706230789383746794926400623859273263741989182960830636801461226831222040564305627913866651205193821120185796040129106980156388976999760049658533057743047060658903607980927502588727495995214890125669385155621437455157287096948767536970485293116658559416712001907963815842300334682345299470881597581068552581826924931464544270954653853559849312134075024666917714693903060477729473937933120242665614072202311711542405286138458078924385363267507674758103237331448414947869496204343256520378142882568738514149697746325879827798890096047906633279953920755728914622018685583051350275325756764780137110309493789176081656009202714869691328484945581518160282717172239010580879624290698828620522720250961758601223610395429823498848280256269659775458152394161103720553722477626194520229474157309653541420077943283806929073280583985926471080040013341770505288187530704390442284253379147628718522184879985678446204452050909408895122302288653958332229037896540091028904843458979540456900940650014692651786498884912117775068899523033667477674723086588627376456268750415754875409893919704244762611455777757929270129979828811920765300070241667553100324162761895681575344771917944348447831843911811278653538331968801945315258816466198985876859225826464583244042277372486751989274083843831592136400416266805830846958262957285244786217547204125806068748700472153472304739826295430410635321601403715420059745075428775730754278688274671419525205452165360774858560340153803182218214603281475882379642462620338953485623042592221803581734250640547232544277709653531998551703516864002932962827702017058626797140494780328556364759529537145913863744881421278135900286003703546824966243463113543940915413910813814688533991816397432418612752242592935301902433181165301211496555739245801302452773058550097325384828170792696304744811384498392622694869521016140244404481588243201732114605639823919250977127607474410237771289243823286375079725478182810151049262623593864867473222954108310074503735508753184235577374838246604122768705973856720531569679425998637664339767585069700843033864945949952036336402100590426912881732616448904478241851144633809324406888225726684427928788652045657525783658780127020702548162089877289866381398875966690566650901152668600820943819530200076215020802066821329481206948420776726418703662932773989893727704655632415032934555497618772818529254333219301799479913441087663943884545488403894536206854144693720463207031098385790533836310757406318361202065344244658031042930662748403981846439705184232009288841934358224714985210297183413461402715145453931008684375930308622031045730563806964742697607794720057292760640401530066727586330109156417564450743374499946492870771071180610389652946426272585707676876212213719993803781472562703700377799631719154381229077691875923866256030727101494525294163070568960280774544934872840105927918295509812065146883489311512660529418174364895636966725550036918329662039023622817564249584128878498852554122657647688626117385115676335119971935687392364541507920644288198507146567135437066522958113271357821990731074891267344513637990044050870695732012102164766039817550640130465993549539185466621455064293676458057407226150112304627873689869161140216380150465984049513541136229536263659014765507583359209163498989199056874823238577430982881077247751308457604896223899322644934301731327839699720678851477299075161297677288554120912623161061507261877126165543974126901258021289904168256102539914950183093680783098409320454212427345395076514446882294670319897450585998406306027973545592479954758670238682903679643232540303421742566347548565682344275452084688674335982283341977534464001601013435037880463035758690647900771446793363259221805609959332666530487858333901170932799835570880629799075684152207931307327722236075341647273801066293957818135120245875806481063807216671358777220258710819462955555336558691209915111229454283874737941563585372487319770199356210821927723775804714784676928225294420673672774072898289075124972699171121968036067535705953256414591253035717743276204605694012609280609491987435773670859751497396727757751272898219210916389623805977305400016133377381878034759870119781042977541847619755968418147680471142225136707350857874231535917343117418618620945306187873871270921410798148182934734290135255338281675273574704226193983932581001695111966218408024141040248110615796390043199773875682167734205401256274169922976130247322392544186765998884141388925570506162732889208974743445338093335136053827008317046221038957143691120148862787522611744861221001113898135198140206853439001635547257489499517397871682328585239046268532342371919021183902809526392509834513945070397176204437784446575120845940514930521546454857819349433193185558206434229385617177210096002844219819139162194832057610178610464988061557946274084986528438487773985974599971438474845102629082871756868258663891557642314669070292280856054584825018839804462686022971304896278679660199885659471010516389050991043746763182436538678265719738670551683910600604540677130806659573420056390617303206554350956859663756132666679851188045368564494190059941166359991827081259587405901802087967904780090887207861678767115932056084780419540570566364098674562261552468587654515442502762881826478327678875902003309670529102307668586476395041448726459634453955429983357611167492105489943394058128092824269537849089455943329997150231715459890345057408101201237039815170827167734667549634335163595802326550411552500895699050496446304666360275444135799908608443549695106128699293746270688212716285811152749401002285548448721643999805289774946651349703939319850023412817409819007850444752169214107025617676582354084618710473292200798916973083890109335280369601834447007325414727710741714726778836653358884590287753391641769958635669054124926444849109152494700299558915028851846748131789024540582363422567231636511312612848260673100909644561605125187842628893252233789041317066231132913522486464667290674743606965018037857947681566864302683586153179570557577560049896117619251812943098247507171520470204652154302982477092027696701481881620170104236962830639697202357766183988391055548128841923504642675981732238811748304930713757672046738250640723299641936136351120794132583305003725951945474264090511160280361658893039938941908485936879677712906916512285226515758924705618562306018323894667748403939830777909297209581489314170519231764575971604818620747460144056175230102061106228264589977931102365713292002469354083468138680192578621404933632507442189171029680236887753195339516492516733142533845923940213526420959298370571537813461909764099630019266629704304839032961571772944475164646857208252857266717872317019319828341945850483564132570757243581772713068755298790132376871290568185745144108968169485372061914371256598975175609629869700910026131035979177645951176974424586759860977164309833736295937139521722901179083539757659023163209394442312826506343356842687109911022732977433155857234503783631434551927453899336355219458786485651580769538793696081082514052836736559714449474583191165565102887212600740561334683853279159934018951638331118976388642462331354568985156771858737366216622616527170010272915308448780922810211503903920132030384896304708075875164941367641858582792628389733674283973656288941448541584630179154179332114021990040159809446088752068335213583544281015438171530600564945065770534839271314564361001901140658391204422514228487321138672621024471208980624738579121787301215086240045602461357275041653651555992440636001352077100270737934081048214722018746319530937597077114828129285311887830141621792678303769837640394784569374838276626459792173807249534079444236787352303492192982174765236657434841347110663048021843852525916397201521731528291324674725051706061438547748089736130564930194779290708854408746813076978407460958982576871272134717890676287031761779161329242561734037209092904704456861688415619509581658203449534244053595496053712449882004083131227437535205653972917521592506992623023861407810796053797386662131415951182639640986599422951073237156807076934738929954240879297225101785937296061810639872091489131618984946575969944500894401432886677404185591394196756888767787285308092870994879287621011475321943585718440640184989542521407515625845968076806703085382573448296896718435947145632936596061659677140694547963275562466874749243170555644135585448538480236885031610779829643727613700764372864458912980450907676590991559518361181843946825622424502969382229966875005090845556470810371724440707996486583753743164773340429741196000051951953875363405988651546706265904743915501682570254920355874933552103178666184149732843366022181055354815180010874203892858277133062420767657062099928974893662730624015871705966846970390321131870787905487448202761357170245283951214413245227538979547332463724901566722987982718281378888927547574077570929495370733496175229273646311526263633989102621756999977818555390785345625311730886348109383241576459108068084388125546141290976943605443988286151683708533966285836581806868815640759950288735386997830431605167582201110661181293074252881556838345471144334268718620963214456481291752820829188191943723564047462037880710071040591624644344770569795810709266121575485828272251334449773270559405078533575235833435838611765485218765979118554871584435100484182679295797609493565604178487984538373207748277573377240550590245385765426758262081080808098573641791314797607847296261207531629612576650722715883987300916994159682313559149076296827322118081999766078896506665346602761939780715464203028139450189838183951218745319786548957250757804593825863160231400326027835122077209409963638573109063089823224263327578148253812374010583546223558049443718864188820318764367167302615456267494882917960388401568673469256756125469692744357098042606538645269283527074225738926002561546120200998915978954590860872787155099223735542231751758280544904304144202724978551770775845062600510617166607987538121071709368081835984250971657801383540586591979131225925548734462349234038440173928331456516234938286941651493129976127708957901444849745869737500301286951785141229268497587068957260158350148660649877416264187347492155794377838008401856894485404265534376630020270314108495418828236393529570333107674846496510636242988693476862912757156938328563232486529237163970547631835714754292788541262587267525552530620111361189094809858953136846403434180169640644363177883024592600906419879877528342914247751020866839199130966966548503983347972266816227851998841381739079221538833471295559772249531139749287008027727545337630975332469913962652855898232697820467858814856225960371095690857407413609713533875869188892687424281755788761965875920885691544249258197473470218476564191118853537091638645142405190477091922774438284183037470691047299757630319911142849281685412113002301686053192125614468568775800976429048937172935948585847074052255135029825554471498046254784931217616261510409446708562468003118668187143761677437222383137539443916617635900919857417554607028066925078135541175916470445383813373907816352374290851722225245470787881929940469259543119662683271931683936357347755212718280354431309219747192203560862512630148963793171535204197097115480373439818199953420221567250890117794378984244698217039962632646646148071941100442784725172093734953921882085278437446078062053807562579626169158175762839527486658544464544721033862065014231677492409766282138403158392953124555931468795075384097681381948713509810343571358058487097819312413483317076379348566232139884038691060574645081732238411109002401407064961027037770961888872185603074695613371543599356928992729685202668650790089640150876716744283073789936920760452766882510556667151416008246147488899124807586623923127122071916095840729999317049973735990958513045469368751894668523362703159139622483172878093397191597885237181508768112196509012886220849998832781517572180836278057471600135434675101421057084096862654915173275231465693837080031905244155435965479780746019478242178342917257905645016164426204807737937646996083496122273700855222050845476925710058265773460701936365242742619282186149722181823362199333186764843664998493753070672421520900789335786775466952490376531424245295017267117513522538808701752676524923693565403422558310642598204941651860171981123252386394933834845467967336061706138888939695515916009289486825174813803504146072713653527414748575011961877747330001129318027340254286435054949680563276513466641200734836546375250919622090031713846426487022832097752749616928681696489793421791615230882493038383894733106634323258057060315834145264935718821246427270743459326602738940801893086770715554156800010111660451646996257077420023261855779144435909680205108746848726601159214616525938241530941337527771256927744564371777285293361665261445152036316979312833350131983766286166830839015654256458837016077064718520771683195272193625583544070949408883212288945335444997952368495894501669318240944014189586086174819643796355595911599501337060275380201005691101604799035412701878496156502013065142493105637128660157100537218374906011174591715809568183570344583923114118893015647262423235977706709172880862285349935368727340339866841619210273531815169640264222031448565591168562720244577481306738318232972832850216381615245239777566618649852978295564861964901120460228372492108803439037071011661745654515031314134571751952611782343487460407533633889173554343981106812010369044425882442183262892460242797954571048881622973252944066540858770747033898659427066925757025292061518062854995172516456279177357540984935918649726188605864508860092872663370559376234662774514090029273907616678835072986076537212907110411079890263590789140573592846170551371008203787972020810905107225216865313593803298607028668970947209431073472263154120605709830772186110023696464009804463512962339259703566986193355938232158914009065641149441552753369065563447471022969413781647483735298772181953789513948620527622599791351899001686511412217104864688251410074136684200294492465595382046825524244475029079455201994309465572607836081461957193320981284628372821016588511096970140922337070553922292991378396164483858086088988187775479280493862052443013672205012222784757985377410727581447424911347779539725727792645765922994375569815030345967693195854068711722919062218235031323875932345521559462781260836308426590765731494700399575502756203361358369959238682909489835391265011826040054807304494384534806863170216713991620997906418125148537629685460374957053014458493314512935861673947657605163972482393082999449531886080129838480273439947412048297655657739287487905701481217146178194645117750347877930564210431806985434806896750345483035519406373824629849557152162079954834072556764148437847454369119533074715067932221493716676311807952592797564882815740683605871665161631703387686795158523165155795722746763854494280925135420480746928404144735109444719864296910109273344307113753318581056884117915626705036816265516246040853563322280476845948370521813534350093402732494294470818739923809156082280700674615048132947920160229798431446681468400204175239404590803686609192675886316187866390794636901875538854670387661431154836638582814486952141021067403157030067121188329325740149824589943522226593232957839968682127578911010546735004329348210849748855389689058546592157752233664859887497826761181582777311820304817692782534148482569130564734789730138801263169674439079172368518165395970118554466655256241420106823250527444668040594217816127761734185654218704906999802558136894741114990058182325510543628779437138484834597692134507470563420777139315189635249141088443021582290452938382384579395006544116242124602794510978895812971961254360582073894896107546012538756830603107507709634643797657770448651787641959869240377885067271524635320123202514246825746299378493450188273235787568585544041561903074036013464140052236654647266295465757166626487791733983119291072022174776841078863010731198836894908706339740024556757547779169589347648427210378033223338516877893926447461742938172019081928835523272403938509956467638938709019864873943599239152250049877809913309727719631576940405663691685257589607322257908209569449704581982157244396394153618579777734015603083872589523890694289097041920167534060995992256870673892870469457730467551491553272982198591388009708343169572052594071466133669053044841272636813015279454840604710936540481914673277266191125558706527468947668436092219655349539454166436913538982576475660104161179905433655654166597432403181859320859243965368206882333658292762337084308244601833943244984973104031124996221978106306563596879682969943341248013822580273418624501005841387407005886223911526089593608875554455052202202793038211112206909124932507724329801454127534502996647229230724080433192986586274378782071380386351316763726454446949621650866324051985704117244768042491133743107767454192936858003653847631799657928171247780488481536276822312393109083925590632719930565405412647078450862954403804200121803474298119764210507775123376880097474241389634136510995199355073315519409794361682926574162262185485815243327904484545308391167531679115680072128400933023415294268431269326733020538060555386265017512034736796143452602968912427557259894249952629697890010000863491318756420809842610194667806117248822333304343620094360303059548399990003434941887104932905532277262243279901454039709027970862505006180729599914135624794864274737372258272528385362107651786188282844190925821319407224895901658148376466149290361334124893457976726282184669154110298431501752936008652592134310020511558604125436214097945197858689501251081124545258711409930457568102687667692435249049940873583394044807437016878924359136258258874808050243446757614475467570416722161272003488074565304997327604554896498413060458027725793151107528601155325032899382225303528593702471455752450381431403642709887044474361698484406514243861093206829068420717013685022177789180895885941334484824336537570127271166581571964542516997351360607968613620005897161927681778647945958607000218533013339720521103588639877531793457611219527206055185269439739472050379314042819144864535458130497883828944074105152613731848531244917762501121676475797072931146801409545545880408255497582883219631914829588238371038497041661852118740645788507022238416345746586213733166023166314775453876437314343146620051988281343678026597902475140695889099555551413398215787877978488738569855183678273104034999681020469605427796556830252344726326299091839445166160860454471310590028108795499890251121381706892823898232121001195233703221696991798118592721224240119871407677355203014687428636194080736276438852668050008240669332932018658793191418173469601695104841519267355467387262990573978768719166331545527841882113423072406930406758640654033641801718638305800065925169102365069775776940409620075779533758151523147725531847327158786742475407054003258856297475255150577714339857684437514613395191630969865258293886201073354340328977527725532659869903250214290899106280008489393449081399856786435835641874605267382385561157429891044539975044765905934968554734562058844256379280025908041573205989526449415347165123806956249542314164813903140726050223213304385941886542526610790248177722105229572025278771569225000351790421584782608256418436260697345020439743335395804957804183626925805242600075160570523605234895979897336183535810398113101958185119459249080827929717148022540646789013908375650330811205315831521184577349345517962875566764591840429971846505347885377915462719664488777151708995548843383812078871188143578925838924295325608338547930982596195027162803398645945280530380733030029621992070778556330174259983394017058844467463084654876309233389308049569574091762041932354797579171872952151611251937985389941018076961940373540710578154074739227946175670056887720982485761273481505988153786339871699541082957374289527970887142877888438132208146378551770176822820079251171383934128739240600250059097690517217540490409842031132951702691086477577402225780535135320604258878317655104682745128799594384631189567532930361524589500086617104566662847514393270279307127342973908918554671764652704465843613043901977714257201507336448570876240398904721015257506815534697353918362408339093007518031161643173242424342259157753625527462681214708943904455702929397927111189250561660189837347922446577567857543368567606335995172731213111233452152114122375428858744543154191785264662770331470314633331156146218557404419704002481888296215816303985484467271351728538242534870933533995500952222539824335745535132700522787728889327976780012115823956797517647144694756260923813547878647625910023412747653697958584922611691142953993028093090378425385466666367788542879255328291903414835601299480899665302134735292950510325668660212148250542062155086565323648746346940910689668789347128894109830653139503423355201212302491045003709092324031344395986087885136299832777498313318297567682863368272765442402113118915316827091633272684335359080688745080459552115605560151640722953581680621414839866953909145493899246710887381857740174075059425180885436879073173663016727271440454913913640262934491720832975536206699648035660390539114926628505833597208804702128506158570263848117497120447396548024831749208059253806098027808765949413965786943117812037606814072954963210139019060975618565070604146770517797222396465052422867579794223120937833965950182230883878196502394030221520897375073456757891609150739125700122872707285499738554219860140967520783337557224160587174238602383711158162146967494389961280118676547780431285547878296254614025065339419782305880579772622530279995779310277971587395199137705648525793035789935921805576494538110172340202040553038314327890816570272296751414013006445844584285501024004982632712390819851194990925649778686604004332106684935635085972419813837464288849647827184397636565518261250641079783652691034126980301003648402901381196916235348103473371514559680853124518251107226788933582194039011882339118492619279219785589648164539494596324554403230372640436791702447221003907430197211312847298831880904511728046564479679221308140792066344207305063706740964234647400599578976869515337625367031537335666670405279221478244941761441061434811642853198205436866381787119553810828220112091468451631571863809174667462388325165109736676035181033672088280698663078867122324303514638263548437818599626530803395544609965512772993932698080493004129843571916753245004587721293586585877626434434993107769354944166940281548470577099061025932436999352901270970358843576355035294208110646159742018416568527832319716152133205374504647149537594578074475185981428252207411183913974661468053837062673058840226034142239695355930715350315329202997794403509827340783189462199434945989877165471299642443079542873370143786426308248987605849581054854719224981505522342566801817832648186865841961090457453633372470334259964005180440321235123498983139131383892640798821084034243676169980195191087571721840994314786944216643584774606174911012346748343369794879906239351180586473352892188510216061258919908448831192217988536785165348448719859982804689749041898388856126534283078846443549702523445425184218171655373299385966396819952344825578455928795955852835172173268762391973152290565128303636556935704384490735896412853960423602768799284117427654672536439724555058222342186837901049370215112431018638760017192092291003526806184338230577416168394625205235372845924630369095573642968248863633761848308631964902532882668546480772815574739324288800919769734053794060783045469671948190344687832103305036885544920144287072144776083049349107508111033170019765809588726310803453392645303115223924223887825763885687457296650304164231786264828985605261564694665946782043036704918079705527117858869710995421930176142620006283475802632888250395452172995955110819106303979014317178480560550036410735519037439484184356645471273086578165657306833837305086359239669320868089469636923313086320630280281994273380052921815808555084359701973399136571334239016008736609498629009920627101683511790506456452912741399905773943581142845624230042713903362798614257226752138154055995289145516230220070967174658416649463617560001278264572208123129142926384395923412589331644670662402714178287926968719883557904835368147612609462214630741973191147081856622879308402268736710095905466299524802927155274727545109112905848723469385874449495323875986965242544303210186963369658437969955645835463721973284902936416565389635573274669499204508098885341623476636114574694833746505580281603447615047864301686405474088088772020171183827585620356305922252182654356615249091060584479721986395388049480049955636642963047421151579443009056160756119751072504799777218806249145192573085260363006173586085864937083451420150082763045477163862448536209684321943871627370380841900895397404409423693313273315150845127179335941880824662533790616861539682396868247258877294942510298053981042659121774171332153793542580029042387834966320895717715896604334915729309814485614490643564243770034495334403464494879663322679355360673377481517677917779225382117179846188636144785519063400375842016785786382210638728862233391052024112212069372300267857994683672839302714141058691900141643221377580374162729720072617929392495391024730521831818522242335769270356507772035979126439037761837755464616396933705764340907595849298300854334357842582211235534756955699875326261128957544009560479887391218224611223004456592947824676106566921484258138383624667238631760256648119037275966594307418732921005324144057876726137791605242473924949529019781027607911184789244751443702051131441501671667806241871858180795643333394425393465643047569266817822039727465390750555130570656218887449629270430012288265655312910469533009737026166952648552018704919966538846463088743390992824172313614365239940692503370083457247921231351131848952269808974194985276520627556996572469853166860251790042561133966434145474699701156911351095183565298496830474967781703765515553722187790304137600930300476012076982792454355197591974393113475097775013286153621285292138032842430445985560031538562331869424292044203871972961802616549096490156032346548315691957282409308869526325194165734064415622709641339347686385188136452148518558110819300170580343071085288186928608921825726513775427336984767223239252061288311871955256270560903809872883204751708062967491900488378273461136111904223123102786914972555192686908348261936484525728008550362130325052675858190823082105728023607999799123336322778070835815857632968845505485441107114230800273901564486501611720760384336892871966867174789392834970921607300967740152785899437696788704036885482527355372554213659620015491285258468506092477199630738486288337022625942760576437944728988426282104851909767781584978010910376241874525749596980754081210667761747677500609162310915355156168975951206905180984110879152824403581045774482000145841697798847526381207813487277357468143159616078324868581617839639420967818596044293775387553596169024821524298420514693594208583282906396834444407566311705146635039027517836291426544763853170427286356976508624657551744000930354174096589985930988267543161179501887848856471586785828811024352983721872978381504429984786319793252118739023744035479512039270639234023337043673847356233379360801374864503700938605783730735158477341895072245917986097205375920736879122160270580397724677600604455427148394493481588588376471170637194972144865369005333840362191852372233699867082217459487425416494320054921623850025767821701262362506600198222851665414963982585535367058272105392512709404527305957741941717696796869673023023219284446303398342794447519913615429743273306945871416923104595240430793136573587319242067750383999695780783924880320343990970826101131940581004778045062056833677675126624004347828428479031858018366597352615269171317182119692074635275245858287473394436998243812328700650777400396843651362971750039397447393153848359348792778098233455105986463236364991362849015753730822638677797895441159435646543328131457038183480356653895341277690337096681012440640279556492150540304129671061540982057570239488647497102432698473466603265563923809410218274189862290037118118867130892480047901264544960179042750709189401063105919641165300589671660891677835493369511312639974657553879171385859487564018338701978915325039558505355595729720235584181397718899726955937266879482645290455465964223741665261008336582312431902657783187263257096974227705218049807631723449928105193511940335098201913417009869968722292148943457470796275133671990846527464740055297290080950373824010364752519521272047836344462350188762722517543193973701278200479648324092824627142167432952077111576661158107692643614181171681522535769921344191450883183975612483055291305544479762075995213274657770712846137820919621546713458940630819774165584699994943574082701749687391393257390088954431117406352458390742247943385301414941304401848000805158210735770558614542810858552347452183464361793790553769292994790890117340607381925042222297206246200500492494655886783788953559499389231250426069756298482188172246670576601271785857842578369655348440146169971805898342037760574823980553151188065116779340421796454946922482678622661737287845327504264840110026946426787062157678350875884889943063635744298385295309275173687765825546141006542217858842544078541337418107263236256599901154825881499942444065558603176999577126649671936901691873283762776741998051848653731039120757002422906796253756955274605948668614692655996678499656045733572498972566699587163283448103336589218346439050806287147452819259417522036247916680343258271026487490759585035598449365456012741031408644927766040869582615359943368476627499053472106473488439362719393815555597548526369230821114761902494221746012179710502932150390697003255839689986277296094324285310946737046609043345201669678558141223181607192246922900879219221849417592621534989432972313332910748927657545645661428513526958283280488466857020751216307033505281883944048496909118876144993893683035854412093201620516108926310871595363772890464944439638804427631198895605294716143394188399759729443678045793688984880759117077213962489159651399724086565306762294053443846201500874679974193971527104578778844618771996343803133221136008011499305354321056031206350316433283158897320616951865507079284838583646956882771956288019529841896730973358613052781214391979053262790431069736699661121036522517458141286820675993278940112601639614257384101170899255717592486292221196453426726254337890439423910650125134849456426186443902614197216971861836355185695528744444292170745231950267744074332046284309555869626045309902658601890831041124269553911699691782328350166399310732901149461924475188892984271025390368909484820363164893442223942498764187441918124558695949663429917413952352834669204831091397178828055666267834419058591886663733015704357177558204591759616183533407944645371540972225322802385348822788996096714057539001784003116944304488283435787880916370150206370240985571618380420598071629833929821700108697155722995028685893161979008638960046047644344870847374309515434169574210812679695246137608217170468367995631071808883722545716138505829127937827473993142918446580045753586228733596161015591546012012161894442802415409515791134789220886022250627435720446854036901236188414110857550122642301205561702511731171417988177512184470453754476430992842080114728831487853915003189822022043807178676025016464836377965848765696499469774153996340223681644622247201095722278836942440646725196545610000189563689672140632099761805854876987789341511006855324032165205742566889701831597821807705328539766484205835772978004399882592204167712911634975456208714118321350979268134160130087967943672138917838041116997169348261882393739126482517653020662623533485501567956997596766227933756870363697045940174477241256081704540128428037896525151621258199517261459493753301794553133695068522168616515545796135015387647506938099626946287224284330719195019241603384823674924804581430352337317716473159926658456453147907205914324978929167218761613665567089797360666331071334349395945867310118247864159870980893744526591651182371983400701480950095516915050797551342917216085046615978663479265232969792031534206703397339445773031518346121211513552695487704920150116769367451210245260205841843775108720109218241650945177446023698758043462389198363955836856737065390476738924305813082415276425330553076110244485970175998770942509902342086109598335271694069089162615785302690481604808119310754880529462485433694941582862846593259273468860880151096045588645310504831728076324654373477121673344341358343097618328818693059800751904564936550764197297546306501746088710930139523760728987185688850044560447988462242106223532573069419198932111738949998661004898123964199301291792100204181648597642278278241698577086914601023037231867830413404381945804585912422799676058105044225635661038562429861907517874073743263629599155241952876838323811407703040003757465880176670249696808519663608878444513438480511692623142733079305979407306419698219921925590304709505919168313394862566511643827739253880474769364040189930209950531580877580532771024991314090452039131868229689995996424677377214974663891414981512847976841965495683020085108085438028881914893796141534459534534185374624306807051955486758251073931360980286697300094969182340436634568314404971727973483480693487417082186992795851218440194906703157510430028216037498083198605810564403780149957505030631159770985377416909151993485055963802542636374892084399567901611123579555403667693051704738532208189812978799936963221539628313875374358123758191955216549046051645658236720081762464116233570685509979204833067829524540055019467008347037794979113114397608489200876024047143370896929369301565842445006222181255348440001298356069025686785914560372675137869595474914978945722067833625651346525960727403483072816312951780141002984398754488441248185226370086036404450173320385191857611980202575971034457135581972434020693659925884239584952983674295390287013019244656443455149860881779993426552730478445932484010707286326979713484280396359593141820928926760615476925561441856895861556731991598279244765132251174226492145053647967968218060119448947827403695611396629280922194822759160087892526156102512291513858558300484601335394909212458425391193028326974019693727603003750973487763998169801686074968421349517044216412775673010752677289896684135286211291685164850567037542786070241705364831322994777229327763541892567196092351861291234343693562896895173901847901405276627929720551357965162707648830656119636755504842106736773062062539102128434909345993392348577662494596226135345521167321355597217122170313654233693175922195087898588156890043322971262153039665544142992442509760035219316322653519433907988944050337927812905226540697759131930296526774589683057640733628339912418422376046044431093998495769268485321187795210519227173989781892676033009726822183845493132114911431664907881328221338142877202234473759358115918928162262949513920637179465039257473083964338116014594701486091658050616135133837015303108522191343746515694767641475565442995415313848898628970066862404533807125628512971438581373557685576139470158027641965250486003980512381957740676938686962201462758018492761499477806850501266182836187496775786477606626746254760257435125461411656625301108501761741238385827961640869606891265743484630786046757264920401860886332803226976624463974113163397969957101184580567823052815222191378229230451079092554854720394744330394110771428907233741205135171617197564209090410801783297605287337292650670610757701240259323029899083978649402303029374430603661219411811635105720025957611766870574173829544389289475531642033306492596144381313556550202648852801015999248270745939223824697951942893222766774074683043663642848508969130118264176722564982735034525090469942230613982500465862049423754666723326625921292045747008153603692596370104743172988287361285364257507037654598660103663726142746213134809018822765528285227039515167226945724958914054393414555261434814756500852781157275013880822335309835669401307876356367689385570672742218379772591892568910598635967620522816738481269746600519281639080749759314252182819619872432047658181268263950610550171348533244412231524899297475795382208014935481637884536764737589115542678688784365325807380565799521859455653201750830990636984837555057629555017282251999791310753198629747708385133037918705385051696927337426177197865919918784558093226511047219317936597419667029831027624283374178050220472845868512077257584312236889028111252368809834821019862654121175961199419857917026927956098942295440808577128133701408353293466892790467623913884475829006196875356441075473942119880903138864775574303518070378442267634992971410829708459613674631719349015019776673289279611991740960092278067163653512440486606656192771768667610570766260155425380617081129364064027642860202499992920147531553163134260320214272490432826932422836243322944303555734803813291267455255959598410892995599735813737444595727381711412175791348690470435173475468214208886521485124789499569636223378945859998868727940284273953315963479678179775035728948693310918677838930029269038111169242551470560330109883322293542514626299192933171330097783610255598369273750715097258379668003649567027514888534762087846832960897307405699857756175191567715901451438328967265902578774920030423430022316072505723370701834085389870697355988497597918008251258857325958863459581958242804106464517488456654898202172422059338379501740269869874828109347403152010958353129391567760990318597664711839944678342928170062350042033692771450163102816242137272394261180679875621356332943018363632193214812248361750312453880484703674602929463324084439105659215296747265322746092537552387419484600133169730082310587747039810290746209570162001820982471108920012959851791834694843214382136911359218478813068324988376859982381395530953493175151365102559946789180873085327868856691390398857661772226564002873468509943790776521438204842161967833239404136153898997354960789327791419754288577248238282333100278025995610218805630983284549048540933589537554548021574940442692963950869520619597173654229694622128457013364992531371913432056475879675740616849672589965493257713436537917125407938934886805294815265497913883088114223070135912447156805303341626917913405343116516316402930723144103564688251236322604395112460641858096637256363253161348215016640406473158696101956685008948197158726680041005947982275191701868000796790406721269264329325506967614004186917622199450532542637183919816124518647225981644597000135590411376381823041258180357653078156277209122898273793065874913848069941037918374255590254077948485318214318044847694128353255594131446222355043035649206524220524031657680111521167276022166970108976608362035655267647613713901912460692400210512576780650552353917632641131292247749531692259659681843522037533392046211506326372450884005320353020865500990358065602020806467284124417458268931454874654185145610747718322140202419357737464188746107106865368382030021049857067038937607553823017108230480105760627556238986771907143248025299258693184695643228627515868290325774135142036176071876707389605184994685560234252458235158857709046082280912538930429403328815658718004153651120303361668877069063111899771449211561555904709816871855496026443656086201612317724444117762771075322422296346430884475916308350665250241439805307185437025384084639358376517680936789303947785711502374506098201765458397761596910083549732170505771461089043766495255293048758478125372862759838778037820619412703517381445252351190764940676078005370744940204178827277154673463823884718433898869757828789270965514277514678795794555160287565456190945324162488393667092136862150424651485880720970900413932850652112249370383708802037327364187549253377032739050559527939143226006350594505322014752156263375421326015380415016066742796250269487972182560940401545924676148402478316235342413294185783676697260514901802127714558576553456039125448911001680491632954489795453902554570079020202146025222247222363548290504369020649434580971944825918572550981313859904368324553400947012880465579424892447941514532593542465464586552190379230208373679328327103202577283392841662811238340474506255615141950097341687385494579672510662413653354826995325781122374840394658839770868956402319252794246971679583901777150753178712172366341872920428237444024867635349421643898567472461598714652862640349676778561189212566711463567588507087235451869278978221503451167379636540777189605965409015436865321365487202796173849994421155668912507569752334955403998653307234670036232721955821279126468648780424289659299026750615103332641231048019881541974865138282525075473043749498869093976680287211136252523294960807691463921851554085603682250421447477023965750571906075668614440595123896083160475658547424231337242774267469113437944122539590429072416266501037535848977547703799870839836285430756324212576640046765981908328262777538452034460426142794995170217862502067683215126040382885082990050215615866590623911811366909787552226548160948374696076362118807922721986661213429188190598263008011207762465641621484314457655380335800158839208047349376782734643593797734623526138378209672940550779444288084763234319442133928015355216005842996936606187986071589836750137712988903820458886006475277799497163055142099674814307648306665426834822309577404493839599991974245390721994838944460697669743196550678755628722988647731393418617388969933828333024838707941532865017367579370344712390382703194210496125658441488034289425681862779273023271783979409214709470856247526122042568211752287095001714214585968145914001337876067795890208642447661367778350926627132566150001324365321410146349514412780791246045725197728741289000550595745830901163772724822666670872900625656976644800958787987950511043673974211373955861815119132208850038225550101769004007641884631176509082275113030632156457800109662237279757049787194190086926928557851808289921324285662730818838231218259561581161243828279006261359031069765558751545092692940500254546113161574460610754591584898929239512627884023896647941583067094744757746184024183437953944067879742490126240167974691246399427681285502850139582278041664847308364357295279148585629257289932764006256986049457418790686975830391370547102884097147627918602637816249851874995571040443473101262904655447503047951459182722477720491820776398726169625600281819182864013420812025503229745866912040182471728320468628083365532371492145347740445349757987898420140039588448811189350671720037018749054877902049826639316625303581189833592595724490280847233487135915768924802815552728572198064883449066765987023321543763585625303985948259697054036049268951731024572315749891172984237974759547618041628707542448028743002687316738910004239344811365517893161979289296180943492868562504043886176556742235516301082549141152067742136046865349229866165307911984689707268863076372672730752714013792539261106152384268975657910507891473577334316309620309887104600961933958267824041732938568244199607732042472950807537469447547950458773875682041979451408005999935177486600708399010397086755304456895220898858309341286422397555331669924297649183721260364442367719750136325246028878855623108664514373688218433421570187419282769762255102378087225244002134405068458140627008555418570591441901509802743845226644186564511814145183479319114530695559251592423933739463776688426921263780571236036898060314096896589524426403291293275777805800507268025652135676868157397999772978146587107766575235114376061229739337706301565811344400625094359734510504553780732368144708518657919747764200700661334458075255852019094898742534593974526609264770585813139695480142448251146206461555832483893280747025395751401174601929323160448044190886581653738881566357991320781256299177273242088823834288536119964248126669307713613792511484000591170327094615737826444631480762477137425870510835148080648712680788685059962640794071024116530207884376567238982276633716969353596478728382637267571279494965645019972804671199184592629097509793585885159939989558782635535114989324681149735757316220727261598356043467011190697198213767430332192499749929662197231853907717622969921665016381202952940194747237716521688432905920226937359089335072444560296613469056218372476900606475730255314843047731158831790791423185250873968723787597662292178795022762589724448271190963892310103494830508854392741404337271980768202784113354717102716029638566673217721665894623037152154651197024873415145064686519481468717187091126396095484674262899267477259749231342125137096825090052121680561671275055174665513346183602244130159273634400750733277156169344872861566243222200348712502376774878682032775092763177433033141799381498203056129607130412320252335839850616973989897876308084290804075401880590763547993942705446815394299112891455461149350168355890764412003070184166212326220749918475232554395343708222478016984539776296951784889031161580657765558473053934093400924739200291360174011085721476843377252125551351644526637678354726122690193911213464888506057505425317864502235765215104448959826490376805468944030130754207517175426679536285477259952832310850245140531337616253377653219388166969872724575943853418172588682097223848591209495134965608896123867491208647503042722689794722987394731773774285017973700004416865511405513101477484584053764241982719250088927811772774977687787665428527934206523570119507875642638209114735908649070739155617076271381195359822791625332624509071576170767898024580571448624023555499052878456452240928937376483134236964708643817175788218558475104043255698271979928638711294979580032215531521834422261307990557591597240665095786902635323714450925364006061116839122538419648882620992331776069613936000299213312521406504318552194259602824041054286227987986783116636583990813284392378117679246480716753877119825463760890623472417004396676115388262622781853457202331405019055135422152952665792170708749857489976366927039624963300197678670443613989164276340687834741205988558753466367426916734315704223464221612151464696045335501103975981678140168999094515476577932162781650302744760407497960524868063127560770321969357452828176629035199613177001580832593001821375369220088518763074844276422816568964904023307621620220845393677856761235322563055847107564279814719560496885240622860346724763943798250607663250246117670841384423566627536224294390599006487379073547230135272910243579402382945259531789617797918701088508352352583114743369961938980823379494571650637057406424027184701786523210441777168776809546649718979895814714673652292456177863189301554589514366134914802000929671539572323031788812197171742976610519156899131167658589997295005522830253687550416655614975345477902212378147148320625335899793606280753242816526929943789826839002479753865267204307853033154766809081438879860900476887137559805407531572268937940079285660791484531380403195487863485408296844561126429574255070223303748922200297086780869370440708207627919149737878307196087968401472202721123629648950227358401479544348300652431838128675460741840584424762495579259579650013543413921686011568760309198959863278688421435554435916921010146553156703482989565578717882771642498489534798856592068008246269192299429980329410970267248285899965935040226323101192136159494371146785420003189106516968041584352044896302516129503477533663979897146600591916782850261339694628414320924929941707528684283462197214997016725295779318159932046497791612406847935963517346689624310577840348436385566318336144954283347070828514510060921245925409056328342650553483171465943124485969458089950510172537214118426926383465828194612147654169178720838173792684804663176207316080259081425918917994888603174641795803236670072347980374449802002913899593847584474495329568808467341130437669564073855181094790638871090830725139275164850343097771587465831588554572124294661428921793015260553573354003623543611976731560255720626099380194835888762163517054881267317571667374281788600579439428481934764470604325023747333906097299176911856813624964581754128791991224218557331496329264458991431397004546093718029913287727097300731096234845026930738964707321151299260724242339616189654660685227366970881510732988743773661188058898478082366959808511353880868643166411030571976870138191344384186473433746297277156880938690595842727906391931173833353066395702537106646909682004599428613691956028401500672766327011392956731531622337983606654024587868612937429747956948800525132265026582920977891419114326448095873692138875698494002262705913434404676705692121217206703628470156559247338305597391162323296247973123324942948510298115425439610720311211136017428879153251744495916905774999126156621499142746929627382224074932639533584038943055114993231120690927138143354988662046767266990597699964987273219053521553218074560195858104909347761753162651940217035688413478984920758370470224979030375164615183790271537934932453261255320904844733281391155553244679464281038767859476754621970043338380648671687365012387157398596842720459947029744832666237589466377041819125770624273083436137276033088285405695688128155692312658950550545811091243563715346151312263735621516617418791718964071032448039478583636905595414279272402101025485143643027541463076076590747093511840232017956275040921578712290302753051046462480427464356965574806910436228266217450503059790870533671292695843077825803876780776829540134059865068642868615252653150134666153352828160869160646594441845008321578900328379543014048184816195723382941554954004637625412339166104793290152471041738349346556261117267272487566815424508872042626858467134198900298994015072704130049451458823725206258333090345046608335490444890854361820103880879820504988115446585876701721330450318640132251991515731274907051364818667591342177152593212214278396789860863372768456445522082790733617286621038337596788521640705738460906488994591242739418334397291213639809793571957660502320291295662809557555028630929336848245592130150049924324140803775731260631989009505274551366733507137664894688051344034966674973465817430148343276213228214893538757349525250613266218780134046348135985572276207606391438800488863038812821708763402087634716651644128752420127188096810697220216370332175213644370262697307342841937568568190899351886945334900738094190320391371917119397682613531468351622526205672041537351316860650087472028337067542978407248354536550057454652890953710477843178007029962338595060250136645150474530347847083615548167715779521735678841287567319090757647301059447187950538173075005098064950534069225127882965539226812024941371795215141296912632628487742015601364855486915939355181012790218175870254222195400624763204070255111627818731348299461904972867615533723291160729664665641731133592918488620377372719321018954544610036285499954187956051969437602182978748113285975831812224215888166172086638874276211790466322201844974660391235634002973091464779396446819963246983559033321947653877832480557034215271318950305698822447540269588169664274279014423534762203554766431421797322552168302288233366492150933105449492861388977517147888317190224851167343804746185173347122601629766818260370552349829256752144851901569019232745568809277590910698050825236417541171095064579374416387436028799397613165052498479746995611471312556699481200383086076339883493102648539368469302333872457677363268802464398194539695033738384928153959419518198952693538682054034502178297490654446717917907150213741729155928613239024693118741821053575889552475698235408386246145228097032194250976238040392481032958137254449020487165600360415764482812404566748578434790969134724527702527455778637799006110035969672326745310893185420059406670168902439809067185662414414626567440626962776611319496644255588524884348082229765889108869883457166114563943166212698039938310791090809700310216196882183095238218960571878646058411530825858338260146332991083162341745705649489956419419747436309301158999870631059119798872480743092051325744679316444202587217767269674775495172202303238265424121495991351474624135810805840670979897052923474364596121210034182841620549969464058473120379086616331604741660339211480040413509186264427740531650861959767496839332094080322749010862778795939239306186414491611157813753810384708177914727053845554781418795824240234350570366317310232060159329480833495069459671200530705995554279279526169285312951266099497751233555050972771980946940956232320102317549927458981177980588033639027059936940497884822641575403639574440419464785255021016570194079927338579714169517308191547973537129361884437153001863075612685582048547011457013248540391042537481774967429423846676865064309843394082085323420826083563349802827553466654907993747309201076486829465955346979610466542328369727968624551275592977621027207539336330493949810749323282067216616746154286280708363130622498730817472387880144225941397464849765932595563976054870106499096719290731557227052870284582330420819752791868743738262926462788691116240075465840218588600461744583133135638129859873901824805101998908300318401412406714894470945331822607109913424281539433437776461707050036525585937958944005705528912798268541773353889347658378869436293475926194938503899889897218710600659991852243977569960447796034928825730189218537256981091299469155873504205659955491802666937636916549133616317462987837058069285577295894613265719587692505598740405168859909390601898207238593021777127385369832853597876075035466355498036813934836246637110273353472602723964154786398502086877133289356035955974797612913699281202942766731860364018025625299979184892704688247973240186471505203174699575610349566508970607338918799907435919650529212738209879791647579056203323310239395459285094264759844761328515622514670178301807240111737839210169918546390157133001906666354690406758288769036770753815976424676463549021170682819043143685700564737540203159515254334710992485614857809223485284605032838825512896110655801457369016572507675301170823475677570393455172415265326783735920688671213925008944167850143679029904941478340697142826937354121668664262179371407633601469397331452039056014482586949368419035780359868759282437416166357147381654465323516881298292902050795545329357785003279424326064422230219463271703115737301902192132470230256866298207680026783445772173396869498193950739735615333992161574665504881214970517573415314117242374076438889432721138013526148122543541440243371376350206400276077329866522545175057152498342483975204695834058383574960635354233098828220026654135776373043716996208012662863287993517137824907391192280551911114456440447055770029581128705918322273983790300780525997473894958373393915143867374295134691202006152999296226472573088806619064928591721812185857520490557980803546648924547253667257281275856970259595625928684692254618415844177905820303960579325665682861867820350306782839604870505115903121355127228917089462287499516008665469951555173413370213287249239491929935516320673748064193221802723538791742165898119859390582167036591060812633219320249159342100230883721312207045997147244884686304576700166262330604980175646397514024156735026219479999585566331488284840911516201199307172061672687381176270462400687076946665942926727579687518834063061205411909795112751504282816594909581140926387805922490824896116621484036498888095239987873274493358364438687725487990238506861365263807231254091541322111928162682967971144976341030402871138068574554410237401721283676673902306955263431184550488748467424097005319228220567588902354479576307447283144081384460066518429092815437212113744985862846405107139438704244389539545411003107309872781042247261190056142937728306189461115074308885208774084200284881558919474671834496744556028118520075696940862326447917185047345290178690694144644963571480481413419181220409055262917652400437059948182456867340036131952860482536816183808899948254266266074780833981203467613712908722444394647570383307255344954972060758859725519285397339719266226937204317078106032291488278885659815587682141766152692436751432970855660747901795347130419903110997097413417468032014093497224095646661765365643709632475902226510120670243724277405014391641890886255301593678695802637026598464880487031678686440123249449140640381418477281049600481557806431975025850087024429295733130411684956972711911889543361589034073013448089809292031814586647338866425418470394598632757631276598116663427904461955088046969909563707665267865268819148027147298406326151243822318224053940605992690823054160604188431724357519244954841321908129660693756356407102293722027864954132392605227297044402000703936760546929287457220062640167322582530221530676165372240844403171363964886438067649705004565509025629105672137275276770590010552533150719409519711980202221958343425747450291504317528195921149819097059232881579305780710021660851322991659346189738074773029502173817231186439738209959553073330023618590776811190299723458351617267633326662158601263857436892866459528856020075868545936628317173692670853973621558248954171776498928735693241330331326157803891523704946545642708242664852202526321258004222636070877704355382541258628087632836687061192820356376164522861370845171515164792771515926009697957431263082743887066007866683339814564525647137577078966857636006467361005503314517519933694533116487824850427420543723287489974758872255725754405474502398022916830720953955546009905973716979386661987703846942070552534946432528538399918853012239488319649948900542459954957713332461157027472148340703141005233083584526470360092433073985647607456643452809715631162819378864296823891811403329427257741326014355064360329903137544613555668924362820067940851147175127744689604925232497243924288254175704404251234425320484902591834035717184377069439655623015953541086275476112863687003553558258856191416727444826172918033926560224551701227158232051356879624829043504841932981404720944136883091752235673427317645358550786136168354749200342261447056912360817905297326792805898304844853245946792983667433786268501465910393452163397169875475057968433668032085404419802058997260750548797356835267080128919462049234423153094153129400058970666737170467347684087280001355572156298234196788510966545798278923300644517419311994639526831533673608741588263433119364268326318397584342327564718831755597441105769350601099496293285162447337520938760306243320101540763341187218910783318461317233308777691844443037137166638007502426308659262262154719794105299404116972750743061788508653610031013542149310667592939279914705583324163678050712831396658597874871120838034546613370620188433926285825654599885516203761096343533197969234960403502617046072909297905629907809108215913693331840593750618298861851473157690766297351786851992053962845727812821621449783444681707273883853435919144296911964861182601261751350552358801379985240107009580971296303032821181877778378865351370472422097768610217411983732698683321621285649190982536153978761774604502981483264042746507429725876445310167340011745588746974796146585906483999111977584464382621059692701014152699408761885518615267631717586007935246237177714796685100542566196472800810426300283231877578962675419275623480082547465399083444599312333539677051169968475271801518721326489753285358826702776346221926867311542284828767825401279177472302791915968315794545285749429311075555612699892370122590431865572286081637641479817186868547118206610135800765536766022060505871675966415661629451800558307715718047767934318841859051913349385884244878120704900762865490391569550936622121895306991497394268537864690282736074035479810009099757269077470053327035881549944512595766998828401133147905437703397458659101376116701063969839288979367954026228595891294331550969008737838068962899447163382967801113930273769546486183181221684441778589091462856183342903595380566443708214402504112994898375754994838789055105187025671318969148403134138214560863886061602003090817009683250842269397991565428548687373715001504607381904547180985489762812106057874286927245234364689287535352319020887639988568995631447321191308615273858716486752081597339662539102048506844331360760845126746068169203045636762383157600483112071675112740240293513950318271625100179194996836146679398537142995869910421973657947652930142801155814059252854374086315414175216931159051584126310222677519989671991540242203084147678427093128009684322540068115271054640402874458786851467594353223078161542576573180263303081909262424545101908310184284640759279827254877691775037600507334656302659954963302963350473047641996407270853667299338750859698355831845276498289455873039773749295212588900097711455799135847770352277730133142057314438709593095380432953530788760755142595886819118131170960470813394169604270248288928722585344681049301712079989366652434870245789570102635862924622886263407972357380150516111828309001658922829511414584511763247191551767873967033332268243550567654589883939591110324912673959130890196806223301860285150351410514585840967560718017901259371666723797587451937713643742158244307107133970251826625073927469645929118448168313987772580709606361548741126689608951325023531894969049909033707296385302493572040539642490435084636069177543831763316636788173101005209641693826360842384091411903272739628681303401733890628643278375654536950106619313112859558694126395105528671458592938198659701659507776576472304682481670530321063318294754665131256289482532553795523476555869172787708454247545564977792941205416305893076696043307559763693049298110841161183594382064511138592330188270367598977994279140577433465649460420216727426105898215072627247686908734361053773827797254386921488711315078456463528748541219671149920546467768709162781195866894417557180834074418571740404481346366887146778578862248194583846039565870869113490716384120338391873466050934941960916796258695637591733707121851328946335302020798944327580267494048332166381853000438606415556125744237164557336520376562960435285258818566706824645126633939790364069039796555276304324447475216228368125579193021836151497141755717815643420618588276320576973697658587869438117667077695775574323984193084697344301308025602938343277973052174719213402646852063313096817807479876079301719348113339708042998762220294625182566643041581807020164734721081505041996281677225972498514039435940543989034986229323299342774215050225349551597335714468009785766629870316174449864635518581298309518417020692772970566258689260996552729205085750551079749768247051491510672984191475965578148462211236603409452793974013482703845448208534215322007269365798351281513765396045844540324229149383913606562355861603707127304449228994202344210158230107300757468407948499530899429307796452417987637606935104349493140718633327882104580987941751606497768551789350334794601563510356439982906639710560489826686985763387057518775232964862157245719577880453583207840991448802457147160200147255162472702337744656418932123839996154127891659944975494309967839205163744644233448187902473950184562167258228621294513312068194221706649525356510881089627817408919831165423605783753568052156275198056472754889590274750705290541931116079291715771473580535951200634245761652523907381945849938246876753524913580596384589136334050228783333466279158322400119874743273989269429391704456777259441309857421834676697493733396681011461711805016156834516691165632880161167481302442799196296014927489017168105180456966400573981110334540684678244413020801633676858293606905076808728977392714898758308617612273896402918078308154351247381711709810192351576064130671661385436953730395348450927947498694090661247141165237137608350067004896061384354347743966401872626949804745299514362262401869947160190239311972349142725229162277370437424938760473559998380757631586351868738969072988787511803465323971127888023980477622259613047795345563033479209735565774716178699878888637123634508052812322490732201483417877444003793817742800529844784675276781537213164531026620148929091420617229715153626142000286135739918321439432347628795693691027014344346622284439094487838341469576502944451561591449960168564596215250260029235537299887913618272341453873053025375124619015121783291401135029696215455749161103181938783775091639186193986099707545327588147899006297227693509768588197328800642231698484483580816470400743841311795691457313347361045653844738958533471940484750154482152309262696400045390784115072956623553070603616039415406419203840791947565953958035587442691088191978740297906427937723807014993879210430209731007664868917967246571309642640182889451850234799948017084049068963578474517004590478201227378077999993590724279108714553563117641348131181139132109542809679688258115845257024603916769573515437200743439861947932116630256115932476752031951330724067729555693761510148460425440189867303290590738982578248928429607434372813634852561089509490562435709535063717360287722619265601482693618894351344817325805769401516351314990747578997379560401480564382055636992100947943246546290689448735635405183470714179586211689717608524062683791031209617230764111879835147332125720532713988697044375738010831752788398072525085856656392584243077178509179708268232002072076838459430828817597886186909348429010936259199285113243335761250069154284355406766638107567458947909457954896171883069358513567992881829583987771312839521355088856062099205379117901726418940896538551756662412760733015809095690311682203717567244224066552390412728461644744170926918849490312929842473888287311361067384914368865761934672973782679781528341520437316798466998426638236268113535785815639395828992576137443540687234314992630017335204035051726999951971823992575707644443352930177932311488643120669940897465728392541239105153566549851763825692109369578377400275719292220445081867703892773657496070964559385911552298587994264195097629879125394698934196594247527656394213054998207257860236138693402776713255648060427654837195985005325963726188569395339208172001967743185414517575046304051882946988679944457982733824913919324774456615258201409498467346110831125584646052994980869338205093415786798797743877419858260331992315588139700822176182834400641372416734939611676304501855828575713692127352442591809373416010692941354919927967682322076421763404574511753739208637755535795963658922928302096603217309473004600758167775613717717732811271117080961892300084885645128641185266561594545759282253017677692057463050304374703339836724128982318193640801986620849000034361965662526161469860601275660076543298482606616783890944557230853538032971850721722003844493504929476722135064443185169005713181198916156127374040020038682698136017224612611732350214223624763257138723503031215967966870409231894852619920743468306766358791432733688570419314369411394293875082371134470297237933775171862574861738579424415571590064782576952878971643664966081544591056768252845548796586917400489890218492029422127014953997354312564598487997309428128093292145047446588452986297670156468811707043372885000878874488386679905614926706785468531076861751171284005004668511935600417068756745967699223182101910382621302434227161314022845205289318741202694004354750966273853363606186377669634905868759955576334423815410158789670382736477586908673278321413945207217213020439590849333863305341852817266423791617233995861595005178291572843061546489960927207192113596356091713320775606450264913836682414282083206335218497503165665988728737780244352575798991060644905782865098997517266798807608796996637148490979071968734314655728060110465956038671695505826220325214919044426701671215865426363709482886937856945743167754311602785866364455179387882703526494780304152871509618868675494646508170136466141552634596902766679367139526742493230922314201103728275469914986529692625162991456103957851667464804597336643946923120947998718054773199120799570135250661767172751826970419300441723634732206031267422808695787030823400499753113364144916130744233987856901528856048299289054452253215542401896742810270254235480038057928476232681282703854288974490820384028830139783832684082101776222788916933225803643647616269509326630589763112880146196226941046770220650934196152235319769502858655899529937688047769013898279459332875295756447313517552735182650876804357482508734581665528478960774120994022776786626399186625665455564988164813154391218096655533951810902357923800859241852504882995441381420354320796787533019127205719214138986532980265329378951356005342768716558473950093401278388850886412619644487566341076786325171706308340603377474993688316254402227212136175448899662813747254841488148186938271087824241427930666195568571983941708917362858049276628898369650804553294700081070523039154457485004350689326900171670769384325570625929370497540201122607079421047954502326629160208298070211591894451828020543450518967677708574240070959478060918649783975371891308449813949937992654829709672558035682155613604765669897384034311325690274608502103156564265692644189670390758418054872742005511230958016843061976468649987325663163633034456722437402371462705670927671840912628761420835774140225277492927245135559667753649524126091848673939723051907658510574352693453724163445876902272583319199368520681174627055302464873441386038509081782139907603438950673354183005102786132057514369029735609257123835499373207399833445959249474905286044114139371629075859267677982641550991848093104601935740489013777949902862570676446478613708336709115281718183499813146031557067655257580843368844328383579757832591138595347773313139827521648374435290578713269732350861115326620549542514509002072887364735564743135841922112066334785833451886721347512354500006229656389190155258433919169032231903459304772775343726834767046935208407351505805519905992034757298023960243055371817517630998948528058697203714446932053088014887356506946663911581508244815128122863263866054709115496458556608970927022469620645876186367149926729575055283961001488541731196646379870441673648605730604397367131986129992369712299667268103061496618752423120028220172019715229781433160082145959367097937386377802995037897990849409607793061930390634034085668143049544147071668452062019716820968668998542151962421190280045220238662602441869496984623917159754343355533575235025741561810157970100726329567230989870518020947835400272489135107333283692196811342285736723494764601795855782057793879094678767353933503668586433772552711790368487903448021842901087500679480965338971290792271118099310228806822558159402236450212894837151404095925662376561385290764154394881697629472346844285855031111446329783941364955411114813055956513506799221416871139284004014169185358321778171741166591312359666720045806264111861144186681570206114642393451638426786589602882417483836647263625625423842979889338292387179801305932046784720582951620184815069856890414035980440247145703748279322224136242267662927019385324960413857363727464518975239463775896273689493145912807514262996970234140485861002060291761104327259817451669097766400218304829483738513058479299685365839304370470285374547699235755350543092603082023252956286292942135531685665095946730517529669968881926402029090672784079313816831894353558877738648348390846706033771272345539847914425597306674782342821703375239144060317712430326008401351139237696334269189962109777018921016557195200608466394543242207740055507902577557186240561136202432628687820024210868460431261476771477112145461517714785916539925889675079957080997154686829046332098354861992829842167866242265761954226873917456311079919799268827622811078536920751210632226450167728801232358647110976684575207617606945051001819104264608652376090364680783759237909173737538447300365950498998129813166758882883333396930969789906241111635669235186622354750049182318019684993740455734365612052416983668211169829968066705951963768173651705460592660021563008879440045116363482092726408168971347894919063696019460155697703563376058681754554983254762495845675006403924656910801160835205399478982045057544737645860164101675100700220695616087379205883812096024280246256347957408436556957526579657482142425482871360450097118112541652550604569412294429602389049021982995170659443121723914210727642137764764718517038837091022662964005381419046821859293052298780493584914528214570297972183108171441857640274417198415549449348914946157099650947979751246291409318572313958861619160216306628878587679726424311207854295300856857300368439109732930071453385025673102776253155066386449750340377451306468362546547464923335326562728977490826940241459571341147458642194633751571163360979232752651687599174680830816366749787784105739021958497315443856804249454880573275385855829752557156623941460505515842462808491177298852010972676953731111619929417062824065627680948803710412401249628365859807892999528982226235879411799010801765728182573562282317828354140896402012052104179294594652910001545285322372681232898391431983628462209313790905713272951723321699477213581326764441085591904083626862153290667884341398028641662549823269891438172374530654230768977998926580111995270255680845577238342514715928959016365860133211474673556644888800368456736997712640252993626151626286450143323377195688218443359966555646108280628545185290812476162167517980427399256857564550116456029063862123203010469653405991472569451991314102420013935615119134212467030273379790316245265313232679477420116574982525554816883795108904532005685309924389010021754340562033638559864782659019863145877183696695439475261589534563561409636879013164426242726203331267881228009831296301169963476268751080365622452670317025841372941450806164106285423016148756250264985948217266729222792789580555979999440652110015423875751214848201979916787494323211867232448438067771701321649889844121547088885336305827061938368126549366737135737622148172059741724709347452811627923833712753858815871593294244820891020272449599562975484305591331328920083808886779959845157973753327174137446747808839234532843961279448515169876456621740220963381532057693402618054011211612545134424335534709890407710268022592721948319085376367817901841487223183868619018320847450985523456342588997720241892944047838993312717441694407724087526911539465979354554328920353844521378135859005858824343786284969370966299939834628322624295515339733735349014958923400055022143091422797103925525143337373693209697069409487710411722899420891419833548042044653514428989851549413322597679381049397310339540669513438365331756138904051736195553516569687346910380885219950135247719135759166052433473798658345162250801451515438137171076714191551276632639525837709316788420836175741620635281017908489984425792513906920140862835854607141128426282609558011854418101165563975671040569199543219413777440731327695614095158687926182095345129572018789355830742292959708697324138651378894384262610099032481696992703965249919556924549794313578763409897351259821936173129642729197778824314155967539598214510106504828071019572839348397099755531635014133521578695453774582035417880388226870581986913115530779899124397823768879764005904291921787177835692612792262430205196211827102925188837058643313747450818365670112677742315273007976945437619738157023843357164543072058217719163207454000822082396546071495340103180669608974071564755279899292426287210653484544068066135296952058737803410762547272532122919242844778884373734833143353471282567726320092565293412767529603270772948312901258574408780805893496152810993442225947421771495376254222793267311729893027677614574266860676412672456905743989736337031080909405140162907127803326649942463509182939927443890220023615280233196705084959101136365217530247615508932076931686259456786003026910302314749296467306232818631445819641619265325756546015931121716462417513040508334229942855678141303930765753931260373301617339272115522671748942944407992946253177826783771023924927684038350139697580101602101230316787750082432787306267659672922928825356711588965207351558630814129234643705506953377496048421944964888514147183517422176450514639272259538839726864422036352466599314186863471184074435312607681312844132088125967924986003846032113999722254064304571795990455606349095948669261422980513780269057310656102164406875478872425708712753473429300765450682555116289934788784615654814480430069897336563146445161954999148736284072894443891449373722979600891499145464021671924278866470935200363622900677316607099123033512757150046401958705702226276089032569739331181318724525587818401419500167217199823909081773741512193209338941964074949286067882315140900824724209913254359195450817455029722382481103456960014819681243549357420702284318656865956495622216616706500850486075555084230018948865087299678865118698307846916713416550963103429504663088864117671393130694142389435266593348642413456345308225710658247685312317573958130390593133994679337095715886429690211328751532829204286767645325670877576876149242443419962206925058948937106742176939575423131586922096083163166829924074980560103906488526440232040364490385306922198527476896016891982485959450545996497223306241994788558205926047032586133056543927535938724441479437762262484682341603961354873987189820368092202959326204820481965615556612704806507271614046374035928848805438854629938621479505402957773289139366042594645276616547317488749312156951872415229890930051805090779838889370902602364208295662494534473208389312860625837182688571421607500382301630781416850201249746894625814743930465903148696772184524629548076894532768332672078560621864396903105355871453351055127949972635314322907332057122342087582103609815442517408457964082547818662584186522948474717187364915426637888558321008138940614611207303568184814902047479328001889563159291092794486490749601538967301737643645181165884003924944253995105886569138174866766887119468740866136103052468729009254379281746925031360630772364065155002771310886023867229622773253031960646638556150965317074453369865318333568832343913316799916591899166522794686896837115545745588588591571574659310936640606326673464534374009031616546966013805859871182483464816964444622910994650042728850667657382573351472383419362779080482891724500089429699128208815363790544009755309065771050612895924958992464748373738042068819413789194094875021468126165046417220621073728791835497003139789831405833234778458192493039811391055312967679248039726911839061615632552478068201200647367181440835595782838594758034511158859942436223571265726022549506935237320256269242292370615971211384476234389232643799593198011686158964282791218163657354496157986619681084304036490424847107790955311703783981709349061988379190357013807602118160781754181907381705942306570047760601044687258994652486277508566378375030152301730207363880395081372669950193194576205009577056366405403883148184223167178510822786693933882980317302899086823702489303323068130865999579071779322542841313440013994906922244548094544614819281508995840891616356115932116572450956253718122150062359675192570218133248249379853117491655235384945096492795962055509745403220077192383593386056477743518457989235235932957719360823864371683311940927517452134935835103573903349763729585586549091598421698811556158626962357601749758772524665802891043925718578437550326624855776881157765911787007275363139686788261657647169491324571373457984645447740873212081250419952524331500357025716176880521603602607904937839736859023760016268859648536885122674050646377866604586714241133927210663323920723778573441366156413532993684810366442893796204244502969249161086045957215749798556126413998538508304703033846397383471864210776810067390173422445913759625921817168396148048251000674587115867555643382108266062303898156692863319132896206797125802019377552392118012008568744831620597345559531770506911056882045122022430421855042811113079602234732569793531227541548465278311211890142685899484166486427439615111975457139808811612909788731138326306500373343969357238808916910010539457094301509519429149566365003093868052574669163870004111550126465004460877505011020583720265231126581987232306042333018867196512219303547071435121708681901040561491516113068711891313706746026013268212150385666142157618665971364322653902482355538486207306403472061247636613012816067263391177610793158532650683948705862617755012483386293872449668950438094252689116557747628892293714144960877540152154589084171987765661994321981259597687510953727624760491591618803929357131905798369423094104650480772498896004444881338072865550660040273411859523265600481789748300335358016144992369919007664485541375722152457840339179834835468313539791149925929528224033645475459212526626904675967748384610863781184338798554640447508818511123532274984937380428671144160430509574263643025196579614001308322137588835749114984488653150715768990517156600979686443802038689103005290735259632120787628282948014436030971178645038657147858650090541276754451296703751859576931163713386521552654324710141814822788702247099976588334225134506647825951890105460298868695241975775875404389873455369580154822676209578775130700417385949577179963884863638822582232923829976698559732609742464039166353059625431766701435355332893107240688308828679650079120166942845024826620519746145415289643143123060243596805555216555642993842008842764023178803788087401524723445203558664784575480313018912038803953723629971379439060587496333308980425421222690135907885978822627420700695673896974531915211737523025290636516448673880356840907580753805498383659979954871400486588755735534274005470369857847610711957443623585662659317054026874375469303023502975373307473852456383113514346537703441818641085882974929618925671628992505558246709329443427815220517605752212517546955104519809301062689302469644984295220642357067203033540702014854526025367977169283334801125522203255417898121916182712014186847717380779700093301073793110175474559811613665619187175157325408524870952497938355136052791402699266066707573266212053908852004388246092872544890800082712600163488276274540992621309476855472468580453546076877988418492576971495184359430456236923675029189383850263802890129466623757277453412030345453798809317183621296473918872111396442985921719805670013462220424330402999143145741519404003969700116408843955722995102794750161851342328385276128731812488405370500981360071273561835401723639559680850568031632136744691067560250302246447077224384355426026099342352526844172588948811133197003125182058331733445766816826787210977651998467077220316580960871669813099860068572840185415529691880360359545487437696970864060477257799379164032654787658086763610505096636641749031562212327514156522057654407977263001324265593043578427794271715951220507057723060810128315798266853335890062463845115495296073967267626511073384818124140800201281821206933576080422688520466787263402848093030423654291590773829841615101841849362993980955368864163430346358842743936871216938765487369497422555135921109709238073941374757625791748279006153479524987051302713098976309594202608470101093111732745275302876805796618645902678158103653789180464774722154800191790941436263612572798097697948382331585786169199370326071888976488181436916545677516632633228621155368725072251355331674172507560516359469327649497655824886118816012516373963890041053808114788155133641093114987977077573136977590226548640156000622745446287363537689803006947761710896304389876059561541350551927931438165913415966588092956881531469392522335518202986444198876491836593561282645440878658066251194111466804764332341796310429895865491392719744582684677984316603306300123499231282960399494298964680218395437570238345413719846728427434975006771890102888317698326869018812510558536830838654051538694665859621954364728354137192210269923909861362695295482303649757011861179204867562122996824658257197289828898663288353743574311982528701215615355069245133503773183126379848557984474934697043238805365820027023938982724371120646348824715442269474581656663145458375308613755032944619290448066779039394375008979778425226925068445606242571466505251675020929858830692981217716268425981530426861457106294268896067409273196511319072644152530413753865780305585407919708582062910832794629130444384456447554246833431604515649685365614697656635427317103802092403619064607852497091451413870236294761689051230185748836362575375514034293787448062672643823853817413841894510133385917294153967412246283547484965734094302931229058109763085644428014786434349778029203059470654863453209464075078946570344521781134851653587559804613181143920963545375330105957834364244391354118914256717317837478597645918936439137805844694861377300685277966771832815603779417939658116310662205544789919528733010479368241945497260370135760014956736479008831379201487606097343922605107110168931179079248842207772195262844754126315947704832793846833028620231786289629425240189035950614321677262862812713872107491639060269671119448966599717766663750216236943446254570862779492350495440773342718852754694149830440945756406534890530706728080845231336809383208095159833878551793902859298212337413668454294449858805505237390786565790212084927818851459789912727950949749331241217926055361009725487844497570962094779344658388739884824688493946000780329938314086014094281094335851626100009090425180958305885167071923580277600876099802086449531775965593709392274939514373446500597913333493445700235765731845370466100798529179556267294045146251224603467658676187276128001212002309464430986687736447259804193096432286469919007772008919247427299868446278383436527715374304954940825336785877294901083210006663380786085871493984362429640276777883447831085987258450538360493254637338353030368632538962652658496591736762211259740128306229372957846250732651940122317273919182686152868886539970921882004282793593291168917576979450458512973701955317370744439008429628781429753306667860528506266968877611627594487198645421058719994392351920112949185331389584224674341212894820764430914725604172104683363798380548513022946551375384931589748482931028070572792030850788521010278336371781407945047251071530105215031566400985716381422521818581171497255859485798672439303327527889377708950090801304289143421574086602866881142900494114279267344324421208669392551122863707306837191049606176480507434609064171254753806258706059839920925197233258075403471016566797945979779429413140375869672641392065883018074041091576088600933766888781458121398233905746265241178606399911436467463302255416080389551149376235004333455950210745004436352490772559284777733787048600391820872401690617480977784689139410189303215815195105055839030710261858484716147100519729327017305072725147151149737016541039218593524613162097801512788079996655007318546454645478486093298599869486496645556910856865416286712970183520446355452138164345070360089466430487098081329799734225943660686458421259272917356259193950922868222141898812123755033473720508928137089116467065890654087610317182284626372415288933078172799399591953625579423338806339084477953685566945403535727525272726623163262389771211781322830056840684104868780796307167744166008728834387832568294673669913491306670905404869765796077051336303962496294719629019641380722071526115851389674617423561984418411860124042563956588705274140115199286720664101646698163038246046755540525252906250280998266925800442110998568212147830385077798698037138682700176115975103254172502307341813082054398277357360431564988259225597376791256114707877478235126821133798991258496224507695391404834931145225353161628912235259237184022962088889690326732761701241029191630799111627717021391402782129026851317429780277722198886777593194241607309636766234197103786473317507675813623762022479187355018599709994825465271498334641200038507732022830282497738672324603364374286402646986168323899085944758247301611878982512339346730924063486004495082900554729220338576938258651471053681747535142685269553720984926569534123839950231265639644336932223303537970892954991871586550410039739291915254630904977518375500205274960635801792668634177913977239402153261925242838843795071790040442209268643691384591533378106811512350387201282098172106551737897990422349625691419001349551127138365302643990740152156814528353239880607551677145745281295910135862081506165881757849234515841347554563318988879295963892255274160002121200290461568417635026176518252504196507095177701971062193655396046515362288067329112699347504692569132677055260557815909899130498940761359003641408027925651654074448164423333681203091999558467769347349101111270644603934876005689405239332073400503539081326329871428890616273192915230489147889120254133227637758350118508373012698829412370963258897421883298973507565855384661253882736468446223187036806239824902576672529109603682643017203825999330473331541158107072356553436176221696142441385046743707191550144203392414822553977249207564042600491424238690441623147645675413044651147399167194517306551215439727012591628675124350576940847567192986331410012252840180245572646609416189172590002116394324186498967272167157171636911655561083982070108947563878904968679860415169210205583022134785448219119450103877265956906877757453521055635537214458259049009121448536185915113298147743064558314292496894817255994769796608445003646645037683194152267042207104156468213285984923304544734216517444311525695228673701062374551881164778485061861910397958013881039020031039971419631699952341643553259973776699316977312871299408451383590531941454874921637819730081549297333414285598230370292364455443484611452942968876933740317371656985930640103586059205279830145277222372991208375183271780890756177279049151095423867834015041582052889541052927263328459966730850453770439731328060140825270003745342072547869766178428682751643493601177709052960344428752426443212464361085349417769175979982938337709553652908678643901508308942674220065997002336079355723304805333533370128563052647501380602492036450691741164875046075296220708706966347860857664312397835674634279054663765473538508392994953408852219974298217789411151153617059621380009502473682238363171925708171739104759534622441923399136382262885326519056061365236331417157578370515352244820172726507945421642143992673951637964960309513195443937264532523054942955821731920931634876160913532739551887919475272245061040838621850322913584564506367955283290411167497007703199187021311530209340441128280988596655069203769125881734949014055045825683361610431995914827705069502891328897291951449399100068054989685498537370098579942279125325016334986996746441314147514672255323725370429169608299674297561477686666752600077431954426705477853583641017997689811530504159613645329703094439274501748757289348172302970954385507151661324458295316065944693496947270281827486854635492382856479216411813707954302415281067629968369247348943170260912651937660075793833303266222309207016470552578880080491227180679626266770154488303593447956851739146985288503176365204350825140920226877353583602325896222055256907581018675634448255166540284450463390826878044808852774069108332428062231813146726101852223428934736757072350913564616336002106502852607574446252535704921374838056242322179556737424975851884250019718934729411471014642090650557758335941459450171998886407883315325077484770964326749235031641823636902847171940082896664374545548125637625327117476634788487495696740486827675820166943864113693281793458463764825873647970867681113373657798330684019698305129811693147393703444834173372925317221905418479636445003760242865808347478636220297802694902605600833429245513436004110382993158262109810710665032791646040646958864729212344421791230368636842570769786933823550032132787277857833673100560804615897894582174592443208246709433015887087290822447499292457011930426194717294465297094387049353358891242017071099869452623009925828217246952961967014788467992113567190587111272400179944070838610745727444657258896322207298768766535130830688688245953912355583269630008637577807218462560535584898538684012713859709775174213125010320271236600419379729283573044886982565989132769900866598460025315986007512232552480243547551055579730443370266917685799055863164699446139402783560432776550303583042633962396754029491046769537226735703792068879845663398841459008711330572398623933272989678408808313360374649874754442973223633533399550491918688432271743172539833931860441876676941701873616006822637431539909149343075560114021011810556903605521068510498798686840129511362618712529315434972763641027999159205411149118334547214084219619621917363015249278685794465799692680645267778238378710927611969752537872690962143154885162027708042279064983829359940625430164027449264512402450278145684933046353709842484424971914597245315845297212500043253492366553066221953891362434590449382241525692594914629332103560132077234153632921800903245934472207295966801960094111037888506238922618886513392430340549367070694486941974805839958126788991371801620163802231078973640600976632496092540348274607254354330717995347524276604095221735817749833239588153723572852301431045178205516564648223050736577301785821474225210287951635152768754626057806823264610048238534194225411603029903857336180463452540987467153953019112272697361581152625455609970936846299527695695222738221518429144092634823333582219349454906357785638908627562690207327379952987491566563704611223685507297117606920048888103037010665430367249302722288415458845269221564700676909009170146081086352384829101133417630757357451863269899915854331748872709514289870472636739318030380825816852029583921008078874666268640531907756882663823075023302078175577428614324473968127147908584078426719045356314930621590732490398756358108642793720249562035926319144623986363513992183603812547538101273663525525573240772339012625180500423398196127480926817992229430081428513926767526545888102619725103028638622291003388315233211002220123087734528124569653452866121385787188591672412942231532280901869280580666173016762540131046789986130961399198180054092147394898826482077321064045712736502450519783201567980713318309653787191521791648385376010382972225206683064471033700146216289043937308385989966225373132570628941411631565448964883301291014935183723127081094737785161298557754190477582017954230033730841191745010690422849218994700771897213275422247170119362912530232481494743532687313026281074629218628854384278877645854250170124641268615336606933801203910855649852858841709148820383809458012783656864097925660168745160921706022203663209553378193065153292888596017892288208071590020148071734484718566010025216125197870738245287339741796184871184660191986151507288163438991250224141093701644027119904738172685124606424066712916177431861403612215358609478542333142294745687351654784744285705667780315620525385950800490779499066632287618379782652475923275824310684906721861901386568596046799741985288828973531628520062355082691949349199851620936631494316241540027923503474555859518672259148748932377425215995799505522927221566548932917016154294531243128223293537685447432956566322729906644327594961575932773979842074272140259034536568864561266229200521785849057518347240177949308973745752809087773285176559096932930983838353144799158958886899758117867247913565920723975911260258927024641424996896333815020908326869182490793543971551991471911323339442263910865760542980742304135726040386214184862373964222644214925012362419401895857583199440254239078336627847750665932853990496327152990099392460905351235707564752988310695717562790241174784100313591418483015224052472566956709051386685472502573951943502815289793405227895755768696778831204722435523014204580786386133314182277707198944717119761003424061473469592165692251265153929467625033282953391100672518495130013947849999935889344408438328422507569497919432401496526690004535254277854723453787531618937345323113338774026150753731127077249256872689698870036637738909132831422682860990699675163163922023356844639931203704320785237080047085752756486602727278249543425373287208397184403105367273788298695944841002215622633592323358282982451940643530589899222511342394831635885594654558583560602081340709071091258077129812341028976738300243976124582124718804684916573283579425856450188512938006465413429634823400729672158622295217725111048102932378540479253087802888543516706332847532694295303260204325123374031061989941931706395228327527965357881298889012641527938814606560428069297358410871317168053432784410154625004952884824274982802412444539218488761300572624797950669203599383848980429544056864974372240247306560407797040706571927561922508417209390989367910611991543487590835707364819519987274448803405974937323809838686437493868554631364599945899234002996650989605261945344908987585000612529258744286407307607518800201442443999655427007886906016459400775184976703707394140937385798641156408704379515081050555695259543165578807266718227400154483011318172601664827010975353674659302007859138421081702971214185291516214759783448964186617167552866819082875548139313107830121806607214618093031863688472213510290494141214110921171567173790232722035112591245289023388954430172480303431262695725989348423881693315204688613947064389811087664491402139564609510776441951671643104578115387124931520343840550090555715841784060128100942553387175178981601750480639814475245297241352867797877877325683674104913171863528798260277512110732839820508694773346536235602731993596634563245594219460435544483987949022699299593958172731306787544555221705043055222089173159172864193271127898835828190258145658772373494222076159320099672110759995064794316823760681308254055151068520547235484626065576665836194386348076391712276809966610994126629161278984302742606591109908008148768436011648383263668753787031757134501099415152199813347715782625339335668403226960011943107402343463528467632938961204137157319791834835597332158817360219387565889422025944999618326527224660011581819854888998489677833320933561489201030952583706034266336986066999873788632111324813166671540757454013091071884869896939774998438804797205734998931630508295140479094349826076670398686908174675316758934656757831882936767015258048344608116696082045215443955949505752010122270691550343463028572821354247004019127222396533926614093843583044049928586224517675999765923991668553196348822224905703938258919994176424977590517709655668052737114961652788357481602279866882403851414993890991071534978956486820901104930982125696600143290283442800992900095424134032325276277227830313828418408248240424112201072817878164382589594214014798915785962307845502304833563072872951442229921049602258244769505366376500065577510142425218258295935917567070414903078084942607595311689383832894597451909439255066257954491205395140685991189336073450154310148680348156553590876362462598958949237140114656370436244515170981657616410713704425329503367782565966467605114393726628000259432953367242769995714519016738102206268425693633560168462845657142215573879452766570845468013869869814406991961682116597584787303111417457799215700050044800527818498305979720030680127599250572930313685360819638521021290530337717402561849285296971730770476383073265054382571603581974781024895139531764307228233173858686198757077978971812723062621852472376093215275804329033629582034382911375274460326392560397267659381189672222082214297174056955384625143457819490261730869872356542031607803302622342149043402119333254184063091297100917962567951260786117923195225557661905749208877228932191574985618264276556617977909221491808728666542031637128257384231185671971091162330596772459715856949170743229982481768762570798617236690608768844184252823518363025890459150125852061260633187796218904260072051296295760251524146708913616654470675539312352287653971334509210749833593088857404929016479209795531003746264370046306008289735159575284585753470161341819089657183042036607955961494777458362034803738837408910411629891518745054614438226166017671131975231099037207956383687014880346207762520175952981303608897244810742127469883496578999836522115951331689933621178645475279988610460072641904861729471376710354135174489188058497688666455806780891005088040686069554013365463470044812082731218380209797090781802359030531174558707016433176197539403985244445653190329927619930923074217135610092080269308438165058506649071598638271609476377461617308578009014429595786517446529615354875286933494040356283147669959677939122606665567279446998090299524064037236273127097709628246577677401954424157642308243642195373720794679364299820096826519469609577323720109340197111701005069124616874673479593299097775766429701523575440512132886244044304179548830583507976440566082010706943603334548036340220682330180520572287997648890543271535277812389998756752523434808513186723528672884893708894328823836329708995430610383144672395875779618398537180115826912864899580735993251179181399537484747325719719915105572813388363594969627472435693836873266170293487552571429047643464258884342449386778735720663402379568159057842146617546118622766872012119612064578648126759717261381108847073445372811125537090177252425991874869798342586415385990033864344412441679352063724133422443823693089867477783474197362042981246449595915744831785729812948733388513738952411098501750427373353557503829062678272244777538759742091290509506414196176091346494125573353110015014068561938595603678305078537851417872778499516854070178834662596470441338004085005957808697406179849846282197624288210331509841928252508164279529234675068385684043752270454905924814134341574768988394404041546668304995626651453622783767428422736592854451101588444281063122553099566477339615826047987957678642451085912153045679283396519174933244243444117245605323958771892802635512393590421826588836349178993783251706240420639240806962661326197597490239888854606882564144676274670678311268327315746779216143006560994400353913563098578451522369899193230500926309138085601757418675887705628088182180569301655548538427809044138839653571145349485307813417142706503446031119971051500444920059683271848040709006609527506871721527596983633696480387109598817666993993040291975111220233055452962397234079319731964063028012001502790736048284044088154496886305244203786491197742803040487071261528227129212908575447313189219035695918041113678983629275141683274381980340135854098766446611436166839224580678714279867758254067866572200004078440151705237422092625167777131581250398044480810952174083743259733455483188947800456185819587224936864701070772055715470674280945715604737744048693379840182385506959815576850713689815512933142592668792169249792815152327506644073403547489197661009438932805339677457311301648878735944230293655113177115473656722052564624003410464042609077131027815297231969588668849748914132027301826742499339299156095826606738483193983879624829009870975477962150977828149517513754742832941788489218007189614321766201512465436028723960590261662762243317423801260410113438161566116756070042068355559364458693029938698643851959712536266146613167813100846154329249696691912270377076267839350612293156791957405880378469309542152244471809001975310780666898159194742124924664963133096780401409050275754973077239240222103092155287532437079839479022646013454101941414203423017364640183324087248590263238620104436694394200664983173310885626581105798332358460329621216044974086054498365258801102841072322862809824090153444909270756463110747276839243804370114844423257041161948534326418738015178003304509797571716039112121198972970345587925484258468086975096559703017145772346438941520061728043105669266647296999340576763503991729003181715586427365142173961933560396105007884615955084203940045428817743997632032480282328758818511212280410236967042109001183073205178718657431548284059045884638580594451654987696008618027651636380732613519106175467316987762222395814069713174383133762438379793849299132528088931150222510424206818321798544220165673391109422105844142586787371186562394849713582603449351525243413534975080220929764871145526204377034524264464755259166195361822684531741216220231855087719425041145718908809123135293639799179127250356857975011924938443840230945467697415511426433757431189794242286570353894756660337434240886102603049554423634132978131000234025910435910916070461932930624606304146545980255716356884413289911727376944666208465268464398830096096116223207508315117065603648340719493376589773622105021077850208648160976882436324993164995644997857453732415785602095823728032658443645085738716074131020484487052926785320894480760454027747032026458987105256379407433369269991449645969210933576524895036216828072143054492798431966804093054789617592875857185833737143961216088672541936403494925379221507884914140830774822938464447573158734031436106489266793765177292082973954661173442465762832744261672420278363899222605901294499435501907576595918561644093130699779113340322466395067612297974413227703807538208133107855186282532997887909608332483317969283962992716198398582395814853357202756338955191823010251212387094262288473644910695857642977636546343334518851300183144588415876862688877701363920882695222478150783920231285003246094093931864396960817484292112372571566043412247966137633473933219346164372671952662937800025016354853686497193751632024442195471355969959735609980893760414952711600313964128721812046898582123984358047569970955341234406824965876730624415750298411575008664302690267461992375525631286183684870399176315032701730413610320155751662662363992682490138095878981051242128430384773665696391164896638666373098244863478678558217433213817878738196235811171546045241734281166545823517652112948806355692644903519467307015170946540378597635712616837659177321628862290400583145312577417447248214855571453676230664500985992272632110089006665762777692195188443985372034612123914670860080409669134157177535667999216451215222709373031314902502018993208643240630121164851007721014592831138262583319078653376159664382829597741397425791677711604620904395902763853687824245948409318715436596161530215027015817017536178441345631014689768542977943920791439118317491445090694409151206286094453737914287227888081490026121341104818282287455510580706921325401419260973739486702208965752372817408499038352231941309390537327898967579422803324867268313244789580953834615541262312001178590858925813525142128403074749238559733498452121956879927200746346508463315365267439579906097247479528692274401844720914077991825993203696122631002949625385948174679088489729888781512296542914687277623744114968330448378322328144072489441539411199206281063452955225264971957318369849736398172056699974271136272829269999934112542336724623573689926734922330001318770380755977817602523356946268775887861304382281253986926193643194126365131734716817077494180608989294955562923546275898288563058290197498723229717354565634686726092385991664401485779208080253913904839640771228256123695272361729683470974457816760347911310684390338526053824571963518617319405878738873506237456751533874778496144900920012427761756304114914326802495722329840836091542978278297114344387737860523296003276780822318142356580346743576772151678011539219756790253004657806988030351976661471065165808077625535873498021869503563428509713977071740339608097050753931966960316256930716609212410715349674789148347163588037209956832243388816139715805581755450388647069982525048891715047244891465530618353686524041722775532987419640841229160843725226972456638668273055799614314976011753594851557805590268539708592648906899942646841887844113243776446354150346854422800820297355331330859572470836858452516947415479937515183662813137275772972212862747680409137336438056240112655773623824066548892282182687248684738224441379347656690321153214703375889710060193321985134350736473208883009329523960866469127164151011511217038229502412073231239141584307791481964254819283129646259875491422278546054810532555810184370754580608244175448222246775890284995763178965733052908719873176125030890740495546272677165627214458314442856398156340868136520059710714143239336916341473483526565179610277040433929491818165540265836579442495859485003093243190522888964892898712999444305519239488319089062396009843802137426803555885143196993618873508612344475218794590110171979879944387587047613518665966730082749101895839694329823433740725141998032570148507196671767539096244900488078506493110313503961705255019779460835858942798444473792263656504698277154943791731624035768162630533789509691124470788149152396209325745982123745341000482792870455515465238616718639794903451371020705837892191365246283522384685181024193441914566059853782339030522907371646272989157666999331555930998002503846308404771209148252046508693037451884596473394469301314175745491635277902773311329863645416684876881016193120525543108700480929041543831583514827883900478601701562782150173826492271782528276896372583190915327869486759767917025262245429869954231001586294816581662132069319363130133662357315899220062799814779917083759077704048776492115055321755697072996741439726868318061811740918199843831144444951706905183355411567260561065510278837556418448792693008811205255916992836488965487267415211306727087370412366169687426104691810046738187626814538931230900036181489916098755551100579340690621883328401296312492100843280452440996659712769247078186065862394289658740384848863959969929021120626311376694619605562016172385001990889229704454955834401813286047334424846299746095074784928948370127896502569193618800069778377666647730930097323448068273779039464556781849478604379054438469456201985326156905772103027577022239579868088783915315093445815471535785876598606857987670397876469209389512043616127826876163168322121373810892322867592213986746872764606753030197432342459148457545163694292552061449509690529412783345200165392310856504449957709533577929439752960372817690080986928438726518494258929562897332046072293945055526931969547536648019329621901060714114045417453751393908494306871493978162261769252075522244729261960909353727286467079300908668715384484639015000488160100641960287128687636553440540932652959168258146284824325160257041195942677835065011314590403732673462893701706838099418790704526251339971255560379103347376100940418372679705278188427496350221470304884005784091506001947056245879839552736907988126712818080404118546818904491268875736487158348365307786521723809299060640427476148036319954543679326635047922010175275249040896270249022659492685480609079741994932047603197180143022875000556570974666258849707322900482463360789234394973630623678423154212574694521796645872786466185093100693576705668850761051414236702865763184319506025942514336220757040407819537606688038603880155615669305519781531597773010496345733595710560500533069173707607318136369517012678525546119425552843143428375581967068267711373603586138454035321984301426833129682451944018928940298303555291512690437674458076375290314366235089889859052136925824260877409358556944939445502127636318132109992714980405509536784196492338247012504079968580132058638252144059293748927528630342054030370652650586120306163940305636082799457000268515620513271731219503713336536389849721895554057595848323492349309507142804430566682622778470227711718350477520908359631334040885485594765384128646436881612501008500948407966395213497839280194732456261974652542019879306043722132907490391431284373116254261732704805438903639160286387803554006532763879009729946870874286353305196457669504756345939120036314948530364817412859825230803545393455327269560319186970288134929843988955182675206620296307407773316930952601409494575908534620316213667898912981138258674426792858950131461005841651880331191007604242043925612542134103456436688355267112219452279955229990599069815933938070933755277357476614122622477078014562595634059685878286902084667865629567886542574788187819650762076235693884133342080245549313838725921176638656593324509738967807384426854465328086878160452468577519707996585800884995451392567670180398297142324539030247580684595212836188655393822787472826166386127668760094391858137184647492538865436966201395940890342297088884250654065603562956893465185391631217496106987307271658461847811408006835314419232981651760319412698722980137397618916427633027938039460433526225075826721043657557386828503567094949948686896778813374956171517569948746365240873043406640721348384844078524606275383984318242142521187187657415761989991970725969696411325900924397237196263310298303903653599823690740292723000712183625408490593501357574137400079006699241576240702825793712238850425624750475160502399767911465966545636853035132431805486433705394112048836010443432722257636307480284050959696257865487945318069423966503373499410733516120107940225336322979511323348976183972074439249976462989598906104912926244393927516340633475858941341708939987118124175991617617507597448876992356819705140135659061627355413193281053461058352674572828866575250681672530427091873157147630120913137637665701441976532700323650476725656258877939709270235085189833818956107808018974995252907820697847666325119391038389837950459138361399042985819810080838999371430219122436888676735386712782338925207632921263111231565453426946480409802752997858437378484788384055478890802520146354399624677870787047109013747217043731358540074216701480975047562274678242556081093653775516811001978272480973390866951598409141099763244939159918743991728150863448659417970095244045956600508911656457654572670703306228750557653344785318300762398285201967097994211196374685233994461257651371691163078834380994682479794259522324028083435367677647197727548693010711246618755216792133048458946591982043672168892504203409467278506719427770989532318117385841757066778292532455853183004520499518448104423651038983511305512170844653885002696758539903236554228673751863745930702389056517200091321385450271872508480199653298415271734586429489717114994956066248000121441594343287232771280207113102803354185458977454972715753112379597504755729621627289316793758233813915887917489898217536345884454618132764742961193604190974610715914013978460385345250709062558942034702009366360021574719035893748891245551495171647206746448845261869707563859430654666393599631222653371418982255348620889116395796488446226490370772739235697768192539723083372756283463397594466217947266215238773043335420895833613881488433489460412832136090644285299684017593456331736743416948154147575671702740879111775281025506893873717752924824012505925855602535521239963946534551739815793421284819099258328086842928945012756302122677416717246598898710229881829059174432856988793584281867627888149585877716375827060909159252079566098475428046095759080080313183060840858577843661277351905020990304750426707606540555820779836501440348123226169608887828987017522721161503440972652235813600794170257113472924092713102689859629917453852238697624329616415670354562854170666516512219968008313884818251432160716817795014161485198832557390475639322509383215713983602565833871424239341808236331616206335367033666786400188977423508428504869895652609394650603342283923177990642486917243957460304201955573645535758545930662571456610784955116962110342994147679938659174007969644746234680062597264979650744916482131323312205788555772485314063068327198584796626837145492796301546254808012319404244758918650803202148929976770801259564932599753514396928966930654971225512548643122633551309515481221723324284009550210548577184014480676748131932225849279906733320178986287149429870098478249642763154701268727017260741154663192710966536982521485783501244896800965449786701499553690113205662054932741395443524451403921085427213114774495327262764182259347700317491083150655410931004300453234563316413955483839354245290279911898214619219343000536604840355161826646292037314912742940418625138764326399793977540329598648482974270162025333547900387448824654469116467119590482722615455891620694794864840811184779473945368327951635637018944245812474531936848620604156874433695525543264176269621063260519148782396822979243830193324788841807754853563348999788790504990209537135350108151334445996911927908389460685974413496690928533894930365636474550249854436054526115045436348533180379335758093908081819106667964122405034604293426255893142743070168389456229777067642385160728381078992468401020977707655153610069324999405056542579620784466753821064969439788832179319175073872176072803667472106742260035620965738003345540193472858504684834529403683043634203412600187927824759523608854580737526086507906107742324399665362442610830523757603114865677451723323430816187456980592296004977161236420194198290967094805419438543497191426470045350128298076098342331324321654063896626673481710710278119515569187702503336883987947770614087079322044203068327749337893405257588151788556332518029086766522881947635164355364808274101442819803906753506825661858118885864652856207601606831263502314091781927263027743299322554411066676583325030347148738020436787338863345290541235353115057203907310489947602327812698468276133148754529234490626746432957963069477707235577339708506540836821991665965820777772737341331116797717562335909100780377046925372762438556527096053856389773667294203216082865549369081907965174089672778639874616543983607032970515948061636080172863177580399349232198124639857717077281704265734962393159243803415353183898791951679083715296441600539804665915275851903749923442829778924588597036296802482802871153043179686502198300899730791118571391128324984724415786132236995085108519393118447368806771941754523645313233037811045411826120388070511037288575069025251203437760662130449424929771241295411153596618039842225272439150992740486189859139646206476513478393761474833938830828457291056345967208404516719532560035581149480187801422851864578174595556356418981094065084440303366864637360387547857044604787384772461384673326568095635015670481081768685862727065953657110913834530204632137750350159299676695758610688608924620311033185882997486605950283490706440531629764447061627196874152384898152271948338111920867403132121904291551980042747466389563011324158837688618390660371450749806805888658567219856852052366391625006641788795587147278090550539196103617192682344322233083120454635243737429356636133806632053910440160654565801612315591677147930564668434863655651648516885708995911491961762930888295471405451535490983619888628506913410343962343032821378582621948502071296243079617416378214185919685125695013799630409829508273766209733831933944738801766757650748994722222505325336844442501791714134590790719445845323803708402350372099832130275326590975384127061897341984857258657978937783901408490872750017597261890053672075688060830649035375959134627424700216250650578848442265916310037159715669033070386239191116373329782599932849626242389760436517024945720204169930541064626922902683281670293287361029671798247855915297090882213442318091922491596847512611029323077151655421090482446403895428847039731786894331295676320400561652502993932230600515574309077071420605814363757839835921447708207559761222140963907597903373308965040879514937380910199206790194343245934659864761473490659165528021542322093423140836666677415117417473179718054601763919258121411818864104733807699053769210763655092222014738411296433520430249892963074753358547298459821967780117856038208262197985095342662252806877195740198475743463076221164552833405793527807794494264273736601095317595501354067539884298774505451325259833343595240273481482408102993986266142888396711947384121808415028048843501630183539932141149919046739599831608709525560214568294632891259067495483574851750552019907148129036555223839880620422629980514420347417217566098409976266093877690250554964131577806893253483455383982778074380065885122192454772039520747360116346970792807966110570834358707291862821163255909144259352798209130606399310069063252216068851058971544371619658524235340965130262562321830034307487773768670772350622781984415836160053339977756707421600056115045083282092370810072020697840690352246176547095883578103037227568823417440204638149976326798810368223364715970357686517783194492828862625150510227844518650587681024584274637514614144028485455440099984140270968050657393882984206400993686410092149053804958592601777457838675065663234224473642159894662311149403085536263776265766032567568777033092070790884612208185376162550117893481407186572195552708245297394822211771471035450373420041483018196748321738468734547681554060543460688512287970143465218104929833960125720555205294928382219586364522633191852876048307341360198831132389690326443765834122389274497422506459540829657490231391792750993807735745295499163187544943496343076186341044720089813898488818776831045324091797115456347566977067944766293547009552463726218198395128684404225922044041905884450102488678932952135183400822596252660541945008170871146169652813825974550046344960738296761966778635569511641531044197866224002513369133164498279091269416691686422304180992071404310181443934210916005777051461109890451950412421658196709503841464321468849048529682586082472265657301959377832506844482778085772225800295450942280771861488782502518885362871947693636890019050160762067505601109324801242316175518159736045388216078810955980847900981551534428025951100888095065061172718027996784577988052048592932367102736192260758377183440710387067601017632412634495225936934874003796957202307079146026345874500717591505785673324970055429924056010579049283040091947272535606338434098421396674464331969122114034700759525968933259792720321994566053644893583015276474062578402576537000415119294440271126556037031157192214210947857848092021688527356173725599404289133313606970634991203032264678491469975429695251185430909361499697613005584773923976498396262800011253386478196681525826869133363141793570542655404028775999072950812848527710745242334593673754435561629647754572022559712233273216048529835559520032871184661459757098627043479983306060030213472290937398107525887004491480499119768792918937780822920895556311913554755183589485652229440402736900210487218082094049649862247403509827879056779275272565330603704896383049222565091262748705626664129666218498143164777832205635956863683165300341741930228663909686838714145431123665773644801656512064520561764610551458518499532995667707030229660690891420346367871748361904508957627275034885888446927952932825752029330263089060472467740855783997715432228875328439213874478062967694694774860566832254410179236089280073532403161781200588124818499714918250129230164876246936627001506449522066738218935123074898840472447037214008398795427239784757113364521788065559531429331105228824202369140744243177842835598474216136975060661964761540272941465403915772491518442129530375882920489497856704296122577304452334108029777679337591942947269614300111823829436843072515271952870473600039013789684244621807003222797213377510823585948851504373498310813480499609550783753876718664400652203354764478236721918425053328572630712755289366046300513179617377595579198785604311301318258295363584853193968395549887965608608511904206955574544154410493989874515627421765180130918683213270787681919534489349667677186796987559446160319307911164159368138472269617995477736254399159269740503093535241080164485066396748882522809845806432685584429992567904479034443022317378614523105421289006623714210668718763287560676535292948610021936539585899897355960195106828560143584319416610637933534599000547115687986854767128969803322018028510366209337520390521359182626403660346738639131089625984175358224414397597281596740691211259737217817442371084970532030139869017740395336286019631518683930774034319219373198920473637485583609812062203005247576372484800220279518470214241919432079716617534524664054953498086306473782232153193900094521026140714732575157709230197073530649800831313121506283040307976070436406145930758474408596409035799804913357996075662728399884778261693725392691291753044100386755693072902857827792881012612340625278359480322911812900746321038511880446568735664323878136208849146140495562942616540706837792539224082207250552577531019479017368868549850407890166610430922116511678424154650307768767284354433326327404087414854194938261238961961793536213875443220774104644613462539311559458445063959023026991702934097705330424206655018809637800074866722558314178573784125626529775873433390495184348778874890272961455095049271218155611631939176989959416598665074487074122205236587487555221628202240865496536873491810095817108655302855507172265120223281766107904082274851454451717112467522365870357910794903994992929096950981797371445852470823463044589440978779270999045991936550491530673748414566512777658560273907641318539737457859222081017717232836333096416492713397057992460752820804855454037739297888202357615730555061264084637388599842569347843536615255287849986612962150668298999352182782482456841705845573363387876498012172672913532173710050281444208786910722593411577049161698303403217959092219824881242982031785197967012454623371424082377651214474311922925132301373725804685687401537364091728328813637807546378245189921700568857381709088601075707635914696207230251255552556775888470290764976385236358698602581457352118592957737852687468914735418409643200430810053899791844344038400884969354456885625819199634967456853901388200966509473433406915866589351262060459785959513057199979888151866782111638199670053439035031503929409998422182359561980624098002002350210217101346579198614013957310500053497573207418559271879244318114197231357219933502920675325386913660580974566450629211976555640469927488599445032765728681289484108296386234299613108802218962899168669323933312509384327205707017255005582991233531026942435175268603355273346620618088360080803716526423595523057701992513047635636460155239831088707411926502601207508348810910220935261698679608818714145760906089741657241080528122756631235373729728570244041215231802907372108058637181319544860729875030018730003196162256905097580587533612895601586792547088804322203405516378369462698938012566843126353212075695536634806530125668815418754978534339591959903452830470475663897959550487143615426284321477065554697698065395489050502714982105551811779449425215987577963531567065069111363119620617394227311734873785770567159966875523504041944566773532805969078352149205214843335248325436928420023230837651292668198610487093570204729389510736033356127303165126359439935377109705251345104538456507558291661117462690418184858419336654842720134449412054428110643473783986330912445753529333687419541619374092919565666671247990845602695646704152051769831133196900402032271869035702228680638216263801958812972792620240814537927473633629783197986135216852511481776844877663703774502261961498261120116378828304080721099806316052623750881135792592260458561020680169480990794287896931498346250828650911307394524172721017178586042439083405964513059851077627208921611088226013729975772488455899584520507009866523147178524720539735481155223080911316518022631008348138979451461681280523880538005027061371842536229881892271221065449404341227936156672954898583718422804363555364479098078317632562000307712518023743725593207219624928949366327339616350537833992383622902184189912610463207195251519636956378621658079376652125539842466782954989121059351390307851556980169711527455653573848159372253696822243876362758956214184436238140329040516550816189431082856015714140904580629436960228444515909991338611263684118018290387194343037967407681907514627994102178051904108143314524782199376580321424356318600584061090875645730573819228199284748941894798610607652390041902304503091664097984650436152257808199769966057802652434448494937821206098641996140984515639510089148341989069931729313490663218892728888419763240498829971115737361336140467160098650835342986393581723255617788388630214990307650632724591038151908356036886324154259361833586432984683980740175617577734202606722045884651586544024449095959060359802331153793559672371377331638151811744385345635151400550582306147311174135320036830717834636908371573858440950532540412206620470899154099797372384418744699351579156283077478905068725327853135086820908497117641735520663774305162589141872081029976872008496585509329438455008006277491860891141910395572436645717720019206050166378971639974640628841378017270082874348000686943414531313521517611811029455462474928098604929137576229915927327256898539712792893390720902560368183525778408010753043613458312819089637501950377958581237415665563801705876997434376562369248415933708246539038081770329458211130479852570722767857201895642349315638303879010278880316166498765620747371446099937732169940294548480329230585061412574769424715858194774742346143716744400659297820227931064563433672024164824576028504766634498772927763303516014745916666171031633936859642459388203326952577823653541135609097474574599102975521944660446107323514842304293816734018139900117765352013770946615586022041506640150717521791300914573259442726598858392843285029349580401913116186879133649841839972715819741303318444765766709268087098555895891529321461912265705574731539234439129733696150870735203489056021713647588944939129059227990368167690642335939231315063618972034432238078353915099752539285836181275375451360252500770384289978533697705036289790807379405947305224126200808554471334529653779004814407420634210358205487807998583902043891504040979291851299359750980761493526971096501016335871449697528790867339509066766458601364581952235059134334965424243856159287642948393882841617255180869971082259177890811176310996752383544937524234500435789252625772823142923290734745576432494837959613183425676309560951423473044690755551993278334626997350323012566819174959417957375669354358912767397300742994779927333503959000962289039213974479332467603833378582236564615500613014230660539004317741463024317626794064598533904709284129265350858022503583366974568648113931197342720119091905052313571945839598151161704862848505733058556754596638421867194207510531691906515316751018366860233120127477585940788000938976177758950200167027851593886042866399498716323326560843035613158095809304397951664263747829606887337324205990881785440142584981234340754673272130932881921118051807063076418262486787024520105426658879260505355354462206644647308944721921509628634251355499040185511979717268270054377874136805647593479581283185487172342745556254628304850828111754680721799380333498363331601463378898651022753220331333348540172676924139710024098194325073798139490689555878039714352745773390655324003670771601682618157135130768347518600312286000817627536104317095319959829564138719104953080013714590762044249235236992885441364164191302978993035667668201603905228268092518652118408750195609884457532619249638216098582500799788184678945231254704607399238535173355908213214615346708224405811813418754562272788838584802488803841651708728387674060699762347518951591921708209427360799998317421673785552953237947885614168118650351338697109650117459003477627755170676393262608572323297336497427857064005752997572895420923975951193357516612331718299015008918046767334319519770001935430201031511856932068346592951676881927166497458932850326610995242686208920431952460682635433870792137141277177181593981443680019323071137425534652954758454434582652873174912601030790677045459823601941227895914036706030622145969301468306919921972678835885645930645830794738356364602577838949376854728188438883589912469298904163347274027526121543233878051313846523498331879542852235924270110871240460672124010733992096472518489229732720735335030744354175462629380784441233161427009662891520037176129866651792659910879225336466897214638827543912313992047737409237700502742778181853264484746005511595677183511800645746059589923044335450771608410245062438048184168183224100474017960832707629313372296454621420646614868587218579500537245918154402317738331738709444225684657434542030427008369979667821871123702776961650779607853266108064071881204606947161082965432341799478713905737996571691695216020348405060249089114163410958174038441602005673874497268121094545912280063929697112548326201420753880781814256657365789560712144702812484541571752684044090727997162369434201817095054689465913810437456903478864292970763443445564812227410105466121467083395340194683297434802253806420183461962095683002968462514438509805628653201338786730928503921653494011216833881164344220126755264681099788414444720595575824027981382979892280593879031211832383113057204658315671841419283506479865086721478216992959796949829871176399264397548453922429260341928951046597716726665149101369880058021695325464462518931060625475109133808439041889496496531805141340153404109937030072818316289031220673175192731395845515704483796444145976904336987078529335240802984865488417823103252856030387624134525624455737382535236233243218602530908063286535996928231655249825201199211723924706732431240699047648055484588311667931774260909791065039414772520032892090073765405530718268942072828144620463069072884781270782368550033709801929806601071593577790688715367113398877319849721078633420398035174665533798655316478528495777274239515568303547816726579823859321815898570988058550918942237549591524637766946140035005747745167710009406555155432851812920931689639248505588041863139712472850208664681360751486645252892444158918168371331376780376788329681685132040956767827624727633625636595423859039244041124127905415973868737472151147679485186133928726212964734783106804758946460923999326290868305836491270800680173010734868554677507339372691125420754731623632741089182790893711409729545092588376123724781856211924097992826101504282201511986393039457739670631685609110298058068421824344039425636868301378830597230755805045556907760286392029933499578292904544376387113357895768008026906498518494277023785421349304774596283067215678893358393201407742982672552864852730611593920896608395675384336311562186097018584094440334455057295299070444994336501958910144734535565126390531673103435637229828944976767627296451684604502256279053387563204419245260211770149052312967643687922766065651709311143268199395239065506744197287610322176767575499854563759856016012149662002594360036651989333133385779495748276557651710504626529278687793378514979282326169877782057894196837722653669522091310717532702238235174477953904212578101732012742673663859513031597766434715927033268044358172051210493506296579940372565214514262699977001503183862783173324379629673972726409057377581859473041701675633372679103219751785182009707039663538743770512099535945831285492209200877612334132465646046152300628997668174639518867712109587697790407243163282627132095039446749252674829006011985627808131232226820017113922108303851235538619837791411477882466136152912652362889982621978946886530093276703698095845646522698479005431453879631700701149144465146534477817515942626357936356027226099773932641920379225231983171349285393207005545088681301940715891832609502661198546959158605835629506053064604347600831163806772890064793801749371893531933945181916903521709674584406031160416187632965351674092923943977559024039443740782925759715545546422419633766659346009681144931770423020557606902654940311612513501992771994250655828539822483156606043755145693400911366883835549310500791706333385268863652911062812011362841172871006266365932957774457361412587317607324368529164801695446773445000855014757440486959276328908844953398318924309396569718666830675768159659937318086068426128491979869985492221816052145992295330126403008045081513871225673870995745521476194786203841174962315395407452681410227998341688417492444634570387208662076180347659961248788168221261361524978647099863674322613265562487395842775454534118877496087104344557774723334170744822604300042758985902504244161813218362445456253739513912205697344182054027303609334598612133498351066976712120361900862454380784524592869175696459345146000806247277640512942719535269988260800643614432331316804035691601275028068333630755527644099250625049625020385373626854083796353876847729634524429998517421515286635463392851382188276201602565873480680351039723960528392909051351199814631697073338609345512684459235634463810206341023391159794087583723453501282559272640949947817096384189190259319101166088266763873488362839981805746497854998257684683815468261813981810347233828467594444118315611435035290931761326442827461819044882348748305750287260308796343550258541666063915208886608822852026268315535146213233703487477276089414765276227038479152285774842822229326589621710162041445498188227109066457336048966591396097348558884127935560724654484527672432005492073120952113603547236867583649352324143912192257362820994609807611064068001162958617685321995802154287857881318875626742400177963330940907907421480571953248220223828217631003590346166274705343174551783839382905264123786651819218018711932932541996368845889617896291212417359517641480395485934135818487335700280432038815791568059814574288455108428701003315690210334816213674674245778200701926576620485412090605763456067341424567121189329832362946892245151029183326481786686408786612848414021892332056757811088952818705180085298407115812185648014947663924498746610988786339328944417381717895837250237320018985559433171458183621815919248226291773397332005568304293355592442694986452949406223260377224307981742523864507983723704558884091736465812613652761888488392833749610978173344239815862931793274911730709823844998753824531231552056069614676058196892407098866416250016578310615535876747014576614555216250153945390871186434465516099181057893262770635514373547918460970610444709784941005483164801158120111682817974783638661741964669920711368712228241497339938308177314737862098859499546721619668633900506658322626721185715099621563296297366329833775627639549064884184649145406474008093747873508292671597744505252025179504290802444873623513998055323966063258130469598991409663918435770550371181269407866019809818402517413483006376338805941595599390807992598460649560740115646716913858938397112764475821576408018203954716839494941166194537488430453789322089074739660384722971797833150619555413630403632789446559521176421147966452202729867668598726389394035808406914312203374429593845445465500624877361553903485174476216778448845436694589211622792019634849024606703745341047463535587471967926973577977039828264510773763618449249829999537733260793195461553451498964402886158325265316537247871599885324493073744027230210472619554192284143376335985576621885550270560102959876910839715001359161069646127193330842747033771601326433824665583078254624808596114544095569416998205342007650934634481916659372103050471811692495289634122560428913212193036101331309642344358346580712802530635132579809753526225014123801588334268619997162839645774714175992848734635584298839852924516565349718758032524673257453038694578222149775440276628035618754465387295132694287352576719701264072610731485313186165526229739046452827246354650260080001983846099966245130609208530196555413665127141487035274375031173331152601136652898034327558009358435580520588454160304951207296763491038246089097773298395577457507888328693199001025713300034236284762098345514331579847317383769210211552316162413398071882875311604950475294549968027971310353813027070491216143194623665073401218591005901077284503321791579367766650985385062723790175419505206110677350389702809277738421169458244023689602127902598844442350667415742769518964621894134584329151220334985074422563253238088525585857150253128515244460210626209355234932120439752223781328579118957140253602188935485140187405161900832220069821425410210075501315248167782533140437395988341550781468430312663244218461086575338019224085765291383273770572641366931881369597032981993913593850080653312255491377946380165539090800428055199289783865205286431206277267719665417456595673710015224638872291270509144473443887904916532407667226218256586645348293006276473656172694680009762184381744861670022085326052758334899978134007145856757029727704575637671624792787563722776490360140117320416480041411709639285767197717824740378403886892421634678807135377285501171854304915981361374813007328646412129097053773349310047055592998956350143694966366007914308248781623376633812915724576183516771326644748855303465638385384181877452665414065306314250226017833408470177011861896200067678922272137351177390895110234097363806837625268376306977960362235389576041130078625643251603433728459128377916774534887791312740303250319962660042627248666729116641786019944942397704038843967602781433630059686065736864995951212931793877051475030956685803951246236110441206487332638329694407330362056601932772566100473887049626623304313697018842995148506461568372783858344491261148375728679142191612980427308450871663146743631272942989296177017400066828216349752904715744095185060213556661723905913751920722925623847161978783922635383975641966948794144350999472613516654954688158457694552869901914333322136857117889276633768936737722592674532302528401052833170154368210143805279771994230411177533947099171942805763207334287241385272847726044506040929094404315301268533290106287545919364964197307984705664546304569385890936248978276772182165798440924188807034922614187593824195173259416227040927629550955103026683522117639799504556817379180427738397836933268914134126498288404096241065831218130865456472623723184645509165648638825902204449672463542861466695837933043970968275156537116039386769206113778823593363019408124814266879585989787782224235751406461690508083640603651532369731554481845725418675102369421372704979554767069643908287986336578119621287315243597524637242059918137497796260820218145143298467249248760200026512754530653688283471069725814247907444306647532563791193274761800611998386075894570791598098688712638166372796190941634599403869914366744203724892925715559147369142008828631144359098346097909074809060748356940123746096136495505373726426490570704364381372978603191702086047440063205193391500144387625050977545997105637397930974107647456957823776796083317724904493202576108978041875470156668736953996642022357804432582403772367965557310750066136432792939232570257533641792861942437421812629552781677754418959171934360639203512254358604342560421056085012805927961537143211587755148153146945339045603138854553450467039553537022731201944562454493196459531925849210750708403575954176104888914251631544085380586334732089434169306551898626939705670780770298298556235167474984098824386805724013867781735049425162090861073943969965836943120809763853049712127445460679815813619181420601876567441100153502021810808953343726142331221312208880463188958056714666293230585966028143366261148466381155461413930358205600822760916527969455430766346113503322732066287010392870706861864230683568677540519458717671259821607391127167687118639507139936865759238963615101379917030045973824273550803151616407178373430815881268161701405664057619197397210118832481841816490921989844395118419679816923360117244467068083153061816012887920649090864153533243454233854734463161825869203175781115889255438854824838853347613347163281178744072770045729298806535317860250154982333573192392643027236789972958465825401709474295711621601074242154735660769842791743496743533054785428751259689065878598063343634729258932656813172445427509993024957498777233727400510371931390060639743960027370204016778751263143428200938112088470704628604201830967574273774679720945063659103203235026344181124827113203643977575105745933732716829653621028418174472082983939537900186718387938957491154868826764592178695190119849209848071997188590410598255900893614604022276326033007639468756559660736138801514962168081026045998734719712131057899765711494091657945965868165482916848160562134230841036928158574300362613298633797234178181828378318895422916784632858791308504786491142149239219333140020232594419521832747172310531213778106082558961360982941530001958931210432117974354421250026789445943520639639590271579099571522770145334342101876449017742830285994695895476580933588516444890257749334520928797709417660191125796628190495511710842611911579729491702126020575940476594522620590310185022671801666378098903640186443864451541838622153961544625315464352914607974545423436380516293417313814140261172143438029623838039873129598877164983474203460013643749258760162000446037898339970087178366208700607278879235980972167707356805280777036377306528693502236510263113525561222060974903748633442997183984566599098932009781996810127260956697613312148304739272890044470043331265161556212082210862091588453222030984125237029578637568047230451344405574503890329452983603071022657394658444806045005429145798066436553239651776587706566781100167493371804857930070373271604160496841779107232747446092176801932130144250816493032853843596838238191212167891199973841461623837248796608867987883702746900233389532244453901745739315063002800497327063433507980788874179561777823720930837425533311575728773756312365497233781138555271414187865792031198988463067026961405126056656146054429817111692232534786637537158602566830424204168086190347409040706288268838695045384994664745639034897727977356274618878341304538529553595015043948497701004953800588511071039918909765655750641566208316935671219592315741515175300616977692426246701123157748979226626824261975008900739544552401670829969272003749046276652693351683735992644325843366871477204084623923384143493878208551542520304889335593202037451199389643072495864528860561245633739124097541692410130329280656821286308530094785194621826117786529435546514312876027054050087487776220339546316108608748518148853495319087509601844032379296819303326280953383828153929679537992328318276886995501862208092425996318716953853756959737206659461780788061463848928324314033507753770301481744010627809469682823845593985444519874384503417113764158941279064956095719804337185039167646649666260816131322634979962935513210114161753577488155808781099926076808409430167773517582877489664396816303219560135367671486398198052493887969640750687587395944777074951944406749970957830834118390219792987347995070652173754922445605120131498138816009511936543674618972950406446669490262333259030913274838538210049121845765584120006170881331011528129033921430281970539406560073671719681393165949783540405615892140535964100954378114625338507509309148883539796018396135013130599350536480906928214643798245462757623294821382801167103923871415758009195697523410098503795784294775868876877941321856154231411280322262233015878229270853233127642858269088237185897438216102052148068656512566414263392993927064756363904851521618732522127465415783494952020914935187139649714045075676946276007012116312705414742407297210765855723668061212029005042121735510442939673789173680497220892044968600434494747170917061549834685766985251047255838080359726981595752963238952852356712289797683752562744307534486497772321622221289764441304917422298702951286641207316749199702532852465535408242806291380556510208937863415178240909935005459179162881623884882969567346424696055242430807192356564136166615285888211941042385807834043579974279389855353967811637676716748293194914318218653673155197432215247834931975237652465114610512957270101886999256596653684299600517067258933202926083709225366721754307347656469388979557422364453035885290681625417373565035611131556439382752207804493256966134442252529801024864700750335373486373765424954495026161934355181591669355903806110219312179567556751161252014518479633899767291744984579271961643195499289286032624671006292785179026674953833252062988862422967871736517128904718127132497230886326533764520488222767445904668015811788567528217009191667732468285662616214391610312324237987501035080326505469392997259282581360047694170869687731177889866066003040360915965055357738701277374870569137566902553685219514637433638452795521705851950025178788817941149060775942732118293992948152650043562104837030341823934777908049859500909153208266392947594124640631843579078294547217597986216402361835437521471574782818910940550568653902200809643330556998742523422870591812181845520036285295910176648845984151667217437054688480719620453644784527429776370501570189582624749120566388254548504230354517871340858097391654226662598558035595587793856614441564890780467650857517777966667436391071396271838501429041303156208499813962563651603968083110448816283897132384876613782844892906787945796675687872015168139294766872006547839885125505602345591603778523064485858082058229088092948728214626333690924575382716897500094376192594622589917942749830889450237770747094908709081550089846556820520238245810869546877450801847419801521454058749309232628804947794204815440245925045629265416696294316975045752667111491911734158460332341893102544340487802306088665383064381141653443833682567479338100530741594755447488947676106200891223191891242733584621020254580574918719778528257210813387993565450490499828492752666001153304831509104364566495761115489252705985025018442109308570412501818106884655813943566259175187870970118977985796190125863559377534445272507540208747544173780303953594958275696316409422655866143082441413262373302091506444804112061703597104637971804033010922871579590594659065590221190874066535517096433169913918350679984353645537673861283112618704959278543189084720667600618491144417456954330297830088744795587510314795663854772543949477555863149128347840784192158489838305477255111438521707730370282555713391979187917356003762351241490778879851939940916156014367541470288677266856168267094685441976424179912238050155473565779451178320957487427360210514642730932158491921944127160741146350688980421334092285837995763423641540473876641397666734209952539645057043626399327886839194199569105666895565322053878288116065633885827116835574229869211452631956759243102350496939111338134922878500480005321593255374351219410088027821571390396282481989483263384587994041067584096450526869251401936204853185758075979172034484843332720438778976371038865461747836642458266699718463148846457252423793538501871716538318038438605735218481363823674670332964408829153937521305305010067907980206008371676052998938160385299353398295731367412097671021447272787049486762067962605181082819333060739069249320674721784243103214702736885863874257060354111972631814146574666628936477246575617226445928465491495278708302344852011962274795879598319199924193473554962580530650593462612065717777945356392398762399614639205490125638003069959947089076037679017261498649844830940871831976124102256710161765260752006007027138966141053326069152961430338805355887107114007895360467416231342907698674836258790589331958597681859920251495270791236734082182465914329961150955051745424331559638552859264142568822274465792987924813580478465984649446617483254811612102892865394219742436152962348820852210372264673851432913584523641330466447296624496405361235061115992998398972136218084791021643721438903682470655435086203620083044244824478580657555173013556347187152748593292478551529951643356861783772755314567015934523350991663765379625347613602667952324571573411422750200954509085663490296058889310343062739121061054432335411546557843388472474349783752803558149186886606688413327660612395873314616577591152233883907801138984945081154194507787597069744748657158770352666412596701899437669829784231287538116485136852139853714946746209125954235164116896890942275688645590680937593054607131206614026209548558512147754351516022346272744241287770967598144864592850487665164363950926333848642701177896336693468783585702874541028979577967339911623911422907322866399895810163827333986443826394211950432454565929343356801262672137041955214465760022083117727265847050292781793361521549102733968266697849497675054616248153222969927473171765549313832725213470279772500580985927919831447983632181705099750256839394601504131942100763447689639088732974456561006152393545819129516266742315273672473749410040270400543088315204342159981598819272874075375719409389991817397327004818988206531819440059682540993944166812276780095028407808565027743644443589563758855195867164011336135746111188850722310145138163906388471743570292387242296399260739457468411929765471541298093043025786560556410243312337045814770345654877844374361247534709358919690989259469503079455512148675686334108943278114034362049256870502694744197670069743473124753563385561258260908829940292441899037756983254146854191447352995921128211938202991215036663840476904373591530329670241929239635477389641706318610668964805000435461336232801615401275622511084836826995020302525353150162356835292658127572072433337536553702429157787294815011707232647383327211913120690890947372705966033367037347422509488852076319865631406685254863404894494836425452219986546534126758786767452276195599799368604502969033289752006244599024839644328502735495562318129318857424858021666491590825602999747456165236465352300369925280281954367273869731031359515020301254381964794596854662062777364822019019348706904135400919216861673853558055661686711760118858851106156006582562301312828320412814864456638248127175820092194238700021755418221210608917354012631740569604586457943770280023930805743875660686292157124392066474215754871601462442861883997027609843677820992046313095079344741036996917331065597371175949152176333682070341418860458618528658974414005295531345994972683346856772930003052263349495171269402826586546822012522425082202260046690088543960099106219211793207769131687709939504301441519696649645342409461311187957986628802658349710543174242840946490348611161443931443682478205558865796985997151792084599264265538753605646094284477686330968183366399022778450960065369085631765333493631507688806504326294237068478980685993214764969052715248140504490608771500348759138302992616295789621094147838112630815997396315687833130499870244839568380558020600773328069792981279121179233428181224330448795669828395665554548811776170979284335178785554370560008451083252186377066809485897702511310632511778781342077529836084373453661996516228663544605914099297799842149190812055518526018921741460358411045119970025413251938244706065725080528817560467193351055073845679379523207371366636959696952550612587004845574668287062586785355230533674393149406369227578524120231490201824534122200421673455360368918141065757767670176011242105559287297903974998526073551698323653595080152618341473915442512147141091444292821802301593604665645712396096712332528807154863916711925191494329558631396152058291984663803692242916376715594425544751997268456087160418647726635627306748912276101467078452459902497824398437174275493280014462614810119024522378339359607855956590117028234040942647432710705778897029047599760615493261391384158684723978190504770062669149772118719144821820265024235797551357944677843589989329357777913017745438031271268441118092065910024627667593292534526998205151980488633837035220462308996536133177595566446108757508512750161479518461358730775157603277432455331191408439310603619150768502109684960042593144560035748210823178798656128771999388553304558206748787084412136311151537547768491845291802163415575129440606402745835391504987923294140646325893084801376164546657937109464137125856710042476709208851170827134293711937268647771604696408008328784701767748063019628418180134963681749537736802228602219481877926068791850693007614349379816365479577042786795706649601554940450025074602323181817804284631323004398981121737075651981024518408390311906030581639552851250775506028184591692672063729437277252485609959031440135991181111991148552925665009169838192272729530133644965169280415141481179824265736078385394420019941855635342179600501776821750617336671817329604064023793832937860267530153612898701405174236917038860377977252292235333460065347925863101272207153054561745739587816228185301942555168127703859949586036101238100273078714879272193356217640531915050262607604925323214634781629652611497840235713648256559117465340703336056412669121869720831618092388954300127506595007722355894076123106176693558909185368136606798410528695876248636718457365140407162250737893667236928067418381494381400763131275905669480690932541409274841806072102357791368611425654619336463776164239305755536209364587479776326787098070880110853892667082679087778261747142527859269365651239836664141398806781494789454766376914098180732769466671704995102330194524153340358664965416603348903695924126807955664016247160452844155948785722073551323565238960703381455759817495237893162797524568480371937840151884633035765295605014396811118434575737721045853109105565197187070995422558950661726527846868830981515035717697968495183311397255485493414533991991563680522482526161083043078988145244375319742345157661113949957515982084258393259555693543612621129191371719348023189605949765790958538528020426152067394852899907331133804774232176700760729568070508559671099124755002950393371685100948246906104113977254935432235411453494867621525564379010012088361050293569131894190940772313656889276000745712229678173375981320926437760437902265001757775659787483739165708588091838959583228471751680117495823254200909336700291218925004375243388217900809809928859867801002947776407482955685635415919805240516642559616855946505989654486567347869926000089943858930516086495575288622293581491192839337486624750111774162720301864713333023404096020242740967307727777329525595744622175969321506399711878467750853275039010798528760541885125952541714713543935442080668417767332199312668682984873214144928235984701288858151421910499446770399438324694245825841791136563228174809711624437892563167863504015899206705062526136777181859807218660238906738165086870569308294395291915796825320764067014041880443869070902633000570800604645230819847720114771932487645660514584062626955717775452246483028751276341996628424917157984416232105237484300886055762661338375010671408601816350490032194623886004150765825939410597246578652231021811787293135255254450584575864462269527768626504389029376620282371705831646971498806839583533099045812547838198710341423048249985227501198146591679987677734609505323918085409347076211804939223087899782123081396610746240978411890550254135647440274979130753652878032118739829273293980637486370229144335274677858065517725255990719960524260972409783879908772522032326661235905515781168685986390530049274668632292438331050849845027180377454280912442298060018392029495394054276258067487317687169068265000205169802381891090682480039143661999107432687455828810397761025017522091075676813514687412452613786646173196601738892152590481911072690611437936487892539867801524154577996899164061392791849135799715271814813483785095856390145365420694426378618191190191608100537084621421303261491425849168305613985482626869571439136649080657749752282489539000500133547179382382370412167040263659746937861131047437115884927476657049929195645559671929686559948888689402598726783312628153864931387467770985542732827250227376159701648023942101089087962157374381122722659433981265167400097037136794412739157265835210272177534418774853700615904992248688428253508487514270013135835011463162180543619606630210876939345682822163995626699434477467677875528421007238457510904098907929259403895969173862252677520330587100107076240316968665739775819089261093966365009771176455912145633348314125708432682739900379869153809698738752121295994315077495500645698501935611064117675128673936544551900747955520350038260359029631582144472307252436148916682197186740824384431929022416183205137910319092542497085241904685487540638850277363542981688543271955836158489523880948057232401609544513007735525762403242896635446207048309453692989072349022711998540216476778401327104442243974899069789694307867016092968220854309457207419972380340277335181776111622661620631920473250084221991680850392650870033560712927030108785526339057305760060479571071234941323400064668119208612883822687806083973850152833103867052975093357343488017852010096919613064619684392086765393862079668501740699964269755397242032681718977995938455267442043787830212047455897876695557818101045038829876063847669996888660891997505027542819929419659877051859017521967382740661518712908702154383783605874429756882916045620636172355321975504739761147568038871028949142186470376022682547390129169069847237139416508118083865627210837705510771496237094612610844095919789009564401218531925227555236731231021062385568336084192759082819214165188599531334506625026427249922387223322060497856053028579514148466786327785313436457273986998620341417630968451920269471094592015609850951215685943064476978752566822663073754811705330772203778025723676695875542009905604315810152876858087082517125060148508823512739021134536350487667743391249884143186057386194729628016907415428200471485778279537789688614281625476785184508328072881473131700856461886839853872030964286222812782386346731718706208038941280048409094217320095811243411441707864395046087117338392499704180592149682435162356527896867540575283385139943157077829455040501883723281118195171540778190233782480984804442382138680908755969395651388361651595872109699562379903449694752945277324037472947498888826236118884589264623675825347931059338743766379881228501107566085506960323393405784906656198305332790845119628117457415082367392928105680522992194882373684739691071276072066608380315101990476734262055203178871012949594951990413557927738112151967633164581316042603021723310510122455961282924779552512043240064268354944062544994904109577996881012585489722404581682627006561626158017891368149653880472079291899937198165265728955930931469755545737545964904720086139034614876956698698041328790245933181470774101879295446130545611452623765460264933442348557923184134153624795297299807443737735340492935948961712978707511425569239205416274353299124703119916210993802077588053472029454325146883044913832542681336415448997944837685926352941589438367158073665793542757728493581360636196437003787328438090982456300805033881984160625888188001485381406392509669004835953330119472235537895376819617932545263405980326896717234664231199332094264578704810691783228215166144559771264290093220208375846577921229745775337450034451236367115699633756948085852495759194695403319001814917030147883705554368629366849791792210216608335671067494380871772272268944355359697147765436211626304056016711947497097988514510793302970849456248526916639682599224468068247470757730840486506814823594981263474604371877914312437733293361167445584751799884818818544188230805025166973117581619112292191892815559166755217748905262780997137194004131558096117724888341860978880666439666899066922503740897616649014753116209645742753851674737242157928470762317870648229982972131429289847899194868431397948625054650196492219349113047982869797861388200489689770640680862651319547744547345074374004044298751101047303162202365339454961061264965039830807497233914965466821925849337361717412305848560657118398225033472537922960027686260246633897719221775365720960140808788420935963185286234905799303983180246173761573877837140282735793792287372041119524526000587022735726505018740891267519665471091365540167007715890947582094939945451518419171652593564016870169236280589884519610644174238356648566405737426993899553860751021914802537787525446527259444412844573230271065190401958041587819675842178144514577374418699123750854395348402219057578031236796407045178532210071325789645301972421516420248574934167855406492376976227268838047336584160517637453608434086774302827912693208152555872040602464552574939655568842576535008482364821665359836637126395990759113112830327690060607180894037935031551035502022824030728134283814202184302465944026687795294647932733656178153477295520713733378003930124293792571528636667800708677861102636274159434545060582979416219518972047165911111376856885523046306561628695258250030831686621584386934181027909195970357844253034122113174091990148355253250634189072390230663340313004228653157876660065032215243366874309479682198133120848005595358063442866550869438776183425258265120103941153320478113642401439923411188787962171041703825731538374292411897364870091282977912880001446782693588570342333345419418568937405446787703388889595548074133512092607882400776453638270458667738686032060834219026860162058075593576905357111968593215123212692282238781439988911575961942431384312840854543304294791127506829758970519072230461695558332850210398797482571668611363572489241447318990035822379575974207314288424978463643934190937930062705900989008224986722845743092496179950196223616368718892913039408781244004451065167532670533484054231998725382049752200603771829035766087178877656259620588937304403294359142817166093213684269692367956233398458039093369610975007769064040196739911917882420528274128791550044516502920414353413421203782024576413033972410569189670700738489773577337954773034412689984363944784301090348918802474964821894765836811884655978390594090021179540170194507892899908963807885298866376205228761382541895916903085355358088952733279387728823617818301318431493276840348791715015866393881607754538302632834634011926203735043785188529836772805896196816586326832434921702149214366543521388308977551342318610627421505378055650853003074454613445064058580973721130503979304311284590465858818114252246117420307565544269350337750953566043150414786183216886408816365306057213138582028828077110423342254192702014908640919451490337781333305012678043436561869053864546402946099730885918923148200801653472763069217640362705665445284947905844605291376180335956538129752198257390422255799422140120741584156355158148597125454876080490214793319587462876868856340770706745783634767269241653667791623996827858979879684863820236592090161748574115578294732642655827530653691708841592719507281830762005088297721205732234507991716215515963242107259651851115366678171353076209681735553070101529236717179913034349858245733554913365879611441970550883351061231716322570151882482641636743024627492517837255891524055120481755346748129203456683838058410391465849079737497630210819466647098751344005724882120165106163867845513128342289311914416412040692076705146225589069049728915245719275085584799018264284976604197523689763575509540050971791574867449727295013149930979467780994551109435092946301711713136346733581948520614982125778947841819917223687983476993710541777304970302377538631678908450309426530546849689414563585086798180363343371159445976538561089661754727366084111331783805736128934290813500699499541641170670375245003591594360901182507895442655071922527408164794540726872466681996378904865841480303776041212680543800683601248744398070471648657337083895975387054483534624097800093586671266205035724601533325971723310052724913008746089455194322365870446152257650405342492172483868823060405164873223077307115869741907563061137197382484111084982569698406940840672487515925279454514125954183159291855371824536571779129685147363809681567803333771252017807183525424216361794415652253182517984913956328636477324360228016002238731977577493163205331539987686157814563843351135890865769387786740971795191890577195692980944797454488008981530305311977919547923583865735698259333786478123867809781830745119314917415239324747780585014024866855250235900447624360700432493791296462227846940792612305945442100800559613386010068832402561955417668992424153941365953646619459234793169717633212898089821496865670476921400626663403963492729654397035793173161688637484433750100926389117156391234470605683397350601793532989002712903343655176258593761646116010330738672326198710901881451305268427399268633679172051040775789015532499560443516205808938116869430518735166777354438239567213470072168609502075674106121365322580445564271474733020057897836197688541426684093130822343736478282952840280567161103923386674190598688735364172882987730994570681637727011327338040703653753680406737039817701766981845540884355126257306143610829141861766083308249710171257785085423572404385026575563749525437027540798610562727974380630211348498281983217116964343521649141617748221079922621498257946239182897302517750134463822255595570536414288718210384058824977885305243630967056261690624894017584599939206314106300938762665267379799206564177086286107620847107933277467886025187519653180178532035723232777189978781352234189599152822510215739968954558598987325766750801136936866944545918440682078232344513995234826660118618915883401519553499085631652739619878955257308665405347632417850308992804219539724300901789807811801159687821426288141151102531975536442601979322516006364192643205228042948881243663309685945656323691779410623953194862545709916465424033987752583033015650984387172057148671088814980878029826295941385915016145518155458786353169992353402259691742292986940878957701910512895884028855184953070193695596231672224883425456631988607751973302352452590320003849177814481362909758471286388949326397922401330720869870280309093544085654549603847970151393691264019233203427482137465551280267915602972211277664041733865921349938880947462396325525535214827503157534302423060195211645622794240173378011668139896269327400941319284931698008300454616363903061952957066541863458886655534731458927410577236158543451057131788056274121428029558824264676496555960980122133799297367567601175147502565908269710561297593930083230659578883874195485968294715788468169610991525865911806608953404297092766177421723905755779489595400379892382347516701223450352468165710073270799422710878952897910415820249964962900989139447197787268096865681346606407369653584488732911161369645779764207152966884594796230072483888539513846545798541029708688645853179111740606018399491600185693920065635044584682391071536181624993961245955870942010118819310579240516619960065237536987914001329457840035192375697954666240673388153391334423874073936825605633794414686678895238100189230021602104203020332514531319816864786618641948854137059093658330341583137839017052848114164560468311592169974222605913600202990777491491329725082081887459737098053440550131410271041881104870380114053603139558330189774291288736649387132831586646259474345401998644224236362527328313643364390914497741849665026225982404211333199511753303205490679169840779116426516783349786632305691436737768626086048295006773935847734592235926760714543996454373972839751567989984006619547605011174726188950169088277962533296673227068658776039938838793858103232413053504237608122418699170180309294109297265782529437874218563861522970263192420637954277095596275955106177575402798161542089716192110422872195935522048498035294818193965521588081996613577355147221286247021998002653255081043202118590107814620091088197442607353580083640003069955572740117549473837099143842107637574897647055322754279161907459922857433705870502643944892572124210103571303087016102007880092932854646133580312778537520143580352082927541755274198109549534516846560944023238701367528475214901831822827501826566862397064423270166715678485797485202670923921984740043226214567843566811214215043917137013594100481293318406159847525500595771661353696996752798275404023992740317643138297514333498488157161578578935311404806786696836488094088944655402388995952526406529951984403605262197995040459638965085295397513161181666123331261887017540319658526291998166635526501789663084350750749690891042981815622107982882230786752334680445276037126213008220925427660253975320906036703722134185401666362240645990556176738270943827835754336358129668749296488542921511599482941744126452028177966722571710380626626584040771563009077374507899145280010495186235346160464310529555418746644872838893049455295091759990459108162751809876314749205701261142297940217044408492244755675726273530962835230544932012627050444641232511935372820227645656295779108867328988130167985163584328826084200322084957866381081864535845617196034126953034955824034449170301798458408599934937422155119778533561308246192517968329183488965023291964789800048579960946537786012445221881846669436369039539932799008097820614421540605358544084481658106144328456814981895765595128862748004174662683543360869325629101373209076982552629559082415003581100866464659206473571417132757682043334624693705870725689269198011090310364404418809609248919531552404729653768698777188956722485253802659903442415886799278616478893209009126697300966604341534772638834009103134171772507734462334922060058235119655092058238683704915494999096876196589773905426406595426688477493452216137034510745775843432276215699418622695261030047650628070677328087118191728113896190399595110614317528524958979217358024948596316359187154970952393910028346655841396133185364350414891810278103920256272500242398063742378615933948582336698752849662780907898308771004072424164856613418749541374469924303097739350757179401925753789691132656101160771621615202381876700337612537339766734444976390202692974695437968902384381163506604876997300670880184433159953857685735966004323708584297855664006194074839469677427005615524989865006335443382844605321073291155463190745628502890344570887627308391445627319689976206037360566050759381344362942630513437496547828976172899187607963161032267365404978211189526736771170177912057679134444576796123429019385194263067319847674967442723989910148806154414604370104121191983636141972697966796356286618654187837778219526258656617084660953726508641515361744603628261287066178729098595446705245620995884681581428197292970910319410942332278189926529433068352067921947920196305593253862920074030283733393297811724189732301823444210152381272855823886748148607147224270998609096098048408590176924585025878287919692367134988836512622678188735740134585346587302508010991413510816588466283028849243107520290640586791691036230933014929177743782677169130905769624945614479574867578136419965592118031182570096041823535740848825313625624411239043715886707009935744751889484067389448828231222522150902671495116964104067224249632910734955834892058005873749286292863167078847708905441531742870713792533154756481495017962154271285358892504380322143291064541830666807775807421743098696708297328016316748363453723126796581830012163396179097591604882956104786870730430741038443128043167358324307247726466675813490206251117894445835705463126737814735562466267712940238497393262686177586020150731182487833826855073503808873667829163197913673207773389488301786771420847594469619781879055161728589042074314893052686252124629083383323349188438353508842145618794412315765668064583324042951435921130462494584992520111440574535290704942427380800251945855658269141539655284723017939463989267910396155022351971441513616274134096972223474587838729780170221552355982183983904233151613760322661740156131527134476600436793197392487874625815372942202971172546897853844573900971724750878219691594443844169867853077830227184615455613516586148309481275937528845905047698643247613872640176247661618977884917757757759005198419524096922613545596432036337774103108189308202770847490176585221970659383170545087561469497051738038499093466767063415445325377809955927262901619987115542011206907422947783610521573266758104740019916642758289330487788889223583378732302018904942960819268310516442502689795587316732487953129866701319802222878281876228387729982797631833432456111046968303574428819261040298264199631462797563223897063677589558668980010345385932068876841781884263779561474153019744135941882258971185294750808304915780935405600219522289653905918726810705409155567398319128560659865312864296836434092130099962092527711752199826317952699135051418401833468245092584404141521896744505721192735463528307678147286122925106879136025147696658694771682607732052681549385540606366260993633981970821064041693213280503346279353142449527599295779688094448348569891554802150305849096155814891051806507570189274042934930629046990289669744931361854010174295594053735624583195290720325157118854893269237321884448881921697008460408902679259595557238338050392805471022256257126925915092358186346983795823498345926424141616605024482186300729641683009767419801151142216019150510604357754088353654845946336697110040093151482891650018932823316478471699598242395539765143796548322865301602989773836632527819494771741948068342294132281382784284630086633159361927191991272569081148828608824518276170738297893955348862106919745233853843143188247180342343324268374084435837843829767150741659311488011992220481456926724378571706315033232537694243091712606876536198727735514011873056005006370222008845526415555185979978895891088885636895908003159103835700399219718408090419922963966123470252908710661062025856846894234709177047006210028262032044757084337674305363145876925440648163432543565465926240129833636516134130602864619969693940733400051509447908590557541128831399384745374595668139906966564950433786535502472494608992032198368649762577472899459958570005426388504833846415875291967728746278705428965988456494709156610259207626786824088432785781091769310818860399429896550962650648512729678966212982143945317472853893692933233025330457315588262615720754801824176790175715559265094272727227997533996335681650713331393237620670644893605611164722428841785664707921884908890471384608592882959487179051696783415757385802666135644511922929613114028769951397698321936774050965020781608066934146986253912598194721137060525438085542363802013571230651189630772882927626090966070020020066539636797210928474079897506837456968027028303473975698884043726497386212738813468249582916363142116002377653027052000867583341860592591970600319666648231411877090423613561958480984901002875531513313949094424329415590526767262603961220515191916580538146274665436393953645935075024420984375080002298801853895443633299039498225530390318907468693623692737454052267866054738800214112585297525804232960138557429566550716246224913214536108000114528256755283111082569065108094782441640936448636565475685922924591794692777090750767016352779262903187251458272492194446375292458755460110264160872390195251774436126029016286147151839945191644431086575364658081927270969089682240144239217058523558082679377501084020200335774092844277940460379819767994244576751575064021728544123579887590293593888073406914904834668586050136802104687143203346545901297175126062426987150662385057897939277862790745373411160492688443908618334653860761680092018034231700598068769329184811840343885763467407002049705995160017945473457332763405486440806657352069194701656544390344875728460080337898754091914620112801591236127635559944930250196709551368456247273180208308642842853204023403514619869474874033509243743910335758083046636146375387798113980886485197055325040976701395519987467130543597918903623279478266487339162558367812976883667518845863247827029621862043602788267624086105216768803744679504263039775573394805558596824590359824766941684457941200426190366164243360261254438073967212802914920155957408384052483231542310449816393244263284820552159961240571909687352030065302189023294962000328019143477975900417096458076941055446651979247031205118744208491427423566080173615117780180303045967259838387304117939332446873338209989873649413168891937590575141972756511151946678298032734138163883442792856079595232407167170785967695151282095062045856978848779055211432924030510639443561731345213970506498957982926774859898848063474657986020074078790132379092081811788490173501701700799059325704585997729270044467333497428206420988919413357389959638358312561057980762109927818370610338613709440581771632738638714201421382858589838428876062221158163126662565716734145702072760169265801861881113373109779915237506620835323368993324633599232508758045725904620280822801103668970773479344317522854282163515018244335232778706365846941069050563009155890858652872560182773587647026003652291684243870496989885097107507946588769553344167152220274097709501250309478997792551422245497314679202465251669206681388416341398437288353522933298284847098226353815004418616475439429045571912695406690462849906698927333506553552452781239305729883553702819014472200133117349488123295927112654122590156214344552869270131344987919202754899401894068080852845474659477179640384973233277359945874037999893391396438472098125206315012857433339324934146110128795284931747144882170731171952235277645923785526949469360920517838914867668230377010501061495463586904309543204156815180192251665571886715019110059431643577405933136296077391614606086019427116677449377154954624499491378516251047852988353471045375035831678532364665261176713484271968703403834484181633686817538444242918392708963571595731604870972789133020663297141347202768279132189753510916418070054671364688386727599047254869756621086770895203023250347701531624412312146421301958318632735560181105343030309162402927862825252624290417801690491649770983552787702510583957160222089781131485891683966724053932817370029892257004298488536947370917431712475293407211350152689736071450245903678075678737753082501515645355727721568014438880869403230174120643233476682343721075298555626425466226998372720035852890347261333730576509787248313473355622685962442645823885746410351278924006238838256951065680784198351387535483386003453377404642086129777213339336489344296331391423403062558089476151517191209611438039120326334991124643832225390045168213423293400099794911864187047161436616947293298557237540401835978198426532945001723020159685920579232631559580552458947540650074537224642878279165180653430059289311756753214769139833320653014348780151453810126065402132283348582397188585902348336034948782837017910499760283951476117571263669931801782054429363087413591327579674233693698018502519231304197560921383556311803831036561450394350440362682278554310831090917429591489861773897494359431686844998944533009188389157759727462222172706940897913020072715169310434967842289137825043966666119878754147966501218262083815930115399361235922817309080407910713848782877355515358623082311022556966141442689899880153166995656862026592915316020543580129717345673273006084117882956324733461936860530131989642206212194216828929423537184522190340903983080764123618497163074530949431756714659026137967734224069944341663172079445033717688213356122245697558357057781872835388271342661958954789188410757514168261402964396501214908295456419641392493900201018675864853758686591008422736238420046962608579675996288058439164145515487432077646260559733822562644265648037171119057142976159272134480061769227622448970451508011094421354150500540222128883586480828590003964438594552715402415826967284677643538579661435282230361810009539923103591649887550100408308612344014538235578459176907275063401388008136303958465341602746947981665785191956008070377144101948703403677450540804023666162245117283394365869337370788022736962927455530393981015593154640468524605017519138511370345836762310060837678170691199480523624421424846782395851266960851132395666482773030903395556591098591489787178587577952887418965790421120569383431307350616772547758600849103477184861986802872197000310304970476256460463618937493343955785169393668186845168628722863426780712468346256515858249263381318743048093087971032307658672644997109553903164087678962173985790667229402706823071525412417909552910183523383343646314448579484189681499436133159999754601130297004596217996198999392942900105983370564280450735671760766340282188979467680500169482795066043200111330015645770487012227223170679360999975477927066842785785563279926148341010016632479615440622456475905590951901414948865752445724887092768348148134395159526983111091659985577704997661661310101561099063074704369330197363922704565632006954556791879559077745995718652566132980911487694363073000156321407599014191873761381223683748960083045060873230067801525145243384925508601863662927373852469045158416931170827470476048088416438603619083986104920955657669018039604058444445093034905835084820612357603094571538886244971803367143960445197595919118565301806372943467467481536184236183699250378835236215214854913081346681270006046415319371558435019715720750335556499522810668743238293609741183742886674876392266217526013411923581897557432644230096610165861323231174624139805344024785741183465588849227404123330708463781274837672829526809618982204676034483809270671372723116760045987361655217139276425332095913740172942966843869485648173943111850479364751276055276778535752011038654931579187701133367861991466590183870451118960177939632903757768229341947290212087519310534770830722115796092137597035113792750215435971166779308747944488540864536583524700245823338422186090285373024093993985196335402366873320409911913406477087962362595020449480365482622600322722651215704947644981846483671601678600715443709850138334618851955994782019229903527244340458694357333107780662338785896886689990278552739967537935630553094988735258866262205983462854022205822749886020559469434835332079194590259776364030331171678260299232460321018888170273271634515911531916943888614133048255265927551311019645637926170095212513310944728013058656001799835566673933322047845091503756750052355885541053175690106655818936357998695745623708780478470998555327895235218853778598152936625875628988162164775007854052634000817240575123776721748586949723462500817197671329268431931419735593331906537328327154192958538196988143374833208609171613334654933726076780275596822475781207165776349160600174212656498506585944712524961501344706360760303511585073270721739584391364566859405509814438144405400480605474778973763273192437288620191150765181917141481090809971197530066488471515458702926931956354989449680197259987215536881494448992007299505290947218659041239510156161094362925854402190305701550696198782903390335740020448993341634107758467189689464629374624115271506318294456344247865845683289885022976466012998600176061886917208501641665461711072098728360536478626325223215748430052107060765390734476123335382883931514376050952906127721763357632671595732435223719771190492763241811068752915365277978805055978432012628657805786432564073723866270174392262245074239418238546295323006402159221391262320062261906334170136525350095910632719022094204381684017134794028184820173067991077064428704282556351981427845055518893999730251535714007539463759469277261735814977781725056202372753145169101792886207115252187319179212022746814963539288156729103623835090167737337545167581087413459808709444163212086472919829860709010756204823450036611058621917154038412348994020426964472981823326674128214093912739969771296863508196250651023049932949357660271234406926403465505298944083186777418477456168818457846639867555064102320420831130580372919330743992512839366504932144858362577761166856278925716657797653625649750608017133606980423783806312003356729679216304980152304253522603580052584316384476816588741000787981531076665529089093089512123050469200678059766299041733115394545597388950980940122172552165151016876012425627768328841360779601599859217695405060684278175581712477561336964966328665714158390731025120069865041480464147008775442949235460072809888796604616920671923229543573449511042172422664462307377722468534400525377728979099240824674350705027370826021453545919172583627144607025552326692379336560231933337618485129058583568535272607470563244283056398131899760861984814245988384499707153547029874743962865458501230168485228883101042682773160663381601994073528165027493177992868500611617341359651640295108566950820834399135993143033180091958416904296284019149133631708219565740552403520978249027436872892683482493768993004053779529993913365004425689666000029797753028842804808112393945955840524528687600706130524918859919309864903239364354492156343114133212432660482375165501818505135828600047967304172449149218137801462319089360956965040304233936818695834173386445971776407493956790966172320587796240333934429209058537648412919155478304388141425308172440165053449342412526167299901036208092341666827175823076471651976515806796987411333988667823872036924144335921086488361030216803384011149522687502152178394417406817746304952144117237916762720892294455178141855993106451942636412075271694424140572834571319712993464795963444358844715057566851569191099765141213290237117554907626051958431129685723443976120033127610068947800963674585453227184756750508594682233092701944088583198618421169244790447024935745925623553575602286111787847167694245843027845280659572542954037365896832329946456775588175823488938987654996669509172696639675132116395294763014033287943622892060958265002554971485719169130671671661886522823119195239608350493326575629122286542402336785953723545880023556243435151527494162294511394862915299402395597432309387668450861132461659722797243164726329672182590286243774150237451755024121578757100116323155466464554225671932300676879383409937639808334676700384528495380208744148356090337642395302315570489088460932382616612847091476006722223104408933454572798472324807757103962446573686457592714119766020564118457556240130222399687552869688277686448319197071540674413603270042777591333081061491156079547557257600525066130904582017441092366641616855411675922920554318957469740076954627839871088275760548383372474432357748078541217387705630567949726499666429084124657855661972107177465031776582731997084657002989056148758928554439834442984865428509897151808114906455624652248952082924935079799393005420330872283353024872443892069422878712355328488179884731783262500776366502635226558888196452213834650957870333730682983029557757695077293372718605098994982004807074036305137348652160690150137225715914324274789300279812567631937065562442935006660815845015385360743888951135673855029311893203621379988099884313211011083899979017151838851573296343709815872835504614098197150050389438207032524523242582989782301154135022304463508254001442703056961196239788349353421391609810709364767804666733157021360592160254022782325982518366158689002196692775864837171655508756271340659775176046442030544138503108704763242743086437897623877590601802301916196505571534957765947240997577539206952153986017238278864762305004704730889766452860149916012950002575136032294934985949616701056413696680643563097974680037049553556483528689482582656057825030982187819582173471158046614491935729176981829470491015571495378762129468571627286117461042044843040551356741268422219214205689667831088917807742525394461038638934462090847318260158164662073239686920852672837965980850857586506369181879538416331722590164134733273845686925960519172890993700458337521303778305571989212644409346029584889301174893348650998902446802633924475135147463588957072772760836152023144045214894670011474929896559576207768708938615142231153927694761873310933525530515858334565284559661947497138188334992149261156755288280397203799007537526395462397390127617385526215763977683661144952405204973656125853440040572545077234459691281657024731686708054895708327195263988804348411487476532363998543952350810910390787282586773446304317683796145159953495037800575363893953186530725332346255142343798565431534728507504166339255222152598449679865487646509996768355224124538445015801043928283401143245500082897540867147124609221815877604733709970621381056550944261361262239892766597730046293977853635195879974625885992640789110058413511070733324354444778639003245643986408475234101266181051100248314236196095025457321487850132339780610536091478614014144819155082291871892723663709966620269431994207554564527823031643227614199231387449136273052309511541384398655177809637807522288231445237479699186817884937290401451027320430706737105898814847913671497461274982547542747411658292825363448401868653882290579324933010597862958139006717177379163189063330994167925261694530997940224355162123927486791630566317004633985094705859538697364792810634600497425050723326086803784213100928853139330152261020468898455638327451509185845849182992246098864054925165681141478099392771812660595827072650588427691615551211598576395686598955657694551259766235945581483117842467639293784673389458719515810699751164925923049985489999037498262010465003032085829600490226569248824483165362902410216350375883269186291789671697827158250781146501938866234290472124667375438036341933973713415038618604870528620429427694902047261058835993879084541123144245582727750487633330172609473741791871526402067118996322536183657656665156848487856293550689793481733999483477739522574266522130732133440602576530697682240750365328049995088935124039431797343097855254675432917046714213621225794968056704687118099780140928863122715692257261176124808938654364096721018329883368066771711292616152340099890046771045613489198136678946985253069284090008364308633633860071921672915063460264631449164756702028155156115413095546042141980994211022482422122028131031647912912999537488297286689436812094492007960502723443395249228500399112062261741772673483875186403065006911628747535305881386316184223724377161169408620522237745299568387429095098466920742491220595046058462313280502920939739236944975013003740204237644447157166021742471232650596010920412028620381737285473320895234557246086120541390920305256843903326095240586219192979371570589639009822150723561718032209263139267078477055168415551935806159392614855963672528986824741406123806123391669741972289226219687861555039114798560898730544615833347658050468924708046959302319161527285519583031334804328942826969221475550324982467195273752238182582988434818787023472576414079543245886683207776315620545329626610168064554145718934014370366158426540844822192489457051815871643276166919907865155958834657601752362436847081774404346623909221318874148238069256409338343784382696588054165505208805823600712139877265359990906053790598350288908049863489516505380380952076637246071302220385223734227367985349001418431476530641250719760644425136319398723156545801998410659563487278535551011266317318189302106151341912771843809565728906165972155100038904540534770668582855823306601720931617715169055685319384548136028739953179020254142447163698670457426037881524165421573968959940414801880108960177666877229809292930055921410361989812807042136934981697838409797716638601502565780170200625884493499962512051428037166207679854497523210317378629121731943627043455476254474780764356593351340809109184902772030757760161581941141871926673010155204455863180817072612293867147489015936852796042549627537017270801818026065163590621913845703812493285835322145563193218341974631970726461325800038142112666964775074491143634027769090422901693947214982735216367059718705071731278962879406283998733734075079202783310567209995193635950819634993158239844972035785707302740936326861673834317150494474097463352081051100821326140491686031956122716162469349030898062091647109033303224386312066628921889020711741681038486552884655078689330881957347110623327207088293526576094880971321955993081766363605138961432558315131817549146255202665625266208498249424148270303806264274479343091603942396162770138155336010977617988071788657994756088234075920133972950361756323548277780933099654283004700204064467438626677528522637095003475511944147620885686163505570937545631972010163687001915281322030599853489925800587014382844375852612705056268503607332655661096032051132175197692923478505597124265965304785596472130928812399299719418374991950246170808725708497935721113729704081467384558538552022707539636925757543587431010520461885437673705937073473796714867885927522034006630746452595447148928059541476787872147410478863982399367174145010425752914015233370174894731872623497473690751878143426785079718042053023675865007769605763468182413624728782309470816948314834413233450153060831660483523428667561107260604323887231295205572604251114587091626917885271774375512669482361743244860279634735629599236443089125472841513484853344320524642409309262526132723082017231966577141631337921421164554061984243141140953854569123878331304043547663659261265511857967792249193738787330891105597316704897833373685812344476727201542227680595487933003316328717121651962240101209702715904438738474053430434516734803658940278498213857590218832832717250694009341641574490292497888110157481147926791563892454138794481362743539227651393165646697405632250762630018493673096839854036670619014982939266894143476773136563664921495714110306178565239067418480736183205186394344705151111085642148783216887761842587219596819115065944842092486929950324556468262060003415985625534286145688529107641572605823650987509035971905131202193411742063413098984932013291571972443047784784172101600457990480071112655639829491591597078230302634491043448297778636798047767187216145712315288773268099678094788651418444219675237136356374057573234076453710478483048148542729616788295382025070700438850959667536416812648845078188300674887409077104011741517911415186744197329501500835526354513647198401881014551699560986245952796125155805930775934577691217556566469118061019433803938709146031542832334691827941265690252644139068961124389567188136409713455635382212286814394797495154680291006633482727340615482944700379301804229763880727692414332544894620574588088096449186071372841666258862123483585311400635263373514994108635500380177968959709165387000876553542174186816243979334247645705664164040059624375036188707479260285754114609928393723959289866874483621909176700478143502055182145013151111532604379431244466867518375669882691920130736201029954653007426947472414753017463138240290773797185163444435968249398402603885922315508829471317016696836673301308044965112199200398557456460661581713754918550093942932252282428591306346173163472704960756690846538006125564393219846032444902173181644171839254453671320239334827810739715399661171275511109017909623393221048452228358291899511166115048055227361728473757717736179789283056611846651678676061990328284201235337923285863844451956642215423988486343713213138805880172831982549053140669094090061465434385620933031195890510997119615665694296516908916965461889014696562274062182548260671634452437377570899788775081887200082917579764417607099418324555706385749036876333324031063982418205043795450406078125556669326382710331036982073723387103226433085395622939043049898705761158258354044316534122112608121506891324311569587724726617134845465471650935098250629564594931499440483565729406230637036594259327283292120038651622915786136603909274287654521779536161771070132037907343968272434424366293074641654343278865936373533447412386987173302596331708961228589615178026789933026901464597768321023877820471730546716186407745459279099445410363528989624182618973004147922855095124631762689967349101251198239143284196295885451412495805167007017479123113762708095338718926173397642825284442354275851032294303785642563205788649027562418602325688548563545322107189210732911391744788803588752518278760976947972681025753773718444845030882592795192628136724772576028760635836372861754572833961967212261358467575818749623417972165781752757415340463639162225715583666844536304107646622111940688573362058610450786186940098968262673431976110758021308742474444607301056214227263004258223361197064147070547893828903964546783376772619912003491252949072523243421318307878155287363038788366168973154872255345361259240176528703657394725289349653957927575817100387958928062449380641985262501290753396531100987155970776050158855992063765360357069680285015592621993128641057117624404258614006224997617676285663250719701021254669297972341939158303998800497543818826730418686946300436599611560901500516002305591320004716219654240923538113617593805306767877538456449068662606543014276796586013016372696292849179866484207772339132837279572013595683320531546560837974204557540473843898414407119962008444287740783839870332136309023404135671741340179431796954332429922783834388078207053448732900863535969565389627957146426794757390388446041895204056596340248217421644560690591830177107884633121597903467693073183877480392265760855863505557330082618354448390056060163723080855533043763149894606546304168844027220757292800683912791736587549742855735360478596063942804048169753316538319116672743292437397635495455953765630576650749295809030174527200847788407126491434640220966757997075877408194501849395949878057769956414261212691127844838792593878072589938847257418392785172289308019758196560081424177114830045274858577769471054966817762000310357971075273781610607840338331610862475721119039341372509966867146993691620014877731677314227739080643869396920467488745822451192209354303481339511601754952822616430214938976381066131956920626397139584148501632614261235071151468714403585990822955268780598314763569691724074699389761287303394984099488576010509943965721332015235333298193977178871562971230381500003497822991061509977565550491279895797671099915778935736573603337387101466555138788373368802913563469841249028368193249008455806239566533355915095715559630707004085136247727198716697298300815089560990456416084771390518320700111393622688514098723792347412345544694583910550243115710805929999814414199561673830393458536491408224033905980351565581059466612260023441801161611600166288420441956640998139995212272069118951294229920222384168540819346643092198304723412915112871493791984572003332444937399265501022517864116943464323305795371096184207425964353050544908859031574816026095164216528647076410990610802672935303699437562708157889694574502814683897618401056211010800624258273450728554064129485078763273193608236705000791498702053840739530994594988390741464079970504338689680686343012225239948824829234338166381151408145626252534545759288646070720778379221293198085197080009029791682121176413397088900905970124120400817061772267459780566368208838036911129207633917799248901163958120245860868927371808549577264224994560511837646350505572961398875532054241271296844794947611911883876702930249237087924307895085413944696458659142621323167896688224302346891273012811233818762691303248086226468470203371266474616703058257076732819546045932610715803346490072839951662416297221258672847648843956054411713732631058264404946741409078195654579227327509841269310967656916993421459906144485957944630169263355417657790871100718140612585141761321469672907818944470896218331015100489948243517824774048253812566740610163298339111812487267977836280744481593353063656994986083430115346848626347084642650832450223608324615584209049816399546048786890525885852040863333580469076278064473175072018154816475623091981176019658899193725298797278420355270750754015007370491646687639986134989671035753142596694749845138808858096866012130235215366566478219387376725129707824880125137632869709962833185930647028558461425650781408454297770961581078417943326381149480250206019116754928372091735929847493864852850674049368432782173538452463255092555823879325612867245327053585272840576268613437409436692628529496528026677205637330291159640531714740418872556768759626472268456736569280551616806548028332783173173678033888999337508896147423235127141710998333322606118644946677396637624780674644159740535963676587105640938206557892214729850075803788564495721740127675003301376405732283410330787009036165720406538641235593071832524201397459578750935983212689452339435169170198952362419805599304175534876170635140967838404098498605359694924762440042211967569890881929113652282012797075049440607398757928643488182242995840231933289223377018187239026459006791193551894775423966398671848888073269371168230006541465019661739009073637343827315509407431954621817661248080971215437126301240692698025591079787855346007000344013265946621863448592758457074882495830924974675357693963260580657740954125406093683025671440647181774378384740096032750273312456514778996810568914826015288558636279658257877438193394686467063606803117125440202903252548644936858030321316702904821570156723923338210213236617035213664266587400814174391361794650379708600741814462149810850981439681984117548785204063040088965913363691940879489337247263138876316961176984178434883389731512677191089192436364527008418440874125709790929088251644806436420255655200312439004714973190104411263549807392337801871676514186624349771008774567685651848876584103471979498655927245369325096055207543617715550771772705416154779532852622144898588687010760750179962324665065561595956845386443937908124133989540680080316876550594148681199103403907187994905643260599361061917264633777181152614289158277029490680550857999955082146749545691644121251569620166685027671900751386432207142110981728666654245777040673519918416695167228847555183242289288018140275992632649427735008148555798018630565491898070584124753240216697423445467876520387525334387997830508326703036409698234527576425721337088412383592137527185030393494474329386374189271462434060962059330716841617657880313228570354945519380229008444732006418371591918756683405812805730966273440678107632631274743556597554479381908326634815844699493464600336728792551124986129209620645070886167625442742895276446057286381545213800684156402634444756527988172085032309645069458378139500380916248749896895265285185727466346069038891003462666528804512522153664069557563601577000885126918405134813687521675754413286474166691808090739493821356121972584743189574569219527903359149291595723441102035841773999678979977701110848863484090443747598697734998767908666068845936969722437108684364776391623701208790467806985465952206058934893255986194638569345113535724086976936721997894238016422650446687834913085210418680423810946870968399335860530912128861868707733397349332462290286847256992271997997650387384489808403901515941462229359359736657008131207528396355501114382808032514852123370719378579018942081783030620629517263059388857953720360309783078882535533881859185476938371167067282738573500876799118446365373253516905755480605452012677420783522121742337179135756695355673616245903702252942256763472158352483782437393312104546897188770645460757268439537560410475730006028163064093493408354747308941148874009992232011417467219199478788005298512526105166794121161384909406673915052039123290048448358181601870596951308317891007952813904336223437754856783534082531675709834530750340188833345081800845697069090584606802298893103512958601765569272048604629425643332409815035435075945589005740191617796613710185719883571575702336990486406394098431239409612367064118573592005848506839612917137069931916844211980031609334459997190641016774470307742850861193392028217829145152897949128195810576425235822546080914795357385208016002852975689914220736571051009113905561294457724309117419503161447328379968736147569750243734064077476392534604555315623190134027469615923984408542123352915260764958523767296651842774552883072210841501070472310899633333903398919467646749747197599163724903480708365620198287948690623269227311801191114630056280719410637367580606450130018880724881899302828170259709904687526810984005506070734977884572858980412232313612127163327806670136649799627608964472685964807671484193589220217982683452518785262416404808516748970350940700916082963327626820760487629567577376229226404549270427517550557426009776512265721182236635082034299409161386879852955964436146496871713468958430859640933280307975992134186582776347159540361166656578157145717831426873788241603422841942406736435327034349318838167816365071840832303453327987347572270093530209771621281077674929734737426594743623668736042094697760527094641864356656734502906786625509542360997074177572489155347239929549535128542250044631905551763643926265459021160787760090672245598627664827496385150497108178234738990369730423133820175614831272283348745842884875185798911776923492632639180550487544605983190787261985548992152108470872355798243844195015546861668390978839912282858544236692639518962762423972181886228826283956739352508318938341024059860405284827940068472163928051948424345668155784651618861917700299305616971495644296776642506401086007086724249402827746485730152556433401798211875302406312588155346529552398183264024732318011756107772642920660226231444754890108385225099477949591508079386108347371712649487368088210233233957874031182878242028597324963807474267965313489042145114253280243896972800648037496897924597141123305972913252210061781531470392065675930918511625418656380387374117546013455370469854301629796468195949753369270912214811987198623005155488869393081335641568765271101364994495639998647754528870665565674527632522525592037558533636688400326729417747162491038589277581713641084842845030180013748555524606996936649445430484933546763177785317596503353842553915962022487697993121077288200535327364095050264203330118823485915707705115911171135091230764489507702960693634854162105836711631009574503060423363464476258955671902915206275654208534033464730271125620497027328185291471724367479843190357796978420659902294061332114696668361412740512654646289453045622129469218809599144309089956317852661270344627073666507539853707193391210512591201659819338940713799902332116228507038287942487857958759173493327707854740270996866430267381135787327729888475487312103681807636990241917033633438461321152867478192774590796557662807785411389754140930033387816410861599628583141483300703700119768656309911283120992594367940707579003740539289346167979778849039283141084117524387099458822936964790886885044522300182178072444382843912901799127730548682648979239669648574476263688075410426992898610975541889309835806346874517934010143400885083132556525563631037363556842037819802560896384826480772781528691988038547669109373367345000657634592608097210562519896880519349647581152858116536335941917408201533552132076327154458332328774704804623819832535571694779834070535205958898375894090378084741470376829676927174818429352583822483926859127762210339352364764096308320112851118601182572393471401314377928284174688347417297226624069761474715682882442404698948130736948896427446486517610924243582824002776571674619026707104058192292460724075298824567976072769818342997730217063829730212386928551913027035029630746638706375604463327499011822399880202125917011279590246298485909651282701265135311942355959224567618073240697941070595956086822818961130606990544854032813570908890649442581181386198968274899491230174114868031638429731729221447308662293770121906587608043787001775542156604454192424631297506814176875182502756600533306073208121400428602592181437581746877796685783236055234354098518782035946620243769997578863847831587921772178275815347414757676924010953147377930357287740682735527327479583686203623591530938253095457630857091811085717528358942012447532945661973162097574018690805684986459231206729224634031243944847611630240443286643369924614249069498548763677281394633500809150162017221081884209808736881609593796572811574777503458096577552956284593456534601213923893404758923905418461389839993079121084198431329462974900491911873411126820090305792552137009807350775227690953374669457021931782477600819942607689853382007514280747836010515511665156122559944442509873617139753488199490736413334060332331634477340642872376662564747422752639145742800588110108392302355968828436950260345599094915236841692026141133764005876832957234562180129118890353087796462725067181002388106800435482089570859647811801804900890915380600571569647175930065280241708785453829843768595007528628836375967534629455286350606567348710890397074580897698917746445009809819229326871421235048528220951778274703930451913618245935205968702567908135790698217839650094900855242897345639437701879123724954163359693198313564453865102331882213684458388813283476676934181963291100783609955474217205163339317330136067712137895003758294111077250113456535329586622798335534879009889432294374408403478258387035315009382301850902346920056488251131981092548954442000486076233680978476128256539850440000516290182825617619237186698708893860733634004869183247690363057675174496292572159153594664091108752208504559507323031530164896514214005521127447746151607593245236658227371315947602396478138845877276847031245364446057720703733140532529364304009357440547039132209467775507865226101223478813858787583450484377658778736625139688976600583550916423376561084997467791564139782484272241145195691863764653141350441242416927914432258898697999389126443823421936935311269010744472385493147382210066869593459205091029469954947731680418566743684055256548929654172694011335679274680015780031509133591813133333663760727374095454004643315259893041041348395346351937593502628979174999332635662000464259359339242409467762454996643069329344608290299653825661576198956703436539934436886598133779021875458743560905783658752603664379420606534996707144553767669898394477683767243160051343189773765055579488586755778077550833158630325771333557587704305901202275189145684488701436605370230243240730944419675514612845192285015574787520915361751282765949817286446733140726440264938815476838132712234142170508513979050365657395306431158484932075115712553471728821645726255145815751875981823987345199113710898536757241719041620197101971756628755640100357172863820430388352594561010427477435181325444034715466940087451707675763071140805935476817617921046341436794256599393105642653648287590706118975943928036993154247980433536916275404243181378751860056961534065681837735402872551443892096834485504029729856233093097400216669699087780594993609239226338051699666371940823413442592458024927662892925118802612445593247557843979558721609589632237734132624176262276637384585756207710039790190473594093332075105072314260576572518751099418190072589648292273836474800494862897781004992980611292300598315802885895751589352570343201991164812531198872157724277881466557199715266853325410351506379619433552620475244921718610163215492078610501491340897290710662631407013788329949230819665874584477959774267401510921727524031187144819735661240421714377724757121672453626753710310698087757672816787150446615884604177842939920090838397317253221835703296964460154137293565994985785478950830511118170034333986407645790826160254808861026801774670752693437600992495004893799066236976272547889082578523758768320867277953039750360437417975184749898919359489308212264594538571012684248154912946905818054830048278374380685210639381702507607025604966679036206871345087428347133160202987385320736187813390298539849789771324169496162737405350634990305319672864442633964698840205063494657359813308024074448620924782369743983557295791770987484179915520861414090145477824019461330144083268465501572873640527970558992953611687628270851576152748442830348134504796530661149442240641126246715737383687406436737545307301064625983343900923391008986584851481907715780000842517296517904411970691947915241845862874125143283489524420159315884837332411217152357393199996530098772689421993202180688546065587783893740138878991175287746447502192529200352778221673067026787040953374253330115343965627249894534561607378064626967837139433177889203521867717941814818932564212737231012462944973605600346568854454270499038793537363233649446057155057148036124223216583008559389953223584640849981153416442439711272144680031343515819742666322071692216346715806504634385939413454268173896862898237216056678888981716828851533665615725636998210458813473045345724488177732243426379248131686138373822065445880758334940418824492513043676669388916640986657273366861335290872737971774083859296933537264408843814386108729226056044596788038085826744861307215106765669852550806692711916755406857836245853390590839468971713297665636809693383535870324405514382713221722372441206415925722359106560261359489940553022997083002189207959502802364278813853843772018633442942458097550778485045720612111839484924092097419797064772589207852594177864278931606064510492659912877444320369424015830229172000063576919290777376789186455114171168463565118175416287156116960535161790136487528138117682193231253489982494956270340943062231590929490370186925182877720549158731075847830811581166578975709059653902390960780621724168784356265908638013559665148523311414462758672909176653061287809861544003925127095294239285088008980798652170973042934281925948139425822717809155063111775047881584748270257974615710112644123264350759591880340288489571361444210157959186861809881142302235912109378699021470728456748668297841754028261441222797060331198730092704787981790901549142886509097479134730058595574956034037965722387316018922276123032881800116533890253462522988504499176205494495698341314700050164441206524674830768503430900294164273441753636605070137151023591021406793930734664293691525441695735993697589419591389871568854992787948143927535821196429738254550481796991116743076500060239567473274515568343004111719327259712778260209170939920006715750657409895763100878769170185532478442505240022721119242798970921282912186558506039686271962433140215814475009113285875943267797881470908217208791882487251825208453040481998089191665081389736519126849458271092474441011770851102369618490310569443859496100783960522683097373793464955468584676381981279102638095521901056459101178109366760200037943671894265006785920833457370197851124644238818429629140633205907246170011349184452944449048437153846870716745745309458785697608574913285648951047049424330618861846302013163426873276243167208748533181169121404559543887461833583513565927531227345354948438029467968565028457573740863448871504802251402882522072834327513285054160937373225113086331806805994736196304830307672864816032049761814142332762100744893407040658168909601317704893892477852536935672966277093989253707641527875909325538396542865038849393773024398650052496280614257232179903202024628034262325712057061597868864390880935204763034659013125898196583088754902909885840640646081244826992722142377199194662044295381124333438803235458086951135539875563114124848381205019015474144493244165102795467807400344167972844773811850566012423901135428503710935382965762841009574546015572384639648346691932115372268712776606878976231292001745120904400944920369185631590918536203840183258170715100863329017617252981732988962412397652885476842878403650787011096713320029048867786290391165303898017452572035292445924317199435608788414056675873562427812505038845598611614610594201303542764658571139214577226670217459834754212256124410892172371703615168489401381110171499869759246358720301564790333381802029242863558026315027484911669791921570242172764470942041359556679807167413213531061986987571676469663204012105559279480033759490226600749061802820207217326429252892137731469852778285689570770420655164256002166189533847814846486103539238775069446861384485023787253766070529452928450819389805115992733117704336867219500370951466422839967699770241309515888764394806304710652562400904537994399612078501420674726450892600838936095189414433794415190014871665543551991785592674645803993187661250187947743182308791748076208081005793056203100215151554402938224508755212940039459504511117107320574734681716237771442002103159626466241683083181741546818523766814563208098177148759766014392161738952614954736740658493494366177617294590639420023629317649363481019133415264434616614663418743353052572985007434849376882677138738141697153788910564710751011403563604903544487897910091773995699119980341234223521333594732635815961447552450878702354042543028974798988864854417618486118653585306463746103735155007495480865688012493467901100177998871360402871457448426340741743014250421313298687843456729706842469672936948261350025878274073784969869300030622080281161712634868626327936579600184726350206472097359504306356192456897499135009900919180175414224673253221381674388358305208604167546785046132724149481653092184354593563774696585131705360235653301226944025713771420229541256393353036859367861552268413846814193190483093982862748374628917547536385451810328657188826760831353004082896753907896622680166464372247053903850959558347616879281240852278189208693937401675927432339771705627390968935721533065123879199394380654247402504084062094673756927865500410922546160172836793556640164936766326399049629162370176182058645207868760907582950869868834044110398662290000597455518242172513968774950451001190445290585210237461729654343110502185582762591085475900137738637552889611251651046249236825737264407861585332961496330745069197915482208264546757889974724967455089314135529321005592561344218152129836987042907398730972090891122197371731286353670994741123082733091455622813964040851078065795748902689848486497784594695451302864447005953796485033706162774160224483355388350039238524258463151501627418774207585923741637254212452363064786594594511066296733220895351682923449595639507136167032687487859473059713257722420485841836978798907014927763223609513140836182432611673886953755229561280997168128347022086040067697483885742319223259791284846737779239900680692684316238243448884819036597081585098126309219085036250032922985900044182569023630675791501906099556210753982533189007531533720095047332733238179664521035767201440350820049649393358832690410762533265379000708514263116780988759490997616050782593688394676024297296549698846783402483827082583292594942758205634923380599040068951327258616130861067263560709104567476425803973003169321569177480850741192253575427365073449525923038363220755533180269835816497444103880344216120001851950725282034623050751511394281833587963358047352506515567843406922685824029040933741926451314086928122155945718313499817340631913862909345013172032115015278639476991611134635601847378210521069248497033159966366752683530990207653692260617255200244634962186432716190202230226136688354849039107682034275819419251031552177600675150827894122810950837852664525684186314891724371378843319422994875908868393788004458372549014650611165080781401054188239101367751294688029412538049495828532833845252288228167812242185747894281350378976190249942085031773206689120369253002991611196730353311017943129752738438119823097748249017331763304056521828246041983943225659504969762366888735137251059141119553722287087199563133274371788649307273951657595938305326544098978860812103257031588141348523938784543068471292732592987037019159249774701383410592785978324062577498619157968111130259198492984174452965641690092126253873707236602875446952120510408187771212468664613176180176732005226198491936228364299900686279801925355680695729423292289107797297003735516536353997352064100138422804144845517831077190825432523973078400394679163070586131979526247257215991568619694594739185198071567985278517659333559002769932875402008074435444584397814618490033847358952004321663798643769067356937441907919757220679286228624865299941762874093228458756248537629507244352141041551703200483377071379612425793233024841737685457331822512077896939563106161238547082847503229171575677986825642991785099646001627945285251688892556184944848890593059809750354517353621442860697269835640850596796240690373630403960154375526031136406407515570719264620956368964270262570231351328321145954360599119718353107745989782397400873010030117413899732345416676802292785222140503028632929771485286764428546617121755468860102792189484261557112341613812269224802211291924066397814139859095296378286431329915944969669499123943385930355252378347115006629436912799227249610722256520702211587832671621915401060159292429532222565765645101080245237186621949286519292174204809019210936223297030080703724898016897390046026356754151282145908544461281694818270783913815321274648508304841835065952896520476737032211726625499919368526256404103452598187936280890406809101758807749457412873747088446993613654218242706986638842763755766792563406192810576376892236396773318854457397441900577170861195252952583867809116809841812125504791155354669636963666999411895472570772610943760307686241355702786274229659469556406945194878168182297625179490364260993254055374269134335336744128027664223713707468513901800156929164827450681404771274797595997083867784425554942264223701653337312190205202773721543358021434867385941469838769898560655243551483662903225735763166651292705419817529732398313585249076106369779150339637131850690626111970759704470020954677582501317992840865230863346613721424031329467067602562719676710937953096882723099100360270440943063793173123601298866323472131679165662279587886392416355002160072796796748040291948083821820917201246926557386761646803988623433370795712128093838533502948317972656889408035199980286596025026336951089952439007777224709549372669119558201494030216473183985879765000447188795672483288209077007597074312799567504805045325661329987538680177953675241403565819505194793068785641312824797679056921630019105632993549705520047074397637069227761543218981123089302777585023395298328738057011650396889331736921933780993443942995646349812569160401573454208236432185868734492721848235074129215089804870306437339780554223057977667001756073272838840752776603698788057651578147146947096728128148722140635597781553225394554189361790929690812851671736113654337261499989010256337440000315034594431260211466960663152236944261786101069398939666801413428325019915853587862464370390629856941440368996756796260208883033343079436095501872711140635811183689618145007923875401253497951587793279653478271774672845614836528797495518248475051959771071161287243157907842861941010134559392852703321515158473550320318355230365599857431966772063770043548404305615016000852093050593324463827422577807801719223994210412105026325472252452809292118930883477569654833975423750558792000594637946984700639167646075789276361813619244784634818748382192409673650645498602353421387148733785904194795204995474721442017729412992560840342222518542604164430815368689213629806312685386338741014458931188482260217053638769052776823862859283667983088187342634849775825373015908711335277154297189514520760210433811876972920796581976534858273824966882173957306740204088291089811432746741277990118689376049291067083836802584475685396619520670691970033709946071537018718157299563065800550791346835173868659344717228143626253901890269588470977094462774173603200036286895871239063596629184356785347402623989820511547316372427339190609316869256086925530798648452103659823836334249413776955327663016223150509292993980008409616707267997486684982706695002972406770293797957788106647907639554120878493714668526930161614601572281956892502667657473580529787876824844940849398309309859844767024574836838526686016027923209552274331442437501748175082811719950175401802603463175795451558576707243172190936048515944373184933114332793301251497776498768023702415363704647013913329761545429863500670368418378450340359445314407831546282117349571207785283879026401241994512172663234027772374249678373817280820304580063513480802404862856269316061051356635389619520560275945990104024574083214149715620215422866279205973106318183762353860042708569775115571740820063402906473305269923428193278205747806170335601756654627954725672665155262470936789105458606977562479927598001075684657254262384006475535908631916689685763669435354634716621942856072469704013785344757804199599673175422735420720356284020711133626406423436304511517139810058492405646068774323328414893840153474267410238778635085067146367499918215387178653064745822266443251677797281042490502459964559087210368711678134327996766991474417681442438433498052984716816481987518730418830621804539494871223344912810028880783438862348702977564011894672916880260220637434867360547236206088373812531924752543638463731464811831858355848030218393036012442806142666143152712362464786792438139175597460045619978166187555508379584924144558453130425040255092098363450804498337782760226760971067979934684397298985011117121881501691111470553157177156262663572202238522897175617077247909694697189101613957477461578662441594056375288688621211154007895720115402005473435716867755531477251344950843971531149426073129541606957533574216104779138882626555917731725332789254392989404655007687997546525367069696331719225796363617462471716801221140172547352882949384923021874773484716978689990549709742219164350027129036954347095196621714620084376695449039111355473560177572112259938432067190872334789175284572908571279813015980075003412569151031756911590472233023218309382184621096613499280470283558275312696235089467628768266867143085643760345141766141109194811522450084096349336979888843751990270797520498110778211977748154110240676601808235620350817900490578402928596554528805611137738087676209528690283743522012596337641367065364411248099052783268060970072636571447672956873652427158665529631533335310283027747029881429317251517428781293740773407831448367590123686157510352486494023976982190327086006843980028304194480825475051723748003117315309943935693443235536164837328508645054754895033467749904683945748111408573631632948804184105647888051097048950540786993773993284079982863555326273546206253502476964364526665959520267076952899805352534025949282031467983518680867691718663493064978286051614475084326907423117546428912945019563084388904250844233259410643363151224231892643042995561212691525389987034239507197878839006680349459813878860707794367387914366982058797495985912837179636577014390744886070201601282059570160484784640189111622728539404578954987182517982921958016417611054207635911779468680921249160499991911929408610103253890578673470123497180975845544830196950359460061061812909161762396551012690787608668758952905511134824516900672915260849677431251895438214856779419796007184247018679922366216297140746654495084744419320858115994229686092549820993587668854125817843921375785384420035845708137226255422339345796825137771429040787995605907265400950097314002433976572942607392908638101128157840101591643644748626038398521814276753172086077781816199093606840778308239511925027032844229688497407603843896211697142956057226177673140166893509012026603120163579419241994125451407129282769712829047337280221129982842783994044751430626859563912513727736346017338828317053942379097417643133907832672126741686562383885162588412492420321579566415308961552031819115280813134572266380165681523637810755520571798001037635530946585727521945517783999934545057581243504474678402865565761122165584169826119995318166916046969361045265642310190169427945955480645693891080866183974649406585538896015822955685516774838088859000819573800404340825949157246971439385362002990884387186851665932898084168946251625079338773337349062566694869774985877148142058605050142938088741635843442613246206511473896283790923544836413810840241529682528437183393996419217918834245037081640707247530472317760810026424984929618351798390534065237901968619175735355592488281014209507224183441926450353986559005321003152788308864367359156136581049427972307296972177110827102756580316182267647561210602807976758243251293697113956884738802022313501940744433204754703231503057655935254048956565882577294486386881467772141764775210528578291409441533238088395219941083509608734966777081345198654967279689669253972695272643853434182143250889836529136197000158865618288067981012168120596081425912230634869624952429343609795072886238128470922813821075668239822475984295916214763023437959504869019431845608570613932712281618582819870545272848027366155382048298476077913233799060319060537071971489325202104986352650998406543286867081150201571639862957025078608397191919507689108966760160313555290297506199468908088907137134432561760792046956827271605056262601672776054239641742509516740085377887523180815536645073274612020223965275252926640933481626289475243458983758220084372046128524947340407114859791469833626952675650664335798398252458582772034191155975806402130917895309853886836187119392888337052838233434454838643600616548253573689053274139924497508301661939964424392380898428313045599792574282562722068726758805928858716740283200030462577305362377039681364886177881503938480869624813258668163629621086214239258277412375850325744962334734014994113823651015498792567094213794177039933372975849202783086703886327946310587876009053308646590336896174274960765451698449915140050184314128281908880380712551165017320063479981891818974648908494052595770921805079603709147207073705882534488088314851535913644242437234181051932128249782875937914623714517495968411793620153810549791370417254355866535276131657631909289792115686314951363026307828698910841839290708743420792207663973365692214539597919699605958600854693828563274742114095465480128790255363220048102135914224475278797355462144946902499389935430718917520294764418722327225085962889960697180240749172152372973931603093231214133003573200938968871080621474146559922062287068491756635082375007136210669744997971216380083253056980989455778601297607629459161553468039515027479996256083630384845806283646784121586835134937066307464411470352335449868211824901574597015520647011336733520751097421473911389822901063273515612195378633587952317430450530599450234251157011683783493960571567554075073276377242308478701447990500845196494654541315133644974227871300796392532279236109612420656693958270267205064510964804914370629708237996497092872354660686785540233840027034730947493001769874439436626340514855020565667802825711471033490318047442123118491767598661944501550550157456510351435566986135849477615718240834527271219452608791758327965679695583778414957214344198967997160783994522444173602086722406975244350447402095845626749945695555263655997158190007269061155871842116633269250827213945641299063146776531079737637305780859926082206611445837629626712400297702785312646966692678461579117267202374096699088013379362214130038176427131365241396776814466036404509718540304413575141301612902485926423601033889612709309785289852055866662008515829946562924330631215865167323243283481431084636914486432919491672775989628753742013748576054324485667463031771628052888776746284940047613770948145776563405486565745004310128890965206433181429944004818811184314195920402905804165712167881830636231850567590710061433857405340034627051774550098100517422214199084470106166672376790542987278799844319875826952901902029449354487356674858539849799977257226128811289274069784700950420871901421637872749326756228324748942703504734085792204793419173582840641920261156679285783946979536615970203309338118323677905730270293639823321846268545237656445197545242803248173164598041899478676478767571824316894223056349043928613707567391544803802409115901994429099495005401359540773300207227589117244448476160848854156930061248277274096043605839265362389652496272028836733673604028005487289592630725738229886175856725056864645367548815206849134527492191007130511528567528214937424645441894208613277648150599691706894754611948862660273168513474976085492807435024192134190942603994377724745575282550512340383537117089419972898740034900740714632644939375426848402654939868448800094849899496622946723307227830852030520558754038241818197503054357116274471756226059371669809797526692361131985771234609745283720886715829697811452210896128385376079499584755453246657660235656455593404333917939194942080553464327162819516898753422976718969854484101838888177439551099537009943419468562063151351881790945838100084051851519457256390790982466711701596629493748131136714588421476781482675081892423738004509684217055542588559440100136763772583381430032514614409379207894067694789130839580263675720381022360841845249112498510830856082126678667488810360076268459192498794456398773656164912828866632718307847271194762264919787020163214011607228390781938896232677176702397240242720405881653126342527411695028102988228860176947977778517987897397611726636105035350362497301294487682839944417940084896626036332780991172515562356745096288712048117658015116566580537936990924494819677054658897916015755023121019091733992877813612602822942732182592139054486682415107844078564969175358419997381221418814703158618892578525399199546637140468743672895901937467868802363305202384471734787013034709973998609676065070500382265942945478077735071152783204156507985310410748446058129977961174993032146610449820284985549671412611251558571084504370620488171500262822888592099850641476343491066409654899734532352489693757724784089966019617248698025148182482267833679293300909532176266738979446815562411162589413328670873614819322186644259916575119167931063865696578029114987316664076347130877841525599998478904897857183707031357203825744309285137543558117865454872938712242910482734887371183685754031765614442179258624000765026992514286525749175822754186367614866917998987298622200572997568658583671747402666908453991228116420430833168039479168409645889709738433869118868447177044234967245318874335727285451048555780735688449070328538172135559786978093132935208067065308735365488937958279903929895218587208479431618452651849245770411155152946903281378207240085886607189768035923211271453847756150642550366792985461881955381828419718148828968025427572371023856105710553659842469607481299017226901779772620850258954746228992624317772041057461393686509818735568906357850435628154903537616790424291888849789185274932762663159627515482480499998128770488914363356017401152208978540607755943865526927435949160308562133744939145760594215909415997283073531691715243463893019921172410508253550667370311312122283027821338426927992571864308218835449869026644655731616844383631268840351523304569853585963291987913814764624993175521508460847592886406265487600463831308076838373285941382432009478528690322319751553507164232859889748761959021099646306314495757285303092077174780770230634590901197712836304408076305437319474215046139092977897777842344709966951595637541966966465975788600667171487718760551472872299835435087911740740751861720842545209662704992794053218980150790195627912685279301320959263422309565016483840080937530992417459405889974799385980604546405621124617870562664325086849280359397103343656446509937577147025167098815617835979109770120115084425983156771139279923260890547492033793902553321659725336849836882299762783368339952624718256802204377143172138160108784059308309375415537883652554294381279360021352255490216354200995644147227330354704783943114796998614858948572182237218814965078624615211963326564085860223041071890301546713130908175581709347949807860457891375653175300938407079130886502732565713341687562395055512191459448754430741688559319998820950404690358665331301345501825206292595221925620554387845749238728145791731540065964354600313459512848709450356842868995044181309518778071024807945857053337269874530584017515360760045483297819961231844898260312607979978121301978200033596906408951487017314345977901290482055572057676885570866399463997888602878161913989839510636098453168948652584917130691489867753841504282706634941612359463503391001097705399417107354214147779238227371302791918759694782581425141780532148798389181037870163088017657954936589983712630729393301551052693778296287156262208076795140855733053168720238631431305650464696974225097268728568037132756582733953485634227428246778953893364117023706575741231218296278860913280113165788782647705948011548936510134983173931696682640906506856992604829575397889076485060010857791345643216506250231298705271608522156900820912263863584027380730342833779353677233141182228013552442141237560380732003718268446506379984597622030340084692036421901290911422764550502252140537519779625662802088417849047548850477040321382573400860622368019546187949422176210679930609437501502212746715503099525837836324818385294463572697323025501339863739914758160401585254230491493220833031028248768099645333624732642980548951162439771083818384546984852066325181399182419700447670416412439515634993016920466927665981410466096662948661760711217499440356196455770149333264837447146956096271949319800253134937596926959447322499807067200212664337058031496556828138736021893717657824020441600492728638745863670468727336283277786952157793706546543328726795815231447785602060748354895152176074806854903273956957112547876644547491368382716232095830828936006666718642422271511853307639490719436121611066181053135754401186304101406339422638528651097403535028530048541887042316778974221796051661143969429104253268499863862198407407102092517201615768272628317013873131292468607348019837356899000559178416516144325789184672861031377753234292030123484593717056425047404424641272206398186947540529660184281661646892559337462013992236255257813921250941890572727324141618230173529354556868448650565537030105543144417745860731374741312462047143198622873162823524096564694548391228136892361687183653237545221553214178774355693766430512187282387088789746845693658753297291008427630487313109086158086821636368166604933356610455847206091566183238257792920096435185727343836684517561363610893530445502308206940687082998014465435165091138873808609835277733691455230151076555395794741532971523238001576125732415676045438002395009341661481846627127257680449826056376749684185166617176472572010175562497858371044334559253085668163844312580897742820145104003889692715220609561297127271720232192142365271112485778351818371196855422516480105013558821713666442141240652707395470014096856947887072502368017384226866451121978477914501325146977026892808360286370353285007176841016235697831801523858709378642498276830477047178263816797889491585581141876620208425574767379768389995437770869702175248104420279171755789941990008621401765417267503872963635729788643945067910853530039366950696842764455612276081541614322102526302814787573079976160182628784618640352235265760698243079019681287965004914765683402266659100380039952972573788208892070358430712909568507523405585005963723021647310085100512417077343760030124978029246183051953892436870477555850700140009127339198390687847048286963011222962580915819084084011094204259744700012686427046165378732426243462188414843864417857415053773126984091972772131868679819365339266389583957243328092267474748095490873078442583542278422182150336843205336426445848348116662994782576943775380718402841508578953875796863993338563549148367737738637228385025085918087584648276950982396681379115668898810266511760493686681312646967618208255031410444111055652046396867779928658999631039822376672089270208162989656025482498195640168131850982179900145534897108451119649877646058328873438684543424725032796541307937003568541481087452451201559304623338307584455650758824348760416364104288148012151961338235879594745920260859775898817183665195142316801810971818693787233285427910082368451581277695979588697370395504682827274356251519984887986731206234037493349598018843088336381931991379674612951513713932965648418767797818397264273646928918719355007324219579205258828368031460152031587681523517818931278445023803048527463210530558662586796550869008470008520968682016902982380273904322884292983038548575823738575568565154712010498478015961098625356596869798175689034955876339290219447025478674860077045172177258926006884885071431126035406310213758137205806135461455206962542856160934883042881170906440471079161230007915477426495771493583404696863703506123351958094224297970577757683342239854127105072656657257712337870197559526180921775739260019711556556190809737732099972885448676545814275459609679669543029616916404288154635812714666881086512201130464471650244946849929585937443170903990062335169440408068709421065038118906315266741565418448080909276496102325099745054725127975231108264880615332254062481015135639235611815503559911372047072631716594025919454440666648295092494063714726419287234043063993738377525268818526626942186076819903970422917505468328361373311489004771863548132286569720464319805717238560290553601527433709513008070373942231842564551026319148059591425487825350720582454937735860465196715181530919859177524269572112157925476043064386022751151122397866328061813436395959086578604451504049369981327031618626593198244383435073701544226470930885699560600449031414112915679601266536666103398935356655770550461190716045439373869055055475325917726274847841522209293757673526936512034159487332680059180359097604582275558394353210526715059268519677230934885048660771941655984821135074930477753487383093578702733008593757933267485698579263934050876811140851251326402925792559066723120803240226180519216861307912390410633875309397646531623537996243219729243874018790403403278221554507550284995773239956237488226374291422714383797131463230253938797153268458025148379559091376129458566387658367891985792427743678329966533942566452750415915942919686157659256187007860581755480540849241919033169602511028976012425672188674159236544579304108907786474071539820750242309582329465297046990335662722394727802103049488289162949106585584448572868167605245382903980770159095793532701047930952748420933416051990945004599221278579852283086948217978616940647997285343324416281095959695690641060517313429526838057221515336389184583782528650665965780827812360507866122048568237239855969249445075146402582273325797443404585686961907725207657484464622516528411053706020944909780506033829447638131456909497538090770584541276620988200585651431306565449587809889626461326333230659000192943715897959779722485980078436534934228264717065413170667036166362690443363733072554804990481348019775515124284240170996591004028624985896359169952351047377886226408815126554935947429728707591094909407458109605511222204507775721776897805921804294690208737592059006155931544462205857271540770924183807280302054611189296495647677880052605150548558236520588875075507141709571730843383412588697338431093563299076691141580090067799844468012326704138173078511578977988600183383333744315830467370360176657367286314212874894702745118942557865512918235812405626514767248754651664814853947252771919324746795636733766680569337489584599965714651613823633152159411771642310163638272345734357890240826162102658757902295056875052158718381337984489494408014893832655188179767902256783719187814501300438172949671058808121025862328131493355242579099061611626074780789479697381767080346357716655982474610779654171378829734528158491598603311263454692221980077245459891872930227600470664029955214780286742915878319859464219594077208870628667763474207151256939408077846195377128296470519429688477486478306323417610965733912395924583387105569414276381622398206035564049743352162295641074226705246987927337265799844649724588754438428685135453376847023556158912253958027208617441762599630210908775209647644445866451193986785870066049970201007050656363796874030999162861494918845642143988585262916608448801416517091275142697442556087930763868371868078781647529475942457612556075688544466081275602494889325908704145717125824181429206691504921255798532939890523350632501044697999118551099935216457822262058066892873304174768236533857424718580863546641599770649733051604230436942161788248525590375436205946677784372879514048354063268246802620633218841998078687797760923234390520474881301137887795552803055217856121862174202428886396691468129090238800781364344427846477927499078335761855386300671329115386543833687099155195430941673501540195651526978469885184349234288374752117526836034628656219941882979636789028685154208521285149629439615135251742042423580174606120888940030206645848798559567945620268186234406166757941964871963348347013037189629749900414319128074833761142085357478069389491494100029228550477886615716659448780686633642860986987639924502464579828570901203187715272999183902055003146140596023736481031361478476784269020273885928198966639973620001938761238330245462600846076978152525803269062201450855089044746843033780946082161488437711399055996081086685515906270700275801787270393923773375881350518481374694333119430558008722079879689976279180420699690694927733365300377796972782711916358654463080235432779785984888409235309378303291091873440869888022197781413387330543836681384733123032848411837861594677355587440616472848599413159086936820358363273675958777975966420347416563900995011636467644210179318386530937892257768100145118060101213343461149128800296671860323110973226352963197652046066235954648666984339157166708145352986712623768532661459540636815537744652954651833187910538108067416640988551430597792155769464380956653002558392725078235329705932078934310893126380395188544730158881548078145620444820204162064424384339971706997267459957322777917757953247246400652754708837635506930215004012189425145796364683385444283233335351022184248273533352328706661485153371158402237631402418239895897718615511771091615843062649006460177784213053747666667664169010206523012984617354058584020743432247705259301800290862786907141021609150411911932688606374113824469782722578231506507862646171886524539035721625669104682403206215729136850790040867871234176680322096826428247073033921398705861981472443776837537826653611609470127570367247520618852930447144948345640886347238434949508616006803921896839265250092359251941760778901143303302440034762116325509569908418213400336395909442952659171731630305744560785222667838272298381716628936926808020514987103966480217301820567478449552924579190106330714883214631973368910679379116427351307701001018833860084850651001818619896791482486459062132494742354999643015328794544079526005372513418468858351908335440093740114184941665138213785489058008099506874867788730470875874152917257607113282680138090074471718980454954558314235079703771883578969144292459885183822293850145743481083739789482297512105748006464325838031370297755568979345877320243330877301511549329345080888924592325723862337460607692331114491365413422054636056796841699708973079647869853642059383494297614522422263073998486331213760601445539577899584080790244118437743098171318586326765151625319520895794556196849072672096863697984926158783824859065499582508668036612676778537643188175362414683849635582792586316104965651975752041418881203599824369055422408871655954217532937455803904247938667003120628667808009350109850581421471211814818963863653028328502320037481447396398964297835608055502298927005617413441022397400138099876853139786692720849388362567004160327939434236200998045230341592407634680113539448003955256322172579224184106450627665901856174328895318948818726053123396791069178433594078478115190829455761656225313329180871411266079579361799680876706427004290847575734781363244776682801006355184494034479894778434351527961862718494638951140765865730626477681019322226694609266075983279323409783527634349394338624173529232495975923214734253451112772142966433806518279338845574165727856898149748172957771439261122844622251506983352180471749530324649600083171038572075532684797813425121266153736139164684155104386183811408266311428577998055081854149920251204577645944823402287117017464125718038312465312030309823055406430319718012972772225722078085069502812102178475634289772914851412826606182290990906449571345727391572906752406036538809627671876774979929873128602725565603007301822557246878210203690494038608898982591266319965737068417706913185090651925570651828015945884020736447523961248078062070582959062161954600402220272003321446798508445691598897000333327770120442213530296958398664781986416217551192656176998113312675011750908970159555764039351174719046425838306936592855687463299841950187044416345169756928138783829243482010353936087583916849388720824499864875030210504813554885898536947798512967563401848115435065083900398680382469030999566932872767125082797326436660498091623907080669117707051720999658917413208402343910743542755033450381772321029714763977670335321584268299068550104643179236240703555451454539620675412135742945827153734466518202994487618210845202149417696330088917748919140807062733970356840893038195778026113330918054778604916279544949383766964417520638588606598754378035590679517260048063371508611406171306085855457556134063199240388879050056084944105395397712646613308266819594375653567270369069211063917685738336471741676729697866543802882618019208705061270795718664513998121099638205455562058239282642034108610072194918536446506166127540105373494599983980363403917273839809703661218713655164570525347727164669253671324026736027578134989641734101450543559155709891557283794649309680228711483347443057305395516984826216035583297433967676036673224916859187665469806823366710956980715184129477959033408941639807893699445358932546646269289250585503315249381748948625161464355915171998530845555424019252036237803655056892045113152537179219616986814488130541851002131425303025551403428882339897110955081042545482484493613491013346775113852230736274942913508658224999489281471707192311382425744752033649251849987042774771682737131292005851017735111221042501909477616290420261707368328653663838865783950668531090705562037874897971308014858534271817799331198508649538522621196323486438879401745268655269385882649011908774741938148986875456569100586513494110672202492548181830785856701752848554667711823457083486339596410122107583047750976988289227330560243285059660593138267781264854664885269087172870866157524878283725628272494816785177243826334859776822920048681344908729083410132014313747449756395476117613134515024876447576210980088292135802625540542560318250810675665466154104781079536372472694174121687143757156163978464812348091903040978561779958922601912923557276261630397817385563850363290368912547447405249074962766485390290123731086819256518413028477131910569567208943190262220605629704544621360121084828427929794419378232189869941659829596482633566820497841870264929414451858605046267215415056729225518178791048092137135565774930623032419185231144303137562530120445355170253438204362015923011439258340992602999672593913371780671093966198377975880662488040117607517753224565722835696040991402425579091901389345982891602248078597544948132850329491987464454287434344366159466826078637775299266700431856093455218691566931864244030684488148205785156023602919888482948947838632719382464560078087953136572562823510768409110872021637259551221815507103236046071967922835126615252741314908746969546628558120533160984305782133977928668715151276150421207562975454869679225464282670753950093735920279135958045813513008946862854802667107337236610358102518083785148638526061321818380729648882002847918056888818393931190609349468688188475575207273978144836554808943536904609089840630186326126707780283591190983368810482313205292304783058960075975089965564269677128746484715277571945716583555417274062940781074510524795817276765269644725508245805569829507613577306529295055990346204181664694949033379598901188387201090303313165365647335486428403325147291848475723750586848997573209644378765783386085459161153816038615069238260709233803200178525606158961175805069897390734812692587452117467998880915047716981739014718091929633075054289374956435940295231870901041813396054520001023486837760022643193498762742977064278287549973362033498503903075045993496764393470485006216480298272149262143430207658715387953256238936087957123832852959532770171137112940861112707764728077144421694970884447678174176249877046127973933027675911623244960484262690625316903347508529131474310306487362457968116170027880880937684685650792576541035998330823609725961221675861960903648676643488558556575084753342819744442333167734224332655461636334618521667583932010055120712130188058298807529271221196714760500845170461342147645502239415706986978428085188592104123648427166494117812230415793140721430275688287690936370232368311386225313359146808279401828350563093579297058568176977553416088266666558839777397227806760481475219930288703927188890159028128862015397757125717653236940529807422646159589109364425772852699809517830921129683416409896568257750698912279462442803259571990383122371079541907789684652936571437429714545716257171778914580384762619633088362411486059235823480701633719135709668096202123481871383560955665562143809240463526739216842802674525677476749846985621034280364324182454404624486286294243586643931120321648260503186444047864606787430245727634933964003022437296960059488998453207478607578062487702565735109938206758328834426697323445459333740855086850332822665899153230546591683547595960791321537218286870171008156189427171436058298388102400406095918119753044422077516534883753090477179588176943184527459009039229085958776958012427001254912404535352235744418914078677277332949586531192063926270569132710100417975141110966323948356450679346840618542268300072493406160309265743655368872209000265797231054810543328725292875919818571210176557275056949322065723478376512397463844300466650309562467355111582104368593121286592403296492550449952302521835770013616157375784740256257142937512527194134920280077628210093065419366971543204312109944909506423035481483265298945025484662862070635374519004525152265412083099625312791672887095465201746308285721181597905504774861630993548529646651782798143469609708538162487519624295498232772543287669576204360988003206485548746636445574018069450964061205023774329409728372085317900796161257932834313871414620803956349782890228842564218823588975578123095140299584230324414796752872027786805399562484915558120204749230160473139865501285980976332081792290191585416640001431803406399743446359901266909451275901817975235898966810001837502118191911239995927420602801276411228535242470132479733028155705550833744547660719721556417258172057461371364959370229752476240410308798994594329008304035378835281065698290408583117672248604374756193016583803825518686193978950545775311685131180959288885450569577537122027707052269593750864647668482568268417964665127917083286209838781348008504475240696460916474510679107826376267862911496673351868150770859806411239607865198991746937263074761846561809464197754887988882827264023820610564633617178266003126500741482824774471063112451679406218059981750667231261481586884578098249992502463001152459058978704577650883732774828906357423773233790578366707792493507109297701371606952717728496101795197428532112198830689275036124714854393815714610952138104682298219341742613561494704196829853729756547810256445987631319311790841187522215647435517664301274967196106110435600501351610003364806018416817903222903304140255681652030578062778057182634881657949342993160099219590815518253099294689757669221943280461365788224854942260650603201908552415556638641436654152000732561693657903158582805050238041793735933909314237710113410297648039471839879633852565089175348563398851175499854236983038926343541096396811197289507970918069989077742448520754134998619980016870319943831198557206351735487963745475308992838752219480110179121125208630467679314887118014528543972492030132067474015210459192861640521007046968191610398140635545410199761419338947020542317643706747772393582403571580502727120896531476947782016416402757436837609229078064918128222117922979731505726226352620937122592806426855467498183390854841862899429929635429306709696286178280746969699890530342856995954512006020802597751500642870047764015163174893230688602317953072540086347577673450267239556266062162898316216962396777309160145167792353172615044236412636993251704199678409061032153037615863895096322180580107912150990975750769663812794802934902435951778224491606818917586580808303969871473099507190412229374681581179716272781319238923251600796177407449864431979203481429492818996955205603799945816977900144068572402285785110462480136113300280448119974212989441086393276326365372639706868156173433158378636990067009158222377257744031949593263719640330425625165932308660471601757791130866355032568859400043314862957293159209394219346810256414296410508084511488611256671635728554974189234894025136083163835789994878695224604984468950471707379825257573088237453271019335606589260146820626770475968143345896980079930183844316697700300062285437703444633755440696768048658569186855773775650768778997201663796616286898440117724946833002383656101039765672154547302570439901729137385857030931307693083554701747207884239301108143442827330113253706226200682741672289235524478866527867710606054488771184489520288510828924080958556950226847901534811737044585343283173034205579336066588588530476712561424790552879766447074750241930841785437917187092672745804845416321010959558785053922498608004870744534101066197814220004748747634395838180036575293854748492524200984916309953723231060833981932581291169404175343937542224277717582473336846479977439276306713290493258023983099105973030530371854251970837512858528549800813999289249745843420155030003239626754865750700226601487740213093130234986071284559293620993323324931918715130057781523870861327351541760723196827143160413969530393153565449009169577867462339353149138762840600043655212445734932483265289644068396982475853276772203106801092661152370393532189102408170159856923856577035798543794021693575578287875088859408608543814816261457706411829159743227303114486753260602851831334319185979510578873678762824085696219195198141133995646688736463320433207365528147634826249306213119246045682310758803395011836494102675448698306272905784313855992670220157823340002810141960419212984979832252452623340392953450077363730099300253095817293791181260810769582432263769927154434307670559558850362708781327731913418230559448443088102246074908930113400727104827289105825401029232600750163927677022955857062893824869873890549238395209778079836988172157419601345210192826262372535489686916930670933592763047521894454905936602398286610655630912977749944364461092469565392540263007454216743875345551153692457973928913818582046697120753189819978740096878240552330571659779091539555420921053725214798991243150779484632753123104548728893397948875442947961709717216303469477202786361437527460997280785421155346394761017542919857932601324466254083140522773591289118684154461484148144753329457566919891374295101202755021474906357579616788972845673348892112521574941327306344170710025337510612626819394479689698317584675445961727663142384915868583837509034436788186294795112805450096236408022035257119470427985532804611493075638805555147045953984993354301239133816888158339386972142615519537613778428662027159978801837453461656437424880405896715140754980632891132025374289575136214075528553576622323659849247197180637144157343621618898225061744818527881542092162498225673517489662911369943307323800746590790788289370459850784688960224953224534066519119243177332143027974058735314843331957662412334206307093426108079349026552402254637798004600577409031986432860184817591556249690475655594596937686237676688944285131402131465626150030560234964932408542011203091816379559911736962303656094572859348364077371833067966864207421491579484357389453034838551185949685520444898459460507456787925649867919782911697307963485637832442404292044237182633834630210242542987504940290451811592804884103742153808609772272570557100521251113593816767969437606145608874989909057126385960425626508343419824583956009245995667126282877329880857040700888036099316845773972650208007836028720407369038916456066090316650107231450465500741341809194830312829162524505714428113863174068088109672933955436601638285415356588650368046047773080937637327881642351814119750062917932426326487270942606087989769661895906294960628433848160410952889535148089393000197248904154455550845300995420845389720953245209704301947555266018877199717401269477396398233329577404743560431838018048355951340003625095500925729855879966198040375049085381059482136458611441083280438011827942470093089352027399728353533553880042158083223369949277855624440727742447990414191245098694903116935641865125266821059074117412142445975725624947608878579983387022951243261564865838514383261605296749909178837487448077342396351661955291307171406200502495064954054195299854655129515009361519230888879869628997657780990255337730892363582078489892269144198076406068024917648476735162168072988679002314396095363825539945321247376001342622458733904858730113243462657831659875707323098179698111154196105892991662087539667556038967828265384843755873972311924839419804787211601007283868660580738839410407556506404130700964787581395880991589091219978976285497390501436175385723741759502117197280598690535146480675450937739022882720187238681417562598040240864295754298056371603744120819906054678927663278731039794271436926044543589751046782597940580130443587636707730497705758517181960119719818720123610728452563219944700621410431810378561963906416487334661537646540250343811737357982195443207060332900665608812571639838441014906894948429565403071584717294529564662962066497016955175742117104342173892960050412236444779993598446617620652610935873257609278692279373812350963258436189470238128113020158639227275427402733525624590266263222303125131123447391194110988128804428568166473305742248074582736728024731238023815157901661100876950796522964990768966330663660178148228956821225842749655240267857533327691127830121264524534146040166594655629160758049957524323669322014465098468123173747600786568977316673741059439740567728109149697130110105868362953050899267377780970470609768279288443308834951884533260591999862971859498657081642921410076894218899782550638584939659986619626574670716672273959962896537910893759542033944711872525336349091543919659981110508497600113598116291603229499322625551420498017212453715427368378366720401202558309729376500119644758429535474804626725975343029956502467311985106699218021225558948956372893855267466056085872346636391438183390499224101129794606045913423361645700665790282349147483712267542148214177939635732550301886207531227073052579878514981696233565063775795694364792110871403893097350433497521852260245568440182730786533549525838801198723260618080394834607018501599744265378183655775168102654628655936732931372025496535007953896638022702908452691995077390722734725720936433446967273804442911504320466879474571677920414378494763594960644494486152197197973551760790500074846130310388468149748816429338481480759298194301421357554595458016121613019802135397142961017012204408219097206941865047513381368355506282237992543422323414692964459068932865336810726864761583369200889464727809636414347445132877395839134140965039902933456959696260232960960053794773350762246241207911828681953190024102728797357788874644665529810796415031761079612116970976936271870111545283192131506815926962016100995301756122479884312800654304015604333805172110239128014200763074234777524661725361324123862171093528034434923522048829291367358554912857920653509173439294276756837042830169333460319450001610684479881550169669254156644073127482045998058718779474140581048075546009579221744348433557436324426767769818220613670553915865882522812536663122457688873904061767958260627529478619033000266705684362077355881754654317647116363119683804578803991476430716339418165508395775687702723076838996010567219569878255705122225007061076394895986499314341588243886806783705501870363553325237652583159580657498993805521848021512394756905348561916204514839447019002210948722428258732398846629315940795451485358496812589751279553768485497604937933920285440604811524057648096077975042296960269732829045945541681307515397442261493237920239232119090583518364905005334070354099650698008055133626934162564026570834425164932399462631387998569788457387674663368215291265466048878652259384296085793001343538659423237120431056174575790151427445481748874121401186407170997985525705922627739701695772316432821240864680692734178348109453751529315502621511711508553922867122682790492802197614329449496601737873227990351335492738416860717221809137170725670875797733128004587113460204786610382420980265295314890473507805590282169490824743204065534058304949606991104817846185526969140149048026404606288126981044876000600886864043251790334914164593668852866677783245063369136818440404623418644570796939275087376142801491121625016980210586506234208242739449286810297129201049332262843385452205281813281329137712705846129529587400261271788485992261590341401343527524959851484346384686029145659837108922628099789536382847545933435682004819894405192214078126789682291798053743134078129035799189513371112391366443976980281585507369422770625867012625163161579049972264578037349957213888226212068392332015138493353056816408849487781680380139145341756003850129622453091172991531506441236053140208494635779214053939797792601181663496378716638122435955054246331825412811274807419433908507716990870202636256239721599011652583023034079431981948695850699137893897638986876155963204032436562247069647100101244667232966091286546253397504188710938501563006525060487452543580453476149454874531651859230916003393290651638262074055087491414844413524492584000166458850311993657636974703894692050910110256617114914421726341239466893298317236942858201288959473993920073980747879847113518168886659921755152485939300249485065221929200117832941422501772598940967878859438336937349715361917464287899963562333007077696826274895369717647230189636446150081965878835526000616927650411228886581191803225558083226044986788132992123649106348893714661016815670834358340796489543201690312435010862480766035012427815469680650485568830917410289583175930602964416797010689297337751205237096319335494046636562165840635901498283641870174805372563751237136980306236651031704296401432859249971673958252481633047974453142309673284124542404625771147387094034181147207780457151922364848478025057568430596437324360418497350248518505021787273497719959403794202553479325001890368212521987277351186005307902464752292164196492552688029579657867693125594776716243743213915856076991527715559953383007765499082373553966352365502166427972503245964135496639283872929666311984023758230905151361167449066668389166860603632735712835997706580265902248749738223011955775371444208305435150021028490447219958700496215414661954499259561422843811108452804304200053335946732246467048565081553986436560641970357030515922418261541897771991936817858502395446929173942162530921686584609139191965480426451356003224321917970256816731137535159553864052897599371692840728498067441637061256165263429014319715273502667539600232178915574794971100366523886082581413433336870104532910548757795988768583810910201581213603763301169275267176593561221619999827418493287607761127706937993623128064649610141038016220576151322789914794577327941879069441590492398302767369494168580785188580540063285040974460671389004403225379715489162349101081998605772540603168645007205215531265831839991579685868580274730877353518190005907871536507954941698810863778065441119982429837349545136832772613181478255999688415218372698618962847272526890948035997085926934048071272374823724626672077425990270484100809543847135171061564799447055747473558240464428041886516470215641599458641704802939945920898510623843407365421927519262238776476668354771375788334000682479576830488912241523382863548321746284969913729805425115740101627626337324209126674904414869395177124447362432579504636356168286311242723621950716692332819623123762575540129722330357055793603701545913921757521061173352824176427243343229700576947564475833843093910663923191042833687316889763758510418816666302113258232947990671312144569690545429269228959039358661674025040430555680270394716104583661697867822775786478340760581721621524610712932620560700287459684563910914315251398778880953077653130991819674572909326930734184953119083740173082748937400913168269762410248322529311532739991971205451607565400584915889056453911545324452127275366964249347237416518689688923466474222212421512573959469402988032904496233200213243219484392466136042299767646433169340973806621650843583171065587349370487768922503438251320734821967097294070915899268739312673271883672969048592165398553182080932718767390418934094037132359713246585182009176443923411006264015394857045569148892140422724574818701276148695672703005158619294642145751057206723582466693162293696501541553350278474166922714865559829557655907522092436986246025448570162892650906367943397947811851870336030107365964326486239535819506015102062533233346088378220458847274728584669070977127132136653964736204745500929608474435769969777157609094984767459015199162240124827687409805517879176956729282904261845459459784075403486583634700995666262130032704297326458915771098226200325811486141054289203714725648610773560576833356176815129071915203554647987066162637019041080324213545590962766330986864876444062325409393596043547000552765498191950216989285072497002279911262312502729897234714525407887016402045593336422541976129773331462922012509645370483474624832731031206478018357534508883408445681315713136199624557754813348694058016409868137595910714950993781031260324522935130263095100273190567305814078715525749704843766463515734920700028786650401917420290619091718564349979659532831092344826168573116273696604162743928630591222799800692225188192518562277168859104629566359450749076713539945452266893363111796786149663578512400022923710024999975320663896767447486193397892833215161219283852765058625879760911656188574671923510595692870262129621856504469181133299044794186451064564210453195014702088520232717858588661133340026885420703681397992894889781114428289566161540224989490654917017975988241457897770490489483462064233181405032275232300176965734149614367779336179896437448994456357547530107050355749162600923341927938948916644070644784691630375826535037535467714386978977748436848243650947083540558372351798128275646748292599609279683539594473115530739346702403411423956146162417364468396675146105583671920805845918662894619237854965651430632766083773620682937159148110973014384255570805729248365312526959171922439449603253551703820084485102253869053665654175217584440159519001945064709021120615676988584156948422062407797642604028099158004751487343431380649524175548162580608274413036127221724181765733032834182549720572293764948559230897099617323388108574992051746706268790932812930834710934479327946491826716538496812902758048843652038282823333142047952709371380967805811203007817715134670478979049169458868185582391786316424338369740615167799207555835761451047552975325122451229695255095568628602806143814186749996162931081397563435266390258735983891723671403153089821753308253576990672680853954163980524785570801902132446565743964138618919676834520776597690713419828073667319553343269012029711740336300585241632071154709786672822257650155803959788717844931129072489238457097763870967416873311968479752662006778060040625246717956428158772400893428825915753371461583362103001842028105394484684367258334547288349659413768852878854909527302014948006144943587738544795291473797869630094927342212944459127390792095579801642730359680307298102307078369702028278744997111073114944305967412327905528823748269722892014966117510522588944080055247928032900491991396677225965619989161391555525074755590884218109362612010121345723378793183394759049717971692110711393007396449057744581030675572342081353574683163757316223567154946140138430615255601900805256530162855191775109651405145240545767874874714906250282892704788435053741184557015820603233558101807410564481681864610688575253798839759951519956530331606705624430369464085034425238957555097263712615792022507229664720089935808547663895598964764968838188495636919593204932560968722231494579194038670839313283004077304200541709647615307002467794110469176851492609024353402668943693451961240038450063741019672442246244024505027421241642566581871306586317893777991322939488274288068418166596936762352563263435283175330377825530261750427883473889926307252628389169682499445903810309417081588021620106672006115387644909847967287953072907130449375505361269975609104054471159313787792708522984919000999714314997883039294947438657140899733102619070257305962025678617201156962985726423999287089651233690657773719420295831251139419730314607902573329169745878736178655033271204941256851580190836394010303810685272924874985872249511822507085320724815163572332690494809329729719857035705158655268618327601884514488977820584092500816583924893611704746180319125474280064355241286995225853114796051095838433046525082703064398015901846913153617025332875774055398293611585415998857075694293441282450004670545723467581922990615038434245909194047830344025436385460606036279414465450398116990023895864621996325972181862486549738444440013570200348787544631885694725032348171755144761939897849230733604733426317770462145685386546266834389646609408286183383495186514665917135998252606717077223808428744095297997387967611915481401617554085163083809517368108339501414938000017348034070267035408012223550415127163096545101187595070961537490086206065542466685058834301491568397413507271248758325916730512674113235010565894267173767737290687756386009962488834445212438605926042084064051085862866096538857417957359663510997706875519478520855705100921466713841873189168801110382696287743401821261453659118157696493141539727539718085492375818026202621548091777818285808274699799851010822404119093013673764798142062731913887637249447889582968827904321904423902051102075552914078645369407419262384224812550442143576872253727394930056156447087549216815719305847271234110297068397746584627028881304998549311845236856731007220479227475465822929114160302461877098517488938954733999584883542662618862022580256609512774839928336492579333861394878800843964661786016313771113006203092701537546135015435348271887892414578160050854779299877842604842724767897191608867677114581285175929329564914693301161936068651137000819542102531549371172523028560453272459034670413820479715443278336267449994712608230800085134579681019405691127649548555806951348687574806106922301099811075764097611576607146627743563420708742797037722696025923258995136962033387155617973473354630460084995560308289056775497632878449387377165762749594769422420179280551050172174427958381386126968709078783525903056285462526091716372091751963320712984902453279836213042482396551569102664933610613630062334198926985490542594399626032352473650189269369623844756038690172939775883680811878511159165993864908977409230802693797474179742963578577810281939973352233262872747413081535047086040236108662203630087684516880066690175795019012913759373190987725030670927568721233358440111498460601587422254648627984552984887183035485847586392328698689479358971287037298675733313676097576934387526892588664375717909224830740609346295695165892756978432754524035715939985425677394829655067142356298509285040755652181941864960595715613154840587480139811490808628056419576578702339388704988755260935247075060383555055157065685845340522692677520561696815677773786311649874663996076488766598613568387300219022275945118858673717384557578102960523905536841865352344142483580360968116635478060641769892161477592466154495857261575420808440988855728345135820075058698705968959591000686217205638267827426804645556705339393542226719394587770767678029510308946915125661386906205718242582842259722339856543470183564265605243789432191043950300856820251798020862834769234981011680791232717410717565364745949452092544975373378307232747091703966021783128920552518791469979913016837755733192615885067692780130505458504006416358254287849706877487961421431807301808528779132372336982715053317697150452030802414541394415763359752170404863151331932057424867452525985188749893300234079808100082323794107893804036891735747885696015712222410965981648493223552650361527281082516060011269907424679010049845371032235118786828825792639648910408213134524748417556026843720581703629623494313487218408496862982818415511162078212282891387272036107002481868955042919327933993832157265199794148218222873813794639258856102230341657255915919828828826172561239856018847220969077389924928258012420751193386317429891447096826341832956679598454083324002917389916811455125744668764071482976879230168914031030600869351145578894166591346492642351754246374912687330608382835199690472881234770570056742205233733019958060111158310994531730396373593329503404462986691021244977528856397116769672915935622135291784144987741588509010660360715529386619861185040156588764837568181917267256699816834867586071771966267715467526106569644776013441276057270760696793373678307457253456453017660940380052731497367529213299253852062462412376305081385126365700771572165648157386044385625352102778161912332552995991430627894066881238366295504573741368437618107366403234389090699423123893615166923146000591106776551421155419922080924655349700424199775160004069975588267719518372750964906317022344383500301227710793745954866637112240437874267017247988843182120216985948385653579851609167780756260689474952553139875854386869754715828928603142553451904080764598882745218164423294503322922272010591431774181394002305262651449559096591111634603767244447183018747101418215706504196353225987398429774942775343994792559588902754936137991442864399078545583264327201831672256132072380929257850364810213750422458146580239599896755179720588267944338441205653250781122609868130567634969048173939174954863880681016666073111071222334392078991621947121254602616345023220062620552799751270304539435654887429494760862830386314686262520130617104549040186933418113285454453001553956695754660622581529231291107831983003961040726749847668013561021583828290127961247918432529153628180633393768441361208701634827272485392242575797846420420886129504106397570695896489071068530482805832146780109007412526310245689322109618905664917515897135262460504691654528517880000224989466465850071640980977298554273686079489857495218745215699928261347678046435514263525052533056652887087717628716459227150682324771459750906897502385449729442537246304588715903131757399532410704736211674095285612289554428316582295521726464020737894091292048354350891253683065111936465622301927283976056319493682805613673199974401964030221980526068498773983122162216229362758066054700582643823760682057466733656134111144887984573246877353679078719048040954836267110151528306696881304523182413225169360298058191469001912206095822330935024037237482561166629302949050563329569267322230777778744484431848314250100541441122582583935527370726213087095888994762657597347945350642949158824494976965653599735620549315353823823721123432370259179736296857688445295691976367133455413779010540288230977155290412053823965369256840960059366724548607553868044717596911605492882904086020177249553742071204706446563956064991135339161183860061909141713565878851843538771433730355205127236211238887069555814880672134487639083862021946718154423232986051611592961790939470177577751329115064530515752162307062604618758049099720154303334545496672334446469938470087753258014829620181880590879070743478566800910220565568347247790561636835474471335158301108101630980835069624060408642961676668334184729668092845411034688391939340437164932818467726001833407534903590693570468049507032972340043769571893398882516361677741620603326550797212334755261047546229622865956022657204407980531707164590972464294857539270190694722490214467993724580401929194784507697651341589761893536546003591541960163665579447962629480315111646089249032787763527202040292341057552026451253951887030268846637950352303297928880600140659689218239593158195464533541697586354535793474542250213385548661042855635326670534913949720526095332413142252928622469934032466112813090172546910591527720114586813288312172721285825769488914531634178199023091379736606272463073711564891866370282083181621238800192275678772222521436491741788366538757216558138707797736718724222946335651970628086727767288742759333068909166955738182804772833903246054264341545981818520786000640778675959839722803943226021271556772958208457028340100009025403980685709448224941952673917632209323724706850383693536904236739825194105840878108975826011629594244063227802449532025656135192184056839927638463110913145372025866816837983692880103043154210496983766801330625357213710684601591442211021264710145911886376437586372578801376200807315118450490217707254430261989472776950720436792091080631738080656030383177927098065728276257334144193873998769233583969996406293529821468010656185334266527519497870871121708719053987017167222978902270374714971609848559763819381330204602123214378059647106273050623734918123276521467339769178839140096574552789362643203922012275807514843509582358143066155598741968810113217242790547015532111307910816302171183125185128368065341099435043529439671428667791849516603918517221346293580022585707379896177842347441709835026889896852953770434750747111840288066961092655094422431135891906127758912980063014615182001071827410513704500508908886948671894945553515826174552535159880408458613253644290908575925955868212116238921197175849951424487279299070776261589980769852732587615292729338240361677365652994215676859626433693306529594027285803922050537530877720653230459128352589893474714965049422444095392163020314660077304580780803489197098744661295319558775080162687060390670478339972462419146289139318450328175669682052575147308947534593261513888319971657553321730106566584207502389801920953270453310706065775388489814997601277292926424978863017866866529952548127777268702676855325136846076404046303049830072724545866869427210137945146976870591417166803107202520949637181045405339631639303818237432182731566269286856830192495649713955906432728673553165721582801216570563829046366878882212869597629392990561036163754690748637096401378992179812879206942567495801911786058655602951969712962857477060780458130098667230248006018128323691280925691831130305340149209885647937190724268758487977038305464646694322907561826178165130068887786647176390876477244602262080220937265314539440353662998844250389595355075816844192056879158234524150298644463915535608831960665879597828983381137413363673084609641848783848388231915691165469623377669580108332760470140626523233263266876661182008250002464845887323514479971282819756836579405473737767078837143825057112130200469693240121593904861615566997833502330148556815320720441673998716850657508460638480460247728865538213329834017037130981736293504339030736733977926983937827416541181066546202980917024047094858118886772909308487915170915812315876852375121159316407655041859873049693560359762079600075837749803251881083620863097782508684934748649476090816828659195724768900908114044765300331630465487095369685087043513332105914462136804204900315312302720730166988190010486850839697294119322132052307355364225949542880569796573253343520958199155611400788793424358207180356628384964055825775055909765183638778440661773864346041042803815448546736611987905319202118446410419847816963086150142223036427622285059606332635240228111861622565561925924344876423657432177820475242881912728014570851731326768435978857947027240801174185473537445220444429248809558327903701953437315778043287205289499231504549158749866131061451665785473051653495063532378680665065410154133653572470365010090531506561190118433834213091952437436305679810563638152323357999274239323945017766285897720147702017238467692000355993288919761711166325822016717734294545141192007080971305940257795313808459483253710615174952082243614331191509129318628420953648003371768948792812775617559808097378054770251561039566119657598282361717288555017600036379013005279928696702577359421381597011066068358030750191104976071911430822814641028317201661659194594888884158414244786482354897467870471818745667108941802158902817550090181982793228613822554412312965627089703249301344443401301797700866679880259034710405569223750879704653504303769394856126283407121684098883122422429352247758506768622780964774963351604684772066569930134848569042082851667340004449782506050570484216421945613723516518589120708536623468385408639506396103011657838739322363822625017540586360582877681301100020612419803506399064904114669018593894883103324264166440632858988226675808653530530821207939980977486611375954190944611963754215933592925425552495557771915682061168587145993804152592549572755049044019757638678571174109766534825899402870372396361033935219977977294504800136720228233909075049259467302753040337949912044126446778237301625648407822691761091523516371711005350749058469436227298813952500365282785327926943036698507746375042867849179917476264935877607395797709041187811890508756112668275679652076030745869561032392092134727358817221385725873733669716314225499547727758779107236447292622939867029184287340230443241955186452804665550093938233695410302028298606777429668496600376050958485992371468767870152199291314754908840098526083169252253498640418629336559546069410594292852048012594115521169354168933251691462691445369581970701873180865490466253241723978560165284344955244346686020474816126292886185641105522545676610596430867587833241231257118284342280646809294370183470715536512201374884546536186747988731312090599288184848237385780245064506660895798995019935600745010941333628227425660297386832973457311349761577843500648502022386026903858909150477527226276148665645706526453022483823362702287968312580748170654708203788149091286253065495731469288208975727977707137863220859728116621145895471085909989806092846969379611670004674053030687238207220329976734140520044445141131435297120665327037434469858748664671062500408936550374405006862281528826404684523702824320716847331270701516328495625557314676998549917112277435300705158550932123521609959250760386865013946083105691001413411676208535057369989084903822231616055665385693811992904200640826105920820407104454265319269371303233234599076702307610650238390205035714429076042171546509594931492734811808656443113948412340954884440432828980704993097587739317479761157590589570699695528095128734316010926837575824567907752935179227206416180258530127701023868099539947756858636020818863248228106165426467672426428226532555284095295693748871507849438923033834450883818933441245614361491053909665643863192049656812158959097980777738249844452987055703255047858563249045626795170950908596707243419475835056734354621242602306224588880278483993251150984883561748595478874021457480970210181562209426567132923942623962701491766539173806141395641885847336534374777205999306255160898271358617315409547689927524359108762197931907574836011635552003437047944835205809061978577144356865607462754565272982364859372237807990960288570332836911845510580421362233447769862635494647572805368356526167838549954632195619026962844707904879566303020616128704852651038441748246093278066807073407191065479237706275636409067489538169610950575387131519918787367428274119343725704925358993603905282497637461188940985188223750018093995607177210496329587153294465067957740052421774554264181787434192133733341635724799630082163102869317961979760692187860851642471071248147631446456487638573462109930135615292980781284045420801255216214534872240762727166602484715667516131756827041087352130593350333879214351587740812725099054443361046693185554680700356899634026828434200989124489309359216037889138245936015975946030681278955724206302554274027325042183403801019576365647604146029443085289410601780601323746420423252750330646682221313591312246097517515200904486921776249161570636364218499853630910692528325671100283134140612247042116898850779924180893217870695958073178952386739629485591115654672103109892219471126252567771224206120405396122272845884575918451795189093082714354474650901846218991125590260541957563071761398214593813602415467824256708745790292234078049987503623567943229017136718866446081921915719768197848430297697649335188703888258481888569076873819000430252549580267844171917347528356239106154405194656840238813729540736302826038370401638011548374261863248983625147806438889249628522216400129739473575805464487313958594498767727658667185785172595561563438233074563027846184381965291252211740534565266432533757621264736724928113729531997117537951766268362251528264449098211993839652634811415327856991941492387503814100178229522251617117258970735811874464188606037868297203333436605405943759455369998362032926953308169692203799319431109883672189164321956061708414710574301803976819190489599081006470802246039983383612980573982039090951621597747855925998328112416447639245258348157307563400391404134760146627232619369956709882572939921817020144108335162790517743942354023126716821258007085572330604757851313851902810575083170156394102371692173912621840677780372282545986337401597041840645994714704864278995483744457789528848811343787007658638917064123741980319419527076988937395861723016122650667835217393832441562293831456118357602951113567814637916766848372168082508231274101884706536722279913084408393241837755197007265652726707230693802998403398744316434808853794891589247225458781264495723643537848260885250981342922866797099478165068553374855253402188194174409474663551005037265550788243921134291007352642834136240763953200596483913203053260155164428925096647999878436853161926442409979620129888159326110183745895226774000032011664345006527760406548450577383862741650378877206894182767574281998337575195821874519557952559438995120347038655201720719020571086057001739280721018995668408264991055966398192674988391929265580862275062007326830334127251113189935409805212448755303311287818041349793332184204061716494605928954383110842280622628113325524877021289653229244720697205442000720342959077943111897707296061814831753463820830948339404981539539268961833099753700784871372728085102192076922266390459318319404135292235231630168384506427456865227361647201480911847389984888624404219040045718850759680925230965552910629984238401316971681548336745868746884155698149979328670062289245766557123676462725077167189420805632885265641369515006558476776485621588681591231610107840513151304842598107833256582232659117606859108124574967266729998133911301116462444406121755102592517269567983437616751492712784151205802884037818853477107414631005996280921542738910550318770319445661213073867290130723651449111073396721354179220294175260045650047665547213669456214843680088684454533689211920920440398626031236838230347520479103885693164245367535191574004008573264837060093670799542101146357305174761029260421499645136047180895670873322254804573743479663245833681670248850800938524368185107032647956482382993275207454233551226602752802718851558833642389129863001681639182529803166639428567727333194623350633314786592566733754487747867472440061619025109020185508802651444931088169532131401255305020283551687835794122181702292247249991008336959633990223231331309798222090188436044356136143622283083374375552535486286410704607714145095080576347161502863180813284865554636572956131126498539361604840701498501929028449767802285140814729733946807890850851284446482727039140380053329661016764498792161558174899757971369585251347672928044214579344426781718243697192892082003647185575044452294104178361011830136037864536531745654448296667868198223339263689402265263778175273268948624366575140452585710467989398877848319937577316789191594298311200945947722658831834444333637491832791338689159890808178104933318123719397355454938689908563329685079492020912632485201542515005832736898380518024809813942126032753764329694837973170507422011862599848241080587506341194093384770124462006148653535280220038982776319782043991382241866650602446653559908164379360327172613383849504520149884093937698690650395697377559805609160522722869286633294253202567646825220738016917174404628901189886746784984258659252191765179378539393642146722254858142236610198417386616898572449217252942821416561708679478778720666082551041487253638173394420029313192289323714271966035272344566607669724265002198529254975669103657227914796806618005570927677476584820606170775003710119005608281466032822155667909954094164684987520937780242072605486211148646032474079873118482433009647494482468959273723732951656001214288489220762070642934547400615306529482084870841550976338226212594848706240578482305944018705364535792980098862549339410653690505479677386428453106912924911536364574490939768245869709350729197222910454333769120398581067334262913755263538699893377630576007189794341555089789979008376705158795549243540281907531870116289596777056657986782514649886476491704309206333804751604468506350567444436547534637757995469878993560666394396489564168069424816904799832325720183581267924323683455538149466337689932921561859844976902373878152312737966640565187468956804687967458941235571789579448529790595838503260014276303462389655793050400907811997817947770409650436502957627287614575929850067110770409387363067089361980015828850473629099525487194492649943926689182338808511121186219848626891171156234485464764754535630938376468288276245292117669723803138548387245396988598938317898346590746663741776424983984270772542533492214732628674947154229426406254091871186623983793352402184326744219115918850574280795547855727091031775971309693976772518163959820908434364275638138971198258806834519099852894130395889313568192583749157033446042825329469240810433267970736922761611279766525007859276883928219804596559898695580692698283807573776529571321386051165426127095901559733167030847045474534992790067648402659655797865862986691790026034430950247715801411156906385731471986374575090462569551750571908969816863525922837084091950513027786346158229464956911797580243122332071879069666724047830326380171952332137342902114984411151017609088539524851385759472925080383721527173779891963688725317848573864579780038993813561148615378088311969745920734571612401500381740316319862888656974688869582258629382863315498225508220089017590579196630706370448069095609810099940502131679305878277911845397188026404378174599616519660071536327883288040703304770033497289548759488812345286210773507107379649150562326857971460611867917191108807982848558403911219144842407673325391250818927445808457237976896551926939681092037653886627766956716428881659110714465136797560163346153594020890870682541629770119850810885664469527293528638461086749974107246206502921071395407218514550452508924163594247797558461893308467909880806982658936752437234318925562312665993492245969644072130609971174711630411063321489088163780175384129500395332195703723099228932701060146672522651254676264763582143464891309433862936132777514111766954041675402175862343099004953368830205154173499738048349696591655387896290406050943964423827210167722843293004419394321622356342612357078503233164290067587151238470785834137004939422614881952597924190922142605749957315205975948498060066807569215613541155308138527897268280137202918579452103012318547548601500935224142066072805874012748819639542422464633057753717014333950774701016119043737369147609088807927605091887112150990025914538659145793400251553461999617234310851559097801626793607235529524411228152691318879232857840278936092669867667298547906474402649023576028469377043669068847789770981651927853400876141340438808206015219715030127241696498234806265732415004162961392133747249827936150555000602785894987835218367830349150725673687237004615399920769084643350184205894835923614720814531474075574591875725397324121719800897743209072716726726670350827590186285467268106498874847486172227655822042790202122817574946143430269107291033478708784462886124675265256087542553258667396234862353115550359115974262583512947148410782497686358190134472180683030463271989063153275693395878082515872040491199435659390200613590546378534684123093380571668330373235928763489105778521463156918437852085828854721826374250863824852973758759925753497384045371314335821246091872994338049446317311108121079444278575127400447313590176247323144473919299915499180967575466639848794087728012676697279898135225824972327442295759735074001918494662260253444548644273291093421091684663959688409420525588956268566172200608279054156358016334480429687091095641987584412827785120946270458742958429818302938283989567980338512537233854740739040373755786660659044061347194927110344538049011885565418952271621601145301113471984513430754115934526443648554430852230207168706076823789493103209598400405668700438965500509852251310594856474743897356793544510023358675947058059274462145218570307098564165501569710413195438376256608442102969853849753846341021183304847212849466715852710860601641677083024819366618983121298086412224344778121440890253426167988128490029990771601482077703883955235058872942932008033953850534131010076835059330035730740973078719299928698146506632319463983862279464617103628207497895034660955470955231436015448818657962329862057567775291680687245574613562900116798370860258107058296841887552088793685810008210522630026053723391073632699416683800521009686395767591352919059492551096177876003814346901848925629780927810979974280861448491391542973625610212374863710814880213664346000460551433410587821497400189767473784586561550621610314485369757930438107678636627334649589606841943479101333251842815040647650080783637649028765667801691424683971404380545962069066772193194269727876845456250869335061847513485974637522557353685251980189179027608935720961407963413317605191803648709253985806591651386351318852242416680797755427221365241548223890816355289512269495224772309853106275708053601369409669435129071937068819279309310920330550400547474312115652944017465584752418906461052224122134881540042546910747756805778754782682034466582467536643140328880551488433470436936625008633370722599571714510389879562697598091401746680765392665643710479047320074948183030534486342026093283527857299924237460664590798373109332233196727422108896867155235371983074686974269871251106737986687287407371075316965006465462309286988011766843496114113126651555163732443573202895174751571628902028143217440326828585762610445092976961979865718930532453499143548620396320169285515419219543045234298094690797340062120125870859028449659955849496795747972373905857539259747280714037000667789373233527015374187076032974516787546495406749917508955727857242874025495882370197830472571480263980665170801487575663357096237604632794090140377055071505684128999828341850937125158416486946751854993169254569417024522688186511610069328621313990492148386718401933152615332543743555903566031711409487655090615013707895758839718604903471271898226241684635153033745313506779087566558626683385395990557704593538100454882525771375560572347352487008712398039386828097748849735849891127804012515705506241025156986107130141049943327616893129205793951906635061423599550280016214426698883437561088176428226395630965005741219652839935468591482289867844318782188332010831077221770523026487365348408454384421671204697011716250803729288400944451682135171644579111008944646611278194894152931936570555771045903047323069068971462724035853337498763841429910739052066721544974801876282569178162716855804655717832648830466088328279122823085659031214150109261758901444203913354743899969996640059765779881508673326602516054657232217308974086561298971023176713226197752673701841250397868613169354624366604499692305049543734825971027455575101555691748597199046471619943044137977391002733918965665075152481389110638883598638231180374295535899315426784768460650395608951025950490521448871304481508908006240337171631480024127020296798056521507310971902220375138657915669616659061352883440974697850715943230091514672194266922168344856043984040191714915637090807268685818329468159185014138455133725596981097402892713685948384364763253618699813251507059670691326866533217830890959169691360751726064444792685372420383485918296606020832917589590906170500683048520443521296168148839266977621800329415433843347312646950311392828033391578055285463494388408548455420418693107594040967916471771606976456663403501217275201530421441384229142374420804041855012722527870616114541669931397959305308398968358367108417758581833804814377784510733458528963329118146542175344761315621215372082637947919179797506556073929939558911824291606433243005176491404610803078245424086601461894879042949588411998297664301913747405658904401724361204059010489863488294404180734497153083799703372351375765054925260478552368756860310557531254366635100420928644998091049210139539237162179420729400213317505815418877396878273264861407411782595020849311547019262481752960192339441331169211300485877561318469868792121574165456624118618004386618407834309020349844098298300234645405428426195147214360833986076086233520949772444383709877148593205806488182812411456734873991285188043240922428162580139455847846177234257008597786687694921872255902520412767134853296624347785102937952092072064901140348920336204719785017607260419685503688033293988594304837427780037582764692205558859288001995875088036385886388698475200396911063377844970644015563563536576801101462031538002856849566411726701829544197336020049107788414505789128403707731985959019553910866391952192220957728608806277743195406340929974552749891516791186175667026746793145270921814132072741481011970738216237825296729039127950005572624608149768593780166001375197759579764378842843892809751179626429427439087714166779601953964331491850490549502754015442381620163876400505498835008635929594293957369000895935371824516002944134549678011430433743278499428443917891312162383103533481180590917089101946528658201607108089309271616404095587013990768261906252964902547572845148242941757972720951807857560450573846700921243866384352627772897858475611246692257862463275251661462241387463057052355096545751163106634256369491164502867479024225369585349347485193848362647429203043057594696723718073121578261768173257476217908543895985081086293592481876128202142870053307426067426485226961577785700131276169194902006301023475902747744181074844564819090815380706453612952443859910516920570858835178989653064087334870386719876481780569986009964117705623056709539913923980345587733514079654021466036749337810669656486371433852650107992412508622034934448484529194256482673749517289258465451387657819673757305841264765495732204807728079895860925286180917026681553529225001198755542305395748621709427511110628240182109651942830882978284168245660803326317376667471506476819760783250137903483035048703660632968359395421998141171340720485088376524523457333278536220528176398058593163244701136189909643519813470336070699263957394202867917426751078588542014253359027981271074884608684819198054882209716388384571003868652400181015333337754031800678011185283961315204860865742452416267297300041438346959162842392135370792373642812990169035182901695875816005128612572771924715330773094424257047264546673862112107281302241634994760053947302758950839884497357821424437975316956423480959966001019225206181316414826606456042535741455344938479924535350944337627284131654858047848641756789497460118969383713688843592223872334073329023462419622098374166107291644482508018953884308009364809756907687567572950903136722972230027612989836666780220063835340824948237614861958010920759864967756150965244096467700100503014427532380365760491728148830636442505404018709605259847388063895335344826308308163431507125034953595111763008608528795525197436295758835542058450263804305649466207821728601792120236748225077771900836472080438067154717175904137088733153007242422860118183028750095215589731777472236508667571528673431420928879908778523346848759687668339623490647586232813029617692742131586258149476890638030101864862749190551271061766706553355162602726773760986823991117561606911319459064592313200215653561548321569222727865305377502639209070088536884668800200700401072586442105168597089265179996493074136509647134847466717304357936906524986836587207772307249287547847433412823945137784165449762262891085915575450443802474863764021514603037663900035729385072894119721132980742458847392378027713258687687728769242640932756906964844947007525627335885002981251957388884520129871483778904679966373774094727400434541149106167476377180749667467824929286254189599684752434297249908326536054914278722468152560342885420706871829071954291086500354519272428030740636173604023801967449326170616256148158546216126207836773372102808457520674814415293525041521465986746956580932022302680393274226749630482678299666398976255816661406245291714220240949535726102662313676022658448843636135592685500673435451492598358492716471102519197365131259875698095440313749991063330029752308171160358009689606975535142871062874234082398998098752379965646440645599960076996377004321123590718083856648969771647952392124222528329233775124608864316173568172298468943160282214369856425144625293897593560589958325594818951822177124900481176739730434480287487999092344782038278332750872173974257943287094412677551432286502718632292590514604174553712165086762091837099642304071873913259995125715258055780856123355529845734646034230688960905539416087761878431205433613742487380863153057362763568241322402678130009420091894777693037393627615114018166227211623416258921929798038742891693122167021348842246603237322358160597071768933887540944055648382299480016382613260156514116147740993447725508659895913943530137882255684777623828384328322149127300077969948175485169049670709219493191659153527232379425261272226766253486239817447185124609282146907747597025355553775153547235567982875321619584315594449039358532839818525735249787648830239819665480080732084372028818524183180415096723769734792639969456769563115721905795897466509922142142570749766158173239469464252745121484549496588610282605083832862541212862497418419836497305194797123337619882706842714401622927711505664830012006643935670501450543436585731183843905565966380403001064624638984563032369944057209939095077591573746849010498829167736127590752193884778257221034426855410615493607587262257565986824602634766968178931712034214347543309782077499595403095526642368719463345625930639513358588699443299414676728639276520265624271536300623123643135521949997085533211504659131083187002407555094551201186870191056768742400468313883648495384654912437239985077358740824275574442762143896523544349619331093135753455207044920539296425753947797182106465935730127761613684189801818047105296882639307203203922638861600532247877585135148494817523552555332581747110653824938627322167661587647607216113923819740697409165555902396706480066575351751905396744112974610620372199878099650194067959774661164751433273293702214967297941379914011776148277473608531404424472490008021946261803534284078140726384608841076330216450052003982013501976047221381787783618514435773507885708626358580408455322872167723779542208861469835667766545698567058801630712619538696385690316814941964074298303351012115902025249622425677906105023185846279736940198399839491784188587426985874100768329680097578091471711541317528487955545215199925733841175423204489876333917921616924571988015966932204765813287781477746552828757768193335003928227446712457003726332387634611018754750560091358859086427402488927036724115640347045084241143590081660354547834956237558735762002281969239644801576466877388603284926663732907494121664015347998527166227458679393926815077258393911495999172795519989503227504081064288061949607411831091286374736058951416581770003552488683809730450169441217336766814860866492944316634606150848028701664204327131771931241419211646849628362899603250187047577724953844244016928488258201659335365867638371994838283999758493182710551755999037492112868187277841363611161891740936055330531173708879405958069554049197521400106079069638608390919428117651205451000891562809069968434033694695463450752508477737529209898963311709388897142726830021771634347291951622408115004966584362111494203703874485822802805636961424076549429537032157958199781355177694114091624636982902967763219821160882757273901422387266216275145103641593471979357601291107250893289490533373224107342536578457156104952487784244577568845111102562506208483222665874022641810191873359453220887878932437612573738715024610578800421350827541885889581787026378002681182857040030760406005718692619792448397598280479389566498707887868733838939437417103875820952637954961215610230786818078997021303387180206314663453212501557779581839841812638263789414320464655327504161455286293768857739617125729122042215404039059401590507868038992172360654057302021142595361465021103091416566633288664019136048764347088188260538076560623230594235217421470136475253245698760421626481279546294255840662779408608319879631188259136345936386908011020470473004021325336098631164919959339147169618691068774491951693954104448731620585633841758505583296248033494859250483910741796606649981522130491135692042031234059552659367348604929795719301785053288436460408939184396873881145347107050811731543213242494791353845385518908082989305597892618728675684149923523316163331019027666564530273873570198653376219564716091603989164300481423132939744623377388312214063292539312918651449579292379026641642197172743736429216148105875566945218953835892863347768141823459878882037178922534421290276894287602667522747881818785898414795217160916699572408399414152080115016985098245347727040600578115646373635692138807672442649618570420089884206131015748293012394710370366856130462829239758358137915863253310790358669294259049603691030886324138871453205985785809847082810763843914449816861582540903254542017668292633265935598175580969626423382751079178055872625790545300993089927846478483528073389938719297815137811016568103928375489938188650447483065690826682419792839137527521841428594533195093015607525564593538797853674423180991519641857568982267362530729568124691774377724649243428894645748200970472691542037949831622454883223045191083246090696395540540211751130487910951988269394985094135338910662939087861921911082260699411815069567456008426736947708735997904915285546754028805402886865273426498433449890376608520545650001759802010291204556724284736738418558600134408577647058521677249180302634204624972655946699497379175529182894225546075368549302164108878840791172614351269243543682267942911907526984612194024004779522397461664238078504923463059401071499250561010449882998754899296886997716116477355680638281122233861533944026952188805609220455361187074022757393080509889524550801915903136336393242444954151645017214420640479014431529612684737570997584955613340427988559354511534217475874811374937612362960733072613970358175720753007923304353150815423932722161861110412059008099084682847008555683923624277272880007160548173884932362576963823237405895228608753212630272666334415409976236264251158004402752133476673550400536126065582581517923139047485183824045851839207272357107377017534689154893626129196129254145608763941967745542375174810973542380076360352667429497634934306736672914136720722012193531894831591768035637611907251042052700571845293632055242245756440238300948766175631064008524256593464182990171223329113601411496422194947027028804012804067834156339559827621218923956129369047924807795663877047821886428268917877124024200562213634348095337979336131938723382964470179087564098196738002928671721186983349298770195447642529316312146934943595058900507382099016397713440614496394041219941432382482535304069380297950926048046670677555085149343557373542070765577923815092824722696445778507847814323015453491841135457756216513432886893038146829100347590101211994280720977395669311014230656467289111485684635500204891761272940255408924860326963212693056253067875656277018494556469702824319599922961847529185815604377301020503873597837643370674900548336967093379662936212977147355619032798258896322291405775962853323904321237556835266856513118468117454296355135223457582076236176740621412020849988948261384967049422728654560521243311241762904869151062165923763179739265206530937288429187860822908417406640993636893304236859943010560976383068971223023915163412135096358010802772929547469290505512770940743111071731650084705466165972978068297882499701132365258190777167216317319068760011075474038203667293611867157191630332809945309608704452635030163695795172014870970092338701216394192520225512957845886225835330049103088714053879209543970509806082624826688445063573678543534564295047020238284086687638056322226189067573735950955587123087441030344977583911947511012893205232627566691568978330071381472702667382255274097753431334690473519588366971010246041428975013422192510390029799772853781554853308967329238314394945503269190698774503533566206519557841693954145439399633209814489327013360889353520489586680603614552894441772817742107049787040135870503460404688845905464704255293705459329532416629550828449785031578128857699041315522048424211422728614674347687194724218680884108988761145181259439788160458275234394079647555569895994589508177200100699968482873219687449367285545855861746856135039461705886147960243877412695487054200519976697296124291151044027748600152980254537467563692888108090376849720344127977188488166096500555594668163435398128272507080195634912976110444292997977206507603286746397620084880608499781151595452752281933761599768472713764258614085222978252697681651657441085808459034745990403729426030928331690735308507415679502795741252890329038577633205998884150966551219320724334869335835492201877068635038879734951258629054325997332232361586462506433607674435357616090836477438081442860196525802359799990449193894068179592772285127033785128321927692393438161952863035618511438854646612778726413015089321525081554999423477446144984474227913858507505738908898630788080639885247279907903801193756908165373779022286766731492197201536259950674802665536837963139550827015420591193152338799414741402437218013510039210769634164151102216865045195491410409140007465972944183689500107764594380629313108978147405972830837428124666359946889213191539278436532410137438723627921798120065117186959809756330376120837427570991430997007074296568918522168831972260872994443830061306791048520576382501725921916108225260051542678998322800401737337308461331003467757533380606737218696937744329813639578438588300913936646118906104440056373089631208684531160829381292694435553983595345128517791212886471232017453892407677296129748850897249578402263864492812009549937709845790947367255263416979783817349181202767355943687718695879236876912450762581602306490910306679458992118015015322592320879825181683289786250842533125863470874381335407019800543784373286076198579193374621507102749390749808295822653587380516370154628802807505029885691274298989081698735284730873094573204350263379508544190329098033669720290502021564452925310556254788333938809478545448395198619503315333568965603352643676595824152322369610985752330068269995992031554981134995192197027589203013713466880928682415498310971084098926473452052824935537272327677628950666034946186467580570751870612350818347722783660261914174190848872623538239147819282297078654548402634690777746920702476492437437609561569672269778410760876079043168476033361260600540672959807455041660659489151719732774653390131693933096379380587527686586992817157308364298661061294939895025864920253473520356890507579943656835883490710826038047187703587464675331546652878210306213639783907706712685568331885296276176155834163959099713043362054089280524791900042820418801678073122322572905193443497497595235489480516638292311827835489367324587517730601835462464239359706284760652548312261298364445329041174797753161547799236735464970271234461567997615936738909364505642400978044402113876109127383588292852049078419138102134441399474246360897541692366417141101891873701267565266851885008637441333286052832131850601880199921409601581431180582436252685506264843365173375535906051028002825351950125869971741869257252762950956898793123755284594631996762954418135166686794581994435594436553892448889135850278439952894015674516658750827773395467230938619450973644115403536382194968505053547236159738521432315808528241891869707896401567786687746823122121614605929462087035957731721495649217097501814080331478106327501460225004304856441027180846493704588468984326239211462022526109955996445936742002734622802306565044204211772166400999178334044438134364337718428669675818589734046523248278227896091223455302830609750938486324072735751226720571802065902413988696866797359435096321915580672407598140028650453861440129665552014005286803133240794225791231321486019720629299324742479363408097846620903819431362866699085200108888837536835918337631185857946845565048793086528178217452887886128352623279121800084729068900693474606390722811674818581478034619033192911454130778555346271593953271010689102579996215759978169331465856736000529394315633570245105875555875208020847631766010164019670072447878869084919158916468205965802811219142206965531954120009119260470846993296570777610710466114262298215741148075477103293390427160807521605422798209114245013049568408108163173351797346754723198911005619829637119603185296008244618644069569374743735012439368054279800786655788065450011607051855815746208904528576906990921821062617706474222634388968580559196961179355291892884843404275348020057789319593293731803279071745495839666284586397314317348511859175814353227811799024304043320587280550993813438989982963377247371664172506368370781916126309684952222435793556004326953157615376286627266746521037324412674531346155608801742065869121605257136708366257572938411711638804263158031150527812991821573815614666140713995817145168599595702684554646132980434687945456693640332897664618360333384842469556601925360112299975068320119047251669287018081241498633354933335485136824216171149356856497967506147953126797810074915791911443813602032082780995881187333373872690023088709090763308674266407817956517534022830629608943316395130618877487978979184662664765168105798481724671176794160498452773460320904397728845267865650162006357618322996751051067510276786799380084496955879758187566582455472528764717819552336927855488932365617463583090201287343100470643629082244846766285894591680648400908752886727311994582591802749926655047329782922832622519380502019016304639736697071411709891928339756514295099882662653007910988121775657310771329963538539291185839652732750704347560113311804563740161084538389551897044190072741193016121971680486472978459298666406052857163059743254069243335817076553977528376716462880478890454178839410742542881032287542307962914971567604986270042064164979329395127645235498789658220728626728047854123290407948867007078909585482272767999687481931974793495194783424986653914188053837465801948787852169230927982884369931803438531257463048773854664152104751333568940813173383469264089176701262858701557202459545660760509499191257147237587122109434527971205534960956249231848933472774719987784663787601563678302736354238699065432184879909558836402852811044485716713606195003174239293562525659021297527722793732585561009056654250987897581748431152717854937038924871702418892561258441286859054608876184155435626574674756380280061077467099693699569497384108809606968880821285085209188159744482007229440265206833852965880647257016340885947881643974616069018310148975982569981638636500904800497491973362521446394119263489105136013393530153853071408812157274137803335682919865556928467082254284281837848864845194284254073217498687888451057975915325203130165473031481768951864534820506639738072843475200076685006541600651259167583080499859712160792034778208851286394415962971298334698852064417167131037727584024881343385491922700334745713808621011464360759907437450274132710449823034843823741603251691702622622753388120102972088854943479691106401116403347274310465754928856329633418038770973600814590143488137739231044274791391580561976167085333385150041934939876385300087842596755148699451834123276254181376311449822972046688139341022688955989285116974840696053419298740080223952437041618557729901681239434064741042205026886256968521605317270422002382505221370266372770011473769228550278511741283900064366251408459569079869754768395659136063118403442139604118238160609574774008750283441233650576836356711614997193114657203571965147573561239518233591329754338818065435473651550429916399141274730999745198033555156597673047307761511890902847724863245121807800338701302374750992599556194843759141689787435207059202344408371161716966306617676908143476299669985775637065006816145295074815910465794648298466967795706353677888699229391475038173217130784476340068414900206963668050427914454451378931290179234743934395426527711299036450538915723444892513578154309214064221591204744637331563013815766071592561293764415769603001782591127435036162407561735286868845108067557225328042847050466287512020999444535404175368600262184019411773151881493285382165667078164275911296305118812211038525344987306651846137850867935812017910888895502678503698656290823853175235413884932100494529139298057740365480619731484065139118833794701438730528734600887902138114992961606386585006787276844169163574848926094601487366032711470745250142322130034431450616345082224246094786164957581918091768926596989657780149982624953087542626757431793333072707050716168006945515550444977614538491095745104835093667075858139286898631642480925320397949916219898942519329317900985442285441793212190738636733800084720599205829875359672152091073743782413380296393609193399598140307196693286015306916776698431978318762525697587963199372156639929909379665350910671207887954936453776468217125220717607038304836983446699083670394437396018855888248946878191149627576184732462824759792427818131466801946027036943037006632139890868442217765040079196854990692486213880182387368273717562887606356352755051867989932288428676496575357668174243545772028116660958411197165770662015555211044659712604108245564564035374960870335824298810077746855922036060897477880115202108240984030277659597194084340536497415969308870686697379651176678651841782183761101738640238309276258006464033984576192234042149717123678931603557037873725106000924920728240202675109059876857142257753552296513338165955918014931471044170844979004639273816063116944455521902795847549411093995842833500154364183544039550191688966798178940810566020508459531072261883508752702723693328929945770686698495915757124647057555643373611948269907354038091033124897289402340160406373728741828129865661888746580745516481550001852999582293396517899083575528369943094768543829833613271064017424807655256335515486135910734775363490616032295393408046092453484633299088579485174533386477744020717232517053240721572731838032940366774422947803033856073307859534178515523263500249480950676331900916889184304576369188650199721257644874995292497534511512850647788693791522549505659634462595071118155662816907837255029945744841512854722388766239827562451881090196527333547644515930667625035408922414986266736239472664123912257817425597222734593072853239049631789613475985443069069443546928580648459289999603723990039805833215691953452229574200809668076147499092311069409507909861617439223726584596794559121318495547081942590609829957089789060395047699192260739812222104187839675155888534707059859827877037752870430147544754340464689621475066188715017616337302238963899980355647928162755032394361654581182886560295671268466681258968441213611846123599709385187047362114445514217262373476840765750499226980839878983194679964053962190686240251780505802774780807788943139149076267681815716195729627312837484740567670980342944783717094227627847713818357579178732411440640504871942094415764432228525386004485954347311828217767662224772281117113851197751454710440226365643902869097589026643225061052224031604912225006191597613895222168799711000773425592000821772056533769513539784256087284624691395508319442336811524011729974735760507680269903187921552329225031326419363615602482119277636285229421758599180061761542970750662847017789790696513223829528729008753180312813483589210706422843647634656731214651600060775506822435047218925695006940664573666248413278363395083470717479483273999772937513610891459095757771178685230207282328537148369737792189330744532273010924322995045818119321338094686918598904875404689103791326023383277941371592869910663462566685329712977092126135744517089117671934801272858889829067892138002942464575473613577115423753744499387762289390893167089461147604232545977787832630727860720179140784721526707285465067713908570033598351783324002027149498666150216589926794032753766513603117603619292489130705071602046682499638436533149159752646907065921765113743928459893118699245526827569436237676648664371383542005058655909202297805677706650707934590037033593672527717783364251381295128520745495663909973690685324765422528699748614630639509836029912374331920737014955337012931715309057094246289814047669189813453658696782716854629167271951122648697429124402497218717991813380289741226359769618899521046470798679327397565912109727264238824365330763940605951148122019450290475486039868419313543025824661203228292809638870373702809161716229017868902807808828219527113954476017074457928634115902497964344056719382122918408964551449755137982529813814627092136850745294342794079757931189305166200137319340047758796055053078886025545258060520769789238295923417899052040364474908126328722039372352280149483124662272946059909898823787635605629711815682553682446590339643876517518569857281889428681874080206296563908639721185631955714027809764977299938202186328873407362068931527205655449549764365142385136859584596593678459743350862417413962963839669420839992977012634502734661781323600511420377986725697793591009038773806123147163421032705591953660619723623722369292862592703361129100862044253904000383770907249166397857328659185647483773624114832176842513445495119663564495899291756589395608854483159592223313851801810698191004272577870436332471789029930816108537544520987319939700501457491815928163690141373761259392830944928683373981953833777829242671288097349185735280684884122014888527250009096946178314871298320001594190274748339395891141945921811514256288692450172429372031550771200406962658356655259692406250784111148971536081756405794708371013851528990126081864542010946079339056437284208922961926687929891337656461353026145112684332283750782276375059489640254904616102882318497197419867392315899154096726727130250683038399753062097054630718116582112953266317682253805714179733155254405203126672396244589601492967547153833576952127435047883977132618471196533473486867319743233060397458949762983228335687840282835841709013590043842083687240344931205086218555236296349179995520471040743417919447170754622593897773650748484318740132544926145274490177250694591759198458097123678909562156304575462875385808120462323156849804974062632877372869662248561595677763422555574233778528536404315274069021999151443498210359612717653702915551667891810585472029892720365483476612808433548592109512854266740943554471752073143917296752733359156715391920793152641012316568844818754708782927340801056116626903569523370265679013723738299893791009610378223222660995378370903599244014992728473146463074487064104119456201419363600987175572821766866559122789795246137260170408190296960512180515717363281830462626745533470410555000282535820427720792612501209250480598373481597969773805707575148947383102955576174466442279656220096633096055271839840173706829867528157120308094928963788864862624664410945821493325551577950966732085842855818006188690855994694894175898060748964205883479701357177072324995174457390646111870521288357099740134887733568172138404617218690632828705631830086221937110648577394080989037223176428391156426135046073867694263570013074569476002424539541417667237920663983419874343077662411493835160799112729371500291988464047795206047589239132134756009296938539324224945437621169936224728950155788129077155788303278120964718404646356269975240993636279671913668914402146993017851750817869776380538750658140679542628507059383277472822784666491483910375676351419106801115823230537156516343654968481920050874417898067321240446113589802645995272183850857913061427336291001261385686410353234066469758645440867304168042149221786820086757299705324647247344343564071111465545125404288848555519684723433340467032327371237131445506808367306971624587235065930512180561269095139957441707203017700828987704613841235902820041541072198708253628067417335072413882974308529261371502311830656271999609854884971444380418219192335841358649960798062887479287593006998351137182515915968276801191376791667527703861905971183167516068581559901032473560369936647596910457672939092676434486726540319604499517909967237526970022325746657059781868793743556193290349447131683566402235733983165740945408299960050464839161965773635218544206407842010295748388304511202083873201953078630186067717020928359473196854793641728309216987208271531568632684301932717777638151607879265982201403214362563445600206806523930407503487115860997293952585458858531572944948709715000813234614661722032920587176544866443819972417490441607520127804554442501658099222958415361268161725444477705473053741575831091344338851155711415118913873805364964134619137590991131290258670132211266699911599727444569225247486406507561876411731758746569402447664496469154495927197218021354399380856312688669373974732967930395376678386068406240382273328350515882454529978282847013411783065273794904769134049195318212124757105419474175315094740307346146648814781524416414484251513433842206299442276534557434800624441417168670288615635721021221506744134913767936492454687354743149802228044543333610021401931543013266667059653563508971193717061735550408418070891648036584600027080286553564637847878369434318862106494201550326162728115566601594726794230864711876173770486631536436541518810442914991852933557254531248374150267684936643719315674049310454374760101823374459277620708376328883199505015376992943700363486583008747970863220382847466031225797052629675741742270116570755844005728718246378938834887452673486334875499247094152155748745586304709607342979013479698420462072839266373169585370201573146695877157668501700017876844325728922876194627315310688690574873020088136788678762375024960967228524522723697195068443398629576392417279213502795302404977496826635265444398504337897155075837428682374001420191695309346031948968696092845604089389696354196443359400703307003034888753807173506893464639262413994176334781164614241998395428814937416153140706785091108229957464843399121900040910413850860209117855080125458463904227613474448187446131417885657853472364149925766999360437198054488048780110562142582577133530808769545310265070470557505202474580202670272132566156403591121774489321517369010536785039133002046520846092096672839762059159325496371534874576673061979446202638544561098663357825753574510196564930960918245799659564480882576259668051504947320640070745664127497745954940875662990500751157704805168241975206701168548825336447215001492155518484041644830640826905482459222870204428044683404703250958422775193172924325633896263140060199285107299976222355646586209918900031259183386957207009451247951763209216625307691523998413609510342179675342806935938148973273336916187540337170304761398162333992164975391509143511517048363245244933566060305486996757278015282109234436758187621363620402728032719208634991534093392611400582930661760832418237293881280611113032888822342523543679483628504035780777074294754033732355602359973512683084104461084819594607913219257327263309330406461901440281656314017353059067294973743630965007499688637562963262750145587096208938562411103515101707641687123174373153110003887973671370505204615752571566851158685330062866031989587586748944731677978612096914999912722990819450459880734750165440572007878845645385380790128964268168099180824063648303176080875798051046451447650910820894674368239184343012355135706059121809148497358020132540508466292949251280777831733907311478603568251891484785007763564358430187527980792525889559701852117978348900609651009584149502441287604369061489450149559384547055400949341261273627198096921409410879957187082241984902513750414528855060110901373901465508348339666226098117812759681850172247562995723023465920895513222406375617731696559769227401502563837533612220458185899450910803190901705849060211111970424238534928092262948389296477917236045630911458829055042989402292086414245090786560300284288572188648518966357440454722489315034795648444436953223796924593465145070572129745831397745168507561612067596566912459041006380360579149229722522287688045401022059795830128254588366140022157884859850888094260050318333378828112673730780408123669122969428359949996471760454519225035142691545796385097448657272897923186899212149330115791453573863601469500441571639055712413547707836598920605561860064088452166730335375269054166163180571493195276525484326637212882412152772790178283662278193438950147015763177298928493699905465912315367080454434169055999720491124799112668481918955095180673957458430488514958950080300555930602371176985270128294304075517490902736321737209365864068218794760594060238100248117552306945297006343208419378381992175030404276628873962865869063469710308442405753684128328302784073702075661844354390061186907139013634519873223393846543888737959488533047770126737353892450432144340668252822124381354640664928701554312174163813590467564300625777559377996780246927979215816343488588710914793578095737639596039090905357458451291336804989797961651783454689728455241867926748234472918125316326489769476520291928564893216342501702251599921163481862160582743709118658003542992266282128259432596187965117590923454631748460606203711922420828553675425777869216923603977557345597259550823125163926017904257165098744854720366266071815534505608498361644537277557875550956910290315555490476300733059422823961430826777823239903100005666787220894680301632280984697427871956127293962378678646022247322150000067491493041220902370859430712240518289738482750861350022464556703644588371828289148632725491646049184413982704753001744820289423787557495427621982791633307180025070424201138456921772519662975519330870567031684600693069126496387227186957797262779160934292573419426857882427364388743307385049505427205054618292022178474995497878485238743126678804012887353225933501344476303875351053784957373344957440504241376569643158082274770747774288662477786437389298071300548377007638320663716920722135963704853523811461062597876807425559663225745449195769137607854349042074200933255848484228093188116728814826971452577120934056378984705781115514114805275760211899652150291704346101250132027036814370273991422732888220280026776619024224941953704945961896997105628993308997156929870959515808120559775605478082667970648436139761385682431165195302130276325617951423955856685867897508077190527895278361018782231684332418838907099177996846800066159806762377320923356221649267876035543473725531186483056933318661453389335165944413751908368718427042012669877628791988634914799356433902578078260330062093178782885372885373327233470693028122604947001689688893504180885525202646059003955860647177271235918606049808395924049206710057441063298638632369752340272521710447436790225294574956807479434048367701646558227619339220664993212728695250638339413676019000405798244818002953502270217421712739948701708761520661863453448706343097384089745570944186938330901955619091160790982842291267821972795906612839525197762183919265062059675446049423478412551467810103533498216596237295434983020209954606512449934951781655773305527591675759194729859185524352037153008702810503365129288841418286062941980411446195593005638088104863759470503444120333809569331675752551910565019195724989176384253773987159167203494297926610307258811157562131345936481775475846526048893539660846495007002628907427683935818610621836526941655816365787059662790088114020669931801689426454460877110667445360964917223991580772452452381374871391740743617740832610401797931105383113318166459292496203588371372491954690846850141740047183089763160911392309758589765315001044840653397057582061824520415065049435718056678305894576014713555520232443030992772122072166124313917215792890778704307418280673480484558738973966986416345487436140958117751115517832595815571329988175201232832751840711294882115043523472809833223082132741668502369371160985482615507618655915982330407882296791373306712683482715807298894820080786095283441633394537383914342717405103535936924053954783906147021813944339112030086332587223389962846734698373937118088425273070256213600170238051085315956681445468181404755994362885234363165164822868969532606593553781263904509071841208477545919796839297512060173810984311392981882777144127076960305730428484901097195525152863420051316947037569489250775894844413184045384283387699149479930863723542463408623414552016264281723328156776288174504539711155218829483351635842202280258376801782109793030555478469798612833697090786931718032765043812330310304127320090538683022760007261345090365900629269605931315854748953341722976861796429205676966888105298882513134593494539898211985667661748938502252729543299393076906220194890866130033719117977273480683939691365179661124173622673371496229389521066342397469102458560586459414968689363275785208741556301167639554301447945814345359891040962056352365699020950052495346261939502747288877159620246779511313514548259347541558834883301078779011147213460601318817661924236864364107847742690229230814567319262948829650476428429361460485157389146279510763765845210177817576629650554881920563906731678306408038476173097993518513847007900903789151344498360436276485634123986567035384312912619391095625046822556301309843118518663065439257823733862288549983673155802120802417387386035292717200596594973419791021886616544412398203342276776130015686793851925562609017011492136172708797115242896276634517181748236782766119566670346573021884739255358796106372236854760391143687229169814551791972020391104549464889449781065577223326395856656225950826568795612191933025364471008831951735328344784576417756122023824925418385895277481921617150079570118776012835296043005917695349034350472352384497495211880649778536788305795509378001916596076241703692482385189093726306801004617886384315184632634958961054811013433647361241512603448248613501814590238442983873073546141565120455342429188798412020764624519643406205271982576032788068119531193357920451631544124372773566745563906183509383659188481520950287779770099679301070875952028883937939096564278870135179269790352892229566314793503618831332876852165781061618153645179947130126602594061313848452311867884001891213734351187928335862333832299704435156273244543945434500048946338290292534945412231126768479176199720235855310219639772600962440827003628943653547575705125042273632708108913214150736152570504795503875780484053243030967363029368672286322858021203413363047251275230105614517459392365308250408786624189181463085977463662514135291693158280831234277680623155543456422565461854638853154344239969623640608398827827801776631084648848709526309975894796853056966637960040128255422994083614566008267180839608426900961201419688112568890132373681721757422490076062791383359099643652441268366504967976920720943486578530362356712813752742400414214020357737322244372585933959151720308521196133669326328469441100307530519686411117309321330177460729598608218517495623001435014577890639252932798221542482449544808477558215520288010240515035766763008791749095101005662066986564216128631975459679610370343636749839855591615738647189574141554957851365911178443442901805987689290973512713533600046654480909517679829548409993279797830738112491004580847256172317386786131192186881755655944832785806625952661144314738748871881268697758596866711741194889533019713695193840096549523992824893744499582637664639276033587700090781691169931328017663742498587922790429731470297547699400134272999726390821687657115218391529014734911775235037134261815351792396137465141154243042379331496177423931165496356851846227862313390410727805505796489020198745789922326948955548281399211233091884091889242816629667277814205543650431220380623487446732014868352356062109777464670491432989833272076970808891050625115410806160949828975414747846375529540809848173088095897783181642963689533479169761654698547254730031832548926427796808990434711637569374429304434269159341190216875181389374943701808686694806459996076595558567028817578723644159009413377679396492539739705807778214939651926915829037760681823191517777141723648985079328514228664560999511244572918451914139590718068400827279733994168133840933068752315168487533450590527668453247215088099150289769364631775442396247798541147284097157859475953550440298087652402609957886211532321949511141158010388076553448200842041725219531387836897067384996120530860205095734404749095788061632822463826122710179134796390213949274915264836975626701303751450002532247509536783026378457127773654149722566170654429796982816380821991863505721228640193281402596862521913062553346658568012370854742339582791686307996360486299407088211259436505699164594991362306797315123318814297410139419219224972550110285655279385409669951474413922038155654722034344922858134915563556555961784344653877861548317752226328376051290356516357415990311879939743425210643039102985039032596822565167268007452133280485892128948346156312258752649207735580053988193922937928876564304852025216763308329099655721305432948273089213320656997742103203614264823816321585760860116026128115344914204650711901967508895955097500352769088999824326124336183972099713473225119396401828478518573193715747831742921893129473251712261649885945076328151928646330452073639712695804486911405147182882094549272572412626062014296905797108919025905762347293236077910302334249326772682939469255206356049591152002208756742190427038564700912702480069457857690261315816755555433487631392790705249822566233155929256856572029571360925431358249819426907281627515920781969810618326369969469920775474483213334939189253493026119486189522640567483515570332516201753078471553014686174699444735864763419656421161088367901472319272493182697035705990291620839008291023640796855864979499607791576876382851324213266313979781958206149585875955477814737473704291333147896791289706100754195650682071490157553216467970907831536974138604997136713492348006703130816273134108795600576104575498207504314943503273794873075461348313358583133760060182209657616583797558717384082515077204860785107350171825091157815975891380938683793414878482881097487087556287889591814588468892604746396102696292977035589661683681123793735675009385257428685555070151244763008436237264470546160395492161297332630397505093651301692416318117989330476236514777497966712414767962737966980672923356121689814921868519412479676329802605638427920085289696109518759246793484201736937737791332243572194942850908620190662611870781283663413844837701741219056602774426429513901106258925295026221601394262510572462342339318045452018806252806261329809584610378338407480689847194236451316708965629662768145024146979183292440678919771616292261217156002522109799314573020431878316705313268073493167174112822621987693233403885906746580143003743191656611971939589729926602304461573982615767195521165669751422645267540062557349426182947582839044424513815623887073298218564506167360665319780429346177484618433756532011376197155415402776480155012496475361871857740791978444930297898932415060269320844847219538687029271666335210925507388324171704285987772170131631549739580311253803047273272654512732186400621655599464729639999562862771687548686662824270363352385602821557392340186667643816468073331781128263237477299927640566489549128934408441370979318887266729857690007302689642481158283969952259331030551703302672352913255945662081301967048310523468212763196174562364817091588674121371960246989216122973650195978679093971007731043325402064383932070020498923687839871061029779132638887860134238751274883604073015782496152306597041086561064238544079742100055620425295471877444989599964934526287056199352700191415775729666038446282996539675441702809387569570864569247305455584246597569372132922441885558457794505901073518036916719973542986792424281453865810682293977264921328154670746287290352285457764381166189610036709890034810394395856517826064809150974175258812972938013789792068893689258752401318844310845920201135497674094291083039800239677682069822496795575424657622249952583314900276692942599598396912778452388012840714127007643793887358070411161869987142148400525705423908903629597766831192048037742854199808426268426597679336914917388747425511217167976107870171587960529307691835946916232860246459610723938410327582850564930253284321715380634682267873063754090023059870271752895863017695798890565528748410046752792046274399068441844808412492297709172246902990171863279264094928461389707486465855784577403329360928502546279753315446480795621897792850695770733331343179628837334830414817247000303509401301474836999348108760372886783266341400312680347562518857899697420395688765284573664442661776264326267510764370583398386953768670503001761223011178588223858303749597697888353965524688630317528285572227443011647550466743075193981496461824039359626393905310736317618787727001652221889128125151655037348649068090957663417667743297218747334254271201464630888860220420807859523867623749533525877175203009006858068856857495632844992865757799925082774782924247861389370259938770088032846509733168086555327201152740763253333930494096719953155351660644100685220280001722945652228406287599225072520812200296917592356200818678463216080048498887005595649530651271242837491331693435197159463218622365475506903029405841593931612949177874544267411905905084382265030822409545898368601102298253575690334663591155090316348299792171174455343904643882710375106556618964794919849844542569052582388306123236841829318939043617483058587281664175663672068845716432265752643679668560101461944018451832749123284939441478460251953039834121873785169554612629942619477224907125918559494191632374976391199241599933025366607496239047666891772242334765610507959964472643263172224419339563718608237034093205222072855289309986071510198252090271660185920200327845393419610635824894365665982198305691458080178432103948629284362720675552667994426290845116462193604534756992895120702656410455458628865140608978395978630276798053677104996271187417128576352779410308726481381993031283263478238945690050636740442024752185707055955699627097093326442330556071781337230068276370083687404667404858570885361370582808107625171482338320328347511744678270386864633946988935571308880948908094877283670509989339044018869477307652162293297661413126644106526677945828269731561703734002777698074378268897798737730652889987261441236233276823792277613094524333979383513386250949460913001080057746027422176939198626139547739620261060495403044101104020638916441752976819564150103358107366352589655244434218906066839337822682776171419678867840670660344387946117841797992914309441372433117203708775460484016137226471014666006563439619942636127004047792745904007010473098643508818372491775274318285897170891086279594282316872403385406670979176254350423575568075963637302771294607322690292015969160961404503332718751820665694623690344793087512786066747547329342968640573633428370921356978441906731226439206457293025801491838526431342489931787225183328703814395943018547438333877944183660666128599866074703542989395255058855830686093090579864524965588010144160935290723062800638762285535681425554885159199757407170562957886695451999023464201159016797755707766266411557689009439753900791286778035804470714698559627761147586545385746007215274787094814850408653986498631177869146614406614728788016944633528313750095189805492620951432503936610995228517085793416666533081524061960182436761779665740623630903418890103513385761585398578205506470792571343382922155755776777262619295117546174093853629805179650800716351911261304356098740713660427102815472912588074004129758749356288962699052801287105002414576390017362901710411967434752233081536616013351569755758211026009409152100653952967754030332089690764316106337595451882179522834433786991701273237114462151650105061627542390933581864425033750476432793964588501379540188257409175973351245734730263879053521164675117410858829300092024797540094156711203666096685283790571199126553708688800159299143567948585650949658073153550175050562115561925553453335191868504097287133110674567712639124703245961061965668964427381487039695308476306395462002055967320192804050481539558773391863327898229391164971420885529212311092300014224504377503720319303085738576418426629066820168703959682851648712089089490686729523496487545268763729056585659272672757531005191329229208588746742223958399209244414702205177632269726165499366944283683253114119385327126797286398028118311883711596344338921254162017212706450830175291972472443888591934793708666852494963490972067311533264558311253045020184998545007882492790942221962035343088326242907282196447321714076159971546848907103433359493335837409992696218881785091027747339858942832020959379095273051196488710691883557751294897238615891175088855104542207042651484168477270339559877157734717632664578316999723831669624516312329253697734180704452741318307034565248778313623967182030142397811948584838428572323299261536334210808144716606365915900692595352785072115934663617794691758386967914695600021873418373851452834447346773449216485296533306227346241988989605212681399165059305151017085937896189538496192146970990894605881922797044387331508988247624336607847600869678192184853543089733163283442628031415647308500731393128207308582394744910616749184726324632081439156386487917506947157774599135070969141798100346239980681035194572181166553704075249696371698303323391927985891967296510622550310484188811257470028704482013251871740550444169505992397616015825335724692678074707235150970568973321582337259635943610813350015906947868125474246572965238375796757960357030283798261429454946485514788265283660363184344589766701070818313969841268382554815468991530445956068266931834209096926287933534128838608875997609755386627171537280538357203148147500295813708727778274104921988688429674513833118113511900900922448409340327024067669110205278354383919093945313702078254793905341597576584217650180788324968813495102990963524019324453090323380530140409667826423193726165728303651647269626817001908293104127946257344097578361801643605014734732561740219793685661270319138091479179598248657987587787435212393889427638485980270393093241629220364247584034158125484181779990410235027685452459222044829666661706093139070134238065020143384697513096217198952227202640308852542815073390453157608051860793792737014890086747933392905894549859494773239403709529886605722713735791844507202462583309783726893796459071664502317946608295774237055821222495478499940787914713392370138086883918857533279593573742405768637084201197506737840984886241019924710066420837781401323699913853405094167467583748721172108320687256295169081043917990525060766702379062182246373321071216325590677424527653209035105546475463425389029483766122947012886436443744117920492985801459054448838446227075267593892776532551316016674515723024277076664495814042615269077072050391770151801338653141771214827568038557349622021822092206005136037227152585939572771910284640065268169252684151435279926015740597556425676271766295915523449178183260702787928247243944513727783238858589583774974538342257673879253135872677942023708850145588138367272054771641997081967120577585552711376073377020427382582043703709228888270253922360065968700908296979784976689049018903763663631632768166520126211421431746684602343961664222514872291828627821056875158074980772606916920033736115616530691297198783447684341963744749138947112635017820040977430140048407913212949152280530630859528767564374310793160450864004534526025864174122281902635562669754047101668880442855546474361253303113720138012585165794692299308175739213752734880730025405389965636086452411851785452690973470377782872529985447003922045249258836216310767102945653664032941216730574110203263305974874002444023683091985635657606707814516976246969615700974921701024215524048286988031408804882991102256990812341033156739621889693638764965560793012185998212265897732290546303129447476430201829880722066515523959468461763295622026862791455095312977940399566516065095552549203778328480105113089693615855485134278269945274281431848774583205755842270721777821384539634052175105812822744787593148749847091825187175638466030589278339920641221962321517776916551798246485596106253129783691151774409267420557959147759350771564750403291976812954407961657277450926645575352503890716926457133218106845112287858239923716484489948716453234951838809229347015767827399165342364884190216043737255860295203839449688570264342375420045791195504883579216801906961013108210921763676632104488025594877427305724214685533211454825464220346566569871490987697108057718634463648864631204539700434841494587238383714137326468073866098600377185588900497843858057090288162186087673215494829403871997517980777666492716152168509758010889460972156527734639022564801237964387384303601508393518275603901798517566481588413404179645644415834620031679649316426057652999701802739760436135586817684949326719839533634621635212737265104000289012614305287232464632726567942137727639739181590158755199631411280173421165059814015921696161957536472075523621561346903268898405621310912579490466084227368606809481120624432875409294187352842561625638842549899912091296428643057697677060532728479751429085791524716543614287634233499522925873493685731167780975240626007296985408263787459214812688619204517044428966989092045329621224689695833449220910535980569608712170158569317177553131019669480373290007300805477162321189459788099152488418475306202728710334534626340177372796178802328723056971433045835429565963048759085877559845295823804825082270382321479120447618499849841419025658167056606256657381404188541062827748355135755475510525133676917978726404341456560660392425035259213248615861235786228964010627586221594698846724835295492477010822149814310836023376244916263973080011638285905834325640622322292357269422102562935111199664203429759643376019852108845538844250694126398337717193114097755246938224036430940050573336009442926086084645850898081348141320271189423223818839430299292961354964951891893776296412847671283263589693450578028437925486849182931771440641302025606403932571005640526827834350072304934899331277406868747490538273055275674911139155175423902775981013566242727605420540655538005103589982867705945561872006763185584161161163198242594015249213926906221734258316607677390937666335946851171364904764277570650574539189752962008305246604899494892490285836603141352647236815816319709827598899442672821811331754987155892890080981454640705995805976878325104363523849546743430807807552598368925960334037446439758748977389174434850797750237250183375830550898278146426535505498359364217618318740332238032047316816816314314155463357187782967029537593326531240712646030112394989614878202256933206810117633727390810051521558314061457661749360929960401811054735580902394147595848584880336297970010489741829869224396586969981785194960103475038733114937846727815071334635037646091811506947772424955608424685359675415791197864983301428462449222065737270217425764846607616168028128909725210468734863434892460970770261111428077446497344717485599149188095760306307181333635226142664928280705884553776734168288793467479489612659168984248483778159806741511141873977474276800526899372186054211975305023402686532893327625298329696979908467326165433000930706356570176785567726360264742258404664483112664079574467782961765508117286382833687703227483997652945079573075513203201923634343262513358303547250887637750698045581549913008080291246305529622379072615812119629672133827762599787658768884423532787189693543997854907792579864253069701625365675563760602548375978803234290009510316751256398924418439422549310744741404581231081603028163651986021923533338271702988854763551280887876389037589082279027760706481242924315255806167630598508356540652057262329370778519319025200692102613181056769673072283828495119879991573014052925882119338796217769842125688037395964431594466473456674337903951122421350984121777848040507585031085041432385579113328161542975807650304733816686859744910657769716134764031153682191649245117889132444467538426986598187793377517512151169398923378880143242180949428585684953103040685451646449208209405398204820815808641376984460995235430524548806343433605498286574410768702411004957096967483171577183419121531226459515437467281225381345460522681931910227037500686028041140068939568923084005766752373982283216112823192866163945471741203587533173117387119097772734424629773273530692307940219005277850174768548999297293466760704982664669972046771177459858634725715395475861667009032346455197074047935113024608415019727450678782087652651653972270394092627129409252347864613514137089126972859081997318875339934515236810119356463244151580821595171387212771635276525537983636340789348433263402085393325997466921364295658908540278118377553099536233481255059445771479092029908169997976545071608232930706409608893416381897725009795494546327736117682551899229581486798659492733459253010290234649055931509571412198975005761241170929461315307695942614292333223763522006891022410028530075316907736235608921929211738722647126415514046221965927881065034601156391833309762248352017400385938889147298759220380237937977618278515103760661493009329021691396598688850140110979221053741774424033846858615470638347986500460817038333994596573005093670129772740919546925833902917978056076166242906951286794735881904189027770718400471779936098549993875793458152894572329575131876523594477116583199830190915966347509456184116570302070394238042596117985979900694582159040473304536649270123976847029547834292835655447450688987159380484612835346070884887022617771630040708389081203179923636907712230448470666933784715698606184020225712060202863280004250442389829802246011616301780273477634013596019865024168671889331726929149336527291082008870436539193973997826553121655735511862054393500251087139206960170724754149594503398424603225775855842759832814769131503869953017862795882002727468859729908275483798727361184113215294927132177774028856746925148781384875659128013199740697478746918092330164912289825181021973008488984732691386858854082902926725627689027209000805632792028457140446832470319749019277808781704710301323648387061113521407685227979598568214122497833002040290458645370850440582044213634931556646533072720919918267437302271087795971831489677481346638727404181435318695993228742090958671460873991639070985314095732235982794590979893711663153233799118891834095616524891585480690139253663572554882173878578078243368315102678202871970824428935502979484038995065121892195172752629083561373276079795807907737763977582809495665047126730695807734345243191527182910830893937023098285702121853374280458262948402919532064938648802931505756459279064477608962693556233727842628396663203046242953317303945763527365647521614815417639700899122891891095378612789331724980954320366639444127768698718308165155876998274254991202911455904303398195354027027223650543402489552984968091465210313254915617377210222940389417063445190288426000610621084877347064199541857821499921729703448435467225719102398033903322480139842885661938271951289243278075392499299687111094739185883802427395329507167968341473035856233804750550110675533966499867791945721289423480021115887470830395110008488273256849680368359719263223577401111880998598028532211987104448909759595658994937139628655546510695380392688076179478047830443790973496651266947614995966807572434201287113553061080577493337924496293773202826831416021023187724127947039574094593837759458570042168000824106309824539740894323117574758350467415591702754559150109672572773216593836482193778486524894492897867813029779271166835122648761714948205616094616669819244806667609754296685278125019570265605704304402516488089035005737025111768635701615955776623961127682670870003408139594546089388018437436172174638121787301274551741062679050416640181730693168249659829796910639185993621959952301714544533112984834061823346341058628203695167361577731467566224020099913843491725015908157469295562362302268769175307910101083481110451253157228473108586213425731467501742118073165032557214801820283177663554546645516693643740419786944464433060508399952478924518443710029740725402472816069960548212261431603185222031125439550970958360696678469793748992901446036430440963035291413961561332475585874896907322144319233595054989110106091868132845481446787097168131290806929276725278522463924544220445201702365489929355987143074965145137413907346790301212267506420340643852204430562129618625977197625039034901987042168506133879240271110187725690145273321032039013563265169779105405060226577168845031528830323115812788003416604566347905708982019178610097649009780573619633191020057230974953182964340025421075335343781363816192915590379391046967602901274927741053229972324197414386806878922435941879893053166321849300671802193758418083678502285148919994575497600519954675976163787944596285184125070987276845649935348108026150815979599747685170356645769881367226494182055678144991967295280971973235505906721116490846438639590225841001956220187472279999783185272473095474709794695674820148722649299718074797931722174507682769118133928927271957127431244891909220091821063245076102767517601605507013956400888275094089114550479524689624907359522008608693179593422998323030288245623791650488216825911203808653236090413104253457926475199955906871157752877726038191937782686234732157328457646102238080150069514366770642794629627749504502988139886913658990099365619326354029056289902698311368873882210352443766819685586516821643735597202004706483824000023624921693735405061662570759696444839519265699473448292818066521572130743527920706974000630127497255152541548574056887947140736922594994671734947389022553065644441082372836569359026806351035467573695155298107804446346838717382042843701085135663449437383734198535193943332610955949490778654408576712740030378351705110510763961937106896902286025488762986354635057632288758320828171919560176541920352323664657420555461148455660425285426656370555671258018730782365888967755947563501316060213670879211284158394790570016589934274520354930877718834457317035138875185045882712016447863497205229454463725373173937614334675782360384048429738015619555056163228330351757279913441810312324263393670111504640546230812050120141900114737747850676223821154204814156879907960473944162787064901698087566172171485417452976563196871559925015512987166954644378415040884874442126938961256088271809750592756572141456619440796359167322312200451565621503573764074407992144611988762171230551194493903040854486363723314161295429396630355007093583095137837099411356424267403398615719765418051112019769308936128435977132551588962863928990656342681205848643594582762165147254010984026902034775478557139287915651903554135541226815337723392034434432119413877228023978996906787076486008559022129017311976081207733965870249487434090716404794903579573470207164872971439000150850016012047315496102913473370125693799339589222307644952158176079335964612801868208622394184903852635524640824950114892187825529512437602062896498912101237193128059060975687078788889396285005088321792957715779318593257614716621863879098372366573421130990599640050282239577235795996755855262120815456500900061535504787443354899315631053460440477719613889262163618009041192575446206500650223374320911854685611388772700646530582057569601470849413355970511621859938907334848389716553390101596687902053690005577541966598661653179037498293853723354600407233581002022573479308082432365494678188926955596211427592997225210679793037852454544258007663737174387507738410758527271235191624756274281188158791163829834540429986185901551555828624938067943048777219803152044627078777414362157424880286782185261429224732038993557168874462005842379122144175129378505947786813033292081791145395083592020586799044949736192790905918122210384304404909332720329595582351778786816758399195114428668331040618948236872521622067443583935237559282889513060174010655848814949360036668977177209183127974028300560079183306991537425848797659316538834840843115697864093837889500409815942353129232990115630447043828711035937839583923929730205291946736074293056042524072700066204412247715432555892147231961442470810218880717662354892391487331731356710025136077755337996286068857632563276745747985298749653691717273890207970202070817776834731003614887730064064678976997946829170022942247865747851783940091343634980248114457156220545250565331197717327804131258923842346569148158255803592902538304387449976820585112514118755776787967599374110617850426884100380653999398307469988828445394262862776682557139424642230910789200815705496064552349934648100159196055976235231837886607202642847654257422509668583105309680077009671362937500192689778103228158210197178142076183527301423860905832735860617951894214317603609448749183578650267840178143020072812567765804340972710265760299650044934592189962770627021334186486195803132219512519731121920553415781021257495658626098455255473237618072615829549417931538285521576460438028401195651664113515870353323720538250074776266022590705109006483729276445393953305453026782794939301946047519113623190752912484017191590248856305621947405154525760403184207528190530327732528107321087585344459590925096714550832577978205653411291862299326818058517810480068512571392903124899707976615878177138246148771109925376583868542614928246515412168057145501010609499648753596050689274290509906280784828515093574968790658723369629901739884238054582742156020775844134256331977942379019796713799710352631002764363498646390217034438900097431302451900378465769830948362860881875504055151655111208288053343359641952975171912450395300766554721113162606187297685828986454291838116534292123330886874864525710359944256697050199882895569413574280767920449550779201560583249676315154715783578742988090926981824474580631905162365246132376930890374830925685403659234006441789613420270237904338818520340395967871187870234417599193629246447796136688879206528129257420955626069977565934771992478141379668239063078106379593120432950521401273025049044252089446087084055932993862037203537575039251758232270628502191672573256073706215566690809525305037680925208194771816963207150372543577194604884532167683832437435325137305479078048915983026266753130412292859841876906542471158527081258795954958800046829935228072679922066827541987549190115064045257389078805606189131975666682312842529157013094997819627801560744555926955044443361645848939232271250700675618474420575779200493087329236168650121070737898797592062150852981953132803302896806245797282215288486390223706655569286595739110909801299386869677444646698442953475131852255472588953010528949744829410178847154071346556125186500474310519745264486486024905832500131201671998959072128973347637906464839990234846051586869826662701793887905879522503054848736608591852474244654776899885121973037524247085588115385842979390085540096364020836414889033827755230873088284465812130462777733923004773010338294935638948755647357302174186337857912998436538759024004445792914606470816523492580921368203963491297237891325281192235805793942944863829675191578106777788482876102492394677208151881043469754293645474675154134841690877140086688116960202558611966172277198261210184342729672639757876764161427889840155404356211673904559545773049450817255929237235825450360760367993901791457035035363005446176223009714248780714188024986332013423690560500794968353087818793886541658156492285573215510662336495153352951212875874208524842554913257241376012742182907534055660945023911962447503467449093889394264577466697442075749180196120590765409270142306613849726398291684859853424198288174559440593913260985797161600135604835485292601444975495242166350830381970925140583300259315318059014940373214791541116262292200993444881712915490031128416434496548379538103294299007477607775784712640824563240031706481398195116071335624401069906942861148776457237489519392324809568281804462545031254564894585061904578623634003910909007810950336968800078899374824307318701098503409019979037499312429241165581006338330965295974447214996468191320345781249414976424201561268916611417164834939284115574284275793382678520818653021800198046279320260647929188701774068113609521265427304308370850878675220772461407429380023783444379439307689630257804100244850572272665670835634593462145523916919132591429040502315570260781723526079008063747503002333019454127270374632951090058004139586300769277409595079865082186585521166899968767947954612386313664079111875676894505776032387058814346355680171820278924721010399303737888872681490449910592868175757426152768261415195155192144565724324663216869290775386013775942967396043197945729218440950435708396424651656771787468877819045823657166910242036064990627153929174980395058857701945046830909489068729927394083592318836045134722467455393850978948363918001035299677129118284814548855332374977319325328310659048753034578477412082224053039819579110532093502391055409290821278056139050082406310156970811048242049721837227949423016127573684349117196778166384319978964516817472553702596515714626836786681607467431312249785832230823481173109235016202734003028082385555687824195494770814692637221139106488084199787169769076922752166482540124308443874292023556256645205198799703373353677381114680693512667457514638842046176602777871432028046269402199541271945048905513081279544559869938598256193057241074135004302791085302526305222350040161344785124247379882339941709077786912601325235621649837293469722421515509503420989994943245696048959739898723319389812686297572381638258274847274958842905143756523361790510007681518396036773199218017604085933951449991435905289594195426996909600960180887288819394808776267606569545585082709221852106987951062950239475135088120435243713209182727314535910510564284096421318641329651908915199408411736979098543532054382419281851137502696360582788597024931839780595008573355938184704530665889833286277783917196180438116515836377424165391090462059569252939851147179470947094218369648697848987757020150319695512720254054102246808190998975971410889891506081678301071004441632528470403306800498642806578633289418002502942186844373891814533544338840406295645857219854852354862035740013803993775651577087084108728846965224897379550781613315021314954743240449885901812901014526090184372095953240561499120170054250112457291684283348787114791705101571131303511410390681571585782028539884456988830935105989135758163299413435852383874739569828943239943556851333878175369793645692860739886215240935122977439619775986676773454003518732009834855530971973241169439435010396722698458179998161347573233681877928827444545625733245178639277395107061443075278539605280963621227136176451000071462237142290560432582676355617483934517509089431702539080422761616014952906393630401533772309769044472084324813004167656371464210040216643176419710025029815308737078724962163560557395555616556303402072294226277193007442230710058653470770543455497394847888889465775264808585449160149989781038908597057973998130483914879851314215130215192976832268164524694667053379528139005814010165723494894891857831963550842233094604640212515093658738001114282429138715704672282480698588843368225094857721238492370039170042457201762314282442048951369644668522056490362532817952389812111527295468840319470814949832626824218130929871544641943123806341412908974768393488732059171389709748047055367680823677977882212822134449518895796278945402022942710418635775780504174836930278938002277735892683651041664877821665576519006022867874195601912998926529186184656735263516735634151367459181693748802242736334347109541476022690880024002055263658196091462867500784113945822093827609584864616460518794492951101243408698514672671017364116945921142132332422558098837817931083434967484372481196992440263985620869900236478988291893337699311668642739237038427389257413336419505858963371577374719504062235431478735581712019286905120354400947166284502985936778372484328689441464497633143289156921226206722376575993958049084294628777969687590883016140119533997179223295421754001664174863002969408384109840355596315786610944065839986490196202752041561839977716224429247119433448347992893790037449645126844076852601661653790940642161976194213460616006403818014666654131234560615674590943030648616561158362680216515033962667518981159968969144268609403207155909236768897260324628797074375162087284460861607161336772809020106168415904009521541251198602739213853588396630895669984148464907553221591136840437323608751531720151291799110822239474526329248972292917431726807489018081129498741326644922334357056312412829372784761968053834812586506300150892074891107544603202437793654281000749313482984117527782623141552594466846230640172884613844589701114459266067701419851845323261071751457662920734081876432202150703146412168173297633435747897429832703603705749293539148063206736301815582222464393496104329057290446566181511413971074685536306198904811333755210104357743456612016794232416293192780951910513168355902388400207070449861578021392927657805701619754479440879400611863122870126571714437935399864282585210477126678638545009426775816586110379752468709448012688226607604366597036971407219924571563882131050299569525621104883311437624766845393603528520656312852335044825727706189817460080117839063495694852839967801925649443640437185051419109467454352210743438953035267399829109261841803365269239705684326474483851583660257688160192837294980658126417919198773491290675189619946695835467830151271505076437397126902556983346528876165417892504311298802296088704657349947853350066440006869226544493036271007771740833413093539620841073873634611156582155418137849738199809938470486017641017247033148164663888014076576011038320843677851167341435402188768782011984652426788775381359567271695291860194610216206719461529472587238353286333511225095679705360693690649551507309062085455884112476196704111814942418554827903079696073489385354246336320165489074654021839381345528031967192472132120278064002720217959476278046504019224504377588791911311585248570212003152967507632039853525871029038364678240658891232746412933041091298674648573189389748098970515167409331696932875557174255018509237371734102854642972214617388151640630426940007468882291343354245564797799683628879897766865409369983566008115429739562658108258953029721685235279266947623670610107291406964148939333005946891955326796675471536556728695730723401421397083199882536852679370158362174638493503846137747288218427827453615135800781766829605319480559131376673615460270190366101503835407631808813156024231062114893038306654852625957295229401503112515901161822542313921361270018226007604892285483995538826736487734700105671971403590368958800595264978543605118624960036607659626119609853738586714624348270693626185367770210564461108464250526481424669902535551843615007359080822707526611341274110719690052398942288945243602838900015203829582796328644602334090498171124059331641293312739653418326085158405267297346406311952906763516003839988796090597506198789071599044967385145071665578678179206968934610177508035973597456826338900982508334827106900974493862163277952500426130727024426120606845324956110962084849360543470008863108810557095428718184399787534153821747202579128490414281867886274573834756506523887623671608801984677457748001563447731502854660815849350572725178257172658116154794960244697103657066669653417657956399361611876804386715969013571935717815671702583287927456452978917164750093917023193609953012241880447562312133179780143801612727726509130971836632583813814909971951721515153927426889868015115317410472116302251167144369829931605949467363418304555374531018748826182275138086204188863043591156311051921419588276496405207438353627982020497461996030718055336570195076302343874795092373244431528176124609172592017104617855527542341073955844386955209770739965957807483484099281651411796836727749729031399820151551597154689697281199238968866310604909759830452567446709099737272158546801976060745406555324714178005927149677914698105214301890416492972054297086021688629728682323903555233007636893155333062651240056057688785850065365720876337312085824998034926053900142560481209073702089700035049001301492214761305104051814518587591427679226731260963556114643243753710435748081149806913395694703994957972698092581819835973282846821759797197211784363691902627411923250071547098291580862165908210377195573171194938938402640304368256008558634036147993755273972732303238119845699023568681262312186379509980306484092790469079623908137398766443108471910793336111029434617337063111556822956943092278782452496983693521573448388429989479196458031578198624394760360808273553609776616353981286438176862474659444167653806428398419502614378567049499139350008849450374059776614255209966118112276695424680302687223800508364763142928314751799860899908614004791918123885514594964917283766116712199411736624951728026272061363293318933389125157227025819884484543130093169395391061356376251676941875443061184455879371140680687991870193401369135488738963932331516247848467247891429858144186013518399295301688578976188707339255004591322320268785150454567797609623946757145768771798735462562557596708539506215235556330070642103015190779337088483519374943690446544855154362057428704465824931690112735055431878171297489129549276403847304210070766693204488755234963269306319460031433530106032060437400081058096760680648684590423695899394350954128942668245434907247085308406387073365766105921342677014611799921791327093982994165726773802402566332416655285305266169386944651089144148237629581139945182142923257423826296553339542269761896893414794805448091120371285059516869487950931983436646758291619355763873152523555678769465156198829043022813419154240332437587109691177818895611687327392190367770493995736399378031103492365664938768746737136335078410058447389865595071128372414019231019070032743498443799838494227983414738256907111974818532572717858493794949690091449818163068745856634644300146789236962767185985249463306445796955078797700397023656201837965014010402413458230311980466778082658259738834989011555134591851763782677839682179803520674621525295324042825180585957258083735752743242915109811630995527380462359495758463995485204533851042033100248267969072003594222897536750133727965533678846214332874733109524093904083032708625851859035542722609676281796483624158429153738914066410634382998533923377233252224958642717527548755763250019417822894837393750527694983290343550232732216202262348473882577077392900162727936141468289885574279560496290062661904945226635970509403964733007765351405429514102203449672848283601814929252535312649930333046823808685800324843068573100248470540240393093272811163190883656681079945806165970728735180538788612469894911049390602905804916070807020641668253886217508744718264103950068172439413376199045158925135866275788452365198641462000118469735536060432762300779031011690391213894606552010697428319677131028438501240985855988703482792719550037268953550645866081609365360507143287175931866464559175328074585620023848182338343851739278387914540094929408371926768648011349892363603252640543720175563975835753169540202764559409439601589253985304904865922800210826910934155303189330194011620683087629785030675853441487482584194397470227162731920836721953944422382975234727797684002190459503731447254135037561291047373966993708276195074766385379295841816396243700763085252523570260336508855645870414812180056160368294001118595778011903011218575691176602964865089046703103912223377333988286805975838777882649360614685195143147649680993407947781105686956365508414081401453699154799599731138171918523248160210221500978104311531351355595074538170930653979752048076343405089245635649327218627447041500017485013732655372745998479151433662315974135144513179743558836719248406332280235293219558572579611558038697644716518647171416566598385584072065371039719508000697995788549940162694014971686516900944908584279811715977325838520254876894023272863416670447297564382306804758698139669610738304845652611460396898167003614643567579245259224780763114813521552420548902473229994205300035955173882428432865764752040154614718725814646813311963011354177868078680178192851670497075749834378161391894945884569093021560300511084340615248629430133253153065221031835251800392614931490922517447771362691905488673588371195983201578793057564495553899500753458551750362362140826555003818805545247916897359153371821960046716954683393285435725982812351849763846980452699774313529617511161687080352406080239525535616851760976087118034604535819358109430015415186580845413028028488981510214972363976589750833463634169470527183998419317691425173671027602811607553567538404664319130399076865720633162880032157926389064954888760931728990140930879873420633937560008552595773494256188926414728107153239417869922381643930256839266688340927124874845949712222241733080298867799613123845319891982948299116444052024822018249699245971639088022866687918235903821851821860288057179232550418160725272721077294503575260408223559749075992473528243698731350621323984965128855086710135225504779169501028074691659678127154731646708788950415542753472402046167719921106962817496289416007079337042383689588995907733855264880174389233001864621202269270489337931668125621008961959109234116518894578648532331767106079011697655324558529051985144099586068951057089126262979093865729152523873425934910464732578366345732956553470319219583459367620360091274886855296042080937913428771019283912236452409729880234991341118527045923780305161277979658676711788923579731744230868481989085034993145514341324018983378094824134859331306850227478530261064867449909986341304642689050535469059667982197886887824194327006720630522533083864467701754986227201483705964508291752539517680346026024198536020810889377016225164096732858168121392147322759020348266797488715040923754681718049518698851142104299279291174183887037590248273894540434818080805077333828735846664729642579054790410405499628645730479452779562743485507786258929523256359903992609469912995864832903139452309266432599417141890244194676293631167573891759429447633603522457750723780493754483622902412873741267004044189231697775871757494607304737637216401216925280209596577142137779851744016176836364742615930235701096355541910169210065667647833627189595435739541507079735238042995767114886622628148692372065242210097774777165855309085074049552547466067477579267741344732999212042294498347006676142701675399501083833718052948677053017319030446530647649231760931174181643043936775563796833104436961433501040227568588133069082716845368532175117750143920776633082655933810098372147352925247360830269790033940372881734459257777998656724479761296267040466559405128535935347319013037104252719959846748440229535689400282865113051195651994879416790820723241403859918838509166425343296882180072429624438257707310428343520408500266455984050587417377014333152097295752878248241209959111214509058771661624838608660778325746994155862355930904525196125793947653552646034416891329294084294159029060348478486937526963149397372502784293163576002598802757719899170222287258966925439609308248294879768014452029897863760014617472383717828411323885788947398987892830272277090340360020702432002474843458268302196353859483048713424331584499764558628250492442111115145632134609057301166975441244646262443413581744703790463923165948067677758991085772200918304573303617029032776021979635640516488123845445650147359006540100051225892144147210193976250379991988423311688765007444919398509487530632045093625679649779546880015887974975102006626165305773427465144481384102699612327019144390454224966548471531872477342160206274890750962186011749920121153600561850175016152572812509305484647144280191504902864491256553409355116240548838594700106085203347449301909803424013124676355772323411085756627606002692396776048624702789340961646426818248553700254699373887370459960450382907890182249698859324852464703268492963630985829820836567098063035389733411182276821423940244966016413417860690955167935314548541100286447725641182780563488461509733807306277808943379669732559666996705484089068269725671254408994443878704964880410088677696927099185107966867640354249001282322682039571854421969606110942363230388681339183498887923338635160420086205741983807842936664825254209746914677576959470052477770519046144243096653361970143704796933441993694859796150632112115704883664887383860376187876354989398501400170586838615905718597333464850397569062479125252627057129167925918433860828282835194765327224956574708627757789115336991521469988988798665276522125660480640282706289373648410821801276220699745227770980039929942583944497119619699009332376407209982899459128684369876243601577303695929066717550488321291409309461337336119941901519705813958181336388268082189640129530057627495853680859796874304072743141272278639571715134540535903343987152057414018174702182607011893067616777820019816834607871770729732436491981615008301487348426506691584418913990091070611420226317354160141509334742932603206790522913804779227725018472757136384466082688514473365441113670814979747751999523256083152213843301736957075618980424735542782374494979415578029787036973408522332285767516320239856694162671014423968999688858170420369185948036697791347577333565091133094337409277233841077732715080239341789444833607777008519226426057930389781638935405510332604853590962728912590472956588778413805849303861546928065548746944867122849289402687255337693912368119340525316505382708857422367883696574054883861855875680777610964951121949976227535646798043250648536996960595868358776366410142580510942574709616855192203033008024410828932164161827293229742826303591452991368151377061881330407640145782074358728195933715007579074494772883729992793074593414096586067119606030566241336378509208730362928819535510966927301772621216635778042096383896421670693830124854166664398411418648864189376849437582106839402704665838468106803783872552279314905060895201034266450882655627261632279274408334702310075969217835087462931420270021063078160006940634377489648409197497627305348985379866953753741493912007444598379497558363320419101645001055271106202307012750829384787743065642697331479016303516555173330821753889849666290317459977862933416489724764364611377880442042652398551291473287234988531888799570647631690719560454384148948602883955988009416463441887003969845457508047097658180430124575615137865373867891882526531830016037223282325672566802316388650054385792454673811525580496632507303299153278807358693158322836502081445727176387374040538935762402313810998937382288740645901927756556219309344278438737373085682222555309368089109115251394523678234297726998910916701251719435687801199634131478481676371297082637661251603229789433632135810361730616292923836866325669951190596245200585126932292139979059068952162035617997877643777786999765550119617948027379382455482180369448634833689171974742323733693819822685483194484038699956124617214142431190991441896588886608717962573696751965516873946330750673596440170474313899724647852267495782114744792464490224776561441451240530946938552928932684846530966564515010057406958354791854120158652657248867975043100222245852985630397461971100199173335421661874864405238523711661063148096881029399257056716431361500053796931350910656791483886772327976589730297732991248487780705485518191803866108935032674133881045163474517131840808381306207766773077957084565328549633619927960367919945553715420579150954000435451372896385860248070249134350878698773514858452895664341414876301003563838104947771182851264831754915744673329026881769202432141265649754699963193308635276115287570210190937659998670392325436415156476517840950123981773954704960144182026757538194386620485484116600322418331545259560760843887372417706239983133409152050940204062421396698164986031340236470900490580390030799738664602381039822588905357503915357259497988973015885037960991731496273057872456851403166139814731195015782742797319695721171123944640013305331688335598332252335487464491947212244008864067862530349497978936163708670082008864054327129927853621931303825438532379714898590073512632091754290072029899914144098909260132351678611442271398812485961412460949745802382252894422213429190722018211268309115520623891428780276762088146967561330141431948896838751039394234316560016440034947566599497434150975513379342022052082820959603108107314174881131651253974439714070147939874672526448622280196075938900625035497115138069643206472688948849363389794493445182554902784310839023814961790964472588291166568832018484977232436613994843870024539635067927682523678123664401690913168820005339091490819252456044797273103008417675794378348607514024374298220991557851686200069796805114336007802818103054026945365532114425305343472948434124672549269591311763283546239089708720361897593664452333060989643368783945114872115420788276555816038516300929768859813024654418199504183916886434641879475436393550907044695629147767476120826049061461939058122579431597861980754828077561820774308039930147322629231455809298279924015369056259224514048375663640879358174506438260846601191181744180277670042446007812300318760372474306564611503184065050476083871624066078982650465530094250566537061192637993642930717489901436274064965240480761056251258220633399449854947731906437290934180245883584404298392920191030204902186138272648425494140837940985344039911028986839254370512515234244403838670742040842087799568647787535948018293952976685884611879676339804955476719671564663251096659740338149027943880706195785026707430840874614309676598474535194911558156751078642552414815195670065867659397743340556501156863534329382870617148175143898577896813877324947816959457849848182290375809098875664510877739112600360500561314714936750573011060852119069807877507331392660110501571862819244570921951453855855763266375514241467955032997873463322979411363387520304013462109019271046096353740961295489925649516471655761814869164952645007459897060082173083140524671750157508490418535502871900238298256816729606337613076083979830754051748081664780507747415285635828287808419083073148449581897711881327381050233762646640945215519491257763020016468383492138782195188072883670233832613752764195728410267393836814789125418635837316061409822948745906292522449201492089682650961274724042093366194137988641135570266848266524758988163487268776480574674664900648009859994956625281171598346484700180190774006841330796617765718267962295752339792773346975624893513558972471861733648897209050849223093092637166999903452241211569103929846038882117218850841595356429967561583174170425919757725853279317222305720157954122306590365346688297160386427322858907474821567936339639785385709474849059465320765481332160957868017138706659344133360742396385068137945370300312182459200595990964681622402139257878945047333208822300292618274356080456662396144164041042074313978445804671482526295383156936550721010337441996724374665684751945563685956228120163875976719965895481627046740902250756929722658955412720520660684644119012754089470515138962713169022942885195996341814537927979038476979955443959901085323762669793102972881856051127990307908959458099352459318104954332701395088318684717159366804279909549040624696351507179064743698579117416163432947289015609022088979140614935903473818032735679211165457112659818014165150267509931929929637070054396260744413385382571982737146897591932249509917558812515132180618958529502054403233074789958036462038930994678913370497564253154323826327284985906978411046543858619155585248490426747276830117604801350284237659211069609006510324249621733364636090315052838637770346584289027380620539830965823590088847912774822198819521019296161972702415485531452159311509650750395004925677856035537554939372773288003191908271775107824454358867516934097565305374446868137288392439039559927940690816510730585387861659451829153734168059593278033748697332711029789744738854670602023718367476551035323038365215833867154662240153097051860948358320284028718791455225375241643392873698435396043664656648512903853606757944581935344375255661576313384130138221927412417288413147982083671595551948113834152085274436461662569118510089385569224321596148256914523894783456754078038399110076787141822444969537595519770773760042726887983676867092993005884474168784798932058325226351951292370667566594452411795815513020241599855945284410253546667028416302205826443836153232313829813949185309327640403724233629173678385844015646305918645407300626258846961044923028353299179052225821553746529774238989964849117237478816943259697493273581046614099578151230739654139215735000798351301011241839556094936452239374223397406464872800514663633745273698247556372682512112472642328381211351574021575119654263736125195108694454676531382438805831769952806594252805159108976159481724565588632328546797766062351412674247142874162066522809865751945071329311707185652098433322479768633690903096300472024914918951637832572067469267577009127942123145986383148613031137152714360960309449270708160687358937231805836897829042640620660892610783722426791853519024841944271116089726565209695181525662218964040370410417227634958156244415977362373430773151636766204462093463432724284705458597493977302298661274371218831313786115487793387343375486994246687325321134449152755541291999034262234574902738541974921667950894679691239593165155750596915754744641507324259647433767730233901556694178210536566914399218916552049989101875289986255022967134132204461091180237453032171542682298796413566680627592833324457526249403499215080819447912228597450614332995278108951277859123571346387489113440632215356412857567478808400647410264281290047733216590835417488599568582985380975078509255148457200264614558053292063888804209724587241268640038041508853926064824728074356256209218073475117579518409673365598173084829711156363722044127761300925154799235092168410069305170653632467106425163205741173556812243185464812303798197995327847132963644645293087180902626667949011619494542107072760619070121974284978695268680159022180519580077781313278402559990452876667279071205020900486074417721420724453424564118824581309330179279956476140687840752370181178390620768043026358383546695329520518464528700830579648550423333843590935895952303086411717505341269888266146576078283040786798440710222631458115823050248267862824819721343052757257659366982009924215498281428945974627585232373874321166464555067869243702678429546712203017791448880924297884865774496597659091221340829126128854155403918424876744361160477107118747149376027984057674504106121961069738330957286764524126711244065460245672648512705906028747052129363598240304086844052528293877020649047772288911370109691455613744182987282399035390767802047613226474204724321685706932977216229053823608522423549140661658878493540745861170708891911886725160072910297581386953285184155408178146392803107222428985739805033388317375610714709557303711784914787599820592705025586064805378548652467495407028276346521450426185964618565811906972024339821046664353698015166442360494433855394801788375394877898549853350586594907273906764118019018657647104954924140564123227651985948502671788585755760804532053581855768833424521771818134690744065338931256827141564809879247664321782049609555236338320408381147271971404077966714407490961610475383370666750895889526107323624818662396037919371985125382235537499325672071693126288901740697218999444672982946918818486803219040049460266113358874282669379790825287132596584453736254848021405061555861818538472841674633522227563224742863912752785821199914651339461400418062351560997665319537520375525264731835526059176579874364037981885086565464241941285780993615864225089607891990728085080169269984552892207695848204232531351174558457626134667800146364677194607928708986767385138502743014597903564490421614555596847849253599659919070823863919136615150524462884308214892350516657696735111861707908065051528104113528044372104214533135117751793932005336501469922773188848898323047153193482286845190768662612856788010319049613951815957361477484803972460195848615441461605729887789079195458704877052461384279460282613087375500632596620291000096531139695873371091455640989184201731612885508366891975438771045109916688965230019498845177399277759970816793515554946453670694116004044637496891569050666803767125120083259973069896786614720776677010400637459607664621319750520033978463256895526090291556451229384841426226228219618381424016230188762444563369134942473140131103604709616262975724020758455058052138903262707012262055821401403609818451241593622308499474509912316118515978233538318894451989364451841147148254507961990590019851647620101809953268755182581694107692289465359782458527419281629729441553547220136195574893521821600176932480564842067594432397082605834161574151444909029661947978021104296354428655810379735791388122123442544989299382144640976695750651637640110791291518979524525819300674956105137081746149683464289161433089137220096544252698931615160090445900228340154175997251398686822088017453816332038572671287334052951488552184977087807200628633949059238884544144600787038038089465958330594210636270047126718076151151308906033870246517578679629164509101736025458193414849504781840051873269158784789575072409018266749900500677734576362600310184583523280713615594616180003312217318151704097251611123292432715628556603302217774476945467117921434397664333960117221078144285989678159058953905035676529627715860091621881327627952754051589603740845336719102381594187030592176613539855553850010437079983823424423641819269818110543897083659969375499721370563395876286835359390449447300514883976394703320385652681038206323889752477034931966959250132079680675429591701931846619769134816949446771775590551417527816980869648123143251352766200856263377681654502159585568519032646962408387989282958349120414879905649477414724957410263942476538105290315900805704555727736195531163274208953602588888753969721152826217803791845431985585006123072121944980341343559102933351650957430874291903366747910061814873130613962753228703305087116273641621539991706908668432855021345054824209009143931696965592570344259822715198486280601562811856564312729198892362558838523664410323707427885421137303693032614504243055863417662020111004586084970145608053384600518811050080675947782238235718367117818846258707659746127291484430466592654270609052839933224295336709118261246403798966726801444362201902910838166202558540572105879643880695819877683919645552556727096022306918848487282349034885927504228136904314883240117129392131992860254181361801808228896667877175581680561225787153955341517304301508053699491763466622463024702589552601898695424819508525974848484921407018593322930377559986930798864098118440061743107746305095076393404141667576114218653904034936274671492396542290739856445521990194392562725416558970464681127251258808749867371216141182661397484449988980619614314161553107898886084476894539735796412165263223343981701950384253924567628232278592397002357931818739154661617641596539270485964920016639691953927802015624049370199781008284244226241076970870754785783071692686659101780831827412060175394328644678150896999131344429113494366998776987075043023110327318972463484766635518799146077940990503831794999135669581001786403127244590530833337457593630979001841583574523584518924214612041556368484803269122420530961561199310962280545106711621139959824810297322928042184673845254149849405244021498611259710898509241739648075124030434741268852547898364138736168764461597395196686587879244525863609287339295172570205760753810365227701963369176556718086313162999711131566931562343684707441165608160665321777175693901897341610044016976464796748017498106989341482563020248146193293345536892823044530002160294059261347811626971478133179582494514280622668987900534169080564475000289519659333422507526914630452234007294663693495636686289834093956734654328555555182778646882791508514484537262427793555251468266716572734033478806456732149599168452147078559391736313811604759410182085166481429459474094055496582804786405292470813208111696832163285720636304915439127080433302266482484910528238622186429949992903081499235603294705064083594902854179177757438512090674002497407438041165665315127017619857131463035865850722265730015376105366753818560127996938302316890614078069957013441532124578326727180603880862689536347999358868047242084220313396174898399437459521567774498264077732365005691390524483428183814535311329705461118634845038256981607587031783990466801691002093065051680177772179180560556677240955362197164061065425069138211456116768042789993418309742037422364289297986119690668776844077778785159927149525166439119390895685821446870204642436436546521858774173672218765340007549433572978085605046998010065987151872850206854419221785660807754070333587335136299248038329729599107370309902101419131740980846861357501119420748807529643927989059929414788050603309786320463632767770787321974118260744864271815139622218452802471752734672479547128739862630594804339449962851433815075537800412810829264968012446537588134234516045367841787353146958157145491602541210940289069279621696532364059504483186132272014983157027197636767002062318176520296736853319890827736964410247668239604458742129817283588000959072050936658017325926327467279216063451269145669191037022295614752272906574092070742510620136548608002394520973637148849236257308155646592464365600879904077075494536917217967049176836797871934382577700616716672182041291534541244640205972909237677003511257410951806831226623749548270329635127595908608423052146852255215088127630808356152254644124632060146113223615887753704602115091049021595524939567725867108111439322315960214542176116823211346711885806725367338477195778739948882585959777642576201692641985937939808527842507823480356236087414212168793359323883801893415866046074766757357154074709292758379936593092516506015065987140683325894137034978461707951597207657140091508227116448121614715207448155786791629752120664962677648350292924511617100737851754711035505325836391667134523870685196866000009614068037932022059247378229315463794341855074266503617782371320193831996616369552058983351895346847380474568737783969857566618088440774896523215138355710091562855165217458892756318073094713957601241229242059423306233173592317835409107785321854334280793215920916905646554576939517328533936002333507583687023917376735375691281636208322497115836947936038752749858297059113068037198459697085673445072379586575870059768043683722645538768760764632538692902950103119713729979908874631544270128479427779389082271015504500094279434456316972612474477731978992690546595805306562128315286803946593831938623734935941455781224105831632262280243737608610711964940400417238244559234882760356655498570093146854767602635530302937099972250370577807711382089125128601919281688817938327042503034296842017097845598709029214023204064154882366650741234896131034678109776907412670267936060359580801264388543273638617391605521538631984030672897271581105374644974458741314164340692889074889782421655607710403025929817879607950863204263331295641654249727903478171067870967634593803161206776070575062428362402537907884183439161573653077459527925511268625296478964405260626738770121383014256912916748034122564231475438504804943010765986057992337320898067710202128653909886310069975382521667504445055577217876737035905081397137158001045767797805293504578717791295257021314898857860655322203669942461276687227057912931474340404607268536823135572001302397890256342282252434731561966776590999733980135332216668250466934405221832643633671235609647909381410948781733855674541096683218645297114227594156149251255703827678228461359386053666571191649234959136385352416394805194419679926723008822446792098979019509056729053236573312607371475875719565376183422940445023162470409318271678425732726060070066542990814856664092851637615047274792472415057867173686436977473141199543886771705043790509091889930596830867451569413580991121687944657571700247085003809495202530184493692340914037118254317071135089921178761415795944065426406609237029220339502726465094883401096628472982541423193810059582608634384657155783698279361505246295291950780106284287546031364674100977251321443998463489985639454310501072584497707614723507133560610501134317448276167385919965320711806660104873859822507093800757554293581795508842765431694650863554026574636078179814362786428877585862961963294239716764336220362704147226875638495626702748446091621257396990222090846690220205332299664938544892234302714478836477455293290670827569276664953357216490647899978021980345564347952544151569439025244982475944140555415311270164021072590214799812433930854354578807818585145834416603261627942590042608368832239137946490223448146933302309482327107756107247363823930681740142987144780731015537362944488046829831968192488353014883327838463569556525325527275871414164269181488602865523272810242815859639256055552138633644545052449310691256968238164123063296842737771067957330149927361562063171116328062025416706999417875163186113381673015079699262884791963416646621107703624468523586516539872125177691887267959068992896704298117733433000323341956723136065789391943544993878248766216552178710221682725320467867981025497047695122872806726910950380828011138656987175214779915531673438654781608147095460061705107749271421215125291663137895819779444006251153747084219921723423544475066734367778112864552653102507941685899565680385808911285891972865621060157484977559496369853224529875039783013769628050304139082471777363233672127334224642948070531409877827858130684490025975684691297656440186417154308472030098865470222058088546074903597178426700474570293695263013824510969140856941805334452393865957339354461595994713025671402423112197759750987252561830822980871755677426150114867414494165294800094172596797317512450491437759135473288636623646814466759235929903074860104040623397331059402862688800085630486058001814826530378689965061883068362856526143586050415031934849507774235247300471755542551663607552519089402657170528638379545260525208316096153016935754079170017294243023960710343295186386618163611704015642065141816074189025329553227172008333333824038371422827054504905604982594280049278392387077744676297840770565722581189787508016238795292257952145420484732228305236350512254931389644905283038811558671202567544039339344620024014317041167624980534489879296039637820253256591848029393653989364246223982181571825145436421120228185686079513560083914029110119972635922395436441078917312205330541930246798276587909409927226745508765862736647965792468569299381172734685108293439206777673675079486571659365156438494653156910586586125281771279097718592355240220029044089365934075428077880385824805454856112854496160294230245173840979889594733770140142356446843330621627206673871219504957993691077341911967188661462487949492619781533818500991019707691353523599046633072476300879231695256344881245559695940966592529304837024490476296936931586200355223293303116689438243118537712458260699680821186529428121387378697556305078584117460079127894470857618048581905299056041401444905214641551951010879927591226424240293797194949248133730273618041397852899135671393031008748061320423313425075893066734358583890668655411403914491002391733621248824447717809345675367523644609648607069374544155093592147410383815225410318646562588488129199161341902135821244864445906298746302345528551363427271398721469625829358024213436663669171476894740203999308156321710668382512741468755547353386628461297891885114548671993521686865898707057434466193392529947614904477060598286156747229989658027482578190536371241834687776077273313164120465656107014633305886685624678777663266520770882920879733959676891083211612392288372306184844994308388636600411306218565240618796886962411964512029912885435308028651694208743057011826742919809702870955275188237145839476515088700509259604954595559772667948623287494408428944293911642403641403168326407450677234647951592725508602545064368110223925881823338966300855557019702649909812893544843609491695860064707535102685372242252645456104517192133101192987909140948278618291294532674381797096056530542302938594254084686322729923158257018615051561594177825418610066351835675909133303950975293863015966434192719058105860035257523466985673776016019759069048854798514614017227060994679603320932607402500948123315185577813113261326815039950434029616736497893279287216187891856068590004518785799852400964578564667266505427097829452596244602303349010562594208804949769930693516065786574102677471474936941341996576193359483173974414054279741359983356103250185070186234649680689175753288440913344163194228578821996403892470547296822437060262563810497021209538283834130712388510865720868152453879642741611471741790196105794267047304283699920085115400082893583825527132402449762020342003218931593710397306417526912435449340514687583175951341137379877646001714773808816613947701979942860406469954856221293881809157450668796712127057724784296710081213743648854534072314798009391821356850059375228911536915900898144288154851783350529159283204588137111545620698054664069203806974181343864225515632412014183569946520881570251137946107288734486514732298020974592558131504639260527901359475189237256933811534105279435683212313852599088645489985263885882931560462293833932293615637967394992319596122653932116795801784684414132718266003627696246535749987298834571196461544233713370343674045486628969750099577130062617025777014791305814885986047831800928511233287895511325889424346545074553113078172681099007277712552262082865194287831932578124726792730533034274952504236559683180535558974099216305237899131097300955065015324814532230106498169801087734793317170470708717701081249981318153695521916999833571729224415871750027053026710304258361771631695063274215434388453134943399773575363681329166313584982347952160408747587801760181355051739480397131258298689827827787346109151939267090857105186639104771147332462033762982520262876411852983836033970736427407007041565502865389882658648873475311344434032762882627757157297526792524672282147305535512828255001294516531153518514519210449366577718143289321434819868211776150931322146372521836574423815479718887282185414475110046457908324558241965126914009161273068148455401398355935048121473858552986187790506465392680362759752493710796815306922738200503585351971727986955068888760097106078343458793394167402182258930853545707700537135585797053679847679851550294632070616313938832487317943991029631752036477611176278139062279112702629829181943101787534731537673902415810206782650595105843526041692552675501336111640303067207126836671032567514520331920810478204228560245721968900275601603086121557107624680744561818158742301337699662183556007943329441995286839250695089526092793113060948403506111272727596848077570574733703684972162784406512548686595888615921123814283396709189396386067063675820229692329197731252552105544909738481767591924587871353320184004102270844025712925474933874799811815151601977647198999333507790663235511752810375359012051902037719557547988572071569511068805745663063512768608704496188777830742292197168937772582256764753646597783223927962179740975621189102368639848369712025728357298467814738442042160717862346143612168140823021669878660621548323061459662049627845072055978085169159574431668713494017317676585101814781866538967300873524111702023812440442658390676759760844972153974489650426639399135441443734807782899859516872700086951081084790286026018424301929815187898445460209988281977271449724774823991711258994088327947396930133983093345837871634515547653442882096400488510535349072800515685424781090304839534151134503229949522362306858918276689319474215981404862517362448694317224319372198178225637191928397323057081615402034111834717283800703931397753747214621006192021198543197752705022416314296445201611509912953353331396974207423507408552391148099315069242034247487909140261499471194713789741676565038773288265948754626595742296574944977389771653520122767331173273456710343738080147079248265250048353531455717740367938802979483839406286452586059284606361280884276572063863422541326363958945040819695198872658384286286673511290826048428069937493790099507156250744046636601454022452771592884149853129305472663551860746343683522013502412912598351558578571839138735881707420819423160951516527055361249447471433100472814886542084611832358413787392822220477624261976437117869441736449580396692832406284309309041790015622001486367512357522543709476307875679927430224737112634127073355884214726584909923511556992335922925500748602289408466775139680847269180871364465346663251552068169744397359067394977325984757987780173892377807086914773083586623508197538360347244416977567297759380013481613888695610054820496609203893569470157420128935175256090281922831264748375643887330292520913438973974700662680147525629891650698704606813034708014689645110365126223763717426708831070271225700446467162235981233860633398303831774159046368649558402509284912126275485201500793771393159092946440522999669868561951296937734056842184734992224931571349251364921785991899345775379171281690186989998099815790543301799978723500303094906658856861512972837612506601455373417507128500171190321993042794539962871333372577593295693064440319992911800420093399098655142228680982237187521416898631599854432970317453074412912325225661754019995815661262905072427744407054511980433008707999499523794356012781795561558882891942285205045304674619482710431076854368254960202568053263353886820637812062261537136482029628600600063616392033216170156209186745170274560669441706882302997411509352125901141788009404161410390960255686382680999479152489089275165486599295161477881097127949822388064877529470890571285503114484452883671555562757411477262869096730503955297272934136153125720231368072534064585896967996861611628475100206456558942293306377661108131733892757637182937792796992653800221677993369390246405360441480239446986655023158025380148010333811542203116171433039887353068859664937084289837211584236793741049416449116531597130728904421354543426418338730422772583076987924837324787437961558862536909826575696072157443476253123508676600818646629994308038912346716349496062332887189269196692343741353111747870662256528044922033709492954506224415432425653168118838350935703332230067637723499305860071901195192041911418194387156738725633048204610603613400052260487212449238668623182992775919915998540225294356018751793379127081806681653685289106796209748760179940542574520033244822056436089443247707097080357271634199548569092256637231896776772720537806481266619665100788031988661951465012857699024502916631982300382290258515046693337856602049481957984999003457702783013383874128414296071062401436502417982224017956222959241968830559950972675686422976171805869088981156257440434307923770621163772912409284698048180352471948302871447446288661514369449912782468255316576635957402894707298413740046229972536389143692633689207168789789661731069933520960768628117564326439187993853047559456603248636121859375071277308459688752896565007239109792836799526798898947523102728558809018682245817170239854997451874925839012494406919435803150222192469996018979336625144719068537422019312658013454787614213262949050522209035507553793682072098625942528714236940974169819012191854458535259279978103906463674574170914558402511693279306712896877648362738237257640423495674145462223039162866832760470376012898715516703948212669249782972182788154321703060221574304332834600125735293177199328124534236475773640050940085649423281931128828271122516103694270067173368839636651945230061361371568695255017945949440839820426615490372493243813410677788598740512865862054895296430781604291053294080797266509205729711688215872363053300008559933678214117869758330468208768520103313368464748905043993484487754572654364826218338366077625910081325312124118898376380592406096907644803921357397582525081735841535972636208638512640573538068709923242142497436627865314671603412145240422331523718267097212696331952201156989407817777632178517936458441600355253591847345956008863624864929286737474091235084453894848697324201854436611535289094121900231977094707273341284635707768277081983933242414961045088294193545772041674631474947240453186049023808571452723581232772669332097394975433097841503143485333432260182895405374961283495927182380485004284874432580350094105547869840672567442849310638244106494843860189799754460443603385211651107906812421771350485774512262615726311562233058918965766708536986497239102734504614372598783820523745692259213587088173725022672667461130732980635926522876005583316867827327282692902982851166364757519180741728858238896007577739711421563768665006403122331044476534872292569727953917583111633687881436946040880278582990426410828728025364122125498834117868206291266618599220259030177399821566003969856062734968340180435627286827381013484121437417739048111124623758206623751929328912244758792468388080791116169364074160104108842039671541208405779291155232488539215330429106933046261209735471431483386643094647171424616558239899208900562259761721096574743043659553643406301072266467662937488658531191305152126910638981062231068761938458484247067687688856744308687553900669662436953410425963607814487939573881392923267475105879138183458386345723311482396908739213223602633675922495156969563258703629495866733115419967922866018478359954750440406367576835334721815342166828473045440433352850732189621752220531011206778017566222950017180944699391506698162249176746724100817002747445037277008401974364760475237569853069215996363227532259762493519849648575086833026278209167286933341566755118281301062808944913943304888524764233123922314897332177714505216449125865426852861743153963005719877311425352039840682809967190172772900371853739408754149482319973715277290936036663703723528157620861740716108456758686765168962297714891422853734075124956949038743129023131728114133975704523893097357299198807519432365520297796059670022324574780416270005964620945569538242828635047902969967421660704320935396676140481435991415654718765682620449464385438964912145452192339918512430267168505659016127632610815435611687135299776199102197669553303755302287895704709731221238310603289404030756908131154886221123905816237750149960882673650405795794030806841502448109883586915484280913148708470860273063974105725814873840673082934836501190394276270712695242994367224367602136534233394533039893711665266205057135665465399795880267409614878127748044189673842153745522372564440166965053974196911754549139707621428480533354380895748457122839672850551993012789681002064784937540016402049050717781886062970779673819417993029072960837000105137673810432694229371865323229954906025172289267808739164946859073796950654992528373176540065975682137120319148988532894888649787107244199899518541759146452157582163819629646636254973080513453103455231723740274833041578022884208187114910702334736775683748710610447036916005498206603516827251900494060781160492423382596377515573715447227070858943182937201587722914148619018145622623222232129995899666347418226619381674463064290685080089450690057702324997861780226804703938703603553469665778123999973024891917594938187044810230700941408047472559823490099535939887277765366945516123427394503631582425718296866334060314231231893717799675848295922060727172734096327004564585568836532779174945055702586453650899617475177030519648574508895934655280184090782426142538649361022207369133056330273612363095984665825414334606086282151799002790609869234208201468014459225431561099907301433982186657936704106363330497544628292664204054372863049687432668052786397274244796659318487578398875332454569904064946414495977711204618298610356877401282736529073635942553658411252393439459483545782149552242062221628724996550070839020344075044572902334435157780747074404483570465938478451186377715328246008375222558177253145079881724122431454728138363058892613283124179252444444796714997955747684263448216133748954004731981224680592507182057014549747508089380003572007703551601159708965520041763155250296972940746119223667478464465640091861432006751261419251530360544536617196500159806161162958519391756417920898594610697789172555363544980657968999065044860935422669544097079258114955034126349917443800493078852709082892014596064297462750894739306288171205662414581356143649875341329688647545487963796590444064840430579557903530561969337976253673339393345370041401510847433442191708589453433667030602563847523707273609155848889763701579485057894526096495539870393743170685184544704690997630387113487189449712597031548528902146520107151478135360919561403208461309815354104332518831327529186704137405469547064981097655511100856220735941929924771544328480616185307133276584742809821725753623437466916404866109533758888501501785520009178208568476705342853764426466360734312089549854256279293842677357839022969123841550966446828220200339485028041927124635890015497069488289846467054683947384846829683845139383381708403919769128142349610039699920990247254925530206632807056525716225387814267160541358253058171563929448092192227460351651441068727992833886731455578804529178661952297841875899407279289281127047476755134826997114208949879409929383682326338564784224859709431417895200417187261661822952118301869505816242521451441023645088276352554730154787264676895664500363626652461867604093352280029507960873255775610163767395624609997560028314926459903020786530680238904013303464496900482545455122772961977458674205055562541804918703173114150392390768150631975028418148773389116870521914690125440187349150051340696475592538230848382054376960729622808203160049789841444337599672222040627508047864568797326845135368042701471672015250208255555237924752304316403807482914543762706066683596430237336389368327961978077650946193637040290195118734594980335984276135680208913271282705553077582664569495958961106942271355747265754813763253250872973872644704711850128174074924861497477798824765044554788926957654337207523303774101727172097248795925752947186101202338901169404710208926576866129219205437729209586500198909892259488763395487624510287823700108064832258026345420959073252670356470228166680774069182006115261897261307719259659585493629631078317556679012140326182068496323904703368983158661460314505321892383370408371033461333753114321500842690755633064268323728070391194999415976359472592658093672206594620336206861201771687792103480374005794367009309903370406487849116906686235788849506454191450386408961420181484099510866131826601189737093886553216448980350918354192675746941892742176595554088925783195188760152074410860987600884149205728028851127150545381936172033142917707909147750100466892324992123746905451181299943646486338278663878310330630995650443608465239664322486816552507998915190571449298511175503730874263322138303565631736903028467708962792716471179963177307050086055772466934886826954461524305534381229959795614820265110025139112242965890149947421226966156664576737291405312109471785163209506668560750811991229306943659289090733107740767049124547988596588721702330314769353929339779041550514014063429381700665317110883082781446126974061263773433128560454530512187571687882371569297640864108335503074818692343850430342133489942308455007647592554424717125954119675314583524036477152876047617736827497877101730661583268085896058981839419078506408985122762194896288673125626517578752255004563496947613016513532972763187200380266037708417237739614022322839792421142056371559742637191164883548057898527641425272500109082460894369194233491449241241849924021493755234613136872575637154750541015703551652906664898578846266180749129289863684145740269080638629183336779868614008300314828590725630165581336162295160786614384592969686391723746343424303146873043587218180241408702659419007157483970717328243197456552893477086837117909494611552604582853849902670632628903460908759207157025034481184994331088882323900588443205231797642698203823026096763951257977750407557548423978589490374197511980559881881298367472408907844469157297030585283587141173015726822968467814156002369367580930702867609102467008218050822477354996802853529195007844547942802098595228359249260468052794977159082369374847231409173661567666993097076943132935416315881893729796866599387524145025197732978602087487811922411057235125682060090380817619750794519348178370444227998377311419104538621543356352442131412343020230911895696865128672928440988548061766427560137638605744672079711214132342606592152045751390873570459230144828421266259828239257804750937723015241709826250298505931134196549560890322451546997940776903571772641315855240331603778598045705894382281838129537574406572763130006772324448618052012431193773393477875783107900220183138275973383127492094128722960769882828212612762416914858716978241620017798717907507844352468796169677979316493438636030869841810563337480177488809403552715795669459627899899902945908896152427314126127734624726929593916635450286457955745851779253805078727147215322711704009374281648286235224896962678580103457687844594159306199863530933956846343191299849758883408592865663328354856188677141415020661455430497884980654761269071662073540015064622674829620363446873236526072119991222575022232117170176122769654054391979273475036544490251001594285976415185875643408905007143911491102603774896206842763785692057884162289307039982727253416990118076166806701418257153347637238320452277540988712057900817489305841247593708820564776827073945912041327933908195187286078972475910911083155419192724338615549722731718690029300576423241860577486501037487864447202090912789561000350931688220200693855946623674787219360443197943087343882121830990440180196468079320875275217355763789397652682552197290713533413492122965632595881614755942594745997739652406369093745358226112139749560932245890525216172936527282038414805434606111835070393340699702339708481474480767620130530468544015372602884320896992363567141193049886826927990366552903131196012629778971431722005807014380472674876848026162059044195584945246252815463468747125437508337045305567204253253156758045850324635719284929654347392825069473927974098548743656450675245097523787087984801774454123460362013245851743583706764630030712499212548903499314424446909681670975921932639079750617190607548552745753207011426328713200169748787696216630823636361955677327026613184489106628594504795748204225574248034420151530385523584996204213569230761270441180084637257062650924746201391563097328343794865753217634644114605725209406422892779357982735273062514445890554887336419574175602315608630702552447895157745117071579220749421371850411141558116934890194200326275516661510474258963249941075937402333868612417299900727808693595795092042572602927295832333409943085787640638942060046425706190966965792185119744924914755256730177833073621885471377879808409937816343898621034774885372430448090731615819575493955095968695882427734738403550439367131531983430157088686131181915069484830215541081617388601241951208454094005916531636556652151098766002062293105859499840489131607880102215548229975267843199796797168590639100820248257615730556958859891179322496213438904806515123676841296224921373137075008946180376131466001203471124607043843879068104776907051910997503107602848482190512133708635767411260922170440251064731615455814868564934985659075169000173168492270200762675067812494635380612697805060723478321838735036452843830426943145904874573567872227347803175898510431357399324213191506861757184512517775051752370618500301902396583277254745933157294092178943714577560729285853733008061488651167686364406565549780042353567886616212542229793419621270382979749515170291972798614301849920708229272552369691317263569092934795109480760945328482472105240050598371489261607446243766137710518986220585997739866693027899301200746692980699799814422154596862584693714903418024620246621707395026343520614745055309236712891504605345356471605036321650820534850807688031272783690368648662919763050669023809945990683556378697020534874431383541061798415421789162750233481971208480745149058813993241333188318033071626393078431494228903978063372865592063209512203353035020046338949189794693490961630001572672847205446386495490898298803132646300356335253455417598260510317870800213617148038754472647032236546706551950923087033284763717608471729064354226892058520293169098655187516764900023670189768938246915190585217213919186961220003451712050814978712790510996387238375015484731737102290807717886286535943217658693476729814706527314256018183923897477901128630156080612965925931686339559806685937059461994244184026451417083859776382280539710413179718962768147053153607101287569602202048660565833769593946063299620464138264161472262155034851459474744073710860714863422879307087530447884913502819988867017046695726061373436427726565094029845812140211959663210317076458116868899334964133506255186882402355351225189360825085634024773080928515531967272762211769766313667230759572814293217987802870758917070981620727189840733560922923513906748450615507645267428177408278373938813085135820304468307388198695365390231604356352743204141121531750261934621331678858407678524431240853037187319778827728713230080249392343202672055341113785722422805090631998605159629121636057038433099931213513013943630693165829089898907987747790317303635370597002950975062538054615395479096780874809994802267177909282405454208134913451022598188333119815119621802425666703275436810328251372138346316187459261920428072766869852318148830880646256662977038428851149371658083704508548720033141015747732011612374387967628975564478242860087140578596020775494565355617794350929554945380863822244928101475732822403454030398733311987975933948916555343266388624081915366907749416924218139892270021768408345993424645763183999791002326432228543181110788472243311479977765396930303192195008746598308909471616299189441711791090501693675641196149278180840759450742858624623755257721052425394020901609994782602477653744034167345736743116021609294236642841760004437965319880937646113472905909819336152247030808080771678904879303366407548226975284263860489784672007593763939644849448009559206731307689621721958714193697939008477527532168683338354683561004305192489876204364675089111653716317023720480350768826448740715705823797371585574989042514328961897881961992100479468793240851734148004630882683513506269407549381397174120729733763455270160664840101470681804990214682956089400071364162128540834071654679930844276082342691249305895905865646184938179776539756298704902322922937660274128500954577251959671200193788302417264967674757098705542000781760589050100407179143580698061967831494752745265345135874093438489699396721094096803400346158760869813864638509794833801726301818013888142219217489288865724940267791361100190144573463072603801936322991876206511616289557049811391915443497524566534211857107280292359145947030032383679930590953103523008070029940442168122766320581615958306014663204007044659556058577904465241177728093209251506662903258101194322912008886381007742580525865917933182016263730449381275610656511041570542212119923940556835617008048969313527447958971877521565265166109221416366359625447201829213831410568752133540972806719717518275821353688776791417363810648906808135901558578720361728309998269140587250438027172718276616233482562440881939154225470102458003341760784045562735766805482981000067638278155829105178428604475931458584884364214255467332749893078058973612609254966787768650212761457647605370914881736838590693162585863934658461734080966121506086108661118001085166126262329722645577029635534397056380581436837423864770454748909382628130253661645800224184273652842900568186741142383251487218267452706678202948548741840457715986744730399573729801426438499662576615928286797884813053179869710951643205832890256833435751562887392907794113987253788894779093154134273384506698098674972815165242884378124058136953299405400318198802028795296867702055466588588640648313871831061773203877752122053910941183629722028411438947760711592817417909385436361051461231276341948194975826666347486096747391186942827346064672669123328865517582466224021138793797498962133623507612193300494541656541567290977689653951233230123032532306256926350702246268063920358218392783874241645013516791919140218513194381759567928059493385827274520089835085904413783115830990288529378632033585129811875297400966096534555097373230241957852848537465730953910192210135063509441028278598618722332057210790621635892636537888013771555724809965630162632370275378852758297369703400829250759655102468488709801292738470911769975311503576636698451046963089377470526269042724138294231021273842344476545949596065525405228745572594797133610553456359792807341384165539546234411422266004281632816029694742003739084022301060250155115471944595437673802521110682388330737668412534520763329296208255281824799381256614257511023145805144834114055769050324382261582036366502684691553086843434849093334715337446889882464117790278119539219281900384597172332197278911306943478357822631414389464462277724398063649272219918665956505744296858110477283284927429983650654169313110550981801723639013912157751373374556199322962292188909082004464706381302008736095453396138427878229546704337037979692392544667434638554257843329139199561106243497484070654572297085793226646256874227891040781799797949520555781317708671878690722701369532330570011797233339768219781757723019869017478165040962376676008901008373591943697791214476776336588664714477668186332910562114818087662630571861675326333205928148061758109595242095844850891553255563123806940988611843022731957683372412348133308134148781078669545265523250982222231631425285114588296513878096233605273877110241354155184647342464972893770937522294738030758831898815438895541983583638536601318824079589248312198460462393550322013171181793516001136731299726570993182604584118394322061384858084667957675377720262373838959357385552358354095298431688079771422586662080470033730673724327921585577474136583183259940175942843410752989008499928981529409485590858026968960714447443131892982227360824933239081695227243518062889617738276347933938553553497537270302595183573455539958359234470132329160837549282741915892752594952516477439592214958376701495688901789897507148645911647445633581749458993690452607936449708508587098450345165498090583671361846827525424546431265450723053260073851546182985471552375724835521367106700726535048408739257818089354428926460657851267687735961092656249745711409938536325927114936993761697175224725974235439916194052294709159079926294606227783534235010663390303976614092123531333097498549042048880474726395083027214586831443197535318003549493931433182203254286241152741128774020036547071175560898984540838198283943285229695990481850943331775980686185610795063454609777954229696211913004377765421728131638814903270305933424019758678534505701480821450014018629181834527889996182245557325214789127805884262775965160745937486009224574182269856327145382130216442742432512445679779227227719097924689192763513418437073596352312577879980692652254264786069003994348758635445207286027332997670765073181277592220925888061191733983311942212706705423225982608835920740373711512829617146721012372952317221752951851125464019307735612602655782398766011051944721655415464788534757137369719647028335844881096196180036011874738717617483200449490995916277134561063784709155774626500287717824722142795511964211651905581633751439128866540012942018593573719050044217559441907797239270871004551905694888869428616086907475323247155338310621535434908225072273023700050372380414646371869659700989989759019396792729508776370150865643033755726090836668636086681128034146262118346488847307677264623440986169871713020922952683390898829774040470070540269436954681938583002198605066921361688075066454173328491732155080501488091929416389701518032199668485779364058028810938148802091201694863767800306121999831631325433928975158131010888179519948527305402160619278958254785446700988333329074599193998709183145615383547359636635907086728355592724548066274823864365579595693043813025678073010546098111353335366002898242695533763124229418083509675293368257830236059447677213139649951933021977947935920948254261326321372216467535421851748212841912243454061808993089860294310479395531638788227941293989402308678437336462197953319911058914482283132146946295534405111860047335994772224004208270210278110493024609162620353565057576150468846238133908368660681528986582299798505510234598980686874058730544399923897319606292714686965567847612712677859799654884864456504595633328654921391221028713462486286736896113859056815140171290648489422664423954492258346652720644348184097823945151214243186571263564572564746804088773346702209959518956016171420853258864645362675325647142167985827187082567392256327833386065858048734029677171820284984034482661777071220669472205318451683035433968701571420440973562783738728623332095494464535012982891561347561980579734793731639790944869273388892730347866284094139424747341901993698246399333630399515287087571722162608737863924549923057181423710349587902138888607786838357367825899252186426943701656599567363418303658230845874586907204075695227123571948114558944394102700936385584880189074618449171049998133100190590931521904713482013857767903306283241318072399271983030570443824888885176742005012578425488622778773445199530618134718999755127535623724053654173014085398337487548646460244534087812142271310797681830623020342119029225893180040079349747863894729863054269705294147098346427560551155977036647046763632003366360514111963033628689168346819465758548349311840768520187152046588723159927706369747044441544952448275264730594072183897015306476795292801780011377453409620547905289491981242028228672562407416409227352921395718486905210840600128989987193373063734743705876610431428352630504826884905197304787824025920494152067929272644683689663823497387240972420554585864339353299143787789468646427937422096924489772437468297664200334472439677502777447968602702636569924104807255553049759149158750668923797208922017256205149637302345528541140395957998498863399211691534079075683958446027545117078442446162907695910403187943961982142435167182652490512792560723994204839220590054072596905760911402475647461625240162008919737320659735464028241213957502943316040759316750891717392315505287497082935473366747449092723141426569423771575274200651818080666336981415677273553707958137086714010670008643855820059174144230987687408261791991088686389118890307464557339237708978995952655662958024882962715371522550795575660087380843228805062684923356335458820661836498790204798034371357037443631311873714068047173854698394974707142453350732134433056702555759973805465000481763500323542613117660199846506406303243621804486067509324504762773113380143842380696568303329893972502263132061012216934919855339772291004553888111680129460176152563954653057069724672317539097513313529773766286867999578848085036360264748209709290302894317972421555092236406891553244316945705782022322802525957910756317209742626775309182701567400023411160911910431383746369342437961212366028834194754815520634196091805363585378085223748753391677116891271791710665209619350227331650108585541211980441742359091541791396565480922670621516351602916997314588451925627148001354465789136068070168189274997139047161226705199473977508059147427433914276724273652622841474823083486522013543587486288123674996562698316284729633402548072968427723090078946201648413979305184934693165970327060181996239856848852534575356800143261438322338398520071725766577321508829267485073065389357900376167696895101227491408915740697407008378881700534049395850969492457604928274798267548727360298642552566772976337458673031402253309960999253673308699915144172425903525077733103460900413951394566648554185199121670900692452849558713442121776267936808313826893182245665677563528643295874982654947187303036223012341636667247323427536567640213404804836637592289120928482361415985938492187425736392247294218091636169914623804336129633042157818398739538118382938652675316418355875960726796588494115374980705796947826316728799730457189375884671238822000805611147719045596434375308088521884191425512070837188586663337722048903926148735185415815443531297100869138761964172345041965419215299597588320053466693748623122315681309500585124793018850809675511114324455362317063651870600613973704272205223130409115887995292187171975576822239961064713606382736033294226070772492252615864715801641543367693064362692147868788452742549316428299619625654545178409396262451491042201041980828107509521952347706458501686824992746421009883766809745646282605593437801551209393904425373483746061077768378917475815994228515041538194492128343039541578473241218747474116080759803906617964723477909929907941155146182323594371393790782011558259316808714619379539406371864163740701660367922926139250109023332588779497787111872125122465608552858731871222681120496107375821499377421940273879806921302293595766968035382454923019478275614262920195074823622267592207245364058452279972798521686764191857790080267864855004812742037078815252383770812931403153532313570980889841902097134981614349035477331094952930991984368301362047680315001125398287725652150986455490247341762288657163963783526968880110805202596434616256215066616048191862099274500502946080513079394478565235906414151923588563896052846508005418177233327273046870916132873489498523460018767220728172572228582449754988017317689144060475859871933623910522917192478782553978616380616540276477070073655095393414718831064039319124913235995615730310866555620065069779694778193366138795452248949178457876271873579278761041803613006385978872526623907886631011894833283520884719007458298895215943831884298845298478991751411316072143013639771149454385945221454324707842930389868808881432276030402083683371923361011965855756443069382888646726271561648617933748266080649522971998188135655124913936656804500420728188205020647643096364581473984891240302922816666381930940874785576072810385362521339070524920181443064915928735225050744679798528896450799231656215924109865030264375700448908880899337524015362181435988422710448124548725207460786182548733936922748865166765782678518427005615217210949758745446552242841984746409034020810911395921596908188908586438463832470612181298045552531651083783554846097552451729988019264936204348113245451249445007364124464887159424228302193431600612368563442425302401259922760001591571524628147920316226188221901376257240160351066575487234101017356810589847892648902331081912787760694825520165796834487578851533507815296767052878771851927974333027953922453423012069894949941181869370580456038801967467813620352299314411399001496300529883565508240341478617016509538488220409648264492282233862762742622828261523944543305405852450942839007968360475814767546584208793233548855846389417252598924901466385409973795830194496081151106683036711585225667742805503622029826084936507102873534099098708177930476142453168017773457314894016204050564285442130178169722632638949353960195350266676327227980749276935930652766907871843400709405001283850506921239498016588715716703572848450934813664505487911146969910392291725218342131636024899316427811501353549124179535531552027749043714926785324597603371537596836807496714288730823385715937744265092194585034935561320198470034757618176372019426784468719653684004391665366956142591289859729233456696107188998061257672695332660794834521209741311917092020952176122505895812605713453247156340765774288479775517461999384943996080701715788844522883412578364526076352705128462357663994822112769165526480502742641311342652023199872844845854841556338815066382118865040193114635445927062061897941661006072939966280575676387851724758217002101871261762827562607753582105435330773997166464640147896709146862190865828633068165616820757616184820937828297427868279036510205617876282275738544491096779657696737764893671397668036253450033793220609478800475490106063879051664478648453856990482709239926084364674953763918997172590698517686253998582780658967505064237650645930716824257111792211523166139957673107902847864461832778774716034986714252647057395956395334408132173995502089618084101076573275788953271343568336055819932427736978807555805560595604127825296126657227339506367522692894926314363208638752679056976928570005730337482305665370617447256136379928226066282512816897569491170573516895964015694928148226864351808378952698069238177799240398478765332206969604616305783149045577821541766720670893000271419228719777161547416255702549801416070285241970075156199162312838519570024233845611589623415807896780177844385440725204916801461614875742290192249306717137126188216024968058811785485810589685866987050408388535183082952351436744572565103176682144718661169625014735965900999771883296586095592320055579198375440365798586990572383923257324597086535485868083499829308924145359901784802325777648636058394556824312273716047221455351463019241058608504774590057081562811425011138480655980001641055557534902903589582680401862990201798955144444252523284887706256234322012277695057086825382735238536039478249141129619121441000718112792252403147805410971950989315471800094271877115837445422276827653741594250625307757716542328572788834312281468411449452977227336141816151457380517641113729608286764740374829462126171929119238858974959280594574079240088998724099087934824597303223171304268927055173618591599788644131639867758460079743676794602230131017371078010088776625677858612795300236706915325801516382381388834638536749449261935748371085095950894057362562257336605214490741451719133344908009874737158976419869707264774402366532446896837011530813007928970387667021446883065711625712452483909627594148234472609831109570649908166051144340575123786061206628529121176787260992232353368840744768032174382127614106811298949042713523921960835968685789851148937542617177076905335343813247552535199657064652890197551016362003978846995092809616425609002717523745696068405804976812811095749587631257805478325113291473609962728976125376613828534784539808950245597244889129877513194425405587721754473772790183627837052508647518218365415863385296099941559113288820488370798233474543685997377102252169113626294389308924213823242153686957742700073726343418774472092862530624719882295686896319794586328133622791972295152024056009978112542573126523809229849950466554431716255982452173888852132073984348197620000502939279884095631853758497621323087561916059325050714098244021549090108744907472765285980435451554933710878161944705632079962036115352051371744728161903671047537331311329323663320152114636551370126848519120399267840028582297887289402826808986538400934285613321383621979257122330542409317643732674519564261572607997499647872963067442988263479906521630602003398894306657281596546499287759683022653414606956520032010873833778049629346500677554359871924626003306308876104642813886478680469408166226644725482570218137653781542433754603017311167672338699869013701370979753345697089694596573477339524168741406399358283200173022860452483714222458524545318873304705521244396647901166169324030012578649728370732321670069076901703501392406810225751438102752275354071632650951537701752385697277417042315785494302428259018134597600744695947146133398735492483331514913250630011687778855322868288247427886321475381574290558403637681226559061913663767040361262689254002295895232861739149973769248045152553994610972860637008463865566706793018895241117819417778552594896254955958277170821071975176311316531302964179231480159854521021813404585709562544876238174546685926397080435276447861476505570740737989916735893695045066713780788130593810294380304108616785681188504029709259815737110460158675610890472210539774201204244307720803371399610193498237412616595492469934247336338128446877766170786866646314202492427857215976244196179025186402258933472929716428667604474755405163974764356344660659805522276761532452373770733783723169522134427833725491933061796723525021938223627927484282142803949185257693437458234527609368481925358231647470344085889411315376183272714765418392834764417611310177307144240761529581222366318214576952135100815615914666008330507362084452454222850058585115664930420944808768035831626810483232234372982083446560105990252854793648286160406024495301841895080878299510229038689957940273580529815101322897438795315860112754119661828945182624004172655188453399429408664313549915013764815499988087724808017403124207823026675273422615497062462458559424176016741961217508436030440901974280569788251075344370142173601170329406140619712161902640881152226305392215852402801359120622992272539970395902658479158207706917610748437518559469933761346149538727745867421617442372553461277176449133727377478037410838133645798136272188976043770266221832899092090352193727557800331817371154839009407529840663077906261539667163360524352221782545746329517984006839260496231498902765592663199516507488964349504746112210670252007560307865026704534601008888047789912877822834105511180589572668792409754709568739829245887110482032443610654669729166853208560644025878885319858148801722378294218531461743690168676116490938550398797644088795525848093377422764997969696485428827044683286163588268923060657981594398494824023964175817333108434612967660744194176459241886097621376362400444610915351506676543338925324094909567602372361585736206080902403127113873225324450505478428145511279678545995504823435805965974679871347374690633760546285334754852601192541323910945188124800399674250753555173380756299392528520039784826259042782468576820150153810682131406818625653431203504755646609245388864344209966800179745399978849703503764066700275593769338209077622039350472431629969677541305528203640720050456214160456832514326518832769546129924974360123898793620835792021140974662801895614334232243898063480607608487751686300178324859263755517162533793883059020236183990107811578527658493705978773744740633448155577771566611704823461811861036098739231548685340096106588662771349489990311648717663914449521535464592509226264085143718028468214878075740570540724352215250473123124733167809484123294666265594623270103070668897991541454525245083876719901034242494931907354079469122983027919490770179894554856470872849141385786705999262716257507411489052333927838575596813274776835825984740332239795296002336041974518893043859559280917496772685412839900402666772912424777803002327756299605783127392946445453782967203280719278265503440909670743902512620601761263302151354533719495858946919876388161701008188834103862445519617636853948086416386728425114368028342397565686410082546804119518661801790426044134472443991224346306763338719219606332186627492089443873063392710072201708476188616885676863087328486142391587952822732565552042035228841510946888196522089428263531200539983721788386600079406693167148624629126400645902973259150129485450063013344669181444136421625361930759763284736226951118049709658453155988620410538780577472287706781760813427358738095858072611559078635679015643848633090231627934309144656453376155332835074381626214095863594784628008729145797899952833820161299580526935650488294505808601990862809323261133806157119619805129594115272396673246064745334978900713061986917235396319913818903179931430384586532724038101472518861940358144827620175786760514211465668949736433829090610001965713530818383328003569676886369979018556668456369181949006012616654359110090193529893928354690867826179444582110434120940138474879993252703736952186670765886078373896655126274572516111362358649547076454915189188862232939648169626946669174784789532040385609828920121077848968439108288181484723173251897946152477723473401175135849409270626542569106882513505027430737222396345210110724698932185228832795375582810079740250626473205414580327776017515111787742696604381277984786112902569160683279008811355946703112631938497892075939972528909429918604939985059788996455546982276212479990908567097734826016384630589744880547660274213118787562469965066027960120536436406178804743801251968171109387519998559258814985532141613226099914358453308019927849983620488014472562958556821271429249842546675332227285449617228290518440452920059092237044569524142214265841338246961357521224297340333205556562790935876704009104027784616495759437166291464536269976624305661668729727429354447637602218380185787028260806930286180713967702282734332114655146226655992693764394846914360353873126408744491306116054928499932106776251676278950432976188435155206039862807680662971606591863610660885255485809197449775480092085959368665848356096428547216639640431279272049446557633034126596490076580799655503200843630282129716127403875974674785101888071595746676372285389684071792623065961070014781607602146329695148360056764219728011347270244918696369263594266959326604124587121513251131725667988596475248813509649062452832633371005847532542053197595298274462944978042472130488896382359264953378604710302044640750185197775644953457581517717867921298977040923643305912711606541921927141995634239063909879687326888472158531891148538848100987352298828784164479432675992363453352783753716265108054154800959789563331338745853992544134921258137007890748775659707242105722337185311375627291650092535450832196215210342898912785956180686267026589679938339169356086834826263415850126626865564994352915500522067079095837300283106571371078480283242762133700052408055593480632333951598111147421462575370659493804296711070399449013321380530914741185674114599160277183067440340540355098826271500214872312285834032871008779451386725219700347901211686072502718803500810115935264686530627191289890290704722967335722685351977610474115528085594652563019805057980364797539194742677033820955336319996556820786020642176559105765119032272792821247670351958307198383241912157757946312128454727663639536980069898276431202504386685126879247246514041708413578895029656738190680016845169411675792139825898236177425435410493582824335267061700241842939371474830361959604454708957173743584100880108371186022269828454450781016890680078580164289241700580278183300212325785086683673463946960881123018142010703938985312797733544909766225891540873935808183759439497542009049802463969364857889877490914597399960725694145817367527451339579428163580695158440094179312060079413096252531836721313304758231871197410682069834401326309173991343031006011633087536842365494809382276689997395310442634376709180330951139815626193741064171132407162512228308218264014138144765575541643889083964331831065264720384703415506400002371375919152189947216760594536841172290109352372109033787411385746640098591267418210664143183607281217631395327281392144220285973424601560234615644894430892481779015272206155677790423526636546985358578048992272422775069893482585288751367014426512188168198031056869446594310005697125027698202030851504818442952587328841406658588159216312110673954754474479831610941463865599432491603417381776300428746548248872780106425726090794298238724754752135960029097440849968188675170250487437041744607095586172604481711653947858359121466100919947319949500217116958181265120733207898178905423324731753737348494674147499599175725259933971314796434644202339206010263115650005483331987592003314816575055078186785282456051940668716288557948887995652447727089266723033868630109161871783268315488441849875808994807662531408038150781416391443431877159357749736137233888022667433972098777115917518785356680651444244604438128691828242096512739411577842863247649697895151898579353725928421918894067064722023913835882908178551609866737716528401308786719770085475419508945974958625694103120178931331518031318061293969846158547415467511235549780740874469829422392750104986553048978788463101682870750811729548803534364505845595080939886299922058999884680563559849531061935933933020934133318031711609938472713671051937729468818362916425248061073233998754596604351755598055440765474439319190501881898185964622340673726699873516947337642201021459986707943550183087888293314147048717476148297898531999154789625563734430099787118411959917667894089629386221782021581091659855529613574022969083593605220269944843546145786179473811625949832240833549976777015616314164357929093423230800584097970645528000857022821309237066345795094216164851714456749375788646290427525895903733105963018878045764147394418837687515874345464925788069626339774962334260366142440685786916773373117579787503865300395180109800775175115454733599912170539887631198582796000926909366717892664220844851702546571893334150282219704289507356426615149202645575377146368533778323554996402203909199995983522193264299575422777649027874272508813121864693707107656251221278475791461176415991581448859820487327259675685520830719773711209061363162246539721031779425236327904714846308488097025839880607941061331731359668611701056089650706108210169641157444495600477295455951366013612431775419253508084554334013615570378701207541451702824796013344420862026406014879196715174618839123950885013628042426842150089433977743066325776407093721162746761574580486986421093253343662958600671922592156434108413940671623821645537253330324076955988885642950639905021071869869628083541686046241894958647432049458471830316356027343092187304642325387885083078508553019272696384227095708571200510582105313225099200223449798057075078795877592639487988992087069775830629133157482377904800941141995155369690354640439252329172205947124408025600968036395758837480749014542111697353787918781910923296776910878466812207486921499241843748427545921616088067734203288374807868155490428751791615897664533171609588737849607954111331919148231876745250870549492358112699126984687425185651897007072747451416762694557974513055891425418242843120803768124432152877418913291104371031035703771192681141040532994807023553912939571442439498383724037556585607519489328316338685086384891677935994436683029981781691958304839688669681947847079260462346686307678858172704457758329624419615752435720532761866852381206863059534824145837529138550974643126691880938806642031150019415116348587836890122544847962446978687423616684945068252257991363025171192439958600488132931618227989250140579140084206132011522753929123491246412252555274744178284973443662691709737007426248519108064117848352636598654592367640420752885092741356216303945028451854205630836842670811374631388493669750731033309046560186707449207116753896843144518100767724832123054582272262626082796663056907231820437195149829658295258173118590841268906892357838673922552150903966369297005724531225607863366446963698119713148480867879735978991028084993587378281982776161476408981604435592919629341364208868343153435636537217561301507682221463866895873982866849278498070441828799795013817194386251237359632781158721344714855126989039895744991474197622606874414362502051425227998011504351143733438186460876983683217334841120870658017200315341721012530349851144447702876747237330387213875223574919461128352763188490700089542243848193821772502857635633606130858555897434116267790317682891322690289824549202577230585563626645957190697544451818075605130188301982871266246862959212119938174524934316700541179804068983985722515777434323250339700163264719582514731838885044928605889524931018136526230476318687650439097879726519853500862694022213417103860076028031807601180468935610892522527465468066849502244937097578670263075834701081101235575545478992943635101578978039296362084091063834999630333330333250378923660105781776448905175274420609598950546388284501261770767682419863288799012001204789773618651459870122632138486693519285622023930282860761273500116655574226487004475717898944693733207040026426993225823013629719844115520590257619689660548034276102941885131015028378687918232672324733431145755554826580612916195079329832148188173574879280386330600997703607931205351868389011054787676522507536421056282479483212842039242026705814095240072833679286718074033537056584895162295228398578439303849783054888251450973654460972077768668182288643454797027534599541231287621919651583673874349978076408544232053627918493229815984402694599266932318123386009176936238497775873855425266769546428595620760219329317442176939473953497162431646415843357764693657987791074556881613046036584220113164329042066428544265071416321575463708402262849961158117929638854888767481760610659478953015741114796406791416651697205283434130397347886010064480755820651421901780365748307788346802979492891640304700950243853155240412841059478996145996993059072669429442978289558063746485705631347847664524841375354665417725573057315839750552572986326553968140255348576235922017352664344970122797059740965471761395872736942909736884736272433240631315855597038934655576329855828094567040422099545667591368238508003842810582636018243659387488934705206614766745485652242582656862933180594382098150976834244887810149945225610922596909320251741496357680476209738454596707969495206911143601810629206329679089831866521901379226162433444253635087983147306763668463492254840775885340229458585030886102137054074272125679136695824098584634336708570376446147437725761018993158640698542592904549267070275574095743319280984109600875164428316195821402282315521640830976311244666481397383656861008019086449597850025043991443326560887670357925303596720530978545251453743390099571698618574225116021267950835721844465784789651698652270354831779855060089304236751620730558284134347376825579503859339053705005446865245893207232770918406913844229700099722381726507639678474033825435132093232796965575157290586900259032448172185117150518438149608465206124946199070695151870722270833247084738013098949509469287324221529059075774538096523051759623090758390382623530778577612556794030193262197806024026191150146257935942934867793952518214444855576525102078747303196249153481394609234664054781977966683881211237621010253759232056406442768887185913171383735650445498865239252090013761377408678165031229500107615326012193185285929878013805432435797739258115183912959917379638017880564258755876229889179302334903419139496272816530022306416944280513749134233301989247178764408356948344747646260828001648808423250443656036272388179652421763613704022025748143148628597103337352358460653717039448139977160082413520803516667060469347483850982144457891913275184805565890060813181243344894669354905949731457133809842130822956948330891908898221838204759278936086186716383288372186729286283368917775716018186053053267875542323633150621730951685568045560156128018775129134801724645121359937801442792090820296936983450324062061789327603638902752189935923477651303349809850492430535493627012548145364085893781413485149935492155602437507407555173974903813433697013607891353645873073328106063008602404553444354602642934390310668841865503446139769638434173403017138536818985397956989870251771840206269093083151897252205595560406284324754377381073448711931833229382192069654834157643132579384366202598018293079634742394437926130163025321611415532961060589828411293680832064188425612562737543100630689314910686578555612755627516994390191113942044169998850042228222438086701561023529102664938187946442375193307646120784170816230219167625791295602783114214471698172149562129013555687362041238126138969792379086106626121520858039088243410595333371047141754158746209752331411183056301906956263557027943881620273781298110702532154157450843957844770361322562443926742117598796742384216050500395507891133017238771934979694852998383376793860924829976352314433009781983432472646434806219570105157968294080950193901534082416791772256038410400245447067151217116387712687288501422599430937564134026462981700738904070938122234508401050804250590794077374405398655753471095852037238830607588341467283669926633464514799154821909316860768208457165312999057294687778725853282554786565003733486671678942889336625916066947773574154184465610663252927843743997705453692294738843797858994875757066573855795665743857641791389872212794087587762311324297984898341044733793918912173627714254519436239036388957276558898463696176577390778073107102218822735653108595471904854840459998487780650893549477351392100161720026695666927368371034065063044202667781470197972813093521846901611341053327057651273162221048598258874126559104913539521546973791133181341667027036149783739176201804855357640489645215534871943467373116468983296387365815668013859864851125074258399191938927158036292055064913207620011495553002350366019133192101176389864807420240377646345729337717581670072873608761357892406868074687073570096905004453850944860883049708408834715152678454556141169207966103694653094545955753731743689755098396108229906806587068244695024669159732522045721075587714522260429777611815209408133975371538139361848121807490081403785973583745161508938945207832925763823219672468521772385679796785128378161977804705189543201296295862963042623943875670107485544891708081131966947333720551592811687826738850674819945237318321329211042685708361897273216069049053446788248060904214389075411735875232865661047276797577690354062261671938225822528279757114799545755552571431912625883771707553064950175259517637199624548929181531504149627788767543379813377752297744594695782733688029932874987289465407966323529912270219969522245826261854272487250697256499288532796379940028857502300537350486301999473112387213893035392405739061108688518830372560055313051803726520274242071061404338077026204034828399014984071901862970645480779576958169322819296306905203033895072159407429832093573836181757664709177209853310034655409489147504332535629403656353815163061952762127943264437754995321110487696380433229175359446267471956671236145316984674832299725921379892985298467092863784847984162070598221813980619156201339078261797087100269813333754062535097258814652154416997049707099350999008960042090974409963940595720806211460226618859153411530120490980688213087771460283424091506210636816717778789887281569719267423193135569081360891453589309829127112414102661019403464122679250816272634394424120572452620385425592580396555807855099317994644383228817557290444608725487515271853884452427348983313298399416460677470223396113581168183874161207128474407909604102493782272738408775093381572605682359090995264567624259971202627313334933664227868497429361275864551983801154096538832793877140583086756654480376895059837914431589224120334245697715407297050773820543924525514743338452550237559615770254523037180823055209934636761650437809768803515407071800951312937772301318868624276811888603190296886618207408002913570790503350982128920601620598643953794644008493547303564753748039619789324395225281266202470745120045080079418187845803289941480863862336084966927621269981141807839334047999365230182653874232451834253447270217514480150211221864063807147388154765769236498252958690452332987406516666703062055699587788217758392417546997367168233342051582949652919406832149730426214402427098695637748201787799635020098613682809658276044063548045305928429011083958340989612483928449383797649757758523791911412640542618232604135660702461121648031993765802444283523225269608526414737108897523502600513274334108973595355411586347081382932207928812612033130472439763911576525621677205710722567282513202581170689182449688456787989571510422501341385099953111763892691929071651078635075252634627591387577862972689096579703191643322323307865664692590043428331327655186253964295624119957051593873385927299117926247489696098935669144348122435422362249996730175966524065578924200710719904545541272659482403987690873394334570888238960289547739015853020371145018409742951250115272215500223992493988231118113395286579218197618888631740834997383829324086780786565025577046666547252318921822077610575356440474165192845834540369616494563240969505808759474543627758298432844039380977070778530175562486594971833275776154512613832896933542167217932851602874564843834576552665813031532801832654758524474372561496748683569557879888662731923685620160405481268238423373135546195239102448288684438631745740815828332991624059122743516298812382228196887345345778608121980122257159686544972923301832540004362497413558574696585213970583709744903980449387461911775344496344311401923900278698840309642106147334105232837524660531009165403143804476241198935351511438857526691329801758275421568120077224659138305170167788693630773384750482261153105156894110072163089095176527858477112691082683946207427235609744226632193063626552556392876586478544559186828074475924136300448350655224325081031865558279249342719280672995385082919294234927421135546778494755311353637343911923594694070755191425929322421456332317399047745063236041749010104968022778607484831444405762091118396105066879640804453610955427873387017408434432528942274118892455618869068317736689964006406947793984982264842486395904619370524680520159338272279670133538169012699830796112984172142363007304437326103996424572757622094229159173895627871911500175336297095432779380518870084052081600795667537721207702629470280034821908536389165237231731697853922812563123463450035919647468955444239086421442432505210232391590931162140306142383192293393294606998860958616925565662736864316479249319028188736414540377153532691517032133837830426668849020008673725712688539204583862835976947652529867211051324754009143272140532609483734727669636988383359367102828771814228397587097919061042592134856776716482209398368017554937485631836973809670218543042372416434912098958536107423571057621442252144087994980004163192851885523335618661641875925326818030780824363085212453064361484096481768571948749359783177420930704085321676762110787499156387418551826428844083695313265719126548932855995662385579015074103737688364499047269195470467387792304698669671880023041474017524921853781722151551169684309574108403865289103290320230199421388526791681956794650478267899054326657272226962265341222088946206613964953532312081854793622522411691284893201074285394520177139350459884565233783040933745702310630512802978042817956557505037295356727070789682636649526182902303344089987391822159221643374536295843411730451572767404140642169697169585859555174149491648072900037413966939492304671105174111009913254827911767573139717531200954037022205125793034825278746370112210146164013829255917150614020887401954828556029540940931634405434301210703574754541895650919980786296788219279934872056015040377773523760294511876440887074971532498717943433700232692616050244621590069416966218658169252441108040625779470327201087376167855017055421186588769649914311604177555316958790896100555222189407246392281971460939218110086806272616266249311428720843137664276265397703046012872352681330577590278276792298059674442099789295792410853611307118805301762844104639360728876480521853532049389633181275724054457175437304392613869647772212373731953808810264100350548809626711818593521322281349888042956044140757634151134031157149599689815208300892223472795476188291041916465288871746958767259757002254058267468345920655436630470625795366667650296652126277067472100116087914836738302647635957420021377253740915003203663716583362095722827328577360292421447016179360929161839766742281473209350108954533440081457494487978053057650651394161048665963694989526505990443257211226159330376791457187935677898659584693695417595043190431273997104696428504327573409685045318600568470407302695835626498996149448742823946576495907456250090729796976870197312066578480005024101654877235070372092962247044106893970429514669620094628353973984017680663956827698045503560126594647040620605503819507671855127270958134907687736169913297852788034977637258597331243940907308156743875448438104317180993979557934828254914230124798871979429636874360458530263106499493834362597256526524345801775753664623958274170867096735074110002458372344482812187320935039889086481403058895655365385973420209435184205313132134080928136613520083183207136267376453739504074727240492487401143530060274479286338077864957483231495271699162708648668344999278281505672113861758400768089642020629725031982270634934477746610107297284745573976090903147126901316122538543022542284344490387786364717517689041376402547512618239370281471666465001915364273195242720160349337580977109293236963533613502309193043215712121210930898540117993829997647668337214640744635961129773036461774041676139415463088217858989597085455876613154518934001437892807386432210270227025700286327010439061587950244933674151651169050316103775453199705512905196224722765948863075162587020447801581490271194059416583702920216454002858696555997535221434939014052768361405260606961474328126911185819106151072010072104745277029170497352431123484469123400287802047338909648674306423065402147106312166008146751698447433294159353122151507619271867633184628866657954855032432763167736270172981825298193581452306403968007401947226845614488297928202627882568892975028110766015970950289111035525481565963775206437615260331044688526716067236319189140745838530624373278045999200746377870333005823312006248696215222096154226429141221901513998349728669914726028134111766057942036972790259360258134028794985302605204437753700636133076906525010432398951225587092978728577323691071441189806277742516096130361129769344865174306431173760306070818258783460000308481277581467274403313916500922064537331518023056078722147914020489896875731719990475996761809706109114552176840082557463587114036248288425282201169411405818717025473607900274724646142249240084974172134636733837960745005246900125477345681355664454372664742082165725759728209987439559784645452916629893752662785282311263459146058062594059499715747648486906225288713326084076705586352186775542833047235388689298109166339031147627627860392175981817657646247588591844096235108606414299480225696508812511901896133990000144967691498336622233417076445366425143614420070904903372314813032477409549176311564804287682978164448752703415125625034601162183415886759714978231550611815420336268368957481827513449795641710100350059297793584781615518290085595627429879431363751287726628654788248988142935586556483378569385450921173089159995111519635525084711637624378846636192390313494161509406116807375694750979785726311918462363453948538791740802736090392838416573099978995230577992103363616631860586432032577612727771798120029912744393015687620286182558108282614971542790188506707620738966400945360440334330912681670041747361676393161404486411035736283510344573610167933594306887500333223647438522168902016246118321363184840837575558807310095444291978206325054622926085561355575885387422845253924143385952668981694831944690803616256722554178861101251667133137948700082612852204213239141002792181099196353835094198293100114043460303070888220405610548381159410170545616372570435914947587785696980048014801997876324588438054207987689224280355404535063351080940703624983061584140309747563914914971026121466468905221574642573498624680829132897234539855241932119092044882226974331528536776093693374467237589406212896768304127451581652282768616185974696381463437992576171844985530101986822961721769126224895635876272637805187345391196581408234428794096155582483395342954341053529059497045060559682124100397058684858870196343407153120592297531882018063779285126460309985563698514762191127943823957521216585297278236240026959368064593810048411559121398280783634233775801314797941305390829941141975965827871573989714453772684943811265703656133944691519002601904377071093855111076439977495067542496293720602109079794692335872352309229065408659917524965571836827436767079652827890927662051733001080737873971256365126437279824860441487859390811003054411940424092108004307894837694989870663504348427661060471376271763351066924908978658652126704991873898149675469594819355560485591554786188238239976322936647713708556879932907799546421247801081670369717745727807725619247492520489352645545437333781336546183991702100193581832303445858820329747253123364153678180327341133602250802800317286933363484031229228768930962323044601679233826451007967450952731886237558495594515334824474186645227137376109283198198627166521890213712795418557168243796093570527381628086660405408604170219502692849649335030312577533410351805636863437537084930864510941575995383314330973067948615336164108983032733484513861598685572650460543463700245163272350713786923933244879934880063203043704560822479609900473071110571711008046166991201955279286846216844998840184543830219430502422694366426683504950404619249591427483856313913236015342539333016927425432413175204210013652981220211778034413768220189320288216035040222223154892356607390622553452875388871669988812572183482205808064097654829877556426701133151896897873217250670259820587368267059606402895177158700283771138142933349540727193269960876709228083416004565251232777569726637808861740061834409054594502928407593173743069656084439690452588598840902259077763657141640048173743291629205570788324264984322581332777910672958409243136035630162891734211516001294364170708721979483923612750404809272678932257539606215749940746938217518010917026832576686956166685791973837698252273989443053719401706955914677322616092066052709146767070515158122737707798265687395579606047118909463700465346434970478901763985130566203446570653484283651809189333313079533480831365732826401557133969340523771465469384998203969592228176753515027068357986918635851093961048560890018172603195175036874703416136365093259069632215893705813830386531499213458363393862526758279912201323630078736530377097214748861607122324208644571532749602907878673909683973838568264838453576948202181282126361836591455797565587838704897411526769653513249604719511478353235609199312793940657930648947518015791378664759654856415209062016491937561943203507167649336650330854786324966899527590917017884183796086987698901781124253755821542922311494194760089243132417071497830711420699741688612761999109035794934728998887975993455248763005684444321625250756075612358020011140311121538338220899687753877862838655183747971112793679785901416749738469998099287058363985723598989157570261438998648376582266024500664805132819248058672642776437340939148755440349927537083403114734902179015151844246055907517061858691363796180050247137820151068930205709447532831020487897085296793526496962293222807895071922190921624570236903001385352623235277329700761223908037670012565051186096338400634182076476178380585218202955855312795407796309514611697479051189678297817213893469648451260572557017775337702718416017034665284974053328810119121504685575379149494008186259983655477276088145959747186972762395968382841895056745158007195858712235970106518179617260876954684112034188803031805315334238729060580161989021417118427056820314237418269175097741967368024927436066057041854516047985336262680952208395571488334025773804536322599629771969754693009573590819694999797457816910794011754668285611517100520472126277165014072922769622864722567401461079723762424624633998809339346745442394270477756144470717179251802907665433569250235399695812449405855522129642916118375691591798933152214212692182990161172731573299406736148866540395555531558144138394728402264729961969272442746923302263871634998234778138198974015621894957303550611402702841623764197061432845445864467656810967546288985624686178611840393333238937414396436168154562473717838056613497659414419963210046694213655446198499417229069493390634362401864123852690027359993318126267691188615875956602880057314271713312441099810051499889905993964443099916879602819617646455512597316455502909891394326522953165760672037350444960670818157719706234950880420499893630719001409650928249259270591482178550104446406019511555225820604278995510980451683374964702777288449634805847340822992383591007297308795485503370995891571689778769884182101951643474528586843019052843316081655637251640508517017549919733782378276830539526096575901084675811809542279551875809372678047993474031227701617222478131086366884929701776842200481221223666877269106339107852278958683025876886852521954350194624817738600572353046144392923294505699618301116223340895963763127119019608320745097075235752163496812214392700879822398529536219729317383558109800289432495201397825237305690248282917952437159624770106007690994943408016240073736528156110684237784761346999545494989070667694729417135496301778024617986700695630636227150609929438747524841619443657924632418827896612474439015015140469985359755914714063854184965778558214699223931166253943980959207858343328219088150616250313804430938928567617536304503104993148307808346056481620719143326768867894302651853462635666208084022241274882748876214456403708461615453023845173988578482972840090412380598103424142012054469881439813343563198333258186652619407532912749063333357635639566799296114523079786081218513453459888068274156069211920522092918090486792289353174145005915517605339305836300016565661387147128766808016951804260847597936759198958101637762082143251435371751458520714667221351621103276492599285774145635894261250268229478612196408541938647951977469984386484341109008384948944649232949711526289782986038924941582208165880811098384018224168248108056608940727231273704960431948642972983463772266053331142117350123078901812549479422070725753265892874334221973087473700769447770862622128474024804947500577797246475490255576326289335716872352161091002467984374601332052255392247014804255732839733362479980796033164783790716475845716382011598998776269247674292765469608823809013474249100442749755119176180226188271720124565669507753095510760293054507998116210600321545577352327643516171330475276343741762819777057729662821596041835950142830059129988084873544029798245559201638863644092410291491805604874712320392739822803871834953448746134762041356213227148038192769812344115116542267828223641175813937625749263692134957083945312565853950193433336169063727011233050013553069783740274899968943305238945346197084187818616166406405597057645955760282169727494851860636255643619834312872050184540343069108286973754111615379163014309934360518820998381100951492364573880289145309142956154405538688208708909554533491657812821837287697163799304876884200085844339557867912314828613659516252331345195730367369048310591206189905465189044465802349808656837576469735763854837537574245372097429479257830992125027195817927661705708104821072125600467383620059677527555914536523260909592097450105572436824601082597491204640131973224036747910745439737467063575604971117196827878454316483585926562361756707569863449958149610056654568941738123545974128592283898431065182536990721843875925535309365825923017684262510150216860680189489903573511950617260033966779475266957419199273510859046883071379013474602382737939979048995152407105578250022075601738809094587071050795373543996127807100077493618079803388715149559651879510535494893855199000031217467784263210692102391339027882435464617973714350295180183934310084187034555053585689562440562401400920110233317867748665780002405926502472335220639539021404254773670918427220221660410317925021683674145915143198567083137812339058035595957088354695021491309401634647435773559120900019767524808914552525856887968817947492312468180092908634127828414086749179752886103633047406705577799957560342996859080623120499048349960417149683450069143119448823447358780536823982979837979929861360906263687859283208025046314129039532085205059935441532177005985557271663726611768160518825483643338250196266470639852562898686696247234332281532578692403892423551573907424791098185631732968305227103083070307349419205145272917677415495322723626644666171241472249528375605099205477831085810142690656298676396584798024248093188866130739667511408549074197632823316517614237771845057773721215213124349972382790890060345241473312623813787880134740583514688763713469565405968479113371006639865497731129662360565975250756355829781215471878692977229653422355036442408421429087925806364807131771910701227986732308900439220865322488264103459228587162015577338559777676658633945435074214542263358269223651144632125220388666686339971786957276775333993949868510057432688730379869256811741525767428645045401685084314735359325050619263254870163963558108239027434955210705699637922111455027286999945549780356206280323469388217763112613268963685152506065534678110924631994974609368900571797294961375817266463351059061497079735160357676574815603372608305878896604991319136892823126461533950626874854646135481049508231974259849156867875145964755840495565140229393300604780036234264692690431925275932998145518999774991394994207130746050055506871808215237369139011446356802279207999733501153157251564673505472208576377974055432719898603518281117293201491942343523242224758186598892939200772961757120163038285001199733407062762946381136146081637582950511607445466433867007371540093194704909078418743756444341047909926018902659669792044580210032551424458890342474455317913333790229950366379499958922155466378703743239493074730703127883909491763308154007142897110929013283535829586731875904007939073849488022699712139309352871604802904100584175646674193177917673411842394505877650737625511393739161098843589336029273858129629366928570442908850377302913614139670826277687122853756645358910905455868689406893466305581869358629941519307171625906461982474688368749946031843145314300058188002080490680655989505099570084634114862744084279782856555994784248479321134754567801569844372570236069505410958438073490853120225484692002579130340166046336843691158027782973861386343531620078474907989729667338384882867445501786877767544076283048999092678307906567123824936543881685503949062483046268346680111993548319811762244955989728313708916864731643358439062232322240269663787104226745908642544180213727380308941001001454199650109240295297313233515550518221182474601041404022491885243899846691588343793825491891354018036100891345727006277251943282590212940214229391011206018005714939434461861003466264248328415060349125788066766587714008245188359372881571219732515051130590365627338141449587489762029318411145515863528510765138630471112288897847984013557462241054720331629218583843088683616137185321660733743941341216697475699113338965849100669021486167173027941035350454513619589295336996721830875849174203455144950861808204917784286116744641433523636820724214502701909313322592214018850385774487372697214538376870163301507919051123233082144509887243462987835527748179949843823816793131618934303892128942599314831120027781313463708431460172422893399355324651325348911915091955437159809327475034593568233715592936708044725886900196368062212945106065724831967473794505955840443829920029372432612294392977541790102461212333871701866989027115951721067312134082366655560611572805946295613082725040758322559615110564799597944783022051466769671737404420780365418429961503221801340330821740434571682950748981058363664092788484280241015672118659751305777288981543936144882970393331311486903597871688129560588555960587911276236827634880781737254365248326411612180502076741477637809078348527477538636149392100271762545096836956271103885995434771902375150627605183130150802108299126509633089403680861955577141859507798686173319551984711415576491120926567885398536034194129852672080316271196444304788005100393893537434772723082401618991777309347427500055300217088826273399053688483616580963883928555193546593848775550728051703142009933682290554237795287109184402538363040052425619800370268669336801013838541539519765846443397895956183380950909735794177391181769945843987874072822251456553214886162231581750909159180860618180835192804368192211916306978897981145777934932570704380265130544752642093156395059244073984146404511983839601040103798008381714974278898303951412296282404205774631782179122633524638803485973733238440813430072324320649211042682924249765552082261405043589085224853475534189133397118789646889998525058644962092890825687467049618435430718469656711979512892346054708945865534444098949887840785274655158297014893460302572166892254566879856561641522931089157440397166747079807802320242763980099848838224228570703791876282993016735247263985656955034820420699531952897178611331399399256647067251667399569846281492223761256006029306242888842538630510175658956186864398813910709890270368750668241648199010757728305764995288370759967812242210391709202661227031500738352474119410642605348787561982818465407415335291447856621467439491844400279579295783593974882212895349688437954969988761970805844701343932607321748610591567480331807880138440951039092907931276966015824579624312249468386388227145369388567260378180209277392920664832406756294348383106387204256493146643072117431236142459491632528508430834331676144549433126994959973929691950108325108467036723931298801838545905502867976140929502051045932001550190836476267250269856670790342435348625581287040915940175795025260902936853261115582417582333336789105746500041224929293805209900639440728383128394672905921982847606911706831943721388346358596597283191097739921644889124687489126514101103457223946955105402642377052437577885185763923279162184851285979971175098527725181383424856117305167251140930286008105332532123200572552520837554399364636005912654344040190969364183711691933613716365704331816557463945022237426928136621706388198467623428595461240165807815979659805803311519951137624190258700453633817073705407475724805798764726227492689308971791967809137969959592465483904205274621858533963120785972461229108248800901539769611169662836591513804796474866972885567807059678176125967051901261276578885872293743255188316320088378793251863166869642545229542750864554352328418567048795938853048997575165810154920293365230400745212152933220895664017948454948125253670069215849847199883591480984114105693114710648104361926511325029279497742551892549357510382612135888064300933556492146410764547459365160820946012830995725756969296232061498432775568177344967138854401211644841898359943913320477001334640231304389198963783828026068486279550955143092514507180507406570287406111170083289979373708053349439858600208501621543470141986703203654705416096035636871463695484808291105487834886411700947161863226588369719476376833950639530613768294819507047621461659651234335092964279167280111772151522676353414037832334187668595157590318528629720945963822670702512098575788319440429013287724757055087860564033779586378702473536216343746114714536812656526732036082047565949661818350608517187059707513803853901120566578177343821234190239122124617244248292486025118029854305357269974390148121224752631056983032302742900911931818266506598892219473299754721417060819607575825957626970199319145484866392030587057974045332359190274744079183339653319323441298475698241362094663903445161276469538556800016812901023989994945280393995910728016369448291108138667260828223691364355667866135850468074884632252754906595059438546094697118289567246424635159861934739155672776160062310644220247088730359239998488282661112123521419921745444637659395278624005810293929858016656946011583129505286766558373756270021383660367228496444080858593893940592336886102868570093913217030837026747956755439828057218603136859290903751166009723614777727288747645884020014626451771783440596605602572493869341155827059866199997610385511962168633975722034257432259828772593669107542575620327912398851875385024332791369846891912249648710077177219380077324882574862908321918452811088785369111060980257208192845748069653199704835609033439971185938801970579891887869417021392755876882126770423694804977390695938015690070439901541498263222772319302955079782306121358846760285709081163330377257589108268309753713991659583411443089791603744565626168596185887508883553924533475661228915498258830586064549374605677660213947716403178875096467174311725768678339804414795182614824661636911920011246701558674417830439985435934150152411971035014647134682040880355701023443911920526007549008487209378538931011563693640476040952461338931594291810549072228493139447769756188449237190552188519546477875246497339399865323161061337133490771369068540154618053536202421879833971192748763565074075166231699020736993929439566182929157399746812799152122813243393308944002768310522533910246970273534524433037021709207227294824450592842466113934039305451883885547084161940556304960312468350711302115166571678407183279760068867317679374182839136725750782193523255932995208684527136516371483400101457053621165220067392477496297027495043305264812498159820361655574682469584027005567341498474091535831154142672824682589880240988461780265861543160654300985901511490541451537897165262188951463402858140013906598260528381092946478129083194047751978313125711530054644871049647556869592637936049576152379559218133387956768034386709100808187513313312049040719213098940424071949444129740287880706481153385198684875525012008159675903859691275484985556429817105791277192974638040473864803527320184361785754881925644882513221391713403022621494618675128018404286104172042385935836510902412599651662403578767583155858218536521869867810398010838727707945196589240237515426658291013679923085812895150625853162850946679950964257188859916543185239994428027988850590103286420106737869293926217154374038983348269228205214022016169555304519054882327059452272915722699774312375124989759044540597665808034862230184630092890676096098816575570290126836821869275728473170812418690291914839974367803749450075753270289593254910017407099761766716978708912975626843615868592668208892923392446242088563315583802458637959999480335812296421725176610927596673480460557104797523245672514682396247490025498782357257817051176227648399829687347045228847132446280684584984340668228167864388318252615161955765770006360659989430151232508320274474980132717309021416295661438581351039374853549983829175090239502672227268971496946591006505698229643409626912966611362272750300427380212551457626043857484797892290101889221927321746268452664614536196902941958550696367495911174663230674547682940839706700426666910524856642136428073490570026221950055733257905846004579798267179953084406307638504197532784823488448468831331704634090146658513541996430573781218122452438223715257067868402915029180108093778228966929404873884725231442033039409586606329188165239929690683780778143469652680556553845756606354523367197298341671538888082742137348893557409975610521806735250728968522798581030282241011237679005155035891897910648509788666019031521091584328310612573178285376261959897824828780838373234138456159670485488810834120383855686617612383174823996036111476320836804267331116085760702548508396864242407681821764381494145759131482429130871853016037828415606124003418610190889901365804899307243774583319300759974329566569948181820768275441516377443316681359443710847958705760876615037456427184247718344269651697877882745043764402162459206352537171953713131318901987249778829028925405700022980913374819783708566320285407865650456887466682688707394814874619586977845217002116857778619908616878203838979832657452748308933275939703677888922820225975558358359258691550949042588608690740379988507533692239358104842955439017595781412219089921144085724085489020322762635019760956676336488054969309236350378553877909935413401573858951263828215639833220834473894683720897984955070676386493107204725937493665005009134064652483742431937556935255088829821223894834015051145730622473159309406790316377848769574747028261168227686199740985031083729962688184711978221168618166074135045706918040333197759584796257446185623309326795290306960301089254928828444054906069064850767681932531130625657438617756779876317035978450226706317140302764693890357356681217747093788585783912522068517760583984698953583985133638957918516909914421314921837849819143295683858860165350713095527963930257113700839734305616838050739315011034151963773427184360572690434536842041483436852766530329129887681533691718757236979828210250466775414731051136115926002852209792799259032593750044702683605774979266684546102500936737219661611778183675423664915522890075040409554765229950004789527295818267233899804000747766938032247930958197409848764531259920676994056715182226751820556168944476254032880170023857312501887829475319730482247428547678684679765418203842444053702857188425353093351472557452235901374996573778044871637161796469478160063040228616202100843191056034448221467266783054336866985498968130995491303144561887788810216214672925307190322628587514191318209318891153592364030037355568610007850145982619270368171299264340453697098488298337873757773426177296626359125496587403967124615784776712323518753154409823775331135731837627877656285391170144913448357119973861509492534704229561977050779884058744229345749728993422750314918230675846528688331458231477157784960556325494585225974667272896164922278329608267455949560962281705236283031066443375092887210014531052012311947004598933032191470206310637601417199746493990921298322570977681517564570304295724077787469604617922232909830593344771573998679059991748618602523256941088620378850678594553753587152155289527221864384090254766071674804182547165979916873275336065119664459295924567046129931780507891086321285896756939886759181385312818390009040738756895906622037261116891090345904775932789697296531198782523308339591513598899003422463941315019310530038172969873692699878037022304029436575015217711430074155918934288903339986895948474614805015400514875575397285515039666343021853938364973109014149220594680906643226698921562984327932414537952560253302653753916558474242707470903269399269347560018224916200308404242103126434679115850047544498589326788456862492666364530877261626241366893723705308464475773346217814073928440163120918071072149018640373477172583042461056104948292226356077545836629729895275636598267314656829216165508681536850842465195204831877249071331891628406658102182569133063747406952850330577330480039507463313713326977485505683704549238712849944575852963799906167296119883075090313590026372092149107773238313868544805080028128002094595497113586293343180989294213987839256618178095317520918311953224123736052967330786099133525326909836599445299648658792130056221180210907404731981628626016807438878047564784406110857892526078555245937659450459334591173334831906881171466968950300357325289047689815101806549155060307853579992213898799718015530643188274156364238359758389804627468704248646321538842231945325243697363567660433916579629082320562556384311856539379658932050749277452574456806777084440951081006530428720298131472726802358821205320767544317522941169497396566436107764168540217907321589655335071690341646261521513442228165120727378791261234989717914774368432063567584068584982026357636728345726101162728023727243992922960186693809997101084796937164851377075186507935715754865889789115602158884051628132226300308085329371044544591166087366825157852960731272422519881494261185163068451191630620263914777754005843630552515838681801365708583098133861640784131175982364786605400933004359282634468536517894042092993400622777014967256028112377581331736787543739190567492532315596970601086614516776053632979330407427399429835988737291745480398765005734384457490006110333150720408459736197752201691153654465885298232167372058117437568165578079336412508691412555066347316142041898512892029677171419558536653790364278535243010384558019490550564000679896376252112801355527960708096367232518601882631376669799600188230841234278570133837179759797045927133396429893139761298359215957316627375655307083056011255628419156389769268027532496682447904772985174728528313848690744977223530191176484931011767312958476676081544181124137783906985627688718640752811521429122611980544556944235067567205607359556176705579837517399510563845928970893767740877156557031140471809805040557548223936877371308852261826100758054249927443711674147300065640945506157682082772513740300634370728309444573754500447403160991015848994371727575803426462290425492255184443460011571918494695524695940350375713337672004343083943239693280165251157151385336504554329368981608894071555740417359358184122820385287205545037405154542573042081223985856253578679699350544900023028107730678243949273740526467154943906170303793892835651258294075657569833121285299897038005307414714476862597342293625521782390525479941610602530723308942429273287357208469492275463360274145005106126974501376704032800896794289880668569390311163718799913294594129319953357798654239957968300060891760766971504084379014762928050862032358665307737240201634817981398287523412213313002182054469237545289958836440579564662778571268750311825761641876105088050995472338497710990969011498915897201746678997543427434365558996435507769699713554299338547945256467877215446569420791269862279092699492192506799337795933846084545052904117681793659265236019558957813743636334257689736149614992207022639230067782202945472352795166684484183454195255405481092038522318895948504614448907890244297394822258754988782185612915262086854039386443362815828739961031886162887179866436224353505681246851788305421890954679419335138035082450946201789237935933131700510520702148206081914457977133661996313518299869917497327107439066277460408113849255359421036714525216587795720341266865436006544298871982441118035284735182325716653368738699610429605732069737690991396238907501380600297195260784258166896045571777305953224009688851079718554871147929922238863870077274902580066132138754909209089186404866329833417708302009809450965249884978709375372340703203245709114712178804093033358409903625289306245490612807211861671597515249005277003745801019407933240170931231543296595593121344341395715891782911081815168426183289680242417659918724931154791764090470929554009765179666534847316424818645644947051944503892581162944340100992715579193885062293507793491603763733624230478580414832109263329352889285800527453975256776660107068505808322487136897920189434144193210176635097261976209068490440362247499750259163357097613573519442896661633440483324605712359602448320561668357017274736000396352721452309721044209402124373768431157493578287028576835018897872449715612795299606248160999778502675249554068234780331053881424597433219619486313066316555072524189564692392084034611425530938978641094257418244670773071972003530952059181303817234460944868232425568320809745420230587540615336981700354748045837157039967922989169427333315737800945558650071643490796828669020055968387486937844758037434952156555401078191567107583450834506909940542419472616665914223153816505874250431703702923580612642687717832721402618883314588594727740772350865823365477298184249704015137710610718760759608701014057583026645499700693902361973572909243095862226969472734332079985972407928933661351942536429737187242268993687900320027958327715902028561039603651378266695282323865299976412140996080570056492620812870575410340590870113331343630649853439812296567570624831707398439693116850830967574850333828836604164365796019326203135308593155802459141795740186335356676724972614097346674814166636787039851606077813131417652497306610927464421641129327847832561009388851310497836038985251992977912073222689893289863868681503015090086125010221439849873450346770867725413327924888649633347024462346634259687537748569220160901265193401051533487442016343250541576163564419561254455308068530487520474686491659883159356194713759247699334904184531790720685681162986715797403285758504665409763788637979574146202141642522621804910628624076775307740294370274767427613175833859975210748065894844281446357423704770414460409882120921833446460507444242232921833709085105397069812712353505233557402491077919655561005113650825311274554326285107668673117838010231378004425846547433877673200744957756817214734490066805633132837803568806416525993845280751304587259949506496406470652949883463366968981077914376814274388735164289652381361235009740688055729528012220435310046908524382252383597664622714630736199259147982868637488365694385453800326418096920765948486507315301355862954953285079040288596915828654708384548491334132369716596979098300771171794746762075437091649068544893244370482551677908317491683235962083263524376791361102950503279931572537744935447810730062176216388415732791752852044394092771915665023325882683344868604470364443632691468133290017532186712248176966927654186405602678661762821207093834299445598976690350124064910736272169426158818253373952222831165194585951589769661683056197328986608619233920357700229923558766951952251796199325307673903065089572191562619698041944727235514231452336978890325020300287054132215485316586421569917309201242794171467294735540742862100859218192933921739447584046678958191923627776281490168960815510548214691984609190677731886664113355395997048084260453862359207948989654840166605510788161570700277060841992135588651722800857195979457813192750305218817136922694489162781594364648531540335338822660506392970914132073721369284854871378750066913119797191331752487298597098116521567376054367772047197496590642152261975393348123368613075290487987072858416736357446329912682998000848482980826491987324435079992281094425673114411261477409359436222504999511701159960292300304059748109702280114476277273555309844306022471150895278496840136908419419880834044935057554414635964998902630691773643693036234298305688987709211268729483897408415703737616715258532712748069226787055220658724397920224760895038223370886756341714898612714477585474559425814351016258551232987628796512651509048540604307923660859453424798493090141626110609267139650264801600134658270839732191213148271493624204286206319764053157048417950941142574521860362849517420526884587281850723168370555130706142567553278315465685794204550079825426130277091190175407079482040793898832196511589014134884993776595923734593008417528887287153728164212037775019309218472858504285952995320652099471067200909058875927259274283993321946158519970651605825178809431056216940113252469087352429709501610595500917394694013369012526841820636699420624320856313931811567792859435029586196718750706333621073125197827195942162192164959899061790690934617888513234263328987552470413082822771974018416135255315241957736571955657987043282888068139304498745898318786410357599115407409881934317143766981114055278496553320700877460430186773507341251126498316835773255396236414812384178950178877360093551597657311603521616296074751044980502524492433623457138956019519623321315043328591258776698344797525635631620427225152277464373499789090078209194112149007396937556521808521683630708758145348422107765305587752893583388761054773059779381076823125126808668946058591415215474111713881520213262909073417992662742553584160905704005216547086705901715514660565809557372322154299314875170829945950393366910806275524737598427463193983167331684845813784638729736725831878150319516430850312835986391509957803804704959947302730101066928924786038858882160714154269683184432794318591354113805521449905753722527676737311142732650977961876083516640399051717931594438438438641456747534308975145658297663786723728494018423598445577679936644493507951480357438507987449774116942143029347588522540933451016252911235215299146392067346003184361963925123273967760370294253314386030788208885120083263331050327035645285351639579107879191986524073208965973892096397182933726596062227974890823692587908212682704818650638105810322643478151361310012412739486885184975976361627230209335781021374800743949823113426425903033261705207367472701242444909077610322715563617979586000442749526126094340034163489164371136627966828512845740946238014507975173465103346283778544400386080231315576148140752082635282902137749591372886538779691117841039494756043150577936391526266008590298431924850322579503967068907344350053143828257544214878892335858415461908005770188331153154691567624937096735670205840323665990148594514813586949672640153164128245553594501618165542198613842034566172661213846725938997990967234616247965034286468657804341590841867078069118302859898983110601952141591360486819610330278374005781227349819914836005366937039477285432685234019291862313454888806081712355579721537226482185535753570102868880195702392975741901138105923224565423636805147053022320123222600687335137845551438913468318017190531985536685974476491119829609782556031483787512535769460251637214923453222586803382627151196971249842004568597396561327167704411022380773925193707008549123794918952034170436282891571823761152335487877919989849449323834573436317724200417263893344064274608501895938925975458266995654535068628488835034703085047921547528558097497524085900597975102634315984920508230748954338430976347003612163002804800468416491803180823646359893593957558961160494235593825617136344749065138874642990439185101987480410980752142555224501150933427795118007281505160599790699893956214892408580928107115936630864437390353646935539862711426579097981715320966227391790610140962164813882725240472576724467224714995380248931873189451076608774128002887378628259705398020013275495030596436223658776466333019514711896966844802452384195428715024168655045299019070795520961756068146011675898557714540618596353636588998939753744701806626611508531689931931535275752346268541186904628878354530340014044882119683287525650483478444331477795121744039383768174032310998319222549507031303307865291007568218620135279381346322348907731163466894570585283363636125524912390606750853927201634238410866630003778608873628356846336066331448692126806492623077640413572572965037950219246869830922380969226553414319093058639492932855101893329439061484983808131850750287519326172129421191716610917190394816022636911840868586361049461908588537514531031261316666618318774227403183982399631446247383640148292086904488690763405386175515560478317692177768349904205195917942678603879456583870094396432127579744136007614337015045383920064952034031770584251511861055541126418691513615532801171544723382466442817215988056505091252347077145331588390091262384367314208145039013348240126905824808524132676941541270972552829899894596473651964146278218349523880653457264621159687815974368217374610898843173158253004688866939759568221131596527975375229869904321709758874517996074520552959026622066800792748895510517649758743018807902941894836955771338507089043841794665626568182810774618602697656604799342544892412461972738394860589290178938282426651601383874231647961511960281693052294658113451259484437186185054606417634387257419270849758418620301363204754562777098982199685363930658823908555675418448858191812752168089765221887496804581502184469979968837970097058299816035000054203009827256284684347623220269167539095706977433312840299151432406044294343931622314728220145392376680851668840587020376118990254476152298741605800322804196761489507008267679635631661366048128921703078938321675103020924220617136135352059623600307081376300972954429742920655146277117800699246806195336776215049455389401773996409280028424830539757909667230770058946104167778447978107461283082553768599493612063566532649117387891389817558324527975439615033619280443025016845541157544072110497734620038268413911057994332782066327070256769659825271931029991095355254259099412302990631357074936893999485430190215511404033048334631653129296733604532417312287585672782203010176876676065902960931382031305780807842072304196673970662421159047662723914363366950130727614603919088230139407318736702333282105641765867805258976985777101198623393727582544577163002219787027328321530564013198646610129136285769355718900420763358782995193875360547491476171113220311037754351640859602653989605500453838027332699679301226158962698901192082094060825890329869433510623040204685533851738020760687266185026211945351389454316509913463956704108109954479857972722168800007262060894476299178703456031237403601714063826807980354807583987008705150490993858657831551024641610501568672012088801748300126533928809724074283827852782240032531405800567798027619922677891223183375203674333339359140540227737553755236093540309585458489313926369837906859669766210834398000852847353326470469232670194321865936070789076650079286789974370562058477640234001864820780210148911134135300322006881103191556528025817398476235644675337111273281158990433570077366061275685670960166286767817320576186384267273181861829364383809139669317819545450035684522888910192567408885417793325830415800394658600965828208350446993100484334607459583612667237029109029851831183746196730838375070533475302777026301491177200450281459216911583028712311835720179855674769598327726750931575807366932645357539703567624790759704237496724814751234041020655298972707717875330464704294776009055409360799526800649526865594287863207694301861055591300403212750246663274658410510707621886046622717992823885634757071046893324382813811291350475879234383645731513816093191339887294613204438661322382916130304428505499855572060756077156805274633282787114551911223385634980578267726825304655740561922524865012321221568048826800410870802437589993375490222458111800623540236134340577377896384113949773465586759948992403956822756558648221023510647942529532564703447920811428995861317318177365363517366202104983665499076819483422944039960977596993749438140283739795367141068822068462269229246428268170866332448122702603642406698939041512010643720134784239031633729159395848377982080182729099171053394374396419092197830417511527208541101621344737732958002555006023379464559333642951204816031121574786012052876816783471208032089091454599643939568881979460933013509408868557803141922082055980847999705238980401738442734578163590452335229210899195729572381659729032142763069679571455168297173939636224467933584976895824414653471692326973936028183705985972362165948015940659644392540626501200351683559230634612779620887223904007260605632276666210751409517500501349743354088131444032811091849723434161813503440808601386695942476045467610983960173577100381376096510510835612749469128945038199702586111806158234647241804044980528632552208725573386113458146642364516554948075407471535605325243081189366771818163124276559725316098178005121957749609100483984995203471644617676500266327888554502104123806422280030759894823116744943321088558071541928462011953829060220329119705609362277988295924110218299188572568433109005651528990668127428202130826309732484225985108630041906301318517822480209462172816331458113017967850032444451039087009136644104449090933032504688029408254902492412718058031173479326759602999223515115113258926510487149641002715754147921726368315399253798714298407434282020934252007866154460700138050054487845890284484944149967050607446662291509467185479785053186910666196030441017140612576895546608450621633194699548206720524534022075913650367456012577129899102562732386706613265914954489464363893146683003259551539229408269962866743484556392939897634971055688717101827153472701714444650959521123088926028330016349595463845556451432351103328696881635562702467551064098251688362251382200727122062796857561937724762204262030331139196804208474850034785727871953798355125191696907336672430349942510225055768847996047284923074644559319288467870303786184253388995475156007342206958980192626584150342794093073946705497949289883217679562880493432417386008617645307274090286987894762911964419870036068209594217017907537529859703399445193016175713550387218311420922152783670468278094154735717255566723187628192667528577093574942000814765512030134679521947622323712961929112327203705962753778472156983294093247970752938380114204031310870949144817793965844353990700081842528513360683050796427944788710958903284988644243009319234247867247641890216248306234210809671305491445129628699313571424610197835355492402076118403907612111117749817458225239819617855437465245837539227919035726539921005160751040620080736837239067397088409023702642338106105383428533951860183274817128565882907970695876602815027619256291193427891625026572526661571363911692314807369921441612382095884517455069910929872512537356828645300859882965774799967917377525147541754532009675063762854525597863406682250387008606877620150232524278646852418058537400959216804269004082740905969890886464354908057228661164402867894231505019850697567216271521516920885590973319065779882095256354375444816682714025437743657854140020316077581409490681093449305487343858340748482728800146969568874894759272205944569318070854688889680046911758700703786473628621071807788414438344745614992024180576056472906099117428801646039103600162440451983597519511112554712467458019344763626724545996936009199381093906677696133320254319984694420918415763927806867042254910898348748407599408811236412782241870007167877349587931306886946489339473154070689240917941026106421936470814809436853870677453553896600738742569391766674685734684022451526673926583850260409848606665154354672533801002207308305362157899477299186696257183559312560223347618232437662773695036975306820366633961337252139668040150376312772561558382000189240519975732024238471489806515659221839470848032802729658903461270448449862926435793287847117706022509926443630960550229166496993796760353283889195142777316762745179553106684510836042738690431958771282010798942271922602209482613271376309501552167375708897973845356031772286471469635197007979306034985225985056293443499230371928984331621411034389505985621292072282040210295800365387521025397549248014324610208254968677002010110697411752958350154440079168810000572777019172743323367204654663911602333379419779461005624185492526927220898497137717716882046479928303623197851030241386119006306053670487567991751003693220809812191606444754126583108987388275091651715959189520377180215604424776626863928020226132608458328057804101718937372049989461683428590937018043500505614430426110585772644719062614694560117714728889507874728779407441131348863782174559582463011572449532804074733870731184281639925094196869694246063246535276737065368630427336375390668256687245404324887391681791329607934334793044768751584503619540716276558052034717454441784235062700602848278397820223159410583779048308922322831059007073321873304181697969012672934755483596500965099640042705049301523412515209427268139139297272554346422410208840826534875647349635141156972437640317281931215135636837434752469941999149865244826476312363008459157634157338129275425645653724124946002361201161620628171480220577871117894405850800587612394203664492604077430091979013519670294538503522829634924611835852377015507148136630379565375702475799557918626292877537483126701689565961377783827948789174936784383242731647690589451427189661266893476218627735988645474079794245532373616412771669817067544941511525452636152674009141973757100344403071374672318433984811234287996448712193140799257037071914836347826995315783605829496868521442902106879219317641710289529102545091732938196481150761102254865996965044662611248516142174217424214251465578913308182955345741255959540426630669907343060056469988165164796673030945554574153486865163195605591574127116927090587341228921456873251541148004215449452719615476961593603559567503107625052039265158090140643468376469725657287728451425804480454023270782872359389354016838371198561416451464882206245343248270031386351090622452565879763851750186677109466084189528714613084303329550124079132367232913004785293077845456930944971727536690775354697969972942531835703758220857092138122419286894652220733224350374910010600114271423175767784081713513056920338023531294308247095530015561970702633963001405324045484323129727284639230213062164302387374012352866199698998992101489441863152305021962254262229170237742068464351692965661949415248573361530430333506740851012827708300644586862015476832336126779209011945293139189556599624455551060647003582236140052164386439856501000658626131025228559615219280213303682517962375809674792570297857142635083196522757478254493557089598721634673315337903085283923896607760697994382045043804617340882235901785888296189625910730633641916760066830499729023484383141113333043214430448973093608832592884397746954910285103919789056500162074494824076111327367603769539286439499579013375421983905581320006613588128362227272832241749918641123026390617773547633967765218106240976064074344577858848090849072560617551087957912249408292761725639033248928854022650064863988902482784109917572796070716207282467964037416119920947790936240892349624622103196952082478225217078223795108146903649443883969496858150285821775144460337302658278392460812383385237392690890660851590332366505894679602919703527005530925575192921790286410488339151295514014439773588709654474239530124053308543995211067358827886246894440627955907937062128032121236732193102775773687988694254899294756798600290088027722617922496175578831625073241183088180500877244314429945361128342894936048222045899753464014738812506744982932773942452949169934277626743308297034769329720932437336746081445362341376007852522207948951434760021582345840239761640996175041882486865462265453256076055029342588089623815792144519022379965914727076201762235204822821626013512873179608845631206157639333176506754954160025647747719592134474680177189123222494309950648372255354923314092550225634490749344331310504644740867598221898907551995966513302509835396620647829903370941523492592118036655202690587097254311245985162226937756970252644197303197426988134546354040738410930115523562421923319101637781553767817140501105111006615083800813894348691219236623267865901057621614789972736727414658992512770113199960711213431143905373683268335398325225107135077380911159168302478276033720636130500585809148225360103732491768063323244525398397953364365018655111385291736905426495680003744149822759503219152993696073572442355355306100835883457776931573544083357566184493697368159233402593401494073536087615972512173000743681726951247217566491266515204511675638626926122511253123975932291334213772838158604561277683353819521292707432210700019721780668586356729972710193531265521868546284091096963686030555341925482695567854836856414361562691354177068493893925161530563239555251396327564683740494534732824370740014279153670487984438835022208138732291335974265683771661851344403697175925397803478810006431821295720380570409460770288680552180001659538013087051930937980789183944506635632115201414768289439618166350659195917120475615492691742763814719499551513674790330924098034130426134462006588548176129208088115911222286547750580397284359291868416297044325900668744649504272645960508641806770485632128234857523456242426648094378462058547800856492156534140599530939406070720913960538067290408330607360563836558588895327087191556090212069744414187536338855280389752860398802677008346312956535356814478237730376929968384072245341880995998709500241285357037827811334920893696535878526505297408259017766182779346483260910048532158871305180437249760135287053766003689179704334155951856319732931476549587503366875440302626942803879253154568592105491169926731382974629878120029834639284235872254491581397035070723922725594117127441241431781638078971068779340239969170832702531719230273622585773816863393396184543850655647083848238416231716539566162562403910838438310353927506312703991199214414883220723323284219777944664456398525954490512681831342701520615983878073225672307653144717373153246881324965817021788869146752737217429484815509052535051331980255932039923948449511198283205154212858951037988865755807805151021589002751825212732020751622432397052895781452829835622933057960413318577248831828049080741699423787525153187795393010279253781374801358907684551648313560741867371872277956312384942235118480446344450808608411627032013929604299729974214445119819824010546570632493163933609212521568090099510222026393869382503380400380253669610552775130175386060826983758786583984911222112913737914817844378735639051954147189149927268042597517475123907749497987601296531309945766973846669464878052128246716781326159143335385046037761069746234117223071514315838953656616314331211007319228084202566437358992560840626041587446350612214574438425790429751770080015168782244799288292284219409371962099858415366032773374604802415574141128574298167934753962420030174763608284123138924899922769321266699008913284505585497092771017930229700476262572744699077946077485114250467460041677668650359770148809384681801434527546364065469140693795303150725591405035057288209543915732278571923641461705850096702223711557957231010905300150767066725511350021123686244037737684205360491750187598900039762711586133025067647757225875060794109864689450665921435153277547732234048145955884921471988804364376963610321664176666133085558888031960819778581585436239797655434992998726677910815696642926180756214902095732626559935669435984800204857990400103055626799882441327125069942962659595301158083132820054316135812337844470868313206458924770559650594940487894716564847695642633688005330387259467355346040004190170503531428443499235255041535772457216635743731269861169732747093984830451004478891552985657983428641159714162341454643012240780656740763507342039555190433539184722659939762322257515237065896161650113801011277853231005771691801330675552844378452098167158732523093834199151885009009586035577036962267430755874140079879303434943470841342618117715313938916308945352583830596301081011507419213552631897679399422260580550113333308209029072994645808865727504322376369016728784405660755147522817871854310510743344604000731188209397016482343734622957119496248477779339296327371825517571523787879003147469120673535896925224207697631021962632315946945163857045737909183998202903651797447134292111616838491625568346130387804362406311544046604156325764081147766172071093773905245065199274242031774338575887869410695745447352582520506699784392696982697950594498870183942794081383682117749858841351971032991808962423803757373487407699276905863328285255804328071390097254275594119088992613999280201678284451120052503694814822412228568127371435217220342299152491458485490957744440012941392691441119965881306476107516453689674843675733830186379065223158881037144687809777529386365973009736302422103626143621656509925729896301544788328321419422887019629528589396281845742235499823318209824530814053619482689938277980945579462676003165520780884926042904769934330449537849021640933904177129749522138801958784099773018759030743756882605781945941843239784558749370873906366113864021668807644932151520910987927801600701519983031029488650987577091086950973649955627466202864884055758301738420969520273982472480612179971164060533861155976608898249858086129837893420348060343267946111565188047952110023053167531405517834823246165251102194104498052322075040259977366124678469290906006637320248946364621411701931501181765929117642825399184956163285624964193103871638997676536479216344640366524087583271494113102857156310607787884771840897857884360767594187031658993649493944820329165232416392777913421434147919865133218990475311156722564458569119800527138466435968556576782211724000398842799841763993957846605007761544511106768876900662017293190401695054408978012554602027165334602378145638408959654104900230211433146971126556634106127580969903118336720652447342061830254029791724372651677740942089494895539933327828860968018894157111710549210560028962878991376561600507123239419896780351155004606772322703601066410259470637646566989136704077732636680861490572648380318222913134652947248266310325853463874671073567395068905383897295998525056537798629287844470808771665530952644996200127970262143456164176423691135843767921725096585473718019443957914880407669396303258512198697771371662555634805659624714226345234699714051836299727113766985025472802011939547889588370991291648936794509413301083144060274248523490479563385573215885335343085960595681621304897195674331677320119659879979719037153310127941018202904069227551721085996941074725604979729373274698914689378866800994951800841721577513382768292728709905142642497420709289492655908381455083791600325880429629298841149214149037170572102699667626179255161954732587230180136952806338563909643432479565365207645520593203653992279243212550125782985274801820612542265493194588962416495512323445991210369123297885176438688429457855018104390629335867326311368019481246451368497381032693401063186142129927081395086832613061209906098662529692813634536827778402646649097428043916222177900097605601852770969340199212506900325326543824841278075011440690205999484549171160858497520269927712757196125529019828594906526668165287649015246600580781299674092804170801824784831291895902299994919208537284479087624802828060402768381145349474230365483212328393558854870515713409598456133790613207788568765912479618519735261650303133798208458711272733186014852708088568135438836366270294773852888139996285957530406117506759755794663741118906861989122734779439738806055812701531213732422429114398826542146827222349758744427456254370649320251609233034608685113907406255154252411930625871716672650826341158917347164896489930550232606665140353703587959114867516034156171616114189836545442719996764961987224527853154131642879090563442690261755428210443711641775198348403858347021946760758839527059194640208050885482397801448258491407464152952555279203914345520392129314349980546635556656699045404361215845458879920198778039471500514345732111637194145098965621472318254329236258205985069867363777623291073664305127375215264402327262412863736777869950076014915968867955251268367002387665538720842976443067776701052986711900255065595620042424831131059328747643731693345172948331500312194348525767001044315468198721932019351055363034659838250796216991263070857750312456832690216335061310725104368937071388641216023545772806786723311193614030385136261739397450867642314473549284515050193872064068661381021294655891494542608009415020109951029110206494994390244792128231131253266742678867153687903030575061872844185338739226778250544019372254923045398512521398989381697432109755764638479356855936555862650063447815511880428761911586119402207799451581548344314687622559714708711744975544766826183296930950433106281041048209862132508445346179848833301492958212157969450124532963717756725340214268315884441704282670328400815634388575443546591261832217744877833171205593709576613296533815892660923386636225436766525290652404833660143419681035419225215829206896293531574036620131153240133210117343329496134827213304101369443408233967975341391084793979337091886306439584791524081099614212972174041830238719709563072945336995622159796225120862317590690946655449520084112843983201644118374821382091449801806722850142649681258127519957961754170694543685134611992788142565781392601009859019263658086800214429519895688928344155660546007314928251647051326761904424844339262862760840769621801893253247403252155960866040414516470916199933635675749368189799083699881502794604792013822624011466937538332275084073707080352419120081066600024414963243853293375226900853789054775127914043263944812656313118076280046151146775087500194741207535694247738257400830965480713581981952529402773735798756460192321128698556807496399485701974115133355664801649981886358155471179773434297081892086568289009521364073965993310822625776351892292898887780191186336177835178161614312953061435301375025492486368758421573941219398006701742895566200793440397979682320459701102628300174700651556161613968627740823974335793252468840500698927598960585542403988576531858785317039192263651341847408316156112295632813065552889234157605573701649400350118023462765258377664380790122597202297851843373024985896606039755031896142626918747911612904549803956650118284658383302109439756659652237339256460596789264726589140948587491680597618204537710175065483223751663852011048012532498284091226507827493095292667513542350076531049435033512047989748625002284928454139242103933366104971993153914976992946881788735496734121394944888999152518506942916312058069459725893797196406226263512887849782376165840448690576337741066094011723212346762991369184065077551242902028267491219152352665227103333240864364371075342840423955148395842205335505465099071717483595320547332773546577468801930535010874798626110561521673357881866142068546048244705444540593969920973426499464773158123982600327269706687822391764224705068772535750432790970940532661187526289098404984275180368451341454811490053806766711139134595396024572013780967533757403770285291381363371056834848798271748679997781678589963771655379181429199581644474706340381429267000744981009768504621266415810806938233420498653240843031900112650544955430413773251751604570177492906177583721902520646697457350488652628466510885748005737125778434697643927844414872941682181460161857446911248968159438617262876616587295351206614286160129332784089049393808951475656752905338743856719017489428218909104013000239255777597376144862288323307813498872706918255104634823355231959739414570122943583684436069625799598494595803837509780642892053544700768424527561010583454180285388857138652281282458421242829566515737106091618770675697147611293839264010138002197926457928161459220198249455567478370528860028124579849629122536114067704472522882177131631287045104430060113780142623806962731752599520456928361695346055153818423432800861001100860016449935794819529263819437048872571607585053769983834557346454004827028575749092241505318581044882366640629103692797329680803919757098932080748899339679695591455655202825675754502432942509450410567321277539118524558218533515519433797955668101161239694255263375943945722990608016589036701722616520231046871134963306133494342334372890398722442965531020671224609997008090597331114985588340460237507831375531495091088817810065250842656117405501675585172012700837113433400771304760847660417567481986321037152281726778178140903981921923832948817693314218494797384552451659666472928490237534238624001549395948426241585458210772563420669326662725805007262579586747701294802280055756855794211829341501668163138524545680927767887552856348166442216590841179339509193141521313426182904892594908297696109084309442263034599921094990785334079172722424215346086706783979274714289724927385322258609359559978364001609125808382767808536229789434249667819601154535031330481498092875815353777331579897540386102036738592409487410648480859273056104482959029543858769557973458904233558822378449387678725527398177028327207440246012690143969579986581208753840960307238352157022065389464407078519983066263585216445944904276341494178242443801850739782007013404501836217606585025749342847921289976537534959801284145845950913145391990368615803158214162546561204285995074364617421972731847125454924445718580225647173650384258927362052475644194279462929879305651088415674925706446615732454788283454935999971038670578371017020857499677961690786180776750615648353716032672567499342320924352879456710391880934265798436921251242454405570911815907366120121454359024484914465275477105665141424735895487203432163445395891995436782873657956766883013927668224689169562080892237779253392685235546565437963049385975988869244969199645189176754592006704801738210232047262745436872667980568616838670604268385238176241971123656549049566279808599398048923603593627861372616188417893922367687514035572209190113361958207889706531827690036729951439244455063459670258090234541061706989384509393716675091507205792704654441683108926350106301800271418119501882139943123387059380956038292631188546921082447246839758453666884062809623023185955505410247822861764959331778226607973487599718370142786544203474762412320988322765643783340421509768638473706012183995128117383613618872828507712544048811510472405468274055499836191719239633722546296681535412306308428214941135006037188165848368270885070716063225968968073226815489575197206630180114812683885932432772750305937765325779765639117281183177726631514351197621284282466639905870839281482260866640495496688716980734293049965024283311640369922095826425059406330687836201077832641105680405510312089598329035398820066154040782684903534737308740218199843710837132444351588994029568353990921978456631085356440931049160124721275030575188989538778705804142451740330632773267961209800510015300679494466840019300272673352943018235216815127094124208126534757441082545825400898052529582345475472339441917862304285415614342562395908611689269318156501667431454992427369533960372677776142630192524626109041772572145353508412645111215922541567153132649032926553022731546330027178560820385831978142132652091697577412801423381890231597833259222340275098758908526243319715552398222058757752396958713618523793614831044276421530460823437010010387046416290244710859528534080511107647373623282962189568277064931905238828586069087478993248673400025988833271582075797313669954850760729213861770056239791231319092659410652322074011730845709279109838475466870307307430425774135335087245089233165917548279517332154757592545803113801420264138874878863980776637882374642328180388163597183190394999719865810259637559338793866552136232745769099339535086354175575251650317818077329133763074913699565230941592678966804045383155701953155292450099479483601451544024215293972171899205518756025626469149540872835116053924709668859691583337911227143922715973064586732923217758800778122982057934977235318830419282943050087203221241154530434719102940217352634494628233964150859662338450915036315495885723803426372600690402589250861256614345410123739102252921222286539515035124681368192303649247871652402744320372620855042335094028331067371134031819092810287203041986172067717464786181024579730258953314055367541124020423054380823998484613702889658947739531042559977948721267105686593375724341481053106217296958911003412549282028718933184406671722306328300974179491039990809036728400738534968216794345309983184123431933437130162126428997731639036387039653495203775826809378173173330125121512269875097347317775863099838993928585078784854787738402445101248985028790063788210447214051371140431988789521804380723628534004694519065535392592935048020345578450802934335376397560384277175376210632768954022282441458910313153404884099760902813691583732355302066623504369328221472734805324059953429582887565655997726622544761128795618443635398713664869256880462879292515103283416817217111987065893958533512778177038098168696827467931296037247476760875521840622751840972229268428257709539544874336075466239761003135845991582014258873802965449127737486684942848799740811390063785186360707332874655929817200209707671136829450796090947305854499121867431724594231025412762990566455928697414534314982345802231876595909507150717615905513471635761841596959446496354011009363932932702909542375037408510618375557054769697868100510605975143899385393804817789838813229521125133543606787632869636456257398771777224465940883707998052959658570770037124729001480815423111258130159685455949095856863333180375571771700973258308401090473812557935861389537999601391021911566774816611207008163507087307978883069607750187058335473581253144280665455055332203547134263544555753871922211273550875513003719424888129981600294338308849630517750587141583433320909071269420461275962787309043393674360693670950516337816472555920873725952687521226420517401053761099268950499627427032837274618981115394405361895916428102648666583027705629643123603866450078903010784052351173431641958270247392034548758126272728378828786849288669836159735604363664482689377381062577182881194565390973503350245979052240082698818674545325436310084408068322199398601169691106463996904263871553959841223900732434557324507306325290633723284574008235394033177069619754819680656156998150359663221307560396783685902910788571131809081519818857072798700324121440138353999602094948391531213744502386539015959834208976334007769874816767633321777845237384316273525922263112335774551972761732925907799586253717703818559426665555656660837009949251788186146643219947032332757633345313569155374274850032847211139478970131305489151642527524919647561357612887070104390952709720390168194758236417211378941737213515205276931409283555427268095208196236276447055472429375587901548559225477823306951580267857434443737812072031079578136059782888592285702178684849371588044965132120049675811691805431934707431310132864116521694245282205631323658279713639559330901296853981457206909529610787864763382653797035329978576326526856403687352836073912946156806146469981380586244980276053087719785517173041063613523318775908885985596840108430479729667875402819576874947662933920798766327620768952442600278966882934378526556598069664982377757746000639800640419398746139085706071618515711226386775573013043433342188588518833836575765928699160558484091114381707962287650015620330400249256871984032683258783625279677966054038224812043517295848167291797277885060361406154831760412831767223384258432687662525296801515980399261183846131311951152911323519668640417767575600529270690418910200602889906970989234061316300378886151359468914269448292838017011561624039867453309773135131368251131642908016519771859629455400446804478897975452463425027604900739132834674117091235124815879131851963390041197416077492841318697374795954621734193953948985723682068889762429453510165993260145439292804543193834393967124354715355807705873003979128428707478353344310545508045032892544511857614133215661545019413416893297616397281508515065604847862472944876401517567190301578779283250194189763238771585247338526523003351139715252641161943659721064578114894886304692184247944282059905013026259038068294895958961302056543093046805650331543936901004356286084376911605582187619807243770935586245749113847934163520922902164201898283810116188923737355019863182540430674573369038388966103578025882232315849017301982168427713863958859363366084797650986034964236410341637089810749163329349793953176372165036072786222483716499952100158636913723985347880294079978257208714907764679784894250166598902985386656472750509803336058716784158902609526249863201960993572755884325939754120118638432156798944292320878959112986328220119503864714289144748815340149061316617366889331393484334589690901270823496936703112778297372167743724075610689341013758921877417737337550436001787907483310962647511560146705579667688356857781661477290028213919018522218597529648463757736636988759485178905382367501585407086151898703545912383045824025412997172302578923730456790595141187837278526406182255921778152763832438268495947039264060461152406290690507350620705246875819960698237211005226483908386671891079534376183322646003461403321434769347395160774364630780459701199840880502761853594190149123007359999442456188546349152461058576377061918776856408893455020370410673826441294124932077276897670904362993423555061350512052251518160406159904435259107158114687180219806999475060495438218238958616995050034273997016596803880827334854633124754028885314556965754770163817431828372127367829822074396086401139527865418115401931362040209715720083696332381783851880752632960349049074800864328642724204520081078677399230215714014113566261603349108952887920152429838905779697151385783409914341749408304159014666784169499313942907681870788454925816971386275955876966143317300339136479565527635953109871710952698237795094468112665643730278625705060156558418469598274312068348402480564100568277668978395035763869935404324199466706438831521816596405248335154456889549586888217937310450151939236887160729030641514809631973488348127697362101723335219740212046729392073536239209844383627153961526632882559286690364660732187507163803590278275052559279320427261667161939260640854141907594102787019472442166898620926945968740029942925024995796093926280550370158804811214267955903801057122178265129108549358188593760493827882222275225437487262105871413043795544681187420032320105586136170426080234883525776391108254632286025450561713031632077401634902826619465928973742286619038454841958917009559131651107226319307457018088690703997313078579778285035332763163105634110392367013304010976104112289205863749672972783795329151599879593653170241859702847185107339498419886358414221090168906595920701908079235400831673498828685717349157943122499423808311500853043005458861471329997078095874207709939116037013994070789048312463505022215047128392882941814040503756670427946771650964914265742227248863633757535145075789631220912360175782299620228659331066099623226872590803809802250970575286436880252132752743505223070222828656957056603193172486615291483986333837821818496733823725949770548235949965241034368505117798055667193653629413769668791520688477712943094098564741672216790139908299473952893255323243028409762006858264006416837676947631366110460390295318414356930241701770364953853738603930627187651935329425128043027011172230325631492552189677402307061901941119973262281213912005821555565176330078282866213724757895768440427111650931465400795308716281479492588803744319218079539493663925636675561753986898946014891171258943312116534506705532371411107678569513189318821394238222380661763708849900307664884464117900619226540904724051982049595576378675451069133459480328013674672789306443369640616707897664521261972442936613628778550792733358141214073314576384082138877126692357027431213438701045610298675133685777855296795816999442175002748014345805577515268159663228722428689025339266112703366554366688495287628166197189043816293491424522364125457932530668347708180026219599056894499602732973979462858954921443630961045734839451774597127325887744342229107795240230405641529150090577239708112834695573271046721954582452388558163725332136664662741168799873573682650372644183301193145541815167836509528377633191398726747767899151833650724497956742601316922354407252064601301359529452412503851236360113896629783749986509273627520722466941628343132802795667970151586659132192488051934004650107740854972873518350505961030710948036263144070438626221784902619302644084289423394007186920657975445089026165394547506416100184925159421465071832709154619701518196538812567950739992627621171715384983515223560228555886083278621956343097400896497833968108679255608399540576522562515587466693143187869643831115535963831722355650506805660640359624027707551580812116292959671152625852709323330902292419858670251225960914548797381672637824962687137295329158271748868836599275497037944358586785930394529052615772926349054245179222345003529981417611444792580927151999555356900427141657720425422499187709388803697898552212411995689769151324593229721916591099072754167547363674285013378654949274952364278518646717735041430466799402939842754147339971457351937730908821620403702355480889300388322709827130705800876937265898823439829031266190073389300160134881290585632330159835762042040770786100925363037709015473422330593808926323111100619205718723870473338428010605142155516623061827214918742968963900624427621333777152642240343643117405685016559885303377276132758037297506812380186021609723697631481144656293082874487236007856373682833733436668512152286961329654433770184240044628825429157500092168516197853600351100445670023374970690959345371385336554221046547175179504172473174987013745209229936433967953353643949034306959889249672873599908459822175279734379123478913365741908886269158852106685405575343660435297704373010412348330198353332779281777322172548421152813383737723241555170325019560469486858402171752496823781006799037108148063068464189687592429311907113891671990641377966996750053096872713161007846556944379528135307833238673639609508176311640456213700094914114846542306161269828730878461157077002361351818463329168810029314271919893844238022603443274000786482082539073153411631557756228684095532967000699128164980849786092132350036919543063841897465625880648860960226562212780748649280422403039570813119803942243562662000229127295622259312641401831900759857392872134872034396606944382679121649474531645051240006517703602092519757935916376191292935307200755032769642887432612657710603179857589516541100318105167466564428086010915922441960267734359114363710631066252121667590693117228175790331838190835258610127701864322055022206366416525560632003001460031089255486255898738573680594013510786582542334420170390206171325565792235619210514179746741410181111910648851754102993546090242799392280400744291002258960396168052111288696003493886720847553015431807397897992466146839205713764463406628046656947437909834041442147514255840327052745971610428278603809757078769713264988941745871657112640634556819384051971659645384993902243831232661103499420471735515140830244986385137944526524434787961021164391941308460741127941442855724452299054022868684269823406379301852295021600006423929804997289439520530771490604909396878695587521188467633474261170988807108459402247540113288984820896709585464755078323641107896611576029959277682619806663627919820680338839570750101990363477431785950086052777585724396773895413895739205579814262310014764627539344265636522578892168123018914913934104039475141462365951531728623353589742120732963403301176214229029272565366159979899265193208364352552011090034917301430674721785930779245769410462147108533218404636699296201736321315166777935377611958238331343718969425138428321931169725491720431407326126871683249387275047122723323336435163560018564616382025558526174571880184446571025748522592921272108644014749671397738440987003527078161830565403036379686299464815612972631451280071296661544927799595343107179053854689344570256890091938252852262573308147021999562017425521295216926786936041500773508930178932245842686448089196898543382736786193883614560608386394918327959991847673837517404045875251240362222700531010099510716688384152373647221992913357917887919368902386799089695600176560793556008232931666558737513091836389102028152677609238836839344787799415860742351886896840501370090550514070348856066829623963777597810958209631767036262132489374087486705123608571335448273045948296260850827938539704394313431083818733785025257091704420931320038901834373242586980415115375364494047787537498341348234779914114999186104248532827670048485084533024897917922468720118047724145579478545221421405928105163404906475004074091106946480837022841847775471646946862787817817124612711025639777323246582966510659282037508111487755465464326621039325334624015198488176194044608011931660912549166529554771736077474960308719341765834904054340311630087703052584586240385067499317901474354238417516694133826250610784450173017556039376112314060478213114111275671762914091974395045291530481425059596303805568080437732291320186611939012935750708027550164165638413526844694832885369194104812699787737537906249997920309726003213882904755492738652969170266068433568421537784245844825368264008162685962460004552200559344138088483319980456384070969160269034443580402403996637793462973950246151565890010737456207164844661417079367236870682420197177392225017437900918113911434596502270737965384954819616208375508460485169539682101963399140973671745333157402471751838508365469898922544664404483198796120412349637185010127107001627097906636792995834209925836761360543399245230621988172792063987070564011517624302958667929893822077688783279706026951794901026904206311881855335742333566390178764220945579720553495856980211535002694457966395422927788060539291676411238530061779753381630502350584489917690882517431872826454451880817372112884023606225534565576376641731604293433616072535253730129276632735684819379150407935629703036706501248551534403773481213303963476988976904119580646056737419065697295996790903662558525373317427041469839973179133646533472456750504653422296055092005725094467834981004305590857484779614312550700515968541576347465629916942829457973431252129561667328959220935554412176682936602684987002600050840096917131685510600763768148999572260642414413342872133609916208152722158582143052389445476153459742656263338019044411837024028441316074705266955416424641300314184404210429961242026012209223454326617987128577651925642023054175174766889265480019510050883246522275554062582248363916217270534472005829323847605918285750377287844583257425083648146088026515722453154420543504149415847734507651917039661484630724693447717128382753642822686076703870477383814391235221271581335770818055635938585243102938946345935518490191679946677922900643702237520789351203938409358124455273693184847243296373342211156819390163647698066254216882035274576127326059039539698340728735807744542167307938780273217145577760576417000714373926189615956434472624443258871987946413601747410064683825911618650060296621161626638807930258716208726314557974461391370597259324228192215753041369855214932999632456764992378528645554849746998175924369175616371383725683462698289497763452179002022272843264318350570669393482254180666732458091182953691616361365333087604331627031782006438427451271835192424978638744666906454749540077254797818083099736300851433483962696063008362942711126287619540952663404455701909203256076016474660874658032276703314750679095045690975617755045965389240664389843588013480735814822057676539674340483835859399653041587463684780958928405218680346098638225772974879735063334187459888324779026066821010913433754399890999387882211293043191519108947091929999824384492144541782035349424059460341686111214832737531884869926950446048471914620528762336765394130592461350760742474368557586516054061598963914532343349448150559072745574570083275512711733695280787280046245179205027145749454998750409322142047677556143578382671890536367801752096607615146347091471736060121685193833123780715894460813848976223301832093671459244468179788691664828848707829543279081895705332152126769020634082443779968906919300980063340973808976141751274749868784744233582162490052180027858100788747033837821875489653247692064702558784914396912345639344103887393837745687247351898091409563522459584876061907959668903036029915276009018002273302735012421468080102486696201495114212346809036659737025512102891134400533108634222163491003061363067133263186788980735439696195263883699447239058073592784308365777441983847654821008117253390240812449991719121382308255462082861874979424161496325332869543412727394967038019458225767160922791535419143400639125991038230105105028732596850834555995983677752829727946690640767718634512314285328376470165025503141504423198286466680835652685733513007540024171847580001491965815208792273299709304693004166303964017864008940616388130349449468891671556659571402741458060981895706870818458011612540915063168151589177584879848006944369111104630642454095610723323360816198337056362111967816400950965871170712590370670336793040919921696993711256265406325158246712795945641307536561476835364290213240130660441417063634086719170994436505570876372389441969143496768205811845090287333283208190889426620662357748887573228373248757114037178054780329116365282715541294174122940170058358722640340497069598178404664441903044386873135154696956927964603641753861667058947117459937458481566081791058569741517679948604116111631818087408296709089580853626312033193733930819958061089031833127914569987671818155855311711871813482925165046812872134606225315036985555696419221989455240581978122519158137595755891821075299889377521311481913945503197685657905168250121498727143490316601846033867077462425028586437217622565121199695202361663245400352240220052852646071027535239001862354033111298266637142836271215923124540765897405538382895316230668553986476853281874876985171690082643975660187807104658836619108135664005401508586344062298719927020777987921544225687172890404877195087437714122240093802382511783933865208245632949300150975379510711651424174951249675507124972640273778165701464368923163638731823145953028894060558798963145786457371022301338964063328020928140327666462351240787554046144759169033689004357541847080617164844488388293358083881703206483581085688415093913461636428036341440037332935443391744494408215684201717422882486678652829234286276458003818658678731386696441747421533097261386621391715495304727689235389660519277250371637450996972198052932807047761187937090933078087738232586386124782517637323918494677318605224105729806838092796249663417743593184277775205869892005064340356591188916743417411958007569081075602849140305989617823011246029207837727578614344243179789545101564541038588758980043327185651381340526326178232442996194026207663362512657142760446136799339097625993937163341755215663431632647270537477159191466094314071592104598993388523598388968745518730511639191273021148782273275244488973417595512928379798118736345429048542297562879246387426236221141296955441995612112192636301163763074779349210919822921285995764391837951776923541375935310095371691141607802291864322581541340892034292329437074072528222932596379532638130925460743188623413497104828714094889081156768875306671270114277419732518600042523312140555116657695580734814892262358773456871789105435980835517437388677272397924711875780755346786338574948737702672981046968631704612316349627430626526125910143524513761589974601169779197954844226516389018832568271197668775093311051268004278443605596572921511312883256294212712301759495861225349368000385597599583160557002220463198335555850371626139159269848289666444817162627310246436792327258265597986119291288585003596906947794395079050270163880944207207948108965149782104074137759034337409916830245946156500304683092768433348865881074651623545666831348129045023644570078353311107935047332066041295606999189603642193476571302241630453289567289857006752401755654777770949004082771353319276762306250792045184772558200294543495739466869028360182032756828810529214574473859886346650401626239780247053241938038728689057722824906062148510048194107759910905016595564018228685937940115638669660257938240698942586292988944955813334970907615891503483743723359762212309779652669564192440171848926801024812806035450171168705994644658548913021035373018074546103425017557015181876500475947584079615825607748879376109722728922728145461933952161376687048156486331248666455293387186086103286963755425174840790706148799170434260565709005922977902526887011766616722124372239154990773094676314646440523496746774862938730770955207057961577796112369752147226284123137844285059384557884597511886830257861227086145480975030866280719612471798448529357184306642668874306419170733029561174418563079932623135362221316125908524245636708468897286437072931581461458338890872286642169544045799063468008341321315643321256929259945555299117794010887472121984452468002715200727578161185026028435626567850300993025418199350043116782448397655265901320554001412088303547990845472658036757141570222201418990544438055795960038032819180665592764117159064527968611981750746015334673674798067887142746274763115081065836281728726822189173493160929255934012348247699253381997440597108506708608146273869440333642197275751759189648221471998832935117798274002959048660535882894226857967805800167227020111071191242736297299007391396737620719574320186733066482390565086977195098529498320150047173701397359091760434647917246589603455608414406068044797219296699017380594268401264184148577498787913425894605103160994634386353072197491034131395268980516350367155219581545265017657545295140416136299811749358651270521813408576549126229977293823172050123986040309768929550848073023945439330409048386534174339921643353311460166736844623601737312918620837233636382068368901524596431756771050287291208907768414292650421860956252032851428128093772036265301886865490338792253070005948864110981990493427016300643100688215608717569603146653864082340379505011574556529695540448385943395626630671687768838809768170847636180813742223899746587896401904075938091534043573082935162939004245883593474686149702159042510803960671709158827997048878027365759709576612837687542111745116291561747407374062213257574759880237589697794472441776656154652870694810411113061059920868463825083286719415834372500841916011182243710956296507750026881048435242161419532794059722708358305670362113603796411783858363653797048527459268187337854871473828989157290260976854508740079753210951203916960000818186257895531239407856854755496453839182152286714366948511365792896355104566104699558731493214917092127758260732392126263394241347525470357107617064194130792808887260048351006860555922811223371470305025164673682881953415621489665187829149299756813950953650058661602283506517540309557240058435687131127756440345086613020629488737651193583456267902065011357139839597620418143069422404627192973275493750872380748183312016997972449979054216697327119823633745538443219217978649209694210722693112426876307851597389567237378811474205597664302141857109626977479578188536051451046890209200269711280528642920893543215432541289379462547469112817010927147710366027928967535221089203567198719963976297514609817295910950176967227767610215729610740215958350808665869441033051382441219944864619054671920927957264119053716125855156925776819765242432632489600850779750820923353239207612856875468119458263400269086413914767093639214173093006603683988949669676246136133689236378756536231883742071329631039366989132442357472223298311134120252876017684834294950058734593681509128077562660408980386105879012980965287015914982513256593106157996926570314310629180194897535220595377959983490197807685036283078053955094997735921804560229089767009729007065209362705651835174496098334110897072197736206571208605575412725887408117539177831028707336071068062052247036587530738885646955343868273459105603430287633115008422607533106111726176620475147651548211601110646197646599583604140575537309521735406954546694095011632523759572316483790493742209864854339647958945629969104664076299029456351080994427697388561967665220899950699979659261410460591726204841492627446548782391328432672513913872679808030041249231812528171843568086114469962303627217292010787158176149988728160998858127524019425060417611054102096321749154245848794891103084423210135881888795619704054307007411492005385537625476224732479831026035074374530407927296984828265593675028681597475089938980032457506319855617920698551330461983939066694239546017096775787789289391203993201298162752376101244360043618827030749484557315113642950840440710819711076208844038702685313105032972520222660813857095043925462732504539301977124575435729116001990385063535243801458678287573820088674179207737823540632547304423215190559078544575636124957671518981902331107335223378072708471285010693317645362811088967039609008573353884779731725378474160247685622019500439450993230828905829813330285828930463224656035602399959160868790224717446462685422083267347697692037464097835108122759757255734859833485940410215360776751763061329136487827010273811955322279239833762174023626541460344312275011704171753358123830443811233475876896952918922210131732671526780424007324309148878572470365883672121285664674238630820966071874199110039886083236232534911547484892129613275475503823993984209248779012609640006907316644165139342640970653298795919406385884763340638976392848801484579769340519057256491389121511095628722905577490642339443343790650785470820729334785343746017944083637899893484847522943920696864997041347211640250430338754078733123841466630290081736118248777998105821746099362790317323123679405333111386442657996164704605873520914391565537242574658709155029171685568717613998013016410186533915108986388180583041057967768400186294051920898129811664845830010488952741912408346626461909646969602252717729113680449684522743829752280441238536639322465596342436296477801929706960508698378624230938856285320667743054853632494452963159743495645366999726154388491310654792388812850954245280113920369461631392035572304066404251228132433002485754091053621409370364874416115500416919302236507654252458301200274344538122179557943725044347981252232284153486249375638831682998385891800393960810889458921906053674194107270389029318124086250680180567343667200860822662622479517671459873855718106425999586086227853053578621706696734781046376397760483026417927648883556197820153527587818323739539026362907924762694791723754748528834058669426150933496777020762975696939014357222763226692880777771900491842683311508465171394776819641944940372427651892623159538702977049529022898791549433467354006223482580907243756750089963035499386581643749955603701924402836860901879402081020229661684104173342115866532876671446564132624626677121041418787041176220358930432387330801091245984579581536975301599421061423986767698936057031148453155185915383137862840285604016449997572342866473373036370905335489322383793208498498980202186275285485972790096209985573523638140230192293652889273880498383246153658062216760093663204425764294254650100526686813726504747450501366023807400837291479031146142514781045901383929012004685238676921326713717932755549943099094550830956508474915838842785878580422317249005372388670653485939374390559614856167835968762786552932367283568533011285816112018881930373914900520076500121738491534230650669662273307373795379176053206765622309919542675019766485213939544964397190436284150692935001477852278740751269995053505868586890202645626509379964570642905770260693091384749789978141433230020890245199711559166318190478908154273269370457579390164036314848767126543121710342794423210505444181805290233066174604374977957150470245228762238857675759718320776861844025586044198226557474329801317106950572023082482882072910070868621074834818305529688058994646111350565979883106547799167461446091423164174408065080354561664173538245253468658308495544298871127312203516432976124397886720547705510606561912792597959407535574386247068468107509389207111382596252031941139637247180341464694069154249586503986767776789940513341886577725399144546423625360360538988321959005972583539355796326565793227820571131656590442755008249947769348933768172652850628762311257743511781700795427352705681619637770804590387864944223259106729282164231515175955899169820976358810042971546373257465529899928772118153491345920196388756025231316563382332685827386301451331146307568055336849685680411627784625617146950467911513639152951547801853245897570288471837349390455303075742065619071331090290879878695128346311975331552347615258690849835949740713513726769398624153210309217567019384055084072615428696023047421806303948363019913380724364386764044103254709965991755220278415624419570792105894833510066354225170296743675171901685433519930745714722986718281921225800355355170274696886885444007858105221463240068714282803214337592697713857363878664311742833524971529929040795816849268811149459059098647324425421161181262000174678171551088189811481099948448220091762727220903931551234807536918311430657754166817245711538647396254620891006339211751698142002967366366144561766451742959502660650682911237719755214193528634767694597184508641329925916893581322036024807419089120335465156829447758306428191386513127959695061594628747097195599695940784367506208462973644700862454964234990251617683104471265163530475586580417446319917923223060891945233064661903177870505209246438942259539258071256585609477441038587161621022253714679379976757738142461337942441933238801912356943208446101583863300427135684777703549013286191532834662353912971580327333753509879492185191552254879981016549778057358659512330137325556940148656715732664805520990127053784604585925871158792906555926696315135715045764400674395638039804204197152524947359941902108088335585859648112868142363219468016451261276745867367713172631580689492764030386142169888636272287945428497901058513236280184178721779583050038477538499258929809823244463475975853090477430172228840680362840290738619504349995998397867772575837770458063121737514477740786729613969684845049105453371948434757146711369738451467402560006043519052968626096583096897783409560298906043860061970837445836296705217695199620872326580990491934780766265974169427733483968048091133021373527080875254021309036088181096753173137763475081400870923556602643662795714785225980848477385189416621576145154224291092580351104909956806691866913853515944946146471702412307293615915307491465533006673620448110454467974744875944278857935694338520950174133482422638338684627055512243478054114262400791554406734165009290110576269246030053233856893817149224410029914122753402177488330695136259006769754550842545902239182807871477034063983346649601698974766875941280876544308223888074416890058029798918574484330710767766085217100104430133084868064983154754569192541058989280451883501271505948857350467881887261965367913014153614101634851886797283707175264926039338176130919390296241863349552059135625473171087333615810155240633390535861380874929333064798027153343530663516584523116561042022257341010085250946994715889237675117347320791815196275354823750773597337174671945542778266520061571953074744905824346907075858147685486323595609710626609941921219491319794377837542180846992357408941648275954678412491666904582209528834486849305852203403279737859788919681578881634743686206013245739924585864329892461030300172990171838643591935953872537222103565452275304811996802980949855854309289343887255434163935855932941249028777446960623215178597095841150186778758286881675726982681335809032156373269084968344562604787890816506916977151469927873111439556316770766455170503388667890382612311407737993303395896607800935866641197934230806215345459298196805940278024656699569515041243166380090445674012958738899796276041387918887735577503976873904112950199538367243495369426280114805078785797539972285321081870833615338873122813064220539931310414293315838609113089346659515647509718742032883395119669554453528700364006430728938889491966408828873907891246057381839057721569992804204552654167827555667907809686040838687141264102494182166338101916160908540130932654998820008282712865077324411293349023126163099029352579623063514775617075750595026789371369527602494075368553417359664079240636306378792023406382559622540832192789733719054267814480740699578084728001619589350604992551206883218631566407693341302547833153357040283468159333593906665469600393564170715164265652755794849489704716601484161175495127791564151689331349514252327573592126996786818214816997831954609751411552477874784859413679122675988401682042382605285261666730169895802326208722326746353544102119360500405546207006254425160252241829320357463238004008415451065479407039043435682941560822976418923523055810115686329079959154548152982745711956448765338135372672501152534452661535983950397795682635810355321226972590233412578759872333525162672049038928051163095448484987297589855369776459322961502462907052508799738454407663072086676829760095652414371481037280784311614011318494746334863901559271779050954348310348762389538402642096213859663656758468460144904968458232379034692582224255383015946883611477574236758755288543646910771312088515227242641168213778774102603529121829822822947646962496343597579337672995188568638402859755809470242459682423934559773277103129868621909636064788906651478309809499274734106070481799014210480924763687439799007037598735947932010377782150746768264936235586183029367255813921687979577959815360763079184343529796508221204428818470771228257404743514588963094609656451299844659870096598533767972165522872549576635766331063097036586982876668659056834681193633194663360887176265749021643781446798674518615852535051634161772498586577439457974286760714929561117008845092846131728639725193216384833809873150593973148157244570561943409044480662291890699639244896659429418071862254722075922814687333549252378031627364793137271848142885706550370624138104424847458744273040089489361302273172305673525375223626229768296796027336382949819730538679492472582191058995446465488528858993343829393956816836729548827933756814820842463244985311009756900289978040208669822383965974010002096875722225705346060278619221733442928356159051373105428121351072872708689021527845870010799404178611799536977619632248773664175129466377835764401968205227519809109945993879614589224419321426604195533283343895042206804508429872697213084269213338972532625528005028473157379164076461708101370520360761758479532985610975534440491868939527950924085391158554600461522197231030885374028314250766782467869861898571787240558355958129673313011736267055003700311711382603086995340686843282296350159005674478288554501595894896490923508971405292975085049428636024446445004190789579793508925433831262635458114894861859003349276930967481365271264795429786346003367818263534743326095484807364106396415270640763868488166573531923388988467128850405563534098960219155489411042374214683170753468769259594485670829230807706193692213382540635914479624588056904408692769362269642611396626556885582636862510111436187635465034266662875307924746558569298347000156623617498351153729934511272772590640267928525914018646025456587250345251896776012832539022851966850409574027543444731531163972982549451894660572205529159346077830002726337407500714944581212426494093498939167123848441182415640529979195458374499124071438605377366117004331489349924444292871197198613781409014340899926910961522657362196279018004154014994014613127556859168750030982366605073655414783633290038043008109717146375924166049945558272596405952091397310289424132060367437753580261423715321381221346595639219291279005109710150047801269506006424575848711222892004199850307699933914361722631839658235515872448656526713120331125677656576771060614652295882826611519756317651323179394278414193564249533308301932691909225533525027627844270244044905953244871449877877763005549855945139284158565604480878097822498702241837938840005080665846550757325522375952934887812350109750593478742294231852559555368949750874598225666297515584133119249142693241749322651048425463050156827401031892297955253289923048149303333878380909526018190292046911424233901939811479807833584077578262310191474978195505358285899130462378204819573391255991373658313956677687622680279525377584727576772780881931570985157008551503592849611710795668245849339189229584577722352276250357772881152622223604946264610935861220431911468318147835787081209403913668605043240702811874160686652091900728110529646121874409088226263866419551701569358376329720207754600520092804635484337831535360043622191496570298219794895269995617326250245869372590342659861543289355006715079850556990255970155170019387655540930432273541304400886058643033533466962212241510253393216880112913549545254088276540103898431458084030807694675925919862804614130036059240214489067191841039219719002421610564055329801724745228062647232812775492687793140790658425714901329887913949684012668594212646127274765059666219575800202602246639310546393771585799551700716575643853655503605315180703306121167775083548883901680228253354286199508231634999833775425481723372229623987041639728310970372148185934903350701104451393559313188933876878894613568521799849281047415101876347410463017486860292329318535262495070851350627281336513553353718618037084841644009392741358022436458120208806612657209743490429293371502031354687660176662887226368844857737376854893882628703320295704054374411810418200735083715773421499146507638171683405385673543862766281233433794352844436391035621574843209021110337921185919259007560374917787702491299513121339194484864345317805529536533671520853032242057476563464217229232429084470230034245998014216883163353634170584927085136233437730097968781817765484263821386270154362565881274127921554079984537106636061374068787877108344609019044431473091004667992756291945586605256989226955744326728855368745790729244716258573457799889163259318364827444304954402358059957842545795159199621592300438320933709375456596988482599815899926044078944104539281418241553105718441538247157254763894093305189660809116585554709288139378518264679741170649130918942393906300497099783277020372458061482391756314644601399302423980328010187264605579229036680280987134077277776943596293907910276572570337700111258725924999633578793789431094029531740641543339439614825679722306138636346859465371944587525309103692890063527461801529977253625109256602209226558770003485816932848364608113591905182530784313744188410509197311024316046405530242906622529287606436769768583969677413766166430034217404061808299268025504522473873869103812554612027920859706258668686728382292130084908258452136534855764930978404551720091193545554966980750692403481348949781002406454707160991602004723444522063498838531038407282626991885357122430924059244868909699923763983254731478479010684930217683807624707567608757296759476020086221285845150356514927419957187962285635380575451988432004565882078959923719550942790149883422241911412685211890075039524669907861979153463679701612688430926397617713162067641202866420172115088582404256411571852679702393386344470005824436976658686918370481810429405638143925356880350086353643826099636464862676277096755499058377732411298203387072242076078603323923970228897211587089237745155761393791642622788482366530076606261653944930221852628907058505314551028854480617806548905114940496900273966410954108730179373824342673282072828854223499443630964258582974983044930678670068493405819489375313857965695932280772865967477005531992486969696753780791929161739605069528679053225224338841230377608979217570308452858227132521840828730738069950465825218817029578943598055732860082051906389122244078176558097204228395283052522139703755567700251670128629991290011708949826316173162696969158702479668838203558438037853627623021937067956342978364556823805728311450397734096939291466526574207849702520917211889170270376950606683034801462386975788064357314663820029115093635207692578244811659038385109966392172376011300260620083707056466805423924452651170543002430111247330440944778966808293634323417048534211985240682155087215973187729292140505973405491323004981154068348311096608097492711220413120427460080620005753638414178107815742470698032476691920106179451178886102170587981674252317708946903607539136999548805208993586080633752464319544566214435156576044640864395160625621002566707855603533692342869337580663343257347506808170221258014699406858771813983214110702492516532369427793947733823693821473727469788508760838890031970932359646989729117673391178199273452378533908278337621654465887699781210772271843677607608159059627400651195261109051938774259922343225803920309971343056494891576221333519813197899099679125925920311826589531997724857797507729400509886440439674665583311668048138139192835430775236957154313648045170433927774857014447308200829854286096866300055809087977481613881386998207490034920203612095617636061390970074529852509084612589757582217648751368554468462548071134160558914994060780348056279547303734838785532391080671700172019440303251031572754663681597995683041388806936076712757099620307107980420563268193546164379107763024425476671207017000840777173578608960438753322358470313686824977080250113317741246395422850134913466486040867949916726316026816436477187864765483250880306192196022259793094523691072429645225884819957121575260141125911769020042211276603987570365981730568602540446590494243935594762527969366267434930783633108500913143185560372490171861272925002132169501762467444059523005631470247049182948147001720843215624119196048186939665816629058080505813555263805514156138476770210967938270400440273374046018664304145398553629461083402262892637344963588867958214415187344236500974761857761741045825794531571157416530703057976654694252447303264466749477028295769264964520577796894322412532471815538238668353868351521721576809827508369718639269395596631171586987969946808328653637237174318750459599526729721972640187091584034536798008214785690222060055580272283876457308459599497721857158641302751560651999004088611255266304818775485264261727445673109769546924118170628768506834368932766027431621564363102765344727686362186945811238124122063935237756297025567872364958515965393537093783907542759135994760710362333294559144019940740176385615737942148918814641080445909768972562165972788363326041366067273231051718298571923104578335142171594241601600978346989605952723908214584439436308481769845652781294997788965865598797530755180470424061688559266291823120808092770985809022838084193345538008073738410657271909057315182649082453386926363522572521035117254269801121186961525679325842357603088510879808552626590906838349367363168978720979652239396257435966967158520398293017433645589725051217067896828276188572306958538934564020653152803851761735796404840757657253370082640226023413834590043297710612677687520866902747706545481502171397450093764776068195369380988302798233127346612432222400352778808126983326765708356862562121901738825484233963994446649598714051147687857331939870616164360787566797631898009673072747150692724618125985613334751115090165077198824918756789498686177975124993955450343576769585539956046505228886973109300359253296818977631040798118512945258557874347703687848657632590883117821541146380889696767421064056046721808480989022939265572291603214859675987399115251317204911776483230081885394146379522727193481800168433571337588097292174961135996144896418533476319011003057379935482038423271655663043468220600089913781768506744985460929464305187458551745626837137118522967268123947555848334560413933098260330975286521208593757480698213691611081967700978379682011219041239121037220484928012491768173774809209408374949091574426713630892478359038844746785522231999523045788693154890064765689992141743873505782160923723886278191047299579646361147508302996489959105367913391596912317443743932732043257802155450343073861251890231731025663040373645626286492329796828624958064873603034252880516550780369711266906431515869052713378523893511527095048900900010820854591443614324423244516905688608702844476485328756045529431874465854355132577359587384382790608998942361733147842592865859518010576243242606369468036363815361370056742404691126424556834872930375999139545312492612662474842279465381548639973892066510339333447324079202955955883385135964127457760421040960581628766171993141191670796911233145949726475714205616210403195339298330704653864171198944613784662064964751886831856723629587287455649716516151881235171303773544675799098629416163777461629204188563427052155811726940667855936907198734343970881947907826567564702302235281274604540348788323761507815399546338261785513524074092396708381023649225061584451671797295748688470159011916640354523310031403288755889395972423107763340887163783700972859763377879551118126600599506296759733112108669166860052546180133243505183178652075934443655577988928762588545021844689885273714523920957066807817189133677698380988996219840099288842192977884149989489360742709115378762599519085062240043263609165436222616789787519152277190508623795214052098077453976339636831103899252733739731943911494996440606405293649199997662463391603862695423249681836136536500168591893023588038411495170780723136132854242447724430462736543005561456320345508333802569142014521308375126769163506794845666914769650235825522852503696217238482679276638033998803415632471216247569581564523064177800090657848729212237173917446824820222035736450218845994771788749264746430242421256457679637442738639157371894647840399495963776495052193335130358264546624097201157951611196550128504792813084236361900808614040538742942083864709775120334687486878887555014598994397160388792141211029790585463949766042837283927070005973889241503638654261361886576820081134370208013293660120220372197123375655518516327337752311923307578431436788898048240726403623021859973839193748800453898286460372465457959816375405704148454671403270082754226868149074063845882977324520286296789570799844870842891489213216593318293690504292501081125215856345726051412895289820760310092233546951806942760882656726240442863557212923189322764585528484342145235373834260482440433122381595114087440755363456137386589421840665144311469090357793505663993389969596824252823770166006389683538409523806877822134567233129429859313435352314708521740620308276172714099242520953682830894607917978923313627162505773892024054129276312547976162020691461668021184386274644729097677240071858308211875477694582069572735150710523419929049859644147195771454244980141285170962996886013082773559143118063279463317474783909830190780194519150059573997626242053090130772563440728500015996414397753989123035973701703127722091843624365637277928347904746408882880713419682341362636931228725437197081103110001676373191968414083044419845357399674600606826076271176817681161818006317349460762742236330352536302539344672028378769975215156270096279621077212715520962465431211507746794119535399977114246574830435639146811762882671239094263784930162159101272968204040701241719570373969037304111677291168831228985448952233303530584386690512753849067404317296378685067968350953719466392716948041090800710650364297888005401729024246597091857966624205184267622738606580040874871940459555151733566357588452063266356309636844288916408109669852846384990972372992438176287693003007832599909263111490516449477002575427253467829507187541963428725351428005171933725759926561479290812788957226763478837958159641019629951079602415274368567004748765960393455458375132835317562445891542085189951859843054860312705124158758275570976859270748450557148799200973833180780759871863287708961701638337909864014242782617364863892871254417325226250773655621994199155951803872214977343223814926025586068220923874186488386904870021661775034438341476533905337878096626804556852704897722227258205924430296532204025269017563369996909909739029141860998772475862286397879363851113016389502394420117916203453195583623062709523703778293779777632244395498281631968295540587296057197047980315807675490057585442922804652601314214034195107664327949144104639677765338975932589906731463824953258903490579473449828713662248454876135786333291545634657905101805344296889089120146187668683285596396106935030764259521493049138826613631189703648002569153221036027040298891162835989781445432688530501155394996258603804115305756471586546328164975166652225562220602624339023543261844129413748936031250205631941579575637816147809817396202395185515979498143962324048865922518603214452648580051077558660820460208244566805134306146226475261212435828198724013239099219714563557900511331671570537679918499888637573004556100460820352872709344536948806692452036492793873289017419058549209934454573047036001741835496606702801390334746128376066362057985930002234570113409928416280134038712552782004143680503904461547366824775151570180661724791435818815712066814790768659223003270886859447223130892541692577264210953815533144905981267006291277295918848682563829877839059120248184289550352939076559970346837645227984287015134587533555283620495274941043417971644135869004770079414746211274750022592053160391146566942858350977065449822914882014671794252966048475671880617392978364183076821861829732106549305046588415316569226565418366902453040757136331573676459055208095016645564753947045605441814549730319282100537578790695485523880865463889258183504873416508858151124077246307999881833141808126627574560292871043099956062514556521039049252592735981948602778995810748751679583576890275833873461682072443740225709310021628682596612446956222800834917741635710018127626850648719595750205303925426914971127848103859105360655020271436653591168473081656935039123352740132546258132398931693266934702206929771095196919543730294835690622850929948054281173007095986073110682991757221268481463751386833951601979117013936987234853122814203420999390583677987277539208601860229985853037126438334545928260753515897645933731691105946333712091757402888091277683166265430757297210019909375983623074369420975902573455382214571747052792638667397309486907643016344126328319863779144213568140280658158492901717924553076607407569782282019971353531998829177659750993936127218863859877873713519907163328006925655535009380212539521110845373371094900861831666162305533094707248075564997516681608287869527778984542085264340141434901681511031604180296802596271803342385615334897073808496016620235414957678418313415044750864463102879988397839175106845556446354974110271396549161911886118694818274273889553521145446362461402187810910475428370179259471031992235109700827358885361542067097288693312875006621232269420635140426158220438110544582238939130870764940629392814126384992898138283167439664643378680400770466749602972892173718583038986196307405801657169582159613082856273081685519209490075092734555631600417366593701771318363485810197472390152264777949616984496885263303942347975198585287071743278684911268818215776302014646819034863772577916849948249354710431514143600118799592191715834302550631895220362854148522332327448238758823520304345257215906592170531497487678683656288528355998071299313059668848943231421437357711822898836847634233694825006705059577501936150217851292007289825581398936698557681443580020464169354200477198368524168363985920085966852223869674907240131908900834763197822390756404139802134114494916314834704174116591098770843519701590094082344103666141909529974835833943114837145449984479246108522231270390767158446827265947034217107189779784987391135222676764634898891479240424593365318821027229444095946789628206244655916861830175443540198581261314067806662088681138289014887950870126750633706355586689425070631771148187030172080060928054514123704081604672859689509505817639495875978577508939308323882330374392619484651299770069247792490381959170279805497865284832378149383609997557592440902358960366698726948369541649503761882902563510479957083856288918821202593343832212378138467843280057027015253808811530480779425911048656689223013727764649850250051213275960816133404707776205989145629313314314235948187760994879646135239715959420589319693422609063981062504778406529595442528833756104008296961766990989664480178045189852916599776224632524109803077592389366729859199004078773963825861024499595354861409815927655395409824044000145477847372245613080744053707165523039861600075354024329460361872686758256555357088988240828164287798662056974367890714097953983422466111741776151540049024552867199630433363538693629879895421927528348124826867833155247251728508973546248562341846537568755510514447521066017353573998524391792723660283783773465162925039676242148102833228873789947292590452841639823654042713106879804297808366014442987326727394230907642189989732329489681580466969873761062296422641402632549859183919715672841841337710721352339258282475353753840050653712978923088268255517786865202417454576480820468397756588926252885177998916796700906637377585704345989337361972980823531206443036234194987303043523734168511064063789271847490389222537564296150111131278047499205232693653171902055442913029611372603998256342743962348852809162707584848719627635665388643363570875188672166207724872335596344438608191648150696455358486723145860007126132574094096370263895431402302461683011577254761569025492465713498208842096709362866708361224077348960903651177861444691477690525956978967327108366181664778240945890679243804581965855045219190617169429362707450372776178371275866252901762874467727871318275062480924278531697998981591755208623501306082796887067533806260975134846719747401216664109714422572508515282029839588496848780810500573787467508067981533206108603590255782475591553305948839288715894655049426991588759111154547066770507483709114187245165657841026798071082756062271310023814751137728391294500130037607131204293408804822829185561223539926224583326947544492885673873872477966500909263332777017154055718255809173792106012144181983424498482913923743503386606572603204169308381042400074491210702809223298393061869363728434036807875737278996485160688250089305127895341009094114695447806572165319592380150971192262223549793591022828886726953928935571840931957265430640069034387686722251590305154998237106578537868421287232540319230201341916020105633801962049555977333411148010646278839390490039974314775828270940928013882487719502139702465469511695552586896252292039636184768232325851906625065579716771821490495833263150707658832150784164777265912198966350502154318280117176653358122249000883475901370304793198512749836493471712736678348938317622312735596416645941009370340326252915137388137572286723639445358563998793596761049997328701592524786034438805618444235479002030102397369149844107046285311995331642019890099615215563085990012214179366690481063750046230879325259409358626003931820025716713243219948590180179424187270199275560116572307495722450966373092667991718764053257205554856888361486245434072194230810256059292842130637649783693380805728480933243966107113850209943654959462465435696894988970944121104946708225802955861941606603522431308606797751076296843255496743751315092161647801462189835047229468474902915807202597457969616357593357099662929213813925301876204795228594664258200862198975901468724338210997092898345935385748533864008894425789841729707142362970153299667866734699260990923381666308184564376851110328702668123734908889058711002916262458992427493911455397272362526457188799307805050709846364478170632274048562813880942330719916269615781272435474444025139341753596320942655537346267638921904091170585966021488850710511208733806157709500062856136723008685149290326056096223969498064932186848561544992612718219199353275002035228456680795037900009044054219492882854177587779349323942523461997778134523404061045624510076735036273696539786283354410304098870923686552755671661960557579154757091813654883058510289145064042098171964021151824004815298999102811333517529113727349375127528381816724390426284724659243906967271840456999674139362137605001275517976654599487164416301617921301385448346215675639615511862514728783557257964524734897138310928019141646668728793440308610102957524620800126877047622177355283108823157538343634103491096433512974611364232066267895715483741693314791253316019054224484401943594030950067862033831095162722029132916768049899395188113556654072455551334925153705160337745396139083750969402582666045487196886768215551433953420746904564996012235582285341124129342811121307111031220197278062703791475401417105400510563427229293138639294940473416341422661809615354160776499023732689625590387549726466055447973998919164545704635216863189424406146495402351980835640736251783174454591445526437376075392241754230579629141691841934764815053865051686326643908165568568594187611939773894791682100630771877677406444274219376622920672894522289317273295904242048616594479973427186002517073921793856839889730503773577106986251815445114476456155721661404857804701794548634260094925362585078717951240053518460189311743372571207744777872633313669321952351671436847596629714918523715799340618197549205574189372883332412764853701734186170802767542198779141065307653822408551609872953142532562186478925811124860617407861129184153385509838091810074170814010909601120343276407535045785008494417418806753317630348457220139338524219966305298237718192656058487428170846144276845981432486926294601109490571255023010506911149811651334601925571564450110069412306251862904071905486710845144989546117174090682222938382330400627098862263648738540382480456220895606625873634445759147361996759787628684047791519263165634468482643518636235410002972795411597077312573802359149790565342543005714158088625785528945881863360864858638368519503747350017416736933943880905841038474212017947094614033228981098034606564102908074090278679990097443985448106367511878275558569727306660837961060628949059657756336528885094832171232283714128967778602826091928489439130841954449951896110093768086264758711649946096907961442259938719698036638034970838947022638491008493822039759914372444746146994969127641564074060149055283460440436100223409699573152544292309678514721646983785454593630861165856373120830012095839958170503959841052096787863552224136390348248544336285924217819972205572350609441329546852945450452345857002472905041844130991218230480553646821160226581467018364762251053253344203284345689314669807895697739431163449807285897421028397150639107126063130618416053047792728081884541588960252634696404844342058757021309944139290932210512688060389081394459678232824851027666767995513944998361007125518535430654321677918735414958456377015475241818813861702999226243368498839937701506031549181509013742451700637181931132477131403918789878715587254218153444126959058536856748008175739319181514175399525955010963290939502465958612866111349821437064518204284631512863319817451100929510764913511062456688017292842314560517415146679468398611313338739451502093672122743798346297722009162340700699065320004225707427394225826040965012574731950225060756054805949268397450034777662645716863076336383699701308524771132939505308353526432792072621579265044925586626320626207156572374534053920631349624429654330072313310733102080726275994779114178064332838263421445713551825193198216303287701039303457526477113652831668709658037946719289931522843692022841231909449842511520722115538052580076726467434792270989298148011617091651863280123997312183147887058706923565515769982221058264741248533827990589897717145577680187361039456466279393291691765924717549899703423730188627044103829724123656610536181574827342174269837275421765453488206354165129748850967395223631738103095184311073432199238078938725926615563338804270986814457558016408298286842209706641439709448230489548041500951483338969926962576934107588551442495754007716835391630245111373947307299718274754977852872131984769597099834316469332430387491851880620243720560419962511350524188155850350050940777204220667210982073967854616611902642574040460932346282112490721851001327679858979356021520527075511023226160736719925936359257841429640160766088397775401932920280646106773651453542470877641107614784382174304159064759198177840478596152684284931878503318681605742261003995647576126690839043455541831027885656505528554812153464451700912293451375062502721692037743211203678304941843772100712637596644040109776527042487070515999167674729871857837218649749711552604267458177941031302755762251090170284056082386396541797301798600842561224084515331001115977283369201333539019837606079355486884330401720681442627576682352357179620870877146565083440692336356577453096422645352959038573892648897726425274021960473993058317783471788946224946543826204714385206764692876936812403299756411399122610118210471387210877025782209603196765203634845833413948624226233821137175450294862893843387380749218677073055469283463438800547800568151755140211711024623361975026013548098592776407021317446101797178080035194838760851661568819452551249673271080644173659071769626679875212710911216349827243443815978234525225946594327527423338723140806112706751939773602047223966620352448270493271092886668781500288973151822013745456688986856005797910591722899605831864911799037000175557434273210086244446326997498140605590811762123150589229316409191845575672630816990343078933967719299061434484661801939153853108716770175557062040667820989808367204122531709967133996109200210604963284742799361243697845949449491648753475896911652288217769727445549466932452183989905029755227141888784073593584121499421109172162317853254380915948772306246721936549654103284091044554910074881103629082862941567199680470548575628909770894528954026159953123787431470473355422322803873176767401552825611707640457841060033549741972850065604909019084558383818891334260845105350071371956043126654099948728165275389539263092407694157743742205979093361544487079090183322610728875092072468753206355038008354399581009489178207390141914355340418327267828803319263566192703791000217343565902475871255035242357904980650554276025432932864612416043791388328055879717001346619919073952345926921526649389941940134993738268228007156421707846846391152126059722765449500281434155001417646324018145821211647088937647493530640286742118896820271227118793484809285940451095183434309969808720997744198165364659917670051527152961881596058075932340789893940358579927257958968099238595577179727299135196087441642683486723035229504673187352410211108420906261598531467693069564491072988862999881821614626386212923865673477109773220940902039808561310391337704081766895644422976620926345418054871975881455527002094563739944763362072229969270663922191494225969977568563371972454410566794180434489410941994519953386140544626203438120326277158314387789335489833432751816549279054398825866850382652626546869967424632644985143457458680649887589443302873262190198414444951609224215890579147801479362796591052378397174686798156314315286841788243366810372619359174328892655317484876707084887800548520933848925404733822908235302824469513678112701376475420302783006303168657414498607692585713243634250505573677973639335158248748632880465624872133960508945774967810107489796076024065534982729552769652621172892850323041270022530370660086605003957544230780849524645189695387039841289314188648111463595316234640281692646620521634570888641639198559855437642186378370511767704700873608721572045447476491780920670077174921893591316411123599622188554972052960577765842742598372150139915184247511115511223091610749465096365854725167603692307552189260311782304669632186770519955081995256932629744674394829687640499369804299756671655817031429868233078427328215604475722839675863838101596582563022629387115120465873754996430816384113276199698199934003564805711430499007135193586451390283113515057625139596445843070675117915770830491216307527223356991675616832378442924472624314027868965906491032464943332894917595414983245732009908200612062204368667319050124113948399671782421986449008910218477783302728933773703986605628543059856686124239057681244888288291714098564984852439580399245971578613481523033364383748219514472531819095070503969277980898271531757967079191855453459759794166573486500719924327522028126003461834664297740855783746508940867808937745303980792888146926476627189889450030253324030058435895065990107708510552392737472972355075100194724154119443911280881182712240658535662388113230493908977916257229334663623294516128315158824565173304942428750677178571564284977289001705761096559315761851219690991287280885576940721605029221501791543151593625365456283939756795996114246436945255568338735443206312179626867987073806672834373979299211773305139315842111900452300256047835614438005253417119664261803854009002968434040196819461997967989710918900571792304247196005161906186585117238549707146192996326441632563942310755096728203179525324631478384363741103337461997173352413278432796159009735668224434640674291348265644420473897262775965913840314958203165629961905394653793804946858530840862036387401626392253601176679875069059656928583277951145683162373819048596705167170648800076517705715222797417227823167966749320823473542093742678261092041724969590143641941873736905192196034571166071948759023332291801902896140534333932443003227186152384375841913700570904139548453036147610431234223506981910353131173927731504451129617228469367546238936177594097244477408042327095703472071345571091060873514954393284836252168651483717841870937851800791072062154674129165066511591363320850481919632733344003499486700017809162244300531986626853895659571450872698057253267011911986178346922622861878797227272175956661130058533658013285906151210284194604168847249529707883647323282650633182563567373066165810505376772406404920407322355297540943505878230935483042591008861147611612306072910931195945464608135849884936658476609004307811976582053251849168401285733466497879486606803648934252406099772581370869154729593625177666851254299514801685001357178995255354731655545555601773019418871426609013398914485464313086521064200185617512264960989783553258290490586239214530720203777461681440058570103152743196494836417032629525302178456852072428356829524260422736382532226334928450618119537240712869927652678797770412801294069800663261517641085297063463293578269048108518917923662494105723676916986275542317770664706171824356641066681892628846701969211667370880053635715995837388491198879490691993212131398198429468526709872383455965099539086510594946747109061869264309641644872139590327938485752679162296061111559617394089044264132140316727529036887826725119168598470731483795503016739181684356516342182957791023724820685475641629296604687009965799248665306416547488805345739255631854856457697584554495166323844496516914520448645373019795266315796461304927871500959726542233679750307579151569659371863831649232633844025315052543896754512089966775009878747731543498558297837321154477588806538554521723634252746257386951736634366346810625285516158695905580895113948720508405866970560656318525021921827212703948338798827068109243290165044247988265213349351138822020863118246936033512904657919591996717602497342761150638081727774220046417058052217519389502006122847264715683408739774343766506335033357725193003587598480903953787157326400503463347312734498584963120177033102185108923246773858808624279848208263324265575011258234032547660018256192653673266916997365352512621012419392936418016369633078402145267801034317979950955536414714764460592887679628321269830414028045840211746679855866415420361725975795125593990853258625678764367371282934946402972537413094317147958069422730172944166167467124629886245386545811864567661945569350137877044567337804086843818047182978973665149524379279879607936933592507186097168641173285258756733351230065778964328279422958579815697089336469207367519188868063495682276634955412382756813774912072380388219752775812919763108519238726931107830709862610302239933613532449822930772250631631202596558336094032213633779131093567231775650863996052704217559369543825867299535649826533289354541354029146440691018169652306352051221333089470277057787442639718177107791341381606285553832285432466504301129564057263685808679569156767799816725565543329123065407647079745692400409897643617877776877632106551754384517574334314040460105049806483481010646195495584573603137445297033851794620263323588578012444891965536506964512483956101339392833641867221324578818425792916912285245923228478245639981987359616951251000373632880536902292486434063462061902819190527701009950616094237630406054054672925149608007481088814020919980564597374930521502145895541767777522306967755952261280885058236005840679059681272352789110370749125756280184534576372811790658090523685731623774176970040084157814872225593329896062377268939417543995390169991054953523762300198354610211478451271939642876526325242734710535100987687427760665382631342563707853004187259445656515074818602795707330919768473901346671259409840052392785367341741924766526096648408030245571354467925629940603500992266501601330673074418509760526589255081500255158245959691805886989349710386533409169898342012822841281601435715003551146054026481752695564059009459714559717544912495213489885982112302827600463793491818175092799929316306072976017664312373267998169718769661723551927398419848030884064582847450506316013518976675244326160851487558120581701861393487379149324022776478668272172813032639801736618076808447919184135769063474933901236353485781529895259348772004511284687574059270734330531328079658974870465463170876314093324698972618747980124829099270735286360351155750626282985939810953756899660985791294813115447917551832912416753682542922245286098296330044808922030343780933631175067461257683070836642629445822341405067331725555056842098605092381905523165302535062932918318868097014009006443993799789715276781530171839245076598657700861699229986684007152408964217709809261342090482775045145973221012699128322702394942738097285325928750071019781690088690753873689371408626777319938635159389443062219879836642589536835337840574006098076769190507228722528420862985210359697477145295424940608445243069909684408524768543653885551269964157566332574691540124957637414240898679867815760629966896955692076598965124129788728999322251886209871686300580591949160841195958021006599508349088757897768502917079792170718260410696115034330424291752023074475210181950986912532498791198737377565847345524744748209407817470842245608902353941249541027151270893458301549538156479842009241369276106690892029295976976674227862865191501018989292609692248733077053907568336078054611398698354891020510100710710384573863815792454361562276469019969788832141371292862183107795696324393931322174965386107981365232970448802792424911654706019627807278378149834274564963394496165892996169993171050627128776387522111439126386033096556926191605403188462839140797971826451927309607963107183806041273104300598361025408744543707484694501948352282207680261608020990731306939888028540064934851903050525498866639545708360060316746248060535405052866396321705193082167864043274558677359875619667639681975935601931615047098098550368271565101778920725150717443254830880342743168189572925092481947717895389740064181902722478412375685333414405501037554383346200892070147919873020358679133766534239415633534845257075015581013097646609786803361579258121880367833528179360085569582549094864692000665537460788747867380740086031677163843866789373690657297571232113713032279010662033686357792073592731292380237285390018603583261931853330726353463365133963912047057344365854821739545618246442962998214404017213075880281130504082060764993736371799238036302342062859564435393759726911424234731266169725621661203680718217497505835082568294065427150552131477520413955572195565400871666256610162812851597425909802885924218308158617143928939930277344781462207600384010623563331155110278441303383846977978269323183418091397306528409050178645817021456717131640071729307563888644800225789364859814217419126457940303168381096602583559425664873583831415222728765526167316180623991029299165007353039728432959980037989881984818516858203591949557222869878443489690741773878481301832093876484542530274374142175791022527580733977607946659287859483330265984755622607003200080463276234613792077437166494415003922609314039505451639282140312958437261393481198753845712649425490150624276742346072940752255684777048382233345845931363061334674280575158799518586999193856934188944011823430112406278034801364441263615732792318561061549081731875683645426782872082640796896258516036089143468334405184925545194463795248851881815957842231758409275660619098692756787483303251578621428408020405484229866817245182015081852670849670058515021959434969507931149520870977277305725777144756612511582546382768578023982149091256856131955167279263145975638372709689864585591095947580405289041488040493666702242452152184455452184196035144320747871307244297745487032578955648355121971023905358267453641621755048123804120856959886611651867390059113401598318166370494839429857679416351626065649568600790152167605135072714686144865103130668354640671619102690057423615364586921382666918363524514524100034490390307683315717464438493981051556359756881924578008327394491142238515802896350257777767342187145523813970384809040371926455363360868225068387048295785483925514411992954211368071467834329622725999665677283192603024002665781683613258527936116066520462212595131742796694388570782038776769663391205869766343305393027678904428964724368733217914716460945390347617635463547238232622652767103163189678086866964457698678517897133697187516364163377647211401605779498328136104215588939509883256403797044035114700881689270319138721971981836450433133195100567008222613551524894023007757890942116928938371961741977395802481438093954947070035243485064788395173550222214821035978638133223663694507929773039626992645097601613143184876350789673769368168064796870883872134908388006355285376159809529524768361407232683823353762670621405102209083286258816744636581273775292163436364574024949959744570201753410301220115592672479395557468207234002219287554443311486231221094574435154624990082839775847697761538188569640076995946416592671449341005128247067364144479212738243820215687372196526078064301548029530383983582684759583239617069535759030409626573517284564261345561693500031879160531122481945631117466385196071711330428073043465842862590168790456589222288271110792789256424394444304992368637151197083080304319716742427062875911858658838990304083023263427257429587204338433059800791534658245505393365411600451271038926524335641260436134780503964696482091583048010025794417915464521964106325477882127530893439108359088166201427694032197802023558381767587743810638007549723964070475006230332226186526708465823795946073753389520148290563608742557954179443335101743134525373272917333325432150433762928827944240206188526162944907812939518005477308295434808164930604542127889457680822967334881905048556874220585363642723827721651240795284592864249195539802744778533371200456987886683166992766412284060625402984694638093372069793647064643366605858828097634013859431377576550268188900527814546375934069526142424658842090369845032563385651496141942677254113023862417021029076779728554360836273798741630308668961503948727999949238301992594445060656037021599430234173901824138650187664359088312836428637904929301204854419749809121132876728717362972139107108559488400498527531758074389052871486863121732887836961001516261043117775184788031018722409495946936986412612036725875215511098972637203410460576208755662164823741550229428902972837554249822853585517908757296389402764646469299206983740084717343641257495725877425569151000388019217318978000375900692498994586775687704689586017028414351583739120386756220145343671655044792843759248376549971936248487669563839450129916801616340850910322062979152252111439149572433204553437048876292200680146676271004415148499788792090634578819968166266363774914017690922160657818894083229732508279701566614267602206577482087132409913375523226988211665700492335624418348716877925232921049297442531198277495922170271208348960544880430312119726657341938684237462917281143825169950405902216015300130091708065315153277814243332289443128296791608441141035103126197529364633974322473866688560714273126554818901856514501998498665480991405693342225521763110686010397064832306964959685660332394340727900764823514338126489762290585689917360032675179599968602905545482695581574431112077998473330218500357410187435961881410493609610290493035023130965912109450024503616637405676630027512627654681946408139483202935991337095415071733359082737895878027155164300302529895006591888478443627022658012357297834538059495324353622727186351947924331829453483533472079820617243020670366284937075570728324672234116853858683893815497825482605334212972400795424999406679608430556415539060549633810901670453191649402736212408971245364037117811759738982025047970691496765946601536449085395513440646269029934841473639702711224707718859556671859884931652819546844386224948281436023471931552028508088026129979499281317670987513418385152119463071511215319348673851172225507856783088994423624515213467398220809036199649675693303235706741175957598292925775887819293378214162635704529473841149864161383269457163801409740553541817393123757567994460441342258988468534545601958468612255960339494347189846385577425312820043723458070414633843517137217571352309795735024257216599117733952382562569489263262677528627554402278383802482457537846290233090849830254860144796855318896266720289917618006218809238784063066577786630158566503651767530849464657943756835454383537993082444486969326622542200913980537366299330828804276246788800830025800167976174650503253728581853217986584092333115048748835423486471043477535358574585644965170828488039705516308347695291105069956770663084398949317745747008461858582340231968694418209955907963070360047014462647481185154988283232298089255872885193400137085030951411080104368986437940536402587753519317026834539333115374478873983953604062423716885560608649025529044682842899950924953116610875292431362250818964067485870001480840630865936124291101055415469118851050999740541852337836501343978453894274516418291812071830591680652906623302066663177945586286033599193809766290150114992862763841677195253586539283445637223560424308904307519639380770641866550922349351672090625222006168150981054622240989491293108479967638572224375552810825277320346604219034995895497549467911200009531259948213935957660137876283541607010677447141433402303670169242516075482047977545357907192468219133171005863069842076511492096364466320340728971520960013330845281084764938620352047896113777673505279841708997540404844725104463696203432471124826733761360477961192499319638105003651194075961429207837048043491768349926932689653360863276893819063306887324633362126582539581560163269610412662703330457141546036327982030728061147074754135616321786980861554865676824019460425256044053582147601896911273527920903250351036649735789224100918839728563601612823615814075790566931116274004950139769718977484797681993141533265672955687496981223667573007457047116186710986176920904933979463645756789766492205359219941851172964314385209589951056763094237132580946477496719730995938993982330730688735923713175820562145887783779070036903230929535934181490042358036111933665925790806309039107978126768306250601282884563842766360959308705868064923272890721411530834419772405576490063257317045500670069267117191168286275477584677667513665144174605504816220514512537793041609140680871563157172405898697425058117879457726618907711463652714639217865942708641676790716792195661934558333542972836707896958733134244892137464588796103507019959257577168716399894699419434610447070217375487853276690436937503730659825725936288493716004765795651095220069279207378661837259797766746722047628713581149384948016473920201608689096986530368217485674734149857704030499880495777803939635404319403568980153202305976259391219034642252238458200254138704834318443331938197805913112577929881872988390761000525652855479537408266174220193515805321129996294584001421028294941118578066811195712073494047782526651449873344353375643206616117651899575650226150219361860923487577181082863410040339850865699485508455168073371229287219297614959871277668828508440020890408069347883857663875593627126142336779806588980398493740663704760150862317045742516892423451336630350635633792888555961698953477083030162544615086174183672628931203588244024996479676014027994854000371782060980274039187299820696624204101817314867163203361789244452971121830109337811192590482683666420233040569008471698871074022476828726116220945451262987517026763144350787455578912068495109532999677438066754790105421531655176994204728246111901585657538481698055060829006481428589690274598961073900979111926420520609130948470490680730201230063866944844483069884647917779503935417995216532490363860378326656760313526027295116078284445416110175126416829054432227265479354946410410924716179006135906863027496954226189356566039197484474443227081789791446871331044090519730024756636905236250653111623454020776174206130686927271905284298949559386681961494593389351202252266816974137064912854644704808033560047640159844634631342135882967497829900453494156591196423385954653588620940546163450500838288669059412768818562431297090493335470925034057063792291566310227981040149471468937905361911722152779985346226481521705780679922937818371054563524083099889793736088181063706927614798047006087735408330169521421952487765592229580016994521021694393218572372971578007184282307918378630618361579982921182459012901913230235476009271878380117180204080276763164504069313115050912057141150456847739485237220182476729182723900967115892593747764607611022014264456222882615072248528495467174666246807765718043220213588776351508713622630034804535691428084865409524180617677124455228120483921144993398893121553527280543194251489628174974547404981170992382463895299205276443771094019555890007909209794523867581834395929770647715743288880596958257839856113775051810106003892337653819933271310234033776025620723762421676363407495078913729562237789667039156836370410352529439425758285353922669220984762347263305165101775355798935942128262340610439013645435915341544197030758246279719756169242202184323000626968997725806535229977745441609291575404576733665818542025074884937450471613935277274963797056673353871887204172895383406058083729703123392785191417299065514927680708534409157188267573007529704351842582689607698448909896666698519291560779747970460618974641169329159773044698492234923231651604756677343785677237394323070430089512716909573716711292073083334347021128842511073832245176882326871660001093287011350040673413094861134565955295842919080589400782735723573678063233050736137353211448913372435809227290972049157221832130932632479736067566817569945837951449303913803761988742152939577185098969332370291434154900319713013097456379450884385767723916860637420506019561315364044933247027654656706695081739662636234845884812855454174219911010154937118649741689317327488278593680878970304393812765586226217255358298003670907796530773170563911087212632020610800811610110826884118053821482816984095853237148754529281958614606503679000721468002538850352086413668031646751206150085567417492891547204745344273158025654703302867898233167255996637971831238793333368481651035692523345995997842895831400556108901894875431929023271931549477040068544859910604016562518359592008392639043983507073613609278174058150243077642722586930842613131199438554636865840281670350888061167236993273637525405559022174500370721264638097033899728039877706260445075656971196186051292606637496858696015438364540669041725117009696035596724301130715916875158198429211859459937450549365802171370487180764704276328365528875019564400231773004102144225298250488337168915316737019382970198058106631550429149993097128732741415802617408923369240046507327840510436083240386065685246608585891725375821576779883438923403271525904529322455045529883070064259288510213156661662992949910179322148046221124438554988386962927407306294000460746533250530527312348228889014761078612839661061865732306650343006714082563666814908665538585375023221807520332923356540532669073203609356005588294771082810683297333827857803870557302238870332666378905774605174317959416182947951024692242901600245503954104230922504010907666191317684111439182189227429041894028246136180591767135391958567083361637282470236709774944151963506148529217280228857775445525361192564362894601554084284546959882543573412649935715110456122748843655951919381661867596416857004714091008688898727663060068877152306457846308985813353718925941685360093352314027171538288080302093566134897781642989526254282877911979342558156711781920504219169457829127968832734469212099333414401083426640483920556178318299487276576412141883051333393137788805272320364038332266216098148992845868464749815254077696536956247628523080239845071084648188694524381102824480472844661817225115529100011989328587056201505907486651092641120965934568085367215778794567858968665768247527121242571470698331075979772327720610391613788942072992185536186910774886609677554921735549541214312462296772418954643366176347835325025795886776285152142207015012569417819201307543976489309092316665347877229467517707567163239391592284670175908565874272190709999695524216679656339344345403860047389316765254571446077604997045003866718457251549771972876172454758039895318209252943711993092370715542970682750096888051394248836526178912446607369739101371192286492762386845902415077048945200886088454335645369067774892600745235410414979804367748072651081763676380804446088485508537393379068533950337649681079090755033777024854798934390427744542802319424676471102023033536715940464642848641627905394875633132657955727101175284945518574529607448689784859361033191066726419772553093246427657186190042320848958732182104372056576900183342884131982238855880899103786624368877987696676217231177296780426531198098407724724182180801796029995824124928387799779285825895239955176329644761887473958972926090594119766729852980339922081737976033896138374068383169026450700385517994055126945979626681845828282819607310720640017717306299527569841361653334546178811286238945890863507838250904496449761403608675200521873129938293583344942153763295496900140173966473466820244140508573235239212567542703558518730871631565521799662180476399685161303075134371938923119954977820678966122709308335129389359867735301458682405984936739230026581632370851638197142330286764898310559255572818626423553631787879941702003161704859137010223487411294935522057298971471591301652721585720199176812279999517240746523790443253025579719012992678605632148127613094522483412475628222398167273862695230116791658240998079873502062119180153867158260306827751540929727851461422101313038563605409601453154583101878896523560057352102416818771381621040171491632508696043038909028505280831503022372823104154681410078333944711046648548303940412846480756469005010998065860328825664829363198404684698035395661722770424665365432470189355938722443229443726120736924022850624211228374230786425853130133597844099475912504884724818577077890552716839206752753743278170043612829179527602247552979828631163306922588461594809991479253282296031635592473462386839379625021463341894624820329147505819426753789798486194037646154860437548480870834049749788639216562847221169038663289402889144851336642909898475683792936997176432736119250370651333512171752890571024988425729334917205653797642769382088308470782683539641487444178084539274195836744632570782479354818160513512780823349029209592588403548844963387595648650869601869147429719404906839827728352730542927511829006223962083919719383582208167365199900932544919569960355928105510160958396292805757441772745397003847383315234215643417150240537962835010678308162910776099074137466631653554759833787413869563040210405891965352489997659248466116466334986053913050854648710438201663034029695128874456164529472351360438697868860877952627430466045597205532628150014708650028991174888124793968276773828956565879063582498944165435533241591374399829137145615983790569174141081547052665976836306801138720571618147214287968016892309644938946713027343816576352806987695155753565607314862164730535608094576731698549205857170191156688059513464532170379577486479519023958938559831180541898385155467334405464165214375682909908456881906210706941777795554612681230407200882687264414283006688332701900633135316309586811021129080406839075537488495785709046192784814057895505127800215951808924743088855933919227477211261624749979324525016718336928603801552466179255464445311927987076812080517968600653975161488494116428534152653580060901813537526145881730587325363903704667778462775316625935107161780545394866917563351172690765715832666863194998984866054476061583787515833484612479240444874019041904919879541458967018180559353546876958116662453434678502753791046141475414790506191000806686818510168794618352875394033956894037768748405647469555020981255949234581972770445358462407743457478316425054204413395191621250218610998832962456077109119307867648759731807605235752432956077101398466353332728554351608802052948580070204108158824480960735218829548744384094558351911571206863849113299422840563352634205610064256440799489774997117965541476497342223995933646036856975744516060028453784357643073359675545072073237330426923587889288313882698833858897324674603263155689858468578837274390488870288386569980533941777671405601663249358722737858304619553439700082102559782140698368448491616763679228677706458998737690851345827358802676747607796403924447170820470693024657738573060627893249450595068474264144003796598511582197641315209818403048700860533608501568691458527730396613315088700848804231622344936983899409583436982234371947943351723909353096818472563058657479720553675271523991863676416050257270970695798237147574087041756827165539215794771364209931826510744224562465454452891420519638824443227883281643786784013182550267106829908062172524543248079936658755908319119445003000383721955735371060835845165472919861814047632508858852018542924488758961308562018087241924958146424172517835528675630422176810927169834293619733562237056065034492276170813618665588988809455260767666386492097231355192824342739952149346270978371394757933889860968264785693754069499682164433978345873051592959237967562639384114365395539563392294916117534411031901771059581580784803726763782699574720613084898163095246992077241873683088224532405968486258310511610490386198817782419410637963236794014326402303589685140198132847873585221325203802875944319754072295857451723168879142480126653530681815305618658903508879730502493561568022733130845740688977661215304970182562576146416985427102133628451272166654069760509253780097333725183257737191961008663837760101086587901071710422734928036697983855789145343215520223341242856140963127395748708777213736674229486436641609864132340201782689343224975788070249132135930204927765536482880983705194914861865938635545473129842165515161149127404905288212814473175564388307249472150965586283796502487235375584304556524703876307399678163375370435728036569202232423922254791790936894852120555975725256152074500401622877858277665204333787733895450974018357082151404173690630578888660937516486878539985652038653713155597746432496171659421955972817139057998622829462697598884995905278420522532584271401125460997877250385225114853675567375247614045927392187746713656850288207927305877936791199765092337336959200974730535332157111400851013276244005491626875380928427206718080809748226610024406031727999919029006658405686727090204245836525664680894057029489516684611813770090660492073889077239529630677455732980239098613387784809259064740054167873485203404608619325969194996427357292870909361792076538669842055247174197646291438281382943818679454750525321613807021395348018461990422227402532393672934039333652101257774051665883250737769688546521701734944647932718006536958000892200189649442003351455177387465725823720826238210013225084098824785243093828854455241104156702308290598000303460712427515250087333957767181073130445122439303836188677654678673852480448058249755437564214583761086026806482405379468594357154730157636202147431618516621988488559937889906593989440615242899380740994710823504156676896613800554398850016996876740108498045694281872711217807761154401713640978091158933458270842453865564822693188740575986678697641502385273842805027648216802343234489342504391920000580903986123857618536477044411292882959375500030654061614519836199998251307455378814472358581480324501976426940106958413490691398810260558472209526770246874677018040138975921066540108809005450001034225746477523623376265432733760560749490696780339466765679407711270708596776245166948240849557534723072009498176074198621381140600997834093384668112691446740793428544006668258821284615439772655069557752703963549221532664366134963213910367618292100024379812610761454219335860879030538984464429504737531432241737555402397279849944108593682687167596208239786574319864327240275924586690164195960665379922615465202423136030218462523349674259515260618143995483667865567892722406049108925554051094368907008183173482040331487567201401705222452333344346597064500925413716702763209519526235712889488937073264507111091513761702211368024197310193475333663453707914239825171915186766986867196715426385216769159027294083113939580711828542957806490897596777769900887964271349469295094543402233495246422892330334232180086524977647900641551725116164375629798295308139631089446397589917156811488000273618333912157612905589404876132386303209937341617237618538253020665197637310954436671117042965045862944630191908149162232835955785625860426253058497328617725676493737337549867127434215700936892506100439383043430371222164346171510927590863304363102832772046877763059580405268588881034566887620062505969500691317385513248684956127226576826009196591705672597293948901419985581847942907184228809016125284179424221510972964768287222321456459506022580098306957563517796039534613210215960201942063551279088259229245380970111636235420582821305769286742730676668476096390668234789184490754419058025437866598557317827151724985253712060630291618555689091830542777335297637081141256068640658559946908858160473067324846204061942077031262019704964333158134698218355969480623930528610698093908541688059202703987328343744737873238138156999814200597225350384367321527606570137304547508070158412411090447629493515485383782270456714815340280808953932460640925008723056215508760672358099919703030087124180787889781099355186804697787349030683177147305270752510040828133121842081931711455814356191616518104045924148868808338381956016312883776320602323630285012341672582658723251680977447780150838969075746382592710985985637227883533999409609662343415907436117184255534911676454112867129285670719518672565100385977227995618787060723507514676667747354319337483878474467829225272399333500988010622754445723209788574283133267284452870477475008899040837725388828123810547817838288805617302396240975992198812975666413752409297871934699369554941561879008465715554803980274094107920404394837773600370558594263478075730920273537169982549203348818531028754270252241682725673765420161254945137045599973361275579788758510489517186869957852646931407707297732944209372688759732696012204201351723954307489487507127434882954655977840625359765944300567370552659504974379735076887119393074780842350080413370884847225317557038505401335814795985570036162315297185100760665666067571736870926712794709714261414366440823094698041908554599890231653239433218799742791053670249494288057606626394724055066966837180372037338283117703747530686493939381490047263157874151724135573626274384789700757015456645628514964420579772605763887365260347646134786670321737677413530137631357308477385317463326130551562124738921479429230866585574099231294815247515904206230210851086179630988113584182256450896477580857603897406258639934218479353173704839806969733371265869872229167336228645946407824529777684936190706264747944607142049800889714821484560572667376250813188404134634156510160052153672690612616751363012521919807701049642924653213355437544790666814674946626975826458189815523404092530002938894158664683724935489391990113883230173757639676415379954118988356672758508198968677156066460276452447408465449834897931684633545851253177677312535121283508493912142630202988081605234711659616463056811229511164298829868634197071541836575663431242189274397564518533671573451297998722453203686229781388921616508862073909009316211591689793300871025700980586909528033341165893540343364496046313668945853753485932617822393394858229108065530356632277093148532345550167875020694001344731642855601327313043596480439555409908622353629979817145109228301807698754716061891170673096246591517656899844425116677417306745525860614828815291057742093703005228566972944675994572329336151059051747682778850735581493841800452397293815742881027722904269075559677391085590129956108028395271279597503273852043325600355334547152513014870157204712041178386434623458770946767339430402156696100550118928331030661709079050384088995172568733872617420413338557348182527092457930262348896792950075850785194926756450349075497330508242765431588014712264188132143311129730045968425307314335588852599308292703888959839231244252691932943235621141335969899344710915929193144969092413347401819518904102822914897086145812542081915890609363370679784556980444283775282503737382104064594440606312171603159209770862212905706977125863828052926849101624636954597270039545264133473354222613897785761644884929179142845285053889026831226845051667622901528863572656706550369654690306304565272260310508159322251791251487514386107587963249877374521688745686764215913853067670872402415393643448117404831447953747007414271162255477435043691980657322271652528655324683954333616796097229878801953455864691118260389190966740948551068896631280274287161228117148075927581528619054125422577851461864071319178972704381379287849862888654374129863979965721000809055311068256183889926090796135497618506661532752688781915437988464730393978652204512613905238219345442707116362710236236735116758985554918691648970613048629056975171982923923120009973942838464035992981754546326164423239576245682403217683297791185709923253035782107223609710840318976927470325770541945508916145375956073567260536988145569213756830494067912239695834415760582485750283630374996446759057494264528853992025949164263231738684557014309090629200001573259953865997261829438043492833659601335765880440748372099827052312321180076698809202557272530871949981964239943397127201641694437906729964277559786789430266658544835916268832627567537984078188852596952007575833944739813349009230371538581217270551903689280718917101278572610715143346463885133985667929993750748394690080063816889006288347441615536761055866004959630376995196193454149389671315158125066120781784100359169645453887595484415322965555579457845981518027242259190766984576056876309239496378599444696000785538634022199198054013545045225231822544020392729646321737812709774587252203947274405629360859285313758440606234339177474183371097365361656815631617328592201124591451890680621224500322523686436519681289605282990726881579867219087635030676855574373093408087435521781936990750763156714758707011458285913276798455668571361096396906418022402123926451182221775341304438587503250693698319778198144338172888968059164958674640862229040322354356427659915656793583032816333880530990412394181186441138170169441096269373964276934864789737767271549776017246397741541583003222159786707683828483268689905561200372156732325302106046563460727192441086333056935519012937163217899228428827668966538384877484041839350125816202530440557836896524345611760257947925396361904098184250120186876358100755910846516454053520986141961008579881945250441036461133094723665123461011769896112541213810743282240425016925855621039418802961995506164930337646771762229565946845222411333620326756851855387956298888087908369438088627177244409510650595019472672975458658716117698950355926331872884364696616870297609062159461432581403634131361310426657605003491049714760826066608625852563107541593871928328023580384261494698744912030222727086133238128811818635112181523063439053058465956413705316001490587794322240148661359783023021266903584275075407253481196821584661318529158419185708155186246427999874353625740805898373329453382228223685689204548939064589431181471330917506274166201217733679591823277064369046956897910240850439520383535666317167105661931387529889909198557298469878029731721911387198575342579996372324791524305457688642931435225850145793257497628337374412813073834088178959008579874784691850838873212226875998262452177664379558547179374609863944794613050125651995710342934324731211547637915349258469089314356189724100156153989994331266877157224457736266057348376966519868693552802993181081557598044293458244950805919226985547695298534966568564024046994605508813403213895257125004414927864226405565508114243976745784209573471149983358473760111707045019885007483425624077580645254755717405167823145022950796798965060114940779522345286191934248985046896157608120271792209043959072333440292549185860721064917167701434454369533336146033324987770842320472683222410801770628420566064171857592926810665182619896299713987012623525066549697134609434594361166529104525654246504327577513069021498633286477510019239040225414109796871898999753194548309142369084065095886092214019038363969968604225512360976115245269246642215735123656934900412269344297931935757216657930294472815479660583005445198476046795195919011159524724900927550066339767542440348710725343800947762734877604083478787472106445029055315600632118676369040408358650369104955913348533210741980838519661787755022266637102890801973522208771591962483059319602758298020798489304878487812681368277234537010736863776637523600158480808861572039413114842455497475835050145685031761597243034871730657140278206713332946657558520038520408681976179954591012334783747529753951435667724671460037641064258612188504643343228011439563042753401952843400214527747586613276516558276694112625990194069233901168833454321664553196924654499662384636212412916489969282380268648225777239359857493793550432336286126747661026579297601670801106160061628583180914848152425908184453539031218480526481727851676584674081287745446723183452332816198444813702016278222558527178437575151589247311108188634136050998216602886549566341557468908089006192781755921649566436627985975087396945454270541334445774505960108511509264179205766981386663740777556110528237968502593753606558740701333958511457083532461074190428800973321918559941969609913376989082042970070672304073291963350975886142818656785372066640374224926939045650563252106467360505320767362091215634488580736762487813925192527173027922354576298738632691761755256701427979458317886741090076076044995917764741476484689360898713277766885639241016980800834348595243266895154531976941884278420478276586036224517196857789859948978495168112510178316349317636700094296560638927421833820680881359881194086628008239995858213183011710570473065745138100998161864713954322598514979219168938871622463189801707730470484743239354024906906239495561867973040399260344916608320687045166222307700445044795917399507948873289145614570575490012983529607060037878188731984589245927784466031039058645450215286090962315847039960035129122968040407667724593709489697243291620662180848650974983573660263553666844714817670644127070360055776415763153931855390404752922803969555639118986827929154024547360153046245143079436952031034400991815710539562958936581507516025453802148665742652208069343249441038682733887013756337801689205108622094522034671767188284618877497257035642747197798127190236886640748367170972139608925647842433989605061678018176450866412108166454906854740724308716362744900924852307111558492789545474423465375077495217473913891086843796119105079404800901643195047565971114421205848814812308639712174027270536229102811463958395264413920473934330075808087776367078147624164983822517105083947521794654086859626857977212387295776573199842086749035083968424327439801175573855195090988813154712824264664506803836018262922876257635005337632423891471013335998232468058884640387488323466313222607321121059965328951751381286748174774632082566248631282679138872888410488646085858300559676581653980129457209953710733369650355978085477488160327120243049782305383803876496318958814152127277669893078820419915529983301344558904595850430106921025940192145488331322055585882799280987698055994861757826142218276252389009210370389460272384319809956486841876255916276476138389962816673259517617671899389332699419916331857721058539868097123558587191763175223208263451149219251400202304314923165675571744993342084482733407787127807427778483990830196406013644812215816495337789058033017301044752907420637337765912384161518249378154316632034519674742949316799637418602491496094244572894821094157309565303758261416851335492250847979898246852864691326388830450931208534462730971291715448017843378926385995745478461624618902677014384529335130026313505137483660210179935475392389704405169271012526705588623894209007419549574571394504461727397399329797341302651211007651244615534031050039563565589200056207364144567978508221007808552888901857654912309029543368769429190842909565026840189511833343345942776726341103118153892178621383838485275398150589985161045455792218156347675566130013773479310885429485442555933865641686821540245522579187270467420772690348082849809348172857970851161917606555210672639144476532537185734471766357677381016345650355972435917778171466114092921162057234599542367999705253227359366048086422081301462035718690465268026433408990052067239039389599751757121497622728014971079484092379857810334277199386332102604797912365289039130895184956154594331083462320099328622040618840730442884780551977693581444432462498422222724456107451850456129108195546086773702954086380878861614738260733237178924937185761533287572765738102890702809774488574547869254818245804911203056001584073261503166816815938721894675800503252647392730412483011518538601499109539872776922645788483885562985135526478660275372467916808605351843094529238247396330919049635901562999461405148194361681328661287837510616099523938912904435654742092592133826075055402486043772326829991369538855233856494620312212476682079463654285427957685131430224814658130852809526798199646616616673659729644948595532527327483884209510934016227057834291208232995965381738093756683477638986997349434480586861045021844340624694491211450843475851665701600106224749705076185853372377940065019904100150183661166650599487388398373457438344193232542506438171968135245421266254532872397395828476077967978422203404259315735551059841696015872779956183706251062871640397843149991444102814033835362454412580628620620481814502805628361321616688053287128624857262606356263519916718856312286908469348647005992071447671166903742659983925879730198561312566755499603997836988134723848306614831469357426560607174157445618240252367442419150371717824299115217201168758884420633607626862346134124048686555010275974164953108152240787560672553904314264080893352792263767901270382251254830948555306348867268947397099501419147931125494012911797235280026796136919850146251978168786796929743619970686687435698364993708161349375732569082804187525200314518218185631066229164798689884227833798941979822156639551453799756274267605882954316876259032176354209412535061009624901395322780607324418585142811722446923532207041948196451133758291417242546597944641602648389436046129995058487583066370407954343313688750772164967455990467299644313719894332455822647848766466183859855646865550915380851972273457664285428517324767607305562987461438530160349464067079862536948289122151669130951858425754699186138474246300144885844029278010670295202734292514006348881340191928790761438787002829956998090721557831046202371020130810394923402099679505972032763473272062474193764735983366037995575995250865860157801203481835017296611375825860796787980838228887532183685064536198336554645761797423904175993535141320979635338010035550213010878116573681786545268260837877331729613835217033415005436066892408782281028045504089566489492490649946438958800713702369367826132444594444535605368158639453679635110396865245691018799648801500759467256322930503152702652365094487490654297368437890647379766959328401749768112013569580948726349857993831353265514332843813700980518551229836979034834640127063955633875554034835748467060400391087277020132117959921203423216397301537261604289182250707776874287242444500926716863741210557083246333835426905607166677352785478097185898072316228416777936211483129633984193473975075363766206424006169572457970386106152983580646773735407707469387386789901971333791432816476267294248549968686952111273742810068813531265367097738369499187758620609068262106660586230438549899204270943169468078091724234968247881846600260464586190925848187099909430049851517638635432117743185387135223108372049429081827823615865441008704770588429040119595625753074442566454178848999911208482793213927767327843489321943425021440502026878245192364886517205739649394786897541781473432557988541764158696623801247383436928540884101623460840944743256513859999552105671680436533653475032071553498936309922576359688662149056918241699709805417923904965771248645924341019582160064025366473904083114625656233338705841509185479973169280209291738710253366938929941998867188099964949625261084132836188634069634265749070803332055532728534690084946371043004524170559689176053107337569644887981016104393709147412923745897876250465255895022564163575947588399888725407591512633317883133445355388039807139830005531495092670116715735646337021768746926261201198718088058766057591040404646313250139036738605193990724128670484223465525039203930881156960729425845337877648013575608917054471426238343282655621345352929652477699581763040220338270502151110183793586724602912840804099096467604495880366652798041823459194496422911329440233173543040485267207425237959896923128911990761999233652533798235422003066849392517151324573369754462411035447264642085329991641237174003474037640070715523783419406426957243705691370993425469186186014227584076344035545487048085775972953340961029336345734111937100929807171233898563975807038418965327900840077930039730564415483898852878894069921372634474871605762071593586610958872239540633659196962925149151378123227386010549685953263687760127168178294500250549514322994582887082042950381638812114531048736509302225250205658916103067148962364176553828102531252424335260085640785592225218291375598867764128894296025204410376757274310530294793253015259245374522677197805328517791171936960990188544588519317201995620942589676811972842624390207103624048135041308021993037318313324243298174159533034226848005484206495711668823420902852827433523173366249263806310483539637330139215407750362244868161752841948541114883223845405964164993088933401244196305751951753984382418994460379194029548968165619407052011965207324856441129017554618693083065253741730829318414513033512632613774275861321634880603236013618685270204600900960157508466286926769869040382411425023102791695803692882501383290399330456640977017079409108588917268855322645638385531582892675980768499627349451486100752149784959892177994679145973849844116809978032336751495491841068374620409231320688784503215559523244784237448616704610726004731810767334852311292844487849813987101366030098361828878636870521920918126055230252986147235440139648444914128948591908654727385178298546375373942207358609450033627983046212927522022734114030149175977624082917475806712174383448417700802778943405070013481597671254151514954934270180603168085193358484264325574136374859288645449620182035932567092468311330984903724219203905489979052559999879737096881987315657902190880673469547818943963949163487113283793296227438451795474078011725045160179743353611289144252434629282241654496897025904027438690330316351824637907357622680939996374698195821237527115890194981189660784948291641173733671901742793214915302790157183022381888898789425712746809137184469698472022939765174635591337703607588430927009236245282317313094581801796002189730620290833803262327233891415636867624651760775563543155384626092249834575598501561633956888261509980154059283202652791455866491701666398332234347075444233218870208689273287798746001729292545276079439424590478828328303799781778996703676266303498824252858929114223724878920574154401658205453672217606669997746861422927742599475422187440852609049160969606577236403061895328544992758372684665579685612599738101786657497506636236388393368269173354702277966544345373117404213328980804529140563244817698571613394001420919445566573393682384746416774570623200424549794375105229408444919638392895796644338979127582847183445489731665856034956008623132287195579373073541452842756525035616714132413864926034181413267680666877161334132622114837822939183236712769255774372943556742890950599724200230097640858339821192445801903976852111264568574888405461654931655756516791935180981243491704703689723496011242373178909579506656291005070900996033847925605064168217426669228375467751226516383434542622755948014922543501081920483628061839740987328261734923102140733779313580860315373293807513840788528898407287368086684247837312759501249796233193029551990943339170318899259623014633508750570347966214571970755986679102819863075428582860339751006291248591640454888391061785398503609328563271929898109871263689725223726203638938911560928969959770153152432363681396912597855643974151898816208051648349633661907793939045292927140640716842257028956476318839556978730859962290811579134693754050664384710075912120270429973155100333356982092130815972385339726800593821583872141739220232230931373586981402919268689273762446631165805843212403775375876582776860452709892779784170315373327404360352173555411998607773693828772082161215297375233634184449510608851859163481908979716379548841536373900321114669232035909815039587593112657037528203321612853624596940858217150082171725143189495517505753745289435603921913269983266230580781351022467370243517796644063342220196131029374138934448060291745013721690809363022869326403554740739670002860830058864176252347747456665816168097328639119091197760512404794318145593061441444262783303954625200028534545735615427703717695311222691422027598436807875966568361264818567442749258765489373563343584818353707812087505158978154694841315613362027540181436369358221100630776206253762534479816693506749860118509790489456583070005802740801631764599722363576301463193316241453470256863158684932928677528525390467924391657342125746467135047680396760352366838324391068716998706388174228258732332607529947313007519238695412917688485925729880833608417540178653688748143471100685787869898202806367625363057036424003504930239528416537174795252905462002657850343035204471361459570787882315898873184096675508485963033738226227858702180782199447148927829106388196418446285984371314404587506550779686739365640814490731325536865827996254286608494640922735558045433991884591555352481002539429149203991993069413129019934505453829856435409243696885975320442866478587719312090643690850497474263459715857918906748063358879507027640853672353850857133147391814861276052614324350289420625651810849564720446726313466268734798929476020896919428461022539673432827328084208246149077907334965451680134412808464501819004381775502142763101204345713698648276261710900243482685036265467234773727768560619560730343653527184498234330090025960936157408017267210308958633121859571221159794155771755697272604955299016652000835182914700854038253212643345184315922603339281439527350553954499513038315135870258689246470792030580076528633928622954090367632715672024754812821352632960280676619805469311371899056232287736120022229348772834529904643260748931976325483694122348708643067145714657669871221255730897835775059798499792117126712727515652501300583454113236025685389726692031424403745700334509747878428743493012298807798929527901805090096581746018709915876106963699141333822114996785905363749736925122111856099705980312495847860686368751250708224513731408530796124106209555300370058489224358761892249362275811296056946189536326937867383886770377770605927719520210752846365229649819102442372668030885558669075893565854331597444460882128972318503728555043191034179126921728965132402363932575791123888673289087675548663148660708858087090903751419159715040328067984080253882081628734330297499415020731048452100205473644633951349773327841429613314496966143476891557324412599990911415498236694205221954910375644821475506852647075437888495799078737978299221685138632629057366138135310934968108632653923703495930596048529306866572342086737944433108078036086015996966552725148436934671955201445528734130583825155964645338301563446835156233790391398216828902820185590488719911759442956878913872382582669586855369480078837582498306185084489833413178890733257373397815324982740192682848632824823963623644008686136770476831693982906570083278046925738032902815210504471292693461540330932213839917718977384175908423954616758360986160479134247540349666488765456994590506588271942331633843777326630927576382160053942594068117473216212758421146960963994337973607471430935622989185794115882322500110719858201959351265082885936696884301292766083073724715082641024539374521660552882724380975535442581117269973615911153014548516337247872248010082565501723731400694700697374722796964283162482377584496560579397815109543704459745193984368050137157650341322916491703662363751788800963933438946847719518051118049389464969529892823038856836061866078298032249123473215840428468751195450008384697260954886113022982405104600894943155119125470829574404073541585710889720178888703078217501267114207843092055460777602413322876309570126181807702783354054771356597008711774159679762891340888736397168320774820310883639724870700162223391729788374794951897162185197001184706610731911378467551192627009062942768244287602140273984951614564889850603101811968017512519762531205076042254324816047718637133220909481264824350499209908589265494268063802216981638709527765428983955699549100231634205173081277720469885813815253521694151907016018185344625460672063231160338469181621183190689367581309368132408614606043534059630920831645759721421126631181455158920812625168913752658320838657263073811746815767679725698795131203222151009312331385277615720580739486307397421400740243764925749422917990029999970789608069922110494085944610059426003850300980164267388777853369901632957027176177744777752289865063513474524903360534005795915687945917605387298497680271939316636218952227855822493506792078737101017823698088445964034798874916982641943146124746962945859458891560350809633972888798265135721478607600656554378903884551300085041232745264573738376098459286167759681351782824692685907301247077983576992415190468095688113169469405994871691241754107521302672083228477439908314210931059377389236678936520441738897559230363781808421956507456390432388815684385751814719808524944900865415932301105261886340645410971755746720567733765692221883518993272802265075229669439091918954629725654645197081449051170439908366963097577313509351563532675865496681022434840372682433195269728589107220039108571212105513651361437687860918839109589081231498707500164158147574218439419264419891049626120495413353886771816126222838001779952736554338310913203971044236819170294654152219264380787082735418886984384736505502677375822945822098072010063138713527858841292336648636149456617905912043217259749175714037088850234219041088338090354268488810035099623181504595755275739107272921635718856093190683497800690833230497569529157700244548707101360474576667078400857724566981256408448172354756350888563523807481959330854835628522174862062241389380908589158865139403661545683560045125517487523095930457895512504222912668818342586113486379925603596833221290259618409187631183108328739439658487605313943314151514578183683221640278168510850568098708314542729378995546015481040971765203439526749040310240571555495546662401805062730530817448502593683909970777089069735911419455171146968708477154970563721181561509766536833798434266875829586371014559702264463236096800835081510868583506414331201737981619980387414996310528412535945019266582038825683003380713993900025044288570686906774200242121726378816264488504115046757153110675891723908080192206329196265844482398082269231054201242293716588460251116384515239559018692506737122628460966395809243061986073918535687069931520835582946985956297201485427085718762542417139804537577356980968981387342122114725646821597987483767045838180862142993079523180952909827978940436710775734593233775320098972515864316277415013254388996444330325201563584489550219355860795039570968695355192666889568478728816560261608384133987992974111394299870645561112948186047621117048648174138114509258466821046629638280970215089727979196303674848302238031049086315315887398004118624573750627268286713798906514658447685740322291715129814340134005444059391036832390595957808317512968955544906638622760589445601120229640199807481403881256271383748656807068385262070957068771194250828129189893715937783434363788614711120385279067521605005782703613726909352648062931635526202679451184182970556573550429839771976720294949769427077639761349776678434419534622771021659660062899475351098377094159985131029998086298840331115476986349320763340963636999898967176201788095514218317748650661147196747204070183459341320458020010821033325387036166888714986603786080426524322152275953164613414610252059836211616268076467351564556046940716867590201118274869674635140324991621298162278530132255606097506155711335837415203770104741780547656073268718342259347325566854705172004512646803232135264182819465650425366982019917915568527022311454121116013219368200827828704437987918788718506321361359766608698747939730757456339046574082856113450473766869609233301729080702687746244180697464596873452090545586054600935628382822999610909769510183139986996407036577686945734256881627698007988462617576996492334175154270178731874766792429759252214450231827343914190417934631207076341779352331970632160886014856338994991875642992772787718299505719126202102559653669222365979388435620150384335852600607716567524285888739207771348522490811667429305402745031782028874616857589891443114529145298773703362357732226902670292522675580954440408598814874221048882942930537322830661222751273990861872563417544818379612742049435056641074898563710611375237943484624509956396154985458921419051646017547116008571382320769225351175955601823145168205901403667416221041369606266729735655191338046727461565963486217484507347754324610789255968198716869416187135149642718533161039673323511973393512379614684015364671521050029754607722333381008554871265794203077642053252387575118772550078863428251813971617172833472545024407714014945260874708480948959364356752761692211142376712566542118768246659148578251610318681310258481516879640862105377381836560188143022092339369978159919835170485260410276593458569374753239000609671647718183243825471225309074367669959177477547383208262103068743998434016390465930748745605612040247185557728224603169172919130918769509121205997759792582046020123147122543579763353871857832598806568889450910363390921408937153005231727234599326625277928123683356298976849283867508020198828233460350127190369161005484829723029181073437507390918822764137312215129576423482314415871682157993703427374433735230941496361067580047923167927469516355188687302499875615066822646409170500591360838986669425963993898828322668559810106088172101374539304789696236889118008512646785416738284659726620850724762645475532381943353154368332812961108814580891013071207190235970519240457424909478842385598714693196917600336960786230728434299099550803431348511845019966472784367855304771253364967728814964635404044268851934995532640066654446043821624683584251646416396481104336187150918928027224970978845174561774510986045420326188452046090659672872229201000823623680391339412897405533873233995025550977658427894548357129688503878743359996779015688189972145902755616515923749498322818835811509087871483765078332653459681220292181916442621198912628704708873071370108403357361289334136359890478239430564382098398501308786811136246225504237077810388947198256720653203195839570717570651850548678986827907135547954806744405973759795594484862034263158637731696948804411693642180740335309614664328586487311772721544614086663257909757451860626624922381718024396511101588835298436381742744575171278296352908177234560477805980711727050734505702450294730071116059364277819708635425399570207822801626239913650294422642977772403743627950490178588368290748156498673124378727923861478171955825538994843680087375200466087214002659872173924182319232475667444669634857459449480234181332342974574397762871316914917080508129648693669535369501378505994022559497525522614042199187240850518223144334181341302503564906537426486422428012347226121324350980685549537799460259505565826596898400868232961724904604420876841234359229336102152862704875250848344141776762910786505653380473301912702208312649423208839014319178215088109700089853754273468354951481584596677756709140614261670999058943678022791399486535081907548585203197206008043183714496477726623995204745505167716100060184362004496631938896022611960944727333059309359281080202470110268120407868127388234516767317912153022488510346162859562350060610856218133019124081989751216576190753898240269053747451046151211200307770554036132205665039062695867762172035094919757382764664355521368067317781716427580078178563519378891609665447349961779767575129451868256099693845142444287147456201490398394548737579709600835295980537008087579167811866339701650239227689633369044260217663386941545204845444926644057118963504456765488354033971907298688946155063695720452651018010060585478617834959245847656870804943706638582402555585129217218805367758179355347111798655605732795697162911708672078424292774510536792644020350022851803482528515981098550388611305857580259321404946684750324689987116012938540349970178873761905319140282022849965585327671444330851406819827398283142195479094764680000729953998972992867207559090494711059826896054127481266626454621365342862041540392669329581230415071050887838556939128486775666251480669194260715474110965295421428395371641974388235183222736898710510933585636595472691755308907066910683543922705231577379359629125176724659621802559946161558125151621115877854256363711198280339796771065329799907280796320380288703218051665223210057499605415969885808967556877992580155395758180151565626556730407415254920812081300938695245836783563027993355648338501618624458414217653036229252248371195671355809986286732020189087529330569812295831069549852330498809530822907166415856484678238226423954612921651645310161189932893513302921209024430693492036948617389656999421633557142183737432820634141058297086336006294507709874196493985825899459991345568785517094106765821664625598558595621264112300349338684150101404491330508307868188045175094784693209621593296511227996745394974266793291946450709058071492368268312490862358378620549840803272062864863058805975929447519711674989293314903271684582589257391596347682873747689657671309253352765232743904601827683910579851456337842088502822876500823445178547838689930132676369376859752918019454923900384676543146168386704238060139627246876376383222678488651045344294498719283026192176135265245783802457557756299431438265660483708878986448320132517189117426690559189651237135388826923888146854884890230164462494448561033563052741016856935312323401658033303556770575720317476142215404139483950922975370796251311065825895315655134410141282882424155272508603050387851525989979500949189241371816417067405204418980860300821649011995513659266639783168166141410857980627536257437318363178734763560364193080174874709612102728218765324726889232642016798491950204016482591910542488268690138744290704730734649658234386595894006342654692788582835872248645123949759947165309015184292309016750039975948459456008007452159031104125846194415704133627961324552080275298920760164234804479350827567366502552470409112574675607690447658580738074380524654971020510806857483730296673573527358732356447856084622437024106596183998673384399466998234678416465081419525305764384742607770741917991809539110986146706424149207118691934343272085439521142891242914630522289377274750784581643510915873861210907655433198399214138394307205133668385966964255744493581177689507458280823401652910625848010033444938791666802330771986780651562517642964153092271189862776571742253713151082756219819210683053239930776401863279795872969343925877208799597727708011135478484117108171014972652731267202175075383176381183708730902913466433281646968707984541809096884124306900607706760196241354545830692038284246942449185069946214810156436072289105053270415785280914460041257544218303467733997980046395981106697470526976816431580937843175357163115510937336734978267587802926934825645598196858264938524264504789921194725770171816962374204210881863124068236760198562862015561955573766804093678269405980705531857040600085020748938788799905416246859441851242576071180373764089537599950254818180719125273914923245629967521436787500903771518466329184346832589749910952598191121713727719827768068788708318640150216795762770035542084507248362872386781896508016388449509432022355514644284592515425656437830503976799558643747012569694085166808952987420630829331962871685258294361409334350833937759926747285035470504830989473320560128367820931204499736884589314950900930289125498665375676612211852431969267414079601502775351347726325086915038903956830817030991831258382512343453706329817956208490590232479166786161432317510523448772654164462290118161275497156113988971441163938729053114981230768713876687523088840096290362766897052847349936312811034708866905247783906386737994642910491743196638389780116894194261025136221493665389386918981914458814531882767275200203763639496001334790274372730011950124469711077761598283731694160897848545353068667566211568919997557991976737689855776596849006851601801593435398992474884620138861777633755556240163778828351935858988287947031403051459470533496204178476770627463169269876722764070748406301538231027849082092827664996546052918094041850005840655042691669319754680990728834453167246522048886762259775320274918289583131250690177706113120120610013251238335602010866697279822683971154579602936199773728995569800548609554422862766823720954764476831226534420563677092193366545215217744668522739206982393113398041922553643243621813551822997888809284435160171100358875692013944684472133555704642979168435749226088701081118280531680788834141958612236091128566890124458126505191132087666666275210681816772909756758741293870933845622931538683048475305195789876741377076038488791285785199417817754548729519709750295273286498884165801115481865038551349501604614434173151266614734214529858915476177675810081225347862078776784497492113072565173120618452952014338137988139421609925482054799848752207155947008470108241462800662451306761340897033912191841703901497702126781670002491813574176901548413101274761316100202502299361512384958853805854143205835871140017187131792929479788790039706128037702967312798551188808729544806967383342572497222879958127424952642186060484133006214714890124850082273667481152051576676703128112136800810464525240458570804172698826587286447951081740801153651601399768615549830859152434990938959446287009854751532792560949120454906254802100243933925525112829562183022187788067286057726317162522409765345215487126793643268431723835894402887922792081084468561825498897190239168224774839344954338346555490313348708100117092480706018497631572026482464182698651059382068348519535284968524453821050061494821229378922942325577153735924178114653994019024350121930642784605062880059129840050280781300918729787849331971221630307712388913848951861051627824474152012305152810465285223206729854833541844346421616184047186414465184848818229302441914676825768197575887019805934145813250585421638330743255504176616406844903717353510740682129401019784593683132503573572180330684689289000141970265260774137843416846776310716618179859976241320217602505582813467473741755425675628141725889100193057928806445959599717985937340933359574647504501140373498910988506868517696124641493498880300759324800246648611784759247829086951580960532355437629110546734725613312081216325342503919824222604233519642431675896253516330951297972015288468489700804971101679650649076197725886164020280013769834307983941736701035689125477352330095911142011949437418012964241219034438983166039049803261366735276998690147830274545736878023115198796325611613729405038741993711041752539300939741172058950224124153907838012364727275830213218116111464814491977486354174876739249448526840053306475980972795169350737976961352774493529413709394807877634863772441668880746110879462904729493884954982688230838835667800052535803135571649483971972787923458896008540724000448496662624124127420273129673627544982798578372048975309405876146230646944771707702931333852932535208773337770811575774145897008923427583846215905995747350504288301272198594289102256426679951281750228144033527390414806965148238382723257969740595355599092943412356252453625234713400399350309042252712820676110757945873723311096358156381870223605938139745770405608237665840746711316731879848843979203361161865883405868694122359011506854375788105937310625018961241905480701728718519923772626468025321356512147755391373419355057296767518138122762784562024200753331327084974374746777326009760959900544884928269882384232159447435057556889366774243486186941266140703408770777081712468622279318074058277157977557347048848755039729865717138863096101198011714086692538962416942225659945207255544067101946855185525514462235798251748225393829545610914110705447863130443831924203670508370573320429548089011100014742569274677884713376843742347804729095096836149440166333207825016469438841008730143772550119205697923075362240943587320803477715316799292957637729251522333949341827032453431885017588466906946536284014486280916677488896386668777845655333126038494421035013643016179680554465705138482804374946150668641453900092669600957670972633892428351611557767940794625016054444909426164122580034620558033527630507966394901733614436505961103374919950384426634005806621497022927505944835169936075983998202560404019121129792005211179294198094787555358257386625486177900967078334591041993421327657836885438118782907195435275330018912886441758016186038228668780561658611732442629106661136531835302001535884297436095092843125125896325415922337751104295782079655708957153056215057722380994173916539638026208731566215674759953128016295184627289972211412271881032494219393746042975002012035532344584515041623782283788611166540282505000791091709012059045508750838315037781614286238888945495770500397212592562430446127565607057762611154300462628799805926221988382802750810583582505353441758042696943705488685897953311288262626695240604262341140333944865080205626654666053576072106482106686343336049996472716538741938092303624936766184776701890522398772320012124173113087255644811047142825375071620035659189058890846289212811660076914736767911591109853621618488009096028063122704527779471429683256062285759651362190241881980336492006906267495049304847591347884333387830869913340355873724136543297098948235684726654658398291128857060508196371784220262897418312018053867002595529363064364579435878411016681307612270438747761715859164165466855343912276758963017332515609037119842514662020091061502188248672020268820717928139572043483109893673829691092436303858242189189850169110295688290998240279442221715729741197781421137768380241706482719778055063986698326666585983721559666980482439501913229826634094162098953640554597318630833456102079442211336537475770450225337217727907292212434784304896472160278673935713031537353477082603282880250725268080746460229753655436501782634711365031148777259074570528709563472165628226254177837980503011874837414264548796824334619913692081563433321183554912884873215290421361934986019525056881187470295065562122490976969054888679950610760161309120436411548015584447821303399491521926035785604991972608657183936918624278853577549542553989757063733515121432217516285840686263355153983231468297111391716945160513060009410052218285411875653660399610112206179673271244935363794462033988541485831144431255384727544889747146989539078063698154133229922983773214677528035482294103035770542855476359641115077765409331298971592729354864871531332701909478143591232472479993452911098453702367121641203843141960277920918357389117706810558233485180573303387020874943355587108037250092131739623598454386588291297936483902618698459161327214860440628706863567764750695573749696271447303291282685997128021574647802753975787044125962616954016912345805333346428375788119130951024421323572600860288593004751973869209669784707753324947173640336382251361333481996905549905103009077401715210076573570537059589778091296467034314042341692443841482083190347433042023940820793868103960543108305278583354804663850996312040697632364231736151622351992750802453842594598535680904273739915112954384729588285455095814446417387907889414632629512811433665744568323357257372531746198459109600119535476634774437484548966124714228724576792422337997453577494200595186411464515380063167787631037927265062622024595151350334072272965050316607450861294864416157963892494218562992930597417022110195184591538582338591137417164670882659390268499938541894101859347647689098677402428387127800149151338101388037128176903451057757092175976461148217812672774753223766050747902526280538655050382760965687612641428999019228519383609578447811714719276793410218815983510444120637706361286430053898855736911015481006613330181122115245037619052679813795350059534652593405406328235796192456268433985013204461447502443851816383604629385603734505452382053391267335318740224531513764874809278591185580671849965977817122121764475749034743189275930864393545857411492511146056035207525518058997061625285765013725922635548688058955131667821527196022522436483523871181932622142259427260639953445021257548458719307951771117935754734768846047366127227222735571951837928816693273113022469584144101209154985196513264908479534544300859354281909052374843825698457349858156902917244982656426425023860267619788122766350349361891922684967703004115166064557234189405158924688363947009311518909052760830805251102418986739045479804896190928775311486027819516605804727917534503489973303072919088865336757945736614277895517581310957035327344628686257630322336608536692914196179670747775336794926102783318153010553120671329661266573164416619189515079186790984366234806726384633186909314305453896266782447375372655731903109604741626881064882812336833420890175115344791707794434988038290124772174357827746786550307199344713033501488430855718971318436660205202210205810167398209232035902998675207884099123067440166493006578045024897214867156782035658611086530257143881351484402601232710396796103467819572747646313105099063981163249883255289918795086611156038122525504127443545427088008597461786263840147124169778565423692154520379830054646253477608220818475538290209380608699770232355340222320707706919915364497290464696121682943653328444466546202368025241733825298582659912394719239084843314459874073327806246073415332250773340444637764113517181914112961775052377311354437884359483301632257841002308839894191059472162399316756853377414366483110445561839993906967922653054507417628772160781567400529672788624108217804979862650045283275864668999427626723770102138874462248000367821786118845486451514798899219734814591438332292121265774721631072590150211781409455985670699382240192116964096081977631789968479995072807506838455163019513144061348001128697076000490358447859152832052550816128934524355613257460491790836384571659013358102030824144377299960358467937770109142648958705192389959868525604175623370365186755260792645550063591014977339105154719394611214124707185070994376033783764454623290909110079538609608838330935188791151358157215032292618518090664601172140093066468043991012984069855296862595051782227375574331428803142070903887551405958896695400537762869781293848180358913838391151507470349194799344695306495366197511365556174090465723446633743883866025394267455553798397809589351308031287558293246774801739564647903706323909310296312919701115125520922486662675052150316542576942614074863587098316045546256037544011358990251517051147289283145012805322293873403932743063911914994976218851216104438630089430595648613046103861722445832559894848025925224938049086149094749762614982042744582267572791450341455418312039429828235675782916810352157986922412288556763427876633661721891868031389431799018266844997450164775299773162176279146500079113995294213361253695979066688289519431550617708041794922013593483340012545757691894450494882328949675299062626223894715275651344437900311018015565393261932776704881037595966890585744303554492069087993384675740310717449285668648280714260085786221257794343538904475482593061690168475013686563975074741243935277919783382479827301348231152408011868948669166939996539386064262196334718722363754995625960242783260157574513593790682667942302257088269450572327008155388135886685114413175641594984115457614639185830278328735264456519024078038738250653440581036971532279872833058375578394314023336548557869807605438315347660332560425342032722092776786923047608740644285239316209511249784004187589423172061625669738707327781383032683352242535176621685064609040546956726234549694609416906939245378383647830498417527469909720286350571038406371251132173631707332013841107222135188421664938382157840304518920755926080561667887887453230210792287011123909189153433537647157144782430338490691680177443875039092432765488542074469035906687963725004201549236278448868829528989408448381278101562256589846555158568851530140262237881210137027331694505617518369374728912271718775924238807547656588304566980140995277847289996104659495766784327781176598735844474951928907849174106951052268390021520766365246849455981815196110786276203506696403586641524342448259594757619902912168969856420870918251803838395326557235027005851233070524798798617995520965810781985654988269856032620759039406208747984580428855066435242704668199585638991065757375524947618444448677740003362535873029214013705695224248566186931898766555168298595877410754242492711643185516994758085302652759045918122726837839081625252829462125259514791879782843858439978413511322829085143488959276635473872633229917819565289235143506306585145479156355313621870282648704653187204637907779973791347864670919066567377145550969670016040630992581142035182545525332914859610285260197644938677987953389856792147307505523610005125143546194982416818804932701303096684570928996080148915717030371086066232249121810945815519272887251591679012862268034299055182140826180400340771611127705124441698979663848279972501046088335588121622535682998486576782585969351215903246901387659277018053145473808828882699674864487977639941274845602636659929514903060885399436318421056442414414878233291565314985298405988312644773471588428901349662774614089624711333178665460047701080135880849626956680190139832871324426609112712844477950948693208637585119590819973726272408386918954076322246818995422256525386689604290873758381501250353810756092312006169945817699312822908747222779183150987576266702285655389255505950070097806960611048325082950276968668574495241040189740274393756016082069274731245208643392420568287239275606384919478528332170496798721701919444129977918337464501617934444130811733348527113878120008371899422221385182578492255464034066650151538682700778466524493940837278600956034208600306238866819348547883298838959917037399213068823619754153267834085187457621301472565457825296840553448115909246721491127679469565887166307558621103148810306716632238981407525084503942445597107336714874021263216591270979068471890920455010444971167562455086217136970942808742319716516801317004351675351272658183455970179567205786826748401054450060915719904455478378006477708726394487572168067095669296820337924583251837058195132655051497515006828766810093282496092760889330822819504632081826158439047353890179838360321106446156433888745626004697703211110976692532095033925674180763319004168650268101888386632016223441202004050501521054764682828839704643343372513777478637222735360050613496722756134737695472868241527277854239253687324154391433839392786772514009535491051806679712469984333293721485920066339117597781673198194918549274311749609526567915099077820450030282825865594213087917524025091280749379681855800266776538225270756394448636680680780822146623524031762278630295179742650627549621558892476122128091597091536449111178728334444577846623769888141259102120675873218574304870828245226264955893999661188917350600770105683163021626909634429433420426217630295824375935283515379206414282878221603530582577289215696602389050442892882657312066707177922677744303759756622426663532804420147908951971239253970307492719078520840316516341812473603789404233273114388634742395599689020248155190391149311650071083146858198253005531144215898457415775264761427441784950583343692120904007904196837312293735865428696733565485272458599316372380076027294238363435735662449213907599759708896208267020761225230477918758807039658131463094958456115202499746545023753706356121551515163038318807142136545403100664435680049503341145882467979299613024617444359523601756462226397159779042672224666610605641029325137243612861204886070728229816294573328828845262135002889892569227385756966354177690173417646828619317612389547256267063517613132322770048367676474827825681401994082081142146851863869282831639724000241746410191009114389208764474082354439323717155313682732693953266508265589051518108254286356852935344406861432193739018462787054173129106837238874884011356717716116654094616266166985059834718038746288330482025200352366812753578326010274907781103979714894548702381704359633744266446770987785605261813274267560797847779124793795031687671925712379418051963015097186058590451797080023085155097879541871123834247142862580948807468156681584849684970954508963014281419904864386872271315532891112062200187183055201161381497756238900990243070852352077912144841520611139569312058272988813804968421019574708147999645547150636450102395077377639910136118140303081134742486605228336308336649944922524178658162337027185442627849814971909901923601405595596901196902674722966645283856773408340629014041708750558826047373990009326043242461322373689735652902898884654761024030431076334211994093012558608303008246794439651733059912912620758310417399247006492025079296662582566221147686250885991191118594031642254871446663929209190595073822069941530002647802928462678456167188083779610347763660971742421826734953923756930338832659512911770198597044989581722077333781652482154105056980025860125151748281772969409165627023211522256192183418450601781541074707990312962926119868074300975242846701787343164648802415838638640724857366033400484008317780007198438090703749073754802528336869753340949372158960675389007946109948242923718348180911504079861465218688478186933147714452546269949736013883962545275014695715048217837312313655603855003443140195857527242374940086523541703834274030510502802519235602845465796381676472755858497582574327539234522412671644071219158446453369335601742399871312262471767787448305470849243806801912000565297227214988408706843975504551350417711981486258988409735487711206035005339170331964616735404472027541985030171395088697003201501188387229762966019495382833733659314379117195486258361415903652008205647575028998956887407505997378153597100058587061385303020487410381346785467519926060914065106400751353326474528280418963680652704974543351734221080187246468673590055177972802690128265053779531193018448188058865094075716767556109638128541454168471508908976588593859847300577689896620634735848480746481570336145115857704073405690550648620247685147392600829232747142452067586147102028909479546861273048489757950305833964736985435554244768436179602589464526592936632114668134549748506986899845678692488252365391193784443893408412416937286983075933778749167048856707376263305719635993465364133273143440087130636984476719479856019869533469344857445590512781971741248675729884915847818033001520799288077170311416610696268666882775812063941923737299451347757672428809240358764479881040697745099716198647400280418534678897965657431763731367124333142813768907254573181382342553340951681094929065140346281914978459944599822288731365444242638482620978673891345167886265911155529579474725849791338191074602000039017024289324225404758782259626545942472288030403044701843553471956153115598085486241851357671031471514582740146845862055536164360093012707844107403819629412316341480550056924236735604910315431141702005214262117111248339296723488806690727033569831338914369246081607634951777197763868777837994555172140659379146431485464493030380039374785941366605145941460914028497869357233991466795423074488534618288755220742923482539651123623453246656263896022744758081582424373772892146024551979241174168368777166396191032442450091848378804069654000404878416861805223510338194288071052505731040341841670199978600877787445267013188881601481913140555337407282495191941361992847477746654572294109044602530652038265134523557371614763525761270657393180057453235549346096037653854714542188471767891170485717733958147878041928468283515280815795973477956524643319912114021375746374429358619743338095793462125203605258651508740688680156242291564476286928994049228311032003770467020867343496650080835909588997349503110265547048247608115553045500098024651598107625503624565129842279393249909420466154710628514614131984957261038258737378333605381828583674334360209704913205372808028878386579386377018313116712305295773432493238732897826444148635842891091476107673570339809449655525059794533763073711880042282714883813402979342627728531705208622965790354954686125304199671726539731672302326978439980938784263983188327852958669116386673525450786687898018734667348464779989920040484101231953742780313121104786987169981632913102536992436420231286625116797074588763337177888811275211285232445384754674080342405235841716788173973895236432064198653187296470764372008444749364288749107777802842350856680504172061843902912255207223000474778090021229372667519187126169777780725578552368122007512075881975139901495812704755520954304822352109771540183083058112748818441869458220490748491818239197132623722986505358122061994610195388220112800427052010548231278357957332096372857734249550662350737353020997045056384964907716744718184677142411681575861788104392341372061594035530094312098492774502195727936791780285747384908712368702330309202080558563466964939158356334122114754972898798067929846210897545859372406472546268503457225749404762418628611287695423652064674082061767329414352852487923769947882167396219473125749253696839489954933042772342455421537251346612451728885629469685202218036824863697611086823805487601739246895375687984866966449947095720106634957820769365104100437769481319963208840055809327896322218577897099162062466431530109796604127782936694727512473509585717316034266470704018756178705246924465978957069246184633198515269559719539756502478062411625701488517524204688686763163761841534116920960277700512789078409162754912067015521683531682521277694630487640280087948347439631136986193037642300261641027274256486659070045028553629829170037156539182278700767643708139884229244001048845019282563590363779636945069817763954640885713945833843441927312472865045196464631497667836607983275767938049302768521803148929421649587283664977184013739204214100418125182348336322724300607022407038839021332371793768545904764557488572677979873053401906305878227733215574024764101240242259083299173540488048422048403366076742525446673492534835863742688486738824899599562062099745539762511585020369021115228376845287323607095420145368725900095509465027086887939831827985257344882018415591833142332938898013193960394131063890437641729828822170227101701328508487147793443214736244934314347317930809303619082912880237616153099569838002983819283751263068488474947987635478324875941257703523447090482330810686476103923988877576354065700945995378339499943460801931925022746318843757870766472187303988488603645446858003321928207113862758730531952830026596662232264780435611077964746419780905089578497305624819949461310144061328128213496729963266927406222242700272914885116993758022053622424504013023835273471685019073779878313437106030658678026675483851960383423602732101108819207464639118008938226002583290953292112505658784113827366449243355061956306343191828551915152133751665860077033798539550061545643654188539686979786633878583441707683751286362460860786797458092657334627912477780212798801290230416511605692170161443208418641976788388317063384559936057039678538404097843684530191327362964466309087865284365175774141837152283318548980244674753699465089604692188140448857746277693741398873153098285648073424807413997380229669826176914877553545726866003418438471547040231175104886552507624326740714082661977355245723147308803590181818346322831223511817830235226342037461985815636954999076574525430046555716108828364096541316087190465696197192593811123651886234334878342515315800236309539370267186533203284328640246912630194899608739545162778924366639981960915100409762228366754750556254017227644760828764028323213866816481951612609143304070932107809684073075451438379505831897471737389654881480096322625751456641841342157659455332413761737959997774929981673161962241785113825209346004194291459751557898013062227619858801168292268031611057321093530553502727389333894130089856893374080038940835650556893543056033944671286324359531052709736522923642442578878335430518429059772040295617819638084110331532488037528709861346588882580611254809462830298388561315391764940869226475909037671613016729548064277310187272443515278799532226294600017817424000621707947686333716076236898724671889631590893169916697432071916341008631283748148849038484580884610935480548718097424276718511702518966542220411067655695487780839646209958917346120861946480008963259479336514203068034334762677260974240492688247374364291663268419778578862772075889865133519130101599173750660845334264087685066619509298353908930479974450634297131343378430728818645432995601209342220839933902525967305235990066487347598427771039775396920996909417640580004956329587774482185409333609812407356360625138628865640202452998213990639197225945820754834318735023349385305461766547197571724898409554105223660287778693807787795300243316336714893068074440626521369471077166287355350343763215670986563454428357046230231887697226911691945532145234507581672447277663978158107772782662503008844802345527188216703788008973738926871351470214980593613735215909756196416740008775494315660358324211337092451109392508112826722053751688834571624164945443895128050422705688470980203794915212399590498120599360960476783873411565451347727604689457665163811178484236291988046191209647634915112833316938981070487832417849274978885325325519902196907454187016852530569318283325300598444584947130079516986021706696798349404177686869446399049913361111323955229323340281157267252195005607580691271996054491757574487094668660296671975860031754091987136860360183359257797662503226923897623318212646552484642328825238002111241092371814916031944117908106694387361628904227178670200780855882758407828207824269987925580116112569260354991557643511402145835831382889989990902430419641981175951369268608862750782827992797885962074533723303663009455447868610555567708677485097170553667701943114936302556519566442920262966579923628315393298125614558529223939208592624626581965295077212077134510755693340032710751764259147535553891467075814302463930493323200507180592817331046503463503015049241106351825245824965667174224778932813922385730234185610085289453780946427871986249954169860676487675980531482482943229599044250812376257228787144909245138358820344883159117073759848051383304024877588114214670407768820029732821488316469089623490835476244932121190967677958769375143473783230764348633025411385666705346649372511297677279159667145428479622492280829053694447790514626624909957789792900566779754649441790327741597619309970939801601305650254312487946485046503214436804053731855504868940724211284331985254620953734043536270411380776500578622789381078093786017242115209826256457511011951183181687169872415999608159977662899818231480942436029703184362695888970877640674678282281691057642504390848727299995675905374057942238736813865539569521927238957667052218374640175217256951398872201604337146223525378003836210351615484348105285445976021361269260238146267230384932225872881852112558092435459158102615647154212676372758121573591267911441026592924414270068656638545129752472676741812214590200228117591918860880869116908933460189817452888842870971687279332918200662876528596933992444729606653936054384884319242815666527733643606951550763142266774690022541977433312438235402494797634408019820698796638676322738055559286407725842811080465069461683307226822905071443470295755606127488522756252928084574444526710999454922103443972237624375235294393608909261250780200348688033063402070636280902141868918580679059678869866196270563026847725794037957470495877534648232392447059331510317311703001219792977215323275093747611720028200969344045824233499625239013166529584337233818040012173041033960473803147194425911256964561833276504414343861144322802838771511672195261121827845306654245010250429321254576094843467113526204654794997663376977126526684384095556789243842748201694430159372139893173351779641887259217797707494339209022580465921439090904814177664734443100018391821196360017415669026980675229095112536295677987986180549624342641802989605035442280617703139893042568724830931282323179345388753599063830842375858519220300786427267971319747072893572016290552562423418397273226776484748676408816652789174105090645941559838927205436491554767226865907666906616934999410521129555925574129247014064263528711208171440088344913974976036587507338300645166902608585745379540520440509907712678380585964682014475000435405605328420972783612796727795509649378869910989781528124336956057701623584803080104999753067177372629250984454572304750061205266150959619349990979456776883038003930457369020918090942637785562672934702979789942291274977750929531151006644970366282261069424906249527663464257037824309832667016064240628661775086884207298663085765947242932434946416285860261016610295675401632855367548912872344397902031357522517965699958144136458025974539731770527138911768943958827685252682739123096317713015370778781332593114862116855945973615777413237234078102127643743170389222977633259548891324480597013748258960194125436165009806357394933448500575946376015862146681774015103171889292244700966577755045124515321881763751550421193927276121784317724217975866160500133658367588755189288626578165060576407373079918096271640986255123783072114624706717435367843408344686933864845322237746768052536281127618755565894084490471958113530694717847620240515473710920162468949424532215140224221423368643576743988607052677048171958544452915408790604779990822015754336151838784622228262895727046193017427906225288546549638156788620595244924311702002928761371220829673833246569811734034503347896372870386766829645650407151166274233470122952001771495569949221154250449723508207450330983440130653958731533938636138747553071951768646551674828275179739671986338604308791475084367240098444183637490100785849008572688689565278493582492668707029033254509024419171456692984932224876284801797100958791226742949800388852865472939064015355950240886593766027960893679759214016246853275596464477643263176302852415321711297485684220306230338125886400019661885477289903435230641870335119005480245050244306879875654251389240376813171663084560246368329429245170669168790119654209852087513238750806981922119094143458440977048639769797815424532905351952723978565474176136897279705831072135182897051881703893103491796027519869443828447078613153632578011324599214809249381701736125368139116837158762203843103858902173139166990171121015088140174049346561616069029253982962187393788704881414598482384049535062252418602389192046355950776039159632063915856405386948142493057497275415005134122209469135461731833430452285319796992204367858912778705178225343214139006907159106779878431387427041444642638371135983437888464366268048039371931662564991890206580274125944377709144288337001257990898335650603502396295384340885721473556314391326252059235663618814719469469569654716914584259723998551377456426907337089674261211263671358428952705488280698031836910505699490203408068434514286113170477585242718689881628049792518400592386802071360507734565395961929522755377232318054383419151169529736461254540416765577790244661796400316566207567283795287937013250785088598073302343407099346523035640774946802423214831751197044882996038224514048945689491745583813256686902099328822444083185006983976845908180841448974705924048525982983997321754250074430209809656749939327576417926073183013553378284154445546554914290554665550324338350071043759201835568788940879163037874138722752205395580082608274340926962511735766065337657627976994205050088300310362607556542162928202208463242396565533601069957252191466667628895913547207363226162884737645016288587172014431146025105196966978564638777144359018172525201911029582026678304283190522175857213956598879189374920634438882114017523740525936281446842831111857458110816017835801554574729910163348227585810164744948824189308569540560811906414045295165333991693546169167269423423819462062636839477563945022718890422450603957929538912795377609148817197333187464010786984776705388087338128099128388230542134429435023525904650857341352635647280498959912021266847974391998805297897896091911011147234031524403132777340942648493985516999510802603064975029767814693218035823454959736877502174301979708088990498844785724179791062099701478773204449984129674604542857726915163823565553911177252664607963338642137962528434448711102923017552131287826511587013029196979014093078976762710420892653004362549450980058468747819984535717166557922195112278392141141791955296744444138836079498811516162773768507837877175779378046545452412905342676366898206204478351805322659253569574655641002401060329614595979800458141370040156193443390510883353219445845570763392307286280182224606858246702842231370033082609325596151847357079235607165461100309916641329362299528134212840639393312516260932110452098083441839008654199050818182643550486381737729239004710955855611803571563254941232833142110521557140396964886225232475660162803903889617065596263761962936121791365053971029956039560526199341690083999227705738444450926483513748269794417011891363182277765721608598158288767379140629977055242996408011714956541070712983239176924062295112325002172951301673550039490406491382432776331990965204738840914952452348915484412721429661685281868020998796245799883439693922094135519513413310091376613768617683414151412950897454114916664342627808942435234609431292308123996502532451611093976161299598696801526918567641058375213198315083560080318738540377911747220099396429045542118331004481233589554244577402893876153296895874352706600989653071281078680304214155113980045205196252186365077365631465735866483545490214177794874813771870625681641915341184966119194289959257050505447378458284740951333117445234676606335361308621373740120619025618764017783595344654412033165892650554789416365073756557996743448666561317735024713572040364361448534327307655057743470351097630601915100973290942506364583436239609038490321408618425786981762728624644727316226511235278907528051307318464663550395470452765104941220230734480688125449199512159214768692301574101966550087000598787228879132407445183335887279454813058577249606800500665784825690859204451793479442802516275532162688668106550760246598905233615603834382765637069735238145794098256830152532789653573425223466921839459510561443164724087949070166392113874104511972637404735543175144677102058981416629515047569779932278653576877787851168243324056537987312960581670822152399079602445589724392356153712628869292412874778548622652852729961579162409755865965615835951620513457461601042314018282556528044913812927171596995976222399961188534163265646022664798958181023049416873962735962456766603147327501917241852396098949650597586544327994443612504178114349916869650898017238265399591312971980900893789174154296901792686040215732495960472591951482227289913564802956263960156597955581466560390019001576285335503694293015862152842158036074198830699669785400063898539855523408818142099188657189124888146410712003427561709229634006642694511562377998806230778286737661782247862240969886514060888077915886238944107594326724376832513817951397949463754472835237874106647508029382143833897097419855513870394319364722361465993229584614649153724352948097632344773549628651854980809988919192356222609589203762461448054451134605521667217430639358377041175735767109147207964187538871762220024881276795976245023830292734030317005710602590249211532326648137280655674966234381783103910168662427633652976740921119792447241542888037325517400158076357387031052302939647181979739730493609755057969268299294586958727739072336321370639090177613953294430217372028208703116835052994082019202299075301193777092690160190843731082018020561940572548144397021318040943477505179461967402021180595128766783824436788120175837948077325384270837748626431190840595536884182507018955490707634982425134653332437215983076577206170327973139158352909876479783198712849031280007404267456599598579413779307975585828811493474132434539330184673107474819183568612629011923856360736063736743963220940054039614915169216080020123689397336040512629660091192077133330189192161921680104014875068279952580395082956337458519016158643647214683107477520701844860665843553796173828764488964451547580262803003823311481245174612914161806479622355583153056707862896430322658639939248591094069025470855294330518211369374843941855175895187869059090904659267318132614849325711346872861696967111428768563404467411798217141424693484687074031335554259244106966921421595145762287239577603667503430897737953021046744820952674442487853562326359193953196041801232565513548131629839318436731782432381781922569201265256425754165724414145800863549323369232853047650148397169517164000706694659436049821850516337693748194529195733894038931905020086336221161486500767658711996919574347448637577859360555377749856966281716335262502617741124897682685638772891509618217565579590252853310457993435663209730681958538301864261391619078102019353524346854592625611581244707628526249400480115280511081244465965089323490880648544903001949125495081270866251428282800128795014867304378678621640841333285432389348907607652280489762249078413432965412967523219943587780591858030847720301647086626301157178642132559762432393476061547214856714078775402580379736065866121610938782466122640681440429092308486186606037385231046692855932036996299073906609887406157876205319300586885094225512233116422446669845385664974273881691223370914814664899368069257448359013580488778001667971599222002684386012778753461628826901028601314572694137881749819439633023362769706038648888209795828550523001918030633501386929238908799988239442172822543465030524956509477356745874529121255079296830578643820715072999458900449629964989142689244147734305163480055972921753374028755082834885221645078386026753993989144578351217756813227405797609520168978600157660575453473431367468542764974032721824008839041461653069348032606309617860560551635839519443947384015415587459142038337007255725512162425262640922762906681092070778124265030710582174273016458771132301166350837111984351907339855552000701109574371510656910010442041888647999185411347965824630943269088419512556765798803188958681960821803194135024380028209164551502137940295403113956571608214866537627017084111558369455176372414703677717539807426954156767124064377411307741185398017923674452458882310600425629457086387485034068004801352608790556459592723409627517060659529489253226492159199743039186981672137936637062593463834832627132083913183094653233694170158686226753577511938636157992490620437193969104795803539218411190225460327678397162898863125471469096491417534472811741011900159745155635931227631080479159499433081268043680179204480770908730085619540320789082861924277221739437745345035118569958071219945676756150171724648473660467943219631744781991751444145793202142304729497507542463366736977694578555842371262601137702920231996308150623453400106740503850487677727669854234905968301221419714893552556457452595389452744086490504411959559511404975945948214261551456714772793612908126336399055174631790962842908941955738055885761480327574119221626151946965590114988855303949102859369407856626954315016075064392531698124214510826063828515414141979619534372349243723477062664334714539313708901027762710876675469786093314776437693808889617951965915805999818674427272917559354995318683405356163603538956537719924478884642222924560533975816847272934683454513862895428817109796888730231778394099664070176721401427878680279787421730907292395013357669858328492694782661287135708063356151864150865923399347341322614279872189643486303392751476597040922381156582050223011072279676848791804985021604219555509513571067776129993775393759505139222151246680301928040221114776888128698176602944861334407589430735895557688381330503571102911862866451241678081607528590006882851846850957739411993135677432444157495311451211757165544614891294079520169119387150545292498202698308339431365000862508655808155207890890925419591049865009500520916821899114578530280006543124183540018672086372938951758449425897820289709228175345099545147037434280615101754320082898586643396788082911410302148082604315937711788867634954982787838565726567064980986225585586036739678327553409500149800608856946904331970550555995904448972209186975488822307398697573693235424515615511990038480996090490622445356400084698938172733551832699458072504517262161362582271594506034570344694213671077628423702507639704727714718663942874001683024726859292453883806137963446672103499398919119116387352046053803920319944146105986546709044726624398707036839423686258237628785431738361770942561245441578153239639444639957093257199857287017984867256983118109157120848739711551383286932182606348515229824982483107972674694522496446159939252982130051993266962903646682748485693612279125210898119626489354020143490436901513807489633000303441463479930294897889353197254877458213427093951347223872169570014595914554231811746468752522086746701545118790595565549023684064794648077585382093138051912331760286890237648473580326432885230056318094525329819018123389341111417498968622106346930017640187626466222778077071407221480665078800372960579474093645945304471932193670013388190653789424695436690442117021973951405346447774778245057745754776589344527678720429529233958192847239848963089060711760694262076977433348236348262968338522803770782775480507870689367783171211057689532502057945712811679273228765772702977150397670813621346607952399954676900087354109966453813298064723455431435377300044237803300267028353255173283692724777353085407588591281144027459164116810480824168663687271828711324205040538506988129066415761694898727810819615980166674272331800304350170893877332231632747576961721382390942350793729068591382626085149418833247857435421398849253827365124622145867388143670461180068201826995653276987819614451056771479515844714934671311397949019689538327101271462827419373142616857479884543802354437201383526859432695731230879804871021234518217578303606728293255279069622011945994052847326409649840467964101772196566033145458234223435870948635760202461718379329735088010820920055782841580594020364522920045490555832837495410666817298701999662660021459399096352438540287172749554640811913955178053511550345565016785555951213256192261874145031176003731513794604280872174601732423356055683028095363809967339087275369824816634316792215414698958940243294059973461210574218971537475634641174666025171720082284050178235081687521823490432574327858408850633666722086079403620912343680792934865957917381460218346944910556968339904063873792361986854746197731487232705006252096483980957927007002645417369010094212378811064386991283217049079572599334653393585922452842373312133186858166512130730666151178794479958322073060456260423712226224076308493676508060996149235784482488509388631467776516099422395769785730773333109941169988082604815996019148902918289479254050881966234874949978416477099977499733910673031492593919607666701019311395016530553639793963893851425213393208158828958600979160125241963582416486582146999848356290768439313262493971994639614448469417792901084469100080771007844690316492299232795335476683049608948776882341108884539718927617315179441818618266733679842053440489004771914698670229796092040727123428210180791666761486268842994821299679872007912719726004577873883512234909489481264720088969534265640625611882564722493950918551663570816746949387619768037348825363945532711229902500631295684257158105212937936768093857514887623412728409654535332463747902638368488877927702003125115599175775042055224082395418601927185628880741150802604920312469256102101249820248772091161639491817605270427629211047904346327501990398820794278880369327941762388393743182729551504783306573084686539980655375461301911701318747984437945983983222626224440434109678563973379447728434795142795882530956678079640446366299809330284834504211779832236552065379135146962685853395451051354759551061821443863114043882568558120963333016791536189232368157956022023886718686407063501202386403990660801113528674290109487858862026964864648969920582833724448285740969436279517036258414017889251623720318803379633172225102059220084969313330928637316282423750273490557761987639632701739837523736973191452117920627159062550880201170745544379111672929415535664194422407021926854376215685917942189538979147800834531520823142627809602680742378305461435366479646049821211141825540339996279839569408956986869792389188214663735941545525573100878097125224236503510797150217280047397415857132109496082113605775993137202617415716392877809450320003903303109746171895690475222385479220260186167723411869467334095960914243206571312300174007184745721753758972859653724916788332128146676508997226199594377822954334961497419574241845441331987068132104553319726854944104398373939085198222520521769579683539377470953672438780672329946928139552476302719810490695690923387194376425936312920267606369738468396402498666423902697863812909584893057053876053573269002724164137883284032771490058952654966940888852940756083708847573991508611926628238939926264541529377073943635209654539581916344568318794088435314749718862941000175747153109675195646345022787856196546298327111968060138492915545979116815049670405578017276930026346851680860181578960384269056752562253019989224828357752825512338211535160685541214169854055678515013499622749814108876093497444685826589427284955213770338881697226144852504736350995785881583775177147778903582615359031120661681961915603648064979045975376042037816958301468403827026146277925689429933904680765743450103007918373548048613701466790974021162370655139254023243763655661282783516211713271210907605281397599744434724030259241108850659767302517653571665509425506612539511174999424732568174021240033364469045990937239018827206673605428029308743103468542827951726210135716377960463134817391967331007433169496395130225573516807704758038793341643726419612832598986237173022623840174548060583531422993353583520242970854956552066197987065997454089938645338559860880101430111045502705251397286886336887384134361807656932100679811196388026981501015565983271667361729384611331276467489252742259446579684439096460544045823072661210768754052611992556798330138592077663794323297767078565455655505997724291527698374761203150378847501007886216920573427513212614499441990028625989072594065375276971937826804309109422970749891398788617845475726379598581699228636158414651433157466136445353599688947140896410699839889200928241780191527484718406631271638461441520070010021866978285968905862316225336200056096098442510532757748768230314614965777235487092472305376976081243561433489524225297786171797204784188738300057928805517629302952222801994476553721677520413633956044381297125137610349334424523501631707318036884546604304134678941891328958428561205646260528178935775620035086495880084123608440544136880389926293318291980735089754128516873369540525725708625526606818030992651409172529202060273910884391710990618187086506731420697451063773101499217407069940737185411766291560170369944946624477217600362765484287868361323583105822974999361134406259356885201159453503727285425209050496118492954228822743971220802617902646046677596474406890723912641444656708140638447914298136650111932425201594888153716026188246333955307359557887957002926365032329343456130878356403993752098137145487996414869778928010195949859256227590104701861744508817082732003322598339464933600078098558863216961428876463867156116352841250674753097016810589073884054200829820913926179246694809063210734118763710292169009156453960172443874344555958369758548980760161234316559095987216113040637955977982923124876112036694865453002551471101129064059723316361149844377846291159730741704928449354807732193634388605115120943492198633453429886981156926751625338216832465803657011762504696743853607510763004115359395139914138355405716529716539575264990667846079941467529129880231043110402123903619395115025372212585623596311001384188974382424486858365030034432282668620404492260578306436478120827921827349867570402569371991656430275908129843881693314945463239102473707691934361449497554882683102167377581734762261566196817334761056849305771482152247981171823764938701858094383242156058052125879762376764029430793993911052574777548292809520637399105237561794203724352644669414572895544118535969501021641739180355175663337396009838859552420124762851763478622783721135516170663579948793016755984902700668060768455255115316188605952083914894164216334209096545540402774258009677392154415182915950283261868339539363516191346299590027064643588410512156462093273857815595291107341426748614060459079615510375508422210623615869689196279791501959215734217975099982838951320975961727640592342695589154208116897248615614178604008865407892424033009213137757950103271983461302114680066437446785913179526839177611482555325487708392755601689280350544252819351576259286800479308513120472869971563012292345890084185255994442609944629626250948300272498475826995091083472869778859120452565139687410345566146298355052015239646109815616413370903841852790185314400193757614563123235360510614780847348813079039511245608877629713917509714201161706921345911645430880687887639849508976961770165601878175157684747613996033118051035955281925690211703366381638219567331672001257501514484986057631998291273008479263761386283999019465533055325993613748854964796008533759049818451446626805018390185148618615995058061033219120634536091595403815882306189500479280668380668639047457266384317398151241984944639392641443709709983644584141156681725557073172369718878355965728741808183500702592186012586227536795438106242537532006681954187935539980652122715212468470229273741881351390309259643817673369677494872558287750607953236182293082363381140794875710853811423826673707130313943400345966700129275924502492357801936216965657856629549364332737386761686083422342298844737838727199628154118218174111229100193265936867470006111647994832176007661763511837159693761154114275435806813577327121272616594919477464480288856945017582992474354427261928419053678709100677817084531179916098691081249556970093290758214546037536292574019037499451016000399148455597777079097209496038862763453919048924843295437185899934050405227939617571691204630871768991130985111200256078092642755708910329259519383959007031066419527349053443259219342913671843164134570317925096713780371217292806750129951287952404371763211698128866197760263384367427241397709316950470319318184687662426285878652803417636790827428398783749305535859924743290870134188954186348352577600736311595524577727697332680352147432047220749832936047803167076120752310340464648018371886527906390357559520129644040614232740118171789451024464235285861589680165013638942454707136725092706339262843772996113358816448916746131399186632217841500198466967969000171666531195015329481573728644120166050474079259454670389247352878422331042681002950156409605860540185832049164516784914894425025615746847200230764964120605703410711266151879535959392098741797892896967328354926345055516936806145330749237288912060600410558539403811680922990467905651863114734109355488050057709748176868748379850603585287196509975847277478110810275023663631390103141516742554615565099766216389071397426291763351762408361723068320468813005543343493487714724211433256774713306201244351674899723319049691443902929779530466250625631399260241111110570106720811859308660602991846743494287746219126323341674985477262010424895979036995669995229236625683373677293132697009728875849203731777783582522770066927393172684852022123418562242685082760160595773611029627706622440494047074221594001632846038293872183293721228195531128405011573442870106924704038784644047107045550727301967460959801136804343945358085489118062272395417631196704170868189824536427316439217096387641377308750209379924989053952897795875368870281302101472804046667209313002289001270279353596151280823395466270226038847736504597250004665625553107315422915723345445700597187792168435575709139894037405129653016465120281038144446433560474689543547665578506186460123705522253758059812073581384112525595786056087097728290707716744847553270376484546117637000859612714993843317953031388013197626909038791427544986375167710464226170488341876670077001190032633741693406255186762281798730949524194007149825587410634521043013798300605177108398125954351939999191872360382989738389970628154653500328683754916081579568722352953490183256615180030074855434469756537105691672693558499979626695637518948778647512756725337345331778293806085086875454881220536126949023138563775405266145128220745611318188896160423055360133094965733494300165770251852553132238655269745174783549533597467460899099191922774568472790384448315177625739578431513747088498168899935751526376733735697529245617490956494007955569276448743394071315744470373582582117596511966393805553347196513510590298048897392588470499377569721786300762082832210082285909095116111518283036451371253473356271059774898060712687567151100982926529872535420696343665580329181822254584834378809671990647628278933443299737830027227378738077825861190604611809385876203315924158603883490077734644281601754208041671208505541195349060657504039160702934179159752458129182093950598588691828855937773513184015627607780657969071963831422068681678374144388619101744818237416427508990673819638848198524133464049678290030191593852235802207407286939884392585713468449993606555737399093054571116238422893564213844495297340818474135938709776114104480654849321473055138897542278170398712226803777836952744080552407065408960965684290263569438758347741657774661762186553334685928646425996358110788549925268334092633400075876422368843036290442392742984529900647433246511496179838188090188109600475285507387162100515918452460432866604740993627988201967835782854064299987443039884560133916652843640273190999014450411496463361249928547276651144230543321711171151850686859780081841401387347447414849253936086712112401277351700667482874585104720937324323678359582243913256040136642404848653794267230027472477534614809104149873672005977838800807903047663950964687941482070887827784629136381611423641665298815582243393994122574568781834753716398460842976068536717645617267609683340743364328851197330784762577277005291359116397780925187694786605720101278809587730634884572567487246143218266484853337544312228723830603695820741432638111830756398942330525425570013255325819797427948228910378802789717755298050171669019490155307963940160446654059625358206533061835811484056150979589875713782183615910062637370400047380828248493240794594002696979569555637046172479919399864977244428256842540674193608771250808685645012207904306946628128130172159422769607919322742910003376554729423042364889817987217812332218315916286887971085033633564111083799573474574372737342967444455852290463542242632416940806935507593981871647154332179031571001257732964769553295487088703434233845254122903900144685276400368282219594946744663353485784920764018406422197758871900566332656973722423035816450827727925816115282936892385884449646073410930298307457677661006473525449429619665896530443569306288884017276428194012849186726965653723109891714756333376452699661986832428437342989720754737682239750139910443886056758442201999414017491910605835049583787006194039685260882743148567209458343439389185044913884184412886499409846557946063962625783018826442176817567724501906435827583864588592759940778378848673427896954965451471526338892929655692674224542521264469102347599405470576541089775159005796513964387574179856694967291862565370921210905785797104164388713131375519450085939482373265394777406296292886338219904144257059338411727582543799889404117448159756350747884191973594985214212932663832817035613290841039033852638400716782541700748398239086018458446597060036493301969464170640535645011160686991904827741019841866049372386346874692653425753140576855986715256822003908312300246010379905926143048804610191236561134539251895575407388716613830748455159042864576390631653287677910199282065300157183669845337997689341337060190210265625213251234101826810947061985281195653214860990048627984060719015415791902310047286759096869960652595503998710593624813001619298600921355080510745997408376910945610685416421795622843181153166433304825560811037670603494228176221643539911770655387745369623602855194813577038959468219873455402249006253909117609796033993784242060348010018643418833062071078088437347865654197969346936597491461097591085776590843684947495709133939865918269492074161621249696296220625346686777332609723396908024807239332974198793471375630998365229263971520818941839297517731422322131278453055620310930827675910460101821965017188806107326400938311511086745644116183691623576501961194902735397254277295917406087544886483830169868066124987211834275862489038556274599597866239510903394712404959730332172857276226174581687496822254884587286977390093399255300820899381273322362845080456368495348703200985905318093623005936757802114395300007144489400212844089445245557517547778011874204455400218039232764071411870156279385799191224656638868719278694219060764575313387726463193101667455773018890781263544244016114496540048733547482253555932292328888163682938647426266288520796319514242656903153120519176488539852080452692974427740408335120738110178673439768168969799427315313582486274367888978343457042391827065600700493931096098076931673927968853010441077517377942148993488382513648855669359146190088519487780677875054851691858799881704254508479142182933302422301024657514031888835020472440763294038411917430749871386097213524608410200780895665624070934190857257430077007585297868945943350499837968332933029142173472053548071924233751291951677964418589701050277261902145193347912580119045660338925416486745330989772927265585409356970143353576542239473641459163493258596159830899801373598770992724900115489025439686188228494047927683793210289383921513056762921062760071635789937036367634112554721961399167501307225659115774504280137933148106480032959273476201634156362416150019254687071410407870714462055660363286029120426836344839685583841739779913913155038932666905248512989170594302114874973351244164460966811539953866462584451577414775441482421231145560496486552199426627122606364728475013541741086419491749508666760868773240076790982360724555703128216768048239766414399067482829521194753657031943696130341547836392168448530296949755779685212046967201303758587246069908371495016853218201934326091062253865295098980390545935695611458805708007408725041913965641203441867398716303880913096411460745587022182341169242327299756587520070033309464976874899677731073758822981885066059106987658892425447112457941357773622966573725991956623745586830144003213535321130471168670061077558923302639955729372608075353229899450675941460156606948355290380191496118008461995505547379934708808874524878561156772544422438396558628634772466453747880848617554716006494936347584094690764958912397314476790843507265123563591523776910074000115751380929297587122731046900394085597137456205265057120831781490692173500639102725222365746045127947584365183795589044502404325347222068520769609170327556946049194758283713186040731902969613900513718537924756103752972993130529280542987932179591365198567065104108194901142626868359422184749955910367216482953501016142969174337051793172089337424940116307159125981282108374664266013760520108691347544271914352868875765645013001775635803295665367526388854250756223623746971255255870203007177525058372276051477280431059373109027923587650426290346514059117667320132418954456944214501110099236264243796649218209883030198727892987826359406254205901831156313571121344424897915807196880851388341809041050263790675454735025757241346684756847861281030524775692450425593603090541688815459962440211949017593863809814462637900299110625981275643242646967944654905510273981637709902061268678721142576683645856244204841936314873887434496546383054792415427110214438403640107468286127354500452117648306064682520021545278770700526555290362568734069419641362370424133687242156472470439295472787684164328423449281422272196670836167069873316539054155793148377674038494005356096249563461320007824064194820567194268649153271270064717071603432677744467131596538875875943108498058890032405992930993597728667373683511958820762905859866524545609070898840212793556431283944899169484373073716801537968692472546729743007969388997446099086379097950171244125961622515842212791266527976837110548503909683591334312219220790888061604280230112194368642783080509144541594305840637295809267955985240705218664565091796103373597900586205869536290155497471109168388515876065931065100067499284302415253222486951337468523388682155141790944554062178967832007114739971324466696364765044687052999528836627178434707955413755585567076937274196802226491091661821492925330524601685264214003964067144015420711140776095753462603687309215542046798907211792620710876681257125262630759417670060396291008496608479966078023913511923457107631379750976994374259205995383240849902889468133113165162320061937083809046494951136165846189962933344083124085637912221298547335326973991178888721676632839485334581870874097789046378530478901970331751639342485884585835485660725869040296353007762072793171421801449736710964173646604354734335911620357737628237314910405106278192911397694233912149478713510795696316348734074895391939807143141801346848517985176131699125405988138628327975669307156129339093286540294877362416084286658913634523915190339633016553406504463447221677105285457563786083556038043438543679809477024168840819408375620888175298014770962493561599258239705173141194906098412510386555733665564932777504141272478155801535543704741246256057186090197167489948677299447411827058366054695314665261951629358533229273439129938385465640820898357734085301185582105943655864872412749044441202108931806500696974305664773898842514684810168097272632172864748738477500078308678521767052577445709690697217660884001633277815279343700765512107402088069979524610557590502368433979534607161638467320586823605802990395717187936731126155835223549188379237162382944630986415573050705174636652307073279942491478812844343022238651027123245857994181242838096947004346649559919352781277235321236294434542381458060340728727044328783637718384569712133498296534689029894777842910073901640473381454204254920336903824407939655410768764938436916115977788965415808680765541125912235228418502103577655839509790471379874176773233368734417362216552947095458590482345538808507438998885339915242170484930610901712371965126548592798200175975883409596206617163879168223118792194014741046003611600839247807855197862666103736222807444635511928958396801835705268887037290460743993956622632253513817047343477199076995359833934751752486805007387061464592209398931288608401531400823776649919077569438498776448176946888201392054304315905550739197606624498447669350048819017358370191822909185165776254509200055010708781148553495835077794732859913024967107436929111217953112854682622882276548622505638191195897017266078753135974678424923996302322360224876880767259909835155932452549410474654868548779493998952394436218373679883580049734363764836338534832022818016119448390007100125039633535451171219541657610725478386542076737327356340749760794911896795156468641036462009005985190564399139891316212006984032963947783817665448661385381959755241466376656316141089363214871260141973407451266059746115462248583795613199986715071869630751900737550893865516897382769248484406859208269297499381383340357335087867929886535576641938116473019656554634222287077924555483767589574823809292741192127211062950873766760635289113571395841301912819345424630093770519797203661819936477193611210590502326041841092847262151996779886882677912351646667309509620524082065851836766221824116389931762157344481654685014871884040519275549034036952314886023785374183876127017014052278239985007171967000361948087549011043072779007182235121974697159108971981673159676116703726144682637037635398884849413396021303752979890199774617302457013101517509827838013519823966559522182337651110908319781208859377784425942998919098524542063646965469478475747096521550411147624394545239235674794326528117787826134193851993660443955506063307981688973824708600014472088740495938014391552461266607066704440188149639430328504013702163706358464682317005011628676901753733699218819113415660602611032463794789530263041519067777097382201996884456275363816221163701697136961615637257170023410782374532100606112744424563540315985507234781583282713547643534025126960385741793576789325035491934218652140956939090912369050432395546922504644033016017151665013161418117784644750286342834960947990120665591581965517200271873394329887282995601603710040773244239546046618914767341415624106391183804346164024040477922539174447559018935402049991089328567044839179381859658976748154413436973620664355622013073321444985429385601959200731898451388673087913815588272350687420852235645265041005975297603492467974642224253504291998605256643110818738664678707599242534314787945836676908504938988604237045812908313814379239563757827420138555510386452261617606328430866374705673611367611947272294173624073978512068365870168593477017729944697092460332697717544506446160297289865488205193456407743210808931939183878404458930484680739615619845703619131261328664899360327658881896239034574414927141126798712164974058072161672618631431029327910149179363591239625581568359882782810048190386232918309888424146149852321446590627879549906840757852718802676535330214412801664951651260552720265660097361897135314467011411332687846641992957044200177692371383616557045654170820823242812941153518951347060482447845558476085558662969600041863896547399667749311978713927612320756543438945363209783305407271864119407002349251930294882066893063395937461566413067352900305548348860625270994741132739680771106465599898468866532247808618443349609742392214321267250199589114512060574873207271709911562665704247662760255525616730972691961391325340485750076477932542196837517149493516750984435209457327779558781721115657137570583848955952034828672428915205374477378255146469721982285672556720008900671393408605468661479828248688222947197018922797571834202470228317685690082993240876062364612885105497827173184955478380839296939032881255713505601946058085740583633714540144168170973287812431500444012549947782800688769938370928772402819411884128477148673489589794563093940964896354827345452951784801264202288956516298559882596880919235704617207294655365868185785298773101533582398193729241181537669020859094377424378991197735279123764698100660909071027435956382429187286094871268236564815531848400121539404251074351529080392462596837934633029631265929014809466335024611405548531156709415552328447050535547720328392879883249376307996418412673476201890600163445493564093011393716300973021797139216729040565637142824907148616580879693404326792045209321123158125431146761192089752893865003804879965124602152034865533078664717996039277029168393554970884856311299689975960568802946197837767988795339602320577365828082647742074825700888731967884654457203780736371103916617474254038469219110782351317301920929215332249889974317832942940354317546208599996194885671284665319629217888553869736764982731400390098408407333499814504109151784964650271936122290587310051480343751184551744086725168323916286832177806785523030295729977054225635968813908279703557305179700652643480304837039754948876209376931629517976190389039996234677617463231739124966401023214945267100867074368785336528648050793412767948694929771780274764507265231355304727913901880887273602256833488580059268976994069253282042406756412261515274783768926788837662144387312072616269498991478635092593581143793986502768310754786283085599702056271780821624502395311843680933463265638115774421393439050032063238869205997524422956486913003584507556330820468477814108439213339202362511235846080556431120291814759213562548278913144408408024581639827289603824109753047099380212057043340063692942700566094622919375915102483169741447914902015872737637371372896991662715310008463284443994689643808261968888107737232471596847682055656147948076240308611092718144918534131713757275735133090505453281544381940859789685471386418963001655413689986427362912359374017376373448751563501199044056600929777558659061766022043909473445554519100218959514352939472991865035670028902326828116238775322466912818074310385392826504273508437108969782912219639965185371530097912378768222140965523660998876487303863339228011668437448908202928458207067830117670153564475704309335147894591369937966481870726229364071534198411513568599816172330587578903307212706484519405365897592182483572548787902551456134295190550197945137326026956334004859508574953541631681340499158975347714557875990204766301829835130775754761468409940595720289821079425731877980634993962556432787840377344746570076404486036519064355488752425250238722707460072103718379448386753255558569321091745120618460821276881488529124754372841056345124588944337388502472020203003041632621607618391325550634566381352872873946515941533822708013117285260031491490567940165864836492269486605347783766877192117525422009166664298275852465363685779441455579137915433407628579083329364819029658703951575035140269386797274703788997062149858770157152727483593108775681355127416204699094960940979175364090643574576110175394769799639634092456190326570913538060437960985630517380233283084257475473063564569297785224332296755773341286055275923868991378918588075909967301340011206231752121255781921015646939866138982822438024295131699684557755648333163669718031372584082210064388008855306759999326089969326848270943841574047061442872768374111418380138144118466787920615381528708589481192491187951762899040301216233329836404948953436249455599072781870492030753446724356114933185220631590608607828218764839752473621203943456674254681466742100773810327719336838383415464342063370717036255100299059965931024804462842294186734051863568925036903083637109952065599903415239270313859114025145272868249713356572971079101142764296039785924763410339530608751921050961375727865943470383657005785002271032882802790131779221111298532326624372977217850608638325900279828631234740159528222957635270698811552665438759869486644465696146489839127401100401857206839291894896565187499806191636232660698901566742051056515861241005883061027826564261412153597729481580025034768377467405898126800501360570752533118210879284847111181786467670998426007379092862687848009131303688665296973777685451332060175483798495577456974581349536551110667604296204580090685716648853055609317032255044301803205506306634512630690588366271666759055732130518346098243804340087558113520925643820528911617541775673869712398011065908296252321781828351971367517870814901639978984639523574559632568856549438193697821526142407852992297712645998527644683165920199695631667354039324621071813500286990250794785857451706928251498655676129871560841581800403774721320360077381047057555144954397631295082214654387124648842531796452045663121365043831422713983426271076815451209515679765353515973058571268431983636177046064589044722086423729685902245662805326789624264316655950452327981880725185637288366146043623017079796888973305990388011955834646601138123784077656619997456787913981114977936883187121655803050591568207571131369820147147997000182568837367372912451195247238002379305383610537715678830892314997898102342656105798883554063070665410086864023440022789571269340552678712964142736221958510328271811628114392067253307224481542317275659874127179882977710847544628046647765210895692164122232497247602324699806794630959230235025620943301635909154909469015786087590225944625280053411669774243725602412281721438280015464195596739525052389117859395248684876789246775390841340306711178484359878602519029288304674074585625234422910010495742293447878844763375764067217880489696126779194753822578855892046253128062437009899332257659083573472353188854460477212321543307008230490473313361340111674873655471609693435867047834157285804616218059184915989722192634806848468329331635988731243047626443991753623618822636739688788247194117049018735507724202517616342973093722450556290259150060060008291982422177100442993567911612682482593854226132435128655978381537814551189065131428280448428949791947153165566668511520722788313791293192386260796378318105075222061979595189946840480032588527189558285679285079007826683066427789126996502832836213234121874026677032495145014881024472963729208300597478224608838788565528031341044170336471213506349269172327973934398117305062399466199795885511169631652417058307029283864824074705544084325041321576076737809738804322423910462875835996162731442782595229741236266559646219042727750794997005657869720750679656839838405632401726202145493949902479382044512167281725964938748330567507564861390520987353844902881691463536080596559809006286954193078348860472591513970273283723671453491407765596084278306984401531407089224155962568910126986357143266513883456827522582735160414551582950420717698571696097727854584249776421106891005229441261855532942170107046578540989021501917500248030730757549979038275929123176548819408642825970478786146826267501846902628855506895950420325478282625848676474425374588556260712195837056139871650255641175801374211671321962380053833620839465341449408044747292975994280570004591608061462741503890662840581037672435835840074649856664964322970678592705504470894452712092456052286282832326806999860828281179423031078448087365949288700431963985732551960838419136231981433436286326425933860227847389549844230186890312493665853905852034204327957134292941991057284787727138539303597753206518090162351683643585967415844962259451014080924848463781556787654583508946386489873626612838644340636199491688890681455320128349048568178989432301845501240343987613155474536891351042583354262594325197219574358356535040774471483933708542885311741979733677524811665969905397838062872377840677624837855438345918610433654534931582562381741453712540077153685344713364362282055016737945354612605113851480026154915171420168841457775596484770502202626843763714786316665718913029100424041911996431645902268547127334493535335282053234566750890313887555875176519075400243474675601157382207780339237720009161632663149338075509972350821394591154018875015577539027543120084025556320811406512396563438495485065455375909164550729045299774093074166794325156942449543023860347131999339098746645012250352602176760706599232811590126057770029242538129397809573391130160866587231090375714846657683327783854345827653082432188662455775335821349361842483265616654012193528737424899036917015657354831974493787998287092236354120625816984533785493587345082666596525184939532336113937307506970705952332387632084526117744778401141238160275466525776906142015208889684119373973552236010824941790788871570925850489604092824075384260792153614339607746758963493611726596228023110024196123791058406234134339629753848289618352144479718252015346429822968473133321748245011495570486926795393108412740652907957476388521748233222520602140199450949550940967369952747332590812614413678901664450250979826482715317092588154585986498468918070741601832708302411218779947696509462224020996050115655766884216028254104036554737932119360538924371111016162707254314476221078403813503105948530778789169478092936655682722217761147590502306643307458453116572855000693499138539256596157239490257741241519704508992786235354526742576423086770944402823987929874475256938955573021226328364201675353606490496384043739081072653493248709815375076145949612446262470799431542089257727042783226873717292373179683200290491557294231291833286019246453054212270226051761264306994736996293685851908624120969191695454199861683601485063685065112554752862335021867599019690801987677697041834027848615290185396772518660612395827732453227838118725177976100760185458830982660576461320364704135727572854010342906902309821586710268476111291992944636230547940862492010888958942847966406459888399152231348579465403636375551593800913523769019196440027336284059757988363043049486033820783727183778768789410877095881990841127146747090966087422116056506325276269650905124337920454564175393449788145753653619719312695164776225952102717228133431730726188675362395591855969329578136765573667296180955101140318955516340112640344167562451988598212290653280224675265720098844399595955822547360619711080111676863575571074637182738766313322807203666740039099293623976032761352279123066848701764991737687997406562000479436794519933061784782412292864169818319941876854472489308004786691859297349384970404983935657454602439733397727889355190411148629984418219960012486537751443411683930363125144677936533685098389096837615298754898237754641839984076237969809389547489164722232931912432612107188145182190063311158085780578072513725633479279571992803021620916745368056380932574356570044093765188370527403516485684796479191174705015517668314233726818992682402536165471461496831098279386871631736689347359386805650276389651809688979770363028477924703322241651518894784279013920616192311890388854387908003294926744358893074170199930737739417939026056002662610581438900118353653011521410329025528721168191204450157587841848395576099034970892532859079039072864949356408593481089099594203141792745427416837052720399550807187610942832628904482381236924444456877940300627837249009497406595745862069773480318806880557645723388356349663384990612592909585546405616214768433809688946554280860154621719017062084554201985524199904395252807603744560841263111511693764667458983368350246871539654686285856124511040924936851501524745376042630206187224674358040914407586384164176480958657632270097798353293321799370585298737893829536463758682792306194165145985680292487731833572478564480405639286382725643544039116076886240729146321821114283526649849698696357948889921413266857448002875370270514329922775787105614237530668168327258915923214139242626386727495542783591635376449641811915060843818553299049359846843267131777727292021461197419903886437227842856816900436296948369389057373847659826188585874169879826865325277898101586581501361128151413565361129898002624219516476025198726078709830988243867514217144579494597163500670481608590339369976319114142451664810213839977097026397078745872810914035315454505102348042203953920458947957452742543488337138302888888869963238966962041061980217612907684127737837719755794130850639447904109099700299433282307037951408078623661831909079943844371773857371655110731352259522879964789573210784645465089606997401922090254245810674272780376302019862848244653079477543555183762883029609928437801599984236021204863158516494306028695397003686971585899568254211905679891684911412391478597509881585782878892769409640016829376375579686694424094696144020315696221418224856960428653463206578306199633854995586413979469138986565214323081027826056398096017513596214939412253722116021727156956790284861816803817725640634211241692601600072904517338401600226052632042823793858639559801221036168273556730643218459724320740469489309051333503376384552653215139418349619504021980481608301363488177263284647306157312862865087572804852562774062795866193341190201402551842690438786886725622531753591900017238209042858885550211647627527325635950038666122794193468848836636365245116627860254904858738153310168859244505448701935698587138831694372493273269444318548291381790942304171008257265473001655639762112058485256634862827049266807630916634126611580535696513182780955393882592899528471237383042029870237233094071447829284453665348246070072526069711394421843059288045122073710518103055225867420332383371797732361857001084708111344567822433133442347223877212673704015377135867941543423453056423359215987948966828885206260380397732616616083666438124354528908354872896726621023023423172008985800788236811678032050501541675527839914982638896799686044852301351614855619366328229353152032106304935197916765180859282803680806930904551734049148775160208367024465327096903650886855945563825617468160112190209680679987602846844320895220530057337228295173352021669578914963390118608786711913357219398432257550992146018836562236361590151067876976676320965416573158844700778990633907684704361399721516607749358089437560898631515798448786365348742826774472256408037726655014804651984132747728014362565772244166898843587169225754863750923717886026794406019031798782035738397428844188782263048072298383912221983267308940714118519429824418470615057127269408832609287132282959678459897935748543036373546579538554998000901324226527661045389325259456472778039944677627865973437234151186102972785699102386560451957660599938264676423068947592956124664952873905345645877602276325152853477050617701205069030051756277813763677680630428157672726023109047257952097770848204691324829173860431403589286043596587184393979897358683366540499228037371518151706788719832923611487554858466065605176472242583590914329841583223735063034648599800694884502778276252732007463936354636267810638486677964530631279056597132236200678970165951340368038102179855177757600970386973197228851401733810455024919363780908660692619867598907492739848501474453135230544911529258776319458629646006203308067902559406914789308472628498236614700727353149519305481112293078768250872466539906465413764851935848505265571113175924344181030559508938251290050973969824655077688462460802739828231481451113976312233305829272072806564183971480223747292943476499358796085602650145818874964391173783170845407300240234071664089511948433309477210857847020970716257930756197540610485664083969340549929815078971121349208747958837305742689550450622967678714470647576709952101088615362061503413011106035055848893925508260696124411180664205718293006651512319924762372257019806741385317312254493607265165149537746248031919791376309377789689032187376728340333541022017007861037003977704653371597113509688539430811261515344829542362133183787984157228447017849525612971755242096621614061799888310779621511884511141679610650866366772945720053146475278209531440135701670420293414300544241606000004021340466838180648203208323319048664950426187657712779909162804694001966653214445818050415875887770497083578968383633273517427472481239143388062302894209625970196073060700993070245602041366569455488889713112843058441677665342763783388281179429789071209462384378194371250818814621342446168037791502630749511065617781239555336033163344849299090785605832584686506675848335459590790608861124481210200607386900621608286192601060341996647780387887521019041858752060605334955453885671447321260114504595054064122783016083412049073697183336030869083897563228644993663931286060687588342792418354895242646403347457349240065685372469218975029852429347190454824016489232184057836818647251651327444024653026400200131102124499816510610950843671277667380837599238710763911892857076832729799526984037467193936330479046423600791781120574717167426362891008524697839010222055802439856268671268898363584235496852074544001798543834119694521248312056969125290480008983288321160603246089409932698956175524272145303836910894085065035786198194460938875511548987812487085143425139271996628667265186715581487664850730809881956781153161561486495157643703213432333499725292417227512403848515285991718668925026637775425049854498991176366699969179321701414686558875745260936543525505198874676843135688522175760890984471838318460818134334331191134463010264209100936779729008763876638875376603921394532386190559339327195765520569943706202829390101854873572566194071636658096359132259349098329250375388915940551727678013744239208696009819566438487279804119048494920067862499490815803579597065167864118250937048622252440207225373397745414627558745401816128569238655822791322565436010119241543733558178439703507273001553536914896710613338353845984819473763336377351905419991324605516054201444891421371788274746473434190352992309002573681794817188310370886971437806305894276787382063063066525416044141796194974028942443251384473372620431080089882104207501895293218230851532765469007215475566044244696766482090174313190261766112611027736307227461225062740377584441900302739071993236735561711444867397098945251622626353147030064172402772614474482001391979738755021189700657561666674225091236834584414939853979255535141535089972099018607231978402451181870217590423458622833631765574678017850745413278839653230528640904554779928955899027546928469624550199426333432552447852212572924761692233068475722684246391965112643247377192882601916878697867577580613103146437431214156558019427929053996794302759902583967330490304631262993818544937984193459231237251038155303781867115554991691529749567086179077666736153016983936188102413879106750234957014885569150081674489491867634098881857269757404391100426793434155240960118279043561778180959258236686443983293865674193570730191186217314451479883353129305297813777753185182274399698499472114508810946457064101004081759657625854731305382848764668643744343432179062850998240593740823071505812034859693439986088957107048989763605651083836646207176075207994833073174437719249429913476474114957480810049824689244293331187641245064063420543539492266821855611037524515376835974050569670883453486654227500723787387578285384654516214163947378081689318418832604033412631253304587371534669131126949542437866281241357740765214370233170025442203048150863154965668550115832500241546139091338660652019285871023052748649300075716025236473341078424080576157252673223921708131617545858317887030536385450948678634063598051012656751764794100744994131573408116684670849635979244305576602961689434003270883441384167668144937182019497865630108088171608053732344334354068271426640425399834169695083857391384468465516628396103983511506445660231350854154708115880542749497466256609385112242768935319956425979243246324732782881572191777040926208905272743215556951985859247829554656443516745526750493786406934365217271919253543834892828793055700038242082282282464095418787982488771903512650896813247513987962445758013261000815409050461452746873427325586180177020511049598365645788987609665178936726425275924937415421067308325702321887326923672226811766070244233660649177445739979188257549373897099580996293191473123499823669727648925953818035032504452961901101862954385098345576466460583994244460961602745927804733521128461095888421487889398811378871773672557974067980398892472760785867744902909710191785694823456408855833401278703418961533976114134547742177743062994662591498050801375740736138457410855788867034767233504795308714219596563792134038096662077569283456713339032582434599304773135202834772610367496796854558582939195710078257637299749933508053293138151696051240462330131046237956386780572016606497284139308140444647979386364062422928755535441900144619589125185034033240309554830140525405551504191358379276582165155676245079963258209582177143490587205492372056028813766888851316421296596602231669408048693722219606180240246768708615294757615330857407746564247590345056933888606883534770270910573745165930966742409146849224801955878123926243405972580038867381836469388091953949330374898783035063685779138419175542698341173322619881787479936100231128683658795423338422645519735718738007489299203919479980256799020957460708731919564312971113042958569756982694599573672667537084631102345857008357257255806245599510515094699015642804848760986728323467236432552163822142779432352540098547080659108708860917919151583525748655243659886373938669856018025902579841953537517546543980432099056003732888048711926888327342731693941058087774337049888492919453891914792525363837928074152522120918386238461746378854177368501285397647436932137234653125701598684074166849015336699298264006503210544970456221434218358518756425728779357381879381398343935539775548090839400000585828263343276068442394620287857223135740477722803738098385558254773363758982124885996053729919393470190949893843770599420300587796249778351945420138669007603406983093690813439003341167648938949195270110658856350136969801103774257091709936808355664819141775806127128688925469678213192189322624471297348301987386172951960979125822126588089367808941540735139895169003935230625325111002699275864918365027435263309121826815614240253879815722424747617954724715779467402603468090982736451256192621503309632446016039070816515817218361566860950709397967179323539850495961415124771502443288907273645207955528058493851240864355543534772611302857386961683916679872667886127764709696020184639944906127082081518630665280732578312556408799712668078098339797817070173649493458002558443456790888691931775187489796489801839127344336563140456673253546912423858280140424635741336510360330082308783387739196534388797449917671581751152181223814919731756797558063667672510582641940099330359920285918350225236908480163243743418042692991424205867339373103671144272179281973314463666301370709063098848833692677315893531507949626099840222967065151764282947660641134462820621221055073998093456791876579867764410472283579960543391910365215113041667205676644560605211144639709986741142948459280441301213363677571484819906222474357940474874812208437080898634359386497493399340754863726028411411615408352805653032958874382593595299115424396381665344467557302802957304657372627911752800921519402913221279477252895003999035297216161656832720371411055720812095272306573037984087914160166046527627726473207874195415197236545413285949252061056133697532737467119652761010227340652026239237508303102170584754674177129643843560788053509251044218072656746726613487904079952127249128254040884296308859711856105880071038676795217891388396635962686473371049948750165765796215804143330711994847474113942137174176461154537736567025726227264817092542214652738587777185346391633739066183700119585942761476920096474135573422926745171443005698791749986996560408000020987227788043047572064466203955634028699057881134435014993845214541969596249089229885866621558410804625047466209056924631329332826217653351146882707530446272616561286021731075443790934968572286377414999653345604622144484018064841192298356251818023996203210740137862139545769339132292001596176643949139665685141944460909962540964978218213740386305151425461327107486395342556439587559359686453139658511788848149670497555478843799246952645095951929151139528862565550599232812699073901565016726893063984645950751461588839898050289016076118302216744355000319610961063326207636019877775929224703253637388996099147178479966976537803594928519209612600146592217504393652809532965190484220043373478948914760672853141477257012426344671673388103489971724219525585887334933724864004627500780336937078148000963024078225644681204642581754222343706668299081986129436862423394976221469313664830707524848248076117201095595535377186689746658728881495977067677494932941575224637105978808302431389228526772371628471187781427502887685546268359722339724142184118236386245312163329452582069161769656959263984804416849459253642153122278325001372723638466883015915827337173067775470679236396370704282463612079095256074913483523188440241643490219686824371810082626796709932598194081212293670164785906731083014766364685429406710265404117188210112608006896223573343618336416758993778042543535120572164786145351501642410358488209859478279517093537939500855391421241498674596725231728188912374226350028969174060712310638161437259520694525815339145728880252455531206644846213610730814623465549387551447109457214447191643735592014516128047603724990243881309540428788101094443716902577264009328280974379935839698666497447623877957143978311405837934363132075436014268453717468625513766352733296484203671387459963737350688374726406885726329635680494917442400701323038436805216762321874568777357881281278275940946634804501036235624014243435811379571010232686329953118791175873673356611304879455600147780016283072876691808664935365773652659883627736761690514900833373002102353606683463102765380041960587640956499632166606044270958817671144970957810614568587335342961296277901957494655686792148603278649806554802032817898659188359650769514845485394842487761567632019419840249041385305031648504989522273216791951606010059772886950489328547240575699350133066088920079829586888733014809142030821573634541286188485829434608101164316233979461032767787522249996705102590753102401814875477796890177191942346943412080789237566281092037897919567241711483199560908416759308718501622254085744657948547490996698453869431400984110839424426973750262165791548257049745390142192975293794085226554911891998453842179402977440240719828445006985446215769167841736172773059535762222450016359609712997784074688848271652189460893449025608271265031598826458387264596964014474071379771421384554730156954502820135912369083239125588452396412535263515155742072662360022154672557316030686805142671244838791855030423690805416582864959096695269473293705109212862951041353631219573302176010551411808564257088608023951584500142319034956752759448391804269061895595410522282755506797054462712845640561384291354497598134999919885031345567132980737268827934410358690298143705260542662912550766105021685866517623385521255523403045950651307438960732110106463866308923654444908970853504276489882687039239772712599112955555053152189955624080628131758870669721009007794050519506335269918946769101293142842056366826447558162195477140285127209908914986337041742358887846740262156176305364880134250856057045836751888569853741959831440252547319420853678652856934510731281685325837575121031572676931011578814822569921708378113682783191606556166421871227709656137957422379018773377155472780275653178367821267837947493141842373796072432885026682806484188885600820684235150883916285055972745140512741058066127234066514785394552213868455551844051166242585320219094202446120201178421540948797777114970917409204763359802663797499519460351761001057417980185408123364358914228331719974992157685131868416475417168886940783335370215555528018114379978945409377645760292636235073391604266023310362549742475297762356847867060840358437545827488950668137902713556962984080702687063368049607854496949922364896650199240658829366855831480934255529997183389739442057400649216208275925550848819630526935053306106909145539123217503313678958904755661091896634576345139322783250737016084687317966283669268701207655498216685637060721563841769373783569166405069719847479840117584182997767320212601008337155113410135056872932563002635003207596223954131983280421543966264937315583719958824154825190357683373808540630306175687272795207394208910962495352760055694293571880122465980800228428618923469426004565205482671005153043919903883114597404861454069590419595378924521342586759724038093828838578349525198467190353410029836394505672435427278598293573634823997678080338038451320257746513793461769316456537883990675673181197619779027031786444186810370501678562381370783914927546953142316534718939459886558054440012972129176525237603755284811997825517493701196624177553829092638327045431023059898115171867681995505884691909403992663556130520683983682751821335714850553540772160355228379441366105373219399165163372166493747489227910393389260896704558294324095152171769360063362017629314825309600692612709039038532325946161292492030108854136522783169000528136912643608486657437571586085450288694101414446999946695650235992921586039985695510408284913954828060931517445877587538365819010535566789412649449593264451648099621360950566208145969873804028674620519386597354982939970505936037518792735850042337136063960802725601400023602729650063126702957668366704874759276843019257431715048453054155881989309440434393335015024869611249982648312682339188081300073376260034281693101334094644664288481867724889826936379192155329309463559465727500293921576379970298902563047160730735030515629097283793181892410622511107878670931551620720559225755855668008400578829741216819979446624950493842164408149915032737417751943596560420622948223179026902618515073091027405893657545783993498916069920815502536228844483337302936208670523740576778342302823847993669829236913148075899317650773300945464658337901973034375418388671014529853767296803674666438823714873646388712077509529207172151001168553113611085353580720864526278238346979183086115732073388391784453168869274365024564193554589754224102508953934958117552104172136993862512939576459644754619352073761479164756822303494084213179005244072958509283533610086756577648448284395858186296842781501723746997637982044297023980087561953293709976205003828990589313700348802737253097807848804754819419526089839879301170914651602354592380776448694518589355466295898461268398144249596296096673631666260210956463979593229915032312394832257529590254973126911276700355268881085235092799318239414587858872376926088911122697736948103519651915815512305650185698776620900285431950374255573013519751597152960975600665414593199812422100217005132689679024106675809198851853058355241129450981336548087959112643441788317763001742067215394258883658786176545135740704008755503454062704996375163129329460088762479349293322259074861717234972247276813299678154641962247373914579037166729186797779540121338049782507980111144191439845056123155902103177991669275550217110382538738687543125964551943984726529115989298014273136567430013313575573105036261564902879790097968976292018131312993908285504496252941450567219632610112263877424696891717268721701675464191058720943264937586902271729418779322429101721770291463094374285977354948561935567125083849356004430563578367405047299296419994396823344575500241847240281092284979290915872300596230353494024971773529455348707469569705376382067877591579672829290251051583274165656283248207821794823064210301791502954753240148376136080100356375988705732830627405607036890502686949068044852589679604438278962091163123280857775144669565610886578225677248850414543345089383785906851324762052016955033121839736916838559171952038067994659069794238594258652923637304806140240996947572825122926643360267328943996043559366963792823343388705000511697147285250901900686291178074857182650034900602347451918911645573726649157167850059274652571290847823695477056840378072363646860031158413337507728574381090373274947633668061191507589284631161669121807174721798004096092046166319520367544173974775839940059742639929389231558932738503627015564459664226921773523386861593870533615015896016616315079243124862284057868371628629666961973109163754977511257325293035288374897407992022202901911881468247716057389454651053116246594882641378861188621759324284469300604476155394287625280632606269032423200704841210854738729373679195126209839399002067708556449342686745781981459492849985541171548344773579704912302789117179546525165819297201957989210436796618941978422812431205038585225429225424729057210618491202067926007794988062918448078871564700235863684308834422930308073713614007378108756545259595449572460756157613399627384033247638326584531689870941389191539568685117171467655121714831606742143222346551927773287661760232055049842901522494240130859007328732493234789180983053870438701264135627072929200801637934606761293009897463987642125108632384529489393149844118581987078267623983252881066761228405537104358883884199854572206188731480679135035034785615436885781201496532007624163740914943515490702849717123708251237209253529784044097735850579619715358949852809381986147879313430609575448149457340189376063021893153279588141661484681572006819494144376938328529959785076934040903601876222995594234428378171692791843914399057254299886554182984312587488891794128034510473944169256517183235289349920689252497698377564242174122734419065238554487587263109300160724160834543519066510827812817295658932427265746580316618981335808203184053636258566235025909112857596142627246722096646690302714539593449834988449853899137624723084842392430695805563745726191615218475492287829004382630477240482870428586046258529702311897428329372395551892422754444553904463025952430372613990741884050058813954208338469739210420036944236635005533440600224365418157732892214689468797611511082623174388811919393836659830650479713043518896624566233810334385966315418011566362583539279793953394419233129164612275021636953171907503979411419938755304096109611440002646228632491397504635410148547114198024055834004707748289523624881863278980984224616912144375865455632743501521051377313970694611631727009410449986778198328933676582774088291220770397263938545990519378905561248193949505013126356390356288163926283528656606208992931198242364634576878695387388292975182740144224643491936316114550399663855851910768185985064559737187475704121188011829596115424715403927210778913717170560682956005233801370423553464731100038045996339019434244034946701025481364606364084347272266765987699093941391474724833540526438509692400200353185941608141973277476702627966343687031529060454633301557571286471482114670230430217732882208130846015331615305579758764503741198606467622415157351831808994956906138787539671453460574131910305054174411565309532377788529160067731696906135981836291361738995426213475714474047774871889701127629936837992523536947038272882197698256638087110090799341521061216889762549474078636108739707478082528068537976901042118888993220601343755004087836111694382151012251396720122264525215909868055364087720510463959401812847030791601298535190964480813738721756202001763597617131892709484660559065631869461638529571057055332759485343328169494446102201578015790730151909506234558015568309310169314059172977873986976145911698225347938815734289032040480457270811322353307978585134315838247834864798815228599240860350428446999328535623098419689335070087679572699799003191941436190713913924554910716655482057798760482405564330330077628261487897847701767969056654291577959152225412232382957618869825106151195526638604606153647913830113187188314134602948237678557364656620835554594185944225493798657121657429255217537865758908541355828826266827000346955396932691877154764682548175779010803149400808284395476456398668298081250778372893810188262577304925120143492239522064829038586936016022889336803064976526675967848363871977251522748393934215716639026979872060905705013152250745656433025190408404439526843099169830571987206865813925352175218573667772788460723231078063074496952109176666005615130375695741357701617159443533537871971755207433915791031692724498495785656130769019192324212716724171728651838614115434043691838536433760805450325643567780211140960521164317330985725831083902309621170795544064496219782637854397382305157415275226147624434950340271021641663324426584004590725568088632725328491672859946310496503400954898585499065160995536644484930418018005228899626936578275567867632724179642543363915319033513926886668589436808140638037186896149928140812818650797140599288956402062759281383882062747167824276386021496672828110425222185960956395570635584728155253839244773491579353584692545353787715474448794576887220017468158951265390464618836385596418083381142566358721425422208327996765217601008692344962200177097810346810060764929167513709660397565281321645019670734200054679538390440735918784520363177801429982076804187076892206912608103288563724818113624309257090253409012628748313471890751340992531534503834473476922312525441244782250506628094917977147444149311524551400850588951264335327794790133876770208493772183308336416053880419657180868478400558949342748349724873305634544865249042645138671534715945611473438451523850484605425579211234196020388340910532853421363433620028326000359685625477526020284078799517456231716680449307510741564860148439161085327093347251257741986560893263206825747730242805190912645190346704368065895687762633208634023645640641268514464555460484455195083961088398952440155931725862706168263954992724328740628826242390978507621960826774596917419863745547601292392326882951487682501559487451780224885935842880088501768150039521310919264563292194402063074807537332659069648975690704707006830898788363643150617018791660155142363635844515500745995601757951754194545039354349006561437234636444941250292982005798742484781511689592085543342090114602356629191851849409524709794364702355929578255495001917660095905294111666467951146218380356592104989790619134341736740629850676555579500203208826373219480532431461893761081110770360965541278860720599731126455420633675919895241163624169667400150804244125222190662896673117437945783490601071868388530364542714899512822742853786484700154272322250345372783342685937425547470844567207615702879506548454613091867519737102428561097395931494376420005487136969476058644216697435662152203468139662140677893352884846291757288507018221827501857986776725819741987451700631652043293657004476303894800777632738161730422375678399099823603007764669068472252204060608362843027111675390012299711257162201408951525870746611674825573244023225454433128678165082762019655271876708334655738814120713511225454114308916463489784337624905608275988227041927077855868043200321483224601978205838344315879551899974435547348493687415970287571209654904058919013706503315965528877253625204614478365433603891847398234210622002177449145841710712787198994193649384569861088075124484457248723991395258130370167014578921925607574497795650966591191210383693219475825984008014193973815310637586531686570988094946045755140730582666659650024059427221751637060832414634812989715712935750651378695492466755209993328947459526412570261275438465903604377789732770413222082125678171285766573185167968049589666198359145839285265109427476500629593577496494271342189952427134365917998826166928996702368616072639499193130904521672228237600200546831919145190152236217381044723586886275188925494049422500400318136521681504826887256875779851520709568821606489988360895590180922141752185088928549402718520107112750945578858167744295486402041256017346654664110989918761565977400341004262015034614608380200258723008888992411695705358775190591549186346061027450632178802379922365193448203762211624898718704883305363068222992654218592842936759971243121542875640333928066613953402764008417347359915895448238531859849397007581931357743150861835688914373806687344384010697330724607668268737257967543414844042338257769808654962929807901409662770013283883050966776284553933632868849848772944006490237606616276687169930539968812796868392382633767714058811430905585869820731541924856490861953638983715240539050137259923453587625481544982387395827336738716130741465361476987749241583516875038778734624987744419975013727886968855503938062653673250332241913400821140102035699406146323305346813832968469830967232573412130868309327840650113596110685743565143374362269750131084356574595934338008690130890078419707968736576008168945525702271195908781687023385330051623583952077330814875881912448416074117592182294578492612587582937979211756512570294769085901425012644487584545664532252029769677583672735786703569078840229604134394043557181906371755299667172057307171511478160714742980565908638611126404932170454061176435927480513436885699921931658331251124613282140028337372598184249295599007932174162826315879888176719871669819274451797794750213751062372601067514657505494461624581369163913265153940400174056872884381494261577411162198640082889869384099004478567673843402689164831673486359802176053225181692127205634215444358122697800715482025683580387234607132377851998322332090540950568879209867527709095305402733146142877437054333960074954079859511054305186146642225368622321923732847950740327284117657194171965900237716290265143858709116175197640069496549578469486266937185840337259488107195508845180447840009414721235641253434693525852986379591387374844727462724428405788896255757827032171425690345310852132389184900621577407969630764990028861679618401926151321184989159146891491135801761502104205329012670045057772459231384109745694538453994198682882578362136108990581233389502590524921956932993967512034274185389838427752975068855767458191664626630487279985003356143666818164081014706353798369165325298652439854186925639425373545741167569009328119512300417377227753500665673928444376773120775506960469105834505487522815815656165809991301217889537214252831243834080204230547006036591075700710758609358877193006717206791846126448289216176675588661779542207983033073079711436246231002414077905221775144923094065560985663194103580119052383321133986641006218268284875430858966612405913106212474034177225733097541645637444824178904439142106240136027330691245422899936050788102764707478663115170803643070296526715024772606707124212426003587556091735408547324260410081977016033005409696947542358011686821217825564961353017853607064931083076652656824009259709745868622155433330896654176911337785860682859831142012431881569102250232399131683367422574015948989511801173345260526074102888557021937785047225273154097074958804460829366221388083690669849767136884222783922110914649374550732064903123677396127140265952868405020308541935269963553952324536325212198079931456314648838782806764793676940033354089054064917374975784100689451470256533756996826157145217456466886488966889251252990529514999296433385761427823091957760170188452472871224794093114842888177272948321758695562430517662572293925826966329225326912887572375210620221740410610652992399384070068921288554943048713821886889384590586609629459362280663015950076432484415136997139312827347445906516952360058046954939871053439356684759285352019928719125841802475787301380073418312933999028711595479870551385373763149642827755423724833896329316774525652986192880747595699223144380313352575853374385551681050530191171031188378759225692281850970737792041859835960218279081943711152035899936947231945820534722946888295411525446583395505973002511207208142727157465385666764069900835935386678368239615948696257001451691084002111157517504028444981879556520096259287140221514898113059682439005652572898451458516831082574151817335674278057497816121830929557543392704606587234244878875138421414278166244386229721460160102260664503737227473095919918509374783793655766419728311838663670948484849509363235565319064925776288034675006313474894375290108306414861100321386786411892113092268035918516350306929502453528403493166156773129615029621002984168351748100104143685024593260988792012791251855676948079869891664710731794073972102211678123859886576753236083301161972352697694314433383054631005711344334212866804177102141478042871231360138523980701957263121991820159180198396118843382805880655487804550367831625551896790586428576077939778030351130056587612767397817586524347869608983882653785847871882770935965755732265933731363140015423732781207108643907612051694889090438142743301762706666725773562740384043280953288788118999869745354367846974763450653744947436298929183620462285866596283198919051962533710191951644289709694094417787730793742415235339105568368510868306958587155170090304911139719202051172975523241946926459922546403013123021646251935788907600387185755556215146454966340346313874100493350183688727931534979323061948000184961057478073593099771919881450356975406212535071037737780572652479335234993059207518922971796874101112117008652183322802413776865252103062853339461186484897672933973866329511306194399849734072004091434054829379075594579103733877268165316857776890303400819514453805474050431914503943279824582708983543297202302021612022649523992385454647232510177285712594177271116269281572167468342170332405392011698388938735057530002020216545212041392695513526698246266371314106252073028780518654854467413636144491775325349600448422481214538080144443228329172949494317148440128701976805750739707691443876714267631164603405099950093996602312549067077797296559316825173533118200905297549878037963307482586235666487033354952886277985877801818057237581298023697034863129541203416970274852305221534117042803012398151892525654897496847575742918958853987816648701601695603036684888897002039781609614788578276371355306404162431433794102334377645699680409253274947479625415001961062885777663275332447761736741557249826117930763830659403616730424803931713063112402926297420504827560133824784637433499840088489156000195744595358253820376951762103568630404620133503594989084610413502128041362500002250434519556409966178763597705760636327366379751685762048775498091757615050983567167477976715476123899069464021109514086887782574772783499225198794318534648859601644976702549287374560098774918656962455556363685128800149888250669728696501498572418704212978080928011144795036660378869805592306757484027491884114242314683420369763998146609368656343191507823669924676556168951878338392356977025098956225462411774410472683857305822457669289009598949693592211456231942399637485298785466766013867058725404265286364624064749989784839112600140741915688775554214719247694316838077864174016015598795336172191325174925843749007050907303046416824208062132782164976009518668725657286775626731294876895072184292056953420812071025263811896410790534006310319515162308050493375356424519319958820111007506171574371739636098815207328700542616277184943674314817673031185292603102534942901589376351083676284094952367551950755026522716498831219452147726522662423072774937850907586215403539660154654040361851713446808715123993809372785275741077318126851791715047943606849831972386333911285051453007429685494185342922167162177952863727631120671161011158682237508481980375817912043746965696443803049150234963838882051473674983489671400757815414562303883636860256179914246934560348525926736186422336163024525913908903060581398009279634489012842476812140420459543271969227265261211308908930921735066862479195414855527403898237991252963589613817109848833198670823134248239492523104314955737211066830626429120291569677366268243604496946160523162426407138432125832017761205249419904667320303106219143294730666606535771581326025904192014866644103467876440977034910746120498295176091457327011596934072637995502376573272359785344833928931344068372875644477599086561151190448158684990148396632177810046491008220748857227773267938123881314490631820549162235584103084901049043028686002785957526042131393354583017801375460566910874274662624484666397752647770745931943880530323261371881037087451273446803647174259316898241410445221529111603403158405512129509577029167706284899155465195380548655743904352749877739418015164251627206058043498154983652556193479087911998654272231012336133181666103410141022118623911423004197441581262245101025697815100446876798158228735498543755121652616758166701764448104690337061743096860417955577793439906203491943973904219473037038960330980781791926929192856580039597961204204173142510597401217064566504283299048493240562677288369049670640276502775114846325714672388376182905389220215135344310443394977343900467994076563918651451023993880692255918083887644446751715301103136771051912662701562541329829432078217149344226698345659475733152528959272977868418794856120871286686653800092141538691451580075214895550658013305421216598002856194160308075646891533772747814123457206142283322162771465244918885890974409282852426316402864249189437076621625337695835996983065094537086912609039880539722436653762926204697484069254163176689508439552363196011721904271654720328749598922278191137542764292544535558811987492863694672439083775671128969893547944919253382872971797357814288587478743589554006180933393808280578179208679061439784167573420446278526592508096759880632898866544711732442019570018774041260959762841664750552788238817447934037952100791991102030177925286524458173295027440529705266581588597422838216009280539907567551445868905613567961974819645308951230867516528584632023197697640453604672096546198955496792645004567853956877729342802679789811190206487380607336664517150025129298319894261316275821167800398940986744352753933430135730248347984330997230205688184450795700151171642348852627344309913995188255097490590231390760897260748704220946678845197404293988768768218721375756764696970741411818353834467171523242630771770488378605550895355564716234543465594840981129990215740393167696434106141363127669694589679413898100059316214625048883683149747407688916653759134942243573233728269693509426521778790179163358393140613479417160166237615456341805448642448244283461942070526677928665400853200570265523078338269892082870089093810802321342635141470807865943401787100877552529605726379736374623893616589128860435617398074923184073077984890067212399087378378880756738865658816218218912414303918266520219862216837952472184427602876835293417718597668387117161691823930264877704227784763518869134934720641506152290255109265297082156544598091560128339586349605397351635392605313573455950768259377609312561841808568659056301875298192601258499812229822162912517719944663479393645973590010787212672539866088200225982691446310548546293718691086623505493959648464739764341807775825968749256538540424283215647453752737787592159059597330521232975939165693730911317401956035100835420857850284371340465164584250038360230973800960069348290429730809902087215524268892826244746245476460625149250537338451147609533858842024363865807305573475618288260397610453367071792539527121750279216702845841242189961761804114983050790287796275225350418444444111196129209519394131971295895917809229677488780685374923255281439208026695613372656675656064741135967529788377315448376482080551664239452146652844143558490609213907783990964912465330897955568688185018663152503053919665252275891922726323477383072792733353583152643273143990901552281536796276526815532705785048859904484724732183695633328691531078772672527185056329167510768195220222289009611388277406331132749229504999020391311536692285056774485536341111112524830314127165794276471043209129347527162298451735138762188625079810648623526192006921173371323235577431674028944915403549213215823615418334674951742195704283711482075548760618895981715578173064686404833432593690377236708774929757711459079901857991359802532349842358397634694488063083090023746003805050671581075011981211853770730135508403237249705756499938283107220735717473071964726557721976620604512378184388574967546184188651246060113427116370409821919130676901752026931603628246336690002476325999623530417968720345920791116624888963571566397313733204308258176446939510877613093747081925700865094026194386819719497801963639255828247385011358715551005350946659993039614973369151519769050127022066445071357338727620407469882980523145801796847706454979810309913865025124019776248671877012711692344314120974227122485660730128463473810876186857424257815476201251459715060651571888202550736667699377183398237753130161554488531312551355928347295660114423189354743572381585006944567511859437596494243674320751140604073729934487519266007745544142892079456898659065696479691370855059179164538610249646227316048379201906514789960296650998069312847439130893391069084219938293979058680574207853554242138683263005360198763277248054888267842772143896241338342237954344484169025441352245311938124437482341399701905453301777066156622321577710718565126167684591482313046223234775998134039874613942739482219170726244808597854397750454912230541863929367813347797388872578902610462468833514781557192058851117933882508647702738733292170677352521482162652844910980195418071604622684879371979853666571234795971441132700276424017283816805964953120710048857116137505058166902264695690979112864098750040657043097392157100195503708901145143476630506996577456288155943036000154474498654449266485528799204433311353820878480752788505455093409061858912047375653872696402262487254236331430148014823089090914196395729443490234010689291906020458254745795547778520400873357295734201632833665187384959987417385874067668402107799787372424320235781851617678647383489528090345016936143637815187287731051992901232897393270863912158714939996296673950515419534097678197222516477770131970268970375638825341716518736396701796693935791191438875730502726303674485118488304484622391600243310107864938711831229039200482105754870516815243798909515652289908671820999712020293648942927154180021906917414108082361292720605713353837244512356904716491081613922772147958692822362076625673318393704544119038414065136679179989601820754362377365963822434751332396258406659817672064408974084623624289616588393988294304167128751816790293867192745502425477352034941110582418881639427692945327307391532011955656529424168617499646071544090339898700703171271324592964452088578907577165918222038567233705828860645539992035575558683264079761469395621873260748206034208545827962150226277302060228131925578911973304038072446780075837701284850438194890597198968267505094769417259111407121887885406246829731927188026755217824975502834458971377062373552480607226231246191175803117624218860083134676360121641357216733483373610811572722682662279356463196370641047133603619568456275308323321311730727247098635385513427577944232026471734158206834090283793705477235209324727552465507585113853774643651152106707626455864459016540494414415397712080381504009957922408992982929167204989443152630619428007409575413145012949740834377586673398151315472343313526113765437484638669138661284176683069647700357647906004522668341401293143634188283357527172834625500148405736089167559948064721657626165461319935965071067743584398319437420719597017490305377408740080963196917694168582424995714869019202497119619712893343376681052879681005795444994261688195294058680547602476330056269537655423952586005021014498460480698253444767317182696308649192405817222800597984038153935542541438910651014770699915506520345559125933904596213776811689037224433329086094865101366345513482468265839854534207932915779967825274512129716440837796916643869447198689148024723739253398065513919478000427087811214636145734901331017756357857316460088044055181390610679539653045265659917161713403007533099384037321783793707747125688238610065296901659724215483302853155501015982775286484010545103686174140880424826022368578978897044800903732540292438682886586809581916215924070395392412848799874058030645657859160953311792897295295405166809511605619365467057072000263439321058405575245541314537795265691782260596749334842480190186013191569543342467625076228735429444481975332831861940889828928609400643957310519113953637607382354457027350049577841193854159952543805288248754329545466132787843073733822702271812861121128047425764287481356818599187073124150581381711858081655843273951040407918444477675423089421953935868995113325212202723891019669395248181468367573317806414750766399932142666797445286690021686410755950520557567200405170025115138229888944668641162192487440753832265418499097888950209092363086778579038621392874010639338998185628972054477539737807614630290209898831124463087147578127206587231188049943636277568545253400901602562551626879115639298644457713314904621908129968837128452938048561766831911291579801963529511453988597538546326339310527253528188707392524939783969948855909987919482223672591865772066195016545411626174214031003200279349890483739801970601581254326441760146820768449477673182768225597764390224519783191488514095313139076602864370298849557856419573491123858555348320716579320179924912719516198729883931724432323597895398975622688736904568327609785699894747577022697981862960919015007401842664565093084982235927236348709399297321773421149864558365475408874967011815825988797506976226079980140206110220634125249850480298881658925350776434030367244882936775516483215094043502146312281574962000386325161564000397629069360886706768184393850164199930876954311867404646658553489986781208722832064336569811743785428605202470156651236164124544167017510594176173747849298478493751707148170024363573060524977621318987864331038144600563778294226403796417041734598312195979474397654160151796922229950185278223342269418023479074443159906794917661697873736989269675630657210937560212680051787385234867645693884156493529741978922008691104803871836916321815608774451420785214991747768365068042256721319743552839522262822574333734230031676618496859639367705519336094558889014304144045186582335442728655082848797281116157157221641969607235236881532986707061591553746392635368564550144938341361917638391134817573007792978358203925446632360091230729104233791269380525081093047966933916160812433733160747186975354004078442731723098959333882473527547661344180984338584084473208624910813602091761004380918872490936025565322564498047226142912488279045290423837234220655683184581854104246095837287919734486635453394062799214979068250257292107810889231333723730550994088229953888413661111985011623463093304621186030333342703372409120163820819065166102004961242937122621847628109587134275467974000874660046484780166695128764856008582577382766903013310189803147409725284481692632356943091562313768407059420007878843304064846798986894493765900858969565208499022041121399897620584396817114691798393473103334878410170748079550309946704835075862909291021199145948904568473413860443533369595573813495509027061277323011596247192622688818013358009877166815928252698268243675219317103108998641735459278195555879382648228320053071870378900138551533248772854719809920643900804019734583849560630342092917375149968156105845814716532473826679843302688409117759864644872280210719651266464887106628872557224809890077270168284985863307348283694132563641667898650539852191474241821183459345684387293254808941477220191371839621440540000020249392172348224832570796233651421186225663925644750897805355378358773762888566530566371884065946004110325585655681043315891418777994648502322148426607331296634346705035822807269589616838525570615447306774199180854138847007228287962086177319637156047299617611999230053253512114295321035919948880133138464647739452125022458596343889265064796138926797519216761580303267477516102564038064333795825884102632939208368676250738469138870192976874771504278241668675088761579035871563857013679333298600026438441794841572514427146869432629875520389315349827514048123305287609999776652291763363784726271834866185187482019051431725226802066940522351674272379983772958472608742929393238314311483454580539731140109433261422209149670958489310476562368774234321197329787243550991074703908597098716139162881226636838936535380087107268325295916270068415792599270176489199079485482432405539731672084208202219158124133699156007860051453517713866999317214554728517338268455229260981522361493314269882444991767143622261649058505510650360836309930693618419670326862771112770394779277804180193973577871136460203466576804810322056620977964294177278314386583555002427005184103490321620369640941623262205339662294700577100397153988265736714988592165525748891872201991490190882174688966260583477162654498908513251931658735875566647246953270458082527963726149928997765987370751541024140628209959283618909260750661968002950511407160535696197126637216134780772366006878012257630083087863832971889127911362527252140740802959877357494877528336997081984027851629728418051824174224675635953565265890893214688080169219215971229107420476835226815856857735054197602661793378915499308269301370371651910270574200927496056780281260235995572558615046992302493457333942333506692994729473423149034375525198215286149440223002062764319459365345303154314258565644143025753543332822311077439157788604403685747589660534260681339847231789414411444884407712561390215215775850622414498386733097879695713879306183194121250897194143455689638037529853692121147090897548752801416037747478967838242581142025860846163535449161485771735653426327715253904543070004199023752026370171207118578699069914711956760669112475628940209565922306890118173773423821721752874136944516206356876954189704673439838852098506567334507477864760915554913787332805390594813528319489684475024242959926199887164424399200338123020850302848467687384535064406262006530517693536480354342729179602155062092471291877439608161295097168095155947048352909609456916517144169418448330604389955067483981848593275499795168628610055661631940343997335837013963013287065111574872032078446912851374598396570849254265882779543824738305974924470912215258103228760281695700720552131199543063754366247044755352767802397589341502329266917717483160058897981340162192000293241256452429375452783119125995738390980872484420090857177015945667479125406105823000811755802303454491157394239292920158036337046855976433449298262882800178171564552005927079530286934612103384535920902211164487662588696036607225232906567793260369448847004935030390532618620705629551156292277896009709280098403286702651711271407162561924233289751926809418867984658188103808788363334544965243801990726428185083320348284541219340846059248633572686257615118062174772073506957917004318916219866054335167952499934645035163201675280687195406675809934816567773326708519131244994438699362921451767303944180452914022233694924333898134736387459140081768884413422684201017468122990879204190392304290762729105196785293784849831355254794815392123837571483854592899681693029668432915594270830640984689722844905305579260599320174337255831329496820307856860023070149627062829339937823004094471570750048598644452923667365584311172205749236545674770294825006610913899086702382731939079913338963468337295300481822376516811734213086675556335019085274286877371619720910532393818393255618316203093569181379887598014078852753686995478522804234733384310769999731884611705187177461005620452319659795748438678601419373637475045990099103139332345171472735468863383477464743370629584860834171607781863504615167583804417488178050664026831671499869064628869768519664913716155189751330828448466691409130689751581997601461280423311687732548546286243100041630753948984263116572667030736566453272220481038499753890543906427729072855823946776685424757349560726119209494627879864470686737944515668771632849223443234624462157442454896703789784542759620301941249248258375170483970156372696280527348837008984582837173677820302859972749886674844732699320140564044222516591774964592898755529856699878543483487774307661305728448241850557699805819460898359086933266847285894560996700236610311011183587614697062285806120457947082434411180411523856954252902506191811053090697496397444295112403255023331469296415839439101984465318309113177599786632163002767904699287601858791897514327021751336006794723560810131781221548353453935702375238108165221671809014660287580834925550129868624829935117494265940214686048401267137876019304780324742373066622411595240949349891422172080968501766237428594186264314875355950786090891163248870387482728977971066825201855570021921106897918407775468267338304477888334143812999820545017059773420216443517474306423135281072202657245088280170826189395867496455470917052607457736875394768700922543298753198236962648973042881746107058622018562325177189143719224714349356778203119756716650373051123391350362807097665897967305672403500178352421810587907483063530901598756220349701910974916361869012884323997892103531190988942419239571051440311173594722816072149504507262540881167161261859374620931522977644599670058342079607700683676630814982002063930847498743525309585382183416905002213716375407229294517946195007978594853981312991923390147529230983186302621516208666248232403249417534847345868285226971292397293457057359216554332697208107769210122274004649685924854711570207356535924878882975585211885031515142617850515686948774916021221331449728144630255122417994248559044414641411623036313472952215332967448408473763287584601698933964502353815348918976861536318464266183970230801582990864679493129463527694680123781976436817542566916902108205420966939750032727027138076425594961159373726289392863151012629358114054334763557773355862061512999465163233602653897974334966631172561837428846124112184144871290573349180699999135852374975087487655264278465407738714175637810510109015634081043237861270028605090248599619782336672713165572340791130357462390460065172577115721393331276727602459759687132799263205618609551337378167814810031035550231858521215912080205878488870253986403294190834806347727039461910667347562753271941532241504863382195904617838634521142313241957781583927259982459656924659774029794914668398921244320650877446246350869518794277519557737391306908577265356871737058188596357287652644463848912262188685409296725621886377776576228497339568648268342288688136491515995772446873737670171427986930372657764051249982391104696451933311101011851056845064028907112063623392894737321800442931992050063024834854789114555426412339732449303804199135097238230245669634921719741807130692606294344410808511886882379353486707894997809880027906259770287138830502595273956551444948624472617798825290957883369400908305811616860466413231560301759864924210273235356477395207187336808378286688338836281545889220195375581870206227765483381847616691069339338571590415321854609600519833660324003036251184674081237613016745750727023935131472405078494980061738915343703647050411774987985522807640017536006474001860946835953358538381957764937910432088661414777317232087240200828337546864611786625290179106083906702158273783861258601481532031248264232555452162147763168613332779073486352277357896846793887245105888141783906778871115508636903247733202772778491767521856838117661600728013094012582767384017151343501855050713583836671407812974299808769083984429890847087823098685410831884713562958877338666178331807216055179790529138175856831945164403919779682633896951204070619661546247672742984889138865873009996776816249093179158587667405791258606412135280737235953138970109150815340797987196350233944011592614973400167574740023804092784766545254439933301444126986925996181229047616694696812576404832033550530355875512062186823316545471139809604915671369493491898046384796487528243257937119136471467239934926928872895022040924350112787682796341769184222842233287722215107428210209831469994557378631972451522814174046356506658103984700820471686507849492677059549866158984238415167433278424041984244465162435818998612807153070537687172158036212669367551969085891653833736698621033077100639866860688285540338003020530491246357214145832777125745839879483369951190238557177819178324755178832888706287023640158479209635655413488165239141542337891626791933341525795874781295421000280066713122307223514190619157441707702415452853330282045175330574662132028934874360383926208220223166149558899025556303281109266886764105893830910183997735075991711580282980472083554934161762436725915403395299249999853706394476762806710586721386644718937094590406412703256748022073321113680385380009526380451729701451079031819512468386143826573201614523292700655118655370966719311890068584489737424998112728069698820913616604669459458195849541229051850548779573123196756515883539983603458756383053184626041260186307926490337444979017060638369619802650099904206979296019183993592010111969605629057362265999786194917114625849632748808843543026403741599731938475527220546019835779116796704160674882503934227877821369486849482297556881713086529901270018743540710750632115308602301825942328430690323925052473345854185735185815964884150683393116515200478096941556623569742443412990540910078845654693509169230820351850980193818228601453142934388137256017736017102621617274628849856293744805426320466521179600961764369578337091432640862681032070318233645394306406393573061723165959665959596309008603936031730266104198748846322748863562607929442169769042531974050544476232798447432522879384987946723247944296747389646235015246201042256620358152262985427966828319304511746529783042862596046132894882148274382214213032670061495167520562796875935363310369508671768799595176209959978679367859826346684645789890405422002819943433570171163543536411110336404100523085190972638932884220957680098407957382090422589197278530796543461962157897198126428678100126016367414776325789914593630492601304604164896715063714661456896412242079005651690765040775194040324852117818523684572853994030799197791822645429103080721878081073498437285205021626149307797877101198503112841329181626501811675121213871236554022247615512528899872604155409445236354245550598702863872073456504043261415584335838463626374223500176717065475084855674284373862685129234066028098041379797221321782240519896681678286804619129464654994619494890480622288658421767787010289479191808417173667026486051054571421589309735693996355134509133780365829531188738233639237043613525793818088223191182167392607499515021282186476637908593415131317686208528576030120408771408398967270548141366089007205861702177262542976666930741799234669294014360460892432590699281567117375662476402075004513160252900510972054760697118547574905724161390045333062301717593323789233490669673736936659956085889733495555673893545787504053883833914313805284725035595187884066465642903713954020074135171841908824200307672981832965267372314790144846002013016261460258987394132740870898680770644222712050622889775938103565068037524883122975698802807255987572551594746736312008776403269499109383064543633735587579337247986612948208435222745416125687485489610089033726144159429947018904135823481302416401662028410788202782246885284330630785744547842288809348832513060665313034682126042723350622145057333877834468685125386634855046731022630470181740728403457823595898093142669989800434269697606657206523459432725614004678511063382131488021952047329339288000047676417872324181144109229637026510689533127324087193102961930830458177695906064068950346866954353922962701575652994755377772130788069701630578776083050889047434313837312008068220453105371381606031498091706748716432442679517318118002568034330248787960809492317312905994438648681260055291870804158660414407248946598839133658906063928365653377488770996210540461714645169447765806616925915627668676506573208737375108509921469604025299193377063716932596143932828508751916175905657776190560212827027123721126465325401378463002847397469332237869537325983501379599077040553320123770976502239563734104764018551595788623457067654507533590528286520263912980923756742365761947832546891219941110776940738873132208558935136689114164746778107160892775326491675250439943003585093731511573390201754204953393646537582907331652423706053082170651170189210891115131602082336632852435961780040416686019621088122716848240296254838206414624208164832021069002591410228813976227598982103147571720358695343284515305772536565202769684663987120166814537033230689107222689236684124407880183179272786338358220727452929664312640003094836749006116893393046149254091429796004664704054934806298014873053364214127612545524702268212894077465899629129284518016446579136203341286924559437134418155479880013496742558637291084371304062966566565532592316233754619660462793612968023640823165993198274684717415941857168151355952144048877031812860335409475575106431492758876944906371182117116583300502108842226779382939895482181259751913033333466032336205683749883117439430472117543147954686410601089064167460396999245477206022973032392011297192444875330738919537030823760285190819645864920196389321795590969477470846139086147915482242180833385019507627039065679397397432113597538682527624903061173268654175432869124007906423666150199582854541915775970224759602472300530047169406115988542580420876318121526285910983728911748186283003972683306269609874236260917356604703507460823427455436145285313478743584851885203082882320862515195818176180141179911297171651610689560156585433830208336940021695002556652187807061588897438355764431609385366016602399375515695768124120239773604954069246045462396919941192662246363920808544423784543716089379229550848991861082705309464449678476727127422625969229342106383491666138788077539184035022549248725044295882692919048868477820790504454940788532697550083673766261656840737309242561524106987131862692390543648040045392162635224990883185029652483133893444238722183348256323119954113870757680937753846659448749348840336005000671303946256880852527402806560406022673308894797245848748833717346411166779266365078187032506220658385860723294065853610763889748072433003596679405778406510859862647057995462801165090249042173402749608443228603631098322315928850610013404256752378622996817133672013242398770454848509893504174462003299381165235556299995313890008023159017565055576015404977638741445567222976594335077735914480922583574704595595379406644076095617316522038765825025886784699517538755289398877333957784540169240155380564179373469404700532865672863446050246793089838434199757099003811723298542520505553601090926172105756602360048366418982728929767878371132335015403061442989736804383754996529976131400216700369972502612121023521264014832265965925604333598848927293568085532709946514705292764303276561204412608153873995077352516714056825419339198269105305631863672871999596663543342983942679833725107791900574523434916204490539463869108605822937457555032861469867392188532844615470387765177078660443766072605909990727492448617202713996178820908799637638395010243732158635603712955633686306393529135170370229402484012819140671400682160103423100391085890875968145239056643662179147190201780112688559599117012238210987706958014371932784123353230888807150703593206083681847059311749652291008921934656770674699671323530401465578148586786850777014787146756651194808879660666723464034164158250055699840732919271415791544702570003290626940101536994947284466638062731114673137547191676803269611952924504856679428525225677954572808806609901358089636320014779038169899019894678537945028694079466056022194440643994248429951759058722874807557677113522121273442999656920487342063406772001645115091119360791088284497982099913151699632483682012359882473127232775374435911807417699347105013642305242300415345317237205253530095791363715831700819473831818513568876493738762188275651044957073550881107748803318561631922747594086491606644973891072276186930325903634186938392955388502541555005555404698891630950369159220462226737396342972428164145497541209988956721920385197878479206934501679820864002040225429651829071239212514637238015807343502784822329040181824902285944794291389896710240582184105700050780009626314662290196605824315974568091095793886912485162707163670246407675418739384194669917620124221370675986999213950592913959860052026460701445651134284981201644906863100299062116620668756734948171365552345292158551339921562011962291524821844359796702241851210915910539604965829359973535147608946367552005718985967783220387932957254625406205200133406076489661374431945656410234763125389638268932016472163112398453598647265281408267031754475104311707357390245878354798518387572513518171756048433678743551598435859779585058103414352145766510942510364804516677350657523016780168274427798451170060609091755556084921848895638730491652285862140658015619408845212131820123230678509458700118075757722119422571994430271937128477724634529980242416236243258373494973578176312693620200180596767785329745326708691090001771290017367403330812155115435616235725317943708010151160273428761969619756376837481568817466122693866550523804597350052290244885584278138729724282958238405757476056658525591479802604101976340954307901347315137709834358915225461873750579974376704116855535647013001820020728407737320437210096882074205496870050792066117547672860880500046869345255660201648579211761774610327425878115268250742152760199812495190874609775018925367456728940338533537346797195754842676710391768594412033591899074118954973415660024869138954721776503137289049958952052798354283332047288731417572102264906553863174981510710837138558539688233618740016164915615639406167891852622154037250071539944972529725890123965035593195716097436265910194637869955387103710841131323086967320282382264891682803159710003775312824869575133002207498653595606740174287131230154176161158221917416448566954712944800356711415769512622674647722758155698412251239755666097710554530355938872357156376566829306182968404618117040732571552206239926813249912672881894897845688250773434373615064257553620151902279861287192443291079643436958267883794455279675004996134295285619426997931800743421440348219429382097979961992070007234383895141104631762690125980918896178567337905852272231712586613005341908912926596301068345201549293854168487535417404189873189878978147388201510744938458926830206119878043229452666355706744620271012732361678948812274270154096534511377745344727971340256881637933271627654280933361238298846259991203941303225048799608481366493820313658837875077800689302655440168094490998559254274378468721296769643266738343238606297783259764186268194058258184995865832242037513582102434356558147370954127729996799476037390334713853919167977248898556882486712610981465312831152460149269289455570030011728134938359731480596661233020757418686064247472024831846224674265619185291332881317012975451994311006764595989419811255826907628629138655684172860000813639986501377208896400030084069609029834220635087329325676817651681850090502094174470682234998552713348170338247161039414010443677013179444820435557023040994516485469927308453392277622172567519749722892591988645798561541435460551582073303525399324996671233836892861474679497907115055472959851573590938084872072637289013970771379570487725476198676006652649908200154442919439216138273666623586823491382172952817698106615600055255961953127595007817013309031460563207483365284548672657065198700027075276775903078323218417361125541414504009701364982690962325002155552995008116253318850301965347108197851216859655442642631294854287616284247319588867671933116163993155662327056352514850681939715000264081442846830307559350054899527081937317316313377902328658931365432438674179321365401128149967885408064132254011580455825383963716726884800558191500115188018946843378170883646308764687127194354999837182312981448896887414893026263178201713945111820126259417782828861095316462878803946095779326966319257131656385414693462234039011601578216528447923066101343604399233018595370729623543151419869363546956083741605557478200565056928631419988010012644513810177864995857557609091901146490057186546789834425171448303369839011084049020699673149517772481265909200018267134468947512725341333823282278748614646615724399617259286882831393995047066290528479588555060224256994377786164356562611176801512681390339997906894432366607136069646556515141175267788230331852437024359837388540531898965003591179862140584065410851682214839971651780538916246980934589492285415982889232846839916386146017531606640314669159245336343662970031785965621672182783609902003496523565106593117386852746860166349844405348915901567846475415325314494343621523171900026847784835597495767690900935689629012378512556239920517906566848735864510351804397234910854075934746704609707511053433675466781986913631769397335625506695236735838254070341130454446842880889245404178459519784870663544401755755539569879608384545234833399772847794743998389728060919595136048207802227182419793454424172049722907865729745879410073465083614717374208383875848832550957954518472185034901756717158712264476776785665521069754038958137935942175641683796358650852305207828068533210155039014345818951421148294101716728718583582770808504718897436643795847344895789557898498321467086864695964279486993603970885365098425320110185905369773625266075277671495628387928296009492234103087098540954521204639247921968932006760694250084810470646955336337697789384081675069150636043553001483288481965473502853956273804470438568800417520278460655351430103025413462185269282543298164722727226482688999797647088821872194288870235835489359775562491193616095538003259885021757257823314895035933992237611013259792714705617561381445664108797268364749036418571786600058231950446460669140405422759220389362952470315352194157285112771331999372073581237714631826724805450876055344459478878687461505040484295889523262543325636347894483907555053122276605638252158740381702228964239129229818781029005592689542481703522081846807861554000083782633944355319946579065066028628926560330314428119397783229108416903808290948241520801215219614042388222217925072957905490187041970988629695943386497262972013524031292357296007091440977371846278800365297521989030837124097802814209381787048319611624086736083868782484230391879462231109069575977373925577194322025991684678344444412723230247181147142187522950567680137332638452456772341866670459471586981086054006863475816868548482400330996255284562649953240416028784192387367860140380238481118073210322137910548561815984153344103050845521918543401485808087128641344790558914426542834488781305500678757882307942415832868469285732688411719018630148818388766079838227181028741526145822072123854765056692017422608336449928556510257517807561325275240233295872102079219686474619022707167502930315261385760496655285331684315460294338994220203246146574644249562462883599534853385417883715081016935157701516606201065185754762103806366574043945231604384421719715282708831773132996093877648906492611510403064028601331712163504468781969028110407323251307724991243004086040225519722963577334439110006238321542263844957181615786262036413641330289197616964699460409282274003946149265852322957726530037271862002014383563791682848785423583300008086626366633721748412234153657772472379456086352280469226235326273430207550050400830193502473693616479265269779227899405605607485867343518191097217823209523417288870188705887969416692150625630531643719870628970124846459134716728548101123564287016034343753700710070091013468358213612688631956780784993993545848088920278237920294934038874642609755425600791119013677702587709285064240147693266948399099816783373474867394392051366333403480698450303347690089472783329636570725509840564078606458326569802025541848660691509524650492176416906892149822966629581164240268743849005717425838315463902977380405613176631432744687123959579293820446945088125170022068384569267444357457399718879346952550288505536703328214199759457973572726781923711735206157901270472469547421566765031087458950333467662970854961931139539284188301393121870411409522298452928229353802362795325326112771776221108736659129217112966459532216833841407802199378281555442556256346743659627637812811911537014897243300689670513672553507068089191230223656206524387506126309565388033810922912199716975810596626907181220272779000320402652580195313314955417454001772863200073567481141156401190694031101733098094312468203472965767959892947042582189848904191695134966636442166130104027499943919090542701191412370768772709605368595600355069430712912932047503276377844195465304657546403739479921805057278708524376411762344709331683046252050994701972555317648443495949736209416993044627978884556202496790616884010638110903213429093087513541225548274105121188305186862029749007882923852467119106703025370801369655081812882983178650832242341532152981955067680843955975491701294127571916307473291475191536925871476931385791126284817547418184252660679070869939189393666178746430556827569290349608080917552648979134334491119348610377708182184857156384480906009344709345163176521061106556860205165095290769506406749828928550232267866801260925463338432365059067699996931301184708784424377190063284931220612854834780882127419301549009278694001981480396155870143187514136220990283294094849029285098285929800979336324591558302819057784228561598389832713280902761651869366680184467066917623242532424151418848941851613345059581648577288099966481296474577359155778094588679070709289353552320303628460250009656430978641902161009928924043902481367586498840634220645910514839072984946127965096639361807737335849930753703958368611695883040432709091494484519479610444465097271364958595614482783804446122886268338506749710762257433151533767649542928695469740427342287064246599259591809281781180668788215616431884048597261504222776095697687852268250080267272092712915145235247302600550406294763447600748792765016451273026543970903102893339449577395314005146173641563068320338191790683715785160504893744930072519577166129609121008225895793659452857771621822426672467691631754974396751388138865089261799497293884513414435223565384419155964816739467277114722969519022979360823740662718300218514629489435939866794306042288990742785741894574615418482817149262245548145441186738590176838176798154559344382413170770586647442525106808259640998166668217898575416241907116667838309035691963931548776145270045592575522840692406297392839736924083215906462010063530341039809909745992040431518825640625404377491226743895944666866885253401691433033179478187851409100588407673046298742042266446134995481942026347465758042009650901172230570631910031058304314437422907345591629102871444463906303011814198509258739747772138846909439760360977391025158013930605373907159657958560015193170016832018890947744346602463586637848302590661487966899908023884867736515430680386673364417760247921908663688906950714896479885984680083144688454039744763653369678841175922594484780098552721123712986772525207682734552787020810231310542499151738953057543917981235081233731403338788203782992937926710482856254405837293122573608887391617481877087686542037967596246802558548349903180602039825514282990525580069771891038814509488496901636145661153588334159900119765890959187777292111553899808627416850536226302534008844845637369289522829724708423575313980451080302079779618118526896473870669828479986592640765444319767160356031433262722820333227341864693254393678832799067085521027552839106461278400164707136290875814119542140903898525373562343481131230422261554886404291779288667779337411280592693846002976874474482095665154495547759120161595484603696019411397457663397850863618758729996066680098480927030694434974810883657102024863146227850517743958641280499618645295437707959592028769099596526827687895285284564678520576266180439279105228051505477078181388963821956547087162927328593483282561752871061275903440254646744984141030106492634320807911578503842648397363614736078251500480942901687071848984236567196580601074376224612346843478551720001585511053193343421229366225806970016951320098786803731736416994617238269889189473801717695089612929224727382929860196673604705618744449768461628533769998059919080746584222646637230930964073447234264567967767857679931574726579609661064001158254642363524830733765978487195277313067433070911542999412752165763622617609905186672320567006015015494461185566013293784101389255385153305489136559532243530272188223798571137753357996858688322541572924116339322694061244697649093652779893093820092441454825196906758968422690765257651398413886984402499832714518663991520114953900524702959436779011648645256771569466229928243604598847650227089387175965722456142969451971805880336095359466821084965216410872852854216276533937073436133864003396870837847775073342538744329290834391637888384748323214791139822529641097883904152661505604550408440934774240237947890367697305383036185723730094102467161159405019590201746521298277337749008120081184266946116788901404267860886377507840694859963052659530149930444069011410876427224573158122763265261051386108383295338602600211099489855452048801013122669521653503334721650013098518587821168479800964393965021668032139617993905120361549784152387389760471461315603926463820355027246504935838747224612588950237505017009037067613838181049853803785976683948556897671432127033391402692181877394005559833377642755131090910737045534138115144138564660383656923096792201117152132206344717526312910866909933033757045917085055071099394493794270738530015557649298420955055953774530114848777906551279228042312139195920021187748369779580216471499520764977189821380398169699600874377153543811864238521194018275259037087425189604438378643806359674259012385580454160584854294363205869840259952610429823342887932383435329407987892725515501994024367156533266047992011135708154643174834990354350948978200758624699165714687800512999791213488286511725489626640659352260377850291952738049350109111037025986479556885149748069226216791632023014612052449420010439713198187127769568821062908195120938102302772699660535800702425392888272667374115090786456118209438539451620000413731114055673817402953870093821496112672994352771439627448814820389125373861086229477426480303658735563561780917445070293138879392337874781847952566426773909696608017842529893237367119792225461475157928225631527321232564776341941708025118159586922496827641206523362770109073583160001637294108609169871339974558190439609447460147392676526812067331368400177802705355174593823743671695877353636081887689117792996177432295151146657999735584053097874370901901212167238619223946642749760061259613827299513380003064595255174907111443580923290339626292117601998115859930415473659514776089645662952716407447221673950946716344210092060338351846443669013830771419194153842334205305291896063068360016703040705112746409183493291400144036706721832047051822803020111207567783455504841608010592800571661097011200073817789794505032367917253941327216212983562194514240312659866563315223793814288564682967619466724794364517220526110259103440633950147411310152372719506407828184254812102946741504260890627284566633222316489714680074799858098303721528278393268591177469123849942456989775983781820141639946235820711549077438156310986146178113525470238121249887476371080962770202329121398196047447141483119493557792684010230494893123113683977164364394593849125333598149327616626661456740798812352334672818362799354788969906526613413089650791496899553017563014619998542968720733938386750983267465160823967909381719617327278089406094725882196263720768661222714957399111913066160745165518817220956107946714463914546174017071502841180439291986138385722631342495288670000726023166750519992264288064896106582096213369167016937450723449256713262741905225591942182871783044216800948462009532810898012247309421983415404547814984172233711787548949723163720907667953384573857370454164475704108985478045931428813221858941980605995645252273836408173358782391473966631084232627593450740108481226233421899116456601353526343196170731135017945193594528862670187914884645650355263619699055284367520168552836455598493655303008576795960720727838608295871398399900205311297736856465106444183660747944354375552677353766280729246895014149609197698353282684491331511328858390044196772138188092699107121115414892716202668229169283160819053121634938654714440740329678735647101753735542245282900047588042466536337449617516610598626059320839831610423845474505009892370418537902275528761445228484925399909767906520664157119859378058326238320046060199616014733308208710159389154490210155804683617225457355071593019756465593133963927747304942440241227729898188917675104666390577578310884827169855748112470001713132223161885158246508821379240624569908057697209764460685225053793485183382167795985545883161307594936934724927851907380385454610297558455828838247384680825783989390289332895023903087093163324761107042329655150544689087845648118855648569278107485806509539777507940145432294452196463802128737836022458390540405039852735094257343227945859050246165107738221625589249001309299789887549805038507657827893799973849708443406819660352037767213121714466182363963203408459092066692887556630890958030699494381673561900660325038984361342594297212423858763037586633631196663624901846729078452950485188396112342150455046529556607972651185236013129217427310115207587552859175518285179234176551436008995673771788670901024352182981862026341817477880985091780503582609362076919919971254681240680144288534203765949369363772013042669836644058798628073729716054564883939298870229346437190179296695456247804458791725049046835373237792272675772834326851486424878701007133883464790023742497657390526028034330058242403415451847425041616033203934292471738578082133146041687359382603248259614382325339046888152220669067847651439287315175360909513453015372085286942652961919788817573744873789578490658390048541694120190469020061434232281643612204397483052897215333726437528826421872011780011088354424932734109024542723831529155442582864596278505585531036638167070897137793698175945713887383617420057249232195032480657138221797296053730715494100200534214856857102280129907019743983520167066921209824235877939970371202389869364491641480596697227436259218406410035729270200194148091993172924753831397561223068520672596228364598638744599464876031907977684521260725446382221990885136647938990626728032331747818007720015590527894497946952036726093398306021983596132055353321878611203038238230370254676802939158248473742974532219727838379613101473024875523179605988909159769436493506191330254157161447356434607715138703346958489816165607262956021892809939526599478095823499749608117811251202209354797659983879340043983283690832928885978308032104404051656714419532679336728689707242744298589159037319238834253354960006966619330610750184524822798172266456460541576026140193565042130341439717383371838008987998929880123218800078226100538888081393981482732159687178606069359415952641931809222117191915126875846408517195307122409091809021644569395557067362239022882117907544957084394666445899401903335942995347158443002255895412036018931840486448042170753329104939325784932567795714792930468712083340584357503212114963099240915014478927089278122318210853111345663721446505738532956514372550413168222745369176955395818704946350037382150726389728425065651844977464489355334575036050773301986877677302256356354722961276873067597920065689636036871895226264215094264969403579321292461544716576088547454868125428023575494696419802748595174835267317798799538122723656970204857313042042739388931141725338713634710601914302414615588842292280564205888226473836237390294114567921980262048780322738109430711035517056279572375873794795205135715944383780525113130413923089254745133830549328409425932950064935077562929644421195517929771668167517632020483540605924561421386121733232579978099301373332105226753851678790406548459670069705588260408659042931387417411370065881622836984958222867775476337333400005292709866369690858264254518378065406847321223915486406733926479618594086845314881730626192396877258527292954703151085460732172579724006235022311105915847268808041443015363095285148893717627368846945117999255910109973771723687647561115805671303239096819311465530329846517464568848164472729868865920899841715557815436726565778683001576523570825307424341500467793742624328092492390816556517204128441491267757656336241144511978385610730939985127304856879142723499432837258181854987902209254237065929097287716252198071199808350894579259857987004726578320842757585737837119465061657140206073714582553166966224853518475408007294476961072416887754477880920081443284874140937641651432585707084690235351088063834462205518014672898958163069133688821794255997832901482603732117518651738124793531153556732257990663828737314162679262391669830950133267746786125374345928258644804676034071385993150301547115242184761063034718750491372212225406730527740086538429448045754490689591094620669922538276727156296801935795623232859691160493145241373504762380716721766769299767129616662267787044823857991099252095176292501796109556891598473834591909959384396540557759388071548608920997904948060931255047846298030357409745608294845083886563300603385987991058205245447145559176680572691700723276226891114486679658256457197456640030502321872624314772340767590255905004907140920110563570226741448168479480303654624225619383208787009075333890201017941212993262332447072969042642572539917955903654589920249283391742840990364958198505363345209766221017260321406457574159023704027845940158816722481432789460974360596459036087499611081691099151402905065058777563119443598618329764035434060856315853003552965639381603780910566501381117208860936481337410196250421528094544803280062258179505260797297471920786136358546060857095085662319395719957843841684126987041335562630943641547032101336849643650561236268707077075978518705572112084598545175219040680431229323524035916519267166609007562853671944926450014425003425333058977920218770415075298643632157232726468050015963783277677566172542275580659884838234471568660124273389344675951853328510221023184352553533998854794189778356366073521597434356653570485846474211498645217387600303717291124281386269834018801787840551523660783727875827554673218655665418071650467576088712157077837759531886576223428928714800761804963742779844256936046761639467446586959678456735233364942657658990064128707819961368281303496358174886108982961221822391505347326475586489993811987327887513736594639440495229524851916217380781552171735634982136207273713426692834006302915296640235725130189928159238261818615039031138842451763651916332802522278495615029919624489321365001552183952780449212645989572835105390652008201445340128185066944777998995834882455122689528647805029496111268036693843400127339670277769334093478309372220358860602468397253904759264166856790539818055475673712829863333165186302248710786572996813762923491849578281373637689308804216817671619677232627502534141747176454220856401299639084856800181068318721905333044661611596379210634908310006213829615766417125384004481411266342357401003674600832626496423716257628429085272706182654475461735931767202848924442785566279617685795438117248850431114815647867367285769309487351378870656671065339687123318830340405359701088165666524785875905499698526840000173599464161600547531547963513983715627764715336414151960915981825682559135544846143519603801858803472689865127563812234594531181135272691968868867504548984865690112882575009327022119545188374740199409149506790749281230760544408973916239704238235069591279184159152589333431673953715020443702487709289369852956383484716554559171039271996078187002064673673894614455809422898365275410931584940300708028618661279493884696753308359285335580762616413504620994374216296048674542057150820705447459739974060758224221414728981982667241192616556317756444755008471697974493361298305383520549245700999757229984056327340291971025057076296380568460134027232040934496651785978270199554946086791354059778819388091149512653074066314381079281369428343891065267644011204639271838324839771652700334461251040731040561269385246979645580285442672593633564950642200539816828316406524617058024559758075865783037666072979745815222094406662141214652002012924238631619373113543842368527124597609986223556918658906585711308936195301924676779310419058843856953718703405435292776473591135348403336962000987407576958415247324174476661705243734711895026464992213336492713678419124926478248503965334797631499906635184638792891925116453472333332598984331025126762923688933620619562951048975322942258022147644375387006057074492470631587801750113536076408585406344413839864737628191035296787710862222586683022136542855313132939843769955030754421531203571688444055309851571147391326278941818001503667220002620380122324307324858546088523364625483487781447184959353723090848004957870354072760968570592413204771317903821673562326542071933771797753036463515349450806139770743319639148498605040426759207724261933466803705717011188656790706737049929750964859382524741206588256168314796198111075754257672038394286264180989839095122066743372270833808722881860772353058979410656025370807170656516084177789110719485226996064311989405290029138899499672639312825115014985863377131603223440502820845723345950078987963919692955786904973760022815068564615207877817629687445383814372116998585411275120562308030163109297627521075105537118824842248932862907320838743429152131383925151317739275799735333714282074661150766464071849095621661939458271695519386626624322522806628699553891805943231822955827937646875106152102077527786400243116722323476403020047068741236649402600652671073297050906628854319257556683930092047486208388941946752576442978208875523317937223251742098851037948531048991076176150853237785746967750772130244318274021811667277314693221738146322087785202151170488593633542244067830281633235553253115098546825950634663435602873056493645384485185537061642998180301751925134171453359432218654467073222144840255140641701008368330524653474393353196481966742917004883576891290180831241147915150674829627471164068782027698529820313484285938871299529198789085920062308768325277494454051839192732438705672129362799990710676101107821218675231031903112249652390589874271631173249118122363278199383409960413313271782672985253105119656279458598261825645395009008892098504411171846783671589641253465030459809322384062714926900713985969587698349435930458043346946589254749915505704171219488416131347119599829418364596749135175805821457809274478842778369597622852584638653735902221864380260109379287448592847040874896584953545237059850030175631339300126202644640518670384249821089969164543322333639197400435735476162795773342776868621481753113298571804972453363421437551385363844707419450222309154521909831539252638043255365008074679658967176847439936382231674052784821379603449175896914847215764691799734413919647480170676414614145529093859112184307441260500206082827054601000673588163885806684345741066530487514741199571178381788473231127620701826344439982886329872902484376842703992965286320604824852419754355983159687365090726007271543425070846690031746942188351695167433154358123773408243708289402934081538718761951645713643358576664326550689219283535019137685267756249889663874691237317988633265701341211412533582072454501272581542484346246850141991853598496246226007220883570815948396238382858463698525952877117354209277013403295602100611674861197986897704066706781841561441381552026814974429913618508131307946063440665694506588754528266524342994236813203873157691617664907135099863905568130103124303746981021067786524098842888417450711757095765424494091414717417683589627527519548066672238044519843629247842049558504384706446714516713278989929588756685282305959728778790321953512538460378728761836566600465676763318235897875936690911336723320561553927160042400710400916811800220670318354125784188647531988592263302900811182096131388383426338878243020905921162821322220851854986350234155966357692041669669146774130633720163578126135691514078646713524080703926129232710717316549690253959486643078474916400630176632003262066187912989282436692528726233557410131383469891057554038885531814991485986148215304072392008189128803055260759563056974217898857725640243508475915623096153616051044393240032047932601896338378946672526740813758651739806976141956306207506078716050891047746825400165649793164753645372383073398051961587929281646938914486944060757573730836223657742860040421682813040609154488436043561955729594114687962620530411412278873669113669918832682747419624218881029638833187876390512915819886469240773999425437021165766282673236638321097285983385203467076140236256781631606015776626103636432148983495794189802977690610533531944586238731635679148894639786858192195057408841725391915004721710991933788051432463376973867725843269524049456576796499187094776115073132409145415868023486446159387449980326058001516152148187829037784392998998551110852344587237277836871252977688605975597645065637295218486251711212381955930535652566104670840828617680010829822115175934388982410930318498508026815023129416996514755049099246851306382519423957256256695368976542956502045110799297509080128393431853527485556812300255239793813802629856410394084287466584041677212040077949314727423218990568639803116095195176077964148965890141787879739804357022884661052998078921828636620064459630882618217045145632288397586620939818296208267459416784299695862752545157836034137565734914277766444296941523005301825394650784964051811206797073681105513959322438498385623695061650312377190682447259041849894639638136938995998161858981502504289728352499820695112544554013880711434906909772214486304846123167654230288938604250966127516162676537959693120916017558861942487304862852109237033573624355461600799640965502357849655036862749118885580803570180119405099393181703345103099001448659048238483566633476711616867122099377028350957174136587254237675258923482959632151787797247051224612034816834659614961621924796735726343644829528643305993560814637189345958389282478395866102542549295943980410066448274384643728833432011231819332873523388423488626180906947074784862558059663834042493618441949922754722199397204487513918321843038240240201401979303256635821775948279798208828424504332711051166044965982909140705029275504211135801293777140070161467946918256860378707911178884875324183689742119967286320187531624855644819714546503853196742881882751436963511111499872544139082427463103044910541496646610563657108388245828898470240991517555483451103158837155469558684966233334111148807465951676821838940635690445577802655154549202350951291866720822318164743583567945234528260101525537253368603785988118313575624907451543877731782448227151432843135292207715917221215848418522197255787571028183731911831991180877557387481566438271797742766286440463097829107784079377321489397782639234140329422479950189664665608444899108764776126564191816740865368131929989562474662603266560570506434645637351851082471038536430039877849971255402850636330229956660172774275063383882867985425962134580622835673351419574419901385373259740863117518886018151769170905168162455330358152764582414822873097638544621854126139538569316192689595718405523023744516627136767215052974828930077104562013145826031459279453316190885729025581949513260561632170431642758091188145255510236476247176711228894062961546071138587896056678577618459296031954355348520783201073329958711380170777931912173821656060656988714842755964671937978888666454920931048984154861151040481301525040940251801513008143207716244191619027746142724836588936857005601609669272155494014685676319294044099465627210541983653716752184921860726667003469975335341140512519442664357242078534384921215488463007836576775521766042880366914062117208297021394270511486713326020220658854389316761375020178505009668956657230258376674711858006356715599662017304235076136450173561667239372730400093201963835238125952111228329653364778461252444665114651703711206367515513639226023672544207836200013195620782611639531326428837417670239091284672331544098509397228373509302935430134363258046934907976743017415831494288594217704606864487393890261494599104164630950199767505520910204349026003662916963782141658277459870684858266260569777101578414366246085538774300318813782307098327772826253081851631874257103917346233136374403336725547042575093267293874051050363799634875737707281340379604257964308920185851491592730747870348624644343835137871701276340661242804056002883921019590150999462208630380923050052884367804153890686253697173878710612048887963602870576671400706908457866634583605857566053853753823015852275474519779201580594268829442352100193321918175631311673965037153685604925577496138062428606103070677366878653074380276745940414084231056122267488376996938368055701956060002788322458126240025637737115012536656025365313777534924556977099070473903537231256915838789852414979016469527314305508267469235746891909976617482269186206800020968518364784778416498986130735369298259779199912585121127733273156849093915368246869973716390870464839769993018438017463993898899452171215465204765231653862665563303186127798063838490464460467792567791342448362486373474795561937433516992995348814566275637184849676019444586357891386114167895412249076096377694527351069030799545737391224225377492664863286041535644328428796928296200198956205306591546851326387755525741369257255104285379006838394944247251570061932344417918786046912576084288637850328464686385564629739932095542624075750884240679035686537523860722262445462717499765570395783124827078712256420711779976438557131531306681306825086820135023082402625490169323481380117827125733396003935642294528978016911478176566172027785269308911822470012751923002585447255285884749469760065309876356237953043413403864418594529806384494539357579091510096902652145752507820693928328320173007293070450863825423431529751177200695261305907585549743193692658216652139702281523460674419893003650719548342584005518331098418213731543275871402753749696291426275659776795540334708293903911485709684948977946668561124095301077712738163504374055200416342139246208845460562439697264379002942336750915382102787977801708916530769450128606377259747224997403941754612630324628975180645850277054915929572156394789568183575135841211817695252154753203083805490107931173717015875143293623402464578878112322026555973352614395625156693122616859143446917333862502024400311842079532030245311698302042807390639107264557319932847317998304795170503584676292387761919936103199907327130659702683310386414830775018889936485501189586305700989146334135841478818821653670321636881690575691858852127458652094720471222915516522766293938866127952631703948253883212181476884035241400486952868821150699747333125228243921069418012749540378905518646394796475201694317727598169535800714369846145533203316656292462501503921488558894984151872267027171928510957096284307824284255483995403077508823040991428116714722147500096360689363965119621616313465711400147973843600789736171249120607211284669961232504938317297840021358661815652871738132614075334625570230995885066009421919933590982559865965230348060739539182814877236545093674644675502975774990374530823013629864789627528216662298766819709662373361011348220410262387693102424982293863182426227588256629283735009298615830920638012468102742502047826736655421310732894350869828893407047958009818665869641372797687686937584513843637146511481056479765219283876416042909299890153918143706257446486377620549973732307408001192621833076179371247324942119803862648057764196095312359592082791498281357613574097080211480701893116299291981809631731818754680273999054480249631879191752677165171899351145748848661744532796760106360178182181197250042891902136600048581012959211237841641332946349065511421386677461480160375797933174504223748150889413984511813254431601258112884509976605070012296524564891858304804125691817296785575699937874001030260657968176280849231866324759438407034835222687538989558621239229244785182751939913592680227709309863566615127967785570223117747023147466802444934325316871881465810876241137876840513414411776652594603574197050726839786875410864607261202358752524607430714120392324026175994949706218381124909819052041328375520483812423665865842669332548674514968466379106272314872205286216218258854961417858956839823599249717490057903044720404083765583426880473949069084765564542522444085162405425089214967502153389527961925732985043892122280619279129236094382423761400531679607879807806238621001499397277360423142726680655180594370678517222941508030333662928133988915742105986428430168781553296304397398634492940225588750183940924972480491029107693625553022412308414777706076276928085312959461851363653330067605490076642161762655675209125394317959711586807914398870236546154420574825754523949196311321590735348636761668417193200347283364230720733061844372870384415437210072504935577434875418032139143877901528454277392987790587594416945644714385446560015258631725292575429109421958766854831019086651034872153250403636999665756672685714495281242163537500577135333926312998203572432394391659039865928176520394362868068419373076832655734228979768994347667617664763716869788923587898555583496118540178347401512457122580419675134547692364162010007283747869218712476195618336628202621630228843906153057026612332868873029492919042474092631515929974935020008446623956969792668203221606264884464622282671818325117561983569791003747637947483058477458453373369951425493486529992123506725304217221288778093381227685606198166874790733464428910433006435877566543436710722811235665270167207210175402297273274075901592427415930391769703442664496354639834321550550426479170151621764607479270313054690254907229405863694301243268156553316208761014000787280847263242836948059813509801182716531263868675454763280736977167230523354096328790795839199119273305078954893428562277486576063123470056928372964982003450867056482435598047320676371542115935846055161022673935583675763083874314750268555607438477684570333087985081270055707209235777629110501229299509163045976299756297754336022155320593290826887023491219937389237762735808473735910686130532880791883606886623584458578096491793445518946116786884323431613419427208172618122162028654653587184278197783137849121294841984213721652052532669306353005380555779360385177423165266823394168109493190468508685729701391795850944038960543350908280818141971114591808588821050948302830473952894049686778588259938582723488777703443732806541245459036440873092202125537557808541929973122927593819014312988262013877600446296471455127570446907583889500330745031195905806845216093443368605780175363184442181631480883305101312461935362756675462684671404204477089532729542961698667367968904611300985747117764560276052164043532195354088973931010788345238058889391776444427502846367870448768031563533623777549883033677858969574455355250290582644476707273416082831766688897457400614641700164546806673026068153807248676852753758340028537283775689501651002555988395616899471961783650928357769958783282916661054261509820738832514499155517121422780769991902954294019604552509151832498923783037826581212935153761680051924032765713793951714733333911930377997745864705546841791833524655369930745527251014258951066701012557413688397518710742851475826436339986052216328328614586286484908740371243578204815968431819997221167742682445329235700160035420160791830871409658919315095000684232809911778788322211332582980862970883738553424922419906863673826530791078710393527424278740682021804645318955281843375990682253679699610392894051260196423377520177690085853612386220865343260629076821706799018659830855159835719866777937211560655379323060059614917664816241039222654456672793964571018395449392913336561116833084775249961762218633534405195843384490104779491559919583576903624421441880311046401849082024835910413797376549515604965013131211364323812403092507794823057291674375678515536172677063209853822873100902509899873773986727681652100891161214611869205027967134211878435553777706692776636517738148085853521693755565928762790834333207402543971090868209620640852179227205088465522818149686174468060346366566746806814293955912817807491279705018295460558480223824062869101165460178885587648868691477761637119538468574369539171744018135063680890307644858614732376723515052898280081726685207629813106343789802101125218942996066670059035334132639450448245272855645510602770896299463979204846705916687288020335358912981232077458286802485071983945675908000767237500944668524425516211468559274085188308315758287747524953590831584330205420974640966416027577440747373138275473775211442123114380414695198199722608537120233877568359454854572499124691595300506264275787782259293663614316843148316883186047590119433833615258667773779636027134335318443469877529259044202292904163853125051037435905565130876265195709648716380790297940991111475994577254568252395586123855207788091091133271179581405447517899501502763423231681309590538840335092553732389791103075021219856105822461592797698341348247043442411553205937103601726632107384573493512953095362997710255135328067151463244099713680735041906657775919505301031680585819470623132957579802788094116513131167570652638682875666673573297380360724167604261018265404028240913773678925117808402302794545822705605138409471377491565511717907761146949399112095681284400925160868336091739894229281027328190859937545307472900038391973110067370003264293179000334950847242300372025602086352595620009538664853929831814889777570104678344416177129996378736507696594681809816308116417117915726072739552745313961746743219249415113456375308150847082112800879513427312887354348783689774777630012434120858858350244936486964280446431494281401255597880578811786165630101102312528628639682661058476728873302133015406303061872039156251175024314118670795987949722221302745251367914619299350894001309010495401524708153573814191112241655035821900478358962658544912383125924077402949216191700821800855605931924896973251398769580713839535496139958202589854448359047147053351855102873277844172693883959732202692228879150835446654605494081948652119105677963624536415956898379773804254992314049155054980031986141590777317145761206233976397779970667380906800439419401166603563385152692754664302572273533371105606807088326577164053574953778629277601680978414219437371730581061694439916655561443683657170820079042439452514919415008037773686791577458774260865498955507224180298162066764947842983177848392810835551895383869231020955693725953224164149920618173667200944498921930566509487732638079872248036558352445596031423070124518714087510391727007403762918233194775774291512280805972420014283862500876984637303670964909617590295649916131306363669228868392301305173906911928614404704883852923917891727893269991023560092790019325045286937816177092739777739025867767868060665145004651693089112600208677180594512605335498895893977056601346552601569128897801901349774703249981620690620131321649877481448448563986589855327333022955883037174658789142998177580068859135638932686731614882181015952010279762136794932389984764571355287146281378692463986690866091671973867794012121094253931591059823854076197268918490367681294361639921541843964331552364418047124202408283408671208492168596597714122028631117059037932948168316595253487211314423212749795953043012922916930901298142657436229545043058268717159733036940443126693406211348646693420890100115639467710926310250427176622741694436255962205984706852296387171794493239063812423736433252170821035500906753021458734274099824973511176033122128134311372316326857914864963755537301454963077605746271153913257917532044848262667080365353885745844408732296746918397800649223456591208868542674855625252477412769679668361537176135029932826617255255680633571663830899725581618989486813601556349723095455853880262654367881850333331921721298064776263467421450351578790970206795190700259144264278909055584191306224167394518193786251280609110151805926779217193713000769061756265929961045967158608149263485406938387830503986404587621939926224804158013277204825911898493184924789287646213076254605614636945780803665266111325147988507668420460434019983939614646558331135010850493123430096194225502897184800039407135682309670572561275894065334210329915175890450486734518050353038331866162098214785830892015894005713910088629895496284179045374601998871365542488727795855899475205440497208943492042605296847491626943702982403191520097253270508031390667254014352395930280499042295481424660477693512088789275184529269832264729194016141821468854329207875123189366105535629819355363022457162873495811695706757938413243493674449162843759011528899683063425803177252411188081805882071187516864599107313972401399877880377905598721850370657333021795926117792376287292536883178340614909819358485765349759586060178789843205855459895289971306616311694646452507892757325264714168638504217025555683487084002123677792172943300273654947987989512808475400261581884016764168552240501992554510221571822871664442684241932006693395913260073520595994633064743607769097055937548753376867716376999447984509117126659284058711662582473651347418904752733067533777159345557810878661538442723610654012534875671837350695466088315860461885502287280223554611959850196353208440549812880392492027240740030247936358681944259990248356147240243426538091982007966934866372845830110375368676773918587778910709626251267017542535835506059989078700510077574954007030028682827594615262103739328305400965671722839334892650504742437898184374465838701325822919213640188558654765132727392522688092481927186281584037924865675535953162643508924015167952026766821343958612708357946982796788893788556688104324342755850998861259891081459087617947957636001428229673236918655749156545376508047636598337745272671027894570502706190025733884409401460879097943731176914919038842112907853116272554263310450028061340317535017387267941235569649385423103555429849757766087583646580744798426786234757270440606135005679669247921210967910008706476081752395442347220092898193756787256194026112271097276528266438789094712138676811727837713965491383095572606131399211898953505113255937624465286723286371779787106177305380243336658949036607743689570068906782497279429960594527009181461381519207745704086119414348013761011458341898248256066485522128785159426358329539273144642724409938430556672487048313788583534428459214422864362937556232715656301004221187967900635993309529295582738831503798510799850305916012279653682841637045014972257519961924028390855939044190941073286659831313894648532526000024644744351174409413600682468079439273308026284039233362571471433335466838000938688128194086948148024817097736769084721664003734082008599708337890760306487823947837848918773539263097693946527142123058130813858321965746146194210083196468531543585898251933715215307676913925760275699159675044735293401976582641608757705068905214204084074040230991388173458092438498937306029733459987025515691927311292419446458248935314938937007596371450430504610536856160485374238850150275977243486534566153912107337749023113734165195109760858508582483033875877628751149940396434524337549895221153598889820406077092935042678268425724425722239313254607844136250648617054105498697268727960565560093340883547387230856867147153717981262132965707139079096472035117737820629947732640399418136276013253203412673801429655214949800838945139882421464084475399090493626896738267308972581849165607334284719394637236318765416972838324221933795355437924997805106927827961789426462868807105677305284365351530382117527551564358238799753036724884082266803538260986541396435593590194456702428051455700584673430819387176269595901862412561832034090494761346270760646055819176917982559266886831205107912174683282181644554953859564292872922951009371676231849884631626571599620257345453116078419108757203700372834541761026607938764242082306474851592999390123227896183630855506460967796676091761426919099806016523139715115550554232013951568044844032723851082738009731902436668341454169084097079786689375602764990517288733355644009303703836869459187790779667479000397775304378516692814467938459366234783537641186421627929755697884405979297320960438661772863441414210025844598468890403496989458892923326188185589150709686715297197977808223151846862267512243667631929938494248874304764453464972927149940377765551863809408059424014860283257640967914602197987144963893963691867711358884310338996448869409140634365104135549198846830383010992139992701059444858053280557092587306034828594545605451439629959994473465869009868069070581922618442614906465326029361114602025824048536371609067285670328728270642946033229388420865989591744456052365215284005230989976054260358102137982441522330210648281867797620340862495436338024134500082873272441872291436509055615841875281426146212478547699431889044224475903692547272117376037667635424690487833749183415518625913778817968414872546985592581088769831200861085902544280181903915659623657558956196789466368347582461562051115211856148392351846988110398247443672888319456550133079883773867573172516206418227374015985315372435429808868898135651505882547713937273655031832229491890955842893990111591653160297401947361248879021124357523683105433204928407865252585775164924135117321670875205398314046528892896446812029928938989947698833654209154808916104302169032376056690491999368947790663637611910193535281019187829247766415211397471113048190046259662085582061383651484121406500341656062207347970889889974375047527016665861849309383262741887737691656715474809312054908988266714564808350441047777620678246379257638404568393185656444080221841479765480523476292640347308784989501148621857184508117948630846867629149872302422708080044730066010352173715202423218043967994115062236100166990472781507978477627287146695146254287564011700447304673542613592798973835986830878131127375242236640624524468715260610066979261356568608112355408717130500955308938933321737190212324617344770396233036323099539428487442031442447939082097649901843575765159878505433563559160672076289311197594799251963967200184374043576723694755407369544867348490732797182763675580533878787323988607593848206696763764889522685531428316360360228984564032402270002860682864321964802095699807552018555222768650990190545094317017608924154567585946733712790403169052169189582333939547561012693206622189535770452737635582775168807153010677215755968035376440395701313924638122470646345492137303443243881683853190311890681675042814533398304810220536492421340117277921116873099703087345354894852597916779107300129303953880145819057577091393712419125322232684966003542727155962870122264505143306628196668955521179387525601527645450768227402504184717565633151066774245884980927955573495815501195786347474313308992293552824939295018696915348141225626131347705726944207963243303464983433785236600050520544154347183277965255651631621825158427287558664976972240868556747065496382333170699981652209327111920376393177232415941811182411271532783661970136535800345933772983740271894744152316277505654526458350874009171537106727694678403727091573058423836885657536092565850443094604746696470310303516332624968353489607143666314197259179759730733873899735054334378449382256568193796049501883630527742096720374416103411759463076796003703630837319930733433576530539677592946433575499173915996941848009190091522276865055647829475733419983011215877789549746494906597215878686527024543137760555762495616486335528479875226075345600182462291096780078351219042626928697577686375524702491414381367767656589763608396102631431594917371150850268588177922378021233328226129360513255165274685759283878114608882434739936108555361146388938767503724932156547182736207135276903166291927814918958099072497173127590038907108624684515977952367221752759480395205888046109791653785782201096861366053523469788710379582779946497988345690029041549768692102489129166060018740585252993233497830286669711620372543115861527930794842143300214673710656270640737865828947779329925306449445876798588246418732162034640200225915159217966996493919861058702639602418317369771227620870426008254846092037272253796806740607974381482950373114944410712090419449212004894399244550695718885081005721647229787974916702723678283504285773638936463497826696773416055100673188302630994041901521249059753615301291722036698313501923972627675997499485830120877178810745764548663776543691510206641341341650015063880418922496073968460607499777178293344660231694899438692531118662432199168441232763378480044482916830809935072508988348071643019679849718006778062779618506476690493015283464579200178276088799024857644550054025942925157185325002124927663825357940357971882341860671353262009665789557233596336779860032754607813702640860448156542079526647206589640111317612350675268772818997717836120661272313865571931187094924797095477788993880722552480998285650424193737740100056131351785135900344133756870942769932389074655276413007328341018029720367731325140791265582484565064236863393429609713407927632234813287848954849415262830226918727297951603812854870780817448257555450464214626943274835619974710124714527334087388526000461985817603172630553491507586444053201882268022072992810150637366282244612951111538787737195260964270855039868130198721771763974624690584803979334175347922067095368044805698994584597987518007559046054099806714284602267924093237509695675491292487692271317276519373136240220239305156947557352632156088572584602927142738390614203175798741676456841607046435983154915663229978614453630754326391715611111250294508607398544062332634704455246684341490539773087185012338617214013588921760955553604865676006176625138310152729270045330395072399638749234341720269858960875040601382207113356220452284237317266454506224822965297663456851695545192586744710104063068922489612239774124641382970672347708324354228779078075703878466920843344080354769679201028267247010162994898331484842448743874364312149035174850147800463768305774352594291305843809425675720057681936619892488864172995210389025621059135655372901856827120401093302645456054279530469558945858152047028256214691647248931638215793277942906733544615767403978570243529016999945470876827242362644096197692742096049051971640764716677384961454352927468615993501503580347970741867744708272370395952231136962718112288923391811977116250867494604086818660647812160531783566966273740685585936166115968119442951099344095066545723227628614597639481130138091221435430011123264413335352490123474462182059821640458085822238872458533672290516657169741270509685495697595324895926471363229901912238303462544514322944310134029039566137433942894640046310289214580319891801336302950483761630166544843190531832128850442094199492239124020466387399561980700239194547585420470760177041103906934343262601426049097335309174220651261028098268822866314199734634029910249168343105277564201960134726669896928277529680816400807714444463549083590527598106112406341370290640270873609548821147619462527358447200512790417796897991117571978674491387273253972136632415974576819740218677309893211033614014385125865548572605624121573825357423993700577596362613654000338099206797687806359743050810534496327964014775769190126055549115804485455753782760366259851743360650894082520793789804729297670316236834776994579628000112161214690872933539037736921279960295361366952097851430981666450236188651059005448601768709873959880582278825824635184254480886870555293653174256763244667322645606153494404014556916090370086066577353919137027971144243204608150614978498840403579104580038205153374119968253262103853752057337850742211291184555481048880373500197087855972050849202298437599998648803473574944038362198953897983473791877069993030966261860725716147204510135324623677080790953746940582570083583471575530595521468976547047068120245896943084390993944563159326471290020142839256952682562195457159815499861961281801262662163167394092234242963872514935256428485736852683437969430247017514776246184512226696420218498998465131440404341149616518330656135691913306049941865300892714182742924478210246684472029503480899249344055510660636139923886805296604646061791587336579781727461421202607893671960614366226168646921601618915564887757299132293076467405012413985826871368209473119608365687170083801241330929975848184614247331375351062852747617279638582345733430871435335078378550922701449270301715658032112876269108977545521183575721424839058184069922520188643783412056929781881009920812069436542350203409499551356200252994514766285941967396309676086710462372441498804695063186251354634816806980268370987749009765653643906585176525786312614775798524284995566788983371961568921700468451030042451786744146124815217460421019107883388285557384343419125399960101019303011998651629145523141756557149533386369753238127349956586702465435122267667640700890171116276538055705364484064049873116513575309349036006887179358818423721888920035817242555211356731526055502618893342400038344621469232079299162289584591967298352093579033036788396760324829663699476884378756207875613901002917891961636825672614439469421079705093175764455036824919672929775499750242622956296006302524975846074967546786055834820547537003959398932375184664373862641340112026046789246389645332694984140573228777833376381024820233905163399702098159923608754253487541651978890989813883983597245790699226657838844212610930372141740214177075168934272213900239829071742618071761692064365896024116049217336079676077695736638208892077640582205850565582533601376100016440312842495637724190436423100418410684092127306325058761225184978825149173022174578514457945702409987607998228825803476744419993855772976049111621766852900133810846029557210061274002791980774755094448756260991591019290714018574791265976732001419037874125716548336825040942431820765761215623367185770056051652055626234265064071563551531708065547266784457422943265995812958667272686855652710616464118347614915092002109543778710375316430804273024864512508961659102276718621111849740366434860475135695516087242126090403679338650962122898387342376114980633790233978011921464813016669658658603387637804606445174474088812842351067806331855763373835970916438171669024527392237480863316087856833897518039408659251315309083047706139198391764875531581391084427795231076951316382400258226849960558778691767035976893063712292829472892651719886541237175532241838154961587036123167465903014205579103325624498557387768323244814104445639923170524524259104946149074465843215986433228272118290094162427368548694129672956761311505053132122621568237146937434470969214810738733551073590079586058591251833379311229056050983280797514665121953508857788978513995068107836451603919973053339098815553475668340439470096603139131374440747574004952228716932950266122297518658277819485352512459718321346826210614064125814379604331510936268893083590373810484582703120515386859629735801522594866241334755816268427477738448492696127846716858319576312335226734421176764637954302462244024179675760173755003589970232156224674438774715643464875452727420215243757826345577688973690906582771700931308289776813227153137258833623302446049070207749999191689460080371682178728448202733637834593149628525245066976159432445928070034550371133255709070302809553207781197052094780216573722965534944454864233646723058121866980334584957253853453961062439809579907893221770053875987124438359948088850434939691632627700843364577491725866809292333200253034243000596630257707871466893032976365504006476882458189973956481422396205287313019778079278434076758305474693988002219564640428119500726969768263282808893829718011668647661625467005672604619656362961213387530141294209162376650769427800955869406794536246088422084261670836716495675889859925396815582759376074887546478215010704762829268849033806737490709371119178434710833363059555085078853516297348047538723259584255825707545532915156275353603480856274801414234429788883163191686483238708759159923317985409473450906591985501649728991873783953618285148010292499431904027442560018602765952522265680262643395072738036049387100574064693141040406918994623357095583667795842982847095968529238647355682113625975193941116882569417718107360171902153476988447725829316163615140215459662092402549400418132506223796132214316224392505685515710325106347085621907648470208444418783511244288090240544083529444939622389463365012469657802517973084612749034729533884281332333634152767828579407001010408308169373038674645057685962430090664395579739433545247318599329996426411044967798616976278673208404246830777595964425756605838016129100539184161874612211421253009819477952024003789633890431146834293946840379892917389949892489236113458320861168686996468923805437558715439107917611291434668759717611235793533983809484848821355069131135637324123068824278440124210868312097234321432938307719598808491275593596877943804799036713867421219170355387204999646109291633966424216211462950049948410247952823754671146112886273908865213028862456186586032680377621162050089520790483440768796881421725671902197087153032498138399111166006586966780145719848980716478262365073434400362456058814222164067126519041970901272813226827057564949813268698801764646598332158913176588519096418979746980261758861833580233812682951654631229041618128271962318162520242300628448633393414404209307873320841335891813088228649829285736636586190679130488050502284942566734162153045200711193901385413730677745977133715471199794927970903080364334935247794649092026425903642050256648738557278417698597020685625909284752329161677238599672879290762265089423747755731017412192312323160051808863815817316315871409729893591501618373063449449823992128781630711111143851415852733151732037743184423297408180705819910615475097424617969365249468181715870085762652659667223067909236925896717411068187958973931645667372298246836676124510974678048379556496866062369580629466676730894093283070200096739087155554898985360962262148304509328264461086600444585044790217634319499193170012248498772356287614143383151129831684964939598313873196906057799130995635927533817302218608559326371993174644655800902814797965735606571305124673265510255233166740773313598271530634430606771548259121205094518800513994403037275300338993755090959409272241142141674912351632596088111747202004038142346248112928783372594666071211309891430210424553167006291997780918699057164613607083339460383289859049893217375592117901718335060341351425970729105676652342685035024130392557610228181955402696507689764414001958080806619772120983191198482890388846926111045500917092315178036120274867521354632744734310481106846084460682262745299547893434574095517888458050821619847830015243648867974237009500299500428235313250501231633058425944626146646836392912184763546543394261673392009261134701977988972056635629879546698755010156133364555275450229756725166779176869959684688035516378235514289215321963762908089593748482533889273417430892885287622123221410890126845813649312223781690150257553593601814509488400097360118096415260935801389937333588059706193366836415865579719323153799868352774905211558927621020233230834197518210881067881934048593436347229657432858376341466887562718241080845543714763140756915744395463686162959398371672611179139746949023839189340563775672311717737830809361293615140317826347246363738073977158768818647217236154178556489103174025966106843987210038505722524860975296120774874302125857859799367354493759484697502486522256982327761467470718264618966533919809249824273895553462540368151079295772872793003943488260245131279630227970765202437831833610675393928349303162194362413202134966956380124646839558464446079174347123320310424495695309212034406131241860656957290119825339434845871798556401921018288093011942060624164136558358675831489754766470956832733846755048380379756385684706342615058817961977966436083178773235018222726098471792072214254648938766666189485741011587239488619226060605641595479965684624381880192413789093522475955634923006079921852765778881679895051889952612566251540132529197279070510874101123283539786521798601352016053042850345885974372196545734028903392291304464281570275726984624681807906420257041535190149039040541210890230414693423931735344990265634831796376520755396806083830903369403888558094702217759368912484192743797322010519882597373849202275292775326273558556673176606255174504860379673205823280879859884117780745406093352334670047619507011838438894297092235883541845720761170589387143146478740381361338415859210070062008011316298737227383390081573645212445212334195751832476767539435716795976666070810154114392817583880455610080526858978599245809614414548856309432960790998835266600247582051852794426844826820527324628502580937759967938368961780095832108617371548742855353164897702590914444043211622661873026655187754957145164620195323946263792205892556405949771840601560838529524695226552389335903435633004850179235737932677066755263637070604696738611797798869931033050919237823235032991108558204705456443277213296956075601154180928105055720433702280447812516172700212636167364271965325884181066489231512976760738859831759474711113140516364616648933463792993695708844833310850357053347194427924356019556353763261639560518221670928907838803237727915363841745082866622677629835836440981217549963238104217284313902141522452471247857099873110882249231847135797512577621778113678100125470316391445055151365095342750063305363159263707087415381788344029837220564106291421296708047220159850870797207669639070012785924744571329525857423466635594833875587526129875878015633854727119193339790204049444608071023451155894534161757208697168873062595461727438898301392654844560937061902330732320375137194029280239817750266599659089034253455990151373605799670705297155306307464995871450251946187514999172814023362025058460302876067128875772762672219073123266448402312635040548513058748137890219153727440026305921355747244570896143588987962509425477222766653266242437242604872750148691320643876874756433884088601336973043105604801258560351910893864405081100163220087776862754431262621790006986195067239782835834689495668172650490897957396098591450207742370402050844993983917589183556735501953645472174548609229499319092432522754095669810321794673608042977358470333424306561852368438668850703982803581748602297770592156712997847765043618888770663033747717301934793478766424135311290651928194765892178915665701921369454443089075391365687515528280580721386259887940896626810320307435170927442333858001449540221475760690510952508907748283031691271493359701191787555511646611737881696855801751599084333922501887290639410850474419523286642711646699146558792641402758106423390090320723598274124221771572308852797435437897506198524711168000583613758775339720714525979448000455881831252534108108032243475498844564919844791874818357128687697179820342940719379213011207062576456147804641171025164121903709606796014936984044498587421156989240551473877262553059368797634551579635699750874268529079996662647752603919863497400568001248452385283094246583387145476168542930426656721799515356252760501226322033539429068980690684185587088490999038853131483861710903977561969135270991341546925560223238810661881582550473621380065614661693171335373747034314351621043743278273587789100331126026251266227086214635824933300641330602351374458095506514598601644396304782972871664883579423881672336221216696432633745631641955906589465159531987893612078831626111543757917795944246319240114884600056116953946220853728930784779011489765931179129735319947541412181175651911030613619740909831820645985338435633296700637977296842461239969781841143198751864108473084874106910535127258520785185568823842810745714596255148145945058242119773275689758572111328755325098060919166345306930617426695713375056713843482156484823451829334617488166615451635688145571434772357097150759756558308324417404077730712484432015062982341062489307760683000875892140834937912422807925371253039085246220621725775624509732752496146532371839207505525952488222148497054706609432665694170842918047474819106995790050497489599424006574460149562218888570131767711045653035926277398840171839645241874595515499948605675480288909708439805472938589206910481453782867212759625280755276967801671237290321502909929756956824020658858706168508829717013623547749609480599231864844104790129324641190431596140713216629694617462457268244119735792656497290954832316547714943019047698824810672193843212408719382340284670940300004175009295914279910559177206667378556695174992395467314403783564780624162411092891194557344951570729730233524547121286967650381605352542887912836010670975653760647122344872880320035294216589616999855018284792290501076361843047404026295671335066120965769489511931471855281976748087755147924687100839562055067607337648537550166948630936179066564549499776667789625574422857543359221188691937805818136850820456810641522416726451809748288867679952620760552615848562000890486706977652323013955136966008691363779665023971594761439499950039508586405115678045997247437649208038735226131067516728080190651157201324231137109683569347001517078924740127991647579526816127118444623064042140566586255046582760665257215678151319993748829543260960224011516109753466594790153756993721454205813546012526132535710280767952306820896262862901904336366909907440958834135209219104270827390037311347141390289397588345281024240496378900071203969968623484817735587117881841565468951162930033169574311204216365109024769610514908357930525704488776651047310183254921227650407977779045781755612004468439392267751657938514963297787795485811055916278639766116607922264314557122432665558458692453007590145363329164892117407616766139455232140936281435498074639667963961996999909460110099037489723759456576937484268801323889653607341775459336301859152777954410530127266210061811095480804185744981289936121662498919767800482979687099080056572521098105981983927046927511453071505030042479632316750136853880558325866065731865955393888607836803230390930170669216331825052582877244268201893278175069066879706053136520703480186312071622706060387975914974329018583382579667268234038982336704657724742456369596142638379930348434788763829855672276579753010685648160676268089536913264455536764320140706026287680459086266491402825942834884811482783069012968370810578511728195986372782074727008848743889799780504910239089849543343525045854323470149362543651963945207659574791953607154979560894962790887896936161868169262710152725257776764796760855890736680088662272630884032179438523995085838511160536737001823969955829251529736766118542049759381000523186290783311710156483881326447654596909554145724571573044689555663253970261542714115434869185732164612812270290424439825020228768956010818420668437092497576707079823083042486926373214797279488632949041950398976936159856803413929537209544401650268994882857398960651567784796435158422414524822270574661403786302993583885418533976474001588529386883682221127418040916646186429277383499834083372638802478666898541529785936775244755873244422239851101670096778168273164184809008749872135775567225630215256253293882627124687063344104303218946083870766820492447317026832184804548945685322475550563525762522460700237609279621898306927995797801356286624207675649976021587094053895715912418406886797067880019398563304466440885229241677731015526762530430054510931047509800692673235036590144607988075601313102639955917281088256500324823378404906757236123233191946577091570144539482731802272241768442780106847505568474802903539349523271916468053124186476146126903059717727709723621780542986212624355022988553099751730566520351259495400309614579920092562933723061101088650299696632025634129186431978581190315363141282649779948990255011125336043960839147850157893537852450468742966785822283972279488760957222213865779546196800828382648672387560535287025679327095454868976510510534877398067507900041013107602899444453179504809050093768462146352702307395893263563138306515433387262829479155008944699570660989265744657647892133484806049138275440345823508416741914670921436445517424903019261970452260746533494198887672625281491822610024525790498849200229746682490624912978815721434995275740028176543493511686838514999979422423805436303643086762491897445613264762321919785465373970348362003059880024635467947788554357810315465354411158659273970677422071025739132317734056545100840659909223069400332183181014589625249414582844609081957851215094597411956449490159167432408594199284077556881643708833286492984889532721291213817041143019065582253543102602900609895108644763018641793195057509782875410717398638569942929418402675167641706392454124563847868549959085637116742324775229337601411723260376472574436903433819595585143049300152543011836947557653192946336506397438064816054271543643351633641686564017938690806602781224149779572563662675867399600035975538186392191679196418637984586253546016799930092343010488521777053330324655670622091621538814521890256149209261655166697876875556018247311521758304870589869392052487584647768516278365570202952936691934148326821349803194277138141304726052305505275893368192521515046774809399704199592247673994615485780190844231970632990578860976857551059837241681989565088798126354038239135939476285631107806931661406780659626242321723107890971070133161357657435194631490655024370783915136065098429132403512545323327320355231211556440206301156757627367643779334020028649614537095091130224857386804155141872926625855094694341524218280205534313707113484712018939327906280812947660355991852703487107250670771175448036711706698434381407958344742107527822034565043741344145318599119873528035935369669989020054065540260045685578898976448626372402103841328365069385185306381089047194527356311316678248080537539718605935443585259906405844626715022340545478396280579884926731829136068094816664549643957130544984094335137951903715105194106864272225378784715843091985001923413441264005419884963420909671602610960730892170980990871089800658035883545323316735780458467934040232492854471302177584456434904984688479765932234149096715106384075402312329559632329450396968643570747982256386948556931324998640589133080689685647350411708758277862611015963869843228846880458449389879580821011527733042249295723727473914076217780370359946164200378452381282218821258615186985497748342028795518605332990357280979424922088822017520318100836745682233456850132494998277939900417241932326667063398924591437385450017065885057237434618486711345940864929947923970462104264375682927953945142473731571885032789168897777205943728367961401039749667581168094517983545299821911415965649930111057647902759665067295358370993429488473344690941467109945898780101822334562055253114270611073587626440090123121622306933387967490449108431836624569447140064674637073898916478785734698698290098904481530232882474017071103212452524183458241203298462332128439369813617536503641995868723995512334344260433052109615551208823279724237311966800537412587607359185391263589030745037589814997458346538515986056191038545818281298664577724175239230387552494351230581166903159249536024822504101363928917579551300558380651999716441215106524691794992779127423568456105118578977069426063868269087628826003382464629056412835442427415807863250656350106193383239888849510814798313509247805261730015616749128838549432147118772495085545474994525036908954377830206731603144075984145652457869403219840981829932058342780503212817278443976525128007569005135679607354755198189727861543731309366514425956133265571804710020294702462666580514543536190507301129184986599613537993380793654635200112066163947341126205510375843767425657311930324723383973767112794090197095200888554243297327827404416157374282904781621864323350741917736939942371956166473077326194434280172022367282880511584102141743864478055306939017739155828790736613652506203455723506909672846446791616804384037416855881517086555648858421876780298484750637750370235002237440557495598321128649055369902185915620188883096902092501609767311395463026823529890437908254359170854360679823279396427721170550512418572371963384350470865349926380219582082839898759746146945317128858492962898157929283097455633121052535689933287304162972996452342681011221768743526500163872682615407235442577476360538168077461380285426722149529560090684163506108880355975114572773674217398477317325831342924941768469097884912283938914685863318792310280842345928701858233260095829517647676960189344572406635409198016883551492754033847040863727679346451473294675685902676641917499211901603484760824198471022280447166706002065752924948218423770601708602873718493940932565384456972244531644288270606681293322608669430161665686996098679425587149042086201229827475230169896681249201133929522056558506982507320636913035549391040216853252610895028407244968399264348056291971694168863825142006666331278185725438580022090342890091975738753193159684939612802513297720727898076213538002651683956709991245963854012265114706041100147326261074172733446594229693349112979438165998666088800400725064181987878263359353294150888897407917151832711093100929851697640931878968183959629477811776156907607945593007090526996027979350008462019493918618492675474804145035285589244755440502473371882730283297158987912580128247713784964081428861997233381540235804142560476625180305939040301777219735895506841569425483039172409964664351596905616865314496221178897434523457641446189905503737467822116358725227862796765407330338879498643714384631323083021062076818751267261610664785138180682791990498579593149571726324534172300945665350802679002465760240115019797186680703101880432810298972738923387377721533335832350739829479096120633616326224277107214753354696036387685430012775459497645741013732587493831998356433960927966914781963515836305251312852650854122776267755776021298638661863016589082572952820937746756756147640973533905380392283924051257041234557211258745958194158739708627495760639792401478161947162302040399781877731875009290041126633740353913917510703017901246574779493896315284192893017552763790834899526256802729860650256904923381406819396583862848122927447139585271002078424336136559798137554350273057072536844510749508592461321159777011561646750660199416692275847971237845747550744945969539831955030103405492521319097562887670103792388980472879687575995121952596438771356584354453377578007457590186046130104508596513198324271480611269524099306804374729311065566398256908926005767090327231352263623752681485041438055927440805286462603662854111035548921558396013536158573819864255640375666493695501072589275979868138181710811606509935546351696253891578385144752119201573723881883255625549753895957567180188658810078156734443049582250105835316725837013025255228427877671468648702391137012225096690926244003886726203218949956549420367095774999797465192886141764975268498220890977423023903774995764230151986881625682307792660421745080868248234479399653574042048935627862741258571869621222120032175780821846870170319126332245437863116574957018323163981830718200601777253873931693438855379807155170786115056610516302210487127277088391195580199022887275605066422599855012325477617085953975249353686050059080506602814791835387897318698667882349825101362180907826715625727511761556073376361631806672218751897719459974590371341885278219113768652961492560607935787301306514730127641064130347895051990287598267062457501834973716329026509996971346920311460841239239206927794367467434150253311138759419662390909937617067116804706509532833669151621682527617000994959563546335235251831653108540118050003385402954331013038324972100062603729369947809616491464897297308580212466178135917096960076021503663553775714056985737464128786652055116416766695355264614836332397909896073959464957433130168268014279835991168508644946664638440962348662496127529431807610914950222823034670929624714270945259450665267566718324354098492062992474313723559680594543636380162437992050506820454299894707697215539901945745860774748211367499755932965068474522572461459891392360516654034543430162956423304535298556083289002381791090168082066114413020900032212589475292249805933227377068100672478504442269163524754093463012030242596739447961441259196975130906480184698314515647272115953561277790186362162324030013999597458421242085793223301655043096458874355791158128563294570240092337504392093188754021628306995543998192806878203761772483937941225653532088329286376375767507380500168099842291681763119254824151026283744758547037856186654864087062929485227720782486968564395682394571341709687394936621152338519206549841432094916811077990090592402036442044080660487396701799192961986744075631912809311779035313457544872110985853472739033940576265409616697857771836214038318364522253958872891802674262332720417512064150959148109858997460502347397451371096085301598173893915594193596632740191494272567490478834287417314091033737330244964883307935319422015596793469939088338433867182331862066581717472021510238229766054201906481928561327676091040599690476578204894795891884270978389944578086128227503221302605302201018033921722721126069502476278118773089977301617912601952360888884045406821003435912085895764557003835082655074423679610119595486152336066620652723980620124738176816996938450427000519333846006155014417714855155223413428133792762487087031281620937683019019503104342400817429082384676961984663288745625653864933568546918306621162919604890242364753628161382367862563455343032192049226424195165485912252993354657648617221466370013557280688445948631158791717299625270718614038686010229819902944149353915627031182877322730557445366843279518761008197757451960669646708639792025980228989052712405655872786225992030894309996260181998357411371834799085699826918145982749919425268566028753293699051796773386087680444161278131180972865837386530399507373389900162949112892423228549896068738084555042162815133044681975451524260657139661614582902062771071795526224626282567707472092604133391129329094849631725622254460148113208072586392282794634124896585431730600729756022227994459857750513898738365933531139579520725219543496694146771256877931743776352768837735575007284743279240796831965571899427477229225273053085554289575453181281197347008636270089752685028814024721679973921682658374514501767989181332004472647770136320030396064642316459916864283931502527317231045494272750681341500201887650311625202895457969635998328753442423413443269955768882723400211462660780268577021744297319198228857636323427931431102203226372543473375369820253894343809383592825926121485875515391164665734194405588894052161243333951483020235432794842203035853452075826656404833482078070078311734616688618171254375942557468574113953989460089721009394882183528058624010033969365711891873701161962180586256390324004232179419496088212185710005474565391175940315798283018727620500177885667469979896595727076958036781473531620100055859470004635852365386868793250492947488994372727961992408334088370820498058336121219473095130013462107206006770388205642407204677672676752384214101494383047670318045065280611339270743077712223926675931521532799978433028990319292359709909809036365687760743915584936124484059273902903684757709922305754281356246926271019423134820248769093409088542221966574586967714155230958759506496744450889407500724594016306133836573606383295028003807325160478872667806639273705164655140225848388315944461866755364281753773529971774642878283786273330689329495384316905158302968589775853794879355603174684366058596853118735598203051525203286886136633512039734452210078424969257095292025982350194342272808094596611626691741402910808933521957663600953821032381181741085340407831104017869710563698353856185663958703061172343690120999690653878770334713156311378931510729416291435664511531477471006087177775408842105192313528814881252352582314512675950957679633313525733149618960065758418778728992031324091712762360682245450191303377176938323844448907195017187206805169483099114801946426797778729946542775990740288988094450317024719282885051618346395154895050660336088196672132633912897945068350019676351129505327020896538951332139516407703488410183762499322561518468261846779287838730994371718116692625215149980626527509043315422879373039758694066394440182708461024091790066289290829956877891744738364464750100591527937523438750210412797425188088393122335278665247807676949878945155834263809597896397212036488020786811116428431079485793124557068313262170214608244054420294913129834516464706227540737306914228810794120393829538551040251815712486126947661126256707010103436028654979847958886772780804174179531355735892967844114227721900476880003581211648915730825075563852444831774702977712907886210964016990341118115134410458371793312758712879792124827405982510193056698781188379760730096347303327259175259290912687234636969484176395633288641943788404052332490304880544958849229763166277749226368974159534933332253249241896681301493986503841650711632572011866709775232575839782310371767521752010967031295094398606654081808630463216239861301736088445728116726797331870926848165378131585252199618833966253912559941367940865303823280448279056998251434089670393470384871894131475404635926287320374442587125336808463054451674890290228975806880806840157474319865374157100890471591296342147623196920324878559213341859886689177491793280145641450919609737948021339420178320995588769192800348536745333916068493225858293501151740067694194941362976670827728650288510267666331124666578077817558501017126296217650516987448870253132278109897789214012863680295674979811536895838109096101114728216195629974518550849866276019120407880943308691888909467484520441023735283236940178746500009175159280598824381412699956425926175581825523275936338259619198865449861414095630193423844049990247388352689340395207080999597615425079749627121759953548316033811343205602136123793482785402465802995425428286043641506057821266296765708125866630959364937033279078155605976413673617236282755768953138959680702764246162824760938431250465932702921361316850339275626114669334997865678426668951366899100644191323631481955414988291588025985251911530322445578824937693231643404409631614464435895799282423711647960731733291851387311574944010720068498196943387746492656189177968587375547349731875990319798304265816647570656379508688087815709004339889362175174068224099075656097269389242241324884705555595426414735823406203423522216721924410532587441998282735458472097374833629498892824755726194103583987082507271245491165762649688435065504068809424151471182082963620407798500067599152548256102956593296112750719701254585098779869848384370666340026516320972279141156256373211684284641034191369066901544364705673028820970731827541352972707445295645289567812419715231614527914383266915835986423437797399920462712216642524568975307749931984865756135440560790718217196235241010553824714040741542881563078371866139218967075131187683432155723626538266037614898999699750327548956736206691258546826185843023117758712248382684888959701797451488282816743357961735781994896827432378349483356324866251125406115844305651516541467727137691655936342498744518083915990171366871702788021339184999680256037772709389301176746449658745654640714928157040542573465498968287382655014065169565651878774837989196333068900578987766347139790431913506444814553841611736829158584442001314654832247254342109238212808958543848285546898539535838748527666728355167011943891518956950775494024194349594371917835796807345179990157577194096476446069275093772077233819692437699212564966380006380142770259195328554703732030271648124746090897166002252062267664404975200045906756072951903687673717791896640854663632206688734791388566109457980542530110459109116692010718338157724599515647091526626419409674189406044471516071730054901593156887639465015321724161144736985780557071127154832061694153021286098404437318554151849836037683030914236325917547684730470825902913008907251613288544104112894184656505613952187040118032531273844016114367355484153464769564241227077195094302492581780340681662534751268808111223762027529165073694661868597892699751977121155904078222388399422685728065855139088727485711841972322636096550392198633805428818563908316423920245764913588840820676532525944660371543524851434386876465879985277549573321594969665863171142260622631080040504745402928567628658840507666655671370813842228022565767150470906716946359628207548942224137603612666879421635369164699982036943729486424675301003331185149320607966127522976318099864123861907284988299646520676034367494035553089727993327793703545371471990264985720941611779746586258456498510167049200782033933256729266785564693345993414548335270059712260523964120150159695723668684453568906759356528669062793179682871499982100582708143591442363640091612710372206305640171477812115778081671965734250406119196482674925485918391133459287644003825378432891498316077378030199581958885203024949978146323418701143246787196768245461900555114999829095224907934456160007445270168043669783945495799450409264263540624792284703998561551925885653095044665237170529513007168795668714586736401327605120671044425176889241183418611617787489779560415226120093984960344464143608251875058259248522420265468569843822255779558033836858405060104049047887562765759569959636795626368888656182132431418989902711046586670830898378327860915318721200704468422564677758297580073015148769311440254104250635983259324429229886883579843391054492757275274693925937736453955954182677126148276099565460163389156004045928124260996561910733438086899090624479734160236182472630303492465830272151360518964656445760397838035500145392151043247154286742543709976214179335284972164624477633157720921702533621855824128590373176899298280471430085213159527201886641379856350634058383489821017385034458010856201520457505400829611301306859978732849792969162787744707314188979225049436255072695355998079236506131476099474949507230859029075795991871132898043854891394786406388221033443497965444041602252158059230554962178521964690830832935942820318967296713153383334593736110130622608501018881445778326735536198884224793180390361082484896572296624853593797240124761594512270601880411278793582584266499395124244205655866602284243504052625481689304371541515839826273442493706658501530294363255055266578343113544479932477148860339530885419926793054368064165744975533700541462156693351499817788950363198624140989357767354667656310572955655580994846319460074116913894761361138124279684992839617694921955392369265914943583337574477929898132704288242903510569086576036813230292259310805577995115949579629934046042049988692999453266184218277535427501150199449339352109546376691211453098332887953888015762783793105470341116001422238795467399098618804705067672851889764310811812559114995601223498784056060163043257507420718678232276736175548135140142525288081024643339649388030940366735957718552835590562238289348315076490858776208346365577856430928251148993711741516708108508952916831839172974868488607970528871563614110498501977270355682547962612971616377257190768311089290772962536722746571720106576540825457751241625760636824555982109949287846649898916643552585459497366323677427609670491307898837688725092197549722061379215825248681153613673030171755634019244938212272214735924114811533344573770369991753464784977620278618460320764231983099728740347730489227141926928543036299781549576455288980294866016530359049482467253097273147060330451895798574475265695631775667243791540836618470229953247760126694372648057928291214127906221817310632159736149796919440009144841440052733568250657794026934017617711864914622192498315609574435900531469187307217142478844635167360401818610246541225262941757662008712442034584085400196315698127723566161498757857445011110912222099846149153184091984723775044541094868476861298674690044848560898835061655564853574239080830506339548105684934228487701541600388657245742189279564659869937672351205729908841153566350671279174142000617801079297309258522255719283967248023586972288969742444937638850907302730261188478274318545579458113515368892031822935665009513358085048920757020517568560305895148558767587070449899730555877038490909433836893414673718452357005179768270065278454427199908847631809382976596188721032189452014468711159958235399859258837021072418512440937104931312585286050763149816662431635903325884080761815061604070201205229096039804280506441332775535108639173658022217955077624196980305908159156763620462109446193648386967210200949398064413021910743316248460139148216539463902569772721932886125907315273931805319328345589916199634842081004415413742459781375452648532890221811413625412469689902245984110070187607352526353731893041692988786780931702242883792641432640850041110339714403319958103125313853849362137302620670324153542181303450453298614298109935997360739906701636920079141841084161740106911331628756768301247609049424939327663943040085051494734735210667975815773700704333759388685214093761621060249648588240694149759952569302373474690354258018937084947671352771275769753036784800533254427495180594348950023149724674952240701025989623404941323787832809919726506055416635320865985893423077378105126061707553673581107276609075117186414788691988041337925282731738726522539981366442120206198647055212483571707952035147434257743835175237604241622503853128361091518568492730380900224293409064009742802662926644006889969507043188983157285768160045499174372587224641185096649173275448543717445483924398585739816722310634769034474694136184186444696250247524999462049687255219811101198505391601308398804532033352817684474977799511617723424161475965721825703563514619025045014397503748686392293199329319942454369762795702667756139035327131326046139768653045189435008137625419459142664345071066903911037915302558953330851410792352389867200573329070161380776163815574276509149293118962220026631738175771878354445872204556719437915740740802102159278249748031936115186927906371774688451983587309050198225901478854600243409755886229934646978651261747171141265773172732464909101972057569912411509412630393027191761343686203791552949939747220563666577950718303392528300555000775078022581437579245122174626125485195755174635210029771902032774086519481246302525568979690394699215091639422305012926457602738879418945607561298137687285940951294815873289356092440758348453069914820113670945110309588283489967304168486891492226542807783767658326351219634702927596906762428963312643116142256970675613256478733059598779076026959075417846821208193221236155908886595092347099953350857023781448174764293008201613818675558300773249338796794569350738658272913468075315065139553725214438852368877591611481072849078634794968078743865802006937057501886428006826630833613500587282417084445301116065857665982956021832907501029526923887074405495691598951720325874974039487957226189440512748902691910041950867063393580500825363678687576358114612580185124382114282783498939982720297498667900829370177147835741553549924985450122510562101301252028143664479336782406443909030449562860606334901012482118615647635776138198011934181385777521887675611125230214663000366436782169533828801328326319897231785946422083572145806669731376230920129975778304609702749169684529606401958234203465244570507804884064057474125393139989231651462109799033276226094518665337483160237376341009463797221604954892762888137394305981526695728739156485452208709349604912707707149797464991816499275538428805084633814754338996205074478740589675114026509989237764171212367932506782901334412856152723463110670965537342847074275800041559737943447567612150218373183319591707878787972244377394151660244600455996122510465012180863224642938874070037604103469857010792921991345883156478398814235827893831689475069082608016271357611170230805885309157820536849774792868036059091801884566618952468491570781089512343453997914652968149917528088775531135989481035979065636474234277855003802448664666731227362284163951038139784732468042336757770657739925887726693600350146310483340204174985104227859831181340094334507825142938881713585252271720408137284262645107112652451507900690745710438479641600874281045819188263657361543715197329625555153144141218809705372089291891164768023999589756917011416738465240703132191429557978072003572788168623234311800148386117962125249454609005658123993488434810455319435718212341942008942400236084491647821780163132301585066656305357988635601269604728853189213533114723144891176399930728000895336469523383708088276304574334874178571406386984281889519848205833262302603949938073350523952458675537850124163550096527285950878129863255836773929898204387671960127509561441869860098031343526231773883690339674367478427199252641787079143582227233491069271042563184686761995300063404919192727208131462667244089291772283497626869806990485220183347157318065493019743571459500734617146737140706991057885093925695436926570570892137781399012813598882168208304728065556563103004278479103110893462951729914509498879029510628204709344577105785151147493294140676750040853662969186736354781001799743750921736181655876725990505399555762712360542426727317728749164955707265638071211985673346140423306503627188420409020290419407979787875360623477728231035324612957289426577755272555679400882421753339673010492917456551194637225605808736249143438130909270242489725335254092275272420752259238220927619246832334601988920957948141432206766215754762105046845204331255266877654967688257677747224051174885884993048710248477615931456359576097616305355513287447467219366389933003572690129099312388918233356676031014482414874387313028187355187319007829178771767721204274599811562647231687658549132259453555682056311556510307559179858961460728857124078783582516556049494212092740851000743479696599730441003589582882242399687188572757567877546413302988749106957062940731498919192205284623362441874047099370381698534833779467971003770676237332909013675797070655574884928861904526305051699485247490155957132515988867254798121956781749919271971209492225063645682362914542619929422056168496495996926058340513922008139204017254029843996341180216438872051963364755746440729739021751078730726038794165486664527397042505643244132853275624924583259680644385506041805504872621632929468284673671074202790402296084680628726936114086453747657133302036555389597017747564095083113039797278066568076421365779339898979452383013310879999112693576347921513473257104785565594634265010972593167389104206791214760277947674501999516177423832879563857542009450006307865144328413350917559311025857990102572800613920545707850736840525623607504412182202375275216193960344910484632354173478031058945017641794956893921065463952409851741994606598472458228309453441787494055961589460125784198354103387474534432679562591095414899431038517085724977828463373243786385850327188049667097702271520518364305084359793659983638103860082178702783310603191159928241980600294043703447993724715143585519657684030478945124051952053518144934743889536033189336188103298474679868880922872483824625610818832122646600932947043337438070834256795925318166924967433637522441673264732960934584382175318080293897296666269954676481999701926744043398827480837696365865749886084725346539958946991345072551149777142204237063438464108200871821947812143957826218992801881395329062728383271881169351875656840078119107873775540558604537275242257603116373632246837320093668005446528246275002355092653464282837974802474245896940589946389659734777225174293782538249141022566870614252275387062155841932632869701950297084512341912506283707870177712293621412687390149573448995841674434867957445567301375780465268099961121248470643100585754014521029315433429981059634410952583299830609415498635665288017218353037325244337422789290114337637117510192400266336556622241837073410937867145603691308814735243467789670277443020450197254928190157592675495508474586928755453189316460138870079030068203978756990671275580758876601299890889239905895022561846134285532727061502668311363154727276455650576921491298564086875474779684141040347071447876734048674493622701152909934136366532548654878643907682162488448073062560816480725234142065482920341937857817980226153903702168709873550358571959965342768580865111762302548088538404183054359073624607725559255964524751426389006195919142778385720973841554490275157980244479797043096043820121271015111156441695745617081049632946365186208594790436997455787082713578771825129551833106863907933392658554155777452123729662837353220847292671211786069212108184540538934317542013302496567587995632768814652178612264274148137842167735383552545820708222676645757335327454893342720247761468384710692369423934534068292854418377298733530968359458410894006634436284643872486244858195391346559788405888558640635326984672402673716513930924514697940285774627190684202574836931336294790445181961516585357760880161118731267889068071625913308944440106732553580424508198520925251990570666234664773144264654580059060133119994448128938566750060310910115399468114025391223916915455375084600554700643365907163697328238117606107301108496687765609200982720311028914041685059759458181150805634072234298161556159994518414709587145907007888728218822327532940971108071435146229010191328306834627736126118948020103667835224465711358187613894890747583066460203798315061908718942440037487354930171531500845854470749029138539176305008600602212157458444634550686811757275062517465933288938634693580125322596231592949638432556305866824288218413793534367100538784614500554823451015687453907884084008720181389865438141573652216314878522097343639114559005489438212194162200028847830881574011144179626308302441263345570773808199170986743353816839312089173610009623109606780023505881757067464769045400391334373602244789108034682187304344811878208972121929718251269933733769436429519475504977269106384690230073148392426825089379844087738936445995471540247354561756985807003377433191982512033459882403821093811125661863991718113617810301599215915280639830800789335075350991801608288779596325929103342778592215012043814219863732557781089836293318984933328462352820509099879378511593166879851647643483188569620649999457740792600077558946638717111135062749563453520287091336876830762863683576836258260134827519772839830490791599936224315463877256468370737279007829157164221158789510236796328331119866677195176174737736218047376266231283354007582805712826352901103901755087912246347307945353924661110616708045184672871336913203094414524988808102518344773150611366830278324081986490576512797415302247165337678334655786320711524198234054488429658953803100151817455404001911625029471092624308795638893988976191402374315601240288749977551713092412371183519528350102833155982262245657333346242138942463851016481196283029091119538329945178374652541926290721262953607468478738498653510658177583649973138520299290846773400612681755550654740049323987376294678158154048688102400237136543779425512716827180202769663572847383626467658525356096683421826506096022592916073755844418101402246048406942928153744411506285350746984031714288975724025116279027646671740654974957251525767119821276725591479373094981553525149901696563889878995980439370376400283595746747086496504874572846168172732743304660713805022355932196815646848433010667731607723820656411540459557635425012562455838504148866638587384328939409958216896310436035540994137525042250782036385096562522423233934002454739492358566161291179174663039859481085699118011935706751070261025598783198883129443706620507426124471850708264349762306698219889428652175879168492626145980712115097994388466228360193351992329977854001526315428590708466179427309694901966040738508013003812910400735499437032734114256966706240953008376791194150972887296567416191230227947961294172845071132646866032395775603669125119942978814723894368306306843959920294141036213791838250334049742087935816606649289977870968839631434611343213531168404612514950008985441804356156077276246011181366782112550510768629662288399156450930917806489246065138253510049662215909443265363987643649665605386025439176460556307560936111181215813282541060946679108288054016594627435379372522497092532372719035628878006441772476186737560633025646816853922315740167955405233360825724015919257329812096059982789352016687172913921226015152438801541796315182881916783078803545133683265064463426131110695855605036375822848545568291405827134353392968980819816253158296028248222139568901256573053178481199641047531332391298901078394565150360360206614441932004580310025750981028508057602793112791877962779175189328177509338549213477607887485127860039860420720934435534829923805396778342492662738115591730396481668594048355957678727369688907166602524204920705706439497540735969230221850514132051987150077460013615912210294715203329250251547154800265915054075643878765313227708495818937683814044166978896165940891891619260733947261278369061219638604487546165106084245898542641026287203995711745998462233332544790403665987821334204290978611482978277436019489089146450438068606522738894550630774645772796837531662606910368923389943255794080896654437485654860465263999959536931782835109809458939195828728725906426771036295945140156931715822039399418731853170452075825722668943839660273708553856033208367046694714539880357545853789035213164615507010502447813381434160599435228017347518709724216244271384156408082156805328453891832393472381820981810794186421428752882236202502745825361638903297108456642561370869484728270150529414669311415216962582708289775289601203529217781060879677920636704084215805307706120983600845444119132762260947875191864292821892155760993022872838063958506055814737534052117169923403218138322255845349418147384930957057383137913421869534277239690210331863587585511200856863567625997148352286122156919509722298803807300150229367757202610083693246006363962445932803630334816602323261230760135323718343923496757005545837433469848380924078793920473936292488103064534163036673833614810412313007250997905664712388093776139012589057173888478353617351063418297953169411551866236023126518870115473938635039142379655339243003536662974448822192594853934142670888378047883758828958621968630178828789059414506237501218628742011351087787771222952677738351866207515313063081114574421854844445740909047845214192006331333131228478910481353879820233856402991477772357794345397097900675949497788825619071247938827351043676493311042990884130140753906080747302480482801617352761953234655087856008092382260781921776702401785900955153372462235874536238406680715749537345951116419366739022028167927513106746751500737038677320558981484515122431363084375793897842109120151633956505673144931653618061491322931307392619950369241533867251424381611801850197396711074290231726026275646291697937010559361300997803680344461485826408865462208781802120090833826281367759614723581350670921412792406331161588326216780901968016908708896932505595903460690811730573425209850896008045172996876110886708495487472245012626935803691255442075140421862345573851556469102519130409884759526337219860539161658611389904428323707447852951801445480999895731098270323530948816442489749688839202283546472836418736689453328000062388763020173696651394260174678780996361800671845816567172585343750919290923496750566879665340235733158673071365738214596065304600265685985936456544244839044408115805684986323934579534562946420292822563534034684954601159243383797294982174292017454494041098181467742764452258058714386080420082996430791170411231098380105299740262665946907921198043091925738651735791090929884011542894716032759881398493124655057425771171397238888372856926104190456812736772625289637475089487898143400691832947044910466620422542335182324343475185492398386283139871229637640448244574416444911569167198252358784830314164845810948079443714045670843436193667551441338757871649794130251883485024078502965700301488952677084012250920679730949607231392995704052640538252254187127196447675351102534937799567518294965155119473881785613657259167733707634756389013842088756988621361603210024668746741576070819010759437490191285163093801753172592560982201609900235197956788734623830355271329766630004434933060738265042453561793646659161112278074715961917471447801927406385952101197118468643763825259850869456424875450084856777725200224126800272470903619063352650196700361593977221158432709049833397840201998323098693699064502016791432726292214571847977767669315508076522594467105418319149995271988923357003255499462818004285820053957076153651107483798861454741702371115996422318640183292275294127919176922684614281323247518692500696405498472035613966286822116681557133053674078738160639474809371011314714602266883468815822848465797820025644199548101832531058495016662670725638410236504545950625567679052591776233232417777456751654208692869775099001574157482058411802507988183711330959545836036188477537238833702633999430485541637449453721764143743566784344683338271055991824885244387162232736275107411410216020883736114179577871693637039716485233292269110558579276322385841888954679378113828541288685740707630281612154164933447386811372801438548943624516937957047733272132899101181970317375834335438098367336175610761236694009309483010609693148555180885374530792081437381164279237834373972953064132828766383678181260221979057947856847807194553481750001809184371274749495996100297958704786734238233107600861640867069815021739873626828878128704595513673684958847052404715797110435670979956250542312246094566251411690514902340622131617663140906525511120591672249213499868988292659493282892097143866303945172680747940408201516115292514832419437522828144922188208616036899164992974682505147711503550537242904122358197429346832123420308070909842800183987153840405008732104942000517538334690949532855762114145815979666804201157322223426383689207804942093570799736968538230436180645688084256896121571335744829796642954100587510382925470777525047898827117199726930254285495170840695840984913458641118475749830442347153215559171801047279388198048276982304311873470730532525819152812672597584140306969156687676525318229621833349072223382787800526231923775893433318857958947683984683949895617018442977965179378135017923660860523776911928270641465147189042857272411507746601736906903203812507311609134314830962715976735381933462350187111207228986252722732717974818333963931484840439147947079008181704328531978557034964484243852244416602232011605084568016641036659369188195827381842761523179605941709375685087133840054919594755226458201006932732808816614359309228368578753224455515510552416011722004302617654048358197367254085242009192276645072222776414599172012104455371267213573114406963498335480083772185388516665806675499222321564887912727617967484093085761902711486267097811850450328019314958237049612292478701079152078940495219266424498071578591196205905395365038419293820899500831660395421612801923153688163549003072525113230292513104751968123539427024179681226451382631012446464932825271908686002303634091172420798429473365307537559234728604137877101407334390064170200300151531125991583406345088046465806239143456268000408252538980310831478482903162619792094217874748803248591548908647215230109303291300504606101683476589980750477894271224092905533883289305419016271834332220424244700736108554866708114407544855160053407528002913630682631765441017229378673395526603385729098323558039162323483714368916393443784625656350194195963052257565862115129942519417908415692242499596599559454267506639123660708656207023094379323205471092238258016983618911483641127083236450844898883490703045446869227788860327518224535299815403293782207521350203286408068927779059727438647556902784811491436075837180618886657397230310257324790231973534698768746467213028512953799691760084126927601757374870478376084194639684162037974636389657413236089729801054255557227773911361563701720380137124957596252533887115988753883830753285870840400997793595631027366715969250866389438889676103603832631873452609122712362934349925767804647223487448858379644532515519772589520963464364064762919265707613734017763531656759383161549143022104009342739808436119332595779398478714974907919126982868234488166759534997687009168107588309935979777542768427716226848978014291956034589026297678391735681390388241945853666260729810862492404511654892023113350690760908059060082234792451394792572631728910165563777644534647867990978797975268354552156885683332757331136601680998207008125612878918514613038732738483639413240526508166718058215921352295235212419094012679470759397331723938443987243538152218061926436012097837158218919598273062192528492356578092330847014447226114374918375395705338646358411129676329526199396392391628718571776359708068299351630950123903367872294312648508969515068513675829948235916179880818028355067629193554827724259146010868112236751837192289002700715164650365111131062088688503896954157141442254448424125383624124693375978047680479556782991822070534192729526954724995483115963599678511860931077629707073224452206881412783466655864113443023714379442084817863611963198058911878455704135025488992983202466787358291878818764244451304467323992715791546996484885562126375527215732543088766316492820902415765636654271234394895650692951137828818506296026383031133528128512646739408491641980312540362350387484902636065702113415895467993285517267036373960169711470583591850907031751740682946821170331625897642454111522103269242418386532316576426850439898206719720925295711324381068685760841884832931637313111426182340738979674886033799639955699213050638497402455773705335776605499957375336808214562078071914710019303412993749451420038501688499660689034739888575380694140905428886111958318292469537640708354988427918564741222847562692350187367639191943794592251596543283968494546969513585296610760631075438264608743235698454011272980367162163739281348885517566163107649265303348439039763158981895750075953780932665902058884818319873813293653886625620252133016201870822721250735321469667112099411188848685763357431270648038425761098142459020724715452268820546684278852032700329165027591920693192261240875289490423407403552220304059099983796444993511599920073261004583767117544580938371464252136423290888910378114290025704033517333470693003718861121966695964089514249540677718595220832348556101559152255076489797001405775261967246395327735681507326763761138936493584529517719433751047812041436193477469418548429594844484138608406969571079279408700016183933789153964385785609777463642383221138066997885717458267217317538564855928953682093110778798400132595808272783722743975947893138836011981605567040323300885442792772603517248054373390578789470925439005969290107897826243499570355435393880143439535219197024264117251513617834484046184942430760549924761683552675662173278318262536561370436485010999100804329478549555246441895531533887427758736306978124823941239922448230605928232346254775739918209452491123742242751873074656400317817421149817076812698883006438983868442696969430117133464726040750547484829393715707434235698118039456715926287811052663867794868930622216756767287092199210454383454656068231001446050787340236499889737768626761828471110923573796048023712114909682363529316848083391489261921986819912054776082179278125145153218645629702738887881434735822280491057717536274180503676045412019726568621684306842641988206914680693780588026585038517578870538515416741657515372218392170479849528548545547477968029484400251001781979336295021344906801965336385468363922544778723629311996025650833886080062747300085374313661262055058467821110608797219650425419931943443348685308870337360956485143411554076871772043307670175122961978338120785150455443856336178784325648740322103870811331310321655265579394078585525257726821148764127000819508979117774226804937869880749186816033759989355043002826142263968156444011005987841696516094282716636680582073556504524267935055308695472162267634596942254437029965979460037986396636169172192009119924752635661295206453083323125552926182074221237950605090217692077350990089600512373212846829858817942734282356113552784203273353144416808131670526284355391797669903415931093736970837589593536369648889089562262392627551911442557017103695552637020912411336735262665770779824675156484540055153397277022736176230319660006276172925422322325311164840962517211425651620017870153376273276078950872178339548107215638572703903669651447059855132172005969866746059958018892094353698402913508077705716071259442085205561600233989918800282747991172956242607844847836607891812857286327536019160615385874955344616968102777964688331052512411638020267594323283357073555194304540258493784812996050270354379236084283144769647240752114508031018175152028713240979141360652803930683961495164250464090341688448508928794002021165996378386732027572022581773724852335926217192853928009925862082889549278568285931456512464071405951390026111737209621895968511660957088634247058231722893446570855427306353699565435628809187649417933869953514463219779012566098069703463316667027649887054072612276332465450178714265102882079014373674416243522863605283447113708294776698461583666442808664769570008023104712407624118037498122057241564539094158059818811344840249973497293328118137699002012826425491536355884025729020713232604415710628413121659834662892962784767283134245071929968887693137281140339805857842547585074577055303126603487472370793356398802791895112105428845155112939975105178605035274737326440136089770711554127469904577104120858874969021084369430135731530492230254939491335211999703667464709730528049351900978608805046712113105830505339662610878674302854837225213069879943139099232269829822295805017757271269697183572195562795274535003315243820255331067308845960307103641224219559522786814471187855201707639041440124998066682864880733835999278361950194297497189106512333851852515709538550701300893728502543750586237903538847051480623300984521271626033149408060791189421730043866504502398944855621057148287855006336270167623522493523863975049010665058011080415861625423311177198668451539901846519255354019489269402509606789061037057175712729127621670577504577852775197092644358652766471932371188830441399338368653355230871216530302178244879150022036103045565107036713806321854302858613385601059784524313407453173926764525309869697858101588222441280527109683776175128390514104378010084343263989231645629885338202747828192324146495138432975177446837163667671727052459657717597073876647030464143314383133461193122935523818444530132502326782820578642532127230019849851813324557636851774859466822480724042918058629207722031392642893622598449027633104270456387666200772189517423903091251227554889298236785249144039114474889905871056638269813592736642467213877154906577323314247314172636846733164106977623335713274341185749689621751546704419201461265201737833754625198365128649047265051916541625306551834999128915283476630501568735073620017185113821851402436830438345162591447837358872608802494505457468327373787203128607633594994098112656766130152642617660189931863209388745099908098709956046274520432193988232756118693150028352030696342314555991794072386495457665036525813790439521945143742850384302169450177637103040495919121203937912832723856801921531782921624025113776050238005304705152770347582447889721617874626070953608430319986575453934262245384435955839332446738140553012361192046023713091162877302242678252754272958136164458995039733567861887347527987684346085256756844930357529980792312487910653413592591183677237410050382394349532107219231154080789583029901468332363513295950209199436633470489205853825739813787505143222262031665188915170371450448589711205012814744009503634209708565469893278948718986938973471042083675250420757404629226711948129099607278435599885260674453125811407592909484473937045848948651953019635441853144746167908834638944686473117939157131042649483468836154449108418617688266692856725917687095889585885892999343651570319146982744544048231970186883362911846733314838932206184620382298384015529093075881924106043450767964813628702155483479192487484663980398056392636511306316127335500805011338875398718828388050803928204621890670540797275491039227208306563685719037514098510712099170474740208016562539168026672689953484688887540119221664120437433126549647820341719180844734384958054247667011835067534423564909155654588020872968778548752447024714908432414877241677694121924892957247488835480623476988588412326819093297237007178371511901827655596415123957011279228010162208870701431478888923779845955980067903277293529159973623755259001654965174885452655106230954891771217361959905628863862357009423260015576646800650705475940647860143380634072689706983656959981510509362409900515263414905173893349940195252672383984302718971982176008275880561039836074123327358190278385182898929767565533919240251583030428348005763819983884868560646729171252867514771305632693484119060175062342658636864769490985703025496393493267661558261967594904083766593653069502124084393240780855000436333588543679425493550177792720764425980767396971162036587806963634227110045470422350049919355765969651355359302839242580721853847554662466895852934659943378012143920264027366404850531589917678135870336321043058055320612477808609445920389426846060397314108829145914797874294640334407593424937705326815814986248007773298653418381901551614379630078515349263412834770100137812837075225751807455104988477987559835579112230300886516622071407681429615365886321841870320718457100635274714052792306775341719034872971564216887099406149060723358195796133363292673106243850693057740037948225795647050353775192277306162303040637257125460503950362709547059950463478364578512100971692460740062465386615561046826654684956852796603177996814247004055400087976357989632422765212118918631197383862881992288583295010450387382931114383434533513527386697801049378403438404208828521303903254584006470519099521192394828080891460966600659784170879693807495375605623119242084169928060665942679695926555358211522633790691519168739140144067842831738730606373698000367029387118188729506011764633149804989762448334626823336633489647664239764845340549273901961457577729631102968496112690862372287763158148221779780808541122208025927884008097806690172231501113547631432479264501642237277880818235349171938539075245191042229049457493055203787982976784407760793186939006280375891621886285638715167354110023728158435040725391568786678411131553635550312093226212203034442723743130270165659177866071902000585441642829116092109542976277474549146882324129248946210828007904158017823838946161765385163392150364507705329420798803783110174804179076105115462381945543534119982687919895315009531382581485355049742831706296884770233290892313477449437757468499387265158920634757064602736692558046221408430003594359513653216180484808772542252482446486907478279851119889787713083549055610984056263656971605738772899454650988971472572469619203880704123887859149976622206067850183222252076194009784294292768660733667044168762999790673705116732439273247403145524528511247509842070818458617638941199048407976677340525493312436187683372296841191253439309233224666792361230385055025852159806691386294093011582403811265191053648577657958464907305079050579344353579252803014302217235574696788384587574801386943651923661967475826146953949227173763021568040744992695650160250072151677436488941959662276126914487155105917466549824085528200309664707675734755430446033006027809257671872585117434728793282264818522892497478851327801243559799563669648885542393484567829954708397671470734584911425155179447379409329559434932833234551638553910076584065543814461799619275809720553847640580596235194790973581520860198515355020027961895269174764184595337376638554386381210098604967518933738908644999598904768695778443889476981257167459521862175625789463935372131233419306249918401257978210758313631010806888152286448361848476040911486693056466468687291971599796180687117024933126959976814511003355825506024365679789111997777788722008863860525880431715092288259872634683634818550737420579020184769956623572056342332952541908529580063000099921683026375544113902737463976859186725204183957779491530206322149151989623252182764647977288644733380416724564113907336516305032078954468478299876492955412267219031757246084757198375888144949477223203688985784011843410351680502406113391580204035474498826884961086124661362196481939215461774126459623200189310404317880231985742422373560371227134534276288232991183507082790400035531174507657246655760942103723930555606951048988566808267800554418416753881907594207392052218069182684805546223885575081306732187224955981592466433041110271080149901698387833322556660549707235158042767594230903517192447149827392310339216792430960340876560389003442093030903835327494985161230080403511774214205557186845824867711367349561258003490650656803467163916850681947612218217312483573964735676776517793504639675669755938276295011854343029719096969153616322352381561990299763513530136722902316439708970995725436074891248851013823630163087954632860720395843657844359875160050577086589835194037126596538139001819703370226931783293046213277027483781146386322026863900319694044204703955939166594106997841995434738024835774777837668327290908123041271481883466531473153673746599727875636892600907261766777355068407540180698697715189689351637499789158345490636799966687726015439315907188837996868926140612623861160631490870259126189926572992156945724153226590484220360310993567393722566231078331587127048657229679781220413713090426424740078176169243550028291272352544453773093778691618176945732037084263636769397375571621768425463748102257354494384841756947220714506322647406549302971280947152193173558089588037818439249174003510538688981645805379181600301653648970595847430596235500649306842866835394558688464038901395018819724083001367265006304137246441532012468830278151514923799922502933262872405614347643453735144075054432575382977467500322158024476579461086314276324121229577811130348437353509628023561744177119312866613638344631038796951832615643654090308299645798079481818607222567071609202808492973032782461548090703153521142867105942163640218234166994556615708380527431311928410337896813576542971178648966166329018168778158113544417087927962872661890469465550590914470671077761338684420634929862529431691720962210882439311379998503685076156442932146570199036402049852696923452053624343085479465975881787143443780605678242455489693603838272743106824433976126666504243258654365947552621300101991927824171013350148618406723376830198401785568830216003413196678318536979275850535586245763876761221669983971300791236859448566414576646889848658272344195207488552998252641081536198848127265154791824238518053065639960595461143701996805515412004201305626009577478266576789403903305056560427453451267003263856645252017363551547252099371020009624076295737378855325173409163357472909153548534949535075952027699148422099032042503851165793646490629279698260227286363382078879881158569819366810309294008547308598406680172490819827054974107842837720290657153858914396745644506836220737568981938218371540914542762549458057992613391095623357489720276556891242012704687643344410626908753560621406766431253113890893690086893261347209898510934923195339338251343132467067733790561990393184773079615280467048418632606475612402271037323856692881599906530770065665971435108158745116153611799007561514425015268779356919363324238329350986044689756219190329280388119506369526916721672919147714154360518497600901791724721831281556425299504221388754511898184069569859448562855185445026653811063338889139775569342608084297351798837826376507456363719928053179758102880836218658340822833387130432086588790436766070526363690733108027999605845675632536907843347250182244931409101809610494610680274141395135008849876845856052685281623751489954450274362505720708123391702526357554451566122924950057269725119715655003126482015970740988757385813481806712206580856755623958468827066707982159861937842804670283342282713817208147926252782810295085225441050123076602318323699356120873474207463438345493247504439616978992338290490035094545295900371290560826320311409092954256300485076201480600289045258816827529855046290325739931635461221847519149449329551662525015637055156034176252293603503865583747669344030556309393688310264822000877846778432749612282754437544522508982385291020251435306999421246250988630049919271787231991316833509303320544053250147803696598611955435207107178386251201169340528074118862005171112871400546857377764797502990976885212050643996753384627008119664080959340743320862561055598482817921403673845100791211437891973582559825945882812044735898643754146762573194274901965243192700103201634966264410975616444650389933917737762909966558902078500453375765551161989819437954582035109060918762632923274089202707965514296138245884189351208392807706520077564326403991577197419207572303994344185371666038254541499656503399412608530939121243111860713561066558624124181782871243175051998897432333349710967116865820407681014945254514333216896999031574749185321368422441272034125666856199150003084647719623312390795611635453823095435068275740631867031346430993698246482353194020144803507519649279950091830917561820228039255805045513400315125926501336409963668922872607284781312403912890079035015158861209115174748068359280486679536865244519871976194182365045223749705053228630526464427004565135773700346967027455990320335412443700436722780655734262809733522169336285045607056174540641793521593608027375002728176429579763791216818324123966569093303406403341834532508575867428768003663260911189862140149612930256152182863333694058343041853458162666571274097442778683416921537532678327889291257890686895000787426562851392117861426815029033402126027322733160054923806848790024056870278000161683338256375248216904183808688865857282209574438326396638772400932905120578884162740788758967727814624845620517998594926404316153979420654979704739636813590227418713326217142370908653310539765010498220624060997613363125996040254589438517165850379998709732666922204031689748315156114510859612249507239139702997085143360799556314352689210779093847714024175720620744243770005485189683148686947186288382744351507916465420988823053251345363022294596263029499699959091209108730369301677158363222690739657038030340843272746143322287708667388807514159801631279004799767701072989731245353672859960315162892792337337105766820625038754742620860647388345770277654934242117583866597899307307020493039474749894369794462213930278930498794190948657866546628518509463582184010537406012000604310713114613870311543912560759054880521432573834426431192866342811887235810005409372200525269758065363680557997669524275474252287341327819902874305230561567321421717497170842392985541956214071044537670480288090819891856179479190481844970039454726578972153761783677342770342846534383359046426719325276221125420793329652989205595735799382083639423701989723769510647152510640032592265712408156606747039408506160509884462317318737055004808589340454779384665901314966108197821617136662427605725804489006200225422612462185214182563182655160194073305207170997279844213606808060724793065848416902331153145504413670849782832547237180931379407010267932220135149265350919678371002426995239349308485471652577934641345616356191793670548536408339201652391727241994120993210956619985733528438334365524534690088260924703866632273287860729855447278370448901711882681661953823983325053031050062873206609185914533926951481791403545948308729090990718532088594493692342823936185410771550914050048797573529086131390245896044052420113192772141403151498448165666868029525189272382124480996609537589770166521719105589809436827470995974296202525802175440454795616363905421243633312853944072359020930296188257363398372924191834776679661288225148900080145687021484455167282205646644722069018344883798509487160431928114448889983342878344384292788702157074831739303143472596874502560082203555242526494921375072335534989432394831629924970145008150719895547435999185552694857284818533456697757952385365964758292032488166926051076206726396252060021501277250981580220634898141680516278644794416635521464790648510361652747239616272359266692664488183008166388948492733786885851434174228224700884586572987750315128086337521873001537652882755996087392124193907092774881135941989848054283700276230654397738581771737007185629760049474052813792666198125020110358207936099207654425331419930627285097868931540694317873155767053730250639568064750927815504833176295757609753546469294252930084988085371342775976820002549588628856691918404116034153806632995009317842813586742013288585136237290936274540377611844196852227272090367724568751617638853588647995744503091299853636779164247217625138386594162576049922949717066774138614309096825509263135116820456080953909584705863531098851931922674784392771350237479580935518658147330238731787831192563602035499807729860239864986935602129185340664012136073081089069580964104912174545607692169718630176576795392711819217038982556954715788716817699641924329260126543217259561457089874324305893156220946859429445179416663363956466178717743690355843105794688376563432562544040319346160541961908813259573005460100075982837161263243830776947804255065629067385304658095323062258850270927701260589991407052369887186307856395510237463756576726016167262612375743783606201902216801113221065551436489470761705361774253258455434857567777620464743183850833942173208722672344884547082929990783107254805810057499266019638747578679967574707762279102147899548853211648366643320592828579140079902674021082056191849835026782921683445079224849946380849893149981235454347485761780202057579159234852011028976728058330164192531103758584391179798740748034723481804646190939992292354022488037069756182152732650311502414156945245732007502628053248065907205739200433697436869498621960636417781949819190259541027268630409824785464172797190144552886031627936948651666282982735997953142312325183561420599574337542375738989333299416643332697266192530148111240309617567293181179200776097584947820858724267398788582396976970198607851973185302047934185769630885118916805546761716863800273280772410021387388922230671425806969940692967085785943178797699245264627210494445206499285871738740121752514691426237516823699317473648230378733069131243324638776068053100372821161736094095495770916802921471553673767574667307027601318669209011676578992722873518632582242607170456518482974227808678724150414054458639550837428816494903541125086173497430603757089100165506824985579477175888348219547712139693967129071403416412386723603205470193777844731678793456291213402314459588106313894706424188199533788986863456227192558846059953300111045535187539313918066796602355262401173684125139608589202026364657821405329881513155077142373623469270715024347493760438459196776028182986675984364891619889783004877109548789617317418236013579025479754994592788595730035607405598199160000632652224983143323964304484431310277219078302312669906731969779095882556658229460771456199458777926809292754818357374211190020591431064908598375684582018299376508745419401347613679134507573312168154125884567894469478407720709667958434175157864950261901911653516325081783666550616255889112757359740104867934477633550200668988743390619157357364146798807980223034854113770438126403924444612240743649408201916756744655744498244877779454440067021427868988285896727940797128044333966410573542152995576362102448861539449286792633310631132331800283948871521483494366119122195371517035399190523190409137547290121849420260633252942577438875590089146696358954114631253775496258816302685194367843649165743387589363171002912955712010781796651804245180045891763503473418728941036951399396851267830680361520429388248668084684996975614413508576083373553642970432726565864533085471571948582724088148236756792841822372105606215436297958495791519618644190337915418292540775059011352857763275671901279865586242186585227636355414417852560050244404941241709811052601434515773491577993879123856197106163359974205863715053975990971425510349133327473369878490776217819534455314309268718660363449278434579240562529039838711118700533855535800759153990604347942761392175126293176589343005595827664110495974597231713153834849305605239884334483250869927789368788353752029150321300320146894188723504821596188385242350708519858145544324521540960229559085546134514951280938982830263949500073368507281467373627081423371890576176041800959217156194030632347193289446257619400286144364139499563670453224825464342242688457167912959253278445967211105287712056051189333993283039401788613589669701780279209589995164390504873653558514643473042225794266553770785100924985399793562155748825639449135360300120390054959736332770919795656703611175437663512407280175084326803738560319454712092257339884899359907204587041736692685629404731431163166196490088908253815772607563735154591398655072027209966573248658824806067257593914141990143037094761431063179379366481071875074150382994119820913662081565360292035889387886703861924013978175605062198253510501091855151010093278543254067450999259651263740617258792662002340333883445243900207358130637885318125743107707752674750494090623478628472642654733111080906628404375717472439003355489889213009345083935629707891183482119040884572543807894933996900380218096686028218599665475047124911133377435589930391624515443076390634896440957783018258511753377974877456600350635348385934365641074355221050919645025229469499605973887515037414753361987923222898061832935947593209237940822667984639513463967025836733060528655092080011897952372409995750768820233259948704071171389449775982847739384421041818162696167126159744999755574915827751318128008925402866477874999844144781733218409510162262243366559564698484583652332460093260527355574203659229395599044789753136404046461829206216600064358584855496641656277582804579952578512869100638407929551591129814978427757627547778729405762751932447801982428357237653461075579926148884445546824973809064494743539009151425840242437215340908258310371729711739999508627610921055431157537714866343597657275730036349725824329563573876446113654673400832686770796511561239909590855336716365306301226328249930469233221463054892583790135091640098228706449028205749555153438096490863426128138314776979015372691778376324549939330568151405947020826529592039405420971713989879058450613783915103199639631517720511956038806701901175291922209379936084409539022568098635079562623335722503248767721638465763569693481542740904642418100832963301026012491664957737145998218557308568338622734343523016774873390722332903751594026233357947008856403170252725644885009478635054399285658519005195175498054737615915412485359617294504196289103933277369769450335804609226176365748460436564972288231255186696303918802155176131623492299777487282674093791812368059260457463849814507282758892550728712721389779341306051515426191400678196122247471410055124891620121014671682056872515780526862425847645797087746293205436484283209739623900308252041007938693478205565032989484584219990466626793085920496387336857806903992482385732957481157469717637480114215061970684395297477894429942795700366848132755196288021471595356267597948731442426563040412325908103751873011725431763332035111606488771415608982010948089143955211355926480414543418212742971047966047853549057562706221760270426693148434738662360509179214065127560604015655390338244574118168965428266639994982295096796462553515602140917602434013032011004577752863709460145689805929727629274007340588334051409764529872014045291086969443788442390763416789726866930544060420945914484991105996441753261103567387405326280317314756682820530900059581409247892485521837122853654324996881247628941259205022377720271919336427114425480057528857043262765994430873178187139471600780820331527513985196933488858135475169727328031918331035397495796762092393531374240857574777347249258171411523291489193996523025376896091944908476377073550018132893814547776723658080898710276044762271479311943356165641359670762819769725949382995142336577028788435902715231274576212538504816523794027526519339761237982010249082419760198273906491151050652779955417657395127853871397111980622794916701910396974859594763816494176029963071896536941047720238526644120161127017639139662280631282543090357292793245909936032095249813738338046930570488748531747874726764889924440464883840586276953331437243103080095440514837108645637285882078452595118424213049179715269141903399102414016544591159411241338831585409024708810652948500907421406476321268635484831338990153148958232670714053589209387472522007364215553681460868424639641639666306309183289022716614073150262871495730811805700913545736448687148671050625782821992375276015987516821659617450148039023266843422678952785782993399425133642658730761920749418526643123847553331117337258274815686420353841474220417536632947075906525865539703801452607108779648310367586159248719556667272312706459920128671987565603129274548562820137742385629320869153762082576382823924555617639906459202087383207011984524724988871509084381513952857160146147350449744851728017716539325696858058700070546476722214083983266080895448196599948329925540335326584406323362089649641718710827212165219042482446860947243415843182095113336079954111498633060632333386655164950448125250119237414513678641412770679081971650874914090680399867193257949627763803825295192019992521757705565869851874869063744210749365326418885385268304916445716030171403497368074514721626479814450468560583423519178645491423108634393197760460091152737293476137843098743879924707718303175673272718795979635341613447705375101025903026903368088456008961570470757062370928268833786058683562758482475761895146563675482547478018949418686246205564322987161443860448759127658358305544814159089242993565749104518577161101795402907299722348360645864219749571562314668424314434394423678772428585004841307399671743336273680895896950541530500476630160784368803433695583118967342723682465995097435755711547971534769248936736731866140840540870788331715784247998265661819247552698344200701921744245078271696287199615316257043542340708760139117854580309735266816374324646163622304808142292587419285068443315237571347428724450696857910342336101434011301274655585482784230902125149025538648283778154990990211598645761924735644964587135927369668866787456788055158015409803535352597388444957533339889333348132166501784999581711028355784656557471377677849718425738977791086918741951471293369605160554567909670569933803884975897415103602368997139917545925830303688107709467024429041508415688059506667628385370732986787717396580134031493839734974353087099405994259770910232983234510053564854489262602474150943502208001977302512768576523224117362956938325298910988658272642048297856757926925107358153747213655363329088045497058557449194570856898166311791742336750239880588269648254612218166984865150047611367226109892959364475481613382764349534058545866524675713273611344617965508626477470103008765078915612355737672275829134516664159558173410367681319746071687082440478368698010443013887965872010044161589488188562660365877863613618110975822470149714754104072418309802028067101772721276701052596401983170368176342635368126383844251095205849175633157753502550338765676418334114499046848593894717791535161428967172440478146423659309880062713827068649727540225791537138928660134779440873860849386213329615437105076470429680128247836949867551818036845288314150303821927507727092056914617856586071072004269802955815309774723715946402131211947457665659224497096563282480315196311704638144569391270864711712631115567038539807315442855706207815384914192358061488916893969942762027338970482769497991977683864525737682540638293044386701228114998357684615033019335005029223181945835644463385156961176559946394209609944774263768704591153000328900602948364951678319303390955743580553435038457239933668700280148069841968778724625845696585228948229344180488807254160320378669497231540889920468555308859842747763050301859162849511163954127173069756678140735311009224684305903688406655807854809111084061709334791522369004258714154378563009794450343125437305134198376190148653745466984343594270237239307493451199089446295412012440071989828925376686719504816065200101316504096221031183908999200606105400244921113988367774031340815538932446768125180589687980383804049923974666636327735192970933499974713791893118855049564474981706951594637714139569327929258888842036496150079783400653722422261703927461449515965791845600450745849332018517106336446143844751442812224667303556259519706892798974041173082684820781296281164635157319402676231892213978842978376710889812833506197758709028509943139487695114894896501754473279038339392228374731947555484749723499614658265696804003985433505784969141448087107750972755320128432205152716590888612169228114397878119480302282688673548796668496642086843415392627199312415642791482046219934923028758335807944998060654152090580692089680801884644336614585389534687673472990067018348193079949814102772658186137030714876196579665338333009696997433325968125529904291821143013522918337650525859136099540410439131214680029918816781909033649484335411930388817972395355468717705314174685334545061568375633764524422718369358745019308483525561928323764839864802837588638872116269342726435340538361821500655364300872688119274814080455451213298831768455222587219918617198122207524949338569306908182540441883814416012553997747003405686948528645884456419936577874110304666874437667689509863895831889591734465577657448150627940417522897986932463541403067551077232614696865570254023022069554449556730305783006762462026756171563415080428922028540595578363161412001336477292274745445817838722778113158863184867243662601956250082306322078223413759287727328899287756271940569370403354615103031352442648518175983494844493475943999071761545870974163791048450444025523267114378789547718916739104185996719716844763943156873093597216667973753088944987981219421900470191730317179837746877072803366853399630507257146696220392002509784691218469250167305876343601256426398651414068959088985435871044339836505832708676813568848781030782470049465815172928277046015635937375199040607807744284066518625263331662370364459429289527538433913987276625596842468431932158237992086326915971232518722134145567406682486879893652991352205418076290113756362014746619784179446034580441299755122095811870098690139273137761648571690972682025579849840874839955128875302582411702363604206492229792737268866222583590298593820102524488566156871414419876454445821148167344360361674433710358405473677177611990280541058024493094909002645346750097404781050602716491636476627459529498108383275412841639751894936143000662783980192317207734909441057229712373797475412001897520137687653993850153833724283031077743114648141036343509811194703365998917542484683477370739848234166142688372662065554639568835877879103806951815932211438376163782716208473901429507830401162772838129769633658827482332899573151387360263659887885237335369644635587646746226481406146811176065602596029870245297124659768121104177489585530519571795972785628112230100557049035424181747199647493112795618138824492842847103891849968611736088973343328981633537488657060118189341370312911153289384329829075209136726877722822821623555291851044106066614815627903017830969470826202637549793501878513796098414751342461700206664883268580426344116090368803224700518191224300576439420499260714022571817467870019883184194741794008343865652302161821704766300249301260017197876099772710928857486448235999934230748586751554825403967705239259675563702748490998251678374789742740774539838016501093857307705180499375937458571476696793014579728229506975187148840817106902457581724350032248054611165065745035069620014032439570687003680973032900251737820558210336964962883177487080245678866590272807636199607534684287148296581650393731994513636414550138287810585105929466430084177405548979739392840212626092709412737184270424749609256668013283874130071566714847359289655725886314682462284881765652446693605648832258994032815226552005952584779700752205691279428579821465419040372447673385521611663020568126602242370818972195627476014622954078118721593173916381455085506574309014586629386319015609872186480313754333598798631745181648057759194010588919685049404049167445853911523398290751685143809743656650155879867122492115543350956326670177883436424128512703306593284471280260784616641637037185780456585029082343907379215722558836796337018365116158051872086902777941679194040455959147606768092486622250696756070627229453437209200247408942792757186801725469754998804066554928200974333697605884635759146460374773027276743501717449442258511686864281775020093346959842541862086207860252362716303651961846368336541194820641920156608849652070123994770749467020144610851581160099122824364296469753601497288681199655867127925159902203622717028609386097169242436341033326257423005004499040492570891742816089439540800269336412297075299997283222261530080777762745459267828341912337815698379936294962214924691134089720581568017232918968797063865100428203182819277886554441642255829189286348758069678667799510487017756628768055139722310886986362503530828542143647280797660937970814059972865968827707559114475573678715320442336229434205421453632427222961665182867456058393649741368189944348851437191312957182730686949576595746772349332910489332178166906606902004051097367177091348715393182687250158522524233581080527070496076983998880773384076579920741857571433984958450200786227134467070011642521223959594767657409277591065496825587267712075621943594338789243686542165875727364711224896568447128401033879645231137938778452095457780434557649043647430912921013105295390855257970755013802167331173559805197884871643762960409604434327924610106182396427699730796905740957431671106655833455899159806134313247221318389761231976598698600665040264137484564154775281593011301289308272892891368455385774474472477977297922260138099187353654461836788505498366924902545204353520914277554117946784309232472683033783881364914753779070776080783955328780210057938369777573460780430715386989006558422911405630681505268959417498581821380929904812808899261938250092280938133084230567399076894052712562589960745000564409613069673901467775374440252969344075609591133623332125689618043462377238532005283690651766551647016109339310144909537693021587381665910185838279257594558226530769830947988589899788764789605089280143972335073485534971384291824490470413008748132703514220939348287032748981579167646711512759302909608084459647179150393485658067667699687229887883755043419573353446513381863506963725071154984301952417343677099410505852722240111076346294063029544147655722601133610450845178417950282779055795428976835238108823696867404244307412481679580305533197679046603417982776083864138220978867513463989166940857377391041363718804385699038490109128164474424963749825204918948571953898344176694849828971137760972640731592175294471518600890016906921253707308348024844080030651386483890714444016290703684676459258135150876962144117431657472445077799804188178771228811619612353170214093533452535121707724872786876539138986755928334138787705269138617855495765757633127898339878726141929398402889422665558030829325396161869222229995569488583407263286023713847881970996411271559304940497223177596115789597155744519983497323299749904813801433713158913810189606283682118400475582436509754672627999018584905230794496698301244249529354319047605524107503777420506765623452669607669664257925704207695537115686504160562215138469163216873153383626483054789789051616080719623571010533599467054282627917925037917545402547949322199733370395146406627080316427492342351689543516682262643799497157178116256086175972989746591347997053290543582961702094452841559006153464407522644276015827135702797133369032794206093107431201999049924748968751923199758402270269168388788319370999833634009540862379890787738647566287769688402410748234838863649128902540856942381757165105465059477874519027186922545840613631647610771420503591983979287101168106670303047803573375300589828234968995820562497138669966168989541353515673281433186646030298851167040557594313952985712375255880798614534962174341842899428190643647936710917737816360172732830384813997536140490084797642368624370103583926926418403966801379186603727847144927366863110506135119584542644746049226807133266495041025739000277808074625896112780902002538434093245193425901092750802041044407147704082299630977654821811579065500866589348153958950426569936849271993755727923667789764748717821233304624601015415043200423121823930656306280105604970620510189012269296283070357553397419553578674170293602662067358781079788968406788779083629626437498823046742529471726851697386353671998547285915391659169290401264326363748044903886836246510470813822595534938802369763236227702162695160083480709853171900683184371934143546628559763828463848947158920441258227499236056523254420024273875108156743045334234854855907854701662640317264023329464714036161040753285034456256655284767033873798118346824635458390836853105662189704670555354290283997178434499742484804247935272647952013525921729490158708719001353239937392148924681242227728713378223220095121774633429346995520565199768595838093280719951923238834853070645815457096683123857584696277465934875416109409120839729291097622360640851316441288403933651451828639496860588517497635369276944560063375463168925849883046750754538236143964652930152628317501911586496447022467005905128951178494666052095778311602410850728392879468748661704578987221691105784622167570993370878772715360288092715601155093675272990775636467616419614858931993485639061225665209500894124374011264779100467649668924053337902875828012150588189447542657179241334253813814237469639775333170499115244910771929016331078864491259564738742129484714903081347890994628101808358141708849787574408133682391901659959127782001786866341207846127655738772645041294130782769500631010394891276677861951271533220600412550086130036714735351020562858769354584530011596802793188399207996760922045885162677593221412670732408119741592868189746000396783377029196273100279318678135153743788118865678427207472195730186473556124918584834864346827612928753799363596336197792606636006152325967974069298982905184291675659830502207786953880474226408448462103430457356142811162984209209905015472413659730010641437981610663248783237424267625232143147027095250160383091164150960905893640167076532440736921531478780034175519352480720933067992143274444739347211505372735539741076927604240095458858060656398586059977597001971517139573623114152991433046098287101335109072478959432662407561681812711969667378627510736223307485433173319003526844956889213749790897151053120037275216734002975140195174852240112687539583005553770410986153152786398592863626306548375755280395083636153976029286294458991634953735624589685595077948794510272599818027510888186909487986948248131956672778212054628633813583848354902299803523782471975920338888216980951075720424590572424974166196767484688864119668515827220136693563506569850344897876843084955798364601261568709387734842265173668828685174508937731248588992759741572950524101623729072838097632260417574574862224244578320140433279458347927377299255443455208744935422054670122567941162418591196086761387867766150789299744346202550965698954794496573200309783003537615468040448077600936288122819426194306985902618132142345547996617819710600677934479489398402927374069079392404286757169697491990101296996481585478324009519970095985852435449213088730510773398481203300863921060502314737454587342504755003963776803163902270976950668530896955247290737328720433700360976768395462584347231977472171026801492239661057148934034049262163435253097047344567643782295968411646858709368574491325475305209289366682073995430737712982928807720451454541055917950354069545739007578681785492778583385573861104339458104603361417440763371023417926378520865113775999988768262354398860537248054312276786954202946616357160108473292836654109904137234503904617955748394689107563551730562024112933507158660661937758941059305390775719775166392872559206125538695662048661878890743841449604415478832784277681539526762340403309375097614921344279010048160069157199556415336347369210281391344618410785265215437082807838349471735634010442613914426288168163795697676228859638085899162891771803636315267151131303044420331868959816219860166576051917323980680016447680940613721768606903046490777147801902888032746668898512222396617500018333322363192118734268482800251239648422526326347398658030935528173507315683398898908561091110846729096742250664197934443380325590703554767023241922700081015385909692352286436677879833026196887013001323364632546914660568872513427253036894313992310870011251700393683639089704259845212449937670999911250563854387917164338113574356879032518236677517682895131679979511587165279399901943697395587061778796907368140740625822960272258251518389834399956138666247446958750987501506697115031922133337184865622822720258624478357729972068887978084086886719301340568234520295633713906273908388944458945205107700169604140722873882188983307702172010039944380199014785245365930171327266768019322997033495855558792781284852672839964306442091246011234863871659027801925429637085890748352631790955733686375304984038963465654909705110789867673456875835127529425561836381670234914180418458138053618018510507334751009211864417528457767905648105151305437921474633233251609860589229385492531816069654265330285402489978431002041457719258399192559788844286252608722192919890015438883063402638926536896895875412393613095550101986845257577644240082071695144138794916453339796148150533363914411295366587290299133922366888375234571461087744785093494163831589845089313777436083644647027122699307071283273233099068910124571438302254959505516175073820561168975686772994757978046678373576819034981898834242637720171542919767563543421891915958102773797734638586357052845530472193910157489600942721012426389303893160466938964211343546239788231693543092936555055667076262284580683192492986038269103166553210371304656586958654357670660721783490444594740523689547648308510680114531719016684664147367108125952939821207146013173071298872690540618145416993332387869774156320951059817277948924287253424631815134687136798008404349839260536382092699305126487738637232300344896291826406024750402760676439201093429453204379151723057273092715009394983501746604313002535732629151958223064063183131731835596334860359946719090362249697451820392666410703913064419353856161659298960847538975293737239233487893492166063547693199907241628637258451322278515408508933373700636396624285173605849924795709934427975354590340812593185873132033906075620799141551749828495412024264064504313061928781365050692652169002150589043286632725481357336207718698536055673922521423556041151057476073269779961755364098089690247544331380460572856229340760640729137925257273047517947270049750293495774731173692611587327213392975775501539878462061233572983281426298354925459200257151238562466370780253265544608419399007177945345198361016673199299595772310828847256914554497906069988779582392212714334993318830869448441231825813646737277500936086085236059738936490867647272024473036413290410748332130707350229876910893902273929020879028117796870188245566975328771141525371599972899930099152977690094345179819572538513935755888446752553092446768447501962024640570693848072560309246801103574697885334961629762648561973218075755776787404876427753414221222890767425443570602230120729320187096904430143933244330792672745193382864821101733301873324257946725432971115683073983395415141505121583829764362150830508335504870845738324636645074177408376615828614158325066590885380447526577534969273042815985013340068393052756130378998418828528808199753576244027187492678965016119607868257821427897923314929959787256517584927612302043053487117598064940690526702277166422521727664314084497162545873272806942177977603491666081611083884651781471824210031518152534056008947528854695449763005540911589163256266799680014996560733609220648901101467431223930713575153760633026792862929151995353005164366516363440104460293501881617627831389641082222496001508502687217794694237184642608580079180006735499928865899030622691548624325404387677692320615994501751845724484246606261076583743028421012388889124284502624721893331262501102079502274292860911767229875108078899561161556778524654154737228669167903943089348848008022306107707597402031698450154741617783922154264227959537011232742102717340674106382969236907849947299009835397373889375820051458774108330443303492490035244044869136595491610383312020383287628211283159885062003014665769353019703468932902756022168993759780398418201048440293952128018235544664037877033700556951112391791664478801771616222932743086220412706297420248340976927247552832467065889695703409518468175567710667047731247395293184172777409488070815634693718777082371879858888366966551630730226225353567495092924901262558696042685340696062807779082957984600184367246208251919319553017606552592481006941291092217059923750921966356606439352672378486418692315535669496839848974708524668492753061064681036318700400397429689464649550730986167635058624284461362506715819568886187106300537251621313120110458198633339677026699703145839659121801963632796093842096421248271879206236537787086205422988454776551842971182036617062204473370265830749302347878884474977063218372700359886126445608687652362305106380096387903029837925438557104332486428712070126946246500704953349711723999941865279434544532001695053911095542139978452520260190539349598783806143461254449503678193663594303561413759650329022764149378711814375032630619935017593208311810708454823998380638274712711674809773399503039539167222656905142179444894394524483075748409443800029086592280915307935950984664265090253905690364743881158254414497493713692715140439577963296727179357815104240300534222056615629937320668265617788318111019520787112810984067610513978892607804323760855645655109283796690420516836388095172166846591811605548134495353531586315554654071675860916900652928299836690726646377990180329634385965742237200949477190007038537650543787863936455516201024629324260588162374336314835823290778227683859714820923247622053195825484813877714353530195025840329289027602005401424612887551067470265256832522867829938574285013567583586981492135897897610898884718022768670778636551898645617268262871776565351503867289333043022092548618717661729479737995950837367080794006221166525155685592796161197618760192421954062794417580072081624401337946341630311962054275798509924299614415562273746103176831561348160280803326840764303694352931700347601223432103845842902335201002255237318332757788047839542584002697799748864343398030550006299418136292964062767291654681191661168311332115825002836468423964713042773765857965848510283598503497087483819431189407806998753743305956944870225889286996970624979297687169207141247457255939691197124394069794130864839724651318053795146255675809065599669949631014704288782707918425418695077928217043383106596098584994148011440443253862383997193157106217853171761150446536743444531389082589768942727106714255440966612027385824399377908249806739833908564954919445381447635668539629724753358920293966887433785822902437723160586505366823607255074184664177097266365402606979507082082350685911873651564115322112670336815726940816893768753718705428267652608587964511381869564806279962995631567174421913661243109193178079305000015142766301486472611594504795446909086400863026280463129826733181853798402177148388262950646153283553290429706725431008968221204562604771490770502280447341941941519459646086371475841600883536411461406563981484142681336052914563514570071875578799393709950765303954985830887954040519453195278739275601793447614518877693872088128760790413354316963028989290683270262070073581622134459986673118022065660720202802253236159651101869633038449834430790559348948747563650897087839418855521043962345187572359253215612519696945886503154914605907066019786914238852185208474792870909008755494461141447061085971199607331538913901127457049086294687554898871896922909260581511268769575986801803992948649287163178037008993329029899685992386514682553984086036127533376376561164298970297451266982717239923733845013506378873413588806463661257185756558422801169572450316219640925185976858517055704165863273074660982870371016828136745789298981252311157568204378771984283592107611791059145530082532736037115581541774342962946591300188253309520730998610781463840803127558612767570163363518883990689238124838249604314833462292636258812499367942696185302600631046266670248351332451873155787415500577102542830507589663446534875908871503703784526160798931991065736385668440553304514658818639790153616493384918146123347495571820231682640519425369151501858916926733439318571021135554990060287548655018210561675457994696277671683209550575541635873702229293124777118659905759542085100356399472333895732989265842754045413281483322898071698999096731657841016887035061654908156736089235586611593411032842783758149566714871734189250763954228803479998537329425161109582997634022175250732085529714574464880195114662730113015117519539150099459077759650396601982135127190792568191812269767226015688395551493569456499398931015026259980363418855795884303146689780677045128252103559617430386900228932993343123531182117625921034986488432120590537247561825541916342874453888905965652314227728500321588532883359261464104633717256065740004921523728634784709673664124193338619376436530177926947841422121877276957261204184829265021395434833622859713685829265547678730061351761951252124952360457315936431363573646105895542048660160216562457179005393504556388323569824645977505636327549360093136065645868028793046854371088590910075498155081958165507954636891580891593497935517692341220978454913442941276872214281095371754349327945051524504878140902403134279546337755244309336124137790560040605938514797820317862733090097200807704184443285090895312374601494651739613749238925524161552788905665499021465569390960136150792143758489630163624361893567071544967152854776011670357691061450188211540163445557768480712002365607938443068333721392638491675359057329546411290677770140573413688795651278150571939900322177893020387479857325138221078692853419134497670894414116777521207784986520982600736737806126004367234790191773624675923342320600576593464349212694861183192468048705655156748571631374555354502825263676614540899273423896633815732080292280730039098537262218112794475722106008833416887372433164165249461222998746006568488183462647531153777676215131741705630530390560011702880115451468939081106537779686384051968125341980773181388243871562640594021618389114786668380741411956398136419663083250320093969787109969761392041840081117052313302417690119386268541684652286130555208422708225805791370982986451299961146088076552782252041199587164042169974215544375644956175870526297490079598608021342611203777441368699017733772952081442175952370568862587765449888295301924262690329014157395311711128203430451675484713276075689752054312816816827779651416619894631989398387096601886869713350259289221728580909699851803219780711169176862850918963827315229704343417953427847271997214926983648340433506998040261467999537491092409089758020734439128897780523439725574635985243894053014042383373591739704168130014141495267982043061929537993896617080815935519998299998784503734949030450408582760107312168832327186586970179589810314375477340243750819274427580052844476995181797526085562882564839586504898769903123819489914690098625835215816607109146085834566306946847078391778051109932838416025206444024844456076438570761648526309778883522115153751552699864867908272470021342770015927225800365519182469712744903703862589709597750652107120477873493702382342286074779666990911906660909605120532541574843546788146463719169769792869112365842578217501137619431021364443111085379769600270221029175592040464501838788433766626139436955488571492837550048647876102171034857353123449843286992538015126153803090686706056609641967877897787987865534925085375708192839937537236177148508548580373206903226098904281184021947711118370529890231506114748474465430945938028276930765581857409869147445916362638956116859475992035581522331196981966521100201497335356814226091198769907640284725867306367125216158395116305794589154067062667596005648438992396197755147950617477113152104628515455612263732051488378162569785975982924838394369503662464695803190817898403558104631099592945327475927328969561190770292831850304778124818063628269133370141734896762875105652214949676543166920216753509690186854693034502070165505576005441821238180208527874823816188371688064717412980019887667200023156457314474036897197482673583374452645636186331063686318718051675675929393818582886146002236742318726107570849167373029542320720544931110537722710822375592036488250580509645803288267609075151272245443420147524629699343921307050820418390193910313633199091524525659721326789188686961410688176823702202254402013077861533103255741664704434456204307522739949970269314581649206486600003531511498265067671734076828731287988491055133615172452007588821459042868055144943701928774677768806376728167093106735956701223845871659452337462070364721578365977878194749120768155216027780646777407523505951478697007416582755511096193845941502212832932558139176628133378567394789894290275861519227107273883099897907220754220269566319491771960116512337379317202622574977654261281734905827995772335660652815002435236254259619283531169492697226964736947255191018838556697227424338973752933863006124076772970261792754593748808786625498731855668169915316587382819998672782846927058769735535353077925658405031516603266965234633028472467701592945216885018358003453987636307981174974275047678993829891021728127107969112519986935099587355604088280062477044761872469619516700380615106808805988632559188454659036026832894342362963694523586494350418491388056289625436780584272492340606349682251753927940596888513893189879713087238935515820790824293414745094222323497628204264908240252566890366657012474799698337059832439521036783661039431549133200952574462338990581093960462811700016068540375865472105253651885286000142903015857353714406674252657224736820995607810372730845071181095324864602374723866486140751432941203667474014118893283179057819595192392944692246372380324671305551749775494791690543064490918957697416137161910924905686409273378984060580316102055029193079794999656041635921040308628678920677442089167526170715205074422439436136605350165597823677779446150100991946200364528661061882316480247553271011582667847337429741484404210148558436465587173643008145063369692342774759025354958117750136329909139820348071328059326332091132900544332878427668874033358246868134009045804134799571398857017461785774364604732758453258413231074134643368409093719601396557371287306132805095745224828741195653628980446353242842786158151861636632951926177063646302541468422312570977226680418542677355660457669012271466228430824093830139047219667848877919663044028666913081626358809407893664550661017006396757702768112409514786669192666570332473002396296127736978909442762835491613053835740560707578443324964533562276028693697114884208259802573706760913090335964089495136752843746116800548681764863245482366868875068225150461861486128370428948483291631984640415241251293042268556897847371952636905230815587349284638492370793805872770154065862318830174394747410013703445991889074856879520970753973667127361644191540448405553588065967974559514305025448304252971633136482546421423396191302811065406444092908572240537590194831258132515209733622028365904612377322595918209034253686431843536241930515651993560117401874757205800322987131450189998715919029264999758748636046069303867878510714526827721855387659989879717800967072136963461003923436069350610203206067080343690766109753685895125564780493613917217024307226450263233047595540413685726193002511977482235446129410079897790652580956136169900425581416624116162596986924521293753858569939081473927975823435945708360216818512422878904916691304910131313253062852072233177049217883020168235873488378130161741741146018912620060024525107793642296529767276000410393826141335242374022563004908148335540891398218743804649113520554541732423896155394727286227540256599991575927048317132221237194284427266072511748225004552018777759416507081256199465441501328787610053142447161743613675197668066737702048348734461815202184263956897255530522947574601604655644751011454432927785354466530575985067857939170519971658773301193250676867580288539584721927978620650624896934925565440351909114510250583468152208113890601820355194456807828845360687971120821666501700237993894300787884242695311678194477725166490256046713298396543397911581159722250590401624300011548481191940888385481397909637149149467027542227679141728428967229105856759214505098052632514688645745355394690683458744464112621814385231509949431594368295150850329928196497655384188914668134936666740122579308737149755811693942880235163937134611241215142061004184252707622116845914883291921208381580073315117258761560546371236809873132621450182758759307120196611346269674102056756900857534830263364546505635334522309851753738227526798327209135784449452584597946072727108690421693757323120082209928643937262037744479603108519837636550659128644110792609944540628439271161679461229018536191932593039469120414253677213258702672609907612307180249429839276259019546958904275311313394848649502343846868381711015756836335622433634998364779275239487742256610161690409649190235816173205520265524773392300255750607351708495518983002838957441770296258798591119137181728865582081155461442026246673812560605775627809235037989779049742033610811466039924577117067897006237966531480769025534754473909726235203218423541024302340828164723727612706326249797386104613713443705968915532879118198347212874859432096155936556684863323655066719415211834645391329895495936308333225903721098931367135082579546084762591385892381548964848501333853359839559326557559567421194806917678230756073842703356490974303684773797077187888614987236446491391977587456186757631253264200975647044878824859326419486881213092003349517688246004151174244702400575531757275717310137071082200097563659834384583428599048618514135354820702413521769941130078631206095184427446335645631077522723583328280554529936111462374388082194737293924193536976780857542121488216653966956758203111930748677047056056552702717839508729688172265165296796241182611972496940327345348011656969911451330803995972602358814159385544992237533326825709336247289404654582598232217719417862280658288473288806577054359765630584271168899453617171666759597099262979314868743751329134953388187756619259805694353873438686070689441568664932082195994232901995499905431902292569123069363548214541015959458436556381539781853254041960218112249548143739954483188157601419326980418457655802756197908926503385420000071179931966986174997907950018728064989433550051221165735295088054858888574408525169008929006573412171639124316761036373008240266884191996325599050590647583970634043986100705393452416558164407600853404546859043661335940604149293818223501107314416109891693732294602935122423700772041839022695719446140008618440309059645392423308631940755633493446261133628377514727208950544716024351467280513359326598074615837672333792255371258702795568095959126414378125283427032436606588450552972832836270491273840237511479250543746740193124021790888176675453772047619781757716419116173198722186563114526562053111492901603412444615969808440661826714237817500894123674663131951557566236813385182035696022274799729970694021834999760178867257207382760187940082726669290553498893206199206129065327036787238012209995836547178896814116784192768927114260053556288549769178011790856369989233150631049295478222510651886736093410744044128441221180696773558872319712237990476209468667193698389073522318383091140706548103811819068652407164549642938771996430789773232751481062238930999070886812151475210991542325849419110154946422036925784426853980141566512481524357929228219076918265633342650247332527475656573061018180919460978929239873982861155328048888021019285573919071642369878034210326010551906916814452963258201272011018424395217582345763562479579885770629013222146735388890104406706964814550032748709401588954794602504627889680121904115325312550077607061654552258026576531245888569527764202521249745549219368194870570624709179890364755011701465086938993428649990487497407623955749573651020771800589422105256828284115389233537597392041536791461470907725630207554197737664101586875405376363041472713346013754320798778923221779486762191879959176143954646994846674682344963377739327948321123019443385141800089498231703527547510658936316319982416242256256386759669874607972610894321619850400665151775324257557297078273209821647603568402182874891940004671625451426748166816288260730043834792526505128923187209416966398620419206835699848241934974421812470976752367706851653398115909036282844817952251582937644045135767313640584440227394929792510751954023108351280563422789854638317429559166140338057720797303675945504723348643190688722980543961788041973452489119164352846891361724428430166689762413026147136024209200667214501099113945901755075397874530794676717360039672830416520763693820244086812165326573111220596183857626984436993060899125970258529776590651066197623480936641889361958774223276734013740746431388098853967131588570169234083941756646543224990672800868102847886099222219155017519017081749394925209653974673164189512822128601934097125615401553136299490513606351367624451007613566880750119240245746633719238766181209808263509585206663975663378598767061344904221293080545438234152457232072757759127998151948363092826584683255052574758209345890131779287166165762401451632186415476908261544533662730296212690791187861562256317130336325543026060060186775827960399295478114098739137308154542396658093156539242678293827468092161376241302375808743916432550360958722059636207015213845683738772229879426473806330643718204709784159674496612171570039447316344777194691568931825940175413011760268276799703017085263389747858669992792161356341100144900727907050645418816541192884180229409867495692502378256921893655623070500354740618821921754088277047340256664985202229147827895485259428752892723480449613413825271997171413749230869255403716209909396120916343499820101631696737602828635300705588454033324403676135958161357140312311869889236992948845304215575798197920087167048753376744389323473867193862508224941086941924299383038364521900376365588515931432558265389839681252077520518316995587349019440968942099736835339989388368702213927094098450632393349024875727076323230688631875280612534808308618496235913231710139613511890302054398051280058753744283384963512302953700838156679912348968819288162566503966098255352036291491730522023714551601392248327812699072912643576453251178161939714741894153555771523098889311501906793442605598931829640820147528007584881588585218325951237824053298520934217256433837733927851026324847690771263514512056207280404877492051805485277697170776276260464526934703600626654384576147757682225604435160667371449286078678618568606326970931470930281589636582175437616490419989556979750914880569875520023787740488680352338520533100806741436789815750424721035571410388834576194457820593084801344981630122046035014618862481794817210455733560673603310445096137861693917033718000931670055835811682979131279533973894874425769885778319337412249277795822814521694415228708410465161818500011511679812965750274661416032927758545366591934454403077692819446885110590410757464479614944753503938380024472529920430879331230721996689472505002373777435753660662006704676238192011156852284158403620279241870836941722354651996053876632220630953015678928128230903408933001239536034561311801439793999435976210695929033421133425587417615287557372796497160032365432081014678529624691023343848638195272346558000839409448570169810024813387563708139097376487159864097194420248600048869664729653471598169127756506048580844063973875842985720290059522603830907655618380417210192917559769761393615857615015662765772758882845656963579164381307641052522835936353643554875934826046076537488074165912699255639927570993621899183654743509626615244170384617941363721034909042117196276717491126995051140937919759660123064174418209418615435612029566600790807811577197531687881524517278553736272277889451496457050390653727938791843654793316780651263477892772002426987260413536928744021198464188194027505228537858866038898825185041951644898230854960676767643455813786737463319629756066749055131925071272169883667464706873053308702487699709601405745297873573432158106394001304882697455775601607767337494552911255312456767793149165466220217954428673231222029934203212010090554388227008832306994350527136501780368909273210083132535989252270373633417773259864519400840456125085451261514030507465343804005204866898580348309010458067306034401321476804680979181552290653742575160024512219975104515729357347566819305038423902796237223665423446010681514105103759347248823484014275082309291054482131516658743077931525780685028281579197237050115057344303891568120286995312467785924330139563523863212256314357382333229829243825192643436247546265881646390483271057585979754498400858065417948360085735495547830621124414450860416430098255234510630521042306447095527014789754790832875746832621550886680879318981027416305136903145166996499305591012148287822386831296840498049173954586677364708805299727893147446573886377702170502159433293000582196278693704623433576062005656805748030270418670764155118154736786005284785624559933927091872566067662107071116183459993544861660601817939262773841176166642787675348855584981284892139162076516473432779807592047435129170669822204463708012231136325367528416328618639487640491825205528192965870579364267663505199693500369728929402654022035860528938852168115567489429004167699462513905244248800392683294842254291254197683081763784827883674561730971180674553534969291386536687494122438906409889371225893615382799531382308110683235788205806033499687840870686391894634309258927763194644160639053541538829679069049039514736099180223974715820179019907509235761290018530686217337895151691103587905342535120148751359390196619512094743478908461440663484358392415747305429714398140709121383538399209052239118588442727044826828178473130759457580369607047242537950691983842016656194419966158552551260485192780417984615721396369584832400994948010915439534714263780130298597988633802858985647183414300932899336913212168657643663580684817485804230959192990303544427948252203929632401410533763969850412189287969254781211955186392931280380573390578743265535444706295514404278959583939238842721848486830745780277105220688560190670274657623971939885414933656440999981812853494882894548365130661392046131209237556037835566901033663270091317397529323047532428473484096142281896149046675181618384965231150963434866290183389983466698967938913648600692560603107611965010556294229695552898898831983552912860597568125341296381296714405962709105186882855158939169669258015274117640721818552763608474633926142629133607633043571535310091144314811301288858280309838176381947480661369576864687533554701421163459414365261008614219768168747434637659532262577098813489489503276135221821980281622168704000456478239903205533206410648401772438830183491072090771539965958373242636164258257212589197097656596937962498746165455680512856906227132182580289312289469928077803353341338116898567038364253154876841093005738608119806563724984639618318146645413340863703224257375677810010982940436692496958397969154309688561834398963230414172546319541947927823948570689484107452847823457916033519902499351546983190564129873905420289321166624710471104142939274377320683552003397845638398095922190489011925734491590120947304249873237681926993577589241934469705772568516617131734495637927918793792583022116684298296426463157258667158382355094229349938401008111667217461027108251625443977424768996142352104535470138643608761296026240702408267820828931036676170664863484597155994081515986910097329727665453988981643817686400500210375902918579367104500584817188599918145477130224017843925308340418004296055951155275972445425702885954688294548650310565127030765496087674470291890025322288142758106556955122003845842467853468154395697312929012121004225735855177900809248243807493901539370599125336485761035802166112984291206883191244542165053809326106311096813967173830923789880994749373050557468806514464987669491038369625486638463388006414382436778804979036808831988767291315714208867423066066576868311224433202515035833154357129263705958138406282830214523548491884884082371000715583577727222392497946635688826682038980433174178965633903771952410013494959281084036495702642133366011294450786725314519161016321330877388472093923103479942328955379451698529295781649198968162804596513063427621135266442905471862994170371194616113132658273784890107344489614631915706127354480596259467652843996114383754207682468064875111461019034315577038009114413933132561181522090807689443840677604394119446204322388956587281559199278848179927469844537882558626717546463997844738737344665361999770136866667836553053959656396723490281907642868734467259536677844367165887577286647463036246199393340694943892535511568631789254475223711047623675319030823152046854218429984586857274748756773759298660964720600394356445701153934419483681508701950463715979639257397070003923761513804231692218353380553543471430123237493338785230883990727044417359930366477328247625057879317707019307203874325939565959653362509967537606244488394939376450207931731616822601579662819794026209243418663383343862214130775536282405180608179548793613513116718817381929021706798768263933572033353586034791957015622897165749689699346019761151401594117961586899220429471678597245756907308559394290621108492666276379326984661060004259866160505555652203899368529500669126781735997940572812448661196865444263951952103107192124808394145076297562745613347292473747116260405790637265071402577265449647521515998428906640977490111979247779709325699366824779342169103035365396635728585298744030180793121164512265643180357065341418869306571921842631036796924337810166509206130299644794623014009257655804129698482356809379037997312746826571724555180466086967234095436600319046431854181514919879526569655204570563554225886697589302288357657632486135519634448390757434829208487198808511019499765710223798962673955610141162379017410976553304707921762003136032011597825069443532398542897174929893920969034638533292082611657807231507336861743129439273805674789846925071432315237747524019613517363772027756998018487000155377399902402652736289046347382100344083033368847774885865359234859513356314243702998444988279980938439532452944962542532908336671257984369773432648183634037840440531850093322792184136579092043965586988093986726396350402980417417196487248072516746134670142740261499392774823826909453772386139808885920196433597400376514132914227867439165421586679241680529573394534951203994790189091049224611180522998777119020683994907047436085761428350627997739737431797442784353891669537654569540930917271542694451066142186692874396083369198245935648609068833446712774287939935952694273060750519549215502803720981415107651363928215668735899670177707561865171219573634544600766103376115599818803646177366492637579914196460391678024870929682043211404760086881728713923486876073788523379861159863387306125935965799590739448599536555757515312737693495698609016645945014279864047197150618729632521538252157776064706396820539605273157289721039305777533064842513724348818776328424918695000405135485938977505329667350656451940507866316395025918610623522052815447817576020233000646087354184841120856548567494937077937893283772911275554327458595234444971784951646901521049993999612474429043899965706544431936317403698318453019143416199752890631449786061951038715419119049364659948003083847511434036546621400839593643082196890329326330786433086654206012943658979113144443650985007964398418551277284342757880071361191268339737429036239872806081087679272804203034216032308836722983293028024080931120263603992788217674971059739486943768883482369526265361736217483770360647100455065765649672035225208816058996618126823729406168148028171456204474371352747091945205184115286460271759138346306271081234927847862576801857233719059787748385369734415279114798796540560181747292397396961201730268584914194976853304837944493058866052595471372799917765705584255191749504760292875546175839732722151797000445836784401669357549446841520306508706309589459535698495211834472841594637104257905975256334482360371530391219826441525223509495697198511914233078082116926001289444847750276063688633308699627889512448796309351164669084700397211149991816354414275789677048238955240022337669113989747793831052836626458423786293826513912854499882480101033802548759537021694975229755363262515194646493454137410276773249589045206611560944004753369814648964171969422830171748392119052806073026701687917525711733270958904003411142504345654881092414486447682826345791325960672834092554115246353212604327313262061987677194758169577477908958105271329551672257817741449334306416264046585661763452566518466498725602333491835322809530776579378544433149930889181264448609929854162222725100594151483625335251323213698304062907477455480955346049195467415774100554986485663945784800317013809320123925258003095820696201487766984398997623121254670071049941206585711530086261448452620177990232492109164384633409758249416449213435877109429816430285507973025266317029653804174062201324662411597006625859028197220266027485515478782001797682482619057536861175006014705386040935720646011869468067993850911165504772107105219419199640466291475155274591423019931407554103858968498958388928477773491269052547384448090671619821120444283373786600025278147105275454200650061126788772021402488033604148615395601275011917693074107777147865600356724287330113631359320972725590763821161831337276622340017587297112630202905358743459928487427581681327865678483176147615887683648869026306498694430206249608812133694991129715887077783491661015085325950076172129297201558888354983230263318085455332334303672436206289030861302795770800042461003383985947674835026350427816289627474457085894589410072169193431599596037707700863942715478859692337836372812822900400566254763355078888650180257218130073708288642176589370903385883845422857380872825813130178557507390186167147401953441570797387605460614616570633623641041465526513602363109149665314078776706565401421370115449090084623111679722553882676278437346727954221835432572629975360876451444380055251344123931577093386356991448554036836203874628942644736321307835637323303771319660722009656765356879501936212945976063859814315434304172791340523055339538011505712250569426613549948269073800769500497612008604701085273970592945577156060682281373113552370008506224914825226259024081799895603186463876326786917239277413409545845060435679091299092748311972952440361791895707903756784999119430901620283884418006705847576989635205427219006944737882189635866935794196794377278187519149700738360538951413177497293589729418468817687516634660218461174108940367112003327800009529093449860148585839445096930960076825881401437643328286586840588100232210498221729571154891937881007139526027681755452219190199932899144290879482529832986887943470852683979518284194073555041810302134293491602341079044015132788032724938053696595962420097009644484460676630353815270457125394172651493779750120569762366900048005286340235167912095084979684375311098044739166472834176216946557585896666298981119298676968302338311353536062890044861793325069496839135034685181606931815773603961510968349680108602826080645419399130859939400156213497621405173655192893334454385756256236858229205624697201616569688670481607506448069546228289394494894623565629711412293768946960581837391219914039741028146281098049398810436301593583200876814850150950136094447584380894080137481823182588067353725271280578071628616992145301870783019188435636659413149322302390952643418345324447397492503789440278430925267427009556186082435574703920470322856100884554781603602373600509931740967335105958553959106100401874834312324749396193945421747482168675405258129498208255576106176130506895407627290977061558726466820364214294681766065701826970608429574876822269554406909306794551808821085153659678940754774758907406518182374591534673201846886094657589860300048261109237697000642690009546494144781055450904301585051402738097431467819196927596406017879027628491264395798019538287761622870978990840159639293177382646006321907668979841696453318027705572815924195859203626771465354748716495804170115436779786586413258066288444888380990362065886674574116910270758522129347559574267901752464010610097671565986380894310067630140110165899773594632386179447460790326677385439670454293387987046002841613277065707335228099362240606377936000277415979213363371676349774115837601799116751383183973839732604941865409553621152326770559322546842794204762607518616248048332950430363402270780330116779486073948682460846640431107956731109457780194755984846515049792981189697620452821890950635071641084257689391144435274469703790398434601812916745684310650563039430385492793048927907716613920615378681342110596805715010201536496886443239380419230768573181781283919834305593335687436765387294492749953196086992615904947331579439140957244621169511718699895087060695189105363006173172388372417486673924348975577803917286256249599794530768279056754515562257868767178444289088967599997492897930616976119163204811299085849068817808871040595666621743160248427364748799770746877078793342132543502868610335611189583594444100137541433598353982205312155714474862671384608771864181133374846177963435299118627981451769324486241886803025193969959789804134621175816669786583474898984979026184171604110397366578029965321845252124899709061431997090972909179414870417642780380803410942191671636817428434871640936934765965900063494536754681323425129803134619064757686880862397236304507489994557378377885267465039881082001988407965460072231363606461433804869522015673313680212265634133812466362120981244780206695532433165656216195319943328216125681578731212230044750860208696793272129953824153644218767093808444973107101155510612354379303773613008105568424592357308450491395191539670053515153299624459686478239951688195873964466215453565002172527863559112909404293937316745995168658330866601040753684911775571569620630069532031828857753700356221568374860665520774648931883601978620832509746045715880864007167860964154462394979758782372902185402268100280959059596801417810301362341697545689805017779020764832944201080002039972267764394165545594544795578920861804764797774958360906289364853883294182622716493263911151991593461329951996919074517086880922375054374829882156675818577007371100148856707938385503743251786802584727402298525958621401160636949916707326935338560666872723232745869492877883664079194200847852878928353221925291058582035358757052797038629243259186225219389503828150726046959588002047902188509509002387132366459012939729620645270418029026702526765195132221382919507358211995787691334837081397835476842652737485958392493107683887538945884678766341525253959252855121378687180388448094356216523578144078283103961643718203935927655803877903324137956838272940806205420425688389030659864005458237042443507033603598172830376460554024458453296654674678254506697848992381797910523176386036091875538946329762729684445421369898701541056221949051820356668852198121278683506884472983215949823695116957679690290725294881274840976711030150570948458392698948811361269976683719952274252522610557374152290867130035310963136723333976146615810076165552022714260025403988309016954321084020872018512819866977174112034668638763487475901516629359615741008584978257193190929487610190032950245692406508924473267856221589535945449469660406937745568367237885446905726190389698416656810175024524884478094567666799579091170559860388585441099982293781082869497626339939573602424122635481966711497972430173220915290951094520673616501142450807815726713062260842704938724960104776080098395383425543491049966040882331642584128360168861284233979847625430647721464725403096004014667706956514195605384412681146970799988474302992787273196161625864742039250527029228285108267586928865590731365328042724599988875076899111038880867671609031307568358364386213995587098661983070766663910335316603156727906530741295391412444901242222894721380004983979395579533339644332792664488574589478980424602585646523171007006193393370080995039357575192880530097409136713250528888496137059871891829469483918103556262357777957809875936006098372159746938057986820279872701342941417966027412316732239696477852865375048666537403753427253429881306697874176416145257272334969772297332604750648153448058950571556517064317885003966873164300731803406238562034638818673722023662830454807322734299577136068783241767879584654040031206752925809809948161182074974160543104269890283447167746892816798734464782015463824929060059650246513485978648166478496141548767709854049953016367203201361053379301920974086129807252651506674797478976063722550276637558087634157348301314699200748932773954863945995838652274376340807907206059812523536158432597849815661186442767050167269744140866979521826556716942456929043552273154297783129422639987097321642351706938730381580945776926538322243713345619262988219537973889707461326961755502799669563309988802945272584840104236293213164072023530072703368015191415506830984387005576820683220024887785396112932716110823260558579184921470428452731926432114900891789322902768322721667309234212589484557104936880189186492810275299332273804824230597916158669196493766986208495015680396035329442080559491837408606070732501333409555236073665871838936464318153956203247827357206986998718759902912227033504462792958538860150453296646047858409571234583120982753554232269948925511871458918603686257401373033351556214186973730435571530245846264514796183820797251454098110544621426577819733570600089805013008986511648532145796145757631001693489721417952229380906528669631107649367034596901547260027273578113153161270264680978751884802762202740361501896345292397972167918089658085815766276205218352050592713342221147628548628033459208502652646436183477360417761353270112661935669116244397555465118494033395050900937785831424708546489516222107238967984236496440384219775202957278660079225456260384173155013759725551068048798944129553510754423918388427600118730196712497158346430894888594140584060818734331026585029767999283261208963847735399969552747075825843681051126356732677707174471036589129531194023494568122876546845123121336083105801050362358117177611933858153191407812290632823223051475339631112494612254441601093424652086290332419407257334061782023936416788054592552151037026170693362573395735819813185499725103248942813574457912458054277845090915373431046129908591907365557979627003072024204865931224286249010813691702277965200675723635837863735849136065120972452579570576378823106311750948083014243669546041181009627399374738024151607107025874608375437627976586446791944401413541975973032604943063401510972374220845255055083344392484154474521049418612264074089294791668692974850424597971247927552562137162712778995020707655007617684559874656134533689399736831264956867216705657032332002904066081212668972985936392583871151812256732319501107350844223938326019110311450518205144895510014532932058933953003449404116056674724746354671177178852343709857516325860814591564103507360803496067472050856901138734834300715886093187372723403002567725047538916607376845933922052338103944796800857558987882763318500904231019857191886072090421943527630078081366244696694034872206476777338816877065608673487883647753246788741342742837247636572653936855899426769915060406184842073469089664223015128576289186588401933718534248151468363701708122337005008652556360360858871132823686299599675231462855224229287195145524727268958907806359435755965305097115272853474396158337930880169159070283264449678329138591936682337560775577239119724846088365328561840589245719300754261353323634377876415138741078250664667091692493839413998838288680410112361955856001692808612524054099606119583289576309785011766600070488944686083016339532989693735502677178587105222625170009199416538890628667265326559100742189698930459455771728957304873702303523535835486156827835992384373602131679702930800961287029073979156031655552911621784852474099646017809375250481382883925631192909088572290666612188065526384739312047855746263812198020368059482217198607500320185737363092253259491947220931871632047756422459164041358149084183226728233782852294248843137110987789470322064915131941673631168548018660773341269124221355863962027415570600208675883257555025107999935086524517339417996057280878269952742590531182302479174775476012424858150384003511237828125470492213169957333528158763260309023850109143452362181867189248472617861051138322637548153673087286352064900999812226613809486553282281658378687014300660740704694785882252555436382765594652748076952139891959751772123567006100900928450283239604789568844032111082721429492695232091217695737019095628044953045458122776933977416927674348479499073072593758058881771198906051873339986755906361025017599531829960833768139883954963392899055999215615956531929103058329876134409488021770484803335892753172007102768449431856667290656631661387995191035927559129050569658731393899937551060503888394411092051135416821814646334989644673969801302329167153406130493248562011256735045201793484797959128299933807903103803466537517094705271793429641712857613402068985015719690011891871708897733517475581477672629429347598233832494324409822313526742190613149938636856901205308728357217203625131036031450762582315061386157408605877491296979143138882251728000465129803007270455347436995464408685037183929165912144687961979290985891654999099302007787214385794055275904294169546939004794685885963967065773649935231117053120216479503528069680400643619985442640447650051583678497872469798719533086162651784735333803324214279537613206193531651313596958497690878412357647917002627830786379944927843372746636438179632243028746485297863104699098796007830601691046855890108139282115897647402194324779958915202311752872911141559003550917040247755214436859479912385277342797979645739209333889922418566630372175174243943373123177019198337766987328428815411340985536144661199206309344604758285666542008520432925116675837430969963254909148992803860777842470022573234483169866597616685741930392741143715431826472464404692863851275065506271980873311326471937597833553554854218253817747199798810247205768315916555124509937816287614185674842027124830626765568850545372875435896080547322691356988287076059184272817137373579428002574390739545714087683234375951009776029210547114139534926432305953715466827424797042018023901439423121509219493840691575571842783493076937462993503251322866799528593175067811706918562936730386212451501333050496830646857652218222829902525290656870798240589056119810533280533810476319412874367612644438452729425985579891485076875371741708158304420041259796579636948649949499972620155280011573425425881924042707441769285114164651251131212613989348290200862571639639291546099557856671327135670788618658259136742127895240767816813825723941148697244988641212545349871980644657605834631723154382324208421535767227071655751114063752904577613599600314970771420543407301085015520706738117065503587173980483752666186447153046201851815864144978014694335261118268293518451040654841999766501756110328142452106063853491131182179811896774744080655798944142158238087791794875320503940576963857872136042111253541891407414370012515253588929852660734984460139638163427380213131099700803266259167885629491373132123364257054996891942691227494439789479738944158890737397718624030773739614840373162236677002616160546889028203627099499805474954247594375303533501527483111937980100114459991915608379972281921156451074144246674195506190292795414176693963277706511140769727218218942108595229169953790406898159492042440915746683720976693294321353095658944361049879528590411838551539470216102513280587693413314792598132695113791494786109316628846944849708777403879891780461645631793498630942876020727218743742661824991881593088598175671728118147876810502596437947344267391547891360786482767663894425703004638306016431044499881053409210622308634071166438433211986327682529519012124720725345496357063385339631155065994653668512825652145537073766477768999426310454918675299816762033009608551697437687730419749907271926169511575701287074832994887840516887552654342175366596873495085911836259353434836198210549538086692160771586313544383871544663774301920276351614122586489162566431634489568549740246818337509955059856854684471027857386842416071504758124576448779675024529174175098100132648025048526721693284326311932527094475144688350003905969404514983427911064294092545402376048730581145859974923475421496447808765940249824426908305930102239890194979193800491221536873143389817043870547389334062693296144438590164528349883467974658803660555823509972733966307042582921997246121639692518304072153194463479033425949508103136578554463934663704012716094006640964687930851907205011621543214147459494081332201932009063589361740106121727271055484475903554842139172832342577998871580368120141093843888801512569540365947106408347208462958620101998287279148777472704445538401927555505093079811216904542717345503684198447466484020155081983331283161522327016785663568954411372894937219430484212759191973235170246745303515707708602707802592836569525090787618264506176965519359525896334249762595277481438799664682558354083103853609213157603712351849651215069337248131974290245714935358246292871426193605876907947565374973479095723822243475104149795218475513807052782778673883475017018487745786821160415220462197858855110181475149353766168801860229669084563800279019536932952787214832042445950998428532395316528527887431986967523090802098918653151017780192662547731321206629837278628301602074940066266423820494105122494469603988796212455649743262312896820258212958858424226529315521397375754665986409862601951529544240367004897311021306585405593297984786053600938798008056472158699571929035354629510494358095278329057256636906057140404869866813865610357082479887845865156766095348271979718004005518839469649248739742629223799401828244142350282429348189620990439178373631916209850590995984610849887937657507451214499591032052353390865766364497825729591591161969501703074341561338133099164347735497760726163618043847758803669681124296206721959336175264243477530535071932328382482526759910752117204287193043155327319096172453418976310663742393519014934029622196441262994331934384547335079585406124965243319008105606148874820704285365968828217385384887996775454653763699279677573957666141795595492166848804305712210522472175075730960530444318719066902656085081195177816653179585585817607239488859671172218602748242729645426673255108573629961645683541678337112409056397013634534556727364779075420083779134181106514616983023528297537420886414506138673642861180520757026765440494185805480528258926770951678563873840281619578643984534201181731734223257735623265475911210496577319935681458149175180140630532290478826028256260741611804854567831811879489116907552921411515219484560051656038318019633808756650333668602841263008398449615725922935451635755045322974367363729711836077570918609911821187722297580663268086494035257017756401512517730889096992033329895868595380039582546831085928219994780029220489955291435825975524802979527524277695451029754273287918543324191312772441157855600676121280082413414290856557994544011019804505020302404581497422969206693782167054033901845724386238430107245997113530514159496041097500416580980933790457038277680707370956582593493963442681237756328101622564742274231407713537577513086797838524531118899391851182685565929749370681518050951023289541153389850874121902585754369695356872553086023664895111403464380304775573593668969302401712217374334964679923890572022608301879553039318390707429307254212283270568734148828471733920402946482837701641638706983340544917307945282133585166370577221957228171977502454884499631191685883153656157606968731328676990887200878066274254197039130596384111523302362810916613211495497075583064582311969306721230214462004875898812892811626644527183890721655445108408864202019700041647982396320855963223614746607481812400711996317029346435495762298918870289553604361222350345254683641674308265378232799784125232491243175136706202592545729179659314591299197143079640827904082750866169515803880272023923113939845811956571544332228635213725020656651265552092386565425261461789900395899796834896336587651731597924869401422109553393856340570582353774347758609053975236554789394505072846418838358731665600454312257009009251737905445466572794521087385183956906563910610548471953663136111506034464798571071364564988101627954019990077768998014028206615573718479426138433398105465484295587525212083190428534630524012933152416371847585999258206447261237679047636596949609158823610623820996125047177369793301152342732882958412460913047510109692247984878120474517136232481154140899868535495408357248627412383335218898247010775356405249244489162208710716326573388581535583820185895079338380238226704120801281234962926927763251119255223356367516111133369339357850277569156027489856594953990432554554086018266333845873622335970686735052906836485343940773468975002668759989979352038453463831003309642587096958335224021983968608517909741755084875982237595268143061368686098433391336113030068177180613390564612102906616807660915269296797535733843722241245388526257581874470606211043550209893862685444113879439452916857888882637722011954324531141367985470638692768715298580196282428980001111906447043551974116784824918849772742074478680757766365946842845393318168485591508254037753599186783566772631382259048100106247879629359112200141992463774856736770434276987278418161835745923043380057420379635398648064334827360453102188570555695877161084940061285393022640400726932021573323210119282665452888202564178480419687468262907752901010980396870016402916817252933045589564181738018854403393220517275758315821235556074391375267058383126731891022293944574121921512982789959047026115989506155462893171875713012169967045871658094701285274742192490234496026942419551624726826374101229328529128833252334076579089029898708350830740708360867212803283977805134783321457066125694736625486242646292453462083664051904528545647087274438819114843664236428501247954518230236634425938869732081803247085015341522813529986239596853954657338193958958120658035348160990926763970194784828076811619823588859400860800778966771188402146793644397564263248766819004361130169823015377971443714483448527396505667975074631528420309739574107847361297193820456647528021388571333265351710785041831758858368013073322581929624328709559966244420276101988063414953873482465807531214272927123451565773069134180408452898984560083960892895662012784799581098642886578454735284198388959851135512345292526115723498500820274149644247001872341469077715427530835536581690260081865998574533903480474593574854888208282313638800050757817797187436399218443592715540517177179301598116961871410406438594364350918605237356367798093622680139713543431545094525696417521699444149055136960989557377656570778210712776292934602986894311079007816346749608994249807579411763103039736791806552986996186875854918907320872839906354216813547984118057516167347052827773485573751405846406183806007720277914399435320939059169703899830860493934875273331350355270331051065945994049842852509221291809983515663525358896086064277517695893313818393896967339472772019248749521504224760425160000821789533226054065572635656754056559986226033272074969612241776728629067476203652713075287306022047831275878680081310133209624590534222704313219697291211696435214007041232216407844981441683970536846774455438774606598499007988219437440687704455679111273476450094076434127239318414852146094987231061392743188804337621217197726345607789089923828769704921189574519561680467524924722204782204008476686657844717237558690256328215742643803580331037495205082521214618365803088599586204191154094164239565754930108305228575077412246779239162199354588506002315346447779132613689354957360668591005118199726295608090636373810800050393868055145717763941389872375942995354632453356336298365433006448983503421125609163793161809239023738976235024708666432286833895299324532769727057080716180101771088759754222675225538778857979656843172957965926659161112495811399368698635871057418529981440767919550790689741654900082517089364527264082907106758939979278029890624967678463104653954026830073160410009241506066472564449732548477465799589664205247879867154471307513364002020699597617017513827712930979642034876946895641574584372418088174793177036195081609294962368996138951020687402421884822217420435857584554032680268943415734042288880550504466523717064113739723551917581991153070718705801013967594936636097740124300248451792610490318674673092361359610683907079165106431928613546986817293613752602111195967843675732899352930134695275319646494679591054478667184885577488894518079822749010079106467345758626711466338589087131797667183793399484013778535145864588578866847253202234949858573932099639337424515805569339966207417730062853767106947422282048640388532383334306836830358499985042548775964635926430663638238061538379009728910249683926895440171840780839613400554060128772242783256548806744356509674808982558706455461601400965573257584307914168551383492070192260169758905218581240608692475703374144595904214330988468025076984038640513641275481205100145635377802615110270572569554075896862159574549029100119360772681574709441153319534764239906860129343067821240323742279305638848267779578027137775174100101615389439430344580157814247253723729696088092357646228053794740453125880450199990589758455938142418036793241184586047951767144937285742606387095931805538059985339889163804353656601315715025436304669742741621056004745832898555698414381089592890338277111606692239486692614058824674490335443266095042892643026569161752970310703017031917686362131265600794934809642358044092044571451351252244508266289174799492644837605495123249550885782285854105724008976594051351183534002241291766603418263099620407997577262360794173014628993386977247881225392510413686566812622674148879299068623552125195348431107367641700750017245744805748078306480559580343884746784797677223773283385795803153451175924609128793450766284338949688165229495756809363574479376721398286887199505338651992289160633078003666612046095546946318729062666126637341272286602650622370279233949862768414706735697306569035849745058655259381769997982790753717545257533469355922779199501356540219611398440266146849183495658914554086123207001911872018922782361921439618735159188240633989437535286977411522509739526882377834149194870533447657008112311128556117042644673535441819916459600220043681727766966637964674005423130324266745396001773525659841621456646795458766644894316224236860119296157156249624857492715448765873173628280933001174858262715306039699145370132045548018876015201148587416003642491750431386870256878928320852950392963967118658152953724066202785282889166863938458832906881217598660505595470098102253042446080892062955095770987643116976699213713180181458887476932996034829465466646124685395760179219243344570813279529927690400382196161399167853270867773799757752334732464663897400108029543297998846040913060595957139633720762350213335185105778632980218578960683430014461271287814103434729797011086596668805742340951568695380176985448580265011211988841761772938090178125593287153022025064115473193888393171988075508617412913837757639880378210999638527479693942721444685516284999597185864609985330586661258511133819097968380305937069187468231174508149842867766778878717697980307977881545050541955605310650546523219120189316434525294291267961182885025261733290357366838753983934602363590567898257703100550248928241037460396025118192787325300481834268273501607249898681462752030970815031214380393505445614641104176112418597044695323736819303479336898123400123590594548028743868793688510837871804344779340959174626215668281983192351026925559806652875189570687251195758810825122166200624389438683505885199770852567280099335184628021718021863139623339885282343199720718503191642505776129168914480854092743827281603146338914735076152380992762860424567533229267529171209799200405681646645822668810585472043111411809232636698399828711623092768456496787777329949951850373993456956918436558295618450003763862006039282143334071627445484441597839315105122721837446596832087353783384114855632764061145949255952429216777251687335436205871613546795266799190874176321494192369827643676236043726088951902776087718265730368887257100107690769139748787118393149953836855788937155339621272935780112376346619834455270857045874968596371981418619959036538894918546417776790167971982265679643476750234403183268494550052567161757790880939192180366050225620043819241465807156682895066129971664700167385515332640592741313907928696771026990066290138984871766132910441000191555100973828101603811257194232186133893756649425290206423797383005113760545361238558918403664534627518531073532447359402491446191345150910451049992277893222544596292615884282356586665639837140652310470585610508458421602405517704613935646513423473640461786362183895914590371508581083876121021123323756023971715136785102326764054136859066502222458697460521470099258557500296254645606692240540385714337367140058520386861857197820236023403239100678217512171696747396986252509190973252873650511331955625708281720804776037823769885530436573721506735890272233872350297730024841537964215716827673508418710220306317411217779381324677747457362888400862419373464039106390026479856461225338712937386307542754078937782814954252769408182502218969830496025170815300643144538895004890730663260247115883871344012722804063902401421534755359665122589913886638371210224931715041611499275511479415106528408156344952426337401620737037487786677395208538981242517227845596126605994783857065322943046412280892801571604248516192902315040744619901530242309470571151589964213992415127565109529728478147798167290586103259706198796829820043840630110960547882111893360488137251839247323097478348516720587961719274903237173926337389307970962131219092942122122921836817610313633421041433711242670305001318948743295893030902461168481798736787008908247758440300258937481339320948410851678046961443424845610757528701241912489168136565880359239295931522664377649623923637883660112275087084561833526067078072971695071554886024079228716820464421380953985799187728480076096801038052430434766229129270690166370565406282709549117346543947918254188290243408104814940173450410762968597802849781231175725847329209622191095973292053463580862295720312653867696885479021203967861927887376145828626325276321301920246501170643163845671907768976205435360129301883846201776601556754181837194312257388021945197771728576231925744460187240797278865868541163256760478673774738177140023437794738611536237659688185380057607818330441318516331111551679649782082548049923939804867801594565716974780652151836834778850332032727545119708234476962974723832589253002986956054810100372565478399081710342242169938888844816113208536661450204251663417749809408564760683153745684538515974867739672695873557725469814394430473248886892658604452624208146018436445654596631443679409933348634414765789494112968781544381257986307886585968325859355885050048882683306731143905529033159452295801161366197079274279221495022743022742981435991375922015419484097444010038029748991512110810972966020529525061811002791615234206976715345133650038135163381488862647025621512375422141759304429269732299420178570189346454573569957478876400953274513815395345680932843426731022939930199298509541646487338998307269940398786456813772300632066516353410583669912221232470583448309119351330972392813078367495301958087454046916152579737071875949802509981407813387884756434449647403477033056267209841504212004887119911403018421491027741014807490638176046477240484785580309908218099468043330631971071059664236195870209498263493701799065220055020997500709409304278338677016268951400459131521307273975881667435448742671340836028483213985902567410057016258239601983192763591301448125625951588928948992466111060000816094688563854574236005371181745986070245587928441516137476401122640690775410742819476611639915968614613326112400825050260647676935538266929281308578990613842143568957859836251791693359405027794089396789312320953591862378004527994246952279799278170180875846179810198191223366585571995063387848106801425444035037900176497959842392118060452955968083202776080154808576005876245187246416846584647501889267773748094811258587067323751149662449824227097299114428299343346649130576304885783176288086807654062214305102760698176624598709048280137079118820510129229961189801002250943424744145860100007498642521724077881719673156703734114388198794485769333462014178379787210441578080912051655880887970634777177040092850331745141958463805488473713025273492886675498764392569225104571132306018191453547722925718924457604224453156751744197155613176549824046396266539799122894003756474084093131811853064371849954842550130966042095885749133433711428710864331547969651673989693466996821438362847710445426550328607202760851072219114092953600715839656457742759077733237218507209549917763833202817084021323845997423637426254889646661583558838320858671404904369435314523187894351424279466711727488981018894735266458468147093143631871539639144223964519454886503268511310829955267173720047803634161079228406189651102999256225904274859409307672525748140203085199245363559702070540087418449138785874300411510045254908699802910399062859232624791652605654813511020580789989789792055940202561591913667669359327586480919798439395105209528297591570102992407193794892946253979493416892069198410470487636204318471761821417514167350310520666838418857668414069732590424669098289542574322953901125746301492714828667476334083843428874950308721601060748049008809993217039195598421992238132663478482355733418095309236732355225768597411179318609057551360396245054204507085344928253476498118800679342197762735871342265659837524938044078292758181370810330057984303794716883309111965069231913494715735796847972296665048625099289487723080679347376478147481980840189991593506333127537367497975459418784706163266202265455481181475790664144868978150723237280111912769927112344560484368908678329286915117811159130517222590968306773397633196161889695936558065745075410215265129722012240176055831453525457930979206361920607443653843714502657474399267890904541075877384728493742633912391428923902251734884120043426025362550209353583282353723464779591371261369206557161914411783475893210605928767074293528002077597310297892523543848298493014156104452420520073081977896441979930851573609289425161427807323446307268773011342897551260270811785673351416716645884385154906383919343853741287159884816458064443099687061533425019669220285420207047969622661733240940478032051958309948547182836082352353417494443338534904860304143310471243554461381987406948827863330746279489560272672110302442719358644003797832385368925221201966245118715617104792667704453651614293528160407579146199228165392645367914010912549623586749081819637542708366345298555364545237237552225374812618076621814534254659904859063875831699430448130331136422452966611252678373300803165583982176393212269539464406946889067935258100784889416108546293034314083444248944207706638067752286322217496311175716159142262327069531295292755195997388231440097275844310778174851403354287575295017393104070825797282972997736908888046146450792785071132252092465979643553925812197012130823075770636953505299876831183291500690196388220856448833640467292463199887867704089728275104884633283487117122331171078550543262264182261487709379366182747178964978001581906870052656541993593383397392027933269660565615633481485868292281565631071965303086627232888457453670823779591797335918834681093921076850674341804948130508636416650777383096690016109675481074761813679801672501010657605604698315375028907814455491669272009710439011524226616068180257333343145963082727406203955514449245018491818792246511019423905286389596504502478174083178149047678247088110887681461893414177087253598979567681121163892213045782878295825095287097934212591444431570701483901639376064604337885680020015221515154930060444612161747005155266738613520212424047731305520276761326473352821410771745952358969331928612691351297207472223056748345419415565815190717727472584696341996793674586620649707253937112671411611910298239163822746108220568498484518255435511114356998682344011837758493216910604302021993151443638227951570591610011875811587083881447982518225902999829373195143047486092061356888775936967505271353581174376030964971272129362657759360663791918959960194787894869187889849673726507928897381918638170732625418187344838047572239942834860755136406932694807336880365609001712610263447110738632453536759202664075056623014866809352087351186221920140347307912957242122326816096700451542885619016870874033651558956786807830919503065112018517832974409382831190141784182267206549506417309707674943357814946605151048537748431522929833642794334127281931914058918572820155170139662777894820984784053050439486475187983940755734752690618020774208121098971869943323255042313440522607131800799092564706012911703332984943245000373587659837934228028409519054559795584728710989084097392614868968569563284708200391146663702112959225462878904704876043684844676412089142014783092048914468522593811748274590382602145804181333480293613850066433852237319380762622355727302288874172906856457365128525715217388941330542594872407066977177772772082279837113476327814935187821799387194755540757094418671437710671406803104683920281437871268844973538869143276575480834153923181402078397615145558025968970592798480676335733557630743592932801816158699966474805426324263777916913251155343104552032945582189926650195887589321995116966820750676017054449767020267990091659275382529481665671697543865447057834286577115298932746437445831827190024842918498638436249747267176674211890469018296065513702759987722059051105309507486680171427931838485864040880899079395630315402100761024285892434798961758430288194408280253366663906865878059302726500749086472582451046270226903242854727883705991949778063551405695355960955469931411887025399561572851565194730733654270345168342784915042894741525520585191602015154842950589770988179299263355465191095352545641431714258804135243606201871229048915971493940884121326100023586869332242241295516618836514740738670391335430807068060641070625888723080923895055836363226146892268770008237110861278740651589791986020334426563392730752101010440831549967599769786936069382950464556179984266173918207240567375333195999851582411188796068966332248224136935099004300963352166264869547679475831555972892900983423413602692923548897310301895775141189906705938523662584131841442756950161510913405347140553841126138222562079966456261044905414240774962504512597712543965919034132671618949171180655509509981442221684723192981547318131974166796898485638262417046321100307414616748882179368295879325879932414490599772981121303795841812273861442586485875027407336985329751402733767785152086481116908338384603049851267519576637745526990979572517140036850211200985576699404723227992394206829345368776819073153834084844043551161132859233860662602548676688005502214200553976718972679807613121842682562787051838795298651680274551984664512986913157211420216949420996917576539732021886855602454343608451235993759969986498858537461202544165104482853177663407010086992193386588284378086738822393486177335934517259298434218009540219066055493328425667823633616098809581642692796998229681535667988558505945613373633429000993048550870703926662229928281259384568030004817203810098019504017955053285311517516795550787165979560712011916577183199705704559883016500721493850978773615829185640856714741481333370773576221135712890943049726319913375350887287619490407994553686657170256604986556329325699463965149054605973330449863756685604680270221475778291238659128143331534012969794511122134166855126008122640491868063881551641942340415341815048433985585485054530318494936227042970458696126495919558274266620356301341417539069772624786348784849209093279159548079757549786054838860734238030279427139034352380491301134706750547164770756895024286562489329463491159844603765197306501723217978146701622991245554544967253898884726043245816997197230867790302317989776573798722550237181541675869598888485916818211288073369597388273656736279332842326396417409676659712260574383944482847845496544754493970945324087475891796407155661495872954029805923357046262980957149232644950249531519098690668471935777396941730613739296900275829320812789437536351816057278038028719183331861401529594511777915055049482920661706682163181175892368367552238816402745892253787601740663403905141431777436723460344394807775382764628581608009026061143309724378030337799214646759938410271855618874051336900699866754418090673256700515219009706354671131437080629302351098225179373974087101843574902686714124803400841115881175470034921452884381667212260179282319314961819709735451649253151363307251990589296619963211955881567948144232736689278253055894862367977387901132370392110288206653746616657719754515330878415418577491567910634738804137886519342934437056068715300249999315789104360370275418269266902235170767535254969068904101293125572832073937125997227237369944695069331939445994323576602385820474700932362728833484086806186274792118082991583047956078005611757498071708161740186127899303334967878147368874068295809322860844191104295384015586510988252756261943500245546233039413586740843346088259638551755150453877318152994582946307416562338730002294278625383681840606474318522033547483770834323386672198833283946839428640728264577649944973901870754387428695403297282957370827581208901257880822774620667612667030938348701892809432792581594886994984881034941652232570124898605413173110137575772851303770572427817406557523915290628952827827481953553878276434196162207851433470174757638880747558458409644538341558453410878863952223617044691951910606871470003028805488266413984849763260865643903693076204428989842059368779627715913840321145659667266607758603122282792076638610531960292959436560947141507447504602407656420292348579289699807979520708951764817484473927851498079874861370410156701277760018634634381227893752025457378890717930648078616799305384236949540441704502259975890765667816603906286198966664847536946190746746531441253224879879721105554457782303380358143120535858735861946404591471774862960018466992167667921918027782865707150895399311402592384480302316328602235011125246220559783491203112236301158619038663028248039840924543961983287943936677569548246885552311381418316111980948222995077905084717306491652053212847158291461370721276975837060690228478698748129162711151616084788599481564598091009712175572811053033636698035562084244829565296316930015555213754281707326441148747604037832731746522826434773199751380920923013796407950795458732513493182249115165925110139871949492231157539136042252016095875537736951876983762221831114595626589274242984459683640569413599435731199265940906867905801404497793288678825614225515995879419800373393746744561696945646209630725833232479088188405478464006030562075466762573800966932637084405388759814667131835750965942245254626093477803921167553756589649942645518658473839733971914770904473143342507278619526656756356260772732073798694131164849276560927854572208804793018905693720962884706680479500397054365929111458201470223715131343011374414329288756127917099288364121602924644923472704388331585799334795960555632489933118634358307758402911914161953214126928317913419713708059707004075763128338393364793878869829539669118149226795096128687337256545961562125027468716178876806419223498424282558390796666358436527560931184794012502573610821118693822211515869695534504782908258048421497656123230330132343361824334835591776524650344433085862315800436951959322073860842514957902496325437632792532106527153418123725841977866413370158389524348541335538701930261582211253348184534270498063006272825454336717330242518709805327414493106746656499829922953686848295149280145878913544361855839973920381586401955189455859827943512914492380377732266887379235037533018797589332120574844767370138576165351286371704479509778914876276583514692723927684033855923725474273271791056194847909193119964094685259243069424020102484431892641938654939352316186671537010073404119440490313308655510467649814704139647233144046065255799857189746651992347642636848689327242364867013299297769110544653581876838869296635083027286082738919878259708529210958861803584117667102932222767398556629043102003276398103263558821339252175652460812817147143758063694837391257699277719562566907452533500342282690967992543567430152973925349541621177588647821452328147826223605997374179362160359293725695491119508299309602367990431449694985188186798930595690589933790689203280993559060613263800175803712412767736829517395805634008314930516539739392037963759732873121755781694313115972961378748684845549853819316645615641973058718779534129593799292897500075919443437621425190218804145357262918467932075789586236679502504958403291947906330223410700812414427344571854453040158746976877329050399800250967303944686988963035095508679807267660866694568153570807354555155839429520970674162510035811328831604236446900884063364021698919225339938855601395942999183941861463440899611396931363086231507695591269108302865367561648618766776491573397430089584962061465149883673724153473920814337744849009390467100730661921571866681754545815324499978508321439242265664974297215342773614605917123241540197451960973608887072448581609844815388225719774971098457717388257749623951387250041301764026276573330115619084022599110650839472834057102866271821991749749090605528422368197205477169091780495515394149110108074463110565147407161733424215132595105347744747489283072115837278211775076254425726893331966614460347977805764909671945390303130376694225029132613222120222071436198511208639126188401599390574819502872933716113929449718275909582517054718847335740624001255054694621830522848413004822349040850575460070133131960584049786524642388849668191474947170544226670440299810156507103970640395904431869812203136668618813334021347943581542867659572550206356257044164738909323488874907074477366655346447294054668342169887349767456595563722375251649304850802062380325424464984477353865022879611956455590819645758052001794880885948768901287813307001949026611006506802028130921690338939691982024164126317121428759260255794947851166150114536034429552308296238185726753212300180414736914614036247301557025405038658363581146272956991395293735713751112879532081545810847119769782730837732591040083073400902533790727281797616841705605512157108334047062750514024958475865578153469073358808651448552723045069826714997191164729202554735715299212237251763169714851661501245200644657448747354521399922001663657994087460209770861267272304330262728447279128891978639602532255829175837620712946905304518366770468052951735570422749602493886119207936051354229282161894335731245395207186914378399375296026609287220322476188273447766704946068257772535438639225250203179390381495074435883043452983084885451810073555654276042338973113495738227784096098028935490813797246262729933117106555055812496962895141964690005637360116363917976214810210685523739686190637993584196941594495061457455638332775213137037704702146614901509474509721904072494987726813114007830171876057831991024663378923949352169300831938838916840172231993128822093363939978677929437700217564141944544779534802052820123569335814143753783898145768250827300364595990188085276767213357095739283813703095383508815395766990088910234844399827588502765380575122235047173561428871610398240831682767731548515232060820403901114073655616088313165165682237672252394083553098326755411594688510630837298021435063575611795584470196129902640444738367534732862442481791455803739883580346735183218710015033715589877500584669959000782745029847477660951814244030535124449432923491166923898183435340214495345421455425089222927404161532455684304965539227861532867083085114594891267057005585583560766176874467491770905139300881855468269607552983924855299591041493550036779958249702052152268630335987034807411292818331992642029807230112084309098145267353259866915218993702584958888953393479654075044519952337021363661972972293381647791471514252322769229486389847612366059185894449671351346289764851585495867723350208356606500871118587954243417891668306989775909170157472387984630692026116510509690075191527217349702657297166888087522966632731150746719774628850198298880889603218959021946085671311535747836310819852047982370039038769535474466849326669613802969778746080728498727574391104884707629393301395555093403303084041437055667044117651668141143538976972836081582919482805279142425072798998842893972019630055109697436783707560737008645622721654438366579503963348885806060089283529399897342004057120302739669733573300334533155366833194646960087385991830573439515022587930992495298804976672889377958294075804977286473194673651722134466309793852119714731722041576743201011366579536416914141738639884143114575928929356222697133595158963106245167488982338855220692542243573044860395314326788328098299463516515445626539902017794902541302543835487865914592257826109591287893293739248814810187458119157425601895386195701612785107828415629701385052094518726462643667372527737241891573728776576494946288929595336248807089520663576240434890733423443705725540637904674182931212262251221199696380209810484243381419691266956126081997606261480766596828435371704283859621945711847409233643445193409470890104968234331840968924623506796634012300347967089152471110867098304782146515426187141740116521773238809279055206785243273157650106854266191348125575517985094648494255082500807518238188200869096765400828365638736057931339523482742576302459366096777715513100241288025649875300512213738819383500329486185220657435666366402456851152201983529804290371769220251036954567394920757892002549710299056623127619127669389548312457907066506141191717913916033714195129662984767191490845366677437768585465446053385644558577754917367365727936591683043462965103055691707191321775478652737836785935715394565254152973050878058534347425126651029656854373750636291466090070418584503537224808666355893013389474599516045718335112921416715849761602798842381730381281386514366884882943732991187238537172278909711572874305817591610846570835340845653263732185190170901358979255315045099654391735521603327102773674777696440094892418863369504156877501322466231257623968529672217969392088908735868699893101092921105850890598731013413603633371869362353430353968775399627477004446467112855032458165762093766769297048519589855756623030805732566874648894299744576295051360479426631427835712436083200585326862897129201060843919051386382354570557268879610861230865897098533711090034086924466731680284636559676830761836759127779886175097940600965413018698898272097693760010859950677276102961850887905693155653284661350236495653865354415080148179501327845319782640165567005599728952522875791314383883311460504201849397308185819922301136248113266862087966031875926632033426461379718623317902919758484623363967751392176357307138900816592085335617948611672241967222380559870941091066720139260522916396643607926972874890526282958602873813694397887846650424647766398286548509982127284837423099547378367453357848423075597143165660789630644618819125802681178822049310651306851422823502295301144084631531810382881799331919284864496572608614804996839794116704371181442127290557854161415714335959933576369810758637011977041417078856425685412899959295343891002360940088988566349825029767450227795252146510570648796039795609141445475013025748211515969408044881166997858879054290859738039831178564247908162744748577446606135378252795465349730406982408674073447594731868425745747221084283885191066820798165359902907098743793253616431989845365128218114241019510497259655850695383548422907634466083980674685416255123982554462182488363527891880893482238027854004202227273726806086882145333893620957277934330569670168256997874478393432625765261343082505086179848996660596137891299217717423866717768183054483565814755820927445088854200773015824287576464573542514258577873700749786319447688480374319224006325069468646892429800845052389839986152122972703869894819672925928887059000565843235248620659954987852016475372921159394601432174869017797852040974295816356641311023116253662669724412205283380778920720067361110606522944367263094304984676004267646754319014871588598549226141978570627462195370363916854457030845593210860968271816635309949811082862331062400508955917127514349243929648261580702478682968867902041323255648503330922171265377231142869313700813734156772811661955041727705765837815995927591890803630096135469709331597668531905921426673412264853262259883481843733463333189020659818151551184969707862886469411979532908486446977767855914790784118171607776565668780184289042490856630983125875611274861855352151375103950804946134908487583447642892946721004359086003577649935433136041561114392595835806830950191279222192138308075657061754936636816827475908550919477851959821934092482639433694499814227594499486571344262489099383112984756018495820956533900248532151608428470231975913238990213855280349797078348962073320617649603089555939495766525303145631650822412834786262696055846630945336556276063766230119019790829107446335176167947265167791331439572432632415445872738906651712044363610088676713404798719133397443922069131972900243524488932480996406913154969915843801896409872229534601311530998664580038125326680749048521073204909453773221105304883596815331793197166454421139656569722537934191088889682843292687346376738886004065220813472979623759220594023281515329404858737301196722845227362016940229883039047605657795022245348412439453052733735363861946726966297188243474355915935856454560419679815897556297171442380489131595894996889469613660375297766763357584776098086706195748445428488625521753609888502190582980479419582872621244212837456707036657436850085936491346683742035794545413393313374452334530302301044651732813267922731434586633085493124548935752461347483703796222022137837475610026168628598330767221175583517813128834304816195029353624590468830983172493089869186272934463104923308663840507726568955725847738605556371494279213539796424562001172149703155252409720597821654060380404474332486484084067320667009059681388794106793497665857720011442551021056433150245960866301798320855593236453292116236901709773412609157257541515446529521980245644401588263978012673086120415893024683647502921191043105594969466183890871308876708717030835120278564946123360114194120279404587163108680954454830500848155452261048747877205494594553555347176722785261358293087394876345173903946686914114666776886503206655453535276204090474627867723320651993865317818108491274130592887764998587229832406990614073432645444303111154123957308736227340965419694494913986724172621609567458578576158685018263330097485269012059691519605845866576022070796926698737042232904208723359612300064888602473640294617462043711389993101439239610279011539056096620248717060244320942005585973916572330281639707499713854139861848432463588780197513041088207027132208864604309729092757681587844565064450900079333028422774660637823226774678256280324228499767689309568413768918538060337428175816072818370933317402028590366978641343513670520682536595179857893331103927239258614935646122278953068426747440098733057310621726043867767991202261326480638518787908728121919119310762424201279244618697761789544060617437583108241275653648282728303987178226100254177172051152422988656998175388747360131031682723596304209224558672994205472646747840947472399944065117932116582909507001044493963849797020328596996311421348636097147413175859263533773760537939498855740593292815562506595961086387143245102116760833933213082950349337662617989583645777381164514040449624144217752801247743692054226610628709171569838350689480480373761474720598381417619685877015230266891118727763182526883628182057607335072828014142811462626968291393286181695320615009138515246901430820233101227097713583698366421119208104120520542400671848518597293688814735157487358142489098907544410921066563694766901423958142069471532373822115078635019917993725398661818542851982275663669510784993471869386160133864449186547085905472360916527021516698722366466821580131333510466966329142760318023620765228248565491942182843741421623449415272399385736655359641943199202610697551043045568928129914656150147157644201664133316873618642187915233430813234046518463401978925598023526628495513291034867594675399076617897512521260858123816787292728405737488089138760524205522301201857345771813744575157569899382600391349800941967830071685052122098509931140393695426883792188798310927240034370984561555661236828240279453393631610598978572279837401277028507354507597772770106095699624817050716336729585574566226605926338146725976971006381891464193750709928191292633390558552794341703446392435869257459791762881023144659961180024838261344788033656498676316514149638695380244507818691578974562810205546438875488326277292166680474681971853554857758511198746157607639963630374304960670988245918113584351673192365938074010724178357932177465508223339055161331039615724224574990779729509100577440176164087358147745783690633598058364071305538705495375078745389370548649125444506116489857522023124852060665712666631810160393459436919953887561147695937018471495735305652011490170804636680089489917759529024090584457963633062640310380957629850402890237966106736868714857621219630822426125697528018622100321266635593549685346547559634417852740522737250904179222034765683926286553503931250986316999128649517874541137658537436131003755063916555680946102347064904914358339517411463538138620045414108225063455692157598901584840598586193501774895462846992251404844913411284971613865600165248483090150166465554182904669257967626665485406679104823311294330826335775504452026620937714309727042495860212347642771327198739995829098039628717877387440169330134343122673315572507017512381073550785244386055019326151484184246119685122876392950293798352565853667359818587002372086762802066786943601214241604999400694765868034669772156926872986151532859944855885816420589703748307336953579426706049308285661261183995043822671224693648816560656297302525515409327630605240634112171369288069403453538550967944177429344307755611332856091188604544547730186737783673314372479982836411692578916071635529070567679314837821230308685761670925844736353493098824091415825479236983167977537241380604726428140932855832414422294493364324306921776274921991857026763474059027509212929376405495218240089365527742982646611780763768015178542449970237732048907883993202643052989449481922570811033642401549207402355450718082002201627016782060068269360136067081571005296286479281810706865272364207688738220388785578454654458956751921304206865421592102969241580287942174142773066077241891956776776891717762933877367971430266899249344227347425443704711724462489664510715969065434875853681229077229992866850170554608612682861061396586974218458167864471644959863733830929698095641354897019890299026514995073293763067243683251425086454903383756824634573649328440998329704106082860345416710567936293864791254417248645813373554096964071646768250013171872069004484867001625891095421504768464361942133871339315585074533994849144310468593469807311348847516902384473635699547612545465519440079534586680319047811113606991622090292745683989088735152600646700999244629830640237582126383118868161534368114487103309110200949581207334579012153169469056736735871164592623042211920643803171908291776193718742040664513651091008253254267533134707212384146098067539643139734491208474694798065170896798946947991589586942965806376100104801653623193645245340779583545171035032053019515316470397772865865066832929501833140873595358475831880228121914015707406825390386518600235609795294643519828968918833039602320918406162152828444690305350086838735512137549660214681859396349299599560736872361710047325489251063180605744813716928308101565212854674161933762956538612544418642811522616371124608657434437373267483685539522120575364696260044686843136253761782840603907893119995670203771335315342271328728791348393861640708295479524409664015625109948913628844209267110360161993328140222041805609855657963914863448819766926705756375295606222445395222658297445238636340900068714938047200804952886912113379588722810365023865483137734378320948134418041293823165441922555354657914156834185937005362271749290585092722701267615891193583269944881084991665954290820756911046771878482090859423825867987673782425452542133630518462913484104342208962965405190723226308158845549603146198988047906606035287892682882504988470921680003748948404182861002438970960920816818423580172740484382379292319247810987469714219287792165514823083756653757099875568446635594995516758244702527407517794025421564898051232074569296534222876829682765495384668743656301083845115598271206801760432784865988538764704766625715147585756670088020322568354832632702451989594191947741951086080291858277705241242408731544302019500332967062981118397134984087493945496648433247684919904316808697188152697515693814901029065028802636209375570773969334981429912939090740081754309066244009027783176229905291855298082168429208015173186427957115613560729891836394117926048801071324435036322109702177800485464996578108183460387386874135472180418299735765818094610973656760797700684036355934384244587332560288961651677297782126593327721590715027770366347443158709900454232254975131587356640920914227199834616065917898060506255128270516101649251467703206294444670354467151933111523111538198257863998557266470596673465480572322537182101304439541996185526099032519527334874347398665431894557010185488820024334652369876524964619930059033895289089329845532874680915965502021990863213644632699672299523870488172884013681636660617637167325463560228450000281742194141865786473286234833159694610043283278141038989127300054435115229455109627391368567926779357969474738989682535750202372116693666483279855513399841360071644297522619065266346065058890009835288190718502305046505872205537774635552647777886152065948211686662260313933075621060853619345356024904203904127318789989566570986380458587234920027603208808645959404750649738933893212308896615867916230752888550690422989687922126539818666352375253454640201498057066181239482821546808322454376577632063855350171222897908589348744065891683823706572140979538881025946300588847745853917651200822454474099125162244023301167034752457509159965291166816279718865445084337955506809425445168454869346807303339764442160717447971826691892133020503869743879373595155451703466327903093259360931155110132640883691808378025412649128090345715325740019563197367183738556009485291837032376458054299709170584555600572656622000880031322759620864198085933381150161172814302030990799460534725537884744701222180967445046745081676651087196932388663125215868522289552408927104416554015823587016786162977890054876343032245754595582388295118653981486123434277767538795324635767471393955970550459054163857501321686106801751845749966973343679995237631872661292644350033646523336947664393444136945939400870895183608754457306173763795050021805025032658142409255456298276344610093706163745484635936761826793979816259066537403849053071743637112238893212727731334526239038711109703197471651374579221085370761029289514362689989927926265932513870201171359809635724014016503615544832791625255326411786940257105091590158133288381756225187841856169425119310540071582560165023875313571574536535398434516317822687981580054171129484896550095588611496492532022704597036806429056221589600054915714377683209174512434285033698735635378909519329271732982516545428107365400354691073766562923890611795918068275900089973426518649765983160138742902771859195837578142419982704084406881576883669983414960720340773968375266170482539782920594270861260799113865579273227481828181032741865791185609126916274551336736455818127280211070232711342119025025900196907605270098950952903516233567873246781570056681740485144887319611552006646146794192843509641471451489188957394359570244548288667420197382206421703365560322785270914750676434235596484220090148230052870715356441184031250970382486394626828640836018990801511589856710975175821732135833877603008103647556120857378252984608394545789934017961531832490914003524885406537650581005664883664317157790788144642496413116942695549294804403948198395871634961599229542162191850092143459518070260896279923660762091331648906764804280428792296521271279100003873875542074786777493137514146680815871875824505232119776915182219022161713906880315384621905879942380666382656505856840754937200266614354389233333879754062680970867154466347300155084442627334591544057600063026384821974311001509507072276461062563945376782309542948898699356947551037237228116635821914333767540572038314610185675519677591853903640433636619665351604711799460995075564663988032585106281960801003482492545053718307227802801291098037771972643390266903115486246527965699570719874876790285870561877333564477858205668735095915177754105760322110417849405322287902547443727853291494474548928131616057322557701868695062671577770246594957648864509569137821119430399306425153200992981255222436053927299224611701609127480118494754067437018758205587099948569127856203195625091777508420764885032915852044866809545983634551718776850092826273377616722435749008207876690707437840709543512185606095801231063575418100949007524218247441814069360922665774303628556341121636676127528008055012602172410951387889550885003234333756557992974901111311817415607952542876260719676205361009975374873477354277471273786745886824746979193853644707755018759349027166854917590940322120503880443031237988296105209090635607215330799724159805987106581372235025222643196667996266017982219040214208280432308144454968508663767315973795694245217281626016343650669576394961692464895029140701763752512640251117878772979744274379354218794545835110654401504762981624793933435319551585094348762657369472410729451415861039693963655410158832513676628420587070936068188892200140296526445798065211404558909587591227828158677185565138752604984895624758290463943507961033480838002986805721994434698906750837191747403380370666056551916497798389397412156428053569458727818197035753428994822590109718507057517501945655105464277187247923600432856000951829723787611409772765409389378898975422717067529376485302710607338151888979057928378471638274186270823127080204167990115179429847629924087931291793924488954607985708327752792452667320990446714493540028840985157317798152680166558251696112889120548421465032991133890919235193546552776121792732069225329363552648952007207407217053058341943942314827225305855348633789891207069265976150681080340335348030121046326256578822179063050725275160735911679195822014461779826491795894188294515720326548407150568019070561357221212608216650264241108448177521036867764673186029351314249563829451682455223856784919305389418371112897305427252558664626906316686552361883650100703707631574988578994295615364586071969556328065263286497802456397104519381948028573688413550551238250713607304785104308388172426473491938767731739538478199275003258866985292367944814923236539360649065937398809207435426110985751883697364428262636930004385601199662020470738452139557902922964620855096801398140703179987203834973848498100986221107890398468187527608920641304309128974307297292048752688962596953762997633545381658820170963134052786465242840343386476966938241433426350879119191305935737211448318018553398622585134841572664011129413113832206959124738978995384932616776981198795648352220841187626483485684695212811219352957448373092890142787006279440811753028623015053450893031839307829118354199403753334147452458133664842191756138496262185475318913274437333106780388302556655179354195750236812943835742445552835793756726932137117354627297456634539823012559979090730699364520519512914032849457168061519893348168476872038720957335906584715843252733231905629537968149237698385452146061169331375554291865053240018973486410233699947369236001651326341320556679573657733960498791557040747939511112803720417352448680423106632445903649361752962516871560000868524631453942453886524602026625198184510017153724918316730107510828381483634473951475640137478662735537339599377690252565938239548735011545354887128345823208743009934180453873008351507147035762998302680301291557149396287535007057276682056615644681914472235880772496833646680289969160097034690326101268116990299628002224643962949348133422837912758364212660398364495580297123989176631612228973871039011568713899538747976618970030541140683700822468233500922587526054200843295182814048078044023781571954956255268023045821190848755695954932661956634607420883321639717404565486450134901015439777497714072534385618743890284813084802732096695495409111141112293291045896825347826014500715703642596884377710316857819613890573654638009411204194970199074440981165036204922141292645596806047931501601615752979400390005477593085080608418038412784474048197863205017684709773100677906492460196238166398854393117787553733471094715982762147202409170761064622108087117381042377816250375719487085160466413909779494772107387637439259768698230906695193647541106218001745103504748835162921739684901517701293877602346788583356717968732660729203770148521025534993956468152623743547785488577350498664158289505356529369461229895481002645345114875505438167516548090916614916692024850177261551411799292917647887035465448588158710891803013075342075608429865580686668324216660745026160191490720533977556739857281200738364231691250059174597243722608278328171511727774166119848249308654904425930950406930414215788765697350539742587236169864379408863416939454088099910109114314364718814926086047095988902962174282666294192714292283880266965826060364819111756052352866409586773177560843816328123366333783114963087342373176128093092350212029441039359459876329767655842861556877467632237685440558760462301589413489113415629109632979550514838591724174081322138168183417804858528947329522935369226200299315593867627782383434528807598706585636666284486587336893263248275947515959039055125960497239212183640827152613700352328951741370080639193247014035338699482447378522952084829269717177846962075409483018822802396700806665227333910428586975647415590315918302966855996761194589772801279404871480308501486779550251366541957617540377781820395488087215142765065982971385586354549917971670842708392608692846498860897279956938212356560779278077425943871453843999771581759668969628052273009190459955582613457413772088233966564586019356138874105668022454790640719845132844212480181542015490259235956882150918306877342099000851875772073256292950714004632717616113668115883514939684522112844893508553507151711582788704306664517255133843076001479541856095010628720261823143245823112403889058109404121552140062080454002964525299517775462741986945666100272834210658347352224273504389498079255049586405756127720142771876633418867578205660610120619834644770776788374627859934884700299174276313633273661884709589342554069539640208076564350383724647713134707913691620536970555682367353893702953773876225127998067592050367843970432022990833684841461098759828826099374718017491196396111655030287156425989186835804753564267072121591643274191747129777055853296282804125745922749172482605370515406779468436147800880221716374273099796389501392438498485898755367748195470734600172690169865430660408251667378327079943432484014723061507915049331532209607240353499930663856216551622123912855415369483145638027493370716406642671864357052859242163410835005741599338676790460201641940142509011654633895296548169990820548918136261740869650351681229784729860422628714044703552904476137835282762901317410768866402810445404373987617246087326881029899705440173092572946260530660599980798506943809434684964236830366694971291034078542893279795655853095509913508123356691574454265137212526337212958356173276069056599443950618245971705105363871586922306085925570755470299882334297028609132289287306812333100071461623309516461473132942632112349898580118457438308155925340114805091194005183483724454128414544257189143608044058262142607328561010890690038081943728054278944660356747584288511100443197829564168405238150176595949684269479817950409834363990652685213650585772836099700739184412798768160506646738214020112976692788564635158599281467493543984465984966954721483069366477392831585438454228462690353546270948341339693808052357278323535093846548506578849479851800960780812087886130425822510049119252049561278489298827774456364767878336525410698521140991996581704777921256148339658883339338445964465472051564680463300425969414888643865520437760818644915908095149041700245942729419230771789128894810465061737907793946765935711705309895847101227598501236970661974471846981439451185686960075788893914887811111207125520808155331742616036270794725766785026557481449371200150142812022812006056646915810023090166527180778106223376423897060357736889653584970506216705902987469698376264348327240997204003625070325969636467610391465176032914272552307595939961657381058822241826253554798578203073888845925387441311426459335015187089525724545555553787528398156395857311525038196983886880234688050105615077317570587206421060571160009840436410951159627193751058226020693082718492386325869653709075741272503841692877491984493804615307960134289293820858137344281408707470564200429257574612451038197320707752025432956900402343136480710437868613962831016864833334993434983064607691168570978745769239390101563868168742976409608321195107354856815479719239149356946501686612232805444338583017722529579641305296315177786152411698181303615069875841451284970857851512690510032329144579001409110982590652506577406524296621993372364294438059766685491264689480827872951247857028922329951249298029894639104786912894753160575640523447327012118123947343725713381885596245912102945422372431173955498876570494112134900452406240379223292840291896648319276268271991339768006513263562666351412352209865691864274287934949149674899683720528636304100442773738966037410721897153966568339511796183620186299609930711593015981597807811545858371890192179175720204006766987113394977553404815807396065293347151897888336333282854568624720993204389948898136300706539821482506879483495293246393151114151818862804576146631067111843813681288583710169493059315800820491647883712289158283707122928251408574971272804321309465835217028791130984252867617204925310087212457338890306330672646573784396278050968746217220510643327912842663795279750888696683289848843760772689489617287719490500822905580400348197951861800158755199646577550224275957885289970056013857423888335624116206056756990344555943325597528371477727572305962151007900329984107713147106935199253010204724525624851674258832550519584607176837577489194860935466532808059262036814388420254032573499615517633576974058748150049693347186638490276775949012860214934557041438863311545516790307756541139884043140020505104780088181165625075357849214530921602009374863967960703882319088085549982129415198238188383642975301216953082634552412740100600997680145993138474135573730029681693145636592930049152901948940021688698411040568162073917155949810542974413553618746045423744945500147699384199195734812635349214012673259457765017679025906639193551846248695508693752935673350821167787102372052610185872002644369152721505670527952208853967436286573792117445588989710436666968907703638931618125555014591317294885355282375824783327690095309093782789278995811935686839111237177298688775758868611233335883988131689033746479265976072528554127403286124712183799235208578484431808755252671295317914607562260687776854793851561041971311826359449600240334538757372596068014493432694362369175833760942455795851634960469744029551230663210125335995373291178293562903143764123682323053611836511825003092161707490918167612948750120018014358978252536982369283591785978361567786669331382868091473249212057809863837291280971449285183699857259925026230757070630592023342504075959778093661076495500942843160216383738700651023314056405877217186748424514397954654593559884974128995394348692333798469890180868751513038144461007488931462562111702253801405534630283519527365291057888824473115068658061688690331397512737742650796855234928855496606822018080484562256698548977034244595843679649529888913835151883578710073644933562804182806462561062212846924494058857935440244324426453106550590436897376172608006589973250855697833120056228869647647564512848917339513983831754180932532095453650813033694617722376211251819681080954227183745429284520090250189469765799919062037524826269080122214847246786366164401637559421798119728112022733217200842773524829081115399842019499062952251985607382128207860740215691565791697120176891294391076061227122153584423089785674385354719785164693560236111506259742713696015992330758256027138028729496325217870334967445643558472867290064403944893559484608246563895228454689562629450375869012705369976448491417769820514251289662133127528527941587277588248274153104659845022977105598521769590638040008847454228468185053639497242948914937424604631670710575654968392328738119412474832372117888275448684095422281976611654768647072724196254944643758994211232451492205328617778204465863392250320422237864911958545520442200890584824875763713293107148835122924890662896338399808788977510781629826604335339521311429138924927998493071332421925455573770765457256501561331953072820370239793062506433486708857870791163039214509716287676426727079863731158082963031566187958219461493156692973562105706462130274108505775078493735735004839971534197953308865557825866607052937026488281507032383386830150791012193088730614678211604594549114472519741233459992775084704561024588289297886420066539820272557277409851086187117350494587944417262817319543221193516890174009399220368051133448714194117591385548869628465812621072873922201194987658005477238777380670392546809163630688221156341051872184580984230850492273641439020333690802852458887782922024645446505442106033404168619647918028733940616180670777934690898000577418179697865314015268375670043392994166651566305968715619984408566712534868851367562480292505634147098488671194203020808138062194508261886552259379194727290062172841308558598281733370805013767071797869581713290235743497578334620314463671398173428475730896931197099684176490346919608966448117940611859847098760737936891358592143284950177820892516039899562710458315329042784903215954167272451083328195006649375930620001169948697970261830872971159889663714546351414715163616621610110027688933740914412266681973600383800810001708473770627507387167641851779705195626649407102546687632955794540402455963068429375156694685590944837469815674543262951778124469885697716173150125638312942904402095844266333200567421655004538407589331469568864878480396244127530653514873514312757445107410941524119549931065962829133403385007378749832166111299016494546999308195035505702947179127330808577074183797356915923818127311699262341045861146574437531274388937121971605957960486954869157872307189857910294579619368373407820506525612049026328898930537051780479982646623627782826549552388329153899253884611996311501669678576124824941467769730852263300520817540307347096527576425785563547449397117631840194005170048370885256435417914104267570669421229516690914443191361684326714643523935775875301717021555334555394149538287236449473745177563383978526845080519929033076170836447921033686775184184181223889999513482901986957513635024428752177655190460163393586052291479265675878962645674490414929033078642096438978434621142577979737006782186093177333787134791693636120552555981282552816067899581797853200066258720597299647781476159434679563278849819392111053162620548625684300837428212091254440150919889655381794927974172960504432519920398305227972870195743448913858311811173510192663331834621759400168984397894027103925437787468035076074355721384637403264822743673004662504999452175271775099750675208736662968453676373356414366730842588009380003947548839478425532949438228896884702368338170665795551834746499847640139624014062283274858663829055069290705613062698205534398015595486722865164277538917044401163128067861856704667487726860996984841708308801623046337093688105482629743911878094998139438595006063785001326785665791962474654666015825756151012004760374622561672948418899049907152693480925258606461562262580181553104301632300448729039254457814989201815712134079839213772668084922140914881846295685006536314317410310104005526377533105947893259309463803296580269119040541947110630697986818030476265222612107047915607787827403242039845955869265420363371724122789908052709638559181378529504018928320890020984626727889547554955226141367655094790475633030137781355804252310875472574239970940946391756250951746164321671982922333044556337683214161987012533104295431759142369684145197921572392406188371819209855258259892262523658714869583910250470669532984035234837566202144738692490986000997702470122421775257211413536262139932669664051984928456955223565643077980661176638478767825669103372231162875745345389443303262336158452893634800208281473758040743177971686821761752365710337210088265552721136634990108286378330924431433554835861944726794952045144715623740447621230790987003285450054681247084900392311905606023813573845307116030684929759846502240506242573294165786562252131188891149465980652749467088041029852401939472324027630057904407662370943152184081204130476614214040513813181018206915091800217322805745201261601993132180650265651934098035929302973561661509699879921202941905595844512314383114784549927812686265251453443974655289288730049959134925152927044213177190234564266288932086458705298501282738169546804396243108458139485046686963401840510989007938800226802079740409510671154751397164230505141375668552606262749384853180538568291807341499283299793440429246714652945115795186996693155774832350344083602672737280700016606000284336315253540456880957947798225830374233202020643513027408097312249224335047075887854529699911799805971884037081186683046581987396370498824594462160676162557133617696259612767256260895329322634478510645008917406441674767044700723597174268706182923285875779669671923998993540743422088334817943390009270852501546877918009854254328519496139973936655995860606926294887324462951614976162512059076628385345360526070145061570705490539661743493673617135350902681087939824293368762066756773985181140501974642568450046786844593701830612412744685995553699974529765521291510047514153373067110655082288847105661619377407126174619033583105969181652749489593586134286626900638697206585816764345134002317868099426810856447079968768692484261045812338803123898811767466779842160008864757103448182175232158136310302526209010112519047993731344061465948595030602135166454328906397643376874868797002979581793213367306477980180803864749014979723751420023486473627007313510780937858358364129434994019736156978828337779333994157028232514822738009044184131958214111281879495102222258163431632847716301271467778460821578152095216538288430661983166957489640879939416327055022647294180929109668054388468800995179741976579247355710957838916537982879269448251089063641518069868662856605086490400865983931346542641710399063217386474465246205871441856969302611413399644106245270190432045313590355084979157814057263196451734183845380734907184009604694874224228189954882918888880894476026411997939500041638215795000697970843692685159402180065275002753099172233210042748721088608507810944167359278381565348461193613210724170214708963788086930895483442147715773212013962507700782939988796203613673251524834048296308062725218359761809199333612097365327853462141082464345756207465798111773659400333068374947688132933259401477305540041218095337730135096003464697874696185304832258256639144732335635444078202132826275749283220510726604906012630021143008669040553104338931236141833569383291099023572991956576407578273023708844104897212413530848981771120489313679218952765563237980086351638646992153884062026429131879374529172893744494411776307528924930691685423591417594363493435833004727339568707635099103519911409600586790418201092203014728402503671661700901060626019440280816494758949748497594584881613240127498536607122090615573846701133142284053392153753587426445105821080802823589161242817895696065259668360736954825759231729311652184083014487480300922524384330599923782119088708106610141431692234113408606429131187780052188133150165259257053011681834015983162201348290514927339288154126813073479302930063625722160071567393013547123554440434196968720859318980676807251591116339842801975307278045912335924969410699104078518549084574464383939526037904096799815155511444444093925779507353033089358688014092241518499961610353813490429567336291226427220476177851513277062264769917207949832441072490446788039258678293599545131151452420565984983661617306947731095541960672507977225155365620836297301831404491025748361692474266920735661993128681053254663378004226592995821165532827766205956939450790294036323255661306819000729096083861691735209309686019492803540033272895637920371246028515676303696007369286446261692234529412721204856611309344232163209897476219652614004997125990393196280395996525763935159074461988279887544030816296213969799480865997664009390696804527662073979182139182231280735072373357313564235160195201220471466182166314488127315174644943820298738592752470429630448265538715774934083703696199770482595602533719483194645756054588590073350701566189673725661659627013084266313073374835664980944462641244852472847615162262475011912310497621014463214187346050968137659994946945366849434420290339242690843043583888823714203055798845906460477001042875343075396770186570089208354950687308671827427119234480238692144747003277473245339342138746346395230818245068756348491195237741944278910174448694526037908421874675608573043725188024709117893225080345608903317590921735186121997464810762769736062384699236025189115266588845869693933801571155451886539434351748580447156527311606777828521885472087004415338894438242048983316341002891187188965940030703289688043736905290814463308821694868036656720933336057720016823927159992051888136349178339796562752553355798683989455045144826527417281842734456997010740708697304295195777647557196011338579572269418767980251893855181071098126814779129711561458487265355653365748248472944036237539898813298828918201613132803392837454378431433382481047862748868376392490413506691767498896229905156505512612072971016474604166573369001736874882241765957901101771124388639211739366246158739822609867246985064097671032465172313614887580096833785782393170134443053577467079450121169248865862123500583360604264247263722559382687887004405151606774214696385867697551124846526102017003135871725543177256365034781171846053021773634078891316083370930434317945073903451968007433141733823872357512285826531219729499603920836890912754294121649200479296612816483949159223498314976490291621095496987558864103553284037517343187865839588211298414638591047588500091546678189075310578980278901680829825260329945442434468370454734270430897683480901051531311808262112329941560103766529570577025709108127931637852022593099873234873493610931592256840101548594855686940528982140927757127500880353770854225237962632998235582714573473922473711150671149408284820445919880397367051459236605599018387889377107248798192637851736023393230216147472600512743104480186910861329599497308800988055427035613098368389027175209605783901027968677992852309044455143097161851119588032244122921872222445746789498727418271186788303903708849342043840797984621054296646942837751126021019426984745628730146102455233649655605309320962146320690435589212895082446276142404577030618173712782219532232232431719913926492499714407308203225253265484347032754148560573353441345610943416220478404310976994510768821381807045501401483548458008394109362998812011536289899202858207961779635300060976202708364710522647150864190926767974474645901780264647793090373858067476684321822146361078404835962013341090073640973570079723085489641449825099479412587072126221732371534444007865451841499348938820391440952260669249407445354774751853966006144752491649475757381695491627815849478952919470116649484979987040473042565774709634864470355665957374726336729530355631844227741743764856695722431091650787809525002963072119454347108625576657043515972211103892415638880652296019757249770946348534489417265806527507649815369137260551761038664440933511367682501553879237039375997554616261942593987754889977422149197519343288515388737832303261053432509229031976493172807247214658299759457588418421420987657444547461409121470500768184431346465098382941105917630922772416966952899753650602322708598367480505649506838098458935930874076303540702051791527842700700445032513318683663793186313392231303823508624650495990695756258229419467330477494234476380124583405474966956311303029749114991181950387588661907416989871670955102028823172899395849884240066234235476185125811380744929307759586099153974311795600887146704102135575857286663357420743409676444556465762263878290122021681395373488409817157624039211369679693484269104660166638605010555836545460048627976537613696963916693636899395015908974832066724614703895525854461851886675216919884269919603883333795777424496822704181576363007330000052028771144452503004116644220076218840647822987761021335397198567062548792281943870558703827237261104471992132934663536297651672796525965435796612234190930102102128811757380919176017887815256932548450829294006031843001530828198325355677786189892662807614229063125518630293398919883963237367016670613433856164742998118160484306059596311738109612136415768388171855757737372148187728034071880157192530394228501250677292911183439902108871878640057998206043689642677668123313943713142269326679580962927342247269958365072585319693704757444513895722965285017623555996541009836049929878953136651307152230763056974069498648527499736532157513082061520475281489347050387905973604285638795563210637318142128866620925148592009952948398121509776982061333984040055106558831990032510679762589093244171276173392504852433671143474574484014196623063252137337052605503468975386244001851711428934879806878507540695755152989643385432325313503548563003172747536681843765104385327585717304479826249709847306716799212888453836612414798581929725120918714819629366983809263407603513980418861630726458818040017233845047612459967836706531105102137458417473133195817314404117429981794842710696243573839644784461873449785726636767412974482044878479834089419899643129437689568332585046383897656581857719827055649624555535016063510163872215391001635202036036775205107136904451290254849408710296068382585611775832249065387794262757551132571927694670634710421669107680549192820927426894068786354133703958910430374524564165766984836307586460093904638906363528821671827438807012955906548338560508392164352782374632762547457244851392587617668732065311541924440912476012177579121158606465516397795864088496329335545360831102543144653225724735349558969112388060618614176623043253600043335272399326830896557018309733478773853525825053181862502624749633229817625599481733797098683732968014664902829429892440250954600169416273133986177882889295021533404835209309819316865049036900386566889045080585383628717129622055749060126353822074537811156846210646066680781636257392909609270338126757569702150727725197658109912562670644391030123706598594951720849022505861864043215734370071272854022276646810280092804642132713022049990043403632032699120945335240265635156560762466883221754571434021694684146043680834432604436010904765782435508136952956258803810354016281155130368090493953577128585112545857913331558413423211563144863321187198629772242534784161323052148117630949539143056588059064283002637854057725533093931840791619941474724119166474294661215133798074919196152078497555252694764386549511495356550720197106852748086853051275362478009421031108550994583602832257923546540322057170854289035133566362442285676116205624871874822930211880992590788527758123351403935956195055148841881803990940805971562707985316373631520418596911338019129440116177263405675032349566244546067060086957429219357973133410043018377114697460233588412212352839845264949296674619952613690694952723153662062677760927056384112293970622938904610105464408968654718501240868612793686094613732983043199633351488189568910302005615769861980205058507576435802470829974609877960564002403814746087282898887027978713851176371091757655813899147839725876026365938955339954362064910578046689255624149003782717497620122899883521159648731387732190434168120127523998466409122306682848328287690526054650052837829523114236915197047268918357058457444299276242539288497880640513090652658109601468122437393741495802926828495977492028435588969714770779752802397915350081864442383209136743700991911038469760575358188981312945127753191206062691614427190703093924680345469835393264824378737361864657775973114121498535511654031389643240884279961650362511371144927073702401505379596237362987604939820723817288501922803957564185704946750391902093273600205850778588358152994867569290272762094107694879195430316796999730045605162215482275867194944224951113755703921132664409878497416309384646115559952117339555289694544246338206601596138941327304492891066654714988214971654869817586789480172091024438617888291372225757707219807424098122474853564110673864305166683043012750805616134949183021724014772804266459187261059625522317256867937223677951267052831227502048408617129710945809796935540540555215517479319379808146050666735916986257641514086836957428034620614586479934849136777113644779091955840646750703281477146431204093856186474045366429851546902324987605373938380437860339053481328110752659347593509679150768320931949856788372169890692245630759665461752521522408682722898870702622918583165114511794543424994303149896735011889495455052918060986984204836747312144859516987060633775858540446264331193701898873625406053531495401171096647602055397089458211975664989199940290288111246071985479446336394849921446227308782090911596284219969705551197921010038232462098074394090337516191287028239621043846826715002333191717742831301427506672730334974436010404617565630553768985519624364724261964703689315861927700920437184732129608019690070552979239298456267949163052891201112649409126345313286798682228633706468109227743344212646683171438237294864852951720798573608450394069150145098132688677176476438286340890321668355636788943461132000337874028335920522001529235975940378727248536322296905013613067548263020701954237868933228544872782508769936624477682871461006717230952590820349430060869172439026013427601764862306589324286454492657701624344738531348923500776131187741434967478753336387883837042781588477576213545615640440777381117132528334352857065922124765305658525119707445182218482500123887898258295934741948267214087864482805106869520991821581495314246913540049130123208458875506276596603276224499512860805940318367540644003248043877113406571898307105070381243207837972840726481798020913341220471381656823927850166456196463511399624632120752110843964642591686176924825324959853675279299885951421151107248353331384454134915302968435739816999246532351135451654926510207714309391379131187375267820782687021640109207413360161869036075962987897756062050076900826271823165406941141728362431489545213358663332217114435302656426640088032118499319002877513645359287808513075342407162157588977278872208061121407007015166886966114014182347106134060439054973984817004559288111751150500623807146086252000529794522962034793686672379179452479041747691364655547634731980086514255945826707172092939795935856788490432874813250486531032118732285653406732101842914487550715746280522178313526750803938591306992384709606956524381205225341651242274030144816520117100661084237289812619516409505578255446426103263370443721423278465839190617044073029238477929757595049603997673774529286103538249103061194277702215109145228192170340284118699871684270307798732651189544654639680734763093260460527401688499042405292816160994437087762248855310181039008658513650142201432303739772860973320584425682721770343956465553760091599335200172890924860941994174261202253138520429318855891810476592680756512012382064078431932224678778249714954588129101521745450195033082343490940351726481540037706948515146989415165012687250837975225229542071578312444094721441789493069892948658011189496599332298406645745783498030898987879675446142795535340050555493817974049815780280402517386092903915264129371820689886479085178935863173968168813425558791018452374435373705773559642021129465210927512535885955345743259904381343315156036686190914023064915101305985426895035840460587354409918123109168932711270196965198585126010621438186021861103181074413475749756683608206950980490102380841457705484260122083264857839775907765601856093705329506023162673539076983670671095582608892309183134493024265517744221691009899707270208200925249683296643387927556762084400931490621271825496355822219903033333534897234956153813686542638912753846700123672096946776944086673633415325156688170609917713726329938784922673946634348744160101002285205409532599485928684402041698211545432357824399363082648496109729454511268789551477177716865839999994163569639027031727057786044896279809348758165676650014519292665099363424047609637229891480457926940401051343689279976937268427275724830842885453243491027876931685614873712216602324674345293798932710955179585225517055642932940951834999894748140816857881205562349844760029509180218963347000941887990246707507822636595315767995619964212924732977290276289095867802057841474147588869685179552765912974127392922350859034775325909941434024087225200252648435604797026346620190407672797054698023990344962738914380727513951328856160476030686684530279868120872980200796125370839190787784872654844603344128960942889826467513950937202942057651295398460592806221663782444955498282068252739384536511193191777073991107460976488910727490686833938916208445881958266541624898235862347582376077549957162046206881768423981873210006714821346403571922749915035912910419603609043680394259007093183404988857063168430436189849387477400047074800433210833870355877368837099227159590586404055695383834622620356119275111279058982409002227554683661226346229623300534522777057344287552559340869634649776182672108137257704719349520422528638052386972446620289333881847578322296940467098868643935608939762935896122025946702663258312816371610947278486835757778295477733015260391519845193928966715300242755840956826656766167425316720943742977203064583275577111012842328577372792707337276021390767919526346064574874939201590891892633943544879723339549303281026543495901409258468889492747413429728537320709014341199199225550117575564569922406248309757714777112513033764104825291537794506401262508567183014590460586217950147667288879140424144051788853411959085050619907547762771500744632442668128717525252850134454770955126805127771530616310363044377834451423136854219933387611002674711692456389380227514188690151603776040929749956061068462897487984438969354099804967026189962259526062339922171296614164912259904759123627423549319797432955054060008696949350996657180918884776942164683392008256547725826463153566658989413608978852066657599378199992882456108044883215791672316312003967631361555220593657766724714383946382334127432707277359695485224507383532702181577199519559137323638525202897614396043902568464778358196159880816003690060505085928303208253108161047220173431794425944510567427148306954325246557829841882777748314044876223951541041398430380403464504795236817221782172937416579100542791080148010004568643503821628584777185645199728195149858620515387631073141546176556125456315580967675036576441559172176933731395513383796623126000933556776035708632366093616780948544890745857079043080411131945783980197040413610851416878819161919440551399472714255535845741961947944682976013125691024238356914713899109150111201549389122479984577689981888933185993588308570219599386805337140596016839692814633653166261441406023615534111675577982851371549644177601663074099872482515944072474971575390505838990924281635909940162525954088731753463090144044625128106305349985847636985489547519098049088776335315187323362631827937019300880047015947902092201877734378729658045724377079639351050409396031514787732951937230564441051365408286326990484056821919349112418752161802837548779707927050903228286757027590683494254310482959695359006997616738469126614234774155262188015444978061873237266274202136064137091157966646782477611095831373397066446349404894000095415994507456072917406071842285135338816862481432103153273853879809317464116986197044997595480320843259763861973946512228662360827832813866504415811598710578607906906550607903488918942254197093360176278254092974073928938774947879932793458113705710583727895818086507652545073505080176188194402797084443845010171863583913732428232584993764529548872711434423453032067399852725925867331776119642753997782399301838208277888539684221248964197861864695444885203113118595412749499492306140215699230596368754065247834146045790107338856219678270964097797891819048049860611824562077373954621245906627104175011586840104115815189301316231398525370575180987586120668422893906272278015346568320092988999467275160004470808651756671799888393966604666002142464167180862049407810274382967975813184798395881925901272800346181952343655756216927141746020199841964833668355459777120820032546754736788436814184180104743400465635202294392734175093782564967014779618171682564669030184092867368191917098320049472822525238199820706270409794608571496847852421162433331356065980258871390259407635547885128298725938240133382978364596265068066256203401039225069342513804876875303304020090633029901241151650861829588275051957332404306266109768864226170507803739051179149198197283559530596710859274242118126135586928282663126688863978774624036892777887211230171045139294573789193503954632080932473772141670443249513531690626609714489036828625144266130142635235558935632207440682189448351634980297345384779416807771897611869266057459790033519867131085939145437911294394367878349280922379726759945725484887240729440223136251690049183587929435107114251186363939890274844317058270907727593754136942197996944817885768887810952686551313925625343109234133497324391497707791362017330458507408461743429609838686717393174345671317173586294458490411834675331737463596361295426434486580226318917940215461329875179958983564343535024746766006123376066291762974653730517979748609675220988295107777245809152353533657868482587681999522710617983469185415302808853494226185071729216446634496432166593251768011285906193599359238180058775202029123850334678941323832079820441933930776588322979046601560900480726402902165070752642103987848376732491729910306901426523491721012219241064398523739367230235636681276096505530927679018952507375644163645755831017084067707037460225749262622436393937513302105428370348514700405231964575557660425126798591355144401493470545733451425812354712025194038489149640561155919768873911921402247141783286774809900267074162576749537180236387945296955920656291204515700453388705210159611190488419177642781692198478678950079544435588004313448543875100180191591039915648900191464503750173069608830981722174083109092053247333059373240072060813889815165424661962828714862051837980267766980038647814979501222087595757441770024973843594945796167259926223860225399753996485642382399298283909260850764540615260242468181601002198394225439815295759381433113582796097042397531527318690201689399757137013198790775227253559004658534038630522487990617586951810952897553932146660528583944162040809790386335738884114678208326407673809980591294050609868567128646850097741380339572296175942222019940013219561019001690356037305985822932434095433383045104292617106441748272978869791581113604084119135681922963662630466045477299019681706566027796058766230820870989663761472792272174432498301212095614391294515453447191987763904655004910751549227868793494129837945814751688605484709955445112787233505829915009051792290311428688994731811217761927628430822444899671861205611441314494674768212031044430906646414340532111243151023920271275551299238735536371625452917721662340249873505933778332331051838648778517123323301694179348875328698871054542750768183792190543412819079161529414290829640114336539432123159279876110729001721066683606242747165405064405234386991146401951864657570375928423639433536156980248974377204933559501840639127186149045485345179812214188292562943716528620190213042778617057281740901243033359087125986691959183282812760576439600064255314584769763387336939613155537445951431345703485938406605009916923983610488803550465433589720639199386363885002833573376479087459519216681518215481760784791268747021460726914042665260268439173309992586909796252153826211508071642430185790021819575160861698186109656854561705708025061777167691975634745375742690174694097878920374409647658567106627415952496542882008565582442662127046673969346910954899573145722661122780373897583382570329775023076545118990693236982995666364257262491299844658477928229553762676693936445516762793070117693917753254728999148260343668252649291264865731571913219479489793578714745538386771940290377505291396088990018303523473385922788970434631903416767941502223386647766311928451380442384865753961507919328349392943597158913514655348722356184124173088938043602494495482103964120435708534270001844100733129343875124911659511847682187312384818017834576683247959047696789348449329265545863550888798261952321090203236642121529498547885203403628108754008539663264128235187361269511227424117953836566217433251512675544280873509205840953179132542821216630692775456746670682848697740440884628450150169784841894970489048247888412178631576659193638505632731181663001333191744023355821026072897915972468798521252928065577007917871221378670245655093490538008190246219040046978125295923470452107935607959643187562859782498862153362311434478092962912657622223994417881463827671797527143837261136793716760983060326721635567439366473708498318982614938036819449486013480312911070710732523066995918622848243692256117610230841131547542135715492661659935539595113223092161166266711335177087742762871082211504930365607991477561466732903711890707472080911532315201937049952834343606967320225580022518757155171331214708914761364748655051896880044932222146300661461302737698722859647583475634611094284744401283172563386677782329131397277754824914858999138816879810384291313340690029349547127732720032705011617662669077268679504591011346313847591530710374029264174403862561013931383639300037912049479540286826119480973653168412983445669992897975672775157537996593393464101706664537603031774308905219914080766557399739800405838489396908809378069466649719443952809821376977791652519590938656727881210924774598114684363025900694394480438706215402519792364035443335855091788448932660631345475404244291155832503866101496453364637745924778304844511271414926554088384053029803662176675747114001974038102494301172338181379119623358915888345605103463277857852888133236082625280086888965783525990999011246689661798184729610366683377337967093621481737819810429516305704779240038395998054819270351879103813520708473096918867223410516038553385487979046003066501674299942236513543761099244971328156992250312469485800731872851745075761710560397951163468231973124944642154920464916059394537818756559969837947320902597671658573305761910838941007647404356757340222574831448492398831043043632493740107919099442642479081369971216658293964933442468440956106447711540243968327328414731300045181266077563815586878081791467764935719566117331630720271018363196320437658551158019947066742733175977156637963171098737656123675062136758221699755057830336030178788298052434454309509764188399559611361716806773515213894544183092666907305756707769642096231491796921136835662710240558889119514392445009218616429261042350844423828655061541177835775956186389285916138618580508083506882230862052971145675202538025824954615717484222726746224268768049795259095218832510918352640404440196042716274531521032000587897227109405620156858624449006198626893872124315333116989144539256060821080311660485335504871254214803694197700062017934952204158471962627922955850678336834556445706600086035960006226053957836410787513453405994784431290461398033897766828275299760111909088947461644464053720406863306557856743950730159367072431378810774700199847269549962993324539966295874202584175229196031708443248239269357472311974225319016940361792317821880287499279652863116604518917989464084608356707755486915941885506303673560312566740237116547750212006779589418830113725537619076792939429244595280365186499627185535415577297431380284647802857093710743300886266211718098632315321083325211445449501838081181887292269780764050152064888756614894019812753313030724705449841790789343375347747754665833068204961512324998028626174586191256906607533618745587634095106068608126683098735786901788617623302150318418119570202597865755657169553313269655234615485741704623913538983257136177134313296828356536590695495449640415442688673578373261611403910063276999549885237370345759960253386459979243668767970714923579888916969856369668066266449157219358230644481261888045113776907892759392541261908255050177941100668167061571561939179620331074541903773985430534935810951004622400211597412896064952509386159377538888112248877100914395884256795042736250597000490846399408417881397909846427998371891954705695692595397017225385485532059126533396742270825235111635114808993922267360330637842049650095066922295979831233500125760473330451729498410002281009657125706872834917023219207395918819504800149485831063217850435444388048190352768029879242593279623488533322009935905955065437276625462583156036583883466564074233651906150439578460349591395296685403169069440810251830220500124371260461649995413283550234676418148685160600765622805338280302985732214914850403173146763413077133681391449891872179132674431649736975718208945621493540580623234835748639134065872441946016783655249554196279128545593180603032397449374121147628137258503445195324952142262667962653329611416566656091978683882937853410725629932405698318408405765386482568995226503647787388573765741451681871554649241466788156445524111297867554491484403463000870005445914282017751382299270241708945704383331653799152216602630121732568348077237860012063439779184195253444107176039825710241977933617734140114002907165319707454121116984912482554868375864352601335658856650870423165063164047843275041348336996194504047504446096883657660374333488419425726568127711079092633117305832445050608154742366578420673925349684625399548487206038608921166351905096415279587192759804537232700155740173289856272352765878346974910789727779673640666776553931350979871464456352767539483564100860522089079810548605622551848916250819440461637160605676286637414072196355021141525522511031255616822735972790392871188466232079076384764430113956650634347835746041870437366457656386882867664699387019976970387046513621632117034347529004013074957219343022763381987752358045035033924604531302675120147891323915370857299909485841844250426713610501852186059546857493435019390686795572259329969190890675928133410689701987804676284030188732609059692661333855005291465962070868798828281799031857381388173428068724115455558868409036164211217889646385855303067633805982761386670747093527966203274779558746299242890605884221044728578604557444988180922324901621732528435442189466765493679984549998734492693519637568379221842066114912993825464353988181880205326559105413233047016408901463263191404256438134753796007065689474894528439333984617526048921508676461211932732650060280879094545258820330344139798110378700923585939361006137728379544579153729369772878691554135940277189517516961342884767671889523853744868746612210817300417774222968508065732558462035783663919858393523730103016914847031034745900397256997815024507832848094774803574649392822820273514557047096389319646433070592761738237657173939559628629971607003678493329947539174051332153372476185098887119190648335613575915252136414478337594483838244485210363288460914026166769350643373159937623830347241332566181178911047514334193294694544777027480129455877642445774472681736868710625077476057480919849416792409112202125094975582200087715935722083964876920027078259044453772279979193502752917642347371576573905652196341411740921681068422190114643212209342701694252041653468764542220288135085923046930260898301439563556688412604719495999266800431197072218246389828749916365101125875281033061833478587258983118988156902685611741500376672981716532050261790772301499832911401937502576650046622682709475732647226650530782612191255687740893505503573125346018430829837558298084065392178208594304387234615020714912165440343849728022754193522909995510846878600050665903726085537031928172418535133829802205957782580773220804799486865660172078378882008869368208552393463932229176376806847646719059500886399835701613529769149238698133515395292649746044753808665354982040362698408827424260943082743985115686854397961550390884659878686777309995490605911014034691061804845432896423033562228143084140916383621957840712872773450225326171051169065417276911705980777504246332767335285401795833730352900832151340878485145885459069017786717396928809700476135168824706552492109058491208940136581795390195715406266847096096065520632979932365071506504936271247144347674519465020376074809140331394454471099535449809397818847980549137116554268883520245111596775861715291684575561807530804555714567306620162975913390285905991029951384834165010996311451924625228278712751275550659371042930347139199768263881629884038243725447786482649616937551950418203958098975985429065466380985160078178217098844543620221319280619754588343870999936958129254748970967033686688943712669906445098413502212149266622881931087800491326780081876730535375635797937112340764573523517924536373070663575480963668895920643181410585464001250953267286834980229500834988623346025085815315989079426413709833486670851179012142434786775227034543181643745214980242704781676784394092345435228511789366154757423391959111436349968103213399775843360645134644655643719902742772814894118081279142912074571203904083088219697067108997393743008727503259944845936419769332623439772582664603073875713142113192672294577882381352283059346998759968359820193453653695092613335159926744375127100287346721172414341705726472849183624690475435086728089640892378796269994392510085242215773594255029229538452388782372706880834830648882548942918555406546786214090443430945150782711953891981632350338460614761697413043902309672868059496392901530337589923604483693920521467081115887297798239466881297968900078278187622572591037872775182805362194521782789433440021893292551940172551396129454646859916729134689248770246685994262416242863253024697876187045442167146763744460422394430803746907498742965179013835721900111642809928284937492563926814051866872504323037594422525610945009238008220614951468090911768616720443977213635172660673856871851546623516895432640326241788934989859022875806195861001701888006375288768190830427899762637424376335903653643508243300895359128605323041219032744760724507430529774925376583385932016437951422874355581937839368058309632916046364914818922810412435427161026956270112189582336945548911025256551120298907986108326357042120909315072218373002177974590917903454497127342315602664139564850880425775094645771435520739845568193882428608066274699167821320826122325106009425385758462051967779640190682223055450000939440532483506085970893862220377366909603153016474473635016783827002661572012541834106149772630373802752145803906410058384797728900707979771241116402322463792535324699341205310701277756245278157176188991107861941017697069424418351268036064325536164665079908884190057892634828589354837114438486303388514773049890110847343609292012313161773369502860414825474572214935583666670225205443203910893065323911340907348085253177011734508897338251535600608461689297921717050333392713810247598203865277270865190280599703784457654383051471143521610986422061701345894900513983581325768999310097388542290519305073477393566927779454651533568617628337931330117522948894390704936103216003197028131628716505619786186380767038441511627191590786918636948607748755037640971217555556817542503605657272102737254762923987174726512570729423778539239055103111114534019821009225402928335599762059357922906481544098894981734337851557800505357254851588395255131143146793274840226523615580030356057640221540448135792360556908241651393808989367129158761429602535066991121084017164668847080206706048250674298973208421469378443287372623341924418058555104697663390045403564603834883829558636091630482148416190862739583220705108057586026389840727682686244064440180594183345698412334560529298443279408181504642228628860669706673088706199104106381236451762360094032575484474544429871970612058152466049642602462591270467661808024457016288343846663996355836520279505513345827850492091327946911756440296051876561428021562852446161484797114093305019413998409433588824582107428779679813708852459020975419097597905274805764096873880931914241298875252691224646442575695891820943040849152257714238969079716323609827412952844422615901846875512749030707817405346425638955714922622104371491344880246633486314559134254433255032405293137572172294158237227437387878391987992345141967112267939477121381484480256939401136281737246623159161036237583906510303068162851840308845506019042614895287437167898664238287675809759625817145716263746625210601958772746424684336768992945859843188633275639098442464503971418147938671785436574676563718522014089935970703869448677261912436505664760601163213339018371187505955023864242805097219964305246583998821530991540360792219189720028977395518951724477632074287742820316484606988752768355971183608967284042426703079579104538055364636319352721950518865316214336179084025624770192764327345731045033435365820654068670639977328254460679299972711430704249383996217476283612920649382007430957927456081483800231730843153543493568019977650551967140542319639792022350430976377564549373232731587141611373893591930155420461032346000443662275868870865404198455778500272844455603467157269292769491509094001944125862243484267219204800858880283986449753268251432463360780433489877266228382238626589505792390469366992249530998826280740188947564368259643903301507198997523733661706238400002499688049800097815572648357361285500599677921248531894460555499184299054398745253775005930641354097896492667820539986862603543399692117435681067429002889817905856629187294292345662761959563713683617270165062532526082658778113068869436186912092391664960630371468769705349636537692900405110738336731849296474345839769294571139664769475442286302330641072036368709011289999460790698391380735994132379566756421737602969114029252279205333564291388187992577799648586956245366751980149280040403833219580718033350637599031464516656568374338668643256945419672470445468737470161375599918302608401117593179730291550915369086494793406096318523264735302764096301601223202366901919868249255967946233529101057309146653783988319968236860282743963631272321867632366028221365160547591819411104634270551160350169127839631392999699523825329783403815811641321663678112620057991181664712060510593576764330300261122391604717309206715543653607767505938519192768035511636798517110126610639347281317741644005601721433334819558663671890228451640750271376168020162554532146191062671225156620375623656113445602462049181030034543652900554664525675886527525120069547745015254219753442963748023037660049213134298252039201467417787907451749346906034594385719391810195912044716733112403628610065499393813201876174121755482851815194799116354985169939343299676138919506777982314668473432310134229979199983617194685436768222908232734664205074281295339730104613741100252932452292852673836636185514665271574668355795158953544506457831540782219293021725711422949424083947680317355659479623355821537692835831556729219769756621942607050014045740165194471606712932782892967938436500009260047829625962329198345083063135295978776366652796247049317442785262710779529635588271958366292887009624805852822863302304114001661831754592553423653748550175210196246692380481587613694512906420959567621702003360700412873830124222136838708196254451234263178060380827691124516362298856172973145237159910837514375186684788505397727110643970961511329851522732744920929147037131928342895989004762987083401842248157443449326496890311350165418715993665486168895444294740376224264750981074235219672829437872136964179649981864801034230002093717514772225531822349720184474072338206398962536334590430392487610296370359554070974388724619377251637406320603925920996202643347865717080074198300363368562115003112624437791820864724374280862580059865320521459712366129089219139767519029011378357431425169305408822196204388645344733224782658248362645392446274101666494517019257211375737868687179020990638755072369432577149469204526467453732249712634164780227902724504852180920503021132467281035852917053415089182917135682146584403072844135751317070075818630744779865719792207551608344838673029134479783215662275721816211156838663322148531267255338084960588288645587385107962930290985414649332378124245594993863215912264287754998217971007601543994523527112279147879678189332224934702610369681224349313250704925301944756706193916226490035540544828259997205936626018341016632216896191230619679224730668241654952668990713994228448143117531147752117033581482283201039731783626087961124715619243478083497327956915254340065923109824812322765791817692033474739371417151457254731279946228106063944110694391242066520283506406229001941176635427572641475866802021470146498630378738347143929107226936448126142515178631720166588698424800128865130369202569073505126167911506300394967939099626356646259935299860736008423222507752227570645256778865735392790930847204551199064827787904265956149708779667867470570781727581425133355231469586257662822246571939655646846521504062551316023275835449571487441107015255410378011069425930778049240289211541105298212890302080769980600344612380116309323456360142902350638358984718800591817968814037980901374648240635356424410543232503015575706393875497314983323362688218371410366013161719255308371955108553295446630907552065195191440740249601121691321983823110895211071271072844578313400050139328516876549813891541889767883028869627612886446444109279213265590131286686940808325780595125424778357849562105623870813243313577802849217406299554863274912841482576869496606032167359568979463647617906359892481259637198827824950903094421109894375523341253626065020592500291915130454773927436418901075007285532910329606009308921953405494213183997856216409668464385996640291792420798231532930257331067880335531398618111415133704929135129701645638744884214362143620176584347476265784096446243498574924635712274289168220254726180546378399731850216967726714526555421452442946591278202106458783708715973259955838985988518618572611380345622292651626711154464002376085696590915020893290059524338795409650799901462558179221732409596925538051556590827611985275986583270928091548367162409778215859282905351347351755726541274056384939903760509696184805339904972963754595545844425364732175915077042026380057442477566340181561220668620399990098017089666316183758918482837689147932081239596770391552842804337547858550287900586164705031866207490862269363543867569110069374520835543465632085746628126514232494612536058580910344473876781668917462971407592351808672090168892958640477654801313064766169605582905808133580400044974317153566997947015868441817564694483698071018994010032414854944028070841909278343597208327033779461334315485346819867040351918214255349961634972381899672842026798648891643371673002416038030037698876281924255432713356168236700059332838405196650868386447001295594222683424433623190384318477098587524308451322363541757336191988243303861869135245089326767898194622884212020457067645609640565682331147699308135245701991528876858946634050302974271071021565592982507021340502660113419398617746462253083304373133127217302509272269871337277788009065876494618902863926231812436804859617744579277160946652147355576455007253686085928305355769631930994237263682479835071467943185187236382882196022656422716602051158321668138820553038030368227017753014222879623690780154718326788879771987107292457096039547726562582736700699007358711061047534329042985820624118695924924026849641212963107089348366573542250806065384330986191662058939545245318915132831378236049663449923924108035492435251111905417062633483559528831298622339922723839465431288643042314372815286237449669449939219245987276072526148923760117279286236820332553401559772775534430148398732932669680677482721892142526614264897473573055003810337356303173278578854181648796925673712789924761877875306396274584384646652287149423647968264672556058611041893408486241397475601066324659220742507440482368591291496179990185662768329858998654532707602576820691479473462881845983548452258349049206979985109825643104164893595374567226356793809667008057890152172694964987758127461926788775083596121755968896681780550530376391637931857474779012241494766476157784967799517456675345477866084222197481919174544545771734975063127519337541761946316791940814364838019324838131930180611163982203873881556710166352301716809967867641690605146068831952875465859753296998035626626520740378434243881992688015173167120029024101826055007341907516366161309195819550035936984479097281893848398805177968988339850126849646201530091978105519200560880206190143021604907832539837122500724278331685682939308035766739568315880495835506153978994284049093679319621894041990756263219861684983652613632041834963070004500384470263063916550546244442048752437513250866802415888667877792558877020543286634493375806091459532479471968997633067398143059610487295591163235022959018723966094242571076039221566146371233231838351185504486301469111637156101648725399026508729500709091637373831645954600405634961020663044633616300059023538632815539514750941434776009644955519479359596231916331692381366444835246465424584002472965589653700285723937607658626490051840238081470222211503662250763078969050018239652989255069338994586842447051051232765821054228129476029718909210208130120390006391023781818342673728661725788103417433179896714744123697101703086895574294245522989993918513715446795640465110105802976628590864294421195511998872304313681731766164213186500363913383235109880629720361622745918820938594667235183562503498175295263218130049795375411430188037979267988660765533418761439948475175375235635434304872693723105810704017285124948569301767469553655993955990536465961242139805686302067462032918862816811493680047460804101719719609164159120214627353370275652020080724649415915673563699027170372642423043162494301892592555856123118534905949788932500808452548514136186436066579734764561256276643231289845440805747134384304289646716436879229293498640447093135907373560167509407000936691628515558113008827962423272493846556891658529980863758163556702751331471273371245876249460080161084688289888417715247415314697293500519044758439091620891941155792633307859026407214196537218679889981067626348271556998974970140667279557256799970177120843726044131699828566468849671515305696093767773668524443747435090576738300188441221407868954728476885278304876988185025936116090158579572205911535360738551446183632507514427870020908815194869313697129025185246904301183976598955203200696056727013971538967666415658328457916355236867915344466370716773000021578091123820209620218153111186426474001861827912312917337461867824675755925073980311813548411392453876689328248569766451511488680068591606566636123027838920034325294489292803547743252753057422789782596084029418373765560635564674087717942992597052004163284440954954518497317120957499756832533771945645734188163621249616234904560711909686080590307098833727038808131098734111216548156854700353051747983875208102277703873295554098368173857295954260399921981430430618471511386180268097610197070742769306362160672524719443882675427030877077266541429486891752994871182558193096875566032109094044040752046931185904331012788974938134794635190173594792934656215656068424392777634584893647663223236867848030264786277195422223790932687007512827614607121816685358466800363567408588245110146327995324522063203223165890365143759552304920812753750414194272225327034903226966426312500126218770768553816196759946648635091533753028476678789676522152858140420491913715191785918308816809670701860760443515883954949616030073340938848776513436419151292648432293947441022906618335959293348246837545483402592459819444664003112314790864103126580251819268972741529720380190618738818868017973876105929873123566542252211230437088247314537848412266418805821849773457512868157896067222027854091940599726128290098246146067331969833913772308021228987157701582061121483943773574727399499375377088157202126137782185232032204194514034035876595039442237744152989909863062515883607866275753495459191940861067610432904597083839146731511775390914093863480985046737480055439100188587636256121228193796023492952568264141824032343141659736324522469461080569147308806479805039368667474817421564040073739999848790479006430894022185918623331471238375801599903377636573514804978436492427670066852522840787273987249386552813280473274249266184991020540423508105914684057671471857208100134322357759464106113992023260640776456834450571888872910854974708317975306827679439676049766438202351918121760023866474100768633123326971003353298522261866958231669972838512148863732869531596393998646583838432163960115188481280609242528242863044622682598388953216815701529750796122637355832903356082851740886153883720730315367034470433798173884474574308189223080457060188957605276532438991125271582044054535862930359596283946795743464905295601571481827642334130654792669570658399632547594025986230446323565287903953855989516584791511547632947579867016613322817571342469065954225936894888029495331792128092371650965496815713951996003630198173643071963959200268414687127801883457125737093385080962386742565315157810313865717062827824397609660385015048856508579258936357983993731796057747749764902050221480567647167854174428034039543670144011474734466214737253005077936982429697499055305894314479020232907360942925025443756695263715150642354094248944823744472592171573952481565170919674348935199356226372420788771081472227959735525526391473960821650145125524912757579812293754145394395388154334024044727738793739958359197807915690454952423719435097209326374858390093030718550241781362766132698963840169554925755005816193279011278622166336686189958935240838087188508156293867388218007554886901929101097005430072455331993691745955819748811649309609437743677431110162833119934997113298732747345219933360863982737123836388728734925560862093210168335067824272708122343643046796490609702901398881587645487023790539365426071403627519989496214413042494401189182519239486398569331342773678661798404389817495832258534767716572993317707769934078525981401419131424829497354743223395808753414632084249022739085778473146686637477621619623528134067128872888272409320925881494760028982953565898572892843227504257545704024593398976884668844050822197265408471296442222376069034493088394227662417120423742298282016546696065936504429250273396647424221786802630231076442257684419891019771604103491093155621964140726477388797181161828664982350243456834943895687235589645664254772808952841589595781228318491749707089390883598357956819701424072073660711225465713146272231757051816259122402518718100020228184249785743649087703873498326084784802334587206725645196131164786634038830743602460487404387779355849950254284060117995146943787976563202530032097243971332694786070398036242364114312329377299609470175787973969337481453046594928748597902823125850634326212429086008164638369594085199519995192558933519183402221250154884106959314412198099801779984008365053083393014228198041920159258569523661981282025922937741168553875432690936142135916459007017107017803089435545003285862590136644543892814380916285058334513746512896064240029163460299230126155891225426992645657639636187754053159088943068284881053174439794712421764410038359443964012913620545635621370818962338478861127032215836305377557268884549671235504231173404869570260716570984779880741956515232545624034787371408331524360169831493688320963730118780949014473248454469502509128083255276237322892076856726010866206726468478882308338989625531553091694972882829756215992313535063203379729100187496333882109287486109989434296661342570384338974075969112239086749121068919911399842640203325349807204630304908414351957445714642570986627108482729620144926044666219184845357917329485394447083272371461543985210886553404825883584698323269673571853356760935201626223734808166320169903233633349034868038393582601726714210368546127472780879175137264519299391943732972240668359679866714619549643595257160774469072508385384576740969907744910776514085150229274355191899266985549367401083192931659951094723738211520012314362981536837410484901419860361344342988394619855095230081883167175348349888320004967274121612906044846464111879691791746656543098329661945638607948258610038083643928458332675958810883651956536816048659670680455623332084238762063918567189528680288775820435893699160864753545672307526155701280032974743819697269804802492616747990665083959576418567647145613084651203658642690611151092736314050854477096230772683736937027825964035167493099011001527962993276347958952017760922452926450382107274901723702762440725291983061348633663450185522790159723374259048232321886228156442407598418466550757740663614935777172126111505188826531988009170818625191397910591897156503147875878043840360065870564382249185223520279804499729753745873429915494193404055498987970747855209795299100467626491281481746524872142639455464371209697295593690877328294120852874462085588946381618646610986137523115860676483716377432382278801316687966673904450862115826356439402662823460579637972078636358483930395273963330449536138849810047447754757537505587048055213634966805481870410616569354438790380074332996417709511873724135772461840235733200669250906214625153030013513173561012272773526557248925279292471481984468075181501104323082142233363985711304658471308542866141239688284180624337507567101388165498527804895802762259512746585990714430131127407713336281876042003219104928108065108439683105078761973982841346410982396814323375656647259284926673616456277868655745318393812257074189840960674511069015161551808170440613177617729529692778251747454883103621999311013530098733671492201422921748974692269826631136144323417800768021441367013874879049474387904058814908054832179072012567044528997819075171325786286885689253290666434523618018309469454039521942033841758901823518812198050089884600359616026821683805510603887028913067343416424120421274528364288725850444541535080424070996117472852925596781191766473742955723387709659443672479994408399529074238648848740648985254668415124349636092958558945391647314943698369067562836050334927768628792522284176946052884725153952716843362168053298819769034753054387959568205477786410789659874446997764153612811090684553852531195192014758890425863474729581895208001498025927944874138665030099693905083613960559467467068637845423965726903838562384838792429739339722452979289599885757765206993284345018074168469730642189293215336989890302361910023652384342023066887709056705557038237208460116412437065791998527994812214443532468407219494200973021244606589344834956215524340182107317692349932709935473805388471150279318842782028050417097203293165838415537202224541220242626162383640657671033590504755065647118486766714092777064860565272375078310782266135995306916822543712661574707169697440218512069452696240606830011501036465446456175972574314594660893134122347000222476954130105274854084888118474978190612109949617291119448797457440233802590264854295943826349485207612946162930615902408488609662128418764317387086606655947967540142747294026425680584559212694299508708290365934181487643118308535373759211204111335052467826526495107494641023313415674874066869550585638893877436274632197825116664702710998405186764310237508908596752772896937725000472884786723039734912898032406057039057651083492966665530915389997466079297662298547837030899138424107982276364331485915550777716337050610879614482262009856373013713250599415726987564657789689298582399442868066639752621208553196881283025346492159429316485319396660342039743209569499008557300449189889348033399171612904021567164448164405906575945969432317608046826086679257816562140958601429527944202940205257238469676636073909360050902666849103256959964635511228197072965346955855688199404662081804108506036725263554576390345268530941090554116739068350651875055797589944798316902550265170697485972550277993214696944693208090567189531881273033205701572614898959105048231233623328723945149347976424479652444120630074727388973381852665800155618022874080010112702966611100580782121751380452950264699482827545453063268490440192205137828076654900741193846745196998928961447753547156363860191058132331633433963841906289790375818431936988176344305829585170886737732129776209416672252460283204590974815688976583240214415870246410002458657641030782776557678621855176585075880997088279564878386383555381454270803576388568936193699137187047851359270716588519604548388473462346457462224798699553155992856331694402700099425553439606403599193163321082950328210715544853289891926453546070350011545737605546111130248997206879844960094398606522847319885196588394136025477029119999939655553928496964703349431176756579975376611838020486256937262112571000352307413328789433259697564007016334995352501104469458890263063391920922186312708118770756041526124259158339822719230054506675201957457176761137341200064188789396165939163203084153571305027184382215943416285870978748522983369284051911689855568764164053535130516393628702179660389510100536552713543456116621837444377932107078478042590649657480022577442336291071326105650248068015157832177427355569854097127972362696182065246388594727489637401645799383668633562292065775672012043763796668720721257217997614398844316308464121316707519422846708084214161598872689379234668828735065019135483396440284228965101585102901476666655488690985641027049971006020318590625959753294769616343179365509518577908772359220868073906983717231100990437791365305571944616266751070248611061658185209298293650484149384055705087800393806061290226962628382548397528188800713585607751186027752370734630111575296856289713986769704391080767391555326854137183805178419707288299508082469356024487303132829880564801064994472033566320864101081366669507612150138225681293300082738877103369926369343571696318271514536093832407997992304095106482379919632497347602935254999064282625878418219208790678922476303218813844858792653200018702402537533190444271273012202591420516071412849144066195267738576603965841696215934443916748627699486035420780859913484169433425524560949202031544942128471313466325756680700293493466846127262965759402653018188829033222935764674444277091685926022731538358630540334159724747467183880100079273659389504201132561932882218676978913200840705340365725373423361614681970742568920416480540416326296660224573347905180699513011167689631886717209358003835354005875503564652419739394226299053898663729964073754493537130995385309780657644331157021500778411789619209516680138136998661781815886725316855006353668908400270002659887751121058126383875193215272296779189532672652772556781290523695341848650909575809233566647281297931734153961807663521927167195009901324403551621243419286330474520402035206594185801121432333971238863077865115334315446665425828898726251198761291993328366631231968842676012664120837851058933810755283008256678734380558490531048440514207135300511823744054308597807426972943188849326454225357764019965376046829275664549178204022071585742793634549787510418857581482619117525339148255441060809895636522610939689531708375238212778260337653323703244088863894539195038684470627642971632616995723835889364192036302840899854396114625186440202805922284245826063127120037578871907784239160124581716250634828929190514040098916111747106182711206485273837419918812995248005504400032143111177513814308505132635326726349125631082126688630035093802886220929309914151655624670486540750571223932298858925165075763579110123906343833795365162749311058401692484139868250653533292534747788217035565563055116709550127161581319204387864905933356965192281945093241231158820263064785587377725021949777474871696365983553853140179336862844106458855608755838828331344926761514843670923611281749626566447029778589632747385788061861006434920646511089965237063260308898901132188057977869483561655227079240517849968363594069662147236774794816908831206464565851851169419095525470563158419266968530152129250006969063838933963290012477041929556276383306676932622020943181216272814592812472661568251837012709752107464294965858123431825507145089197072172835122352464364761858908942642828284873335126183666220258861494739206553738291067746180381965406511157847287333211840434743700930990972033663887920221359759178939697345642055166737120685999152116510934207344262493763012642176289559081996576350351702288410258057186180320647673162292893652204999791472173473872853856920691211876882154340224887826032807162163286978453390122625918103611677618994379612039037943716651062541185270300115603038951480140089517961404398398902269252321328973528075776022531100913320423650588465988330606487439556564594645687373476596063685768166935311154683007856095524760270099683488986435794660596596760251521809651409354878780137750260910423942485599256033810375336198243408479635267274661171409681596509024039925709489555427263362594057230865450483587994345994001785929494305956674531737372530754539136468847284920930473982972172769205324409350904796087075294531370788909991669047132045975071098878243802686100801231258921302501168562735343046243266607197994216714318676708119633495648962641627226781257990575649712045586129590041907083921763020128385611008251990491130078341729266981017971089838804189050536596199025950734421113357502886905027977474656237455974924648596182442551573333084938677329000072348159474749570496248078317174140500632405324424494701355390505743590050041232063275880397120578648812875157815266523488892004294545822095826658164488245177413779235683719271674575519628704797239341767302082333926869435378599586831271683289164793390477386511876311912669507676902752082035606102549339461532793411113311157550354326106834628393058956137570141692951782448181876490382112151673627989836101906159865936433285581863229860849648314810588593383828900554900500561227295744588614304897700243056950669873239827796356288503445549776366699887056594098126962330118245854316203166822794083868005232104086138459384105263189353536005633790819731474613687340825279841210535510227099099062281124912684732139835319745997041245034516679076517123701227164901082703008487344618989669496183680721723404903859684992104556685986785277410261090518061152425509282762250723913212617219944019555765748520178928912397494918255306779989037298544141096322969379588845018823352120394801126995543729100625233730466503453642807044718530408514309819973299947741350850613706524802490063043793621351691402002239728938577216570014162142334300773425113862605692691200465514214467154390450492669756517939606011075850358331296435590605924048083291636770633641684604168417641310999538708300855890401991762844237849626728426001923236635065027630044435474889469687943447198623035120096126838042077538838574583306606513913246762968865473871175692460375364632117474404129896389570695544835812932491929290962378237342727441056064829376271376068304097936090558263879559488447530505411457314980228559622356998525334652163691862554268796789680659757788341390108839449988899258001628835180489608013851833043348827259067810030971778783870133606733356303253959195719016014241985660539674325130212587851480325943159590250855671026604940122101606936228447171314702461081962148096616004753942081241485242210548076416187330632177197027742704441376177394962995911487762225753687742141133041293809474458150036530125129247919145688094682639976270642143740369396763881522467277964302747927896318423861654013915057778410571136070159010675730630463370458484155717919201026041928338593239403902963449161861093973790982113391076127458964164952079974687256524149943056908739082000324161429537814919921061715036450848321126479664792409690025585018223841158092814093632466372418150797428199676159615111976854145250742143990007512354227320182465243465232132600231003662866535234481396019818796721423227790610632385890959544110189268584019241586242988657207381808272825658518517428043503006113237066108497038961650110289713233098002700750341513788694974750160439891443756984037425052135182273373354238553498267890552398120095645775433895796806742155134348911513706741840212260896716522754928705024440781977078745854184605418458224610048782792757465356540633380328596704674242709625991123740339055517800372181978233277064030349988035200402329341457369036326070639150111582453346610326546362559254329684114135680243670918867862242323100235007835851723825702557228623312356033438431459884603622143217502862990013337246304205650708706283586150179682247651615243319954578140303750131744492212259786431494307427361060091075984965117303228029142992213624296452778187799721062803809440077954192031898968241344200217379859023184805425121391403096161939585410848858847912515509834594002314273751049789003466783473991647161647637874236010635365765022858645700920485460752170179383886611463277522520130127436449030753993121341461922907823209475363760716151825426881662199818472004950536006598515439476572394096120040999024106395919056483408418654935396438298636189631732890662561282038662622639032627393895782909711289819513234156017799824077618469757888656498023479092706683358116492265966335269318283120669631498733876031250821393023560947648683890041182655312789460975412405328883518071882339039104566439970610101272227896272276947809473516968044445379613597390349435089302354088768223640395157442728464798216922990897638666466065537326194860728628993834347441863556893490807402143416199672862751081025886572955470998380083665973770170708650504666505450644343028006084901020163766853094960171754069298734883444128068469177184293816180992555414277805898269596062175462319737293377292089271491630827957642137691489213543441853673897657485344961755333748137621262177301588003869786562055129631791822374229772900588705409829207698607436419349433658236757818216567190464680157934899260824072443224229185829843960487803389177635914305807681192466247187158370465780510812069939312715281115412335057593720681555899788081005483958681961823650516270197918527118539475307787622119262119614936562740369560843272954240511561853637328656028004837896785991179767719265740748272695189307724323427848531481416826771493779513410247555606594289848525240711820908852010827221473139528904506127387183186461271813400550782956870080991428058646933024566230260971659642744969893049087223055006435511481670685810171812613190561515125929869038791559300030039698714127712671023240107173380319740925368238202885571730921920979373218352102145739067512026750437855146045897550806084265368680220743975361396395420515634693442026474350059541281206354559978270444343107473953411643959545170419938274129990722399299018177459767236685837389940909075931765277963850225197218624906535304362242372644503112975356451903565097001231139416724229565234111693528864329795434010877602597214363625577878907635559247604770148843994443525187985745299897371046100757007990119014656038961446914920554677536505654295757387205894434546435466844502994671508604905853124768240494795512826662146698339484334204657743338750247045158250290346101211759300780920845864353806919857994392856659153190301979435140411776170044267062822905055957260657151811470987567632489729621151289925997594509708787357806912005480612591735717736929874292039771042828524177509023191910722094527550416923135070100217282408321316936948356619811960842776877123985378560023962241114623108234502408987161124267060086586453857467140402240643362094719801322852635485071326015910231624520902567991759297849962078480163547743946774144160533649846744081847722768377217324364429709569168998271994820152899032140535175762903019501764497173287385618727497640917066401245265083830204969118949079433587255738322001698546375218804832330290636217618609862187528521217313068068727582904241620377379502091321641763565737670524284935993772857575058519596477209164043932263337594769160291182210320274701707775194591893556111883903485587130505201633977311776876393472452460009554453363404721291790302596398532215944011838141834893643284636793357595038817257788715601922070620527999400599474315855806785777915235777596321403902441057847430465548422864952315584426574001795950532611184320736646087934954583473446039624961183224120429977350180699897590360039486760569999467955225791358793600922933110127174407337338123095719626693701351981822530602242161428914683929938196873982824166690407370654386212432613730410520981199441427243336037325266168209074806774693187120079437537601204989425895851043654038391368753898522985527596977928825939909561170842672861925612264991229073953937173622672911174424890582823179882155961684374049953733881598362845147063497848704632631652233671479776893594268166264427850589399144956511710561670159441809527827436775910992012970271954867387196473169093557740509186040407321797385966797489805121291472166225004427777248791442514357451291173849627940765579279723748108206046361812543350644239396937716650700232734006690244718949096706418299187743852600126381084577495450425398690863506304884762075479623668791779526975407975825194619333858409709339876380944587020294594804461162910836095596219089879119008401243316794783168248304470372680948212365465665013375834238933583556704801486532997024545733607430222315420660778771842895390664679492130210852281908346124936457310745498755839730460024570819048159622146428846155075501162397312669729690710020878599705897579636539716967333772753743883842292975327246515840105188601606284707521188744546414459362300239843748834496093845702715566709339429662181359648485464100303335310574200973169304995407920111253639142432955082211997919936093481270717445435879155675336805671005251979090504159873375056045010398079989599085361998934068610991291070387450919600080798638442075129212311206628950376707790986275023267338489702983222598523935163755013898874009572768002786235211939694907821660427180122829996106884408025890441878077572355756808422264994347186397135382275688585328768623701221340218469075432133468532748637742141705320458056684962988578287355426719377769902668136743606698727447000883926039525725485114638880107827404629335522547173133787167842397561312691144376935727966367768160968670583612548476809517993049242045112702294456200039738043891655031442131160722457019196570730207061714238385697229107633482089998207471549187700714005278228606224615710997001582710171548375856929070275923573650628248020743852483139796287605616722521103019075325770612768465728876804208676641681880319391684402268368327513487890660110557803737311493686737896555446976593892977878473526869836783314446357133032193536845344519358832815640892816943659994445053484276152710214000083583610168591586228774636449861972355697177723179773779748247518888853484543149877283514638517250850530434706656625379064600133059395649746569715630792303931372631274488300598999898100796957043059447763667895357418779322383677995635687934201562327469922120617750587319557417075770695603313459661252804468142810090492857590937587844818886072187793318611861726005528608881729491683362816808190082383871166098767307099688909104814840119196659541699287398185000158093885261421342998026944947082564142801237328942381054226764202851947838653692250339181608109478864227962793313763956222308079260267259431829620292588387995212178048343244836699049760945006675875037981384080580128549775556099150014499710662561302440257299705224125283196127771361431316178935443785717363617076091459434379625354928194793220414825426832925678651227253246459621148281395827278315648257643668012012408703597994457981110423221473265289445905025559872894779494974574076387376009345505966938245411946860167372398626604537561101365011038621449065855687851591082253722968136080879087216991819136005256307429920366793037809908617911078600047191812976925779283856757352093155102341458914046056210643662715386861168654397662291980553167819365435847506205630049834405784118293138233538648313658998716766393995384980991665317012212990443157987753140244114448993411827503659395441340454403707529125041945765135959445834524252980346083765287037260235143700652265714047938918104007068822011298246645457117453215367814522637159303413678629533373916429742737579471742995855279474666609429299391229584476945270911764813041324204670252397405328466205379312675867021639978997968075008760321574067043174438708273261127909982823389667185801747105104252069488059292344106572893282311433260128679036534445008692341766783208973576888210081053621153957567100711445251510268288344227245991296771891493281329515789868918262173247305733723879892462883897616185166955595355596342216917125194632285159923423949817107358431829163554622634345633442035772900787244040363033479513220242420468137220477129948239449291501394769227389983758529680283180464976552224117091916810241551340936760240593978961847949395578655307752069099199273386195982739784340094018021034511452470631111049437663266749591962113965766401709391772399697283324465884267475446255417923623137753069286258206845695939171835715498388302943322128687222689559218044638029144433574842823332906028676891155500972068883524359889065270065660648383816556697343487032185993587215338168256310348112374773751567951783903495530528860288114645114096953238330486091447523341768955585576349195680772935430019781841511420743743137321364252388292931469689275662386290524908285285704772696694699479187007565896915221690099921426621735395407776144129548803358396184933893247473095931429862157667666323038165884867783202709108778505354219198514658905828136752759502593908242988527348256186072294969254669831937422328776937438839995050750594041047202401289296715878144599352176153336138863078836244882080290438598651579349365495016094484189677446069094596241430435099030981051946217505173610608962726905519020853138781113285232912105309694784413196610500180638589263215594184792968107735697983628201337998523445429427260911954836675763277080331937843043454195022762346973208768111997870533724193050536087242264796932393834028038643029531615292071818575536565689556047021314265853131912729351685556969373436628797477082126302360870641458520410861584659855877191276742576744026948378994777950916376505097204744167502109767851067610221808470270364543527056104899841465649077078841283672268054321095241302189769584928225966558916507570779591676454252033714768557905755452883971658133862751596062482767877175992626274542038987222071018107527972853275846229076646764186552129025622680812571564107032894597137075328219202457502359968954155904554749035813807658339679687377931120053556079527885366285886192724861407197285552093791085150214761988798677928486355090001139082787892601376993392430059359123389918164988408503264973438729106058277237419704277312915760722090161207840675456561879423826187840119793689643765262024535739672007948060910373874473332049959015412261527650606089375539245023215197302999444844452441907462469103324696623974343404321482627106824321928276345803389398651458287911466474938966504658580067843663746189552249134795648860141596858525139948534291319757530564533157431882891644780002778649204847855091628032926914849115557071283434954379028805606371669135650728966651879477805677516966550475616212147048787523605343535584587212813705109809762535527604249570716749157116410509136845526586261424424578587049906620717699115760104368486370432208680244947088976322258480570154456865410246050573308920750127747839351088433460841828898356169509337542640994835993152421631300583439341836224208422839195299389968710553558427861269969629834223446097687308602805102283628708914357605724260296076510226609014631137849146043039783154955803180430537287887341603561593805697845327297665322678110404202234612695545422608829720390924037630437518625546375920857046436912741315463468160178417248076773720162886185858847171680045701908837051589439575807964156290089012043908738357813017600829455147445760806572229845342935982527242535662260361709846342799905485569421912806677622237668003109618275444831767567292734384137407378194673142255302478912923188557943610367168311068130386345122670651463737248335302993283705307198169817588652309990261828848784988499962664623437686375559855365742365367823523763336180483354413291808923592063347807230733581259514611721278082739684789732640743272493766775722541115378406216169518167967327197577307781716857612829562933305547567622726264248537346074221179753313065832200402698834059747634581086265031319658920103779979004124887487349740337199653043717996289184897398905637971071053067512628483733778153221921363812425605511010119666853140508215459082034462429632108492965520921490451537831946071379042724426981847772049371221343375153719607500107846199475490253892196903719129535318392373640070488037561464017809181897771050029284571953964027546127278574321741672161361638042594022897543170161790718246452925349355808813772083260906400407077003050347398092504233856639455544164473304371996724788220382715902897199388601850659186677821949205607616919693423008780927378360151921487941730582060914066954450980861086209866827684962329640454796353527737548714558635237085532459711178163301529696777484433073275925038902389249286208722985224227343107342351829815909201682487795781177921806291111111233034354662887716439655185029497650914185576153580179640193506185084693986048934430452211112892617493374250493430942292434574695066020638485389350924322895382491008796452543167539518469261903214764939815607870675046145173887068453132681095552174452216413690062003057965558664728122362038146816476828907277334205237443729522500083839008721426622272178805657476757082354360507156145527357616497167602789782238738338548385280350552385715232653075962058445616350023509366587037734112135584455158990821188195072145209404584018693420654576713589848578450610407331082073469439735399375052025143114603323613041914100024559584142796087220312014980188203221288042762646103873323172153173309091151796783608368792855746939517531446062778711554066848707358253081410168028720024190952132941842695776911659032286557252924267180401454930345544135419682310119017999669477177129604767375088024665334907171799720280456677636996968627071304342377649533274979017992808654550591152180994638605473200141850753138553068710728946187502490282022006397713050387095517991084609813799316267447866870880538032888374809123776442967080118120626403318706046645738724168146339775461642531491198567260330030099510701050581654756022294933932560569526084236103448615917240323969821101452248991254890710411903305996549992093504322360438291387684880325420942293787360322266500507960511050141466777247404769296857938896081533018796395613316339812810584583692944865879804152558262415868783729317780338249874161760335450880924918738497438081846054469809393350136553613589068189079473005687117648457872402751187477918425549096266401477651093172816090567459012657989326814844868252859214801830864376253089112445712855842562511730946390010571337131155976392022460550785614761631173989871880178125146599032284829776057630616909023968927371495037721529843712155159637541976738165775681216324125889668931850201969961771088141062717929930835749188629246741805303554632495057932200566747146150134067363678830142522564844650245297161035976879989627445184769644330313430169491015383091090093106067096962150455136079474180600990282442069574582455716212390142592957681289146767214944006586427784167886879532039432482012128133306229622700710906208927880957927702218559937210885586118296375706511662057300812210524348449256204793084737274723010021617910708129605696332987805406978736138362199723789420707033523394290461324480331737580980921315888927353677425487237147504103254868685536774165695203058822574683128275249280468461815097554311103160755712106540863171320873059347846081754259038497092690223280546672810851043878131057495306126600484528921480687914467848170391198778614914663579331436691615359537693099930528383404674357556675236647751311398095865772508652221921321024409315827233351291203997569442277473711249623197224281221434839251789433046717568763679760134506583937283943545830820547591780055695635693764122714482018933918522977146329578439309221688805923793503797678303218981647390098015543160106750755407830171345169683496251875734778639842471224521575723519554689042867547195878087880182144531852820037486765392015908014878873464959073375770249423383877728950059862642401838081103866524392802517871716499380850505954946032175226097722189143198635048407785662214458883839661528991665232084613692081228293702047523472821189488240340601536858958209218779332154111941540291891026901362736092599156837161464750661965882598034670196380759354324103006548517550636172248424748084030926926146620016309087262424640852498491125767932780018238574665343546774861587312550321041979598030881118495229264546256599825295227457559341858839247257869437506448990716083328685512900420240671515988246054852309283336488677560354332586274309685737000382883432141145166508382042726648713395924043689087001377789964170056337013776437842863828335802428970697231312923235536224823262746724684298188798900183008295005933114022333843868580792386194589767363939083382229086422264240872492451933500967146596941568927161744378134794130939849867071204519429208700593658980705763524645436191572282747518370030347912130812496311836965721765875556392685220149627204979492415309894202717478270665780715991589021602538896990867701816879017894552648157767725001208025920633075661396937905003999743387966135598019223108613336783748923446835174869088330156203695798139883023281128840533707394781006795984021107326048526747120031204704230689283815003035512955769101314093493824152560084064287135171876328346764766748188213372914121845606374567102071403213815774356430529927276751927655410216785812132707541494179562134771105140876791715779467975024186953879366034953529468713864625932493803123211520481150086425995646482203496071279822284048236940299609269324165700999024045910028913614397521370900240536182555266894114613294638564362012093908869696496061247588228483334454368312532717703019738356277850425676533842975421647210117963100389715558969144552688159510288134062700963906481471098105965941222503945390905907013674855551441188181351840651358762134782754490383542643241757071922313812098645421716786986291420654135844846051171794280202460100047337927805380246421307461838943400828680885237136445640722715846591027480775551850024764958290796636013327667348237172235053218079548854727163262605467911120690981612944303105225633490531849548263132959049341528813067383067299741333468363228420640552249731833326818088206028846975449842252251474127280022027096591437328853293819967414135795613734591571020348195416911637431328818777721624588200620369749144124814378305832982574689844606335240881724146534479579807017821137872943082081641722851006238701264538981670296540421788087760615351729132384963779126281379162342678160635202724004358032583324126688686870128001808997901116305997271500148556735887960066722306515906199191105737941265825261168121576435167037690965987389403469972112943591278207145702645823641097291410166588677150591581605906567406581911137484837046100902206517427610383674229453735346020241651622723330833722211591273057876560201234720774916006251873309406269350018355538933285965094694927328795495160952213854604047179234850430378363283727422045524443386341471195679489430719384151360040026289476433051685948754944316681093441748812682999620169187385927314693900169375814382608394351188541699055954470423308698495777177915974107250365970179289479690841768644038769232731226156735836265235999551748643807898327038380951772547532538470427566241095216420914783628188451366195597839992816252513175737209311451804778180393392414345400947748530551274556155373518932596758894731643680461130994117077319139424613631644479266875162911670718827243894887060588366501333138386946945970853367827158028372640938036428342971287197411654069240067845641714037748402206104787651416677293203944536894467279203237585366207145556818615730800018107662270730523564065840796966943598800644994632787233814736201602522884288541470017221943141573706676026166779330667577285691969845942354347580550984922568214617673005226892276797626298009609151500492204845164018133020766346984646208658765246479069421242230191273940121801925209475257439918950122723722230879354662733244250000847792186208415298260947185506974177236470033818933955440772885873319127017986828528273060048308428470463535795846438671282161523251931039885133513136004828254723367964654675467925835842629137875963187567030277515457897943319774710271226396532288049612402983985038746803452340576350932321635393424662510323038440792118899782349932482193431512459753193659846748324030758571558470296430637015508580815544184170008373595105706927109622612251486157744051619467673812452874321993385862296931947003202460952897291136867736797350333282586771999963176149085135925391638083140252556143783682762773427851571860578712397216895289023542132521952862019942690984591604477477798187842483027295600185276300820150934099221545886544560466385717884877251048294830021554912344763728542894421096489174859199133662249755353167633422759883578017558991082796972996995589896286414317255434733818129407049645975413834410597370598122626819130058986579127783930453425405144658669226480192875731415711687644399527422497492310749587517392724983282750742931861318519437904610386600680659499559910673463914669417357681652790821246074245216695361579037719894705213027946629847212643250050965225338545578875303110193362523278359237229315029304590789989343933188153333225754164319543270904285583250937324021740760912143720110314425631152672553285952860958743601599545750293559655424243142264803085265090319356426497114724637025383904534888546727739064686518535606246715691554432883172654699587784752703533360082745516483660239450438840722428384707930706136403318100506477166188398123766715367686430975002650559990485598685415268801226264981385882770302438260582106364668223308789985239817398784513659537306092576267236538245412891879072016114338159845166883915859583744346137307733635028625372324121832511518171277315057479760693265991658054180935385404637454462290639774443648970766860637303920313114792509468550669698502099049516053292639488001181939837655191631929241813017131435310674634368353417585395755902529716882045359411787022201396832215619595418451011656236311374650397010741419744259847906741431882142570470957783426973862803019294936444760069514935174016472818670463632398025358753385666633840741106751398902225180610640495864703826249323541486147462833585927468862930447641783942599346613521566851668335150069658570466057854056184914488285610222097711595892840160854454938834952339227597247447001668432866462627280932000463965368885599279234067103602101278290868690921689322887512674676696396124113233731703577684082278680203713343224499303810526533959719181066316797244231651081880373155219996098162705509240006982661672293060004769244231204847512875490553855699776121975286223774242976196719891069922092557855690570162752597565290644077865547643058828689815545640815769717977944809478647941781261856092645141300478058965925017502286428143316592048308000196771618444596814050164249298576643274214325949309370209880646887642456474070983688445605258816942868132192172220434779736351435676669174814461973028033544996915065061627732717557954235731106362906342674272939495190634013255690111854290289403557695135082853887636443574048446330618201284979234355569329523860968735669293957838307423379987088877133639786687793707724564823677774510536101051726138561226046512899521606901972255026814061466032570105799164197269838302088963006560936959901074002932254168376842040062233698714668270073377814343757209120393450150890389348842063001291343587894124345763688737662387867189798006318948580021258963183223280618721133930704188620179325679096104466500447442771075832064373278974302950758103469991037202049634962580494932824158129759211188742715395750239603611902698158100080658210369339946097703851975952015601927404536992769749324774575662096717508447154771511667356301607027207184303955954879954967438792541604735504191773744826701882123453817533173847699980571093821174223064044622900998198974373118853055887554921307042960940651786733232427350656819811380275122600343562134339967051147248419449424201714050151015465906543739880313347470548125664481867253679763988486829645503651951708466642900776441488972348318271341290486543575803319483890478886010863481935107880616943917092241214835157245820467406615109039024393115284151242823881978481561286641181156427751317746780519840520395082281677871679243029637638766628405237250415906658406334813096044212636157618258520714933527259140411417158744662918738025226899770420687120023521620314789595926001733237171880428107039660300384352533660960262497560884735961492440970249280448062602590749482945488975976955749671685231277189952763089977989696850340224005826292679226284645933096884541668896734558855713264827159465522386384433858287926578644534366836999499220104716187662062849616765505474629468417407951124028802821255497812687275133454298385453877504549848483146693525769373880035815167159337652658900611601248354881236150898559690962060644002106640710898618621903730972374288267523285807779798823505717409307172707241656638284973055957082496352406770572970509998208252633498281339121926701701826031412542109454927322054704234274878119300714867785340607236716986863107804138076119879134646950608967337260886944729985673507335700172156938029806444492748655321867178127601877710916208900101478010276907507066362526801180726251832080796914021051847206862683148524105561911590726189604380284912156194907201372272051330810615984399375332924543153366734561937365415110892685808611252589539127718310642349480459174943363388616218620783452825450974392690742684502605645745074746703950498392780131180863227318981678870035080867728900757137023811425376188555683323180564456793350597124686397082821919175883456311943359140468789555735023775373434635531076732205152128680439574182575454591300241869484236268971082321713749895565217753391342916277404312493397790833286024656237513079762385303981664971291565698520042925169686303430110023419508301808966458309411124525706680984374458783757492125991299793425763065980953805808375189913264195586631367933286726036137531264489386488086176756990005612153457667385109480122849567535868243072611847884467325010712005102704972013235323943051175046549007427235952066079341907405497018008247459516743422648633559268300109239333657117706096309571695703269618819876815519687194005322060288454302709636326660057533927787838440184784899765191285536390629386381412295207832523608633694850464765866171784565423405988016299339308486569035253389287347585863126986289813942299324596561052530432355448200151057406458350949709192650433641230023145726829896711010822036258777604523219890155402728280663961791472550901253456567330975012281934084437042349218246471004803300198492955853871516985209307203655775750569710608873046188540342489833012248367172439724860135735143640825992209217745408563324073822359003392537488854528586492115691291771613711553506560946860601505666917886906678219140205240842859618489442682000612790388070613833602110922417927356728589695082723954438811851442161692544226998345994634688602455143439886676318726391356310497119392447620201819841014061617609706782708964628675233372665188984623773814744004007532178340883058892234308212284657842638138163578701728153251746147430045868588209591756486689012253823808335425777618781703589840927943508778613361902808950871903176423989072604046879701579328083828187390950186879826996506215236131662345884685214866268305426400643424549380331758652715545806987499501669968347101895165683481902508176031369141833153469556037672027701682432978409730206464161519453331680964338330390839770574410645282110154448812789004073419617556246567280827409271041013159715894434212294533743364418178162764286540456995496026377524739662878055828436083415463343734894238028791123415184922104436065361638898110648177449603377663485261698954726218232148078403269978754946479468117567706235580425759268205110311992847706595225966676815811373536871918153953016265052150184500898765108480458582294086409379183350532507721888964986550790782563729127483989943437528328911200904908681322868501307473563830358579504716821460439398510042818814149811497544878423393408143799616654183888010586861350404523546179402012421999558168907862668731802773063117473899344974124786910723727048868093476882046086254049089844053454982775437701946108248702507821525351699761500504767331740969967282373854811140458697542174753037937844340682692629515419539381243361597186779906187996287570370659181796498598358138058544125099727611797752097663942881111957145212689930902751120847778414848520233073858429483439616136714125347983083746292041144889379367264378686007466238274407115510879187898952859768431569791941697886169389921801177426370611713587794119758847606531596301207954873336426001175763759155565399074917552312852772290338166863517840047701246489654985743545740301467586036841434516628935590010790315417254979273210057723411168819535298921816109597709963550751843965833266558522803968727035472564085926415903521448967103148854761015154812949591628861157814517175928412793062286513639406932039804654893324609240580332340049949726301917363669269507616519446534116205410903612071869730049820443566929775450515615316623406579570275941755048556839936470245915277971376593746462841583218110825632259271060674564223356942610360211270090278742411254856777305838623118956526531180372926041588107431973782615816618739457299860742144778122006975037102428074012093738694037021265038966247528197571833253411640398634815812659080601925762290168579450399407399635585697690478765033349510919871173751315435139373652197019723105581201538711746680433610131244599957587090518812753188283720695032011635985954548669026672377927832069630304558743088340695964983944602050729043315138289672783266483129506434318593022135860931767506881599016976877216865980610204205213363025041900489331806183525957135676620664532020475495392731265397949232438990969599518262977374968577965601474264703947799809496767146205680930483415970503235552570597801831945053188920173936067415496549831524284558860949305055953655612671473767586150937416384676291580057717600466035260042191323925503473136017878476078225811299872324356929406089308794545043701208142696211180489690828644297537573565429919941015839137349072819807453631206455039067545414934041429737211418525726734498736841158931419835179138548988368570125092666214231830528028283528411391332709657722312886842384325118159043681931678119512214121264989741906751784065741767650125083899421187543868463147527269856503410235995338176461499033521894291205058001247509867813694219521109580447352515753956382019155375459669480700122000838067601467914374345530736785573278618102625212157102063664518930522189858008204426584527013952424012346650061233772037160158368444752671002939501446053979300313390476754735195277115893566474582612764934150929342411358107376979620928084365488251669891008081143926592139646142218328140490005635870500039446840434687860832914338943024394256570249658281098797311599926177655861908888271324072272081639052099832064160168114561390305744652842179562687495150270986952678939082731746858788628457567263624621441805808133386830534915544624066038681917101268664944085241222415703375754128273377532576959749295019758927771975788216397540716983001683536189169059395620709678702320630688470909886278156424775288887222291216512300216292582504431237087976280570955132179217265447026886268791614323932453869087217705184933918083486155950162120930983496344017458239640391424750043272380928104590471192090537530940183403995606930550667516692909079295029770847970096729282974501380408477994449662551812617942734589285725058988681676273485754180882235300148465862201681870483459850371909814751107531136446413061072805993061207160222479170363185529847270976062237932074182773744512237630388348266860695331259373614358828410675819033525115675137215027950687218084332038870972399253630261103565241371391947248473425283412602643285912779152331967568471484598201502782768306490896226609631668352286297978214525830826923154274834671442734465425115308113011855180121488323844837574178522089571195940136741897797449332315425789378839467741348977114133926323952046275167666800717469278921489047979768555945311411625041602354497555551154120380125427960076348907979051528362346173509530003454910885048186874825262291810207482727139790089005742350777334003242007314590972062339856313114704450665309001283223495778699449437870218346732643304592975744519733987289808131302982580078733644634588388969630931007520098673562548367192643979881858085411616973080437964122385659761077777010369646943580100740331976076919869723221399244244686802770991574033111301061477174565391919495483303121619004985687642732273206420186184370034487116062467328579020155995688582635838645341439130580896850448947661163924291648154603291427690248621920415303980294750462249631634939124432124595979787878192954727754638373018290977959736461926783214953618559471912748251832681387309643486075552540187861147750836272513633423299694886358817900041103104606847219662933509369885471736486571152107122333673468282964269307550961968545666489642558656698503970370953987532792110589241535054928173212176240487152144175208674462068670631078866037769742912270182223740514875857963146556675684523924431331275075360226130359485922262696849597739462792213598516059209027058541870796875801985474934122870769661442310051026311757467037585018023690000578690966638873590648560084576539065012649926957650290811449826152164662252134984091360202243242523101104459066842233790266309229688018653542115716983807906322193098448811185927490465623865392734670111407089723687327677689206437084314573021402538543384187717004502278861031855839449504977066625690418616224189279578722413789950168562151977737209560684104224936372574511601742118664205329345713481721118062204368462035154237173552852443647616057198774139502565175050239926721907530076310419562770610468826374239643621024633511632648701507687956264658492963839177720899248461281806985386464512923858281919908667809372090102594431047243636325550455311833037695757980472923230195822997902858898187312597476362510900994805820279091993105380581985834078108508194538717515169603255807639946573794784295511656297853779837130716284680139547148538995150523637829123640948581895407904684207986458797470109012041298283645938956029944839754486433498912815582342285199408478245198360559581684431489443787164626947399042257840291427565012458267744846646700210429984329174627074060113510450745641153664343424012457251231452199594946961918263201892696646587878166622928165884611050812457337586799424352276925020670061279028776791979733333342731458321740203533899661073342762460184412559949882671797735779429310882977079473343334121004699598449503719375699848706885575322237479792374364310799036026067742252248245044994445269418950040599621630881135369699412964204127523376232874624395680085452097003160342444967839687778106333878058117637904122654291065106161189903118287863732136366191284789946824891987820131176229185829597341872682894505884160052446429649310890331486814905871715692635562652354368440249452025893121224613948528380896929600772654200881814096597438877546687257942995456283210087225519000575486019743853668787092598924119033577232490868021906291424376910600624584157507567330342613147051981517716935591475759935174639232350026106721501984811405909401186266539982306583780509994176400976697629043439265125522364520486001781958521563568133594754302234307211812368616345673408440315333394315554754370851215705897015571918220298044338205050896959510131313229319198720259254302824281543398513548225873419929138495470054382351798859680956475845454833770143970057489283083506359722348063801648610434840685129077502669260650537993999044350790439894034285139257352964541003384871134708039907800220890196582853470121140518545136182525263129469792558236379104850018161953807184670167931550112644226678967454610308248681585847951483506421120863980192303832927481173732110071752537206387956240160495000149898736944047174186191261648457048915912105448543895263330833286870821462379055241491693824902501662082025908191264306232272870661044341509984285023986883079814105167819744369661517480275193258328715153599075176924114742331779011032765984250522342200453463663827536184578917290060421214586758521225560897757998648419111547070670835501316797469903048946351908960659413331428113325641029233252143000631929541810645668478016272289616844231830117665495120540127979879994533537895290230398353332762534995954780808446502733300183224438484028574330387240474707309600489036827716250608063797091950354504113435747359907345167676521609314566897278148291530521142367891769086988827670207300520119578626776434015730152728298016832559999332960972843098902613138619015253364121194778147426633109059172807282253787757641850948487397523203089802047512580210609086519910758052217781565459278231845962858559953558184003877048615822352538390145021449288493381482247071145836201078655000040727758018014657893824109112778940064339882604977874992944130611960151452513122285406976737990696746699534059390803139563861653332675064020704421146554749171145529952329748119257006011874485914508672080470716902342060969346721979577909688409130755266015419962966146533387793068104826908063498889969774415564524439789636366038155563109363358611439234188040268584924577625700560864325593474659284909362537200870194592827962808550036611861252872190402022133365463136151953717076250079342501685050966563367446223451277866919401792574614077423424101776622218935967292833494040419154312902820469610973564505098107116010158788699609377407564333691572352304287300113801437180073906109781656852423526166206985067706158585760639412436051288413441160901303827248324636977069493472638218544765223745657265054601338702538797914942972434456237897544943354633843395896285443400845846436083472339131692305993891998538213882712141894002506486853543270798385591384571890417993786327908385455640860074502359054834438757891816885875849366687951278488791847615375790901448791654312480700807597040342546608708395566726249327585682222545655151630482433998964866196788994068292401945864115619362800160058153253341716216520968125160881489387863892204569726058335081380484871195421812586906436344591916188024155357132613432644125836712740343369966409407614784902092434293399782448655491595630021508136276101728519332789628402288080424067551673987754943265183762760547371916073683500494934592139245823408539869662564281113407304884718106878482833771305390271075560136166338462785445419747146500560577139139050028100919454083787445420334743690412756727390274435608176359557806200005915650764704464858209114492953101395721032045801548850518496938027435968054230475372649677181828969024138056758856773357296704422720301835069524745231304438848259271372872292815504076258095951345289810786140876862572586914030885721912010925969014778277180861747396702791282547695097293257465686966043763243139219616954828310997621079142844677501030342975115541958440604616456875597520830467689430534163261713671878468630317816319264110462272399863126899622778931210055679219899624300210806669102599487307469263723043561738415243262258775679341376941819018625837687981343451993626092789523658408172629782854905849119237663549900863434175706858219129574753206434222951121126794235056247265560971189580023128835013858593261147352325636343161093259025211806631543532864281440732730929398797765319519354957435126956092924630754461053503427878571048391574344767395441003313472649602405647843893469295855256920431134867489493854107086606982345879075913163796417128015481834896280648592186680580777790643575336504149014543514172084210657934388522553637262420990217603297643396261772789281224380198863346420800148366175275586313859863233772200988700862002430584602962833734873560829092772210450212273987924448507611864110230121726122090345338304239388917822156685817146623029711320282918699168125305981128953671014591189774791211497497375711537508229822650653099041764372389021323204312353777385134081825348912338686034606389753800790096785133196234557888714403143458172544578042514183844257580142662175682533803550343952106972274967687406299505970663859103786453031461758686704932912972807605778653221031754691762985974816057412905496334046582401140196188634299412150050381090699950983964791402482417939862488542429609525196660456399892763063231030267436024113152654619622625609850667207442587674917604601888115021636813028904277496098073077293006798644861415722534982939475510366914416756740687273755377536672301523235587400680744103342542557410469374981947146476977545992134961318798903649577204128934602323205512067613852621285269107899211288813291431929614603242511542933445946475215522398258018357880178625204997379112870230210807745277527426603380222217085066433366108663579133706717667767309848621432277946635711618178224688495801218672041294790011851070817457000328768519963444750405184544666993797875257992782095984345834264698619624996744659094938195129085687554265979255054908596304399114891553375751145708623727727055280124177014223691054984661719778846889772651037395341397337145754323159566138988280164103245955652784564494804003354963844593822888738845944391995139695293747099727195987748297668889457041112413787217302303006186330675584624858116855786147041100524543436474339501207788821713522769470098807915814676509106651314226746354343368149096340759574303170977619491252067455504583354495334564188170096955402439579546989058860135073367861347512318250777515244226416929519300757674141528351629009461889143194109120912272417990749116155633667301321744944138902189244458282156675515493322096773743338358307583945566530100490576464153341916480696741423574367790262027578220459840415776380381850089164563198337734339058860618583969533921273295093252672931361651145881628581174104138795393208584119374396936428209879815624653283268849687479000148724006740742525529087366207754825223469466882626023440518547896924622953660535572578687494405071340896230232466819905540085243586206129120609208212595118651409321781814612061726313251930745096221934364474043560467183782003660153079450103173166955071639496537465217579172764528060211254776390271663571104584255725896993704093096277917504027068115330193588138333861490630750547509916121075387721190570667839267464166387040406936470494741423516085365033346510660948949472227730145327959973171886335662145017556579420097098353769845048853020127991136728336327100434272947738328677140520361887104345771059533157359578501954993964169741138693421437671459350503896387833046886154503340972130307567375076828008728084185747306904091426136295954486109015806899720284916574440580445443683290942099751626336717613519371768988948929463513303554747755546363025123604532736156174087496051999070339105379290455279574035392983460940916586168548236843545732272196644559055801626963447679162081117533829063964083695969423215795860749324546810257465195162870742865782562140374686546899487345585372114965199703781411406617236760920213170277826116967796758273655391440806845854257698687917519104585419533580100108580851258963568412105739512482979560492525991164026611515851736490215485986284979998643978352256470747491856106364040209288773141278623628106140931986860101783922508722915567298761325158788242636190000943514036798914717389172018846681038415537438836026866570536853674455065575056108675820750227098655055950403714767746634802250593437958883250415652990533514737192671217949923036515470667521055422662117848276298243812230842138341752675431612210910571787426775198208221988799822028419251535500975919539985037406881744659472505526994277406344060567021350185956698249265967742212509639928147910940130515555690199875414682414601475633852861895988439910072704825671800302684956266823919177921016919005486452934030035118553260785236533308118091434744621566988663690055038533464546883415212017808565601577862340068802241169795369098363463236837712349103308719013118407029977926406901971813133928003643022733122869984282802238488573564044431539835558097354193093387690490334020707094142775831672911173496974046438047853133324868842675105344217551244893848550670319463652944101707604329301903158210218822500454017024111745460511445578066526518208608026010118837025614284674811741900064327434395339988083592936445680288864058849444948545163188427417520223495046761472412776366788356301016417346539071216978584494838550722140421258078409801146035844256103997834352872099668068660557305899971599944451276503863025285972112467172596590388445976997970450422806477026629518008667708523127063412878421039036589812602094394261128185479174467118359056850844868199785634593197820608102776402760173407646942643503362108045571297985732922770823735659918039604577710382601117366319724755067588093207092915258463220441345380844257371384580420442510327150921815255051632622630750506441565332341050007604964496108862648992453683805106659412936473623946890873996643755309768009964615586938299517729503665074835486522290862764541228547489734475841273396060940810427470001878190598166836766321088886288470455772749249960157457358853334983298646440729292195841962361815417993392217895290422659317936750492995045662143718855622450060963462955724863214444749510063617123551276292678181171521956649328844722042631451680608310435256663087236066151148339878505934902399836700997159822822549601329827440907045088381902892782013025196669436612275082096267372471644365054555833014461189195216616189414587463829827639519786901306776861248651418861122450609663847261273162472207577709501100514601180097287665682544179224695937914200566953982207190208350412985997754965868676215331284197090681235693616065966063107237712501056042830529831484822100027251442629923299755668434445309236681652607923228819073465221809754802809963514916135221714955958380247613533328586420338717063318314569069926941489492240592241171074794427849744436007211794036565653115314823118506858887332928147436960456737847064957360356728860951403389555630200753006505622919933841951199203542381678789998334037786413791359073395676009598540497693194741406177013679384430157376043853393435731671208474727409069257121924108585409929390900560176323936794181239918712016502742636622965698053165564961572914499851925824757357699686582802713213298055834557154444306200752102006614253604549259557361387667283390122195509963552442714414481315099781487633956729335543736542846826962879306274639603477369509402594611113979997540271856656326613351045597993209503220564988445615925425418219057215930040253050270942007459563994969698639550093752660437432811781063611105586104307556677478578567167526240704879255807453885113119042296436143920238673079194817712203693214219161112961788192203717996672735767945043170869772852601759153849183316894879868397608500227133530255223317867761390096193662048095108195220748255218320887106766889079319866241653604327284687943601899403707593417769630530307627237141438337529235339373324758372737605194386183794679143861455684810290172444982007765198393832954416647683377463177744762312673245938379206913243435162475369290469596549017376715294494623983172471168295258056122774503889967799738452728183596502512091685856020638734477351713977789163045880724392379086243466130842084090744003910214399409952709127895140218593500435422665211968631670987445184488117604868419735130574571351933274151659410301432595125688569472123472682883625963680289083033076358591613260709680566751142193586837113052098506775138768482612222214055851100337561961050152212038760175964368476190374080856096832897460623467012845021279986735170916411407147326281128070044515618652753213383260877242602410267031324144274434114606032057810903282471776897342892767516333761033344781624604440492738242957317888703107401285154334448188281645598838956024989251027630224162235920134487786861604306608170861345973401051309594495849477068606835003563988791959818326162820934784877895304874170759662752858757213044574770923942671724713349543031580943386760789841876266503523978903163198797099789278339553314673585758488547675853963488486874590674367475692429220342637067630109855288312693343180364266938238013786222850085689047462969520516210902887314907365676860224654631255280560421793015675268348855693206791073453263800033917761215123478679263909855056028534124424997397152034900856363400251013630235981504775569044472289658585967447989050364717719404383731854531866560018009533728813776172657530544179127013962772613896388732036770441196163378910793267698815477822497982126644898344546248921715415174650904806022395004550860314054331397457394856088477355100525094818468320555539820126652918871291481117255892371896437760109580987447968929215544283730291067678041765316935733646462521993524250127356386272597529004220541860176137804670411183614090182885632898606530818522938987927686982236556527737239619432735243169336071701553661349622877144520081936720625443175524757140531109372969700424668333332963822193323592550769130933232550536368153257590571776432434717713492016683627922084702615694347471371205408031684981267870704475374314363394241183543334899004263648670440710074075151057921162352509259372425969558602917633912981885774568923112281536657727164831645785019608237040614206325424403463244484326552626572638071179257289480313599274239943180394362644597218239849441696925495779887874382236754259678790412325203083465846617138271770906157714306305937032806010832948500123561207226907134044319825701765207492484484661297294221118831934891178998305742385726659492516778624798531748002533489696263062943763292363607816630945186334503540352380548603616780203486279929975929355998050971589877076445961849442654501328022734462075682140508541703856247645711394366273918491521938051025108602437134182241946029826373133119220514544016407700611775119297367620466893219739114441032858010431112684066978843201241837750909065824130770868001160812927744174603528252826448699688704367022262087522104476228262508957752361982699383459330961733198917493334522646538887908931146964378191689055840997435765272320130793192608822709081376894324405545654626368263705665106215381507813866326686697708873494136235462059798207360352272706951203878416930851070684348644598863001174618048391059658463669465591904529994996952331140588810945406312301871681437114867349463458363788089015158044355597029971433702768875223690945130374594499423656902738168437054128355053826940944933746734135337319726713136697410617413773851743396367417018259430193084107601027512933149203234244746928760894756060393270051468652623544242926915504788788720316684804967596506473602175282840342771981266385185444371954921002665813492073879008117147280675323262933087251214971196008408132786822683682861795126648584649480600691898910725587358356643725532367355497108456844668425601177299660532683288445669662662042635912160755469417641089337058944947284710952310594808036933418243983841587101874316028575440610905770509388319217285608997850543746905369428206286462132023507025368810992490369910385692166602831862500986342543538052908540697497012555557481753789158675849730599393840387290124882233885746555149522094176512076831172152445865506446782916821587700966218345651245582894982814057485333560720842412508354918166451282727621900435504688671325512912234215812722849678851152410085485268685435805170898771349259660459640943464070259941670698585607842130325478106249942316386316729899007070209289526764880687601917608320813028256851960551444178751978387216706061584929532796924556136030491970877098947548300880459288637424768727672806733897656496288127021427179841671820775374586182209802645278489261073547879180322522274020001514361080155737137079835518875763209639908413736969025036126959855808726352935569026479910479597441427071736520982204915262465338475678792457113524062213075499657480740274380701307744018359099454617809719654112263252821292880928669527262329920775119490456539670450938255765899232059845893606955422756391614386278518900257723693745948634275891717742042157765150708693321525325213659545261459041064161567660051124744055513107297247442824784098480430732097504388190819382326193368808696769220023429368155088609672363196723229050084803881893287403520342293000148035539950702725811051930912864366868808786092820316902521612136879782912650012306708450838551820893948877196826913010324256298972737432576664130978917861800866023557567996808725232777229315237092789217715582054416866776186559963964658796583615718139055138975555793201949770200846852629470090073347519645159413401740714498735009696842118777289099817130337147759910696638197118759983206042052854322250753795578226779846872999446190705423635855294036258569455620072877340260257654206093607573796585325534631588250918875271244446499381420417490670523694883536481717051297905973589836697000756813912792932765534358797322435183334224443852637676692913908385813086395563126280700919269765336737122121360024775174410091931534789852083719602244629647246678297300410645429260773608846581707825674802351340257505066567245426126416880332325460469672710870835527132682015968292049006876679931588433095671841650784401235077354520730024131545578601570810453326284563077654994784677414397504650650614246555298402606069674285619853404180216694026872743828851431784861853046708179474734011038272020321721173978692433939339840911374416944727957524296014292875815063416657748603102214834534604469430597939128880853473530195313824773875388397016656330897479106757951047657985007885226991138204725608806306693046713685740343051671275853773560247891370317407540693020606303431983333713571835935187328695909300247650054225240110372512035851406749254060132132673550597702403889053551599883651217177804855105367267841185543136410697567382654967058983821573181101800572001268552518656490819865487861546207451852844349738998457165130593658978694682570101367512898408915464735947743438240998634124959198895343600662894570598571279058691113422209554009399719130770809157891634281079039814869001751802343602141783595922473851556138165230289064772297623157476459048847468624424048311701929535852342361921407525173062576412307740071515165975821688006668422646658969957638083126839969470046784475252002453217451969673572799473130749096173280295642730601039110361648828271195070761121786059530791843081314555138490007591580193898964527874681334249323756027125048720597114327183772928685953848278853983628881272893347615819344112161789447182469070920518433819881318780776839258064087194717431903644005436995856072689482912599213034298908129205881782378064923363823456484705309239991282706355483146289107564639212601968149190727845047863457904569216804021650196407848817552523079810138067084865381210405345931894402632365358505890747050866814798288967815204631338899894606321879476431080687908424841942478175890057773667904737618337362374382808384429049085014402706340480586974343222093748691098305970646135712004339115677100669035367252817481655301938417186905959506681906274245213761617516093068117808931806630892964235061602348588324791255864475431695697416395218550864744124980551904214801216808328956927170348100701076005583035100501487220206001938477455921555612378229435580778313554542784014646442796342289490589319955663842638830474492917402951909500398925915222420277535729234074589187959838174400278067618484087501918392882024173419290564425039278985904869204554702931913985580126123082121247150674452358157490652082582399140968176907028558190360993891528314956740056369044034215783477853433837309148580758663102450919982451156990139903997747879973539779297101968459808132668623897316722352685853483549550890658928904137991605713986033461736337129855830171306063957806057843614905380860504032970899919912882004378183622722877691053627708014102699854610168565263278565587992313023402215027984317238392512250183406384877568713194859033007213051509547678320195965027257403729005894940005354975729670149577128791485876552443393013041203669188312634511179029224822871326867915197593693791988715678082608056251137995054894374080829402003452007107082925720567035371652413226191904517500205242558317545123819630923847469887010368729929908733850005365568963772398764467046565700798466052119493123592213497573525042610141933986183927780388867425048599316081515358433900744917517746194793787041146797176004901784489470253510502614629174678247346579196687290094715137239621744954127586245550093094186809482058092001530356612017276696274849214511870145829463598579312424734885404572440787190387758634704755579388512265518396571636008456361774785171517135631918632590507647141582598774160767958636008326031943606261456137069490715377277564158848435328141212758823026537153850086392763891776944875220592341620664055057295439120291893170292338261583662253772084070348364838367202492861227832067430274647508127239330970005724258750574355145981151128174492324824019741857768608650257627751379218319601706291209210376122859472071941806188080803372770753271735475849126790641258417783701475241393121611900172335617533707636509260879838580681531880159361649780623376973114648713601107162061459666544638198891049212109712185936481841620843207233912298044293202571416394481896180879794001920005046476195058462725044960040478360657404465012151858812903184221528642049225070851953728708257325402734693120442124666210601976528843142842240165478610816970675547327238637464227221516541559655273321335282385444576601139840873600304846646064662734897166599749067255052265650729792952302990288312481263118285738333757114519734799952000395494002610341181030442604079044434828237294493830085503376586106132065143610744650015152524830973741641258414499903186573131087633909115270496782738276582942875884229717055443984354001675705714489365857891950433832292171679446378738574536675493957358838323784813663835341325659939134176044780759140844202276037547343455799266720666449454708580612218158793609572904928932963709358264306221014678437737105845822484947817899712594609102388914790598767354731059124570599323949572661584285260810620924715474077480605319776545726620914875806081778570741176726976428477367397272578722958956400098707650005927509549011221364191338809293909773955567611444502733922515631229407461728030124419781728676779174474769368308313472004856133973895405513686564416635596553929120192916535393396901333724418308819658496184048044648862092004511918566227814873352596455405914861478712661492112879183341266561947837714335962782973966547026878475509595741222125633429344930826892563909223944009457075371653024584825428761498176477009757201783791678968145350760784374535638130533027824626375469591043459521399409544638911049932386658685223414479196421382746911695786494178771564594738362655414923594075390537758520372004229260876397550679810032070503140896105047756567169321478340601067850556194354458595198112551635173023017141066074917747706200131336004675898918732811395036971099734215112389044792117102677472057849882391294302341489367959152576222588591088342251755523723494299674786774886645865584399161826160107670533582432068879546676661251807261012719594634972210171101623212320365358030214557653452827086899084386319220790808264175794277987671030091850473945957049413430769050556383045949753321339421009317085071536376327311459459336742266013818044209994738304821303244944395731596739083714093199298132710813939404807211921645354495429796699840357597196543142104355054529066672136717737276734820791146641629042830595635756539442441714578385544356370658857706201077479966191737168218208659515138533324143052777039465079706136857821827943013401276462011284853963930156645747732558904392221104275469930850886211998647785829357756178618718941044670601817107339613810964531346180389642803177568541453249313448572627723840794549381198988731378884605760222878850291729878063380527706861125866054539276646924096445876129666498582232757860669627564835391314749640548682354945159252765231830852061032605450365057342311126891829030177233071826270095329523468020303814670563316458104557492836732154200472347614395716526060176642266293286685510115114289042844369818576524299509742400277517935474857706537135607323100931429769768729288142476611579894435048921275240900006331532247851193760744976094045694725468958530109999636877332597579141165771375176448858360545962940305004087399872650319029261014264265653463131239217579993542025491051810330460546088161674111269830049627717059184959093849161903580767209485461171370833646231088402974891987750206540010402454751094415419783229293341526584532159113910361688307510108159435425120210162052909506097103993316368578965200534527310735253504483473272838037850250787048874574929807312010367468165158336458971940393328754275363642859854597579675745492564136269675539762534823579072156297091130546056278144134419664704909825738283917391343354261997303231390615030083914321446950047122983346664895135698233487598518798760661367893892777660675648369638517121325980183991852488099186229080016868624174201265469745715441588669116155689878874826751500457431457376454776830858688343447877000572971803802321372607171838311317271372231120610630460754833243313449712598178275428788813528876055809936998474204598832783136489654008257834875432321601255155620020697180232279325338659248996043271260440130710855483158995916137143813549873272193111626988947683326031515946088367630326322521135536835414929741937463406164040104944120838321239176972682327874581533331485941860186421814290258682391600953727039618179203712621751712987569845633874947838103178223632087379304265901942056395284952022312693013136043185974877262054490032817666730017696566478854085449875956590117428512833480143063009472655955852566614041438231246595649622429314508291645822596860675609061827200795683718220405028782671508744253790895436485225388573726373384874300249198727533291865968466345647685664999792915222849932177621202786724035912060819984057342457667840732181757451912114204878600676808059099335007654614199659057259310650197329342425544485321714164983941813798347454421730155358568062848584838936029402662163104518509773366217812491983612806034881767595351517918410506220697799057821584631035832838593593707975854649289760501985261203151066909536620868954189585371032641084885874944016885746429531392404653191065086930677970976603523491673661791967479752405579381376171603370516405934469422286927015975173878746064303516559852663720826065630642345071044770126803891265015710192196019231131218734735158849141394624974764694363845658791926382257528175635504282544128023708906002801658589303116078998808352078743771760318724428320968577480473483070844100323647434234143548728947696347452097269124528639780380907133028554460978120282955394532876815081262659244596845344445064085775123986034456709912187629908158909894664973323995494598861273357991652680890398323448452209232796573847945876910536569678560715143451877389196766254799265691667818048266517808445862668785267287448946194225118607977938485229578685525051313811770267946612685320900886795041114118410731334713635795014595338854797500929225311390494182957284700665401743491867478492049607166728337867448116666753808147817142436038145758068651023535620510870632148685582975170668066252443740242294597498177125251841464061040035764830936897187162789114153710103817504133378784298934351056719964084666693174051556738590463638359613036141229906758814407326544838260423242249961756438417451844707736032462047233312837472432433297101716169746566419672173488281069444330134120366224936344768644646864481784572130927566356572201262288609432009276987284198288074352547044025843054351852175974910826688305117756186354616086715266235190268760667604701780758073909938416918030565413280153053473366012844360821607808702968154219046033749774614676989541238890571317204330985110395233353341402728445989877176449264341996078727943132191706443921198054897806749432621133349120813130057189332246856932375960907358464168378509955033674773402689035754326982245393009340524614058260912336240162221456294877232047715188012397963383965558069357873799578496951180524414887185039925288376567203246101307494068826769404873424578852052774478630090918256825739281807195444917357014633083906250915194537390417870891501773627507966170395346807512949591008358370554277615813759856000784677979990544957531781702996483312762464323397718999576135469893313636994362389535443899310214479505065725062577481913560226072582684001732927821313290363535581049582926481061718305081675185806226120711943544997149086558860764750950990046730404262482105375020726137290610621528071889991165692307803465867245197871329613638527911930857290935257135483892702641658174452325655184782996167985008441026909484349120563086769272277800370301871928405400767485491251140560046492525863551620909017276287167382844232384716696496947485521564473283788488371803338750384858296080803074477097002718057765341038638475516406255297122424214697181955683618095163164638242490647299494221682435987656509593564835376546883516921643409724319556529734661366965453222981401464173011413778445185947305497734021318754209741067709815309701804295653672571908433630848446375992560595643202118306745294037896400413127109231938622562887316504669501815957624002115656558770153028690000897260441236026062467848030125053465513650957201491755222840231697536862194468347623016126358867230510393523204672996593683093297580350789853423533253722195750553438032726953065321234462910484205219040170331859340744162030993254531325350952832395685817909744866571572332350123550861804768846847261608263621501695936326153963343220732912979579796818069968898184134663298505026105379577862664251394007568644133295777842741183522971031329131779657938382436815992843542125280161067425500695244682445765403258556486045811424483094521546249198068694524647166062083686533070407327244860601272231668063036806361525039416257324701079309854091123169613107360611483859287116535325833929770440300317609747171481863817293208950028643793147316248371579745081561043033316235487854501538924441802238561889017151328609319652809284626301769466233673129995082004326644242058329255346275433677769772740436201734803129863674071809556073907261238862415681727903710272198738160579445074242844653532137583383795248056649736362629296029606244083031950229974218558686129488631405465851748822648719729266759317477943722327379214345760044638413442117754967694592470010448319173597121551235347014854509635198837893453278836630588057187062686567367890525327672411532140212852032008025766342393787935191437720718706369691221527437054392847108684255907680163580743455155753956099972593957823915838810264018059478969383659863926955662654824243975220031246716620690705499234638899332619840436024119923120157879409124743349200830252358711285481401365026720570635784655977762315165520033484975318426604751707965238354565692671958987117469521729161077628268099854985470515354349496355822833588645097590158882526893694022274014293539607013269134374123073620112657421200556704450976481912149519312738756474009070473673838900980429350710228256756375297236211754356968202661607141538872431541551220064841558900459251232436305767998177079977028818045798407503120162145720709620009473858074062207230998667848438236708066522779363892655756189055373000337142312964902583216905111521430512713766361008717505564900634723142081611908176062065709037762253647981618367796074868457664457166320899287151046538025612153686398431750741972670797252522927985397639876917531119619378754408263109567938924581915992127405073332889404437693207050285237176166796442893175938060571064133983757440406883608807580403380712103558843438376927758860926069809629194269679769105892451483674594320455666832438186092557412618406456381363442919800202860493244803338533948162222585099199159466820002204636897656047969672079503894324364299739201879718740949400166041016644448809177922550306135805822019963937388728654168963254727324104801042240907149092803436498226725794432743426177119235669387198886588492171819682290683670942397303316786699861240385172897409182412609830656195518443092292931158509932099285165506840880698545922711473017442698530495038416473942175120858204248893291295150192807302636589788321500565474410316911368147581430109671280466119526235182380005301104555685802837178082394687964819234904315009515951979440299269474809450267938445612735683540418274560243971370253394530109840223112333527756104472015003582385980738630670925235665167199107844180885969672189318012676300116541838603213963720161167558892469870618871670967281731344339773506921693778598019882519872292701181619552401688080449198453814161352981911738748201707394104508490344599207676783243133445992237771685895441688037636150509293699208333223826960192332157211527111391932273775838761457914510998345812827870281805851075472797160335623439065614190425278510779373098687809723490775151112526823232586263171037630974872246218658851911238987525685783511756493635009163454775728588247148055917637184666423754749558904973165044108586256206932148100340138548181653717426133751477611215335659304492699813269678745498159191030021108723537849666042085706740239665236757400377783979902545993871287640442930076260269735684409884075842599995223869679008195836624889928427973725598719061213961247899796903186636216919899131151436284800157608689278642488418796399205277623654935254501721189341073922896213287999911281084814249931212877338343923128678849009061501762938631340742770396092204109844215446808078900554970323364971148745295943015823222985005546657713780708613942656495504716251029929931148830396886124346089786614952822072409711582387624184786600556769261671078296231081162936192345323355621067116838606546136848083715278747886775955064453436401743765347312199358132545004056469978691488418661124721450865747971303295092081383207911786570509388149524778167853763318372981956856309274298091930058546006690343275646622391905727152985110382729042961429245030340800762201242126243490689816181980793177237976552728445960248626932792754681744921347904809205101150223755925007169201289918580970706380997645930783007702648576258551262263555010888816792798544389455815612547539348227203921983153503822611343901666297508980756347762452413266446249727982262550000659560959856249045000286177176079576269603606681251294838126892575412576400275361571246577382280824696696457622872354145502975528116496004069692541049157536579498754839896162480260378886291045572674929748219966171792185285817853503469124982170237208545994213113089282785534832788972357873911563536563943611517521641518812602015322325865592823403287931087846226537323306639650508644252489181839325432050755440613349392985283588968892755821706057494042339735807207299347186078369974397586668724803338975269285970921981246679488951652556480180420152410855438432979243167180681831721114453946569013475973439893944520585107982214894067872570956180259331280921872822599205999970684384777386740663286847575668625257927114372185279399876191597475643911469731109146468849655711491998110636916924166839319392419002152847065708152989922875128015677299126890755663276790287378236744408738611962526168439230657395581688449900702790109682770545963587447047235671187535864001561583183577369906481212358779631639458994061208126265180921175563855385454544518382787361326408746434137120666259371112889549266096826978669086311643109818108217715791959612033053833590029365160534231722293391477902124515075121768071383914392285765677637420843158047879942211150231569212241504030113331207073303399590957111914789762129817619220251880270070246063423592020864342853075871667098434472618745754209063932594762273342043573672273753490315445347561826280497489217552824337467270659008392668621932779936216678151211177922184295042238152227678132807401645663023382858123911478564963222631790603146787627676102723150464221802525719265211126790483967745400094572180019464807363813006814290942961241327172935693089605167134510896672703555845570566709307514674494023710658455604446741000790038159773960039283366342200082268209257730916214875228737801996129741637170015336064831664534672288568064965173112349739244586157781587683052422328648457269506019547375056379819012354447599436722073996954123585426748592129583967013591526127206442219679554190354088329125839043276203751714991731454838289292506843992823490929178271942005763287738434302356764178997278031958382275485046595744500066687664401614427472767534875885861001350530285070792688491198023331387436972198926851382977220434418558124712743531967527077377504560668586500779002780336391019427607042850198676089210647291467657114420998065689046225417201570187841214644357353922398509525093555388831958083534582226353341004893975528334367057774295853364643031132568860547088430715373333622870055889316007662013754014380279003098688144773607230893082983491324836692979684426790791820012466258782365868315483237533545934709192416244263139688630987490923324131684579641997554507746624524561212776316799346366047875489969773505711527215219503857204414671318451536192711303157372931123151273515226256987608906231449634930342241811832912587700410364366785524771319807615453909207706033988881068702359236605721452774604441781823698836760682122014262035289862230086990509962178517685001549612688565825361720163063895199973719699213006727749837946079154393349649860750846880470164913924134432649087641701040156325875720545090880330551134246742981589705166900410703573913902766974884891960760104718090634218869779258258736231564667410358837926208185557374935849750714465907394528229826422468322512795775104801645357580688587999706961961520147594255157229797174447770682695528811648635449069669750921332491151941968356028693105546217861679710774479966191106037678053713785377668428988142383061422764838217886893150798262633032342460064332354070393025967801875659417069881864399259238028050663073508180734816978871435634355582678834490690719563648967219629393881318777938016936802021546337902525435554842618503692280174488502169990321135274040298421709490474788830772291257902970860257859459825575751963810636313319577855607502774677113411818120238233959073535086021175988880747476228001957170926420107169914797275668266219007256702624842075295746594619373835863451080098374241761304279873218053054255350564431394844024817164029258496411175978384273349102714767097919377301068427336679481969182783308245570488145426001997351542510431122295567467728744729240087827120103550222947100836260029950365763464322739071032283990151578066908996710693668045476856018437809286700095624649674897276324710662786477468610724853576322575330656551786569525293747036968388499234022676775628004964270964388251465111302562036670806603538595327065475027921181309767948772724289341138194116777856210054284920368002728653688308797262300844299501770074525537842848099122039146753071296319416066013175779771428736824268345977719147158862221046298385743618400374123403331368250865156766170881001455123717085381887690626346737645476539142316473696070875011042204915816249510091931817579283436629295607929935983308577750258706769527626197973111817814135894089463144397393785129893026146439400740869369756619461861868507612182006188080991268227804356715606998378528956512488931692794824229945346865012046202444811977110496636693742262588405916400410591405237834541683172305725413135500500449234920893401058806112097053552664572623655101075885793768084262065696408849015196795575752200322407499319513138164128489765676085836881888858760809391952998391251239688501101277901706086672841497094792052120729713442385472543952959614337434251038541808946924836945966870684040852835798981276562540114191239587542223763604570226684002813967959594790635505129945514289981635668706642846444101544221423361140360596300061877737366895039435975540204111319470315267222980842437864673355679545132131531391162774820027248652982942692665722587611779179685122652914318152674356198393000438050018977901876441566032146562563677404504008500777227366456114953586857962090168064581153875699386103067322530207067715523659737362296377688724003234889337956524734088703765463188519582680985747204753565137135496562702657188200146386502336253389699728712838015299140361888913106627452265974502485186544872657757549277892159960838283423181133261867515711890386158248030192647312426288250808607075186920585203305237014871047637242947333531063257812676170058282752421703596380034563469523951399288445548223792074722435363615721719407142661450340625422366005367066432107577068025237455129882597592416335335710795063949039917888045016252093475576406813930085897953527325339188158651576995503545416377150005396580239980687247524569572744733969887955053704783824129255536440895329222068409729929810737032988164543285175761296229357271416656835792354452140332551185020485884300545059273377430092219491463145186949272909953592914589045916752883479792681376396748283378488315222277982081675833668534270579733331908236986283916319262296297109131076784329983477923969070630332708527412088206750297141203563283419134271249696239693432958089481863991774373866800458956894347124153892123673545429092436614466318653590311464937654737007351656442222316177703191050881188008600325011924223481251541121046810808886782597235524097726639382203246928192909924465041468799825970841948343361179110632983591226659018527049263411580625573323666997244155817202104602084894223620391589349240289988494682256623946244956033714273564317461852214878327440879343712625527383762053217687404496046347880288704921245545542307115590638800070610128371933029893092220258419463559444267332975828623148953709297985116053876714209898159965320751956060273535338153531681766521307505914228587446831572824944400471200603801691616541326934639607543145487100538550603252814255911056465381181018698231467807144309841514552451012074243982682642074595205906486774747976277985555126769851247010575984154301405053747391686235142803275300617013342479847788476883784756973977684618539750829122464229296769584096240462145008507243126591624756974794288123174599755335168581291897062243392372749522269628995114430773209814656926458874157182112876201863931747130569487849725032403122626407321233504342657261234880214767487808554164264323255571459347863903931984215173728193392788887483024039353607504561246833798126269600327150760881680020547238820525643147851535252040055341389988600842972062227898102414212787775540853865215508835192362087747513022707664275244579526824734919985532427956635219665129438101292500100578641092661165345822747343123983212132230580522941756697961094614864692523003501957549224051451167532488934355438434309957817210190118700530354949046346779228618260480515998496190944291123163564617431966600087904083526729313737320767398467276551458906821079812466443430804602295035975691273831809089492538350986768142892463754326407620632358158771648593469654509043583529896409800066840773935119182222233846446787994358272799223242811093175546392911187075968259876452227756559248088613593541544754466621441222190847667602866499022937973072816165656187088208882206888965057441378053582915917374984334153077528843451428406323613155977600536778501243760172655594170848553481900751310642463115724745357262655507850297644522038265986208881979842023280013573446273029413429063997458959630669772893063516394412427340654662317949413331294190214920435776034642323078919735194154386624848208934726458511119132114215411125701965066586313109000787744073261948837677948290738496707941886141410734603469916256699655380395768533176867513352876202528437137442179930608916868495056199809536573858423132921906608157461698796223594361815958282484085999529227656510145185046511025788930003860622620667024191239035680803702688601028412020986109192297398984159072198698112094531665768236953997521400227002561276113512542317343971278366783308251649612820793454232528796345707562249387797259463651401861103911751824346497480706710933067958649227827933996323763383876593150383701742148459823193569238545673629819207690938923752326257600214869816183305335304968881888808362736742364245285859977461277450076142315273326994339586140912876810046715051472605099930630893430074986868716261619470570213655801784773377855162982558459997502905087107529767807460536327943561490126552524534597196190512083655876954264622856044944151755711031502785862800745644087316953670642580087458175142704896430133701779188220033578108506873793757882848926622679339724632793911383042952359207871461212079938874396828899391619052983405143422491090680920007666979987542784065559238029005461727713968026028373078279730262986517433017037506866504754498761116690175192963176516946602391197823517187406233515373748419520446862737881784372241401089226868641736068649362949367147781606343904764491625343780954293011788135651063369405903254560343765936421950762962296209887486400411058233851461984172723450089667971976699301473319850097925123805273187150512218276008977532692950079353203161288328977222716991551824171820418320387792835791658855173374643671983155345765062356813611423346828355477162056341580589157383722512383060959483779195565373200872294149313349269790487229740291074374271904188710321919112622764935579080432036350069754472370238876046968065810159936018327554685170173237287891035704249275646228577019991581885343479145811370783056389697596436649165748743846366189649152779380470638188418702906603162809303065112302920864811787876175512713278472325729455444780351551809197394716442615442755320632352531381707181655829369795990312876797353572794902195205615445082522977276355185306877436190243822853819867279553116478814413093938986559956069690946418191729423137819936058561945481114911372960129769412347948783445119177453234468787743314772069613837579989685718788861747385697498106316163448297975186904986627965952256438495695135812864756382840694032438719916425612398551407357883314700937333417277136836228855298425609685250728806642921369723566425273252158327257605843925058067676253732847850187799534704739595546295339199991857689105477672365852409824494524296285761037535810606286806763083218934414505797417258006886964499054903374413193398146374830645679415488204461764286090790329461291397498247133541650098205676057092096819535731096223518646520637359025445582900344366305201933152698017729542780049620615714450529334867440681168062754484341358575298522611171094674323286943881881174615052296139789070136791110695085016217314524374722389679718422909213562640835618370290538640997318566985268072969950911641346177417327828140373728956682711008999971095607410792719467911684158374902739873413500603622069265369670931448096347353693824228520336079047414260091681841815958374154457481797025582750398585181115518434233144880044156847052081484456345411165070207503878763400287848249044474298784411623746198082051374897030594471602004464187510518718566628568248783847273549572756879742336421500027213288993719845615396658615900800061979562807343853549353846908650753436229628411766804808964236831398475100715723424965934540709836720950651909868876661609231024377106518712083957744460059026672619958068554859132757659768935854081100168197678785402697324023118111546110834271069760136657826305729178285206340327796990625657300583034676180968319237075716638021988962955985689774182914134708854519725022106841652031432575289619004393652057288547266168075382831391244269277483618835932989631521698512745696125694013144468568744195355543828280331179257372809505390748966885916892431289942636401911279011707707839695416855132669880600623464715947219890263147729259390059079458518939108570832005757232125495666068192430315540072374442140428838956526462082513012925888583803092678095349860071710333882544799007253263095280857374440128024949887854028920643153252769706814131343397876713174240031660308555930550459060455348192289733758644306784005252640397487880000619025064680415023477664717486012574785613001182356364470991274939126172041143989400319707192044712940064440181757794687279508806693916360389422622517981783297042977633790928729408811208588918826950072461101900557715547470032439388209408257480279649992858402841026356563075634223461575117807038533682335500959965401612246015707500573196341940872077737098593257600088478272559724949136722296671737107514339522101653289479797804138389886050166241816299109449546749005087944427318254386605770573857531732145069724468387664279134211650139393469127365362345215865243332057523075872716602905956773286392414882513945634067892864551713065943252776280191146099601797530853121399599640190271067840882367583030371822972575241569037845923180900870991623728261190832584976526872227191990249128924833177120604374654198235624092191035154152224517543982461199843561239860371576170086758639389441754168212550605648736233172713695909679251169159315256619207385858338061297210146430244551943121705712354423084782127859180821800207950826394573034524684754042570785200213784208399890861798013244570645212081737502290176789516784463491813130864750257654576759680262731261438523363060685831541202268959141008331301739140698026881355554491987967932570573349236692501238544272133172812238292579440510651658848296550757781389852240119948672095443871859434280083473394762688770577200573631529399341362516875417560493240578191363346441789852236194610165254629206026917740432127007840630457003580012186296082636155126319553174156089118258017002055553011156046786837508074818544035394255176930001682204456156792801458890479872961353061380531920014227511034346142236059297495644219435527149837981654762828982674583661035873020443858231243318338369991263399199001515980413175836046774832272963590091662626187313497863714827788775439484161975409614929683746185524251841836380154463569149025737675627418040916921421040310291950350315543138586452515906935959709221111696895150736846323980504092416560507332493990613899107838813823678835865682708894608728485941574628369517250997192429756723087733273971742812883682549344740402660256724840243595927047763268049860382701853793455197895100996469750141921915921222473507999929137564948105415491922326103767490528214710601203621822107590239946132831679733678257921407668778328196643234002906603778457966313940439444648904061273069589429340074220229597806791297873574098391178263393828814908274717441549619995537372264202732099245286075721857855055367545901300036066195659537304561285382302907851576339537918782205911287980805082329922939232981488434896691367460859508060481374424838648786254844657846474747868470164463816542427258278019227653498655484034386007915362811673771235466415007810412508155725424425197751435565864947400957059111609529633472870734668187520558322306328093517655875967968337472953069154820928393053553163179118976659949559038460136842071318111485873430607980554972158588387845410535791708134242475731072878613298497885258974535641895449442927928004502690683711234104350114758954203965666010933408838488848389402541105346186390404293379794384746390464065790119248159366312207221470529556320564716430865879566467181236539166330908969777310693046095777861227784985818515670361122611798856105163270083278882900577640370288592540810193248794193781108770559069088520789964134217655306219455471326472035414355722490739462019954285333032367259553148606499385777405301119735507395339630199194043147213762018139367526773337251200276662486016794905204075734111125461951680496405648783385874502790908995440712077574716840248429899249884930776219366528809498930663324320377695495527321084018854479941952328580580104486042877113760714194984426194103971314500882597322830041255098043966206250356522580852650894108767022730219292245711007227801257478028322467947552400289896691815231624187769436766764923909998413982120965683574619791829410298462749073841092446580591887898736470013599119687143094534130827007910457263236712263951633573809258806506025547378241459753753539606803314736021291393728246938383105598681168847203816955118588289235058610366813508605087903706299749473701010903123760683672657422931896532822310576953359009384366617600158363070813439081886182653230974218861064786148192339073262817798576695382702037856052841039841077560743645335051956801586130713928793211938201830954097771335979682011292529844627739708479333203504474132859531331131856279624984917955666314701892614509716817344503090399262290737077907483491793438716677174670183263290374355978408041393693700000423584607542160235055736939648741862808815148633711337361212296952911273697543657353565345172635854146867496695120135780932869969890898191300593289248676153370959576936967935916780350674825296499474685308932192086151256518406138588226586214358366686973719878174729388004588157666145388536078730665820984389338232606470004556117141430577437442883346875632383330335156362758482324937327225006314439645330392067949018172848667366400263444829566779135102118610672433059938978367507471317631452014083859146524774114697335178284761145878362918922494290473543942125367280429595630693694914654317382555964517145989975773398874387813155761791848174193903995408897903262047310093150822343051829240209468743486349903106137796159824698753004197163837170833038217950652129929072021225047767554458817773792020559470816499229377617069638008009200635665944047378064563550493224737367357051370055823181831805824280703227323697342148971468223112822707072787619453962421385764586045167494643308207324190689637318550582588129682615125833145972732568047082725476431179785806960904798555189557357097687445345708093227233183288628901157176649596583344294382695317552604484724694010078583023556510922417553159705853047034895183064131427947331598393491128642212620458531905078380402429165106812504038723702187578135003491085088646635720830054553368223262930274438789944767542909865959989214739789168111632581968439122587916814551901589146514534899007609677831111599795124003466153937342840741011071675795354003770510075235857582511086380676978677360439426484434411404336759643714952282818407234584487275367629919617770107027234770309301464145016106177220919852881558274858783845371342021337527416455992303703097708554443166234156850037251745880538595356445698576025658701813060196732407669628323317853917209681529450823904274524204433627652712875425033794690264798991907536751066872445299389161639479332810012476850040482872316756469013520384943475014282119859270910403387651874570661255537574462268980799325701446807203721079177154291703357716285822153569837300646382651208183059727532131001841806618712725874913062541827011247835936793073086215559157847563308726672065865190626386206983549218509501055389079322448345669046026978701996063820866349237197857149735572571897460819755608550779380906050016911703687175125933323466592437032189466440736627545832373018049761122837474442366685144521381218126565981543964559031839551802521266458598002249519661462103868585427727575437449726535196551098911986035468629225613657592412236853841515541999130412562066585746101719547863494461537713680276104363516015755386326399074770874972173906313634712648700389069497689699938672837915435330133701994432773804089916808300457855690183917154257329105542579522682334959561199999909813376526628013914673954746295792433145997111871632423529277708725905718379119312230395862192321516159924190099485070564469992147108089872238255809617592100678020773307546510942958258143079696189897481223819684345968432671693777987412214460654224379440142347537921171348303202673280693578524290259420934771181272992010043129454764105333533230119482573337308274143478789489218364389022873422666012053332780739303108639902891677905129718730861929680973896942282392620695242532120624828449167853145618359039255299033265417806732352569501138493792623859756324621279219414717919891500689747082202075796189447391985013650296913253275270988227306263164718680317955382351081934743775230026505719709909822201399002290758007656412098701427690986361445229026616261010031179667323157149213956848829943550396223538493870515093067257877340434205706883999080798875510231751404450611735230079400606006448792764930679263279856009370287267814052792399660121516435927580244512275790611222502736541518988181648946243111571132497312458339547380095670686989145658495664402145345464853120029445801227340165322571792690857732665608388694158487905084096811114291190597457786437243780937237990732139934643806833673959068372984465423188236104076779349083703026194745630568823233045141957190372746632222227102508976148950799165323150782947858392869136978382734355379247947510992134352286285115665245398998360947138652606107318558809171726064389772737018950587092932488360597257071094483138410956985851084119517079659393265491249924175302291112170606532570794833379944217727886644175797953599058873233985168599227989668003257689898811094322750680694584019250137797491097696597236382067901583166965237427537165200276982113202029526722973883141949545003422281291301177003989676038870705257474696479661813780513973176054993116319464040187916089057882454712470044308364200671517499466510924354964465968430362007866146966548310683801501744468117952370170015157662255801829159420371303447436648210547678447329164098010571488344832301714183845901564499471045016007154584929433081387547206299507535969404043799425971849517294090665309954754673437101372278531708645961477563907214871491173103628800246750751078432622441008455243788913720832733459204147406181222112244388542983264127760622405520257259290654941683342640803552388763540900434694614739872140949644902704313198619076634744130521243324475638884139102257928948990456446449247080179073965777776022432298092585969102214711045058818834560921781703840137949923536017237844307787482167365114662209136201962863920713055663631376155128824402688702446741240469359248224754709291010297688252283805845992747887767715309276132885933603200217093568702877203038505376019785621277880373995995058477709412193967813865144040550240201781523137851425582354507968857092895370964740877930432217372953510035044898767406894680109164509046977462000003321586895584671886318357210912671594741590994392412310796679123624103775952543375981306430911895336465166490110574457102767547898030353457857802623474134346851851892378114506290801517726886286250358980121817409758545833707062026458585717660918201015383012800490954845623496858635232396271656175450564120639887614945983938972272959966879961392402175495274302207817615084435347783475044163747888097467695967842495354589715282483419539126484536651778113173894340255350746127997449002499122201994343403848790819677459218455065095133204532596042642094331399087210133513716264147798662816105042406989360843856568681916868616697374647162622007546684592615025561076553639237819691097929932150741426157309356447608052290337972152768408453379316376973047320535553367870750986274904510892536533448209628739954630437991256018229818857008864394430704463328121658820660553553507796055301867806091356075795408134874295753143151213598445046095832948087930022990984465379161619229827053239417029077338258785419401340078136930500009808503592631554792860520634204023397909675326408503805880937225095966914901217177444767021245732290398683729751295083167395620152012976206586779709279637665558712164900221925024782247458349876023171012179547904774241398338927775329519496098593104575606172218666494459503255619232490110000363173003198868857336868121798154573098157712856458303644220260051570703959363441078896988862989472737742777855201914523344304233479165948951299030136408996484465208607870385789217797283218110294933788587975754829925145506002030755896474136007959229415266072540133645019802029650702471807988261792581998391176490518152961089546637914809575612274806942366422457310034053509025571069321790772202381240345396581399741972411282432804223596622374751116480919657251466897272484220899738506575388543691582864240078697404920725171714401481618858919105340878594929666835714175635061918532033932841035978093240568262315409275960438920866293836910717266650894348526920222035698465743539982508441398162161592346995799432437843656133856872910284894893994319519612620361028077002847413574211169483981747300759657198917488364027934364704370956060300923633639028119679774776858947331051191399110679848837620382104641990470456825751048439604656654855927349034816782760939552621884366484344271175022429862529134482704306778977879196094335176017082387347601358621472794802514946047299903584229570221620942415823229096573188367563339572722897179439611776588657144250751069797524830753083733735679620431240005423740081851136838313442046959940372638077420538924784983912984087543279627909689917843233216444390736923597018038428076303000919064376725529224886140981153330653659104168055741436533457601357011141189228696156427335392023505041469846147074002903373931252627156247907992021856173036152414930595105665461822005588691628655314578073215804291712654385898840688898654864128059877809860340729421647310135528285538671965718907710164307969977993269458580530587357315887227422893776800862287228964112683982240524423808658548660474261149058106308972308224503050859670639878792774277706261282935936148990062192093592956391724402858578632982651331994910840441345846588204272696534545897055256979728772554201430464133540485405933548310524746876822473553376062186519598059258855987640883720151192722775032375472312240848328812017633606374418518000098375126083078460682689633845941326474740089881274412090746008562132966609351280114638823704166512737096174304740518155056271990328488959810581761619258735331308240401118553373740654631186195938030905567410476272440251739462387148129749483794591067778688637215808907929984814945237855146973382315502390963524325427270945420132331997308001998283451669056552570426445964351413798820341364033592987920628803831713890070222874171467757015512008772464172281048074368673652255264636118494506414358619416135637773059893164121207937156285273872602270529230683481092743196152791232315788183795862622456821988253217482517933042109846426336815046284754333077862804033752564385903057321931937301522010311126689348473649153945291610722322354233555395147859723326972080990185561191659030632609010567636985006187816084164342488679345292734997855068025809760457918137885485981620458087288916682883480243925704710257064354682400600893995586315947462055036933946511835037777483704726774258307759736665903800951712203158297217616548377247890972449316474275041913443565800637983086606958368139991763390298908977424174152069945872953139721452038699339643334422553438149180902766139421628481311316265196883638190283702447592818987208030837360396425092716168325117072029823861513873940651676805041905240256077781530468262819495581025321013937258455281956237957149070599036110394154492875241572741518648423197145547304160138709123134275181976495741120082167145176576169632790357454930363322846098622031228409607251655598318258617976141555705672498990642714358410341518619231161915969459899528667147870028750302322361563999275852986437896649536883815328642481637296432318333568159692984433580178316971158144544565690295927337873537457381084003357835864248671173021376692531233965853754517344162322115513136054886417699904173131964649623170553288988662940060722188311846653723459275784187755941386978573415983936352147936198340251582105449373350017992658096514192040629869267006419111176528802646563682702556183461043914322375001771629804062464805535063948548354927753687375542984816768229787029785041515649286990856819808531194447646319550162671639357653144720064243137783930982252715521589011541062159851682700920773611696357384394900192509417877957155191553961697393427642030209073157879876009048239453268035235844031302237176674423739316547185622463703528949049351012884799466296621508831139821254051778816785460957441663291147422309613469401844123368571836221098134848815380588766518680946807330380191453353553913214452726631847194447784420216355966079634132251721381937487947522861222950397831490563372391714247943490367765371692488200355488190769506330491972669331342202097151290706206548870665246451755286488994186492019487500724260111629240342304901451115863150327710869835144686117474659308694188304237283499561561336346095923036055423361823797114114963245710053956158780288016298626347460629223620568025195096284216344802808248607657667570217937005252984087451864191541786995522804419740881765042790533568555214627411845466981051041773590753942946316617810269556457923430287030880507364364956857011318414362392394366463215642898700185350666101045482623208731881580334692562167077325602641301208182647373404564856671623423256048304670304723313123573587498099306796149186922285593492515077365493724912137354312246631553635832689923400347927673357160748325574724750029352550061166891988857953271897596008039505482693495474566362392419536190023182755734750360721476643804124887555829458340705694002167492116054719428292775372378454256625301387643436387016073996015701029393189828411162406865242175619705040214272079681815090304204956950579090117887065166326363200782722146389327924653707667392746560677789878128953143628763551529834498061586297710361705446935780720288330357193059282268972974615277597848487080726664927858879071069003290904378377141048924200292518214974166682408200478194879963058359765753725977583294393542443728433917516180424538598343894300943560083067783328395193560729392029844214448822168193617617636819760198707553073228559335401106291380238670496012584491964941125605291896588023131535700508341449852535437065705900725023441518779348516473992820321521471384036195142539642422943633931737385397297237730739687239203510305763209571643177457333675261795449941729613545172118242260050999323845872310562075822059799067736821089334032203263343026594560003753986751743555649777232017041512535769206749002499297715909151526482687074575191165113105647169714512464806841067475919608900255699966603738660249611546415149771869815468574809775385261405071947148711038986036358410930853500638296888718960168705869264941647152265314412656918155737524703134592307403396988447193089840131358129237214517096037583571740976908933268198226984359373288935786985898371150780894038891816679113747604586767072835147251308432907047432532145750491266296150128019203629495062765102037118711148724163252419298794234527328819131275671059913450050455413738753000596031473863839767613015441637542358555527379838520969872525900827442765725814766369227473655891164500312635752639896273033774899457380433851138097567455184794227795653653738333304740858716932781960405135315627263787039536592713502220003924106442494846823517183893855607785607885567803726485631602619461943533890370911368688572162212798031985546762971827278437019532145280234852026659576780071508730015100227695200947371831977851424580515317547566492137851787646511554729565276256757580182644012697578763464593712009661202643299215467972704947459840310931213389152546903753741621503817318782234592654862171314386892752072330971879404544678105139643460365381115988900180185345254298305311977323215823898594791187643257167244919086064983100066547642937701102123898403953105804555619677431593579420483890981581582816641322481402278785721026886537746875493873781982291904012726838725637553771052311096997858295455183605854150121835312018512259510337790602128071813874951537731634885927144038160040422237480745822237919420957716650927391842308420659452231896574948605853816009507612026732839480176122072674129744365472410221959415054366788438392373408153739630010152586111234659574128576412305351679636008228339461625473069784004419657635679301471633532570407825703934469322700950581429230717287982679172557289141677233147256930529207688758171896825657706969793976497520851481211662436449131449798115018732692541911800207998004713474730415479715988167962394555323669109768561626785250346680936899190540115606769663600465812401829012255311082356007986194184136669162665893642074194035842992978106744485380359471941843202412000940017427572356655539985588919807931014362609495807923104741178281443419192436366194530565642757296775950113177805276262813684359388918589522631788950231019884129831250013434857375124549870679079352430512702881050998336033880662162290984226423836529505463747480038359392437589390103857674671441778682385931421717341479078152071663913099297277366078529546144318430969252620974460940257284445176193005435803870147914425050669678641130156762741044106098240915187676833686458466706212486534611811793674068336115591166161070469523125754492761602045457535107235930299893412694892292123447528272613663254973541698083476345901362535442423693355186671065440024567945748815847070356977904637838970295390935165467655501203876752896229168269167938048868929349075655610438768886784709056491421582460925785465044804909122260027383006450655126688515870233083268389838826111851526668556285799177147400871730462318465086586793935471078735455617348143779520236076118193843386771251170440864820574049977851166516652763790691821138682406705719352135283541482256414465727008702382302238385027028821490519290741733299582775253437641391487831508873915580305823553045570773078615572399902379334345997939794884170535173142927974754759874012297460086183020122027449588298766381237854998414187864938959707929436958747568479246764755365440579331713444955984389480716063342453904146734713468520463189430680009547625122292891742445643487043596002910676797737731660276377009358704978732664706233433877973100599636804074093068602290956946273954279210957618232249615496966671935436741021023961526352539322198518119276364677850108261069025663146524167339316227325850635563829535534980153057516847877006173597879745156372168767704579453855071263843641985954453416885765172085848921847565662788901367363324746639134935628724318603111714607253214513097031929460766358407226767294882962101471056495967036995890139739297408373271850172101556374542372964764872183467497552339243510159606774907161938868261624029845802176372733823839641533110303957306069893414090616871835293985385385423384272054956796215844023811684534828783967944478692421796904133335888914274522994844752984500139206582860363100770901861804944095606284529012712326791912156524502163484840208268370558302442816010541180017524557018550230307472876775338575665049277865413407330822102196593653817870685731386675827054336878907959671230284711875568129537860669957095952186030375563087753196522826372179778160721281515670256723337887355879120427057495375676186746793739228170382175480571314986465472076316466894469420537341543872708233407597636101003659839492761404503646579214490435420884417534961271900557891962935247174069120270149158380827926636144371703907267535428495157986258655914996881616100020155765705390963047480053340309823085087283831968435390409252158170379415624632687681497949559396992432065292832744948310760878097494211581833698513554733881883211385937131743985790643066640618840340186078534654459109123340748359771842176183912094856118429808004027103939292679737977126391314091769868296848067382523401478182493071184516939564044066286704205620224211656779866807824828372158126479172363614489695209840646587472203210469901361219673755340221974761153742441383135371446376364255298596868448871142249085445562613393706728948456515150868876218641917603120061848265835122729594846862060019751833976435872073054413315423312463108290790531894201803670005588821384593817421959595129813783717535100714644840670848634542511446131672191103308003280205902368113123593855765128957866356523533817580459480795402174355070557476425763743593969405635977251680115481257478049363679970647593512718681408919750611056537865305335042026175147882281598174372837441508062992477689086537724859261360659762488764693157319596045155458078647302430965790182845784294794594167218755591716853977036099720138293395414678417346177505604689566386956472688627704428183576724748233972243782178742591020487221600998948858036039105261569937834674880020517069900685854104097351866001406058499503264063932132467650640446112918398124404600075733972266160188813849475243923022516009778806396286503592605087110365786280015469479176941278077912913996701297668680874606505236358541983174128800463839272311545611442242343555083259216654750498791501053482852614570259938431290042313476192612026299132139901753790258685980491279283243661471790691266514103375181705688242534606553355474560185260501931035501815670877408818353375965867968974540070867523553221200188680393377761051996101390943898080090606000595132211482358052333454991279171580820876892286365044174986071258093347127183405550270020191766442488237894966243222851552581448930044248561275822060517544453627573838647634896359972092996295977223778881746706835655171448684252711494608009954002997775236423827298549175124778091138319023004361966201870138244718498896479884581152162008797815344347638261736833351739983712390666787404528854615205844279854612922977575006509205945810276099944923421446920637711541498224784909615236285598268898093318327359064873359377984427146256982056773041413606044868933699609900939420432244477297762570686339450701597411374134413517556060517428567767619105993874884774527906551452728537942918146471855065677370679202308630910043573377872344878763869876860181680161755595735204561793632307907051340957296318200512804106067807456739896365662067678771644823755494863198150271502322389308236546133173825533253499221814680249740628887834545666707550366791664492105226191998423018822022551641425000559546654100998135921554886143524429668902014855731828596195440340954507810571514159457003266019831615383158663381510641092148960684285548336341744882668649806784233271413844209863748307104330287031532988005422587355288178944549139427418823385318732834247644975671460418715819277628410174020689405148456565857846075710713747225187099392210966824027952663219223042712351849668337256734445638510418858316334872865105249019774099471629961178681532926044768343739176978184717750828179787883547623105765799491217689465977036336004270008999860936840083653040108033153215784833743723257225972694849514132137756528927344231533899680029404551735255376540884953873218238919643433696150674826438975937603804800734132430530672164002528757754918366080302162034901818532606364348465218000415160754213455275508738201983265570555136497351523273469268075996358006930316756332755951982648229879846383751476625942465897538632878892996262036326066159183896019132764281080079520070090652089244471224039017408368862923278472081506701036831492116329562491214700786040421852403535516125403019823765960823313871366958956136046263860337231364575459766077698589902282619566853852164792144981056025287225922476001359228820627383041946338142889026030333877589700706869028824702675240264240496757983134266823303216761776685516138136840446279070369596261433763157656395297159545028020509133667205386637376355061632635996973521849360918653071000008230909256583297757114494010650520984361996577493217457703536021492181118503502123378431002482504958898384279377292493083148591872191996203295323145092580216107361269496048568371267864253562565231783786162440806278166714637795805068255225594469969528372516970019790768708712717635315188035911659187398874867014899639994546010307546424491394013134521918584652034554890862732517450525676002837138556821410614913661499920137158823491224867665682347414189200966292115807137340895768551679097062549612956725798317015523755586167002589662246249126388416010923774275489245518003988095752622076808248124872442524331565016450231836337163831053720308760209256670450932239922060966207838095543392381414475429096374121590740816983731236907720542173194456949398532945319877782599676548270466992131187838533623645597763574920537794843337819308515137111206978491237676118005599209890582220358832275749853625704860816426347263948271438358610533475602075061153842047838766034134792779135250323626491612807088712462885068924283131739070981320662047158380351148122045360743794426942674387138281797861511464264940713502422238265175939811858818592264760821188870247695351484834676711645026686004237871061410638675621181086443648958361081782020662210126620772339737114830364388168545369567217241748615473784183661342179200883203354499561910531843035254543917042501052931846287916145724416145406686037999256116720123616501271879451201490550260858419755304500639143670156632412496904497176139835051517495498325197618910334546051383033459374431397497450862552839024019634206993891775283554451045174940427794324079641242928795356219060892342093453519549478600705282226614973759861041510268867286170961006495671902099215006153599638748516136849372196864204655502915068573797563106146320627105407265467593483759864202843301977935526832091767362539397584192438433261954686500325921775462937500945334228756319445125296574788663814789132414514292724134645280416411383357514968110063295611005733379995379704554402197799055443458906753327543634826266142985862165571011779260215775913493871613602915171412984154543072667574563993027661225842528880012328872059540409891031869549545366518387832554734037291047147210053808821381072305233127974590521184306636651728168766220305238382186171751262700345866197230292880931846589263126784233274108673107785712269788665667644577653293375238069436314323167912750264909414254225753198184904749726979549949719076389523690232346823661523427553731983793785170186799902043541515985343061641479632479100256620243263839254203020849495905954284197197226819640219881936849087971177703837892239683488890372888495336362047535742315705559641742227095591925260674789768759692666789372328119518977874868317285916696261135811463622968514747415289229627905683860033558515130398815026478819820534066422228915475127318098044566146059740140400144882978379048230902769118547390584012550592464603190742989503515098688394758643405980602177943741565112853903782105804476563371222106927599807076384758492426280125850972070684332071920532006863502236685811581658957121869245046718513468321831247197717241258469058785674461269337236377133159314531949538385382366712283819387927445074706292441499958245123589211607065461168815609100617948478681598056100130336955419340747577411565705469720245485643421751180493081687637588012389993970923619320426630645173752284495998923335229112819894460747666399179022229517866184513416810198828931199772726638384456859649911271384176185934605150182060299597855734957601809181273522956609029415035505808123759631233223051844892657957448569380767856773836213797726242005859515180555221600187097631446978485656827722579265761828147825915738645550647216388275192623568332483361241278065343552251732441454085361775469628457340406428053819324288609588407105294865352298072060104522158606633207048840907012982739757813040194926360212448658825878026218903805086853372535383631051779143284970892344069853072744736402130801368454288967106846740190567108317232600824920141172056994150577658724728805211359217235473921623551954165908806888571122341714949381309935747309626310105389211637107674377155930745920406021365338722072361518459533956115677598589226790394382460196637500579636192660611242514669838966932541515638866332067770809660824275400309449902118202520667244450739062155272309462470095461945553983720277303646128941898585426299939079259832814239680192358064337344168681110946004249689348527670832429331123303233893543421308417870980839554453229680286832240302670418743414648413450734527744913693837480014662559324460258152302044599449776693434995406435093889201276262376008610603812058056108487493568629639294305048913030269538924872410777948032940794720139769897698318067436167935535572545787122020780285983884995069329669517969718617181732859971972693370538299437098921058398213608808838898478858832366575898476046115420084296572257045896788567298624973641488549631671062058099849496680515761681066878302226414952443815183884413225731792306678235151769768094855539084891869598465220870489681207528188464535430053676415169298797762349600016230423601747528481502205785866705595939878781691068287732779473219990651245584477052900440147503770117961984717771471312659266090860637289854144797040236936131114091957247220970253358725724070855680106961349648485339331420299586913610477387769713039023434054925979528261847280952331503511317822638810412948541524603326931707087809980410549076384834722239905223587705520584277904472611330635275203038110524619989485569007502321990839150515887609028911820760480244288874113381029820161928014353836560491033345531277047611256664636335632953594539704156628113493151593113486262924990836438516579415504750880203202742426711862278504894294933849458406912533926328689724030515967083342183679141682896437089568765372214224385774961637596909269356468388473869745176569398950504953036775728537907816442512264383236338038751887209011156112914026206174597973007222761709542467703622126113209253700033337488617290578640665811055975795641538724483579956394720465887251040808383029354994450483849524752010048039488932405349538106115098834927480023250755443734863748957541574679865327368582237637331229473674151881701699521770107637083072526136445440164293048314163305069708409065438429970239619889105098630237562179827580231260897487895209128710428359670695163016971084187982194768996597092083959587395939267037979290998469289826971565861875190772988523620266278755162710149671878739015402886514274238259936404581767247227212160984213587571770175515951949981772117586474403396593191742860521635453321210612931543552316439456086601985162690790107511255806479484240915908748229348128022212935439741714528121107762700436596259456129243529318259077848951553613800165812001272581679342964102601911533249665537686905649357747214719074851481706551895508369539301589864356391661526354161236459727973072119203255568634536665201937652456135427265803925746794899362927350641401924915273731741971659116522777702801742667035407902413868839937786756403852679771260846747015537721725104537611387989598619575472526544025815028876103138848768167139441402229312120034997207367422829712518474640292160877371950368560781792914616315493304713572558323499633255155318454580120201948360201836093896599054765128278816543689948108435811640723696186232739958057421260406193392621041585977118616484708929585348113916751549089372268440027655151308587410192307642208429019931692762947103055569906732125554584973143853084646861481541026026783027382456489010954537780750448449468096506521803543327571193656461551730733776246854456460746500228912364091040909083084737824520725603934863547416963359319080805373309107571529035790353786425492001031276247929885130658749681334271493058433196108522377837695235717630474605395469624566015905900092930200202657499951606627518783213193067160702164799680065712940193600491949573454166155162271210516005300625608695087735296374526278800492671024071611863240579751445784817456650345959174463237989235769199281105449475513638233928138213607869940342072100389174267876947109919931009170407892198598781830643630162809825458458392095776275845501823610091643360215754838405114761066976155064462719866880075906200411370511946202470813391916986031917748844543203000528163743465220916191871279117745416632862212022587211584073935043461147273521223887352144711223959031163352749251130187851882686518642447065754502869698069936997906905541165772430612110747439154530169655223835979473985499613167311626919718779002501913029177234726167983429434959756815418581200661813470518070166461363793168859589437194204934561573124077112428160619556506084763393070176896080385017738301985879047177532755635750462680260150100639452423644740320890659348721801544431447473481446634695203164219126296230589890961569290124821169718419707778649137432733027580210473096625523834278818911112426859526058206882611027640398075365842511414988825882381300044867587628077778807522682042966692684816461754966922400245352089510278238953646402363107388261514889207565613787373178409552708833088735942958283981180172940026654928795537374089144752549742461769743863704336153664926776924849685566955512170384408670398236875658832717699389630401065168810918794158091345332353271588402548123631863994001400697223786640195687631827991314594844864316996326578027496336120608101358318090117862485950137763793124706199887605430152283408989548713766656647825084844174588361210255279159116125449535861282102386488969014017920905777642366953170312269071025243097178624662640701060606599308599619059856235563890513286686958214528512109342474913873642029618871823885869180013113885268080669984450365192550202823543215637267986792185272440033010419415628046819367574128598333975342503287736098549726584258906615036881067978953600296517730254883807817383117233950668418110855039830451949407059836523614000209503334194583980346729975560136758707288326781819105978910676620154999660602329275432212368348324771136812377605698230899184247823984424708236092670245901998011685356254880295702394563820889846698204485138164374309306362295847667374935130198626562364700818124465428732500105461383616849486458433757713047714494666957721124878508710086124169042667264779269871218221777013062655244022414155551228411649805709569839666831904300305887981768800531160559618139245830650575855873602560324348226178754778070806500201582555121709683952242352144248077921032654799334072454137744029826557350886622084833587169142640111235689462396045942036476008262123271704458322881735919412682022390665562171776854497930816366504523921475244765973089387672186102023967330671253363291253381240604503878259808718896732782698681686724952748728891764768011746538358833288458125942179791386774640813433654015542498144442431170394592960239831639086566276844410559229321392958874996718776261760160404473068462651896162524845810722583376340157813303441558826708006274413037370608592028840687987579950197045023654762086443282799807619931770384514194589089868629963730541106332876345437521477326671311575502026690956421021981530035872830546474075176204223602889112095198873596918875426643282811633550330982971591714750468675782784224268259998648198417136344586374760281595546773556846822095801156901461393552310885352585329791393098948172045046181486780280304761008265274913162834674649515642193083427433016531189465940394620711397478052888537001071074309178310750211728418849595487544534721719922733965643861160754089074143478142865467038276396313070760909404422387102737713916387985880350623050844562722237454207725852357806447404476806672019970264457660235780018248043456406451492562857083516664876436071307274155999027680610875724382343115623250615590533552505842232732485187811281489890560615972589217964565693448275515335896295619668523714980675934993419718261950134248261500003476843002945543784261206347458227852051798760525272580286464761608412210980365907457558246027600873525279375385395851209403816867769684517468660474074902943476960508942834760511628434739674607237769471598868868356542961939335179353912281028975429277830132222401458507479752594262177651530317496543118760493692908834369577122626773599801670605601351116571417602824967558936894056959118565287908227344580062869173442175740245332514497971301984773244080831049128867994427402388936899196756415528095516557741142647147926655400288084354915185136422075113624412501627061934189205122568378336431396887126461921106743292112723566570573097096452380025796515939540472636073413343243261769549708905591346569947440934379728184842481274260100790430810125154062347096144039993935201674419242999060340105005180314941710710906109588881261674541066021023372859754394419113221445951833688196379557597858135855077511733132170623476322003998577313699297643291303204012586772967230808064072572410697808765570543461623939364577991770732731432200244166299345851255286091479814408806383702929706876116686943937287029319192677949915471614457790069374980131350489793246901449047402724394579377080488501770887058762447938647455661772362769580915507408832954003493173477190179152811623371977499397661375086298183838554332511709693510718694658320257519908453291337030293845518731484120577622182443429116291349945696338285309280110408561010335573587768224019936959121714298285182228877012512910162853149799960041979091039981410471695414018767742720476447043893345594959975217887910666960587582479279502546438876380476787835446754507898964941887530507679253174715279813931190021179879584133500597593066568485877283266609573283298224595709591953517773457253618890815121240702235403479182052579000847724565575343056749455693132047652443818593504652836272752906401812199480209070184027427021305333220054885322033491755754283152527268474580225760851066077514136984505942309437447652731533181719990465766709508131998596420521103310466015400525858832306362765994363713950833460783273059967633624343697323060923105063110587397907858100865115131308452435446813282885734197909440876914538451570424455674931798964023069215718263995898333686656663669645350733098411925507863974784895472752820708278443056620091744521597480061476691344869175827855315811227709214444464076606732137875698836597987909127968766698992388632073719436934966748695307083777429630082091966558438106985926613192329870064616454798745606393853781322144694556805999629362640402938800073958454024440171588438905043685543386137808672247974531722008156829624289991306248931270749125825164244807996795144111613392324070074736283508437059765001667485605136610302229632737364969623587281914382003919425920533736261021280819627657479322660359808578988935924202959457176574659758787533282800520259089628790675693206982044624882876652299304990066268131973260759596892971453049192372112217550076547610345472906364553095822383422674841088812642842527771454591584084614280783566616949741558747476404612214249929166840600724361415795045872178179388609331426413617801818661074651082896656027070163936017717396482162241671230909046825831534244154008048141222071361603887297164212890995100385703064339899655113211540400764492860635301140246628309247443522144193266688208804659525173656731515224104638914296384624761871589352067802526274158000404838814251002506598705885648757673672820947995934942275003334540462872024808382606150273279821700446154015263216751985061514863004422995693853221555091322667413054988050686088001754341943548012299040339392453633435170699275720501932311220434414502340925398021307999922680755175249945665652731169677816168755137009873714512028280227331312873666460527885557422081882743444906438427484660363436862145304465395239740559746604031999857564399242201528858950284428782072289277825704725543818125404744037752390811505909720819607711516378952418687256079887781311346288248273438542284294298918687421480477672830627267100318263512435802864890894829743970660663938361973504899773694180688272265469081826773389913735107062133459739699071483035756307731498568043066378304362369772106775205169494057001472464345356839556971679863222328257519936390615267321084984450528944473171673854029545685880032477868462975732064399429701539838273651650437579452880683089782745652382913741220553562937324792670227996249530087486891927694978308509204919717131094271002182198003029766457816750209426305157377374857821946558827271953525647714706076698587522044273065168485446219107317327200613742599561194187556236639594758218598679017245482076485658445795391151500443976370056411700841690258148006618159838493463278711538507125615668013789955125614393803933365105373524054277782579819276769993505222670898774221137031498751799249350330609550037857374190212474424289663273825674540599560606138159260252573769357095648475631563057667768867867575488861830980842799392374368742564870929493662772048284741110178098701203189522825052672994048954401993275064905604639637690768650447184702607455159481477137150118369197725801876113133565841785704297809852197793484511299410067469721055423593070923285299761312831523640502930526924663988174719345078633664355929525229675490227487310581232360010813279998591769893973109285670871632034971831324777859610561653865067605228280023487969196964929032729079303704057954566777730671516191808343303728254907987105195332494190601101861334265505813248626314559301515110035086608828345147512576937932509830879568268100021213491772452835807415521500713372815761610998682029475438851232250309126459126343826670284976607255781613895573148261314329047738093739858759943176010506886752454992309573009525721086756741864893075094185892966009224038583935538239952360734223523328812928267088283353938437564601513002148276797527858262466169504829414417768540037241391546857296677661052066463046842705425922046273612293419602432700108624778894705215601449984126795218790940176256950454486248734929952874745988982661310094916269372687163239050486637324751851511403125128196793415897984610728405415368688624375750102707462328757653744565206519504170231712958661180718276272678404205628095008569371729641978549050882026140254389092858101061954688698098676727394853326509398555093191731661989919362236319409692714180612479863011377637372891381277769370449690874564113548752441046224689286367703753370152564468816498184940772458047738090214062159416383855428972470690902836212407105873240917192253061708896847788060971107239276438189401208888148818022992835800382433162941033840278061371962748796058183782174869684040847218776989638192525765675015050810487547190437063928964501026233419033517094112025837425843212520006894106964563338542639663389677200323414509417885512524065451950151207312079787115189245140523167032582698235624140667285338092104860348107137944847624222831817216257506402613433340553544713535828131176665983688290013169540773871501433340877744640603416444973901297389914696426012372345796860738908939317075287329776145399602001854049548695127828722947969253164404013002873425311992661655561806768991672774270739158654300579115105184294568236372204664614323112218749131796730624694598887773840931381518548643080227586731416492467237936070838471920779866826186746178698733657670017779981294076683261972243109912571831214789961104156724097853292247071494933361150368529112582386093609992690379579867466468658155602751218934865543717540788303495042326519909575590468706107103509368313516412460203587591099207722789100160322242168737972354369013385903216424841022309859955019638597996720419674861276001991015154136924289991967371179287522441039605874040345227253105691856593450118099852042677915110873961657629609761958860970486213514537329283649852178657019577952029931095489383561112636280029417715391596174163266259157514574909543454094573820210223493949380228282778157143229096901602721193836903313616454222512411344800329068727214018584854168179821718485423471008323633740961247842123899373510290654764499136224147676807943920133642983453380077408929494300146365089871907172943354968010597539186157506700881937804307957073090372164947501532570581395276347971929990067324683765025417887384488223719557854047470464092503776574436057493001322593851483538911833653583461319312153536300609156094372293273937634924795281161238442764339876734916500292572468046542259491688240880024302343356484161225509236173025980414343562261699553809397402545184334942993658980549996291766032508629974174396720752718364507948477615183462857794711507494907105793438305607547373792580158014466872535331532800728630787704152869555333456827016216638049633047023928748375891099613124308325214582553494559657523955373195385416684109515437056352740882065737637226299946861295228265887529763539780369417162977033695410019610936128409458279305397594302374476561426509957682274395886053103666029751156470062225441008687732261753962641299579636855093543294713729666783897815501930183543036491290992850682035095938715259991347226156074558547146212904543094423260450842986570624814375444812985290960171780056185526187490660145230573150455063622639884902085992385552266669160538860701026870777842025396091654350864383263592831188759823351940465990959312913288181519144775025624693355097711828193026707886257694100531231302014611738181831664873299652941326963562940705303118500451207292220749941320663404641851189364409264518167033581264270185045769802903446925602939262093973101228844811392136520390942554622889145265140897044495482297685014881749631854650616075610943047170578000602944226602699200215396499864598028917768110676529823208565715070349046115181952307058361336643893297455694956103676630961268749896172365697051645504748303843568728961764685206937517311277206377692888988351507327802883384834110716125002550450051207845895648178449060163026056420507336189607295795143928193855381086873756696645640002452840576292698343935508285030182225639005817953333431990721972594521996612475013281160614067572840128800680544551305847713218100288949488482256736361588952658761042093434579941171690632084406055529331195638209889802608694807765304891010622730373612295570771241601347456950974215499521589168072278204919892387537445834523831405520800654634135398568559859352336075571711081781034229403225915751546454037995386450426235007727697549575170193062191021315108856450455687246492683331859112045580830892893363482016537958883919091814574301913261113828954491727485875941994832985458683057260865188338700705730746083760766833611193145222464486183503218626094669518912989192100672125377330364172844345790951746432280846267403700572364512845800726626939165931771293685967817301578154019246585783109652178987976554970344436645924554597416018801389993862507954909675690042485155401121607848732916093601519928911868286815956857135142551631027376188794509587164712897410756956736402465708784163657747095131309893297605730052463466965724840026841534461977036969662114874013951153697810036071708883023101952705809371334903120813299224699241463513415655889891475911774925783819570002401851890936713800058192410731749614226281263866568517547287822696765093905373785925958392712905436226072181849965293824839336651910997240732689128903533568593312976911597978238070024339423785479462894453574060522768276610314109438333404675055239090135214323704641491527112395505958430793446144239968798460833923977756205398945256067182699691931485141164274051333726698432145628995348697796296800353155503674500713588687871041483109004435244512035545983766302919666222409056550322429062576333110083470229868205128374085760105676394089924187731897096167930264038114663280721763239546975197367947920869182374892046966963591962332507870698701027668483157190465328605619284490367002147963208914746268829659762130938389787738622537759050283610720282088034369543395083460685560160723168706451067668546637023163325646617425023671906031434414001100855141533466607837050530172873748738002612785350550725995013274082134032972719218500759679295100665532574082812337731052745793951609786268131131853192039649792065502733159032293709344571705923569941648503382196791710081410969066852953318611552910789315663499761754168638534059195392710344206332164931762210309559093468884457596125683539703433341708078587804163013360167942594132117825371138963849941479103102685825865295195224221258047929711241867799335910116343036076393819870647079508188422365170101322450831797034985850523267788101841706982871046377109790506968519852887800531063715563638818132475690215881536710919769065348210753277112537017177090460471387802042235796460360098197315333746403166193299689485962119173399946091913030936163060751340915369656866636906646117157952731610785907619308023846084118690165163592979945646661380017152128165710187667236753441014169429475834438852377970490839033449523035622745403327555510366811863830935641362976236217578730286517881347374751353411200338853609763067852997143982046377074305301574199806883375164958564216447825687766888069836656137659088631292440900793198528496537833094845248633350137926609054340629043902249482774385518643348205423309179289438965917482914634738770598297765145144162610570456712573253181977978627078690456356445301970738704441206097902415982974975858728260464325819397493585143200429723047756060972778824557782823208243057105876119331478692387626539530492260392909981178363743592870049921301580105945156861766070695025507508246830918869713820775619127761912824777858675130139950848420100031417153463837245281075504547244808975652793268550721971844012312119705228241242632498476165977856706127510452127284572247190816187114043214047226813501655197456044055789959139990509924047380844103427826052595060425611635442301232092050311145793900393431279619142202336920187941071247141038778865448289928413734228409471079720153585341650867771676200287941257171168270204220150163409882435517207826402607788576206613461826363192070535974569204811036528116128043367818214294279610012255712961202989664235850935684468601838304203341943434630798586134302832702030651205560585613153445645079302111612291602862929313577301180006110151634861294235117444393374475543190540219911816662720676084095248176581147437433679416770142730132762433567952626977234616710554989818157188603922159602633617838601243959356419389541112062984209947874061477952184618610788932156707467439225017919914214673723017455095743623243899506224397874416998825483858789236605022854301183745279311151928396533632516018837501868356917472923165932505813268204626017081092630370452910718761911409141793583697845461773180093751675295260824234198122456780631532789409547332772285136347862147434497675730937857504105188884888189259859997145761346855354955663783567742005439885177609849706878801955067312497313230334398324381480625188411466657871261832125322703475029003390865513019619139877143063110292956633191107999957623522590751136379914498978140232985966881194577832162373400352856468661918273568050717222337429732891409117304565350225331053571441089808163949705588011130858278841790399590352944459887959499656100543477936995175552407460162949472821477908732576478017171544974370500803970550429845948258040734836826179754274949558207515629800218799071653879835619258491073479210160887064262968790353197204325299457210880950679919000280173027411925682192171729647975535647620054735512128143230258940767826410984113671880481968505008676937652375720948427600771759283664964904462048783391101009422205786467949604171856950021513711176330385760640441649878199679052344104241685668820050112646408813719513522116442028808208001847004815164487766754833152538763231446239114641256462960354354155516148050171212923849346811862411797976291796458674145010069410144958536905449422018213486789735687547718500539107552712286580766357501705347749832521823467814809386627302314069305066760244421735848870353166711564117028598794950974686435226343930858147832363558716127456346935894263201899429791080785835810313549242458773812387535689417166451345063023407164773453353660304103040290285900776329069463146434005476069756458661611042652367014524620747086109648107381375481035300289092642571451524326658926268834453752997045201610424674697071880110061255132539150229907071181103858458182619334440428447474270694549749424389620075067255771223932236295250524190223771007772967522009311539417118705313243559889610298771629422767015126829210056541851060328344401016049535055989302721483989674052858427227433148562076357381470610100613906739845791643770328283796567872592288434820716095709436367389302773693506491725439479943102262358201562493427419826575551021643660797803383001631190745559595216125756559080971797336836009561477491759191220545950548934693163478429155337872770988133558229374982006980912280955589510418341221312021005089601981777271176011527471018470270012254525895287436914408114403661613529244620002353651209564065278234468292878785971593673490521889064341297838210202302222643251458675411638692772489187020624754221837212825030241657194561376443430501229008172156448490461428351367004325567471636274519541310083707501349254681826541821211096725164984715044316870196246544138156080357764397259581301163648774104935077311093812836051459626016723497725468118033235584377909323457656888044103175313892880343839261075845651319066673716011343670957807626057144357941407643396371224777671173815334075299989251105307208258205842962360609528389041785292501283733398336092026181070977935299274348706568513716698408252177023737968303371661453683924304514639231644177697452256189760203971835229551484385545269068738883353054114514487440238447859237487094020209369798022003851337643199336519716392723703684740490176461812976603939997307160988186558123354375355810090180939466988753621338026964239186908603867483649296217558045207255681143851279997597268507941438214522440226222530424322348385915781440595742300327355580213962219829135934094780023023567829681158773987631124599790870109342776254202675082077586582605250087908147165509880037226226391210053111323268855657706475389326408745514236045823582155296071517829489766268550086232850202174049590708050472253245270566089770213388748715245848486041920257567613895510576816907455020625664853228479859011076351433972432441218258636238218094894730917855964173275952021334489773782569897578730421321534721411590427661486357188830779294936484184550709637541712429891024626795046123114109752794664366580649731486379718047453006389463398510254634212307095278903247524877756641528972506878771835457241545722556053679997422047193574239237431878534504227390138594237313614283703571768632060425736020732601485277025688512679016661267538185091989584945284449705560515803548573951296723019645663501346411379092529775431413188013635433109982613485857480436940112418497656134101103121392595867622193572398563695942718267239140988086064346931381387815705189834493709542981928323366533205751653354568079382113472771523217252374049141911164721502544813069801130083572396130462334259373216546162043691308294626544111614043865070388732106908870237096497270318793583970842353443669105147532953770419442829826552243922752157773991953921971742769823269970677466727983786479389774220126285249224753524824224054706462339213720041611104553313710363383399519777815713466919845963257184180985879987894457878018651385043291063494109794405049643995127393701078635839814791299590603398341638605564567040088982797158908951383212604275608171725446773840618989706976509319041929824247232254106525764945381157955987143327467401266510574272194246758451415191508369644582817635927539055736346007787042862602004598170159629830959916387748275353471727570362768113613217056903439227631003295483831300043420784392502202432345130760882198620564131213232666048865617128455576336491650009891157803719368083597377820103548102130450750760367403339550076943280910686608717327970119806704973566948711231576281108711486801636210993019043012142532373282590376590083654046759649578872899499569253525249197971338237462645373996956272783426393508954262873616987398662199687563411023099925165678762260040138097960040755916972496364533028335859477179455232943971396827045771419242798445553462873232920575357354457039587250339067279515604813138261114163992183258229399805149550917996687026208234210824450040539914562741771290703402241781721759250607014884794810234999404253088434749512434137269808035787888416469487051439425661414772509765790145005151332464279882088699277063894500561934655434204661170217063197371237774371627342876096186573717063666722783647677875619111129033463829631553977901387843046498002690939792991904604376529714350303669827529799679614530264860580223018725238787847807952606282737253035814268154867808623135606772795714901863845619245769374796120701863648708998931770735483533327021664494186556279025263344032840330306540676326678965782463527089102082801503297346324876727138408569113481115475759801976196016684056098663408803552653745004043884733991338214737614614265946865398763227349793799165628387311925186255263572686347203382022365724065480015456608845948906354322275651254149989364160805948077495350787289957200526635726306647681296312883692798499524817978468115169415663994113020602351595725767773196950319543636763764935741621514406323971285003105924384772687028492518633607333484026022204980698604864843605966218363488632439961291771570955834156957747826901621208504732379800406509311745193901725843568158108066471281927420838308464830389115888298759770383754750804610690800081781164454858534314832279707908278289909639831711174812551819747839764485205602152523499656491443298268265975977375974058031796465513451747877348559784123646918026061263783804756542528105592702557507204475871630266528684958789351526687291539047557554972734199222140656931820553201692292088425509139772353313977968622227249073550497810863903847522174466613620958866234525570506590598282277546846999280294835181320857652883812751328957500893671414517914285132346556763891387352856498102792219575996061588345601086977278469715592799009484990015500470559215842951626771456328099529172080946306680397849446441360817071198869943433479704315618012475972466857914420787575794394216591526337340746239572132295305323605094742952409902556732882048636760559982434593581178736299328241415682083736273533039520905954603149716555235296361476454329729483022398998110921064545310082178909442594621140700622579367859524767918307353298425568078424071583965525783574125488296652149271824128223946304941397201546820623920002710640683276741177846655926388034368848288422229943362369023815381298838654427331948000225057320240382062195369502703576875867766372310085759107783545241018429390351484455635943668518584015472447229939073891614657233724454757876147978770964752666728601075578386444092008441633070482529908459459494380059344388446590746414709992374290027813872970473373393225301743799614538735271191518907385899908712532781089481441699288682452118727504848947008564508151699351435455429538845826410694962256846167157522878862573546376358503189606812778980531803376015493266393446593720482414047053621054024693875389328464868140082729251326120937173270206129123294447920582658959987681466213368544093217153514235099656115370189791837579359122149515753608924013074763016314895320989847961944864011519250743518019250228712934836214994701347910837367586950100458715335466046710704595889543520082064222831859795171935526697997273884419438400562599956949752021289733611670331230318810243913004097452202219695553731076411299923933916501514507867010891539601727526000639684124730963544338174635214263537522790232185905016943915908295228826464898177637040788103030824801340955414787591765896971827130287175807124745012099358804350261458997063091011954176583141658642375294121219404147430313030130780937219013565272421504096398386844251519212775042360421238434944189101543699534721321772338565480844873861430527991148064458538099891605874353965831868233527785707120037169386698237685328467007932129313306497872251973323104368540804850365798632291635885766177423219844177494167672006939890863818566842699741481405146905233617950301967692504100731051836767256278434891171208943834046639389523341530955408340786192702357528142295884778000275847831610735228098355960096513461330005118716855776349564854061652597367466496280116015356872856407762531913646145035374918357822247808026175916428917703788037851870245808547324733088133594543338441797720735048184887915811596284119672999795746684055751184592959516358793247030788080412383133220313088900060665080799479894614110211576840380875516939499317097916447484196359577599546316034881383877447408531320355361295871505250339628383466429428030561590242576050169389412088549545912188213112296723768660965010628974417770077278377531821770136614361594638025247063050928629207392341176681018045993308273526676324782912246115424941520721373183766512717694511531087994867119113381989089371928575899651612012903607082796155508940453468173017376720201021080213192289368724224797819212128928580622894099617443768846544399525144194179157089502832438795037569698939604302357398989010013102499618211857281023992881761698590545219378980177339224557866581837040068148299158834625889515182707920436854514781013483637777627781657153285241885933495849957570771929120355399781705250155028461330169830511677885674970844313146791168180238953831384388407652720268588409498640290191489977646970644569584048097235571667067125063820725869100161579047642725781517036011244241221626191147670539262560953529809828654065916917893541975699495222159692016021650762397708238766394784595098930013594446565324053594036056005468204184303164929876385625352872721283518698394913318423283371195715236091482612937940566145413717504597347198549580418394461247956314117313610719147082155672925099432299657608075670274378564200258302797490300970946657559860633637509926699244157374795029427885583034934685350919776152558328587220044369582039514922460933971361123730025581915696788926075397263035668632069692830399055193780886547331834852478421274912172455118429065336823002915116541303877014716332249349177526447387305987224718774755207444213021707047208558330494127588857842195049991478413138656296325964266136163804370496366001738956326788654539327688522572396806932779768795657430031390819875955044687896437250616939545652131312917993472097880923900777546751402816460261662793542629796287939238890560537325631731684661542238450313946209806979170538834254706772717590255774219739650742994182757952139281437456536859590758231152680837517022316098079352696367502784108315148025580865130124668396705512730885999010745872157244095512904233903169150573729798358696590981101928863981997825975957527080589887217469085138510414633856532882922943067784580617508328855016010644552795770626930760975502901962031050449183905138120848065683602220126279164448636649104534695375820500810403529410130315389444971055536691988706909269521122739689220257873683914082240853931578270461587705961908835023807059852249906870249289653446416394878957740848577497487690475641075632567033611390088887566989719961070248033055412295149314979422935357542953553315396228227224183582936848805063046518895007915765581833003320388215690975391352830285473632725765393751908651813725419533578020147733922837238618366586085593183082723458397546837101135777689542219834494163378214912808670651144036468148238011678319633047331966414282091000515076615681866518505524976304154252994981121255013324001338352625263786864143883396376913656791749999664784824373696073369923560354944756958341192668961323529280673202097181103925312332751989140682439691670877036449158494717271980622063695162244205983640366254496457256943173073566399179579811757232819875689782070498714185174130322452159951567315801293392333657047972586033783198177107871944338296907880610599476867668865601210996914411739759924288232377748328861203434692418242404355790628546356982115030706604007104242941157112429377362000857266426594845011726693885078468147289655706574201930752669352022764078661259329811245471912626163039705764386295236094791224452900194769578567275192784049796343627861883993461748048592028286734148225242667064921543015732755245860109988400544489655692950707629675583851887047325350312171606148093275024410126958310722202233436083283255768600785323738846092067959405200332196622181781913330029637724850701435373531374078480844267382268954256244162092088058570833921553642520029045184410512765920587123926811557428909971356490415758644512983184976439442299849685597378307107386954152475721394806706941264240885105012892248941670646509909034166493919951005216889385513470335056895569386524494015120495733056156832506710874038725811734251272529221819937086243403267390145733219731266299560638815782387486084730848979835305468971437697391449090576996964402084445453604034174969638833786089474590474392378237736651707328964162308169151733658055993957328002461969282118894939188670206860433314642432094103037449475468601471771313950148036643869490394112957974614677105743517042732771395925215376742246931499137477094352146521847095150015751965571829676647913983549230346428696996154368771767989122066593925452136670182349316725150855616293538047617827470396616540761244930306097765841328931200874617499988509228323241138602467631219500152444374369823704851933416336755303357566483773264508762151578806716789821517216670500967493680622917210147785088520074206646964353307057731645739994592020933074568602288038736464091174615376839641253428157202096454326843828172261791285663583957635743522421375463171020193638746565935369088989616906111987538988879236121242251605722385086378974341494016199858496526633954747662721585422519515622374555584019559041630212383315190419992644241284054977897578328884115447394437417227180024127004188395581638274380380028722810035283666850583847179535333787259803812026725959235180461487905410145310760332523477128733416076112428085123274052975269143267196565879309968314488391893836701019231685761124564316221031689664478840998346228096670244601386637423423192867933741406202432815811794940546592486714477516362752544162930542763939943631273847301836812285380143216803844757678622912529403407024943783803289655003165381437952579781559117763897223772490602555629465575225841778620503887346729447888800319563581102637933011632008822239205345709552795383916948150117525187817145260206014604715103125220570893371705220647794331592601393141812354815173474598401337804489626672318846365097125479575467950667643692944021705460546877054648608154697126351194581101605042095785604184813199691708949822996960510667646369193281930517104521529041474616826276174478539553278850456899313938139958640448633337974596926425594602156190897300133811632715091962512294483913078210522606300132400861134522085974739112395702765829684345765348089013762561327059934475370353677428249905100045338307570813829563245695495777585803303564487676389021579010225366745693901356207911469995226328767135042063771167840540062241299070038613940398043444503182565828726229841382906402692529452370437964890430454173680152245549242606367922187123374797197556717466791627153051559533614227474997186775125609469572687228582563116301820036127414059842514900168970407782374801779306259230711335943795385806263291783048904836879769464108817896808780155760827032239463141509304561572939683431227392620829840548267261460526391520375130612327398767263444000114290301360890819547993474208152304647566446307767306912936759927118257131888904594980927095936302853053404349776594192881638440054493754430040132077543794180798271805782623385364027268837335557363364875037673855512713477331966725104350569402390319973048743136826424950971749276430883506227371516104676626782841601615859447741606843135928845465120855743937758932943436482642008343238322465773089743662246715202926241854521699413842870365394023180288233668606990291838201006441989090289833208042172054560320652406783558654817061628987142697695417235084692666227954866626522661018554880562733015051228536898520530961978360893363989358067461756440013604103258041936243202613288585296797009562710669849927346028151630546932683621878048551327618768107186072811525287320271620403411920318343439375540294971521387318214182835308514065543763785235713682870258901379118980579673002843940864917802320583289954336423347247349355196202705533070885331653811771929820841546073872443888620711430434774020291517516658686522760579319514934938817076309722159221834566769404786096072244131769722641901143108417074528615525907624262941393631578404599900921333617295111729424035792585615147545407532275760236643588462470672624085593547192493030457789590665335674416709830016466842704184634079520593341608749718929552759114267401126825337951561588682327735730116164749846003220819869700748569078776376887027039697779444070688877863872231080976840175904003164367056116150955265392057155625820287204460739604284724550849308473316635290763319622063573951826712729692156593388120432925501201794495970502343615323296294146788656503565188955839690224702371773122847548441115937296357084264293551393215847910243904268519917836256670127874704310609460709621131597414818363517896708376559151343004579363654160869466168009453096019204319960516815208563157143755320339819120431729228601734569472602561589721762520363041925652858067693692356866100083671135644829999464540909397242001459034456914603712791485896801389304131922239328735568503657918848112065184278618692779922010554568279921234560986824804159194911663290694339477513519521317936705187055146547494633051289084544542668124679733031659179437696643583641778938555001231345489539228887759885834273969402003981321001495129180473628230616912501124411411032156494035611956484814018945845582496362911673114421280742528956778382204907612113769655800105766927750462657019831170171186496472473950472835285507922325591794848621317765189259979346611699438370875930970714935787175701394737498457754056260191574610874283638581270513177218471339623955588915286080590260255545265342604873794157485181918377227513442426877425588709433319398363904674299969841798362018096975261431761586298754864179147190144641399802786346661644722206262261357651421946253159858872367411239939736087834377868988515565848747504667240101943338708635716850020557728129097831266876368490473269775078943260784362167149492592369018891883908986548771532456060852908263112358192237834570405005874653514296546834286416960454185837088210431082888163675869503031474203964174345888657226404835723533499291073760769654245767964484972958167077826600334457507364740020199583748364858996937055747562913048966487984801464593059349643593785781753542043511071878175022885291031577575083569151953451785522543872087585055690424820340458381941199440295246360299603103250652779244070218649119390275786733413452075545334378238121051609337669300823089944761484683464479042139635440191830157441608404508436822440446226500448169865880295414382873294108221355075324655039774402319873562738870501805206034903139468613909890180949364113097922056439292956733581686443236946083252433534596787936917271851309091559680902637758839956808797866984609194543411672594139343692875787087500945990389899718481434161599882380835698353496285664690310960441236233984490225208101101375923402627744438389302399795703148429241778100689417999408692133781669933517099684073657854335393817793729501649675525815124114486215965619996576536986242646656939385251614917967964693374823273835685951970023309761203896527565842021727341356701120397062660425390066206864756874895045979938257264788307816852212089936512872662912934750207303571895049175529430895599093942657154624474778388798169312154985354181070772994426209731041673079322956990766997535821702369567088866796954114504839380401695792413790044918715016653550507610945355253642584028003438204790740481245481851320542590992410428466266096834598064803850848273755776217710957748152987632723717357204651399735743281935090528313866146022044046961233269006678886722670561685175958703728105827762211245849522404308742107523631155234666475666064920009514614629137404042939597122268112659912265119810746164161374491537474490011250285819424313375048802381217665997987686777336902087402689972207337227346281268789263254558995081672808259134780738667791437158181438690004106828534310511208028147821179940405803339597268978840214368330230803387339457333587693701859770606688760388439746468878837750130605358465921117334446379717545025926291755497713201162804273960909477599679432950413513421661798331968824712440270685086843821772303877366828349384714684960945705338578538452019358186176996473918306508883048604243624751768151020675326307749796244594723415933486247884807772394853110018693445227884304750317353371717227318523272202175562404375094597753968184997064488463316304286414315076711376797843791148411676918021304035301647091159896103198833234062888531011423108825081914528228601422395147877630360557049408186856226600709372349281865990173873127791804823188011155213110480069547758444911846510044155644730055558277091536785121502161668470243880075056540524309161133023585143169952762131711328192862982711011493071206511565731237666417649370595177306960978377378062760718340250376441406518654440638287181280630041221751654859817974461489054168352720249545465928715605403244750794587658735125686088350896797316850789345248273726249125495432498228174159244276074361922769814215435169148530601628165579514555559373567553879318809556637024589500262856615801420453786028645166972022682500502106315282856374538163115185240754679761638427766369700537219659520871723777091681522598504977401791739084488771435343530637141595728421556440292610722487305850723746958976844178043579680739361740612214353238263802059589454822076169611834908600143767223448136923216895561711491356449026454908915660058428929359189617969039418458055388349842128615393602153031113661349802943206271715730448428439608888147019174177355731331491577607062098265757876317630667710143690016807839391542515254656766146178849405886640853733262919998875551882208929304883568882977418213300429003386847960556995798018479225085497536405242079105530450653356847974167261530959581298930046007869283003414744981539481608501529883129135779330778296944458941452201611348522501799932404678208850668387158548972135905470989436644345608511356796863986912556876403618461118267653186475556415433678800937154237060744102148117280529638258246752681017074159596266947984744026069440891574763039714254742631282489030671004352585680649847915206654052243318723759096201398408032016862734433365445611678409283810656272088138162135995129567874862264681540215981786008296060361682472048477988908949888036839384615774131170290026934578164518585629126228305325809069758634537464029653389143621785615732707074901104420328593710749656238551089879288811983071227599622775839818419943188832269469224809182279054999891168980019620322546530109504825329780829192198606615485573321402606767348626917759846908300918963955846066993942824647989733171420160445277521924091387981575376571834662122647540629956598109971232776622972361285865352348852668693013306522566440868520032114844555696283479468828227240918014944851836704380679879677220248856764789174447945459289357766870058539723111930294624173111875586336148070050748583504400610939428781241943790598586500089995775026235764843825812230114730277133535478532684537766328178404903697537168078617650729839357448018598292441829054843285746713248095147418557685327538108622441136420935193458126761752638176565877944027510507815388892973756313232969221870398434360739830937205102726625706545731603836077725881535786526736684133724002114812580786219188402535112886241416749376558967077861537401252408155218840607736300356086498401955128001005686653131252826143363497343051195847986052083585902638226677113654998769303747815074632689199749689269911903845168321353959491990510827567153211606525918644863505530684146693806714700437440986137856865693232987074811574245451618200990655321553040205427742182604923669989595030505786360819102536586312282287487960982266904053318235196283330841746275955655687317611400827506352156876603150371409073402300460385368186614844496622287754013234212244621598413525651801714978020266331947700132561728189102550716194047035230101311933689321270743084074561186867166213268353428203070284751877596132844800490246350026706002471237395239994748239286458925422157401219538016113607426624784397705954926360131979761440437215700467465353574983134444869264761490536375903400378221123733591466300365649979135162114650615741219341774992795511800065911777183325322671564979291249984436592477783622038888678852398082482429753128372374108645528093488934080892144302386189569548902606002401664126393720987450097107096253753814267926540290594073698289043306896446722862524474758083638386317937255055208118225930850465431185828280234354145914756657112549303569135532565162374047124089172666834959677429564629511186760947330524874412523827148684626108099297863934794638860042328416468473806676813250600899522582694818889709612308160648554024980998278952787566761803781028429644996260296272616375526464140605253317197944626087165619129193838144459159296280311921741098551309776450908412930825627193906841430043978621467554239498137574018116561838046455336381610354797653689252130908988912563100905251789648563177106443084066259708196449679773359387086918035183805929770524209926878262145474232725059200496077046425320668706874066964841401054022168743887026942106430748978029509134253365913967074085516984570934597589291754212660086026473503942177378866648391326025713488359928371272750881816114458546373843236303707253193903076324842009515300764524447702452476058669084966932349465330737057098656336509694380966978646642579284896664077061758846167885766117713499703363500721960924668039264624926278827317126873999230838235383140741738412199129725376436919464140360992852139026002958851760708305299808825209752130589412343482594546306653857133952196389444100078445201743783784656712382393290554357090052735593889164616106483070256231072261547074611477319762228873118754045368988535606795266582230775088050248588403551434064283093451160487307448117220378362361130828624099929111214404897089759242176498675962803276532924652020576290374560231409216555024164553178245033948571982512989309739921430710959168927519606745680805687663537647393677520514327067921265514242127923412669121349718562399635487964241984968678889830357109785268795878839092244648953169193157013342917726418159078504158077181004481218549462233636956495996684602991467368978926946697524046771925257603228893755970710911458078163954803790849114348296404512608540030566018410724743328077607692875940557688200920997494081898966363145718477974250769091747534692181940988198341091484379829634678383577424555244284350828253755567803393704727769969487182838762868444057276660096798781914013574885542910917724136865125849695004190715899565635735195661806334393951236031388079309827868448645170250603776794265124855945102813500257632974924310343343151486523169828041156308789582649785699146314810296363138362250032121464578410465052531524636207485569825533521503148489418278051011668694127389099551366724842771436822397264300780427619070602920967246727344645495304734353978997620266609950701777491031861054718301874035145349348554123495508763936670867875074708769218901136640097847222321270405593632225769976639479199604085141484049730397384187131737743988431898380602006999183157693308444674999956323787717041100215405674207523615326085597756425963058213800305536330735853424450156887196936549648361510502852026550551424155958059002986299074400375801310331986088296322000725990540362660946506826474796106022786065225875824730838535178583665815268617922280377186417196804085548939844346038783299286334171319665007643929216241262529390832468987281928558473654266943934295447760598660399833677052043682798611914652863482282264640877619660237716010741713153001145842973093973225931341431421686277123482254996145464540410966765661595236656486672192310939044616028808873733576662339453716036296652228155923103285813665318639796342506290621525747152120885449272615570525182473521883497612637073290016671770076314326212757839331202918563541348737596380432123262624095998423713738904983368394963007651919902281986243546049193296192443424939848221478880463003453400251342824835886244473990269547570174242802253222832001158743377743991564251280657479133547717871895008621660600634611759881658359562730070009220286141366865531494660834422791544736440259902821850432034907837500175736958064194880355133868040915041197714193355207868209032131863862392813168962717680654404702222931159222001441587058246412928003262603103359322834290930516853209482841587526413958520942270107978118148793083309059661298462594795012713519378315758355747932670352823451259731688090188314801638096727982492870924234259677358680070739629542467710825902676794915603253291830583788112586955770243920402113631651922225797156551331672086898781237110448564137043112838115321461462279157811060044672076881603319926479449491639871636521551048687218879269958491361692183877396992631127241598731659821834609143865041129157785249775307715896739640820197146765430026991552264366922683311561105334543006820516038533611417626005142019922962332325062131869389336958895201451154435356314967104180234439793590637045693730749097250122616957996652712786347633239075656984002524440939482648778002269370524111062447573475493579453799512634256146107396039119693471451562264070477400861112546104909864994001698714767982088045068737561148935806883495949874689228125241987383870093967744111235005278335885635313183095747364794420438744034708033665421388257929536651477235025809703615197114409330805158938691244453524986465495108288643505492433028432662709700885735296221057870539460590395539496221740416522335266078839301556573794648007581487445308235962735661677828554030797742865452666575280849787721591740861024956797243364109235819781423848972785514662919403642863722715021496384259872928035362592701143005581974045343210193165690781194063078056401242718161951237834635900058303601008323486519946536660405747229755111734996091778671166647091347663594169914493490138176909130886995457053168400709605958489842865956672580390077896307682725507471687481706842143780434398780186251477898695549363791271413005113316007308885908225661241927215350362937831581408021224141104430868924435937205343900329855985017164359033985566855514941883184720125965170914478929773402704299712366942528712346256490711846626577013224106832102899909611287065516127878205670370556880402631975109065374750927420414339190380304368506579539016851528378834985614078896131572448394679874121410295152481526747205012297847324092402883850721917948395388754235750639748513890392153625508381850527267405488086112415810476058500287908572819520997198058633480162136252472152451868763759071407194964245418978016820664722437342345650399171114271330163475342670315949944285203450260488034897067327714958049276479298398507048141503743106433707169924702409768600901326928570836733355620003882834355031254665824783793595276646658168276826486773879585610412775062221091585160218952518905968415923842155536458519223890343921333829146199741937259001285253640899714091992922071707847492948622652804462408904784888686644748930812258765484223032558325619478644996787548505616716628354310955591390707265199532334994972517207443432009537028397083156677615696633547522921820885825588771208225911290030421343269646711918899349147954587483081928195157221947116132828434619477238388872331587748295142310567454592843661767697679190840146416486589419282222040997073654716160636579706498180917861410842921350183428343488233035136841671099499660355661399052717949564347157131820833163207528082250294543609007373173213856042869091439715476991499556488099725711221857572726916867527995916927804049309306211425810677119981090651813972706267691693702545752231630852416207955104714148001422707136220115326402341475377620513675807745281255573895712682600342390906226589665413754482037706744171391849962652648503648790145591032162896188116791567760310532734830648376308537644698574553423204682446948817927269427877180597044886451649778368966480458466839351970026271599368853069802158611767045403825863403315723483175722329010253708863517900541094155380838615625502081325882182214074983716586691701361906406878068165119910370167841682800043429536366408875354863287802681574062161104544688909881380022328224711755627274140283305363762163184370680328879865106350720004171053362290829755001506175344707261631475380651600550668588115690930277447037748877849605644199790725394451404984251161343177518076822409232249249684859743924140469382813944548502835331067720981200282837915462953951576838751262962545889031113596929941797036345926999666023914778901332564952254000503037324502277701285384753298682092763635483445681480707853402460680940980120731861547698097334041560029431335249558472806627046061283306241473560398907752580646848973455992491538074032973749827672063784180908263138350826407444701358559569449187088837700414152206916205395130292356233110910716496296607385216554095953504011011280643390733246350900930497028936473732804543437979415737762945209070441930761042208748969254877482635621230415996279471062617100158299220176592382943710237062675536507385925270828853489723789788133388175369274764174097650428012841975780287510003542002723318487346094616517613935338074531065876410934611668624475545553077470618280866451541728661511419530223647750581406277658717409517650574049498135511106660750816671194434924351201514512872339177703907636192990097186580480500052093766338569359620809724200215863086765515105654383278203979355622801934032426744462430496404405034970239881077870920398255636938278122234297101738229156502562604180379636933277288758375605089231715844997087742826188899270769773040282237344024734075886473895558980001065738703945762896718833139864094688370437837064395334611775585805059573888285029817338941410049243001125123131568419936196980875123643468566005522322769044695391995304957692687363630984822059692312004842342437502280295477761205323909741295791015600517916265907663404548897413724234541680513788689132703330014235223137694693429778258126092379496750859218189089519215127901913888416548274649675725242061018107007781469214620094149036745617140997115400097164989912907101891284436269571518032018710103512776052369312947684344044415672795445269425437656733119620461969253100955842819681524214621155821935250871758025815130531610703744601116196462246978837981624390367290609661309880697769939243000476897293435849484815266061709921615470221603112615935408786552525809530673001322534237514655074823066136896665388174374227522195568276386115614928541610541638891563443934666648681772579025416081294952038565313701175696867273493731121999866539253095887149434475806762567842470205173605868558475777843177661052284280440318361564408715956616961501738145448195795899365045263214126134800835785423408065066796603718546363412688049094021881979995311863541413012213128587356263441216912359754032343573126991397776358592515604594736403541055054021846408870400308435975218088175572629829982036633302234692668219068435186277127104585992383310246017246748097679040871580350283045448365921867659106956738984316827290854247140071050889922669582655694985889897976198847974167356485158262124106282644732000819804782328837073981194568943392389336814626255749078747439460789371502424038323392131414335167330229423372939719804314959531557187065503720586462612277858057147081497539295979201750531014809632462214557025138318984764272001314700881083484895704860135024097367894335300355787358236686943435000191136532591613275013766425113887968128554922871540344707670791466752181338516318333506432187291450810408206034326800152394594578985571277969385849434564392875656862361924883675020771204959059559683450645471522992982700314951033053349696809152015598510146077772556531521565920236924911283274291269954868634732879010933137205200890981830185000625893898007303778912783924028282859937096953227837792532013216109645584594336430941900996642498071034133164026928005961133724698320350955945272628596314302182500483875353854782331704120547821407893925482543283802867019209197082097319162812194807463976054933292903982391850953632517803276134859207712803183718276443772529357280606435670927357420934425162130238100982292722123772054782610573795105726804992821518731539006388607900415677859616123386843804292686731314268290478373975286879908975267380590907611878462098429225301772414231908610226911514575569425411891922670519833226292959532993745105994225542636636561261186781096865042034997673993601573063615241739604328441207924978084574832443950444371982219250333616100810724726268396850756868475585846158332982438898562908601122128380154005032562245846903927048056102289192800139028254753110763881169818132111420640649778924369541943254862456094439789285784656318547386523944803122936300689640763059300339859185048655719695709530908160340534178541942752099312911075939287341120269467684700991236860576536251844259319503397210074844013163785267628822879371514891113447889239932474412877503915267810730859428670678792449046157251348964173758679147332527821643690568016623379157300652996285003628828248932075139623378652892201528254256431571527769774022297628993765866290088424039073792443222165197950218653393459959573856121677359239308563524279141744724209877788075347090579958501196317600944673090439437354544054265514853636752478181643669542190366996259156651288903330356671252792394548322316504151487300348764478493025309740319749043064007672320760932960727369849865353943146115588646416614178374414849730584255011669176038864810428932794282632918112278196482563255246385327074384145187313360046830072947495101384401215541507380907358370070772944990094288107549326882250009573276308525256955293866262100094759698146134187287168464943272252807827948550510988232238850284437829740029624484227787159238528575212223448581044864002966044759534316796607052895865740443367458289127922911828860479286859160628887203530500102256588603263179328432568714993039906757704216014303705327899214940041785803837209883644172659292594807330563031041546564187311223858752849803669079980451455894993732644688273758481948697717582693968680000641612702417062209945259757613817320321890114538371412022806137756979623256698968764372420682604431669890656608727948069204698689786650765723913133204833743689446544884127090295565342780862432008042416778455509222493148638229727951709285030344734553824117660927075519614764154170168301824128175755702369857164593008033188131881856746567931969449781053484779814340366508465005670534920389571460392179874769797999933684476588855243724748220293448109862890038294798859742481109976573914710279426643182158386160232843167707358534584663231849291529419019001852294724902034888398076666716493716872058176298248164550692679642489326057560859016316817806201126956263829469537269523321596134080783063206969606313091332013710686270380001732653194588955008033891172705195632590490821836046353429425225545448290404738302558379522979428769297270224419573765415345394360739578563393430808987092616893036124683458736310410386076228891916745524534929833525230918888501281936094517114911490144033719979265644172432646682498399809468710786411769910152825453312060747598863557206201899182203651353890036226707440799576071986570852512822468792187435804631301185939790599880850059422278444659698819667974758931904376972861904489950023942338139788448456128205258444708281287646489735661251122808027440990353256070468682120756547844801570873708826808326279809410680620625442276866686451497453989138972773055017291653853990889026529303534277344318246491558157333922506021668207098294390904203217222682993513652179896714390732785182389716314676155888328483101805513750403355515046750105995557911185388222755038377836662321063518540235017642141531476594860741755290657094969621108348962205870866633338075189504780203894234310975630493044538623710282700047811502494834664077531622025372962463556849562426633380551258988710329079280602079665836906979111927604954264673205089042878932088354497473433529011883455486966652376123606357632773692500617841139245625580641349500548433544635707773462080710084031832355329350428720668943877797464016281163375952008068626499838400929083616196696999949545499731135471686852904084826209837827095857780869714055158823693815649467633537883568785311563010864391195629041311485514462868637898649945299078806113880148933360854628202538288684928452914252285711581971707479452230479685225034769997295461817178785864656037568750734414489193612798857628842192959780950336315494221263627922914762488163041023994258070404462250966287149534220719554901299097417407360097328269650901319634732140884438776409140484101170849857340489435304218612450415960018840987719999645630378799704951373734587247275138892545996155501336247656730314241067213438475748944039007622682094943712744821522934046279746313232622396222368332279214648991799112852461321827834152098554964596337476536279182096612121902789268192930077533127416495062252999807799204217889834753765360947228671092619414358795859547692958052708346230040413491317261007414759809542682051798293474825385505976651711632940662967655432672267127196149090637223663616937828306557503326163401815419277960989829368985023903137071497978290089278990485448795679676727082639353698347133778667235474810477912662962055551327041504782841480035942394406794424831960054419947042432300398192448312105516860630063459454990811172327499649870074370617478680470556366316470885808775959492858997734068446332417637494281975405868796499615074019662163510615137679978618350935173037809190468958351652322134307296754196984538683333062657823222242363612275292879609462501662834807162708079192643249534368100272096308878795597038098344315422968219554133831998837235737183048799111105912958744469041384020597140057172507211303832916640536349453975002184873316140710708153911717964013953841954775170624931785940566513046356595528800082472596013402724492954650993817401354746400579804329484825255968956191325706881354898857057910503457641292990156717409191759823462275038651224290640657891930514635023788917863441593629550739770748272930283844348880331090861150846207219891734037387103990748834936177025935720912883232022563065623877983658407175852083103389176081125769540406492025541062507077203815610894992366386032551968599550933444800039018086331395391570944923971115101523851587480072124343871929515480142652072821138872728039458374629206778082408465726939547901176819206336526846413608886653919129712767266215596440861340241744332533700223575014828080583048842018268816136373535075641017842260815859301581340360835785157228957063911750547535898796332074832996631786546048847823764379933001758399470151718074682675630025686322282821692266761017840098865648505131316401823717077879383982103990342719775781719596561382668343018460142869854652312300456708053682968754520047984436868651824447414829677025229608563266428446891140967935206812912749429455173962994121295562705027377481250633325787377650127277235538162549458769074865165869238225484422857827683027412524251337020295309979827959662470531638978743655161798457216208634422316703726663442529529210363613021525831346111262177443643268704106317529381653776697605156253461533999421752176639924649771797567300844723306530554748718852434040175751842040834425239439471098894819052891218393225335512324857082243891970885396948402889169489440160492301615367986794681139833172439202821519757928631514447511541811311989952282489316396113804720827005450189989829399532638616891971808823123296404186259954638739490972642432417368927529446943332065136413360994471495165906804060002145052258538374885313804043350469684829188282164220202746731972010307463290111917309441195023553622950880871424829975834569480238297149522136023346558355208562915679954898632975653090548301636988931012634951216717122175016812614326605886774621330895336029489146890479594581705580296804825162819294748782879439308518674431585179821353755872085449289151548200801561539450116404097061715691319615211034156907903539024030079596347919831287989428300441954301743723371883974469214139748055050735090149967400146340237093471485333616739913527457065752534568316937106508606237662612398413116476853239970523715590610085658415600159720974783366900232949175151339408213936642001372066697654097948282040389678058426485353121391179271245839404890748491254525288365640992766155514925375453139995353774584204848391211498572091942488151056366447246410339654044012752101020142935857032306555933688054794811641062429273070963121838175779179944353210685581854814931493766668341048904974264486208510565755167427421099829002448707982964617368269699938356230035990256020795004390723243322559827540238985065204523408321783265018162908811294927233586195570586781421552497817892224003490375133588366078686319633527259324121597279821219640817540479440435089970341115600481177011472922283708615100563477203966658411916569832562169232400991224331873030475884664681806986794337416836041099937007987270612312940721486980581700058583821103797971357639847977106116095506724429082810313749700139071984532082444540209973596377172979734889419862473005618433757233991694379942339541067403121557045031539945849846838332233194225409216178341577709190037386383031408530903010371733833949180277465924632290915530836014275499066447476752126912729574340869050049662253526218696675660465762045850172803822957639839161608628874515148206310954078387838205001831535774869949336445613077871156984590328797012597091846550128278169788717106058261897689990992402851884543924573213684808476154404695905955761995607316883946970984052915915611534311321352833214777297286076687769255037232712226909966783562256565345616474680892116798497753602858644564894849494564750901652098678365635038752212161336551411679037341642692699811614344429568195339773250093967770281226786415296762898146155185234955948516521064297451990048898029965531325864988806298097946752611478764794251288961106970620464995105745298076066152930574400376969223810931325166833681987963654658829913739442385914678297988431670577809177377725960459180967798487812824769407944005237724908577774044516112076244373101031797288415935438090823822907304836329771908042251744285458402306775583462894027553903583479040870288790508458865029546015797858814378387976174878954844000109947556847115253621679803357683798840246030631906631723956834968542915839032519255032623346322885016483882643060825709373952442653735859768403434830027383029754383036152768557422893629362519245504477917555666523863025804343929166400911302048955697758261710357197935429700013053697603230224539588918010510290695039560291180791553167829611742314565456313048485200134370578118056012210811412072450159526505283345643857333343057247506779469652744342712525673916421552336772358862740021551650330498725760722865684598797777979380723948510415063693515551386470561944902791165423864907903337509110760821117525096049010602198023053209710670291648218473276863460782140545058675391502277255136492474351116469054809190888616705567554190922412052488798820537144242622113649753441823937102699701902780229405258998269037707356641075913917037935163566126079486871998822315959409057504970745566319961497111414687862315108693051730682243254348286527562597931225025324118290750865265800218334135060215063902423139145682337645449066902350216093087867812211627698889152799396430326015514227573361585954537435213093954354546219034770682552678738718564717198144386199768054860334821018000629433412070223768254529927599990383370144311565850153218916948211133355661667546846174591263403571127965836904019419041482076259716251332494516145477338232109262960529330820609696228185078161985334100696895534254211541753856101665067394000882260608953782978227553029852771221645502268433992444183480156322423330613940878089235828141132312723885237424068921899559924258199740246699310235411223770092543025012101058988915071404102880648920891025118744886816885512651107787668651453312436291180519513313743328918691397649561405688135161032152061083947144869816409347269490120252249695572494418196636058693206650997296635854395414138512616648855869214109376862449226731539582648757020297333942136171004904034264367349905142753768996130542401987778244561272751679711745311409186262301862829874583601419209697316958859468582025435542612060687031307419351142127073690297434212215334724973366862317869467658314637326856378670487225644797411435599964666064243418561520820119663872394020999031810001339642405575451103213315734888903860202145624427750840496103508742508935304346196121609850972025541539761112315438788573396439212703915522749757758456839511881362113806064024838978530535017492003880540820056051469931621866764353044975053665097378640604019971182731912938075055665685785505635878222042620573587662537335364983995301485185332727032799926819653044169775453173883963649126307177617429096686914202054931185981551161538675199069016414011825677732993771225746886742575362504237993131073381488182259128925340758318706440688849553596436089705854668045656563302066229368842695301999418977083324559100577748726636393236394064826871437243148422615775431837978855425056102422155388884090542963042954729453489722437826540928382934689717819339561090390667592354946048207446629121834483917601317506507872456806314803729041529630418275282129321139439609142770217950752920170015072056868411084641935105449581281029340001321117358140762821398279715960237600074326972627918617762311379027723295812222372466368274787579724230277375031456229613034067672741178300159017295213331796439302908827102268072196488997279203348870728329822724507919788723406018846046512110783047128632087749600890551855199755344099277769443099901638315479445502422126020631281071463227768967320582874850009102837543398398398589088207937183158937788142337491712683859902794603587304660327688805215385392700806608723193676713644370958246077852725210327780569554595916600528229710380459555434396206231789955849287511538673922745148501205573103722346774785324746021353999892987382094258963029410450867071455817767429998403074709870254367437527482792272974701816768742236542367429821807775030430821445787585636367583462096672492127502972206596946516295530395282694311610862012891180179797455483056289584639640753601837243797185596620708618583891149497506945834459592413117312820472014748550762222415095522897204786419272118042606410165581382277892752670094216746531654475539979047105976842481928940865743381042513964844996405821516482384848841033454391141144136733085419436669662669876423505191265967385485791414354090631187332990795009171731951502648429989460218693460193840852079466117593312807094749164084222069843063981809480927045769622327337885150032188257443664504581956607437794057541289648183580013665653083241811994796995290812775356885700974767305167978008498075069821314422026801037394130299871120785903309706718185560571474785900741027297264624919677511287397597879515267927372590834842772330087338487706293907930969868870872917046838192045450336216016732317085279173716100040803515472096006022441416877281748667343227282100435397081539745277284265170567034073216318730406189973709154583903469757121121727922180217567435697459892620737094387805069931249477668815527969045940883089719824096326510843343125522311940470766879218161478534922040581811420341914364388521696476282578758667629480235442977190622716372911176006168230478510713067356243646433770186739554885850308559359099517852975868269717509680451828964756008606715275744023686484528907839437499874341444256880723061980438963070052247539075254322109879750301463838809373441104330517222597887510639476265467651273572766849980976992005459550636120927552863834201130879751266880416886182585847635563421031300755132727882591039663344071204613072900983004541373718671051398996873183236054355660682372854814182139493671768765575789807446416608946778067744760007480193982122997440551020851959118017433043565585819293478585654492628433493949379587237991143348289637197830328108844347241495959074208802721681379466846488131386966624314856602221909788729619923166725260859588286770671991552306192260907623909523157391500126500551455428489413935862903979965059897452185709142411261949110912252796796088634795940262022099944544057473766104521396044018635932565368477914127033591333849016075525343581937538754437121074322846587546169847601164876451657843405188114262288523571532636384294618333201129225539604982457098602764690311170549240517726827682115716495560439499121694858360553904334980070679636999945293625365898884111750994195845733988206310953716568292521558480895867682163099629360713557064177493408446468568255916545951861866769887356362860776105637351349615065367468380385223180216924751218718171154033331779450809438380020543144201712163204987941938096169636443280073991514890491974752841353247674933735296792544528484108073045874383590581954478289190785464373128956752874493698568751435441185130951167445077296804052815007553758245678179029714450336692430809326966143377607619126134026813100618916652789356985599689800288916738942369286876509358190641489392205355512522631256504905212510394406754008899219862819176762270004031574998738479292234051461596698574210443563559848068691067964459547636895609831434239030946127742946954182258016707548873255549771270539267995886364911659855751780570177744138627521469303537837985461414646087527551977386602788999762042975786191065141546652889676566384035820443697691350839477759106439073292321974447252053372419529550960574778624544594684929474789626957142881417704804830639734425408326217747175810487665757459560130010277381309022198938127214155459030453619236793689102553506408170631435128623401327863435195047162255166391350212107642562880246688833421118795752068383538056249676487464329665642059658002675323561915496022998147805875428841916986476260951962898637356035544476574102403773492363265261413801551192900763785659016324971893896988241428088119389317622494427756345758548469952021717904155793131894209345516508264757316462062559247265963027742706208099558473147706266741249107260607775952978324300454133029972501742634945062559001967955646343131005918734993317148694028592714450097878982251910290574485560184505782747932928021109970789371959394869527399096770034204665994566966199399323627978950828464740988752228415597602440137672353394050894035667695688053385186908472561088362259921260750160867131532008298666970757648777779589808753954268748242665689680591873666600818941468600472386266445446012191044499131359104068037564371033717312238083506637836232419200981132277660035763497022671914796501126073622254142716557197731774174067527396316185964858960612483093490589586903839111750917018101456079141484255735739929695284307843194910881777534859685981300484208612754502727946534472365552595169595197873368905227510033834939938983292826923063457496687605138642733996429782399203870798186899662252763768962202753366576776740298113755145374512687917039943205234419573293891724519175430532657458075815544201929071962532170496098989580632438100385262767014032917453619892566895100067265756929039625036769497643576027919040316806321866121519464889248430954070978210042415778542950087671770694607338195079145455171604179583688491524279469992967760863369509951116999288824132176179350170315061207047102326145736105365627077985318089269013111889218807785136083915397473090336489435956459625430694659951626388479205245738175616629752370393538486723341732012639650130516672193960650230648698423794415765890569337022766441349582038993139994115132902270330178013750976464337733895654972956475520905805375649964729699312186018540038951091808218418724971019865098103492935075601032885038473636818108179120444514245416369624411624188238494766698523878069186091587517652518825898271756916752861183390506539675277679193339403313691895767548483730445686310762163998714375386732692053736373371947708297787248128552196614061515530832448726795013463538838409016829713977216366922843316098661333201632341665682993912746740324541771697835849414063971520808663489133281302662561463779545386410454271118968597740641463922931645667803075129558464032046743898847278822119858680444519577250730617357182868028442509597794577383152273737709842180797096386458376528031698039903458115678947385793684750728285481963525945108479799666327210012596637660816410909427582845057070654555022731878006977462504451596851667509866247008089515707435673763571256348142470389331560077473730227828889234105485835058279857631256718573783565243927988581733229660488026362998463668640350539217488544013954961921913981885327702809823772852366876188611593564316245228823854860710821963476925370371489596112944522727562258739190344603219542543604544325776944774791456085806386792680270221414964863312779101614633590268159810852031115750122402640054873824599373465297990784362211114260035703875022930492257810495016411640814675333877537208889552386175646605106700360209925465722551048940854272518178505725060377337501629612466510548071111272555879534808487670258601484992236201764706227557825687195088097392014750526612854807064706704273643043883334927436885862442925795238344539909428147717893961604693089067639968125680849249889334238770564413619966746610545195509730061968361031862950088534536664366343408408602083332062941258306460489312728648277073022994208036877109700439642703924175478203829882988808085588141361271871323686599130759934664536477623606102854812079309500577217458319049910277346098100745368619144970303056152190505742542459957327952144797707687954359098151196445272605135244582796554283882021312333039187561069742490062595108869391630110173197150909068270539553804776612829784658056501069795601276460621941823454494926345421558837799335893316321943810328962880777590728224790963624212486212232232449247997908170224947340515198679522176257349421253728468838875446418408489260916009778653600067028349623223456916042963522756556768928094450960628986241327618881375122975529084775401400455712739444578673041581755220664340238615021832186557989394397850590937678829271600626683484247955462927586793856758894266276012863366020252100621696065584759778672685422905495485220039372741393964234177823586577792481247819831970634385045360847316304416829328761276657204536746655536891253628416708575592708789395973857367057047621945718031433307393968913940858968994938281294177143434867760434976354234269773702471187005171387536930731934119745916844722361195929395455325530963042686237621961470655757758523987329803614604085879336940430187071738588779654020025613147877315694279251532325819109224677632021161609510221262188507687286614255520951109399986368593357444871482891272211004824044711464190220726094733276891159977561512440261213716639855599973785706420801651217390255930164141239318109954435702532850624794445354212117359956394091553373655340639199349567364329638057189594546590792232830375584663268949123838026911355704044146340458735708351748177443683241559306693702276229343822644635007019156197142037773605371837449315647576012488816653162014415050707571471940827275788001031926243813306282898401135490946708055693106738434064982177794585684960389607865409231380465567436266223443777802799975639228518319385500574372493337939319488412808526269500112993293919562576571305704391834701617474980728289133309310109458314241828186266671217220412350072355381259698448773751596868389859076845631528493081008384076493785933281668652996319654562125819236003377485198943659679260986247552523459865588299881361119091446431888157343868517540790343486459725816099385345091157921503337140118460805312201095796619549827028298938894126123417698924092538367027653158250664787619069066751813517502802755743178269728037825861510785571103112224343371257734097004959339174621723819725110077908685712599271911594288242372785280399256554815223608867118958086848469469317789213569100370736396774711672251660577345456151374809276556139062854862144818171134189020998386334445126076605463900510954165133002832713509205664967106878731267730770007023546821000315117701332453500041342950708524892615256242401936238803292418055004333738567757877296605779845182658052327224370017245903126200805765096155970841021798289930173087984112611710852462338284307975305455319085307803595049599464465136096589902513400494775228662947557188553577804435308694428186969358431833538808520774071502175346518522842912849263487969634866417439926869183186150325479265393683205843876769751138495532627096428798553071912203779352956851982309434598495585261166867853903135537105319727409658646145153922248862354180887311484917930417379440389916310292155682792905973919232710578449341386551104830076365755684458709695684248740554996956841662511911607572201856034402230113237789975425016879587928296886181167398914009611754959775550348485233062159302117639935295364443433056542636741460839017401362819954609337575858257230046457307877257884903681262438589693111896755128814721116131676422858812389155702747294986488694841099494624348743696077923004638996668050212136281879573111162558168871561007929631853444804387382709228334980829658730149828539274079964800962986112004151087978592034555046243810355300574339999235305900903042163983261510980020963979985593243885237059748482791004704177156408354885267391087857684929721870335690838318469582286030629165028578841429216785584110125682905115494330651636632873636776058866323201153653385439871887672010113318005833016246250945765167190253554529346903142452172903478721335342544565167830307897343032872391747149798635026310284264758511855930058347704429393667877770870145799167207575522399075892384215094484947350331049757087355164965633375529355685036172917366112233032434282558817721720469239393825878583029922349105033318212247727782366685647580940083674695447355118579178845787119795156454066467588079261763313743254219498834131518736416900767764747478440447353841222778760880607869104213153762052679039521741036344175012904120348148648835281086311994615551170842516697692148094573740677174744428458776851287013807978349395597634290328884926896184576536929575891382618603627973677609808978594477427153021233525414166142906549255166325051741002313001225033554098655015296537233879049908146479511944388429605931237919918394596994834084460823440619042667224222307849840234583524206019829759769889218162786068610836028623081026882287165193731199850846818035927953878978997564349595731343466566532448363445629623054676714988743221962980672968958375388362885338528034560229122901637265210382652858071648200493613232894438919652434839944587981367605036308635903450723773924445266259778973686505034066691406760722834824027894700596407357589643936451327606941048605635213233769103989574276872766167671438014997778481420818054043891581346468497691291743889694832822860594952911203927515725770599082979572236705130396214261686023229725760572103272263586951798260609967710447146309441872906778525069655204355582031969646950754185334051326349789575605410284833322072634046063668798683196475696996433963362137356648165707517777612738662731138264021492078031028203260812947994274737374721841428224616925661084781734879440411196887959604289058400264214412776490439401852826224964253116789978187918639473688756980278370141193357839426686704050159369792554479782492387974298387464507844055238808641246945531476793328093319163373931588484880229662170533977650478266410921559423547342347487823285992574628121644444340825668945297167773203595102399179610232747542631797433873413329080444670486960803114413089969466746079319719744821581158151386634581278467915833389005080449040730183070853205157329143958124392961847119897811800829626472515712120137009126171902220702013047589340521674103861500887120005014021795987648704970186367397525543895624027939327856423176080189606614420490368957927285896845010355606057623622093404551840307620708154506988825183476592379704004782832766112933221353414728137245281540835150169512322533403184707493419178984880462550048601701060613270127323560825116983799387891513159899466336342223367420713774810269011279429846487585134762870731409751174565641425670843613447843599279274707509380152282591546495544356119007032515478563217029564865609841957634128708765384830866702117098938598644286456988684147161773080698828923038212342363570422502465311206571736482474779915249831500915394557289471073718947117747948578260432774044436696149462939239816544600017168193370845186613172586485181439382752608802356105165199031081172115621084006101204749571847565870103937850360154947877190781028227699140327980100053687720603475502194793391916503452066166409922861138557030435691721260976051264113442387940489511726793185149230382754038389318199276968905215751965209849222656892575854144753008381063134611012236968673951234156366884351972962047959645003318713035546949250192427894075372990903009866388340194152092617161428521826019422527776650220479389165481437538736701414957040900531043095595936695863938643026969212791980210730249511688942154517002716120552835957389107829456326485777288704770738961194440289047251010051638353387145605297389949801588411825830465556281160270851682454985039425472833860539058278849628064469828734474088352609330176043985568675171985706908988097252555629068831792908261581376210678546366064833949100020783075125503598049363258350563251302775270230676958860945172455431427262899852645532343115858861031470791206175739828625484162992907054556100779618122654526035532149563823485431766445653814581999689376874587814744274915817765412809100225186980538351816459915572779197136976862268940904303196614966130569697900946304905258667443620022261563211161582799876553310401401170169287237895221771140371265235034927924512252440487662241153436533140542884611577161169908904509347332887599351545141538363837741055223261642528505792631775324862695607656878896882726977959289441162136270896351306049345086461604576781874267381167586765125689989107162100223448950941585515640742772525315649141923054452821258727056500928466405359599715903878442990496378126112840493402239990294970647971929048873996196308028805101041786522595236770278046675700873142749712827358643979610450044754690174701904522460262513838105280212416584446780645183438755554661734802786324804974695294919503139841107103097910834381332243743303615487890669539579502632100067096851519568371920528478898167483258232702012234467762739412953845673806004992766678228236677852329345059056504089793930066629715625828891966867485440707106202327601709727073664542050599736253206832487705154059009590444856521990701631599369021651162654325179029957047702864433656589389990806659943908215244298471340521962513129588147212947959141739647632131478614074192147475372066370270259209437281394443352753695344042144807894620560389454744347456209576438008202152742636602345669809858823896619090547585083695499532516195233434779385702463075375441934131136931753508848374238562571101982308223007455271569846097582760704825041172178916284035042132376358076380677221543537537970015927465802871156041467276409855509148340013656345436310693670522663410442110727209746785593867552705855474230272110254155416207975730009657261893762139294618626529431930494958732153257590644665099711211918868240118417581747210926703127092705359489727587099415809245465851989370774392663988250923675868360442232100936463220306425012625069052478436575983603587036701964130818572835486877972663031651253325528358687344661362213826636180007220758025534687677580571361270130155797087462864513652577765823935797244598557356011750513616791695929709141960318029169211471259304085009212156424923450378600480310294522606137858400964246596405997227022625728750092341470508680171446395440280096918013535516243291878376419861687805643620524378172649709266596105917429960951441201014315559944858661050216382752784756001443922239450404115433973815778971294602645996773257322508204005497601616703488810972699731552083903123893246490492538794048112595818061295167339092527846782093617476912856856141038175368147381352124214799174768602505644881542896679275714079914512902677652481989054466718904293512075115984510850512647202856143318485051776793621994006559464664791810623140031920865944609923533754043729298871903646886480760536635087362745806379703004704544359598574662121574700724553263060645544285746026118184902578550120887922710641512680921914883472255939564794245533148447556673384496637079642830992840910789074486596270759495369660044019705679114165417571711798612423570962693200677031897992287910509727757263766453422168017287139396348030758807384744218959532659584800479462549249070509417719902094362448255299860917970711570102610238725453077782777234128144725649614769992295525768215178409046028175667472624409579720128312586733577606514544564759036097165635812787959943166142738557100049788718164376110975642063637281417925955034719475723403246866490054010658080591100418213325299350122029159658389976241519036444991629383652991061203368657405940942416072184345447901363888317072341833045815972421529660702574225330811642118653823635300393466605472315113280634267293190793560393652607681918828786512590416825064005450673278627276816039625107369505531547436702544798617577770851288426772728471374807433346818071879829233336933677785937652221842473443833314096830649987688917831928743827363734043846222500760466875728841600349683798276422921243152490638172420065362945547069800166904295373631945576121951949326018931625349917138208714803075106038578088067911245453635493632269331136793958687831985594010361042964480552783817472313268531810640883455925353635871527178771982606760107162751972860881590602447190894073939796000658333017591075155951118568453510912066577747790707838145134658555384948459775295801652549277644656819316170368776109959964872106268711851493135001333208870256342734047791498966839592835896377428492218993412975176036665602625225264555621961414981111147017010048663059822440341276616845409223166005409888668504900014955740358995239859711560699598824330471636910247043945450754380377869450579452893067120154379991280985631222300778646389627819531525015714082821476940297285775553042301945018497808826470349994246765182822342614914932818632913832515262288545862453115685723763125998702794561616663662232305059878483275198730280627558683155990991352001092340802221229993782751009328113295053949123878682028428536341131358307088154794703504440582904133055851386583576150935507289708705181689381031507140022162741024354528945780553445592351452499270457130569228114256546629823407535018546898377154186032365118780351861192574641707216089265881767392504475518662069944635406428136379471231827318780057008855975629935606462387534056204020232927734477554171056410473257266879777583461693889508225549872983926519765988504580243865661221995143602332879530060635193637913793357810063576944314259958543145830236672324353604797087453331370009751252531724483446688579270414656885654664630974872732346767517427377286979800600713488938886862966326761731566281383869725602963015983499155915372393013382055968597603953458969141628404249326870541278138577664910042765444919216208370830132620682952331686345016779700929078572045633651264399660880403532291170496876739228404540188898539392494346059626364198169922337350432730279482877220222182161660536628795447798311449352530092529091470765123004742009617481619287772331250871267292850327126686738807398302605120715030318514652713739014884392596375621898345024716627802369932157496561586562801430108709386633190621334531303613554836244276083027742899031219008732461024558683195782723383668720602346928456368977222770268157258499368912404129339342127300665273354533464962201846155139336131675909947264910468524810065732554667037903625214654219495163372335164826056553428705746262851963751483583945017704543835428078149051132002623513647344446801716871193174757816894650173422518588596446981398768370800717957552814361300176887063800225271916420461533436864636640679549340979173567196384234452387053767954698615690325091593719700046535203054385516672865557314199051554310976808708612366421079779470180093061440798121762112002809904496462924722367421091437511957512862541096582071413768681824345777764596961432078164095332122571909847625017566071380138541025125580499889181666572819581087644873570259212088808400293505271892838796408297387567648502878749498885057453325091582426552151717684174166626172815157226782620767405703409943552061121768278983529112258657217735987407669318533632031335816314703896272623395077155024020470093369720630062384274926653841659072747151000821032597650308701515296113761092163843481397097307908995496046789938993755752509451285145774364118405695352374060252163612772620210986214707925545372312356619660632096888640868870635110216208144526653508425989567759650832734165090239414639098339377281997743234789101015802542639127232267741489060304137724507823691273956405862536085830369667462548233441828985029723498332700809214061019092797949558577802157913004961253289069900170334006790977274045789639500679264384701017362397546534131578581900986095152707499511991574282860352891244346186784162410866452712804506044769211203324918997032996387562315996079039693060774697718448175341477391768575193419648389241761932489325698460114181139874690433668839454722359338913485230719651286558094329380786926852931615293167846674670923574437319665038399895887214758220234862395157351098685804621706167826981513494458956141501928338106032433604852410467723080850335798724818031257007516628389547844750098689692862785756173940760763435350764762674714125844751501454544012710783361913678506394605294229076502234988936008589690187311653395168430023370271849518050161080509736368740586041527699948028518421931271938601122681019847194260667700144759406613617070556250416455126049792294046014390238571263860625657376656699009801385212928625205981876994310769708737509323097000700922754567091598925662682482246203093689886851336455707114983339028789216668216927663867085303336213733089235925344626947623733075275839403357755504536182639202906055536164927515283980465336386074787756351033771213423430688505416585185771909728485675852297799873749916356100875148445901285538550637151079632376168974439622584335396698731083099806563323133835748082387886061753106054354329530271212957370692200246959261912677555874044342999288082210880640628726732673197412722226931696884790595463846557929506772049187439949676086430367103877792968932832302585502876968405766332832215406345197633110028374855505107944766764411440969683087465174082865539020064881047027394277299917241299604594536547385786549739460906223281733536552408399248576349100969732305575659108804120231704146580882958765748545986447507866334581909467215521026257377330595543914104083125081220641757692501968962979788482275927536496327639407059090979518221672957045121090093997581879919692007052267061338840676160545268919328849726813319738621889161715783766303521700865416289154942935046065503014243292197928687422107554873193714985361968618436714800618965660589628288321582217094257643593685578169143499648978056946111122380378879596762233999540336886329466038518554573498735672816904716175099086120610720298562619166124185549469171527453626365056872903571159475496523937974664279653015295431109625482377659546018596101039749943611188829766880406094324401665199732898303081889750949735719164387654065926204889777817096014704064097518642788649916049790919533770720969968224056406412439724359652833378031897292150207973813806822335981267418264054646677608805584084226595294532860587904547874829572533244595216283546917551171772348006016264199658149629458675409722171658537700136761984865511459408797478820998474708156018891241478522754610270819076935245300440466923764616119300699019297886162307282667169781754610721794764273780862792588022741881800279378967051775778057483621693246398211163483435272624572843381083418703158261148829194405119548240223141829036181144303094167981706691427804136004678778165552734615934505216484325600944278697341883253483559869363538133568768672411186139784099968297573049876072122735762146775205764032435403456076403323260611339009813576065625593628743503218754468449290733923957350886589773370798666784849316195127857085019925708548480031903004529739902952989466828046031042535539524735710105239549284216937846672599125068153178897404158590217168682161749321747604162185182111316485724263925646305459290630674261456935061560007457551395933901690293458994045987239782004257651220385912529414449588922783463624596358526428832378147973412482967432633865817478349712056226668267296331903394524291465795972535547379617170130625813677038027927913751169210599162048312929739000374332194603095187951350723185208506970586362473609857463714676739904583455257929971563291025552613469803568072095022375488749411424458206800356949471712633737623187680459920923704726064063448716950745171560088658509309248059635511685973424669650790001210097143729303464732222913631030182367478034297447388542546764576278420409089084135971783144688705199555635996574391064144971840906105209000981694277235727353187855196199801693372686714259683186446693148523696658792976450021087242163906699738118493469080514575568521517349548487188759875569550316667121989044986528260936528853555347226648037637224412707792052814588733275450066617335785817678278275778641928662441779028202313867331127150588194339935289464337253800807877363554069846154439481913070006116702754621003151809589430867667101472651047532363140909853273404915593367976795853913400642980701155488083042930592106231103996459434040112938019035291851503341454391492555042091057275206006182302500531819230577116807642054031857169321663815322299434085321404226140521579430533768394090969216353354388589819423973805121309698085009003200517335773920825936158066742313496015932625937888062480472382082747719168547571682236371606332278651746156074853662164799708132810498415164031729192893189620501933025563231740206464918391005235222689450203025927506659116059004685528323911561940448861465900695753618692274861520042120621127650209156859864477018879096687210211305404817063440376089992841278348637480361906007522729561114653670161930789611729305109147103996454656827559248222364856807358812655813864286912538039258497212138735520141191529474770310105559335555781378538671285955165400473238038882165452936097697093146956029908309500969449858090194133007303892200228648424657110290103790537056370453956482131142070221105145163605591186954564382113410547828410511610249515167777885012171904725098037653251087652364705210410673484386022808267284383871579785015413563732212122873022237184006707352628375687279803714031645215970499648160285659788745822766753635016011369247235832458271440422029143169069753077583400196134855422682561845887197829839217846565649644395260160299157776080142284236243328213350555016699309598207465793890589247440365445837881447456436433844732791305435706609291692234599006896956869549823113621425900119728686359153315932724192439717932138303160625649079568333539706787373427085471261179174850823696050931376163621092392859297923077118586690068936967578906937565949485747478313557439040231705380268774474893650618011376055950561654153824188456245717303626923236367786484956757952102560424570034792698902895761646948421036704824446898510253723271669933902563355014914306371198172893223885017069954443945563539273293725414681224416448637667790241602762509750384721794104980120245933867419131593584098950359469853770547960199290751610917747530366122027193640914895987198447512912314667360282709825186751704400456636933260084839084493671304507594441993150085055938037435039437865778304179233798547232094985120036861533721005012379193063552495721938185055878320378630274938933659044437797274335419988482895759406578146906758971728619811809411769986758036236108178579185496363372760471980166618205541066456085839113920847504882471590586203737986562355146809530707123882775602418368164990906218070492902272973666995587197802412520937013330217195904975396092501267281315492643208059737577448940369187698562340881157918863311667112439181852495402101439629649117287804749777447735210891475682506655711543648017358970351747368067631268821910486698776491814957211628511626992477784551890019401044522268602689464519036543428711593048825548754839453931812378001351260003401936667776582297973067920501620269296172973064113292588081327918653087314250960688688621548640803114370024712821351296640708159011008080964669760582989921987571252950482037451579459710049471748791765534349205237094187310006882415668283533504173159964362679355478531507685087006143729877848120245105942136471511486126965723517653693142496212604249465834726784401822553892735703202358733782422298675237008592643834265926793221770920318858092754293075617700399156981623567328596545754769170384115011055041061588226098921540902348843485918859193939421533388499694031599650575709007870783460858186893532594442982452290501471514868066845461044961656731411311005808166441540736361492669604510085149926639963575255082850541780125846381854274256988766953490672847973823160822262288312140841875275272947848191242874816474768935674990181828912695889117710339218770788174319532766826660481400001486352999282755096042774965392223826789005490975699530799119151478287347280581212242166012443173664335186743874961747129984340551739590597323922191147689119150883267795348461164159084622081366539050105218338487990315500059528724772537835857554488725440408991047037588813423587851407574105842676903507167349287596499146687130407468183353162872752348585607123531172136652473143555180224720435130684476267866424833684265428155053938133443821713238110292053245621465372063346281496622047792571956965933640511042424123388766714685660098432877961059555603916190751836391610453490262199209372138453969576782468473310598006713707374132438134320526289510467814367172034855615749056707194670115149297716302021684878280422716646355076995255149521428030666970675872146544393680345042969548577950919701384405815431887576328075966011499928208266772419989223575217145783569070421392851605751802994268447141834060156326248283837877867789650291800950567064764825690926569660066588801038126866525405429984893770034889219015187032039796964910391973965544903895147145159269841735350874594073316406868250615465735352195604372678089285115435374147426064031743278018808233495583787620112639832990431456960980548056798309510753906488432060682622694343026589276522157890310451897846331666705186726709549415848565820622847358898069041960547541221562289755386274683997064354185293401081040701625639407860695282394803012663326397395485210060628439762667621690230080297719949894545795705338821944546186158553576871581373504662986262652143394682188061904529952732523656107338851772541562483407584446901077665949608388919013447603307977121165238752473386994633597372841742406187645479943010488798533833782491208413900144724891321655818382864595743629386623555653481996370706968200422218968856683291314672944912952393907141210298874803658844100147861544162495947611853381315086044230434396954671629750912065011253944789626061979832523684669247289622655411187955465413465918535846723781591135705887402607267127070569229910050650114159245017930540232583242782589335409796308551923879187411377849455473809607043944803891614375602254142496721252479744278971868452181783115241421973300826255636563175039655842864318551772150049345746302443004437541089762039417412935187833889203652318510307423599324691413992472998665624376805994500742480219343397468995378965134018675244928023568897646292568124813357852068628532393348521310736064295352223416778452929387889734581876516488100999353986718275582394330201661294249148651878006849685664108261759544336048638049166552685217528031913214956499989288905431416995536155276124257368828286560734291156325782706590451775480448746978522611117528088670605875791484798919135611198403696509684714883100088086021643965621006774919633602505224667044712736184036778543398684894868544277475362733614187081097298644278147118690171940706702111550669137303548096222316606784931495758622092874325854457084713659295821163928940649611775854605125623579676332322377367247480606120759865734465953090615905782563899001226835904587245009826171438157042791065651580674665209163445083056801324941611394402490499728382314381855120375919465357777474142263375846063112464037810682241330035330010600296198594498762972868768530631939317422007185930600290967520116965449835108308825407987978330006508916211553678842154377341615338273667731746833841133834788526252775237967611507307512669415526338859494584062968393849949289733163244586537042042771215934744409387908103278469663770928554674550412098098253592442673044861273362328481625603538683819948541072077445622763191278190080045377625489548648956104188856241000836457635277807122466205673675578229034199929356858794403134913523816964940410789489508230741083072697947178710424902332265122493501300743599907501482207447045147016476018980523283236041166082551460994050455547694030833845882244033650818654748641259362856081366171682763451204660401485900158806088140085116783747652579769772993980913717744202806653285449946408298978090957044766302589585803979033509443929888440252975939498644601009943657379953177633151769252894480779232191436288453764068879355105649260053096055929461564635134371473558269745953830816126820193224887945285096097320722817859806542108709852965955214806057973693571189435923993292749911460883148490026200937140515763946353594616721512308188394393705963557305714943755544763715914652048695273575063114473433180563222487508738952891237115175620300011778111284677212915939746066287809812242078875978385919425747115333567544394603451641866583209511669692444828624728973229973198858346961050762199654337184644092184020955206343434474515321052745022832107180980756702325895739881496864866808913575015853336080934440849377724126557669733099803034561815873152067212976051387763764163902913940457363032881115648715357304485252182738998095491193079121335927059921636794109074159957695779642947710655369894136030957363598496796964386182302230585216636940043922580160216723591452867004444602550180027450925813518183968941090895472110473933136324290632644142263391162257300671120519578027370588452874643667793634246274226942678815557888660961713444839140415737528442126110155309115385930505518155540597953703759500953849323544131608223319510950255967876963303582813853918110777103410317256383111740556114860137899566955618351389771191516342772320034283232580432142559702727133764728224579092212531929767552539187939415543812885253370345904373898187820653554809141806703969706020114577916853895340364327999812453164407628868581352075870219639427904921041901293861831974715726766420264920180083029218857359778720739887772541432985405757993003043503741890989153152033730380922162348692404537569599014599764965391549275208830349297983314032481430079135239564122697457488455585432318959546218754999686254211943369350079654590275065828622928506113483444227950643202005204975817284697991018817650332453040658834395800960387048687867274866987539351325562025425449139988135816241991043995558609516501689474820853576528935334357682810527219256385117901711806300373832148021327358563939888669024749866183104173228044275099229303945447275222304783444326626008554125722495864801794952481454614241203885989063082266146431952416226320308043801892444709130557650830466742649910124075612453374766683280533084059457792841428208126346886899944826051103672916247879696358490029681468375783196355016221130349982621558915262524396219798137403893323683840242411812041732147944604057884282899653464610363827958102452764037148635842562623953306437813732323383193761457973411584819925850074173613695796125758310637797617947680301977395702210367874974538474015534392563899620426672519789496519906990435545464046000418811512314073381000185315216754189992978549287964195595896224681385142295765116027381388741728182022420274237355681370532103106085202379996879490466131121883493013989222654482681699659427545835996798988131897809517206885899339271945113844336934054293841655759031269036015932749267923140071174173929491533469474780077890839332896984486411414651772621787884234539562673050763524803587323365882561546194722271049029836755654592369980443615700869889887734595317946656268199360879797336950281228173306425022741338854588749171729383151018547824762779774793927589859146681480918784167658380036478670420418163645230092687466092743470274998272935097826297200171087812149561239282859538912763132807225861124117946910155060599435643203243564894238770597190805603368100617208764402173038698266879013629454531875127163739192990815600974623453105085253188593389219806539495192869944170935713390917260711538317874782358991061228761522030499759211191839791450410457338398411771622119315076541639029192747297371364172406216040661098596729559217705060053810712757060513065965908532404187837921527952756959990747956999995670296152470186328970788801692970102018983075084437257964665429900686866869745141945977265683361936523557518885511968234710241265007696044322402786439740420466729491108927895551307515431834782258026270784424135417505281736044760316783211241059668846622437466507779699006882293633509005675589063236043729680307690936762517741635085991718810550108488144874264869924321116260856047914959432252850663361461761682997167514578170094104114979425871435912240141608182960471689998436415562323955024471107489456337402927305642482861648335155898886578699550234304336754132372799592089228217949190135848615955994293122439724445321889325400256866423124122032463213447017160863929463226516311154833647504632141248005147260841163947741349055874135434387630180254698032186521869021099729434304967883797094474663849536297057761633650582817022186852673419509382680324327988575625102023616027211393041117880143746957797157334032744424599667436733705179467346239519141917399832954662770889184777908508652302414693731124071088140899302944575339975386172281909719485973209133720345950162596832213632503147307428071305660946748984565503187604199197008564097930933841787321659854093011236077922362997140299540306897089438605438759975188514508296953440437603565783995143048376003045445536358686366741070699062303085855334698027708904293585001560930490321553851916632980480738093438664831264046132330367862981305405459471508148823201282150825988789806620814086564846885496037373460984388005497281620734149703810853597015064325969098512358125956630028086422624181695785807946846028879399738148652517711196987477869352284130390910185301524244160362545541661991751408900398554241766695143109526603483598057284617792807989027732950275963845331991898336288000425044382129283499491319858415953275743792467909109188441949296979020101618093599078888365051569039671777934662649316331886868208137560295957010698569757126538561979978296268985901792093828205700631299705163676528053778510471362608459596947629737445368026669293316388238738649116464805562413979409852775501795547140742017975501886540741869648236694051709401018396748369964037114436797429444041624918732028523205561591532478884800926688140564046504311533895252246474403413439448154721940487575536860348281278265642005589401467250481324463696667237787362962772987954863592106077980165007325465616189366104723198882173977252890928045185564700848272022805503944132434018889945523281865025162082434072260018835588654765471300900584543195091671635914765877980698490912519146128973581160206520827065924261434085982975238399642435226884098767167473268860355215280955986465901604215977338936445892161398573325780953236109256845584983869026130196242880752310716827648525317147261087221801919847577190254414254967332804345070987496574191367521313010779640418286847145285889673094108972846008992457673832580730258499877371346691005029806192320040085785305791496494373530365992584036323500606676843245205332819000513796951020770200247690253340000808463898052404249818505717366934877470868958266146136009292216943448056874000715987728204981074668965892633320517282119072629870219630732563671488631928013728416189472661826741057201157738461389540333782551605506504212170616617037713221585982625158019086838699563479861106705753648923245188188748926959744191547081148777823098708184836849463301457611340955752556893037425032323273164342451297850606354135366872123765064241644275130117503169219303504517982258645158819959459846848822614168036958487338447473400900864398566006533379239885932288790843076453767379531361156149199420857485144710617740389476633830611038639295955214980973927077731654041521939918078922302361135999547113895548788324149117215068348556037342655528480583747561608938925596908112550814579304351753347292591832865561195048131759309740567369826201296333613007142850333971771801762489110039538521375653681384234103727144320595478768744007021092151311197589382558820253716500709943367521081195869254864989332957212365367413676135040812754509083741866096453806758197429266424541457966311754840964597613812962881417400549443625157712788801870041673933946705464417126207585517123233263428875041188952835978556198018976693220055263666101711800983860181898781443994487042804920164607814509214118760345069165895761552205044178524368060191368716916759506353053440554879037983442217197018150566195313066202351166283066166185564955134567720147659160806803609638708546206163825548484889072738973394984213790839853866350270598521526431005599481911826008985617738804471452970291596460108118643871329685637478436659925334910925200955589641297652182188758902744835903678153048909304782231021676400336489009170644046927884194579365896809038980775234474079877390898817603224478014622847425543312918618618165933354582903864090106528962663175248092372179944260393677730152184987360788575300492708635470557535971866659089903097010359900730750423633921820366819023230926150359192051872516919705283296392693696027983574150505153130452348972419092966962245149595708580315229164924390915074570228729676194871271180702905393969036552547816652456066600028366420169299550201896262449569577128166461020131308101573861536319795212886467558653536050083770283374422932158437131233931478466144616133225879936597660281932073412960400790906046787978673549254869002698903059147177714249175380337483656911911514984688841836640175018858558431028280593260612821620995014507885939075094734641874066659693681663019871034586269724654234515106071474930591816218484036866297291009638604698609971586514722258616201318214893700855396190994370599829067291415091246534582677416125312865201528019485027387808158132829712039810893028027254334074368051802694800402309524697646686369029627932663380499088821559284371296548825439806719990507096440646328280880450376595997635695837206567549847079311170423260166626406088487585557939214349316370185605562783015468547274879968353297420615207616878585028527586097213630355783889751729187672660193398968031916669824786154814399080396799675191751313598759248031025846909873002603615051123643494709041312862780560804075523425969127194923038876291721592925111280859197682659791141994714780227867907296563087314595102262468060418571655046817844885912260166960198628808890172800311336557340718831627262647790899546450414360440284542137098474608154543100345962169338130282348664651337494363300245487690370438908971588636556929187418677206539944531566824766819529945963888060624022452170651646310118689575849373262167311354266627174082467694824635729211400693310844408757647983024189022084094763358481512753066268729291144412448306514564121227844088367278182841894976142225677111171960300528952201077251317499728568638281744339112457383429431776532488073214123448431594487191454069553693621928350879746979346444356818520868299473308452113228896870956037854594291892044257592471668348431905104796070423476402351612790749824832869541070916054353046333929101195306683630518317582839687810940723302073313586015351564089316369714073431164619156462892111369703341331647931964515750083065538663344883992973357232145887199382521210152225755011968677622645821485979349442874370812011198494638449868463646358598745986404461683285054361145421679016370751326582356563623266782852008846592863396391431900778532826905070045359039264272083626971243500228592165858089893582228341780372233801182400291636308058079155536854615779894001054538239836596678811076637099012802059930441406996884767646658354809086464350161472879903682337094583761492970276310314387880324284264040750559496191414386821704116647204053110605780120717409077119557801220020385120118838735497875768195382211423788952360428014595254005486432365728250705890062823552863448919831730624405439469550482422573278738033203211472269262360722796496278076107446337166223017343954484285166633694996194226141202702404360302049556505680060972789856508965181025259291504460614081030377609353689985734219188079420423593252972347012570597520033373957976234943744051678297613797333520946360578856005340385154989369491914420313775123449884117997553152372434923948276767644087877767496519446607934777116680603508277417071524450637885807682279777600379443512053335142263637312702118456394579709162010030058270718239451585831622052442761387976398238463247822447726766914791617351549710719985329278790527258650665975599655042309983894261360548119188903134900823190343077629848427766072267540309818966398322185399075749415722107084183885430239494454585297430608650157495559691295378128673581271715657954435084572372867182717898788666258566863538414982764495287625315016804891301817180141167489087734251094875414976272249672406138683235606393669616333175991944739958842285245950456757226744213794126190918225500127033342165560528660995302852162086998403936629831342258147218848037805575217045906353180387952129543554328792264550506982942567423771642753320012693454458198844151256063879246111904177477031140060405860654016897277394684413535043366726992357873372001332424523212127425525176761895408827135008668540764751440077626345378397967681525315263481215797105230608489693611789068606038182665022399399974680014704934789888922870376586522220971074114042675197398691100963212593979484176901896939886367114829121120946727830568457077646464458429338701183555813915032669370209814575365880167786529829222819412428833903204466532009488780776635761649432120895909919156108593853867184281501862804489221962350418719466462105119892320362288354224313141828717053143440002956356636428517557823316391775986567984123178835082140710500195562367984815253172597372904105474471641893431464198715340618705688928891911290881565001825080379669314378834381278739597035108620139525835272129142972551463608829655284678119171353129027765193379296743938898970116828474703905117752617260935999126303997407577822685987412710718857699628864828399433077876081987372395910234289081876333312464949220367324306964357023871002459005707210619852745458511160035149812772428137791794551996127393311751081134177426057426351371790500858907287730289344722673111746248817608519236038100072314246790583891384705034551917305281451861548346596691990288341260428841277987438733762199372041962214847128959698204176596139804075735172139207839935800773735751677358358156469555161204099633849440591463688087038540810226706537458045132220558602302801588707566543398719051725007508771293312612268854919397858368516369552977028192561046838757402342752117531211027548301973719362087270071819709132833784026704041966382010657161515639925662684092386284943528074419271699741708364488753724750359709596925977251396507408692629647621582806472628499675005266572436396380885969676495566641582113155049901849314952616951507640239329469147609078705307802151908423408327699353127402015791227314441653850455365545890775969416255719721264617093032365684704406361490030987784529037444024980658440094471184104989094493215410761931427854189271299610958919871566592891849567369431395163115755477148528318408858958048129772127600168729107100548732380246835930980611973713561193622063983058948421693325856185691630812636717736117023740739818062130283143263662783490094236536480799180923226259231822554881631659561802591690382451146145557209031685304481391169920920289618463307420364857698272676757661480233113936263338792851673792202746457806545676275967340662055587650287966209998840816321572425811144990747520445685378554877457767531928842509832311927408481177735690924118137892021112261398145344467316621372873191598489746793010742855292191218955724734739168210575356486289240822560037026766802773390453512841029999185326642576617662437465806926261367038530634994897920505987404837527591272765598258206404525489043089972767117303126446403540539199977007993079620794639932032805714723722880351661072902048103823026170007396881077419279406410700113180677958388725211506631145638674133265572776878371438802153677995813496970898324020467092668178300857112812073535425362355550573497551457849100517463188110504517495941912812159080380915953510408318192532838834041099970948132500115002729110788074650824569561080411867507726377785525657239896327349042079054755128421455747800817038565873239848315232532139103326470194350826170003629384565031389043140558976816600536918906609897619755999535655405796369270316143702211001636219196541489762144049517004201823970816449140873521401991849821590656309251104041627254731560701302425460614575096168935170924630237561658206354538604839151051916079070910718771521520469442283568184947068283017611205800158394141519697020516905084814867785836532300838637127473625760151358149220473631485951461476891520262671429495938495251130047804689859201280754998354658707686384226307096502138867439992036526024052247001544399780418387797511290942159816058447276723157249855941468602787803245215037896188847903171772947200039224064275920122904086298262558434387903076678658905047468044564995322623885960452240968425584220631009838093143599279961639640807369781584216039934851987794225355951617251902178388606216816388233097180742611206466829107048302193786061791760077065699194518015085010508942186271662704655011763233619023398338517588733034403200360681615439729472736798431691887593357504380131479630295466533933860836105138217473685422652617455595062582412979380021009461518564983031750357820735020508033554323449524524352289887457270735620060959645222687381228940263919547527948763388081929427591310525578919952294615277739060632451383522216341384123061282729014032987514711895585155261651433819492102969054023702982281032009702074416783276210593052792601093401086600197336285821761909507316939611656240625868397284898912679312842067456647667536902645961383570226777030078553639796065961237270478941784507894769126511788160717332725864296064824027231489248209871707888423345258146077008897472329796019605764771940560971460336919511511493971537802566588092483934124665696961327419857462358421905498707762629685471305445683369262346852868736027903841672249587347513275295880604528426750243354661937685103244623322053858890673535802105759549181614104121244483000704682534599460873435871573846439441264513523307038386955808447884863734948817328256937374836645624306989123760899587873779997531605493532603048206960267274420552811179657702232613744189719867544268170617701012500442236396038794364211922160280447240033378525223986244936913788072753292878579254149008001302994516346949278202027592294573396838627225283416275416946419385335142413908179036120642470021448147127104622277292698411304133629290729343224203997487749420597749923500335315794325143713561687940747726760333907669593055330158277522088842815049343017021189121879607955538745710673738720524949424598539455858576397967831821234731612960071912823011579440327402300617566300977278099705743261286725500263190385657303398280604946963348528208593537858748539477476709293914129987828981794498702060752800365524202108234010915843734965383172436705191907791118081520217296535946720386604772416178715119931884503483631438037964479139203772092707422477091147194978682250249521749649867073684721089955047953365410922647765557182671739219018501190746953998688059465783936227260757830025068613550606420522488903974367603997325422821643011368166209283722316214955498087752435548408281275186326844811105455627976325569122170679765922600190355787316395584099527607669465557596640556256409457917147496756397303832113978896759835789837133274576056474136888744736293374120047653238672803230487378943447498399878308511635486302657939104600291212009561515869864359218967845027405501839685877265959390256748793554996794588581670176529036037643603524810672881826703536206302319600455256135315583930137396824092967341085555517548118728332821989634300638005759511644885659344342900799556005711553393970418316830757310425064254743328263554366157786273087442742678994387847169756936374300135273217213918124650839744484828360649026499618858227634315270841078617214574217852003080173577342356725770051519020547110081718335343940210426912171538452459647017790566567588718675669599185681352138944035940298573458734530187650139264577548884191855457313551513809778316615023956680913628236026596847276200218227320383175878645540810604255480312295183871087390807565136939885696885210110292635059217288021177083391595141454926746560931432320930787048779289286769850027165030499452401752038222499203002957828460740966731545368738581665153971878004562799106971942665889302177347915236511357817316423408602150491361789433134592304888332120000681711288995533541018810265689602544870136262586968024637205294203575329334700293596747542898789143062193769699262659843961893448791180024360690644016766281144582275644123162516146170601105515384949760194653121110049688438804465951999774522772136442453831274799496717705114684775065187227230513644195030494418833150655654845460226730235926371272552502117855413322712557719379693684833858053747035237688870423642038791990797513472080752838239361855193921627736418298713714652607483648150385941120930660354240659432079130543775252017818322179537089392764454018392151795330487637905620362789968373838792759825023734318528485751988216526784541701202732320095967570911760217704253338410380065071862839435175440554864767436928660310546933777433399746553692399886349909629238709979297043483758353036779498074604300344561326486156240457777665697341197827309827017255064208766537571379413478866510206809542971956309643603816755608739353072536687722322711135496699632569969773097384329470597340069334608087220073328955600287831936288986376648150694049679156658371796807211113475688056654285009649020750873339942273555326007226902539417198903459191614498064058394219842700418717713096696709855188246661878495858901573692363281985816304691059885937064158625308414312267860437790900177153744752065952491619812401576024458621625872582923436312932800496813528757887721543488725948170036162433005535736571866088407469082596472402033089133296314842679971319770538692364703338093260056558987372867417570130836045071243166704538260366280012936277681725858889136270235027989412314176459617008532385925718012524683805786284448278815732860383269391593906586719270972374981289059987417457049199566096184521996696127531427631508336674331113385339284929040112142356481087983963615886207471947073851646138583901809130140950568559214852280254063328538369036742331190791985745473908306203794982386226413285616356576714737414548353084613737282659713205038712889667426411619345113462453402145082510520731024721776814849344916627287182060844197886571246744462746239791902671325537964106887649006002115083939118405115399658752055587305228936947178732094553342858919004433463877318554281577041024546030339437743619647936069411224105498557167802579373506782890144604556214356775726091829780477362661771140798964868692599487567330496632686906330853755435066247753202403809062432973310677577007079013765761250720716863703021678776821041507664839627822650601075236276038671999324095344272964772733609833753700117570438412797096306535676422608158387073551935863111304651785768667693736172581455781953810138455143987544180271637903608618917483834981765593269698636579487516282251963881711799594235025864301377114042030940902825290563745053281517391306933495958753251971403359011502845299498877583951907065472675838083075775036220625696238692035182825997951090912311476704941629487158901318606141368240957265575085418308068765229215947831810876205552244029492318268551902387972060370222176145452695067515006714370550636221729294974854758915246532325641330052626708047729278079091363635927872213483056325919141510907008059955645395225331836627595734321552220625012734470248852202364759958334134891370412752441267166677602179819468245714854521690195864976212724113858100010935814960156944695748650012662528406206390830485157203733264966452696229670580839578501550057936991774891543655633567084245006244865954748518152364393948581432567268349626415062779248924869188274567278850349747870311663776434716179241839492185545216750972959989178407115939312977389855523023223128229943168512619034542208717372304899886551713956947061855275468766724659044033367225766637160755037839065594831040123717196087486368273583789409713561233434414652850545875806506064065754223614744229061473034591736214542315814211308550396891726816573817056255730041925941499398446093019214748147520171959938207244203064177814622979953182559022772407276920836035950312101204312513513232122557744220000782853424611556337097027525079682411898356405823260191086193383659703406808449094904581628996047838868655546200944181739142823857566797163912607565030441874424248887964316069483892993857075998873434434594184191314052055753271606501371293720860001998094988658971627147572600410234012946670635204386535258679776689407751041430615242078357171119253982746781682026653797551918999152784851070477529863254126489724616424459889051742738090405998967437176740848635466422716425489785026871416012939644337680991729491564080354352936133216183567206394462401663948736050978017932745796365778724715957277138790757285489166463945868271474595860312087160966875393240201821531038284777608855908232957599967252649164382985313022572596026228497062626661994813452781345483164242322713305655216842962958514024358842135917731369586497166770053366413594715973770038435865836809571317143046638152022057815714922944385493536238130219782621759554910371539994632237205503815073577193141798882385708541509890566219135469131511070537887423434508525166248944713080062198144729083381699544759651677769453246884926631635318561004956083223076647303322837957487048811224192423698550459984969743308129161142198593806636338664016103686352445157608149345538554085855237898656660365390272625256748718365854343201786289049769030049915702251146479349163514308811570230264022481473399328171056242364642711142427539807748725609300723003577497511474225134296935969437418031553626504834537696426894277788447859828540689531113564385997436164101173284933294752387212035070487670092859437296916116774605623216325929354761971106352705392574057397847999590277313378323159047689548760882393461298937461733113330247616028087030040280210282946626915644194135077860432894771876494116980479177537810551815971081609757756402508914850869011678961175958827278743230276753663280356577960838325672004167965797932734101676206187439364638391378000761012863533273117152479970293313858998502992123846209575120877418497459985516079323315905907542249893158862989021061421170796062406914331556685956021028320740701156483168055318470980577794653691837395152840967259640295349705478728853521461677550824054032719119230706109555072629161511238139161738074680138724567303615568774814861102387982837365010043455971275089416177222268906028123398808514218726089591058306075671700748444091846689916840978257281834601828777078546454238857277041008188182851780548983907014848666269248743625933258139176128037374693761918678657906813869897918016563137181577895048428674053737961244359590427888771697616648245504834159141827562227299328040497488586195310399938173527617296459054721664476489552364320581587056623270512537220056911261288150234511388096554584551283266091057007710215133763908020131546187626204646759535157052545449262599464798652007390670673004846136309218434631537355621685436052211919015682773962822349347023354934074413267619766093127007642069412891623129890942510448089912124734587501963184238181041352565500152630506969678351172992089063330369154158252510196391501581381313141329034669629815258600795423603671025960642574567269440244108274619940451170804505786704684975710514115464792925977141036167533639381976579694278986941170162650155760968971884082887887432382901895427295854725143958090963459864882991637154570364849700770978149736803341039197011469231376065514566152770752962641994439966628171231089132209439101453978925952081223368134073065053634220913638698949261195580687237168382278032055741712248468278455271041748733786582681436868552803942074601710939436327678843047387837587184159713466371882613319324894712924262257893875425493441685319545791489522056039853335317042735086289756808571246661484465341361431622926378983258594089375762510348381668460273892214741571379465997242641460910664967776264307435674324231522204564132695851655130112723387203229670210276795124709047445345232581463515813265122626311607675465520023713295641610325434338798595640963113173873829346307265626111508494733961063885382745388228948581558712956565122747235355962907579898990954861908895518386590140353681163690793601363869746139035800808810345247102873186466674404790662244473961099900337604699696566525866915471431402077241129150770902228716298264274517102835429864125789102406150508439798815990854572409909397937912110261667513370095389154474213657064050104927704784449331927230249520269539805073049997315258532568039141206198883386476390307002638647855997386482200780187346857413149719309298106202265461029416366713995180483652223896229977043662719180717691071640275693115504621881885152131938763794853706920801060769662913917546186598726443285246394302787758807661322823984426093757183949457317547904003441272244699832911364277830391260965366516044868823645456968672693637799652821809954904929432343552807002328356769698340449534338367606756282472376435881709140745097423860515832786346228837352047732022440983816909732909764154654459511377837007047616584364760425027771538237775724719018567953556539693655985920594990005377335912006245081565325635954106375798855397800379081295135340504342296213007491347019689882389646507001269365393455477787132266818064010448177642714703692038035661819399124935464817377301479185796708749838290880397127561267347513128178345579513338983741777306084676832651757235795600381928373265914699554168034264903054409698464207530366395485420406697661709941580879313286714387988471840062628929165108863081896461956158423059838990553157808949250324859148549078727361789833909976140079575738718641930914941346423182051086905121285115411947864584142108935332937783448032333413666826435832041661413469223615230524624777575714025261079459716588356502860390382532479300632055657750524124987612346688377000987768532181121342275661933022289807227891688159652297977557628977390663439570216312866124814995397383710490169591428032158714908337541746567382422028032112509777918756185689738495024592708353866894019564524570370394876734716244265053357361167967389195009458394596155426854931677645795552818247874863289691412241585078168630106920116378427076872931441837845480184539327296030560392869568809013074526379332395958465026977353595568243647072882768570348711662494017189186730866058841747785857047294398570120846021641480474055827105579888868940080323215755196922178066457061519527991765922075055592506849274945733317484128803518372513557084976035097119293048008145100097162360956169224156609276938540879834383340499119980376475855825469026361589986147649500275101705051189672245810388124635114325656285925772992368463133186963384976353320186781995154985170540906936598366190105756653401204087767980803276794223575924986982772498437161010996010917645821595364381987166943282994690619291776668742794489888723062448291145320327851150122463333979230420012724571863986524060612521487922798486586404044759276265543794906938764046623825116015033676361318608047211941114944279552392551616354122501905952195185257177389139337725258631780826389235762387929302986928039401888822486590878093957363214671041012147320782766539395340791435183157892013483508525433623107394016159197950256229795820186944994359672745810310499750234610388569839166889706822996846032111020734169287444496530814996808094477602963394839628199537296335112147890465805135828768671839357887743478701247579267979348613111475592962155503831486413309595159461949231111442328235986220210441395142220692006903742115368301499513826519612901675842286124445149898723893368370686933343779651411567310304266992040172260553301506684431725509274450861276530417332444928934603106315689748560071987889301611538787990858885502591992817045239030405799164327353401041646722147720346182367519579643003657763940567192852864245628882833188684606877521241100416816170120033520208635391472174770269474467273844186443104137206950552896722996130512717015158716070872314862995021974255554349134257224989829686080954223937816347918361404563209776802408326985677547718354151904116680351377027609789394352673932302325123799728803030716849705730522649132857527863459975028290216240373497157098885726071036035389003742467354514596696714823817579424881226431105288091318078694836700366833930254947389708610023905479797552185027179230980721985058397094965186252705316051495298001016452051215256449486851367375351162619533791818135590789663452176243050378606141957936355604580279916465698742897315817966502945000409465663878429992635036494917971330394431351244628925033435411049319720064121752505602838789791680796012365392735346766882667997685684710921678954156483675733225740735584102374932688107071951926908796106170596526905023987577399113708228949926461081920424647822049857535029903106079023482487437056209617888055053820635017456669076617817049142105793998000530933014049352795768913501057914431707123065125452083947730487628269586699474908324700245539926526992761707269436494268931190320345942553585157600419990432702909383641280647063710168431184137270297573642897935917773222914756149525493423953245141508321117459250005204905047212835677953296537581978420514202642512805689980559487409208361360777099047672395323939954040212886792217150219336590932047198539642389128410077599472679248237529886741842803249816450789902327551371623949810425799149489141461971791870451733266658979810305832992614802608426436743941269493327796779922524623855425945886683752409837660067592762579558334181663582319363077869371150541294416373572501190866309034410300313260583490380230985226852145224023340828229521604004553607114788154998973774919446075937475794634384090479628388968543270867947340387142507439660764981788628691248340286649846602855608974752801530596555973299511084341155966259647642635348913849147251725429589726938344179417046212415042840455326685918716244108787217287534772935156387689429494790883233026034080949167911606626284618370858377383285586322529516316125009165318067529438080840559287691737551467435703304782729868039025907368874958748600503412239803076283807169489004230704473009112225988994132590222112150578397992424208469345923500117778342630055381574112524913488221161699584313403893631024897273953056322532812236283854553531995749517232399105651953048537125671004923607060653163659015501547096573875592868351590295522869622149131398982946360538532870960108423563363172091712137060065118143068974722545797173254291257994868161672046458298245144586918002532536700845925938202582492259521170213475426053492743902874364050498746804107503249389612274989943043695943633487271260594848896927455330261055441250615620024325341327800121073942015154057490476262911116531120488526043867074198559903867827962774011199136651974472970328438215693140821124641787575180068126265009470003789369407194112805046322374814645948619384573103415006731747940123040377759512723636192389728750264775350321311055051456718179649664667199918728077883898126607828985893796697968783779561039597715811603605182762345435087878808836828127420608926901425207837608042543012368449657135915261946883987216475550080695433871774284504884045363899965149904603679386850359983682685449282245404946298089823178606744591714807170152834832012059643405828278933258122352133404548460881278247334060543540803060710133640849732614391368166652039113821621060703054931248049320581047385843746838936597827886229792754578644660872793603172510045020059440755330338427463543069312494645316524603090530783799147371003510577540852841347661450558004376918786313390256684590583021275720327167416593854043386767835401954963142607790132312649245020347028099064074274752292954480848368309744074551362750651937344833412684003486635667023560390767879842842915156216984247049173597645767116754858298159021976082624351761582635287601124223971808988668210170111779904063334695537115896626449879220476297388257414074283400045001184220723303673837095882875691728409474687775757584111919525138723173025332681859713858708175164207910056579878742538671326288471726315248516747944369342196668407646792379421511043467603819320306997190216623163862064610796435690695640324605824231896300541357346446613441587429266861534208732538317936165864943903380807473101300579042294590169585818097152921380732842032807700450317520580710819339730180025380693155513342869916774917152010478654120197281556832393297204000087956981160516415803531865816386872216291835792155217169225687767777701907549821673945593991676084168923440075946738149869928356664372607611423417438574321411933861179406393303715453974359568582992744389386727589642187999080370006867904891018283336526382589306524747818499194578251207198598119368860065856646169527029813228282126876227186540659781826129532333901864379456598099919409776953386898521459229990722931625529761562646245444808231490771196566740528533740078529986921967245087421057185165298569635557253199941968202318864222177810032025988562880007962728713112927436879723693040093056972534372407467683367021143209783521527217506494968677409197691913598824872119373627938152366208134821283536870466510291299889207322954048572462104274593163193136784446111439070749292027496722713413225030386241259055217661809680521010471050333722262746301436088269991775757972292446320719517611590141148048474290295000776971964363837022205740224518597256239460420025520241313596501795124582547158068150219703440669611778844866129808869110057304002817952565829738240803310056673502922575369290892335602704236860504533925786271261888061965436894398935359688928753765137211290192323218289155359733255769627929196844870218189448922916317388257461642288261792125244087077512781476676564200049928055706777480933966432301819616777524859112142482400391496433064336073152063689820836253336254809057634233933695230484008290490677825317062839515192240138652775138888604447071195428284337503695032814892715973026006455067805638305071698648042449934620807031244666646994841992428563327824637511472178128742711063062117736716574674266873984289581588864034512182131370110099430380403502546233692245818144913309256954816838392647783054838188296444554144566273982278359345251169782117571794019447232667920186142491162219158578207808622151809421893809004038381051438351847601688819512544439084324840980304828373461763396183077599040742637601993818780754825379175116942060062294376313426873745189925663943000673406693043498964565207166636729936088289976752067917811777250092725323984149624400932428461646255641052098452681411057411292028130388395403671149117064378181730597738117936472063640774180205796439238370123510601756130655392729691945564507026402669918172867628586722361439553195768541910057255606322832729817544658963316220866226890532661191027837822916941472354265712724165074753229871200850874316123753914642680020292356695699915611074964052448329514622705827772427176732874157458222118731057148803824579500364544304059504055282338668395092713975183665693382424872813055464412758826173585502347177803101709229761034772556666213264346896140951511236652038291206894467982319795757436164412044016332780401706761461274535702012905600290694022383464733891479452629931720102002796575268656959004332080233663367616804622941494683723897954478083387320763722112022842759916016042753153701373510075212258339145408208804641235173039115561631481353416996781552800459389708357514830850722765924404594843806316984864957137432902576339835932761671242945090618580123356518841732531814618320370334679152404975060077327369285575551325017838308064731677398756018678050031165871805479397153935764634025163631867327278168025320996225956873860873643097660711333742572692361047658538824556658453455304916522451945991291252154849381669700052999391351229463555338596480786006320562006003324066975316637923503374746640522938244759390451491508488082486648031947075157914491925433856985968862499814718147663441178663500824450948881975807674210597818159122606440282348147646551370836022733946324399480422544676521570009111575942531072010745549528613134869705498365896313990209153792686128891108125745947619239593716325743105808368107606900906318990429467911906462602980954448349090841640000569034154624543423426593442053269771660582680559170928203892500783214004289632897790092811441669507173194616180066621803054683380674724258482001958819790072828430340574251504563084271506753611227182765368155571260391494562322365707136528432084567146711692639814916431617975763021076099687172482641005082640965992964516872072549058366065863394797227601964486454155206230066262785267072889507531325677942146144471911816008541678540994390144240068810304384910494816374904414583185234339783791270548405008306261381744215891862090621959818562115313108003505471346184220421575902518918717245349573114527227151430413829104648530539391835499885453494213166425807013722482310549322351437169597645494877021869433310437955129597084545936520723994429237537948069193320089250742576592265869235253418737764384120525900922390786321542525246806064769907904393105300499423480787506784151226261680288130601520552359275344828030767050062747043705686301127712426899372159794900014053184801296669199086729753543932511915039669881849210734676517945882236188669980429855883281717606151655507170158940299344940076017189406312852296247357111301668343793074938491217235645603683494166889383395535913234582991798377311715480332128921627048152968197333878951279339655061782801051159532615237094696221446513318765525099832704575549424873254169110967592963318979759325317106839862493154684730565906191037938730390006753663245740882689648070647133232378077586959411162953371736450736983199829066699845430875328583073395173552629660893121891786094472671315600945180828678125845620311310369430485542764755950213606418875045863588160259395365769713089804771613861375849460645060417200616593385330097571617806808757922107121992393624681580970757219690732967530853275323066439319877206165180964387986770646700444354017446067663353084330845573615358190885610937421221544936841612657592945121532631627208738412277535996140801531490204926262400675725237777530048881586362944553560330107939368041887121291678155269300490043924223181866437859333328055714137600309488041939958393948485337240112084616175920798385671597051093196330610137208091374821073958819670226635010442281951754911169616718229713615127397171754330863272588384698957667611961705396771367291100377737010958463312315643778625806951122709598460950852208611195242517617249529242630396240426627182168851158548288562493911223669124705146281346648143494868731622990033082024576027506278348684630103424130500985338299905774153807779742392637068503454833106997632970528840300126949590282392010094837599924862818021867318054683877119906080701618812801703497724560905382643881103884339371001657596624598477134336265643648263579964459808975254001983721278552452641765696953619114486854653985114459999274968098161037693846308004080723419361329001690483543412423740793625746238840175540361342770143713287399929828659171786142386525085848442343308267201812695924106819001104190587054020941519870166726644226799274589237400473109498662898817348130804313068805805951967389370116502806579663948590605619574227886583027820615621122407133050671267650413412684022300456023827469484686659530583073895006916612208046756847112010078298921743776089785857338127155092685178091649711161412630827101700699587566541869052710761162014772871512222590835347804536600983828595740523163730461963394873958355907187094619000051121844295233471633092743567817739455495156297875192408790925728867117705207408971158224309022754984772120188359294046110790726348853485674785289050841209986506328910285063333914353924021034067993147762705463058788948005412038294110109668075711121615902872687727596376796500024948471892700953785955466510131534812154872397886881632015689420530652559932557962928309250847027052047683987967283262030173014356505219756559577408741811703126886300816111858913722172648406099100999792438382344835785646514057672469080816114606107085078874501535012908353223452843648148092086840581268811587885207917683127060114920986291524857532575762331394570274596169234310979941416441208843275103923366347132924215949525703227728950178098163673335682314092951986652599233529036042701164860166446134109771226659584640169569436770113027002730703311259824418017144218580209662105429692980565656337693102799148212898651496853476835330007652484481026120633572187748442915934144382738258434610976491935186682499990109266047426237972659641692183478869066953392472721693980816095233190169657873841379263263691925783511579783840695853971732617088327938180540703769212577362058630534676322221371702134593524260255153138004515864585161317300612291449757954822561917168403295578719989133948488876787556224525932128414819478321460782066763961971686384671176969993204571526697390130298457677968561172319631250720345254944381581250701063655428450316114034296389384256610699511213931468268153518463616150292262423965259676309917568471833962628338775190125932483224906769155041292670473017116122431862490976707081845554716277477610842030781495806066385653313293738931881803647883402657062409021117804249753674197099620249349838416179549154274329433109599021794250119894824565571175975624259645374331262485173171633674187740507456866724346173552797385144362606881405507751792017316052373629434776607856874718119636274634301270969694904363716518463596172202253211954201727618169107134788082398578993992553348392548522019666936412339041994812114642456035103310044044527793939072285049418966781749805527770235392423684708344336795172555817870094619341399937615500156073739511837979916024244479756832906258434044728778359740603064347640644422590814423703437178114533102685931789469371179214046851464981328444586900933071605582601311322875609287962103365208780602352233801841588594774837252741835895518312643171849941152824732935900214064312011789774866829399756337434630069659985207851459879194820887962859870737129280223537588908019619740961731249659576175179177406593390016742831261519669509925994542736129588924817389595860507076086461708885784406580366902273311144469278166359518220711856164961280042493348846706172849233883188778826921966489660942567195886456180870038980450872802179084901022910026613021116201598510113929241997776171403450578178074999003011813685367460909243651008838248838230201126821156352308104703371483666110011156910699447802339323455714215605868595592316537657825895814735186531397486304619851271953164761675956994128627098381169780560031687485940936259740230633711767831857955451761752123260899289897147167163786271380466222844010557468764341365928328254019737414092086733521208089492386793043054512904219907722441171991298157223129455264271602002396075207831149591622618799161924677849932918599101017013394155519648631495267106862202029633680272784728897152521978177422242133357994491063114713770323778067320687973945131290778710252457281942603068435060002540613188992167449597668170130170747952807523939905613830558669262861297062802121153452625907820263399532560071095435135117863480459643289974113021970090339027811386636131971247797842598820209814409105653724671279197719218035806182521224459700774133207964315729267099729981207261360625069768703752456726675927571564617509233464334270377436819770926243855838897998202304481727069149438825972047850525414621086422550105914283311069612635718036537467078246721641907384857188300522717223908034595126306539285091825073632131726500869338652296372444235585234268302225959921391843564709048651694099003227783967517554157927864363731863070155124934583745247487314554404752045865805509810121443719805916907876992953364965334349416811075840085652267944726593268015875786125724037823507391906936001772027002529586751047504298054062234541041356005456331120755436166722716724114546568325897835728601618836676162863753264694342558651981144609292044369853554203152173085603154219620006486349471318707846113800848283255763043592128084935527005255612838747826602472096217117722130562863507915101908485835405746482120773381351201604124900160905130390583949925137821318973308501506625540801668025485060947578252644940062804886449949716572253911260574039442836557386578477106140271265604935020079291476844003498127121919792876779693968384509503025161516921894649183140086165987574708591463258713747899147187422549378752050492751138113754192189519339078079943524574464433651095870843920361757032477177550297238006116387867924253270365271832670517109377656904005065159310035116080998245194075879336583362054460784452539934296485952184411281062761570516182575591920437909013618235793292297487643010732926027730384072423989396499724193769481557868420911421557939653331518784162479020846562869954301459265773677656311456153527850496860900818825488171796062863590251133406439358055493191886353645664446341312826049366820715240099118252423039115962587088411527594288899970644496152958598777452242246346423096107848287491670240656601236632918135285483543841154590889605644400913599743697546136588028453188937160161184704111115542067519792827027756796868611481515337559057830270628352274780419563882115371229637785761842965947380352150208775192406765297884349032628122814960478894504606844082501241466642078819384066501050259352079402030417538948316699113291862456160994748364463039007325063592583209990985412836338788056802951152759911839584049166760964025481318128731715077757761315426586206766714523873739947839377985367508962539232591321611595570003049108445335962585548730694836172292931048931106412653578122658262545555725441875349902683091322081838227716841466700318386930313599455116483940861740999826939546480508364693163589177449150529939592830495336547780228472684007877461379113885620486424142442955531032045126644318941491185695121930489251659764435846496895971906645326592162361805154658135204803129857389362252940269168066849977862248573299822296102430860912869260018315218752286102131093843533447308890540854163238954539156032065912019327675843265092364240449709785481396407608941300024335312704762726210232385822981514784295337323504303203667968941919753808773054176283946789047358086744707877092403887957043311636716031551910674702354456825476315610747397387306843517851124381433255906611440115452427790227096345031013926765560135940803197159664444979381520836629422318376642755919125431237412899271445989855485388742605145219060706812215884920487561418520316848926370316314241969588502319442008412032998023081485538545975823928963305947172407421509262136615007476546417202457436610778140811222247698839244543088393963579634507128342469588958250584606247794467383122983772161884939629108681937499890081906457891376219876659477486827265944638772050998252679326505363300978197560392153359454695903448996168292323164694158348090374596400633716596208776293527176904527892928289682464763349873981976723729635643579337010455468901975635855981028243342652277768356195861604659174831680200204547775029599247688880938018929032739741549773229976793421120909294897558395264519102116050456326370102607745779334985677699439800079917360258461189280872135061501119841437055920200428955304092594726448775405590256711428918423373406591885854070528224825310760769951818393304750030472295423113824452562606719866806949775724178878483579981470053643964685476697916904907395954095635251518825411451447451021842662405316757168099046489745620460879387544669526442195198073441584215051577892021119974119402862595195545269101896429213262034504866627610422149006277958936834154745077341227135709837179081739529432313612334297526733549366868155625907929197766462159068518641996323221891671743647502148894235619656132190914490231877007866308534435285892077966111156796688811921380162105781961520718451260814510749690800447316821402493858485415909910926266472346943575687743642920748038593035618618457232167489950459580003294162021912424264761835842770465165961402977141198021683298651551877676477909617192964763473475719974251123222479079332945949650124418722064301637335111905400909166524248425003508483458839425563236350822864281337872973456631066893291925665378941326009823143345675100145163119798012912102256937657703250401457322439606827462573860710623319745180793195750629372020211159585282263801955116342290172963018174034737300895294482743984343317571118355304622152442109001813349498886467687364514021595281247208804893611908013169410100647555214459124380287185864740460234203772699372042988555258898404106126183418369652424866584036815507829405565222913315575572797086290409539132448478960559446231838057265901684858301653507431657463086942638748139387479746327327792678027169612293991717573340803951618204162043822184534253609221951646147716410737096001289536216605668088767109085202064493020534803226345113044396903749279430836804170672489535633919479735895221299965578899866171892979888331123066530594456993854613081003007598173762853230758314963743148799748185670088404886270914224329949999221685098523584019081621456801097916932776473923203075408813479759595754729824505366652804599789916753206651875759652444305808699220207254380143601991339825425667649765634300269940204483387549241042211629835393363573074443362039769453986292691491633947363360821893646574598876013928580782479060543102803065122692445895566195178732239436489233932874302524555987969621369542113820669307351277245161332432248135327182759031996776060872349661338957210440522502044479581917460340789666436225261473785254542086590707420962162563721559797846578409043018986087508949997147510569066171998965126431223441616874921678409541576396451194865257213818756740955532282782842850592666488022143583143984486132305230137653217623046221974614786225911249921842759358139969129616581259941253164097970493244210045912426491483472042997165218367750358436420199593278035521566775669233181009723549063403608741644248578452759592894175995238334208672143130317087008446682553284798102419708055366268008324899618249118114359560917531167647564073582260228739615149358128557750406027178770336895687149687964682588327630052286899420051163367807773131076159785904833950119869838694725415462962817681856893657162627276763268857376613914867512539185807716349221360392778608798991994958991647276918669969532124830126389482936510408056959128130706880805654411472449015229960814615304873853715622543688136321937059279951880030855769626153552657977092748953591962351452830354250188460396811509347970692302942036190594466091270625852921307631750658109466529099961585061410804983350804889510221115463412282455319289011855562166181572666176942327382375208399715675768928244602635542616104752494155557326940734996593873928774940638345270418911700948685835344182897774740228135700892508960647482704659844560192331719524684859735063475581371962399772254164216333003423714411201644585156316643188416302775688837902539261727019431744516540158272747829349444045620468602973176070899370430089596613766731529688434578960861630048163730298531601198650870439667591832089624023662727929948661848641802760104032843063165360403872135219660268901793720511513639661484123558327978226732779037097454857513608818318571404778826027603589404436794860076910164899280116120001691031066776750449597361823108844293462442496227056902912964340266233041973100906635425106933200566939060689697530668362729920397952236989299672249273104850486028639076930613139585793259158110725367012558891716263741291476159472163761918368699298368309777618909087762599735525467754372747070099676527170099013748049818946218812774244162458024092305441081097868762389436598259206649447835035622648743979209341735060067071686651739382070431778300322103454413835824493171629886727872605607804796038537842008672779119837710396240154004753162457238742413710445664365102704043698800353980096565069029168903399360514540437126825391376149121667301799893848013833692580243712507157092173894903876934244405616104310699006443785103866825337735062100161077404037795654726177236836178571046744982781428997176777940323834221630149338363471335903014252518874581688249599852358049656165535385669120831367836239266823785639278267289502035957870392758420937956666722589872643582530568911660432107883104087440640354572814998783988381714783828462992436572454359389591640604891166609619039435678828453314446300072865387894832345189783133562817749400548978034549314526447511579742409643018167846165449773846706830196119537412897178198220172944396677375956235796750912866610399840904771137041823485112530739764346513605476991329585357489839887772158448315841615313699126229682816683115419631885039660303259278260576507574360452615558019201644043622532263414457667283228606413876161844263922801481526641877681318046441872473329069250498499153388167957881383433350536299488084963504520423578220066625598662835404403615264285679392715872518470941358188880095646305928518798652988544132080550841859941841699503263911804061894229340838761480160266293788046817443174481952658854326230493227399523000959899786525270564908685259632440461949112120697388569540407080612402295549195476492558504100327261207207669514962980922243399967295975262885207640946434549461798894281968762012679957015291414946688688069004826981306197520671126703774548281284443543709014289827539155596545268123686688826465518093461822755614282966993361767260313926423615155510083364103322681205763809593110741923115589742549127808903780912949732707046022462054518204653272317757659732547249562469958011843712062322105136678525396414404267907266592191703720308734208836245422691046366438806310432911469365972021331825594680662999952041417707168031381651056854263223219868746240987122383797696851420899484265919025119373435745308703065795657541465069218242202185841219397794739333899944053780110713775964425492178006008287450676679472966866475603030082957584880200697937325543816919258354691061846892832693149101540878484770017771504075462113401738310965517509695283665620188278047263677183383963640534188916072426188897189577882163858853474546097114018515590903853514580153274533854886821519804078361810681334092590640008422668703229348068899969145175977934377308606885442119594168351727423043686684236003612735006220395836419639578544734760112691989500683276125034256669239871319799936835092119348264417467876459750151958644753317975834721535964965228689493063071711768631392391931740380105467302477043689890208218297982362179639262316187632911759526602470342032897006556760238727726449954456677682465932953374221496997640291504068274942635178154812139497716498610926818755424102007007770868541677860351859798282190832847015134257005932212945528787016698850616025473612959624462604496941857018957006311600093515457275489128234175397146955791769740175532422723994148810081426348073947821014697573316022373013709826203119674177615379742314706493203853478585842976197854143163310550208340333316334237088084391026468882839347835843871337523106468476881498377149315188482884476717124204625908422513685681435134799891093752762718942598905234470228803942411110570240587839818697152982766982289429702697507318422770853725101358196905689304931442783492496465538433557553812109452862781222113336525994431941222993122793051793176026661248741510752621246568274566013616795507638649942877902897295480892821565072662214631069060390844163796688365854415369995632353521051362438356641806996614949023927328544709317844630803424557879569443987468739962129582988121676220433786732222502664925202009267936044719816055273589078719809135350572497181921642055674117399615388362520043857842704044692827105175566512450020597259243080623864588519400112032228491346306389480638416916434506487791334144604891938204364554050823650670068532223984204797934024591675027416392783337260308604843750718281247104364054145139829433997078209339071851726829753983989809894428591870974354177240630746514395679932898894781146466312557787998805998224265802865019988753316882320346841451078750489783930123644825482687359641276692154210431368795997502792653604946484601231948865712958007024148848569303547024950968765400267846077627983262442176453751233321829262355039777323538688082927428061987020620884815394592190415677839088497380694118736790500025862483343409906339623015826863609892901350853919086005664861614707020251904149986552328025989490333719759580214256595510660005693175406405487192240703867227315046419663710830659957665610931232904306480024935401421263257232742656948358381913139151170992997824520764854728832359073583813823659727176029920150415820796770826284793636254313262022370891297452772149465380710445891677394351510833045415693114740714723515866732397293904741454050580402454413695670531986972725079368894198842050123576300906552299091391879715121601438982414171569769032721526939727747069708853290143215011508669235089458591408355010553871239035542885694191114424708070401772338165540973699210763504097645869140653509715881998596727316094232198147083438368861911199121044554893985921496191478776341867699251229305842342138114080917724710959128482166566595148182555056281794167023313144439697480978165439174424795093081033658477181530049177971253155343946898919769579259142767717979310131913570196780528582939235445976786383079929467700773499239639047124655411961169365461253566788321132840068516846738344947463266244178999547061031061100499912213033125215211089623167994602980792491527921846836289110104387357580244448952009563979099155155956170821221034832717764375459817990946934142844727567979723443630530118136198432754682705085943968672509674190158710450522640755613883387472534614029805699128415449461721059514852208145367839287200232509995982786703178207461760108499599571615889520258267274821879370876729066153290490129737560986658287793634677208406953487990382519097835447733270795040769712635276476657097954845508247688864711802766378675570714812409280918132104394829190364397425809417473082412153296437400699685645391340889766258469333546752266463617160854333200805701474379196285240657183109394046579862219962079892321946029263238169506771747986045698377489289662171706960967970898306898839331494005209785381142378851966155907169387396428511908803094307381452049421873720836671690314891383922701639121132044766567822428949759886214070912227360352714006930335759665590680452019817538405551521813107430789442868517105219329187438030377223159834827386849747095027257351354771370693597167350668288619907427821221728657556888286100132158438942192569891264641413767721627202441036780669102215103360986737407541000923262067974659881828086897475309205411183486505417516255782557694548809449341019414984141777076914696669484987029875919174698971127615762712638094560934983251010380879955362028883592236472743582649910625095623394486466777047866076918778915790750935968198695704815050596695788113283292825013854577458033318892286347598653900099310482458170558509973045052284161001537591551936854009227287012751468197062588949566148874790549047443629246183487795927680823123360933702185478282657538952605133304811064063780593363335316916867273871661637885228404123462460950608077665020849061171894444077900506821819673135229663242387186062303116544574562330177270133094705319234253766633281240976051297281469647811453916384596506246822063653572665852035656445228402872926223428558601932647991757773023724395326142108289275036200833239717360563657957998470837250874489840889156483147651172221668344932960310602737842273929279861752030505903703055793576684168653407576835972333677987757521549016407562610750038106433563138664835726754445993200972467946238423384246304387085372545959287151297132935796051317974314181508418873461375989040818169746415544745060938910090804452858602653894875480289640048889402754945005125108873115411934822417066486206423941302685185809208815042333895352537551691726376477539788785046001035963516661732876172799454622456534244316359513205472334009600505043543489142739050195226510001403349551610729677425506459240150379043850959092246532919092150488704233882953406081240217956965341754846079102111444522863927764310708437501345050939495218881614139299870158252759188815724640513051494344233777221790848190456033537846832803173193532166918093981464962480873868741097790572798256403634859213544326339676129110452710516899767664413590324768247492469782732844862564681269495898998678971520778271681456941128987234247767918333744920049001527956312278543193509155188886996035035324946450138050927038511256127241164157134579988213620117506276952121020969824005038587796203098776457189670088104847566277309736063287242713939966572114942897653283509755099141188661643972173895078639023380204320300109264411795702677011968318403265363485472523240706445072245653150667954802138800154911900207928671183088518092441516347121292428035562518662430538613103674040196799661003010775804558161866940198348096290350399832532156235689153529086108975502487841985537682993554034029830210847504283282678002371278035846675580238460832556985526461736352970448045151966240959540955018996100522024342340766866568948960940716922685279306399771663083624744149805863202905726797366194098217873447066935755060365701987836517111210964498569759323174681342412748497759546318361326156002605418477053340392346661850406403557614561075870705992366112425891802132918328232242950780655405949545447200069390964566741749379326062321757475446510929517890660516295402311626161981630644011822809006105369219192102599858581889291161858131115082699719828468223674446587188885306766919660832859406567791887017155699834926958990998322329303796151675094698220362227270081464848133676467120229803914395089622859186240874151861574992483386241340261104628634380584820574651773272982233008178441599414965789701370991827708054637989310065222169134556442736547500678634526889025827406656944270684621465961282128420684460132159237109637719878385903208330204048395910578283718614713152561971735043110834465427334435452036904174089824205985006148072119565386275571127737893834230843855077229718413205855525396405785930164908775743127671009382394250625177351148134911547877504332900963385398242866851712702248122763925977713556203251354602855550366783303708566139864468677305361508823090148605251024781122760511164952443033711927463326164701471566332312722752389812487374673080326703823003985930888254440027195084118542881976344111198216553734296244979057949777951511703371198854062821641178730988232298003315950824564734164234263604546107767304435719968484947030941153358790994926283182540467593426785715568433908019867291464806553362324438965679791486539489221562768909746163913917281655976226544249606357033635079965056846849689104251846684410978260360169610398477119776288040653332806114597011231671330930602578265435696960251426554343887318674731367474309860165665401055429265068337973758851212337952190412511865592738229559202262078556503866129175588893715853806629904557823408413676847189112830175171363590818901788370764400542339156104386567240581394121413245489646898656934802580176536784394621892497406139466642548101518536328536012757881399007678394951632199025938060234318283980466075777290180427390157070622847565356445659081371282534576968882564814092567632813677612228266396406686784600991512984314144143583689575181960868255647421575238683872326920360152575756703111906706257849922607072463059282552329960118364519349117932545198416544358690489982384724926857428600382771047961913238629767623566992425429059364366878490916321265973130151438124478522640038324965506765745213193364656667214577642813382275556507969535132928169201616086200611760942077477680880054494471352099057230993382600497185476319416322672025436377516029493992426006236696578673731052722595286497218234026206132061607790562093899917534984402575531700721542868993903217397351813396104980696180914194966864063874618057954827586383519775921669366217920700347701350177339683643187683531367076274536693332723303356234908364224941194251007224597707169523644023973127449818937707299823601831228576203578014730154455433176219228347817405830987281167688529972619695992221468706375455305245918556960762624545037829182538191761196361868552684812666286758238540934747323897792663365127782516284183852162943226225308894757462287051051764939089074437367267133253365606978219939526551102808425064469628441966535164569627139076904243968475092663691210447103915369488181961393903103994789124824368222050956712693114902379489508152847914720956990553493922592576458296961303583749542695303698694178811542241534277823586320513302010446367344660376215478350538378810720225966542244425299399197138497594587469313355089552352227070001776371746557123248607152849271112402445372977069580810450705783605531197289122127989219875508271000119417858017057935497557364814245547406964350858212850969059965441841203574899001672558784653180172387243785016442249984835329127572083412015616435956348315841399812888969292474587213510446231035242630282045752210864942763295143428409855136886922729796992165218896252615368963741733539433933649225358188501693211102918462901666163292972743204318855830752018597730976760545359663195593312115418480683395723315032446190114165595742725508928334970129547668520147671947466281461318471373065480881912844439939845115975273884741025987179144986913416106287616214437574598174539991285697072977229406979274262606175846562582966579499324177828523517642890024835360714982544160921036336713442491026838038451780964278883164336335848802908626145038887108836778645796968290578081299000067216172295840468545283336415829337665112798152253356634479603410262409476551906445806435495262041294209757805325644895965992661623186165681737660054042701350133944167905195938497904799561355968382055076093522670255686356052076680065330000586577853767838915274399894906042462813153477876343597770686202993360630290555348804802736294698691806922312637340137224430352552632993741666484258926253117824160027742262237714737024300909210422539307184767347903069151269995434944517843333500510363292835326028772159587444181591325032112918858389856559480445415571552482400872478672070448025392364892980335306094606482842093757092458396952452194123019444069040035275377520369368613983447752016684002296886051415636207881745788068780823904495200667058636750834783157706467046717842145555640874116083818753039933065989352863977265556982152199417027536751792218491560764585586747071065678287103846192478257277123715967731007350389617824345985614083785421682592382223329400245102615420261016865379777814068218421940691164846429961544240449081980957013949280779528065975363849335020900895684364062966519412025305289506425194088441489378002606693028488961119073600106453042099066544776163127040365313582782343116360775491512881419678088650402406325139696946143528257438729734180261034355586423866711685967909489464851443940247542216882405917998953784420381117341244445013372185230077231984505354550897438568562057300919706227811291746874345124401571887816596372027465584022809919569501274811476627777037210513083957812351617725561462431207466756980839011550097503933005054283223706760219292598902934004946698076489479783341473238907891711967326619188455384318771569653360540209771330255724360788588498872653881824867678819816020362911923121865061880219865364774519870082643696739525340139593772333362942064468989137145021273973603588349123681633388273733356759615100209079322645801425332066254176967970196369050440375211654804773815888212563668316164584012659715272369032577870005824195861837434342592474724055880753084190190010602745214946840621870446811162025253654588282302220195642638218054545225201309964185777967131238594973900577071504781562142258098179653283016043110570055216236457598858689412778819318921811317535968179891521916010449946568866099917069502065548068357760122168942995425521526787089459716835123938276151598803039739307688614140516974093012973976527732506233155411237517318903027353810926737852893920004122002248031591886102073017788169493663547949315180791975503100316132300081283249406203735555646363732085604020870681185398366758806154441430663727268044634211583470646810247653002326775542283811280938868656324054033650152050195603697529307731042747064641826255941274992501408449477693839064017955163858548630506203487121771677408946852408798264362914721061794111083675305461693115402554528954882077783001383372549834589312331911935354642679277618314042203045190161096031355375159219623513199683592581052572632942145852257340163052691792024630091623506383911657820179597100621902607195057077887808115317533386336650021821370509685191879220926094843527826232272029429875284437104828547531200896914430118722268552714672529090934133433787141362155241182530368018578052915486508806847548079722489231538151034627383139009626393243823958788890657313432082975268710942594176751063745015107354531514078428809731467043994208695729517273230905930214071466401372369626489177867415432337148766473739143022798800434288894993466717421408650624019296082515021117099686896277725985931877573308345322593277930639631163173909190124170205026990774369828090662739754880747322279212932393225291369931570987911531830500566723518623389480751303190430451731649332652025452892752177084544858866808322636815775956358134636787277642712985770453241378809031256912044156371320867273223445494966152929427928483715105579917910037069752027383998154702415805062341507487241679309556376385260829846042509808479013893159209103205757856274000232932106091723009724073051346361333604702864114482802091209216798865813640732541555309434537452530788037415106485001842036841614410886549275329429459243572229708705469699796507119650013914343206923726149641554568975436933288586493104439051071231533550055834549286045277532690599653104771883272977695512724295921107718479368659426756962552991192921010358109680282397145159158394590881009145518162608267312067746486147525697715497460459649540023783554797256485218144253273121620785223174922983556139948133630551904564256102570235610425877798906335164241131879218985995884362742781126802107299983936799724514824651775512297956091587993524842833026743290247163190151326858356515713910983378558859839979603694112986932796143168448153334500772462241229893041203330273619479125980092290609776804069214173579277680068858631579601541970031603329372110306085951194062746014222208133450930449728532620011754010508755341321466426361535986552093305957762304406912862825773470016715859415796138850878287101972270082716985113727291505850212696098165186434312487132197423617396143879183850699490561642965181025569088868953811654763142556585274801262110695688233388254350612132778895916047853829104608735431613306507759307456918790772496011987194401884847402519761022844271601336626928439791081625829951695611188067817510226021019586519666516540647380294864459727505271061783772902690019134081562367117366135702834338906657039408251577761378480786724333194168512477067117650719539858945875021213723257012130733022851604826247326326186286176517024840518803552195277340010145937488979277395973223157014577674339278114088866342900454112333710389916013143127947809388437198182026832338484752284076605999678788125103316596437656553175727888815291185089597170071915702939059255370150093946486873481988730459574407217185673095573769833852416992096478078142026731608184120495818664561119528845691368637120930320996007309066993980163452108414407868587995352376533998382702146453900693567520624341201935499976004050413419472140095556869714665387572673414067053434582149011698751579884652274614466424174288424042203778017382685277694328594677589103007652199933066460713149421955178674336138868480786572700075064846317875552636358899166966105708829154409265198122826634570688122618170758357035169488140631905175058524564257246423549778766069771357517967542641249295224180959312883175718847093462855527666288721344070085489702815014704498367399779541750154283940233564244871026397817794275400750539491975240353682777396907348275419388132798436667672124327253846710868058388220460970748182106460783652699270890032273517520606336013084110377661398073117493895242980821771257798994310474699481418884397965565665316708143158500602174782611634603068700778617619380239788962882383567121982928066358690793573347675449553246999134310139957562650864192487577899423942000288259455951883151367979498076666206233698571842372141670513279004739650801535472589991522873533039941502081676887043043530656145154716794995131947941872105414513880122335514410021301408826585906067787289713386560304289693945959361116683576403880392721778750648694574510545737464655811265557666914296656752917021338541797272357167949544094753055510069227797387131923446146235751818760585251387726649114452296647434125216587743386844785683513845799275692202748376428288668852071436377514403473402499265874290621431648742760345583375985348414817461771038474437030270905361026211978207581396510564043180001363742052137870794139859521260874714638639153748077492027175437740613665724546872415590949886408180162790781090370433079861163304201612566404391144834772200522358013797735197517192606052440271778294640793362345275231847087375273405084700742602417504664004739570075705673712538737822963481237249958046598734719754653165968445647943493380290099992528996836730835091863541954202923377278808819723076044354259924484991064311062578404527545384654814160582857230243267182425924661792800445892195932547089913409568544826063442611228163467098234835164560817835852506973022520290498083112166894426400408958239644212557027231970780778734966680543328346209056549140955111473689402439357040174171968871175800402628014692135886776914768534519659945503235971127129719853924569013344888166288301102796446957472521588407949915664250643490972162989840202667475795874563024708168436363842937270845666681395972214595839644871016485621550157848574226260783706375812305192638199800899180951454311693268700639382028337850792536893062232814068563453460462344399481701316333123594890540523166987209557511294179307517489894653350714545678001158529631395224138900840451913848888043634302829887488535034877153546876170750220932836076517196288064292183344696151328455916952806140921249960943295932945583500618435102904620141991044556080752821653742210652487643541426087180324712190506177120152260121013870603276253329021047877970794579081307394897700039884612816118532195704690190939052794348302728046196496458178304138727100079647050576998804853342939513095659335612350163614397713984465994057483451319147834440787466337732132195435337801082617456087936281558526766116171779847188807882996574688452866392067522722784721730546475755660544279282204420062812621465323390731384350831182973260638651846966554908099624153175483993887805145376615638310631390817147890831530108627786581858683746733412747606796899994567811585987863553078927889959094215299518062671669323324816897009908945567105858250861887349413253556633871982204203500455799184354833236684738520254036138382019369124054720942256975298417732105775078654383887246201671875353195301292577005563458240841172110006651162684913488670959985797003613760711366775227246881457619493453587707081063467100314859808793115981839408016069551111357427921247919428297998714486076492621732974653214099511692748363302967688122538389328769135471712741106326744834902115877714248585696564713400565738944095417548334623479420555377901937481133729447362051368311098792048642604602790616744290793550278571676670193446694759755011101756749325762177122276645245108048361651840293626756689804149082220594813803502125357089858693769151462777746333804272973769327432564880925882066039713798957079795464228851319927482791380058264540921794057456001403714642357149841947445444466874006785598223452997438805506506496848127445467780861651974517169390036763089135700315666796258409481354636522704603729226174419590971195902426086400440500886245114592026287409621435763690180603661409155684861882033210103288477618453346306021346811248738870736954815166869641933182430854778850867786938395377545811185146115999430192354959202427849033651390276471584916907536817919281691460963176567967357843317260539530804606940500412071367889906565361400126257029662167900104839939144143870595480988655330311161636019336349742880731847202993672101220619685276316290918381825481558927041628885128965696696679841733887451063786017670816477684261646864445628194342969147667194063186843919041055675047835724394851109105541915717353743149531670696067009502881496332910112730072410838434853337217323550408524371833993694248356549877612450491451040584645806142662505445301655869161223250270950489648197267894680099082576422008226228191344360974200383479816275078345212450814232396182550002197091888629123961651095492959470074198966535571173746625156835419865252846622293371441950181828528018029809760329675773358619983711241836756105649290561795307782746415505678828473054195629497974837305027438138022023957436577664199756684139329153596622520713802504223012336596681017136318833065629863228990691318060568821966939455216535018254052934480420091801208329506552668950504876706757297220723159048300166246218135514501897916696657481749640525506307692099295967643759583039637174248297974599115244488699797488061552932857421817366123088317184858619322809059109094670827276363224976432588144910842380684399401912288224419394904412540685682527534278552633373356275447138283119728867797718806473053512487017585797820652249443831476563483849637833420878350596001710295536042642318948857224359684171538481930937874488964451379879091652668826805891112768690262579466745579036623717801187616353532827318916376146890713859776411376479822914240595181992830909746271685248569007444187565281662755378800831090965278562254547738149488249456100008430835448216722469651925302674313047699092349244980410229764456219853039834729653381995373458087379446444156861088741737419859296701017846768941037393024990130250762902167501587951460803208194492562626654372497587407741557105320925575631491743489629148872863963390005701755159597241625435831742264749258001639900360312210685765849707012762317062536638736915469513187353034904317940406536808646102886551003549374773158830696196355797619976918695928805812907101517326783900587705833737752038104965561000700617906201961742801956576395789967506601862447013406049552724494788798328531129165244204506836863919947777879613235904607466220499188755426857189159100311348064562222561860593806223046889224011296376507292910174880999933435671783393404060086619130842693173285957111744377553772457562237191478427723876803269473359255144330005223739018227692434090989687249930089910054495619978631928560985659277122019142514252307695001716713039631122783323716944467861857909801446954550713793159116753063083813544753865742046738848838112605666352740719825806142393788546398706633490100510503406621630412174629069744906045572863231456711029155744201765946920825800430053815956015050241049704308505431387070609940945496823806539123249934646793938176903031621034126129130452867563565944863343542400077180563440875818322368380846175496771582688730170540474447857425859136788031206499302226361717598902456361551418143375395938746303146625390154533846467507395409103238216329550981193572648031910022120914675951045386092311252746023973239317366410818410564926974926943288401692493368082059342533022093479090992968164992807579851945635474788794915888645872747558978888477441399846404636969337103239850225795959506959209038085512029250126028470079246186197131274088272499798663679659104859369251368492213215406889004711799792877558058838037224378605363876992558589436863950628707709288018058875868173381475261936104393995178009500306849665961167478535629003215437734658178436776234188458621965086897988329062047027462327705833510249555782614499451727863343384081513770505236292131886109156619488207698036854512111445170007768209992476720147185928839494718593490959180871082406383840818147684466231623509509827410924263275469876838943064321205488603076911957657361639377063968844217986722330388897564035427327262225230823318172565397508089838722319593514683786865433162396254791830260668771088588394205085853115422540293176026313094761519211486141472239124005104729805049820090266840417166193205804509569161809178009612991601579134393093618055353425392477557200887619807953304115546199238457150765412328418235093130630424919684118941403948768071470731495524991748913859592369829573280056821351064657596758470701999005139752661128854891277204751828063768929247146256122061706208477993902766182661091377633006192904676120157492639917348510434801551141967975954721055856753840635697207285136570137449153812206530181322070264260913049055564764856908481007744242254925903145674131722169454373447840462989835933329456019549534890444208661296146820486238023507993328980824148552449202331177313297110892395321921749494114060004936706372355251345723235183383485669466523596094717350105015419483115031725967258917878910475308066452233709982550021729486749050039576583813320058614171642115298674639607003133817974705850359293095986900083421332226642561656198304277797474454542343038880358585711383686488948313169699180696755019499458288532501724512057230191027563353591232601910704193688608599225440434973962803428833828502275741882066448201854856617188465169313182598070507651645864325821477997787590874770054716303075666358225180311930772434411642614811477357690218544482473602064031849057358665731235667475273766837070178727036004838671005452175190826280427087112485114578283103751804550769963872282262644730554870609512338153206010947525554651338421049402887139648485900193534474786773521808755475678861169703401910265151445889155333485181605998579776681555788062122120488186461171649727361643890245008354866424857654903595943800259509010451736188522031586373830667898918185396847823243392255027453492489288339077544532770541451369942566643961661976937882659143291341167716740740786638333244283465716104607836208597581290769262051244635520593552274555690816958182671149891699839234939192474890336029929659090686156101176466809347095413559041444328684016673944236346049193326700380633943148584832435853271791921997701068211657897778435099722068360229875154398648679866154172446287126171590570487824178563971658828261768510295933183072052533671963044467695209034985526706951566096525077079470958824097783415582948106720580153491267643627095470840601297676993381504971028695212693754669038221586884343892145459858553139875751266066919930396259041788313824656768245532475684593225855988333785226955075047062104947844074211481502204911399399441715986170125892263613732163497662583930101154619632393397765209137189867116492062869940418268352797638119374259822023620107740390690364229671532361357136825859014864096315951723208658850169158541061804815315805620855946466149389760851442929816202102424811311847104131621599298198565212310422636138196582875160912154841584402371447743431558442800417427009967445055824077858763308451322847264330868900821223415933363316230090975452245544738289927361108606552752593047260836046120832734107026621212266220694878951708673155251504421901616673436563061290784839709244569707137637736366390898922704406141779299565562634345626862175990039380430085990201980129912881663254943093019880270303113210266727172965930706551652554697010282533856301252625513062483916789021158799953157832374655471265256368278038350958032408804557404037996546156929609118716984658183632044449503064212397398134104715226704823812884460455633225733636750821406448401906672786718861139764555084262582963098202894493125969619517054151117349125908273181958920912862032240309782435255175875709698060697481857412775475871961029234497516984816226535925064390056223984345134894077940114205003982100169458890512625664704238751628416388187105466163573290648153801789207647803958939799711224321242098906835950289144760816223020034034000676910667507269284660790203852446367480746395188633171629030666422076780230201233825113969676584364787127961627404594579356110899464271734919698873597923758596225183255369999751893925169940024493528127532704549017574703223770296195392355859179512484303040428420008917458525489836462255980937218002347612115328552065566417886177984675148872872534449905352745738042131870378757399429154434391481882580935354170749539676634595288181051777960459062099383568300704194491806109246353157912015238735507864794705189591323458624063601535972625875014353803163825409170302696330472873466456129354206343324943828162197506580538310854621561336970657633788051660486791707377909975967463171454946333337178891634909543825387231583580977985986079998585099507045019002086979694675184101967028764983005253002119511279769368278797578574714435931418216195783115377281246157666734567334680803864057603942845794249469221605560801723592729382986697845618477867264681622793846061162554774289433976828478976506605147737659365916918062731474771321021780485983765108573717671981928437673110532939992060309985506625417352112993290493995475977918105320986468729862516892809430355524729233047882311822104416062887256457777808457770514230011552428096846542299583882264084500630921151037475622253287474424189004084866788066621116375132121668082244211765983901559314561720592328607190833219669305272145831617844146736919536702034080494084885665043265083570982108914132651727769502645250356377158526356801485745543145154055735429664186603323360990541286217330056360558000416968541771780913047093325074121642975128269058851358398782699198513364704743362202091740536563822322717079898706146052839171717867908624529598663071262631058598320782644512405982600528976402271082289869025219759491763888922745742893595171544985801683560840817813032690965573057855588054265233176011519084847872892715817486440021061181765324162994185367658661416875351576624854516759220783528664498947463662428344260697152408768707223463645769710746068897903552910088324340629536699386910969429823407792983613376119155355700528267908073607427974089175406378272129992500006325214305935621545327940745189239131392006234534952299833073180328697445413025025272772336401506542508997386807923672370497345703067391879067086881663511475138837917141338327753466399285005683821298149861942892326805827829185450821716553983142649465996947514051170265936087080317809366568445293811314917830458686447296350251837200919517106935642350573827886724734030712603566963624183726274520271254236159074930827516090178062860292184288237674618328999032774548490201756876342038870164023643829792698314227813918761751215559169360714905743754168888615172219582146852583747901777879778772879669325289364656088291851408098920428533750377048677034551853340488205541297522384039147468976141582077467214357906027331980974091833438960704523494651856512740320305608115846916469760394347305456140873992512098120391245726027436543767523139408992122131723463129272815802502150695029147558250528181951462728981532164181884498142566483143064019510487669980752172624386230242294979669858868545560954590367097905077222890270706095651868412446090446451553268796097581833968740286041562073679013638338701041831399201558159940193057791181789360093436320143475956875177716058347879767332237686211574714166001927481820152784543596048026316110346662352415563634540537782661565119877415033213367793140080440864664888263960339708918729231085005424288950371682338666252182731559697623777734668878228565207107927003289327945021198841161958769187446311622213087623132839277628383049216270285287451168847559676054013610394673885141748206182879889323870399395789993536934870511546452333613583084478197409439947721190472563441775676648329526355961659954620604900040955808205510320242948076214820551210957682224797844553908113703876049191649522578918152296212041456750077083812231114415527312746704986127186902050361928601792781319599798294772383860815067121000972530693510908978488494503903951674270781885812101481607182903139721669722834444622838656148610639768408927107083142987627548827063606239049295246538336241314872916400386570591404006507788507665268305687200534792398606386902245650622632088232144714842025880779688312656969326706162442944360282127346647318295275786101100944631587409837778394335231575080015584151012545266855892120711683929076104071211551890796702907718764529153034056592722699062134792297818126433944467799242069479577830497377345724997792254625204267862979687821284148316371168824016361942961829572457125217618495326562504261865846967173134017811701277121736322182202321515958438279416486994272735284282662822711809249261654448523366478656329495255579899023567924626128677510506185225198206811284851595760162128959020028833012909516812552298661413217460114042988838106177591583327870543814622855770760259884705807446240918827748085496244706244400880912346048461944987263031428735448320646462458536751012458395887709980984599199107152522989271981609879250636746351818851346683588781559689072853118030588100934841642413138215082149325656868652228269146524219322325931394038905048335490596735136249007599811614332167591856641972914682668830341047027650081176732618323285890358302104522282972077616895104288225109095046797958342047664706897112556526638595822512353294203145474599985245944652946816783714216796067080302199355433568483531798501301714875341665351656977024678954192175470761994503802234925356040533473631736986566933918343422852620631509667525801404950998306954685667423058858322202990042166860888304232543599081474004066187338666507498977896991339046026923378160312718210607094073925150399247401844369260699455232974444939594697562053573847932794324080093986111913855127909765223496521604846704701012160520315755705336400393597649331850522994821175196518974703302493866561638838824625811518569444882520800663385535685955795204072533581474628698344393751409759835674422805216999413660852284920893871120251065684083415582905317667730342098168872908574586043618118833086679690431228171196363481064513188328665728394669713660910826728063926340947131188030187733377272601684683655153421499353195825116775784235020362750732193305070920763174441162597472112174594976633818521111339951344755892501985731153875273495714858410440970576495350859303891165241653704622209121372300558247095823234496410597786560975859967832412165432732430365569586894981671501094284052892577237868651300743943114112931503189288547030070096536993950642213036422065291135799464314089385154107765117662288102810762859019211787172982193696773706416122371922324093470182604961808637441278403984727763412991926047706932804020545596405641593180645239533988166261618853632210613710627506347273853297413402043975435463667770819821407381214700601225242767263243420484480947031936017681016981407494232057510542780827322636432461365249100213567330963452197006244588305920794988126127256427921337811097422126552188413547425978062683460414293099331655283480151438789740198342041768048535825844738193829927064610132109264009176657707213425097048498959023732910662843825174531082856690418035762942841539219762583837763225475581461193684112862402277802255336407369941654946157923475390540745164391218389598879609802776878074698186667720236477214550898460899814406341173201310874590235545913531271168843724736374505556406792586794599533442017063768268508570318206202461846062472314516097782256615518145164512495496294386424931760132438069871297394237930699187278164387869052448822688052500832333904308059743564778281828935356031643047178981059372265050380784909116458514384307303307594232740018915996574983572531420136853472383318624673412975954484191069926401809714457759748694312139682226703152665468702594520259703437115590122852562983710014918021405188471379286906033678625257151334433550808624810034822174276186659806783636816987560876771355647637312896234298494279940460005417506267223937367950818468537525233668023164644049563096694942363285923244863692989643181420081309142832359436566907446620168846001740070053214079223414611936373556591343667201710979711952143591684163361268185537969306254934552768497220135323781331182111283846516442965818307935134743649069972097933359155561718120608593619695971235738789376406956535315766926569411314464631250482658468433050825573903417394753502932124223484883485817152096648172852577310486964950486556821245023055469976255327728489765797710303389802914915234645744516861334416580647549034075002917899190017518901299373153845047824465420858268847218791132142893586435149860032733013530695694419098117384954836988437396789869500079365044252656564895161427766078447933216383495993321736242603344824821772947929013050248353657895431059944028079510545195511249251497072146362011473284493538971854823783922558514565171428254353054953044076753601723226198795847665436631829224034614783593346873130087502349236623866291635129690769066106055546743712049402322110363051520183810729736746395912673923642747679331020360852398933867103336669308791349401392897615891750817448507667206808636693398956969248383054807634292442905961328277103568969146370953946521908576033712880039798453665534135630996538896321832958966543859141767803364287943114550879512665386231801867412102985895445198733868600212423326868080363133051433702473581337062879413365515847437024736974917277224163035923319203082370959151661554485438594601729212612221086299284955588691487411678425167140045119260987475654468689379844980504387675909977552067008272925901903588838127066455048790759048718120090119773693750146114863457749704421745684357940029472251463973945531294048555515930957309409551488442893680043493008026714485702206191288313460840161759534395633772079934061671299797151903794883857616458655850745701525560581892828381835351646537394243330044305642477589508682684686538790799966669969936349162697703227217736765122370638223920944677421507381659306849084166576147437269374315542765675678924188785730296172115835547698897728798197714701921208295665918074023610912817767836819249502539587379688375278750986821935688854768349655755710214337926654361463570118581642384442002130904272951973202730818234936664730547621813163980176833686190369460637779617050716408948888177958442150447102063082177512559646230304123603162468079779659589533689246299943985219984148350511506661155807066662808963602685306767940401427140072659910773620332887979381671969286803053088950972404868429051116864193621488180184805620373533587304752462582130455512520180099400151846574960694145821996225547048986203461875686931802747202215986792541998068566448086240274307100562839745773638084858354727166262572651347083346977528130321258588205698795039749846077286045642415673519124113437975280029487445863264562720583319447751337849615991545265454450870365756398120884513951561927180946317140637097806760835435757915919208081981430530239782874976976060303587300535076962898137582488889138472473724277687866986703194808910159981388866036384649457876497027561288744400666801869754476722970545167190054799507575201209633205216042231993005503520148526742454700376300548139792446775580899610469715876291883436910055191404323538864086395867054536174088931455111025762802887229693945054347648923296279987599350177377297754878137589621367210023040077161658870335550442989092826391384482682939806411157807970202800522758650531532553046005363219474856799266807065663360499569914222187671714223144807565825816182253867520802532726795380959306240005208212771707829183765530382554259452408920487234054248808163160038806078761376646411564070702856048060811009921789053539844745813517883421996232351224321604080723135950919546716046706065589034824009396420079759623129645644602292606401672022482728934164389208744039143252277604830755242385145640712480993366109508414617793318325497107223473378048582757732125827186734611688968376706346738634781097748235176720997576623255764316591266064158633882625219564957111289449177810713901005736103510160324237088424992487092042369605947731968760743769080453788400654431551566775012981086834358159630952193438623245130311945015773046004313507092710928615885442626174486518245996043087283572919024228089824377604375755457113752503862890851779852698635667002165242465222948340340072503164108771873250101403370675352583645917973835691550647037132971578706940131441994811360690198667852086845075255656573243311573773376682033718203752492948063580818817199659265752316400531581873034733867169797789256301870298012681562604943322111303735505679100302822185540810013723127662961684797641380225710013653176863445593802604642685668810329152553919411953472362056356124762228084254485269238049724988463534748745287373612109701494807145739062706430718174159712767066126111138073066273365412751422756087376802663714314761403462237628335768014835899486831804121140871041121912413881600772862147002280419138147071356084395657515205670652427495436202002057273662940021498029785123737623529898847296196375451901205829489260668247490261936363381274900849479126173195276046951098651190391509076458530869956167429460748060641831158590123705102079311755684373979893023501423468159562397742020645963233977421792832857105371512893162289888315433792806292740654942686076694330053961208145203112922980674376860131661916603206096022898545269927603004117499002403834724619982442733156903093893898534927097966160183266389869800032402925434257463293774616515356957706804638000766496678683543914739020313190542186419199065393852871964717541522552891695060027882068902846173364288840326253774600337476896278626888459502668920981558529294823394311973351206275149670012663626855068340679843374248573836222083919813258839933908465542645288578961415639931778731349549375006585278048063356335008998913093645885275276185206705628250946943798921614826827736391093845292286357397508882111314010577592919691058761733558979650109314471210099250195774626801050253825792061909206908264739265133231830940045347049420940288146373044267468185916625764859861171701859551847765227893653805504816178199204848090843204761405451562813837802493097990954384364667387917913128342357878266328557102159921904780640968225846045928334772434674037538939548013155130153110424160896746612559891737599676822289126039097253301667527730793901285122965741522002965633017073157004142813896092536780769508627898722278249650980471531754539129379188814112311390118362007446282012073648124210872288404189226311088362051591436315880443296869144134223230440831620695007517870588603651167505894680091501747898968272541303934479805886209892046634621224278759365691055442867206713569695687530406892435890665271898848721444628340214718069916644915718893986596192590335093459970610740447953313150904183232850278331796209241965721304821794381460848228648736958244408804074639963585390112172348322387510152167477999041099122879439300823348057514274980813513164565892576062246501914861645483470250132174476904799284974406543622072701848496860088633329480674807094112995678951669968570119167027741535861538606670504321481227554077235606471708615719629361982553220105082300390188323010069487358593772787299975441450354086624704886141401583562443968484784034499820696902540949512126034624583470223936671642259752423712413790647122872781463315773449263575566729799326172168775031659990833442178302662229017038132944716098957213200997303581137222853003721330201670576390043946026402671499895785692532151593304557798713296617451784359786064453376591876386246792416480627419287738214610983052594486186154113319617279962553301222398854896053319183648494149670268179387489529908855433903864667730129364415059323587266662718348307782030540146078923847969663015016453359493857630204026752669394911372802777307993716636685321361919459800924360449363966824795921947673435788159673942611946210439975572046279619553987277214040119521960743538992765905073264489658576587732225517624447957994474618130808119482883849810641934646546702844947214734610150729796177421750148998911259266171761693339204192901581360214329142361832606689158760914879531821079110946547126050862984996663129709449131619884459120667201638728616464348953628854013245635894855414329714510981029048740946816854295905106438978995840889552889865820518217287586943240897802153837923683753720707719063983007983817531065147228232459325015312952198295560267671917531887513773753676218390055577154620182503543668260183489414638766636205984152016666305056913861479415699606386054890804305208739986921661044391947083577357129204168290691552581357651191280397808985849825559715444093343700344322348571538202694132699608560181607680918198098780440603960297685649124392171648539156540986865656341570893253118315935587562695763624331193503592283922891114412283637671203397380077509410992809440903336973978776973120253299096116570470816427863962718371732307644588043860384481294551349696725200287857891438447843163675454511733814711792693884292843738129915223203356494832912825135968228197345472578944127517716355086701852975120353938384149831464919798317954952743456676368260447543918637284454612089929945072309385029543402799200967031929880389712056962460489948210979851350693402028488820601225962094809801035117690297313913182591927308345900021723651577392558014009185572885853713982556340800993774774674510855055302100425873607078932274167137244630728573396152560942375979181749991052477988204793463387107523230495480561200416211932170429346200968766987081644463436076937112400300263341818720304559852946773078330860242689130877939599891520647747628738055255839041461707717752223910408066853122540116231455535043520390431177435184598473540304215542875157880154704307066278165594860656816630879767407427989560350879572877077787501797732670939756406659546515703377825352903591751684644606216072872978573965856693736603485510796237398826298571875318828673554090209886164877366530895203179943872846936210104765434425651538031884111781559417436240321629657875810504129066291540044183681370242569115728742551227669919493509378550349144581347711838107652582914784230364049831071594453658076631612646528772155265419417087051650536678815433771337114967072750188397475132581848711654492492014991177430582075567375349192313729830662936739896038417107168925698782329693808898533321863052345910431760492839952474027301416964816665106946021919604642890865918148535129012349461849234287589336958235230616188893517602799913469263840419242305649295177163607900075170447945245761474756496033833980798604529996435675152588087521812243876186785248764783521886942840641116935828872092569090636414602419677429497174995250168254155504367817130262022096462409409050791918789175826649230803999586537988788288447941396482034503906070664838580900254776919370221185123311867085973627824241652251895237393855787309176397305302300369662042627424221715267379997553915797370882629888680975602702888180196054389335257554130631902451722591736266190291429498745498572624836013492528913334394527047341280288885938417392547578121534523797824309488490276386197631597703075197811627201151164416099163836206659267739750332020317513390843550152753424860592053041896800133730285348889054557860943559879630966726499024132905146052005702999983095072410569700110552443692574803390000941380165257986501892496925075154279177193128965333046018168475615630394376556805739367528734320326758699108236562988932955759777880322257913234092684051204599612694408995829275111967765946439001519920294998028512740492811204580059977600906633077771643752402841198991366428082405238305526169156546858697311496521129523597490621317476056105510724776007087308809848432999408481211706713452375164176058770537598726059300149084592334256694060205675225800919992026972797160940696269903077193115946989890856498424357718929007822138342335419865936280519552431582616977865518100488865356287715452323412410637729056362551022807099194237606427796442157568571447712037047917195135618544861109487672313570099599452875834121092517633961862010825341085988901072686790106991643329439530039125445939944803557090109534123961985009450606662810644789255867012096746899606163532066153915999374715893875242868597587765559491159446157984028862948357190057192045615395540700105399785435231586123515225906460682885235998455349057217772972513109302377085319382075973479877264042694680473310060517213522516221619159525263099238727136053531143180373002497640255435713333662713550274677454447445750200720323918614667852023704261474823928372975599793471326347531239951266951568959505187656370568614457561937394201289983852910441849409385704697940857446959613532889868495402575416883854290973481863717223892217337040812081129291003699723551206619134400809743556885671846396219655092805145451272100575257763603467204340483938236924029408656863099327270328412483116351844630486779228811611006472357880830505084188687654424075167970620335123897310508023646884661638580425947697552612634686288275148238013192755926638733420746984350570659793289115009617888343178077574751408654085635482147043470563198818998901217763719172313539166941187445525155127403693650024515370111311337843961261580610866065704970543611814745156704650949806952067863552235134231930113965403146283441229038006137073103580025623236924680080614333275254046919253410027944723693994363977616873400367701581419484081526855288484931132123382963040807173540954190296314300111190856904214567823192585513567820610043175130818553157929819863870859128024757915657207068394276860078876104560474851023989139129762915170164066316243367001303251092716413523412214275311424247910988521765916522666888502043920881171089515981312562475167900102055874150119049609361731673007564101275516242016352153487003791209292243454713530259651165989866801431631324390291785341906483737271553163243552245742684186743371671429028288131449757338011640613956465450146761636201080903398529080727526194849985031782507632433998697229954300931169667577097105345290647939616772197655630771884514681044766386184688462786095944899785828461668921351263774301550489724933089471093669328849997682137383494927046422231799201174622407214773685743295961150907942077159552754099816152429482054597111328952796738672495312898564173791214410989633289516407979082878880695499741286153076139226039713397941408241308143290043080683852763454918729468411209487503671012090011231501632034175951942151955093774676459274160191025265643756665056844505495847293604945726864024038951026387761958647284670000793978613941547494141290242175150872944841394975475864816687421084430383279322061050871690979483564711140645978441240531418835438063357531287773797125422832898521348887400774925738329415609365502481135113659151755663819650195464181128803649379207583928504811326706735393978854731556989851156551769975500531121002187273393988142977035694846338951235254038543382256539246518017378891788304387727525944820184276527242128370399145250609509626143525215611735203298560962918490920836434286946734507550124594017348018939339637708490718422604928510617964301041094840712761171690226470576747553510047561536236742610395652042454555441933349420912504420527391387106064427839527186212144743466613227309855011820107920905850349199714550726923038821878589985225660790119626836538481377795030387298625055515210792101622230518802982270709509598437725913350736117664379407817618658234694575903636422736673366643313171273284187306963714511472350376535039471500626704328518922350013898351916877453414065832290393932014967739554519826803795308077617218002464613973927659148593614024865804317851093289388539253120005480172021628166430948994444887792624383326793600778841670249526856383553249185415963276896311055594323954760902117490906614431642952973710972945743007442460143360143716274118590986366328339820415803384676805609782205174554164008692176972498993327381107775729561800033893530160895001711678393352748530719279354632028013146776677968355005990680952829278673297043507419136535404591904020771776002649396736739056521365696335320303685000972716991999645553158875480412172331236607595627419473135400151672471239888469035894922184538185919394204832751422133902190331015782798034014259566663063812288443179154721769504570039976712762031866156076285127259538251940747163667120904092641431453293994831724101749790694528199328182097448188200305099148938187121483760359400600385813690671805188653539395036725626781137068409349917263073755797207377829310694251909599458912801126103770255042074130185297608788432454014142413803523447009626613978456084796948445119769332083701303343554335119548526802529677527028071079716188068182664966702292704136723218718480832619983406032566980992008042380892079021875854982682734461882016865864344970259884159168080129946451440417527437262023584866944587875540251263296588357881141631877929193752019348134026726063004336594988357518972161929223940374593468132187001882423300842448646295442601092145250866859005638330987240258732517075790804277588841397362697992403474760594129892737894085272184870308306836022911693100293326693956089426364330296115789819520019774126836043775194273986489357221712795543517666859471663342464563367153090376544199423450780047002660232698349638314044252388522570722971647680694903981232785166105807920926553366233774600863408526463138370118824600188379929726437373092479654306341861304656363115316584475900825638115697805968663354938903277356588737239001094935346800867194818937835113157159233121476114088270132929089196211057683866095579774095614338049725645313093697237332303542888795168326920261214658647286798094574123803338079543252026406493235928572779666448926936441009763345685940598591549700010356774805684065462127795209772392679619402096684513214863407431271108764615995880030649474498780856875503174242511753726066923088502750460384358220064078046327410598590532852379409155043665683421720519045780023346255858883885447707993704032115518312708180674857420390969372569477820057655222782410348338119914828401859696217296639284070199881941198342894092101804587687013069184821619099807670573104919783669492316948688939303340604860525833908486788867951357512006015268462870083659049811822219329359849598032535117088696425380195549944581065292695338435930174075643594574914397283486214798623402185292140512507491611927710786452077172373694595002415720773107645453216355609172346816767107290791943331578522273745148227370983178990061332667630187848794798592394606591596185883678275911071548284874391453556546603882103469238678885543603464433441133155423452315494441579588913728616255355069681735713258741649652681249788710970042104573504478184613031064261215398235564071448920189767702704548943498417025763350651956291926162619037755660576493327178381118960044919471054115238692032418051056348583955703790722674249462728245816319934426595636053787801356848320818232855643241574549626458875066597304667773810545857184294236011104054783334795303530233303107627267992976025974227558297312106793905963421181474531364523332655984615664837761346852099253657358951709012169482109608678244928391493935505066735804195265237846288050948804798110045447208472946987256260392338737516702655597711189047982150922774419188029123509017127886443082985106459991019405556627947311561409287990634151279609334134000550829127556545186636698697518518135299322524962683542520974107554221918358220210338448625189769925963115022512851310559380191426754420802390811395325745824398619183847067047665233992121082671299924175612601586469582098425858736605252556983972067882941095063757645284832000495860483569328166455287983012920663632916240870547443096532950469182974558053119244247916074401091222729241681561158351267868696718316289370093874174008534046363765563588621267843417281024421849813734391602860420512746806865583171346013421966019083173014490958984089505346192145703914988330843138436235293159278275498146333574090387729176129039694608398439859907142382539701592839888361522122662768917933064391171148628401595590839804907307105294133381851861862823434843509256062110366193794049309345565211212928409596216674062199583878424294085631933742045523514213459184679074538169718926247942244896710107681667534061423535760475732732119492820515160071848500336925043552216780568430107078436223111552466912892780280118076266544926663205984153986423597000056879782659399280241510162209820002652815513011152073978670699407634623010626706672024166826897496040906936316404560956272415237074932432485735908006857113971496133802584640528813528974190670037640938650899294664168779912453609320748893684906785998836233150314294603465682939245299922064620581636649121735280469388927132548375780241124032893977518005820595036489633056147038591508323994439536929182504210036211355517399279133829564104469524682803321215179672703112594301022319628401392751294381329575461560197078248074014716870849535522496789948557465785571335063323134933569227916321040090125517169681457794864455795248442529123207245909891536472210002605539655166831347663907930139023774101807671266112117508471547691265591165945029656584509188866657647125723001937182786434449661311007667362941683451066248357271178108913625891099017404764269475100032578661803312624711624628593031804122201121074772527044304638133725677485317474126185131271349033521773949313545332913852835351782222889840667260517152929498336524951784348509444185710108421545389787471326630985803629419390177793660073982804603939818042319386250511129853006231047445069021229187948481554774752188114873905128136995345383642829569007537235206746251340241776142910526326931857167981911062037536135979796724099682564605112145279026836328878179542852712063095910265805516713254518451578770549955522026485475085692354041933956620554772619699500204472711850557501219265059747810409829626758934676477460758892553412510507350228329694994426673273713131983598393254563398091256751362188603156202854555458876961921396368129212584711821813784069423234770065787875238442712284364731080456616742616520776961820466363210238563629870270737684306485900208379226438637164246648721342993195867209914848231392821353001087202278374048671422594163853668747554867370450409434091630249966059240045704851267621902411121166351763054497788984852698994333711849277746401329487932241735356894631179922921361821395744024461206737173360103444979406540020388751633996122056551569419605242011480537808633274388395115487345232714982654960665009735490334591723944121963662335918529001194431825751636521574995083567173306268339026178640024918534717717741425194523107997156726520636174487089738679013562856543246622462459645490990242976591580968152240655575510897127999539441736722305844004415876160328510940585031498046042026129881012640578289609991780676159296371312928414846151323434839740662986992133502987354031673766141164326150387549309307416288065805558001537344077146741596645401620734246998697383004903920609085852258398054819170096657588797441285892628762950696091311409844806630445031527114368713594360345216052337118350523967856957942138199028847309802119499527837589898310238842085017409337783757012276586961015433623787656347101779130096999135476188715772763682687152747777714481997699085274357576184467021079702994588412589973735550123359306748464546269798684077317564070163915073963519106981392999285148928317127927831920135914624918730670709830517144752149599231784036651223911165219559279291299704378328891205313285142083966303945570991032442086835977670834722446035632533134063271268366366985472203701889064635625077468602553658713292902779742039647241890164943442525288370041139764848125006211714062362201892699840763328829591407626561219917798009525293661615451938227624200229817447140858402606728461584930939873428422496061566251630837493697527573832864659196394457453956238670119242816303039580388776264761659055208358582996054479037003045709614594951634577802810410535707535660804633161489725542058192127251612313639277311525938909307603872332038321837582475877243925943719254673218942623016235143873177981764814150338525556292017153029103885473997834787645232025162066572224038873177079623186039069408643977400638980794271451543731994247609691853164668997698159252236771530530028475683365893490303141308900783644829968576450375788894265408602232385593238001978752374242746063831343657714431716896352636941028016344485829502077150640260814037378249413864032762871442656212195253634532345797631863800313562722753295803595188530687644927769240688030890229546336396535639447071274989751813546458319219081893242232385916844141353539551408236167417939087721670658229319913389678960975176870523607773048868977660279474995045491183419125466505726202477332555673878329924430124171923944621740119297553094967474580630750811369689215102648281159328606741839620271132944673593124099152902185377997738151724281975166605121044501019902773787483465738398992277777219884218953169855235935053004790218996580084551028103709249077517378659292562693780533686768726840596592813756978008336521053463702728825584213763098597551253654758548878958022770607910609871180817448532379861806600632465505384782330246723954377334527684068397011643883806185669887386204384988832970119673221999817495686787666522280078513853877551192177464375393886902370581990111350277636581048376165325386105639753366431496481921271226134891820350501748831652954948038988005489854052258337850701600840506972498305436160707949265001908434773282643660624007678011149942863701970882726134895382285123411004398297008048605017725236153008027617906414720693639835049998539256297496041545185774275690811463941920346235706074101821082818957341181820609815948059495023179349956527756188863386199625035590034982464262220614061295994429370405705375339210846706380064669218449982660571313527076500915308381343058864093451999585603475137656254852253236556003780054846624330921563702698566371605388228436276305225600896879318744363208760911570651772641193863255863793012215685523832097914051623205456436659307750003063695609014497281621877092931832016979127710347429793800837740262925661307834220350711789965784142566286260988465470257101485906951596938063915736014705446488940433532680239138202491786795179430127905631586309523076852813162084196318857919506603290302629621608337562474566496114098896367895416086566129072616548466989123210013834872912906747782348257150469034864730465420685697006044896963755989679374683730267462471478993782050825052056689364023983262233886921752273414374842929771078414899718454143818641018003038914464230851160842866416370494632193153291246805458932363824832963688026063394041836522097224814783092252716627793265098649983035353720922116873259211565191015472958500132600189364183919450478696580172480934722443888010220481959574288736782066632264190146372320174776774468748280607625724139563939182802092306452828364582499013251747420057510923279692114381776930491303433918643654041704228485596484736656468332883229178347268297023637232547978434402177913932124690015197730176099462090575085203050210856727072786368991970909180409841238387470117474660513009000408192654585437956849063812687704091297890216377706288492759752764141236851431400111550544104759084597726452868227211423303096336060879580487641058566987556987516115756235169740080186641585287213430708571211079330062453792412380811135139935191597619098162094195814506819338476442226214718968840859164697427123768399743225212857194774962038686931517089221190802874335890396538183820017893049214176274801167248409087787139706645220812574105761960731946073154135896699121533811142922673876026691186023672844299682564104489189086701529578749310132089281996113726681349755591355471716036738638012760314334799653485384994425718647912736955008614054590232291975488876055402767227589602180263759280683158385010062066896318890712527707825466449938181087376777820455946801738570628759151547205401037274400192409957737810123789714017411620511483151030805324749085584492345718733311472190671293449644141739574268995296709424564056424733461747618829925023472056579342089145600334794292357906021433465167457386381710957467746106158365960396911137610202961693554101329035757932166002868460721535836815704032010606332044291650876893190689471283047398018662478046607176164765703504405796916280268982667472433402990593167110377655776951758382696525113743361127536685403380399789531955499484213087066686902090602099602813987266701026075368155029761908737303596559550267123875852580347453884576760915990256814927753702626997193699949121597852390407430095703670091327240673543976675710359107871760049294883925766652523476640412130978673752281115902729969611081889731455490351358156258671963021172531913090663534901402507324917084565784513535072875371730256813549147916052926865541511136463405787986718293186855518928628497126193752121910636658674138750746028545483124974886217063214353034199757633365922810802932862782282826523264892544719786794514789538136958946030397029562543614778994232161470970511243859154882391286076078333053297365664159604796000150890323170922833662886708726359821337631650777874574398677719931208327111118189847089857224926109438980392216787928644200225368822539806444332073088980578015112630252802691616178062573952688840732722837410569921691684861713702433115241913951109345734477306023210817246680407764458918788531831723786633724337605086642546098309493778458043311714311437596980997355087770214594109460680060545425255003935007640293167822180887376794716671611476204190193254290547631382156476054821811541816781431926466768749035980632320818841626212843810526014934588307741468271530102423296669838575567167055837071067195940116226408473840387339579184053143377772753915318841293457338985107750106696745096165803643030726796967622926805245402177469933998059942951304430400375416575117422085168727566870304484856228460745523444059243436773152540336380042985812517535090180046255411458846737601044636972064928441083096656642075894018598278758099848809179735272926172347980413642375893912780134351121407472199862245407292912203037716875072985223058600696585337634519643431183270673171488985288812432475563616880465102845074828318255363331150312417651055667266028397391192284774893565704277363091213625156928184678408226142614619164906208366635804779459602506839283541153471122425429664555754716172213751734438979842202391450505235389574863542787190984200503029710114631035282545027927330210642472618419682175542269237336387626594792231794366387757111023941411096006182471925640385463143572794347450854048283676208667932487407317759979117637064382650544494673436747693036401950338922184842038672624023589839328500168682685760016485834654330015956573836759449210544646272633088205328035815346364613700034526780732969205792997175548260204789690329956128919093520141374946015403856313510650096476062452551773980222470943182152591920159943241035088577962406093281703402023313309099190157209324767521224213411112477896083507563772382861152536996130751879630753122607603136857085972388161225543944077566693884108034826747334608227439600944036362460684907606379417438234368493026305846890203280375204537385805818090056886975379152980749820908074487048102277455412355124186062908185178362105442074802494946361251641842458581936255704350456023036518320157815270852025342443203842127642402387740079946405809408347883158976437057902710678518041269494286751967237568008427952176854373345615369361600928583472716063574886255818216540194598321222715938551475626812049951161603218478811244773891461516994818728369371033226073922585392428382364573205080566679858082338984530238426400266180920401133764098643064659531778823725003613778923982292899739301846895168067627163275910360858284331584144693766732305954259367099058634371093781172915665815889757627515505109700390827681141819801089080140468473347624467602082115803352120232788486641595970908423764308672658563701883185402944418931643323270069420990049810950680955983856582013665240846236598465474044895743348401970327454434366653731948548365140667098319926384811197089167639277691339030692585112558606652247234821355393942879258429643632370101925669248053268864315989418952601282381081761235928621287825688549916296555618471028843215222344459747495144984350761247008008242500966004054149891292743777194321014087520729902156867875578177103810128048392356209191490623080879899825061746335717514735870786430103116022978349065012808139706200337472862771009466873768040673499482417653375156183898038377722176160253308888535686828262550620983346110039961309808442399884036342852191623509531098292815875694977818841598548483722189231004615433309684560053146571709673224341507284636212461593040842372576631676817376485386342935234162741885112020421195188139144694396845936240267147877781216653360441203157290370625416848472306867614660108780275550435170272845941871604851097936646052969887282663205839685920014058975491957871997010839811955878302511712753293883005214793563150664027765876257034766331455967982538632173991325451481732577330349695837787296087056552586090843684350648684297309876840326345414017943882309888417728888909478998643820032391610329046012676340726387235520340700540632334338678009962296579193533354378650392001013303794343750329030274999737776950948011464865870400945068721055045241359333753533221098874236415050572366582635464371542652894945856084555912298916337754845280040183178862763153692251287693901128344896055260273891458793982538593016710694609741023100551484481437024915368406432817045401130103324425114935488198461776563315634859511480059509379750560540740934673650404322477286158118030587481299913835988289469727118137192402370086980580665241516213430469910159848827019036205351352414506375665327816509748281231820941581221925999241291046384873047556410603132989356328177055264609101326166705036549481567806007876058630759902751611401905301172499394626769347129815198637329859769441434018580621782309571033238270670034931780654705193174406070612794856068650561640231600753956816106755827190909483268966760218766318294189964686686312771739660228561776768189599726296571838027885000801404354347231800992393670826404854121494385518867628854068852344988524598367098761318708552647615023350839114518849749059026249707975708726051562670136629563509296042318135285206441998947929545847316511940313595472251567636919184657351180663992580709995791390532371807471454675042775874532516876624316137379506063587276191949189216093447449874099446748829810441291164601019402805709983082781355462507453975950484635002515193555723005261304585133813646459569607105434560131902678741114634238149329785429406664421904331990596119798211196395932877907314338497726001034300460807636430104389798768321094197301971749806612033529947320457743139608983671546183116604940287106916370957893236444540092020415209199761655324555301735239504574076775344419451352530161322451358300284750368835089705348360364698165530868291324165534130714644843929944063277504750434896486802163632879160119062229503551359264494970616317470916393575923736615170997572763123222294709761253776448098417264444239838801048353088630500109672831647000518749876223588622808868051936775632466016837113696909296432678277482054545926795055759905471375050466439606331573491844296016937101662969268942553267932090479574887158541050792632720528241512711531577934027177631871717646021992555667226640993331852778630185545122431016502143833998999569051322040770103578295677850134610533765580435598572129357062947142426912867910518549507915405793085622071326483030582949058255907515088945547244167838412963136787349989343881391283644463251054544416293853512043282912462583873120658526370870556004181179721491623950918604292719883965667376110294680782556832972626150941010612548417009575906447712429378563539490635370135295881908657411479454981154972882582557547863262407061628219697094649762858348195460938881653303432268038042380300451505666479711052454301618661538108072207469244995286586533503319797750471644162319376865478479362227324165709132748052265987343846393016217743668577031059560150798855400820777333526271429940761978095815840306878540705925835389789780760631831612525707929625167717893397803714949233883552261242430568394027975631218017351588329900120478250156149752893015269204494405489645693996108435605483573474585079800179062830258602721630732365348063647354532681570593881231227357435543137251201972132589394813622407392531489856626154948866656658644054448986236558338155340021634952518097416836643247582189360095364771234411422182524215358830205610632992052855554939535124837335065981808363437708145070454479854715466430201346340943389513315131599466326190020351525127944438164989981168507285562700816764078198222201089263358928198771167078872697292918495004557403309315501381101496554424620859965515879152890767783855833889803419247122129913382791701377282588379509034984232152438228046091821626895335395892296681950813893830618642718522416840737818573430957442050103807207728070639780773729632197894687765731534466591170157420398613488250266235332048026769815665355177137480438458140714443844535197147514847919000090995170927145306429807362371406921677243811925660069312975462344378461059312476089029383435709041561873315667100240281580293353074475810823909741224055118557046771140492367855917690869691858625045132697842501428749781481190997397291781528757376764591870656505425490618931240823671576125246258785156968159573362934585433817878449043870429941871206452353820029061731814618622401072510029473408702808164668300305985959396744535630096426598121858279318581869258188342755870342162329341130443132880771903514551081100986222979058259151472968264322306345935012011585710466575595316136421108390476461931344689690614851233940265974864011990631341468682709910478759675113115788399511406818267657533719232413846446021701913678641644703649007138328191498198016194758187818867688950993260142744357838892133082822045923459903002381521999885139426597458436230104890865455167503800031600008055916743967532423674033205113354363892110853974463136535212246363769912665456604747679450450865711587929424919135081268174088532022361142176622242794489310179103777028247830875794014352382336876765468508724020041775847224629398963075452549571847752401536437318724698908235327870014406648099551871605597490127412543623619294192396535955194395296448725222648739713274860541447300376357559745540769211803567523971898557174372244486318274059482655592918605155042072774538610086164106379655649403601960424623086004718266355012852867125609720312895840897741933998292594219731908036429722862981086943160832244651465296286768306674755452126244932030730677653437844231909019124877501750784706773700022112157431474614992951501655974463558096036616674764318725429417650019712971586285645675846440276758865292544034418355810874611684857598681101236346749770180952945461656500058453514707589669408923992932444471954197727944979651242279383827094863815348081156937691274032951236830285194555006401936814655679310757973612903153382736487756923410956611134909556750248205055611389793972693897644542238517744005387941150195784225309411171849566114354706114522618277248341413389313109843033726922363800571333698654335023196303301981465272798955590909559471628621993850136729655965224523516395226178100444335689017373179341019336072202667854266731862232748377862323046504104788088985911376719546442844172130848438225085557748669666606831303412639784906197982961037901707088714421115231587638444714230292378254636679997204758304837536733959183370661688450135526073354805944382283282620081205434067334472968331135125191144519559872635146419832991910582061206711113118007531231358061778146611317398112135596267876571010315670621420714733282044985749614002592958010890785512995381657695307786859245314563094564130396254584801710446532201286466146566656673616185652167628101532587357261641521489789981712054447265618373822525162594191044173875491482319377748813901475245794212497513442635445877467319602746481785711299389058940705368369093240684891630879401114362151294567527380592135624066662434676821087521234520762826331743820947474628986890018973566500508557557746539851213152289021766896602429353322790250158689815259353548225379526371298034966175797699703826763392232926502130098231807346809646282861771281497844895957890392182382155440064973680884642495179031112805918921685910595680802464084310715135041000019051670507885580189220496395710444350724814560987810048730790198978547563264652535068227000095461858472122084998360764760100309303851652887829173956988284298665236337173064080241347950093254585706732929202494918259938716753308383015742551529345838896364544619734403763960476057382460838361825055855376885665457294500977688220464226613685463477171874225703023562967293822730591224663148859428974888753979132899260732525775224201106914057849809315491194653591807573646464158452063632975250222434029095608787018875212159953572681141550274604252329071323068262976501236139815280412766497467264376758095674372740877544505094701260988250741993252901197487849560014317354627006181139375635925595150264026649534030440385097980275100343242017582464494749636431777513100642316321710075024546138042635227033306565876774087143469862511723461324590262832455196816412448559335892199075087753947032785209549088955492328975074141312955036211938766911481737009073394642183594703314184443338648579779506777427260497880974169789861248950770751288836113301511683438634637140351791823135533245137123668554694031082286540462406190235356266900964868693575556566498491898598929616946319739342804085472101601176232416773416803106620430973947904566572423915670424952768149320885585163705352225455449859280892566074081808032046849796985307602876024062363025472815139689877558076149902827751421846877127788626740334216243889910235971743832605021517833277043126058212659832235615371113526321261518819883804968231557225751447978535801636579822762708519914981931610824131754665341349986585407948635525476113588312852316081974725008162403903412898926342881574208050313077681444762633476791248279148788676680595581230829161756881765094903672679894009397417194108863209665498603107324477762884209912500564512141556748071899695426469858202282790380964211982884530144846064564139824337606294452382108995433854550665558672441105031261871449476315611767164518608235566785504530255596482127221087181910969536524501753483044687460333937806484816267821259901825706732246598251371716014275740106347095511720203093157591189896750335467629978652985779052041955614272606845900829827981007773288335702803428192979891326629310095214628443377472533181421387679355786529420613133790475438132287174989352481249266905947764911536870175582149010521827747125128534319944838793333412962367803451030012540612225094810157034481785502643339663079689856493067642562103937606707758558921785824280951147881666078940350858636614402275103984732276334507567409693853755946123538950594270964751473857561761643648373473731726330734828368529548303723463156073635589941830856957837149882988174244479884432919520709389486348232365328298878650930812659129207316044620578556206492150991218282204512639494255074116864782921810506040101582132397339761795450740386892785736929787231039043863596364539301533572994466037453785577093937519310662814885541785680758241066919719107135348961907264879266483827070293179686373902665877097518386989699837292425330471516775446946726030714348160995655102804036359659809241710069767235657379128328967508161988471728070968751845212902783089890489284131265766558872346224050503888948841880996400856751330503703858126925719341868035115982852210932212477353867316618333177784123002483587238459083756469329995908217601396443898332286172325824080692501091260178776900410221581105287356046731773100376506535311128755163140795298358194423566106485857700410949766538580147595298200228239755690063347287102496099433212657685636004977100245712035537297767629335064757964434402932140251058914160308181977937270246841722639179681004035260795476295550491384033876084591788484771554155911711165721150537918421286135921841065603780611590102697818007876796925748632400813231391153654915979024835486167040208713403194311953003024754187469649440833186219154485495848868278468706188697291174340949560875490553662156317579379684306161600087978753651665331421002953895174910799230729931425075945203202816858901242709272360514244567713687298163734614729315693144150474786826014163744216811310220027119815461227295159469020063459280039784359095668894788351890017361818805059234864537499442954396570224906010921568654146655040384796766776212797495736842903669294578715638910091199573380292204787194572159313006524016047297441419308676516259470920258914136957699770821120721054627053869868722696568676988375671509142967296059976031684818052186455278386912081766200725408242717658896273910770935949683802976254324432823243753967219348556560217302663615377011278923205270121029666104296884435692314953753376658015580659502172934334893758378699447705102213113564192143595109282303000859612426060875186711723832058156899195048638325697963708289302900913508479567463270244501022047955930423927713259833723486599405875806254275428662459136515108405928997461263163429369613302770232262370697956107881433736457287807337359996620782253869511540692998768073655686130208086624308983308504075260591534440805491959547687439965783587943108174797063497908504476906504106057197635761763106776112207764266335334505370651565110646867380574051607100990721804576005146359307456539467747310009217222674987909239126749851963904238962892318664049138114246577499959310434323778463112596782051263042761885666915602775420209025818261894384101573663062941154081450653358210611640000327847083971755061141720548806114208358290337786547987683337443573784716357711975231350212253046795098459086708705938015403522411390715610794510182467951794448861376505254676542753608682484955778324694781017585749973585016471895045512956991805396072292372050291300312338691889465045377441520525650648286789151683332993885260551113800352824282658819072438677151377939040909389428094292604486055975046146361072335055836058337003147692129690470648753556969492840109626290198131056424456496040220970087754008411533708936011722592370254733332125260572787807522307866941229257641309368759073492662957343154995949946584510194689941777787096169813443474299380810850902237646431536587610145568725450195239699353185603109773096181927327280250604672611120346630089164782240150426802175648196016531497087665063981014796816776510498731103855011496825682445615638655419114975620948801071995837003713880749231585460106288533837465385132997657220601365899424698671022187185364201314325502512904323687672980597385562765192226536557729711628147440392319883168368702772092722959204177022029605576955329910204312319898180170588776685694620759837091065733587903268047637046101446423864145580366447252065062462062805612915566354238329659163324750076817006133634425807159057944036557125147033405339870547585982472167876877237378437488454426954282549169421465655451063407359316718963467379574930880760800529105671647643413200691058812547047310209826881329425440295423059156495126370233802651926240087198347932522378994453926574334486081172600054007392436233743223145634507886964456406022483451934644763992047014408651437658366888645035990308121959111065357075200702199319174465521849662081866902520683792461890530191374545598472762370423719002294621710442191231544540551094007114570205152471728659361176785374017764948734313701970339539890903766801463046399873321706341903579660898364311870382621705968898524142479079800069491053602124184169433170849420976229858420461577527120348644112533097804015121229534809143951829972239255425609536339652666707343221580756525270735052364390271101517633513349583214011643519318429265005945224407747391345317594080427397678820255848735581808483951140203370957378669612025448300130498298001001751433179934963151368463885574630161289201499875185276581669573347609327563093635273217077440209538173605915163218219592686696978562993573579899105375887217950539326383640803290295781001170849443830005950345819471252836902506091304162927403106935200627659963116529226326433210716099492562248845248036919404737234246308680461750554584857100109014870215546927408270820399759536961437964382946387882583798075023085748593100307104374026044906895191478011787795311909997544098790991966624086809376744509287948611247156875639253230315686991728280971617901169682453306644294109803597040377937718216296963853431776951245870256620809599679480633520262134794600147205210171290860191027324127360994076756424420183496460337857304267311642351597538425623196665002713275559617205674628205765163966814887471777628292142673205472158603105324999829245838202379607364339184295838345450197413774452795912745750502068253819657187414075144182144972183553234779234607071727359950548553563807110726494178405532475610606769331810265797094795764564429837662044146962818439094684124129757246162388292387473250035873823463448584508640107642358103814258390574549262812154485852897284200755719557843183711415878068375197878823549782334202669308253425530635597054982246140441925911150304888458706807976217820749445118054627161295687573278949796714241210039879482520531184675545107915736925305617918849976856001651276493100768594439596543682621271078322548759635850668225386532676235429716938206926421738141883452970710344757682305480937322462529624561815842889699014838213416762370264390526159588035670939004863287787737447160496186264955008975346107256705948948185839885506125693330814517775065462733428824663786510311208493028673197381699297306927622503035385693667688878561891262839394051930342530482997103355555669604602039387644858435675666553911921918648623448375201124846050766453541309040663560225422074386496537011026823984620463073717171146011315096290273457765514261160594993245119343282008592360637652699497274324719053227694954271174242021183251831426813259750433236537561374192743804540163802328593831048528743178231391470261994777090093829519083157607941330375962693708111078511917186672923734882964099467195956847268239281870916804018197261750034061238694823737818177672741369401444063582319852842682111734785459414260123235611385488357681017665844399952133201496774865432717078857906550177454033206632377432246917619432535887970960236895616965826554452853679733482854864139548747833071228518902277008039972882904555315907438230621540619638194649384637419961339276602333957788649538191225317238088738905983958526212500761248303608596387630212032165804780795099135093175631735317687045213442011481286369889738679846465236474314843159197831100170329981712753067936372526946351849979413038142695517146547076743768756776713589377263285271529486335746943176600045090101886200022150362546987850069717224868623975646892883675814708178467218355859266864573583257711150506205973820550382958200715340976017819996179123180709953608882835650080383660539903100322617947137061709452644093800145466302365967573145657994767905846381233694932711757255589536313908105548162986766723178214803528644185096889667096315306173252702862513594087252756010620386139753481466119833268766098668509380934321620920264061949283755814053185641386350089112684890742996450724146006900322438201201164819243057759705873004363370668349372001740727649092801206448364376918787371985387608132320484202175115236610378768275404859620319685580702728661812121589247331450373830315478985166864456357355406993317065400992467873349656179203132079497062036203818157629608250239050832457182028481593894113989970263784713664237750330575668308115539253088460183952240214130042103191821677702773472382659520366980855164002817496004636314664005989973323005384789330952725044411897640560068001624754355577909326934178334256627808967013053379688985311107162741066061020830814993817856152283623483287054889338928897190038904164457725208886429238951449297571784592075125172670682861473392835009465083118534515250230945108141337121598547792459283501847333613135488625899116691468357915391881033254751848321035394206808710929527345004084100367388644344631442558983534533501376782116894987455527306528745902897894761041651577581817227926318139217838856061232458920842306241545227099650946319851754630260084377045735582167479173914978200691998533029996039204205541316076038688775467558187029768224455522969459681029204442037628326201806192855615602554119456573145728118397623097914994798602785957472031880151534183350793047760663527247487664026317507304834605956545419440160775817858736002432157450713978388151965056378621431716164371368573379192213014176601419500138484504442885154299461650576223328620796558566645039406012762640478966911808883750452919541060731311108481738460751924789621891943300639727507531651714107862944030545921638594971373905757909240232228998437540310137777896371253535878926584627649001992577484292515860561669165138633006435801504453224921121666345367656255389852697086402278786209284090703846745687828960707787266075054181516679727304701577859089608391696174583882515722853015949687886588297015189572461928648674594963300378580572270510228328263899058581233047803535437667981397492219784024790803318406643246330399029898396195887398407170520824792847257265895012836942106211721165807910567960638797061166090490133429020665420670561337543188603271365225184014435131398169141674326417233901762846202893704724543064157080138277872657047046448177906770368418878920034110600504637762566149001113443590195137749731091673303341428488567334229707719475578484541144818368875253694975635790464016823013179171727814528251830164784466921654608775050091387260866664514702430153938342623608414290361623398608367164008950723843699354533367834445679656936864832657632739674360875571427666609041564114178540413820540047399333503009501557597718528480709666282009907455728925162724460189693023978529055501127677138457678287480337425363884351683608572218968830130784913566242055472191235376506657592103785571725093356948542942294106595483299880566649961645496891634723533295925088604418407511519135576451121357822882956066661895087335343679674534769276435494971038359028160076824078518082740489544380501121085870710032593065044860747346561397896217000961247058813187024838372153474461731670194948083723447765718377862496017564179011126646882307341823450146594009680056482318334229125645534824672393251216562927180971526702807895230900895390967606844408207532354757171714528600632693448395878795465764514185832105220170123558379280207002274927851902767327542617596685835444535965128754285232581621269888950861178341015757940183121391509793673336769276051380006639534412299676259257058961391485420647491118482327664707965242418527942612135024102362739498214112446782660810567419912496763251336692711242598000701695302434622745547838080577522764455573000028288045763269569418486572362394057086883555674830761163571895295863781550408134802791033027207825625350847704745156864652636076787802303151092913204921953825972407863707590707290682701887263515294429563243233663784119563496322711480375098550108221669816477026282401689717520593035361887157542190056824012323194447448823276925434355557922511587496431029895470502277734567008125457781597262130097389191773736189157957857337218620082659425566346577459549183179792469517876273362890041074910164498798244566760603527197708531493135003731865581534260095928472014542192917594748644251206729364276571735986652298885735867728884048828258646082130501686187888407377847719383545802738630190192877965782823046553264492501038976695557610408866463788125422763227387076387992222604354098376681055902200885562180484251195789853543292273117515978717070581181498848625888615049067544889612758207142813368539578047276193007260074298400051083758950692508475828189175668091908364042306412749388944342126356248543670246174282673544776939261426331230290395286092310662863189992304017157447449500105785820885687111892772770214087672813752938872563674689050891337737081403361291578826162348209883092584065799727934807246103310759878078248190368591319936743569316269829832316899044607316883170673924920723597495221829654297060166473060575959416629492303403833449243640674478891187311023623685432694031156578349863815419125380983746091497665023003351851593301788944709140938406868048131461550133915694649136538043383015711432220998023627025783383721866908523581510875067729553000248725897203209320224286968713367711014282692080563725228672815819378460634807438675760025003526110358100473939021027612268304899126696405630799410944347528359496729283401967702351454614876212393553103346375031566698462083246903194605986063846411076203431863503590916480432188343105921386391056288983436112363885481256899377698930831213094052685134773205210996989727312989104556353621295690954939098410862638673571943354856296941179373864431090648132441248989639700845144373976909136698718422496505486159901129621065801710470038437736363122729788106454802334214155675550194955562929641026166560993929619591687055464597358328901770630267671576570794629209481997203285465730743565351131185948593258330529668205774974528193755134459434555022791367473933281411614059076594399496312314704936159119975498121193707414446685761682372719163254594727209932928708628041463183348703561778592263136910390233427239367262871982024181651950167271774373640537354270006633509361298124947730886284840361218747924130369668237297391391101444124043523671121213167647061159580434435214681037341810894559762011654241166441338116242456921664824898256923509715684144162603518748279778736961479071476806638033569372301056005061394052077649012835167859304820006214121819957919824545711302227025428597828432128074532529413135116911562269927673335850108583028856643052501589583767415223649423257425754154144936658657014467246607314594388459551919572405313378246233897168590893932457129215547970431275463971237850042164340924591255162574220228594878176173188451192825613782932450984103446370473969793211177647323613959600637849873303643962276236837073459943194993973853053714486789845793031532301470626917209589026877752167181997548523473655440185793533328212996799062241041002014445817514163080717977145865842972702759841297049686481043567181383993853634043367209044992046794896893470737743073786476700987843462328648756063589293608888879517838308888798172374208147337526941051613139137623959505571967041629954783607182340182038447661712936515608531196459313023568166755134774221812340706305358487727194704338551003738544622230036417606897329585797496329803695109741378598521233156666716488586866951411950070412258272526862825483654931776612179202923760898017246766288862045128187825964119028562499712709605495139754526754282851377036371735715060464835885175149145562093012030921468488515073867895108746718681553540703017703636165669388475210198355943070228896252959110866724304741782477507355694918672795626369386998196585117273776098989586565286817981324402381974407241476133431565566155152165539284908767954258367235214360082660546348722417837982114642463245129547778050365141222029457034473560672642829566291663466079717097081556276065016911323509415658489336398709974254485366660099189483728390137799047385205793087669259715378991300177062162627901495036815107898597729616464609375777657433578362195731707954984732796324833924482506142237375642635972303725386397465771933408282654946522089125787176382307335332985200084213576237353491771932387086705743600423762245336582744407255208579781496734772579817550643076720912267807794649638938669940718738527642972791159681000189581612891659528184020570959342702744955661555096311567087223927466829900147061301314822413993592071755084562032317538855478549181720057120720474242835916457273427178014606151877717541784928971324667148288094951563744431013194631001230592835880173976691572679872078690973305866624278151187911456226563236862692329368695346171087900673157465350907227093440080053982178367666020369167458121681773725524118839319375137725934066118647786302919171189744337951147406925205278867850350194199619676524548132606590914599460263706601140044332447488095727682813458839211463298640664715229484288255742996642114161768760789393852096893889929998533285380743873757152015086228143952243361958550857646631523129026213021570134029342639437874925172770246059312420855884345142397627999893870114672246120705734730246052388575786697590026430277216024398397420289401172428303194017927816873313941894871023252394207977241010683709474034091977907024401097650778396167677646743837603350424535496050423702817540565180555561369719623617417610165006398862065505652798740404744835648649148419844997498906533132699574531733504606165402047124509435091884771920395214402437855536610219450496271236491737301979942546341309929742139317342627672974851538033403241635577703850225042949647328594531778974219227929451239595145626538979705908859682426991184144617062381489434687322490419672845413357220954835305344726707355932851110878088214760105638077982147476583486748968147973245974153972085265943209035975115434903767158180465168484903403466260242585089592962512176364543697310136836643599931563759865539717588918621603862960382845593290338248688973533958656952149784881862580500962958005783482774033638919084577121384536788320561264985062661859603737933623145754684773868808889876789576714795592783378275415598520536629540441648532839843946648947909197126943389077853508020835030227517572666465462390660460649070052937110644841369214441635933921814519426453347435921342425433871773972202832197429928356392160839339142369088430712396706964013109918956552245551739425458344451971637090946060426241745795752466854447974525791705084432620799354169487895955713634507867465466633879568417353852832604055176273603186342094647028100800177546996122801699791780867233336585587292744529138417491082978596055371226412631886940789782426773294555684347172026398891043762019282979278547183835609056882533629445862892998501040528626567441143242212915616499483955123893509372789097541676279262369841201297721837675265427081593244361309197404948256746929541047223180289590534331483257154425605805538310709877630442990808322660506498082924461164008419044275149624344448835974528813736643630969318788901513837667119077644500097619442064992750787246677328902666705815495379849885472314000784742754179271978863964215023134589914931575154692326771151969576189553954890937249085428295308925549428579119994498585541709298358710641288223303558188440256144548891098059545402983738467658642086255611336923071191767051117834454543016164227536246639930723296724032419514064161502311890771873231249928863141959031976203888649194893891333314565282451753304851223267753605260840275023613980106063595564474370835545901027168841277239871939705906547867002080977045548817046831402049486062945957564579819303228626812885284161491229456162368513005193552796784876892859556947143659468922059821820917852671323884047720497532259409449653445941351817803630756489157881368893144461034596627087755570549994685014686747116167148795801123410318620486624715286190175817420559735810835519332015247398502060936988430521468745892277829847329228504029659823912124830930352874652370867786436476147747166194011900813103663885404803616846214760901278225820640171621637285307370496941923215976531521391301801657747869279146152281177841037870131862992153455503354603677030740565315058014206149466575209345760813029756520204594165181324041780683637848886623997469040180076438310535042469804018850427752146664606370922399227228799408247439465889979792801148734021256034692576100964979612752443008273472103961109953961811040026987377838190585970656911189916768638854659406790247222493753319242215534409731409993581603742580073241322315096842308143245374966643805863575986106825841123971680728797677897173218028496899331844474758465148067351283442521155054617246701057240529423175453272097867309351790221920356219647229051642615960939906427577245604257109694321338618581955886383546077433218001739503507986601344985596648793469854866468864734631551994421302771216918675802176162777954724775479782311331927887302390447648423231828913932454079297495090162799487766166967128870946062188065166774499276283862295209517308046612220033032215868594734294567680606438719697124139716876064059047873413769994437441047588322867863236757812461166201548795262361063567647134507611317935153926677574171347560576214050070654926597458793523019915110494220369632982802935370451320986392172351005375298011119898908850450230185743109760840980275762404827600668498110808774765191988035168213153263662499858403722837454873476452819665856477575559843273383639639329032821096024726793852426626812291792498500605985603313274912008505902223214335734747498903654966197143973244876136040181081255798912645468947184090717392583494310772231312477334975752757086597302917674961768390864759376161366531941028485203161175928943127212061839841336489192191044207815102632360817174838494388325418711657400222334016271558587470673688822678584711381808933673594594046634678462399771684187608731522232994647927623976606557049032004000251849933192984469310205051050993231427140577303929051477615625735524645512500879181474416013407896294594085384414001614857773243273654172500184760858548604538768749390690624028892909084892207718293823090335498706951304554989959753697844990150173651856600552193865000933616045958321612036822054558402507327779729599015859174273827599461569940964690132444057538379721962203752938540294294163224358535638807230842257041571827724787675567611346369718445305132321799906483071726907265987815250215554469276421168503976448026014001412653898797287026539566399261989561707708338087243354353454606252783958059785807603430646230258039864564032451565791922581448185514923534725129584935368650761139065525800153506650825436165032717227965452448202578800656795418174672147740821644082407179311859448406702047908074209110099351838198456194851757241913951766739864356080082252511858169079621407499844569163237908355866109901808475360390467512601417025434814625814143951955287593652715475184821886191079212238556899146866622581817866160100837814538535665734901600053198068688334656071097432877956338851496171435664846766962089878873450979130337449228741781680894156593505843400999713727064441169431919388376489468334280490844791811133128832033133043431014788057230772154310435667551924004101919312468508106584018178265243840777564349288955774652099763152184234197386763005223966156386079046605056712081418673691185235182950607120441069504172556917108039308624240434965764441745181368745610111792646696932682139533609396933217856809991014017730858224869155502643650280207048596057028017122924572970071846842456197973863860988932112439199169374371815934318684325464543398642065753955211407464630374958171640988343475969194225434128050869619452669727946625527621060530466173733720269078749720010043318040467121163836555824610614870550960482444636292359340422715499326135857155926633201422070076313419525477854178036319131028089919557377134927376749183942942226101918435750151463697596166012373992907367486424613143804451478213367499693226227964133755083316907354975399328674952677433181689550154371977845411119244972562897415505836348844680236293944348177248822694991567926114679434826301364260633249878765624410818366747069002632092920295967879935959182516146974519825649117693473317298345189693512463195402398168381669021318138476159913229336984451525557185204374865364184712961191216553076663754684192281142573358372896394858835022106902669212589520380640469517628441370726579976484683940433974393994937479356391315239263189712692813773504365217165003994922968184475239760769475869224212695927416852755260938986163212260393683701225603598516675346804874978084803591790006324597272254697704780047669819494744464112006848266488967080140403339231195245223977087766975581173756309580130551456476887401277157942339556213189839439557902630461014553177329824089225189679494685866697574725057374894945934075219002994880097993802386656407016930200394336379077711364775266031996755228872555874225820184223602966936826822756070766658240668612944391546203819226960829565441938129806332412073849473063580195468907262048844210370758316334003168326433313658112041129331474088857284046294485929533006920198748521727795256327444883620740359754530332252415072432465194849733438370464106067142762043657304465029973287436510982118647225470612129489232103208442181146600306957854591027504466166866589482957097706832782077111370432965317822095258978627149477884087805312429930878951222028181209654171694447865396620818686570658763105624592450599509296580191072035311196458880099734888108569025533202476580061373979744770671131375599149278666119155345069371495994448958305810225443191021168878750626556056011125036193008655756444576645301236888678029195045351361778193921547713748214024292354068364636556428439612057281452124009988969710640243691666405916753930839109053222190378907526933116732765026609951630333545692601316857919696681508069311071441679156126502517360549863973458862056614211529868916789690636223293880205043803923951150339435446871942506494266040863506462418782388693603704907172157258495102045602797106751481692158190118200241807393069649376981856265967691492200311081376597840497171162873353446617593496395555956210101571013763602779774451601666285203468339942608898884553699309284118962166313911815871107078792124906453516796770721111672136239579109165912743802294404777776198137197367484641852013978153849196493821521657425658020055765837625672989147132288377339142784973886475685639921185740406152340150335284545164171281284279406415179194390216772799500046022424624495232496963893059777983340716684149044377281443630463926231828282424772727760207005452084085760912758511870234121559044983485122041667579873157568951428992674571219186148750289993604955301750483876951702976362028265453529475756013353304191728754598743922933184543631563916294498691919007437598465213322385519219559258578484156376842948053520862916840394673864582602377049629296058794057724835797873931377996631112446923410349267711679078931068004625958168127782361219365590582542369657362611706547974678754051576314920988493275859799027502076745015247681043672728687834068949753049536032652094981536874909621345875085770566860003559735628503271509096735809555764228309937528163546718211588157544269367589605884784453834599054931620823331750195790906153175668320217427695485401413361191308148820811548295778597425368258649271532962781422693148830556889458846077830423208656981972197123859360120709709621389317066675250527624171470326850068192962112666030012759354525837027250186351474669017658443418568808516610027425473323887484837060719888836103263768461199935819712312908408541513805936146783594151735850070119606217172893739825794640586118319274137788265492388916185270265930249314378133340511972886211688954844206351167340567304597204840221257389879772770963454904240934922570112661997945069355801465525041684310256729788374148887790870343587288638313002183440097492282809631433981713452882551226765795353876885273150362851152884268536450850723563638341981590421741083073899382479160970275029413997433963038631456932466842533777732813453259114294902204510902407663569910337875193836725360245697306620708651998267084058337967449463660585200415521662269316714731155617810686725427087203139393909500945061049815445337723031414513105465277654520248972015448212594496530918573544630515246698188711720237354605882733575542473953714973055062040444866031947135591191269216813864341915169067299428608809917019803489688931388846525935234091588961194929522093115351317288091875233794803741596054894661971111452020917292659321704168216132503402438358424894689033098022369766758336483767741768545221420045573189736185228596541705391844324763128699990907316443797445830768022394928175732166911730760335230434397444086028234333674050880379168791177982679851202975172788459095965446021105584115843456309385300633478900105261449077573204339877682670142880338415971490293523288966443409988685150462748324218604751377209964139160280630408917369532440123544841670485552524871472533469080188555450175747992999709392010978073176898966617342087255005955386866998899671825221640588459998893104451195425182990051769326727441302258230138362048907339524404480324939240544629777539880785610409058693054714979434253858346647609029799103902791998463271112547087450400002291179465033301992344130110394337487625679408866735587373567959523231879249663930631560075476480209854224163695560825111255781384573338991312521364061968495649681013162574199788390276302395018641018628224770976102361306459046727139493918016604665232747292764391334393025394906214174410605142526788280690070890549725384525558257282783078281084589207984049897878927661265826605803454310630064877005503415826983617277456572833099271929377208716869119358034582664396987710899584365885294412945092165460673237844762409032264787748391311191655414355257523582884631866021171771399458524810718780240948420892025755019673395440184573975489073940413672471714126121187664754482541192621225115674723853338644172022862609746973131360256129904059382649187070432458516580676100567087956347684356907740329620259150291964953088223823716590245673181294129752018972633514165460393066384682873512074798652425063696324564272321861198467433697927395852118270131589363928035745581552665832215347621512022518139517758205039489842939240023665107414821709333927550211711067148244076235094122565692307030837541309661778254258750740835941530402247094043851663302023488727471214214310578791709429145873904324437722343191119629880084947506384377728233657178677842163299861198492800351397049793466301157791577543914192122832156698209811123193154468249891120761792805727489705712573042121716954649995678844462551293595778196386302638251586494262754854122902860861772167046390112710566408046075040610921284261225400492021405934277448256963338978310825481813849212169261722093393818218721888714873593093364906833387793202859416959455737645096247195212806114244980406328257797206964341486791065692828769059204512657489245756516872527577457358868035627940541835902451190874504421729841853811720685291694260043785080596371383379053341351589357897954751989138183115884536499199400481721109187429849055618526305706814779463699527371629534489949535724040321605581307196092879050177048720626626886768797342230349925286999373883322228403244075903609612488487811105461867261261416621860957769787522256992000261071595587299928572894371785389240725855238090621002680194981311679139959265729697542870859846349748709931791700004891632124182150317713555373901734289240718907383178075824507916970616385212438900821917407865233250286441751111536407135185762405798365573920908833693154563894483113836967958578986107653462102087575244642167519896594806125195646929603821125713948893714514621309289795708820906963836393837242291022090132988881982489746417622741638328110522692018819255704137402210711696191446457102257353609174926326466485786195306690855148966095450776537665554110376543599475544190740935092412976704510169043600241929739066256924058980271283015704142705175099579134165608742752222726770531155114012057541682504138216746337957277950177536195641519077224061672459951927984854405911298920819301581654887101882230106963595312486398379191322422284267079362403621748478206906429165139549932288633010627642939376585620771089816574325263146317652008861479447450939138682128433845957547762830973123173520402911881141591435743678099446132876328183117194699831738757726776845138909765907011768678671629177787665125031858933586584065003749703243585630363693380694086361313616837275302089974072270325193022531499126724250465900941170071061257537615721269821748969346576438090733525195134715055955694931042832571245253802312430557629271737373911319249288113839987821511956914496486341858473969158113256720688238731578833812488307538051610049927096998838628308308267321822970310867094890992565623857959725749149722554920132167467684010067863689176587291286820735133797755148786784700896214775177252412795764816769318015900993015731135347287975338602516342611318182004492873316360285453279924220519386370556339710061001537536065509621872004319567235865719776848383842485265782327810026039792478475793793218762394699057720609524064678627782529729852174431400063721529748814136635921352934070330350726130696153438117909734470412299992213820041682674036967612752104153540558307535791504940879904980977381737438781118676090585734798292704776087349660006128911063246519558582200896630829044100705158944821857711926802309608503376530274542069487874297124218573639467567230611334747704069805872806608418510838642104400579000286031824351044953262326269758864776932599254826253640402188758676317025040464667976583144292093120523057217826170416631428759481605114131552038572156801185585584284321204363205087147034520804346469571476188593719734449695395355648039616791844431810789746201393474969990767409177928735436952355927887647841686247475597840830300572048253811303344399813627221156163807705523822828606227832168057100854267659748136505064465458611979612141139983035068712268779732360774132867357969597720653764405125408825646865715346305631645637667085719556015722100408552359281333382283456984465532401029484055516014282472537727126479081065680227676095726904428803553925552400214610640668778435886527087106944983420961357851489850207648899340625773378890652071033318349636517696331165859372161336175209476331364664381884911994609711278376240650324631078800367965572008312293705661353770287751341475919167264497745385008599618233803391465908624579871918617146910317687454212331863372601504326156404605950542866344429152851678575325248639735736311577080581710673699455782773593266238176681287443031585574094938800643663389261174895123380872353498481115046586386013339826205637424125391573899739014573175093674525850514751621569599318500042903167166475283069925626127518263786571361499217469410286081290132462648713106449310552499162551113603256940334750913345803464105373637627798848578302190140069164127928631471859922679729470400044597773603981401367668561854403805511672695900553141945738734994109332797923627262784178529670085180635614185589807400083220813666414252328033015985486964271745434274700848127895935296529327996254151908457189903539734394887933844898422975963705924746345201602565398798753783373632398549124720011504129731670238780205551573140741218193544411373529932150829905644904060399737631091670954905108857077781781823712001679934361251427402331787576217750183659598394361519698639379302017091482480307493535296899018305683327033082884824781073429132421610285714878904594651184554960836176452411947124341470680615663241700871628310319539610192396550459879454298752372792915658260040377153905593128967957958937561987048329263454378760408092214335405935117308809089702907185820223946624240560778827322346593018409239247995814402714219645558911961202706017181886766328822739107289846756733754684302574703766024163447055747418222217302642216609030198699491142973552742894752256851488512002861194457879803125608139079815660462183390802808045473484750973884909881646815023437354933538663585754269014704605719487731089263316288861832059731026601572422795677118452936409280742372547818963298477942195827514291436248005940043807629213633525479092156981352446783518004379294278326583087168384574182009293693800620651670141428320328500972196897881962738645803501897796136840428703807976481651417394538171001513147684434852539471303471025981595137868363983123564946713746632553120073097307692293588997486850947909894904913066558313723104607851218389250270047197157609756698321952986149687134266447770064970341418776500457152059453198946627647074435725608098707287482467618309723703715217987697415953661879538806091637896472811936393288629595970011996891856361595305964917211543861819524400844285827583638375002981250686385774287671766301388969894543468897605371090072247180292267096262524241522341339063846441095244185144221343606546826172913044072663067508770604154916079494029765964424580997403841879766105126195166396878694781777545827483925829564957850118564666304552801297037373324266565108273712092759685062523590834419867122965505431709411495890565939418621351838635297954662714580341094649360399287070727587176737368382260557948053088605938441862053328515145087195110658287564386614619832320624182588169500300390430622545644752755291280984214585967441715943749371878399699488828491186595613825685824973089807347112104794913332829314946601183940032172841297118615982678211827512816731234801513507352284204719597646971819495790126861132529527721461665107740344687401156744710192892081667411446093693978814490286016229865683141376788540464956610540728113000969867113515184767733751536261121765638315985286182167713667908949737241831379404104212648466760432571123780334006446371136183445605221794730632675496324672456319093879257953890278400403525041697953277897956068234643873221756175054411795854921014034623005546418957035318104708063827750875059705103034552191955336251617905651818590575596615511311578416403286196856002530601604892556197217940806575564736889230973567538335331530841843469672203850104074482199293958979013997804123884440278383941559169123468797730576629426303773294059102721053070685856556541097863013974640536181739688191781488919401850718815396513564425999584448199180157859815028964898850732444669449676293533165143220648360843045302436870472818356750774918101765223359738319060031019206068951470360852569580523177951017051417706223095721813856120993136687995698821413228976870744368512863285056287872135938503225036198001481252471720829095141138551578703546019343124295838595180941829535721602205243417470746643110391648584717206436138201884719184176235614460679631561480483957315890522339993724899678565071335293226039101722798975074160010288252411993847418632565290872564789175010033924737445748273988425914238860107745397561771765551847774447269995960164838061341506107176815778888365068011827451620236967651441713201141718385048377007982294386768397166326131492462646259425391088695711856073850488490836557355554730257177112090826569419690269630153788211065832362677635338039227932680630140140581306266658193129380236571856119228122220354039188414093423101866478436561367632185634351370581017932953952468538819695360028650528621818104677223144104306840682796979457600667079731003900871012980582326369876887517685063058853037197272373844464660990875756577667894707688920214065712375930780712835058497871346293346679480428164743451740417543940509779386163117592379321031589432527605976936392266800600830580853754329197399957183831335731557289146183283921319755437619496124706568083237152616221963857859956267855598559669912226021326550679321536104108087560555834726080253975244482890883116131696257132444724294101451094457737227864797458416721033081234086332436505312672542229084604820749828856497750009568743168493529167980714694053598342067906354863494686623019049101194064877756120306324501919726328765928850755214201234999037232517950083447002929099216291324282182779742332583457449482883323379843247283943248004074639830646581414879399237967589750912051771119448135119016878384118257867982245193125728039789801947679846803935563214588063742271657211326451289432734747957113623527051560805911945203357695579565530684919027415876966785052053457535506179651025371653350829026509494251535223443080930406396244918668714151474549149640723304151959023609769387990940833728675525423133713793774910890941004837045014321923156614855534458832189624931167266491279169975789665090711901367534054060367422567548926735134352914368591906421690196441722049656460490217684610257587006674349319701897842104474913617594735779029191482783317171614403760787806133429327409461109957388740364859720650581597122212162530159930147931613059572185853110021179228864787689592568460385548945744771433738236663313771669028051808646168724723017358674604645539255199638637794277346280262471813495151630321034497507330430768909138129405661345676279495047463776899577233919018833648786691450773104992460217995233528961287793610208467259653821217002910043886172329893169800716433697009173949614219726773024981216934336144166302451207987194618997855923876206587538784097627818636754086849918314007906180526248653352454355733749474298521180469167921961825525611797392665572301066846205639154586168691940782928352093271807537706538472593782429883712350744302688410197256731495334638457133876378999056670058555251583965378198903188852820845210803204359874407270150574466153952590985877283802312990800299541283067011085843259186457401451695041903800316454105941294077002852639271499973829362561684750042514484313519569842954489728654160719872491528799860140416076307994206762839838759333888155098324717609698945489883588317021799962503510250417112801115818770432030022157680216945450233729114001800153447282266189821962794691900696167150886963996336824328613433992906031419337330694285823604251805649357092679836100601111953241964365097267375882650849405593764582230847437755124111443350554391618168472128116373209298087983530732289342632756404096274341875684817967318032407935705624941880527174969833863119610781589659923808996706885584417965046520388023136094257194872034911041894885677083328541668941443719585878187539719329335815744484045241919557859598492912299286469002300836839047338561614185384982084920082653370981737529198047803301237699895241410689295903442136017245449279294920825387218665699434752421869424687892560572712671979599169183068839885017989316779723081309067127690979389548367469445769234831966384209242274037403741221011169668735173743171646879928419991798629261603593815604685835400747014173999515783403531591445922995989206990013605029744680219124175699376671356119136446451396811464563945313237924368419901712132620708127893360521017053684080623835463021071537384475792946202284447552372052178394576418975440102855817091684193678155470605897653326030652990854971885625647426425051969914387043248345072717812327219545639742953745619459561064773339139727180386291668067179380574117674897402920099250887585451241910644530734219395382733895011916136546410510735049620378081041209807800574996429998351086391067524873614437888381119934535067273601578972182422026126017607600134334131597123380913165786555094893059180513249116436980445398683577427063788957319258268989741132998727392792803510935584232332175910772422088890259745453307369201907174088697021483409846793926925616453609614032098330300661697187285970889515292347710977767923294783984303232726699793198158071938593395938549931777186696988139997675708138708741900204149287121684760123218416980524007043143661153420489345226326505151533255703588990436797379271218825393231264744295594301571338932876083291338483449819569624666721771766122747087725437854815511609356902997200397604677249119461705592603122563302380161459826779189216502487476579528471593118241915915746030209847408883490584341890021555018479147348635048133823186663284093639673603001460562052369943967815918031371605365152629345262752795807509391146424015963002780627811928698708636760748585451044011186714644069988643012935513796205593194401672968164516086354424960995041414500129999178064726080460103107877996781305952881481594180908329225547554146402360608176368409019564135027961131928734263454073564326684455980835846212496014655986403615473692875858040211622445404616164757169891118986943982602224515988374614159313411592924834288068731651535824370365119907849619242067781455454892391213994305694998924220142130865815426168946300251136557967007660162027413565730787630605900693260357954277535373453437519136661679226208055555181362465676730658303344843518449642554491520297348197259247657032926508443119514494585133091565349498916034394062080072344774315407780062698087691000337316647876179458180282048903487538124204857094603739697361136861559015431665474668119736305378581028179577894492514682349777117184881814873915375219534266559212247259110148954247275151236491692153486302369637997182694873278550724454705272323084432954827058412572442411357715997368557627497788122125840836006650012612593515636699395975056609897903368309538048025613986808524635731852931976690412182616237605119026484604209390322004826062154295805314674259352076832405181972678067244350136433329820573733398070947436588177111163462098210617897331981947570145831088795148484964850069302133399978959155210956947889212685928204217370014224751974405861207957343283808678427763307079402610090514792916255412257778749126928357367695009477448942385875803770179521052574990343736004631698703249235243093696704386942187081926863437514003213307262847268538535927062632926539119720117127105461007925221805720496539507219380428065970141913806998994044880049466901895478036853951684934941866082083771552624197177701403208823232464747446625707217452198326730707909125625241930741124005030129417357728954794829172023963641240202120785570566113908649433438560451189965771275278375769586087323837128129159112859938070932150390640369142821290756650180032239139088911324287240075151674477613612510113794238856089071595187954359064117454847800012848157827761576582228422880449313832833924420179342401937689159075767738930747504478432186912036782036559209379616687132424650512746464589285848769669930738139651401389289885407273003406974891502718059789899519510942240887334384409249772023704233635009549457026805350790625042526472170103723118504994937107790467325475341579597433980366058820550997065926335991842175328959661366884589982691924654540022300437343421287126369754874871107327927530186895776515032129996511705835325026420662706974240548291924656906910004329090644868119976948764371478996055322447790587035278896815927718679735067432531979043726276383275524133083367168803798058932451047539647184140313483362208985937283958560552956689315122675125414729949206291029749063142745400988186129038926914820078010843191394945148648697158313832662740345650525838706366887234980613763410119468754068233857142324423917560395654737565228426559270662421740925635485535275880033139772417503697626321576844096586385857082901324069460152635710107660409364247382301223940706105370317253410956666870323842117555931674037590594073956885536022247133234844736680940900784144799148984555717105426926067474145131691698402888845706691571333844426501181081584243310825601652980571403994506454363870736840938466473719133218779924833827020823548948832398294548494432844688414758925637978302440440270397894247914725019922939351148581360694632326742812371356354385575008560067907897807559997988986398254090688376370899120959119216355649731332901089532394302604147236357510458349492343466473735672241883541559771391001335590667805041212093136662651983310375758784521071396230946361808247474623760117305385448284454956379599747663857619401468234391907365362664634576310964609094665550673911078253253889398076190223387395931072316071361284167320256280755768464235237834043410555154694983616249581939090586494495345116065580954771856159622587482684622085085704481721225497863017492781959585923131109878837674020419198283026906307656307359360189992596436880879636572630891109381980858430722939699453969103608745500409710796474186846543068881215062583044681326886840756896166400031973748331280339828626023606765594240322520005660861728641746915833538792836854414893354357885596737853797674454551758715199733839212618592760388045178166349765067901051398924737934822251030388443805839071164049490381417472934811192451151996985545533508205690123176767694361772266006546815793128610934904711044791654730688994272317524255817254019546121929242837051470888684661717495156346822074793223551652178753190861172923115380642386133999325942771247945874789626545445892626931221089398326788113199078004456767110488237360365009042323665862371917417321318642454424076552492154651205805461742179825931599461689260580183744345561801406434752490086534682121538828078518526814517520934894337415228923224795444754206081357920519555715794978016176975896808604793656001819974115394921718722246653424194320410676788748643934460020973110661551952691120165463622861085120807690195944034298340757630875342410929029565291764415602671063829126910737388988782705314319917129659935447730514800872518110481527345432647426875960343377529313300005472405028855907941866104734041936707181133453155595336061870193296008980609501591057006212508637909649784554111270036912536240253613233664136212010018135403003898466736963025526440091979588748899180970115104763862262332510688481668040718020148257180863107610244735809214780935044495257166801071646965228670014900313184341391739395164070224634969761929797478851038165688275397737840100594774528371245367333438109239276415061884040914383085399011316477343911517992535458962448187860428258106486468096154311195892460391001136392581998170593498652754732367241204474650119675821518627722569656742486144228706784812290011837483729904865811440047636188974096998774528086511264781752903413323194699067371791020355664172797863255489491973622395218442937101931631691769542960726989665869913740123208057054980148543092100063214566361812672835249350333673894131458710230590442218145013412783722706635594074238858610672261357331329110035570262288837186494788023003713211742981842477075287001131426098125892733234361639694787270436608372846946433251424621332238786960651368973617647641947442843061062459447339137251332212801201566959527150800457712062687585155882729664192848682600945446120609708841415360240473784000096010804250870321075045477195836588416131294472401030965058818008921126957419920006713529441955097733637281763921713002811676770753319017940088360008852721026806396283565105084007667462907039492236505294494238441672774446669540883191383100313223550859121361369805848483465781056890306126935784562658657943560528452518922338485049664877932772300521929617599242246259409999688797521178347118473493810432800783307451685770581023485525546652974022225293914136795090478741358900405376765553452002035826134991318930737637535300172330565245167375184436791333930921536485836199982330036768688356298220706336737609624095635925346719569372712583694919099207465609778462176023281798539268236875348634023859320618364594528402584624634813103864957747962561535658305485541606179594506518474625535925831190227116808780800975443423253544938890081945139776743160820183972944526538625767693734949839693359315890266846404586222305184508839569127985498377440461817772925589327708770737327235453088809803487568256285299914839577652364600079559062458535970755200005659037006024321822359342568841361274969882080412540657769175143186949063323040168826500042443674963612538749099695387833591204132067230454775818766567990469399933182544830400298589418956510346593639263845117612016154984578183479944733705409636902277768600799042505030531860576822518086632934838071768226392256363048305411262042590288677940931893257851952461312215156752545371230189497544101035339013500700201170821338109649437350576034545996728154575564291082202578083371998222188339088003656537785017223095644665767097459903812538862047496178719528433906810989808406115024498556578225540908474936102404403253159733153175954256473664746281219905300193075217360822929664414696722941676492252635460129293048034265883589698399402282549773253610527742833833285747344184097268814025180360405248354426709494566466186020019582758420170776480159705605089925320256010879763976543452076349510633482252394000092927418775854699082760160275373527677605555299934651345048381935441689130347132262376155531769214998820283068366174074045147616847379105486960497503770640978948151048614072330777666197333019645085599054318795723948863192340756739124194153886875988490563794074829724147916148185358863502091969774565801664904847249159472035465146071562529510927591274902075829996363678216839548584616588561504501844133229442587537057559064397493919200812139191972447202112481276336588093652483544851470109554095899493487385775874255007308350790702706589375157641340326740920837963612669935306530223833959614247917318012994724800958339894951585259857331210669221322468525653599546329516002877512335326639205395738157526074534958943768302977770184537798477394244914391303491795749045455138417720812363680817554947670871391320923537904324218011985246914350390060528797574615813379204060644354612735351250948098144628800988896087417887902009018511795578455090366689962932796199613088902415492928755061120483203728202659733158933460675112432557613719637362990546673451592230442910444595059364210471823223804654623152088424050276618815128332589177039843735308687236340025093427358905233337059372150559466798359973815569114860268905885149569961654536599482153299247194057439023233319232587462763514793056030941820810596372182328758890109196324355366146154977651658737895870154632138118185056427327521279183592604059286914367911110787466006448822058540924026907085922605434599382538438070265650861800729110160373159121372892556404538170006530106602125332089860660635934034668626081453266086258037236638026489581872043512707060289807266681383440980767947182267799180800438403206519257976739806001240755785070277650637968442293881741979816749360248190321589063222379387898340954365180733286880339975380410078988641802693714742962960552891647928015984681534350255894466368105953495293160772311820343661707361269701767346532380806093818196867981044849593428454728411245591305519977175174048374314360071313158216305833605059175704934803514567564613424076843901545460425090318327513054215077100603977044444435883183649178277859791381663681044706749205839563241178339609758440756672991324774232635643115134535654891427555157505476835933461766993270204392794533690315611665880578017432093411276881816869655426295689857164479186467159795677606913553759714558753563383436742127450201829561710764718671549513496525857111245186181502237903464273957032047690787968291559200720646746129778609263868852015071605048112450036363674386958016291012757731521101055480472982305911857566390718339444582103024416869916612725082003825419092734584972208246933723430536882384617367556144913131514147391883332167044549125477259455783772967402783012906267618396170395822448886265017807134010764765071647238190801416658646946098532759167578427138336502486818885984650971611417869726226015442241889885110100334411286406321781932224443548389161746327944017146601049257044767300662434953400206103831085040060587169769298342933394383834276771315494904504295619608646095741004989669797243812250160342889702330560611534434945399505592258990546664776985443830009156289483764390867622593660195795581010263369179424414912409148518710187619602323312943248747754690721953215882914592873905203587352209306345800701573911045017711467891984905401308100021975706957745003445719380360344662035008962523422493692077210943663186754669339756128332048977088479600036385574277455844998762446857031980581783513514651410225387076667756611402313327320947561320323178880499701705353285678112285927356675539876223824567220095524915094688162399060627036512734773483186737006421778661391677211400717952296781773152261253465306153353100713572845976292174270001080770873205816811781853043607276695986878377492732600894509335770760076059876756630354759895799806593395093319491436048365814119923133292635276307258764113054645201254361382168096441307753177999691903268924684088073315733686839100049361510400704132793700529577222824282710260504620819225371308919637406879585331808430898531648188182473372799279931708483868715312507137099264078212794127620692487834017379496229258738128495363280368886022462933962543670189197843774105299822949846281064923402752768189343695952893721753168441948507578270277704446057136779236960307039355305129075357373078694711227870207012500129245280339357090148015356138003571141374304144001648969879509964387628985389653287431840985094041514321988343229759006987897075171400310193580063294095967454887587647087248449842410034582647723549491238975716803699603746464358125743725007418975213338842135947241265992585891079760052737771479700168971305466382275074961462475381387273388873015548578963583964105661478413063963522519096834912606438216133198192204810013359909928972960581230489081297096906962572757913284441705910530525896548945971584639818975653377536214086981585723090349281803213392229290944303516556098546053582706702212833611336200187222003575449393524832832350727985169055555021473055314894117444930777961380555909052535841271553792988009721146359668560775563046558449046149584422869370286293181121060554203780173741133790313699657261952577911063354497964889841236898153372642725607435787023765128817814468639630290919449327586815801156582585584907147405944436997196986863579272549187051699422189478548366645563716571315307477682078914224722215130311551411299477337754492119199654566180267047195685377538603745403557398804289136779396758063994582947537495812240650008069837950463004051752161536083662279488885933193776279449387972199795424729408497095849856032284525348040821511867304750764820637559471075811260780179453347095492761975030445232252085129872261044320606532372917292396594401863526421844231473320546134126685240193858884521352776418065104542433909719232486431494694868835349610950775791128428534126962865215070659892165379481719972421429680444978118784847584181158571723328179278225892640977499693429939743081126806674609995634968658784839108595787742127751643871983051616164334288995201193778453234515619821668396943790879866807934629406296058716197522323904957579971494860271767002555092181756384775764656216871206859496489288808307099107846680691243129565161736831186261430789368139469099769221091527505617468826784900583640832401160422351206523130721596444234959369736976707977643277971019136295122987512024722030123767718482210405281622636040256750071130835565707399042510852823765095583276214622664253135447229861997650733015122140370551105360704066315231977708020323081508084233317798488680754593135145135166669660803676086363609255778897303961607075688948498631914506763398330867323370527920563340304111245150258630078964900857628196664939599189424513015422662814393897807898505009438673115020118665036961285482586229189203411562531667385728539002409499285274432370618121389788155685717169267492818622850619808886584881216068453761619727223417267608685182268793632715071759450277191582700061753640703656094663196937493772711073129473520529356590094209039799563061191379919912414151064311763723383388475568448165118845281175227049479602455358340626721217864861906816351918669787969569146985588077275552046474902486095746813842397030799758184542666218023753767203838369683030071408422176726099303122677427765641094612749112677781328098048960684295127039496538248618484376302169222486942102637593676675251068616177092591808553971458117655959693036175680617261299677217144694483124948231672023665478866328699487130355831477501978536122338211919416416707239654915559488235360715767459483338253836300631246790560249325438802559975459495786570468096355093464249926102874877897286200083136094724008212519624789480389871818960267641474970730751014384734022969104018369748764732434634550221559593689036049842172474864790823430084331086138069942394833048417429807242129299328469696523554608712283333063237013361612046361401129090929759838469292481265621191987348860498009095662095193916681394847532992965840070380409455647453782143022688049075111499112044964985153489381471352833471871422948132280645465056311699577091220806008700590938268379813354024698824555704694684966804854100041319170211202096332935396859370964754573266511469124819658555544840797028134250672922259532055830769184998501200532261058509068993770880270034339194771864556067147157376580477173252275461577575433190954099169062035575180308773334523524355011233404300632350076733733074172373018294520258452254069049568656996297663618203216128955848771920494815604944926371499968809976456066066442579565987897741430771892958162645457880283553910575887966634724166561336913801044833119171947410438363920905407191390921114887073978346403727220690975657070010830236178118222961569008518838827237814812905521869559508745881371646485749431399978135991532533103896394391851576533292426664009494367606243104155665961710308302853928472409664686757078969629495826983685946439310266112122469088415671408393377487559480460547344671777065323017878001160764066772885997273628766910786857957266862772769403470642897473132295949057733452318087356029083245446573743092634111585866791562465747945767690753993349214227897327473707506293728337418973162775312913608344245308581869347998900135546989400924517203161754577141200792444431942404292272261049909871208056957133658034534450607888442862712240022811242795993275889266486102375397330668699938373826883360658074080314523851305248299209009002125075257343619224535984912789335228282431898054833894761877982049931368568391036601900829682182041064159489797923945098194951979824988867817770657929113080423762693098021592365264198027112231584761330789207958860937179455404328884569966521965262958796489880297026506059719207766287778403606130562817559933288801815535093202214035749566730011438109264899251014984097638779974618549297116787282213375138463928843236928655293501442053240952852915806518075125245930158066976735977535645732308521684312602623947036602200981396159665696141969418038824716312125738962645731634094970054369516524679319632343443761426616049334285853140877181882544364743899314159711670556014681205791621421477163063975705514583383021037178414053978634318684410783419663095685531936490753660523058400698537530220745620732225236391183388613531916423251192050702747043642058587441226968766879533843056653091418945383589928286703981851362437652724292309449514893869256919530313509214021399394112345995538199510975919489516546810377847142633326482092626285999613380420782659635605109354793251680765683220531649984981203440460113997267359071468834160211970985382692484468467338279834202485367459847534362888029854784335860004946081183018946560859315667058012400750039248358207589682233264496316936754619540997825869475897830968115160994149256340711903909553564875780152917778011569568225801305123801115179430766585263521398458834230466575801664937100371378029992338251863970442754836984421226639485769851757205157291518981202728314770364864340925908678942230854654674609220581807968744940562090950339281631656633861658046346517658325327221432260909309846270948516326420663087849077548717617682696147317276689389867837945762388382401193553187227871948246267216572532889727774687428321542153786529637486739695989458633072554484948559337905039889795907151981734457871319152235229535550969762547108814336649734425770364795071814400285658464094246377213146134678110468868614737072908139024480130332719872537673332159718994695655131295106348858283463138735641966466447118598087190252682332084938739474481246899271246365792034251453496753553111671139081462263308285334695279949936666920080186128149124264851750217577155160725146526612302852593538784747943929966701575053029518702570431408662625595285863083057809081824872987213614000659365145229827155546434019158208200219691791228885543165329072589477294804797303755154072993832509388086158015205261016137726250789000509540174608172717481652591325092021248595843742924293185173236567270908928472110527620429568058157137463672816823283554074970566922717456951332588634212964642066890368886124278184252007874855194844739758217659549939651209956923200380426199639949251671861455619370642108302332475826269375971894561300588225756031601301232298825236512724649904964505112763019910197360756453801389115365834958180645963351381217887805586641509445404386332777458728443257324656276132134021652477148661117112347288735215031459422260308908214631032753095762115175318736013119804969756276599367599399864356858412347253405127758782466366889303380476977471756032520092139832354202948557914806284735260789249134939105486380639312278330416628917400003521242619674359863596977327503161535826303381659236054734162756387663817987186011632863164028085463390994055361384048240293561973815938604583414271226122835180522356628149764966797735866464333651677075644056439986025457998175708764064034646730129073864852936451992281845200528819250806214080149995155234530119134089184355620023115215478664321541058476468722294487584637861285303124205218697267654189059844033857738612810315409077870667225154092137934538429027075877611341943815516232032201724035388871836965770539027890089739180928840072522924605534031996160294533373669594485086846317987858445929826060878480337059600324300918428256725481966749312977908791497792768480952209826734462949034286978516690807769095512766691590386688328425089067639142402011002242822989355416299062558269288696442862239962560486612996540334232518161447602247692830487854025058105519761361523962585750720055468932376210534601464959872561491080951438811816690417998489359176285799326824534210842586639369462370240120605945110723092189587101872636504129646293778174681243326082087957275235311364561977867928220888488481282825423610971658473450568328589697557485501536653674714855419705222273578923380745022306923315778980654620558184792333675243207437429823891286517016171015880321911095586178733890142444046324230939001740641591763698375444367330584548872709580413237994348468611990031065347105783586972761157168408786264531450640038279149707003511047322562025328432913476131122119544547255379095140056144125542256230506157445387818032175429835754200683638820340123234969155342089695121050192827150561527131463876000223795146256147951260493331168973465622346318959379123015507661709580645533200462246277369065760952249008141657198932579920816791062754052929804839020730013818946549162799406911879644414036256006181620478710925578766844176755741955498888494413341692092342286742232311736925059642642124962523316412731397501563801110588781827838314514810145891334751031914124117019787143772170177506056104650162867757632428823595983577654748397642317261565262269584088022872421937183681231033116954430031306260961247136931509657991576131901231503477620773042869683031150733203680537461544399757532021712531124647340336927882553290379652847117634954439511574240935097402405890438466753029506761094862021605402203393729919959910437309166224730136157488130920244540706039940888258226653535150430096582625647855749810134878363090877904462500801862868278146421515321783599981344563789894695501320345158495970879436816927402020093000686551877542386054646599617080088318238075658677792556885944541765075800113531300103160798639948519328896062815380585858371833591672173870279778319835458393086916049299479263875340638088219505518119672345178159213506948660412713810820737484044658508888430962865721981622060025345335379730666445596316408404204067151868097920760454071818986715199396746362266543005168160679102347074213638287548350034003067278633124592081427483723270079445763275352091731999023502426066042994820063931546565628782300055160401942941003605645114898495098045964500310614064397409606685278645671769818397419443974360940838631805712177099885513597890909985823073888464994947539998908744286274896682162588249506883825744963702394353105716428703985535039135737966317634823270513647677411804734415192358615138933040533948051815304477310330508862904157912201050277473806539514544761735852769239947370875688132607676904577907059998433778730256940693148427236464816780395233790812051765939505424336319396995530254914730068559169255612232099696466821483020368301636309302689272097267475559878655368481529741316728182670478917807025681274927664601218172970933168380500287631873420822009560670756839207793657884575954904214956424315629657634046875204276155034860607989172608482837521070512246915676631413599649049622571758663997533831787858477252068968454260727811972748906212785626250843350772425638940339737644605060247812506096506174851572643234164437335301534127383246921071114851271534786852418975790349149318267245531762791000530241287230387260216101663690174903718397468848898503053007163020606188221564310014250502819086234304193358858851503334232673010815456527186010900869665078423348727262199685451890659532882137339409176074808652386072184369538859576063891071794200389446331248583589668196189266503837022225666146241300342357996358636997792285552785254292778438607210427595413701095242284811681821717689311575639009693805053678572552335575787577319865403526868556654528110773212509505534108668897511836866568176530360030573630436901366310357645551549633614278640250129920285685929691064290121494145383027570414115708843227278351447038750742969556760696808605900263367454496815598043874588552049131044156438076656755429621443538319024188995746224705184004789008163829067233975064063951400537845630990830036976045609168581894368696968169550222833415924185693864381887368832096171315732279762082215128387573391488766458498744461308288131715119970933797216350984875029426115565867701742930690481129328673245312123060547249741415985740063251856811180750401787898468635762696437015792970578619159894365137373084990752366921765992419095673689413570205444235989570999445682996623371844445827784225782885572750568412677744711973708376629138270794512621706005821847034055022214490800191445412973207762935077310559740791459264322591953100206001690411271329968574979033379758962758579229204988638196966363224376370653875449817070983016717896871256009871836615170225350182828330889992415099697049286106223576889895524763903794493090821654271484467068294732186378552742103480418691527737469807909735402422869292820127739551046001669664632515998762878687252376462175362604273929549962345299666261124680943305376256538796209610577312031984696469559382787576152723056174458242023341862815036845328870494725716961115201915351764607194336742752492519651104598565116307118620077270675604602616794819101606131024054342088173665815559800721542906608320669791675152574429743522616806132296627580227370362530333792200687565786567747481498512408400604758897967433744473911364121168738620062829293464160589613603884925050703692978034431366910189293600940448357280297436873601588350068123576419870807707048376292257910054786192974713698969926672351488598518625840215393957941913687379003128855458332926826530038952401082554584773849937825677542763974949800535932619816504161734454197927123312323547449717843608354827407767039831703029330486872042887772310503205340698289120532920163631273801204220827066515552531255816952350866837475545677041591351124511437129273064817987969115563430251159471523631518405686985805172506765230107129286012703440327699119997854914562321547124184517090957333258902701269798293076063360032230595282726150823118322502020910403160129743428391058242280196332842243535841245961328321229516206410922239719434165337325506719212920078312674518737030627236272378757396429521032293298255182476001101432910767041348239486000012348673501184153486344370781963469780729071830826347706094635645452334654294435339358313899262850805815113521830958294802184427866994897661195625084883913515819970169042498255281325503140063631106488199033886863152260038552668456677969009717137110480661907966133690218945916651803312142239894458001415441167587093252311596064259283902353743403596294609486700251154956153680467985553613481702246335334572217648601889938601572473023975966162691193943875580476109705302034244710089681248543760414296490461516031734583367496519495595699932418897364370391619664575358153859033242608122061507589562478587978971183968811661981676953928164446972925017604570857833118199336254736114158267811390011737617293644338396507369860898203902926455948619714009544130425924598534144120508548360507215902861524649631470498038365860325671781338611891859793951977797729141835435946814554822130301545199344471133355166176759067909198838167372421897725023273913010425510092540952227982752392100755683400052904517802523166408054886855070926901523882783740093976954501280713738054685861814240016530169251705838438437665870036444176302177461083348099766418194293546285713276539204851408689106921815948279274174248495518580540394662444532586050646756532133051402567241441135045309087999657729863762574203916586929778108993020635864186354643785436039768919740139732325696223370773517163695706658910035611157097982251610817084482187059847537687491343168257192280275635187179891302484399785372489182403038914089264190045654009853223804845358964378681878590893861739480130455734800071159785410430448720642399342811341221111570363670192423142427662871207774643324484355443755029058626993047746456649335083724494364226200302851512334297267027330209309175754391128163467717316017426158699035202212418793907748300651221099254135623912312267347214727738285133371005580845085702207167751787456609841573026956425285917597241697207831004730622768389854419720513008108682468586242095214550239909925152796489739885025092202320226484722162913631490687051728195596165758826790374767459831847428112533115963913212464862357035516338967346005131958726954502079681251432995060762030857906218643022903522901189141488808280933302410144990501357262997740176800774067860445581919032196780001446095420433443993707433521728543817650458894324558857106296263716623259334988148329209957287037937287917847088500825884110307590625054530228506833316651288806790103356971022618797806315065321554051598693810563335232226968408565404850011506757332110721812677552823977513560266153830830420039295614695531369305780790582753121621269758013070850835572163849274886849305611580525949301861843761843050772961841312086974541373947133114672237038839299988323546602864187941369632231243677759922216144542318196452315435511370943684959088755548097699194713549027186716990585476140228445684182915441380774703618519559782353135686801267805331504335806132976015058856230939341417876898776204709264939129378183114851225968980879452152579884985348917959412049868663714222378172600334051645168797542574067311828665150346819718443264392634597540361257380057661103337256461801970623350475504688057315545333121325496053562464390660274230275903040452707025906449924940573019754365547791354077773951725666965107977173997232150155753784356081825004268438494015015938330257405943608886059957158846767854968292461731394910414580796245661989646205324873864970814390291927141941472046492696199784055178781016882530510964983723344100397398875561474081251298588094984270534266135872216227189770910238419150526822758853003815452669182345902891156538063493103193589950502846146503445163514393955849448175692851798025577897023680773432064606791331734932979746509692313809869457838893018048416228042177891895117035447342341784809612454052032339780806636725149542829249071510416106356054786404008032483162229596158684640334141391692734683091462606373487148096949629424778863348353273754775596920365446060802414632944336332867951731974471761383044614037563775977901676512640496121162391753606617085890190330111994043152978593293292854928960290288229791392782888912762494029681437255458813393855661904535864898152044704622525122656886732248697079378027651700700106086768242095370935170363108955884166117517223626078880024170534167231525994606882858242326246443335061911439381584646528507737790518740855234784347631855688775106465420753484786484184049307375910128730037379981994610558169866507232086502065494070439449437156933392441383308104131487448980492501268935839342030542763213539602262061404007572419786396400875989733141204060934049022176704989123534496384947767321773696644465792252876938671295819530132623902974656956096500084176140366402311504109074432912679089062734302674486491900529852860447726520948974505582355169693992075839793401567074700316184715482431342220534101571780323125713020913681168599279943777250386483255683019049182769281942215624663693781966136607173897642457286695751620658512272020927097271789154961585258061179435308890447834893307554653423098012429668574269104441768080398962230487540909322195528574089520087565887301544626271646648240897479304003542809054834368980408042279921725467712378441257555322427762933856757977137467180331335797592722523399865755335062392771878026925121020316919315548534233596075584617857012584224415485055459680627293690300295730439369096530710642312435587580897291283844426729023633949668475852207334474406803151418973532692067072721722093567341042888375645002465334220327028694515322436186931809370991287007728672850321290916395637605467519585358008006378426760628091582666048003650499286150991172371978353960141113704347573488796459297012923744704869809309490203538046587642849416064794744621811928697164232939882369821259682102875341506595944373667567088879280696099836586413880602675453707294589660461577734342620578225086583235215953731356658683074453650683231786578932591802150547326223500008735225070853851115261560117379510165234671241383563974374606435767633820630417207848198077006969911195368465863277920309387986146241532269069739793038861776391676449660761054956014494925062677063834390461249916432362612193244319387520582324834852669658752828959170652675698870117037819449857008434104007371424279389846220138835699702087258511930897414997729930332160512992079069355098773038026705339497436354748608114941199430416940387469821235857097196115634884981097615904416678071347879607985424910566882066877082250157380277326526620198157877896822792595331808719125147126154354192217711265201568152563185734562825973129997672708286357694017047838952369549674769171616426605965830764751604495602189581776066729826594229794824865514843856738731947143290636520145276009574926298879058065247055034484917360473761649236133689957986838821453675126939227035669928999242361086655897077079676266414628694499884238960962206005170339301992726168462002447304034751458019896206682225259299049783938442361775341376464182142952890631382017213868161230736911202250756593845273081350167281036674856498283199101716787592478980065916921403201305148641951923931548841169560294866421645794983018815348977118563777635630631929192416729529181983995694751563072984601524540623249560513796241064140293881628050097718756397717619455493547708098736594044687422760735860383368097388058676830255801297813218932641343118018088676235139103053893271720939262268671608256492043086007236658298554811877943457576536986756620565306851845137918788255401190699899732414027424792774190646035588624540843630381231009542431664377569720814542826158825711551186638221443472391096684510759855321834249928119304878041451620787581841589986356274210666372673677390842721861453252068222030115758387671389165565716327459566878420655336192351827112390751479366968197761370474452230877006511286468305493019487222235181801996001108113996577217409532345894542987604277145643243275943391377920769955980807850480135830816771254358057499103485643521144322238257311252908783927490047477700587677613033752330040521903639864187917371226740659192304095903792766475669502346218782808695241418111559694011727930991422327025480797224802376918619366069349466053131394580502254515449079515857657775706123564141537201407157366657081231755086053261038793272232949327885153767627391931780465574206579406721231390339372571974689127720012493585986861950812089990752243203109621926364788375564537244693350370100960018018938828228269243678365089054171208184999551868183086027820742752180702392825865207964066768206459690208546880317896431627212641063405771234630112726199726437037153593885197417205146734296043964934804968536455507572926807800461969633118416452205392061460887232153353583059001701251317654062696854055210263446324032854402176863073094999818376436336679687731237109178836668338160979747394564834262669542585529302804322802060007415165418064475824807728827452449229999982946958741732532852735308251923409080424323794540602211301666521581261923817359421371961588728255698375669478208753626700282619608929899762140536435856048508475191884277647377661061123987974002909960105630400127762397207527531877287813288579426494372837397965747221868944921611822764366933791225348989366065110003139004876636619903127704091767706342119437844481890112683902975046258208151709214150936092872301268735157900760568096062316552048312563823534494890778911924144890216321860420358067038626633085735878102770520688230081524949673902797024486327117211123749647809713356472385271231747636682543980959201417735399421809698693129628044225818049187064688894548675117149274917184355488124409919248486361832842878945044421786168933597668513002084508617338683559750693224612819995714314830090493804337476721195380989646332906533020078422197168901251375978146388966417631673366336065468819853567164173294297877849410061229075263109732327884295851743334797014282165081247709872370742957530629433647875032596505815519521780255713050937194021471186889331269762129513793602885461688412744782623728247435554902790121782137689005568109619498116228306971519622491184582293174681329461347603414044403800399723208337992083828615075319810177753029721895124835306038987170144757504218965291282079083635973778995505460256512208558279121436998920479286720471127135749135413687064218906049821987387493617197755841055752654702489254425417566937324327933280495925699003642760311151694903719414117555368119085586437082188209166970208239691029244198456457204113921423849449872232993685550631652412713921344108560940044147415854613988155293864735792944243344222682944527450449945221805978918760489544878972775172742006439521574395691072177949680209760938839695921010403861174384668277219836981853271904813491871679699018319900251582642939290964436526736399308133461664567288006436536617104916252516984895718703906463243028984402103105581539317465578058190126693394693323914411874996589531230267875908259837436040588670772221367405366678535091091423248397205879813116078914804463503249088606067293862310961294186897284937563583260945138950841996683830331762024938629764488591122129466788024724812703151602820175809431015144057950618022934434075784518623976386463132695800616767544883723132866435598940560674494494990618348287690701196003279204820225098828042003836863879784151086079701802447268822171487624626339860903515645448378096711752258889710011475652155962463513878213122276896262673594611853852501631409902659142898662633791638797067973750266053234004374455462471410573365127161969185394116141333946930296598467679181004253396368828397717899907159684415953871174227901408094053373626226949698092514351975619637018890567637437981136307163179742236726607175206260904030184430946622869349419991113019343804593188948590916983060327863503397986677285677108144571920577477668426779622130212137264974745478976431826237965623510893183409686223252617390683489843398360906648364757962762729452726625696965460695955408739981864386409238160658131312526112944433234096557250922496587531776715490703317902287282333518477561740209023965217934096747373628823964267451381524354351519110610442353644947548748256667292430410142000493207355097571942230520794047639498568266238009324103948896561897541879938486065306606043161798964556776530196829074390629486536098271224145186976115290662574957099177969121240529677887055468986212167835915157099871973134140239050576599451339129538259478573347598660700532235760909591508607645649704549007535363875142168167979396894639113760883617853891915519607624279152627161787084841848502095969605481174871427847084935021102536676045966267149575263572947968220534807382171535111965315206917423394865705818209573600957083112787473229827545248785686037094957341742078575114876599731743438775904963129558457897188868848820911722837715409498804971457271534126393080511757061097073939154348073271419193887642473442063114995432848402876995841567810769932445962537562193797028960205897997731175352680091469076812945177345810940948860804600794391932458156191656358802591168154357549168632006127719140583577087795353082644704586264879504819492022808021315559188451731449264413596118980440461855153959440455348932983300019404651968132884921803515106593160061836521461060330788690797675447432329140676037232994000647470267426183428821739380319390760348398930263388241435873196815292702587673199485994737090964264757047155634101127052025626574223160586186522695075184938068382256806206588898586907470124083041172262669244267872740567621373462030140716161306868949917079300308417346559686218876848020973292761351730901631981888612496754307879556683291391874203824530620954191063466485870380361087376655975953553736839807665466396366758383527059133653273707478486415339862433007176190287313207100142319226263315193387768577836699179813558201381212966465927408365459140850005098012384164391910979981348174711491710168446777135232041488097054138417056459819882327698875525601803114067810957318635956212906169756104138734407461907184020426072870020433663410578607519416484495057007977084131810126165453327031496300043255678816623925121064434980272958002151850009641464619174418514437213119557949550821901710031864742413849959354567475232665319625196033256064319092608337075462077757840300712846190209437476951992638219579712983298508673354158477745260778366753847481319677762015634386130304534037751077764224429819756642383620814516564010353460403498141383762073284795856697528714650173069632750881329231747287403487455674523818650292999694566494850641658223372506559253193550978783581353232367468482444385249100266391580681990696083923159017048178478643513935495425403474636391540591001264381050618518376176529927277719509374290654996028894550584196052758565082514561838389055114842331255270121850845255239078846255094964218608501702735656696884941991109932637785659241480104885451237121726210490497066457903411382754148218660320239643682350100120295140110204398937350297417222319695929830424514001076418642068404534919794017479371125671053333000698808265354910238966620594691407736488993364636303281356216184584862501407436881822831702478754958077283734380942081382839871773178609658037710325149954307073245052743467570967366762625477883304729906352331254846003642828547930709167966539281407910491462224686171314150051469373156754876785292212739944301709324045041207316254938955156571088671334461863667196551911646481761735103330681335973349577480438767133296590817306969348017667243855560841082140924750931705020596778860957053064838633226955688504698419769106230657787388900525008312428508424381854217971572768418172747339996789704270130653016301515572357401255328268281412304234656167909394174949174692584297118494557194187908864833876985544052047277271569520641674071431082207507261666016766432192598766408258512743381948145643748636168724346821285846410543051120640738835114016647495170037800534591296179258190657050259161053846360763094593139950872805487847159512376081926386043490135142644646403189684252599588111667740935351570083300053973804166484363261962047585397188520699808157133033589653607102833101938392752839240841596373421756385939097024779317834134290658212231443869887076841389718857570264122049040415028075614588335367223523874910945219559948021846062204660121887208013981741645803526618893527162349882303672943426174061494803359335544263374927660029352727658602404713682835905700723016994748772838125984962659444344764262955753158878801446114459792397060843956493187994463318032586118962608581709191497887866144253488470056915023959178063875410294787426358415691368823674370498804902816876291616473456876164461917563818837337030052509550055242516728935324690268940003839682120371902739453211283218967539514318403179636882118728624668137415048550492339726035057866135507227829843729780649793895078634040355900719143001078531464324978867334382647214412861137219931565601601837420517230789353147412503768680160373990171231622929343879049709709003674554576083585242664762392213155007491689547046813779703696753971449213425538111007999608816809926582380114373008759192674814672882658373663484881938979759673415712445930403782547570028436822404921421219799767433283207709404575402462604672955111455767270920413779564447222728100354251771862344920080416135154509343232511049437089120355725204149266872519770360559830998564408815846362236071929702059667042382976616313578228312328461734817702592591938146222654918446471639082804050732699533678159778409952816100314063850554236282715083228650197347052243515082546247467031767673235111089167007931455474533486085571016428146122789278947165817974934136899196217614499085329268262830795858019732113672396512072150743534459895997568925785875480902549105543444669395868385264264301450177937061046727051917072026134023645923197800388165230103514796273849659728145223347191050032043237620367225425940654205352546533824436075879811985476036024115723483262466297864916593335448630956935914171061843680205040842235186922569685937288272500769970177127659994456195660247224496138090875283902516886298347895650718957639654258947242578064511538969941999417909496167722198444834131296457930349914668610857222037506783650141319024916079685776416573143664146553813675038666554575016929474997626047678817592081827541630094612242769386063499445677037845893563317730675330904529579047028825114421662060695879604790329864369411655653322475405105267642029158812720950835513164268263286929323661820250518728747671486718689044861710992923682467688904680884218743820352014550141204973038285306635602896891982762579558723402188025656224581246932394463877398330680810945024616965785116963864426273972869226506371265871594599329601733495809843609088756067390360842907773931352115632146415169812883026278470365518394603993199738547384321944953793475783288923302290316515502347779142982727468144918276426669879273506165094510921038933325996753702899363164031212053626169037228854826216347578050764538517418224325152966528023593664408237367501189390924001350018718780376239500390838166390801526322483351389382327434582949277956913218657837106344888724187664984202611149867354882030268912907471603025767268312933125358053794617470047277887391654826096745389201940138274507110569609337751836548931159211525826073019218176807989415440980728497709494405923529462453085459485693104666335654943899246732814294000532530264444496725277272674145086368892620838034420732445670642424311294820377503996623464876289557570696667570205482608614366030741899137810002611298450930741929213155160505062380796051290554534041849066739468120291016538852519222866029926251571986084741369280354588315205200606009997449552862889924209820116534224033084192995376988619299727163278477400003939928184197414166596999181396961296260893559293494987886464671444066297926473342176693522403630442547064556726682052387222016497278991409417485131949403938493542711135126108076422743760506632415192222207124318308223080680636998888778423492724861380739367896288597813165588752397944259140791867854177018215845983043301319801890716432485408393068632486232135717994802282576940820345601681229398823442075731885793024547748416388127569454420480306769516306132954641335596058054825485852655693346672466195445047577757242769366144796627928736363573740752728460434132782905917407684375377589840331831711975322609755495825981702103692263827945000142798602042235557009768203870546726293739418496969337304753442095612873396917165933853212070193724882925434805906227467916118359126523977541408795958178548445708604490062733698471698155744217844305318664327964710170878390792578155257616137060710669617982831468627754623936761653544650525731882521871529942837116913398814696195193453566755309673325237096903274750317460304616448015916311612925921860863504181471935301819407763427883335745680347287477510234964536140376860668645347962092965083061868639778719717228457353957069805875521501849369985650332656607944273505738708521659411197264571737873802524846141462095044465759709989800808911303106616800877975544385490067983089758295413852422053037174318038374466467664868187491083556961567225459773529402301569455024632486040645320805277821326361710600547900933386595213475779612485121107543310444030919514604974986398662038917320255109103646834252413749557225139278596523737693570849462271628654266039879853198074022854996448435618863457389091968339390829475855466651398310393050524547126500645192899374611012485490894035207158087446080116858140537845892528449739319166586629061678865560842264931571534041639538479299105570081421936198705546310680313192322180975562910277778636209572563798588576592964057842020888773234597779524464284949877138010566022120516207576370525029393735512634072060218804396803098269105561995224800952759560050842290351486873358774392013478053063887742178232385171995892943211042193378964512207528853080796253767612537607988671707260600344810709797886334474719075942016189951847531436176264430248452500898626591809187325125108431445601193264688356472504018592743971097970538521135913491182668589828554090879590777449045324480584812322034768761326347124378464338578598717985868254242050778100293362029167884824408518409770689500492146903307937780345615412719661515187726769850671649346561574940160693905503234727242165326018764362982039486245702346365637034854463776235686321828946263617802332353317983274720847783007070254377190310217992245587515145894925892731793247855905002941718924432490883319301559964489381431009899615151396081529639916404206918251340174613932913231704313034633818426177399436331947304268169586347154098236038176650443438691283648980816485546514174881930587755084804895861245315077978657862506411022268756444327556072752757093567832046494230715654542645685325976651749833008910081330258477651154090173328015433162056681737469580127546666840612667730455076506209269691147215546983419267854473526446914357269685680826295946774974881205948039587700162485025591787043153195425503440358731643283546434364875987938186044383265381004319917606259951135757448210390591306092940338279558092686429048081050380946578236570132768285894937606214091684881676243259326082711025516783629931714872543876320030353962761888216361828640426074612464617167448382752232284079491940868922774196298860675124232730504444265040362380780818030075944733997078611528706566429677334531555118942494019209945773617007070376287246983869634412346617458438867156825293900749329278320096119966206826142876655676652672277201034222657907323423549218962596359315775125247245342048891886444252420492078831845802940867615209269615670202511916447011370787605897321472756768639719399399758595145660455256968501434050825554418717159042687356186363986585242176134096657284250855959704498423296758793679110032832803490949583522256343088923845016655520247575528467641661850328901863966316226795051082187056091619235443635317956162135337782969452051686679787379555585547979878805124431889824799113729648360368517547964388633418032368195365945577874415637359680275962187659696121223034894077856103504192975645259630141324915402418838192228602287071141466888167744965603159642568314792823968863724505958315351717255655831718048215722475658508830173827880731116915533488849799697425368761789252872177071314848752844872782044133270343345873970213130292375113189013569695272146862887293952769691201970609199763858507613932953386429724844824610824230827613118440996551994391831644907580008521486381481918750293114416316922471830640585190553397161089194767592035284895308666967425046447530349167983336116943579790452136230264436439642108684638558995571314784418450657823226441048968574304395265948813165385721677836805232732171501399868355832600249913053897947845253726414112633945282697555478449491164513829508083657094261280497806861775608159935495009304943272060494296632307914994370645527559398642135011526969301625525763222545695135604454390920119514208090652777894634519976956644438158302848099152204036901063061627858672402408011151117315762400432936307657871910975839483695604727164510744882995517698132425541957429385984520096650482095472075134306786624729294585481677762866933291813738724657361450301368476708971180543478289847181875874399274995412205244432400873377059434238325894809743785025978157314766266335516937616106361624062674350511545218071099531030597262596190844985711683008773753716500529035000667926951030288514965050594156032047692736002192865083442684436406030453318386089676749183272765608055992555780566659272400435103497429001689738515397323986341041585350714502624368579051653750360486327807900187887982627586551091153930238315715401698352704939936358661645705419684413154624183706704040706189917809687183260913649404953723656171432578579361869412669663712673223552509072095724342565263055185696475138750262258384413871631360364470194897796278361040571274474573031666364962315989052040211973101230251857005324120327554331004409147707999243096557428610381355561837650176282651223017831805459385359235170448257357305368679378096600009804817034886855573436980160654252132257021705186404139011583659679388549234555712744129078639019240964458693991661093733764843093041637687442120137701859246381085638293264854984430319951488743207727685250811448191078911052647158249908704552352799118624889303113281734922531988551016507149641044068830521308179225389529522250664699031113679481732878050380187214533573479648913373983296641596358915982830197751737414801042790033656281389560041807377422736813912540855900609056266103395311436411482046655009544291848207810826276820584748386397138450157253300777036964621984983333253421639526486246488203620752458863396247763353324138487106604033747505425639494624133860112163003531406196921753730640719150592582414467142138123207918890758783652421383038516944010804852252678957308759396064613688646906694638488371866123145338751942469498843541851814256122334633285660138190798340981364115025367064404495020734823678111911416071969210022265779711751271044370305074814002695381106547643612837202267838853531908387562665811616655538783397747302839134308196166430920199559521837058647668357213112380582274151741323573781532829464967005760902488840327590400073072023551669395382602104931384656935362784448190806722377001515032830621681675127178437333107583409652656183840225303241249122747870759295280691926815118743759424230247121931150796693233629534973018276272760109187242288478498238437233191065117753852527973909224672509558142080970388823896558639590107619735927263454010559465664246231339648252448237898983916444431575980370750199342544764506421701845635131636356434862586294326727134607578360692837636855945155256807728068424399207262435088398005099949096072346865708047179117603801761786175273710712755425626212766360401570067850353809009528615919790405407568042154092588060239344612573707094425170695581564239558424007541465695187326744642145395117292040022608218866108730584357361078680829296566725546615906349609048755750607655346117953556242321485460490691327518765288094002703308379516294429326068730467513198567475386186593779766274142423983005939519387522991019871917154347695576432038751262442773115354240745890258162215132698216913160139423240635803716560970837959828217631361435235801577830486805087888523864449123394086094029427564143910471665675345249431160033937269777284105076606739624967751531763559022186499040846735848169315198369729835446468070376057004636697403196851842305599904862829839073351548978773753808947344749891755493073031597116214908103100726822888459745979142152118661291123220748748144907853519180916694428510907335384394972113211741177653803488050226974542680060636012511104239155751359748180781815627613411498850611529144917265437542993464319007423890875699625789993247609926385361388589410783398777082543238692994545964063421439726888175127901944414851135742874393964811684695957234876586147106732630811416936905903227492339755027202168270138666515495002599682875753983071977885425029661389153718441780789641391266020851732887364536640693036754065447855767486503202270095007210776827718325650676412062148192257267441721397649111370910526340626933413424004301084574962212517562647430323455181889013893989852441200212100158540567627033389031505713337212112704992731850390206979136403434077132727228524488019937785782845866041807728382829378905192347088674716227245029176847638663084620013004304925982311542413171788373466817094436866594622722573422394636930687667137611941656304363495086963173165702629642212781902346335926773192751017613366834658341984842353410373963508742403266254969036054421241119417567157138834765953674687416099201459838397960754468181105604914792350467848273535444958869533804767161671769824676537718480850181146136375814222953689330748241481837548894302817159691746281306544580933580404331824995192006278064698966549928265189081499888532690619832333586535030884754560500726066669471288897124016692266331394699495148952711831885134763015856391475564991936328292628929934381066084402455198830056868691948559305412848277994562541798585482314976198017774286776900342545782885453191737692675949038384690616899253893354881344253862812305062147763678385508692406271502555873507841330479228880024729371778307751798920893857727027799121290275900814691430211618914459072093682127189825450851442985366785351255788740483878929482874149883597010716255841570173841334750271525350494786547872554844191139878979897517931886412070548216530804358447379638465105669797985038386044019001805810175630202041793206777524653626800535303622240300876032022711569998409903472587762550420518689065059902425948635717095325586856623275303771719269284188650887134108876946392685585686313512957525887049106863055422332591732778611611292365622052352695927280727804019692555368496088103678494088740861163068581416898604347805735231721598822700785803071487898341790813429335933453908570022769666694614853336829471244063342294842562764235004092261497479805161674163756110853774305330056350173602045616987458492691340478344340792470295367895974337013694928261600010707190141968969150576044070841697531058520755398128763996721977767502475982814721515622308376299012071137234661822564217182683264761676560910602570577265694817441242921400177018855975471993664462128275689597490948459140166588390547180043045013599411066556389804974390404883194656722076717091083651179427978478497694443963480486839292371853955974071484300444478263328820650210950813220895790433311722350681848968387430215426254097086904504138857816077314036246058213282485293801281744209771040474702684191574704527701615316243008182191665325382583762573970177183675420344571358471279589865619211035290746640324766206634874683610358772519439779984343654904880505875014862477899867964095788995735396706795592551384676235957777588938837856793363144561717264192706048327170274039417664038399818311560578649776076673953067235052647635571908277896057444879260378200710212217730141142589377327087389942232593387187204262724121866515942008927141967349033012716359118213049757295836410410812887755172000247430207077164321411692152118770683370680042996912927952333702707465740746651095239395941302814479834638659388074902749326936118321497029917862059085079181827528530336902816276952833694321436113218431760992894056208368069326252207962371286384303330295542461884477525150975120567415232227146745041707813754416240760093913116423063044369193497844450239344253769252973717900888539123975576945821255955564953630913852353035568838003552423478072493410931655078611391807113432699570409650631978705141149952857572970314079587968911915281417867317788982903360353225641014226410108434942641942281419755115253683162695629684758048127594438014050924112299139360249678340575800371004110670476841934744316333667270994089787593769622067214116707811480603383154342278447546748538916381905738437495119130206319050589522764116810421715332464672080749185533797300851522081813160214068106725337785097967117115512149806845300301189978630353164740201762479351092170018266966840607221156897237789776872784872448357535076847617638008245477244352775415200495092855507501666351137923079263353698704926184516858191021543776142517161307031130298737703478725501136129143578693525839042584666287552763035740905596545392355152733161350568872083734669324425724985765653634408050784782305157646928839938069793914680157946060860954555566745315309161898483587931231613839280274410444944220955217552632368708401216670120694647817145636657701812912771876262505977581941794157012504752889739031525303097252473196147046418811437686023165269363200798734971082652856098696900709474751943707150788793918080963033536999840273687248886327133480033216041626099841854175097357291353790007462962855225218048864933234539690925173376746191482440773880914664269484028592041550648117671631516775441424016468272574278883681762094813215484422431872742762160390299457267376811535541355535274970757427987857406801722066078313556524816913231717561616924342448188080254340697671901978495163562769820076838988234265466693564727086012366059712929983617831518990092279865596943666238124857020094940769924019136705000685338075917967010960599053553416828581830796479958447447780761844083591132924998776949248452052355227696836608973199526997556759242096395409961573359282260214072616766985994114365029111836471511261885045338356341275465793816448925106411477427900499271473619171035471226423270526101646943058773858905579689984550995090014749472458326297028371974507307059809472528368729657355060416938111587407105817370095061505456100329517342367783501663337061542959900300673211551125792082913938240115992295987946998373891435658932005789770389866495794519460181716265284799494054086090943419245729501310821526723577751325830099054396834086773346979636525719777746480867295715241507589155934549093541113550781670771226186947203313476713478018653844684178209396173135628410882611364589160239188497591402935349495489864542645721407872730804096270558077874387390697492952732815229464492564740799109425312337791401787253103068020690529738200469591501506536085310606929963246070267050799977098002596231288392918580689191999715644527432339907153665535239458124848486725311279773309616514423374426367232562091951905395823990175478541573556467789494733234054829170751331707907653641179030074201612068973905677427265569625566720964816776999943239891565989395406908829583026574739129195394810845228205224128829969646444146450095621474117956318386210055701281939011175038866238859221273241797485102265650035589381442042633747812654938774836969435403197769510067630746998615170012045388530417016174890280790706828361680035472502271225410562195983893042126796425678809297967634966963890745444357914844743968730830557756378318645586314254071241191411194494062388533468077833515211769225427305385828629448539245227334233591209169611571195664421900548001745533731181053169831230514027929718822446586824041641669466729655787655350912998708511450192224206484090657449361664867260085067365055478391113925498026936727691837907993962138113541211749275593257953079009155734799503656090581290646630690206626919325953463026043652628732808748365903808011351680333294902883794174281856316448055346022288832607869122503997528105339143183167877739372123882892615201981588598911780006434770335734218526156213801516932823386936917528807424323589794368631210577214802961548072065368854711014899394054698817640075666078426923049441636738912113430073729158845585024334011444152897490876518365901848091506360814819417824852238980846471414029208374561608134521656466289579751968701920697098636515787422559680703773023039636927970479747669803807154612363742356587766381332531719913458669964217292730199242615894066814077597797212839922890773380084514117035542893070319080616840049019157349238887483498706471502931253419547237845844211388029681868111083015212868541719566887898959488983788344932876784892552197908317138662975336190758875724742450928706579124952855954373071724773874898215429585077048356885711151721405229813406545591125934160883640974367410438462417764689920490283158994590490989892748907050235840060312241214715586021567613373994495667628179032388589204148960110262427907421638391257247550111034952362149230480383576700384947489801375338558398840587612086597647916362060695827156152492420301863383668255470998029889573342395266283677585532139457634965255375765790666655942271949541557673818726785925118722480928117756122883633896064360189712762551035331506947389817161811008466480766795390167694838789558596109016278928716759414590770180611568781256749209846498972409483274942839795216223121632516190208940177280854371119955148810807100501010920032075552632147801620407869866452679504795598901633894860994420894664083194229358418971756586875538958775826692502278065307758450202140658690841137240880225181099540145308323855533732765710404670041592706005121306555541752892410827641291618481150726848041688982325311353035507678736909066577858032665470606589899324419914195913147195256017734672535436724350492962326922861423452085501583647225879552116352188423349765615038411423854756838087400293086176582779377490291486998162120567648016779062742012743069662506974257917481767157481835376239259894371034368214334215147073326307981593763236350493269246353971621189072363660617445220698364056206580173503843974771151240142231306659277223227811882991220701015182815677946063631439284215309892076112996857745002522493699151202083963463168869798582399379097002038310986192337365107983017571744898104505607357428342739173063940682656009581667392314038964588503152730205552570751585746832522778649027021435959635206635722239416177685390352359379594964784653688490277665306517191116018493371212065266332038698013622608496313637041690418556559875512223122880732680916599654079758149796745085059696737771804489615466377764172077669932285851629882977670952385701627876380679120837519570182497681939810120178374413942905707186464062109550558630020711216836751882539406667949089436727034892522920154185561020865349142972978499798948404283786468051999945512305331299413524781320461074235493104734764140151723423595721324812460721368693094280836859023001547709760122493556042062424478908288064186620420847865055899577432700841038010668031166979999653676514535361514661636381754458001842989154177802356575134363930824976994583058739699363194461579995258895154332837767550352077155046891869085481991814802941405540609633745590628661091720262951875619216193309762766518119581630927712550437558207312223120689542428248355944665134966891351086963709300375839604335910171131851036311629320238481362802341431797391274826070940308520069718184010772911196590348026163950207716290122852380495149190709030870786431488569105005216055281578265596932372123529528263323658291137705250032924250164819968601842028799500630384733544432892579905349584136839295334095978595130875705869389511456460593782398833151600102273202912179211424857706850971146502974779828051547622236726827207324989435394787636573556827051921342032446817704194478633185562189019399240821735729633750790733513199921969704555568031561967182291388992794795827896671605615806993397848816903416609412763913042704939207375521523632526659735895782345636442511639852594805516043932155330289939222489757613445674420067638711278030277539691433229244460735379262509344572549995725765921688422334635007850582551668887142657014061994707951492839174211137840759358882625985166145914303102232443340527958417606097667696432555479139932520999088528700512599880711681117435472120502658470263619264889060366744018972657585932164131775371673362383084617403389997571609672507498777036734638453460567926942168288274231133594842274102774218830851837963255886343760525636001880493374485447996350180572301256414475751048761826763640048006303818233500934408759920319304092183473620545107556987643131772137472684721302014378979203417467517053142172446488310624642374693827466151247373074969609766525892349795811377287129988011017323330546492044708502310158533018342611140174476183497451073845507921330172407312332484815222910152718234581702842640619935083932976605769323766227508854476098252873698381761196907900148980436720724963927660927299332093697184982348322112137382352995969852794698926495379266185521469480050692785392789414398552185499846654846754512946765291930143655954970789596068158411482224372394653650732283116485970133474868621505498897941885419223506339801564425826472087776816521981509253797854761403941781593104577435179841994293596293709330132322078375869132558558724750193100973295421828931591850434581070347297527315688148481860128253006159817652343706892591029322252210220361901614976140720599257234438894487457503083843859071615344561960567192146254504904158065640889410160418436833436449182621956605974472456325145627515051795134518616136629563549909838234846583061719512886683225329272525756397520181577954821638472349628164922184174958206014091021993743715747142145289749128483824909955569799363788926607610079084135647645038567490054859416272164737569755047559090441579146418252103259373932486960155994994161902939117814516394302560034920996659236660776513223276979508880462578702019499956869314989888493997647254950741839469806644897067335413272337895516757063344688250666387212246869703485642474208470064793077381478319942242831784970317561125642368739856122128544686276438307576172989666084095588354640579096173618077350940077562799300687153605131320930590690795989285369782862111803572602064466446969985959835679375164032277179636408810993916989078994868912421961789339810816255167114392012029578150517653049293532130059472673302599078323151868968274796945800023190309443458633822998421395741881945827102919720579040617792108000100652202146154550431141296824959323590915384773623903413620863300730359223925829648230836303721388895607758028647575462171649599740167765265709711491969618684217694799554707545180163477587041011597755414691179127290203181173108225097587214852207006483956229684740763311753193954000040377588095723852844456801203858450380784255654758868019149173076682522459475441677660809751288978200933411692301565459526305004954488786854904249082558581981593562668452022782183300892216152975002779916973821466991957665373848814264455072504361254720404785424631080229440767838074759317208584639283698716872799145287722794206473846465268304373278653796948197397998791129497808368366783481626480681144798772378596479776297261641321063127214729873172123080229122169350308451248711666470740342739782386686001475632984647142897470987003669933379296125317046164000237854395959031536949974833382412945758150267086480215955662896457263380781923003104078777427402665844735023936745116419751222933539828482224952210180634347600464948377303863127456713945356788020036852537027784948688366605809824761401783367634676268119518390008365129308940008581079279387492148642352428524591436372296881210949632918102675389990462454238523814941903518175454637388184746685777561849341700759217883493229185774536822390206622732282595644446504569949337645914496285700861356386631695911380830311300771059430559507291243385342140550561866691261453030759974297006564622386433139346199591540538855388331493075447987257608108850123723449895781035290629577410031034143745131472536103176633352823685287053036628535926375888001213766683735517249075377426241383931260917396648161752741494028391206196064558253695352706124734894096155601831236398074866297127529216304795060116795466720313387224082404073649353193120433925291122377768142889239909512750981318037023219466008409882352610141582242076210236111844037305874291731696199679962556775764736309226964752093708682127616405000986184042004660088240931201573701790606499305366805371435884534937037662496369142184970288723965443913537213572463584348006257767609311423151338526616228912589240031096696122684601048744498731497919945352067497715333786331175894888698144222071366177264772630545913884700124009888922661978799876062460672796255071371211480218253549997945687122230046342556451921902758511673292716165825991624250460326147843212123277577055790561348765575736576899963003837956004675882274299356045053909809806318179215778890535655301998651222044344124637412253293093896521827517990286497578772492157512321648425924299100754880627374001864400293296639820693907151000198543885738300576223168749163176361974890992406126857509378177301155552086288856385749560603092542465546324639506970743807231679085531013350440887728763004474710081926984177094746446030110698335568678749871514866132045601291957906469665034617261157850586162027183218850997650963512248994372036804667085036934175697828153865641988970954783825092988883483618179036309405894415955841926093639079516479349055751220955408717911944561763083814001242034142585893055081297607410624156897378370493715802113122315012081293485635240191860403963067644898631025586693221966983410974053277570429876642008444760017125458441756791432701762647612158459764416248045664340807776077761322652287553100477810057198471784021041280104522800120354253418696369535383863724774635407759650067676196685502799145297842948108923776200241431118745821085448439423214036849723507144386065447905303185653738592996326717486513101148914046831609433719937875565469658358063784145261997320265526192090708150374950775486067625534387893405449295273641824124923770338434462509535071719260626772975904012989858555094411740423245259977695581474553131811935573750773705765079819279627804766793081244043320015517010628224974438002590802688046368626234685861882839797158239583998339023809829071818741265341028293743889189653816142599280836706486484440681766590253753073868174167840699772962824093490283737044189042070111694224999331797799451063059509990176867082915613324285985332265380542873504056359406354691702839027654119924746966262846863026510507094903891655792546617384208243381510729009980351236600872748670580044951324694964353921101339675650340536215701864604763881555140440014179340471613773081146909157619849777757313104124436783139888031996856516619875118446104644474318553227958119751486445885653214148626728135977183229958582997480895495656642214004136623299279623837698444816061485713615530916873463416030318968572208359015062986286359780985720291790024137673999162147134275471379589827134168451648317578005383010268127267137424823363907380993013622240841998278250715041129775180564525958666798875939701448702501474907625760903405143469450305289592764735428170871455346415815605298690757842315146331397131567196149643887257176921225029713981926893734728254318511871227473499655830543193442989383682777177924514846703507205622598239768311640352371658358091464069171781385186724671257153782361103887477302242109094479938476096456300378305485760300338252753361699297071316453916457456386702289471795281262435999457592482494774095057518547186186247518788583823271784132950056344343345964118426357799403443673877713033547482842111467396553261443139789686958242234352994930827782027714893201718269041988427060993747832499890236969196283392700860508409113592955696274986420985181752979928683837604365560922432262764816443591803741107084171984480180851593564686564077318657069514755521128439919859093727297985496312748417451256689030307567903697499168456410387631811667207364698499681115525899005671518131510815007904863111644507364153265333492502245373106532487325466442376907400877152039099926529847475522777495156761763155022760328034675437181275112140873640707092060316020319743618510557068905865806260664038440203438744422861524398929455147873158984012815287761904598651404942169513284514729129313917123480728148222206539082122553229640813606890753440233096303966733356788878431377007845991705000562329081948958800629359833312639662395165839034801429392586220072531886397774334637256500632845897346741562339503823738910184851070410092653639744958496238910111098026984381581652379553454166796261911569087185609508280656329353332073766732114826007469571810235519096606343131441933652581323129551779703930467030088365789725815827894139729880732364391062317855302901825794960158691345465929575421032359300832553926592111217414483079878174423956534908072411889840632636016389267941135188487606450741249431399831538246349950769615522093868942155986739688022563761953918566313761240964118474157405225514841905045844942047957664782622942922547632753926025357958914574674769643219842257529136126759807986276979407804130052058082094321652835228052591646148295417458013957276790877920223527270886130947248822472466475940287166046056633692144045832791406968389472042277102890698057913491477615425216436441629103870511179935287430150488119641544193516451096581469845018033273044872320136476298561694825903386295535869049994792817830567980815021878829279096006903737450630508988628548130434813080832498225730370980037407395580182351130672525064772654152931824676200500839013738566577379187318285289465270489587454688215781273926507450820543601765423531083360595297856460843073933572144026412088098682310472942263542941841940711599354346136808768455645768310915100065775771634723131520791961228478736282352560360814262734985385229067027469610030718423922427229162656172464409225825440639030145852931566722053309059889009922143189693385469707608655676151353432824486228761852524972002145278294052576561061981735535891714200557849802555707827068382269514833295864675881328233162221077067883490996136168368746900082796859566639617877706195348598025601401332660085931898444957953182055506877396022887767303718029786140115841309426844901200727242383245603752251085508885321125334449474668331717308521912888606734244024006293658310919538777901724705986727442269848061813439003204947125322129888326897761827525896381933619456201057871435496150254099466719611855078027735348340755995569593537317068754822205302773513951609794713234655978369174052111787322912703533735329479638810769354995863865744094930836482820097417515946826878731840847545080734493870560313485939647422525549763055718401870290580379953182995481787238706676449110074103524170430662892067168309160385865089057314936398095683953450955779350870880069051833743174428706852073005847744886329186312007777740724893714219313990723165087983688273451161604045792021322455159975389983362317406824443311599838698188121453377054122341484959542974614887153637418375729033680035650101756713842874881282073912325524287475272158367602422099404559359472918554143657110954870781401676478883010756777104789699691271924772120177535583834848780815490164940143160967478523350486516156765217269906254266955500439921797202832642889588150429293772879818338242472184531114165520570021100945202007812557804261591818564945626612663359792389145048952876605403559777130740917684636251322731503100599278330092657943821153005700086512203086222371775178062126725583914967556315419540944720170924671865178561015885572085888164850982217133252652382251512320315056777005257043878593684005904702442377142328539598441026376013301734327972756345490424435902234471861068711101272726903061182528114738394218404635558324948583329109483199438375071620411683108762608907991215668563213242558467846575889480541527440294360245554183438809237911152486001431396008147255249689607974473418462337622342603003404159697902626428703704704963285895494163338122831955449301274095383723850815774075019918324869034907829544071491024824277469060528656342337870365618077817372825854307630725881489214939394114128981903908341608531710864161378526721168728917508968399999459365861380835885383386302141172607411100028688056492478411955841225729454491037701326695024695138854450092004499535328206362093621379300039997077967330349794240323648253701794100906263612046702487871642242247213564318968276921959811773667861158070539231870872735271549593400038656645377024341207324093663983203333676159240067560051525318724160877723341010009662024310244794682664683116854888949179863111356592096578886914143431937935177892470511588297439859107089562512524243776758779914366119168801736062452488390127183525712500802923246832344095144104651693321819150488924910216787580332239266607343256543319656153719410620055704537211906836996952369270141001307469368351452429862110116183753227123327741870375994111647970138971132973184337658561658990805991127022892281936535093509614268990763629638442878680722467598268850167965060684781798274239626163352870179458291819760936482200550032560486935336917598767897897631564498069209323464689209490909327887915945920330644530539289257492755681259316597762137530444585224438191547716733916121581061926678501575451065379795629447436654898155504791662108035216829234768186657346347527284559352740678023817642489800793150985789657516883155793182070844080158206551180362738739945177392417071999967597923653965281803244625096425539218280137472572217833835067105029165637527543697493330901117653215713055124894640569332763161254607794653567400265394993534901515165218879159658401572953181107897553609033086932116014540469576010825335041650980876255988922818096309508720442528140270078396526433878043581060934582800094427209826200556066873048265797393427536618595010416759762134668483979956819947920076847746747337276037607394193530216279037536956050951656041589939859327295283751063012523877300657103199767555438858866435934142252723077886029530721297113536802680091265671177202827623624552429279605283422183627361130026855913857792500136329833877412324074370246440237216242004632470449551442559525114619375604189800267088265306383852036189023289274728769819254500522848900147030446411703664870434705350279598480667911403060735700908604009073425922401153694487709612075461901323612766683855759082588509733934050529254909418020978101554580212759744216619938243648639416267767738941937259357895063432168717777536759986447134681350505470896191447726033687617423362491337624060433965790711984793224406784459182537497765535668981342316384071529361667644772064855803274326727272443648469766379824688579934001712406803897608291627490192590328145920357555079969925257866686207076030357335476677564591801013993016853036111842116789522034991206893271048528043070952137462778952968007867750924975005540817488726695316651761422159471390147303910273557582470900871098478754782168120804225973569932443024200406816504796680443382861223012540646952596210420751182576994253793027664200396484257800923679193863941095584194147441629090312208383977845981541915533534777957365173110725795562534942228950852116107291541994971549274465421435531629800029625511967092828394926967313623496099384340946095695213429739696498519273709087563344874578171388514671041712978908062328126267002995262292257719791627747489392277914606535531218493005744015915509226453751294448002416963117925416427622794553630825381183338381450999775898630788472871659911867360761051502489670673298073215358042955022633456158691337607250655480577617191181580282918245598997639754676144235303826878195326983530848683382822583087644811513974178535131277348001396757263316216497780962392394993773023206467409780832177640380017448800368041785020344025372440283095640663410662292097955586584878785573353288319192918741277508069565097370247243845759050850684018863022937707259244016845685513281733646767975521383833441056297883195813055413386723506871921331163088269982238634078884799120462107481735801226109670713587902656132848468116667500332584802748647069877052942610652317605246143666651535889945986189345086952914691735795322255974039579202762777314004614645900378749028163356373271495329536216917811794688610757690293444833583946581093860043927936199897496312595394556579398129862407158952781361868041925341127466944597069246977921785237553458272579417427682602194764849096551638374104033097824931491027177280872268784340569118100953343903776613759555319640154212597716761755870117366607173551785764824695401213325193411464699398033205146001648845899215966315231517133037138524670587382159524987905172499935332721042622569263876451296912691314102329895086182024749367805922616836287926841590838131435687633540439337328145931850059124547370478390117696799159639202268322489376960233096014100166370723684222305188536905122093561398997514175812170044575371504401386775361540290626199294345858719246414621524626640104080513010097471028899195216820287363400049554208077370572507589286256633084663590182253426799056371638724815838204695802102308178912744652211599937051120779578104047637115108685983764476424770166640957409474137904376972167293463022233923488652162899590922774894721920403437716963220182900209802100124443736555746527708808712263371582835269328328193790923166937327274900509250733367497957590291707363472427628699403622555542138119434349016347419904305152481884441138521819425607109046410494942220200035497494887440758088045658301737106057760321486658313098802219535722246264319223080582310165133683705180833530222748031512971787663355159244376675644154280696053525143888548825725662498974862601269095475971420913068897832069712743936675870748318885056043551704686884234693550054989690220951823472306669159327759352993223504805705917660548563339377878505104852641172697787705566071908865829116170084686004582619813228303471079749490256087730278807324632123959643701179873228981319081000463378931922171512283798372959136392097060498851606895389688077958772157212364560542851334515182075250734199965597985175394581909477008762471500995241057100690118647431761729232538619820977415079260454624277610269014064801840292081326333134578105745071488104043597495781602331126805316949336644150572298405558758150171344588459584216811928166548439828279842983780735469822069440847104469417783376434358327134930960054171242810450473673647731469746616479148313255916541125623936642951723127664346055989563422224444187918675439708508527882856036664332797221350091437371395287688437552164609227671530081750801441051910866916525094131052197182211162915446470603422377664088823102464575981816030477183446316451315390762074434324771815926629517842752726996813647617845474329911390091881528617040117886020130653062232480236826554722868666225187791629977411366607373014130386330241828820132425966542772643838932657054839044187135542855153427607082182001262271118884345033337234463385576433092861909597315138244305073104545539784050691982332262432606557712334626241919304409977792975524869643530096180328324078782217378630954202521119076043449095637423280847014697577393364262185523227249074424956730655508558212312245412602680195639500525208405305657788863811145595775563651567724156293946022466079569591823013902740167868290223683245901340652898212733591954602430197490019651662915526763314312162468543585155841673548225625598433004161906393430185996666952645044235098380246589634221680095337355213276576807665623934558398328163410580444434420146512037999901242411513694901150085857349047652872177563890547977938640638157123190789252981169606373001034727261655450309491772791787973090344075347823887605753833889282723056795765201441743254835873551045229893430091773382995160153023841703089724106179235306257765887574144073772533783252134071418481657832582727065117042456838545273293874468012555765079557740001318246417575525709881084813892893854193856976054514224668529160188547849177850128074090174533681830107131935926009650223976098141667779959543574020439152503836348876522421456708786457301454204850569517792247338628376744880828674963685031129771659271061179884908714344585110392831900757465546523768958213350214774529433361808138577121565881161220715777248702733409384327294023838002640070878328249972156196326904436321593800266723850601573636949027172290401198938590739819262304955647253911321509455235733055027310749161206135326853610725134599578809068455525178999077511530311766857456101084651461413347267425751999049122288632420353522983925004518663885744629123713470252457922558300430269473586533945803498114626231178428134316838899436535448140702009333111634460980361622557386934563196751072242395820331139490728612154631790495231842142814230540678710843532909778054996602450188145393050072675061838210169304627503030710190498812799308772758147374310537517044862385939965398793134325205754777489907958413083359498822097488513646274983295772449595077084103869902308243433804718896678619490704901072212536406959950834875581211025913179256296289460028541008024631676043021580100671288835807305414179607184900998616049931283402108359290240163216023330405380242972364612333226339318946226748539690262131210040526537294121941288142743412549946338974394418438222469399698944532177218246422832682233726485811041194862276561259371193557417513458438778266686720944068075046815947477953396395310841987340105616229485746054376474439096896363587005785225839933823577501108098041950468769186602464780690171618426519269599640195238029024813555395331020619811180706545587563292324980527036693542818427310173828011093518969775357160167249830551559207287812181084160754569192322197108893941485910018898756322214782434351666824595313677718667600683848466301963458535292806701551370710347986424377120328733771941126666410912188541284716619925580818506188089345982097184038877105436475980720128332679206500747745211067093709017870115312269667160589304695156930201049746519082376484702209235887208588615877472318039058972568215466757169655109630100851106411197168770225273363027390473121261862128031273976080060611848527192829409737107753863619477103258937113413142884776001207477999109036735678242492120607041591289919191269324730008467424620036995637784866512669442532332831554634336422298698689567023362834258337938649367002625549221188779074571833340079157103876981911922108207959681332934935947992609201348577766992938865424101104765350955978073083616444956399568632734160071966834894500330245777901919409882712398045656757794926594218426142306874186627374564358287237281385670565215606404859645513091216531124313561698069935047043299056973521756250642760469460821283931534235257712197575204574678425143418234436267739293494050614102836260835535178256987579302923824182573869240326615072069757163466686062945128025353485176058714640419195638817414034947669251650509884687589963797662592679600719193795314826000445446981643173526687646570129934396858284001342188347232973020179243526656253830274923945798673271871679889069485263424044762678656864954143437060856943609410633001737994653464819781825972810871540533445467632845313405556608698507323416494773753561628956505266985957471698863366320257724798872838768860314035430341124538834099035069845332696344452598594451667645845453674316367662446898927284037868487991741896539854099968696141264267625005831595043066677327033945805053620535457945643843723011250872335699479135166145212705068419704490524165826788649381134890342114143387418464424276507087909898253864418902369187921896802432864516622594472779259729871520364896541203294255810731264456629343025071573151243333116077968676933386871527616084530963935609786070866891532049196130853040883845611635402371075956077319601964652755235275770774299450186400953390107606672308062242318264010834246926637636443238599376763092595385193852902195381405721729176082983267373005018287372636617744269675534745601613375093644321358319867911634122191056846184690238374517359085093572185422530232343729474929951568678614012734525524295807313726769154637617852249867710563790402311263092441258550291285829673290821400834703472386845933576975792746197019220132032469120353745359242286580205323811029288019350040057451857540724513913526010572403629148143627626287610880460439178618381256310273140253985892870047554910931511226981921195219108092451058840057893554548442708701160442897345897938529343749504384465573960830040530061982226093727336913268050324312669055669400655799016744681168494386854475808223346556310093972177173799002592453797081939053013997468713213622445951429661250742807866389904347671848927197823523710094434113225167436492418344437204347485232334875685999938138632173333145030277893206343213939598297349768275060690322174321539427427264998721674414845869538410784051664874672691840237812485073160584704345454906057687206801357773714874667165055791042502113593465326196677525814413607179202810335561320797152262257995855211537227776440096539181494042818007428534617352437647893077817041430205164943259211673911754070616821934413245458887951788252780172651868318239814707094975512597210242180835318790380411872104748884272298969692887709207913527799162894446884245770908332349883753056746754440802082661636973213924944799437131634661014939024682107552006862911209505779252219996087673654128550210021242142166196058027847549185748570562997930022203926472192079134278610108648114693567476371547939859594931686864262102347738310509726938344136429740767657535917406137189759858567415981574239099640014797682423599210142791509079627884658956889165222720771004840737083876435249685638983066209854429443726117392791146042833122118703585968886397540588172336109177311602332208783621593377853004792586556535975073406745263711677814431642521845276041331946173534211831697431535879074506915908601703683423019731035873961925512665732150409418103192782236568970554484300841397417038708316727523707149588371219519873737296491133511811236388372593511016084726706289802994992840170610459326424895600292447990339115603706816170996918250175865065019609435022041213782533575762825550381945807419041287068326240449407249329584791884943883372653977591431689253741815427094727020519530359183264975940222485574503125045201544683981319573355864465021846682931687116283149725050171461053210098232648518009794164995928246584587683308238528179232288988449032261281594156952582659231881092690932273464243938487620837628722485862711426769114286330899022198413756743336424138277748119396254737160773552582830792046577554700571756418756680682407720991244064521355824929665876799987726279693674439432524965480346784713138618911922222864401282616074891467938294985798155084909404672083748413577331577552704733675960624602722659205449050875232585754211464690547225768905693585386346733986968322265484559802428788351694461662072330712027170624023630793867454161430187829227436529120103440322749695501983627676977298031253785755936957825468600576974053542871927548929128029743750681431082001226275336482206940744582634720669307381674776060803456998218873397758413432539198435990190399886444997695986840038718303191146779363408663238228603832764955627584144405596721647971063827244085752334257735829232982042522114901291071905401168543867715348114907647301526226360253413561423806393299265647183893133637916885962269212404749271338997973162271358630743874456566675906625865126405026065118652551851742490156207485749501669460165563924191558173364603126317819213761484413827643118259835045061767189999466617163341563245592246189190060058264435398204967596678870922392341226653109831202728160478960654277086235381783789902161571717423047455347244893808536729169683641148172324795182105456199805964485316369576877978619938828177562502267558549775697059216885849055466183497465112395465861940112343978816198443494142349545830234283013595481053088589981676271921120307417003125606447795440359193595830219770952933982168140877590211661530594025412797433403259112155228629954772205467496335978946924951027140732323371266266112058948109010671012483181300180166225359421977720436274301596736213103810253875503359342170627548415753199946278740001492297880138801180812757039406877750991046719532033383072278153930864652793131361500274904857061735744779265397235137839512906820964347635418611299393005281413232112725129265536300476036953431760369485536061707324117418109521543662642377815018081630647767620196431029630650366673796021179825283938769161245028646343854367992717433751106248623182380205092278521275641151198249803454249234530496142908901986303900559254575047809456051559892841313822829712494709742689586647985607065727357498028825039259879129897072338742377992102761214989313723176530452147460666542245331805463767436902591845013428888501048960011115537312004960147175574487537597211906303211675566359189626772924408061972120150190143988818316335895196699421718574615845809092188699489750572121352909706325259208691030674021660806460144177895758854924343071601584598925466902168182669581506998259894349995966537701074746749598637718303779507996941274891092834105755302163972262169160539541845816865407043353903125580584562605911265131666083413422589457576302758034684060011329064925821731019928211110452507813129182379089938664876804879082314898254587544499636841968522517624033744906188918080131483927960382488351438500718749733543109988695250870980075108097513246357551982481833964730420014865429371038174287224388591495281208464839638614423879479253222466850217468142791786022527324176289092860018763023991457920808538190048085822197866635169512154957011626064215287408778941133325375832110475730080159751532929830368776515977268540891325044969819735227387179160879717094141572339690913711369658706190206337363341560335160885066762616981918214042430788514163332635236486331461786173305529969306525539842516415188927370854898539186729186037571080759064689738471339739755647949760197382459622655602292849640705048073680508752816528163708330310436566378501679336411523637340149930746068717534519766871634957517971851349674183042315525731445526959506122142490867891842079082359379024803027627609206642004798267390506410924956028949577333251747638427536894596476705216117009885104993433317415221506807596444243975776072992184186247957579417834879872865932095109686292315977658131524854592677936736781903846419005780670644513479268634475897159742881501496767279607111470306062954086614292205304380917130105597632892131064364802826961575817403196674729665037322167940152897815287308568393510576189813443990342780277729791661556183909798120397604241850767631187579460821634149733055777693519745527529551678429079799509379343934643820519785237204520369115379143601035313531738745923395636382979992695582550367961242609479222642529363973527304938406025567938857109481098555725657027181098343503794890588556514667501470152624248518306744951270307870181389885692151769393905345125761383232699613734294149331667718632913553879787359297710205647108845128789834970168619417947980315809118125672085946181477276153071619450045534260220418558179049933531334655864721658720301352448137677376738248583279981364954128479906492310183805794771795469062285031276867704242829020534183008011898237412599042351286071631753508254360520688856687341914312515485503154530862104383827598241866732217224794092788089889485269620259153091340331882395537145381166814560170326653797911783708918050989581598215746552456621094299794805889082647106129952582097454403317218888947472889379459721724646742610885102112852702782486440536318897247101802284793842674748676410420110928841703276205853583223345737161255666520829796330979911390945903463230370494131075518266199590102863919545259073471348384946170292784565866593634512752061791848043421217080039871935587439724435677031537198925881743170652301416708854151214465973774415198299892488848684819386579129844886193215006379792524682135860473449397451918265721661432846771327725517967157366755519699661696271000616699436964634445178378187387149375188362633780697500654329153787073620376355763353556079293992656961926654302866556709428419196478625681320787099586618142616535443378275807058076663420053707290630477352421828023926170330919155104075496456084675098199464624554133447995311566624742120502544677699722615712120657888486156399895522305478650873976431116210572554479442281590179793128155198430954718336304405055872228773420357006095433454856716863310137773759796131434750708262548070694492303229399611703984318743256444434568570238075097134242855738106366681057686282707062127426800717096154168355676219757417896596867776623253724413127805041368382009700155240012174258816437680351344819698417187614640257714210214001977858195153912644692005754136805399958475060750117971207614415493766169072735669690799078155460709149283988280744535599107083656436620186322603657287980899211032305282651915517547848002093758026634295587687843210328867012558007701310176689574242529862574585423004099068473693213815341307234182032181163249498722444442619148783484430468889170785212212821355752510016064698287708683999586309245962231190537394898545846597503308135902214716484053454554460229944821646514425624448307258412590658748537181715879527803379982100481070268170394304203840887711766081776992208218118569521823771493425765055572195060334738945156258690852538870351567547560986910409326041232353442953362434625676499517028712105603807139102142228354054121604368737631293196331788966333200505756797495579099799824736529873826994943825604074977743202761955986287716030168199525003093081955589847376014662042469929973043897353792467757136327649361638731152230561394160119974833150090761677035076579450781187301696164687010784277478119925043235191467744120707412133715769789761643176016805315796527313525236961284242358666135409039492558028857119008676899867767892171521343606995245304287110260419330145846249439206401679550167184644257943206094327376274402017033335826105228528122687258302049408374118573872722439044804036231350809216830899708250190008253854436036934793667174272410918647029074095692220882195615998375547278359005685146278346983628130168936811015742303763975938414409973071700617889735006750818869085071334312102290976680131104127104822924705765035735809077993500520492677029070251739984340229582988637304211686846268922669415336163145434065862780871419828996393374513316426676618476810561331715117166358354460088686401442423398688106392321823945911070799409290361785834948691083351558585548621386954935574836762715524811167137646239068858275907950921340910143556190056458257174459777142987311582288955567609749543812106932731726274601564576417040345312548038237883582136028697039585533722325268126118400309504968528227668951041857860901143765582112936924806470158117506810206667753513738325569452451599781258767451477436664271175493642974164433119942355629032964603954151952456229278089105259992333077633359894659582210825405258244122702214998126016485263468299491412956136960547841339721405154473041059149799832178022669948856928863245845617053710334194954055616439009016652363677539060139228786706857154439813729685557257652820439852966217944457388072822470406109290151487615894809096578391292643090434095724695576393818556678910873664044425507544032263256479469578681018184426819529680020274555083414005917737182059298519681825010908600376986216371551675548231992574071126164518946178579414662249539127937829947687703606353483658479256955338174399758400460769651111360973763400295955704570907511136795900081487764771190013381903904799794758219814441652385658734718699834074808118333992933515563356395487126521497639246682261521766265516321946612370845321074827919884150773225793776013335954007682236005474996641652077430297265035572744291519307053157335962772535607846759537437016564807007398235533075846652530300415454081927956564249062017903856834155597127678949347680752938090018171796642133795114142581837849524264576353687008226212243418685957977954102560843076592948455359248149169097705160774256704755426958264665377200078348595531718359754771634547525000610014384720638512854183557051026854474624557960679512858290003541247782916703942812926828426712214644604889608789247171572627407448612081188957204332054449785100288640172290770301800912819494978328100814878352662728182993051722902211629022001855363790064821179054618004539893515384305599353335885978126922176203337891252631600442748558180410201435931911776055872791558487838683422128228023085679595181014305856501199990443885441262678781504969618844890399733884083839175854326590679439258427076568313011827989506374539447911774184645430306779626102012429822916668971036785255824314770451895545242456749046367782253120127867645745564025283508564752909907488521514499884943463510322039431242748385035835114731725104623854655815769938353109811084974134309110599557320045669818696922582509488835592404467430139362799118439621942924768676816825172449054305613099932608843065904445630950092051877585773607740031225910923110555504996432900054495285356131653199707412090961226281305232482485435058408835797708302568894617309643162538450948531191874441009146814236437367768878064911349686734062224290995444607856151602601068351770718544268052564290854758114354925082677450459983320950990090321971987741172280074858276457742273506069593821674805365057879518713815746885556447833391585690537767566075076490252982099781266946626958300450070399631996366075672790380566522083572557280430445860129445860561699299648431809331128844100136483077851557525322663278068141940039095213773686783014397503156091957799609020629260644107503674013453716806143406003999785350850410997205931478544463914633655437344316346003615330967814981943892965828536073533355210221112470895094073171922501206778600208668860629985930421062872751458136596670265289499830453764553064242282066574875261030726236997109550231613193678905833005957058600765240551714350612996722987644777328193880441689125518809760837167152843998624806536968824198006509393984948700746252067773843680691420666740638059863631823872823644460203829635266283911799095704503469334888054322076948331299733811943962360290572998808578266081703620588691415805980464694629745054315455420241208390763623706456821178497765799033638896251116861292309364894405475451365683022487753832755971496234688820916833053865980991336509584794335401222048911799052813298923399052615737359866073112302123399427500344212477435471653516263958603448252377833685129880431453594186089889186181528858581835973618250177258724938825190606586041405196019228769723738253845222842748564665790174430888783168813384008240087491405432443349388088011911054484955814754033834734983519646188148242734885747685001986216450717617696663891825735418129993748373955971510240267367755690066325361323970468489682202555982580704394020372516957130762488178889546684290805701993403936529755824108066763962949307264642103562448555325477015659517848928311323488844590778670241374918641305277072107632828977507034503527839897155191519935100142846458717848432292151163968780124962470327747542850508247001681502833592138318580796754642003047246700782953445996399392793084301406746522236004933212441082899259358689129994765756390424616956401935375363291169237213642075854294592684441205994597110189639393525988059562131477312012016926533520180111953867138988119559815359829523487253400823893296841197177927072647680597748137667392430151637790533374000971869360011470985669178221219531457583549016502290423625244133431756272367724801526475821905289650725997730077470471341652940290701283887398583220586796617787028727960656957369179630494408475609050328850044525471810373083934403336457650050191148401770877805141080115626025099040461424851508491573617587936477939104486185947674850554645234341682887272203127267927054930812411734318097817814952126978562728416156152581003354833508768193600127231247124126625888479258900461286039208386749631507108845237767110375668610081053861373063394509770969862580680751810593121983728614526401431905996811021201518253377154371675990178991217232881849348496208615956026094524599535894041262677262048815150014969904591215321191013820383891404946554924410208102757418383790239872313507806855679563365358959257711293362710448336019141995960401807684457195911618215680607967086632113316561751633734187555758643302526764787260374009164674223998091332773137997920600032534548087845585746491156618383785209251239328809250844019305515683386183378141400250575221306941181337893111539187024297817588879771744386929828847519507248803922156281002385152961289831904587474733200734189146826117041069732494736816097624907447820740689790219322638235863883162191144933296413551956948697671296375420911982302496025459636445164952305053038224377297005806929621393305678489764399400524198283019827501169270379304101994434627923627218961429139532161636383101770957331423482704704110960186971879208066685718170235784455356365834839017574094950196995309464129018075002743469166212753309845622709358859101229110869593687470687175798906050337600193409169218018088851169844165318129767343450247320949960161979098028377899861915727819331084463389807247981146560734138315082619849130513543741157204687587993664991776631880683367574013517861187975128201031244302078934462429352415957113039402278716334055001341079075226336504623577111688167254498316623959927299314812813367140806849429545065760181163650872948272759142892734207987373799532909263602072754780599609717672121482679083202953835765483786518768437906639413430584007773279308858626745255080615845659552540252090134660626889849878523375195345660562086232712189324589109975129044938485293104139252632663268196423484836257572281471856168301130208459272421825886267693083442400592982017146976862572809406720884590429817136320254275257774158135872683405423238140447676916712380107506302618298739329977885017561147229920575388393691338190178035680776441730240957521006357421303056802618846020316297902060127873032007969243944549461261640079838410555077990411205206981466063167479732704907423011549233128225185884886665700291458666162427658357610858848429684938451352655836499930376832219266650265487619423505307012685913789353890774774803688757010601861769105857939162749439920383902014104029077314504805984291268198631682171676979046243883798649734188598175989360792899038251617322605535703710155168532431918839719966153197130213773921272553250457649163684811722928959234509777485028999407437432485782340825575869444758687670492887296309170487555833725008864308637104165509695005574206227408659097059191285820626288358173016802499191386330725880771030307075112279423026737561021478624945314277571773567343078910700330139258308442140050599322027516959652629851685211335655470890608567025472187990284193873894576890795349501931249950254316478487810134098365611553638832314998964696042755705496378726151492625279573065846482355440044116997996867607602461941432127870339822804423067306882358737243407131273983019410699746543243533499707241277889507287098229075898376646931211217612231613580083884418579964419888638600326507358123477096432950679283563507249258021197962410967773717462182847053564427490759749639780878306691016418310379107718378135278578467484099302470138319019398844810571826709959707761132588748614323054158472014584181449009612023897287108154894718115645754366868214378494194193072999284494241130460195442409437979084889581534672851023876644252315770907704589574620958254966711435290120962663510126981833754237748599399927843335554150815532590681585109074533006944292460811277297866006287514273109319509856451918063017927433007695416680092595114511578187466931939714465836627534665757923331831421802885073398427480028433660281914645524851860496059300283495933870451079892789660551518719888894860440708997906982886418761900753766174715204688399368508778105616846544680533514200458377615561541456467968352064985725588528867935004830233164086119911135923161508246100939104507776970911409554349507630340717384073102533395205908477545354619127478531779126649496268308522479608085989201702684012349051289842718988207770464776004893013577022920806708442177326917519157570028413872281651348358618301571795734324522427430680029059930010984900072538869977221260931733259312793181526174589964298942009545886784593148001496262956283063729009429667700059213139460754767470772696996055495995550002048797447447798233338116258849281557846863676562372691550719194397652073497136935499924747175910945202163698009943491676209596263128332795169738260524395688117077774996057049824188359543336408553416861140084942409621330995972721088693781570135955294490985173419027302454837874386012908497120994389971927736048395359658947503008020279515218513946406627197294809324252530742604920972622710394393020708318085533811481068693832472167255956453528346472606714888620545840283834212250676869742217303781328216985516744702361788266359762309815923646617882710313312839213531524755309137182693716285273945591204851003143725103795267131108889105237559654333710165066699959107632679829893305445824916113019162110187718974813742544111592139754363886483349102983383064951591227292912023151486594960945648843828834786083639250595866338614088715678675205250537253144647786651863223781254358636023165646566481293789104406697143365078672676946996819776709670436197176262530260703187801658133020022612839494985472212312499841159721312739392487704849582749465475716030369096163190812650164127040838958779626820044555099548583785004666703731978653409306481856589579112065442007709395176226763996640007851513931243583051116162945451914142992703165243021593874328187841642760760891761314394109376638456792682110288860011270049661715067825799791171335476462884914963142768548139181209521082580565017130833164576083377041299992561546164539138152308195976825182890588212729405529457097877484065880077842063912952664553456324879372667308013469881205470863143835115172118327130652531271735092307918993089299473072213928455498578818005083311720155893430778519567966561701879992467317000136670027700296370254231521882829858074861028340393092354269632460263708409267087682894343656849605982262310409711780060313480575543087668891112305216088058498493581471811194713932838912965680692742469171904550961538528864041386862587754633925903005649654355712458942739490369971677622079791758185592780298934335248790013907151303238864526097403340828914228428183643492020616285149522268343091451773121486195782149609495585920653564100815662908161293078017768310180622125397910764498807437534602787408095457157888431688882184999785680395985064989352157090454893331433106484935553445646621812572376822455105015714275045968929249040995707378004512764912528548156725433676294540578202484791372096722641660911245940013204269538624018280777217982655130168010247690034498955620973314499977974285473646708900327181245461637916374518149026982220735363401151175628453015342507190545309147980673854411093362141617054440956708642217612873362614663753377098008615035461820366303156888078762331724632885995781862399533857590352360056386742530921984700028460374798804415795296970568044036599725687943705471332054487881105689106725979703237415673231113277358446584590237808656849481983006305044583547302663020877426153743348807065010623393088662265147113848365363134772903586159770019117614007225494593579697537407688590334315826535339086217126043287218798955462658584655492657236445232304149700503965374164724019312912174693364488056464766418409328412747172016446891003045192247612498108642080458608173943079945718520210571667726856922764158536792160540886446566785571919725581285786892961025546790417879587464195169754003841344640349572242683404439668640827433778653210494901785644661339880916509644446150098571284983937206313565966501834252076601053261153117265082221170472395484402806801216460731145798949439849408974766069844121109756106740471090350198105926407185525898651723133093391212021138879917095847677838273148780271201837728260764784323867485608830849950343058966136189400726256191526231258762614124572677556512850458325265282201371900054926100037364488438009206974795998536474792056783273198353467253466877989086269006820850508031091703941086650833940569299198284147683467138025842790403974710242059497671006927616969668996610199928258043279254832106320703162904117417037181295639873115749100734129270090934611498623493272918154361591230984998716166893734988627793314004807448725664813444449811520500917874652982781447652291491862348116314095655062968752095515534482746364941759821354864209752818720944986693720450763667966696757752954054378039089015763393146580688101673474444743021396470014987162489242989579445203411137185506559672608149129775009188410309084611010767745838455073752045094259188400900591650859895826314113227546956820825870203954917002856994325939363550993859921429334102992207372584739662157884486994266478570891132861681602953895475595708062014292550066765120552155651427822124855376085583886523560260101276282124504867416234494656189693053132625693053420655812591028419357269619153397926211777048858604579422503591833464629716396913921524243829182504584554867293757119253014654431689469348501547443214837414076979630000193697718981525375571059095607009100496025268837454259777675955046351081294147293753237532014956015269293050790274820893636611635989594055547280062217025821813092413847927639888831758308152116562063273638351405705622933186859179119120333734325056695557220583085863363694928144526503994453562337772754832118616572871990560548506118480800841060629081912270482279205921207650640855141997428520617870022599174568549202007692803924178032777303050268065227968718256667007078052799032283224948546362511408037579221051111824342225904407531295061207863249995675007807422628838658975735734914885435828458908986184537310997180380749509100190737814008084076071032270070307218566339050823965492796186910835488468244406823419760078646259275757868674058482524014621290496698070528071382666989513339498260248281218265892713979593186312288225137693060249037253350004988254472123124524336166129015143401959573354602957667621401840619486205653609150461601016000301673956516882160655166412541433860892409489344978865711840591662667792271464028597861040372440312007719463234207489979218286404473910670232891703404372362719250559564217172361767787422447414298028154677380693012108593163335294690336087833190611316178314682275114773335688204448444912271417479338534856934824415630793526050786882066470427162523634497093085537593938431600643416944609824586417688686612386048003418553722401158589067433868992336890776222616292574385469428618494826721180655174697068930439470312317618165829435750516567573741536527340169862785656851120373421602172309013133282971530404378300824264600418786414761481296990499520252284645026329511770263990408023701935469030223892460187548307599857664064617375091355044070145442507290658421565608247963174852602225895807657980869119595466511845365432240699072283784577107264215970331859140114895188150709832149520814442300843816011694036557755123864236152530444332391659639140078199572138528932093998384081000622627687140254548585632409612514232769753950200338828104823827369138655196952582708649318991934486772475718033353447718527191539329492417194149027445953415450768821415096544790304028738334696324199625996973193989890911908094498451614174167449225942519230673104931695263808630553689495971660036712253354874460268916135505304547321519873244993452319038676108484753519922528871256074089916544197419771285136807462015284466184946646670913627677334690830248301661388845565354441280506712344802821595378650815743552968699359399840724793552763619396991062276545188336936896331451369176861625629812696904574889188106005801922815619592522153671688328362944032841946963419573022445431109001704065574054135228285186862953280398949871208731936460824174229647515690071300274751706906988452632094985543297464770339880465978311262508885711233229645963824585377967197547958927629605416125170396488034234461598387117816321300651460506065570259230908113174690208247031956463394985409232142883892614668009238048890069650785983831635433888209994696057273799978593414310416486821967367289497681009440356391803970301208056695797930887289777651489451958634790135004668892730719614921329860838754647550320849174065481529653089166674658276994252903901796395520077419255807489709107930623787663199802203831780378425928846526418507043305434600432456162774320289113285473123956096346379226565573498262458012109655849604065562927231905940828739541857310806254726141706933499193191952551158354033644688040560794302542870987562552002379392703938113123460495000420352914782185315809760199826539833527596560142045443475461510366750469345100384153221102045694242261962240700756553995502594041113976082288544765343667566366439983814320981778308548106215233856390717685080518216906922855629656588419430338352956313204663195195448362262516293255455872127849159347304382592858529467878154893799609875126874921751462008771542092031572931572620633227189114219053757246003660078954563985997376874294015144377365152949065995751456256682216386051209648443177657763119826919492733189240887426591460755390116695081399986058078453740123506108774449062682840653578200973362137832929776367800204535930214141726177734382693072555916204638242227300692593326909479591179960116003826430935959271503575774957807687615752385580508239678019800195139408011727611621332850048881354469843918874905952497283105397673950901020325434059469820510386135289148874751922214511991820445909607669305887332177825007922406734167287190062150289092782679384406079943300299356574155299533211229303727265595790259778416778864163913629850931976693752077510172229248946386119287982793223713822811950200401439187979965946435849554638698013333785926974319068275860362077668025426027890305684597097510085039183201333175702208018569102499714937899681003150559250289585017327486041756591651801777345086677670673555827701001387416772119641789385585888547662950503943713321980576388397390336225814943514770574277706730015027472409307277271053851461520085347242582989954242899495346878308351292999733374676263360676317912911279995210021980501112550561891207321602165292050067680588565267728573679379474968061760687765701442546752065838187776450713957518022355952489831156564263577868280804670440125642838302108555758885748970483362844368078652040235255771837917071319039070353489389665032095961017481913399558442959626925137686136191122813329540193499731425163556317843057139432023035280432073683355047896106403489441659262879067293757378924357570334053003759523113077650266204034016025367613422654555413560909021224813010479251193883506541369167535251892072771908918980697986384377027703883589191741096884560283692209244944479385553735986273487574497129496043402238207113438506186399708546346986570844024495666885794798279548463461496531995042341970498092188180148080597286453681486307310651070684616257262288276637745432028030351303104769789173032878832115901989555992505274078618756345746527301849725196176230039153810100425396818681488858623887883166279091509943388959516536838380869051282019710637687524991061283262909070969032353544326434601001829295259948290787122160386170242200096746183854753324839870625795857524600647066076967141252088205783613262211165016038559318961776326245690599413548299573401716482009303475064087521665925733263991710246066725297408762560889929126011215797217351746825688797960633568590042472700340209019789375846154218045299378399687522217508579627601602630168672437600022297740190986086359261035362564709593692956619910017363912315750143585890978863611638604362613008917278389659036544589897536746851161527266505456319163693072825193191434129567168856317434310587280666662300481419561067299692847528268623903393899861262218847845589353372447610135651486011624174361939965002988529189845353013214172762882751491987035210033844460841997934429388571373065122197656812851642467170144854696374245468369578650705079570721790919383673859329481733755654777779385465512093319776728240516020048291341978199410342071820540992660026889992277025874057858779194692031179567377548173448961432723571085441810406182127136629136561370163651958452807236329333844261045083297238745272604363500490556164069372113254878744584301749496012836128116765397293061891074300757579037159549682713439334061452253664702142236817880733119339371674922073229175625369509293380490988130763766243257398262080629578913272467763118702374389152588141577343600891600101084980477917684215604019112776895994998539845076804073902678552986153275047677162151611047328890080232929108992084941146418771680355892567945035698916849358312326589682531426069359626881391021002232740391031752698204200601508726172652191125312365534658260515989731739053531164223868420695104669839147196825996176745555726283324556790103271859787339986971593860432807093455078192991730192800999843085214887250652179737308317568476806427142143867893226905588598211718997759582109712738543714336619352244802203795311836405838708886427684396463498352613616094614117944562996148366776994349910485568206913751601231796625232173278567143356105743005588584948876680574210756655988665102363760215115727651286572441405281695255143680830192820916960185922189002926509638172993099980814276889226391292899119616641970250538785598993148009551123224595575404423075460651199756771910543522790985133511029498174469959429421136012029355994652413636065383276252075761027026785286050108211771734176857772679151540112044690306567711924720901949261523788143344612957001032078039884564470310923484706563056916841600134932788745807054141040302367485832960805063828581465029504043089952183327268166746123507166358678894388881999887819163339949086480231647674030972378586686719523110180860523140006898572858103029278290579148813232783528130732960482033651590636858432416149990612717752287815695768474028382774229779173316769563526898482255144240785476508075156795000718462989627013733694271520631349085467879681219655789309859475889428864507323306924294378003762467649428844932911751319557157006864786361201585646188143846777252019606236928829131419049873602272505437245824728213736570152152204300674907193056987522851547846676992208334190082652635237699445858732429894943331726375590382932017398533967001905723458877838673070517632758446727398617453775819417079263371798713878454964382405492393818168000885973972665744388294109490463782756326771626788003757832446772498947711870130955040543074543621430523963633490438759980471871006391079160060892414458703883092599091178882302521661967229405653075412453687351488605107446879332176914807504912946396301576610187502878629951164097422721566953801123038865806734850636201823045371565987117954307833658882626174505579916833957609617248127109698399846450324182503576342396938120335312801295796284459320496252583766450688760426184359123391644536421792277750417271787412326818792939603390244053297650604771627349071256147670942853270712943994123973029234523803792773421640189612648183078587097142030279581113014162800128277149013848253372934894638767301073320331379397129073654404089755292386271892865509114885295816483571830649082705042635960508292935995320824123274765864477052827390212707468566661281985777403273697337373280227308575324566798708101417677422659895371146235675558439146439835208205204681204017103390107701658650533025231635761783600191655901892100740686441305796727785846386895652236560978269458430012494185534488339843706069737655676789439996284661157050778463706113997659844554336833532480830290252176643379358959883542815191072178032593002363144772377652343830092271816483861632077124578489120458728940886204338136274082826227981763272346643930153273915843904053431903280469633441498493014484250751880232077598227112032913258803165948981572905039216156824291195319371726292511555521456339195116226883673964658393630382609162695422357336662336414688080977445282878217659793520340129950691209134649368619032762680868798377038818583289647342899783127902599196030590006380268254446663169791508826705002508209912495456291292613904740490493210787826787267329484263289223042869928247296413278192606162128045524647963971193032928521394375888604488997096300585010223470070645889609631983648160429443787265921772998913866123780573575848268866934425804901006121449459795849209896600289798314001294233101390701076067867140514775555588215867525811957863960273239670414905938981224244845241561132396034435166585428592503719128298512817440130664676794365668249867726352632116553273608393977462285382654905606139765228571456728257686158974971213952262249667023899363733216475688628061815317621868546785766180652283944926838963633499552318636045704590060674475468031475152850489353240432274602449752037147835033939758097358713675952721312776525924593888376326252978737850267793135867983192888494257712111290552031529685678396898160372443987798253649844566462445490193584428531156154971532019526100357758802715559624326309407584812879174093545119638411702561347314910444373207287850470014907535095677131260337469342049362700350197984686377574373758832539321465452313491175633902489421457315108453882839397442097375075548982845364788321011543009723746286688436240763115970403153787964323803039576008863332705306236541052637923797791234573335196224229988740797653591037974664929444838543686339236675845239423660810582973213966544874271263753902865663447429386895309319226692214983214039325189055412571522220177893465188108155850604092739839054748448302085599441146648174279536461066482926810549545091164698679038714697304857788126166135600112571298640951823908879999079816734011480540512457731429922950285076339462429776060337556294007989722191791709489593661108015014454059371778273723127640351291748733513287017441307632436991825759015533717934469184882804488206327477022454186684896552730424160571541748811878681989778424934270257489597555459559224477516980901362351583536547837018719421592604184183020084273752034473852804858614976681388384624486245656484227223346000740410729028935739136607406279785066997179139908677710653505818421809279235148336311777839215261181137553608401151825650721715670870727009272041142531195633077779827580554737398446054746811906736679337744203819269933457678579743757835709683153374172377070968158805847482638896869391293218604298759098942535530286180666361988862238542210652390962552530549095318897418610151692129032227234536904368829651367259002859292421733122553257615302476043397029093127692894154200462957704209131351116506699845531584139760660235864071249121193911232892789437801377266995144409046056311881658536791859224929656465173146257899006070354994035326423961954226663310972426491049699456482602652560973520159497883251435667885465745868034811224916292113368123757223801437428580839581658263734317393229863368698887131977236142098131115532728319738665859452607869990709643931857988714915520622612261037276645995350313425872086769335136695405267962199487608850897102552472378374396943982178338575832140685199750446413820213261313591836694618374771776829779649508620291937328949118019528204447736943288363535218104443825713981715752399329724463869924945548895094419865892536132604039299145951531994410742335257692876283811370788465647034105430007965275144171055895346487912413668372606402777989447202277855617831559422127634089460494853568494220031618728824086619221717219385611550653532431017134953373178595958171845851870097174356594746712604804770916459569527905074354871402648107985108785003168623460829066246603171686424235358639932530177612697027991629492665240323563124945668819566368702246017402394406608520878252276223575376214049006770512683583549817928728066559768414986993678897275130598170303090461203954171948114860729532045745022704458200339529210433588830000386664850344298674832414267638332699000461840374159225096299326639805555226649339888926675876227280075002572529912662746483620285291268085731027068447517883508507996846866611221002253092703331435738528296575475669553282167224808883257133269878347207746955175483979299210331721653385457469655287122855877501323588285528454885579844161339999188250419493832352446721473616617064191089436476140708409228913142766734737141139380785881971595324080661001522824538444841576755432827002454944931120549227734933073778253412185816427829868691982988336987495739343252103739451849164317579674239521043085122236766865912699662674741161280437671780656956030067387291949970039236681750843099230975217080568795368147133869141048880188783307537680821644731400320139928361771360511282136480069420402830347520369609126889885836987274590900364418954443108192145066404812223406584134474200038329186665718165070087595304602830774424522475899033611146725682439131453846062862027928506428129715443122137187028049019737551854687109286455539313716703417255305838508046049630274888260683447020456223068628685028843329628831749453851136027640933555635066775213187614805244697292832752497039363150454846905721207334502744859107360846224742024860827639004592196671254715279306140049519244179890038703609859371814403532510740633376457931057394132351555274088587936065733149254966916871621075829732364634180599338856707071298851447522035863732916885449239182553097445181348081227241525613244831486221061595817736852609485400000036472137100672776815920726025073377094426219836042436678515937130627549958284923915248829782675737393063650196224904399460679657160907213909722611768638602013008872714915314670269445360004711452244336001732609827671972432189953282404409635679606024415089220384423345558774612373637686837146453668905866723522960729057154268505098072495906808068527951634583405754120370291110929897276090158721274189562202691200333189298855710682131392488462422691203600468986701452800860071846482288717637218519717016851695776515237597664161720528922193200770769527846555923558047741263602542131962623239949684543959365101955327231082838238793423824205136953170040843261326862063628188971267719162530344663014253551556049511091937027795533088757833761011404389262431783716538288930654453914652987625287875952435599024037629214851711852430457644019517744957700395045333574628570547405581967018062395069346598290528147614959317879194149007161038948308761721212948503551353311534761566966966827801935939670411074727672580022168088880351144719056223313289452797399464176263895932842428674301191029007709993063202661063342337300831686720274395855031105870091407563167613111167976974761624938833386849975470770148876510267592311640181435382518550375999309886772577935059130285361704010988900631488499049094917687765185327083314181834563053184234360594250962821242265547149522853619620528533727083124876443028170844688060541150943178732401451807174388220577729203848360808093848794598404314403449238856101030104083397320928232140907379369383163991616683110050164791456857649169900958046441344490000222434069657608356876331657528908166185376012030127692359304758148923323213074681859661458530880761016822019293505331245125158254116487848865960708883998068985574840178132821985514792254573005928621103908607058624582354884242016609242310735082117735667861274344568241013804363450602702577088731307346390690674060768555824441260925985580733847040162993974021182855300377037974848506047081075936905492814902058309167725846811928839044138609951514927737770722724753338165685383408709966177468929484376923261097429916135833701309897505700813384913636496191609806984905372380338512470289254383397339354153527937894004555761658557314437541350952446761403810491682200748024287125946869002909788270010553232963202477824630300371471524437823840382165723207725958313322830439437483235158225214352597178457088229866870728388825069576428550231984040478916777875598046375517638781157224191537864784693617165597537085242946796923342017739594792868776270022332742720759691473623145812633564239144517438184963177724553730591740643973817485168595606184746629254644938067772657556901766668846610884196313626999316523555046782992867817027784553431785053686898546999233639437620422753070239010685533446258411449410659182104513282307319596028320189792926154332231830432370013834268165878426654031086932970039550010921202564742439568189322414482706479270742413879505543950379928542493545355080329529814262517818189853041360146879162361954944342767843317963571123831606905229549398912206569558469658025920015063952120594523168664037554121182508416627529147779494976186975929077963320076515064376596066226627057861632392428789156391173904847509522198490345653317298871245240114514434142635456885257599191768838270140164524737363613523628130710377351230385890966734214623250500141200174162721707192488952172183311422582971846784643480156215857520694809334079685244782579293179961095672160059280966599533293960255814160104117876251522855893632546291397827971134209239527557336171241199715585093694357116719075945534291121506746205697076157140150761908763375701607572557902470453652102197922570629926745513172461730082841233360024850937573433204039569748682402696521308054457094429813596982310490977402842819126368827652018727363141204164687809185443220584292411374068367151945849011941167541824543282715168540114885003093602120326679078045610910933946875164171421202532592524714942312464402900865305719691698028185520660432737382933153198778552528176653621611067645229508977501449828977909109455983403618909714842956550870992193802021227044773744937750970265495313094994757201632895823563159701603973242656041229740246179038563914094730016411431209744617366251306549571848974867913323135377491616494860328440442737529130480789491569005753601288881756905309131685157364833794855959867420609458909442534017919394694235554042424382135699095346535881779874151865563471270865928981688422178567874033070232309180112932710460056563874658918837380424296896035801393362254117299176872900787094939716011846153375707979740246376325098578846131779642381691785360100457622399385922513109311253560068582763877861412226481105257205426678978020501430512361705595627025967024573669052934777598386729596854583398148911822204812594206591493260167224420988689966668641178595546479706725816512623880411739919488248380819060956663392983072991339360383218178275972426412772051184758086350482331955252367043241690303915840335135951513089947901629396735616105316007010882841551920273834770366728640509167609093369086239533592136825884154482889642462120745795423282141219754410695344583632173025054582191685931997026810945457994432360063770501461762018281900372407865081163495977204181435896348824781965364454327365434565362108273264738104011156623856524330367603307505908978607967074960666848910399472198702927064201334539869752051777423791679617354672088785013270823781455954504453302265794071732673911125947709335822438057971535423414269511008119121031122493557481269804022584167403954374129077690160000112664535344456564458609819830907370228348413240130291635599525347380152929562393242538254005428961196138768685597938289631809826678000514932008694097512689366245823915034029754912903829248582836428973481447645428893973036423226033876408827812011841741799655101907399818593309320803399460673587823725265610524975850393582679010016557968073694113303648809248607555895459165906225212703872142292433505334705467110540478703858064028415073479632638783244333056534125329092720690330007297015953858116762278304612813413712767687301611933772130622220277463188024206598174726412376682427669993683221732156429917214365818944324489920991132652424689307670735150137658243505105033233148195402021578717390500710290352869669342662428679196930458571345249002721904273383812644555491186893444194706530093016588173085921633412934292013706985066693459042107484086868121915740893263356952261226845297944959270353320252640434298971706597742372214465870511470980624190086646130319302071004618980373663250932104315398110601976966793586200098918719899690661590855608184841150593407801014864652800292881969319118098745027135887470151255794470066634800464551017012145893123751983748969558406136897938974058523225766238941406899588613610410640668629968787876936508152554061608305373760461498236303593277969296572466088209099671817622583576326944629648436678390539870575692408292301815852365780833502019765730213016467923993952229938773656719858035600205099962400905186139184672082254198150996281140025877798658393478053626371518473543728685473332944813562848076734204997690004041378386441369574124436163157963420393829918295615784000607732464445400955634680287962832043218106313889979272554577489957522912382800817531308522136807279152223363465304322723260029696373945983964865582487695433797153574211582515025684122723910352001255461707726758933717954015899071799468443563283133667764752177165594779767361916576974914010529684165921172340388546482463644246360321215358868312627925534386276847865656698851332706293544483150343486848151405502450935060587561793573382484016853308353962282146841370302193606509015110972317206334178781998196873407938641405402128799633924897439028112804537217540064000106898918030140427570563127605941819069347304764244559028708519673071842591561599366739391081463951598147027061930701637546561468353105559572368452879674525827562713179129460197342334622589501016468359848895291511055672419203316681683496472163927256751645708135142850328498481352540980751556678861252084617576486766716104110364885502686540495786781610312065787917689922179346455045322447413417860793139987420236386442373661243141338186471966227871325359996679125264503451205718988283516904071977475170849880966922487219736361746396766448398001961147712500891551509973383189131278582268082851380125680289844681486743832291724301468453788163091434365956525002115849203416849593691011666496162649168657675294621909336294547595079994789563334750734398047764057595670812417068492879865614851762282162756305524782298412157090737128557243930463356911294661326404469738741200441367458617529277003887563957987800090940780711938548582615882079163103239655130533813550771683364235160881802706513707930679698743497198829506889940035024515012936970110557623131690382837638571089580687611191444236684745247498534116780928331325522456878007937034538816997238794748043369238218668948684730483568353614612554155497970599915787053914754794314903966960980084986933399820951448075289797704408198013848417581742704437559114148871158990044452577017828722774384114677288085611264827499205694698140509568064298566449064298458718817765755350074975420112251563672529315391888853078652852287191388104303452496126690295801067296460964314571347049911451265200116458715872386795558284086838275881375972722412893838227705818621959818475508103643301019304973410827789661742167704914471506077309960821003115141240602461733123208261215063902945030291601928062676120352748866299892116574118865865495444862648941382233515285981870041676023721805787337685685661334905677927375636970826106030847240541487530603539972877223191569907262188677097587375004318627771524082799583755549498309754755274905878368067430930152389439095446238000937165110634790600492334574305408612626954315490404045351683071824546875567786711978829413250421050996964976307528143028547990251334952675653109519275935664820432612500532642726077391829584465352846291197882206044301113504889630366942408728155970233862752629076881224641100115154509854958697796720037770071034999820318619727452857544581882749843653892297730685573648944402885849882271163021504178665950936926787228138652599998844024490008264254446793939718897089263562819426999941406335586273019453948746259903734190921251306414255176957030080617032527943998762572691056765561141184128235292611408974069484022620439228337698785212234824623827493420016284664208169937247744187370580453974641509139289370589332185809078040085597814685130810516124348973269296221052794938801808876407450934047123416468141602340303744060612660341565992562232192982883600578688947013931731777584768846567479234174983914657168481319837644007188808450617896282220292184775039424009910413719595236266476735479236233262341766131070996977661256342090266025285720901920338504517204736859214779050668665092508245026805419912605404570582648526261329722717817622035236639882846060264986849625573435972988480125604423790152814006486380736882931051433900064049769831688533985724729766854663575814351211522552950129082915938901222797952119620161147891767172005912481985184250469071609822497077059230228382012469046824740152787575526262543277980035056469302403938534641444555956247252252814972066206329151159094627865791184225913948523207522824166092045078981486033258849729349087078442731973825454467070263840682208097416690722868439558919984242409411657631502687762654751625021445093696133192345400892408536039261901923033963319432621457189546555506936089006218730550006181888769173387390176859021640698649561574363048709135873853487146033342749998065468002355217912446768271024185775137982723514567932487064136367776787281371796747986773957310351368891930697496520941503457524994059065369313000816032876735329612607068748451406019787573437105320365342918067488951154471286671055890050069692062388749401795467031501672588105802408700986210356122917939712864048636383400013453247189780211359790004099626828327040910080744973312673653798307111881083457358568685772675160013892806924473828443336486436588496971059022739513129176235022705542714161422995883736708664801270107152035627810467329316180686702153018168173035465894416135204164643123881984959087165138728864148366232253625499724217826775502070280216319219202703142002898467763369702497663459578895667275548398090215469560417345555853398470881086115680083263949371382135920959101932239958337769061634095128402281595940016685459884990597773897192626622170500053506295453182487361891382461948626577770294126777370247778050830487118791023457999578487743925444352149425997945792875929649557399756265435895411205185307731496423001778826775336876685349838533719713413597482692229761321839266179038663291736903994478791836608271984289991039726649769606429078088232964821676253996505297027650365777914131557525522560692629084683295258441900604283871779001089367402538454973645612524978893923637392542490586412618556252104129340005806082725044132163944165014193885832133338430592195937673726276796562049171953113245732329816367368431358632125463646430772520379081745960943887181106752191684896699530409839005174992440695210644499856070064818031554535902125752028928120322979758621117269903910389207370580805683560445081690885540616233665945617048761383077402480098451535354887800745345656404296309018076383123828732628543675138499051591924590458936603700236495148325934874817293328517345958559750948778663500815343359733958312458579462654403252769003781022711434119933824034638443743583627252029178169751849464872692463125443776180664922637104835581116163264668559981971401022542486478713438221309007755484969596560703131035287738208090211249404765054010400497459054449496183137086934691144708778151459154561216146114396988176364814089792105600885872784709480063556111961079537966189681228703106423126393685540074837058138250157584001029815959842942036586532238593257103848399144156685310956947876667314984928992062953687664467840269748613976210566995682107235344206294952635074305101261633007833069903039930820140169504385360084583833265613817457340789544941748503770459261110742393337266458116012326793494047994875662622577501853145286020358959361893804172985534237477435831367055761730176421747104756650709372941972409027346863736390674421613103481108277859555641083478084396036695007302320670870673339608816329166839362853519918754999723925583055824122427512163745144719035488180524031308246309882961136579912024818630604000843858285762181931581996932394657108238661727772223168418088805268165706483458667160044743818283875211936195685798317390574732576018162389888688526754337542106960990660650602936289758116369326235725809811672109126548834261412904532740241548172843503108085211715129370586232502602488793737910549790965185951380930665339902165997089836827870094230954240151936339386267756323969380987960181898164377801748283759339588559452642937654272699082249088724928501806522381827136138429597687553370443564603787856995808075731723583423909672325904308730922241776814490526223082500652221641745215834102208034101557401322162825863748461350901118271747378809318959741805613849652722889058038587498146666419613344672649208441857901956825254634229317707899028020892182112067599485407278297508103306264245797710985336000831847668418802608829844868746134558850833470553295505007116639506542044996519036934827163095049224639970090417123124619317703665716388632293319291000449125918467029295892514294891426472816299843311831527733086527620905818262193079978505382422850684883484843042875129184660020590829179607799169131047304747653181424422620488539723377619291128836642334676818542693421832417900044749214930787159385086661776940211146895501092487516674295640071960651900056576491404781094359866174643964155124359714400371781404049799441307999529809448495953053772751590034816766610089212001860250440909980618008761549163724191746146180407428380391788510845604800144244637322795072076982452023032410172534945922763066125336306390660931106700148841408964747842097454624952936540047124847589283952801640667458926481186069184829890617419491403000185614890838457403399182178883593890649316535386509943246552559556682661671384157924406933567948038972358509205921108562348455497059719774334208023694587304067872521135811431722239959303914226540812683437824405086388901279450334086893193982510293697146323069372661408591024720080900490717160058727676275412053298203056920963473217309826438981855389572443275156905271708145753572277312393309110302669811689920361405238128689285825503646041668204247998738933345262571044252877014888409711539513518803376167306936043632153755120681055999329623855772786514688880713759613732852144649254761766458445309926722424333720805014161116118304919905103155704599529333964450109709772069060174057102356692214978943007440544920944665321517439429078641505553384612571300211424957601957990061343463041688843737206755604427807539549659322026404384863680951950551798621305022885895135396291822349092906574857282847373004212333370909433363476365198534594082857850235867712005440375151233958324708753114485268814547083499039486878530835631178324768053034203723256530486750004652274506447109337703364137376940944719437351601403191615210108869111694892724222887718118912436295374908437602074346687174088611197658934776759539550253931380529361217337331497354299226797141047394251688060272636437800062756114769383702087236563888218090579787551742043680687119578395877524836998003245612723478573780421366880931860776324232870514529053099131747786745348241299771346538717268952130623294220431641408359216764316020194478765468604606892936322187739535780275640986137505096751946578165152210756643019722161327773334368445141553862884456474812737367313874485019261080624947353191669108075393077427675507516807589334485167170661881422240645740143401712395936968027443292536564367832563016112855246832077629604001738889126107761837698133164773955710938258394407831488824736559071235006014246439244701455904447734738901136976588875434184116999874311876252234711252023392215879479260483149227976973644730651422141353254401193263441948052087422248826425785618570881989109189860398648966794787727010897094846449057447815559542860620434427457972407990740857796677070633453497239379094038022803511845100076795754559215700885594892489953085334525221206114544341196722960055427590508624277393001097015345282167243521255107200870476064203554900660963483213828749792714381196179254461324343258855735896747117267132595100238349327396692786380401558447080750350138067452457912554178283425439936587932429787279054045534338353424760551093599515359430637223052558078502731907368483475201609582471413432990049243829257890145758471189527156427546916198801466051945903111757690161224849496864377810633125068635528248116670846805679468905843030208175042076323888862242059678472544082139549510230290427141818555217699969602331061276495284696567618376233510434031354086270002645898077362690093268756303637075094592260712741701110165132450053075760277838760041215800845423526131289425915288772409713876027565770621288544621125095256505174453788893490045629219264314622469906857627374165718642837665334954706455290650427293461228012206349571209320298034100059354406890511941094662079532258824263307131287262850753489581525656111737765000005096004965192094769972623132041077632741038145391407588149374838165895162457617325727358646918805868556057947253029945721443977339245969732582942834725949909197419334153906642748214560911836960982374714020194507316125629743031218337306985149697392219425792898064824277102575196111525876345407920229365452322991828520760771080283154291857071350467162978071142234755953049592978289944790954338336258193970194536578271058923484459796207464936634952467397144040068242739302474026292252670304646921463645393102768330702405187551112878732587373230691721873253995980072423064702793414565217724335664463155549656404891354064424156928271903990807190078664274344815504971963304282636294180810576543229600360765332697948016370751434876531737435566334305365456636228779860622356751949061584605437885931628460529931195524033061271359610424106882402454231883219613055470217644358471211714187881009686888714192997310183721207353945648851160234785151733085588807517423806987747189524634239324239379810875301707125627890281296723417713353570186649930748549376863186878088956923078612867356209500985000584442174891063379225607653723859457470821091932241520977118143736542556859958435341954940746743076806141085620135229631203100222585646041542219631396651052839485561148157282575450882653695152030160477359756014737209177185545024445458582905042032025455310241402509154529750828046183379528774877717136722791706987081081001964314640904640314121102368555560259781427958665050279199088294658156592172461683604251753030474356785929746843415481793505422682790280225380004851988439645104137525839148052273553771512731681974470772832209088324010618423036568675478694737685988352148159653921296408808860078088262237929155922345944499082888206728779246266734775602596416452739317193738075402606121311723338193262522607230080014307593595048619807368436182634828128830091095726859774214530058224720964971102938857053313633212192493581077335949254735449594045442748473420926058485989239206164958628538879885812323061066764616534405165332846548133678824689957504344689352326245347387424334879638686567734162319011247095334463191775742040518548610435103577845727366321769987045592152464920223862298293711692493285258846667644710775035643817410632227841834420779223469905107071380719418566815187607204903072148358581834415781150797110157444523375228215475368861438651273247043257183621494590560951483135030212076232706989594678689091137820694252119980843930908571125862350562862168128816811625823326998705096928551733556003321431336242639541638035127973565474944995532587765202536244411451435356279930558527261771815664957929315187654445483338695144183588314269050460995924380051894742003509938200562592630830793473901897251309486485376398802297319006255921073676522921523061070004080725365420555745543722819267440166178965309301892217286352092596901764164505898192250673806915059075314184978547664162174680849327448297557630897632387191245725248887270655764348381210697293448953264294418209352282415553674681979625072150585787970039529738948838848100504015208728681349114795945647133075136785935691709895898545107885606024316840093447958977345382850342959293327887283984353693573630713465971297593077571382919679075881157582938927735011822356431871103076205048206754473594085474429514871294275903394212680584544055068192143532722562650761236947092876104671377101726129113983092930765006766433981361765731753503442473559053438272512446579558467350597029002267776593272507457367942759389459105707067920933981948805860981373894174069176540261257197150387106790442067170238638477621684832847436073976597695258920251235572478043102965144361679575200708755457298742771701660693770430607001057827462218387670980033545652613344011712824916339524816404081433568497394435437705716120506482499240211958917938085891852151125310380157951532603955346725511054608354647509531385237596488911581288834385045924011415287045262920927287901786282304477767077397342380973624990705512360693489350650707274608302760341055089403951739864966501947851584412269705032564384524259247953509444182330060068415928922980444389474421076631739638035319907813874113492590763050027020161126964786341486204466713964305224510409382769277367188271416901237034755825838769418863232715677958679846833584190764064176758486459958516447483755616624364251046373279151531721988782131576988698413726485696458824553185333894690737698344476415470117699567954967987082777364576207955415803731161185497567810455292858423511337567569773819363291645951703825389798618481988280221092532278072534008626780078761163755239437333323837836272307394725360896487838629664257664607321160583483617709634964935188606853345011230769203191612253583999634420840817197351527427615146127561397380771694663107541538531545966146641483227093672269902933828154268465169519744421259819418649610586620924610490016756825436656430806867962735499489612979665529157694119545848465555776103557339222879548893972756246742165939172866811837619402963702501961375127287149214884599574530212848752574143041276561162995263402552206952132265652738039578044600097641221952154236459222078474069757085157672827913279506311780509915958885465095865117827724676162786954953262667819110472766617818314152381330263813491093209175976073704036361529131206643621449928082331254911329642244134726112403461343002905193597486750373800224840485353880467642202917281917915942598896766310796231044337871175894068509111857945268750660295695585529994700560516150199398788135161219125812039083482280854965043876309869225157499722236766031080469054236524201556514468182307329736048399719406918234397848462065725750955302044275470867377813759256662992347705844216393622029302454116144222296342980451646043846974702435315852800781990207744863922418318118017484183643205225966862343951123422200497222615476797149168631467256844686806384556804560082827699316688974520690316682106514922253882650985236549101834851326138546138393292641941519327846139058270180155903199544726387770601724864977029444254452807078542060696315061811468169020151843831289359639677238462638043290240016659185121156290572162975717985322998694544110392121459173650368704604702882388633255030754259846344368529775022952143682627543769225978841552771200495432237567597105039710171657317053086338156429180237015468561211522220424725324003834451008773809448323187991371249239745481027605935403473187837474649771870095733663202542828060692265836691971842267103837568181699952497629516085914699895466063830641502645124646143105500815874255836741509258929413917138119350545917572373599302444915021777340223721208926215319144884018567973699185582605973987416824028722304104931593823349946471312553468754301531945734748224017044368422133373311215286689043721483485814856909671993716860782026721137375765521675376475208173904781109599301170070735716116653939225467652082778405730862228674778951865507585154451172530149820374686186946450916197384578978682451434362481970858338855159378277771960778179101450934233246798170168436459608914701603478440505061666425712429051529558737277072860173963571405049093765770087985174561227238028307560659861276446369129758910220363981269426441991500650513027968619125937986570906081679931343027000006930333546325340390291821172266196953547649256650407488033753777267551024486853350610172403150916835540404539072192930718318509095420265025879375516463458697752166929705541428184283180756843268976423510200444064349102004420309570230744257787312972285500330810813926206084225119483979877298193855924124393576255579955443249449575282731089713106972595655799710106956529375762735057471781303840260983699253436311801084051420910542296069628527851892274300245928564354510034947567084588826418493990849756545091133483669436116250482849828667888260427199765136442315694937860353604457995885099460796273739794593154755603232974280783231210740106948564364449978982003629043491425554937142300976292247277863443833967042071586627829363207235701844535592323258834723250690538712056360816067711415549049780812618344088700734789003140732097160798402072869834499335264403786361553233388071455797327948925008471562804591130821590625859207852853279312010300086627181847418183472893415569246545735030252116283384317318827681421514874022606432749530705692839293070166353645478331542253241762710614858726846755905708654340629749736532257674595252598563399022027514721839340635549315978688490565376420902277162340617215732241895581794743210328052971886069251714533935814096435699006763711444334497080790801822542396907156206717513989191223062084741180799030141923067081387202169706174037430203395450324325672300588438444921435496487597279948522507930631630068237845391578526134437493981267669825176197087397454633460633739017815963370257464135713291558772349035904941551404297511394879379719651212894955958391802073697668073585998683953451372156946691225313222436265131876975099410968315530284580237768741635642885409722308955689934864782614375097757822706271011171117365284846985400176661234895957091574295244737024720613147284474588719068796165163254866398798646595852243685389031478435570650166345493543731147448501639928656321637792196502625915140844342479814748604430841728676487525539782325958546251856598066678852499848465743632183676317541657139980118329258271001858000184179375229709188793528487929793219232624079830214005069070573632386186952079792583235365120141726957729397542590605782250676613685187750184821218672845860000718162927912600204399892682344717005933045291074695550669874092148814615411204861745711369785411588740022866980131654737032757703860205577532068610301338520810959880712874292193146917517424602812979994338729086039382782990551523492624714625462953495067113477064564610674892945186135443510291474597488307752190156278594691449344818957460508093204496045538855577849713756206680783158943003689460555676952778585392336265192101371557942283028734802043214642608323090725641936493640641855229265434065664340720673559729804518948263671048788533919891299083431695948605864033557081060557427947628004532898610893843302428143083450827496907713816758472446247488640441169644037440151069394271963993603758900087976850164028083415984933439420912353142182528092145453313698603895995716970630789277345284864051316008080167101223048515447827431028912219961818792146047365924055811264030558957404120178109600187856118114688308463414857404378321922970288225856277934202986454163469702880644155771397480033543386841146399844979062696502699495507616781931076119381848341374552241388992706443824209512761136704847880600901912269433279131143044269915546796116721389956571693863106205475273036917216713189422211018973742444740935132915468959130710821589698508000464547560432673018291304567323683715497240069460849829117594040448286411409576511978674831859084971928662918039584670228856923421951477879341468385120311138618600251716077333183357059936505097340833326715708458687943363578006095664575878013411661285365047069831691634107741433150755296845612780984888594385867461908234514392915346033916342084518160068525725218082556592531987129891329982236650709960114694008103205085043321409471811223647981868737445557936455202627715267850579997500165933118934393538856478323834609051851226857696492626891955150104267730397942247959284263166385415180178598607747834384768729681617659390374430918245124008688189541221981101737415786418501425010134932604293386283077418822390554258935656722846590087106482765494987905019195508224846636488375239227323539101227712872177610300096171192359000628808083114407520947978524438240062588855059428322741023303304046949904772138270676980045542833525439211984329862289602895846390783774322894351639003466156997374125514923956648229701610507849620869075068995562876252592395079827682382260113282554962643677487372973488099202782461356418257710949548628943257421212163209674041152132497657093195149677878701612805854398588427037613413320595416681282005232675960278350883784409691919077331719832889979398407650690302960357013666966972404343652626366549337394238258902585557621135772239776022617409163686373852422273508905280826587049673648276969200262156645399079749318343826475891059793979757298746610090869026743101167161963978187186891303430993335952858888735066454229843768767713263699522803477479192686677957991415284006765277207322747105065034579067715625539250004059575257089198677358131860292261443037940596565182588363674250339183261256117896293567474901117988126286270481688918178819920372282077564737169267784443000537584735169725593327541644442956450878163011859035369516146348245770470706826507592452192685106586623308115833887081833415859265217382262326215781613488648838289323864923136587598367290088670162949520544544101832856735757820260234886885272945118174809676897024681815668139175267229514150307318780782612560224024735267486035343619381060183087867018853311552426186251610182715906793888364829737338180899271660011059568048103745071568307193362124140215000059386955009648969928420450626114961134423026859078024908606076873409615606355421284777871440525080162107855034695469831553434749457750807918449543191369307883030768355940202049867328748475698161709919624443010604678572966148657694352891495408569460383084102396337849735162338502586585636182997434728994186353906625715403978946811409311183462587357337365716021634954321145767859025047918553768781458529043227261263092886192610073840560784365771060231172073684682967797711656926839067346076049388855007413321106850802777736890365542319834416444863312476039204409345639153835332065673900642334930059729834685115749589220936815006313955005961809310793616089065056113489226533378516454600660312191078617301772210212965234629799648006967195010204582614389443985898054075646691276694439712278965920605227511045010576251647888627411559142199610406826788854700497118580626380574476256759378553198753073370717074617028336554020762688944405725189395959805839164602005635482690095290196633838558441237691451324374003848001132157167773944799586179672456569810196722510678643104199645402808912095566601827312238779953384723306433353501104250835954361821967808078270788375706073104445278274553557872827686997145221598436288544437600748668184250862441925986974431060487790741061026935157506259425789764163606545939303831861895527184599176373547299889334041255053136980553319220344501330390326392235078115676334771337809712176956819653027189096980235755148145626034547014962793143691162367952419153372735187610621748771642112580029043792896562393621527047926023396106069083608064833202638477187117695661788069450726437685458627586000927694887835758233202875395414246211212442334607605364766980420416327015126085779361395446442160585271788435069262860639329944700876629020212582537924041413977797744624253880329222105601559630132160148514889791578001404518088060650761231258691268584180162543914001829184284742939966600718836575782877201382954888908109641442416804004222711253011900409327206036979235932499140753457199442935345472622699879469663973620474532186601882916266781340513720748937399955330205149075850410218008120383062733068356531420903381594878672089585315061913826346719047967183774174158687157850267293858137570990934402331644566785059255991527648108292458637515949361831233145646295760869958808566810165950455242727696399019811736875384114948124381739057825717244825305219191033433459988183313636369859035129066373826564343712156941953508590232814884932019252994581756691121829636985392154863552882605342153519988032154266895868131234801911969480117612193261296288664783878344181182507238527004370820447428995004738602075767577805697681890699025989954639672729395746988245887478692506175532437154031665002095437167275327544254001844970288239999421327290077078045398481270396964975684518180234149162257430963717600151039394046021525589279072422284713057066110073766877802527013058157522072123272446279493803763843852377383195060124603139423019331014362129811067488756968916921995745666076311287523341014495038554897403587288624970328569979657805738348080669308392611024892396539851379172678737089949605590846402201644083173602169256257479178309790977755432924275381430896155128135418748728175401857134294405749383822309563896666991882039372553312560079360391511148842370069389057107552968291084553831789563824618858020763892398334910482600508669356704506094117979040755342929921807608102060303877511987712237518504720132119606197890180592688904784458691145829211624858920456777884695655849039768333963549810057396744975119098269207623014780501379081791603912521658227115458696462363021580658795020383914747138429923538320602065102700935534363280929940129503771666924407100250453211275292023812440258432793173952582264907745184528374263811282723267125287600982491558024554638899356680284067739197513187285430085778095571740421901969203546590812276651586266246799640028729248130197201003643212440711391096132540682632420938218509579270882352575728975124235732389061285584668605243833998041851558047390168033089441872777610359460915887137426009120630078054888064670976912451916444319851605975470649241477950740383745946341089736783981658198390411568448667448880254877663410460091316326993518989325733765780417117278308249723433367597636576398968804647363766065960670260492225735869269734553615320695898903951470077200917785897631021622227117040072202612157572290773933763454514015597042090022220273925807803579768097426657348344592491192977361323784778007157234959606775063990037211559224784988694073429090649787941033922498577125681556452078470698991892268838155531510550895135030616970177232822808811420340518744468600942125575412869638390350541964134666329008971081134874503318457695334249764099836792465251692389089737446560718565985224010014416756630888124907685013090138488519724431764964946712425743080976184334450844788878917195195484533825998839081061068852108499942222412550661706684388417447307581303194579689786511717066337261217674726559806750425961767395124366105145892939357205702850548976530182350271992658961620606950290623746142954167571941912059582494182513095268863586654007759225348880518339091782932371944696797570175651397120497347414289196862462827514016044114453358249313191356603193145354895169265560696774537058186565209021778389255844007991560950641310705888533836445551543665171406146522848104051310379575160454427071604781289157281832730456494431959482978091281052601131035589361026452434358770588493107737484711489724268443611448106066189632997194003400102641329825094404839868967790470994724279401396910839490933950144599321531522638793129486516443101998323272244458989676245285869103446949535966416208385654962841497446689535867064406817055870070575943447748628286353972539378656582359775873198989116514251574013681931596965749935684393732212086269702018335315674734217300008087870920558281357655294548622454377091845623303709538551662275850341629684985586339437054509777616795443887063195587355055556371751456055847378929711739529879267805985886029342717828084734461840275442142110316570754144427622090596785955024415060711522401415838557874610751766272498393157889805766091986546186893556305323926651286384114190272020496111427051853095577738118343923752835155258760309145405405329990989107654675550269168678196321015666184081611908016932305096185646805421872372830429857961148273696891102284413149202336051309210916205871093924870076040855343409937391623855585762880895503592426570180689763500119285205321857631617284435128493768981203322010809927777216745443934087603848982254074844632143888537021524717251981242321863511150023389035920975694839253375675548683203093194262427911398576048334174901288265143778275227932439084874044747167342257592354882923418456225716338453675116964125010909744230337713299588911001501945176817102465611433208355466187451695823861476203065042935060965145762726782335783212826705198684066465511945707815465421316416706507326216106907771413917965323954651488577945473276248835477007640585434387653213086351729703724316478992808869840759787627715817039132381713672683144303447506109334743116429553466273187141835241979537716394536467272613650093746592304897163971744438830380567697397055359668513074193848771119507167970017990530052924414223797497505747699507441712130178907826624055912030917509988221340236124562252442411374040242841419632840395064600708809487620288795644970654289690313665774969128673411314408547011041539543936139990742602938705394549897267887474736183647320567641003948713340873328569762385536499844276113904208857534761922837603245539159707491980848288743728905502579128752235578798402015827043386090166749473092192506147040256220117755682208056756622990577507294625895605350992291050340312695383621634501672508177468519088676322451965094587984619893179793812070575689731183792732986868172637291384682370750429650560409672073176134804749092183987443224827687770701077865598589313399304670218129841188858501166916522008485473991618910881455291622221218277253309920450475671221443046006105502317119761599726647318696043549111914994417953169952854666681033923455163134682620934655182824235825185834040973575587994075261268692209966275499718487044053004314741391451759061691955414991711107676241741388348436620463084013255263897551264224796053708605478674393567361000929115589704895226195069915088827691813003428694732846383836545673036767493046295247960315469128901809842210201197363847547520403284752323521041900611531434198351991296875728656821279179453571447205480767724094760787305716857809455634023446967881378326644507320468276940570452849294155120074410353781245271326015906595812468150224919279773946339467968293077714072606010065238572919701351967232233964287123142982924735657196218641525364993899736293829335586611189049632160759900245989838974034396846341493985757893027796129281097224150722679345848862104353165847031353445685676262472605731618631846135965575534539896856396586962471166399597771399553221941926114588581021939204840227179022719298739007921517556883895049316463849317721128652845126927216228622604743327346673783611372531416638028906324160496214109768685051858809523673039776149891809368734928228786243826882824154611336820658544036546030422272245493027040095396573073034111004560365188382785076998458574646790624621803496130265169437982493154500169998836035944591960878175389365330605684189093483419010876197772342798634311388546603020018293542364953661698601807111329267210668037462397103254712081711551875267945244353874344469605429460726263317645787511209890316429679754524273356123719747002098585154462675890108614743526762581610849445395027793988574964104094667531555641214190142553126174816876319308363732921844637610270811701652119206977289075526942478961316912516264939249210837327101752424596787320518303230589866084035166531358901862853248773715569357415644291814673100250703253676878493525576582769345489132280507260160548187073349276774697026437855400464269492911473930033055357072983840119130739152363353930849568187590678762463528506335114941111165579239776930509836847451225919659124242431135184993715348732215487151985345475038330447720733575074123691585910628190911153592311192582188186536763681250159913146323094669471377447313915289111362240521600125611455138511812882894383609561010745284375405174781120380280270825240070978557259786723404168174271480134663275991165509347464147023896020696371511182811086243273269748704434569318828641389701345080473039856927195588972767503529539518557642121818967315998088466910711871889810478158231939879462832869157682335625801670915504998423975609035780217611463453357059556346555790447590878568254312808028862559030106682416580501378474695340495787780898708681499852894843456883103844538468164812219403199444654945103339273884701781779676299483668849420671742737082318941716637503467105790530867154528241589474644265205821480511137058137465760716084137128736662408140979780043386507208199937929953040400136986979894524188430835950529439670586482122075639221649477143615943374767820224698994735950558126954832019133465498101901369981739193652720577326224599961638533799350498364148913780557289831138654273887372094109355356300858957784609889184634163481372856532029447105897477102674186274676576554550837794881232151730601818582860720579097872287976228056233189896564815186222222562914209700829856444215361973330241805763733780536817996896308724275702615049317634214023199888678917290606816226742907842638287830835994883789251491209006656779359753371673107743809926117547097226308234562748714074268888023996033993287835758085427607490498567205080869835905790740465030349234717184110581235988362704006185934019725999032858944704192421229594400957964680130444848346892116379260814055289154876724512665157448329951733668902402590621863863132972598730271407635545693100049155150626448371944286875959989897361214750984424924052320481350618066674317329599453029047246866086575846009929771324317847360568065972502089465108865941300583950718220787673599866486485703417485142823987383249235197571103430632983496530232307992848423543896299076964471481507031003919436607153732754406974646843250728788950890944339101767341735047656428056335446220492397881925091562269114379630228369389348275686131912650757138473297341414262898891465211467100387680640634868841809731316696220851020851035738495853924271396234541336800288275681695924473425062491430513262354878191475160143472881867188861415913221073010299697281651500745384110913456572748416923154733054097145952720833002101981548164312849335071264177969455723668424636367239998370553460892150057011014545638420376817800573370522955700932886588088233201652594485342875858025203645823430025615681127778570736525290186244470106462382232501976296093941483001295020668461236077271231381215655842521863510814710699079160630326773956033266995429254723359223246606696330280976622025428958148264856565605760236482400745702202620781298422020273158409969350825367184103548955714129403444199848255135842185093078907726614477419702315538120602556401829854321558187169896321582774883603648527093458232777370403604848134743675990026260760133277088250004024761420795840192919455890290795055148089092910334059575690598128761965146404548249130613825247292052511500785178156182977084013096603768408235846274109421722439927321360675473267469249063116749484868580049786287808388591290526553849925050969573885595075892153875151688476875570835906563595784037769539320900382475523091480799772711708677149038716039505722213122594329658417640406351434865868386926069704854614518730375707663392207982900689585479690995512199714200704183816753877321294318472642919752068239151392271943271312213087381351466691871831574907745378256226879211046376225089545536766967715025310865207719834054555995775751205158225741468394807467171059681700823322849455733551777851545111412141553184776812928081943834090970745951779086245310021689545947147917967057419597217649945736953798340246927146471165532908207238383025612609162014861603000447002390148619526549426530661641747291332873528077745378985403656916659859605707050537256959274592049608926370915986581163758641310343570234170858228043263939076867226712290446601424117257982534742791097447160123607106597677523259615551171802209522749351187160616555364235459209812244920040774988708220869663069055738553092954224898181735441103914560438021511203084874835293232339167816893378249570580246505685542172387256218394352134485129736181637721284487070109778409660684562134717202160278365919531629146610217371434227175260395769890820464268497208069191558389861874728469231755454152006261643967178056586698410702075236755700368608894361417326256757180894314818711492078377787674604618216503894319133119903831389888378135379219695348824989643819458860831384907042407723979376937787308044790732464190403408629135291887205094170564615246227541732889636755661370548861508189926713198456032669458835877411008434200819276340809190052828738405579200421683900121797809473163896999464386195191448256828893348568017362153998884453397001486127360105120177821323701039948289514468065768233213170560542177508096895555538811243851834578926853096708286183793099271287610316287094242643497326125131791803528745630902754112418437636493481169615138606838684703771910419424780242592125048560461911003505109201695402348895359997786087274107442354990116817023994471214238370108493253417017681627411528255248019398710241433818638651069692746253952826943648429136162125542053458328927857764730969033479771130902832775009080103521696544910603245023974563890946029689450825777354486907495589267282122414429337902480887284502553648813881366844199814029196904892336545027146022698417654740169473561668029979563813500030921368301201812879737918701241333132703500654665006823830582753775232818730943631045785821799141043532611126017335571705924307826657920127406024860807536193705895649428626631967685804476977832235125439332210446372302955189788842750944121475802180920862917947171261222392555880813746569954060097284100164511896040655892858818905384008968953317004958001882665221694146572767326389861496740725244990806490280554544864806990024499476800778878037790897159796346386503496557277499096147143234758284840502772279162662365476942006771647603943659745591849384683792599200228341732120340220661698003534455994976176839491286353242850466055663095298075044203945952967173534006929419666648257289111063065884676321503399805032755701477277803929134094000037664602435842800832535734831040832330306287566541671368885354041826943016340219406728335462737592978182024207839468700331587846570788452667196548821052996001422695233059886630007774689544884472454285157604052958549029101136969052121594008433631488095106971136308886166358964375239924103724603969190765603681651043328242403109252886576058459926211105177716033657088040027222282728409458461099135304597549682581911979621336275217123816430974221600103934161132870253185825139390304887603600073775237448648357520301507583527193445071135273071462595663326949196009583330974889191005440594509759801541658853424949090398581639687261371956689429273413447499680693080442274539127435453559034642180644568161374435334675987142644873188177246096058623796125697454731476963608111204120434982862023679898139093531838350282643763967751096567928009970750420035563282602354250427214980383164732781468374441729170252285190884644350625499627578636090075187132065658379306493901027907012815334440734084292584622515298659173309211351378139490154980820137234239245413735796857073135869867750674615715788226782087943145099932069234789324574614674670313360621864357564409360081273963395958383152675484074066364665312567229279213854860327316260114378455529213404334481509132556071463482407123518327009011627850913327598955546399171686588542922677087469343784890527621188855366185062188760306941600306524520155448472018585588700763650809830509305122372843908967002274298298281132154777443938452068862326190937356260279409245426632206427230981879802814175988355029120512968437939970449043067623515653227177878457207845878469317772473685747593363806301448699036448923754476976340388693626148040564444587253920060241195211545258160334082439654160585854145472475283058211715161071570610183481506432048237669157212422522984677366394405230889817151286175150284710242162223820543816186202882772655182107698746418217748025268946246115248272734629003143135756536072296482964791453868514755804848911405549498365713883493710417693287086321192027295545356512898768754667471242797505967850064344453729300384019836716360316855139025507638416988712906736677023804120010740653376821748081132701052473507847359878075053185537948158048922886978606569993625744263385238976834050375256914279976442290174679934155280326785288875377897927427591964560000851150473064692298050831730195937693908856967482393318886487258974494512107858675344428868365567424363844098850382406515850920738506212410893602062489600047894940810791375268440037488354634803884578787759910181518747031405062590209251664902443126629849664217265145369620784398427224583390822454632936927536137852066011835430142061527061166089340967944894561718528324014146642951071916298277456593018303717776432306540152600146981373251210135960928732326913091541821835614521739221800912260409892070888498736743810845003906893409340582662458147978617294206449787852373076295927783058428365164545199003357414033475009907936230681044777944711715641420725005887719820764895471196649748605701052227651246546001114376834531158773732377323678790983556672722074191496868122152194845013872700466193147592002530664148446644772190825594709530483486452022074394116209968087076788313682911306678822010718736083900066005818907682891409998844839683958624117449532515320327299041659161513485259598114352654330541760230036154385113559894324865537882677482462270177286485872990538085756648597856379536199944662876871530142514416892818633723239937667116399258530719680249043508099693323126671429599369219915139312606465213561398033238617737400153388996953615959399391841615106872670604334661100305049490426179075485224912533836081597295292218742670491552798937943268653402959442406427899424974057783864966114375587102497661824668751897118818233074695749273913425987813459377934069195941948342470084847041324642975762295870614772059206817780989718714152296240330633486935117152049069426521182900242686207453830347344785770319062208899903253209081073895285516149601898683451343492097772136960368242453952826168726227244805658719690640486396572516402737304625847952643412322896399431718171079225633051402175938707347840640858873184162575510814951430269507563357106507847093803178370670108362868969880749028115267335198161860131614283738213267029832118264452970424165619127542667148501629601267877392110726073496108502456948425724976105129812946973446230822136758538972042782450412060104431441434082305052433026422342132013932974959564715133178625925391616067935916208667324779313234089916820144783018263570775359009834282499612798439065314462008705776564792844364145481388160120647880998727491490908583303055317692289786720392984012646347347223271531493410488369836466756510746841900415619203576393810611070677471428344170339205060255473344954647927689104897602048456442343819799675481978683339386162102225330999020000519520765447114860043522961583265355942073974074201249506823730775617375061951942856668823668441586411183854067898506957220401540995940082014054187601625267632756050445640955533628028689348154760846213448774942570932861958063045770830283523431569794378166870815759728133894659481174360001975132237292191488784494555404566158880240077419829328736209804977003840968033189768474093046087823745507764802407554330752522284778175924982486560540540955728238845395143506270894546983830172658708682375666752680572289573592047343949705766871299048848315695010058007007268095377116872250648557749870929531879282552913513185594501837304236464377330989694344670835598484886164501209500318980692576045805413275299334442711230419536899455519723850950800466343448204399553512870639789324442596283874977077252801800448562140927917436123697983426327438616173086250779137767077364478663480420253818047788058315017107200255552651646590729143863434133319420106399138476048195676376047673390828095070879117863286465308243793014378693633690884530440836180947788002467245253242557245152259512970973418866315468195257213340153048971089576446610612011759421868066995043084164478564738304681159819934705277881489320836181433549824088068315181378805855067106235744293490248806067647461947900147903805458182759176257289365576319609740648138808106850086281611672612682412576707540508941692621297447938359651994758145031347115413582661352900865696817249366738789893939447434920854561226765887888560580235060399680584980668199386537643049880923350169276037486930397516173717729034979311184664147776635145656016731838649650274773058963269767350299137692940921172833880629765147524493890545907659447146136803173632702834001819243205244654700736049432842225103846426230563947947744572084987631374085895615159023297472905389405180289993729054458684157599629154999694045381812241943296916596318915084004644811991953611449910194887289352620140258297343079864044784681714545732116728157012248317461727927879464130228783728560308294548892579155660911262638917397957810387580684248756575924282924418630691204435708332144848508527663134317730334132473660195801293165105119785571368169708322120718794065981935847387854173228627719174733942085265292209399579369693386922508722443350435425778711124148434607495464122135531401408014154512158282818816054118876886612554463754709770663762668388014592785593739752231882338287178131030196694695883008512519266448122428447446778528032428643588692780957742095204181094758656849593726762907105700194545635874929494498235284143758336173991909419872767856750110115570429169604940537076350492985296785754611098546912830085155672354423918525190389745714057312570164242483229186963668134672842788457852775870025233466306341523179136163154481785379078302239474879350835856863640503709170050901654612121231625373831389785301240710543151570340534595157470169386813573021617968292770409727235471757310274416679003223121430237443144771186632795827512264075908398420487688531222942271341071695623287203130991295515105319437394297762360137112117293214164769358540223066337733076208793834367787836911387803296123605458965795888145048092128431930803061933517433621098870852038096780059754482394738806515849332854988006595953405627438729249663118977806266006392007310277119498001429209147269792488773663880684640511261600377077757447777834968489977173716285685954068329090364522527654776572302896083501986845861342421835878155731897766152369632721824508365597893438174198744434725864233829043952523665840170720949203787464534769670064335036726781534741249258338389602186067832182172117717422023699377032200532318832276513189424201070509159260563949841118669828851932031118659720763277013199733048730507148202239291813216723825762334236915888706755693574650091006503277552111941114402683088653379391317620729178369668279652235014332534553761407916234850105849490809554063818410782026507358122283677169751822737743737571829819041991914491279284655638072763463632205735161546350017024229435037891110635761493028481880629280288619880771832754680473837081179791766692885329145543739547955416088847877524457171824753816553030251079194875464111479301621171377429411801686351100834406294921700175032518100599810301092882922668203757008242897709944721703778341328128444127223981108957976759248494824633191893021470450539625069837695093822026191854089069764108626591510023525591946076727133584667130027856086505382331345097991087985652733204818332910761228876967091801261296259627330896758464801386318859858758853567589182156227288441738811457919641118550394509366310737173631224678115115061842523269776258205712980145508353131409736889981359945393767880203319423984808908049783364308376614493951456927246357431772006884839550356410072846756839387250927957845915772151104951425377320869946647943419248271312367169228976424544086782876792266093510203499990563611859085493497140025110892285892599360002842101810999001304970580938857074296005598541913175116738823420830181927881083034954740494924258540591810883668831505775421730994092520641053510874783895477059852086739518671052832725583127121933161225407053836187441624945901211733398841426290046427169345057926724098266509381784899163192971213261156086704745734679475742738676438074095553928813198992221369510059708221678372377085697981928717642862771025444727535276955044259194728692383203938916093710554379205455408039100350693187781926312370781668028610093555270632561400933886209823109279605414367524836954763579436065084029667477542372363615457543781991912978373297401739383479715138348532668634567177623993798348621428614953859439117479646654419441319459099904999248035845402575078607116875351306600197664680107725973028239088134557813288274769553226277213871420083274386237467801383382402771286450238153606285364785684308282275413024257413807220873799635245872005657670987130107547993179897908880864231731375743212081770674655166864800021442277968944671651287633524140053289651701878126263141164843985826174845183092481922602213360040980106904215416094834026598760931710030690793431255961461211856292540733282476456500878554815510021442328032377534798555595204010853215273795831674813243432057756591926723348881918950204541276373806612215086359042881048768295127621961883708098810676136708790870086454964540320648032494427444331793626086054323626047480134029676351603410118383515074609555573793235856652219588012625084057057333769967083757812239696059164263654072604296615811132508303912940442363992652998524565733124804473021371903192049130080027106384815064610194319783788273455188525811816850952339084047724493826081458229386880149841865334584366933066944155603974382237045588663201839875390730805614414048818541857286697834500451097780177479458473773605422233838414520782478882334364564052347736832427209950467484993765313305389871919122307500938617690435595506424205704468729026582212056871871844576848222645620641469592657680740252730065725837762982182500293700116468696727495751121059691386247249569607607314909771887944987137988130115466553197569166397937680618002685933341340022216298121428555882979529913455740985096780050927098637698450278177581780296074045046051788921771057732425591729214850039407312385287353976531975219736024704872408798655727897737923102553388661391423760193663610380978960730302329374247996146656302467467769976622637927867636607647999795667600355520289567628024626046679803670224031778831413024121858293011912498148349180312709879215888979961413409107085498662591592253556057964569806626285359129799549327287856445535532323275570363556391198055736913197773551810323302709459756102032994264786235978162538819328554218331545333472207276811479841377863319067179860702878020712263275603836241291219697102473048965848059818236256983407921772020765122348580211544676717368167215473463512181140720391753112761898646741845340423358728764449407279140518484546703134618543856641857396281270904591506351311861593745476857997576903707517196468519269467169796318315765915473625342569685236973771616757315951393605955800182114310978180441933793648892763999699113200777250505763540405177886397182563420263926499698630605950869558391531342040323581586138206287029298518606282981348202799622359338258390828091973863421979543127463200056297013873496610041742387235045741172517187172159142987765900857665639464800934146232218440123711908400826653091880467623993699350446866216952666487641529891336613305201307595906703621500845034043024111463361270040054707937137782776438582548817072219318692928447889482182883458852490780853554904027825321620834300464603900173935089204115415378822820622459415133268749023228935752400610264006495901370190454383441911395108745521773919744885218603223175743708076353793184552672858435242156180592755050550037107712835981975181957848652146284112893478612279190945214399700672237104722581335998053519539560984030263775987318411494846834264453948789123698547669938474681816761335561264925043377567845945055141041606917579015250279628239496970169504741634246324442565607343303802448675767919793820399361629077571693710392341245649323445816188301058871992039191806987344115832847762850480032167165286213430405309486387294230715683407751626572623377686042577442287274065044044039832046468893710784157749047824205733711556590640123743718567858430278001815400757904619197928177862334553089457675029703327396733567532967726174350308242299373802178014279496026940787490810439712208264489143297239645864282904111067465357183946309229201154196097816080446025325764093510793305369181651168055882218712190997078167600142526330726609870868806153746013825453989407368735606067704525978424461729236560055614430869890494186408771895100577488714170371399619333546217620830440535929204640358423841708153778108207746392435860198121346565945025935643209734747522393793716614325644639147474857119764533992238627971893325894926401754878792138172130361978745069349080303141942143043381586888272437027592321436080715397876957500290137456825646506726570588669637577438301280234819313489871536200864921787706358690477223546977287246845136121473076810499196287846348566746960646492741529043273139307220076159083462292048406040306402802218934038900118733593226728689352092832389701048347186769774989591296139160860147526107011757537475835758677855155752739397746730601634289790636980256568619537432502631837257069986956756327876247321765566895065670225122031134029393850703395393170188044102713588122334348596305705491455111251833853802305623701191549601921904113920956603125862805185910250304393842841098992580660345365059617584885992953663254258114995162073219590528559167749191006140114040386682625135806269032434021661247162824137171753330381390565140272181715845285117986768755449182321252479255285644161538030362136133894349194541442678825962829865172484458517644606229393498644920419724769241670586411727483551927174878073303239114501195379197059636524944205402152323329166485874258922952999427556721870797123948611352734715237986417432347364729353445659242884534778417517145379748879937968468600526004838876620728627576592924139661669935722076121116651002823299699682320407866211289283589326567492685744501096871041522650028255906542545541285583627244206780769178997822462814008633567336689681763015638917619351050240561930356074280812010783115024430004150519917148514724029208976135221690965964927993665453374161839562365051478012171361485908747775147146085314649866029737211565854105525104477880321498285370745109138982887522771221329739372896290410516337454206972848128563508290764114463643396257435554259622175764248919207257506912162810834909632698597373768950078156080487807942559692352004000368714603582005977703066797702666500331846128893316712833856162333786288877061493265026089125550375949405449112473449866525085024403628689334055104751414827809358463562226313783404990883552916535242371429631453197267639978402528310501249299175502007008217226706372620324416831568790402270938527952966482136916625949480161216831674765128201518392066625326030836918973978685683335398044167670892006218148404044979907115165874909240879966612152454865607306927863916065404930714462642867974117676629412898622131193014780988274216362665842207004165734666340762737835583469925258319506867055267964149145758686693999694662965242532831104360333279027344008519666777737984466919348724329306807544555321881507416103261238154548953144394617159718911402220792398040109013377103201517662176725110927100840401776454626971641681070639185156802397661206807411532424086379628207585441116474707999983800096469358528369627820716303925967807403139886979233731632959418528371197837623169276274946541185720873007767615029292709855342644015760969312074083551159689708770439984598681012906925400103955825977313008486251366044572962382050634378533009210949099416091087236538464468744046477011145837398339699789128952714604300656757270960753933634123386801283659472248934454839552627928254597289811580185006111705897790191699304329796557664929928721937142708876313023778788275851798489131089011393047031395248319513732021565383368809449057406029811822201210744643151183010742818720940726978224496488817949497887671398016323721478254319823426350400075200123665033203376583387505303759913101165638714003226358781201889003929104957958174018176129193258981001691128439805103144412223439836236615654272947856326190540572678883910617534668540498555766127624736059162890108949433595334110373705122506895078157342906397662432511519243922516415356211631703838040043092296994259673644057410383194903428997479905150901120839886092089748572236867948482054460061546883237227410913055085999060065669247819807877371873379889274750070427255987386679007456566638068295288103562852585025601726439750913083049915767357682589983947092553543728257536036113745453646087059863781991950976656364555991801846748525706350388451901395315655344615715152511603353569060156471533645909250214687936756492214019848420502509420829380173295420215791940134048179473081102788170276801646656647094789169982284545039105865958422138463124706666104376500652155344396526829300382617741965645852336796444555417280721909778635912245518378520651511827991568320016352245755193958095963754234914526549052131637204229057798414922388846158306465426221842788427688052489527436851424482507421073998840931245352394704428020582304172362476040239461419991107081185281814782509051390617995017284341893769952922745799644178383478672431351525219220709547889970647894096393850970348201773643854729608195871648306808456079917024455216324278670529797646325433538385782610333694754469090731757773812787678953642143759182467460703665937219789918107634626759623526790273315586891511656901710072158842851125092461135253298504657525179936340254644053493843449943995224234885107854516960435709857456847916038490711138044326496708979086876279685884047692169472896651449719499813042046517081671004145497428635687196492061896236187135333542767197656552835961996004774012009795635609536778024538946509742785457713066549566838876832562031780621727254523196139658699763225011018975882716134222428113363775289660946741954183187489379460922713533066213551687570351158996907764900151437057213314559178009961529800461019763865198625055991486427190847714064612641146050523315023868159318000397437212908456289051754940872621876925453343444833159271708932556929486913046071003913622213808741809697191597313749449536451370659810958997590907678520572419201158346278291348944300089714381541654756081017338727893498557526828873015720194613944450739192983236497868204965697995276635832503420925873765165009488837486109394617050924596386647380641734641589299384430783298428109867886875059189790466910351776300314877590684894654363923248384809219786681508611578433206461080091874760327385406481241157625251951345968400425269193285213396396944731335716095894741917452717232267858200182191211139963133208279245340671899510716911334062174395194379582785603362902428122180669177727442710844928217043727395504938398193028090920858227250469998483825359702425855906865637531407795747840854441940688938848034177248673954784591286825162392393715964950169756620271171405144981833186775334510702686856836460758315253508764418920733073801467977102692927491435963725860802863812409694096539112256273902030554958826365601841225116481686756082425805069580489272905751987816509428018845834834788173236925237198741391297904868510120464953404973754036537990841137243362125949373932359996622367739476115548827641601684017699533889655608113392510162560854382996074958652828377969015681679871037471491380764035915567229235026975539465772270628898993957919810145923500766931752109862815666868258547405459130126739822036810058563092131070948906242069358331929416302418589641884384316694613046654458045149684045812530854241865679727962971446309476951557114464289372338439478761091804900587451960167278420140934679892405486717364479599165434208538733181963635782154908679565171151981271807225039414777681000691550682057513324960607636850151011309738908286617100503984579973474967534814873706448705170143013945942447093959544053230258101706816073253352977764467350812163870003681534286835464647926844046980244500074823763572159951745507690057439443858014120970734418863135076898237224052075526362807205687319500823541900453758371882806538857330405711466982351991479530960136282956461386985685758106410184727945672724486411530722199824739999255849443853685315092822309125318979163370083593165250667038212472967235305013502615519289865790336519066804610585703811997026328447364680884977637154573121101220631770562255669459912597001471370686643997121695605155986856170674014247175439125448489997070323175333570363365263071154920218601186632873955976253316984960223478037024787772563749414290308831458545835152957463334015285872887761984959361805837242650670819229860600348483933790294381805148921152573965482121395598389300165318538118494680369980649524676597063114242827326182709995841831135369218134550011869550104262878109442458202030210731511331972994853050964640871481188919603870296247894055614778099214867406071029263762107765875983469814830271600889050537930880667307884523069187552072312947976312791939768888905892634175373549701010557679284205925236793224298956480552123919685180771858684471756114164542017023405627421244764712015382061853557781592666266019529019074436997708493723333819807711820990304621828973870994648806245659121865552184036756488185463924865061567479779843759239509631600817265353345240715807731230111123821568272121826388358887004136762260441493574887712589287804832897534787076572474787244504589800264697608650402207426017133996976963558535733523384556814863631469204629751891763154979795688374932994160486341802874792385088115605227424477101301854301706635285166285830923818472193277556123485493454257343195006115707258079726088690555057469597612654086894423635037555164662234115585692510608773672428900255714550190057858878660448955956322463523391751206519087707701044201975981566903602768550813265319180268814830950846353595340122696767709168505898537356381670849740506656706740460805413847003191582935412462329808281241239091510941746278866281560952563365825624255807732979512784003605377123242241119184062401653253193282135474946170312754409594668181019217892912665470860428320440890482083672396368432783874755475554003019107746293878251072596559079246125606310602198177424818318811017154942884672022842368623312414792224514838456865185450062399906598308528755932972064410736288784157575136249462021262781092452285015091232758795912108879406776566345530837573261258632540178447165916241895808584248007582601497091049554239776333450738387114768006051992865724353842987587637184670535102329442377424250488637919396641851138086352981729930319399146633157376586932836870734808441746211786148083668667310252739502650993016271973094835526924438686808291431552140533922470141884198896473784713226937664812531703801832523793466993708956420564540460697016387191035974060612230909898247044200778023114987698986752162557360472790448121603029327025778328311068180555650344056487169061140248030510555352275912965821751914875296260473569168659724830177343814366247203119343127622852627191771823852160553292324781332981375926571361885305197402732478805593635496922305208187163521345870019834796013442689991081782987541990372356777979340705818181566001876076774700522993338619019933028615278342660579585462458346479229339259610375348643979993066581461704927829540250038198162953379369722687663041402938820927905991088785408121492175902530873742634706988809976297658399169035399156718860482016361236420811037630470459782535644382287343274306792304658205391286647686607428564465296369701775464405495323101342131065809938693351116128552480120001922796478550471914797242147325104593931440519482130545678564970000243995225992352675820114952486267993935245515844609993858624173479387138672359662670344298877582237325882517970135016433124894854922505047413533121611860425977436399407468479547167878479788641199461371310171992505235726751924638294088202196799800340492536965441795167692046651862450022113753608228054802476387249866557386928811774258960108920073130051117331324654311863583697969437245552910831422193357050946743460564949073827885486668435482790977359238793647551017877639787528949736792641135307553855296936653873882986153362445626317189903984797699721108910811784389121057241404957711564763568122039582366252810997603575895916874594785844039878278613597016841643449420199819214561214047035266803764842404192006887763733174695142430775529203627122967614125186208277894403359702958150588259599167702240107440334616863784608126924456271093495157086000641828061529021761061633357295694488703270894544534565207919200435242089937931706728307262971219794920410103891901203913373477380947235793368675568711584835924999125137836694550035149441319542302325342768658958605806446833535941971272986569795302425449129452235847088174603408113990950824934380676868093694812999889956725700455019510552648616175671874533998651780409135424042055742953913669231199521096009709364377225638610217672425196549903152678077345920748076975981277207557776663545005780431624661372602944358343247909657252292573053681255263634711787071251691127097943151966310554962079692062602595320993501658886752916710164940495977457777251583843222206588508939986485300264781887859506584648384737222393662294425245611495281986038995537222910617063436643229578617660325802591494178455807677358351805800307370170242581530150217772690189240572903830455553511784625793280744255814498550113233507448004989999892748081033843985287822925519231938915156765021952590429234297840097225598349209044708803842292205841309678567254005361487021408487697550347692390969707543842840103984883129776658274833864437556758597701306188375165060586031329571518400895600288609689365491544438011356015632966961407646696185055479872332373789074988117864447006160172609312740268693133063226970751933719992824165001446103305602930552833878807951509013802608040111977674343142416688094588246993785282152517441559578069517427621277377229646692268657297819737296588946560792018477391753721907752899497430666450722995227252111334791865779029633761170748281015479429355223519805861983518247983380873700685141456268582993621458917795644628108115662434915166110061468722093748598976115571268809727864437660558868258640892533482135638544220349892492242559376555409567578899650820716321253653023729416084039952185265785331480471520041502486347837169172597700910677433867045826566911470844311519429165382108517187396076216574220736013894511676211882306706141705501640301170701891257392858219365389874298563051735562802543014689695746300917196134772587443138504202772213708668108709997306924232114144951873508724516992312685527544743944407385388698944563342073917165279046076760359368189994211964061693742820793843654787772674449121287965870647464476556779010216224303377160100730105186357866515825274180540405151475028473308162872823214706945797192845021906980952808507173103294609765728223695355875625176347779689902597998894799272555613364717855979522290645179147185183413674706210921758629854332075718624204252192435856652085627282079828334336697220517792838980129083521573837050890291707910382089898901329394220696487926322437976130182268573326106435597326736783240781955182913071079586511864436330020219419006714157446383376914386730500377861457376048590942440931703764356241636528236192194838241351686559126130307959594803747589056265955283124935372306929219281924583657529294659292362190457525333992999364137048801429462260167363316097670203311375028225811740795513488915158790531981165826300544451553135861931083602648335374866758778278149607053172521226508000607970200249686711604150904002055695802672676173833499879321617917934971684343318113106515960551904846039626161803362498648267262623674872997625344962189351808087244212498058851977796143362993490457707593671988916605377470690964717008765806772983427378508652487134187988196796962334904806540808572088109606664302702775155019572844288691919478620902687376823463403780625707317563310279542316562490357639296577543406030427983069549146462738247395790784286807084092486190107704003775258415456444075743679672119209008731215331380238844096109833767319814459039829445613234792653719666503601594812093129226682401129871252074996337704616230900542654468066433660435730798789071649879676257335179232793634798951045640264856182776942659853549722475539538189855470859966877798507091684051088865220037957808358531316521521662881217287463441966164059201950405524350428935714746835668695030611559026829103726521923555653742542014104655220905936819924007259927379385810197381467233970971963585289183291411506693616428936654226784939091291071440973800108106470248290400951706244728417919743096806350411173619721769520167631636570658998968247241236467641428590333969176919266639538913166701583431696276069358710017798344255265745282734557400292135829927307992455128029440794962145135492668088472149964431192051581395253388376501004053249911507011170467495068094732613288459213631310719748909750562431365789517620605555616269520068183566826043651595557658839516038994743115425159344943682515438880412856642982014522009706517289906102739262966554541111360394266672740489646132686200225438164662838988480354717703940280303868586724162878177209139770165294137767574371596111574296807297433721330090174771677786309603948015478880000413745904990072279540342931308041204203191702404926369059222800856893448278072647303452359348521706410586401785623840988313067425128683384178218857614788108942007544216117259977237124193661744774712155270687877815192708632400860296005016596370273718176060394768555545383291623499952599779488150083907647526316273179188702620592821514567657334048843939093752767783739814607572850582594838858249269891527225254116521796832088033404958416936638277796903626566789458081003603349836105680015640911915278230140264851897071741015398911320629277392427031654909123606329917483549587833016531069221876223963996269958015774069148249524913430372824499817100660022914760486932910910244056383177430313019466326735458034272856573680632994864200293408672241584053967739887598563256724097153989753165692760225914183205778019927655766664367267271573762959475396970968168248235949991788014554224558937917884265785761662487891680090426933202786313651628320485643311688436627025356233425478014752226484052136022132425239923148870226957366104989631238247553577529403790690879646897080861676900080094947175924541537763554418983355866084861202865882094210461462182162672659216414536947059891581953164657447664564175691594893571643739835701049362898038480682961501623798291476906049837047916259589729720222971314598067156916963258605323306254014007287592548405942012063360300880200647095033412700463468060060167789500519816135416742632284803039397416696969964199819153594003538442364198077357247836579986774412861058976127140371109207047726844069631138356544921981455903344342017048762310155806315604816733660081994754582514156496456879786430122902429676555472172900963281329750317755358625219717111411874208550207181872977681216883527983105118141113879656325206788654031577125413991637759145415053999606419640924779955379784919037722761152722286139371682096081777447229282777715550492271504011522689200133831145590507313556037648822794285181820066052549414884373598465809783718488137774844646059204398144073630122251442284381233129916264094154045116952245174471514395381945711835867893997768939982895486202817674252529293043097917205296093912808994849018745168747116990303959924392813245938013333033941704309474037562032989025273095959499102339477769693326788002587405796864290768032076539901201954275172612597609555304726941601444643745077375955595864574382911209408038015877330627962671297629537360900911477713303019283479224693573158718937796361827610553781785841655148267874196855625098394262016403033344452684781422134080100290591822911619349566771942954592235107346729815478004019854705426089803731356892827685680232514870317294080686129670167072800147446411254694533078168801521229495315075648709259790192559491366192963219870458231475434789351003971830683976453011548746659993184888105545680643038955184473159379032930747181558437606045647980464557629566981949080091416188342783597149852236321845277101308407150025389752515611789766020617351189680984620551630358396950156876423433212679949177951983206979096912479514829386471263726645399697966741565166381913774250463810670204340497534634475702716724496328999695484923023245394714357382242706033862052898327451868268686565914914846681047357134676347607070550124055577027756136840678969557965986315511439098434837014017170315083201917972465251069662700156621778130923487335112856782510354856073860377070553093357813281297842586346340593910443759274582696891914466519356381451865027390260014244351027343751614172781456544666989642194171783181483455063145323087820968721283785346809854206386033451593494236801376902000137893632339979918454976215820381287055984435851549137827352014490263888499909511884185865970211866589414787307524051767351989557138149732812736841656588048276316605927842090406504320447256190382581121280894512644086583443020490830356881528853651761913999485433616331386647768693082632386474837859161814104171781732273879703699457215897806355557699050783456921035122715631332214155283191308864572799507117186497959031334968986414306819370960934022187984031620534697836626739960898911465110780841363026277866816948497752091096568251989966598282142411171471129772791223217203030499143299831455433718470391880093783523439508854289622374949554322135686476410862046314377026273099897418567599129475598492877675138930655147558941507614604889717914703108751456313237325301748021904975394444390658812165521452588946946458416671370862473298615555546273144021086213723121888079288205418799590210474029473720581877150549928617509604555247007581136162287950417584162004300612225918837238021630536733089223835771741411861229910522080237969188915507732788526990725663011964588360696040624024531104145744369799531124917217619773005484419161830168592091279879890839062778530260941045009152091834276812386949665182552272729591130375437852358728525174673711548680199389597770284385029272461058066186945801760410336872904498071730082698778852229921516076777285368428759291340440096721509651378263912605854287825969046933743588279434566915713211863812719104466213204433389310799184615186431441130631808145108321120590341735417385744668211660526269269258638625368398171742465396522160679737844729268365932843050208461831701714735364905706155640890995051877623381972738073537010951293084305343506584446702676652140910051505340948798889609738269609212248269498904317198649514247579986687213123183310587488623343850460760564786073716512320895449475357020931057121153399943342229851829056024033384149618622366149557218309978775441757751983554138164330834426443213271703116654667158976213975610273493238493896938058099113310457927677976655711428508022653603289862056171724799307187022444671358266360343539279963456415455774646212990093959607450276934248776444268984787937231297909707687759506661996541192138513522953009897348006497012742477019857760910190239992178151127714459097000945371067794284494790625854679672692749841624307987254453272031340221220025646941148248168889372338702329091660456251287278260486926531615657635450073507521970908208314732888290075595008396404766224731143755813766254992377052616019181460668139126422494603350434283886769542668408185999969264099065423917486033447137142940018675336386849161705768470348098371112806363247860241705146038868309557827001716478103578696837971323809506144910156246572286628496828625227630880791217657923029538429725480488945814154173242224188509786362921053433138840782672981923996380523994075346370390721389409306225116475640109007779862790582069488905836739931043573639925528458421430950878300187504313920355816584851266594841594365856329092155549785084593291669186610474226714308810268595354308781746271617876737436843224972391438896942035316730174040108060242907062037670896222617047108054851385630338922209303115704426979097127989589138188006121712416848883317700499952000825034170483481560420747798683848420733610349382405710563982505740756034959847298065061278390715222420429616643726172764394102007803241792306449847548966629004302678759396505896990776109404311219362197812624840017771228396495905771245600349377565648748595008047504126790085562733741161433527517175261655866986319875325058944229958780537016654928339107974133051482677081429692769165280809447412076485482316622733814232045273161951322310548657569228026359466862273089658507361743424394487508684661133123688671396735332189383010423691829189408511477690815120140930252354541965803223857187979613406692481584520308189403186609331610026260990801392441703823563980735747514316119420882353527763993646661201821952699229667906687275216724645636901631422662897457301441311783820759845195488914797330334116189694104832741995472188864430035932104078887362709156715054165589496050826605987066816141044139886164200815859444700761340173422825135108124736899642373340887200519706190844603343190868925238644073224158395957040170105838488281376822094666237375255722948114814372886927627329119855811483232137834128045385195836298493067067686272519242796479687532329174423400748526347001899281921833755417469582152057172816092338417572322447418919143669820846917939634004186849153879541831739164048901692360594552984167334768718057000163192718870432547783680094174080923266389568055878865220804339885806860894091123930420239197406610716985596349106275650319164552327253145816800000964085156868931923174954680943250759253225982615038175182948158858987534533513050858626897886459913545370308036118020101505899624770373153645333012569340561275400800703206187335286961363098979685169023174927437757331685389301623754464180778888726528228664772340945253091787537630528276804687852770547525978148432535187806654888295096435121368193173779641419437468180893937259773427958419615064506696057300340127891858119424176741287302585790699646118189353176992742132528642878448407490247714957257606037983225968758357976627537145804686899995828208907108132150203286648419276624625281454033633149593507467406631727590344780457896370859065061621755834940757018558381586197179868373232538986888423816830105732828767768043518946992188190369414418207317096068921973637362161875999233551575305613380986236943687858262365872706020631652960625885431593899760896395348302448192747655216281714700641171281543198438387208318441946909930782761572691715679097164826914075866435577093506005141972287809244617419268858460328318690913017452364848165516463031268479130292217053771154888690812254522200832369725667788721484758879358844328566634573131613681696768679156118095043047549546974849903457928123405045246021970688696799547731240349822562772805709287105014800385186126205250058768549014711808634371640120059002696927844885676387737864041357253008136304740393092709041368095380284606492482225858913738161281425106446391450937440399519860376613418672691750788013615178354747962941176606961898158046128167302108866981922300765560235855526714656343186733581060085061314779199266192839789772574268070128534128031262440102389900302617231796860657438562172165823932921568574849800382058037769477552442725195098366716259106352529920561827773069799932181620449564957595928037156663236200895294264290111267484555307418302554018630923243487911361399645628846000910447185107644987156553554320618294824796019748529363009129856824860443854613433087272058922198763949533034927286441958266235685164447722793737408529540450103235995730076859524730529014227889393195177502719694697620913738718634893133391381883501276786514805194127171103297022253748522414985024444582350334445987374227446548930188094010114677893699469418171698461216073842062006638153138222843430438521745829337070924809456498871706879980299379063815087490165715618663053293584004088467066757848041063471229238461726297095195703604882613167496176158092661291273182879565926874335440107477173417993830508093001403667292225057330702602391059005610890160619781554784668442275553665878953868936534981600776279643123847455208784915335912181597006063326553319494344721031966021271876200445916823076694959934943991225101920770835938250477960889994903246736803164627188014229123616099000358713877339932391170336069850165289469138521008058608614974964847624738548648188530787112254572874440230114834624023835593426628901374120434631388426131952334112857154023438650828489703371100596403386939419251435036874525709258147417715871896437944114915140280243664146040230968916363181944452804639146947702310908448638419110311867763329190993450791600225076795039129685617242212283322379926337908124681911903671897710700795377638702142524159059063007503956922378350430957265699232471965980047139237001980404426880465061877464005139397164111995760454552358447477107583153952896919655942026686401378294023051237409587872098827534552146164893694110656420624359439556126141582991186584462230738306326089260035192822425337619777120590392779594559044069528949186364219250439061679582119056274576042012412492601092007579999378888509215862171109088544191522323539514667585453715750515076870709295755304225064183785827156223731018464776071954861456165222829653684120564207992444117366098649285425419999185179085416625355774604735750120366295567968295992429476061257507782042969206095883542126349948373362341249701196312237237463338290794309548664123915918401179128614165764953830446751996065685487307476073663496259404676488637808895534361709445409531427250018588858743020551229978780522647068219159981975741462232862855615621595068727821753879213714418026251382575351246596304322002678558268102951598387715744881846346661007492456422860735340916841456744522470107677397555551111021113413391781995400000595233797059722075056850175059686861184575329564464656774225304935668166600245791522214653817492671987359738627519060784823007411070835064052338124966802164680280311198074055009169351455169736370583814067637667842779044823203931518391887412478902529224873717439272582589653809997285854875961621676198831087251473442975933611684713734996551888695007969151264469457238775998339228978344164734921503058319247440158360513762075259993345002201204042329679063526907163711100228088685463521074545666248430826242365517783115677810930278593768498941598512766286391158794176072411305586395570952392273800026686752944913350080248561851838374408374916932460878644175958905862140092784391685624063278435983027343743809898443979467634006468490104865817624531493709346817282103802595101815802158352705244577925326136149868240686887076935666308743116285304853789568192452685782691326636184548736574723681373962798441942617185397869235715833258263680051596298675853206140060176257425156940393618075429056761809852855392148814526045584951682642038014593392075171217362445587289039973488843836245070620593473182983449611638741479418840472347639138951784392220260707573902109758772422183734131728602005928222127951254827413613054978831708675168667862048060164907522092046436815263425470861366534881414427295950371668086024519204592843477339176766464454197926777975214661493798474390334524378861409600359998913580756226024172707042878053790772684202907689919156124769880829707647045892293896988929607827350895411329550936695316312322999680033398294200170664697870771521507458597453328303355857505761722849177033104921309682907592481893758292439496782004852346310452709854352283531848194272168280495130660924424421023241632299969483596168732954504239642457514530587595812689188517818919124951467883683139257103481393086897877215405229859782553988743200512404307955758163256928627966831852211205030463858156506740685430153315220686885469886608985237117641904465036500928545928904269365966000854689025932155884665467468695850160936248404938108942267322884599655808508280258189307126449354204271464539114169573524963733606965887249435663201862622284805943644320347096980303947848694736058224371556242609466302633774230272042579845659265833143998695412498617008245728647792140206287290190301140744999928162247739992831949189805298909567997834397586429111296388773575557739696359710070958748661559771737469046217325660474734385007956804543069259144326948652138013573785339876776724270315692576978949617369503697520705820181681962939547007139732183314725723855970183657381892344998750100470370509082398754033266490030261300846554827317669470258659898798096274275102548482291019554021089287665529681121511137943126450637156116610377969648980853986273655812803388708803342611048723155174898704927313847504247515365502545808722398276545442474380983163223598490419445787978118653316162939614096395658116010102051625263769184358220001671159780534577501606354311132824601748750217648714121994960594239559501402501091259845031659465559745684438178688828898386261384991479723081046926975474518776740975149843285519261472857361720462281077256824595515264085716526925700444295275626744267634020875833909310397777458195847882729299268001229675157674395108005010813412773003135932458072283789703611621119715480664756621683613794721195532982223926162813171139110686932163161840333625775575457213982347699829369867707180691852426522061279680387562077951072513605810921446143925570027994666232930230487170377384988836061837905897684212109678388536852192879086197547251221542611596809213809357243466552274812037804568015033010644990669724264164643254965220646615477860028417396347793057009111803489454908878298581518262656072862610519870723814334771803060150742287325805828770183913261581336317284680559488479192629761701714178265651815791197096798312393908073322882698777700302448223468806975273938332896332541274870556650394788147743531224834984292294556410960213543970293447851564597021643031411795061386889859196740590305067619192663408755880825596332480557451600703698564068996856724236972033528730603235971753622212191805091439904328033624276981331191447357699357111809260988115312088635125180439399608666797644041079309188507404009099091235195307733040299268884927221676147562959747390880359834011334931212239099100256328253644250274414275003745510802685116431874220291396831965246194330683201566193522028821913515091135440693799987385062664722187160483241401810977334384668845207711429034985187412575682858264281945120768959333147900865255215519209171267916980422722064011600313860521156434932927745854482991113528572088493906118158685535579101993356144146923885866452989314986631208420509902105427546100370372989414037182854203073364547572681835739889872890954556156599256649066189404964081896574839348495649968771491351668447055478128811800696399046383595797227046942810919203382765262024221838803460700711239564219028662972715538876023074415198507690235063710519035518169346710975346589617586994886440566281692261892406625489337433625864031705072857293213841721506437859768352372535787207362308690248534473423508073042340167921011512773979593046199455057510280578127982066488437387601008761409711953544198802836514217847852210556915464062577424079078661892509599352976805988525658958721700137487956297848223519769940155689140107517276859037882231503248309226849584073301023439028860782359890904559003692368574610955675097168555138689571931307564169282740732542526707603030493401994173661490375599874664934186970248119232643621368799649174493618252213244143437362546261085873527309566427376655404772406304351486057722472912425898980389476622652457654851025496099903871289910443960738810444212346102539856845529311927908424708953127117125805603296462627106845778075369236791581924549942599092234666853047706245030631498577241820001620363885113648328126177132829823788747456198564300007433641466895483422080776748973520650303563864969356783376405752145367737441838411311233756279093840922054041519521270392096614292591894587714121352130577021246744395609948560428676010298400027586404267248320931945460675500405472789026385621873324532315568769389820925951903965678762849483369082319987127939298092245272874200165757901285543960547133678465227289527348064507227516584494727426639950275343585765552201241226359392488077966816890473676808969166469051999705553645286958462880177114083962085162206346700601261933693145454950112618295182342849386250515106606711824472251948097285034755222265628775088766961887891569539103520959830904387364593495042825878132220616911830624524114423992282035169084314757790344432911198500287492342117979302237059350088884856720305775424372181667739998358671664682677054872080247618651816525871820844297238599947892682514866357345498797777652324341348683616028994340029799313862196209464712504640522449961036845382545691363175283183656689776446689613260288940636044627074906013630218529041800143695951572330930237856760434206617059550798037567154148039153592208010041947412403387532957527395233203928311107723386452493692874236504025753203993532135288055133599323569921234224679621130859372688041598088594119668269067114198587769884655393050815796223417908554472547249204597158171637250303690576646709131577267773243109638726878669060890875122716935362385599112255301352977296607539368978433021993413967750584650633504040353431848396423697105874263230158242378368317308631356352151612764380683089833860136319798834780047740618920243593493668360594077743561734891900732720180382907421464787864398656719215013486055187643459355099434144685776840204840412775630604678049094044750936233815844665227530497148756693182212851206012629018941695458353754278023808355025809041034712785229358713219657661890547398251277018388959025747610718413265675200296201770758091781588538789646418926735779868866722365961148386649379697595390281718714880116279239188867762485022054192421811507564388157030728376926688633575836906076045059986312270706340105961631168832630314239883993478572306063238701485835617399901343592905712687530351426952270188997416415217366297638520567117018989397561718685410063364286169758790781028419981160870150625043245228691315317560960228262941512616160768296428940016912115917988182970977780674207353595390584512782104530991943536093795120184627903419262849296416258497310909877033415650753455587684130409493311181027960093661974948290227231754924249649717284332043751657583152246843646237710016504064611246539787526485858976683355970504191616856156039692652980514322373127661738732659959976203699214107751399647118103941832028617613512539510278589384397790695812306919208612033486718965558357252750008939406284715677102701303923390493072598376897800481921898497176611565692348229479737081667999195061158862094789750067980862755837960061226698422518678920214192407123870456313701808776701647305335801338185394289255901763931162259859966243428989554397555129426267418825184577219782344572944807049552910368982660388023590601689681854940530165502774508698566599724909170469348246503766263360629842108293155135050092826264659796772865118775288346520834241602649375256281399061851288424803482127098380876270788762794763714426675389317470370969226105533566067968312472954030525930481090956613479246380792575275079858311105800857470030295346635615097461137829034123801173066670107343528227488009045573110309812602231589625014368301162867626091583157999723563716426035869396189311229036523309614063489366479264836035066555631346647891978435240844703670690343308899734096631145709731533763195968785558612324491755852571017926636771686574330377133148680321139409082759092774741999210102081150546487712452292480882051902281653933090850003754140501880107352890957869921489471767594053198096702001658611420018287227374278481332453071797788461812448975751777064790018646474730437643045519319485474486835072993745741683666747662786697870066956628361944045459107939726715268257916960880814976822568966358236543480278993741552831659548654556200531157814395650719959511602210176635767871628771616146459911465202498616579951173610195578567829443590348874069706797568918644585623859538533637405834680543246605704033507150964509434042946139379228030381492389727789456769050099067495969209076205184797628694743482796945805566875740929449152155231468357679185537806514836933037000428039690426333586443066378758753975223479384200540522278255588865688339519472695812042670594720432007321250623360053726503777390949319389070359703617832915834082515228343502257102612576961728352087879848719115899963597344370323371538642625810468868709598938370322707508564843527048774214311401137763389174521597809568222025315926555738473161928343326283462170324030151691891088830706164816059980700785478935617568962668731925322422485649089845764047176703965818802642362840911376228431407308979172157231284785771508047731193098117839158698928685259453252591766523879641237112339377813223670771931777420101756762146539479900382689007150734094494098892795231263361013861390316908866873571298128194439172529850375447620950224237116584000126576383205352988612350926199228432447577573828058390976505370876900538871497891606504051972075589409918444824052366933872073855773012940784232682486595092981087726726334923711023276509647705010187970648733739102717603094398109720468625213899105674959927041574416838782602929758899602846517561786557640906521501105436352989717307689653174187554713230071424731554865639094118447868221618187185517355696594143826554744231720837829778912679177087775036160199879327710841185303074230931839413811519028833082620914699191202679551497391874160343381158582963507579552129819898418343587006938647980930614955170374318080554936811651641047716190310877294975874705225889166474980608574836197989867163432954858930659787414429793926780215169510066916786488316956296712407334288445395725380311569523264409508754598223045851436266723673068346023448931266481529831289228185401707720234039192646893750442005643334995032671075564711789957976941814950549047721039085074006783488337394887248960542389590172991410935319212466305799185656974327564173066852894664463491637516352428984015645574196426892488481102873719226853721145736201203179295020201862877989909884385211087726163284758051688676101373514220581069809390178857924218848168752497681349933011465286102472673936877170150972322577375699148797640189379281728902515958337092510938922211709023332730957983527392524649437238693701123249132774345707000873262852206879388718297117341932526654598165198426172952848585141379030472768555491937217385215641465486274027291321777183784830169599064288818016338596631813411210035407211538159740771099725593917423014393384971334260355171443397856887002651027361156317281544730904059818748509736418774080737359578162818421535640562765671382550851256280040989296654162618412222006215939214705242302996305178352562126448563566102045419995500939392627868452399477376725557666854877475625910633922855684264027490136597414788641932684218090613957669648817883484059225757456875938582734446859138275580791717533343248167131419106141265794192199367563415617552369154920136860856130651009515927116597233484578269382470132565331575184098292719966974706056073340385507326806453505846271782877440465995148500076206908993775707647783367303763225057109017225810889187007931316357476805022218663778005132765199928385419746696751313986746247744680741979171201037457091029451671022517080634901196082811042427032625960536069920339249918586550451967483365884089826164152333867500424474784926650997036747693283238133331875862312777157653799289960954806408810591610926741931671819692180620801199827258007913779481999502220747576863948961707242041383265986029708572761562482689068621309160437915606385538351092066876647006132958937491527313751202335372712540817167422037488440970527194752843025459715414831497835260337450531165613540399589139329906051945276551920625501353181215210562232537779610640221867273283724815404784367364551994618639173080145161185912020890500719910009983105657309088909314217545187536934052585927166678676716033456664604103386072370255058136342818376475529576021924749287345914831408894054658405989348192321057733631792999935673114382121740614834258088454226631649873993725283249983496437614912037251680298885042470123033162332221466637176021044193571865680990080886932825063536658674739777665712521115495262330967806412905157962159248947582917114205380352372453837399908339070466745509516352018981732165899398395146606749327832893400562061100023690690762227564330708442156887045990302891717465251919576106423249866966402607263383675332866098438694426956562788893017500232672935386016771304688449591984851639216514075088943410133411190186993990099045863501645455360788304789667468340114942383370415660754761054907910318402791219400381625202247633303903609643761343422976538040040400915841457946637778009527602254739741377076745478417827722413821243198401383144235019857611166133159372035827434530854305518647888341926970853532900026971924025035235429697528293472612630139127875690874419824752599291217932015140576835620613508773031198715396127014999315279424186353637076028732098910928632621363137953329723555478669035118990192319853929465107257588945052883757827601742050233082810153329793346590183589888313510648997292911610454572543644708106166436137576205083187004382551134116263350368462308571479023676598547201198522449053397671889767989152459590956717011275030496287646409867483380107350051323443367602274206722432564016085347799374597269149339182771161524684330712269961047389508125546304044502083306303155095534628556608496142403666424938994001222806659764590089470589780336611194890852313155092405739582341797290049531593271542539893373554005729980489226783309224571019592356754319628430677874735703579391698038737238930940036701664356603745359248720116008417430271913583955963918148429830699027457560706143108815687802394027110834355763177728689820980614429278917267245136986490907624997818318590643896701635200745758535059714017220554248425192640011858648990177641150829908829090918602377273039246619613361374272363883301159714795790083962801756771653767932187539933767888790158893413369614678187207896255264652025769774842571564046231739230090207450678804488933100586194632702505148139722263224686884644536188531384963682228979144043906443331353091899381778074259139339509860171869658929780278647576058872720944027907495646969329394353120795220979210541103064588436769322860588046176025542724724046459859193455528041766731360681227235365388513229266895730889761792106910567834661337271769162096470538991305809619301701630019360311022070963918673579636673215481852320219322395439860002530840483079699147317993593399969569443687508284246958989125318445751875423476219127273001165039676955075396831180141321957633714806485613592774529956409733414890721738537837117038761435860918946900688481810695989504423640886446737990381991329557682099059884947604504584909164663231090107320288209160799891252032469275111513290808523849273351104833312878555430371595628720310909823121477812980547610162850979641022798448798008263710573033423655449171472669898299792618796674048454355392983949257873047317199652316146316449293608950754488051825981402185459149185328102486344103179333832405472896101477681441993577711553072991933813925021243915984428529143102136222831082389461483537850233580784189630340629677844963369371268107573219695521799929430788914729617883974275429408064917549713411788801423463399862752016175193167857494881479323449103661990910322957765151210196934588746559303293154925543239415689553889049724656253377641457246073988479124765506316993972451325775876034637818713778407146057836243578056103761584883312037379580438685164758559588793609254845533032863593750160810693422050687999194340067870105651131368942244465746881921896261897223602402582792406740309798386548068150064708407321335130540718846479135519417077046068068521986380096147702609880811988463136183055580219612292189877933007363564374690401038488333520903238561376000896683624611823710123340647958920970623012929550168654683618523369801226324977073740497353707735602519281070743456630768936765614162603675752747283435764748043105865388189490803721825167682895910258000027059763128960760315597791743686938835037056352997045346156882966201914020034245290088445890083727028358064989145434633240301374207424510206780340476465301852118622897096002237894970979936736675836817340836356772603561154663720043735620161072728949587115309108427721001664691353045857977769579454353674215415103552573631945683110259747410551311567813085650761416006450862934809157960811002493223545586363609416141728808292957513508568070483925075047677704818117722296893242753265287970142887466907124289473867897127645104974371567791527941836106362832181038230906553787609765095214508742916013218510534123667029865821900383250175126283418550843229736843407976107150872745039437953941748711293574995189800641022772382921266702300688143922324918064383028103603821212994372365435352604452749839241935544655798777534182494149201312498124852349671192992770959782835378409940798906258912133669733622378364653707574300325952416072826550498491486443461433760370548833078065635025852494989096807191276081794158816261047169358119705931706165386013139451600908146063739231388892255485193029561343814993679596338883416135568141151669313344193196514620358001840042044346108011165560127003576016449905348254110555344226828826169197424336184760096853520316731176290529742325102055401928410837405196088981074195141270957217340846889181554369207548598431777139552201140851840066616158137674920731054490491698322827847669395392608535917105690921141557110612705322158168628286344549122428274745314352780969033034221632181651309688419802043440256179780169130399350215978773611137203897987115313813005107142834420269914713085538192324633764212108139438870475050924574926315255623369399431400672581881060576081286535218948812063294160757864839169549457132176838023482490587370124877821316404335004427411715396166898218024787798830305766080488865809746340948375413405604294604374278326577201531285001245637114448099110521301722080003482902446764162793846757506352226503615425342042773149352026194783930007099159597694796081947876606541386367251157776334076767849103561624281090846511912551682084935495026219917482000626586505721137841337239153861050025274938946765310846811156327279317937660907778220045860240524732052414767366319258390122952878211595651371167347124831029894503909045321434507502260654938201130643413915736250490744431209549009730283571869199101049703333048064319048435302968623828951796518272493304109018914749853391942471020632089097561763998667181083341018882549160361517778183439865030244685625262397530476776541280434990595583726210759208614701808403185068714585711414594689987626984908600732836619144471593617420977746428666640524734235023236209639362929925607944662101804416138977304958807740526600144900743477181713614013133236951643851629783616430575466098505671969296336957230103575435245199694586668600589507123811711449790460571295081336540220418387891684153777601193423966741724501851289923151736499673819214801689100498272356543920145162020650313324590946496255642682777317605603182280277182294133189279370132336907978767666295529363303102528038299757243722719146762387624408647219404315243775246081718342526473560446836515141350646063363352069922778271732128848134179263913417986618724666486191418797749459485599954695649994507629915948515042940523053344380451860350202800116776404234826072590167876665005232233220777619756537021435734367482492414453991530830948949209626937989134076777248067608138187884944967214135958656884403722632202707098051481769929372288364658443970766916947669306482147998825893804907339938129308576291733106380509719888256658613440470676099521174512631360718711577931196266985021776219417181918844708914068075280126118322201156081380296327601207175233813612484550581797744705225941130152476606851631130843445922332215810622396197164909259515150544087907566989028310108265532623177960591599137561392720628259679820622148464871456358572069715170918918834170648629870114180567202354813490921692833690446531851867415749462282206675058418410960072313550246223988042591606933243656391798914288067049063965554579948466423291464723390099791282617592498990082331634887079123197970906644355679863619656648096215124821405066113697012708221482238917588643837312505866171459581836331622706509574853759734702849847748101727176330603449731167819307660837162125434562307929423154524630529390025593959405055418292903105165806149269235741212945564563763089570875747537234052262539160959117058251993890957915080304766525429382688986293154160220245844052202779693891794490345027862310882089024277356745636446561006819337368264923876041789651286050946101573649225475192675467978475300404029221071625892089328928712632651818218272471215115534451339088364676178771695681228110369765213767999390121769648089157632727934663654762316826736200545165733332980958512101645718377234975739386312276104039384723226430360328757090288002999610537710716459846053159001472548818748265572509626201405955592591106626810067724212214117734091074714467075252028003540445448352593051086946686014487644467121215718420099905393368353896425092113896842687534418973102493799308843016767338908587367885942610277201548849608014943893677584037132731502149292922748365780261942903685507429399097402908634338026569589612668986275151541473123483284352815290185151514124067581923000263399446828423319488331816876693484423134382477994339247814582805135645669101972006278776106587858323848308214779001589443558053610687698499649911505378898028227174427019219919619349751167433354787057353961229110283064388609716559571807418230133446980602753318400583631059733829544157759796923229161104723172988563931417777727323173876785843685825062692944391824624321096384895782374023659862203668056202402856168879914990683275327382078830039784699068544968151899330418561543320161140627087312125031239343671250682831016079065313711852299456929715883418794520780354267993220898472930802213509966110464994161189264707380819135549100988830653780465888335435046305801349715430135240681115094315211045053121702338541591007302145312593621710135119265539758271644590033181177586945784111115048896432404498398588035882366139005282731711079613638109709394971893954031861354098994865338437522656193868354186623005859413252113628388873215228716323693147581361539602139693123634949035758528585939145570934685595566932439603561619863189239579128399197148981642525004799005991667347919189866296520889865828211243015770892176306227239637510087778303075637417667216152095361781199796814843199375481171159386742083946379476208975005439465378433985374963878355287393196761585435866575110638312570362769716258711886583205967998510234335427957990619991797299969498890181425475125372322890370103134639164598361395757798912968857591868872185859509145367005671403316807704378123292890097785442470917995637185057710037233177176276359070665831964580411261651560101902787458886755963056998657618299431125560763508910303631598611184833789480546642210069552118809042709058546185662783567894262945703901501301875799717295262693904333834937746298762620440184637312809004802923941137515020546457791489690694248034167322520236356231491904627612868913417463246167067206770980749494555469483167961597548533320352815284076593850365302155727640657450438791896341244085709410923927019317922766083677424860605942145242732599216017392866300023409492392650267276430844805970101388057806199379587082156659225045118965051528909040049229445268145807740199824212433916251590580225268838287242209961139215839369589675520834946492642008984197350056610016041454784059741535758435622081768399133140345358897427778757777545305966638174966986993535555866836199141479897568935465514916502223774175971861924560100037247228337711880663842972625307979930216567197536291482558916891367526328781168129691933697012917176355349065459917245197057835195788547174846374771294849533918523328179705618906789417604297215159633097953754181175310388583712455641835835947447485955938952656275145704343599397438847160362042916993391297639942393558419545281301884129500168933484788634740222686321981932904755902152967238196213705287953131956470483623157982739337191174872598664527498437534001586288548986057364744173676321198955068449478242881521741821717080887271080379813654308192076106289771261004031539328674333873548965592885335950999345383917953147344795425646243718093482120234265232287205524817951314293595622595098186731131423078446984319282312951882885488258887956177769032393531997571258372545584481890021238366080376299497858360642250760929093501712212156007026152545364179547191284904480775836960419906837926171943399009948635425949296722054848443904493876711029375167641071231178505950898936084132108183883739686353855399680750212248319525114353049321765796049980512219059102724637318736556096077284028548284344664067894298950692692167872350882864570531441524408033801982921398271984991466585821350035075254889802880871228731186028838746945105669928550945661875734977492678386870531115158113395936453912311424753960225222023955003891146884392459392654920795417442308844132472023917979461219737439441684577918471912235472106637611808167362387524908455687261665464760724158075786754609743008827537196906327649921945337756793859002807962511444396901857200918896014976846539215389548458162839537143568368910649373874141142893493627020925372321863884071816752984564704591794610902220920533116200793725616218770849911686570171653379471428471975919611242482243549160064707476977969620902078160753524601300826180721679297609013356987217804331446350070084205284585384673895656747151770150858986570982227351020224878517191700606237874395603046091702050534110039923921050260455416834870784420798719732031441624658814799356170715681865067226377339437316662883326815077099075406539266882407130352594312907416792721886267720076274954850583525138836609130781721416623899180283926517124735659658247905632573701239208015354887391625021915093684506009222073208931760359398846567937714384222348033805069768511696309188382693132194254500787071540776323652757527790787051371051760631280586375976430623336742355802850456940249853387197062576568233855435072598177067321205725979401806235610494872462060273721022064619459050116647608659284431891783483670770114896982330766500742919157111658684634343207037318693140570047507090871446234156072851478384946984954694091280813778797633293778908604435169474202366829913190138154504949693681590045820752186656351757454204319515527931085895312746650589297887616828153772897023728689056169274670867767123351600363080536588988514864323795754088214549071188646150677304323721371375816419217490783264806333497387745436782140972052158244715514799591434199303812713479412353483373828232327071139851626674137004152908429480316433591650589159032505079637905120118109989281719173889059761749672494965557146229402688201856209699269596512640515065836247767641221321435223961721419111252149398659136775327012600910412420565886183115247106981929807871087461676801866670413609017122188029150408759092472190876015849222325266264208421280210032336763961812874678291817090451685862869712319386107100418443606325691588103907382045314505742257111984508579650060171016124844383734852923729826687836864964482260264705796200616835242632744423398300631857982583300101422879534843565879334344717709864528933833702182099702166431327912793097799014548197272005065157250661544637027628373147215745183498481747567627345201640023881425932452958122861870531975690731571546897123589285620819307468121442373747661420981797339275283011656294843234090830932244799056224648971489624929347968458913783923549038999488357184059239843343469874175302083068757750389107332760343677516791188050573764201929211277183804485552517404597232408809367425441380110389123400680834790020128248511418235427069559845527716895278845620777344015091267746157684981568920483846003751923913145391747363952640231710133733992747607802553260704824200277354033476771878067040217716468892503923927097548581819077690606273770068936012739316815730787437509528438505781963128587657528596118375038253288883032449854084482322906604548048268112067344195339547250818567595656284100491945597090601557416225164732446929344494823558551627587016246834434842638161700535841292643928296810534403193350600728248690009341050793770229045249850397635800287686068688134367024491524872389341563919092103143979618436063576775802438478092537725875418136386895379583919541211701411263844273337121782497413051814406601296663652357102412912739619175568946851558098271086488832394845499026680819841243344749453153871862314587116933611017906816098062179088868595314671581700610585964424301956550206018536961392413911806940147233297372651626413863437562368155949966995076317151244990062997132692131981807948238222608255106087712947017530035790014298055685803928957590131524401519093361430037168459426985354994071056613918646012389935354151519619416278274394458731314410223077584463864754177944651580027685638906552641805372341036269478974900722714171384668983297401893517715564365710711341719212344488178346835007142887595237243208865110788429284375743254476135364439886378825494322170014298786406692302164846441369359151557648255932534860382751550873368787662985012356102139088240902798081824838315149143862118637617491322359475210029030438744907315115693379802909498284254830876763980596405625620888018605360084230837507700132561479652200420961879984523376287083594781390742074556208491778852303304388590485719576325380908405818092800931094517068641169204729789294358437238388562419516693185293220832526188653392070036730333455751397346194239260056728980375003765594092893764883950464508191781925342160742973180448913355459892525505421027809748840763639118712239483647631282109759313098214174745733060654571874013443862902624765626928205358934511358245061246766736929788258130330440811997686868245984686317003207275357686315658808236448204316079546837951275341151050074872682331438144386293678433477165417888625202843302097278785738147112853933639483051708284657530742472029799701225289702745222824564740577667734441812730753236012980643191706375985636477217946046746978034864340859315447466166252530839189501703473426662737379634409310794602729311322178262294366067470720680163003398912311140650777176799020603405874775785834756778572258016648735246375595307951959253168527480826505424525795731206094909463253616435705199524275006640649553401893644109101833784861545257914500891750540179408853719250255601667713531180320290950706700052736250848831557176883535009782351821084287156312067684497176033790730119263620551866904527280712978868435086480689140102451847407857779123915840247967198766504575339030599298753833049666813615528341661490233753524353630823420214096912748633662448015960209362939088502824203990280245244457593200654492260612690412243223045517847555639655339551234975165805512429291039332737334580232245732735180217834464808999364314615857668895825997480033860832919814394550073494455212590163682124769172802169215688107796006352224041945859511592910538596750985555863618163044468145552912419809607480024828489578046566228040451192797692228789612625970530889627957934932589195578561334600194967337173110270451246281959337195815051405624239654197691739520845513181606300599843885076574283304176706915696841962831876230308229453294569343192555112457246115932810542835594375221055980236229364485314916349870189144111439030530556426502568949662163922025597868698540345098385851559337340746251602212286963410403637089742096643378740954773713294686825678226359568625893713906901735981894025211948561130339901806326979462235794877336321308489272165592388397906367879008922721490216911961224499813474608095430614095758193324771696420598176909558293060878205737187268415950675676881130538652921837077231002507181942871555234087553493130577141203612657147503799835953832813135604317524884574152022483939640565017383835990751400623548045530631627310087289238773795696638929638373695713160977787758037181254564730431542132014017774964456688557330681682542568909885249328568032756722353688932649485177580400241506117980149775060955043200566723287465351022096919822736149611419777474642350987650519802140073746815187678641887174032558821146180136680393300723257346609105518722526256666441704775954383972200002840419122298787211136178356567325739119267055867948746996757251269229243377983126008111442531062314015978430795344152664998369530508065446381597738947742279900436127340819585917998481401579453135643578349401517063469189853495093643674637122481738864998128188924854760455422986734962931181372683622344383947469110070800252241958833672257916736027512650141577329132780100308788099164844616952309540516078471602028114796561541166148294886212091607584246581569194277712814948590878213796549651866275907210550176939824379113233495223643729798850732721612657700534972282249930588152841053094661552937910345461190902427938468104548132099107817855198009731448234900378856406509073038579640781582455975548758012832832086364482214362296580240310560294384646954390887840354415747237184297887034483893916179775510622281222818047936802096945369330146561463427136837672883567975561698306836650758056964093336062088169383375309437586386076514417710401531147551303418427456775874186438025714333769901663795203190292139477159811124918812888296477576946391378502917289563799082861424653810917720244806439681839676078551058772094930849108537165499727491338474085889749678605648324522360601708244622868509162628116608593269552309765682164838719142922520551877770760218583581766236235968252602694200347818678152245268738090113880408059669253714526731636760493797870026627908568130296224091613122182282963429443181816276270475325929062473708067935165795540354640418402515176396004142776229036791638006714324439252030997254469860035399535331421981801578118260234756525380851473308279087449927660196831013334959658571534153122020761505151945397643769688395442013548605525033411972247038556332570186953873576835277888146944543223364827861492081608888090417158466840481652694747279780056093761623030581549334992100080728332728455294733324870034105031160064629411003547547346016723948535890189790803050648207310083973390503495367932494368703085951388897124687315889761504260379026449673716218059220801504242630908808513714487137566917780413704408909377324041924867933418914381332385672280191781947540946739173436702536517347220390573243413020725052698434449705678980589109281817925624444478298380927596772966961356303995249767860867997778609573511134911349217058902146434236618752621760549605613410524085351827125253261232695296894497768616458899382753396007784592467849980124399796578100277863530866543076479692241840045927540166746917997366090920277999536080928638468632697146920195196044010784946930592206019224296305035084391382996964521475753335252699835788331276935449369082684218245782852117049572597812256898394203473184001691189863227351745279800406215984138901573711264553415729031208438267506200563010227137571720963608192887957171594001901881359640400718688023507568854973218708755568832771765625444917964187957190255980175425221352325474977024551891862432005292468867964923677567898962615363298660029033675102803254461513710268160267532404806474466740207596097984631940636685653555472643498732239559839701225830213330150361832475286751336144229153416657242916251535695774567665064905525457866019122228729045938606476303051915784179950409404369297756935185396401514410073939073130021343101722169315414278754624749064302821569303083369754568738486708277256380376055346696912015986730322153242546032935284638908027158173999776999882866972095314945196382603745166580666932283164749368483414423358367852986798248051744521207557754730433019195731454217799430973066271223492762367224867178012401463087555365856348382964226529785383806975287612849810924500533420025057784586538741367502264701254849679064540819983771089637738932880598858466512210877660530732730955185435555807726896036277121267399661007130692455187496943572538426776252273821393245504312555305573556873479340763524895111809179818329197509188611867833288130702707581115794049544889887289439021049166074839764359839175908132263427908155796130231408310639140823623251520624346127279842207697448893571471767440629422433407541022384228652560767395124011342922276484609801299179963806172337640282897603238924402468893435908656025777323949198142617587751379981042862098687835154561034648960100229908981964982526644282208474516013521585000058872244177520197718633623484287845235556048688679342714789556302411382469371135100853094778284252045753881671670364531538379194781105946526258265696530671193384450677592008261241122896533289426818535203246693756872506086734698787048436501408708683975851198105262961814873704225688439358015281949408102367922668898046176135097001672408551094742350728178576501486574363055596634312836604454709440543084628074705846914532448235253266221191987419233827758819347500268668492411894706265995064149741317988687079361298992275561063726315765808974138829416705590891527070461816577272040824832020546436834001664798862686919263342497965908114827304564333122307306989155718048887015158005637709473054902589494019840245043532231032388951888607139028960314513626400623779880565901288991378882283543869891552762482398972618008322558837213902976711794229644539469803867444290927713166357728063131787104580940767260379257383910703290352968449088894528515880699211704476775966507654185114638167948050470840104539833751275547035124660207272869284456106913984143336584964080457586091451850328689212735880164977355843632392905929069365333202006085098854071760968899755057578585106287784089137691922670507139862959359180792243616031239852662221985922048034292033750405846230248425063223856677535728194354046824777266588977242696026855983292734267478151078855056766482885910865717540795346722445094873047564500145726991879475696508746387471407733365099678908489161288071816744469243354935303685142683796911975389958972748340041636160445086431133897596712161416952681716429788774950191358914648245454086799678512586632583453943497062667048537963589360372752406196423704610539138425349675323134701633572407761651790063732186588096416877387616569603801137368494268675584908466177786528105374694431068677917373927662516967856908469666715646798884468999084493891857376074146796100332888620630317850387067949233891155990228595256226711249744531692099330766651760446303465886638583693243435525900943287750453174224309295137086642714902135164302068612448128522760256889959625298847824072633921888170329861864303635294541506876393394816966645720085242215843584265107640771231152012284715006121467854263820761025506234885003321469989933016548477275076906696129207036810773309851019954240688091221211453565875401359630189814998641378826475301724056063430360285744957999182398853426248519282836052701949074663798098402378138421019982506803434037893484663225523378590080462920853337126630798774014123429014679512293719695071553781326591947994524056433945443965419213718315053558097428106327715639426158881457607985227652878688913202996335895648169093572992843113931154938775899679523681259462976001167038945774863791520977302356999836739880212321904569230476842460148568840819725089108785179568941856069467861802483711621753137544761859750022012738498752382411893345328788606040438278632638266027734064793194302051691544583279660910010717567784362048288568968272761862008259777948450590005349065934651331812309458166280169057525357874041029408490690647628209682574267864573236142925250872009531423220018753347918008198813058858979753638809456465912093428873692458423822060923108226030008711408108163570299014470420492924531914122435560549704070630575906393553360935649130307200344174905728570725076806565123986307763898249686068762597753383180880366081071121467067118862003306977226473215496096493578536315679003410140988882525522854034220382227598429927255023326044067558198186940696976874358450967659108052698135775722706125888828759289169430226378945249651675002858146324268950495455163025502451432578288139979558660496400435127122705617091349720407370868629343137212103751919997881192287428275870221258329703256675563941531000998867951575691838101838089031092194545487295175610677636211896516346352883807603032106392323250986282898057934827031923296406719024507705773774165355263256956817175715776650739043996277401208277396577270050267671925599335559499843426317290206854948820155414782601802106215492362957199296317092247397107733586259612845491036919961805719886444736328566306303385304963530877487076793378207626524029867206907168621871648591824377055113852711063275205821900578987144502354780995398765760866371975672954383294144232390553386487752272770157731466196231782878117736345173780583708734114754281039654223614791955340484500543578969646181569123781325505290514304236292969070270143985598696006093396670197788392999497558068579013657819064192948977291702572086698323467020272422875842952511723656092554232806314330495379711906980275528984242781845059193292615894009834800527720486436795095860644061400159949896075406100588543958183347460215752778190818526701332913491437987281362356902363939181416736691370245797213608792264126196265016198173101807364557415874795537934955753342915826766238145029017303909967261148783813665400776297083522052348424005246995287386410110300188585629808104049396147586523616954115274068363235494835647929792325065174559365646567810759075153059404341338001552521014852944769197500284393295766940813117975117013380941360402947889230796828607217490445985448482914556720896874417680023198473184055803864543519080312588741574668211279093016447603672659323067158930323218452365473403142169193608772102896166244349017726745261554704455650549818357923117450082423457006061857998449872745352001368766817847835195516758021233732306139912605586455295391274636863693241561179691916998672746656872777848445359994619994577609501462033090519088502693268392560952795744526758551867351325095313243899636831987566153036779860477443144862702834621403705373451038972409735318472732752338059833571803276801660223138811571095840381295572499082576860897853411096305024393576027850812840393637831460262686665401356038474634644969197736594782720850827748996085775130439892817213273010355025230245163815259082572684959019115515935927514448573517541349263814044951130975060394210403616445340273457279025855922170222269667564427000622809250634000635248986276786559560710564734449894919505116029133646195431847193200019250379105639074209734268324374945564590526778983207116260145018048243374364634774367922793060122397500842444085784470569305916625439663587526307621307832351822223186783559698360029586800604161726940662982441264730030529125451021138934079948981583299301442868164481061640007326170027019048285893418178983147845367187768039404850024882889094659836925416068629544332196895765859194907035323192655064918065133346329761192386365267580501954212008653942307767801254967718420023995228472856506725168046152977286427351790558609861772444646388865609640124149238293890149386138253686129473685859570018064148478978805576793216811787119605299018577456966177311073580613751373273876282686389793392919935454077177000004293423888456666786987573708210769294612025156908973668878223835618860788753078412980264741049602664973466159555395466403513806182167024910767610595066219468564777865500821229977448943925614270205045746412158718757079823795224990302474541619510641702997928067509351765780090636527872388105713670360038071302665840869537323461843002976482624321245837657687175950369406618260205638639038709317146100116708665279829454157822080551664136472991808779313457690394481937772477200303139967139371476190000056297567985097126082724381881270028614237585316061293162624593648892115703400634842164214464463846484061891846612370145719354925857032868520408362009467158428502096612365008661286042475868225037882940250107117906744286713518905274042535705204902506763427488911346537969057669517414012927495593768480937400068993790897056129024823758013928964868675096171111483695561398390353431015566618119731736296091574212307207187394712395889273554762702925271820540744703258066853324414908707173058221488408365514595819624504113350793792009792096584475502420078195324136761310430512666254458050894184718686917352171793604240573206245985238048281656909738937870256966249448584405070591354732894896639252042425413973012903601249584866144339988503718560208164767836874684982426529718994531449795270073724214970767785899404559146814989425507003926593112092477466663213163845834186991498490134289073532325190273451588836355398423983541300679094115700208881603304730793503159157182290986215647057075438483659444238114983241225259764127767782004776991187650730963391876801652232595712418044719675537091025445333040882889053182910378667340686555418155251980004104287107083646410367488767215317235418156990185312988023800893920186748249998717978499766299485785282973454661654364243923523118440559052037735943466973857182878664648663650070543664700877705918642309936674307737543141112966550319490410842189609760102043859013701358545817287162533972314461201492903143731562782097843747439644181884791493529733938436635912280882234776203682981285817986697182758946361405287821893796976580053528536390335145007594111550463413537905660083408607598147733011587340959198833366385720371693441514165081123223494829883860952665198610411018556795435300275809059657806031904297751998586033774360418678321657098539917139854744166514350913627866532238752028738369340020608004999516669596135988474250929297614732905106526651584156438107991395828819697049083836852209152391630698450125053829360708187760483916129920217985238825929794471494515878509351296446445335248282205406477093787783358472681069369563071746785427604867810330355641224147887152356669922717110850626627850250330815699624006888298574736137745209489259494251580327114288187873413276251998329238912405027204429983016612555310697059723693076925745654841073905248321067110956338520715857470549689522061763484543707900198875765247477681068838226118929182971416605504692917982569767832853004320971973165508299879404200909003201779179542686008129572495505352883630421091244131118292760392115601474795078250133905500835308341898578181726326301842820203853864146734728684808704223622285533080048061583707630962462993808665848357393281528449134168057955593228761254300716687300564771403882738885510699165308252834453252025275843657689741787804918035851172633977294532743821942733571631863526605147893459958283038682958149959025088811786454634451928906761871294092529377562196436647899153284274661761830486218985428715988116448334449126094264582437701996436944645020333000287451271252476672248436922009108292049212094601985762930881684104453028289290695915038378786554029698781747769522615542623972332368091245091356950172390116045543138575660059179018537317622619123458772163727159862465314916788714339067498936468124434716709398744040888731306735963482550433707420656362212479473566358602380299909732855019650159095884081057077909369139126381134234351197291187771622354891135286706758712428094692939631538661912251656216725204630697253285748426826699147917729128161335489402420076401920318342141273052194309687509399283546342166646224030818789390023286633353277240383539573230162601067133896012426745222947719246641682277978279187646973737421398628462820933574089412977724178414866069105980303739826355702313687960917502682987258267968880103654462659126546705301521562061326771246023737775017955548088616925105752741108564388446441213219451172066217114327759090471615736446166813448252506492402150998719876376014296081296261678557932619662018292725846128364808811644761900528630794592133972441637608322198847868397209332116351835573740032194264573397445514343844743449294826806085244383527099659796709903886175799453660738248977121998185334616843598731310340093829698770029621764541274037869737648778789941256642153889159564360270675913693248530800660230291767665120483368392009229279038533416632374380243978821804431826361056223684763468775642678732694740172173858924095055846237420533358413009925032988035002194366309510789929049282692474317102434029366960979320432732892277262657798215815943348953781651209623259167708060898829839405671642008626779124856476964894740535925235933294835254447560955846637715459969349691456125626589022578200528514554884669532009883487663959443710176301726458946962199114463247396722690821318137326965844035832552770723476197337467118144840816780849762380118593283043501489462871235911714434888766589897075855489604787860139743666244119910982127284781594709602281143987016186533094390125212057566277309819158673884184607490012857596448593517465019153328412626708557306103041562757130956845502965323673844555719756695264566756242677753381653620096272898861187837768541408484634804835486200051534029290668285045896728381168978848272145511106326139213023599852220616411982497233559183400264050460601590738441028350637296193932710309136338198449787181506318203520819933771636502729945433922046119785692422770253148207985133876094972643193420231507412301925822136874107281579486103496968206302016056252981030819493638863944302230500985078687244585323628513891199574681019706411547607698575030717581718661895269556499599112607154471015943003953944636472584634382419712382282555001955008957759204760306678858588277998540505404658138985025103722659221909642446994397820459825537250625590183757773173237144108055033195556833475191216309702992381048926995184199291213634162321576205474075066518626559686805617934372607311186866709922590746242975162327611781478225202049653393506127594594633858827358010601118254442592056657514900367275083441782653865861399995785623654915280848236019011940929456495570174713655666517992377315756084205119019287910241661567341516756165379706009688644758772718227056774246101564471667347257852601631775075131990417522655042384899822425836999050947655579260275623917530832768932367540934697438045162931865163163386090399782868237535061245305632744217482867493213891222788502407371872328241150049733869225786544042130329760703655402875150792529758081926275705553374780568782679695425754112930981811334622038577285081215220288273062391728721129197907289035084472133808212225197239722569039095734615901912363564635656537697699464483716689086591146817613363785590087947557353967297669753126895565840951812084656980422853940682244705384089663242893480104476731432959725981124127641622876566737481929423057298409000890130159684253452077623003664157948990034967184955300870846942518096671124850399825204831316126321360677368194676438690515884316976009092797821367179933357348709451483796993506830159230697706952186850548352638151558527297668293770700718284604495531578317366618401779644218048017978382205857569374217394585535059757098169642021708901028609761862963422431013923187300796585808313025791887915051966692661319290700959316979230672174043135844227078027373188202530072307803708163563563318990063032229682339861638735804433674268874353067278646629756099543629434827465493025441838953321145103560073581872265283829017649144660415250996567524554563771776560077332521270470412729503924100477517338229401514194327067085264481400620595832731330234968401947439006084189115328521313053599101228973147974623009801170062726502009831156376724442139619357243262255924418978538389533734975909280294761993142576283049612292496125867633615092180266514076680817861198516143937691193278143410229123794969785783438128331515008757612504106909082091909945607990520353815455222949731710574158881645886564741652366675580515955131176946619484272660346345079393531157910343415349337409684226190671603761569002710598982851367993370639905566082744680341361121394721894108345430571285159117713564034945471112547904617515245296845002175126925329914513432499070447572416456125296689440041390441574204935824747511230908705201291177488588005509783501003146782492625637415261790464188892615496330802221341730671290699859120465514265337034886083405012950791769434659355846134353220840808223212604435301707639376683234514952431792040285768189185090454103146542381840303639728140572582550741877104361430621513262389805663717133465661525164477626626364386959009362836522054061343507189833140183597594891553453153318082403570121876308071062184573885390504650465919015001306774222397204084642936457011269302280545515432213137204704058226035962924502294119801923119159327524774829151924766412901413789993033512270464274873101668261429819301762984848132023969123916435190041700452406710463187761782635817000603558116441058664144954268995026734568813124712486458774302812890709453620532782971994030935954982883466250341478555073211453393276499497429942811185980758968944419019829205982599546536801483001239385348146516442296056341681139233433315221565139700456643618895999684236914328364694230399626458556651371085946357392511514413146862518379069578694179882057330059811572822661856628272118762507588620608034377345644556178393099256474656906073842575035167036876426438375044685830364768586611180832948185539967500370059321715324658210447615151627242494367623106562691802418633177477305118548006242041947675746730615177936931625424676094004481557004304247895733598653815279543304253675323248822348637677706077180141038465691686295871736610348153665158527533767629465248333215398572846530735078426303743132285004211181172395944683963782667941189507041047043718611831386994256687299526109262201102961219915948430339495188634509566799449212337663097098233827485384060141032629119392597279326139357919231198475345375466880688180793609856937812623819967870712241245236441667710627422664445621884787476769255411378595427185860606254372437921784367934705579317814678960375713832242168681047126085991374092961258672322510108168383177438078337519076650102153288600678146337995671574827853118323706506897686111269575211335299156520570972191702821603484148566246923389762235539218984825721371386595215760890390377507054172987803037672241002799834721054281046214926719684243402618336621297249458253892485812107471743462375612647985423931829233365979184905969076818732380047703349356232926570917835219915933241521533488319072246004939115678024028684888875852810602209600884051646699163327948427537332037258975280181717304064807193786931653545015964952455609269781291952746619746979094676120489831435191050145863581371456308504602622174021331211760308443483316876023215548684366740485826024264436162188316340718647767294645523090211723754289636283659187983218525923995776796971078948511796139575554095816025710407535839219375820533731167183492441960469579101347898244017091135760488442062185061305438100260561418340259990572594444863524217063646718497563205278935573839851347500403441428662922977727137616501569221871001903127070543860143908489632495811724789735028928773556690752783903614290327295975767379621028655107458385908477682278358388019174987222205275471063396372992932385387528262848408301833645502090792602991158514941808485256923224313031596981276368798624485118999987923350299406267067775011211126381819036978172864068164584396206402825456394468283912870478435837501325804057663680378125427251115015917632731651356815807297766846413173094729304023546731533053251611572371894778055148136810919538018662043904026363397689078240820452467728419461076851149920588707639478171369170357015765385442244468020966056486396692346262874668901393032250263144752005699496857199594292271434531203428831087225295580366247481473527266744555140928303293648439069077288839689909120019784109035545094581400075536529059919164254418781112548934088887775878938907297015817178469998129229367247042763170450971606239224197627201149846642360123710444640959350619851876649897409859569466735539106153895106504023012892462082265315414380025989547346348527997832618834309768075114199702193847270939713126638457443152901694286600554991811018786778054544794040471116115811255608713903883152707860614362303653600926405312276105278678574512307990886591760252919959272178228365622691565018309253301247371472430854014777444744473796029120876070317701790047776955853516270759959071744287799119954194257089806301823533758978468321421842349436862235749513215734828524935474283353725429400765374447297735327664940960810458517939851681706217352127052805507744720223430946916265428743012069519923868729500378117681354735587762399802245019411548800213821795102866256337977578984952710375122452903934747192450351636400246544166360672714265634222375635274138280960514815326546986490899548969858044687996534925687552256906877858581091775915451769018436750967590054051445362549391371240321358219720454141982344429779741156664674159700378628603696850833460273400124876873352070839062434637773593968226160182796270793214139949064283412594206333514694312302033122717726984331111225517457541072541584589946993743582708992822534387349855399371618637387505965259985899064273954354887828829296463670244031602922218752314798657180436349979765366808127411682094282035747815249764641578648002106645322733433094876033128196070414497700025642102548121083161957664042880166231789849187780396032701010786438433949897052777659239015632292580652953880051969421355385591676518427509166762908017235651924091642378093552529877513659552232392552173483242477751857400329088008949513147931021318552769839117313597653277550752108838379512606482118482833180497951334025990872350189470752698010381034280482065141815515064592735466452481693682502684578319075281264493750093966417066749065468914916456298529256607807328379583534225727649139256878566477953249995146072409629632872061131965770585611202808018663805361929771740815243784430095657299637097250933779650092461999580720977867438078508803286392484328509078902267565895899799482578723564839264038251236887872256362420891694328821737895213675436104129470714820322873725915961949846166607849639687127215704840134237745464857258482116691874080106463767660669788775363899720443110072298715209573887889296639472787596656956204846763675294626092132924030189434746824049875371702919804572472017057762216182975942453421684065336331290200700309754701537451550289339989788731689279810392589055830399434168300137609332685792385119960489230917950035914937307131874186949400397332582964058145392171143564885253299545098942432846142186167191261421074739297096515130231707047446361210067088207575374548261947030841373911210179980071012232546040076015930114209042381022062111520718530127604296016065776957948669667387522278458288252867710255011440770009467334175831483373259220029789065068216763914976252872484738669660818379197218034325441184033979476556061233698473511885576997725319815967671702034677658656076650021209054723970515902385033643541498779142403490022415270094830326439582512229611892803853182246242973991501761066582994266811778005558068518608687914260752328037293451650199317779827227100579973877092616859446819159399605023811057445182010675516968143441516974322443361395620025374805284000542498642873706187675357428253350299298138416189602579846758114951284502064175748647622475622685954053295150101254714718896258948183883382760582861218934880239561891508493900006914776422689488196966148598432466284249872047401427142484226095434834627025622625618819990088403711630198056514681121067665039049932614976900771391558091321031910817988420380321676633596714987652689948140189697709455853131456379822722762183822770168928431451517725473832185204843792009786557713590504924475959958410666518067631811745117363582976715414028623951901350930593768380117816073118264410165672096825632624142821626189614530446870449774184266373671629806759197679513794425676212207068182385769472871894756239386295230635150384208723360191864415019584800728972711173797580074958768115970794171324905713649014858951243979838338347357192660859320694574260008737610867487860924831231438863262944123083678644131029175728696277547502114811561321085276482209529217945160452337765808845621730666266090593383244575455002382765917333851521226818337923334329982466337835728808325812371285084047712918069715570632261820107513602015066200930864709034516916055646635841608713953748908813779524474848502651108323277336529572415165968514484810369259481354889174410341333044717442472452847211762064004970682202981740785564856208427294375449484556263639918622937232737988445671441969601890593030276888717659759933335213241096340180126774917393756252747560929873204460616691754665435717103187702140522526552952922381785625546752869354605014437938549832887016155398569158666912738965461445103547002331496800381100501577314319738362090556448654111457783185912883288898612914714791151607474027424667536159140568028301943450999362820994518365048184582833587566197393431277867535538310049871510561502768985523295275012797756112357505498728897567397327010944230485955677014732697037108670363476864007297467045318442575733502840902850159852081765988513078232129457195061956379129059849200601952773596933230360870370850402310352463293192754111588787674199012984489391184325031545324455285460922777773612888554996231580759001647097336642033744268877674843501005870028531491360699748960758878054717447574803812952579389682031888721741615362119576185303054536802263080626907494408408177908323315135468134081645887065766049836006982764911160869981968097177714307932746396182621275309611293660558383130790008619412814432191851995280488064986334996185175032143011969354330337419148064339413622403305108273788595739103001812226767053902424145802687889310324242315290445503414338405919652378367768578645659723771851212342819203849400672881672272063299652172127967368509117182424963370218827014865283975319880449297345068996300167103285895948145223774011545534346669304570178909907735546990914139888746308689012301199728303049548348148432208258536357276374187987248932292505965968624681686566964078545131963836392559008901745877403363087187036021522004664699830264922942212227264044428013757239880642230724862232002929644115369775774693969842059051442726862710912128769969399313211887660118361977046712394913900760920489007923144763039174582597181387453411561927133469830530287509503581806753867695576951566997544809967914699014320152190360592415700839880834859050890393071022868581175001678038614095103456603619071320437891093518832711656947542838227527699395442189667710141063723373471803620091373631114152475144159777258493292470937842940564449727192371857393284038426820758405171921710386288170342034828477094123332325925268101413644961716393782241172780354615765300244802710837759351599049778757240533302324221415965262155638246719907641875710680671072443541469885490531905421425165457491051205623357874806377433389364993532672359398309494235409778656239084604084715468936037178274919926210973573969483872720154230747655310655777080846589506066892960534302439882705470366415262972090069369861963954401633661953141027355787520704507233155125171097346141409003698751992139080103181835985666396387769340032918186975201966437335341145272557748169838531317739449316889081631481318069773007264727940513691968432560541620276993354117285199263342123660090268890929922318771726461633572562042575692558952484018471270063063103777566486276110262733825379985026575044128698409021913894290354593606175928223697308990412533486309064133018828527374825379437683692067904321912098079433304831349918242703985688555133675527518290006127031457831216018459154067144724678291493817088877016333093663051827263303366367516679449435718990724852724293935260661732699425850107128944778974904329678912596462436730748819990430891924749514491102624041000795372774715291866529417157947567430524107685127987483289842313530547484349730589044530005115781960921399832633957628105714153406710352955353611402858814468683450226174894667995147308097562719327917954088521028479031560011799904944555332717130403216860258507729046524208915371781344226888482460592324076954624296779648347179571542972427233604981853986709489324703095803645437735015741868044116212158293865979950323532267834129144640727094625402339988927790210760159617989934140951841121875418417602377865622160963973051663250766506319026824629562076094750633377514819007462388394584493754726373772546945546143373609410023105047276108534020563883489507138406387069721380359855486860748845331642617533656013149004392760313343956032318270662870321241085658143424269242417973181092548297458737867393723428038512101408115936310011874341562205777503431688552866482402531444561362195559829349352568867416082318242447141610589347756564011249596857212318169317991034198992046458090059686206135118057247403769950170616178627241260171168270031609644447029373875399926843320980021216338104470857043335786472456717748898802731838249767573213294491272556343111349444423974002583071032879165354207428340487362375335515644618158509917788459799205315493195218769827587118037099008311968529584869271555092087722164362715470408776062757470853780952047368597136001209655445472233362077200621574176929809723782589887115103384471215132098570096399394605981208029189158814791351029435430256427968726464241792526995242112295367257838302186228669819543418735353735427158396078316297438213219999145313352198222289738736203332183819187975383984674753211639731198075227142402484403348573098728230759287395046679536995312739441337288565241345502468254946165038543798230881903739493168663193972865771579462057888564238400000307659665222255257650254233964973417608782527032150182280187133012975713258026145824548991662093931253460715452690597144981812878061175256251454927019241242449453644325362408284279829219761007471013198639543730554173084099005515333485131116711779142746481665547085767839928436245297267400838908911933706718202645132748584957085751668472400262181993540869250578846506291775783812799511604473906453912803285247134950870509303760352518255669674745455902082163213875410468983613475315157088748596684886741046574707634103560772487507897322437538525870882756019333522914275600775914393043515564660780881321470393144061080295431720429344513685774498871745665543006069755383651289232939225435087444883434635508876475311979991100210288196050531634356827181785792908267432455645725280432784586278639014036163738033527565834497174269320095899455611686083304474714102514140578817306259140765747896049597383552354456551959972601341930473634280863398886777385382034646548403828658245441515406371879495748510589008891587278367381885281236952620540625373799845979333506163437245641518748040069981934332763193348866903940505408519645403709155952993625513219673229044274201568374517879469072703113606442812446122626875992399332182970179208261999919572465062890046616066316417106135861585901568104191186576109761658332712188142316060374681288846114130058789285519800066657075328428921196145480523387805168053152130124059588690879783890680245367613848025294572698851309992347421096894562567797755682345862093679873885094905215668528234319804591108826456991896046731021516833785644537902543883883267967354053874540778311781700569340044843320804511081501569321946875897482629907050945349188833077223946953947388466729369600590293985025691165972919302467488050319900932353519213655976799427122283009933045475168644512192969276370776073828964023311038223740480580204266587977520974774260038257821369943961531971400343219596159398198595273001134884580183322914875199059965125200567104952062507329862515273738347010613627901421399477922610563236455756612340617844752996650164251476326735601910194462546937878449015454191739531327758093687092584363538594001206468623562298272316358563130404970061703125189156114280337499802608210151337365790352119021619241758901401429263567667017587175181578417753621351191091432293711293984415120133386049214435168358250256714283921649524502097472392703650776330778340484901589700450591406899372388323267422194450791148087510293499964385491324190843354466335009778563132647557085851430799111435929230242471534569651782195184399856448822286015773336285798222347569210374496805299911440940498490684523601757119662655217841483303611618319854736109018528217415331948958681552601178853104590065658151844270479588872547534262906807396513105302080242395512202800083746968957263680494273844148781349812263672035169592395327117864597380911732641972584367452873502287104685170982745089813790614306325589441094778006355067161990299168027643135829978394889217866649079689154712118377927898476485997124429397279315415227604472402026952146869008765900299254194068887930810658223795054559884232378038036317911100314136500783314665057927986808826946353240348799158801470719324885058626233045186845951569320327705352670141080393402271221672751076650423780546425842681864803574256538779777876337382666937021983324119230289419569171943315559651487233447388792796027671265587675551378921723422838269118485187726575268302533132975832469528328337472672231904175858970682351259148407025470409756557736141700276812219145901601308301876988392966875855270384130240632162068655691601014286189525628281798351465293359428723825106788748517372974882439895931270540562047780383694454728770527470019029312875965916149436898287112954610115371641955088598707169848581103444799734006256521958443817408782544047551515577507669976302948048062139832730971751626424972301866908310978323653332066354239943328529307528222249965359782611319113845542165407520917571136101787685185656481230993433697899938036226986769749031539454442763401137328209302114308664271854704096781033142003333772395534944035668404982031526224676098333959384761970567602658368115801644115256229943080786387260948812621687950895819798355208109804924290555780236245289824995486910148407058314461528298871769221783496459767729018306257377162650808344108065833653110866821648244824987749255316606823728926090525047196935403807452043255399867917637306243816991591934710594573918646549582697327588718096480153210257107156140685663570453464042657087276950483208601410909706306855180448549583818069443053815232296602920218734591369492118123405041697201480073412045248167692846852195528011645330773533773390834748180262011614529366424320798320334030929772039263867477193854576815614288069523563040958227098761884422149815919583380764325791713179848174888102303079796863926602752294667385234556183014184331130155246587322407693070027922210409387114884946453232315483135114812628457969505462844741781383989684078476721387575553457244670430452877897969469826828363944470216889749556976074374195106952767738432183776361549338750191723840592292740176320227496164364450631307437340799212685165851474038394985219573551503425830446112392128814155042524300260457112855929516238596062556338726561300088006354606953085356128959293753372167710610679984674144008193356663875472267709719076193457342085478396048958846382829093319870514427742438120336294970204995314675170233019659741628039593678313377521053391944606375435054055346201731931936294786528797234058662439713978785733166052281814528644741874283278344929207442830914527499800217139807836012335784120037002389448447864488800124435315320202511401010762959737997744341580631496279823219161737191060244146874215473142990060431746288585893275904284540753720504653945720389477448571090881035932501003143115452921840520550518304306636864755556037580989280623742997428312651817050116848985813290782830030111585805233731175330241001682055566541875571930874979928901248787308551325798492128135558514674142898070472122893074365437279069804826860379506112527699301371710128830991721869861266375918287657953081426267320329520842788765501646366704644675658017638680414593236241582038186116827796096024546637276190931310929359549127707084238916269033602542164670037009226253599381971913614802529624100722360240888500887617055948124301742358448297288921687242818849175350288742232521641838016767410219663633138456542872187144441748733416427255141623784564462399026844979349354527958518848977127792253945728288625952159142303596298969316771129752144767950033670929305085907262346023355570452899876312170791961708029016085429299244400919816353886604063211017604539386867585264280838932618731490335728866009848684241767065138434905871995498262384136148005881202633018392347542181149538187459246988992441136195104511733260274350687812044746030422018614516408067884285830206153024151162683870927006438191543661371125558530763004968979179088917009539047876505552242610810217940134372986207287436870292410084394323313450976960023906793332492910644797038463756335043273478731361775489422335146109489369855043686124643948780528152514231471997813876244509778985372145806075306684537637933287839416682719679136798960633586425142279110530196157534692732797419461210960342074786283868094400918633097281012766602366046056145408484225213573412960358781182493581533957914341185818076499129865698319494482141977159390352403603433104972643457715908866203066270735870223598821702366088377547428112642023963878935872409229252894836457031252209808542138582503467921326044245482378163131688730106969562458427353665652554483300455787869282838949105998835838657881068177499195282024707126465168624008750912728897975526143320724138684953803017743866877791600216982565410479599724454954362175377593881276032703877629928052507358002990285289609277265199476917646967362949453681426754573114278818585072434749507403471563017159677021242131647018486849625097078650903063132084116319695511290304491847783857549316496368924844528919299519555966649487470331574531647680170025775657228669094001130603237362294409943905163572621420534675397928123957368717922019397774045795637081586922334527872823104744165562829887168080641694147670672010056009957144890750538556114218431921909096395322409033833239273108407563479098509439939163108834307014309941850644780913401663831566523481439382254102640846808460398288746051708053119534271379847556702190695701565099138401379544515591083134749941742547904745088691410681824073095264281927094062209924557725744819682435328310970459646496283382038498701740313051857166030208898636749568033516120225148968570288391935786030260555299189526564833355144335713030800339712395297432997202727146137696776075511890941041394892538119397227949302748940835014783892739833033591547999021191532112873353005512697486948673702215539797840011415303789911186205519824776782005291694787695465119316687560497936602219936220130526516667014495474359177310987970519399458704312598028569756181325456335238571176235836774017034017603843993753178239505748903354586878078726818097197815960842527825038315708497899729688358964170757750645580725643109920055668453067108472777316548260807419736973055286894548215907505190184708482446579619057110732378365957821318064188417441783678968679045153151688124268160243889328835999785374473656072862379575618239692629579025658862450126966283918696301787373822041318900404106701076496219639569818670596947607756522368690545407249836396566547539223756190170059913218194927732516462494747964714058170201964977900545079738581325058110210119871981421526435262944034914310273478431843717122444208868444514285011481392169234247301234558839678937018975473089077489635509174605397734506672983390300337203230161790441436355932193305640546102553218961384444132442433231464979939435051428914799362610009021959824954148655815006384896624460084633939949785510785058554868952325771976818024858448418056562408088685503120144989414054698204488423567420763177317915994837016323776070618208749227989192151325475519789379297143431758867469826154656454668014374903188443285477367613764340387085130688948559712036524032940236924685076459363166177191716885887928322221254149796692628473472287599492699248586631554425425798550478869734505507504784886289657135098178765714416040135535879556790405607178934211801333026606683199288778402713903315585955314733661170723771127228943728586471020512417420606746139892861655104865657612499613298841794455395692137791399582857603450960386607170109751088583425623563163203775894284799791369556723107535489921024600226319338011269144137758442460541872629256698614002453650094856855538571919831134054030095307565699001655476852431667958834236226243656561549482967967149394750814024522942579645737770308672478422970140145616137201299822645969848911511435588424434077033407755191000913204322536416774235580174924206326736522475006394681964915484607873854293583183001450851329837599574077390025512018115358105907683510930607997275058122466426326601147867553365438190819411535935465856805732442812096025492645942518387656948845187777344030550978526105644921412886221394488550681883932808365197633529795234350987236725124113930250505873118784048643548679283531092410476994613558294429516382934154005846016483181340645050792423907517775510871644351891484902082347123224289802724134940433666562147940014759027225190814760787334802827926371788277630993482451983546909000900842041737040377656916252798968159665971054759880816068283445260955142808696640548109874558752630035424608992261490965877579882773738967363749800170329489207411766067623378622492877131565867027919950027379392123931523584456655317426899927425293187868959616314468730195723141135851296317227918161477410260560714771303460538406027125418127600562310427867349657343327311963003529736916580783378322005259182586971964979699412085463192082462016355928590210321916776506292521591111777861185189775808906822509926660418638967701770102432244290779108496607754682017520546367231757999245816457479556953214674407357293076150597315257479500824577380730584124163720908945116940565504145836812967545131616433575427510155864386588483040711364785127887423709571618696460853502664814326662398970706853553345338750298084668655655809704486900777327423397419659375637058336311305751314716862803839008040282096779320121960005722339956281571718675499145475321837143811274812071032713852893753301372135916177105624702522482540869603183166869361140959451402271371073445131607661107514366716571488662308141732265597729721269823921566607739534250183985986515205032007840821673323467352274046266819399139133057376034752225473256189848236585289912007110560281845046883745450679861986924019677597926673749877829345457319264634377206483447289963790729350061355837504483197456215462204359059063919904682928330686071239010489647958244324803065294621317121512341823573260823102222496940197530125388991381881713722275825293902147583062457154934852307908248629040464712096484907408275462995252982940180529355712383999844342532419194729368724746353613632585640335600239667812613879377468318591280262111281267584038353382168274276661566343550331495154198950309836720736995870146165271134988080202636202152419974641177892762075384492427193637664732431321022290247249326903403340336563204764610934499878420146226018730410326031467645007091338330532446111749572589319337601916870679608247953327619842410949390049646729902153401587171321626717546572157889485132964143262452354550684357061973830021009848889921116422983353614275711948964518850023355778568179379647133923315749903058866770677252620535939543617182107860198984730209636412097388316468493291136792151629030785787180651196243485395825318032283384321846440648846793395148811802720248126293730598666820133279677524450509322619548018521704998497529802853077753997138397969800321786026057996248620058278734489538879043207807916924107727506093737966819508520908256329376923827074737776851371018897524381917267574886323147385971188731826234272984546939729558862838129218063340522585613531588481797312590250109990747934507590193857235024640759116272166717421098914304463586940026395453868558833577841168207805476215470058467529313151029695217453424436229792151366543172008812404006497299645629047862271532960040024199665332565888747443087674507808543213014126326061891804409723692816467899808249394435317213413656268356018751457855029992071028198763109216819734981241461025561146023873337723357997996797879717993278296569076505868297484865991934942774764762856559890276616789059654193790294619102762104609796338178623941145415492145774158810283349347261568585887312476302859325314560376353752962999291260838786082304648248139042699209071224612741384663749382625442375902073233160219535982946879677189071482297902743983392140946961246007048995880938385417630055090133187393104037987929815652020812859062820126104863761902214266943266964961886455347457692380918156575758469145085575616331177922610584592491055059425617729803304765517240226793214572030906388747177401490572518396812247684245135874757503785570632975850710086554206734054192748328702697415917281667078163456550510776154009164232935770912429328399169578777185454038425637532227188691467629252922065898960003125154016019915870069145631149161412078198730799078517044861476011404463223511286921174490107897489258446292492044353336038574605031423790128581390828326682679805007906714950865598327465445167026209247240671262356541461619451516696818119884700990170463587707121247920845877642781252362795426572860722617389823697016303987416052476495708340067347604592399685118564799424766325543264962659192880370519742690194302361209645362279538226256751712511767248358197449576204896467803241766060604724421102255209063821081544387821610845274525258293952489851028597662436080491383080945610608119218075354465521886657126895038169723873605176606175624521741083065456014845323544315985966371736649749475725994163457356908592811465254313105854346931627410225809936921041180064889818136722763495550707209513287436257413923351827604140389807887052578419113975671943183126240258001301569836342691585260091322504157299507005470762241592105475284813777232739880598458347642094023228539401793013822017779578393251080961234930431163018263489532714718841555657673966928670570766933433328679583984110679888547902022125569008796244830839385663228702267670147865042293382479959702287568792880166599366504572225262352546228056751060013428657815520391211299480697044009779013279064223069652348992825118370244377280359969439685751176152424398141977937225043463596939571868693071072868783902074054787119080884716632949827586283166312841229254055728122886021716341855373053380997249707001174080747060780485452584330047141421248857236263017096562013898595714969303670846442646341486621514972179503899881635269654281433038932743398972172322106500397944099369173087455357055204607185228694879992131407867665340028640656122384196061241313720979225299917875867167169382192659114681998611052832253449288602400812755938029102721745159601300619357440418781915790375156741902264521664029749917446802853455095360668861047429084833293226108403371904184696199174557992254099043393236024757973786236611947652272265249399123863907174479583991694744939949156969111227009856979670255152661089046406012122691786287728180571789675341771518464744715560169387972951453828886954589943121522087745779995343453549629016994689202383208869267600935615670382195212965342695013942500924724399551326541875664581495159252239806047432054499510947907752522445863157726421253039796557016285244899229265911413497264728915598032756012382536075452463755138373852933404603300933260187114175803648488287392691566681196522041656450715788484169347879926211746220191208321778731160385997092226143139039169943339146256649668864757416960910664123114168774583980186677899348768813572018388474563906872377665196787485978488473407605750373084910566606406303364943587397468786209104059388432369647386578476768098345685641095902910928567054288303710919521106097766917164190749397143294310987934182732854499298049977617259226217137298912384943265045763478547889718120987682360668137851699513466016225216104883579696425961259348939826686408273786162162955783078664573617158882545273347470555269302741756834810068649379464761252758862425051931573851974187264267537824036863142423148026259797197187645996685803515295455087356220348011655349121896579816625789199425062384577987536002448023685097107857578896640694562044277104945214320750696994423300211335618991167705049212455688765851742275310961137602275404271185580573147972661262094875939563270847979214615924339879208495114326275386865380421912025070987108317880810726219197663462429360973217854027298492598171597779305501378646542224375207580454004252353458288818280805661245246443542812514179598400490303389122109556228475216594583718589533877514321551862452944086238567870839355522486125728526806880410537796048436736835581073859474205619015003788469206221018314766412329608560680427746506961189414878702513697572546987899010027317536184816471062385740446715793528075213857515375330034567845998036798830382559216638254061370923577932733206636786957475659452018624175123220324318615314771534011395420707482981147867686336026550829705650800273535721118075651131258275934142073596757692573098893696871266860815083936312782930486356831314665366917982224999313851698066350937003186203575960628727152650966504768346533163205597190501310940664654387446248826647825999999846136409627470250977296075088379782366178923986019232391266727379543181142593438249677202035848610397790767217927121745747441737606266045422218582055936535201238013275614295064341891388825188690594915219553871419832027161469575683762026525399830561456557134418045947689103787723420546700375453377762792488952740457615850277698991190639766626241637809038590464834086732713146201920732307515971199333350060518353113067532850021162365461477867826615244433131817170535854694563598210429968181695992558035162580900441744692839350441555249194241835133447089919595565535312242532598508227871212488500962858436836067776403047617035579690615405786129855486037005183326109931346597704377807449233251667928498910098540581331794768383089543782754566695469407216993070940300122147728264143709013827786875010346745693455424112674880488284833704934233318323628864819185958141151562300899554000161877041946528962958266034516880806287655221424308402638250395214461124180682829413204385829335991890504051263404930544983106121559698087228707661926654500630992912992506290141367622694977322179291297850915456299570949564683973588125842366098845163337387230306099526818825560706185179598293998910518511440436369992982092254587311022042472463955561149012468956744333857740581299975519823868042653690205434989097097042489179945752147086992387008096259617816636269612791147202098366097395841787894544255010634372166557074645545921828519429754691665175457938836285747946944162334589876741629220407438654092736425542247405482501861526672719888283744873353969413749107717058978868612421488818235661475769630088074881767525750267878751815338415639029696862813703518629130320662129447165262664273815315600433535367917014313077894005376848134124201314909330128561668162044976638312348183717029570016662885614599859476766338546179101167309751414247994018426905442154401758145456171575230501742680769584812215516772538927849795701371625286062006496925382311574570402329967423201591374753245485891296700281110268282326527099480320428429522562782222366706195444853231768923609938976449569331382872840698598208764777910208442197277284945935518962884926356910600725231270173615160347392841557709106762295095609537352894879473650504457401651477125804797746032364985508751217167650330691551625536020221946150651291112350221900467965969674610825612582547177627934736823281717248647202701482590184517682613113968259913414041588253288098811206330435995497921397362676517437125747556110626962753020467633849987054949734638047511545161064831324166130340954939920332490470116375728471474460396940057698525822518011102548811483432011837662363979772181737215305720199127682802669336181970100595325628428497218149772283511309920627518986077858311380743922343086659764083595111828524295237344593473234510767817799048075987854863336938601456790056717484413202472976148329582724728642825771480165675710142869145703123579801925897395125595699736826498769249190858691160210540543622806527895642815813978642220938571596863875139797667342552492901793122107954931962616703971098780402521384049996229353464601757139203336675362176380679244869254190687826349120200771541569576479113541971013180315617481488176626776744723506278313928400202887612557209083469794130694149535791028326995186395293617406659146143529928783270928473611067933435520543726481194704946156259050848072143353481501495950040947060122608900778706757849114947302987482724788874491676630646235824977139473531175818400325856003237931251460329670371104393791664149268618021739286165653754177719248355225507221129326058535922530138846304911616425034315844694031204842972517049430924561130442559027030118911004303222678803756930715511787060708558723836451727336557897550818938569969285949371906781477989875406316254662801697475337400354579748049173889035922621395603625932537824483164660048033610158593559558497480010342363144785312326692535152127781115785200850547284584879206998841571264638329764808954253997019207524435066427628833329939490372881159695773402162294916749456788118526013049764169182272064450263179103920731273747289460596055397417890038910186152807593386040404333275669857710217824043574958001799053849676306662796990641602082666194462322754427298425160528952023252696574410694988460769244875051251822413569683896926577384189236151028766106047602788685750166542722171700325132863670976770194247427799360403014597961869636598692032676633576907460452527414554096439959532131089909625486701888698222217953580931405013578737186631001637074336847162233919454610642279546032231276280659705636215226229147217513229733334933226016354500077604861719205133925412402807058524759495637370065674039160629427778217045907296974717300196430149528045704146951783275280961957809220888853475017972385433614782270788621595955652853325658173513757667051468345412479143171327452560577689417791652758721274229240509388624608236408977434266982637418806290968049217964018917320320550756863146685365406789501015195244437926753878479113343038646047461952452548286431739519651223088784346865830325731029714075025043265602293157734948865018796137421322027085540961322998285123741620871868528230286912883748772388288737954273157389407362269683444406474139720306615752075779416604216658262174828076123312672607258566884632328979179944852403626538311838689470126251309649467764185208787117435831560105121285843788724176495935834435690592527663706171094732448479394628598855212150108446041412026269679848284786997034016592006461867056585153870433546510967403644867629498842905302396897486411099138977984823100629106959608195412255220114930258790443918787759852836676926534794552103492890967379549442211772213959918872268428322836577715175777899052607534498460022753607654134050698130265094489174117772693703462407426844371148887473543293076042692752745071154910138265671328103799430372970670106823227774345782631322243972274918512683771961373690186815386189782782495395911296263989070682676064042423093273678812779896712045894628773130617258259077695541640533279885452195042399609206997361427796795642997014150110604026931869121123630497152533083308219736863351394358878742421895558597689265191091387608573873028732446778042614207761047961265531825390322772562616142070927633681252881260281418521997710717998190790696280707213694330618971280187388275418778017223694939186259896226963690390732747753344999104038214249220142770186728827166853655744014150974104582570982736762870413125516817758331349282525103740771106073107416712367611174332557990726194729438606420023080718368745286912752854697757062764248221968504063391151979665595655538494554114725108528192696030722823296345909256107789732803794201477511380224435976300853304710101924386280651242431818703052844063094417852577480967161935090326122405568992811977534703654532486505172119487211731278580190135204873476085726439899573447576786429645755208587314237912757089585389516368446946688990472166155850544939525258934969653852274830666585470516058175594853870503002546578061885899035456040582929337346992177258709298596991557993864838918364894909601808237362716525096073639492514569233204104198763549448041224806244466554387582857851964045447384797680434475275086577014814489093751964416548550138997148008973012197477756231449035827659682251165599399574339456029664813538207414614870597586253830914375909118074798882702453137815596294934514479331249970448702683543700473864660532278750363023362810073711663480914427887969772413671425592236394463933342192183123276156916744225980579740219997495956989127048926868450698099018641112057749992738816945274142400204010731610339648117044190561372780904496897584616333412617564133589530274050183968093580555523546315107089840856680769142038458579348240167458728215131235283391870913725528362206159200083754590302064048632688541227642044385736787117055658293922053465191886519760493792939903124359583663355975008147367561905378924675844653840488317130076037076154346127885815123318528633744126129532047670134475913188178756549752520622548269571383703375365196544740987745383468693562921229350938617133695063257434341811327289288408248423265755011857901051257888117266611321757350515064072269374498724426819660682078737645944045959944890833903730377899636751940059636192471773613394535557258842428909672161410630385966528098297958647890606218643626203072361692306730137546236291024689397240104245503154356190652798797064410465189530080726976328055196192887349362309295438591671975306484666272789253561788253948617084434324658882221122859501765189816232251547593551035836682438029313864481504840398508054298130171087454042513628669555016016861189314321548575872054912935380525914634371684746306983215310604145929463158365558532696231388095272811320597430932594505250824304838689271626053326047705477936728077953113704195069504397622246118246916397881345644872172347021453614783453776583320440776984580613051303415548863130612022188822917170761717127142630626643666279523887189745962977377298263237381482321269745937451415158374660284169865886196579637064981524910036100962751234667492207007395195055417595633713819699897426196572019770083990024299452120101119507044968715951994007816425645730360424064637129523613810240065879947372770805477685721478572899231924844369154507185578459904082742455987201768662248624356276168602532246361478614088576198824252204756312560794468048649367378428283349747032562437358215020961254658283441026056603701665860536161529564949968465574675138014079840238982054760197143001629262110368532193204884771907149478060536322607789848215588226514092986097695332843708256502763283935323363458764299577670898339675762526914801064104521180394105334472641064655391545928041631449992219217045906555890626231334812709033297879045959570313132675023847626043267569809732322492766113808104629094368269419695707017398285110385450870366075589710091327369013878963840202024543434922756029233150256229246242072066344265465845413689731212339355765420924378226371029701495246341314796428410740601309273673578502844296814688434650435814003328477457233081670695021235567125249921090715480712909106350979692732285290017926783954062678351387876366166945185805883679641964732548231380847038317194559487656484209333046691510632121287480782901871619496044637041646290542818318998274891307453053226442851459736460542220941150905727204888069503976751073075520211924268831308177376900278941728999694251954048910802830630201478552955835433056466398874422772586906335495445916678492779996319577318920442269123580607968955474296642079609806570281111073012155477697139495510926323702906992318376880122999091633203553630316249754382370371030957781092205782144869838152648938849702297911100548230696175341338800988507915289719323376484459478863671831421827073215959821720491196329526862384017477836980708219746281445001217809277311654513123399065267120831193357230677731288620765454040372974607526920955829992923466290507240906736419800851108022757452950885233726374300704869994607732109134534864081579963856725114856311988946797221367418695534164138358279821579071913923603165107308576563558886399643641696395683617128820181325450395054360300265563191636773418598773767633443272933922954301118059720778654803922052033544799059851715242955249792793600985361214724851372437696045869306123681115042073723080931297952519229717195615432530869684779929741079212210498268244371578002446490942230645780440589492829857699954125026119491665909516366583685773894915531315635916758428376502271087269388064316537281855178017725364860983920082229078306437937750931804422652441082553719558059227414934286879155367705092220196562872490393374838088284258667293065900077167972260923800039462832403902038442613264999876560747417917456363371825660215504322024278425889202099685432726214685182447890972304858307233709183796458923418002982182937393856198591545494347035579338055950012907028871546468058239167530487631613525401572603729166509633896170467866873238366657324431543924508014608657289393377798474375892354482390393159643579962711326185834411258879718426314069469680511986083496208857416660486691565535408936524634730507574988359392899986652232676558649929092582661802267428118074765891156487880059585672512555713853519297235780091186406599317534793886553917961543580128786048471801775451992031431524921732303168425527946206693682293774221266059067332011071466812512450294482193084864479371242641639888228207034307637435259793102565990875911161349854347479433599844558389787180796565225136952149461769525419911822647337491646221170417655081397500508475706043165041064888445134467835500706905575959204225853026869817289516520923206169495048910141973875399967921422544219360798215044997178872917739858924396461401978693499680823925673355880862028625242553317598678286954440778284310983390102028241681287960864189412727722389688800897300359941709481022658275726876423711607113269753487189485035953337759999895993084097501426864650346764891717143873070289819120556807090113154419901567548988179529319447998753875999644542019194715315746373977842000717163806744104464877510010561207263351724141140505948074755029409454079325273055313053334321276485507079738007643528890595392847462050296809645025230378413554419612530123225169539093789191359801461920215477556627236387613460154610003777790706736172309711170215248995959169579667689029733915869612910492165818647295941628526077781229464591664463098549543323649603945068615945702520194934816352911526333512083085782084738046870663267601218070437313156158215226877829479619418812536183428922298518668578494806347903268667311995389770636037203154330925272212042811762660361626229036712248338682427017363644691263480779736981754347380549742265792515922745044647205293075567942139259195152770497424209839053654268688623027277546654962839903714529567490869330135324891947625143038163463919929678305336868968311618895543799515332422771269655496488902247819722346884998552571807742586290461415864093876758403151120112797466786153269175156160467766693852316083371387286104218629126260676086271554365959279628267622467613426798828461363485046230159293766192497483536138695433004701941501110830390332695024758321550404252475365655605488571650551570415404028727170502510993851073000657252359378419141025760651418031965890419866722410834321892525753486021549998539878358021947004042817453919106767117527283556618418473180410982685151353168462404306447273951327586483115438899979146118211270193636986445173571345660050162711083674990505281299658817667509617559973931452785938391472881255038274224369565652966955140138684215385835773962215593758457631156577911248097768182028421385460432871451287832579774438591171098426617192732976193844247737276038130295666339699268945605844941974019767569536771493422346682947330111822779023047579590552326077969096816018032875921441555261083391338868220699581671794601560432556694122443674677528691580608357971960474218996489105574398150262193228119549817526810802259103843446183214517437893391856358104069831605843815142801853314185270890853068342254110722180226889001184987906650714057855998959291242333260690572522221330227556940318862351138255693811018775085147164136147198542538443397437689690142924466069061731505658410418024648555056373158573943620413880370994263344262000200185947535380758441829802496919015578819174594430828675291384100826945473301658348722859756344402661282210290209642720954033426197597018542820711380044416637677346198138522646277415047335687570145878145878554958209698940052329052499557761260993839878703753339697256392179864439536043424326641923810244498470528882213097928008556195567285530842160083406056507886160365210429723107897764969785636986250891488743135097084969546080201635489861606870666757675695309848097142291772276030250621340500838993850023871236471960917236162825820181270343260042887842231295886984730290973842970998550304476163845205463614345359570684382130152891229382627285854563954758946001822899416570555307864309125459764438824852425282793603785976888238048653289076052843898955252395776031913891779566047790724479774382475856752192790332240398265464804253344477459994467421298378333642642330663454828222075183796746305756545012153613512130219239864696893639946313941260103593492370227863696637655989509554702485784455294357320581480296073680876559562962084048539549249161070092941677302864002858793892002785511077204703220414646673363431145795977379348996982971835605087345491521622411710046966896745395678249131283162563044594960035148354061922334510890791554104315127166630906046164672046070344030165498493061886607413965487657519860559053964073965978570320850974574547470991094204209751347786283746790313222484621483122970116323940914448629988927042455277304912901994323537322897012131845825200409585960524283722986163453043886342964567203241247438251727445033191524995126922128401207833696709783886988199370548483877733543679607910938900108468257652315901909991351682026547170862071105208208242264829715324855060139012542167722022949251003051575922904771406735750710662874726363968244222868230088196143109080183205429460371110374926101545930239602180634291485591612139420553921132472687135693269684343622495600877993587713016444702731980146764480836455926164102380346044092940651011106699346038852591200588126976942234214864510885311037400713122489005729110267604987841138308982100621709861007793482478167763541576377663108659141505986109495607750765027563263364044235450818136305232269258757614908251227750695067079789419955551167914797842574929651467046597432509514959079898961644025128790669034957544644218223320586043988688562641292956799187118408312005377277261214621061974588366426116263200028344273382846932630886579943536325324452726676909035453453685078952086044997939549056248605498797617291564860684538922072303628691126923502184065659659176060910749914437722908518291239860453907439780610732970003203778241255000949290381541709008504127363993335818866180608925420010832683923870010793123988721932092918699227786814387410563194359616539146763542404416818947635974788424990819177790485735508899261097177225767856193472832099666981252160280387039959220006730558496350146828098082027224167396967145183904160250879375507621829392885663456307038299629613339192722694056075657620179631708420225959216463894578634976118884464846034881208430075532876551833790130579105423258993097613331508752691349434077237709361126760179857674255149597684548766568548623507132893642286452704422660359854642133845586679474445660084421021252028891890089760545598966063134146793813608298518003339173829260426276009617547911639093713749184792900204258610135595485606916077386360322247071589071550229909127272376058498831174948782577320968726940455361333503588574982131731852379002504882322981730867584696005931383537234427604251105228866473888031620402037421906543373621065486756605153645093550188459833451030782530934452759399437177203967796045230937068120254174678620471721177321412693251388655074330115878862498886778071275283073458117303059774341827629504333266071136039529786052462588354377702460061949188507051153187124479836114083007419052088208864562916615749343426934425856912847510705357907469902342994157594823377544692992894191335454825000993905289139156460415222105909401773324024464473904156659285553477471646894858342094283070200612530711409538093429626859334701061095864091051961897125409282959214765201732056264189051245048069135527451369193072933870897083154304894918841598224563452861996531417643564825680614974491156090613757080806854682405808150137076809022177534367724330358047716809316369233013792305573937195071191148249682889371589608390734152384648080765013869720437470559707860793449938726905705523310922056181808004036837499165640781608773529458574742887956200367636978637724108863420725029024712376791254332272133369146846475143414663816127888929305033824890093008778037457876855378496552251713884964602193687881734271573596201095783382697437482331530463622553783290742658519326931730039225375650659811842901238714159336830132538821593007950190630154453546589599143788552308969023582726460071784378247776800904836347178688950540369621857256875704541877052514706855642569743682704059874039412696757939715068513977769955288338639325435753859973096170311764280973368780219860510033204299938744078500040139921987384861255252292719460066030442867447985145652875961897068815985107911841716380275624044441395437194704564525527617500517373907434902844718988489051174611097653533189451899879194531314063358167396254913700868713766933213231919914621510520973622711484966890524884488636281361011426340666848602833902579286426742077753203221111623021016989244083078627630032688040647413005408109195341757047550904175945510989523273465837808589612934204416653968303753307402501444183294906175997311942499161642056382958196914982344764371008753923954423124793894993628721968281555560188253508202355931074203418112847779033862906630510862346294870765902141506811360370293284594997732920921934517506678800080986647212688916386711669667109573837100731140263369968896694754837810813894010252224105270003463976926949071703647543874002384411523603831025051689109033150575132393741847524175266957182356152572436333556419037330832236352888547764477701078010820918270457756398884537256275058285895509948431805677149927057135462380698990639183107022518019320437081811794600920190947996599346560012674994630366079790863175176242937191665512863746126877637149295949008170244904672754606550510205051213684722788689433482924949667763128017613536723898555019479199069391967479969731520623498327527116589805890161458225819574582253417191489791127280003487508007921047902670843848186896141660364395085607827344524156710184591011060220319595370142018830332257267376501728499394853572717901505520317145660297973803514736943061540970481558717258303542004230048416516849208286213357576550851452032217413515924151321572431150784716667848889172435003309782056027579568727412474299315098864963790073174413323726331072087534439142165296909314559138029141136158357352589683827376664273878916106986100822762547336198334321336902661689320894722085484159567815102441833928313774639448934528394153762063939360778471203259389796582262931537902683355901459337460205848385257502166558097052087998423527330690566679977276332266600957002173232019398400764357504898120221321814738402166763467041146038580719880079497390772189254768739472149800333357055647663949910178407991287206552518165224433515084360017187561288593497256362699106580322467287937549975862091914363826025153127982368571374947234671558745412682354334733842236646896935214372337679190384083121525785026547398274265269021298329793946925711092581239502486183695043837345480638980561894693509828492340954741272656782640280034673092456304710876249860744430775416931190872237303912049222994956925526008552047775959538155158506087142455121206778175729383506670623045255924336485623390763632727623482939009258481717736841012523342889114097949103901394152181548044731385390453061178543154334742265190159247087450960338775812752047712920664377954914830858913435607574786646073344425435704073999798930606872775546480866772036738679401307341126548347632886367995995908372746764663622619881906010782843497014878701062975680025820757943291640598639032146201269976414739868848872943709866301000549284686491701721198558372248884810191096029961929297458243357526950711558585348444521529764174513364192934637483910404376870682895613810197887285310639402989393052721103933220910376691909700472146031212645327223427967282060320016650136897190409090406156900480039432396206776735683545954718126419711483580229513182357822823773793276354894763206193372760467453752557029095037429770167761700828245323208302253386705208863401200816113154245608410351539945332125563131896258630332582055785159933207589874018731960783298315229530065718201816372862616355545157362391677290752098458351515320979610639073411478982807555442172830672623101071145590047268720954509455222370427680313345714089231854142147258219207397964855070310939094691669379458932028012721800885083616703427427746929332164725472275765911452103502673449798552695560799015774138554033941081918953180973416593050728648584523473804535496217683760999963910315780980164706807208587470790497321381112027517099071502706069451401111339382623673333266219322986249737885767008321532917642909263789904553047434047852957575902074722783474903599807430660741451663886138486531368384152705482879958989585719603608537530470817909292612508682493721136508883582618013479539518870526126805240205397469997670921310015598402733487404681749232049244981561708545824101647322734417588288101362168622771434847692068321473134412870386168696242650648746400561831287541803238466883741753251684993673201642189470148213044268714124930278373295366724830540272066411615901582028255551358773564981812797810600114203572521319586799816790092023105686082118529661861785131019540135722908328590757254763661126912194905459885581551408108980601223722622565499303590450735506052648923786422420917052529816936678388421806820656014034234936179507887038211502146074194135113063192746826497815310649349576887916328813713261936043200163781046636524784297140662356295059721750724410827354007283464855473379420225157280080361816597624202060380732808498569341497894019689444657405653021112451855486651414683646242469573550150714791134370070105053722414569155860683746665158097369072954540113299288794375185351459920398306392572998112452582278661607399446982489385333499814063257171491980419311256003567351749917632351918184988435083086417354571589319495445905224932856176525997902951455312595829586050483486499242341759299155279237876200115669122358084582996540653762103403610896393738932962657301424722944165048244165197473130430030557817103030089589653798132104826597792345857961918179832190469876304834403304174221991136528090973007857494715495948986709027589889765077711606234687883520296265597128143007781809441175167146260844624454845016276208533020888664227227192871749179504430428850503743647551360527038593901766017317765617795432572145866535531868529926861029118192809159097748974662638077967275793828195824867219272378513912955034296782542403057352176388416048793659630698119411596157191766096831772525829921223172725668920176296714547850330593127570746659314434840105298385654604265423276971937080273453117896857147631202878762138844106719701935414810354635834004985799312725586782628684288435342234187231577196777251039161067742505767823496200625069314096674972493018920399828945320270249886864323775166640586492601752207864066179275360198900489080836458037299457530124572322826068979014336337912461521158047625534511906931269693186808412834554819108700316815566765515960822634792055444869506876352889682664413616125424281307536114098402621021047416116831521536611395864746000974549797782538376258743288737286295220368611148629112736421586148632060956812874779871494691891323917869750075908094634779911945617026344785420522749467707325621269385567210672994292044936172317603854091388014357980826889290293338592931421051694164295088054271151838871695926201845406616325102995976632202712977986910903993847646567767254891336303940370613178754367292285778805378341802738797058193361428288690326047971005808292413951600951132320811333859188936788303415987531142175614881802519437035110281799484541186125431906533814140606376989561564047380249220691340148669613318556224579133834325918716044706985259425383322870615718838147551111124397870450680729701812502163937258962851955767428148873305541345797247519256768662256636520834233395182406419249823773604113728752373980938927808544145735520423865464894635566311972108036651214502947211641092653961689039304628292936072478882724120797068710033833449757451070403036178052876620011816696898039010950418736129930936722051386247564475023974419877638808315675654110727508359359617875253360899765786592517038476278434182802010127664865509988493565212471987685931727819760508756837070888474291456637706169497889271603081707575357799326947486680214442932073446703649439572528735454967773709179709342925037787639123896657388822651602278171465889394065522938344135763401011775725966087699139986439310674263953374418131486284132355566198460909047637045828489158732525681530835263267882501448260128386798869067489476085180719365260683720573694565658825584012791261939569958025859926035531304915419266029165695323341326703646594606276555418589156444910843964924817505131717684996445481164690459534170849874363717950461048051586098567952615172341738423602052496914148061528933082325360630547606849624404663020443922384347102782022362089438727407999256563099545080765774107033761847613146948747570630004074500973858726270367463183608716741928854758611227677354243418808105775511803186014689720335595300641423993803610611874741835439244211897637042641792735889060888774788702604422727814440984360362689421293177002287694001327561152626511622380738632164896209223085183412549148464524865212305040036918153688465992020721431513870177554965932208941118587587638831937057654306579090401339401348572929753924706635010914181334344312402959456059682405759558868028635823544077962984270736123103345009001309114804911849658147051763958709322873460449795943639821748029414907049858460421352057093698346644535113924718131843162054371498631690902652027331795074101824796115396150289868579783981708362444963015699671448332781362468718757628511883293820223385928080228302767646141249085465816616344645618390772020108908560019016593708859048773333816052749340748722548980326218336006189326761385524571850020115772203003328512541958552531019899637101489600321087905835804197285284581096946945591324866591230302087986092017962423155865499429302233586715155615622403034259515246405074096720643821888113141175003323657882382172082936850099551482104184929340419900710319830426435743117258677178748012319757510115646628497142284738319068418092131526690398799420713061732055297293270805245573410930450023478599087548324607576743927094151985162527590884455180468615126803541995715067013421415374803102082442798748507417267710650172700846710616261974118647562141921955403894719232652480540448174915980068879255037072523469233153968203891708478497019801946363914013501701055494567481965522003483005756342245361438252444982888368500070703535993535209615494109009306754797177070848921098093475133518582052907307135377219833934795375572857885550115961827318292999480343898242630009817121639802874263190255695380787220494072843478159719401183525064947648522140093813115102120935445499108083183893091274427695393018868683543630131045711646022132279948606026262332422790669123373368873483374463442086934664207543616141411244329423396932375556852640346313362900250510439690984410095870169605948825449367826930251495036386860174618372585369955151745152776510399708530333804953984350668109088851811113640528936718006135918300006630184502672574627339584448380377771124993042999402635005774969368274673700756433553889785379320212315265638900806776796745546879335446552116545673874698180565395444954079565549269020828697621025551650539534411637768678147471542898498138074095931888558285521386667549123926727746739077929804238502668361602826571650086836433427649061238149283801136855853476659980209870821670315421844199665273176865865116399529269607633966548309092898235236786344344244877780868594652995786187685134922637538131860400261731015924335815373897491242825412899556633592527815486729378323598543251663551870013382390712861609497882212865849925499469787043567508818096740199257223008582370657963574092776074755288827938210784377430617133946064567279945270415299294905850434395374015929417811808366667925559838695252343222991847828481094856161517713029492355891215483013457828250668838864122489664508580819554472678039535451107407314743410676175278898331688964915635858951309550502610501203522854727437506916966107585576550162052670610980409911066990886864855612567078414424327228690466320499360075143344301120168934599680632408436527668166873498229854609970725433058501184652101028743933422741792496901688252348952926320821019707003155200159098373573450207634469100123540314661293141221115908506066050427478082314384489697331613166533589665069116359179396005106566788570818167661545831834891868347760578235367669628633148556697181901968998060034863047386139299329867025755548234134504941782957920306559434191526806518386205106404326027803054814564735589894410299440675711340454516593538923113428371516900671649206166405069358436431274725416285610281481889371157837623250293535764433767447755898325179338540878333568576953857932207497875994457049048245311348418380201425814955029629115323482438984092606549782804059420686375665250178868424874739018441484199385607723428191191273190567755118944821744757612083315444651264442962001568633541597709281499946604941251764483001954945727645934868714316865502228553679321270750227212516998749682602788599370544113062775415557884108405678105990658212002318214841340857637576307653370232126024694421653739549558981501178801234475969757040375658813313526992754146292437699980482075083304712593303760758687879856643090974871774042183870066016374410789108154498298745826764573574533964919055987222119235108673073402158191555611980042289966571516805288940865399648468904420030411452336180810416266289916138600427892534488736385830247618496764604649961432878443266677304435240667548588847058211023905613186267828110016351354567927132188431914080649762480146941844790757601981444537648594492725929537919158546019600703485217339478250572274274915552910491594221957850698367652253586311577466438371856689779740643720911336974705817541449998008780415738809723327863957376168928263763489854200824645215985726079426411691569140331543482014239390752482507195102971555158320755194563156961123811535671844289764946505124982202648428098253241520904274425587016488137138979784842214551646700874488178896444844361680354427856984048599319108833859045265161473314229911858647900837845142655406199232229594870548091525293041349411015225067018887064235863204552065552506125087490260968668145459094090972134037189075569546407531290493806278828474997191516554408217977178202819503111775986668296170894554166150177768895568748602458016302094693242673503027895450212739273696926767112280931237573671431067713934385405219804080333799244957046553677869703997116212664752663907538426978710585222815605964185927725749722486026655240999415115677837647623957091703088599037212699767864923739183791744355286679023516504158254264101469136692470744016295008274314255546035821132460409211036518870044660789815885755886498409615470161381341485230735006143238354077579039666978589233414160256478017919480948185795967152167243957388505210787315163889871007413500172981200654698461462208819373890721286103876914384998687866517462685790937081423172475716151044112971083274102895808010255366938286707522197320744644847635786387128187227298856786656748332705325963733984605174648525430113654992801223857973857648691766383919038405458388352003189996484305251133612612283054711968117278791190830740670987381950234495885346704841886047015110854951392605271849578248112623595772117399875038900756442972167733004239269899692835345304400898801555182257002448628601895812369802417386163074733353761860194130791689843773818930573857102372745671321314767195956968346048503069031429031900881853400106711664841460298245057385544733724634116824035067546199729857257522149497368619347809769563832574944196044010169921870942110282259215274901803967013240792683627985663076781059027858808875900502272883377500675882346324988448120954659901162183259531383449548131755444296342970464907592208637890066855337917516926361798782366876806218021578759438204991149961711321375173056953562116202385422443413320123505500652159660662933559568486002272938209549514657116136064400008142011157758456692130260588420356076247876624254571389630874836303370725491615008471419249125898004843913563729023128857969005625944038993047866319363859138922704670204707063455874517669116396042562126012537176731048458904646492121535467338350627349279280414767254440095312615588989301521533004835703894851011076700623004904173136176435115077002205347456314981339307429799614280250886938514680215109647516880558478378160897290902712136452848574385751535721823572003688131033374616704307448679577302737532083222645499867005953426382878758313653646273444628945948947691220914820907294765122063869944225850484788883599001441040056318488553800671914599754970328594892987959075221645143408667658399312119311087909899098760614677061707567962157857246837247810010004070247049354928586721235811588648340167877873204169822003857431484488217560847932273254254030502251846953481364690572943396510146262824237382136741886271260791269225995073036607465662748755712777581283053325463965473642861390624730429014824237003809738718544304161372810736779293715024449773898725547881391580803739688188982109250018376976507860918327536826705222300312654662588067507867484167704981384415394492604758529732062675527721171655786625688610420689292096337698946517940912694198105953025555539596370067198792203799236517118189998639517275588836953545058292286887914382005079178585183473127663428093120487683901121239249368640407281139794895944438973348716455385893700852962712192264864318258358738757521779505066532121793905304985062714207060689499959028060278182941049596658966453762118348140174711776210612908220019991345523730153269491177469391184161847661385097900098058502615913587465182921935753239527399057380204463505544896823647357776890849422660681321536562342060180959488638050323425463276297297288975495205620061773143082051687012073273951737795804993309032745084220554882040330834076198400433109466760943027545837577458922244908161209665587610258808822304792750619510885909916170767735690423164728167593704283779552044112283595417065541121895926610675525523242583759128833222175277130979113875920709422343417481445164031417043095198263364492485208792671025357703623778861153225201933029704463169344069161503097642484240200219154569910731265961741332092768592247599755533863915439867641482463971166984441658732505179523577303300285071978033524993102181309234878875451881971825539617424387790557874907802768455321172608971833387803076504596481201882600331501210741806627300043934722792692291527187754492662448637923260237700095884132052488853877308438866268925787223129210642805483002271476725360919055833635496018618761408274750847396688698415123043812499026332478804756899692536219138170133617444683513564191541576498758504125375662304638819095044226037253935428149976551473570454443089753471234468949498042452393217224375545208168217875650664681200023222336718154000587436661156112082033363092153010169411073238894643307258096600452932201911138257486148173434463044270809241892529568331065480272424729097510777111072861305142566550488930901635623774615997975948346050445495932282914435238171949705463341142973057565342426581067933367223066693452315592955049083663793330785253969996836678500499196254975582585851615261281348398237048995270299954708008407026079500127990211953335589720475938631091040188296979771178619842949883768544515455237634944540599919533983013526999313229397178106460138398318520188335247686818552426109715526081377338981440589643255585018039282968062957297302897292731803464621024475386083867771786528786070961755143158412458038820480094177733401331108714847373985590402873072949567695597650608388258212279145301274005565702134471051823163925959154334650587722717508463111468732746396575048296863019499081197102493137188191768735038502037012026861392488587206802358678579783160937584589816287484380906854012032922559449999751703066418036799649297282550307122684807990104148784549366982197925762418735528241029647586188097466616855591509515966602815668781744342210949638232383948393932180860005418555773081309631665218804331628651171328384201319046581391559121228614315777840861688508112014174274353402705153311355723866413370817874522155992156188205114799401068009651260826469184092551381379577554532657883316296978790780655254833186811828244899298344741036629795439341456908562022876034034715740551097564672124390741827901590683681691374065981903433119508851454160518271311629260038801792600977559057527337960186887860210736848782222706959818351544128972574967375354337665764624736736178769483915358423728367502731946177609486765335071158272644102946455689573118454602077022874656512777194313915333825236319805587702354037186038206586472273689781200059804520113687952314510976429691353373435878862992462342199678360947818940574632693042306772475939627397998456965361797000394648190781439821363804620131983026993729315868421123385243422583632102177667116247699474825995465320322986193419141155686229672387555317667087972230161349589066271155395600490577335348897896642790906322044568466177498469588521802686247807825469671838151480528129674522816843494697966230024718826913319984703552782939964097893246415250977210984199691046250566588219187939236875546493167416133687771993104111144639493814732384510444298510575149961406873066364697116729998212945946344029838793605563543249424001625980808922814000580659639863377655522422986574108531646337644532676216182324907903541388961006619809446296145353358206413383397040613158802845374608091537080802304198645465231707161171997087974390591126817697299731362649474013300459238131884451422823131025853127003237608147164056398684451360632890489678845782639641963984273505238937177603919265808909998201338480109664038048649363495620079370794292360827869829968822594295600663755199191689780088550980468263071426909217216047619849892080327529239806687019808378414010524737249244780769113877155896783564661224509066708739106270370392379406928427025674649720426626394906598690323048478742368714363715254620944714685957413507771107194631504746171867810379587379850317509115441041262924421321602420170295690129924044320393574474647346354787596346096528906051482400540042698602659928011947611540377904190813822277238088720246705692380919744044163470630353189194256653254386848243980041509551960198597551854717717703713661365470365044612849861211298056825348042955521727981721348836890413756097245873981142360642018071104789909038383896072062301649899247362316040352636532221772785395674222436860301527296064339900307071577305831008498937238231737252591660938895551269159828936987779893461682236173755807495355957269807056470115618318609977488053775793749297666011617276639493685420274899165611119414254185801614420550405442651977399694218836104515219432739763283770480619149043757251499630604406007522385981414199788602777962621664643247281269396396691802419940532999618077722067833647868680040692364085686992307955346487332808555313571443874537966037474606567438251874410700209167955232169173325587612694723482815261402779833690119610677883027140409671512852900855015276968975210710482227602789793699145022392323290048463661646887034347177305946693277046957655980329842867224826647092911574476774887588299093173070135256509653219442585356233262307226435951844706045108892324556758650718996323225868006550950053112471717892962167267912617952100744254148703088337852958311325824871530423516951320546251452706164518290194633670876005974292927018679820739643677827355276464970865348754726681906818249548684485270147059304448145218149165162258075358036595451012385783805275904847730507932005779466793834157371216576253206716705746883369050826606515202684033398798407940035554496820295614149114997834265872143173710292774938249270608568202983528549628969781422476193763941297215345542651913393807970066097301278724575208730083575334724854841657382420762262204771579682300173694378713057279165922565834823294061679492777557921325034600695860176985363315934456219217017509301604044683985579607345662781420677612185330572382131000820186210163546689113793550077142492186437994765615025749250396542522146583977342029686905074606353594498116321008656502495085855603822849201843150484888986122340402495369606644329958321496983301189112854272525652180538065636991975769297855653104617980927530440235893139142206793134278282980445457228543682113268530278839971373861549021822778794858946830739852623189678589429416011922420254203138721422265651398946780557772474096896182319779302700848263205352144812342059003787324130989755859985337126868972320091082591041821246114330215364667668659549400720200616772289358331638917954385079407713113624481643403064236472380573465229302104879471087474943444068280944675820140870381478777884276171447364233910761742631816946183829387752197048728283344256667138559775706857965563832881621850991567396718426217333662456583778278649188399009824523354214649060227932411484694338168384760033387811892839295026421794303299098639658500812487572664959319495320261574756883716466347997599463101604870556472597094506519415390142512637846901643921753213213970286701491451873303828422324864014981737401697002573509411334901365706920379912852188605305653400025528258771361970870517968044640623585701285353702731352961686885748620311160292129328239077300520342956435355616736301172787317879028454820108237440477559632515567056229111989277201687877918238336032100031448901938028045072452405805667553684703713865254300594845017936544422847494903479611595137802980415024599284395952005662603429752093693986103748704633450955903386921024795502951306351119521993707413001697900445394120328961466416597962535982894614772984755724530146143032531377355656047692450771205098429099232609917485673889298435035849088714572417552181625960928942089440269179240592953050395324682117905740786105321462558411302426353723253101831268744697742851678540489728042451817693535154937765111225957938853325346137979672365343805059210067488391722843325799145579311768657772154138227034688733925593284717701763777607993647716668690745956014130113145486059185572343787198146893682299768712880409782184075453674839859368811638791205447240950343497642278784416547714725137593473156970423406932686671705853148391436897145923913440684973323335176384523660456226714100413161764472078561928402630517748967521785747304462930033664251578607137450194040790352992596702683053378789289711001767766355390179423374986217846226569674320869576185642644072512228237402448237485531231483279198333990064604692973180063943630467308186796032151738221591868568190038159263827443548881816445214378642911716865176570013707533755793800594863176253412339954739892910347263341780893466009383737168836744030485984111747189821484813310716551994385220955508712761053278634356826285284991271686698539872993199555365773196532277422113496626077720217951786361484984720915213951599049903893142063907084051299485143490626565729384513481184176090907423408475157821170908717085458560169431616592275818003554514638372725888832019871720028703193696597117801165747454384962396470929736514720533294609283106800716152961273702598363457338613183680697127553574218882093011371168727695683755928461867940201508621782707238717374916481110757944688860168901243268981746375593031128721561345863715349512389403708192362986002491388024156907732357730275755058287685958501646223487917592603144793338403230211819028788687961669748252929464480616346794677107698552634809318011492038728422234482178784451216938897468379964396596596128758759874950106187536933506322422646852971064063794300069789213000360507592128699816402803749485298430318491977870844232074534637544838624421383254037612743700451034080780897041000542973529079238086547050382319275305127549431832230338561562851787070003921515483775852561189028544668535774161035289603898906108653849299277540760146538485351570641663821091771390134179970371341347463665224135282040291161912328058183958824528050293751673315909767904737914383634970402264713818289111519443038495931245258619922577143840678600686536388225231629853066550239426988434277727229105533205860016959840148238940223556709657573084746575056836976384508548373936109026598172797524822689547159740891915616018460901902668192915987933151696575793405600612244065563663400417989581943852393800971913934633067845512763080182416514902287813120147781420862074326372589862314185734570366394280030059972076947268115392754152474330090192018376352566345426736377871175152501095956511605455800499801472018395857489433126235246754611510028756704662039106817748456989064338161752490942142476392235025282989524917710962339627061209088968295483818990776852579321550531341019607959505094907713116224746049626625510718460423085106938128804181027647082371242220344828281662721478272459699098852906916894671789821119786254007768755537125486755420082341791593035810920799026579803224564867580054821230145898902998620824708324891552705266409712339501265692946969512935899570246318361397545455047541277320402161505747315083841469719775750900513594117723432347156561354826225263463722289833576336559863715318532657053241420376176397018293878838849150115378006477259513518083626443649469440167720083532287178144641041516639228973375408485567580141402810194774913212717270626420994425773465445610010009734581840726214590086542742523429885716132920943665694794306907928978062192483152206770211962968727919132857208725280535956177011823430499244160718869897670055795137697503971220541727958971612487731994614137876927182326701624154361324736929140121647707937111696777790548990184110628584979938116461118890823206766235693505086946352628163377155881844981968637304483810304558566251653906449949747098919424127968458118465596198658606094616146858922246063352170692816276197128488424598315971770198944622173702969327627148785809944357728724522071037754921922970837862970319618523627047955923544407984814580327063991519303937103869756359651701411031265617586083519184680236288486715773939874376820855088754908024171885886345077725549554164825891983177341810543759543276552810431815516766526628797039723326750454982517402369496347076052435636692481638774077405176227237246977926669160168969989892907940639174606531653657869249655972124716813908728711480104235915111032619142405618748467333230387523435976027655642875585577141704943483715163747470229836293372612828762542419326844645494814309212360919512148869789508412741868498699831773289794744645368692814948096370780379244288469294634416302226313385332949005802519307835923732695832274292379273922217377431249029803100498584997172261160593678985356898451328658011893630792107197267533742156501494138314282408340437490160915037565771306336172036685304019031843631863730533449995825520389720923476172957492538146391296715942551895764253987668196320613220250947230805108824221080067238504797116518910275805058370238275089310329427580734399901912742880536253393691647377484674254446485644143231305318130237026836484473804858592134393640872650695450851981984524501574636184346852725980965498252121321252120930095231203666609742162785336157917047572462903699440241980603785505825515620747959556378951903821056851706810250043184850532350668089855918624231073699832172108709292481957606098814999093435700416227652852784545523951354552562531693062656962806586752902953730592409388378313922826048193455963344225271421286953759562222653045862053455026843641704690382250914822310955815162207257001123174233319436513374039031461964539906521027143284432876722566043518972084411075241353671472961877106605879374858658964884918906195546397265379940765369674617721720007299024471712726697510158416833335951174084814488277842525461924042263949177613171338339530241952488066160063898246021663268358846809549588948109212665370742839143229804222037969538091662184968063982285792278192279236594426741126838776539624980187987016861657279593702036996709751738235889303529833559115874372537733955648348730069790338371279892443186722323239027322517026104374000464476117245163241005207487936973230243074652951616888061761653425522786832436553568819484838341995921079236460057880008234871472961430417149820630738764546932809812924472797859788171639338766616233860136884778546001894961940823068882438078934606241108274635669057796497920717636773020200430357299433063365486719972885044836492214200628822953151480872595238769728636933048131021198142875379518655768957287533127092944266596167934217132128465261539872446514593786124675269482697831227473543993617277394196832875422877042434287508232845386270579915244844602891196282457259870847225966185555234202875322007805674459349342989156906499177788019550064410034293000618854756186255726415799289509759869309200305777122997991064717299009429952574303410524758060007194908545009229618861281661915898769970607590581626454093193906456503953037819085798196977758357307053546591907994587232900867809108855162505004155135873938403514280374598956152141060822079950868034169637972717170953286439923832386119222082865116498632296799722471561026984483409050459209396519056885471762630689639245969196047426496334880900898508082313524168600237904490867381304837796432390673334010887785701083649098918610066101786526050684198359553990113122831822814906272303910575875534840344969633891539531512484758658051325112333723783772345615816004365674198877024689164619163676610483968404743656826922819443079853649216514800470458111129738205554425587380946199836149381502425118447337253108616853858168643385797779025878236388618492313981382033171884486839763669852304242318663818656884954425619055290108790520914905030037036640301759659842788431538742013640977215737693973241441556518536421671136089926507831592826456459580003801618046945460910497243898661564448865092494799838213699461169521464319551475294318094017068289269773360642833952143351743923741040738274338584742460149452555877181494622953628872147476214342325225700653460433122641114116117995202802155441428698839302433374777841939476013584909456177939837070553796493742571137990770477135187714114820854511960909137427938648282555237460017554011858551073934325099121183118297410643931323184993333634676847628350064149200947510830400100903042695171761066816344983971638206691994877321057962497998014383412198026942276640886987678639907941672907828868061567866571014861681923092249013848475524544854668600847770899180082167086445354410430385527970325723056606759297088755068825284374150595684232299288848545971486685311694536534236599391781982408875434685158503012465668232046319321815917126471032652999665134902467844456807765386111801510734746716388944779836416112268283658877613159308056465746901553295818519016464722358686633271398480410015199353267619291008297631269538318662742789597745148052240957316717806779906878143908162266912262440810171832572102488401166116321441993440164876208346746863935807830933978821186201491119688235693497724372400870008696578137028162317740666361174213230069307739970051913494846670659916972705520514791342749886043110020173938023732275922609996202597772761756555653385900470067778210209466942238110334498976880472290393458463545901374509336008817735915168731889596422171417891405884988939725102605578865412922881087608571531412605744648190799183806638646299652529127127139205859602623830599490442223474012426741053335404242402169763005585025075258142719227835649879343806040686054152063920531952261943423278940639211233211206598282931773256112916722301638164303109199155067747505314250274133227191076626594616656497800194591830724595657241450153797247648727383698333423627587464862727185267721228812623891611369084266601763933844969393071201272234324267230797830124856085260029130478790448736881169195804215838391640229829489368538546603861646697148040377004320577543225465488727250710958137568470532398140127611089212945218560115888270525061004209579094384171489964414156300660025642540312589248148776325157229163371219799287343295912335905552921573961181747795621403759954945066046170812874968862861781388938226049504176276875455094841059603941558110045490469908022944738908598402085108475650132150987751264190422018125515250971946816422067740793179298073841757535212202674017773155270793543903709627146867341008934660805319472640587290345087113049281729261433556501584748528732278646986646451377218138863710778021776769900148936073240505392456837063434291151983156372460665022632014097987307478508285242227746921375397114636572159527967594899385351555683643707850165533413739576730320951827776075239842665230250085832805407126968642895683685514874079974920971368526897250051958251347393316642158278039005044190912167460981280074308657372042708126613947480274832706019798711315191136470966697815136864227191717929723751739535364032259281213736356110294213508141067525845456460763546898669436982919677190247496291563724227902189949063768674453757667987563008067659463527434545636096564461943041246322207363475006844567999238642725595305420319748235609951440015905136285740448298710771476524562884188035482320933516826551432668065024303262362429274707386251427428471389397105422758604202023538635753364153561733884442866566307187298519350584616047496575557300684707104740279448303795482265164599769764282546981650024072087090009056341106187983659959635034628494803861612413025687351897764521159871560647147086695175609993965145730015401211151478438684001823404642445533067210337129999186780715052664034840341084939148613786587793138263475599537058911307395972943990107621741342869233147892831007215324586753724998606677321090488291236791000521313603373830036218212952674155500639195219824531127284432711197156560931269725551373273387026368148835117858440329341763270366299156297242777627372208942974129289260631907163119364370780180753535286225592914457719431849103089489745081505968311591517165103359627773437142438890673178855259016397727763097668783022854676134342425143128223095216964775524382990439253990745106802651090883693146451747153646224679559023573131961221370719351942740197511592415969064980192542120268366779162208518035965594409176611088903298841942083462531073868278071976019803610370452372657327161654584329631459189615200309928845470099947117242083412371026726859267701595979614577448460476942546610552034323603490957551133121502945576035366584213050386182848260510036135267015155469771987535169501270774070207319273505619723093147171875799979479029363892956260840545599366756061059179889688271196727890188096422505579501964633811993627252813132553901724894629405861297988811356418216507497506843618790506553339069166710722108981772541836587921968239797383762563348038366820880926377305740225150004900749238010899139519809872748327202179993790244668128423008478566724088665911583334652721025873514565445691118842899102414177139398949325010886881464471565365374616529366371132251584793667200956237069552060901445149999743596812340224562777890082603896821231852611839358622794253968359091378306446778382750599943029719322436770170771778799498987567825450780617469099329014570175986202438047761451693974616166733917121626036536591560935516188382505967786411058451886548135720416439445203625793172785571669957179256172555078150948233582313324708520737771571771804710704766377468028197084733811940516779223613339855965669215333421288330777667455097688976226034914538621779931021835625540914441898633549850113631950195637230842026597204888030772096297690642293007148952067391193216479424965360917141498612366359783817737660760836927929987685913374490128132757477366854702600802252495403799440205508203162623203806480820234677320809666449030537413583984359514981945463203669174908633144512843457314767576376272106037874192716715816076978945921413824284433691117763848282286195127476647869588877088926580095266928242048979568643586881950168683410462495963116804483495283135398947681500433834986151484720221877564812217638209091836153636684598357170271020262709806449888394960701221224823610648089536900335953369511562932306008283618068579792149908291460836498561830563538225425621760587753924552094376527886632683595429277946490210540656159831542955321073221772539247595686160345260378392134290185092848234091197730978084617432515230226400999061099203861973902064575534764993179273656687008068190213340951292635626990768285452867032867107559820711182949492820331923552162698793739263968621853760836099162089269701918281092447616030451523256780188171724699583871671307046160417946239482921041988430230491385476148999113787797889534230658543779213540714179983297838492693671262952617144664752913290733165014341508321884209335667840935034405317645768236356539882581193405628777044142221886658729978283582178704888685596097675024366558572901439541240281469470609270500336653694213037783342969957892801352692928831613445153051634175159358545095359458711994159387412762522538291280463382843481661358600283577945061097012897597459953687096292145012315159528355102428575384702766244706083183284741451406672937862877560782559294225159757313415024739395477265332956689158300066559149184352571953105068545907989072167157715435830250852335708763566196267627316221641980767966964282345353774820104327904546251325817465001770856306639745730197542774965841575789491719455198261590378189907871521772249471286104497284189046266890180595178430660421431021623397354639867586898465774683229981598373683021505525631015457478106276414955439257856171823137469152578443982958121799452371812737686602508335676206386626026577632194117706909662112261714444208801232111543265119239609982147030196802841184421898831504350067278733457167643392809187277505261517387113583162562568086086171088067478944601041557283924394579968379751279053915299981702754547794920724881279260192446500692722312717494349539072234824962955180572655178848327277373829960305844997766908420472243273443641638233264979364745560587491439442247998769407270745615729166121554139994998681674788370197153527299425182434664828167986002440428399271315776244440245529641296535787704535680175860527468874217265927011481668204140388409878360931734153823469628960956459995188277082614129703657263501256791096111845221961046427706961205065140329112555984394405629049018848533681755400693071376547645304563650903696160661381256256988819385544696986280447682330652598151258525061966285390967593901971078109401519592853566620485437387218554778163325164879314648872507053501720763009619278055953712777667033696214806395358785571573552940253089594598268565645963837721815386148393671781679325755790035598965391840526371094554769829508278152674887668429864146331034033276532121367609866063447170229792329441694762288232573823976599718359567112115487202951446068225256621667670583007761663681313068644139149757317748342647262290624584561109595223622756895043579153270577309745925799119389953575986235648244309234548784291649098689668033673456244598063148041919486067453153524187426006535971005553912962573273155991422148501470008246720958040226145807287634867644397613001690294089165507288845988659359188401077210189986975406367996197341032678312013759830072100973956756949560464383548023223774230233517769080421600968678261761733958518740110915360458453611142461421287868226721400135431559950762396794681431561450433485500596350048619742012633840893836430150562573967475239308918562641718325884900885271438476861857384976602264780380502477391346038726958756091465043901681841497593361372869345217052045017359660631050879018544335871006197458612246092349293141992755589886830793764198727490691911714043301309693813174228941344325343247198432571944838069081214479142329399946971686850972778333012338438696025944012044207815911772310285298519300671125271566372199788454482008659041962080259699900392148210566288900084998989301248599488448132151539450530711868997164739407558739670715254684252862358491553057248451264518926942493504544762929901382108039876274934345098501405425449310831343771656094756703950574080892096711154612765872688347562658317182065095079608486363340373608482469778697098670464591143817471162406708943693160381261439337157597222584233987195476706810477435370223614889423882987662430971231866517272328406711451260746937411448107912334768190889167000502429919016027616805550930814622981442818800466564892167569984155550955936126967544155099466116588630934120341093465001208441516788352765641898059442965859703521284072230570739421273456001992745428934187706218394426412108721566512159630660925324153084345876466309606907200308760136696925615518006278090938322389410044381038816189238976946209795935473589930192947535290670523925320882826138144218659398294354848958221003994091004945359508162145888972710632249723318176123877759555848352240923827863697573029263227047411282630924276973854963294612768573176421490259609415970290618783864701811251513286392322644300320275345312917257783952149385263945057254044010035609596465940100222127027668116655748801539613052460208635748591725252028312873657198036485334898483178304349245752203063271779367385584722388354266096018893422261544224860364311741426512614708528186084146443590466527907072228282799357846878423180275382701378370367547270737791047537988704795662548518851471420244543116190610971858039834088939610224593515849960376599994816240316152331192920176649342727134236656755337024800438010629542168374720626491333670720342226446442411995539181489186019773966668658859519727479217312161276666748411845641212264538425119443659847554705476096525721149816296906686984540093674959890157445144130955392746993496219376108567996484033037676283938287841894404270107929711911817710287835999185943988920809395629395078941284472529152422884736333275219915501837210785707568367838523388971612368715040085906376846311502990336567133561858106143252810094297999010830870354449748188482846974417977162463697683833589745968474047156095606378121185914226706710859603339263370135717917991548710271592624508665526521901526508783414522086429899294451386532104480138749345713056187889570843944322892344037954365248650255412703249947045293068925276399846176864938404428438429097214911616007275945910656288197107199867542315334273187176192228571952390707674628294665179129471066545655841499429620445644332734466223280181740436091427217760977285591107944655970923081686689371032539806228757039975051694441941251869603921578274564053108704884227073596144016153949374413735619544583108100533168621281680076365275679483172152244755292999156569974696637255324663435587222322065904964878553523343092450854845024111707050092193506924159435979881252517896229926239461900631938284420868093520641962244272741195262176402479031772483116824084747077113639979242295820820309371177857545416419773196160431146653971651125670925081608770382483029707808909760866037180664588613465031078445012740663175894305736053514941996183390815196415139024316997918871817137601603371087092062497160680056899309641630944134952603562722098423467991757144388055320348758839940805488086755038692981534366979038119189643647713111625000395129869819927653371553899183856170668342853355852117104213525904352048907562079553823742851788219397213597777242033047412864362017775906292901001326838214646740435718698860701092790611249965890817327079978397387888043257964633785343481710389345534087472270684728522965424831733836912699915159722768369407083945671296940084248271269638924318221907460951968815419086617983133432597512837899939236558595840419219169271350749003096534026826864054944986581965927245587491732934571947127411058376304130767787126797235357701411061621034751096456317466220900104253416850232945566014106676419036034387313835827641908722583193288572537147442094706743853130028165245964394117763866672971945489826703303199747023516815090790336831916951938730792715803161702464757355539723055126371616549129096365634840953238065272655783857053710589147901330634266587633116297012234504292619130624336611003056857482173566127511349158965840757660431917243686313899490379786077026178012786026802240704898264567886609957600831362523167163425057168292035722024292587146257328105929400998474366268822401468285963815623386211250168426328890462926478285006078618174918556507427768664396857623859779109411050657891078531772844667169678546460503058739377891400107696054966245236061779339463122167632017241993012203024034888375923034389519987298501181565259215633968656148592659711531499032621325351585483442877844085681930614859694432891405702458508327707795420555787619993495454012164306123454335107905511112401931101776137544416582425795882034988505822562787859467947317978709812424062577089687272464341353140775262914709786274267068719586991849558142689538193669623064037465466106838137054280359785555422539112005250154443405891227619491900393061779701529915084446303626012340515492640058649265700761000390429591132221879870236076873002105527058549757092890743923441017326790339082163697310646583634912497920486841248091570240481806684711658337273678950702181235809391409387926842133824294305359556384935254058612424217242507261606086528201813878180639009461034679237443192923952448298714141000709701493417497375027572052066464945614297338575078189309221193949441740021278970315607879933083996027902640255879046538859043930089098586274257853476155647793542489307664642621174109000474351175339807714453210813291149086860289729366984404770719730064428138319403299427434826902780362516134519424372067416808717541516753781476571162618813068481022425889427445650593049643224896927951941891493250099803171927784145650300067137153279784191367081848144239296758256314909090021490357699222812171680152592472067038438884503155343279761729389523552576280119347285605529945415985795027142504370098151597534742295354897579619011383427833991867731333340839745578608900527244862031795958412466607546856379463820656800465172984572898983552923330225381456124550752277202683136753980885263932374385213845491834495842787032232709000200426915726782370483617166253201822912380401902557371267527788044571915746376058285276196287881545177209734074870239494281678809421993036724538092255620726659981493844926636406689538583740108222606575265877221501326377522051827897430567300652507460555086119045437605033828535261914107831069149923300661609727722969949455141244843084696101366773083023669954959074799871923273986314422290003290534216021276639889802087368981698591611895748765280313117913768872818594212675752557677938163893399747661158821631946398803866659248966653054233313913235242895905099412684989558569954830721720492414605131818173017687591893923595051780226082514206962253975550031517827801817766950575398708642734591670037188190475461455164823261030139166232280600581091850220800255020475046625440059309892637147125061099517134062089595887381497958316004501125709731620340818308113862018410058952561763362272045429442634406865538547774864096949921662916228536486047730702608444952702684348960168061259159149531678347478035984743276569317749575968593934262625662058246154297511175702458010808380865904636047449350021873428458034054253025493775869227863547410195417156644121593313798037872179161388169128827831632244582961011470834942902405671875600411451065150648880865892702528097540334736660999767511046934780431376561440994555270845129108100674758854765449693064249109724673081820563314901256803478985674562195512879807337497915251952718002209624891345103460203376769172862412609991574553999822956705214174725359193743372615218768534282918680810047750367540717217288432705949826161918492708933075605537101837297466890275110315035048778214607750228831819288286498310971859807571129408874475824077201534680264435704603656878119683458055900086684269289794315528478674624120752479139687911329803883844977827695084061429456906256023110809414846854080359335162806128085374885042227111916751343319746655926676165110824432451231075984012590893458452990278594842194479797160175444977042511400955596682137227912044331377489826172053741110705709209316652091907410715569880812842100349451006474701056869244798156075010778380950451104191428510977423116754231310479697521069092894255598048452287452972769621374777170372791039255390288164094070396537157947056651360937263077800944408211717146920505789722830170545776964397422548404436691921223843786790510791697349642245580488125051020346712248028899765066444497875067439909564937501788172624762128488391398005795715602327695379584556919600206988972819738250245902311854675985909682059074061325096018447923620133588336349919561116564146546899760850857436564933313410455601010169555553317994037719424763250233705630550296991764421219506633606448009978369493124615426845648179603492284857062588505056386637310400206990775885018063741431046033461209015931796948945292635206226282209600734036502843072872890091799931922166954468885299896198715130129202497075278484715793444103504611532823525985091778359253083949308617052275497477513583872647794441878102848232976966892419880094203629181978888004017896466812434364566877526326980045492518509714772578733222410093987035153268258101135803597519523884538903362378264605578717841038894390231754467744436821045832839779704684292700346667634636050054368796032198951754818479895334300824334262356312881169198238422146645020596524745306429936043754276892641333708209261800513983991155058250906881937275355880775423653983195751865679548265526376441168989044479144854430908212562547850330175745773191220506350296119497013894950782618534112869881812564899927192767197487354685880045062233299760741264984715674219511461512607152005362010713346367781109344368408563306506414215584530521855619411290512699839053375382902301350115694304492993619027800150433744821095368669420521139811765453948585493046231843717798400778753599927373143679306956716734202164030335193315176079854308672788048557771028397817682619574071711116790438502848177006837520143319033534341832325044021889075227082615186155695813931068554463511470049244147285789300191480444606515165513696561340223389259485974611761148890131372779474385963907089304258430548024605458733276900704310453350097183491411425455243569203001647556667404831705452586421648927089097760529751253422513681606311279951994207612818063685917746259765700652115832311198088214945574804528109048363679244243850989598124942790201044593238098869068838295564353175699099633395536068282501081476085973526362283356045292700309641599010511086140373998939397059228952953490395412769238923827017977813589920033078247962473016703815262268597274589558380907008596192825399737254253708927175602777239846301926447768487811599625595783569957916110591818574693398757347544056185803727013440492698654750796832786149123295437492572538237920684677473790465148911919552887677779921977883749859214499883179903678709901795436802064132246871308488937784624426811780454042150086938831823791343241808567006966926960835720987404864700557665888814505283718217672617030998011150705562710609984513053218614070866635803654022845490124926496047378741199929714589539412762803062184428363796300610879127525109017754285138553704425958313383976660269791824630197145616814901589601598264868106807722539791272602137136659850964735705962492755232751151788580460140205013835681236164092421820882067803508471808497430759449636998527776030597299038099838225746252364986175272562422657645600629777684080185366569343369245103007743924214082814412027985241799045157169527880110285236080271474886697371517476291718234233587801882257492947985168631731892263202585913598339094984445113748593783233980212900513722353026128224572602999732483209323502390633737100880492545788979685360955847406391714947657613515222545838999252346006861708752043968188641822146384963822871892594515619304771959273080844040866610178604318291921524458156226199879704964922279237461248423926537028298424299288827493030994028057313419974267219525419967228598418997945982692756906693148621160166342715892430455687291976519719483540426880521021072653711463228643968877666346548121314138480878381044201411242578157310235605154168304609598399674038133816970719128712000536524460608982720815246033698819952939793138042759990850008489983354253737823007839480809111807845354493135067234070600105335984028836625966261530874594255323578924796477674466174147492008038175702694007392345555532301468750035323907735854048681280102547745804598161180089313296279336494202123474161269444195093169323396826065948103626299994981370327863494394638048209373213489125366627773614233182312095272160259957411790521899460338697989063420019228842090779495576835980300238801499482597352636113301695272150387485196266737275200619611866786158368289352369665366427009198965258941575943673659819574438244036989236481720751174083736191548066635034066231943747680407880274910311072473324816042200827846561265517329458492480967269196070705320131554796491148286679613737607970639280159013728122104805686571834898639548771103951481080538594007553648150124128909963976995523998768945541768739262483327242591945808559335669068760882765459448249778243772196098508290437201856684732008702336944722830441415906285285403003708050310591292741293136897330311986457894879151946248117337638084245983694761824036699625486870542359523039715612901838216188530207478388075719972058421339742182836071670177281813475369016358729025718605342018516943621136975144628408625444435684863844463919144363644776703160572844366212835248917308801288214994611260512778999442155575907258093235415174707772693501336819365247111009564255913252994757240098453969198440757873809508074190018862733656441785673581326925791671600296786138922113025949938525853087892187468720982252097833606965867347587439604780778842230203987109513191231438404104670053181792174819475529087070702973399954082436257131677557935009203761325765830490588140379891119973525462460688258425887146015166108082508002871925830105677721519031634493972552257901217575743814691595643245784049367887679523020714766728492738702535739049794754765953866581276912268816063043456608031967622078571596714605814210448786334247079551560893239894930885826228762053348169659371234242688717052829670800672028303214776573820709407938509379838078394028784222854306001498925322933361216410384759703760332283051128276634663062957657382689725559165541548062571620736747110753459823877167999802455197136459484233245532991691498468223921063466943075958421710787335492409519350185383005113826605177889217079598911934354047386395411880131049699005111570283523257984812021164265386627780388680282964112150125931015666460502557345762537420092950653541515230253159162553315344464518500643591872903513050152707324505944976491839962439710885715010476873401499205483258097274601600052538919929742250978075823553281167977865555451337920507273331395983937294345811217505036218756644066100344554345654697406681371822935671565201680886256841010309951711955812501560548960802183473666939535111841506226060877430718754769165992562369025627476585304630639818722572017901768691260677372880270781471277606739102268995810700286821376201287988782954254315910766436933553168010671217027667714267379228622353105842129003633168990641727604935748078108504845533677760612549509497388135464416953686253156034838408961924800400897867951634096825340035556472585983786224227736549724945567349343568407624995223849154174395693360317868942288922600509533960621758404372327558709871136089077747043132155256331511442265529100380379234829577165747942309613394023856982734495535020894663219077454688546162253816765838251633354833092347316777753457784868873422569857842148803598660918666536089961547890814031880103641347414826885170518194649889582015833937304339107694160122364691502488795177469550359330348259242197868975856797117346911021821203933429980718377304246310465643835595538170045558738124564386336534886825085439626578919286594330353301108634000888985740437008948396730877773719516597604910887999373195591120853177811272890346360755845643450017742859706598069145480286434340702322129839663620545256946579284015902940759556780255290351482125683789621462741651073077258818536688308135033227736875506100172572074922735504338324510590157011691011102347389137124115163039531488658833986606679360188401122803690118890426842165911784100413810996319155757820719335760873175702599123575801247942443042123986207327221361518973856061147684806636186257455962433777389368831220108143846074126989532074913357789115839195707139914141785579817159509407152987696977848799952009692066448048479868995281086299986559677245518262427264719994430552584093565855127667815743110702539909541933828396682948085860894186102083472611165678465715386678754238359476203649889841268062929610420495207735863620468043429036528855071830666550832487060769125585888594650862848584629995172864832931464466167374829243594800526952077869444898994327509213702399504187235008729036330323623635183762180938477704759478235947645199484174361474686075699809588567757838147003159869882947275797799110314222294577719688807858051935888373137451648873573194033327681386585568352857720277709969525187979079338165833762996923395939215000735179338650957929287430674339904661117421200884142930859529446768885548900963740246277439655574502272817030977100755151375136737873354508255825777938460236200141978206177942456492014749200954701015374265355332363085313427245769706787865526297771269406067132527017041546964873066792856980837730883736204275333334680738476357054310591109540985601247012787962670536597617303490932852876540213969175559636812085284530627088025388889873721430434547585050774971473608155424551897859696004575737122152899487377080377927436462415104032709266801583959643838670237725854927501505392461721820268391123089362541416937459680525004208820667801228521727703629701641087707994640147546999870475235563810733955938692120068493792681657653064910902421277849398658265874922790215811303917336602700544892927298965303280962620926569733681946066718300234426906198068745488727136477684117438216721785628785331902004923071026516163147502248023175946570487794536968910369872369472473567819060563372433402414382091686189303682936504668247194231504442811505327558920020729114246624384249452864795255859542235444839796285004915937756051533398353922955155261221103788561602810696459009230135973614832366128451139245140642266030072180317271641149838822771689971614946621659841241712299906434558010424516280094156563701173105476609047586440140569563633051659284514939950009947310111160958614800319457726640974926139648176163398261584189099202049022935082414386845465987319313461445541713693180767460816927910605925951331659981507889099678305543213397566892524777279470224674857884832569017829605961966151446725319891717928622688146805486659055978270901815567456143552813500266224250091382898820202263414717264335533186406255693986772606361721884017424989990104849126762993295870774469821819358798480555422560823054938503591489292260530119440773506512739982735105754345873239908619150516547150421868985670784464474108361969186311699181382909023094588761656911860134257382665920992129529340989599802474932496950774876824285077592503765824414496344769116247378034848373840874259369716855200776779212998431956528533217426392568711510532593498792452253868436664225745037666491867793162827964978964142788766298909129941194188884417445601946561236188106621202281761856628174531893022845584684905959792526030842509272354307864461078167296687452516730628053209976030066346924604321129302028538021778965367197682614394707007396481750363454431006012261402671317191408730985031139977939412036848856249756853757972046913849148538451899783448880295325131821093895150057057641029264575057928960826620529419350574611120591011898416689409470814867509927126635166350717755255975278458914295594340813933507262494762838138265771318149832883428748735473228386134023779376972602282205738011542495335837876752479977194336466326553273850639417629003798966300766894506578820577660081520943368490143059030641948743853750127267593957278021718176724303521948884890750275297719480950659076892433098393460605446794278937115189814846370425277791207610069580259158669712149659192547886594295355749095668819624939377687160301978548855566127661504446004192515579853306550864029090503490245482558244680649150259162528736384214833828399747481262714227352761288897571147862835745824576377153016390950308704514567108914389318376956170912416739697660181630798361376253159144565750590044443316107522282619997858204235681583325048811839907179496126401762457650759071797392191069571163343698983639308085109992780321784480329692983382767633670030588263906582081489074348461779060726907392669516581639900118985712676633084485190271066572189186077641152688369747174653147604494022410845705494166034641713833171438241101448411196781313649036347120842019019033487671359456805938291922661647460227640407192474321568658139914344232961559283739544045249764416348391140714860078251470663506732221445646841757226888886283946434724915292105495538030412180029931660614786645419926735045452726260826025178927935994077942125742162991805893093452898107229622265728533218307709924391890496443226058822183321008571749367144101658575389228627475178449059391967957582724946827022245966282395094143426020721261940607747637037674366424979876033684230657484415972076226161836896861015361605861326291577978537428691393239539851890442844046592486910310094905319637676981387321296354135556744789708770072682879027158085129320797719250028249111961613012080057726573489205561831296583027856665727948999723871898818330380299573893862412975558937024806279915474395797676827957214164806274106111357897778380394034849410733226808650693642389412341416682883567066043403631881436463881761037192369494920370616308162534031942640370255013634782656498784901446019623717295948462844054095375269750539079160381425811907482542748109657750682152549019624950270177945830940776990054399072955122941874281523517382993132232971132163046813660004844717225111478289541691563926312296125339722496952544691479859981742015248145265223292540306943641113096426770441663256245428105870906834912353509276099220204008414126281786642782481739134673458509639071393002813554976820781831088901238098396650327075336530279036405156335614772567276107960382412218327631322733293658536612412168436107351301721394027588024307323036232427862621527317134969872882830233700112912348964603747744708216506100428426540662769912715467349041199179769574926147955678881734542447655519747230983124060952907346151715294772582563263025956046610624015047349776203598831969299354929418453291032010571852733398416581163442327336009509098652135976253950585127608634327190957348332971189418913831477990336357412557089290782322042606966396440827434427767673858765707464738911753488503571429039484146809779516344820179097554513145055836489594849857500239822502362694835326609305317822924575976833138517226774893043597481867851170577444660116052121397169766596049880250575249801210703884049436629384860486524578038578986662377506069043146716072408203108808162275704220241980757401002732940994065699586425123421594313091030912862819682657721152302046987340885710299776294192810116642050668830177672753670452583653038860361482765596710435019397022035257276728522181019289212063170122183414553198770145608306499871943242056113212520957921887052594647318366631984803834721295665746884561339720072777926019182874483788714196274350958427333252033165425413678505687022688858497389536836874688050511590786104097830753809595394287074405900916314474509457413353964134458914051620598793540254877109266039057442119742727698895516872387856776274547699374300433089884221806002556021079384046868575476148970366333475782476384863218019569317458032715437824961266543067917850253837418166191598015566132481635166053648533961917318802775715049118600014446341170551414135664211464430174970773414467299032183072413014919563056614242333661299346053189639097928224318172267203625986842036663692146395033660835941992834332996789546288876330507863137101365909057601257566360519170413895626560737268318832985789316655340901209576030395217774311738372359512467809484371538839291305949335895067930819341250767218733454823502552134195064359882182848790934144020196438348370183841221453194843221634011508301376941862035566043394409076618261367673650798583778061500302422911865213336311889861167066881046339890607699095618749824140307738309241432901636541997066392846216502862171033894070078064566632795855490814251980465786723431401673787432124111970709145132750301278156878612834087041564716296908955385034292098418749729948972971315890820085968103839113983486051961759567684554614942530794880460715699206794130963092347858622076450813354685816714059541411960848041989538243818300198078020365532108484402585783338364116294968495072025711991218262496796253760707831194112094170024165911189350221643275973020511511761173120029873845399966911550738052684955941375191809441319358581827737705265058663088676297149467887521530659035027331106764217799750824481368360687430961573122266916594681387456448074062922717403614732882046385930045947100415699951941342702105298863033951203801576719963419993842645548835548773811672665956183204337150576879363698319930478410455583884259355452625598155071810596699604989656754489553331256038200157824259808755765491861373143867496195686985856581062474605988189712038330282444069241263623953403125390017053583432351508959629100050103935051522754508028848986465864778653432530766806016389568251416465081607403959272928279119404436440896856529000750014536724672849528057390739710034888016956739781714711283067223030633308923810014541319602167637116291157832844080803219886664895535641833527671847720960222512430433979854320826115499939776277136774512755648024892270186055359114662090733696223702234370371409999665415903704718280346650075108238697558637288003899404585802163702585537970523759288184499370593023584884700850148869242004982475547631682058632334533138368446899639013357323802128788602486154341693881759405153478040084455057618287260107793702776856331511597518784690116971701811123559678808701059471094631218461023863433332758429473653718855378232862263429282895213949252857952185699132483526407655401519014332150839770113253409483522523107056671004513201323606153257356681362663776513556511146073390736754362746252043630702943944803830347756484609622840340562639125606819666650624387618610228302425138249202729913905328641338411499791873988712370346142051225425295000420373111259977324746183742291270358474230127246902929964678949202110945126938291428290496289607010382780025546098419111774239183230905701262749196528759442101752529266077806146513450279974630223212530768150850032403343159401197340449968414905506067000361116694132844728449706369082969159131172260823843082638225042941882027963284646611822298979933757614635693877878881439742590493480104084934866161721524674778562038876933728575388441653920796550672576083424525898817092995119956932283566543142939752526873116171737970439958757218115416273574872812882592250258005223806864851154266169450947979804438040519244474656036265507334515500016335220815474691939942102397666056065731049933360629394521644032488245504164700328063473204966983868840112578936690140558039580291794841837203988747190218438688679869082052365817678024281760607622452155062906619955821063168118417165874062059465453700940516016120181686705999951373861721433144220428265737855830160138918619733072353477559825069671899612917540672142788353865713171078735191171254787889422172318361804981348054079921148953647642621231319204189399661608963311075041564635551745759588082322229197878151430828414646210972900625895759610611621104404030441100672655610930935460304869415743051346108067746006778032226934885398926332673878459729762081056280936970912291622536602889645276908906164788705167371889325153983690524375652415476351496929887393000378728737220820582676441903255890199039174224558586462354774759504713512668340536487211374304898807903091697165628561065906518965523130221423674756128067390090649878717946347394966773595880107682095294972329998894065049987353209021477977229180922273180204232134080267968079453040951098550732353916809850523148868611377363634540009360215975080404405404903254599807319550232142562522723262086084266729927798050624035468085263591444328638008452951452012963979134246924483180185081514510266784704550846462569937042261925126307670447256442781305275344650095640343531063340615912674909202980984225870924214689404214620582631028362507198058958385663355412333824497806080177257508753673954060738403652986978180830243150746713434528992783443337239401388394629955695834960162912495046322912251755131260510027005109588210495845467128317442198529684687149804027019279319787196106072767371157810019589862905786941239223851235120705872232434064483037801282791603011933624123182572580737564816235470816047985301461713836478014422804194411502880371825228979723827330984763790010336714212567308629403683412281314060070362343927552503660431180055419905220584328806081642129976847361316257092074023642112545385301053806345220421526115467689569777794097335014136777384634497694400312803206359597852933980990700780854091888928047075331913041733957398763593567283092517707597910255490674367771459873346881209229104739797047545387342991019553050574261609725431041131806225096445197500097554403626722132006906548386654105130944226154504471890041576695517760755812693586604346483747480775539223258674806477197001936403919492280520712133378825785662676013684261865302479644246064852856772275946368289348244855036727664893273029067564216035369290174854296224162285605199134810638254621165544122686755637491336065637389938105135257482794006176414226188064007185304733086169995885416467651756474820209835793006743508444480066469576134696043290224432524315877237374336771113099925129001408620402382594582044781535367131147301898415205966444883580791170018941762384597322558839807435969189429511991904036628630758172286198351470980703987486552194577882583808601354160232238893914304315477889176092080688078728111460862137554707043009950716998788280284274195649303714382718153940185530166534089850677484597317717116301874569007460527717830891415699839040228576845158885973099526799872216917473175825980702842079403024953651547443348526450102673094998607340200481905390843748667797265895150378714631818959153517170829318153514369061970561376679753941790596285135394605749904417350790536235966548063830148147397472807002676915143660207994088937905843060165495223045014152596035823900660867334698851101733333843688974869387003134737861292783334839155738665831620367952369965549931891506219453296742541303706472113954297121515120535857828818173316631651256968935116035930542596153058752587349941310682588917376797563867733117407376936626211816497678899895062351855561839177431083639884669782024719754555946243629662151398225958215858721801734634540016769047458575788748417020057380946990935327366850324124514639226992036125690448213691747635990020956849744532901097040434562049164372097383042065842553677461718088754363915835257956229830999437366554261937996763243094786917473430934161382866039360237114361044942446244237833974529468496785810650590024468502648528109307344299159400356602720944817122675933242435365901560412583047561746757113549272389455513852657452673805723863983952093660586715440675606885986096901393178039664603614718329241382253941494430963528439806388613444750313329692259897739707723136282073461336739197552256869128380426685270162034241168535561106469528156238481637956094199078464617522608971097623941119252935026695403517766650684208061489141660070879791275850993433073231569848358336951518438386937483814471016393681759383566136201969514974785435495844900950250092289169624175386957873559205686983771671647087396191905020069746182487045537803208734197046908605036645531594811415662100588926337568820597343969883140736089613184059547163102035600008496482635927070707930312676731673001620209490613527301771209162597000085092033281331542553250198781871670094087619598316334547122209848609598564723287851298781037938787041879980950811394574985960018259165033172426928018118948964221975062345510375344918347236470280886972466600869648359623004408182236322403608554489383121889968235916785587056287429708071615096972505038062301739482086568149998990611996151266644997581207128123392952395303738798194783523806759982993534650541921022658110062430283566845748932090001234046882482547264525291129413193283069000085641302374702155919302882740031949286687284076341047532744625691907697295813532337081065559452075023181287760783765346869688322386538903409134264858741877639173983063503816663421407284242450533798591177780127342277563848387796064471837821033637100988466870767492244048940192677833080246557249547443243092741966482902446729917477710161416139472577090586624391104027700456917993165246656287870475603609639751696345685074661716127122017580719267175266958517704200559496289274608123043827468938058340577386478583923585472984226620882026811141824897750011674882326108093218271402465023942247377416205551770759337216511476283588795519457588130652839844643917729287455611049244132283129476795954330369730446130826174127240036090769903508929827046773666564755904644104364523380556581232385241584417365165312542963583125442419239628198440416596732154136344313945731283716680980031333540785205437265670259150103596457480789887368860348572589534510857897864346504635741872939128581255453879081515355740368360745448046292241297318968821793427160396841404815452537505330705129014371623026417007165748445814726306049684177580003984316074221967758755555051672779762013620486551973678526538286701712339557090349824240048779572649017150207024125336481378636855188323675147927957681079883476938539996746271524214894312526565961765707423674059713829999170485318988442499473824642132992788125408938319231596899069828997963682486926074073465351862367629270779322920632202970199528037440772407831045489052951586758853334647156158915659016967532252754083200276596571554822864320785132179005079271969273586538939469589879572621447369088838979866368225239473775754017447140542701659941322157767340651308414938701050803594002576020768906286944020297865461335514125711225788310575696534182912896818729951263097659468269417378198791725738694724591221825998150240338790083954267688922585529782654292091522093200189694905868201640242106750037039786353107355260720149712508655114775666469981961376087534255426859932034030008043712536860387627641123399301407161808135026443431699355868122411108955262478027387850311536406253680153544538663679808496631774250183537150464173094539435328884075116135507173084903335081123000097440768575100947002809453994515747600597070232209709601911631932779722089169097000716333808680511729063308080787832233469698828615908760642492182042708923886669669873978317003212860463329686360967803257247078646964554271533986308423717313192173957104435052316738234196464489025127288255290275192478107494010600900824946858651559722858909833836245365604221115953916086616369028531402916090784539082485540562769847122996026241656654634261566892389078431742319345725544838729223865615790654430795707525809317540860218004970859179264592419817791830033036634648174435506689578787883477662338475839570744442611865715583497152780786760168393786266174469690625394323450347156129534688371729379792306301983690738485356475612810772692254239617861448841537813497799630537989405134060566368541489301701258070478605990190269628523039660083459623081145461970986155959069592497095586480854527622641088754422736019198828140874761044280370994144763071171203831363659225461011452121752109848267531168866818082666846728581503179541314828869041151545235883681683331583047293664541397945290115703868274792268318603036026445595033149478558938988751118590377396426612854171674438667945311259242798957756547743484388876338522035118937000862947517265940581871013704478546456906579635508717955731821735918296905025050458191294366315718263651043816857169162256617283190393692061023025242246085827245876577436842813570085057478888137883180426254837156404724629372881601296384714617212181907288624617898451729893711000251220524356919621691929764120170046752872015541378516176929838866515676416489743051198427435696746848017871695189741850236185397176369655807367594280205504699334936226440380360416283385970626329387203809269820103284675119801375092891023486953071167030300887144507634135548857636669462563253108977455896535563347147783314707052344698258085275491883225956277548472918589799367258713777792374309896445285538718194613272206686614173220562207707899173167217016911077448662518695491507640937946712361750208443913596299750722962465999559967199446485069975807016675357786726379511627234063347362209431044302658654739902653829988485988293099975952326912320914943370312364390357015453977834594125390553722169280514071813698924733520031723149972656702300617717162789476236328732104095831583273929828039992506147336670403240233766572601699154013402923489648518293241332457058302197509752350373320445456940084824404335781381812076977901873525471673189814947368681947849020629320220070123295925004419664657779824641011762620845590051167272159357546775977044906688813653807995184803898091190121982078314409130621354726535200915006188754586689109831574111235746373520047341902504094265099631138197490730062636642804468377299200766972781302686135362164388223044922131655050129120195672931488240955837636893306791669944617677249386260281178186746948967904041825745459416302383025210024520745401230854161274939930450444931734103552123675754023834558249315486686620497687964144994394733422593490445734298027331912839462184469100365459695471619019639439643561627886428868889081388940886962034824511130196123877899488425068625205523802714509811707204054649057566134487294313814395635486777287069247895356161662447678454679704955235956561618815564746954147019576240929673870139919190760692623387648765094330197366498286810988845601793906070424449633836501723459977072935233915799860488245959048963133985339608807760585327551937461633033408945330447537605684482109112511316845324451147331538476715562594401910546134866132003390028538525981812534541773432143177138665401043729712641639145937904278721156661561184754195304870072584965827120387699969867175146907296278770965427955558184445650617429505851255397298526573215720432190319599465205182317654229954515015381565880561057990548630346151351530331151102164940624195565448878787334319123430673087520676521236210748629713800454776490822383537866728206239050294498710438527169323579187372894287791382992509469446597548113542615721412359504629506445177834776710170683168829259800738987857785152123124826242555750331935046964429536812704889488595977796799587870915981409798237422983461186296083027485936910129954767905094482931496394253599178661507703286937280633109595277497227951878759287376331396570802583906542256243960132647681880821054064812031442856527305693135836163151669869968891483352226424256935713925198132132941030176185452977175917416385679399308974928906961613932330214562815358334056478945575696678268884670531591223257780073996155859684868223865072934637510375955090599288898401802892025708477568050386032362457236306667369286003895808307036906898311577180639866958852833894608655144326206143974327140313799579441834915506928441282250141806862447851588040228658567810538866833247417661547013857447150973882158870270850957370606909827722282621095203161492000271692905513147898415616915125898385954100769101441985586655723990357774509865237902194355338238552141180785313459941208863908252836190178224053266301324886680418272054515264380536005924238755529141605186556499622540170802183074676842086742468314586825639679933840998982319972016299646320624243595453850150586380827986402597218546014575889308887423854333078398089303932893680987736690084530860132937924248864409570853406690098342826336517725529422335396859397981006754029237393964468122995492802243842414430613150182775855491098472069889124607256220776969529292109543261367436870643084007710868013936944653651874177647904817851688116435285503770474355871207481084518612687458386114876533326723834974339007085445315586018395678420578278554003668731285023922257100609183285137861353246313794095623251527748389453479468755367028104142914567524647271433563177044366783661637008726346245738370943709686588266023764129839112448651161159496407360008169140278362301646873055381277896689306218556019964163612940581538350628061075867473124099975012474094160171407822967630985922453315287490443990410240460651876096403465847649849579101089318321284799553300410122427910376791763588107788242464515918493513619626033023624414505760745075171188887626972365967082898145423714207420233055407958223659522536707633859476480664189497069706583015519907780755992804225185689855564073247149948090714519680151919447326754529710718732085269841494684856626286179604117034345406520606464967168943748312796795442254386459457828879794958806696756347821746172429989403734483657731367816374617150450975766277595175980213064006569778676949693366671081432306198370331883662690945082506139418006106350904994665033191384226042145772513624051538316364152490603395358708109766991297615012061739589178559867314349042318271217874797849186095238572924976869416736849086038518898937033638809502352849594852924255194931447023650802413650402219600057640922900784921582329229725665695480582048218392920772212463927779304733485954014197273846322625886565801494832240990151720493732773984575927776882547997799968437060399024833054748249582825737511869318398615220135330880896921161090071839906622904620130203682106262444763084558078685377146820985923505438146153975655619206340158706564424801876380842220857230331415515852994911456834255811313062296841228589807379139047184431300468625205358304705482198729312521561899792576519656562961271963308373112081090463604600504008577534783920702470872373201842495062515037025395330599174677336298703618133129062508277460226468852132954565902470232821142913431139448957905129649550625231222647669881516067425120465575671859776318651123172555638376808794387547893212614161295594026137025569460243186671115642410366645894221153175142552671380098615108615124266678953915776877325657419858797055813052786806119752739466017662110656567955350865013193220529436426247062163289076722031399270066633065358187787109980360387639429179455787854491584179235288219172214142383856087600728557868803387597414853838543197980675019691876428995154393878739027059021976192006067351541154190999372293256224626059591937968163764651206300738675963517736864891376475619829979360539879431617712475978926813109388543395656449590453512582206420674532847710558382307227022809706578502198591561421207434549523974340220282066392651308107516918803630195038070948704827205490233903282675311127118929831600965148084886885231640850095057316685831341847316706662776764794304526714411825670392349267289444274824431133338020177560334730159130902060369653439130608866257086863363325658301374777237206367790967979831631401454018850148627537627076818990931827340659504569329873159953622596976054417352531567805315580788259640162814663204150900387793368387547538246306443871562286801351306417784161360591498745270652500828968030662089750816600791990826572880131577477661495931025804696712918838172073051426554749173063490988468588711778630461599692769487119995585839445781088419288517577800781313207430055475063842314535986655626309934044264410620154787726485461181923717129190253675577655951479481228244729138121336820493829678261859065634070011656907296005043408322142058155775911400776315298787189692552278272999863422389510695770598879566463356758989884052959703131413712181474155508648803139278135593692410696390234883550123832334824975446802001511571832229309825671707600764487786756973207526985654625581672883239958776905904943010096762356572226565516876255565814814509197742056074307489179965765027289869658945987176228203409089396758929957589433512462803440951543077187397919453098501901186719535364718504075924954253491112193944918768269850892714937920040757076792957159196575554531417625857506633881688152803247757578436164636312459059446268945098847889211975758405461660235781360318658783723762833694883591698402755529194642622728433812679613917847456494611486647940625784234894674520259077001217344289481078549174673631377517047532515085986094282514834729777824785350886434557346706266649834892515742195795705450740385729759205648546783255174183427946141232829742091318359887672452643767358127913908728071741001934635244229798236802066579566118385068282878042110755389127411227659621699822034840636321468027464330148676875083437050250946366072089249308799735056414697800620376765153273984658030620763104389695393473639423211165626099306146740906182285294131302781746524967171794422039566258191730488400440710678291384717927664650542965804682091883282035772709322325944643027380328965920899436671168822344780633389431058304233009658374094598069705911032912671037674538370515060580925163120549850467826711781087238758744377497218126977173752643154360667609587594334173803943726095723090747715019187550251811100099988902706595153619256550368979757502722673929450591704453756437777412402778209733386466653890889140743113208687984480300972812800835252640975249990833569146341679747228154168247704830590855480512351657415605083117660164909694547033299833840564504999682774315354029682911562233890426969016334160615025656935933363947741364248715259836112433656181914574922781253355660999950041740189620495704339081189075518625300622121648132969158988837868628844253585635924063889718005210109413598625903104612734101895194574357255437275732327850413644830027785834300169915690040977642244555806698373351230487921147014782339971792546567818170668674601627777373802283060651232783023031867946943832819418146769208288384175659926962876167565158382840070949963440453050048328009246488663196645109219503895938099659369929280361440355550110640208893154664094678056140310623228731892314963789891800765218917834340521296663561217059577404077950918169672191726804644896310678719065311995316677849406371425799751747781378407083126818257939273203631020935527846809179342691042732342259865084186108844512515881524466900389029834137719812946737256960079425234745722420864066009983580809987351937576424805327845189402677844710249629398965497259749054113355767572228166816895771938854528149685209609719276119707943381674231458610037684281995197246709999733270799920644687078511892331285107189200659685673649558182403189583179787563175415927292165623426142987139567453633114402060494289227620458156766116116911042586877627414216096195835928485359913101123941945217260086576888340083611388462279976766161453951363740630186729113966902232959437806878095957581001316010708819803852927341332890385798550055612281603210805880629188116112448577633784088186527715142174634558921908777384857077079234798113373534604373171653617522190539560441815552876544647652653600266882963712371141598218211810123972015102416668697005586106716593830176392395031617061374696878048221391096591851470710481324142050245472377639260950972558885544030634741691590611612834676186842821527917750966251909969942872098858781979255049479615866149022399111441711410583146903895714552047924482906123389163453648597915471678104776556767237469516391890685256080504640278516127926311089287762936217749546723287930495563072150871827413817049004295706873132940868001810827009051300817534638356007422267365698268958908764538461668039855273670271397437911325866979840398616191587135790156909737663698534537031427699728410095682019877878896945841399346731430401251722688581735590970649031686053186190979258128985703979863598829360723655087320808381183531047466673373811732889153595005946834446665799568630637647706855058497619734680641626005611935259865453208481833945665526607804798098924832294631335877291204399081450927423671691046789757755040036305973474862516460733730922928165669953481291797726552662224318285089081747135344740568262307048430865251283939002496491796876998755353501345355046268890773137483854848984105209975676010731378103012712728524414042152005933298692912222722625771611399418862009764057368275835911608649203128777909189113464168861706833526526673888043011662338908130624039174064582667085702962644858222332157479357373745894998479183572282188091759802151088298027192594266030529068002070496027579613692034098142367339161214066489939332553952934484389588309267289589040109658593484262921186500349270476278868870956123339728916831697670171615035559027679107614522462176024301572228714148590922737134507878043250777986218795661529122999306760386028335559295785940511190154750920963217070770451991557604300990068774824172666810678527058902310162542207827713696498613892179975472669653981495173751382182518806680966068318267160248243234291079028905887220091019146177999054201138715642919942078668036666422710684015256249861793760659595097408205504960581505679541974797141381930844799528300202982700392094359595950844024005156739861444013234001383120204637508671181436296063012298460638450908010813586315371708019845461379272590519347876598213095957140424621499175522518058407658396095072202337315918020102763547927837680643789335614516311039308348503431888795740239099434355812189237285414180327287004700609039854391940964157167416403662939322774884945657891086862079377610720352101562622853239772391951617499179848467794436381502759726066116420976506255983418162832271727705237179106463630352292505404517879215324074191569340923057607805927179762717513326707243717643974964286244799078668868863701669489646221618989971354247034376526680063887796458860622885215902421299130047604370905228760179724919523129753650919186715964746639915305877208248714752700305676470711238249387110216164231197792701636136301712365164298314136936669909834866864912591171805191386331074117539359634605798855863232924971057975241709961088170127875315168130005787805091206428869200799585584770772589292626810107415922156659787714766172382734947570900074360242173720832669860266572631671625521700022694344003404031140406346838144492856583865198427210779087555423574467413495787806451166203614378381674045685065102043976813555290030679071516332324433648201989812039401835856587488506628615662034222734555622073840363849335888851290838270551025797216657776722159413678661147313715765202754860856316639993587963628956618111620189430090975657213507307744781036215999887598326476025014821138056850820042309642418878172429016962132992324516415425495395240918912885839889945049874270474751346946837011424580520999521281996802779934936055992377561949171866050780761170999253177567772769140532521833405890515585305739388498259375138652166488307434499107229368353915366970633834474783918061183861317514420960588897872807994009598360345378938754599509950010772301019827064574799208727654489260515287098102275544267965453947473304275348058142399648979462014115844718720451685815348318764605326388728391107794963238555885540449363562566083455541499389958190418550582466164281615314708322186306408529196432282827270642878596859266320623529011223683867951519970296752133421691275173873431570197586106716621393070196497971833249474736180695963571369817554603481563421815391726845448685831155467114430539100949555402301904896943765739447441479379202469624930577252230133736461889247898333724980326654155096012886164294726264466157975269872275222629195550146163501601138253489740212588728420343926875403689110007351566697385062241575408370109156834716420370554388819490733795717357030955097181810527525189598381908594350630983830730157517764394658065903557442613892767143057592641139357113710846785316521797090947847188898327251380402583023872459250958889365585818360451379215857303846125933608368069747147830016086586300769246505727384812748562526963189492286277558009172099967552071695358752023551067993158406932926620128628394732033294946746798216017661955085191591335300978439584912020270471235553486678541995483865054210576681375262216686873245225583221218997606677075132884456702872400671529379923722197821122750014388856026931720647110183310787560218395039187128915279292398633201634546095930289314898011155800179341683116765374455666442893134258368355944995001525689592622085040993204007177262274648886102942674989800364564227951122395741517539894503998754434521944003498799676931075285237960477135012732717737376038110195567868896291993747148801750027881410625391557326404521230133782519038211047717905424647466230549431433475225884907513283792693503799077523247441618851093624873223422501733970663947143704060730144281152815817088566389577045762436162545292643382713192462360360603929066486325141308358347507681038509529787438918453411151933419632006288232472415455092627991138263070084653440713342112734467116098642295955623891429033647557492816268318618119998658495060421399046133702175608882357220311818518308012044802747393674875584414065543258977514737700413187984707991864442195351989216059871045092952513823219286854718569404321662712228974796986593003060855446865756177787690416823962986196728511939077226287760793826482782251398789743967732517843407488272046509953556689815334533758765828330329731762296775197049990367669464504197770915591904056992677050403934184847955250296582346013632565978031909282481637007041413993549751805742404146835083573979944450637376507071737613617560721872398948270436157994713960721748463640475429116436878109864897689998004095161138472543456375947451851455652915175174442039881694410944005641111166970592378924275643519347937565169877868535424604617165569272026343390033560541711909379883255463745497334099970454492459195436857415316286893215923941149693579589071174607495088205211410423013634533068826198438736772622702448929702384075093094513993360212184634733005765973926602745316558887719959740606138589741801960326930186347662508024020141471958530258699871125151657400691575973981855286045078354183855219012648909172733373818917746956129777929783694430652776940742764687372654425632887477662281538328253446509884460366727054735931006046389050518015378181181763711533197621117531004260457727194124606428593089246990027983803959156129379083097098770374643716973097588097621724542004602256833280112215024495887356166736315264483754004104845994204706673438783738101909924737028626045848251873534391914239705009415615064013731588195803471647834682202110522154346805023963022000944666465641377190716081495633049263108308432432274100519906668026560430088660652695415896357145701298978398787829123606754723279761561482135442732904712959001085660752298040549988142775149982618835462320879368862602040053827106590490610715740469709017447970308193131527463588619392881657676906181217370042053415606316937141753256518123302596563820252738143487766496890571856482521082072081203981417066347266483472096295918004827183699265577151244886901430459876951443124358282087493397214758472417737699649330839703923663027239683335757734599728531870793499442459185472538468593692986890273090075765205008442523062946276135654790343894051008608145140330101076217546590586637276123020797591256705908159139956490876224862865323829019225482457706815862325011744316396595259562468714350879683340231985276230637088444589402544356759394515930636413958568743448342052386228534697047454975146666690230368947281589984711558208867990951458764272485677225463089592019541983629785302207799191540290362003802663461104442664788524239916241844083282027124102041160871277321242183917336488374949766117406423743784772453446577440771367664658034197535280130354959283934126822207056595310083981515859544256215862959294314165640970225096271845282738938876075647750045077225938165876776944227252971283494063666372000546828712865789143245855104181341791254787957774240994205854517434017915985316947948663501149303247969567539769430271215036767988240745001833751639551615760179428937460309658610541568138193248221766702488273939249549913506902663828838654951903853123549826336775277728290179639344367355506510291943985087768716769650987819893137375578407823976429755797171727248739291457491382001916244990983528367835862231854576401824083345892440548000804711928198098082583760091332807705370043827052424395159232795038929448407163729529779332339958302822774121595556904186299569400731152250840460861314766723790886479128351752486120199125553459776692108366160694457667363618339041397516641838565145712479312711879667010160751566167286045988665016253476189901075711910935046835204432289988156535169957020650343569634549926752161273865228211692259578528460400592336516015571435489294631772980663555528049155004356612501656208619302724529926051044463985790038812283602696766688658120017724107471108162123118676195617300052300037851165325909462457849099736578443474263716351239118205673206772566187746216717909536928361773292050438812792005997728476000265694789325454059185550404250856986235752946591467481922378583670564028358266308182061300979059793640123511019520911304978047419652902163949000827831424510704722320169579274299222841145531027011307622553561692271098354942191028123028489906167431824628542854023114273449342181278124935001650991286514300863770109783400268590315083351434548851244648565458422583078455587214911041558134291904540528082753471175024955811165704349179529817286252630954167634125228567586889755795431294683238278311395577224861397065969249554911134028037575766405829908035354759169539263909038363651985777207686844475724778649888986641460611021605995447728236965918666625391964474678869952485649017409334858932536297600847097062657130391015501483391746270831271176387794922372545342400068262668867092900512945496944001076190124619654364424411764714461164027228500229948652768140645649895242256809421371676625937918260203350277941724833190327522789700800815341144442808342347834310211399856798149392370039584534438011751911619715999054369615231164172415698105145379750148288525826180654664000869186385127047914163750226326901721545121752786924184922950990102652230470410936599303903808551902217963274446032578413264141499765384172218090622512070089462366138591221983349469924096231095660215129468801743653726688517167255495487141228180061293481784635660601466397952756193845560589515585378216521245699240273768514448775092043856661128996515074042251753327961704936581675289081975468316429713977406368981322320575741629094569056140715856051443040714490115837325328603165426729820728009843224401655472670510997566579502862567816242974310000070583397793620855493203695735961575298724243828951265766517546195149722690128024276289044622942359488190645994439762464168918705094192982182563320146303752087463932047383371489817081384330764953723226625929435754087803057210771020850544793703347216026222010460396779181009828304839360623629718908705672085742843785761782283878195315907573641163456984862930925883732303814174826171061385415354792609874802250180784512072460818066414415202900463213739262326022929429043018914122982775992905220829018705161621084934657272281474355764792239878276305953514907145950047528108127512018019572388103013745457520776099756220519106308993110155147622910315974595735297847584813882320326421166582758748204485353867555849900264647290260488612590360337412443838075326357347668447608801588449626598515543528224328984472597847235478931383192461536032348015785659740197060579744743835434986338311117289606940196428664486825567604671744472057477887634962940304452456022881030521899368983530678761062161774948211465462962769008270401491226788882230307876585580161852968303391417143944177233330322342291558483931776075675105600413446467317031616223644443714897041139922509998665375638462750865715103565306076149902302824982469438378352867441161601453268234634864117055103800993052556709334127938238736678509218076405496349683895833410567702625795243043603109087916979575769184167068604010329143635325007365440188500202522447186415930251630289530187262905089623288317254896241817572148176312285443019800585912948656648881303986391699096858326296353739270877775948129644929414971103566912081015379229896651575786617990378455304143145193883981498567594585350532277440890356151244982534306339058929806620852452800721467779864527493970204049561255507268567495299342069988699721394188123685164567459894612169488657025275690692739006827069548180957669056748802835403878530545118687526968179517225558325272593678185728942138849755856654089412112491172729322337953692365367007262470004208604039586593008206490049432585456058805132100747903319986810875872254673750944726297815868193389808456030816777864713937283959642988229111507361537013346929146828042195687226913943865969299670548847964747117018007038537947803611278629900570742775061331657148461193554444693550893356052067352100960298257383172736518190543243651288745364592312103344685743699183116048197083939893406854716803704536241025440303228599399276022530303067956187503351634787039903183508726666274150101088174374088621724018055653939215738196138725280685353065582181700692027585301977742740766501534899157507253476440428916782077344539034571128754347931429046231384586794897873706425754760174137180004433348201944191552796927664068801367581525840137110861138326371607615378958869426997282983814146513112051429255203314987535018823338646627686291635302558016239165610720129477205258167657901174125392942788498152844417799799656031069510146618125174273566974270006049136034289183173664099401950432948743781834084984503086989654892083253537232277512701520963300794068873329649983931916262065739669870589890439848160319834211289807396305565184394867609238140158482055041592890215371396981679466980627730882093570639029416114122189422112064963402625326759567660510906659015664154097725790651725210470290085973019557948252126566627391134322985015840149313993083559983958100523618289675764333274609315347214543968592928810674310682142612964736223398493575664835118590973304584943501687402666204146733173550652228800855130960999052609625026397421718330818828615343963113247673919592040303800487542347490567689478298497605792728730414350202555189955610004104826764799530036924356004735949885870940448191169069018468227200128217364305880755809669214642831659641771068671994813390078987255472757802652521317291572881606909648217447082373942469880866242599025752687907424160257802776904562498570736441222987581833383701828742333394894379337752390624190152682772366085541600342494389791073192779214364119151246295927779019794307307720969259456126925097540096370263022884146593267244520089363771434582336217886736114773326923070559326545468268099225902391520755116649201405486658404326557387630470694799054320634538309095970599009818928459229639878367920379038908391238118390897715103894622032367982009483944069926860983583451230004166090262603251368722601563608813506933537947053659393753692627702319641398629824220907696861997416534101710121517225031168780475474619430098045958694093814043435009355264008022856467996916520162617844802926945528841065768596782580104478159554782171277494580006837199784982291743777197923599575696863503426307291199547105872787145494665792259952120577603178804668434489266837909288149966355118756878661283095941879979253907156374039069119370228497708563327659590738853518652678263253801511894648650954664854197330349383482530811750802429282690341297157830705184682041383409237435905928650793856900219386011967018327210218436263888929000087204079885126073149219660613609208803873119464000657557956762425041840046482960868005461838224844374449764168987378466888579367945053990281629626725990220875587362824140662763388581346563836574363493960544755443662531729771442626169657299856873828992725578609137546967836768249288629987408158603104565978276087165940373569745279621909915761473259190295934823489952565588882692242648873282547063214551660917526965421918003384164395679144719063154179586869449299754382360753631513926956233376302234849450782439234126835150217385132718036260701454361066336314707517198813917724693406925918833485720621899443732308165898563275728365599836933096891928031775434207966643269930690536248068746520339525486325968074038153773756647473231139606998810159438849419695347044727680221370891816909501951076296166400817671880258622313955169807615286389791760006818680329075763681979225631891682943994752943405337767647881609437948936633884938744676466603894248853153168458296767216224077794618887448369147798299792145132299269245777882888266116828855338382706953377782685288588018398471346090591645129583723849057204807896378439829902586220227387633100128037857105134961825945551830569899205849971857313323020697946149400428698637403754872967626645819896050944831165568889984710530790734605322813005491140202359313776118789793208606459807990920806931237008706997713490205409437106679100227219819884368912603700939511891768226889331338973878801436488230098158262437474793160100542011636716317454639173463519972514058883696977014258201569090558969405943369354601141132570465676256263235454311817351014245433446180938192614800984716577235146372170799305972344001476220386676231779267066985921048176935904442797974898973667740203441690397753191010576774257581353160314007854376034127226349642257228622590584542490716285190530136455427046143384710124389944928618501053107966860014229656416174596571255357115081533393336478333267324271942390901683426240107583531029447188857322016859204078231149816955137881983229363251640215599744125315108967294442867254951793620336173884551200664686346335655590455890060288929970700685397119312436773258715865388104245531691757555937473541389222379832265390649884940776613310760484272957709068641893533926755681349563872981797265135467848685906764748986108628416659401045669279970784959407395957842439758155288314024247218445297729951722487559479930322136097663986813486924540253012870867089522978362927015466967902262629675074584128276644199182995802420533372294620262295955891956962468836335176832696724675980417105901848314773023424454762657386446264198875014874709338310109377815565802541009908509044783409534224808578931047098933017312976944632706720057777373911341122521937972259474538293943519569840467404825066935805993044646140022269268256412080496986405437186790550903997689878445327993364835831551675692803834296790501187278755979770495725481609022199688033804984989138880975477916902910940157437990061943252714339708790608264537111089755564362468578109917868416446883447052555803734382059435519179186739221599010293292279748883648983498456249977576952777224289509435344432319443138325473430734124693559582341152463581033178085357972426463257406887818742431989792201638694547161046792578408780195329573143461418946006243020856000981239532935161098508299115233127432133197431477552575302344888123416996687341187058208398232391292688969401082223848470398188090139550656209511826441145578400118727868218157169555122653964774958801713591981167461582916877867807096325841358219462718233952682867736909864164121355206882858242752088751715194212977318991356905810972488788641237282721889695734103759551815354392288008652809364554026995331349844384772336388966866225768307861117176065674795213237747558207277102374424905549363028866792950687113513563096168403859806996329900835656242250205996136069059664871991829608273265058098569704542857542058239919526523320275560097672534323827380960594020311435126095567750542249342103467296312350825981865545599820440459581929376445260784075428559728398609667229460073781502679048834267303046720163933184897073677594628044194532570063892945287722608166429131785175493181458124214219886070068973787669500832484941921140025457476126490597903827464790716826644240559288502344004471260265248975535780582812921381884764499637728239288512174952993908806507010662062801615919049925779385165777730749457849125942020605217433382047069482632073437122664410363829311908166868005922573605294806450487374975578823357718357196946398470378761491481135384126970831173419745965506683785727994921219619270978390320960282099638839813201314705051522144054892698861071321935766403978513014520331587623285324486038019522573443956965180963077836349006968280724248375486422612307298387236885562699303789794945849931228041116041324592365483476700186837852292663228925250497632440266066546443483113107491800525334023018733605509723034922317918145100205353543957885862986523200014406258156895610588176913023789660137087498944740896219654634990085559292809971678877742274971348847219484368110823369227342712698813378125896861496989645945133672819524533951870151231726638502442332773184287241101049303093014010612704921857257221271556072913853447083204786046830720640321688024751891200873575865687509522574185709450417758292838636269890313790492437113088621148262878761912388172494373844174545313730767286302824500898328089076654095939507920435904560579809588435162028754053539599237875360891431980560661466494297004780932471401436661548337491304541913507941763198945257781307066097310809740946255285078203799164282610385412021961508162665869150240165825419732443945659276038432798014812369571830030400303422631255806628937071327978962064165110751390414756569536989451416896694338548868864583066624357992572027509085722204519367727283946150192084095291371556818314603512623538671214073809479642928367843627060992850956577235692612702062118498674875317231534818535755574827583761299476272897183038506407980408924290995486859644679316623399108404319942737531103204418771214579636765504209187136338215945993232001192281450340586014832954854444488800446890084761401406329775103505009427372189877588917960396288337546927824036540192405840985996986407900561088286029787259910208452465867247460657710701165485726283539284450928876330437619317099004026625782918797793819630267730370886399443679500820557612162532507036141402206822161447223907585964863081675695293095155581834790422909344230636475543084498803509497024774106077804137023682530469589343890481612040804805903624507625038124874665415462531570993224564377873823849980198998688575511313483733391790802087910719827271782325857669494571190840764091829554710949290562592923607928593413411242057942899135154130043379217145640110614067476286788217748995825117971269858171753961482843641878146404260055908201820567300568587116577231702586534066955656577897760801762061223269820147776057363107064328115779437889104163075456266318400588042198636884250465633364348952250407952382280261744475461125392129833739622572944216939680392983923665488439111082057244754320409200361637386545019276098553839574151130626620152184560806909384108732670121537882197617606566457175237869254199302030169534382971183827319191492283563210362155386470796073396569051339651155862549098045604741272548034756682569929535756313750316283630357395309875402329300768082525418310228428227875629599480090404133950073392923201632989056202504157982130610022476843952727837039718255801934155293770672926954738422041032556606039774490650363987462470336207310457255849670752200462544510714695669049127120162158599770007588103323571577383747583895085437526143610389397595535319780728416195004291114390471879305787715645387967698943254888319719617193067064560358223421046612124522397211859614363649359428359079712307898899013711951982897689884934822162191303283254797868415282214536638126687497529885664367213410851594884251166567453740437907606146335103942597573080477500327163316633091376648773047394392559093211614814646412799512709923342808681457621275365757974339959584764278315417780420319426928759369284476467690105964860297896939939183196368051621549763687987503861356792966276619667620836308293360185419174479664352307699055892191680970502972431115169453217346164034776645277896222549316911325197562203377845587235550717376724697223234678725557656712055065788572858265850355786713662476484650011928428912470965856128308208817847821181499661871009573575980160332209667674655014101171997085177922763791263104067398725162086682145934392502351625929352741585092880566483200854139136233354053137106598416381580395949907870432924361486441110075844099595719460373016356528752027308476616730313247573470696709201462385144448326514450994254333259140172672516954923202384602390028561095552396243949081351581309666488514595725757362976098057937479117814363075395858537339433964553187601122453124818205898935225357004121593364116992524379646113136840532032229846179503565897612269028723360594684880522639377912211533183834366777895458203229162292593346614925515776516973668912548276206411448747334610041432707786079736443004736219023413508520239796998781078801487567071611172290175521579599456695930772097765149825864160184004334174432024409288014596309835999573751687956089441888147177947852338119023133262975437432369450157702522241379629911610857539612089124075134299621213111891985947130752416165341708752583553297109359275139998345036734903265112734168501528052771908758707435368460186351628181225640074950791835731638734143927490239953184074299270392743009720119746922193887261122520976468762790290578757736510526036658846038859171197317728144335676962729836019717805456074910208956942150884872093440928770933142345153705008884828363901350492775404476444971064336768149645266869160099196181854472664558357779866051736346807650392049939904944169277462348187878963926825493612059550521746588974364798943463119517138619584518706293694820278445559493426932357922450754543481200394357579044870067978751063080426611010748809393416069342152676096729636568132591240061914819547414761310002287690137533761159917741289217360784843066186904499750644328931648091872918037334886797226103433227396228163633195494461621103212791503545499648418355975940093266128014701772833136672530369314995286497055169048497700685921847885416910592818537184678511977043364794294720947030166510192910312402227188868676642165102751051699091724472536824221994530126170136048662159661592674143895526516653300795966529875697473679552174907819123483441349934610002083058583550534669805331716702958529366861104872792046037240483266307691458512696334560540707557107172776134481138503807433201196154333078021788775157265644324557741580688482621344187117213526358770247747629295043448639687665453374939324716377341314975637664337651052930280466432090224473796569029749989043865892202674995932596887927042122231554561941215321344155223493770206834772972253951879919420523163042792524281423754715426425342950584059866300434762965469514262053921966380176524814568248222768830712683329784491612398931606627372299984034078617090369590260492150610853771405320314303923041427768093259628850769114713393117360856438178526852659871324894944495430011829313708434489727730040676596716101294457616790201102552991017220385202594755557128642925709919453039812132258924481123588986708239134434930738501863878224437909626584386425621794737810887762792366917454207610459286413496976356104760508733880593990665403732164532369712351943220688551595466884629055388735878509095376096748424838269361719170092488332840927056669104193268661409545019617172589888387564898398424087399423913540900827818277015598684587269850988833840487765330972431818773582105483059126617122937301494238601709213031957603106894669022313724628339075258520186362696278963739755832996565911010917678145247366792859887979542534088631574884833702411435888698948942593312575856889014735735377610191349581409869042970842284709140514383698670775956769373929909296611058248057561676417550925001511378856388104366516019601650431029998634157213223911693753412742879360688355944149192018360652970524221313689358304088593808737907953627300977633701679078478796678856387284834798487838484101821402527752841077217654567061003129586026250732221258313813761045677907571269207834669223476812220988580930267304541093250396509099891354870671554061930290794972049205989942871357796029318853803700470813753492834946732828193587385399570714398712029944595521952490373927324314181807073505936921397711969213494615631807791822346312528187736963042004628502665862375171113749436589592552746799399112420335442768462552260875971512219935372012150114179230715958385962797815690210511450054998718285131612937333474876387716495186375548603811816890921642063193680519575391980963677331767932936817239550742390849214066892969855802781087954373723139241681618527696893621826778450952280661092521027151988321074816251108924546146135477445199963003560734728743259502161126518795161550926304630140302045299363041267858329902930858072194100482817875925839008366093565424971270512585378069703966384772291866834239943112962934590992764415977791473427802354658168817785091956843593804298376271884700508827636496597277968619458062010196255670671868441309513202280509800270741200354110344390676477031822650132287549006914838508888954322282422328159623085787177470575048468040222802267381664939427570650016186013563809064258071695100561250445161807238073810400367099972816720550575061978944449077761823133719490889239694234269523237112271562903858565797904885899197188016802302259878948646999201502167861941915001289978080200190992672027544105924140398022080249078268589380816187829132021660107688086390634484414569489973556748455640095852620127064997379705127263649875680786309084750788483987622656660730707268955890750040231537886548467860192824878919534465070550287294572113540321273254339395224503413730071840514270508649224633296568054499665431437172588358754850871018657887338720251500484003585266602711771130314062191760301633171050185668895950379685418906041356617378484152878303175154689857374490279562651605213003767782908402464793945862723281484738600760823114132678866618085264289775165424208170049772965698536402655832907766075851287768545431540885822203850712152424383096011148837943803324932297408325947823770643413903061348640440299297476827792443160810397132285353385667407972896608833480882373601089894781334926266922584330327095664820111136614263098453022608369362930752562348377686726999570629718798386101520061944844888787475579950991154769366783709705925610757268307823296040448640688444842223734201333946415310008850805783834405684547965123006265326738161416136039497425332408931561469151032183266439548227030275846753250963165969120555557087677381288664237643504309358978550894866679521081279990719528634681013825919941973535338007592435655487303443029149239658473983198390606013624845615124477160490894655155710385114163703780912688099311477579949734595608698252571623926164531062150125145021954960542784215366371016664138031148246378558279251486381786879356955233117993069384726991400484248561504599629889314680617640114433482401202501807907308886525626723613758259897382849747094367419611012611969594781434143735475187952685791205156509956907232554906571786794958793066257387472318934737886587550998311561537776154624319224112124632579715912933545571640430994953008063608383502529709057665429850427962020977554113070389984038609961493240801917939783769840993677156752717928196940580308341061592907199408400746388543799813702209016119570245240200197378989107892877857770853249287048205346106534836141490866724336664062275605638964175852524300729427044834965975167561578776419327736683955004190785599695553303096376832681382850876031521940059235729827884045427798133639199637758536808008801776242840118578423711922345540194366611889976851243109597525430411317673541589356806496712693119499282416604415791538160534984642131553399086393818040419943283391464842473353092786194987337649901694687093515111799005579218017359081759158300919554275441505715224459308353554886838017228116558693804418862962583867409508369123532459987863387277676894815135072140138108087622042788542070663198888653137553021531101186171743333471120760484190278159759895987539778135379546982135985534237163352292081633650958041472248090523566015966370365487663858734603727556739032710104896767353901749179733247013046585456670780208764693415180069040546481355556847562855064082329708440484681284217208490208665631832520928548909529952720366263992552516480923521353080149794341212633176719022935144465621605917079973624444015926375667657333971738994245501746333231964124679026932178987157222598840352441921974657304452924314145078581223799280364398697296348437235627424006990134775774082279619197392747268043160461694664139040908637398601789526940301194546300725786253045949254431095110673633426922550104544770564217632186254161565763570674085177587077370743450528032587113098919708073498394728403706475477429168305411875140490865958804478379035250386566085195970782962801059755166240771396716395939305855838280561181822394800431118127506611388694775631046653596625316146778260990984858588372406674790709469263941647462126535363246443496219733294128305713544197431849500755689318880537609468972305949750174937903252493841559706706635593973682710651036097777626280933971626001704992765023447649802486272240009027525859787773620109208383545695440008573581041425201707305159926750454742874810341010283765461656438573169460802021866979635901438066891968770188559999207814547163087525891952165846703913306497584741284542547733184759501418515483929166155710414038350683487537371504290271908826327332031395778987032419118006893917016002492721054689950108406227012954452540394309216808391677999401239992337208966601195759214054374210774208331030818168117554059240981696376847249485566779939627848022507733339735253986863128031793971847535116966344054158306966606381668194533504898284561474462880186967548304775189521104767862344704597087133469034840122850457248462203395018493028632793248446158370293434282904351049977236595498674233745331671133607053756867040923309176760199182798097926211555281870395449723010509472810038361970032383708026586328798823192834795068348369171219563085451242960024158198686756887367544827037402538554844969508603526776064473918362034619209509321555331959262450287108282186684888475506063734678876208619250201957893429342560490877981923385148705720018618631945108843276923079882886231184590837369614309982772197746499519145377920537711429800688039428339954718464540203411881302604807868316221144115506657436545176726339340187761171405186685776752659062304090075312494056092842992663881958829738630230995194262471346500299798834899840946480001908224550853358962735054896618322136847638575851268454547083459400126702824680708607591097484803579488695466415103027489940552135860020130826877421068613942177457388941032716947780721900202388790974038798555115927292890194500443603760286468599747472912826189860663170416513495464236162316778534476875701326847743479286372739881709172130409573077806371803887475473035815523382004713385945588014330746940975577488937101196629550219240586724080511522212268165035480749686905777804154409846985010183034130064870069925271151389653601383455732207877334966484119012145783863468839695510572025005602450673150749325605611948357461152090370087654543769892994242368778424336104196784891633729307211564906851119970534895652449740393865125789529445323472184856768505779078809636321501657692687336420903255167835434495620722080101858392656319108228471110822166211237873026191565381977642724249598239278020726031749610054761636894837287850954019103849166977610061467149118284039778001825456447873539516858591900946408168214268652507039555019174249652154700232616645113767077902227685459413284755045060781591970383180534065157933479221910744588073831583994281064840691080098001219875692495114163543723017137842600440779492571317375800786039910132622218534790802691541480507316458783227332083519962826824022853920097795625204598283277043501776666455850937877277390695790891148849256981328236594515474364290951646065577089236705726393483702986940534628433789351716030239033947916677182792193404749237010442280318267004132754294052880909928203467016680308247570674081652481635616525801782947991617479464041427028133769151320807589039618661427046125965700610792808673025523834825817361279203667885721607200443737800159135097886768979517328666431079050981056110798748633197248666468083460866446742815474372398428186246016047313285309142077878626252305381525884338175024903198747976158606788620889403398552258881456759001957504746858578103435132539585679335915697688845071206209994258819779245071530138514479887701809069193905211127454193748855662287054365257454279895079575440524891077324149833159873444740685185988160532250480202257713617398636026338043553084461243099994980523810422312685420512224037162450965560504290941301207832294298618805268892595723859855543506262890372293227887114256301465690821435852549207340477531131927862762385105135388121842996525569272045296920648934625395326023151710973722802765606314242004163982923795832900158186321555959861001855497086212180104353028984786113346300741343572939848852008354274319522829654414138000254665837726543371815075624967238449914406723232730315006912136255476564407307534741220846392909711555026976578014254486941237284532636184156247111785944633740735357354958440683438720462152010524867097567442105384320928401483321466243726337901350937012974071143473664553908863247384909937616802537295311497701755525443351480088277139232977927072580056195480018871961029662514073158935946801841105512864994172823989906299622186094686147287411103966749337387405379542694220094976970191873329548451335194210663749710659416933648166041060758101312032395674532995474786491886109482850513314782044036252331270242883280343391830422970147965998964557702540270839858376354423806096415322436529516697546369066008703073887442125528129855137954393897041732955471857087428744853097379876977060672913890235629370481942507641647761256780496555212219911251366092258766259954843410219508459385085235062290022488090731517008988336674486685301978075375494710547531128377480821645464162488626112659927714337409531899841390211554916621667602707124986861472642301371742450163318490668487782436124172005196662017820917328949880939040763700676380978504913297680235073045131539693630896967450037095725321554515303513540440496807014109698622482266652805776283313773769198129077904918432564866455931711923627825055571343210210288172767652137290950307041397704780108590142152499732226257691532488557908356101447710560398472711988906314841296413190502001963525998104084103233165770446613856687733576375640694940618274825334418689609362605879054832293569466503970821469470793984056684090156758246508649177164967074521352726174032994397968094373774022827407393433131103432769511097921130366979861986239962370732874558535522848208552980243937306485138315169159916007002206970903426061782130603083196667042716957901147145821701338018320188733539727161891028376639705783651073171738232888232483137114294555599660141109379393714642545776157622297745400649870061318556533000261670971874225355192518307491846624910130113181557669873376986420146225395789251761528040516346602253899868452424227405023160397261859884532990286714142082147831787398050254546054388101540993980687915457423712650048832635155481504435327661806382627666161819553723187016465445395229948604423831599406558466572854485592579624759885170933175140898434827133651288297551665303595907774685760530750879291029231081405283358411346803963044522394282123354502337267639656071453749298619177251682203448853439127293456720663736650119072768423670873877560648518965210010030487033636527271942162957667230847345913816596168902998938699567416545660585091069048842944445754907675780773493356342943807237744936604231458161326238127883106508954450829118590111952349283680008919960749339417824450128286293738586646275478458518631202792703679609915067694855176596462144680777268352833366479522660063423786186869102279064740288388536586410563873569721401665095434874304150402288114157495710789051712588754367100635049490804817606947431057624456271678692076995721159170304773423457203877294910224380615151097572791090785579926022179322429332934967979919479103433347366609817572465038307183704385948795729658514741230325213573442311295279212249805269870297527361094676516961898326898490180397252029957308608365575115443749102152559048719772195955003932220038142188819061460345794591275753329540983370054492490326554255821590772098537652408306291170526878982434145225447223954802668137228013696471971100515174442708107471727002975377448967134614061209957839674341502523633991483851815881936921468752664657611361096477007829634570421522354922085263402691632427941283630479730150079578679250200816488483087691788850935237221561285641615756774772840008316393544851370281453723173582743135529477094892374259451576309492780059650411217882172945441097778397500162895487961965813646413886227371727095899889932090810188426470860009945793514177680206821229705363146567932015265445056600648244244673869362914355758957877782937937833495674944317118042994668126716060605550590313884410216299999252637287874518701574576824792783639791189101966589689389490924960340176767052531929925316530198475392369026944508890131714697336192154574154037990678467671375888277334281647124021450395116121777245659354530805309158677268631389582114054190599415273980681319198587999624126739345152099750090630344107068239474151748657232887800580342771338203783627853585444842458441510212118861026734452753213098202436600872808872135012934767411974739410599267902521740480387576980874644107909243589148021154679198207640802556135736765145446348383846322061344411431077047008810431735947316759911071665481931883761007699413439709377863002418390856983365750513476356529858074457604576324997763588254138954535330713720718984392130637977932707881792993648356565941580649980493446141296710135663475101270767214049410003834782948430570387060365422706497325477585675784762113076136879431389812819028352652423989452339516548285316307906068439949819152146331719546063190598565629000892801719979580650013313976178336825235881119204952242824818580615856838633159084820238577327165814660923037288055994819573624173108616083537957428292916438195666185213100248116469228577092960401052948760809579199417660215165095058207548195522670845619846919259775715282103865542863661132043506805623780229267688989811336608874661841056861956424162466448037299182797236685468127660255563385050165552199626596847424740373335992392134182636478545747702282017239756668015724818868711649885265429946328557761579186753478823242543535144909187790452868465818455506494208085784332917437234144953647040248202790021689708174976226188112089105196642090850400812923898702882711227531985088942169244715357146963161717232658621647428676322080097855474537491556995121624539889669874839590840880455152729491610584531095856864876487880903641495441287116340672233374244541328621354794734758752278850165783442375526615275956578606799110165026790851932598097305085886821585733329959041812414361134440785383811780334146218372553867584595064081750632662074097573594770230573086671227171869471386250429901426033877061948667138055074859474950265033223945689202156892425604684816612972038499802092454225515430621713101096958502759041784234988531793069942260441314911453595311893151100767835507172113497628333439077054767034500126385686940166873729711705381485442999904086961143496982169572158132697123332493327583453153256563909834981957288687186975341316467335221062245525601975531749525399061945570411702111898694772835319381240299094024876472790524488797448013710687532826007659190922705206929727989367737278601349274941415691181762414982444774981872824763239165996979345587685076203052847623750512167737844920834891834681307843459560383395515302936176946634110978300999289532025199166028487614379967918639109204877073830329261093530499730328035339422827039092354064090104072772675267916550959790585197035089538648587588164470847761230606270163371776964990287589150219884853740241314387045488041527470049986277288379008117230349864691077264050143088912766793592872096281376268671405044665848593638910536482653589925386633203556133938091123121058921678986247537759219760979399788299117470240745776871019532770152493186290372694237427875222819509211221056190439449384048709292667208093456748452862107341947787282860526547565374849069691256690679605408229985636978606306432185529805112193989958443790782467069464113904197362975720561594511155873345583662054062170719273171132221656219112483749150222532924914976446853632247214406096090957267237103860753090450748390485431293324649053174608714756963942346154484220943012310670542877121019809182922150267727974838936526274515107434000080822085409550806299198289835523411487275506751072588468113378870179808181153392425426455165685382458916170076308680633514549775760651127893681298829184610381941133399657672475874406378596115774246889046312900411759179653698701399898703887323378520416251350157961314991998861862614805977032500037715230230790200616596293571756577031399403995043950605334273169755173470384355548628674517124688357684029615761759385082841304185016429749286711102405196452933727162843818128010342654118539313808067690733505448020777707701178854780759117078550324853058445613857652531211579451551386736951490978422516970497329715143733840498776502560586889285888911105111665494988788218002775075782448833771961177641599831424782882031880489465576710263563534260835043802761596836295407476700141403767895237442112999650878414701470370724035011388475701939846836711836379395555785560977159908053256683342511496094435922084767104715453597488755408385865692002802541857778809662600754672554266476830781187037873323117150294088098533035492719886167007904419491539095808841327301919238840690005677316689837409416359555150515987057086896132190445012680658689698176307612941283322980828925495436184887094672070818215719388873063846388015856301198164871635134831183464904851773943874177965722343574638445509354889698616829802798837188833317259632608293311991040917545256408655397368465388636020604922497948681622702788817376033158824667385321778905721416905887520152410527046087087211788697500393979120175391079587721685190049433120222751782507717705860430460960743852618036833784360185700747018910673918052413044358351776678485240491584782009018494580525508239206711800774914283786962399960198586688575675391918428523397553274171558213118903511642297432525270593138879864045809333560002163542930275991389090565502347572403597775166645399291521732901633396491262250392176464778603835458940440429419858788079218839492427346124767907437412284320414788895602993605068313399266938753315220314010891246996608954120147228706045139928049330202602744254479053261405033754931419788637837463068063337065972133149605101933160497053704407702221751800113061099438392313972904567336395941540947414882374534252246621474546352588619644572084585612834010193271144180185758991417375954972162443730054732918806306062858812352458417043404116947597169544205301483667985941104826281127862021582286217061022382334991308506087848387663264235162711486038619494818966717359565517354748755537307004970265290594737861467948007966081560308690668038219889000883918631946240665183424674198077482192041514964325527178146627109624384551584732270542336889478340038275168452784617673919283142226125659833921109751116691191183540438602992536858851504891622100665620357348275107880130954082645696230855421647853403781851346106410541870416869629182952340344822192735477193817464635150073418224309965282246070877149220281200935440106910207262501110768982204709033439844289060813873836225258252331852180068420382870834685132249922722008114179445215511861579543024084970205958679457887464022615809803395585490817792248594649838917624215183948751843959023471236672082544245595983117469512582375003418916422273956236224856207212623134320179639951791014114589425288461418946418341730836085096927393091807568550602448606773836734047384676193479191243894249192321821337668047904437233347714342375481514384710900680830738226242158736054170198508242723049712258780780370081415815889854612290713929581711689159971985563398827246202364046069378477712008442917429642226007377818658705493402383777983172545081143872469817196591069357081692536201223683571199512467683237815209707735589197664038603518480096600801853134317130814751230215953256853995347532661740051951216346984362022458427645936469285803853056597126528662024333575046923418465040493241479558681702745051010111062630502360970618381342053791207194349582489295598785649314828672696148779878458829073722649707137187342991204645969749467111685874056101187373924666159225674908755559306777639852054208338513099953333796745625540781812004965395728104212364683207868298924264031105882334662231562811190071674498854397999053985525751122896695119629506552288552440473614158442351576838658335036972980698097850471723582090515320842754091990011568451437465886068742057868328973589600621378449194891588838774246649029086375783909467759493586551396228051074024333985002878709915773358849635462659377017700372246191180369982806083873220664271833381523878883785318294106589773119506422466115208320373794015195426227173737603732129561975633244469336727275414407331792158776370973298572410225886914404961509197203645250988973830742739721940558181786601675236908962668096989422613181659236121169210717304508001827974031804629966327315181282475001480980771935719261319438035880850736072368092955846806825364369453226955517894606747695593604380155502751611593046296083373997662426930523470373830214386430953953463398197801617366725182770626608223002027860940498974993711312457066670511363988543118597733970486001656036963053309636846289754860895861586423127129278649495235034061690433508950211994417422796513412661738045821509535410239968107567302100019776704291011874953044783637040898280910524512620632944870274522481227577507087136022619613876789067215610159642722643023822434093987250185360236191660107541089372808582132120732661224216342346126497115724825913892413642108804716446698839350128621222338657544920908729306990432731249982840296434687351052979316924525067938329873215931942650529453305997896340904378829206813622571997554382029505976084048886676648777510665786788768271779692697631124252796243582023499023074800824762200916677989718102255594540348023620628991094876295755039906424767239817080746842554184467130793875532708349361978895121539361928336328153100105124991050486617873453629817315065672186057822675293223527688019560193091114987944496392064048040468476044319783705523527643726712927245476042686165656956207372154891054282658274328590623950744942735076081822901291000286784928823348183462020109250354569546673135097027030114209112073236789287341234632606642618564205704887710472856222733868883832747880707468064294334357074781948422794539951767337172368728747333164650760090028255070279921506392659206499818595060699639784015593558300374728119523232142635898567063083635759035339243310768346269833330580143540700988730569181783072988250951815456284166406794264201434873784163491662622145975245921651451511178302487047806936280535204397831321357177028348536635816733802156394750999150142196573536543603454869452369227646901204704453553615145459870609323272141094993985462611244832451863670757757503864931723879118655630178819331872928540747283674107214349608628055193730351938698450230500928481024636158456903110706495449327639940401816629027471477849297425440690820784064772698730857721180393281765711641264884125301390013615516660800769460395088896869118379248932985105841838968156718801932876776337881352045028713813288393164883210220776723691767446699463197604493274048828285394327350870439070162772578070615189756784782837905674535152856369817294990451049939820793091440554016633825717217081093440908177971765647999114704636972097175495895377131265001496755277487833677678126807418977731225875803826074650110716440022476940025300798191068813325319213546441590710262832813919501416997136234249794910634441066002752297783573243046321214093478543053666053768089339590614935648043948554492935537069032895551520789695933997475042991467915022849424555332735213632422848606972388734748823982359907518549521454187283477467426162439646657949282768813288685649347823098089608924603588377742765537577741160537988335302415415507955786843751280035873202919161426591954194346640361246959531293866503857716151406846904438537135161819184633885631092883612298303126820430770481541910094261400551800909080687710012463293348201683632917702656752769871604830223138049574633405898536330033443681715676947791512309487923024183292846949349733863901730615224171295268748268188243569867501150281340910765624877192340312189523621379435126328928652955625305159602362831251801504478370897500923385985627806357737387102623107987926534779420169109167716072301583859676866240666000970367137796369002756584001280036304961500841178529946790873785803336699860244546652903358308642370818328972515546976045374850565720979673049225521449594230404895626575338401534757423163771173566984703384519060585108170248284256046110948305105033753571529270211842131383081306840265382859041819388383944972701450714991798187219704041080691054367668139565373499978365152518794305602626607617836520639595274941381483649650889243560341304483306489040322268988912347831508729176226396049986878977582377419831595829366611585583268633729539447735348358261139413846946826843177199456023803154191412899362007293356200135360193179733991692451377298364395426039419156190231943407030309262064532192212382356228655999670671923156843842119215357099694773592590725596484219711238057808337371647729401044803374279956889418167088738517410358495362802500124601210205712129152676811733118832171479821222760837707979761924528923437049517313643920987373546019300317078784906879317653871352604049251828850049614160843141424023379605905231696705008577090737083034845208485589371738878547376657968158053541387305320678634491805263496043796461026361843956406520527408118208052495817505201176467512815487926490864133113095552600715091521735352198944325775459251173636645802254981170837018926295086800049672079597984109809760095006591399647666029478800055590592507944533208388455345925740032107047099355967461464261070830897713298245669171442825271458880161280023819206336592373226078455096259699560645769040193297782360154991825383445100630533519652218602679677539289826114366456933333719693029852455067883193590649812052520119885713334577080409685307363716180074614264279137160522341735213699695268260472033945710431767317688517100637051582023096821751338866997408118090173682556801430538832334910693833032073999754302400450900616009159965594248918885950696549754893663346040072485425924656992086291773855800212034971921979114795214940596731397068257605764452760277587253839818831137252830147406426727743538079073355748321656173035122447363364181159355430559791498353241899951878313101177840668453547258153437893646664742690169892932572619578880846259728756197239038630173296270902475386371430845997964581163180095568874498523634401711481097871325317377058229992246901476534273597109205523807027123172960938207081868245809674936598342900805208662842050794510255798211706067610415408545223884624344175606787956288128319709267272126267593092034109541022533326385063037801037693407969167919613421942216086859147620292779589056410662806383589154892723165392605470323601314472224171670376572980162996149624476671230840872824307356689534472640418966462453613956442352211511604809913027650847850050101777612625046352664051077490526925231035458633109182888469726401589505640009397522882486072743864995058647941255200456921555035410255994445118957541245715559008513022613405504906625404751662318191690400706878621352172250138763841315275522331062540729043105049755569729443124027447345761508902693309562544435766155260229328639245015185114242494837854915894138088789328618395678625277249830460793469003179334808313426863392469877369412121763471317136361579440264996077055699818006799128892476811498705934907970002485098655317776601505583315447750808928301951003463093587603267571576909894058430125114347548816686279612412440094861348500801218647911475419194989199911551543363000153714727893089655637416617736163564534771532512124201940884882506245107265968598862324024754980978979616572418984335847395143478465181684510222325217539315444904462006099401031576576001196747552564743566746260100115615319001691734518358712791308614206331506867894943577303404930905409888050867793807601908547932844728140679991718746147824677699210969721553395760457211145535205012454414306451236404108883380449182171539731064402974339226891413690704860997108972049591767510906042187864845847190788841481890693617802598064664137670580858933292159755087864936832522918041177515011324900496758832421200472269961573063731685282233874826565593329483155752779940021169870724028510282336765356981490070660167576369898039378087796025506656280952895986764459237476075771342410941147433737048372934899817270075035477408030808335371668808861798852469797623901250950591922916215271833277716482962024466452848847251809758597655485721617601829503428539374030969484760543556124883640329396440468179235546100082755656794268013125453343492458444046824082562887013677546768146636957873644334646979224738258983898152291896531227484017743011950779622721206129896774954563018164178787501547193101143126518538206307913628374267053411992805435977110026664354983802043348552311259373744978820447661897851612952319182411259465653220328879387148167474274645348622144467175011161897270709906048124947428787647467659418518956049102455399304592772940325577321772795335769292046025988203461499548439995679917968102860440231149630426539319154762445150497230049687006720615105333025672634300939604816588321950714838849554468524436278447150979547977513670121122639719868724044059447933318044892543166170717003726955597779053510788233349473456388199347448938311766656981620253540687930491000085965550004981580956108550153107757604521926877006691756578626984986319967355062356525531517045710486299734802738182359706372056270964885837083022074951939588857889515311989852013185351407120512529928037566911598769864888889528490618392049241545713906302023660017575913717235263375152634905297144100651274088916680469390742449944637833017960225240780446661455078478746392085268340656479559113796095730365385764806985427116201385380854420977775950831103758782267051655167110605938526018957007397488273122071748870810929425513218672841696686726484378805409521692031622457038664549788306216675702931904455659761120856051524126264927363166896152384852796543039133216867578851013100180026325752398301299245345387536210132622207172396338375944100784185146295706418836117567271368740177392753007827911270212450314186019730499950167562859268690290921387149415127291706710660870862107739359872598430546908914569457463258703957942323951781241911561454690064285324707392787782225617297118075413546893315353755299653455709016005587898668586512059014875461070266586415971727402333983030670695933649109462033938424811463547262301876814846357830831405213569943574665090063646034261269430077978319071766209803037381603762745617639878226627623016748387306394068597203787873620322827623156951285251925037684361264810136020526295978281664731483016971076909449897797801217888272953129850781265717366464894691710346606284044808897074988911484793860875624132937738922609385571585449354652674968381875195519439434543739767770737380306541892637674222097408980401759051701843965961825466181560811110307546257042689672496519088091300184202755053365361864650357954636219248023184188017453298725540748930127739130144658049858326087867516526300056073426451003597796841001686157660633739348980212364754856621224883401525334146902473985775335988362651811129058359531369027594431914870615779697444827234457122551466112776384967128712090267580101409760451027811598834854671746777556811133028454425288004152196727611305968516720373377996630208293944295188821606401233918650076667959616803479183913532082602193559233056336230797243029787008129036690121720538916613709918504250018742926834180810627951994437805503276828255161000762731729128308013516419246492186671800043426521752429736767801514236710368286226525890769039089087496746060850137177800496580445096626832819904228058722992358222888694893905234629941901856713286697115730717732316828115624196999941318694213926286689436456677217741339334006767140033076756340713232850366567261969623091022671296248473355716651240740724022763445834006276451921780352103876163315778801030810162559393627140778033252227596403790480071736988897703980946767061773390580239620473753932631784207221462032350595270368173640166720190092023336457801403691298324978507288012921833193395638262143005388216165027409948067099637447104896912363098305857506986492263736834763004880508684005852965104806516155951001395337839555446000116614435724847199534942591667203312062985234541912929828075567136305217298567461064799260068780026299385412990479732245816902976594332809248867613738271544178607779418742931147461999976505111947124744142846853860687043919038685934009990326064728758371095402155846060738280538469580195686158736036902848041648026492815724469757287605337911716724984622122023067120851691753608627009319921929700634972168080141033991827804681264452032717986711525234837026777955579508309136553070973211169490233135676899239990132462957842307669302650159635709552182404634938588455635627684369789665974614636841252241916878816560039531950529582834335780248265505018988113755651361183716398542534712592073994946685531907453644983146052668469513232205756143586307831928127101126566654324585970668906660401910430918797433653959776984508234170103980324890880610451877335942322859573200808272595956255424338138019972716815187628428713674839169888510625751114697831641800343731646029018807120460536950011656559246106331836726088686523181998323500150517518003890249085769486532691467809826074936190348156743259739636426511778886979212978083837882127130086336915065174603444116900322042573751644561924637181340834536171048397110909886121744295795901144017844297784321652992720706757443739266168847140021420392584063200605308108655926204885698022757621799128797747315486555114579329516699491920893722061638516515196100581805909862196165683877621407201979204431465625167118511324464130589201931878986286819426193025064490928698472801677299496193142428112573555550065503253992541569116436827636059481214854587217840426032728835557500086702267942111814846239865660249450249710093560253553007288791798581811845628736337048657008063045309202348347795921342678903263721957061983153890903669292661770095061154270693087777993081571314170843303221944499976943811537308887424318718302849311450340539670965037610664110393807962172180813773937199279492825163629892866582709103641014824120054081450459131409221076567542000421840014006169867310167682666176473540770186707068806492628153623454154218644323448116123904445333705540154450491882575679070212266878684446612207949585996999485650702324895171248203158899577454958722666122146100396584488133093369916271152586947204168554045737673960351046790149009050242798587459903134773910394596844898131424162951916174404186992398161609415774613920810107624592885907896584538732804245296685674790679171519949521273633481831493300893221962079057117873238326495454827197044155092058275504085847675095403899358869154007007116640448982077844084027474597439842003142900762889001929807511158964988812437297819038264989506419003496518097678031086263298465548637139248425122621017107003504038337027262235707808332500960825711590878520036264464268784231164060151052238821462882638686994213758193261418280817976205590748021578174808697110656768857655059133032628815880886595566349911935733203157055102379314149454583536187070635676875705822672570834574349647032452805766294669152390759952201059028354287971799580231590652108580788545020047513356254624947026569920787494147807998113710909045375590861226067190991056537672211457241740745335464065349520399984377569213077654285714812663723248975510330648797247051885315239695597827466961991094784085435389804157659595812950877871620471915671504200104857604584848128679100165140037683270244950611066393818831394600137391337173875029704248693986919639977458520713393845640097035401564822812930978207970909938092943942704078365905278020802645659844550866847655467155507499425507753403056178687385440672909258513021494854911375466756536646358807164928793109834572009592474145299403194357379249239879584960660778864891147475936121309427174230055857288708356715741216007016170972085202857292064916518602557184838651015631247603630380506433868404462255857641763747511558747717837085568634791606116785110184630391608805964654245447383308591892055345677369853771003148401921253739111211998106129944694916440364126109521579646277222954768777945848655384862582288089244103585161139742997849076720313557883587587912738461178533102844187987098866444943261411493720758355686303779820277477413716409872374702482497829815950828999524470102893289623694047242189163571847997095659802130980198175697444571198698681791330424000973659984527319705861337714313006751467083598086065852160796468529358644239437334371958657433297644214530434326593933440018558035172727094276619539773752055632473050144143875787805629984934142288680950160636830455580073410891399936775392992332163217578466597343333343133196856182971793432271842425861669512162342657466663060726075088973741235308827630749865808261306033263374955702186011154125775992490620279830084452391206040038644928958578931103844125901771853259841128355866566976169860049601999412440876474703459990838207256054390872884308281683626217847097203868106693217293971123338832701325473446371145035520134682025924815417317969456174761831380916059005695217333037616994568487245374719136458449077950566151137868144241468010823340542946309633160301247565824665564593645507646179962866994155287284550280644548181913512875647571620987323188509008130370503235629925945717373069002398602693700451282032256580986049815711797577907072966029222860834983327883328162931663734115440482587694861848201936976197141948226579559866689844190276464254459695427108143925688959065596004276106435009866270203032979334253438157782051003404429692572926866216322585549291847449186469401353350449494734460370125660824589574913125316434585532269858801554181327312356728103974638133712894558507694713172715483525615325804646510520167088843394183877559047095412577198175661226104175783019180744362727250988667135852273999692992747887142186966671774623131031777674329910802057219282369648099754005378820752092657721497826703067504460251881522244835404794942807565566364540409128466271463542455931126370161972468118540904699761062421910756735406635361677595252206482892048950653024916215420034743000124831355441897874678143489805612355426073895092020749773880778349035617844674290457870343369009153149167399674397411460988978477522564525149502955272790885132458807203487855992966277772943236975917010712506509575666227718710496565924355069999225582631552705628109536902695925040748500482009535728152994384269222581735229046798683969534154943235176879365592264986548819203462139761961706105414820388927896189965613305025403419339564229094759696915819970047361093024611085234868479540460877093081279053402747801022761289363478446080721543607127013202456872303263173440224808240944835963119759549906306255170643502758487854538782785986360807216333690035366039402964119668344506926078618024372521609149454246326430789771765156580570216739818352373042588764640738019734693468558391736976653373177665664145478169581062748831848010360823289948830321591415326094980172399553062328725865569766494402106506641931559695890896899332761153662701188270188295696273033684295588806571387023243526228429603513724744130980048563868464829734007543126021254744392166495491356104231384385295180641840483135108737684625788578236049828517091287578105680127696639360307504790663835622577506128374522822760452347269023215430674533640212707168526412346087888393957648047246514563897895881763686902891851163097793439323088828365012242459231982133555262630989542374971257848668270603250338615044294373419957831433316813835592961948526164020012819681927954988628658749866612354484504276082925258856038186323302835926349592879715537548234287238976728256933457399797172749914047553229282060742650930966220921052679470494864058098237505489207672917746184559423382437984346685484745981224200202829350998068986933996063581324090769473251453966388393554377461698923509588465081221556963284185062156578978173981776302466174851111434994916966993480845779441774238963892846400109620054343899088749117755614123545158716371617049882925078567571135818781529605815068882360440480637235577171148350549331652878574089298396167629798314401972007708699971276407129997403831087051830165263587580500637753086116679657856930880832101321081069188120249694369040312787270458608119444115197241963158620665661773279802937333768214668558119847993936182490830792736306193147844195488099300625516849387786056675804049714377363329131747968492199130585747771870879077127490964034136792907300445986038519862553025313578929601403822881675495127735428072274516006450363545630589354907692442427392345073862761627578267191454423338247218766942923661100162306046283008273810359477305234958257638657218028437364110855742556206160895314901220128999537674038756389529086646305704600169997575759046147732464639658562745038000625859052885852482879415222924241581596885219080454086652054416235798046252750480185879127586804851429658369104509687715163309044180244181595795032012539330720458378187132321852588008283812780173041708360980823643348032143689724081776654986167482905170818644435588885773157477469273014578287985006333093082848885367838142196803369538407500903377233899146695937158989718728705062704388360963213935877655443953297755746909379288310685861747320535506714528333537847024946676183118493390045801962663316218065886361932964062866906032633444731954966321204103410626982315579153231830231228400780288410581907103364492467988605235255245094119925869604084442289017668145407052455790472055962865721559626114153788886165897516967374376788706032011436817354770938302026547275286558071850229073783859205752711070161715462186175259736098546840815197800052566029512785594108085758962637327154379887903466064593155452110153214714431341468614225834807577281966130326578717007171171570150246525851507582621256558693235576722683790936032025122885102647681039573489098472484000365011173119207855151154295540796417065241307033936339620760363981554236691682207740431011742068113659741876378649226883373772577651774356806256175681307262389686034723081924210764649967515033380263351704561253086686262349566882976930149869297983789845385666861338482688110309380849390859748767617180142497083465059611197412259924495704200765066570483701826682797190129277117133956859639371577116725725451021551258355497715096753226579060635915705155983204022149804591748259191056299334155671524668981053504833879053870546434295796889786657077326828977369504966774578257627475858562068868884191821027656868124302099809444548499711123293727549702573438595391490208702765270342689892104595353891931226357362782947172461380400231300618980342420522552212735463163857074518494658532817515102047152025207184739751214725474373241111856774862397254783166279874821370489701766939371273414599238801159692047334123534426427973556294848513524153021262244040828980328945195813337759127671239489870168148841959168820952602273769102773092648834435209676801165016691314315810113821498085126215763665833907986052827533484056204951753626070716439822403414695533626341652552274527734657909079133906772211166821079041697733044732443326058425526534695065212499757025562554177540739479292924103640943931543131207604085568024483692512194033118583188213575949951177944739779469539471172893856131990780736123239078641693658743861686657352535676949135669533611582948503655991577331883210590102705608667888105994371470619912626259473907570563152366594114957445931509417092689427323053656337099854229129245390191111016858674098171481017487926213133273491035040342495063787232296041007541542197117620451135971293593045051001770971674415964944732591832464451502179466506502807252596261417932861065128900973615093217639739134778758708192063738743332731055532229624447687024983051837748561523419297041502285271762472909629132916067288571868006431686758342709581203726785824564284084754079734786608777068084183552085338723076382207542739016537468827000448817889835417725711465662359316399806926793467976055721980457291741000996370052043306000606980717500382520886568991584923162148084171381195198603497511434284023169738902393543296128684056341566036808841113700623579422700444033792104240855593792203192364439993837482899906037095647739807065278280983429983301983314402737519213060920215868571822576590257647699125937980190960484976334382328537524836993071172278382573972483490035960559079053904233366409035511344029035055717285453454616066281641025752466041371051912883690621126642403111409917922056905517160240382288219034068910713797249309921963910200510743977344248316731184806456928987914038089766586446570526724024603867467770414029810418212127073182759188642335461132962195537656926806706247708490292468485163519288985653459188631427979220676473213322086934410020876375864192760557077522039376861874379162873203634620877981254303127341990142134165098102874387603299512521102337517662866437915604162023158543403199102519555332451857026406488869727425591671906796440596840041091632320254833584035757800244065608953199111693131477531313360720528758820242286294410390171433853329172135054719038898016284761147167173085281078448613000385558164258619253972522943621708400333018145438817983068855168271976838441613984039690148811643794450641984803660098623652633060719659792977351665318142445642074505262593353561439987164608160416302778996386112916821569526974371624105397134078730381043869043160936265108489939935594742506332208236700240109543156720020437798375364284162803084611057091843599837665337476123308635988644598523764557200385452294176698618989277569625825601166080239286858877258000985102544816348025140239470754303860322232465019506547498037574073520997855021346280148191357867931845776471160261944938894876939960111907717658525423870242249665964147653148996332210875706995422420311990143904727909182200722543457137691507205228680964713641254115407326236319277604174155067183537171559144467233611126198635476389782713251837166560550481320344226190460135564447866725219568300845003336465815542453677640105179430846736219327622614853839957850071547098572454523178270327196133314036368241915874524936253698028898117516978259903669094975952785773798883005047238740368019233096907502479288545608851550047023387834565860010154023742691431201188425882298508951142919028027646874057887430587819757681667040835653055454552909442162599173851355210024765202372638703057258048815876259287530755457580884121619737304770639347785229156951364048254308124079599135754619603272930106042674004068146463285877495575805301596263800654017903732706218118884921429735409619330866977132070146023598296392447026044060683742500997351244110361213238176599935787001184255911292733465169731873194914042167953093531029965626681593645388017292675861326978832358453990523728842600746965162590931101929184297384748986184284965424979466394130608108329060915988132144620423484759988419419201948494321590694739506608120507085748515395372681756121069849491442866910614285133059319824401581711140520695670958700607382140484830134396553775176333159116447863189357729016514052619568014930267060439674929985344549377174851327571642550972746901773206614200027091241481820393250679868693369687899350703600827576479089804573492175113605626696487346533358808497819658591771505047031399818827511008102762483226146768745721934113140485435096222363403657470805333227753184761701550563474632789363383449579506684784629653256492763207731005612783255011991311052322804723216885103460335976876222153738712917819345099924602149907747271220763426303384954020068020552645324976189191441073735382421089786372646813507893343711580325740115445338486206683765029945186697695307105905764952624390816480039716340316530012059358359905363940323415468262861206058733205930382886410847228140130466373509162300970624586083686532631647832335066786090282017334458360600695117158539378148382628182099560117513227413721397059034700004278391055158467311702420401163658240496088966482265430846956702490219678577096610472994811958889990080239228911166625219882210626336248083076871088973048437625657802814599401746299695727600261681070100047544789069284494948773170717897087183849134018863282287438474402033251666060042090649515462539965506916746270011385219963103056397809698204462581589630514031380111954785190237103345375058158124783381017003474056507520065269165001178107316981460585618584224915260203972440746140677671953134614895247079966371265964703042567872137129935002066098509425061312988649128136302421558787750558127528156172511935662646491834487804620590158955922254729689152033990318687724797699276707172720403636817719944644284404765506329767612535560693844845060479623738503953365979333708498376145434100347697041147773007741261475283898761175073201042862350633906072927932814471129196814702140449294416837925669566588211385902054942576676467908818897839745560075191820296965241523308580291827755833666207720215768582447388053052763622050957410260927996823244326845722276627792084890825279473057197323471591913136656594600239112294432617367153978096769752642242586177555095308251047267223004717031389801022025418617149265113743611487251129875428773563143062497480421584454113161596247498853020784157942833915603026174486193537293567613908056444176404476870877109709900573368285512802424229333656120326794974727891926391461142570430152323725483891423820304808668585944188223485602669740772169337833894228343250478382182790656547991603509012863164211310320199438961083635538686696558988814897401737788068933514848256339977612511278263822065930870264231639323390572222671835171576036873760876177504225159558782091338004096910122431589526782443955877083149162580386801313376935549967673444841775267875508421068284525861020897643814926278176255918039267863304035222452861956219076672442515159948574985756716369373259482255633796618562022424957879534032413116059011655748610977410034715723226237210291246354377555255200905308564813131871302310771789533632901281069228619571968477177623172550901219135555198020225112843784626936010660230598540258944473703306816700884515330369042713740779475197615243439422294269944626396842501255128962002987284818403643473893931313181704270977533053582799731867306822975040719321426431422309638601019043756364162556806310821044703352005172775489247533874950059672735144970457633193128263684643707207660277053267380234313209892014079138480648469777195567287699958198151319326573760352779802683778594845381247481092810615836114343765933665223341943970095209999107704625320450676543482309345079442279985000876322056302134157769598447117991094230357324521678664530635678120245102203092431004954368040958814621557729122647784950671032180547912904696615463967392362518042280320258106752344630958262004164795297056203018038151557929510196821705544635088928315293241786741338474942954265022924291798962138239348295187042847141600151733373553112732237299611831878495944963784419670619907352113939943636439005175590006323169270055551137519601349140283258987795648277992536728931490172611424431604177497686000273487653121449128827039863394724635678492471080242113518345325858116965995223306000287252960161966591343629351948314048615983938137456687618526355733217983322553816064758886163915316467395412562088835063117629830271273057267350736199238327875691623024957255666206757471160794299598088065846300539379940966628101152932063719086836598685196418467480123026892746105145229384579260511756605992024500811179227522808639526782361004893224043192010293525050455639197157101667417255210198649095059873018478779985298573200076319775269923654211043775020796054479593946196960783401669589781641180888106518011350667689363985885224254719966345597345307046887784497287022956814039338814319765909176344645759498023639054623211518494036038944341231135251750375731011521916317101380538272527553422922755712775279237561821995600644178241698065480333442728479567825935942762171543337016853193530278642372246336150627135192787212774082071355548851860330321519520744372362766737040014770865769763630903832343378680882875528548975742664085141578833452468397367252326539783546566980082944145797073414663637123502986191150426412359311090209755036913847797942188889318982294792434778387836082982814362481495046435713687055908999095748474313864364652162884367243925869163959882968479390137175008768128295161985960601057107207305099166953611748996677999857208816538239905406721696597657126415697259974416561656783370884956741919997525792317265067429885768618283980604603484228344405973773675911194688558615860606338676052503271856828481187710960177157007267036494395283311156104643010580300372163816556389514404216460096750516333082884127468974307189746886908792621659218896906092207476015053922295587887096821175684857468051985895546208978132485706399947505451719046087569247961875784099294162791566046411946303184697578639030153775530613203237679738066411294211779247710364529092237100815691447835341046756006152852376532210797488233547892799432823901268951386982507498613231307944068250225497022236583254490211907530116749257646163118742456511456183300260880064371476433685793299597013001702299928139650449999617565831453992991778220436541600476571206045861982097305100544903372561569765430583902027392699707114102664035917693257483382003119156141963447753574615567017978166649098731549032018891487078027017636099592514975878169136381157596669550498942067501649298836589032711630387583774600594933604024368931825851907262513311820291359764339784458805742498071176799938236671880967239779787394195398054611711508548944012074125772880984611373821947145104065085126746958478144310050261725444924328830629175075427136891873034654911843324809414304075553078783081922591323407913994034731552730021454690889531789469685691533563491408052222254610025407465310279060176760534838763644811246089066328167438815988863810204087890898750883436051199292590755160521806535827615340522482048532801192283103981191720160946938975800826981696481388020904035882172894105581850092931863594409119822062097419516104407377839666849878683823955868382296025969186096829069037547949130633484703452713084674773392430384817693696227726622475442777516097043364108038655598398855021061633876094259304000158281268802144839970114973323387719866048951737762154028338803943507647031293673625860677421907174743385098552344413647562720963150410805143530079129006247624602737437227449896195767472885550084816900264899747465197639861720993623775490498653612705372119720168126776032965242058967325550530140452644010379668844205620345621526105336838548189814651033247435557443920918598906559012075605984929140051044187018214604881553735896012826007831584004028624248312766467389928456800545925177394836909844372782247500837046202459343954174108260899548073139068967112131411860068499771478186164226797319868967011045108482666243679826251175359419948449650468037829479452386388848986894663876363993382355741035119998654724022931436697894022832131020528060568863896902937144732564669305891075487779267916217135174625221900348265347610520267372281814986402004795302508464437545549843262363410451809951722438422318870390323583746168789250636203943008803272574861429490398322114435769724357580329583157338139798603166536496369933264619676284659262428469280117165681397891477635558694815782257513116609028305321338917023306073924144145483325718441563217453290125569018405245002834581883534712391831706133215194396256288799865677613670462778906099368249739042340529021278261239255421604819837036707745357529322409448778632353681982332648538870340822628879029299668113200678365899312235287855097235501083210399884701596640927790773189883056570154601275707484761577832396734353283088390357788204665162540727794093874390146109198332822503843886404654632494206821954644408132725357893253149543170882377378692084689980216118204988748949471761340888991415675729178262961462698996367088410285533031877696765173387338755791288581592961686590571547099482912648487271586208573541213394908513650041953494673822217560923601151398736197910498444689750552080574136151848749262090532588227469855455213342019356052825964618279444677378250317270571357117000865608405611727485833605254327316551237435732008206938184702271569732289005931135566509631609219559011199958641538643309084252080102052359376391432307731946374801695025597205141059028339058449446277660773041156111523982640962679193170779484737087841795272714715597639091925089318098418239845856551288472428562277068525415071287889271010394258881397637742257125244915889236500680362570784230320226893076691142540201604734607341437402342038751687398226532897115365936554262761141318136078418236430559059488916174976062864444050192827444375655930929453452361334059068091195677484065054407606404918179146660752526472310073887365510279387011433451926435498777380358255220843253098959619241732117087418647672459219567853651301086028273301843796417644883958956947536005741953815515593303429791926987287162330364167862979997532588608620215546334871809015488218327231962843906545526196072857290760262270954163346456783394691181959503973267796204137361434903609717681134044457481892411886928361630913243796123298048234967667909930482025411639410363363844289005987683878344237167614330812232895004656260565141642492132959408815163325961250975619343477510739463789171494067115371628590909703166260956009349965668026687944131584491398707165903963921229181298005245577470299251530984109242620888953975641109356782446410728230482366393993613375281638599667832864626322500857669111087777504959121648758982744309477330155323612235203919720745956999803938113971183389130218781105687804304258726240560887497580611876233506442628385709008491310233855663901302470367518932841326088915100361043813604360822794839407486947506660579283209669747735984484154529113573176688484032607857775952406631249064816291754773746865773647690632883219356401993406787645748000503752198443552850029992096564606340489770779810658155023425246277546272644531688483946614750792596901050016263871477917781174172763611043968715167767191032756980738114528855295680175215104760307361165426380187166639031614872381993158483428479853907492631345507169276856404109110982176519319295567590402003524778330698370352837969062544529153043171259854859056678206971104186362278844463192601899268930441878768478729008664777873156272199447166392291330135674772429292602044317269297787740846965798481789177590962625813364566062045932061260865420321852152620027237099988522860567755024294433874316730332364835885658851590118874247846963175195678657498009866423831273955615243957535835364510235777601636001963560052240809136535598422500120821408488567221505665007413236297914997178703006414884845875356804784830297951172572946132015036944203323056940639267318532771764863533233542634407000175611351203745943081571664823656644700838770089694070568339083065605165328531155495201637865960417055121287126615056580027127719006870855293330992827364428885327976506756465701007141610296522562259348211332558120619026635470737192479413424282214301412562945615151155285346529906172749052682830170900195531012211751895774888054147725682437435176853973345991894813580504278537430128695068526825955904975249963917837119489616330608459766973607649945236273048566611860814723652009475737374150092210264539903901088842423856342168121356674872406513138054869662624993055103006703866857160452253772748759700840187562479952708530619970644646326061616259125535369692870362339421878637122753571827137203830389035232794100986471151909687032103387525229883884792290664887677841722058375006313049608405069526336951011859611281803472281373074572752948121956645127149480812695340606409962502222756034162901035793170444022697444781356600690514547102026543671901961401796356262641578371619022236521605168347362232786410586296829457237274655527941806390014914337250747211745742909470246377901620045682663110760858818588519128039521936559702196277953038791451051491947462776209331069185230847300095813614074572484002812330878800199017935248728229572839114126271135057160413287498640253091028432931002383200136657247696318539728580510286473433419718718914242380692512869034375996339041231567302864506789128932150378725861376297933742252753933873513041406207272300439765718110741459423010502891505456464453771654553501945312938861194906683530670262835002386494514821492245638779096069926142300679432653618348486367682891056213286448097584913714656350969831849638736650793057039084816855777990850943233391755831167879649621069236426524144320529041947175409079933946429018105841267692911365935156057269263890832409794172124599942879865457005061281311940455822021449473183491842941937443459975092096403422975357569472069822223468031731238700450456910733087122721044869104178070389602471398201918231374587668929445765642412959138263648850254621794400795852600841809702813158250094116250552766231847648871917021997191675698752570384077054680602696250366068854523511995266235141914698910607633473034685097084232521902531394643242266267554739580217601000763683630350953788011764987283016524018650355332401752116197163994011992892777558321715718839882705973589130754207751722283795405569630478237594139674454166012468078798709927791991485740222313342087560296596397229854366009728609856641573211981897277243020990117305248499725899931062488400501101926808304062907217134682266095238483891377344153050391144080979666434477266985781767930049917794932337779260311800004646043091098010431773612614222296433320628818242978450497932074941591595306431444217112466435074621366584569247831855656490639594833114480779522838105992864571606179326823087677994377018253954123337854320772781053176454435233672454385518283072791293740460288095268610343967849077419760633326293479883023008639486173436389410138910418672634769632903203771774815679599191604019107451331268506039995099244319621287300064335411491387329696356973563834042471275911773960639348146116008047273014785468222815054807730289120913072107708011162663640116084347149936180081130330368996235048398614271191054881148944491409780279590643393583409479537816139909022833634237067590502578258551871374854619453744546266757674621225897470396429409867839176666699654622423531854957176119028266564756430731210414980778447586652075669366808049219137588773447520302867899771989140344685620992225279062781502051891871044822964552455372802967128731983608337924498944120019907782610477620178307123110919612475211266692562873459610340527011424307422492920612190222351683254478184634743934424765224832342191804847115462304785831840275182122688102632890436639383304806616431489318194147421126112625124110831688928398294778738022853392707147916492727391129708900769934846314971538179669502448294257814536159942217537253779298456479444539235163064186857019966946815215893613561687859332780791780733577311690924306538415882196702751385937111996245643292348269960931010687962478310963843735170602915490885054728588074094059132893994277811087620371826130729093306144000860065135515977623213925752196240895700739736706297927640215661971143731394879214957279633770953406201965654562486391357847368351175491718428149244244916218887440252540126947526442722477598195380546851236575575510165220151993379180195831902352183833821642542389648041480673509779717191311361023396719849261024323138551680879575963014539912645525178045580807313620490915623871407972583942363259259240621787510532435293209181719863009180998261612932682771193990473896108249338191669870848403599792998717290321533648510877130013868523385325179993882907585299084168027230041771630260813417855382631626112744330228564412411422924576029290232895840889327601843425124840701087800430663140488297776293153847050746761975230105845517893335360330243958655402882873501802971207383887620353123526967081193810886260230190755868178497442271445084094347403322027674706826037331851485919688702104613415422266976268052735560297639718922259900664592909403661168362275510928026093581670239754095326090240965919361491515873493560484165800233728717823669579838950480849988098048445209045104110971778734622469047065538704446459743617482068968525893115104301575361635665324553657659447641900841492776552205876226591875883058551551374279433355206942296909676659769814548158776985896065191761844327127151647936062003307270580796189567551561110555406028433214167396023502668201517874600848962509271964004070501733217290375944746999017599158226412306542939960208160388819903844835349065115399541483921831509024832718993898988223941019630622355050962254925962947648216809323792143888460040185052022046988595682653917486686574670526481872238661246570796528546770946250346306818126559549633918104215185221619231522513883638199134355389812659808005263985676113910609623977583089889836566273254149658819117718292404642016752046760255941902459658950363976164113092774174482909094322343602211150780902566761852418054744932764628588441617719868110287434399280412924806573780051040874268128746313288362203407883115736544630032129912494838885798719908210498198538131321152152395955458357928155815417830938252979502021277307527665907919373008789215933200427382422291339142489693249864620706722383152516997329427812250320459581654811398540795081807237200119740932568278770010750539904535617983619458251243473925861568751130992407928040216370394686513833585076803169815855419506173962219075689825905715263398734632243215050857862550602750138750985945621990450511013097052353686691032674655139813503626626348567813961791004337066883765531926415381984737096360843552367566469662236287102274672031761204199430101970433908121400292186796051409430370339608372729236978124861596330649086186127130935255510932053027777414499320080991156698971336390460291393332281702996091599508208019327052242461571979389411297912634260271657449918546399565122925032471340931811698638984109333573508774153359305965563339980217954829190018291521755235050447931629347649113391765457920943882295780055957200761046162834953192572761541814141643238647340473081071509051844022823458143284006553502716941460596311418906610248773374891889628536217801447447364168407209615850283996508127102455673899478792838644495328775462953055659088676656411986342550651150173027154425108205603668236880873377739202965674477811221417719529402333324457978280553021011629039215101424584414435905161182581243322174068881181208256050914115412513276802328209421716559116244483409383284939194910261161611496699266963901103173960218520097208491379377543627083864470219999390016447456181359604267961642237273951434682234301722927011515113968975728903074220202679962484972625495752351407691173519795062625866689617822862651859755068735321598228816055752080493726983999312902609339725788558736120190172121457168966358918390611773392375104479293884729497601583645755634458420698724521857290720196431987644181725794018243412662862383954479446321573792236444614462013589906363007229786596060011996447307380028331614646416669244525249895715587784577546344591623662568637538785316109626583570714398364653151685306869600447753903468143603695271155761699337119494682626561550733714950538076894447333258499213267821964023211357265450925369702057283704572467059201613285785468944069937129460043632371581529633314836549095071707186180870796408279604633228163185719970790644688054496111101076347547079966755940074103826231784516191556676284268488354671033366508126756755525507193676078638471278913664005941441289357873503789628391838822973888491472542683159532968332372158028260146698810391516270313138791422882860860116041000123094288830574798579768083619874641472723789675394075958488752924589304840507550728271200738809075343092586776697069650807614694305177551167305990779793128614081548070482005354771381639953274357962138407187268775204580482474873384115668276073735083814401838032152593003505259664327386838072891238497069309248222314266063314295909462817795945065044553421524794207658307862072651995649244576844057962716743885281217499007071164929301696036165069815181450765873210746693450014051576585853077932828726945533154629039832764147597935469092368122171016768180483970267129870807618000123753160756132663821191153027153349204252481461226656856861849206092626523161880305067563213609951089498170233074394675200678278922339594005864608170899993506854577231446842272785449756073968851696444050245449781219180697275612659618015674064288924709018045091891608380944996152989451165036306808992252489569402093862835683843637702499092111520287805329241251811786149353423598322380929760881202977071320145154605153412367105380991256146033154471841037229667032017717442607628781526853617262218786819303778269244626978579355185279376433154241242038433862901023565605600044016494430705360139485529122283129415200063804764752957933232000648938654674087577755190569411640270889192710467483650095505266010962565976436692653990344741978747950203328964779687191110990777636879368110615214394390753440076214359439240116834177658446224894902951182806378060863220692550116871196913698506923000628274136277210555865264272677818864603829023017208955075101545337354279363791251416224740252147699768074048106541277629946240610213655519983067778203498931472695265476581568199516456666486258864680059202333386485247775818376057364510902871648330213376138106474088428060468663383732035879096777427209826928339913420424944355116228031632036972250672595317968527661663967944255814699716946155032335155181168701500585351682797828395882395249549264592041790199681230535932434170727248269916442015117197701665606931585802682282251799214240565521956348310500846344461551889658365459519057425762489239830615404517235324218365159034976003646751262323308625358716393142809552412450329078026621253024897189581080868664181283556189705075810552440482201431546731544808912422696677168670214529447939139475417583491977277615403023754575652667797874399705028009206715321460829430958012116653020806692517576249638677809910348979230857706729105935526199053685099349707781833435256662080537242468198312305048607355233391886295166585803870595214683099324499480738110747196750993103244410191717241803208734292838526019604855514282133266207469218231753984926775182892278239814392657574266528775049177855231815633674623982674009133226477407251529162834687241664915684122657202497182157470274696711720592487830611310631468643761214126485821570977306446181816137791914172904866853677171902485577834598951540220724271820781039652180731336116166203991766862796100678363802666118706055534182274944586670284971545979834098978093643757321375544613379616698888235843788262865228559031569142402899464815247885172382919265111142146978016814653930285681807580447345842114079944293339622081152207568946334780008762489183553144378294330135827010895578257297740343796973672285838968721511026878212161080976240666722746606515146187739064142905302107944950041237120538580391871917136333375195083976328506234476345743227314398650879365287383328771897629508585266735172904743049149337312299335778316276512328143023197062480498968108177233562110418589300624746609221893954180254587447547520617514810300962519352112346633438301589169538686179034197265307816905512554991946657880520285221779115317653314711347977020605842588868494902046384182045292263597933222620691276003859401315150685333385591569162223426863506710762022683145827596958612079016204528929247547536682304052317206056212820532257349184038779552911321302549303540827642912986672131231235923205532836000921927967480093256495104279735887817238960275915290908631173886002494901552364052207652586227975036448945679982493168138517624664744415156752469292691132111576857567757814388588411963486997887457105057426164443455708653353597628418826783310772833477482363209295924900068004972390421673570852386519844550698086083545424184636122952228629464522885547642906817180479844419455391297858586681975624822518116052857635420741063433752306928439008387248659094262177413534248422133392754111393656470858260282163360186703590886465340282152996250940412858592529656290568997661528365387760290036630981022632191998377069302695926249730258229329371759342605572989707079999611140410307813291655690329119440531691833926535336629233249956593932355942364012473746725903132695199994238055599991652036019785677944127698843198343788107289489313289931819985892099895833231922656621399951941737590933977991935642643146637078418355745355720137707277553858647180050949701218307608937178609006819500639395480252702675879365638359310205312452180697953446484243581560237969627842623349306467112269563347916642430064832255691588984181767283111255849638294541781111598359202255017146734614732372278226655771840996879088892668152622661559619697320554475492600354854620990258926508501999564831213627798381065191925516302027116641955355682800237712631394205979404992160748670637217572697479719684152582095354312233410575719105680391651023366203979956502730427699266922961056392533237387836196666910712039429117512816760882192529666135427178100808675326040723138574861860826233892693038613186912649929611075510411371098692114466781403320810915213687881569090473852636407545244343452860232451473764630902635109387634916849210083140112463731072774489159972201210703902171626316071814058020068947094420937227564104977663716055741251049627241221988893279309766726836445660433237014159638259786274093326382235884026719617295464902369661873719698586416267689686062640997127096695478134686404015729474551529005195064413726039899839260597960555012851239358137163193863426964032075279099851919614427658390567686980682511173125156117919704402977396514976221118907314866053190058186121181476334863693403129917294566543806393727028222701351311377448250882527436666935177010205593623865539071104575137576658038091657592449094683997205189062122438228835163301052141139229545292171672656302594033513731719655715760299169577476679438015427634256903170916985801127174730003698251771357931003355409694966073634782138961708408592678640226951076897118501263161625934938602278429707953754270113111840158889322760090222895762189329514697322184173182284390362305171055114646546373660383882488172168612530373576494498898943547381767148769936335305867737085962337239484270176196616767070906837821235013840256717562440805271066874328919460289680115323840108119373926680446193504553226669060691290929647944642847547679756627745048016080835895976607924874199799639773213997580965300997144939865984495482620377484474614992216216504682352364040838904071014511739774007851878382200228444123258639578519387195844103828781195366872076484131083802276336207108927786271863753306534013853651152842326623165872234991257841446083086055968825067616351400681512159585674138531881287638483314376207330707525197654988377615644443988976449985630319941851894998326967209958242472244666357404747108854149571533575469535956728965114069650908069112557284287124495443668384424307215903892072295990917214353204513597500725934619963508275870368808123149080281171334787523855005249554488290944308814857349115818543980364784209985556602268737531727587056161624032591969015261559387259157777061595725420369607463111998759637353722607216697381036592055065361769236686733485454106709041876987466274008781232222797395469047468757030815560543623037894112056101289522406558744446121317410058554728512205316612757512349040708206864064757037390712087589349498376591719538242412266547861257532603320989150167312324144588004414718379971642328126773225448750445607011122346915902031673693579016535116545133976145584693288051302439570439341996979000638989008547820987830515098824204725939178161192135165957338243923265687258674974525975068947246204563729989649928679089842565994472742602001103186437314700089170704465855320594668351032723210266638272933816597514549420761519041556791310514698665699452114803783170463407781065966354088092530831234393293474034830083436645080352323914366029173156891677605474533332923141834828355774567048058597312627653033997985648377796689533307410402214751162107435613604162098100028636235490736010161342366190424059493535738462664541927995017977765003120070669277649915159187791362094772292825837955074804664905972897215610336309721081534913132283055551080470326148271417253593830181246445171031767155143218540510686516189066461624632917978688769302417230658034305921762035954566673666214013989442311781585389069625636688599034986414766697770133173240218841904702927374000758542580750811288124770111347827863767349428714339565813790751896084196896483255805623598735151771732082274373092510456346308519053208970104820407397568761978334378727385224695655659825348143956924499048109269693955567482091208150023349750797814371772754705487305819733722554648023963228231783740814271632084573198190518284659303928332759796689882974969478153360483649676131050043361094480124328558622201528989140834672129077842262506292067899884789102961157462892587932168473393788632610182332631853937084339360818945999980861146801187483847902603748481775979763530397854642729765658304967250365327222556944399259000261445936176189988245823126055587887717365303930883757153621478746606143071802936879651618872455934661757813089039424629293238889460761309986719114838142778637966818415753292610611688928352632490798858599124468630802571697868541754525960081083602464008597805163500796023859661260426028228329814204056326789788731441357424389576629274871911896869993659634620786730141529549216653944302951454672622917849793437971987128392358110040818208680342269073487509374270332620466467593899664279295802029245621890243290001477608653378069154379008622250307707822632410847750316733126312159530897034834109178781064879196606959190616229045294500123289290837174996635593835860725499031466496573196124264513954913560024840453724134251561090712770576785558331658072702063633703701230394746329066423896494816536589190788529727693538283203450047119291291796805715261779571223820814007735519055889075020364365181278011217898189890364820073812748358419946513854483512188411753803814113425815767302758907880788914799548660029055730477213901726995544095806359015414647181993319101052875079463222415634012197541563505853067703845165989764627683974767915942175068757552921686575858248937663936090011994982346878461458765172864634749400908459018606633402690968433348716869160995521050307590012685537105852527049216016242236718334480400820470282271058967253991092818171678748249419998574745260337210607450404115146402720254010125238175012618373583183047257224471218741851667064055554444373101051325542769698390366195011503152378784349769373239999069929595790530103290394506739898868097535641091100023712013436728536329430147902761896938932673626210240545276612084400796418789114079169624023683076346099308956365268323021915926143214399416815207927906569359735672785971275480176175766244914662446340583716828495487414624107692186491614074660367853039022166280502736538230355863551349451735521096352262748499617197567482778874296633457380599975041707532448167054096166501366388842684868808688664777963712825057580218817489656590044526466159170647624266587894935518053399132342529380529650593266192818832526628391468815425007793652888608673796841801733134999182602870110091789827320385937992398522893331655677272375418403979950015390251910255284520600087078612454604288331020590180672828268763426458224593873470811875837981791282387224937723965216026735285903119856351131783807039822370421715250869787226471090198126367490872387485198335239869068586096076817425972756571161206194641528348962967424149048875176665944302796343521074357003494731540232003140677664141150694878668788066348331324819466825428979747313836279405186080243659413918125445518832703487931140874239646430755962511228093849102622981044110189777549192550665598102045704719312360610503891709478376381518490192726228804449853335107232151004518140906948835663806749075393875481447968791321698467091920150260908071337203303487224154041849179731557536508526117148242539828139880603608955665380708378590312832163986717867324258217654597720007618684880634552810566569052128565944443945238788158404399403895618620605174362123490084399395751245322541812794154240859924140508779811679072329841519139573571353663135434812513749342072068480013077084036113853337551661168782676720708642985367536829939307671730029052562312742274117979671363655398721050120105853153899283381882771345557999602171854346901007296214166908412411388701938433103404235504218902152075012571482256617165785435090165002575596242205708077503989817741804483027055008345078430176794313808776664190405024970487068081063245973490655096648432557321792304467533167717362661436201222097468846682068071482145583770410656014018919238825960398707222551367657341289194234778697005486043622899770793426968402769002489721305824895508921618413355660436116377172392468733262402950541399908013297534691278222185366377619203473417557966036554569627032170348003202051311362007378207922318007829989528822447751114061826322542417065517083975238074260228034837890565150367732874841735906407652472113078526963889958137732760666746816582584610337453698282108724000267695980360503322018727681624912564182345116487549121361844337859329625685872762296218094644739856274173231867484728527282582580279454433184869505099858598136845714627325901281760369648657017085569634387581441889179915615955974485760763082428633481919101088663034472870451547205323776213782176712911821094120625126532778602573906917832510504447219639518025215698777120779555873028285072192159629751647363292709944006240129856653563301319140866958535763467929853909835449289386678081567520279916013503266439077163004542412237766240264792331915352132541407252425478825036888952952969479605372549356243045810273294459051846531374133365315720560227613140347613537276481985137118117801213136255088076834840166783126748277130820101996424177953412708761609889287129724064552032124319696742229055037359635078376033302839546388229689830114984494924766798077275876013527365935226016740864937384964849651254612476299719933137069244898635445978853055772861858340950729140010499503974353280488798317979986212994097059612383736184371539454567115527817822568488931400625649574098813687073532968736316549901047719176490804250732523736881636591784410709893132283772903778373775878823507446774470249540291504753723385483712527596298578224859656873557675972325321113857652228749052966457466521664142887305442873224832091017771428347295365576641634667548584572605193927581401067702300220468756793421788469729784428850894777231428744603708489619064277174599801959108247808909856797307711467689943636619090768819520526592109607129397860065344740402434051927900694887041521756661937271750317130476608618940971940249312042010758033682823029349895110465897976466349188206558357229381100316599205824342999749472000230760989428662643693237679826204914404091319568706024383983647810250492826338080618071799734666367131358743932865697060786430488947309842378742268099120262826659948443776047676890751126037036966009669087312003693366608285781388182589611487626239805765253368659316793906767046091003349782980761645133492901919333061743308423225836881767760183255114180338406302217935969812695046881085599004314203711055383597405899198196828448924317481369264613750509413286760656534435947694392865510428549743995792948883076016939211101908890751926968992312498131424586249266801128725219158024538410381407616786439563498974676605756469587259164245251717580066697689878783487443816288307826046252656901415773474301598296349206824244285159674565746351052117983253164715613375514753790874560378981097341013014028042776827842218755302451338518944023635961715837534628641808523255037212256235400539324594490559885832078919183155461328225850485086717572405310188610173892576143161969411303689660821443253350450463351134064218553526511253408129599647805532762999350142769833294225743357183249735078580365478864829023936056332279408865252953036129271080181426866584063538573458007739794243863798960511907157060517346249532090849299870035683813275993774551753432150008635914717496632929306355538398758712031996982548329106483240890435833950599196217496335466328744309908945719067141263749800283491643429204362726093441324514934691452719736811862644284406384399625836887825653676581887662661356511613144392726748697280304018523126048866881714089272251394143199662440929197038061297543793848205110807250965840067920605243254608641675378922876124323408125399390192960712452889484389345259322047062148639921551123575673721056751874165973517802696363000131159080324607662129636930373462051783258753489997604120379994284178064708217546220907338611395857129407534233170538278842131669313555662317653054264170939369903812470325488225971132716759180131515090215507682696924978048612676626819634302331925497040827984440734534685184322653817482173548425625622149213095088839062823861086575292904139617341272199982320890517413019099560400268573387484101760736861495596645669702278301397830347933137925513397676221898726629406378946018384088140419419938838419071712522503513430367028639198772729341579934251087346057408134773161442749603568375369078927984111360963884546421674161171885733699656658454615540590414264321879513351519215181298756689479141042520179283727225241113913561219068859450737259244174989268501045612593278613919363094883785658540965718013043160201814149966788704438133374507720872983993663844158288558570008296159856779159498655312093307879149938613052703770254990386107227687955857552180259146327487441500048005228001344276114554793935666005813433121612855070526163847681370348868772958157358766869357429256919960871156667214583371691211050114517712194959350039208727884924003355698357117763325959959448130949448943790166516149942919523270150448314915285711638407625767492221315087137536565282518476052116342466149684202131737420115925151547011438471865897915407812733582904122800969871729763441924599641702314049541095216159193959462705884628520533166168256018867738634523681070905916235388909144988651048845133810778938713233788654054248168595991522965157981662600742003105191628853723037622442744941805317269500090123815538077247000376609718831638562981039313408904793354734196839633948027483925599299626431806113612826586595564415081219505148484021327850550403489120568712523074086582085053770417304561519616093622906771481865564098813681164036318633643611458237550665972748688143376393562334293745626382494161557033148498361241101046271392382711452932526358870418431957542498787050957257308655566593875726627154360810924003128877305043388170650310147447442500404874969960211745148582753563369362155122409530122470618691878481194473899464511716811650308357300527438927345093035716097974927017557411080021186649657563963897900309709827964604835243827083654968851268322181941645090605041945406824356301662671261876438138759524427258530217168439822297238324525780876277071957306871333047131094798739745009656962917594647983768050458778217747321549963203222285801895682487919475922619868953041881996298454687024259738764062692953908918462620357706550408864149763779584456769639663557295258693698943063988827654304275596123744178029222563561004936407275981071402959454395995219287684521123744199186963447792169854590763790937195358733133978812397174821628602527753199088736387643809288064215203274631324783037794456251183461564847295280876144379121036583348118745729070773913678918444518182074465388519919637036357067382129691168571664057085599567005952371030611359371858748997586038222753430802128161751544525643341514405606602222761531829428440061947198308109747685418369417125456438028779351599001919248951459959901843509686993269170642210705106231744095239918527282183863827119425750801481271652036200913039563184163523039186542236766662963316166159908904973915599322647744161300095430997322892821591231095528858307547390348102011726033592427567517984386695647127390193588442395298259553343211250064010284672510804641119030599601001881922079761732547641659657761040151701104907605195660468717784919403323234857246753944073909437071676994479888831436595207614154371460657673114879125951989028190930536078773750536687498705922961315086463506194804499995896866970552027567409942818902212732205407705343170703577922831272073442087965956539483108799018652698675740363676431636980393972525428654989213896426529225274205804327369939872683689998135946069460527648190197509944114057257856872151457899780452116109019779235819000440389272777425138909019463666683662584396668154526646326044443613900314347002697508750108593931353604350845551796171827852263375233229947096429658661563085681549828641732730883854262909535522729451078039088214208790982455205815123975944504505585984478017312915497642706317826991124807930310897939289163717649851561130395983060375066590297786867733159585928461070922779882299726164188756604766496958502655660447403261330562529091332727101241857876241655413401399936431986007166662437219367633498752833780072713493977775172864723958381726857657077042681135495643242927985598005359963680322527991052082336153923183684003402614499788804740449962354587083956469718467292550670432743239302381441306199113988610019783883717633565464785579510193265983021362030300473251487196965867591623316025950027053665679711381803921563430604548902744169752032517665897483960310595443603169052825265127467165894988234917357106350344305195735672167124363126100190361526399746699847773674891566915188715902275315922986794923019243437702841027772146888418592423263113086902529119480895011222236742048741416041446877034133438672904723158950543574303561544800539024330938089107916216297582956842474460127436924471810838189414131379388895859580795537170194360432345579771520454236769114185094013800114467957873784413022273636103904279968180962945397181292803674632960559022853222754450214900352650960985847000756826639018095148316327902581585335966260952887559711645569684416601203317472015105087477321726334625765299821495248416382480475939466695328727439163470295183911029876930040758328864404455984806771404814626590960934627745837739532601505699584118979835231060613845285581890832027601655664626531130464099983326958235362184058493948804442316728746197113680570469733845535929402651986574008426179263819247147466434177244510814858725345437855327398945354936869573762405042131371954350976381380660815837658912985117823301518808408285812369067812263955883834307154428305904842780201535610174003838183323899512056254114492840091108494814588109046932159696854480937906046130533289609502391346313478070563960977569002584721937126472909853351007345462691405220801884653567311430218995151293882903618615335885103967021454836370568577451454015360316176899241840356834533859277322005603832086655720554040708377483153538246218759070135351624117668868339769035611093616184289311968146848332178037207046931331380070094893858675099930190554862620713332350630421959405302309469522235012011236382073586758837631575287987311907958420070639122225298218041102519360636941476775123740213861302102478017697814781976384955238335628537842783749664021724311285775588913320758563771360710117837662095752364737679500602493553897097581442299353453991236435281165745877623080297851079146769950068709458545328465472137269238596485959219134754025476241021347573581869048470985408116796210342510705301368725646121607070291869586413645684952019881320847170784802554000222221931554525627614358107187672721897316797880880547717242700093870019070979942388150035955067795816392113775184286537650791312611553803748860052493644560063263127117750915508573463168789195304202855286085656592816668047020680791465473997977216903548538627768542262780918461663901441727995776289134561687503923435565454041223855944913331258888943873565040293463198891931242288036258783785173800426995207063883337858977879370471073382650113372684280165064345152186211709561551236495433272705206315487423093902066054864768905029368442373058705758117674456387527933260219773056206268692354458734748617225899317961271898854374351786137189199999966197050303497364052253928552896016725628718043674874876140200828795667426880002261777653210747227214429815502669593865656173028616673668176496181924287603639222251878096651766549707376470345451052514420008426051734808069583912259720484744209340294938169971867767594281638064833354648459841094685679303259488389667084628012793510786325230159066349645425612005425734153520604138474955906509154223086234140611629210973941416206046722312626244780571901559170167262824749114558008532606549688332031763954524083495358723086848119154424262579573754111578042922494335518042914502877069663569301302984954223650359461668368505362239931411367676488094703184323435238175839706104820718261623494692085140369332947569474002791406779881623919413870620391281496622226541854907580349018355002892998628897012688651057459235842191825043646788717849442638477241628370241428870834214838505097503675145508254109835689176323173278998547673304081338848021231967931612387489227669160486023170462346794090021071133369585809922610651254633049324621782552752511594715111186337723758151577348855180626051717046390921697516185718305124097315878086655756165026535406056074809115702987969820484352481829972814880661685012871455574857316558926826680829771466505425411914694132175488228858360918184891037261102193966422736500301380574224445202959386417722291049049668228756817679729047123631834768860878871653518722584888927584162829085167739704514984474200032377854718985927387804668911722058737753820665952070006803498785130196151253295422555816400777502915635568659466431587082235103834756031069034168207311895888875385043776512293163476220724942192886210006081368471082057154825310727795759560666113082613754279504628817183211291047413963866645571711761996257023877443228084755295416603191121201809041109471189146348146623468255305555490652563254809587087310255926443536909027089145951841935469141959428576152759390987277511832637050258249182803443396240542398121985578415208735756485503378528701505018677431363191159810556157577865587261404104277642704081435630297701273214085352211331420932001851363914952647414927132908738005552433814133455715471125075172058376543741275991878680986827698381804901421100427701388439201414936745274102372508207036087639371876902686358249197958927119201905884286571755450914697978664050483497533016584627699174411622312520424334170223204382823300570530054595106498050953069451983156743856822613927574457398834668372293889682802178768382121886275687438392904336302895677226454200460670751563789152706087763859350619773940935292700573184056613199505050524822882398912102603199227493132475816994746300889370186549146970500294761612514569209351734845474022128016299348899651264969276456021595252445120819679670892702796380035557016365799387689960989938850157823944148463237998253794648191488744968083143248804062166100988363094148882654275380201663004268940576249945092678452306405904546765073911350637232464418626773684509645837812795683258258963500625500864137911649772393810183195235571648075842446380974855619755065746768972542829308342342391754358940110136216044417861842992022205029626602219860508516429965301004672099734025489184015185575333819178721421765023417756954953105713521807026972583292801879237908184494265930712458178407253449949511369444663695255441009318789117428158034163218157017881288571758859328304828622181987457724558629473640378965407789663336396939422728511459155584181624528817412645168715338583170171132648505694611630905465377620763501569175094852546581702035593467219289270268502687245626783708148418415050107078041752472419947684470079597378336849750783112119247830338330376264987264780405383808368984171387978088922639341784060958560850978142439105173877191208730830530149854188466959642901782954432710996982943254931225814919522685106181486363076346982379774733061414652269488574406981016577466204815002358967610854135109356008477608482576641164714154881991693769634003451674643421928496771396174151716149421142059409928946333341419927031934429580016970269388374940380769393037331491555898128617310291604992278847357017629431809124408386614660951185427114352487480282289646955159113305494763226085872809257694437982361725426055222472039443890530513852542601177813899901954278802604808301299991046691610554229195043121247040801109797907047186440506000305031547306373822044436270568821131127610704257867623435593534600092519605321044587106175567554299588847190893981745082594570893109377074449229205661115310220180647106805956767504636254620018407579057122837680445104098477680733438104611618784937250055792731460988953558911627890350079055195463575471097993498339801897808432585230226407735524813679418901480744281300507033075199592801669659793507128763911375639768730254822350172940956367878812056286288943792846157316105812938465538126351636794318951072875572020933630336446391171785115731296454821487874736133886900541557206536131861967349713537976367413560661286076578054159312312219631639746052038381524837209267485988639209378510579924295542091933561212336203458549776440590780500392805421934450989254198252522146883958687456629727252385996241515175371953252156756315864010409169385015593035167870518957293018530952118725139494024845376326317868482999015180501291774953038405403519017905996209356609864949176157299181392405805011113970419443212657118685277426964114681930857381853372767146019082113780478913125495601902114598730748518330938994285251623015023345286131648228340770405111000910537447090987358979903903638839637632322293093815150694487142485027600439267306308550338430996571822329866135669317623248927284087032773986156513143639764856701544686078231638116706100889860652788631782520843413404438569012835631486302498504415523764587036310502755387114787889581111325533259438526219154849209698519365489224721150080004299500817280362098700662761204835001017491043027521522897696060492764278527152923169210252369788699826988390113837245414372596066573976867668781570893779683274401161610940484565772492345832072343868553639682218928743932385500160437012883818212302849929574463097164501980613356748013844537567928947391732244182705323963058432664582296246005436487644752109137336728553568949684834953897520961224931123806882794529867102251616960787020486397079838620038883619798393701010721319316260498900424630788822044839487151185620950895331314324506615796764208987363339078910742443284782007324877791881700795824785896101635586047783857849439037330198924616490782959872654966659163218942479874139374575979994755070528453744639353838860121795145641687731364501716555846676850642842788149387574939130426672705479471480005579659981561411806626739594534535602523709962317714480211600492759248193008999165885077891811758284333422105060212046508943642781205742951438556762186237758231717084353656510942014506095484806975768792325267484869555890808790311546163240907200052398101673667687677565587875146070622478226688483916378847527021067034363901510696536344772586371707582438276701535746264046557317786282225485731980896620760832564768411631388110293343198501711612812251568927184859971589642204153385870151293938200415943447270167129487632811380044623610867326130855620444054385673765592600025856569249185409323596883558557388165043001534416899115791793304531993807160856061418613698931324118933590893234567938639623378802037096899569186227496513699359131064900029839828812035402158131279144060351194393325092082313297147181111601173592458759578036429934671525021834205969539153477278785733681560055215288850431207584955945367390373251276668303979136905559774584288480682958347011168539735253057741740231697699012102511133212270875000569763865358283548591530722029691594907078144122570763399176699536937016715395090452007701075116996700393795967250237084572463137530990266365381166109983681589173422817691991841166925875262291161575785094463068114060000762900677851628292348079088008056538683104033677954378439922590178178614867933386882658221929409414553400289960496357917202349003383728626736603811304927126012785727857012155477661224058664994836635207837458105531246169527672714110447024136859202307055877911260690704880969848609024392897103579907510203018022953304464949616392996120423361647498291741767375384485187090187434586304938796111683271621408074743679032570807945709582673054103029488936625540893523843413998003199013483580931100260190112235498288720672198777050483132666574294857182767348302607598314437582026686238755077434887407121484887315879811201440453552920938154919739665074722795913236366961910301754779804184623879955143648632788172614999277180608810904686593344663009464813061071317033770054782179402321151563578650532859789484908515651955887231849591779758905385906796146854213377830778533678606405329979851673305325665142596905875495112592402814305241910921381021706585616333805320295249157034407981840917697796466748538813871178898590121862636194721262374341572596581536181318206228617903274861394874128313873293370366367224549512133807938115338272376581686163096472820444320752466940073865761777834436892992401548229003781275311707670131675292108750416639096180439363032811729401487967007863276342649927652566356137942716467814080833285618475297379704675563726615811730202967826091337902156809680888589952466046633015764769394893020841609113348973018468359163591587615962526276123186064653671039760884829360128073573223604037594398225454028300263395943674380056804056282645515557427877541263083594220656726953758652676379614074475741093302395808882951888705681583141210302054967351690925483909163100136313442017571920132620912737741158580386311633358403792726090161594181742495729895492528786693285369723252502953758817830023275784915242828753355659743232539166212618947079049722295099964259299226429100329858244083973892398573892311633517200152826029651510820033863943199955205084869738919248149768637805894137933515860905112671443700332541716573309271047792464756472035606934698748937914261809655135032697742667338657990925224996663592162623136193082190607919368706213845556253279877536465397238422095017925872223119411379658396429400420134327080458259946163533660261488970991176710646971048413060879091694568195122692079533050985429616578864424276490605178635318245092765707126287199097389376907863616279366908877624295834004237956299564630673211706141834635522062029276434192608159375836520098482909006308314635525773341114686562258481984696868433736802723493224532578534004396840040124278215595190175512020390728400937478463697739682075166919237196138333613967883621035096900069486614168906162275350111246796479368625645840644788920358188472826460484885670804340121105654920388782184411244446525127653622987536510744532714862510652620689421335147824092092309358232784559170894447809794984888068522410552814219438551904514094718960197646936254480860998326581349373533485017547305856812546408630161897254309115433795227343381215448174844744909082844101394953372523466105040327035971378786461408872306156134716212298661544983336763041149911439051108003284047520608853020470835800729398202251018957950986870690015660001937759389328094832812578628948239056966615975475164360211568778762308617787899944907751363062244623661475465696562581871234207234454243121368776749458748018338250573632778302201973671352326567901347132415447562294135284377615591104177599583790308989029785422694796820686749527612653923249819629480067074678941837058974320278325273853290985598383555727209824794458700854088310421003817756775432984628388320156622440397653929262936016521524784193421433135798973833186492087008450828798971155769595923942767574235694513422062954960904109402730553987305677102992144425717389864612147895944460302697390795898368797142893882711453814203704904537325661315705669929649269678337528135749140238191336199244434685174119936486708783520204593474546597918682659385198255668199619483755332767603387853656940055425270094005687607000707715069667700348855314008543681500770529924013552330417614076079974820666791529447001273141941850117073175833905766803180846258162073616260453785521956795825110557278678127899714256786974804852090042013714361520230096443642404297224283820228206601924130469344567137782075334868412499247168470539705096274483938555173941704962150973299229469495038198022445303729117921912200686082760147406862853170171180904445279907576815985719278030254906096714071701316105500917701412897839788976506223811764130680055452009760256882576143023744509307179520353883212199892868209302707241795559438418637394506386659496689468835899853820990208416558784648401718160961917042605260230811087568800065230550496258988387241778892641492545704740097405723702398914347471816840199164958137466831112146504295605994165955529906915920375796594069318668871904631985446080992559939202422770541090625605231548820433082221344161042119944060193172896103451142838258839110209591679794134472268803873464542157262969461542816085429828338840261069832336634703993245727519670337697710028609777052175238177911707938136452452714355887968251548989425129048250678625939661085825051080638961212258130216378571046393125020494554920884868069629681228337073466316134518230593076062331538189448792147499566345352737530029892549539634012925399112028584290590226104420916898181119757506242157130205405614039358290827650519212888519666094574075291841503566560429433666969903678391083617654801395280980344135418631503495969874426299158319927472241873346695899181553414973594591806469926331878789739286847734851893204738140524178261739814617847193901743014532430872937693571316874269263155570166119549324817667814877923211050797015186936679925945451147817434463158533804617429184233511225707882541944819257340418752813066305073734500819212143728272741443686795732401858980960337090074661705905906243928675619822514205226029962622932666414028853682396246044141358321843641562772119167674029113585755016808372895706693146414663165272522972407511770418337973348186702143723062176678842058707377809246816055123891100261146197382388677254610540845138474419370208989947382010747612925877430375707843214869738510482147664684069247134334764737548090863995629877370551329430355415302100950411163390751750557543107233276739575467456368279928392606796463773907969239845084681034130193378174210049348824499479061017869862913034281363463785659827636673506990461796694407264519156274783217198148800350456597414273219447027939898470833892576050888653110174840902054299079347326494236546104157109690066068449924645128132404706526615781363081518298840720978987228135623336102917389582346936162793213889104875811997386330739147023224593413995137399928912107132939707358867448050519370317306739577507871615207860006386904758119176205707404511231271785164295640593624872054115289840776734305147082226431833900818002924581928578550225770773156777749533778608787896028695124842172782630901985504061031720249794414110220111372841743351361656543224148515401018297318079169696213246163765623632426777274447024921151748930861047014863224010740350633744028584136357407161894537998579626629385783689729002052282116038548192606558838111251500204048362324789147467822003022292917106627030213633119544822266295248285187156798361159360332499001193168022893977426780222368580005654686114020710957634873699444688601572980896112585462153703294429187865405782362636475886230600994328161727663914791187934337246471707200084574765138949611149399813832474423312389824454945062675452153043226985921565679380957990183363559127114122467312071567763223259281072249656415077626480799699588083024654761065608599652271899840393852357185279575565482626130346079785942254630557812790735201328920389525510627217237181467725175676244511131856082939813162789021500157999499863188506030544214287725947187275765003743488525445866888874539968453239137737002505737036811095115177832453119420273544414463674555876562789690905959220858018241829838655998437301574590111388159012907433543206692460022111249706986307260956917979835393774828222365029561549477961403429301891981286269966930856678409477890109880160344946384677429852477042315201990877878584375293027268446776466612759317252970029231553015086840498054260069828903553375795968624253732185131411613186236322194504874290901344515997188959625842649373235744527654241666027351930264216147679916233965175554110125959905295567486405755573165673257692049397892405942929585978992596481171017314734705089140714508654898096979792335312993224175182653234460547160807211183740656296164467642869450927169473270492904926749610958675672957004930623492213458248174998643313387167632120837067111315391638580916588604173433800907810629664237746895001639835263640942594214058366448339195340310800554627033931969680360173123901655689732639297184718465263223332087101259459638896608265060957751938760819058944439614285666780494723941847870991389770147156317709329770581222750360359911637335344410453316820300984920595655956913560763684305709444812874703486269867556562151274638136415683245472474884919492779949389633911282934677847478345626369678228319700142442828878399674549549431241163737521664192736025063585610334729912063836703779632671277537510273673545952092417868315462405778410247560137971411322780919013652381251237635004686885633802537608668547745468420899140573988590481347444385719970624974348799765518211951884659947052837665741906335567556381527148376169580331355512355617083989814213114711825443793047599579751632727581002786452579243369122992158543978671055783717216571402127417500063643674011395620397033828257377522399907900714219275026237921552994364312256383347294395475547230545695130920781818177243558885762663890546412250872288938841857043837114932185423908964089132821926673975871217925094808028519230754838402175089855012107266654463858179841894094964929023170084720587631111969426420123149432698643207544205942761291018568324093281326976764547784018715940904772784969518279977197830546348806715804928347923899296868891361199906935159421153190550766937111689093218522221385423733876613408973647150005883561663710134755646046649449926180265140363649162559083178755579106357884644165800607386645351773174083940800241956225037658757946263673597781926206026710474766880804783918113690497785162077405100209593810493758292543157570019601948205685954790881902132367058928546249844883990158879564741989806003003197369862198506368571689931103651233582587469900784500417790422878499598974467912779982350667705732922233411701769611203958176897693051414555597445225121431490838180849322537383018241092670371977063765671955392401202159347986578653899084855531716635343709745273238555800773644221544327933876059698516681241741795007099931155567473925325616262599525353302043796166943704116054140939711288320059548532877026348526071499919751490491989353998901470271993613302290603403099619843604588033121712441273824142584842392413984452690889531080920148926318703743545682742867202205442105599148304229703181020233960792961393807196269432832381240982791136984178186465504195710217287455381134511241685389154710412909184444795243191919011635623145890119789891192714934766647701963862184509431901476435584253476803958708707474185717040862353429810766710675994055386634771474726487519749997774933040451883009824776588103857564964143292272219452037020244703451471628648292204103177306023348953226463356820381225463903574441807070098657752330727169510560080204370069528630008392289748409037429871863749829382301222878534178843092040277296397813285857208706669473177114128415929657557460295569458411625776472179368102232700277527394090513885940884885866912320833213720437279487482304229705164460331645948920451385954698069392377353487926266686658151865121432328868617255239613707618269933209831856196345536377759686971697830986940786920754706984013245659112992299832790110598220324903699614796787700295291680207755785132345092383177056246554134592065485912974639204885414363775782491922593299908389905062106368916506116655490292376026550723362390124360236938125363211903445783211903542729694561002688520082216961384780876354731089726009617235067919806180219508535826304945277550592288905450778624056640307796818194142333214051473351670601803464615442151245090253532526702878794278499635229967938173953732407722070476320479034511009314232907346384151082793198712521232336483654290639696397570676783208416563863772366242342127084328521053083983342315814031814374736986965753216887880419238881617276883175970592540745689284690826430504337928145212005043533788392754535050169951502485502494968114535849258671312742032732360543428222041003668896076993128998131851276301507767498903592453792693037379313116519533687909269249736178665070355502222997970138870267037387414265272124600644481924786265760820566911891969632407300609500454013054961558419051614529073829442455896926935451971366408397113625413371647812300693828257760793270713592135185245507772017885280731305673780510634606548728412638527574155436167136705071928232680828348433069349683879347865608302911200689421744579995983574073388522063991657691259124548259001591666253387004644398735946812894692627257378185206672112252280183176190661247999981546068092700729325034780998463364314242294160072543417668857728722161094934605791546972337418898118411093383366538366045974726862711507673022964177059805989518644611550774368765177378393260984601797453871924878252482383982482853060648033003186067343442213813377445176530393695240578931555153661786778993121096527653237567428860537029379414835264872461611643121233221897062365096935099188568148825613064092049994059092354410928890868465566807972411984064230588552175616556317721116094866367936586474063699252637737292088351840361651268692310751410943851129243623381484083167978962377760889708042365910150818730892464190864703850952233777142159783417735304456168676447201322316846890646061334844925898474161449303123187869693826245822986199640399879037614571684218753977357589808997187854531860991099736838763693339474490804464771671983936252683298903468884820120641554974000358508380594297738109374087773503243675583235337758957354967867222219439221765457308723820197462246082274537939238593824375367490307286270598162219374906398894677370418294660880119924134562597375230631136739589605132210922326244824846718758123162249917871369218084113522646957075194675365642419403514309432769303895339907594027045149823202054953646616464793291810679235774465760464725855068288022821109355991228421716925415995554565612510097834363453857446557800282970167196134437504598527732776864174789767918258305074697901603107825960483065268829428395114564171266158953095490757608649843004444241244306588344498065477702114278575848717144054920628629776854672219061239301244193355994659883966151509046758906333560250760541384484059285052304663939411483739078733002191926747861212817517897647880536507810625718527203161565004938471405678640935509600457435878426763517992491668353822733041562754551814242133073605654797152141808115839479372857329017703674529598966802450308943302643793018602709237291347468216257349464299426763070186939656887315649495601258632869228451996213445405279047288512322037044272608183896654278812800941008037136595128982680651779443773180671803511311796006723107968324761076015999832110709625338085781354253693679518494369914737681241557552586474136203649081262579453989957369430284358156100980242609435567466337972667335849103581178146770198533076314110484514583862489189355293715154730372270390236204806694759965673909086352530648482571068394122409775461764764804389077122816832219792376630370743071106404585327455453738600176645269710087321929864464171903138591799085418026799009059147594116859169540753888575122787196123585883147486749746523872242435045904263409355265387325336486093409246778318225022859169540385564816539393149746894092856552213873213303727176802429382040896752247172781678381674362787677250141553953270456813269469545977375075053430954572009620052029636181527856940023989261869488715025525124226430224694220238409051912455001969666090884434783392969910092705454834133351972785187008776161392687074624595888042878197492153611405404547231423099754432773604609321578308128271283570779745490642212767996921990015425602389560439758695664830044672232136654034544228048505068720668470207515592151950409097421561639374248698576719216486765198640913358177955830764576318530510293848378062057496495905379874765470182133996473236490304785365712295382836189897817362419402845725859307447739152332890725312833148232680572196786088810537349293771819434483592647179726690904223072412453987418009467105367306991165333057008804956055675706830280225021083725463390853719791370752117774478219931456609497811905587617732324012363094573283832145970898194110735975777707669928068898540635552627722815004862830725531425122992051082069679565763412942957263591379299681381539394270116871577802354110868144993433595587415866081077344895056949807454279430620437470812339662161133456266458203011921175713383937404312695738142830783178587882686903521764001070569039428102839102811802027817241036932017589149136362804668373174803467608700734184103786878750122203199528382519938543329204439867474958491261609806019944777361778330438036868192631459115093027812161599552557900818479579357375208461695084312009979205362082780843113813020254868786515226174607123649896143820232490174508426478482269701548713199758650919108941190302041874739935344994362124971866910748420735291722379885904380618740536342153039988076801355713939841869865806352347005760007451109304510494531281376101084892472237834960038400781424471647492803994215386119315207078576089593170750633838425093040686128417381758600004065141612904553180701159579664016147617467115464769205427599140784039262941732416057415117056850501455153529705127871023329975846539277169939350677940815736911284605251386888598680537485223161417778558613033081926945818405084226705895916860785365390561561780083589868135195120774608499984403628021973090697794385747660640136773206061800526988569239283164684247288650354216154623591774977434533909916406551153115314299700508176727427960505021840788677524015735876074635289628902283079619985754763899020256305334814567544736233842843971001525610722987498861452835037435958274309424246962188278440407242041223224618309896855043625908239933497845021557605704650326449158897593337851231095377827022633947903913406034890907854612099133421882895591130210557972645734013034140841861930405478574167062109228103613481367987801179822628852781074666867444183127901949645049647812744865822023149455938870205000691198339679859522207208294564933948721559260775155377270688965577949283710947204197612765921584216763242278865740743933200587559816264300415467208652217364899620223192300734098604039460692080212324999919457823745844393820290500061136260415949180258941887904015119433892568581498073402214643304905421303663119800583487166355824395184144222763209299951261124341093694791419907166915377725567095868519285235760173269912736765481956724913794716614930297412002418290015635139911482001294264683563329610028073367776865583539304961733675109350835162993152575992668735018666529742874922017268969251166441368221782175895694001824913700760270845115322165018502189768125264477330580133417594522924938805528701160682168824053972945110552077867435749511462224034461531646194303860297909985715608093918887968689336930811081809209709771282576713213724435857912128393873015791564102921309910021780880995052140439103418605834884926479493169025695427197829899443115337231183130675632144056004325540695365569669317947207005612412971727034887113875594692941627696907066853741357021596424435848352579361342889235626106767765334017101536464955628848552196744458568261736608454530439446299032488690786788772472161726807321145138732094067595047205421655393557791332650525309207678001374038178147816813164395149608188491126648746796035297685102325707673333920362697780711589556431640564619943610255687641123055742247930738008513197399697136408920278897837728035448997476937247654256439071855246629654893131957126047965118315361148569589390565273728406429498576030882865488959973488443012142247472976128449714835010402654515089571727061689291857276041822068855424435536031104436711752939019876907119742092360251411889635270037851047063932144501628177307903175633208838735845465183268582209182043688328146845093721700453434581836903530461377057107618335967698761557906087247034221810316259704208381729428570495444633727882319972043174706600974800758196592894772812072414305627373732588237270024168139514292608690426312400417938169513412804019002418852422251834020365639545898387356035039120276622437091225901957441274178054708897091354743221368217113061393871690540285052159335525872210390657375297629909966322636119836585430669513647656387899204307262635344597918275408380642814022356974977583404808735730862892263207280123077658274385438873965575357066244378353942339900032270013073320489318190462438869017844928241379112324937452298990474525870425497312447840354339835791863928666757852392727374714853442569052057994982133315389887506226346636123722113650572800580179608114601753577148691171904292923714136994769217928752079440843120821803046963756622231925183955540109285063084157454165021735518395173799729675565095079299958504730849774362805875683009317963029139478903351748156296923342619166133936426897715348695921948789839055219515416357865987288318732265918727741290378260008277451064716237466907934979052590572552474736093886804525538181736873938188847871453640773347659435351901418723178373033674235032504241884963233644937606290598841750960219875456838208564043322758282731358398870399929217384660349934324686869747070168167350234887696922913619080364939964509115468662809450069302445501219377521198611438173484451449164101428397874524490243511594481206917926591558676018922831763178217655271933857186760036569989509820901219687221453077928706836352346331077612058603350138563902223906065381263129566591720271906077671829383273046775310937541472506737950629990329585845040472892304136126449340612440316644928584217850457137109864353767705641356670378707713150521424580705543867037153575888098880309254329654092662885908452751800815999191312668850468897349883854307960851321811401970516890114855339106776015423540942388595046864814402129081320558905195839369301002768621554665014845251490189320172132705507807448509108975093594024364610139231995141141680905845956236892915552081765571542791018824692135756916633990556717689046154801544837201010348674271300812140640805824712203332521251521654837350702641643588887940684774589843489990734798293427697937106812962664907591019171769598512186787684269434665525781219105595183667039835667699978945280573051474652411253962492037533379525423617421405061655204870072045191574645224168500724597452164941336678693933488695248415018625885893658344941836380206935304681022075559117805684200999038695532843811888143950048317228736681574437525049846399848046901955574119038663055985875036029395619136422980627125891725204802216333914278473396176293914163112211128843773394065327658078404427358429364818250181394708909978651751201046325403546020028464657813780301871109331221428748089444568671724866074167440474992944635771778120081618609904029494391702191142144174854983443409980361540554870774914742047349103556994905712512687951196045219327766247745914629194310059386699279524561115426606171726676888313942967794159212511371244325827150697474034399250482502065197500746757777433053920764710610785400216934466171902932907615070219999701611440864568180893883016313817142923097461527502482762492450078339115639924533853725154098889733425101132348381525233047559531260584896072213725373489597642028083902915157881200617698154320430886784023238362130261765547513553053209955278105716063923570605762080601183797406329795730507862286201663543146586956017086060353816584418436378894830189119079592466616574027191329120014817184585968698873952910325923857096746051328712055985831492925867702378089604450651599532518006759693456310596959913721591427820421543496333209103612574986139619109141186633238460611416279317426862698832721577577875255011642101347726211108690776933365643018849434207679597108717395718988112003477815423243346341705301098365481711840401579908108503257510189806943152493967908012354456371101388479723464798288834864373691147253437736030272433119127756829593483103748352287437413547383311952163552917036219047003868990090869299201074064736807581258883874614221031398459176222332076567410066894736038709992879021575282244214453839403418227581653076409987318750090563510184669638813447690839047185433880320034423128418717931531025849215436746756593417810842630487611090249696089239810732682682460642964408408632083464964792903792483612110919312431034034917533496435916036392992134815571861284203003089705813297627257222982048138459787863606262680522841096372136793647325123089988774420602034452747380131810077814692400877866660225401880162387427937825912938408382856916867629912446115506781129436107277543555535946713198587261957679920953413281746376802734809821512193142029316545532321143404355829945594667320383240672065790556365946133948266207569761170769735494462281736385696002347655682898628895846417597406858283198710681521011323495441336116966595208017840412320728398180504716145359916636104458230713678888709237764301885390311887460703554744584178544578958558695193084187899300716843443497143157381245400326658845920655840040915050694263728473684984495297557582183911866874086134915719821694780658815859912125969758552566887961238578087850180776783071347142642716510191631587419747909461018148485853044079070520523295458063813489950994800921445522998820699959349149990463766547721027890985040947982500670507397136819134703162275516764149734864363635939924455048541674388358115591281483323361337675963400092939059086586843643284123096320495169432279139074364733392683656982595411966508736884890051710149152790033289345844681917496517938329197207661899888142312624043013089338526707580580905825149823723329055142639221384102005323272322805579139360293625030453454912110619143136201986750387602022136012579563092965404778182291365304968285964888254802169225199385071785789982234180879476314791701561958566346468688354709644174042989394787067334481066489445225993750313731879698032251452472083546661866262675028406464203096001825360195715427282244928866142976194560468350993717608222456816241291006069951018657853516110643341259192362915320280589505822542135889178983592018385923297502723849758271548665227006662135394015274292716673191300533148595990687709456346842002882598991209072630684005596471461791441502907012585993927182081860218328232517140641595043156271947031016149032836851171132182140620737331425713438877738176448373998765252968164886667072242720010927797607768188055210285683036328461651914558206581417669812701019997979614037040665595321776886756076401098336604624650822840994278094557544002424892504233275941406271406806615509019065895303578261854808941364951562911508985413421463695974195816268068503555119372569675062140005427340528410155907586647835106330681440721798234065154962624889182422571953920528348496729116451879395310796579176815113090984756904520402318634076613262916148356000095403759010331711767712216971471445606775628786231191120509648664534922956523012989947673866641916367068140024029498592033097301556291785756897121045453039080319149674715317826538429134829490675217021330495913342354610579967396582367240317625842443038187371588247074940252395348975750292837740383759057024601696733039035654702935765880424664629804711837211137246501424415178603176495224073407471579508900377159302172060084904216969713999301143031709940311326206104862908295779115421354880446355715496110563624868799799055653740932674920129094809551790597293085441936739244900329887836595839915101011176083056457450847548671539016173744830755646756783625489667289585706495792216788811813216054754879679988567321568591013990611645329191775684562227860025565255193871762770888659219389337446268449438236672912098932408367593258229222101860765950571172539253566213813354549392501095378687886240462464804594372613397191561940458734868055919271251737782348371038403970698277544594351076654692756402508156946108853088615551836868045317076686730719680893772343644749627118469310297383837386798357283414574956379113695865999030042868074283478716386805849218613531464398563048289135598825019767578117001853931363806352254759471466708185681724510704511567853522331534221503022994224254194723844923513653336913371090285530847885119608372880371078349853529077735411053554135188160398927545877157850771242748406727650490936759869372901965677773991222624526066305005806247790527821297084700950851565733513633825921266018501366564893864960490207035143508465449966585768255087910404244228093596347245086496091608230580689902325280156966186609463830956888361180524116290945955215385136659059661502385218580232516524227842332604098891577112287105571689561084760421751822253150196633203176176687877741925668340325593594909489373950462140773774133462422955719242037867668970725146846091937930934939722531959111814723401738188351792015494339776945188745639967992006316815209816189569503128165333785405457584882648523282096491955276210603764971749439063674335785634059736182360767107924851557479132920446386514101998099661600885896204174942934371977100447661096224674265411231985398311775164059650308056680836768017875888330752008476834739208951190103094209093409083491576321980400613914259441701916244330646521099634471915124108076737829253141898432423434213628735288907037844437053883781726444761224163913478491914072408281562481369601705078678449890604968534835552403834392357194432662865491780383028253625115744909265808753428733475481137331039686723710694901852351696687807147767305671088670830534089532424620877850039801774553830764470963052940723676050081433585082058658052715868104125862278103964397990809796250467255983825137512317834140694930359429129010272176336438748651150179090272259523115301696285706921267240429630527068204547220758219704354399832695339058871366201535672462272069010168471125904937428109627611727855920278605547246062577173416524075436258319439329584760640033084923195498314007718496657843703667938142841035723809074079439901889654654441302672727898234201915699222748351188453996666420174576113484329889600430631942752201927240868737881525215070772792193870743471794554227636067143849881205698086415356593472426833832266338123147306489917608912437977478196864705046806505711499131752742161032364250672735160707882319671190594950219990793664025901561442436285507324946291539095117514433306729421160766914009281878999961605879185476626826554718176197564215548362777572733004508493033854881348397920321160050614589044197831919888192526094417832249662746146616110407743166852726472156200791947567809048394847345162829473542013102231972112914858355091158776016258706744258501500970319347488902078351424561460002273314720270122330867673799999313870915105135276093897731926480642770735636465652780577218759183255970406908952416707259603184534729247830789327137096261994984469195043310717967731935331063590237315467892878358702778509554040328763627348046634357055290175596413641298055068302905786450887110483733309416454985419276010354406423942918875033819805809746307233241260796222491174183948075374182818176023723583252333673577775664854554440802811187165502537868236395659919729127135562982677803880701180197567054332002236518191214604775058317398588711194374608943405875605394394215290029743201197047699385196166278539789382068002890139447430445039548423902386074166307231183697326410117505199008246266277368106983998314123408301008077797477539696467006650381014468429407011412632069397733864819847405651417555596996046320184521502072383102390408294584147602491039602461512549495170386762608661363074753274150926488600597550103396884726672107513887986861493838344336618651038543871780670865609328198115149755313041726712468283598973491637208820481167500792894330437948748867967763405559197175188829100440304468790971675879218984029357518232203000704787222289820172410052866480298297271474903527176274091860486626575345957790648452172151984549126102257293643688636711041010701357010267686506890006440895747549653380931032900731884135261741818120077204788439044046678717528664298897076791372947844444862857192875547148972693582234971578292676225291656217413503771402473073097210553363114293017194846530455955504849534456663020204881676457679789211868765449233015902362996095513992683304933140458229616292406222981109436816302776504743192503881488520717932355683094405723386276701602382167966719077757318137160058046575321860173599564823593346446120973191124557794057840042910795916761243494160501425327470764158295188094526443605539295220506092122048662484551149856526029763698770840430089896422764001007411512399687966541436302418114432304715908367575030321525992631402423947096703409442425222149029702283538492595927393971676359186466029567227369230824264793595734974612453748868595919761170570753365195407419190346684440605520425858238549098073185125002345328148676445827393775045261396370748978832055911713178873441278389190291035160314290881712181352807161437939182921629917081456512023698566066391176430382453164462707419499793116781530698766635361664253272969085716414756235059071348441367198899364576713069370827551878925609317762949752262395540643299048386183328186087760025375260507611242162567427987427777753899011716504744203976357449168230604017109117208394832708994291363229032140833826881604611864291036182948196540158550092208657005187481174979810057492117063824829600863246519844504200008244867352663441898221422312033286967138586318146844150125285926556210869091928131940317967854653698513978340916424912437929932931243112244092915353438770562025212354109493231611370918705000366140545040549905987675142653913720345029418049761455059650323386503193175826326239068284255679249294936884817634192347970977629337896039859251725873099795815730095084484956597824090640873192465107824266489737856947911958306325219711815421710975917872366116417986214110706064362699798604445265074189078353894286635871339219090391164353314990832168082381438671934667871292667645859382285968145206700487783924886314020589469874038235019481701674755121737953134842081410521081685001585033256600930128571962561181463407903190120345613257471579731144025836690160551234240070862658886374757163114408148586937623287730204254732829839692301878172124868899212435981135190830171550960320394588254833026745464793846344790902231178774697379836099938369721905501260703828294302924348759857564277529871031742568428490535849322185263648066053483490032880294153064812144050782610481978032880385792762913715526973365974339134390106664798315354920922444181432517349853961205272094112073783765971223596402437887406011029366451171402126959535208114862736200365108424333980152559652494982513948981287219591075030841617371374642377019601710997854577347024043579852104114792113140740840426383126396860222525883894375190567362942541735450730724517971095951532501888091706561102865404325713067162668978763910645113762466381622366080758452109937219965550288100128458764724999685892670969462731676994956528133018309520110975655526046827124905421921516264856788439433505882270906734346408824243760756621000043079697144682379276396129106398017339900767068410718397127670539239357872399526729516048185151126303930150256355250324597982381451265976080708990401940544365001941599003022490655088652043747526096986581163200674456418317081952780227352204908975051212474246946204381193026585441533744992649147085681702344122287688234719550087550199970018299633037239975191589367963605518674329165085650568935963058476709131032699408436355926694810267416764821703064902235880207588469058559951805993385517222200103317844376391129683556811978526207111909003025723327837087989489953841426219013619473923660286164197287704451000803685299295602951210057167382481585797207220893450958179656628484810304538711808061393726470558731582841892056268399092686991422376150968697618332421800909664602998849153381388282718186967763263560599901931491308235398117333004671668352314625613576848274895970223844566146335606129646581019716105061026808749532391660464493894258797834702067278807729931284126753353484359792076106794280827123498981264723759963910490546289162589639242595541551927358764776256289598554596690887796459915565501359613601021649544660089764743367847339701170461713965875863298929177623692371380204427672121673173071240630116787257106278023684287864472908978132404824703084056592838176901985135783637763021338452847776373267545620786457926441019969623690883776336549881858911509741331924511633533854874024926059148997563252282237670074050688986638627879771707033629472326575310608098999617421618998643766373397228780443136598830905960434766341397498676861202641800953111347676005708214383472711783772862421799204508615929679999439053057733816905117256908269696998106208551841844122363929741924671056334748956895580840664387551429898674680165008217092725736546688706293573338532980791329778244549866886701647455077624674294933250832433471094176963273456849658157864017057345490908543404037231351944486640672808684835910659741333651246761679020286484497946145987369386154302010155169202108001124064650806984057766584032244370886757422641483516678952853754946891118942471992458397278942052525760194658290412700381067902993260385630523843915911850305986971533200888780219692176346142670766290463320625065523511121554275303067902962419426421666394761579229396578703977412858951976710476358495402687184940473250205944890192267900182255877278895017611091426706317274483943291789192720567462079689161181543160310446841902610706596919713124848149281921505902610894043608411474575857640733369290901338495716863920635196225079818220207571617836421243766939305599807761039912761085362992230657350846691599967084872309516433695542997660170676077420248026148466879760542416925207498094930985383123952428730790280405633454261051171427463769437755366483301589709498080196738432683795285958612733170721226155157168284055661977821175756706440706327351787935670675032032915168893923298145663960414019105864833508787936314917047592068190677391959430727420814160896434449436040058192673722192610322912326096665801980080349933730756620984968644999097080937187745886143417872861705105644633337905561106488521969482792011669166613276331808814860074276420373914722270300091840486736204527573853675827603183509687220545198131998144512167189955849002042189243664984615208878187119128306280401728750605273234408975768170484312058747152149338431805997821735972107797562098982601053078688474681798474912218379341038146731876460194613314912526449141380079663787665101914280135992082472664554988141734015179673026861290245343630444275528677815405676058668251210896271429420221632090114988936934432914742316861069729021720666228837697587566920883232235365994683331710759141618032573109570294226023490928127793914715821308365566606656892484700790959679591109542605341166921894529588113724308361568098211928632287533547249732743928172485551224022877996125233375012857199948190816870012710551490729465898241166830099144320431442973676276255374961047295046470772792595642868254182600103641711068136204363964568994164135869572112682842622452398337394906701171988247359267199417126129116285056148288262212587957862672395892986879185691848894113864992821861356425090112443307613690339593347175569527592556146733419029365124560081392695183788190557406949541153063817029246752421361739971510371691103702049709808239010931205704028485759555032618576108024593060341148257338685272969149534528769933394821489056113571697798456414376868224230384788761057864180671797061672743124849064482646065718014005241874589762628309275227791943902249202220898533314164836386000651634398123418206499898663084233282042995294212802247037743022049957539935482214751772269517704212602987204543492958937536409194744317356035593199680136436239631575697956283643949932496734030564900377339979359091107198488688519171445306286435200041602379765822649599541758884931327478580427658163870358613187320285795550714687711181421331319314335176938117537213252276654346481087672634884595400404897901183412529451765518041741911088590872948550426722786305819476679644946846459895264828581017007293373322872189268247249175388724501807556044977311113808396424900678411359288646095638946913737282577147118581869737341848728833109669552988813352412743630486373069717844096217145303270721389573766675862075190750439288761748292373745440372917736561937959835516886700189366913658102530764646497726769697356312102071167875702391769735746943038418159278935477353961067211547356836876858547033186146155063557644854878056309720514340934706910885338501160191542730654955573088071364044968295514449738707618915989415527381931400936290349974497125976453609182983159619328743466835254517990333842146668834229513456581654936656059578268936319279538978085435206845268027056610137439825691615817432875298038523202978605443922614951580579696742347313377429672977695099870514945038878719135988438545128663540620235953976130387948751202253179543158028709895824411719182055161128635768554123199652895430991744280674241845253506974548554043717392689467008553000815839342924636893789169138178826737128767931811611714642428040286072130134536272135962792240706334074879451231285889148518871892661188262337317061994146104043489253386019120473205531398595692850564029663329866888034584412286359053273045974333186140778174144166351873188573980667963971900891633974556352368596609696801209353188846405647379048527323230439586298405355125434095374123568054558980098699987141771017178690445940851597142067734371655467204899990214091699083844122413491104462301700832351277653266681021512484681826768370376935459214361373590220915919658675034179658232183302769951253297087805921036996384035471972296465568409119926962078264585118484652025579602093974507878246888507040566978513382345295329507831565335294129391633013663129613524733639340884859035240215389091271518725917109108571134604219404003756569386722744495106605510832978489735646934661844019841120789204826904983170826477829205066156467268068426253119494889359659583869619543229422848778017534232072341447243973584824379161632944336467643193795508859456253535999400370440101765951410186801785047287934267878784602217027071481656889045684504263905831440246127330445576187285957920859898937721325117094833794424480815883272019273735028736458665230987099230726229397064523691168079179514630062262814675264948982962378564467620726091006396020203913385449285095849005661453936906725775114920964073241851268635621041248666049848456560166810583358334539977292616360188953608171165729861653045740271860590453797583307841907730819925849232258370473951317430269553958226810202479446611094677911924887793414519771250385224789555132308693709116456971183571245882035842458098872005019182947102825518229625548953248182801646351252543058789597985459750812002384506188947382270401296243953750479514764046809015842077297523940746577472536639295689411715834789872787308803682786585606399856688832296692286896809860281237972605364705791131326003636476884817975950770327722881873657351619913480759273681703219568305591712351765748604571005704555428474478640032909750726951478848985046683350084620719729255834844506732407274955656190267265555357558730321944812453129830238298937828714371361078439547660340655913503661048987570196137160678253240147795517297828622456187691733954003718381434087315717377968954960336137354469670801429635345652991749659431482876416777373673018919966011062627725582105649108475385947913289460460847428508344545583521560057277328883701671259697408025673456279898044795144160118068304291003977375709374788274755224321858161566762685525905331840716244515331585594200411089137118022031596896105890473360586196432675470654400177083641328539167040777368554076515118936316920703427247772413292266356417119595603851514602066229659872976723820069657478533835364850736740397453072148098164056634558606494056669815446534266109809108517811026773371915407035776585573807977646458757318907772667355570482153777388474277809056656316025371177054231404299255762530861112726023601310704935300723358951514815177676126773760993211241160973015764675348510938321762436157997572428297592330385276401512008093983804045425216533927062463604949745234779201317448772948502370690091039066957757146387947244586625811348439870237919675377194447176887024918521589181995940469733159691151501463937524182687137887933520603238274242529404217758185857946440631591469187028014589686117384878936196372927143564372908212415421062934841048965484338558005883649940554498943285125591485487189510045532127045469544267798347275854419982555723739790894943369883494662887151490084826862062945970683619174845045815654940279879349600721246297922574569231999281380553860605473509807642094227681234401256179356615000836483591072734298510916496957537587446396213984998934133679149610163030877133575930025626575873852948346988113081720780143403767146350637078973119589453174556575439498165669007460139420045716710578714970642696183148093463627696010706933756090607353996671169509982474298859211188777406058116026477264470831678061813208974199993513546624362791506519504117809043701246243237847744312168652247241418654626068061836026568668988170491118524444066649530969897462408065117651398066884528653182575792963838401407788350727378968260144155861872002388866172761575488213498973984591339790992650707504947235611954120336899641314078783804415645241847015226285927770224470947262397027341776250438675720980249185623042904267275388934768037099257002847369232656917162186877959365566536470240088696227709750250045244313931104471894884228440275756941990276264211832770710608102417401092046354206863984763754418567353597590957850197246714484162769407941437377378753250489716172952850044188993046222509815553312777384627028249097973909949497082486375077747982305965204461654293025976997487927542230221907369464811373125196616219064927469684091304292979124477476714748976470029321311309049591105831314044466263867836889187403625960928522561185082139500371330788011875507665487958649230335727330484452043664405716048468435283665916194929798309543744169576051773271269461241876077202308926072599622210867574601131971171869229442182209490486663850155571944793402516978307528292351423385923504247041874866518120479773844745092296018457819191166617113329177389288292072714655950154410110688725326182236989537245345583077018949358856172821004936700897023941311120627096824418745823566084340874572623825759994412453696523752713448996281498004555981885191881543551710708927521762613643378234144494850701222548020883322332124413965562979145393065875525181879637754372921507963918437585311860433884586567218758989120967007100436420370930282335948685681853097922243296844911687659469620466063445841633481981702168559267104382486500104313317778500148932278510298169331941387589717949553922637581622703104059732599622132043552187758043035198394262560728246882534191659811717204833467387960520716381975308159990121365390282274106808668939611749824996022953683918496657882633725472461710794490722671802812385822779343002938041429051172332675589397082338646103475552067069072552726784751175324250161162280059656383755054623344779693537324342935666785734707747593434659815808578323596276054975308219653250376998004536580423616964731336125488267354459840655557781663359773373708364476957578687465166426949925640996969317805631197942374970013209860730793995375931475348714825116897696804516331677644171261192937988961920145478027503621226064718628640018403897024497693366510620320975265369573661225083036614836308492894191999173506930819218356822480161055897426423998973328996472443504245981405763180702836866665077266198125183026956388138092303081933152103367155904398925221058330444748418197452353213926316916985576497051914777658969104519905834046140551950723922589235601145400432276909215962089160184635853845023872679183266744633833569761389015117984370584831937466811208325454141775947037267645150410948043146507737500862027656671332760410613784401682713207428315916491958888700464118565524138161143842490417657044669994044704820622021811651736441584255246545305889313902639641998223611752567635614268579411038173662557197923302006157554732505345709755402340588761480112386030300180221086984625461849633320632645850895936623457590374766472382215220038356059570273366043623115418734774401368609188793730662491734559309618519843747776601541412123553596510532325926477024520725386064938288137199951133580042034684026556067883228110126019812912030884696689712895850978583699510257307347017008386603900604187228954203781650981504536521511272443203026896722048715641942620305706027714984321454919503777595252527054628532564927646837046255556237878081730114733273092473243385138714217894823250552587734585360602908043374845786917571192463022162361431222752110394011264544160246043607076306003815266754524008856720201231556717591730910654581112382827592804803703127759663539774803241285786958429732313379612603200533569787547077771254292770421032121356308814806906687142560125880930295460142811986282005901221980469171952619962881005127288004909740673038333124969754971403334151190764696459119641835066076856012064094488290811773979239660307560091960713285782055056103591001458974240213119781915768844128033659531088458587827633373453031866336634533262851429952587810756974368498542718077197750515441864675992514030123315004317286582324726014317804012973878590048429617586229790470307019186688055255589548001341854592307929376792528917783261060185285938557578424980368373920585219385906354300934592403033839302186117682167198788889576431501167199619238574989440849454468061713059294828444233995621494368687327922448722020195987140125413891622405176987543293739288788356289581536723344532248953519935432470095318836127321060403349586893319088048150405990390477509586590813897126131041363365260392162436423310643111806828802219081471535454988174016485432766297197912298706197764578431841047960738506477088892761856282451862579559220014719506011609027837875212815464108377575647676042483275811111367640252751314293479189819996732324200296840870641005586298507120369158564747108620141505283819612288371737655879754668429114255677348137767983571702573330337545053627393723939830526823067853879862321276394911032219156970394286924943130987324723219241756803407568775122907094435544496904916673808940648226024435680082742397251336252050529237757445408937073848658746143496253801157452875204989416065780800029656732761992784041336957389777474403250581665085568098603405437833233878375932538948456840912322742321058488207921133057342578544297879396998512130050002686450186045399449737637203244487080124385480902905339188015962026541251355564372004269436402308102155063945894515602953084538045326061232202762999774225651910118242472152364401600137483697398362586637352635859425922855318082363828245455303909835355696865008499062731236659066399185381777675444520135447701070423960764972921503494981458137831469855258271416633037663955647069860011948854491803641833476915170005295899576653003111314347129117598542702859997553287387565026879687601167830947630777368109051592537758143253200245980293726479753723633651476481361859186850607453411701411521624466559654883047429127116886171155370559038961196582880758647057476379969076055542179057681676783221361423166522527970469923714217199846656455338282369432724805710188424157984613947279865219070236140263406351726941772720185171228219654185364428650083226087222318508579243277064848678044236332539632135596852337054035759794266778641139104739277484447118829245244656940238570205595475287808902142876938438110319020911226402400972934438520635829890428998582365640714243533808013695644666165825096970628796332156851870038487502533335116341544354697574743204370834725309151694155108948674116481978589303578069061442178643813319325434966821674633876242773609881372702349903887725722918225291406061330485353238195745843708567025854709726446900367704503774049540532279010737892053294604825704375260226064592672374205230051865982265309396487691135453419485776376107033066746134122616564278470832320981439987068753624718416542159798801001253353000625822436354193676288252227436932353582180639818722761838244059131199673550319052293172955146972027971936411239633709153208757318064284033004252577676092053103358110478130977978999386092791159279109351510021340508111723184033372046304328702425217985251124381224271929405619642075392454458996094558681629286647247432288603428670318375350051462015912945026066983980531627014105757081008696907919446776404185332265218645638210489282991407236700666523060812703170652679830725010594361627958412019787088648234618796962277125858851132875144479922666807142504469658443010625722027559030142871299473865081682866299268039695407119131150548123939541901161258670655585597182479903415685716583987170859951482778085713894907151947785915500512527485482046464516656434588315948120704199187267368590599707313451234327083902089334814463275258339366525422503776436085422906759686482765891032732768912496938879242426187021771679527051330186877400908187154148889814004602416105245271205077849413359319316570476319702620358547857121496128991349809772820437373512806975932835344503375919045504061855721614899564479024093364864418487252052948765585856520837722552006683445030605693698310184602712183491765019347153014705800976210766595520901513919236014247021583908337362283262871866242755709042142225896190406471758093076453000382679932853736036070262201706025277465719941464631208725697025604289150856948442400769277113834599959900476271149791530452044047745668427662041321529588168675490011085547702389231400955273428475339734016697062023597897936139623186644575828633672700475641696335914517237948316614046647895330745369736185703469727733277392129143134227057001777648714841602277060728988045398521880967652671087818467908742753482449379389395971724622923711471599964560865006100537983786836826969834062412335183271373232908345678423344317691642497422506726807405738360018616138662846589478435097657844377815070521247014052882729826158484823564601481358782325795089580321240236143221694131708520151742334938771664036829574497172647816527142660659612982481868220420399981984902166340451316051263905915621407472714241726499518842956305937640233032614766544526710218000404714141921125148975662977565070000554805805797165026946936879155718811396310472585676041815028308740909110246015890721630979665207680104416414788638002975088962892714424481629094200911891092293395092170161177773864618021598102531064951737081378197371365420134618030555463167113126032155749503824987447786266160169645658864689276227573135562243159788708281418661963432869003418763587566802637125517768076188582091633182331044080302148623498993402602626110607505935762622736392060418396466672783074767297497058468913980701198792749246628841620608583480988197892041877662408314281441927312099499193865929655117250826874879446301820288218636455763115241430953592911651389034724215263422322292376573495061259516195544046810586105333337372369131737837691448291118580895645744955775360073758445918736729704992260366918931089439475498076959152130753218633666764026235567544449802039910717623722686395736489274196791074308561170497070036714677978430981770101865125850159171782794258580511329785472773888734102828481167957287756147772871613568568643638136348557755828380617902614677503483258680675027157608784504578592380669846662444369374472107160197873207464148286011719881182457267597058565591250063149990011007954582835165408796336803488324509649037804099460608117312853254069737086585099913072292051597927202913091836669395388816309592130421698829962414356608322847019457809282484775005516942318979805078266101405743129924179312792373978003248403111840005057118602411323951660633488921995106290645318665105520295697783813439950825031347672055311325052342619966709333978240003488253042488187708394121782941236303610668430664303790832195127219169409218024526632078543032829108408620601208286334206957515853718109783336786886696995131234487873239781085566779523043940509239643917424095548016122339213393586084429939051844536426148364409447052573655982523412785004927911086223283074813477969541752221778833004153673816384738471937146872941360582766159575795494053208546253944257986922339488818454085818539455744323464715469903760147112418552806775105127720084268850123917989071878780658901172521930705664461806467537353515234626973189013812546521012194311087497697329049999303725994928735134562602454000127066420189437904615203767259117709813364193501229545342700634955379591659477296358823342716426853625936679927217191722483823950100179773218737314509586284695575663660775794261232746001393202874468227941213701496248075192160610928225770034370927644833283902218417532187075874371912970268448814316505816053646425300106402862469918450596606824406249995638752096565745987987613362275652969482535762959211679763870327218961526301673361326700348466531152567974312468930532673866520658572955810850588832872367792044876901555298821168952649283698374336902540593892060179628781820827993799632431851094755466071749208015351598502596122171458280346485836264360074058058374973418940391978674591183352339598356849924062252635816649419412420631762307787502817272054846358758966907333329013396913083016844676231515035563370663655007665203746922965062548624805971895027550816248105226009476484602666690363988270756609495471425824472785786344200245921156904941520229620615134860074564799404915479141949399482298118962869416374602278255411138936758242373992509582478741788308108457120889152960843414575384805899618817304651079437811064338068873792127881627445482661192021426008701585534127036880080363928840456723702750351520527142054141971840976377284368409124790720848047676511262963884475385187627429594863224956504370830575193078272829305085079796575611495447248537415140647825282613052785957716520363073764742676940648259886239692840840870833149355130898809852453552720046627659880703982400208956816266800033663418588467316786590032840598838238122179637408852236636908077391528204252637860491000809534059267033714670615306411402274864047744735341142195415382448592831755544963432125893192532942682749378913730800925250639152782946446467166469900818413342987805764889633691338987665754196520908989069940566336766893748573327281064395833504533149344955665566962306214826931302790890920393605204309558490646358970609251676828759576594622441531357919858703556978412234733092175749129199124866972326306986592902905841430237260031966857005804843522061135242230396730281163013790799896321368365558585979852727615182041358204371663547690910460415399159813486654542956582344865044148516979153687018573686747390008747959087047732800814947816923702637749469439503487432349002230870454553439548907997312021399829762998292152290917128963635810514122812688954411286634062430815888973739590840510244336390188287876824490505595449053373380772818778179685194689716924017333252010132097972559450014175910792481923196571704484536143370104290351857359371491974150066997401676010142572191886910120969199056111576598591167691969053053051750993486549700242027811216534226600417253813503456319386902458263606138018301875491694793290676744806343923845108055835609726027381154911312482228397355734354336520769995118155638695092461094098159957135809626353737676753380100872250754499677308135789697890210636806187200816446383351631593477863689686253670050230394980318586568663199030941818776219272067289814715657932693912910184844358714745413783387809411952270770610242707738051770117113864998188633071157059023994360945800446431138874125992778234950766862835392589239287479911432539923613727120867507838271875892924965005189840869056464378750690857549331912169313812496352219241106038927127797969447551296485776383210708749012654153011275031203412355576533874756256147898534273973131613231312779611219516355957975931388541486592396081030891057981019847966613688037344979055084827881669696693235339049518904699324317180548050151467265435590185970240947658416832456629137912255777352300923700920606347610555239548416361061161069472596960489268697028111717288398868907598658019977675815100401809654412632500813470278472010106501326556413928650414993995950676464403437208732418213603622199609818572060713663944162088277022106124489615681881043738449463789054716131497955928815914641994272247412610815427500028548802616263151610365817805174735447983800612727674962554159494184556605881531417124028026255745881445140608353829079657881666222570682934193860820263272262859287198345639495597194662996714278585843982823958454059240109642391030153183089946382770413994103822717291537275532025925804726322235201308547482435521879146804226346181554115571875235649660281702500416210373601703317277517070527331351437858246449986788600677164286926640924249467489014001185275077423020524354092247508039789983771650662235738738854682858610993628456869610635490160859466416225694307310775136726358878677582470732745817461784046124987146170340075596018463859642396856294796510099196506483987262684544205068554061707749918279458728460822315338847628184801049215738895891176754284675656429103458662265617339570938611834696342090522565537740005780213834189748694015758371741335272491147424510303281313304539174530598423721035966999933272739766357380117594419638776518290078838199407518261631378127921610308542773744599441104081376251006025430475941057885663213115550436115932105511129002317200805653493203324795127722134615488763546250482316298493905689588874424405339520832111202011285024457403962466962738343612860160337612599674069688989726916899077677672247230094998995331825767415077343264476255501209329633428413428544154893718356216291324754194327383703081475690977402783608716432552381767635437442387765110167873226081163068177022363829029665041701758609074174289992757368909953130072085161406296532176356545183672896704469801329401107274771374613662429382275229349923157667032588594113409276118791727137914862755542863344614329453181739997118587294379286895029327693813341825915417129406141429525862362780178135380822051122381693300886101715010597227447251679366611211364629739737315116812231537998612424151469687930355026331889393295161995048252039433968723873480276661667189764619352798610967789180773607971236169366029656780038155495934231758631478322904750267437488729846869096757211356724071199275187566002035523011131556762510019540121721735416001929043442232035475041559732680987105624179219681974866790838536979309656452772754604422701600584022254671444553012804515946353003433469463190698871798003820827182008771508185111997760241399999999624540455328066740623034151859538302064725835330738418052673187774232683044560268077566729404407952429786055402727624609501436261751387964048698450102617671329632532386872726877262765818621733073504220577987563107726495632323677251439557967884309551175018953490120070057941919544442848120087672711219245398581605444534391339116501150602036560026116392588596865912656965891788384651184579181399693084021697608524683492542185915997757390439693062585228697628054539599621460462979406574741968831529138408914534078626475111678709712304574144143569007940585080034794112540024164938300447990872379506991771166335410456440606428795983560492408965709623721297422003710577514751128236468644216350986649414315379090137393793949511907469685500626346190893297151052760401364118063616776639215042087266759309714295890081553479580028311297790726029158163354443108466628999603611534803981577244365822904417400786066294805273702766960037602971400411451439500226520284056509509275557391253247388436476990247219822341965825649410633444189532574921682284498181578160301463605741581254171835922480621570883080031119067788580860342640352794276076529364635804203903449130046185385378939737221466857220293066013602381884168022165452690545727808654711234560195759948087865993478510676905755725567428567606807374447649364104603233036382695476830144719483045558206557475451002371397961601515205412003905147224697989435057241619718032247632398488669542184592509338896695449347643562710060047719189008127333789897247944192903316458356084058786968333435720934279857083018846584297517161350216250197818888602959956400554772953076291092850679045234965968244651692408298880800965934730583408711835617941798644514859244145725294446437524863390127405216990359773101696586251149492686942040667911793420875661228347047294041883086133965693456027370603167887264336983130542447765046675739902169623933201766568635824930154735505180397219224091312592122890889826763081537990185560294175634276440840506242340556232261273024029439486801713893946902332096180248086070140898475041332796992595252785691803435777817026785662256680714181052994171595320359057774561840964687807998070841713724937970661491118943013039474989657369820381492234957288904766653107585277930419668458560522576369391110193336147961245781398793182232186469235557322017994012688713075382268618341665800379877908717801886676358969157044780169668425706837433148755431889614433642350669546734243417434687936101632357220479472218026301109524142980810389490008433071202284827951757413235868025611506114870768499468529710160261170375762651123162509669809420834315931395000546372265074832643073679925219606421870793019897744542842556470925040103691706409920698572783682944161500481123907566095175339365537042031652948709748165654409007731777506704701437114179747822968194694573582112708760602672851480359719958964369619470301083898792251437988992777315848460582452123946324455284529990820470447346612076918788575485384803116917536620650017633296480942196886379388944281901532666511348386725946341447251422679257559316513200105953144971385861226095219140286384655480512113380317147383027807805858160928992693751096288935050888985590256107501787720221771522790964080683275293907521450938196134172014450522258675459698068574216115909461947606063059655177606953472673255357527787367347366056067593923467214084510808005973098019512304839686984643226914325328734688954769379655533992276400468427369693863501886681023948564380577277209565477647976952271500024623541231787020755047521746506965118893956799836948285929934973340543601024058601143011222433581146737076803410237036292989040653235825032968182529306547855285212708312079446609294360634727797599141239509088840065569098490342146019634417413445131417947582769704781630798272919884247698694764450658637902261199686417692939299654665674048425124678877526300279177320656462606362430151414372242193059879804611791223407108151159231020063219503944404715132460343997034663908572800914022440365132034577612616902131921669276611154176870168729512501692891124721786129900802826137763308708415992063458933536384153934951839470400755425215771011358391877485906977316574995460318247193341782171495729618846452006707170830938860943340094570653683010713744979917456230897132290856065875573251293523300924998968045557501972538490532164832033196650186741766091841309574360011501472518570464141667013766446204450944589378449868341349212474830130100989811806812177259553093085545426281570987111674458120037771924201954016796592026786980087055948672216022791080870920796816700747974175487258724728425833806942978773448774063890447955475153665713785278732263503415698347341550220171547260143290441558206573607174066467953144147251585938795231723159857788441817775305999145661304525334472424453789053520775230206148495959580336877176354734843839223309181367085043516313776362489169445018471841153714689770146993449780396356434586273334044565327524561410574127081123650015085420349259091005293817067151514109502423241467823151030226386712234994431172295567585224546692894831277326504167990885483961638424248159003182228941395039778161010634621692659838652064874593368223506261507800929368577225278836500922322270952065911435512284848913526596887649487832008241830758493534455836603894163671962287689471835652930068482697088913049980879291743045999364894692516590392495632565087896643869981502614633351735459652838967042438348271113001774360148354205601769201682960401550552097728301732467988243200777859685374804248461469487785114902422086565563544046993525110558759406117599739002945097898544009645770680952406271207234099217427759665492640792842374093784478091647738622162402676895822438236994044794198334478436369320220629922322770032794305368189855752246071548899171208662742396434380227644106899994613880230498626395866753219230164578525659496470443624367451961413908029120154032602540045649288581392935179525211982656145970292373375653445039841645450315416525266270719724116915218361193469202542186830339357207979711164661433586504082763376335047344037850626673043234543048542285582272659888788586366971978303584677354646050734970810930678280858007929281565866838852675253693325234010533236395952239735634610788803372523982964402899110187839329325263441663695347426330973913957171962958252931675421598857629037891324323905667863262054520615328535551391673894251028482430885250589408534515477134765164205469125891121076793275895563795292709933415518273206259644217240364519194809196474559784753099056816439908953354095105238639545092034718832183516016448841955313257688728757370375924794950344550175898790243339896216357389923019722447231335055505656940734809165221648528035788420553496222698016970683249150021353099687868898487870014455326829691050380188101555397959463737782194691103170659720653845702368583885554879889781751919658410516987178373208080348521975575859347315798600292972130570006990202979689129060687394198526767641241476679170512647388043862261894465252858097550604173544577175803965175159902581941292042846703934977167306145932922708740827666602387169018713380667456577730605714333096116342899802108442791953745971048447489393469291260581976034481056611579381532452658188966762860544488602661227168200843687133984546876115166883769428013124618681022305267629606500031938082599825632993369421952125601373756376062484930796185802236329119336223127184091812571512227248932844682350007160869921762369472145870126104090764227786472615281115959235140573118942357894068604443009740714497186023425423793901513790474696651412949794701257703910864668283612544524917118836508899141164236893602296222499995983242009372134721096914596930124306566213641750308875882737375855615459177310790697543890877804774233437861888920284311788575776854111411333441087947520903880663141798751608492905091023456520839686620707409708121311086489205685045751096454586318362452146913938085355258509791363256742616920598354962182194676268095737828009757809109948757706183344957236477184946715363431787320544916523964344802891791935981033582226368470464058576953154796005307977787459146366312987420789152935461023165602996943255706188919860563532303872841998439955396800226569108960605003667623562713515589137699685461719463398686196692621315897739157960244649395053512356446941833187892521827954611559103673601906711857878900332302493666100311812147393784825414072171474927875447645893876657548352706948162711914139666836034138860192914753573636577328610886389145656180724175509238883291247511055493787354599462820334423181129451462537940971118693349867621446958064406874123139967768618984153518971512027382584938374381399781659544433319821885087109506869397230079951236493425886750358134004076062302342609365294895590427434054671780275822053851574803973097204113810768094320677843061583615271811945547313932890171045753599649870704864012894553514803024980565315552522922392267539603141806327574482837590034234319449123905193480192569878778081768900718994204650289364198109670084303209519042550738908509607193884732376094205203723141074963179843202457126571349641431275885819200206366183174364613881679977660318560931603440397572932397924902112840188602664676218734961208549828460829253077587937247230171864969490566505047026243277366899184052460400269351073232203311592920291854297031708563043231623379438081312278537562916792657879913542680395045522659623579724270629431553869850604639607366315238309503683749640187768831252646063819772192360220929088088288990830342928319332606754312461938014386175402005168952750463568896460674399293690404923238215922748400864051837469164371942332874957632913659923687654208236493102886195146088348521039131453084272548812358757493174915033605077159880670982226010929664261403907834896169562334651174234697042960561245847604860712069254896437143842593253112536498323504144104760256930785470865935625776293602462681330832320620893480694442926962818492918628880405835904568897504049515431549526081936084592283401190245249273636819040449903090277554967448063124913085883096677398304152882403909461834842368234810568392711915559714083710954132607993485042393743327981619059933903869591930313137353628453388521063684831364839476667950374313682708164145203146365412263446092474030218317192096603751756567937455990803660906388120195271882628021256692492425375735298487975717609411248621399926972041717869627030458298226254164919315482106091711570603602715148490018740428388259771532810893588155434085058941426559733360532215915316152913907117101288916103477415053037741548004590817378263695633703696668013120736114991422477899021986044360002926618223163389201154818987901061604608285081730471647072821829502314163317268691148095831067425772642523247551539718025471242147888974743254071292162221889863461061510172313137679233489981866137867474816009920543442633188853810958316507485512498467840099893515299552927490211053275766749656184878848841514118258704646017063750646291231598804212592020340697742015729406414958924203668365896304353986828617429938563150355693962384544865588239680591277109699544695341940990240025326097046794692607913853665294015988461174022774304885827799827004489702471648099383755437963492818957927132869965742865208963604438828740921425621997229862966123569384021141437211560133834553984950532119032995705144383132126767044848722021191913159311344851301720032408624682743428016711137467288562664780522713949024684070614622073214583358268604376278523917915202970029400820746023006608158330752718316935586907914156361103777355377657529125247796566889190382359584010803558700224801937177796377064418436075731047071678312460673245082474897693679008557269947025126297321417923594454784082244374366966857066014134095964829516508933065938209176251600544461068514726805709465423675771617815127583412413591801631753954087178470324768581306633069872469547914531689930733260099382859253576652608431719196949517570178230961879297056303502270602415668039108829265233233963946443130157448834044050406309872980069998267409920697076262365628433118525887447031594044620575629646967931979064158263951886266118942767586875417047458373926529538175931117643998462741079653607523668343037881785443247438855693095079533623499825193536740932326560386670273520342831940986944482915787115772129279253626329007368510287123548485020132856227122696985159037967302518251090080080889456479294001950266815163628562784715056287397243547764437923110092889577473734079247992729600278522371814708859190619199452641527142646783114734178790233219325515544471936252365034162142557368359980763295909701256244719935122124842293118909723326440810513271081417683821488225598621532024779420186560035578558497006047210379812096466455393312094284125451487755911656066962076801216623399182877084706841167316423342573230614195140746448853405731874689396830460836271037174188918724781044770609695426846003881761009455042846657741572440352972986061866271781890271421293933404762271997136991071780267872560538032591861824429517760019859994665962237423969158635082639364940492064783544405797214809033250531238978473552188973788552409770639648176159019173398427560198662164639054559267694408166888923602476413232841160917224927417950555696661979094442805575887801304922214108877178196603146940436267297225190846914976451426361273209176880288953655584391292668850588531803802897035782217601390945536323667377986557565822368817150306852869953569874406082940686803798393925835466127772822287795553977868010918477262173796765414582733653007298006849104409410561645127082634763307533241980317316696784994345360094559152298252680399551491148960319133617343629129608527022059005853267795626863266927746781110479729089884519099100491927312717786485775365964931173977767626371854784425431653295463607918413068572003369021808908265492111667540735641003936833723629117875849952133404904515047985790456545690005838186993806218461361537188322577817548330312545476999457042382738921352466977076333482058636683963412461470109080947042509743345492490019197137839140223927320127201925082113152007465056250443511154111882601525255132236576521555086478883210474604473496037298749041434384018530170853138055828334307965804904034631949289232001560633027511389079113782502409386977681735925809164720838283797860228944559670618466241064179282516695948390066665867987392818747485319041253558162036078526070025046524306868120193736912793000844233550800363102788399325178895888675029265706604868926539946140496880882993234694871185334381330837867356015555502365167640753929387804612190991500110260083912812457430885311562172636172204206759439584631691325037031028333947633892726272680036170140652597036092412087845710810874511321917804385419618682180986675263598875303690214240905831167409839168355831048271078856973497367004024004881344535094252290799435905840310774949798060585631873016791445701466207816301494312694475314747440950149585684610103584319766441735515506489535494325394917899456787896098437020667620532231597458274305400480206835083359230209908980235204410350657812331395883137615169152963531487147703501410403128574288139276238528251624545499865244027423055495976323844775819319522183032459115162749105953094824005631390155334411622218888389743232894118907609645133612490594444365617425601654038875966217731379947513805381983833206171789520990429127961187252833837056106733945874090642603079882135077124807418567529251676427075780796272622672586466196805795873838228709108382342238840888511666487920099606352135602668910781830530697057729667999327007733595256258355632118808235726164088683937780654718692208318924627574870164133043672212526932618458364834140613970002116007502493951303672984653330260957194379286556649282620069258617127021572021324734391591362499943024382673796423991360779821853319907958596245087064596906013430943502683159988497195875514867506740482829536579992295517622096467002554366565912812780145189301764710895447285320518231174692366583140717653130417138378679666727442955748913851351394434081225162588008640786109453967098902667586351456885233955079886770770895619857461280601897145800719438223279759900857021589912070148735862977612835341847356523641159695357556128412589639015390043740386916207124034465781540786971628155641505546245530463018281726315597161139170575633516392013818020127978499018108491250829708001830925547554218913394706970219581545342022624884313144706307134193869531652097463079585255627559084516765327444270865827601554832371404693561645212439273656485595723191616957342214741567825524941753354275929330792421595854403512598080776711431540171393888318057071769070024845875734418738212440124889645248322721200223616014549491609340561286017678209522594291764105850919608856631531226890645768671112606465125262065055570145103077041663520292655868502242475965326756805215316830247789665325281662110649344711669971032250454117861433858366227160989271026193295189567659216113874623311496162284616681782647834670676925731402283008705651213705543146661594174730700899277060467393540220487798681867814098989170052634554063382051701128058704694706108537444214182123681670780732304210060953408121603530388761436009646914799880148648367192089143790113993766580535755809377188321720653436573704760100012876588305753436834440157760503371758844530438634290195621692933608436894686632626542145340454187231708146330753032330537087369383217514809692141519412859346759918275124142926605558215322835426238272296325111758942258150296625228480246360180522719971334927798270559422668898154614095193198107513890149567688287066474401925685518817041920253129884329710388807511532305974228086800687873318414204458105745706140148097124383373274269741510229417236407054353591144650842629921358986857406446758201139575610472268328367834140197704954056765718928313283134192519577452529931343788411751131754428487752624470303431570767636130158124783060349736549514066644692893923371622773868613630508864232526662182381659965887211953700381392019647546179008404271091219767133787730550056109567231014233842643628246400543453431842473728962758346132715717600998435824781907277380175488259449263839930650716831016028776417349691858142599360401850172695736506896476029524655767950265663394052358341508857928807809269196501420956551214226055249819686120250651502133596159704507287012072896717236284024756066107503208068655510472589803935765048304568933962623595615509888809230358758130596191545722231600454647647713576563806300575944931816820727098112081622332085033691653460200214552171839254938667828701464033434924347479932316733334116565274059360233415594115458256831682169469372318568212474491469160459073919957500817623142047538932356143525429759126996714591869773869884770698147466115448531366885776042326005491519871454725261108479535472818963944626353133841115111297375138332883085781660198602274293343193964440097398622714265545399050846373688451520272328749693560942065407173842917034411706386804330536657269084042168060278114577186369576161534147866540649392108394774786973110391953951519593871331674599208579260150003516122651929871027207620564368904615551472854803774446355608371363322656686002428815634213262120090629101507846709864366158997893164192715932213209905779840601304012618949854786326046578089429539905024025917447345457545076653045906927483191608919854465270922327135448922344111412907180001517826656915674811132602469861307455226799682557337132881635135768819636655846231313640597095488232044884691000802795490921018375757361508871325981077815724754271778596896728659035428370643633192928081023639829392428120858035845989886514810302024086351733778199346242198266761056442888558052714839934549787313369387603569056236648066040540061762974070498051759468456819798610872665521343515323149496698046705706027334169751472636636349497029226943332145338812581730816652501562851473507015435826610871469694268260121233207826569073055251582356876688610600567156099633351560027836104656008674616527263544249028631538062273321277868711186505568842590060109388812392321123275751950997461300527921961834483529601785580082897609293810462594396915912980725175693544692416893883591789191494151387601672644610151130075587817164919322178101137797827461541744095788003704154355972780962062682278615940323503082500575160730224131564410246339405490226881049058554980897194495821911313189523436315834213327002179491813438051884287835396178561302936675954907670696094133791016621085928415275889932918371508883789500016106581038805890114552364550814507627453222418487008660106941310740972805503182571214542223812605508259046013786238497017473674457258933345811781462169629791071925552465626961703508650726080673424766795338433706460340977701665375390246248148959700730975825278382217536132514182082308329921777850484129480536520369823875537291954567438611797466315654880607467500678851691801737155109139695197467265316010469775456292155678250269047329696406201300446879348223995930693244031072312636595452056347303862384371814802739431553360770855259920477691204828835028637615643001526110834645084779739153816725582964481224312976392266761754595896539339496567765580687422069016438124228453140563661850529093768440319714816411497649345596810737911210465268689488522918838707359593348052802918938249294604768007441671598577939848556516636174225599419210686679959980162056353417275274204512571583889682918236161243901683665170781074339975511672942138547459832836930047557220873993913669539008491988226214507726949900582716766549958639645803218558854118716939739558823539165404403599937016566681876620125859098987191839618129147907943612633209497635462332560165397399311508776306457739885528403072494491773182974076576062113168458012883947887961689982869334700779447841181649860412360046435844319724310133720720716809772923743976572228374435810627069273045814400633190938881084728729608988165916126656717936546461658315416900981329442848234835904737653511825741902372472816305957408470865726444420635003706205604914060872010106185944667911521030225597351692498051353489558387502589431419216680405626904532486997389388131732410195918727915599370898187298018465224205836519787567985421881046560542114117172193348215820305348517023345195423439368028065029031714583352154661356009896026854118198147796024325731838246777527379156426977097642383641506395625316305948333541948314746388987893406019296280204841988201993321848234212216029621215156443947695599600228871240038902538928969787905233878327800985491038942666355659577609076251321754672463209007228006303698836301863437168022060432544751656874925295651796247658850861975644045086668725580525648108488991373164173735316319886564448903298541843009466146284047239171060961286897475564818728974862313754059853822195328791755219639775634947432858124981526915825337118844255788429182196374906801878556242334571103646758488484470923383602261090015907692189662860255292815681584315950681926468796547540657145083378916723353157334996620583903091682545930026908416225670603854142676612066755943926915251907122002092885991272008052292589785797317944751361307997927193755669347996415479820852227411621475345842284871984571203673816997187852103849885023312276742937561127540381099743048364082943625506564438309082837014041970774976230127465426893713612928120699378783274637365649823241220156868572852124435043157873733194078327308686941142208279827695343363813906183348931927289721286805988512671888928236148159247972402722575806002469827578196532788923582816642955767825607664556635127632215894091410172276352468043916066694824613220214028822219122082558835757577974052442346723158512253511702119615655195708606550398723316494333776670912410927923581366001247027462120076246357901076380981605706100544401111694636500579981479338859124024070289969338221592054208524574363222365634341913716762933168570369157619343545517731696011200190359684976305394477433708837026204588845653847278916175785689450409102784852330489599329373104431044557072236793511310944183262715177060926767783299541454418243341548640503085427155437494071654092420989600852118529743973914042198018820621039665021330347337730649519266373785280606240703362434453661849504170792836123712785024455503152620074195612135762904723127908221481977934257121476448132037813913485637253185307086514255501455913576097166547515031894127759940777533580147760226686567871204634989577817144795127210300299716318574038402535709063585711346995752240536303092033982884806816362492063461321030083335907917099201529360838185646494910014929977733608986766453050205599275287039625478958649583034146132089176035386233631394004288245133764237508129030636112572965498866992894087147088001939724317234894544162157101944950025215618444475199054889173138230386793304962801370002026807485048606326405355462872335100380225900746437393038036419219551861875406261739053575597751956877618735509084147457538777342664272327818802233614624104758913991437865561367202019587245190892547552140914484154844754140247458676131152625578751967656206673027573022878730786230328534667277759117637990573770714501281237639784156525105080381981431384961922112919907019907456780888171707999065650616189907277355117091879394606754202967477418289728826046212010593031298517130350510362622009942421145597701622743147535281892439643778559983100918123039421383249416533575953310215267275805733523338604763359228739196256612054533730009021546585629766361708614850070951138124088998093426106549056308915766027350261271184218438865611175013387551884239226505073243431414170581386843119153509754384945402726930019576873225902892020352871997500485994383338427721875554950825602851308621580195556988767879262157170358239035941945915331871802413625257691900693418641477561873975749946542368702585864204124839229688351813367059711476868707891486056380837544054710460693975957200140155261877542007267689295228169127096091767898672864815644633257611481159544637522989168588852150014630764613699087336299504168070526421747810541137787642890561666082094926810890042249091425723421138762734616774336647784064023993177947191722435592660107405220045672848919864857651704674387790964105231006387700686697205548806099721937520841564851178056097130225241919263447092698191030029795468108130613767089299704025125111555425109974966627591932475110418777680092504660364607386930108760688543930444692866826227409961199630369995593214380630699820851832868524128422562323117313648009519927659393397330028060934598094769942891480823769106744833454288457145418776545144675415440544067700116477028010667294791213801747342068515517679850854765484694312410362834282208094775477422007578968335390461147541322193945145541884354239489143134466905093472099530113323765485449140325728951143443154694891396918598747288806324311894971067077782548797811386638643423347051986912680882078591939064253775033395934854660587625458780648736271883982263927135642741525418759959376156993142705025438836605650194748727405327726657399852462084150834773364120603513078122274114065674909563154876867845108602054764179190071517719835426117948901444534991608446906378057488803674308356957762025932824507824515888875823519367758517136166774539248502936373706191497334586859649145890293361837360665460180211706583325212261945873211790628403075408680891627446306402019173895470572505199117589695981204271194601593061201387300479517640514322278604285864638904815564698014363223397832688363609075112367489767580233821684915034448880116413806717949438184239177891570294693785380405693965565407522712055497105260006835485262160094154097771662973614103837094980344299516161046275291549965906128223974515877871771605077561779637349488353630770251333314371040296857885069009835232606522508417645230263041774788029583146533931774891804222247939990536337502024204828259332494811659291220330045042072891215135984572315848886570575011300480516558853872392317103527085009064069633100008412489273639590371562897045473242790599472854996255038946471229652400567545658616700837404818989380865626959266446223020240960700703916799629657895559870216479329171581573928378252456080317626934175739296986885609064802108380471915049585312268859573049924095262873500820227548982417193339136996833944182405959580347287421022158538856613182293140874461742943737750254604638552819098335485644506060732569147582645285309863572654283302871140605468400496414517109013620185945027541894727268303624288000933398875291491294088733409323627125157018131227944710266058892913630323299275696265593398651580178954141376631242934581944388694874062254106866215959591999115353572238326564250387496549087582263601377042546166640917313071930819282176197686934105748870425043206283418618580997476512046164103743306140991212081423917655992998420691456140698659184607873511930460922063193170044472108867406764186418937631503078560250849224519106721350855093146725469979845823204670772708664665144103466054255674656433617591971235159830796635452763656990573216401155325308608573120276704555842657512994716899351880558781752535208309935419212058102507040828437907821053395835139645522495479259108197981303230582195439507115742313541052669273702964947993184447125026459740247186947679256364402480194604996928474891326147889978652108123128011174504276692426869220785957275081629969728786892666289617034290980943695865363075844382568031206017961083047944760200258772426806826846910305712612406260792233273946120401227463628172892352574866577515986970604628673322983733863158475723580116096840280467791256560845685112635042282937424935770048929357518083475438310744777076687486029285686130543505769242244261231004910701087273341574552969176083385964211524187089368125154698067962445684987592398829110664645170090942485575110731960216838487064833964860836401556797014991814877444621390143155567051376269233871872931202740888174897791712914074878564628150502101997374048220336185497321041143372290852199015952847318972654343634587365030724013734628654845143767133023504259429563388033714127229411747886328378684671395245177544250759518969261856315446377480611387838990166015374749829203451934411611971221145789076161844827756604265361449439597117388102551786695994680558070122171874404218961391616334170949127155183517433296808362066764863192330225226437559772786211113677294594514210030923802073870249646417591538888497693498510797603148721316227747552086778062632729554122967104457908266156679935828869028154299343970249358750656770783437703562753264250304798874749720703429988589980226820725902126010828536348978279741788178419954132189112963888547129255236163030380150888481108439545383313642675332095728138568220095511738787569150979656010248972796201332065791430220861610587181545621464638898772770885931233213927030016828031779729016568151767136609550727960403208487740314428134509736199735763354804683047988232268489139085065169665217704428543627234322271336799798611409512780834183037436609322743950636066540369719854483761270914325817736844404979219224168184980798124405183554262854302283085650369136360675038973786257202752861582018387296927777754457802886959639364417454626923125174090936075721504622005823081280304966862036125092868911441068740318518162052753069053861790703358926715168524320066961234391236885513051870144346894340423190415494506502957257246548473383876168893170624656561355625382243131662163873548057920303928962461723770944443067437255913187925590760858286791933011151935406915950251218248072672601093884085729540550722389268522655751405519345936402452412610759586250948040448213919639493927349288740085396205484403249830163660565845411923365213921577078177590685074145026493420437818298232215537404632453340130486473288478242234558187618980008929395798396808427539166434875479431930282770694825109912615692644399485242002232341505274875915482973898986025397006288087606079057478801092131883035999976572295471930068825666457233132474681160507207753711995800976822557570596671240732786118424294446485820076129026731505139276304809643787366706843847990902261026927386515620026340632888888481588649601889832088414479301389431522846337643617188588444840639807463261883293697518554155504230293331510070110310562121597343251675936499821523506855424949620459967540953750257890010175736170927089055019862582107806483468667099510856699584781438296791555076313651072495255357058667420335100525697948590473038339591356519098792903266951032960283971734916301142834974775344319830484889052836034980651650461206966620725614082534381463250635048346470010078262918067393391298973888000209241072054026166535737605206739720369994790907796005656024462925721632144036105485294889974520062237066383877608534751814860901274821878969665712603908865357931075117751514791813590592532911455857053625378319435390528967562817798594412463189339140538988579453953121635963933245219964359240167162747038016278090408769168757446674262640996163170296264684964064162256037417422726089466536714577553119471817636613634168834454886031106335382553556460408292237320393339576583292760884685856744330452533261808351762850015966957491814276684073134342064676682263254720550187365726916741359335562947631458819968251000005573363780158238079890527013985771559942384160581621604242410827357843002350859321592566231930754593641238880337004284888119784024479294757349619879377717637292058947312823588626324082669973890146917598862900522450919829664787760600538556796895623683852848137686804907975148372952026918966889905660411873150220475663845914646930734299126522297423413060630257123776805799834018445995760303626858654936260678248148787704049490533846092904703075509161943977719042104766920328910634583646326097860087258436609261177712811225022703542844838224900319986188019385431725570064672728592776523814226684928072174158417356082947155646659401944648307412669399763621618604993840039840330500016836999545270781239102895788721986199875005910071842386567414377907455335070778230403246590182555645125217630034133721832327131893627678180837885018437331890669743359678904002706410748165986224845219842989144443090669523142111858549585665259291171245298676521313402586153715379336486274255022534316944370107415218756396896133236966037299221899176007585045887615923546892317905288811680776534667734861082539688355703121641119457698724782773011104825973335221683202737417391592477745167370556212403392101790259709966373781473616184947019988198281497983678201660762172167473182965147257888881125836923767110082233057772656091546066791725085471973663327423953176475802191271533870559506131044234963832819495188599506993973049232760989139501764314834016386771841101415708661898938065619153358798962998136599628913523931862952470508454556561319104649579604519452443557965460724859557188908544734668631698775000314345237459544141937114741722470416868116422024222587407332849530406704677657621716113497185748567663474136007977290741990448082972808783049844664722740307199765865946671321611275343548655118608618060272267395084433007769711850108882905343253669488255516798836982945642843202776548034086512446778909150546941168353173642870695398573644977632354361838571761342290935710450244473703430758255881071708225371489717403908189111346796770204656426418450358934374772168905562455545212082289708324232957989271297314014612324967467842322225931587728679756488859104854328450838888615989012502227209399445845714447569041083513641029092559362003955431568815776297871187566626782560353615573790452535707240471340590705726350315113453042732230158758543907307037710982216134579152385330883776611218949969839174800654406112957087835593425116780262748910850513849401271516305072953146620266908467411195202079163610398007922575900285578548359703030989545676899079941744817552381772539035431958456555181408783673013002964420493270327348803880443631755372001037467723291513912264400356227870633273225989071857288793501459440033945697227346796366953966358472218218344241925537778631719906459844918623353395680558140616178444827677084057220109175637890964467943226488918744880574960079624046905645951839026660942665363653787841536171804688210977155240816417097348089196344947872449472258324052806837771282417417140351585575434447278322834557198922063237133956642127591546225311192993938289142087373853092481221153826530313316550461829296685911455636723083434613305105273704360462177125426881526705560170747310909333391209752379323440821707139530111458948847622155898260003489486159953670624372484234379672024268174002488487278350594577896078335070496334641223162988590178809267801796286688186546322438761669458003125408152571307191634316115221371364167335901647031197327236184980546644277823938769261782830321654670922593652851030130928410147974485099306959787087842483887884842775152701421647089234315401957859940446222629493655853559857310658184558737258146297752202451232243912501796200245264226674356013699374585493344119466118072340146158079186864736342314898616153103080295552884939546635157078337314255667328484309166650064665108534589518722663089778653172713221568114864906064724182828735286428156358046467286154387172376687233268109024779815580438238610771083533166469342271609668713037469173649418916669615368319561210011611928734709328216229546783101414698873749606008031162839798179048780871851508497319170035235496353012813321907287197245501903213370958801100276342615835086140470624591117016328055190470842244570856175898076240880061250545984655994483730777639642697003020194327767629316216412430191079206689921720610808398707958094805904554803715613142074105468143197670249340967697733945829747312486832318312995430341556837204053208202129520328983388909810283367927058303278685890627946277694310686822803747025435996403077590909130987227878808769534683980748925450794703585365142796140856750163808739383208746392200353793613963303878136872887420706720891707140298373596160605275677150813046568091743799070853438883385777948611879524215538330050485136797174390629193566956396329039161916287363546341751837557741044148501013453294179113031303980087341353658934186515671797142728235518369166608324165873631890385491568341161362797731221654263065288040846570186889798924678773582974758560101068409903499286408986438516633804088352646583581358522489465392496403411651202215334488924568644344595355466750090984750771280468162959088946002772504409731931788086423345393240241784749208567470053348001466256414131954698461544617989511257427502996961067070697785917628010684657750783013547461315751011847604312320102135554667154962506871256097461929879291005714015379221972458948149223763030848798332867264701828157383600070811622123072761317362476365426036705726544543309611405455318220882594881315319623318364686517551093822468800702219745039384765928298300199605983161525064597163942840523221106260569842479969677144512538273597621972003432498964264008992450084253920640458120927076866896680032568053416420354952989339809250528107650202257461829896702303269497112676311220871208207724364007349740532051947215533276704412647990620580558269826492494801972297878728989605205667876157208575816214031133579029453354868676542845752878331090995340430355481270597264150680840441931082526490866413072093587726190019669355150263695981095089231462969865964935081594090324321722462467379148954579502237863828846546222317860353260594583259544247598650134220875909264034775076557453219662746410988320836489801464888157659510891299620379030941006278770345866172437946313977313499750484082979418079127764537467334631485364208072069862782628080757442983589350736640702213554865605272461982357608914213169204590262328242179152448278237470945982579954757697763383085608314673376492450251520971666305942945060588756264050565616274605973209499789993530092869178197870807802571328908542489264309138244083088988248205315463011493580714864051565775424617813769504582902181129593366646707300578979526230053917519984753193361450616213725278127635104798000852632792117559237670102282843702391704894594440377230595781486617693125591723129331014607784717428507322683510168591429703810232762002454976505299890655234659884345488887434509126438022471561651547295215343440434780397171889612124500298353605394060385098253072239099724620862334209695855871293817568279878609270690569392598574387389270503307834284687910417100959228347179045796493454254426940377035152756834402112244606431060314435817310408000598361742808675520555357201629953083353907838149433642236357407168311006749015011935448913502553342361917179318833287655380418297446732042447091703968039357649748289488424833555813545152625134164564293164182316645020506678635082896443364495587928602715795054478991581594315017172412880161120965114995513981691517723975935941039770813448564175750170249428163681732731475968981042965992822872697985854191219139813402456634128533688301808360609222990117422740490523069991023538348972041930334184399891943451395721644233598675662448117956588562458473505402675623462958000525518593338677606222116168364074801778923371361004385623460711818628398977533564318354439229014756788258368793965840085240280439401144485681016308976286133246466737239300447716169313231026340009982649015770265820412782644108265780598343230531240641400725928552827025447046524256673753530887450870465356429824961133252255404180174672262738597874226096111510494396550131163101836195930776429340087626423606624663846894707410360676944475692692623292418894945773811745297532017694449867492827626468231163825169981372816558882345776145336525423473938862658966651965970793405020766561079396070326133971870446361252216684802814271847005145099260607642860802445768204986330017301808741227340332315454258504388035485415095236679490158761063796712469149388725672809708875057079858386348746696366672717778966654970107054757179120836394669477409162634753791423121894189823496040146146357627970109939192435282441007990550231748808076437817344371664597999828230300856191041907767667578112174588006469986454979308112806275229472400203756425208358023924800548103388149035349910144704674645258616696427955776930332887631270594700557426968626653897636011049213022671972114196468520691377211766993538914490846406434257564890651079881085789803478027165389551793955028354334268594755963734130994528658147976300234381762507605652646579776917117180419756159196056302868600497054037787966456958832575080410607255497756574057357562500568133419406144023628960011244844811146224744904054044661537242176637418253611896150436571423622908356694078513660392123515871800647405377827263920376938277870170319295603754675027301454759429414280465845609787089817899924146389758951393365650635074605817423760563018297734293502677165005094473686398066737485320336393728559230730748556431212069511110380744548359267610868207599354911735174251855055775693856922139134306352275548151326471384182625967311384078128493835472319045370238533320160478269165873596683835024316147246418285547469479699374069167303837588387774346944951007069281703918979919508904346356004433218256238239855041412305911055471928248110250302478802325739173438431199015751030948662219920051018106753081668562744397230766602593809594916684096384546574163723846377791209946016060298080726783638657670845292622255967044302472391238219432243053885510952727157439659721090436656236371320729163702674234240480776472621978357575656649953703456807012359951433876840578885450065915166596069420396621439783908339321950293979293608375840986380935048803769089883614873611366197163398371691304473247100750018047055222575030761501046138571160678339481814398963893511697468979510304971329201348457777779243209493996828857745593661012692140684984281144105690272599414045128355056763859902837300162612526204293034990623751107255097106746593660317928643189858988721481162192614037283623066566131295987341789724374638832624002889289260065381270777086078572248814000058327340884891111365516755365564534882010942928889392938491766753591102275883568286787985682022685722341736011435776608871650108371995202984295060129837895736317478559985052399773222097016696795453743478950063565523770370438445740139484200567061759502706471811679716759583669605696385742649792971796726645025049110167828569691953390665951528328049894557692540107436964647097582606386306993892635581742304341313264397016193203693883010601313836958066474543932988499600593320839971104403393067247557873510437875891837618880286918520160294685207446968982126806632954132641404903184780549682901702722445008735983198142953096506364243339465668178705141817592063150759096021488523902573260943733090381854248016419072850229702648860048411591601532303261587643200882550807993207637687202230153578472629733507551743962854983551327927029910236339614326403696622899122479848517883942376785615551210649419368911815931367806877903946549705250572128280646900180709601392818567152826738149917879123548449198892422426299227832861258927531784656798815926405938385375898489245429704497345683221879808693867150433758223730645266131907044182108689901413771134106481969853783077046140821739805654900766190794532566902166144885534144172708385926768312528172668256567232035968035788934481350257794083350569571984132975190944469291828903589992640028268039179900301480358629295084070045100449334129542207099334580341419058936684372435737163185717384074941151587848765139649125826199046530793112052380411953516157039691141568260935554322047422330047587842033100392961439556083278495147272662064443820392377537828077775841098049699303145789534400495637677766890799413998251713108892943247981584975966497431717817429680948729715366968104417835341250704418094609325792567430537320907673989811598279847490638538211127352771396796785697224694401198581462761134686380328131711028826572426090592270260799750356791155058253923943321465816423947741530921326182833549670111184980884325042385176298118088292898953887171907308344623290981735649427960635739685310468195560982861441288118867909509880490022131915926310073218284830369481758082694745690789011093331179635889134123470106453559053692779732971977634387279263712663259822211046540918095786258424239008205484555845448989526497203277901658934917377229176339836249659353624898408409377975177334684784795099850031654196978868747700672362936838214814389728664290000924323754104008891477915318905234222681843939243621419370889926461649757283935868121545824919695113784839421847381024597991361080268591744218396607549628914734823738679467851253088896765362006858418240252579777643515104884598850526566079173445645441595697549860896602251861932858140466305022467033383796470188813605511770995820855520856935982634435407701498055978805721531845196736371004296483000710069314042033004710170218029838040753611416192944816201579909007921783678122345187892682938569005577712058978563246393143874811374752671265002384853197649507851202909738793394484314879588067432972625564458789118478053339219176084903839626253268547861693254195052926564091589721767206284899694883956877236346140630619710245957519300449409903766384593407468419425751760261100406582992658601597722920314571173178211314998506268784260703515411854905487036964722922534599559807616412098748437398442076175555337910074142329489038963241302447424531556508002563665941179942652183769777506752571558925507185455233966467284920385357681360100932516192147940571114709746376302727340569951154471621148706367573681759432952326568842057779095450259579860498426324904513818887674310568752416206849631017932769130678631789866300881742013016260946693280198306030690270878901196787240548042635516850421999962864330278975602615392703176880204997281667769320491132873789313287959776965405135544178488402755728517623427766658320756826613473485028991339142038862903275042565695080295991149226853250821200703965995001843795595194614634095116880787381110909847643725417306557710388778186740157092577541936357627262979950523643673961075757988104692431898782338441727979987152903208940492287096840311072487328955219494764088707245694570705362180654840392459838876717557651731270764392767547700074012696107774225822925153775945027066202080771586043562942868529714094248054681184636309655001788558007823023126658520276479261639838637669023551818067328338999717489379654817010018178097702400820210130063423828983613457548838087861781580942383414182761468257381487885973639489525750895317529683092979329995359311670281128151300537684230324268156890881092426019121061520835212366551766096945942092032925307904162997952786976282405061910066547804714998994167023046659088747258206849610012425565169867631954513683696068201695540744327166123944347233765681913758586901689194550713384257473215019144871254362191090650245267823757389676287644451129154017406774318910989887206891268715641964688034565535383168257626878360867936696084287628381278351006416315365376420116630657870227389745348421029751327096699612649063160437018060139276947410182158249336199293038006096546893988425283058028240211424207154509927354892822265131516813841273629721921746118740565292878901735343823836348422659213040896210693681760665556852704861370758439877285254893490357840980360468326560493643397486170156889811117913552538785187829996006390501340806907322829887606754152223156800957355387251630698678458935330643375392988130095891244396253045629910200106185173845529988370317634599856474652524805650604342217605430039872320952543752602252899882248531933578631652065920480729668458534510124341443287418927102759358328705064971265223169026882261510922589554930139809484934242696762483098099370464676971217497620233074285366299821216550128913362675502785922830717215175333200805314813471506907120742930972719379738086285941827343734122938932454260017185869730497995776565711579541981103958504833490234653118299518502118754057834227615372558632929047971032503495309672059568565112933571357735321646295640382213441944770551775564055613110217034869244681823076284453915331180597924110922383790588852541526344800254732891521923381359995080722473060951851022978877199818159862221403675829282755129382457349624890184028264025784609646197192804946286075447768119919277392145785001545213962552991229069517616148943410215281367527589579752180490374340095039065386990313239774944290656136832395769695776331712249224062011454277808821606311964006253382183162491017039337123359427026693406136958210552021991817114787385981886286098862135207962769159069000023711359603976495671120217915068303004486335127685755966546120461666312102899896701544152686652067758242526559726050704677191282928565613199019157131849706707605563267741110155285044660813542954232313790983413065038919477091638956953552528682503175701811308970653145243622548199391116269390315637560915471149072511296398674500051678276119272430500257312712913679920880630449714825627914317223631156729513518609260212221626716903890072555067326042824838085680273333908246633636630700789000554632156394142828190769146282894111656983235260880903036236945963434573103895786162363050439008125507154705413843080516520669487116987353941289621621820991045123382485334630136627922481323682428805711360493743312113375436272394135652144032573311375390413564777342879568759154141797732267690196620088572930817990371313656334945996862759757177267089894183739841139170452731247453025455622677864571967773361688249021776790224676493974576991182756274040173310119135300583420837327369477026653104660268431558072533202288729216080603258575423955941425696183893356467024306664349618154649334621867191454090272053324508171732613881135610620267278957224883293828831289331363357763104242816610683481353956889939741707238867979245391702249254815582876140022189156841916026670241703038591516744958007773257994219627404262379306150137391992349064950453990347728443194335467215040662254664785663987037646030129279475909872664989169293031037329434386399554969025210130580154781203136910485529130391114342664866044966370950849841209889006882382146391694676622258955755452621450206851230391529162259812676165799772185622587861573641910240892248337299251262661843751296821346488185337821423322542213507612937975140178120400367261574479126786506234656659696406990973661818541345855109830153891056726524752143232362704263496740874895362209102151287934975542776782171664496638168503828318645981480296464111691196247129588362682601975468482505117796205308483664536351245611713692091051992225539306433884943978499103709005380022435281719136133263331853762038460365600236667887961247133346287860641648559188639143254262012102227434453221251852945271204300169580744340133949757231035286205258344781941672819299563467136008455635092136783333952359660016038537835026482307231325556000780056759693406929698751325076631920255196239571108211936333353185866058718327447962412472294205842066890444773198900736671942601670220473212151015443581825308525415006534578247579360653393888431999259826379241666993875860313067918240816265777555977710191002780210317210695243637090992961255559352186282312806276595071980615786608451123145291343636669689772676789956590820794211016461338680470932153874984664624961337529951122977156104501446889179117117634002550962401156092294271335330343181442355242955162335369173821672868319688157563246434769406348612655332619965037086342317979567291548186515213489599998140971802010439748084462720017627952710900394716721286799044655954237866615440585680281950030644794329555336554185894017724518118237457793646095362561843078560811951561634652951690367824458151792482414787955429239600715027121208325676533508715636130094843267604683157419791742018460553527384538086963492583075432199291396919138728823652069767467204624097474880097725376084927239805247174500903889299038683140155664495402878230647515801122584277839311411060395086846055924585450083814482571440620331668862866595030561766912755581884974529751023716639484221995911159977853032115735259715298590220158079863660467526150221640707685798397557886897838633563186049858149502983433542248688070269723102080641949637803174074797335106811642476128218086390975228112864206038389782695138030731094878848214348341782188604889063142342862186125230936078798075171500800005992948081445867777149756357440018364747827801369986393274398791139881727956566373203623978826826371137678909883807627855858041432777122371872554025401845187652571694486724043726462323879169011784782139452885488190472536790722546419608344435782033770540200745686475816341029620865475945549037071003470905415534823786818606487683810521144354992572176889813504925224649464924448458344704287962132125431715746016918406896317172814384967874255623293689708032049642515341268619637967556335410545653564319369971128704943427172574014354946760267012871246657544046818310656736858241478957897495825088641253600723378115352070771458511087251998519165066488524705973172708641393757424458769397954386662462347904127259324886456147205131495178696312959328464075181011360621925827086538421932381243270959934550049448773334412913368141171736820399296307504108188256674206957987565052557450041421304519847502944833092995133308867726128801579491135401958117182154065994526106492732378615739419871388257613066601353462687075462220953436493566876976487280034408687101117904822541604576908066062157911936063229753635177298444095089416159218783068926505747301610173235158010086175462103337113048560522047041799334493735466552410500113246821791993250905588423290907468452745424714309446613206879187600716583496333639680320209585953506600334819838123818891405109882569110861129562589596200401973936193008652698042706987124872508239334372541491597055000887575209052990788181113922415837293692844379347379076343671469876762587960459972361122881848207063163667046843519015584078652207938195844112545509751204060876412282590544758813029691605870689784168666742225149821995591306233589481913079984117673965325208799711163419598641516009147144677730175976426035188945988134030659995373558088097947449186117956463991034971394866927181388217127667269472142548243082534062985564990490932906111345883640989268920298305167603652113179729816929347159928510492461651297128140187154415324761924193923467799731576924500611871418949393836648395224408821111286012700248197477681245517017534692286936078433863295212169868168511067583176401682220525976819120043479156751492410606056161206568848164081262042657369834275194231597387052434861479982185748796209353669140884464286638369112234508391533287677938303798173464025937451748742693019700269929626821070115791317219574890269744796356785194271244555803411294696122513454538005410617484982002232428503998867357098009898227647395469737297680425760521694480074071781688302316988526767882838861172263944283173904898623691962308855143069175891862231681979633098347780248877511445167154114974048955518513190522317350256535524022864268229045377911245906264933302303577227573500077091640885812191266011607286991183124764799518472602590297929688248260413206543586780986339619470653313075055430831821456714382260405721523116126229604516970310119475556950348910577663955683762867590701440632473581001608536943820674281129770877944587702841485238325926301108320075148760698641462948888702175873818427506308708972498537165062118087120030202304579653571036993393965205810896847643507298239934826033275011233966736520080543632896802057082138922934493484675308519825372065950913085613346671612899411931013599604169728276521846618171225107821359303686425275388591183195080477714573779661811609545976755429598159819181348840578552603045532208317230814704012497335238430499854069762520242999454657074569083673955032137742044694525234754063873407824310067891163856459663024479877455884572021175390680038276716828434507237277318749548602682643400676454581968225447027474024759429770390069287204674647002832590391474861954118273905203579313089305886397344682551095044091918076171414771523218156967527589851637915141001199669433866633036383258156646156222060839311494678808369468366388526236158267298815058946336642965033760194203663487803018435561648980697089659212382592907174494798078477039731322381495169032610143650187629413831456745674270788404235819457009166372485445244526647680452227118041631656889167601799728140515588964583050942145924574921069303421487025063899727893532725091480184798569225359634422480653603163195829598182983676748952123440865820314889720132306294035657113672806852370755802750224013609121238663591931725989815801730057182266349030983868380226724084884500198050125423815353858174316644712545920256021452683740730756667212478000965719943149475140492602791763807703416764298182020358570306539600134634359782561793608747233709475748077721493412659155592227447181816720767510902197423370807621542086755674805464542963512501900841053314818700034290377302610238867464340604087897309872311807756293802026016773077456375588652685923075246199867809985720805946696874968415545936999713651435835665957992926191985706577253225908954361833996715836184025318435091175450922705857782369568239489811017785512765859642302842241413598927179909891162194551419880146905666107370271733254184253791795813792360794047173264325793396310897690211498706413492719435683894220002923705272472290916233545857724828299968989720990483745955176875274986108752314348215055021634979890302737475611044054042701208205371336497387829657789193083036849335824705954894987338788150521581691447193227468209744795285876209387569100266838927519898677360156754364644950884303753023948388200011670311793322315682393273342300574660229018139380687857181705009676766128665090325826353253837209180001817564527825080011114066824540605203797081320804969904880036308119719583470423808839142456965529995767488493815608640677070536679576757658464843337931397101246371670927605936396952999498155669238796446143352278836745959034477205704806231441334880691170384544842744528152186342431545985402321119473135528106939114283451931979292226556557446852981760284894412269442640353294822994712715937533492721381331437066956683403591162670664443431271506285204642722407930921521748411848782284696563445592363299949882842145225603555963746730844648872278368776012758904803181784339737720807100259111509497464486993062703678979038280361270977069257299077240782915570379115404867349174720597959807300426185684711825034062663901777120471139359822091178630134244659408683540988085012351908058368989287849981565064583414913418083837057186272081451277094547770786128406716373627162563679496494741508740828895317150793568172659056527317067637730503367484456915795258461635886367784742993077166849881348065325097479058944946180193092199737858487846177730046104752573567324477139772623478480226797487013190732322465314271216059687937098650981729418357722324307463620639354637515470225345088325052923372630944728413243720471022176919959999705863843491260836517979389928874316298658737072825554850258710053430606321178347889316303848264681848504318691921067499773377997459868585798998499760099229268040056330417420505655828209552951828328224411548969653698316834010334966216375952703127189634843095142413262058927415105748549275879494540741657536062855849517603049196338951443988913183491969154648780923878760945383014240441440719522071773586582480509301833285373169157547492912394015911991875404704347569373461018242010890304860157443382593086715090839838462270152588375982439782822906293065163649551046982922522575841772597628198359420704499412552124977102501380412161274032621394534638548744175450227791026095313819908109876010833903070781220404239772159642167002257572998978278710579030513070277148947773506670732886561069572664172245077190256839700285084958131529034560948802762328418547716430110314081856521394413155642700410112664984444124362356223284323785248702940632760685298893199983098276333693992922067784278380999127358834654399800792432679778326333970186287724876698655832351238907536962784035138394084766027447852577352404989364248431458262739807770769278837766670072654212527038345438888096162684311716985340901806030658292753304623073769718460212962626862508403788381894953921580000010373912006892021355841538444025320844156182470850373634078916736436434016866978065333415009201694254772344358505097618186813433566746797441077838685899452503241359290900459279444720784607736583388167522494903867594994169673304686860224696442065607358891743194939402579324722571556984062626238453548837616657902588691437933726025926543934567619234073669615567467687949875897198375875342142933899378105575552059958672230838518249957572491404818766836606829758616429470422847914802158555077553538938063465805130076203155491599206331401747054729083149576576343141824327998271136712661637210099963527154255973667947508181108071859271659665225896176575593261456618528881190397884531596006462852425018736233420804632457143173068861963636409816433615947036043717900715385939057300126102385975306814848245938358768252403965907310591719121072762419566851847593115422722029536237896457576741793681314174872117808825098655629795629592699929839494431503091384520261728130695241585112930952967277481612275510024163811256121610248129676718309753042354282388553707260979945394986890861765037339041351333734849936772294772261641660503981107198567075647648615406085605090983770067641480011826154141025767692113211599374004444737856282121323843718038129355422512211958278208758049076157322969950456153773097786875089926273362369681278248383126342802658988426316324719701697373813398973367185259886623829365138703687987220560606821781274229036642412836512837757838339614620195819325440206273756775473014550616195796388377484549938692941610680451923141194224458330169135827895136973971383269576722598265120152492337612593489832926368261078636307541112090738305520595570934146249909302822453707980999296845441062983925232177157365553858258449358086846141669220575141869838537440626234244584556684290917452715900284167486824011015048060467751694066374109154517459020409268193032660598706651398848320082468688427901855197727679010008417626371691405717809727299569276359916206654445719312576878614598618845041494537314673383171209829603188989402427121977023080551977292470732512125245710294020070137393720619983887540742250453828992273284374059457015368563702980343133523047784583623167865479127123882680392281345265927537532223021918396625588849730267898244367198160982527821586860369566301302485982406556343670374747130362537473584370299201942755881873679195249597037092322272423191809110332630466206173301961338696287792792845686378603873383174093192810003928534869292040024755680400950898440502483519139260885373967891614110756615640180806618215718599124720229393425709975906679567842410600047257612596197609108638938931981379903181400430059705011290063551511022001691075683640710648217809128748785909983318818191372502799797878657027059347365212815631928037112409632510736339721166234082442241050972600705660339996291962181270024026716618905774311638081136994515769744893200816903109027455884655477734265194967561893989384579919168318603934680967970323616735575668229733079569858227879308204137772662375675426275095414959160961593325932898655304528621954047980152461262877686759629347501214168765339977722235235652681827627540710779979763509817022156528106544194714793824552319848589283741723884877573197207278689619175217118936073928572692750042702740253703912857572828996598120381600740605991939865750400688557295774154198880291339014734136262736564735432474420971329297540651285625590263128661141695871586251421341306138666189712862803152302686033825959903794003635521357102240635407801771901632111998616142259695179455475052156820311788248736053205703573987186262322883520057090577975571711104877688888362733135806737347560944270982775897023553229132878006189688753740540433086378674642070177783862375852165457654044259144502370375827484081601200557363795402860066178912213855631436784899585887120094257463605072086071003200512565086340875982968939460348067130885403895602866487798524901966060746126004500904882449940859528721581280209785120474375541414533243531509073045326400628435601155654940076564116335151312980022660262366759320025998108943415234969768768633313558637605284121000373350756067874966371573875515450920208540654721556627927083885335781597842166508936335839902308611559429080293968356158200633748831331126813172063876557597807726759906607118827717071345050117624734968894293638880849814677315556489175462642291832581811355424994568309749973238985508612207074111498168695468801950467301436404175504297036480792590404033357284200283609735784794168268378344386661301529348344811267061979280369353042555167525767601146236536476106257705984118951074989919914519028234904895275855163697467388703302014376925023508243879785117928065372903961679813191721673492400240808729116073714929646518701424768169581252914188841738849533018256139079015387608101588837640389095052733449669776594065817364692198522966890031643035730417258605544485142448398928132041751039136699951030390228331221800432406600940142621940339510770979850328854050272643362628480446306009545239417966912784788820020430586935288843892142373419423832264096010368632516783469580707039489508950289481594120498810962593777286867466216406911721875701257519153595580064597569628862398762637620330254081060229350113034391762825335159850840622661821889035484641987363120521965476099607544723914565088714364916483882308117966790079065251788834644289370813206304752615073512680006778947486545434957179382211107023915505032304644381350983704262473403828052021893334765692858821730345568700332700478355886560364737782176184001941029014655053823901345533461518474989215246282163701408347545511220389283201304437011747391835541416893140398395699728415707293316118244197492740186971560010189292780278013545262377682144079976558226762611023164892149495134567678926695987327628257663855285317190285439617595566407033695729591064869356692440950751651007518060708131872709826531299989870517985088543939093048629481171943451733005573138622183653915789641284093925245093713544333469437995447430673015767151177582722895753901660148931235078346713648667997688255298416357861061939103925339660777201858356719515694247633566573680990876090979585285695461011507774459263049717211297100636018547858056569328751143756886806192777264835288636759759937361085781953918800209115768749355779133410529767895760315819235449658154429250261142867050291094903983188925520864763799292688156960336750858061273656668879163690607076946767407884272652797168925936535966139134314667966644900436330583937826021836181308817679377309435584425687388946864491787142130228963262619494960266546860495484865596922701178748307609341591551158421423353185813508441115361325120706215861286540686113193352799924783049619004766873270060241058871852475665481785807267000447663589615283044661458702702430290517677675586805165785829709850092676829891798712760258665064618464048811718212278345218634198355919215103262874229191120385342459308711431945360701246152270749274435656130829943438281665111536297704462268085517369629464538857161594317057722853113996306475652191294728162103796410764507097992167860399895019626232789329801302446506988946417670538244591630922058432676837908826688153052454175158278840356485060520699437100077818552722380008426292367338805979660969842659240503775401990353498837850540589915198825859285731191612229495962712820040305119588898945391441606953961020363609327530188575486966435858567655701785644478584098638031613658402565219326867661264068982642369140821682414573836533634201922666551604411809219528404345873292953420561140572199387479370947648704337465033087556683019779361093039759741070771672019371144157243439310270676357865306340910739312017280413401813618347219908043715629477792573354110822952146996138999853527894928561962238168724756303650923198076189881764197338690110614449418936852527946864059563212624150246775451469943814825939269008855536407195554899114256661622368588214851468077449855253920561691013833938999449908262162136664546044344034092141821630792099505422030464840214949544112509833289646653218844131898267100196803447141077672414876685634080433880078175052806399254108954240884504067641253524313108071844619364339807340337047028015311600635239243644175840046178638147592635761164049300034405530688090410714951331949260124479354489726807977352368016616816899002412441308552705482962606519337753983844288298604091176386461189723685852748921364292255711455030820009963221673385487671880667884499949087214302202251648514591948395288294644779991115230511823104040733348132377868226812597668760301217457692584353272893162341710485504926524912838917407604435854104443622940112056658373783890282428525051278247163552071438633426206829740701626181937828162733345357214796242099233988275637063126831465550685916281206036393021027985926660954386458231321057989072016963421920842578468090939239933734247024756410720600419027156356985315800016204946809908463967421094163299435090689455705536939239222749081789055696159041500108213154067089586917004878020059088024013145050323834031602827911234024767226108265243509946012876704321020018314275480160607774898341619604250945370194449872876781442163142910536233090260090513430721490898623149382419029120152390967886046029699400064878609848692177583956449846069874900389893516138678783912344818921062265939341167062544923808445257361523465375405783649941425812148077509034919181135621579699603575668071652515474415192098815891462103498476212112869139859601403412328492994540441488321263167944359663907748227897254734288359841248844580908284104942938089680117227288885480545608747301206645197650010913047620720919718618142306816346282385902694444184100529600274225018034195160756338635020239750930694668565959665894673497635925214879830128526415618818792847837525211552172285259595280451388502556966597066784948010758523100259117045791845599901830682300477467513064067857335191726671036082717017490761023150654563400217159388771386970494947385220251171408061689331533808250523929025665175007050093754186358646450148852608427426762779036237374126766505155482152591470714502338357984524698479546328930291525250883584658935885133670729776201606300004468513164950707678170418655082547417080601763361860977001200945048820192193475078758616641765043616749770253809696039213995130152808427155955720409534465511586832717179596021531622890256074536111519984119595726272464455899942322198245325428553973257634157449054549107636631051397239110673350777670980286044280077011717814335386747747323043607000118977118849411393470541509690979670283354115657649190687459674843802910616340312620609855134160106617080299583461147490828384844519466460085540270819398269986962183894768437577699694851394462486506423783331488122415925194073899610264710856444582594505275893068037795788225732171599079346006803295473851614932445201469895040468278790025286109703520311812339927225876502974596217565450352924416084337983360936212588496450849041181916500428432930646655836215946097169577617680812455392774656464317890215037362560521931648652875881439568821297982290528379631861288544085360115599885469114993796761440638166163954759633540735851802134141446850933020789119327292447157980480015944585250162494864685551993119691673519584625246701186412145365566517293730211078432833126172517446666958719781074819073082240553416701402407717045373719334237213876645043297399467258716015792924805578001177550872634891410353408653118795641199749878055610211909944610709191412666403433519245919450051321325918436706101210939379895398355453977505552672122194919587493724978349087343316359849501919127095284612840475464532352257312790444273781569709785620104398992073146914492244696628393651766708109422975331156176255176800945382904277627149197162039483043638247001425384931561576618693630216737627425508562201269301315801392522555233530913284721656013131003808580505249773717668534750858826782863551813381181157087011750201272565017699502609437000389928846663861798938784541380100592622238180727134799254622924643686294598500302988825399066581861368081162206497257833723371726780078483965562473595685567116994679369851879402933362208221239876601950645386721233321506309690962854906156024504657872908437917171128789398669038136305310554249725051833662416910172585175382483143141952446318893761246911694212741576627371795354384005893644993150433493295259267230188806480059182932162471293603544857057491309242959657570188963306802539351886787200313619057755780279947489171915378320464857253212989146126832142553413267870224554272151508518719347310604350085935482247198301288583726326568937380439544657122173658475907802652571644076091984585520788549198975116019183608082785154329042732100197054555934719265586072318420658832751724731815975201908550110980646775350977849697146843744966852454861039914974853414458675900590359842002348532386280492024902557815105330401392997320525706124070021415126097641388517905139262360387620281022732101803393774226732796071230672545930152254104429214334467588785327496419326766584013807057678043913035716775307858536263547067367536496307303831125486403609158416505146320729130708608266076963340381121132848053566490020107286793969894930058904933769075681984924279130313513366124089949672139584407518419905941563872143643352829404876788175529728229880434324178657043917108834020560919532365469223868425916821168194948632438492489814767264288533580611839252317645169484172607474052508953530035311519943746024583635512877397557830928784829027866905545981760294771472287724047898509531347489223976256619908752241990770292933737553265130487592216891500998038835673601556539111382951579683289939473967557667653131079310167222311470283894915083258133351261373614216810403218010119270863609202886032277410118569745577274965910056544374699556627022959601215315562653295901165397879778004765426597284471449333295668654409976524540760152832693987201524629167772451832970829101179109914661957922061486904996672275993776327952778729356992069126876547293464663642587932942316083810933026168818422151960981112095734309058330855106314990777233135302073704918306722267309464963737269803333718905053182217282333471307220222096224317906637002568522081954316946108762600759183679622896965231266928409367885753177236573010122576365498126004884295239075298071900017505802782284299907598005192845989254021160853004554173978379384297617517364822736832404516344881323994526823705008610901067148899020072734992140557796979142812159727460138037817965495713000973892678834024879774168107152692631640181560380733242661099750126746641021353272088121418811637613501700354046976161531671197207413496442424683740936941113409701237813682530997160992675626762555272804267466523347418330482116602702321717952179010228257358486948204997466975833834309957124581162743128043958673443772179251917907515413637776942936605764482414297980304847436110805682676902529942820992046163810246581856543977958434015239096697407726984341384854537142391957352460707118038177581187112248233378108603033310137646326860637978337211562393338764581075318588928764094816085537706862858081033774645929549697645949136020099083485321866090426664436136397707656237756051821995084531948140072165345080861373359874007726086334682698664888744127355204769779246396610280362444912027416530066717257294531278187026538231922306894701486683784057207956681526062504288805752910074732705188878422307262761939142437906332759031447188186715810670373270285589358984245260373485136766676766563796932940388318009145987764796596451511135195518272115061314186396794595905936120440126283439316620445471316348979179370119066347204005336646920532050501171379395334708797704119768342360530243673192467040714112960077412631035762063671552308846948568986198909200833413273227826028056215181567292153736703169105351030245003030872037659285663243845154918662363449578189451008195832135756153409351609735670167601201415707587143704642913186058610601706476066303027708915998378830809281010448575398149781009111305161387145958954477040009717248564777967363044110260335925167440939367073517007768080922496813658508101595315221607015835557836468344907237642013752491535850486700888257331828779638685666055147368314671524717374793537938289609582139268457718095491355497870554665862344516778068031180355094807397921109750489454025998396772126603043651038686236470225607742196513206058412170450864728735247831156089463576101711779705318543312336805283207252061616348250315416671869883204452653543223292616035313921643694681066317615616350836319719384587555556744902368114884752426856254307753039126552362251610027176804713026951032276357925959423690417534054404873989805039590238033723297901743435333364498571787452586478377750300261904885885246859089295440028137263930686088303186268898435906740840547114437019506740919782088490249173467684632191712173624605992302462383730396958080204909124026745572956331525759269951323397871292076807594540009806193957360435673215610967460226946085461182910152906213290288882361248304719138338553217396636106629640448366825187221826453439720886176801438507530930212021879208284736056419869563082308856146105912971752836537776406474081419848020527536909225618820430707392878254630656196813582364404643814061381057626952553986735768226415148116552939151940305801451774098599820761452266624400746416351898240562661131312396834906489102093024066186993025574329703017650776955699924815109121534658296901379393671443785728468068814796206901177378185442067636808919240934727916353664356126294695648580607081124755762019355395705176840508349989485351396046376786106697771005450073712375933556325989562321514812572220622630754245243208336923223585406605917375648292430020046673030318969070134704473572026020582491553605984907799317772816483943167360390387528320059422228858111466146446556037607922857832435013293231398648175392707199607673357365261388795533620559153469383407064010158376013908119577362834058257172972031099204282080489905031030658279665497989422002454853254694464007113433543375800336891924451817600757235941341180008905491723601215826701045638914561841809851737353339505963999369790545925654740479915161852010064087780816212313447349700600840064456695559395020751224741238764389908130652367142219762378206357747049461524748569352909304328970576724470976502481312667441067946798478591422974187193755036136182827859752602599666511650366224868920472765067665393775513322676663627355370807554078146298917973254265162880216451977598614565436265172918888838631701610202990201694126371097150370999705220038129795238424431690214514415941835582295958531791583958944418617653761400519805966100626616341176800490429727549393183179777702987235401545540061714169346794414161373593715773614445628410579198588161620468678598755336227295607948679252690476381336804719980613009997973535848206128653675451359040226650193453922068243401799543775890850747255361001983442629355037559984975139366694982325105359951948563717513886128405701976058469604774988873868827353524751431890961950216461448532375066748147991062771266035130975249638589590487529402342440621839811668676182767293047454873984862437670991924919069137798486110707994997074478375398387732209454630436740985343820051454695928607999306227106867149027760268424208716490299955631982488559450120560538719209693788662177074013574194886953157404048565389145907325443778416334073800378283493233726621780376882439992554725006167791444184004678479359326069045774656607340554051099778357268455377842047507343977597402365550259269919174325878728354517829401541491800033015985421249117344846508212729578398564644243974190909235806304100752482000590747218176753309428719101538650850173345561230901757818946032153901394307214699973421640998402922419253045835036347002708781763569021695297714601551920896277798626537102382397055923440483947124059423115143532798233436567030095716794503486044829767645509823864260024997372869547218139281137664037034164329988866165750374360806189008828460226115117036746958589929710395707171722847055178301991961820522411798660376256185044501065339936673187451782898744073763838141707507973357312663996404217150675750961517093907071726699606548826501906733045714506223947133488699165458345656955287140084376766356719982931489672849687558159049878500995232751265166922885652557604690559904760442723065178390363085570141462936785486266169254828902979033527352153452698350626028474727153644670104976953558913759771144660609433206609633623776243027341308020465503394488989218262733309541469247241772786389589095611816123987973987780917903674661408362131493042802486205190682709364587616490414810368268965198838884692216132088910569873827473812451844416783082309468258819816923085038365453948933408870922571253266872707513807482372360608884536737977005440262846143319008663190056308187300584400056021168728783939123599136555505996021658549227529687310827352728974434748652701603681881214296471057222811700419901459686421479380262664581969392289438681327017943477539925249048294809356428616587048085579178119454579628008386572152435718253303819956773906911671725794526627472655229625404517815096743129577825959212489152921076804004988438335640325910056358806571447808509254844040303281396662753757175007430466783829387793049128473850003776843587078100888713139657843595680586013591372472229192275153877152956992055566614181268673234257753188845537822586583872925357897894703429573569821738993002361763094612858685332139697851654732498219415011539268221307841594660777138941725095309623969506567702910859728455886435967775957211574101534112819007023504994397101503943099562187035523471978937675072870337333914590512189744036806815645532971941639227735157905350451746161448010850758118264960745004722688351435868743061626266000248485741225146482886631578600814527466425055218693568319396242750096502600285451721542401579923485471640605132366473381882923536675105924576146425929952418339700839859375393736841870778674003840520010142541597820739355468293922405320755618846946871099916698607556958832559953772329458019664320275635428245341488727512087715713923985435241487940544512499163439660276944582103135104775202428336443469106999328136972098983249384853371672963539257352294199317874164995381788415329415697570055882505024739531781601302116967041042502812208815969439551300091187115389825584642024840441252904990680603947823159385058457388701649927766293050014029242365341675970746802751483449913752233064857308234715268693885015196370066801874112353061343128284460121838662887309812244518780589342588063752021676916362631144402974681916924972251579315504396007544451993976212789964331482671903288998764095012911961034898390413913299938305780411041132112032011092398409149999640965675260067013174409814530613272015202199700209715265638846012426853412104449770802683554336003750178645278916461208406587116223771498515995731521274858533034208318172625957200690253627295185143997348228235034374526097810507079156235471876515726689471527708400135557684728970746647069864738840548510956575553597782663105366674160360007878630284617577313707700787338484679869891108798302341815433725951289438513125126389992119692908590453171077479263646242068313309447884611097351293291329598696413998370014001699976502392252691501509205031612985587651697736410953087301046304889994659094182005337113239438592523554874796625372135849034658473156243459737421251090677903959252144729214439231349992969177959649165480411046057794548012308227480400374422611023051534309850303109750051362987533153914746421465527953398745103554226642895862606828229389161037756414913538998910568992036377867201171144917239261925716892180107401980878839880017270103720100089348461003297331348451438926036540538512354877531686120420095935795983120962145979482067246594195529249998829862983202850278419998520852880301925303987699643260440812087148897820962727991901090610462857940774093197817407356997876093100220559230370011183121824558889850493160381094290762813343303824553899321034773721748912042411779543750125052901184087551061168744712318260900774980201055678220185632836694826772399232233057180834293061307952570385006086152764849669069525785012488996423389228179887556361311804596070759869775657203670107815035720075938630801990490216268428529429803028008902654002463736839439170832563214712338790567072104338412637738326716137122688706332053594908319534495731077149197511971292512913854644064557624360374718513220073922454601885974056395673172808957509670580220995684020177999731295140316685916478668934669072863270039866891856922257965188847134790977530506676524827147058728554551368634255962957187325145630476098684341372824908021678233518903818445752083345134433255334148679906118198778444513352795640150796594069504053161494125582303528110186743325696435363232411484197796064611319420834128271269025865852517871666029496122034289591807832558006422907167543789251099568598385036763212289374204490718153689250753603709271325326782570727709472897377251057439394941471407800078201834284074140637065582718813872852063282355938331576906897780382699047755786089123224578585542011986651348772584869412427745282011108820421678454267962762697966475984673058443074267916861908909575862457076221421803694986564152701223192306335777843641909393892867193361096829247715932825253870049667338487500447946980270965585263216476516283647842184027819001463953993877185440675797264005583335762810213456915157923996184266524600375965280576176025600938784267392024878734363984186009957341054155102668128006230743894507002243637433461384087538279487400452975286403343867402200189362017552822357934510357734449342980021962340032557173626289344043012875303436805063878080449475785082040951775008147049162191747992592568227980986851463856722696853381714987904709103870934256876557814467393068123357283836679089572727037004590226266275391640275487477835178294584695358715004883578474663637915026543009704767990269252011169721224151185146896759567920698423607652690675386167162117946401346161419622518609472592151948900301589988952869862341863297022677064033648086427964661506575916644596281322730751946612856182162045643477495197226209711287948755648268911646044158185878182894210455367756685558657923409322091968003166468840647089245652301121578316305928035514346998126851811523036150554762568602402579626568421784823414058231989907439965734737891856709616090978145904429344785152936972691196938346497674717183676481668436807993474229640793142107918059280577337831392085657970988804823564830527994372288091084558203473120926316074634754486059055517810063941576334192498310142329974607289090239433703175546156758902291931738899889262674719277996445071922788916812276993345900477790735641954722662480822407650947301320005353793989469348524255994168001721973244393357096340653804744269664910519327138155984161902541520502029788368106431083606404096815434058562592863070135127517974231008203914507107479579687748676583515716687357427067470141714535153954328115409172717408652977060139361765389413783848483435650599407848110359646345272894512577882321149687078509159172029851422769456618027786515945531686795948366580010931445411511264632352699359003593141356734891609312342064296665872885133205701304323695875108821862464085070761177618161884367205350942120488976051038901792687120178154833063999663423098035933528009514910137753747160242632367603254728421969778147563426762042690206769162388007311870728092728952044103120865959209706785176260437740179399195118104314403967238872345994480989350061225419752618683851587737011351880272211914439523855847418651941366865843112894901585046444053697805328926152612920270884373743223837539645749106912677131912597889761765581984004143510123264101512952577406979125609290659984379980567696526696542165432090549264149540436235737811317932724674461560682864693639545826237952854534529076743690550666816126523975671839379514254777398719844274934242225608769237912625394359820747652229304072496166147081087194546361104946014479079450600849711078591394188309176943796153082403145823525724439534876663380988891746766931306837714556325332536603146364566330760047577579381759670733645105916722669398843471550529935058049378719127165311646773776402166927189206795005702447957188363150473901675609674785459916682628416092844444254574807920054029866074686284049779002794165558411427881587735146245805366327056290639173042158149201811385231365612389023639018816432948914143697900341435327482309623314115453589173467196581449538415059599006887533066670614189865951408447801960694626159152263375488038608586532535015029731434881261983601841484774019094268677971053892498016268578134238767170807993770321980548845969294372202373008548471631582799970618844733652243636273828876602017979521278021975730213778185527393866416222389572100062390460183581686200376933287708701238562203951374238157491744448562493454989293925298223814399167509254935736747656021872316874572086414901861939398372910070316433798727363913158468457865796257092002024250185340155785323925848481016116967285885336490722911030141215594339620151946666342917227752634238296540316300212219782838116486200333665338722467607236127564135402632844947621348698598255858086674170811442182770068890276679818088852427718524427429308490610679000299669132189280355281344779375277963009187462364101750974104432642251476663121481600547316065368030764740492447703318564620162173880138998549888815507123742933821994137380254733481373198989303898096168723602946700883232220118651574927243672356371732669165137841906717083484180681320011618457529251434288830395895906529816506119923836539413798771103275177640897634514039902443867232003583089610280876708319825151704146840523287872702925298884026135004687352233620950669716397749737354204954190543575879563990843957794972141140449160660863231472446322596753355791448499816322089752078239325504182407037731759626968519030387755904192293854145555604242116523352171037466847567346898962934917888848009956027274069767204558644685392023842615842317561325793418757209319449461784352624687801760694610611041539556850085877291292784291361218992319350326688304825357681110958527608805382198255755213060423383602820453673445634757552111024052994024627723296180881885736513227267133235085266199270668272776172521781919889261790601288385618060124191749699293829627508924861521703202521153649765287494171950107607022457992729398657052551455886499148627117809153895238116864958717351980713672226941398855277182855320720439320509098223666230148956469627462294880917760555958986400644749475298433454382168125912118022186437460339993201949957975033383938599018271094977873433766724205182099492565454749779471507474517583540627265061303382852519462708579768470833336604190284379856180922766548412714162203568018800260424797896201534398440754677075115138707434581699904378869108197701562462553592305903550567861709048097955118425126857971232592653474005142498335107123196243615452505288227286892705804627443311883781680837263245934035974984716471310679432283184654649233260026578055710581211751785120575021871751538082312175330461856298927245147369288070886268221956035731225209166836690590919689633635102645558819292821135365623681019873486720418346115310676360487398613339055203021196062373628584574163289841211932647554030611862352426622507220749659302641822595047733634986983711413516884784766930397656288164523150447061339704327707590734229521985874158016985150251601533284389398392015791857283395473971853854832776634940464954458937382202267003663536995858146076434307971828378606256063008858106752402830209023855591935633530657695897335697869687168968304046112493018227891695461805629184086708059935256419934086094225252025376178359743544537374707334985525843087001467231681843577526222051086727557446814717311913039592723673163733277370308759351769076987714281049142396929416522383856048081742217866718519762578522671020587587235782790236887587457455892678781426859800679486905938561262314460149695206628109597860477708944899415073868693826655313007448519773710128379783590809652071230618767954214360571430124671650755337296743874059237032628472388118195182907758826100896123736266889451873915592480733919664148301621904882120430415662676473171976154266102527148410738554727021472124090150621544201867616559571657575002060971330815008470392809270525889843408213368134963317805182857656424569643521856318679329101248091588032171664917402871232967100242198900129046951757767405910442403839124136954681089572253132403036898597844760309301627751139069460149697011492081584444012390570864782793728502998146605186427616959406548474133322632779355933358838211810912231482445357569748965581965624034621767213391411299063205332174110720100375648601262186384110136198568739718031955490419299139966667138308650961923497406080668011466000500456471205787987501158695448668909615576933929598010852324197291528371628870707795722391506443325445075818410409803994544490482378667305076348417676061178227687584672684511074946648139973231754529534698631775815756907706813751844904033389240717377499500633563747579957675395854359649523275496146700966776145721189336371819243905286499304821462303452546343561619992438870160322891744675405991583152280789731135563584725462149506567253766684608926803651989382845021974908031230197263323475503722034093422980009556239348080221695196538255061813162133676651708852611567965006728378533968394074289121103922065030926202038152362384000090575203370426886797746086929348377463087515130765961737198239995205963812489783777228604105183826842319461824239419098617020897916714268893286449025513120256174210633764100080098827392832817227617078141463481907624663380840622588620982339155585034899081743561786865261622265180056657107979638629588135143210574430177223590888580776308343565621915314110082407392873908519092607162646459458648104942482888546907745240669005155403568885171633987716763715375241323416771803106614084260943687599933184839631913940202113620394734075629752548155484102693142002291153094097505389071900586856640884125694856707703547769077865744037450019967222428787978951625634754220057400763170873464572774029054553599086678804585319704503800757725238593312579855697780022336291141975778604821255768231305694617822443860268418004301853901362627404448297176501552558976911386278321254747578825052428568442833193886542215276274492549844273813026545271048945732728463634625147897831328541227378257955905350542269301850517397524674354963240397405591937367912732038440279064576017525913537080018138176256769250788282951052394581126800111469109392681279999506473828952984715093284532607818336512792027933182935697772807892783520221070882565282333924174304866668170679659369519884989504685134913023159674475689357132275934309740759037619631319909454175024915429769251597364436543995103486517961262468145002666592890377519292968967787311308995607508922583275262849966417370467478454291874919016922314586352168025090424716671147118734693625157060588502811076691539266436824093137004742806309329640431231661848550918833809334146441684322799116843686341596899492570850971603206789561907008045923257203015313168894251078759158441665024303627472385765428952878222222121655052886167051645249482448873489326796916112497576828050906220172136745183321741325475743950444301386540840344532010259406146530640214611489738578008381945302014994179536699732451190834931737383583988287192505171950868402446238221199154195915540977662144444631214159563391680399608572958967476229751287537899861297016329700531624651740152149062839840423248914389496171586151448454149936022534097341820826395012524735568792109330920003287135625402145124871254764050252735943228804386823872922848400502371686696734444815868186648334442634504475023951197572037594364003700570789922274720974521290632473595051382275679026312441973381445185874904401485504888532677693289533416479271319873063395168246423630075242643633219826337415775155025459447837875691909783379610789377572879586365202045888358612546075583204480067333508341858410429300974974406199896120175790047637793194882253038400665593531715980809305546844516621669711370079208539722532435559457688677515083279667093971967091713370362087207032793974681663679086362094741970282578774441375315416561035827454212033311120933323528161474538042342471643018514805310936619133186382070416848766639147176302839214533716690006398225387144180869649854802085010034208655920599147680169511251352171906617864569232108997273271544733661705473577487639045327064379707219849470442272286492616588871122060640120631902982121240339280458879467185407630236185450950533951450897679678822395650321734373214100081454676077222972189760404349265468467134056021092612585813941388116888291051300051488426077957181984068394664961192070978787542001534318553300090421458774446424613336618234302982969845755543241746361040318071019694559519938076369966719477169721347031838183512620985973182181457715583411152862809474647322714340156113109311326332222302717968470265861088422436683394393831569671857949522431857147909385471687106462267191903239488182839540634236854038364526696367507987330693560360221727945473136745487594109700841143387600214321621536604416947752196488785973371017600006203284457604216292885402910888363762309345667695502142013277863894181274349192552014766021128061953797086131724822579018428751308655833873277684921844440030897320073041309547526829511765533231512710832067245164453229247072096879151050555046779239234133339365576998258146798950265693655324660562801425582979797505887657612426075250949634483434151283459200026056207831037861383250317677313236121855868291362732957023833068485415116411179812124040884054377663667853623863256686651497522930254417518174502612627363633302633157905224012272649095384637584210402811017573297008121070732367878415217608158986753679182254360471901390995227429123592514639853705288215896030779521851950771635579034734978378125947980453775537693163634768722886369071123008891519292619937876356619192071038582555959164577589920406239795182591716126513460471960822648278168363964492166931380370737366072301886596079237395531621532213363666324604245003038231290228617790170715209639121350261049587338508907029043803217018173126415490408777557422538617224515979715260600683898559396269459043609544364500973938266766418183520279264647318889052123820737091897936292259272893852880713313538155534186519656553733538343117904830982862671120146896719129987697580065847343873805922911930509888487208459589838196886946125408593896602502777884868166046607674124801906048195025457235964066923415124791163504444576980336285416112686578567166089984776215316134005947439098660297818066287523423790064418717540226484438948152253736497529779123940331860223162391595884251836153818227263502561596164839720070292966510924379547362150400283307451371907761411658004292269582163096479187795307439581042438388088931901597398534884656243834959147208667674572727103935001816402553086313040895069718906999385901357588444157185801159406009086190881945808879664383674827246783400737392425162621114342647866872545076754099294452885753555860931977903739161171887591347053020624581310731798189201796799230701201572630303349183834788835528516248369553079238840308524119447340420049437925034119649138549367775556128543085620263156531299393402763089479586573049581796187226466747761095715537360296751387670744330337997397599880454127101108341314285299376586442905977182715327807935243302324662549464945124303841899680563159472571252670238439664286618919397350374133576463070084106922355776396030871038964409593102377348056949145408341528053338242528975020715587467292651754057884722334846660811275775227101264980641915969969551506675416312540117291779213939739770859067890374076396968959821706358552281587495576160258909514419717174905726350709383162122073636669303843114589023459982344445260588368498814521960618856577118779912144458272374428761265280901834897309096386022185961902086110933442582500133575293226852388635842935842268271942379596121448521919226061763122236877648676038391085617193902357432418380067976960084348049072220320362549789349469716391831646219290588355995254150944528788539125721443370407472207544629692427867059027981469420816781430462711757339793980391460089112534071600966262392047191028068405353720457615602854886683232241182143418832698708262456705350501752656760159663727074480055815244895682796263513040845796523554235974017910675821271331640771201836433358994337293334710751871274048080616725952631623194932611989174379156288930211032254835848975621641206747654378395772199487699385689027798779603923693360082372819057899141143645947505909158027656875007884829742775108822565500645853977586603548671775154295279292647565365298769059833709047789920665512771343846574084222393430475982794357424755720957904053476453916560594605906451317285244537130160416479982255758314684127151718272904684469515934567608593559790999587379237599037860427175821720662275355620089981291283689748961132704966285747831228831887821972236507013284569288497185580189226365562085916323461446348800260726846734486513256012684057714005895996320482142342414287975517243758959880882018008866356388318278516089553807080973058189916662998575807938010535844291163490587945785102727626916221424945699358573187387504098747205614447592857124004517299940659477935215253613943798596018230032886350248307659935539325284354840425290708932562324428504194808019702682609158828042360071418345334672289935291909633127221900855161465210943831246656330780993831625198170829895082130645058569758466692582643783338547362202823454294986781437694912504088505800387290790497523719024757556205129490175750359752122027082406326189898430008422840522832064383432372915905723641275621135177706426713476818232859486274418474997827531634107485917351800197551160897738568374227976768825672226301030410618780314643827585262763143856526151155478033684896670589551281767936783307792676363995712931541362283239551013708600262507943759577203002327471025759560789606876261353845186346609736631505490867563073999987091201862810362625025388124318201633525241204338381616281784162194354357586176847842623807515574838948936899874642288908720004702540521372154076000816471416136124617710195935314831976074246485691842663415085711418929106576619886612218288994063016490100925032648099694342479364537217247063107156449897909960346724489201697646009610281070246623658061710107057279607334188406255765316660181293660411882422026246875061946092536280015945728649636093609783391411335165937813462494609952749597586467122520327748843408695904690909554709763645340035815172155794824361740506262547612132410649497022959264485162978695023148604322401440017753098649414018118039089430000761021042414574396630781859567407353578423262541942438747017092725562860499899935083994990745308104705888432413046527320197668095764000019353919251124996311378485695153101012512253167847070166954440538777861728476761797809721559966060441469972214338538568393787949168649845308138272787927143591935687143327393420603715567086875189128968100569095183373054381795989219813750145626799117651127780098993906975776489531939705464452073185398893839658545349190135916991171145552835620768948903297398430627777421534419018966346151819013725035013142393175887181832753650304635812921788863215245086283443765489080654033392677983755533017201047598621607746840947624778436310238463911032697059680462724824739823298829527159758533558035107655873417085528092042823490001682342914882421451681616906996980012254967647399330330711317639118350365478330336986469039905207642074226935911589121878418457375348523724143011780184760657561514459978749675618664624098982901369760319515037936217279373114032094491435572481980423647292960039398975611787028972064227970168368388740686912430805094795274573965849232831124974941047068389699796849271685866320433640975249603659104964699771685742340379262374630452858959583000830478002695143310181355508576240553583499363576208310822945595254073797077834351581779219290701740681086905720491578749463946096029930420587597519682224156011641696010236138146016989930182414528778052258560711579585572504328970987110224995073405824991778259922424933361559333977949896637211053440367233819750568006018354839201884053563006528257630757146797301524990570127670670358726287139299696225774674227146500426943728959364580793514505065307295335235764335024868344920672746968228326293871293267424475009319748638409931646367816184873913514872187444528304940961366381350760367319928174017279251354939817213408006776293789892632836441615059658412332952770887352842721251701127321905259742381678479511901752026416439303414864381045753005816757224740540956599930645752309475600806868986791762978657431774199449453885677437526580634563808015340320875830640105285987663860635934429813540424142604650672546762123610431536466377772214458805966390646943377474971231658492418452207025196013396116350282393846839264501250020729099406981545160300850081520545424480671208589104270069024598681751415114190915734489044385489893771566357232875808243834256300316506395426747205553041745068502363071083275078766780656908312170536001572587740877500132511088830078037149979470223934974289540349722202247917449151138299156304977024767034478358967640566263690040958293095200940704849963014577582410991377822324299012564483131637933949390490740379998813288246996533697889992720486561829528006199454284921748254299318021799897688351577943055657749713130043331637717984910135493220189660776493725470044881525740154284770771990607759345257677918511196668519570381850141114996777056957361048971442600890872997417034141944070228438863249982819768933559545553628262476050322425248982768566545619396918166698903267427988057886609337067110100205444849762411029715125193594685278046816852413079905389191863568931082226676996036925093077501491477891253770814416827249326942209276120978340850485077834200260275541510646207948678858546753902086384426364888527088367565245688175540365417466206805675257017980118415538498424459121818954106095077502232617191393559234608656166885590943114520884142936075573932048560425863881767153642937790866202120062169588288366715784495955978029297462865017252901759832630146976311868055502657797367106522612508512656343563541702392505486659935005284789802353068097012573090003753085103957414468767870388411646627088736820325730518482881183687472415503799153277199444566879080312751195661806822802888288104677155614567281375207986997984368527496335681600586964708566145049986701865969752273196955675350235993878727518524975557188163489359491350482699809593188062438939821508781394667431576594568804652935603535535711916922937650501826103808789351064275141262989010976337761786189340967275822177739176101839062863242475978261903356213316760474241125656005423043661508615479862420847540715347933243298900252766349285857388342394250619041655968496508878372680316048713773652149676622656112741833294701547035874761297757588097080672373751579996938252868347912003190768199570558431645170903175857738137046677537974029203849683850210249169740399630060697498167168568736059830681935701005704705904207578906020625079908160538135070746060153952116419954952780397864734430407992590022333834602065604290029897344789610834515317807096542259342357850132474224178246957544908883101920505841502452889706470311389460497888965482150522060224176183478699223001361225513868981484013157972409152407822405533647999449818121675247867794311515699746146245568097205553724133895349397927236700252585740404043250277902050971876633133893988982862800529774865626969014179636989834911588211256905195049424152782288218528285208131117633343113379283371277783071779033262515710657510023458129762866092785269649940105720124848978783809264556267308171991237695188574202610959458531962350956307743331642048142460295207968935429519232077273202678880855390642095609338651823690191799554028594870586989681844471608827311628521190372738867121036154013740066844854933879871706366088828441911216440360001039017282818755367097573739821130394173045009898762907906938547859900014119093823264741420587999513219358269856229426601235729929035926603350985216068022690838868411303338202485370127449533652293680767482058686346945849011806552454009014663126108788612019381531232805169739480887655069532978183509194459424610507575550348752224865527351756049013699507084419423010383715120997207553334379421712406347726019094136933797859735454789557198419944323835075729261879556288752169926133324445894082239332216322768378618101982232508202104281470859218515332491466431267288397895719999092701878029282057239546395402492861986197523097072390446804118349576631126098473358346704175128088748415712037162256364378137178739305222027194831232991382654172206101242779952661536819999898670799504828342231948138102973599476465385912536502940485368860122803642111863505916474852010094572078814152722918701405508404275016172410007508873461310438810528030029935200138519249008150035076895181341646887306932865071940989984367402938661627009064902781877459547628099853722113881236719594098605600426864575293522077253401090505873224106294638399312990293447151292346645013141097417989927335114271691182565225256011108240475662314477638251390203748587152543347621316221845917235187929174939205593624805339830931805022592540274475419767625209232820168617035703678012425961480893967741447858986222418749452088441950259487276873452209679179551973255209629489654288337405446355539960134520399254217463477457062037201348769648790232949015172871549436544264683071507944797846968874493884327122531576765879433533459961054295145084890717166453705899224975339568330833529621098336732207331654164696525669588937625670508459997973269802530234390290609816307760957811967059062884819701570301416101068006911766684773182388060639055362860903600993952079686120167987429890619166258423646342440272675294607568251826798156966954577448024382334804618472554813265186084300298053610064398851040119379664897928771792362155953102104753390347248299570932471684488586330757754598945998602810179834045404166307900670389367446427181197988672313285571563256143002688082316274751052106194783188345628170162105058676916877288055683903713569861118861672501871795041188620709260937795471866968729052765991857451654383956755810178138665639489439615304314520344624355465986299443713660598285958503236275001986679193640573081040555101133410069452816214461139284287771512973858414844371723125130664843987607075691018360835056300395816327893860308540299104943192422203972307370700709344494560748575552999441997895384180750859668540923892853875197866970110317650887760680845722971337205917249411469727435022077448633708496055146763079685646049284348096127336928372801643001835834217690016136985203442975284521444191044597859498595858237572695205268787468414060065634919834312161974334915520969483842267322412138146852099195227059957025857468662092817923163166389406254426627503807482188190377909607150786801154114530212527957399766374554024353647407130769982245090477303602019695349205045667844559396757981471208073049451082668003999609505174375162537373267296630750876695243476794522649228736299389461671360669050047754762474245463119174919315093750036689593292829672891638704830742783911340632827289054536702691267059108226256841188077889676776845131703248196481656290162157968558845276527793882766863873048379997051034993213472153569939188988159798837658724259287989441657346595051934653865032141706083904478370728271655393740758972578463080258074171125678379446565947065181092911206397338467667766511289700706093472099865589351975343201260520375064755656312598765156971108462637890392587680168190441050223994490758350982912576918293372527763745111190021049419745539871353249621566554299950451942645971191318129615499204322132699308868339366277470204819624976224562892324494779216496741381720616023876365762816648673696894217228604285270459119542353779370185097760898642624535975130165343502577557384959911171937998370766929409482819005426791210339495407311705192783590493068832001234383855665017355428741423060958007859809484502314597134067009094918367964833493713345201374497954379581832743264877819050587838661788762948994023321605762610813001974068505986561139927937994344365795349166456889961298473382637369744863856055921368458315691716248921673598651035891460033348036382513537536024855181687658023986189402796766643831285679966500145716991678446080815320274345639544323687789110466194210377080106459465970753794551210021839608681825298830783106601897342252552762199588512934028791458086733290579252226570439487262009353213904547042804925808105012444367397867460296473131611439155028753800235230304364514059778238727284869872259743573781798524461240731219261752469708080677346159494582618154101675012549262279472290596945600526596138406497609259756788362955171125450220377619489773352677935263834494527031247631705760391221022623114110762424417808984421576394932491316888418981060337098055328600463290999637902243385157047294163730468220932527036747027396417836561359952619403890195359667491811675966086492911627345796055263787692487581107504551072655303128509682248561387124831657248249717216303175531849317762442331052897677354156100731146601123706707125648139283596776360898291304653941072527009539801649163821505129898479805372144917059805566000484185325349106867616179651444181404255924336353264640126753804326476146332365305600371074819526673059755554761037039098454037537750382350057763054307063989149096011235701299177551777598573511116129192280741629293833821418966140189237761796599241799443613240226169867450388685261821493055970471480744628200559273028373042677485931758807093548547994968896563289632677025810244698301552739160310967031865277401293810799510287424736080807816923045583567018269181125045607138772150025047926178450072155374395445252344437458510410768231251879099387415884490069546341563321707568153813331630714041872702414867057581849297961685422230923884728270787236579619466434027952138756580454553347816660527077057755283360056610438950737274862290073141895000559405515168324227788020843368408751012511570888640682381420817428258045838615229315189893987822904757677538090036938328387927939561272041099663262354353644997178445533089200855552567696108893766150997494813961613075113186019561401992765677381308811515771550921553760046360938195439619230139067690171204011260702730712580635698332578504143203550623728229699398884095517946143970967587521763857861334247257261219347437024350232967032555360030488742876378810637109243845772529142117008577761155935737014208306856877981420618531113117397793834052466081519747831505044054018822551296910623425981658297968825576285770766645082525726524397576906064458215670695392696066174393483931247338593684492880476605207365701890550664948579259104578520804053423157903471085938806890788414968450660033435585345094644586118994664660843659631451021913712277688257034112706659835078512629716670514420686212347991416828940069343156149121467196850326350584177717012527751300862800591137406337504308032822160219492659932561085515301731142186957826840143456587174588525902371518861998488626831473735455875427591594770270639455475872882712174487808230077412917671816130412122056690619410965710846468021806277220330170962860827780519768753548360152857912726686604662490448715054820148963215992787763029747355837827721853392764945300204397362376451535542412989311162375044291721575210159251483865976522355873559263928853739265838635628064366334406550123369194506944067070942449073909772379332889146268287645032144542283221387903618854023579057759099387450052765968149643812678858258437239310978343382356500397964109271250384311703171966281387267577225667348247329948188781642144301677750045484086006835475568374033582109922732056727911894254282388730773971152574813728467090794650328074247764513677860402131231246951196048352745930664920806791739843879005296709619073189498144207273980578458246524860075163914623465678676123655258707588947368297668907668578017977926382004289558269033551761565586779821980518753934846193999096946515096271037824818249939320388925648032990783761491663275393383020904097640605301974587309697611154091213026861803288284552309230250762821630010406270237928991393634223766227736808714261331673010747089879976715297844549628526372826863653621439816615028426575089135507757060286788950164201608449042005080820317498682764856746548443925956605488563000283009875748585334264169281863160735146890613376900960293642553992417806194778611772381717555424477183122343192773658208488323908383221081272279710308269690944049339123493609327192784773840775578575848252035564458386398297746890476728203589733390696437843193772423220144604677409743125636955318438827939654548127927620539869096137164713602814920123766988615278130386571447292371622805138360285810612665982586176059681665221771340781225617988851600736247363120280979563972130079227326956483569549505299346275345158223963899154070966183518788972936216259515438157174222201891138654987186276819351926562035795092689916693765458480066806404087882745006310085728193484850354081758833055374247071689478887884309701974442360344260019877839394063973400506042988563036745938910530462041894729455880291032344152776991876899544149971832676684279603548144741867575024984225004118770647210756057076386866331436988418798358391144685505864449776848643540744109103020707277189258292138266534975331195719597114834529383020811606006754095158185700097664696831198550587859460954972252231301400134544431194884236151344908189177628802834081709444276563293436026770238345357273970218482503504446918507887846516620423629690412743163162606191837610155204443458340287456352297073560702553786511683368896138276360850676107773749562287187051311231793595684587090384812829195946036244275257316128460701489412498644980263819961601300192176371125732382572418623239888344317828120300421783048206052870010574478812188537114865795822027797599111578412753442474528898172870349138444703094654050434953779791357315521190862389821390523087886188529109356988827739360017086704189735184858060875883735022926775643285142462594781695972495595444379772827361837643506764409413232051638848931113472468621130723497228871340025935171879705473488120347576813522075310344938552982444170924291576701554072566771408649073179069365022039652268769764936815859628458844214046797622623114201705620811327028976229314118411343529333074972171479593401072013564692396912149470250654652664771898241206064987811068547083422508488344907457981492983810947064737362654722396183254306069841357502806455078086979498179991103676996992825298989777211979085886193422847197005412301040693086125100684670433225223567317755378997742394016722238683612461434657021671520183404191682779460709173542156469353547070185454640436143091341633890678371155186209987302442084958772402188607134331255005172596545458782375881038203658096397109082266132480668018946901294241470606054232440953576491732781114319686029193052086419224703897187151269861818906174793963352940266305316314168000754130182964291726197906285711921994318782411039277355666835698415962632641448994720229002945285115562714900043076187598920690023331086978562950048090719250184616821038823735546587672909442298792221365187726526435167218362373267092485727973035680292807662231780029705639807357957516018214980885562929180529939607306789268773866210632294804780561807689812512593726793853346268453068503522038646487351507947729520165707752287293911507224969508749575108475186802623982832565863243133233939994062331354739261874053795331925730356737529521855667685959543615074964494597824744623641902310692827276563828240091201873489931478396683852205046820186191003901832139112705362348085087729280210401068127486668771348869232416834963827787204501640912638895004071411384321235679787737812875778758039453548429724346743991113388296524994409364079516692577963686367789130994134350350706678681199913099970312901689594447029969627241044960201055316066819952255631778702731873813426958286917679262998518679067977756761971307854289943104656848619522303850857635137355096655878706560035144715078424871094020884150197861898656595720201275327214147145263245869301936038105732213033000888454718263968979656711975389959610277738739029589807877273124866355409121189496084975057850203704713119886045517866212054921159117330410039425236442658037239209275284328979144344091370372811776929944469620874007305404174498860384641047717128019523024777687382828965890377714716603499874482872931830021813810654153803922340105760837648282023316754522481969000835642643158052289778093468012457363437457551419433857754550888493823914245453592987947630425370625683594196877410413485224086584703160358414566377456659707522123820644043494997264495295237201662524995689132852914279199447586687759959855809936755602032172462081802186281638573530307303034657666670093347766599808127463652036729002277508851125404137466011893792269002741918614626930259891687112047395414914146005283611738196552746824487006426531665710627433266048702727216906671195903017245145217985123539308749917652946707585528762505897542225044822186123485272878699858066334946868935337768612236121935557928097980176667341609192653569446711439732397060390678478191943372259776534669599753056821278456499284174751475227946236428922709136774194271411626713440864235132706674387380307866913634081132744984387368358269711682735792338579616979731581939534833730866252175119069396578284774619527804167521228134187431462596422735560756217347783282643837893702133049523251998185993755302601724400182221341033994569113318377323327580835516783364624382026878531624280767070780128698335322202425360668588984652362819886653694333857582456550266155764330088530411295747800864374900009462431262216436199263138916009634511742354576770186136655944115473933409645286542987835320905771991505898032468103297600001697639923781907099014948831014989920772722993722222312417596428135893096589202089663424406418127139586869810933374658797881490861026879075644856962799722170795015405377053230169071508256725404786077849455797505499033582350094483155041064008322601844993894610518392187636618611642902186151680251371608468596860872632823388747119183834374725343784733099473255050319765429598478568870972980030468621288620920037449383225920591424618378659271588957779215814597813523894887596637777535738462623798725361267328999243098622456461283165485233739232274448264001933983002606639075119022325706155935194021625922457294329819132238654125147056206362661115414147662085217833263129470037450529509017910050451575225517772213955488625824797997077850883431508396947657880807597700670787145113413691711351260491669907573093471697488101113973529913323376573756981832409342876796106572660836132323308096260606600515851004670890089641792791917329708821965335098226512505618165249093574701495881377754958037402077397623281981666191496154448943251671720807961723245857788725852566688807636970021517581963880562695365343253448207757385265374860698090791170978641093640125268601335807746550815823401674618265751613900083927885475098567077950097815348608710007448844219306233670198841195928815633963592519744062565881299535715629378523343020789917873340975423787065880527096652115513552994749632525881063242870683439299335952812608870078655544319543413405916374430644493026805465055342924960465903103305343625866104746296618298926819423232502818551071646972864651615327034767803059096247673497982383606044711616717821238376986628779826853404829645457207505450679576799140512803231577120788499646120923666111072872894020213874271630564700688403272151082481375403060575110129329399880945315680364949190614371089821545562686221032184481920010226584442149539894984321883033798676896028694186806088661862134438661508829589815234018479823888408178976264462194938368405714326086801464391796296402386729841424011133325474155738368729814793544875731361773704621989121093507502692579383837205171267059881313703604511651966395388769406839325374551985778084620991737926887015416839017077223143702646879745448586260545012675348305254267048849553933900802260913241589730499643705406376413132914338556844069132112698681521598559108187894936759522657365931313388125325298194467346556431426105221867579413207104408139665972913915696947312026694823371506039977404614465609872250023852820175576652266103482777173251314437282279175707656420328364520675892003740001299460937812715245596045517364831485384673512428724431430361778309591679914969744880431553731741553064979551432463759177017297679377132485147116813796847708377341086064113057306377527076208455613271681897466084711769220264258635748177501623143913771834039715417508388388755849669078626235935076771704556873252889720315340853097421453730050003794859718423520729806557357389892566999458001620328332144249951639106329267600908387484437442281294614836027964329008057359887264040095307300869793654538652482777006453495644202169765266934777897912773042301500003773341961487551403558553037202455953177738248760129435620090536148064985865844059949634320503560432225647325071619537006937378511229426320693956208623024280494894733142458133934673382641988758034728537815618972840591983531095682433525791739534873910694666620541674461591522746753112664293994177327483365898092165817604616835658019667431846160141061006818653664567983225817564573030718832894191064522778381976047646265368868746860389801336766045413433807530163958644542778863124959224741273811720224059367312762768456829551624619115747238255628137463452543228094792655101724624028437093417545441811869784733999163448317105860724180722614740898005280484360202679152545898833286318820930643537865687579936567183503031509989691471529839903566356512275634830937135955335141606303570064180651095718914358567212526117810857038189463160537515377273242385173057894355676114649966025098846317791176332246057032302141178603913024416345674095960366901479075624627883114162039379291400830891291968962940054033801872385541837847097364299048915777165014058027660790669498122571919672288698821393237854062176114413198730040457971907199329645807888071017336678045468957688234158896587832093105751970971516171653574785610312474123564787414687237853977131245996816092590474016046819093858098373306642994879213506608679203450498942654563813360644744616118076363437417587214226329178749329622515255987099495459321191543824915123999134073684177460239518613990931980540633848503633255328279657838156778903024857317584920988955381781299396939754344725056654404984424350591707206037733257359041554130912130926232836025655512109687873989268750593579627876203600182732659212819194020703343777622277807947240601314146147469544872223502536938076164274862555975502346672388212738424507591343103830663636046526007332337801078148624906066408744121001627144441523172912081110322527816567924091605453028413666459280513042072896504226828414345813589506933160161553053720406243738747403349597088900414372524860506913355423143248811823550461901922735519204815605720145909846605307151748127983239793712526424146216198257682538711323304133515855960204933954121557622178469462566514514111071531422490550376874247445390841335278256322416661072930810819244806987915044823851166977985623839373215194631054338716808004032037117995173603454638825063012982230282936230759677043010584635076139874334924834524432370409993902797234712697129469838939970778726515269959648396975190683336540322294897361591343755674262423706680043598807666461979065409094812338206578213061969767839774008479964027521401081791225692958583816601545973802660016899434589300050926290696970582122924431733054921848546887150213428600459125612854150498540393281791025923596427828046948072302903582874208330335852810984659581640923550236233956439975795505422038569921929189560728257850070101424644297963160976558961259886074250298685279405557357732161854576339806076865434990000544048695078721711314604062789012037920976006952124205698524992709297264863588470144062492509323106887720399202012400060767197634001035655573756011615493756848368901279729579117883694013301644524362993885425945777658913577370993468072883658718319058267327111684437511429930648738429796416964538021915386058927820915051188893951072746995104902020477405360377587422816553261259271701115782529532825060224383891632296765677477568427459370188288363755176991083785132369674420464639643921849606367343801575789026309623301742938466647348008009686262136764704966602122691673085975925039114518744224377804920803886580677368512707513944609342869834621397370278483082465321604685227479972391558777810243139073853466815960108214195937350516951539370026897835037273655707227151775402869920907674755502395237756066940857430981890436156191487581962822673029646313889938406256224970183882198673215452359922456837425586310436322597264734627016553004477975964670927915178142733443372324319070526096911607239838448223396088000571478099678485243275681167931497582575689538425198476114421207260084167385940101138409521631626897622529158063527482174683041742001747083088609179871304479435478786307253189827649801031991351893590181511761700066464832617521284249430955062776736636976180254037146161026199445223749101143865350041465925586565242706490771459991089204692515960550012189516267996573642742244602934042163717618115563832655465981679071650950550858204139457085523805405180003830680618788358442633624090296368624738544105212586515506208609327147184191019976935366468540796666467164303634082787989717046207126019061111045694722004604676617166376254240178070460486901390709691573880741519219040259560534804194394299677753470616080643974302455621108985597771470393063486238630283515353345697026940200666671385619766147794376230871578074778837420859407464620288726222775500065119757569207684673121489280566353121555366556281853049990898198012356089954855426299559820692595593647593621603304999138811475372729015483993252656665096310543148483525556164463418913388281173029482756125630026374448843792739939788940128467215242447799525724706181430571975624804582315677394496982118374440198702655064300659543495594510037237272305991854649118035303189410130751927186827752689916051351073818758129045030757097584589527634525070780678280064324934251121021289445836278156725192918068305998747740410419818352807591719839588221552000734816102317802131568200651666801127746490780411862222094239492469751436768844612177091517416773207630369697647862992692559442940415932872223905085953782694218397105585126147921828287655928427282428358404724710707976590855183222832954475919779288925772728228247314192206897133717535498786986806901654623806724629558679330905659281943118001237914569488791149731525816860022006357028883511059528809297627540911635921020305881898198792467588662828384336554591149604902814725080108378403603164928621488262670855230317823807332048600001529249241199988799588648380636432628020784545141535603920397872185038347303003854606879166660090200146148301034683439436484088591881403711716111148539343457628955253577861728991492787641419954852637446274773994804242183341918417533752737270138842176737933292090453063172614540154253565286464864523298144739107363437213613857808503101088064698286796028669614991976209951057607899680410980456378696596211104424921758287119866437147060713485153352164618511204638460607937623500552802681507913430171725830674965647446098386391446172848213672062340612430621186062529391140145379876370425773536832300663998701495506232053719035034637481545444588453969048962494600550075316069172449988467843068057631669929627500698730350957690426893521952358384918915495498239702339203380946719511980741351406004314231028971966294143077387622303321751063830403818763054404820162967832080119712926776118355181860287232528077993295934063089358898016767142522416315465979186573095124158711872491058616623602936293928752302261380693842873170445826663645047809965643033959023015984675684404466367550503255522525027870840889587403258658540727280551670764256131857923187809399820710009342322761917288339187924836381413108051582239227902440446219952817662851267000890118987400839286448279725838253717173732592178887079795135966687959197292912991883280540851200586314710732778319569106123136037284477673229564321464611042707024735649871295419005674914326710782458965881087861865828245108620802417921299414991193837693300824107844757476269344692696047949344578482266381605956887849504491102668943922223253885862596990776343772408213918532708359634192661505591181879782220315778413285846229168050247872020519400746585242025303577528096155183286673076769270586155423543615857727238033354569043351665041921868444685470703169392723336716365665444132805526281297129680035189531851746285493769796266864634152800427215545956691229778080992666675786215657063750445029671904271182545585768082135787456800414264121137355858178993307957731774992924205829116238137410117313961297586967476293364214774988497034607355071836681478917086791324691273505097920702641493328631989471529640913281161589811305003473343210333310206620555492830928457452825400116508341891333876936416514121506238349989077125034773145331677319134139644108714024117326331657596727622309873886123386961406929639384528547816893757245971573864176503197923738788254208153487410061264246166009946527382773622049724004220006807300750962160715510033554879568261432473029067370115923828412650204659627736597764537137731882174096404818753126573970992044116368976514123365266340904354483710130908215785784836453153943968331004342794832395252619567561341358786502161354590730193400033806950900926583085771683325082789850409477134162565966557925398761358790096173609186349473161384655027388496504118308336377633525708079663130644741265887718155701629306215969356588426453506726979137136617612152681093068747704916443223468715082881341989062926064757491918484982297427726675777832699140674262959575655855499706375502819152217524302914933372705560588553497529895749784180140966910785293435504277341298726336871453821566716858026579867658379542543620350699079439104977854611281825139983850306962025422619637286454103701770300989985593083123265945058233918046978637400399625632199689168162295752243134700293176631767636701409604415272996951372911621078734980497604360646613239171311908457828310165152775082129260900269505100947681654605439785137849589907958061826471171919872641494517641935872997796308005667248639665232658750411530122835890104003541156124996569005786695129468887603120336606678132751766664773863140753647819286494594205567955090110254127481705395979446593154094246251956334946374746205153668364361776965006420052840115170268962974900462416357433729659178786005749441443440498660619170417728219563076113177120086056124852417112486280026001692580724304899124607494864608591446044275071166912931133888147789307555301007214257266833132438124534773695267738171345233905197314204378207057899539810570567346440272468121750103988223830693894319802823842480981077854301272292203192697757092630679486103055456892175919635706866851073021514173997368184396474033515944503197172578893218155082893175059871616095725527059707706482345910554971252444088446387860283258998446205902525690448962608023544526033000152963704278629616884074042642707643041305842642841521808560404743080041725419756096328508315624667455541788991778527532936908223940449958986041533755098434259598818975826340623463810012838392658987472616075253380148782766643295224559164095865434488273690811759961340960069833424382884777735559911987300042823930597878177957221324802686741185314412117312736637176499733443711608692549585222634485595362011134052644174973382596692387164114952543005938571672538483165103769266567261160103699894602808652770625340029147432896142629018665757276131427176119591659877069703105509240563173881666400735380573542901052016850793283306126726154331918817280650321464819787990733557461281101143456339989894459292771242708201806244821163512237303704226802685612261949925824880139215189343274088248890307010802940605770269129651419220880586542472271565258981642960964236612771358636569878574329151233353267816537497212828608653238830873151199272252426480696920992381613347927206139898882566587940379543405546725493914133609268771754052413563744569302829544794940829520293860884468282856388842091051241883568504092834869453001917978490960407680879074810704959448540850655223551290467840176822204947012250806966355464029374187383534856057375007879342921182718407681502332365054884670826492389049099961022776515206399711935077926766558974218279401978453580224365224195960130716414910591964434095576258892805985620642589121475611196476573989089963701397886869977201828244421515345645495064549864930978870764769081066089615388210073858608614246022701463080682624092546238481144975830403887060894729277355153181829077996981698793057002882528942849415775359912394756609561865308967447720708716434174525815484795561059503463663698738281028870969398029426891341290566772787942090004550180637552984233069708996526326913676002974730305531408117312566557680518186575579056118080720452027628945738856933695292324570461856116104155536991175080865988303957317202673349904542181628241895453232002567706231372522901587419176465832002875137796160115170140706299534797175775130329278334467690569937274137379265783226857011138425559038676514820390436976160474219350243606685819898956844932581650712119113019800137728221097240887178791178191620257272659221778506703560420568623851397947791309042492759389573963682636233408702704387119366832698711573238408450385918672196286502882741997628512558184852538413632326380231399960450921661025282585800378851867447479411656346060548917671999480221628057808036981349338472563633447944667425364753184566931422379378633433882482914463235544313624561367617102525220771267527207010440930929056921688822926543593951884191285474369652716524013666997357178927762077236861385124299376142396248618163686947971729653092976988812785363332430315385780718501987658235587671542068413621313234155031488249136146169166342858386824358931943569885871739285758847530877839027553810769279050861364569168779275782043760974052362440988220414646384249872110337914639541108412022857615241863271257945792393230250165593606084159301066011122231497633584173344023462557247087048638210733978861324343409770083536435698009770957116237626858850838384919946710537879038798419284941884394724293010669624270643658412955353262218622222975623699978737360535675350311734211083458149530387434838366459918862157140474380858535062841900891261191804040366321093225514196886525558312304977704019947037687315455464407391440812524034094433218077837373559662988695319300883601298388269796965358113216498640254526263949317251704542183928314151595012897944869329289487220854156546308472221698987227667706393373998836811294449988226709647768853072678947895061683041530642393842293440858568019542704423785701424260055267426040601821240168920930311799768888165882149059997116988934318807522291998954257740123021337905475133210612713420238762008235746308138208481576207672002256645842777614751306422400634053333406444813932420585905938008521767462111019981645274246939398852274312460339593338769037374491944653218917744504222533109610362309663303195792245665870014579140785847229089969240636665793115394878109914201208413811553602120963533728501956231852686649322054525233039088144562236494613897093677225601069640416517247735705013299805776435021019940421604610964298708756907222540732365886112851142022864173086335130760656965122967795269874030839812099575980889007139910886990147303991700897862587413381890412613397589400683595527719479814498305631673957725871759561509099350697110471532305939656691655782527702023932681790795163869088304603838017316403727136952155672431191540594117346756720250419754423420543094519868380212120606941874855810168020286619288776602590855457118943599702568059454193309125239771075935981938874464948734594868363447275047571493174758304164071616402311847465267534645211478109785660778132829194577612862346671001734888671035104481828446625198770924964831223367271948140831161992693221075736394071772163080381493796928519897248753615637210511396243806180590514499110833209512809549821796445345700366013410402418365674754318902667159411026089936757519157342991368920831998314222758209273049057019108208854375564513808342826025959414814800259924230825827721181148243196802602160467472527870496103331596845376177445721078831818929645923419243539242911927817438539379491975565204070183976913621606877084846913851375958689182116974203850639463800257023687656527840955010084748851130238611756893221202851268742819603223638507247571539375187450182522930996747337434890522699798476960857995465027683046494330275232351733383595900741194571248439690589912487405965026596241071563176665336184447905015592207906101399961977049431696185629614103886385350956584432475016479012354291517990041041313912072781013488787202313742127003726321572797603498768397809879798332807172308102480875656552993541084977441135421366529755766705018670413650445714745204929905285082126757090752366201214619538777660325515053210718094550665094063433967636448554773906768225254207372702640184133218021856508154627774013000574094043854760939216449796351955965371067929275839768052911443108584629299929971768980727914689862935963020401903288165469130464836467102874328519329726091086175355258587076607254213317367456684424291190784628342566211801949637551331953986213898436684283696518000583107330181261327864068237231657196794396270573569528498152464615741640865882925213096098506062119973688382878856061966262924642436869681114689807432864719895737215009863051098994195388740902736799064188740583701899118951811307472764980720445971242539143917191850943421863497654908357920091551426671695762715719396209035936543945244179947092108096015068361151233261166263307418342591342917123989855366190708278473844460881946277216614197499907527669933597069240875051784731100886692489542972543936471426379257947998968267892584079215649224994941723810747228166380739824537655948889406419404662136244971831692575890430251039370193406590366455095230338405764334385904788124890448922511561662674556110669209477932245908369314654249965394008687343399819283080309709306481204227855531411498470492777086730918777468183358476222498510641363297315835221575878614313379883051980998663501859354672191799117947624036643273017501589116957584212517657299382288375730945563868357518056444923193764473711403221704477853984712363238919042176031935350427232110599470334732318462368035534666991445228403479184108606093050606168527159216771908212296427918222482923685845451499513780186028872078332958004771492970549190209503572168008142611662488693374640631092742637424978568103995639420876642133948978390747088479128975705912546148741906273800857544693027482070338853793357259625459732419798497021153650815484074401621164132554096207150487592015582455231646181258387339570016010997226890029046783857283968994763205105438813959895421880113274042727318354988493702558487110360807829987937157814457918206398791040444790069112212869260308673162078354980234466143976759569225613333058905544889761012421756054137411991044749035452206444834209438514154630530540916571448047964131002895494179226474350408900326489418013801452702964737497488301549339013300409397054255571503180156562486899815335783674997918444014526683609794726856894683722049246015858290482812555853993933405068318693946964467955729962225780611826786101770760495384696155091943916559982861231691207112334935698551592110900410937185135579472993301635750121325230500084230006174573801231213353108515861089584793727719025347056752415748581382117892658944490215841946539162154625262628883539690816140362594986856254506326787529861303735019969133783099574513527099625631192851052406833310442086639510283691638192152031196934073055287319550317337075386718434174930423537963079867687738399249535128596999644874386750785563051320602687628023026352254813465138438695494922787338818570220432484815787185167692480289496592393978694184774263199190492164947112412498694132170132793220930789777229098723095070528589136542305022759729526570941830976736923655717974581272138974545428582961774572905538303816781736855154802716624367259079130270163014771447966759155098652695070305805148200367143560058796537455869089877586921376915764807568959621156529223505266517378514772491912822124531658054964594701005385867014246350963929647168348239541050210796189850262895650719178105386796860474991473444135100783319904208630234000010903998405476685071134426270201562944626554205943213232178583502299415674239750365099383401906403519134766393348134814981817712729331452029110522047766531814154538099487304542877931631019179306508609691451122204297325591670201812520345281297165616293370211059941344358754586489643665328512117540631434456684450811476692178927851846721709400815190834124861356572953692149809083660936349230742936231004596854542219878952627087656767380810746353351231395694686349068162839866756306449423800701096506700840116703534736706735337740392289067951915722381426306583783109598496230420044549052357531540245512649236021626647674602726361063976817586909974190464686438838914535823689427797171603057765113801428656783660150933281042810871650510222660233744842910781574502116348531870927042487398326356181406309424694446182376868173533329911036879217616767012214137209149992467241587445494745266312235483131762817645958279761751179935603171705826743750711802725389803976580718267098841222773330997083704309591594826659850882251408987373218372355540271454195490055742090239381145069379102520639296135508739916540972697984053829404830479323380884554254230344980968801342149366445605026648018006837871147619535690367263735326334554879761352555621805663579193630046647352608925092171070999740790178946961396973931147049914584900098061261186437735448412535861091245806677712208336531243036959786503673609579927401174279183746081984131042142596337367504061903960104078836727840314892362718960874890462365493004288092997566592549790619214391162179741304063090245305593661817221106495282422883889402642551250801250694763639783162113938675663206612471002279224716567423751514415851820940615128175536873992063032055380632981048593902298362618305185661916181776901557128733261683109742337653760282208614183940259065548820025260557954022786638995155553301738482825834827524135609972014961953663732950374040783170672462820864377667524656382257314931937651852097609866834875546321255331912162648877556821944454087354877959768697679436575824567580974937408406905190426861174486903843339458344288865714798709804640351058229115176226661522173163301616081199415877963790888420674174096553995767032571861813365489329341270888408695215990201823166972087305500833882607897917605607322772684686781467515490065428869697916679158173862417259082850082551754458337448965947261302129306626230196016158959944127320064382843684014554591776841761035258643552938805046242086849144214744326112094606168233928276407169385169565678520781573015094889081670571879231200084402639468175488589375527865313057921642481153552979766405217233732726910515977845081602032559576004559855931679051051728633838478292665606774906694999974297933481350100883424987653019379144615120422130339419904661381488362582765479756418834585723658259194179070988509582606151673322050169785754311209974044440605115839992247010826235645298911557191243594471067165065828850984277356701190453519519230702985067127248077505660101446680267634287650372947930259972077744862776470062826567619545261987846821214285899862840105361020945217842108290186399968704896053752007284462345314375795296265567119090370627669436538308475262794272997868895694685938928189384906354114437993780065492430496598714237458217797600056208023790199043017729851273762617957635772285493796029213320489925927073403607556586847225572886700377002195350270568481090519343983205377829475321032393229469246875207448993253610821868298990385985970324759771717003537281994930833349647885100322461786681084456556873552354646903688592980812477475832109655144487794914917890401635330379425443296984458749357165538983357425739473234437704940830643877797390809351004423643159452278347439622830868693198262952860539306059920984176083913384470841679008098189096489379993180301155041915193172680405579571463306250190751504361624017528830812729457872475822527999329892880456962441607489986035598455628239885553513893332256797644520963970429462398601845227360102846419862148526811810928476851616105096779243571458248759023595361628933448926986914664643513383983650204241456676957208016421648966381944874723123344718896581184923470895861503320927387839713556160123356895820787614683239891512324993683666946348958817663422107552658895850232777123077718768120213572720903216947359010312785351061286063966709710373391847096342594595546464390806777697151704900414356577225165056948936108954896285821124568580601905178914559974818591656233150928090691330263345044672071503481921678249343041746130344283777062246089104996022049561336103538877272271924363247648654326642964692146713108948122346072863837710193820426497762082744685470372317450251310273385345180508895957657103957873258290569865947697765569437630452488490664319859177063004165969528532405853900048452617579540671142532156705364223871387575672478134656829378105979218555513198796378532671509170678957487115161156439159279187020821435933953960679879022773252596108597171274476937378088269583859373047800069427168497995047236641958356828303969331199160411122824589444864095669054458290408051975829092561106888400043477016491250844554712575767150476963522388988646732373846497284120642703080835721515635763274264808749698492217230750495942314058988620870719844872292380687506134627694530538263765404984798925602384690785024612118610412542413466300661788656652910442116471911599251057677360641215991390458290495502867533645956485373620770432195134004935548047883503641777589288732014137779226215829545012560563521668290266179869888610620441913665826314224730832725266021105440243543602536873816592119274452041347151389747456464460758806431923738075313290803151633740749100644807969935197604066705067057054562256360162409727893170306801870696839701100470812272952165437910257163099701684193880881237763929195209641018262817638637788222951773526558502430278688422942201813395194346045767178056932290480037117265939444833462746098789750334845470609332118895476249278463855511364765881787883209005320146032800576708355959811231602054800604489570794699696397067271128767485267288446281371350661700113808725807727531652948349279117559076643168534816078559284708443339779310151907391339330699002556557977239775195347589958625186181649378153049647738679847958219090297272192303646735155033423709985874206242885618578470366618877993727628389000624013289856574840938817774040931361297908367686101561059229839916283723781525413891182225145643278076387863377006877632344392218473037614811505446859108987476301546678158241862626721519859724420596853063183626573083417553057429596046262688247729756433556649111239778952559089915912919041667807875295781667696996539756233099487975485678977789284248808180266759282427207821145624511003985172661535362463997042809086967588927426061919399922068556767650081089578422497914332884373467426383984219938827890928706211987832131133365854275339332117568932401703789087039971321398253228778511869790653680519113155449149414891412151224862804564908379247936685773031467361601079804007612165606240690621867778617091575344175124401859805579652914373693949044428178847569932774599190987729546553741627916771141758628546945178609807537253035155205223034809297442539185281677434053645480231037680310576279097410643210963245219221660735047779281252853176992785426385649540636138319437864848908268254518267673318595737725617917767060172483959938946664998891431590924607613965450912208445312134348559387788522086430669559153173855183214711817112231130060512801174106203607599442951614920982132464788118343892323668412715030734287583240112999712788879947090179137812712040068082533698125604276805207008241001584883812769494453104067821232582994649023754191996346875400143090764963115148660739134469193444117236073600632078177710468046930081924403538892786532865877376131051621616208938578097943992548857768375370538308535249178886936836493300834800674109200447698113095899974433320861052181514326713597202202136241859209224128761565933398752599260827187259058436289071683771387833646112989702437472401834694176618005910762384005777391375588942739188636699513050384269379456708064059990853918960993692075698415858683726347348480787557347828466512117509755233256385375992926495158496210084693292548037317250454697531474693568345579887351923900350990818303668077771119559244204825504152284194674469621554521111609635749238367183664086136864813571185298059445855494653192861781360523557135068392809896447193666118569373490798084372882914054639770465985824229387766267229317955913697393152117289641727660688604162755153741151418605424892068729454034839438105018510227917793238885595476261733619046227187483022174899978378759425702287788009005079701030529321264038896870669180392014552502476218637202962723304499780856531686225549296235114777760354816414467901046716384033587850148540194579978048406986287364486026143485780549374080838979959952518043811167175639384148752956658174702209062017158417840759846982899924040522397247758800625728845006948218456638430897350682305893853176509562367635087006437103558891549517089399636700564296864176373725468399782406310285750805033834448769405555319375250720287752358501338617473316397726783109363328969180101547098613466770186673800468984512706314172091779480035292985554887801867981606773822009620618043245354679925807336725281783329786828005870770045068829202137374222107593522486846784990746693270301684928246418519113315457851887675021399001526700156012161479950455017110636122187311528194656040392939023965292374325529619549443189731854220379744158083620258940192066375279666029508900947411538214175581351404012440930742626046757374746925867236185074984270842021998340298270870493449825247645517507996967599855814680237624691440703968258206976258835119448544101688157671205120350806806105144636021883690735302084395495140715106359013498700532397847653442914470444186642040551431199610645608146036742770955513375629340608378328303447683890847656109189828261790281439489557328937324505965469293466428404327112166328105151100295152207232898231351000521476233965680718420173761226473598866581266241818135092902153117014284070119815929016858135805147818263679928404343524089544133078007801091318895334773388749652121130563452318347422628038212678461298744047533972654453945893943905572055618635173550800679333140504951410188820572611954237420849751935537143279078248256051984534558863138388964290705865642893716441903139872930909729462776331887556172799524304648858796409271392230152431056786762468168387556677604028628998402730415894051476689883632476436363408903412173848556374420502588430014754123713471249926096902928573992433113107621098731073109910119323739717406675543000599152003907255125459929745813763701086191406620043659507133879667217074424172085531088507336749686303708891847155721117040347950628419141482768198399890330782337571516259138751113066078836168803840090259486069515462456285816990859599604142588261933265317760631714741819807656391015408802279684829211242733988239206949676444372911988987678527245703690587705281382316377879917266036380349774180004588165025010645605905741831868466262726766869353995466425885709418368963826866306252353076201766685111875187376563942203401860917214975201109482169699166733613798779738931763452682750540498114554408076983262285806013822205468575513671937451094129406967726721389149127565334571722124472659495094232825398060315765151733901283750945077281897696278302576111531402701233319030576860213556898706467225304760465172153752699059317390491658281792876836667065401325944147335193209823379908492916217984582520135538480077702442743991097241268227025793091159966755716266061942194341096788448839329738211833095349184931649984987489724303281194022094606933356883945445199939882054591432890552837148079210145280825417154596018775889104488101984923593276744670937628458731643831853766063292121404022580421134985725631557935144070186207627599224153207948338131216210232918917286752157376834091849116637411767592489068441809527100438504169329189983491983162832165495813057145316306936969755086821951411864745338866629175765122982007682536915777951575638263485108964519066075826335849523717813624861765097562456601882471315380439337248026520341300277641309256441857255379467108376426173431908227793731339285254179715604520235683256662026116294513855602525426621523297736947079048451722816415907859665819229029929794052871522771705368225149536076059807641373122621397575167383782773164802236569990754845652645127110859081995724429448352477178911827888576165496855933996508608510986635552639096652025931759874483894868190245296058036254026521331093040524407416912500775923119553007756539595552267278072630130413124385718598188395111115130422984250370246292629717946504829696336193794623771172159607110245520814995659337466696148562954378811099688232099372759224319314297873668866677472278402734129311697426655555366854860593284541711577584490170745611700765211526114246825650622001083176030538068158361265346802714194184804033613007155941807866999039825250029276199186646878075347617254318479873759976725497695478999389972310452269731295992121009076431782177858803979106728316051098240647888742822376737191869348150733278834852864561623582001983383183243916085170451411919910228600251301469284326162492891374690019818311784953428284949971405284371423689065012618972681234495763806246833823270962318988503332500768979134562874542615405948915789293529293564307038415168568491973584155047724218944116936808006502976200467748789144315361422152543383824945886789118201932777810464949394505210677867890175119777288703034902337314356481936362832492421750253364372411430509542765331172520397340311774899871675799665813923514755490215726352898546512584982152483025737912019377864957566908904308325133217263315618954101650210953761809547289185432196173365258051503101208420224952586528710923397407579953901642665225782143184566469664668120901482138316796683169351734167978027819351822778008814622138421638091166277251294475704689071677306783171564508089970918045710156965073238895086578590097189623018833879041451860323030769695562535473317363439302746639966545542750733465855415082091956104387953113661929107868189734743379056845074464402541681165515797742487845757263692676504458392362273511583270539019359440183871980872684588587674616746699775056407566166556141932809319066368727651495671719173138798905555502086453539551365604443154266209016428707695680798285085026781023502016631555673783057546027199114095324596734490678235462360719722354220789594891433259016595666842009179620087713391222910330736944209606783279079908233942761852224305913066005808530420975245378441239847379656866537767153119625786013784381455414411684554837780085018213302839121291266223727191453114400143398150748821909938341810285109521056253110979273684831397860205848468987364482345346738556097136606345334049103577940285976631766765467936769012474496854537503242949680489982257802159339025527929187269803827279922112320797688646413033166758278916005884535310358564736795157694721016865756760898326215426791423043528624838642464123837326783661356659037515851640300184322879602827854336532409779105821396974211031210270445101505629426276440157615596522009809062837175496908679198973424715581348656220719770775741763243016869249906105849249839262187129154338585930957605363213767459001874497205723958065423110298423074650347634489848835820330485881164148610085442067884919596111814317244476122329417653441428917862205024092478350003661026461028007223813828841065998988587139371063781070796496890764336257993244856286106801326938598741414702211278796267643253933783709112757330106849230742866874559041971421518294657981202474651073094921240052445753941469760490591822913712060824177218184407176879808129295896920979067750396934971681844003943858376527968760016847329015066585999868480817226311973450108724725199358348773683022824703049655243501250170549312728646036284499375870843193320727232651778140602020813136891429062154962318766715953757547861993206061741780748779413848383506379885021182456358337322149850075969014273363703052129960257577084828710791097134113951549847333996303976354508709117020348912027708629532455306935721283027836098411007421898403592930329565099227579087741968247349825155198414861284864332017370142543645430412305516319439116707179551495369736536029012265567694996704478433890534834451281647576027969606308301802832846524054757819039934622693978266043732541982385735180625229159415211426505814863570350753801463471556558603645109965070438248928562816140998287528404802003697768839168697646383153409449538050197542933337508732971742077743356279576988324666500479753889689894036491704742403350981495189726481646526956888759680712262724672223907714486708759781724683541877782009841527292865779809372144027960541410166916332119278373431199171599224765848557444903099761520040460020654063623298605112106409443385087986232971326637769025946450949608802811286168231098473940080193313815578005249264061781949287813154217633749351869745134874865315218003747392323937463576840571133015468612167880580400443479169555121053593427443294333009305993198183637070564220240747934687658397135730377959320048040576583163353625555133042791318706070972378515909159036019099328270915614964856284882397494875289318221581380501056995134490253624164000784688597875945362444731486128202194423948358031255572496973593435327950143152775467594435874183365049846610441756077965952789969682908676981539876326902821688955059045300091953647692799928292710586887754811670885363446390215826321162383369351839474188383100218843426344708100624968208832344259044247584230130561457040096475582418557942557811145970330701264304465085074065215170122232013313887272668892808945712194236597770186143297470853542731551660296428755130477522778730701439810661995431874769807201794519195863283871029625744715003722614734544582213360106279857491828997811539317405640501123056479975177540221900555858848410139397938089267913430282554210657136964183883524806704565491711002487589011109401177149905495435640388560369676136562685817891148161499077845632744694038581183514141396115972329728978717686112307066959925629877096462643812228483888437348784844097772223011601246663964850678507093607803383803284603692781367710157681025646095608040431149216733002974424012628827249092886347726057125696543694881462862845602328046627437703769994272630168926760673718522267536613052462422007797682932990351716750460264942014174559946808306823792876640984633969585959854266724217818220757551575579249406197053501794260626657498229299095303400216852028431381235559448170670360624763239750234280934812651113943465950614753906046609908661450348116051393233011385252006675075404394613985840056720110602615099492219543758758723914215955795865969392235886048393096097198975780794329040898836870623035755501120921103940172302256562600589112229156835357251617283094013335841669145786199422339588142132400635866173270865123543585539861394453995991918986094690306474755905875872701458541237850065898566909227737540936656255334850082635293815474884083730046515272114135406247615938968641710299468849582327187014369604280312769484326929007563015643964316453478149022688119816761099316126226919003106141857595807663485218412978653291337385209701411809882521955730305995964378408370693253366060019072234439963234442213910865100196323860194771801032838076494988605990836870787704123338797086783953861297741290196148678614931389142631478762181342725122230245857219379819115137191262108691447914596594232296149021278319044075131877082107375460421318905572643038351587303447680332543265154811573132716290610970658550837005434464536394919870792920508024159970614762811659587358630572711001286167121275362131480436860764872820392074802096641653368300087803651748209042940515049279195728712446384439418532438941329246176167654554681540805910464976984272008959420476235034821704580317729762300933895326323748822967211191960615937640521121632823699262088243284114822581367890425340776073401206988400875833789575056426943569937575429083339944768716942900784708739250074443451449671865476692046934455564178161453097594952060806344334335674751937246871424852010949083098915353397815648942619210827082688346562069212247905115842765661663251892879263788469819351410857627393471004071301201974601710337250269248368538918203437728747376802528239890320963296245231291602544070052802436932838952462339441300575253013857603894562795298791163698689655163550049034430704438683190879402449776969468815413341644168195530344101637389621089694395955096846746237961431628082344011009485356577067238780810148033850593478240848391545654770993071877804329504340414954803184012657136180208645524361108840226010595848002135952480322132863748844065222509072425116138189104744770393699785432971434205830333280344848865465800870641742258612406881340056229415436729844152229033739538286358338500059445514489637807110236922798445634557972014886103622740767980720006082322241730244296357249415651012324231307571050528476819748480088913540650860788326459099674954607230345756862860374037838274881893126756304699964203827752957626268176356857550261050719097382435171752798900127921797798423433306869406901043397018140356061159833309298257350928171681062514393088798740116102363887658030203522510583805935016278788611576908804713836205396786737537096545440953888305963092273326701032097234585596761654852245716828726708169832069404922088375635556641326100027636043782166896997162424209218102548065133189483693624546289495352522990406405120354768842366794925621048510076466832494839503517819850189958575960933980288805769047429129785193398637950855153579899965932539119658266082872191561386223408964336524792307706343321259456458978358082640719955589733027178001384365869931590316327715385404356889991464830160764838199242297077321854919763081851519314988535121085189523038665001660170063079049696157508832702487341673435078217517444014146801363183430768449408290539738844236772944830678593567432712625921518879129970756631703314615220599597619282753629845793462618775566884999009196999970960392471679676183525485410548897604794560016720737717983304210693376159670350047464429477106046038409288459165006980915999091793237930675627246827790877146162265239894772836566561798040734872452582135020969076752230036401047543040353581249669308756312960847821475772992684500790190210008727969733298776544839312361812321029074754036592312185243023043300783617490322306204987213096978306175120973032524460117087609158045662831068419016392905747404699691476623461557254991609942119696233003786716691369109156738893993670402012949990702013269003722831605194273703737150088215742101195100289724068952011719604409669812902707697582225869833566301689251032432735435468126686547807848123006713120560105500445901518755168274525215745963080583256492034124121276681204342865901466376415925306428090678235532307079837358433831824786345494355516829035381923222250687349517492502071445953941564168693830145124914751209213194367754558849840173968626460144851724842282549416873182283966091542838978157361198391552884419017101437259631346826463110277351209047913332744977016449231319682295500175169775803714078874127024630908714296736963587347846337792943350267380993238655247721977778196919274384314950290097819415721434454924048510190309635688077078550564998835230307089401079365483813091456087309203071201573239108604492876780260745939274961398752275713045004640336870272410241355430869980553447982075685451725329596612308408967601966227825688338178487251101282604085634419499331386181251163587578099155305537737624127600389872784643630918442947979627894256960392458570652076116104818744025312210659364977734098602027776565876410143666092722796823770716165269128006858659435215758458728398864297654103771358862518277656612074961690441021610252489293799717874999251948488586650455961058498194216780815083866699214621465467560627717301360803791592912944816946362122608528725898720995898263752494107556615408858855553050854145614167569624639434610687185287858754930632308922126862927334585191269766697392765970064239182383292829955256857625883329668980610777862779741792491117282300721252740473900978431769950367533122291912329757264545822554397892312480759705027671570567403211611193004845890493295592052179821063435611995303512236048848241240479041437438948944732794423124865274225797734972319143235478226172853536035104752816695986065767696984288070948978308250895673254796190608119199981539693460677909851686969626395711152804816143881034741502261806927244872222559227359676752616196646926057214544357902146920880338361078881992270772050158314702888668713807071204055653081919537452575922299090459858020053076364940784697218262645043542144209418652956713574146892245504780449900242852087463299542464621795379271020459441910290199216498330558682403838056372506380363242974443199002732778904253389170712841221139648738474123647206667750257727052172400716764603105056350688047986176696616550955184507701303676939191960015694098568688179434700568705019673849966192930465912893021559913268871061624266375771752498314256358149855238178323502189135823129056186405997812222029567192219718167014352453853151181071454677413583126548533081799177198725622438950636473672429074070601712852848844347702934351082199503543842709847443159167111642399694167886956795205099203408049610660322794401565013700919530477782739879305894052841301586483882187518624881248500241240060920990639535364424918116330197764307484230262301372228662986564214665214303143495104594245961245006498059014887798846394249331550835553974012597325616073424059573976504243307178008439869106367362008697349438944625873866534267181115506035491924094050124177149767738358086537620143936705416686444234364232816273394898172138251538977578321841117908829544426133792220792674375561082817429985171532307477231721039597179678031151880532052681722121276175250300446264521144703066314858792564952066989198879246534578476886456018000071420676524892298453073802413743893073791221288868981126863295170528607993868035528283871712977644134378201024080808780615653672897197119821067218573810580149409267793967582248899345632965450854466531453533596948967856850383741665253115286628684941294252202436063477994914346346862366284504983013051247060869490036287302781893947578033754177794204988745470620392504032108816811331594466904339164168062150217420058583183013018577873820043844642472420316595560304250446636771495309475532930600694366021313982301155275390832598589180947166440503380719932971676126236323966820614376050760609249717455014174020316447867902538096205451119889347237168228689546970217743369603606531488291694374470702508326600168852141348633166746887492000934205318234355342498899754932733883622873674549240940762798840907877988194540667602102974638268642138392329824950232486009006084004430551242647400212375048360729745843892553140239311080781579112875154445397151392286275448530879064195540198736826477377057887910270029537948617631496743787301438738608185892868137665332468684081059559356595402319404191953408753546606799375383603452018681395553077754555881540174191104845515573218229620858208264375085902459592127469628333957869260199252102564167576535854408354937523863598167141618703207821201167835631498786398508731816642564224004759147875535281651857706539410490445547513528958513209758689774080486648108650089804119212902053972034250723408427542473566498846965025366402364341456806608249950229797964022737658894938661214123084441806644842204590821453367293384132586013852924976430735423609108943194527500661274671216829155200661053940532004572975042960771681634706354708209537956074346464372370134419181478697313015644990600066891212393581971036043261808803243147623351394906600710350952493494932087595173170703307986750194668285881379899990196377652499598090556159883002643262549470550518303954624321866708804108551216569108586886423999481453183419035249828258759766828695659917192425611963773030141423768707765552674253331373298688549954040515917481453579975547456212364366000155932777464151553245964090602830332892735949685270423339684155500405826870011401497107764834565380712928642989313460817252190954159301929535211588163741941855430630241348487343105099466731099326619846272288350927250253140531461189097694276342299810164746024893153529134632118430505339190166470678551238358996359766898623219633876470103551732801841002178988378645311664286533982340773338061615192397990783599694545490435263439979844900354317180327092203386916012747110799620331770339098993825509753103873296508439289530357422779903156744345103281408213255722688796922687190565357082110875632054409082766893274495871060224104999795784099801578764781523001050987921862825353015867161106949192403323423685791644443288923537218621013262716074209174641773661198653376177998876878245373017750975377651986064273369045709020734502263288436150865406092529008025945690696694970940501963108539140107165460676355227818340179808938685945081907870149147041805143426320940703543587611337067154004704641484362632444408107798135513824870386560235378843034524069276335768488466731866903571895721969254613489463375231369505531937903384605487128864889450513432944547087166615235579123740448808518712184291214035920447049535327906084494751680112768981932213217580784326214403065053354065446379087703088588695943333712877629292348819748636059116494315035167494620763235554767778811207774832908291881426539852131125367534020266117104773498894278632315562243976339058247352935152204856560466883745956677406384080358168617713516717489783214587667235550426603050927955304201027208038002570132684997933810046530677383905181061637354802728449241858435962397520138228847868676264717089522393693926980142999736913577310522580942689525256970170699454675957716147996617912827425241840951473472259901235560844054720474594727688014184685146438305110744487333110828444436717297455674936720610462166738136955278286907073749765171360833025595308080551752983458361186140475815121536763341074767792352006082269885165745071267910905525011764509263234719526535735703820208104132072892090010298632252323770505803736681054600943440567308959920733289271301432515055686002587079943024399186150753536665514213764843829955290444569778259599810825700266037054994100517104500360764280263981222908027359425355281527584709478693460611825797478662071751322891730404415207532545453683982611701121759932956041901029351047407221371104298018244674277617341555732727446033565861753876721417615833516077029190791832438846659740689318795483527343298547887263824977943777095558272647606582631297803062821542937447037978762410948574008280166423227588611283120026072954950495097396832478326683505588822425985608423142597820820262507902554660503713339712876839676550861635243188411086714010044825246759663418543020938581495401865226051136857580517551957986770322360198190140208184288081595855771167460838101402351277484221724906348975759711337585673357005862175357197860437389594874167091289363723726756101534302195953742293618728376754168343636863215771735578821770469073993613044764091100831235245243066809696312660435153578163174252078462451091342881013757217050934333896938731273089167371447083970507490340839384815456544725229834403737190601750329251089104251092510017340331003040584513708270309784790992227603287425204708639669887622603264699818154524355975627098133431475103950308400109023597312831139213047539072378974959358463102210307458939329508259371814510470093177892838202322915578614033348804273226786192636384727733221030083665176945718098555550114939124787945604405880535965166690176755689876201539811885828540227317753554746187145726184512862166270590175011328354334792030465607112174537499875785620110019314331702785673466606270408314957964284052640053707659621320740034912133683055287820401062723820926341745414627970131155488463611102869246563923937132115586653364392517980123408543415773559246107438578162455756737687422157155514325128575850976312463378818016916001055540025066239918158675197078096581866834095770673936247509250243560171716033464974896894750805988466012411448309747670120806348599792668591879408435987084856431521741206238417763106960191410497748627970811522318695799346694242034643320360238172201055577963133267955074063899272121551395657309989959644465414378062737471853111605368745489511139448492887551031997241711143955179893897635823324131036183248707500851558873725967575645206566981791277714551225384086407204660048367500366143778568911795691581544672727597519620029528169598019988660126142363673537035517591774438491041905499316022973840542023624213937460016957504285247669029723371731492158970319540657230985296972939023685212970230759462261906716442366208702168591499968902998026113812017252780580784543285228244940379216152660994495879405427847242279323187770276587752825057642056253058008751258257711433776817536090199151731414554867041012092019819636519798661249736304467248882904447925658095465331820634164101585652799680156361827891411919816689425059290848398465199714500715562824863151320811992121036839893735959815675342939030651626845267364504076354428560984963793058857650178082093291917519172588415108609737383168276279216255382190590661341079273539939959387430781858009540002780163439871199543132979807363853274251132167406616359258147505309242674190175432803730057281533499469350132981983148245480291467979082963543670713443535742173585660085751828616035648450717879944607818227214063997335500624018184528879765501994599309934241755492070350351156696323903735169673707941588873978241581645160544756744445172524262141862527011079816711444651562844641379731549220561853554962501891547102177308562857901020591814444703214799976577289518253927758298901290638128354111374259089618659299873907343046623096567930467214481572375435982138015026952805687163103463572937451151516130818288733353736663042154736054665570099979389865034673140565449511905333823770904330239569183560467515543735849267135218015823131136844594072992412240162948868930021245482216791804959815504921746167255557481151126426737442106988603457365083078569653401128991740723073751930825890989104640712655802489842459401233813159306144994498078208340425946320989428743165942539569216690256667868407581848881016812294565770776020258098018013147078373595270082394690978884835833344435839928310427454235272283919173135257532979626684196167352793405632565499021013101123973633299696030226094424482858407319898923854111140026445115522216959296142733424516906314682255727835374922465645209631052981069425782650399419048469061360679407747636046604499424728895568220586099952847955721434647988388952118557912332277485617759145750040700561352696354800996599802963729572199025528476142846586897171336205138119895892959076301726607942596448342022485567318131767823740140571099194384002896020499349940168521886458688364402338106997406103123618979518152550351794284564846797009567526779995566331463240550738098228304304540196220250018039920996828633566314656693472794001842740230296183436331341269920933045006698088847300613309870411658955760892252574967053949718981620885469195290881760730562623871283967567671686892496271116680645354394218850352151397859869124716245366062543378643920311224295155165981889514757796168593953300643709594855967366644804173871715642657734830099578580869135708496504635268853510499834160610639482197856549636404671714716313662421268264586288996630365106016855499484204801574393507022075095507146114265172372639665863656976996182233019079413335822566501810324328867854361133601254439301063086665301616021875659869170017806028659456993530865817015694045415413823894292622234975267982818248012663037387798616840765340469419781420047472127755164843033304544882439749213884357509238929379265369200595722663586132880728226390037786554495564391974074806597291473060178126307262111108127840091235071397336109605237161730517058693840035547146745294960111344289252226748099388627684963137769152043305522966713972917047630462356465292065890489279550826349396376380579440600849014789014526751609583214866657724900908585129083781162291063383915676859227647038211644985421292463562853158330840993917416152734932070173281962940449410073848307221471070211914143137629142619632088190269642191995150916203669554732783931314680970750399666719828683610997790029123206167616590438429567499378141339207669549884203902036713904801462350532311073490979308138835473185720535976721632957205447461655141501272995387018423088270435448983234649126918799852999641833549607445180529532688409336697313798080033324800181249367873088383289146132485543500869526629328133720641445443086566752506033221162512196202303573314208373157940675134991772720642071478742293451435317031384476792255497497647951763682009410946226635770446315131789400742788167711689225284061960731759778304112261588537278279394116427112915928845414650395056027830583018996318193607016393729993079649250172038405086771157196876940440144332744151926489082492623397255892713481230106775253006191584270946450825184540698144503468717979673834567038970520118146811722830049213455154488254859164286080340066515383678453142242245031109773990331094853876657726019774960075235978741711435065653486642750977822071621260259831500437870579017619239457075940529515636092406591632278022924023532687861815457528456494035034871778744474359216319167167278972175059538898116011025747500461369389877823917206017901048256442003960797765955068711451847816422090020676425599312337315722370507959864636484752405545239565455049599250032754689956892663189054725896817760962379755410381312219875911236032433958735639710848002929385791787015099413068179087385128951207213232761405323462983105119756304805746782687388804695555332927638869235260212054312191914665813671915666555190024305957979344378743904619697070025938773819222332834191805570683371957319140335398468680002487878287601413181877795810176938362199866018648477393010322744847956356185511540077964520275867578880021369068543565895114976370116175032079473184324383818694385123439616027780983454631478304874905282410660329801003038256520364000340556084569103587751426506754549622163555769479573702853639779144556738758191295701028124232782037072734988427857080586820498367083698652496461607970948453685678826072072099309746974630824673364711238119207792864533460534505879414579185986861196872102549403246655223824215996349742755252371741999711397726495606562655611545507163490823128740299385612786563831970870427935881694562022521791946593958907392666322159738882130631359322965239387215430632605340286507379281406803278143276777846833791492683645239717887224807787796171722587017022042908197121293283798215744854119174625175050915207595133468768090414405247704069953207355745352065755900880285514999281912507994949819320289328519466103605447661154128124788676782409334552418915294354019958861990481270172535152959186404871178348128093681076420218428890188351325755198406104216497463179690978042878442817222819873067174124688732929748387312397132432226282798644556734683387221254137842283762474079603726980199992031069386875665131692111235514772206908438926378981114298677350954301038831811565432865353900454341938704329104938240836261482526901984678014019273432605737200215101642315340694363035582746950103330940420299819724782115857244062062323852169268100096062062532212316439207083402976622559770830463826063522882117132688854077236724415598663463194834858175312719402248866877590874959584794629424304904501625064127488702445035132943930124967143518750037614618517448985063315209421246553935382951570630487287601790809384517609685176545868548750090853714496369492494597316567711275985547786095718920694961473799795941139616028404900904790382918166085297506302234119118830710084844120225898286397003570537332768803101062475926169696512757836870820058302858899518040646416554079944749224515634832430530648598975161269381191562116747787146285757796106856912315997040117214811224845582696480371406641533605743879988844808259259175326951460559764985834970822593192248420583827897286544175401140466694399307073569459540761878653285360194221172582767090854316496390751571030966667194997779377208265628960684016946739252253421307073967998350394619607707833240369017642044802396579152556344054679194455217412524212376273582933818484878305835597575551116820952541467979250118492845893857159035023711080314541753913314238712598186023430256464674605605963437141488826201282918736511181023874658645980396222728463881503580338616310503526879543354106523480729612678742271400013458498021980331698746638501967733197061130437976319376755595512524852598768152118278184286743006303152529848343861706871634206570124263869066327027320051335281762254876816230308555242076147025292440556255676892130826341586330672068075481195168771014254462336464420098831645198924564929113734686362958908050785469979456360819209388024915069624684246523675280094508457930222385515238145783341851975362200605826420774529900840267988926861868892859477279655044623719208717354184840430266946260548059473641738686518175450698329067441287871531906722425732008377153671413635816075181213026069364561514662031682026871506519614277209620531591574841155872421235807008011261983105193977215876226401886908937372331675963796336059876276265417253111540613859344832746682189895206242176720234635210801774979261807215369576747478821895651698844293488268102168189965306500293733132839484315187096627711771118208954206079060077497783075209062383179647266721839301408855645699707817560287548409527309196351485704346439973221226208137879492335673555856819949731739292743944953132726254751330798045507915584578855681027769399611997929518664568624608440409344322332594622661577009254881587864671057149838115065173832030648510124102589187054377939721819815162444286282893866882075506006620679698353186063822117923103871121962711270164290193847583953697871695740056099166831583034129670482506676206392338012508000693244239525982446180425483164174048250630191694721787691554658777720027244099561575801123671180625340403154425598685093521463321153370633281053676251880455199900916906510466158433123081304498057525631739095374382417848379018589924595929820418510479625314476669329153182104809386691370627952333055730702105892590776255257442009917089178744998651112932102840514836867519853435748354819748339245378525466220069784688831743337072970510910040564316721540603296002512656819902688496191670830904279455719834026863765618350517818516607435305248686177456295381488363294635118231241898864684067771091860085997282565047584929731660358165008956361457301275213732410319528823890452758646930525227475323720058202966952836349342234602197465443925020022649711535714916254027673528817657319723517676246004955650393219959730995628918006514252183298926110906032056080534047385249385124495874021701145903774752297586089276584102831738523658597108401339771876817785493487700695836266842823503558342662435246124522576489873315584329900259922491238017317578132357017732504356874919741979464153600203934130398692201568218606750166047481792277049289672325628350279267180164865413368246329562389302407891279290686488782801913141593152540812397576655789186647285854043395106377823478977295159136435869786477789041053711527700436457020848655739493385917121102470757577618909137717330042822399194795857018992603186334394280602911269673316640556657870910670569956436533178272364855617315789999237120404240216306152071586060685727950992397438045273261638557413519594964395552683090624086862045044819151072057168027609511396738565297480541890065087016508667154955228663387460726086908751162102876808328660024478665675086352774148880149587199688710711294973451408839061213498261830369869000642785270146608930512655951184404055856581552527261408518779517413013215651137799658549554798738159487835117568164857274108907582749643936341423527562002348711294651341596857635654693962797288262961862662383208187097103580788576559797146288964412284861871501157719573285891016967093105334541969726923303820205253892802569020026132148750387269778447856811224128307290532458058560544278674932741332394701636034916412265312341127367488635259323395338630345194388434257422768896358721096765393184250716513777673846596736341007805012850160100760230337426411528982373740221349275116314183437296912555170884357356964089741260820769310746405737463522851272466743416508898290780193665316123170114767437932768487986108645814069470216048942091136563151039947804289824014987273112699229247496870136806567694459872039645166595770188021433822648840399247232474046121663265972212841309469623748908812080003152569400958207252017639638831714252603644015820396674495354236214725489650020814979728801254424398879350688231809430985763040173859223909083115590565884167716854188169400623553608725211877461400539761574871029797882833778408651517624514974473264137673107947165778443005365092672651394037864316118694286121113967208474758593658604702950130476097758494150450296452548289602376908856560994319049296908444246908198448757678859064339514163573686229551320387929430667849173441137390083811115729692066505077310570123154799494190838948185027650011076770144266043023241734179548202143559676795686635523010901466784152722532564754871678746868600805829806932257828391431756135103564415902414796590340593301026113230098305469005415795985352395470354679697658644872794998550076747683047787029333572219654653482485765273129681394129969780321223047443202703338602960447078965443741162660341307104276500159618113471141966491811122704785674502423471302787429610741999033685425232857340538644135976547079472717807617771603456676071646362299423411249700424949832392992857950110961978466769866773080645084602182267941748106901693481056541088877987013361677604860969568886903989200635095767402221111685381369196166429555185717525262935331739891808929819267208602763272587664284667240729091080053301109959836312207648767017050759658138988088061195176804765454126706661361749515926595761711782086806077114038979041848725602142644967354419271162097719124669990629961425486152829080089526226620168899959706267615323687946521759627802018604808505139662217508594490159058986752941709797107205433239209309681394873049766119838273188044467480830558264998628077532983875395151502368154166699151004293712345108452638202804266611496350600614014211288792400942662990864834314638599633838184716694312484468358802947238039388972673590810742060065723904993080791157851026739720445977578651467388202146924124245958548968077483295357862919952483036587830377719499125426532875349134064120461252510308718778160699601606605237587855086654026607379850193822254524374438736607038767838459219432871241267251775679268454965611460256082301280671218339710304056801325705911628695984720680230494898770403360111318155091910915652496537439925174934013502468419504230241707767756594290334378680011902128205634239863760838612515868788424657355493387273281411373960406622156402151841104079380510291300689980446121301072436155559073198467780578843733913234559635846141876946987665797283045540858761072404773749447972943464077914386663386925218585415702848089057165457835637841649683288850648512552443378643268491747365550765167397432500903238670617577328957317394224827651745904041140447858454231268444959660698339105310838595886170616494554430190791407798695334817780906910645582068039638573123971959052659825853842045502965218728041868929194196391523781969747837532806578767636714690543242218902802763937094993447421166326179560814393653232798478360844239396813495949467470318391414722001942652189117778403977455534495930304075652977227570021498818955716694541599821893812617050611528604158866892161945773791979908064624708329725025316831176788739011658347699573312145133447872722633705615306681333923032894335765633792180800012750279274315510191566419287858919434942984986065332892771522036539013381966153935007407239522793082700012876172577642323393001204529275580399344073664298688837371859027155614894942020543011021207320765148243852360665688016735745546237763869280198324377670460407167704445863743058813708374865635499667156065836470289633637907891623299591474395222514630370288092206400666549370754221183638005212288215851385844730958817992693107234939904604388749201022987712607400626110744291359141306813392201206050341417783350895398921234941254885488914239811427755066858763625757989579524070175309529847613823378166627321590298686990634254144412567521791389742948368888300350590518582620435883241572324235486191976110427893359374217358703841451440075950044129519203497775849355743258075934024708111497500874017868427845661885039120266949343876994748064953240406853982699690066524141153490735841969685948108622293628618610235882251339302454891767056548840136797658868555693085884393426486813230519485863074677748782024673110123161545115193283166902262382650026501251269874800721798169979962313838843585711068449511077148754263596276327008742159255509129190314585502986317475228900234247545869203043365925722926234295004516307835866661845168393019172834408141947111388121674727358509384925562907672328706126666539137802105821134921997365393718674966741057485118480730153733020121617989848433401385057118557346633557495627654628765282390871644054673653533710734793978018233474248608688247818887366843561112743142176624242692894518470006585992787479689284629373481331294866342126304995096923762797730169130202726064811982564138932982684530449276715611619310838481036872440962413105353905013484699123610973021187517509039844844994124881806879536457879788609952255396395238742268710132649995056453391719765022413401746435333773919598654222463962855421711754155419399025330920174090167234008780132869062254150370946989118151137789306833932023449185154838093807276582198582848742714081869696391482784597705838620683712416773737471252845541214403181089423463137323424986347937246383043557648477617606063096908550231098046697181425182378767300703348313475946390052687081465436061240701000551437390707209749254339076169169842328735777443824813304830159541430164178799404640854714951415945887899121669148484131170451067320278163442412035841058798030640497111668497067572269492940381106158475960737415986152269547014412392653915970950657359719715565650428644722846169989635066622253133670671532659060820807235015953830938312165332830011185789975003157097836992197746452227167017110705957063554686319421265040224703206274394720558470620611782794012623551706805010043426586141891680581953580209567809879209987864298437410326547615822948892961606535353183665033256623415421994191890004091456884864370002440448957810227331138942100091284123467269022499100947370292127374361410864459531871484177485695072225626110599032503539610403279715960371786914212979072529132018569092572527807720064608940530244372806061166566655440259972924736304714889309781805222462332152260348458491834228162215010669640439028376502363630757726640239582414291120672569258631113838496009975342180403223880391006733726527440133689794594317653661706671991400149946733290217366557694156961094614107033394109156830015693230511096925255119235022288691684588560593563680744431299035410320305506109216210337539890416694949743020271963779646990010921432301546323339921768450560018151030004383895852035729189944886632547777915768234394127965294133911592247399881286045484803243276703038623689390471875701568588220288568703505717656320393548076896018778223647216616976042199619630800734491264867355393067809749809584930417096212444240000012754879570374957162057188632681575889507081051254416409087210305749927192412567355003934909241183349710613391723578394640982058435935038824293404411142129118908006682849269600580454035216581026230918868012301793450616596963442378729951891358681141456912367587549414264983287143359127553229114425781982824674008172777798167979272743967873374487761829469556688034613656642484334000303715213110524560000849939709156712846474502685868456333806977856733065560745673533328250960851165182693163808331818766528542098821737746101553031385159538837639060931324624665213732404847545534572145661370229786428485873392507170555115241843419676695849032996543224953627947504758951864988235822689823935269029968939176496357329226255753568389667715204034141924907617244792202811681614244710391309265929464055316605246267949822583962798481381562490110011820064070731345258524234822960116240432827552087809029505523179359600984332976945882130898019541159123355048527604341211716670655178886783579686986788915427158635057918213478518902168839855597040210496542072201205381914807819362045385999128434355283554229692665378637528197001677139525910289305999566656112524233509523324724951072110953291678956241903587168189736041965134208331546217396041016338155600819712817167368640041171968369500552762482848508995823049190718701560548293994255769641351246314217466891643012517599290434746377309343711167640238513785570959928905853044930651986937235896383567756634359977231532889962472402127847912746339470575481712323053787181182696396956467427208408986336162834026185473459601552240629061705890245994208843633867054023369406998169589965850684757597086018256846547084059021776548735624068221904826443162247526041546205166491915764427188319481029072433689077692395721728074264905429850300395727443498562007040005168018385524603117112125990208862360137334047532206208800038786981047215604409328823661199643959439747482763423024092431370547620088877543287591638937626373105050594701409320135383136164277482271909175717733869431310271493174522145062406112099399542391555001367372394212591903694362593526796165456898196811240096167156414682497496406392822497245886672578189960567835547999230697138014602183679901519594286518910485038908590545850616135370308494045350318870893000231536031307847255172683683922992825137502924169959925426551530498587354912284574770731949577330809208753258602317465272478730581347397720662389534822493552779467742832756080414728487613379314769814785903714573363920822183331402365711789572985509152856790299695406312617922109856931129978440623021486652044318643496151189184476796395189490917011205672348382469882404242996601309428365821652150606100722104215538579823244379647556679862760034738515999974798721722068503957488530768847178425244608338330638671465241589106837239790308730234948235102725997024031355542307961910293605552848405152731042942429728155104257977692172063908336774888959925263292736467722700717030777543189134478233027810700284670702328175863376413786492923808744184598431970623499890610320001417723786127418211044132782694402823802006006671610593260004296503704940358276599084182212420438737420818391014680145757471050555069624280476597491927567530628710119368571490679821914694410292546832917937103271705918571292623632128156771991407575781849901030222862205973727358020632067345775304533169423798580138997396448234480214137338376640767431492753584297805268998310336101385587515899448939769886165222178313713019103534375298509175580753593092101596059253282564298775892681863101961103921560314828503572988086676344803999369331661944913822565635083419011053928561696930908464729510896957031647411368895668749836363622421758783276881103508669901746751701314971136727742359011433286023161284367505532180491257256560835870166001464316273232793054203611788546170912735857598522590347671989046262396520735757080940573763747463224248488375406782122705986277045365250985401296072760843709166686555891964383544152073421477616276615463146495686629026629282998394917692433492349680843903499806438399569184333071207951472120600196513384706572483982640795060066270888563657109096709404139491874780882310858074082240088945091379915000257464392085269218338512869797068361740324860885699699121380407439510434943572307118023257133308919874046353538399709069029894795765763511820960470968919895560127762181714947613882402207702346292461838214493768771656851372027661481164060554792075862891540080841967848326736484943532684262098917917708278098077953678551350934013027231709661678190560020557689745193752856018143326651424399623581650880752290890737144194726663258353806627956003674858184027792418717413935785922620414192322816350942733081101031425896630643738217874712206069887234804768257367759232189965530624647052081974306006383247296997049778965694612083287692215279265507565617270916410541033217479552088253322133830249894908314815958251626168649125377176054182494058357713005167344575669340702342759452343536945733511438779728990241060838865597120789782399513996474798563758098637190729665815802436505951231691899409965213226141311673507184770780594490096124863146750738813964248648229131030790463507550569886466722643193819995632962908157649910963082625045306252407422656012800101014709018721517837849370730503460614779249692215123050983909372910276067763823136422362767434320160881568472986654046806741908037379233020075316772283141182741826346185940252162216912627191134161445209923009052592542438927124967312632862770938094184158684750456400989949295671336858168121050616549037632907531951675995859079190236573814869413676290378114243981070761771756637162748020886083708577673831364041697136764886102002761878236768880315404521233339561390297612037882152128609676189909453191029638364019645328369513474930296719913595215756778255791215810606047426467066819333222457010356038104482982881955786168700020346222704220227294077885725628641530697831817881067502827429307044259027646853764026339284193502808478260760982318784790804627887969579330963806478404305944851895583956783961866127902811883317132658230209188336915716186543560614105327027960589398185769844921691240472112365297075115736233843294227639118504685803768437340418728162286508202094533839619405467903739064354532191600115661611695275717893752511480098311989066409121639450925467883317057826519446321572567944506034072460730497187795512868761434637032034109948124865111692256285232098175392839219756554571046294985995462477604912831472582063990455693086532542155601672396297404666060481243920685347460731160217300698654076368231938411557418075080624345145417070467673672439745525009031960590418345784415178666125235402630118023598074840546145003596781462586759423678883466709592317144004443629228642326701619454521862458526111814716813356521749366416471928964457546500794389349077103867705683156926044228496736774830976654359137907104975658211366104776204310830579057627365757262102802236510801024184529092094480400593876732147632132019700426724298818871787122440736568789016894685402527784799003749727276158126287506506324623803877154790412595636313086039601017161471869095542825507144123621175427757902591486960582024516109414023840867240543381099626170553783452838339485848049991507987229077862445847052856413854202926893601041965416124140183462772313647512845014331074972869034426901721270367908291582065946445976047130410157310188139141903322488618203211186301412993483009781326570953521078003600498323030487972010797037347167342560061311260156936566352568829835162128896313515868994910105429594807378276783223258548166562769170257189409389562933718572673050542050636553652719869200812354202098784389688869095808507224112422062612835544037851684452232036196568761714084424734756646897972468398862830947087163321799224582857585484825129288405845871946957112608118544079272397803834668906708740578747214966917792402572014437430151296567345308270653379287385576306936768999739070246743648561779048420040643689794127238323547823869581324367455280275174057839823333724363598813321400399361998885548369306158830971443823873515388160383669481198976020738884314757309533686960793714768670651464036850904655847889126014731276173703683105540709019781060589799573061437416597956989738660296252773094660665560835290507260663197443139026366691559368446794297247549750385728642516546019671464793182901086309806055560585451059704736879793458995394813188525084613626145226724663154032156777166288238222271583251742329559990441202315904089322754855352871884385210504969127788493887730034419143212478666868991229895760909385705797033717621522171990638654558624657208994238668764976075075696585438523110275579711611526287087632346092902792418862629588471666985357543626364726014361067746666476112344113454624326958890603600624175275347463563323388799755622672414570886917171711884277920644978822446599579827133381404976936964230690079303370743763253247930605095513516316127305866886242800356057810932692716109218738949128388992354880915859505183049427228728850308823100199689107709385683519543017960785103605180226500047115514586803609134602873282333521650103764716894597770488857537219906659792739387974589159617031544206356662682061276303568784361139600323092253620487997001114193591555637755072891512798796534366547961849692240125895476330237914618826993876560053315417380858961301673342910756914154270650774979052021173981000070832165231562022778367781782295749683806773197054488060164219473113574786492911781488237559234550783429685512545863588325157856769460172085299368516406302757903447926686323322951538895228611175742496527181592424681510687521280080800165870420038792167280147110669108003856052655642522759132192039078544074825787547846267079173260004722582091370014734052666306990653625600523253907910105134228504175666549851689940982038297504955062766385565217706142227667940004877041052904257167312596803606878125703046043541454666153702830611072966398529986898475337691050348285997376136767882601350166319924752126698711861057034342435667831112217644465943614655994322116237138475533750463118004856963491515588276520594971725038766866197508318026257138819154731355909790583366626747987393703134895062414610544436326027860056173649028569051350835505084744803215628630400325087119381407048581859187476001261229494483713263535355140786545196944662066979693562636417589943535493704079870020378390330391811906122198889542822860978787211921007841262297522839898924112227906533948221700004929784237767916252845993833530604325040550084395489411221704872627285005561355590446872263203800470723531710596986375350379947864822146576447656285266459983637509454111612339256679440083957136939319587267644368050485793159408800844284474836843826886157581239809751297305159451319623180048623910822214583395177994408303209359459156662605820955089426903229001524188167309172748507629189103535909049146130678149166025966852352881021310844701459967982899906990464932815370122112207407927616666886279509173377625537674606798066555299495070263807651686992208226209876798881866076864061614783065899562015881133367655891756529514860383728351694165170333148277444786725628321820016063278308525882066547381378178133910799403021064288272691035346666490931016299175399198242530471341312202668572027454639558283215387286974746615787311305510031677171641029549166297800171076605048161137755211065932973808021366473404870369362615223158772166158808290689345866671873440603726579331775539899865369580774490685205664017149475107006868025850507043776972312003976193349017389335908503609047361605358197403419140901038740798602413624593322485430216804472799953820217153054068597720679908215470748931619595868054513857780536163571406957202703613421767563474397574920844996911157882067241312213961256781360039788918528984492429689079547405573908640436617249100421872082472584871630920157657898536555850467965222896112486356631517881969999962558832002739274153555060828819650599638940361922603014395471247408514453251533525446319309035483714350418348550850942982209835384201438499784758004095120284518907725153404143363150158333575099537233427782785659855723582938239508920309442564628758010776319032149533628256086667122680423380088599197923268236030041394021553935814403682040938875848251992596087911265778837310134125752075492304533300851473731770301124941806052736836945277222106498870268690283122422813481772973926596123416209055224158063385167570154653121849587828073296288787896039163999028021410063519570442295694521636281029902839739544424474695783993495206811913127647840039139705208394643844503290107078429636277497002966690861532665640271863089978612309083506747689292976729451203548337524926188665327938399958395906384220668799938903524005783796630133833396452996403893251003985881597610700520192321233638337374647896729261268043851310422071822557233209145460651966197850029685610920636666360796530748684001076149082513159687875936101764309977505564962045691544250061706575026103516226993475276899247614998184071543798800554226104658895063437362006344610411831580736784298274228486411050797194218826374395713876037605653281399044945899783357178749264871283641543190907652020588565523191501517684599048546326127120792106743680956815788496335224335145605064667073628711230124206007145787563588024740451801657793740105531632428286249112932747312271002622752938177000519946255621507300188054021928539791438048464287253727997303702240127293632412482081717218614454164670528911686912388520320836851384052513332931506919253824638333700631861978148764734308338717390034085186198472562426723547272041271483470244581670948465308022801032439957384725413677205064318583137442758574653579501852867376966462309143751006348110986326000249390199782527765483363652297654458460491082973509669428632399151769414365297417788659040635510725339254137771438005649207660799542747504625800108643650810155011465132685556089971798426666953143722441409419956226464240434029725264548715055976748587902014497398087401190227438118966725336275010967915159210967987856152123356564205243205437579250015768440950141362596572711023207881060832298885081287318202854063197436238087167457399070081711422129710682964065516561093105357919588884060907645926313446555498822442001042673393335177720242095495153551840978139562178347567354506032878170636136551535759323739432343878407848963860628868771708267302163159308918703154063796146171346513197306422200280515857029556370489562845653885274733332598537601697152421182523399474637130039310316579964708114811937252493292034859085977333964598699516068804836935702541451767466260982347392565295405957377244585640743963891138560892870126827696820592130797373205101941061907639595627220255143156509905958302440572471627893412375238959295825054692287511804318294824468926078172914553911287776563665452879462583060669469226051516920891949139948329171071130278105623717872316465007323356720241617078739153924008003580770439019765608293704444098688754919619194470667453862212028646253578584420709103389326759709672730978377439697376922849435724918472243842944819881180794321483360851035720219303771581211799964176004519283724648467804713629494206603479990720990178745974997032822813871263414699675127027505350531504020876292265449500074715327564131808816604164138699799019974923266868360088767557015281325251495865769437611558009841922184444403473318658153339646202362257692346206586577591347027860092088921699906519074878157478905302760110036038765958999206283606368533024285486190704370695218573098293285508490262471459948326773219295184695831884802364811767474729815505850031948784720472386687909673031286714999860900993069268748177105616159987243431486137723372959888208181619767366348154037136784186172012536786879404485770183344529572008116457376541652933451114303172032510052292251760413434246441142285119304907069694878408826660829965382223976050873781076494077892982578779848012998247019687686130873836614397891110229825384995475574549270954297486799348558677557817820831983079172933952986069748779236858145168069633186558476919966746818886554782920498586132076211701617262430811735552796684717094172394423980561386916210492772104025443909837110398646764200917838859177196336449529261379839184609201657551688633239588351752023430645674831995671128992157597691669538264414290429118900666164129905343613245940828692276054108002950841337943914033047140154226766499755591493263432001910799343911393326174446632969065200531539618743600552712185810677747347784281202368181328821252221161009528588793720029881866230745161127006452521723561935332711704107071500617663256535187996125648139097794133205920474798612731682391337193449276069472131745945278741913414854612479841908555829128915286323896838363040435797820110924022461286716091093364326029882944305942171486155238778404035023342309021350600622426185482819234639532907679246114760119074818195359170581175691781507168174243366809375216152735234805435737833494869401792908421523264185814546743160831145205873948122922791731548745580146418723508325427341866349195069314629838908900949473908348910898665610418713581338051970877877409147046652249178505131128937810617257434620260648892923592419150755886187595673118839861217326918489319261973879935457086602696433881382265697143501592742910713806775442040607382943054935966350973015821305918210468903561966313773078945904431410135046107956464734584939366286789748249985465970246944661986977800608305454043533420053092516123716257210679090816834544634492592043964846485382241806214725390917635385508481825433320874369818843263970609712669351243177707001909080501951802081792402282073880748596160626392831195711009198128034204834844423611627890240876929048847800340077677738515750882531126417728404977981379535881444501624868487144890346354155683554623293229845738929448787648357005313605135245653535639827026931690932067193064144850484593700424146652739536771938507123706929073080197168056764733284150917229540123999679203001222253429361021091949072463727413255353332687512840751728690332553303634144179090342896830827053524351883560084316845177371193958617291255366832531527894520678569597159737945098713036961563983088368730194505912942488347026647938554702459035805488108690312024540612422918303666075784785880773769618374863799529747563630147597302738681330597955285041537809093546089901897509721978767025970759203193798096758072305651937046920307618910323007012078772260315471863132485796010375564293524472318880147883784279532860231720625603152749891695886943461732669217285922869428930252659056000297701609481147491895960794210195237147803679704904012236559442069711543433733630646777044049345303349417546928377285304226829284417509200692365827166901485532417640348309897697259853239839412725333797870058351564869106791435998559018477866838917821871388024257075141388245512376623012841766592565099800840175569356594369839090434110932491476532993960406506493548541884256157175666726825392548025621588064577044420588518294710762699894059558991698585257626102758818061673507824411887608188190733735277422336882354889939796688931322925104597732007487117634628232477253872655359805265246770428336643628379007926385337167182793792945203294214571124331610945837437323298107659817187279943865478501442715646465499180243943044115518897611691534661840841876515379659515285528956991430246882661374575059536384002142469741737436401109067780589041791870032463677939693428964485116565578648265080551229649368941801630162903190644296577678335430907651210859933412733899930503212588295468337121644190809668807781418162969298393070180777143604040499956933399782703624548020649811795082133752046136063666985741340330041870475856534677521321606338959831153389364526262379812293388959539288581813743623226233781352417046457207430188875646795551725398761690131219791052011538616691775775472585234097717145298564103609290546407110640678576458611571153688967634347255789806991365195103283653484404152264756492694365974984482093903073903604561844077242929342422736530663874729038493713791971191077384094315172298926745027510470437556404671993211996553879118533883535128447595522790934167527214059414291004194126411161127976677843611322678650491869686141747906105891659494334586439348737094043891858660230671077473571385583455924581571254852521005856910563150192244029603619203659273760026149406915616625709033762795585223070325056300965052806530784266684689947884855421488709205398787598000655165088410600804744964682758027221786750188316240213668444733002241323988361748685890331466456698954872541509248235957065515157062356664472214100630255428381842241810811242835794934066422800214683416623499809107805751326166949426420399580288666163671140692465825126726444146029904354572059962409238832328088921521378895744978074656416780530166307826960816779116655017686087951065183357144792357182751403553072931868051731259199185785674528222396648756224566583679192917374370693458598858318144202023666624519833567153653080726315728049983279901971389942277556752358241652813722847688068462085577559792940310870062411849700772446179124095514384108738220416980375967381419194187649061413618063071827526714820258294921212632477098357044820628984282564786496612942895431267384640152897378616159033501848911645034176921096088899418044581241672731478761828287388986844030452894939348619685143317843312009368913948921931960156984320358763856258569442637726162341255581338931377500638717553626577013507073739720706897932618683099683904668426188088677220721244911879098545858937509884320132570412983609880556829623608395756964172802389849574826504434225465318666507869313661651393936673174286134300834050154454717241226708005964154296737487046714447983576679424696526733398734631483940907304116402025966806943496434024442293272582620631518562799395597282099107856845305937440053667169318675618320820239372422130685024401203597830247615736922433953709574487977170051460680263488137329870408065844275950883259890333154272373031794307055813496740871125428847382546518632612794935121524002859644709532151509599949137841715667072361811377719340740238119928353804722019190469560820833092388931018262091644607027191394248831727473570464946746459823790927060244294438136299729271720585737750000127714609461552872739126326263853680779825154536192625471297592984178572621767618545093211867509315296816627682122484989511826134540073094624252125698169421280126122364779395557368006604914831817300251204005582890228488032872153652562350156873051287860951419341595906297071385759579852274748433168779625734332299224757160112654116273529869041711279223978292717829265464383912289868002160247614487885393727598505863521413070113308283345840127070063485807404667416581823704758578389459274671715064719414326683452770005809707661264645920980871690720333465684511232895024038580079353202932692800095560857122435113029946019368385182060428931007187721415701171155991685628640359621419138091931541095401707234013714927732572075508299954972017496448378865894229805647046793398606011823879860752246347563184410247755470533636897669254713757741919985624933929974468728486468827054674069934610719678527803778973327972547394787104852747131754113145138903865784386957930874502359386528186527076801642215778996162073166576136654662204478016640659792267186546562991274285087906013396312796617542243542280741029655034727089528564528797729325490399295800511355959515180492066146868393063883987046671090872416412700982087257002281921606095120815438904670900484012838682547433206324889101615671237251972070066664343856813559107549883683932203430716883168308648499977674010271668829386465206805985970121395816633072821009828464781837272086801747357245995236406658310757674014397208754198486240911792902657497052441351650439543489418381714877571279197701235469551363205001609540489154287148023658337356714605185559594210093181579011205839678837830416091207648137031931917554792653604740965640719164766770018222915490318476281489526922699670057941984681166276948699923633359816276248303352732956432193460012878386448595654121127123938805754766737085484521427694410042051229214836816842866822684740463527354866759014624616190838492769778127849506234028388054730294977577235519105651287152467635570816396388014112521933834715180963364669293315531993586369971072327078180376648445255958493436362379944652051873386776021660413917158194622379224408013377038024731241083220800785924629318554234438372814367565135693568678846992959239364302473926979606971202671253521323403308900991392786878832422254293453680058810284187387999376455772735447167638559958723281933070533209608671119289571180000570674386670301360339472598080697958245683127689520038592447380880229477413700095960695729194835319811817349956328598041401404815346103038012898320278641266075818340880964901949547208605969256405987266143014282580970587351519238029648696944717590969560192133822185514590501352679590631206287100970383903886960334044675818408208143049971150553605149580841970042934131318991660745445911150909831039042691887368823943970227144666299744445372205304950118361157266666598121330612454922420582473606007737178374687460811601717150176491106152350028399468539089033325584533124861573011900609895288703959865392548584725980883447586573537404235153763117872845403423881939802398396357004429137827588932660024134582521251788685888805518966619628810185797462997834356152615362953502986212674227259429804853507483569238150697411735774063627707728221195501530998671915755207210177509555759694030299640133508862998937948008048969215539835094126055156940626836703526209955811431749550050288140786977137081656534688619287195506912477309915175625101661608352754473262949597649739361468640788745565693176422641068378926118630400314661377718169025013753855974666586018827940747014113617588365535168798331027632040670924577825090178102401840954399731899760297592251735131135552864293662144285387535487540088373920468004510626227182215412422330723627574412142443239625838770857738684661754745007801712294119315597426993004463683454052535279715230448820657120585370919131213519806365809411303225916985545737372943822703832312814968174607039487468104983438000214707422346878545954605008885235286727315135261116034358295246443695652732125685760280730981821432022074641016338885597651377557478045214708065280977596776298543505884373865383353369867039923449535350262330369329054244644788205596922055534899753271751228603048436156507559093749948475831356010372642273952599799105630258879307826091488376589445326954451020876027860663842831298409811139484507141579559631294922137278858461140904198863132012380078647831663365092323573704090017482573921952481386054573534693240003542608677961944383878635868689896860018508840336515614079271366935624679084824744475019711532188630901486032570964547610941592838760101860911698940896737175479662784440815076608310765086344992328572350461706838501733625456334901401664116593080185395471174602556146117482339946712529761613310729501309876903773173801603470958596026781494001510823035519886205116234013300439039455153536942758226943615330318657263284274160214713686146823009858725510418593986673156728110974476582993502559881957933120690172074490679882177956259732851919588924560085395099411874834481371863366492879368081398653693536248363041957705800998872955110977657320306177794337226700539888291096545226966870246000858629368391106000120804952032684616042988124570236764857748323214829296648599549085949627056148748700347885673821725133274842226968359708992470674585583653530890782406577595644789802435083907011806967385385529833742936953785433946171676223855143843080254685953795616658020160340582539168713397276197880008094291420612337737673355334120074177035046478153633843091559772391032918984165882031284780472584841216516209907238504853545714459797755499556267754504792320280842432984196157093393394935695495668962419384059841614597527835570476452427844751889531103125251349323376709407303548919937972925148091773279578258393988685552217925589470484267402255260468846038547960664089998820088250108636383271318802562885746292306622056196904425703436717326140386371186246872239412489709997144333155920583133540544485829760342312347609288517893105220310948958231562106255672084657931664529990724588448314280842391877698794111014663580655667939036239661360534281651978210268838238732463662728400980389712959356033684917328964862258181650833981879145633820970564189155845998426844841740838238112599251766770513873800235315494115314407287100861313881465610289947794513296367352191945929924782953299978357296930944407318226569405598045511132834998458922753310721080415407743482503052661712583317526360949693539165071021558924408332952429471268252604284807310626728970545774187491603632991890316996081900397854826250856399604732214079895464037966133576796551429004590647934689035670492370964846436452566393823011347683770218546916686580825976255208064420042755674369023995888527070034998602687518118953558045460778675787160990271169103328561241448823967204931199586032351302115209202679973730775852191597700995278810197009434796912210324985634200610091611734056212831370352193898445673339213978921135125082743394919283457866143085673203903593675777480469915892687583378002297012792538830146862244336145395308757436375503511138835667692571335712872833448336174183381717496080138880351802110151137957384765560824815891210227651664043176743721565138236126202037542369157645914867387747792606970583441014400432383254228886360266105228010068657055286616319360572148791846664319102884148512834632794291829862388248328442806859197170998325120906847098772004454962957773213407527450243327576646511892735056013600280215070448432727146921343388283451383207883528646758038378629807612256205790100883107134669850536327626507217005416600595462537716448764082279699716178953577273150548904913500914915216118073239248284100522401258280460906056864711733839923565763263519961110843270373203828464280365686499317544074105330212226543154759493413489698183467768768668280750447605635495932380787151032354024671999290882647225031306455914137028624120722366043368950456899995084027751549323844914661585887762689400795747229429463288788618416002789275670934367502523213860144215756199624665434105010640946402865788163330021525422630517922711109806314518365344226484647639802025522951724296835126813314880847141407114786302397975547084732968953089744281084402324938771717429011946551136211837385065665341798816784113478388573288504312921018108265969552365240157936834007518593718001617122679046352189781580914562691596530801312915010455307082944994067753564482539316099794257771897078009699289863395860845386253100123505835222935244180277617228139830760683147866321086688776150751933800689859315939367562185363046744568329549698328899889707031694059765857328191628850062434643753033094372354015666942155149457217959040039772181986588956868639959441486477477391490568733507448498028130972796860752051950603755773065844358488520276732180905188180788655408535410867201046843774148238338189915936219079234365733174788512783890119820213939972943001504188813595071236609646482266535136558393988936040892682605212024205183486330606140332137919970323455146593082111889394622053328527983287013748347081018142174104466843183223698286763229188581684609322588490838014245675001735576226087263556589763288902801499017340252905471426980545955479037440714228287764511630512890700002014980280854968729588129954696767878260001815304731369400596477013977798194582868448886985359515726027824560152296020396012666666034360803788244735049397172231513387618238856598747097429641115182385208628160247201685545443020292529218874687245090795779027866285822831091106255590509073342512239114783897968698156519883297319474625425899770245340072601308455546963487292878546062817229770682677952583926966038556043143565086623133733807825067722579999266189349689840287705948352513511017050748576185762158511226349599942310256548181873326026532553064479377533110795966372916341429632400733941546578181665974948948942035868056030215697246441804701733679174799749036589750613028425234832550121479572800284687829533410750120745109900371452802089130408362329844040516973550615103834335200556376758450997771114197559370943341896335449093992234490945454144898518406180213502537501788535016740854488822064304088885119866936368991178546497226818516154440766825882267698491607110583423081362157230978320098724556792849284504308695049870140327839987777842323625654010435745851208794648640827625250701148013251975305476409723649631588340014213548878741340165565501509172000808233491646310818030827299104412770222167168028864945743391041391106347595910112980161435434988431235597955218029258607088870053427495775129017434495067067411447624365999994903021719284478395605724737756280325846683004538333398370260071789135376010389501042836458143775465463283313241238788211241113743686969708207760482254560243452965938422858085280379163575292765528532610876864965886385291595654438224255355775833118239481774342808668573418853181621620365075081207119170834873651492700967404882917054219030570350389175510751000114800159279592975021889918863584100782276921609281351976716805948480718717040822633436301763350310066717374538927020032233281409866808343012578790857941752240363475671763966491906101378798423378263815445644692567926904358079744950079889911085146212775222370188806813082924600701370412174264531269431668716016988779012469751029178842631381717900485769521157297401320284607069312816929174023216887495681225086831654067056834902737693660329403394345001699643056157889961900795966375118040221512302814428800683623608644655351059316043933589298402675637269134959638572522070686392353027451235938453269881669728299295565643479438520752099240708547458105734569259994451088538347412712783858759038881358296891753790270991761959542346914450839804181972622670313728533886301681858627600296181250027201066473585571501276208226972508431646830044604464843922735466538626689209038819468478500053747851129571971357540797828570368873557388687514485893143960773400173058995020217935880822154902881621870257675914766256662393160710782486480451965079140978432668990319274207234217659542735449994248036441193103433149126945797538528360909129515455025763200884559919384514200549760787484848747312381998551409198084973204184838192048920607484720544109292927894548873061397175901665515349952929354929398881444619854835703864763906078931360985935173560467087897874172570818058227641331600292419644034622347867164560256816873644847774977381292058611219547521261183845748242522544229036947004136112779882357428383400448867528682480899799368030996469512012416342652859073065138086109881209518171455756958725985050795448804677010896853900993934609331415362286443450080272120305260307485979928730041182483065647455925901212387667419685776644014699986821016025872234252892992783064836116111592212375853320162654823138002516675171327328809106515717444571295742835142000702716512695193094468454988870910233480660863042398607010544024023093334079775735365457859552933793876648210177127879538787918388111597029379884270493408694734053120122892041762955183806947110934797302989590189202058252310019077614706844205402685630986207019077272591519162030117777984847427540805093282212599365484660173438147798106996636719641378108967778677617246557541968181728377655234802843815807443917302367218541938777493793912492729473616325068342330816647641121213020643793326950377364515104412540825213873817617207663225768705755558257426789693398516033350693877481842612536169559549784395666612885334019543579603297662539353254172008488397562983979711516581295983362615019087919739129653740337257967683397687680556064001155694337165947614041953106014516782901170186586724067524793766515739926869422792104917071803775299587556176335547432025812930972148900214915695326948691789082322793633744002296123899799419748645909331515132230816004600535306970460155647245884429862643861109286696864620350298132509225285880823256057907062106076544147874570253328382959593191236779067217169335200047251601898888520823092883850224822621315365409971734894652070911711186145478924758975010113448688894505723968219274675259234400689750070517298461397479019652828979861703210612130573970927685767222666897663517712376009328884684536968930936671693341100246898072704791238735627371377064390514046037140045216429832343953033137528967389084127407046814078623898365951006168527117118441024250663416708340691741653370752656426613451503740919674395506228758151856799855351489968315076003433139470171853060135894324868792381953483049435917059595898453634472970678935004342811627299072340736957059496745682313688410817661119574671092669044388545983310019293843327479509427335406592247545263741066227041434551329251000601448148699250610569552189232537470431898268125168484473255636201187185935342073220616623059806732654260288328223116096481984016604974640226687881845213858357668100424120299206074714046751465790227365286528087814891868058900707217589170520285963341887453568162597351726760044884636639152614089816632831127593892415286012460741890839857153933692805870393877237596030348524456898640633759007759223229485211619794314083133426950792063632516429892290380011637330057167065394810126018016781230358895279981598920010289370639213851693265053550834840463479125000357546726986853673753052147294715472454443415025391878847268827702051606679007749309745976901456823711296947623341244575381698055858032320408561414797093329957965879319689885602872718989042891653502909011307791210535798465064747043520455250728024826345858889949388240172514860272713190033017064150444611764419269026755548878827543002699459685806379883683097066803113170237655481317843144102317481528000297578954328868510354703775619092043665236165244558904730322671971765045399518089531511720920966177218735921315019253577285808075625324747046472739818765724206679336908436628017659336018176540956399602519796173935965117678002981359492530613127486951451551658560428192963313371439162587779530572154867573338120441671295456435002061198674072659839153776351680651255033600076165964967969350706666226001339900238809085779225407190889334679640271816334325605023519226646222105332006095409055417067160884421352270949968358186234857752342733704016970055621301763818131875183056118322698922521620996229364261624328667031194138324803987934232712784065844433948865727890319468084294224222893922930125568387266211371408408870352380398444785646875408922041579928354845448086991421701603808027192411074744321942333355335794689305819990895249907838613095964345313867885835917506001692629741895888632691321066444122139957212211261602911982393389240088068933736352710797656861115202939349776820960536180811793042597797687833627551071880241889588496017430085965308576485424107076145808775946221271744607037721764622701865571985903316029237783215987636642946627768538152091345042029506485576789348919826401527492727213729360619350934700816457310742982847250266975300489710081529912102050572551012696872584321836757071065601507288194547003677267396053741591920641733935247374430727544700743417916171321726749498053896908028250316861125425878056061836442971268988545697958171941773678527478943896059161408493651881497719578353777604748014864502492744421969930527484987064287152728880212947164192081429790781761401046593191125465335417469486483875032180052376131806304630481640622707153338240080206937355077772811563439500631565449418470680099722127321022148568224368000514730389667641543720069258365015574993888533737868411237950275964351861827898324396322002320088075545779379869381553336999672031375834888411728087103582631912711523441458863678986050663087778412028392949248258657422902015496292219605575376662323592675198293572270127649007945234567439405879227223003135785304759815577810675466763720412913630247271715515596595530959881704655328473978290537357197203994444711586995982038814504937881732882865103713215371421280947260948276292224246654987590914649219468581975766132181096270890257261000420792761040505441398987229731663547972774712793939547250320147420095427376102815787178642629914900279132064531657631795057267364448288637538790726477656141793363189471518196242089169028864778856498730893247406239666862723580807423442371904025893050697040180063147200041108090489344720825958958033563618610157713851704113514475408593605621526808771155311931821097378093995625050623210215308705902580485126696274694584406729836240543247756830698470119915718654690820566388472442391038570094221117118550411814096952692211725040654132913015561303439863367579174237267549219506403873738513042525657569178498888421977458385506642067934107825879248931860938865039954944494584211233260323510445364561644490777489932929299026435044553085413496148123404225543562290710442171498967681151752824209108809902626078752147472184375920304547559139835423967284739590851284970056038921191973183967923109100526981493328612662297878997517681444925191481837869659022578135567885363764583368836481131963920467527390414600290519252142963568551528102609537914401796279852317672557680437270335822767185471232181050597791347993221374853866202088958338525307794195275111874215016988172512882760085458152873526484611931569683297550269958385159094549264810900854584872568807776986345977857822128001397858938847626942880389452010335886409763796270180076756342872704488275343893818874444843080884843458433092467859527192282274699531592386941779260420287978128422521178296304991538170716874293470230054277573331828142036638762287649564752423031494638847207311480106959773522181305255415148956055801249676072798269593991876020409993841056835483413949734353148508029185373310569072557689393305984452050809235788586892522902295868327048890546250343114780598212180524542580558516849515050707497947218368708719643636230717098365014428086401309884663171814177705483097453954646684002040777360302047170814811999595720739227951505875296933840869733617436631261615221212242227957038228800561776221002012603891203107916336676706830267450072714135330098977838829536403017954672186281748005728908637985016169207752327135951248919143120842129502418659192262974299261853617819198864343350753935016981845682906402737149604812268905654369016598691371583821448138628166544291047945590262196353966756160410922398316474259564460199281287705655700108628436785586885692161368259497196512848164510757217083871198616965296597659247214445988713829274153190847448419342330114569346172553546017664423925695333857191773403379201768609288757097964568879592175879202235413903019369582063358924782917887686337750450423625001177673603805951596121720967847266092299049027987555923327987821039550807556869515966329509586736916582505195387279009963945792331767440004153839682968766132065906371685925931764332563434809294184980062166066619762931158365187079883751147026391203230110037225001427793660503585457682424986620191203028691918151404544845769772190359186002432081429510727327348111366428498718210034417689924511091167340004710939683254066118611527275607944206055989209505084014355446866179127263980182930086831662916919931321270035305940057562118738757900889022510552272567274210379005438836902541056566268866087882001801454305217127488115726599890939795705065809726652296354491247385214547261718919731143852126392509506163949417187254998691378688816733404349108875779812313017909279613046898408001047998216597226242365279010513080559049009481094396239641596455582068142313887889187752369538037931445698009858412598648168540453796549764441161456274238725917607157445989255886427813196440007545659426912176748649321035428033918661979014729585448542572856717302607381549584953858742812040460281914602270917484322306317753057333958638326046651617716742039193962412293449745013620656639138030113935323236272729071017984036232370217218333533745773203541139439005720564982333456607829601409526603550324716690135118725443526166650747686616428514707492960664318499444958925822691649088087683449013807263133083111075409457232697473384786411589413303841266769464919348181174672368653266149342606113638956696597043610437005189793042610716608232262554129164329554029150262133692054984571018274592530126237321333350067070470116835526395380181006051958310538767649079397442647590833750947883246103028613030796421907431170377264340941617370643343377000710702870719715247480562143539194503180632122136889128469481335205988291706915327467117211492009241098695325200630227813060852925779924693816653273747859089862404228989305093748264368763137715271082557890537769369873619952273045941877460655360771640547327480050166621016689258532330482988865016220831473080732647410255318293885244284819580876995117193096460527058980740928764281635246533191643639784870132882969757864763594895644921197707446507843678024757034985167674502183336149892721839400050764422667625572176083310958491998722137842386426324053433719737196999597150689311152765666663244886235528747684351631183769520104638736027296684314273242530047942740298572212908495047059367221627083359583825527430660962386530370947678402828896500917105407529443196123979991440444522075064241373762013219452650077590651258902728954068915270001351002013853935061733547205495550124068347565924541665174899941231076477757376764548802148954058556117322331651520765350745881152348899015342585450743625834006389608090804821440027567842686527371008982570797724055287224329814628906788296193235738878760654257390858078757991287578919596363367483708430347782759924094822197712219927763962481119868035525195153055583592136999300022037975928132252425054131897344612560137700858730349018117925931945203575171649235870881729977113868963066459170944460629718028417168683962309165899737504524018152517729518002099771350545264943053188362538339601559133743905065040292342459904181367525955226764905609238519804604701906490714548096603408471526289479369940018528340426065577408097493695780069860771566350705255880049693803590534643283752967842046407719716945759497708252970815347398493412970020797253262341581318869859056436059940414418442055346143523199387220605840966962713121700114837335089253865302553469008937405377898297969997640847282114387425014152378355343498183853680214690670988103392139643093502678761157576540090761151063606444517315609316479835629087344846860807049934128824175289034183873165737923709652255305650819757689827419954143833883805685905555692560759719121712053474695579413867683569957530356732049942439411924624517974883279504896727586196045594087922752661297492431288314724090254001062390892012125389448276053301416343763802899245099357620589849776715079985197330021313544881253178581006676575163227007757171882880537627240808842869929485271451161140424760205945165618423982787382592204430810431055775752927387912153522995654719653626807391240028104976283268949078099682552413963083542420733430052844018216523744364711227831813132553756296378224741521783505951846392802761426118410427443320431491502432752245086713594829185400020824838268331391994451151539950148519229126578952762871462261603532015856600702428884420018765819150831932543733746747652012941687723204034634188822652246707529674919265034574077427559121957923434330366146945062919601707795838547368389491951514198709253712205158201466139194506888392006005442671925996821399027570961655414849240796411477988481870754028448852109520870984724755719912192772367087535908548492352205510122658062027058840849291240825187575236387725510847804160248761993469848823334773147522735229508732859963070660376820860626418120412588830788930666335838742120358758440557652488045577822722229569103077319333145807145832096614585568124284818126450981227202080504268699816491724185086450097585931202662709666229103804700720783042652075660649020928199821296097843965912845673159118458839800942854361731913872095180921644112494137283747924782431314331231568191183898647148106162638448945300703099823691557628782429111065236867874777081647883893802594745816960556104261078508147386525402182278476316460882439831782123813185288843556678713657605288743914610476482406472265250905223867845813521695459438021967521299942473195666098596826935547133813204282095265832358940219987710279447918137888262538809822749722329396812083551812665168065820816687145818178797431602807523049702715736828225762574082716788609217316374535017798486756368807509536030447103117853391495318003221048294468620340936478274595352373072637331095607858456811215507783118127874859390408037785214551926161547467260885094154425188525192813322303880083111091513400816714499985123223642470783399595208145814304392904233288253442677849517393536603139984941421237499661374770313153735948715604451032864485163903157898565461233035491570947655916820919106273979926752789895322819082707057876336637796276151595379461056365787014540232921976600645149578302068958259899102909856627547160219141621017364840693724678816228853150059504905457903363675913577645028901915908495105968328481161438134384070952594913305064350880113222458753368087613098433023961381139790512476828416270662660534843084056764675708835280067960950568882344528254877717807632855644601027850202144004404076683275680869308021888829098949666781395059669249545805172670742329449482700922532170519335277502489966483151150405356765339668903626990441017632172531069745176938511520415764278190626346697421080646483046120315191598230334098137692994422121480497834224785153587329547800058895680056910898392782576532836707062820089323655508581649800618007020159545493999152126414418417080625630307382233548904968260238576584703125732303511966092542222752593600390290591174904194868714282510542323810127384071198838792029909824716555792888064758465881060116413732475505725353599816913916816001729987051386689310945061615333193893869544883320859662300535659492533966342979061544895078100932003570651862619523570674803736060570957470953363502438363660118561086123487476361265906410416631682324688404427581280257299119623068472420566624445054731940559067862776820999986602231409897190499609524522483307356672178152483001724879019111841492527604905076186237645133320090856257288445000239849744043155959490249024123930777752470858609554585708640026639006360546515139118845233311908842022695771653795539770179036569136560766554759513191872727981198849925905994774209650395412829849647457038944242495669059750725034813060864824006737637975288302376451298025989109635284660397504070629282615227304214754629961895277287496317706104018066215432523388288356637776713019500708122190486758376402315144482404857236038504818386157855872445134838242673376068367545777683703767139793269249600782477720194648957408776369396392776090584547385949340042931776905172713109119168049513229658057765727925403899844625092303519088486982039346048287530256396138912758186418461503281819135926171247471555418885759519940412159493702896438047012899639141245022601480400500850511883550498925609401328282129999161345760549231653300990521105774773108848052448089601893500134513416017918406856674671919753914942258930683108940153906252638018139779807831064029219598279854483203593566136925853948162167464316720409339440043253742885309791628720626911378743104607509469059701160512338048232600174251351359136461743884401652653079402597800536020740944040942260588237716103179288744905327455209751048957950918213500905810649305955277702173051312731336721675346854412466955511418115727695236349628647285648228513543669971737265922688853775992891328281051616445001335765201070062145329816261835536826391880173061054605097629377198976110719227775109128875614879191907521751082326305872115160103422996979199874791364190320265179632287468059752155684415269430184645034974676042655647615451198779169434659359527630428346897988617900078970560669296868845196548924759842059234873915866080231953855573142253999556741007838274026275618568689053413681361258995378407660668902404113106410134058195120383031019297065381807158344928226171905774504738750069988973277459915102607922836150905626296590237249790477661087970814417739709620037241284869127858549626821672528725498302459039851100388243192106449017661563107419881595339923552404307897480132613620098864119413064956306115303438032722619992783895343447614090382043438746236621702272490179372888215742968352133441693930209747294465966749320194845124637238879202710369224422395963551664183417045601580152183835592205852253075685669234730773366011390707870528399245976046559169777246587506161688773325593527228696603215428801043095304694920643964617796819660372919266788036389018280529188258818806331988010152148426843796845822241844827316855225603956698918802854122328989166990290932438128015575588245056706488644589217082525973181739696167784786423223208205241448475439626036393887827022991148607465314987222490831145655318202913807635684907617722099903659680530932400381142531628652993913415481599997377223409396187095949545799189721550912480399276122792157201022189933350628751456147312628988480618135345640187173077969423745343951403805750111502981301058890412828014090924023500921632877027321684196967278060943425731677812574012925915788602910094565346546718830800467699559310702608638945107547079771624015935210365739693782460851251779791862191873775362664761957482814149451936667929815842997541309086947088784205807787966028931370756017764621334305409086557946147542602825726456774598943199945103373207908089731634400078182465628162520128118644449904476707532789730441193115445943519615970622790914097894296109418099463430257367263841756744869238819619713905107512396584412181118158376924883247814067970294590475170084872591391606323037095697100691689442620947718330285229591838837134937070105215718587660300521698809696040066326592427012657357920715438314957673371098457169182793949844476578956855422170706564703674781051898829655596624656368553399692742283620153649925578086515741013943167123261243732735816030349220866035201697323823551738462803071607201030638216332376657952696660881030125290417271808681943761342794824689567364328590490654171090231616981455086136535403422309020893463547705990296313886681349647787929617265969558212573629942573049861969657330541022175110105077531342743425684624842536799626429702377214370781971341075414247933341595903501414550692968348914762364886344092013738369843945911460050571655345346930088164760169659538126063371080287285782893388441969005614615045863533927307194548528802682563143401725479341594988664416951584154936539717449373601422604804221671153088578312879937815181528069137412545395789046010504720581418710085595045689325193082585889381554848510817481439069009849917272915867185815132320032337405897113280442653750891154354725369876281221948863225674097698144233761464103545113390443429648603166695876408224538420819905688724387651050258747436868126042678598070187494556974717628341337787100994139837163423812664387961762389181027937713491860644932627630187588610313183730676939906717754045896331950977544572567842968563884580245749338766428955163153450052970688326983926661280465575538884531271193118057637820093574387384731167915431430223157649128962725101107252691002460719179291349882196891609002647788210857232822200660819699499174648148127928855106096189438229340759634281112516526786686822160006219198370729256402949640943031821530185885453975110366419993115603732207485567736079497579202357559244612168465637995929872249606834904664146967114105339182142166429788949631862148810815152437487805319629524174095991003400483441965245328647257994061068003954276745758078384451922946637620176108253759856833056583907126179405458134269141837490137092620689091517352852991140970276540428606418827834379481514209914743820792384997861796534027159865111605944350275851384630904416724968301298342231552231819877290172124939651114417393688251111764619922252342215035507453634412751655910053155487381212192053558893180283745793622430194230077494250610979977106935692797477323811497670464261195737411737040062591990505059708839928271722732931850642426819725480798931285002996060370663279917032963081356596814332709600737101460607268338376508743017754267892830938039295992523400979564727659240800877551326027060799741037660504014619397020801637433574843229671922923883168837451216562388260011540051318454924166300410887755903614109038876759082575688366557920971649548222813279685150134458899310870926605626232608740437800936342799768707948409205562367948811351800661611150799686966562325762783012086859923369270023361488240815694249466075106529969734061795781651575218306936419557709019792818196821401171068476119081210923392007393061075894619874478665718744199557743295323086869401089112994331974192508704430555054918511212160224137205412330037048064646519078055227698739052807934420081315467519679303900470703159014598887879575093297245384337729658801561878368698881980907049224409418737197737399574915507851615339079220027356366375356565215764218927579701997571910513686707457267817815488103401753974305459121640282679582461405634467050469686109257071549210265387777444640791514818030553840609666843230790373497182485623219446817179846122253897199579551172453571295832364756252491233616904974093739014224431237751216937077907784036895435355689487195106755814274934144282446075647670527520008592267756840686779887258184744843049959126368065878874174544816642320237363525217273802310121825116001815990545102198290453653223687060134273185351952759437480144803927332193793917481610409716786450283926545373472384718677983716599572320769834321769706726576439943136606234457464076297458641591413443772706785396041572066263774502326808853907618809571091329654665581891653872129711059990129289720789107784633470743989083686950883335221434896055365243392102727664261573097106470489386361482441635842398247050957394205083484248574719491654695363625849442653349178041819571573667672491645798154446992578790249964543087121895668575989427888334015919617801763418548836621674085915519929966984630139352575444454380795999494792082351360236674588460964217975024530890989502183459861515427487419024968450844183753046080242315525354474815674287807603818231700158683926456154812924943477021696414371352610458824413859110488981209096440337514879795002434913370030124377585877854885968287400764410322480098255090521545130487999121357626345332077047690810767617402281891353597586240580504790018716482350497443987518028041184179973749221030752902018006546667113784679042043515167417399210173405533296707891192886234150137904322952063200975738826326766534005573749780940640808512911103701004257508238107754649615535476160106064557805565242588209227481910242734085144866092840131087160568350270265703020940609738051649043205154101516335455878477185830423068706896245171830199850244188165292755979250052429089766356593204710041693469110276711916153266945085845170143522226406738579314391313671617210911521493146759345657773449227021234273340792480484360426789733990757620635196184263776612573935011975220062502533616051496427043206786319410590738163973549463436701107746357316110349251230889548509773659047394306015431268556522524051417736336274023986696828624929680072885596587064331581497395822940459493671179526580479786719663172885996211642232813317178171084026038581886483242147848682138530133891460004103321674289439224501861895842770690809691870821102489163960440538599479184149005986068874709223570154990690725327278879555606607086709169014775529896327488423018776801348945732537109318549335244311374250951144912725052724810258655553875182548898746099645205149847871372032217092789750815573410940895569843357456615414407579518128497344030718103319858028903259153864574029082650366464909771471103551410770860824612618833244537466275739413948792924025003116540148253843075999974001880038534247801836136613481236147489761176771321444370241052334972102216104336323439179177485802961045503199015319204365352988009556282915171889119204465777218526153547024294515811863377943936969161194964095677695565521446098469691759783913291624000619886519428591686779374729023788770216545045577176150125562947507418461102334289773524084868379486282460444493749681974598177298932567790396484219961879292628110649253400971068877692763120450916495125564075096602389120685388504248123842345053485059190772880889841935538262733679749013945898759056604087073419118126941272320170020237504140349831383253414646910222834278310528016404225887656617210908199780050314704748343629647367374349574000904293168693919108941834475186855015349916265812172372898316477446911631928909432210456817424448190822523661830587086157298378302787255327852251855925968335877384954349741422524439960797338927482980679727091439852516766489734137446743308657842592141714124084808036842675284081263748506944763667621386783471419871682144832426855948166398998130612283607983572709969422634751216041734268429829288834346933516188663825409030231394967013620827019930870537828897416276937287820565652124633670658550016786806732754188320108442163506186007662565548061551484985160949955699051283390151694848673371601851240476804486475443625891878022245565063490868701860479351555435263390999003292206506748990004001832209326352001009845748643958905622833308734045733941286484535540162341748783522646975719406906353585166512064550055203898000798167540623898156345973431708567555232333435780533975902228472091487221677001124205683942946324902197375755834048934107673063572114685121568627373206205292472292070524211121583319573314281084523310443374243419664277782468246166155599679629127216394642797741091215432439873962483611830467212876888470416519212599785056205094876191101369897697916595981706185963515463302782196458919811412413960781919321120822523889928086137366269031400459692364940873193367047386267685043604934565227362374877078211277448386741218296050717969908317020810372634114951997746561147759530524487632958791711667843777342934219966346199763606322048227789347104995998363753502589716836434463321822472229905541661351783596852481679898244221553518348488642352079487856282455696254311600095644779305282806025988501880281359749449166964062829663956288738943403605418282157135653368015426783334859489729313425280082546831808846690531878631938830599737453743567736149568293157687348514250680738737330775513823900003862839722690498204963497231528931526121836370830119165247815861629526924478852729085998325755251091653035439680338576154946243234906345256286427809038170070334611668846806022696513180662037465519676691642052886753982780003805786928727203325984977638844762166741497864151821708131994103692168458033027338586778644865545054924030681573359860663522877586356182716067496869316711638996198638700464979063215274016039721476094196457245918775103242533461849988703308993862530567058394090945449413894519933667192013537419142979790584389720348518430059854254577018378104000011405326441220160575602313972554095085983248149882511190978300697422114980873894191192751839831186002006453162075662454781998600763182845993379718558026302386271809366635823512756908378200295839642465804734306349781734304970343512014956014874055677635136125620763153228397722059547987870688162504992149524745888556721662910176794940286611008423351011929218899802089472120408763772850684612421509402595444023910456151175143427426930229960680238717467273303120384567108476368152586779854820817418055293369996827654548874907100911176526087108822313662369047279816392803550841688477442139365055751811138224143420758903690778618893681501336895173216698006918500384808032590159934799850070378833484574192800783592387345205229194454795756016777306608324393670965720738280769251079630630872512932759174494549577380972933460876311012848482892443748007232438620435568962788553445484206808070199036138401450146218536213886223953353617742356267962014163567806444050261666868093046123009754096801603245150033356457889705745754165236757930243181372679986214854875631301458886411329508587653660032248046862182178576417346730387401341727750497018050217853171993715901242035198628786913398887226277368788663879382653153454317058700455701576367660123893151169277820209214394386664072992705281594935970899932495701725197911990705611541240773102217856388186577754072691050051477114419037258799445788122390695157583971394980172877947184987341489749956716284997441627350242194853926309258028104659962911494865054325753385328025024021427354554589579200043868309856892127529035826109405836544148911900397488221056393430967454966656259978179869423118870541683773544349809300028305833531464347505899604580946392128227175317196272830543759815400501508518962173230558340005467334677157616924221658961079922937530642648769769235260953957901131813375311642909749732602914195502909124523066563413836510887365301414190779401160584248980490739760077154711201906500553502909483112195786438368717744946393327726510833065641021881318862668066607389039671546312403839544270951692203707357931433742688412210753595620251990116136428738430689119386114473197637444281702736201762372654823054113182782841185626338937982238817950884879400351101919878678488478224189014313130258023081216908295253485855652684775253101332806947419659010791805544093631526895429552188580389844494786135143863837305912952465885547729537712205148283674728988471417994894769789134555724244207210594437808334270801165127289028440089235702274997370665763085063161974196587442057924048472766740107366604040289219839751806551897654854194750813423802563234153770640414841786087998206787603405355555637847314819212658565369287722747838137766922022375723591378715202058757669728916179187953297636847486054386587186080736163322179318680038517277623427210137364773100664018339653878679674116204759610288337371422762147029964544868337938492449176753992079351989937632203540959543989787035115799048842281343232018143997622702125153322506810856923527348078384847508665292987516090176286085211682619704086815779253970118887855826599064720321562887493762619839281071617547131137440140171054435582465912433865324795015654104611021148473539856036062903089734043992673128089718204250850269749129299053394219927747807342613844570885443582950051806462502142281371961107459137611359420833215393450794036321601789765866435732267086917116795708900026190676556763676592281184340726134848331006741917931095364666878975357593941699473419561866056087801157094020345951263235319639442688201098961835803440264839218995620549381006466819489004364053303326341996669011161447007838562423598179960205026950115420510294669168039140665663534594825300998558238246682676959461655307617048741210999325709794298783649924328937932864615214412281570529609559883228234891509642245065818676458385904137288374953590844580713320694747354166471066748622553608538977734167322152844233108155197514625319833697926174676453544914332387627721696415657765413701734750690506078105655805732923033940812508264938508995591289562523027241501492991894610928716232902543447212926900795567916667322159412147636386818560634004131338492255586005321637645136646931812122658440945895927792348111835140812260110190482854098025075372622912847147702571244153087620195089419740286494817824183521988033234270074601284482145563154667503724345274774638626501509035260677178715352503302606466183018888046696444310882755808276791695928205046193720625950997995821949310273458705667707958210914063968528224263830147120031154653172738319000415955129736779601438692429303126627303517997730332627441960874859774837065033700357433103079429956187408363917813953229410958505273036891705106723996884895430597942269041201886280244408101667301399267503054292969613841639408207495894319797233374411697862586284527788377183504224350737839668425314585699594808601669415887268810663705551651475223177425767615839372056761380207993216199372920765009390112135576699697867780244400071128233718522988080206039155377540200899062844768587778066494901026221327802092211677109459798048673348275263177509697018535017620915260819606497925867019876469468205557273649516000234038766707677617395115882812371588517983442950352771444790294091720026280462230982847456008590605483972532878168740918541032351394921562939638649299550272842842389249521078829697953662119719920004863978790366090098168100811718226189970842756786387296689699064492516286845680326864821887381060691709126211658884494162388416975152164657514282249138928018420343696458678003112578777507184225763468717887276931877535584767435207572992313423849039816761753955688804529388712328924740130979797530251874483708097884618579783706743382117079753707539504880886251718592399073230170768867412875443038671403820234509287376154735966446423590233199066062422026754731617858034208047457620555723203300896799822313340136807036304310042695221074805801598749483173878972042135971496109012149916042462505602831732101641941762120791135159649219198825283642971913369344096773569952990418066790254635117765308439502323820331610620079097694033856583131669063790722171643720562938293971345242932916147179660960585964228532643750496309317811964355318472113522432118271534292917517158242129966397102023968354715400712411774410792852997686652132001737005090361549726412152142083005726133797148954860923935129246943621007514764716579956343759099096479361260306313863246857420959605034019214864341309704294443232529985442048346925878215821725911842942927832235881460436676376377388879888781663566440945238957664616809651160987160859536461797583385077727729919018301400346470899790521502849588049316575156255194493246905517730372154039528079445285844271872238419901297503229938543835747909247106446545334438110646357629302494680803039839471671235635362909377719676333358025490480086734452108704317669774404443684389675707744456300280286814156523711229568816157069756318401743678627382648299731986949540636768433002143129115142550880792916710045543994844487279456094791002020632164161318258496023957102975002378982849709282942837607702175784609323716570461704222141757247659880338730768165992541055773076988650219123760899659840149490847010959487736682596138979282952013301826259635892746351159266859082087412774108872579276362333147607767992304868169612753594817367368730468167613396981926668131223467116050213014484448571281940984897498649643905741457059742365452623593005895710275332799505333795205809832467762179477704111169669676428958704745088758332805792103501905318350786328590318975134063206274132228640889093574617320233396072561370423350523106516141187570981828722083158230166848849500283635063952847949089630350535391570497847334103948276267410219485550165544025242606918872613492157003426136149715372831155936368270782387282544875428342455248854031651076234612265248552450879560168758977053801631715691263954392851130745346865986174365678525750749045432313024888717156816620320704804447527498295881668318988401378079232030211910195981446829692066636181943713909714181666049235279004342009745443069473643268800786667058348234463895701819075485389157343602147912558800046184671412995571838845447461604864424611430765985363947934960139994088014200345508492341669372224215391239175668236147014717264880999638918014593583453298923401139516878967420896646400049191851088635787463242631864389638040344052729314087952906912628638408099889192037564191194927784687064368613710803667147148038170533515332196063856928614450689173109112965276462935335549905711325053426219908194055250018408915510178835939928131189936016165377547973651589789684065859759274895399353292489198050732152039249506538608660372302186109184655965334586437094311032922736967708046005854193832672777162629724082525618960366308812330350152031127726118620529341267453067819142501045048067239225590514604570755089157968644976525207124548615564239363048789328278206961051314765596269231146692822204355623940362754589731184034092354720997078587806842963139355915158245579419232262275051514082690256518814136416013323711976843470018726328588014117318579137205926915290522804052978608340349042515912827707126558564563243834731874489197689752870393836293674671211097369522824221519690322770287556656914372074622871030970348629734032318864764453789631456255336300507509027303316636209856855098166973274607705262645172578716459680870974921584638254849391877255893081276930861080573673608519632523015050929747696835045210747759756958932999250678102784257330759258621256914548371540051284518069659765453284057640746325449460184601738252024207340487426403320964419095859490606396262693052147134889313031952609222772631398675889338044009631282904198304019703839743447375601871009046751143681407363160715852127335348120611684039215456132170056654352134474582562375549891344765034202713381088696243622859246914528086344953772477206152482425848543512137985774935595095522307749348723508570734542248275194839084749933579072250914079825964336659310480854364460414284692438702859692614425949945162287951311974384077411894024476121651926925674173617878967534315357098192649837837872409086493183634442030776193628662778231281921159372852904433123714432648550897309479429685814353246856788002158657031141547333527642098076734544495686307572436806511265377256243742502259885297116759742660519092840632057348555310291267093507367765791522532983340831317514710430757475814899771001707908264540910925223674055121585620568887730417719363511844742336711614462982693502008287014275472624001704502216223236776911965642903529487374250194719491096558748273846360222067523889861517092622118093099088527604239972267816330157025988463099045235734705776596848277464988998140814962152656740396705936947848562305184013500275565400767735396486606774230960009108929286705795171251324289871382839286814116759189142135339737037815358578738440273238916097049752146615896082289981691725490247824955399169489613550559200556590613407439589304759126415329910998153842069353930691006019249059565206762601043079074086129585068010176480014960055246726206776864487724604855434454814538888230519353543082639186356591708945552147021394547511907536071909833999787585133284243052686304373992236069879013839257170562429897376174940807735980057717415375594586539686187271230739282995958184379026227665537898064636047212723467805878636501537562653254165727282721452816512586095740702837609259669245670299033380324582749113187262175014180679853757433390504559624126863373622375590572058604226176226823259206413531522730937484647002043372425320489239844003094564425432450038779588164760979408835524866572923438028742052992958261779335837631788304001835536786446456576839469152476450971881525383928224934325057036693330802627722641160430561997476446045892089540263929872110850933160021280463024133755045814795516370767029673381476596175440784201736941390722566229294282481996216824875930374444823603034662473816724390170269552296827226443844745535202406944852621422220123567393904708728986395276476609243554364453979153259841580621912537568536238127651129737151765462785792890242212094486211574542896868394215573509420499949452622598469305152343256859039069161638734290744969987306670572747242206792180127772610435520323402998496390044235184221183745333064581106258372478163022550003193850516817781179582017550992866480731309780585334084961195538425470275437830654528507594073778975123896685984226004745138121964710915948033120092541821251006884759345757305707228240895572051252894281927478515895277065878859144011304943882625868117177149979372708500258166923507082135531511396169636199610902545235695430266769071102547142414594319183383096581810726980928281939608278469719056899399660808599706387287886404226572099402984867089816712369280431461106952853745063742828773586206572279604622418735468768816355474427922541881450394087874422999056064156934740261341113151319684251080225438389975565576741452656786127480563109154656571727532005718147913266333510186688323177207971682041331517943601896111105733995279768981403342548601058163880485637957131294054449911854707658013095062169489013632932551745183643789628698521341423413557715215182431310262073483995536629466526804556463063257964400390608034371716740143449978911151843613180516159006090320001201814143951626825295508711918790966887773815078344188619416312223727735128440277360503095103045759352968667597324652159837014610865329868168316762085296261488608775194486590710390156591564989741432018272978628791158031229823906224654342681799295947388156001224661653900712611367916298311586644002392827276244333384016025653683374179600983955366433900205986746351278578800941847213794002736738494561007983799050348227225194200452636482396431010258847626503645845386501616530077658231943677404625432675314507463459291853956152084898369623523129759776444115175678809133852990684448615987485668191941384519237931004894228000080841933748500927452812266936028980102435004233346536057589124903307314359034410797419384071356733144940376044731555119869561609600754433768189918251454322370089272105848237837146268473745104174036769987039604473989852133792701553730282377764208289351801869059379238671116744856900790408940247545920375073065416142021693079798854156898127052624999302669287537331162625313598063712884547389823297154718993845419678656544575421513191316339076714753411548013556010952132078423702651592914572322924401424126811270411373681699234365644118911305279745547292665624699184021051099349540915035219379622034292989464301296493278655793966594071519965738699863685413993478527335030921340506289911390863656421109974122639428951586303848096227957760495991334679041511462295333314075332875530113883687041724565760681347629263787866982724744857447923012625777973062406074655484940457409858003849852720883809811860149320049649076500324609577138445288979056368454943245645524778838913647078447472401753459247184992224568112843098088553761908719850184932501476950610781715689385676786553001198940898962474746888539300506903385425420055763253464634024993375901535318031258674864662414550327019561106585770202171676040561877883574604430818065432252679126366166125050042132738136933902523193101039432937056398175998612686322601635092200629436906752271870800255752706888238772870025549040637074439690115793289320154291201270201605531146530499965517314985387864989625128099003737736926201810913954595916969071770238348837834330366419268640253524910410709205105317463975090533546853538003549201931636414553608640954139309374327436805269530775909182537386238217741652680082129493301695000729554547485016368317581056874273633932579768227431950589572988366453602027206642266504842068277828538682598917451864485535418252822019244837834551580054804606569128388039048060294257086581075455823282148185824291125217319052719373982004414590033738377888850483013113904968194494236843580907059829498590402576790827879755394861481144074755235895146227598611658155099235876593877040330247580464293714712504455289695618676875548970642268989801852764073362383718476869842992163769404285627462693669628628308215413143304407551406326788272774466277991449931771749310661129298227737221181581302612672299489909961558492245674728031020190389032910206023595745652931154869583130958221832063816841864223831466990215375428984867081258224486986986191718041124749143102916524135834147290038942169459402493931579003147418267399125939090920521257559625663486963273102681225131633082945722212415220444249160595126473842079260483412868704038594779533162976165717645953775564630735635489673944515053751875927836818721903714696425950051964333250890005601327385805926845506199296074663415350539988094711903971412946100992755308276530803801024995676290423116209598939356593414301761435347648425562636903365071641581896246447547764940999430384977091057494737755270012853213174583109792619540044659108711374411377844334050611826360598134927219906805900192052109949381243142757651113551945500917584495989665560546234054377022762280832281605666021689775437545460474779980428480119084849626071145091843435263404582771977697135259230091883366407236194399419311224369159065977357389459364467487712492214270780172612200836305216882828564436359270793789130235568680572738628835212883860213483583840694756349561207685053335058066163711330448629573057940818536400582300317620238248011925307853209785038191560336218773171374472912025021808943560941763612343440778886292975434928917673248607480666824315864140423461378342203352022020312150764011150087665080052263308435675189780303835506444404650232938121249761754086626572598109031725557200845491419425148005797074165734455896503100444822242161628361832788537248861334856457455862507401897655558848836350984671567041033593184596664801843387585075178937091539878130938528135290591472209856088695826304565334538982964665866063331634379832512077658250500587306996245850637619722004020222543025796292162112874797167569491900137713743847665301531995937244672277338538392152588542987737382457554057058115362215717192838309300887657155339865943619973369235552390343310899184349851350433927857926442369325447849104917516232115898560223366490906577931033214377831265188218799625784857323634444365991684002201071371071888223986624568471579075716326349410374378241936017924687737538182164744536501379306111224919222220053326602489444405252461213155081163104455774766755136970502631932854365579424006454218629824494439575039059363627066010636089616798964843050634804387768678421267704443410302093214264372658863373601731095698258735365986738596754581893221846278960069683460135256367353310471286873860918079026622553572458189554175759514476858551244608254227504843641564407693253437715041024711717622058409248191950947895452343684182736050294727172548615920070022761666409588025744764365083806379671535719350774988132911262634350588938409212434969381079396394183560014864751867955565423046401079106349534995465993504177901775024064807837193705241526796647439787718814346747100382771960813017881619380707576437741403715958413495627287880163827132830464760122287673975095256489405792911450904979465489311926405167508232806515750453184439616919413056942392367796375213830318369987692065160326171943691125167077898954840002095261142802161526206833416903405445989477638999608276022757491729312165041441535792413602026344523716526523140395302482067820234921465989474935457626972928381584959128723910172378378729380775563116794908926897199608124534450212677584540254110079006362378499097048546877346211346620998982311548185371467233242592076933518425492028926256096502996598946558863165539203663322072201283149965469306044727384882393251402155992906275778526123267585678499517834547586296660649376222225105463187978878271536652054120674923125813217252617028329545236955206532692847113291574872613755744493432918039337774377567453351048578067216078743330693896019471865709510571290891992086337244570533181448339495294872257463720941458797963602878582716611414762689369122894041891060961131334907096898305663759913029591537162458717120116185096404494551933731229650366803997391154187761792832333796080795109313439635014860415098473494711666400468897273562344823943121620129777196596499885669599161314807520317873520493574324712542904595317905389834740554173798613051879728389748565033416520002655912562868181708410628549289165315443233019115829018320657021885821386419661355414668451062642482755075131330999158253966611122630875784602995506959469793861986381375444487596473182298860906007824208869931927939519059574639884325595652220903125664237336959176124648981153360750422727599802031572836083853454273395454915656224541236241075364743751192427711477283173520904017967969609428495645861076457950761059106289441138711477572134757000339330718281290707999912013549845655276814464839157973825274654811027432418843838134500712001163913442056942064721348819419964137745043454351348494539238485765428245790201838775772238585552133367297678077091093754103905633517932307965389863580195616394068169794668791144801948378192024018439832667205094607820411386092174144770333953131308072078832141970295658835696404553875755102463872575335971772765832641970680699284564553312184835157420959426352302612498505711134197253954674969528625585604596625923806459265406126821115584855747395296472354570475193632451609202570133365294353363021110339915300987204439867783948013680486369425775450324062705370142489794092244194061907121089006812136918759812125106780860718375497000660948927291825662789444424819627634353096168707632024331979945357767584010835636249736218029183078414095230006236854092052462596141482605113213091613698750442596746528329483011968980662463564017129211747121993159813957349542348544524867257781362969824590452487062495461443544299285516058759456071843802200328821908899040075477903252539848025889902317401560162699714773213507644097652290069435162240540347816485468004309995651411471260306905578666953523335542477613479308644952014333388107724622267120185591707887915552234588373256312669615931351050762274789899344899000480841615042200498314979479466456706299764474190762758840649444147638822130529363295185975537127138274269769824411296840054496763122604601439000228329240238604945136684325036603268626630892395798111434789574506920598062202207267583688863443792585903243777141966820046717099782164999391868163796914660584817580745099436130096615274225061404654368205395356607714671288763053829071781272188002353315080522293868056047630735524893947194209746172206873946111823131232041041000290625228736639595427849062831581734308481527196515436435578847848176776921245332773801728372453986690817501222641104829968424134676726299419633538292345640401760770424021445549275257288051170909419627504095321254545434959395067078365084796956468445116789421715435827311168486009635056499596014741514999605111248603250683760291311722780156030363952400353667206084298427332471137817631397997187695429834754214235001826012645933712622801334431563805016830128832651746231097106570648526809940863288986600474651248387281090530877966440637010964427439634867052626281512898713711624215936612498202014604748439289464075448126972085859447334529630121964791362952718457823059779388233969285608316641219782740893904614374087481026941531934824026936959983422122997188465990024720350833643932836520431123864347291956972718264196533930905443279036973077729490161832048311690627392699030850466638380862109805904278720564891023959567145019629549563222792211774336025705965628807873325677462744030322850446256809315296984128326800800539215526957636418089819831074144908822770756104091721889574345179720348650156373261552427655179307862673506760063096101211101684800082659837760668467600166739702072470434173879983147646538247385148715937223614859991534766497556726892760478071776143775207989072812483307650230145915377954404347567116427573752056922200187276902525102199093603191857129262245233498477132618872650715431822487089897228795845227246947274083618316507025392955956869863794706759584096164300124288329679436563954988493720234289083891538385936276904700264445027522947050351408269472470028063752309969436928128798308536882517707776810302018013714643066062895792864121409778110728838535191016519681319364007629224953991136328471978261308098981376242277872116003392712844994550005788542228938257378189050901245638961702873334647261995357801274829648846539727487414051914601392345372363181755907940206582641120521201680200111505979594695098945229713319032102057287912953443001155074268624260649815955255010740436009231639058081368112426680086794236468389989410208305749185585415462869257371528066434816522627129333315431944644665560206306681530013400932738210046781482068334455936512661699874809172799264109432903547564302825273351892332672275428462197698433715956509698737031412237194597210501394757080132993383139619378077409378340876520526147063871726820611845791444945622379229320034571945551619727767570793586785031986547994655787359290741175892778090034411272377001773103065272345905807078547415909811710895403717725502347649501675078090148474369843007845086699797854563233514983786383407516172631356450984320830076249054387723948235054075363898640590816917222805538336681222229863373250024570977974738941718629357398391735770961395803798530377312957978135428413154272945461109906163805600349275766771959664280742796222105880646332236732640239270440858339334991145637293707673509168162928889477808436917780355803379495639503197682531745082732315019368854254530653163757456249401447968279944289519818063034691332044788450019452071811169989427998372923269550743148534923108537535861468491781418435673832722552489246236892803534338949164482776057988175312896332393810695751928114957606333986009235804277661530932152497345342148631926238068450520594202246113526670432246325019322570809750762269752117979835326604810915358028079854592172353829724949934107087928589509038938165066203924395998825761763689227785078938183095314163133182213708451895830757430807102191873767458304700123932768234668620392664352689477657879171542896431736838763529017040579732771700065753779643252998986245664389780829426262164423158620658053114831681020171689421336278396845804712454562238002672924760611229820032016690684717471782908288721386361903313912946403412433338212465263261230450621153934730321234841295613284286711779732882677885133105921557320542736700898866554066111788785282537522326585228138523435617884721122321641641321696281389647596920795448740098862221029333385118042894935682073040119919336072782397950045044647702117402843437210914452194245559319791967710254214712780536487224719151513765198854043610566243958451326459890811811181850090327169778217280411066488801830152866801960741117002793402644702458015070017487807663076021574243029127935696148671560552973126414046302768876949939931071615882759612808325387796521720446184953125781110474736875493634738533609143804615238472971348830189107527878263165958618965538208571182390812109263177921396339174297923447163946790428902773004202522075813031552151969792240064401613390068878245838772703144600944148782735567419998632953371427128216588031645301122804784453654582079200277081557787851754855511254953859528998943898630523445791874786062018957522090267643940675530995238527288409845021472422881869076660576377017139575229104023908371309335093656227111250829737022893011989468167054879068458191303038566397037118793950041844317025785756363329495144434174715308798259183695367855772064305409216587695675488110657854108013757799841484572009923319559192408008654829357189136082969674072488933409978893496418532231995427981855015861699844275596224111615471638420645653561595242498940528925467923316825155359656368546655401200864233342514935315045406284915703430142831476683067299124289356319477267061963492942187346976549828676677908642687891489308074969437317879078381134136945435188626828561294913301885221041592695627070770684059497308840922538614946705018840121842245117643301372257586585099946810331738821938217107382951600005618176753362079405866531511831176980361140182905571692653576156815106934898956749341578776561548857555296798042547324345066182600673929267632972692826475704597711436048453746292047834912790258284181891063575902156243981798941776341817102298666332058876492879988237958452619343763315362602164670713995557194972196837020687883347871196871407005846526396644833500209279438216052926941011060488397632198733534394509988936248363624513038102931061786112857509940766038609221330588166261794421639596344870559395059714188895363391167354873196626306727811917553352359519618223782643650039210524089270799197658347548154112603138815164920486941768015226152178977303670764164308580710131110393008534745075001454003750962812603994046497789319990863199188425058790458746977945193024616871640938194951287897406066249342275588649284849026298687255062461544668515457904886278924552073343799883018130610746783021472251287373332724114764331736568368312473135694590043643766127209056015549319160963596917082224422939171958233686260194903309349890921778543025889209723852384989006354253163278663473256511073065437714923418580816454954548158444184242100547900269150964636495476496054511752611721373892601986503007425725825749041759781854986505412238484532624580027301351059029203206915419141921850117770244511784512717171379494358105830216175851469329714410713070906500980098490841957128571447965161259024602012541745057203972267732416252353747621647339668033996309708615247235913806331853060593788620085995478331517004777612243421341351753244613173685875602668992638770435723100312404649467045429789666064683194420008130849061930947148156562889269559260288863742051730056730253318006085992323443531560979175584977396131956311439025995503071013632715590390634313497378721750018284953325833317518389549947374893561261303167662061168884688419443787101244672727859812686997009020335525519934925829778810562057151184782456443308508964357650023849594729184685845758940994135277780773182027973383153597723015577437384883724468163868627357484707065539113151011068545425243288632106838521964281554010305230829423662547106850028323504926800294844847453020354400521154014248301111034532890287027353635273355937436441262026809037550646570082826256192938945101885804389182391080271916144426706248396230012570218770654695253310354415102132490276112278533773112296678569381803270349173410212692879458660724587432993144913993335178163949930702029966733248013763633208995936803257557278883838656631299873923781499918111127985151960722407740578626992291368084839740459353719580747357585906624664691915200112641914812465673783002881370537506760568999152007918959282648178768904306786386305754027946985052174021761710586597459472296856585191458732421582968167920848910622509190859452812673711858528806151067069728950799763750823483654504296751587515476635262308192549343177425389716537123134428430716396161911788201446370031730003487331990185755400960324064978683450633454367500168825381825572865013252367222492641702349982529692743098500525941976466675591343310904198701223764835522066626702580797103508623207413986618033722214364129142217653383031172512298459346249336858203713083016852727456398053735610529372490676254285272692378706876142613642648236200563729880729855098475946539179535135281315432491415745538914664800068154306435433042070942128042503931055995374688995211202529975604309178279014748915755989526369531793799916987721174548774378790150697543997981008191020517044846388702574474999579467451402617231590743608159370980647252673915098102926659832353153196974162771031977835926919143360455489917090430263419619493127086052218735371037650991092580207001397201834451124562646132906647156068964779471396975822990079216083058861008744173801496608672120241318423036882703860181441797716923961186228963639372698174562229876410063776939851363208620186930736613094452725535334518095743384448365941396573567277621784114545361574434113719836352545588474055109250032990311820409297275830856051626178049811698352012765397295425352542414562259883251294901412377478245868326116532433936993860737904117008857998377580882337056686165458817687175541116638333567629547437030695736283476815795746742337290521842887566612338639213691029015682273284915367859093078694881502508457612543788250772914071763037111709099643603148857810106297285005458653252909996486517807755237001210161969950860243953390671157144713415114245604589975804498881235017100970060392999718299709376935362848571659273908874272743531978058509427939074171343149730785715165273403104232171901592048513069270502266003534882960313040633865095244294420300375640917335199809466271927118668538239155091582455498407480418902773002204519531734986122456669910104697892338198747026403619222090569927530806752743212680396676076486401148228399192520107906333217554406553286166583174015910140924911077945648559582999864294630984017678883981296968245502714748596639021078233841892313605467686539921856207616052194443214898746986780086001254344378289709974603214747121756718974647120342499562825094310255978418388325667361980367195656298263913422927957165801167896722187433676536426650826244896327013146592051118705768700822050100524182935848421007938521997622508774021558743998884866895098795791207973333677735949061839974785768944366530421948308210614159470475591493116025718155753638540938255006767346095645172736317838003778433433304914378073004411090993458240456916476856146197619908076438123085015792411063499263496072131858797305149412117801994100080451866494153054169065657747780992700758707761168928649743691111737282813998101911198926287520208935293538800058876566564931608120504902296360814561151081761386287267275074288997479841517707975408676067439136521702710004964255414673016426822667949745314646509073225885201835882296119449226379941444291646950551837691861904925865132883409629079958668193126053340468321529794289116358848411534622589724386641930687990140400589202550387796593482787776130411514127602647136331492546822342291194570261974300424153820137712815937719769274054080364132484669605192042679660543825302227757398676574614285081565406765569702394164777128080947667915750223614085122366907024014626327677761253791800548843022169306697284319262129719005122682448828576765038039083177063847775362433851162512622948392290343386839073280230264127174289771615767661680957237061869128672230783999117737899146244009373698202249730423567179161085538823091930543867704714771858206322598539360914919510695388509398657115531394971989553646313043590718400593150701970875872266949489689953317261362668926571334923250792364872613578306223857307595119040693511798089845449959430251459834944461783343187421564866210126866825344061964384039033488660074834871326039057664255231575121540898602039431110267656550851895131275012224026093359083228844119740587693394318993952847572454578990421784460095839177596525204617466726754098648944052410238081120276251717327559446256432026437154650949550702713081233658128279326128547670444851262658803107824666107930105711837929003638468069232999013236721198124246280348147655043375871476823767723736892848800799031018884408703063134756662092931952975640678894930055126009928261472020346547319016048263114798590606685349243886928147760359834367104786804292775887129417471665528387293579130203537015273421063574819668945803761213974489146214040875922029511688493778582614936863647088910337023124296882698595189313989543362116076228219533352515718467696531930703065512664487117219685765048353362975534860147509773355152225435697409023474598036813037565796778741776859911167117377230862694259425519663627933975099132221152073837117303849255960479579590369849813327961265834054228038766187395984597886623744629866195648329570866215911623233590405158683959477514809837847681420689431607185072629041654386112422758603139139580050859554830565822839146855475026452989459924012031389638062698990361004515677362158806506492400450274064726245117700451408950094217130440628247343896769972811350933493116488619732109299736437699947235900204779271766045434444674341814979265877173812378308534035723869225482504339058202723778424251294882956209579525482779600077604967082499733640265600386634024881271442511932242325437665002680331481367669097499350584585405964193320130970998843677248746735978502929903959225182908633026642824985017147779875681925215228299093228124755983402778493143472763212647355174596259815207237414249449296217435879258855162130277782860156193900472849329175731811601154324838102671692229630604968931922696607034278990727626195160985149116880432513547530291170259200554587006524617377109759437693295392239003450892857846624884119074866697255547956880348407427274449214055582342396821893398063530696636275819119096613194774297616074913563411986098463470992183963617701128784400370334713658504764350537851394477270457200512622181143811202317015954816799380565598138307847231246978345563635059853595048693820114752613090966416573197580228490714321178812252879377288139225531739111778509444664763132228745617354772064146698694709493950303301934241961094097276890729776081493321640760698306997215195975045894592372314651118643823880382742788847849950363668853574311525613922382710131391117842392177162603055680661924803695599040788452198951086573749683501838796025440154541237582740705736308025053739334657393918986103825268813490698839714822727419244864050546196960145963876694877276817708266201039277261186894832553139028544682035498860421569341735037583786724618622603573662455261890161203750127164590543064299410534554306388187258142324223618596885005069359235214287319204074330780525750218059255090607768376811548688235866043953913959218043821270765142540675024109314820523635462199827075411087178382906119836753052554449783025154184303367059058578229283259966868455741499812990328925304853725238115766308242000801605635585928595711411199009581029237660326124560007260482441967207419968533018947640248597248724551802996689260376252729538886182480499351646187153363285280660415454056804561325811916180020697611999317362708652758509062415943781335237432697145432394269636231089822404487952820742980301743492408628671276885643400556133197144089887376923275175247796450275258727910273738088932505651707537895630955468654422465129104387777666421373960765788248017706925280809722170186750623064942580518954739279985806479503530758593689047363479088570365829165251199197620451982188112059727869927309816414275407594698703925711305938630547836917660131703814984608620205016737161503465866934125291469010801542487087995639040935881298658679315260644252430694254188437307425397779515858046453715172422467854218847829600112957482184666137585556498550578917292913796049033217936366298921748266914296567972081791419458815063243986071797953830890420865184297571097514936871331503017991129749906451133227244360490828994928486163632445433429783023314450458437823057989464820387463470277299099138894600939314605527045236355878053304837609229281717157595455584909072162850549917424560167626447832380669436704005052268617166645769680962304736083081709155035166393421430147792664257323890402364098689034221479386197693958565169381667378918349839596258256376002004090915804473835569395660244103597860579610932858536898892640937447407011203028176507679536018703025719302510194939030625610219033171897969356706679329600541603099373517418849785808974293804265210005919113368544386458626394655642292332368585094451806069386135615543317246403982975850198300207334777200020118180131154780757893355358336312890182748635373060578525670008891640497863327342281044727810415952739357378128801291501915521969016048844887284876611163531307341005371757210359315751580499740821746160308669165188948664569401328399647955482099720320081545537772757653791973058300208004043021242604080219313222678473909160206037298713641760723831222584941577955521473934434842311114412964237101297634474253106875945265471252617690692407751321938390677779940577156467343166924646075910723659791542898867249793651099581696807402978995961519169258224849992191190496115603026628006831739728815302107973202228583668763842807174648226134365896671668236190378287827037292035863451855040786725292544274290705808115629722474067576959279329525375032901524903960758913401764782320170579241050208046175596494606590903718436022387932543627874153528290154803864993716263557076884556040052087442733398492490321997150659974078160717033464603675306846359563026984414790739927602118020362564209622183311589191993376182913237337111603909173192094845769514019988067507685032007407928626884316966532621276732718587109769266459605826036020908744190267734439021266219518449675525212356850963730863253242252628028434280092915023355359605824178339208263851957739782855512387928537586365768327362928385570514817475850504337297877801620075966168525560938611211651753795770945350466190477937085888086314045381911153079758027537808781758213634430555855835995615175612394325756403053840094692114456659570339222528260900922348428393765310742294006433922901605531974306968689517460975795673504144810179702461429934371579050148791925783332131236494764373361535304620088078720094463040943667594341587073252467448166211422333949334355575140515117816935033614600581804123187806043188012324976876952850097345662245593271065097118584204291376048151956112928339563189332161609885876665371912555714519651451457292684939820803172823440075428786067576857632472440830229307011599461713977142580009065064696647906328470141005489208166693349196690042717087364705170494693150138254247349388877586632529865517917775018149404230477412581806246100356801599318439299949795408359152148368644994727061286671619209111550624393664984673372393863168976842740532883955766084100787687446009787716301520150237782031499772783408281769924045451812190057337779382904382489640757734820928533461376835341478838727979438404810802598407368542844907367599815802682413717319386044043717631657618842164771241474605286330960716219017506136686833841556662910022713822366018893863692899038402236441226666099513577952049982820031471459772399641360890437706380940849166243245302465772570852816447621815918375447201586853931788733470789620197990688807717965117167829620432778248119805115693297624524927334195694767760594641805373055855075864536300036465419868471370308057458394529207628554928694694939183680115150660590360560413087850807410642466007835298389293120587422318994370586698692700329543282074881314919495204254251570987749873524053189308481368381014618384272822204470888621599280465263802112911958150188476409473341885033899309592600970738150974510503871860461794444880583762150118751576497061765055986548887917880766219103278363566567335485010593016641544622419578422114029593798816349652212604374260880026249895857093867939717873241732289733980180201553689511914868926087933996684295742182114010626537971032125296023561820804776104940908313308038455704454679927106746126465453204651204494110896340964884567044568618852983705805758286770628484362656055922007558174693306132455961060228253280661359464423129713194084801532828877651107048563834176049367593203511412387075490149030616997394916321406399157515321709858727127362007940974654926319895287373714120456120343844687794924507326983672866112371376570694847443125517186568427907637571532515657344610747605318086259942834828301923316377614206223657031613317052284792646941982408401141545980307078762968428388831027132486813698900205139497885092427083549406837414607396045868896605119052838211493235256540513956211531917797995021391747813744843501500666862507437291358265132430285587304536110627519327592076829641431665989885203410085277281951325077246011235732865275357371268162984283662856330196780961252191845116138325434857082165501116044542372752003738814563375205871089677045723269958429187732515714945003979296276113075430561624043524578524944359308464040612915991906058154205214901807681044516396230253291895040557692489574242785140548166346262504288865417241880901503404715575340431217593222766303529914239635022795399741255996817094191739438455758423606456730970189919625624285581837570226768428677634281626957032264190906361154406630679728630963485732849614414040977566792624136177591634674740801386065242239141801723640634013443335478191290130923512349815280376480609102247491468068446971488152929766041311160341543120876073972288692953328427859966261610220902985833231605463968866126790541732731027217831426617670948530080345428346182423911697616156866493360280155342423471150041728917969412448357501623384461752983310565173390990072565948619433223966077413220223512135536299283771061040095024039834056072555806517308524188322678949854752724395383868435011060905375783140835600760475145043703235431976278567673684646348301781031321186814642695738618466392883871768676432683811110920100258124257447627636452371946177013639952799003935143281009581202977251072033595142960417009268237692153010836238542243867112617186557962969258751195326820067418747092807109708589263960490168602693957198036099916703134289296519648597296298049301369259956581051601989090441612612727718664440530861040252766992731055216157170776294765704316729804973805530862574790986338782080312327151708360975164640277043923839800907569932776173263522124255670632770466938176409224392809423034903295803198193612578988138064371875859753677305637605428028442455239854745674015683826893644815787224498291090611912126555449693578351062937875887976283532243086330953874989733714955990063667820493687082585686291723689952001426389054692709301919516167409195112311602505955536126704304930456104540205079870943758499126800900748971361519728647489668148035514729743639861358817747409016663626010901420142889699476802536184748895447447328540528051092362562045484881009420008297025586346386298203665198669459018807536009833495633861478475634709301894254799092826156643191455673892104772254950821231328286830133751349411860453965527855312189804020433200100282129089118753653852372830150675599369286279535822078439713931670824645736752400520507850550194226422836843315742815999955835125815215892742182376802855449834130981584155562632359487240717224526677399465454979182016259141889442754632201374928582190136201822751871008600110907829502467531152991024600070806916818334607351634361361662850933861109883536280295911753089812011478902858143814544433655553591926249586858542915113035410792717428205066016771405192981163307118323023787799598039841404264768337028798448455600949519976604423764658842391066468573230052759532688065681431815653237604937583079557901397399765060559697434233945726513309447046197176320185699615575267880097242602441762125751651490774599842015925379212858049802229362461772602416063918739413694988705983087535220676916613056852623154562546253549043180780258638290751669123485392784879026778963449801240013466312845727704653138717965047159660560277025142122594199700926099804125196754143984631310789454831028179256023253366559440196222411151071490387755746232714608635815168610316451168879976100257004693710604613387173255407455684124027964952614194968801581569040814644923605573936641425176195833894682411416001219246780378455708406431930996241366227715296427856175535292759398497910246803580296137995165630305862185520638808466833496719949409463565039503026184800919159380427222721479183551449869880513298639511404236282668220413705880189831016873822111377702857148712338845771918779701197026993860979478812906265787293868798118437570654226827569749540692844849760235076922714483442161508498921108097733950604938353477994223678342711850458561845372872895609231925250804138103083131869355224940493629377636476968948466880341583506149243460426978498133725635839783649655649768202724100597619743179322783204389581762985450365452108677875741511813139651564641561339746517821753257203590895451513274388636210116627433114041679747794869424676228626019053490554242404627481306149916645189274780950218085812200570720840831800202466450420170166207508088993071693886695467552678514730336157929839908939753780166416584342136500811115169406076338225434154367799418721506518241039066397827715559872105124387741693611465949191565417839433652006896081387881170017682617197834464268871588384549472956855551336137447327484697843529701375178551043979283417109251347108805368201456216003816688848036348755653484313112258638210987488389328095961531054926933062328679924948373225255688299714032370492880775803511227121266154542140679166185819752329689929362778139380843230547963721676990831741310762245743754961189702637586962681723508421666780556206454126909559788527483351726785757190432050039050343851552165377942712434401961432171813903248251537309534304068275756991825199324852281179638365512080276100942317283661215278456218338396970610519348121258738261883033530966995270734664818134183222748987091490784930665042788573885025037417057647299846529736349185435357696268058796700963291389178905797613250702543755974021832745951058797713184491729172486752841627330256170082503171468772608526519415516718923012576120398580599474688331827505907371434371216662799786594547289483222371792973333680074349209427987606251553224795565363523447953478474005980100828914004080388655740872806971733333444323219056594693434014759491352418628075475922189495296483035214804314694657823887436196258611114760386905617839002224739311968119500492668672171499038250799518735552454381506325188820670832352650038402194465706621899846433260970253542907371941161105096811248928001433522831558103603885212071598630116092318728482483484370787781086048197470128866384128537257881412525935721599871377542890024069066446977015707563969881902257678358641679957512251087540595346227162442739178733817206017368505625080377378494540070268277738169452599699004209659920669030647312626586745067537587738171646798678787218865363023843701259412929102719925862485643549447746146302510493815310980884425014729494945060084463583316160644914392185470699141934000354680049825581472914764183572162000576890218930306714086843245029368554043050499689038604361519282742069459377517623410840754050865046981378695833090070396314843561020626557597133645636120523608421299706268953475742971347655586758581027964923993431831152649750399889249529883984049860222680700765733786681864457775822269290508810317458807534855153572484467021021490521690751817349240157641750544399878299132112625105307188601844061268927451842987637797148386273220459254666752921115595725335341373342480194825008501128976724310051831134133751616503028631291256774525876515090704653365187867141666375096182864329657680647454068699920533679355782453206121902922490931863778304474904591178046336406039192460173975551877386526862745900494987197406867228050782002855076003215774308458092765146673387685707037228298893304356166670695659213572866477757138177246903319155249718844996594890927897220928990902819595157927709785630977512947037251712018682272631300705009464576173528654986385133721144188403040870303151315028803824071873157116409783926264666627791052821905143358438205948761692224930748004730222118463453275719802074223695263230173474861868639463131766467335109744316928862180379010511082867074833072379461455766454508111228381833380454320392298456690912919187292273077562841959638200858867058431350085794828131522145260207282285493758029869248847312005377881595766409858986584559822716076577528165895377341014852648683720475483390041986579669967021726984789973767083096830805133106822871886134982880101268791590455751214273694353665517605579522168912089361339526581251831367374728648451858463924755889119224914067878236782794710355356560810631710708179601878180050365112530154705335764066584830569470949841973778474002280091410469557009176989890342794040788115900190608347841097374560175435579594072186834828463617600220534990965571424123875619573798441084521309316356866267295145274075134944350833460449554611113587450775665662263217605516959193445235758971821973587608521975596170168476554438301038945185223074987568353404752226932338428037144232967769879370947085607244827907181723152247516987632618360380975179508329952472326974611910736755039479233521884397815408869251783932622598965895192445966275691958747409891500856368654489215431967348515869440546166110388379492228908849431507102583378558581639736133007531025442931261322450766113107701419282006372872794328568774905035439744375231082314252712807042678802690410452171487357254763223967072407344493309671022243476067194698110955630761110158263438092797634560247848821399935826978950893923266384325965056173319569621085682708264377708340837504915300779743238963940765613990919376862600997184909539852773247314533079222801898805934533569451440814210138400708342508077765880387682475304680587646148867110937760278846667585560071522093695051207537378197024003915321944996919574001929593384174470701202224987830920304762560203839846196324578919846470018763325105970826239423801191740130347215791422138120638867794279011973901452573839519505580375609429897512115827186887003886225791438752161771149830752141260936881070879163988648935879931048068859628256329585613500626854231282219624753641641575251591056336350848824640110408306736735568591752005880446073785520047845551179313141739879939134677689149430137158135910900015067261532882701410883399411675384726274820554356209692201793278944035173261442558638133839325929267509695168994542285930333928529248407320771881626164907843224038265849094651793149579253790152512421307939635089572146989803421533268866561546021655654704542215795276533902446855345198929496096657068383913959743725041804601905314358603501377820358231539393179260288184065618073201973144518876735010726503842576765463680712265088582621568590977953792984598661921407052877268879436682883936766953236033370412499947015773853968402929217267684944452603757912322148868653004879303405705266917786275773630742311439608601577352155931324978423503686481825662853690355971332733229187552827558056047793678188142381394286743575504629310460832361652277278385467492673994299255873152680496992414233304096749644037475568186278271368313183313109904753301559499155928226634514596808197631442111244472569375731589180500338117157476285319048026230419749378090055802427243474765668109629384242827185498749168164749098780667069011483877388934996240194487447828626604892689922929060741620588949022247800848470981867519522159201920320334347591742141239709454547326666478377580530912395752140838858766434888812963734338199136061824455924553792916209929433059717672506425805542858567003680377814672906116488931623712001887149826309972108282331668477192137739535927535380279833718873910986063577546342292218706697641414986103099527176875907937761096724275140619110868659882547225295884430820304234157851418510925740861648462682297864171760069723972623319862889632956110918811200532933429811935894375165214123660269930038365138121008373550222541439496220295094328698246913443504627903022116525709392771424443879099627083533904398724455927114229022614742437342119209727417811662938895935333121920857969680218063854152459729423186977134015636504558384686064137318500233641043598320557558952869221184779340067595022190415190898442911835738683056015468478759518552073132417784801180192968605524361672862850995798866807772465520844393204285008569194422440933727933825542661497722311646821452056451734106829907099597515188854485025328926055126503464833351978466062464316209708758197726304708111644652278791482929883001107482040561933308979282453969412837695266900966426677963351112906920317766930308714475150374269487053366838664113591367681714210813961515499925924721420794851470775315311743300507177191622615393777585481064367178270029453303445078367242336931973716333880803994430968751766834885996982276675130846400531269536616254195847633739733205844534554472528778074251214207825094468100782054082875215654214973655086959485046316870484250546353525535192779451982942048392262334926480026571250179810038614674138908010254745241835426617014001470094419172592041856694470686020767832174677060369382511389738724939067910869757494486700029642343984547147685610155986811700998466545700222723324394911267968360695516647579116938616128404330852429660312375817754994962715959688195262086450601604830880700406297857358060583881285093181267169014166708347372889018461480685251508398882525494996557971575329196126072747459742160943438503859475627845598617592474623642330855265645600447593260228049089958636591860798248039782677460280447759212219954928642137470343865950618306500156023946693078280223101482064549395602529403255671581975105887200981447912606332099074980352130291059135993402174945566253598762487189607705601712063035767050782554780095822273104144086266490263617275784636674789061992258548654234310687137372169576380860549665013856504397403087778601873355597177870582469491436802981813384485363745289370595557311998539360888640751161498897591067110663466408382909825447040297108737228937005479505116372380353180224532626706028667821081480533863958036568604899877076618452437399200447194038836703910444587173950505879979836008650806624478341161172936536516936557031020168974075927186335782928655113073425635917935943685103302541992044372059004266597537538740775527786011610773105020464533527606479438023487791841265924456725889019159251275019395040535190287650504838310867446694229934698288350266335922993319382331701042207918715399264025621777446351464416074330608766089159028221748457279682916953855076746577369163668737504173987128153605447247131906151840413094755305422710004773423194263117803291756935016603574890647502961334044770017313948545149959681911238930856044729773584527735517709570952533594777664918134877363917700714400638817807326685279410596551760891323761642927327891365979811532891793069153265302430424069034176463109491856141228527354363541993769678464204056995069890310422459264824945799163755590865660795039804949032499892839943611747999625217915257089999989704702479455511703656459358685822704087187265289983328101172966814509855909335810120652719636879782155907441340048103342816609260806664343949858503194158171401452792504199380441289246112454546851237498426508537001598696510988982433012273265870346175388086039915935362092478022357681884994987065673413763635006304369694041933242667513373462101775480950784764938897689181006574941107803340855144386426587502701739283127366809781003213700660321162445276334351471337541042615529095189616105853290748774593095596725796925777123894209953186558215962037185468913636174146163030838557933703991017912227885035067589479336661384334101278836272620149047492884472727720852130173016974448941778003320642237795774697852700102056146856151142064986524625544941585938367284593883193557158459478488534695840982865529673216080836139344198679677450265175758723459567977660704980684202944599465974257623742026947148649685357160131155575149662455791674857478686969611246456810743191944207636104503628277251373741002043394314534759593029945170143621790961737050612484596494403314336834543195707151325432281711804978669252178423011762713538278617748066734822283828137500603436474722431992633152260768701080625638171348894829890126116784558023213696425738760193530066739630540867423804223218040303460791681724790429484950070983878388512366245058432986611437562580905733375642727788298031589510204142006367131309513261673394327361099620533799229576597155728440536272605551588715101477549165999166258373129725038981788302636668365117744038597467542714932445307652580387154618281979597556444085735805744412619548980631828024918440727964069960524039945195651831726286486646681030854137903598031921416098534112924951857239808831372222215889334993867636634896549224896368245517003830323150197398062386885198371732567757420156002154098053525914929308443217848438922077267965533766968104547682308609268324010938591967917935635895513111831775732776095498031478124104515382878054171316770371968310820725000354834174963618395309035936132354401504097603196773404998619599621422112252101379368992945359979856053696374853049923626970810690620281030248185224263949170752599588532796351516697351427158428855923237230236160969775630874642326724774187365156034621946183450465918506764117359212651541573607140692632230215713538316696281784281899314234670228295130054444500124720624091614127852150149910896891836504211852063949961667356147976471293619900633069204751716838323500162065648691175025829339306436327225492671146945564439919562283108459485745768014190915654423001115391406709144434567444402981526440195858329284226953464758866245954694173523851607521966256799261603989708162419343868185020143673241443040270469118753826886925395949781324523956677152441542812116303258583195214023350868579074004877936300243686583463510233502633046550606657735658860101359441318464076973449528051870831495579109452725680846365001823010643303724919602402279166714056828973697789566667764879709094269182419852107864235496209637535046777780448286305319080031249429111885256306609213332742122472095776709585708371563667022445168906167726033939842543781880465054298552086479644191207068049088702840796587335456105131338770011834493320096551726437462869711487970645647161150356824010085943668669874356233587565589282946583834757406206457431413031691123718291751742743458554093297406398354250971493514559311989286048339340259800486034574556690475962120703313457132027818934152783438731552064407697004962418207650390475228717636362258007890186553031395073128833722123879267878033385229328646219359620239173306634821492492900282978573113582316897720864031125365623420421756114813417567603730940180804399270779489321404559587884201902005985503302918032504967106689441557612155098523478919285861808266354162191162058557024177696879954950104439435740024558739783651859855236959331241834344364748750836692417503030917904941916830672626207322232944026746591967699879088650603702570921818455814686405835548918657955146160676800955666127955721360890750702089432509570427354711597403918776203748435628657953969228792676937370098010967520851024727786053240575958528565431066468879745895311840691931380288374665933510221160617784258875050201146550219910748516591161868282995935955202562725515298063307575027446485623957049131447064153092676265622282802907916859443720560859679767254962330002040850557135543049630700188641194611843523034003288547819137073495549483654951165282420251940450722896228787103655318295327179530821508129827338499205909598245184268577896908979332054979821025678100875466728990952476529334711928363342598933026986963541203853961238119715689425082108399777212355238857582260062350024633895243938794240903171708646603877621241295559462003601742362169569073303862870622482650260906074139989431374952433235238814715949268289372966713195868867166258850044061353924114877031845670840466647161087612937203207502836010648953412060001059916612488497828474586207277525494396882676121828631795587375280643550797010794963156376641123304592819432316221897619273095447944216444246505401451621503200037953443841097840685161082533867491219253261068564435330764416256901296510739590071472089865770354963973437011139193924756369592985211883338121560416462906882449479420094709930060645114033262051297928295229719824825828291708469291081160426251441229582779038355332785286032626291229277185330533872232675307068875617130213541703247481212988171849140092721524741309997892103260806265530552411440380934705501364498313823995022051901035081619876447816358579983343259062589991692464629751125385572593609283582736684802442884630808848560384364977310073523170446547183976161563251175259541649997984631318098087157483925591497516218251589453645654601107648612690488272337429621851893585107471274891794758167900785883021295785941232058576615583352897970200616822048271246474159579677853652726818576611286448862473316479777072128565383708385969932379532613379668590322352199236156081669491731411103145895458177773833097058511598053088682583385049915190710084055795824448943046411360281237799985947682322126204537637179871136933020582224471447803326441665927220275220146449288627710763866004101538619775181643850607015021803381467680010107551156154441686899637862235945691600124811056954961568511057484437152819462733810547484383114231412157474589838753900911404952374322838027116570324570028172700516382553847326698622383199059303227766425463055888382348358929139195776485331776362460412334010288344647447616831903191121839251113067481873439861592619663984014848536184810537054080583507462336398504554667896747899914955562608837074203565647550996321035263663509640082618384292557732763578379038065655330131727740524751975321795875208455353335468137844499031941357792414957005635155470692996184315767172206150359614612196624588482132063933351466727304191489016284802226957067402011920131443872694025656913275508654530031717950120775599359114943196000839459692406022719060517110873915516715313006261810548281571008794362537316650515899031253372261374501205362349630886286092801593031277296085738617106813829848429918982863268813293445356592309009451745363587733390733059300404893036587631771743196331230992082068361457871845088395462346059902480084926986443908195947302623513723806325622061021724638135389555011309566181502738802609627071958909308770848452303047209096774587800487545405977422121026537818716879680211302160140955355672940192913581046538191161949634178662334383925748832699497842427499642315969856094095612251235976232042050759913809535753129421977312067543625302263768080011038594021215430880999125805741107195845231782518301714521347380105890639585165947696616365141364758565307612406433297504854656416903715052530135889034445350055626851427461921433084469533736998403048513457086776457828256820492169136316424708468493805620991329750366646866986206351194650179625303759937260836196388577059537521982379437938947287314171368875547730921801342499183201562408732270990198161829989629386087373111119015125965918399452656714585113909901901672776573543823002751986298015956952698619234016387498689607862248903636147999265335636737146178480847538846156171105942501647575732506306120394336855275850970097405344554523700793802625638002315078240118269945669838045366229790878206498834075330337807388502114733697089546365373789300843082644614644514329805081028999100192193812935400303073809996350792229300909492707546703676584110643888077005754524122218537338713642793314222195845968946654883023507598413908986608795497909160899525829333978743363204303028740311434264607471469935046704331353021786150656175037233022880910223650311724845261691931163453499740495604218812047510283292462674970480408402083150705653466246717534538265426755783478052434397270417879123859275360216754295358471412901845471946877795041129468590932590361072618468666497525481518642618754718499061040062000746957376353144178186450015053490540556800279305313684153625657726701150391639092824145969082071236118650445222963729544186033040149000488838805180269827440499989965169141066669341141400459712637088584739172131998062293296196758547479204900699550583574464486275516053060755455181530828960214206426770968401361304805720227093380457330260313446763750474318482680941960899395271352104788209886387492654479030241643634103189932463126232858453935440679438890123827223396655739554221104799535511593076544776851411069438880365694406053839582547730093278505996508151501709492201297289146539712313943203623056520973142102074090643848475072229023932812859151263440890754915174830394744856403579700983563142272009287072755243483954392948352279476862042918431259311410072397450347119561607386990589297279557501352483076259265460800684965309465973091435180720181165511032388754364683862973089136856961970222552721866115367663267345617771232995137911670947398840480308705658551591772916215033042172112006329849851573073037802744523051154713903163140746520599701640877323297091647208729552983141457652435291850562801878084413798303880318043450505231124912135152273751493801620599399819520752364038870066434279709399076887539998528773307601448874449442160174145565939997565013706439212593086808903316798052739434024622569323873993245850489240485659253228496150896154851033703926353277492383426009877706418114031297399167487713686586047571425745489734434876478157052413634458851927070491521630768041541681574743132743783813297505568230744860402327693157179220009008079522032299882480599844114266952999270036531341492070844291777007515216235580139133617346919021628143160430946163086857898289990046499906491171896358231330212573830241490792074529079972753909869625636303890395435598764713863856377014629582731672476789191351044468424755821054543761894359712422947093221644038952381525359024713102044574972801763512925862119876810382543111428605946831810236995132881037362581492447500907102174227347412972051430376501999474684628620366913441772520639119623767534646485856457400749854142050178294169418573370869581580462671489002720278266606485873513181656590179036343083573789565178852095340752202709420498230103179602406060199125846559007671368218427470773250614588944748199853999139883929754115075669871827484847313414093810136443048912603420304432097289253388148453641099084679056918633321748736270240939177791791129660595520609267510506654912326048108409413376153573129495536758999566522913022932757439290503832544581414998769335639075502975472024412003642401843203637548820415055922689456494505392966022251730405657277785974321406634406659252454203134470038340638199051895779386873161504591214853883687783335440443204906812390212765175132901970060260843237764070544787165397771129476709865899952414993370836122476314016462022449145777143092561242912871145143939336135045106180584693849506326709522961964178010274096165665307558527901811757599208281678513455564629999238619127431287825504065499112151830465329476827193374891575644727282974112179803958011697317761472584724494638904971606235092465934726048824066861761855727682679094054004693079850912756588076962049207465994082447921950537862024219789356265406101044284067754082558951670688935350477842466656401474230144493138296668017126781492471686035481640954717951564136452748840130491756189519027998420583234271972302121971055318124197455197895110036591777768947730736733564486603373870349196619426371719361487134427186342276017619229219158057972059494147698051240659399177947037710309517592015814687302871721450386483556402987697025038098725500186347300931386583572703361053776592578658135357537844558886539684060238597970570749406135809111110995956709693148000355896839084760881288451877532972783790660844382730404490569710088364286230039824595776545889717102524456065343570872046685874649935696074510728683432139769784073012181074151065179729428211112507259439004203205380033378845108696656327074118906781456176702298488962460972113142270935792328789950026589331268598284317964774933649706407401180504706887949438745916221249733049735073960193008165264426278948823861441693889252913303486749253102955007773777633466660182876956443934682659380658154853695027416874048175330963658175272982993782614031222894939553939800151247798250722659770520308959110079720414386367673968564319872736388401437403814592062028989750950269590017631697464057871756935409190543878618704843377071222215056113835175820265816230862226450240357875815162454807278381894035313958809287147295745018208384641751090223496511218383003364055231730194571761137920026458596500375628712900192703566203918528255622989506593269540764854693928693219213168621359267561258411480651344182510403261068444710181671246893979920807900754384728262961825738856057988913729134704018073055373547854849061681896675164690397900119431551464115306171377966675004191761828623934198512457674768758418248681610499585248648637952066502828525520544850100678040923552806196515705064065317921106125688420043643665754742782174871086009224998336431215414138869228212174163934916474984415997468799794172989536203163083568135290806916207843401366840333513561606932560997760663831686020707884828885696526745076632886324353305088665897397736668472997151873907160835936221302183855025720013767372879781593243937628432857322280019834688362287754799872220436371183884334116345338481203402818410312704192308898770840008779023054292732487516624216240848633333532398838813468070638309261399396385968036410699592252758731129703431980901947217950483513286510915386645371684316936904397532351070029969571719099283099632251653796993112585687338445209906149246502736852980653090091975836096163198051170746456632134647972864746039452566886058003152461669922484417742594853875186009922129966087256479566793816831036720882807492635311187911818515195678991015671076705348515306111166693575720835536140129718340053800037384987390645360017440083271304051635145974319479265596695622263875644701069301126890714261684636971857163576214917130576950626769868415642765908065839035363826799788233108630710414777165721327189936522352756056591051058323089820155450719162675762844951994866252786269367648707593996576438725790050751306357721637081074431509416147361825786940758213703555334068708569458095406764800104632543562612149761522683714174219211028838491182552735215655497527831674050363701116675415448806445491411978910437072616593877110864581097402427489424418448453082772884977642571017432840631013410921349417592684698120736594586202797885069086646399819866285925001990490546721975182967454398811154225909509771905149825625299971589823961860794675455630198438058713797167883775640351367984064573139150231546901327645588178007736111917804825405482941367977443932643897637615238501700729618335287841325445119425648640204143267017938757085541769619692834405357894159126660736031034011773589409449056561186106711668309803406359866367337195360300299834855223048246425894908346723168764805791430384697247768670892674585831958224793011468774172777172373691444978952635138432217252081428050107094152720630120951485971214780035094441407322705502623114925358515434985974386398208447941528995356746030790901972162979062943736175820201382203276301424125907191434010396130941701413822634030934435148806296749636442446162770430096751594843616708951715176019467519292337888318390881849597266397132040740302471083914379322693102896924322170870244862038460595144558893418393040480675939969247744331133141502388938807128784938161026535814778097513871260149509780525406958225836975220564701770938453891936307421161965687118603925470797542526811746837637315324513306431117402673960668748975373664342525350624899678104714924236335411036868148628120687247169818807885098404357238703521070950627717567072566829195298719831167625891450226331646467677315690214600272968332744304964479022891353340147143682292073858391087841512761141322646626802919281270970628502915860944584516880548968502400310692149879855141454079328393960009397965343338606511394416058645959649175470289694029843683996662419792798957933814361937790703577088404587393861951593588157955107385254496308293023306574373267553765849358618531894483553682389514769038343403949415475282924495097780462239084039146240252210557603936673579211953320647144829096446396849237137731702779897698104275549288684906150110894871392078749766392583022468803685664547196073153321162029779605062327446609204906824116261526066579203040854545274552711720439688361889383074644229853695713030287550386182546800876184243005249653861706937008077713180276319910992467172493915631559955246635403862708374359208417006412596570549120255990532089436430432511163490081090209999486128053045433366357406965370182941867385358080870802642447245382978294783863821396524442434624499121317026550154800945714713477792253887998396767143437713113014090044355026125524669942375835709721901236942471416086596554881899887826064868689292098418309619308508501903620712470932488789964233159900053019710734969685071601256564244329828719251485849968144406323686957174247346042037739723301902825221623003167834286146066677834553383357502752278814212612357618004122545354903118238229879939604430112718140644696736110801274152234582024294893360810681154918892914831799140122844893966706111105823220178769892483820383177273701609670967652019278726096180397481459434989946462860937114741091654261700886836558516456888265722317701032591330705986690358914877907670928641288723392530584250635434937947829675786647960973989193758713519580389605488019615122943756703907273991349405159099706767833543603401075463894070869455424459277750365624046935430454579567662271792391061373763416223828167178103742366376750020945926599212600358044702849186583839936609830772837461141140626686297008202978002558191856892348255458426740314625906265585715673770068115010565470395911037059254111902983279775184238415781752292049919206778724807674755561337172355703808702306655072596288800724919583576358869668004201270995979531661607840845108982562138177888768239710720665516342462624142541449898659715238865782339878918248042391481745066476255735735366241109789343457389872632553830389211770114092886675792972029255571069062241665920776362369486125119985628974188574336905779231531002295618727934268574646015186366974933923272221136365733577207959059853196935309703182409512830470850789793445997373899239296749652428162193264575816161450789472473484887392198889123201091758122269266484247671960816920722936714748654400178334273642222284375176275736816449602523281573123877428105324266467131061864961457216124723480712420415317555320865119091568821869657570978397600630935011640151130080171137182792233906546162418062548249065041035687505695681363146456978873875618070800502794874378261580553095047511170218941167020530676368322552824438102377997883632657371321435846787660284086744634038412023209589631508652170800443489529626563378856441562471884635068270367645283466924855026799299827554954481606526840765622156489829231614417598630462997021661514672586699239637943712319684314872410737689132092004467912616566963149294536452798869208308307035815391884927669023643335225287101070813949143198762582284634350937136219146060797510494100292342828945563872039816804564377935355415291891990074290632279686315638440949083724450602592474274788865799665559762079487959205338414634695316451532856102360445639170383424517847301519780010958410759210635912563781758984580154392854861714932720994212153571340247401939916709313710549117440550930469951836922624661077522383913103214255532365609051841001629464173637485911090986539511084725270529231901559144085498886954401116131539151195140305481926735421390698176418337813159442419452687922905600505824560817485956421538630643356419457912732010449705328084977839744262457071187399558737408688807447826068755683444647318679239767320681146781886808385225382120284498820144459983387492365504488883897713231877099706815517543208281543293373027570405423483118817395616667870673115597796367129515456625895310797544590974328765757797950733655740112048476081058634194002591117745063273253204413775502166019009249635455286008187559105384980380034673238875030448169149749306361448010476070774066514634273444875619031229188529558632821213052427482749455990987619075947704823906867393946446759061588814211210458385590944338272210074134012176800685780419672160016033256650351695639110792648913489150882226264818715392812066339876694101706144134062774851445134936075028702416278003480363050908521104235100639222939413453694805535795223626212219385704547755345177171623742011681816853584160553338964664252136064118126671581053129453861341012177170820970136570632274749308577270224061673236188271870622093688019413167864217751139848747500972418575780048426872852223012340846910751615579347007407397497773379863663142374831488965850898024259954105103331024033083485817282803854302263327144551475468719917861595732010662709677106020587365278585595179716462897019098321175279127903075156586609173102362262485156321993355360352933063324230761987629974384737326250432173710565474595341408576257378018335306224120277604170490238392213134026319193286138479251321249198156746792673828264038160110930958107817129701049964305819586813552854545211835519245850416786232897586047567346826805279402625027476440773923233875626845465225847109692264687258118999282584005007665898475345721302963713859070218341713963144663928479940346846698592646410297174486469282061037239392365490397268989196579726843236903908470194847329539217984243192726577739630570080906157472450864472348756517883533242108952779866894656540636006267957424250588844902638760768044344498191302871078611202755292754363121248338306194657086977808625839523892448163097890723913399479331350404344681115869796965137533855960697692172415237503567722553329504943966505514388094507524012729121380666552009203356026849126039493414783580213304577413176874559045435501983999618434097828672498249325622442251775348594651319414702908190131153192404612246373447716577525033938957825452826013710669754870305419895288966712869363873831762766888214261469412112594453521600515208820098199767681506925628295240530685928740666567395091869686654411272810666139920427721482320467294763847151796140990916845951135333563415593278562133226257102841047148098204934018115672771346288907348871902947110685138931446010068461259041202057210987009368283365900173094852551485517896237874219229835813480357509684567868626350734566973780286456298234615786457194100410213010269963224975146145440406567443287041935466807018336882841619901704131120278716410001461095350585805614629025096557787901428414841958525060458030473721238783128422299413074940863932336355316617311602391434959161901144062081527033755007736180101996071398337358921125780062719729189240516880490855599222855382841497634564814662616118193572699827839578465501629710678405158179670494563726201994500708952550263666658992473210177722094858285078215908803915189863241028666388841520763322034258863967608691875423929373695891630567591158876940927002516771353694521809068261934295680052091264001754061220207835726761634362163437261639688884080585596051418454006955103344884906485227755417841225655764570909877319393156869474180797059383003982532058381455203409087053236821623126384090568992903050700981279488544984182873066705896737394980336025711833001392698062537848592007566769864051613265821185724107906544919220497321048992058907370156522863340741198390883405213464813228712937314127160463340718132115975686865996716195585159838164269210372146106851781600839821435415107966445599326437439841391502159300565116056707988292169412980494228658921482480296771658078275246674999789705865447795813288169730342504963525135540004318645461296288487501515027937388775985581400410276506572176938459884001268288051176159796542332661788155073962438315536353555241238556902172908925115785358740049767089759240103037763411591705010508309578235984732856329900154723051218634686771530143761901710873724573852080616057452002801977708544379915864346481042505644453645493057117191433575762923534284697615804720268368077127786225404951576111024315429930703086464079097579971948616709852556922308959387086396874001900981894983259508978971728019737298985722246423787162582150134621082325400674165963732840894229164429425569362708916811346870735698765441443224867533013933413578760932263902410508773653795047521418990711781009504767357006476907706734300108568627720285461076750479883326851890287711714022267353930374826235697903860125010645606725541099601228327612047882743465551015766869696381279911682966991312085911440334303664443755549311615264066551520016468925239216520420856300005247795923116461527861893783622515050035644673485349678452935069892612166901999154149546887533463985499368382962738582656022374812954481961304694091576342414363411820683083516451484917213071038473320515766458802115726853862684444596251412050541398835543688443561446780832769934264219127042654519088997057818687558613814328743007272253011312900406138469440147693172701164004954578722112530251962740245554112053931479616524124353339312974152236988332103244947922511271072425097765617201989209930013165287478574425015687555747810605701422100132732420274785006785381727335729598508549236237563124280239326445803473283476316419052302926792641509136299991379144679682395364551435022048011366896307801564618510989911840043333087777475427401945300806742494870696850389387751499022228742260671511187809196513382539490678694196053142336555248220629777800196921638192651289497114546612558061324367671338359707853943424059219652422553835611257116852760868990500764399852161054565548946470047886952032656789806262563421927138053548714764601658304979043223199936623530604744164824460989268532905074602178821351843470101110348023437211245569044043879943916077994117840692393665220670443606670592258943287794259208555887240073646881877784903089759627329738872700195980446846865277101652683622786817765123230851801903312205421690380862370598618275965519343117406184710501887221596748599622637520517961720046879828413867566535158287460028696985340290570082224830483011128704601461370648962697638561798734067763219083835718384250891228237086699717098823168930334382488859506898467484723333023043381328807902951695548941106322591936210550598403036662131458515666525129970322027976257943874792170503473485407679835248421166491619537464734889393964922889521291730135887812545140763260153464723739928895668852255731993883544555432504916583427011276679737538239742947311406623477118233775659205301719410301030890174290511072874792236745447142003576713424302278561046481684488991414950825660800136537893220728083915318990091412749497913817956437197325947942047050236954479131166038352838921309966504972603026361087636950040174864678518615160434382622239280533345799674664023579757898086216896581258426094944433047501666383453611817506363834799972986776980031884769236603484891011588870258808782624296181355608335017875586601647901231186677113019605575417961067826774754197093748833850343884256206586872138402932560221782978225429914626123479258883833634898147021197826574369777298410738249303465732252944909089997539527583115762455944792055586094810448767206712853020236827951779568909232699002158960803560487332995669289907168051389817775907251184886769062688385290997645050519586782936392802155184289735672354040368886544118829120436933447438383696969456914361209861275047602590895088596085858760880774462970280313176017066506072489156085300248337440480563495488547386024870213691237424749960067120305022957732919487727210841459542868048525993189806110743257316065209580677031158602537214371129965453611217207222180178173352365045695731132898186777540068371750291627680560252999907713815127507553883731119264992581494119359553713593302784974106107599836896484222414241465671313404709919569547996833890974112519592206449141551430658888025563178915775614058273511760793349560850112021007401190853820195490577754435293470255033298439046238455994751796256294445732049496814940016440001852484311865600259266537040155058245897832947217775273302675273724402348478029565209422302400905238801568568691107439457214088259404846715030946272679127603765587188270601861899185841819362629745559482348164750387351130045612303064238092910442044135106956506264503712680090076925889721981931100097529745803871964673965044460105096673105879151847937893446427205991945009008185424585523667054322498574969856328383271368003814008812631036243370339635105566730655443516127037287260932946321749680476951007362622884980604393985737113976649435010588168167779645947007894091303453457458292950966663073015760206126534835628436985302498155325094251227421019588007233180004592142679639462955310959477729176301834198098486872516398339753629178953746185601822114742282038748037432242529674185927213350279368323879866224093079188282447187173969329826827297014851836702539496031827760892337829604049425706642743156967112110419432819652533457928152728154870557583828947872435176055717068876321460324967107169349234086760620179945402680385654488804311140419321260794328117567251394688737474467701221264771681850969265052118460358090796480060206486771006835960112983055293577351742690535241947793222060866929101683671047422830408441393351400116282473821590737321496576071949904716666479983235378621017981663170988919443573661357394075000929701842530638344404856323588107180905545280595189737560817984019903151283708514211904943793570970812505283536725261579993741857763026461577413528294990097548731289504071165966441059446331303526716164200722572063584786112481112647292375430259692757240255090079732264372720185204305763176172309483467110625062938384118648825170751087835717090054219267297431098230842217456242917057915935524229025326207935047639921625524909318665589109912315769960385637286850834487049564886240111436483231479118840770230622887561741695633811963237127816528508222072376004348590252529145516085763674021930898503258364797599682666707077981222829128765886886741031076656944171428773497839167469209023800919385848011845328037368513851100667908549590542494316304649624081596412719961640470495708883078712825764940722744418746856652637266005767004639330277184526573706185194470551885072962085459052194476936614673838679302312874450710735539059501967545220153562952206770468643890261275499720155572300791633089835749187286377878295106908452248892080934847811400756134405466379660133240850439448202180262257298050383414580963503600755183654427222888403352841739615891934566214784014284052419496994349714391050231296795358364089407162649496183991534628220462097252985471165960985292646311740417042394871414583391822764758933091990209038302755879474591179167250197721426128976155767082698126957089438090509714919790461051134086923722485504745056203287900381489371070890829038540297421156293154094096078609067413965454090742683293981123038625893749766723099479038998451097050479927475511246823229196855697022037202137968925292970384958716793093347888509656604255208881838955630798903610282974304221849139794630346234379282759941504425344237941619225759511832057915882400967428291773504684066176919507201045468558336227035822059889707936279290189160967827954699136027702987683634169060732522644099775642366720913313356049098528244565263858381285804398252353714615143082222213075808896831475636875911675319051780960100445649584834761073788048544022924731495390577337129746135288445727006908622745398879956886479569825886832240944583731229398731156553457052942909688505598453519178317081109714296488664704395505306056935335133841449971812835438000340432625262324901578536290291167474740357712111063817702700698567909320000345090193616004073112536410143676301524996407289464394093417148080979066089251559379365114756987508274281160656979257730436391615251443567245481495962759689055674405766861022364446563581488806196997481594704357873006261010151270114993242104256707458452574447151954654442152519209745432140041339470171480626953719938508043721876844703626050842970339110140180575153574043584047440040592063239730261740488686797814736038507616237768852948359233442398514658631871587391558525485188836051766823261451566784480362389341769270813022467440801903905302547522519478810415978381675585317199342545936218210479044335195707485983437741344935153149944824110757504638755200038743944979511774064871894971965136464343786180546200328789974384073064290165321510245216021178652601255318306419547662752295309585670110330195266627507417526217525544052474186849507485663008986060898297106063098746316957881784342419766179213505439019116310937004720252385727497264783208839734824849655374819250488008523024205736722640218027599595075488905819029294990984788999503454271541291080001250561576698393977686499765281278575388335409000216417651933285878599988773207695455239630799163478926477685215071035234621575353727688151013770032683629266417590846742806325591144877062010285277682788030467552221996908014607329412633380647116319623665196230224730878888639463752153577891509800453805436661794401983016047474502280255605579962372210268440242574297193218151120071455805131648866793909775614341893977007553306018978379759314367059334423143098570605457983542278253744276474041879177934777899807676730086825859336781564358250671462642917383703910004302858598407882661138093987799146797299760242661760854546856488631681766509872649247069792642047675427775721880512038628384079719249534491710272637779312385908734226468597425705619788268786148322766890372845051632709611059117196643855034367427987656586308474981297298697369104810612179179500420570551363758235986665565714674822834373099415882747458165798200132642841712974048508500085957085942246222345796145539251353083574257474020001854267874171229948022253030534489544956387890005253801143749227302420313873395250712038882088431270479474998138561909302812024331577894325461985547698427488926886110659210177968891263920810904663749581832935751937496962595418584568564025600332101704433712412097542217183730705394992088200611583982842769832784285326071506929929124110222416934595209109414665797908159053868143129754457243816180187361216387221988808184159086312204208135437517116507465596958004870389910189855213085643419146199222471529480671878039701765892825852889042651304241071958344800186233811750963151565263259573135625850047347628176593880357150376810535914336679054441794859367033464918374700027088227657234174834718498282929468883224954731601349858581642111626366579750130784481070268493392397944248919985197764106031980685070467837713269643910829243418756356844862337636289669030845899551805159779938279105297299871702250172148379786021720087604247713005633019446300309686230004244105356622043090269858278393455266412288079117510023427930074452814023479330683726041066577772014047022766979712464189113577837489055991882351461328269081027564109099691283961462426003585807554248835232583713225741734188629966260863158187354389642749965049736159003221391846612622315606166299288420845071470266481039500570196954374218493958804388381101199547648890693551693814594293504337378831885958116617174812186027078945506373770001072626100047023102925175274605241633548711161584378611149639901527285745395859119920332020630769778670394739372496590381754833532919333934413836470296561664404541632039716223991412777633876798398458197886820905529983062354835353811831856196003878466595982854582852018480557275206702929621508016504894779276502442939117246546636888297367194867841693638887003576922897458212334679066670028586718255073678951940474927397725156985564896348200584632405070606965567718883614189505033111399945750718544590645819366066175548378295937630980762091192808091623488830177410057704505915188029020931584065301062477185930664904340949590135088469210058768594461014687673178346628907812836493565601551363515794417945483861504089763077406537116189865730978676303077244936539362992585184287865777255891075895978645645749929191135354601913554521135899238733360700572845292649869120421762857645186211603931013269005520606384603594978500320579180703287080642280528250739318553052861519651473429510211175120104377755932098037062166228335742538114867595086817182708928116874111503601617353171160230774037185033227461535600362004007630928517163997332032700774205775489876622243969998504794747490310286708576496065594079536268245995700828371659604223101871054948100762198018605578868673151571819855849874809934563146822753832380664476499390416696240620125329076092017262909252413197152077604102583094647181735507107124579417996509973820540298070293945432223590301813984317127575073798772822400383122475556163675154288710470487373187080251048738901351070253397209555687529642968777354214965646852641634977768976192934718659410055960006629908098850997457225779854158227424663958580470347694268676537045780596846978324908360409556819618527072978030186988821206070817199629277779847868943773677844352135730286543932487053057395447262084091819677722639762543349271214932517689086213410811198702207151505304267375859951954338141269125385714161018835558612599556171112383104141605297300352348372831555127322224379632327924878362923564660859035699248567808642939474927576396090577829540490408092606301118124451171879699103330967921698273554964599003458760766677549925799547367873697513477905273743682768782104654995906184415602657058496738533452225323624733887208101532109731454240963866822353696487115739597598164147973286822999469288921228741565231522293526380008103937960999901272765942418042075994467673373939748137650759058911708532453072189325932336559051976787539482666232314263142803516672739183856425379290462308407228828117533009870259130896885376282869057754972474546316010527094494362423319772464623179259994977514405925225775661496773155553188394351285878490995934336627254289245652389330246656058977352438960810275670456343743047029541636831761363932946841713202680822910127962732344598608604683807596064895856280426852371242596515902191078280655114345126921648728534682340912558880714590760084291599795799061579384533275070714057053399611179278635773652226464927441899652140106171770080744896691859630560734823221446668094288780744164688282130840873903535328989992311430296921755712623465519254698043415569064038901011140428762538118432530573335506357865691635618672680293346485673835280174449744773839781655616203491784593256723171618017319022955281290772177058040275677464605708085375274228019584717258121391380737448959594889346971492976179021969405391221616663112700119283956841150024501277942251603081088336767918215508007160954584645406015311605000595280344483566029539899005635991438564268966938515165152242265775773920893798890793050749688332857464027817451311719461311685597732341487660953100410856562493604278779262729329854027733493083527296733279527200712227779144502458613337885230945181252125071966726595919605018629280045019861551320930466844907526253700869391660101620576560427767250227048313497269618595695299755466373174480515497298052571595096153261303182925079334934807389733628804452312592310117136991405346971633618711068132898492336121755961505628892861901088470795783190576249715765862606487324022271466882647796793937505801750457622735124055372624686911423215035274854205175903712199876247002857268187333645710233238127239628051721102710531345046230651291966599204252725247129521050558111742459451715516021224505535541372164524462845655806911305795402847096150300026269778350842956975297058147857050575845761619529018205769065070982832389110120604389638524833757488236498225658856266196582715730257275831216856547934299067280029553483103863057892650082102745298574647761629557257467316292817640147731183919082368601418977963455569648170122985068345417391865100539234069894188331365737828632032172976433663938467862879516018467417626675663044371285600782444678029402710657037494029067085302985153563377569501828028153368141633915643000916396115266801652285071567865805535658199647100484280915894560527743501398004183944624842817459582722239507686980282016585448437233253587291793208258570753601629414612114476394877408685884665165448445527503155559810279013793690359407633347180007192163461820782920699767146525197820585342822776546980682987381319277217592649666796434497629042167450193185060883761651909845276456755428997592715337347178672618758872558156399329235347175621732770294200156326093490813278978055235790971708064625085577874099769505642898702479091524251922124312968712505321097421824033352195465741204149781540992366509447414943732040322745103655352953560551951742154521549466893257626151605523946298034135699082127597807401176031045582606685473092593445106592157896782102920998163096095192145069372151168669152153830790017005427599223270567387486706431267993211688182209819603360804469486883011302253162495420325765151464693557887837501159349393071000967641474049133823667950613568475991670542437980016438356885732816309153976855481436459285028008855063346909320616638688981272101553699366365416911913929732599530061080950105709894209327738857134505356627767273975823839179487770696355342281402996548738581769273534274358685916167436128298040159388239777013682950593409028472776627283580380304536644294180109586983420647874624997741408874750624947996702182508825569238512355781362442462530626883717298816356108238219271136936422592687263657852239034019865779957446636852261812182587800638432371461076485336409976304242105766579118943172657466881994269800419175828066823960298380045218447742061407755136756949858988190158697621219485343595544567923345105999810509687910788288451346077642248776440096110241842275409230540419023157126879103498495989352823510966406444411389004098755339585422045022327085329285653938914315786708637950864065020136719077157691082871743367515296602343900540777659499926069331703940918988047361357050535301014016868946220706992580895893626171738668643164946170922226977286887952320466148177466065380524779352735253404180823110805467348462389714370900555952448362871550418816837479078989233898863016640295308546411427767660995944798774185824022999069202795739538956721933303059460323028025753515555564931482272807886700996116115687375502174208626234041697486249721922171743946980536897378146620872451049821229661893029867908844535295708192798556336287436198066950231916336073602698605363544181343901863497095978445977237318639623639715537291491309181154808039355134811286536626899041127586433168816792572971674480086833434771410938680869902516432197236730580051688459343572928092165285875601181515172071504176148053849290622306466687207923266260915359904259000396381059918140907265874650035048766890390458899061153932187711672933100632853399293699250029659862833447726057322400099313671437225991819068441934790488719264890995345409761381461671969959465001585628732639559157319387563008615147595298335420494721524732055455625742295568454440062689017220443633879139717117930716618981097544780258102996978767077939633816452112932589626094850350922230769967753728595372817298629200847900213081894583342559892154863794872241980825545330386715352905190882632501867122811194129099393270057355916392466407273914845000805851388367961307226603297703774184565245845804631673602048228025561350716949514068881605117455570353405614396299801902293510075754776696567223552346095728531089183439314543352939881856070716424758065723736732996832986701175004844707007714743037516325680165962302474213406761603490770613725308613863616122868838562356653531005492066246806560596521017885608829369466338301697391141330101154931451610939711704346565860953954753928859976882537384340556778982318897671130803312664824944912459535809954779788753053103102328346064175116597369462235055189240312900352327149965546089279713963265573323863704560284346037446168426222417871592810861317362950360815921615247761719616412993372125943017207806039852418928336959683127843439544847619222130240187139182718679581239932455082550940403243704257659771993775240727206984267406222978402294214505195393659338854922845612138299156272570633313847780781544474562480112757830962334208914852289281168228416287095668344102073284241333693532771883545343732309362649812900938743679874319576011992547809696056017209789930354280601319044016642174541142554514545892325252130787181238014753379477248867681769477233147305005703423176747812129840643394081709058750770056130053120172201368805818292883322714638079265994930549220708411838413996084169192245575357176096414783441431106290538482502431360159066922406551771738692446996748958031399251519734910785131315930034387871179449544295506162369335525571058819705426813824129108811955058025347041240906896666137010609616725720190247461758616572351186693266729837918726684999740180393384417849456574268484290804166754796025025620840002008289585684086609240758216847543270690529943758747158274821019345809921998515478446782391153577627417391986256291739654129264029273146352173865028842031191259088299770184261190311875079944313467231578087219894491199395429608364460370929898583929072614287247610854969872764651785217871025104598147012015962274570416060238012313539830748569350424846574263454416939854486445691041153932186115154034161707851636650153701909417528609373066356400224752968702729382534794254845959022154154041212408366347337458648581359039339494619380451192187748886100060576077862135807271452896674338165659667462256559212987263364121073806727409035315730007866332958649813560878811779646526805448904832982215024709413093097840344409277593888864745960616636928130785520286448685789752123854182347844951957534188040371191829035832150280085671136985884371892853589310800892865647931557729851268535920528601043170356104277063041150238217001632032825435560595114834088629209572500607628074603613920793541417792583121555658723978048111579063793944122650506854102524226294811449509295127252210118360114948984320484613181086744722774589767243784600639224776516720655377353698977293036785094651577254757689923841510518481861919840369387818946278124548434147243058765923094070985347435804266102719893802470616419112415950150272631601729138566156010018059765386759146816179085795110888698786365039661927136528953784496835453309710327628858746780538755126101788203645366270167071611076782768292142115991743443403577192633324777963957428229578681730059451544503479962945945040865689843164309982108422188751836694089522118531936006862517091887142105914550720773715064703720135928754167593361073126287887758105487028448328960033562162970160751822021919807820710670639004416453884981872606172852261964661904300324887153939942169312688966666635295664983473711766617083620760117987192600711732243118906786561888968571969717783044317487967865910653702730135212410792518090593750050132541718043124962846829681501680574409554979584110104445194597516013669252173764617366851144486231962761932759690901942250174436999979734937918804501388007975996566349807072587992505909838199524916570830558469679394488144699017958988777813961138074722622262995660670156706114185354155120188119986662201502725747994051444848559704026765997979821800893269639687527924126212773124868416231036256510562992912594060106937020014728801523984693611226569220882335769618019215623403316856364279671906690775674584936580267226662758422093797760097497731885972389983315241560790453984768713489114555036172431623625516378985260212568467021560345121955704714687965964455795184313425718620492755841098529446768290516884007662254921006064500924026439714439992021963242159918965427926833516714706442154359570309292975669590813646882185613190287735010986164057148554820860963743101717153605200943437253804114280333868816755777397214634902615991676995771344838169753026451840541929031444730912980511087876978051367319541527491236131039776367090093219153961567032184166946834068087443858542975888685377286152589844021920100243320950219059885347997519737261391787134313278478259346802225326346162494799451536010214276149308838183380325827509829928542586385162363717824104819556741525206939925998052530941441415008270600381909132598910761419563312961278774372868734277813625131115836179775459694126858142023149396841411982887182815882532739347317893516721058797410551801217024516823741772475767247423556025375449437027582517037243181361842081487950907595991320503305740308778572425863999017419321920224324041392022404925252386895662606621859218168751782053235074634826243092742733530628927520042399449728863422258604442192656775520665379250432732981632754286743458827027998327850045028616177786374275214738370700617286042927292770806659448675371829769345627037582898154615320399185311959629796111699632910324690644669338221410356788718199830930848798026637626722721357316979899700878239399675849762699661639832047892173686274991896238083754802112291628927136943094748228729727592169853519083085177021649501871716601778560311895053475332997371394589120886278557956589876879899241964027047116605196169666130719010062869714844434335837543826327842291481971940297174918375160894154900591244092373447123171781263960341507774581090509926452367985826389965230384434342938795756801476908236974914902841548826650742680124991548632492028175519351602527608018513379199381920491837519097463223154056116336998415435838339783009253028421328093153016805274943641733820641384405624718296359109897131610776364171632246883405618547357744020142181957651874676108741130898393865491130217812673276253762654589543138369378862231890124688032279345437810088032490344041725947230167083140933509554805775300384833768431537923183963747494121987506272886023716967783590751846079437928594575183440932542693139100387295890489977132151859093812357357440246510473653267892489586039839525003270633873194775298759583487971003428604186857429768500022196657190902418995906599469724858274261547930224701419914400292944671565281383210537819958005750484993643384912970204132386038465998438141157666997503452772692339198359966222284867942457476806423149609550003627077141327406528967725736726855372632745004586077912716968828854788123738393815426913619180527794884443373240718611333952431888487951608197151330727725342977811545406967865825645056963186977634096650665158634332185178415621244571025716839241309546957320599204509360465178661732122343701021866841078401790539406926816885086667783573829149199039369083062476033473061374885583538013280766326517548370467251507912646720359580026093446867749773732938708414511251813288094396811540758536740990960883537481496238993317456338889076593371398277966453401804580518989333640822035992621475204263363261567233002951167042020792966369052017367571738479110654730724690176670411415855625888488871554192318074451501608401144387095951888966139775259162462014043895623186426141900719417987981940751540231074085432351381846159063749548773279112256298023466155622507233729080075980945472147506778916161225727069780738660939437094774548575389951843658212756663824445628689974277064962718024413376389656881873526306688675394783518140024931722701919009868726018463437239341967968988396257539560453686439239083876375050545858888490756183118022824036435079521791245457212244076005790111337134256778723711311920689079501881456434524566068535766073530173609628028054579731667573454237662703024476609018136762308136092829162748000447135066320610496184040621729095092192704438770671154990414642706723284182091105176390587296011697285182773260003678674989302290706122262509138329027264988592590685200056387765314297847027482765548401809672866873740712021547529515047355498923082325899958825500021615224237545227333734003031824702450382480596697348156783199082229507202814828359100883902513365019873493075676302301881514713193765903717834548954699162446496753131883372978349720032661205762035655500829971516771626937862212458378561798213708947187565082809744389341566204234955555941934741543642754734794336605351367585246902745564842272137443640643765551097531836407222839569399430061700913206602032022097624891396814709725958664078441452378714839503105754192194957119729578775614245783153966468451824443155492952710946956564035398485601214875589465067815954853681007221811095410069431359082852613861772006531099675633160272843803821195004393064761781268224434174856896950583450218655969413835411987616496395664828255401487347440602234626922770164011725995871553209823795635687655408683672866693760010909304402853308282798309876869802701120133314108081070225801902072121353165892035166881590103222883625517217515920099499855051209340168266758201373849950015742457519043602504704522801750056810801452582836116330840203364145839917590092619873972641855374449654014995508131251860592688883572095104937779856575113962680784600620549114267116974376888122431916956881455295681926508401391663445823065572874357673364588807451842550025065696452883653333036501880103979152485118446429705906980796008251518213119000122460968127776697524671013836299933266231763586221949830961614073233655713174410871918917490433192463910593339843610256462516131262011438596268996105516974214310044573975715591201206075599920474060276720466620638549516252220402885265465454735836952509748683214586540806375736055828235252200684224989203328690307534386823868052647059219948668954826365756930045896098379045467664948364606247413564829201820121316138064593969592131757551540220241739053589067777283418702365089748590293901661349473865104927867407766638297229093025665839560514894430510519572121667539440392934240709103717172608755307171995489068361697691610712156332225057849162979400014701277808930594297939757476892792954609579105532596308117443192148351357578387128815575636457578565750885476969944276338166705137950137862468159214836838760704843311737397728829929488851305457817789560706480305113397635514241358637391244178075149299747856517979115999491975296934261097442940835648036810791068317100410585768800959289863161791583571819848080741492090080868164905733239464864965468983571651805627499299031210804346592494596672323047080165873772394474366422581326458956146335534338542120704141929179569212147723242628701716183757422305906764151181088030826668901598237353327389347382935072639950324925572597343043222154638438310340792173599269466174363249312952301139783463049229223740593149831321996966414855073656828943407795694554789341798631295879207228215323548674536209241490793570423379034783005614226663022042675882576782190724379523783399705541077118079590814603888619187678896240337419409493505976896917268328509415756316530195997048717147348352748279720849193927579124724133426172621196792259045184379295113226450283666977562281391176008046227462870683683586014578499359236996561370200349784951358300509755493054336010015513593928281787837532773221886053991552952500687762570852225981327302028644477622281337441654241983954148166603534267577737696837552091067946625386904201744931759548720342370730938172497468954911428221498772111332285830142216012498912005181378841043731487850566346973528128949089537648314358320811284432605932417586753228912489936340558232337559807300963970665731848490526788951694199325434267825747648225936539879152558759413892860932004165562893571545753291081061527646398917670941261665547014107140897905590458054434596750455569476199303420987943740811798928974176398962747521842632624030537064136262033607875353201862119485497850166394961266096185886620964036728141040643702435391757659318525328568346119288820969589215228201055308774400938458466198135021450083259830055362855657839498773427016552883404126946970773825090606095488751565962863057503990171765720599615156203611931117322040189762421974103508375921575573542917693680904289235053821074046383794608078220327348720695929437765063359819931164694379182914136146107585829651987368321749281119192164187577697791810650814041200885834488994704632035046878159884425146315134599822808147452617156634269078351071769531959001652112930102193685411828326670547482821882660450134427959609626254289382382978786721386125885839830123774582464443709181144605699712129106864445390222116204472563427819577951262916384358481521768641759184938595224873288706306047980531459000861353266447992338012833423350016666721724519889540832002427298111777849560159372326134648387121324280813959118419952934635870780088469844939292950516463757788447204154438286434791464474343039922889199225325870971928610645879085501814788863738578305819061679796735343843698488511891972563634422398937224696013279230893187673868046771446208623926173796035255346336297104725218354377064567156201320961718469149788162806732386566528025229357441527182533952494832792227142797575409701909472046664100569502474289999212811476647885758434251062839679512822604358581266760648639836562454714526284755020161829794113062010122238321428683827823842849576273289187473305112795571252727905064647609354418960344205460041991056383171327811285510456878404873661844072863698246445721853380292426338155474147687422962451163073409688731859625889635298069678742179785042283700997226525104688763822079079847707466121721565495714019605123353924310625256369220264279329950540015432102991612498460403911229784985818126990089470758513133977407735906448479682343865481202244072853632814900248043548186702119580459398881001036767917827074266398106706175137192469433331119841849123206571384336293637542693455456654817164523780442152635052706754554468409893069824135559012257032131660882492587474214788265466522977049082826400226301839954467793683358227174442050870278896250049913735460890324345362236102641460659101894820755268223754286623645214841686050684035880853623867016376177314277322633123054364008283469114259306381055538287345827645107854667509311393972015686013221116997574948762021179670683799264638434434031407249766048662157302538770436517757777486750783797639610733876024788928578887712732729913625254015580112323391709252988094415018963458281454117888867837671411212964363807201143556487966893086310906725575231359640838219165577575684720165246770764447247822525995841955907029596217241992952342559266517711092303633480536073079257924986521774793180001601710581559475421865525493539946265735374911753986250589088265567341288516657399851015332391470467433917699160127353130441384205582027864476728504113775297569376724475985209830292038719414164701614200237307488401637632048026897181290664296004488901655980550045408387436117283205454007743198443129864556496010990518609743911725195716635380237092568849020893122133434998183536731744544867589320342324537949414410150254619004394612907109472063596254097011984394271810141431382976557462976097007214889405409697713488981037593209160851205393736856630259526508870729161801313513001521846995842023830213857027309211503733440845704522079430773514226151479671569703678414864110331707022704675234549780511495284591088460738958936083062732522776204070090800732042199280972297604621643512326171355588139736029063170671259449521047021064022071768094749550306258248074338561143349675007668685035211386452607718968719111891049989607441962823551190655716296946627045261159275531713760200865360263721072695935934522613816851059473141337742401215467303841588379518483837759184713147485280178798368005142475063169847891874517040168933532557829612731806434289195937700740119547256741847161319071143348665155953890634834738179372974247201355973665142325337627215182759455217764274339676891458600187891599828389269044014449168916084678613723090534609660956158734022457987868585235940849909591632255395183871460592065516752042647403860261209869595207366827771252249273216498924731915392081051897276129191912641749635225843615119429699642652790081633252789426281213846379798529703059278230919352768504904918981240957418503563419775245563769777916313196324783715309321242147638827895461070727126262701001846611233987417191649071990566267774737185466407291207374539356786925819633990327747220743033754302017220106666451565647479811570869540904665980660109875479411987993879753570520261988634770949605533766363475286050669865884812345913932326072779323404924825365270175299289702817749683353850167395151535264527586877771869418597296662251621393426997271787607263587789043500140264003727098827331067818655082356101935980985638736456229517782791476854752631870402476894135654803439557333717699493991472657245579690569294141658677516108218548827360509316539842178578093001494570887642041645881947757780631008185471407513323178490692055824955713445193280047562889434270198148673086164929929573944066626103723112313584182847408046853035381754001444071453123555631784649511689627983754655731695832320878155242324668108518741760121416819252460279328098393841478640102124172574564827872022438135710587271195571834282976424696474366884711041694979592034595061867006573229272482295200626645739865693967363171164314798848659916504811883450284765732310436863656447393071364881279994575964961033724899059700071158052410026501362313675798652233137156403029584066123926279448571639768282614377055767477070438785240058031806450324075194170876656521219927564817219366614571364247192105251291221754081255112911006359038314819071600887866522883499222344773836767929949070175705812670010159133875693965260845961821900099699238854209315965249673847244414251800584979050982564703965839521928110911069256736695890931283489847341360745125651365901023748634970403396857790801924569894408750047966933697819874143644624987380450555831532188139614021539179865778414538238946656609605416843318555975027697456545272163759835282667370367001683464203853178111942358335308027935910959703167805121088226086415622472813393949914984885090425309362703944794225964228842764967864150934085499963591486706172603137366910071136835908613884946884708157119457273025296970792665190285150161664742825668180774506585064017233067342495228748514827265454974235109029006144807108427063592747867874942655419302673967890230109394688594458607393316757092092021189556382390813982847363980692235330808721749338934881566368828717240563878521778913344985179205887150175703000506160393092544582850036308241148227673305107983744645449609268752717216829605458544985541122570033149547432142784323106887239326816249269774816495816698869785342854341879073723685412853304730513660593498176365111439849357688788329847519693018203603473587283074410814373610321429735581816183309535832559795150548048713639977286412108133306566008628430607678835577918811883560359214877926174774375456749217519710716896280108389574023053481854246520529932517185239398132497721353501606403325033780300285229504839935481786920539592938315356348017212920764110417906277575618065399739878558855908747361126590586002534546932933642339690065316286420659213864812028923604479516046892162760372771253838317322311085366777857760720143604671989883416927301818025655502521599227003970286426053424595358970870377834278797795349526942042290522971178529635661921297050585734938063442194996508393658777385297431133722559757308640083122304824609894654231810037521773782403562880157015511971666912486209952764154682356124824984661895980825835624097826442174369424608490422114280814279785268963275992261008658035308609490195393180609855909546611651125647760508067762190451568793303500643431956092392921479190475751838248520421042710330279058461789251360145050283315824158572738926044419103225821891675852502626072238219204221409078707001704651798097281559428553614661491847018343269764525550952082935869891138072083312888980143990515689762823349103082912858691700374849131227286704375957760827885423209884584117855619311621974030042810216554647555380288063732771612283994595547514969885235784489597731303193038174753271404676165724061231158704531634517320814516050217789320974233453092560317703156049183831830987144133447960405146637598305291803057912057910173776212481221962859750681121631004326890331959472245674469216461659958925177153283309812083020656643696880831967244747316139966809421057164681447491186014733409024208601469732046733740059341125704016873950157954617638564453679027993212430311540810275617540473433781832181569870429089139634399062671674176435701183149407797010020753458426244615428878151466668694498059376303438621533555738421685740534548850564514339546051258270207703814767159602885900918453840973303379286549814914552879347154081128944090432489028244476667561882131101273974810421734870736009674636888639333221646904360786562750764093455794938964339939350840797117105502670929018199795556356963114868469730136426684297290536770537232503858187409872627424584997715090922874926648785043630179179444035668174938201764578317685891656375257295242160031125039729576443208225757903823178229248429026813961291501492412147410086853271230939779598583421325061268648713869394999036807006420703639456750718092017986902717005112515477237765577536149015138883681700473818809786107432859605160402163071050149523900617936233829557020844566331932708447280518747663749571075088075284755240841797800852970962478254217036281615163549475756995937857270723696152829032907200088572512545439748510456491481186101016539293406813474176990205272786721809721859639809951808062665610274388573393051028064495225974033334494496319049730526539323817885331306604837940465207084075949559420767008124269138391318808318588747080203760918430227175058381104440236649833682015555002575470079967474994090714366492427003795806756403310793943344732369544378757173506175153602899056492057683426242936099350236478758509644552581398695407228596312409581281098764737448599744119450830106945649024866437206834639904187014165788315622502806052918106587317521226171352436355962048419385063455944091438444395235486941611133368436402170040780081953559028254368073678694907626425038143859487842757520521589301453157935952447031507882610735344344494749768397487433650419460895356024861189766887185577024587266017050529549029084869586406691406609878483611959191436206611885411009800572958631510416827836492187508843014442896434918220901720279801341750378289599158081578351475136635821545728421801546189337757171176801180024304138229210829061903405535420241784027683370418661336457008228391833999305088486887755306297149464064097267185745866188319373630733952610511228676729450457103800651793078952500830856176238174590223367504572841846919564641663521065964424845926412836806143976738662009277989581518836425067561749265114760140116313701351313823909612586660193924863885703385084175687370957158444101842664130239516283984752962024732480013745984555073537168249794179097413313550564010038106970395347482083020156491472394939170249934532591423799055194720821816848890200797601210891240972404012792871077458526995381482612120987267654369226349595138527545364467994183636858249053654099283035902558062494194833188601820795443403071037507982471388663187461582285476520916687298230621847319818180727384907809060333977273429127604645413373170449754707933714752068401923011087270294883101598489136841624362339433220510214099478972306199872331538448938318020868000481972503843638873777446979899023479923395218731448854595708085183312380267458311726639106259488015543414459871308819899586201564775034224048399424135414992405468844360658081766106258085943550052626554528406871219930052697534254026015460438439195101387500584041325509952037371350753620008911665193980902653139760603331703508377087043074522125144994202382975634904583111700161655338944909771254025803448783661763240938442655507879027229463546347013511566022089378104632877531112875221658441917357584926470181410174483717740448591646171858226942303527900770619242598413183106461707644658954073748691579124460978662942446438888728608759158865509236128362122714691065672988577826476381048365040115263899716656491071671341360286973141030253092210876756902738314466948979186673373063471633129041063285738124768808752656134153792140003832837177637857388658307752247957547424311914012879035700823614389240085815432074696928575576636368730933545027603675019056470615219397985872958837623409788661463708943395915516745145682094965115015248836444526550278490068295890765428382325491699409766401147345617269206531666124219578256063446481021820552216831868795442796245099473784469018596119025581253460442632133062894723005444874521830661768176215115883294827552708376188435538737114366457246134822392223845446820792844210970663275439761380533597181433884954173624679995037178183872322504575971929876317952447210153860232189072582556822082547261842889760588760074403688594608873564877223042524357900153697721198783339547330243412667744619806914877046784724991796672192551151172708290767654495546768013147781985558913288638631825069512129557265419943354572483206013385494456063093329849563064202352841708092307540213344065862812159611408666305400123970444809174449400273338947707361097037811265828161816070076014805962405326755057760912814924853279311598522728156717470317368905488064011238265485610330430147283529541731095714129812211170693275413494591887230026546372229493679799875641698413953783557637337226899757985796662205485358489386692620336560502115204899027899247356938216478468437188303486426507440096753813617219407641036044621719881296596948152392731118207232082364300416399438866356387039490904198321562120651495003535273148557698429602904047127391120531896823943720315653045351429802088645298095962340718399703308730249140470638954594954801161593806895874233878887972587570127568155976546921103832064647935541221906117097936398801981418551247477617385158685383447556886742429640124728668592078262549892013964026226214449651830240584569522220793679994115342102671755136444273365688735391504929164307827299698298458129195429585963284253564852840904887719292621889971988572980190261272840254770861069941482295125434178683923237491818511725497542925636590827688679258745961706009036872189062245487091359290203747072849244602683666278187734115207651638270226210007431869052474898286960116576100173524226170897928726391905529251949893999235861515971819071867949255935826797290876620979972362294348961718061834728666201032705150919321779939345718584962737412230863134953735259558504326320802543927400660490367607794389294204791447088622510074834218430252926517442854484324193315143542394312346618982780283560458068663821438338301945882778129234300506259457504858356032540007791362491002413447765391611519589157946013151735368355284788839814241613623821122006059764191499262428222456066137129790212124819268665505693531681919474593257866596793455179650928641109899654818174237376886349220034829431835312845598475880759853017361334887434644508863754459607884550250983579785127660278329266584524472922075943500807387544655547995332067758894715136631221122115020231749751471443340322132073973494623267327689634338193365657381595701578497772155347908442324315886172203739178558580915441107112463852331856355765936670883134219833864289478728937070825369455964238045442757431827725132453575970936766419634890032817795504853207223275954546039995881253019711672368671476076040409647537496646309987740073587891585575257142695572642308902580900770674827978884272927032328771630397619888459000202866440550653124708949097873121228797356468789066156080806775519327698451436327026259821239127407581125174035564942028849766679749796870192421206333076765616793018915736785546581242022732775625975176230494656271038486031997180273510122242542959544613331328991099453861603521661125156502703977996732651323710519401782762644579914248365749810302148771877572437706455714415822170824016223212338415595170754929935592604461877096885028024718071294354599884562723339646834952154549100324233266395928338566899502199028428631927856196328928337231520738865191270713833737116644828870313560595162125162945083091117369496567470360643499132183650974471369817809972859981734006792544416918594196648164189717431062297643479763206269906213134593885615536595709068367873168584639729733432577095852176703607213848892524351905367831169025674364421568652883009590818973589678458079822353738094157371923806813474197712422984997491276202364121376118086671725184663538252417374739088833567932650352839244554560755636905380970339173364143071896622503349355448383644975530236661144495883960261077286912083283570207832438720113229017415549674952813161965387044969437077759788859525620043864455241887863439417686252232481610608390326026618457096908096595791890348342825270616590689568037126041280573276489160661449507809746517622733184523343246838921305457654526981421209951173422516777368924987605175647054255155747979109599798509573620466153287572970252658672117689395802546936303699296943382106997128638695118674731933892246370877636943609899258077386174634676042477566250922499344110442316659277867741436424537680355188425013437214142604995990946134215659766374007626207777798375505385161524847879497145517695640599491635894833805924373110784173154599861420640660534136162713548003286763936398521523194080960328791403783431586994130047017117719930757894686358625101073132995653558858139386091612597036490992816530764884039391772965450100458923879581844494864646071012945241384904118536556107569340167883287855104766570813972497410396605131960976051680045351023375729872780535391467336729431640077598371226942932618513140279825768702236437447542423039254958902195292735311937734596807907045123390997802393756324240617399337035986827784423621185905419537105563649848170827269267160833721297895074030786832296590303719620021793688483855723872078002159858911107219066099269920422658387122873122989452724948284543487267256512926409655571200757286513863599967362328370942270062265617816775706422215198940733100710205005677130714476483319201579594392362273092479860461171876603956289351289822063218028159500357077970191395489700190163096549589413110495001993852927540638623905220881122568268522712140585648590135856691809910543461722450898734356557954484165541036335870805439061982029021320030897722549586259637054813764924374843259785198200701570513355477384589720181105859999081868429727599706648250789392791433547832395987718260547189364650920277808224318589743423868669872254605892459859827710440782178298615212191698549251755512030811578356025029632333998033461295642322893257533451169100471449063057337495976396289593577753022963216989046014325246162432744059776996159175596845715997119675593382908236042279968705069555814032967164395356745158433390722736081161084321704537149768063243882284098948274288798430304671214270168681959431734588676674097464691183626967399128226450533291338748233691953662188650677050525674011917514072857307257952460715941263144700592119148376161878158297483432854420700412520206187776403387316110951720593047577741515444656322366155106754348617485938697374592933927296923620144242840201097795676561004281777234413598127315835310678780680036521978290985074963992127914321115467162440760424579756859471405763986728504456844035154389251517013263377305397198100587703017406183387502191020433213324727909125607928021210731000062914722752822665045811649389177455686907248700387689419313082453019344690963548237383382946972338051236451364270003180468764233275461538966087737065315346234637060450903100878370851509140813320300607117656796047096308245251266244311958920631854133935611241127885885891395006050102811636368321146206141464939502720773219388871158197973631153806109060124916592053415155555977298041490130873740934038569590285032828113593927872754462278890996778053883640161308403566397288203592021871153063657558783984754501840659195533191585853893570721881872372071486380647401910885889995984277755907404529428484065865829525474938678234715163555781861964598555916290101582711230923247710572039373470125549283141968019876441293371456034697877523061423942307546009600933248313607437011353827855903188181764325407796438080509813851526335894842418591659818989011143014246559138493894567370821881469479369416577691898032182643830173053017407139212057342161938269549492107522742465121151012368461819793329687656864845655061621580668888412724599791626650381910666306469853958220744686975470453340170166642004180847204016344468769853330110637076739533778337950144130641015863979296948387673710785624165096705887386698615408821900402219375289497406179557132347795007148560934332772637580364809342519982153283091419839625444910980788258710629838486838409708701764174331250494793194025089669880275986426151261145605563490097684549951458624856306520372311058435151023441608957841719635962716356572986274668068726783613897729794128883200721524415040104615582687433984883652102812542040907823217926370599277300481828939730310357527633156144381061647716973810331008900733093482510865912427056240242847447948852489696901340471978953044507178650567319985585267447121051525054660507890406113622372587303506389027090484127918105640398315465043267822410913645948050410368849220870820743500463184793388561085645403868154412692642384910680972642631981479083874106306575031435111594601138518154220297228321363937984671163689990740099440486723575524328772195783924799255483819593583107434690022245707694498347167480713103195485372403829671670827459350953275033418890229492737779138795322730294691778862712846216943965504375525994220908769942804035367735610342218709001877461899401537119802065191888344223961190121366840275059023022773529197485709025597425769871803575967211052498132783522351263200691284874102592892518034183548337106549066840493495613293859365163114080216616667237891559942014337823987519924196291334802638911255499905094276835128611715923433057393378047869898644105541719715067018492411343209729679891801181493978638423015334221326289804307191557350199890571611062736153290515336160223272509555492979219019585960675578913113780526066587759236382810871018202576457701379783362293246467948675998150959350318811638109881749601908456333993119482562404075457462720384369008701323865222963995909463166717966515851291690922387226597533078838915239666134637911874362414040184490422402575536297175119681461115142081359845366766285789888196526720795160840320791228154061443258200334360754073279434556924206348292829785068687692890164575720795524569228368179781995012536982797378411555882832832595397498247619150262883506411467336676849911591473580496847847336458979993364723904630349528898152564579338954792974881612876052165032538523980702634331076523656896725575114766998797612447652071295375644343435021010364075226226947560471657251913793518012339267228500574985498179518254235256483746188317171149590563276976688846821085624334747621413920393911678895195349873427394517953265357568374973579493529750752549141203951309520575889027352470788705015770594648998610921782727348698318754616913224956910911394425424209025326222035320363203257048802994831632879321932791256238360915536032416968410611743354856158045819085990549708975193352267231160528260982604429516629408090964844762533299573561475275177893896347385495913664001508155711291087345991857102239420422225395548881691233044758666734001923461761770349274595093329240450088068720335243482290621666388637341853979925361875290638258642136118898094048744785744689642633665772402537990999255768431471675330561836587254948935626442790034227936330985902177659998912065077654986507143728593843283463193791110225005147160347600029403114228983881791229342056201487504799390190048684424347915144902546867427405677996013639245545161912623252128240764484516918564530707288175804428241231418979837625110618302059194801254561917575816943435751392439093017918496268672595695383086808296403792104779863515230871328474980263331145367718844369575763071909010449989680163985203735032008328812249397962533903126721284970284678213170331993715687900019997710931536469268791301886163173438945924622048351475182630355460891332240245776689332372417105793916634847887146930714241627460433438161952226044413564111109617723888741820214997007687599146993711181337582141320454278696450955593597204605319171844560380327153693054847828448624295698137997160953873113451640357798928773778135004371538132212426107118569106936681763095497315563102104039584432978909160955507276978792200520887524776318829411195528455719802464722436040025074294701843195912762134166227114897562406153477726685205986082545188044670204496985996795962706466715414528107499078694729191082565011709973940438820165503909598975403413215718014303064148823377670763545502085975025398123768920154202829875488457009221685553795202229927470476095378449207710570613791728081320572510467405654553359859286616370820472646473279233999492614250800634728784093057258413036196735500904505648291934039988227741650425004194754680187381934280084080019925541935071649353770981204221261207928923733736804702105329293130844565407339617071669808820009582124351416708577420669887167454551394049197304598148193801053398125049054044565258256399266963384665438556093054454163892673034351916930424226809434422039883643201671505203327801329176391307855298607918264339408448901464133035021959737891642969188965779618019929985504903874966028626000237832115017874410054057564600413541372691909610094890023867935285102779916842937800940877321415754580234020402422092520505060274177672794894984176911514640439050422052567980891919513060636170335956406958673626039891700665478056140177417958505551596591847748553607703146160772334139676679482946602649944238473111513202864829768450554613233674254153596150269757444804452062902175564677944139439425666917519052245742142858287454465739877876743917417837274381910274679722218252198686517950778513956753935857435199367987603717194018151684108286261597392794510039079950462258990867242172917761290992821870840771125390513431613568499142301160849354846350403090771746452985755493795159291268077456436671541608071808552204371595178822655824303659652001369106453734022779731733620598204810013147057028218082754737254692878234181461708850147150101195879442475993378137321520280522426667567451975851188913829210318978433255856317630864736034057444850056102609121004904042358562867298189992758441500162242897587020039547933695217847968651006797886519090686980897904660702571115925208114612603293870166467891248867272966160384755798607823807709212055706896037484031373323419916132306682005751402891467921879450850779853735034605896189964142413932249452101338833390614937744274884742304768910341308095596628117785279648932806427720648696310582389539435298926261932099293482584712286113194726292956684638011210948003350267932230727273140186755916369064375238975436129911317913734346630001904726659532877639491757425633607301959896356260892664616195066751163902300366144215687379208565676200657769670728126714530831480981877704142872762757617668522631579851218210519341356096598070517618065343050774496087119375661855323741069990912354775247184480859962343162996457768645103417649440234134628829511075935165184980373599897399546290995078332284449987506232690973172509618537733559169582843161367719342940356366473387298937176082009178340509545429860290775742689364722107894880148867876470565679648820477002317684608255734605239688467696103286534820476158714576687074933810259667046533576669492921814000220606721132812581083041675415991933396423025935505724569418971917604140898976794928789378256988661375307249679079657834343622057875656592579266104736402638774982807170549262833483694083793867708822846164353220907010664836277698012728658959957995940932958237648361756236383117724365134533095033036647777952822999683539265851602588263005713550721569913293008140625968202822830372961008313852940228395497288804130864959287223713092674125622170453673180647816474823723513226393523609492496792298578565776794656544290247291256471643186248527388039374512993073913629141341391737753902581166711095203027791604230841866420397401389266662832278083276051001718759109593647102750853086974811603026743199170059256557598738197839982099165599991123913180866333024178913648576395861605402838203186343334049230158860783016692244628956312243841625893357240985319921685333735984385679932275791054061085031029350832828650285866602305644149647784054464215900586926300770570573886461954121387159223409498373631001940466352338203469751525733023454787636491079288278700370233988642915292291497059227214349065383604092191773873926050825348717727941607560656400229140239748888411441355771764715003654404001653992676405457649036686415758468390200374063682409026059705074336905250317478698129902528585386135293609451458081708572403523711759234707900758992733851991334293297148986221771597556345626917368799176373365721162902153128415183681096850543846974820087030852317556055100319502111636289425257983066340566574323991325804005327146422137659644511874020667443423686965109379442207347747294997995442661733109442823277532472539244909929338930531876506790240696128838370587827921460518395511660060870347728022248249072331958185624835947402079982568478476144181650868426827298244532671386872646509597740351446670803862475596816054415215600758070229944773700236224268224381345458223431641752792034201275378341484906108294854766316413372865647130373787941716279307708753546220945275723710627243372872885963086185318468309373838570575524814680266991638457156867945411760838853404506480472684214857556174297774022356033450896848662333606759044314112730862629745704547046113308628421212598320392069662711387892994944079164430728995612937337152100560252174505924480215626541964627267799646571357909479772052344371648132827490524305845456636353222130184275235562570788086014726410929592140489159391692444758899416259866785667003526411485996895016639928334527546805407570078695718843076637963470571829380668632449757508368781429095139511820374290738361535817212810268599947797490527969902391388102710758874547447379505274387826709385973679160032893247177302363586202803222595505506047864910035203253671730678343800226628879384418328826303239117435054699858772742271201912436739400275141367328574107021165862282774804005621985951238302612972464869135469317425718510317929066795769748926215150588444053596531688827236089257138804173603604298178077886802990383353523175438204749368965618416108019964436738703561309136629557535296053129797809860967828045088875559689173744819751483714247308230928897400548434340582856806334150537642724993870610402860251684211351659517498131097979507299981713935729502126328328452086938855755965879377972639224755124975545144303155776364038574923462184318976470208051039644499485817489651269238746659013880619733155719483410143489840884858735917930981098585939478755329601007639564399600364055762688201563780545930529364287992939460669267188473389427468724405380531663030985373755912198571133516321340393793715651826362855559440149353808048201289648876349393682321884750384632617351631595093482634182894843108738801442178788429779149486786530272922514047631874771077108725222674470921113783722043325181857420383288653415303992683145954585352026826962130719407069361483655401442345046420953048672713913327983186707493944791860729228587410601544406445485390298154771204356835828337100612279310225919847320865563253419708127402791392299220647730347830624125715624660736823962135681988286666087043890584241419453319632797065167050822877349416008025879730954142110735286183906641424489110216142771236756841802442480021164523333248775882185467592616527119544844892308649648044430663675651570358922027203556562939459346541282033153669903562277187578527444633075392888279703287238670134006726294822517862261953655391314338384834978161534257450134676714301486016879156380797761292857630110923490108312989691158850687098139024292748498290250356306420431125163412325086584424043263406264409936451191061638220416635113126839860849230700016641810756567559478651772787394735984815227144708457778795737313828455106428372949552253923740536670307290975767331864749083680966952138644911317816089256590160078271142985215211309928021107685518280054500214632492708035706655936928123603887302106331195916283154714161822952092164085347649319155977963010638437665254874001105047546174260890496377228902885524055130189940515598232794732618175744410465270357578254170479764544965271782064218544925118199993730758737254845766625246736299300372628977267925677759976603973363022088935557940447667512676565460461183034570553343171675734779689291620191309521013105043884422422973534384288024721447885972824243197343620737070149410410677622228877116711313946034403167192872435995312978123708545872601304045004551877798184180424153292839826630078364676505895836743877635852132339828348221456230662706749826147282151918947829206906224576438906915819218378778870961139224779497867170229584299702268021553502669203595163542319594197303516253523004298101663702256452489348937531256480247416024168398501052910433392965310485356280770982786198071445228873064075797542713155328359492208938863011756138999394897009456907738595471525012270306517821454188080484926656010985033946218161030666852043090238901376619961338705617690426354697734863821050991629512622225810480193754970129830236046286331585255141809608775733728141584863327200169415716978405229452483766748273240657291308248589831391259872842050449971110258560130678039436360698813829133020813006391735761299823105163106822448835101942277550932400865331940297351886645622199418193518610938744925092923013369245025808737029967796747572123543045568308784922333735380384341484690502832561356779322656020474539163086694839234247238734174148865239907678086818208336664259566998091984673286764612358179592137748709146440388439816473976010489392309395016311034327292742844139032868063968859681914123522685569042800712965808913891217184763427499936476708842625213463661341685408615142452507242657239583915237182915865088756844125061212270633085411025958704605805743972380313248428420352511901963862185626833291032946133692886993556744533590481887824083176316369266453856387394529252772545927537731429843962824679312236308928124838158062976085230171470159577874173433011230442899158105296921074734188690381760844995396410886520343236339265450752611413891982863000344083450851547375423826646227752698511274428660676261303095060622550601920840357154621770931963459424647046140258871533559046911790559260835130013016773674745144735375443857725858844861227930634138052184941766146620035746462989379756695881832547678164079595662188382999598631300173722736682343862535329266600283257175431553982018432986504253228565601474748941180366657627378220189219163117637870579635219926277500720209254599144317676046346673782576075870558683947556530386978271878448231772803102128959931345454637040685479291946629940127194013351434382156073327553153908404540918901451578409305639230006702502889741245595851850018328599077963328551855769542127930673690364375573682173061979248773947396850489260121440812392381124437336485112390822713315954517068756454819652131591363058866698289998381872777733627279474611438921798915983485504076088558644075826055311685494615181909493061443939899625722652872464034493146462931088805397810353883049990641916133401971804403270342949166448995229094161300603483898928695119215477424087872601092747879897001682446312017110480422233667120865175455177846836024060801914142531026482389654716209277435056486627579144608823047316324164289302812055225261717938006160004666785360127268212312772136515318357565659835524513685953485046377776095754103647758602132319670741445000757174398283470200973539633257912347040852030181665510443579320745181005788334232950353410091520311157900389785862182375253607244482140141378337309328531549670485253365320422627958401394160590268705769148664304308930933133608421281666670325018156899880351001155650118970004432416652389329214358829499883383442441387517811081419294090271848458666507496401740859478230865320024684421639876907657475679770270457701941294639847250486131607982516602646352711501305514695034622577659063086161868620607456322400364247831254365958461815459101034603416841924959115956981963493773098104915257749087078855136870426562533474172663397168780092041375823629223128932374239072520597877942165775910595503108278640698697034495130366315171485274009961412529012067474171547677600062722395842621781920674969106946358119663354300403309049791045789867999625986836882731037480299982443813726244125309797040392023761867726160222972551734471410495395566812122433050924918706556043299178322753099978543243581844295957035994288046784875602003840901986582902847338401037818017397505172928709099959459737944152166364824600831423145329652722231714132249097682861001297025914068934725742334187337111032840403977677097265788997501677700806276109852897392764509895118668612682344872910697215808015978039401462483491824257682038428670046052175236506712736067557189133116890968082870424488046156100381115978737804135927763457215167314912538596311210816183769083897220114947522433950966614362961615555609129333970872427735827731425238746878842162125361879722365092721199703452976277636144784342609512899145857956841866690745325247129382676885681985881806028051481652380298976222925276163690448840739709454568661431293659961736563278943145027390240816524011383250973210099751048305597374455725088796056887227514773601881092841448312235871895459487073379452760470341501795891564401158887077566507734017876740260103436271187042740395364838659616027493258279124567140489214779362819144920184552428176078874362205871625302476930423272768833289113684548757678375563614658843923260355833859492200207382079525663907777742782160292002914283349424341837956948688522945070404638534868288550661987971754847267151564573497473244280677329101051620481586864778010963787490126590334499238882194956610538557607462645561839015053226739926390542102038057118242590428632200771426233597421294631944463590050226502295489740266026299133877730363029325430365102808448669417803730506080830654971153888038228572188423538099297201536368236278035579800832533970696661650013900806002509844754368360413490881300226464506138500437388302286693870410217129488994751428832618717430924555367610533934659187566218004198294110271049598451009939308645352103561106132391568342336805361116461488685769213792640977558389210427486014176074112695225204629763783484974691318913808874182882749166578824090807101585642858070884825918175907249184491474840739371218800956524282067155245922767308241620133338877259380352176244105890420518777492966236509522692977278065543628394044596749614115635999746724981673950237032060160419382375148755920566006173589356462711068715561165589296761606760689697373097928067592230929105586974956489801640208923752404647080259331613041051933529568544869909442676169342600947227511639383555639791014784526412360995571918024764923325535376085776462872449059665785227017834151129756155260802089681463454669894898367386988460009818022252661134633675780990256269713785297221104141975841005336391621509118939038112854781079427179382925151007682025512310548880883057333433886144120986384759211672129217098547107678165664374955070350022814460316662693197680473705957882758672367460415603923755532362548535803676646399731454328080584360893276965252502097303219507016550887786112412329104239654145245673423329654893916650550937935268327786361380265214982208787219575951828265917627210411023942850782469650970664426335970647714000459160926739725223596914642421733246711711360476240131617243567246222299028146860383883190125807742112790234120401133235842962050277797992537817855127256267364025114462012890900973250765012430546008187434518231606111971537975941307377559318585922440803082349139183175753928058775157401701015929354885204483843591998428875330900475596660878138069777313623778802656597004530027226723439776231268636496792530025557077714834857664749981888227933106690043137828035170873086376369660347905056227933853858252149413944110586578678878561791039478032769751000754507630805443132267665801653861591245059523790369762640895218912055395917884364622133340087924737700690807525372873590141397291921511525526121888844541712975496773181381353168995828082210493107472975802641853832323500847424092216421028009037847029682929867574013944150811281778194977848985568568192272266335741743557769974286866484070090389123478239954942238726718351297822595889432439931304023246468530724610665139288010580648135096804314123523544819647439354284768761549646184525490525535207869733895918510228866252636667067323744709964807058658502831745328800142703035188479833447098533853078803403785794803945293815339485035837684366729991589166273895203575906368526781998571479035507866722964315720055748300662320951241949775682053785366419523947083381052364277483822918776792223215899606729364636133275773343822085040286736856212976724808423232096094720064909561240769321235951220045286948114541502538714161750009448217375880442641751365046515249762143070632057155633846004539057708560153695571067125280277711399018429476325061767174407743294214161773938883013136654030410005047122773910380196538776013366383630689980729407355281278379995521531932064971137799467200933353622796158259441157883283738604604265297473453893790751396820231153298467313323172187267601361364218333796218556680181277594667566976089324050463165647343105532347754766725674850913619753104585800231124705602403835505118184141077458558577981122650156286227574836954641525017787876727665170766503383160032112396320351584569520182624606729135940091739685171833234941563803795872024390393647509615008212627673497470700001646777275418050511578170569471109784180709009968456700147964281855362564940808594323431565483414239257608511059489049956471658708516345019587980264076845808435440472247002522765827761489409648343245562164775175880438328259133696272139373444175268439679971565718200450698626457805399730404752785162854186134467509588821862608539674196587164303203693135927609320006993891574837706751496620761750546094539885729115405064408227516819956366196144644688024555812769802722117442180811421351651172009780895943942395282033376879063168079457046668048741285738857148273289009761420672056952286711895791223687894820514835421349357857605914856599382123403151082818814662295456226962787220012658950084173951022581815813317827851430613056207570576422694730569487804220898261221221999630960756857010909359914273844403387679127678066719319441063873962128972635038143835083658058040093630482743174027474901926276101293719941635362524963967121732404879410869627141131862023035429486662105525038823035897567161058741410279253828070436490254536099847776368259307746799849318989637791586338690085771153121278448329319417329302299780545249378422137214834998715349145505169453550210523840844922169174049418727869654590888252558998856447392722530884056154958627350247249062573716307062201291760465355960981575367859406489104847695283916856573507054105592278431077116117734083215004909033779758196718719171100459799963673819568199043735680131054572849077351046257043653049880578501948500284125380760437389799116593768505329706594057972579419979842738499752064231012447461269254797765802413945673927272858189048099180896617420584339233729145560725056679114618197645561252835720913202371375358554710872973434578343794484357220319904398997426273227452477989029282375177864664362561535629734526938633212598279314886792548860398702363889808545360438604509396431781482268330676230366745704778802320313304732966900987191862467293381790723732660424171583419200441453584781812511534517703898796389557680138051127161096746161354545256341448901270886876666366960529950481042862908552051982471001090867669561826496487854229609112607764373246012550162268465227439296820677904246942065867718112403411605098050303476263972602520934593887156290206717848848510467419448856789230760401623577309078500284624410472036486446892555172069247084733355683103715423534110097394349202601341697520494596973497012878982093742279619865352447817940162019323636283265026627528244691914576853170392338517486501023476450541914583639856082893436706567619960644485195894394418895403953434132219208979975019856279158814318346908907252004616575118111727996995818716930128916571002794859620773390206609378694105312464561057919082614375562618905066402882063311731462460284015822627052557365548435719295543163521249303004792343746593785508379965118739906028384139549420397009090549316023272528391912475339416811936909821939344026465836161530391409951564287615785634958294441030695305425074634077933368276323776139762183433787949320206765220216914037685951075161899587145239889067923587301280724984665738241225663922243486306260624738368036852093265880741258624908934131285610611191553522315137783049021693235299737881000005937819450675415068640006754255198278839224142343700359761104455087700751772461797032855165711087558567476342273408398243102358982575981532424546904287420247396607882622383438932926207798527813245747669912573881950065928637753352400582058700262930418034208742399403514611128275277163020936450795726902083455976793749774480452160455467451690736393874192118877569843769546283346728862119992637122206923306454887874222317608269940867854094444566944246454584608392281138370700406703841941114002292686505845059609537329531874993167938081570903740061500142221584603132320841878653961636368137083302937280593019374734406403427530233775592013546096882190333315690020635874236384607058900445616326614447590126233616384433683594094200226072182482814534611698899597442953866021977819695493294940846218740175028348636793471798840517129014246770008341989800328437285058844491876680756715180807333068315854561226699592548073509658867106339481411636943867815454670973717582551285416580501192729758249095183753268223629600988037400539471487441333755768724620263352578965684423642373753347435490653773913027882264275542842902226689823757750120748044273971601460684956880334707627827423040813180330106205842660399458646508715133753667825088501546567459592579247825934391783581806513890160125316052137818944710867825595471398378170467680966724785628131879080761578789379831067397970310034823816687624891989018340666808903812493390339997648305474985534974271058263261200308877986349817958776681684699785356977879162004523288936130032636681119535227399857405642001305683015079354081015523208233565329266610247211244463610744079302187176721284711502424761957690179263312989210879507170429711893029805542996472098462387171687030986344209076698443308568085920139493628942130573561548519076786674297939005732941876634644859143216596659247874811508707394248574785455963433929714601645897035615532316101895493612883023780382712388159991578166237154098097968973742640864324647804667282959415400439815352001853968028630679433164273247203782928898400590594692630306045249074194996591731950256400294968333412225439632486140405908684508336732106819025430679082093949349726112875966260906604176122174873971945112852742454900897718181748237886623999083896429502883619769126343133310200555494184551264418826120015123705078796082354482584936240823650331719904038692423230637730112833288167310255051861401825893500559293214954597450051175403563938579423843650064625826024886841838946403453792549449195973903191354948166698730651046965848318823056218916076462841034978725736779513164493081559004235149865454693567060767581291097477338925973010272009027703894296110009429189518165271815765303855457974651183841150882123385763562775899604137263614173116932280396937221053667057409765934424859336514020170595518297716250144430050770594807251851402673715541889623423243558989058680041148724920033107812917058354424184141997584753060974881950510794326868026426086508669714818050504974067668624992837266714093023335758286568078488097762961014262672890199768928648887909241909663061249247799170214115272974289230856753431583841713835771442853045846886171216327534093109476845938312628551800048248340731955242099676743924306254868561609539273619672885447644448287827339867579839044144190901668967709281777326346387245045593638387998309257108781700641508198241711899416729606208842019520334573517701571338891051570777442038685651387499126902365950506213880962159594443983346148430161293768471629170890729129186314827065757854676474314657191402917216669833049146190040079831519118588979218083620750393143401299676167957416396925970539012205629255172753648049932178108831941612777587248830993866391525921639149643786608953078869771351017371945667999129126361563897694609916436403696676025196774530836676699768243630678045998012936234937373205171917118148322824918827887609519663235350790809104863645182474157927759063831277168111842328314034603768155619615471468249953498662127565941840369163657594871721103291452687706100427375312777540023531145646317793658285576457422761426084529133907788289503256346612323416511929363112358411038833122707982723181854741091542771818214970876553717649738816718835846743634689678196824615341454414675153262453886071924379292420382003451849518081509055687769556764248926174230918977894220566287400917783542951463385075590114140635732230128776676416207486727142602115453979764280617928094615285429949324585354663155419907749150092316543491800571361480583792084858543998840848800508145656493318306799785501917566955774361496198959571524186212434233006679284729912003040834462962952211418826266125153009088773970756620133438595151750360725041582458689323807166599765177932118104104909199538706629457025344769857195058641500978573607052915782320328202819284389798038707281772871828044817462325424094958025864915845966437192542815454335594396043394808070299801599931987384680067025743818723428826129154073383580141395850086962797000558109335619237964979369648048001794748963250147930221087616493402876182255309668782078398442213474896405778686317758405885878449990208377554935752784865597351552093676719432832916770054881920887425859834635295913815492561787078803545353375130380659686834844574207956029085486142407643516254823419769480831745938699978291092467519873601668085795003592780477691310998608965003603922074742735782961082809248766339621917993006375846407783112347783643088968178181179048469537070679161010236053490822785102346721280864894497616190826090372948206099395385176726862191754558634300945347045698117073662122015743734646136881407185515550513259372942226778054981849445394095683417741926639681050960958851534312977208441672807272978108919272158033542098411730133625347521577650310998946952342378635998580711031859331746471334480608926383598494021180089690107982253480784224437930085666840546497290887174199858699329633523681053435282448459346495603848008555775728772711690461288115477781167572817055471726906648993982150684550649504498613246837072843637347125243646134461774702693862718739041831377002828154810483006052545903990140541826293273976518722173938414729444656700420521203011777309327966157984620980158308514646541405716979094242478202375814428435215453907979866863906983169385522000364659210965653465246154897109050910265832330166880549994713181097638767726588778865491255306996968020346522816043944954640328402646941758905146335980322852664039129165846031185849689100481320076770967811345455972377670543313897879296722406795670905281126551089943714489493452148067705293100987254604139203060760859484125511697696863030171619712879559371723572265029987018617136314137863561106288291522491894198300412995864619958034036855597612209930847438212355309751729388286528099356245848037466461225325144920577625586720952098677680346912497207502496432915817182241561908217077053323073491058887963915864899785699645786302962555331623597519403763174305329186114429150676700017427589342978198629610926328463920767130064990313867826927739032295160735522468008154185619637992090033538760398066811074893256068860506479805784448947754102435441637325200327374809426736329293346369728358117477375763761846057703797234367104660317791749076592386649240835285122163163297013448292005403056703640755272568498612173587221548509600681783231906437217944036883938808202514995634527811418679487013074591068976393355829306091367243708961061456293358900768503309725066310076682418639622139951779605371702247283248950754361726972464629892520579528172332607149670209077100011910731540909813635296708110511192220823286481325252690261896373415168410584811301674598997855831292127272654208453017966900570330170590157913596141602491288810502377258457152858805348598438776729977605822622247007765049238759611281396496601559485502918157209444837855491807618665323493365020703425544390569069704271100960184966862214228978544116160246656865445247604293085222897988621122008938258297833010703023525935846823760966053374917952130574311375411646026727851789728847475555045839704211300214265769186529377654176987800656248649036887039319523219754094446046645069798651643372924452120173899340860763815821468261838191985236590600565389024457390803164881447014421046993556963324746395976061624343230155764446443393574398967533152984132833586970640646913802192475894588020670952378353778323916743544537778447512655653169320552711640176946962772393626287084927700094033321715935928301618563573522898957213471663157431366648714522192390702253817314269699592068715538179390200778487863570325868074828819541024560707044942578909391478451430861163662529005551372164579776927072193299046586562471895414291810233863866081717074401249830316239429664089414159599890087644790056552643893366620869721619064389110811401404227105960081916015551409836118877054734694405942581318451814704520284961738765944966253596219921216036462182752708032312273604662518155469087689109285303120930849921436431640468333406334634453912939115927052439751182859079531336986760524166133986782082443991176476802048602429146656079662944586641523387768999834059681871128790893312325058978508136306650256509686902562422277368593146526996793763119313086514996441649450768600342397019314442950966514573986555069664196394904092960113834893749524119080130855552341235373164139144386810156842408779500712001506763022038675061277251530462728199694711772976157123057606514370285217837752418240722394307354734700409374051050593618363821555592564641192013670077708000421917786463424109604651619331530527373984962500382796191478846006487391581787744674262621577506769995288650987533417680975271734612443649811522246536869574869105118421328662140858844725502690999778193225936914878391519578167564370705907936204371800994568740177542898590069494869741818406468690848299250205556118325029981713044360897662756370175965744848046615031630483985185083128026863392631486360444071648403413528059331625250163907387286255644260673276128774962903621892704613324842302140191066559099831656272056788509905527539991329355211495971387885769086336310267512338827943216010833906443168753095157048295369648130933284405618523606842787275933943121638037939714202557061556316551777513259407965066133782208154881707272672738998734544684815831976469228378413676787793771664369264334141582148401103152367962935943118695848027959863346875596267154306387629033245380016561479288248971303650118349880732218982900803313946372825524904273670233323622706000282868454434782931567377505505305830424383566172637206466304476380564761874666686741008713744967564895492782634134215159202551224951136537222138234403669074145577525363494811177944233819241855305597711216768682350791621386034415777192912221268084735951211569728643245340236069812004696586539619276830692697805767920222796512123322730894340441229148735575037030153773845986429722467930050733384854772282304310338617845695113734685194462123292474827449930048406215671466458153803403228098795803326374147748557168934013454531957977838198410571949194142023942916425063789894664273216428607368807559571007838400698234543997364077622744188389802303295080761435876398544287382332794473574560762566857766271525390541493477098397871051166182216510426901432458386177200179799830845658106745260217742159579797526843471319781869925145498867289824761379525498150323135917694028678879547521599246820267921229372142474583206634543144567842323005555048421410653100717984479995009266905439338959467397589277665137583359270284624013162425623347500489323257897901167012932114298116560457415820472662669252291402564417878449843979854163058227344246677282642447001808589831927793638339179631941524377674407000027241647565217489457979678420026508717553446767220653985610490002620143363420093232983400251888602121238364720171928155337300103214149259260325523021110549952720865205801395599297674161224109060314252266521660821023408620563154725753421623373240559145299580275107784396189613600803564589143975848068806158929987372843574030540902606596739346438315552419624360521316968941616760624164719778439421314350529512881557294960468366574219635490998458853064013529030385675010758139544783544964454500075745275622317523568374319723344518156417367707803017050642594423003219939757778836318696847985033206753059270205590567365630119838906835230300957480594742236925804385667590758158522241409121094331818948999743846549284629617213459358175698116882833551622372419118453141626553484317805107589705074307426340841407815964616454753036522570170397501139639776637354876382761016060369656994802736882843452460674729844475338371486391824810688714885941288749849575783698961807978511945547307931509003817380835498433832511296739429069873089223280409810191602901198737618057672750243793176493401176154962870991161683772046597226860939764920101954473788174702460535680588272635057242983095681560826073132804100113542970312907705906982364684210434517071135804833052156594133764715137353609649304167496943288984981105775721976068575429126505528911469570794194858238297806289230332017090801889532908605595573856566634903296908226469423160860831970794472279267493605195082683785795169827223910068608368268408845327733760532234668623155331598795071461395238100520392325007401085047918103380831002760439473260856030711338864944255156558947919679126071403372700096247301679134097594080735026109135598810808033574826623326933623377910963157908966980044914908166610127855056483904102501380768591460457752378891437284165056980195096242337599596579661450682195786906683121172016321604183328576196037495042082368733610462530656207425519764156534280694450644141608850415507776069208900655765052790439780934068815778101108186803256108425537616789123748010136600784021673052936232373461260108505159627175701547774398001801971828230383255663181091987744263762677521731163211681032616366490676913831814356995651637014507875257173658100525494440285359998983629829200003907837570213831302176654417123883332954406642432628745390195636762467301785060901591996385415615283830914348351533893593868427399840537007966247220837451883309963112747777247310016952162876303493618437779424946627956829852275022568395252233378168848305574772208394691670228818784122776970058658665613519746812957266470210568157477464579916247838981794802867491376577453644513699183742777395061525565591378095305652180118676204489540687439717525555194702869147329845177757190589576908417548005122374802513317963308382045314534561463303353207235487712854925976712305398865155254794817334666488985589811854905732581738008856358925396268783001440560525752070363528811947494753290463248842821904891143376078079946031914803848886926994464825613383586754137629070855075545550541753847998192712969808393914021584140676072574983352303632183543661402020313135517980582456416642213032894704032596417726517669396314483371714276034582723924169847191169444435387748863090045794874549643569172071713883355626360518456766854942643120525966278388200031233393674443156545461042970134959136755360209154471681048065971724096455221953095776257640527074780710420043779826883138278413240629430369796308245021188593532036230766583876746439980483572543142716419980073425891726656500489276127748095976195736618487438413646410360765257093937521996393223677091142687237156056625419874324061118221141764760100839802883437707419448479663081394310127464614127258917416842125223845260015729298286895978894101642022393748444738787362320309512836437745428923916468237522618462508585824485580539626191283547171152195651979804352480721661811212421362223133848492967203957420524049377085589792049674557744245155373477495748396799077528300880699067485129999365147586998973973998678147685026904409484156543086747707639704833784789876803540782355769307013610608298143902311743318256957831629371639298103185264109439510750349906569407441077682672352160492030241727277266693846916656052362989179385782488087430036887033428695244398885557318195331971162918413087036389037416946602024780487246622651904544789131396517222374350886335963980500421097994212754746175698208887077497027770769396779806423935577700846594780688926120185379571144412302043986388609233193317609880242991879076367636841764732602675647466671940717553834724475414569403138208446818600353771578366410921552709313922142238952362121487561534519581644523658418891606150250534011625864836182738326547161669103690186793439274704967272066672276314741138050323095393447128558613365939344765349235946349612846136775152268527767055115174928676975700206925032023332326579726936575807009114049819257766768629396718488577611458873095437114161985860320853946211851000920806110074057403242948792477486965520617645361991610874518018672882319156352217374879135733870113151691702827012577267288442260009245659595452914978079629375042999056658688079287067373321359042383837134565655095313053943369396927657085016964594377350329887967209600011213953535633967825407749579855744664647762107310577766047483758288561192496808458883519327426956782049586759522964581458999057872995395444250769334536477184491187851687127456744081105318125483869187616113791239451882656897852158737524996941267812446221789582477572415252043204432427342571719703767289959512256442023367817897281507574623912095754526459371852293677418756755114975005449488668972256296487704703360396795052780482333850432039327902815077050637461565701891184698432405472910682813303182611203758678777668950474760431462704410370221734906977038395516236606430715395700302499677437655541516264727981148269973417144842149679806436875761168748774945412910767707372850942421447526634662716049819784229464118717010088371646565057359785707735285777101430420233248644836709990900507631675122458614571115403148431044300560699156528275667107023060652162776401765852233321132645438651458946792786652913804030073698318011992835638069367830173230323986559122830902510179021011534389514656214516593716007574897436801538497273206701936801222498273098492454664333361865446001588573419719022436937755722781578231134276065701796886758300510956149746496613534787190314396521765424221097587521741333247701307324038798708569633970839218574968490040574922916678650878127181261513228921105837596807543921173195019846155689043944227029464094175401494149038671581742363072121993099200740588368623905198194064875047901589244208975873176763251194992655407701005270152218007105066818792116671991650537245471604030126877618021943324282462887662378738900357078871072665829831104617417661374982700431583007473232519664381789906729159066226551099736602951541871366909545184700670419346983728661568964468064503387996270101685933742872244630817588726696548645520563690486710970652910690065073253934849951963936936490917475015245425867761620912960541127179208328455557693465063072415536346789628951508624275479748151966836779705640338334688102041351149347203580201034747612893471549946067857823399784973404507085757936450743312000676814781324177866057757488467351134745791262251606135487503482514378475833171394019898261028392061971415705101940226836990080214688431637046812892518939150798628561696023386609788962298172438986483767679785226320357594455702803909007869079694327602759898309545715314723937116574624677765970698139784240651043630537990838530868282057301346251758035791405431908613939774941941787750256255195771309660214834725863331863323012455670399936920057684077927033432769561036027231944313213934768404427080902987736242523056995583576332107794599972438093417929085987743430439532671959211506171877456071944130856843710045109633759930249731757409881289411469555824448279226610147962644001660767133198200439034393129168719744031932251082750309983107807210958298441036009495715415278555654587245201370298570745256787570107844518201888279592698930869613745571976728659031213967032913425077217262564117878050449629923061348275743235702700908706412506585131528899668563838144543048326361159720900539364202053986385551272483014750788171076165597291722798307892957991782484098991847293370972180200499408531549988949915993923246292433950223927881216526243715853324593382462087335693314181899001811956520832142473338984633482916633886954317970684155143174231296321108881444437548975506970764727242645053101467007276016157546496205697696131950167744354681994635904732125549822190924653273883557778072092937361217378553455985841577371657513232026637078860253954337438287426194801518409017193923254280339389852126784856761166906099372671816189716207554593258882916528359152668029630098605317994289156690678677369861217459754219113467739942721076205425095774070311026959956242221728962981281258390152382007487314337472197474766444350210441144668985579720947596690889041320915611773944415928293315063244516014979029327085647238618257761642709729206284180618121055580565501632035437974063083611538095885548510316983153580213075461325535949731638200128027831565272370258160071511511976135209673088915780755162265924015263471084505559489904643632372931625317227607387581936222924752295787698891113239276686411876676611678643949070392980087325066615172178229307224249599193095312957961808032296743451220536558871940217957992227360686484689704677756543358775438921429985691029514647170626471130699095271707874110272735890390501899150097846802133941879656129656973872470976133341871668580211830003562841805117615130158271691107986539518850988747306015403256188873184855380091410266218803007315559817601835391555209755823621195975919397875931803545952870506180307950057047084210950711976747501236744130310248529009140299205690475468514763490087148164381885894113955516808740142425493767390883596815675594564029392019222222201703399050336954429949656398412815168374096387260799612584792735786427746558697439195286540073775347285546332082997427747018472033967304166581474326564610342181709387933706652696071905919645213646066487087512708184284026907782675080531966404665160702208346486205481117702574860661921954764948475499337797791387531309572459762787928019147956350260148582050769641313520212362386516028401836866541204773850585779120174193594195717374064515586325802509779589793122964905918333351703665560904442410049635000842965215022590300752577689483312982567031010076305697100552738707401082109129199801499012682917494277859257438288501959682572118141669378798110940257715318096207843284469621970544939935144116009081287696466694206939251796712354291830759745069943561720272724556357094915849930850223475517807181513032242636855109363135069771406006894174724242655004118159487016680807134790722053652667909362992819224768673272052191428053227651552547654051967346474438622167155778504130964699946063747285134090095739589796374434371723145907505323536555689248804107115509327979896958659566810101222533591861011031595836731980771123975837640291080176679841111441657828929528102908530221710087981453366452712734016064286346692796802871033820858883627476806602640415447651537432945424393643648161276351229736729148200069227175872202911494071227462495011701180749508053370078818054759475608593907152463273670595600326505493810176306735716830182780212227625237134251604975282931042984191386392757529174110424284921337662694022628749105480729971705178989991426804403054637841387754986190841429582310649249817691565973209557595988467439403015827233241156352934919409593170354804225160327584749364762272204499627728456672512027190256086741816295436791350154789312704057016211461458260931503060926923216304362158229267239708042010082357143389385962698120571150250075309772326966323014848772487517388769446408493898086391996182499176882469626032503659584247238036465348429396195940939745840932469533710812284969772920770961880919763276622037505136945386494201856342343396209332666702017171217817845027059536105188468954220959145467031600755292053213533676907102469361120719914216183407489261427418899201104824585151213909755967597017387087725925421026802880502559620754971563747219425442551205020576337055307441706342892382041531635712309592155247186498801379811952331345178456457187292575262574714050299470347147946039369690562510930919410089286642060650703307409943087300096733026992325828484090313377675295160299714028875979429988382318596128544342411659473829982559955521531303887205777087887271068156518218587914291830957512245613793226497263131662842510610571843843761044578525695109063190698702585422316488697223428711392669023368017703940919195764933439536082259497204356335898569249822994697003878217894696527617820599954326796025980638734730353768610245805734899141901672252693143871656041174766422923783506215486850361320470800231728763207288257503655888302198242048935398174214210431648291519198021388077195209578179047523973198544338163989539259313715635973145860777487633511391871145508673043912597712266376318580033217930087341842546193217903063242136397337540371182768397327419768059243740006853297423648701154184143503100128562293659329084582724137258670634302487006259940938887749992232097769820345958472928761487089046734807360194981094839475015477420403295971707699871798375417422323260916351459192852002671876038075545636552771211157698015118232073958516574334490285305387618967659689529642574032582663977596260921748135804052352128977346606721725966980712549486143005211052535677523146431572619512148689512529297764397854712283334623142112505916138430826477367456841084395376836750740544264336822139202278983837365786567382031474114551647168178610485077157001606415033800427515173475926394658293733811678057954331545373593212875855866467989686943778896986261979575128847211151971014074945374973832410026308506582366147691847037264042384126906024668875778347984884846535598029880107138451030055857594570836264079500373732784090559728694131454939380399183524424798388853012935338857483021032077963621013572068201351925119256195968933686594897275786235116032639754305280313443588656617572011324734426414956673519892305884450364948592619109694061647720743799588643088252658828575365199659808956775107282492868256662062111630674729287722500835913530484198529973535600908497170277616691376384858828370961695495232219329292905901411859647788283764952665050384955812743641238978060216254119418542953569763316247214433374283700775499537062934731134879714625316143372794767806703490955329869599099106660418581277762406200692178353216984545131535686000089936160074622089698519934013043689370856951325929682406165992003714026046693880088561876429088089183926482893134994978755689727885531277449285608546282753181299032774845960137471051993922520135643460102793340396705909693981384829261675429740555015261521698596920585775154921712607545566048613906625984514060938645215337274979852508035537643483597463434820392352941586973820382062884604143619731698294256276076709662054644994743790861819350400512978145840127369606107176937675134306480708864748992246358094436736106164963435267191368669089595906936566239640976984876496375876058226958256426673441889432112863011627222998423779017082789518781877034488593894070682629808171677584824608762157643594190932603821452783157878026679894559655982250631778808805808888781224477161286672887462535716146216402493161112096645285615028611335693036273973089510825435801926352345504734181121359192533472644983940066031067312105914917579332087864843029767257615826557343972002635239796385929039280894820596335207699266365740744986335770877934953671930960364369210447002108256376244738061500065242772980001301903087911588690811033349941006717007058466430836085934129516243474428916473161374834048569398091508598409580892601825782105197756320284175917043709410509547889681483748165395278680862267286900956106143109183319912008634363088474496704356991156831037331447575646120802339281995385647418258968932624831299095149868880365905377880715690406904010754369285261738648375655266314572326714015853358174791351407032017807374041881864088705200879358504947762017228888698283688880570395773491048642106402261577828760130391026935547117012710001077283240650518034904170025443928738457455149824375893543146266301395935371402680731523268705374582170855061833296118401581775202151850675378524947838532109832965643414387586369591229428252526514298378919923296035199203849111707286754925561260190832636216772107616309115297815611557823690801713367303667832152862727043615866070565149497904957242591181504302848334515036237730517513918181627700735082679034449339432779349590659949266091307937875794052318490091148247549287858035890750011170968668010292543985643260870257990977639992562742565860189029461771980895009102020582658984564553915193758276413591288071238973354458803917847634808890199162067422779554905910299623974662434710023459935190830491848008860353886742630031234491829261361068541899244304094722678161100816689675294025686856689030291143652861914278143208438995042031645431304042661650886938543009774854282223212428997515698252216393806152606579887640848205350320214074645539519692321679573022730106195651581752836826826776537921192072876848017739881978694328201275133926838835384400472897764488397492389825596404696185868207433226391673749866160592038350829168058074206382891522846052047953973359431325667807533815813221970239542758482827349865166013197562727866824805782431669371607229807898314898953628326379319306290679433152491423958257608935746213293775055573384872910315446039542894385762773259193030961342990018668527490660125434877778992102156887932504138590515053758493246244057913675499343837896092193519469120858879763389604530876480126288883237260389829681864177398034149339409250655885711974160709983189715719372937374797808954836107378620572155423677053450656003502602481200688851078511826688682268481967229807359614621724510167024902699683924396232287860656835806920250325143195957234871665273126602929738779035268678773178376476077481050243763337263005410551581423412764716654889429628183331816068425905608467803455288090419317843743075144936168060314711455687043096326570070099563389213726752697698604582718792640181868176819128291434000425937796461346134089120017009695868767559295799481155100163239403576835176722336441425524534932227266402406888263240217766381208672013342635841839645118977056155905110310618038983598663806225185527707818293831145092076494589108394817938770424364219651557264712582511014608326908130128877713740197054997608923037336506516211551046709313008150957158450492685656055544668570438853891815981353361845521735881702450074726977677503779205086236089230198312695376902299900980569499467100667196237343051374344703540571314608893661078021880379629754212527248537710364862821786335799429070228786132670625514471123741899097482773505404755941577446418411662905819779188866704603036939707268053634518345320907768744564756528756382417240029680743040651701183307470251247489142035271192551884235109982353307255436632218447607253791066617230971568528674935428599180518988309146301248743813372086346192856011382422642242070768101011057842754609488788804116321182867324997806536216475611447191548226841980550001497850587935491815013095557678475722411228136034489401607447679182576941694847042870343857758588570582537421532782488659825506475262194643564581355593873499172749176725303465871447314253854085598989897305115922093669055855589744657344256761047034913567336372719837277385067980943364946690491560246198733093606237823996997595356771701464504273465690631537232089199707036968187354072925557696085365110724582201140006731495056870803623841697552709888189372947080288814488766882530079092719537971417159271965744760255113977186835001328762235699920606381594595455671328756938993917410603433335739281104115408463599286758120779296365304987607315696814887316070453283928649400451009603936171818807809728637940022325068930333174965914798377592253706349686674065625784357104883505203626084864134921703963375283923119282995260818249126740499302105524662120206409063419098554087593948005465306312280788292667486462508598647322667616889341577432974206166328051365302077884555754293161661192071121880121504710642618715573583473906963647489335927184502452231103210542471304172660944188795378979813080120766831130722306745837643791918871255204776096304791879020600557876496359344245385540926602135708259586600785452772566193700111598298024950745706039141486898914833391712969584025808488606738309011708109570252244078011155088882868133632470840285887703779131525337212031897999349880636650227549360730314176876896672202455545255106825075280020222886475497240294536200596193272904767991339722060463055184260432844001590470494435862667758144376768561966675860180966882225701675002532393454157227796436856669253737555013944057534840801816633104660064610142655203403347724367664489693853797288007905995411393415233894015592841212724638720532980277292524902429665625829145116138117226206875997902269157654322645472803581845228475921167766705754361310179279519890012299711251678340947377484892795648515641698139287282821370537435831728067786966772528953256259102350858479756167853914799534973744647788729832803326786519495699093479142943196034998673681378771335766019609460233544496856982449473110174949909718105743058170037162707678642067873031147473491455442609522198106003931730453279439530972010267034618722351694837576859367491723470820087688811811419686357343302115796072414026266996265176321524649953844365652243086131587822640775632251823355597223670605538512806029279546672843139093001981156547502360044355885608991821347212688311673864660080121721657751818951125525690971912733876899896466353767614033761476621794504500175310711752160345118037454613571261792987683416554120415004913224370109284434643394543566470124856832883337742452442582926096243258233217994659545640740511565396327313610936451768317336238228276042034996104007559279399359456612955335500825982269638366215658007676469942394056482736447680342576957232741799369783808301490869120823581071272579124223153126365582335818314699340551192682894774426510150739295019988209131734915364469351671511373919925408499456698143896307335518609842920508119996693887161772926461555786438001209525823508815373925699272909078461942957457560220115465954073825510451470071193467293784208735930513619239339251567674295734617628257911893660419442937890852135597227199957045011630584196505179748441839549802944199177206649800097427777524573189490851886711777854559226958316166419483069478493003169140584985969996686457838739506149134542624597016628693252770510507230604284716747540448825873980316924905749347524858771308135089476012665592445098446766249435132908698273961676522727744634105950634462843017065776962213316975670518983258583936492977796884911204380211425709440434498022423444264206171901040752005058779184305931079187216603435540227766100276276643171338098767226281271869391378293723643234916647697579445478238602534442347511036573179440890660964023113530170311157392817168202075876471054601785751930213151939466272377247535251405129061299372729540049874285554253275932153595210627436082651342365221547472176167764773693930448746961483664559370009179280684426174380823936935909340154691686758520794314013360062671605215172972491079324303065781720010975346040968693277563142698517564097229354845299221519881089017863193861526110112537735495758312553070099621393718834961860418731911126735093009335592864299398841818428773251987117167266426222065696407856460340299918433957492168193128123993178261858276154490726391767121665034913159503802402350190225376718954877108692645713534546202225583156441319432528438918473473944378720358015444076693447068520073334437306322260625061651804898650589240462967554456539865309452500673847778510373507363408531131430874680733681576387006486465240563702406158193618339772331887200542517400007863493958464189600029640287526057308112523063864472926307142352454137789779138526308701358132225781077956691907532937261977058164656050246325189194988947406564999811220690145048170415149546242822118876019616299502205549189513490163552468816607789516931214459057305603552687832014101096931281676818394310812974268928446428701439252206007934024447558223079417893450378102257408348882053162220438215879188067465410658141142879598723094436232225025017333935514333027797537091189411180558519450676416305081603335602892910582851286047772322930725078314457605528282360798375513801316346698476513892391160827844054408707826823320556915929518367521485920999019637079085691142970093810593730963821436319658357430935562628748598872557036171364241070542829830806504856124488379811579029687168983166873261926904743071127954254948979018629109716450247014024160899787534504862971102910662627090288647746338485381871637790822001963535956517284048489384078576951253307338954042412088636897286668037736716565811514376861933688702184927466803005195439587510039614347073603031600106144559484747481587116616209085709011456546431815625212431076600243664556098617205566868977415606838491014450242002537415790196828575765723163341013098786415620895998837785820665138398296684719164625602584096610889822334163338746507725705454076484047282346983060089285527651671718411134749883936676833518481775052013524294173586926766630429339651775572079189329653100971195972192535619004035683449788382158675832448150273237815147169917762081719337079726739992068202886705330434533460052320574221914017105923779929829626060600081173905664711894931751510709297849905584796585043092877482531572061909476055258341288843388667145430164430505261769973245334124929282764895026982304533196579123855138477968348473636132287921094435981975224807314184003509812496590017740213344924805569065551690525536551991346217975377713263082912374901443695477292821204768370916084434959083157647923593218199139710142429893875939100774878257200428151594398424317959045755728000518044329972066694729165832126254538512204590131065826657995698923598816814967454185812121700122123576260776481372530559334950936687901271499542613442204710607503837360353521103678962620842475763692834232839456267905586837260022867574360547336028135949831749027551518044000417395251202721627203320793471194578208484238190835463296755177317189121173850481567540448084787739758525242377777405703606795599056559038211077917466555390815072006864463321018630857530325683407700319062188274087008281702396469308796934409820202461046319414420340315941111864454485562103724264581949953616565801691026060973787084276393168283286347887770723473323994319298867644294762001375368065640583173525996644446192455393548469597920090411381978237551410749609854857343500462403963548150021265990009957359348866342344712550179458102326666403659070032471808328028777973463174914121754230947162392941024771076860209025300044834578015371895254858676698411861176412449884329166567435853401297775082358345013224753001004969307924006327436976078857085802748832477116657489948997286519342341347639303862341977156031664378705764440241667566553834420163989029406090103292976447875419690889762218680786281953973977211560456712763252943491698879939256881203275332754156203720575602724101902274076169508140520597711416230351188750696313433004574075704564786279585392908897916722686218487758123568831262975477524371157604356941792274432637922585506803383486372120143140470963481623749473511359545235969552740799315088829520695646240353386483971363486393000691775126958591334774572187952581972342142411334323018104755090209374227781170824075564927074595360629438972799561927447908452990189767728116251271987442437140500308592032626066025908851996623357663901677202160331681246592503263727473782323136160351695232834381171742750540444020088059846601384824458396510174987356856243833465411415089993305403785466347481609936456373435605610461814694031172198772865106990023808194471222120116516314959121214551222032644894242272104472559814994145234505367921890319933637443892170488705765559099761804760699520624841348661078376882548449786695378391587909492154377303572567702902827859944001366116827258220224579794797984019428511549123761348329988402085003392333900120723328619373358022246654156017592980652954299058516864155263034942226138301499046960395521445282460608935085823599902950032937155535581396152941659637190253027000066383947505530399828168417724511010518869713067750906054178594637931761333774431972353826068599771316539070972732493350095966819705141045199317770497532067171230969703436323300495150530361312694348699464414924829622605497200472956525807963337251742770169454977525207474604941335259525506213353688109423276893029541779515753296386870634859999030852713312792247193477441131811809426735723518670880501376068905237858398775622870709342408100606151883899186835331794562589791997932526603111306616837216205348641394280254381589491162373003368276166848205166980459580375760808143635773862125854202262329407924247426298247775852428254639489718076993145734313670580034663712921286248372588442789992567148730827995515444147857493196776199964953852596810190037478300792597321174095267823579513687744044486374354585008777042574818362643707662410278504680422085664587803428927176357509469394008009764290728329485659557928605260907620837332721317667222876635898126768085210992566247061386893439539868278542495500776107979302953032502993609373706689564121415904269022521722253628651682674724471507047059821532396373842903283262158651337018299286059303417321453920491801102858155055378828303326035515327616196022907526563908296843777979205107095407463234074498208871410497134722404627950101117875011340871584469031463335319348371540031787032136443511832420459328813534283689800932362446817767982762174456020722851172345914749396133495348106803539532530586968731261014030117298551536086667073262534227663815661187429687084898445882018352328367531343080427276057782806529902634417154050159198088809018936360020306469616038309616568700693744265253997336214384766813922225283807687827328831660156493604971307380071428549117676854468105940749935298469799678457037030696297681565648671954620732218806101726294520822503679826393272775521736314788739318989195797929953116101797796759252605383584108532847615665155733451823302615535352949014889126328000152538429360844113976965425473917467066177481254245378427694914304782196328181924712952063683227294743741777351806229916374857830453083062490657714600971713212312560428593754710424973985408154165330047948706489651681088885178347705064828290550108553030417350856021843666203959248254397841769662383928981876656602908434407400780612237979977417799368710314825942015785573581835533560501818130723746931494331876073133771675462511717465006627569150735399646393562340409728460098475286762605498380927746049797779169488967493616355481196474605567265049643954798330299747273430097202607884140068006195411840006520726845711113383606760730381313200536184482552051790377337333315788113526301995893476033063093623527793691353564281062613018173179488475793114355680700254142290978305970901208173004659756675555937834403025155934253518579923412247055564417177730481330551556261108193877067964074567958111746623702351382720226235552478382822773209753914880059458513610308334911355339254014694169386102731475346468986000730260187034602212849131089853907734285652071304897987312061449164723773226493397618305068878548087769195567630264362337089540676543673222306353205848093920898333381380477331716341621211829796628637052191141216470709611861776915262991983890305512860145696992589403683608481998354082045931569237309324352197929980148514345042983182145267390325908179836722188604464273830258639085324380877130564625439189007908245243360664034186992753488639310055348035233843120339524798934581574238679046761556277904737070108638526509694158922678852356278123856922895361142058567084964689421599362670307753766321711717135619372803193496370967095465392420264790463976659217128221515590735711769768251871660576491819477964451634905991182473846022015418293781700514637465924878090810851083333110761704838668974432026945725401686199507443099497253182588447705554085962722009360223608879672496178566449687600579763001654374967562673866461360175253262252504077159609164867300439483863791420720851397869401910836022190163280250310404888381046322298900262908882178872504592523570669371593884710551331885310376535734611166520751791995640196985744637508733302031901826035271229718841261662292360056645373529436420199202669557868325790666395809781933229712651709353479431782905877327108714819762370484191164429421082303972686518117470151233485587211008353963025565689567387991539986277682398516097745001971275268972300459377609014799656235689293333085126498323853885397652253222784812916847043305926930249268600033635509332766906844680453171549011298527062255699566225073343129484471062965141444960636366542184534826612864608771221446281515785945128994612917836747613196670820048370604493137379068910067493812907593612624776201804855811108465581155718208502313474098962077407989645121990889189181234676711579295865772017532613189046029003912719134031324381010532666208716884852609460318026615892196943789525284365404202229228349302145990084506405832773992943421591875090910370264861999457895133244479284222140845017882935787927710954348077802208409433225621702413533460213074503288656212228639079656439022447008573224162293559234989699250226688304897679902367647706016448079148977716097673264429416993841936820473631756369875943357609416623993269495654087560835491780556257562847452128369548045052344127319143872116224192174167324251640687919983136836261005541552784273098573272237893768660308606475833782363745945993672270857499511843649773916687856721215755487741126911329388107452271358843248760810103034349404467474813548113918966725024806192731324651690191343630607870583349655546822921252585785632605325712626379224480257005467620403721827028355628433712493470152953181744931344517221827691142774923015129316056425130909726863772327663826860545366695653149800797350810405202957729150276951434609909883204777438306394874238804670937022142497271846595855682722582693056723513431334135860050740750174641955667531114562483717102008560045454741263399797746456784165861760335217564953654896276113864407520135414624159211484786478230148302204199069689261598125471899580400979910664985723217281291232636114837780010115377171625245929675222662626510180996652765844290253900290645894006813287430870490433991532021641650143905665075667563279245685665163302653634963316220099371072711469158469539498092764416700928162147710635030997281649123438276911598477359932570330040331233047471280082388346204442814655437174320758634917785389865599400722216071998442191593730536297924912494061420239579975825658710097513371584008514657726990915309737181914269627984197147892642287994806255537227375440265848709080348263943547656186768181007269748379688999537204747093941211373695760808665421594632616949482124368983985260199886546746411714313920028994277476822920026566984036933049307124202701388749783196754286911435992466671927727668730618765929294129465178125936288757431949451533613341020890617741471788619940865922732174457350357041293184663071014950805759971717803034035742814605808293739690366637798582911155438140532040962554027992678959873520725621065736622647767290838069161283073839809127159963149110669200941584137022697916439997219207627728170686996748036911303126206504051211094272492926080676403295265447542415535226172719251606673112724407105922673657419670376715046751035104332308275367568259206727520739550697029903481659249911320572784067563849086161289204026308302811197734477046963447401033744293571324779242829928943671912832688967606952641782016123246039740253788012845058351948355612648537348127263068960739071802699655849373835098729118209423870334498521236634503132585724369017663985160214923110666211106063964369319297769230071879624299076678995421780136303911990728731105978998702560792862945173514427476188999817572839483071125255857989815925333895618043569338925730046957371022360027576976703265932783239802367421650312358885400162333350401120191146033258353930562945202771535647493718893252984392045870879741160664699341387962946307124996522555603094807909267636497991029083781943355651006932119617933605409419023358863464686148555265307523957797339201037109824351521990442419101324186108001214354267269739306034960454340453205943656746599226026737735220067263535025235438487413410096100665587594722062940800791885749308848723068352572048344035165070758583523505384765989769073147252150936492772256490043843081072404952473727598031744676651863435661594384803618005545001060042405387206400451248147707399040559429724236843652979569010735165835394193386516240558954169377139553054457685800312560395764918916221550572981988398695629518841846930959237469109169901866466360393696263847604890637620501799968753489205983972775370874238348359995749843806459955658130389809318534362837514424831495087323040137043823645117676352292527061533994705219132511866257043185343280376578572641255656582164474912128263865435431779674537273892852193494391555508304615131991553260412051267415276730556372203257765195228803455953083709176069846103911174421455587284732791568587204552240572435763329841547393463666497262793435722907699495290129415978112240552778017809693215483775568642151052451802757282149519533127272911007809749550557288557631133686660739216327220591641001620507456887618793230661281933223780973047227534607425445634277826714646098684160029189201932890705322172347268290303347243700201340462277515462582674964516539140920294538654950233567491922172499586988360033795037526417001980458904086813725556799042393155028893860112278869557403943841059284451095679002282942012287496935359487263602020303987709735980791582260997858761776511298249117160556670464504064001993625610594125003759590534164683443825430407001301911953677863279282227508561801629344587432050086032095340894864246390107566111656057444723060835196090421637588520486415335049420781233161716745983376052956879323604610531639531018679656395206331489202166974643930658925212860110355550295718632173463296685717627396226986961885631656678639207682225539421325733488225090465760428197470856901485718687828557123244995790779364408764393172705311884897679947944814992748102070393123451386162818537431552636855348524257650048818988900699220699508684792722763819528829443956859568836743135240201741649661358121023937632826201403668985765428834668779303713172904607247563670279704276830454764467998563369803630987499988147612138652964210823509104172346916340709237115854614810040216862049398345844906635573459798431618758407834816027034276275118443598432954074439779327292333178337611963133002412875935519875100837233329559944813255122067942999639451115062853647875046004423099877561376284721348744093167233936108840395724842252115684983830428088203133550486924004464306393693806025825548721484601838219021259165188721547920846395175341076725197334489039765231609149016506010308424728592199234032546495957218119571548065253964385863197338135532807496556738488885506740848716100191465431821177700586102222362060563015753803539995667071726547413365060951443947021538617608456459421505286728760612937621772253723836758392405004658058934991750570399215194395484364701346844699948358544631443462227470908525196271448375037529359747855437337126757918494866453376951334726075974256159453866624195117060907718403221685944297814381294082270903261230348390271830138756749921312914275693970843296598974296078847536104839927190481639337828502891790262003927815025757786996372510772929505678488010970204574481688064104601164512307110513287854065164731904913987157282938447299403764063607523738081780717882624236545332371688379422293989017390030769762351257059479462184710511469079801154631852683806415411122545676310051995314374216808383214421469145882827172172106987106117655560875505371552149087690353642269412782165536613802842020494810425915184346111991055343880816336100584975527703509804947318104669107236877211712956817140523003083697400317797988725696985552301180424597911720354312113567408404903327364413640816968839183325480686606285246807408171156108212494686881673473344687404427655042088057450899111001672099692827630673483386680177697433903370113101723584250879743533585542907319077136129500208621371411135914537372442950550503971384884100430967791193867710375340133660012375743666471945554910477089084731383089886359638675060337769955839819223264133221925863603397218950590859515715465336102528150049044900880133775462187161790574596354061185800986402824881247929632209264624936571850926239878465111881298621049876002799808596763188222280127600831004121006428026535196738714192274612819265854703554565678568416499215273368160583508162569284607833656517102712521799304978588273801297024781398059849835528897906815985842712485671003645309341618649125447368028392924215514418217999014179461927507841455589106713146919717628080514103173266242060904017305281802381922660587058465789012970272596814789025051442269796018003527875447369194281081268752598625975440948900420844802441808399479091803860231858034671022295416063046711337040625114901583754954560300374205681551371350671668155335995559892480687641427861222800560611469055580927729293534812380697173361967764455531590110601824235590467931393169941398425403881996096667239222490284476199948194645537446091033569297698675174733589025581168708483409884481852241570926308448815822463365218575975444232437084489351016403530444866453775598280234124455695813436938407556921718118320717082115063734655306524370131401944141819497497286279779134451178972271499954636200883801533611170755436288279205930422254909516615889759494126879760481079377689634831793806648111543077279959890156473641886984076224280720138573562412938465408674054980062883975402393912777578078642135217919895371746672415155097214243192088323647339131149677121570266123169824418772548399554422318478838667281567649348487242411660196888116205606528860479521393481076162807465472673798666392425630596951634668790808381952685667682245987333054526462287279287657355880644555809028967312427644761656578799681852099572100185734933821453331877592119386321099174545294300796583969449951947780015173685868607877293072117175656137188424777107102675448987084535570862550953337904534367915237396090865365240890417204228850036083719436419552599853639164023795833965742979739539389110614103063336454434440944249166338861621297536329915298773260685619594679983865961522515845087351253197957145961220444278684116970256849849258124042299297200757132897438634201157585738577125464169859328078888765827887402493326418341062799240715381405001814012894009003947315495774780947541810457807687985460231972219766690194551783371591043593217843824930736026679900140207214988612958268430537670851772378208240038435724796949668605249887387697100648490676758707074398379989190296592448714476546249285668241605527215809648394204087250668340712135893871250865921698467835100677275956213288776929953701490536679195324326470319456442613877806900961920706661076536403667022451168900431759800050322076824041225884382895422373963736170620750394619366862857358212727516980875306072291741501737862036451139722876580047450778596311645173815825057290383894675600725497926758309318466812781338545486995468572607127643685947492707965176972001472768371475789103761521202450920823598108637037841628947193745860804456323783602986095574491171811800090625731620557362076436170624964613017690792410058512528040794441933015864122371372128506204698223414065643886704327418760052944924397387062311914547149050370374449685997601215313891578134914859365551969664710273371120491382356825901326156366931936508902893730040925112666972927926125236822259117065877707505108215942893290998700983192001751547348262120040172556516248666830586789649247273173331023302614544701122772366742596961765487287926550325194036887780214683489716885971485813121260126662700575900459416846133134008283023491531651290401258452620673035069892750578113168857165864323826765526575678201587039132232902841630072882231097454018589524046036796187332592568784214141647328174369355568735055118841350934460852031609737661970333638975588617587139630094545189825348250758711078147883875955021387042061326949544887923701543604639203965260304690134693703971938146375952772848656062470856316025657195573798937683359897021145174990000246298468330806778244385201166751739672576994847197262215746560990415924679290471613635502639109352122915351785740843214196922515397463083830461724054400970071747865880921910632140781743956808488960655609577598841148217433969804062147255165268195479954409788170469569977052460951313170928160595013301378365727905382904177421008989183538252906718313644273350632310962725557831097656307877387136454030498650621955811035436911172004604788223125105750463715638516250940987824298311304974899150456733274631215236143568080520044172266281233085076760517597888736992344148371306164441151238448797676041821660168604102737213947086991139965677838766634346242892990704191624810921581352423218947297954397563090894149191260898897173636517548773185421564739905937047225665793389309344987796450937488143675395574007485789355106736904113293285917003069167069185676856555295332053752952167217512208688395053119405100857232115852714297163186119529773313899457922418696708282413786636608136103141226485958629271509715707876328386642077271925443241626027917166288082994636412406430011309859061732474504300767173561009353142699775291582298251544761070788839854589400286747317226860139886720399997995896885493766459160883977458716050488065693921381853176962072140602532483544436349228230807654240365122311693502300526498673424131924948250938649140007874887041720765181496671369960066033950375199929764572219281459005021115564384421730956581824379032952129074249418460578899462039946264857475922861750616326778134908564311024106571189500923548285078056088959452107513889591074659208956429866360416209268682800457866085319079272339912300509605332591862583350370188646378979346442803876875336045334989818058094111395254973419170022189047925090436668035722214769718940129008267246946796533693210206649680162637560854984654306726671352316959501508322365523457132530735251836288670883906099239214488061225146687292065335064048330683642855514256072073745302948571977563655437485269546895485710655836498331183961818611311995309525794970528981814700533442447203325831335819628309858050385906792728580242226975491397538119894868297249787802516558065386153413884538863582023470021849092694292586575874504693912490173295223477633129063914585806671746298121855015428055824974581075673835336964656873449663995622227853967975760305161018602562406538402457599728763178829945045605683002261622893875647200418068896179705405471783163536173529556002251971876279797557415702660582369150806608318414106277004648534805711944370296775305797939369769419938984023030020859957692472570659845464203728875692575281647922953736596307544948619887967712399978670832856727555773475260964820496453428642851699834476656820984732212203963787907257482833740670083663111053988488856990402259133641630092392401035461713462551928889352148024102911927076601521959987458905770176976060931940757164656602542831111465008156342775162513915966459370715686805634767215696100819250467609236211094509951080636339193433401602712438237293545424722502969291633311999487086708669073088713271431690276097161441071781879710030062048931708154967354154834504799591676435232252130734812971455029126910736034779933542107147275164606519307967240436955553692909870510798451357297069014819720099037127910059983476625214609319047279190080818242117772090335984756891414525688254995597406220224366846514787475142259433045520279674604086715346556724448825560621214700670092930099643892045929344499404559204975282066064026665206199907721780759961154652965702905686380216337074020076949151549827951585959624223502922330997094078713974341572555789782144751346406901729829280473451325784507389097754795171671139301748708171030254336349502163374926660686192859488049254445535625079661008020089481497769460671725820209694919508528224117016138231180529676844859895577509247911816338389658034603020611198413411273944141024446581555026167993667810271118046166069377416626298589711517940783232133109781185114109709656169173791369086143942358971521186812647406371856999893255700365617652190215508495832499687803436564164456799203267046564719786645089302018875776009841968839886350226233981573458617206379691151306694856246421759420873580522357055403768265758194506593306040025583939434223660614310637224203921945055456969028327934355129080289593913675340138631015265440190083503881668886167819385701111645181390601428278746650646484603079148815833614796643935186255642035671636812518811561216466822519013723125949762493940114932435641828517630158825237454607330240623224347326637807009873607891649847661695793536848499175414156847946495329837775739735443121887352092326981209416391373910221587905304056455638932063894723077233489013812013553773955433454365235735555768513505374703193358994008218239936208831676964910536212765401582096317867991976292418851295878854187283849717969159792889011766519111016097197954916551253675466425130807046618640322153973599917657900553852206343693885771229968822865165995343916106694953557989462764146825401334961280033661971027620948843656976789533581281761831484260771664323063719647922812101938760340114130553857213651040276348659645488658861702820249567712133022530590817324551404864146527690186487735744638427066624176234139762402513720742103211518483140361415742593751542996569955978813583120620011868551831488926941194961113342030328542935953890832473273908879933955635395032238334202476890099621263919846833320044088689050737392075447457679953443820456711633831935704464487751861565512948844064989907777333696444087172956257776913290864697516838125639840946457614544989557454900273086387528228885625196239340466839918494445325968640201528757225349946055269812588372133578655444009019936658180347659862196450879233464441115298657835811554189832246736668281259173381748117659746769787799415256260556088896179142071112471424971777305907457359944972454567943226543596494350662990109288971731258735399872921697721862341718794136882084698253052290667041211204681748694011689303193774439219396987774508953895823096623012786703369927316247366011875514432768348924195481640434828808501424777931936931207270507431474731271523055328886567165327585084035694444052709991206207257611399358821091659316657411992338632446285893665966686579331180890040469519362177537033026146938515160772441711892931074680944554140321744760483061822114249581975115709720048220600329261352872088359569972815325059252169876207778381353646204403691508830097137949377090361332827986013551067611772797022448502338685043064292221253227559275890859847314192802354968931516137742402375604703504782137048485486668405202540211362746974818270775069660499984535332196273735017937248118105108592626293706312666558582268959479611002164872227170258475724760874108588159553376556665990188624898133537839828535095327486762925363032143383521083939749110630174859060336870749147669158770227653516590855536623126795294536668134116341128306573620597422482751106729103155817249893247000227796467763409435603967165399402030235063348206165380460412595446971381660630916463785982303632308763666062235471564659743123773965750129277096880037756438506700362225148800734312072523504195467241248964240430047383167766921108983825671799482874871968788129547713798169979073897902905085846988997971692918224303909270610109846534367894550105031959766346512146556040229235044423495566378798486864499801089045660761141332452704799897224829819928418838796262546514776881377096418259856830854579703934898879529672991573450811974216942759297888768163280414602795743058031975376000801093883626018324568753125095694394685977776860486883808323385339509246216274151847840354132674992922579822860817156780584988893530671356861223782517759203086963417593122021289998316619326713410167449613121450478753113329671420885824248066856298413782372056006902471158864173235333446687010958995472678217866997024144983318266628538938740344541409960615586571372477613825883076343305827612584162137141459462469848072818932570570397024212407309704118875520712087075186482261705331272173610321970288502379527361653020473612475668871284864551291137191642272858351016106284943799811795612954972903866720482144446814962656255564519606214370280562773656487821274938129022079166665639885299092626166996207462191621785841697037376741706470080277052301919216845707317136252690648498307949492147970084417290580771127080418475258806167928388142738890354018242353507267104368200354768455433914472734709033674757396900428163657142294168350922331532226878335189043102237507004062969400928422990554137849536021941862869645899747826531638307114519186749721546541694362245489671802355001959681639479336510357850589644788869096195765875665580054319033212987350050588507767556808161316528283781184956945621752422030721545974943591881931490892148968807746836029957396181455146552569600783431553453837963489979197395508041483914731809374640559795830937797242458896428865742820023147914461087090677798029621906415454510719455301021249389395665153363035049784912046093078727019586995825485289790615195790294702344400688598041756288979571254108256242902524949228517875725662951271878541620518278191169074031130961148412473403333047498766772978435924804991093870455435709449354569204806920856012225575458416089167281313798957480905286461712616019249902441763610465098631897962237693616192642715068286507595170226301885038465732914601885317559541120182278664498064855698544824664516192637290998079064000219475209488676263576466135187610437920478848120079477148206908496576299414404789754059973851061352361200829008760921831325430734578712708987123137505697245719552256644092412264808306550896101496579691516265832250964199370145042648112906713963628111159594502119447024529730023213532866488004538661191950952758255361176933448550177031715208543138233954526391365337990123160116029802853879735653741566032817585485532894617216012220642919062881820239054009739627973216612703157208506697288860512692362407481425436165929955303346947991470694438613734357176665396934904463092556223731514827138597592814064917067082136142087646636970050371689931894970301130054182903164727979369806438963635411892563974187343669924865458630164061695585752421747432919979928498599925220105969001489017194090930266916187001209593932618701456265475097256369560729715118481631256930698170594033434788820755582401279559470200448787577282289989029281892154721863772052405360913038436707661411266522458865580113378879008237652785936890992924025654169491161397996065768000880057762994994653445604059125830977578592643715470545293237254883832771339504454888823177668354863735372046576898646349354277674922167544452655103466277593651125702702123472992466494611359058559187879825103512374024489269304452005166960766554437047146934022538544962255826426678357884544704050992863891900033708364579457196995107926054049329704568689450819726914351804856290851935605649112663378050529721646829654699246128841141408654504332105500690069208271774927352643843796891935017712898492491437380632923273440028058455397820537940805121475456330058137135794660029858423065227092096926303947739810121083465306819999409668030617037905725819422450325683252656948909233317049894303218907721927390490012434272905524283508502398596908446722222699932277750617798225168201857146267204080511030256946483353248197624249791826389549613604322715766708040882763222143830162541225562656367948894432838941245042338945510367837490356959547997696474047301120073611805510922004831731114304335625203141114847613495357316261971052977156650325864108073628498587969325070047133271417141612185762317540632751712443123027942338472854353688732744924959942706255824917879294940952964842644857962902632316251098143051694357570653356060367754563716364804470285705651588610332417578482982517903941720193913597421707374721932291686335123329974006124181057143749049252618385476798896570296313174646025026597566742020122874055898193715862388394590494104479683732890336442353210303708583108233778115404032850361038560794209860577785432312530642090245450434354043226436470120333791791996474810399105275864628205150283228450988668851067509108918059835640760276614149498339566529836787634527453795381619464268115580270128575427099943770042027672671445762897770678092853615962897030648540286128685268607912025542235618794816109314516192956958175915412048650383225530561789503697882921881001791976479097036361902325709853811700001595477278038124156948055684173938933297523486923574412095600227691780609149789935185041021713728012352304261060239507768588152335545529040704295551836500678249534366662086889728496663573381748826230750236688475943436062774160352194668792749815462695368582501117379739895324538814607731331039892837498182428835903900193974015551373360154668330277246575308703327123877079850870365223277485648681559432611683342334956953620623791483890597627820278555856669531645614419174654761198717457430763327825891866568701221013919718251666742491975056319432210235677408788662479770151340047801246476813014139708733182179897086250838762823712360867489167472700384425285869636491406257250021024315179655752265316839549001999663848291808038607717759690978860159407304297918552172134562638334133602810369638328408515076604283563459135499421102338616172555558485003607549115790976096080668088419191401469270699354029716500872862897303077618591526628007495146760275566613051261653289713516796188827601405454761797749356731432195884246450258992291780609407329506278992483442241210132960382020489988557507756218139423374727110955975069736076463764133215448424649894170894926209539825288839914450735507812030442518778609733055197863528430110667556133095708767248458297170596537388919802000816690110906775993821606240982678108907094505730183984280121045833938219999209100441083069397856071950554987589275207437854950624740088374431482135645889199717829665503035728758575253999966859889815571629706059729528006492800338020098360795507256850029514809674090184540288874748246880068028102304720621010109212223773597100196317587860328786637299084365220043838386040915931289787905536615535458513024257123683590856949385684702022333661926268142634131927767829888874419298914417203934159666055168272513352753980333678818521642143947272588064335245732732784227872592295380468287588750691797186677857287047121947564865024975315309570059652342998104878664838791695774915392986614481456105164894611042652714093178379267789566962798431903612888650066167471412400829797470672906034894184997874648078117312870407710152754676249230193229834429214869721456010724912194636169192334226181197108898314917298879358400113407736917234700974924585255702520328511958784516282512740288525606109404024857797692763986682841362615382662255885024743460776446680436278126299022159056785444375102174927848474314942597507129055026146760383964620256407339901888037787027688622048984655197771096581431052510673387433754439983468920773688376691953288113102497321377728939838594608824877038556293307865294936146559364597731461053481142437437617995681936518397742305909443176188885155369619876605621644989016057233816751122240832007769673378339747973119330405080463251629551011667467400957111449040578217527770041597881675312228435886514023058554263996675348293582301325003011192560957551465386022953615303262040441622116421525308100336434635214240332012087488865198144736071292225316307751735214838444772042001958008702707814449793748028207376711404827681569333307582699284918682124782820763483434593705078957045967799881742255627873559527391389010309000647143028750884265786777919392913979892134062052835590195252042205203494687838851606249898519832905287126151933361126140032147372686313064655263728304500767059253829940940556814223097922842443156828928088577041900390483470286373354501182231350384794678840732168847434214559933300431387994864728605662346639681176168935393779801622410195492425435551098178033856195789570999151613333782083003131164556902901851436374927283857230281005815355347541272480503797450461355404374830535273881067210730245004116134126458468081440259356350086177006811906457445612943075151959486349785865794165903911813246234843090762978265772879184487646848587715985601544654273372177745388790210597625352395855422945800567691753245985864376966267368329906262407492538972287217991746104566263372410382892211645351358863465683640578848147542666813501502955411676775243690336265621536478581174835834360631125713258500452233945164287270636224831273805385788147070895176408745632522095286325661057393243392248767400010041732806457376871704423572644200208943307844596933013109941665309116097088504359989103852440774700557957116453834151668960244410167796263782450163390727991937299174012233225613094245506691865636606407711505536559632368044784313198367247933545467765591143707465868188239652569157078869210762765971080520122306595441526040145706695788154621094750509576690171230829580009883670741493720891406700406130983717885792886840612132691984019087544966721278886507796945988605949487756832207561147167247158052167504089373760971979200652641810673929195505434745670822024749919152842271436433876092210786111003836390223755548944491278208471221949974926513164259005841785269312451913745277543531643805172186476377628194150604633073223507141465288635219744373967358631518803920601710152564212463620623970301300479798767780511551226977100833171539172512073404484233266598181333127643694588729573952481244426431920414572625449814714474378214598345304046424020086131210418373542479749655537574022107292354544564245685832574211009249144642983104807869983392804286448779640157158461380606292510389587709415103503103066524476246308761408712718827224841838112944586165336502735519383832934579905618788710930971228071292159487605032895467504275561951493055227882343344770814008958592823441158548389646837210561800747764389108558323934450132224201357083630509385657241105446273160396353142714898582919288898378262031694414774809734550286791838555824647735138408438874918216874153311881339031498986666530947486888655031268781392246080695691641241490086687851131442772596133965068689418430713628619319868626061707207645448883848132602819372799470543112073112719686052040119880040525020239241770541044430950227981781797238756428165733196169765091069539170387790297866198430612336244561493112901643941336553364826583820876267587916495265557595349945424105722774524926239228816030379184236770891060651846066405885082983016819519950813624220043920307940347951554221463227515888705850305936040081595157540064579775133551346666039092078649447714973394854609542926624977930182719201244835405074195023703682771857692383082147316745677373741775954982492630905376798047546918683222867330487303298759098978267965388332118286281080538021770257199868654834318670074844657890395580712686535875265330709574425745698637478931589749392279610028339368612682486819890581499489810547291554758288690033728762938527324798667200062710443041657049010655543342161344841974156930963409154980152945484680239606287376638611003117770915466326049932700621436475913996694965925483219762787271638458980621756062376496480583975529747245419072528293312529980430873017418527870225966827888097092121997461487824240620201195088682885680887073001063858534756256739331696278655928758289985431004025716672338439878469731387989520130488871433269370200651734716238035827615676628833867749046303531600207643181900113662424322719183982651686988736744270985285807215187544570547073136589215569651048575319057990298170877234581709129937251391441741103185022428137522096817774920319418852839322317759698841161188228412812116640036759745274187863522354623523434985997180956385330339077068498712906637527849099596319026887683628025611639882577974806168569230816465639180435343967878031051161220263156170932181374275979187485349621954470921425974050551318210862726527681539184186268497331505038240470436703839653624063334731275029174890944125854610173877726707932509686199537994259661455318677374184193048781984936279037702179764225236969929102647359650377672070705384651005706167476344010766308466448491432817925723359133471393547261529002838641958011033301679608345611610511113252899114556771244597769167762413201208912986147784911054024788722628590111120013983346449090072646449599337227798479100725271318805027994742318744615758428871701732370813099643581086204514046319651444577550101820261592208863006455376975512248717274975448509305212003395645956063846627113813454169503304182561944296486888055142825086363071017703666631537428544773996858736247049719878781749581352600135349266820357932000610839715598770287796168835240599364295198447217496520093917121003727536907207170385197519491060208041040351365485015725581033444742781782399725463728913553946146779901565594055300707133964819496484909436482125638884825960827655037685626297646570958843978830069703025946402826729936280614045856695967715015148029623536205952980711702762947581643207390386577708284922651307869670125956330682561263827350856723213716825979187922484748742271313514633333454912744205460354926574998998312294269116596779199984776844811024012717301747912306155655077416315735840965230618819973803802024883139091664475842788957051374605691234848097204413867685388761887991148234649607476307439870756272845013696072339246204766559781612737281558509266938738577786264360898322111657253860692637756162825007935477070175658856730814180567548667787060260104752429803892006781717013971501965071550808790977073847299569648526380046093806114075045618500641774750972080481776960282021808598834535122331604744429639591771552305831824833172500397419399767461034772617255997386532559810586413454209782941324209448308869969117137041527428732184963947167200849008773075398607680337235747773493338262904349351731638231656790478148329081833895330207290257846541159404142116173023772986619622574900562378330615649897665141078654330903834893026604333395158875687068549566251450487180270621949610106166633791963052367678774667605751575955479440621821297894356273554553761353727375597598088646524765328867557796824405480987755898779176966375434023135208359848983785905950482753842945178780321494124257464592989085478246506469340860557629409558537382678832679093938274557985596837519309164081318822519302175737819121937668958184341721098661176280588868362538456658616372791451062682339938635750253754264014190991302429297497088711162186282924683325225205084530568185486752595416752198320046651058258669134934237217480596208660666669150507121579712580830420501806010550748055654438533973201066217454656504127587241764761338326969341417257423091984046728093374174617084601775475202335065510579740277947851256822252072915834531633039129987030638017766958238660233835452591167706795154169045987592079142636801561094393922397135492414599178208982591993945442485760895197877569432358987820821591073058037700748847548325489639523516281636851210817672926257853094717266140595632076277400667975724704962744363527298601881571385613082968996029637897922718101419774249889341800879600976898762468310552368342500296732742190365749473425885186593889736721611741180503114725833103807856437682761129626466126837511795594243087514926505193214782254129247643471913479033634044617527679448759280232529565818327693679868942787733976736798092946090610731993824492563556951573058338070216797317468612133354379522674682562709076046602340965943304775199398893042781706621330282160994569150718764245960339784289086111006846205167334632493386563927407378578200720737387608691538202542632312597997170375211154747501991602385837695311134480379054077290896038775589165504691796519022161323787977803732427731700974814568253408475057442895230609409466089656610774089316363820983246278125417750254150001155600968363898132651462300798506517095492706168849746191433318609522863275583349928151792516193244495223467459974096242179932886786568155200436185392400537572161220917964085888275828585069180576211394704218676933065833916302498983203628463174650246698985110567978708067270890860183971115803412264461862275463340486445753264892009289775714859441006186342661512858461480701984517689189027389911591511181399404956067267190382415610309806119943441147052792867139068536480818407717077935451071522066706179107669582060114047027791756749840188157708815889221627747598001550072068446554627948317901253647692375512912036367288801070058001200511723348514222843445206842818292260420536981860888565637543070803498803361906108502626404346335293346942886658485773826134996082756765425403974169938377971552842363231116827667057249949668921122234084175131497374112382314490189560323456438590331510258306848106336354624482292240382255600803621393845175025587631645683231206314613619804334944965197969473647352093082791104774283688371792597071932047943520745023687158606560416653706969013402516273093763716048140052805550351305871220499309617856824227571676355725430299952588835238859590556126414287133549091404449251876008584743211000573060050390735006858928697740746183433894125619300175177826131223646459889756277032587064912925097337985911534639949213495467939560687518668084830887124212696717779258463830024273180354874487850401459740888120377081333463686755996598413690117040810681974846494932822425748004034392739143270806103111430058503129210439816976980316308866840231001560832233261145916498582664942149738442450086588300841654953444070831750424466538400165804461336518081349820838836118613284565848373061133099615467074219020663235125638510617338306501447923752843788626759678981686533074955625285019398707351066463656759453234581435450843648588939487826400799204661299785568124639729138443887625392591174787763705313363699753771670250229778339770247031425448120264674242237531840789565447566410544544426955313219752447707549531249930446300369384645139507301006264205942423891276389693895304819041416607017881453400777236989252275938171928570794455759505505133451786614684283327088214005766828586337156032959461185735786383642951534490070873987756619072435553476397316907460171239974989300869151913627118851186574647132704572936026019646306044857460360685121573641722036944036227849778586549828091921706598588108022319457864739775633099100053647455235984008781863696668699529304474870965640133609756551797571989543784346600941831888990151232784493618796482623254938858202406951097885191626200634941318831846912455472722293892588460952285164958539996324366201028867657618560608979198966597632778600509435662744869783746625632111231951967824165871864876555051875570992689777973657530740412886353757222418777981990416062480814683728019688868374216790142799170796155753883311376839810556515872466803796263059077919290743153982914469833317800686425901114267213311901494905714204687605984755669122636826572132653838988414975863504594427499714701745111111240166811808573905532190178883231053340458185710439565655637296196056825048722632124172528399180201080859667111336238611900178246534287796931324541538357353553674438434549535992102826853305417236091912930012895274822267681107302032204236532348186923866630425533213120255282483828587835636346248112211026574770168907395188853414903521182667380467255705694102183322432720913795954910199435359390525522850854767506415978104680194985293907458854590705198512939105641107187146874016588452139595546086699145116801455657527058546926318640759660888747269293394839845159740053409895419717639940762364742747812017920553965241791871606894953991967299568322650667135343420155435265854680263449174044621510104468522406129186701253627506889625058861112356841662286118979507824655225653618079450371461126346813457420172750956136238034962296736744641760913186855057992552794803932086803609070015252281574104296669435023810258173475286738017306018192165178098103918683634115707927258731620773734646723348896274045336637053817809839029353952854765118341629113561941268956813365345379114342465257861428469583447960348544062692930855589709040926264853093000753970704119974928299007675457015563452643097580641084358922568253706448253014384910281648281515574829883626357996266576307473544128604807095982122143578160652229995123873166073144093254992189132450272785447542154097647063160940442795271968824098687451695346711086922094109035747356336340229417039144463431453206295485065551393521503466241934678361398070294954061481385544985786269210760209088447081545090066844990839240415561074671631334969509336099592652033037703348980501525768542137170192800499157466216072245003320275195997966253323386974286463938460986405663676863293318010657299666736473907170288574965509756733057489877186306623898655850765176795544775765015175567938716577299696528649041829259139473902421330178509303022441136782373405364393974041754045161466483136097914398215650942239123320469610952560109922640496874578179266017731608467550712079199022638564999868055201795814104603999506214511668477689682739366082419165545914082738347352056068027894447352988225968599429011929412889622760625594324918931371413840219490145950508706722042357073923160106802344026054843854960287820282758916140353813639613615147659244399335825132076131628671036461143724070613129845142046394532179045160395866187453903079967171687063201871070312783691372436642012637558456757176541972273139405694665867852056599447560198203948893771394173011440733448917038726230442277089804561637622275582671958887543957992648177896114206345984882050895148808048237861465654033462293642701107652204093190202363633619125154946702094098625935660177306485523767443637555739162875320374047722920190971992792352306613474697215243679199137548919101220289798970546689111440005549378588116093563363642904875190035225624894759099069692239334951647529266856691419905710696980975798297897303497655040315432748465966226719467028587068134814695350428697682174331613375731833795740858469378688218175995730668883911310416960442092265749712589954309890040052665057025166165675015242250374872648632637868235883893058407868017780881052644227726802573328415490140663190776357725673315267187129449187206233569320997465040171986692613157134064190851013876130782665620949137402517483602687879787396703236269835469936270893311731731111826002759244716081725188713769283886929373973044405347221084933635188369244310830056396027324548712899751345078337444321665069747097080056127796089422939995842801054267102103811167309161796240422790884418575814391527242087475312660768764128875959116382323337627452973978888567802460982349413351141145903730547405273932317180863835994095064958032278788319896155283098318486596861685219058404116787282402245586772664115043568850022490306894345103874186402719763246857263596456649681305569832835314185941072763849792031133966696492151542405231994811223213658998788900860335941632476215126035826773773394658718499775886625827095815979411293169072542647149784126113668654464182430828268386714533903591105428240322325601124810090111674170061661404772171706460959045700216486367901438566583568645370707764342286989706378863374337202586904397015166224660622731976300025418520985313580713063073884556911561661076087952739043354813452619993402737270078167561703305413717084456246174396108260486045055746907523282432738294107901332152450697926518858529755806288257678710477697268674413729587416844815889593902769371765123707115442913737721095742090096003481015373595564757512590737565088298717190551459249211436052808533001549702658004043775138458102573666033691855562614702616482814235676579591522339188191230645733694680900902989683529690283543567525884536823430646144646117081253675382784481411073967180719555756806011580001357057794781220301157752852721187283114450686248163647571185492522974786073027866814262285748953052850081325521246167581050813679936552877540244509949597392408875625375690004858793766539915959939313669804305049130710992240930991664946295276219084276555612589809198364450013707329698685312252270523652326755216337239371364748274192674879231761231836168732268897057941797991936748203678082767141539629924008399534262186612322547424693943783552441206744682091070662643946354830597457392246422192024195939207212878958549377313706846547799102745087111569554469662343532325640858856260361431310378948068694205417466782274367420563400372591911594996853148688582980168900810042835475212387038153843073110519063824960168994749954312366197480877239368949484715933867773604181906560045776340101886726576076268003514598873845700323044496198493714057878766124898172563262531870498162981354137926389613863228457349745271758201968258133178340301221917859508658890166966657169095325676035456710308182516473278896794681507280293577861253412774633318773073795832865858008938366448740506539168449361617808469659666520730809280350376150671480468810622475210779759883700590629878398526635502211249711286518754180396538150741236256894641236421363287496038940398362690690844635390516741649030417871288188872880195159559593229419662187645443184530618164887226757443894386092791923187088449023398219314575395755816718775948464070895852801035001591186281240661568816849726205585603410549947330022081396294117047563535939271475512417874202897049861855158489049715468940870666572255914492711983361985094487764406239297483935706955373058533575257739693529811962091549515746196089500975731269446979772032779786886612809437379002903800754595431040394535434010392194874860283628077380408666001080981403868409485580029825161436249384900674075804078143890964782380551524915365516184814943022332325746014959672362167568756399565450418438728610703574825398691697636599641414239863711851767183515318183694135410440602279399127386216342102049322811436948713733802941145351463203466930970020838681533158659704513877887488848432748437278907872039210631020139169080765386932701883014817285409546403163353094433596923077828506736949744170695076800263226073631175959579012212546687830817335997796385692081191613876513700929277675433334243184319212287626923753574432359103120604799913286805943903559921031685101426209496538613427744908925325631106024714091019182017492324474197167841539694766411987058297078339668922678794695500816787783440753486730026092398503262185707832344929370592945560750101880279755261393706705949805596495003753587071784771083072785016678176865818293418572626941027409657218244785852261013620788779358846954774380993296187045777116601972937298393995021263245613292449751671978826029348401765112180104280089496593489891575456323038361217408862048923991287239154786880822106461436839894241599500978828774849286328419004061907440529386712401294886740376471829707456530206973059933520273884146448029009748281109916451363716479193654921264637217298917228863151078345846951156600707837072454524292238774053014261129683087842355564213859005066711413414558896195019687500006442483017433270927317148870390620960851893953524461839398831307827460113812169518957717960431159971991316610057118685281745461441365663414919083384358784065028237301373978602482160035034241495139749366762742728735085545128820451209477718557159875790068933050009099187984424501418437369641859596562284761507537838766812817619789153490325571536674601373950106437600114188897216665544528002708234293785861875188483251258007706776546008064435630462030640101404676199486754981137956512198778543794301327092109483446084940414378068799537233180188208302956247439349828234518628157499338004079716641797982520679417068626574476532132463906989075523690348916463483996313966326323693594094147611632114348205406334164157048082294610390917738186942080098679283096126380883451145381173227643618317044732801439599600544893649032946153840303731855243863007718189435919053835868603499318067752521536032302301094569068877929058570714978852412429560789873397352401034820038080955963948298571690828427435574705347024888101239661219191468801576158780436760054439929743644894157733338785915018628129129965387500150493025134922757361165787308578597979882523818383840176684222597936799055431547701025263110742771462346337052007742679106125298241443093388434773166591653751480470622442490843066418532028703385489170678021089527554507755665569252343396299890205632387121613136223546260352406752086570103507932139797014781573333608815933621791993519929592191503559072584767900500594220511136754263174765335520898794066967508073890819466687471981265353190763165779648424718557019032243150583616522432186066552620625728283105455325630149154699422164776030814909202651427771536077910403339123554882221666754501902954749902024701411584586969018055021033159541945172331456493683280991021892798883794746017627774889627310121455865205867967990418288258559575472143315543398114495241119533514198905539818666123537898079288351650443300336034766429572650607424117931888074428821994810772263119391373030299999056918697139745102681186512477062184182580830168049694587252615110594306496244432619508767704676899457590974326203312193298210564851138059261531805513166405295012299832970990506656401581703700496533684731590490471403771132334029685943175420692027704700412179834581314617359214599382544907426278291082117379803751052882804737302274246834416680164992376876273241644710788682873335636944173717841891260952600012732663435467991725916600417353926012189792656961899367849576150333790227786744548561561822181689865058577819315609466436962030233640640758393378616081292297893378464887417475876732618127063341424385938448333033999497309576396712727929422088110244994747941304947977854489677598113320076995249486275682175484352550043555238867911128121684876113372370593003541429990432792969300525526125560996945390597710710371553160495407564999381642494671758565282215593054446900056758203664593382567071791251696470433061140838737677020254184771669351080660105923574891365180790165418320523568374534078147309540441719592677842573660933626681951850698995220426930326279469982146955885169467352413219944463091584150303086075311493380516229867379518255938599871475816084221634075425650196442381174571691454248692659298116152531424334303285204245896628141085560936535877370729331011645383196597885042867787147068579133123655485709092786443603099382162598755808738949006490704218871968216324007236784307997652946885197842144124170522411294668602622292259028613590347630727937603843728518520402998977169110057248113827168376794262296498094556288202920765975116848111444972072615953110513798679277306578452133691267392747593531538812178475333299405180680474929618335409291120659150487850729530712549981092549508735078340902993923758026577111120705602804446487213537351694495972315113883062043586974587864208617491145064639921539908326175926364662971160637827951777223643894341492822088267492117977213263356777218801696922125231041236310800505890004282563979891784181519051672531514115796966661452452743865255305435106959269106535353698004232971801285152197403293923342456769104992327439803899630937336926636639127165272305627778452847925588829761623645275146797139478910986302887774172108651473248432860653283584598393989774920268728863122539914183602265740286921177229215711175716474170739167156320856866529950421903046104484915853709106489910397570508918600066570085742129749651378647537181646357289146698209192763384992784389181556431253189259382167751637163919169409943248132555659455323539331414316745482916095270862391392545519603600119243370382817320843396540727613047389170588441431973712080329870512139642631635895219282983804737411182987239966750166228793770748051097096781117138190004518919229782489353045734960426001307834162604831443985255851380560987889719102478245693497879948577577218823493601070829386789981758727496840537437388950168146331523771574462007264500912105079350868915012088177076626508312867480836520373687799282077954052520889323130445040609689776403622789158027469023448118216174424333941785373674690886640427291165990961743927876660838339629989701352957002232732888610851983602871092219166543910489202577483083068347074940196439412782003196890492244406396266351038540443449252081002417193423695644170308091068362216314866602228091265856913934406746487611860709247539602829581257455360020221460069094651399612720377771803762512090823517525902839330302355887565935595237386504669906310653765707843859737717041796259998645776414751289986161043863061689864727640293711137237335426946700864833636101853398377149916403454720729875280411906845828940541025246893735833997881524619169985795881558205340649898936254632031668338910629760167350234643480757218616614871351763211743237453856005903217826956777685993773764626690262366712138970041772437729081043606108917423111132826121988258461286020735361687388222750514288498579408356287078958301677487487022177054533167579800926944678500803403250125990925266740168290220345349051741867847251492858408593054564141420198422972431988651989804477629334101218979628787712994270158620556407233917281659107678400998248903499406338102066716711325176129106513558063954810600656917865358416023464611472155908988322481433902932041763094308310581431282654828614475211113947038901069671580068569837802018830254375857543872665713416681905800753921590103550176253144095196485158200922018957132904661581570365870479433709095288941882572654980209930634339186769726382273197162904144194648759042943660858926435478960460048754509416367134214931802225470651604263943914835261445758312476740811139671392572224999173195816807330375297594222837624985221070118713308378519600345709406906918334229968604352389907086499581497219107310304216548787138796509729954456216805850468631404873817090558960109014074501885439484650477695301984971309092595372342379541339497189064086377027138097528971022021790876147662561818242728345095300301507918350064882799043906857364054529244678724934867804702474928641209679905578328057052263768195666195066013796396423098489716567435773560675620897830904378167493506348041355882296962184508683698812134686164730183399518321656405051957304175355762842685729226274189300614517652932153895340482586078378395502508838401399753310093031583758024664171152962793353467655036088589166342153485792024346826316003230674574626935679892764415936755099069928974900055821847986417249803173963932839174193324905734492842663351649979333625829039058434412980764797847891782788739368707655112874051882279659544304092001850308386923563745709991600116111551643312545693073689937961696463229755380118945933619500278247910988508206558282258292971348010357139284803749643973683044104171911013371677815536163091342777574075370889577782754583665429296032417932114520940092339317706967825173431539654908258887220554345103234006078791626272159460937858020151999771299850879085346347873195628997959072542218612859313491892620082897921172839163424255152717522338818732075993864024584362764529398599705861946126253996752553557025933776340288004068690680169624580853923609567946257053267031537287654157057313428227014468367662153019258321327658353117551341565308276756797056042786515377851793795717485521502619448466285760155370425608708432282166946961646052658994105247104526446414868288346829038806893025133905530534779971072942692758014111279092878336997335065542068695396410658404893995703905688103490762457871451187169511855979604511808409882532234080810964050441751636545939663233944468603493969362652198164283830266355720595917705895529227444054634646927742084716258736765531360977608744077391408259573968459570626981928147936107497022928956897290784776727573060170012136292466934974937643384388321194776489961348905517469981114474337353409873425904368396249195007061035572564887355259884869489043215383825902426816340873346528983194055070234256264104071707734982922659475789753555204559782331323217727462741573432111031563034243694431256945495080236915091518380397663321582327075234809817721455600216145885578779804532263738094319123021817436531613944778549047830179076959000680034527445989504897002844741583789267357176129407423621568215161109090396596958874326939311612042158981945260265578878869337178190185019205797795841969626968822051743463316147145643853556642420367686654063154866060094649331365124223788783169487320526821202255267923550235992839654259788062316431260741146922958836637523892455961064108654572747614445607465191309372723315996210951820278834478165030223259723421510161367135465359907194865722071167140123292551603185833747620901968258038389925675934393042145640315659907567749214431889686595730121642428481144528834470214967325822695227478775906468219441794983366902046352845992269381052345629370740950659805619402625666630849390787558545463408460965641667838531791195632106021487879243054457657364475157284540045264783819175335137940669148626705589136553126674689115112462114821863826248826777867081904563999071768963921888989243811848218875972045437659354865400483275679971297072649891465470609870118848032505945394610031923647445022667062793878771149454875942684517060608735869958012830888511116148932986124274656720776896401840758356683349988202677484827900658090010797746389322846706089021215733799035661071097111691537532112784439843038705314655651085495826171909337919441221940122143524291364326394427585512875486074503645542348917203399736766365420756436651722040685881367768081622986457007134759290130144519387418141833888083448415048513108925439299888279365093165840190113335860550518931684278430338956545205962539320961335645705807986370102492758806282658141531678697573876436001288421191319601360379268302651773504621897386377664416015027381207600605246703756878547984376086813276009499491057889296637961233884379334674803127470683613949251078432781620971312237125918943904776968967213073614758192266224337984209872848683932383670058988658591597396771330164324701016496417013160505425090047548128306189077844140930613017167897838080244455808721439920563009118790361463936292408143783625320510845513099559285176637494424514013890558959979724520509315942817671098499334182871551908204587837206496559731960928823830449329496149167139017378427527158227820509711281268640119686297303918544836945512843094978781327922705834462909373777967038624201646084052130653087161474207012932614626409077882976474376099869186652739589081911929013039584648616445723347985715806932888757383715758773518600774935721392975106102239416213892796869364162662601306703342184314995732800826424058318212156357140875038021527374021040654024453388689288602658759970036298567415276798025197673282517474349060141437063203462132350608243895871054555355947803722897930477667046270030306883918698089918386580704836479950040696409392376834500511634235570837268693071556798311861283301468863481663484004211536139528137304700105933688897435588209343677365306165137709464500693145379848189291338910424200238967528994145271770587111068624096370651282270530951041013691218198697750214044706473612232931219704302030239539615570514900329461814588666501031352517476467955948567498658703989008483168885658046516840842080982302570612122942048233362234907679934301470328661503999150254805122120293843939639127338790418547708901568059481013316352626601541036730960481878064266801777547456047328757314169577601837162692234554298425816671507917844019561366131130510996767530066207736176124455118607586833947404447359710893988695360952007375064390619101051167347569176261569185973920166885026447260282523948454235043680289547148923913428897420618782946074594226457286076086223634218711352880021563780044973344462988062765886555411188338715281283272625354808267724901547574411180820518654881609703034888159754798913574652040427365214642519981392326282700077195907696501050752663880526972086368694210528845924974086308115342763330816179480653575897190619197072499587719365474301371176578386705560392457045464937185108276216463376141041314739517605378819544793231993408218036389016319199528431586912733862281803799063628793507580506497780268416149692925643457576822987642814716600015904657154977715446780933262182270747824474861116676321672880997296066784153432411277461894282798335613601235687814984812831263098944417452073797501382449567425310628529618287128916313690007664880874493546950337127191692478102524376133091703605323804335203839433681434502361264703834963622699655687036993267795104073894508460201616717096293153720170970135531317948894075385551747864792313963010771568779975027841064384826046593936726218995982179879897681985304473338724244978143135720589926449903081538974050242612939421184592311888218096852016653929793108218908529857146331376192520821578350653133972588041837790301828000847318178624864135324766429627534106372426118509922599787660371312221748317421585037680686816123461971678344222285865688835649268794162162975585653305735279973481828998956486861806824499428412669901810032162485171255380114823576507224437187706045058841202280301951017870566232127281433139866587726878369371316604994716027055466111361818636305221815990480081497244555908859318060133969305744242357845061326363103545742479126683877027994821779998158551774891692789646183226764568468805949414310581339071373696995878396079833431216293389449012118234639957695169665807967331600123209853872520753668707777188315815027036339554056171637645389511743562653430578658307061030988496413117177233083234944753231941260456263051803614017530289024242418277304352496752895228373798704838634960237338055290604742998282759516543628221917760952247302988386523399208789684872114707833589698173955540123447913554460966793960559932459332234669868813224039904799255465148696094871598054264415895311668662357507992804601982617909564455946329643107667133308757461207494438595245294649440718245866488714415355924064600096759052383316274508025389531807433060782100671106947187919754818449894032684312865294159195329045751944579899180827799316116083834085734522784361115142771693436567024290060426984334511286701573847302234146238620349130390709170447724443977221012952858317256213978803149348628202655592758835651384541574275868262914084952606855311575467901037052334353994570523973378073470878274682658394552915887174479957113268558682595539900321815455050623673641732239773524240015589168044486326382184124044867860036473453731237160713932994127995829946820160976510936885576256175178209486454293000727952106463175450089922810505242655881181456760429836978851892530747769285524691205008529432229317414219528672083449001892357983629336268474942886018066325632701526134365402026696672573442081399941171986023725769695105084989100439648262175673273514191307271666137310664402394363608221139689425024827625576251785938999867337381828148536307413666198014946418287251753960410424966041315940175159703017206903819000900763389102350216436649313851052004396356163844595851915892091973110314569486126279229381937778202692024534744297654641511628820687830544540086984785399699670082327244813275151652638308462391821921416219126707100564641954870847941543941524625898450190899709795999622612147921262219061410401327896780016092516534235454975566207199443218460492667949908786580992267492793169212829483124570502165209765707991009346094173570159469076487893422739686022084118594304719606109678385816769358213115970342622909370318072276833400055335401539296122225639873062495283137336182886851025585438413055550592855624199998307829366727964614253782456356375705435301199977548972943588544666629022051097399522818112288802686836610414032956072626984723383448757287402734262482232492115946241587052999379645027329193125203769879349950801526248158287269015146924909641287833536126158333182288977911098749108718002866483623763356690769070655030538782562492051426284583431440011406246163756029569547159387615888542663112614360113719347660841093850143423714368861500679335724203040367236190625729327504426811222505631924695528891812780308162258403624023890202052345779261122423008033834988008320061384192594267284167277632456947754084751309841363392080739559549514931963246767296113233837190478225197804220035825541830544817144589597862596199708046295322651711207549998758485889459401964291157485798920696559434456697260835494833044878349972285698660713826283411650877485881300619740337196264263617689386767964642575810644938931107454143164698257097010526345286309689004158360250307375296007005509881872789560505441684703527644133343586557375571027105137674567645498114207317978726049654663462261927336536980779989483250920988823459032475497065898960385587107852754234190967576936959241769241145998116206079589562939572704931925153553267665938406736155751209805337100469377511957305772092574079618853999654424445880968254542142609690842586352853617067110724497165767826491774666209023599324631857395953875338754594518896975719705182110825142910878089628142955717526629206481779311328469610207709951422749765214822254988715318720174447342251379276898870527737698155229694532373221440717890691155531500260691779995349011635659172096362230352097180835812367043687163280878320397706576937271681796529773344972437300241004891566282542900529995785238333647137858151004939333569539615140317354349226995731195748788072755416038390590444146863660178105340248157025577703682835935357004276211197387352893138309737959837961845317106950586207310670580834530047329809292033610459223334079876772446094498118568208867672563290677315875614379278319746594107279107227336141793541896632706148773514923283364673469211518494327509823104844043980480866867860173167549853380351964948528550536022526996635077775776544906855425005642049895136695299750682285489527127995716124665394416074153355759275036454615145094147047152515862093892348167121212490396416179080519110532444047337033344488646986844939671750178135164959094636764017841000096972531748824264050715626505603503369127834294684581154464415246389480940126934985341672673846820532813025231351887926899243632988469895351677049809241669576058764160678004281858757805583910765641710425670328058429418022278012952891470958775472650637879903613235604161148387044912775477202729792427894555639036252824910990318163570677694988211139765454529574691207437954715429678668641491982347775733317249595098758373273049034120187141414397054218790627860020341204836648780299830200154734828439975190697337848598278248572358004807030771535073092700827895662503025263800597063241856755833219491989561593143983806492476186584800147504305468090193735344223409782116626657433894180468716326198352766237941986929449154269433457689113390211858954825551180616665222448905941812889711737398500633998678170327338714623501656135367256436632765865938563829423996619291320380105473961349546277461039544211235946912039615301199328109513927473189236912488861585678190593449177491908425786530360248556738731450124963700121970848091790940252649971618502941463317676197786773411736695061423776095490606247410821940997219859355370716613312407906705603103808201154348624297396245529882693632580216160501442909388554438680147506455182386276622623904925556241382337172079564710798333261954320151971077408961747613455536670864425793398855056712660047044690383968558379721301535158921237208352389432316211191923814863175675191426209798266234826721825322291709482926889285078481820012948588698874454147344012956730082812146359277809260669930939552581558437600391554158031513065078468070482066968995954330101307573760608971087762332728135295825021861895007504965689425200386196848652666999276500202552933406089379280602016371654997755908681278910052886809977314151468626388973982642814000865950954430147858807984350821246582010877026411973027697348156890422947081026845338901208017014917105889355389624312247076749120555335589748445842605000520220254161262402285286147687196322971374297260629722697935259028835516550590888686581258418991384840831048002936729368449623248659365867902469267356231401586096955920807910103114936268027863969478884122889864565677775654697227445649208847518326753719333415457986531815671963631149467625041170392790463657717665850565641132192033175670132167535650137567093694513030092580766282545107540737041153744562108885243033902344093757933446527751926697005013191036995530516002190058035497061550381740730730948260544359342638612086216223987983390685628476110816958359293738084381541382190570997560079030903599559121962200049684603172557587675016686919177766334002242506246315591173086662046470859116978219282283360114771371318934169806346962769731321686263270955231642470286875931386928967061671706597345662106514305229485101328821478986714932657164176129901995838240082046911057660863644807146250098259142167706944233476013916355500356403668852639696700058699743138742290284945996682491847596950293645586866907556494014705089698927637268685238345794799949799061650042235506332344840910188449710450293194442860715873607524807347218996014323563207663288252247672735516129004731808882749896428289152961267419389128439884813065953241041013206053077212888111604977501563516912587207217000876163688380189037038026206081216972845705477698727287723999507958878421870926552636686099886375202337170858035597201452111610320266544118903710914268746908742375021876366922996015647817964079895399630962623142218176762164100580460496021937317571664747279891946411053989095778525648696690019427702938612484722966761917226265811930388427102655948949063892582624968437210910999022276802817982288821912575292442596844024840980731834692605882842525492072092585517796674402243131780261912802522663084781722451723051102326249601130039019777777098988068369846293190799510803025886557806974018591065960729054662926633138179238575623054850643616674126345246702326905913365193085354199535531006365255126015444149890998939517769899565307304122210498538770037543637093742856704029890216023330766195646150030173895084672134689486582278987147538437243213237958334162929721270026178571053457208625396080772316694473354121216538235663600716377019896485726761776750440982156450383720621331913593489042467004292304620747528891143624008996357163051347179019051943513341719446127634670825027712126624354911689770790129779216913684086808862262269674876435284961076567088939566375056337390516923413885813526410115170081254843367538736706299256119285788256178794013675237822326742521585957339569345906870566049366810714199709405250734760924597497183187419042473944428861798396918398944507224055571246351953270972001627164700469470327577228335906276786800990578354313133066050878163190306179469925598017517626245270964345686090663558069524149465893815560953421031357384736844122274934782522167427201772211136304399620726037029634803193609049532346389148178873524357763868900184175247907634196977769678689043421666485965168858794016824548853955607716215320278291287447238717627962113977629496047157152004370712844975196951104778325352388992308795848085356866975463986917265403015913240367154506769527201489423399975909139599626405302007156690391912204436128211918813964163568862332220426210962223250687117163921252924013134866596339586532280177095874823823444284929344532407854316652179104163628979323278863675990299584342894306983908734809427085630061584564165161999727790331418561054855738385900974818998826222750150384043327003134345247770851979599764103698936498022611540569090185721867511584621608135667009372020474955016056264565637383934079306720246080417662754731589861605339385758143828409057926700064397538375467704438051537211493551059569942392243752295498828843036867798668679063375047318489958717428250345018846295733586855564720397282451644622140306956572464841578850275317673331025065485814622341545660041330201631809400705078447155124347246166205934061593877578025654358909176662647487622492371594794102719388895004110748882918663822843505014175664311967090573747673446359514102997699921433963813917157787265933146295662626956945730964107433309262541377200664226673444108448800434005471337815545889653914379880899204403324888765367614599996546300788125317272634560490087684490960687200190658790990156640401165377431135787424684672912644561949921365108513108296890648071233080890588643546731113971850957789102791195520763172028672250402185480005536286571243983034901294023232244517749337580241785276681485766193264483454747397996165089181334686200044848387614584127192957186990577567581049924187030395178457241423610080709298931051421003405833924396523536290339148212119537823603075421778164571177655418785325752161168323672202718837482786213370392426149211485475270594824452730606609092262539846837267067895653239103297462074002832802152649038095071353428610842659641553150089782136861860745866802736027646170681103312522706707653098653409113860333913400665150538366027310399748906948760404045740896578798606257192239971753488062027690680448713822651519722029490329248035007715804573555448284217752313017502098764681203365243575550350419741150453595658166466758849287287476670446442506626146580412521523131608383455153010524134334306148442294988532993872527673757178122419218252068674034553309843499720721400833564337369730309350573101578095494761100306856419539396331014148120596760731056392179168692665134608624971506587271811404593050258530275345820408942420659241010249697609630101931453936453900787884757752133309174910016138403150016940292200316185133801482141646440106646328647622799756198290837404537761862062867910134250932868183920966781063543205568718790883038581835806997985673237589121828661551976742045820521582266007351143492718244003122810502815452812487122963965865119628290763764172145139315885597205862012746604726836625386679314762557867827497809328166315314807182448441370811375570651366013086600432730766519273079628322216490817747590995224560227310267117063811132051654823764140203406271976005426916317217329987667297812809119321234448441002769973338010411331058841343158992691103572229618226113377317748501692732373857319338158622030350843536616177844534513852899549745150541661413363461804368197426449164065157207178231057864816862709270359857639864904540976671824826827779677576779064939695616010525449255797196174907873175590859073963983475343994053003778621103088148233311824795783634877068454209704650138913304770985789288518830845236028032719073209666091819288634797648021056167288933354343913184330910766922870306250646677179547779358129665271552881142957828957361527138248593134624972884702616854578775940328054905531001284818153712451463243058170877266116666871068918480082250661279282518895553860638507298504801693554620763573851587479433394628833758639219643120917968098477438771956181805751354313132109136662837120752536027218599806733564723102442210516798809345190546469086232014451745198774703383999042488897395179702114546231912629526222788488378473046820858415816527666993506655630514991964828022500703338901243617672579268139952666778345556679879546222536127778973751881718471299860275005356416656428639757653618377553142642800754807710176566006322872198252130479293352661119440553045545579643073499111911019103819396140634544129350351113906808031986564785046630372010968377254688101269409536191328614454520952878340580674798773161865089465136231816740225648614685984502133853552527614097646223619442250260741694766131706409315197860745127399304116529020295320593515956811585321162394598712437400450987857994567196109051120701401834067351285141789720162382700283467162093643606418101224629912034799312969300407433612159270377861134070213848068044035965068921273939468198407982968749458017728719223532253420251576682544811472019995099946373183529802233308221849451856227750469428857407322468599565035055910335877219497197829468050087472638319755949369980256932439338041678505258568532693480169208439105886352680915437789612827377696937815501978590803358032855667556071350229579095581210083501419884439094272230313831062258531015945685810869245893975678392216070940281888413046704794539512580860043044712512387265660784527038335310151320714134447412040102199781039990658797793474381955816631738698814992594276232302091749847031199239616514509225393919445341072193527425621578561813886682264776316458719985790282610181220941674451291325045209540307055890936969990674924713381172352576244234765240574351757647059076577363406034029655504139894293176540583670158262608571218917108124840125044877892717231747756344349546155907911256365319583043287537651891983313864599788461450921474692219001374068520757405386389714718954533210705649275050424965210863774073584613872778698058334461292549059622544016598876499324244709955533658515076281711217378945715974882604119893673664148179507897992125656295413331625040634354424255902038204444532260145252795319463279612200393922382602424466952677847951302236335157775593204979900374704110167118174216750752141788703622452441369148242883705998632183063710166595437463567929092731727374410065858787891400710005267177952858062187168780809331163023521208578128552406946042453858518035622238553105738189853000181733013446022966728072756639712461695490564585439810525582464460454022854172975889474368998438698211227586389652196090690607107167467378546375140683240577265036905077173414223646554319461408347554145184064753079030490262014274561479275502973655157080194127037776907736624103576652850834294689805985045380474111629347330108026045894164573743482054970406074148370936796266932512412881712470172368247777272995217580798584644623415465165558333857485030399652742179755727132348383343277007971703365353639738358374028148560612934053456648986577473912542495891597831775886850544808377794892360220664410874795491792061559981575216695823946945605988751545010177954728334354303668963070770044156105946096197973617651318908775984153391956146908677961624557959973988434842453706314619163808275844058662569095285658265471012630631635367894917845069799412907373681282211109765740236430995434062709518580376092265995704169210690598669306862024192513954262667751238161989970134250867850441975437657896614707265413179553350151322305553040178087386453561376046646253185906789888424255519300313178044389559797958878547294032823299046044389195818515576995888497632858474984928191319826866188537202197287075410593039295247393655298964591626662010619855675610640986602846866872171548616545665247551718428140656662310493119544692638270785088987194498787055576258900767943852737315909223571896997588411678448609748800911476421964829419041871529661951029457623463792024614501419700531352107470698386224156429916304391359129340785381108598095044299750490164787578115992069037729407094241772136938270368998034579692481623405715382796467223331193001191370900263177970394015456698070133170874406819211260049510996576144093725258926321692224269942994686386438655611217339828304689294384666829650038909302557299953328331900315651578342662482674556749378870238325287517917130058867590435649395660109650870907363020926538430576347471094660012288546957520977777044530894835090619076755225653469740367869966800268628458419472743850722881313682285460104834004596848412945665172876179019847705802776517246548600420481324533343901215978072134090708567585835141912595019044972904038907091357424591810013402036760650024313389478786411541875188753165809408818773470946713702831685717743805502742837290017394298826813765531325762647491672044616571057830567062617310202533548642669679552041406773795931520227799926626379900212793848376987526026055634379058647610895538708324242960205769209290125276414541324967269168214784254932524522266723861106013198288859995061899427971343751200925386292745552372226957689575629710524663839700248353007553514229551946303960058675703667057651244729804820232646256138190047649790261121863397655488675092963849615211270075384580951120545067733906294171493296081741186105782240941628361976798587340940522775623426452117234229529766617137282387780257560691301945944944371725549376976731499015494745339222146717467389315272550861536012519492116226383139968564683319527041550789158004400927315111746102945578470322450898214886545840510068452983758500790521563698736585855628276553797670878197480058098067537874928938724264566518508283085875557800934738656315059229568282512251251741336769335556801232586387508274722133607995281837086011942631480371440983204833544892683975809496141598038612740066917461959117337877184394757317465625714887408845953036087493855344477960441815519330704626757504093264515702262356322354687223437877261547435281902054236056059850536579232996309575036219605879713495562915700209431813773868808898767389271309120710633595257320421498654348840187950291112861792062244217229196289608102077235019578394293096388297249549603495926560396631820546943426745367872564239326099344467999238724546836570967014974541430624534860852730328741350832371483107779167888475448817120915801695640705376996528816730990589096397969320812592841511681193412665023488256708448932541861185724849346576819029315960597499329407537905167540180637817038907340575033824959601433486222001568426746435937476324846251179658645034398325896541330286254167421489056373778473290350147609700216245431844984157963767014086579045751887855771641244829554298271169446416680946286796885457971745182894580953824063202783838201821155632219834522060531585880581388868319885781914528913830205555838314498297413273333100944354469014259576340125985796320659320315006135811009177527549912195781261033066522994973508701424874205397746420494796507904645091382130392210491830245535585318561330431278416763666848941400454828168883204636487823683446241246449439489166804314903962026952549693382162062794538588848297007919941615539588770084969532653492157731096022039216480143609033340816214301103732102445448868216768472770623287297923053739275507453624500700647436650512388464385780972044516619628587781299085090752841183043229582804332041649773443050352163489753580570859478380987923510657303105757296730165487593119489361926257096146589290591276159977980450975930888299659547194079268546598381724773323239779171154503980973684758270916190062854110859750391334492683751954403641871067832364473065486045255805094297646859897308757666483179604222365121393571816077809815744091152599224252575931782341572176311282369144737534484061478387723068103901913780015434005265830669197227421067992213411597070532272841625155186493928108573361005813731100900726008909885810486576055168172796923734518258143561944931150344721118242872465324228416634352557476465672484740601843416793763667138165565978398516323209639248442775457725252278308194188691861297858286383654863972411874017972647590698593624749790359677804560716071982962278973356673825788206872383002659412725395522802681222290529811770386969574377678795890290443707646718178473621492434895128263245432975149118289809472843731882514787495048407221547989753118671868117755106594624216783588093092326332365269500832891140828781531213106996233822951243624521521157631572271815551672814047031289985992214224020974322571920123439893429071028404723233252404256618499403149551634802777266825424963816860472565265362294498227148095299283924566565267585316089060579954163194772040729256336863328482984069870875246011430252268063964097474735516664876354980456554225064642915972902276545873798965861328424920690952298170170334990358880788787631512951297787075007592802347605119036588079208147572490449205202060536259985303714212534614014320497145260022557235276660047976218836362032948810476966392955111316230765895875897612720018298533907139531493672284114491044818364368243342071266932541163222826048346195289426900823476638174362638022775397648489093323853005682141307176824898350907730529434323975505865695750446844397199680170921389087125599333894873413259931221961627900228105333639273237794343255515381953993773551699842508473110083367474410525410964830851697739867742703622476844107234647509841539912987260665287698124666922841716634685477378022275374231447328371842696711021952877935974229507313759954104579051857834696079372644104091838070462097449453690889593381886903373774515508834659726039625309234923304519421070307301736871078349076511484156608124166497015069637094034490160358748009195545210651703583115785351286147060512947375879321044649355561005332697517198342749261390176785767513344764179493371153514761151552155797784018654359118353701420569764095610337622253490991714221196963944232879087409390728178102617992295878048712972232648817672154655913619128515948865663874100202746896826847963384722501749257233268232378190613560806651691856226330165896619866209266259632820955729466350969945348488019748448749740115867058313979467656294613070968361375061638227611014350573531313917645508325894468717044126191532478089885126113321215337891450969493499501447863323752804033959635344772449379714685239654236284818262381903420439517126888931857168554311033778185962977594637790357549965034867490765872536898429270655006216871072192562548612396527529663201475224893701311645054758293363594828700999873962980314043332791268741496375648317543221012912402840002441845275133681966579549338509297756635558271676817201906951570421204595996345122447738956581609367998816494397584019318918350875056940307484255403436387129149547121730412262482529478472821676066981350551042431249994373205255888064446437217544483530901651363053696952128018396915607367417232459289245229681945978609678432504682085640992659575078347707212178876341312089439318418289413908494721316071464246669820549981847761667105657288693543105690595409413941130025724460733862742718548927419430518536935553838379033074961780738790579201508145308391602935971674644209090243168546855361258365760113055801843517472052893721349437301308029698349881833012982823014398022701501375093863504261855840638822697828928781269372040257186917553699097249430049858232858870706443427641572304718051173324358741402045474069779740459846428047129003327183640355436971244746610341262783294443802336247416068588848807981036485954227847617600788461671379952126907369983674607827488560018411507587224010391584012437855444632194255993321717355644210175514584186297120907481047643510669936881226562156773000621315457615114702319776062992251323647915235308599003527907752147021917239795148270211454666998470020746427758201759420826924684860102740228246767549322744623728153552538550951588287893352313099008009104964635238002047730821194313402984870107961276110947989869355632760943425053329602656205119165987342796029032982228923794380159388729413338703954560871707856026655604658254404634888811082525759863142144824270349980682265352249141936936029472106693564502931410434617958019501238018303390846350242250367655378126782246094520849837646150101475484704884792567916263686332608088558459296415080437005078301870660617224377340073399821739805345088015109940071490686207096583718579654971568440510557694147686397237968871099027940549102738204628118536919740078259129848291603736235232213658859831947285050968936325486718980147396741408447014746131353146009554442021438625359973378647519410444199373045184684947721876117021616425924086190542021206127266902669896378929951211289221221915070613613514425114595389583300752520310293846465639887802534414998153387125012571798039714443606237140403308651741398990302082375052179415374961780814008988873177738515500771539752952950126411392197350758333550224259155823119918633919636395724679677418819274819593781219571454624517014862411799771654056923179998757287915213964731895260021132062907691151619887036961915631451547241620137699607478372034304492135909427005208481474834648806200577200450666156709509983018485211496598316470977180881464438499092547174241272498994595789525676843225409549073697653537001385247070245532900934504903394936980727288942157327764955986010650815867374164091344353010356404695897454960558139506752180423114850651089014126434789948922570850915674051037059917260439332098848955922804357830966189457015391954346331027855343276930512616149876737390900721122726119217907474604611221501058510310147692761529579885935674036960969575452201671100880600129182003637734739038179662458728872242628626641029510921042440603478297083505950376210872862762714354849610803630434977860518195660070769745280039405189602665250845056668634701306165174178020170653550353211075814009519541682301554758745452939041793506958765054777589326989248908304326427581985524539439992943975452645384695895550268478622988847424547020731473724690962054673252453261698537692021974241813285327783713831384978942393289182042840238907016409097281160039404885297198103675417884022145935393608943579388686388581567973402474924868712362900986248413961685416617071040199197684931972695211550873499030941402379672323339480092812874863590592758247091986465782416481588018533391881770056416776207500855264641632024707715819616542071434350710515532142879144860205731610050908779052945362021491874584541805228631672109745883656794446366450279173003039456913789873492793171145608199711163296742946135959001899568438582089670564468293625956306244318800091437344136837648053817029041557666302192672584402339836081456699049286324492430711671667187115965776448403576221506454420776413633486322913346372870184222221164286633810704562939751161222882719516335967541863259729706391482931940460125305839774344878691141442545691326982498094153591114008462439029971958827689754024691264787717161249307124511697341218940924971760308981503500822437112185101340233819462930991542315389234248308265611575327672209315004932221917776366637380679974458867052778129878626852636249952696060077052373406299461160258972921280855110391556386182987503191095142116449450712060620595554442906995455626470077901894902679163470518070752868992553617610602774304006721727272194003450842428818206413897485047372738686633338089681749030891867727890291626472030374623981037550952974516829340201416502958482272461632676801719969752112896903813940445448373958896882585136069717870752669808393309614957111540304013822294965946281971964383708317225697399582538064468291282952056404523421443532365482518269228261839496410323708281184640623361307122101368459768054039821099180977376318494781768942711832130403447872329271357023925894218763181594010584608849556448033746861088756167746098085398987986055483839368699601630165421079119661315776992390971961569937860655731140804004695249734064640146108373973297298162361796897556955672265165300400857237489112256238408580352762426359751370580878536215031256375145247096408856014849938897800401845360641326796013844241594541542833597551638733486142920332640134054076061623365507436585440599193257169415993691536435397159208413295357365440814901533886411764049158463707393425683584345401077694610214086303982786258452238578671024294361566216343850694493127291901644068080588014437707574956425225100919259691325804191784426701560177145200402958390805566070721476432803198811794807500023184347284546905727191556141076595128444670813052046677647734739789958022002892300984244482075564374604259478738701770226855306490418399094055825926583110199673701144406028971074936339295791029909760311497890770567146341735939305843728109872850417820256115308157952162142449276527651127644710818958910992441328672031734847738423548126991112587910431552393664520421010138155622512365682137943380205233358893288053196478089847966852451216748108343221242569256001358390533213811306875226060950719959416842288257768329853617296241291237809227900998681792437529503093626982723743565544628479912469324403840829556579053549109324571881008381715371017642496017723468067335947257412869993748300201529799783244904325612836189707582911311425556186318760274309983302938016950723205302213303756078628355484411139482004843956187602495997335559352172259592103769352285602120483570529436839941912174316372511247060777892820286419298085643787343391201774803297861579620313719447539746986322476814185934260608544750951913404247836719641729788740958153401988223098707296874706626296783850527330955442590119234593114331373817834572777106201666881189717353495419747465669345168629603514169028905731660983314916553981236188144732447314810634919003885734682896584978747198194293619643736072991581989107916888705564013726901842936860033666313841117918720017671294322104826542481434670583577696451674983612983071234304225518286978397502038205931677172247461432599802836585448219154322647981477346283982217773730848856093495372682629928100959683579456663104842330222643355811217726842288491282098612851185256350022678265883884076921950378255180957789703594112161297244674384447411366933297407262406315129112504954562104990842151068108468743695534657820714291220104908440981572555287876671531746273786879381939083421860555447972915525081313331714556540501091974437843249920643987317792473042469518613156374915905572546586943700757494047114083867871845922997984356400002758938369205464902510321489191156685604118486566892892360471350255995209228894775163695470923395684352935848573402007407746815667201601738839419255330409561454566197151310773790979806409370678164177724028562742624952651174876823286716395029068808835608962560012588983036319436547399351421635144151932896177727563772211636624826384628623362800763523045394810141554764062413430050060186138570310598131109971098826603963750354555737791007780776021965452124814394380408767008471825862167055286018758204354826065449165579565418277322677789935412323948517899003099787076608568607566044768896683706439209924230441725486277201956815248736896323437360293697456280742711147574561663103680885827095682208619474713505784768956429578875559841357357802113235248091305319727752854956044267625291134731892353043438478269334898485660257528573229923323496398065590120254215983026948854584763706831434874523620318600797676020987509546170506385499954088280303181371464448550255619486219852166427324633163260998871304763116416944684088918439353537456241110142130015177708063879966123211536225007541503997330958063505698845321409048129526468754531084202407114642457174518741044008448851776014023771382174554706807612634529412139842383558227650702909401526082928414386967278851725936431826647062493090647941878044094502639387706199090431662734819095959312529443224209600807419961251049789226031744182398364039376597301147806820900671659953533835829903257228786506029522914413688869269611657243132846400629464960731139190277991691724539692424203573055183640469254556549036215318365228403702359420758572236996327787216815159106932849612464369508294972224843340401533207936335652934952732074115069491257254851421160201073817470246317328099069817372952947251581833827791857254420713918061814929781315521866537690610037989058801264602817288855284373323060268389531437828631949937846515536031240830119527912876345514511898991986342526554151471703200112274876993998927245539690139240846819145051513043688495057363206743695560351765024139580876348606570227404812670221034486212426972950674950309888527630915547648568277946583857605728350792869221473960716162287158123456810068228020264878331923408123995435050234023573145177417973023291404066166831261730425983084647817768047506273204305853558584831520222137860039535557126874669540125810022403967319429007308499546425024763114214534645303551285779697287619230405784204498381972923277731593041713905666668336639049458302032917168398201364845054351065078138203528230393511730037367575886335847586039867182623491264909073631116962518654416790505541559981113080574550751571529553186511903153446793651356022718345702538235096932036644726469561238756136368915073644935362781523172984613373972176134386671009200161992083687029067948237303547953610392583360457724384875329553767325838886920025067944526792275922484258686563306035531479408824257889050065971877379962225140169914471655741239413299585313956417488051884630412913705121841589327590088264251397646535144449832000546551487137700453249258454360039381909521549333807356225463140723264577603353746924099169769926917063928923999831014819127383926780673255464743288427034204420049039776191347545329451264566900402880129221912624785795405715374949545322507316114061734826711519592162640508110124946020802566923421972627107396468771523351803630762897992890035555956415479384906691767037575857335739196902506827929155534887275620924361087646043988319977594170000664853560447748104827968507175904012421558344269155993414523372944173042004379043921921179425637608233011890167295521809730530425761914922640255576267078734310351039320974909642959495893799523641730884865805832583387208454660738253937363745151224747702496861755225684013975621716944249464074523582104941697358078287988647368691063736596612669345700790567010319992016570369697470640390805093601113930186567396430403712977447966089698077731415240797281762608226978967570093831032599742097777260137794718865380089977211641226803083371389969054784209824123223121972395659962851942842109850939691407353123712572269494411426752758370204985885409485210220522140992509769759086238874875790434588357783687226333944518022542399634454389147662072790346316362159362815600733267199504703272219924380537922875963367348169403577664271740851895438565756415365715252654869659668907871008805929632645134800217240360130988265144264114667363206521582115486257903483042685390422333010222899907117704600379567666225001813804695365553775804257244634501023920351185057171706324545507350705504039439094621795257698389225882409046184567483586233951344745459553387595447716090363962196433792202025898357062135844378863422293901972803770140730225758470818213088025924441312465162742489852588949454689249987445196754927420401549312343122302312411875802256996283267441673548379050173992414463303944366130139023460216007462376999974619661338019191826406616752432830642142910345831530260494752568220620829038484673027155715057673306621666263328456403789823420139687078373827432180134821629561099856171752327959725622812156061691411581921333003856771838516482512460837427493878699076453699268138739942213816310577211083544343408726553586312226372183689941781306289914901034417898911564793168623836489880349541477125808967119126510798482491828173316481505164815620686841213575364925610322674227654071022287074259990543639328016448699187492131692690016778388540161828977451481299443201786063723107635122483748312020970105421725186328546472757398692786855297405501820730199848769821712791183609957709021330563088666305539318205184731134919120320007707142670444167973503938678581984558647246035759841823843798143274906524270508800432414143544506649794214253324720946196150077014964509225218330660473441581111732966905252904166626505267325031565349975752599286142610028475138660276022447536844493817468379029192103488544543885455286498927685369105484139332610930810480379036804117017965914183873042619869593555813068726268696085680991934312770162286128298032061434312324882537371289698307568334151342919155947616464570623977438746331178225439284012458924096194885008950627834068471671775261851920454889309573134610276318889492334992108380940063358704546661604903079176583083857624353211247795287806302533554062963570769213233238954893590386578791299339611872753906354303995855220613690472476658335830238409694422341511330485119619718430153544591087371624029864344120193827916949906551288528139949208352037152891322528850175055372973550310179719702919207016162233548587116556978843264932351307347613189860099526786817995476165760609408048744691872125232229375417798614814879574373631302950220842782609385953159337794153690488161070491496195235628206751141959538275256184558420399847562203438518688563806750587502183777798648628643749857793832106316250754421318528913976831734110744858657171711297704680744579168431819845832079156562259364156658357601168600777702072020568587114320482552586140695660237995008131268786925997166895293687062828602706560201371147401997622068339436264983462339918889325553706292543839251182199430528966980577169255603583824203339725762617384051124681854276217182572160472773320651389194733393549458424511906639630887447170358097495263832920755035616825901029364432337668415776814538985215970477230064279959075860379446930797196067450715363693957211674530755497884206837346817112285366754727119888511882853391222817239259101842369310107998062860861243126780128181360904656384392664189059554653684575067995278708484130182660053816641372405273757769935857198022938469006026210822118641603170517715921949201205903963928711331877446848315050914821047236343571584339991819577420945539567657612559452506008238214022472829454758999027799308162171513108889989570129148462024568599277643620847682920586794659078269431528854747384508252132074886106390599008038700670301938348010736363361539047490746514235500721869807026982124763828440166343076191908592537295626383234388106332933474825627409481525500555619877013729402975562111845586389033996693495327265705812622572421625673735407028339564258159242781426455659642044339642573689927128995833715087637038066710866773664974044717919402453756699271494380953350090553228651486993745466502120014427709759878229166725265833544003853003878801857823539500713241982253619939068517898913999982950910801653750837339627526837458191739826476020267621196440440492004670469151525172764619392019347713584238415190467667733457708916359364992024926154601118843566330920821956252122709240467304034921014637137009577046241822320067256401505062037154512667732182150546956826661952276560369429290925003830514584408158668997360852389913108364065747999452441725783495629144275646791590557305758012158460846352178691789411934693242915302755560277497430228336332906075015519434880972811470139020146855487661793487690967239884759987602445746072582817710724382152449684634610381565506409536479279294993505262743925399507373210117868801373390875694255283295486431438932882246661498685935324511986443773945042502454282874090492597229144647772388425436961402536018940073962555556490208426456047423808096997075013240051824818122867596151880089289529850791260069646205579355551754371135200059640287909528160279472902726195972859835555196868927417805381018319630164242911049191366638240895399611897930486074725597085763426047329311248244646072844900771495799503378140591938010155320087096004199455725213261106301791216322579389566814260786825936117757625551885471354292645290060803694413034259072169336731396555355218973903055978573269569606906723106843820596669042462078337028194136507153675410728772121459679795658858079976511897147030091445073299829219380395319897920068447040477104678928743360321008536072459252276075946370271774227482239752244251758524070850911663175660820040090751149573972338425361827316336750357196059455607007824101038785898308369037553803720986596788339977966438408938828938502154395854736800275842982721762758279792507269792791594143350672992132804189899292630967582292884116248364514424974042377848721039526415084405462788936760312415196285586830476465398949223204215019371164380217752077075761561572791303842011614543269495469720145070123145623516053803941426699932819177182600894759317741150229440846190667291091520090634168005780859939170616465066527162153243055956380822783288472689032109320048786238687453680278375038450431482268705231503006702928709496076909992155831744393286533133472786949089883266767432962152207367122598610521035750707348975074761368677799361940816937875392392455184968738848717937720688774115769535853390980030977918067305731473447150142338946081655768360849337013117951517823669856059076288438275619207388128817139699369770449804808726593478660119260653343228868169376863856226766182382374422449824908663048567177171193824085068229084821587020015148342166576037226254076155469661487033493480476803150409421051446907007887956044264220690740576634321975754804447421264185847876760824607078700091618246138193277190410913744250516813061855893151610017831293572162154200751794488452460401337400583385768555864807493999383571252173197910755689810884806356386506529625460265887958924025517744374004750371270017373805174356454322766376207879439617627884399548851789221782464770184048800499229848309760580193410249430901543791888670259788063948713674530164688778434825232853770806868345426858023270618808322329950309315335566620674504607087993614390880818686797545157767075795982679970662601335972185106605430250348071355413904961216667175446487606570895654108943897123935563595955810635466351544856807320364653036966313022430689940998360385454837939547307220494098758819759250460245335857219167105078068466378691450750608407184279920959277357696267577669173281488135588605757186857126828657706529113890348448197829580119107382356064797295602753649196519730110578044022816896091616669783584907778850281401312346631078900455100126057790316760755264842598069590624607335313923975729035887227248737110708811936792642374123486380601642117521909853418600873811882469686188957268449531336970624256237334600504452270556759410136272084440123288174359785834205063683965830016101559450372759480051334131427276548056491532401292631910308626581193347095628027515891257417240198644994653362342493466921238341236247924042074146172751392585651370188896987863303747387862911906800044097031167041917224127943165614558355872054953268724861638661099330646671046527866923180536167382764423391567001999948247243018097257608644576963481472875513962555745945271663869629286228141712430107768456244570271108720833768938862498620668962340333830858586286976404803840997559175878985396290170166556706650092686824834851820120423724320937157423739153717749075091324285221270159865215422115361123107999783141040074480172180320267927404025275306209571123847969006880527420844940168587901350783267124285509913858323159575783359498608946901794320491224320728113806757865146144983621610721900277832431586211299199505668390846573881203737141188531349410192490352451406820967378269780125136293657404001790898722198822886486697752038575090030627318788271704728840003083877023966104640136918191524536326942901222650502515897973803025262779401425489357888033531809429788778831816319542871770726857721541375136753737138515551753749403729023698243073595933868905343817778843336673384484056685996249371227224714841037853134787377960242637244402818370159479360511431616572432200724604744547344540795337624092656298780276729501534751331086878211803487160985321344510218949451993774663775636866850551813680854891253406437972230069784161540965967827198361853775325313329564972254646945441585489978704208002825367228431439782256123359907893845223834538204164255889191149387342564605323414083977128025385058405479784194355133715724742936171575954013763688154654198371172618951540274002914450850795552174076843206374385917996537127244630006136321019945291879738512514080072010053299449978827630252822988326580611499027874131011800693642827330805226141683384642378237437447329218596886507028517737008393599639299275452283031653033184795726939293302513655008688180215259079996830322427524438111319410181317902596711948547178413205260861562932707406297072531949987475934078642464269807467535019394884007140633443238330018947140257226018912284471081983941551161250367351917907578669549024550048790854997044045558532632103135818980149500455425114058404443720221853773429563748372834084138735502185424245739786902367232777850798471767048299700324638725584208406648962796764601593799248273992201942381165261999265628499162071353899995261917374578517578358055789649834409911936154031689228738509062516304052103511889100894742584550670621874902587133407923356127710429350103336134481800587345405585137445524806753399114550968039198475124185269785910067940361912441723335163324712842671758123862232661496926161482729264192423102796468342389739362977883392949630799088600820854899911055145552749005270571007091162518598754121741844053729893386319461552901017905510022162939462005165283568644688040393638813902268956097680795790357322927378907765287366442122022660621604639245215372178435425761306958057424484303936390638475377576326587803380950840462435521625696137447533429842047461969872627342130717679805894089937289073919229965061713465800719767717070959959091385478832681498557788106011229151273535675787423921607531547895966238514100214241681114314800061455768975515353467058442521434491962284736943754941336224216724558790310424660756802467658973187516287246382221758418921365946352629246741408654238519892054865921639779791308436967747084676904046365563406884444264536638611269899511590423587882375013665504047854434280945969409850051250903106026562007257535601297576494415519886771378052805007773541344099967966251094605314793396936464434379945337257112363224079204953645421136219123045458010056850085267349413167109356485150239937006593805639287464593721407070476671665817778239501048535804513751027021802826880516678542464847717691496189629443556613782358950751066288928755536554927103118645616899240398511359762863855127943043976367921061368395085478886416324608563275306056949049867141405608897450495254387388371697005026984731903011331362320297896318936872771823734444068088725415133640473494918837876132488058777426721867083013219484492139041907021908711370850035334294893182675913356978505979221134641476763386740172666920855016935515043125989704500530860756415517464313387108504376213912166445556951913977424914437470975773623468040708929163948279200251633784954181436765631650574004684251119939753198972371146812318579466803166162212940450447816667265898875628219841806254490076037267360534558629634960479087657208178591874973741128531159615548836389366414911594832489279842775306189372300826569037459075487276535063078554151173360645839245380098526885533580476995974555282941459398447344402837387748491657009038254584372792860405969784018525178566019233874992777415436706970625843399699384404985527024050511714449144547880342664367795768889827227545027964093393625914645359650050501602498046730891625614302182045672235985607415009835490193594050897825807916313361910814086394851662676428172755978799894694681541754715510292063904205548287679701496627100936427619288794453776813287012517047797758341391940673619564677470264750913289363118265609578683531836947052512387188740992032897756545678893672363099104511672601621567052431484017562363531568727123764618214948824859225417772359746001109019746433263453383812569775725782157285781931149752164248950488129289138470968313855988708907940025917658901424121126868812850743685549123357685936204798323314919289330978274515955486728700311044644940643456477433418121944542017987630369442580625441904910206628210722081264767420741317378442603296628368431565545159338767708065009842434141723032265420522661416689760720949308945062253577215055157562719562596419494052681795494078208892360946517875187328617356957616630179739106112443400695183273342918289178006232204432844052641949997601385874262403715480089231412015041813501601139249811655247269072896736264641909789045377783616292194389417158456897387169105095384776877182611696215059378636957211999927992552546487507924043769209953299060655145770080272017184870697947170141176527649899267971405503863343088624279097897722683817224307372150300943095984428338611899277736510890803001442735778111083391775061310462322960462068146687464792478005817199078570752436129096183219599788015484727330170482455237704486896131425170483008094204383305647387303001925646234295281134558482292444379845720833997531491263549818701011550414166040624342012017614627643018732991073468108889253865441856375214713444063178174851431216733890963587063083410340881471689379897988105304885257386109278942213420701599066011771390729309499205151386607787157271761820515805967526501701429261667171252246936616466732098188630179762276746580574932168528824493380731126387765573918728895754177781037293612967126822636257181834662164579458012831674561145649045827488696679444699116442882111937937388607164944899603314097042711929275095581084170207866839528052029326505172225375926063526281672915393035752589518366933766341220472613658160094158560762474993822916298870698007677085505839982700276748806126130002831148023044836739297454535780218524363898299416002920441814668966744565038438239679610086316727376247785685929004677610633694901679043139941108782976888147110466916211287577196220416727415078984486051936785020549140605201158335547183694355633108713435980283363281887806025074802052768021260249698764892769670700316144651828118253143219560985416862449504677389844454008652261415989193576035962023152982409658121506964698356591195867261656632628320742304585060734779891580156366577729445707605003611024175899335031439392874638819535247253019927738934080667000002158128224857745385341397813960885337360866012645410286851423405747673964494537141806661242201045523345518426824214950078985420429850940794942103505073677453030053478982837867065729149448636526031637759537767919487291795073298518173020659805391317729104881073599396611922577191370271449695612220266562353705904875009386313133451268924508777362262094331533753361866504945545738155522559878643546902501226339438473280159881634740016468502384653818327546499655006979926153293897065866012388015947029199602935548728111152734576332422232465883290020336265105327070843098077030944516004362147284384514512088040202997790095641523763342633937801501763277677869334567453624132988704341483501852467250423249739690359338711679559908418462706637524569209829882813405085289386227964640367692595922398454346477326932800817107990467548453754415774380209152626740361682084125585804935184274848729146902624555706828354315589596014373836729549807396103355440688169185809515722489784924678316312991273737182302270587502181514230490133887375889898192215562348793771407818733121062384096197833789899873290322183706263890351472493184012015310893334331650576111083048669096111822039703414810413825524800679146257105465335431879076839313657061904915531266335887514731995889725664648716080729976653398820929535452347582255884349407673509165835509686775508711093708111361359783089296786750980635747458893771732906610421084176334763828531468933307766438751728391376777411173694068989682598713269233493498436821079327577063640518151691396720833940488201915241746563296921050808847527871841966034988707766983984194268538334685693946584792045548454607644183719543526358816430251422263300411682105359389828087107198867777844758330569552097016970040291446773745490355510998343103587101123113917269949933482724783858044006574397256072108180795238961273196920906874759910342469968546322634604268054944105117198985502924883697796580796297107416623255570468902103612912780561170768231358450720307366518709755510998566830997585670702374777132972479430086746393320104688805830493258238268750093385926569743300307505041937996108485350930671611316905842336827053480777330509943629592790861327548323422170921558159561518896937934284043940370532239299486005723585982005849019845629842036813718374176779540715457214673082347369888657427541916782493216676564127856506197267285924580222078301230973899950663985389030928679966059920258560308332648807944787764278932432692467605886490790216656300021819510812318527620028362397077934592608736363413121835221290927785106935572339802058453656732612628335832209558402751546803793881511086375906969803803378368754705483136216527357025888317617747555698479795514946305124373642896202610546924720006910675048156471612359442053466829048595224311869223580889295773422357128778689103139160053623236515150055880201319115204546677589243986328434005341414768372238497858670055292829423862902573879070146628791774463415124740458912982910587606871553531065036266160190634587755852845510729412838056676308156624279374444845986768687077038066350820562468426702421740571905154503114143189493513606136758994588119602419395723489006581825219393296139676738435548470372439424131207577700899301265657763520547796806976781301980477277215879913254158750874837574035682426697227119461693370986931428188055096844888170636424336084212478497385707231197638923136762093771373651587592258226912647915256399854489747584809751911689384583004063703243109068964291792964598270231984667246877660772124245189376779995804289378031336060349792935041494051193660479090502553876118049834129441402858660047938982002462176543790159408520172232790223076247294468378151485786058633070617878945132410498860726594339002287495044372151209759408358402849109775662294783560959043880011424880685414516967258824014406364639814567126795505283808625963471461638547703535004692266837377036107908500441296216941857866507122332540058834077952779133086077034720430171674938650328864183969338222419552631979190645841431215392305492494837379522952928615214943634976071332870362815800823411528418282265622234402270906936359577150082781132177009890538190621363917389351940076910223618850386312501836056227862212969265757942627746570818653097532311593958563655591540166495430970716354518990721624049247905396500373124475705119498512545683607876320671370179091971681752378470168594938732327454849629597134440926116000801498832757712054772995373321219570612548798487070537778520122349020729279865536830682453386927292063877589257331722052788690580394844867672514646322258878517713229122697620722288506074790971296753989634765902334021772807680543302498573857678436566420258933174889473554977751246326718073707242824066072291383800788318341022144290916618258698092485376810188225216414452138696960344210869126013211889778530961400252387888107426070460139234297939977218124664478332052821614899669729917873050140211265759711469546944906479966608178519970217529152132990282463385093051830725049607127375564906252099650029474693463248867855372510689085259403202543510034890754001933522926882106919243672164368714612532759125093464149028640791087789067593592254554689844099877859710150671670211219157136874094090724392555751920035787851658202079658882867409009693516966774927605319390720750918416218988447976812622227639856572523188374221590650533207178650481357922156103999536791680649019013946169615852333779393902400369544493883319594091476401247657534138175369568611141479186439466445937988814824896481911077241459039890464445715464942087838328576118561370117692627180535117523438188859497251853193505133119616556982144186032784870113758437923708690081970242964556617026363672849810146833771357933785421049347456660342267717929052449557514645735185818042373045447597209147111861189619911232000497035020417228283750844529054682344793641888525373753099059725478889142805297940933058840970797752137555195067803648747035254426237487128737069682660050250911287361405603505680270787857585802087689527043033882835201912353224773177193556725176928607303471859630496373720093495083335994043875532939647679257111714940818511158670768764237861562960101247583441754647892901694966997264552940639543006954250525362300879991583916888658151181663825481487071236412319287723036371683533093332949419488768256101553515635302369730986788594485440269873493889502109399122391132261285470340446503520204202609302174561081733944018255954802816554396326664165176310930673397874224806152078737979434502712663197234732049063163084261813535685924471652094675459752471287057392247105445249291154984399531685343795257858228482554307946373808952679116113365396103725880946814159294625672859422305485743125389674884113209288988965039192363156829451019447308094882204089010143546370499113424048635711608094679320597422083197909637576164957366609055373876613449717974200040632228638182391740606029299431856977670869438931808495816760592900045548780577975661477538436051852403207712981711538939163992628754328673015938115363537715038331778523059145072988109680503323708447524975299836577182081621927203818434863161530384866887277958823519687044005751828437267740609888113542854023366846258329289239733995225617708410793801106421169933753300927190217968366294850033563491805685317201311923240766192730888983522591914071836359337587107246673020170149692653981210741313595109172525750001463307327891584766928630455984337093267276849197107345734751699374992362093260260181731541978758637811115073477080551989763253285871441737837302101085149088256093171062078897272403111260631209247782240592374492813148791191937184852375004640106565149502237162142910377515041118952005925464932899099278315530522960623513324025248086507073341320326228717930400591159837361338406120230332548697483314406509185300642465140838240523230364495198729913711772637942266365498936321886408304188059267944111216700161339172288124764841243983241120015874808500921414284103584096217152022947826845016727470892788491367284471805938199282411537553384564386143750126729088645450081768314340075150312425548746626659548087849663778038946090441792986080667889215682620320709768218368594113046088526651711433580094170334560716605704543827677408078169003853126892427998662262959463110993791677263437321620510505751016723860032358239041751778950341618710766305362898306908994371537334133204902654500731404718803684853353196892790427033661036838582405286317710716993991099450286842044640786564217463805699708158270582003036028313812908735109202859656398096943455197869404159715383436724765043270049902250194397512456545870142532648807142446928845183231814682844415793904304810385585664107798630442150699958006379856227712995324361234716639992940356484025566705585090743500164618681666924951741268638375156102622933754282589373117600068199876346897626322699587662247557224052337814480419113978332835108876621743777893494160144856134958403125989634666924290161905820697033112084413236289946357626204711288341368320247172592254434544924443728945198695521162514925643958838993996894816212604157213634564635845789382414943570790602793981766649500966983503085728143813216857126472449333218327202977734412540324681030040383873465250193012607634176866740660842559094275492732343907360758731035767560767269204426402216555411832332704770586807884407690077525908024190777528942607209087149851905245437941114801364602747144367229285242648998435088074438708397889843151423496019209004936506817196848247620368310383087390966330398398978412920395224323711293986235614848339558226092071727922784123161409986067546746262050710111275106199144646330050264286513771259402304774085428984216584382436019516654306808183387364829651311762091638893829137369870757445744128594281271627579332759320656942214083977274152515440127598338327989568828042154577377692067170842607814202736776657475787108044917086967556389162771126049131646590018375599987136025880239265997026635632669182222000624269481992721776609765366191392838940618269353537350453688468551583558876780897050151519376628882676218601374962578359554383112969516492052576487766377268445675971854484700772820066511963186710420525061050489675237068111809107654152035838549558357942205591309026663510478019814574435615007433962942448277357664156347480655700098721985917264772766951931797739718730716549013265217857005097479529839637692199054588478434796577280419276022814247737732092852511260676605059444254285441703204745589230284751172990064763374070062190188830276648771180341423995635164472487239852828201736941741093501930075004160797879739244889231607968154657224384740850390682663780546536400282545605069831220480830004219618279376645555079573152876946685618192031146026311696144563653502719020069707742225552054788534288936733545841116289295125060664045047517124869717108620432242897593713406098856252812018827369591601805899279546380971938937199727825041179945132931913905186703795646602750026260367106787383618836185903923959572333768329772147586101087589437065553090446136034491329475909950563709731217678248388541281642521859173803063349903826157576497212801719888282826402034437230298065149621376958519474513056927148973347081213498041421016496036781976675601937490841996004984853567581375596759116445168104856190702985534135136962935840614016984354737985796848990036436858140302856478630195848452199131107840034188364574179284687516859328165793306762514670330717183060098980745365031186594286842211030883641890770532266211770628258202195792706529397844426921581039167343392961966295190525153563968760787570184891584111166264249251399959819613924256955298772045029917580930477886419016022526084068469744403295327325173968660272170713805905859717195789219147099091437040834992815126511642793490167213755571490024214839848766955732235410396173664662505455476749388854703816032982524207058362800861795046600386315119436466395240806991327634859373621930754394852426974602565434920503996157103919091774144894164677777524415423976423481091972867367135311686389480530807238805035219606284934694672252592758797691419179213329614924150531260024163590075759087378236659205801334258933944000003256522230144232273129555289817785275170207504301419138873227355206301828811024050469160020712806671201347892769357594585287620133101594599695072871454410502170529966281595760747012996195764976736187112701964939535240838749268759598589897393908920615188008415350537495695086036840651057648122661379351790466094830862675170822806089465986517578851903128404784495182253089549317051362664644605879924882348096458680809761587752697101150861717103921275722278847146197942367786049941093587085198926675666234039178251377011029670525439437765682777806107790663714320777392504593915712725706123383813376564550798532048946797962019397656631792683635781451572914695760805999075054346530299970510701285319402281723616915027518679276140881954459863042202663224473504944858510658363939978066379686838090211866451237321619287832448397387587516778660460563099062244309990774600919744831410679226391334279607788555745075510267528052337731227312693532054525384489790959349148979852592172801170683652502501090426137053288220738143697277547911221395207951354337018372477763649122880034961812811837113134845576259195014188502683173664128991072010901477789295506941031020915316163286682494074519520315285499768617655472977339978872571849415077546593321345049707791611195975817957358362824082284086697246662267685855771924012260286342181956901952244793219551914612646590258138950687946196562741368680169084527619638326675526250638358722670780517565649071263007788957788687580535498848676332634648571492757922817577924439096357565160664131947072689779865170475505972032602767937467138549101054015198029234478711090403143896275466589624384953525603915221449985827966982211718106637057147285860737017274714122117890199922990828939104964290190628475188786805143522697723223181148296734054646323267490032265747691224575759677785839936362432375147089933304977578518402461639478380710998731794763793290496887875504330854244036801062432366757857658126884211721921547302562275737623007984039751360140753151777631350438908059092266121909294173876680349554518592997816554868368044515616458097642966443234889856639085539539728237480192552741164246586670648933353628162523105730543881568393638769821947840329881620441781391193421976227650061845734122398003582160761845248829658252706728073249681139887225732498826843049349220064643550977868906143265416898277782456310384790450132700035428370063062713705351530687957430428035229310296987085130057656969317136234910296308516316589438243103193144587241361670522361955149759849913000679365838934510266585651711661389316198213760879926067234005763265579189342287576308309853950989487201093799454278401017935726730238609052390364281863192110861949730131760311226890063825095195833844869242533474020144799493150934256472264666581578326055991213475739129826328854426968499626474107933588217032732192766140267913541891779958452615622115655298849364234090888558484034909977314903706969488684400088652378219173375010975006355452302028702786209393706378021247669315922707130419144841415764365177436502162523342412099737009204211679801436312400734160262767718278404051020705060975001923720600797059247682254421938395361531400638199584958743851886908315962158655324270458148376803027851185830583749124113421308651686268124778254698694137423759759549863453877472837673276961827422061772530895913818013428299382153823905748490966728707777107956920482804508998392869546891251384467414093811100359425427101691758815358919889907741135961852784719332771290310154626072505552570475488521425756003967625925466137469524563777048121658933930307905175185246489879959637402361549879311593221847477951340084235501173120392348837181294121744324199299449837090594088728107749868309217845305177220868112629481834722010029560897079407805988150240560384525824728645310531695874784134011201055446540660351895709232451017619745571810956815776219086513216579554806021688058821220238203751157377487531271620247696148405423881005276115648962244200611229739311967910205139502079891470676700633453615173255236848694544651304367381537509308473204521361825318298520060561422090751945294186194386582170136563679550163300710156147185308873109875306818199262858274397225208218835138449094431594741075173396993677386245784135632059924756251694911084562097694499902445655815463387476740660411969703886774312533811132901266398228461021712573164668141403153153734438057623536279511891134631894287126073379961259736480571164913376164723290393960800078652355949828819597647406190309701027235864773617242284337886667691072668264430401289167547458402209261679275019146154787472507726977408197943775417226588064312806383283005298382037100323960452020093500442575490881880564164663657629909874590602356362337150267901477039136029063286210902762632664358196080069878549331042892211209922945160792640243348324897439024300748007222451616108512974981184103959906303664686808093455552177903782027591004237520687528972946920795099627317969659391826635410450946152853029178646587899106805992016190436860891646811547481238006805220859027799673870389209573064452818829098259209248106198298826836017468500011017337386903461117393675860469696538115147669147444611648671623881901353854539664014907120224359434005628349884091604333324494039809514182183714196219652581287523252319832911697281472678215148807269099065409746798621759680065172873729668982416814143712029662559255156298769137649447729126780187178731362906049085390943016984718856485047039850167677463874858052003177579987411728953902913727796794417843132832305456316073100609151002277040193212682948039961628011213751467551779359588850947934605371395520789265786798929448519831664967591550399737813272169009888391005415921999460058896381461036850938312659857253012808495932597819989572070868067923771440318497588930819704152370844550049349959062642971310223629349787091664545729916265085503433120964732894588823471225665920168457248931955258135443365568882467731276955509406423592100620714376083669090901426229860513080274399185192948839917991072050028090847666858464420925010538212606782759983501690715674856425740296171302086739204588460150441837372732651023937873034965207256612616856353546467985303377523148390875584124885017099591288718539044880754200298038008832933267254605961638600311321624959144078475308820583558886538930461091432792247323143533561327281670620515163820604626476070420538640574936711145048882208417447945124391447258650307141199542470472058108162795680631907589709794804498832154642757184606776469015747268768326185209035587501992573609416841895873378919552218756127120281005113967135509468546397920433210249368041073982949305236066213271511419853374289672239972207238952735259337857411667192058733138031048447186157310033909945386116942924458596762248376244664391108750141520619624665877430951029061211898219759125527367739451267279773881478438953186659567867854011551718112515026230887230738957852889451073095115130665887049517778584417229518155966959437483894803513019427731482945828597900443854009527588323727456085497484330346467595600031150333495616713383244453079904730357195237807449985028563479936821268733587865498236354086369889705086623789407695868620781973223772337614352760579908113733708284837790914028654798387051645644545990921253966274807480324135636340043886292147730442218071447341112299697693078108443374140161740673814810241865410922078661959443099564736460358108816017931597211915935116626489640392531282840992393929580467393479039706122269544866080475893442403477725048797236809508581983828578507738052705656486957941289667908492293196364540950021773466033771647188292736818729270669281764758635429495736119653300903672769211711716962084197376970651598252028033687260201967715028224608258501118581732910625171981405959337689346962615781580978605930759305276829996964893032185333299037360162528052237769553451197498661406537822355200469815816870122747552837746507389545695131565395758264083682772704084665239867924230631174991263515849612257941611446391784863325393904253428151727347005141579340589631868100643677650851114811370920324780762655372936338200191168940339655977134964419388460706967278978504219788255084027331372294769243157538967546808158230497066376263661044058540497514522161812308292062200451197017334409907444888316875992306110297947650298808294433056969433382768140702852394789648910715992955668828190573561150085037684649721603011906428011657963638894769403817812629779487706799396482179023792143018162673915865247802790276764780342751401726101881294365706519595019975567148019682071032337681087061539407905531341691976988207378328015264910784602309292704896488149168509091729520777112280003124724874735129119102657806598173891964470217964510714332661435590179483255960955503480687455445545864250976926158448735599926267636642671808168252395685511026128781718784063072694621098725902723987204010776988374265321258463150347583941117463247122205961976109428997652947048516607714149230985496710528143197776961344017019434149514561445029182158523435164316689865851625754157702477652877997928348560580812770185196569713916164247106502578809439146022325108860531281887194765014296180390618709957702305272465133958290405763349837756709226687192762363874183525641452808391746455769425081195541497864794828063609477375266065340719793357433498273403862171511727479002124482582450725858379408889480305378869836013903600523048360991156223489221089712310398518813585655513858518646271016536930097111352309647182410113971479599984437745281570656237241605914206866437742841290223506330941071816357382363293575478481873614618235329441286646974225030385525189640597098943355833668626992186125800022550041193745558019995938404564273046384548916637208102749151476795108232454998017898761305869428243420167133624606544216406385150520828682228905144685322411503173951769837608873300498937907173879645727509209757182111065225070901164220125643928453082511996477695165426360506701194512385397208334428775485233430756379127382113002083791662849922231473968475051926848919691306043056231770141927879863463224305502297291426563676107638001080593528537715106750100868539323200220760012973683925838435485138495418487880012317042253624404789308169813330117174460709296512413343574635529098080349582900030421684652141050889235807993310217451826803418125214282295521449085304637611105427251809412968701157691264113326852571883095126339641909423245261478558039626122591289669001589101107444412230259419686970819434769112743200885870816038041604580830495862348250636830842952736996465975391347052719361724496767858865336450102068238600596860123358211502610795822578583957178725932870514936801873049171655086559940742519374007961070644360876777354520028690165512933920912494631099865246579412239449986911933577480717734256343029116787579269180278765673292801528545992178722309195529426664392729332771794916574048211355470021423289402387816967009793248259202776680758374764901830936264414286717071877425189644181581551902659325640656571121171148900234437592741770158150052870205936228867023910938971357965465428386748493274085573251706889441790216771301348154231126033786854111996457844610297029138064485857710155002883423179990303273978076451710232757880627644898019072552816436330684764500156245038091255545435845016818967702952360292484445802456182839385112461138285055486775170234036646987103659971740598733248940278255250314776091762199908380782180658599722781067331903019800703976592674885354764567942207435836718630029214090657639646681901268597125845536664242789955043434173365939579771083685295342800411042212006255728826101312315743380332373006081630065515130129116296108209350430177710803136759186320612052475988083794334915603854751981824573346434070595913644660293659701583602257770866506678479512916618542673742543506872327365742718057793825590355659260088060415842556647605462523430218601855734658345761583688582419403055914346546902864680658272922923208601607391652034412984330395702996254753159943742171096364302495461617885105778474951742141370580864966757306672587363389119728313876462847958673983979464615854781570801822840150950343375536914634831909595850172213951233684853249336375353400956320896775929748985970458521193977756813642428598800378500879873678123178174926274901853965112735522438641754124468058859136561184056899281084566204956332947963104493089223053224974939864206707467741361603591888579294688670927360516886608969781346607572343109778523546046276290476534921071101256037400958231100514091527812905762396040454874944938155228780984947311773292873111675361615136266394681635749611273129259523110592211369827696165730558441335545149560686314536637464268683649842418903409065170998283944430914914291664448321080674053524235582813461883402928006836277350406644238735713302071683099504633815133619990650204879918699365064913496343409031387474217383610944543956369304244312949470463674786975385361765188080083194400307278065498912385195159337655642890624058389063238500392947483712434104300742365637214337090117459445572289999700551820615105091624722142138879863868107166277869207762263036544456951935989067343185586699653463946622603696133199185371404330114025651356592752594594180793793427512996590564500285020980362506133077810223106461044427606863185611558611309518362693160000803004623362717388064774173133513870481067196401024737654016730919576274626383037102816768615046835697035515849704703837711197973712836850441898711548309791964154760997189216136928034569082497934514898967276235112702406570505619273363120659800855616185315687173406226968130838210731871970946875411135591523256308475772438074955118200037522982684374098203836790309338292913678031519327747148514083083850072804503132234558256280115594711565910939309289955286730273470260072441353712536265663005312376472668994391737637912031709826908081891038331488399771708019307588536104900971381316665275822710527552252186065835611869763682324364746084886393213743305409014335963027148750248061454539194183088882743804399177824651354829165596803480874929826154100786284373707419570874694271416886869582176968283187598250469710576863620754885931849368254364644883367418934905987299209796960741080492459961109077167815450494190257677558164274458791850714071580906711066566679700680066809007457847454616879829147488434386388336735733678850278495781264065963604469530716529805065544520005840156694893080844467425119323306940319826059499385440806458490548410622729904818449960192235600407662610801193597366580592045751115574508135106369382500201010279195206069986241809177467232506218673921837042981929653078257320741974362236662615975920263310699126548038472221146831704725316757759316569770590311996558536735559821955761947893366608644579352195730329190991871250909487172461768839234900540142692687619384030218676112461695748546463334979017107925054523180323938695787543442972290943067564624589590791018224083335637186659364924058965812743505696699621558853086190837914640286033305344499624959173925141395846420825300470158810749524266277026743047306576000347606138696211084407016438008834719438910003235600458050447189897746516980025295566165793699520993068882438065161550161938683576868306477741832656251987282527791815989076367772204836916125834436924265398069796674189083910338029852593954043145938353869244438640489544922001793597198821604328053619126919119277099186330629734212317142625011306222474417169568472506573978318999163673738898449214779570230278244698717138801570370427217714821667451524661790879403336251909595097422836820660869999772262327849289292038433292057221528689054612119238361141560681476392327361587831335586722063467898558524961219505692112059005710581704635298971189688274217213433650334736943420910613126015974263922115462818706248634607707503817227133730309079283239200554098072774721520535565637779144465959149866070135386145249633627472146929772281206549791077787609544607259199019482398744431137837301107835668137934346081344385153354755930286138318443744682849060717511827258319437521101577403755708425615569668986925898840583020451109684561239334612298448263104021789174107828108167760408647053911673620220408334156524555011289949961807895202502801466319053966353704826599346947569208828591974583492684730116769328786278648438464488249931138311317240156607054501170993899140804291543278549398360025715983044084437971725388586912863615795455688018623772210553576280621179838129198745678694154268971118766041345268394437218651429031417902523585687964955502171207543071578404162384679376298624886478298615492957887726112103599444171893340310324532632044930617124969283805136143185394599578261841513170894475728604554871919493336350618609324021219580803713775273464734902874340529494191490563364852946635876833560201157253875147106608578664018641702712048700547865124124077902608618399519190134326040140344555685529886587838374143257106432710099730826269504612494718544452029363802774912133862440530024662154280377274354125081635070099912606279660946210076999200073223346119416920340824790560580885712986458770747881709607115664018197031610634112013165114561351101514699972194658042401546101830128764878498926431815974256575442381336832840438081686305509990401602409253153474664775660642940488747888077331839093705150324896085329377843629700694695683397940518306272288345128408942746665389819907534578029563133766694540917519248318193833232401287216980418005708177410655263403584080179088722860029839970333434182685638497005750514972155060207069477426695687673753749618567389897182316539569881509169764737905922538560694619537126189348199029249434848514391815745188389949602663444132341849638237765604444050803763611850711216012110856042367381759780806801802049407903471515298103430791831855240966658808242793906796383111741490687290038724815123084735679179896713510920733155383271441641124330022842641667755925624673097816574336390301629647143175058657296612936867275931153332576324556110327794922029818831407947892757314604758065213898574778164225840263472183791620787189221707249404974114238311776985055446608745214432929656258088283303811354933700080652890881130318496348461893626890778343474080041977769001401813593919549553285707688814787554845071249786302512491788035935004906965438349628925688086682393613585236439821419074106763377196186529568100165070565060327359596615825079958655360623338643570889182630196426681676525370696205600084490688174193435305050824686729775153902137401246662041670117023862287494420013735797677823460081722443692794881982421563594275747981212177761759257006772830272102712381084011368351784919540976053245038253667611989335223941268161551432583093464949183199875712164546381288701812990674050571615592847159104620653328840194223022880425455989652348768642002180457619594340934123156033964396168063962071751023655893801033152630021267165145447063120211274009116074201066672486744303570361364151182886895170857509305104606788699573923313750480238346324722788537108030140783209407110029906520136829045168317333521448086436066524973839631531776212303818947794782321273006552167905341828062281532422652829371917370572866595629515672407303901776807747772627633043974792232288633025523083316381238535840964247531466764772174068214662033878988299617013417057250886275153811795453684576102432989216473046279298645890333817777393523456777055989073206113220964708944121451418355510970483508526029542083921054060215121120197104407754719354925443242155534859132828516109692774859233994089458374249434623161224084527698662733034927247598674532473983135480123162112143644264551221757988513229969412959817946874705789560606324454005285949283508450813134260586921769018611154501508674691220393039805654414872128219845212436944524865133683851165935439411532817524605157143492249687326382752725771400835568251783448391975572039753709682755470435747286365468701747563998915648178920903490168386114197404870096848026142024043502778462319253331249480140224852238428845699917625458581780542357527354662579934679353917903398943712226996722423392830372299805096787885839269229564630255733808034271234465095624296954604565930251212117059994076506191329585371428542386590145246055300271733018255133415498851634059908694182509499877373019069516913390865611034387749416120918029459175855034085042030129113389079642556841475651687180768457922740561568320563855434091553528461045316086353638983100828462827528038323928950274251178025382380386757774899918330500515520381157635645462103407706150952018756813823715123993531963920630164001240579405006317416980312822178051447747106996189215284572317637022609894418472019544127519267681128728967262395278694280082665601283883105683576391318498702746400528935620105526774957331047120543607774799058470920356291389051283660804782871340977681932466951150580636928389271210744700891990771520407620143371264834994483825085153453728946895161721080514641013620299999944058668157113785979342769533703339788117165048955695365968152109512315109767330276279552228838101793806947991845589727159540617973105216216212604974717197878452836901240844202473977751341852927613569412239718131816992558380224839268449576878604938303626886774624684954011240059859278460723875496226872609662089938101105135519520588192321025753319244171320759480331464417855472492453936129331011151994008991705241708232776324703084806085036800847067263229651677146259236632441247483861779195616681722332600217105576248785667993427970558612874700810124318333752318429263482497231627254667708832252956639129014074127903154262230928283226347644051583728336186257098184328555234505603931616506744033689094605848983002374838137112472584251672443272304520969529717112575686087255495703796477984321462366020599034737449427572315784664345716378739578552625556232227314292672237415727330349874966983526733786904581709702978709029503852743251461832192052065250510263837482205913544253838242533641783244022628180772936254417631390223008425167324175314254044836740979806842303170347277956771629961191434572354318933645018750706800277732136499800939013509440073213030294498447507245698969188350754696013800538265237128989990282496125213157095289118229287459835603751239675846387496180001245478958000451860162220647286334108219843382203975333178542555228713394579592965199351114373629461268840063937810753107517279752432572005924378538328853224729264754742430562958204661252217228337544789215794533453861997433499679574408801999746091379657799756102888177304877163326078839870266247611461963718948538007253288869444735050308245813316056947980723702431156639146184366713610598684990812254074227712010197625348942655045759902721780676490395819021931794629639998053039287743094638834722726438274733951218612879450909956048279037206643417252863301451510614661605267553601388129444763818385091539146645893225819043140225030432315895887585461143655906658336269612296224986576975204281424434818628299719215560796082986120056649786892316764919875349156423132687463323875276215720090360323909112458853365525967048697288255047524555985035446225468281718686653241802576918616316549772898881132103094205670142935162143522028695487922092395223948222421316821490835694951621281928954825418738321254673837715430165115034841283929167103717928181959678648390947289272201480661237743496113947599698774768067398815909154175896074736576309854871726673041072853145166705428362698782335130502978142129694699428215296535433588719709831112048011980387615004149376743914895287457276867995518333153677805249456297773048723215149809736864545158956404464558592151719506791986993115971374379006311160904782376539031661606269985221831725305162030978510237107048601488377094266813701006907333509524350096406983438537064229151489808550116488798615676489701315719999847066730627326849234411213742123065539157785000366062144689783970168415982961831564963366498082504397892527349805729323540567864214006572327907680971448510589487768518701821475985596553923164761130349335782727729808919473985072115671075859368118272751383708574911069970126435547103520048971289301687800414852275267243992050512904557368142073051366088912586848134152254956607316254373093348543933868149760560600692390654685195159320852305882623141898076999260176884671348197772464544489581246897227986162246248954200017913261822787008343413498485604348570493650526968479386559298643724341040822251214687861265783338773621471239126666989593467499397743364808759237754000419747164204255027398654735315887897905139241165010140550906279026134743114078581340118759897940771901407101131472997416984751953846752502142059987536136352368983723008185874055264795578160287355174406199836503233012353572427549269186757417102604236448204929328400318136873408510620694547845698844906830869734174968913638663213323740577540222545130269624065644203958159001475151454930897020647977865851913127752387493568976092847544982488069052263428342257262703350593378233057385253728202896859222308833740025807999267522173396559618288828004559692282478141213050666733820715626878856127142140711044402071409038954080362741746989181432973359659698381079715397232117064919620837238314650313859876372589252213531088466488418301230078750038482776406714243637262750456657510222371499328557510372160335032231768584958551338430920342711818474045410532983479952337029791174203765905753868862977990354245281885183764476107164785864481787226561904458078017763269941762644821760081401943064878776567652479177677861397272424656565794885736393314634957903017743099916063556609867387541533393268985237231041510777314600778957431978448068648633036565178433698550006575781414471162608438224791279366319966829558970054807008739482404734490755530839780238495279833020273800694785030907581590990073670628336865832652535389305100049631107575765096303013247051572809888752933453618534219586843417037898293340785618122805263849056682250758029310406772789145635444032131545995357610703284816019192710832711966570142989710342313618511980686226606284477568628329638435921189216425157003569869061326212208121023324200998360656901905207230941153320427683578691308000583455990434622579967873111927613779849268294158911431873536069379767120300575967783829074801402269766744445569786584314443145401675561161075143742100924538079284472073630034913663782625023910455303447617187413487138717247636187031060224011811908233902707533447723007312315538328577490722792582684867209895235266360922358672551305243178285074858038271078209037861055573620561346546992673836168437368333440150174248011617177691321819104831769398196159223570327223230984027580724968579603582984441073392329631247724537271060356853848094717127732533640731717389104278101330172636570986778006926417872937230961054870645813200612365472409897477067951906371993019504486343005200383109494101942636068799807386038998309389610474361439417704516682528402422214418918768036641283604654033044536661901059577533010989512551468346252733564605070536803421233880116448321388061347113438119756939261251166846951553439669256332777204943449381391450198289894338324720496191086654486766969036301353488353132632624241804495037513091729048441030438347504376806104127285187190545320826427978929977853978870979688081232577925039057688015911040869569727704647200500945467701935898183917827888651451854820628965571365067590132260619274150529847337779349730838047254712932772121784568521422575240328945261902121298249612289381080488500114347803138432702095205133303093484108940719031673553883970978451432481716484097885923602223541853085938055258550976248277500604241227822139710254191570597791904125506208913867998912839799297119117395890111260620660932873965959665860331098042486051184509668518052690576135048249765065784023543117850811589580437281385980538621087238805230023286241214687404738410596075899525101525203787933465741663253063038170233356761350666247496170458601581728114536864711122345018799463788352201081391485897307252724919018423189307116768676438235778727909732571464958530838750267549951796235109023298149874273967542122790189166467963024238118101055035599064924984218855224532898611373890678236044870660183103305013303351233074868097766866415032941525371353589208937641310537359254575502453535071104595804268455467345513330206788724197077231624333380736818153735815549803084025088130338030265752537785044808173085569057790995810446066194442685368071599900536230354294570446422548007025257471069091646544627160998449562363354548841874863007204072338186859675556612744713798748540290164738110451050722210284063400068703536858146325620798864006959330339828006039611803931639773385761072149964775147876034363007465057900554745929561188790384300282114779497190275294220043242411024471137536313848797197268002542129578704988374645094954931892391789849138730155939652184809084023700075784342494972693314788822697958218528340097996540082450950811293985900996145192959222544206177213374371939236125849785632974945403935519782954606723738898004450816442952654693510423915216605237885065659194432962667884617224197085036466627157668215574873354949815127339393782612365012036610773771433025258848991977117346422698332624082681831697480648188162308325334149249634783427807690084217966181513311449671999499487367086766131527336768878096536343670419975469473248993715436317451071686291979259923458351409608777862422623004633393049764460842114884480851926276393193086446627545731935972881704138188972409998113753019621153607643081857193525083867794616888588893232000088626985363544855149523052071924837360879746447236391756069327653592346859253678568742228554320202318960124292076437185451668246065329689629125083818223224169852829779285839789713861713416700931671038830114582161608941128774952179082451154761216409944571801187066932650300463259757993839722617218149430011222071773977457230836750051012905700422897060076426978110328079544805765372433588931929894257367739638612796926685310238753119712029557413289016725559424094641963688654807234040988921918310558951483949375455090493864427966845177844961797372890923682328907482679526118441963983868126492098510140854656415568439971725382525965362949758600771369900754584606770187917162760124413657085673361715073159899732415902215318639054884270056879275266439760208725234312313621265723996386543509127283722150815211228170199296534646230853548635855949163390512733117085683734956536060524312642235590941532682944924007027605542930068704651844272601315965998231425429576634088998719012294729652736679815789077685806272193023225179090114691800819961597932085667461156351347282272092044945373727196582520842460498827739027324897058972977146761394441882546730598597325161410559153518169375799462027474701333681479099113003445604109022133914221578339133237075985050584746110406353588983233899794817712904069661140577770242720723710352275039853404610384925420112809882298994379517560248439831255544469093813857123868901996844058724073468707962369834602147161397821119121927671791497447444105426041052373794239190594570136970800256415696199141417670908042721730207585869782796296719955079688809285847176745293183662048078527695736543110805732032143305710222064761156953043964755663045967494875830560211434477000174091115528185813883938396647478535856760460925458080256850595207003000166064685575964850366228128716734707162203891066309534154527521936145321190242098114836927562956582527562242579725935819017836316663978885073949527361811893330217958852489391867030315112674096810196309041107858954763139469053126379421844340686422800033207278444917736739169506269120560893408310901791828190678865794391578780777792383752824175817842503613604085218684640611576900459779177024146027979422402606805345338635513541302653858933899818102998967086744890279162083470998018187952626337001648994715917762448100535039210921714194328789606961516877542656169044214146896938008915047575336785087329977204492188280858964911088720099593352423830486585447672122361165129627981910225413918951146342370133519934045761437085375004578319455709972198326420958386484487253809101704201572832874731898583474338242054744104476165726369995081983796680214488640859664187426398902923177178015715146405688461016852527197653184677582840079786241375388774207072866051764899116466155386326940466516624032590793895305740251318366201239331372233616577550907988120937977480145048411043925774379745206090079331079339640505934375658019962503046122500187784235270087337054443371680355086071576367333023936907038827441872062012814025037569700247164079133464529987450547297688728729138332116730660343884780687011345391955216736117782984959872542534416793003149231761195176991367572411585466987156215796415449524419410371971733844962920173512403660546765945189344305478826731683078896258168912705414296063672493363993373666073610499161125452550364483556039287521408990723469297437521832137257887839339855352674778756396536640981645501328685177642467642088667787148798547626474391603567555472949818530906463174181710370073614401068576195853613530582292628549214082805126429498284710278196616929809307202116290992422950140472773839380694865017783031190512697936753433681684307051889064749208401891323202262794302336267481326119881948883503590915913103341822020358859124281116590195317449617640381643221994090130588498695128462585640525840006656180709371147937765171564119963168222277981037246719680612363804106523274086138625128547719436139126683150582703481654452173685061399427960941943136509438007969959741286583570220194492372532460405277893030349200681243167284683460527525607048139596549046078151429282452866948985942889319400114300295286538349865329593992719820631259296577537259515642892577707584753502930220962381090390201310819026769565038612543759373208173095494567087533286188020181484272714502608753549086170590642650359299996832830287535129950964978013550407395642611846561521668181523065488795675067119330285573065661576697066932957329409934937681741692124487995358481834649225250188676097514811073200821098601115110150998954696896289042690200662901326361981811219258296904512676895311250793285024995293464270471519837802997173076639378673245813438770345884685715181627409686565027119474878823004073603392695290553710074099907725951989086905297312546431780773211542526567346772560944631086281416489676863251475328885616681512589516495571597951378496465250947374216813947352578899145183543932531920777117698496792295544946024750435681334109663205172749235391682426814007828863487078302789230518681078618092375605570482709333764488939353714184224611976899139511360404236180911875787790899212354393929824599541891052903026327964657938693834229027133548455602875816835882789179231256313368392840760649805780306874764385984574820656857747027071196483048696943123251991207959092974181802115597133955298968885331242407807138108236834973005075978211627958625057571593151167656538640988393201113354623078393195843203073820885850383197607802212685067280339117937392556022501185038328528159591250504851272152715629424490536882211193365737362832610419866520742257699001222622566461869804371249007669399683671544075569773330529650388580502225526632418233989999763789873234238840930504185546702474985665311254054153740264853985350983207707606358211551789858063740046704947560057728215200417811030733463187654483212876276283711466172925282072761037600906914106554814117248318709125823460551365738650440660254276614141282764058509810450043612339926010872034270295990189489239184097862907850355848157284906156063883820099768795041061736634272298563579221306857894167343262543241818688742298591847726345653622253682051758496404819815171862739101132336871597103445743666876354082008358740812022353098581873930716767234897673281060500844978573350096609912489372722977281065368853375689556990719238857080926354912644090128480377674710950736369558314453214584102781619800323265347215391198255276097598998719628110720924621177786457876198549843192515487905281498906272488529330293818841995904253933341678054644742045053205891091498381144948755216693689089574581385214858260791833259835995325264780274141848273321939077073692696846971757031354561994008132257867414213675681890741479521330826171374899501746557422665051524951043880809382583128956235885641149053591500369486159681926897146126743411174459370893707231114351830321662752599662899768986641412016478085933897212044906537357622477851901810738710793212696423093612806073679016168136592361757303667876585774263443080155889279896483274901624474032050345783148661983867734137315367516935489315697205142664412378396622173161000387571628363278700395842994068757789331416256136461202794420317422981059206019250965335058496084443201272475125618120779406193765508559421579049957609555243102351102706856270606067656715798125591478870215096059043344864336212525158771004377308337177909256589535374234740896482174804739794047783206131014954505249838528788123886707319314175691035597159148434236289107362155981902499926290085945792474242107054833127857257124586793453035255722407357852179658228654270243177699738866348923825173733450649022455174251102379000535405970076741580835847380653052493762487649418304819187384127912654655629698749610566462523991921064126641312073804331264092162400204649543772819024514832466437612687950084409170947944587335053706539047834703126438309546773270687878142315350507413944341358239797167695224958306156877469795233673282817640978238589126382999563454613361212655817525555005564889115302079696149502680464041367798955274099684372200201427282841875185148294010753696945845454640822217175050405585681993941029576052952690888875735015022223628422560713778837205919299903806425255397179764687113118157860376819352511280660725630808372659353379523789632960394481518669602139657682609857524258693569229141736648865523391504491222162939279406694049803138607032554148361526629878951128953292586440478911516478622788855017895420290191367711492602228916648087271296826210030712665001995052688383949323657430998125785391307823136304390833434703674934102706976337002200430287028912013417634479425779249803340897371641498711973280922144377088974572187343677546209496096186120681281747932082034271619727599098269936912639007821645829500977358041216443638972443413260771569304161936018694096229966542311967412729022047404410620680376463268650312145810954667165089778731620632428034383982542001900506469191126704108178697670788265543826169403111810319587425016681959611856080352660282080289379776857905815131852790336926936643811511172294829927325798336091986492706182833029913456686132245237340172007491699726033338827850971238997292595968085692776780749181645727563846456880393979598739715656316667909971655708912662222549964809125995042999381369995160927855017865008657987043467497694279253027852853645766161946219221887941462283313934886965975050741289662753311725203540963401583100971751048451030004140293439630623873475414567581711339823019899657552951715784590349806550064436548562907152112159087388493124732082073520479655489896596880852862197378337676770364862876477022259750131924066633142310242724771922302390209790064848499452400894010957053316241267488297327193941778191267100061938133387180900116117457777816400247426745158254819164599486271621562527902586144751711255625178548142373326719115612238385801715604183919619040251091520381262301145810345290205497334189735557146166808580605982765290022405347048907717470907018849762105646023834188220774934467894213144256392001301168910953812157718848516026413664279484715569585061620158322762033634164292634286766115205670113893437644547661276028677647956231486274206227220674035102807671274296289615275044097831843738147883933709484231593064535695218801072401417087949291036827791394797422653668773337246808571323553359136832316657070764283278644857851344294182326007420742092576832712400848398442565573832053017046576880755137382961624478228660030385305557550945459515429919251088758609721376564463401528094931820448360854008164594443175319453438417911745837695045343708579337507581646982091772173460461106725395162895428290264913563384756175964087192765943599990093813726407202102083147074043779810081052859866220926863200405007774310179959834475134023987560892750445417617642872667834837017017580581679837048406414914691157723293808716384680077389360837606885671390690175417729064441718002807833750399738889200741741297129296826166929797270053116794300795716856303981630486579947455201119420967204693919271019003390049736454493332687393935756424955210505025720888054757997942431162077782339192629868514457084253765901517344005061260139160116032440535534780543648819159334999238948220921667797068474026638100796897054235823518530618701279332622960323736025389188113908838140568729733235723943947081145895928043746625686514048257580722452489736933626549067781118089357714578626563369908841159179749974377478696374955063021671903683918329439807984529199566774234140401861978173678603186214391347819665697458137841688997762981517169981191857823393262987218266790790616216051458534970645993877398137799013603208722710641769079995118840704083247961935946902932024921498181614664943834261950091974825017446312022359290713604802046374112165766404045091831090788452754085549687053700510770588844315327929650610691403979017737594492136554845372804126238038249389227505619506678513710385333807364352218603230150983485280798510447357550160559042854836135940576563799899681773654969881279999338852941592384932663568321635814734877961002704511293047596996298799331772279102873807152780209446960687917386545140217371595170518883129858851382254791447328461708082559518891365933474002795609511925504710682427244775787178170673035280687639980411088522321098797940286644132497336502853747798566373788541662509513084984643431505182216234573368764779607929660690068658879903999396291595337461671780572248197608209454931139634423398754247097702782738370695931328975772057252408217295182776261009816042640391102696269395991766602469969514719974843789864337744784806500126173292518131972198532686133750140525259972028353160394627327790234798071794374705998605323770108488060300634631753476560373403913979672059100743395632987145535129163990137992333728147302528463113138382812281340415621378484501062044989146683060926932107227135429322787572289981283010981265847744335398298244139757547302480530653649778437763477313622713781366496593073957245254341539491524808343903614228492878920470543884047939124937172522901186846093268417507872849209158378703856790899788938075379006282339557814146620357136947096902329266996231637057449181894820911823423250969722498346924410832612119717105334795575389771229363823664804211962122847387854658496915624256113492667110148896443647717311612872645895569107669212608140432685133396032434452638248070585643945902437742545939933706636080653371002936123522486641528431149384818652480100416538611793352243253409578889748948952919220443845329264318427272946858579821345494549495980643911245776448593966691172451883540479079725110626181897909077447834732518172303200788484346417844079987599087578999502609721132307350872615282605316130956264994023594738074791786019972849784981959317036556368176292522381799894428445532907407146207171026667071606377700790694887485626536518661150049091664006456049875423727091841937535937179017597931574592378715505756523032778870736859353177937140000716858439944047389153905667402975297020684050186017927711386212802472364446522473787496794650234397306815429163639644331091840844461974415498717412803810427152167400508245272159298594038092651252596935140403994268474415373346343198695615619458697596481668797026653975604464925955073333406413145467528979881452867750827332341923538788701158820336553636496128152487967078969683894127163897457220974240270675105012478992433809152852971481659683568493369863890343904593324505464363184341742458171195094870982227059643605495595482857632299994098007672615639148295989691839208253460896466068738497320486676682441430938616414764120585776142415112212645617312683919487673822052934670678744772021030433342526718813696980646502741724662141465300005392515079565276563822804126081900537159357567916179780233915808458412647160301980807028196097801428294892803414860883971351325137543261952739294770241763233687881117674997381655660053191511665184399909610106900136463489406593059275960044362285477779790798606370936225006786474625519943632700898843809376673633367657185252022036640267577268954247108076358242398877796395114019498780921009392218853583110001956284082620628273241859806577931354865194433013679470703192041742120051757410949999544722658005221229654069475548698574984162459290958235855849111302155796882032758466063735547747166947734777665428204658663617551115191968928229673611442353842745333926597899777245296524852577113364105614546822481720692532294443522263779014104949871043547423741711220975745763695428090672463860005322126789007733516832040234687275537319113118810647096211570791329183199102070201604658078272775071097734734510608706352222580864030727131473113598385346258891157948317093583246475070720985165654837529529745274713332891979649722294278061498312378322238353584183885545479873882452385791853783403984508632553497256518081790030007725701647413841881668675778632094031782130929561850920993602954064267102817306941224912236966680734950990771337436189645665403981488850748182942499649654598454778299571421964182683669898391505076739841625000815980643386522760711478290716938290059201222854904984351040103370829433634132688435373322086884026141518644434094394770238661399833236338176674330005731321238359127867964112588903524248777886401267271656269162361085471909936589656350877608313838916486201741701070572126903934910497945114498457284236461174261981279864816612306930514483540205376824656887359684424458211802098587409821196670960450539265670461900018127583935828721749082441844740822789543772885039035727916304273786215200321092860549942305843261776615293982955184462391181049228143684486690776574176084844258030337958833157145842834552000487003578975681754242656345808009855791126236844404924324631656562445001219840780324838264795784923490535300026919910938310354888096255258779770762959274395295444142635100267324198454417824051477161517073988899692646133037137889959565646542915803410985814023077944178024213320253057299076552703282797956931466531401222909482381996466438636565684618355568193907286098391109414551999893340208797067069346719634787498831890257953379056487695004498938184961070958540277582832586173842722103252588193255844753033077395458925985626056628164090444111881545978952366950640691962447662475833170463604338267178894408060348085231242511330917806065444616387791216391375697263182714391387612478397323917215267764544772595132189636767515273352462972802943975803317772380214328037796717831150241534371326004001410068332930740754405379170425758493931399339664728459005102798224659720229315843954739570399494198492508148471424598133919594728148559087965324938339544596538744961583006324641313493005241720360545974675380419170798395391669367551314415033049790895428249872775011631957597075367769718419961260543506134341653843067485098520540967046704096391007524021262301251078264910112401863011661806281963123754957646552863380539024286826030667228053698726580485492733691307415633268647691154229784659249459103755422731995237414148209711067593158101687279223234429297235606799576481716149013288709618653431211532438785919473387695287567096890956316390663578256215318602217507331886891335958496693940566935713878744414656296854712743131782417578133766364015643781737475145352490787114049057898262900827204727946792536372444398072250317769828623920963870092762667744630989825416888891850845744030705882455857282148914567036334032085740623089801593474360724832413726552064038819645356295005900988099871557659269381694651845557101641985629409409589380346755968813739125358542193424261047914140900153844424957446491580747181904154386145350832451406325320458369949834856503872473758988437400976055767593052226196560933863285286359798497670680095012553048132844121884308897278057363875979478716359472147843803621520451966585751669749373247194221936165639487029953443961237356448470061258132118776853372364636050107693056423425897943537704091710314889574501959551075831418848706462929903175220291528380841417719455335090492905929098840523815493092748772280589757904945500246608344718731190566741494182317512069278083985967167273755013345575881153024266578608616148931924902173014096607178986811436747730587186573107815433044281435668895716326410583565447712613527356417553442568406255567134539736841536247317403876797718973101090360723485765838843197228888733987736513495797435684168899326266926527545742046887208729732750413333086527910753192468485179333966779339208248200396789998814544086231511470556132203761634342668281679443174007849813724840876568546215881536503144124351399691485736094320048506855506336132592048759139764195395578277163306652642527149370701904050449668883821454484471707625971469867951290682119684492089779080440473830654907104378632521882637280565882880627036532510708825568525279584044627357312267825747213668459154255722975048514649709382784241574865167319823991566116103105796278202517012100849369555636252718441664689617052212832785928147466870669893926033783627877849624037037484594390828165653845197069489411915693304391014925680337595425330227261589241499912583450258796530327482929976144197733234934352804766796706488462040571460108366709068781869549534631059699486848973796996374851411382956427932414414498215868393531972330415170965291175711079116722399322804122132848775247499999243953881510974630753896404711884487394651906193260282275350032128295140423295369743304148875824484196453428512826343639484658942825807524588841051078316055984688593267168596331846281740315946876490127253099408601535944629505084412530340576776184125798937096162277547262549580007151130553341149229002115198286012223374160093456358911507109525827934404799651028022986616452811607496058763502953095222080309921766513288671232481800617322272647150827433691028094855309335500577681493583635941169380503599392884666724777843501532482250093331705657928576992359831242259783784697452043216660591566308078661715298033849444181380140869216665128747366405283594851241281537746040350756057713952212775189379982464389097671504096836528738506572429716273837684159248459221486939146635725600762863033545249449035971853412859062006212437459002051153639554364488030676454908299973966110704167386400557065920991574845949247325031195105904659189319605018392530381639047874780681629131242925582526219659592131934500781467845426780953717818516559840111612455347823985387819780891460434813728703229335048740126430700975393076908181653105032329758270858425784383463003234683852858254472493454262556853810687200653419053298291983434228182147703728550252915877929222340198002820912146081358020341168535596358179256206810010155069885672780279624693905177629084348558800945148743003252280678691970722435382110997938882567196723576039245488676204694942254848363624732664844561025979050170858155747662042153774304006372114338490611604086026764840946951074885149177469339812668237185936834489604504902565555937112929508631615557516780258641094552565578568657302652663950456607656349464699223192402181907862086969026001054258048472598312142740119289765564357127724748992821938074193935080681668177587519190955858915869341660249248963885647040469508208604368370359344293990718602879691519315372807515167155771793797407806441707319235805320867407118850231491463384693576762957908353906738615208144865043650412046297787607155611240952612279664603545369823928713532254676280655618836367578052131202677222575079198289296800759933855584083237644452451009210312021892195568340304621610159285350916011366957727464067028682257059788367879661304119006071768887817249274601069319023964073536588046541702918017392860139551785072001859000005148310666967895519817220866660914912307554836399212850009041528596688451100588509534911632400354287253144658333901335583849601604887353816902325449509074125242000884619605776152950136013724861028115940851743247979670599180473572039903889539123246233027048100479273806529115179224118436768892495919440655544244751597262359713515771265309938733313002980664793540805498746859195051663785026784918440625503887833355866783590836431398687734111878141169249927523247536628234070591731152389245246612605620749872995214102571848367677914002815302344741773327463347369053739218073032565844179444805244034085789169119420562113686191116513247792912978761255837246302136159133693128805394181566841490536512162394549665276730882089488690741362150522944239426747727374336322313254923539882319765140054131634802931855730495363541975500500127434452260736404975581178093085044728642477679855547545484551027275430444190466220069668501474565255863377881900571541289223392627920987862091217675418866957874335838124355840337762535384781338055379395003225385367539020186410046801236839114690606991365717628246345078295392976175409763445361460674826760178009498067312371502842625356246920479835350152083523188791941720449234821906685438437033498773310210149933628299932910271194619858677973631884724684681574346443354763408331727058768838755311463699265691477360274896370859214456699188579207951923318744442731445915424738293224271320496159451493149880144631764175201097764782880866407846050195442538462024875036724424638039714719241606863816287179199505746909584481100285630446003076136040579407023801365500463591078102528211692720707974575768924674302088241339922190020434277300492257711285995524856589939897315155447703978933331662956516036962985498704975624724495372763742376579993637286608876216198114511756029467384290671388663004547322057149244558400661493683200248041572706529039765963887354925899351014920552426816060823125077069346391424360264180086636709938437863330223397752449230392915108525943249037093591640661534121084379102504826362057546430999586161589858782496563170566910583842464073218047836100875761404321545821473775072867913126192394416514717183145281181413916178973346910828229696007074541799950940854279690335777653805958685816088763241241272277907306494220182044871157049456316873676030907597405589849242680141097766594768973274824836787727107563306047236087178292618571244917067577421673372349320509635786697009195246875169390246424012573138305894243638986255737998782942485414097257038831882324574411784840935915903037178500929034277469466994429839055407471393982871361479511864116707287661598593667234326717729710839207938832640117244105816352207627015312460748886387539747179065731821661749767009880130254302712356874630854224606190069173753084162364635701706652865461372272062607685381898271964420447199926237056148474401555031671772877408543208774575098760865722658439884802432623628578326635349686120014796158013321363499491030057785624823529049569919998979871055951699847421687509523900063445688216025576791519722702404177504894035432658502544374723229098680711731138268348225709858808611143297448339433702961757368187917113876664983453192297146082069536140045215618033463013156639188420649878793537281582085791010975703863260132231775410992761101479220362337363987692368378818512238617040400921708978556904966291164865459150504022426105067489601595809060984634673884536312162198696933441224259940921866001692416787207592700364537947007385098188431148585063625765096840452057929816214515045814460331884518172981716214520393854787136045581691720477840044136260996005332601816968382589685128500125631781746036670105503211536009572174416441824488813806147930265151395502259953238309489609836665159350352941242903395344693243904124270148651858310776568639847818489815864428124472519703581058029606245599276621975903294762832661012474567236569268737881140388950159696496833500467773156487809543989450551512743054971527841790448786796259682809916042775342746823956622123689570495126673776463657846474858312587795735053830672271847346445236377009265984255458754929266797922594989871101631651032950702260986718905253313105275232492136525417478255530023495019645632642125219844779424586516089191711116761387577788290115838051374171591364464703203856824195967539709094875129466021957370919254293616836655039848134755475836002326631391018656117568711675529160402488654340010683021782700551366588601137366876579087237665857244965572866544684769350114275961333675430164235317598749653695711182931651950617845171559912182029232949657851960547273939452970578761110151792882254987257664845983182827891995592665778747047748312356996287448144652443379386034645158403897572515539650606931561395217462145355194431969808075029174667069067666937261605930247665952240758469774893174220239883509857638068148515125772579730341761795517646695478427633519501747071774032876549626882503064602912307391187449903197834293937928908716100162946896298876222751572708945334673302131944467188531418682212985713261012785826182455268619937334015277249541494746076333187029267780482833111088552833229422036248815367069038805903391694879396055826273375262219118582279801772477085687641047517837854749691849345733327035384697768238581322501452086805151334489831892942764591837732882670215436944249187212005344780176409026423052359682653095628233266759043045321737484289913105681284924295266306941678353089653863179163719958795198917682966311867371049113664730821715078461828761397393493131064403257598329247906402478024343490676775898459049506274593423907350955962227322583311020854486223849843820591350315894703381012108922748791792747488492770454860405502547951650371902952900732124391178819401291744794143853899273224959882742175173498266811442972023001954540538839724456398546911616213590781840494531602479910839875430355187933887763976473012597853581662465657055301133203848166348929925672014145437190692184542358561898317102402300402401190228886408477050765293567643834932687204167466339067546882016044624590558751514778024203580425763118194063769404212689818674603435987999031539855476051379835766542251491782914443534074597420688000047712762535061882234693786345378192372814614151602795789132952212832282467259867865367116858492321153350300792047775504684455295728497783593335820003262685160624958699516942749645682741530455412803150118365745959359527930241905160632533471224637988967686941423046724992103616002801405938517122998370657335841596804654386344726257845904698346571078610967510311563774353841972257004947495087361738113430009879193800663982874117028292837520917871361120543935136554125404305152963453768372706300494649475417516186075036699528507616533069034044021975542711704710133793365319159493905105415099638141502830738024638765660236396132086731172609375240133950637047749218172534708084564745198659149006668856662729168300375084008259775801031265813410836936183808818589610748569919750106130436454381331889371371835060707417006930987571499429535117323149535586131209292274406649062875254331968956744433194085691165693939415405466880444982586844461639328271354734827672394964038245220772548905413010956951326516965099042303078157900153182267258678403689470029585032621295224305880073862887002348458083364790270963770970931466513928443494971738542918019630098149457080160799134038360634431747657332343541526975625436763851774232072069903044534921639639236255602381373419068226101110926083997879329023116615941512048480833979618866847128885431191341895077180666012550052510744020532053243288616034074296879298618554739634343928319553406553674610048203896970476201923367348564290883700526159460548379252674899706351850367229236567630041029755771160038667353890087988971178822414697805776055337743397872178777674646399629143533434584802925707789452764475769889359022433849913344080639867790821210399836571286454572800392762421853428180716870149954475112195262109424330384292091427634799439716414523508685899887510555629261630988749026771859935128319469451738180480379939156534355629500396318654729108492771924923720727639645394419563708537380550309247995930120220202916587101464734483035339263160491732775498436980847185452899561273707911548176129635168457112500367071008086124409387724882927148975051506993059662850291789980521452481516067987924609758408509819583381259464993896534199532217719883058613191889246206258923899940364701547627713288698580674989538511570847811793621506602480500336507822622255145214005543295490376665890455676662310215035522064786166487376731333434264526419444761105555363317762187164328217590679419113237480956121552308564824853239068326956286642776448465071747280968401299951379712253087623307209594647941826920825798572012031739824079549151162912421203461002888561999384790517925277015979931048991934235972931086124069471337341190925347494360692030277173330607900884947166108564063903148401763110399568492183288674252442777471232864137209820652736975782563568019893033718383249665988008925740002779501782944165434152691941469146982338990427327398674749630093983725448598684345107959373973939647292228103796702742068418480817064496146739029658485140604443745255988080016303432105829392026649614322958790182247123379624054722173571628196691311318973608133787075791003971905569924413638065541537199444142366212514888818632469963125022132644328848068808890739912732470024845019141199778355847123652359895683542269745977240054269503904697966143956520377182311915997102591592088027094411474294036415645450104724295529717080849898978533459993353697713989833405666584741714578187389292102090466633253951142353691643327775308266039326033519709184628785066357565781669005205071385123367878400961996222634409678650461078910281365732216067121078616075854973770754761760929355721085739039819092176558924773868697992059631334859529961941098803259535972736437965140548533255980370983079182306321942066206414826518199702186184951552579275081810586468928466765018419717519050085096381450798219286261164825858248063596489759804024707857906625321457879623965053147392677099252220011041008787147822036184666094135529855294264478293123344475684370326543657072395467387185821419199505690419027843098694297943383060601526793806061750973224476184306382533370846120081052473027673142280762972320095901641516671520914046398156805499164159597362845167575985673805425639333376181896250855913443065959754640793995201274789241073928606598130709073637889730582367021346798292392690321006358410831685820972986513207993358225374622981361812012463399669952930999489442538317376452922186131728482012298491522257714629468249522308943838137827447385488761530388473630097435793013770482938271975204886189300674985771550420659960636985269054802930738849123129105516757838360391243512727260080337614089342842823779376005914844802293632398840885492661833751609012457109741817625950755787452557837740132217798735184870785716673434473319765850969141903508456653228630101592100892314351497889309875092290188530081213498731287450778382071578172023316795711715621047729641732690253975454015239348647465022031811880780272852879592369345109525764914345405755049012435205142071359212007433821031296852291310351833149152762231614744579160452444653462389045099323858142117682104454544610415095362743847571677003965651349096040309387099190611310753387084028663783544709354600297706265169951600365172230540685492197880759029637697449574915244413485450729839208012565546806723428643492138053598309494643052722126352833533784437768755243840995437575001681360382641863315668747040224802246340440171150161389450219185836849489808978603918734411102513611101126396908147816036245786035611528044948896933045951820747468936489085905350455503543216632396942185107999278970780405493472915427073653648765536759282626886899377675038686587844904084485583578817595937327887950747714156467688169995330801497680832780223463295028448938154710708206175210262160775018961679441561726818339232308482236806567559667813869499888974051580335853511061840552682456471728978793698839159510986980735584169302037567680598355810999351004704033104386475539813471077325267408710649632206252512573098992364064649204304952001918751768715170617432827698955779162300115699447320815761134508171138007055451693872077329564752559285908865046218761279284337865752916798025240692214505227680587171315626731762101682957453897347607777790876706474142580197181523812318026140240688442999210592991627288339662534764298047718288199013441748515089460276242666117339211816072862959603294197265622304922881988031421816097690021397813160705022827824843142460982206981904323399674939920339862222117876065754588825226910411818532752816994398940446629635274097400649771715742111128652427932720170764010507099323498553440863594825991377663794564073623764060826057688559083515642774574510477543833046653478052887891142951606794221617918869617830646268300362696131999195446685183819157984881046066094620122917149118225710796739015693480063778929878999904762057137031414353322027478587270480611729767658525315926819029219823942317719420279598002794966271072751805263695079686930549031742231194460794045484723481371250854020904217282290840227789026139422194751186798082708022763502608958773035284199402234230383362018840621742641963812768553056016281677289751938382439151874058727126083252956309821327272048603505814426285873941897805695285545670608530270024041212057206927140125629380129490655105867014406139013995177784521535731929444871750625254367138045434543486301085390753263455312047199325576755367608739898856127220762642169328549823465293462811929842767873848593931005580226396398661063687572452101306484288001664221828834568795946437921419701868153236693003959422296372181762968956565098505613937871590439196880641993410119686948261627026648345142632290667075733380307244210047574701722629829996867802382574701448909566931489489177003945087617581123878098149398958208967066570982832328977144886286002139352440962110348260091480288287108006286655302106433608597700343857409863620897184374844577758097930896319197455389164750741872270671534281612648830635250060782945948238175954602182420934659043156153051387055093123828065452688503778723403352702651302853905347454892421207187640594707472193012060552474671499572572463952474039767698008305892601063346444601863303647474617937825995691854062590335244214034342811404016919463746714992803773515325718586825643770655293504373926977861864928119658469326133022416871047757237110263411624616871501332657247262678081230073315000879711184530610135959291478343096883881035459726113616333755917093604282912032863273212646305459409025346618616265800240849393252420158715043322346583442094771833469079315762540140802425914087463435125330528434828541493170884629171188096921537894590780437041595013500334818792762781388803538758580766186070306010546568118591465488485801075889548295987374713639127054266793321910539008392994900649546341625154802530089187951918232455138629988884829118839568577540952995232495292410150609819273662042529904620197593938320897839789362724263953209357319495910712676673413989446388556215106086904238331597761238102191005045585350728787929094886008571736536589258126479558107050597889791257535036327641082772922660031154361966687374712750808661680691914983652236984341807023706302271385284253843897372159097606981201546626042289307009673857239040391030088123472977498622584235686209401026586025961185155835639206642127024570380588242816175136907590891694913132534239163511899804157608073974867688103037666962599669274083039765973480786563241004011531575909517595440345491020452428148621515323736274148648474460108545745568006150653144000776651486250112850335285576742089050082403978216185207239421484063167793882121265156992659593731455782367752135164768197904996666328758254678428713659752605687048597528354424373998336749448924868855227957045001078435776793138844346413156898756360224530635681602129348763410397417090987491490282846374504261382686215829041397939682739585736097569905390315701783311858922010935876719663920970077339669475269370741339192984337080270552925353582963951488883144449362335957791706494659851759915353065446449845941712584742550934117641060672368985531720923065280211953538079607282692017647773584108349899682895655211550604386821978088848310916276138984690032067091529251690302214137574480425481320417835038701990806462786116726020079107659149307949152566323763645872126042279567035188471468719058359829083918701450158125143927367365084610321168187151017896692819245313402631821674338698397348481444158089952724141896042660406929787908176991696017891973801634666836148469741324429954857586616348035803915799384929287394576893024714908653344083757855068024334288825569036239407204994038578542812616713765998880468246399353933283202922589578889917803951344139476842538634466738561631481509223527428825763555823047266107094974602099334656239175543130891591264785050425497632231183319374600302966286857523947495598510088362306538573009434727869061716473474476593971876051802043812622242404923599899555231976206264647971076036162803917182692833450825229548550472965298996757260845176681167504959573064035999928822186048430861030611445829236127828817596234255645299553238000847207016200378957121142581056064367866812940311654433143612603930112405400313164371803276917743057846902823677888889786527983273090557725207977609390033165768429727875474480811039398785118892285039420297773417567919406085105271713600264678560701747746268791858609694619212718744237275231798064073689457161540235371390101863448084177267698557750732835368035214665834661637425159958688341504974782932355615123347884744742379196397199099374480073068439952949374163629498044735981308645172599213708548025079671636222620407275754163737760594009349137329509048890007279101652137643612334758859581290134459349826228707177276855539520689343583120460237322934058349067358033888813364041493379339588103495199089421775206900312904271573942410807851059716512595109679867109690991912284801682358076195708366620493770187040509377642785143919449083735512918806036396314770479213940280803145844040934227495924077687629116080994938086234292379316103199207016449748848826508311602687247864134108370104393999338092287179558201531546261889077217433495242480877616526055357550280305125276484922687389874042717167388637687033425258082093987794620886637860559219531663268669690338752921692703128441998065561026272907603309169937903018871778721950919379707233747224906079717521555020828390647562616229255726441929071119178544450496709023429775198459217336875042458840081759567107208669809215562260526359351711333195649664473593318078096835790664451030954448301132734570478242225193906622341831435094991818975659305900820275695363835742898726652869330817857614215074964702914889812226529724545532927550022096055881772797154215893990353441312650468626290564072339095712017619593903303378631409411910238911174311853561811167592361088106836001758307935980049297982652158710223495126824243504673958682900066702599823004340900354717925081899158723184343855886794946533423277017044588905930824222870752014914346139820634247147299040942450279622153919013912880306343940749819914921636535301297816618341070586765979620591331258794531905162627981482356301919278447063699779025541269510072782980436177419009284031162677572908636671109582319818895939402508098126962551997024272459027545361147258214504332880044275783676439294847941192798253553038323736292449088752505811408928690440449667067986792770722300573419138592715670162904326461890181756296981661985156632771879701713353646915547484639513872344654326162013364952253039834273245109995767179797485463486861313034913147581934259211953747193534150090633498720228172801091300777553973746611279669320596673695398687616349690255614981620849351991626020457322270273814745488248453786653196793256456320373891172987908071331071503616135118069010352314395269399925373744739438563000987018649259568911307443537616911218091263988760799004613652327590458692015935170136828689054709762442507447398569711344205709770174844152109039514874672995503638045451431615860241853570206658085452441455118839816132721846360025242159877453706360934829170292554906155323867922677603499237856956596310607414805151845031007760770710254650813099389117043549920959652525207189047675447439163381911198243539511985517576532623922982881858776933100251031091133559328846810217216686776739888968913048007040655774112592436339008761765026330850327830095646703471700178587427475769771900271343463351513356124994103538564449963365743652649214453448841652613394150598788991715469766610235583214014357404502428861244542790338927863824354808424449297918689962559848212056324146540169884827586228247274938659592929710481001140455171912870479348650629849485625011101923565476082505733686240727905699447060833537414737234294080195733454703399437161280759515631106802508503050847840839820598625747934014023479782319161905488752718023466965089615225552963411288987100422290651701602584747241818687572097664448810929093080123431622911226548157336102004084296034452727970404772809165992794948160962119421772612970619644196086783411983908992704397657081835720874415242122789710202337255555024874347348761458214660060857543248188669797048458679238250303535046217259722912006039474699067282222667573599078773622780455653969749402987954976168113271875440678168326577740161396304939170991687234576617676007485595083488883929485426145185721513994227054059392196653673327997461194155635294093799935993492588677928419240870880459208299389129956131457535427175334385708756039833838798515419097250010756509038122352047205665472906640979471275530153721993803638610464975389382403148023943625628064052500930726310427573369612537591273468077734706076457857903116557864664273821783682578343554181882633231624733828116146398527479306028557302364719925371837716458075101355111137553909745722298220914775820528570496060005169058895455411481491017591129244692333868545432076304381341410074449347095881672113479179322694441550613735006132028764874428981366230719658371694385821109370442298778159609232684219073171382533480431257035469548386143650000803107619074370494944845632993210046595401854645185767988088025772296669907098036651005979928314927882597741195669917381122570344460663170069077489809321970848777784717568133093907683825506142345050707619433723804535590373766449945221693361242225725811006305302084020811576778075359786362238035064150521709362625063134247907269627690748558344309661678456499728246756884509869797868626940024781089446413653228151385375195300378821348346816209091095152964934119915897683899123251913152714107869488661878865426603036071302104548733591934475860170911413416247565318600534912088125972492510551496187946234320076828196439186863901659736188133163794787619566488189272440469498508840508999343516932013708191465511806580266095943013352417041205896679402867142294528720697254624219646035101828345581827531847195489694044208639656430486875200413973513686239249897873511061201178376817605253989804053947438616222897714787036557958116855036845514565528800270689033699988924720387111928060801766652722479388660540814834297694029135781516402934845983107292515960589723475322317106221812942108787410672012784049323621710383839271272496507991322627973038253031485900003219157558910783235578455855353602428600207598274434243552718932928748807841395181502408762214145640785705384417661500177465930631092451608503115582592148592024637103098992501679100907741585789218354100723159326166613508919767217672347091820168048937745936700761567058928303014314615833342806239956203545014435053725915999657413280233094356745399641755522488137686114611330960950970232901930791215435319928008120707905337542672406589477646316635291387910400029101898865019008823526808553456311404910178737071655971651727800212565429744480914329827523781320781383091550700442731341256112895703420166563110637031603333649002078710188499375118145489483716689797085354110201670005466102290308410549220181888193818045698370749052397157133371851594544282420955784674138014951330516748198506004526140054601355373634628778107887522868710843251220380360206277652476865412019672528798797467074616269523962533596593753925724863451635431290764572486135449494485389720793646561813410031092359983390349397215171135895914103297344347124090809261892854434899049799162143188281985024703415255405936618672676853455493335937467599637152418366850075571753839787989765172313940497219087836778701794932866505094945582683673521609731837055090547934449947967674128108669532296960467824830774486922951199704388634811318893622639904329457241176960445131140831756430064670607883378039727597756652941121060238043615618515637436110547378143860332942415644644005030924628753033215898659651527348151781234887204990648549143052678686276471223838354296786139559151524010018282454455397592125915718549782132594087118543526180088690264474032937707276785851569197000371644085139928290795665778877086135032779056954264898135986690105002766551653553471686386297604589664308269880840118331058581260947644518227205380313491990163916433327553137481249829308651563639489800128495730934458328896668933385676052889434271793470182491379021255218961696516836557178453177951292711536852482623291024659915663152592296469540727054352671090363362144048257182540767674156640186335401090422803645401950343994825097803985385687139415029157329590516328885797934122142289383709167148135636444501816192539267627550149831119642960818501611477020540118439410554698154012338552249445909894457046253601824792086844949597938826261842341405004894258963648041248592150777055607206880260012720512159008497445717452328218919053911788325934682051500321652395271177550877331068902774446028342312267069430231609402807769368630459623466135185799281538895368825112231873136629629868637796033757244743802251677695278075790207056909614602902550406955709187484258350767419762302515235349674325327085236643675529224002144368062783584584565164249723152886993692740297703309655970959805628974679937387019417776785989549854422051805410316100402462104208605395211786291574282959450927884737188628349514802864931454139617745234788609816426994734120785820535749761097511076929442256647300701949341602029515690639228923841015419494828973621096016418186982074692840570681920822532148967581857766905349134685901307852453300025587380151117551158275750541884186093416489155558455963655814217765531947154778470825038030586384247003171146836812453948614550157250510707772461915934713064175156488878914161596023541842777419956947751271396436532638940519172483592484114940807807237808143140971293592741702516551350012615344238402671518369981953836269473730996072316478737473650688191195402719812681295591981285297402282454686108922100687011848119147341249966265775441165810865403328494640380456578208326358754620057170810035468959167002065851750376315688995798887877042489323274761669511636305577908635572722069726473787322319147840775263073669867631137114487371713297684322863311490136736962892846169539633873909723255383590742360711643430892789174126177375143116722115424024860317994337103204762835133233864025261144092056838117297503842614037042501052836725893528650522450377318681847691979205956563861055173299276883345484752278110116727711176237440434360743421166080178644147034184129066752491725029792718050370270088230824693620223643714308417657313540605242100557195389153030016126695661223175593699582883354003207857689605393363974268506909498135413572567975872192768387719308790890405321770664007995111885810181553419393873387391018242240737825900776514607210774763887516873414838781736123163439446054269460136750477898478088046475164885580132633414661126934733252675841832024925641477523049366720891237546273691984505863621913824597875214430473999067315573010241859093608302980159214050765944867227243738119789162705947842339797741478222910806960129623019417880015726377164270492516820600011923483029181783539050301620020784376635996277760642996303157770578817035462216295284668217691862592761510062718417209867066796418698159011505265531513128724769568574665256299168529453744573628642187943279492232056357812605745136928447972912326895382293494042967466773431715795609282990786185984348522585889580392764388730732347149668872360240677307049831461707510583597524697176858682699030944518714503618281662627424221503226593286655184823733253467494909863241748497917708468240844654912230357426581616571400015731285952851697574751793820265735686430456003903889279658552220590158241570621808282432513033713375940943442669376653850220428209332666523236087408865988952788318863514644151421184620101284325321509153796383910912738268286585054439371577102058731416035852508657610664998815621769134396903645995095876501399676987701610393801997268789932434141727249330360816319117995058135150576521386878225667061875505510577261927439465657894068722789860447172971017236778417275143071344322435494302012813780259901595445370133996678203531605395374946239449047488820006525459358272426016836543629448188458064652859038245564557537413790074150507585495054875829489750751685912575804660241050015399429512376905892293791336540759635074270626638141897021862544626396926504559506574344653717697613051013929620355866992897910397181939442824883152774004788169744897358434165441359592517911756529841820762288513003689400718828043868997736462846275667560230581617435976915481482098654383471140543956772827162501431946540135395584325555451452290601446051784264364077608042908279061167740819549162809818024850987413542338232753844744367557661336508985654495020499454456061323947608056508227653947394660334037463009561056348887196558819827210390552956674829697114915015395904041632410193130757873732601715256276465511501600670250631402225264536631617092907454541024759913662604832329990510677720440010025798906757046507078801209103145143893199029996657257522628653300442587070399030714528326246910420042427523326931152383944808722623817073241843090812258069516004598894060183191235130125640409540744745547722168996723955145091558316192499956149195632025756540635204463795891063576914771273572927039244125294888917690873238654660262199620616169283636532186078486399976308719481812004519936248138992930185022385269785540573331245331349239417038741458374077907234292777748483975157768057822403410370797484394714890587127817893839081421452594532216554327791919130243031146453588895919595726050983140778699983565878931199092160800976712889018715706782536236684786730271941892465589566116195327079718739779613663295438889812210000396145357641683807997201839823844149653132823220297666786767757559638375294591206609337742813692397284192240310213835144879640631962938397172339905639211393286308811511557624371877788737954985184303552392533326361762849191809579329190893421182626865038297827333655060652251278614980252216015446010026835427575952513591866689122663972744902078381011014257698020924165127286149522505396084762187838587973143144613332685041044757915895135631651514180114152436719308572132939409270699160966454942536537363734376158066377531030603041178191008559660136300023201402083178122990629194658292757155268035328701117166641043549168012826791604670920711900716487424421805300755341187946269605438356760728198852258995144912100153602851847078879879958074401854674096047772869985121650465462433817488451941850034811826940639896024471486310282136238951393744226189634505068879243176643786345277139333859278506479815885207371825126188548120415145696218950354392588520373685039757850236187766804288505516997499351357836834788094655863975611522796409510910754336474366293313739294683685812464148132095637762699318760364612427401602401651839288044853623660780409695175728472314435876914656507610821711598252464435041491269703443186558503881679574795914596064155511384715145706287490903226563399120111992504220430091876948934389510879424850542152531403830181420470553918909348018925186619154718155575655196282139022276705252813465711414593710498411861758550882904374669170521304178024320182676915596466867657395623315153393024171476920207761184923052086521615670658229130575455316176987692256568560897598917483896849524724645709923592622419002915041399606783705377299299174394097299304738654604817193261411130753732502109245304600756204344750269741523630345693496255476284788612327585811114194557736681323922033771737366368355768871650848338832836585255289153396356790523308290692673243330627033291271690787224406188783236814373386816067543646759791571727976941641982413746675501207159693222764314632216553292380274278960801362033390494216295503360479432306216548548931391083119334373171305641955082315232301585318878228584525702285864419503709263139605069037814574616231549358148100001136794251213634680823428711359318141394410006696206530170356093206970675547140076679988030393258025191143656130520111021676865798821355397594025020190287177071416781640588755203143039464377716212896017753620956443265862948779214169859234583676287111495818977509122664075638499662547054128363563695801288545977340621095189823172086257113129330249420143750596859827371517610365194281881251926668256141990550499229016505769346965383105626698422779693361537698683236844455804309557807301975120565693569128114815132085697108754341510765695607151799947682681100893154778205891808645167032897371216337283159539477762750072501500649544088291952667226576110684927076425227488821592499521557822722205524988053563330086779216857558027625408989913531164908268433350104534646040870564633341956664274562687535931330100348807448431245032882847322201540179387702368417586257384481485722793682773650726610234133879915134983385413739787383496657734536650873263958721317513566786381910196081718156518989045273337351307300985588268938852258366608900795286572179989742052615371936479668789456355074484437780242029189859964328205326567788995242215748704197795629639164670253602573981724764842652912494151233817718115859609484859913803482619924125407928446296579589239279689976543287883769245120798695996725661744002661416832600738780280112439510109683387408096690275969011068795236983228727178687748661660942216938831800640249925431067079089973244725388250456848342175078755641278056426409623563171386459746552264680126154807449627419919446951654382627677761759834643372941442561642890509885164259451829296488626366559205332446203440999800729895085453094880398763111186853286573143504240083948424895968698679577980017211323764764105647380306418611109807583668396204225631066704997004660781653148795052328047338613926721798418139610050411838288442749655597361029265215467281258910023853750160519022554801147110966810968895837025729468021666866800448679284400641150043561381134206353646435089051700220907446614572929226185235491967109408434738399598501106769611336391587789201883163628810062712731137353379582802953846189726657602479581710374079410437144470015746006885775125940906755063436415113453193877218084047020288213833998927023006044190926470401327846610202974130016147236364632413975399888999084412926576119357925587970850544575263504988628226255010712409744502761442674467010226349919646965303811953400155085128553426449294915411380069440599339651553844090463015848450601796970899925793691003318916962057117008474468025892636293867614051928444032672621108253926022908671518633025957577207003093375300064787419038972884911266537355659340299668817929682303486890486319765278558835901484595701121321299881306200149414390691406571867132599381832419043954835335699631420555059069943235389416499399665779091577009605997395661036360547905374873276223592722570754881640244878401383341765994211336811772551714799617596311562867613366244721169088456168998548437622167224907366025875005256876686009496522723090893458207991831567408324964794403119584208199324508432835688248698839943866062151212290394214020081126456971439000334994225808042270771892217666317116149380772556056773046365408016369926053357619955330830606561939211553452713970384355455833239829031470937393526067777412404765024950337549046790424009603868378573061377137338041919951107102534490731336897748540441959160693130911434203675821531266737230395554913434138526834495758265351985353956666581844828526045127008752600033221710835733491842398335760995979757157164591836087078074545264807413908318382023587255368077399318409314688348150193081419149021719608228700768602130473191993705646691499511784323642681420217628310313293781726887220420012197036415922016512408921217423479375521573483663110064935595696468658198543324694118024133866768141023349307586092512015269990698288841650770936125531782827186131964127346819072634388791083601915560610145586580827254489762915705065333419519577864566001227125777210674218613439849050542527819478676603852160842472579319692768962355073576576138633989374457000178111787221285329443216837038068874590106739527674266827959118506989296749467655499379045278586449592383127119692035787798665079416620447964624853672594533735182875460249853522971528506818479784098864904872500313259072496046963239482015270596520405310390625227669990290536673028569578000689669722327359460812475237270858319055877450685220984391504206557991325873048076441899485716884399585558824931106254169881511890060561061212691534534689380843472517337296152506054136804628286443854762130142767675826024760576213670198946282708075300242378633024539959872308790367088301557910297213597791217226500087774099791197179401321555505743100419358239576044929922676153274599691254299088175411642586080217195046270299184930703203627045952410167455440742183292249726357538030605218829958145239848218126223813887545017972492012585900485093680443606238284361301751386109958976903565916172698733261825123141644629932479318639795675032279465153754538815616823760912955361987292601212671471862840265020098228126413364334791473498690871615631691330266352652538116972838562097142052315268849334920217874621035834373269892043515078613898295408555017356512389858337363148412812044791634932266223134256398877617249609585822785284791197076904990932875621231913662327225175665147751371105644536680290741510736217604178698129009878594012801066798321759472149765965951738156365794110009472123092329597605942720077512122227431140249468835292271519770108881300047685175151492850456251213873270821212790848646786978928531497353570251965380689334562014966742464897123347649856267277000669005304358318227532192022975317083308440995785792847085523107321846662119113402785981234245888354537511229362417785951358160089818606513331513846648184086720917988298197567094984774027727446397972625752118889812018292360856248320705993432143986632309553647975049161838057481902762776905870360860731069972198393474778501092975873534241766059466331122113585988153099833412688444799343715079053163106725404270886837472822407878722612910948138755148109846759312847456296627756089639252330623124922351127178508820275199070614896180668043495540936027664257798517584189070227303012067362433484717502331558525351849560436122496476025879794956094392586467823647444072999315159187885644885091983091321194063758240266128950029495124682715193570597538444275545182281870422936421061302189097724492519337188167855401767181015215235400924629405115242574838492459527029959996447804966373118792260296928897507209769982881306410135822950433995934255905361497686745181989719183228495529894251809612742187474250912734373176323101766422752962958329091109562984508689034637130878423200157438760780893972632178323933644054329633065170763692648506978664206204757883209289651072640103649291557174305509962393424570468306757224167312048194661558962151218856521405590824595089747171454229794203908506764512810268166674475062497507227937167785404871643196057111277295626848618151859146437495848849721786876406200383186210248066879159312072429277087173289970821659927903206979810852465800079697804907488552752095544072528451518575915312564118905591193825903616088854465606481362023975979685499149532506548988453480344907526847631047755862969111394622637773462184966987134835652137553582268609263481202372831816241445165173743129055576693975582751247012321009281554026373931215103762409677743674038898157683389127517103949226054893999671640692264381096188855335336079315840440884403888364058178189414631732693607879190202996302401016458290135777091189910514293576723467008774753417114776402499255621279365475545095342348638769779710866150140690458649752917401895443922798512678432508866839142637385070105811243571268561853958010600183067904761738452928305250355009997223790930471284013291763119848126906873031557130331377896398385391982984448128389925343706470583779529554426989196060871689937553849858209926968274642849677560851460806705902031185038858657725924688606311862654386307844128134366588988075236008613640951241558112185849734773453820708985897878122889629890791807506282016681471862608864241286688432276154214905624989994452952174834613515062177617827064752443421339464565299149153780451751515084858010778185976199733858487517620437159762381380311414314512746134695365459224119329375546283829236087675357504666764074282442559572841885069368350199654283076308654612450068014957485623407636000453414920299789105054003966084334422095537046713981217796369306465540849274303365525983844344335066389418827355750148770606848722685023593763942660032023016090275333021326931044922853299166980342957196101493232728483233112753668487108807316957624668096883633650560784304126522988281834635852537712768839689095314376784331505429234252360675608992836846820018003548801797999051347232887323160516379367403030246883751081314715795438602522699461821956062682670088108492614696883641002144758953555104505424252009909350203720381170087696429948672414922718370215900574071399643910743085208508470946992157747059784210637174248335759193924806998124475531157408598796690446362653270663694982687794861840464048905908865468435978083435684002188190645607034464875417898834478407185286190811806416783338807530715444778060657634978193515498980016699995416394028383486833490022759554185873232809661515654146589845534496693657211115567370199924985089648292069003931938026052455486346163441040089122825703605558858578081205445211196625461099521402416080057687697876489193164513775997504067947729064593336377379686433030809744511861591543795774050990595093134897891770601973526231632400381313763771704523396505894771824989450181393594911379614232371878170063223093229582194527405815712015484797230848101347556268601945550285538750572533558862298849723872985895416140796287609070732018831929463259484700053391514506681834771647512520183866442732311748329872275961418339956256408989152728563721448090086385150647436889564103219897274586806074424867235265921244022675672676276657382027686074246552171641049303935436223425231021064181887177527066009345306558845972528937338196379313413029590705296833977266507951460189858820597019764596888665724418760993115255521290745152207627014659203010709142919424721067749986787614223026290444439031807045134028135352419238405362244120189587058616769057783478441669437262477780355835360851120297860197069996671366467807151506522968109179410056379388830301864385825629441923658607151109825627876614366682523026397263081534177926328101027970010427367956656358416068358345521817608492187399796561700301459412985132862268542612370808421921477538685292802355693919976041118299657932907405546192320444463413097524239681110475595739744552867195729995474842997075789200403792218977792498420078310262849517122766181960610362841147385710330232597265517988127063711283857662213461597331741600666440823273631388398733045532201062673397159341745478564157023904664164433819474789039656536095445216039626248750079782391285110992139691402358268037895936367629009877849077719252430973490891779504893919103850342047911187010170927920364334092422617528545183022765380307337964097510830829893140459619958322389255836894942440632466954021261965122765092051690588602567819082483345116688379417400413012068849978729127301747645517129932477674944744776528057549845006498417999693800127199272452432576547999650217335313734552531357079305394186274567675047348174976375083140531866785894612899256936730733432100013873707875373097864154944594960716259958885330789102326870792053190346939742463530416459583085429344211879046531608764780962391808683056343788566011737775297409583507744551419400059977298930889666866016700803968014917050043823605610790635577181770656032283187857491357807908527840859710722278203269441079860806429445860093183389082293668316712140314206608810436015184829057603534005177963514606752201629730159294274928162185979395666871063595941811930732904492958435265287657226163726229666357392431872304217123360342685657593891945090437853483250820547108997360016383364695486440429862371755171162019519168602497225439196983089698529186472047262660148091439491747728083579414660463330444160836596554878456587519838926021341725824130715903812042594558659018622591589424360918972088251373329516334714037872707786795805580057350725081304139952054934706228470713547878068395761295954950860876701955648325532151964592190725128242048854535839475631309884530425820836203242535162140166472461446414082790306458492962626528187007708383134156458538873634015979031427884004148317768673494875116626839842199074348734739080892823384541009539181339679814499346008521807362404093042599780767249195490117699626452500069641181168465722192341518900519228820529741448379839564166605962804161637508231955952129336630908743985273078765213174017994890528655922550687140832046875126217643741777955378133388643467509162312609887945984630302983353351072467073227042173728339209110332883451125628764992672117515169628543384577511562194386692321222354975181181926077141036029665552512977021908476775992720374874126532560006076315879017927877907289048594048071860651765783216444873011917227406047937008027422911031342480705335035674300235027658664193845685422181767162737365644099545440889320038267077605682850635651382960357915166949347129511228399207350605678767898035273591092852069133112766541862945051126261073146999051452179927086135730515225355708670599786422335394399813812869569823877286719942093242988634943260614147891774246620474584082001329239384894519611021531697490669929075916688480504779298472793904360593698944378583989646081293005188048671878771691214192407202938324003958138085421274092429379688571951009423753766654779883957326722055348734248682762969543285594978015027957668492544811684309509049260776083580208689185527816095031254383282691650557362826128953086195651764651487931890529952752615968589869048170202144860546777190179243087580014452199697215457977081108704538211330729735653214792302871168913578321480746495210938845529658957195092086019377318476441122113204916412408572114984796525189380545123059245290848112959849651915768622615134506008164773783056051992577698916886237101425049314091490243867704931023787322428486494151198112654620214341857248502708491884845520665623383372804281743995655776715689447798279239891633357602457131197450152905979570838193222058945172475286703496757656736324797993617109043778453564475532598737409970171741161248836355471438731920218005681053942659430882522170363452129241832955603927250877422948740718996327828031882784670301310667075122455492568709158765806874169836473870405582753498686097682377702298988869089688980922739007630423443317295213575168871640176819443020992838530074112768563620074298412112379907358944323433209530020843750100832841058045115484763904426652842594381856331853731169058189882582353215765628897417622661344235050271826153795250669149888431458317139100745937861577970871384669451074637255147706029911621776089193916381357470839091607082063702534071393738564113447042889873502809460993951499041096103923708218839448319933670423199545438900200237264958120699167132068526399194703158736173513757265335430531732222057921304508820431068963309198001780498311371334476918928104168086090329849273581652001061090889465532103642804258060694897807312679755986097453437742352613945292104653630578003396890669959976740600586097940217694242695658963392389842824912845145804428563620506887664858890617402082193383207896874013728965313809912662638851235572372261228619129126415026971885834734282008996277116234611204544523006918233576472245545761160183073090629679257863919159269518856494847744821757932829553178206295600668377602180855762956018648748437571621800712722010686890745674028063259150653871769277157687050890935076195084279887607845570340884070269169045283926762636081154154829193045024394526658371685426223671763730524627561725623383257788198260986845590096997777536369523532246814403327053608961985622653156787457606635919471485267921009332156203042043538580150611354191422213660773517094941213199144564793219259183821345193289978148966040242219451161655904215255034456796697818103695740353721825611397528482499296702332853419844334139382642107260875448956871061774105859067726525460040140055361339356660859564185293060961765073332795845700449794183245562900643874044551126854776852372492718338973906059702407278784787802651478996998556474807267654394910693566243089663287534386676809906915092352613800869990462577352625700955452729419409005244426057851368148745138871024940435811482246057252946686822035600325557473820273408713813699030776638849393576406704924544111111073024500685001711842066794387060866009024568969272223671421855512694847338272456733250757856616514758785367399338674026327515119494147513192652888185430868590643598720596294645977402655144598259066993999573420188029317503425183327542084475115935391300859463795190053366054115519963347651455280720521275975479334353300853006875625929111903948386401005575024105125511462671130466271096094255629768252396569590851754441961421116007637535588737967578424347401202864194763852803616077764483398818914640687189504243005223108803305706437720495764412204514208623500539296915900423745762746395500793074781154183461998264814467817069721230118528373664888689708605733653325039472556317281672143486322471409486445683199442404391716842827782797562485651036038537690388089788513381709119509081484796792447492877634087136139588552108936997261540294675046101447245499263337893332668355554571814688456744452003710186228057162098674866779633618169597026542754335717201020293374529798710807488523705162435228879279214531152366476434971483138724561573159894949657484372522293164250905932405869226803462380843775069633395822819838724813306103256948326111967459572020144341456121738201922725402960608604175073910041523498140539476619442750272648976745392741129631479430405458082484747387667112499770315038808048266313840242613074170463647488962237288132573644855399654336043773885986582379796097175314885675085364155921919724978042254348325300832072809838095868701977175733746899983680234443928558726474646488418854884975843071689098590530957351087381464019409735192390564085236906787727800531866242555703971563407564729240804675921739940752986542328758529764866139266412114104698337022759615614317130403154958019883237055321875200365862732788151882240949584007891314303667844491933196453746825788860215918014988632581379308122923662370863309836416463626041250771489550584833870576137664113611019599080371586813554252200047742697555678391137879032071436575352519968562582378133460786962140328004586126683007841038578675442635592512545995146240793877603787919871186179973141184663076735514344496589259211642729714196617885604538711745632973097939685347860217544772931200907160476260616519193502199884327821690144216142790957999200896191872820522562273580979312567159327805887119082485724264378565648959736742271001683222118797551349057206585358320407097786458756458760174831854668157277381677439570580289479719520772528149613804550705681317046908835750011696331793866324185155025096587492865916526881976771473700807754170080450609987173254491396126569691482350614194928122393509657402276349858377166590374867381820718400535082776153617927544793397238190268036859880007685226487876576092718315289521310930169135902480311421460822547403572072344595718479034572323078763102145685845416218185574412171080070032548779824734750767146016553872838727336634122934759897514525458933400746141743662236857416545359804326528997032373073660270796027094136391774272682385986232069353319123495673457475543308133166030490163379450016202644927030004733485014775067780288700667455208823532218032755443479951073453756989999756254447440887265362039149876533063607908330499666256810823175250923681676105376436179397755727514879633421665849223722645540876322247526888968479422895089374777288438560170561323567008903840903473699727715120898602689517288432765000102440984145040599806128684781197326102092074444429280271822132372311497900566964787663429061644085230806601677800650306711365984661456173086897537149638240165568004114903625210039532485744969174243928120269532017389893497029801297648000931324637198351463922862034648125200904885849032206642437105490953437515196089356848482562285738686800738021732490305399442653025823195785777105269237245725419621807281932516917437474707108443911413181435357029080668448057463637550133600636639824784727939775860680336649299916636306113970072760305283795865302873059399131988906317794234829221432757402476285282307669968439975550209401277442404610900571851768128062482840708196116551635892369835525663917500020973579065461338432633306977506044527571829604325504110943273933663056735748414373215764836569663383117413724236297343276005632681651189503822908630768206405199168562044286054945921541354519690727881712447321627371706753951993604677104014103330470904413518151433330000922913699403309687146567054280117659011630813325104311721407563250024014841121704828727307755667645354713870303139252299536248497745546536502340224147546627127608030556551056461567159407973213013577861685678564478203113786142749086485593799563144352385246139120232551327616391267881671889879367356550353217908355889401471846208612362988077461818152852562628982885638638512371025034883619921651521173949538776308668302240835210682068920201545076954846169223566935485298160102841024827473664262297608756552636502195027481995177662514431693528851727900620189732620415494129448086792916093137853175433212507632787433830713016780224154266130084103592462079921033688006989676342148638112366558975840818315096537991579619212719927300342295327378623139418558543942276393751296211010524653225509535749722350507121281716972002883382584876125890218875541044347682881065696863411817080192697849011139226704527940614665919766925895208368748376812560597091212994478882949877717229621047387465661922969745043565946051145129891265930251500670754700049062913898514632752083101628045452777255405496712414468471407934344922873714665998566158682030896839226261799946042634673634585300920977158865170184023489370182224716863457852782097753116978389337532801803678710473356937524759035112221243135903408383541622944912168154932180245192969198288613705491525652317634997923196576623552310422793673671832801415558385125471713578231571130625471246039629732645775003994645805798447879188102418214527822820207539605288659786635828306553188216864714592379635576966261860892542244896177514229591972075369815841637833589420125330076632156519326272650251363728645791766335116766876816265469574395009879018870649115722404436208089336704590378090819213960926429227664482664543783077695634247634292312092067987644223386696315311861647361935202516510235555181371859640661884979163695872757657574989179178690015919502917688118143814302135869921412368236148957668113466118708745647138272875397927188952801688591177719616189298434374419370921875479947272162846356632266382993749324339867725766058152905984300775935945294539354829192326072112752923493562043715433592323586076721043386339936545066335824004848765042379510976447421845559775942727482687426584936314543881612821309600194853153334853899597925698187502828476066478348027080644698445418928498422963768585016209682341269580431592565851836456142450113903029583573059417691396347365804545322668391220592943493900259503655381525786844036204925359845761870571600977656092318353338824295113967472779337120163660516300924261927068994244314067349935463972570835513443465109055312252428592929112272310870627209818251739698896367769142293329096066666664388542775035222218576476060026767972943037396982300685744857458132012445263917189057410514830956245605450555193671810968175692978473161359504032943942424181438861111960858679136115472924797615071516806659402805381972556252098173270540409912866076931129234665418395199474060769971351872752350974040670574860652089459645416307559721464329255601087053150213044886277820751548551421054846909528083386916594666743259877929295278900950552031811487579580749742386785074633043436078318669894173750034802294381330869606735366572990485397723905613972507462744451207029006547842237637676222499928150636895084808151311015323812446349059932808282020845907515336975196100129767498501536948831861624283579056657692240238620256785637964605364303223084854827103749099373526724904027342726476985059532872585546147497593652320837158023829238612996647269492383683328006431623351608351232502685837613273751615925686177697559756156036083761624465134772269413790121604608567580993244860000319354062403964635657241668524210422462784638441266746327478313368418556397610706206950836760861688086436494625458835541672257143034800177848078359172963276302486352835435702056063441753000518858101366317716654627570167350572865304569832343463548642416967886790805831609351597296586906688919782891462701205250860115686173189780103633629147050197417045465686678098150553272277038158612313021588663498774942746824652877928054771351245216909028961347441607297142671597126198324990041224002578815379426143176349666390644587360543745978606680678340933386785704741639596935933496224139958253080196090952711653295470414237423829844511178129072328077765767349067788472955414335081514739325136581367017211834535737311465194751913977950668364977777834226602334853990119967238768858114172965427770538682114309378133884634148795279853670227721024942971053568479886244677109072453355671725316758569777244120018118698647271720419485175096482584212826137483404778137235381405920026859849113241370035244384298896934813314742718045210071093551241058835727886646575906762767284884310622317607439743816288776495441511114058402063589782996834071626301622448052132654008544218208534424165147069851610568838027490419837785731250360363535991980737708658396797639631450946085725489226161813326785433045185754043293777395724114052051572638967765832464975536310651425398288664896676420861488398258735252796664296096008404429137029499451496808138963686470816445125843345661581213110635012709680697414550941585343884622584063492520198560717229790790896649469616893098622191382795135954069787162950132501178780535979122687425976552676157413987936184310921978391604347667019430476184096177072235031983958073349724589510116376177347203314502012884164719714059030899129852064577122019066944855259568356960335799414018299384502243555619614865919443915324482390369811523885178472614493816392928134990002607976113429347264965976182861470794409387398323629330961783639415101070230842770477267174613428865368022609080444286693759240685111684015461136936272772453247727817705037894774937437176694426839594933703072245742900554818126453318340890341535033446258303731735830733162359739231715411327651025206106788803468805120318488906748988342062097854223887593174710176071526365678422837608879036601384974070727253450530657651596540666169373820567187641056151373912974878325594155315149318085839359666081477874043620392953465226352417310527137249579610544354020010800184015134575729079372629993943454029746659481805754314406583147848706930689976032162132880266533971672077422595139911829034193309755157005001385141770357928169952635429728448762639355922616403358356124249664798036134280375353273467792931184386700827974244302791885821058262478463769264412896512241682032922271895981212930938913608874768696236330705300133727105955856270554753521587273729501249843941613659737907925668363637009541345584471044924807685406317814993746389990087649413921702229449533690621645498194908053348088215476589639099145708153887523462863481801773858940210761159387584663414220716319351644693491431512529952510910200194816721984619336108255203741997913840645979790889951803149436862226919037847915014278104547697909474967001048201057340701188227352243596787647344015200241540033526308839522408960815550888077159870614119563148141167991818628694144768940654113885839960535587813436013991740711559342964573173785688412943415981765361931101439974621055153682930265201443429837809458836767024792384103822329219227828387462879599474773338541104350456216079824431643163596516946224702597668360035965090101125035814648606498713833124100013076963146932864491973280958399496820929380374949326152690311140382541109353157636521460950815644610328435150366333943046182978557213951251601439009752619219296695217567585623157257496348167249512380877749731157057242817752055848128595107590772743875577670720846910452025241001938378265588444299292847990968633131533602106847712492938681957555674213745880312670003346474888685117350354238074246406567152459336327279801076525518425187365381003437034469976945788982149732710687926196889124129256546525573610343567118556023209503601655071769262343138899292860708487146244644152217844176646130291102774015665430349259840282928289652201054293839846309161118499440429687710811707464281264946227206051827500073754427869165498128180035648245009090231669656358259534723992569883326970047933784598552137685020845265620503584957754382207710321823024011767685672315773914263375421879681300093329734706028062201194906685840342489152447013966524527185722282924240390194576294580865225789724708805688861991178716852384237436355997103524814885338962504982255527394839091323794284618548141255090598299653340905295008144943330667048011135709153576876036687456965063228009207975438460340449068338717271037518870162704383440609319131193518644167705852639576869871296447889208059874512516517617951031975588225228708860277750918546365819485040773942444378328842105198171321268813993112098668555749177102944465138655471040589815471342873611034296257175340889141176661322560267216559945344385402763564554647364332525113509712967164837730989933216726865317859961328349711609030015087832456963148246470528325069625727277591149932120485162528282872867325859038460571635809567325194750683609886215016106687729639386709704551304181281839662786022669390223685370484816781304680846314346633896086241717796136739613072240932053914162705166794475645585286685224313522251662209809324142801187728136641275616799239772934581799688600611124890497631942180084789531317223097698743193314879272990715651333845902542160847147890401506799677072415809550212569910560983867249129687857986250358403548264799637086312524336204122427276064733786628511200423935228408810874562341147592259237678517751446114027550360097858623838448491548106099038325277117456023820725485592918001717679369712880589483573941526953664491696371848470216367056562370456227402575620516742978102780837977402569768660136933415121532306416917689188837155897570492134760877381810198614294062774916053660393862047283435701713325171770844772704229296103418682742173825500802852995648843580344366880681713088613787255846373559066721359288529794135960323201023086278888207706383704783189197883653694762840322439090678838479545865641625255669269096472686320819008045535823660086870598191362705977156710000509146663262917893057590550437514700202991198747545107742793962747961241326222965341285411074510827338079120651719734014651391305963158494393183475491087903037607082322900480530155074527444415524279060700037567833905526864936163411595906965736416571726967784620709746559288605122276162485766690317311645174593292146488169989945318050662254241435746757829366196740978594904704256989352612670415398637569640075191466523765384740905202807587388166850876345270282479822717907476328734388031886835288521751945879017291885092619521467176434754590065296210539756573539767098689148317650092393615223329593741666773157405867989979096040042061301201553644941594553831871228719477466055504700502035685228202465799654872116083097633320800712464955404170840735572926313877935719355498067906192307793395146685504530058130939713617598224633781115001985194864752386499711808826804466827840161479244591466163856622112394207510329705507327299516934736590567886950791770187714447445022909079281552727550903137146030143840059028437225924899392240163743407039742497982986730271850895802230060951559113825233316684817285531673099728632496222979968626557154874989413906291415075287156504144254517736343222443141226031072657449137512950129357824088439943293206913704113767564604428761313274557363728072591397705820387367211827017575748821701245732315201352230557327059581093546823255376892238159060906117898811833872666196753172448738799640192236991901981837254694747856732421282032885735412076574278233707186062813088711221667803867684096736025748631930428008564278038126803818661043335393430551160900197468294227527100894867407630922503631688981579919244649878001787767727319069251841166987582037593713027303478035206724676648528784069394591210066586337950470703042253144462606713457809387749550590150923167701206749784248819522818915290662795699922769878988215432714662215911855645240804722176853855984571477642278343162637528716468884655975907689469451846531474316485033226389923326637467550062066409598597005505335766322427009633815066861033712917579480834643152709307454526744642223004173501129123944776153060514123624862425844080939499920086424676280996302013281414578216105517252076394653282179750375112545929693664797214845653327271870831700588859170770623592585134042341605062848178688726221056747662063170384798295395934625853586559616948120432876123327531376739635806016260082932906582850566578098691789143200069607528953306205269891941139020745846790112856379492853232372703577351037564719978131584242782612901367810932562130960001173827961358330618437871999360165941668465463096201643226438437397583986304511787479413442942642311789879884463363807851562142154315223777849951625453633170803431070742519664980238836186232854863310051567236242598345231000577014473227457274049784577475729481962274802171874390142266865772129174578510640766999773167423154887425851630127600351573983324300196729893805697320743832616980994010932874474443718325021947218452804480651200358121418592495113837042394484485570834930427711182388286713328280136217816632594200417293692302992262295400152844756506154010353506029865432929196402841601202916519241120009127392505476656737180298924687911909504465748201580321717682490201930072801293917351916139717036557224146041613503576637877661967489810801597160367918742159439169163535805227852191962725036414698580752619625800902921377727762104636037171828326376614112828844634868756667998812411383674266208099727138995376998938293823885487872894420447953440813444227811944222394535568561178934898273682204878101360935105931122485280031117133971102617251357144872259213474752878291415850103153680079104957756726244978601813638840590823894994164469189252959998091935266660251558340088161101898392978688116839943765610811138393432638864722424934360439719802908048702599111204646668821419705302859905352478692901205351342923280952521477978568739180677263616348768079393317238209531227257305353657906382260128072666939710482346905351696016072458638883193206720830746444142012364380752811668057030880484995261191197665939252758886213977755391897195180310755699537034198621736226162925105160543710970829904253560463563353640310364809465395596521600836549044900509530163482410317359450846611958575478073401349160744585369835353689068614296958836175789842004059266733060542379851503185857116408419949213794897667378414604518923112543010250793000808290432582844635069209875444659998256674953485705590910665932128269760619080943043037335330135144320005129846236630685052331486911836404657366372857472478738337265650906221564221467537688317028004298050754356187108562805787126065760010864056866345381779421279195662132706327189941785375189605582089196221688578942047645440070938721447264107494542965993820524277976745341815088633481262106796568929376980634004700913968246573881857636974726977729020393776957023072913966247586530601970253504649623337919079996904628722513319255153293339490717766914864229750125181028176954170886415990549110288353110937911162473274576008692136014362536236456339250454938074414593116025607810948779394397717543716090561635160243998610652100414238794540181254418722135139672364530624810147405777409503729382516311875558017135244304726040861927327858348605253283635755228836972486226620113346175801746456124317234589034612350447524001910809043262803542213104530052554035129981682911236167860776183995288140917037839933096606035415585611472003912301326073126550877417735936108537331931107018484613439055898036984484270746166168449374849334823550373694152214584005386302929014569791844325566956948777949852266980324995836385337994599864945475604128649918707862463584806161293852099792368206489392296636160149055218920375201164658311863799409760625511264907921329300430232654158120680752368565441540210601118297147119524502256432269995767784827705804748054107639643916403364468902256751587147514497392037638074908616897724540546469592866344738236248020455928610405515069943119421443675820838290409219538488082075110665982987410477070290252807097632982191421780795341827227155722443102929083593149174702915288861003670431119532364618925141430936066978451659490060548065167840145574425019217896470323131868489507832854102607939156126738271702046400491349661638523422310653101471396117294750663559324482716907029632026358670954573461010912265829695606800590212684144952778909286490243250458343913997918185321679757173110121157079312813274741014690696995806648258668615001779136991025413928771457809761003666735665852514220093603373993729639530755922558276432321792984941115664937134848524029230776488184998347102840042316343510995795439084030620059973796501476046925404438131206554803137969911705867709818655984339492679214248693718389959186101840301951856049910554126090175235067981636024538375414435017978256860787263510131450296294752769159491131200115237780144272400455007087150774420009516402173705583807346210558427157300120778267585612296424925348813065591044809612032490458898513627521118993768689399822782331222852222739775702788306684470448712861638436440254226954028091858143838715249939421055284595763704836524436652588057140852291160932221533844903921445140346181722551652768252087451278621435298864955211881976652868189145969822856246506398023649164957011922655729782100270343240833793108092613501048919617837351041395692050381038566427755075878404887714622821724261385281160082495043560830695561934520615843381214871184266729932823127150828269309983303009368984553769769191667092272386551403548174261620223722132678458779620355498461998873002780254972203080365294817195753631889025808439251469968773885682269207863371048385700191474536848229547720862777183039087986416868157231251477195027211899139322705882742039598244408679649817118465174352406095499918045917290276676049664452674223656839487789861958213814917487750568174066458856487820316609700826303027266364735789328205611777132645401183384577432752311308739050701826487114774471308797799069326994300715565551670984651427940629678672418694669671089289642481167674033450757254001736843729741109904540655949080359997968732309367480373465511159938361830755155687616048933243255100935115186730547096825710125774057303736911679924942607139510786667974932876959253516204996693247258305120900505328289704711138256245418864310810221431231677144515527880359477485580435395400058741285104308259473066132456023802545262598818530628161164631443027497667253601003971835354045406948030631592809095036409836679876416654641361212023416902153903796128822021430747154538080136262258906060738332939608492397516907929156876032187963970818685006501395053309710173871932321730987722650708130157049917259536734755798873374198507132494257363658811498908584805435851168306988347962870455519938409314227632190980820849451132037773232429341217107781645556000097812530546278685691730912720844360257485175030198538300371530353708931471049531154744160198362445130110225654103694662911820938015584068129690286396326503369950581651014244160751979135505856522305639525089367367370998619266946644572691307875825277095097457141518204572887393169876884368258027451143506331835139877600766021433237372985859721041090779012039148731721327732910239692577899183491939084687428690005430122818541486376953514084599705713082666395900346438992372972436212324533787631018341526094834545283290967802014061567136120477874826192429002334707825270595756508217126614804115386737801583832837245567298014919951724283715265179096466022547038225025554076804445882177998312926132764671285365899656922224780611870804555935011106996123851267231394324948216555364330659110184764462097258469391520464442092511210865220370193481532688416466500939209448540708821009592166786665231381640248560915610060435141807598550119394585277071596947354659533936893973051889473337058239854755898931782180795620551841584934505182302391098927990643779206728799593714206815204262808519278448637230061938211751895332865416332262526374686134419782685018237569430510143869164870640989334355752467615535318858390627953959349259761443780993890171735026855997073223448236050268099794122503678381450641520391555403963880661493852856327535279766303675900279215038306173059416856001894182825678655327217377929717005324559140732580929708700031658224690229758637938633874348143683636269597281202787379144343242888905452837102545019168928199238245796213387302976881296379117066797480335553120558225519631490180224577636884737375829554513512558960404142171125860266586638567843957989819826847025302693835201539171045205791329695555412240556489840211467811880600245913072633667984461067179388832429711763505805348840647055647808768358684907904606364959942947783395858787471825664175046445707937193698611090976580554211375800122919332675803397888903828875724687186916539206239119098346324421997885734252300086871403626708652532950628395298426019054161977755739526005519605648979174979644187484743203199769941109741927883108660542398655211065202530931316459185776647462387317517113237225581845573260060151044597957361665864528613319377691774138949946304921561010693449204732429869560421367745068257693956509304321675781180196506712319978452890808295187656109077805623442345682266209420219333930737423540548751253561458460853246985188475844489660528224162520250521093661651383057534085257220205500923768691381393043056184418554601701091221021235698008498818504167104775069061714418622355077478656659873182091242678397863931470176060521748838007532639198001842806739796631078568933290602526977106771023845204086463672712265148782252645769143802547813843966966928776750575482550826155403924643891256116991320810423152807818928832675568875405661712319593245120830974544534992830221829315054704744164651516749070991887414517325635534026174083796761806326290061962158520226888371663919320317393573553576275274167504244390486945444198728610430148156359069789623788352523715018160940908640528922690650250275041548819442443457676562253347859624673506720757274161061787890460297729962727348543365089613871025786069863979983623933264630214952908817527279531088089094353492626393522407653895514083412609772270753736737799053369366105624100565088775021607195236058447055179860510606077261130430971508167733349394167988259418886896523922944573568665595151363333404700478738043910895135312915427200522495540742827055319632787310070593296306235610652594007223749318391570927908288272689638227902564833261735014549315808180400255635231716742858022820044764486285063396699704256208724803820627319688398642388370966437467013501246768274297833643370262390354824075506487380529953661293082223710266520171724957163136313424757336643279581094246692048699264826203318975933096714468932179412376307272475363749911789556330275255305962629338308629989064857571237852541500082805373854852220283517578739631876295440491382505868527330740751463357149873206499908236723647574861803563679908746674633162351562564674235050217436026715042459941686687818531413023887322506482736081594641280821252527572677538054608659601993000898619076834121419005977021026602707748400207796863863873998417348487840523127636200229870353713563686083063650461615513809262059216234172863995144597066304219919159966253429043002205566511519337113318322968543222763131014727572878091448850768015543979926913784104091395409220784824378918718056188354900598513023246673995337440354024511819420727128828708906308510586152004772888070355824053241907236184644416509638203683184103539854048797160931947824877704670577613006679966105903822359142520966905231085037677569754335743091042854069224778409744097164204474047429576795613525900520094291384076430680040246653697836675044525724118359978580055069582612693925583128167578103491071262342887023893763713021799378476374357508890962146184379526358632661263657887106637478621202051782311388877500700602833126179393259573313283227351846390100844967747433416840308407627112284231591717190769844391980049616984097019321420897476725921269590267450624293412479969678562812264248600084881896551465329527956418342280329669466156779891348314001439519809045617937611453901188584442193757956952674365922115274972643320930313750853068677846151472278868371961001426992188303006466855571520309307546514999595394889398088087533933054972402825286984936504413848170239903532561078809934344632434890219684860307685866667179318275154462502682401035614388318067955160089823456111729984882179230590430002560053485065453831166711776590102797352682666208978383794229954774429607388258115684661113011192139775178340035552267226310399970223108494845934269457441311155945268310170497270033296937640438834914615275120680620536273211046040416453864647682498930934691469768708875620298512191600509820191051896471487690233729106046467495692888319172933488602491329476989505175853370428147446820840574019110876985373405247337524409752302509013358762118450515604218389849528732990910347024017519093101199436955394460232491833066157973068034491198289663583742583962333254958461028972733676821296312055510713773043844677465328815157376432909311546714582492413894830451170821534498323322854631892462989163430196045645532250047131969014910720296616065885779697982491283324697187683532592631735283992556438950297475629829468931014804527995974273135070754967779694129470327105557948353833302214672882595073953876044065870008154462403895498157388090774146307562056918608895080671459294303950633009101175953431249384847440438339139397327820326607423018172220206174537907017436386715945272925047271109458630953993150483804095475628680039467862107512979502674878977418928623329539710564770627041778042367773075408782209684306926640032462935408660899093924814021840015122960959612739539402931041349666115591031508795109765774608349088737017184648280601570782944098216874542100031570178061314035335587557887357014980454258737730983001596787429151600193222081865331057913065415606357563327608654173975213352557347646656077300059520409217502838578002245170468183853771983398847144306116253764507817759305116388075859591933172631737521762352973303047870176000481195118295964082115885886458033172123006771185633031541046644812836139179736482642413121428666128879545268900562772355028071377750448225344136823132998944768165796521055775852546820294020262485404137559299505748210685122222479531798623291966625199617109802168525728792524159876409029860410145551241968749472375240333743297313333377380892814600144920387612131187171640070411865771774188407450120349535402662133360296203590150430303441660672819514477317224913452131303590528975377313814080137386296692816821529162499297984142253740115116456897686533166791788702770140819436387233942939278851699523308685963228841541502163127221721351989149988722144551974942783879075382524165985749410207733909124938033101905194744160947709771080973405467456054597508437246413440179290461383531246485133727113326083902241183523605062024076060336285756327097223635206748098936493281483953407296744791887478794386448782782870917989051476122341097551697688889831905504827521787279832280490872529221508173758784465351472741251487488676162876240221404345814426862192117173263167793580767901872211614882982641449495366865020724742404075073236948062831075624585889504428287897106662541176316425614795745251330642078497459419390840863999773268728507359342856456127069989195226182063913025202935483712729416760029766020013858495844308580869006744371150462371708253886465054669552092407729869448763801397781203728235062937707126605320866492574103661526971715957171368915173033961890075596851153021252841074682981631589772882311322946983479461385251958107690038833267927255672872785485853088096684723290794091579498109086408178544359943115510839846497698446103277965633520540474510212651650609547562373421274714812130817355174203165307519847597218180067373976060971030697103512038237498750392064726670286985733514779616604894222486615722684707909521442903063081390958116231324266058114281894454998664856688885987092429696239928214653529080152429426681867760166463786504420868905306004882758848502327727040916090988738939381634393814003149564116623270608046672677791357934530188434429935523012531279485947046074093761512436107468828112830213392265220259800082456808201348839709542905836576018046577286859935237745174819256992385647040410218819722510445207656173686028414084813116016698341853257335730434610233757620500655479391828750054544062446310963714171730935349301943715821980044914783708839802203937261585036671492427767195145965327519365338922624695392315097744069387302831593178909839920595491872615920500913754659736976555242335951345834722772022811863868002127764380818565801170053771600029915157796110840458532277724738251950029172356340812294752158349868495397010505626467917024888607421593630400171002955648111385129586623990488922249053549566387948221453486232789307727449924736405147946873845201341337713707330453541990791427204131916827820478399666981451843093571179967644959248319532010616196664779954752682690626613080381413745460861751381997760623041931212385488890044688931927406570609711418115375260617285369946839649924534414272036298400547397584032460644941614545116536636636972190238738567107042245828903069304476524417100842764079320066226681700583138958694894072963199986219771189426863298933682170572617228173076874425061466706603343342580019291646418260128662220576612204930056531642356049415282590533077897614968374580389489417023395844304392927993032384272555923960971572231586336303556707899426791613349441122878766702894336382620534819214181897595614307008423948824224802381774881041859916753778218951628166857565695705509800882330918431113591147630744515248264774307212778344188348100921476629521185756039804241188615056709888672110291599034208906715850722977940998452383490304329286774825531887563938158627764585937634323517323500435286677742368809434208717285328581506553278326379509476950552330488973329383560215998569716224848621385082331754491343942603040928797952497458118597439862786233385460058583517495556231454935851229701100379762830076321208338247174530797498477100768114717055454572224611885403248604772841130960217837355247617355513622560293389345200530208699741613047078917468705557626021905334409829514371105009614033838415245904385958704566639758222311343955361036305465340858956050775347634039828878767288161668682091255854039306735149403512873437307251932398813972181662789874353879068367280710904206999851234248369067006583717149824262857461376554861977104941898287611385797851367408425842040750813805153362058721240538989459671754219871551066011411931780056425848132139685273326423351160825434577723802221709018368443965818591430429643874068538186610801575610665838095218244395484078925872216328378484915016971184501523923613108491558344824357937217903360728490126503821317677683723410022382308098761375790176227476987004327735523502089496365181061489984855102686307432706699220923689726447970157115319140664340441796004415585721763075523917280953285774394932143679681327456572489595003809716780074924679317484961190889839581736259289623821189914869769341657329686267551976339566370862223323022048054381859865942313043258474650753677677874404829077643092159185907787403776229753166563397500012812574650761412697230702062303065944821892164156389520051735887767450317730368576968955534428896691728255362361443113016793293942161138336293576924935413683313223793687902870562900834250278477962130318383249106289423879233660395150739011767200637746500640771134230470026458024778998941921037928680986596998283064355999424358397533545034125575008659523219084680425430603417853626318956020020697203099917662291496936249053710809491396798991905653963100029402359808098192283465064188295762601137083770184121245240724169442387961210318244703965449629934196902569378516865411566228701975765613356178132944093755815223395266766343440364263505218129267859620215849260941503994768631196762817230576286245636909686401897004410507324804486094057327748653604692031306054465223325114141313688999922733387551368226546440246650767187601522788977498531601135559353657169284892019316510548965619766119871371573403842932224707048939909674330913871669094607179648176507828833649266819057527400443524369833553847175052611391092871721020417610771470881588180512672377142766144292455484216609641664575221370657356236161528635891150626812200448348155143991119677622837483030038849938218195989052114057505023857125233965930200448642851033899626800401370555351143967897350949291473118027822021997999510240632970005415745504744411063407064314230064682407578004416931721281169687245773027068594062394787906093804459001503328737895786057444698716032395473771797993893467265860677952633530347860619607380434948541738993555136551835767509958957834227692961487875714340350815819490478879771268553632750534300826932656740555948485112467835514345987963114845998424953306140359914002031971055075808797431126244195399214349754529396483542914161322654886330656541885211157324339786124944710898207185394184283016331301558095101171237927441791055605466917799708783112984342170325115597930210292554902528632064343128106918882075414740330347283983365056388867422733200777948324714970411565916248369019043743696313172073016464972484290389392425448632909581744329495230782248023104415282618895329082256656187193315235006820132172754717203132526751561829863840151777547139939059039054712595990212305465325898706258842677004206948974237330535595914586090722783917015836586948940482667465521643295460518825119278646444666077926564069084557197391665302774834332915152775088398098482460458811101300339401475047482668528895211090010889503777405678341850840017755051647132054941156430058621484180889305657296783944125593217960190980639160955353936543145582580402069384083006482577460789546108498600515647584196858814915865675188807455951388213406836577765973860804652978201933993150478218316583008466154925961255195950525290107429609148177862228276403633197137731733690352358513558112514403371495246677025977300943333575501926730695258863126597697471357772683099330004944066265779675040290612134685611529077441823714831222687631427887844581821960877625503359286367629912132560008683776936052330765976023596541012049700224041300568742441469977784640267798091787160857994526032893999191502595256253333173622850508981030136018243398346495679383937274791435952073743827722367635502234147119157307022897627591722828886568268485635710836517099795043238263887012086421784582833564052829390085890053991957367795211091437986603853347932534164836372410160425544639502336091876744877974018082534553756997389436548250977272265428212427047707270730384654814448393427379404404157576263598927366805781525512307119427108706714884335805039298707004275867414152858174336473354928742854081269611820131612408054287811052788135597386892486882104714001739418080059297796090404032575494874311315073179756468221060606074718520765048706813478718125919578599447697330557526534373212189552160990070640362277455868964105838725853941566627925259580894047720348967519984865995031888148682133944437527268980045543723366490275527825527463262229919403287839195926282590474482462377439957496853283653411754363779716901952542346357805806748150420970109717066414594032795231657588801039669156745911839164569256081696611334459927791406723256862284051135380702341373881238167063692184424262419318947836635470297194575524480090233470459099272663855079904780105629030137333290770645068836431259366643230453110185654271190021358520339789311242001770783515981608399637016155123633205266350676028153846487597726024107686191194468810961295915216883199209161240079086268134891894689742388736041280146796022925144223221754702912910837368174407443515055949909233770052921639932186357618034492951873248777465712136242077235938111672501891947600850542636513529629066983315674342688820823385915616942177600112092040846065668890012989461802679922911308888679806295917037943489450893721077458242518961991773352588226804209303161945486861531725825802934778602553425031140230183067871872321659149958057198277298284289107698427923676486676116753946054440429647343331643844617651905090853621945299894414779433473281945247441409807869374769881311344389733827643854963760182269137036243172174425862734381386270229552893557444114412912860680980163393072290758487802349406064739351164974023433788805336411985551059503134231611216132521896786429557874079314017213975112080872002971507466940203780752765880376877356211627563110311685488609980562044369681956440176234340884696671291091611093639359710920941845120899521738891288533961321422316650443664017927882203391347050182631379489187598838415808637213389075387648339519393348609370118166170023836851750118746395122920023803518118872835201077608859815675607046917292828391251553776730203758389701262221228566219143501327599957799846611429523456901803205686053816860193538173085860112989355131459137813487260479899974385369189428149334051283578238014407752278038751215034742167853421348108968004856572607696775520909979396279778628221817135679970007209146622348449184025231041450541027281065187003569086973101913995188367326021489718511131963611069661280730777886558756006013906791156163394385706316109737026454401062196711676514116280609272330658271279596634041223169717797544948275681376605675909247078696121307380700100040491437915669751370354465545774470046091058202999327979665034864897596463540877341235061155746628412382094080203896148834720646876127669411534870224854099769825203377269406010290907526287347223017432538242315411629029913982337280112410457332868226964200491097192085353559263915355628302822253792575974262790352462925550662911735204379150658179228262708119581814564734902771605664854052310092999772953966335294190985858830939630656773961624601035089353706817686713464771398053796854165831985697537625008288292374597557587424991463103489134498064233758606197486883442730130044441868788914912071433973964568582457183980319067089373058868763004605683328388266631462566814360340845297444728923966197449179806670068171512304127906399433286982999772858398320337819486251191000802989390671165784208565945658847411657877835403646919671448998427333723219007848891485498490741594673807705708556095003084321392922053007472011550197185709752320663748345123368806904439504986837914637725357304514661480577755700661220866950956789924643249170913994436926545777753120029195371402406623338222487151785143850658686396469324085675945248649964029488781273473837327533868113887932479628504760198023925312490409830788125504907172644614987668569709079649208591318758857914539655920970561468528847453722524346913606322387491610451240839357557693313790958730220918492034026280316845475572556850829899464548680032583395455472895264380648013618050434371814722029181141671770794480323289120914873686933365251395608130984771816181941087441273991865164586450623169825735511239269876978355457542665837234852451151513539476271933115308053016165897185184664863652494709160666330922168266125998071717529940013336548966222793612131473559688447806362763441231393359056527490206875857549684013192104304710550979085202469444919369109973133056934902696851224643601569743197673031400007017861439216638811132222096446887488401733994509974958427158969112499977372747601601170979836218932606101113662448911208724354276526387313983216440197716040981645470768303607905484017927139058926386421069718862742907035574165890192607808179676468356797669610732982315050786707568751930254249603470338872053494220334530054965912331506293016231385944257817880957896208246325007139615215697324177009515850216946249178759979861163247908073936463401918110405947483711789760471838366158890699313491785180165152161929992402883708293290314834108338862196772501420747973791056422855486036880175875086104619118479189459873092369842028361966458782084466683045564282469874285572878951345503763572916897903343158005433883333255323756887485441308328295847811856132631745729686705844226794205595782445450339578278295770417613051786476938387940265858036071726028522983293717298153828468463641164595615546988602473205121767713239846308440829599119487203619110132075771326398096679253301329899248329076487245593610474723022426160946647355316534870829123525738591082789427592482735203266088287668836953426832734028264901067548669627838894268848249438916548061050762388112560396115394199118489226388586442627659116307193389392513180603285085812891932567273195935175784665315586694048614831812229890423675150610453801524757809886213786010428734590105391755357387045911426173501524560749720903390289964023965958166021624228611156985356090737309639091910246459231022638665798714405148374565766475084166811922054670776992236656621047224178915722489204073320286322380873872427140961877457106341139177434456833384131973866744841139401029279887212890334447605896649651985149894383045532738852393652327112404252686000883665401345371779073095750238972368863906305355195556644805833191898979538557693947724671495746154730611721223890257208434356182177376669102934245963218659425143024252004662012249859610430362842553975503717159347986783389846596883256330951844939456611251473246607485712651687661378227683031107811507619136237596341144082275309686889782866206960052245809379389573645339128187127335482421002279210053179538532608443250852713537664024075376040729972835127651582584123722284695029659651915921526229910055058859478671529049605921673686505145575076678207780138540576334261424956560582933995924987020576711905794344661552616750047698389231197973347992301372032046326303045951314451149867334507263771464997699355812965345508784133242587698871982596561401366062466549909222708320297313455676456755264176646320168039809249313757056828545278755389819965940449757638893271014213439164265730387087620007252392150170277628229855408919629952987719039250838456247302327582817416714085624340045507629867294753866497964569965324714727135992027435226989680146290756261163534141732849541935154977046931974837608446992341991900423861380501214220264291821561593242727325184257144205251626066394980961584257250238507391358181846662857247703537252727182207940307415125388217713792066505312823910316815693317402227928336917016952109081530037422486712881074949527271530146465900284833293569203226052350976941059180253614719538094794396897241333201897012548440183244690484909759125903583993549287167657712975083192481508372728904235062382348647982132296956085400462296049756986381709555963890255241827525936058444522063816994637639397425747567793506785970399306879444070286324342448636435830840568996395176503888426021528950239508491192996578163925783126588661944107251088084529124685530031787638187452223479967993058346200490897344673309330953599711155352297687251629488221495432721261468916513005920444790834563688167876862610390514467872919295153178206837559027493897010524132957568111937893255096208872688223586704887079518214765479971155332948726429101677906033110151539342535809702904223774168124338002672215844148368889949926142253562285028834781140742482864932692875168110003888852049648648225556793236358852268572943166111102986378015705417139987949021169263001423167090368019752349345499436636537002484556904092348348267577205056651149715642288256366952087786503555007222699338385861741780141301739862475391813928086031154362269341087562364609669706021685779408649111342721779509349128791027788883869963964121329807993070429368401160106131712209356018551200292660015835851457750979886067499042034294673619815352948044798392396087517753865048206011389731728864225266716728069089638625237317026373402676375155655706665037319523229425306008777297886551891117258430745218461753491626176460512951824285782448250297421747644985064877777602076976136107803866415158317067273463126405928851971088521770216631742912841418382289962314521535824012515192237606289740784767755263884545367187147596972423916433375430608778092162766569989544098903559076449341552140430808293940736979590093865583749960768727825802123887527589437600114065709134269450398708421025836022766658917154946421514230967639932528043772644459207515477825793887728387578628530976290888067252120342293657290572453138666801553624599035196594615340292047964338938221826350632467030536484771210300680839283977642743893057831981387998079234991979972810396100531265550126385428207594092340262580190197336723485032869232402365210961259915317659311582504803515645950201920175830728620748287608267262416802347894709742719173559813809449918991069074882171372672415517056040647856129409341362173936395107379678380532510278739005230474986828960673914345049157685832569898527116766135385599196482381867528426763949263448480824933190972667170609414838383962621031149871852024609849252441038120974189237300180231434693211716447820583334559977442582128227910259305661250297869668199457424213594547609956418726249015050051049299010082523693184554036888174669934253264873564120662325250017967440283593166120581994453313638110942885163888386053192275308212333896706919429499713307987870872077180627729367148317785977936211812675921080296560717259414811873826276765982149355204578456148478545700632543263838660106933755058776175169228458267745968168720715814687136322230254670472271536527474250563924722099782165474695732191549675845036511992106347927577734097364734040138930271577005540409392761703455840088096238523940201486241787968889384492623587191679418914230230795164700268927370202985930918550215101090367115973360635378276871838872853789542466217814126658202541409273816198945876525360049793831889588726626942979314774245664322477317081670762444044080534985634150834270880587154013321248337539354989784889027964888079135935615896558376021872966501057719723642177248405060764701358365368941312984591963119394548016415733436510725620288462871076042917700267846114067309762447351614458320447350305862618849880535486190351576437230674469176692261625918644913028576662541690721979189841618382145694057980325213820549999751228155261919651264345730302649667825791599211334852334068978970195572683566048999826884015840487809553913802393300161400562409263092003082316658702144232585197860476581928330189236330758711799880147873475915982569478334162335556744181300814136387359729536333590642987030354718670521641163245452123371932205954790502430839422273531331734437066608324699076818502629666087955476487628679357323492898068611030614365473352716867604206654457900184768118924583238373715037319085200192584705954766206939730961535802761971550781637359711269081244115085655233680545109667316779555674027119853967340739562370258674211700440512911239937594719533486037223728541219201096795076511027306589456718038324827796570863174300099746925716668490256835093203818608574864714955521553675419832662091017916343767463519181255437196444185716911416954902898434730228075877759940300190793026565663514711019319550189818977882335625108334353440622436304936514354337292071960971041682645793836249453277362896094680485972463497866173277010519201738762368335181085292855518061339032012994592681668882767965400489137532177298333608082113673583892346465439374435208089424326810082806941831114875841467137481655063084433723187443630818086432982780115981422443421796244959336805799565542186729809394613331273505516141365408634908544753051285157707554511012081015421656340600570257925106858030261071292423822064195838460231305979692589027217370074863201289326620043551687192368063022804883874961933457528513343852717720034194478538519403733340557688418452700927724617915398963331805309371070710877611294335082686362721223227649737653356117741843862473026080392584402593965011860284718035759413982193328570310007506012052874379769611749098255595642846206387758183305987498571995633289924505416295637283520590787495394385962648263548552251058374010812558914174995023377296052263595860098258977765446881746240289399751799851547264923123225990787558432155868701271483244772151787432231323586101143328589580515067178072891518215771216299379952342552795995425243372887256172538238344776593043803777344630083889852249468611438356493994844476418074600168970961975495565072950249245213887947915987441090088381204051597844327817058577140680356070532514212407643810148722144572360830946815466951655220888490002752082026277485992514516534987093938788334829460067523529110533494974196307325420758637285982279807452046254816984733328861782640020338136214924376197340660464807019272444411004966922512914030640825377348342692594463095274010268633983487828983041728213465355018081853886012089343403298129676195095530031379659646825888037916224258649038762839900000762568431546120685806503789992719408004145079444138503487611027274169874676907274158594514055187515779522580025053181366756216182223571349755948456983631606482954779747568378260539728790156963518729738093856319729938414252692769089064038389942408077530601163409178615233952123500179206648610983046553070351897735265460273329655099846872744067968685988303403911562768966438143107965648945259588279135626268235382540794029291577820813195789576399693043353565776229508962269494944360273671205275880345917460087538907986142723480591372034940434735866170081667263310215539822906519073864507650687575754496167330194947851520898937018113467015607133182127532900820905282265046204456102005009179620536456498104237949775441961565075502809652889550168148762885644952993940297049662310342515918136550715345376725925153439584066585989125410199655448768215994851158032111907050800151491876243021597136135148281424767467181456381679265850203732940114931451567273448442133354884213927838118155932329622424397415523554293184202527691844920264697315018196456553476198350705847155136133817108409005910305962950323534108690832685513589803084324689310489046130015289460296597139949414112186899693785908604058710998986956331122142974808034608744076115489360637238358032101334972212280986458230685180670130519223490485799350263786126692420077109683873340438709808455362834854024092255157884291464375762613098975413940156436698575050210236342994255945925436371264946372737981586511005854491521776447863522441285442917685171709841483086594122219850075836317660555369724056734532676971245457800810838416553429554410710124488066648267058621906984067914660459635795685038257467582630944894827196195669908451273177829953432916686132597875833929869825884994785353383717831952526532835956799108870247759580175860326257422714087227630063354334617155902055461271343201050009244173345070646774850846438253113261370935889925235751592806101875431103706502996383088143674505238980116740013273377198930052020697625049953509791093947387382064667308647377794462277008337004075350426531622038793143753887202522630553794535735534807544247378218559452170769962796859859581846620524896828790150803559612504419758511271455695870573253948941537448009671980057218640291657525874670775437478691757740730439098867250718677168035966980472107501411226494150711178816038944215480244204158426298123049248838694964225508650881782490192447478012009471848930791207145494789881921833905717387027821565758184355583389985060554336419096734630137676877993110792788970916475401868809166906414358141396551318561605667251870148805004748822750481483926259387024096898982231079562605428463217842121238067189389551947424747024491425924422493776108306308748240400017362494363935227877764302763440400167117798146226028600257678371359548928397064150720265851925388594062203796115274658289258534290317174362292697525815649974823912412380086253597527450903596657552181777203755059290589134058854785530850860594704725911052465593333114566660887035891439580939507672731489864511176150731853140745999753551883228780051965402481540280380636803148135596830416126500159454521087144092114605311901937518880643822938076318297885339863486460619408597165093071583911443637084983031455322896302212144545752764621850530408338923210372702032443891018299439772689384816059953268803329022604227705704899303529505648140096779083880592197699510451779526868584314702555896597710879023521424376800100339218164648328147644110260330761510631509840005080959629018852661397307633533130805245331185393525771530000358298280226078677992695385144780345835708434605834625342318970210394512747658505660104212497144150531352361059655404350759362882939198777925803716563050768721742702414158557338633723837509124120110224537023105589674884507971388679714366575027064761993595131942037967379431973623507653357671009760640573651812768644799537846173924554258926373348679542936238020139846554646326457775999507158778891177052335526116179595478263281293929790981737036711598926905408813248421340306943832702043411887726229681363213497478752856721191914496926165093485643076904833134418922701538832069012227171515122191754498468050501341862536330160981963102666997198321536096570050794389218334147742756069652839354941543765882339571131990905995511792404563370540779499536410617871623881153688577565217217589020240494802929431383066724400774910782256075336946336358654663107785558143640254670023228697252493654480990132663754860962857059588738200031232323346669152656164966443338884675115745489463181518122246529060275157204555634694728372095995202686051115854579623905938326627379785710998541597456692603065742485651417329031285759049407263725187259804552330293006713966995216999942923747914414342853980005066714476126994440036820576142590302137176207347647375693871606328726696995224574049439612737845820399715164318786020616799032544665919920962406217690390283639489906952986389234636782400647388378176892288587470592645203893439400660575528518933624287655463038906370748460427877271587281885434633188552919748056664073675775445627982014679364737679281193266946067805459749362405094621818437922359706978454905718227539070419714926209286277162933521764067467903252554104467867046841870630246603686744595311608073401649029237959873964939996064817153211141474061006083031355556935415589678544387169407775057684536853697755619369160169023634900451381346394592079927640649920715081408057168177028646368941291206857677966276794987869373651916024669690881721179450718770209193475248440537276650763565972038064224727308162640994805589190371598257295627787899023669720056810080019344373439802112748141009712365830275061655957337031675459573951629275841280219646317703437940531864110040480694241400960036254154506338397438957905386044781370343549737745246453224287860604802467863075101362770315223576404866365302387608418392318301676052874955529628658749268364121655246104605730546743088857443029839587052535348645771667609059906360680532327852323575141789076393221915734550501226039382194678351223185866548488376130733363263535207704509204418281684211487258892034254705958091889400235188484183186383476076064000721182183992445386619140200020904136550252631132762687779430069298683703235172411207309127143230363231800802146317994314221941783450822109073063024712743851137125179407939563707837705416445664431855884745307296737891192278588772733148126984621574147330322430301963348983836135616765343529480883527049693111500451850584656738552332792394236570730383150629690565147495773574933049197152043303169389747483520658421055089265754943488048363229854531286848589869895377085150948543458395914399191942138187585095134513410539430026302645280710474532481581188233195676648281918195616145358793772930000619599110512316300040168061466844293565041587147533444710807470694676925955126250025976969788569999021298779389273258450021473601313328302860321051482001758086395450822105155524387923714286907471493522219964777683841361993405175217669490114639103980364302340379521271535053323899197134408864015609632835848051370043888527371302183247958705518133301520378539232091788622481193166403067309789456206985474266312349352626503199800347540201695699447481722027835831005590638636511075730763323431957428257720329054954034154667784354051503442024601933968557764043491083506893956715883301434586548095768385963614347138842436199540107239567889866093719028887292297194871216833167242277955660397162734199212770649223030902510104497526044418728423456064459776536688963871128499254380506742853320042956081808477411095520754119007581029902837670181109424065533712859776468274905260957174225238782467976848527816760347806612358145173652332168807607040681361831823913579255544342314258105530552632787693684836776429109986128071991310438428320360852921525510087031153072187939235238943160798238908676468660334856655730876583763839825954342198667279888871452484820463593625129087779012738971071680867592092282473567431174406713124216241401605290418119332723767765337260677211940784464875343988977697454807859294866847117837229037070312085200879834391992059744774695997805800624117895560487718982738451053844702760345175150983583794319475855223260851229626863142969324557327932516892662469913526574694643352280853879067833305258899089369499301780222939872495006075533844040638136486570474312600760949730970211834723711957725182625685850386902024879689863978870185429283333317424588533128470873070138576392455894354105011699172329799736957573633066127166434533852537548018872346240602442337716488615276542231442731314375975787318395140089854206408778142756400275257536820076147440379512140663980416544970061513333091530248342912421567935743891766259207092604311165782931698727845973972500976993957257181059454556001772143541647686405649572926185809711022284022382876959243855181372531723330358660524035234884873907115036631644467165736638625659261895507641868733169959951549776980090198378385599772544100370285280919322729788549729817265830874675608818138650664364370887560494097598214347781735329605467535058794536481772393033190950221627528941976838087907608135318834135209581746353358112108485191558804552213937424777539283628476163833146513645662293794213843131511927872728096200910638985122821857720910676614100558842070154643332350342644708610312654396770880288251602864249233788634712253925410543774767426495654984395933888522471777494474963208224814902819827799634341143485500542784282204587318529842276281160237160563716905191089441429026952011131979993779185369069428429034750715416747826217995934444134353256874039198312446131013520046500010275770032483900358377063212691021370492918254953555057423384553489231302975173678275907760265641923452695480394787003409483771384484607918203732187808621188801100861572620278322361115613409817302358599913781285853401889564020147033013907539320243104048213308605038603796283024925033441594807018693780102982729637826462262850208714057970851010481278606219907878812449536692328569783594628189047536800623031116840407821260096495945448145731400089478767513895230510652273935927935454785804945198553004026106382932524971372750777633552986249855389567353087910391159644823538919828862140854579150852793013668433969722191322083025440481568750901888245689332994962798784381355858668921537058639457519024836344136138350269606391248245297266076057154683078379644859408027047940324753740348407295435310403089062111530257683202996978049717324618957785746686342674317820565361744578242760270883226150928424255700211907573541908165569399506498614943254685759993384193166756024301899423594610957773274292279735465471565463175264564899195202783517656692111535753295005325201590750902483473394912424375589638849559849181701596370303751390642242812503021294793989942272421800803160415937941082250760102483927221601640449772937183405961707624439234943744353755720382313265506464998708844934664603917158249191097458532108618947742446197814073324418827828736885689153045719737292840976392349078794026133471688899777722063921190133126340680437250991968737925515290320378472969435348520743090773034569795971023048785845818590290944041703760672165024558347575183255071752336124222540139055933267987949321783778177076112429297649533097342090425657695825819482685191741711068975547072285805114813598166141639570668409836091602321142708361996156294222450053101465272654436019635544159743461909548099129992309500313683431242545823557542518485891359687781093430652916997224381221141038657517356599402926455296645965172858694762619731609357537444440462200604252680685197427382380968099386320001500747686132411767579358245565462065492593654563374963839540151832057678475078311349510770594897625804162516513661933139058418847230535961485899850367448533934068142408657772038599236618744999798867243423051260783146808298306007972004379756485399757004678347401406320805520011622276209702420192326931054253104851926223220932371176355088289257729208024782816767354815703564534443642902499071093677906941032506547527809522279746429707962678272460858842834594479173840968282139410309290566268353673407858988036317097656040511575848691494099645662796490365252136855022874646523419394991914655169086131900429705957430760935980001304627533596972911692708044443614146383381017460311773817123369093009426946093069656623780568774489040964368968135558620611897796172476207516604438975825332891819703532620380632490917017107527207941025295899579323510501048347492648165845113961306905623382103654363663227469339599827406601070404280584022267642449270189445024071399593295602707630588302256020168459726349490659327085541044786287410923711358348290832650651542255741415238180865908588700867132794656418348302574277771854209585543351334310200325503577170983151985703902017697514759395999099129846286046359353507065747611161738031765216309096271218170653265176521522925837888005766263179935066907788094465560992344134527233798769832335212845103112612695483695556744944566216168288095812810518650958607957662657000027268195301359975098558939804588021570963606644943125843600983542479380666395442092991587421849973641899835307219524521933120103888137289222323730418986747192566885858606950953754975647483386944637491837640579108094247602550591280448648339829062160163811290031059295099569119989294001913959678831914984511522895425318375272260241787959415210662936915940159360560361926921861324864370025906542844949207718602983243795083907237251578178836779686311812248359334550312991009357957707145801806468872312614409049668974159788646882272102606274307934668719488995300235086474058530089023864878285322259898829485962485762540266000107338315676929419689180127863870719312895053681676413815773176418294800914453358745540119399196283561508125041748964407721888686735350421188275672165874718997267634175326469515724643168543741620772646315579308506547898624049531761472606494626621612515753995360888155305000552825077021541222643634040654444283249648134984412342347937843227418240355955192651926506938759551149217903838121964239393286100332189814747882265735582526050736095020956986415295364553765957603349610052741246914933927952711549008180781861616825880840629047550024799278543884359760391641968267865948704475922586720470982633091370437946836349344765822382996812375440762594407915210610556686973224281672805575971289950179930298304137622056449392897697612567823946534957322560844125130767707627439430079094428350127984506535650564682556980807098950195540531513097248425683361235862818042639790202076986266666374788951394783352146484889542674305972438437084777653861029065129402050489784619492461695513885727076823734847733949662485803723569552464921115448839818660091136857197691711637180389564652860942645786045573069853054946483129362078154139289892691013186515309636132301276228980622566902297498249968238564448337947159968961296305575102745023602830729750471219622623374543811042650135849729844393685951125256164961147746362789662501670210934261798617169148538319555075208279066089520829444834312605506020783686096997493161030530796775273954526992841032975783698494659670318751419894727513379033244219416954383674979777143208280407210791891493610884372060826778961895792817799401554710367298309577185444581102930597822195425154021670208870423168455765554330697039949849063914383223350028450220128137516726147651425335089684188657211132561202367190268133535133610570042543899163823786772969716844337173571815944777389084059898808402111692908971110150422411661923583593584851684141586483469074703545547971509095085614870486531238422749839839791482326222866928892846995461258343498921964867208234177046132767009886413919902145000829591174864485896667292028445622750005553913951532433528549430291388166157568508079868636054997808271899638304478993406849888995875676524077530964643844711278675065581772387235376093969525998711983472306934375568102560151564942452976923605805816846326814015178676129937561780612754820544800804617303171795267316370778507308218943248928603359149702830866203453209732455622279021655816700634996242126536671406494912077677543845478951726517024332950404544755636890296121484160940193937572750293092863056739721510191980031599102580202038701218101019959917130023791071718746608847669729704250610218574767402431188305943411909327112510721699624197593106450829215941512234285168459363901072082686381531201249404416622487030451285754313768047357185633038932847990549557883006106450548673117627348365874242193012300366806915324105706736810808653853946870447735590429900724971696064771405825931580282296987685611025720198461463758202891990904747945736880207221004235444643831787705146761298424914231240682648922355888232663213063001766737229299423188350240544009842658988999483033468969615029916792896270771871538493664542061944971704801157538746776150565103142679165307339664410322786455752824987428651977647147406357155742311399291390344642626525196670419988566840119858036455714592246756267217943952739753115138376512823372946484457030792276663809652480998927297932788127850522086656822714531493087926361575093531437040985057151581209036844669626485366037288792785667722812748056370697959609706072944667229748200645885598355372929642708009016381369516284150590894415921703984089693300638363984552039109431258771517631618700188569152795802361689357928261799282496349967091233485491812778502870060094662393534321262134787928364305854750368833693016582145915554656989665883450494935775422619274602334683555527328455021919350458103793377060981018845239751145823742192894010685892755681287394119556955492353671477510012692846856795101262861545506902765927831427712660436719020461202087959250251912489737147616573176662534416223277519069318768249066088531506676749874408121048221694299079719038821819712740037226290435581793781748685649903517538378712205959897095607948149537352594606984789825452726117694731667806226401273886529554604229206058340787008136828689824027720441261411082165415884384293629144474762430747121717612501503203843501581032007517865718550270177382188667441396177771562255533689145268393943089953439444258939128769302008492026513960351653084194107136625437001883464822931481241646886350857616397253800966353489799812060379516616282079389113794940609612322324847988884184232777142879077451108797255988114722133967931453402853824654510050318946283201287575458053234849666346252376178934792750525838335961922306218558919577774370621424069782662134786853604815619519113450833459628407145988985789237602762892266916339531603489248612765193005714377711711904826076410420373594613514416087415361860333923322673403474149377338681453479558120171203911655333434095539856582491162227130701880947504064106740111704863318113077425566368524090082230008182465073125373988403101373366737652922285037009906280577583205559747277626023632343385926876330211792072891564185421866429027755178539508473978809157582626354490845558422827903138780777897892095418659166546579823582790282590346441929793814912315082346289810065748721702838351902638988488649025707604447364465899185615581176796634818929085434833867815153579259050530211940719069225095835350654586910658249621107679570276773843544286818696726343639104900475940162734859254335897898225887008527099562980954386932351595920582854552969321301219463166392366711266618340247738914946357641639483323452985836709669960443044881265517181049523032391219105056985140575666782104713931505448914258289503278846998677234922032767188073810236726579925586352165628035059826821719036074317811336779345076558574330231918782401559749155422865335857656530035219296382516963136545658630817134591194105203911339273851467828037511253519105445955143422344613742610410540284850749684580551976720600770170233243036701179010883194783794702115462923278722973147207648987381023576000732182846911427586261212466615737308754497903237556800609760872652706049333749359064772219929168160425305881024488158698859462090178884491150854572374607771022830881598204822447078895016991646102025026605470524572136235821852588454240920384748131565448310863078414261925859819328963357890992441788649768277867134106368959048342318951598614138760463442290147819526829860784210803246660976213674207344777636891233699476464065426934564090617936891403009968000850618007616868618979316075777084735495371081998083794762549566864583220844724256726303939450663178900001388445843758929553909837246362727125073863084434163755729385171476497844308230331733064988092778888107760538112692097537496206581339694650978111040164181208728986790634993284582593902424717569315875457900024426481153917917449514795498489087336883389409511200364054319734645945317906914050421193271733585656185871835914136090019786328340317700732291352601252717078002788281750449268134347204834807995086598772229998566263654864933496034025703113843886803981298655034702052536225332337176484164893452487591036078029957752375913673075344600223617072227320279923790302760195493321241648364087629730451846024702586942802262195180382218833331846532927637920544678946569247466582589362473754049931494492675777654869487313389976307202574105266804865637529832525122344774043771770723167424000605799713209595271426624976652830796706008198357113554519568807870750716184008286975049278259527512034063507409315822796876598095544439451004207800352519862972994572142597162871408384752666526868473742199167896809928611942146309452288333444865294442377380346197611007310841148943941559658603749024866307371077265561426086510415381367328521162803791008148234448296546807941570109885452670383313064664714653387383604321165666764873265051529778432561839822185656048424417354789028769236836667075744577273824099781298370219771286362577631065216917014597698035973619073222466235087515588065638317033296798288149177190183704125543821255364328302995933263063027780415862741449037882737768225869877317831983131132365663264086528377719588260630734119724806410164347970535306034663396226338759914609644385793970005999382864107523782259013509779584301040772082051678825783152827226217245096061451469253305866048541970428750123210954447097707882200702528077881956665236923165119643328189609213798856829942913708812740103599414336578401455570891555920208565656033520993788811169623431932037629446420128995727411444938990240443561707305407692893113948373538578354957559069887165656988436172112658854390611053136487863802548117699707899605857537058289628260220705290817468121978088693134948195639191583083829347251231448211839146253762052702020546286320737743645216242662208234706302329183890175624902077690929166074348021257011322297805634761117034334592955943815868917346308453762190995677177973442303014443456516461456264555381983291803035155084160613665274513757379300681300064731580982357518579448539451502287138484990956460095813523640484134460328624962098377180794039405299177584381813127117239188338512427300310309867011810729035758652557614638029820737022795681557947334029948961349446574073991336342415304954838510803058785434645487657452925059979266569892994493787398676868245820150895502055171553333979319225228747135828954499307673942691269621946170864075095281257202374759779573964335178135140872364690121519408157811219740447094072586392255684374233567002528832851793855720365010388637326902882722511754089466187769960374916650465217528516325492787933208720140249628780485549947424158914799958937721911494349144703003158898290365794320265230152404338801046908262117786834328131894164105963745155695385078661610848794349431565794963416456424466756283826926162691966531762297534817541252914568303678428896110992269083142586826378217336704507964814864156202568228464743375332216160863783217247341343932641802551650625242073784097551459807006433428664141704677031948400739479010032040511889209236237074619380236559667546920791137961062047937374765464668772890240229316569620494696710096800360020834725229874493540585945258485976789711610144403144552894159654154503445967408643264725411803515836821571117166421567327918664921575440394970590790074950055900306554217508560523934258128590843523417322333585282064469203038568691286656717428804474589345254587563788681760192483493821856011569248891790861224185560775040711652336507939534260674996909695569044213527285761607338666164337843317971835175023276934615920926075245139364893900761609465810743190187518214113521238428085446575031682232195540025545732986189831462998194076033343967675642081788551807166826949715301073253896803940562004110644521643777638825337293339084510428006846868558407423701952814870194782955676614822177399005219654749253146488776171831415500951210179309668990001606822883083259531485051559892308411278729995938900092325966155901356806056434394845755849631970460737902463856626228755044650254787117516720350709766547219891692341147171946094750091769335544477957139402120063549224956507993068941719113686704165510264286060403230194460576490901280353834094055422228912053094585344391757658312425579517939389805577634001151780386112838055223477344676146764012922206654601291344674329691895835735825855632102051233930728608754353030787920970300533329816884350302552934659998180437978984615586145036246986252934031752807367042299586531640418325950333307986461951255061604207872728711417665944504605643870063022796205425014632316863310218568027708038817596893966040657239223513474403691792526316031889730475569801832085156596023366787747480628128873704883916913193423712253351038085887837141563005716247460279759986229358440064108906432868861251255330880145701045524806925512231467210542484232390494831484047451427509564656543368093194048072239834286866908638206032347904612373057000065295454676155690789819706355823659186823184411301839303200544117575920497469531213471385970219233170486506098697379078450224910828999813957835136259657247427654924929805733617390707276958108615184143780424258592633724865175280230545042323437600257580004206657624330789906720129921169915785291230265115529903293143311156421271547185323379337008951861548220888608624800582518490819708274380215592363066934276681870963203688866988050510297407582220868289018139783625299916813482012704755802946792873617021045089217940187471527366469517137112149665939661712177080417091520426622913304892824303493685562411130424791113100567491726229558670158805406698248979549765625908028948553901166498061405916021750008005225962485715242722819355364140318412388459153657689859601202097907653228652329129685527277905494293594736183681020944255799668006303763520936786883969854805253454778662098730731051971939799387091250762885395698498924890859786016688282800260019801461536680131871385712833577857093976617523131958916048095981447476151713144349322555690758337102837161568960236609582400764507096413897829196930757587652691764996930972110259226628987752139752317858542476985132336357472176365828977356749461352536187355759251100691610820384216231834942937164769795566199769396040330863943219385929627171154688152954177345676330867791547072092942914271885385724706307423328874396638456479101147014919715495246920597390684443441506946856231285796487181972382580491567398228526940205926792873446130877402110326268016299886718075357497941785670684199327454280858453696023042678626827464356145876941506794726751099980642203802040231067078566862485673121967714277406301975654938516120449313879983802109203167828109347620740470674395394441905291980980602813182401723545668762258994665012897235118464546892513545572240605407087363678493909433218775051222962898661926014288400177245488848417379684823165858537974660182273282224618091584613525550791731767643251905148573354017092172359946573023587401514608976762712463413397352773299994694624617711589512790597373198435753185941236188281687370313053191938729629462495283050794403097718917437099568572792932999262309907663451861111888035446993326898153025495821339612904436623853761421491346586594221961898717907438245374332057015951632014400043775067204505399358160676746207491168659651007938488018402722524474951509400939206332729598374613824376580458222383269059537337008074007083433156071486557674582841221808961036189005277697926143654705481202471760648590921362409709319811621127079126885307590431883475522536059875047732876060023863686464244310656577801755904775533931252059142688891665161676441499508093036581294629972114283431926056693761047472035158642322757793234617738169089482917310880279975164940475569694255015727559485413626399589468162655013893542091605976062486672348584821971933065229321669494270266007270433216618250816576749074427121894772175735470503405981247731633051279910405850293620358316512182888852916308399429303978216439319014383901588614271769239164958628136216240806976178049107948465126172808981665633463131159271620641907175065966313599835374778614532212445716405026968558786217907415911704317095248467409002174105201883564328993668624181726370905215970827068005193227133252843127717475881298726168556676851283328964475722236383197511991901438055716632443102110444822331735736690975218366146636018367871490577088264110101712201339813257764481585022105441043805978771680022128889738722572039940111128627590481681934785443098143505963905104722290040291801156369395470106805360677420971569461540226866624467705364086505379332859235318692841493142648073607101904443342686780259565152537863289640860142211350865858608608329406418064992757701435119099525393698956506376678161331121799166537956095865080044430124107523842419789330623329084362928092041100745861681399086782675658408876613766847258770313763832312909445671382994355973094817174719697037901264144479638948857759272918181214194518655311963020115532770883079081737097331557695270017512165424682390693306271677836905286584780479661883358858250144936060790204460544236224305050716030781629389666264818772117921066958130664264757381349766661862401785267822169469407377678134094509306599967265816858824484237463845387371014749322528072763318122548381481548969649123579315674671359844366466775788797535164297948930195658882474868603339181321485009994360341407914529801555140965290175039310239888826281625556098272763774988736509748122229075926891585935461759228387680496810870943100728905529478407740935054496868199380284039889105514796686526920500936732761897061444397656641950197732908167553430287640600451870089562331532840453160095939652789911641039297836212003197040381229417380791417569239059307358115062532928053494048885414103904505847591966624957306567098053300705774907309505083742767287983578464368260143560428563294348917185894763460331259014691208290807858826701074016236635906067403392286302183800457950662213763981016886550619229965957290803614264158636730199128180350132671548175198122508399559778726094123067925246428041582044626835350294910932117369909413262019354664318427987789147523872401884751060031204996573314885604002167329809725528778878078959545335729772777746766699008559314329378389887802260447942023039462381384330827547505514565497399124628633095631520993267840784529045243086086295724795491479834094856216769794238492190568299657197668398321487745316763402531746822187268238490008481679409009009880982119013192824432017551382145596976503889038155556638066693508124714405222628326324588453404239178388877861156256539760911888266145553356699388900945943272255313582165724691762550849294044464169273482319557115046478318250416311155298708394405016139245067018786715477088530983926450187975747910513276005018326976387810429682670007012317295989111786684257132832646469771110587487080305787317176622611984344349203837772490335499734463965414763354340744404647177459594307992447113777461569268547079470615292365929320710237260874121757753319536588979494730645682719508267131403813132724051237102532209705618480720805404737237504402864769844911199351497439804098105743345081420306033621917711106870670105825766089498107885241884805917186666889210052253206530268199137267116652104026876745681277168043162499306004985921001209498310718716640928767119731347389301254007755281124115297781827838252058915994226861485226670895600987419456315583412910514177580602033018265303338160235819119328786372811663732691304026759634341228895639158116395870586357102824641751989193112059630544857381852288923774278435159228541906880402312372130982345187338338071373190656337231367861894125545555513034162896529303537380975888574076831508980815845301358277108585398571966661670828365905650292634070646345565602872768160795238756395731430409401941782233389168214132139459086217250458070546230320479500591320407809343762520035257290324126362616127977163904178746290171275165100276149614332534670751264505576512017840827703416816432616164508564143287285216229635561339833635967326317104752115782381908812614336706854648159895801874882134002805632630591093530946916529219670858171954966001585786968053999966165828278464649889051619708379332019306780293344501080146082853702244343391037333503050946566038891881468529266799171057692786169285170597567726957535103740190833866407753062835118101204613252887684363675280396899950662952635165052155164429191710098965811129160777570948086645274197467202270545594233349024323630442605250779095698759652116244370915422586956745059408483032393333816785552895654354903427611971055506799897626338357542587205796874434106438831383623594729242383999651318801907425425939017980976236355043597620298358487742471090558270826945247111775246993035997011829499800158840750006596643037637007621853161911049053046064554882194859121081732904879228342739164427640164276234648991152737756726784049762826559439853979636134141523838016864022962631925868507701671077855448477803685995755109408540817872748344551291365103509953262617007141486286550286692063968759016402134998301529131908104271708799938221834679899168068140035695187392435193746714660796607536372975847703537224479617943706274593162436564825475122989898279428878011378467633133152636097943427023375613772056577863898099444248259155028848463549139440575374654951713100080730784552556858467210864251301692178815234238256621188157318717228285498518281152342771942886665054907416679868109712695386841192310466230037057836441155997763325619540239074701060083253483145545075182064466238159894626628093339403911318037234259135454742156170961675582946743075496338006128592690456974220747537952027233783600732201258288136481215086437864598131153067795212926389034581021877860017562173879536058615594572415304611687302192348538533667398366356712204985693571265662139224315101363252617837676046660099307897047029686119974725269184422712068850321512661073738438870406040552631807756089917152647907098269303373348265268813981352910926431054635907313362406624712001175202702429916388018636353861402499662197322859464905401964247047410838757183234280403507681488502544272643566944682263082630047980799191239334796676201484629678979622789781488915615705556300085546795636807147623050054773995749017780368394878985579420962848925455433390524094282758465242102207253160074294757744488952078153672887900049949119238850028391677838753765095512098399390163606488815126859430147888227489733323452378291289048640402706815255312823448850942772151688400181769731644058121169107552580138730933919057552629362305783563746117392716324427511474294643323400648311443597340270840888542635910866237782164075807801684173606102835417532734672805763996109938686755425319492513759399356682677730491926306101108277970934276835041484899221951024274798338511821325960126325382079422674624855043510936130393885008644601724465371305842146331262014154488073530770875090923331848642854494109652248308084163697275024339531680727581748046605190698518573254648648648627063389631786424953628874962663328896200350522676650949712081789795352000384047176754181522014947960822988979130939240476040423151744873160477660617146091512572914736935580717634981105944075160719848192907921106087837501975327791801656467083070422298585862940064589038276169470252010667831174189119739098439884468990302762150616814403282446621766365956628483077492875720227953618933787730241893909178991399708858128645940878948862206699933463099422855465071960684550633273533437662899498110651913243125656196817121662050981226297251576629930172884688414406137576949988447452638260870720630947839865767278817990434820094181724281617174587560949824279029388612117054173268076155415178196997298297591039658377522068547486660401882518650548164378402718718525151979215681929201169997477118006815689982321549128229328507208734941443390929447245595361730695229450781169854538727040638940693750125723531719732438975266324510540448586806594285960231333810634442271815099999235563711009399020387895824309474848112888876822946354642612478842390038475487155790895283318409641834204035481927635083254476734918013697208722395227037898404389915452770934094780947115277602824578695535310955460450896437875118967620171569691099681566561009628155305919212755751999978803602087955854997839472831700207088795970336894115304130244775374609510733242587416546723702485028615746203915289359312562347449198126509597858541775625657520432195334856367476515674479821306207126358336070129638742229752139656037873188371586973050241248830813451208337411136481103804016322483186232955923195113265806316356740661823839708978611407367639786975361837018476274406155682627115677483175468199681072889013537945552300935804637639045017245646259405557573785318850669624284465433867644885964207683712381366750204303618939076888751897939655659263320715077062985046635889528312433307871410470842823955492449939809941252399227908913234978484861530979247506598829393704584306222319914660636215673711808317911276311413119707314218075711749145902983385224542784167634673808948203217075495513495246086134726587006655072569983768159523058990926286189940531393021175340684188710151227164030987505110922407202398512821830572866130197432221387582934865257029574422746829526818401636344728568038978569277976237300098138704911476916001632053669437625499688349086348611973948835877460361410067485596497843253119169089186075529484479694264513882988134791301908630231464010984794296481175787814858816617449543494723831666708732974068490997412317119869161868242595509415282776026769289118109299518602801481964326764311369532272091884668633840799560006094942822951480436342461563548054905080749562862247021609845914981358472646378447288200194132708245714866913831708182566494689327610618727058645614214169092726593593660839523084314606183698388015452794108132670753499877120980151854187217983741458245839356073715060138542689756594289627736143811067554494112970337243814477070622603364558930212624060714593648451383646719637636988669191658837409683458411405716252787915632309494212851993090268708237884789042697107681543324690477822999911842795483002607786846023312446509178143894231873078735587363262955006628317937798358605121898014071300342983531553205053428062665219156530713743216124332506916432920562699795155254160383029671479632952955752887726172303978016213255049654939089903367940794866051970768380583095801973685773528480878010408417490471159490310506390536366020539917147942361857640591715258749909418185541984895076925328891775266938718364462513505064591515637223013192354234527366513838994300855716193981244009332429505175283950428848673039622268601090002225964484816532288616538841229094464095164721348973992670532634295693092586396073873587110162936602563262520359032293865197276021408831842745630177069211163626392724652847856853850469642094044866565359504238696292543190222110088212618695582241821174770372753716186225043087389951659728884168222429099661447573767000289775271943323013051781704535051009117808721282695344557697426904628072385977956393345081779107064331313514877021848050784172154432161595875890436424518479684104744800873614213186249537210746490703901153857154806981184396114034208561007541502608981825618249012093310620773443314139975842272338620578075426024932565698195365165088019569659335691715183319006657610472844038667430968222738937480178515270945653853719776452099099242033744855384691447729152952013247261727899577257288350546773919486256616792835991023943556892041456614181839135425247031437570121677800645415735405721959144429042615916135033355875031350829383583763998557313961155756102426357857728792105974207231461384428424195696519045041937667887924742211173749361237218156308850735366018436722781304123571790216879059493738464480138848995839551794155616571624581251522098965424576004386484179799007260861946452026457476909740752497500498022303065188775324303651510568787094654985318524661124836173667147248361191347145845952777800311733790599477377821685004660294526177013641177406800927516918242367086515220042647276756815648291323033428912912824594255220583383642818114511712595297135121563541107902088874026795066915376612657419119562311777251160805522118661360871081401054777156222639813416179237223741958973799409764732560532779554616751127286756222439646323651041571215942272078172398448562081080463919481602284143659645011128268007741489275178906713280919752405252819153249009404155153325457425300852270265547145723662152699169552561879136884115203340401383245153460735537307923826375782225228069875459640625906781000322151456692923390692578237913855626748400356661270722136421456922540923612156546320697431557611283627839169989778716166984886059459603180109190187223686484032868611336368247547582460659542532458210658471620769814614123408759322337790916157620097504608913668080640597625847589808876975802969732042794648276378163317180616800079358783321960811228985047804721631620587242655276156590722683897578360362694837363749305311999734475530061245313726380038300574889662139382351635516870579452824257176791474500630394547452996485446732951331208595370768699850886423516646657599319256664365048635451112642113012310180751205009048197592946231998177273808430939313214459651886648117204052728250791235773179090400275339799768826134201170601500643322178652230345622446093316688465859902412245244535320975013308777691828955454322201127967171908968386070722647136070716134181166509916179048819905077208939204217220671325990858914533547446056070908118195909865709736495204456679861346388064925241644615461230351661790165196650467075371058380832028901629699272691766543896588560191677923016406751815047254276834037138904057799341548549208377143610259263373922428334607222397670956087841562719824545451822910227256769930483364225118355701448883406966919735890754169275755062690608260964958864149848549996657655332324426309506877546823015011506570383388072345971605748800402192201180578479011430452216769773165360037987673938214829396818522386130918670546866953145142674870179320676720133770840093241020229380360130326966386814258605858156925941595219617476271126591989484702121862287973908350203341222659880388268636334507004238145849071198610955978595685236787438063976668956629239060933227888387459989493040640244271635820811616205913067399258221680188269184191797400042366836248868773478618357997695409754257670531042940084691384515860931481587036993148595405810271509669016685214608075583632716183555676919090112490763496143646048125532072664485147837912354241443667856065318379297107168470051927146986053017912859523995385920993607990512165495957016420561494451661378058518604687676311996731042478869420957856019545167218607452716127900178892839211938297588778272778290983298470798682211905480333451922333938546738477778344702868914319718350668355398097089978150492029444471930389978152225358340229529713412331085287307197587372119386128253264617749485427776405350396084862696111238634785540845105640435841947662295022564340433149835888026707206033779859221962105008355400385486355287163984522413853530741941236412771170862285248201724034653282997527556077139294723693090210605477081095773041134665755738692545492862441147983898071339626235200742506662097173354758996161077762464068448282310602593599546519440322573091924677939454276277213272474256160279846183075823091040673984853276831037768443238174134563685605172937277740199248433666392841474930039049761022232105923005408916401128538387441060313755907877699085884712057989474069225035383493194876976838013115071076783127968735061350195888002265124728451813231773936360803635739473202691198539869403714448602416966109424944911793543699762724355943980191290915000826400718395705029527084080188555972767406806850503499424901863382600319635881613031936351408453312591458251308144103268386712218400590189493663799364116645379515382303595576916678606682510110134135065147534824362684345612619081703288805509920001880994715826468359516544985354704797234473935879093133554101413793467998761655649117741584707696644259749412954853618713119590776406515788946483568812677100754567595335772497356777008040314687543263222763451455442831201319590963854835058587869380838184571275021647771811764834234440886729196700787358694590103267521802623093232941067161272331359832083626448422436139778110827341545184110745155353275439491759400876544806489828555016689473633740104562875188111010790072654020302686792952065176471437874332678967781943545677469588452412417538112975244068619460004634963043935605311730503410429881034797699105340801253270731415019476798949658944264131896921732905264086216031742002436287801981419786233437751205607557978404251665929375446959460807604293674599406459071924956037652035658225310863316622834644457617903358499730812848702985846378086772160514375675947729574781929546449757463894334090161971393474026095585006402339476814750444672132594188280690368514061851033235254696650906780379018041425212436506643134706489458653801270181837162821200533220748026266797074913613438662894148316446777858992023826670881183321152264222428582914485131181719407297949722961921915328091075177436469047743487733790713983981228968921180874718482400557478911032815726094154076610985944572004586991535318707390372827132159554862156119736035685683513105711464545530144202757982717086721532144602681507273645418834824466470610060031608723521054030469032398161814269083747145468721733945332532730823317257746278785402975412939097483154817369460570132137970979026072446924179735335321384379635723488922822313525946949825442859948419057571316003181198655042719161823102287687461027358960625080110748992344440524646146756475241941088060463374577033420605310083148844879608075300515686726416806271756195176075782827131105867916065574364307613658184014907517145536948573861494746006110545010996703049777849041961984344785610737718194851782652309362190993359830442646684395045678771797127278435942242115983873636614320374260322990997484007616395550814250427816308491304794222228233273734264921725869923347839607088583114022291749686623417637668217195207463994816504306423329043680442449054929104994527857274735681352862763972425444754738417944314145408139945953817028272080186607989394748242985990359876722774847247275556636456935195064772543012968074442209572746136386465581780129252696456464178071755593480516686910728577226521781994550513318643011253875459657586067281600323107954513251383636174154160039619355686225891715676904723749753072464878056985475711055936522039521756449709819211888566592411165460923571178548395924644252986591918376991038180179749458513133450894751397900359010886511902030203680830237971882829043451873319831550181717903027895324351555130982933759718709802621116530742370095943158864818418901670536315296956259787528846795040113345196646182093005940741940590840170355811302111823181911308365483631565626141582093703112870992579241326387203070272340342658232324064104789679720618302857983214093842911957742850454900653003243112465917509820642662431755209567910855209029298353311348728700798135789281369224288807396073574360126349813479348366632970392639091028787684144188128156448374200569103410651701653546028666773907130394463515190854136703738694905893560078386780714685045766088623130911938694695235767242411065904697715040303942784973125010813680230445292029233086369005886508336764208128803687364009658852478756795133083885492613965800812297488841336565470142546722519552295550012452448505836325492086267761664887244289904943418139596597366681354071220776303785148597246043868468703800423406193933486032504710831082178791057473866722434147749253945464729975275988538162755133832478287398529852079254086924430236985595909129021083655767754259483730807952993814544956560879516738780522224594600308770458193855724156449146759762155697476292866128311346146344526601643435779893011044577932732985059375427656002096115681756781864565620203220961606060130500766200702156915009326460783737517860007405352488736573019416179948760419092705123695056490082035052579189093123860703346370969384100436153885100729760252521041632635081982327213657984130537991544341709569840843759967842338003353638034973361386033983664634432907205247041054334056329045032540118088326480327850287788282295626729954058006767963898688560365642023774738897036336118401728957823815281579260161475713654621642909467279037786629597097466567015984511642832973350156488795582743707146875480509229172398489362453934716197220878508624605956267948726168776344345613063060686837662744376949748470720952097492108846923683827594588421525483443161039450905203112889741259143791168818427867523033746983508639948008176516357419238846663516953925069112898257606592431842076616196545959315404153613964366904009091644475845692554558713980926033493279264031537972721793407555195899451657390580430774040008759786767732000044526999361447207004186021890458951745951414714550885750339337836094564319671189953467254960473800023271572941542318613308486337188054953601681652512061599902063981349585070220331092910704754718971143378462603485246816534656002598302304765498005501935223072298775452744388951792894940966509280755759202711827401426071472356156905399526688027612666561155253478304446960647113562021400192810288314074351123705346910172726067009012542032475940928003311506724274513711711383185965067359460646166736642620631992948718673899506877464140953835848093915654058149752468251406590717463382720420437828798593830806109616291619296655747631805169177327484666938593279209683260241161387183700385478561051655645952757653698438970174124576235617289563179130251041019748269759244236738347295350982552445171290500255523461158006346308139209022137236769219653198636269579717509852929842425923214465535892432168689983994428426116257798177785924578426566119651119671279841888211039039462494398228182326343096409784344098257343953368112331971310975312030242668238387384634856240020047337215351333444531094424846736489412912527399020648856509392480511473233985242679732072858544979126081797389711198634813481505597909749670444826815737757022519211846999435130449625926845126132884378357786593100387114807543884398386647381108519376575382172070207319778359364058647999212534073987457637116387559762220703316047790095741359626680304496786021449366745921245807575053933008665283537607901665626483529945965381215567753591881143787244172349471308196048315649002207138498031366150417066016236521771848656622106320689984023721087359388331766263918014236944458869902010657669017755442745155494441099636526232733263056928383204852507903682803283239391371433177637522869805882685328209247323028261846194093948785377679795021032135017757781066549300883479602998998515357689754139633968093260823224667527071599878943452136433862106535237473761703985308439402944233461509406569683867072887266252650068578259073821839890340781350453295422455986622112974755700685025402656089676209496086184773000237428131792151637098931234163173151909664127160698548921946607833373465549752380903866417729228080094899161447158873669467662824207353169384702156514082178063401286419843393299133579806007666682207036575296806143221820389974209934880139276580646562236181253194756284783604038164937893680450975914045819182859299840975885651850600328903153656013013930305903898833362949820814842977222828336310010830678159072364948917923281908501351649801772728471286773128230388544982360734996099512390593976910843387685702554675609782472182312290537146255130030834491565857033028041600098991535799361577723710474127257106527234682473638818609400715346764308894074761387974975561221620074635189776306617384145754644839798889249577410427067051966869760945701027437367921419970199338539363797523899434056045402896962034783559260641898245041853735220652745348480261045160583694905582377694152891488332518455541822673723741834410952890360522532729984594576009443324922709116166143642467445382382351906993197577179008753537162271287392171451180538419524528312510484001897355285329000600033523037920934206846251474962801490655097007824788701137953159690074790813224226383118003101721040180705696920850231932011475003818649695598745324762409246479950892429407781968065803664126973691511044157540016087138255177934354698018385272663828342243751987519980355617696983903347392061890622939638675019745018251210744861913096527827363397442097994254766369623363754674905911138143878033017083603423681222015363962509813687895263119797909061530750841630132820290203675665815373407377113321739965593585538272310490829323917420820906961624394479574801152895886337922655127814827279903678811013456762886362477725126112352047471346680778160953301031648810409004385237320034853251760842081471540141151817438418445220809581173181155272838150380807413214409696315797497504359279457030613419495559116710909284275341828824889094910075339235019907978871641053335281159413185338226763905241340723326899168265857731183416069753752660105801674637786266502376447507700914290659583330214990891695547170212612265536338116422204031722474384142127568376665010859259517619420043165644062791933756285535028219038348359706261687718702189568493337752515019641893638231540590304064209308414961465021384919100363320159316912750522533687701940514346337167337738665840457804497568936098853609236649823104115793458707344293901262525829716292595281415062264745783107221825530678007281860144971006531104269383284686473405344400442295705253855998307750213296902975314573910820103070606659745322187859542109530551632415718855716483345395543765297373006613149566291304193893492600119495342726978696879755032758234430499389614671648028337750827336444877941691728629785346455148282910703939371928256165404149179706770180830085356879778126387766589120660090110920756055595763311702637609183964935076251861257347938940786548889084152454340937609896482634526737508333550998761055725594701048256306944840639686416924430392051440571100543441991519103541815873181247239121541042029983932124225984186342225373865632211095446459808910974798919652346053173352004337852573082656469133963554177044923735078212672479388392274612220127993851877660339066941637851253628069994105751003146975669162816799881463786479831593473903774154544614491240927192336658723876619437455323565158960560612663988361315291488902767813979486794204758090060117291625326020847407434561779906043790961111981923076966087857091022140317187884153273117959343863350424699779382854930126456471996710332484823046476618151027442070490797937201834258927989501320406776482410504416489187593410834806457935492494984364780090367996361270937279746958371885359013860424321922982539143352338070535125566553017331372710412060987663986169050523951920305876690652075563013118274216267275629726848704943368388208862840995461263970376974402505978307589812327479095906500509065625030802917429771343072615522261377683384756750383303578095289046727392113105350301820311696744336225642973109525624805513066070471826280151348136639332365013827622944606624903080275094945608650850954757195666891827998092503064397311696320569306645235614016204381861560629089330468984520287456307700135642651889855012368816813134224319084573860556413507086124833761314134777970827157409619327924749988608382728953332107107210281503813992990938734045243645242177853987629511198660749612959481503827722257736489825440054428083145196781049590494293692040638103311268645973619193125023549890058492587117858293549351774610679792566569545139538337113186640938980673309051715163680660931461547785845184391660119498314962757830040496013408202408016608433903949461572679149468771128068784539614201273312313761394802720604555550754295660844835977235655988532400164893144955839309790699126091807475371620139515772940982267983072200782289986313294262942466815948193772675658765758146546308658912363450013676538342125466181752363435527411019461754148748664922503335142079737544082336020017652416828405171699796351904758779009127797946507630183236794253311913637894835163208823655577391315910720664952846738794960639470828247395322870152832197293005467443421242745950170899455629655585678530677114096892607697793815946501202849877075355229079875365575583047305535210057972238843789521196388988710859495889687254894210140831967223808139345232958292628494177495283495901389429243058093154908950798797450413591327060033445844099807804697853279020141017713519098184488894688666149884188423764688841346441378718363502149865660191409391706799183611894625972561557536024928482649705667557954151624192159390305749286573958794674695799904012146903054758739287728367638929120299452909820984338043741470993406718012779283181316666240298139785162188569291827852097073483941973655707896565398027926581492614056569039205932281665971994285875553549342588739342782412759805357032039957992471340187145379637723654518699301609882926911316617466227652533647933952668459502558646903546467153141627404647131620945207177853843012622347597835045026765054078703918206137413992837865521811501045859250527113553084191946469590796227600032933937229458786618390408823766125624897212286755402787508451099918222914613927232869242517353794267865439584879867832074229917843775021023472073697106317496816815617816498278249543971968814556262522800702004650310055099627313023754077347255854417070618788129084956033753827001405775303373823365061312405195648937133915498115409330175821066608555149408995799736332433033257616435178352135749811212025911352708040466131540525245367705105407782892362302939650745702377950336726026887260887469518354232586776453171004561410203293227235399103131788071039408250409963354424771291732646068833142978812800145784416380749023423419546595373890428952241780454746678053426730518667276611603981930221996146537591914204517236934886885436120003067162876767494708893634538926593719235070506220695013744894619022984506598882113073307796617521304158999621922890883559569132199014096288286012664533796838654370984299508983601384450970580175706967503943201936853291744252899201431261677784979317790064516736556787689829182909346748978877184483546938931804681229254695350901770556889800029784065856582337586718645883306262410085588416650746771876585670573720930016197602369171810628591184832022955790141265782780296383350109585329014530108544413689031789351628268300128285562467280537925220343839306057331325067113789734034063220487094487686344016525003590272818811783961196929717861896113742892295542410133693554692401050484647711589586038493363897617309001609375427285376941872247133333086618097074178642592865759298027041418103025160952951654701673505824032472653592514343990131679193711078998484888923959330364478226706525681331310803637889928793813461116012718041716969647901078464695791083120091087333640033728151351936895601317988628570003048943424796140894171653139547319547596505712616093015353065808698945768125310231020979923424337168820527611283584291019182332378004224162900248552578349170260455958143557565352328224628556010576710649584151933502137216721197471976443817006772377792423299955460300840917656481816219127025939848029900957120660178927944586038883760805575165114215014360946379362618163627488427241805218147097591732623578549458081542879329906325368066386869432209361061860892419054234522499363920180789867517585300263026702912513215670957958224225152886734402882084641590542103011583382170629269387499982865104125522110132078781280093809311064842772455253983973313898312013741998459989884800580932427515447582180582487903832377870290843305924607055182556174921767079299531904830491925062345397597057821062901154256125571696690308293032497080007288349443845568823302032083823020515471776728329503543751904515401664061529464533837773048783291256630898137738987940709089404898200227029915380266415731888494614440839548563375654286848712835040219426740411119767082928671387949723760067143040774482823479106655177324476883019581435829976012552111004201654140294417782441608540377016080745846756730063825632612637844233794822006100089700277101701044442866337219849544913162994833416334035808471935920911386022481456123197194694551979790015404577060273091242679831747955349941449713529028788468094388117646974538348216481876431180186155818572085354384770184960513496564328817939284249651418706211296383918718258446337353729065493782685607752835162256649336105658083649959894786335076483496450392958775858879626567702972064480941967881355541294438944222108115114401529291915009938806212850327557210870939719133374437433598224558590124203503655536913286375186435545008957443414193840899797374931401123384610199997501367865302198754932703381279609078690684360377037728280181557707550997185535086879069174022926583862448355329809526078040245729630344001572456940722100772323611566174007264922231471467680160695409095546349432486672002433180012417257464065612383635460589855788055345642758205803653133787145887812771947220593969926480160830585793941509018246807009195966249903237272679141391987021063725533524702388744165709178695694227243691094702715827367320986347997522864615047059921138704924621151508641913491095212951376077734713802143589697209303402782973826200011114674268769210121004843969736256258569627500651938029370469710571859015583115953431346365723919096823205091318785934243490971114250668257367274062001919130025566060760018903096044266206128828009917739024092753749767351878000031680199324725891257483971692862035995118630003027380090819244207613384279706987507979261559176659709073887263742869890325408555655451268962294024597500117046775027340129124332976855954987325449275669189963334487382786769316339557171804623082127883234430575724635977712482579332671106559297635565910356452579932337806543860108794153988060621545984794359203463944508948759382761888027742744438975840431120000328994543958603259917879943784613100484652226151628173878546204476537641320304346733079555064616710320981168855098532215118294696884533200398577767666521935780607586130845017328804951316252367675393222726489696774074719366074852659407169585092989198652174065352467066870100977481799005595137298580708007064813863655902577874112583299930164920997470151595440050804094235569988956813980287637615765349075078215811035244753139395729514062952060686292248886520224590776211712333090082870203988254136655276609917991566459965875930069411512598876353034058946118973447664564701400819376807486946361624213522714057444034517736607606631296227463309498743651813169146598414126603200176060404717430994207449889630291427177542015229341488996293912651020104110461859627740512389187087789322456571733832337146827150402220685454133007386744413184338006213945875374502590331268739705202045012383816598157097227926785954910899688123774210921562276769189209172329134385756659833320585861123911186474681083168836459067454929935839231717238474942660949268384226349569086777179290778512230886727762338262181929698250492735865314506364256054598668004514148841484544336491207074304762091453986726997149827827564176558686989879665721239663635267236799424745267707625934559644628993421017850552002654549274113101598340933347372607796165150078877516175514912273168815901737767352049427771977769771965651937382664466216653509541146253131926703257148182648607821315271472883307097193101100826138028441410520238390179582527763968281772138894708319612563632753015529549250709703267362129354757343338314044728928056860556243927401619974215205962585282079329247861270394978143267215897613764117996873185121466407675396486370500469207533889110689163534408584901041712373321700639070645254145211471713906760678405937804091639777444042290506424699852337401447133137005432526141121935465228807342968871017922162327252095406959168817937529551190833552905011736348142354446273111693571064286065480093705748504783738866574937081521196923038885309790635357567323589912047245350508728671952941071998402195707888791015959539409256502995510131253280807013514816010152272145096069986061497640402483354405403112998698000432158461956045177456507592549173647138788749766922453544127289007615654591813486697736950720982541942917084460170901124826419469368346527756449368714355334136282755374991319747195028205773131685141286340725554378918490886677948965019102975947034805383094298801507473179990430572616506361693677216783382142747096948143386020143002310608616794175764295089693909345460370164514868176565476888730256049429476051051523645786016365456112600734344733263055690012548482489211604045543958528859033017725709035959994875687463848450147192338745091552512177632200706196597683952816185809517376793111501847764591032074604022707219951494286222663646981491693586374600394140070190174117046904496116633583082593725888255115097334256753623199546713093800995233490887954582838868818055033695577801629404186555061836582789381653528529318877963302370344078333383815369019286587012774453541094546487969155674202123932691829741407670861338939976189160092629274664862804460551986259297249794744442032126591296094934436843101355984469357186458701644156495310520206937439969707760511435463598987484019745175312250812000065508952454519221499705571239950158423913027061935199440206081613997838832310110710047655586119865097772675061423534562554556172969193002480608546066168347930498451696947397413927850585173092500847337797929285130394060517502884491621213268257285593563424503737751861198799651358453588891819981963757479643123822873540495386891275856366009495416664313363970746574925937473028074483605192584546444308799770277944313201627538752152036859074189396853383378159036874856190402751347814199659039817920109405011637278356170155853937128262818810055988766888482470134447181306473060879988867638488109214326586200698117895574265637977604208492794446494502249409067686348445946195259384646013655970257234520166937185002281059526622663053268800043000370793472831983920926632949554057835637134109211740502430801200915672177875862439124250210383146093556772715679689221847515145592454168620918849428248032107667212026347101542654145371503056792186269169005452243401640891838535736691997632131313985093142441802361392396055391795944633873458076110765603684240559658526938735740070092137357747693836823434323390032135065910322371018011875798966818412239382551741327042077049583280370552626745200501270179036160718612684449120441764371421860764823101452741067496722402596458645630742893850919980641908114047431667718074052160369015256941440662526932164324868270032006573773960547999389714287895559987894816191163047054245807316414047433674032716777460994574068942977833063999395084017872407620147727838145620023453854833161135647249148453647535386309462541081169267269381667203594662293574889038993632464001215556123172656087423747684948530524185957285447414079281326420789481483180813163764110634159254154106080219668868570209316117921910017564986390175668923377643234646180276383162071188620926121009777080449592555212142287001953014131732034274238546308288027096941852306192831214389034427434693009866957123224705999874004891396696561577667011028359764964403415784359338632425843844348294379097370708259594365844865310512378245724133736300048938929353379502518385959041009061176807029295337352334954297521478232912807613628447741401039910960550256693248737121283867371693306279260732332282459006905700028783515610679235724199486352060565531326243370673708334217092417511538770831642612528839948499131531015260146378827862471393830993298821174053010214522945810020822880874776746298592336961097579110118919748285537728346616488972541235987057064552530076461390468842505992022691216562934319603015926621378458020890742627836742605417218873429555719592572912132295145563403194176130276388148267379868809012238056551539029656794486443528748632359327158957950354888690317728608442592695701005580557298392786026515448871596322410726882250857553343129817698253628822044268607778790013420522398897381527800071963901455118687395578397051538613004374712517411323961635201819561526342272080440692111483923297807064180544063041921626477289670094174017958599001378829010846862180785591718984881442458707309618617364022784587012405990410180256245598965285361712024927289957093080073603265366427796381699458499225465796352964886325538292634604342853294913516613611906442075068474021759437458335565313110850428004277006583317586124964935112060997395205934620054120012225190695779477462090574284296946307248372604501647867670184815263468001844477644734234186167636432563703906692042494235130997428217478249786348043988159871227761520567137188197169278239514389726053778144346911081539322402844586290008456135750148964206146508677216695556658173437254947470733772997253390003793401690058701071687357724078171334523767546463338813872119227048728931036296238516578643012371301031314402514277101278228991575092861840134135179901147156219986853984283718665676788862289991376286799901430539087698103538145580368734406815170910907976687604641836644616501405424588628880104168661082514424413126698218422781150954440354831778441061767130346714270181686415253741388631761177464185968414713208798447201413804356411767239957073563303500768382244530895916706405748556141557085801915109276209730682043074687790795609736227742705099388054466534578314570989314979683774990563062129685356478185847015178198255376202357436926593335460619372145699526907546537973720967678199925677344272610601007855965889292931417004203233594923144196409018357406216618284849011387914794701476100820449796302407225351625204864513679417563750703107369706870599825514479228988140851663593719961010873332931973597784797294074134698285006561921305678443042225347884121710305893653329081000911011155906103946713384006364415642596526004994050753357015816136133466411663008582309256031137197168763237310587506474224773774964227671740172791849668988263949491323524364693301514691258154437098402894548406082818609753017465775720785258577304083318126223409288696903069542888048353492160998195356626094928905989990513889238348766043244260373069499221345701331748690872362324306159872001526781596979722362497636943528471193859225436479632021366156161926091146091438128466702191038811298776701715589319700375036089475728457635404856492618161966766009925079089051791270550504511724501556161580870525542710243182481558127554284231466627037063949855145796480055081649575477245023614547784614013197053090702414001504292081772737109019025648755453315449008070824453554862859742674078025653904025593460988465747053704072171274809728726908894719848110343544259572433697632738512775410697446312916482152739822922573160591610475319031640428564240717297388594920329808038282223642331656123436904750815376629844261345800823418044426013978273686527522650013776882430111328439580492629093977071587046000655414030087790141091334584906568997981938093127598710823924507043917942378728942885136309509587098617553974228783149945664919939808806418224217234531192717838595368240565573706453556844731712881904771288023147216570503992811518148545466611520872727567476540396809810276117580075045153103889883199574184804665527633010759354406364752007314328372951324673146033024941416413763725250820591525886596634995669599167486205937363101754364261869868208977039618712926810608931246523839047898344486495655329858978864104648354335167209281534689082644496237954163739668155992781153360985790321402683755336422319886968074495242618988997731641141633154641511928213312046729650461891965572247281220647867338108161274963646261445810699004703512704063655460826140864381432006856510095461570042721897086872732269510095977837387411007007737851650842721499680628163418683364167797183585660805699451764369885193538829561362209961537169522169363785854411111039558667773727041101173845685085592619120167829583484381056725215643676031108187945725286580094998915864388079593970693749023747190520441516379337642852246837745507719759968469763302845681163063032288974435596815446319671881193442128061740631729345290618357941766940094100246378560018799010474796592261013107535400022041462904762133187320512071319908736038065296238020740164130878465627288798226089223772557637855599346871768231346158468303545796176068538742264999650065375071586739224031455353075035895324215087557652644349184016440197690216749250166837935194511551519991906126634888570496484428552426464345218987296303768237148322448288568889214100508711401480909085382051105782379894456043690519130578469581622047507717317194052618469092608694147520743707683245905342833186976179064550108619052567394915826441802345108390906220959580467196145804742012667124390894067010249403562449478958336536594614394077025804173933526118675016681531716330460145286164623439629826599015695299150413479291665165655847140752763322967702725668003941740590647385557736686241437764798113445053647886625539607465983769193138151719774753063535940833825249639264016245369191442839141686608080793336178806922085685417514429631187771575374831199432618992842126581414094240962646364814727121681951428232604147778762936127974790671486254363887670492405347447944885021610121180572917189051838863651506034776332968953588459889678100611308643347703394488254795793210016480046211143518460688800221222220938209856675975167880686599994298307387813630307999466944051904215657149914388519190785097697508682443261843141386538460421068539509012394120608671313692027414544414505180709053793303250772889087934198627661699938284723977716429478571131776255211764418227566986332662460473263185443668561277076742485616206592390734293668942876654638989856053125699515013768161738082528718605303501998866462101112159239928669386372355683990762815480499511375521733293482729655810294372716445512114460482099915990319538930135143409932765857699414623101276368566753558457172915583061304884810672984208917067922989348433453088941741063763898643345487190599552771093721779468370381359389705579752187795138353793581199514562185964645593364691301670955423919920940856679268613410026967544882285186405932407094536531190296821214112177165758484673367945665153313718411000630962910492624062785065640284702362150684756615282990105414936122667899951182871433943119424534391209287118112379916401613822231975068851045696890349509603592651950547979254157044679053723103767618414963134057380023172614584938257774844812464492321954716039356883711769809548604281884437738378725537952037619795626946627005636622501821788373124105158439704146751144129624596179891883572243871915895982313806397226397684963332437450450408558504486234817420418547979862015533531295854252314447425723386210565393853015489728604677926019030851680070118985581244195597367832536991940753108672824615804862358626523439389955585273425229725275610884461572299368332402014556765827069396184265107202426738722285491946946734056381998081102172081488872751982441686307981542562975046960775305670984559811622636812206756480398351939895688198762066666873879756432924553726456801619655558617534393708475100512718645212544145254488270840244522360998327375031772710741574026657727114074693208404388422888532655327982636674545537918167718804589533547546628873676581421309124578784889549248428720596710379015818714836115445728964198076093812826869623060018688309647304342360168505983793327785528691506440826380345918947452211190682735970955483249958572444867241802078362836736452209733443501754514386878987272610137994164395766716677530888928041774659936254935298402636571783705210577946991016438267336386001412245250753201919664316106434537769339963165144176393875653863217377635814356742354574860536335764377018405554088809678734213799004200603701538709431720481590158820894368144387790330291634013015845910127341027954042678477803264343495558892581218616613512952824733199862792628889738918234892978865007662364597515889716578384710141672284728300426707126863468121203010637580768399092602969723962018494096502900555718361652050192880310519365100032332152629347987308478652443767906551164213232916414689432351170357725220928966866938590282585049679513656152556599542449260219956774429840155743566020041924000722176749610633927060165756065184143255337497567775594607173629446637908587940722758031832039818914250609592873678017439854421548833724092009938940797549124905489353300170274494458656124721460621366236935207596086092041569289382992642924738378487999978676545736246295976897346484850421021430386103859698375851050438696606932991588390391035210456048076956355091926318357173324567644317524704641386572690935775827844333028929772339236352061530036713652893987159583059693144572766904330341541980317528848668193626749412821860491238250833188873649790225108761937726854647572976906329271589403924972458976736153770068250017278832129186290766588800090290088905785518267706951608792391000901786761760496770868129313529764774819679467142850886197022093450771167113724328859745527538794013980365928114520912085518991808320554375457482611460482144216376442231963127938893998337201122205180175978197711438613886026071082826538842809977970289458284406614048838866091865695081334655005040469481034308745505986556153102478392168817413600789003100825585787036980217933075428918985638684878284767564026199683696539562621708531215598407519433259642401786362963897227010621056480051811970513432366905203289262378910088709386616234271323956510944960706040191241008614660700752672020218746933072327257594631913934393742414081668994588148836088428273975703430990814364696824642340723695406411554258360436592302508579344570040699570135613468350235410347719530835949411701825328550169511480291149490484968064113347936114104033958291455416714539604798089432859689344643744098750328859481347845052605123413561650153198665637714660586985943188268908539172471340483321851774133001265472558405112414904536544943468319026439334542625060764265264288929300081041414814806322132879523185587657809818482095865196472896537875193194266593508763201123272643574173360451267853474342137320483228507961820751656094214786118683994351593952588615589872167188547402214490657365016996388108635465213702684234494611092718013048933792472183344972349469818432575264724707795703674398383686222323888086877261684152767372912330894119390391618953530655334175845312860315369632224486174148206697898488040687321935389026253504458166518906599148896584327561846903349868162229508720532934448694184926065374569351361913754645034550444924360130158005111743465458322660437394372920605578833289946067330778103390364398135555901497370870989970207853603688791211465671949876743744229268663034387905988433371587438122008919575452085590531558388556342879163594666719169098643142100407970225866273892548844931133122340183062566727116319536029958466051216497482599677265002526540807132478847580567504018787864113711178595038084108841722515736691433527924391825029520044086094924235559868799542846238249426862269001465396853270491524966087950133097964316303360095785003263691889405386956042541452580457758117746087179885815856497109877366756278801245089679512571853640812773185821969018459618584991915626026123161870918675261359874610692904100849043250433211122076404619752035939033745550396468189465037030119959699335232986014782580738197543850845071114169417088981498755538979263633350735898798769070172486034317620761858289855959309476642698532465986620628720510490844066882168973129020739704073338026222731515806481865076109510666890732433527290821279259149714135456905140949807920845478919068094680924453511526869422620676867695969638758013879785778969924749302634016513455155518977247327855500345918352855367322844684964818009160762656153708127504032122167424452231956058369992223646534503056974231350303602381290215997910363711931095505691508671687699357766541103377078906487646669129774263938000490617056626617176549042710868971092930624039430656004481502224866175227262574330036498520586241626609367049198986254050554442489294888975127132248853857983966605673575398485991518875611979232748655635653753152473069295568214605475007193300384890419824917230127116307167479618692969442198851141230772383320927574694104307033323959503518053758759015314551892956299077277435777930436345857692138868473178030072710382658702817581988646369379121782607277864049247995479040295921320827127123969429396169246586730269216183670495051368358727809929952962022926752987526412282761926299427090160913220812253030506278973255014435075858051202116992854459023970360927578195806541072592606490195344284735736733632720438449174125887722088826343262518935695403494065811783172923487247643187544188782851932066975356426047372478748670311608454463503565959563182240616653684700624401033560705406959645656183328503955922064223915757527546298016943211807893207585674372632308105932979616146220887038790124299576558100491445271731738739720110439423164292879075261478629829013374223305239803205248624576861002572396857103283141099746514268417623511381264796555975178472537248013446418509397595994264994792246801397970980325860478062110073545303697987199010674777079540880768561788422037152336242503997289192227210335975223576104924618397223561932523294344603003904675624663976343455390374753767266614168252765079639176720314664975038083505711917227354191042993092893148291245035902022382877433833789063620947482412268694649242282864259175232973619450465429782424831380529848122612829639160645317404755872624678686320862254146712237509247260403180119397831158085793740581435168287092605507338446956876223272184539318908081851987413025023840517589544183677118445168335579812429299644358368741949407824107672567596777796552549755262739582052416104016668950350991327363437518684600348183354864767767102477091293875434600888361930216524151446824947829446742988235181358549767047544023395883630590104194904345241728589175527472155503240147233543034518482879339007733978951798808338983329856060402827064404175996924463586162832915213155369652138958956299448822391161264884138190180835074817853568671991861645782330114857765177860593255561665256474586707985708786949969110755156104634834261056847386275001954235610345083219632395586316774829781395086015747662820383086139330887801849051639685749024655303604147815912267918537206939260815319163922075192480038648405457013198388989907598861985692222539992758463456750599757687788709355789271095824126516782370296606553716830727417246570669972726515100913470774576818365979625567164698243282106658771144946024482390400605364844704354804082593562923384203849943403497225001916594807922018820721494323852743839655066690113167481176138003802961114036464145372621385412780267686980536673215931972934490963461631607503164408282171086741431325240049621741692616941646669018027410167172462345386258768723341297095825861391471021849891226393621501898849024571706988997859535769111554224297596103122803249797546071138496460910273953561334567658496710210459165819588142583575259951849107450243407714659886462133965682217663263862027214016498203193624155471862585866270230232072185087379067261017317308105103585538885412301573210046186121967038596763059143564786981382992750177767212845850506507501084856833361251544509534132820406100310277150322972993287423321063609269009964392033294483694407916436919259012820159927797727397840684370357538263773732535646378189175019983792484317800514491330663074528608391112075665916093145716625748531419387631607478630505116154946795731558471665802728591789115646571669649703419511363157811806903130896131502737784421239132032416309505532604195762104105245788367236479404430838874289339551241996897988942915879924169788030724016733826618527064966510951081147177861421546707537235563094498033494969086548579852444285855769577250145291615428533605623283779751307180752093268892221385423567963709385504724665067614544099491321801585740685198134322089659283960160696109168171490038159153313042095904560301561845660679681932936638753675306751425655582085219527938431078698601295544020595756833304648934384145243247577722366629059592612467053839387673671591811159162760898889908620141220028692054160934990221903900581413267855316244910882555836072895468747679419014297692205478013266702188602243312236427766368414676568893616722504925066974523218662480364737075841932153615821295790131222193481273053819525875936601625080586013681309244632568160149833941485317341985281606335282984447183962644734188227090820478194235120658177049433374745545946070159293819722185676859918384688370010979343308871036856345854581285060357236889516555172517494763657325628360433322646976191548435226115595792968540572837638766921180403242242336548714014702183103224965635419203983942813193326641277443415601414421373470229550278203665868002198951774116274880583833481488384042549555989707019830684323048520785497410429292841356948459831748740524442596428703464600779112383001998179988265949568749062594259609206759121909039673413120959855084568012348242071430019575653435681078117098095574396539117301056823856349282577445438508963289070237785175817582508417731232600394508876661163966079279103110862606897849704570167383690149984044268994376644094432711593405794464555007498613510658762457749879312464074203061690812505179843146821075322384633088246439081516274339332096061668472911317487449483290253539466744659703424757007828744950694041465287705931707979263915543586804169306432918418006415239102866449450297373593114381088963328444869336167342146918813508284119100477601111518792392403033406117242050318761320225804083607870918428141919889186883268499496630208113445982783505466517079407991425556989689011621003779599877427416095931677494674847937334311438987752462395820367295935575773192459571969921358443394097061939829953262403540517864137006623699104124211460311550668613263224691793414965273986030285317594184482009043407438021204261341958284226766870302747779853201621465137912137336155618196118379451426478623585380356524211021618554837644897222905492914354032866579263467751611834439204148886435964116270487633288788798264050208968735371982862321607085153030245648090713812032183537645081501939503128236397693841011463532850998646112010226743628061868348524176801209584356478226039413476838473325945455295295741978227603360531294186174897275843028321002460155285679043921778842271126288970243561148387402105479313447672957390469212329917057539998331589406632492877509417401625513815327583541886923728973327462181652920814247093053605733896005033708428012087098747911889737615068172330800285731367917870195452771659706806178780173888435513377720727570546403323073248525209019865430011861368946452711135491747421015423243408624539460454302616014287334366028908994706692814993300000339413118019958394701926110847592809683900844562349093311827786044773363895909771416307136322373638122373331820669544487460936010713949555798720944344362506868739269178070706180517423452837648285668258518229680780003938734077341082830688520260660096346431275148780241853802019270766200718080884936430728759944817161547272799899786756147459276981382512979832137303322774212149477409145106177889907574325003853680568558078931359128561120624325859213684983533261332164277256232499377499042337696506037784882010875760110794538661629769785696668602646019819653280678682586443384865593127133482750270833857489869709424637732164800832537723221335078114921390531833390144242545163931797885565660614934502271344843574962831522008760722215992252975629951805073970432006560047615841811495505895408364614918957241918696990925753884830697425346217599714766896944417748527635614067524136079347957199383986262315068916444019168772214677796897027873325162992645706960088066579120039424360122593835111749794116485103551812537811467858500981920215531275664346926561656178768936032958513930085309361394361553758426698011367468714058923510369571512392054711605985640215261905227031686533510414279791457998913362924248864398905541314272114273123093537842388689735570230001206411890955926415643371832416204086648232965736778576320248337691193958439085881613608368232251266803758322096894109462495857000118389576463414071144192345363146144486503792818779998585016840367954899077956891581813398579760709926126114587933121449824021966918208962393335081867582308048974926257888477624386604261741824012864417606313618896170036458520945343471547870168295137508654106320415228844717893275340583659586358265019913792724016133301731784168017122773797148853734978880395349102617430211027591142010447203547473114220909658155619529114056691547007339671867888951906206778983238085593136965998254016142500043595658674717182074764665133766117480714235040005521516272914396624103538536028393271245087861753002814787489385555590852814202835707207769574637024321270284663997961244092053784801725074291155583082295030008188315417613875326660324825456536259849235436829152219715546337476027311922222450795747854906247832087202964316020518005525023449342982799012979317290410791511922292012304818238174316140603493977073100715478824918970256741431804089636544851096379826841870009881276663918164636850277620756901856011385456725068216302890249219945215179397352933181407820340984539024266493439073660255004678681063828878841886726368919181951020374294298842558696556473779130002568170521754128742548292383015939907158358255585694837450731064598521326507999632220464828660798770151908432885659058741049799862510070320524383282480371822953329966115435308751601085719873109755682989371654662694599463041198146234651486500583682443400838486225513221257616811361220907717018770401410436495101905868625259213608869546028812916965597721991827348048585575406456853195033462686019459671030241566765764881798120988052453366351205474785922155925231421173200289191005181591122208997483970782919351611762117420004022490275898687572782992249168669402692327888459414478437532496028452912292290854977178215236088295442289279383729207660061520121362857694810357937315339501094548565076330550379490276565204390591301182360536274024656750146617463737409256680685392150231480165001314243750958062628166348765168311487117322209155290077630316236326392552974791002355150762253029075933597624212214748851852059384472539099643573734530733153107321429719254086054079925491182420846973431879931008541269953838607649865000961537863836818028033421935250039275324255663836806872804074256107265409035396025251315898037130641193734111702383109323038137334663498646736053128852818302370621263706941924600212400300242415720280026451301376096018509444701208213815454995460593224782313409458899594027727489294739679392138953799040948811980359679021573188877274776724658735433021043456557836978936265572423463111299085229332470647008446783114061558983503347650653526026316924778529748067593668599258265568835295115865846952968301244626220334056912721811629672891116966043803491407154244611268237708098205822140939310839353643233567186816475714547332642591240181828786131794018406807478571758310782492503982450886639405082252931295084640958411542450832481397695582690609303649203914465737190476499952173660017655883764418618792946793349909791430667347885907602579273514671295561536305400308517045218081460579265261470724782992886670837631700852832018015528841725450137325299681097551374578446557040293017504983159683027665781475798071962019865210047857060766221810619603746317285136533047964016526191995638466779180015961977408535312360650332974146849326707420374795063737428034866163556582783411811985717872635644800154152699772771553951988024135453925225289302527610816631988056312693742739070410295160997731057947200848348426125012385062489492194227810530979827347183313708620338619302297529730881343987561128524021252517665974284905589267417481120437744448155172325165648086838275804163755902605383273563642510034109870961742423552354128308694676272591656703497585670831839159649144297320622717559617313486034850415979480417059283055575552447837311461932477401071096067187059327586060502228984445081184458036874710872501216368450753029553901014362805793557556886748485549454549742385151262484765748200066637610619959275033484139374518474454076789225366887397302161976378698151017076178772103362972774534809943538024641976793054291705816208559218724609226664865666095191554556915692465910454992559746083164772797377441335435687770753130578515772056328524390278348738955332183713848394005566705965497402526274661410988150120744392612496464656377347845168234919995018163045154574719672192170760244162962384415931386110547068038798219110856177932813691938930003926811372986823742618232138728330120694148779876599807931999080183229203718093988556017414435127301415307347037473192276192756516666113590365155963812231459298347224392034767333206202397693770122331745225765988153160714403426252931691795610329938073021021021123615028586732696414708714570841236634545166275005709616616028135840292016297752625582334155906812765665585683030963040594283909519826070275549659940704075323633165637327660401258569747115706093526266949314243671795094741915652138892004386932037245782086253809581295773799769758040253641180124323585083921188959340723804664783979244022553640264446916284656493605894866025369570535456519971502234000597163464790066700139201025634068946648166645901257810279885803695234758050506919204976152522200688515756208666611314366696669836488341699870204558283474112532277591895954869336425198534544862131865376622593909708457747151583627730530227248444223618580952886099297880198461028127923155438985843010589242346363756240259372652702738368173570495288274775048218511848880117142228775653628987526920456594148154366723883803399054272670910652005600569611957385096935448859497363492216402050393453367776282700164358707459207872342942662355029835603505777838347012251043845786248461787435900246312627421176101794137387024023328983382878412046959998559551184945391541235553499578302699416414342919545654256033698826389484517721413739329264741643245590092708524717443445049909815760062970041477564711122910155632276733457022469886689596438255147162794839982181492967160569719063628765539525185879660181081950981288806831845250189900314324803470921310579041048942979271445566385321010420860146723085975605148098161308191494653826430667960153659711544126704645189383007282772457652469941884591074167018168763656606467207564127076860496051549992138986525958064940238036280791179328097808569320149865358798327535074732788896810101757387794005613195445427365917257820606757430410687539997408803190721389702144987574078901352955152156160294827339376897689105719150812246895533926589676891608860335878948499511401260176099101631000639394930864149730852411996766476848116376959088492794424750988134513948085410972272071602371566998464320915907205459170062430998335526479629166017429867528098346015665447672500811966218923821474802724458206701625580939594102186567461553431180309021451626986161239619839003957823491530139476505233668384627561550578835965696385252990077256235432813161616751211511831829475368135161370338939149504583170926632861876124184036175899612642556340713545258540632637478722525980791613331335596787881544666573447477988365957466241001999148100909695298897846309281429953186951956908121456863365335427537272840060422039759769281570268597569955274479624317490601047448818913525740615875823671410835909032725263486592048390767304395898009643754442669989720167738813535013364795324357130609306083961283784276579223568894409486638258034232745136199944941869241596622303429897437129485296872995815182398419842312786418968117136098050801131911036323658175820714669419944115344436926861699069864600571240822967669363292338169769412776959670628411536014968755809303033971762821833996219515253618180187282980268106568092847480839080414781361808365188555801041698805291215894896798174931273842454471066280508505507214869042869516748487014275081264882646912172664567559052561011276247666611537213092239238779789808026566586327271651800478201488614084116137532456901488020555011029371134056734563579461971338361141440891136301281351869070033501554911613123575322252952009172482828506821203087918586241857296744580135602433826845818850409531355010211795203601128837540719034836573317226441649015668825391323593633489201180015839267304589304459160593601386248337710355501524031026907296318990822994501768391860785563842233453084331124868429587487403536538741221691770943835935819730262184578166983468979907001718411718665049044080118162229661866998056181661448040475116410109903824721907654417177304985578301637082081495437137898057993189754492792820827323979420328617024646312289350966106159108926538856720068277796447834953792098399528343732006541238026443409903142196331531757969516821166964515159236285180285006324724328169252867176199788827762950524035706795431645445512598761021186536997960740515267187559962215621779189603312825427540358485175723574391656972974298437222302380815538895768748642646426992369676554977663171856980296031236793898363596793137807116305902819535450442863210928250859661672593814178174221775145346040206971046358414445951807050783101012615972076271491692752997550457978831401412573672375945614722739702401323675818864556781202431253843930303265606931447893252444888796277122772472484322207123689208097662869227232973335052851300798667631669364712381654719496258047595876128836090211176495381265672213901785951875009212280281372496603493222607630622875020409271747381566142193585867117431962843489983424973396352299902471550699219947003783795982538610515353976081833579675503374486328489986712070643802941080247663798372139528710378165794012695128944756976282852047339695323420402063642267123453162395005600684871094617788582830707102323241880062833565321748885417380825094004495391605296107272902715393084174958300555904549606956387898091850842523173059157402857484324913654533412200207112342951920881322133744298522466010715074552374099396214970061126696976589369472931576575358925706724602200887265917543866021283073785270880649960143193320578607196149542300319597501093017659946636565385680351495932634814029410687314666727321484973305487498290286252361689148916443425501386773104534123981497007860889453821374514895383100115773119364001977761738003278415639999432181908153606913482548766042904203133871818400332681322862622024331988198284951392700985773596325308909156025261373275037679984546508006547590930414263954069369103385465143916112579138482307123885940013107313259401331323848466435941353435051922747825162314967714651688432659090024876873297020871496506620129338139554408394514954968540486320047813171594692225898899181139141200481464968585581417835441596475726459850000080139308376963614572048510140964464364632173556264130729801747802030295649841939591923268004412884196644447148658115689167660068378462861541894384340815702881304487572150222171165296319181579164694702594486979075739517588278565188763680384485850973852935084320093806862829495269667654789610811186882265776632672824280503406932713653350629600433372715329520889742322309929804444028425843192819963577331112011046792584964599185438621139765048531252120848157922638035878172903591183905344813031273856357712549238487792230813284283236216737857183949503933124736954007485113406032872849496932476489725958836320757928296878769266906964571167067431275480913077312298549652996454896400674620485219550667524683178932978648316567885116652705995676988196542548593011968753590763312450759134699091683937921884339627038200723191307979064728150379953803644192494742391470312993959623712498167035349953898848512307818086231962217515599456249558000471533858931592180041539436480889645395015188726778837586528127498663873276636262642305620877470076363144840344861990261738075511925941123121412760845157968713766354995371167296535610034252573641778230719291097982798721984602448370643772221570124609014993348547808408442236707139220329495746280095055910968106097817345387271134432552731448172068819939916163831071262789335536876255176326688268103764888939402604528397477851198260828941744801607029580397807820554702639035666504908786868547007419558307409616913701482854549951734321448386820191280755055463985883986130280852623344806895403511793080592881070141660312273800739335260719308922307907190765085690339457233367497402779519260429532026025634397699814676819641933255992376493642087307800967373107999776964262451511315796894239365697766561751223489223661420130721804211267352566084632223753436834589323005073012620793556475254063736266705752398508762758028535490926561523907494623638075506477263679880533474687368297118521470035169446480676897845082573443303777920520614503212820589457859535646015825280945151723202459348977328483890455487633581867439754792144871888345051450180165442807324690049942575567703591544329407830301660176258781832777304846085812825509980868821834836998235408951553251493792401286603506592512092046161758376791147674569775196957085308382354216866381378478750316409415264171315136051447212334586253028434913090690656869418905540456117182737556571652193758892446206785706439570269567541003601329734950846941170297401356883315390626835908829887356657949510085665520884944690075002316968712073128597960968197691527147830812064292706279576178212752363049366481034914330411056106467765432182146498710527728074961276504139056094841716548913214219635928116916179787411838399411810293912188947151140575817780635528657771305650955902712588016314218441754107194602599778166141692225914093662328368084787432110734727898675625045992279147874263596275975991638943478102213921768088366696497736314131680143576282478656592822772893359106259622089605136661577904336766586870235562564406213944747502979949276492631374533672449717004421470923908554565631644920086074926716891585466400199765390408562902956371289133057022024032011955058664518124791227962707845725421671181228116771597400638743141177696498959639038760262045398278403926951439325112154463353157873797048310706874281359363402189956479050551315282895071009057725085720772644977860678686949221940075052060531513879284218820458476738647977852820621983121981502464778003554516731144347276215125033638617441204380839756477701837927668637359768408397172023500799609603793220531591731695571158685496383257451326943886188531740351475073497147157020050217283932228462343510422479953537558580926713726588714773815736329988232961855660264726673973352249979981392026387417353471306849806490949559394409650129423765655777239454756235179425135925503491326255501802770489537573681862287043587567846815356380143172113635856774621086017541567953087034256824822933155383041837629145132531377681678147518374044126260101073094512053836954804448850932127099986339271054045457695780035753043217340124084725882035920019940965672742004525211413048409172788206477370128854285370684352741218007176452123857485019177278852167945220995153170902451292536406523462622084190482873910932574574835336042447358810781866711890147156462219045882202347452192967667934570754441816125085811645108199499325113919700362251770305664721178291617941316775970586553333290141794331031555076657566046535582649635946830658890192939952438212435619347815689319398837684319062323868311226319345620732782526569403536784983606040716358007759104784382306930328914393367897866370268249219412329432538706087465989699419904995526370171340254613047794024290314798904566156206187213723985163483051073807770276439125591030154840619162922449466761964804867763226395680844208874454417429208318303116572388493242566895597845943200183679739398090686642611795680693133608436281172724719911619208791982834705443438786953759918124306060907339083277193903217197618944159816133381785345588822783088273946463137619492621991290746595193201554477569220157544383959702201901999549857528915630160402015350372185034301181904217057594938883720758000928829890858558648513718473919440864933256681270516708591617420847575836729588486118184674246074049222131770665592861185488635336831195117808543077704796838751901292649605720444986376716307119825619944530248998072596600814052880656125895263409327241928957577967982390508078611313793097980731392837070933090873070196779735405088604794080597679609033351907707305163755163630703459300774551713410265273179020608174152688713577853153841488871812307166233305216381528497971457154736558314093952659888293855074829302313216165125198914308317491575344975104340097062898369192368883043553475295778814441662901709951310112530162877761012078524008340653201804369647900250877826523373409184697672995420413221970835902340150667157723592815252194830911925824312673737991657896683101730335159511114346939088288601453894964008641595875550892749248083423305782149040763215046118182990977570461468081212030706882119056114307918611855920719617186707674322751874210127317358500868474317022532489681254109703432965119315810115291543395725213826742289392337351059912366474304610268510566921879700710227663345568191700674861068385228079659051658132227562049275398641537787961309775660394685035618254368703132598368629525706434894120578759186122373082495753752106173310547275457526433892108522210182456337540771375416681519183847861474137859085819518060770192008817249560432226498006406809682402120849088138199773797001610281841387344682614868628490234152905834409188068386597136410918379107831628505207861451939198194512731051145742727212423426900548011309970951890467126257648659093565739063306604250076842464202580095670736726843081886335635772459893675712240093715531936926251683315603577848452375858893090765907099460979804158186542036648456237580204557079028558282764397883018700575909361869259358361226930539968326750833571553644706023662000465969819148843792586537960374983079399711621965214885695765021634743349439463338339847351532870602764481051222566067661160202399122061091584265607499268194838775420408109224713148060208694520994946429911764070726224480229899644998190764240029182221342162894274650156183542063264716337145839184401729042089695666975401543548071868072628445715265525454868183437653824551236644023055871173781838633806190188497184478172981701669570460737191132948081732653586699555506333084555499951589503084959193930261541207931405389166241720074640417561825230430375287168074267977255135637270138415352477455998761689743569148547506741067229717198581833465175435314885114893516333387672977634817442048046473950877530339013520462887486369144860980695289328393705967726625722075221585622371798276596675050888033594031905127758985217809144260309451049227660767797901912446222252923460448474331858278890357065815634574035270288343135602429549644262130909304956528248978140521604453102283455876274902448765124103347583603512278983663373590237161655571938571259996813066613057144404318700702492870745540298468672591710999149526521221588097503837535773896892523791823973355345468250586151275282521826568062930181992255354654429649519861093990119492330572120592844119049203058498949767081352121472366736434562962223072977147099800942512461243942683539211712106987144021858485620339362711803990223153616287090890352267478803150202903321160507520682929308695206793730381480144440007418129399118100860276111743682864437275769840804735119736747109651527749910355270650794401291973408050834617292597966947028949780469866716552174584273619918492166638239372487605456887200899785523498782307970348425253587914403072168389414293263592504178748320070183016052763678386528186247382544507760597152455190638274951307799536161124355870728799758687703227967927237426328476862843434069077069421116776177928884537288666199397265634440425965624608877754237327154427958995971009489904282857192674305196298558013541383977481642548928631861259498265024604348057193549920440817705552554294045812143055728726708709982659460086085424968946288293887946718187255214457114965320646063179441355302894598065928348105310388995340461000713149541966062980935421393011574074156697065641199250437107441731652212640809100341354515925544690817836598405016905327925845201337169938664611150780392529560665890869338004272078443508363322900966710900523433613018228321933792919124640592285446905442283930311567784814819016094209653631544784054121963983356479191280406101414256257082214795501573057777285716501240833444394300624900451637277560129092408966874638018844475563187977394474959044847529287331578048252081083915574046471058025872700196264422258254641354068713813784452746542475318904180418580579379307192825246943739680057846870739914506339823493674533141466811314582165239986897900257621007976720910338978650945965391646988874301419621396338858086948013568902496918023815555626825766062977845040712271231285129547614212902144778663078980441056143519431695431046816053986472613772934453038150072048433731420202828269235217736604112657191922518510971119527216901432786414145881778677166904626079189981335490041768756541647276596243681654246522517485626926048396526325998534854004716012992972410079699841137622881845131064810636937806047410518529350970735524953870055008013499465281352066343020269239804334493930982913432657566828742979484118222237401605815793470613046168137400253162677907234960026086930281542828606642741118927312059453879846451815693323672960327898551432141284355453070700401839939561533912947807062025413702774977412494404153961108388883907745317307675057518968550197350492864180533850590782485108065774440052750183945023542799513528145165984262824370984328779000994509860965351217150858172468584770139185489822487890020311484337197363316671452786484037574597764844686263142722892798565835694439959466948532554652592929358306584966872446356869586005038450495510554867913281937346884108299156218014825306355064806454682782538402693157593218712382025224099606621452565944644988212005514876801931639886261116505014802551451948993506644539710827601643443499485587595184623547537037104713833782623484074376268960432270766814926567868137175507449677209804493504013802924267158362676996321905801472929668044908964394488217655936301828206277702784856296264229680912276185917309240773906658817566730941009408974188647609000620380126955144052484515606086194147976368027912076000322999863113666028588660111869885824760150856764757162722364744086826499628360469524943485406778505142005635547008615875626369556705579030743858688478620539517016145786046194034755780317169047653958109942533672330768104591364337901764675173842647947323335942456415037031187669456484227663188405807082298129485559410963880197485527775507852559743458736284869485790722839884128498446305687218829560442205292609752562302207651135759090226066566484546154347445306648797882451083595475490362334842328796075545065882126441493424091004754433235127760655309034181275423406289075368530158740383902704643552375426781165052155156434909343846939121807300814557805626073524429185915267559368014427098778958385177932916778466403995743627751016784309949635612963545760474484908253566763791321266121763830024727953412619939616740487147973579260804805591048471921541438043922080310146757682421761773258280945661872218177748890368184765579003686349934178904367796647416804777062604396949765874040551581334356324848090878305905754411717642705951208035065842154096607238224722327822590540509455679992276373998222071821174340006245791054754253913551283274249585590801654663647903968158509845847152465224596225784237429483734578873516677788623006734188411708956902476494376408369707603510032250473213215683371602269031262646449155955945768187003579478160371712727719373077897644966064294080155326303608412936388896242055676319243753186693634100094934272365297050914588183524689996352778639303766239956588448436465872099555017397690942335617073688089618795717530648070593046955147518448709097252257762751689049020357474407293524349439905983948416292121005663970061348566495063597561128231343833139779975982542589678797174258871007614702191526674257067504872152109028032129448529758006482468278191570867188848801107520714367492432841482360104159352836848953733677643470477547668880889189543525944646903641192324050686960022819592886236940364888199452169783434038194288960538110195667208905495074264551750746479447395671320252980125960274955684462252925226393853762405290253801013697289222785798972067930074602184539275303366274644370878104843106849903086898683538974221516828511244168599210176766326900652305994723634164446704250149107972778342676141364263837928132559846749301416607551784451078562708742459545824790861125149554896943345169510931074596234634947764201790159541276896181450609565727226910231860476916870334639896151510345393278470564799957390525228102263283253868765385536510196521269144224666271322238663170158122729175337876510375350823805721927548762812372054419942620504253479055504052030721511356482348689227345049541082176480039424113913893002782827878170640753102480195863663691629122791353727709215174959271126529814635431477162489535174437077351801553388089670818997975954982093379371149921966543896975877784907838516468341334588656188184761975636842921454489543914580023324103796383283170449798442971934498901622119012996644662194617337185978536629435620571219512611263514529101337357769216399442562132469945240619949102454096280547633232297149053468136156557283540559570122537701561664344442719773762070857446396816691780109063681455305585544459598146876012112322156061800999789643852424201980746239964591791287069998248354775239934269291315970743930626838603786601665471352670925569444668197564951122194151654087327501347651368350850185832937110506485554687223536097723402727958878379052315246045386490606185520241738836903272444145830611185481617977454959335518234166143196767820545365999895194037464557752144689497375414079019405263149205763824571722197888409264078348524103060452959302842270650353442949706078788167649177284598975667342846657806984417339862646748090996909007298669105067487085591988859270006272718549668951373091304266039943548974314520031876068980808927341085393179602408623219032211822831505441075032380593441591070808824628168460394882351860245997665090029751917726364990872029183438156598999050596189297566898616165466051263330702823633448187665568110564951421137082837256187023246956560643910321051464180651730502841964154381426877910306211519842878726871742512248109039575544680320436800390733935860548212295418460330459217458247585324488779927433937581249754504498790933304725240670593565895796907474370089585937062384220575237317984151448641850717333260682502238005881639092518655075525850387995526248167455462708009695749914953928317475122553674419558983173798218693156258330221319170439196264907885420027261308025895249504760839143883667556972515037086467731654259730202375692489614124927308727018236702794363357297427074680295122708589572948054283356456317224606146261668703485400844751319205713624814076508722763567817576454257010169833594009019319914416468592307047237470912392053663865274323764912474007954975243561259015144565042227973554557099392515137584418210469378164111126230916651869416007803930645456971405555449872236034609062884798292770119422190767962870787729157436557593234214163131296136761279590797912696125121929871914025948161557655750462719296858649849286237927811261046678775908938076660747654336869065029948539912458333453868787869565841307852454938612472741422323311042249796411089805724639255179758448154142072493164538193103640600579665149116314103338729954639525533781622749569161584624648580620799318212119121136798865510359687332317996653292397836400479799287577813927684355560225302666099491213995022785289449005164961401321173605872195985251735872087505360753342359360457987878558480236831342532125656057729943062694503427968202786028368852205864495169361985307137958541123077607883488140127130395357771989744130390100956823460977728029991402394411842239348357673911515629369223502525041184146944728023341120854258721347705363084981624055445661782721093692159305752750255528109745651438248908511682989516431202984898020490694621714800002418570032249577500593313029453270880223123593566295171723501268486737313725912269481679030822086729649015435723589794209083530133179556846298512390834552492686218799394791188459437961476459379504383793836630076796189942002751717530849868945328074852209742170109818610914857185749029418248481472352988290496528154304085252272932519778884489474511690363136769072990084090672375031100503204259790615334138357168269574998594469155601018633492319611862825713927445397459064170379910795292223653203282913040456960025724566810482758503336758698455756073364650588229032811347462398465981330504164583809963417508818479433086774744521825040879987609830275926061473651462496518544326886484759227936404343587021229273797726393855005040410368753558316805310009321313473154772934315126709312360496831549096653470911982975302117947696666985207597436116166712452747528574575326719121861112965924106023226622678698391728370636313751025640048131164700487242675431320675010091551996221970495892125471580121923275262547739028334529043161076476470276756882669504822568001944042350220594511332842541345436389525740697802291759370687308982741795356606187172111527470451079805418128015433529159716692400540876863609150904398274179009804461742976453266657975607093012239053260219333054051447613992946110551754534583191232614170930773102273333809194289845105271292592984428956558235626000930285975846766056773233981644141842853449063191767687391863662931981282293717953419483619160738798272803789158421450307304364152760466417483965558581465756310767235034876970239335965794212886596904106855140999015080278537052745332066907933519096921101930405007623225417846601823608624151855414686129647163706822044125837058572605887909797610610161227537605588056174881060343446210840850453902208899081958934024573998469399442604902334172694686438548590242459896144543502208583443648225528956864353318028505991883234813017504829531985446366922871288242331714998646108422895573104339657813346816236641046804259982754363628949319177167198627871625384874350809000484674610933985412444693263432485459793755905824800706448040163126835940526831855635643966488580998625599283065880454926230179589778803818647186607805880201107648611992149178205143528979903879724445878569462779851482048285058456398858203796583017969092661269186664505258720863763489662087498190324428236586380257990283043844360751527861463875673776166803876629898523855527231315363203154311908225856634083657417240612791640534200014577867491000564532248493676120617987162513473993270259354373573579584099753513605373711653925788985051738259129932428574997523114712913165573401275934462283965452138517446785197556534492977977423177766916877143460953648973221488268055365341525065529722445313538627448060690342695727234634405489887793110967486883840404721090129813125434358612869319163343054134082141377205694793129403670596300279490741173895782219714505744299775464331852166529439199443164497481488384063437765701420045118496170242531255257192685099929278788641361148383380574666563466773881103008579337075611337202862099517749129914344390746608994986872682624925285682575072575699622593093598405125174707185276370150047877627631503419371433455673856195834701834074015623938218432397254422868192436681718090032205017937385570683389014173086935318267366906262498918156268650665703982073479610068599917858098166780284997428923712878508401039849854395582842690032773060293143957179365260867440812430928852356656104453465664544744283150005940270110747388355122000027798871054563734473086704464731520545614543000531235615965622349956003305368543835506953748803412533188714018644531306544321363275530648428278492509902269030838466983215688747473942240011426225939443525598175651205653105887152419459399987258435618722259581041811761964686984217668386994527827049235109460754803416640637534408913743372857580036798338819465580148813728378671014846799706595113670230756830347203201404607218890256735847023464233083915106474111762985298322327746004760820476256059655864561323586804450024541198926986682547256911057240140059423231158308274261042760972846178320864455337144646791060677566009925144291093839277875170976070029225019714551650055043180715856849357314412136291992891795147695718839940145936174001861152660809278198894504878186552552153363477864636282253834168835996362120044583891679872501151524862030958916201170063447148533319242486583902693897099019693427055623355124549023052918827037094564661617946949935948421124075279326225018133521373358302604141857183305437762761631105545055815307726071557864313140565309765725697448165708205023231296724023689118075444386373754074958946672167745789202366504542003955364621770491694595032555360058746799126756136064571625433353594252461361374023778421918027313057180749846352768287832414089757169176714040883857572820389495300281461554292505986617214053800449283470668344245974907982884672637913728466898051445142398552518476481745370477169188993563772147864355006770565724655033039143040181165276371786157675317193687380051210265819906578430723124244320358430964970086629435258109598223626421655523151387776777332531007489808990767916156457186083892057056832064891985218839838009526297325536165982261406655531450851939518538679821220002793985522012698463476730920630871541191148792754076936411026484975662438846902650811741588922049373981566192448185722331083574921241656436019251353240367443848385660544570641895371426962958780432339658527403234251402615192664396141685176680257690648668649050078675004389800812346891030794290380596266381943172889487874284535596999525079500050269500137979142097347189819198965678585939222927331838363444486596285693754492172787917889145883333651836336632534507902643631343036471152950939028446262265099971510425010036263429845327911479684187001063389231145312724146630683900740719330341190744587461097286999788996343264650628720185494474147791874718711104067599653967275355378598608070935997893304125221106787089516248352349769355933605708200243135172564466548260851824135503255165757125508315407898687379392250229086257768943048947377427564338297349093833373158681881365682177423078940523309978977973687849800112835422005704056102501086634167937820731539397859694119683995634574989820042137957615151349597643085791461912128979486878370628033044546193401185405560923515802804952625552532899950034180503907288767404935267018939230321115561706640362587268323132791574625173806306846679164472107690614890703261673879975307096261204569574953743247971141157799065612077307227337619677300562227304034114212155135693436249921340441888936044829507960619463277122560217221008811765948552201471074075204046799713686465077176528988554774170654485789172479884334054364347706899559613029969002518805826703697658926421029936061670424565535702649017954003762585390447860800763807759011970567236935664811446857544666566028753176487534468273543525558487265545821820144936790434917124904572653561559127085900799264313236040597208971544677886520924265164272044500610489383194303504207563278735871616895094461379023946122989753851129009767972677148301022755079075166666073963050639858888849777636767109817084116671502824547871111940379297205165139435043249605269438034799114675017441505519205216823542581526766085804056991058825180983907899020875727043834512361020866555053365410113668413121680333287615857818710488933570256374903389729810381845616197802871125557050413265310550473807410348346225629983147672508573303240257990394888226173798693009972723998660693746108445541998853061089991271895692542140176844417009537401280047396378514956504457032016645182633313625769422932976626611959081416953445814351186747293807419315725417130036767820480764626918854198527909833338033285204252083472292057702033788494394454169823273341440244143423247085164801734562056329216772992413487709610032584978462999491871166650359726099353818991836670166393140570061405122135180984924928134831204928674491482643392961133528447616465758753836964090018618021374669681067354730483337916342322305638755706937932162885281769659296628795858313013740967385458614935423364387323697697195050473917637536609635174144578152879395104967506563728347853503433106171375959504723044320149807377362743164342120736346817132317289625187017431883527910025720098215384854435564625426159492441623665668207568107597088911793950383805632029328132106225757955737512702860496403114459335569939330142396021744784276777060610509941246413640830865363560765845592168956242574340983558120527403608234533847093183457722461842170200396552981476459292875817534383642318886081922577009037546954195100058458079476308111734231230901508133467265491023673279290052245275747581550428884973053827303810893638476030078084940573845302098190915059853771820053689975900296033075426540314333266512437311400832024090677874173258906215506666295258781994041169082892845986821692995920111730250272422579083836039561564663209201276949096125075097649483059299842150943977846761935106587597512280599606222798676316625132191296171030752310865458279155414520558881308333796604472912643437447841933942894390664969983947747942902869085838795332494465377435464918076967450910093362679573637259828869768933244296882854921529052095050376734135923554140912274436002974822758242109981860704490242650555409137892998383183550799767290718420946619274084250253096996291803713201953669370597587987276681232269570246251208148820868706170174200739482420412590883858505007007138183968414361720658512794606162640260952978338679598820621394593708650262584764343336960271589556248049977787323229537388407425117689588982932417803691905711965669420759529608388157032854737141291978764893313911009809149994292608898670977931281891544733976796547390623203310642997667132888468337557608484375615377703760230418275865656203409196284029429468845633246096954594461660900702323670032349818237280797174175127733755970395298231982471902717381215782306955071601582277220073178914419088682458096722458684713538198776684847904562160212727195122058029786990422077940971889232677833873781472553695121543117648678007161107164195477973910635990466366586901034615105797225287024480824356759216729153877883464725185229523006785699238315929148746951157740369725597108831288399812371566811602766682868959366139956897556678404661382385950017285296469305582988347256625039909026377509311057891428999092165525901342910427553130538123472799745747636944791896507818391084227736159237467034610757591129766514681040880253962769037723159324982097528852890083483100815555149001119354247550915925541296592254067445059467266448665414836451708618150230955688194237428040863678211958975302855213394259755190245943476351309832379762426756384938331272618500043029780616947577636117662812947393239971146212129765879369666091806580592046620237570757020358138265202429916832317173189134696689624121295663972519315560785441874940080444610495873215945290664814647889156299011202672372609681758971188625586279464426832631599827625791518917426750225182583294371423298165608305067001064117187524636445398115995321280063540557569815416966003522221527914999024116893658078623946664872052926687806211884026421145862227190080834055901992122945379519947506584561619743529275293728851999478806452333735136860793588543328014317612785482645831802163236604896290392504180974000426428766859470526349499819636908145847276586324600135836173725217219384733700494005519304251834555992338447184049149122243164176557595899211344401592104198423980041375898297463047878184736946355749737290398604814246783690114599777766790541382787740268907932302488163763796062602726418365100122618881189944233133503867911813521953244100218503628668281110728769432562938385345593241715724316509580070142990068153737514749150028360669189286638808062297004499621580580524678584015556498064280398541847217625298829996063348799638905389202580628542109652127648156002835488984073383580461575437788171616640397022298750290534713480014198695073678425799704793404228370426504885564759945558660810515946610485308779393085706379521560530519830214242088957539350943927067888195080167843074497879312221061735175973945504229025758184049607451117430435945831696490961952604564706644554883651939826817085839493429713539796096737723293308942772868724116964550245306071173190223558138363112084508328140975057440907231164454147428825189147991667778565713625751501158794697265910615954956162056154109930002132588158803222929354483504956648968799759150785271505029717520355594310288577753805799876417647803223712769076767140100764935887121281538004940237004111071345665671226447120040110593194567157494005295618720244029952033131982448565090497084889253746055843236245213521407909327752338319809514570174720966812917099375791469088092671662105631300859691773016283438449557925138282693747173568267452384286016628683933272274724569505372957209366443697119837876023055936271834308138609683746948115722971904182285385149526571917484988449844412145838749382898332237742740368359960358092659476994729283110669548632730197982808633807402517862280945047632444993411598488666605619791228769620078707802487193415376312207523320624820009047378217610587717204053536905975791889263000306169949418387394223031856840729001914473501763414858033420328157976621860849045831555269206640645140813274101018536071502901325685915585562682510809541382099707630953011272932716839192986021427649186111526628232910204995716582276297524267894456638518135509585452052734696985841227545537828361581859205979614060461686302299504584356540238138981736225723823794413201941965155691924606800807898126222800454515811608090899301133274907317127915178556247843469625843010920530632310482295751261384665025381911234051237766258708788137798820461700818282346158785235267524925461024803568609057166569353556771696707186458183849779589811259361979702669722219416142112087270073544811061027387174782360116476475666890420192280512187678032970909494863654594637292932475874954947576443418128547879354345219124938158156722836526179028989702790675192281256622913991401925509928905884598932865193785997371833435419344474582752242104131186772635360725432564356734509521675790947210268577410131582374938883176742497141197680875702055180472844274339880225155196789635804924310341378087919024574667922790490888739914696930665045649132805693798747064314343122403620718956220955701384585828890258627289050396177812981867521330773690073546315170587481990055825814532795439152511006940194497999902890772238538054258716103029068257773937691979379244792081071252999371193850781305561207060745121008827827332561474113441153064190748528089776211683985344330868832146499215062142488533833886525776013653875444885965183006791325887597662573710317428323273446884640071714881523849499036239339630140564985580974095702493161164357319170312451287705544959935513976017272384425684702985939662615984795166736748589309562286084096655110272844602654798700131846977235806971698070585793790574243072844848077619479094086754423243982679892035780217509768347573653638642777487989682567722357562515981601143326782332497233867162786874976291513078241251818571364354473664958789618676647375111477203119191182987219336308576658255875803887191178919549211463646431701863602142812417955619571601282852097926084963186263278620619528036956646598061393970924395578140195744166323492952758574872720101728433682202704886143808050188611685409310645075297272502708910591991873930314759449889582823580981443551694370993902137104703307330031886267407107452047022395529028053333989740049463149514742880423782533196455866135777155334115468206834705927470699715907347230937377692559595619511015852388873918770721174537005034512475176747708085462271916077333342181004383911987121758339903581970991915059553502761365718629006091293926892011322850264856398754983880284403741793857572360360639365526695791428920598156443822487586331369849933135196171783527161361839805072515813821744154125919683609661895479221005980259133947256712392412301442491044788556342578326545142614481043366789643117622358067842244732011366238673489029071913013051868984759807715382664574435256903235464264794735164678290192229481108630350724430907445606415101467743245937678169086754235680488479499134444613266537158552768947092112984989945548373413864173205950030390690642742341711322777447112841462456000817862287700292474281349792043748439184089438415465852015401767043398638045546680420425149548284093295190499984930073826645691282061005580170099336870663400300107611353655303981064195629041740170674357064969266327588320030745405875352715973641151267905430114364264375730511745464026980604141682097930529584159207639295766617782143433450310261501051664984771899631669591998703798489024924122250166221179558203589713943718293139221646279524329653648394938264500496207449188405296439375121020458201563077967700104441039983725018114322242543186312220371442925326776158156555619259410216298415050684973757511922710179171986576116617138548087074338714420786658949030891337134099868777808187580642663193494204336627448929526242462571918315133873956143778374627824215140800988155136181395898475595430110205476492993719679889766606666754749600822822167079591453322516972749703801127075769430229876138843965323177521985699112878514425160816375221570294245109554741018172540232956451651755887545559883657186454294076045753664295982011522134845987375189264159482937252526057563173667444003300908306944592938974934109599026384808706728605511663459998468743382098545434233541283519669819569274800992257710816967849629575096229778258529915061069871947494003064427741116151057544217481339212606194167240397618296354085335918118398948868962914459139900691055788554068800783362973968195507632535291083315432345218318749089397219755902790680083491964993773368719038985359426083914146294917532493483605543363063503771934118514884775354452415753978574146369963471796501888800629428445542696830585798076648560961052948947022302956011728220924692959387965771504277419056842507190420196592756448758052632142637554253783442585348029014735824566025210186883800865701937384427770659718993348657254799777825282049815858811529131213960083473903480601857368477388554856538493756658231972999756273071351215967091636586260638136576752578136458971956897767147640963855071997895923758330086356541473480288466141928432763131142293641146540431148364642822987721829898410960118638788191077007581466219334532557078157784276978793195928611563634580434068314631520853025258688738923753515910231583175108329242199100447593525797343007144358983752682081623441592383954577701103871422427137071416195003231121771169580880105494335525712452181771565250725589111248045592847400126704147970298711945484924724551862628566569618543332425092081861277810491153257661484874171373701489435323474493346250715867708219216518703224219511261696163015587329645099660525286899213376051694204882532565294634585670810748952552955769502957812800995624525289111467495095474006900897297306170246714576211990189135618340640793089724899533143724884634386113797693414243176364052165225002202707628254900686161128023553274370380782344584349250037449678999599847231455259165478342513053950311083659603541176846229728685205022617385271082421152462093562197780587271223879669565644623907216196675704512647784328758369332440817716580043559792209588800701070276571817165599127500316807673036433521544191228828186535807099179481270478442093383185579593113985084496584190211731448293898456585817380677134822868599147708597054523386786628033866783347094191974838054878634576425792237824345255139017099974025222711587663260646583589946487771302709040498348429067974631622938315548081396926456366271184893418560651469619345778695474264396825017082762557889004634305320969582700136073742606640926466193906183490191964523482595536410084662214789017228554655575638353373049100285405517547873252628514146132938837521564090966514046660367764391951269757410559820304744646646931483284700431212119701747228042860122358238664624331752273747641952051483874078290594859545134769646608820975296915660215591331106330828210971323967545601543510755201499596390134623234718546442609339371151765704800182419054722296930393459582944369892220471979254767616619688661536914132138881654915751503878267838863260020355244635322162111753550965657068960896028098695053334763315707677868468938079667291798576109119886271171253697208775721204538733949910995491743834740433343530632511743232128510128517920883470205205748720876836786105335252087745047027809788491586625026748545087007432140150071474160534811760792680371117359353575314611836619262589304518627811503421539602478771308722180824910613254739871645215799041334621920856894669562899045909626739253032301343148392909952196653732599678233217813278865086360876387661042040341111123691417559191947130908291960379507132066162861083402414132234357129913478151279549587785992377440554320243528890892093658649562951153074288684079974757006569995868137124276558432648280753871170791187693075754376324506549730386870623319878488411689401794151913643920969153174824799613869593415547276082003707617565072991836841106433132158444188658542752515435545819247061762776692638601022956447872990451346328189314660478001499534458001973135723570983263206644529547536143602722970481788758324563373508993494057353240893327325826202873572990977132275837008402764520390518146600521203136520307484967653658884664260833286762322824237244105350842067095041645141572054805158533402866362075344370360330904358776394579956008495757362082746760442726770924168184404876639637574913463244372634979339275229391005713459681385932192549929324978329998400894282288479171722215914997412701246122841968645746963042054538013800114663939827666246877715954784956060923942346562638183698581846520634965608280444226583199691714537958630435307749018775826411971479565668933697823823779441617792954630492479616546587002772396645112637919931030116674229912174396592015453751272864328177875733352365761856065421154448080386265585538913218657056889646898237959821071915351060407794195030232402432704170314141319333241375287058099479058330234273233624388946347095367128564182738369754206912951575735932483858877393468297185625646972398960964813800418854822976724931714756649083221499943144281969925993740190373950274744539494771724783869281950918515299683628507155783521723393923244075395006728780395340135973727902541631080137533912952136077874818841900001399156987527280449465524996480635515615082243099540484114386162444061634364586336795920789751393616235940224971437657391842581215573357833297401463631331419714014681906417609141867599305441808773295638873188952351292832308818742220434245283510399898840386412098502860728560273700836643249405793737220892412371322779217702134038477229621495211099254364483963201104310095532931713138400148441061881417994052978618951678462627441598728255013503584459934563958817754431602135000791115742559359191765625748217888459246823508129073876371111128206806618536905515821617723856313777235218536352035714414079079463857796458908239953820269044450723683766275197705628584242919076449634590243716300887676517922221549794326377385058563740057021773042481489356031721056623590387997352696883159633623678732303892257600571140937474443241892267154549920256063235632310633385515010790596170630882210372250607151315166724408903904698201224215407949761482115857972060018698547960189552726149959382017037471116250740023571656681240029090468145127787910602366759833797640521458230773402727524476531843191797699723261254350816006928487134315288100392004164967926406727010187115629719131222574381334788561491004074818589489366687210095729566801439439926477340279304179822584219320777931346869584245318056493373700718017104627194671158684899032648435844032614024134925634397999833873363459327989699222474126218929728726153790609058650508403703710591455682154702835629757397206947114183151203946500872029330533816468563160645836503051700727910684198352372008312035645308849548347935634868216251749262741003004484430076718991911399131244375810348331652130893303579516537512325001640848436646585166271686237254234935954960336968791255533675877289908394180182823579017734270398588003438925003434858978257156926455640386653833608145007159179493194781679265377672057580867102243473615770251211393225791834016887079115711172089189434389894664337507863381670700973967776777441825349919472452756542229667840082787332719550634987162183505445339666509041088728863070160296814845366591431664093006624277323021598893868570371939545189213147783908430717345210512620372802891888087125671152094755297537450999986792136561927471601538021109250772097993554299970201998853626040949559784003503337799149178276608796431878616242432991510420923730481944649763037500523469493368036303342758997460991151550820809708864977316936921426848087386310855283055675601153978310117720215589011041002429167093352180744634502401326872214442877922645190959741435252715003277157575187010689344054356294515400386276529549253402426296294538731640864972976908170347428992091394815600066297731055920400937315893300085864442715953336771599341868408947614070207975633955087236114584047797859159628923914782368111740379209600438870334620271308814655088529392409428297203534696555161478618991979238826520690757404601288123970735140176518260608346824447829750952947851809119948816635829440143311100584871657793547667282438377467666061296934624105532956932540413106633436797224267700314713660419915345368097108430938153390258070287852608203203095873230749380373823900946799029147656223751868247972893796949381400539448242316395495960804686108524867150870149055482246272912587939515983176992877678126179431442999248640924142843596868867031630641397347763051166110923499616407860719308121047483728033780687202220035604501148044722716675825068897447929595899641545289258243328128298763110788726565574219173718004575123666350989945083542490387957589632063187340445562686257436998582260829727125541066609735011581904005940443852183660514054325617091868613775168520260306797188753436457055128364076650478324944555798493940423253909973162817892985650748069156576316384320134072412563276718350799553645927504318458858034645014460137801060655221135221194288989123522917423973994389346052219825085765093903400609067647507511299679730561193355003968380008325747202497506751700074781388283620632193656352093265982872071790447630200794089263281336078731612150087515097319705661482592176624253020032103282669808123882395775270482950655426540040577063690815104155343443865216803493229148949800226804507426837601867315451458645081299918427944891021735207147395694309156174554752961079957236357637172319693828111796191061909794348631731744025932645440812491855163584116001397755557964226027876708950882501451625702499627934070155447964957615056732602121977150993205018299627529945486082587304663558404181195156957031790628859455799212565448946787402754126262482070008739476341613324830303490314001792133912452917296234212800956063057700759399535849988530945093914481769635542653317755211473357169927681095891530382199813415104894465638480055038769100210828324187760750004403118919359057448041601606402017841393296137817946551547189140599901843170251101141492565685691234855112352861960886215551848962989701532681534751269986157946195894265000078917570556126217142931612448186133632925463123250021040541277756545243724578180812561637853506938019311168054831148266780531657586390015569526310382330191782671801391857748041295390793836763357029741850815812047651102526672974148565473202499629053387252568996752066721214155027330048990846567714756824154029017860237814514290896221654806484815470641014049608334174517390480796420283267006047518802028612858732673821879242239637014227532082717317852316731036383902922100267566874831043348198134488786840076238777227640466016221189807456582731951834160411180348970638788166117330836891110155393106642259287997388757007132340492813737766626138323101368295635033895805792552052255955133950271486106857529463759808798310927567310909402884906082719006373328169953711730266309359137772112930781032079335020203681478986958153276464415692197880874527501583527786351171241009093035845076562219481713976979566592359135481912662319907831753231516315058839122991148611666265949476537775535891920358506295091729279431832532389206092279995372229648367080442537970763628696037523465230434524736857669562898447996500530377371027620125411930178856606179212083101055099481108632423772541168397738332149205494587236740500629841546488934403924549491087686081166954359735474901526661166773304445823672655696246902598314462612670742397413186371575382334982106305309589291215273866958908514887458255570776101508878697258927354285496844569448862068403232859146421460813597367513907964086033934826580475257065549271236332218391375948228291796180448961783296173973856405294145660801274235133553552629919096847726837786414193122399717505715843991589295555618569153323430397590006864732904690860815394443373650742809058898395101183195315521213805938317754844543913117543171488883650986772527010931832866510603105406901248435073610435649765178551016799704455697114845417130949302246710514472021723729812708209440100240595863074804975097375549048902791588938282507473896984818647133052502562804426576365041688022785200765478231051134545924020914727342729433479477087051002230127415255552048654159139373783297672753614800059389054140095472427211901240617585919492225662508606253147402959781144913158736491056012728663102587964852567316454298432292366013813164847328609354614127822932434109173410191369839504641715050113461566534647665943840427196000539479610007829442911425521381097348866367136615486026117702217212781037628522077600319929872332549061897132392107441308622679282553168609425381231949704417389171376596912818866788066796347278843741814128380794793989950493019853359251283652157025470453352520911059480200414453957038563193101668244086069917163561160104052859242519847160257236037973462186181765077505157035044280661930493546457208004140784744240764347223725724444400104135204568817402112546937714498278488048193902169067766985187033929589837676329841053106050304976094017669118634492267018876015078400533966935719326027184462011604813564028472065728808762063728898224658741442503805669053831048920605216798841459992670811853865169407113636490100812267783062866318082660858904353880471682886961641254833916783112110985722648631401971439059468813630083951667560407680636814227395285853146359760945362176772962326715687126406826454363763410903073299956393957727458528918976952784275335803576845159330920220082581604978209624738643784138193247901392931719551884093445191905672724982043541355016268948367064578696379606264040611178521243660878478053595551924402544099933266606893238762151761777316967272640391613127713701050739978302826900876812596167569618764288476256956974110999193802166993726136279231580209325373593706825602423805966909916622983645478746687904133135558510199152363902088599885254927965318821883921630312816706100540801387848974900969908051276763498072758680993206744512214800660372647752751278734063403115449201908325773735935870691196065280033822568336459402968696419008286886137033306199004385186302273912093427809643770442923500311479318724300474914744085340796017712032348222897610655005534572038099615120542770081235124856469625651446860601168965665442592244477052367808761538137683583644768145126079147060793446104750155201983416234218557435231622634581348720001411260965789146073475916528936809955739748239874596091951872718827839079947448260430670608392781369694017667511798116449973382959677488063725461640409520293471919140246040337227727879569109535810513764285221890490741694970610344486747046037891971388085101247766595520306336236396309424856174569994469061331236004162849086496668744331169550149555391635247178350336753762050397685307792419362795951520776642859697574349481413639234016681737378518966125934166052016799903679683290179541286280510525992620271758811880315636002170589195846367116327027388629646884414878720965744843784351766507335009842616459249476090144510526470440716306949199170161757315995107216763081141189708313189913152392496793057011439822630508864599617086173733468577407925158020091390190134082991378897341213212426876096707055599145632040667138970337832494252383746881441942201436695808805247393989822048066575002817706597181153983067062519714510375606105494843810879832232231891343839596379314762591760688791085619695553328578085621401338262970467859860302553505960395023203377823001293096411828070087647226581313159637164140312001951173456390649399193636545220485161451296944537649857362967209501599491041657864963348713928739287113064478659559463703736229623451756721833074724933010377242309783246978286790323297035924123539188936647422086661344724448595411993954888065301017298831376453213673863413972029426154427818668053234822910465874679330911761401498220955708116210916124753632802060039825339656903390366975960603886962506825129880971463676624831661082125374316442806432988955369736415318353365320196973888709652649585865411570386695509176256158186671559619495552865720507867230017664720462002424420970839929905485981497657020408767984712270714415147852480286696960968798854595595537890796298300391192416871317267360924114808388154304173541061732574435083547159222523087340437637977586484173138317525445461953428309375073898811609517133876321622125360058728773331363873063324969455003078227081447474810774044254707978603052294760166961699127379177822174807556614806718046034977530717607080337762160330110750502630679488906855224034234667332272024723058664398571089089995728767491845875772437877178006460365959146266326841497281125707745515482889333693215712545502573198356759936682799396634626448689817679765671118369772940445426802296751887565140070553701750965754228263691575061823181542766551766683444565985091382075130787817908265042989282811856250385990806148132586972467429463177294953005457539608613697605911754679015008636304872093122023751498521757469443467054801997186301333005793741898724424740517953868731492485332046349112456934879411331343769076929187442063392695666413610690123649127534812798055699596248181279882148917594034561376400284792182529698311055702474121412805097644249348681757218204823042979589140984897219366631061749521209521238329640179801854033929014839651779406628332997680077373229098206090944441817845610713696468724923137726739386863179374869373524044000579374506416568205374166041073895102591203676550313599504123620406680893179778605975260232055214681980622309382926283053783281511079059092753952219886710784836357861381421131501987376600017090749795606792697235895823732289479587010061052445318291180283187296165437600903466632606602992720261148990277449060098063778485023391665634687169552960803225443437378233836354411220230910975228036127902620710032545651547431988815879193819804251646074048388832290986180472828050008212947879032170774169486170102177643111172673081917622238397568552410340469746002385222829995773798898745742008848013053905356949039342929450452976774853885368597228435640245871445048679257206802735613037966524475273291222271051213652655459895276307051483685249214295232016956449379968783664419985105907630748643187792190256910304318014275154168622672174155952832311911910796026617619447431638516179410950646623659118786891528697889001752367916622293241411005296075659382798935620191533625784887828153885651798532406888687343888018723057621179398944067549319230116539476742603383795231121239122312219997436910043349797620202980795371763390814480212575760043362012784811380150860093087807280868167715415403019494693857459720173231320042233645047462426254615942444378230779775619727937685852290526261121482733479141617572217328746265219350345016971295133341911743350695772834580208359003315661185553203656100080144537612270821706732573862971688602567843313318247632739640109717493028024969662080591171230855352363444349230617211326297709123085437042645935303451815128473611754891276685015899820978710681496371170746656174767014347937463346439022978205177325872129303217991823920145355614514786712756611928923816441554766746705141874804565104755892798292304482155078164579557408773397069088375155523746851096345975854500391490508384990687268455031055858658783396844334091922059311543441412955737389734484048593467523141814581218590330015495456316013510954705699429858100084116304653741244037711895315616752564191652500560475847581937678606137127326969878462340464250163231599171372207537956047152206693579685140544605171099402065177041652617077816197637818237215890103586626183135191045604718354577145315274338224805436431666671229012605761691807358189701816218483107665371108466549270537839726831437516989222067143050510409394089674326353186384367150135098722718665559676578692079847064134872815359800421509285666727720667128542660403525475126674938321112074961650433292654378657507737161860522269286630425569022286229811085087406012905934510670020419624215927428860026615287372380299383107698322980215062693866824693172769237836383489394154678148864156366903657179913254002352038014773032225098879622513936982452270879308070668870253623514137077590572400504270143739657968839336765810482778093209534194783196542681931594981818803518356216673462392920895264207948112931135693141137516194931096039715998353210677337322649108637308541043700536346645215423862725804774656577077759592901582721521189459433618622429144712989317008485820101766570124414887040668180127815680586621074067104379986206274665132738448878060697945207210511231582481774070983446445743620423247271730328504941521464352035849778219778369779715726185314477326723415241504299845628834101714961900537332061722811181134726421036398005232098765301721868042933293488244188071703122112229708815482173423913957759681589827139337915247188741515339106396379006244784191803737028448718070583201344054141740090934354875016902732565647333970065827970833216032980978019152732676813374479987037845442234198387206643291643269104985828268464566693321856194707282207181546082933969181825114236221289737740193074812704576509767154059931581505932567284230333015146921649777645017082447287288328749061982096404949263442062735647716401600397681031362073938189950961668544643475913502180310424044047359307773177140453623728486866972062008753113239487623928743506641102770148627395664242726068976771594473625900027141952352768634182228597705498069212664672579081654716576377534514781478183059116830467031584989088860560745284364017004893525543546172759646888845203252613671682378683289843955422528077471824348957249542531574275253995755012386787960060390452308807717069163801757943582454740234543640040060989746938791884139295995076575280241459322797077189519954586463110458573548493370807055553032145674711509313318567799564066883379475849154160163346953467728813733678303822888186095348239644397941969565116466164414844259396097388385161530879613442323330686538944599004081637915262752322270990598752095206050916711848441064807636748027008928231969695332172466739669982845495549572289486736922630689801767845341134222183909063609497052331717109746170706227224170361714847551763938472881536926011560415346402592461394657419045536207702013248945868418609756245397772230321903428365175239641284161466756822574602969627704252457618751386794651054361086591748614838478807737044816297321509037449568310270010489566873938152836110807545085260758940794174278952024398021065222393741768173324156585789810866873338890161795426565890687283764437998085867216587787204404640357766687517788735400099614297855315759896815713281328144135840386398099302610859590780614776316238558192796956600343699618428812589142959948767044521830983234033311693872055497674790339887466916664310485240297433729799376592977903266844680693475395947304979549676678930938467796026329827786889413176252660863497074057005134722517447736334940685618871975167655488696514250463301214604059926900468787391430714054570596224512716220517339223467548367129959399546630301636338943000530405663303653971409443665507684205822837638648047863051290473206436652566773528123783197243391415670051503623990453415860660268834036347435743156437813522976737217801318471535388134860037565936369655283399398247493057625018439552051731747774757749823073412964020479933825866129379107009446695126420872113775922981489030731032411997782886989553192020066854117321492219515482376378394593986697157660531979376845731268846148257272580817229590525831524630030664872195386458264555335354354749754411689053125476537122046662910785446973894017289987064623181369523267606831617603505597416744301767970572391924044478592878102488267946179501967994344573735350099093055558173461077204179540611824051579967377916764264100972520624671767646817764590545596916939995783798302451704590652370938587657682610657425455722146973221918468734935484453727585992257217824486242643150035082952083321407946401911282912908231559994214578383754355052427843823558743413633563179520133052026020061304218150306217869821958070336483775083226366297851939531040426513847863352480655634310157601858223191182044213777648666658138192339875140821762433577604561742529570754302608471589300189981535492041549776014590766379792110032232809653993196738015148283963325187826865971397481487053294292607184452329057888727588343666567890158708735228817376938592348363283386335528097098890489791167570468623399506645572186580670067387588146005242122299872200175303902259271763130557748163629120860452203624439654837484742403875296663394758536139872441663334606959418074800037162338747470859794807666942082083601344019876528477903061777223856072065254402617652276692548821967297395928528892796571022515027627951957830046840097850071481692573974305114103386403764315014210805329750279140441080808541127745585204311848423753808286711324733295018720720046559301061210739091860145262328101709119281066094954000292633754191707075934832234261931582556184983319169222235991501693691291401459321092964432089107781092987499857978564316271691603147765808707167715252071491083798113164988402529953092308077116841283825831577214944162894782235054156848250750956793378832027352530277425949231422539813767352339436322310713145108238572999823839733025143599491810956271594569301941699853513250541116942974139884709153652563664940462913933014774103218855277994618182164377302194926066204385016154280884496354049233699234361326674317167828819839825389946185696718027302809472997313643024876048010310873274057722710666625115823095743171229398058655519166414554866602553991088139958490495212215474375344252222736466033784620184381254255568537133728912177858297702391303619934571834754279613652493498213112480166199585788577647120001045572857915488459408109334673734742853720785552579269899956370288898952571818216668382597255279272676516423434609249162844780657131376407314194949514001047456110567952527238700046036064603234698471162637679540780781852127753037858956253842706454935338282028506108910689377454627503908322338626537643820778316984685018809004443876492376316629508980932338427361652001690477467332264637071130712334743931860833376382604137072699730858506207774797337375552161734450324806327824043517395092083026191466674628735377911138741786165296906713179334052485338932749907578189862187119128634554217171310283249879336705432520273039905694542954255797600713661341023774691364435259415615331418155218627236257829473863179331164375366074465578043088843458159828349817609241379025634547278806502830891703895748310270841375749374164861106069184890495993911458003362676775404923096704621073944146888551598146439658544390568984407471302651620092994349146421741520442185077316241359294463954196082789166361526375469211194368754143470512070995780087404552197356111269426437251567808417094980610346281527580763180077417646751092749015327039945501967682174171464546408825994771151012716181679452148370974906483733349037341783011683921199394366406455131790153218256817861873839211994273052157982936386907439029460051715203625602887419229898083554014662748743661998711161981151255712256263626726250687124399940125538599562875680698120327165571814655092307723005710002006462344584648099751118914655132381368611851505509174135832966351479119073910948646334192422249612771665277164201021692604570971256069531264630043351754759480004295672545877693713056327598334610140613979488261374364886880139735330850215955602640799727965691828932600947693177490173969094885538870538228088066883608593112093343121433105779385126168152056250286935502151404409513622630827039978117840258542180575702024747213415004838548903642656136772459910861138079951509332533008679902960073956180508409478417570542638841920854361552406188664094584180805935329330593254388763564342836718728371008678569463631683026380015148587750230524853584446054441279505902118419221511627169948581083698623306375914172431146385705703150409923780754236034710766016695297683671412278079647576900419823842331913369440816762476908658115950716299993587113961079207736194606526604671827296718873493912210254280076692606291773337346466152488499787186155354511377590650096128933665330986654905267796527278675034499881012646812903859541160932375278249777398997499441404062567035768865546680281889176879196924957839176157622088318848380110336631435624609439076719546622819793010354762222488705164676162529180344798714178107705700636864816111372657623935200909082949092103044026878066375233003029396840777677208985393658621732174766893479623722803899210171382347373400236826556447220413219524997422912216690270487961785564629173586448092301946768705180260530774880578719924066579588637233863510610954504084744889816177331562549592136790320596108217940937985882526653764678536317209864136155528235838413258986246043489370654535950879359382607213869350429326304693667677496613499973625342939211261149276262171787383786936080035611394366506483386704512459416703742628099749434544035264251720556164995485180402463103666793187251834294206870971709656569047816200818744341041627624602767839224114004254676938218008314265855552998683598931043192126980702134634244860147999022833643430136291778763328326787829646103063046539830536022304481310507248516898747852949546318318849419355895817584845185940861583407409708713461618964493669595740518823048596213107166920860506849662655824441612147132528504489592538803144058213175550430544321998497012678727598772180991336441750988608514012379584178962455837938783307309860067356885276165907403962951706818580347413264970282978461934172359148109042383669518435216757770723770520394018429545997640117005955990703745372264315010465468715970015051018567711075920799414623516605552230487121782627593247822022253834150365330592288003477924973340094829643565214642982050686204724161045156368995986446601832117790784489581739324810570566776441160697209994239571427590727667825917603149882030382384028779154139066198044162947959390560893283186910220179644797351677839161587789633371438612235352054897606922549773820954279116717568703654618638598073948394651559862507545131287496945884985022223592101217282877052360787003638443156435455851017364743640551060116467564555187623224145617502987635816474289862397353526780390045993057856316086908808100102892957753177567256616207929438692136508016621460090082080807387478412285434429363072512615337581579498735266897228110251869948652314678933466804585693991144647563486937730167715263510343718558886266898012098430531917406232601404575961948020222099475040433855723587770401486266930883787842278979016255165704576703048142539564740345784550059755054652253343072557441622137969925025308287203690352883487502574800676518978988358055793288078439634819512797726265819049672089237279338305991520272698687744959204891813682622337618427363695209701337015089008109098751539222305077574322598860207730530895733375350298408675433484623391242869293043574637526933396621579024244794258680713958396976843166657482233430247835508367593452362104946523102976120799238169586528677518013520769737034528083904470548877808996160882755463394546107516267745636332040692848932389442479775582337231330198213665645774773100843402469827706423452466209097270740381853281597310640565795748693271754491273277730350794060817563788861690479381859035271062451151324187185508271225994513104835330987667616806050378848904279297813778111363683409902168301887765586922707840862124427565600609749386620285045262296484221849536464963158533478631333851219737654505904748877628760656785371837640473788944193343066547843182002275476974385605544527435829709166463874693020732614104245760836612919168166185612307554062844319100468583944277867841797679800242027291988653201883343700017175715317366684160321531002985691285423667362391213210280391919933072941553796920399884137402960808549698218765623299529478674929367231599714691856917618870555569233375209519185013979363909089608696159093370378071524959409010538341242451365783261928418511879548566896117992367598967087542404680253010878138835724906157354031320164742323014749357376616293947359338092710098672104194357418576400622869110482297091896870153008987280996045028380098426355329903488082653332929364945690263204945397912633139723751206694846881544016449701060749870746306501022408091047029942794390709791454817916447290504422871737683197925344679958827832716139375148134629505064835972749309227222767326864306401914879270278210246735845294120198251154715593369334736015742025460685089328109826380849227695289176649785589333050070813304978281662043482498137072125200142788793332318392465213602520087007042934808056670807311389053267958654837088254918913655638938282213656203455526061282782322776780670572242097847338506159327182285703821693806154370520788487453430217490607455995856519017997474847472978747307593327093131238325808530181646670646066441537107117324017583783467275594348306264340906802142405093231649055643923036123352487264367266297253647758163294027136000808415888634416024727337197067774754797867780287338386767978131312534092657320737510032714416737695154945915292365407478822068276864082316122354596441744325623377087584049622498974724322967472168798582325433077726656215063044961484934948842230618771885587060085568009613656647208367114218920448794628441773293239774029517831690820500436306162568678493552073589749701201470628575778381578616318120876654341774614623474959523421617270853479834542366512217043454268198930480857993554412883128411168190498472628882787880718506542816517168471771900132524545588286979064429317489133092768884848656087692457636445252178207332999616439899212314482501869471004665717083543858135889156432615122280154942275967272290319531294362310663848085113679085190963646787319755240639226658019576416593916214190815913479085686382553886245341047752000299486624961450987399217921052703576676171519531348861658736413265621865421001211418191022819710051326514312151025606418649857516604074616456303517599814543292013010509921802125003577502867275605832572315111484546186662306297325575001729847752762890121025224712598691377654373215118714084396824213345850768525820276229934227001388903028772998494485463837741421458895379311313194162868356773107021582338337044434217508468449832086670158062051310371533784004328487860056698591424083715882280655889272210989925378373448288397216859321400532398620299194749870709522630919423738520301007020519037016237763721502610192188291513906940499794054483008894225146858679096271094026959070422062955535844659834538089314320742272046885170403230658891320354486069184773502354967284461805595283194574562585742192813178182427048660567958107343117536143837949655188222243823649387554537200100900860542841258115767472872764248646062147456380243381224046981008499117146773485110787691929174423932043239486877608286430338662281368395083395471033132696190312250236064196817426729683637285421684332755402788568243394886156784190852163341582183081459693958567659766834589276033255439223769560015541050696755540067352638127176617767178064596320162732432460737197552154668347407535445012629262959625699229414344103906738087034565624216604963271029679944139868733167189432625686682510189068349325794386647393127694043126513218572956074063402410568341924060021547238149634506053279967485197300960188889695329731851179509712934959658490756537784624289406279714921428385370936530291700282165063194807909924645684490118889668229450924435593141308212766549841952788206021160104397827804212956076714940512114811752982123774350209707049544627547539649964205606300711039815676398257558205925027805675385278137903046960795130979702167644196303242682027458435843795682759089417795869761448414337029096479662406020399201496020208480687165478391993987010591808909048282435342908153007149893067945862847988065574912347815482069580105117222816303034726151741448018975276421908507205367031069369764553190535199237991510128416365155934558962008909078762848489214527734062497863713230529935334462348591631208175118349484087137606258787161587268972245993098053847380555369738961606476156144930557557925950748509671435557380528075120574906243779264961480066124904696518119581642806813168253676709134223835507357353090563087024647126219978023385869581731514434820252878317364050133618822535701344371811008819302603122599421538928111348302824843250603662855261177637181933423448642705252657174641843046504078145178922590477845394858212519551454809173352371771190650828799621020235828091716589639456165657614365920767089547187965046873273646620962493331574258709509319243585121068850342608074854750665090267905699355655553802410311119756071794935288134586897747909590506850053039666015015160913231150300598473953845004012537391675229058731864067377335788312954178982474061682420401685341892452938672647150051866619391981306385888919230608250925356500220902348981480807692010167247801298688923199107486602920703834371786261381913988514780568649277868786464770613923129099355172459576814244479346377313936778299882615421729132017960165043747243287597207533569699721094871108104010437240735492342425921449000682120536032534415073446516413491529950706519630648599209299548727175298456902675854345261861671657331286672359898052763480359866096892794293652096660142765994335316301962230148860974045367075914709072540165373836080149979814539981579607329492462576531485199431800056262302025950614321485965959054123884639910242335409064367960375661022676731074891448877058565094678829030100698223529685839716328353051051081962328503341465642597255170840934575925759481007341567361277506636638542949029350491079004700340406153481432137795550729317077062009645801592317304713440301058155902622073312502747452804701748078344265395271352859917894347636062716350054810533846108947219758440218190923191429740211492456385120515744060098162842117883676190801494533290508768495487283581647905664841561222129080930516082280223856198522050657563665117250946238347290030067309643252946528986996378601391939238887442674033701623907653322342509198791860003306141813928225232984257750885520168351731699634671543919301482822840878338523290948224751565845078034942449145116420712052959628062361041104086227426369230212954800952248371515012614433598738492439911744150041570309127744815938072437813796126860925845735656794772931613832065740124958526389497649613029608261261157954040391319834961226611815024209724434647869247045834779808277134015098477318878348618029320793145308530161659883874752959969619846773372744782834261737903323051118082298951285422092371204145980477686078927710330861470848269000002556757358353998402802069312057133727132010033074489398999264134787631785006875866990502132375079427761478934961964308930296658077264781844032355024824704706011137695106879291411681046917754277153112882460368366487627061523983472654772582073327899078722739492334265554974445824118004950561383132584903129470259045866003799085824178139718226420570952903834253070996960606593272128430320193809794170129120287809240684067520307910502929018075296172114944496914486089918753314655019668268311776424034096039548259620561741887483831082492860904113432730661203763992467230260642032648897753140484055969028588038763898677448241157198091477982168812481615799148250661646313147110972347050156053244397262273873278123409954218103971910077692768477037919048886012618258185633625017199155839843111345808067240579722385971635991847328456303906733798240539286013241689278330667036204927943787123618643133561845310990432364593388575830271086525430261717523054184780961556884776683372641591759331945307314751856776794742056200937460959795290556141596469581478983686921177819707573262792164442236819503841360170238837565301584236954876103646343679674584082137297247998368726309406693566152788635041583981345883029403667959027603896445915953725968195874161202598148589132325120397239124524906041437060208905500513036496136394523823677544021894996004234214885778150548272257197844696337575166181625065081942982344315820546931569617380894565805615258968655964220474234735150972633630715900037228453267992886737633652056685308616136265533960863498942170864970008324998843081298852857489291898762289521923395311632571645034729618506150839714462623803307026397524188406983503068231575349527586739492513541378450950569786596307994194649530787231027595227465396035898571594732781110072473833110016040091696993658737868413762408369585101395786644795966142547009582822704586448046383018466959641571424075862986369486235062121564173912613642211829237905486558063194541845228502574388095168613997623655458026928103279221505226965159637036779653119488594014468951156838603814579128917661910924366716473514582055394272872607448755030607772580741564469047627044506407501250252244762565369787671729045428128599054763429209104166644219346290526365366964407767789195624872291438083968200805510513389000352406613284724524974993955345690174016793776625067722729795113316830207379281914720372890360919660452101238527973062905002849391658686568925266906394946671346310309000820636363710264653805260044572244858166303049383770857355187739712388865234412109400464757037761709691436739192562146940000880262433221461322857711670872412863138084659919289072737811795098132082777225254515528493885688639810924389005804356720308309346216327460335599777762577835535741927166015523478737183820423955112483355013501723492411866824174582115507615732078855280706564630085099108919604323756854241344060115621302083173450802551877911424372218185317206144489161553156160771689816482329252378787394389259212237774136714556000954688633310228632699310075675874832718897534741111783981904269019542729743729597873140181036238280535265367251306204924919807947434631641672318804671969740601831088064925728544461878882670566190864224978981086454455797577425217050869669553000088093789797590416313060709853030069633662837121851951980833088931090011744992358037822628709665252096122168873796255028250222838117317302969313106990890847910178668153114940805866646203313308316887662502184878317960939485266540820469744294260730783073617640503073375108365945332133269515173735706441449264578554284173378267321448005833410844554935330530516368505336317391823197207689182314665850882192208284072706725246225966743122571612415643596539899445085927487312290474162421262957405611510162481766193203598045478834291667087015452089636252042469522785299799390560479223139461922420308675210480829207830531046555437169627216006940714873337039071641546270075670260535628644148773925505864346996508951512874322576878227579064177230111674673164920355587478395607068174412478673438216770362757202802487473966557768233249190595400108354889717103944264192747104404721287634115606743950630844706602193154941019193933449673536873974042851328220423841216589448538735235868970200570842939534019083720827934803066935278575056494578764692336797159972676701610404511915984402204298611210868141973188124188799385413775525662300896094513148648188464833812324423449825222552129107456969519863923767687044911571405633769869338389229513606518577228475342898553001223029224627543170940041354181820612472133316198825567436369849074171854691917431028319521220332193395965772451317434114756360922423363054493353874038143047573741493068264767255324358564401854181772624901364995780865320817982566145795254081509149786466279229501917921841777044892771178446904729732623023240926866775081127422833201183001149985261577970258796932272545684158812171417679750099623029381166273851946798631114750201230284658134367701427528392365109890657836138112265877917128185701494708793371145742522883806757263781814890120500185621320523861443004797682362645768564873052947635823662044827238925575109466606000207262317015891681994299499658217507772764770358518133427508160384370764524150951798658742622123345506103219549255201439014258871758678993809344922997799347594612345485286438986063744100353634704511572778076947186746684690858497626048691140028698330186172796185871734980970882404048131862773682964595715126942417470232679180758711228578642604670584472340214478163606023260643670680415188869554477097032607994627201158669743521334716532911338683823139069717262051216447917847655515853946147898617442265432279507354443496868029405070514281943441906073147998655153727625964528072096793719567169357142316651040955970284763810817407232050443444724265600976868756456834749957227169578301176615073079039628475544610860784917115008365816299287015323782544679774786089666603682687761138908819385811508822098944911916622974289166178305210323191170961799590050695951168728777186561933594562513715055077122406452343220618992416230272826291403530184908437100672791559689636069356717067596700254461066341715434267404701619628501349543904182742317124500198027900186032459569654510553893669838749247659092246509175616902543010324967030330418269022151561166846086024590976374367254162582852935569997786396925380631539596254843245715448344786514355495119334395310280622261227210406589419258960341536560870336928663269614096944888879820404154608604217223732390479416833906583479314567541863798815412145074576462465542241022217483212165470688147130349729897490232029203585503351454152280647183540021832971748072794089941242874622182930930126929191309283190041882714643300930293077833786295967020039075315624321638183404261280797309496912044082922741691030936014806351935638950372632975968085688885546008462517401610019382255365500642460202973029877946634717637495913232436204543589964531050821505685527383719082665948670758911367523069956203114498830994811572816831358849095261525126813269039029718994533670004593838919603742625760473610659113311521337659528247588698045913694746535864381154551806097970425985514537888663047145272288128551742614876046707184902164541649977216802349830961205750570928526917481604868434128434716356263515631789809162325677613149179972828393076057493072403781481435817096849615567900579065157501867541428175870455935528941995853676156583398906245190903005537215791652133697447124868809857646064965476266997925730863664950806231236040380713943173224018528310347101318098062043569530001743924115809240529769919722252012185228400996853760960078941150760832629460683433768839666565427498705886915365977841339092602478756704687836722708605370519586531623608378559462700610685256149467869046444303174116729289761315390607701527486241859024951200646183567041697087842709063321960224688798407793222241513437347942140401738907416954264253634717022782674764218719861072547904126753649203366305490880105747137926093916190022549831630329351066536407213908820091993183914000922290072726083548597366325916888921986651244917770649077605962685628313052905635538735859711360594819467011096973810159325812588453447689221024220162167933784238245794008899395718435535178046956847984550767964128190257376443202778846427953681140824702009121559887884668017664284045782666738565628700256595370121749721869412696347176682131168150639306998251426930602001024185545710933925919418831457473127305006288217274837668515143970206369334506756887359810870025035684998016605031701145148427135019276533412938861504215288808210714673888709823031870663053607286920123467671778810493521849175993358447153099592392856493363313800645577347523891472867369335297296241513422470038313358703106109768830397116127040068230785960500033055213162847787440419443228671490762115826251590851443792764367534011845256982336096157102809829001175451226191854411120167093272727385651623100825713821452322491647457912890172023721060959355469572382516688199051922315540323397647025314950115295508920428132324081127167322012679140936141321277946964637231033212825602922348352765177311053944738498412654462876376866587038973413326790693550281992001554177670644369649246722870645348314002825427315752973382818131371327834225455012746663074000854183061789408319686669549718654881174731775058680463474148820086566490169923333199521490170002314500537162588692016084385657274175226982146201537668955817287568487656262154424760216396847259300246784915126264390338673001268961407039492727075889915248070209086833795560140845669102283444102568225560910411083149981096195196251454320593712135627769098196654852372301113929786387420376652931644294493803764170039319310270616743351559874132622602788789738866848580643664777459217865099424322268371987378720766987848600461025669413622498791338232921393010668159529157364478137200384671357470667656416896582831782004649984587960291413046554567306576942902602608028934031193128000144641580345769555357312122273320007604053778484447631367990963730819640876891814371886216118505879024732911009267371457034002053975439271770826100225534425350791087769063320495268872947006448164291266529126133415306597465922275184063825021331779361537069804139871727362086432236908327823402760851042638403535743396051614602016767601854357987828485723990938236955790106860067117270143851825098243231074945597275400574981777409178947898133466605159279307595147556130308635793921821568995261843582921935858481597714643592047652359123760276445630423329119481319878331507906340958829226024415293460308982510158470896448856523396088981639341212750009573213015752873959277147638388848874751000294950035012178151580653774937923774437808851285855315942465304335838691903579003716454751063087050068734883657830644830771434639311328615753770703169494680861658799932951697596181641960757650327121518244492062163061229475501857003719976220143447945522006557168825922747236088212498685935633228008562127210931309021441803379752790649138865936258744416976257276820375079242823173234445764722889274217905241527136150563002838034270007289762213051216509779548060959612416860386276763529848604968680865608653576409578075207967363064883708745202363388209277626033173349941143117270031171565673771350292331015987102322865925491753789036466802036380672695395411292520899626638931574830894728596996367743937546297197210950775917910946822800540206920458784009618023504043950613045344896897208731669105435968956333784525823727096540882289425305126911436879194852919234122250083201233147940492863861777381058797765878347182130400628062892169259864422012419097955260940114228066339624072179560259877784369015962090095551168121101166859689865058063848311362898119969237580303145764763877407146244572274009699689784852873707783894114442609800672405708505086312900797459071353281512369059529391198181587187944726967698488121793952757549989957899358645263614418207710561726551154542570330224358255735474886740437980510135799743654310998447846133894312220645808633857269847053940724600121976488114003520473708285721046210421877156926197686489476073014897813801968673196510068828498394365716869552804098358393690456292044344840708501734934625378124652472261280572787521327205939538759340483444128986375549115420766693319893296698515230092597789609811520475524936472119202274309303063027060660040341166535877867472232270771350618303932388552446877197077306772941231010061577351958631224685621513739642037067150021413836115984753987380972076568165019333317530225230649623699852069831887529035755633506962421771423572658611749796348711053509957916022855046782867552146364909223266603703720779867916747284391358792624876600742440546589573657926306356158031574638057697001695462654762667301304591638748618611483599635606421612428865689872557395250515630556540299271727940453899530676291446687147818811070319949110039810265278181221779443559801216388399611025238293577525689658634327037178833570885278076954514689936570101503453227849350173398459699471703739666409936533991904641371063906168935740630422404927450978436981636493352235675562627717058421797637403745324328921917264516671178707228967898494775032283845486171509184666958509579011454000696815152826201831301593458439921828422667154200082539485294893112287664857547775708415977094859777974478950553446313814754608049443179644623818397233354961463036693281387325714187384670891557771009247125483566926955576883400141137528229223218814102907447073819621162352633846978542605390670542464872900126085228818329000915024827891706224528420810535945003327992279490775945915254642207404149713575588036636942724172176987958578019106763139120823872627046691087790483625589894732130862560722446773610675192044441249974046165560705238522303075460860142938462033399208179860778522299023986178393022316261581260879768437045122203708499576823266258392681272242013363402857462560340577573622998191436018722294440292525497231221010434165816727062275138387592403984779633013790792315135941692706613614866600593030141468484265074109327448085104933599898513236542592871647941826670689196523296196438893925042609667971874947801268262883500895700781075837590256697886856770090445253171377839631274832955616563942132517628618678847752874221138033981293914884740146212586346402124191116038750313835855192192791332286670955781936604857837340437705367757763307803396945696164475119081812936840674237730459089277455375423927828355484058389041723707855035663098577589145916186895796761944886146005124953416631037321685525790516126519762420741785994706211859530248231005293157486632282754960462124884903347071380289682896730235701650187202778233979718279638499340552191335349442193605673618883899295020181495784108470463093163446112990570826155869492331458792856117698306779194835052453914267740020977887058880225304852318414546489384086233027924074690680852357806535466494296786028369924921009363479412917258963533671013650623465028218592496822159895261733932491124817383663464403713556617816257088670919116887344632368898111169434170049283917869148121348495218905478531479615000000957459610877415803167710597500373334647420621814368950250012903344656225506700607107906436199730786656311344240959043893523044001100968212311584629914209164675093368151166771720847665040276322208976684398767568449038745969071406684621958658173552723318685064561373049180138519120287118195913476888343656082178253013613527574588308331705178036677750564876490220407750424174816290848479396345699999000752333483416205880452915991481240664496029558448062216090754370670594001616837503496313949435855611590961503802503150573452093519293608344098036266979353707575811665850146916360226038426272937338406955080659565383010542178485343160411495681759877266598602322194737062744570907393545004188156702038799856556902295793186997596621646632681947139180496011260187210711206407730979923019113538840775200294563439866883456782782839741422103097785341926799075576574023907526121721227599473519257906258124726884103700188241316722977231387751454266007063941895657034096724151111032110215170439436172427364292591182683189495899963474852960255293825778452222007977506420274748591387965828045471147381180108131081952454918357919412185108544276625211173110293797101770312138024410457634928349464879685842432363539881883634270382959459285350373377874668559967812206036756746477349980560043925012049494810119134839600844147238026547253576365161484194383464146641461075014026719809237686119891956158825491221312737355601129777621904916623083977912314989716535553282068121089934687078798590893750134445249567676927616169000718930575810872286126887026488524255104425530673243775027341636514931318894591392739884980845064563869231422165661839294411579934057818119630079085367049617799407744246881700049816610521708728548041558732706644928818269723525066815859400692465176951324983037648156466882335291221975434807717041325929719624169381428022791754368772521094477495164439447328892305752604840924383549248610603776526835459386947648581302541930591831576995156706900686209080297768077243998033518492870922450083290159975347084707183638696894985684940116457567637749822698890232633449627835725306219006427828682221048911024905156969579846940633699272776782061665427293398904238780522811164567644135916788743931537600304279975013652040022456019502304898099971267207434250031544616108615327466402773270422964907256174016265141681324220001815532456958601007148049479470565663513460792291169538105289559340392851855077827494195112852419618695805724998117401639455422666137754010300202038387367329586307590656395740752227650713611833623966138625213876792286069384460400056618906951156980698233345472412673149238559669019686740725762791833296725438521179221669013826375488287624460554190333214661809172720070705177855482205945152950627746169754513238251388188309457800057147404118109692795973932937920264833629803279750893989550034941797872732419421177875698715580610662586370914552180201296499739930220221012416323407222404305838540591233327388393205637614331781890891324527108649183561949845103507024289609793557483043164785613122015064503886997671766789959694495481030073523868399238110963939242879991882903765806750815769464721562309791937614381711568203440642687001003173603037951502536474233245206360379383983855562746239453892620763426711226227126844568654043903386377472121231426510415625373763330108023839151965496033942257491862677426332925389386142974417531966951762656838425487411442245905192250938372922330268429808694792574944871750782499618536740972439099327958247295473480710105780273157045736484214777889769597887129986270897573158696273573578298021701803175728911630898155190384950450830695129062036347428797494403390294192292592852540783881926803535001246136546647854338274107741633238425372267818775230952489402942184666994507856579478950074801391755760336452976511267300807494334836884719484075941937862345177925590025680861662606346693112823986083186776929333692789698662756771586451315064633760012126593837022639346208486649674585857128167524733781980440359176398214767219625330826224325173141697155690180276075545478300910230154661754580294295090117767342766108732780766482618026098139383526917460566057794161060489644281390335867203458576915302810157306539481773792247568670132819699782547498416789876790244983776217025231818357604575011535300256607733542361246788233211995045212715736537732439686007697182660174313201503651173272966819995300733361654245710782106964776599677419821787655733206871766186626067188860147789582781742578835763548368174930347717512590850179392876384335513322749915003712410855196969270112497736741562697621324344359578662238569674824437972848022434922165499226211002888973376280332573365128793306303284541317796838112115996024219332100507655001185861508186866908194199625991078475061957076458481549715878387464525860912650539224474263317257537349344418505515835735941189695365327127069065791479335717084503117648356077194029258558005732016420957423957181442461010522103137554994879094825477571886092678791726606769513436150802574581949000566647524296851765703069200316996771919310448586089546207163910948319649710549152916079929895911195722924330050310419343000127436939006681423259935649572550808248764612052039030156590406773737136041765095864955184434944160058982141583921930403800701193521186103466742880363016092725805499267705112352762130993700595485404193115195795913330330612774540696266455196141261970069673593611492105138245252850485200697938786197762540924744111789834416663542372343978691567926577981483728334849504409726208468108703345212634257438643985602415669715981475104056409536693877172127895723081858968561034059436938412823067794685921157283309186738167009984018278964979950993730179856150327478163473977382262954515449058713973312813629230157223728631157326151836807513599951521405981058693145505270772498285239454327410968555599652986300159819486892967065566503077834055704981122375820419248392126053279075187064956156709765589161954419435919972590122701349810188324832779344148520669107564802475969228825026067739354471432293773258919497772314600049684701861582522730675727631660248477429586398241809056825695367446493869167348071651978583486988574075326721439039560942454675315875217754527275145465987822170377691804361185376792549248752275172900735155498158193913469556713375039306467424758454402383467050546076839528595483341062267916234486998172887407847887392061244271947450830631460398641783073221667770323102649127105761327288119116563102297625844706908734495630188636101889274880035413524147130151842932423168646734606097632225754744852656734920510787189486079542741885449695167404451223097844282019856702031231061876542484233769340203678909392978650860223151453696489437426681847017444484641800762324188545458087477426722977442003043806873094683829002334269454502344905007149019604047337089001626014322612194919976435810396848110509900651922197398328336502332006673307477801448484121603488563498693108116119936856146121877186154164149014544245620947319489929234034391099112825095783414985305483241760705603381641906521124077723766342696295937123214806870974058577617232225194115016259834240142370725561631365057050700104904887345893484836383295329506655959275228110850408763450151589707724523721272793213826926829913173998355717993633552409081252504893586353888039467313821116947536434396088422634128324194174899527426904507321441871080382929983269274262922958331497378095828987625086374474598581814339433724338517070435116229949124933268129776752314448155252538119184312682495889009866543686226292133257961642337355027788740387220680025648239528672542509622785996470594102273620067568660682865473523805789484476363089505810222793591404037238728675067936028047476531380150086926922684689649888210310432049400573148586558441969572985763071276998836919093950991037351026563870512259038097830589235221146742771584043380081426983861393307921409600613636981065095255597305000295056312923556497068317131416033937119732388526812542349509212366007055997051163078762138532605632223938018675679988308676729054559418881158130566250927079070375576750189636931455160199399450135060016434751441046092868247173364597255185329444180247606416679451369333252637452438443986081098737895526471762085523958752674689659888697379413352618380329503404334566158636711491825173107559642073131815810259399736371658591185620614050019607314757691161410207815852675514507591681480577988635842116969836339248665679999192298441450371705038301825528526630605354405279925532576259953947987379544836467217862810252997634001195872065437715532963679256787702596982984094135214709801007493818608785122356464746128083625958876673087214111824337047644021542375341628937635770276904084028850716282762413736912956646855852649025198771112915033996553774283532465516531547339195187946053348804971749201778460081569020628567585005025535611047917218879211217572599632535830979882978975410612117975996410540095791842503327031485208082758317028741213492117622817634405065244690331174408127863149898713224343392118090047744369869183552312152611371191510400878596295671503249785521200707248487816562045650768526422881185294492717160133486353979164930549014446062615660830922350986511547058315136835047001719096297892736079355741608856045259900184975111069821047873843398728247953462502454397810652676584613491370833840413296565890136511600771062734065447397363627838602269308437092206723856373843274133766381171249594700143518987679454947847865322289700256401555784844786132782249540031597670508235309430384557123576634753744600227729669499652589189850047172651256492086887467958177059324906646454232198503827885102752157775968966588925791780440154093638060369832853704759872366284260735089672573414716724069344771315192109023892349974354357037337467123339493080460345901166817442885042274452323815250583050427507431002311469572071923725099595357016898889611406863708679121603007979034720682350069451646818859351518792520912717583815007336964613591439580448555330144015008805510837291339255313284261800340524099085890017074290908084769819666435216701922313385037314839997435891808112762184015277357941313292977431258058000368045512001424074533830477474927197771613249193496891866014691418963554789138751578826564478171681885214566600416062924228714646774386309298355028504229175437589380826759430798663031931307817165869105003143885474973691176184043106982618978895428284443191567572196809271317072027532770230539173269876533601609584976878967039953259612389073436239630447624123645514800812544707738381862305015840803407967629316109526289339864062445097544640174202338274402538911626067653399239383957739183924489398262886579915140561364784732413533041495632080542446237282360601180490574406443150326122410276084902835352080531303987801953540680727286910233836675444071715469070819559902621719953008589448439790576948751150856287315402285887434387171297038678091443916600884876034388153423703413349889817712925487700138100311651475376092729917403960922063000050641455265659711594533345044975468686345802329198990755602659158893954948258460505153192910680834604345464306732167488260906580540910825026900253873674538771340628261933459727045840822303952613433500960285376665887852020634722754012077153997510056864152012763139316218513310100867933296448035154035500681194802399837275174395623550907056064491723664140595356585363749416267356830891920720777451599144275868260985776458155249089148408008980540900173031800006090133430517924489230725162851988411588734214479255870303006887169680554031323546760644089743125785772862935480460721270612859234205781691025228174237026895917582839526265683331336856847484483169638630174081570658255434304894228349920205198717483978583744242891981194506531605116958016845383849420769438448759546379766058673432935828123432386224858119103884021486718111374549978396653260724790254000209892832651931892041871432806142139174470252897100257018312786256428788993985205504681001333838457900089321617860471834253132255864296975556260179651683229759128715316480898779169950310382286109735744952120821491994620596766175687709175778754793789274009038711820193203262072767038056694820863802217561799514467990112650486486538131250474957728294578316933867762669853431750089541011490578691286166513636539821057853519666288658939796143206519741116977424786702583411939729430854899135025520887175526859557776490379175348950057410888399886974088958374979442150428703860379203173745393543911661530173055989800432644878906190895802151635406840927472631856369059262056735702083130110658249113410971342298660977057583364547422623028732960326366234415035865002464249280170408385123444562867787519300536512133825836908746394778955650739569780090816406182242570000609740918192339357537681101963724115117799407602496337077108535782584096719949981041417659448803145922952931108435492675448100014522351970253752356607724110087663351398691935620337884407380232038927317308870203848209394586900316066165288275318285655746882132773198615395379944639150898983033476209676991414613345841228122921582316136181406668907429937479721794276656200242659952867514472366526416027834930211409070229173902731076625851655563345374563488832514599053885782552466427902181022582952722106887961946827448541820473655937161175544454617466833726421159367609982611145974893269277628325963175356561401692114734737196475371433919321992934484487848151081852432447863023519673727078631534427188733329371834452631224580141476625212127760618326441559169906733682137675965439878974637449703813455852311810721651917495976977207386997131732771923359413996241577171053575749815895520776894144180608911778688029273010424778771633945602186965006898030401160138006518309494902911730613585842997793262060413933527469677247364349300672631433497057474797631164218182901573405413224695059485143548975176620394994994017413973599663906379939329863514662762352395537233136065746979922096286949335915670539630737711681139838778387706868555579002862876355650721215201481285757119287886993595346208583477110605966392451694831642161357701007007618673573797235648341325281197881346171701015395101929553864755596160034699937875677767151087290454914107575095797178565313784765730630812499322540979353977916685515295004229436139096102305618129979985563492808722836599253235014709424895964304836602450381532479755336667780545372664824116966728461128860528204216743291948249707605232079789030647898406430573470596555419888371571734922088078299731321522854096862803784670190615846930272585442445718254770918451004159704115976010276277427402535332410354074049253648494866467393253956247546832319477395565774294483640569807853199838233576091432434195496572999290494646899118166675333776745103843068999759297927694633434831942742108386805777222194815868800569901816315295197434537716592031208248215436928112011827612399458066124665628538826398518476627995705830510671832513151060905862786281733138715879220577055065518053470385266851443320400091354098057525338125002561567961708038074109850618285023742401707541505397273630200224633176679125027880951274648979655603523754398017060953684209929497409460904921737690453526902437333579339635507915057281264872512338361566592070923389659369050421471060369859049570739616227865999202860761824655326601570729590018062308845979447278574596117195176918137279266775182438011158847862709800915801454839837187097077919266270768820756309611257598095412965932065665344813911558742715617022885691185050573980241891398599568180678490939555813501476872644408725423999588996482888640902479237212096949332738039888069195895653712214643346343740734807991451786032980324406040380037341289581460203206513334599913157290582001371278496422798188282964508715120820100532446251296892214241587653816120483440919843178367299827492671703102851250883769911553739501810569664170158615844954437087994334916797052366086065086005938818980872314692749447520252744336684853471122409148035588783336279724913794028493916556498515418833592821589141389640145720854002515096025779571196516253661640469806245159518264827729811188762713986529330545707486390688233127692573817974174766498120440419113407066085332709983046104362031715978708244250784171415413748019451501595255444529626743604089455713250147879306744579574303881588684068100448133962761709011450937479498557790252858740864240536577246049894122260511923179113725400210083485772554920209668951135638982472730845200069125427595211085658290774488403381313776060710900533515527640811520898134337518500530323004206905803631937897911232757333776178425422203438333117015941513375963537001167699874357310038923988599208545127572353025368653662378846265085482457771935844434853622257130845409795069565711661588016948119929891106764857974654026296360403514638475487866203347426793374783686356195928979685377182829384589775317307106011442002231108849682984127866939292090231138042306358671900137838615125297547017420015057319067652659284230840667662727573482223088463666050065789537153821556197874942309573012958125008753682053871587072362612396546453192742043786219619011883754963913227721740136337080713358538372602918181087031911145120132946926415840965931095706442735575861235766047741691842669911740039576263607013841613454349396589752586144709660910864790932868681041534403904316162467621309291529192662892199293943845238400550115153889658994110447762209124053779358791467780323803801228170284250061827832295970821164955068964993394023214982540209531682720385149506734131956769182778180854234185813003838391111403585906096585241401395619417333796923099066255805528222660655106383531846568618996462689984788989402912215853408581829820148390461936010504482804127301723575471391627245630352569814601655688740519861081991387481391533542114999600832660098428528150342919003795368214216828524055582748708556213784648023027386247011116836281368124267799936105250853915356187720543410716383535002380846034941773275581366791296320734843189519347120811439132093307161542025649997869902451780629657990652394037636761033645561912243313773473624028906287739013746847263268667141292331956209075012109841679770954327007030189267813314338884120813607956726058413454129384711998788993294739541564456891424093453169020669317175295382667652595418293145084541276670968279554623539409718794964059931711759792130115686635327921061832676111945163554263593878799347120741691435283495962523910676389460502529347010562380122657638590129219105513980316568028669360275864831732695948217695455433871027260798786643823508688766270012468913633784758504504362415869448627200657583037679006546137637954633644095936924118152681875505260642848446300446250778133681721267520136371195200336376455732649157763213007212648050689489671738501340715438430450924303518782475997074241466813885128420048218808910640585363669450891399531569837121804473076057366192901294192437424127834233425519883215845654806763360609111867087911740294063592515613830997653991023608267107823594636638679774299038485422950582422159153371452666424406862852064833432237894482557678095313200698528901671620701368345977737809765681587344235010408558163756970138868165793749467269698924373181055643832050865174020289414378917184396385486546172981309422374422505314133849999888755043130013757966083448547401502483978882123769857365240160863617988438327388281261986706047660089565060967630870512931696080982353978592177932219622022987254563188434913459606401251215304280534527451594584368456062652870828003508332251550129131723464022340228070613931970426168955268757345294956138987441512449708175941696143900005171260126442789254978783237268377204065554497710255603243671112303750455080214256478263933824212468491985010878607706409602502826606544786605958563330593639641071130092145468779680812216291417335542236767840945034476336149125022993298498505286834724249165307520072717495600227902788469838345330810837624456888689921785967943086790908532391291047361849583695361495735807564286279593119285967511543708537292806501835912360235416604776142742169107872144170570081271910873402186482997732111756682763957051696723050595850704147164239857373242631590220218485364654822501392070353619206571332867267089628061868868706027312341889747625393533743856856785110115552372390348243601491085122590608103400427315703986546866048916885480108291046186637523725999441576954926111036080413951608083527595498295008864879780298438407708391606627970807908203228735032632485684288975251052912682420603713600377147624989555715579556645513754174271373432213520244032841922646800071226797739508102636140098738911786515137165626552211280728671249419305098411867596962013834424406078519577441029989614765445209591914787642776511064114160276831740187982332019902810468184201897333084729126928900715090707607446385271136037690141393820062539269022346603475546082346496648075089862191048553607889483824391230146882854265532479509038225869919764375617023351734644221821421997212093452573392010587434988752508551134225845365555142114187125998312628834666001066934175070706694360907379856288248456584079377061262007803671817130329711435415721424588479816557708901013861067877635839147569903337533660778514967690854276313761064711194347407233852136241087198483600763588313158685425113587081154311735752069514383993100260750790812026704550618264497122291767940273438540476452510523207866879728309724127326025081347681036682858817994965324812808393290507622467711933892813122556265931291269963620654937703707839973169356151063801153535983237724913545202390630294468659923170067932395054919548356956028417249405510604063453215140971173010248036007924201032782596314832586912705613683530745245489759835077545820859175223673783979455053225770730602676764686004835408778650051674483246836757270723381053597970844806610144326654227495928416161069789777374722733960510143603475720710009394029121242187994484149796840129010747328232933091163289758238188994755753359137349820067591530367532937996667236824839881888196059416896935028743765321223790409911798067814031747357953501372428961916965433534443271117746427981008988016876102074710143241231689152945256009745349230636618659052843515840641494591521839077064030716483268695268536809482072879532135161020815723261488015498918503370506785207308540217728692288760576084521149593527768469772921057043295198177303225283071752538030490403337160360263626196344086366450902407159609346795673619167089853325367794974403047724618505384230276702247693269486225723899032573976754753121952878254974394128873599637078654421873233665604090313174592306372441829375934774758086923745258852921896045514680524680966773473776920889827496467675646877357642924957448642207847597375063938742385440600597417375156649824263987544156923748442306014666701185442601235003346717187179523224375128405258111487892660430511395800564050623019204616669716790100633865464492123133278732633726927700130072838042245649870689903058915333813328833262619996428954094770799821584352129316214487480697781685703846455037127940056450623662374358082552896114004722279303060204652028363267865437014605847150307684087175523050297103438832512820035798462384335452000752602429709294410052624168830448888476185838071560614968283126969014732541232979308733569085867619390973454956880865065135927723163906982659623710279080767562238829721131724656434288858305541391174676400669285497436352420674303407574617656086710733885466092813680152657135904029389222553763468036179862677842546212277162173406128479387442036959967654485688394176856233897103319097619584327152127477089055346862439106649663486563308076724177136046471049516901837445090525727654691488823511215451493395381420478373790958891161031505982230799945444572639010543291938519877028255252422893693228123401004145209330769039041944289905694448544831963730294031715161228962965264035416517302131086970657024678430988546281142462890441290100694195089942632488879823927041511122984099531991114513687291408419486227654585774665798164454554992290416556815540277555296870191505858522812040798851038464647240973865953197104897858346569939819695333760245431141916348602138477780427127933059309682583678642181043043044169184753344654247699972249193757917350272295547629719413369771657184752709292063915104995065871571404285155935085970709324073730511546140217179935218524900596453342010793734480152734273154322016344604299013766951210848711693486954310322776607912047255570687992969702592445843511204589841055074288042055145240333395753503919153588120777188942787769060073293928276725615376059960634918797039187268632719864864984756130956883813059884761379966783988418334056509146779316281355368929951349022054731473350970562909539707187826626723464687787600394706169350902571251110977923950746369946180245353080095238234723172327708315128223383714322017651268817096820783607008351806715390240140580175106026929393345800395806720335644566837735460010363228157023311692124829874067064174046814672655788828008064933628385158282583740258556473092279075195297041106745756570906805925158387720389591792818708546832829686372200590607568069886422573405552293419500105484134824890018250048266093413067037390389491107541547741342765710672238269730905968763985492801741222625678970233514010942420448690663576652122444847799732155435897285437043955650559127216644102662344501526692031726984299765272617987194936330251145522202634523879799915366994711302646849402577540511889685786931965998956660200475425656030040933207124684483919140881707250847497334019872087004387622488608365511487559402346275863125078836453652857807185759795759362261514365390367050624093884526717307739254090621252211612360931493254475806869280805324873703770625042935233188301086884209453437866591185679614302697649637360285359168439774581033138161391789802269801731268004534656163308675197084965972493595328919809159478324917789713486959460951499466984545112032378325096694575353793007441011355340107145915463171410312254292875131232670713398730272696745308571135610138471666748390567449717672337424004464191223429716247233423289339919424716714694076915995612019338211538911257774849496860041684218944683357461377885357274085974377440782174544409678579003529193258079246090308813739190220867538041037098869806636235271167608431913241931210449893548234589105703591178303477337237079584156668714403860873083211350376072744249455627908916936754555698440563815571054202231990405536395284086410931264258959302455779771042598981553557169349063006271238226863989563517832073571395911651830817182262004784361919424056672140470184814160153267230946702687016487769922254444555926100407287446195714551371555599513443151219844974178367205599196080212148954493839063776912946436425464867510317385225103235387473810113369298655530844451104153411778483227325669635176629284237886294456411392553652899208339917605661252091132531643487646012883863005218525545073283986727435814002791974092214968453652725266641456545322575421169171416308711021490087661304872682364252495128509812189727602552140917806752524317243595501705784450959075888662057824154805953119541322444316147256993493388818182624774440158121938809823132980933615344492193769547507859312987058209641921713446071308844634388214989754310886059645164532696094569744920611231392929461697126018534570887132279151746723707969989597260549375997611029946345373780639717441475319943979980545593833084912981551299489549544394039415115296318588968035767903012763728378760196196164175047331016579468365353733427304292774061525221465780673017064161317094638046619520857366428624965734360959408397984115903040751359211133812331899763862121071700521516872318651747281738609772931729974324781095564101797668831581969602523872300750290655725176356790949003217113765781722490132043877454032536369960686077686039075833738816831650634957704392656159360098557185194310147082486877550411574259878581994248816717501309123398892232024669475657875805182635545223379936324353527988242808307895943364047767045056399859858573829453387887171382650510002590101790929773176135968797161300532917291823224931324904777633350259752354202095056381156935417957635385980295468071111527165539083084816056830803279716465627545070194160456297116547832097005253148504551335178940019933623115945539854724513623329345351761611047082882672398248945098588465910378274447351393273456497373228340965392733392861666867313523452213123741502930838110247170091456826537623447798123024348883519619690406163261080092620227741825701904820395677315775680297518356569251829641330436061512074821375877914245884246559899572955297444303618822334632694544102261406093505230813167975721778194767148043911984746245908677672881829376860578897802872981788575799799581591130574390742370388931418591315371861987129855271636226846446864678862951196040335262184643289754371933350290910373990552418349713086309023163685682224717039773661607349339376724454814346164108806372297273709720645516356853803534923434260763284283485072073976729069529901711753984049149388367909688305431563058888144016351107520822887399776563984620511939496924598348119377176856864348130651666321101258439990898065094417227751385330281212895357142320648823601802474779415579527352171328697668803364565517837164334605827773242215059644584036160889396165678466699985194814527819075282257090310062006574437323051385448083379495654828908869263570783874312025367573830672476818245734071832427362563432055978228620119426873958684248832504436318735130649183907201327076028189329189294288526481856332222179151073421233725596500769495852428410904348005766400481521980172607719362947116508920708287498603133013786152541765085262060017334947165365745897182993720737700203187191529740533657948708545434321528929628176336008590009650301280107709031343614556206600259419952045512304179291846179451029878780373636045770807897898119096082054633396718751358417982710543372184547654594739562643753941991474640139736931377801272269460493770941408121104651136693926418350492752020258989383422883318369455533590061021952680946986386649154163539376722679704147820193406975598416605059786587329625766487856874223709685279824815001007134119482132582714784746734060408301247141868260367547296669791935927471899208169356816990655230316795611751600610961784895651947608633700248582166847914774536899428767418281045960477310852052639257570164673305505851179388556038449501170152876031315337945461232206194285884567247527646230189080562959402700668621059897801008298501886751528328909346521580802050222875443794448909488407427574023366283641345691036222423390755566601203813719080909639916809474794392348197529604583068500562028627662062761199176757268755241573181821395787235654956160238589921628731834440050387436089291055866612689014748366725645067126293857716889192756859337305429548775199421543006913775412743378954829057904805617701776048202779973932765848963631417897053299808980194274687828321881582984558990831994762491635809502405125928288687950047459265012203591237746746603124527695218366433808847320788800032477538321338685439215356540612034884321326015491841857034812795865791045316042946649470333580271892539126693172996957148649902747684328671467530614571145859981279812296329428649172977300355602614506696402792875522725864718584960083653721162329344275225590365363461159478020199168616977264295691930971404440638353312113128648107321771689410584139377543433626768659488998205584832584599520391234771293906357874592036412059211137156030895557329684535933904330448126302819517955685993684387639860358134926464886170660252199670616577286731960324596982946411650117042820713512545736369208368814539932994839946437413995782348364347999045724104215418676713885825511884415979837305582660293794969402239527159712449745327908770536359025474350903444922612231814060477845352362540214060721045339214109385512976570763369223045949945197155528690577221224777199008386005058679968014525628338841286188970550552298245846920650005840711081056061918010107579081609003855178833855838166639682853907162265866797157729291043388361830919555666596557799984116050551784463132541260984642170051222234752851610862458813317658629098427628555311182422323427420555996340322583538320885244122657439223546102366929893582591945587346736233918597742285037502747433373822054510055970239402863192068325949317725428630737565490878387322233681540050112669288668742716200878309455469932458371808674594467816553920437401960594025700812221998407465909791307320373575218982753400685308560683766485363122583719162461211106929529190467105475076619122221144187272263318883158156467843704721684602208050324464116254609918686773367524864876579096297552436097177262090905401813132781828807662277463905175356477987040928971648910991046919694879337226471990508223286414065531694473545613688204557174441228512135790659338779121947078768787939339085142043328691451962753666632306384032141426847840643949254055570182503250827575000497992120211488149343619092136986380078653322308102524475812346460291609704922940576843493047965358773336155906562070423793830452074850667112852646705496170973033354899918997873668992993378361761983382685103159429358804990516869832460835432956333585563752181050815448685960279784799278168930284775422033331055875995032313457047138229435007263200863709999950917123714308919753120510803406255374993647457187672058130696237776246138181906366292654692831360934593618132594848424164557991795076382772476524593325339266037662962832098316357825416842242548892742629478257492675698353630194814960612276921441288636698235532603067568735394210307936836991410183180056422444343401587579981051468124967877478296799449288110111564391663906268084043126866197460485004227421715388819986267469178272684661049332383937795071221408610203500795074061411303193164515672888505387074671362227027484545608266678101464314638166546864790667233623884129500691700383274994690082982252931347723461130540247715236538616779887136639208758117985455243566164207953739173535498766781473066265220006121049430863264692983031777266099878323980087391663892535587475265710032001538515528265248451603440451005890402212566073066366264617120079888635697496415705636546452876122254873216465348679585698557820738152334706603887481831812024968651143938674702857309489138823001830656840340406144580488522187900991847467756486584887131957056015850722687647333198716486959827471772814138905595756777451310812439523631050072550877245834385203296688112280760465981677713142104286901869073065794702418598346828029980778581861792154172626483839821581029206236054203958852039233017517438612622374235888098926101162568694688433491612148378750185780995943527233896363596254991497577035422370944082702855141700202108611161877371760943656205180772391016006919337837445182866861212201740633259146184048233545382505345490963724896833371647872843692671776371644930773846074046469777919186879026072491207153299647812654723810750378953159683492288318368959770544334845066978612604023300305315313635742145181324256451735413107983389648376360455273676735300409537803529190962244204673996280276226088558455085548217728889834385551180001640834899307378191923923678304485635514066677995115476119472371126455014263306872756170808177960179105924150384453815277861434252714393060152220534485701247642095053470207268273537329653653934109349596433049301345038079859199004457407271772786701686828842934276981376163199735767794024317462650073576034960242141000336357179341826936971127242581718564595078164360640301172342081482471430963136525800124590652011655434130664495534657996828134910684314820029528083756938401885869741097794621390261016088966828657627944273457656665659496917099990998552297780962709533583373972718651880457801005534776349764363574354907588074991452418400597934988356932171093128440114154824450852678317084402107677765435352793756393866278061266715103574286380207224847172733670982799484625610729227428811140680994280289517039601630153215611572630977362094040244054911217371206929546400435579215767710901050137636954965031916543818045390013023371795793094787883202098509074077309773023045634873522010186465574312324384992740108246639928452616332629636125805480368596741328480934460918661095741468614113247171046007881355404080057669690391710231158365943211058386674356446278074882361340223820939015535764701097405709907663137280444488556074081823825857300555248660535277119728287153776717903206925199190702616841357883694804294543460969442757558387214097973150514692907307324386322470487711311050459469248967394221409509605102674792422929512443467402984415318459162518172756518600127895342422728903758241296666985699116561896377801084837375407753375157672811405535821397408579785210966780268411848376434554606667587884971664414486956126158280413876456305222234427095379822067244070636524945846222632677200745035000233724793625217211201488257386929757730419342693627854043890381930105360715495648931966159375141964278764038259874200478340123581805585095080522215664606004157442127861356113815019570474789480476424157787589056382083065526635763814475777370846661647320802013989725155230249700388213842244522949874158603512615977484178956376266812554788172974858996490446461972773907421453202791085167111750824877995306623410426016040759946957945854417262466027715293608938417408130399095967578474265140722360672807931255526044328827762945342638155172274000277336993282870018269844112173978205766904334563899895297630265648863453950417537387800812963058540656371869767241622525674193329541077273073025420963608804417155474393012508160896350412992465877037933433858699394592961442804029916613716310281890238644031096816096330978735075154664550177079953515817063502180137676704485669804160956146788133311098870430701936352830942143171702704995255366913305093580655381186157476240121427091976124476057330836696044603823511112811478011182044522362805255631288230032019187628474231835175847198071137300054044876860932028836329008063040082421786038551893310970732735864229476787665235834934006956772082860576179112478228015435244369148751081850644712914797508863080925750861952532544658040561711587796442777410817138382533236540438625430091688104402903602944736881705792954233482918910921855083824423410518427910346172378080348625504575818439280853262102977195594728898473141608290395201068542603838707863864454144399288581791015487663295853610584640925255255278126065121726677482351341085267796680762517929689133202171388153619209544759233581645439731404356097557679041371452559718497207284138477052386010725476457259803941055818863147288869634636443327762018982851788799048575828092643758116128087639898761947943736957085365234094417547691133363052373352728922259046659526075097446006438735666917815838290511734943717078772160631732771017780675984304865678102816224480104651426624311877806145663303752481263658499892931307739889248377189871280957828932607889279279136989807737266067808181803211020816599399586080943926784865622542436965876677997517258870966678497261639226239028251278129584000578053059847042751814748639908857383043441673958133126804645072775325469794155056844665810076612409311450824894399854985534259637735387782926379020798288672185425687913813598536716852842811982369064746274179946357138286127473743637196265514721696382837024964295246193198338711653806685392110942478349204803867420463647854839132568057502940493531873636245952442159826336416188287338939781861009877237507989711505134307075835856721828479327134736667292687266776945643585626156956085584647577377474934049954502311747653776209013661576291117354089845164877919156577440833652842307616130884714589386088739280013518386099235069003521339533646174186085398283140114286335763904466237652713701508262958029020717954264976771540698963014142688823636338481951925401691039077352216910776520600331438132347717371359319327393629772161767981940730903569449128617708967110976903441386734037745921731718662697900767440632561425387712912374040149135491630556686360581443894458903254808951693103018205848319218961602859244954266557535616604941058473318446592205726493792832440582119398044268203106885078968685154653955393688084947254112809178105513147379092642543086172199977546372803772095518170669447962622628526493575523900686918377496273886136794475359841297355340251756610782015716359741996460018705565810276093342383292628245484169448815242087233186471764894687794526943353894136995287159411744960556720374856408473353606906101797245076039141837709436533864228677730327749963793426476994154664848212801215202231924606486583384765604495622206970486139706534333346454701905308460323557046033355519326265636048588058688070627717125860514194796579350288973922378883857291565886166114642900963226279543465555524137619240105610190065083321696684848722657993445124201305449184277054880288470953993000217348183276191573774518698517553444983949503995119481888108597932737596396460969498022330286584534706433291869312581766572146248831734968713065141909000878820939255612524853038753556661016061109527063772538811079188078811386745736128184797241145503140794249717287480111737298902682145466847321452929034070173654175922280187012110169724470063443910140257845763052211251103468094625870879505571457161464282308455034365372616494673830989381157439060020205026681757236667749050269695638223565655282074386883414986619611122793610231102037479542994960509727642599697025342740858843939033784208263012362196793659220330074674905832990023299140814621017784838147626452878634588746863780430229904484402183433723395109560021529148480684944949570769350741559856414034170334477296663137202312953936718626404760188329808668496776412408100154573527958684809138843879318421576345497116422782387850556733574944441360635930227931650316852000940096662500753844947976443348874463590612614083329284920323159572007092709440690850082113109556871794338440511738663767937909357298198417968110371886965176451465477625632607292814428526202994336981484804725175974634089963134168437487893536602188085075014991754361725247759110872669424641950520361824001352320512885495720185917240904634157095874275550891472654961305224888705365684108819810798638865498955564172019515838591489672864887917233361044868398304235131637699985669290981830758855827341269500561771934810124664235230963598620212842977503547939369009020680390001981912762051102333260781880805865412740048360512001047970465034432245680119555876732365604176838688668215358457408437493746115773621155923735615207349190897498603781080883050726307179454479939496376211543010793125895155524983153987257330865077955596058648420638416781716823894914164062131296354703265725333351063541274307660726607916363126673269028508591535987740734133024826581938335602725832209490464868673365512946675027458122031369679009379237858684064523468365353895057512663755797601961221436164138177969965658394140498854030744559396604159918338617566983624243230109505804233358045804933386149646784562128857522759284440875121500891996018690747069400998461976187510821214931060020047186044818064593672677817494897865892713160252922603150020705204347365817616705743856336281068741409059267966434436513504236737839191070223818160457124910680249595681514077418936885917698781640588690276784855791789879367300438723811077509891160005686983701271198786181997867241535279441920089319437653739804877120884761990143811029032198876675044748870123863148118378666066681619213224184669249566401815386674412199738471883636670827805440240785709139723363413868802279096068727809229220601718980417063743181784919280181815925491940731852095671817406966317876568707538190697695420589231075511910167765068147543133775321313622166770283834094875065352722083285464595214033448955451546688826538296414137406320928961659349617632253626710495737544022998106112674987204375325909226983097179166457153249165183512836721664793074625558037453760839048997416441967149862804519725500074272954193544641197846141265723544617916158740283949008348365884250884424884631916908535690997457769786482229247749966701267339647086474663513669766130888665065012705797822588543880074297767346714116889781832608117500995581462276691701157978559943401938229375336888499476244663298299823195400535096071293298494754728862715716007794184412627243521007030476821149567633465576971214615283491843721730255029697940546973434557746068451426806813163709904330054277642702061209116395850768139502572265744644799340813484672433127665105729959677080704019875116133916916297736750293278876396029694878581656516993720561310856093528732294032950059039440283645942512803451242883293354795291990233989067901483584930167169996516917473716612501914932003769267951719464613879793118725042838604535785485488040102703910343667785950674477346311410549094566077310158025431474215544462544648846412347624552980768660358535089459175519354373839859617270398277763549848845013040225300483788821277436486368015007221409530302233605247652034203624237155263845414775536444098869828795355274115260188737310553785183200654525941592705354308814759782378613344702826261914835320364311092763062506542901783751500675119924232664362401141821264169039843897152752458715222949469920878616861343557633231574740488748842945438153400956120338654668173120324681380759354176888831480697942389823564436302028235215716115803735038716099496283504555935953513440846685788224530486830150308423653049101035040904844983337042675820426982567523660619716108737922445469539509668877501211454590058850065929683226850793645768637287663721631623848469117402891953291016401321001845140001695353754928489168258847149922338608347422171136260945089587030885684238607331077204739010769798745893750132063157615219579429619987562898117441318215516967982524940453459530900796012127616267275234300580808793750547078754982358495525550194317982099231093043913418930716117174245475185272534379858410494032568258389776006468353588786891653107041163254582038046250302963098212109869006804803739013711892462797092778181313630819056950545282532158968087756256103035867602252910427856000556546924328695087629848418345600601891452834809163991138488262835735084159570933317730751621084595223177873449190834668918394991673117901143125110668336733005775554238628584067353483214769979093973131517563059117465950736310397054722070435565381715037393212584101607722603959559654459669946286913579021314481799341606205653411559815248499739560775007709374724902806472006967663489772248049347979961491107810751170827417169420326988684879190746464433697803281593815604129287995665623401597032132103782329668356208063928349588689521656277715601748393845585346430775605936375146550446912109603211519654792899022686873301433160551734914367228316277149027896303297729756951314158288827852084518575646914665282517815428971051014041747087025956245259072011811961051788337641532830162685481946177450168631807393615364742903729041074501149880376173516390300878432187083731605219218506417364365424280768081913073382608010850828579293139178868583613366704593896556799755389117434537792186293772825685566307932818164585852424078489780445438511760620527019037943184869532228727758757646500882223198832997445465894004416586469750981016334196629392329532086259593992074743886601381287672259320245571870641049796996089032625522659234908549588328312182988566802990562688234687063004235903626783775872002241422973359772101204815033219779219830526660602123523190573555401650755269412179783674449080181778497237279845240707782539085355478983894300600266973192496826935997193927518992014443269909298768347612907054042571551979131676622153604348930240616485664658008208476474643793991047661014116451347341777955370768216500968770171165442723289097068661800035145149890540128331685181394658285256237341053295738248546680929754947269337147625375408869892797394177151632861706473890366349274669713135550743377869994656592130865197731637919100307587039162981119062534157177004540297152570036011657008516899479270936486310377011389011876609718270629112730791807148833198478243437233580594769870028588086063509728402756926186985983936917121345046685827300613657885710826505446032045570521767820235220652040178189851244399198817447514163556779763818905455912976849106406959428854035908847010414123934295044775466724083168207392297855726717218301853797203754323195927200882089794338234476609760103628425635649264195992813628301620992575117465994816477429838072826194880740551978514583271783914548475442290864510322996611330211787817058969404757072852693067485160855480768838520805820917314372949395093876487497793622813780328948681941196987583462924894881462501258897834004771339976149895979482958372840160001986492068235354286390485395825405805452016334719815451347273911764510464415951895351029543739618022900793407549611255257769875942772855166610627457647975157069187685068677787321448233869230603503740478339097858826593759005722555100111717693525179186429171129616661274762113831241412866162373833848175420961027238322572696172520882498795259162022832065512554858677621474931904246981700676577712911047810200770512118045429961262001237682261147777621922898359362255049184118970655719672179594042170298971069540088127443778347018938345134607221523909621123557786005702115960345963840309407766522157267074518081616612864051297763741620060984979180308861058420771674998626120257540823147500790155466755684878918150382284719986452421754647885836103286694840563208156765223860687071449599552042236093308707503816755225364925124442627700686201376477760706918105692381016736460203531335177492879311912963313979768336769213395320981595694542649056963342272147896567262669540928134905101951792056228887921223813396978825339879071336304363240777534592259390647169732099153102003521954849206705333549623224104938710075636431444411706683927415878080472082951046111893627914194741712582274270226639697057108622777997159309959663296536296602023833831244213285651683353724306972808695585606276044584703893858733871560103652780191941664520197972951730598676622589380339913395851608820184117452004235000882942504797689597097088789990427638881883556587034197277219559195992947589731461070310437311901502031862437680522888925357241489719522189140631012938404525947728250907129399360974477505560201063061044894362362166294828750007174655969336713137089133061145822296148605720121880694349593087529594515952335404791264978924194845012951480874455650625639156972398594146083192847932926906828034067114167693821629369179790277504206919041994519501907499158328577799919220718775017007716308470651126785563850091348874145617633105693242939597421230475250042092045601312512193302093816338684619263930660138934935890237088982094390952027039955444148149035348532077508995444817288176700394405115077168795007402146835452425608196881562486892936668041996658304982967388740314624070943093277435188293471364725582054788044940309184686602594098133632687651534731603876009504061611692984536184975859230388929932166965873962750983227928878692901097590311342415899844448098975076435696457807441059586818271137032910829502742891099570737062025589768238578058895072312746239698805013481154109651510485760436593990296435472612542178513840410901942976874860275549009809792001176544130751821132285987832077503489251834582171352149932670334831761625901670228485306327590618428012511882421117339754814092950063484968740326231706086288750210056421171136103751623608392541634954227007784706527328931901031056378186287422243058135284764200200110188904133239149158138463743462248379796193226028662326487179817772193709865588809776618716040531660849744435960347994789320447159944890865928118260543059797196865338797072143166562656664074478477865279763445278408113565759149155510951647435956092365665080270398798312394334853058535367498384615144634398830588261335011166881360939218039023199260549523590288891636921635324027434606931119282106219721998756771580373891014323945581333956597896102524683429712300289702732511508485943517555419746961261953503192746069021890395448439838304207041531838649488314011224892489316202802189448758310224069143106582711775561584146699031028014035790772700534710247942892469495179514903816819587631977232724214715940343366986742847539799554139036755778680419232269459246613421008271709257819299140042549055900375506501305918115027323524747962065034513547908791963895746819349175551629790031419783616880820631396177090097971301492384068159543584785448116313160998202494898901745433530782750931532850217354381680064988518294706392636031169807750294686175007415692654680625105968366735054065664311925691687565822691162889119337297397844466189792489180699185612307080082234396900059096655222800999977167962597467898850624756548571117295439547100492773499422185483165082800200324467447034389372106565193774820882589618328782463618771726659870906373412174322762504418400885712655438446889703958169469852218983236895084520633966425914443643069621975796637776822955352540008097005314307252212174056217271003554518503688944940726112866022557315226116798876255175633518176764304501214460236937168027276027114893901289743909398662822903885389114465124184498523449343512481712209859204131826913403399012284862344325379096968349739446598307763660965920527997267351312195863367919762017231781456901851644180227903631454019099949420662612612305947895643081498084195407968528018828686125865529400440941847608860515681974206872512259782994639652850401421195514224330266922937949304661282841442145858537612146947336809245953734878216479617639219334675432509389403131177337525181566310028368026143202537803354437072552807390469873016782532166097952485677898783385094471997160575864472605851344488320550009657504560993054180548329471691771623773788759388591203186482619243633957498141086826211183432255006199450866741372092661385499518861231344965776954210085923753815340788968820499287093942159682010568541982177894469716831025384471211318923798094907536974087423058681611505961653508693323939696011172153250337773511719243110453789309962892299412277371697982097070854357328664673858681909666219246879595208930372417813726935258354229975622210932050068158394432225907745147348977918614755500088421181871993318163734298181219774515569624226706290226972637209091409446915644822061794900131575454650185023157007843322569558899362651592689747916048905247389536724100158444232595888237311188360510153627165396325685030161139753312972997375863657813209088336529368289332691247945874919039740661901333262470230570670009815297764991078229161897318487554210339738514753530866638039478939780799317796488461832904326375381650447815342888745580286121735129811742339621425760447941633523233559790089529472312632068185574256115900493647705351763902467812704807907759751963246814051569374945983195571635403551130981332874234819304833042334047320551942799251903923557241165513371727539839107492964096365733407477292577257245897604787783886088658361657101850925890844011978260504926219328470860820553444143007576986262463432404662634147315482074141851963792049646906263774728161411110758322634476516349852880617207080007655611119834001514038933056195123775633771344340812146096719505973523419201065365358915948118835617065587023326394909306970536235772197182478380308376880622019311836465761477063611242924662879215353413843988898501417585251801108278558612606059570837703631176235113475420837687909048462678069520448289236122430333184883755992579570622310519102427475662328161625958012537028520959346850385803327489198556470116908905128752832730405595692117345547285138185838096029179022336207268440171073843546360613710099713160797602305763841438830828622198026196713885401656335352619788118550940213916518624897755615311822863659810756248683053908900960350540253317739866022342564114642593541129302870979106518189345958596475409899861177043989254708710195702200988158324966611515522837547523999206637010460833787448503683210488506314049031297053242462653576555923982023095704992400453242738115797432383177121390271119284257361867159735564078953546105433678981843375564471265732129321132676349114362129131934595840375835296652516776409706491282247077549690782606532119586259263182942405026307198472936520538556707618367497836112873701705872946029419679638665292960269409370416133910891293161705734661721878173637399918507520093124979109194173841437376807987809810866527824704794051745373443276386387885608901966328191924298621563162603246579411405442601058280752927648985898201996235444430199096713652205146674110653689147649277567816478553536285081187540834025680046641876781168748695386986566475004212727302675690770045656378549084039551657138564389624777721181144139153835169925143585783037404731904704823303905527629681582958073075102767846340597679271451323445817634640200609635415994093869489115881658082855373020322271157289426760042977715533857355298023496092619367133149108825375699775808294723721880641806802244015536058155232521513332243480528103081578407782960592004351027579642564017422992470081541293319371111860437892069149711697785338693255630773417396643088314289407121809768333006693112195756316340592839640812697478432866861379695906716313982033405948338481149777261965125828009557411184649176956010645261703842340081160198757173201259247977220574945743637775847359820695977450648243861077018607931445101761524099148338766429934624208604899062865318204764704018827272984652008277993560486981731314302728332078649438098260120129576295319860077120432643221635926383207965840969931071207883500005108047374293725306540287621259508411772230721681028190259134034753120051865878255108113063835906258606624997381652850608511383140365477112324092276893904452770784397759179146703507803667630308049968669854398438159661174657911879650299830437624376709992197071203917433105325875940211813819636753667247059678369057074539030265017961425570210924229687497558109765267355307517548456155248204119735366134908296568378592359949597379918264598170620779753772437774245917993008515664555800143137503538776999237969219815576737147163051009851659241657346357876678086643088987093979143262999634293825452560688548715476659076824854487325668671272269893626878484048863334073699809457257729873612692478366609818661172588658751734770322222727829508946848060578262144615743530841151895067960544814679058068777937936658013963496320903118640899166127861599600785219435151957118883233673082603021671791237263814258600519079796362406926355397767412880839985187361110813196478110991055200256747410975675412806233305562188155402942930076889108926940235424702658963231172041328754576861041844483777965507431859142024665043330781053278233306815141253007639067621738027381297769935367668191655538505660086869898375491663690924338241734372126805507911080057032201363836832169903825719017658509398353053587099251694224436393012876100767610362437859358059656772604536237140143920102212277469425891271255291467093562901769568719549895324916609960481408934132881866938836395952297226839707797734638650835653752483579280119501820739548603590128981016421284106217318042490498541554865991379594315950121448082495613369590069503640933161648319470085549798594984176135534985470010214675303224397037140504157425747826659870035917884742827164824963295292780052621440391126500751624051701555800971759842852006386724361772567024154774617179147365589778793416344603283947178418286945835347056183868201869563475489794146056121044139549520985122368291160566003676304531700821741014077732776629076741811673633168956267536926669911693792276183383098738066723902314968681179585145494211527781452634509003034338803294241939222160323648926666753551094998508948760657887610645223025849688653799583970023517974431571614901652521574477804665347918145834639970582589246994659272113563133334566527044704165418822876472381152062551485229569261468213523894260557927671579836090638620978721903731884387458459798197817921032517010766908723190103383355495953579509828003386359781234253371306054334112675717291869576248844643419971605622806079521604197155258292155141125432666618656651303271946150357597558816914029717082514367337547851842465748118794451836224678891115450889840254036168394127826807106989655342380955472978534685077818561852938268837924930307213408642509755269154690051676359154473686811731481340475349309807183283360942582251774617280849080048254553413150198644007598211826592272215182972244134049184915283636897456606431973189939951854642426862083049589096577792132997781926009401195266586863095491816277921378542210266188321239456483977262003871387844780526209985964327087230281903751813540529687535430786782536114256617149118743756662739342135933323788903103548809621829526570738210971851308575938182865999922998762020118116226614013956223432067664264014874506451506625712328218259479710507044831466463614872314352040038676253748896455375342966748951143800592031965483603279888286101495169355815334688048955298901526084983872530550072703941715368843066647265850828843991303968664249008753615680223402860833115465027693072051581931377829695550148285552187230277988566980806971562755619269419934963672469969135490558808583853475407042355760451367744189975635343051500111295060736643723676895026160934441314929760756720612687614496186353468032017169746884454411059883222244449234531875654294771632861343763848231219098646150646176934735960892751592612864196777608931541414671046422560381392031886866073138741137014753126625548199574560146006992537516867431686364982407336877492090512316561210486949573383466043790324755252319044643716310806793690538031598276766315076720123667626858968143134214330106706200064239936024556066259228902980848778335405160632120844435032442643043053222337710259958199465996363268573821893896905932984275018207857677287835075023413178468381073705391407305757837346793068403109263745343538267389160759013303537334710152166513936331260748297651103583921862816195030177552980826001119095761878116024938246167038499887284616373788921391230201301405451941820741708488837987972215220451148049233347496960532255135694087553318774411035469209087362417507294666429585447756943566529285406656180997239153205438445432442004469582434504871739836933532130817365992955658942144116202192242523216308882260873397362367235089571869293070791257146913514816261071437095262474536310970536549472088049912908562820687572263297658475367970054081934155867413801413440566049871648578466118216967156025451641832492621805829933309831694117248918865327551809595557914627079900568698832723305583705687320605442849408958364096657511031555670382173861983650197215024836274582323225443092021117733786441811978559392858086674580425877897487812031165637674474360936358928001826307367916134155229849137273973140460596720087659281224292262538872618273208881981339587060188365395532961565212540660656427816825543360664682526002034078238279534400721163332039141259685002780423148530973121750720749872966348448296935721390820777674031641254477810455483739641892091071096515160865335184235017105090005179296549324330612369704832071914200679756722833524853716963580985223113447480439668698460400152290345787095684049813684198062777825092944395182993046767274567986391053340745549754364012919873701742171673305937500729651315978838464949340124723794897263525852745833735035025976871216192622350680122396133041490665418590666048370241268585864023653262022971520178893784216214595938011272564433328981568368963790361142133411661937772509193612346444747334432213336084102456575959505298287391040046431079975037196812268334970242555557822964349767018762522399751687561194982770603896000071783904183602015503410869809010314684742065354376530452352058797615673223337198309669628653412388030119082144395258526780503910018643758392865055261283179304723017631026279169081559005970429692014755559241235497664936343351052352747992219287878328688886762404666828428057365813133886707524685095306785387049980665144815521865512415517255550517532746482456381768412412084792434635276368447412746111020013418020433565895200501794824613367086225935717086689016901975908808393844869781734117892654970648853652497462055090735590714226020708567338130302014764176285431615592917873157410787215543389023846744467175763935274067051063474234720417989018379545153056151353091738634926198514450458047207475885401371850153978480465452064484692490301211298827020181432122774933084354959213668471139156658746665805382117872749415988031298295240701735128769246393857303313288275240541286815036251817569745097721828177940419553853710678749035987364912408357061381410423573741679435459021063176896287977728148367182977234202238874624745071489739366827229978037605804066458193752509908636640451530707219640851936889382195896278090935567815269472904909872095340750796268191473697728630043087583646180390347728857695636611387279622808743952077982245061450394537044013438920593574963903848572213954051067815055748107714591587760793427026377613228946227529068781119670802771820434533857381189553020341773279835362476599026206476551173965599876866945241944756128772487193975373712174586933979502801491007663324862979328252466469215185306977014027763264202560760319577974334192754271416243278783915532176432878502481732211738563376151193422888408831145294510363480418302420748893819162352899908372019637332834914217720843108064184322764083433926973024587139789352518914799329457353313151862627525214876977726581284467443793052355795669647949347327335825058402585630551978361033135724816493032230959480631798517064364088290544985746566198123776322561579752328059156831420851723486128968334988601333746814788857958223629154981617503035069554969586229667919249803516568645220900311630722648433162570459152067336351556991257366893675259104085328535701330773668700194932470767739076666898541065286430224845186313148657479795972204344920076117111778281103346375115591603987212274141837886290722010015568995224757681892184995757327308496153961979222713147132391893629841679775073097015688573970618426222927211911012592131813408915469120624818453773826705162556165143020929072885299947958054715024093046236862756846683332286690749663061617348220038966368281581457222903053749664332017668760633060565980494411349634947586977298273691224358567837454558991480757721930760884302119879910140028056246226602058255994374526155069233264268088939592653504656423785384704971503395862814756810959270147599719423891485029939304084928376876042112412972025339172297808298393541621241211904285551129523262623975377666989699607260416759647512960689966409252540706533940847009025537516760272358130564738256733709575467945788940371947960210700354131092199629862456708356591535022461442118485416005826000712270841329864481228423175452825948530436447495597307672731496737150420460422982575194158265251470796570846381355276253092080717994900360000710718131535124174304767982713455712176123791811118482635757667338136657634641205223877212861989169646129303773612808510450801254386828371990009637084733487973770303765236802149036746484406030250573432139955922488964705951388912165135959449525794073969053962161239642850947706845490028499973901904148419616653479344228324608007577206881346916119677352024244581865448496878606786515516839575184597866764932784521420796232097887664433449784550059669486605264479486281392736577455739541756568480883527401525168606407553647496179259401894382319664595557258792045085130477923052744879870822113978244488661043793363241561432714234108067125910936742823211633166905370101340904092329856906502775325073464643659669275150163536648589957506702834668357961742195777692392072869892884285266581262424057671003977771676727283205537446264667874005765661106083546011313702446963424581439208375885001217609744101368324661550528463896334879176088822168485906575758651319036654285400655038874216236379626566916066022823372253934362500853549825056514552231669434003912809512414143147000465184323817700735072453300576177655305461644753743777456839741852068981990573364626664121722501219875876993008450168678144541192569281108133739653425977620350179005564119688725604074512101039790840369040329091977173073151013199661425933623086690101769676608844212353156395385656305252474555729013996925051400757014936625870762362725670433754054483099186416998025168489594133115780598631821489984002146725514957397700649675268022961962219066102275745380259675403304368042876820231089985507267431138200979903581504891963364041749238586216220705183881062082684081723245027752556116954013181900533102152948848076221762977160480742223748880511310938257236794145174266663555757105717971554986756642985926190666043731277299517303426118681174053816830376112872693265952720530231604537955600282599395569750956933602798170861432499948478229179431409711534609319932174825407954949935367223508886587996586829536201430526794498647613963718213829016133807121019201934333428810931111590752199475434205787373811984254355475647125142874643379346263999359872595691873809305353684522218518386865205631579516384907826921295972552418079147589270562593226438774076385160026704010982761031655173257000087189987568707518845010121831042966749490762085588697256461791786672575721986276979263782088494016751433441307422448851715231392383860143416230093608185077417437214420267157287027091118779113466949979677276737545756116548595396866774065540794511190528386274188447632061959870058443716809637934945817314043662426976567017289641063823318310537053582486545681333292599207140776982083434409051263175873699068516892094072119754192080757894595255413057391124431189019752337648689268838451143636795231314125079501759680155196255743471076910688336707166643727456520565483834728989974713716662584954297350734884280184647570266116040956022329990308499372510256969951786916494631052787885220951319330336666997640181833905794735442320495091650029079937335367873564737652621100238887560920791068138375875867333248635510725388153373492429722313200937691381512792069922993529204341619278341632164072012902845203412415175672309059595187404993130056683144876778991429935100248142209424157133863973743602220040180876524610348529620024100418235025555686481298174579610185728120872455213141983916098908516220272534791161524111043157821887966875534423942305679136010158791481501210800187349123067030812571534712218564153698259126794231436820515210433504441127616436838519968045705630637176609551572585580085424642312718787320164059030884418530144409962756702226184342510147497133227650389405391824163552712882187389574975256018156735903295063107192749788811419356156653481050795507864925926459279722087615005123094845050553663946580689660989586054870784109593494890183660150786628855594297356938896123888899392892304079217954830870493468511109447659697771783304448780260038493579854762463877010515878669907180326690727516670826659849015019184127661051824620019998643299891725014953349798342100845069746088607528706180088264488592019091972671132323625267047892498060783111742909486133521552067591048434476377385858728808349838237198096343646551217205217696504076374419031041347035011342822663438693201911192653966655371937573766617104347492053795685850147598483251147890427663695674183151009389355292085136096053439826380926343096806823042034155688487559077672713836214718402014254750396444929977888081151973291881580388677416986926759200328398399628217749742124611355511289467164444002855737074682065814402826117446837902988210557744298882798099455276058630403761762691347512214560107168468770651038446807054464972415576777493419246263498549815228635416815939742078302244341858100471028451256340565386821438274788724805600786491949204847896162231023119661129735225661971837019336151056750101110288088706669106730628194917762757610851643677018028025152803105995432105043159405450634350282255401315224237697340144126279123267925822826757947725729935856163545601749947884845907925407428336708620901586810371877135362722447728246905298674684229730404860883412017239583925203027067976395533912801080753093480192014243210734637894730767928411944285222526866625343550971076750692633738878592729785389131718683350639186975024111239151224427696458890051900481951109015216569618742573958042139650401573953883175665005707331442474511155174762642692998353184120417566699370579548624375878064895258527831917934172145283410179676991068452587328680350388170152078875831493616924372411456131019507373950649972610551602116012002159381235228280437417049032290395285767946007692121549993550450766911282370565397828797182187731305419449336166971002064544500629134801875813114877624037912679026144324066693097543139541997181677954804747527430623665735589493913591156221241722875281824340336130737865270864515141037512817105882147475657584304286587909416964560140068294573794680986363347034049400061609189007384611618433125024450248731654260217244031962247268436525132851437673540643073371071803667693622296236439180737819828356911793050995920853156620486142223609659883828256685431082919386883092890575558018778515558348010698379827143592150320636465938746629714587544388057609199599851931469939506009383520717527962848107348577574857579663323226950016245329564590294494867411503105408659231329947332043512336290223794794284384344280329534242646492360930676835509223700396463305976691263630551494081063998755971894668217935438324740802904894457652692043362075621153712621544198291076247903326519746553277885247000126588601825632854850715132652776319796297877209171333300734135052158806115857465419956854994852343770991091532222522121102034135419984938077402032468474184891368235729695870255985323342259299918206818630623298799483356009441949849846259042662377420966025169395318026147873127024560799319378747180651470999131981593682617914666164700030083426602001840509935730562895514033867494016910641541942661885915041630057733858456715790201455716723942937671783677076166433315907779771679023165567355962057997874881099221932978919880726445209252916950713891548497955721830445709704241527188076700362069341961493392076498598188649667343048783399100930586152955354102537152344422622813714227474631832316419581270623013457317170909758216183248587936139989766697947415181072664728871145125707644850751604637591588670830692049624485400911307575015497214646413322651075828726008114006502510702580326529427500586239299949865355870672589222023725491783368678583240558015973308786381871084421079523575298638191579784286931606476669011063506385101105499376377303755023916247368319251738978185775459902464605465871625361527225622809895047703901319987966829250973746935644681825684509722513748656958973174749701276311322198660743859099408648598187451654002506697221939718620958143055814988269737701146027018844136452680301699900628846105792637724498257422741882874907926015631619352035117548313594015042643329657108124683631083614276941827375885445765868493553695555633233366172915282990582872873804781563954759219771631284215723768457335876329210465352029780944852424766972481064881178622842332586305094282265437857759755239767254141818703166094642297916087554420835693641207558382549002505477174524412772882551700065447719175911234621871703561536858505787886366979717500909035205633707651923145229020975910490770872631200122613757765477982389112344890881266561862412945788805443246907570337910696344973430109245007872183268064652194658232210439347545468926088015520952284593949768926623406096541891010843640988808211949415707683940722458183812337188973270955312387083224619294574723883170856969353401953035440035352744711400482903685950376087177069403447430831765436412631076219071568062594340607850552691087177776474793869617772959984310542231518646963040338070040933779493991036123556037988304068536378930398441819087433565779157931822705332283488348674365856389759842625254420237696575037824192658830601423542288284375759099225336865205394487517927623838331545584210307351911953992862297949360373584377503522476594247416742876401761858396640828463219084922589335939900048060319839915633851194820953513988062323259675095478658026066884173961250466905328973404568490196288836215214288641606799285695379169578557809142554080139525689105888549852666329126582054147777359041870425968077684429172922114394270275711189395361895149025762860146094414208194600135211292733919236956561721864599181653667818580542038989018016693480277263120039068623784859125385262100169570168904905261549126951710597259418250634146325496579967192377550007625142468569477405714625052906343997484789161219219611024036333574987373243537286178102297286326369833376742106165901171969992642473050984793300977861976489697406191110261287404037847463964781161071196146650455022262044321111670673865278606730883511942731629683629235060834499868211530655460086103928808688188748342270400062822534401791637456339997495021810048049676775526743597932840176223580305139180492416417634268604540003962774738983899800870729283096376431492642674802498233094851036429036425300605269647269302962889239160613215296088946691407428116638900521352909429212676023579363112547209776500949152410889504615663433105355792643434830260344902375400769464394701812811016202965263095631146910782179265465185323888147307147623476063710934243825692401777271321200350670286090307102809035511176671386838387730017170991634687792175169936274216247751792325718323798612864458431229402434920134911325864603653902590256493809096403002569219954117916087594435547798090934422836229697231793836886595320261441802103595823398414017825566807779269206728947933635328084047202803560213561674549620474923996238030663907961400429197253875337347759740978242066440627663928747688026990083027375443956426978442879645966726431523079693345478560424825329271597543453181913540585902910963212066437270144530539387434337017403794757017258916905615737364965853853896842654796385576310571701869386501398802684553377458515174092127974015408575022591651457516071653993088494226324739309970687383621565786810834924018744252936756272321464939629692761880201701650878829911119093198746110317744645316970228489703201139291419770673555560892449689434568352295158898098105881578094830689449391794441694876253836289030812242492437645320638691669568509183988830401225599039468358774400924702386994031431083660966499119102024038659084346336622544156917616720643149661434406015216132480759434599085590166275582899340069087770371356919319684421221892581691355859602642563527465805074043961413576980286789192197369561298801960426168823606501376463900545044218174155904791067597282313049667606297394810193883662250392873625622276472671802370412407839357749216692961013021910922246199596034463781887239959719425966528979201134821608690038338325519354866343184664696412394724801843711832837284819388115904421254344824264700191695318787153403505475492524887036816483782849580067782524430604472079286392506110051293845255249140382287608661725480334702964963457739799639361175030324892874293341162997657380320438338847167644849772309189043228693356416848570393086572084805859974002346406501726097870402082366017793082641415440172056732494332704149538198578529477429700449104568940269625859346653567759473263356515484305492250447005612475409503226735235451865659051485186054603932393786254667573181666171040788278751283433755590699912804054460032246896016277813642951087369241910551954550947164627159089581889871226507884305396705973422894573027252664567460988533608543036622619950876134847764365967027416574151614286636785610637641994131842510458514281770076082944343861656098184225412202343630690777900098038267977986695378716559355514765993119026752885632605848298710818448740147179939636966780441388201187811155106265545082821900413437016800332518164820445071597253044119541507702812456278511456799587387591293004307316419827678037336018639498939613309229437272043306251043713241949475742113423015277067266815139540239306076579924059976824493906008671470722415000141629487011852199864813133177988456705422750474364853300313026125888117966567726727851028251010631614072293974862972582374518292370382272888751692575808076596743409489551889424207381248853359469408532644808650533573171040008475312258018850483359301519045706847026861238687895818940901645397033515202507563518653711671432697959054434264363119704989537756686072516075186955357550316441434633051577465516265381331824408674249810502617531827695337558957131395749333584766078849375125287381438836806142960730095575295294051398105650173642726967759950080916839226202926986320356586811179082003932884419701738949881580883206974212728515180764040215148132664614378968607801827098722906559091822214019616253095415506378792180653802905319352528993016825551225839558933784305332763820392701052296217991278259500826751069082297784153423618849723854346736369126153860275780648470317901927669162613755502034459171902407474302943492211420654145553918127073714136020324030898355948426659087362131999989994259078932128415635951043214044023667472254275861546166199383937879153525365566855168127568692106146900909871820035874700627137735794965417352792025221558953327271514138324958040064072177128844896664603478137530708681639467111771510799304646774345108564562250153705297738931144841712150045040819666883698497592331011741413491262134015718687635234053432287504076454548530447259447772001651390384099472026872780334810459832180380210916479262799969960718754661217574775516845277124347381109728057241033545290850256316390590770718844814587493062399035456919086072112693255446076878747991954090236881930839995995422378083937796714501693273013330273012453797200748995953974496420664747645141446937694830597321999640686758129015611946789094083183558298640751246662429210479514920895296965178925789458556452163599849540578382653951720835145784964114022458698463778876432865444819402824266390219756167742926999635448780552211759185307923386091082111634464567565079240257784167093095192313737381651169427728444742074145280835012697354747232147138901153812825935985984078453904357255282784415051251738835538774780638836994254212267801521173872716473923696858554710128988132769124029241845491567343989124381032040608702152506552074132306171550785834831970463964257706374609169522530261432935613281061025033777958489057461743010887930495063215651585838544854769600455346732007375846882170838287045605065197897618520460096898400560651606322762824382140050059465926219722589273785831052339726239745811512852184182917919368497138485402444496461546047251410820132639624610198992284334945854073077914601337816420696195835303611764177338654048129934691169909892302970922961239037970290036660502376901831817858334827092561644961587505644695518422311500799776347853989789286328918315424916622860469863608050233125866634618402858872336896460387924278626698258454841151726563501105788921809067902435475662692610851804276710075005130503730359357048847641732530191696890607744398934658132392507191892172763508903501607343655584549970279250657344719693347886505052899966042727501736661819841442934676189530031543787031835892353383055703618001001482777893439673870435634836521681134730125621297739952034700386773644647809778356191132324530350112367969934342362483800122123964608725290532665323284866956129283066209332140529997023614107567298412573627632826645006807840497340879039240737693794754178689718948455199732522845100096094022986287118728635190272487485070354181986283644908822923960867979922581740612038368479760907015301792958774302385498739888294092383260996413434434940599712781499114219672155926682019180848221416959478661307867446716809492257205178026645003387702707856076370749071570257812004113454921354011965073807784905876805380907465567977143925667737005278333077465181278481297569504217704733285837621033103918169410485850129827805591461566319430630377369526302368082898106060679432573225517267123588224163928670329818400554856216613071148552762698367237102501314070380853322990947332761879461705926834014500137183043061144052812288236800921573258940011004360581309292215378124487379970228717138033499710837792448338534513191276357681291732662732863220630746678396951486308814250966148655228948377150807731649544899703190178058499661454000874691358254909967190438736986081307161256340427753459307559766832517483387653225386041493462055471846535604907459131256042646070350578771442621108167048433471396505960812187222539926145597140516915488068128477800760023762605173594629318340682565789990412985019886349882787329660187474640525829160224218286554802415272434553824456593888750209651726976411100769349709623102741341316579713393407595808337615724568100319766677547104089498803944470295697856535709564326525889546506953811520663743776344153410868749854719268363683055311767741994688760282104297937623066355207734282514937037298284192894379476424323621218932186401013756087020135113694764070116516082491135009876416539360710059583490580726086217653936333510602525195808150234852672528909563403885431735839422500159345991395763860588007279520681129446413500364379561741189030584189279636187082246272988059751666940399683375178905261411272579191955172468479331782696331687563523125208650072612576056179137828413517804667268496929133489031270526534199403452304800898813825709009575301627048624546967846901547208535184192057875107293005864528335051148287655833916549181737315353003129387980760629737524378021937847499444838145613464622637088622265739305193060737719664816468092810211013782568744787700585979832926210467633062247812520029150658889213641305537193159846822161374326893582124614066371942118393656438542402213707809455429383601103686149099309611350255632490660567666850837765593783886212790203397896774235364799145678796051040130921874443312955284486616344064906725480595539994090226474304379465199500337984492627289633034929278625846716837013824043695330438635979130845810936477977025042998840589579051401748702184189290587010240715871833276695597425981491701637073600323543137258810154467429325432192328225112927747560801957659626516187860882621095690976912017311558865101943683796026931312896329369092015182636985558023362115025003497016722127337843184646744158165385224157218900740315896283323591471869987794834393088125329604335072198021274465382676125740938226892483906970186136282733847149892090122437857297303340579306139554727603073803696595759666337253388644542913322184028631971296740626489890140622419349841655629044937570460363028094149875311198976466328539240451778340994462444031207635918165363162034258404790962296463782264965880440193927558540687520382643723089597243040185165566227036783835487725834361080750647600089205867865017646145488783271023627155128760713010717992041015105688718690267471033081221230235081192469711006815033004261572491861935164904513785891645739487332735355882403587428489309933264466206991934763872113938457316036035597310249669211167101515505416452925301223136839605415297940524864250728473959280308095897787855306960339827264879897186738669440057994198458323266830656900461847823624700217683083810187007906062518240977886568411238929169932517440846622348843248710745760054251481059997500492802614323265959386324681377728255850110849947633273109676899568442493696862008966545586349295720150176408338835918282947688627391456596605448424884169619007581909865763038075558798817258370225352698407458738963532004471786371391980043174442894031236443842007600151541535785558568896720708884837276360598129629103567658852129314474690235631537434767401502267346796788313996652820787350738972100386629970933010449473990726844205185327270320654582678112169330052178565093021566102409674381111654389336347354519999946142191880222057958266610554013923281234199950476199744046465504175654855435651430102356744627729502038865888814200702918618542102517403070297346844619143213181428531240422653177020784019104403664749850805941088719200765317763618168234700497476019696459699497215913457390440794617254137150586778181280678832078164518822380544476898770843615724874459677383402306947936420659552258304264993417116012721805991943881125744967333070167158621827300952741241252745494815750234324962576167742256880506021160184146230746341011093965085169723126579401983795874235240871440505501139417440294780426692277083962586865403848200606989955149239919676537979626223004813096530575266116752064943212212223851115606575670599382649484890520894923704595057482411697006414989524928780138820273408971378249149956360423513426235885868831132194342968633109959459499167416715519371748081620209983102507698806775847498276496882783869193050406651099444954516805971621410632264760300944759523713154985699633964670902808807397267082984690766420277477401194631002496335684511123269487109635450112434550163323302824042236719546721084117198236985824705014218771948772767815422907038671806742039054642143996534746052251410470110298745409666259485701689192993165145372494313942225880332053367863506056988777296559328741766173379578464725462739714528308379262624217976236682314303597493578032133647991090609320635964443309048887741276820157359406490509025707538466582185473244606692622517028523265192800314474364114343073781736115090792487467880937542613927458279351978273587765673525652673932039765044854680217051608737923296803762435175464957606605798035761110758401942522086978652827605066105045738911414558117193826763099131794052594227506903527474883470100423418153484377183513651157235308179358698815372092621382637946855417046503694786529665751726409614530422487672517062434869958966284355703711907261114482058477951602821578023697499830321387365983063395918952032837264953221327543087217726025643807402240932168664985731585168084179863674828266408014225273322848105761806430033797246112604737818239823422798003880905240386203552785503371102784259772311680370058557305415761932733993010012500256222111662203978211948040861058662697319598513215684758098348973431854963407047384979316994585908933109032189405526851829725204219066663188419419370882376349399289959677827764498271251598552211626947018268508117369136691691684835394432594299347395909907041384270320320916229543448655407573569213042620329435708056963516977182553151588977775216462210209166656460681694874019732288527785202105895171769723008491962581713004372445195765501606806468722780514046235246355436694780256423764521051733736035129722528725749310544158895940978622997945974216642922648050635891003383161755376970162912564304937024424768253995390041252872585043271668075146894133374304725757543053758068646791221295369467266909544330457133547163004245048476682606395284761351432006179228611521117228001265715527406015923917892008019720823452390174778238978173403905329369233935339511309328577144688158680141527832220414452686414545619206281038837049990948151234205358109504722414127055796435324602700249767855289136816171833829703304680945993299171105862858899694080253737401711732395790162849524995518168668244457757745325419311547043989853043854215381715053399133613784562449574428679754159455166360649153388240284425421069497180188214224085221646805317761193576182137693196492144593190399203070327193607106091618061234013900411085635987670618939748365669276489436895673830090451766398971112437512741421887519223833198605513798052155312845136345613565763336251225822610946926131327204852598864384651111832273366792516633449022446421965001999489889870578527454728287010086472457362304827566359344410687060448773136911588021052526075074046927508901750346965271196651007012952270923003284769536551525689863511561224409360423816885036001376912897433219808307144970043388904303370494158103806670490816361332207280670484346419173142246477765082570991262641207316541453641436985064371705261215561743920448158928801239090125463788344538459749180383703264282634545622927398477598399845698411055530756654259782155824573622650980839012292237647114276030035818934517374111006976432236405287518072823278566842452761518962642346329414752394931552250540350422092699427316775647724283755211098219482484986517101646808011452780540830192796515407359924720247702459601133169072919113791145185554352657997099986561327724366666519165320564770483606725930963150214218299576298187189764519891284801378926077539569567902479809248252334326077753283543252304860185470994809790081062016614250479854466639187225383586240866466027199763765825012505206683948819414150470916636674073064824491873240675960170091789602636515854801008579546205864684286779727571964197496836453520442241591122869966036353640002732940099042809499528485254327491663247243602708556792547565809806868711822492576045302072540308930192447860252328687441334926053886691293984113374210957638774435170581380889347888861100473298589344597033088998559288679825692068337540822961377167556032990064082702786219330129833968646655545161454932767883610510096256640232303608092936814581643074264414826295742785045787155527762315569945389073635007334017718095409315678034436634579880747078656453045234981109453482924410865130534512891197281144911676916457599754617820326229650133357583361290149548449471902058158008447610130477134308463314983587461641972276782892175935843430422228807697467108756639887253220972737561998327502880684546678056474041321116997646465893978728660425453512266311836831362548615002899001631539310974224801621187100465182367853678588100488316051493467533322422705811403900194216154244733119055197006305199767686469210182693768140749701362279631258472829970295453386864469656178217509805273193861773375501075676334497556419808062666253361661908853413591538761207535097401810258768377421251413166943678517938140793334670844547559232204568684314553221058902313783288568126455848333322250283938741739729700817352560383794553031610107730878616628981834170655662058325233510196294690390403164307645513432511594525724938026334600185813250895808921966168998935050219910122384175811562468351012852987942218133710760432244642242187522227226877741357210652101651554094203534340403164154674669877654604116211967094257917966171985152547798553061032724293016016707277665649297152778921529191850728361804895752363899719296129543510726316308372437044270749662654501173325599275521461287687856138584805927855285307678918005694862760323603212271317422099941925148038163134491271466358863257633340971039995396480169642132503557073322094564106275204327709424097637257392152003913025628143072267471733012393527574183145671920404142343655222625955897015201194881710172309345801387627092197819787037459852673838346814129121961473414248918500946315231044304922666226420229875929420155767730676157004773757636925697951565528148023688077713128023992884996168024928513706270271338532585022552753091785185874780145526681529168609863633494721286609873996088349857960429572271707973248448437154647834321024699740601197415684153871449296069508575189170743988531337578101371883361995813319218404001507433500876895593989363833561317943381829455172197496357542881225050595389096443024133482984466092915991599603829618524131407003194053616382372490802161392906968774724347782926417848097608385679629014691023055932352186589371470865485706899896965102507049311618765594107084365905983313052417602044154446738268218405975299028982442833419027633959966755654194419014940776061234156120119557371888975520984169536714006204362367896701854412003244971310895435401608735872773517698514770244084722664483836156203160335898321553018116705131403371175560042508558537974181148063741220813271360949487910795837494109039481164380944907307600102233307508286332281536524421461499409341065549182991046783317840451039170509209686198204839561940578919326974704058984987962697306040287465114359647609791764967603083020965946902885608523426986112013815164080491896894834457332386594977384535199000732657588523078949675947977951151017392471695056905557192352655412674017359837739405912549289397222722122246494580944835151828538187140310753982965461052153071764370807996936865003612123542647848360996482586873035037878280320524096090533996651779180835733058536893474862192842135894215971513694776799808756571342907737601673291563180265292197092816307940015232735784820265101256234749910488005216957864600990890562113069371907954990943108079247937891881171877285669510115829932312865450523548027531339085283703484282909196499834545150414052380092423702521653400179788542957338068300930038659815451079892150998098401011138434864293362124318335768344321287479201113139651802435639917007771606249995557476786091668722816302125103083482558675292050779269243800078603498742837565132179899808707184388801014365496081654651677927785897297735964337700136244180125965054408869617485310241366241336021598766816544255601175306271424798841232013182977277573991880584824948669824294048953460093474588356212471602197333121674967646694586335364561145448181703945211017774940177351828253481234760446477434645255658214784893039982789954553862315899491186610492734569877732329525895576182733181992200132297308993998603258814821425802663465585767153814646716402893623008496826548594272722909026313160868715501496514927309950911411505631545907791265115801578681007965790260353192893017795923419071680477927915015256848723121518212906147482680689322329448994033398647409096053765736810149301055089116767074541647031911686122170233861763658045940088210357685180069802413535205092662705058150480682629743290637239459226042822455969768032240435594754380952142077336614664920240571029402428182416046238527760174488191535738765726348484593821185347242370776709772491163979985635610374081406489044183014926738075579335495831430635642559137345835736706791172459831035732794835484008639358510654676867045930134169579775840534012656549666718822487116216895185783761578217759209473078979698228747006867551273845292151942257294495950923131092352077371310171344515438605870968355325516059880589676757158972032868549320745213852384787913486455089582891027985896267349184177521246592721157988726218838480680626422076032283998539894846919982607785252420287023147410025273265617497448509904538600306349820237087978577136757203501501539565294029476295407850442955392764187874634659220730647754932796318017467032084969508553949005926778272978545702200919210983179461160182500757158961974039365193239056856556146225456474717008645453960327169047114031026858758557215001952855659332153353093265802514428574230466114197583414261661327269539810441402225359412612374837827437925509993495089805233616346091929429116722166090101756822876292664466936447025123749960986727051603637931578921248944271331068300263038011283055532497646257125204210958320815168608505042868800164208674574499464257831562871536726414859147263170657887356067406388217619491723915405931079405509050972060634515179924882294128809249361504085560209285767583443559147061249043673061146571374840025580314451032173395883798663859997281820497188126173237201308970058044384462216316892549719460481167658657124280712355324836733184015754280202657778808884326438863298686582379462129901344725182198293934439982843972505300868018018434242242101459327407128306877349668057508141466066290966778051857664014186534268647686220153578712514229963900797400595530864995544564997692092400240675357740873466530095487102987818071870409685772967046570656411866627129787176924016017110199746256181467295325399927662031982413418725509608423364062328523325117246646858837510895284223042198781598046673036144497588468565286059823334566336662524385994005480311840693595250727140957856542524282962393128919797472833269904572661006962223828397598510588250396818011514433756508422413097785085332176797244551721334391391702900963772741123730454509665820093435446768890195070811665226986920762178894051238290557485082247089314840751500291509314168846897166287111897090644264867658144529599293452450565184703930592251197094552816987467849290140860306003702589983351512649880180331069279853974581999333435508672620679069267549375845055708424421209355252050080729918154378548246131766458212911065257347741187282183110043129009049094476500246208576840188099494684862458020612737065265547901222987296950894454256269400069728769934610239634229323727594581699084948650333873258674894605896284179781294554400768764144729726260369599725675664195262424789691905392632833964096666881319187620019177802309773938144607036291627005384611503817988974641137440168459707999484170146886987252803609849509191692670439537280990986117162284319962147858727016170045104038175946239040971288909457509802585190332160416553490777278225362147028372622182779684792639187128515910372841536391845277365180548926977776050530792261988632348670272101628481099735123768519658541816109110352774241273204630448020692833778858212536741857634896522032066531303283405279162104957064427456018676613766871256849504262086763048128300735204949907091312806767860343784698919037023135885847491748778489249295916053344030745323434609040682352257455644199594241068792672214531152699923349626660112193489957196977449424809517031600305506509000416035428987108950936729123035580335686504286140394029073347154823511187859943452454573225744332714970491047184191806130024634989230566642447034528001119590833864974692771249533256189167097013748728722848650891078042620727708252974912959024408710517511785536229448563214463497773180501796326952874860484144612405259827677010104952973315184722429081330276022584336192982272844966665710840673218826138748025608592395989895720123558382099257857930526856453731595961801593607311633497167071053798176425132270912025603290397496414316620525897742837740405766985564640761245395195984445808618597151034259227692667408231258824047931931266499199178884398014557453628286571716986499457407143581795649892203387670387602364854029627449687732804666315213504873201182502169777777773250842625500742557109568357336400087800641696051295744501222036890919269844132422514752507965516334642081003558259979009973500510020513952827039872824309089573805914460258530222402956871034117086642207071896755680283263907967117987484722077813380718460777035213234663778749896909860742290056804608479412862392478687210336230976460011435128355419033572946320385266742589397242863015037310035535146815262927174901490104189863285555631657415800356854003353590808682748690155052540428886397921356668579265401139301590524955633629116550375096734414160436775614679493798146232688532526932071517078085037286916672863209747286891793791349818491801929213612616229495367883584796110302026223159617908137981485369819626621929756688196004550714654812463233668086894049972655188753822585469976279489607301888851150989156082407990927038668773983168173633367598071981896412419197815336869215227924652793041376038485002176636891238769952504781960630928582232268336019890508469393546094334454794200337715233748437854839053446738652480038921693380325483879121100858121746708074579665466001813185345542498998384130771441490697763142001934183831018527766672596376182149566624214168302011040036020841397414343028523514499879292441447710979098530556303264480424475172893393161589770223946461682653339298851017644870794442908080399429587644377399252130923629653016956980574869911869858368301462882521821124104544600820022446862169046552718852739552315736637163212647461710214184138457936795884649694047893392468676206141928817476586670096520169413542228229645386409255218273670756397957007414247852284660335857137985490329427160322939975032633498212494434093242325433122653835002321413305828194880979403048324414634747053517948733141272298741424467207100067943520945275688266927839806345777059383272555474170887735720627105105779196492650761644407331615019742754889969812335986465603165085448648934909058551244669333885324191235243866643879573624004173603351753324433735347544667427056206426193535095223489547083530755065244873488731856726970213957829118086051533035948608562628138886447776157262520752475036402986723666077677155849315720119684811460196773567702230570344416672813477979092550803720342147082459033497103332848994312852035142096094970691159421845495241725010289583620461684774701720997956877531538162837846425568895112856290016651959859743966029457252908500159889017143560363569349261124402429304248964247202248257247706001267693245534679594497042737439534948050306732560384488244616207956357840098596272417904878120036064859599808621646776173918188533370347811506003018059536785825589928503212521623130025707245352753388458799322808413088573342868970836977587265313522877491019196786482954999762328880826233611936706479128791052146639733538137408843050069331439260948804569840565842016310953112000232958203637937834067445478699043344508591085121202009946383939053166169555998662768847609042906519582966393785515594030196186611184386548419826567506851266587702467863065056070188991184914304948045259299926453690621349110248624966547958191772432535588186675650439262756017112082027088595686427529953667241255748401423033072144457558468381221562490017843208645149247741557404192556043444802427560974546746700033741737382690663442451756490360353632441141373937735021346557869369368120002484135678671777385035272565439427445958476331878453173560973507170808874021652684744170834306248564978918535046531923290047107652937500543080231936951731149209783822871179525312108659618250526405561425652629143751170582817758399797607356543063074402803402339732797585654388093811607655064531959806943854599960124659419240266852805577571519784395380295794175823446789353346572261463327541753726618704352356815700063920931692836453855583229497420880444468917884817994056434016000462145508602625250818995305051465094281302550483128687972989917604597414288447629035396877623834543642673416096683415219960404699232072273414521413734789218972718827910041655845503974603898592605141232968926612769129560886970585536628568436394424043558121136321542338910876952556295366776942745510260211021358627454891518755355692131976058173709631914062279621048210097549945481177291517178496457313692196751234428218641397801456058043316414041880989695492097361244814110501875744767129595861312046108625116077109937473746922347143013751101742609345767182487869440249427805708286984229855160533083851443183705513723051730223467923400047473710880306301912457171109677483605277565864706165106263029357736540151838059556480008958494982808035193661397746852179056178542586771833300551211437299599023223923800299054858441776878778487747637878156467993682245562867168981032016147848560705716773678028047544795264758363741863216578618245506815738805294735995279315094012801500577531863218575209840538345766736156154973765907324326985504578362623309746566740342931734686294910132224173569538162526513226046768411667366649737577781248474066206748973122127436595371963981747117305713658666274263177161339938348946919650862807696585288457316204240903660466235319395680925650345271484535309113858079841119518701956575516411527762009934649814287905582906219270418967186390907970592696664377467057748058345744569421329513140975742785672786877566296121116604283890810579010396326099422570628742472198930863756028988707515616353245676808367016646601520741742244377536544900663958447130292031474656075289594350439331568400756511569308370309687261442452017234827329970747399220295714174552516372557888854729146255444957653017789900767437864988756478624660856069228166433185033912361847426479626874611198793590202985040253885265383745927472402057157488666817390677591432903783400291716808281870456723711346619126535483551634964565538537376303577533732860173910422217373874727165069624089241904241335352542833473097445556626861738592440613303452460405096729671689070226100075946415216461276723869167522231631747732006942058716772006483300705115526531993911367680681942134167394057800013224763060876683812668337984855339942112469589402442715099663663682892626380424096384574984942546264125000178994671455980145971355365919561516293211836406575011523804226704456428437218790566392183652128895374710224097921512619887131759676834388028259925963971125995543817992561176548098949180706163525818385486934053522395744360712041155011188206569188845587747051487097441324946970516031746833538907668994264068065777960524143858956757728287415818631070142468644233102272926094597064265919826728163149463346355655457661672610883649468209397768221447973481402470240253690488005366294334588210736485417553963619611918959144460958176535858721665495859381123224345522260915441060967001201100058761116042798952669424144626187876198519381238617489386140587878754939761650411274160930802601931213128544454878569256454419580826856534633669903304934651419387586146228711821740461494369954672035319328101083845673404246341361921135503706414488574812068156645977201959126465491761543254070295944024947680803695661384692772578340690803739081366184223496076455844966751701598238980508070895617888444153439304478961759741272834410301808977382479445937684864951230705849071898617717292150627273835823738797213088477491085362227987088494613884033080270297566334131884375353297333514312237084620348235456041971072043135300248854119441509102296031615150126638958716036303068809209612183136009597336826623918695139029909700650349714503262538416088921062787256496122487445001556941764791216476339883680990377658466561500392550154227326946244286017884316447599469406952453669653546575112208983972018310536677244884121250790856730827327042406861684461479150818142563248650056313151558950436598229910283761139552070684049845654231503868423442828043665375585166337485776504678272820372004358900534728975225620262551891633034253381834872711472020013705795430159194868265328663160777027426048733433518620473988470352876169006652113507698851363263294543589848697432769313950327281710040265958532921178242387793435205260047096926199247805103801783996040094008537671667581375938305743367935787773507056495399154387090228120971387739448070041905561301211619723799955114634310342775703483553542919216103972075248782300675318794009661810717922882716929841127091854203373809019876284266634273311584852347527013474507051206661971063343493058881749992542246942066110889622135112362837768327864047807541083887070385730145066602460159489909103540909816589943803114848946441462662931322364944372606189867279859134667465198393182382539745264399774601299768434155820187599054997193330852920003719567933954982312024304391651810508937863872527000466226586315696417664093561726166824301155088886753517646865166248011087289004372582142668236580581337958159813457541210992822553742392363429190691202224101548599275931729325693067030465282301888524106093952910439009023334071013088248010447778777751842492099237957664094791697535896265083236683767193249134648518405928689701049502926512806411667439656764812186600316188324948120747973585787890008889511527492695628214565740374081257743997824017475653258839365270676074782727554815238837027725711886809910767111042661339060562631454782871586978661016979808024307013008737775638047384463375603974647596667159240757460234622830792573574094946185389462551410540242451043182389143846457303947651201693082486564143689021506629668439848541264824025302959302683353584448612535814304611525669944992924886734825965080836774862308458312024171428331523981547586953253853461987404246597197011854355006449153334774715730754654261469923023826308495184060839388032571989622891715524257745593520094037153885994102835587373685883281789119693123240407929209546012583979542825567577006716297467814547367147371350310142128249017471486418655551474552293172810493424005651058584941501425098975795595281638937203569254790541663071827317071648720694474789150289980746667457921965335813160916045619363479194872948966831717772168711668693384401086622400498989346642362339781677136546834213448871292654493269719026066120067573205073512570482929427465797548786857690532560805845222178433766278507415667696820725374379794017518448198416226488055250483957074989750610984987212455793101051344020260532858712184918693881099140267573909257145991878349323537649170370392027150464541985521883156197806694687041169451453957727122237781711278671789414734630933487307936273285385644621770757131964831708692183373416085728733275555484782884315824466408089809256052134589443003808645908572479108672038731287640452789151250049773486805603499004768718885833583969864378839652796446944416399915544576775454309113594918510569661632378233801424320761203335268250639055897840091132101036914040729678008724225799354250285728960362484605912417436856123163802184166008731275142793644733075570515102694893504239697597253238248390584594540604398733316717049515139999774726288555815229718091649605267162134311391902779230002229525345166519741148264256338047910074685875345270679550339467833964136026149754118651864692572082908372492424468915029604484234874603250324827769253200096790841031786903676898304791173236806754654730944919199966534604635136649366496459323680594786364445354262192911423878927047205239335342747157999549185619223003037024267650040927815551696790164196450792398726385178633552722218884558924578082291011043069676142244879745238905178063891588804623499583761226321484317595599654256338184145363279108348029748264281722925785123390447967579851675106171363713398537671269625791623218152192078523190294215645101821539659094806653845309792510422352720666171109701120720008109464503291500925690266813464398662237228321808840993708655381529574402941402462827586601818505073339124102277544610187535374875093209476246596611165379692889973071760723143645977680036331244611719758378074474125095645511409102191009015686760039823437093304744872967244959655510817169168147449520338978907752977696965060754910421326646059011197855122987415863542811087339725823472836372262422483684078915511227061054378456135621564905130404343700333629587826871777286359871386168048806490256030630761761543195553026672268009269455954046760028675457262894186486235588018492987020249317033702963077176304758602971326840207375661468220303632440764467879321172918939076443553081713722160121144370878303861293937451802928527509272938079894914792092668067786796012229390859152514901884632853605953971261848310109001160831933435373956527136872674043017098453071219169588593328348697637416708039120835615976329383833092950021836414064463347892315144595407944156162923361932625370050851710985703347149918324857638260017004713279315719037888674559178520513212558921303924533316884727665110773809610683239712910078828766420308625286096805290329213304645745328748190173571067043873933525028000560739388901756937007617790194003283593110501566815632459941527679912316425972495407610708783075372344250186781483168667585512506540038138670916013359518338941215091627461389244317408451382353931168732661861658319610196672998642841521774640867861434800849758128927641031139593508809875981854899539542679750478220006596192811247658563845278950755142423729900584196930897709673235356017769873100500429528929623138705371100490835590474314282059927808399821643566619728870377815774118576948232706513987949216576329951278998162789496904670953705729857146761422210962142959841977939353798040633741455018568280117976997078799962784185977373736060949003627111274787800069215556640528802467333659538500237331750718668946402399646118603185708199051881594708625051144867485469755007713109165823071465856686272971803957907316248895072370494889511679906803819866069046612545221385486109157170460146089883921988717722888357736654634056102448310446279346919791252098075709359924774042253131584694359475940909064306661645110560993040479405592842706785775400558916929541115649555890980335862061219840957951021906765692539921569199845749202029532472357220682779934327480043290410051777863576819969942795101634677839614816647419082792619027784731567378663712652881367441160311842179539287862547418764707140504616846422820422701266653122370119576068786816384235222522160766324012316546919979189964857746364127877043266674596109050493550746944620732853844862141733785051119412479812272309814293987953602439621260726125942334324490163296662773455368257820648247320251831403309354071229316192433185802789019780965635612580765037403424873802681243298769194011900090829767054227417255978813617092936892216837906694126228035188516769714280767958694245195986065527723362595129308045686756931176722652158020937665897405719713527013103484380736324321152932434597708326782549834745337603629766704066899227457682512254309413988972504049230453465449594856013148304816123241792832025818953587729884510006820819995446464496360864779692458226505896182514610383546952889869842466744478512625375833110492637166233651118299940143516246816721061760840917384289782038167706069003925514071211009881672986189018672286406187933277598274139723612253468234375020191660896679544701083359405865846197739959542432126726562414552683491128208171031673214388361442533568823209016734342281543352248424671730724214339847369409406179133872502107982286999600502102879375147619344574439430207139370217802711256893816954109593942881267992714420189889044801070527032572063237518815045005551690015097408312612484324907326419756788960946210934951909796523248562102812259175829737333225580304020093561984630180955377828630917910596695780927697801984817621041217655029695583043045005308586409482563110969522826888472819178271744743462093096467938641415976074479619757596755962130399022989297372202260873680455157123852431889005669072010429645387430463395304352387094242718082805714095343063209489409095830194104450295259875025086704936900061303028782824745520202622158088514195245992670486145653515070357019458320866197145015822936422294692800962692853665560118469491922572703124604384369592598581260290449594187336668264852336378779107354567620637968517355876626371659697203434363732517553509408985749294417831690156613578310096998620368129397679005232894005448241911357365364258388789728701978018674079531413226479144538799924916561352687838923334104531540733006964318980081672085737540618345294309879473854407537560947079120828770354148593360496054675934664527606057169904621410422333760407420959064057363069231754410838605200936932290870198509937150293032604922027333197359513792769517743384607529335301902331796834039174346067735910465638824538712576482172610581123437989571734279731802324791311136082173351440490315762604359342117622326249686586370579600595105038327527270627860469023171592910248429526384101498770217953296637383842493808396506264586843428634017508104778283584704017705602096555457041536421730769706948649589080830330344207903666814345127983202467478616116108436711236623403741255953565265320366632626328547511884006791735003659150654477363901481858405102715246258950490292674750376738282019976422208177837924678158658817417220300094631283022224297574868007266927380248720426713724732498404710408538201797190122143248591589779237170313163705434984106967697067605174901409225113583303199884301934433493744044106083272038816068262247179329325360802997995800034679875521774560170795581082951455031537355624264481474083241689091792967454913921147052292531683044188632572852714206014298298330248621657997106372363539460070390066204091798144780358428651480233829521661400431507443855784908147514572788536226229396090569585380181571449676383645327131894348403975371897808187122368042322309826044109110211334144602107516108696963413533145202307494467394842468681002220670245271611131280211130785411140021991515378957713401145164148528334582956684956378016656785181724524222824599440289494934375739221041473409511063162911606057445875098191051322839806164411347340284485791294618422394383571677894686431963202022096254729310164434600359803928383764616526649811842832207608071696378983378615533642731091332389427831030481658524160024590534721162379214202452254879062387612752560486558982334508797807897790536499373072303443833945547653981309553423786879289821519517411312732964345492379355657907286859388461234961540455178240105854541358335499138942526950555369395493905678575450611016352834228135039299248902834565335196074186462576760198210448707310569339873758833400119766938753014385262131964528645907260076444229019760882656737113304718482869824013586603326784364569818972471476450902069847029281004949143988211296897850649082712847012970628957577416592707334659123787342909787018635572737674991709054456664905812843073513565575415011088963685031563415957726199656528001044701749539056485783602879667021616336086123482294939179487727512445019402098266714968741898340486064999869134151838302490694273424384729774924479946613370138548560381986692482477967432258368761274306865508498026437182875490895668045973793838763368272142518950092566357914685334862649910176660837453129437742354137739056873282002120537042723093440507223408738052429989155234429913822847738871426674860882294403631532898419987853933105958147427178950826259832279270731814444350820588533327136095141611224290735041191734399072325687243375300510905289895392420737469466252647559479399910771706507459039228992835253666691926967027835153164486605110294152219760367095386997595946012451942281337639317172605959762928665847213141441551641755938369912350956752110405227385616626560018682646645388210225578513892754662063212691395181900952588983021731751449339716696293105584437798323821974500786051899859805222606017226612048194465444953459274478240635820267795056009078195593920712272212399942728575196443977027220807419494971882038940499685657841943273517061438053550462792163373298588414515072654708055860520423070728052166584033030031182478875036365410525487601055188660305305952888443638325237503151836442958660098245608410573281237230762100356763726665629293781148404436220549325938257092952610991263963374914078588075940732316893218895838456592927878940128902008291027522833853360647147438677885168108639579912109969738137107876657884678068494250924994462940183282291958359265301520493288458058092389718754917997922332602993937303235175920036425183880107235078836141381603786984651342822570814356050216537582300111243509326734690901557279821172300841209699002518102616287295329581518098423162924517318519449763848686945471410786288948251504341396267712344670351529614644474598193512261847524987489030316079303689322531575729476213805412076290703617914088112914453694053373277555782944195579192587221045497812234237444360256028687044355856017433981141630296737517185823681722847372692073226974338482101765184318940693226402459025333918086600916395961786938511955328103219238513612945573451638358432237623549246413513969572902389915300862396058475646264175581389008084490585310421752666619874472104648195473369294497574668168471598045021317215644907647820722164555195009279087722503916857635518453956874937333840952505287396091166950363197858444932186532719841924352972094728640163209440334799753199747668176112232038747446893122383756927146100659324612576794160980121010933651440060839145302470761453748404022249741188494191635147044167146235358132292978355887524789549059163317477414294185458619825458862010465380686459195068501870242467488816739075622537184663388142046066490834600731827315077983781865495112281517820140344487592606824311810071373119449104865417826983416008551764668679847197997251673204051242163307458451287008397087952228424103650476144167261467036391343432021973149392253712592090003230614781976185793800601446596482826188618731579615603974555505414574317332936440559726308906041461479618285848688336744013428626353917904198390557183822738997853996472071104515270145373889003092415188159922462408882080104042511216411954827931952956318587539876972200748118340450418375646409535376418650348504807744190183978645191997009347610001570997719745240795392111237389424177286783478298374065853323715468237726110846991925911318707232426739419887306405822497513146204619714463681798610933687446475709561645721102465472578234722846379187124333423778433642230638728638423639089140732376212607236315418392360639637329745113098148347830523176521779605037514727771052993034607331350123072484041187238071418207428163900022981133605735992889843847091725624358843833442515741876351810494146014981781848345445405222944148655323794153405207275416658207010647422816972502284345237679298703952026558217272269914626945431640189809585485814974185529402163447753003338327819144334371590483057946780458391994298144432733668371331081287202178656479907687607135659852249260781023915869821215051100015396916506361025461010465494263858497069712161813424931344590700394816026146722315579921381761074248361708634390975952979422772545037881052149631020991128881964627080664215063170585486026003648490930510120853887541984033589335533989423069105108022728093602508529504723063968084605070507353418826184710717492635965992216576363542089778508446590973199672737692156424787670647933698410669866259579866137221189403791781534761534139959766131976614149896646449619351826973009014334827533726476024015004002459689136120090145575350613846110640894923857380687556207474774035417561224037421865477108651596884264859814980436713649475237406502469318520119347081418215134152881714230394001650079865492203597120771137712336339003604332917310165011837268294612148294601730016291931386187518410847624502267897554334850219120545185587108600514009674715485918787169694025017606313453655771290720214024039538230775174934878552302770930272554518207392670154460051830467201047680304512442672469947876572606522210483018098940944759711775335800793550842935037102452787141535510815909692702286109441233291087663276641213979233891003574465594695994355760196563328841541288073300647250294741534387535688258212832150044454586911069793188886730206244681902684982007018845024804822494041290758743981078867589523495658349536743689850908971594130424590723349934083716734802835594712601566845664404018127853249816667076159371723630459352085715496854547369162642733879264307341007930736313060696324409123362495114285218433479437275839440474672971003387014244024916969505685393395652640258321381731195956441516724317988068746302299917115495259973981182418289891424881175264933631573175918681151820175225411196442925484786229870395727314206302762706235852617207793045166733923175145966156976149171902705938795893193150754987562952485419310236251670019021705545108352790107129610436635989613702892871496313046263955258708671162719765367060520997069916775556052949234309344270560078635554752905895672969381053482304763653730331117408914752971852023125453292939364364934722220978386668554311097033621984027090873804693839955609358931202805874885649440108641500872835880501507951554767280232211971526776900489138796349780510802006218604367825470674109505065250974797539768566227292689207268475379093329301388550192107249773062808308196167649044706641386795132498810780344264905950294889084128134727056511629192655929396311283473380446985084239113374531427078712465252121729173485297568442548651229521284644257941109154273212760647552203188168510328732609484752679247463094886700208066427757820619273647509966567822553775498261640379929411906964069093557693443837906795363085665546713994448826184575534453729109696115165581557513457755934341698116695765870657703617373807626962715419997885349472362797958332665266510887109637713055840445828032381648077273093451322007443087446885818708107808527422862936109730174087044294104158730745373214120296778859788088627264970311935422705556521818992087454802548207314461666219084945994364021518288432305164305705782413423819392788255043793011334077205874481326545329765601741219491286580431873961933955015187579285179013555686210521716418244944526537185279612435974794229616487720046796467500636153729376442525924532917288563058448052681732836076229077236426634570075340268154000951884183623773341414439154091775582783551789877410283427149171568317918954538770904452365524541377768395181140591211591665670422669470185470102781956443444795619028684530530544830532419415999792995187541260089133385669699285702180510506197802723622729208045689335490416594880941450522590462760744854520427294583349727011314944028580009005919330462077747873660042380213066748214420171171554726026474379836131684441374902087535289077357825613689849326287378820710253547673895987226407490617172492235155248344529629773703984979845118247239481751352977611969635012783245781446890264245523524705865347735258348670906113157202272357522455936032567032517794306010027083903146968951027490989400986033210194927018231272075114526275100627882316532694804325209364022525035062634144296797309421756348097467093149830744425527167900078221948956117749092187027925810493483623995811661647382660188824580638041795394987853588633920942330418191460984417397912531047400969514740285045615128776944836696708748387406956468140680903012063098596944872512931732119214570481951002673127399733649674860425830073290416916640614828997436473100026890455709766470428716348234623218151110013182646235205945100055213531816583196257808018678227753986613343991203258766456124260753352069481589800492188392973003908964801139667857275462741931478218061243925067554215505927819304644715333332017527660702646362440924604606644431094680667035383468363744687304267033255849972384043545829073587835286530406291350404540470666268463301399513574669506822383017755225454093154845114039971570537944721042787768999997344949891051259539117792912469226787926689455257824985386887753552471314221113734962242031906495630009931190239074187193563171867121414872277242878526474912881575823185787188343219421879100791442966998987530538076862237541219775689100759479625738640945140219137113818262523952038059601627130968680747435842401382304190411491475553107813972766340362876351059203729222815636371835220915270646976691697121114326725784850380510324090707017879945863660903149887881126119590330711964224783684282475665663131902417908125003168599866346578918778300991665805188227707591949942397431508103740293979317190702055343915047472804386487850943547750922860924459288251412214483704009824123985954278681490700216976760870003632860453952587710250341336438434025097924326895117481951432877939482324862802473938549724040722899682962634348767762834527521539193827674215714835151541808079132778415185272140716112491189108881532830848132311074628796080992284745915253011460746457908671827885476998444806832241463862905516190788422153948473807652710449930594024320022491970590117629450374437294732329127447724189085773096845277902961861143053261496787806604835248032143698944932458198956161891207994167484353390943651519790620195490292086689869400334755472361987088894002185979419953917213004826056218805556559648181880950077943846945169447305726255115102515684380091863214436250186460572596474510754969912099563231838241335377059121069918412060867097387075010863360150378106687260497515353107045624673321499478319651756709397791423548848211183309152998525963001908988831835036431556952214954293656050400524756322592006418825169595338524177551805817440751674284310483335902816299328936158407494794284406643917897946722968598656799293649391210916921370577213066873328765198121953157393330995193109815570973155852059965896261132203053577191275877968232177205995984684367774657019937528025037633962856441036519891484120395096707531509979308470548130029444634659333516222566031204941215890929609617701155434589184973392586662318637954429819351793747430027381649361793561722995794567503804647918319137844104863382094885969788284185911102882868872701357571625232962398607796175157692586470673936022512489687407141983251553005673889429280544604490329364633978130801033766885050713654385290435665086428296439111163511596398980443807058838759985326996087055942584252052852292710793321842241459918567225960398006550488956417889311584720819371982721024033973314754133185930956667005869381498299691070753617311357836117496787571177125526721022892271724794243249731659399976428527924889499401211260705763926765964017095239128197386323565958392438828518995671034240894158920631226740370997966772205640944324409318350522194975484369319900658558220949104374454061144674033990155423722472385344634212175272260149785618927976202421867071249639067489020952317962353795057152946893073447206266171164153385879342169137876969496155086871013369086926706263163209296837273248903559273175411448770693254072763165077742083468777380868376709523118551630474358091693869938290494793312871470228744605035560752368756636233747296924730854321156748243754461530639286232709975298167982749313198292090367483684283524320092504763288743556515557679868523242058597732294754454193841761066919788164187821536065424907616893997030894099584880626665692182481204747866112429840623383247462187636362363097769943816918726136296046811566979738955393706009933328191294610532051797201357256382912203027444379350152452914862780423780582248622232431426234923929941228930744750673267732768444825941532169743489921609715525673579850221393390812402536586587530239892188111081692773367112312263976449074165890554491945236852183133411276377535872653450340419955681510497091459517099483618861015705510569559175984439410044059712029989260239698234210312233950214607238132750088995295627807327702177209224820719498280219874266366376020466815844739152364972933932696242532043707433869198751821874388810922789766810926979864640853901407869482174346390813540863970224274380574993278656951639448770505181936954493931616281853991733586793478676578535625016879781353804715487270656697992928052906827917136919280954934410026997104019474165300753489834196408613455067085158034273346545083165040680135929917958897893104399866133580162086113332868425516237168983414047769980859893851133003849745745245573354806242686082519429334273348305097303646727814076707135854494660032492130114062051559184304624195088245587721674546242877146138110138539730592946688596966603321309406154627564465719408737582871744783625045319745756394464120114021703730553065179102313664193490288409109261538930985225708451891986002837217449371667190065542645049458985624326300982636352226809865470645555906484629774702354298675172887062377029366318896573480671657025337353262922815146318603542099946322345032207812697200012704648844838878044841184708307449299994963458860338234998199968073224577925930958924901842384245829114209420205433154107792797620979364494151836746541851077714949505990872043998431137735717123449843336938027600984093263875381675262602194277856015160123752025134174315708704386884350234219786686055143405396054129433706411526451054475401748682495970338051466644452840044858693512975523397935154796191022923416867587977247294976866227814833754410435488177249913186235084723853775298232601037185289058749921225611243512762121803588740691337900342862558067424504728901812697045736002607634358231205836274745698246007774158229401019207563007759871224591333096112627279862321785041189832706624703580146756317578596909242675103893364983004694193790521590919823172565690726467947287544359957569855595297005126238639530887364498695717170442200725619210777241165661093890927370877239024671984713688389792996274308364230936545465082950769869995300219285287171895195236361795089171829295764840717098855282952864109419653398011004138290447803395891524217926180156524443714883507576998661482664417328171623510552524327007079722578366066180999932749067204056164193685722567182163824416225267148729490432006097182135159378707665824296030599549055225925446150495302448975528295213360620309932672713782800462392838670456786903042124923756214989333941902910255300766419448488536318601616935419233401806461986609322169683146886662091902645646695316638676454183897466202686558136161934846938932347290793954462453945191938320785320149810693065025861526625796344004339789462441277502076807652708659850058221632000310503641417679733568241351291461961511315414268786177664647520625140948113009144745983569857551732532668200073638956780928762212722246662012777116667249661397092841872779770634105875335085561200403516307450011454112715941731788390786462875409147461818923082510397307973428090258294057273499132653246906725320676888898995811742931308521123139300043993642206468285223982619320643434061641117532429120730184159195850160014863399391810977359673844496594861179709639047603359096300879034544735373992586243286585801287342256158759423892564253781100720532692384272387798886640222193047677478078861440730384412285879962009605268324986041769276558225382249112975393712640847230523214826561198601386169864439377194218576635962881324233842753541202949936740771322470199192528651138535521358561815867714530762307167637652388898829453730026273232340073613383024021359012630525849462622490833484007226577870019305400898291147874533263675098582388892222691827260973920167319380227784226307482526285667992691696325003023469262673855616646855124707185552568624738179103403529711195028623389813844450140359530705415286040726976872254533468313540641155634486258711152830728809293031226783635157686044637854031447565145675805001465795248792680347457527856527125421451929652005082083221253958730908038613354098204539242774409805413375159571757002654176550596936894550327197219592185718357848116096825200569277660462771901681141700498133828901948234968224867648851492598143452878802271817632651110655298552717701073795355765526660810607986851694784095632418432849753229253031520159987815512248381661712068596607499746743483763144908710226180578102531347147857359591902075279148044592493781647132525069286259588084552650883667231470393876406809933134155411100886327786167504978657760171654018759630018269743451817578891277270655545735573905997211056499777353893810773213743208710563097425408819922215183945200228753220446601949007814751725293044458854335961199478957031505789529134799780320205904825184060938936682562478726679978102306921728542801411919300077630039815051221433539871901928603241205881480741239360015648010424419347815127989455949206045780201658363495745484176193591730340787660950982801163523533256718482256508785821211722856047281274383419914689589066945310940303882090079450037750447559689457817477921076830613778138304744344221089459550436796799216005306853549397274797579874865326774772313155318577844378592462700531019689933356784681874412274831507209118637045672189830197939803197971013563130063448115138975625366614095035572607386566724675499716914336509832643941066182531553974200761612386922292456793418807387630105836371385582689423152643964325706381611748631861014872131820331254990044178927591799033581666922537337264588731160794624154105329437200481198943969367985344325017567204305357320223167248855369869464068293094105622732711043420229575731934891808651149292853197639025500834731936998067907207561420219506555214912292037235022212608500312850675783902928432902359614547476951426711029144552216403144751533207296173499436524119866998991317798182271038228517402111929739833751063976549104795462769854562575412031318936003954357324989985143081063169579155585598395734296940674409800895397675764667132915538464611189420428286043757062056807662324543370904796079005991439467165256632880206117125203757195148030037468863742763782737736626123798864836955085906291462747416496230234873370097789343061863315010279263654832737105815861785654379499780441005785862761907742663776542754973782925165181930548959767878935732918954014315765788308919317748149201380656875162820105990509431508383319894812885719484441382537216655957187314791323858633593066876604400138028680772946598984750870934343509389511338205516955908013955780917725745784848641881610156197769202040285856321809922443624952330253785117765188740234912952862873623707252024728812250416632071370464081012094774362125081709102317636011447439189798605122200798771389641272108352582204787374538596679149610188887884422240125038447830203040422918782498500975873757915294843713294518399083951444269439837542140256245765379554512448690572050504770959434961525423321620416413374082544356383605045707535009336145470937840956159061120540435568335332768060507931758833772875755542792005722441068100515947528119758346747656812632889244371040646338947154688056501853566712964706709577846313747550261880645654891627062765938346404915118392478531023044266235474832068399484225428784342164738555999118919754826464133428784803772153697375869105238669876919342609079498923913828437947382731731166354352605726387348073791832748625545232210523893233924206009673554051907482185458274932269098177775795592062552758697043656084993137790937744695798848232932462905465533992413350752275085331591602992201498237055991401571046851432178904105712537523085550600831381625488318627815868366871770394931641437878936766871016802662830550460452926798980825984282283674026257792471123660617664644461363273425738187351250506752943459847760729789530602448467605939830966001869986968147807194639358269672716003090167731447081826015740788758536952184405777250911840241031835669757897106460974020472364199535530387570026010818886986084649760164065619134842889559334438097790490580696768679181831990947988550011772929016245141025406447664617069412685398868280502048959488584012674452244970275125531029629569315313810258017987966674490575196026288108907588455919114786721831113337557638858596078662474944851207196453695917717302206182546690854763245993630499713252360624210450144272410868046291022040264057541423840630721985441172665458554017567366240534253215186907228364358408159838851371983965096284021673108977372356191431857465753140908516487576835036066294088677841188050683682536756069114181584234892492867856677627158785744059716644734262809260910059800213178895314662724396602958679920064546076409154033701855189769316089420053220118246449283521527095111933782034623217800035257468280850210617456650913480612198113173332408710361025472572894168043559420239107319527016791948246260869950334165260391646142943662858134976642889592274534980203213825793201232861661816165420460791733763553639342872318056234425304879535360549587628983996630138503860399380922963512971991944337279038083509535812686531646700754455186544347754900246705188430245725103562741837269348420125951475598329889346964488720415000886969561609091689886301684943214541410328160830601772976481896094825068208323626664089979393868676111586878783446214525486923965289184825871501572028184660977822632342367521436602438920762750731050655480656501438689671948454524853816287559560361148890104580959856262282842299619316179730202200675078145873423876046568544923804438746930807673672312309550094922368620208661698032568731104095856907330763047333082087058679229117865601188318478852066888392234179214479464376246801604743399000253623223019185962148780742200693577718399668035434308857354975920787834021523065678279222759950219569823722573049644411217364682981595603841787259914143312073389091050817855744185135687682991347637239733651718807455085240346199469821346725689876903874702220100722428054794439700955339141438296116761434639650046879049242805242106969437244701305211785105444530523751177831914763380144004551867162903665260905125734157471588803866130267139397245634443134278904733354076723283129435731970340008798646939525184640281469308772538895825251915572216885975464115060579653001917561956433343209858623873447410208293286495443464965042058649851393660703096035694326781436306269465360968204120620567322818397351599505651441406054696330292781331550574260079676809936198481817043681980638562462383409547752707306468638645685522454344192901241629402397616721702830076320388958400203807163644550082656004276038574805991273961107416970620771509941442567492318854169140953272610015571207024656669380696827236810083954016052623111614373269908958244062772910988735337341621508780409680244465006583963203481494882851283300643017163937124163141604285227202894944209881894469551955354330461197593736766454282283496258751954610247790027899429257025912692119722368308745325349407223511330639864776387899991294350290479478294909057087014672015081154684305198358479202444564935971502425777091667831543096468622289110600747817300212183724939252084987235173136493201322033263633487171192467341942945431111268499173938279246356723360921435225444827975424461881789048840722042260958336744545731708471019085346464063153766512642910925562999083137265152561753846678327138831273786702522270051333978348198614864817884684608172432144533445074959115389763497685726403010873168013061624170302383829945664345444869406847903930226821854377386045255665317520518460881524501404500335862723126562237300047800049929204600439221036311121438493032947484828519226800528913747633460152450509459021336134427441155696321626109748433634419389101428978215738321218128891367564423919746069715482915081405286094009030425096001932683753414422459911061702603659821198166848205071731648104685026629409774452217279920875915901710735662089248310625292073937527243168385798528771822549753594950547430812521699379794404135764957543864148611776832309317187201045632737328864352199721931336204050646658352209938990738046294725551799446200088280468460464061110540112519183911988033386325229738683188080204035162146602890705415713296936932218549917228767306896571829324859666450616409496168849868955531298935408412153607280952055663539000656839490383352575187401323729603823127899701769260805802975797760942625867418739565132267368303939837680860718706043909694052446912973301947289430967133109700383090320852909514633003977302701096804204702688533025006152911237230512070102406115361870678299604617701236058632045697893113924263333136458356225532348965667064676367199761248089810485264793347766897146425009366338779271941442435129597473287884504544485820295055356620947224685953843366634639778547449927533091538637155741485734688994442218238589167920877917577330599702417068271097339860189298656949083073503858207563101606635433533270546975021139331873607964958433343636049468977565202068997461066286129406063468581459784742758109805909553074400868644902546474196323263578199129532716079021405758567064563157479623431845714331612698502476808897853430114520312611227168748844718180709928803916801030183046094338640524770724217942272086030002856709871573188996107156101224847163053469608733604035737073246258134027968609385380821448667736406105871384686089618094802983818806867342228548539486797161779175505380216987678287729809896896889187041946357716131062053994477630535259493312638349299303264770333193900369869388263350816926881673408639645267196225905166804372414374267201590102933925279515245980338902004061108045416018074751717556865000083592161103042202752079383881178506014223548123223772506231359686917883820778879988042482943624397947125577629724710151593279943559919609663313345381246595263371796676867904886687022613636193401370493430285928713729129410057931997250295682248457609979734527472301891096840968310484347879375856878697588602416674284407276744002204649506955637590061876887168430270531863594933706180345149516520435444130360367832984186024415601480102298871271205879005350665197923875724220241151279678077495385720109711467411394275328822452233861462857226725799633123786047585957803535176071689626987601895615555159445392806385002604682305664487043603084113990584439532109465390651255686688857908069173702172144597341356964627194858189446680418991092884124214286395201208358610312148476516274668735541030821633545044174931548357938592208710551006417025362081503321993357849713544570217196694518517773216504701851500085789358213174694598432394490879811420975074245344028250294764466939629181489736104511532490898703167234504585152526240579409171297057709637684825729169755548028180094466307025581126764475811548891747050408760788387127261649032081513606314448579227714213426943314888596914984531354073715727023230070995775893733335188977767747545679943189319822629585328782999591589893578338267509938254999951027895581518883025044609964744935068495255477565610357937726458680698263776162049494973230745884499427623972540775801009431165639127090481159925928451542171946000721445900349064785235865049253950123937544601945453340430221526259205263969936598418113960306494051359872280671148435171413694266578507912532465643063915556837343794778197549961156886963733573654173571933896617899305692417240569763511051563749593285778014251383894962873555590821838642112332028586507156568999717580075302824761020563250337459268808343983204806411927575322663661847470356535065409468952423579469272262524394688575408669964952666711148820186834195971141517531485155386733134167176580513418816273153994450254687335881016850733930910313805596142286965864764296665626383185273916970576126136199700923486808879426080213908595942965742019675981758748450196980861717332085304411245068120931487631513750945389646746203232273078306458361288860622671493853043935943111288931710725242177761447644382406747357757534399709072749913247413185650786852921467882129904683443054583876548751894423216897148105624965177946539689392152083471023406675071353773580377967926279885691818769431921709313740183885916599587841950726902040962847865526684607373494618362964593602880612998297342125966616233598996074871118883072010535169293871855513487544495306750727051842933765543151826796369183266581963007079297155431779268780064677229678586738351972470707591839715642560230152095186524165714916775295836717707035119456099741353588867376342720407188333856337597343255437409680735413578730104653076038576579648609633974714749669901893602268482389340449898227622268463187734356542358986411602050967577695343659372890329580319734485788233283496512302567810385095037294285349372472056415995185744562703746936368579470789067362827923064548018194769335254009155468312383688611458349395120079335437133590266361140904082502755154454310986032212371884673157446148426050369154781108150316580965795915668095815891436435881697562857743481821188419986456803338637888734652893807657809597311572617034321717789687563952038425952991206911451116099150993114676900049395408151531088051785912362632809667322587328321670807416324128857583091767182563181818220870042194748249430463639178408873122184395769761311599558363630629635923046464946357304991303023566232588975715206469865761592164452933263325304925677469450548604741184011268821953269448295292965291342697946731708458803680372882076184823079032465167196779657681487964884662990284914495638116360751481379496213086942420818638115179491817483163383407890360600735188537809256946827730894909843049961373364188239590718514835685423172283053952192839590738822607311983249180568937513712684440266035891852948569079547545047957482589468503944857326329483965730135088911889881848789835509226898740061837739063632926902855668207908233204707757372491219317736864151396204294873340512342842743804707038156614162581070547127133798052945925435307734338618501656691308546438921353458424835322241898085237584021379442921808373715836546753007230842339932508447410481584269050541175897775962402627863919233365717287194437286391752224388056960925986879295698862914752853616382720708051339260223991062754578197234009669368220868450463787055321895391625207136966249290867429605284773883181634887028717363644060757970728492202098878828121879462947845352452906208666574868851570252507911784667814401541009680530908828904548797502545710725882773643394690223618474809011548037631922344779863152122818346741106327353379301590902936197206642389836883992637654714831013973014491766203236667533805389834454129553020343788763798713843387328721334257354633964704204542514658067510843191652672711099291895692758222992386544301113775398428713346522799128060129468342601093597535528593951113180643269524686410637606550983841681056111663899026889801599690731653187503599783157019909783525587161970938002187385670045504713527525949420562420326278069418639228665513640329333492472367986462105782011378310685210638944197098416853983240401251199742837790290608292418222551573469739538098298795968879182060624484964796841321847887602285706683528787332015833091704544952718675298476920438953764533631523051114601815739991429466712882205942560569287876302770890648903962101851013585817819337803936493442292410904215072431042401836579209234233238880612017288241124211411196862869957379880221956586352720125173090215563371229882292579652063911482815034715689600169321747746879753053647193391074246431484044543107967790563768006176122564369138025898270410385884379221767045694127006962606105392919565405923160980524271220809556485633538075319547833691984424430775692024122110169449919289676226482091056103152788056319869833167929407314859635154954056133257315178096352030520374477464830885264602662587377951635636103884012747266417196757975796155263697403589418165316750974799677846505165438887685887740369201990728720450191449546391463678648040675177220307739543658533069234892556577233920833924432496276614451284794498606569600949112447891812765240119891295128975100704373537726231672995093525379865273137001563089406765428602370058642050301039290885544542594079555009504941250733139893735336272510099908927519971900200124379468906391193651440248853541873573581195991217292005638700286344103015557673811677445393240632832660208343569432955916707600385295922046719118998137361160327831364694600536802582086580999326256897614621198764110109749265879174095818408890009121294984140008123338922176253318401085900296770734714776727163933854664570187690905511654040312215284695677345470703918988380923845591199708901910625365106489130039337260504627724690645361610149356820057684147099310410405942189065045436461042698382537361913061320052148782485454549996109259078410071754116626197880912586766459203520185424432400917116253310390168039956951834045976726614342734333443200400690023404112042657697784886843110827694278659082238204024339960567667853829177138365632032279264330929005209349574341659917070608224641467207049987828966529587094649126903968942964163820932092673751400584682772137006253727821594763311440596790504824670700356015756004374136137110333836273828919252367050070352578304381438831119001471993232807442980591818044122186061449303469374547395509715428696404774633484834948075450037166852068836961178147161525478065004267029937377755355886596778008844564956454699174224496788742270444554233297206824875900740330942998292391077466745506115996413889684200740032479412249544776489962611254535392952854762962973812902848978684123371055585142875063926096231211579031568616114117271199803099009096990205352681175063627054673437112134927524737077799055359259189642556529111201433885420610221386405258898945609729080815212636609149707965517540775110128880127159935496956123227435667550841139484327113193437485280637205362638944821093867490794786784336970700437883346961340483095709658124134001973453575150625935267701482186359652462775810540206624687990680240876856324515516999488565280619076978739335323067867086200917538955241147778567165277507104453557124769646259214898477502436424167626937741141470627730885211770154266154348721636551280327514856299658568694351385693012867918175899656450620606030755229921187862248905199479628229866330529906551960489097066333835014790203939033230159636460158775053526646733993069677994048065200521067825739755627022708510341592333236856671647305062410184411087679599943581972313460575020923360569953057246552991213031818160963646952149575818921540140121436995873812060467076039318928470922761937498692196244423116735872495592408273501376219639139076806485664661383642894060204208892331828207397684473169622517033641533717127405033445618594715873509944741073177364078092264651690855284341367333120568932025397068043804018448390458494896038342265049530117841192060310316739769482919020027922197632161792179062182409386423152223574643474344032680835839077332124709242718606734170036577715313340940467116930391067247515664380908392765907253025808541234680198955789971255079680587478462626910950050098847991985142119069203244308069442590044906493144310744992942809639194685399392060783721608090789055398589590850213788078498717330212709132484694491701911707132519669486484432852848375864787108883289787326049555654436127148166992758973787085397729711284102111578407534107242039881710168574317060095876541508877172028676794052686080385257248304422049658019298129635471349046724298937893091457803676385497815913137054410720656991845255225057470045227694207876957685413206951151974968513810631713811840405087585458482421764907151812798965523559477702752520084609468340251460983118464466988951526135672604076398578925422398063521693749011790853774531624813675616439229114508515203192533043626047185789990291351935321263587396118789808855115821642072114474864891881826486218893437323470345557602286794036183255901025820065242857260582180255032919608256463152719761144985879194679344531593936801901439541801363209897209270578436926091629964895234797507270285858097262797850013718480544283683375705350845282754893908920216444914364648260291024905406145582208791425333846107275814760445876636200139719508476494627340300994148009157654171735653196206870706263569170512153321606112061715455121623896762938292676810398048312858750762006447394135403710372106029454908607220516738373764385622596988752930199522440924086324796583624235022735524660982733342487022436776580095976851751853242159891265938543430150636910157392686822213375892610162457868673104690064917270477102299514239870120265259072738792474881924660830054065210014746286771006782722316347217493671544816105627184320395639822737204899759751390057601820117194589658597489620171032670263773121447306621294664177515649701789876686987352307411285258510738180733920697799433483605142668918365677496000700987692337758721690136302293482754339530722975534862366711739111024809378082991329346987731832250569639370753988676827019011064271304024347939167297442758330752407556812097646627057913133931576321641804611466416249064414579433735259756161750239296576468806505731922507134754787770153154743951600484584731560119518714918147083475031845792631097651126083896001275764867147792050069389719030131417648650957713080727741708617922712563637648146513522676646583741312596612698375217044573897970422378794002639851519222089928628492483980914827566300441614601363926237400383698331779031963103152159337478362970529264539751438886412469649422928105361651562333619908080320161365665889228959903338967892004141612884078058020126848924076742740557292642210745878391907739814034036034395930627699830435056595893540876622745364317835868395146882782329967244228859243348906424933799091385278908669204747436800403278846190863223656213456402518735117569232884801888651504497339691046856505055811818310154917103810463823965075231629072846042526691310074574321503618799921360152770098761742869264104581388174155048301165294781946513667715773040113107600282378543036219610255274914931785929917189993149079708973797024098512251695955408006389278058709733290354670853424254952246360917678312010450381432627352808890744486604037683933398105260817972665536083333634698820969349502635746624934418224265060724265635496990703280082396993312102487151791688973206871509496769694795435908643324570390539128255662691956804201956833495452722959884751847309757507816568350132632552501725582300614446915420543290176690231784015297936259314507882945201773354792978072534516626053046465306998111108190207655166531129834473432076193406305516217585591731083832091047291819809446809294630178976943257133682623132503291441102879435127557714122625380238738665243756284795547527721946003915379195434823602659510032327476426091362174222231245455571084340066302150349196187780882676253602224522827687958748873175549992365291438786056208603648083444136547978640103465134413489344697447571036650258500431205902425029222857613575970613498430694602317237875569945113738798653483824986288539552329474189904597600405951623083442160042899794234820550436698733421404138240281719389314931439765290996196428680442544059718550238918223047635330476810236658996032566337556468820456207925922249242448121151528194101779211371919506239392504408795370440460524863444551403544523742745432200783050636704974197743534701175675047754319724243046303053800042469023309945230140287371574997830540874916702124205420210722512243621264155110129604709840264128752512426759819983728636099857514031503899357728606562465566049923916064130888620317710264347816856375467012598340111457586615535807151023951493272401580006599298435783265460951324931274075235166908260463540458180937078283790857587856550212376904119448499042389341892310639679857206798872792261317119508676318694872680104533549293467653708022592065931898161969059039227549685357787351904842303358444201180492040107129766163027921999502026896455011055788011734318721665232289370597249305285565350906218185331566192942219355233112335076896553527818111260812540691598052551413532044688795893171477122355518364839034804999907676124223258098283117521044338316292011713387652355133640805867371975854254157346879504393043958330408969576501233325913442533551559210071101198490526850988981340277808825810292381015639809733164216785937757374445328188728613764242839774510454476839344633535519445234812871195359516280722613113059584912399313467903807443085210804258293340257550196493045389562033129819480195361750763346465115309460187393420399250874153632443567439986444151856629305908916808533594216082331871736182385573267931372050111971467999786269868500885062477730450826446425641436209232492055149943604380449438758250421391248301101650372955940500640686285435080364986949739351612100102522167560182549213308061870373003843248959551561163940763085181726829517306785531731053298871273309835111017081522678659601317777332962743278415664028244881280214845535262054389600173520727992519287976525955545021302741817553498652645979382156585699973336005320389252267960617484634657607699568660440016652237515131413932585744929664685638305708486004067564349045631992765445873973898561516241186423417952714776095893279679818145882577535580978742427983273522543865832507614699891841956573129979360362591332252406657019448713369923960796942709722003502242372972608420193874773778527688063812013303293053359021853867245761482403652829628776359703838617297355591356180105775588330682378895363350135632106816130591384715490015565856838487049049178362207572163891454312533256799920449785172797671041128157440338603466147613830450633568247966802912368085397965948806354359388556877173362887088819266163865107932540701270079620902156057692476619625477040482997045816653948407725165055566476948518343906877585466707182047616428588029443466607035604379942848289154570127297304331180438135213501832188570903411193785749300539726811315636765204117897617862684612412830111192095016338402576164559649806304190806220508289258982797554636238804848132126751184608933848166036881911316189461953029433550613196035866613962369589703403913504002950020940226986139099397651115400218428016771846077467540438218408788675569539405548908151221073082870113350532123050241531299650332498029858635743288882705421566941537794151978241304743023874683968344339686885756513863663060213511156000095891546042220697039990377573303735400552316294610268200090542747419074272777538906970605382656861741943866600261616243697151119561840641357726030752701087892647429842891436986076473318673169509079991640150765943144230596839685424996994206825244016673492753660386108154095958645181332875624052144773531584990799034405682139951337246740330387694748741633243514097882516598266218236653451924318652640939638021756086269098681407216585071802688799926056665245799421517141904168100203922368056631910120723138309434325728936635077970321485232425919238678743545905608230438692874739143172176037278501429071104994779837785179688976562816771391352331471024966497860488312028902826055350086942230517206157817177297648912175785252810378671122236700808621863602771484047712171258493932556088633598751851392549953388468958705500980527773943279260059962265683129001506114147081390518208493244915115757261975528329032399951085895652034116149127251477319331815405711295593499900500684260409979675691008430547330053884606711959758996473623993403582058036631655084185346744644328769124004248202077808733766845126065907474065304387935554177098510914950436629562116962746274974709437618242767121137932497411001552152289522537272599080065139414166275864857584257201178839904295396170789581634943761371230292969055763070664541471437992733909484216180894152026814514285859488633644957109620671653168302631835109220509998341555255413446600252424597354749803757929557782128304341808058570163209828110726495679853044012696044977571199067392350903046381490796923475076456006067950246365210998411427269868634509402140910891669315086463223807859496680110047238055253905008975417888955040426938383983485088761500376369267380101704447681714029672033811683002195783078622841736504875870529390382211603561041068604211977048063997315276367391460640679007476651717561917575008643190616997368415765190496332490735293342453621337449595398333307324832084322797028339697241511314232036988877406116926219037619791780318881664296118529876458622660238759044514313987248052317091073627881187000878197720748219242820656299806493809544637164566062358495606024252729286408064777565458832681957269654757152832855758607838321980281255642193443842579302800797596743364303129696454657902173552064086951839496338746159103602555605526950454515127368909806200776944496865511713281177518265281696736755267189493659138676495016025060818765740702907929639456143652363859917794520296238753709189142421907438765851491460524532734761731435640552405302524879791096284111954268467626518416849454596375901356076281078796953579922866172071501586775115944768727910807711046722134274012523866615914147107610590798901751824043299059857126171127697486972650832017618990280570274290050021108098873964850137396453431651821365173480052250974573272607997295129446102819952347831081083331732254423826687546488236671662943226292666970782092865299444109221529546688686086866426625813716874595255440597331639226213455609423001459614954399336113031355959878852813290958054815942110095085731802151155700575991022798114840032160693131927353510094270076223582829839271692703846379677234307736725449804226806170820242326257494745649628314714816765280370809381139554046278286696260252432467972108539447811572277953738308603065952549359644713084886138876871373492060063991237962808883225552437551616946905296595897065903910083136959959158773744753463371714618054636685396695666045277593475728983999543678013938506232728718725418743186504815864992030360294807195324622227249573747389190808952197919668105582036824801893702201138044140261759415397262471903653392241230310571166460268215141178145688351904649394331528713677749017334039017367956217473517157016405046565862750500254402971850383101342192862924490549559974466195241128533061551169902051715189457467906255600109953165317214893594707709679087392093177773629697168349323126022709734617794545678879115496644910656650094571602245268946536636845188843376653441523834355077599492817397077709414712247617557861537715491957641590536144425100899678675930587208771294725733190119228250924944282735775715594002606078681115212766265444063957139261130787257323039837942244564876019125868082069740499839966586494969750259276594957676704246085549235003450170737320985859808177937657647131021061432296716892164583150391492015264004933019807356743469083901816581662186568246129133610650094041991826134941974035042615264737379584863664125667779681161931682994972487764250785788846758817583594185543022460812787404773338971227405113785083732586560228425939028616554085284544913957794850454404512829560716447146510511999933088313976018619276741398438632808218220246146883138523389622239237585759036536168054637830790668889433385563070060874076477316489013996056055508230542883537877681247110309676387973652618217987852393408535006630187578574708709198685889460392374255665496651322318505697870438828833860217869976050813961667864701049969097526464652900078556081589880580663181693830589051211687769875775756232722270541035109170305956985907274536762575979393732260463337082519777987422051345605276638361630559553836428821460021066569016409323474575555480994799389396760935257950951413619876272733046608269183099441636925243237254366622865656959332398829019265943809941028554193871955554719530886746491193078600568501801371005964773441671089384014041095041583624911301039442820918746973170913854037280041887400835691137665088745019339057912590648185299318193372942656434771407137102885164737127264422249420418438519502335926617503869562841019749629181057315519508152982730866623426626068873515948185869191345297126911249001852938449510343857345984209363554111247431420506364061361761955364737480006143070514637322575493422027277808897397202748675841803630209266510584072894220964251356171199360639408638909923532237677924683966940364283227575848075768645475231410097175238186746076372175387862130380145653680553565562684833399305270092916693859334643666543246832129278314171993174626801144201237425657951688419603660615437002828548427778499263958547375813570592011272001501473619833320109625651672462041407578943423257063718855996447608971663951301254991594618999128068287009547401541663631729152367218351300522784552977501437767207516459061136670145752425257647545201952693728302547247920730756329391485804425180553629801014359864634979125830087083741131354758115355757453967074983075589874862934671060352963621535172336503900391625407001908122637493445189637416235514444931432337998293226249070536209081446623758416670623081892867868483923718558493383818639135323142436230944276569273255640360956714911452266694613565637476308925995061091448087366091959885575139962691970226653020715495730772771048430763059088428275601076175630449878856180201540609654750903961700570299671598091122551411542096778959155138651185414849051697875192014314612097628807458935590535044061390349742369951493531039149244840777372871060087918525588031172316275496472303841430557900406164928983397769915101374605991470770617424644374026214061328561123277365593251294358722715940238294011753299975096327076088888966925733286709987214830362448600986531699637409088729166108905283714029512710951124310931943439492736691748131717641884703677199340132927970751534668455990616324984989359172167681159556934176721850676639530907161881711047454867380090570956211537317556485090367733304237260184796605008868057717981905802541260292259749093163033982420365023791660051609535051851863909283985380832475419520007132020715076184616257850086716397991349538240791446823982512403120758780802870651858963200359882020261207020531807680928924521784882997699700155670650819147151387670821212793138715483240760456274143496443962176008918267855590193261976928578898101833814234992900104545660062112444224401089935113593977986428351355595346931160770943910981008769676639139150650194659297252578984261165806262987973155500594923921782464877742048121184222640789530907679540412620522627654634819566275428915687039941412103347126924662356849792877435833494210591461709025361778361102606323745937788377712439985357481549257327749001945367110787720242599966667492807496559162570305090731673556496910633151005788118447840011223540702229909373465171579879107441483566280028090529491140055703735300461015712258794500544466914961020515530654360130009288463214423571001105281728330511502537509040866684628732346035557347038999636989539720645527602522518258861512439738448266490649776044635586260091297150117566487998502366365454007730243596054789646358433963659794260032971882425050869596980113744910930328946897221469635449053284185193058290142930044094029778712252154695038511823682520809168242010435637808046998450762858862148856107932536623216441424074842742244366263419068122723865794953616212856605101083540366218469843735846983486633892563607920948859917427042985424758540520304087979767181146938934780283677605949490778254419190494559198089636274143568236677522154448343060999982628406504244747511165115676429130023965081290457211600418979968159658713037432915068780827560865070790402098735497938238707021232412723525601155705211087915458037861943290492075391567656031745441335954917719826916438586798815812512812971828863386254424293778726101573789786636494390838515514134637860030020572028986014184336690426839300296217868494479859953008599414235717623905715450056433331459588583327695845363078717845567599737959244790138365278333890132319664333011221828101598766821466582398363356055997764072379145906088688946042730402992461994574372046919602643524347673126271581106346162697128112535358418554412024582833641740329368289953827300434311731612540144941740863969507942855640927824240980916137494423228924408727659455831552856857201021548974725398422759187268354035988705979271901226113005791070141740000381016518427684780513244637533256137739951316443390621603259843768142600354176154955937174562303400261835393456235380256023054052341209302878546672016891624797594677540228233684327080333029707636419355117400764253756129067415197414318820954120702409012744391036566689718265518201879134900510625011293938974618744460551744868795267831994850442917001593841583301217300464121542596590627388247012506645981234354308492163852756087719711394505913605879602398836300626026743069229685973850966035691285354195599056853968745350779086075876836487062780366002827055126876673600192143460913265025874556270725691747768981475717723148377567806468187807496595827299572132360344326855298581546449657199074052818349745520782570966523358315515886002242526670504520652569304650329876402716900898240042821768760572377207671439682862562325380938397978417596646173634587234462485288942203734851909682114552368105019670160233375492087573907113874834333381521306543455493327455284877747098146518135816106309381667554844671984668364945439736001005899230041300573278361518905887965984050292883793360683689492878713272147686577932345584001731852707167313466712859092656613791828901652521623048944214078980603658877226263007279723402843534685315819946016137568788554434304254020555266888195892866117666368535962094755258321618776170003688877685513069111927884871311794182555810233492718191724467442959519607146252744629881197845813617386138194044347774703721466122157826315709132267958572142588641083336919680766010894075532923942857309026969529912700486746508675148492675541478367737557949511032212875428660587946214308463692917567813738033956520437127002852455132565941896140149182593516967701332024685859601243779109559314004851542280440092441047461236562187246501476071264787048956208699678808395931228717705585128792313906128895781586564943414177248316145341912693560149426283381949513469166195612613553071180221518834778701401447040099221841080269749049924111265523261019798318449378164015648855678958188266959497026491057919469146363788438072224194006194174898818631420642309399740489355318705213695480751805681286758513229551718603971011134264474143104539653941964591944189225835228345926422493315862219897471852356151276213076611935683928352977645223945004198106508581819253601914935836519590242936102114969622575657832672287783881475195869902889781825298117481870870757357216857976264011300344522190657906387075532229277019882156268526579556114904936099364210815375565337549223254177564577950029968692271463691650632222956191541988064850599043415808829411207770505331873002860571995780691645101046103542400246634564343210773214293218073216048220305254525500949881454615735377381313296937602002433691889216044327864889358692470758024102992067654335654777484461176365097455736839248057339832442521776063510768805411503893460942608261740729190122962046686605936775554589926849722405409905453217057253461340829937915037726171299247683367630769105532477251701902486969948017773792900719205715413654915903092668132039149538842782169795659556291370620012426614551185163982406228854265059199248284541765691861153249318676850439683041079802401449426020380971520249047655109150359557629918371649092328830144925619393321056203771005668610258288597345282674449700711058621850881436963456431834305230302256895799185632250856651276587826719361908987696993313712287628496917004851482177176718306763799910046116943627458685526261087014105651690696876256723215802438437650698427419176006786757609407457759197485298276779987443969857919762044956970790656884869812052947000408249255168579882548844196499189778562042897201179879519042517332826286913838461963011575171154616602684045102315227746890840859204142518504983806631823546348112509697680773315027107224786023820574286697660454343487091368937167175059830267782696749845153479966804277835699003362547526341413685520983359995163438933516234141216603812037491090446801522229129937873881162310103680837450379766607615128036387097138501048614598265033529194903210112485012967802897743799756184840441146333102289763722876105282040506494194602965941720435429590637576943334956570405307705358389539602724718817486270220332951599842133634112255327572843227210876811102697824470042497451814450169906200536432401449041710208300304987823453133337588565220684236822850085194024010152420756252685034398030481814521317722282492895152007160778833468927579860660238298073158943366882078780379922950215429043111764483545334809450148547596955765861588750107507193683408002023223996409564594247394374190503670646401181219069717699773997377226307696537285588516780180298183657115938740825166310754661528481599588450567181943574461316367010656224751527480312376699966277897868705816520460505653873526373903743330387712531613630078811257187825423603756390252908044232313140250062459862195936336025878999940044231598502429179625844459489181843465798195945315866122599740674250914225043694145246692131466395816918464014650723762856408741668456288015094332269159398469961880333571785172792793883645137649501120306856309029150784601932395087856864407348530453687597923430567403301123804827351110704537924035390774024455129386929590883620060436571917051740502666769491051174455129073027816788909639344621493457931649994135141591127607859480094455800433404252705148812931145953179906813396168884073965022501363168213327602837360473670597073925811787338760909581925345440802136812567704614405762781616181005493324145455542255470196169139414499352284809632419369244864662251946486394142514961576851004640044798156743811739853976592791241280142406601762873193258979498525960935982759573512977232307330393353222108392269620343433733973622929703341500887207857220439604051607300441137087190942038072362043722824721467322713025816977088714506608831832541558431696995357057809875638980268669893627133173192203606518070420547192137003324001606126913337909737724614078396463115558861774901072742348347163295427170558484238935675494456402054482311741821121388270090945187227358048580708414048853694451818365273470791785504480700074881484112597908208394206435038008686358988258367254746589512845666813336181969666387521565149104469183143732280979512722941952644393893011202641668823007067545770561169842925105970302248656058250415741350272046606793742815202846180633280720475414317898350804459219848951945528154860984611202975166958970244100158087422114484553579833094808999812751911492477418349477321109959349988404441158233222376042005703889859537374733245291460590533948979512024740814183042811241714738948461428073343877300854980259427349243679063930424046636066467411795870556891836146750507504419439785175122073990846830178249571443807075475397968961769667588063047477327796315778122639470939337626597711819929774855119681264622999762266532626824735988868346228956606980260281509247573860139792088890768251180705846336967146306074281003003473629781967571104320034863399276647049401295122966892387336712561786103419605720752809556840872307736914572787011233872700877671824914617021713371855509976326163828973853345424718202485189276377016536822907737830866746007608476354983086359013951000073600355554556782897253808827714860493356480772905864859558876123484857517287413766738625572179023140454902592207059975010010592695488966621562781242186867562661797280232201012145155798765414854113414546342946497612070791137324114641452102983909094200237803490039730637184566324404283953090234830207706370781266799026493414412370298267220923604394898290283653066012732916302929546362580025739040154196801137637920653785536855384124807782746933803279649356899518928762594168817685987413828746948685966071429400271227398407610548198960437870276952153822436189976435742342178675404054374295255457670914485900114307741308024679281000724208239587871793366458393211331357670462594046993440554415101856637083208920532504184712973204986432257769792795461266654961486093486943607522393230188664706360044572003767371854569866266858809269982985533144499236402716874967460779188140999484842726405045114887896799863971580887784324637356716544437819423141020828942913661061255372316310695978884176734433069715419640194673717112854312497856245190950219938610789273689448651169420403348175539667703535074989342186245775672520140479383158590536084339443666135620632822873370362215862108462671663170306736754675516601194333502434742583384974306457924787527860036241233836098697796990666118502657842658942175327382047361668615663653227670265302391605706635610600243275707053736105804425901707113397060353665912332871762942744770931625514762209603008134915783209803756602290689402513335238325646738412495307766700751353226583173511235307955055995278143393958390640806476936346764080012837433727345462644505778091346546526358754970898794271297550785013409496217627486089246648145432383326104935356332192533163790290605929020790293651988521837896634563975244795065540466778677818404803863963798075742489017464263962754461961901251568213595892600836030779996569816158028818352039318944916487683250439992186957314583816365629832801978454818565259074488465138374560716330271050954659953705114301983320891729963553510393103570445061373470870423766602913451770633978271861138795544503200175334330638649011224792139164853037199748108936476633066738709351082568584416131306304149555084184790446707954858255254368991114289052930749471211430063766304120675278380147381400445632040264251949513517341055660086826423013806834676953593746421659554719268852165057130083336957807438641236963490280800212393666558714925346027438761608139048138258654629754197784392508048560768321011614738044460376122981905744820184473427079356323664473478838180205366136865284977245857099610554794896741975645591767047455391663685742986008158664261485780898156304303120917695276521489700796324294267750198185002971137084785749624212796096513557614461887117836770246390572056114101266200588204626983683523533215641200537140797936091810075155962137118063859124891695842206216284491599245451986765933668177832398961695436930431595025795389337885134518477034433971326707181963413727191828507057684323301406407583030712250827416881507632727162504081540675846713690981677089064396244637579699035375272292505802954365849429758304480661087041916321087290654568854066819282103396258168443253567632237150325696112463325551446476159387597070545232853759301897893378447347955227709822539379761927940553996110079588293043485330946660446933585332289012104534047271734152407789766021208468149372013012866174797705795627649802933480997839975291735130587893066939244666623996813091831372988108701684807327491352242811994689854451984536404492778698920465272093427813278549299014824638044490115026203629777822328644607860068724530198060412133067582355877705582120104163053591539527830675744739836540281332758008470784495617422234832477412230607882846307232022921000622434692772506513182188919190051785216772230188664154583429040225620513935369031261562043175302418295179299176921182634312920743328068355915483934915846853362001521089540406659555687656969026014529441819956104520082556414194019425507481341705588234193664581956948632733374960312407047750811298270726390924300102624287258206637936288019652581660952881735052699925158998493363108826456597321089974619554516119285890741469843404303510990738161486033786525537542293047956554078792170676790313299608301325325650538412716660329969825964929179470421623910470082251434128886263628502765190026025459364938440173689992804792188098085827243364542249638526766571259176969360449407623561017555569091211861899659348081142418667015218460664625219340642679930521187986328533086724651395513659937870604194546485418963889897947713398045000480216348726797016824179441275960574316274197337886149062570172400859115497527379043510434114989327698826587499570147388107475487368957585127444672354359854594611001438951094594747706158193572826416055789918115925843008938511848725301541643109296360392828234662336091346967978645291265882687810095449051105446526080597063651230904728082374204502291860126221234903671211441199109438418000702536686713301611740892190678174418521316326028822935933867833511538145375942745358228406539960323311498461265529392825464524981715287972322806913433153478364588479367302377816373821726649222480871774046621774679678830348042769113906952983622334944342107087043385341171418596715820426637001619617899323450914112058219448057087480742169396408451933180820885410922716416418962620955546030859703380921795943724263313323532246053183335042292885719297601130968633900268631170168826421627507276702150301456739902212552930436856775682914729682431968251578599930706828674596480831486254437042752685745581354049410088421057226160277498512581552213657118494535173639254945777563347668797450037908775819350913825469766735698295067313290914762143731226040845052685959333611096296745281609339920985507895862023447763811317667538361055531647558016216778469582529595352399589607166929144360211919528744923229259464894483155945868077701874649608930694671421243835170764805046742629958278101256370638338622437232230128391714680752397984687017812444361951284298612777067074044154091731010310861996745668849215313666645277570681525918161054443948028316842512506695033362628950524937142397283704088785035213229909388111137930395170439138521820895653990662196277144791161052928059947544146658564696329303692388418830806235995930255224935652428581343243155997832114739059549019541065717238203182538197512149264945281700937423694216981689723435430868355655941508762423123705247990774120170592731658879453987502421601392129140773911839630504896929790832060605506227299779808749132121713490098809824998438185732855108922573093014476014544172993551876826300658128893542628945277915843158167785150979194158341293173708865901720622454082980589589515538074418220285162118014052648032783961738405805960205029766053762211971540842142084410627314837818016263567277921746131359081395928844876203918239067346833087404195335231919292846442693005317015720125027196767743021210174174749838684130525359054936577929560730638794126166532062079413468828374169669734456883290815315397743766089289796411377877153985206696202568408244969833479905311734394506111357184610888400457680764578508275011720630651837844637007956980829191882033327758077888489024279312060227881813156224068431998829296443080152170312387555269479116704282346462493326034480827520075169252545531467905297315559353498135284286529048540875560719432379754003922261224844456308811442035563839379552101298237325229765660820141639169619098538198712525329393980066576679879814392000380432057018107707384596551378282669718817294168909465118789487881250120644117005360316876476781945322571285419005178101082788951862052564368480087476152300837991972851956969986392889506932260797240894580994027462578198847319200411280478871407800017514108379575722362269815632919615448302526271150983740044775719168741628347797398088732819032837923872127108461709283528083964121759596344163225582263168040826908119351598931743376679900632550852775893928882805982327618611835701570436342517466424254988261580057918296142959885356660086276800938427967496092424151996420205130219467418376208031324171281698372891420338075584116815581346244014671619156500638398682279319815706453497454779809995164015525395523753094295651141747238910633066228275264877509401183755867256768891121051780849419904132627121803769062548780040084342377970069095497687893679329768751290556120912507522657441228286790488909830156862006603132753728717243333373263230545706011088775180632083511080522078879445477361051319179518387967206961856804423314248460969807368943620841338175593476510038136725462089336758945039189374607083401676313319749025431312476440801765492340956553415197148394048580220646273770885726790919212788209711089673994491394115216510272489661772944699542820879400171088622756843447837227584366991204500878303117294272986259507335765381254366400293212407561829193726196127731114894864247457329665700542118729547400497535513530013012272668734115260546719628557489552111081562035402119700160371859559243290377686362058617453067539701335578857485258415493912541817398588169236997464601232877612257239838847932530635473606263601748910468904221518438326582281406369017932404938389842149145606223266143286694614642402770256817544346904206373978742217530772873467379611735977803207384243884271989449391724276046201193288362033838586877985539025978457654408286354835255847308387322377094593649035584627166314492901063355316442097096891099245150765250189024310962180777863698957582680769654212382980587200040141490991308993298944468740793329604462447214130294125888157414079054357940976997942714838513393817848436305381081028210822704617429960881367149639505648414404359246526381828427403186098689786955556402028406916719978023310496706102216416825138343381071896801919726328382943183711556426456875273489826820765739731659076362776944670146944374224126024503869798189202739054562150050573379809546724738426144210293825264298463009043021510050270347702617776680506288392210308386000656807800664731470285210014365849196380581242848615969276342734704920581312619478423002071952280604647735870037275417006314036291840292862469381402997842792737388841621016101076828899990591968795419501629908193745365352445502353568599854317893095179202924148605330679239462272378920443662973568770274110512352502373959729698348033741160571931208726451945927044790609158506941348208262868270795638271813018010155788949613592343692596140184099475988208191908730208921277367718652019446387722493026995056525508796331625732798385012977508542035102230098702550526651100130080205789347051738550066120011543906190095252007541942935135815526395659956199556143037253716159008520272308745670348064109918356033929862848355839707468390639283129331098832371263680597482401778441930444805522717869043269298282533240413351032242563675225457514656258064626193068107135348724549160671389143169844773720237971487923113263762514444971447059143292979749705791987511639391088783569829395281487288033788014835223160590803816850165275928038081494284657766703191763294556879597973067912659672001716042201224945180232015573225476140271777523233155319636003353449613171375183844347889660212264947581895787818704827847040503481897281262414511891854330885541290272349058324358390330721378634093969366650851497515945273454612879087894070937886467924377019879233588583380240198595210483000611832175192080373561322602865091371957724432109634232326602471373426999144716703699216915156684994026993526023415845122491037603434285981964323700384740995794429759381618779881278307056820851527513600203407117538108449467137839041418059097276593024353037829016630553041122907599922679443684346452484539588993411839890736341134855912511297435452070275544599150133616188859799926518191954826450963558868815916282025281434677685924401181065985554795720260287616662294415828173588040642860312738345600504710792443601639154640739788825038671585429036619901227781072429408612208557726738716732965258900201145610059051759196023969211545932346640533166897207616823289402494666781301174052046953330268673962029305674906671233325392333416387569914744548893786842413023668979923875411096658729783898733881139098812621875259669913952946849442450710480709990266244283815629246839240107651107167713723795478617668387577095332487889337715178070085325580071815977407447230734951296534574112521196600464058667927512884648891519056647383922149164415825975250873692445718523590462631653921223444529352199063071091280017410549353188942371645259732623099071944140197047398503954138223640293027909518062310536583026927863310319871338704829891935074120972310643187019134235854802065368124081871618024970186005446492597755965682466135157357371038204245298940798912334034565908380336758642107449619440712693590259513531013876550354181620084044020689367696987862381643349502914869605642924494353738496499087894984890812963133301204385976020388171749418577627556861775913764221850983233500518013475339438136268336401173405294386313113067293721480843215326830479997839245829047358113644869211947243766258656574498250740796658141382983850720183051197661694928412679746290867436703572034213696993080794210361096264155834340652732633626068964761218246727305164540946039232857362574662879403528971115912364497599025516304970961438932064311414229506008148373465659309495810962527561969031016818456021920488135085023876158398271409668366277297371236598839490821703336911027502945574886421895838439749415936891376037019625000600174780758913744709814407667935965900186645877616704483528484512179911614130503740127694977110081039700419504532697626142639157065769600562092600454786919044717819768777322716984400906067883597801089088196108682493853890905928353032580047928608275751304666099672812170839218693373074975807798220114621922066971345484894171990275006926261279436312082553625384309889392665727265143057887705978275580990565176159263186514190946400079909554718781150923460926401665267638248112597127259969137490435448619842886330827036455833146170930030565674946294346900725058302230385322915058034305071354639728131879976939399121498739360576848156299379950360502353918753049187164851513570670677431641849555112013100203125981192015458571070948284417130799518085045046002118658261213595188952719325696647745213713695946726696476461248587589327599838418266794229883769712792718533748666875884797431265095047523896980834347449376899546503452878075921604729819324302952043801390224102433383398888239729696548663394204077541367914621112606807470866863410452389123150617872369188987881352415160816176766208446089956195565698429705677991100813770357274525310881621410599461173525793072373925977174649676828879216525008057239125721482357155624367366356998987555139841459901970780583891308637305271010288537994123550605326762209747751703562201048812676940460339787628928354989988374565326945981043893475445034339344881350543449329876222923030639201183297648593760377904566064845961666582554371484860636007279582884579286267115863227802241170364378074992705167235133206770092517011544535141002080282478240336310928903711469913304911256423835952687107627287228857380129843260345037434476365717249613697086285078736114585853762269785132504329814009179557882944799748041402663875337873074313521518863690302113633026909323003506151254215200903786974764604665012017872335839445016582987400016764905308931630872703023818579584332277965741290550753392863614058040042159973674905753095572459488235815111652224908370395275554134145802505882937082814350764112019203786002695685273391244472711272610937504671683376502956054026824209377590161880792372665900266345344979489958143565275950085626096881679197473379106070484990642811233914617593773554678637159012408436737684666847339906586726605487055573710872458105096912345310266286200639456525138636050496799652977999020093881977140918359810491152338665449375266164831203123794256551976250799647400294420301252877586052102204474114563777080477320621670076866329213077097521143826789389026311299045446893967054431334236655903387643480786431312595232031408210930106630565538576116168283396742816424860127757456165947832046172358893886244154366711612518067510722083815856194968734706001996741354314250173035118330530801915104112039638900982044073965727966307095689013871680288693588815202669926800015116091181592483154327166646641944480288718268327988321593828281924271162748153726383167850871998478172094186292727821653191522528456637090802984362866357202716127530087188468107084124843230850635951054125445631252789576373025603601030470501646213469566785707272331165744991171260513365988928683519994774238593916290779857686696806254480399807910575175920285574471715718322834615955406349070407351921207969989878645700896790670715312682080161711349922946257734000896784436276066891148950688260973894025145232285231072612336379223531374088265931110899054408868407747155227457879631558224988272686005698537549514846250380831332487494225080380329576091893400905432473977345124898571617514510795967583686867110638703754071530536893947763552189583835855522702799467749075821823906557110394628280972219512223232944608951923134049055298395539435554801409197790102259894844507291824853145818636766375805182846927054135643023405465757849234423796635429325972412765817033838173997946924694815354192551353614700560669958647125751627509956194018500905771558039963870060166642570470451487828562164261217496118964495991588675248640110590770881610150740340885443578908857406232783679670869086616506464596184919584651871784069753475206574340826467820887349108676046264694191551285979147685314417978942192163724994250861448152609400809090585718704795941037408496844994731819577850424113282912679045122258445173145123808697430669805482267884437448590597149624870967373321856509306677897612679775905708925653134765484520577226207018843791510470649130970252306096063940018740996078874220825540736691189370812586441456975008885818802821848643929733876305992050715584183428162020538526744143953759476478436377517668897271306220553426647890311372915140280080537265766880697728414342433960649578833262866613316162227619857979056388943587420352248146607099942418014827397132924004982683239082548713340885573039758129325099497910551756630875890157948203893740320951704781599357476031950715953408118323489764240331062977830315024416106270607066809893276356416679521701957817218954407918575066783800296111537050819756314570646095508719159690654478291178103456455441423870585276976632711686995337911335467665475770565463986521265686970356282793248829244957028321517880716692814435924260318516512273016416328605132373981472924994731207223903828069088846540163559627274808135655155573219461247288341176879058391650794504936772517958830300814561605592415055390932931309305967502144681307818218274099966566623603567690142404585725657841032636016093092529094363720429741799354880893239166192182545099091592781059173111342982683410041362147060227503463325635905801218733987620635006044449126178349777987350785964133554885519695013881291719353164382615324437693032426670871744638110695936225284091450211381580476657869798257046680423474642913931426221558570922312865743726011397900525612914009048836095069198774445727607667956412480252180515929086167039339310017195455690186545005216594814142523210742378314026100464033163713986069654349242567035356931512482434627996216118854962723326900755486376765008267498565853287140769201197631466589958316134406403464429927825062641982927941798467230498216537098368418522812835998429711840409239198014613861097185570871563930608466602238755462618532146288088739080390436052269341375541583823747367125790886645019125610536343490368569244013193940427350025352717393921476138223760795453119653023787084783966002332638232397487046617730612022412118874947719033874525226347555516956982646464775423324981661107953099339044569257215955208614130522095128050172311553071241567910243053556698772180932516438906353719361075117354431866632436612245322891966167824593521127269435345860807682143497543250839304025365002476158362064858839480454319590537540185817428992204706920714863797523194546293538826003321758865748906590142477003409088356923559145819783471089432313871610898677825299685350976522505752066967144306405338869543740051502893931957651392393294378823301319274782992481468858714411886411077475983304247657034896014438770380834562934550821292128342821955991304339867527551635830361483062841641084801867913180453202052202666346487962684101167557794527573644029211345419523395724168726828899054668932434844342923771697819759213962773948630832831934116209932249004662593544965898940210886226102165616416811976963467114180888681334663053037180955859447356138191480253363985103508777249997252614371293544624219392719726825379577508357288290997826894098364739939572542506822713122145872135858399278082799412058307047411497326256444662735706136122966955804685514292914144490136896580722250031957552675095671025953215960015825139155241944759714294825841612661156482805571546754572310146291383400283107524086615850874652417028781058252290116150535941047581545671854279706429525859606517845288300803722784161211322729190465253609740873446283669750089779988382101546956538991232752338711954321532764132205457403695826665123990384672247945418827461416204071330399967393663231094839366268071379542265887209295970786288331466634996592729145974229158410570276611318373893122629370422141276428144062583295239138780681930121841795374860170624226614273007477388894674805945574627806456839903859206668532871013506847839194647141012215943022334942246972939011895086472190263498998689167973702473447081428880885787336953759368413229828530105343411250468036691720017741212507359210983526248007763729113725925355106915518197307888378711507622994768204036149774734587758403218107243809942885304990161767175280431342103295671248679751840743248260686564269038506797018659932486677789252475256646617570228723919102619052930860014190741771352913855041765795636789615491440523567343523692078757599942799096963061642821165582164639612846157806314728187747258009385099706774402155385974156647979713051058825710598173105268806193353659067588731685723608268336867309526746985906905172523541383673798013096201181220474266670719263357115792380893274842267961439135269004726304612803677248076772730128974223832342537738021490136777064987197991633643036961585300681052524477861072680571494878066281611341815897730582182438944777152666314431433839432253381671242699327934283057658094994287678695302952509560979191148806420100834220093994902932032251392473275745555367597446219925244919379995583597238072789565746316679348434224053283642499656563652245322680043749743575436050678247280628173000109550161459647625447257158413406818520279361288863930256712520404409387764031756982168938546017557696282476290144799059183150719135037008681962561157850039930297944939151687807853409993485051806402329709222619032369005349312210487581470789555956175134716980816261028912502662432708210612006651084472395884977522609357280700988940141879854499631409123067403957593617262558563351310485548935709111217777315387798467049435406795235489055466764088562498161914179830358022491442525373560376841129062327709961416815678766808875053229268548026870130192108712842062712091684519787458195869208983420843894395099508006433258061840881949636560529966185146224504800054084440554968936782349651557455319787111311576734188480971582831235833687897679533382108666668558484976513314646499880127969529987622367556406684766107562867283517486269442570007252432473252887998723280389760214442839063306376675983100450161660446706545803476670258868190049738973225396362685282334088811073538185401302778160721732032172618972959204954434443208785520635070619019601328797325565059038218258282804524772874745469963961741554795525187255688512096718867132112160160690681786991169145339809408897419541114150883441598564337295700989895554685330776289665325847551700841277958451329192381916559232256501379097859344619191515584504956434697605526812477053974643260835591339816003057667217274716001265694104624166451779855639635290220990169096122687116257548254145431425549636989945639873835034460145382675399461642396866037353590847454806383991324841113197332113103261321903515257927601652536307462927194012168330327027215587248637553291474416115512679889225790264522952476602273234179396934364968615281321536433383434688210339536932522452759126212005996869106495596356840777815959295669604883616031083905653014789265292380823214089843145068488912371707004766906351590171827159002747581477341905404359904859790222654594729633657820424917543438019514836880203849327533266449393503693743478136457245178983831294953250128437252811686737542805314325596043917082256033474191124390788162325344959571593770729238473037296250463825776737644202480805556644536433536797426129147011096579476953929453825329425138042918714679221051418724381728451374363589407984901709413732812517645227047575493517566834466917613635222053169897240312736360267907106048998940997684272084133390481024823369682284356255515080690496165137530000920279967520858481583124378732735791349442290436485823091977333837547354081420810490723742648550050555914091877334150802870606023591632084400979769377112742261360145976753455248216853670149384961816783303202601016878671430590320172964268367862194640405290343732084259372907440250434914939060337875997042626859513873082368960081755696665902543422498046642820356107375421701327775369446582363022360422393792990920360676918392060266578552361631131258946877835094071089170515599753411787553058844720588234985320658600885855131278507167476389759082521595546339806579738549848562112975565681131746536720618254142633830812099326490920858285535491614730231980801732546870133502090372139509770837650441637442974755285936045288923879510324228638700139600092533987353298077588829843731322882957324142829909733526043169605011835509402315778485762170158714368829788778564364907943322412016439262074102606271758754068024326943987221066842974120540101462752870693991811573585862753500814675371139976016259283766648744457878413792019120727477612932716384829839491605063045486314060983893265577702794811186907288948296983880385852073460213853370768738422333263848911126945165836180330628401427135915211012388756872555781184741804616064506968875395482321919660501551154432817198713868340264320403233594042342179255387798361255942482131491278306301081310117347705784597954923034521885469100006665431431766560275259590201058465246299299359045683173124870981656152162283810608592844009402354143035030436609406758373836884883329851060271766969881893854035633044479633352749721465762410095508112012434375890439641509533614090286603760299617517816609974388000316567565671366153593784513711385008324793084806914619689211264760516040979097341133452752710628761591331600872464635333273197174182720655437340676801123383224699990535089911002139652826436046780260113165501033623707308144448598880684827659970279180698216638862517108271503296378063337533964620442300332578539357596268075226751153492425592640778493965011351955489999036676870020925667555069900818337704534298735498192958268853207822103267286495679449131215313659380975057383191302491573134707046836053793824618294360455986111250172603643053005468626844637215202716648013645502500187357332128612946700590004681309489362197746353415065683381557685715027355856283923012916385242326854483594118468908440560837837004404654675449799655862711644437531228303678635778470681433707490883354387445808375660774905670657914155346969889467027522591884148281801578195823261870961370534708499614927181656461196223066927511726421262249904362976405787345701876183373925402487704574125216745980573737171442038096203932061554301627306222330228976422662536110882293950627523010410941829980377348186428417956438475724054732775044143964178851132246454035723197602767343653205003688446332826332514573177419494670466555188111995688732622803420945767718127716622300422660926106200989732030820794924231137568807242990909502509765648193532666147900525235718008747240537523010595358867031130748091173156639926044512926876817018453067641540011910751005610677629995501280613868516434418313509181861831225063243192400300464420218728074971243533836330437748224615550545048012014882398916488904275973331763101148633465047852624270783929967207500818124011122506593322071932212722453639563664009772471726775860978270981767735778903950571219236349873812148968643262352490090437512623836996246547241351785218678439449273713728722108912559515514284055295675061132931365251357333029962882652106288738619845195994015638728553624701351519301253133847162653985412165442488715423240592631760804290178794436221423519177007565560242322113571738293908571498892526609102812177600486165981302513714724748153370320529462883813675335236984042879907494116920785171136153055208397768235292055060515396346282864218043799196255469060433247271373629677413695234237234346721189028802538123395263466104034529442010709885507075559012474770840384446533357486869801117292275905488065415849709240104589167753342842520969433587712061266606249398543354681424940742823629065776187561711210629107761136215899597859040707259301492830123899738483213965534348667053587761507110237375097309325805969754142674203135079075883402238527348213839441035201600057596098525010158806771946639084500588258842509530164141184874831976287237345463678871638851993034950619176772336521324300549726103299016399614211346442283294095117852993661971486151355222651786885464829803917167576320356357035639779765703745524391247763792763769370305203586538974498803790904262648284890814914773778484111824313267997477713301062418705742149010872282809368141353324184565237704000022751391984276441560419711967031447245089976593983710846534055596519855187443591737321870850682212854774963513418830900605947858777449285828933924378417029019280871257078927052548780071055153981499852226609985000356078824660271886468211543077949890941557969085710755244189275212459645347518108777429246058950204254377656426773446301853161563332185167753319343721941990713792456026909304801841853733017154304092324373241023994905603280854938140564961420752921866496868052037611417696722067204959652629278825769518595773374446977115890092760070825632517726279299515205233677648013397535590456638070723406567488273816250672060354449919557008404193793658557121635865382181035737094566728370560935332531888876746688379114771076421407289593901075378220898616016775712034591205014201151035840372203345216022777338015590390745914974362860629231357470635087108578125971238098548244336102810107277545816312452625748408834254673118566413192055095413198134367509657363360075955936284015126866927521423168582779488493499984559874059858894526230877062614207119621851314048657858430827785397848113937043564898793390167890555927523290748711360635767830823581608388920524536743289724333767071502769895061885080983616823491765501496297381007061069521042002347628459128190325967415608205581926202397586984084407660146314228211098403488750428891151878070163186525589608080226213420449742741287918551370635679600826365084074249036943593009361532628562060139617765931291415363013410034593601255413484638787798530840233124895405945633634893251577922470871063894605930243806391074398293796902398668865011063881374907532878885535311940601554476865399652233341180456467235698778036737153405509084392830939089796618093198821262602386014370115815758526200309748344215102261242924719032893420400042405443033062411526245506373614391089697721583286629593937061932294411089232871483953031601003843893882706551811661507103950969618851203905596446198529298689187658943872945166258583059755461750726943740224705203419672832337744863394526131323285655725588214850663155252929194598487810823967997914650732332381602548244678540364851804321672327786705473857243302260302893006858748972281992617374395658130610951319773065632053996593241991769767849252027435034320339430812352241454408472054373757314270674928398683459633954178995610286273526918484271174172552998529566335295269318058124444961231412648190728351469798110927383818565433975134399328383059054897923937086683745183093548760862786450821114190029858402658268748067846792556514714157805965056957875677058622018918137705957551037603786706055622851612397768706769751242607958053688678714869894886757796776323153465177294748977780680979661020483346011144558404529820190443411686786133087042053503926881855671988832117784591629872443024729733634884907489441123769133194611497053000328829438520922418752750401338482200937485134275887719405296016365508485474642122057188914258955894746983147821909098181226689403647921943672767824141596556869280473843522107646511429389418025873335176750186889647703988828822099633578482768364114982509883969532918486454709226217560358605504061777198165805140370306415814717554713070529747798595648571155396499529675973127890889530868766802349455357818060533987168943751216039113709365789217934143349784725014125256135658069678923512920139735101817431239175453839138605640406149330757875948225859370698728119816676709294342223944869987675221184459777785008358596343301211460293482911132957623397407809677383198602153868127490558191092524350795538461840219952020944688052033999454065848128514700245751735497236071189385203601838319633798150278919431138120565442963982251437229354842617569866722044081063419139977161451408030464447260500082021291848171845339709683824891088699850022050108948037631877936128973346948773028737024489718501497419027290399451649267195138356804377401055568044872910823903355330878848921869531868996658444130917089752009955563705281841255548306652598780020002538901333879759705441814934922093538089120007949938748888865258009847813733666563962931505910967612502398762639286388571433269514379806576377791488363431986304999015166437134084713087973985926797189310069745115193283971830147670114461455004358276313582821453413342781636363686366031719963621964872481177863954448935923930505904117441518409181293929455360024906627730549380347625041627903871928729966512996893799160655282740023869034161221032808911045192926820173217452348110013108588101239777936468230147446739732217046021012507124932710019611143866754003744125002132941703861974025584154809162540481706191081164726222092536900003047915596656389628195507097709117624962878232395638859153546193600294232494679832414947176633813222514232009759652361708143124191825924088155204813384136139033209695870914716399552895575650167178360672407004124553964069890694546243710301086716197484504961288597888639231262196564948404831864295628611839584604297383608644546811074279097502392580024539112261839925437519232513902876414995962906218871759627609491694365766026726293161332787016952258542854373384688372996011824962005952495622918121759776497987396307545222899378745509117371213544522796345623467722789794624551238070297097362606971384924933429122562310806600322890092156965231192677698938528227889632897715953736903688301929841696473222913245582129482588947239771940186473782120782417676567987915843030210028669249839810721531782357936314029406650429264805669934676305291601202730225191474136154917671258437882609150534753360908320278865038248271791916605836354524582668523000973349808967636268457422363903501665231638269600379180443820101365027485663894920889852310958558777546218244079656839418371524155034079657529131496026186653980304075381406600782090108829423759637952848668920180431449382993588858015433654703711073824118209896111797854794100493542722428411388968817966356185008589542111819266465501733049455068900954015241437403238612956866885053991961779890365905841341924053093091328858624279352280732549101696303691935250039805771090451523514062086407614568867428960313758225475454249445912329892482821591304179109699076809951519654640092144918049086302568934589065351432690851397753165854184420345429791647702201850686682505826188904805123362711321902572400358527280954847971082167766291421694681086615720534797838020059241384649675719833194128336983568384835128608216371558057083278024261552139602036562189350984115218259984223664091464415162537475635242299968625219718358543662660037364557773553142120340259417425100664028102223368530450635223156426442413323153154125536074612824667624231193884493460058147749682990515177935347926092807341479757435268300663320493040187876000462532301456975521568578429393795059814119781223055995194524077720717730258430426303210318790407274253305507057087292044777931600513934681406479311676638795416622196076505902825556506012177883465057591249352356678131997895697809097633111429041765577486456436016838333013719562334088420139043918304407067516056966734528015997413054277453674477237928219394481506697978465062905736180393992199765898021133802001231845830077076127049627565274418361199895870670114521831768609387643195932115277952927476065610793628025147396022258853155491543448470959593338396294452158357818432326615217719780913789253675306215385247104283395570749792908812184918361068559404688363616997849726796444642451156199030383723068020349769221558625828596973398277583555794472643574019427716516719508451671268442902154278186942613744190178378531292690913897174458748143826804947135096086419843364492720992006996677715817050555074516505601689338170253778543416761228240284214944100090030056379053460049430685260242689470701979488166713298799787777938066756232916260537001680481260262622722711114841495923761028697178070624635794253713464614939849838892562383550569405684361582907154396107168561292367662588683096096230450376381823137353865310441489988460028001425591066330291965926907329680636068466084625602929397117987049843207704032482189225099219212612539937019931937025718415710932676291515837098543815733123283683326477009341194922194367402927591744524079403677949567043457779967556747332120967490075433862474236392655830059443633207840096098602724174446451600720837577175206872056664654078823363570946736857175108764677990250494391129874310874362519800569280394173544197414939017233437791049514304047384135383884762538989976687752226196366907515858949263832591294469863607487305517415932254786481849713175898662806329480612412871302308327252850807301808331094717888804872175478828139499707836299194082369901272954827020125248343821019058565504122684561497759008633697903100951934326975047328851296302595300388392900230642157608281341769369670894332850384497586930490946999180758323078793367344886415804210261656790761242633348333897314819598300398855590522817044190387360599183936732488303894016946511367250256099134792430605732414542401547249060370721558075755853679807314944260934819164881483399030636595882111465575221869330473285777638902729956372281884083929251010208230326570775794132122786550208071656747432682195796367618871134653039531174081558829265995298300574580703858876229012722834801589743627362236711880032596160427905788462137920875858302513203747816418191276106834166027779283078770396417815026148528910029275651534563622516395666352648833143080022474959400520726026667258481142404311157241635743016176998357457498457157435672114138157505508842360646540331701577854851938284645428164331313608618056668366831167920870571979351684730669877589026856710360103931099341766405912862796021903320292108937140949975988524416561430176866546979670938801921661858458179146877181635275403714662031847565587064770118954082941875082310056503226945967023613054996302578074844085915588192436908325236325225830587949834134018031703574210502504361404630248701931815593333403235539123427599100387356172864940690466997071917436918747635006552621579748492238096352338546418208673005553478992666388706384752573339404443387906728595856201487567791904890976586290499457461567509111506447562017180313571856038780786897359872706953079206741421576378091102095457321154521621565709317987295369497467627818817536058175336442808317927379708591166985834545830540257895219045485908917178895233252944755432154141621537289465379733179719989281194360314976231606006720799148413997598460274318723187515107414051630122264288899673270552825781603428005523547190063552088829930825776695827498743827192251843662992730630522279430297016117528934518201737230410720281927544182752289130312934116843446434349519938129799434565282561639629427678885254784277130006932330047162684736615437665453464575321656815640257607076037950743209000965713647526666007212132823571269902519641561490540360803421759616677023630488636167248013350658838242834734286711356302254472423103150368417194285236241600412826866946571353562209648857673927848701188904360561187427507338399094955363688947146724093494286409012193084434135786376123153752791409420212804278415591534352790340646785029776502129998887771640261978524285906590017247722157517488333512025353695600463529996574644506716094485150806680179938798951968179742870697183723475015303344527465620435500336370966376188127613423653186864853003122388162724682998178918354383060925881608164931418280250975351492909004596226170109977310878166914765090950370886257370660675655683730866570056926851168620114449417044428563743144502494017005966154898045793319777251984508607932981750868566031476229697763747820265381419694998795878382782030507828481060851565757809928093380574012866188421803092177261682527036522128359169720397582851243799396387525713653987924886448613085093838574417146521543888173046575676764013847470310732818886916565817274698763531482481760391742279888979542973514301264214651868111992931068284764436485193268689703256492567529635212359881458241505020898094997806199884834482669119679898269285956629866697386540101716441002290050922730917985335417925562028197254760254916205565986803270816244185832880448015278117739923994107280803017605586244976565847987926434496895105500876450466067307115787055372303302330384545531972250140775184757113430995738213129617054530651404428861485449796428257174926310222746754347911502269252149778683640733939755610289292399782777398959781154096685985585294830823876486100990233867436457343621266752097611962420295659876908352923251775547896049835359503914168690259154143811287716606602547891175391874983231204224818383120578766061787306987579536514968609942498603486306352702972386416490791172800257632518532606953259906501029647613497432358343543972861970652486173983457761614929034447914638644188309730076353021326054595782867635045117427023318688124966241838932764714515492421343386345299784148611144389670338395786505549847508773058198365101323061734912712997588366248008943590021334742473229316996923455923429662871003399109066146966150145100991813412724933906750518168308542826473088414274725561263216127968555668888350167832368134058602860933329199638287492496127482753304071410983968957625456723472049885566761245991129125680467377280376433942085913259542222230216909320003985536514447295898756386215970404348479344681171967838132472504681977700186104908373183689216043432638702375313529854532511430296445480435021127177443126341668243117752167489922656770075503827322673728962628103486113106754554169409999211899426155475194493279437728298751202518842321515107247380279709075409100080636794582708131347872105940269649383777166637236181015209394523746660335241181202007859194433039014343421516544447642048962305888717404373798993967519951162110206875216682575869843715059663561543031598191770425260356347530462724100917155627449404584900601615678420938365115073601862663674512636101337323854364153726788640920376701305123938357328696788295204274981650034326790214725765260123263766570856013432555718779374261814556179171161197284465863933327904060163243099404757290476017124961067242459235979343880138680516905893130747807370795326132896561230934141217056866391183742289767130661307106824088330506921913761906226003811614687404747024321889157908479235077707486684043429155691285489405477891066487196940952592786934941152348113071564783888776465303900523475011976563034985961018965918991101751886823612684973556687258183146873966381466490755436202190909937261044766228577826420398826370112946540615545481548513296124459902007949413208606119085899005094934104536687613468849215702340360379429556181091627029477160945880531451939691057293147091954469047476457981768930293396394763296265679296245031834517279441367275939706611442523107942236715833017859820291528163832594514964058051692385043432791972003293404918306331730026797214294608779741214983842908649994503795078017443421652437320582017281796801474725533263671905999875122997527707984974456397915620088214209566772163129957014075908365596689863145935036035688354759484120313596598573947974605557018352972371837587723918164248805105562437790902011292699704617532085871624402917339007028261036022952119476876401548934230113110284922232786149331321469243583242700613405065291580558979417577447384598120273921740220955667420302452721289428401970490796810526603690670252749939736803760355107017516287246070081381860010753374896362718144657555791843756229240334561075843688344161915901160674302331303331618068773981183400265968348238104852693383265099248819327009877585395731438159953328532413393718866432390371152055914581749934938431532364046292123150171414530742531397112769151162873399882317958428978034533860182924584866584435345067507290436969349800591764365905547895737226693734798427058458528956426076097926585881797612150875228423341445472334891406031129743986371261531357539916922911152081220179144695928773721466022558598897677722530147858101733449220511906710890768680852369593490969315541102488755273816437044596223053055382766289484538101757914932017118418827301211414676544562303624343477292099454548315356374552835454194013716236102312456989457731656708782698780937979511856861698010662306320917580094629967188593614502011665275080358166899067242698913126924396837033357692203977982932517667981805592804299351980700629433796656780836485843929094729995439099744819009528784139174026982263679764230115545139613766963922172562647976666202108407550802651622174925533627002235063917985809718244450130963073717795570207574766059417347890109995197305538199568657706444697504369461369640536571888034986983127996585426079267207651380572809310709091299200201063172368657328763669132367344311705915288180303910234495345603649997135912820567350146787393545217343906204633525347992072990932575009368023502504258133122629053447858802068725725198098117930800342470384726329169405654481718721424318362161716047097025234047976278220169378337510382444643946927242028460447322040945652385515785095274207594274346287568228948760394659833925382164769971908547072705661515313098631058120048209847806082104144959533850805095401470508224746418473602527835231930254836086932263882193729010698254217860860176551855098067844247838563861179265135245683659521929267732864199735683962655323720156017825674673774549771665880674136979534065731982765974342235786919691576602510585481591325275554577606108435795909830069156596305930686464237595983816902542617187513838349023192592785674178994388329662278275027353769111398455394689116293249682815363630797492592515609779678411184026679417580521065379224944151666789591626176019081413757641290930423086119279450727810229642757558065260125935142133101235392030865315440482957460469675528221637433314867987332230241621586275658608106803135811117340728748723026206128614573179139923618481653837542962476974056836244242672883309074958663108682318467271382621013379967567233196326727776663743780614633328809226403529749079890287107470698837063398042584598270389990029003244711544140014301302962707334149556568449896366112633022464257648943116497742752465282475607450895150727616283951179687639990235937039015146929498458786669777724794502289503431586549541620857286665401008048419215132023310783100308792262032252671601236774616940862849690967509557382644715362535497393230914985151417186177568792724268471802284222170392483289467429220449021408811740747437441924943972395072984748608532150674996903666167434790113979253433477694523758411810983556799425896846537418791684089472288851488168577801337439967217993326659620121871560513417451125018225508496789513796486645855658017067238171181127047943323336015003110071057623378654555092999562315977551714765825414510378094940186351943543631872631519488926854985026473718546555447257843462967046208906111582644048380220754272128627057628220816326806491603449672740681940467346700549542228640778829114842225947860677599851415698234026991979542082160152188660228883485696458902585880034909345679652626143210042173856495170440016285702070110827634442517346347503028532725634446864553465502515385606757168758513011076760106692259030902396999148400030634718768965516032021106033753803914878986956836355692782511087368024588506455054163388476776441248807731264571474061081670848335895437612347656112629857871319978144413052696801940183784808373320250013228131195372475948950726243431077612262535198895547283970600509918155743442782706775322162794015884711214979657642165504469108675835327681764082370804601865199345961928361284886095356113707532635861604632384125410596597904300159224650661411241724802747417404365390328037775775742527758962631197899598127728991762966920302315398065819740867509848104981313889504232430735396304953099588392629994966496332850705185075707787739980498976103525511077793673264897866015017157947582486154081381638703305406293742696815717612018875174308247253155559229194151716695657841304570323552049164938019839228476323850666107723437382520399752234781640611381259208415438300531094386333336533063238121002230305380834904494580981212225943687939243587449541630827488379146906934673193415539068068005956263054886000213822670638797897388898589838422439653172855445048432620401472384511538411378142827090926900905409242594506558951875481069680238948600780487855568066542076820017071372959343423113569753433406718263999614986242390124400949933825041059457118599326414770246228302078757608272154242412777113332185727636049478489405535890665898637427265409143160753791477104645074409061513822295492810835555382811725693726005948068876006203561991601068411319500941989324961643603460028377276765964210845279306481067254111639594168601177514975187260186982900415696534831495270639767902962777397824149872508154610724454476208109354127514607409461708049933138320938171293056021279205373230386848937066023808594275773290305889739852234240653033091230247176647686399440093888951300523456343069074829745368753573916198236734463511949568399245342964341451896514986680681159328980315511810459998064595735452975802429189138963456484156448419850424022609284202589559861717165117170175996790813030447756690912532862572226654321912614249448954418580434261603614910379743877807552452872600677028658601442579143558912840538501678116308865622317302647853434439846739260442300969495170946195512854091899015079663430468323205599786295919336549511439148519757521776387254227721294461659482988858705096515902630048520876636934776146418378483368232847770703686158722014655583683320416992434648857256636799102025176503376198237681736309676964111612237320793100283718696144309808681206581367913303021755515851619615578758932238323735855464011589824564926584329423494617720504400215978621163263277655228674251330674909619537227092102306617694436464512837190033205026408465044845475612598976927368289627162947703862450004465404910947745010797107957477795521349243266208646469366910603248240092972573262508809190363349191781992094453653658520812738983331680231381733344093209651788634206194693891350834136277643739702047946652928698593902387968819008462344860685878415008110590920525078662633815533540559377893419097301033844882418638849034448156865847720970941861521659573206210328904470729190382105175117956959114945588780811408958620208036143003341415482490877939262125172575892569109009586286955975179869566597763776327807708735838002954445269256292752937584693269791075416757750135693491777382382166267729289716606995347637061661555178584321553437325393223306576885939429918696725710401216368584620916474728065367037974301948877786751775018603623133598843210828018243182662047387243732036248831988398692996109439371931652053654048053346838851075379378696366554726286445403246232810195631076246984483596017208191990203049914412415962402427032112143163760908901237189616841761006718562944674706087953657320712333222304331859679571391992158196301920503327842898168526683425591514871119425744963634733953830892447049390976074245120236529790425547373650930852457764373605789655994807301391040882110908501193118006762428864042438826292268907150508596056969313221870851121370887297472384283524059251473422610559487859826571918155758894760105290571941488024550459464196501891496619639614785296787986287410232121007885807239184306979526625313760837537893984267000583721789971328492593733966922261111748959070002270516181394257177712073317584259496623681292256844166137743442906538950916348916238353847199284252074882763922057468330926523671006418929166831965101037786595303947711815513734317502715207631978096355417387069036314357892924245542956236907208268535784823207546224915602226121270039343779333071786022977326586440916803232465613278097188863326410840554689988637788272753682373386600421143842458075998141629839199913506117643553347615128277458094579576719527428035914997039155791871583781811580455685318966443506867945258475621801297104082727077297896356436460654252309270960978907833297857246805268022916595979236807752991537282532800608160849224054112103046016563344295835269104685437341174993421515382551674362044605431094156143723187791308122640037407385658531374853538812354286874315578341134092125520735962153643120037511641124565954109029562655651143945568257825824800385230363197206847159579804490893614024375975519738726123752442166052851687004429995700120520625092371472120985918182260300636181613355292056921993398155065556904123759096664019622487284115987668899786899155236082291029070603171241086470540654608652596096057689730988925131850924629783895874261804637886277300879936349933557961308949216434076017848206911554293548346735230396786511551419727354981338582168375568407248460703437558963894539652826607588904484090080435659840940364628604849148686007480386231600939298930916026994242899975318838284455715314478688732936227830063535992993497955535798375377566445641268342061921203961164513616348967404001494103670386260067069968500594946167570457044990544785827988589034247425980247763493068831012277786878306633692539144128940670780716491313007194370936036201911664535138596311901094977272273836353960969501128550328501619359817760132352610683765789693570863558190067932747853562007742267218486441005893071559178045518428055200215105882753028365221027181195617743336623322740522437581815803559183782418108643663710230036912240722520778562533028529877722490282524085336645806888816558518776239336462459950634099984648007010122777219526269131348909866027530529599680216183394679084007674021437962028170255584482745388446313236083352983926590173844591879875370064738381833713573559696372034210548806278022121603224781021133295874708065848642502883729554986811382285023911869286471884293177215162010729913330737471440861717821790203452378592430947693778315465020873533601028281340658253139999170782516711437212359044488849462582711243802258229296818987203263795103340849856679428532588316553794715676381328381497709313424118176914110445668791717330702542451967375344671827740385178369458938595933265756201454791494690818410030926162464534517694663211294612193901882472540000385445122573802138852978636298765839589803679437139987219703399136321164721220113293814545797011776282679156588163275282777559771136537407739012343483476911779903207912347072782578019376236575707990763256599907056026215072892945253721988207827975158894681748163773874478615214907187228380422150577933999032724646826877536198212174816612052785451532296803663802944385233967324573070624958521635917911913577490345319858056215978072575359313481784996614529493048583202261347289805544408763735978606343744242996728325111051527109982387214654926210373957872085855966949642118656124248913820494027109494492743868169912210653638402768179630564001990781725864230112403257476954955590668994176018973234697560674502567316746689700617547248385679819204947355397766711598726010549100874884776456020320581740802613404404491880453775070990059816473621252409018319452709282707478090711291986713698229188730431897654682953782590096861246771027824915596838694791414735365223620122933452819834297488085152875629844938854366296601297600996382231413162551442759629240894651563548161150336827103864587142009407168508986185276793283544706878641943838851356032372491451950121406006195915872522243972197723533630475532547004741263613166556149385643153010342628674662097444013283535605068524696690418267928809818793319874351162314560726190683275396434648497387722016978286731996325502166726974321113985668416170852344835732454855519139205169813011199852197012478290276686537396420313946305763704035580673149944609197403070771145246470503580081827838853348992049549195403644191596123437484482401794322544340262058215401224300284857044818310641695071676520729196219821315897601444997100182232095155839747298116299518715815884194198588333636598602397517966685876235525755075777871590117982905212024263502481075503828534251706132756074316465729249270179191437360937528903921833263247258445091506699768067630851099703050896304709536493059675007614354300907003328905902324162318163749400600297372586048845152954920487024623521061571172882275065903065909703196565818330383574974725288175569989251198234296813790217793568470831209329278544424274043464430831928565465646193339738440811520191686743092018075521816804003409457054124041798967937780851100769126631479903680199974778412240254690786847064046663905359094807844023454326957484884992713351532130056128368771901433574110381799956911782788509023176840860876336682292794862203332281858167464266240822987815713676270694239087679917243081009787022853471378073356756059527858033775742406646156872052185904083778986998674956834713425852908271216763966141744157418748502164301020593795616904560857216274161270034728274248348429816959196503271054755747236259012140780787239069040593596824019785917996800222495605439447119299925509376992464371705808475639041177252916083629633011634492413365457382282429809699869830737686314659262515432259779852863649977979326747623049953393921749654099664597656610873901276497382152010344773520705422466218972604358385796071775786528681345940968867781766691369871562529803196287885351406495048489060147530841479673275938262918573936659091032480258277639629785417585811350358043574790348607572191460942802795083405769892565190071405453213137150864812713236256059412496154747884262395997577012522686256797761498649863652703401574191056915744649545341989144495048970658563895015552345253221623498170510919661235795242442396796436158874851408739363084358994532284088003629806396389112413653237636314250082762204407454608390237566384532066654854394363751856583931158518932324554030190039093901172844406497482006632928726798607242964538461989443986241444902451239161856033659339952775524741321779594119992266175629129851746351860952341340765015901113188808259351832306035168623016127149121688212188807269451373132079798645787947701657327431686399019628695299941220101362267771440027946899833291412456899524770509365929878779652907039750189507327940052487206556934102507529360302754170504445666669391022838391704742985412993258595571843893096008536458136361704107035178306944553868553694152026784819088583507787811825679801455122823159004272661284545684542812122471776765014934290273186401622274792711678223361584545269123340981123360145851307399723648883411754103983887903264200230298605900858827902589791355456046632356753231895461578214624729283953487337476831271960278172540953234583561497342806221025595552465046386628732256684860924719777113618154165986423439082213588303178206930560317454486693432452513083995673355279084728683551154337304579890775551915150579634004697896301072719045613382265041797872752241508190683206727161829044004162930658763160298880382201570462984541301109967625143457997534471199457867027386835210714425086734558798808221016974050382928052283549079648944235586901634544310520706671279827333027567381222182360976799168957347353797345915088075667654864458663965137787409686207702548367675967383104481882330996442324453863716456182115441353615807361007152101450280954979370842098098116601465664482054066855077711001506831756891091119303877498971275248395983012704092135855546407404589825418761927723133071395822349915592072116610189120704185201006114755351236527693498040123003099693478397029924076000586690835072775432911960006851810966973434521748848054762454851010499080475722449218816971062670344984056840900854784688365776850622568824004306183078993405949731815459256904058930739291720875940892237969177471315885877257964521449022573534917134555900059038795040754456331701475514873125290336725136414488591756824394123804216683872559140346931036364945696158066199240257943220076565318789494426372816104944884773749336806240570915555041310511776523182260379871621932813275008365577741573355044619412149818514505415607175783745060707724016132004386915154030400212075305275907998114020229907196076668930327001030683842001455429032012239554570742128009312696782447888662497590275696546850673700684273203347643340107896296123004490116630959763795154104559421990931866811572258991191877015071478562836869827895584829849028767793724451455753263125967556334480230921057207641583533223221901359622806218560916594434515391836590154622521742337623192214948012464261192514589191441025543178007882180398690773187038900356847508400813333468110802975482183521227776999290199609736736088416908982525329571708821312421481287464674294786519483073260084873351726867926096963746999004429318896920113805175204810927949624092634834647803771281665864307504406921636788540320378953241596512043467588147808272989377152083388525097826803246253910562964624788851497917920625488249146772772678336889328742792711391221580118413645382382292617783042361648660605615074307436890458616744035351063911779263617577058178299644707663932840254705939846337094588773853079332924868218337502616524936972563891802445104971218583196538801483400246425218784149797336804425373949930981246477883518054483971772735742199633891659050509865139123574249003070811513674451097056677210083706064393691308907807871004811002087038558200279343680511221554402432922956503609458359024744256266833393811424296309256328960150642366737454722312755050223154836074965058660908900243922827916251734414873647223514945926528738030598674703550131064567125391848493739253032028215992229498799735394262416438046298543906421048878915296867320075284737971527768249197702945135275837422783608937884725999275013965515494673810582312633940138132020047470965557015079679703635935857308655266548444067097725538052111398098653871694871751419407135903696281868504260576961860302555004428504651408797896480859776872932388090637203091752801511655160771006825762712508012330901310367760453657359506333489264177248535596428791004512718596152875677077689855590826753569159829460257389077144536983112648299378569192106158853144707970613527841496056653209127017325057971151682376342326672230278784862235022439978244150548807832540924424087011014347524930474860824593781128453273758951794334581232279952123450191291831490840428900228568167440463579722526571095838786727005538099309594381164613333919498476413944347927718239709401094180895711251702784005385382343275726814925426596004677472795064197266574622317610095441847083185116331756080569857804168500993280070022815685190645180539859927273714693850552315587935548177998625769699013608272577832215114807253135901719829471029235101369054250061875973691977288987225857883370833454887922072779903577172855702651322551078222363753765474684849251077735795560868455940206826455615484507554157390055914438233518033483563148020814177316340840414909087365305086568684919160736154071965621528397539170329388573155326735902472492309655287517486711457648857040300638507893107299051520070746560948399020792533061154839540245273065544714399694348667265655242213480182518337455810961148306834309176162084505533761106939024985714273682161476975758785483000353817808077537731706351685960754452344933161686717250545617654212804775580283438023054772780870752514963104907712833381162285369073418317532579940186290984730536447318875634150254519570705725117191526405063564730750683475755571553987603541741589867659588032202827697244549228113817876442914014945164351399661887818711741226840536592194370008905609384801679347108390117677499616279328026629404273981297666951958853840281140565835342435006369233683250415808452533122709746021403565503581854108874167076568693765099736326202002361938750449192303950001622531657399249832391372147027327639547306756386646121728648571281438906862285664511481916553309794305289385485382943557798075412295991225069776533965326907927711672689623082647578150692117251108261084878709216730832965949234381632079973519368504225742118651200202294964198353488007402958633733613723824558956836044945914353157050028717954191115549725323230698851868169134452460540696770934975063782320846436951863222360515568098725445595189331989564548883966613060696588602642635509501812658910003544180499621005439105126576037443636433681804781154966398502540433127656715746443117502670722661724450659264867183027277978544117252197461845174256646116154770562903404552204087084234415467235770320605324127222895466591704931167975366837767072819419341574646335499059924265942370090327317124125947536641519201876303688275587280957145371124369615289728071605150121358656852491260783375676091520462660402759416312268400380901007746496073474851010435114035684630598714678379473209561777835218305768844854791657535960529224796513086709585024685659495203056736751544100263083944950348108123467744601424700795113713827132021111926347357754438338258142407868746838356272068261008118399394149473772017008946048658900956623976999323077958731190483592129728736297115121797885830586684686592326077842328632271467420252212266832414160507006440211328502549211773170531566934326452706163999234389296964168843199174526766601490800886505054928018582707148897422878518757187594832481504376303089280969305000669571486971109628259233347379814909586340870356093038066774733982464574589874781222938584104600494114232340892348190184207546520485874002780745904534971317348021679967882580781930296734660887458559713649618180075314861002005577902769569393098293957250548955085837582126110970866233421879992368609383053988961661818299034271237801570536269904335820705036059226596624058545939558295653306442081888425326329034446986011456166287225361286934707220896382684726376029876320384606133705703748492783679884260531245891761850035981633924436445477547339127196371307185302162684958769575731044709627364530901562325786426335353437062455170848462701591799941344897744591488540456606315273864374832574977953454614626140032929272364945054054292159257234700907893904169006117258332796988011344686377310277196795407489086654384785878110886846921127621189606021711086677033120802889317480302269907416351330823333179518540633515897648289890240619283294435137098752241186968017729737448456077129824478613609327202085539218777837049176026004556793636719623400969712185810718982627907931844108325089509277308635643423037759927961966177831549701541343364519251355344962982955825717513938713133270149438486589961471496451621121675064239968538846400077731415199601398293899994550639195374440665465796488716335748768577755695000649137227579756172991305237570320331495650197127472590690285021070045971831234833550846998038794673816077962895465445566543284937678804252291429228012829344864162418844009604426557910898978847891820810732403623876976550601620998275616664415917779411272503387967019790259461210212662387302829767138278021786121410650456664295744722829300347154490447449710546516665920090239932526456433747770006126182117420773112304207327062182718800786709148767032884547248235603431527409257652193944147247667246662875850989507435809485007857380075847546535770679947018654891113678013082201187213211140035416390129659725885290519956589922492109298690736397688152296054862824155116400508144616204948499360154201671401817428035896622086832031329241216721054876840576691971197315549273059143087449786597204584901609557402465383197442797021386541336190609397669251556694619295247312516978224272462375999870901532862995074188172178837614610830806961167008713674361389960860311494810280818772434931004292121551887636206684675067679559165381943938304572247008200204537469934626512143563143038354164003883142438254149357807043717730110023562609585877489289318288729002076646822256896666438108333262353359938866621782018334645229671914762466584747473560640217193171086958745634832922840836297775096271122247095706303492318632941823168597996910551466943456743266768464594122432125517776413880948935166023692032307971975786707643054443602690412978603813208899485352484221681839851943525313383157775398595787198830010200073404258603069015848748045481825928190466623863998334134599015137687170732458743872225625379657621504294792990765739990614189208977143426550811537895656168081232510968456873681571105918799157579361346745672750678787339326196564606354139624287690035178391270689013904189471531972161985425301403085451218338661526627366439887572660213648531227622973306611953511171581759749315080477911551724350971917511812036962734044970736320119683620397940673800067126124016809165279282602852370211218511206979387167377513008895035323629685940319440164306607945064424887535251770697672573717165838556426417789912720680128116147350043292150696624262734778854836704545230864979845215971518163845754189813367857547845094308085555846139350050158261190691101996960664955764189335675430042487755744994544795863215844493965286284328452304164403527069871330872254896211077569231096485434684230673621815966196566167793453774671336451966495579270446308224255134100167987765056600821899561940032863824620721078781066668571815240381365810657455798866882133597494524056338202344196960717998244512626850140078075094112136285112837805505044685079364444420516334078425172655014100278803769842424352700771977855250668398849841680602152590609944670459875371931700812892347483161633395055461366385611527363733917989802401302165953758584156745301780064736931082354959042204108121807595069162298487229257933954780444461595486051999085019289197770664137977934105508087685518629258460259052672102419591425651685022025746871136353762095945333033754849012268250274833902639533482029477694525303813686099482575093115746290089534735412331404828359246472522617981970535503089712084592497866779265035233794798813511737874152883845400101736443648995145208082185680950828433048244789417091512121724051547370209355460515533728926414273486457787101302844052254858327394467982785029607719090364424600627959738128189665715968074000840048585810927815628873267763108915551748205044267150642404455310950646326291575031627918940985663782790848003823779936198803604424579677934149214032401488688076228691597802501727534103095561584273940260675153329425953230793334305957194720891918054749021439988277815363719611018339254135099137814915827083007331833860033651073600734403918563681365585593145254817672570011599088007318286206647593165654279029463345130151284924611863018255751908125427646482645499621682072800711878210843502861105772219407323565569645105711180976744029805152897439367356083249125741949432807654009437191388500228645202686919508735324892573914819454265875817729789568883581235211344479209656564652675550852749222971462608865848514977853581640495858886978661729752751998907179918210890255303547559020333506961113280663546971794539152985022685228551917020332078369873819453822143290213390621205942859209380923103443567681539702024491903398595726437804617570604726845209908400231071894868792202177488542827376886463613349126404493816009269690423775592367270055994097975505019709510259856935859178032966445355338948552704270397438776873362967387958054649165906203453902631532996559778207747091011939882895943634280237846785847522372545807510740733212976805025968814063591345959673331674390419193951682052038975474158188854187432206980874051935126748682109258704464341746087610597010555617673168652699586971498127166388700703446052416411446977952779670869861002157114083163945782827033030114046393886109510859228249232376572458014782607266883797762743249987740195276836063335156910545695474489751843651081672413695548448070020480087389674852614123171787322209589000944302756035119847566663347204574026389296876519016248870221517387208324996482440526983382109198655390428655184800517062199016542687107955652989437914836607331803149992966084056138806045734218818300365337390429937107879358556263991444860151837733034153391379145190426235396048162257621356187884039034338484314001300325508501056565109715258038368962139664314809047171146327882233288624622282198592250188832183186524566942793282039433201739628217638257650938185973626890529368020256238799130417582590973157585404763298192025932486524372491256107365063250702557875167543440582800938408629820366864551966928079300246547805807919758682825349234675213190885428482134630783605333376094816643859490793888361498744218482036295824528094246187790623768222048843400775879273607479995755756366981262009479142457911332252819966439045113434297511455917319493491553125787987510765287868420818744864598525563761834856844448017646060279386941409866608289777098172269843839192883729471526390990357847654878929243940827424744730325691474475848621400989370004650540343356602954303599549492034135334225920837588564925678019208378993770626242415220636318049427088749362553335263952573951175556646288507950677853376468847708576435850554041004920003361987294458009646601160767650106735119527079293278644971295037667785481934152135336283742658149229820335035828989500581461044753657570397947657515769939334742420837553650703030511212825977558753004249218382302567087289775569602836759147677409802590809070899390769951752176927545531308752120546166316618426775162937591320972276238788154087252466434103003042181024105142940551180610986699855821673229424868290539108542524589726560957296840222250981417014703177445919530846948655184584947499181715979491213725752310561235195310444138600192624404132532594110467819282903272235573051655769234428291097869097325254489069551506964728194055188859255590611438870499914143784475819076768313679189834639753964304887463000076401920200125775316890735022825301804596243884402706629276672345427491941827377472161505055119617516905232911918642251833348423035512648039799442666328091771596696648866032654231232541427291660368352991332599022510144343641255256835026346484408620387195802534129735909004908944078133365618826257361967387730447463877977363904019892997781665816596661298833352019657957144062939223330183337070065930373264099727265209605856805231499706789339774368702199923917573848218956933185481463117411916117176948870823885324300855924238862397605951223106096754104009568705025314108292241087046808788980017130387934456030466511250480426533782120499049671427196731280952079134983181222589020617149916397049859714430209403640633128934624458448301390215082652698714595248661176224233016965624368594304842275151334342272370717941666863205047716884094572567265419571563342921884103374058568545884355759456498527530808577250920950761618999560468457762856900479995448153667293444442616009275155284102389020347243809070231336728560596440371177796907686855604349129588908263651775207005818410858083176196573601343322219975936067265819651568427434078858433929116142409726844055319434758362940305451709887392732064044163432377250848346573170553663738858708443671526355543786281774313407879241850789292055184790498792909263873082004377407084956650345115303340274396478536655482184091787871281046837126302833154444256652530502281427551175897151308891161848329926785139236010110884026327769342125334828096660027958195715556082630643051614571554345277496321090634711902702531901186572340634986462699226571331085177023018026080870756229538527768800724255000009234390247108262919854644843407648742578956739947656396671887601386890719212764096417065971926425093066947938015614861354530160654870397514778905299286223058048624687180532809961463662922265855122225381007195075909613681084421468870933010134672939356216370004779707155683842366548562687893435240819433192721165002300416567987932183557188222385124679817725774579145525046104432817168613514294774994607225601418965969516800225341929084302145609094197368500801166714587920813425638999883311942187699139619949780112373601094141761984186917671145338339952971979143617563389227243474241760002846541335521496945427688046053140632476399720826652933285765470012751850180236734671038654066076320736535210773870089360328818282488963673355198404488501921063165386017932456411307905567862735050138271724710577694499908761886271376269561607414616611932726529980969214174867883763465749930551590712948898758816941858142083587368160249492023337608760834172853428691264467878627482387880069819342413727138551275245938430992777687836192354153983534511343275535626039533059085017977648484080015910373688670906254885980950108962101945871023055487568033828587054231479678182132491078212762136334704960062919215528691951262514592373988598513288509721946303278744287386261776431266352729262706199971245082852412421045561829077863949759047594289690844532404367931616596062593752269559142054231070177874870855177606923685724206611736494271727323566718449971238058488193273948864347821729031076239712824546825558554239193381909750664535118185440622881953490100273371905897860962071011981774111633525317804959370559654127217246794305230980900527411137448557191685940769461580818932411326416540763218075116852792247060557475592059902377708905138041489720918024356846346743453359803209829999049677431151208136732572206813149874176647613920400615922165801959161514935494898185270573381524665749947873836553783037288058788011271753761342226646910106934909110509883761195971967407457484774984561135764106411374729692359714656338685767319948201027301669761970952431366348733432229890677381333811785981870766475240284682402001580088741693851129754745235646555135037806731493608576316653306447784831493584061117364077855573494982919486145734454163362450223813427468902392014421558105376211163019410121238566462291898161675708664584490380010245024111066041254941027876654060758038937349988102617941145379245719446927710215727277972881737385946683164193332515447087180592608495597618955790083679280041441851116012345060926087286440266088677192218333299531255834700855646813383537519038576190567158368919892872681965511825781809237410022110919853551215828253405856303262518907331219553243957768183753584282825858521033070021353327282491709340503802390713273372618334965064993900105007547812686908926369040499743924326953203364033208768438871481627731250186988204606556308014331042088920581374194842443540172932264906728110861947176325030598616198572801899233632431893645629428026556873554616041277857882863693826168201387980824425396985644531902458531541258054078618252790779626871388283367726991550471843030716693278344285039952951241204047132695728617838895977017599013709191951350868542859498739186552100525955345529902049324970473759675393191376106725637616255587858715325462241196634794278393273858535692833133855483710160275312786393133129079554144263693584032090306985008174545619959441158782412884495989213683882338498407257965837666514045376352065876416138915354280710786438721078596920800481428132125553618387781491600628502149081331428361506559052597947915788311375246353757871543214700877120348945134971587928623874645889447231504083723148382142024933564275704343848526103769282482780194463688796831457930293977192653317960687756451324253754849101132611063401600372285778540018137127337317111302318297606761969301177732963282993743505158922632337144539138261466274342565567424890357688969565834602975707254524586204437289603201371474226808379022642371959972104500237758319721085291490758748486151484554308326791146523417177720355789721474526354763531710089242367492479043724071496016792503021931483393284643483980329787431891358952466439446827327407808669331341814229026899637741931709914221367252515345317571368347427515932412658670821878874305887012348372673735179765307116847356428933488178645882333218191148214848232882911390139015897017246062666505390031550273124455342372695823119837616844821508312905372039431989096621583356948196032154184503793718367769630806651557710276635199088133326475959116103014208602209053182355358622123170460190807910280813059109549179645894223145058102792634491148937081514814933567865886866752679165590390094009513965427337613342857335108609417098902527928440470121115554239018126578380276229370800434487012754527118315973707998860512210624869900545549192114382668265867187395581749333807895469115133467225150512645185106233098246495948186020663030362852974935809562364605107357428445692844228627507144260210160855421540342570727174458366920375676184442618572054455824645125319154194802647650876044717955069608022563290040049459266321327578378946628996082476463315361329303812229075541562450706585387874479989133080699260335155384087530298186390359869765865636931545865649157296619542369575732852922829204993997674586021271149439501797531225196340559097751585505199579120636853019117729178325976553571317865166189958410803536935564116969392314616952257190065900860337618261220715695789987499993764578157733652779646641400813862897382001998842271757583058031620362226675092270081815119134366824617024031008959857032434440228105479211300354914912225826600701028637693331159020213948335253352640812035032907503427235919252361295052145075190840109812471607976537200674118820448565085526248302291936115170574473033386566315837748328733837242136412587971642636122751915979722225465697594678297057828692112043843007973648788655291698097028572835472876997637009305379726740243204227396748866896653991716338477326827716991439281620327763541832405983677677514168758585322733310494058576862437664973459876289447373990309961990640963762562746540613717536666350295975894395645167307546882764726070819666342917594533974889159502444160733587332051481675889770945284487008219079651436827603251501774413969196803059030052175591325945679512989749223064067930507607925727285949946080241013247373056475698197328947341585838775690966391718818845743716721365517187338056672521422887811356937662011272457454731164107242893029940665566181891516829396279047004898402651543396314489729402156420584764973701591149343622140356448413620764538240386666404626287185030744421926672514567599847107782636281155167609080327564377230287067447157874588447544769238106332749898723254125949125818647953764988022353737090826547576892881353518599817489455898552866132381595695816704204721585983807174524893824801328900637053089275552969148674692492202067094081861401185010728365983693820838817975588097861689092934890461991139403020564093137658850290913906006094784890688257814795173194464001361947509634392309810100536910898131077807544608441738690638983687859010511742214285383118205229837124064231550378007081045780001351353957740537421654603938595179094440239004943693586507769950843768940584452545083730621860868833543110148581297672102276961899739994892497929929567361081358855220581805550171234281303307357246431863852675091544594827482346597206494899005803130688348536240192341666795309688036595101269830643381056182058420238617416970542118242793408041608624096728465729667144710252848348988818441336742392279440879837315952565261813762095011775559416946628791167878895575251775390601045685799851161582790622112078995003512592212944844827956608559494347499425911738777823204389082140462687864780467340744143904293607799457251653385071726358469007193749093208565834203009814842604622768147023222956064198963313940599059348897489040630332017217553631238088603758895200850991589982935406495438900717010209385195162676431272229945804248476383907709151428708490038322348390128158406548192065539178454371777756457197265792184133313669573760755645985563549889474253395946177711008593731266892965877963834437823987892028275361281816909767397298189301658854339108270500670383682818112516944115102679132869591057758611296897589180085627812869895850413796681909745918645468199336488281420150576738422569369019350888871447267357465722832519632058763103822196052125692851762582328128547294686320085429627339498638388782406343102283563496353865005051972564866365253476510047376090880675962617757889557449017946089582546178838031493590604071278000988536741932519728735871250635106228758552461528599957480355547015346731749075318959179924315899960990181478549680804299834601988573485394246353110459074562357216986625625261168811684911286664224633315706939856809724747330987574604375610745580863016366463329634662581283736588530672606672992734883137494085751595233543546244105818292456389027672440385363890641998369257064141604287920189456161483368413856040858278881433251958846905933303839643947925900185767360999991337362083714810526166775048507261035886305190875124762365582398313590079098009610111389519329490886716750240925062136642093145105017878975391413414708459758338483028233144093428243681616056403192955879606292030986841368089241071585733685825010866779752154833473278837678747483080052196133524092810226610003010046623405721378904057098724931234579723773775105152130250009078576127083476521478017439382579397895041685991437743791211739668991113706272460850928269936450753718963133651026769662406169298172331864214441471558634686357242425343488424198708829839690368723206957322686983910622785465229339177833724269789481207527581149319161098133363161440940403799704063883836223989928987161944131979999483853168204610442694093508471641701079767375802805003360553544554947422582100043426534687978723005555297784843437827246028375435165321679809605192405782857288578283069887908516014025644269301747437327061351750975664538847302572766865144767035491947045606037758875547324238676904101130853344732699460651102264828148685171286538755310890848915738857939848127493074146569284114148321309763753326965133974541077485773097713379217628250539611382618216284021529325210415847540685541879145847038446772105479492005962123837753174437245328205097728732920771951964720215914788077946917567414712399865081181703171467626679751861520857747305263175039066638160312038534559797352787149633318305167480015014266616558587460484135078059460370655484541943718436520728812438266973624819498789391770578810921180575446182275609768772478555245565016624049106057665238505226956258973308251666925917164432815278228122469267550891834117186675506259168320016011458706434065376254451384795803844802347307594046712129357555766435223870260545277344353504596121934260703489640378380639136595936933386022476504168939488717057120788386379058609010542878907689407984651962537544718112718155440297184050815829506391979957116058266411313015254900338732152235273761101484755562531683868850924961173354163768802109648144841518250929512094476242594596953555434216423422331119514481038095916330851737273230822550126525503696651743099783030258128036857982526118657474287669199138180116055852870629396582002670517428707423584601577471619969053669598065908734881035457032544500692279369734656747351276009779086451473545795574977595849191518782158282892645183465981462556722585691556060798894640177675201174604907081677060729914709901445712393504556061042220485548535733451260022711589146449514841328999343616706161192785026505392246130182712728400819048370784619547691586400811401136336818511776437116807657381684893436136471117246290404911305979224367946605376067948087891011492746061844536942895005139786326289402172038391866863463294833988988006543264275639253686950340635258147036048517327194587360692619992003446758212407519025783214471109585271536842617958144593970130468012047606740798522233300450141224284257026550172279401197302545892576689694672690519568858296817722226161644485756652280473503303107032774703951673271049736918573079511435934603049784940728372671309802546314595311761350170787621646621199220049676466294312215394066750834552914595325620438590117747377315593705652237097153295441168506048674210724480502051868905853459400463720474807016979707666731463613176736686825698339694966478745149743676379938516482737000739044399623047884824166606604730600464132636253401924723422565147776147096222354859560917871084955416371990762649503129940833799642962950824564491400046291620443201667165680856078448838025079033310402406382870219695158675960862153859836863965270054541295554758660925586734376410084958547639048915868804224001742079857041642774720854836645538435788084104717340966256213103007777671143115853525443345839219389866686789647147691441675400541118776699505621374628156719064444567653698295014520191524255082650133462878016259398030230427195839791449119909412162439044405941214762066012151613885449121113006215105837313728677149250030878572057445889865748178679888957932674753364705984558148255511396074152246950638352678621223382095323991714961267871185312044033964278228269989044976018460501628684241191015058197421263388594510634508172184215762615801295857671570071567703847426473806799676747981832845668461624186758796069826615453851303494153823557528504337800963421609196592870761588786864694658341242174231876186865778414875447781773098227358740719652102182583902056346034763065950063449165736688389146912310269230354262740086670501662493988245448382853283632764673187324083374259171812822030644242345346478230948022084252683360795718657940299608921070915226634140931765562337703689452004994158160935778598166861238089792306948703325938781472257049526270499838785172553997002638611080951866925194030063476502985497234644730213820160164687755675177467680538781421722156320459058460129208040727100432156306103098368112327782417861915626713517180144066541228773027047227373047783498918962514177062904042975536568876252064416026785069653606469451715211304625484146643941524754631156220574151220229671348744154389465552145663349223601680969873915677041804966295532125940531996926738240608832604358307793078469030862529765727311600588465500036010227123519531377634728796677884347012449017380693651983859270776319049489084648516245646860189504474539961687603386305376989114633231734155865102721422486789119168415174491945004635310150902842150057037763237616349276803480888462752816490571313485313590000327922068378195403400400253108677385734432387706588933902816567979142700753721524389470825230563700409362443995412696176246608411611973277175015835048394569322644647564281075375699938076516343442152794653756418117355457481737324984372518518170794272962690883881164020076710964393854745613678031733864526114587046307783944536992488935829492921638363812343788459920122344224332758342525215941539321163700140551192667523620165468812038023609531422837437685490476914246988040545134963862367738049553170921416262234588160785914124650557932832682233967210989902580901646128090468425790857611293427208934112467958002485400722664076006577113886813199126546401054541103282086324907429668022856178414938234501075068745604670282465813522335119764861155469652027216154883996817689322578594014058179039158304615719766719569852079690227975542673667968063384240829520785840469688246055258853164984103376938740238714248157473883495713634538602688648001042547204321100411707259702893173489679830764431197276703250609523840718396213517356140927517359830347277971054196554052565655052246425811458936487059129412965976012175523072143620022095552756896328875338991281510949450996923103092224798419436698142086875156829847744525408593816555327084092234113824316106159785545174319383287811151684704758198813824577470416940439500264078567073743018476285254125161878503647408049052263174888796099316698502094249010105979848245042736300604813794978352553752323852840506420132902631835460612920824307604804690416210518969955603450228547546200452329937873346386746686381639871013324058134843358327959983854000657115859728746876477207842818109600812444179890289137365493221182471952094292812558543226194084856691440796326756268145429230524015352216520725144672091299059079897907646041178339241601860341560954519707315389995798675515284741083213488546796639634443981310132129251241024600855134527128752219451841344342240372722169661343746846810103070319328232761119612915087909205155832039607341795335288006085403584041418162247170408731498835821180186603717608563074246141462492723698136302297729323150732439418257035244857987245832661850487102964113255323189984252214360116845444244534980515757990038088018624555245690091289886673738032615125046709740201507608643484565373047764965864760441821531692043227849565163723650750389117916903527485402878912586223750009352778433589457101448615220695747451706688816819663521679987984306434948111087439668042055803152713575988318611645898590520720904729064561619500690303701869455732577437139788866706143991700807034043814624013237645393420273851424936829587376546975821149167991401581410765234582779414231708341167690322334847665740880324270358856275047733637733017529073648830401061209929258854637520716428712203987989654093738266010331338791324177352624376920382542390417409506722245232747280693588612835937771049778365348182846817470491611886854758210734499975504832267268846621093571979288023137808664875851161188833752775345989349981051390277545178947686014590386733969979305420689765637508207519059899026218448144589043877506901916401855223363561993051395195648215599777302909230789183930945469171465800436971472640686180170516560836285849881020130127825527152581566008304999182359792847372439042315474079782390252938847919517219631862844416138976235468692987502516871190583801113014805646688986561323730856035762567494081816082800041662601628568831569699693174065606058124678625330209707488290617115845188772345520434743045472169823506711248887371070526921380080679114326761078176732910560719981555539337898955475030451751605920098510803360994414035796479481852366738349773505204868258133292800477671681399940898428557208357076699540133630231722077663573862922546877719985287590070265624853347972270344257911346532729306390066993414824169102434012930266845012104503580519049587713328130152380451141981554808689477961451793861942104482425174248842535744475201090150850659904730800068552168629680468818602523845318742167419064216101449354239272858021815792764780857210381545851559394661007429567924778019268521048565724068867136157378981175856757414969827288314358355524950564229557258299253346136225251249174266747923670801341835501767131373581364819667168175955659779999898927748771887292883703118433197023318393790218349251383995323275863682526697724141184486483730278286847067900503586442992047672793971591154735889715914914320046503077311854140021737971377486662219375639977531206641804932500650174758681340707105005963853460814959333761878452395748234349333187842547196343335737493128332956923983389000632344340798856179515498478334566372493395746067863733830588856114433164365227641599791521147183518494471254393963971200279599317932822465519711414584353221680760300825005186253209645040283057108718343089455971173355778105344558215292882285610117004944632215688274620030123220909670246228796078396489456922001472455474682771385172393411577472756357831133646110162304852968565072644489581532259157432594263433831046046454978933207471196502160099384934876571385267108861982920369284306601809698045632431485035794238868173202162889346885228765914790778350205416632256550222776526835450414763027018830729199821822616829791182116709552854596474674850398030554310072910563387278861697899912136503722133167081296245185161915196142420764159825109337952378449517501526860634909694539961084446407164400897389165615982846490789399617980930167587209709988592082896111294285337486941360537153672546944385541002803329698797781449261764720947051580751910895206906870034861216561122861069815315863462528352425051667557729606000219681267265268246490862099034991816994572179180782420952224974417163261474898506861449149185380345925679233632118613777683704169174287085262964630587693138395671030435207283386846047382377905891444657318807111089406448095371374985845077764815027786693572803542276790795831228387881466755395121333114513171951014118778198860152522911425079630191118600895247246970435357366179259061969002098768216109282230088124123483194011703914958748096259305412502090682898365587978485106333588990893470272995674739399914239868651867532617988027328134839409124371278545430908557374216645779770719769196747641824745685127923251882366400125188818411703487505336305840776935313821887923952238515307761738126793525738081945371779456819286419025006143640420912847406701554879276420999174549689040181147474754339079169946058208223615957876136362972028969570353427558785800651108124388538975636749377524662642893753939300366718467828995448019739757910348360686995236766947662892081463868521115080087407456156004391090985859491715280871101902635021370586934244961411447480605981422153806628280365495967136132187208173359208266403775952783716392469242398572801138078111336816470840117670039944019868416770441779093465298402124909965361383156225457458614789529102264503176822192042404583040260374635749319174933601961728191503175914195014417408581955931489279036455786514303017338612708016125506260817979925785246421978445499647266894308979010192044784818412719197821559910853791005465001006150629413290975873752876283574157810422252257875747798867517149792814271938114019831910807480131933136628960915641041275626092699853205854555312066109732928128183775891072875792120689978898034994001045683657611550040080869280719223351665408756522702052529849981585969796402131279239213930356364222500296708569856224384140657838169510300440219602988059540417062773778035468725625626987300262374267243006666911483373899432825322736675229780883682616225579056225144147720207637562016744104637739551235219193162616286750643096995875623055536211626574744668843381868867681538641783617099797146973409989972303284389005271072184851117568598944540724164412854306358711623688374600594955692711898552079414985693146256820721433060697124602014919428884345520523931937234988999126743684114966348433176674378308980104788611481451587294468896788240154473447413960272892769766865868426563579873451432431577833917022761320002923326669907891249558921570380710359228918725353472092700483196591669963011633496978338820564463470046958473254429522561708826527866260394282135880192257012281941212301934513156107808129579055800898991807846952126253429824524788639461323625330294994507083134817463031191047778050133545398559349638620748590018337185047165941975901263549060112184048913159786007503029534315404629294071749430897704944805991581501215612255801328463682633844606063471899941802050144388161431522967077451401556500427237765226701194054715367326825807291439245102301225927615830371257507028005505462237718393075699978203557223654642432287769404219465768639306934421320017956210143505029639067302398545979540366827942432421714154639428327091734386966072903977336349490778411886678278074801054116060737432820438088053392608412957229658536512569342788118215079837673501358697496363641921306375289392271882218814557810045440321571963077337650940128052681097474562091531969630556811153025382446352969213267373310353899932765664703868670687576724236200624408960355291883125406088801411451409550378932885754072710004510486173238599426438971072410048757791770547568818968528201327862336674013627905354503923314544205694270593265799456574392651789947252690537081474743197559871758848979496182197418513778403753798341216863688469132215683428559437709735609512636668071498276070237662007826126304291520477069731330148741508768928721182552954606928857091493114368261049446343270158027569502162287409419235260249781181107080086019225698251165288253700130939657266017398626474809883338516662489816306412780307638539189711225379318945798172736923950399094987264641600421936889826568245373035540447454850148430380641151502912913329972625571129203319410423621120942617428961369661297708194758080192956340842136386215806068571705013518835237082194236299597442442024993780825675550120933642409401615928277492769641373331252266707942472287311698958001664439273546807930337560333157176541495013996988951351961226396070675968506286816212870491886856095025996997527473162199757088264165316299537845494995162304066361220267600387695041971561505040671080560785510200055132130640293482350256613276768240293941277493646236592339197368291201430425203476820968062799467279154822713392875935230207492846998747860749971015929992689394416200417807120343822878791820631082421878180515322992607928778214751664115381760717880843766152281011183817727010663049949683854732097737299632012390012934813465374220060655622052443649878994257946527474288976821696137303921895843275736341482383831706062574270546507217856627893835617956909036437209063897433104906127516058588246831826779480433465153878463903912135116387068690607582242721766269246226531663709164500150836839337369339939881746971424789119491781401467762359856965896951042230588463394092520814868624304882674569222139013266008755153672327497500795092304908040096068014074642514174339444862412320105231267190548664859660048027589398000333991654014642756650875183588884362844488749602825446064920678065503025035790980807233011648643703140192381831195390584910402884386207171693866852398188740282864160662396754493709529884036592798837533880966720761526999105290746692547936351334587536080786567628085286062771028105056633605789418034365965836754571046262908512008654909216062896260760511674124012803079299716263270502667890230255464693921263456161721418072048889085433134793856880598922387550577995912427418484110009135844495249434469839909571826786495356557718066685070427413527760939317297884552457607798518516193733263744725947208890022383165660357065295818283792856359600712278024248292327671543331746207092551490934678257286971973668593751901324232682163487232064833425981269008493711891745035241978399595078497203627922812246181376746382084863236750487606837473044583563320157805396165156734987021255719462659653705518393708132155314867541916047102845925291856259143685717054292517176433122233233875591910787306715729720232294596554265954696778322989278212124251702422386609955488183983868853298136357054313306652953121727755951058952121575499708530758098281404869549372774356903983441839832780656271792149436459603833798208519132302218848904610229284633392718167235833106595062100354401907798941160645656274790716251359028813918384950667351929837344726196008056101784496712340751810478375349275756555198519009876081020756308805380067083148471959073781684303419015057496011249294777012800370227543938876514664547978780733236981076993828393428129343511431815077113364811814395636450543409477151708292395160288434373742857040915364755247401445481795981959717272447018137203869995385595828962486030168447045256058124733299714019630034155198832598749838692721227016554141361923194652495891214767273185026515442761382342305549570795351054775583728405731264298627829865119153633670994348660146788487837624962391240604173581169856303319866589532166437141336079970637439664293238759062638628225721301824488022066105157147860514467155008654089548140561911668254450235199841595814455652753302396880578071113515399151020978150323413293051037839798672804002626426247645023058086138584699864149899633193991817886593919057438188093291321886457439982206619054457002638797885526763225430728067786144309380363873002256217827078293393684402776578562012974194582964227106667817475011266496570605072954276509497211351030714588354590469398770963082630612402915598397601140023704266864356743793185111695081403488967710513837630540335838488696193922764781525978494142851085644498667095565845632838368725065354377310830352181992216823597453404218927012515225286668470488585619389190277910008946353055100391263622709701928182192768503377604830979804891573796258766243572105386249515378896454342326591752914294518914434777655960522969570802536005846486908581181793612692895477809558275428906472550079341251036722861007134969147391240155601148654799636266968250291349242678176979120229020700907760654188497741298831868799068385664739122778460209752486133345396918273373658353625373767713429601111937344512688393320541159236423048573222047811232121921414555535223857954656930194565968715789874912496105915308915447996359283951927355686052244014077282482383646825078182389630891925592555456038493529037255630990434201209602643914483848827754676477872118531351787256072234091905632014511502680284888736921221609645745224375996060349920116746975267259455032756563726301499387853474853599613349655549576280344970564070516664423862819826909412472241777713478829314807401616168993420151527880924411623174688442120526009885886576792033803031758822398341892105926683392149496547412638259468477437238004391389718190510372471247402862134271595634907573118778477792048441658366110811432215102542987421661240175191899421138725371468749566869004705119548177368548209294277134642127048309789226750003429841394871414017963618834779722638705544943406605533238992391638196237555013123797652821074711278617377239749543845819179669326350819641886797920622447412140372319812673234612690080036322960245052582536235822171622574317190066037007917636295461681913582368758416621438994709859508270556840304020819554060493836010146308961386027105268197277323364454006311601986355084316458423376882847516959520286184994863280187519086283308579765021380353779250516668852048608985578596414245101381286492224059978136953771871465301372285014412671098641079478746038922404499948871249756615783282018787191582931287447970944843513886754151967390125806097047208546494947629926321971760947970503695261846413334386097684020027301583556008773421196729193793536619618781564714173717007862041508781030325723934576579757007464595028961138108601895322600342518832228155535536389060727782901495374996251592776789802532065309178668761864530321065650838544861993126250565632595447351094029946765342970538394919408257965160628961002616286468140649814360687629159358234014944796757037936064295681983601100563028869558006098046124069597988568059416078473615222202827621116350761420629442566340529845809410941954934499350701534603477903499305545833693087501352488769557062513047541239602628264664431519846009392979433109175600481610279242512344196870280385690553529179511822158170799306292672038590705687026310855066892476059221649675634261822496631748893295119288353025092303653330844195080714741318709498231652597938941156166244860345722600851460219135708293755437336301544042580364228583748209014607325064843866663450520704759463916142244504854907457889451420203172576271540924684843684128600337401297916044844091774154938277684394736060862952917471842736782125664636065893476921977680539806288123490124737218662167086905347410973513649088847416892615194710991701905341924730804464768807317513830865272461370026640862365765786672150100439092431762951636918324478744223743098045031160569213181945484027355741393394029644372473744612676203064484039456410430728964959398775902687445310578081647334855438559228940112641528646825075200309618758826293662660422801982713377314770934969899622995406613608108314597470504781394829043891680155381844954450206531243588467309833158038889088465881012942436397049375048879442188475275136521364578851583683568500327512834055063980413031402178124585933058918091408407507359032548687672088299174182761837650493878020303768935070216371383588240142088928174346316370425130864888142831235157711742394786998149770716948407054484418574075955943448319183076017636811487493544525364640448719940634713874802056018672698291538051111148566007572807046029850710990482229817850732605814231875687337669690023340650048012137422778812353088458701828759685209325269511795730350997492590875390375731930266200652110619226419101106129416383718058810435859173818327933129567915108096824443159703509431272851285685169378836940598920451226715454678573234854968249094474937546881222265887646123631017538840033986855057634035813102350422225487899817715416344735199684223985013912125996909743589412647071336922187537637537788570737999252031409930591796975507167545705633111053619469220673554658439338384552249094913432200435855789935185480836131106658068898797426554417133194001446441365135465681888785263726878120050398620134327171515713066054000157669331003897885643236654323655409292701594604252984544912653656305064818189541167166090445690966879274332501712863575312765223020615992212966923611692846002359858843444879579742021086224010794615788283550811290490172850652800334161457107279281062584635457645980243889733120880820032940290576751962881361748856770493124763387096481544319585914295082540916469155503273467880309091793994615255568618848884027741664445680729668200905991158980472251803155370258671938570137690133281843769376942700487187732140314690902908498911085866391359758623342688337479724487722327433426547062930250777000810069729405267127704259977338980418603450327721564309869162678453803413178262497711506550095740958888982256112438857792695876165197935440102800151921515505330196493336258888981969532919754339188250001339115598381638768713496796118823893837252642356355521208920269568145187841345227284173055070109777007847302503439874297088512400419527125153661907437090194073295984132403662008283429265224982158171246962593175747033143220476086249247145556690108840599276189603142610783326788597424761234756032940050458991292759121586266190397899312260191078734355627371944998832313956073390265622721332591802253668450240243913029905490632488228528550808634305995068772862750001635706936748988799834856756263309573649150213186154414432900760280156047943858022735272081407563052050188891013511125704225637274621210772578391365089713822748885249646710092800834690910540305110968247385882442959517301209051062303938343248148998957408875096108014817884604528861337631530532424104322648698817854531392433066672746872145875654016396045876414386071028403870889085460520900938219460132373997401544281237051345848866179893467273023265034260189004844020424370164092164959862628099039130876100438162966659309884030125704169689475354051128982051824158793499634514648338542917600224483058478596479825673106236966886378054562656269325239497828095713843857877795843302123654849268318048198733191726719076549816493523952178382821968905594998084986212556864463704329373459054196889371715375166999954103488504261642343577374448205920300526568149776565585127902121237458010055452368256836519558226296459560048007476716795584765306614007522953131413766744214051880519777185702674478769227261057176641648241130063600979849607701412635253285671540850683411034713248321019165681191975473111671807180189859164077000221390196717569193917213992604940166456296929868756040329917931629025276431657930132157253114274107818016470371618590722855386962739881381315125541380653064081781235331651810923433159735773677258994012464971172613841364915328770634082269207103297805751125151493283146579746469993973065249904621117479789421497711838778462003290266163549519875525595676433511894716776325595782011458114840081102670684373512790335917787060873621613403295466522523857323093500456177936743084589274426291954774337875656290371887447895473751225345946159584619520522767124028017292221456459677376373585292236628243618794807204190946189756200978364967459480518734550945771215415304715221561249063203606269399646655882037821895895918502901007234112630656641136972475339531840013082885052898101315633076767144072032956896592671473793239833089427367679691028827119386409340803538558895908623156145783259759529504929930177972200969553009190172298395152718201550041608571341135732239397181840288092462596720422870890327227162369717963422452090378124937770569332054351266929432430344722751451703965434336202877338357102285792804312599894180432888731094267464983529106549781895237526953814221944340561061012544735381940401325243096285380815685463175838390378970155316640596943394593758487832706718225525865409793311899542219729660210710981480907233136035779939708035095670777183189656472341338034126732564705817440488522556056661244152819779281910956377056698840598192106191781769321283465211148624154598303752459212547598190824267522288621466908425240311183877476370325661937594279686038811906493583448773739971132538547458593862681298643192403417198505956118232044645452351681408112495435818334671515698602100379391213479196554328729779426936133077307691348261034877021592320355430357737281132620801435353072330681527097459777207446978035727854807193472954968406986132164485337268056838375601440464713251997049348995685868183616543106833799683257393668010043057982739862662905212686735777670307224730412685203607844242691704011163069156179623086449799288862228488125145802105483073813305468589677627620225250091588915968727916071076333979369557058323040744634991524279144780804591572565692740722306674348926441280294600433835619474545190200500229870275341678990184730214216696567474911737798386463548190090984249897298695284093060634686818347044743129900254470428097749837772501691585777078432146862950524374396264517101288132675928496377311504939651216023467138397739145680576400209317089072468263059578858717279312753292190481948417787548458702498145955730966788342550962454469264452238670718025019102203039120251406584430286657250932918195158332895591128065854831981298427344220287997253796203490900823149868408594390750375742947812110102745352401756808840020945841480831477274647173303258466117919242377012941056339127095993325539631076510088215721960600660801139262455928290306116073746057920201591362534497403485150016545541543156551368310276920904510669640293756763880410708780814639388174156062569123467065702696813869110246666523075367251239262995122270723443093259569201844508887507333487179903716212108704094037013062622079913844701712539380926868809525766182185638991522579169972345657252298365323320154975553028749202310790393924522775260462207300569422663260587857733184112819328954592780783552183581285341976459838918204287177854843439661447161441776778428669632397963825698439814798359104690513601968313616078524367168879259723461616500377442538733940574424695952091289284526568839813759256095429158084675671744991159861113587435736239554686359870752703178012389158403145499774164381402554762002154516304720550664544119643963750064591154222238288401247575844707751594265107318269352322852429830111615038725854758594802725654522690871533777742628767524724497217080979042712069555784997250244497201716742806910622270568751893201433781521330722872088495845538546556279673924253190259741530544899017669482835460394200730300523048062865456512734630060070333734712788419520442472342295964477542779339115972879084507664178517207300912382927628716699083739157516439761919518676676479468901011228518470444127855413878999714757361755328968745304696851766643088832129786033352359284569552440453535590632276799245785763978601757225963599140300064654806753645750547311600631064691747747309077099010320602455470170410099922215142066905187994624466956094958337679108623519854256890187945727928678781385385016250068608319901689021614834195561760769686177466724744496131091372449154679690737726390978680801095424009141634330097194526371794669840774639696340517436560191785180097088643284859503492441319257652952378254637503426017054180119812714377824368978747900517361305610126333011296821579584252773558486737029243268742004988536538498182264777631606204992316087649543912218820018418958584293777234640757156782420103176707228276582234818985962828315175643353060932854681141983879939244034390481140415903228923167705455861658181643202234972050911418758917891617061853500341252857756095925857807620523758457473169449613987232115005894319196845731845891134725768012774883505751711688538453656818202683227911608630557209886471363159152164482095585069060716448177456946289675481208350603950189952123820789052680574522353959544090923532974854547446778293750790145383377621595631397391162694412530702899610641517318523662300518394796251113342418606714563051595756625036023017662491023200398907830684786242480872172645228773322504636428250641850815204297370288978441771895909687054201050238535020073718788862980606818757780339082311180648081971307554993197623893212241046582297421489613794491911887506127783383977056258535253471304418445069355080738513647625919623008311349841932865368464332051685362002121947862523729463407451487444423754839428124028550208504749725977258447249709094658463217803966967439042875397002839048874007413007640210865807523370892330998895369647584352055759532762401792824388846273336973972723458900067943721243799791832785764944164876039419930902621907264926712551453053021945867003731889197949371745165297856385291896736276065744263546480953779072936622444055098237990968817782027705626940170858273094493370615304881239722624476886102782549560842525699177180407063692294584975251363658481417523238820578053371736033020020083085907655103533575857678110476358359079948741821091451598475447545494985823722280086239445628937331975110036222707317540140497906244705196510270013798526808749358280007028600028224444828491782514359752049482845191173882380027524543479077548258060129636730918695533569875454308856809219644526830774809529029022266325613056937643375459584576482829310980963662422267536023481454456321322142128233120680159287216721627072051764573859619401319058776224897875898649903532209264184029737742322364766951374390726240239132904543179367645427542814840953936304127120229698166229482841367147915043656213473898281984507039538737267380372702821399090668164540467499260863303415185786839719308391611542109937521477071012477800646029740521480702238008140881647294278451435386500753859932593981943757667519061685993307626353477880036480436231237116624582553441153300506069729959574194734918939750300630344915966671813286731491596652845141613180341312743392715377931389799872248666837626017992649387909807784885334121962979122738442792742108771210037377007086233226571734050905732084296709175999402886616548632299511496641718129314750132761516743226887697248924812989753368325564305918048200762504909782705050179973649045675627510814139001293274458344395460653346255327473420452259280768304807693534849436165767496619852180934568331292179561090458178938117543406523818022566377753152874644961432278732594202344840975645928228621500904248235939134178003794481769670656277379110859022657060253270883703669194744645698227878822083097435504656091361689260499329652945671699554260160737445478663702671677479670061398791148549403759697085024681683174773921708617618928462403142124548809775275247677523668005155650370989955393409314452113669106428702187663994221678113917172506867951092373236050559892585143001298607477655482895603399277595814796164428872728230607048428170913613259302295790433755388205366735638243573645421858050548107580137315437225137043880212617509086222083776521378124470820989916387913197598941018019877252287781726666828816171020935489930015171329813717352629636975334565967428844904198562329767670380008990622674918552914036015156282571967353284041823709424561888222643913432824079240487914746013362094276400501855687327103305120801072488075842683320210317241216841986811355813247239218264277906864361303051780358270510472595673242159793462804851680854894572110777527873627801060245677525390301480369360381209778484808930894255315591795852335177782575257343740007003817045579405618847515959759622999776581611303899694516118670567427090978037626862101878892562663766099637868809253021348880258090284932613966812956368839827120679684236293890211782850196862381386579372327133113487748655010345468317520980330945977126241923964220783836533088385416129648033628408832960894955295798773527606643164127614921156292157977286883329497532841952506912935092970809461005828458227168915183177117608179265037641087455132430459006430604643111484194487942144911059216453334858711510879927398089630807267031384039775515253551338625038904085119790347868561006591405355010874972017955517511944478065506939595712429569131406560002658487230222491015802896338689721483906765382866645212320956664236806454815126719265298908710694599516359129054336747992773740846318385796387339191445738261689958340097284576135797775471985114081869926088111669208600657118559530967226714526436336934643019724364183711186209740807213056885882817268396638807393412556393143184255052380904513898812600530951058598767387145305811282657457320102376102959985930920980784299791868041647082136437136154018276774690503066831023791911397932673299152912804044213680268594934864354923584659074515633985214807051235404699892556020320322578104733024703275563390410655125094186575611998222239174486807883860314406167337107667035643698729504947358406215951267681144894049834925538772101331428536958185198151003915276311753957593934091478114983132966350758740907919860564538050590895368343551325331510783363019571386480089208431768926613897311274398759073625278119670251715954587260074858331717623967009103889999704625308332173843412558490625421490481433838723131119720535439951523343772013515547413936779854132912871667824286283652327916502239692942488440138584684595249388731291137010916137298390853412445784834928805168537127538359324113088292110852864469818429025779793790194900480770071399438506206701688113682829957008026849472364548137354843314662273755211539824883906558151838119654079220053772955479089458144313081609759513042582529343064578330775338073085592341311614414537807374135621324035482073081374100418791817025247857017344653463744131671123493157683506569120771120184875230255800515349198740771533951860131587071216336557469118438355278274178623562399524111102025813235979134475515574146962871899344342968886507313225432620193137597813544497188898470008020740018038893814575437838374197667975007210809637095180670438835470717217172665405564978390046381264089654120227304718965058834740031984650548872765063191321681881025692396153923982429987253767412870967976596229307900890363834206071221046506109238775786654558788707207872844366611879281519822980192184823632681913907626650123501312084200108353637409880397904996559558646576060383122733727278477592225715095134699492533332008240372564197874391756684578387361610660966161915086323461693035116949075679069539068616494510602234838336861417565413817558849135021678010553956613245578628008566097983088087336199791092074610739786637141640543714856218689259681201069093339229956031250525643900116206213247490114077857189447977893227037381771822230451422336119347258632920428692003016675599852654220036679619022419376930248657276611316137281017921664161147644680459435777005640844131909872311607205505579575784298751597680761873691219080906647744145433124201420379800747767328568626946341619863699826360978840085295554233132479632425926627819412482709378810166795308199001508255325965823430926171854741257566112946969745866141677789530716499191598804262292781219526260414029541938690885824445630317585111439504118861121106541291875015476806115305529164347212744745464982525549753782461059399409310749636466280838283128423294465025184429826036085082169890298935312545031941201028989309749930141389654029611539007087097679503249692006029988132784804663137655202072557002676299906121785111178342721786042925123940428622072307850943199589979508954777685860646390326411244399523422401119243308315164830050040690907754685931657650753504778498174310928168857549616567198552314742338112904966106365685989471587630603477440745619175542165638456535297243991977022592700018576836650496090367923019585153945434777163062989677108874072050101878280181678717682978585058955330026222834293001477665185261003526867078824955804157242747005395698802395768955596347506678106474111410698840249965533139966870028148681010551360982915959196696060927474325733142519043286367796194579145641645201220567821077516806972527001412871770092214471931144986673050205150630473882874271190883834707906500904562422203768567454074950432195073643654504048627160208084251090908801451495427901210998029211028917711715198948291308663624589646439241420004479533325263906550117684844922530047304229973286681992082382030830556005842699053127462928382206334768817078187765491649012676318174914805358693994433076006726408726651589097072762540418885381749327784363948409956301866601252270370460375615641128968053095889522588658323054248423176034049454511821340862888170068247198474313897331325443844413987711508946696333372182535477959258252581832642559845365309196262636143606504878410161440832493244646177478150176409121952020958494780271279494556357130085578470237614670565141479408296689185067057480656189930662060638615214701884719034029343097968876699721366652641901270131436806164452774337575838488315758071739383278441036891764869606173263215924575110365575713384182194775613260060557376781637035950133849543894632613628334605885872029343744675587602244626698709007796891119784911993127476523530875205602486543155346929592684997917213579279498618612801186715846505222369769268658766163121863145712857372657804208782033970936023975180983687075856157777419047476587340478004755021365201868553613902610646705419171757166925065603922153222713920293628115087663947840529079086121493590773385547126739958308232973675345245426903514763143437472419630587062413860125824776765834401805085596262714523631494664279056802456028747785895768625730207585184699891614726779433184896340550985713138339134799923729580895442471939008118429287243126360341193252113325884215311273092010504442030222321508051529491877807101675791723791775445761997905036395026143804332747434715121367167015657367651859962242018217100837236661214677117043919605718875742308014293909625388050924833981426342173345893631882391774148955459164715729445852575363821838351439093521959700229618422267338249324790445567121620057193683023528884526608737326176481742326662592071717815404062566606871295269668846203231006269289503060303351177250998366304147278816740864749733083705780972281959805256579010957539405736455028610669638477530090317194099969032208827436218924415562053029348808352153570861691461922463030661970528748358576846376743084131556486264340786475270738947334131151619877364679514469089131523516324048426711142306018705474228641154093148579099465245481471140793802043270281419946700588540948901063530179088076338421803743168436103083412942229708785556229745425272387221976006554323721179545198426690709143512965679035268899124100875724743253648520858471367905987952725853430396954850745476687001266432420898327531209737130637408959991610983010342798036570163229568300378145374512068813104937498774652758499570492910154154500974155009061435929044049724533027150225233900906921134287217781658757821371360002402297553515100218463016937122732873806728798818346306282514307312666502058137923497217253530667806044077352570561355341423452601283211109762092042862745181457301571695518060736038448432598989961440281589526324860088398859681805231844367547511080744753685830408139517537648573070953033322993219131967470868173823480672949662177698978783657974742043907962213293074051461488242827125907588474691618907768757397978231486760614742349370939235373303741724468620643673648818191330527313373133296246030337864768185127304249727409176300785944624024540567902497303809189461560270721180042457753899714439851723295383727519612285894423544012671177177553723982953904571507308059144388234065687133950914774151942572186031047039728303015487392037509548798632420667339125723692944278028486313574441784442807057086563774490748370234258536474574167477955569279932393276048968891629777454286502729518226413211460905702445149329159969040275276768481454116256636870789500289480735901807543425641408463249612896906394478069841215685279788860145888787204279136929249855095917919582140371525087065200806581487848169369267464498605747924556997437495531308558045398804093643386234502083444299347459395897892670540282061919441862101236682513877696610473150889796240882014322251101463101059347305911635696224681842769671057081409539791424273789126251319414037581921208299608190735597523899014532091456077242327796956244469354920013916663124115406413077584427980187250294117958210991879251223139970065950215975196380046585458402688226154266929835732247253535684596435680849187501221634181008466534579820695835506711578757305662543422303573888943740648743477955465738921017103588151590525028992338006881438776270569914747084645629905134084095288969568981428172406126316796695420759104810072907055058694613630201943526721070818348868130658452249823512874805967570468515798115226001145674429648510787011260356263831416187929843756492260413469424865382125133689488870198854224915590968553289209544893774875177851989846144424197491094881786691989204648678626955234229080954398457077674847810958121643981385996189789847907647419037466001309420732997138143218483489258922229775751457359512153466825480360917796272052141755744322494751258392783844350972364655278365770067773606331228118677147869000172423445242520108309319243910646243338229070605246429180581793119702672266070448823049137647669229621221902212545963758209461737026856505157548749753446310988805065703013773614498165157011968291115778228622505696977262405248826805804262932632120217782344821853389637875751367941912994560828811628865574465903273385098937533025918986356949561751550703963694485853203644530270163672241946005080327519318550358320101965405739471722676234572214331180631830850949581882786769439330851279905001129586285052930776407643290078538531510996287490103658290522469825313718078565150754219463529527761281673286347515089082175194253480547811247355900394347695574263199672192863983062434339319004989398514462669023428860061278353887946416274037948429459114784580525879826284919819139837873542938300068650079053664463922557658632843324185932844926983873179871704658840047050167487244354499384393491978591334161980537281990696141260217671009289088872247165710539963362113515095445159701848993267537757569951006495388126203523074656849618572737965466336718233788018891471498585433059214931387377997800198914594026768333486264391492401920444047362579787077777611239081958721533300107829960455632927388143006299949365353518689544991968418282312794224523158456746055767124662302684705676601204415419299578392665959059428788394532474268723764342101467966435707550053227041937735676568526892829741897787561806071568001520182153712247002102800251105080674816243862257453774354627076962187698863486812315914194886599100603456543173637454912502226942611833786224442756660383615776879840716000742496784104274283062910557484133776539291746156147386120537184075117698685306116462649122379511914691766346735951489244214632842830784434873646544282338518902112198391918873746657887275918669463054788491666088787771114794269853017552585681811147125392944541702445457603818334368478570589689836601216656511112548331213290697986930599244526862417760429161451392658761684199027141214182244219492329283527927363635081309203856558844514257924245699940458289808757187173861044933693365107044166051329983895877042637086800227705254244077037256023976299450035818033071928019435483967020771796388883028930392018233119959343135861726097407744997871070292147399491189199090333645928456849617026299294610651042411859492541169264669500927853827075895391267037561246271649156095648080918438123316472891837605378323209114595246391371774741038203373478866406264843479558566270912593658710638473720124896115133632197056039793954307412572102777615479187198439762434065657077686582817938093587158095240399595965321211230776091749648229189566462702274530249550464181938320596281690656575936128109615480708781112203473127373758778195382791104892639302997714932578755447978511617185370775417678761380057390853611677779358410012260450752159667509833044973835094418688323996767119606219578954571694719662796126982309408026519784967448212215968094533947929492939164264535464258149462461936095675981396311549063982201135010838614237433604214704681550122005653990242573548969077881550432782987613391612266744963228178219213453363916598110111127123944378311378424720449254339805034432668578245814760398966106866880827232389583946242131635943057612358191473135529868206661689279708035212462471651257947119391839443737302235067193259678917260991526483527786343334601376614598541541065632680614833091490474891374687958282824603092274773539584480967122068895070410045935006554551839129458601695705203258820089491082253301670077969060832669499117209931721746714443513200850064178648016096024929632356246762553010284970178480156865223972426826486799894096753009929786977435645279109058964816598287517351032762483501815849517587185143846647338329129546340049874925072041832824688803070549094518453047153394373640730829190868646675168623402441854116973702558632740885998823526034354173061061494818507426791460415242062705369700021133820505580937388451801440250175047182072844494144517144100277979030342140658416949024945193186961476081786349707487786105506481398713061587333932717056215076861043605179020165128573785046747342359290460081810598235431554572790197892666350556628866486239919883626345076942969741908028248333961267556344438779732985298658218636619619677244509224310303473161152899947197100082841655204705341380352731999810527916998106680714342813314188050670466491014347510008537883476773824897257353967825561990255006884265898016960709792448050757478386549987641776507789077044171096817682944303940697333665588149090494253275211292093060480462101574501623832325813791300689841218480024940780904784584931888657475463376722834309595426915517099533834015595066027872109631641555019155756652177859118739294524731839480919342078406354990998361787177702652343997713328400015972532153220252128697896533762507060290382767474092869658616583216014703671626531425689614905829174476235814491022064191070383213540633642032722912003492721267558542704410404870678865244005782611061745274130292104306693772123174555465847650971324246329041383554924815555470130693912205358513623575073426618804733134935931743521988692130562647402946319612470570744455082953498050532439800501712196832568836554211047811249495511360554114469672322589632972889025512946708470948443759210008561251267684384110953758531647905225181145283656827173390451806353031237631974547479635851705572514767300781992739627992555895237397520512710247441358189881064107201126041216064342031608950888371841984157633110490243024028043793690876896348995952737798633470709299525747525974450448621287425702935743146946490169361503911169155602878522364578702909150293999705202651576097092226438718422320886935268321349404452464456319625558931619405319770470204621141787799786809172623776988166561454458093405541039405897918709878536628455967459578247513533980675374742224803561758957687894209913882097790173707560386113586477100025416306895030992568049484507353533522787573633569282603560962823025276135118729516026651516187387365018805205286944404054139241078473599598270985854928603685243932996479253218779319591039425042662778226415176523394165054572408117478571625169234702456282850838161864752733653732287422996736628283888616147891018538842208773097433735355827319091562689841537150425032837794625038652838997084078720311393759086113493725495354653803819364014323560610931805712298118581798622498945292368995157984249212357053629268294438426944239417187107600394777403886914868561554532068820330425194443525894978962568114164655276178972494007499489599445754179772009802008658212300779470154917195802113245170014557519075460124810958360331125684119647205744851860074709641880129537284497647700158936144831161053104926403098724429351855942551813931321797205858667164755602949635856259665940108405772633533034221972951385643442843668516202215003234494937836444633155392952141469307483177536826231012087003824518735526842316542454625151714281553861113545410875559698091739617891326815614467347551678610895332189849084693576907658039698715415914864028543359381586228499386348272509720491894661554986520701460721681774733193981701887691128103004538099667889362378948147155088803807754948017702697512656455931148374634498428819473811215167542899470601881042489388880641990602167936346907505555608025131092863432424829322808259983863875672568477163680051647593999064481812248167730463642346349566734092008763651263623079275525464120734377720028032009527253273554355425234498257574592020600004750557310684781485863945487875841625743587366009126834375196563526039347292250144479417705585042211681339653010498065529039811589810183212967000595788452625558243850984201606768641075327704858235016053140070981934837219501970970524318482096697023940606210901510878562915644448232801131622508330933300905482449476421771876008864098644755220644467398479563430528061974418210548032293676246115338404948040314150678008065186479346553270787735640206952003718189976037637485876932702835258649592706557505648502369821318018314888622892100385649919367858503153909072663400865197408140393484564753868860346432857177806198499477693161445061364963780952963222995251962083287966922365131760570161194677182382033324913526727455662622968347764736866876780361546172848719909908808858098464480264102578724677727062994851225802007813370438002754881111587372283266828138520223907114423289401884307861059612832810996315899510891535142922358161989248760373113973387099959486589925009629251814826931182493526437294548728106823475647112555703618732680951584028305667026481683298227575028581657784528212524964160586662800425240300124326613065172064098218744513917640672730915602178138242380390580319426813897687604506214512816198887060729962424448295248696226468020320513179763658432296945520179332243966717141612040221140181679742952316340727278510886282177855996889416801296368930174580444883601896158874209244367225376781990911688994074701054268633561236988781380326691359365212963371464526621518307272251608664383594440556148046057670687157868038855538363203354823380260642053712076942605016957387826364130306557520384440552431288805852270527814741693085515021238122011409031250080409220241841347555426572962797231177280169744399636283497603061699719585999037360042542512765004080902292895926244581529265201607323241153098445881991439166153885471142388354013638979129121931980396860295257683498662389040590748775821364448934056486213568989867455404723169336407521870360845488321173762295389173086590891322793219507841182491083487974179052466554729857021239400181325032954535027959228498495003320488707260911019693373042949523472832455547904247530315998905438739859184578313726527833717719834708429583873779725994286834109991685760626102809727342348402252441452402264247923108651371212947864743491099160231297324907808213386897052526326341101566115319391455155254788540537013666881624407296477527880292234051291417634343255894297423677984136136624157775719330514077835577823229205151562743635109166717374363518453619420033952369422939500796052848107909530145053153634672920491484057265554861663195084509734517821728506385816818263501069563732654242622616336002669810326638476598938054160308794995482573467464980634017325516328299515127423692494251736156299346614534202676206312886390703674658630018148889121431027183747557516835714943449229491094348821812000142654770832965194287140341478392594413020473325255306499536182769206372033710185302352725452671698442183054950196224814648589387578554279375882426471708195578125080008510134641442902341637908771989785083770617922564907370390014917813054610865758485643848634691385701152251542329763123232532649109725662922738047423522476335985822548655579261516370103315290030403464780259825541088176294911006927961802644738161594071118167172889379109383122433348003687104195632401466244852382698930639208189954656723050094076124106114485560240301989082313576924414765467171974438011951496787402310903236747769712057245217565715703030880955422832731472141635189917014162404501673396309424406861700457673038651073295398553959949554466559547819797805891657814738760916603250670750541025889843176300760799447079914387210838124430372784252122477190716774397120242709460767083369335799297242201573560277915542010066735680165958619554216578216222844161088890455986964425056418324765498824788350879624254405018173486463118574088805397704747971017935739712303339141806131943433310333450749833887777844505212447666793395839712300234324515077872422855409269171715156870114899199385119855276413416739446411517998116220719345609196473320103157473204112982281879549827335827044324649096131470241240522968880691767940185568186332526479383914096793201466137500914108313627321163958218962941309783624789165612881724419973043812938529830476367036465460240467127766993228326307192068890354154134201154326728240295846226580106586199866200095194376190073773241597916667052448579772149776680771062499988885725630082073166303019662422398095654475712454217736222578784326064963903934315675819720993839137098846380629712486152223275368631686141198761489305888715171561912315387882816886386016896734210683206477612468359811530193822738324235257642247707886190120594971785848381992211251949147495883498209177253182625951430275283859529212802328876094320572421290094859362419001264906280652373611637806961766575708174747193704690626849193333676235032545211091939787075827322679736506415899601723448649224510817463139370680633163296898626791315362351481352394712313573473943226853445272994978885248860245754652201282908282605600483680056108175132647295126052654264257333604057946132323029874966204091880404098428210681662168137767766426494189408072265627335361144740580984351158636271371933995418615116032914095702347901450185961466511273928004252720196617736821046685424301407415744304644177429605700221033789052005444957925751496391549026070995803995515583060207855087373002229409543898425306854740613926060095711231160912349557432261960293374591520780526623401301640290733098952196905694282951155775832294890054268681505641124478950460405819187936316880937275371542100828506157024806225734301017857931482228714089664051795177881932364297730173123638191252313882166572927526044066056895154742937241362782596700823327645804667225711196874200917034531875869087480847328341150214716817041697327426482995320317949229336709864518392955747595086754219110873884925349623860706111735220386546050295531903352128736970898069482320810090471081199302183258706685777934807317476617502050378429850170115263357334435222993493116344718894534746351829235029813300971817204902961949101017744160364990848354827734224659147046145264783214957602468946405643913614110004777883292233731914180072874590392660259436737723979409455337494046314176504909904413770557629350299594880526531055297588764656077209447815443479491643926642841841239557747703880977719361336685320520685636582933030423080096381715946384715383222335451069355281560173242802665958533256214996381375376912990800465926467342508013197838414307509136897416394725032183245145851101240855029692395800646046731152101632657447670136345676250656682894224465047093991285507320809501419342186337495739965024130760079715070951179668589028369554405276270750794703210527423276591017813720752771626316984397498617111392283988372153216028393610515121437572460046814873334898698231997672460662297591300145878014900347270505492018354187797226941049118418020774094580009374525675816640660810621754180233373799877429465825218545356036410640688522908659612152218310029096792355895583505128115265236168734987280677094915852889336104465508675980264717249825782249376092007557688267616353497819672359608576435162331075167196995402481744431338949898502007465961652268959548225420426758854395831294433606245432495603251187183392154276289268880144002325875267296665920839531464108614617400896407075309160509194184101666415206454790572880079656760551559217234426460830182320815772576013849715180812048178453596980783973209136523922287553889426818670784196403329267156012991511549048037214767852596435856160689530023194708094078293403610878442215150756096964378775172799883190022458073600147691627924387874639612461624050297910344487068340314251390008017827761509575692265919925622683793943675694882187349239154608033068329764382872371981212508476229154228865666741708445859687969691422543291845554587182599369392327394651840686721494167752713886133207809341366331944422213665267705514977918774744901132510058003448135123278235197449613452152480059780425115556242468695974874393180595548834168195606875904327835737108469974849044805453490456691022842845937939899641664421054382885275104902580331770204161210456425402786139833115743813101048211611922488391624647289163799799790084932151074487007945580727135981321318248515652149859463495327642918065952715761431494057416245428169600882657551097447563321211806100175804183781453876285948953586216359390341925293341834583640876900221096489411458268883868455497367376434506298227853256369643439785637383901163425247369559343560743335599206593455856054498884291207691006078049506075838893309705657944723435367424494097084976530280116433370194260834815000383536948889026008109659882308904238512526539246421824101597621181087567732899783131028693014113608116261650796961276178363383982581017552971983761595258211475541557962316463725201462205001283273308078248774078539591246861740398387527600841220532956805264574556127048655528259709806043946991263623258362057611676026155214771482239963894736081541948523187233173128133287936180252979742202854537067297775578923534537433131872324643057923555503560127114654144772307963595526303344889033383945153084911876743508683858398209353681847743387436203282000148621292407110659930446001848725380394498241318579580180833709285339417428549804295745607720614678718019315463229819401666414815308628155115431702772966672782596437683521908889949237893757445626714080168132044087552017922571505328264475405291708182310007366896853437908127897566634563913620922830815623977611647866888973552281651295540510353532428772999541510245484666824853917105118856790905742229811368872847018627786791769222045446276890366033226750723842264563945007776716904182644821678801093651687407775974023475670904901826710732895982078831459170220587853176876887857078327209188597387061604818251069237668664046512549075281461480515197905994782184303575736978699177627336894199405554643471738327584181284086520367011636130087279840331238418877649700039139265895140574675220748274542655334125036525062813793702083038717308568686646968462449628613747571119338517239669013797229338066885616773388795444824639566046144247254236802022780470388813329157891866645330881475145079576151884724842725063835229471163810698542545028358279892187104462824816410523859053250749655474822356024900029128220456803553404781651021180347719008920981453423649900782032522288608522318895686904136687262572183217467826050373199514397347009221668853215658153528541335385277964477609997912334154700726822869808310525044450076066957032030298292918749443127127139124251884491199693218181605720694030109132245566380572219266015260015954719903670578173035975474869666872551776723942291475931794707157207472738720882208623278579435569416947713982793090210490545094926726459955863969821238428750081046866463840262430064964742001259976992010363815760294051378454597479896838729640814073788752096681002248239020744354345684758279570037200002367335561821198402113991768730147526658981273776449178742188250185817562016179210041960849111662908728295971292332752177405821176492659960599344121502034244848698618658208954431223065743060363629309499335411878565327912043885944429291879438746993473320894601208255131179713561558423048119124900359914238118271358555022916100360091188811364977822343380415119748073807492472520732002892901209998198120367122735559347758622921387137010494176414449395086232060266588508576162550275405351489293852821480508847110472067042511700366297319458715872320110155466060706020338900780050401391967315682394716656124357519240034424024148137092754436825059733261019339958082956135388481505910641441685042615285833400282674336972576345864494912760458127705510718686717159147469376873215781603277920278868134192507727489075419778705293816316678011257189702616190725699596763405551023997132516750443194098965252161940789796548458937771072685546470159280961490964682266965207235688979856779067001722698396758812975312470008619243889662368551865415179591790612828811022438600569206669051391947826367821038469934558798543811610686577467308412858036341781896265307126759711457246545589909044955586589018361050908335013791588510523287973866461856659412873989704163451876388667882957080410730995791245053183512625537177100848976190186952687114642828193985750380408490087545426727111546080094668209164301181051339407178141970638890062100500834570444590727166038008636231245017603622396412875859233690642565096647876566309305514638797001614812762658474749609151730686867233106743229032880990387235602100196382036457528033761840761586848270175776088777100582515901176717616482529350990727763736155110217481439550909930732459341433617230656427826572236587014934818809317031930219503319550147443640632770604294272500072991388350976686934129171590834528501626779273647064831716713980224232194850211892524651956965718790283865548254706660674840769153927939741034781690418782140945474231994475895872301296128562513367407233230264684149090560565924998261365988189886237957450909720319865274080694127066137675428514176160177182134908160634597690765258738000639292563097294091826084069454424950641647832350968132850814844559406459480453796507451374373432599648389790187319214090871094028663390096269215998153347406469199122494740360904647869987431502154624937711209847557473069709722989310367355465939679231259387464131657902578129676083832637195556397716122195458345650770073381639254024141617043688250647281393262118459421548343881043020662479601286117477124394731189496737614426418402199336950130306399914041723141680925031873871912813085366142199618614733193124298150515817840141655316138233659957459520579555756840261499001334313036746848004902388040683991956350389320698346860283244678923220803691057078856470849696475692290024585550502788745545154945529098871554187739710275904426693306127574949668172586757042526963951663478808247446701141496890975378134141422592216803851913819068074742497746311528927911554149929146966274810360763412192809774932917842609636004049105049121756951088934995661450862314492916232435694485121856554106793212167646161270812095794593491322586535290535083769403269285098435950070028217873263674019292962206396967475586141546978645909791517045834279853113193392368492504684111208053984765230808786224913282758579092898592612231282579912808229471701617218458172154938720872226089325583159314197028619906897125912643485485387489906679306931256551439479888221278793962751263479553678263588211540596113162668203950084780179777792102957352019977765768421604421662282616496267910784291138901926948065726723075308909479083195803569798033595564231782722734299701927775865629206627218318847396164168941387048790420260322837473393277062873315535523674617921483694264360964595634989296204587374905073214149697690862265738610505965657964403583245759148099109771990427629216387221302092023276407769647082445177747823718899708870740580519842135721948178069863004299453730412852311488754011017399381876227445241413142510551849211673138321735387831406318754986658740628655490099781404509189837062551697265169108597721027137604489316627231986279918401832958919135030769178233404712527035547623540960343073443052326002700609325461985583502387446193433019727081014621044406327416130142216346518549035456372740994813831799577544626401358960998023498453806194252992787338326591263964782165083064326183900785904237983573206780872021801439740085569530351287933757338615994069165236071305119856461125324490438409682944034149458666658615514370259248419808451513292797147682266883680101908413611017666526317184169427616545394793917363516836225076683037967429660662011517352704048126180975388397130689108895986918543591990135825351531174769040051294563018780139416580096873961495168022400535545482717042034835342495407708299980010534195082110755631630021073320722015781860636702161387486798546561392330638912777257928250348777750130703365378572193046770181247277194204070856353183314901439542825106030771607274211119841865387622439637667834861310550998285139837915168197242104625647915212075261835857709260147467542353888882333111554923718699188698308662627270464421930757658908149748068810860241833371793508156055780667812731040288929505740494775816299196455442323961961920170376254459173594467187742958696492625989928263738638636109487059483534836173466773490886428467104044138875024461530810546253240207393300702786490430172754655499682275314782045047762565012996648873861196321859054021391352495876205868261749258617590088699716088779985777236711798704233639140120068109265766918298572100063678849422462599729794875915281983521299171085875826007612085957547565735446666183241234094051598374097570141915015576083937336561724833227027017028559190352581961588417873762974658804032153049325891090039742963616584381201476168903189056350941362446913341984940854305943164114973036725003177742401880988588823341224457182143340998929562149777877446648863760825590330000239986142005040130606022637403862638666363405602381061762815820104487449248808770506287718165005049278663306371555940150722759250894729619635834681649107284214153300277383432237478776828811409681060461454119017913827071620986529474897972478992969453247153354210175454327116371307126425333733155613090830702021342446630750296567529771487832926061543624934420825714965336950857344361604310578693093784881302085332577819390235253349578786756786875777132158054484621465448874891113264639207712216583024095512593830803551640067844662489076350571729736316892665821857006376459550745734295385494261995697396443278950745982995357510261832251438678375804602597559697789030747263500978350596212114114933999408874285854887748727523382642027185577267719473593626058946301470189258843468135329171302754173517509348128406333151084767906188431034091603663943053646878144530966005903247004199701226021053104979764036877516926882748518654750632633338432078722649750418775781442605822446004389499824555944839564329536128921593025999628584607571682669238360398974258267404914466908978078846164285034240013462408571005732780638850238753099635552733504398506396137769604098357140419848503052479423735028226661292614516936399400213127913960439820513530989598559601871764556087747229529085643914250837256567120687701462435544756670109804251674960295238426698685804164807223475342633473070794177503453903952942291064534328259002864612345694771183478335386143014024143386042791541004435398255607199819742004065391396828068964782436426508159301693764227527386860547091381744856614610960029921506076293930905241132154845137671284573385479940029166166447502849716957332986183374559817314075390686190787985403985971843630184501257624961579942772997615237103605637707782409725736268378006667941266259454729560582200126172917190982109343511949423538760184039926825747855001098705277179934904512794979229660481767035679630772146089345927127337561273479687263548596773516520264371446797080038906053454645202548827759873271666463493091579654750652132525210688939606062094593293877233899309957779987613690265321879837979224017675058510447726241782762329296328974530374193127140464024752197654671460286847444624319131332975805120195395564962278608814379007769658694461785086730615252607069718896717781407446629079711956757471609753438491184287660592662526836191648164838167949545105521538144465759779173901142936187362614724777945786025055894667876274458382498195191753060680086345375253964599370914005154302883201097905739791980589626882151305988625453756843266646339265622024287823527544946591661227926977226321759537860775518045793263592922686704031823004906787037342691923465929265916275804977598046607560473019406111018934520681556192415459892215618733096047611084802121941950214619621103822957182713953970521115199262887788351250439914927798670758161879146095233541336740982890917118758759164941638992788226217988776739820661214256855710941727128102650583090452497876225342923145816761444084026166717172197681072918998093015675712626841354834974909445122234859138019873362468105425512306614973740433347968926449692734062050860611691172063186533645218624351103713379683619851972474331927631906306330841523343425157287880184503472731183489732048948441010949141461288819460727562723277152054460407198719994008481841772345781330807224033836624407859656436686302695349781043555258951806809426121075596940020442113557167536324436268925870074921914335239030037663298698766559047392017922806324379469265074743613823908742839754742451854967424366358000792493424329245341081394909902434328728073942853437256705486534792150710314273216825587578827898308041145410981226655656482642782625831434637887254469405712582351668610665679945703490263612677281152686590929396843765416317123182334973473438500867713933732144161156351684183212895240952776519660584214452750755993678264698974813057746460961761282006821749673131993887224410525507973493758310174485328514860162497864717232541183576247741667201962310637349842856202454722103190907648762348402065881754897456275088267438428079574885828459263769344985796394496805353941301013392075233748454088988639064202329621895275695526010462570509213933347679330324768974016455611601125837852598153706515854729075586434978431280091422348855365695467091021552894683711670297155029723463885338037627777594902928290353646695203602112929981218454727252260040058871700894765046777131701019150314659726015321428283897092790125553539975054996579896012972294088179703890062679914969762882309077952003843417256676217446967874135578324461093462705641905899446788785335005670855444891093288993044833269020337576483139377180858649090930909459137487589678603209978613086500133955130795995857300661512819775703724334024791997730979984419837182881263055034359728090259770291199834464254653752190027311083237170414693582822112298989351073590018440585580594495628274981743120229133652797502584164472782747176798063345676486482592428890904686566692464431025294873804700241497039202979823046990794279869837975906901051944315493549611313757475358351625078016650689913680218374832752664814117163223817158636352007459054465910478233643914293831818286175779713749096415245545849380449915216271743477933389299929784989879618041212814430401637884718991972569917250690207278980206178386319601445980839139130704619878826037395374167550484657274468046556903812152616955664633839735767304985328577936229372069747941213549240290241131669622980679237489678187253698255946150427380763959203152300650611768974152797780303297246566794455639675285550719050924661449099076268645789107272366088164520257385780380083694717314733193501296021283402924689840908699175639046563868675079444485101434598486892540085048397759346829177543476763919990738735407392852651891066777478006236016960827509987923622527609193335798076329359648128795165159109476503739222464500636896381077390337012090411464420162076339365171453955653502443464252652046432183184813526850129593431220518752249246305374295523612624280751351140773303693515895077649126286673409312916288620239691609090601552485973585721427715500323044368718239012941032570904284488359465860020564992511454224972399201448612287231090359697665254864868124843940472664390294748748497134626269852319271161847506002995295899392598693439064949552963954593640047809041842258608341179727278657515172104398915664900670430151308027704969885974216780258741309617785469556547537354497208760282024485828478916521947018520511735037544651339773898731957919730979540703079258467282114274001102262415041474490503358481591908843650508471798407560029967447406822371972868455456370749878439476849002916120533716143943466895619580384916102822319989963982586489963444481313917431434009221907209298084251263306135695259659531429849694681097525956859203668843381932821974250495939658433253685562810021620694506715533182776229399433417878210382273887458045503007172860223887277688052956480868669974736999768240138093256010206016411029793790514503333129081468484508769363766072804417536177409655326090358173373709831971586436236037605259422645643135885328764219128417984778225710169297243282612455486272935963788071065859154939003306395614498646387843605168083555053993234093800236953491553911444602203228830024077413224927222421262970292390756388780558597532024091737808525797261387199988737463361338417288718015438482109535508406616709476634738951440353856269289917973281376175424781872969273836211345702137469396311570213780349002267673428092999138077276733879383193983798536777771491510710123002905249104290686551616365214954107074535135731099065763624339138333800042935746235035047945513695725807796644328257652004304679856350888744354608624748572599237195869718244988405216279761499603659610461427571733507710262854551994483489386095581541164139700329154162801246014363148871043325077562382085236904707392829745044753867424937623178303233494764534796112948837505614230880281974031814799014625609789091676466619274429151849613224614567460020482165341525040774342856102943061376038827910038160766761569202206253493366555594006913436753079232342192511545193105679093223479820265638063191783988311029910663417473795838486324962269829221508372052438471202225951580546518473086915784333109695374756433757755331349450821771728231809520125749435224844237501454759608020476147913866772424937924047390575418096923456390547529273244979041981577498950936352572046135451393965846117636026767520587525287498002108532317502558034735537569237229994185985760941141650430766056678063643245302586448983764984023891594397314114411820219381853992496280071496935401189652841101154071844688189307941863545930487485544070299527163195903171856019835631661504640030174352708589560754693321190585366097139583033536106802119228577264463248619522983734779771018152708244367036255910666525806042980015923766943857512820564699320316023117919242271367931743358195665457099423702479949100554543998005084647194891872323321662217338929087288483369732201863087177561910833160353454132715736332253713010059982741104600799497799301525295237899516752281822597332915339592156105047309390729124251885035768077259285231106990744413475783198254034176777758472903489450698334029402616094589103200578637332489698850876712403563934478907367644735268197049873669616867838166179339114045161083138350482819736010166820535018907717012904367041391956553410869000087273536770914496571923359873903127593551673309392674812437313904193867742770930034322039352670490380067746845559798691074373109288302338104447400125973300201685188045061266099138591624236489603945942054765837242491673792533952144506055308109740808763076792026701420684738995928887591923941097426962927690132558476319461999342606886275713396593684340499650294726170195550364370420012117709031175993404576621785850711325485846344796030467827293895306843377097252647837623443346282949531295675073795632091141999027890354455426469863162819243365814098445909142225385814779233391014708201499572221125728213322394351297531012285437098246322671603500989118866334057489767962494360030996288634034392883185286901413344852930269122213321560045558702819139307700681903211908657528009575806572916597626137236241985740010019264941004573941539661182148075326060765389466300496721359635034381465062131461600363929852113795545677086472085234843322486206422714834691835465494216942731164048642022594457268510392729047386062724986343653975993545469147108534132545169400883241223048206400052098592785426688176068786970849807753763302351646709430573826435852917910047794376980872749071482290269512895160183412543269761720482763976527202127556484389472734425134634833753404410581484074450090606675190848829927469618625575426565231663401276260827188936565779672757706309390860691053000236496169108351074152074787432570441826425955456318576894678988209907630887822602419767819558706761759893770096109014559252855078492352407922377696758156031104210482984394100779398084308709945291289874923662703891720948672263166311556007487626343183769990397670253208652086677075074650968539907985749873739287760541194197674154756669801189252140612262570697676910537117022377982637512419948625123648909808654461086259413547432973592212713383233724221655459385975518234279872918497044358833612090919410138047986772372601591650426221302926788908229063554345479839399214857831341113701490450778475876565510777315382321019439732881052796676850988875085798839177419680720793944777184556660447248321747173138164489489011351279053260671376236829409767646971386009568850955913248354593340051742090026125488983625366037480913405702820080227288891291588441195719922938094463493939677378518494053428785198813738579527499934747270179696423092073405191924984355553076392605214722561257288200988187504527553183841370871392975100094294012064286801631839547908476874118812327463411727747507554823806325411965981708159210672160134816989843659878607706390734521451839165696627590361647413719016329361088349179267711116146536768367733812911799988967578603547371883960798646161653651030184440635657827407167312698976954356839482437670918541587425717046275356980040678389462041629471863053251377391479951507798133977759264473549690876778855814312975166791116466384502263080447443587842428210858616322591222859091699528719010045852970818693487111995290684213966366731924286727299524752241059348226248764146917269213080392585518964691154797347433320561214383360619902909132330268832540060332647267723371508760417034555995913228204412241646715009039217759871333783187230325247372638758764873557237900528299512903098437555303749465192381233077209952052072360418691147717539045408976771428661914720386609128531018126944164340517138713854504110269081380451326009175164692814300439220701963297011494023473454376850756001967368020092369969164197766564418069245437016514535426326318203908929338691661711054470635052664100658760013886503506333583637475255406445211537857878563193787955182411382118643887434091506173508781916518904769216222294877118122559183517233177699652921405777264422623031183117355079331650165225602127399762898707103243601831666479777428411337658036336597303462126774195569544844797296609605023990954581933980778099629780677834471813576377941229590247484379292660822647330970282459008459391574484285248254790050291393661715807229701768070963790549442042337820129464531327516039032318512038089114088807978592056692759839766571207333078358833494810883946674339703741662318917662693533334764016728202923458204847186391030360105391265519031643805870357444085387299880804616138996601600482634538594739751975625905121268207705841172749212747325431084946696684966372401751904846155708345577959129778448510285974090782873716377494663727433827274448795118610398812641065623100426988549225768680227581354806049065821155380350729250140711619039839306337810334857395352896934338338402826943137309118671028259023580827270957441130725149183787928733944508874688501027783108424484353972148552377602901683811065755336680186583258891965533440736047705497892708658983774468447086078670940866578868455555915983294077304671953861109224344521480122230632663186103871970467272131195066294306465813450704085270315561378557247784934054097461855782792602309032671482954738847507370081366362790214305600121226596334705127927467242047985089924301358872882302994442578539640906826703569588167615201143342245450854842852582642231869470339748907102809870586694605395235336568709677290698185505508759226579780553039483715495135228889252805093037610507013838270296108279340679491635218328898811526672856524642426066147970873629215248223511397661161661364897255431985479150078834315716866763188640953157272370991263481880307931969860555647988206019218683151764581336422183206454684594891269396454019716800028815528837184508498874672238970689681044683836115070909667995462784331872845630262539205261253916991316606022857978096191757865244918325866386117352176728666794236459275003692368959238798206785920146638748173341863515843931546939286875248398043301011271881556903535867954482759997873137786752047112879461163250738624295439478945169281166245526572617091533178310284696744337970087025579569169406399134598247963598737693757606366912398966523874908214258194694383210001124765915571676792950295892192225315654998937524320939664362314656151869770070032341635096806832210636906266683046698309162697678972631174802840494857718821300923860869162866231466131199042388313669062233605978353819966504182644694173754912718504242536946737449746902974110632088888362749676471929598432194592610816591817159555460187917387608475142067855847421546403065398022505042985983837529006139551605240742918529843747020973228867991408996022409343199213851290460596529911580366340943702905562976845180769099687771186673588051053346941857187463845871992913774931200762780779401224262695428205284778189378077186980926353125184981057693663041164925764305662157026876063059678602101959549789679817746069920969195115951755365718392896912752175890875370215925380237599964226027424805366255903931184275615598395388994951063084974550003978022182974405572592433794839041757297794522108758485571652536319849247976307081914898907894265939607811068874513226534569262892948783074003486631672596284898300664792387319372136033085171213855360947334130824563074837133648300739321077448901491151804128690201829200678121205428774808683126400465122980238660287724058167689311990720966751700418940411177029074091776323876905183627042499545945966246281489670695686782246365593111607283278897328243498676597727147666160032347878378950894536212939725180167987917820823881264504408570058584065484120199542655244362775342536962445171358904563923280923408969829508323384774659543496458490893064225004410298951274462836695135426753753570935395196665490664035114000501614504016966810343206518879657556766810426710597248551255180223888659715155431466873127367125398321872821532702182755275095348508713109672277126052103362321027681582157245660519329553985305741368579226298881989150012485017814808232783304709098521055657634872318261506395779398972096778220456454382848994250854186731937636683549781847906880719521060171858725260155044394679529686912550711795387199807735560771412858897999988527320592590499836155032923268807974893473386653514638487892879140958217690979396993039186149618701595178614149704154314273074268313877438322465701178513951826035970592691497112041579723520436126768689883716709950536286185389054483005340306365672958002535315182918717075372522340786238232254697910182029426098750913689786854809629705043146731474785367250280592760366261343690232345679700650092557140917508902531551636171824666873794601211931701839389663523521619476114397368554792631746988426248907261713901331885319680635816267642264969393025428040090572694214799237478752522378005411919211926873322586634136250177655076615036470282020375021597471752349985807536354362847717250122908167390080673029520343806870706499541112426708558643214329817652289333686524803182517249349825950020120816346990303882563575838818147242869289080640020624548574013985734418189433773000093267946627792612444846146797456952680023012724136571583761166313399759459214055434749629643785467966661446444101568808407646009503605530419024460609919111721683244349969551475324075575058889349377067445169606657580084874570092190313886657342748447351077078768787695096189297512407052208060069774923929000731362117977568521187521224226165039445876908031243449655192834466674674201536741676257181581700559224596559955063918187613372520544045627577594769671189612364373375935833326530365305872046747016078553103041873588762424619711329061742088286967288517700669771717862974647302345944293297176122202689804964822262793684794838597155126460189776165580120200853233248182440005883032581495971386654513804244575665812139259184136423543136565635356890421047362615614618499082235567919334597254327962778624163711418169575430610480351909547295787576332949438452432751176340789708369627472071985903651601246590182146691170471460751418186056826937751826593526358152691514153113413897107575052583721438474780452725829833262758713243247909599552314192294124645201111479457128234112332412781534161755742301293747487451826964879125581181405031136602405127270029195108985203995163211317284115914585259318288568767602383511554866114152069763543887036295999710655255118844045288538113877024531386284229422668089974020387590959159143904278947288030975089489244827984680129851674662394213513796690105829675299356321438975352084879212623418646670347720525944854283444071814986835648954175185435771149691739593520992974146385891269477949480860353414906301771839639490308011088940081003411652072603979517633402836031822988330672557972328279814234523133978092267776455886077728113035212370444983818345294325150191625900303624558814116313913721999619730216083999781519718100386823795683220335191039363713884963806970313059816606541534835768292614637547991284547615050386043615241290500074974341232997440046713087052985957741029703578125252698443993493169781782403657016185053660016265693608625425887424474556666057982398036309832876672560229067045693550913599231385037994602030473572318607465955184872766075837044947588718367416637699831644797598155699273208733236554533750418302542428878243941226851675750609728815760038493144232501678281645619726817667589829752970809778867009620851838892531719161517927664136128691598820125030052693984477298067815261570429044975104198352600165195130861883513434712044656299580069348218856880999219003083756395426300191715510362699283326707714925014318240672724851552018987437189899083673498794666797879037988874460247271175704654223317765801841694494838582020881813246744868168551824361860392262416978373567990109503994294697444256881571686184056359476691120883542451517305078824256156817081751100632447480478634696215576361891835952874526701121463238788547192435717403485632186823306783433467596002742654088157471887777413863552589055552361527956850935515874105594235701325560095801536907677143505019352415525370561321157620862109045474015441073378875546727580935195530072507707297791361273474949734254823388584325386688593626929167562213621440494893141850752236944667033915296583611324905004022680384138803357049867820862305788655227945744911569411890605557541335533329003457072037825566192830318118622943780925778007059436922081476117537445038265684640975383683385059948847730065146849392301770536498155048598439874867526825849952647972254390087501600606055615098898808915636005599578625050150759423576620400356919716913230255089537020706262461954099279848196970722059766571119551796110870475681820963902855237310001183411303518031076178692479955100393928141522554834804068434468755479473488318924646412719380654208695117996102044817672292806711067850988570020325347877105145338859190420862936671753115653247021182188924833680496275842583822544092710681651696657903139192257658705524535244626264278755994022496762451782744105071617638764515424846936605771445622285777204186881857803949740749686988908204162987663480966684937773526588171419604757072267597803638441669724886785518628063417313124326714587482368038295178909506104131086645820334940587322378282089841373109752588634866276458953688917089703203729618563563813231142818878756377769928374850896142440755325338401096898278667577777599093286895065829439552202102964041344933786705361476270589286386703527660968719888803460836921782384355302929991054629595861992144888205911564598128152730183018827045827028177346621518166015312739283824159911826093155596647443352972542259217408382924843663902535121080076917908898826947973898198826680764891967743615252769344500660503445115992551828472102491023769019707988725981668053726771618784318015685911541813001763623687348430170110869551288275237481842127911687240880570948116772919600859680597120175301923869473376252977936518324506045553359373475694332205114205573603773298230079821779293966614372023361900648084947040723743552397729590601322064180944838229307464604194278045449070796247349299806050630212119875751485463417342042780380514063439188389423145696940587901699975130658899723146225634041219375290020309799898161097197992017013177310345439248172776726538803889877302728086104702259820285547314213840157494296817142729846300142543403738068005555595264134579044773986763394167284853586970214585268384154317437262659118945281218694315342248808754460661150072414978807747141936939018062166647788920310503653274815212468938076968254691133443425065199242777855173681457043332507482076874317770024569742618683553734227653647870533327083037028278639916309922538977965395234093526614764612956858698689188085020013037603315710198408638327212022117112440373726358916507297370678584313205800046577964575106638614613849692459341301253178106541631321542099249543800053210782209422365915880090056225985019776623422205602885962170317619652173325523833415795584760991116114333203187272547939859094995329477871061888449212993134623706161456214380030464247067224008283527065321596506724294798686358544276566326166328613442804573473658895634824599288275926236378429845681569398583889371922347534139210821710733948430887093653908294473213270482565760096886201396559574979075310129067742012864876141108010535688683949524385346195887026316845564879686098111328146475822933817241044735322435897573683103748505937800480211519850622608104516075958010275947675309467729185641718546538943448745289644473732622238281367654071745198863013142367059076749529300625878262144769515464115128885776883230242488552483925813635295618477593844941999115518032611037121594513517604449470979491075095298909225499662406049008845340242464102427810936147273612246020074060227914762196833078861346278601981187051852096910363970477124622297010527887404726564419652350432130448742487566863144661808641938298849372395804258154208717797846745684939711419555542785165325117117616381677440756300153181021138462331559413257277652870560100938574801417769399980760083755293055411298146021443866782245647426209396038674155037764533092705553196904225708912864341745146896851569976660318678963153867252191696293778222940632647854967004287430457815406250359005932204047860672822525834616573461173911542840555659909837193550230834919951933136399583134515606684971662445161937649692865635420960171642810179802910952975968557471333260412172704255231732123211807398012626037775561002075329038084905480644472443229204911243994048565059333214949991902323221514851966620730196813365222691802223829866168688741898161287409486870481640961395566232384541088328719427418055593452524638783216937389425190680450138546751147833762234887109903386470154789266035799746929097423572669676456062260923485639465635580418583659338704687146133867142982836252898656174893433532299697697769324024780001407900944095498045994717259067556925683506825500120281377651210014913863638989290678062767323195193046445755296760691060645993303906501543611999233156795178583238353742583275684626056451211747158770424922588589580632858988734432482281279570658133863414820924888136671187983501526111389308172830055308688015409460160139651025390571675526229802851452738221054695210660303287530196246421009866661003345692140796039857964276197342099705114407034767606365183191178911665470865423600238520649448209594550612153290010911855838772829495618678192808498058261686784389565334595299699672946631626165669944387005770690932612046925642198417939824824344956548704439817701580168068734329822155358144577408216253865315506787903545914317009573771478279996764794569052079845535047686173587894573312382235862045871473228666503590362081683214585412377792780980180793749291596718965069292907278825892101814183151940020584659387697861374693973904837472050054373491901934309900972258281862654894181384935689816549035674935536194050152757761081387053418665598879724084614480063996344154959559142940339195295143882238528815048091833750272262068629547996173955524244627765364946308503096002848959144359616424300984100487253497445266905810003595582171965943682028546965266886790288481065045394449521331787355284981586704953224785621362212870163980015432954459191029177747050560513762685527767256336916195033822727323883641018770933024384617174187009330360692818772542468412028711717531059096416191220168940761874724293445253565792061386111465049236139760023913472800416152272900490433705750675689010459818789082384103903057669869137648057961804157609714925937803464961760256529981527561560771655230340458873451023580056420487616348285421549256933427732588529648167541238867917720526892118340306182114200070963413746794670104519586964755927830319817307262377297319325394083243091998107630266866571557627485188883638755079739734845291518940562411296737014472495931462394688694460001141598116098838844289361816834858168837033414741932184480429547200748077197051553047616418309997343087342677329133990221690402657997121010186833434230115757354544316400411341746919775027446870241393330529070421729987293103564136622389046892906559626188358697105485632809671353648406930749046337932680970571586454249454000529092286691230575493174270594910037620873678824226328440140406825188717070653775764195387255534429659501287062681935205151310500973087324588770289276684184620171472816075731857361356360621797990642852512929767637920393951023540514026874444920157961898657307327713535474518316808176061947096071523954887717792349088044660026524627221624265858456519220433832502409609859330719800258854164465141039087903241793573150796837968728666737671237699996937578390827882770650024622338485249569804047719227903855027210222146865246720847411708793053472516073730890840806493312383991456454158772754975305712266436617862789847583824301845275315015129338860039718764528873502109801881948053471480449101403923032756862378990668733041761842814696544664513740762029044476493624341086266367488350202110953645686922819691420255178146460841628994473728173462319757557958320121414977812820491077516056340448205631922794843280789182071616210250464747734592834605760240241189182066775139844220662659401930576445522083836772028899224995132392028195810114911639170332409779236653904411106607273427171549950406483282258241513320011649415840801425822846848986315013176314232854855949643154333282913716044046484064948676825247883593555948094581570453698662613682525484334114310587603906587392120079464944814699178069930354768821946102639508045000384925934867920633145703271454085381182588295266441011290809325855134307661163209005973141670243583250703553085878940853839753267701199319530905955240951354598010715860863917543777356782458508696509479631797715330754422509718290757328530599131398979657086014372868520043364663488928030755663235776068830432129700389225915073513852919571370316010827222083442307039957762728909868293506388435043221371909884795832663682499352735543960375316386409920118621960290581401824959337075106447129076638133624122261196288802805776009827159696390285425449776568345319023167049725722725174583518381809968377738694294691372267918163003425212973514629587530589111163056721810805484095185613818849574026952610526259849722851333792616566365797041250057567324177312067306251154366899741639502584233481897086243856215137846449888368714515648236618794222938110996698279116053987972695741498382877490085194862059134340258220406347952658127567337142179476482050870413488283911220895933281299506272789604577126175245294840326706949825088516592528713655347324410458307194254918017400965471656866172804311589817925340662317253879241243815626393688516884814548843574900011074622980493864379459979950418543392193748929269326339632932268873354564149366917700902871163727531000140653723624161427512645009952430789073190423172698834032139642847837214645420504464882064041352671172075313900696146929694106993374451873181134783696172926915508315701741434148213123939815973710048929081407448211816363060813095710883084474095327361222500169211554702823203218105731794338314373065363711677902908238900963055512888366064522721359375639214958181714860638035559018937876067087101334530515626844900097086409817330273913156005240027175078770287271487777386532527272709266921686040066294514436952636657178890584215679166406292313026903090580433752893414366364575821207365537526010212587247857337611293403764226075597879993486098421345175880428916606561863560739803761514170055950731655888202102510957492628802888728854519890337945290339646280839762106738471278400047389398434471641140200033021321204101546898555151167093814783310342077633698879535026621216686365646221805908665593422215372621174747774017606068213644200561239604453426511309195997396434517260635073120560347215768915982531567253308773689121283916607082325452058743212869778051217179788690821310649528111877290909730738837713500083857113147042037982402948364855290835653041359953808272310065276625292705479149234849613087465112072773052394816804559975336078930386359433270489155114156117218531695713152793957954143859649671048829626477001432834783994965274721419090485702555494387745008515708137905276708759308921642227485923095752702061674043954294608285170942733908937946359980871522008532627796449381162676680883252625760733026138476389933568194226995198013114923901227215691834468103178293646785457354509192284898916667942298496180447030492668647707894183831721541741075874979693899344429986635322389268435764106429138988407899247994064443167704279107095716539874984663800326201891546415013511294261354037922902392749579242410406869487687144098518654459727070492860703016354381847243542595179733224074471304341854441981316803529327915891988622437096733886367920891215842055312926038394964142482453161011040692261016165464862479826593707233064484156281387176231768768452418682280662524839423761785342122751742661863211996324316869856699876526464365038012945920417320391343424561707738451839895089544353842040990997430788930917530692691472420478474092708524218109535767724216073892739641430330052912697535563082352916295936213159395490020067811990258444698541046075882694337936083251544334193305696806860689889508332069533282634906762271643564021373147554391195428248861009799362529832361666156451235257184519104679514006650030680921182235455981138552768711345350993033209399120060871791788856846155714903762789264280720139537303579526538121535617574811696660495371223746317493403548041927780418447402155715845785617056330126602542461754822442857735646456194810061239798770923199345989115774005040388153209727020475675341810491495430099193629720263950547564008795717542195019074528414802800922984830585917637318470229109304637437261603162354137277419483687840257184443071646624985690904218354929813567596380483935125323765688767178038022036300487642901401529264928816017917192941165322110975608971189884326232193658627425504950886180121886037707115577143241852051559323517793353974130133987387039110696268287280083907242104178739577429913647007048594875485810753471868341319684625256067357712121589930188414253419099704174367106142559732641770323752525740001945274204265796918763080929790494858309573347521954548667239186107595504791751817589090169858882906528771644267384157490443876468046622868326709686493177357990512876772465260632330719319748474284895953816590470743231729393135689904741224278510003928467895305081097849665335017897452805323111528667786959318895025546655768956820972205444320792602727918931445484754874325582511386184575575811498541209853306495027114929270100738350972655701618132790880286175229822414635036934802912448055610201611830834035531264365034915351670218589675470115351258836948935440453921878442147958396128879704547481961093109700201647643414626033200634805756571749708330221989720342351294273265694396822118104224246839820839790284376575452195393727228431161031388658539279086082042538880034505885372532089452700825763350194216169584579579984036782517663754462081123799738918768843444527488369205230454316768423181679359329060332776331765348797762172800036047440744200938728520552713376117219633661122651299363485926943515919957694870563328450413079398845952640564922871734159287916253138880397758908314271193713408495594087909521014964098944622841727665429027682655140629772409858317951721027393786912733502168302768799395817751654467697538961943644985811293510666792510912079933928818812208361926204070816857629926789504564656042752864465850442049556844075509806773419297349824344334561178485441487661051220733848679372621153744800451619236285931165306001214869727011013624249261925850942770470017033708431403712914533023728268025629792068063277726839888842240840529935802977887594978064776107395384026624626889069841822580096599754389802210430244194891101032270910318329841029587586856076652799677256601207344831092159748173641617596570731407018401498801319843806002671617520129689333463552685547061376327489440973796858186581018619288708685259651674687213755280054354401994040243353372089242663852283181510272921309388490897828031693689221804370476526751148851751101319025599740930412311202964947590372212719686703712435341089050814585252021067921147017732696379977872411050755254732765673981960154572500154865261707957064142387803548456539757722962460317397511644317081066216637700156153989384888709087297530402020425824022832449384590491023528665168977315531706560364683640254041077816928036273556239355438017414184187169261273464070805537574520808416814873018115892914715025649223614361114661652489907915927135930043987221833575645744176699587004507237860916505950665554109414900862553564056097131969542773413719073245062325326802014221282560385033051218443675147313005114375231467172061488758577380547782177446763227067763096948621204471697840752885088164015886587257882052314413481064712984413567494949520972888501570806140777089707355174064718103972452396066116802895726710248165210236979372950434245247048772371199316122798105458619169778920828826177752446851377986741379891000772460493430345123056166637203700482081033851561632148399777885668022842250716061845828448101674267006903135173827528597079261910285268673540883080250977744289061321499819092423128859319949905806003839637556939850395656420432832024742639783930624635969847185656693761075759624862843344440830598339964729592919339631215949932593833068892979487219296113906645635446065110119401394224451186950166767151415489948860901132406577762394949466034425918188913792231675683715077802061316991348747014454257419768235709535404525965462339252043097044028915546911598737988472298094112755276694631205411366215594215549906048925660495525267105887986599708801143250368498206898741451907576955332016636310011606324349689272307985467251354368395244565687702044896164710697120183651403465329071910708405452948520404275205299310710828324968750221052388289978788445939722238779921034452420142788279650543553703752877199834762541770607608032372333355519348369951668021076319667480656530242420696527298706402503035508883070804013717520991215309136166072350640525261427011815339524955684327927833174674101637846804381859597711588456558946844067639337632321950089120568635406673258122391960891883191137876542356948136561828114861710544612576795460782070235691196049943489203570218711337773340427796251738324880885700824537094726002821403592083076107005113279903317843457759838558136142831397981343611368176716411619038198720549887393886709776759126465841849075037027919003142179076462240046755506275112567852102117787577077184428876876256981726837584535662475462343615288430025449656055197018702457744727587127169573789149286146966578294724867428642052466041078227403316935453392389670256512083629493774343656925230588198440586975495077895217770743227227647764658912870816284860957255724757153740307252363871119373007744872730225010938758606063341083824977684737214105587932792855050998024170074685626091761530440323393888696031449970459826033805726100113582597741780443728315598823083052863192420119955097524960456656925430182966926162287236878944478007761101708623860910178105191004370314095007377567986050459505252138143906598339626531629241187323270860665791472859709041960968574595915826424634668934000970390313389816944491757982425839975927381019264719991635060671926320435877703513179633526615638628356036704108337304510078861644053228182041267458451745138011738988266229592957300610280022233183197329796342520801894633608366089814670527078922236533109318910566848528710805849769266590808790105873598986350910863462361056848900534750114334330329375173170829523241015462291800935790755053153344686710852916173365703458269443756020505174333653945860698924390676353144701602305620823769081765168411407878225989229185377440322122138790545799546135379303959608048667910777119208946966726163756716760909424769057468904492724164808414897719292899681808312765746003173297923384689796970430537098933510394832330590617837248098830723658419815473278064207006359631539636643830067250846551618856872439488440294302297491118787036313813086031731135597648835611425510696037209047722507017588043696799052899641007002731037067789777920325138002539406194770260985667737672260075810728551888809131334923734236941372079859283490011934822584850878494514041195287848503818034186239877958086217475479900993614143302557094703930211563625865976731265113628088593144398081912820001225859788237349910137830692435006510690186856554665393399634689360456265574667728867359353379939187155943150202682487216082741621836115159795546512673174285052130605920560616777676982136256864029538428005036743315500311258156370301583255452549795491787081467193172405298989701803110772517807004732443268212740855933147879632748706594738155826186963983420424192848974119398752836840810325618420161074746147704670624111117294706102651808643729502061771813848141315871576575315970717178361424399343715215029949593439050594299748014668914412105530558211021553006244311881354933668862599832561608189437328240927472644969039447330300044799043009071275223281507838332008186667427207719237454374531855623634678565589040344915136331975535974291936754821859676333278396829215449307729390600174483730834801226082169345955766402755211491910479295250424142888221038628138429638982442725156254798449166192954363576093243781657054819312411070422210394826600838405924810930496626069118820960854495960459201009341134406273793294101486228911833828206213874256949721250755713807155018977625558017453221986008102642329199352621294748442237593412260150919910873973716332030013195942523463264442709802118926663243767968350503975103731081766077123316362494437423655038801194621587774579811806600854936156600703606101498780372196566587239124211197925764228506936934974953161604829773933385948124194051231949559878488617270206140092642882721427724750931651467204404323629173065004574988500931352165584289743777837150049760602493694351607913296691392220455370502336532943521016738831324775795924892142447748623022150335202165631715905118006796693374846803055096503873661770888687955702203663116064594756241388082035885081203161921456009796312799809784683670426040285806444649291135371077203538637659405134765346449022039111826434639586921438886006737046048265750517065213097177938875726184199452222371365620353737840906380248340293564834312640710815951163938492422217535236861407630945002754808290238843501244304518586144943093118194595825989320377784283065705702236370693345220577074691124112220570809885746321408444371181607835752770096630162016255836444295935774327368662286273036815257948084803486319430091386532334565318054936047918180250191715508468687504998715369976839255094302576390330536553741331477578717567583278891869590099933011726257154231356658826450772013139561764777104411564791596174738797937102668479999955124156621089670496698787968999698923879476988099927666860657396124996276843876204181455271198191648825905614195624573789158292271956036256854014077947381688557385534467377435641489191797895700822927262354871517521706119287470966632884292468497248854725957906701283899603357455935251377095610935578077497835415095436828602530637006173696243494378981401023711712681605809340163587080943778216934694895417110910869591194715784973097263318647824046693193354778308355437391900749856134143322911384885538921283018164898855327094765248567801729291883315199024651123674424682154550235716174706529123728522802535059792394077467610911525292734255098247380982117185756099964975654077646663886766059100322087499977754915411003643625712226888515160606263227693598854043301992607619732053939275306588227040995465760563291601062654651035753608271029357149027013799763625189211365611011030763495885930491090084609575852644280172146673833802581069505415231443930178000044422100620296643154334414144966595605988814875006058096888855929923481461301320422427321202616476924630007361106049388480148163345116813215857243190833673408487145209266698009443395190273149373225568314439778170303830916607202191619855336781031815106920325191342976494251039480170106095927352446856701863437197414797494332526043107014661914635618328168707749824328860472297157178368081653158352011004339696783378355487814406532357580746738485204131728533162479889154573354781170762188487960547476479009694744360368274982956911061566747498251151222189509043490035116392378702810635688492249417156164490961757386621269739362644142987821003514955794581571331812761454076452030061794024058787857044446510776541510900024953836491730801660388887796889274555548997162120107981778298575299350215648065512132748072055046045769219152628055603217996033992627987420019612339123939941204219900801780276493429320776896068738978721215968886431232382834101091131744417786700744097996778080913751684102153806575884497127927496722213209480714584575021724063565237428809908233180057016672263037760322676975222129443445985638885654719492087400192299055942699466702541775778323525989239628735664476337664692914148148959173190277310388362253887281502041640306636477681468147812680206023456643965671999617021244118571234976226667060938092778126288950174353482372456714294888152048705066110503214347888237658554755902529022856066879875716338204194160397360609772359225135681202311578962815176480579912583021128211800728320978845690202957797622460517280952781522329155005880773154433146394557675533538615032509677782073108462084351331233437039852198153574862812619248676802829650232958956741828259175291247227766534038884375420108295680057668969677842585377181892948869410900127014669214637832676936727016945163551668392075144330771431549714640051604927902730092563615800766296151850752866139511309237799825381921589322888785439747407083873927982058769783624068754674877536494081603848579506346833969510926890710510695344761518107213798381108747601126671164308538133933686687381729128410397744790180000902236431355370573255349742121783647711210771640882364656429810287118107340298871113539920352819576925173271581830292952436785703039251677309438083945378927963376871801777422783729785464032978204674198087601637271160632865057673100385441127753330678228396352945804667809581153938054405799606114662481009018977092367644090695505429436839035509843479547612116161926382447356212718775417841438992136803658260284406712341676385331304278420578971330499077292277440248602075077278891705374977623922980338703898359641721336502470965751989799128087964364147086239476586062227122456322766257954040474160590757787777883896215740144647770025352814781452941740901978088562128655557789479795175858851343273630673809033293448196743578780154897206886674506715670669387816110468815699446517356426503196554152634870953335851309253436210198468717177877169027250148433985764051718469420378939100125287039856405906539765255492895714746844342890478677662631665747181153662425706076366183486625502158410293456574347287847160402036390453909719579532806497432316638570758263497343607970951192114035574851921621665189116687618236436224833991823990927744073442176067029827531413494543316682658620629632496513158522122881089822382508108245154424155183693038498454871093374089982213713383927537121813464655179562508234467021491596995819023428777395976946070049197579637080376904769566619272337958760197743391470569890359926032322592106284426095871814467190482933794850758267201701142513906690114469093169710810031541196733208561955223573127103959163005304252898800738780806936632307687389551387140545353885704482318155455296254935899247476875203297158331126439679113893955973745561048030722394722953945147770220690347202137486511330284251702432561444299565562658554773123322173273026650669756883553294160241166821703755407500330877848446957186172972876065348173165968808351812007297405370773218794218644070043080631572243756035785675081486981543985854536959244854148518230125182143093010727139450042541478560583388362768371235320144864466604249831487312410497623433022881803587391460264928074704633131968126222243830153129957869017624032689116599503758023476483752195064836709096871594677993788613419236047781705300882030552859105899729590850077524010891857772634120907358997825061912206495249585938002107976222851670201200702920669170461481229925414080503314510827798582526897050299558048728553022435669502658695633268520229133345499352501171977092702377386281276270986047376306371763699015714613204806886366688727612443594409937204354277085011780919305380080099326126384831415763380216181206611615019514876168174194747177611213575944904216123064027434666871408089425269326759841776412906670623520391694041025684424570629632144854487105091656220798587257320011907592953237950806123215644871080081674861694414791972867675847090576770623364963653594043626607493885100465424136412036293489115141882810017912318535897451034272156023993619016711186049613243417484686551628164313393766795039952130791621504953392543674408105874625628651866381945808116833738392217815514753442934726062361371397509940022630511524879582530447217467517067899572130455456098854392886440929705015857906589090730257977226241409011941787104233332801568948655233104733014659158793385933973658481803838213407807883572160290716594322509404777035979824182019635407508842629200204299313649351257212325724572069375290499387937395719965866108110064532577419374715224461815161886621017566632296277566536051789562685914076802170592756226977843539792298390781139284836204211525085205299234810474862488580720324000506928818010036017426876908484230954732983810260307678113050661731892259718464849976240937801636777155597445276120885042416524356197729440181316598620346551381234624376959373624601254386907688582352239493752644434105616049729144808645702531926699812158927272229794047988695131804283336868724746547733296056806670056149307702525132031103741876377322006951599292185167773435512670993371764115967933029803413124725286653603507444062686525464878474927975254046178932359694653445989484481466298219455436084435213619471132255618842897625133622948233767451572747559944540278308402496822273122396671805927136002673404497144735957860228570329444679692429540669092840212618860825873862558200857406381822417310709032743600661985987524343609408984720457806124997502713571934192259346819983743807899690585255976772855131942999676569432451501386388687702688795569691300568212403799440705432869856148245679407141520834033432163035088545858479896192209082776166184365175668186835439351763978791252334276269361754945956002215254413874985743343296609136059168642021965068135289698879393355409962029277270919618800178899876781806245697544023837385278645833451250352339790493530857595707987164466312511767886885913513354508603407325586833108395267719986841897922726857844203236264641779921087992235331223052230600475374217668895937380335869245044819694528048121015400176908018998875472949628616547250714630646381698647710088668185960318299145039228062172337123159206304816129653405866383375174755524476198959674733129908346821855314256901005870191396021719055248336427804228878100288681621483611752577537325975071706334943011609120928340449294145361923432381276027174291398450945838752526132411524552423450601710042721976573421985448189678649203267641998283700731705491100476338964941137664611681177778589918488849426683232030796503199622701084419024810067767157868868123304823647921297693822017503336209395110425428361191877386265640879474395085451358532297372746184525412585498561489025649923512025023699333181190370534814291834586162472691843866723961441578384470722168996123227715677139919313231322000197615275691565134238511498508908720779257279245680408239607585490253727774511115937644390793178036458054021791650719040363364548532228313651988847762906541811609282401190214310758052457194073045400384725871424918996715360024763736723790371173686529607203348814450089316071162832591895961207567645842483051394097794597094870661159030390219677182749855295076843718565019013041409244886867255674364605700638083555491092284015235602285864663257442204803709200786353409395553552535416610119748114874157270141808013335306610961691837224647903181110160165547181663574176353490080413033439072133767979902660209130677160272299498722349784161718071784334552091376736858077297316750430449900305836009140809029994995150045794167607773900232892807384190506389002904731232557819453432817340088008072388477037991169038064988256840763864833707950169649583813051705819438644467689613409026247687629315879373653655573855158826049519277699073574730785326977975224186377600861139868145799582885653185406784168039701723182716778212910505628665100192548452911841940053289965401220136998334509603644374943294121756031369848967544669819935189987709938098689672284251449786952751467138308422230509471671045231756002470349847000705559293878034111594808807366601728264083722775922461130962162847127271477441648887478040529146169889996287157179521232853031175516024108243500969919579365988946303040391291510337605430719938443098525967074176520158343765882212965798912536918898452358844132883337899827848060281468118019819952371097971326247511159019560932526106765315135733951300872147475466822385555033214905050171896386145246704749815267323596791721656154385529209059678098808749245750304809862296628717227633766924787220108157130736854794593965068819122093273998190300050909211117206464711285871468477138903414993742770004397247701518409048477389513107917474594876805091458035621944056240150983384515952027508137250561179516858778229067295121328411928965706032100050768820412193486383361684394647096950782745747041182286230458123565224401289205290668523277690497771731702074612041365780124149673891772928714431143908560259532363898337666122710699653846274922885268368239585616318303811253820674403058180444158942845400342350314033582079067976570200053383654309670666340818758141026472588596152142874800352628907084828633417358951893860107617158198593338874210450237292436834435459834158608169932721306710028988138560965028739636690063288912705305048745063159771360626214766780277964023825911118906248816627190191279022619432581635735805652751246060752223466462195336781345187931859079525674579386753380156877254476989756033713570225961085313273156748391427031203197357645931013934248986624280604370361376101258672410706144826985141160218954944359596312033941515888555061980499663004144244572936797904234353673434835743469785395445650279140527782268883153861204116302984847213484883825111707008177493427178843170957338717509726141083894142248968297810038696927745759998316142487617870878567023748505865600655624022355181739675515966530044748681083685001180190395324423570698450568422688624550227535929120296387305604490625820112701255721328644121284465703385144176544744604786171084809087870495932771688753371348019379363372198099089537559412391431350132097127642791221734524724563543684034826481855926479855565536704583382563420203714721343567191953593447625663845905157702740332341478479833594243583845640690115299670793626492523495227309501247103094717238930287531566781609320604951328826711780413902771518046556465427476024487082095534184035646768639707383927928023338858720408454171199688429528149211930909652562981465246183146879428722506358769331032284567032024614457853570983272883876119261673550566450467136810754000434815073380529041177788236908188135222690768838227658196336043688192985251423446250461872186201084326179762642796147260486342861671961332666129133395367737237981847434627659127960024575247092198730089436739057382030075043180514301056718083287455158347732290374662563771574394375988005138415511965351538102819793774166642653899076206146547726622181095514022538267528557798991121510405357239330932556594351172923794979603473927546022016767817777485747496914090636913184999610275329944969259323182952551807525470638210054866299494566040115719962366627847236162768357721760587909641559726681669117572583181390610414929429210841137753863296364221515101659248454756502959160531221542721858428752980632983879962888798375990751958680810791962308971387037369522134683299905177047128944554336826380206231260347979846310859040260233812918438586388752934238016870769129627040380822616249544729028297114303934601595411471176698279437887380280447143251339191811703324715407243499265674649480053162488421753995451586425685478635704765641213167395573424186808793630450688563281798681267794098770302468305428911638750395693888918457368694217363867758692826700786535272045278692676958053463918505110050260256760116229810686098022409242456524328504011023885025051972825291641878249434636207205278869531463217850547800542089542767091016785654702546489687721849121260033326391306638543424386527665803850919969500258699896740798724509969528847419859662184600232607566013067425760483595374301988542568109346773635762681795818399078845074440087246161483003235252206800538633752167405830465783251305872363978278304724298370339023244848794535445571791125995737993721556945329916021599147961315521470667503156349358006487828844764999627800708275369206914408017076467455870738106622513289471117857326488517920329082598331002090237457380858700242935483248510586379353900672652660700474035064549261596420765778093124515193733123538045421120136139040948336640446704067424211622927894720513186174076331969533460590066907658809499000169924118400090103244587038040070960618825462418679802011826366097571471579816599113980540125679290494321566408012470472835370457548842175984477332709713842582160688647606880686862498603382009671078684173788820584374389871627470111667294137083095333422902033620393673643233944476971333641344955739616442149847134682993453849723067843149425641639344978719711193249202959246064571419906862132928045675250111986674124965973180615144363986769677319010495070474770949314719196562558794460465015319769049518882958368504722903764065149120811765722549021272320595498541959066939651991226401152119591724126826355231036759723766742426771843457155200175957233894158283210375949749708495203249266506682574882264914307512620238141998532974175977434612036194507658530414807583051254380861567147554905394966826115497294684443549006739019315108549934354727758018074676643861746987934681699352103233810311806206470623611498953496571646041615414506975537363833633755026373041031916461230251104780790569570640713584780165553972985899341594917476703141866919794429577332779402243317691281434160100575979708750149662587756507647670679618971256798313792303896786981729136442278643627496171703750221457604195047769152628060046017917033091204523381883975673789815552435374305311665863408524678971208149536620643153570570625657158193457762321491633033757177035691535339391180998665879341790052731396661295324231790964481595911658308794029221791819323165569239904969661080614534057627321425918982045589571061902066372782675571669363633477989204061185242672004313345321115533332956059062078272748511475796606374259604459243265036245519951618731243759519151861034584487086817334744142897099490304853727955145678610046324997195332750745352920237034967250751963025214260599844559227052802190088805813965349066014577244301417622429025661391631875335466076381920105046576182873850133136253697037231164304146214857622769835087797665389606361357638663830294501974875100765477441803598890475378164523946011259850194734446747731525867512831628487164678615638784745893135736541602288364832758951702218588722247203067971893285512344933906634618209490979028835641379721448185649777193436784925612741189665755692527045007232051165133749085015267450334421255593456231403326816210206105325632299925562757365518932376214654106366661384300188863234867943985153427593018523488520241572134578043548292571221566765531785405246160512793805671646633112340422264322886430424327246770428592689080049030140027847689416632243655251258180230327385684082328723251663414442384799448030918518798200744144646908983993844602803544127499578609567810704786468774143124593211831415540676934552994766320698234726090173905936638465189333868099263327605380390789459070178199258368402405842328375121029118597050251669425621947859298828273769674191071399120787956188214574553823621760673785734263140528519337762531694263067670611048895877233988463494421644973660428596093016011409788070957256940854041032046984295623720443718996540633622314372442623150567562005865347771158297371708433580627641855418341027430314256185252957181178098690829217269093099714383241401331655034591645635137283973958860697600258160022489278241296553928338340696323695955899050087274508525469943666319553301652330765938603958348042997686149337227138360267176539150642552348882792668032669164309425346746107440698121905321948307906997817979999383952686762037140147436613391479036770148998248176513298977843884479572105457110776218027179418925693232403923359313908018512866733496180521544159484305284550944044182606997038059401287596696435078490021587063098099856242105390790133317131155714130088967334278633295451220759990922280197187214368214744972700040987889317585253252155817859285357736011210531743320484944855616193000746829758284800293848705418243297487886134123850932723463280911604051242970323364090251883803936623302364553930055287667195982968524268631066017884998112568303807579322577703561468084471116921552636742960982217302191249023395775455951424847829827106824085222285278676786905861536443740974823350041391726435027391300830429136741438171883009894009017932424777125995481360415362232163802036803398424049644331789572846894743264735041595610676767326929569350994586830596882328941634312220698356879755551867034068757032464955765297385506995038754288361642326142068079412873441847396214378430726373002353137846757212822818815734151590108366091523101341588434132148118219235565350822427115908239309570758519715603741107353620119200298349549339777884399739586935416341741547248389850967991510417717524066616793898467886744513292658277444164858605547505639651699108151148468210237694762094649708556071149427531856866583100229717525014484865738856115435606459188766516470277472391917917301624680412613827198795566599828785088512108840265966784565917817914609341433624913526272018508650984529103506903464793290394541203308931883751892040763307806963895066744524201222378823247981443335499674137118132676977552286460313472988536007176321685760415811202404976002152563392728362209591757550924036723007915869354557116752475122360779514065236101136704684717654667917901609018469014790399479519587594273174380573768725149918578087257530578184799918837165529602682080102061914834265536302197692652482601213077995988201496008916051239068074041068413319938978124793594761497353017580418727101689510641514833770048170931356710015290998543935219004574307651814807795093533816556548798854654991996369253816401621205155018537345225978307272825050726435455323246493226081273131770146212059371004214550034980435815076667762341893705084957528740513523253026783886875995233275821069602551656647249638134733071479194663390722240187219033702417801607987302316524184425028886515272122308322444767488443772838019207657120342119833263860932330637069351675019883400573387733704099354815860128160631442632432120883070791284386557904187102835417030107113849653405367234853997824132438376454694111720921270237542887284799545542485151191908064724481788629745454943939289404276466877557880692743189671961687388832125614282691136600347887551134867474046949264164698732923376509850316454201381757951053314629799462235904762999404590211516031471406703405539299634721260922857697734163296570076524104942837332932879009555838156555851775639159825811999195949932035485977787382310856253083246291218694887361514746568138621373020395330524925034943581243688945427360436160553037948981254369025886277981067747403165729526446122870464549771549687860237658711606066160556001772580112052495350672494144692722785882258206640868027970979013227201244656612998413495976320148262756839281684936569460590590721191667087380386275871706044291359194553411880796440081201705650019467613245919653314417469042709990993024668157438181907640852787272308541986722245951003451086241033928778536100438196437492497275861769639387814246688406031488775835550359590204562363448689325940111933202423990721752859618835397728907368033714650004105322834760414085285083588226062653837470280297694137543541789942746713634727990862561863921868942086937198201178598487721717449720021059285580984232339896512620296885306686227880233009510272507853753624337366321663780312519711902162266510275302472580066094358147711504345948887087646929345441104348314255974270190807078116200520622089471526981326851784527751088200035600833498625366701014260830651717595988509773853275882988093261389665090968839902427504279695919884424767801926922047671354669640004729681962298184424007404567789969775183366095172916190119727509930634491963910897767851622165579080432870504316152406407854339054726120073607104787057193293994171650812998418031739930805544833358662644768260433316107973177627871655168934556139878514744528552129601307567919143252237845805106822956133007709253948830714004728906859896633058858629473011017585510387881744018914628409781974002960907537450550893148284041785909450776985455075079404407366220625554647425558477049170378334815959140750657754335841670557676916214610022356076057392825895335704925475668449984434615395635272530835887154610412232978236692134917827683856113540231975292691498754150861294388937005575654179792221282904462650338090270755640505314438217957200574438598122198967907493486555788230295135417471887824396138057270628815401017060872719913114468243632698050993784363366391528260269847204628239796929834089759450362657156322161236088877100045000018139398452863590393001036109108105983959073834524364017546572153595454440937925206675719743326352450606376542481762080540359447729378626286520279913155059627094892384867751440936074175277462958166008948621806350284249219335341852505874606077583766954365207798190897595802207613143465406959100595862627476688081422968057936278457665669563429687384008964657933669081225144080897707216793231887020485299304960288785569549497120687739689941850415402634976181143012608216495391253150926501021296343069454114307416280763926746610820579549108297216321542162790007844961979725023224023156475863039495269986797465752095245701944692686243179710192652328571232585827050381990776156073909732858271812384156950359586500749128291406168734522933012275827694725216635453553404517173745192251330467659008476635583871133050205089697523447826818066986090480233039487392216842059755369628339089912831464813226548860209237941352863263387408313298328018810989204569603608200772632343602709161422395830546254479068023172014456094074519827857670882925815927883004999512622744161774605335477555096327081294760597257298760981429754700329048552407144825055562943940880007523738380184405983335647969560789519246028688443214915076580238235949079754435348956734793831973351586601941517881595120370639497348335873768059784472559250899184534518666861541258977112767936652985250829681424439302908944072324177821843992911329570791872886586876968367777822925775002173790965557908507493806865467806860683331922305282789019242861938076196865817966037057537595388205246331799351485494312488146638809719028993415228529945114351050560101563622298398140290476534898734881304914289715923485168395048631403358108919948887446912755738973551875634932068872953162006060204171173588063981905334002620968263868506177930342807071933839190822801482189129664977385773042089708523945263301069774896168783684285123392387905668235293797866325880397193079651245646672358370661635802980938842977628408827925579044723785333203339223542401207672678554433786236790508034597495472339830530958075214465696782262947434158654994810253981144215980797696758428400313238943668098817151900747815117672287631577377913535499079108789734437835829017539192019827765182114053069505011306397204087784363154266433219066214900782991056132052535906465680731631004294418051601018043420360633953719766490703577544034389929614411269114970002098102882271906223074854656646128471015612231831117452524807816906291034171990608161778194843406911217086818835582149159020049544669811564157999698656108175977510680013058971510062982135140341202590597736766339283148560387736510299776415204763738299196310600593018691239207210336762252983628947692917649131776873989572876233789824321987337191171265190247071083205186347011974187533048532623658999674695563702733039152959688487701987861049436265337132677699492630394932388466766088371559928705601715427034782828847225843734014523037266125223634053203386195473205536597722724014102430796319670396288459502544246677430238572214542674887145697007671888669929004813222627481104058523222089560548682745385469856788095840449864146634882495012985761904906231173148573117877080345552280942330295116361452438110748644008768737313052924078169578205969763685086078123810696595166497112210689115752074607777197576571987583639511340577851936757125591363255859621356231158654340989561961156833742545466164899579395615977176527168822309926278308186844724262166744497825669020221931646103525068954904585102887649376772464019614251073548212153460946263552000544672760651317290098798632783940751911833725338620095918334653326186697390241311809885914975047042371675719587974037379974172736171532264767293892563704190930933166545631591199659267247236889685391432781067184792409055312462951031065187009714773017414828476685433978986891110930067140284420558871277256578369548144653445584421429442969227292938040332705640703613860211600817417048298692070947646605631114852855263054887394928829368574834642693522365498690503960603365173200016203471880124400607743943523917620126835061292921303106049783449996348040705839464370123673321277640106180513408884274939901907178217917892653091871165146709695629053754870418314132761346818010230953993884724257612539347798821377440358459553541803863706739377871926540585392594328985970044913005983237382433959927134280050690118469588945063219004128774826759631385125354209203140110958237312999133572507820535881271695325068729009471055632996993843845489031090251047404659981049160420144326186095519895743148616210257363211452762501835560789275761422033588902443803669902999686117152318985333766437791858394530412343428864086336141426982677774331160831675668072029809987890444043001877769068440876119344563380923507165186073018830587914215402926673769041891858170944771185408441789998626899523897146197485600258332741426674712127461554507211368846715499275463269046993013023502604600416250648825834015923050699873684725234040680697015311760087000985818973400965434968288706947416358565414737801001182247778476298158257092030162464619966448366201667327999293225023037576570789126045062861043890048783061202457901854758969075413538857018858196279978006335388656011126855468029189025623719910529832075614089737112108750725282695395778781572713670969251573448696311022313000604239572199917710740285604314593230279112582145567888611854808335318086740476948145968263380942778546645104956714395483870999360684767462307482238831903682866774461069081536257436824372982547962475418398261249441105378983917175120586302700220361954192437098346905881461619552610139121803001337951010738647539824880264897795505294620023821385597853175637500903780050594657662193255859572690450655876409665892082164687404192940607714329940543053983023181967011679407967345080136509956667810545093057887674403017958029963552193280823796412478000551849195940245591445926081710571641747749074698411866644721167720859965661008294773841907754460889188380026128197596901177140360685226420853254627689852046426773394310543856887212773386649661222183552687365415289885204360376129170391201504056310644605310390420556128539888472996838837580732627017701084332164377831845236366305947822501819112053296233716235915780278006372254197329404750300736918517846957241394444387380098845412435336237220229634225271265804931319124523051001993402797427244632572813565333112524571966889575643247551852909892455857920094736768068787534277384645487642529015694099544181845174959612807118403706058306436664667559078550272472642522601727013024162846013734133209946254507117313656347573353136487150827706067514463530982816005446098740015297240643185585643151282165898387476623131426823328171804432914776240537145893376773290289795125370326720253425946414331199175385905170880381315235397582991521694685887874055122798375827939332277190900814271209432347308484698591088467277192866279431017114325603338627051204190674637813985889297549821342559108494127168534497361896436505722492393172286889569054343454435910875430734842764790395025718542469708555764437382614416235808572721742938187874187430757418344050899834884709731640848326248821122008105054901241837852908635890264000392294051360040288685456633727153646085853974538905871264751064854680501652323773934569060476683371395187505059018918996400619384210764169379651191251922832864963272158170909649844555039135538918740896592726826899925672250437274360691371716517984864910987945211323203223830296335907876222850428193825383467307165224193946794487947804213110323587588044782744068183058714013031340462031009529455554792139841101688332028026703459936744261129395288819070275299488403449169518675910929935553884589104447925135306133596656891670338984942551424717747874892850184811643230708485102020679442422081090739913677165606598139653195595642495876367701336159466275563484466176004874474808578835468985772390749096845644242782957803026854362015403535238022986071259402816511375564285679604803471551595476527593436103068016076751873491281620804931347782375151650090316463562311041157639687731577738636506953032861835238262499953010418871959144264574493466418379133447461284038303632383058618400650167088091385044116676230099764560041008007570878710535922342998771987875121639207791585885445515149287788131489870539560891174058267748159390231364135340069366430915693865215914201788562220091027642092483143001379213456070075425663409096206047045493175825377491525170158398748015081064423510804276726303374224941484413502201130086807726066942996575129743667376184112037804729136002443234413113060206549257495201281480154005151642261450119956746230770934419376711003329765563555161438334056582647213202608736998795905829329387851275523591592406587051773156541377501218874984336029586871155780316670614098327224713007207613909417099989797724275514973555863632968070419813821479552431570516528082969671053492160277436550507657442622875670203185385585006518764415619576491112346966896691310580978371918184710722488882425202844185353539916089280600567703457868707440636509113522048208669209281410631263538990139149993986403302378489242459831500794142464047207006391333195836872853354341977130684670982726610511071058235368884476992632579632328451708093244581878932158944420781508249785727837044147197209371549592277213957414760387037112485829878526151985884440569302076863277384225926258066867910855351335769117742545344070758320187373591588733254550734340355119074694652997314686762335062995696841770806108277001750759894839728058706323602732194494047949219488905675585059041767724429864608643691950658629748365624970814631932861590391353731664492808321699402849949189053567393291186042004272113522394227693343941809061958940516475448744667578037328497955231099855899516364621982267860345024709437597564214977478501044813924398461219142296804672224695047541249128301284722466974979821826802560880575923355230367430380694904955423155628296374736568366995437436096734303017735879524465142444307730790724969302783282429616368469231858834164913175893269146134617204890442107874091739476795120649004577229378131620611661358995737326162118094290457059058392484437239840673701756244373003590962761312563208597764969283108861946116442312290053435629217700071876469372525358155333331871009337345879837725937751682396868181194219063704160366547693265333957344761660903106110424047874321922966668663770135707305310050219987056274860976137037301382935854525734017263992007272865787272616349855790619965597292580170856533448552890466732174771975995231982219943695166306042906789185585860458830789183390872990597836094349281110540282037324922990882969416625795112219319563278602233666770179147902676914989219054823067468007756725314855409718998557625225308794230670329684474506575756423934890969158422196496661604902330106615032619327296132344735786197496942048548132126258110681295564103307610136845132612327631521652178909408156651848198475310543643041768229844699174618928841172902887280741374625663130576065462954530846362708657727962207921409676667823818607827033421910413581494487561340154915564298527678898186522610352765975451290863099571945534091263421220195033756917048213463462070184642493412363508078442181767207600560485997389119176186282808932017221809040418543532994463859836933373007715417919690594807684033367211044763222021063780918402276959242064407561840641507318594287863756083233097822245566096323516110976547366882562082757144587371395461439438888679537222622430966391216300008753906638995342394310203178582625914812238896534218638163132027034629612722749959936334987073862774806151033771079139384612538249094947620087431308377687919228601025847914769144788911340992124122639446518393787768036363732478236096236148374693854264481991688622573731806236512909949203752721701849058566429137086745066510696062174058624188279658889966748998269374569109206557479006487418478377516964917968441637324122257505966354309350240949096676370157258890281624193931155600138650074221391246136184853473713186919222982366713598760110965903579330405774998496457987429593391482909170892358232560028058660163440561680370096567990997386598081089514992380979965560907401675701308500847045829956229972410789488711591566622279339541472802993240258023407369625771274675837300036876976487147801736104441854940469552808148377170908924022460364660327911010686484419784196544489939552699542510958538372716511444091894428300601614539445509621340400793100285172699097646446970064763463646764767284988859841891545078056742885875794421771264543525810916243443030516969192317165026560417489504759701105414833155758830524203464741927924504717411038399380241418757199863134233905448149049927131035116425474427964832171689527985680824439969917993840875532250806408523297083642107497070269316324933606322353998265762326936596069088475443044401427240651671134102168023942265301407998656887802257411510575806625096905535626794423902523657419691018494677115834544900850542743929421501358769443807858926017990811825661155672646178373668450753003748516867088891762492840854532836728402814426151653261592215258186155319413637960925749047561511732668469538593742256988968322340940008837421586134753154008734501953177707845517172422592408588018928450052239263509202215974088738674934422984983590533004676471522285373099685256837021428988076608140690837332972579364329338494755943589006659387050272847991838191089318553280873903431195719449522883806549635378041636862451507876453805003027786538511555949879402661605257840173931579242375092747841407505254477366917458961154397606726360003741496310243348839998618513414422274320754049818817787587822894855531530768704701801535335952944700732640943356809844159562015454481707729914974997651427818306236883091220211929201539750552805977948928344677610753420955852415115700592655765395094832757431661293100379707036791641380493412085239448292578437715708352631156098180561927237376725043488365147218105251460962890130998424080073294187090879160888322377809296044427204050232554666775092981609453200067770461829476346944742384016181624394932488782412494761246617320533847224302785634679009830804440025247215216314161285306062747814253271637638877932283678685982671014720327318426763363753495685831411288763497333613427478782146404465880448550536158092857164715222061550077441946809282373098302989941850454856687779265050775840127107195890069796463487387979848048360299273647416634469036373574601921846690264627671797643570959897471538119853714386900569603429011659560118956934316362494413600792170365744612373685707094347859738954851227119210018794681221976208594611971199764995346600196262466104284809362328297651158034887074901673838232313890403374417884524497509334782197733208181936585793416133299056451538371942963761046717709731909096289686298904388328929256175931930232013613471658320068567011710900288841578893793462576540063107560215066852061600912958631656258730068598535286119801245875328955720411215917665117566642753399522542047040069270437611066342627423741181879008244700951648331119939551276134506604362480335295031804558353231584833639106315789771701215735924060519116504361591072949014869265222687498043715745994288026916354769816409729016990191758149239723062813904455151099352476396214519732280121649153549188541274992771927830697408119515838726684527218140823447235343077769951338340530296288582971170862322097001322309455787268016498295000284676633429738692101689840166226093675937936808770225202742418009698173749247250632276984453470389231396736742291196221005567487042575718032442021853244952680251424648972832432528657659440324995597888577448069531605204745981509840476328231471073735409250752775396270575750146318318891915109967967663301747682665319058502319405435470218880250092616057437062073657331465335906127336852238292611774765537275024187214118892220259842609610507155351030455803257630716568608613828114046693395436731519716862828012491644884011167173237639012177489136014562873292305991396128771417146029323276159695526963109894778948084924884608211227720100535767631223487606633923722018775807050649597714037058606458183878698420853674448632987770981157370695005944828669445111982443785386013585416111348040648828591822517324233546151913039493235587144947252835527714090450108501781797806315761097258392646013966894975892172472203772451048256647257313744587532666970839107389154824675575976986249385591103992875327115177259701034866450037409329083034330673462803008089809814130438053888230874983242866585750256310344478210801299123808437004055962657668940430670930804527446184140723423637130647697138358567384852194335714329500672237858570198096029083667376338199967921240048402107340126684274720757823768693165632495627106559257664872924621040917919911220433215870629651724701315520731335217930852335402069613901399785541766412491515698756733079830462126162436202885760699653435607864747106686882412653675038193089518381023672704818087586742518019378856111192578052466669246235889382738972616779991827246266762101896220749908815290583801355318121548114894055299669155587135348160370199083811488513401657244110793636791284598318408853282600513381636824547929333769833864008363679280306340127765184897150596660931950374294937915030008081575411536692228486214478879420780107589201528308829828223262927044999659142004345067741951873339168872880544201660131685182017921222811026877887830190648598887137722399456607270444135349357078239287558896893674204438308231551155793614407032394246251980280599455978447590809899728276009959955453428727914229253593422689538045150852534637443228047124803672978062665392869614382082754203443708415618822702984030361590474067461928699379401888527615431129091220661338220311333696773489936930404565742713878114221445793974175711173486905604108510725513274328426679471736770358123041805413730313259320048852541761877574315078481217888758191277033379024794219130593433114789822481886375412265120628318839579875852429960306912316306559341440177833957786040367689145329787834738088168251621376082083121144760239131861173463243796734528238077252306691218197475514967254406306598150103088197252144385743040628838453483970434164151292605866186067977347910442469416450915070186494341154333831510315266048013204779507215471423302791742701813050530570402005367602577797060004172318633963258623150810672347160432886756291671799527005536722815237186646302114107687065456838733419288016388318435985762683571176274070702785074873410436225870675673840371608660766814112434567320618348323361852328483358214124073964576080577448540076779498843843126056151508967370235685038191867062970789362203821395886084594440548833378983556328239060366586634900888120429444879337556336347928650519390245785996360768988543388205042727433531554752209130257396180989085424207847057532638904105342466796114706631253562208196024353747799921982725204618246785680926420022672975219454635948134500951887729000391465962725118688820819641304193084103161770339596359914852822788312964557620995337122691139810122692793435634348693853761204118232359165934654960022937283901005793769179952205286391400275002709246898367520924752922825059700655542160210571245754443360597008731286703106526346279306115353665704582602527563833857536979753676998937444332280633145541247342418640121833485645726046869552370921215932725707413981080960353902822517899885481113380091642819297570860392936771213132790867295779742882526273895836069477277902307899015426540569929854763736926871421121675317023112921087911450870168457854744775959523776182917716004400346227509271293139326405101737690067288385231225387100751090448461954549450703757127417534874107643099382075164999501825323264229764857517416376382189209395178464301001894457563040643164388123581288904374983705398653242871927595802592658446095350789992271397606140132508805640436807156637319662922958186627600618355487119506285223022205062612501241591126152518277288148623714891865678783921155476351304089289402682594460509891406716272441428960945734669812420698148403285018199786837461984642098436174642921767688244436406503717905652008636812360008870740344304255132743454931009527508986647621257228857549542128920876283538040262354310005340943614560768572515024528592255307411401060282873525669795924049400907243965402891433745139225368061163502827418945823355588993620782769731518480159249901291534069434842191063304599341275013327459728602946956116749062611463957326150941109943314734533746243769310004192546198948010347272336045057338412915504472128131456183101492243367238639733580911228151679151599556019978251334071828674833516594347403851732499468191416649492146959576885792955773396389063539702549042171724149049896467091667556646052306062284881346462056002536343903979868515180906244855785462756558397870082737835310244638422652801876921785253041044523647873364713935869166276063010418594316276287663923517838070977579128497471901797206748569839446296705126966923318496195337714508104619958470836498689509674438826213173886817634698275109152412946897477542800459042381263016256193143783934630622025818251779398627885294222705322732840477936169620179933997899219970764953125359972493632853043886674899281692171184708950082894488424743592274370841965866730435224480154970332909137122473008243768064728700104239619518984979807465839395568940594497430957294196518356041675094269000868624894936280575421256672779884848764355775485918113951969993689246289408111097909149493151510819363951322964754405105165489141362576956224108614992516658445205012326144286992775272082305127056859204685327329980309174641091338355096981907041848951726050414670200630871521306675930711433559371539123785793032214011598752315943454013133056590308680570311026397156702475132521780913792394197617598396225814472869747147501157048423311793453276857511177755308665060612485253737564528832942927106058951863152706161133821937338877206097690599280872515300481901194360179208712748645420601356888384110120486983696312362483082320553417674597638082981440118515228014906109938638819347590536722607441983741790481442815081390207601696607211280862617189206027026819318003499833292504803026752828805514094744318227172745075105263898942836064035211934739270880485966554855449410303016701452275896706190504726671948133418771863986615621187329289683749217220240409329829397539441702923044835319276018711735898995631926881041032457171293010504611031420332161926130009679148863648847448560503862761068075965216252885985640618161683961869683665006671820720973712595144344941731588225316781013537293144480759158168130448649337597492997830283125187601739409697444174350110177540523725041250172856610692215619252905582328584654561285136806840613649042389333429111994584793871452259223121294825362808702866517885991786444506956152537686609328166350632782284099256016391797429602414053928423127093749945584343230600012664429741776190718794619876627365211443806164940043282000421529643533497310871328593576562244852352522417067091074768343357241546570499504047665559731300495855413165068716989433601560921872072587159238554606993143632851492776693337118711955196699211463459038086494005162364523002984334075753661316339739246826880190045970158299321146548644178988857503666801038851343027908888397551052385638969721051700233858237456641445061548843036672929311916109066216129287269844599871874318189239070944914726973737372738206193287844086185400949067091695730692338951194491463899755689010966803378568114474430733548961274655400782745807436786484086417684632398055573723758367913959503176820886025322314440174769323142981805880265751581123758174938869784365644661476503068222555686077973362046447040117055230215316334438878707056427716623731444341082770515231105177802659368955900262438507059063032223194840638743162188858750342669924163608134873871031868507570699711737701949673012588304595947792458943440369597720998215213448141312695023741562278342401412228977713140857940815937370192213526779370696587210128534119159361816773441860569697637505489496639216506670663406575200503325542499917091333326627778266915523930184249723296677043314263162401779381548748312960351969395182872316399242781571802723927867811874848188309768810118018917049355142908259671480758699825883642533102234053565761208742903165714844400654859765872169511538338967506102297856550949855526359620977943250604199082758743631274590276594076716386994593107044452143197973234796511797271508315116900121640568540602557557090362028088291283571420113348993311304128817314100406516859616974959545996529321335819398589918869022689291328448113068925133282291932552393400114747941723233440454833095041969859080701860558296418325986662940107129802239970119844623400785405464018109699893175009168374920692105618629007589478405351957835226031102288725333627189228607874082758937318420234010727307449255322419633544403261198766929825828334894337395555383442142191857936301686253551410991185714608845464308806909462386723995764343050078772530408059870684540139093894479382159685992615849078625381801323890573218128317499097198880843629011224805284602181265746341417859823723284734968184045928579248896630614037866015890449131852928337306498243388003382220662912112677708678053237928108593519250234973000423509760476192868434064673226979097562016239344138655435573865972365064323705913058672760193711334056559719631250090410611232809122445126159273400454924311158980159779669026778346481725852555114255913752420695225546055355499181407314053900496478444130549264974439481374575926587692171615053531175614961393295774756286854940823754810789850465983280104015790998947787117019502298242568150556851142604871777843096253695530413679944124115033037401754399423882134880674485041602031454173317831331710412446698657348735540897526091906676601873178320001881404781177906621262217715451380442345739675714516626581456172842972706872813324128572556374396188943174153052692814830485922606989834964716565163830503795073480331672967815330836299145499824594154678735267974663775636097719617322274808368505668771768850690509055942564706794092310562098500971329149548604126822237918594858871374994722733199829492809883163286303380520400822294218064205442031591332617048205988114096817797834577710254418989174010550395953397018680269545025696097439985368046769929362173610835729433691129978819636310881992310918152480446063741323770023366242800289366151617065974547255712704742672182623535915571475612021408771830138472337685179406704683961701772223027740448855028109568976447578714864619311882690798302084359990549103284460435133916087823283340019393033215489016800209111084858238659876956169652133356385913604769180799814341735794606200179240279643982070377483084856951697507260934566292287447446741522520209433877010593511701866813224696853345150283334962792222018848541511852574643487414517677743602197872568044914729624256719136006882611734688258523070156964375595063246639180796635690512953769055860142700132715636202980326067274053534665435749998975569717120507501245868573795792490935101971377412004210333335423266654304519984091051156419327954648738421578569156841742697118772421280475013039325214944858945723545955086377009013095850888258245130417482693186702513899965157316443963655773975041031657636801684780589740385795472019296719689088809175768838390584470444679142778181078971978406573544017704650319038336412729397341047606625845597346367082644800014553470502628027867794298103259676748887194824297312926294259586035963803804861970979368216836460925940531392644749465436397234000091415812101802219283015914149721488640221693240199819646887701193350590026064760238897476518537140348266220640513084945534529183376485132968559798085595901648306158059580416203060400997459695213429889208455793990987233935761961962404541175337035628545198564248862950111671235130838063169723726088263046318768750065473433033232213418812687668211916567789730452016588842070437258019624263442793520180891100315995991051343563204555573583859871262536491190914264890194346008480790574570612437183414370895474469842063686758237103118257684388522182324682949510718469252546257181484499997456754564289348528480674572191107580837192381221539890800438234040187418594515568816427777978605909517622726523643149529117623512693875662463469519997566778120325778823709744729983182101965833908348510861176276139699031900839235291351839279589532827060054211290945085168986170245789514785554590638533929368510539637480308999385343760639158279049479582350018405030531494735402953719032105830352393161811682878945269389350855742912362525507492055905369162302232497178816211007754042541368870272599260095831968600600438954513881840091066267674814696240574255813014529410550516367473053068575129157375652417986991811436380898512948251957940688556068594329607070830731573470429707460338701978019983083093266321625052780859746119728472046750581843977987851825005898943430602167391556468666765383321121241906104483976803593092105471202397510935931936777063795905588827224062324327486162197377261123293080634885714353723096608422023913576686279023220307711755552467945741216465501886113612137271100254424054444182061959868148684266458721638101859227742695794770293296703096135831326112163583819474715437255804217536949553358686299593476331437109487260432812566055754855086501455161467214204308507360632475872827993336618882434503116734543679479075964381691076458555772710372643368134127810208214314558393479704481545293746017634574837178419810342645287357859453205555055885490211934220446739112974918541043038646827611864378297153230248365305955903302784930291997650446448596365549481599149995002621385187673042762255261869877871258483315961395363019076589560637094318592136586810684103948428168913577699162125727190971316661552875100673863118732636077057300673241630016935276628505364379529178637107992925957300407075045289669176945560083151335915564420090012566862435038763144238944618767640330567932878275256261148715599415407621199714247932701987457906149476581729490695800811540451335501952146764593588648264313178472820519528325574392091003858463568943409494455181107614523330811675656423087775360053679701949261028014111078822394595317150606046185589652351847019445779078651575797735497723537741183885867286073530300236334904727395004166260770627112774898432609400624465631372081911467981222335213956811778316985279223563917599953682356328103073564710756582566145825223190358327642946845873310421635911001448082062041081390763057164557243552696572924382836153674869309420430022652806199072460685634331906031292029971770450029801895923342083303879256399393360887058337633378412218448382370487508738279416544175481256103081853932735809852641065103363503603448454730896716106133500469965275448251872963855957911774824035438726032163551593130473743907216791121694579067845987674447026116985835359465636111773824364816278347974134561919029892148332577940059236031588933990208438016718586751886041076006062087563383886206489856186112910550948170581179211173797915503004860169985277784007356156672880119839787019450541173774591472935796930633741490393333412454923490709267090068166350244603126707451456644891443889217705312364909883703134836598528658422230933201668918454030818053096393738125868735797327906867175073072405823427286619880852880074127432654876067901042242967844491976519324334339802030890606998554444152261588113057912627076528934182500823864510268945596351375519018976557159149605207937621052956288091243296541074529978488876869669788771272931316255185235354179400142759641548561812093244399545462581063663149005842880369262940758188536080027945835313171838803282276144009094728115635097751109102488022710417413717807520416309035810849438668831865646147989509417754495389592469855784863203473909975214348225631753014288218779757552960987018329223741150424862566658612562829626300963616175455743162577109450442723461609372160746143845813368951004041816476974872779025828155242400349864708847989112626932286351583874954405518797462429971211300672814899314472024479277522407291627700884087579851965508997392620849938445508667751434234724119946023671518874842405781547227667972246199763082798674408113307597090701153928007426166553677841986449948324096844552102644853346215500168254689070300126925424376052153630120854448657533665643730422977321940380984704912570673245892102181636220379293995683580369067696211510563191105955013442036271603731494387127430476346593227573472907411268929512404529605619767263888082024505448770483814055500873246925354193073766247247063251626141662220560151473243451591359409497120234581983125129726500301332126679383595107712289359838093311820251674510154169423186339538178768775242577796761734200527244976004050878269984029543995563967530584928385281828089317944029773758423093609528450105143895430530596763328904977591453034524568929609720387640587579901671907292835112931215607881894051826709326118269751313854121951890968687768332055569066329438690701416075347388223629044646973512785099847953853762711931156577492344803838619637782645582906662550701397103986326101297594819693131859031248808900169148719415649139968414942571871177778861032232415809523672767283933418912239617972530049176990611729605255785665888053073205962471227776771372700004907469754669786410248478657784276962605329018797241968131840985309565333051352689372272322671392929582551891768041775937733249394801250638216938057233260881272076136288539156277577103920193576241051516640863493035410571240372464135913596112051368684916207727679605025228224745593463581583982322009110642468770112993650291570497680904542106411541285528457576981128141634659889559535280852724976340371318598656409289833194329154177232136206971818402269090909289635901748229397919262564517133119150207490171220043080425127059251734969402806089154437701148566497786591275756101680729562087765406837015193835043742175255468309534847143808253478295715640520690221838874126606260458156751715833092976821545491186526729072883292379319708733345680131356413931857377422413698247919810353415755776146319141273464668797519729142152687248938976601778165186710079084217109514139889076370527444438800061328473817984417954257696260077983983324028272797698009845213143047146759259130057764464623767052796346219533350723044941106573051814915933491563530182660348461990906796766952334280241539763679603534319858109838512525438631473559936844527689363940518143160590648723039669165002130175739932148291755749440885119815566657275068782626308012139249523252014198289169149800075004549088035569983561492482462496016882803058953351241231918900695473892537132311400724121202362627580491948012889529067267665781788128464002781444700407846461112846513645959402305735282902544336188348623061557494795750285252069288286055170051081461748279218992125765193157075418005354701157635243011190310984792550407654021565185170447944506920826205380369298120696879952054944978875718488114334209608449964573881856318302107472237483010567022649473014286234220747449383120743817006218253282319556470242275214895881532188653626436825851922516176160647943560758782592694937959747099030858782312917485640759458805552166920377163522093888157364182544856332838799232837595514670234888299372722537325407349839755954888151610255542372704742515171611132287279570117871493980952614276997089852124381729894804748922322131159020397156029828918820441147835530858329983357721474990423445268961101448959154104177811322283267651092329564080854680471383407834062988400138308729920209175194605171564195843642644418320838875766003884674048609297280096922016904799280455095829216961985074851644193304589741259732907092796987994985262886707697099327096856291479594678976532766574007404956864819790738616798135140133010990445933503286752100951438646479515026317736126747090333501105231279884675376466293629216150044411909207214078919288602725654517148339443390708595140184549736224943362838124922742024080561366288903633307160916861656799112733994967576908130603170564798490992548548033606893555346213429453120571853392810007884750645347724646008418510876429602177608557894105034533869765534992867522144095288950162353637286216182285042244516131532659014636301992573071084379167556089268304469885195385282127967884632081456217373456006774680672204842982414080303209097674171034297804766637298617164551431154492681613937506399543474956247172457686962920139858913983594196314345330036977374224913410233247374234060600645054948003878356570228039976780417926883607879621918941981213255058562167616876007656116595782498690377502418442530015978865370590774880349658810948741835671828191822441186456749190640858953486054626799639871532037567433591025070832389622834931665937295713319876340811812505072137280957419286232527522569919733447360422614924113861575655383775352167611054332894335781687672989073907495553045128507282152166540240091566005620176850834179566546797131072564682182716096636051198018527779435480420841769011258723582037168076587612377983287315027245583902752664598519652377651136717099928298774296616284365470831184203190941070893984318186876890149589903105552203963377503232995866301427229917005974091735080963766816152858346886626739878732643513440785994663289637654311281207550119966326168690642978578061309466422285300083149278648997546025093112035219511193966176898339265771976609885935499415760937921202211307528668150105729251935438274722660475631463711253388407830246671915378763359514717799228824866760190676334672130620934588419037493052971722851356066182810747370014910784828736555617795609480309580120939002926395389798564720359092268114331986284520229133539210889097755556366839889237587632677728157969531638887176409733273842912723967112944435913615565606427348040655600939575721347284531829298657049944799616369971694877197420844044952702439941449970774912636970652395797512945813376886231861793826988597947462172015479807185678371223171388944592296142989526898222426435787982226268086472457641606522494426748778748435003727501426839757289954239590330519889015475928754596014661668686352383248407181922972380891329093673619933338644139843063295369935401410227846096757507609999165198984087899562387853597988778501893530920260988301343351105868321064039526647654280934848800668693927290328585264856463022865353175479404077313606603351328706523505043153996764687711429621332177207608365924747420524509442807990548133989748271644843216482325632115835824591218723225214391318328721954646751903893328725072491632582786861289586358574632724629431445819136987082586143143991717077027099114789738409004880733400666396303392400726483832168140002568806978373989283235807791338263246161653425734346174711313885126378923420337292348655955836994365955399392490705686614227242034520143121901860277777659000545494356214866205527252705121300206193226381956706822822597385760878564633277201239345420849682491467086732535349978602470048543671305339993065140610039138908256903922338319404978191590821601241862461509052575525883977191956188622568232714149647140370670953298452793997705607946340238487314606468051402628649164339891125793272778374634209306808959365356468736637178687260889475440050776488985216620037741479122844037335631052758192525677291646169972521628393159736093737696217864238006857604406621076612798834439935873740168820322304955758887131932593831755608761200833981577041328552838431670793747281126309025483867115122741114353427152540367241565660016018673311250352294016595831562276622678795861403400358484634792589091747333740135153584858432172537127867620503364461399788852626754130854331022123085737672102530771363915493416725742274296483675296198248660254131444394300481415163863397299034057411220138271027851317568491520454421679960434000362258389856609338642693590679623873006770793273740355361426312108600440295522163303026739457879360465755299606778583688047632081559592924440678985189768911879540384602924942967370720576858716117211177352320129899849481258255971797944782508498219309398776631987274902672817349333881875618228576525373699665169014549356276090645112606255728637647387726390392338506653182881417252523308410101127743845021638250198094285628233213323819728410095635350593425423879907786494335376552050252967569833910866062953450463588011115245368225795269792871138934742515455226730247971081745578205801274082756596891106516913151207118329043557703792991438162512634309277773403297697053955980728797418039240528941145421827085013137831365090841225941024409970244304708249009325365841444578684895010171690519961827218591171143987789960585143376996220221524148840214723773756094318081831958917697406892382883703634945464465313112317331400307095472044565775042102954026339492333245873801064628140599211347085136110363368139291313458618335874036821381686388579951252610668535637094537373387776171155252759894961806106743652665283784297673384127721350172185898239987490372800431526611692070363029641865649603817264982325614584180263046282018514275288288874900985189939961610258979081986396115302164968172296850590160277815756250460721054291739488101834176903532967452622384038287747943821591553963480457600656031234341920378557176214803579458379863523143239676764511009234865659413851213611906828690761123948747443385322704926396587169984961377308193540372614873554589950651356592655469772337279874713550930145269033842789726710391660717392532671763589507648936855512247014101928406061714364263242803225275093189113872520959669334215788451068278755582085179887602027538355300368590897916882633660570703569330866286914666836891648789848478592996124099101828181215679133118235638559345254026714489519331184855340426161641507223898005252766246392207384330665039839569972381932426436925127493903323751004240670647196664490416123789700067594210730836525184947178117587882852773686002884934669029508577179379272203600485694268531114415103951391287322698896977212168621258788189994385019313027403264141168140304623709262455043478268044633251985238611407293452317571383365973861587590963453596411244828924162075101801691851327756558307603205389583354065811298916751332527560117315499201099833170638018566286129624781325652787909835195484081766458778119252492608578169685673812302258324147082033620411370050841375425958428373425288971999127781249753559753684140436005494063015408168038512827737948619243177853377956707888425967636480049259850648359570017828479922811781652037065024412333762604557857383994778716192977108131737998927522946768308213841829454840167452264942176598827372151270122132334903201791548832281016412644536981991934681410907061918975430660928402660247949830925662561167034535495218518394014439664154021959760430161077347871785270236215151997623433183011438807697814674640048330203196652728111793464474822880842363266851867890817602051360397077329218616477860083970130651614202732116256492155827679932829205050167253464346896744467771249950584655703464811030062808062609574374898726714207741329815428994483659590411085637851731092653657516774286643500939042116286449111348338579308531994635235076032335227339198279321722236453921889321414112893761147207778345903697067062235298528967641305967021489245717446351236321030330867332570694967815411847491904378992279609781064730401668895943284245613196499051145321671832178282545929347426489289835400057440187384336047841740801750392294808217325351895644066951675082535426258853974257075737435379534701645374204356040320422809468246223086120263543019827494548030781040284254306121400252619100001938185688816777573065769191978377163988360720028167899149619653692036986941384086314848317754103145333970461390041342640308142713642443728616397030822010045908753373685421267332916792310085044056702025286298873313240762874656120732442444311018764407823224348566495150340751364993377271820051818402868927017208140431014963729097710284751560167487404431894409044878682039956144557381978066285567584026222553107923917264307399020256859855828178516347756001185279126788753149670333475678308638178672548346108472264229584876799231186676806676629925323478419890256890665849121060463699259500007309017046158263658988278219234315467159035309030311189217710855629244856147127718516823545334966297271103845762857469641396719924364855805597200596807604550799066670463834846051354203349946596126510128190411510809685336522666347982949589236899895961547933490998330600916996918062981389306896974061832849547719180525068882355587267903025501245741923432988721074087452122958214706539067972922388212150438868528858535203624928216229361463814695516332847738943956554507918426488529355085095161034051749499363501510379790390757933930801129550027471896579946387153237932653569497567254198551677973537312693818201762995662615644302511746696293202181253738391321440242425497618480282917451131384834249511136038536222853536047757055276509626934310607015487992597928323134317191123845677544707876964980715675682631999544420226155179952871873911400595025247448518169238728160678395325067289343310581092984747868176360112082462638286954717649391324654631208971658300792234071000904633278063607957252249088399024487659174463054509111911645290837117113911813297828507217478004578534212360002766596373007967918030590660600491304979667628436693680711726295990062900716851441144626494865344738370255786483853315406486489655207130085787407536228720388887275444781589842005973207561856590917732112508032712472130864019886716269533781497485985916175344681317443985700851486282950917923065190159392273373769751348028884150181754785420135040969250358670280359442815294902249816915642942341591050692378767514100848659342613997693336659337028463428236270887309464415573775791347681399330260064167471649793175089928384982871106022434074704022847420969291167894928889408590977837082085354817511565897252803574150196497800634621146722027451196556698368879536168514301945191644581400486610281439995235865504289891574876149745793384882192940717970044642613158898938653935585038650630794692494071272231340688893587683136467752233165445480716144150753130818334623272995625823333255018028574007868508447065649652992270764057042254911979185870956917680534075733188954888863136970921243660962792412220028511348040551702556335962408329791937817058260094063453555468219631462046046642386672181777170822393535309241394234997704683251785946881633181753142576587128662985835453567546252048535258137793500234037422826825193237804724755123844681072414403316971717632862476695027048737105944564559049221564925962203910668112664575375149615503916971909666461079100602283655501419398211203576513475119775811262114309945125539539588994671683699152493684373102127233049623741576188905119977748613932210201175754075523808219021725828111513806329708008704821500616072705631257946594474815289214566677800056431803633661722120702210917461274713955023836106709473208352905301495701576075277439517214876068390304963803257805216290356468783582965273706787872002533263864549829219881116528669717026540921642161450307844427978611604365382612554004959250658803328501717936431271118750867894745401195978873598271506327002624092570202158987965563788702958698614103027532316813351910689208225617647518468522905295933139374098527257117264509468919831764473502132215964562534238929331123111397729944295060410043005574316225068283134318687660795123699647127669955245498783413700057127443617861037219923562857229480255909629774267170949072047611598998469547572086684262385747018581614338349243452632942015473768625340223431182910332099939958872942443730788753016280368110688937331088776256167046329220520398589706098530719927078889766204571057074581377182817945653289904767763395409061139328036042766751719491053077423851022591977584045771635873976178137234180736625342902897437458414207727664900086312091292120395961105111313409711996499582579151434776126816495160030477246444318777187780039140484174125126552016169605799303135884328245714843189924206708513415298102517439072331549735533807805941406117783946711924707754798030633936208928905522274665574980182477968941548690506837350551458377138452507220644733591058995801269192063495070884943809674128814341156228038865402820879499300100395667390158288416580712061217919087521472814893526367761352836401841739657518824423490128400152472187970162935194543652252509558711163000582033301388169180118628831423731386898752740165402266082086881645039476645381559895683607318247604139872351141706714412848201241617746993509319815563778357039539453953081834122345173997901651806612954100575764509049178900990921045415054549397221541581779045294279646838545973345698064458118093127517855442312692548480463165128863428278033685714164506495019395825370779515516879982815029137945869281577399481373333832994360106498789759040063241320633894922967088635182042298226334913034369360013280272746979931136509424973371382905554089252277358455989264051878394928796303898538194893587585312162798144531457067564338220581396532035465620714831613896101316913082750247069266669040846194754414661433253185130345437171809612904728791750489080390317391600887384416300844287161673582905479708270112157274241305730769967799955445928376769925479431161722643547293234228468402746229769400425970116542458330579774656965770039082854989592261782581140260682559832635663698623590846209934217281018271857250121431588408468759115570389259249956298257721301367416445168893586339475963563997208805825813628765433947535476856749366310460260464382930369725870437116108011294461152017143936012928971189829890660292962066083758361573590369215221853914612359511353046674134804585015208990848349287184578580997002521656504774434381463763582463854094511681738965738689254393831772789113319982929092993477818126164943986101708495264624346261515450859703851520277227714624770944697401133483948773293387683430974104091905454406697114419608048315772423252222050235808168852517748340626954989828249508939204327863371556520489796717837389472445503953775838391050055806920237984627269231588533610667276336677872037647291327541991391156055588954463969226994428349626807107381799630143170412517770375890502593869568152701457512915413613634801982069842863418809722063593558922186094930198245027801705393263852937985356909126931457024640514631469673583385504591603041350172283128565002137917449461953760627808590899065288622551245975213486275552234935162604433219339493247822588264503853166673253138308718605299762090686806006502728550631297874675643872922659435612839705853659398611517615085025138953403769051229338282546268048543942953873364008610571924488525367449936998994611726317945131500449713332215172996680609506176837609097479979308753742115789458531452201990082830189150951492270918111688067874295951582249050893879197942555826449190279532446347492568676784436027882608603996000111673893989195934006781962299401681868687338674190605298088925572502148856487628126093208819321597749475633454724433708412662006188321339017495662363972946838771880835481126669506026770851497133834938822192204684257048526834728311184198237924895029073695510442807196978177953892949218921529803162586993205743446901161504807861637114894297308571197836761142387107266932156151532325387384516403958653658010238665152402006622182051222743377145147964076062662794532849634022951685012107941988691411439271808282708800180516321131935132648991635797250830867506083654897391830864399670268223043275274573293932433925758581860059858718035171367387041694220429800302366900170437450035694195604802182471817240572553608994486243290415979728626901026710396117706587087284605386270705990213254697732812781066563890312602215950748010772608696943721928753621420425192334276496752802312497050261059517098881413667760084800725636032922284520940278911585739030197241536485913847786024724067696945590070563137857747555786319609471977228501264586616355219512543353512966522776950532387260234255289058627422232410387141473689243634410645225111007732911504338212473506564933828143891767936177717608154396454185396001028958467160172890171946708745053005757463606655401149126740857248046548551588202161614590163200882409690542191333929508938732640201248018547829516956790575070671498927685947853655546403959786794900639627069227539808217028140577007051195370802079470987162419102951202512271794490940313596524349077668593741780218067561895826204396411430987811246210472794227407095596025791996103895654109821776382121041288739643995572062416497758661271737022642182494244700794949597945165030824293849544285901793065111111041440296594238085939023547120141495509496793092540837938412826702434412165213695560700011160361980988599118902323022311741432179594796173303391087663947055840865184213904946160225697866292948548613633574624395017492324095033475588707616903351564369165452639160916023285176838862937693313349957846802318249340226705388578335096633193042275589456225131201101912882136508073103779450565524851728240310879864414272831219733087413166508287632118216546425242980635332915104227871747027418571755972662267906889337758373092197964421501422743834337785041895277231286849679383096549519569448108946399376847576544229996682281426321258766946957318199786996792646261621355906925667992917148295750741838833182665240193417118649685910553611482315360175309332937160845793161310361124933083269919311050248879296004788625776467227826293111492952021124708182957693100080374704917643713930291569925788882490007843629129339197344336213357490158218714987838265040512436109428836150843897202111170622501935315792916637358752166632478549585840840048595369611411683845192482202559625023128359944570542897755406088504633871644549370682039742246424731124854675835892874089767662144862050255924317838721370405511803752834865898381456813772284525878888863506438841368324207587477742627771818116109335289368008114965356761526513933863408094548892280259228492376890879027909531155473031095130816569167974098775922362522898134697096556843926249201912139522983361158985686054014606006322791858077153481440506993228681362880724144449300578289598649452157559359319088512376150710313932968338532726725691583860394383003256055994014515741750443608545682108443540605728512620962077766244429132396880609181807637819266360502246030100400484899400923344752073827637906461463486912197410095287122737331346124600123909150287128044705497131164398276901619667395055529343712019500503946197608048292264283158388992190912609975679833576710441995895267933895066110807432428844086047874892991753731751739089444872156579527245060373894054098096583502401063836543106301841149515729445209261092637446093664964383334563371023917400913330707678148008639122674209297444203481795931759407449530908606103712092596106330197800965107360917598366191233719803573957105484390106355578052666086237429400496216228706900422620321236377167044097206850445480556446851881975722507006324578607523320589816517498693967115777788433815900015451361395542691132418947436984212524697459288265944131857397153898380388850422463554213351270251540035442430368924843349116612346107142889830427117242623012576582953421736828980183234520168832924021452313795295499869895527260784102796165381539407294838279077545367993241581551321966762247724548429038916134041205115265125197731066981889231050033075952498154944376862741143582645152079006975923614251447049736451434811502308236297458619539697416271522537725190518331341772565780118875315139162531250056066626196265175084292150163810261138277159666023308610858855021916317934830073676425588095326481414407880364533500135706208743451781735830296999043464648260374347581720301304255080402867080193662789852970281847068272206743560849401702312169101686507381083299512405112569485123920142828452433731529471449070678954968642100985380100182922867680673489356981318158977885400292675849305502225280229442802374764047586223081962064535587880172178247965926205872922021146039219401602700531972861646996358492931318927791391543472996982765620266805242840199070982537368570678742108467994407830638471584145198979954886329149222573256849089545088780228895026875905866308706324843289334542133116616958608016575328140031646502333900061309718366042929739177371884192155177359793583504025358574813740832068999578423886125427285254227057826677250534144893515988134529763462353694101408770565868774241832760043185415148068464142787777664240870363289856691676887813010544057101366568492459287631528199433964661421016306062290410692932215916295041231219192298806381765307247142841692508993853213281656315916151834843924126469873760434131873802387313306656299582660845711828991681525032590463917751174800076641962570483712999451079958524013124842050215077818611921351670618617970267997767091327004989881077697816642306865940693599022604099391621469009414053554842388307826416381322870567811534906646041099981599598115430231774770089453465892234171529481264377289568454171569313818933497537189428361943359575451208297492172451245580210803217434275056508519462775678323745977179820195598074107755504906550972224813426827088586920565265407491003712330661177950861294744163246122513045972973558905328602609203132196278090580399607209150492759746436587293027132810320711237467827099772761788397349992317302274065515665597560278695241894164445437583751060883392574022713920350132628921322637199539060586439836531771658081449080073420297491739040864387084752651647893363529627442299746793979625053917632928904322483386631791440527728464605660584649867051693493070285921996685295061445058792812011387984339572317567330023518159224688424754854663818709822087488691591744742856908601209903916438144000630269870631863474514093383315880194694261886811190453434237154108873049527533182745006293520449262481011378079091418718314278839501009183116185596575851133167341615346319304304193437954326745091166171357543598407606832203379663526348414887184368045985792809856993579117136253243608131780061742073461934651750450367701910243077220957836960603172855261833706043544330066195968151569095435300111390696227728687129274532077156363077896703765566492029304834503140078506551662541737905573963877099538770927175939368877810915632517343808866127550474316760635388945214606299138016927917951339468175119574927753199469814270926752480303186333408653708077794996391080384342586865244815392823194555868338277562400922312058524903874812050493412024197929171758502673803012019617610751118964337698345856036389865780645726213607574850151760944042805026841036136878396116199214859713703052332196173825459079234324031282404633415298685861769344162604627662200593345156276516840066884586087331293432358739635484253418292143230112794793553033698787396526400243214386369564334620261936603791663547985296702635589814104275251849060751613821234377392925393411793825311746546778585892291735125027742451665872089236146329657625554403248896620139076268103325351623947031074010561644991511295152025887060530620019223331830663038522996134090159553060199000266606813047887122319852937412347659012095789703235186028481914944243493567512829759371941585933464355128063363364773631036946621669374667477267748760207526979224853464208795784051473676428360957929353362354623514124449336223608982924849829152581283491014535107813503507507211161048374016610691325008466705399860116052850619278381834612561034614011287131525608147933508986229341464252822631719776342127020457336418479648896878472971724527291532585505400653866103603930184882105290931418277867514344599985608702860285931089347325989361899486136527757146236900836508436398458275618982638577263760388974961958626667961821943360564641290330493042588815815877967756348875114344908686033767830712563114229850948276941111424321271441085541011178911656413013808910525145002736345421886760242723436739449618617194093815906661911470398814949779707396796992132654959801801303275662614160220864606664608423354155751795569457624038865051711859256483056090604484600416224845467865329831963315127470456168800000009703294130577222377943189749718796661560370080661007037651130841637463574952327215657370924430234912290519327900378690516420856533177410725073689421330871496602656446291337366382712037866133743042201562914381709537491708456223957367794182357248392103170702775712524674489279201261290444831573672867008416484870714125992870838605387760588848627529884769873443638367476147136677721095010002227720233987276401336292569837540378782268737635335408121559961304185063193328846083402698963137345421091725892703537893234744598991543367483073922647944795620338080192107229841935457449355242889119833289052904350449398257660720428482788895147886895228529028871904336081008081867571527872168149973258883235412918205957491476745791978212216169056264591190079479648373910604486237579706610849734996466673446975770345424123745216955267814145220290812601978186841851991014213526605365406843373407650114388644110275183684931340928061219251560120365279055465674498838217882714469063210344995282937933191038891655948894771204139808155048337689339893992652274579238799042644031071355866702752352285894141750578904934475433556409664050353738555955600680864777872364867319123265991955282017851041728331573727069978848575589014473578620600928625217214851499037764790393314310248332898051207775682714559680544905953259882225612444444250390699261119443168764744492816568020131973643699968915680109291788589415013708193435457260959218324986582457620776532004967926378244128849441893100220607832358102054269674692811433301339749421104147717929483198688038930762438177570614359799424857083847511062539481280485649524862607072123003506887991071844441114185040756711702276105675057505884093731873584047837996256966881165622769223097975413679480721524016625216728264943675707893543401035362198149260090779979181611192873337931521121263685704622825475564855238629808048783530551356772016949583543945594023336202954242513267788438400329636201885465220664076013191918147244845734931528883270999226974235548750769183965079716574262780726795431718823751019152088895599905955154454529508647836399569721205792061548453983338564653990911113205094400610069669165459421669444826478057499235789226390411684554028353258099389271514344137567717308955751079345063814396422533085939910550049458457648481024753225731232902527168124083050206310147754583826518131865201173700153108065532575939559997437821017816908858219274458549779455306991932803784178704763551639654927108323858474679165751461547771784114234376498932312610646951389303919576279430288819153201617312320046835251885226918137026993114316965770012586932692507233700126181298004761033235663893132064057274707120628146288735636685816567352024766699078760137245804499246097451996824456604494933978548688045664741566731766616496635802076421921513890993414255367797023333422564923870522033309014945999899866993037336145597998894045407886566926337851472765093532057279823422503804215492393889115282711938568436392052220552508723920449294119738731908817931746277182159311427533087684221109960887555893053940089597163252021197336035128539358408824742494735674465198164403539387758973936249931992772122909783475261250857966327218946366006451514589909916818737960280188342312990134984440780374978062158939945413303275439119354931016018461824258725163700185275126301820741102050946335669178078573855327765718626707367657898271061719884805409878704104488005632313877809526122327174605603375455510289618527670547877499878276542537513905300968562310155911605524406750001009117530042941784961204727426582794090509312749835981044731774210652580497047400340661545049215912877563692045019382494456685609534314073642479124132246294032452592114541869006472439347778025791244278475564710723418348033631224468054812414119035402189996696349801761350547387097664443091752286535445825123037054509274236250208723289951655347161217284507966244548650250512725179449309768483228647341360347641659320260192900742930056955666582513371070038880067923488581386073270495443525447993247302740315572566187392440736873981764157915307241855708615322366389991883921345681613846033296231068961991527676721219738594654648593959575498466314107058260934461397464979313115672222602560011798199569244652274058502288378377352658947177067424046795280327854588639854304206384506340674807493582468749928912273092093940155258149553477548113899241144643473440211515888516118894681696244551756302345986658591127161976755886499253742686506655998966995950986478801351688635381569802535362712885760197082435873622627606984193191133939815418998464715487983740821971035221559902456604521809976190836320910227351358086101707702797881419185079789386626876720825250325693427930585944711613857592642485327586216485498906509668420330206863783381089276634855611948809357404230293715748449210701582937684168855096820226854770736391591749823833615750767082005510196885927748126200640694379596063744174036350839369179405216084079715993199021121977358509732621637835277180892910361863863272684520635064906833098528923042641316108790724051468062154328881165753369180159113991807360047418001906733755544462478566594877517664135125484334830237430958019293945090918367100406877874381769199799032393576549068761043705826941734167014064431836754401511345785280110915333481615609222169075501820571955821134289630350174687896669705109479037079607409215986796861481084750105983313430807084499539962513787786417839563390141117129340462618471256503418469566630786067786582090139126800151093340108072620770118682538127308854272289331752841189549398606022365073518216448279472734179673750767050281759429606675206609316781294719361146859920703643573461107907114491908731810928273229409068031242880611383909142886162893628443073178478269850461515965144275216127819804736726838162936653490141306190165763594886360087131050668145363934491606905792644782962428579166145020120369940192331917762424955559183805385481871889063543367048298129772530629385233485564856591104793754942049789158057820432909183119045113477204190747345378643796461420874730129687518694807381436262965717568750216122192875774581582548837943938978105997390926673252264819115227060417027498406468065907705558236501364561000150030628083570387245040876464758859642985800496555469373849912418952696739384353551623174197710750744306201261427843325965071549810685490577852160761270889634611842543868406686744045326650937335668751122054651614635545770243287459879851333489277671395900008848842120554851675971056972558744582630202727642419918889191001060610004099730302433486715261876259576801473927526584867900378874410691455177722700555855923853152884792927714821017904824757806375714251388137869063653875212451082018265555764540907340884447308840877995844742330776423889540147558383262440603413242122360685704687590744173410108853367541833053773231628385080512768512819657635696190863124381576195397843646192589520240334150252383121036191635811100694270528121192743074797425720722442544855010191201886936080683673693864855686886666485224942730793711976086815604522391919945880849579791058428118102810982955614772186647727670959934653154342531461052129773482134323645215451856359599271534254830182483765818217065532002760645397796792076995885654937496738029735688076356107735612073038926394097025408469079838242382538478699661462434884148126184188180929901298551216407647280539776334429013090600819723146361931348125028243898926544096319805622688134506161568085174474578479778285170591206110993168471029612327974836674916999362739873417738265806148441115933119875475482877804558817525403704446817684917894242546541184141590702345340282611294228974795832217877032443258207937081946762331109641654818707927376988093331122171811884606147515291437534481739604606286248754120126741944568239719763125877591828806335538756780603585379353432759522674853643695477942853078784883314993938871098659731533345619539985616162087962407965590278605986151737026369348590600241497970497492443202538757026553251980161206775133934643974872455180263875981210465694121957795910342118640876660730303369068116317814547251652838459880989862581852314130055074422100852470835731095164474091160618053815620889719191948540997835615347832162254021573851348372600910992297760522005073208812751598743615759232527914533974585725105828897138351233160255772756830182219001982769780280446733322393857042490879601539619075281208355604953277533836958667122470662400644256128334519219131652373650155505527553490367882696024269579513265682132794668921226844003139976541776342107124066577906747868016906943074124452576715049070537615509975945599738478030733822963533771080890090233477518429171176676647084564058769301397898447692465368346297033725530836220238052996351908486185575563702234067023991794651887685470701272959370695820745791676595837580125103360462396312889982833917256158324769245018906548752725340256593810572960330778661698208365765449581632212971287354376442884404972506860066547688104015137443468834243393315951170861799753777670734555814564248836366997425195472600634300359788679066582439512100695118480332730340226917826727051331091041768298515548195926210824879342089806600682400164701572205812678710314637964409144343506641754599947185731088578140798144306879978229334126240677866017610293775280639517063413413917247886707347503540523797719444988991127152516234872926211463038274565932064659336476970245785769998037762399379564396630666569108817219729974680329880669914703973504455486138636441798180122641878760782513624345166349886940141174328249648077607279205958248417646127847054859788413246502203938552373882627508834662820709712348112610341476452689126963366497220886661672094664329356855684031795594504265881365849009970307414979406141551153867898212516096639091682138326334971332780000685281977561494225511793747421463791611741936210335986226281552588175598974470433312225829654041337738427222342508718798140015166749357980490971237660555338872371408231465487718531856432034045956188868212027963200530521641789588606535717257314600075074258692814313088526581298105094789296228086566649044197044335837722383171851402787229956033635574884674495121585487516080738661574909085209764836514823493698901178318210521325998892948291734588598531094413980303529013784260677496364578716164898281868319900166880751926577948018016529173150949499556009422593731770743961574838140979805367320856462918623213291905426861042314805857340733972499655782785503142364922900476340388042611649216914874435167615807173071670166969596939263641926421401350115542183659859336441167998600265085651416680780878448561074016515543675033650146302075443539982761734375180475532758150519396402898472997643566617730720868358662143281857491097430336186811893341302330779171482037447098708951245910565512881265406911072186214177269966438572736685269212162573211304112756641630106012343703898646603829499968518782751907296310493221498075731223365444979740747369534759987861605589305610853799535707507982729383962099861206607886647267920865196577526681791251533444765203001117247498640962411828935294342475173068615334094202985455696528468473244198776843964865803209950538638593846310238348490184228170096483881669682637253521075165262656119853097538350189157627155747634607240434497454645896732162460412742703278425482001917857352110598379575708055970772643778895438498444131366498874332171484428858321054707119672881065044439787303435665096370036838049376108069142546256717764421710236346509295458704654294226568689175184516674417332526634276831428647006430580209825764082637570740501180417740568487998685213214675619440975536800308390618269866136960188692730531183191007103414150223552594703417427933953364647173400833731083683916998527699680369310419182827335473396536814667826245770897019067007494392806144129289696886938153801147013548950445794998119664600318791487207640381545600383076719232354841420472704160456428168337311755953720362305266307539203697021683866571800282166557410850121093853999665819683617838350210188319760968590435006961458423492634783815243356767266157166962503631000569557032082315612862605908431657670844870847767348124774399221590025542896717051836032678379307832005512446485369316881481389364104654976787996564763389273809413897555669164991277202625455264481594328636173476199769819235036476176579130888718589624910574520806556008966648558217086380596099649693163410021961669888625557135127037337300019473112446007784205235324833974815542006343990756734315616486452203455642367058796495020911420402077630125570330344432970691650501411049833163812399375745865035387788167319734885340047603606190813643347517739320917640226835345675134892790259946278414330561996605412358613535265279581012465027838422869267159440090238206083621406975411715441040492575245355939351934740464315030315226536321668700291997768975736332569796637213954153474609073702876525620599407998853235310923739385675138564030319286952947460543152833435817370157259858403825102943521985921470245905761367173929380392671345088672289567268697825841192876800711465066895679108954723883366620406281800579556296279937325859947895224989040504133658195573812725530155852937413936589083370800347827511271463537892951704356728467453901505834881739734703390967351998534570926639017608641723262452478198628738235716221386726297709776742638083860067880313069232883891737789192255532544467452670362551017104325038722472370978415885677594951223218546733693108809415626780029674162569772172125542207994574700624218296995738728757681591136364219267421521198896871861033479944164003284945776415456487692745052152014232908085752905511321724233451782616562853331903805642155798320561224461783904577050043430879573632019917383415609246171381849773244337260643355909819084650890426574561442871040225932916148950804999961852556279848410780744797160680200039930385343718327063827634820072297536761263221834442672433020358635118444942191128799754553601346182646782842735999441180764759879959115046949517910975704169500534370308219128515611664529678032994763486243815123764174884696617315150123604012076890369703052438843678788107529832942341319964244114566080789821270041509837480764135527893426372987442159883026268076621146987761961404758506230304962047335539256581245222518727803519214670960631292348865530992154170790727770369105375772508900719215732742685319883946468104976266773363457542042483061493992166482445757131201330666192319881807057830332211177219679068913592732949349246577674163901127323999492110016886340047693319854627116467810705992821631105435366743813357702072130355681232398432712336710790360096142737201549230687311807466201892436387779375833404431047234036244342516101855455479859248903411061823203839374029314226736448117076197393493095409178798245446413528358891906518004868890661495139256836249014841521477038910640832127972784596572101619702005141212063501482919024071029222709290945855057151176486457598728013554879148903128232432388644441796838723492563042877621321814322604391991044236231407202416557220568241940746219843388242170449629527889793929733634546822563904497254721630738800744044825016811649214113850096623862912024413710575453152830655744424138881371400298426653792522704458126664222782328007546620718895103859751588241238136047305816670905727000924930140993429193281307681687413890355601381396832769401474992950831675653746358123936239496345431299702193405349104302565292216165174150103158168902082458084121265889207751411343320523196836902335742265324763766658868073423279093512257085062180418073628229724175619958406754570206611184851887143054987136190859516557983110546202184126130620528670389493962378754944977377032209362421801811946597559182800663227752618650893123886174886432570249450856013782554418995769338743988903332680504052201238298069490246208885022055952868995901466138154594463301374005135797731346761055999880408532627238952990770154450570718363279237288571529157080797169666444523869111896797522032832519271875700070503216019427644113655932445012624893303642299142369822260262189819604791720004605069190810605315491599489058870314435662979036652385982174136239523836472347702689560081284605509200328282236046895110205224260361788343407221660042061358850059833178223287073607085242233799196597350390552042480638347368315659015400649845533130268900551061231446709682252830046688626087375048037714384599568046625543525750928070017638038142348092039245154939551956987397104355830550542623411056382877605868693326441517902551206230865513251922817893858124187157371859354622537915246224108561559739085876446868781892723249443080581435284588805047539003204394561335533458356732999579961924141506389786183126074983471081569680034792301776820851067035920084276889996803031596731933560874464764479863422250807301830646513186113352022234356062538598764707886625905235699312843360457311209583843806274466093637763179898586551393983608858978155533629958286444609720016455162603948244439713269734116462000922969475529418128704506089891884250591989012430336508395308754596175402567206263239023569108212849511103984971682940740301323014279280996716109212770992032817044712821197939727496854423381841264556729445407371774285014651851331866126336979741997297903870190460311486551840451068054940728140552290084222081424192900108879454126053401619760254683180768004496038169826530375059518317588048610517479666190809859239154806868726534894127572328009183240700021598828808009262351384150753794798075247665521796361590400837317448088645512298281977612417167600244771821575752496186462845410692791308480836374219468026754693864979870988081619282789946440481160694093005978161922410605927489909910320338518730943589874112473488979804953437990373440483746648144405611322393150513465899468830471297886580465105813686952912783084674423792110023955121033919037916185866395467173073887423758359221674507340701389467129586914578317576770991050068001333425938010675233950612228032662621216569202130686394009846802621354359675555187370790469725826184337467905250645509431761132366046998563716550212301565155799325582037382684923626647313520668788926672785936849199561397916994527600947199550315005502575511426584652853284906665919948550382117359977024333702977611474285000223497843487824999696116238323478033368999867725664110131253166545382449497641517252358761306034104518139129141255697790281406994061400693829968493605007965568170468326270866909872016268918901399522515724368488484485298292247857348948438458182558842810215278543246222827000231227443540980026070729816986871680757513539443478795673397413323232634290273690778873794632046251379202672923128635507466124658518094191511653206817059422256343666708940821429981680544067898020203642911013031200411238445050205935116995744797409443612160466933638686497918332539847763879719566633874082738433026478731494376725568266782290140614948351145881464439124202662998931127256228285296300778970590036415231026583844452895452026261604249389360499571152922846280960554938120526122687136320692398952361734039010259324182325106939361718015395300200082740112630246444880773973288581376208365060041577135936488304561976122470297702539157723603996123338341406373264713114548121342252009921985380206544302605303356236959129719963079081924126855531564090177792654235360598055170621228525016333338488953556631017775807772152029378313984632891226110157275410194509537724647630854528428608519972881460289736556742381678267784200810048593716772559239674003140270424244356169326163636466975681522491972406415503024815217848069872618665385992228115531268744683222259198516849978924079598621139152248626208053885171142456399616370594452424372204209326627601635504274954699836882886226458618172990786863724304039867583945032551662376905615858290879355799933761280693437139869417654979970217787770788820477510512486722346681730561773797832731531851436018112536530005424792403428791397737520340151935344842830479725256436879427111380624701561404352629827602920749672788049846161341943743136318175795529024500252851012870447512282844550389028800861846265589284036691636837193835026015104221989328246319020366507017135715350840350293020583136841324379152756400569744389454779615001448677525410206018246804522811988828224640643628220739463812617464086919690710411793402436705709240229211213768043541798687439025927925413798931153275882737317540958932997005830010617469011726900735816700411935037130235027765789068251819593259275522381873892202307800328775345908548693450461285714297606013673107578644717334696512648535767559230572451061501994836076426424044478872078463883201482840518009900094848388120297503722013310193558054402728198106467643459286278682922422227684070877602681129289873138795566154918197604205773060877385658501127226533005269843176890020212618088666829985608900246358182121441580585951587193764792578606505786410263332794923457138854229024423302674823809918701895957332075362258707720084644398319541541317054334707813262754531264234972522380257629590738493685080147740499501247431252108517039409887454899865722911106127975208158451538481381031492637921453635528553015291710108455488685075554978897433345268785670582587671962292013561040264398576025566639460279393113128679827687353160495137706065608476747030604380698639702548313078889603551224420759107247849918783935005728349425463804614670782131892086970849514977280698018838001134809698563318382622602543953849152355400304859602273819751578910350179829137222723116539428090186772537985331167182786565358086940645133194022039226883349088479093750106039289411780392860737637101139352678797692064382966087691678180586154955681858980662506250772269937158805205285287247047243064476428109161537183702329027425165778751132469247423014256875422025421346073463337190137281508594694795927523411817989250275528404639823385248782878146588335219296390245758533035755587350236393659439822170309971224509699801596149981431401795912543531404683343052310088476032706300479323386620391555200520134744332137999593505132411817198487963228063800909651339086713456760261306752655136904301930471800941901173513597289267865403963335993268122576715383903708192806025414723984388841546813580618818972100828975829276669761099409687408996701291683072121565786322238321554961179994111917841567208278992059425913794980891945095328494393699844927646452988615530288876299972608250904634951082813632530420706147624578355132844241141959267307440982185087202888279987782815603062044093517599159760539804239878593385353252996040769960860939352208563767581171088278091821891448540198719456122206038272295050225479640132794132934229118286308494088014842649056446235818897226929793226063278602156563509382566737385951792144470008175285980721098124601115798458809105088733268524259308048227143167020549934476611485676851371389878023792454102400173392737850129274671477208526019028307852876547419103255842796362578891454571412800927012056805732976786143169187922723021015452961848516667460102118584337459305217485885294127054234638223853887895077201857349535287385941934995564292728710629602365561340260706289501752116146684703119819126307524577789892904670874009105242292047523377117883281767156889856746298533758623107939762382272195335798558219734076393627813896418224042431416935597469619234190474110429776719353279390370852477648478337175705498320744558447628778870099947828473268528041373445209922778224423125165888876869842524266163256194462923023913462776119523813543225971223960985671734469073914585148999534252765865992315275450773930161558376243700855342740409686955748905663478169548227819159427301695288511546317440630621083475086755599265862880449056754673468593790319970817655377152810567921409429315620514914560089929293046699653635216978348703694395794083501681565284860909159567310322584465556205880748303270095200182309707515683804684641712543884127514124545273688184139560813334068217971529291116171138958796355615847162102440290241187297410483545423913703593443047722724608921405775264578198829651733140719475104431783837832486001607550785295601323017887443442385674508387898092039157045412724631638925010396780593982943490660351422834109970589832942193953330153985364907008607756916152727444344223666494054986196539709758887084754908399163276693495381955067419290729138107119200017166002228133078745661535816498600723696130566738107656441947409260667839032207631867666147542336060871726342786956034904912772093710427003725837708303602264751528339120866960290693695970873625789894215162224724396735173017683175741673680591259298092248585583780190159563049171240156695696296724690209043898760445876436892575405429817942540201703334522588525422945660061363778590654959047120753223675258865461324398070805119115687737754217443404808758397200859908489250965374797073139457906804885521665017875259498376218580628233412454437442576480883932994108318837701613378694436288733133060408507581404637414971898121502080854545181633466236790518861161009171847013254074016853696946994034267855350231813947679157209421618223958330796777108155128347135041514533460276239446754960579608910786477470414015752614781247200447058681367819885647871808297890712597835176534626439061711305283686043506807681658979154292060718644592905432815704936317351290753148480276495376126253084597136111398025721465258534277603553378968591854168489328603541159764033542873086363369758332205024617742793578952931830072852011751458399351229939500304400991341482516021047097843021489679465905207869899905028297310324572754418594178318131203798408998654772452390385980506291492624470288650756937476391052556549051667126755661083024543577766676061818210872362788824099559285489245942727067031025080283206054073081603631718776830944553844426574743058534659922216676815126969047220413005400515506249907789389291519497144120553685903345714930745192141428386045115109974023818966915532631650121763307810084754858276023193373198528637941935088028048880465963246336724695270207582457568110702638814713093732276847340084827122095518351915186534732213121200641906702626859420237896827562067621857904795215192174910262739252671600233252867202418915869775485283296669040445750964758135894429821891134560902322150414036452452730066497134327384538484185701690033595877202797849941459521207855759446538244611546660346327735465168839685469312437764983694301846290492176267566952666848250507713871421940793282073290873000694215289736820942615217168457975183712091099431506713134861519254467979984895978561691199072162529983898318759423714338218001309868368926208729930454806378282811892037924688686591064391275498401265087984440907268912090867954530305630970235170525224776175034252405128286236002820755997077087993495444177746206874742227608642052962729688551818087641333752691546565040049352821538766208350439191775969103823412195470143763136990974142237073968907557829626710547295332447779648143539919287817807935503279539671319095748316424502960954471091825292670026871349861659243395407194576167643206950846570906771104870049696257001425270166368668352498828752426529039336144974440647967189407456990011433532199268262613568773886363120250755498461978995560666937849024539501061523994217624403684873685295481007026134811173346631237866478506321905008461738776334962005271866309800227512464081366968726667084641990556542475277496542618112983884027415664606252065695893627432595401884109110055162968119798522464021380923021562323085230645486224635123867343085406236257519950859660052660486339073279932773179720891082930705382647176210541400942803934774921248063366457456221255731977703736394634961976237578397551615486530421760291930819704323295735616931233599231850227952571499318761068644659771521462600075926513485563917245944982448593874561874300349585906516816100934739524792788191550248756656483160745342201261307786806709243987744112568763871308676432870325144817663714057122099076695773107534477515679596726793950035025767604468574454808764015227540318988620162272459810038987316156373851340316450029603281156128270869300784266893514859772745324338521804308115918377025621860281384173634613340673893612349591971254367591903433600313223209022017325364134790624097983072825519617855596207963672363579638698411804283988417954293553866772713315803021988031549009747762684450969679099472922817074081285717461565507454269473378650556180504381641143850082452932899388438924750888996225830107001093863872728049772389169494154553530900154797119700012800378784216632203562925219682466450864974442562441421216407811400947497246611282308186984251245595421376414859149580429989468098219740592443414777509019907092407610605325098874983295250148209273615995508310602721260411647151374470834431324498129780388379176584431166601416891091869760795524408092012776575938890675403383996536501733964964066691381326191038794747242584044993990515435555827453311927890164519793585577854717600777518473051745692426321887669859761650957570649278734475787046227849634831942884981985674617566599188810439742570777857474575146236192966578400960144189701057094447475567487130764426845359176081488147300999958357218614011532679568239504132037221963549617287678553059515104031897045221631550007066642652137331055792299830738411850802075186147773191799156929047268275838283836359000382360067271984057256357531079300640016175109986927410042811418683301347196939858061782929961128771696900117817193716950182757861149816836190544520439576247057208744763749761601326438440704538471368956924816374695337888921774759121006025015293998177483824208566748327352233523950011000983145885587999895586998231573230252275267945960425388606673592272645906203946655663522550094610808995790061456875570810996599764192369225509735821237379850318452800961830645802348413932366173013566070745538159229584361652029223243335456934704697310852074288677330153021384398353478490724362327503985146724409052363161485930034391219386463580464656157348580984413225659448272285449277303598393810963593896714039525976158389739337335253895761026806844203780351058734079404388432767798230083466080248983095797817573910240484479772111121445205854783107637598603725146575027985440298906769895935455083469794786800077955788083462020067221132462162926968932417355570023186803908567703380922412100483543818227729878237656749430705889739818414107996700839341188616909083146769480347971772949463987673233338017164840946063203012972294015286427456851566436996465314203856726010299071019907918442451116045761786609986200106895007958536981559990836727318279903038639381682178253182447356864352022881383633067474626578017130735438648878109715402798552460710235702537043401178485738839902652868999251334727278758329470001788876106276172560825979052115120327687572495480413336096691249477094266220902800386250026352882395948433864697104267913599864930536736402841083668307045206651876367396793782465627163338910264992760034319928317638079614360682358727213355299951944358155271757781558095785496411865116494206454902428656310649282610349101757261813886179617678073038604712462440729192671939444350004347660700767157778111186629438312233628553194077948101622611870452541025413032963746091101969978442951058344416337140433081955350886907085703322764462148756669162823115714416515583080666100418796135394410227570412441192465420993357238052753405217667597042772047236851802449772341209087724394174727339874271884329758445771906908018604895474863828252280304577597297522438885710307886670348339408766397750195585059209234923347579113046454068256768166492417091381784475370953733357576039822062878161381494595223511356663630095949002097460598608471762301997203268168370197510026965919929614677680570000042349455999920935854823953298994753534630015432685585566202044023063816553825901490578217857059949168226928845663546121009626952439594838124455109509769347539829097087837259235418662329513521591179040363007839380898459548898370712539902246535190191719784038737726299536400646870610033127086464887126274770445455985955465480139686372661523323495042341505117101490672970396310391656227583358277141602680426225969029886955094977498434426274565895230042289882383580096844727869257281726013120740097263337181255026069174837945241972568398348611007440946576786277579196775015070882312814249121866930901652250139402116710817750344573993298511838358834746579749395755287036691972488401416252784740989615245676127069459885525358950932876783960813527252791397068080516804956844560032244093276266648409558845892168235290758631933091958366087036196515229189445753638138389760994040478107979648046314447221502071779374050176978300808059889586350481915880213765637880633502652405640556922652334107518054438656847988440516417734591305071252894581697758333637667389580484022364132044809284075066572891085162490452964628677843540860789675344936106317490560730631646710632641331163288107409496371170940481018295394782165564599190392787194608893082218695856754219424305497672383741168476193666539399956830629850290681283642546706621721666120270706539760324484651435686238683492432892163998250677648785868066068827986227838696344684124493614089056584776974812441375133745984141334024142089969245516950606040046628888500138340959874373380404524567620565209173683025578044650862768478364517338176894002335798565292005020507599566916239839862160886994337571088419231142243979712598464959453499982526599694422431160717581542035251261999950858008058446839838684097526459189940421640832066841008221513701372788150545610143492998778685216006417010660736326266559096522565917315150650841414432635486915280483210125510279086816631940650925030388243273070581116698037514841308178263690859580880415451302159405347669924658422123339933691525165225344270810853882272143356222339963733092654752130824362321153551552896017286501850664989564910516223365238549910547938835317247453436169493453905286197258235165872814045730135786886768353630374050390731809897455108917906274958104626767485494538965339346493442803848919283153803101635105662880124853244670050861130386347460726006613191582310923794132302974615760901563455279886863858133683682382709009832169209430219315244552482863392860226487805546034962996210588300023916673657469298116152238431160761270987395827142283301681060225285862371110658195869659414389928698937131440065552860176707376059246158817765878479606753903870057554581061420671861717126220930390172841977533153139362907276634547628177731270572404631485211770396243504917557248821308357027106646129261039601937119213169427001029488902025556318825820463712714026972990349451511606972680022460339239073105700797416169102952177264232099425777678782383177600746515018661527246084414428421902249533770323131736495913544537755844418402895272527865438389806566205394451886201376554834471359217161471624885333845077091076420175707008828114844735502470037942637326123589717573000717514304075224864335307055992717130763328552426352440737101968143706101346553399554025767220833618719850464066046273801554829904773742415516173899428990398677534051122247649541775376674103795471455367833526579730118967896653489598454310502468107081627000709452880479595347577752903474721141544825837096045458650708997098073823610729901662195873641986662446898797406354209884697841611881988580024450554905929980209508957629325057983951710183856155860845069579885827172253078410487153511695960307934779198959457921962697938687596066159821567464309686620100225766726709434407052418736060830917941970392908712278625411870488354243165032236355861857931089090530800840533239882587727849970999189173826755128171761560983887929041646626668283430369986047549368157837597293047143152569311058433880431312804596501204363169434451724996314121140410413520574178363947475999835655465371228726622312659112478992144811523566705829877671794647182751849587155774318353100806584889622786654081092567641657698551099585212371343178347639957863199612878259958399867168845788339764267475919739367528140332060461274332257817034388231432293773053012419438394743184899576559692104247702007683591613059794708976516499984385639907446575219023494046470589557971840972612433951701584749093653639174652858116715782595711915801291459008667666772462209386975322670807608444888355025077396554388274970448254087079296646360390866525748535035249580445056982304400525227979239864615943998506036476221231947055518901677779440142408026847120286745807792643392473069184192006526704280528048192082579664394566296611624383186090247801118451905569845718855705833570406705381286946892562092544388545340854281581525302568066857043527413126658815262385048578998718003441104086460634412519668445829869944889764644801154139273980895817741073295820918510680623743723547152567885856163370438358922961810351798285853185220058831841512081357371599123962538249316690403057151805676598791249765259244099804120844501874172881241333719082585854467354000497897330586530191453127231463644126078978928476459774681792494241029808240595573398431659039476946464241704483276089003937518232209851000475397265277482678772661385072959705414197075617137233974865289752167490874029627025405285140228606481491059011278356726070682623331447077318623557659866210031432678093928805647483950813778435996487703422625987699931064254064757150327712497835613931984903268421076922362186295013321120009545828242142569616830632324771672837687369205790596927075283615962546478216567702495203388347824996164224852664245625626045001649427646394178183099503459218955072927532421007874338845020672758202916969281247484174245889045811061341847734845386139836313099615470805955487338802095713844095561465322511381531974190781563643422544077921611573077110232605931342681360888281282675311025730507274668095740363454709736107945514037655993086422600926407293966630848881274362072762854586295702940994018804569216327331257956896469000541261062173593353181740272287374487572310561823821497671038853625587227554014540676907268753306685155388496556811677248404749132594926631874676443654867632387053638558913886681904820892438223630239968968243391349585822719598865016290989854055637079150867001655078374080408128185098972194979359057525048918576314178554361461409953696708330381214464571315738501910090727898354260359898751465019455575286295918834520012340774165411646830370422020545120858856915185707757452291558805374905922884264766471927045993096278367124412535281369090545375515443231690334927810702018835422801584255043182191628133310376094335933191896083500765005538011613763614613036656259537366633349041706433310900166042056598596388100974987506343179879252921098631203792732008327859818351039175689965917066819965343736482378029902600663130303599023737563230475091183679862897527537812709202552941385794630312910863208748950944306240019225828130168654118784618459999422672930150150626750829129411732871955009945695517419929286454019097197435361429434965778527636575585461731710620549532498438615216507607198176146582534229563919503844715976887455759617729207340260420899016102442720787546043114166683188672881788582581579327898706532404489501223702631351454763181509459296880419987075857037069930745552062103515410339539904013397924922510366009778610761170101662922378095074721384951786639714484780218024378424518294265943103327897377309503960829500923643268660977023981785164253354515054622203993012853009086087099723426087552356016347514656135615120202601449122552922855560823434652746356103754277451910226911953922691270985724806635799785145825917693680789279659251218241050156087805632363280058248058421472734667504016561608214812901314385708459490972416087674154170242883375746857506616351232401693587141565274929529132123445307612402554281404090257561141228272865709260089799880516769590352673075975310648859081690207285626266853175842586090217571722500561914331939787893490851445655946809435745463366562838234642364523791591434528394999726436499239853857719182159786608799646540967033846748924506337352785218645753583979044584027797763419281156886407738137480517638029680684151569204641117770415246014100686430004233561195764208905536656771327390874639927975802368170016648686355263113921497414848018898826181632987274616916411527616928772484693220654996405955443619707485234969754232819618150184309455581017746066263634817862377392633672805901105106828432804663968062096831556457958041511077053463440648754438336268104582184630394595033831654305005790708368034507635608414094660466048240289348080195246975323647628546997371717036002229771809829175448043756866674234007820112423245785867609082193295550362511196352383395438781973776925931525384872110211603787090225949584272892282843468681578374726949028180916212920390239662717142210415881299555854393146515226587642279227958978498224292160790834067389707955235139527260422143424223382026487687351845082871790248978820146937731215131670559843579670730816928376131224815576704212234577979333628069614863747004572573331358738871646946060350599775624926570410057273492764085150473722161394894829289980100692826189973239033982625622191590768783335548009089642104104993006566449600082353139510841204584121872739976493320486829586345096584110002790035637502069077692384287641144976951431495620288592590264829252226474361324252937419639648953441468659677166041721988201071278433727103950780538097338939865031176963656011971112079634083457819475829777822541685711203324002298214135309681654931270990910435281731089774701077626396806397542686563135183221939760958063140812756291936511721474503264677242001496724386714650953225005778257691303307354557559208488327376584843953534506574961775680803858891841201652284093507938153319963467319682468401718738293227524532522061096764627465190523296742705341277457580935725351727772046221713705712730686223486633325146219853291995252885043331004388470932676655557016229359153575607727981981445691306390086158039278684585973320440725310423770242518286890965247281532993103967992949892953106506658473874986368694753651532516298783374687888489608985139252348505051706449993583914393862602622943470952224211579181114425895769329967638767022003713626092245382568073884280344269110363011997309638844608253171978481013463649390587404765047067321018324055304824400994730737768726706478457230889283960112292412078662891483398282797950742125442972402986583506100217246179911467810060485976228304945923471392673094783182678312064760131157164020009930235077480044937493479494882929369283824111924963491493043310161576558985752916238830530750917861847242146440842952183761817271130667542983057728976678975049156430310711019646691085870774305496089731386012990771610211394220828062060781818365422236490208672572043793229275102893986338323106353913627229825242299581845097785400450191109535815754519943306389383344817637437571507039414530328102218663489241717710142783481834153234219467371667038764965660634932640862832193216982716389506302957469245704825797335126022503362746040548432797745772300024845858457097976762860566222997433323710965454594421503746814099915337933327536439938275177388861471890189333451200553561755017486264075509749534256660578316889774759381494333634931866502579372410407469373400645529760577853914302515905785510917064118472912442602147831518634608508934930268642233102525640725026641513118502549080935619735934417270629945709547341595589533408793855602170982239182465665439216030209967020409217505327265554158583336029406145671856519911606619158354814208654324454046160245657040194943548493145003943670501047436482580283385337181933994098474551280364769571478544797695742694647237453182210000884880446578261512925865802321214064236248862383096176966484409776435378558846675577250274175444577405970694853309226498091774065111416707857443527800031324350133929613939377707120673349124837136699076047344086831493532571794779443491939474299373065296342004519482178350524843320889767683037119360054876993342733144988366354707603460784377903658094429482326059203346554809641878142600031932358904839375790051581050407356759073615031788201110142260431269110826062080662808493192548049828930774280630381302232424943808030442047862312007560709018404587925354413437532343218738007678441668772018764361672538151563415985721942675237776801247789782325902820470399166537472695073763752938912186886734817485951559980777193355286053697260796334159348824932841519167683050688246849266546146247804273672552055234585348987609198019856791825992727222509075365592376901606134807732503163974061742667924641719301743397535022228490638154490186567929118579269203665940663607964508544489067973082633472776415356115242837961773647442337490684963695422201289368437110260076818051785168095462806358728025294362722073036723726487318918898018184874411305887207332578615006516302274218832993162975427563619342525288777813667954104173547307005664494517716694106800422346182729863159940123513390307007206236977406576453850611750985874691168909350212365251719097547872828843955166648995863706185664585754065190938347629946871115970575998566403728903220074637892755961678271090042469585280472815768561449452455650059738324203852792774004139961393219319500736521441095495265893633983505194350512660637309515761692536053065156803559553010749980821778900911686509997453679535443435251461011724658473453247193320867812385506150641567439599718871890912741138379314916600082367680772863224780539768061847798209474421353686959323245161141650307283574968293780448649306220682614250738831017544725532299895230108982672598549953542428199951643785199915188363814307441053536109266316607434974854968752478082615482394227940680660211849067607465512305442544309888794000185528548563568502756597646969364700275336705059130347238235695810049522207148878942435283263853084118944607052030294900942170568798753841132885770372476088823061722074834572058560690555143122377923194386919035432383530250931803356006257155459034795324549755277330535775207569232630137819390056396799503001270018212795688546317229752763835460718576371597021128469841309755023962101443773411123778805975880189657537099976951728601703384490941057764599309408245688322879620981013836619725677884045463493249493200407652039630173007970154894664530655281799280481254909854430110082047038768252416001874034487670451158597497650263369628722090242620241587493342466235933061255068894663304062503455094235243647549770703251528521848648250037863451689997317094501936028449968749197787052715760414738888778588055687405649033128996319226607025613963614072156988875827944865445700494491382045828725233375084338963283566350517112220872881732481663787680192067574829943615921710657319499848994334335548448079185135714588621295806553780698941211188494689384895384335071383905799813637928927229150051930908007760731701511199378972211747186034106614403556225231741423912349656589588547298189300086463385917726014081464915811637708738854171737662935624507339100658356201336743207787891592476825668958302251421287005526042374093845463197504846721954603438597230898027694761110393035814436903980517482524118433685006017285815418963764217738661171473447584070628986301581565719089885797910592629810660228884648301947379176546548392973884743457824480196790190689491630630468008975618027222058228763203502292512582211120669105734094710306356998632312228699196542805606495578963671523594458731100436326807456221609973170073251198465088108781565511231736470094547605110029292004339123601930533849208678458786728271421715584645802234557587623595107662937741652799399573353160231695453857973026234192222112301733483180848902969483480255066285497615859966217329648198379534472200008777118974934954775197895385032828718627585299591421599279781299305859644429429441550471263331926343768825101176994027628018868818444569948618830335413381364531049604446591022868537400956691950647112419805134407983370503993360398503549029849725401132166841147924798665784072820043368367004949252893113871222322711012601125195619003134863776054392667320751606709721237275225407860522645429198135412456018887067195567579219438105325968876870552186164529889153880108630337320341271121058056558281988312346092337847815991512524079160782465675788179649708657563877067987517957650622854880636949007267378557155790152190159142705840925297274525469365915317295009385114447551444449138702668181985274800155752917902091328118661820720193084061612050463083156354431668820901184403309481421573146017211218051195420159897369923153374098926679229928826204656005201014922142903915697316270906844285795972578264319644856078045599301188859517279583116349622845883175117346037778579274774238265550966676259083464611577470364984186892257600312357521913757686997391871714579639643062034338240284463990159159768081494560842690605868552348075270966392691341980286145996044798001694001686036408265893800355284884458695589627534731393816882678996761715123970767633086965262475703360522836996076222497207570493800189335150252835554178181228335723128294397308130934454111268409811161178478368685554161026585827171821582478693945436111977395044348142013383731094764761234479862695425273730976694103831624475711613400247893198862453605715805833902658031552419058059240434493870067845217100574524981042163499844944720022081172290744336898749867511244330471015686318689958257106994533537131416147562120278203711115222717879962439610308739191741813207834000527634400979307754001594689138895002380982007482215873276209944865028088753016145902353245867057852392284050467837529635327620924778692606622273951775887015291964127897842578942251358213985671444120103771171701429709149699518459185880849584063591667786555461603111329978571383556667302687644786659136798466161245899597812119158057601720405046241000533946653801227509112127067219270864677819236882352282822204198744547397637371570964652981874468667974358958535100607019048067691277035933391409494524070715673305238272573697456147537622128959809761292655260925459703492023072480363253996523617473715361780046120628452558871612237106039950230367314731779077590000529599813145789020506962454769408661567499360992098498813195615673302721129779531809853478887709340960042325296914468464096554519868877634263349180690028034328510725316237915970765910994794793146979242196754371794100287115892186327028906083388043403163810876432317958664091900206204662830528019668187475087126913218782942889712686411585415848252894456335363048383968351399438169096063637845426334616199706801321148920814756506092461747865859465515381775807028412195106267724371791927105809913050309571954955843138849769859998700550529420182072611565987027664354245708034492459632876670939710019109783178180413643954171746208429914445720112255083177929178371168295118236411897942083640554268285564065344971965296971527590682442061726943662059043722679847560219190398680430142398707528064862198258983435379501522840173470052921579670614150615789405598938781341512467844644610899737525775287420756443070953299644536829694544411197842392257813217983475684335175415048028078915889743771494365053778261471718270160327120173320841954347598562374055277361396722854552379410276602366155994761114231699450797652252831162658733676335819094752062811645571437822858625678258474112214354991651663206941098946113243599392159431030642289384472592749483689303476150528788011682454367504894381537601209472466141466283603731581726313075417445739775581457237139341924589467977101744488798321192302292818098326360089146401999156319465980265091888074480818349691105488850374276224048103495138269700732925832442100649590892791804459404206874410935658311813714420578381483514566919208833900596827105952159451888155986742688356876708976976639441408616158843121231577438939598597953833576979391396484775344906972970555814827418740399584735578641900377150710948508425308703543485781251439491270014128162880753590205416120766328632691554281577628954336442976242232062665225565783237175242499059543582029225822412747648803381710466062484405200245179226099484002965363132328187364191548130476430730550025321944822225999885713273135331817599237437620438112233054178185616808029368914337681459659663662708638387339634493596902506060111333115427338849728803901745671205932127090528204121924447659807061209264778420533122336338052585572485997360105588569502841718765022442940162451210515122552221678050422748589777650566424224122329813422231690167174576608878980817594299028556072888910037496815407723074467427133982509355443329750389587438325878258100296604941503098835811993168436999373427602865982975670817027285196456946696688851299303314924626136440038339005286644577699584713043009156296814914835173962749118686627062547282982115537315589115944064983666737839407800529055345817482499881686961705904510528758798614859701060635693494994079118118797650499173328378950641852702629520480825955838167737951958795250905596224474596250527528054510008581350420146401888210724108827158941946343290080805372593042555247816420964665667674204774011532425895787884399904638762466507340191251710495095374776940504107141522788712409368391706451977515139610553160498523487422210246547193424412618793098293382390574597488483760316463315491990203456472635824684832952343946230275163924321657242596974799553267805030146143543466927676590456288238243951388455693817070634758626457355790875700658470739464312457351413848245499103711704688829899498060713909559809758752247909024148619042242199748003234331789849449778691950363701913997685489361989196572802224249342534000040207547721809235972038964226132096732374983066669701295882604374367450644208235055955963470628400877774430627924151244058381119163311354232703030444408023197760587553805400449081846472512071867936926799367754838075101134864089471717214901867060166192223050726291951260831395039752660256889353814158868217137699572830342247725660121990930915503330660688513356445599233655115559189371385665567199271093141738893974117120415912957224166910012901522903323722168914879169429705205033116587011652344682828457099550934988497009174871986947517203439348851989430144086498901926075646726319941500839701555639484157169189015946882330999178931685917336109238076867775951525455849497903838483036679887568301488178061083609435072048232628282540532493060647974721723589822266987490666094584548391740039163775074743443597532774210142578890797224925386643061063967405033998337684070070662522368116876978912555663889808857488549925366886782124941728689951073433341885372179329171451111006296932503875890745656148112882489751340138126022259673378751894694719612134065659249904795590879502611010445950526081466645974948372757159280990629729277487814904325528378717035014999837892793455427721423326738565428607187614465965510344454664108478247494189982464122608723859338962494448873614052226656038292127505112893853839547689593826120779586046279559559116283652098670219982555852243104925313827582003419858209491600459096749798694555762869625205699452974041336326854160655328886023008623566542284651014744524072424940006998642734969251641173559813526953131644452113022502894313033435975776876110079668818132519896992000325956417867154704496267522178735742074342726913713068297003958837987873233632505769758306189878450101093458689967850495911423609715708473777673096820125311558981546798994636019198688892837600196533956467005167293827606370998548162002808694167151346832160712558941115143285124567004304396925965912644138416837601649754045984834554887027556050741800751839737542238676445541879430790589688178005525879519306030934430639964309362357487309677057679557042408664690994005120467554911435772965121008986627060025701701702161704474868056951888140404242946925255407296570153137524621091177893141315462632840467222662355328868316432602508396202602855562145312721655654954818972980824016617120220145496173120433246970057835576003655605608545219830072578529288642206441694306794920162443128796528667157697503704715194258556920498562578816769215828545702599665381472927239138906599593627029306198884633498263514737210681949008774499278749443213805338533963640450721233200058213418518637612090209412816810692948066158891516278284693153021653666707503692000939403836816852594669729365745701798991723718496497376606604048449229025992330844905778518142822611925903759062144617329249078128828473079267068618961457538814373730856020698239540033403191062549669383418481638248082552206314372417928391107285044396278026435101274546524630941852399270439311596690377561658314157292467320150773243139428872244387078785771707501305840069761989757332684303355404490569406827155378452799072802579217086662033609704307504496001707649607489493597599392597485095829001537470260705870004181769971250167287144013940607668499862707216264268840101369533637333182751613448848420041280123206020289126284039926884232572731223156155736628639029227976906184226735187939878522582575213892894973803198964801716942218166655084114241952953178919488765160936645550895864886616333680750508968231631222418965409376921647035959514824614090473083640367617382760259725208475337528139789509708035877579819501716409137714173719885309004475485517197896547572375221417265855878962420494263695516239001653937405437663169067427305735669964955968392595049075662215605760420568442801218907293866701195305890307639379019790792234734596148240694829574818264956862572057091350813688587522985206182992398731268713963008762666128925385466150850900464474806267683529041302706884405061073986664337824606370043216103612323800591625291508712914783399153228692311957905472937399171341371243022061189715540990619674930941177809037278123602054357854398170603845662188212415189857624763919350009521060783388191018602695634307928382193334953188208169701724622957891896945328246755732132042855833189941098201857314771856748922418328189068666174230193496331690057418647703679027962575353348124497240641614513719782520869736274442379203462073789941128722821714468130522592526606786010221664969627488168928872785633331738172729612051779252698745666561981790288902068840493904933830016298494074489587423730700667754104555437293215344581492716687135027469342586141713027872126934562933858149942242238713006435664785081500173630067015381945836704816004904760329538262113647467680830424581105576032589170372346471005620180144631061838069296438275927246605568015041344310534671237099181630839654066213296103991901200609676303395845340906816783318120605627387456001635405151861591561931912125423888854088081062044193678713196302174730477479418304545855199451358248568057150376317001581299749019883597325550933415341050638693360588836833953620928540551342888418567122403176449147487089779063993454067212970953106954726643577353895815757882994546180993314228749529775646056849999131714059115007227204785906438703649477035833037264693382730878173658965884433837011230479298120357883708443648746551751560957107940710429024083579626763288147446135687886818608106092291534265057387933292919421537811910619669845819036602674206844025845343464267356881052353999677121366917073265826966418750748302665947331472748763423440425276686675464135765094266482327885977906849855401464657236305083636828584213767987646640276422505017692008991363695621599380540926566211402008067699761938564164810915641457111464009754993791656013392089960021168341944381696004938009495496284649340741180556306813114563880655701941458184542076179062932021264495628801078566523440608789271730882954348883700279982949875048980355370101092181648785947205531712683699934941516811155831059797986670248883422244043210632837391801325598398612112115015241804575812529252906469162753064582117423836811569088499829420986366529417693935028908664290567836121907404581565552494174983699881154019018482283237848018977813563433201882549021083463715003821288212804850157606699250874244255099413341309946707161375763291693044721084562706137774105265687373033742366450309600663155205095324091245077136352467335308879745012736923353670095978981394533129949657216570060291485948351573110787381301007851783122780492947227602936258023676374252468998031380463879206474708680465657966628789915851244571864378711515545516916013877524417097134008706918744635496491350689452952140090023919923699368308929513035538372852872710732906518111214484025957863004715950891850833946791291273843942547499338481211354936103271860994472871630372078748723213364228976811256584225036524712508901915193507961192996757843998661556481864894582492180730812301066377242159884688376875339495860576768790293759949342532981090538026977530676177587052573616971171115815660599565509675589161032034038735604444194694369895886434597316177259527422177201425091063091651022724963149306568143964660996810375070491272423649686727364303299814219831934573160871760381636590499672923011072300140247831430831914973930342155930196018793860390719137317650633461642127610323700860719359292262713107180107692220050129448745520979094550681485089872665392969080083008575997095977573114301803083236928947712294072957630223783267535960171165679891215902408203736662221221353044310383571786912871833707339574080738554874398469557812382814888420448432711385267970685379495417519254948274605442332911691414380831448486586763055389680253912918303653467103627785223647974521248580232083330602815058637146488082515522214050224069143147145320583846296820948091076706529975557579530103881074774082181391443075576226620844767151803910026974015307386648217899858532879618289361694028691370029482466991711416523158251804390708259655705221166255836101288891759847071794306409531222507912016115401442840552823829374036914053122484625716366908280398593979057350793659232023423279350385469955115129998969200587299973359359487814167124624261717079735820004088869463063872216115302134292451001347284504179421581125083563710318166575596512403362661281952566458965013970439378369334278340606576594705399552644379199593801512945385260276485208373289622858390447812878595863909106893268663735720784310107012559997466677552612263269677361769470730810187976739361528232683589413716981507639678694060027104890944365348500402333629784643490195455751641720010410682416764278852453203023370938938049083824049282961469232954600850331019286263712679158864690998087960261855024236074189418878988701008209170703427143265355859889223934399489861353387154794298187920347843884450122845729938602605494531228345355720935599189793749414412183409078808154425132013363506671496626431394250565126731529552039698703027288003754075431509338642931064596438404243586432535741215593568755279720072876173552889427136177063401032625270754773545851320552159830013519605020959138030966646527735382019964064098363764148676651789657608860666552027375670399059034174978013896250925142224295781439733574490021397732009896936080697319366984572968313080063104439659577522479751092700353840058569952887115589496708975281973380120111441750571405565878706670011721608479872617175387574849660916662446332824702095704008304814100086828663535525528166369324961670101488472172890280186747368810057151435919913486293989208124591223489653954085836847896300557281176616274864044083211205785710906034103027108020688910918083318801418138136821089597883313311399689713665690570156168621445172978154963866254628481415650956106311767788036904939783113467876675095895050718686449874969407988675811649922850668953684623398437210860939772326709733230291775644414134647627654704827259098405835856217549400401940401068183572651249377889865513434245730257736844468194845995296841091778629156084661242578337826652350085863421657128822531205098237434871418319819143611350686656918063227436231045567583127040022751734991238099281944335357630572712304916553705257671323691594074645637861691231376470614472088695587417717838303444095757700279604869050121883414260567232588602611936478313041904756292055708309297751118902771520647132470628080054829079664353028846289117570152285667597335591684980747926543795030710735007081918338923666305665147707348524790882928921445552772935052352513788997094371492372187344402355059667769414954967420017589507835973370156945845296548751176687423479624624429968852346590322099207017604190724753094210495891846436581882019808272822900256658022249213348576294370098579221174250296990374385849664299395578652190361109308254193367428839396656594112660045972435812974101932566363397393400681463254197167326458633901402087486246496497124834013490499994544061431189324089480530650373043019379532070097011298647760601672622111670046389074834788382006165872316789485832584003141013944548470350520009259189970004088359354397255834258045503341826164697963514930564840060795313761785964186203382148281106264160552371406060597810331437625245712779478031250562839730258800535492217316505310315432846695086720081408401360831855323172605917274760875549128945642762564392707609718761882310201559413271812398618112236903651714136600401572724089262996764666722200315739415754122790125968300923372445625398859492717491752233388146407968695929025980651192526693056986511477785462036038277496430842764904208115474170070300622563258511542397413194999655814543605413906274479806991816601932951446367130184893329975493501442424595360642644140775307081085399723212415552020848799804391263667754153150843988105196754104559095300517673930630673931862329695500963274367743367845207510080403167417024215047783131750837986502878061546230799423618955505864306930955035878208200654657684966187656371497748423325494898964167300523828154383235571242182436834835350710764433934496175226646804382613281321373323045442959325675472195392562795605329177022640229331128064047163595557471457808790808938767141445409961345804291703452863550218952951682140979315568549375909998311553626010384073837343297893853892389152248838337051680658870618450197742194607279250010917221892401131480201607008502542081234829206439533556039981321991299033000277411498727377751299521041331074681670547478143906870898035884001552859388129617572396859308884017524083604702823185506039903298169312955830653563860849904613311105400594397811855991342069987889126064280765778364893445096066141785031349360353274860427580625369255435880284876872675663764896951619555068676381528284696210711592550671500495871940594371951497631862406759646805264378428904540990382083499766875155552097943726250652332475295140837373912607636498286677913728206995992534934577669147133390062936795612755045712882285520507802203349175936130404933084239952413884018210185812918343430007373562393688595102400437663085400939614772071707004883789799751863059541570141545744256714627637681295823896323238269801337838527222921413443465364393565705798177904228675128148325370015753353247426376079122147530250346540001995652637585894319441774412628964253774328153767742278656197125341060095597192253167367746679937440083705925144761702962513911013330707779921304882547473433605013333239174709033197560001645577923216576891469873800324627019524242534956153376487904368817645569748710578292081717764901568105226374252377728599222332885209596180175194462011529964393603855731528181043675743502622147585160893487351868120902876764962571574959496676936559791803987439398801535793315455074915343303367280548217803674076400889313515986970687380663095323474368874712258520413472096182719725962736412630070027344872324309280657468124389177620539635214682995944973329867992161944839438570072207765417698778933551587952065291516653576517295140459817318538324995757038139329783574371641707829788653664811399773029150761466926408181141878755341450665588851107666845011305835727447092503392774262889604057647401701459358408603496560796808101451388824328046233897442152844602244618680456705465698377199644397558945029935561497016788655294472763028733090229858357870271727081720758905588442190762660475703336798693731230599630020075354978149265952581628295784058511093900829893506385955876720701939261204120863916085406678680396756204280401848280831816243099793198020333245188819440162776459740516654604831701173755931454168891361014375929847180629349810897401410441209605231324831886869141335634405700382481493972585118917019948325873773374490955224656679113047351119096477236536042307166694098725302038498708079884342171965926708475163940052343054413624903889270393092055893883372932330744658471704268439174394617915759045901802169686146692300263824878647618191464259910832569321203998030670401291326090528495639964274396925634474472233892940710075567488196280365022372349049383436068948403591622979109948425768846491507431268050839171233426955942313290455959931006361377845888084711089845408787898729940612338296759371794689537034392135205288285076805040062844167314845798431340501529993443979203152165683197026824544831311077947723613227615955325487937614015615903993079604405037803901320586479231676746089146512611901823328752129992381905339060469456777125207322926432780436144254898059044025857377474318152753033661496507848136246472451767495159301527874964607026455129156341778389508946192251291947666215551645451957697790050923708154038922909207226687877066175930293286937550305587028827050326279259918773358577709708040579880117625877347008200452113242844466491706764004046658490332456012253222703517909625192764223507283679662222592032367770802083106363990767529825916441428422694931387255472324955720252477356814993795091802973105528108397787514755618995585302890328651609662646035839759042121956916625189061661400867791111551201869187577831365073817245517264300860363832682741418592894629711418784621295372903512500860453325157680104261796221656319698107583740468966866602237858655223670563202018965728534708774324741257097896478984217985326515260329446387981290200287504394615708060046587338075783104962252010389997837510159981973711255682920523103641163045449220925502297639387209770736526624994636639941891192496942770903684488413716079008377602795494701411523864379670051101380697102482659537838547296702015535941865902188869393176629302719149006119463807876495564758627797337989054611079582591700723201598712208167177068268635686795748811008753833067222613728151472032153246264555098834297768900220688180130070014436113610712387038947617472725508508569493201892835084536365342763870934396280023676103792831304601457119816560652360313207204678437321298242330807347437782959179333614897868455279338268345181661275466967345277490382453166816927874371445290874183334699141722593548187111342475799443984813388027915690721824450656538286351053259039846457052322565959540508707412255060333721479746120761548550091561688268932200885598044062403890264201791452151307076195487519647631039293022597077819006723095154313253599711822417554614613573059454499353543858157956179559812697956735646265047083937794290208866916050930528082234294106649973649997240456080473710131457026509922428031129565234944202430717652070904075251301231747823435639359110944584832306574637622844746085380746744537608020930002065470144880419621912550169569080541242191590168604047777500904253073038709090023846117493150409079667229473612596833739876562335273908138087894846209063035993688168100205751575936000336904946463694718826838245105877033017936769746227783202551475192460421919697207978750521517091111078089133534986947224853925209539844789399621000660465715445393263436089956684024746872026832039221858142340272202785048211534434938351146257869804569449003543877672615614166900337645992576430721318134657878819002493263251916816921739269795956223386609302802206592104591042708233713269138924885637614747920727008460151206898196855186568647098140871576884447527617977785222452688703961497362984252593698806326137568712930140922727378086313971598812734158840628378669474573159201300836612229828086377861768398223752783672451622784625242801865824908505939178375971628404160889984454263447634714450687151068928045357697404567502150300058557893610372237017654395791738646560265767609121875227620908074443582492154772289381446982467548812691301338446742146663101428736506468797253469531411987914227954302204770362753388456989772450867576371193106958154262139810207237672541685217422019878243041502311823572431298802526234211093580474002909052304264223016892972497313677276810044116790174212175064488146420649785840786142876946123357201999753720570968451599688226409462155851920509337989309052648822394230146688189298693053536158895527600767313421703793473247038029385161081401213893394432497552563691673544409745077982796310083751096215048928534804657091270363071792648497106360838849582630115088108481464510457724834166065107102864557529226348440230140871421791545906762911154570654294943725848552618798423110834321089815937101907404958062795038800362643118534797011882585584681103785426542391858536704065421429221482161950424018018908744738155937621606063828210272145952297254808499707630590372165106245616701826773250728440737920095660612306149087896702805403505673498154891444598480513918926327283270516493019353088702735126057441838989125162957876378132169324298704920390525810606466670637335016228427035732721629252107224376233255577739393438569543955478130709152048675848633498966772650716707434821942244301382760261400287896451564478599586458961629885085138425439581524054872995150420044529988780204988639741936156717069900810985223179172421195036393179404735738473603421314722801286726214056854073855486067157950277302361925642196141635387575476700132461818125098862916940647781755498298464181653368541322864733764881564072617413730906805379605434869519186154791036091942501826890587606733508280608691006753528718291198410815235397570500163748751423412695743537313071613016596009841984171988540989319208464210202411814718504257336877512034525746838051736822606486815664237971443985169052717033126953021228136126990670403511170797351088526727137637958205302360652089254619948658794831634407571489527456208480587733968577390566307359728770367057350866346971406125596416755448162733698597165083301054422058258349004549830505515238248562254067555410185307951344762309969521096426622067183171875289456719309025986852546271068095298733916290243743526979342012895602706233312289663678616808479895300630979664203394399884263253223251190987924186184069441308218828913687869737548490140614089045047918292489789705508495523243134402179719178383739796070166125556526863088185063668152448524854703556220213655262796110298322705513676382282916759967966095292808097497452890151200825592858622098651877734169757889283145599280746787791415378890014426018901886697134180246505136627997050188965342427528253786109331159786557001130301200770452247708470550346236149337845466382745989342062871360215285601916895799329396490287932268740118605044709315652326566362856084616557039521928755681146714870837580558401180679623580144294251969699755417609648642851402781100202816028512620293426956749368279644813611494019647131534668610229905342527171254647497779735459067497445547443076200095123248164370936735575548857798162635932211913123421041011873837359621930833616518749943943878862107533136480882718608986889222579915569804425835512100321063301176182347968641276104995440188489180030880212381507816059231661462192395864094285341636773783319158798693617154124054341691491645628759549743771782013337555621920129261285964529576146515293916573320636755867134522951987126070892435819656494258564177058415446927938736303003630619272807021732686132111434383435030272005395101538206941470780864165928896596881492009902139595355995488488191535514274977926487335638292661894517897121202598713921266057032084012847608101504440483402329103903771392246600916165314836435140717132027190464548163610984104499479392689782679965229007968890702151888994274177603580236208802975940233477983040205297144689027907714601597892365031304063235228752769827800821727347981757287468820000059939737576751948142235177503609860026991859615882634631712447433917115030711011167799245325417635744961530045978096703209467996484386655056637853293236275804236713808576786813820074706208156372598387855863096412834249366301136157357581368863209108733017251971141766244243282260759692473139832157420215917163187704848655416246008593834032383216188895308172788693345322139691248526015113139895971040417945192990780035446634191969831778218566993527653643967381022070961182683782572580020408878648615870581170415316950148552897458802243733380021680076748655152770494901858217435506789516252945637429002866770205103856987519531623589112098635559884230937285441734118350424924392575879525180554750433781136526345025385510657223744572838614057167351161218161815441805046763737017125691253659905877835952603959969168526594612275790382739052015072042590311682075978727723199237796066718331175592254535361970956396843733628409617044878788216986175401426937448827841856243497833113735315605476822907194920304524761633138837021078337473477107723499638824045441957408405275007270961998309790586608214265209509428152268542351405669525986499488433443729113029557516363560860526767127175751666842436528825933774431017000129911644582256737776063215400274110022895472684726226746263430917552418964882537418863695637158687733434179726333658573986582246994061222567480486123413238036904516207736596344929071258272290340729257617839491954010073473582758580793314433061343277960926769667440444442160321893350568323868871741565260950173830002645420641576292321160244873940948416319327903722569437677014113722874416698793390628620171907837329338747768139583196220555192934993513233905161651122910627156945986041241606437888239564656664044500711416599347779063992542918058064517264325214546645451235271157345048337582071023836850659172135775553733630292335888014879315847977309065790162265749117988377836961329594628584499608166521603153304919593599622157788434231439418403267137206939658662563390887466441572101681343043630479908094680856362265498144426849297332795703762258788910602656921855301836815294803075870340288310906466599840002698491306384664230741453119020997881020638488682278859975974358917540450533977701124613330918493434429612976313426628665978419376291334819344858785173584491970660545656948341685343664218585533796923086402638040932456253184916342516288530421586384559135205239362879341071157291263676324559137789139093710704497583896312615977008345903644414165667557286869133548222452987161151443389823468453920798848944910869927087394204454099790998555650865008114279126362169681088357849999239245376099202105809266688915133233308674778879118032620695632169084341952626532148372663435511727083755618471380610697639706142966120506325120860032159651761024333192543099778328702138598673669899232417677124117581365262143673233186445278741718684316874231436417525142322254732020668035770806338859054517438567638910870231671481868351978583086788742130143509384591452706402682150504933459844658662203091447908155602063222237399673369177859133461733882692058469073537973373341744125197529564243639202196445899067759450139407085504006312313275329315891422979818862915652081405335201193700544427698730904160147318893266641449850880692814712192168077202050725317705206697637224679956487806421721417805229770044001644673194337352207903824631045263361957669358044094724472674965200841605697019714023566400892184935593057613122334147346930862991969538338703182004953359322692419124232549831836756980091821205555613901094690674156678379820792424797321884820177405161995982588331340252404847086414391695760478221381715337109248587064715025809541202289177808878289345602258047589475457609132721683115042857429740653349996490300276403448373301155972869677045550281632680568290451406626389340393016808772273656793791021274482298836692265242621986573287211629903925941606360677485708462741647870352452705141985593853870075819946859624554177303259253679275357179894781698260692625513019927988105214105168386961021380588989479455329334631906383980133394662851528077843669222197186008137971974533137088698183636447740241126017096258771186978469063471436259531560843416830214346459357045635708506229214649953514549473983799646953214024019985579011070222474239779587771842458344354637138800018030709597869921310874511046942372198513376110714698839234346541625554400987065697908219848035406717724119284538960458682352497571765216835762674921410343053756258588203235160906547669099279495641981402715788778868564674516675625101649305718004191313446299778657473775607164453230209230738173744090286844045462950719676490739824482337894543520315697240126733052325802577981386638528449746889232967109844393530865451172650768123873294581520257060168827029664012814687719820138931847932147869423643361388052195833977591591492240882980665160318350239834691323159430516610173906268056639363049074326265435181155023573258988559047636497661801655084565196196306210217814549643811768901906993001309572878579202426970145295309401517974451328296663604881520243911455543692017119578428775118535785903082156382911678575454152191817976668369371259082397673450285579924931920267299234575320207376764076310035140433274647353538331326609672631178790547755258938621321463831393247350183523960499949151021198097525800052722071152205561437291067896610623397614006231849984305060319621204213989965876575133295535032615223789818805233351069369768114943101837558380574221202951338049502690250396215546199339159512317347893953868365141173363827857435386328538801923573096541467915007080730639856458789722752312675001631432519921893709053996824406056721721953237641533544938707450248782619827462222142573958809838065062638910780910311918984762803901451845618904530728908772542481678357447510067852549939413167663575452729666897162586025213719986647872150770804139090134207170582162599852758008932990611838700760339771398533844247276492748805972740501393096351782204621445845209125261682828162517530335513640098820763207628248731269369793993131583601953825072115271168566300694647234115214844331039690684371129020103737512014456919974204241652636435748374492201483351907050118097916458641232050562855919420291220775963803022497318885029337394183432503677088484657042306710304313651884477981254478936075991622598604145780676067095616307641438330092535449107193609109139615396118593313023132710179379584342210500654345175016621561164238986229790517316077870888769770336500794831728690745321754632234504762694556586579368619089277754956333980935535193577806771070325359761567836848137538703790211903987932266621039988331046820323420849907572249217619294414401920284641330494017567386310302150872687142370819206646019837238556262790217178543501658011851805917248041372359969465967731144036913009018055237277558972581920195708739206804793326632910625561695963757959546008347460392567524962418425571305620652848763979798207753922682242890293565621409186203817594553744972951358246346833795043004461488141036556678274100547448144710954811650438468256822635718017063299137542275989848047751493748108863042216288267772055193381322473735937895074552097076647955754563491681261350047600517342433122153753261453413530187181262770772845579206498467683915838301194209650533604495172985452309535312035926770339324868527004889873504879414423885040566514504564675627925647149809484611330096143374581575822173919997802014558683921430678194641256645774691539311589663278851876836842008472220612853541287470036037439043048282026905448930103883920654153547524876423657736337442099103139391990947722570492399674741618770596511971094754377749896533448850894055826389458925717340871377049669510741520207712374058529534091187522906141597262759527303210583457233105875719020073112059572376476488124705243034121699446824600009577339253463235809506239058415536708339803948876542712037173157681309617713431974202851979897936861521613762442017582300497501646395589587580399780514365193276569265818272613974172662486360574992646907401972007419424626932230566357688115521209434068331985970378797085379569109922333754901805579982372396398752675514672555746997917795756445826204578921831747578325654862151351078454664236052565023979764643826394022150304779711374064561921071602070426202092454841967912953230912186468026211441622688295995540774962329462769794001096381605377610314392734480239997738980774733042538733883947874907906583832052283182131230016304991207104795331387177016862563249378468887000968834228319542364904319673810732556243599956851524617417736764501941549898134538685529099473348807433878388742160014039960224041899413369282771371250423157000874404283532271462655946563749690615308884124525394802673455935407085258592307142400982697838035711764390973069753055122995482428176129286460237885043257738634532317355155774014920226509125354065818925765035350638309340208444009892960342766423189028044492919995511611703075642600409338493914956745921108345203711657972071681427463799710778937943743994541767708259130321936613246234856456599534343023922925351882424937681362650035473656392473575048140187104203043618139128907988188625913946737561239939544192271142292094216378415318041561124894957459853266279536654077905013777055538191822112882494579046029337667150358472451793656685632778966188972585088651495574058062586118097754066113678308291983451380035965412072426507035598208725994932084938936879474723766973555607768955234073774238452657494501292745810285704719608538326239588100809254964229072879683571411593948196967963304593816591087969672644250600862619805578699642312254102553578212769048057722295803601330678855799262390444647250914689914643579956203386669001959050401596624040761278714620690924390970836034256515946663481108972597095450633216524471234092605312217584932855046655386394970976019689563210194616161537053615980372944274409288097533164025563890249354926225114817446448151319674037925906002981558767598349014127898348302195398771488561011308259751342727397861392373732838720554286796489151412885935875163364757959354554466086952053050497853445031796009537487936549061996310999333995536931229627499696969279592304551979656684164031227515772726170290266100299474195228897918145178935975996095705292953392769804085109670765255979499169928915935840399969412757934628771369261601595998380360410073074541528030820933418818852088258885210817098043130868768116555763679536766349550754989450630600175934757056300456515238099122139891034002627398127385149198648320416656730042964490214350575562620997236704887987313966800956780215181655043775742448782357694992058445778563984882753512811250668466514993193247227545553969770135958060882949335364010257880847337018510578621864155918324868501420255179229144745661126248706990224273675665986449161546404347187808830019060627995988705239993929624201706320861627868495705714854104573637842326683200319789912978187484530618972118249770486923180422012527188644999490808828473626264239196995789142399577711243531311312636911226601333826737838063728970892698343443147608336844858469364097118486898108465521629066044974186628472181685545323132742560620761620220520051933032984465790486505785514941671386758908766728176709343034430275170400886737179616943917474991305895030368252427635008404557389673251598697357217579099291688411601612860896521404094681695237519041841530612662236055005619662206827589122659382640571252606348292700119053313512297871588157397740506142937764040771157433760122657260719615064408208182063110435573679665737938189248673230684873324006268873755446845397183637130277953204773501181989117287665464906224073571848396746587115223756076191117214821619554713939835835351650834673874109716881602584398731859719220906416091649794450082255802253372731275562270424126077254109490887930317522616077319731909477524421302854924458506952656649829088208143751697519039805184223029244825377499814415710217425587082060496696755674519939933891658175110926450725506616742166881216327907062135394316477120660655263362733587493861890413432403927560928571352054673356391554860236370475986764873027245101481760428134454589023896952098551864917548872210735972332443599554708419343388416310639504577552832275388253972446658610374744473614929195914002471539757692406672894310714529410674947220459428130830928031617618965442895919079756599841836623458806791257936459941770045411576977462554642570840576848718571188303385973504196834752162859063568193045276761526417671691224608531296474050078350409146872518221277099433183846093889021632783966630367086637810784416207221618622981016545714508785824753931353716629313546876453203704556043697925642584700479874180059142782010717036932464529148442511659058763539205963781017623772035874115859817399909557857003111484583592701376575092094632559443069724969081002736365372897769196067804591860839210248909358774889261107563192844187691482828714879923794182517947706605902036219669919540861953576077116758132501607178734686940420144160948033633296202033041537527358963483746956935157800540212758499023001489237279816527324740587581410086525341972873744109767013301441816520241501970314395522453086307931812516115000932420928647106129898283514322653463813718778181094550095508512572477630504857056819034221721315121145945726965808355724851070704059244368640509891882096702682529819961260485531608230456016198258151816772934686200906029222537192509351391175340115375429551850710937022890084916972033803604118831143480156261686665644346976658954165937656335952967507096142525069421684846382040286042086893520998840221465931915682723137445901451930356354038879969587940365253327844786265974757520763115602056391746305057724799513904097469188685188798481211258013951392439429131162538788709948320409148212699886385790112084386433254743278959959597187228256881688073812090667715607165826004858077861053856997657671615165640153478076538813344277674167217084536362562389527981335576397212738116418492685472364433427292553346058139055431163123599566631195663575958489783222425494857361876676029858252165119223610293041696328810509760839439708547016688149388664100473247877751196785601441818835909470882818274376104746749814495414244580134409152445092484343305086978324466100490686560044618833548998747577587023958894208777350786925885438670462575497312356958755586813689052061247684545101869767509237348304374520922437734861474419225856661947082025840844386789018532461210009159281135470749498543552522392062848135656952155287493542685673618497712472037092261047289618168484883869597486602986185426888917351407170076931681967547333013841437911393617235613953875980170123780498222675060992878763202481657527191410435269694010925188928010791583147727724369153094820004963970945797778787402805521524356578240082517617239243758966100178086176155617828270073930090937444774234440208419483404442510323684789319535922163834775262528762950046877654303412256512095783894562339290846592719821982799066058316330896324611786312854647562347023855181720412897508408557416271198943038496431329912111095409998347234448309301728738350259651630776347045842554382218602151388165136992949405035319955174859602650365837229196019924772449023726236384683043531279248275156403030506582168216487872712421330476764874508104558808175039345740458075956687565270383657235487246052164885585903141946777616950176623579958684816883232544492483051465121753505003900788887027277211890274730466428635794987659782339442465193734154276506737102843181229927124875670247126763317138921513591521614998687638382767554845388611250712129401416429856108071838935536576169083640303193537368049594454942229840433006990814888295863021043229294021886450534475321766602599244438461720215628745937478476765075058398707162965936477227749106383826010829983263268506482720265929295869554186170067551527095968462768001629797136390939866469372222812206400470650407806687130811482855598541984003601834471614171450759479226984575781242172437129588645219809248247509062299705076362276563785582955998966225646585420610864607521990177562462120110147887390644387992806802047846682299185346418650102125960641836186215208628632997029521711046594730477991709647230004674692798587190618737817812407516613081074417158233825860786457385655655717408292032667670379802078661802234933844637362826428651316712303177457570608169660052320831592693270388391464259023388033090766212827723484913864949370055228795610748808166939684235937625396519737998277671141029758628315934713277845860179200984324330422753784003209579392111659671125780161127253010170454595279298348174305601284737973184838426505175419763096253024470916064226756432131384679621177013908578446034265200903981792092526641155111040899628287615583958697706685268548540614547632777144941992904525092159927071032585133790415143256052430437450007900317450270068223723264022828882281308237228655141626932875686652414607150025654390273914315651163323932545631154322038511458129988413406914352381937632612004138294010613876624428790089842092157416099059237271922998888252452123195127512415663703394339988753869788662143898897351766408030586542967034828295411213330043717838756864932995673710688565279383995830922943816491711565599417591730181190747708277609699680623505848292882571624550625542930055112217387588498723859101036496644183122337225632932033740419174427832722868933711202303120171147922984483054755829603824733828901764795936546227151544615688809181614004900509283639160432833554151066747946570924565179153814242112554303270499220841615511601192258071093360607744123771088517835760027833084534872835726993791310991786706932737475130676050991047549145699873595089693661467982018991337119860753516041813236810178896007914309612006052486363549225697081071097936380249439789666962466853245635791086594773144511294184876159140040124644905018242645300774984133308319187709121902846036158000488683674945894090358080484244110055891584230213864905302835642426280931336295520238912959923775905900329257323488715110308776172265459659250361577959872601100734973412701627000882711044469175497157203250253429278420614065552404929720528549159329064930738938271317761647227001527350563509850897908092203699939858122404651725943856271446171737275977331059098486913986271835208418789097909279627700965140154615043004612681773551274149259524258558125265833971721483360880336733129695232653298080393285382326276834754631417591220973055153088220327205208359116972807575724709445919828040296544407588475582546183239735213675436974302184803741546759263118294841767124997184496025014996880581735296172759475754332941818279838983577412402070145720679885338592923369078146620089207829787818607905501678777744923940254200811928129593913875903520122024472200158366377787354588472365731931797122078583024744967118679135018688390679062058877845521639910651755496784826454222172798054724626499626700468105664191830217614553493602314197159254679491509067879538531467926515185830253871751771615116064141055239926280184129524979459321412482978695639267913119803086743313881928522415984975095366996721989502345987323216549440638569913170463434401658276234718561902560398747018314120619015842329330848685774293585747901715362567313476413159535110173258430489061104663792159535364090985021738499278266415151377128097108295966378417769944387380812043637442503872068901231170307519217363200857794773414444487155783187035476676526173544134924271178095422279152708443569201778974571603435428999223533776202873890940535394895724480536051358751715956911351308173810953732571726436309539885125029611729028772781630285688915206564777472818357791126553158034453559651648913020928211816064250494173459593602846634098544404567239153912190123881928491113051410453217004051399808180177684742995931197102837563513080699074864241297582771943380529130809304587796227923861424100153847387912327897302129244512780157809125157097255439157181982456581730992129733586686558011863592760339242454414713312810231106490410752324371145064764368793525327248418991028994056913476210697006226156913847494909989735451578870418521605762160337004598938075949111180702390292857059596406366895144284327995344433386146056879286159034446472220808024977725736234794838992902906065302889109086137225116706295161688635902765073408261845798475416763456098605205942132947869726120785758764294064875395533324300235626854642950725957328205171499614801360311683427785145147553611827372683994598268935236894378477978808045554552443605574808723597267608040291847436333633359386827617441632582965185576269249218454033626823408627848475861193636354353758760870075050272718780183488514796148741336242872081435886682364811604448281163896630059358131720058982441508787788282738419790093926571359496137392630065638188558293062181515976559650526357163963961006551607765289284294390867581412953292608593130542426144372234981685068809132668937103972936913379746147194357546561419302433059749593785478453972857298265978542611765159539014987066873080291035307568286359121496907671406084585494916046302543446643301914160249183016983524661566637233355437247426658355906981859271711018588824394056932816532447167762556231088099360756075115578775547681504831792913627136469770031717997814486125003668316480957936648015704350875457689786821788045652694856363268471563042192385790985275639035487793232693974290828369360618412350225085840000804755676653059174385626498575393709980063414948961695341479684083826011332433611435586170130107860104573247002798978187683860445739360076713279594900404549576103867431868117556465319363319275357820845693647981685256361461665616397633820701881205169993192696051785893918078310373809761118318197540440692320785957501131749898596663386628551752986475827854568209631113285383318010780146335031163133048434855935255722614269324209228801183970395278530439796817535707329032429740210212748212197142281773805195086405930677062733042966052969120278960059070065258792313660033558313972789474519522690553782978752578933640797189176525210970579968358669147108930489274230802847010437976520237503503919225471663293550201848338157116442464792147895081991893415010994294104059341255293672870884808304059197234820038844030278195926621922817502721868478263390482590103118354106110285765397760746003296026840525091749406445139476310666634640374158613305821090930166669143109950829559596696775714994350581451885865806211385449500909080174799482037000207605471475910131794583265749884545118847535150183778309406772807936503702134424923687602111462123121724280741353808149553450337978792289275334282473935570854723373074848340072233502506177561658757008381390228260553441084090307811687605363404410335708911778682422437845648877840496418418911870679048216639265323807449785296361457414337092217732773115735640379656323510538943894025077586769697164685885806674460943049536478379040344386550021387250575116852378930205870930245494097767027112856201991006828026679967527903195083958645094183392369390916887480990789953610243028446192816408226943950738112851009401824578957079731769544771905378750633044718106171397634473068209534586800558506348464609971580037858337389397910291761974892753834420434130625030990650282216526424118938883437729363397284319937914350181351949885062741736781966576550458883559359139362174325021344921442435031461692271623017861772024123566724076700140192090611145718508374561422964318535157689665787778961791398558026419882948229618736309288885046407247399188125198222128898496917758728122751357912743080768606269062925046419817737140213768055106922555703512478223273939350427575564706797100189803463149109793253508592155534803313498667306197278714005011262355639348627451984821137985597513838823999542199793680925520445954269434388100473168609921162256672656463464289989702347246186035172656737018367629648453991373130408314460139038097929737787513997024856342378181148155334487294392098888632013902453461698913563529311951027720661196498831285666166233424480750909273308280017428184210205043257884275166998238563739407949496925056083423890756461282179014369036902795715998303329981616678714535383316127835408339910305830478304631540020608949410723579880421482728706415549379845328774158737937714673365850918039093955581772382860793345761383520195930360404492288670170984002502409743318704750497749113883609912060742037657312563107319734650374894622742472942635520785267779336942366850418318676003709248464236668476248337379142406656848970517277473814170714141106756390792059755140546619394695049705453342905265024456638991216833403410960898796009806782638911683594973027254681673757814401223700129483151029129306880563202902513856187951091417996103862871615044486718689563145089048798993564000938515084444623565250648688003397795732102802980747362951489546579230865188625915265264347869776675575261506873623442628325419027479770391607285728692752049889650228882352749853145801554765870016103720604173332481979920737992887205817232345494011683580566748029194587636938370955527029157375204423026421818468763753122800944555406349882684901602191374974043948247852088749561091582362836163477125839110810579582406485530795989482137618419435097198371147655971565906458870075074540944644962331343467325174518898895442202615481615343181866354081545768867834644094321452952688568753946680528919169341943634405196097818101130411653680343615535096416771610622996624353570327780862860824680774509905017145467633903895930287450936107196807005957492260912186536864188066658798704284719658653255976877098186109386403720205949118916072511694472568839128782391968892215275052661986446583745700217054149542798307725724608859869655883318518941877813178250946512287229190186367464555232516730912299170398992039541744953131290993467064381792385240148646514891167212995316689463731747391030701343033674701962133403680735637402454055565879071739027939400566838203036034530085792444744985405441993209375699184307791678590988362422561024574363664590011834590138240052766949322319266387618661970557994348629500137656976013166801924220078197799364670252224145635469233416569643834482760370046444758194408644418375526607317607084931349023417824366201761870800086293505986120380018762688025504034372332666741471207104562633751381205639139289025238527618818726513216169397212508371071730519113954775184566278064057547310196746145029414546352222026403998299279995477827454417901645076824129067939155261934210232008831987070262744193523042924780144883171777522055055017881029319400203834331685907857387443194920622803340396074295315639548544298193459807959822135055763727859175151044381426103430461843097009877147307836876074859686705561103064722621582016556719229551678710594333526018176591669122480225690474580527604222056996586000110488861659610153169558550161304405333395073775829424954227396619079458247399282660700171530734018902622817976184894086521354625825839219675912893908499712998369012861336656262401736892573661456593183174608338578530051081536413797719328059383330894054171547054824246352514094292911176785952255689150655935696016576710033069438767785950702583258024457679971990298471257787644450380441666948595400471342759972728878702734542241069895097206470672691841156231840145469210051458802594453436363328060597121375192184117533414046113698573911573414618952378657189773787211085233742772978697079865188217649828261708329119965580487218693416232424055433575371543452330746770356075054513309793177720867234635450759928835114835799634517742481826047796092418180400229212429109910190404865160343549539311743225011241122659477058269120172063319001339208064327193645937544354664691238244772277768784154193620827235489290797049412437530849404986025312759620844665191058999928450007699129887849720956458934110995086528425438620445354441649261389672189225509568400396398716624230869008802111299681112613952605237007213528590290442716485448482008286614380007668022238267308530571527859249600890997190357540974888164203854643528309238818158872549225955016031072011486340393301434534089232857517695453579226844353701102533638270329246493059729619304568433049694672180988551017611725421145351784858862990951864579090708929564775677393140143811531275889619803368206163144899705243844271496745681067569018517198902441283628760996593673039488696125588499266454495588396869750829167991706281284270804197842474258994995596016354341845223006736903115734515806447539682836552924727933368271548555033668680040825322485841201205415924655577762231439632726757029697854756355102203424262138971183368963731186507003079271389950473672336886466450027356906808690032103184298949757648135372530892859521755895506543543012529489551297261372794771901482722460846277397915922139270591331535266885988028052849188052335118674190739167038064565386893110841868057996072757075500228370489680609314390559467304765195224366504849570005223299978780242661498771773854187609139345549635983405141029057936342093643838831746473954334682013796846786769195415447719979542916170023383775184858506171107704562326677762450076566340288093640589552132003376946827373887978530687343427705263180420098199733488943213991821866207589857887495661805234202768903210896374099336728888613739780501923299695747146187822658050960877368275907479944979052086692052145223790330775616242763898607766953315667029441257492639578072122685147604117173534753499172359127574071819955077771926515056278945395038889807478479080174074577906632999655269303583168987935837115051557206182968821102146131064245891130531985715010085048438388877849298899300096384453240511926311497773973480725921012702138040363985087443420013676073999568230785435923488330182752313392914337796848332915206720113186231158603440703855646210674301786580769233247233961275451314720307860005329773982855139404186806504804722945994351580436049895103047038298208432479708798277157663575323567658108600651407408797237564258813261641423295013842525331256027621462352858693161887359670921218590121672783310937915341047895120710975721053380697996793833437930887232107562847660474636371127875888592129924310381022862762299837136050405120598572015050667283873432694860968763499247568706018874235189738156696043507508500416349478707142776377583975069849484043777457293912701484338361631775690972540976328876788427223628901352202527881678025707730365094621700117191671297493391494043212900087020557936047384523335850119653848129775649594499933143965078828644762605887784293989783580731476947147583762376629480627542113693067860722873096683556041291859540777526671913898464428935284420548679379208123700250855906343366363954171407383165375978533216558045555323986769721010159073382300913799563292582221736309127914516991030829873342542282651935352498157257261666887351505269709885298305149866680359703570795947030811071776774155107089956025072289832305555321694103529898362856591560951616049080992904726700461330716697298085968287584747093265991483558342464123117268980394658882923283267309710542607311241846663909435776100850601731282670490096735856873197426878349504741499236651387756158890429877632497506607067069685315352112697578591213650292169632841622088459287140152272483016811259923733591966526033988053445034078867516354297096927775624116454314539825958085191325975795803071324452678139787488185643408072063220830077120439916063914046988844650881655763956032827020012209003824634367489875325296007110122805021083667485965762502253973158620831063709836194575603787346576371711231002853737412149713092487687043801374745120622035505926434852478795391121620800397058112015659844878732383020209511488829182075441165239497661403445791344172160750228249081983443960796850015993968803615367808365381371348130908322430422983587705610452423720515447201669676811466866622891643794743781150480024142248450954987166497439059190900931771256727022721036724248511563578999171165498957724822715152117231002392562731004418671650083240603756376054906974257223990481397273862372736259927386392579105722967639513182898417346632788827392011962412137293965733314246379367914741456577900715758899739996371944269860032298358042812559553498100721488751500259926922315254551795972938351080958286606695439988942820469130124953037421678713477015890560332404734206432005119597621441678889173819464922283372149139050417992800603809392589006960194317489285965111122463151478332839194510506703475933384115279397819823337594397676676683238175210008888206622692058115756510616879921648387400384272654737545394872862474477554866259119191006277055486950038508579640608724266939456223329725941265522617147971314488409568403910942572395904782847833386785268537517370861392527600500324148908701955278194060266143198294432094992358048310325969705744135489330408823347525214021903016898311362171026799890435278964180999249736750617119989896657955552367227387375335183219040236942898859498485087344387291282392175954418899972325087417640231056252151355028012395792375837433763081463099108529160996947579358496246081260106345961849001566863244918325401444034276066491506489412276284788944043338481748785486464434275160639459845870964019353197596896461808954447771936719732780977014936628293032557820482987320266660878971196044501962877057691174099304269793571496562495689988232483364354055336800109820610173655801707558141609774066296339905203546528878325518735984809857674496513018668789865492994670548677843441744156340939765604300320046542878759611969682149071290494872528390451530137285278008935588125461949657705565391400965890252626284673710986909499367001847334859785858523806946476394409082255475404942521083796092837656948859206110088190160118227327701223273721223262328944365646455723804711805754520474818755143661675015223392568563577910263088146232246568210997524150129484956624798488402719723280900615208159730047269577259501343642017016220042401779047334257000692041671832971022303535503903417434894636196358477663292266641123454653728736548109668493061091696132343339118228362691334537133990366874375622399551545809330693202961848270274575953674976310013967822931487517917804878930596166831177778328596482346964631791365252228443586365628892539456480840599109690317661790599783598566735598853151493587526333769858662709238557693275186478505053738683749551773575483118313630145029722728736841645827442242220380316758519897413985767901668976502460050144457477193624229126732214766676651681530166761078610964668062202101012259654201576402269767670961791444934982093989646480263949776286603186332618725412330449717873944510838881920114403160773443036884383353338910145272989597791512898392352414228097706299097992286343457500016226728660927699695907106266561970861362909405220244224324323037580754020533133947387380712272718000747745695957573983852263445969981004774988778348124943832165733007449277846842997155168299491325840083391969413000099591232097579673097277960063483282873200644426427696557447015415893242709633920157679316044346495820472595150936343655245061707643565028792002441129520381584298311818024499133212929503764611677339286801266361672541932949858347057197502788518323527505522661574622349921865709634742158168202665034420894912126547240704442647016189875827576620878795617519333992314890603450927849299522844359281670072211239754429992665632321026106784139089713435134343435418541369751883792250514825942004979698611997873727560530319436009253049348633388926849810125072366167730907501958901347223285302268444448618336976873766101862335929423821542512095697128717837156151085082091088288065885498144917599157267803582476192798210203726905732564919514909172221694611545114350678130429096570113737977763337565065958296467136606569081787567518589048030322061263651466694182394265927117602519136706560396884594109790786613925325429797589280137595954481628354673139752471062762168798206004723452570884853208634582577640801135304257849332216009099209160179956015932751447293122059056177112924474788958880168355147721915861984615662268714798573856182093913021677660814426628471554185238550480634778451669189489365632715923123739985875278573443341310042958042247125550998090228913934244112147337431308832153427473043457852946920276098182734378140149398295205820999523343835414408839025822313278337233882207304024919678770536900189864850798898637590849712933956510461482597207899642176833585338167703305284823789256219388146907815405794737409659704542933110812610296559265219872114534891559266184963768307848579021121534369086112503783758391489800245971780460369897800826248963282852537592898235172138509379518155396362158383421608912119984518704335134980289391670161740865653721472921321676772948906316496879991304852847391547464057652097652799621273107375061661511619582401038720477295330993342752233309799331624317828923830862435581582872696377868593612471007665815664234878560283328665169487522460085623559458481614917053142569665211636885856347868919371364165305054702653917379676561508460638116223852130764894144703084460390190835509174514844581549190299458389147998129052440109794948776268213614009856468028784175544244819358041530015985734245281866855893564970426329984724901130046720834427234320322507742652584497533051908825182925625239735115964070969585827169461190986291408188537421317817051274717404866717258702182422786588259985982390405127027490495867914034087692126477390969577954502079704920675401413528177315316759390263798282309912952357706245939396164580380166639718953143386075870356326875844023879916609021410540533167795735323167885419571572083940823300300623784850403490740412029650994356090515250821397091748188206604826665238189864271920912921616761516871344923044127577643426615737366863968365959401246621174407265660717261199357068164628061464870217189069388002185905567587549082303598175424862970390339970376039015010036291790337157339766263658393225571063105542847874052854066013161488332458104242808551363494677291634736060993559163389958578530642963182539113913489375473527501993554005090695972617552373877176722285091913040194136275385643038228427727474614343701351885558495969157322033380753098421078478809586463732755604132202753082742316548455355016770014089891037103274660813922878603304581680052997468359885457994666107228382349271631945440558726383887007978774233075990483200511090893025254692133284862063929528574956555117454810944150094040932715368438626523162460345714595316808952126289908500940937632261366180087081961269228722418497821870300345812413915067375322668831729489944451899214090457718307564730223197384973823424419821159717678380039853390867318709781252932418210345086389452520515257767858341067128218845762866324101612987146385249068335511902354404934282747753121851058449251995188309702036571528319728658515094646931620181376175440317031412626220555106243888018451648992083450345768990841468230941427304572401702217039964894863156133934102874674958118209378435346571897088065423378275596747931128507630010014294505908248372241637624809193238078797405158256122430081729279069534387616894970233094090138506811230319246237588917356691922771983577390462738601283032665228209576949407527880202027273928963036087372166415958855791432270981350427721280909349144343212348822020201805246847508877393346354024901243832187274712003467421253182705872758296096437970513338791136458996384682771677703170846185833830048871472174886139781188623694423335719733485755378866514678878149668664272271459263659372550263299889066575864023625203578630539579554772209215543335951596333916695718588819903600547251963090775121038589943026765417382852037430859754774941200994058898344319661969524171649952951933676067801076066708365961150595926070428071429838834468222463346418794741292252690852008243860646547270999950918397582219920473909842117898385443006713018922740746578379471460642355506936265576400012717352401166995036575316724170084225286468591220071911153584361463729284922075005157831712295831376596409836974998453848287766789369619564899855368048486694167693303555952704158284437190677612219819999407495628084856051442863807488887830664200965323661505522643835280866118018780656416080928343083148405080835374810726594402223613476033322397438209628585074829786922331911937799080988021596000400244868642044239715333825374739096166112117042476616525934595298542265741928296724938524819583673095007916400091456987964719382740726370903857435058016795172536007832068588601693650914594293759356710550081587406186722536244217939865228460687505880829254077459029477310646618538662178115570092313253850797573377383707844979995929827951412366952393940655159652408932907010192922680868244026986858464420500420209071718868117011083036423349335932277299458181047556956294474462650921059064265569015829826784907698332036135315875847874036996591228123498627610549441876584438251929147204519743243951432232641088733977792266987127138444771542621823622751321976299947219404399650143597916061407476504047271445766759061383627924285970351087644626763960524211443430459598113161696009794252299893381969505616363892657639758425939562462904258442597515438583734147517034216003099138760953220440781086043570272581989782754982309394802671478378747277874458960983826500523622735662239122813088719488433064087252825124794466347233411915471145314211241544582823530337251466180868653238472189900541553671775973165047156477060167486554802644060787207143984487171849206982333136780570475557060560276028968313921148610323231984265789883376559517739568798369518238478507196169482752716080620259384113659845762491014758717611548533924902510151897311285657801379695148187063991996102580859594835668444158520615224556805231279003586713785307415454352531145355555393183705429090289428437679553008038789558772932884273495664698604721177210645903221702287399121558057050040019678925273451837775070001417500451477901187871764812901744594747426277095874212436353734291701102225407557411271899084081268913300730752912156261404508927704299584025750943157014377612995272591507079677171586403341901950515333651198471313656464026971425435055763883443921139537925032792980961930289113660734162988238626293005939088729563420409691379187250440472090583408921611641021692627090344977230207400079107841912650798259275740769928501904944873741471203771537070869308955232932956120464362634464763325120645261068968053127080077554955112798576140983670960836819198745150903158042378885624202144814625724033674213143591109291378554960343454748143387040001706443687872979355939107328388462542760282557351693060447238318862303106536854428709291673574361564840472059211238845594408442537159984890278898431683237554621264776003803646578419011749927717659939795997926824384308244892271629588055010402124194292661758058317866621087909316823487437299562970105741317947861349686566734243738971944214863332128709298443718908725323570883514707227446773130599711697970951167214638691673641726582654503838308605939344384978704468431349909416590202785813582148041325899133049099333696818835834813534856626137436324572795335909005714480571176452087465601411774181081320806398910440733921434431602808972022322023449946846516337590183997261438526177299102788033214264369946452947151475063017164097754707877206657661890595181553610441434004716749069757806415468542576284354543041756191822292399820007183764245890834931891330527615048874456923777506456533367722910572975380067173659127570049221063541948066830919125583430270001212351534591035369657852152725978937262558455619377007267379355999487869065995228641000551729555775655290163152118523060013403688051255672512050174027061035827911489911173340677138698457937306062877676830798182491170847433925571530417376102731221777413428223704328107341140202997755427759809352947891559619479647182653760459627475116238297918520648607187625615978911395359112416088589497494139215837094713341180978216647512113179266545084897814647031190733002360035100016498349065638137264058485992860519209867743341481714544176770456028849891786467688242480549795833351981876679207040317028426418411655170418528631147916322228587324958907073922534479743574840477353297379708205008775167383751323523069339465470739524594869020530538242790465500165060591699869591360103666468519025760849571238933666004703491324153002097143569673793918342049991741440269987516170352960753748570611599963976683218143865984771671183462493499893606242405796851316315628963934863031654952474310148142261638522092882365568010220928808757029914304429831316841982363142304908461210190834303023802681866395023856395360139187508955379603097538105776643978604593049175118584225377700434864957929095972143832742757712720404750369083397889008381018597750903669751037514777762331791521423774416001854014787951796866451982177373530831345736708210452220836824577252742964598954990922587200036377661967843842644639413134829229075112682709253751845926514685341384766941194138152537164325929750699748175371948103347433464566516603118735082812916799061843481394706567446878973619295512098756132956260959039129432759446703443329990487168910469904492049527532349289816685219039602155864059005635792798715021605707642918843269848693756813660318297375123195378026173875985810056028949015156525203608552444338553199521929708257563714619815513063506749454773470785619370955237128515854162929727197344261529345252949570685774969764117774150566843496334711197774235562263045454118163271066558491799920842707135145723166632730019957058005261904308427037339544977451505913140792206299249837704646146488586073569749823150629617554920773209530539719373872936566898686428783925610476595410364619400364733651958461246951971203393442237469680518178623304894509817544559265736990649912168568096620250692944933236417271744263635784715112679218616543956297318806741502440522866237458076405526143518109113488762809041006133532599239505165251658328253545041578636441410729671152544146984418654703278270936187075994641259527966147785768089592407682626009098709744112395553668462070600198833936297792843418530181310034685097599130138120135339962374829049626034255729185361383249284927586442477820588847813411152542273302225806975738377819541832607567500873536283691046188428548924043012415759923535270601527434435306585169395224869633336710059042910113614650459638368058948143114102675347982159616006955777362794497740207305892967105222397712987898779220346142314532328992292757716474186267558446801340762049483309028148800625453929641039108957093142152482370499728109556733151209766145806671700006689884782713847274274658405918265756446746044544712056464110011865156689516580377935609374728219622172929061201521185754215988870158845107691747549133580140617412121918583948423402517166330382585554315524215760639004205155518195551146211598146511112814716490225467545192490335259455451910218263705478263812553516870843865798853001421671996482742221547715313769285884750546714046089337619451316146906792099123612932302093979104127367201226484098092246122969494154545319060712496513401690059656458404293842386490625254083228079209086923037676659777505615233837597180601323361399455001711849107977832950214855608759722325952947652194231814212755575707649592604806466607221494539227553384553428933069736843261555524421858718912544223947326699235906659149798420626287750648395138134771828185401028841304231525706235506099132301497790606336430274514566998599662859543112813750719535491356428327018822213894053706120094897901111800958993079215424774314776829767709603385748612026594921889884720224393348304526591929349107003605190370715041937569029549409219333259713764720849038015855876090861513508596387291308750934437416033253569203391727550308416385855452149577739197069470055127897561022073314261191264929837159451346866944074445996099656467441254711573076185107829181156162391768567189687522523033368576315554829986066886102914346148218730923436418263513796925424518426826901624175494308785791491280331669274295341978214916695969528703037221494597773262895157404666819294292282165380554790132696252162401472286349869688985009197092505097624054225401332071542599600700517440073885439108014813162301829869755242880585775002871457757063842998658422627887036142246239169233171197523305762437000508670136500319171340072844642714908136455305646262924033131716398792136237916362829809912183435796494464083370142777693995804008613807602704655566305861653642596429977051004498488541259214902556601850009473774824152494217355744551712609327242702535485019389209778755085212751878313049324641324699748888304865089304264478883951118606407327305664168329438160337596004154377713723798433914261851868642053734195700604140654850596371687071366651323968913147335640596163047146363736375394041271136749304372199589598487247612601171001133209497009821502840840491194828032820453466002604666080964933342930068448266391974487717634847584434424558194260875311278199830372056509964217628691686012371036574953671996579870533613906765015440020948851758942163350435882698478399588805328856488772011434625133906534938003065584066032766875647383966114394854414779453226110820779732914305098023213394902331965750004959824067684058366152621926633220372062492443905915296808854697022147237256549586444528157669617505528838828565594695895215718642457624952043457347606553408046647097824445235610509131438081709080023403394668880721773489010520010426365506241757713484884090109804309346336467166443969553391156363148615823791902326026477063760906262065497842374085366663579264025826783062449183778111664493798164786152105989714236711205734358129658319542304207330654138280735662557378548830536962516526125606487660190553025077248061576186140125267346441004289146152390010365127182191175511984492740635403928945615549937306313358535031908532768394956339566318429573608125376583732113914311616078922509356201372614302957221297773299394932896042890725804387103283687613863870778212498219541396422866703075059335889736774001239683685909925343763221717793459668373064791936744013429852603141775247463351401182190238215766951954982129602602646062821585384542379214258586879865445045708077804596406199439666631535192279830608769211937012649393427920738341495872078055520495985531892823465465359910882617577560078945309770848955303702003502210294065179708881338533758058666819794298096600588801768552179103955553520683757784317750696949090032998900404425068530453371964062746930308199205254718348750510443291296824088553818662418617779024080495347579827620589128049230490284162745189228298545166373763390936437828024509638414594860597846160807935436217541307009826307146911551986987834295860898276665893389685182768087658790985093438071090818497818667029311349215745402994070745709335216064058301229952386082413093719700673618804772222789673674676191768246705345617297642399573536807440607914772720235607424053917284389601668744498821159093003044898162398123990363896667721427857088048522365079247929850821443438963197007073629353011139523829538334803971489034607216556258306039350061028002660111316843693174223280440319530423208392127540298880592798562401994923818024383344001513467699119098912609546542686396885896965518176991616767746226285524621830705358196362391984557262332647521383203535032943589768142103558307506626103391017289426539782449136848962522198798944852933877240287097626401937025821583820798416102476394069715985218095555048138207009174016369325490031743252470496645727985914669466552032116212861366388688119147755463209465073263791197629985825173597965021776904271027584255919840502059283836150071714405287777786169258532297185036979720245707995753950046160604687224590914601914510110586012812721446587150628259679319315025537448991306234718687114535403811566140918951213417959915757865144629845849876272108425652328059405666156692093457669832493580686939248010773379976913552085856655029626364376997414039764951091296708311406664481684690831029216012402227219541030088195355122926154858659617009201218265645435725145304728296921117110399053515154810421552022346681934395549268405274242245290045693220329417813107304134131152057480571737613657663793948412711988457699820456798250409970187400484904567687553646218213699126670142172962936919624857621980438633906983647925807771965975183814680196609510176853860059242279386973823570102667528580697968199705009750889102192311309304586768046747875146415481109196768164376986338450860108311509467086413371833944156196647911145045001104792009573968300860691005124980015949912804564384408647052679473919220262190970622234015753520338023291209766051763766419445163377251515313601107936775700097658283242248948030718793688998806297397729855245746160243946894561992265922703468936501199678119589451427650615562844478782353238569390245696201929668271884059107561563148663952288496735775797521906830550411992458268030116411414718718540675250157094656051042881178026248768138826895407633756240214526267568859454028177541144089110623497589833972609982427558440673363368247445516176154181220929263966387843798026699882375851038842459951873518065619470999353445400537430395401168499571161251842906868524920224457548288083418545575297140268254712513312136497094690421420606729741166833781842862797709204410340889061775871146018073634171451326884465421676238679996955757207099308414016503275010945250940521266305696038299209634041729343038954799511979231124930702032931655021208008552545876008613875810560872044710136137179740837936204848899537692159949295076936332938478673659047897935446314324330754671089167246348087329797350893341114628163122415279753032545304795262482392435789159007771770394496759069019581192725058079975129561401164934475703167307861007613628694471012687199069281910026844052480511202731225582998019232020753500358874211864457244104336661293146845527952506761929512545733021412166773431093224689993912283498940347649350789151544994346476222507161918807549212611017775538876461824056011596977494782514134761224466387293997504641075551860506651000654799536082332688911065335071887815869624587066944549084785259963879708153744584671768174016678224000250121827747184115583126770602057085202790008060646867059198311124657450045713430015588727633395303528840485405136595241774543767439822769186030644835525961982916632569893183390331966550228452204639728664576752281534529395689228245653417778248392409392956978508449822005642819841962448913732108613882025149960345124217662375877757553440858962862247535447213592417355437643440225586932645834366667665985437527131511736781532431995159066838839048980523284842011829522523094403575145346297940096143168399665434876019483891677474632192696127235140510163410003505101379888515544384938906543476589794652955254483058934198105400914108717484921205025765589903704204245517918390967813889979572553242802351677936408540104145215524172375736822233932803658027819143678704208984485922239045629376771774215311266379679802053911805309704553475585827818725042894521867767285329918992747965866781363099386511066075534626495392516475994936682423343877061271878221771038876148967815822380002756453403876111386304423540826739919692147226671772844368818936939944587123795996475870465550584332487303679428096675188037746076941914703425481139252032675726953645166070332652271415326878711358841301402688248117589040021456648366408229492546699269851249531877800421850683322979336124831659694485800683875161950650521258212944067690907536969883509754925828082345739859793124802933099033870746072442000404557849345017245996521000698537078052198600219071802620133691639955538329209790017169179440028023852058576302071091333645116916224626016322953203956562348817018841671174959815207919373999305261716335276023876176060467946075445156274230526788970907244813074619032283699992407964582495530524955090749040806472542826005687565189911857304765749996038937903455915511380240677070268749881045145663396643675292431647141412798572024950427130055101017910209359911544428415275277054664471182975808403792589532592484134729180086685621808527660884440126398985248538225151847307776009138858508665330970688928664157827936899017735238540382891231176372631280316214267577967473805473292256024615386249395528267264712375343230338048448270015343316613350822899956271865601577320479694958329993450105211722893535897583069443942163181205182021815781599093906266694131597985344340191712223901486497320429621101542851919358375360202487036979139093035721408836232669412379733706467255403262980305953100919799330730706919834970194332740443798104850670613629971111949655135682457120173119110015795278695361017275348006505930800235913505833769985246027069324810291642706182246011777772011485173470969620790762789844635648497077776712440353127440590852567865471261393125620420004207091108596922686859439617938483763557577132944251675553337012633361702522440936931407395466518800768568060688116299222835534464225633821945347917252454874443415078820342980063154000876700366506547798832488094091656546790264945622794432523971783078979261946755117078259004514840791730702494806166477756196590643110800745980780349720315235447106343002677306589859861462248021223335895613539886562513034336790922651268096464188557822468502924325948066654653154865367411536268834176086307598564124148170742973838954146494704217551099752251413678999475925386730038044047968388626336920075897442352057382282661227935302366327480702870986420724739318321998361661489526288017563097406570388662141414988035307641925247494558898934776038666594062436864452234396541409368113384182567917197047585940808144374376611737236843750316575416538603104574338820303167240051613153565616863645924687388141612024300801093872532556824496092987290832949407510861267310665187103071481190295638805286382733936850273905825293382111054253701939982538334398287153044344524489928953571329808610140081598573582649221931392772575109659639503441163791598057813781778531952155625708737961043784342610281475543919310110023727759488856320049913621955506657491136461029787950302954206596538331679786371731735656550226634790183443073259797528665050423947452007893009280171990110197201077179027060423324988614934661537020329973526330637596993900330663966909688978478217418676111190601653051253745812526254702075155499177899465657910770171352391251317791027485108443618052396125830809415006635450247574976439488329358191965195333102435958027331722261643685301347532961522090603537316925581337678914837855100822549507661018916167361328099274072301068165327404893386579550073499763039737977927597892059492101415950243938990573099703677824769828838979395535637483987369896067875531575421006444232542444430840772834571112273410746027719322744444202644250530529440713881907205240829471368340871154724168129841993617186217842865375063842297337872719945601153464156772885392959820330037189996516805785975030903457386078759678498504546657312972218356269573345607186031863576641652784540222840305762917417509628486148095456520758396907199095569980813521472689981481574381325321422014060508665587221905927044934301430628214912294114699468485067946051237058503464569601121683171517281081089417493153315000764311778166001484467033313627111575542140472770848251250579521161975414572673185408341894576817264582850927852435634234572965713058308510331224816182046893223034593076807127686375672952865895371400704972019943550461362789201022999790976091870584540198089180056372407264157554302600803953915196764655694856502642194329228753034314881576184997241097767024274997365458448685108349393876176114723703474312530800582269329682163330055320639607219603060737477250999029185394322476077716609118984795460830605581818930046730956422389583766269734597357370789721387319129742121254384148621383222111673272797248510556675039989331746477339808159918385066869905290710540054114878293607589865442219098608435591833893647582270801566903597479753723398018775194631562722332835541626787255765918442666145102154011855283105525003358324467819174085565860639942168466759930423263085987596527364271219649974033915118271010592457352166286590591897743306266043834588962034575932331006611089724120521475816052593253097619199023436465225769870974687988149974029858637605802364176059309046811069992095600624694675876631294645056658534434727924199889843233652864548759213453576198351901809746132526907571384190562576471121320688403138680250097457536741605386338625722742652434458803466865485858022035552587659063786986102892806732150645528347976118777494300777357980934623351664067382361557990698609767753963090643220617474516217116233008648432331838270835155649798017480941047398558209415780513283347241197236146326250238337536300008471394361440448512490956650702422648333631091153473555915324779995180939541330542551914053727003338249168134307925025565190243993013299604702568320182850469757783234187977940876114590716783710898465668771173585651921720619005647249832779348500921158372178611818475380743597054401343525118720554180176064369859249666023035798113088130766681698757494007291894702598646026215725265511840370928441232227233213043943236200369794700368524366440580507565860076222519692266387977425342816716057133381133796995130763289463940059946446165756080521072044059059029360308615819474334412774390738562666074648547705408217097253340086971645319005902246716445078376749142371429361088404696123589126875500665870574807717831698964630489906657370272600525892507812584468752733759875553790522015439289805925451555236053277733351021652083051159764426860475963280579409076021298591384639677095800661371566953785440122331339951318852954379817857826590631021967820108228837795044074362863825520274019291938701286534701465073650214151801257351942208250519734683891558328500159881153435069691473770717851614039269813389207176280170492536560592121414126037218498122308854448277783816066429149183768428778069946878400456280398741564582192951441121818068041251189048240994700886212099272508642175139592201621817788082522220564843586500265994039781060284580564649102762932617051044176479034868503282525993374501887482767341903547569954817577965766424303474062168327618213520844312680866671898209464051026861007952685968341085120437035010845360260171422191915062681473655167996770207774200912452864412899036253070279626723943843023193341665200296841168545445818481756617958705625028501047527165850492490849630257439326639316052882822218743411756876580999198422495550740596536655480072817937228615903701692100269469651137891701466834433201401308798191174698048704646416019587000764260571382300855666914958668463808195308114621855666990062168375457398658643682897540452445335277052064065284570189733870852510342249775853446889473443742726416071790439736169485203199274563292169512699416466067383420893310285547665011406520617583119164073877585006770686787172627657649462072594178738995720732664023703083827612697980710442146303032586706601843080681215753875834076484292171785210966235126657258833295841760011949546766603890861563673916701004261986482680840811214028901133404738700972685812758543402282608777270047722996644298316304221623724368441304709823687047057869510659857592116315697008741232477265059701834018505043609105072908071654490503934611456407905768576369353436830612019499765336182185837353833691543560542432740408100063998414872550302380804687934061435904417599740784124050659068853619040279160206463250085119942245109459808318961453455740101079932518965707604010012947510771347155460672427525747485123920265810366571056399775976747271166937036009590047617061314419691961520614979038666000169728867933124333302795006233496436127884661996998274528744731712543749491868511510989860615936020010321401461909682771656516267471819979349257757919359296226046857250759453866956616032091857628752799474218572250476112742905512797591526412908905487429102617790320051681763392780692891124194887126247573686808315528564692191175861651391723426573511651602668942854147203696293554683960633776925467051387924168975875209363846408244091362374586704413939768266183593342340072299093743406246474096437480191933052914406385916574049399618516971890203181004723132065475888872112260572751909807354059774154360139579249029204781128022125466009203859788995757716830128622379153516544098398531030583401207731936681966686489816063304320261971190465028119942754845936364285606842463778872182271003962440987592556678478832054324649402923991408215066786557197519630141793124929940912255333841343070939612855031004338885332872330800231592812841641162776647820001554491698717633773333453861862310259676981860618258077356541894422722414457123530364450863317280633964832908199844002216126893242013640961531263170609080693215347305595454796014027017222862596272396004694096725723094969847491155985575619472374187425863519449442455256791622792580167196288364657965941928769438325322396564749941743754239123699187153865357588665182185524041388693320941807273966916196005546313526736250804641940196646548373583535876682770817380798619914114133129434525677755184835238202844150944613516128764248787730277653836750882033480956360154374964211635590356406834589711260472303675298634028569120940863501129056113893267885197675622065400209151249401549647591773340067794720616611130323013033795892879169877525680597043376325058326341490843925908622151382782109684889048290729780551310714666917486394962406557554534176717606209446334723482636681845435506840628092975376088592493899713813384199410655140563482469218453436614146142781159005705696681630376319159053588188359555417101400073716636281661829745643398384853973444295208643103628073934929215376625749887682203182381067642206726837210883224619888967340337931651559157115961106634960929745141726219952277240056326107491814557547833934895477496647056658360625933068881479506353648352129162221385727826723696334535772432699296759576032673123641914006027066246914644963301377157939819046479846368265307712110610171050647432899508342135095042825614023635884493943472433738309095801406569105444154376104701334701869248892680113048204284178002003355331053482966942567915471982990303693810504971921437201198590438655204761229023340509879233650666458354314812220427368302794420517051202504050107314919109267270645961783404404472009204267515890444086814818818496455225064139828703743879984813369138971400737136989894863968241963265477085289787420403193962762215995039116088183719442865059269109492041725231600291041409366805109721316894314118292323127510637960111073506642709110231905291736978035866110225078742774811256188680069908547867722596556945292853970500335037694305734737866010829487620308968967835763322446929290256386751332135223759489536558042858124703318722348530448385538509220175944047337565311577072607399791826978562246887829562447138787860892613329482703678649478034846483234112841692428209628038238414731571484258777351701560580935304450840547117269788675259101526705694832179653459195644175312399621102343214412141632977703521380510391395898686308543092513576023986076806928572760443119055859884140427751462943365714536429446583089380985222887103299798288972253262433515787575339381912407312522208678736829350548874707833143936975123140146499419155014423468990734413100227444596273127765195537809301543740881949219544001789853306915577800396335295733003018728400729826503379765784333742547588963331084970321747065894637379105409948751068023883398716216682800542841809020875083795172413655701113601626161736953671648334149984041380150207423157355849581930003421645989458121414218696222792869630412286243752280952859540712347173561626516861026738553491783535116017376270614506058567333147470311474122724764531666434816155377944477185576964805703424570754843443041379691812238536796365662277722574110939642809491398535691672295337094881058416850959407243554141818198505776569027018019269374756282539656785272391380796252400451361509749497671981437230159164192892268845664462241404596261971108274670560573328300742301403150064913440026791546107478223843165728190691240619727194500477900903007213711601387057989723842760953442674498539975536405588661816585980760574063304300306937344275560349614092144907990567796123355170429175920461848846515782875914906346519327029763199858260328418854823817891925188881456682737511816265049912617419198037880721557009315352864348880024219444241765865211064863626306929091017107099918884784316639560529454600745392503308991209396322330171672481012772664090804286687165516466011995565141234777584375088892578090598719959385174531033373861404169194826649592401653011588661406108818695755588401849630096280353905952929475204682991936064601108123403818730873463317758525565975135801476323716098284518422905504544678624848553716640757608730568379777373731846752110159113294933714020696265840721477384765899623118036439000081688869408337942034790850403574875212099485361391222677910278980237827503272575285660579382814346448518634856906201809396625934801238242095280484007482119325780226153656704057445281868967256556072918415129256093377184578484290534965338978043749186686715567460049419221186109054181886977606145691946497308143225300361908741112796155669353501482209752610302165374328430450633691871453797975353329074584357047768753103715622563383889102447743133439638820190862476680349457716776119895609738027306989099831087037038124486192975988610541424846454512546074983786049487213453654002588286812821848939078905631478103535535821394111417390990211853831764485644019957823691530313871372078546833094794453828298318694317155126830123710386831146976016553845238292643291815128560553644606752968560219386698672011636518329748191965789516754264708648805118651234731268192198232924331028794362812488661219306965178920029120413896716117913193696039470483946245858287557407761235137902098280368375475844253384774038226438950809648031510648594846181928634824606196874526563822552109115632062289223835643609917065929668811107222731926568639701892132727441658100607438095054713172214619956148329960597978430711851819738388736942460682820596809932340080129624180225799536953883723470866563019886218048124893408530173701808244987356392713062145158961802344262675691455689536625164512798134274812731271685780537173404638987806384553305971834034426067369242402074324783960810264841243910773698458934121856183011861041914746644519412793410960542394230270635173352922418213378193956572973174454122918909722129247134578835502660135234786333467864824365208574088326307739974534692027741352501213951027247607193972607898877177377221792377565835689256108574544144226677761483980781451330274751121111220003595839951175914048648120428830522567977716879673626614330129650460239273583155515139636238778510249834628816891064817944094529590774856087784350081440086110501583888400295410968716772374039814842741016249367590719380966100088994287175828504116061481268615799998998574326698209788206335937530134162518667232903454242885569507148886814103052596622002537223969761401941662903342331934242788661731534616027176236135426943407187773133218966493421007871926749394411711295940708080676832956730211947796691413712439225842073890555507998387916908635515145210006947562565623086888288175817537856464164578964338319930558684840492905229387542849704900314093641454389113430800183548526640372664272636175384609506107413035366835008098176655885376865152297631747713363246803248467692903325400601859188874551569396057164125437495129286207713382455717442364726308196686487680319491677249605116365583185540280560218765113461162419338107037682701362828597952507641904362428153459072998729244853372237366897082420733473133891051162080819518796074931774118933389537820214513376408298795467452938406420063773404615829829774429934909474214594734192734212912336212934444799762815725868074562249865390473508037535892531651475777700384966432570269593907398195494434879621807162023272853393998107280595637759663280543130861553706579360273447889380342617917519531055494854842643057827119348124167506474702128986448393520268534811399210889915055843927624826305970960768793527638355959730740790969177752842120828827440044663752360655861495427393473630620642313002919388494304646242933248580837568510216139620299598522181326445178126021600496982939805432324385044561826626917637376086321961223076217298890245369752024013056173182992648110595089038649961039317941294829972191624776873620339815349002835574349843237223103668166116802806072028613451433067214781572217649577711408002633310176707160752664695376290385583535794636056080076325984606871143073439108011967897779518123929742925536684600258566702344638638859831177677828895300356936360660811657079348396127867557903533702142633374534351884064690320159727539693665098301748850591616008774459806282140213903430603393720859125681793848840431892049646423048457724833655908975822014639653050549191191340271450537522510669699572638012113089039491003218224006482918544008722988375214825539447589786460333537442026064109959495901447492704784377286073001228391779373513463625168157081866339518213845709632329069930128374379255627133886542082591125541790928656180697965868799065966647784985995830633294774590987019858338740429687503569004064612411563548105282759939236292976071418038701730205249881836178062408455003459875888266853703042734063842970112472876473370578255886946165663728572529872559229271072146587288225406399525303492429057834498440882525246739888025233574701024620634608261901070736662747242440233531415196507387151596418861105816024220480585326326110629640125770338390740998318595723380335314024696885948481951466425421533288180894542193176993096480918924366684362844712367253127583010820540292465923368365979836165843196748655881168070287378987383247485003803486823613558106349294180103512193021051681777411649255291425901786848780416439449370852365450383034742359486524537134242042047090278753297396149023302990215795546575036105759580729833519980526749760037402561234809454343680026591751226589227314306400727073111875472847714917012483367537657942293870700671230135295276777779724304137577306687127934571166801284740254238246256895407389343570721415972528232646875366296768660190099641895010191369193006475258577842605045550380824057138810792516764234947320108398224701243368011695866661964351013824709880358418185890420849191967510065012210070513079160203498861200000368816666743698674427889383892550741495293079863300856427487307654545410941049151219058254943359797096894348646668105284534385805993763606434224092680264628201023280640802270970340214520001966534022824779243069658013129005981093795453351158098663840774935336033338561750631738394243743222311143100437463756522561663507241791371648528406125824861556177475020031872872261671195020141286969910489878279465993955147053242142542509261598876005256170238943143021631457521050482028624293583674800009399253769722708611061337104983871402901155155540889786730006073041942230202368909725863951923832894236778110397660489393249119935831416050576767983415548856029625274278715714923806825727774136400381122175863148916113521497900896471181612413969953869254070121660259318582503697857066261110194852848480509368699037974610573297623864253034013694513675400547903614728208068600121001935242097737186436675443488572738968223394258894343960149771214976139245196218808131438438208507694485339376888898321468170438607822835790467584081051531550684990490238080285160985640066998728557998810051049362395001736344023056162451461641139525973897523402855176178804679717396095722481745404800383868906353909075221040564735310969113208497965751274209114305433065195192497584907220109088406332356221227434050746706643125621681938138265755449756404408284920797696764846891649834812285759187122315849814658407144677931668870435719486477855949912939298877370693799797921055205335529350736401030691207697521639020048460362656354058062069967610802125316227530766516344719577488936252235709182140042432671614434115675511382444320812061389680204310294260334986004117076860634986079898551869258770170823160740956303586501484805137215306714284472773085723433961339902110529394418792274668892947622155337311615326246891701253627519815089091127988607648713142469698484047020657617357420716695419327728218903173829906992522794179942950514616747990008962309539780493997619205747426159186450437804498802470481396368711427669806544052244803231567949750094868808856693913292102849307070032756909174742033705757272446823235831302795190583468843859682783800909359648430898630822735641222787363032615146250904796461463850080838935621873580673512725982210067809636773586523711446367841371271700756772862238759471904289265673037320696290292636187026009228317439904124257434292441946050941500421672962594156528259940065432713889130786599699966362993527162139999440264707002507608021879824803321050375883966255309854467925790416509861321606282417076225160629001869616490837612185604203586298585738383662041002885327973833975780815727482747114183886032569908439358704454440151784016396377920520993208697478907951050112863466072697652731215122354160604746437097427589670158456306227799622388066659249216682045403412711649286982649327650473896036244847767463251215835708138667260018388944518749104249751213351463947135836351001253696139450998506267855174307402005594391926352767336561262594935683231708958938654922575326523629361672034955196732159699589479375183794246911875184858303539509532365219969859304953207271846443144589666359820338621965524524638223817373336289255772227171589929284941668994676073138858334089401254824469305302824465955103193980249218023686284502595521743466743941931907175335446719200507897393265631500364121860666010421511084632146180067847711749900825587454583325446382625199476262974737604120738906954563915166770239176437091326627765596574783875294798188870586210028457152222596294373337343842224196036112075934761069449824501937391871892609078743586282767170940808797314020175256740773146525239071292580878767582504191550310166203505708546490513971216634417254113996279314748064783275652891727779914251742939291570607995780992240453106819937444319378951851899720076860291805756713036206426754884426801338710378031711960317161180273001621405458583554195899398645479346261118266105790387039251523973675427973676789823381893663393346866937054372272644406025385344634236524945050079012046103236998336854937574593380252678485495391747481095833439045786705507584573407064900522710355983590814485534476215926345221505596034716236294179283974204633144173911733093688086096810840440038093994927560030690611419552914826902203613833755587397752722786646359265572172962307355900600305783708524024321040409556550974083921989428535658786364269033503521538331184485022162145975080917178433785630235311785142425104776352257955372570866958997608668890839201633878785767041926110776188079122151285220590496848438866332041713512923301538343514653969822897720502503985872022726582140634573322498825664642172665730599184515151981052221635250932943968096691100116532799169003031742264885997773963427319441135593049984806846845123565068098905713841690826781592940368176375487660343690650642749906297071462213212486237919651502805015842531822363774309991222603783110155927950415192766298301529654992879346119684198177829227474275633772249947868808047954629262641489135198836743637005226268414741382862344500265258712310088593925408201657025171862254297228098333447367663370625921812609538539655459768022952915422881141282393448106069352940548529195725224953666102718291575278001396492974132308161122725283241197870419769317982250751939208611339309310195282384923140032862910129024875916254382863414008496657527140005897908136415460050430795709899926185103947566918417409649927330590573440710976797453368195750866998347972208197689150749375347534962315962279446315885394971096674974732578540352982253828186986868386630591980342086489875564923578796725447163409463722324524868749514251332406856665740862060995024414617207305450384641245420428756580489579021732648598830394934326614255588873662013603946784484565471079807881113794136517280385458551130092517020232558071772617883537566100300524970424451665829049235167834697018651547005287325104776451690102251291949881741841975809094891275805027660102099608999971183603070114070298147700667744396085419510134577430965879930845239334337520038220172667444582120814021299638030882903352213565093467739898427645713534086276525279245765694078746847572351690494688296448587016024225320583100887892288119902795525059319142651231530364986938510641694137160514738394627306431328113157108434645933222586557944854348935958033125144655186920004121835892123675809489589033423670607631452415474775589887304217181028915170687334942785516778103081941477654247035825981809654641322106964403447167954749733107228869252188753041091104562410298164840789889817360152954892201628523021362173464604408004851475460700689359901513535298140995247334361782860770191724494027134844540015353970416905242213744692023564080599922853794199485920762451943891265386003399319628599520404076949077028695568294875253180024863434206076046035311929733244615267755170803342255764294212716260816975248730837651235096703181283231355439354577579458169769346592052876123282582196504098505437826596403074740108268345879074513106556427181190223251269224607786817013349683700907286424173884131165782907707929297093911650768131202931956297271065730684393450045654790336538648745507425034677337795777951199538886929547605077908683237999508098730651890933715633641713098621374611189465075963616194394079732766932789361794719177613942014644461210899324235754534342306645999604590718600120219731050024952428504186685600707570416813867169998064122744684398257007360389210280300668678324720944768018389517607178470249108743207232532401091720920440060027171661087419902758550743070363395109217544971546105382181801372522631277894473963843514440879302050265586942747505051452968357786635657228129552656197935131608718442422867315390249428139855213357966608730376295321968318122515151045023777124998977159719937052849179403054027069787821418331718650129154411311445517159367769952210317288443940054166471514889172998067299987284141223973300919598033546814880421312690725105886869505049929806316499146909233539275095536002808487074864973139566082530784107400230674631140476680500768633850631553857824371476599445753736071151106615571986003632748110912579442754225863972710970706033822344624696575248482914825239648421674941062067673102558888910278337544498584467471429182487722226815143559154863481939661736394946040752739661084798304574336669908117455188075502846350932269570898362767291658868437211214815621202426550038102138974283416485711740723491455763533260824267539429785818513873963759289412930808231336721677662040998594712130952110184861863192995090184975996895646740838109645513956312217659753765907648386975087179538376712551268375571288604916476292588047246277574722526491588980744976261974782920385459795441277971625740864025453915669239997980547388514285656484007996010990718654014924804550263058708853264340671091627088626613921190765732634674742331584684428400058171841363505793337815844913529487233778211543354973600891500242385873543932950308583146404916835086492212588012047495688746143813699797008006652650791024226909518911033155442868565891416713035308863715170974502910759286350013868312564307107017399412064995574840738255321830572043871922722520011171497918891536569849980464921892988637673618257461153576527834644750392259413665661902898166887610468279581110583659830618057021775458911594871015498475657987821528229136249638663728508116488708326832126319539653515004051493329328543995335110306346822254487846193494911976421638477156531597593874171240744950544848461534946742011241742441701453327364035820655506275438050788528292120522039573948065840794671531389075565245330290966984175476832827832808276241216939146480367540822459332312230007310634528552511711057067573718786297031204391234798126848245359335029335232450215081297978986927840928714816202538422773514686778116282639895405757822616639655663916246019305274701074264043425195858808896018857795198904032892851575278822783466823554121849501759026945170211028929043302136008781362287441493920335039363707900612698282076559233621973319739285950592332370364498132603108287321087859791319296360796266741462287375807803306119924314079945744735374930436501019145460834020115166039019828074368144237132123885545578376573732190586923793978193613851364474826912542212056911714096930652533540364428241606536090423242935710641044218061057934687929724129648005658448300012679954864942215221891693264965745505767531014707134049700511314109265922951052248653507615805668176340046340598531049956923795280897112047206534217630582071437791340007403078620052675978847125926411322940604190116214022893140954577637835170794431740060954325659856542844561432877666586249526005865096678260954642875804192003237059062518847487274908892252101158582976286762852270458151467707799570345379298074697417037113336916947461775502803542388557814187827176598251083037790571903483004716121737206999341292415512204101610681095628074529676181154990488600551998555613795385514829811503089424467809012547248467098613542289135849522730250842134133562913874551881978966671818644181264932854285596167009940952445117026773462807151099362167929234068463109190404100676366543450746663499501612893904319844642007157717546001322356272785515479347548322250171376238599641197164099895297094938234400274459873331824962528820656488052471959385637974386606044510036954730380437242079262569426213503183016443537675209260596324233469453416118954759705011967044891878675917056652068601748110465257598614242770517714396146478819675728929880629128068988861542477209275301902742376145473152736424251186137325294926396099873639399835764295958571588508075263758508540245051135662785665726866983294614297153368071462259182608719458009451306147576011021322413859244285667561066495928723117208859498933596924522685731401793702346508590379980377988295502115973813058900537504123548541071621630435502797515621654894871495375548063084405994037399129794512249796646109149303722737068382573666353655329331476261605781028301406629820094728343450268698771548526159881449079286597384960392601304577555044138866299283645605208518325218644052693459514889598829589985861179232884088906800237944511426045770698441192300800080262207068068176736919651095670523410004491392615399071530437119597930217004340888475159470884195052459152663453390371933856180054774955384734546474037125349850968941106352548539080344867170692641065455221210651736992951081654412917112209002876742245836078739004019973735131680482406128203110133800459711293077023169537864709320552476776647679802759333556830199371097158217542519328367447382841435433286156744579418561277491625097624563544309326510715580934910114680109616747618537198833268519416822588270677642748780086795127345407855717156416560994401996000557438423681926795496069804656945958110450536208308186213653362322844993850851476588688841310198202091198549796393426906063657117120831830250935770664184386882716841945540472377754415301937105171005247889220966543194010173370128630532812159704941710160560169422999469493498170131877239667637317871634808569260492938119098089185564150366041043181238401820701704462173207215412547833763685129251265389435964010704003975004335599760554427008640446858412298930926954010571649748119003845061642673314526346145279074342168265406655838405717128830729172428239017917643603045547443059493289642763855814141110160131891916615726086928250353342467676895111189695106727983035435694090693824937567006501703424907242287031699241690620265814895438938111830269515356268911552997042381715187313911776278374160918847819268560529306975417693289373818070227301843464679521227747005886575580386561609142567040685712070030816287191598596109379806516306405870122848014807844527128217175977549528020600079107141058269723150514970351414073657519542022104793062374619133228429687606661585681594302265117173216077554109747077035743021600965362500936151155891499422246981301693613597153636117127083660117511145427209595327859668288612771252211450560081967609092081176506189245988614521053732064886697947713523207090070960970885429352748888138193827768047544408266578929382442297453008644820372911613710875276490910989569512607555249579616719613169524882596617937455639607151872987598258286103613810351392075404749474136448733910429910074649467860241060854694209072416876255463285259604434896093651399949478537215232783809203734968113648117593497686031992107782810808557631325041569411341519696179646113149808327473895468488749192767621261930490232611774373227443083750589459343733614355590334396816336644090001284905954698656115069302613890612903387078268968031364668943897828056750824293025974255390398377721176012077613418281621618652505049774356225915240652825624790151453214196891309243384450676266987896025827075768448525738448052197558401499254608800540929847962199923934668938098071456908527041927565558003373219724017989858275195452635918670672833212401063110782007209634880857042553254705758644081712610414477881252592227277107352014898408083194597545288423598073398092509198996233448738425700280872430792327699325852023180811459008121556277255691208920130807982896446214762668064500080251485137603646721158398858313268876937374347711176418561703185496816195835227424134017660638727299346848018324204471117641465428891432942465320582017006038444875016981918441340910776913425801099404208220411175265936402107493181964610315667521024325754330787808129395389587773813626878783842179118048452495685013000245653276326886308068238789197323859118255379445703295347725345620752775412215178601939380919805945512284647034519432424751578474784127281365258372484963543211988487546637484516989303266130344228706226218466550510491730810466153341130965683864540894144439779033905889363739244061474880657106295387128309874995573721332120821924878345745324221239293741487155368543517325880014129243815405494408994014418786750109720644024418546187107781733763307628891294516487468649917779617975588831372491382664854032360144335879151179169948196019548810873283073341228181301587290787992242170565302208749157488977974013667607166360839697844364809842038633917969423496648835450350252105745789181223162222064029868422240875354510504190864036395389462745293146413843838421586532532321613717793200229169435535596867655330265508494767867817396402610026687166213598183193128240494060994641565674182261351007151807666859769495382871251339062184483530232282103987425231577748725757770091539653839722667125554830609573631310839859634631302050628451356326464342028161250083826305803468594303108124272015780567710454467231922825087465542999045806819692216747211850524426393803685262687769494128854432797446783859756618048336904293791835391526391863437115872172107118141485089083538572258642777913755529804008161705406413773556751922011918800453587430730625106217592665281773441193098284162675723545209422326888765392345782417750731722386688418246702550531423486351682130807185041891130680168670551795360622678750794188730614576223347688339797197109611732214288593790283261865842731793947487852483382500319076427301541485130964577145948245013554497040385362253566989327969722283167237803846443570029281090106524243956316236007178927758042600870921464531445688458227231036415899030133289483071438607554013491425660162871770169410152002092128660752771863861194558799588870020202468764383759679118536885709412399559444768358765685477686819526312073433556965180430880777998506578780737065927513422176872892360334247143977232595560986180606204762399128572810132322888983734656506594627323977514269861054825216552934468693681367325461949038800844950216178839676265820411505225402097085196539710994477800289553245688983954623953345615881406865685698393227910863695094480422207452564190031908582659363997288877147037620000413797927688449633283057130314418692974627396720462290382604938435691981795499324705520774274788015871653762967879095274711417868944140885598122414982333497048652824310114286949140949035829903570144709848653868500881364135501311933949701290727766454216792593620687963367295030156787540604498200934861491994258593442243592804350227588468166624547248496784074891452707034456719561453786942745421190113095285577360351883265502748113267545758510158313990221099232557951791321622714617468509158924197326045102924176336463290856385383463811808023556614294011122342626260022253666832551291692282481687726693670190894174680822965634843426950497213691802817381693884615482364453575740256798623547821707602213023879327781533851645732080947245076927029420954106278829442182623140271270313964288944654273152539594250509105775151380206810363366089653291549150073366239301645748195832841374044800213031549743456980260321092066590039849871583049831114312442431088638776092423562132846722335688968752250140533734470759839937539361852396138082181938686358421920020140978024929718527599082665270862071486211604297008524223446649296120054268234059931408177891943519399931747215729841112928572548120865680906593702717277451130664450989397550767775182006531856569431016067097179034897303423448389406775984638376323752593152862526501895212457560444032803913977053715323830090309078077402083723737061907516852595729267573775465147236094433962036570436988123233082338870031164666608765135318968782951170542547729018928627442778747853480722039813229701871180945854450674259641278379782677476562996050831343287343203165289353030512336968695029183162397174199224740559799440333324701937128012562748216044696847343071349099420537777913582991740318297493790457762725354997047868357234765270026616641447355895518720333311407294527724148977573891811291240748562350381598988820657451197932194551062578115476212365281804513145434960880586748364242440800817821448368399487958461719416376292722632766462280520032403187098269740973195299818793901018907870778954100598439452471022404071722942563554713245439138682846604611285944172042000410431399765003078121948667608171590616438747054165459686574828924445636390309568210991073088533239579052541016985366744295901500677793595089735432731273775475487680736884488075878127931183369291003792246900057450249595583525463058825541478476448556601983820660300399858379010304372374495663400022894849082779808743915149065767586762194220341990441729922540162311322297780886717194359247806296693118317301105925381152568641832246227757245257482846644660722771595788678627833072239130915718771124215287202444992425236778327047427863110757448206934167560116455079484546307391216847651009458802633912095245440203521649932206663169901662527775564604118186150759084634196821004521657440854305978091601807198380666647907175181768795616008705444718976760543474591282604050066560426419271427601775874393936129961489290385782517475891323595777869719898364191937661988313759764669409014079174315387770372811215262846853911730199358346613561212785265241019424188958093357328900985195890164935778999346330987884286102296407666322916866421693018475024652899275164630996760163710565459592298638295427946928516668319766266258206165116717923413265660837381360393881616724147915104929669276631037642626071883703910143249557993419445148580734321605276040389941059658281740382682902601477050743386695148252915264827642258346843878799404040100202433581054844836631623295767743003496695371713266452122553163588707225986517471912757156086582067711322875419591306751288079646536651319097140298198842380908411956726620066856801390339531419435883970798951580483552368463812245061015346185576335763508878995036440245744886133543764577095799331786681451378931677415854332795553133930995189174834103434746942460340094481902971335422188267017564796472596168928372573831158025659420376099644795701517383069590736585469005963063343415921679641401300643909041776073976912909650401911021218716190662184468235780401169658548976469824848746592292733562266440751527442735665991561736212243956437766159815839467714652723183673108631599878947574461805158946240659572586979596821192724679151776980398337752007114911949492107338289077477191368345038791315763689951432810609769241135126617179159885725997951529942444345808763619567514439391472286453405141902721032555452552445816833643310013293348050557169454861715287919206767907386410927971348647552494103884347510387825654119583014438141353964007597322905714402127164888948243726297736095892293109472896546418642925720186489091939468976893884684156036813506689423104664918052195387140528335488376685199080377823330298827394277996503871162183477840618737633935371870671388164080217846231240357450341049131947846769421660037849705848892511834169078257141914072406264813391851466925288116394587497870160259339651604355238373385153699346946172412854665138992470415810392093819908534726592489286588241816021657743252626824713006096642638937100457881823794933120536653147570519226958771109052838996989320450265010396855917872771335363388196095618733460460031668550782537287372351563347775898563357348029070309652132347200976609226484610804643350327019531476652111345851439588294437128858433186449466062036053276208338489764761274948857817757913184209570643006550544057801355560819588954191015940748886758483849676375006317871209557350297253634568820771042865739253057631202392854749333533746283387401183366771252383198636141740100456385392860972849750527074183077421036466796205462166185219271305655510010280217101229596612283023965173963223902429499085866801324833610070362457835459809022967657790426699992458710011796522556083939205311006991173622297689417667123761742013228576218087404110998500021884740974548205934726389664217887194318959275389038288042283077220727930550753694443976184954566175930540995982186203933322257992585962248314572172743110785746727996240124863756059274063830013946053448146287349982155040436325094533452126388989822230290814530232290947132435389397859733080332518927835729156131223611377529973540917723464273709947039246955137604095465390603912675845335017275484514429190571060907376952706171074088436240901253307737543470359932774480547438201424140147504889389375109609378147507128454121354572704042448257357995967441321586497544394781721671101592088825487621010685636750059778942834353125677835279761849569119114644581253724842904910271429325180719527292128187194798738410376273724857953582653613765820807623568456421100569753502755780012393385167324716689041165094655538197091412097994055682755438044276707248006773416425734760537209338480258213264381257264772154118134677927250575050436127551009595087120420296656472932885826864515134083163914690399668142052663098513875888555499368306170592519860884652062604636113767087286111294481393810708041207837404815894570153357324764698962732143994255077623486346896455302871569989061845402939202092705236743436533545961368844818239779722452924098095823913194596300947871676586744499953182098842883762052448141061866038778967848901800322272699290922864899055446445227938774374779168320360439597706107158723012781731512323522764858970750810100084618600619351152786773304395033860112330159751054897421540238105692079707409280225174157769675605994822210913844026563301576526767946447033261538327936965842890635377288641482413835512758475934094617006872994622778738392219215439855076238201253531757913694419241974085569612909309252004263355835799264003791530112474621178379423460960627795647042074896135764570156040568112764639162632323622350985395279499786124620432937179356374266401829825179456774182892636746954957084691391083280199701498190168174904080696661537724448874524645334258693893715369264505021830373821805124362746354124658971144007638957535312634483005318278920445638960745050555307542005089790625391250305321926203410919047805437236525720963396727282112146476824437793438375407324649679100311700446477378014008002136770885100554470431167042685576457704693992875388409908559232948176143700807483939130514109597503635025751544880109729552436872197508621104249967912110104438594468398874221378401710043721771198477996882634859386160994676469192933593271918056468211289300279079840242136642970879264583100197231818131671506409691618110688951767091558083315573544715541191443882462682329697797148914010383125481437356583453770381671432280596804552679879815615229735411519016652955012812724732687546500215670857656966991748811716799660899945606008533952364889310691828838980207239486799869600516953517972531427310050371586476703564195401563695346945482788271390325054548100606447310457776244548707989900216600315661671540360631863084313266113495330439619541606171231532360815339144565574367917542781336284080611369735258417868067409584731857654116473163054805267372851098811268377598948300757278398522194129319584714959856645528405038011392685342115870416956181984716886260978737159277065049035325004334551130908693317058609077764097527039018963229376248872702360370606040976992972954480865112263282373782837047915661809295766825542326835796223455965570847387608930698765748097649386386556972860404122926444885424277830649413585456240426055370972735392003419227851161854160220823635010113267662693654701163213220201580610833875710213558659352313303442866687307635852107784908312516360005774905199670277986807833170577061565533433539518990582131211314331860670154723877219188998994141369163668882211773968749063885912504180070382546429878778021220445695683053717202427143906642666391292732607298832108622016411428987213971292111170577598864907828106667992027926788901179581322694205334130425282258601250764832837453899309964155176793870246873605939410429322894674184763288265315081401644904620998264797216238819964070148671949817984953418336603685069712030161787725526943606437065832296968915609981354738095932551933566607957529381244160540881794232965449989363261390343815544592992069420356631444259895558430262704686997995496617337913202114495189513804103018498650844159479365045476779587489067812118170108818832952957668133547864273388082999533373068710948850140563189763591831199348418669550920409464854511062583793546423095173503845768401542901964250051785749146211917768354822029557433275845988341919891748225025372618264029314870683392153907667656354425453248625067157969602436051479997466923518538383147563590798435909288856733940687914613917915627802220057496821354943740011300586838263768287467888847736421721397466108860745863934589023923158622623723415098189923649217716882210391705692477097437392556230862294569067357707767537605621298691943820668251797856874746217740937317717370902810989939284585201369751069577958874223338409522799311864101495641487517373454793767475446258716002177231387100221466305073738837257908472504442874351366292007512055316999901697326879653128587992416290015365784432114533823026612718417201652440365227373670612119039953165657651540789016228961935655564634740373147863752347184385676892838650665636225576478135568448062045300157491892572948368123266728864047207609781395373340831863965825940702989905958100328077262631938716436935301142667714295527186736271664675788019070359485526157634843828827137596243817589457769358762482497818522852777781748148262506456192330024547172038404809812451982294350554979209299909774655150817066903819805533755189765950078299006246465235063115869708847561685961237871521983877687264306451145576225855189329347943388351835127045984230623177729514154862104885149992551634858751442543063321615959976618162852560838807470439417708086757372112228102897168557865756748563505431341402732560308746781071978193182518200277117600875211536037683059458255195332835087346426875626956334382687149624793396361572790002166922348558248622929893193271771792053768174841796967638528813596110648775330198725119056714898706890668791294856674628069847082045631747487367226490017251449850866668623780700280442737057123808542529978158799640363262835466962485462939476902442229838997587997793337697216457686437952494824095250718416996609537712488436125940177351746615927309768735404822734246161847814762988714554024749478387247294053571615282579784689670316625907888660381242969059300886359152013964635973441979710224336616512172408836579538632848298179257921351793756525894145736720388420205748755546430140547850349227002848015016530959836555615812385928712020968823173891021302559488334719940884069976721686400538663351322380457118743125807477076795668692770283792030603948617217114856938341927965043696693293479201360487292473611909220590819388892106199801982717918184346826842879640999899086278529673722378722676906679886448284303523593998593697122017320038572736767081892917571629129801682994532429045305785241729375064726541040716203580768000207066351886239667716790997002316796183945609294926475722562363670858517400701891081098931778589643256571404013181550779590953683897059456001913000945119225078629299007411316564073937394590413906273612163248368866929986769844168056636425177807977551190925333708332663837563637084377952944294946751616001795887955273687367511008026780736189453566865165828974196627883430166264262542180569540298332066107214959918847492605299175544861929265609837023414396327288527221095740647367124949097024822684482362336979515030563349161503690660692363073689447678492983560189199503975352722160764123906579496309641373238917449118083833116912888470668028681111814700405580849241624908408115930892686234581345452568785969450236756532493043759796119987750661642837959943165162437498756964569736860447741689216190861433551836475337062523587906605159939296887285704912555924901762658307307844421902059243243445081137830712389013293095164493259056611766895756492626730266233718740095820037569912992589937748212285321616814879146893120304228244710745061314144638132761212702465628002012901537392615165870956299879059956259060260933574918211828543910939668509904710538355498063812952828185552294690812831300286074188880092884375024895561290861146879131465196637056554617952187783562955700724122433174339293322914247485038106322549419385934700983488525983459813492306440447484140523726476253065521016168024755013319325817635797130231448361851561991050675543134908092131336045514572264390268942737989200074431241715203226679210133316851759396012775551304408214205499856338865594400596745327833936203895830887059580463960531264537079935645671064470627183259736944929506993550651077907754630732710866294281663053549279744673858585599689866956685293697677766276494316382097043284640084703114940860380563932205208684219878243536290836695397776027669737242879963292925472879421923281106504947030187480286412032257777984862616038412041295586857548166630089246582775406315880629204145403146890327568388782440462050014362464905785736571602823547264954216199643159315883198589212262601617397032529715598802495483210200306268403918764752445554511617443665821856240479734549843081112863226832825983571382990949216595787332848876285833326702589851689378302156744250611151433057641755631003238455153335062980612536812645214606988088094563398415370086239841979870038041778302008904149447748061630259884028704780499503984901571183973284902223326192956609388426104848046190103039489052975416854353821362178811199534081809573247389046504261045105992814878189208761673462412751770611812604780140912845459228525725164454743095151172405698253336135939054769993374080724141932160325933091650206135637295415956884585953408985000400739202933938511250079022626967243944641149159946956188781593345755530278355905700792220573779412794820303802942520538085982075294431982873308400089211400412776695500801866183649954241298771958799035608106709206564451600818103596344476059835043232579674382184300189518904347838577104686332206984121859196440297829009483064569868232027587200837451383550214334594306325111936078735520678663262564802382255066096967865288121624695074694615627136858893935166422211986721692498821995352182512301364899028016713819230109037857609822540190559707820309161287289425761943937653603825681239115354960395078609296544322550289762148183207095414844699211931529233172080578749084273710529426139984424628434144816117178312311146634483663160885479312043385149564995854947375643215332353479809651707653564831286796449097961797889380698096813477995190611997642308609793350206812095592145985486052570309401034189958372951524589386087137474391373786615166966405742805316465989547763733527552808574109145750315635319291388331250997772949657305825317507700804992996049658972204623084819751749409564484458653970295817996320107732152820052058630436183749954446409878027799946957375947515579785159768967773656393665471396581900339875524636136215081675032635128812146990482826068022031637103866068735457286922556747599658902365555208784841347039400635972178941810092124113200676644385453664412412566304769836244222619452350882925639394394001661787675922582565716846412088787574426779067830578497688618118919123659287651242737675731587297617412214850891090368407174971952791756399718909892709779414555286893229682895394677333326083981091051783154248462661153136488883133188738179640885945177344896239452884045767237938156700688086933342099576679194224812255551650047023891162235378334886007052446362373810757694054391701425565727091030099809120738511922460378010065384350508066656126730368539931419208644394663086844183740397790216902355944727211055667241875630696649932780927522602279744457106634026725477151355214449987088966729140590844578578793963027675946824333845243228813589509547446596894942856667993668033997751559418389210784282440090547471871849046976284834531450970236501638512866390555237013499193991843646100670663021789488639089151927061070014558844945750210764463737973039364191456339556184021560344171510884805186442615037661905046029567056507812517920338021746968878125538204803413369696592260737188569261777699085790511516966097198640127405271025228861334185372672650373128992053176919968946070826650391410098112948977226013502284716439291721617252719605806198703905660305739659258765982142688536452505772774878229160575903665596742582446148393082607149402234503260499850786924158204029729624548213496697112302320862505283338237115736232642428543193988612698864079161785825800836501657272267087231586734684949040265592953453379578644210853609744498944370388140838661789231396819755652983847950035479831176571136617157279468527023372991943705648719340939598348413192652768602612649967036963975427134042549161870092949606806011280956693001657447239327212536655597683938051205053611751882744457640355720838654899259548434921425844227585461432070782397952302478978735262838235533502912809785681275569838158486735440632775838048678920919639488765408751272228531497192982970711348774802391944701001713031876478588138787262071770098663870072880057035723576318693279597379187909273710032666018129224196961910307543973357345243010018800250745667724318111995666470461008173411205389855829368108993775051302771714792391281720923166513540523592712659000593216120430258047976656350736143530233660061323824536806410192270620408955438169060413806384045982488663559911495419739569679715409953580180439763176935753935386898099711442421023063456561990465957031745204803243714672975955378458576650080914132312053738131394833718309786632193971503688882170053328679764750189674501728197276911845874253275415003272666535001991293974387043974708072338482875348268438616346507945265582688926561905291354111917280929395387767532612949302330796542934968979719775053219617293197891213318585250206989380907521779957918594373426127653532596010004683290198141720239661979689904795523275807059966820276803003155981414937661861817590291412554179385876309527808072953262409776692157251587952837518573173811077416853282212083493075039336039092804740841641847499155084862695817373312652590023907259310159661378466015817114030272456359872402542716477546513190769759605292989262365905539236264848193314292957099680448436656426275809465838155742662840021319254850206015816360337369801250163606071651138886025458661566230246219335761052105313515519661471340939172034269397551442075122715577063093416394507250752846862129087801329169753028131759288356098359916812524648524645651982029789587764970588194179868429022612153453581734501843085319948099153646478313325354746868751511630193259162981630980383666054305591069862579877469802965228153770946418845409320400267983793380173971622552159044321176382727281808881974137007223808711594509051398202961140649172692947998680322696924806661042775277461134201581573293425440700999348763343254571426274097620304898391224465346845503464492055896787378746690719303597796240266590512627748973914245418136960343876509421097955520375679317861840089387402532017198524353737522285942747656121271657690178298854741079012133022013693686602190077585475684859919853288073187586787653427002797080528744568864217047462586215731347022480786602299014913551699168088214160780436012391591846898883444260565678919596158810734284344254848452957650287644296743520150204770155928013670675105313276081422251326177991322165339478477046264724207836379247831434614220227327778383668765791995937823418703420580293090487557347438446958457273813901756641607275482031170032116203200664471392338317841976495482563948665108011413350330837193093705239462723044316453567369216783843910736311584644324717096060617110092235515694322403925632510330922388027785163818911782170989035514990784603543617166119663659851042339973596487888419353387820325309220761656513361047679849882266227269347492815469786495849109848037594115163321703669418534766388476640635178939875755180496453671437137050975672078168019873132565608538578512960116726471337064835756697172821596036225040373879441834519663465669626985512661555360546618002324617347497836829245418533908665903401362141875304866979592193312657296112722956462034647804868734118867629312374242123421298025403280899026570579312094144333272793268509766663379535878806622484526047310176254930368790309014031663368498732871559659833278939889893891075820958408565633326892888009467972700955644016349564379976759407658987267069806197401880223810945816841187044356357659400759969865870394580942434585626569444547119094158350486257139195253551572970720749595613844077498456055567989434517150922236885903514043780557165276979861324922324219968890334656060928523979288026371820160081711078803254367545311645052561035006069443864113239520123161951890012038372496993814014395741718632517779539285571255618467108506641491163548628911626261908969304763535578683788477740000451972704514291723506875278553573763859774187110476690053529856613978226300969895699292279442167995010205259638987735369974551570893738354814186995718630287372817349243505967208317948650859722938864790820432846780029234872299131854792544552994723072582605715790289247812932387911033141218472303869895554109442786864073594761950112747282421572582175800149694019844946189089157504338608200058808721541060362044419868439573900660293589905201051275883165659762006989203462414513177849386439799384359018811439992712157947862992113748090914873412250996449009154962664399942959688219642546334194653438021981284165443299923063535412043179676932511268853264496193808196350674042647828559913341846616054050803140077096721333494333941159248179288341714840173502973080677068424182889904024595834382244267764513490575345204446752563270994629665494383103161110832079026253412384581913246995926348668586926139838820852094883058451916257188433886070304373403140102376127600651981516881550450423112554235991550596361739225425013648390983072594407158044318594307340024464582556584315976210653225472941066884598188546900667455558337746422509318059854482016844634986858180485362622065657462827596889015851942223201994106743665830471083860676749255179311705417589718487641195786471317086366405687478749453326980808239255510090889840185909507937856791024870060107186470304886404797975256802967067494894052263431891051289175013318137637059529232165219550087729007423731722367831499518514835622556873766604956503097995787988832079915678560191617894169497533461500008320787186731597529272368232039171523582161422019412728642480037747988257090644761362913039371227501609883956681215551167355841976994923220704032142684974170292262652355531593896988870116264394743182968886602676658251176560733153403305679669014471171463070650186100769406952921242245104306668901836305433825247866997838368873005199436425025037510780958581455814213483530913654862094920562938027219548562817033507850502286756569622684167119930767591374083069986929381058714056609781662220176513032956227548698593966444900264468562595645834124572945612818309572094194241398906720008321391579907498683299941923732795802719329721773112791973962967619727955323699041741494617042373228807850720020416607934129391450818826888699292128746926394505688996726274886211190652594721662883783231421528611871614613035486888703061083127001674360016306844896417686586750626943491327181905474732362635569566694390005094676396225479615165092832088347826140043628100455999605631542927192102919633297546387000917393044788269552899913836389487941734796155088904541717428766223327544939287416895770015902420119317606621119973405441662427967963050492830091239056237332989386183298394631725835529452829725464335946505736637419487348222346488377190818088600801721783748376008998867118570347045426815547515766680280639382254248887038815653106006020119439942013458088477373036466568880865780520185630532774072402487310907925686468103986335338153940839780844961025916805377405324128471247180716152304130607206482824991318645935338399188875645395280153056407450083354795474954545578524614627418281917631821498506934374679699564734494558971058752370446644867895498855782393714793193965946108371538092686122753726437554044474247007751335193286146206084037121640271358659941483492153789071322217322342215409853123648829535647450523284902486793236452522896856994377106439186421497149159876021411450487747379822181114673914420708709748343055509678101741857655808847748351680024578664149917105784437126503528079645512221205673756392052136412808970773223985101776151238801912036160555156741239353177245907877740904751504057997250776840406451866911783326557987175185104201677518067293874084456681076675602312888991781399226710001934517390321934026295502189631347739808249500349764880613756640683620109967972680477043501780624106207631931505498308705997162354579298622880140181988656992561954998280211180578660735785595747736417802394318843359879545317096089446008942821699436496680375106521990130916241161807299141743645046119870122996547059446147527834475895334822338301235689018044712599011045497971282020535795720448037488023498479358405453000147078240529264051674672780957596328497939852707424116371437632924488514711643380037610051061223034062007010964764838814346706337408661603291982505141911129022333401167772682605166358469029861959974154788511844077503143765257312818292414069783775255358101781553143238750663898116358373320859024289093248463395826328899577294695677801707185840373104000811760268273899403141583484615073323030353893242379158536342784901130921056081843922162729550168358371123304930395979619038082270961198862735952466797465147477111856849606633893556205547999474880107877852338650289239362303148748130123764020528858014687273199087383875113559835817136470706784977549715617415902065927488364085492233467722905167540345475568358986191666582061494094191750441657083703501698084046038150074729836444790786234141894979901207933464499142735884983766075311775348580784227557850087525839917031854152751575916289826874348702376947405743869229462390253018044015855892408487961844235766048959392138271882105166436176296775776735237481208250317573354057620696045661671521776734230704760655119708688403565006124455824047957269443669413351654950306022664757025078696846185913102113245567094314909056137643158544619791756225589744719321123556999762897910964824201053191303146097126940123169767811464047557578346147430677165884264303597323490998293704548579953553211814529376303229366658878620111914808890356160791767448200808341286131296072980285791019710830963788299493668616515396703893596155731309919509656979533982016599667305968430581826550789837443141031890210550235049917856637487937757602729142505947042062803364788456901393010282308729521730504126591125973763578186438584327187730337148117610180883929989526807993464403346306766784354555172979777502624649978917561148511093819409538478703818197622327802085804445462214191689490000106861590523494419561893553808582425485375722576985973124179730476567242385363837846210645821148123436087260387689604869920873276281350677370786355556884387102526511209469550177465961815236449306756536781673524648385250035111923057277136726292518966215086576388441950389057426205014683472345225769076210233385748839772289169116983512711444097096006360387523002365641845300978896547030439862046351574994291065568004032909174992301496851755616172298523692011987119041191120436494628280618621075324158010629153392104179425543965176875000303117971061838043093824513703839303156833567115814226089480142615611481197862934689501132770158962173834710199754984159188063789735261405973260167115615654466738667319825943539779593649170247525017557705996821773233713291501156805640225873029307056564543148435496066158046300778032265873517972922678086443048681703507812651834891280748800295183785254703949350642422770400484960852582079426042945270677491954620041474894219094679409774363888442719172063156017851550952917729184266382419098551623042203720785890924177213149972875959417639120626805381089679857290553269663901253100120492297012070089849693224845504664386647818172175097868552958962768504801868499295903514127510690121858342440904182709030425750452717057831608547285304106347703757048905315648399301186983161575783546966634641555091614520795316236270227508561503319900067771785178133333754863767037929672430146609612627194587565413431455331237245777967206692778379366767713509944748128122540066223052013115207236153958260221318845312438590138706702856738937509964493916465704178477282477268013425824712215647129209873334375324356210774091785636185278311289769426950288456063271881224152190921041770832512478984123410809547691084034124855564511550730085693157310235324784155048409733078932690332916458614918464138069461061058954762950640488761381779737160492556844324388925148132930284747252556291615383175733238149611760906193628131460264264324199145269871141735421943479022019491932736628104044670321580163244863233485934709927889488064499160922885559327906841005145565784146962891671803310734655342722447909238528792169156726663687730179896325071863509566687063822186362515690235824550669586574800004837379707229273132462370179952320550903552562110462698716517032459049819552425831572344530130368826600346434879472554596845783300118221518130111181605212396084351795040984548071429912520222734290708144677719533932325548158727279060153232932073670546695515771202341980226479685781905947284084822699851757959018621763599343293883923383003149867990300212041068979063536601844878948275220583687694463482174544175450866898393572381896789708629588054277032930000888322335048391260059990328164099385182633912090752381902850211306776483298693782221838400893542336311967260975862602828162750967603652801062722285199774172095051708891351840680117780267896739616450315611212806212705971982047572980590501979254335204506915013865647274586562243567300196026186922539488071672475874559428994912700082045435568765032842626259960793836133159791766130199640113054038624235876511946523058105349933506508369425748166186964628345208941557892154250627307362016838961537473303679251608455010268757829508858685444516961431493252842998033805962029739338419035897492304388954994860780085699053001515430015194915286770868811159990071173752907119739132310277483178617179172659993109444879988172049910939059945064812614807194388275643988887566576091927339420529870280325381861941365835955377061782315274420824883861092990984768941742316480397721130458979967849915242324063821954572721329454967868690773688420399898774748776049861533314475876616617686786307800768851776338278289031167351288475991618062547140056431263700280758765637807293263420906315826029010852575926303697418344281135364395548489229244896888421744601525395552739742838964847843080722969486613160115997163970460019754258577140422765459326696663226316997288227437241141628750141619152749560391370146797132098048495847058640358496070576035975428770864425885776012374678449641571020917792399772450448978288957348994563928810423726682701496664088277881242963975872862740435818966170579032671371079875190529197165266051828731073140788203147911221599671713282822999654624327627517236275930840892207641157826496640285586658242768915868691559995797102155035825743513156156441679412120686574324955682950931549337420872669825975716754530258990448673769178651561932810663065828138103789310880831973779789935080302846134749250931596967356564491815315834393981704613804732860741753722735250180423302142212439006174614714855220021657149854668990846740044941152374496714573316956820905742019901771764127416125314658678027582398170647550822259765673046515362333565123996744585434540033717601695535923112390534064798048236671206176336761150169053966826384337622491005418277595910184340400816279530930873997765381976569124518863503069821103639952016357775896604902484628835646949110578642876159244298167714112993339244806036856132244793757087017441850728353343174395606948298899251249857835728909925575376518541972631462569726309340357118390870003922206486396106182902915179313008675797794437952228279201053351510435024071342683461132447227690861284648027348414785840547661331964373434114063378118631443740551666745743341147328108300099963164394092577792422980545915679671246388754139648793473797225737555007985860722403693127281133285849787513009842999144823723658913060173100005364499020121829785275899130594852157258772216229913561404645786065974320868449626541794260561110975891578362673959213809038162673107865021200812255710185314269998211564396344056185607041998092457890472357874364860462577267370278974059372727678173370497181483170422686174265710133111686864717222978362766197186683552086255163322048706494164848373834988033967847813881686259795513535633573142404321469142899389516811944089434167014729488536064242986861523946373442565494989617196448097407333315078972985269861190636886334795773732274854642959414001800426629428458282712838119011346268637827448017966458816523182400004438838670906501156692097241422792712669689337715727503173284877053465391373340438350493262701875424300592368941934608841697867592325617930627751200888595995457318037178167543904452288275510007644931512742083155139261423078160567511504872593360057547385891974407753094735539485309207924475121356391028532977133107516395811820277150987468526886973524005284483042052686547118395922695844489093071536932809457097377339678266675579404782121588762989730181511223948889882211763959967528222521616003983845441869877162261828104852588938491586385199605192087768328830155574326059502614703196907840085859647910249830277393388235635812959273140408986154939331185599820241186544086056267177482954562921352993626890170030184524327718792599396128986898297867122206623139565968673106854977928148691223423230582025116200504973114725935149409722485152403263148365697262345215463410212688290463202960701523518197918073864064806318967416541912785091874388007072558475532078211387309685036627533877577523142492895193987310864933257882893803035517589272484649059955104328502934002779131492730152377698472888642480215967808876998283995998621368922901616859387551840372205227836752236090262442945033075245525834040713803890198319720693883724113707262495785625633239398426419983660559648254154760624626610328911292483664215041163756415072167579910365541062834708335374238839412783741380688577140659302308011662015580877626700782467089734510001347562365190185863467513952379718843317559135960605399987747405042670817992513653132749844615079694213610864733672790220366336405089728874089555621528837613446476170069013489955699568386851889370599274281550163110670862064713291594789269751374506030111821017992304067378944870073514001859437465282121409991239848195611830780457086366844367991912978942811178186239606329058211910613632486667414949612015399721265953052401487178216561580589395217806183666998151206273505613765894309625672319782022954299108832895752447748291611399384774202713031009337087420217768389624595204823030115204013134228594917905678978821063256911284119647673388602549755918406100823375940334698621676289488256175201965860688345280402016767466616139275355105366042965806397035182545020819367816145719238610008307858287539188162155954757678983653644198661401166507938366141700682828906660678774684417248053815841797322704599250060546319927234686859198747879654456853225551953910801649438109229880389694556709368792185840958179251078164594831958615876285659081444260131546662595784931181413030280903193141616855339394544026451796846146816799371102769138802858992122530113529994888666392777675739906955239260361027090346417845035739513721450576167539021440733052026033098445848919403716803611780212518750626524702872656913266351790721223623537538247053761526028097677719805106752477373084619722367383518152862965572962047516410300283316821005751534380064730178617086469674491333917292154841697164191038172385538886690847744319719130102946276436496797111659681929533369479608645461049243646763296511126987967869573247475029554087199956880911119940359285885863987621320538579916100592128055788304928764724075909253243342754014733118017233330790008917904420677966622858277600597941127030045891362877437653635540162125132970073945106989447096739955664863555762000573618667040586204294804634216099100494216748926855625072192572359343064210183901513875809352346472577485601342684690986953905760332747579166202521951695224262248544073450865263654011182893668464763242569019507437125568254833559243943781679655646285283925418677914032815554053129317677816357904731929311150715973909522805443068515455463751238315768977674345576099081659987413494290001263294390403539731517322838056552462131489869368213039960389027543515223633019908342540037910888283400109434746284604079880544996830324445223110231307224349776669130381844866386793443653335375424771294687311282304560570160614007356148238173330827237127141279824557227888601015557820003098707086859627731415786168709071060770222681293365066632368860290426861001821691995467428408077790700152300453651136558165709711155562198310524619050817678200847226158400820330476818435103277288376191327505292803206158423187904460122691262108687299220535086021345650756680264417824814751222507213998503207270384477403399812037988814235260261083619980485117731423296251187018170647318872381300125594766586414956967354474291736997041040153667719368061555119267605918349917158306905961632354966488002516745113834432075945284994022268028587268626198344917096797371564981153236932636279905667340472556887176311349267946265022189033435056297515185116088284053805134170233229167992128082852889523291780254500084175538914307228716991806216663459871008613463220423804729406849829437891640023043633594530766552448039692406549380544553308491115454408616772135438823930639354599771502457074792894889336661454181753985301393652087178866166270200247834092538278766283136968725973510968544875685308717998001074049587123080334671378173706588498217176831563386672054822906080760495196880196781258235225806344535062819242823046350376322950723588149108427960550295080418211351321595549748468742919769335914509356001111928534386520791754232514770884041878894963444256730575146916728300348018521748655143220583285836436159469079023609094363437611117320667973371198489474094090112276820280797036664282719825545953337883353229080962420814964965045919520254736790255167693163064162519878026051410771848094377962782433905304290585973776017688149765144387969413026053496478165452742843517391149245122883942479406778520448389854051642269595303829081379809594279545106973353937090527702554947412010517897599211262991213639096807847216062894636238025415530079705721378963720597890086598373750314399443392380289517048876833538033786633105750748468681246231428806674718849782539273582275676161055365769292824694688645674190161483518272200605190141454363044348533936243012908981036907787122961166432342027459676174146411548154974882381800163678196489076056060773699608929074731656499676576756570858977938735630621547135897583011160118072992012159123565049116258147242210240642588504985976884677503392802359911007703055225925815350761479585289351961681605071344017983048599584295003816628672776088770307206744598720194875317926059175260463256385000798822123317651905654445761196277091878919246521053100059100801204307762164410243819371567649009795974374535002947146335033107455878359743684684480606135825762573652362736529930086070751779571645232345324439212599300286925037451575792872192975537926745429802266818078225648668547623716898301404755513921577159571482012972179061023727881818688349807945875444591109357800149606434800511766470407537565382067224106999607699940198527696672502564039148943275505137791470874201985282121652069792541841333136239454927859822164626464180035178616469609467258611927040749282106150280281537391072842372290497299676058400056043926456848271993540627821577197218453846950660453801731530327363664221200683372754542540695118987802621735930686875103039941480418236796582526279489875214560279786677215516879795534309390236248142276116418008183416283423424268580653171328913466804822164522752622195185901727534560200115227912830088747611235333153837163136903577285942870017851087297068684255491575699217739514805033420562435819508530991087399477836346478489846243490905630627108359059641208474056956236999160726058440348070446664891084770337707624870414955145837779474642438060772656974669199236694069584005603889174596576047824789692185023702152429971593807097075197646140390146173963423454668937319006973191190068025484504597824411161129246002837212047330802663817496861535335231702560430723108006884147488555906555279694114131251787944740339258812890932254693927495887145991940354143447981153377566887675323904905486995346876141809061182925403812042272230320235848949187767966532602461120173684404814196967082544341789877767784852471767640943611469446064154884428494582982662398791552556628578997726756480656745943487961429448904243294560131618675600954794116475204282561906067812002546704949770453535211286752807270918192902851213930761329473971946832177900188948914217099034994918553663160151988009302315068070325817965649783681467422721949623663470132630516773354128154912307240936051564869458306010460373922116505365918118961969312566628598174829294938516943025900095543123347398401851791391645584086209966215133846158440745720967403732766755183553128895371691830535066138871075748172989220897533195824329376811895592082947909666200788610630025829602681886606343801249689194827339604972663757247199723338093289009790246453365590915155130372571768015083692037043306773825867325905321175647054037204821295012784566727436714580339175620444468420784280879268587547255041392229159803500093414119412309541231288064684622119279301335977110543586006369944090779700302324138772697068678300450601505901710994609348825683198676904210117913576372107514023855574747847039925403269519551239995183412094277224870312241011076890708207800307181177050051709639255602034342705348331634888639705745392013350465258885722648959909831727365615977690926552313701623984134868567304041425226544266910489845799654620814499696282646353238378631212334011030618134843893731655644540015628942038898878488222912072794170747217727897018088651633308509347085373310999464119713163681967800693484747423382268395178254953529488506101682709294329686814786901296498155758198488793016653419169979998831280601632149449694683094635836203859115316680412159037490189420140122317182239766221998594256677873105902642526798853364217449852572384666376272711717904430372795320019592924293111966444880493353233537288456153929951000149707570452390814211554324343462342504621598885225356186867217673780250345845306613998605405077368868945942211400511754204362622841303651929942281442209987178889632137138510539142800151776462061505213358379181477750556591895644666400232915456603507718123083320295304097385514694289654696764940609480783537867073069160580395169758912432788658455318302573555959620816926806190971537764927169735448154136792184179924534075647362092094673077355832481655061296816629405340954709401019162436362222316017191201777542849115598106204640022243159567540685051490004939628242546131668475649806173260039236530792704843208819271443764612128803378665915648453244772954479023293154199997247086341107552919313829340967102353094997512016272858591689380802747551882554312623867310765560205543361833533121609711419649700990018168012273354635003463265458157472061994139492812221530466505230516082765503379688893601021243179778388887916729880421297633650754228000897134399616334296584422012120226840374767517907522536931371761284743211782602388260614719307696529087416293131276176267406165950014154098965847875408539981266044457304058090762267636936110158851814574326422068639430981713438894857384285871125628952762330180778753752704990201756428995672003109600176583467067646846337710684284053660676959350830541556058538578182381545769396558891187891216620813530435074421536166177055264171364258924997259861328989709424998872081315096192004825382089997838302034268492952007862111259710497908726649786782172343216940161474184397358266125277342196383534482044761776980093128128479312285035874126513899026161180960171199554543351950065538242347648776081273901808984148080431769823835996564445583504970321074587186243511635276501564662702206314509211574393125504551883608405707431080104453956738349667258323682649303036631065953587276457684659660266265446619728658060942239322169055149347506419682048837037871567705673306485030455397132624119367947815637777291340233177614663655152626449955530309109552926856006098267624230771371255948343457923083392096410352890443365104941940285057616026883483866697118150814501681445637433872097835490667651516648322826916627167236822094117878226385335131170627820379457837355290197054808265467992780866495152679195296001403292951330592895315042426379357752991154190197251462951467642594319962039846332101875160448145550510330634233293209628366332186228782043685448390804579534469217053615351435308543413389390162347350480660413027714900702210142113914528328772104294179643368877516584540603618010614420636063368086074826414965561301780361815956262865446852364611468140996092854846526173483701357627211876516006105133608202220912592409840939931318216716303075430975917419508558531321558353381646056306328758694725430118003665211610847849126888300876398688241037693933446738442851263145558392049872567133947424253478408288099401343958927402783271656661778193975339165986493886249897106226520342556692574460034318736171366810503033560272213106170289870758756945682831811603946768997232912143239127641203086831389366244087893147180229898063908197536292470995806476568503463932527495687489321865819805716274682127879937174381481718828498181282955599406504718587374780447751381470298884785782349149042406793222667599182003279185029300871782746688801050221853066196286256705798455579450774711489139847951202940786851454178649149596585420549615622360215786390249944637728544665167382223339561103868155679472353275549068513748011361758411966104156083892730438584272336426551733336740130993028541593842660565257637178679359092838873052508107900732626810092686470634455275954233462626240063856853562668470930853612439625108288106891318001706169983147399245360432704941321700981545189232210326841829338421201097813065888376566995261334554343748506832932068113193885594964722601713674467273505241266728540853781273324091801133088593459563097842889545377004565876527781640481801527630514812536691881566701894403293833800473894544371016292001678989551364621229355769483785591522520503641505642927814063535402069706232121642090980087963945476103168131683347598373584999535138593413990481162861859470108623028634966369493380577437286295683548535178652294402323857584107499560755520895633143906070614355323676057362075419166442931009215347638773939867478033704162944222899962891856885319033637119188396461063313050649908453785318705852228889712973373000432730589679274035897198674265720793952559177354385442495850522736740869152929534582494790800536186456333673163757266493352487838764157930694583022403562669562488009306022376580079943516486649770511144924345052902305741984772312098928774289733760546995442104414632678588699852377689954487121026469510590893245818873601459736816295282303064011822681699714510323032203556860501547198106767708156847582204791082277209029436545112027672423116628073811115789099839729612107034334533288655465042371786523306055163582241196713496702831516865197396047481301673957621474574699824874388799542861545865827631440900863745720523446676766479134114398716071994612714835703499208571376963013374537903957016247775589681889386351965647131000511541875606542390324264571262142782780690042520840616463601648899809774949684075430153985191902502498268512074184047705967886604454542312973653408144524842788481025595216173580118641207761955303915846580853593636997096203427717688345022965951156425218441448200747458368149661469107320279404495659276422891816838198904222810959830369903871598646674612424119136491617836873988115177582508330553195957201734378260180283933998693798646463853298948660380248069321806751365986572393508704276681372895417710096521515468229478322893734124634174678269676654055247269151260768282089536133563238507425820846294278382983615734772988494809773025171223094639592060777657282373685566363043508141104229319908423476354767437054826003229292254419668646962991330078617539230255114730543052083508223009353248506776089337109056084872788759784288846379802586065672932702184665422754334222932343608982307162077159591626203686123342161104883406758166530108350671484438682820875969152470971366004474893274280004270502537410526557406191963857050741752092816675135372446698402340858959696093434189279027121068208386841280488329305135629938447156567022513021387383899005464189023181945310197921939599531363038967794970595731760758578932802873368979737160694502906777749611102900164255938017790548507386785021522317278031734866033624864944580999430808983689947934895536001124824503298534331631570902171699353206009291391669612142054170609919941767163906996733329836796310999018918488103815688441648526680832640945508702344504562804238601519799155594222313569996887885313694018126209353287718177537335458003308140870884110655129020980823433512932328745010316944422010622599511488496424635539591501009243366711597764297626585343122492586466739224412949454273750923033812038790928332785741820821743566714918544933363187382780360510300315297279024880660461636696484189744321127236393139627450457521684757843148879732621604028166408243221896867925770524074197423823110170505386841074353674809951289525003685134938493859659724296821123571076335762869415579855606136481608904795915517052232154425404587719320193221959702476122014358303582594762825649430897128964288764532138767071728388631243551336913319377475166785059756939814775215872435266033814538477868930403740656669657490792078261942250761347426327598040109960652484844064788989077541137314061852806560928521136924517175738642523121815710170344144523147717656760544319357894961084116849328494161571071702882954510854839991280921783669388952458283437696298195910281521747752932715253468397666042300516475221813935503970026484094686929990058640188033302468419264745797025557937089266538166141945434133593405609772990720376735591062656471765172584272172335202072679809526648420858837553351814858115705467353531772510534757953242644347579701964611353180156506164863711428931055524545282972110829297533426110823139564896089970112060671730517960123015087022531948804200199246396839549426275353998087479582742642523728829585663608236371355038242935194192055829548354854393304708676185175686120977033741161703935934746231581550734047730095892837704122853987229082786317319245011668006393071371010593933763242289226816424905658369621405603331906979912975131574814675501152415457320007656366266751693467250852644029429146975502905426765620325407359251430553884465755762322932620793701720983868464641024936375490847705722861466120297151087057891170404754341533791629083749996466903256678735063481858694817946504813658293987728385316461639913732452131702268794496725395271607613702475071941898681382063989976951270414524046984226164793850919532754868102612767878132573477579202418886862693064772210026211507198664025044207730029016659507697632338757103455488867990440576729570612059030517282931003517150068630013124947614799979406136981607499996460278803157839894808090460472178745576147837059207157781979451371577291919692275854241755678217461562412269306209530009628649368618881528029287349943952187269927208021601744643587974840531758477848317677183667630138621147763472911256222526950496962558300438489651397178231257278673824318204371670413521817365434360255594551805102131626285975149447818824599832361762591977297454200974009464705662207439090788683028001780254356239177711536381769206241566353446463493635495543789362870498773795798836742589177473662432955279888706328612308723382993556494620927594893773470708987119714572754561349499044319306448863426900378132285153876245350863149944094250055596864926333947243159001050060800279775755599154595019075014546401655680617526437980129129596348541278704404590905993093445466805646746447847830678726386937923141257940351875939037786985112464047254565088049489771153852217314531582526831555859379601297404597951005595971828849591436906598401118976028857262741022531930348660281633310273303641935206087298316802510265464873614503990870325494052878982695937952199810180133119864921769837197621933389928962221386317571362138153248341560942743163913878397754732519974733442283360992921619408183004445368663517023961899273692266569635343359719422085175086223432043702008609854190454334588310958522477866903995543497007684136395814611355748091932608953031474812247216234112725113170564020429176569975229011739899473650478259091286535975459183635365790424345131949620549536520976377404001717261160837832690669504583543370905402065012074854966033793032550764382805276559262799328774328358491106115918886583899939559431596547870063114740470226606126899889897604786455100789019689520504342106433690575879013993905719185325083876554744183756029380306807895474528927183154914534508587383597076833010989150610147829260583628993120342491594072538760578990522499245651162835715340026454293808599648210228919881418772424373814289912175803703079247231934418803625690467035199762513660674610047157664218428636038045686519694733572378433358059838911804895683840532602883927445830217778464171248485736684529475512034167158213826140773632978492386381655691915611043091102338937754435254117736506352566850810237071610077791493498360141629470345596646522126007779166574627613208195804516615515943745310367964309116710624759586054220729644983890502851640117846353305003737262719054242988209390619835486210787892578237260759164152415928999181796763132795220910284832130354541825177826316979613342100829868758997600847292599849344427153988238492928210307083178963379156578416951047125788319171651010353891960806733681990445368129414991108365741988330284237014819698931204230947520033124275956779090217236873576228696432668589587837100702446918882888481516905158988580717625609782057964869804237016415178840596605696917911450154822322803097818364660687927669151993282309302917324974931570321536024134489146122932241287952721722146415077940888046506697656650427254758681343493061656629726534552222888969090828198777398353227537694714729181238948553619755050565192422426060018240604744357298798658117571412713326245578704152931804096704861121616973884172709577937763941659335832744931818935164971158099946593457919951687672157647139771597783296759756937073632630034160516662266168388772578928829642909594856956509701393383679256212101911905888880453881552098549786160530843923643401036893446727555590686132269848731109737164399729978597768561649020606261485044459760454639933533202639520361312017567189141721239211203858100615536325374848140143975202180214248352176036817148936143664419377958784947946822180984533200699116192554138460669384006601513270391119751866878522036452049715074840351712633487471675965430391302544916829436795340190984336746547514338315993319157415502243469409177503509513087473465359925678477947398701051119702309710131787305878635079915993505690851230403905525851710422271567106661104716028809813821248518926678731640964928782597237030537664203600474338299238768397937840438465351154823498900645345146192596448443359656823381914361305603348397376387266639896676646419207391221425233840849368794626399869035978467173012999832558036435141812564401813653671563485684627367266346900357443915665258548523252274591836160292658052172784086242096505082929270448943182988824364555630722643938453664933678473195215866765200068544961441483429572548222151472969299015628952992785575409051025363695879184347919068582413124559404524144346892082920350748764724013302395328342893279382259434480259862028415429495799538955685943315001532708570845780039288488739876671883480926218287639502521573082452382340447710390011555103752235208186391919321223903250043475363757698242923258156206203139138050901766467081025080707168959560906264685078444983417662932290356355983071432776535700246317594873626812338781002379213491149457347601482740958799246536570635329502056584684674494156774684415760712218378982345366082831696651174733277493789517287267422937719468975101870328338858261569036371801317525971434188842850340296366792948522908494911908740229781041242208541280991343800970042524358640138421711053867910113581187403202648247160691820010610540803071419349887066238847061365458667795784016158024702446153898152758599624032313470135874745874759353888846633199227561308937108280840318828734553160238661077441309284697479601680713948125761331100304247724180850571348546267720240047607076534617018561520469874271401957484707890655102555419451156197690061146996720081363178444070209986149904107801227221533500452293561716909969791757216133238081890778464933743189330517572473326582439776634516959844184756775648666131284657925408754566012882127939196758152413885842998163242660503041744093068061422813210988231131064163727682685380742168504923900402834126198680085993774979657245875354500481680308873092857110409642985234379772875553806652982582790733394021314663489896645850551458502525867423948353174319190297434056734910926922379706802689826105520354316611892719359426989098410720496466711555064719189804996925965126587302046370167199664652622286078403203312038904563430134445551152983232991593638531949997830956667317733471228532643132352340809795823845187778300725952281964582114753342646618733008216582446872418669284622253743854792618899645669595584920352867209954288045782754672863996676797210562788206407926212605945344108353454483153789761266325643576450416015974908779992423875375264250250645295996684650814172416407239603819101982033656213484965393180189168891113655800503633685372864644425681275252124002847303745590343335282684064701977692678493350179975144040789695782642632735077114738686675053074255873299632125564624385133463258005465420857705147407941084159796570805267824268569975754189412085774126588140251253832482455045725152122826779696242753442905426695079979552849554865038185316409776691792457137404744961881943460069610870178254723571566737196408798611417294487121947637330702399293147261376869897257962240698829949372513641949834871041757236143819888767798671750331473585199145007411990056483268491077806788189319392131750676895313466667272056030128383154001632562169811803977314281785226680762909370061913425089202741845814598155081145686872125183731061665902851973042494621203800807406170538983506118039827870600533734954849812536191963032715330519434500977540834583495429376783039210799795194496587278674688371234048994647706032405731290123736771014406496245497295386629144857711613160996372923348825329044301353043858422118783232558158829468783036434259978491633826721778565328709625623228727730425217046177214265799339341624545242282321448547500065838085275802748769563817053098928736340528592292630784971590351983725702566809497669038442514699925116586270920285793187464991934505776975936749463129013324444019741617529804829274207733958292061582018261094452451260892356239262635862207445708705747478129918957659218171151699652533260287922473870965359040482261209633625614895743081325136373794060213053017858502831692858505860391241593616025586780228636792364988061980122981132252341468851809439082872357354626578768468795095422875664688099946479490311247152562983644024657472246534505069248088420885298235608126229831500178217737251098659553064745514006755701320327181631138286679762386247308756651355360678752532317040432968265046399057465782329264705495048157702879165436316575386194188064204920467575747905206830238129655960854758021550393692946130887597996706115057822738391557924670445908821875304721771754896261678561801718445748572344615108399098398914045163875717363159256064691405504951517904627863877444398955333172174263318678108871940080305413339660078397914114545505213942750129402925497455908619656619773731589488959649108865722230116069158586566854079049278840382585439664835692966460224324024449857838510119447616994804353027076657810860522723407345012100705627617616378288849224550473204849485857548567576500737463585396356446799547425631501151040817529131814135499776076696286769039908648885186631575437167675573146213595035542749080242217003557227174360545214419871891552401558475389757109102733323228612610664845426518919712408676428558889292906713824245087614823080076247493795929087731458601647538707556581522674895184854775391184479014292789474185416581808712893464739395614289207026552241814921465397174126323541279558751501159792841811279063648861218781020185025488484972335658162710257256813417723280761819706744676673705651031374809809802791994696335506415451031975904582181265253962189531814700711536245566550715244298797274125421423301238309685399288699608227850795073675426492867126720527971712477748395673968654314505703833648601958201587930148514519610619605371132602855057922374016383856488240177428914293852447437794525053227170591158615127639001453721543210163699861265898512756968524272929269237708812343818679754768430727528750691856707850689868847669604914760850636228364156905293314097383013422660873557830457567279616498211396194857921128394292931375335759826097854227399037067577411574641682167689067886120720020245972935521044804541353939830537169829603109073464671257795575627430848890423048873310805350693934035606848726540158657080431970908913178302177218197986904991298988719566853320441166912324943896472120225651437306928907468066297302412506734485084489973506162979256844323361784015546195107075095392837303996222646772498503718107646106251731421731573099477084093184242652541086624608460096797676266741744856015678177786508194949354542859879845241050193355328091616278912505175119917665259724855841280422097027678536931206988273089534264887863455575496398726568239119095474969445096177040813947825513607469152140706579942512265468436433299196934316860028238492766885490492228493825018789574893254269264411092415495346939093188279139932978778933345304998910300070159457220705213282793632046529407786631717823504174198355289912234407296512589913773399048958582462262427021142003674564349619218981892526225200933670106495813723800429321219164049432392754146945788705689028612650611800479903471058958655824059552927942399362864661314916682155626037765806507665024573949419237259185371160391652733138079923976266444950407219275967219361164331994831354469680137720601845469265643078615751543566390113396948084584357419045314734166254006472184133304915136573322829883823504951866587285449856451385636517019692916953557145860942461687541722594992378318822021845601428783706312720163644955909338629529727159501484478886283971360686537131044894595470163149430464381189018748661203857106859228590930366710237869991585807575310217552356705717876365021490905264372563330401245293211086146294386258213345161044287247028293767711167048268384501515236214747606543152594894202356030837269936263013426583676699752631619023451220824291618327091719743444098622239864533697134064093388070905420954943542481368617629196511966421606784214481567302530240625100925423861634429230297903095719899466904298286272351401221680216384799186416546178811609756769615933893238176315064118466160009776817824997022958539219651845489958000708635570549565552158519004349529649089991604626946668833997971491541995982437873132780972608999956185165471969904429901688780358087683443343154235654971313909419705316358977016527165713394849757498411061306308562475450936240342905520895625359220625665303351761406589853315593466979537074039078580888285635680730300503228037685512638674051251530398043889820458786327013317479818363328822662439885943139111592653958346759447012939144193143633794955777400989390492919429931314158447123254792615291164971824529124349663410155294249108191051004171258235448934407192976744251416509602630804439353787562551288793444525364529944384665316385905976996319021213152385183301045575168780306689377001198073254610157737420955752873808107152608447184139873421312326280336306154280374675688624242495108458800140266274378488258025781170109914327759912621091778702412952384435046600068368769434084156160407510543644043256043668687936523225592798013012519365420761040442346829746012780516451748708461207918074846478656415230300381673618419649369388230812379613792771113321219002597869143980130790730095160523447195427542256914783633392579445058096481945328989597308069017071210684014244432661611784910697967788149553469747415033923629544209378811725686165658977901861752533769272363094908552838639686226119023510192354201644765014991774635320602332019973462848439543123132343225370489224270287143731961310340797364496717738171706722317106940977748544586170025092960992824673942072799581637149773784217531731493710942733655411355910450660519817389226915357900973327191779878451136543209468480434290581638115088406603080678959630268026918311126752207692097432748960100948114289650403627888292086855927590193598988459322262117184738936880539125852785205723652116750984460297889251034709555015046997855367036249276698674980203602457268163554394650843945062334061986885558285762215216733137210604278197879952925009062693232244055494880131562650740715541446557159086756386495230056622647424309879116682731889315848304705912203214955616884981723435968105273907977732926127702328943689470091636071589998999241566431815216214574456842547642653714799094302379827116901928283920524025287120696583476753826639124348791535133450679978168075844403085733041316661851042765075851349386292809854890828252463887195146796854742710449912574995127186569466599671132384770218451751622589474927122388796977813502491541106133627430855102648297454299936889085667252024919037692779721088160583696891836019621324271290311714463887486790240643556061095016220807487556913846387008399071465162511736895112972799894026143575415420215722363232942107160589537502960969502634414022760098130344917628889578260567913105262533525169441428614642927050653041253540173725459567486096404488412997818981718215671104654370370886043134905070459278819034447265629753370609293555020649478344476323436229922540778756559000980863998290900368189559315662191349903547875280297786405665366391582816692159840430112938288447728512494691705771550687412691253171682089804888887685073793310538897529671109699459953536078210223282281109659865255449187086227628813438143718762877846653614667057699127030009310073698533956897429036209882093153569762636539715133609629629590911475179073228859738495494222479831331492733899071788440078091973966823739801962177167680879588892147250286378187282226293343106660594641529269187552102925177676244448405724962084827220188112624042353633698403750051970998520212105827363864067014179167574413663850081900810214665222047703583253917772893092449140432033336871635761820420002153938880109767709381037971294319728197329026491586256763915368657469470576750953895269087466618479645729289074629418120078362455033404261957286695862226894752201568687013883800877305905632742743166053172435529748603922403505326235198212412836553447118043764822748656169884656929818440208797321190365749399276238690831232665963419233841839061258440589873876908226511154484045004599736041677782440746577916852069874935386822219982111745633807965084844851407741652275281018186911775728723814328095196935377060166310368142824772684101388839873200447420073177694433817433491599092815328460922792971113441972908891363951233056408859188379190770305628380263082422559055785413224147194704282043455180899117903292882145830739521423468319912726183964168792547663009492918501856117979733877448223430414269202491782560289663665178440909731679303331575311932138647007898357007993393702512873465707976600868553868989098828743221736728327005442486744614589851402273143562858855411500343237166709598834869043748533054862198897753213886631827396237880310539170846082903167534490318873149261163129485206908116889230342609269524277925237719585432851157361416386133826049424506402930715416963510353280336984119955185203337608819657789787471715124299247462903897341156815190004536851349977382142899563017100205830523960651791705725726936706711275192866659835040260652895330293153099510855633195947440216527603828381334032690173248815620677635005289207834968324300943501634046792217491856627924459390287457719388850485671173411113882967074793551327810688921128321350704097182100445678491027150542326039510820107205565988956040355359737243888902666164147899195278708332868929709255807978593651095697536847585597558505674139308458670024391569578110112258152660527760646460613378190684354140692264500779432628839711558876948225813414817462627435649433415840853033924144954603561467745511216275794703843963844911142582363069418039576957370389267765477739921790590125777277203101824995508428908429823476289224294367847349907442314665516162992064536665588926531221341003818795100051417827683576020550333400628398455980700483041726754241015831925127666680429965255240508457445074982662573525901828157885185130238585250196843120812831635849520109261848987828921174283642393808673354008553015114025595572110571581313896880869884325358913983715581329107917977799738474144933089850024978993785880328387281606908495233022903704046390662525526052890302634248199184475457542004148373461729778371153761591070637285269591382849077082391721159568437156122559965890371468992374868616354882163802438324166433855250808775954159936467835903652397128825464675867814583686669844590945502524272664219628409391504307899247278923806733710546407723505585292864881252988870091161183303862116071253913715924731678392719367538035087535487354262837831998160993282620425847185150144967601026211910535761532230745736122401009197085071143081062463425399126276976528288831230540731505613070827095463123296336100168874315767738727794790453537989638588455212060699927000126236338944022877044847015123061623759820140520861821188074434886187077822532481261024882488175165048367475392381216069319057735349362246386625484623997307941340038761186739466404012007945475634992565406840096341919645171018024613681809953364604095005616781145762458917296590346399023881815190992881531160847393207000623688667876843519378988138868321376757457256220262735844915300896477366888790895882829203343673384082455340858159799280977664438086707371306311153333100047330031192931897827912430716301838761385383680207992110588019774289066386466990270323883323801644006678344908788689967582513973277391978594529855142283127944140215142488970393070953151145374153536326831360251703888284616727344374057541124045023686942489947657808744238011286257308409059017688368404811624415727186382306813008544187176859633127734176131685460647061092758242217555251091562494871484228613248103669035782667478659909156807780512008033644303702686780927479278473008521065661721865626201363560838855446544778656578833384827929528942443681223827671793458177030388384880560212316808908937985887032435525210569559063348027627615457171391888858734706058506148736973628210630103290866331941477722368961589982106983089387667834489136979150297885503946076360027077527216403729947914468653500899846035348879757917945820636128421308840173800006405990978724083893057460987498435999539406996051330181711715881625092228657107797562185143892627651959370311495432409893013162243849630649178289526839555859541350064432177018732336594645841100025318704785997342197109911604415284837191501526644295995292001067964388602978736234147841478314825628397548719100649408931138914810574256041427740083798622146678265460830427003247351567544144791201003351563124215310122918768340735215344110108583746313987582933094688281385922400094108930211829032030215870295184595401695364753507012137660353083511392533344948769514976563456916397391102400198194442229131600794510481234028794251057325834823626538925102755760767638855705700816110419291405025445787814193483885841826903174621989712404501985597628527194393159117349007712732992719898561275424605739297407951235430436270521111053567168221923228510110513456417711958054518980952259171994848149614661524080581946833558354487425267820923708528771255898582419273656551155799093401232720511210210138693377085813565519798785839415347454126869925440213648509521756479600807117098740496441971600391525309056590028865071148067717847431562608558146053721691291914539052656060687652265150375224699989904725235570336178089581673128999814996243732600398132821932606085496138959258761255219225159288882281286082614581733958666462510991404447179289999478504562649510770400482992487767513163278398764185336059351058387832798147026472872114550032295962893305633026864728569364001984088879088084766223435671415175849694536579141551947079462660929732099641868585974758407455204101336725664039733691998025059247007394796506774173087936618967835189718514768453650063613444446142572720210377193687097779961791623121113759337150209700261271717391386053012962113704738588607784964451182314814846604995156109278585472278130078828154072316613529300106149459694818987207434911250919197544373081703563362160226653889967100381203911762543558710839405062207920985774497107078888620866845610040207040985191195019998276384986969123887576976650509830900203616710677467784263226800400941124935114418996591901802513233520762224129977209659681965722249947468190434761261148738458752973988738972097815295994820368535286022727128677398812867826254885286925071170519658961553819989271476690066559757061077724306034974653176337061549559219980546537691556670213466583893498951454192345365268097036954088266142478704633542968184839048952570699646443187102618695944821838800670931071728899418191461310704819657826098438022939024236563638134130925471694304181831611847562314296974025290072029562028991689957951468031174026868031855293091995879327879963877664572467190906989713074626543956294531910404031232614376446399600469867464558640630294015884344645813050987108524984527538738360735474417938514041296044522781107823129254506188487525202216214645699451090103099743782782757535796104241458416490373543229564969457115853516187514832199966905905696869049469856852148602051192447321184912179852048903954802181389659742231715520048016155678213833351170554654919421936965680004125722957555130375983494218324011116052775745789778210623668116405067696437829645284311482920758655753901128058736910162397042176944880314432260680656019922562810267499567106566630253151034573321908998720945601661067913193799831152710323888442012286750463120997625119703387012632865208931891664419405928724319271753944511636274000787619503957982723983728617584842315904908148819366999229947994279972442847792310355084556894823362649814501706829653610419365200611999272827024025958163406221224821247164642243257937241989150525296811869221539709777546207986551117669611994016607224405477921728490924384214591373233936139440069023673266338040938843811413122701230017189375804203899309195004738861061835038554219071343518323411599018945761590897704596243429003805734109261801940843494934420023322435928119625046460582685282036628153321574281138345769263650171165884871065784751588302646587388410758648110887086617696528506216496627782856941456733673458129841737488004567148458315002359422132409172514801759819158698897208330743506895239654119461832585790035917183102621145969454390726143474283472498592205645331250554790304174185648483561552636429849405042162389319910452520996150548118271918272683926489256191139258474505877884357846351321229342860401387473100560970028870012760472813269247414080917264091395923230260502274551030237307393655105842612423225546825875626122547526108292661680685071190610607230887336080603144210741638699535413145766013609701066865480879475267695202758940580005287982767491541057332655591676576719893883747808758500788823024565141296268925369956839687096699549999639330293362755163737574595322397145555663952382430658152159693765926258796838186636477364973094607723942535928093065707394173881253536492469486262101473804462541408589249989029290857606502340288212837330130674651254560015649519146881645549213185825684688276776140146326330885265896146337721625784681866747921041811764978397604225861433391951144633496198968879525754256690781746166897560800009433815079102778740190331619094158340467769132587264578002652514032664264075841935059265243037529287534712685477485954712670462404540250079217885743992243016409303754072134299431372184814088525840619652430828201823594469537202970959563370877178087013377635083293038461854128645536780899133575536996816549805406045486080755832718919928984562814173485498689823703269987803775452581426996433593099575054050756721341493650188009324685133290894438096152341806045081229135253682205185492751507146626532030053934915600464400319892068151824367077539584670055861417111940404717480872424737308233806569685447043207214347781582732084541112208928465128697862947401832344801842632153684175791198133534460288203731299956601298632604960468542500272880461102168745700054354902058512044227368326600970145236859410077195770866156016142314049325478568573463218920321553630920935895904712467722859521114398217050086862357348073209895270815236035219786718615983971452826521971212884488181002835228682081050277871943674397594465440470395704962586675771278356759669164274298538463647725064485050766336806893812967601070060786781382214046120659211970688860121145777104414144568549425478372680022459030713156831187039079101455686452597063031839169446989094196838122045390927753049541366998801536837933778842203203842457698047869247055443549046386135363686325400720711325197600550034002420861697511005753071615350491076063121436024804743701894026546830699937118800823279018597239210361373057394947099725696797328779743136946381441718795863948364556411104699036124089909886351139637872052743458778932159058440401447743869886511127781237193459220992166319467371202489913548383313029642179098129790873215480116721113224284034928296651029932270321163240408175321740690877367094411608633739145517809741613067589733645509193666795092106009415720886267483190658709428364798644224369572518150632513468609979210007981012995063917471473150840118335642656026524541819017386855285232009921927902823221726120809859872860394658680072184476435032588141655564032229806927147160808864622421631714408135554055606899997140713051483927668908895947946333151699537397940973738439599605221346171455252610261213999201086472606821128149798722157875951594005380194492789456085599002028359658465779895020005541606654022243883621528783173025123139617666097741251791054716478630977385617081004653657922188175354174031300629766828005603003676802167005187126662950488356920763054485152816624584199089993867334656195876975786413904811317717823126622972193569394915750623855516938349521763186259535878103037063460336143247060885694161092810363570436394260813450238152852465662387345154001248643605171612932263789359544661019044941318648586623759078740422854839010577611568984241302332602312237950960374601843555740159648303526544220562113575684703079683307525886642344562566773521110323316801324312407635351655083137601496375014737097377817337993746947849083871615385665323403559370300260531836885101690026356394367266492474781784291875878789800956265992541060911033201819586918030606718458802781000494529002028620063057608159850119680111485586280210569836862059480003266378600304784143104888048609833240989533231963061237376543802600506966026606246837430807332496434587886038373602127933329528287840936598279641281112033053162238074641924772095713325376738436938507210817122137710582577832276928979587183313005442653342415812253806326522560999124100511197058750056638645675949243050980210401798790126739288671225162707298668643762055984710197653351731267673016943581732804337072082116596477092121106283870824589764218956283181173860680613789865848369780357558655138126493350903394392764575308337888753847565781478759855174977021794289485252935011289046634138719444741837495576227342017874929364828504419136844612606304629468440258098998177175866755054934158881331227963634320176753616074095321700382696096557306251856889021498112654106339565565563215177026406770855445994116870085863036553302584414634703932263877836149978132110815979118524884743260671336700858647511190733786103830676600285685769187437951861855298482681510017621719026392937977866907590562020773096454300925670399950272949076723943835297450085870346623901700029865967472392575961676599662442985681461083661209603746198377238727387403044559675708569201675713875684387034542396679216539994408479948757492557298515869801860179513579573866436891259310611866060509874283001730166403902785602068742851972339063929641312904875451948681075705916698010374588522169086461433297619684459768522678989857710322903858220109525284586841610815305984960474435236753805106492772660904222521885462722316176134792806151252093079763459112111062021835533308258598237760699780841726353436915345774895877051831517956592423642400395972625502414009122713755986315023245666328606311034497529315408920412499410615761934727696419957075953642548558188102499606328048198832736452172248909179508226383055119515668727806117266413818392383760226274081836778236389858328709211635534438449576225749641386684504286672122152627956268725920416318259486405103774361408759914494483786111055124112532241376514122572192426085735149499088193890230162626988123319276887046393891032997532013839375438154103755376375502526386152593406696805570347463063708121164095173360809269822868153801679636009246012552809507159573600104458586651812834366237827060547465662324486809483700025225331587852790211456124701628549478140555040784267460365619257433705925280964543056511149082432062774645723735143370912239172289116974518814086430192030574282569831566080465943120701704959028033017334173499356229300333213952689645938747588256553472876096629078650850914940991040079262444290733711312867604617237630845055107222652017115399290331385612545717902805487517324613898238328839033850877378796811141042030308837713333028945255186234206932046129284907666054755751787763425251025606340651906982169783717675875189982310888670961222213539122330894802380074482337731266139131163432730785424108679692983281528003577256351891566371386922491242864955930099976938710521627397388472950485366035440467688941111676945835841427704986076065679773314715958794725222224722981566166234863972757950724231964564933279026426509866884026280411541968211564187168680722118810957768693268465058106959152614302206375782808918787953280460583322626933513193239618582131245212745488039651257998868463530936345352402737037310278447242744816630222197857636427831111973599146413732000891479153056924528134538311184137677865900452222821371223659338844695226462947725471010706598539319138384745481601171820364913407859330264354887020994094465876423480818009236304595257999665610525494246815444257080676781314752193078266100828763406055440893988362773212931575895279607883615727740280262784562718785255924742355672367303061404438061825532778861238048724975799014476569679954818646760092928527427304815224840379533246151751083353808689208382757824008832303738810532387954728425106122235338849061471823181117638042453912314516162129723829917380951788877402990699622691648853195710646412748986701110493070446822318315382789130815447051872447686099439785485515803422678733494086565698690403108364555432301175296466188565633902970388732536651577748268884082911416756038340616779196573689080286705549283422175713266165694392051387059881204964292962553754504922671145704822112207329659918323361075265866752947607973541346332582807981909534879602860659137735824889391020512095845330620491908679184673969714604759164736289999037542846140478043945141392759669564310124742663289324097157982621300658866965852020600155406263972039048488565610971942237144039777610996130962352563375013415631096787992337512119655645287077523919917766163357832883861915030057502419012048278821420525973373912380440043747907467714546536079277977708798327501558244004039708760987580708883631804697245464408599638567216571122424470049122157127484786191072456686112749676249244121064359975112650191621885112811010284740405008013852378733963321472328313224506463032385001372778468755824121217277217965956545851486630297329836893308710910794196635702898313949791504933385810265619242047823954011415746069148451519141162578033979804147403533883210151638699903655298101126003300332707018374268510565593780335074042687413837774598182096903251418807404676861136349789020625703725419397050939294345432471680684505569360841198072466421854227107944816819800524602410823127094653404198187300763686143903554499718473498017683295707473895912735810232951266258637945422898969326440100017250687231714567654554096074700704156861327723313860572217950140856761085579477369225221772627703784267479870023026267451465600295507435258012045770256789041271958402011005056952880457197100561633239225674314583030840984434951607202527931569056822377236648077504033589588677475411396542605294890061684824522494068725688148356544535623691048762645700107097805186619947646974417203080459120075381659692774171437037277694435619456796870091184644563957392468315796168586687245404975126206048453486704541805996325919518128781365768069324951766038769421032986172725643967223618250382675696393663002339182398063031740875616059377842257501475999073513648711797543362405315946273232216554135685291229710211035047920253029102215764311149385152787424648410497273140162930345635868093545438464524452121148940293434023349234474337531899574696176206914684447809274999111178373129111767587863884584252849327405741527674557089406450856639111372713907337445335787161998011044022383558454333379229861266782076705625717225281271437347613882853600580158059941195564766216757535101169473942189485651784648607521976150487292146548287267152011812327548235182942931083662316629758971645819169522000118207168119924345240476534609312511154833792868362414332122169627449523198010832491218954526516152441695580885144804975337916360641423780234717878770018930530477532838326064500791494639929406047570603108434129703922185433623657853768690872434738405762243694077312224300285169799116551480053634658959292418128109386313708842564736050822147822842586239427324440006018896011772092956052678071927850251842711499460671883796854942331479460533888433333262369667137129409644708291589761193575195842590966814725019116314484986672993730262325381648519834122064654028440052542413154402569219729217018654537078270465880137119298040454987686945446494555433366847370517376834014838274112395143201838892338848574789120390341898201515289424271296046218539171442215020013124972631653198612129453605867631773891789068730854704550596603396860332441249335872462182374610765624622273593792871081426840122280097238429436087603056697511018617764619784860434012418055274604948322433838356241178784735178282366964944858308140640669996101817848401352552353125485717019038076718593164766078070651322869200265899230027613105443805626995454555108842689610896461264930964681525923395661717317908003859979327296037279432102490808572822871156586276747442610388282516751688138174635462577093681481410104513258719561909332314436122275346640843432537012522926071966414775334346353517273073510700083881625941416619688313429348747511725316209777141141120789595707982568231150549373261481706479679402426605298380583918112333015501171713651218158362998160865863731557191919965638797343946057477710397185203884108564604642587580129770730365032029770822269487511506689454703666480135308670895457838730571434113877554485651945228451806183031278591976295362919461230009534578634183522514043052170620781408507127325048192467567257318650274433856485336122695960385707736497140517903992123375634817049955655808393738304894443940549353642561052998679405291002396278311417480036934408785278214841267902668004393630973781143673613606675335745280570326921594331974889479849017522339770095492951804329914779239143724012547963393343250909575478697635980892281847739624260057273945131208458808756673780759321833253408339089590924490119733836990770690123825338830935573299280552820336185054509046068131652260488279206034586921609266675847858910144743667702957624710081149993676669771058166823085718302825555477742324516388324449505679939959163982453795004651610495890584095392772948178663781689417216949957919173802522073727939266516215325618052634751712703998851452209283096416767628719554709813245312031272620317696587464873418573594802297663949212027533699294101899598298925807519289982206492027719644783267257749605508057489435428826199677099054614278138333806382890797134925572937578388104403584677894742617808200446708951299481728853124034096906017306857161368960973273261764848363575328097644390034915788928010866280278150689355008961667766046395531703287139692456471304115050636393501891515333261888701870909358691255632477838818578541287490888520879582055777067754343929830576006637012411114950604121994862577514585366347392782914450933400318333209143709458245974647653551349262635841934080630805551478386572962771347176432924996905589288679567539753890427028935693562296156567847555153807601595544800673853365219040079964469508045036409824891861250458585864051101900800970163697136206121495428063574824117021509348501287449479069639540627497312376742313252410599771543413814255121790830122260917700110825077672202883481161492893581911910360193089943112683836867860781109372270569780960401418351779075639648421420558914314924171054877965820790282386146711014246207933766600270724573089705991477077278007591762163601543675539720919859147839989741645712710935442431279302266426057665476253363529182225367231060471924442883273978961832241506304757934114909790069336680871479140659303869951055737860812911832828307970830352875404057802804689136094637715453224656473034300106986716905048929084972711634544971394296223948320482663143975228253185520460212917940518564217811289638745803048830009010936554866919840795410838128534234218034273958268659287409868676598894487458118701436949782225625063410323926854088159696232797757040825512636101364343679597470563451939934662649685373553218122785322698013007872731483065092336700112966919008011717948922832113430636302805240388219229743690432196851981921957048821097199021449164545144488315940109181994763653397251526555527883972238098079934641908854491220429271847782900296738985150963527207637905518123445458368491988283920824893697811698106778677863263114257638689690657591552691887356727160579982979194606765684441776227541784691801035647146399520250649418111368192034159139628411997790171379229751513929546286547622184284548770261089830453813230617255813238248292247996774481784577740735966482957108036349490484105706903962570981584817622625866156578396793766472983370328293307853668164775077805543995598214930762935606943582782767191989506934539547579484006609811555644713944022688555601503586729979936711879140606259321364683481830182518080135758082239126943162122819153070429651903528525416728806994687743828153244282646449820412778793384446191406113652032198687268852820026036868765319758833591275024843342155689731726043149118458701988311816052279504592123885141137216169886829347462380063560847028581331736858804126047286866674161753693679823108814425311161314992153541506063135422316087579365239889656596165762885803526062032906640463420500925672372470740160748292226567926944789796981271124338191147514720692418591483654163481913682673927844915642717524199876109981526512689374983468175363904031623993475254677056287462732322968281326426937288556503020802630505357905456047492229303104406625162746856528255103190907500691230660626143410594950519949016329443077341741475650174243153927056741523662951486027464036321906269636005184972340115548879569603245622450138576077008839404209993179058972314174392954176238759649174888272363654765935067197087528222978705224804413804975340058425752550996652421927439766665803972673668355238294444085817974068612627038090502460955536829815439842681725188629949176465762318322604867749646782491407338039370380310235281540281503151805763445710844753827444348344123936356851664157289835700002247163498365891498761932606138054792361765562407656903007099188467694231553225441770822059036943264104303489182599076401261672073643195869565656139513373067385759741954363993517049323266249383665313917315922831943190836089226047031224009670972350736866079077989975545317252057153130411870699910980584527361258108346114348949432849796585688635796454572452656991261504037590765118905435333528533837443905470801905726400648770544009384436972791128403905791943604686544595198065340454486823304417734959152275164926981607110292563542105957429371202285166268845279758452053047287079364232579635587614198996830696336095950591076604970084942856877886229627726211326878908726395891781562514183110739720085888199447872088193108274161198459768468997154162361146690230128982549412734957615780499730068862901565877790423145749986957672559641261706961809168376194572628537158439794291885348017213518346637816407733070850157404534366197616703182844134016464396535881925108484620705975321586515998559160867050030121341734176664075998083369268560323295630980804599208157690120234343102951115445137815968068001105536777288467317409401683914811878322431246706109484503127524331516779056943654022209449460423769710926649354690517023992016241834129934506366699669990982128031243994291278317048915268892254677301697490118180559105999015251375905523521352183888020281514820828798519803072043318633809514729261546634554187698570941324131093942786122906207665517742744277319632283985038314165961693205580203404660443293479285635886204919296707429151800355658199907297628278240393990552399006267164983840765475620452651929718756886410791602408775190923455797696681402017608813172249573759559285593435488929400750105161929641450224927921328829038181582537590051272204770993741242865981593429113379783696910590504368128755710619301442941904372508908043085935387288031689078325364100938174096970186120218178714422792038367534245973060418819470525250564930803418227107102604237885969985430773592357917128888464875972885467502861751479307927724429641810812954034314098152950567085026901011522175726840178084438699084371594247364480741807530978475389876762473145927455454492236462795952217153579767503240998556076643890585943396311395754213245102991143429110294756290134154178914224474117513279170980413731242625479961061913919305332593641924401530572933461939053054399874951661013788766895195324671675310901647684430306022215136267638478885456219251582839077485358957481352772989350086476988265081684525183554403991523412378588261629931683510869714183828376897679872227712921539739336579999829865458266088743131148541305675094585033075625664903849562338701644731161859495370785169866258218622812258231009470738039290770785959647843375196884751932839284677555696540698887034568192917283234432139074738273027681945136055511697947028985858965120972460509150294206049484056811376487932904254395706793090449878535483204416289774716176299898664689224929605192754440001689278330009358681717392074831353491170737804544451692474813407074867213590501976532789450723456882232776537240505441715882201503431184795756067774790131111594322986048525147622019368280712414045736846632245831970362943731808591536373399897405275695393926547954493216349331488569257250512204869911930352501823857572553340316841630101863347113230532844000232963555218811321122000448124595666747363912967298404895205421768485922249322948966469656611889907810227877227917898092529640558054508485372723800088092511654198634354203065803265085602039978611514161418952177458021086055210046042458402574917336474604195779931526932587253326623362328847331290368475785999663097903680236230573525367164346248492687250545528489277106709903588693383840815172489591002920445957470511768250748063232919293012289618790149300509958713232610459845490071830957497834990035180173811040886457656486517247027350773221424847589400947693496596439280939681623135176828180190627478404759483431178008586403877300207291705077667169334283314765444229512462411444438582698194321556479735599818303206010147939776841767229151578588486358045353290531689294306727171807560457136087928735884130486682261192936491199885116313777081721164993651491192724977783437297975474246792152754008670042789500910631473456631783902173339659019592183891698810834523992357154954832344860965695549656652203670852902748392485769884870165407174120941375946126416964267950059159433740717062017807923736845358230551472749342756946939582786276142889552810220583574080388275102646852325903028065955935479928691379170676756629183094319797242937091827419785137222639390886438914694309197544890318742635794074717435976575399239089193218774461446663478407296099691525176255901497261036144071687018612844984860655329628366096399001982913015964774469644144102278023362885686364401635881829868300736067747225556002231055985655130008923303032465144441636723111609065804675092588920131429915851224108090678188406067413255276574648796651854584862924350635784194643150438633654260245678212352377246700978185193195590891835316859017830062635795715170850286239185631618836179393644947476030675765195782687798491296698962477185671075249938331857534399496044219548426716404484114173085416202706581264213726757663902151445235611934962063788518147618727898698912319605478275236664719086034710236729910773172806644482712538114035312674877698603432407718447663171766122786045111712714152654474233481265216713155355436279503304603601363627908455705673545354202742169940149769299820371800148292916334784954392980779913360171937435377011405666955945908002485078513127215977147259534418976651207900315020835775927820066312294120902544410038306354071595678713313782165286300678634432743421122523758259247202526010486638670022295604805754666258845201596086742274735292245887046248530704309998123259796068790178898498697628445369034356052941276107026145948537182705070669123246520229730882301121341287091154796274504201628328895722648160255451589122105473761554456488175670915051271221563775416437231224778362186902319569365784367752245376118566074085070780005134709794712195159038594952265256128154399844608098369490163819741984428367692320835860951739944105179313556680610359077102180887325192281490615513877131970950950182014432835193632224584256732803164747280344623216271435842234886699270302230420370544673923307415530138979204932682211005419453859510909851462424039642259239392495452779985703459042665161163034477097515317784816940792906588715708007671631109419819019806761644705394658373738093153119771958773219102235995999419542513599369922762557344313935005468889310194559679489027988518768504118540325599131222639992062178399200227619528037721154444055460071859811703374806053771520937895779853739223088430044381612886455326849780969849213572116238589419416937490053548785181214269003548312610578793484645609628866561427602822595425051976693316017923944335346753061661282838536908629816242681147559620593177816446894927271554318420024004128587020720189242856985466266828517178806088471897378931011056567400271084054582648128869795255816194269651768138389483747627361824255540216801309836511579497144833469603310691437576774346241926900723333873595503372933552617177931707095648091262792226707799081374546076753585422938707350986617287304279638961597556218997148875900854726162204252636015562938448493313945909241472140362092411902177788815710727195059777682522614421523168949536426564972249936702493708127743860344820683728110576282850612535359052889959657791018934431051332883746298265128522361802375983858327438468209812219211827251742383236919937645572539517276851974335724368525438880883709624832481658920068660005819014368370119253721895475004096912224772355389700534020559801124160073325229502631786465393633701062891266636811400600388253333900715447143089659631626454790905676289669335521635128771171211750353473648443411864210177816673323791737204319433448358947146812129052839774295915368315146146229440560898676457440632918811115787469207741021645943380836472676371821796857119042718741235981756208262727900589529107568487847628573044075219641141577627311920168187612549880829433712109543760835682171364744232706234509608470482883594543780950522856392640549536251068288324020518254398530391854955548706942600026248958095104353637909295625186928690267354973087747622943088476933815000016640336581159049673949574282902112659316341904988105121651768198596636403787415869683530237279020979158970993368443403901799280754094370853428497428203272463907227273815143079439911693795008031835695226493345222461357293350017014198659426284196864621755021927302155200803677082421661819095203612150836085738795271606766919479132929648675567189992201385077636211938155540494150731966092942082748884845662023844570029939271174337852953330645450611160777873135301312337277544670390849417440827652176701568418272470349414610387451217845874510444938305359596940727944006299509095974178359120258634207171038412106003574173752917474047699990762254674819229817688305746036400425467217517834005037840126557562194620906865140134992652682114566163590064790434133769538842632152416371080496918001313840533937033131385382295751726997667384393247497222837508785059270575189554188093232444614977009277485214925473045348053178481100129376856347982513068207251564233288100750595897678340798506693496704914617813383298139595091114174629710531818712658161363746770800720237372093026524109020757669684048348096731063870173117638830517818322309056880225507338803639586883194558547109669007894934787532229224635460072681547172952516348694020271886834586088646557638309628831076406976333533721806488203208819563327207126766403074817584635035714496862257776378807563937126602645414566067980053990085221068621630460687899001145210926456644660828236561103539372540191859705627447464167675669094294420795036622700797603921291322643005364061214129468029352140686270101253686988494726768528515798464784299434855551919058423391428543592746660870722854121706056695422083967143387611536320678396254786366929193796133127821294799813152711422998996757436086832496394720544835040209911064513320441294133372912918870787906244305837968068899330049779602725993670462663987888161891930861030533272382025869312039756448848638103947184973049271779143300465181545089486353190387277460634382405360253117963403937956814680478065916588107321210407840937615382295355084270735974216559100787881482559206028089403660023801924062227891327287610504951836775341700065327279015697169567175002819363909330312350027175300366572993543339067037437372054353951164214940889070208785855905810729783232754542223512010639935958269766142382442287818408630917644607457760839635537747656604630092022570886071892470026039019297653672542285882950760084475924284504924133164134902428373606505781400433140837145991552864659765039009893970396271438605541240382476940227763732641281173672064720307826049936387882157681879883882741104329748613897110681443494025292020461057580636973711625980244423599213069789011022185390484555737937465692705337386484889894702303516202190778923002616204155900753230412436847172546354560257768653026429539511323056397807818813766141411445120668206744002829037099564907252709105039033098260689316060853206858109249025416483816746919020533041213995344126538418666244000626577974185638860921797457752888928804458606154508305757235819497262972730622462954040876969925826126466953106286757130709524233032666698862366760995951213533000476403588468057153290293417856702681001782085027103596558394734303324326297523402868054533583095804032605609629986597117354316394493306251973432408301334390850643365900422276568500253886897917412350894185745516145842102972545444994111133761049434394133952897623171886852451011267585071033057863571436239405501953911035017656255519752553667776254597145035823889081363936288529477021769229045217154840183669576673414929951280040903225231717084529754481726681568096718970009546068394488206259349985800571620840085775609918208412186732613703197166839234181938555310256996686692522522291198385754139716425613506306008480927869036912016004516524999987694126989750072876327860852195609043324745140544178639408026123345762271640422268009821343433991825979969544723184268604784898722009491927476228988681645429260527323002625538078939609487449889223093051335704657402699419577116151116003976105312089912503872433974406034220224675886744762454498693675612101593743208763398814532585872820445370538095951968472207689650063181003392365872877023101918653041462495786103681297301551499451177650796314435877398694895725521753264729941095040069392965118029534124454233569364219963153063352566890835757371923248340712286938513008456429034060705956530836791681622773711780436401537182192441161645186453678985724577420710372621795121186881218486033543215760367123761464640778400910125994553459355025012113572830108651231004075548707453702928320751490621069631819063233993333326283317157978437749288752373585237546750757983784297985526581696750158550207016467490680031254814727688144344442255038134265583270858934366396654825451442789123138430666138394303270461518905149191750882692864579586334589338763128730240224962187746182258402765834728927580426643775681052988416812013478446809681748837322197256707510665287421657295241808063221647478988756539246819177570587280973228880717215058201580062019772200930918353928873287418399878651326301618121766898406654356788524346794087851499582167820166291031313181244245482887022780259225256629962208725093153806572603541474559672385050843049672644753550512107418111704954845129541808753545139977430609461946981387956144745082217550693258245358734149011154526859973917734315899942000034294436473464947419619048303116638478607704410819969751364905266586557667306410646599892646284752195703362608938766655182998420949877503082572445347912367121204250618858806052839537447409600048717702590423304099198400848140003299596640493716004039199338730623939978556255311410760582517774476329937469314764254346114651370320187258950452796503363031291195830233311795465167700815888642683389591945516605533608497284080441760565229359007691461664574863205357551402587872289131373901393600854897224499130053360826664308385801501651178208630585730264870527403732113741912132193439711485681285569169674818899842000034101690907403521635205467085349499780737282612579732670492107109789518055046199800434196416061914162398356548072376507449457157808489450891887551796862004698376559889833694039717850020432388731157594550631311938020290602946741072681104807636892394773290242198700320757608840211170696451507023644934027311979498155742203114124632973904769148718369420948746806840258918483731816701793643549926573357840647540522238032029720773811439636127493364490855010818969734637416410849104167779694114471540758804127650917788500089348316086276265922520773705141703837566828844142368082468270149307825142814862782399858013769709932367956088757815097196235224996112382452037071519610391399400287973089802796395275483066108735339086603324518033868377676405602532791086177216795566110515742258072944475107823150351965573058524264094677426091007957264008766085902558665874641659579524535181735563499733664380432386278481570264215902340133693769006123863427585871062936048718281328387737164791897516727735748434084776181501832630443683913833536033188774176304172137133343501125876648152044393253145314536514492963219148960971026035123005693096303921836423114018013226392782875638857840959577547616100436283290977899370484077428940906430189358611072767899946332396010883531483138052608292615176586005384954716630446706579580189242550406941123336932971459576569590875497826646732923138716345213698651265362510017194704330431958497027431400103876442713771459123087841855156921661156065596175108413874531689830893460976318692154168244834172904187741220568817902040891392797602744079037280614968325611110567292861231819156716419453315715972390892092113939755349521235842648711112412521749549981939952504228028859827459642535480776048691567234822484510491528807154923529204386646749993773006922546428019500418732386702531492195138555504225197166948774658014137166708108578012111368396105844946907686231099648711195349341981617033693603288464079143114190679582040045369015663694112204893511192186017181330764437385461770216375266045570432827120027585049814058514753823184936528322016088181499682037680518668343527249469667990371970022135865999391296304221515319027349767162379937772629856000215554982195825527788536020178677124369812503076374064883140907852528135658984158805809928381633603438064169675289914565765511960743602603670422184220775987684721172839903018797466811418980908518864669236385957804705938298143595711949729273191446862113863815962894232780794567812715179740287894230028010242955618425649985610817729946292552048248030336549935061022961063104366511906086866782831185980041489853777412186484533160674675639548783596804664904779023015065747794183384007374206385122683938400139646150310648270540204062346733807417597408663194457377605662440347720752292073264891786254061141594698640847681255127676797192118438639237793479397153555915496580320040876840778422494998591753668680318696654460474877758876037011003338288303999623564673215346916868828285775198322844370939686231002707552616206369030077583504212129161991267987232305972155850488407106170155082037101986591044099494143480809528419475793760302312558918470466381124800226298440116365686086701898120602791774983226624062355054625468119659939128369734815749558460721907153043710035393682095778436278063589254528972615848455895570394533544017660139738565812147224336773137832955000075234463224765011141335683062227612172208890593985509914311562664838223346251703571016206739354177668552863843479883661310768238023602689165768221732550299651627052060473529105536001376267360291829710605433822216052786606401407680457808244593619967389006076064401836627726438150362481978471860529749307746451028536949737401455551050725037691712762969876208697820142426503556339897456581363415467461174294709420032883270404026700867266108734836707366275921752535820334621436061058695845891812683265017637720739419625792279240774226771846325096941171051316570099461862641397276067657081570227698173987518486683571999926694344579850667551075722044361595722419618227878117851603058241166758404465206881649024751379597583577336164982046198302398470439223484790959323686967354153772394018768919776476150877671823487180856625035502629464792061119228273396033083758621487911422721118306705608859595711188006567376495258740131175914368839739336030168242389701104786060923838216241173206957694037637145049808425953323576641210123180311790758008407236555334325182706776009086823690324231979750301857965045582133389427170342035899605223053330990344736841719781371216400138324554498374467356411237942970449500426399333888901228234301302316015324571090423049519493987830096422650545906154889797176765331352567328786015957043607802013424202001900454236773427470191877616957892927840203386470950544499745622179155582637352273764480489356376824876726019347705804513581512384846284423388522048515846519378763169328752436942985521419550294511196714669725409994597856381807258251281354109062369372411752669670904257309360888672246848604806193570988358480766451945613078776724069462967145990809897631637915384299345421072806391191505316598631266259302535787157819518528414750427934745415917636690288093357315471826311042363796935780576246365994899797730042066541130206473997119729980243708364826747540925641924588134791771026347620950785565317537047912558274785109588102104061895902283391419770817572952872700483968971028905396148092624949404176548195806257808111745384555770160273359097229553005620492957822913277235037360806035416324979703181350949239885521849477351090037639606059930400199606590945166368534755410406376692434539454451192609275713872969842283319611973938817585278020792378413171142755342695095929042458651628699652844115296931436302507384341905765167239952470566079529004361298502801328225132680429093197211688928179420571622006479121224989781914327768498608641007773601622317462955529648526312424232996149749803556189000733276818941762860818255386635792853213021060865299305856265251063173576768270806131043861723500717804360404044811262772551735046187198373000298838093694133243374183480989696811062018394769351419158247684616577752973341748685981406098160309851326363109301351909434656346743613679725197494154270919704363589844160651884424999735294738703807571050051572703239454490026990105935156847845293439621447911101161664746478424613012525842872806568922252227560391505640890082853140571832070745531630818666905187556332448959261447860279448960628891472859182933889180576180532262656367040628201172306891925796065818389241838701153385390078712883586309527857488273404371087680374151046792266996536257738521813838911203944999300700370519244992041537315838187286249054126636061037607312761203686561180756218504636791596926147469884709388161981519994962449676654671848442101016583494556955846772081604785328252384617078176520427489629843061623110431332261776156701517104377084569686188419488268499955040407237271851790921370519114841225666222173219956890627804670845138018318076889414540932237960096626718816108304964602511563493169845450291422003953343273111011134433923800440523422215613670557089284358954844390089050303082513240122918968825555849094512197928406508515877505456905072185650293366547352508034086453020903438180412299083492232523698098244253989942100953019577016960563748716944800319403428589987083299673350142075353472345612685892908917151829606014385232657505805063647773596570642123886939767371679391286989192518856826905663888972038522267793266867268667071216128180168966612300025355228236020011435614720814457984874890093140153410239817235883617354998745519223573553352587748921289015617779999851123786879974326457494910635937777551257752352322564666106276496294001600232773593406305112268654969948200869281436003196967172694083075476680632462020855463209016324169179506550231586950638945817623848880453265028473778539977501830726684311878343214089130789829653253195829908348826487963043644978515232504163988461219831899282956281523465638249485300590167620710169834473550394201926748203164495000483091362047333061647205926730226584498263044699467377175584725560421740236816319953204555502277418899738729082956808798713099511385460555988926233214404044605907491742144243108336977541930124525651037209801696149061622594115059267850757655600967579477547806621553568825850937193314557334128528342664435987292873084680412712509059370938227299655706406972102063960339970305300553130817373930851340772915171229293022882919341529110166627005728189577208894181782726045723534479228033902714892987956666832263906571427724906095354505879069544147111876405083549369772902702508543166574014817079362653515390237256685617128168310258010902288437431267175622899020901323506118976670483707397100223636635919732584144701978913312385822579401169858386369787464284159584362368902493710285044487763162721585895820156438286392369520854589244349924652661634905089141579046913581705279322963475742663272968102932800028427803012838646349741199125532933578946270857149342721327599398363679774370758628278131704523399684091729098252829912946212359994926300616858151262886298275369506466303126096786834013188556933229725508488036668138764066667024997550230203980046549585276891259849534856239248662771607490395758601812313553934656984832191439991133391095582624713525982276842349777271316147902509041963612766038810640782964739231580167443600065220385691624520729312323406517238766788753014699199595927447045805883948708379119118101772552888461392117102230689572914826502793878843669397602106891503710532821590224067693731550533468724942247483471187074091783246029996520807664533506433160862142004558268385308339018246336142663083919184960477707696354339396094466583360711962678507137226173709815320572610605345077132054192491109360713345071512681248791403994982210960276756082808455885159242038970385733926007850795048928938108370465487208681980791553546241110466762483366096763130452349604404093044615637741756863796462356055184486924802792532169992576881512671476135941453270105988269995247575717964086402645413433765862738220049232005269507175593780283541285174422877443035508807889919935599180222699979156095500753088200744481444512989713357865120951610166991968071009323992073163247962901654527079360482761932282369558247695942035938245229662611373394703600288674944161056440226333385706164515272982104336878592739997389113738485997356085208942222518722489722891262627988425236230791691201002249658611291119046868885071191498483604285316128992024807658580548243329364452769954410291981833889527733624302211961408643222416187360641196375619992127508924308620666736357825224987581652073007062781900062228616955747788552419162273988367623150858038083126712404437866348951260486652181830190848287597613366370090016363840094950865574109599260359162749855841268845968737894713495674116344957347404183626422965048758383714892575678392090170237003047918912922639146957015509432168094921663100233914544233376202888919674321791423197027008576086829775092085996760413487549940585660831966035882987803535932253073836744865678817266339019744118710029430163788394439895294372657795172289174964822361502216082191636634957542037292523506490230791546376275576613445857667966032865033012792284388627888290305571466785922016419098808500104331911590569429925603463976641455231663867869279933086692164074195150378467476746432317787096275276181885422736094505119344575574944889251866028111139612155227392347534282642773766102901628282296514873799890087517126478360234366283181113097788330329017048455058432221504043954786068612015481316793986424182461745538816657308600125459436438272559619376360261838226983857808210910832722222078538584719767537927401366741463996888050795613945414683179485104693701245042057363560889798121212254401845904964092263855666930900260828026397209446910165798211276130461506633750186581238578090792217617991875970783463640828567620366766184296678570831429384609031615662561349083707790970262250523281211707051932269360970388893847363583534035001150342376866342865360103303136272228776559183712960547175551822967890455349203490321273264887279249700557944707277535594366988484765660670160945496066475843074370694433261354859637552644058892957550434993549441045578646559050615209237480433346892473390901168310912418741953836886698695486459977576088360034283307933577638474986330230959351942234422852801510406831517505377403321265611192387865377305860238045525322210763081370933248684361471784390805236130638987537360920706023374031989775647608337871204520095373168142536208050247876578063827254076046656922751039248130915365196425809097177375286311045903346170446720942576565864055396266872431963571449789542660650169603296916217192860612287790756637939055314493280418985736875198505941560075142910432173817022617925763149678861429622253211848922085972987180043902509797879657972052654899248658226833686798897533519408838253568915070448939982535557700921094203820170968989592773953570988856166836702816994486924012402608379856654674189340600417103544967891478663551705766189192057287521076275334413235632195437292684064596164127508037666391293308059391535892946222523479055697446718059737018311087040354583148875483630922072503586821863031659202515357186653290040358766502783835451426558199123832787918657865764484855119771089069582311697840832428437005645572439293385490266196637121071605385589515864780232914006455379012601797460026943249560234885057898238834378711737884219499080253572940674551906326115156143146097718226133351223800844127323936547364213835493140538416102354172552787774864564346496519266266483337844302875572175582996671634579568490085183490411154484131756413289755965979793906953659135885432561285956860443611158953915633862414738430295224332448225742700104463893766454099151672421072743057063759599597923873471128984536162143114902050353828935454001387758798046191993594652549694282797747810324032819289402673265578326042088848212466239686877936992690141570663256147962944572123860701144089308600651593990625164291644408905941664414460978212064489260491642167155370004399954295649747641508969806273802176004699998253615186444096910773329650777568515368217729436590868302218237469431027589319160100478738767723454976801990873581603212040469763205285646300528073542687792384777526168345267024815948134071233386179257391843328216331041959893025407248061004426756389152161420578965805935342805013706582080298337774571191637719431650117427576121593068602843688091567105489418638459171114888288142589552337225327110547301722944193752807903539612352676784134912900661936838447761279527343422018515323228261806812703174847039376808514866817498024032526462745792871559289308682892889372999148419076001243029673634016304967858779016103134929034346142065312141972346177577198432414822517036374810185722397960854450207848264718536802303210155333767785899710363739363128548300017587149497449350851004160832346921675212944433068773793316766207668465773466494232031210383712166776747607430528577524909052562573699737127074064327896830937661186512993853323254034361622467361841378157412182665071688952495889204751064679191670666950987251450271528190046071946213309836482627513932918171443071432102060150763415838703834837228943736380664087057849269351994022827285022341651931217914034725339739783294800726973795634661175602824904901295593308675486729456585057376246150571673673729533005828417138739613698225634818018768333948807391856119085579344972822967495617375190880968278050881319547782777315845555649851002490822607015810363380777038540330084370798550637182995877113918156942365565680709888066524652414394041583955653082138459764394629597978545204251753524660601905080067312710486783778241573153878807985445578699418966855455629260317024937538935163817575107979482780842095430331886565642165111004288705734258167094931470372296573824657746857824747419052085634801754760127705027443975094313869970789423272310332618427953063486024100206511138381187503381859893932986014582611590334773074399522561012885001735503467091698235440910780617420422362366665172157715569476049402632628032028234014053218660469242332346279202479771274611582774978468543536172914008286594238907447103917883744721702050546353694025496517949767778356240561785637521733246321225094372388562223414134802897170709297101682822125539002395542592749729323432866838350623466013799890018482483743450377628166706635311254983382872528521837911067647357288157715871519179502626205016545471948594837982797514710007806563614539915062644268385254793784818557710148008861236453282453715546966829893040256448551148591000025663611288134470285943247349341615110387117068596205600985594217221948827643210714603487917726339711884427619448514051471609566680328078000836215833141531597396510549926901985242883944062892172658189973922223393015857311535598436207498686054125520326901792570954127131135753888811567137031864654845689191987251367920232993015835959625842467917608632031066924344798718111016683127069698635074363651656861870162126150349019914096574079426077129541560369471398404406775035759122805831203293900785234398957129150841625825225569372785541829066564970279091005071888814010754246022889037564453438345305095743179255968072631454562096771440654240721749899008924534719810601521790011153842655559858761195721152651121710203474228254556883238447805927163038285604772048820504308513959019949057312518038691428416312230005126211730971818459482585304121444154827086827152911920328411726049866495332544467911089707577461980727963913730244616621401961414878901554232800266915794336803967450986533796900744581000674792214464086822543463642609398652422766999876978905466063182317026978473630485190621595928425227028256320463390640845938230471082214464005808929396382215073844862594955251778798050042393989059964545645990357717499384400087703527528815919949595639437833741934819020340904230006378696283448951420720062993682670387360870018016997426502336367352771508678665988705400029834154181616739291504959080172221996194620068427490557137218028555971315017794221166238607214383849514498598303600268120847465497845970559117516801657821446974843494867194709757579032311265351135953182008187920012373186314150363004469067989666586497105597596801465007991904247569804404018727545920924795569025061028657321989183195798337068215630375081475932028451195934308969953274749972367269774555829151366701496575627864794547114743961034540967273195161308228152278252456324717896201817776819652883121462483403345927141759559798556447389940999610663023183080888122372113025379968587474976589953005514310744454876193971499816726510608107826542798403223445356046611529365029289750988185192969124168147457647300719669460072704255422857770775049335330967723729104852729622600941508349450462255645473498161409593193991090143894656523590521573206259991312242025870555658791811367688919303109489726544455408272775768043839571937010595545019795447226733563187744738448778475022866833513738238693590871992515253041537479425274348679487272747655124892905657654576157143515739096172707340888918286830316690985424474305459682989946107325493667419108789126586162333249381789684243645018157238088400504172263470409721990637177027584074920560341238776762949000951407417203213620714945297251453429692068688269145867502124039928433757232300023585951467900136484521727835511890056046741678269380478657097828989731204976165317873238197312126641049521045985106246915469710486979054592100336109910105935509023343677075424247156696776269201818732073938416051791878753701409351401346918648481309956545904377977071326577692766642300690229329072133264341495611775614404359438676771410685144583748815016051714137248616326584140954429259537817621885225453853151640907413880867265699237800786565760721541833889624690065178458752609865446548431337204413050603404745201760947498839470266944051303078060428748317390040318292980583697565554006949171951171409064994060943571644586810596863797571151955536491455630251047537342441689248633489711597543822701955273314006710626408378318812245317351752639006395987705726483847098000780906569514273463938573715791620685833823990248505655722558930732288846679521086049454205988469218105005369448934281543033305411882338946977366537627681404271015469385854798896641032533842780079961937199017998707022202088417920686975146993869684892074118284699809311308811260582502940579650431647824112360715735562306835433049473864511693296214156342037182046528807283241625565473516227840897281750436743769359938678421485121199195973031027962758202401697382098819333167893759329543016468551131592825379222462937475462119820888975693205540688790938479047527266613545970663896066276435236579348597115856930516783098126125647222496231490282554058049300745517974099717799145366110699298870940546422922887674509610233363302629380238223785890769378572420405498794990150743321638526691372037146962028606486102848791194252432756108872082240383928021801806357365949056502009419534031562069918350236779459901362665278584285741581632301427916044444217702845352079244289155861097537094668380692307378693760594576303266710966221564394782501188628987379711978225676744719294971162298261136710142159574849927636200632364730617670402270725359475832274202569034594187291243176292195089318957073007246038202829344317951484311483235914284902280597768646176383534044634176011677685586506930280802603586794280026433123233973261481027374116659147006480622173561072550015482236347967599342836047524655262693039377258191601208736806086470122860887770027090460303634939173148723386365104334406348638600615605688734639530723505347073109965377154301838433514429967929508272725241116074960721726802861203667216535564893315805378140340350001532682191574297878616950095371028954192107370030461584830657288651202206758209299251811975848201707806593671604427614434569479420860048712546848776339799007606053440033843065947648672907809965590967103137270165612057601506410796928785059145884598638139960566645438188340443347166642630779084117748943493428291604232762340472775144405106040627043397399744595709635361694172816490346034564804080993217372026397040315612345699548635597591362219783591150208891507211556799484657737224493143329703346951356305488627011206268347420506708350121945561937516372320326751686934974950580675405519737567106524271019419608725965618184015050911998709825755739575200443832045271883218607453780249409217489009599721368059146551482340143327278374822338803045284559610441369230013790265864308879296446210699607398495762480623665276929262919727232947170614477246294677727169556623656379164154998845747379400181650907588548081422675085070236738314629393083122814294069910339252860480237438837140058734530714687011701127719612706908500468623839049075837479175829421691222230364467467268147711424311198634308991936794906748404887982644701364026834099140213643507479461745309683496586230250649141211872404365079577956130182022698486373720933302259486956940268917536910490693898449160380669707784804095358525218467200127846461936905696836229368479280322341604878482456893987847212069822403300892956413965066573589887126766289576182807092182194861758445243882932570425810034571610082907596393663999250065168544561261833379637879094838107142912704491350315528613417565670297420007163848914223785159725839738303281189033943876535422053540842001625652430081903946251097367822788868133049859018828661351957491623640234142022102969519564109224867623619517228622137311549377063684678226381414904140499488593550278933571262485500227456175885297375836694349195151386112851770369242482479550056446460759658873737549066622632779779324571390493001542874488360127520906811341409241557170798118848022222610174418712770326389065787696855523456879063443463492171198245357601507794852713557241301174168047862867977438433875215229358748866512084605243683599767500326470647463686362430171223515428478684542572188012079326491554098480121500336656384795208623780124657265576645047939454966857650842386806129106259373836967088596177045395588844782908025592848818789802175318201039381357840260888302481371061585835739636774412831309347550607058947507242755466906809104950603214934380049656451642328407344591632814503392650632100769088595060855510631368665258294995659122586348465445046835404312316485326175477434753256655803664260801052769540033324102380416531949278659457742931689814813448748016443024867958549881857811324009455383831597685395398317990614057757082289193034819623904225630674549837806842378422035912755309616570365798999167087906880211082903129624309405063619604463966296087142420536232590343856771201347940705137511819107403372064760156975955565575571443787728159853200216758643075234861880056526030196086082808951692158817934638949649845130332064108463340853326603536979887160350435311334775613104368867613702793968178794274190842026953838328657175466855446505242643127127534801172208277959596815528268724268635382254372531978034997232332165022755323057148820294382890678343645017401153616930340672706984782952212642193098522001986189148153652752675180929848013799531812917816657321115271234464166778996495414282043072991432705691198400087169914974998728267858614594630941005827307707534469285800116416511347170713612289535639405415568761350229911617772836900048162746061913468928669061625654270350564569786150090998091259634607494028788573630860809809268727035263786195993625869699104295326065136982320208371555200874879849469436694746601576976120528082678905934406618985864415714270345137352601757993350011471869153903885944431487177098968912290598511655614910371441102777523809654815991746748034364110810321905930769267093115674165373094804630096210950607837614304383151680764869779385490466813541262529993950185015431296891808886618872784454798670697936318012848072808379357718985372358490657396873192400093107602595739804738512360806186960337771522718381123959478529042345814567081706450243751645352566441873526683814495260811609580077068452370358952521438245824768005183700258646077758287955648640487627720769836119077354564837557436481378115406948950466912261306514991774141916096358119976434588463844765295071000714678954057933113126486791830491150355520626888334291776421006670798537927405042758208714821280429459078773899742362896914961906059601067215032264536906275035648260832654038868328019106310046787161395048709162252790834859534706458274308179957345362595812315505631506976394029424390381420679906160611316964444058599871042293662330327476240130183436483959271784193032480378748036727989295161245026568621191528313093109247958387764497793021443368031312085545802932960731457692459556632465182129206526189354156503692870837759958941462272991940773430206623498583749525909972636770335337897834913426686801617220967201116758973875517903453401003131491416790507641279066496192309729064880705006074770278031124653951376067235526495067566977825397381058871084316532906951559000498641702578659641741901453906081691604076248774161713252271284887406244949425126710420972022655979001693272216474897143024417451584575070441176913342034512742565632446703505793743584016409293304166947152807763391441881352767701186058009525480772159353174511221147219306429856349019087735122613550353528955597440749273408874378304185821681924533085228365883389758805391152214595013669120678226041155967482560157020754186639455002908672965629106335020650735375812867931946779595937622432947821091675178125354303460775343600891676641639614889924828019209586718821957241230879483524829766186866019536088174669036518518081187191129979879349601000409227536155322448629819211247568162012388068471353458895807555452388402763565206363638758460514961253505587108973715689089069762652764712773020719364827435977342921766242728861782893410475894185590002344069832837179757371208925083629659405169144168411334698625705007279216999853180245514125520124053732508652580203950825786340948650702448299188541589891668895084028684533523402331709445956762340815392760240177547618148120332548952413632727542994391028274988736705929972105335823934121654682591006095510293911866943402678856941294157231366043147604196219135107061526597311989161538603761962298350525643369861904800374531789218565236992965412602563019496482433253324950272826357972779136779114705912134210498648821695002403773389746406785661162558482753262365228185094407694376966344952964331890519562560791497763357842948165085718326256253889658843372242577248301820415644946207473175811984384628657134580304970606351055824114769032553775918025532926513882461516818612061801582861874719463280703967594821175991857757679517089895199309667436840891607946854383671460298377914371763588502293604558218518973453173826287900588342257337297305164395865438150600933752849510888895280947269416437645419941189515888714919629958683778440831331590344136824855910879345899146195094104147588085419855022750054531400019720724460419849193792186869663447363568351659422470116272231333865461082407222078738833724421394885506651396616487892430341219492386974901505573819075629121826197465966410701795471969102110729600401239266352032164089078437418693133157041519956118162400623427656857101661246500853773887367792664541201232882235308758400935803717506416372787426746867172983521761802977214155871533358609451949647865721840906602140980510677326788930557627658684355173996558274205817765808044999845373287537621367707341842837047099388019812220793766194207341040352234177770043701432364357901977995800581523704885396216428220294846958927139159255166599514749658680519040358914807735677845498021962590211996085037007680689808644400064194802445544090851886416142271189742623957239988821335324530719119629665790254813785704742314984177655599404090164683804748849367930905215382535388719413379921581204284167244500469573249194946909484892165212350517601858609146698613326941039802810051996003653881187533995036814086568504572880968595465388021509889794104023184365617069185174615063790316992007383130287291897804134026700805254563283181827016392409212636544310532617460445800253883178275032766458087449757990554191770907431578139593992586128590935552962066999645834984566656037191393581656360123847648196292458598879742044826629337400888575125652547315916135082254059224337896902937162115234766104694604198614615992807731585096878033760299409792225382684559021690453057782141841291811609844197989551133645843191627951206237785697733547106132568597700901922574135228101070314889398304757201253874431435295477625951058241542085087836737150855848427521252503825796741518408957978079044234306529863387237583984239444306120840621470337710231956159104421248963848179117505843967120523335267085458673358089278151364897914670285670228159305097951300836410526946584324214245053326672488100520966561398646232612290825232454107264392741685703747265762501061872494134214883879974175286913111100108458070469517372168955890957930208158423933375085879233692017680642303402795669034868107928871688997431683235172121992501269238140791611475588410625118378140971506411315173287488059588865935681666111421319311505700188385998843449183380738000972372890150617280496658747769502764503092172091360608743517079840521051128511245939048446124915916886011170248175176672953946393051043718293568972637121349269306852504751536041709343718944609620738956598634173483593926737367802507182829774623534211618511090396463599835431119810372974302029631668143132094689124597674383798807702654523384453235410307028239878193878419608013719868371208994806592906314948182226507295520805721272053160943785554254467161814886068893477655682280288144804296643848434863214913964842959406673172313640357169069348348648529270581227780030642176108842711836012789900408421793489280308108452832003381664753515589590082340269976936971015672350157174075254933097026584782192247706191003941152208466531819180860156050540898322402338668175387885731523078551612106992226989378286807028344385367969055135077227767756509260530163483503882170427643730070350561024342745276817655228144417476369657171752277339205436671481106954899141864438372904443228013361816203618470063683554371907924423215516785476429897284711971106823516522743159762432811320897835213018965052510211539158920152720438476885246232109500562828039318816214197978521366621714096153130839569021752376175905852808970721272623607920131231439806825484746237553890229904086847609454666835893731959944525693199605967714613558446688026970184878725532785632542713543735700591211103025608026323325387025740940195106338741775419770320436961289513944769732272888575016458281467918193382683014252455873808575929151088988677132814019527092457521425895367501192649814063870008112706415492129195130114452761640243818869781330717954445629354364257470800247172408554371655051531524153156024160140393370554318944861877963990528264042019716933265344890236015061305353613271915456048356718855729178162706056384577097207917606446109977119056526439443960457750163803076658880125066492486603143372151492922524096168949126639472927418745242077289757090402897441768947788612156068796740359239460462881669208299155325948925958764068552205060434603871770776469132936211825847679021119250293145280266522628366771611929730632760161375411541744357095216048331077217516097623121248671665567722974290745304369040003591709213284363684998120108193781905006794347544775634228690032756869603617533215704669198377349133795945011840053705253709870880430579066120709035459899995126204496807716605596317894288459887498563296938291370057518140884869946682261737768828948971069421461395183598912488291171278488250370242330704076944930769889801924829585705053504948000058485835540808046111970082215672466378058730204511294591099351375905479909383919590402820393265365932766512468259266789267639547914670055496226242755843427077159444426904694049860917398164436246471866936391724127108855728662904610086673080651569570545060834235568195510856833815527135153060736788586727207190445137249113303930256954504377954705681717111631443968312104225722034197511605999245184267672544757759961861298424253078735975849782083439684127401163993932394153534830723693871859202600187926350076035444428682136561419344804917552929910269842694357857954117878939301574815750788992558119219340943717696526469927474953543786003285818258813353418909258162878328613762997228695137659062057059290187965919264084497800904737928819582447718502319909126668356928226334120834150451065509502006516230805986395593881724500134820007451090069643042532744499197446460483557411322693613479774353342023545508914725401958841419849823897107666699756868596908456760008386519478460737054052446349864557434098249840795314715358952308293633927733305886474656846039495439647409629883552520158901319577696180220112115348661472610361748943910461149483708837347074221288432347201216350149400260123462220790038377359850438413483651423488303739270308515162705094333779654503136381571975110386352341159500233431736060132009228052459378943655367594647536132052766409849545714901196094947565088600073909678999166944928269455234263206105820028836398579810627477178443370213931665294651204374549578905578958568386262113875677192270602242516388240346444134950424846146880548716233513450994740702006673893760549717309192689781883250373320051855549923670729492996962287969698565884582440621256819843527313344406763913957660653189939179501601394911437344391358472907774675941602960963723198492863091514944848416895513423353402805338966082271841452143227272766158096022155908624648087761722524120176117940952143438490731062654927364705055443901305310673139829192256566186897714927224591423597124000001309791126001620964462863015948384410894371535704863149298598580194420343772239858384143991994106585558030546591664083094246764405382143369786075700603870740867801689443762169534357703553094303770680816732066331129428287212943077740372764524729316150854440164894000009754896087023657476115472794481812185896739035116249502296905331983913050956932018835371018861140206210684682410244197414036708029285845105539300703359337735483930659743231325592875851396254787386886749980732742713329954706582093680707008491859815646062970902767182797897519147093900676352259025421898372315540391471559077857387334245675587693922124763760597493991589549571390303393048143160548256235091235053299111375284741281351874630079970954579239676265810773127257145913816908853470213564396870256231632990488416440388571367883065817521463954687501651282868528182276221124097534864340196923336468600184567284568390638665378884548138108496300000635381118434047588807067715483659545257641669156848157179036644057678113777194224620775172938913677576943146705677559680927768138783443551121196193810349261902276505729143153158459079832338590608911885650023543053579139153271108041183377211952191723522725023908809977397635475541846217945071636337408332682876740758224800418958220373197883410068800993532754500925646257067155885029617078274271343546317244883204097163586184769789553135454906630127128256823578022973578569451772183571664978634220812286662923073275865798734983462162592946999567210071013270271873050778169379538782891578082787997609483503781898651379366035152464361704320730606109314149686455378621307422729199766177613963159873261522832546030885063569723582104417486929320549357463296679636597110364287680258014525811576194714377662329145798571140843234551277124451680914206262996670881987523584523762870759018707660979915890358697098730418775752814727847057323159235745559169758781517494551566813892402576296546437573112079259270946624867297563316641871704750346083170635562598870609843640753027049434784851538852934724217598692815503695048592850833322797022987970129684551772549131659951978164803919796419395856043912883039820333453788862548966522832486638890806677898111712047644901957895367365538547865072018747892398458352678709882580404107222017715099411037407454348863458343948779137623815450806582948067383693836116264559885808044948501571707393780075873759770892381863696588803124347202654464182847269729639470377633997801605335533718643592149343205012659359576737339655852860398206491239305432240276854775412796857403299332646932875840435484187913027131239051244803804941980330022203622169995614484411174444967001314468225175888325973841354071027523660111056958491055633115778071686418859639426537992114465525738410601047791290514912460662610748554439732295438493255206857848005516024860535836163150186059402383372513877252180860111084376380517439830446624836046201026362639905843025094216264128354770379927524633678281660977600029528906565087788442840040860034901133414701515383827086822589893576751503305710669075113484574420350680461880171709382464846117453628631827464725658250321933768566025565896104102752102064923641154116035144109236762283288945365687269131127875696697311635966169037383656322052450435107243625746306923473325774394782856810193160150921695708857186977682436638220411630132098661678098158000506244195704335127656496572232237702605129348797537784612207263045492561168891589021829373946889674681048296800875236246226922141290315814207468141485601917740781367358401257241007309110133081192721260287669402094964102797989464714217662758018103747326226232963442289689764729224221507699666616332446004981837248965371048245020434607549106108900519719138792745517901012792010280137637673550688741479547218337953563165769207326147496768648798904146675701325580459313676242473067464753731077654911824423358010977422292009614411126848407419178832024658797443673695545989559575777904453653734646797041667645253020848608274618054925447272791834076613979395570487707686510551971187551902195160033767140557061775721885010199157273337503441576957158711315235598744000344889634472256069169247490940651216037086454690021325225950636023105205500904178781628995047591733383182916045009500609322203306577352360676723927369000763251840101735061614955611267717167393457219037103462682434462259386107451233838193912134392296847601385349911432106654264553528764142037739511482081963211099782551687812635232188550942846855793931888467895204505431787643827591392021554454867717956500043324681833585451739976071437969195756978929860187615027132706815906367987949752481462666624612486497697707072646474842230137462669340309950926192716975982407724776419013971655757954472580811081368074388606577555233033519886048980231324871365582049593099680923601532632594266145515139801905966123967985425511233555035971520302856076784652652571551591738143761267606505339230301159793171206575930034788838231013137865290458601820288607514608696972041103965164939651681981552730723463587604025747047018387752572280838254242668309223606252929104039305249384950821873631480013518651696106783209312678040794985278888927313033849860230407773413248539827022381943882268429389135981395472911207816207975562115628311496126025438631885465824078906524221256012800635085868560231361227987760828381583701353097790733160320697716937059986971941347516884212886914830386994204028827962306375214445849468744227662232301098298220129348805571157449051871880205053044250681212572831663762398507021659556669519896889172994477424958705125114654268252848250365455292682788554216504302351811663432137947376671903327415414360939111600543558872054218571099703454344488293354555725365066545316647838332082524356577676866429028741769144855822555651511465482654585279626147657996791265173817589084960187697134089994003347870536512225460870285446188396282903895382704815667924710959865327482062510706277132722786301703759514261019041888146923551069186980647195607829090245995308539384609488892224864858722422041611926410347828930924523512664891270875611828795988960248756327182021499932842878283346734992319857994843856504240696315718643431456197120103054928681007765522275338651770205099892304449145149862831293744563511516677471861696573530520621942717303836832165564724250127761389349623376957760338063388291552439887729833598597673818763997105851990588289236970924961717209542379420047272226265227937226815859965248578871161250664919036942719264617821879476487842515084304865342489530998977656106750768276524126403220477004809899532045294191386359113569430867932366051197693054342128081988521952843027453358305039839890065892433036503301152795737195252192310101008561453772088012606147320969914157927723398910390054563366631879796844311618917279095963924256618836577113412345553216528257593752400256198196416650036221450512603909859825160753998254980616890284098348961538721854469499624244263875358609612013704296589669196793127259960410747276074051644559296843717177703622025957025821360333056782684931980281078881867514133565339708613642621482022993836385930437184173448911372424359669614627253634032679537085163610197882934649348671426473934259930356336844541910846277307320125920085536673155036954849564416868346985351075429446483497563429784732419429326427628928353094785028842253734691169810005902893930027795157149722631526736446151704114609737564011705591145116533051776854997637307193937049886204039592727757593663760192638039000423738331559368327951498899438021763924852649847051736023242662352523654454683711665471469110035419795941292533135889718847915626881280346114052365189318297150890391228397917682557843212689646600241615807925172968718966460999638410706108104354980470401142008720627842652884769347994674362544267932030980567123617493563284654699506942536324498583780336286048661710729711260709780545571389760907179536797486859283294491884962137358306683400063295499661447312202397299880057375051218085817003349626936807954026244089212423118700694420659442079489448375062080262507714574865772283558115239245366102522495315384866726630020716056147069814256958240615234705521527238878954477427614843004965266208480186496720424347349336164466854764411033662427842503971383504582423080251252515229242090281780995569297976375106619084515294401786397522481563239817859159452290744362129736562502180508750902434214360329772350566492495493840875437241833788888056233545005065715716822659228798623651853618310114887047613102761679741680717618065881467250546395717461553370132662474863077900719319145717548798971298185286205899353787802800506094593150731664740099931593475996352855653911865169154164730318484495887562599823453790482792344207896817030628945380861007733664420584925916155016719188189980662833960974379744871754654539492321051942376446978621777175709232606453995271129858542007433552100790126312289811194910877278224079964647578294987053378286541809716538108254922208396181480417349692266158853710915916784999265796313475837312293060285444249560898457441172053524570836553510708013649446009047458136622628994414824658710961948485706521314763782287342701046358226311670238779986685390742713213118916718214554172151030162835693210127275582065557936549097202221619535578347982587800653564736538582219961694585111480977522534904773820897532072640597014232801270544686556776588905905734970050581216760179268744020897531384210774308093858742971004928097788190315534731079037911320934605226266558560450803281937910318349019626928625113888220198020657456816258797557988353399596454030540370658274364118870159638480152749426227141971782848559298055252252070239176768471807681786497146682666631324865299593133140477355491147617133354337765291662381837824020771329785357912513452871724264179107589940124389634085502979886120879429528192157446420042502104987335810726713470971638363633666782530261667440345195928738521635384438371153867886386365126048983375834634247688489907946186814980220848886561290356906480823020354355231714617649190945641253729192159717844363349503876262303053343568678619815943435259052474055794792825364780020710875959959357505198061287694218695186251267307566760005376764018778744184235163066044812413345878874017950718215200668027275959437198677570947824874594532212123396793775634530274946742497060808258564416599511404131722372347609649891949095847560011789320473783525345358332046964736635558943893926627358791925579580244998478893458700384009761376497611239632434000536795554647762223981630338327835729758611442017806333102187965509082859614839626589353674753663336671772267176271549814066782486249412277994459819681638361475451047296190151830737267145435960027573647500576744751060308632761123119597466593317074883989841133821163073012394612951977114344486001243609382597574252397132938753897092368263722615364548017947953547312748513237539996493744936932022509690173597068365611665282154685310372639497849815527181803297946638565767080957747913757107813368920041469010813463128067013667512530712545819204672589779037391333944320327456397267762493805284468232998351090674521285667593130052677478511770174072555847109263487563259293113313682218506331217712720505187907236652285184888493704358941358932492076184686329201197158927339071664317778018573840852636240111455504586974977440874771904169797903316485812169889161911335416538760968806029874453417094767248221740894350000122718287445571823790237854381324325936151201815912099597492556001645871398975930879720704965030881430654679517678020105281784553996159445985248889073555149238187473634522003534655571329255278636332936779914101570849366258152220760372495884756436472931600111552858211023571561095003572500755273732577376501402683944496116722578450383545225967138894111655947620448379522217250374381996817972710668873564056416812394580440746546395353846711499716911607531292970131209732096668838513371109906757344896981293852682603439984248108139786510389909301835748127803009093578384359792389139553451932187696934257928953241988002996388608052368756713728754903887344935676931352315217917761786429922979235839707876578048248858723438492967186627494025206244000077715965202595837036230746270329580725168475154644842438292262446761867109001975524441936774993767433887346327442614696682658417602483450320530706014964628915748816843219738860544115872118351323687059364684446835437515116385307966052403507340545269153600933261753142462147804668100969450457980168984166015493861645909548699816082560758822600850835698331922932886852837899193774637973828437598499120988902130777744669017072925226522570899679279141226823276863777683763238498510089328064517063787215347398819882793426214061986861420826495096780508486076913055515449860155908956211786298644308859755208490703527250724298172404524440214646207780862914743333610266004060960913699726147088549597684100023958610518537215969480790934586857248744173582393799568656754547215583750651526936241999528997869601574741226410036597521505772233510980394342439451534876345236938761757907942119362487675717346202138416221492452165745442261539936571760310252517648830906171450259828927929806198008281034764127855159847665137853527632251251837503104476439496146827621278559064580650027744256928302164955152034650487370726270996141584066816885198147243315238428858957558075432043176898434425645170524180500144194616401922111137211243623450005317703397246701040442745916506486200692133877062171531449308340519890855378168933550523246030901018775832367891333562189981045904383963144444362294948250296075790107653801504358957042916851125179564001699436350070705844362760770502405382969878585979987111407254668398307928245906545758913534910908147840066035415784216725570706034510280584968745303714999533099042483505090199668169604173443203577472367963508154261612329662427245075222458455715609933726868601027760783486228445228437811689186983842786517500455874860986623080724410698922901955104298778469672867900217636683802037998353545637999157380481363904193450261319445979277444773092155779319626338879407779362977705003856300795633339094883689282989030227239087119107514877151851612607863568087991812719357379131306024638859434680227050543518052107720795275951235756948210554580633262687202485556021007384529500315220208280282926955339051432951882445026281473156082088387333685085012519324441624706436413828408819717662002040218674206708540495285170517958599017164539468234299048099533361727605723622062553650442580310708877495750417374430104284198346037485356392963937844204000002964986415649074223635125133895654970914697832554164974545840817156057628681273817685264244985520984162879126574909202300424183229332139355774568370161473420033766996887178135419403501810801371140126603796860537498447048561635870631819117836776960209972559818341488862417562389689519479422253864046604362985348102221844534653902686308887301718804338330983573337183839439980399108150634134471430966646675058434676506472849725147421737797035840564201124564238658065678802259487473757348436029282219521429705510444865251576210125116176186109340976991051697196583173771395977247964749782256178343554528890401334368657551762684732999377199501901227264459362596667752711973715066799479088908314612367993334836804940922249101527601347819746078835968778374537624787671295234825389643652886683174884000608470167045606027978382471018815346866944893741789090422803658025985083331868281147468124212406214665134138408438691645144008465696285947805088590948996759651637360906854214181492498550782447269983869474749814930511824420878100504258430367316361518532628423107524697373399963940520998252751260485727128570185461740240522409910633691377303828162388971386977516462887724464616425758608236402151587177000406848158644086491180624493743093027509776108089102221281102434570844738932189900375632026776075543255630472144834525541347162775705967164239186612556168738767959992874274537791675117963051309222651693175253648329252630127631619432444644243381309246957462951095508604061019862940214691383165307293700605237618870498371359804330008678320373844402124820666205337920759971271837222731554366781887288574038821618643444259871079971734505945904162413776428699623030704920141735968972996787320424455254824899610476355356757687831019878154675074586657469857943170800413220799437339776853565162076135794906816867348819766438540850058005008973335236496460554994582467527962711113060801540427703413274628694319466790045481616677127463476337838979030762816562565933771996489641405482319422274788629113905415808015800945774010110399735150763330285351976689881983217488322507741122891131878028478812563296764649192705661396108794724473618865817236628496130723643564402083044048902913431620828028012910852688374557135273039675295637676571754655507662783700678295357924551815962957014048125572568490732256927458659127125469294203649489252410153373408537019082070673292648702644273122390664999745647538737805658653269078535932157537650582226688763515862869775600508052238083426441293040971540367323231048789672718034768610213323926995115788103138614112268900186688566878133978310895899337177429475604770332531458164485274458384806601081772361560728136847459163147345519906375623191336784862402707901339992648188419751290150885656139677672052484219843270295389718417045530897437057953307220440225806518617499305348365933697303235069374216164617967489138844500608851087939818125477667237018658998632199840475565311641793631690086123543328469802038122921256340749537135989611259600117763114263205409482419738777476694757409170574601916833943024924159248171180258877202415883199252283585884554307253844271617255674190876414604592452414299272166563105927232393703307701788612447818718200198553754502798531623756891805151852803119048856871377919638320183151040891969485588746430888919253912086409320263744143679078779937095840520636614621569438867989121952788352992796386081048300145522940743791703356687829771725707202355875194792709678693524243254017445223990431116899261225163409687865873530345834938209092397142359547938086161491080656004256537444897483697030367938365248240907109152269648863083259331028591442814702605933860682537002388326341555031236007101973861695856791053339473298979209289281544369639322096431210648955318005987947883929759434924987670949845361934479211933927415432774752586606102404711702385396700724063691929860537102745709829486746653456499942330825897024152888898952153896473011557809165563356655429595436083183512244454986930081673466059789658868910847553424020470566058321484360325167889286959568951649516579273020812465519800177531381554288569577728321996844593146491812508932013610198926636660862994358701585341939275990033616646052725265036596913416262479286685646492975751959613180466635191470938429618518235409320261260912170844493511001356836263916347032271132782028074929548826100951921884614662513435335706987450812525774450979496089183397440739087151320249255741793539795094743611778284977611120067059413287247399878164859985816510280239426226026084919000996969362265038752201987234268963084143765314428051393278126760009851708963849352978358788462466705598046123577406517461057198260405261657049231312742678800512717360800183353970994639729667982826774164251234920577681114505025597452430329689898460300204721281765231248228087166563703878563043304291659475178478708236657564744767747285027520115407220309201235584338729705366612088368255028431576343446353008941820933633043055212937349445973617924982090181886374963223047025169336199625101131769901268239736082342506583435483823761493188550291852566728884992111453303160869391987659084316236381543541723432439716010882972814954889444127961918150820918445848872382065965702245098736141045919134657493677516891839391780407215439465574924546047408769586923336333354109487428033322741529530559089987158000767812473758963513852765030199444748139134361471768882386558030811702596963816934952888555669219489523062999502486352687659765755667626699950775908340147766909556396781756693360452037994525988723827858147195642090842814160421466514640015581536109917040980395133313052180494874851776966150855320869875148511764663280125850776239339071050214841530817104004100544386936746830969697210204965023117599086972421763893962403689595519075196925525052802989452588715081260639866604218028396744319395391812715290242191951426507937404357520840527779270251011663945249601308660043051468939473333277712874226771363842395918352857984333929392577314218149299473274864627538156208989066603205037539518465245166538701732544196954960394934636208815234644771484817630413070080249543265018193825360467201494639477974278525451418864480152532630712606600495403345960449531043610717058001488166080693480294448457622552027894004324764335759018391198877975474356419525686655808152949851916279365972001796807270755233551707383409706282466950583366065411660426953047005531734788180249199394808977419849907383398433237814917530128932714277801998302361197457427054232946271765195731396749847549113080364378974729465965475788276143990634648442272056492777152902685393832465186487157881432187360082113664618475837637382566197537032754832189095038994113765516286117222436244130449754612170515033491945936253787795931551510712892631849962045628292521102886956270075805489909551399176058382851896624695709437079173519278768124493969223792358835962228161483887181241304830173260516035334613800744719263306753704052539587320577400045607257581629824913189121963431535624910854052765630866345821796634768282298305836092766884792979659750393637428222708429092243949226884356061715795047509722891346316878871431880112858459710101496675237611008056917662960811782410832035628441290869191579192410400822130548397157901489124738981645974380532528241287938217542910640581928710942694532544560362042982492908634826578772211691574633745756747441540513923891654593066785869472256199790174443612003092421278095070804451499466982697007685331878769315709000978362371546410653430350382600818299816447511399004202676836947711058214611704778636303725104251805653077315540114432772159930746435858404860426356669713409542078956392243395380097554241962846683645703959779602324084782368536164440880490096099049871019316623798379643724092255634480230779659256154853099271420610694966256447369243096054901164229537570051874655419182837726655827854333977628762643985417223844888486269887698565470276890298217945237735764839279601366182465566919370003597683339103035436059272127941480901051034504196295090517509196580008704591357252039885780846015540030566544960565078626681092671729813219789194014013513281322479631003827478526926174938632583704935832225980324722683725692081278126982556532445865033428570747821855912448699388193446424878298838816155913604875059581122202657317062212561340481195569378649582893118757864679875117642564270996307053453662100440255300449287561394481442808279901197690958682218176704855809693556390646417261451429313528311384582431171936708977577745268168604474530760439852386682518707632491506218054335139292949689768136637174480797769223323575151034334637389261164061840385728432088676184175773956212084469440904360210939435195191672343493097030080277647747975767122800573003698147845830427806305689073152616652760933423330519689191632647216557928760154968562641777069743340246342739442435171658251113020798987624669418173601927420908810395021800235336480105871083973063225927516544120197681763798459801003697793469551463073305604720157115227323870806409479060131185719746636185981218889227432360110936252795285477591822791186460696493645961997825254333954529566740125989896714714284069676941975714273952175932892331673041818523012850126794784675258443305665738973868841965310170834977812709215383349465738830896114725894136902971437931110664697449921282320811063717866876661278835471380333261275374860602527456295556394954851710414081532485607491806325059510999351530974485740476147022601775159076156134429330082297822639089320577182244459369120814244353346714243461337674260124121917103136538050528549430341908513302734509769780683204529247116897293111341929269208961093648665291819127813271817452765580898394579044013887317456905668995740935034055200973934465658906910241753549761632652264127095624266290837853180669986039720866926815134466081397054652526485754325782619497739947073318889807968521989549705963943701066562533721381230526105828782652294213765156477254481641309781601965191012813563791097440114079868785153042947179691051369326483107400913983624435225228481179315816844115488645140234346091787653348341355357924475696917325668479658621253479710999765978212536556740813003343573292120254358354277841705319542214543057546426967897376374418940342426707747037967610989133723813022039361165874940469362254075058225662912760553106304155912744536562388968686425143952996059649789294021576296291106073551236175080659390714117002732683085260979450151393393487637074634416812773858498094158972698703786598936473414102864211339434825423407775406506473524716210870079203530306505211138096948488441722436424418154405681919143321267246811405262957970949478676498353099233172978932335307138694034819663241168328626126053569797753077310457653328158307857189449647457764788804979077621965577571733182362390668292329401147953217771845898884771547301103752407318924189369693335993270497964497251908853968051019195330892394900724416662978421055778028144297246616202836163109149688720633681525184911394936504288410526733507444113114055266113631798476506061742035832207586481144714624165082355573438867320408362581423994780994201427525307571108143091961528882238429977389255319822772018970575764642215457780997284602458952481069793057804215417565231670864142510860038446728472419968104150593315627353622370061700507816846383380910657418566161248959355414982735774794986336493457539408951691324950587342979980919791232766020062022880101584491964626091749038530106961438787741325564951311009628693384731030454091858931783588784207252449935914037827716821780400770492511390925101583707620891322807373387789648471132963088268697444185237023153938621010192028150993165399167613736661984620484527615409842104663690405814430951610237832790814998525470056597009818658890501488841002298414397015085328084238909697529466337060254010060687435933612365151221627819634413607372733262580746735354732929920290793154524019763154589587703944843839158000173901099017288818767434523929228753801008834844824751832209087350056340272428982959105802414960875153091972581758072621831038450901242451095409439428116623196256357376797593829136215048561691881492729935611902414955525195168120128440490042910064097957685542463369302977301668695880393313459701034437681807021928469847824788818392371223188259885001319699579818801560280655398803863085399527051644568675713478755828329514093256489319090629801970461529794164731725624736801814867846944532158137520041312225142508581299136481006246624140555434361291993009639727515881190424601699473180917356760660674468521385521948253961844841666595324073947941004027743626733859378320116901787313758805124120454265903865967320330486819759820411487975571702993162421996476138284130693443059745703364878220766605690528114642281815547026764983050579015620012708891038769463581895412537555696656235993149027044715981980459344593744215216642493352430991988937867925705339134973304923965580813040704944629290429509543503608719184059199351256438156081795160547421094242706041321079899480268725154318242384009620136108395584105296807896827239278074425021739213177184516070857209257673678967342959795957547230404517032706090292075610993913014784171941306589687359221506300962394616750968973074204536842415459338718577714930208908751123946761649628203501774989854295259292184711594029752584359441708913392383705039777187105665771906737287214447070119052503397001156645171489597524232443681447158543627433602069412245178506865182127211847311707346769818597694721370429405201093737764877164284117030714047714060335002469846201025679275728134713394891865551126290899016835325548813786056349798543570650905773549771541008849289430742675437937765488218511198879053412427271445068560951240966132346777854763828350214565219470223362730224955848888442186673400015065881015352070793670226168369276378963745466666773072799143128635521900594623288996297344209209454920936125680410379789591243299364630448033676946291552989041323719720807235461634207577075441517011096268116658451932604827436874714807602501491338651048336029863105633466968852595979288652710141117538475965657278165302821669989687799870861043762859803614630377180081366784550373094287856370304458334272849346296387728539399755715875099859746919733845888738511206162119989245044269996139798387743103551357274121746710647439643852204443776561094642568949779297507566179266752176497307755068184158024188863237858443041129657328661226773993574468738850273827336837880718326841181714749000090979850671249859002866694208391476333995578734723626634732035904270423950738812257289741880455732489053252120313126853373191037613055367436676754665738142068005634246640882168299588868953263001758261371491304357857489934046196344396586132905668660671043751355910079127792697639808790710286590174210092308346636215956840753925677465755566520422841032073913978826668045323721337488301266141198816356798135059549777247301177408364615579074306385889586604724939890053855607348675797900980100493049283073471922953718865386085251198862699810892104589898235440825379083682408301844803855214111750389526654953804101177383386103335234699802093116948912461231298584490641372635365699883995892480806724652782619439920813773202271416389473275203495276181369497709794736561683251932214171341670283713951534822124393861023678815639444440592917089758299215438643381651738080460131280301186988397251520219935793915970246736244274401780277962283661834015911067193896636915167787293959190068154595884508604193054967885622266303572704621524277612613880027854221840260723354113182410408757179119440065178206697829540766720514300371794200795595694359680215307709298143900450368954372496906976133490398223971071482894864995775986957786457330280106968714344691786597375475471629719375257430599623931076753623403730758331621944161376047985165250966812904874521516401235023166333030575506655501530942008218842971745208318937060466902364270162919758146922051885385939261363119472128821980558489482790691976712168103947908713937955881057753569386949507684517204583116574115000124479514922880185976141023504474415692929432521041357976109090236659216796842368177836776290511257535590605063687738422282116161088369324237886102517995822116338800789696963319723434631066194393654324408712429210008863427226203424517672412842899657594249211688207212319033530603421407049979498016991970215327183858802413959067860939267931134086457303145427126088876392314447644117143861688793496944287361627253662277190398898402215756091625560798105898818327669027302757863020970386010709717199043305827927936105384275800407480382813939123313344630634934605126521749855616703798720961331341474399787687423772294248057854734990244181591888636765751555974278685283895318366543165547618288674276836947953888402481077669454368491538575562809191654888964520388628662495748071319705278311873819721196100078929858449453409391734201514263671726299268007591154933956192138168900706622963977960516628565380275532333566078624400618080254394225727477217359021116946659225559652313136305652265540751462079613911612078434549793016079997566194991276165870577263216298837807185770984612232648031155413805511188191009214322179097208456191784527550133232780410674541253416279921547251537445200788205898449974816149792906695962019324203737232675758204780908897459885904084298504893162679824046563058786257493657894273355064448155276402781055078463566075373457356020975198664940412290896532198224743886398033403401189780662395029735473396853192686471754186506220643909704567552971747887868697647256416180239390522278928261170903567875374175920112049067617653278874784748019289069684770940660296566164736339001578186954835645508344115506762622031873720635696935619567004241701282650355794126458859268883362434074416553396876744434122479122703689578450372128934736197845953245919787650880969021092197424393883754294595296139424144210455729811354652506682937757851335678119149395713424273334149812957415661862413998043550459307537739246977429949047436304470563011691756119000447516613248002234798096982855961026109508512553561209663600827865150464381450651305566492046245716790589583270491490181216433226776292626022491112845053238424499172776709461738167612227189577697549917427285822274775067282473411893865278448060398723066367642745541797777133207453824031184413576404966898507517412248389229600090599557815967641551463154789807491811627708322890531817857004225617026722010645710239868952249669364907910570923646365666100855160521476628899423747135689407855823469559086529198165128415749799033474690685977730671106372688928471384041368348449720410340649830951270749176897687707531791126386313467849510811725694621975834675106647452276885656088484143530609221510646239772168438447226071573158226049435594212628185853156934118211736893026525355343421735192057049812889810050647148257014016547114174863824996310539060783989063648447396551551921352055424525681810374397198123178494055079815382996404357514314401901159570282475710541199474118628930381228351324516759990896198166196236341736090062213713010794404787645367276143868506391993875360572990728356429661007916185168845727351987181338981351970255700968496250072577907937084822019070231627218578177361102726571345539613719528106950095760236446482737220121377824172435694774103655887892554085204048312424840189788904294331882575350518909693911735141126056675593435119359015225455974985957228505977817500329177388506678010277837936796955707883819882131843950637913213566392432211261000301001267922676563922596516034522415098743565657583412536765033727305667376999569935723731266983574588940926513533131453050188382343862826397407234025648913864024612403846532214846372439246548800559612287514997387630141718672389381848745559801571123088251125976826102365602528633623869795978686108732563274495763476901703936504514660828138735268636051660140319189573627584691071042223213644559542507352493749240995753972969363231771212766778829607002890594734764253604347413003263745882790955076225536121411074983051046723316057987018942119725616560430383313831167533422620229970262881300530156613904539981066133348073678884268443733080957123617696411237719078781429585990781695692423664724534673043217010841333279353102552857371731923908101364293804006449428553314573248272903896668525856412969103711884757927426191992200467367940728246119962823557946920329101863272656130894654236291597307074454676043343305902824149792442104241945910261127309894389161390484364744670103779810788576211412004399670864387032589879147572239473704583264418022269992333178251935044073087626173029434074048282702913771278649077300641149798374374872448213967207925789291050103952859859468796699994427265090005109861063195338838060156166678869931523553542761152121220413862479979875673202130878376862680550449802471834464099214017631073160148080176500008985037451171739026940471154598298035703587089682561272346516578941184172617976679859935498797899927064019244202912164892039812922576436438436430751672850875543869237555043128039183998854626441146180932051380141022836371413665292601694463217875259767562935284211292731455528370037616839396237954686294121773128654481546218780411768549723064038188100725084277937198338981951565789289792647981916694007730479609622451161457036078649557391609907411817314169163344324522551669219287349420147742500279913772468181945286156805493037618646478340033584130010818628794289851755320828058497235563652612409834464035170185741519323707306429407712397506043058784800946402388409275614176908472871482885882489517292365003729329010907983040703164622540037476326951650957852929441771656833400923054495171441616324157735701640425784904706499134776117162070809585424650374837499708355606326133312656515501488038616726040794176928361377056104941799570449540352511593233265044654259418958705476812694441627413079983121176366973448410418383446849303917934079798337035398089724133948410033551143880595533882289374362344869099623663549048809515996887758115823234451215156728997938054410661642916695837733512158753682313360340903506406470037431853637324718705924257963594637691738031702717532676232782476942565893381707237432108859191058629523095225454295067405254377351871015555675805363557186090510596304771375301142799341486847810144541642490303607311065842530345605045724420353956684331917631015470708182573890716993555194185057459527315046510870672455250012241428636723775374848895527976971814240802373166202073422806832421168255930196004953313097201663639376759775492769943170650582938632676871831033634549247095841536820448814659591397269839013741380410446117811766080308207899795271747727838141702833138000608799629994002373434796196820040053149609339805610904582275735950662038734440551144934530563980249734840956938038065358829334075951595708357512715783689831828688400052158842832857801402148644917221254425667732435374405661581681677450488398459504171899360674630582354398504289217751393686663492122987828122019462378227082876472519067480137655831689567097619878234117050022576922372434255102095226679282462642855771904245572715882227403285659094265152496041397231244172604883680491381085722269143046102951953440112206230087215745234465950962540007246499266255719272792869035367748636596442272584701410857634726706681015333127740726959672072476719356323707162744297163062823814710010138122917395524058470268569050531349565034368371508244108194970958486316056572522813196432566979807542907130841454744682055436473770900911193577560288222739565055635641090218809615063569395738411836220890315369238072842211047040240581927995515108747256323350216234700075860681137633374777574142137720605791035078099669770480490728843969479227145661707122663689693536329914456091314359131980055380795302914731412626127584118959783663643025891894027899951213655379419008859506233964263663849941813952256285690860381583276012600705129603334917233325959008480218212813128661399208424555724122607467989158369958710945246382513113855733917037895537752449874205537748819862269423505332000642310564476635677507360175065773180030372382921943435670006269019829293219409567179177454479467278684017546691048229633711336847093879810248763430071530842041368325752581144577713417750039249421679661796790730318590114705982941134564385263173580257653974577052969055467007428415815839815369108656889013150530252939224262101698502017957931014747139203445200135601498131100613937365634285939476131810389917349306455819998312620896078091000468343445681021820780525586368548087025659198714456005338569561375357734705088379009314345851502204317480955649918853980424909748691365352262343292203802485170162417826814011056131063885024066327977009260641968921331182250500795102464230171229684439006815412915352941348657136962647519770193608925464382951827440752388995135530723362774939582803158365153375633398601860897167804620532347041474617963331396246326405929691010154662147178634651415305905170218960970647208421929111773836109136645416891390789895892390641263354758833959924181699195533779303610435271136817569595470004801009719116493785636142295605487177504312825814078694501673939115496309686309346647739212295890385164245622117888025215056328024106304342849656346113160952851495745005500320710093484813442902193703189765294665443534900919243196563703647299759053163326239053789152334578160159944218739206216471384398441131830461381531059878573283551313034222448306515655334511515856215575639091622965528492112297816139479364470355697957983029375425526929925435841834778681853631031914245900301515781647429785125629396885245415046917083187328787074317459262888808724751140463254782479954984014640990637654885185035562429392452425807297981405263587634897019223739723137839064735750563930649955168162748478370055645872290112807261855686094252790669440415399816147738236603164154356559687541828966725332920543363045010149641299381274683123672380584060616438829832325710697296265062657037394546262081103155273007921541389966294622923206694517337879472961181256300468886265547539251770522728467767285041930858197869330655919261874173425087234716864935542245813140468431916821825220347353754198174166021234555816331445640161871871223176244193073795335140384023670700160950843996267653760298468694328272219828199234117118463903770977389957043605820024785368003692830040578012112080222759515204045200525462833473072020160949271416265666692066432822355023312533085825520355218296818874103794384143399112381897826168207456398858885443831090527650096283694253745522463017031218568522636130605698463948995761232015449280489827243703785201866644606537250764530365866466423671160884535901446389556392105238344862208752204896773837043925006416447755938009648308951726215838060239788106716649339896683998742361382046233670288414014555785813316168323551229233923299490331500127525884750700241381591973176666289570251018857585063458300346602816404721562507420049522101454932107737739096315107078660611210751742272252601811362501215101712725052892947281133715641153969789171214131683420746307829689942096556623201218805303931520765791538313115537208681341411918843263075802620826512587394185267444693366788265426908830262582412481234720536024276859568669923870615185645585049701611646367629829000985033445135909198589920550842109304007556381360419816507928873914818923805957458590904810385830297433300482605441458313020332777543105029589212662177904342147765072467156144753799074100903743079904814394725111439375897935476885397051057666141666387988673333547295314778740011684825816782964744906949005529373041450231025087900024285884870415265434863423838003828556712435780851666865011114492720790284588073303807850775499500441672964935155636627011412142310134440724884618434702146388967174459194939357745713826068501243766614479176368973926546909252507552720982197770871626943280376180883403754530286387075174875894412945301431198172066713974698934500203798955272885066701910127833757876181047507144858306317805921323285575269363362008349287201023901023978896233584917927808894974693206306961430927102990292004013757613428944070251645997969070957974978153702425754840982184393711584553107715614210574043869551550074120329190486512461855767136109357218946600174216165605021527300108255592690829978937674239455770433547448139071291725903445601713274688126921407323619758054360820341305117175058983001957373915476163339262852728306488509019335517060754569384028619438884062963517845454201005646685207160584576880997152896571442548901861741167700128503042094844377472401932721720206787642246638961206971204173011960933837536274812858766992324107996186885560576556129652891425841387910193484806570226216301006009511457132207411467590666987452378991647647954703428694316811792011564409884004031955303188234902144080469752165044386406359344911045056001789683124526292928722003513003920374461286638684084218693791386142141390020983482037999311801931407435796178086700398499113400630929303893378867151638721311574891512647327270184770984835765195603103896354339878245806177049825262409440373956113681366546013523984731009032251018922132727166059785608226927714049123664080305812029736000507923154249495119526598916800584112205574955265912641065619812375911864506232527730967304737041277933375235136368226052807785714764232912655837524770629151829834315244070011663169392805815700911896741436603796580675046917746337915081112623203665452480199691755869831373683119152810627823429791247825285157907836324207394053093259874917430306034165932902843454266201502965757131110503113979367588046297045721723314458298924145517158607876460550236878151775776017285132395240457697498648652525754662538834936087183489998166984174859571687500755640010685366363344267742258582040741639260166906242428114822763353377415295899493302241161906655239754273623051740185715379913290509446318838545738470727420980727482884667158945515603648581941236477689704554002093957645873936769232673994315247169481887749813747006506100480454704517432989896736184796088255942705061288127240316396939153567863651571634397237771652645226976081411794604355883715174689739755373912811175369826206894152082986413845239504915333251555158158028352399116936860804472707483155455443119447243907630170749633492863847390460176946140715166595553067356658788599627752244834800588923490616098384159375940377908366067806610726751447908569700968074830042294208027713848600879283081381937330873264320858168781479187593084685877189428168058144806341435555404488196306081794646715728530901143585194422611483557481427474531789721198824486435648979809773647919614692274497960811479501491614726535913598573096455211169695257573460096321657140573499779761523049402220344695520491075846819867400720365079871990711216369081225107435854499797974641058600080742176157240114271174217126216337060660095608506330693609559652569960210130583579187062617133405775009115402238260655148023093930748620891014849135577180897538912641576660999098308523733003870945653334871414113428331562357863951232726367324049262772076939954198664852045617280867678996367362426513734703767321924747261827290917537731319560750124136415509865551220185999367368462123103742534084892283832448229806397237096192069450521818733720309880718293173324105800285899257497096740950515377889264963352516770765234675223022687641264948361536007545113453375157040163858146759183416119321471490859731802717891654108027914449870006001104809441000634851521225712346820955253810247175174120850507565535530281002568794610239496720305941199679346652383589090071641870586353446725173520936619649455572120989835841779637844713820842975531454639435858474140964376143959049462695466952778643562656433501855601895488629356135931602267332691195879581588747312183511505941678507907168758464083049667998854282108160749810320984488791930265692252459684893027653664429653909954625477875829652258871977489439801654924378193325066633275853291657676375119908921960611882373795243176576286721033787402221210549499352115773084966264844772773735633646138774983647449447622088434448990386876192440357447030392016910712663284178897658401443207995329169003362847750466470324170428516844682134266846221361107801782601185935774087820470760981956651853832328118750884094125883931447677035389458786740109518452643743441644594618179366941952197098704303249609565296011539822702184996556409150007516109157302832974667049032311926288897160410875429300937553508573949803226813563270134018472403105273318145692843345131449128043415007486818517932577480517818505272226505928625381199466482135980845043330158167809286260597488816618998638421307534101142502266817952034382524744218615914443421133663554250275424605396132957021782218826325200929270211534123199456667054211557538966041986239138320984601128488843107521282777759761994493127042450641481928865413711997314096857606876847502054747186272143073578525465387731659508711231750957385970995174466174716789169959144309868599013052403639989388524069150635809793613038570698523624331510875535431583346444807198321203361732637439966041533143583109947182465144342596714536376828997449361191270761665357688930698564586510581881862292410975294328971169143362166840572785237168696160178041086636875021123057560628966312357590528956954511906790924083589469271613270638366109552096039192608594967190962235772403652798622475494092644942629448979444042314855081154523600347161551189369267326109507148930271653873343393208445316316293378750991918662517780117053819319333381528953205226252724277286742498167106909696536470534213507570597004557094272613798884911792448809967121412559396169173250011666845463991690870636554721312374381411593657339901248428017663992906805412589184250216879258356475410278282301200609419546559718239218058678823482308683333831054028957897634434333701207372333294277343011804890096597948425117607449007966311177580853998130329430090920459025502203415569516647122429928242057116855567219777255563496345114395766762486325768183918448552999768197831319826171662466942786995363227161152764572640501085868953516062468107287343682126493068307488235442796326697435485433734836958026687060073626393361784535385546022958871304712231859275375761844335848709325626648449098573834377333427686482361094626797760457967609644910062667273522473027237310147057255221851703802998830030525247720728419771108822022020787966357448662216563849107339350493238850985581040438501172517900964410922620900150418392217670330846070634996200611773266457477120775793846900937848525235949944079861073399043444037414742030772478976674683738022013687634051510093921135299714032902831399702925543840338940220015080267150948309455207784288482268641731152590889391355224670683085805437914431944519771764375614314310079205963380432233236025604924712237433226469274613900803320132706456500444001940700909675818041912774850913611716671730425123212706665786500874243533275428904554051232063700947800490694318061945419577003353519582151065258951963630037500413999912805449373026519727462335262563178070636577296331681497857303650734712594513526869784281148404825330442092781537749558965307642896599298060768881914604767800229789323840299951571140335008839329987398703426187338395356502823041605149827282875069718348951683988428422980298147908599077765831799263934674731341616555449148266707915587746988707325337276832820434886863319685263798495196368744506632707788646804446099260654061163279782561282863763011454005963784389657651651270625810576142304941072025513241033893727944977318673894867541387171819038950352133815075702943375797800684524314070041435239606106232349175191785208225910369581303085644320104898813224514631595129461302323402240857173483047546929098924851674448958724030600107260749882356325252918315725425701551995793546171855267577782661070267058785507950309457035586866667219766716430523643426182356712376888745680694929628122486019959711535538130873712971305977419158040276716570309959981484752974648700512523497989135927726798923756872149597820265215729871453328284491394376912058783530063518717037278666101484312807915649478756779948423714395340597089746283698553271838197101606794712557980241013508747439373581075944199710115130030463294158659309808462154689856571322824051635734444206537859951317996343095396905357625816769601731556190002200112327930617130628491918571863385647513243072626541294127982460072989155286828960036956882982801993131716071652115336162696435360423872571475600002871924396604118755364291766375446441906464765471292064156422595907913282401130337533200660444601007027251637155877574242011934951690646274531721560540000216686675026140431379756595000092571503050954977582051570330050319243374933086790246261628495199993264463240138976532646388402020317580802175466435431643992049871162403265760427315258415380435234795566242176167838825662801178230560578975454405308268857448942813082412379780037169211666708076481547249609717566126496175398747931981001532450479522321923087391188380583208577720901398022252168237302484758811542783023168749763461487764372338120682471840523942256534344096554276918475705483038165235836965111156432393997663231377551139982111009504251213638189116340234174832383396478903426216114527606552306222692378699499582309719195007310993706919093953078473667518641453005164272510762930200398144005511698640609452441707450833274783344311229912423340351114234603702356242305854685999146011388093366182560814015928660483877297000851635440802244623599573042041689213904688603463523704158620892399389049824325918541313373843267977299474472487907093116103005675458994797655702667489392013261752669818504303540459231697635454556365373512913098714065888432961626725349667791242731468495292798867253056952067873877141281815539886369960868053058031461877658860897505701365513618338934561530901690092139174156199166308500433227523201454662718769683054219213007105934813946470740225383089829977738681430352496565649530172490341564399828271746100279320963800647530857425577286491490668196034949769544118764143462609011162604750013111150798996535619708013244798474299264406512467965628791242915241295324962267120310939704751360774961796182816344113078322665780157649614474933773859397507742891446020576752223454096033671900869465279711686618689208874617688198317117167903736453671042523284553718624748953334465345475965185498510220370774780386014091249794581652212228978687329911496635828557540596116969529401098280599060056006831141948201883554213419825648879221102424402378605614442705779047675720417665188902504266216572805780438799461980637320062817528292891685757423478563226379196911760973686631475337939878489670212717968264383144569987062056817009439241133394196089453369896494315878077836608175999643459408100037605099713198644006246698005910011662996940670157593805493410583193943289149909033312692875882097668490192944898659517115664431513544135047059263700620998605688739917240953004849619608269583309979013033138615916052997590905157043491149461627306402488033382530926937109474120926877750948278978296494259341972125644543574889489768879944678830679564626752603666042324012591601296743448937700856576921829068867541651868623949489180722914751762105611038091024297798562154884736381392633614971479557847915942901358939003261968119888090793395370986319044590013338125726375366141627867354019313073071380100293258708639513793655311279099001749948984748708500394660714599338411690376475734512770127424273151916069374286276791713352452925143754622478370617430243332081525320016434475751020940437596457282129680549254804696565934907239108017495252246718440271246332336680650378139933790861896244075179790068530966314259196158490431967052206798638031480787317822416257950725105437528137725104751480624274306922575825102719412101313866662367872942085150345988655127336780542039926756047553063132181478895164949585170056165541113935158837613930165872322589199458399035258827473490426175769520201421203862302939922073061806143623133789934684868845399069167021392917121857961690712201876475496678104149133302263474652653244442588482142782285587582110111141082933083100039260352270681704889966263693015095083073144917704443671845673222698475160090570573872729580021456269792702716950930194788579356942324161661672502886764235179447781878585053346555294497747812004449635741713608697899965202112883407951573878464009217797042769924780947729131639682602834836174119374739508511426199887451166903172886380601197484833135602297986025710423110504607535173527127834894645617981841751470363573936483171796701522997730835225073551018483274485679685333720634898970120098176032069134118029264445264130555458148335754864358422745303340414407865261295962689589540265224194558382671287176808541436295067454932660266521024906264498876151405135629426750117789466181122109163394291713346594650889212612132523965187786420094456433062215878088392277431368365800526556217658171066345768233212954803274186278899467834514337995872802496553889747936204905359263643296642988758282687416639505984637125933347267860851926841633515130200984699061666997163071730413435558634164023490879385690477952487641152649700990190954871595289562117618055145866735241577509178454357289330322030480871557147430666211311009055491805724857428770460271402775964110533747951715011813884025567338290029457717082849204303336595696507845750259406311565174328884902707419421846074386223488405097208821922651851878718989497651587118117415721081158672155756261945916224503169478170386164233441711560750462848741875610408164272068629951514607156436249356498871157655345646110342352535209825896901514170014922355702514106893941618768834887399117692769624021234835838723791987836973609909412951802387734181231689639524667133281208287340446641101487479443426187471616628812206300493323760714676672111956914007571559164291195557594568864516930298924523920715944395574196495005140025881746437048342892905765558172435036111386855922104348959255232953064109023619103751541277565536570790563321094855378700171609777718285819112456178655878171084778923716480038227371967138379894245837242815709866043724752794122159403708004129265968060387380908867930292363996706989784426988425412103673715622986687728655438485500767509836962568137287412253798219210944142084857462099331674876978096129536834477940568166820493565479376024762277732506304501735932970170347523313144919421537697913473157894981800964440217506272796382100957021798921173038851167846635678989330194603533718260829915814895313055171486893359498279124248784998944850182967555934413800900687295455507559755822023035623926610600412762566175103165099545850384449384903319290707905972743793104057746586068297360998348828451636114962993966719401059985873411598607298976895792103959267754309951191465660037565574179088510520826767038574309103209405632056638483739134131486822335033992155835701648663568799802320700888910063617366524449016754837533486631299998897279016744209599597898375630114298108610630323350833927034633634235131862104893764449184940874952960571645079389803170184571436181584668315346675021222317655445076769525941260695319204247433708886908877358744175702286149303566602913656834996385011808697729787609096696237063094913630150784858704864202912673721385022505081693331309988189166410937799709854481138759579376360337922000687183767298838362084571820057604113037967447480143636758504444378895160828750703964892170929865486261420116010118929810612109797492278198160693865368511163480149177625896599886851233677511924437824537187461746007901572904639527149097346896946440013511772023294806928307377842443089839332292190258983692939634232307774056700940302514585533259830609716410003393111720279547024418704579949947851366449116110067554907055370427382761493709718794323212888876163378985839471682176790789197049265594301126560993951462865994281718045076213771153992409552245841591460905626641426022886644099006740158910361311717670384439262379825077828326515115602063412886959365964425148241260095997763628361664635332630380412900217132900703619687155621046170774690083346310435720406143953922666564370954061809135310465363601140212313662463614587912520189706653384130591485068804754518913322704823255161168023220742264642191768400790062765559065682013720337744258676726075360198548655541549273835400788856648744509578737703488163247285789808556369325720729650442882698042420263207092592498821025419577592961643454677552083521780346047725633759085699896243524334911844024221973779470405516274754916158933014462880059076274216767473142050646752135807376771281551577036225614136510561283697660540784666372596791629477305848264604057243535053588932658792199054907633931657124660998389089466280116562297591209664309141113171692960092614640376347093431006367812601663233415120507335062203253654167215980351396072878901119056677157083169943129035045702728996400103154569409364318602012123736899171384812832145733354206641022092332089641071697332275862371053748386339813446095890507574537051847352753416297195876120270008611506979489010359393636761105114686119597814744105177610327692204433311649081558310769752067683221862460367864222325053851300489484183148153792385530313134261570136757210262945931803427930656857529951291756317081018000439225253847798973901859787809720334627439076371379746822673051353531612282350007387274861835857424575261165825252718724973555475089609403916473175911541643816540103317810705134353803467024000383602318786452574202792933152183482091260918727337739442770611413655634173908457760352770894107985597289015472171210841951210398270840204221560155128869561264234288071591061812347276544679715590500970285979632799535403707852070845462471986065237349578943692771124310147811123662736701116217583566360970490114401842276666487014997190222830184840156196874056307249275759027753651409977476594196935857620752991402499238856861414060552545009752644313995635758221435987756201008430971758206188184744209405330643544178643959615364766703872284493259197098603632930407049289953179415667961800118613826489303691047159979797733300298361717749880808417419058309938533577579350084366987534221594157604702034471821689402684752169841511941727253557415908257214714704251432279147884488179336961757592693255162503199260265506883366395348717320019331816039609190087266851801657950150676035008688612211129231186751821368093807211035411834927325124321431757230846897370487522783918699738330508869969373395887615055944988734475851950538470061477506695492826821257623252836770982988142064341720457498051428838059692856480107506287687448540759280139886764493970271456844429303622503895501387493330452235955980472057425796910976380059601916179645741237542274993819612410438096534316050812557720635946511173487760459975565684394993291405540778590339846957374442366384001879108593402371397554350017237522811773752253632426795768982745000807517056714426415142380116229631230889077131002315227068335917782174776073673092286332748648237683527956017551814573695868119083459996070326201784116452342113118912080726070315386629422709966110417367740466802197943700416251189293901213969745559867864302131405189328028290884344852022446394321142184984779196903735974413219847174331156083542651384079984897879794148872551857282337844711554679140016755903246315190350456597423398763744809628583322094017270074103704450195065586689340596455101572242724167008672431595773299448439747639940450013349493108656029428303318218596186363874245708102832958195354781925037580882614019103283426115436801345970591304672110435773837168928448223744601029962033681647198303687153479882610699861443253184018168275725701796111429088064358005011137186300066269111603135220932710070679017000771376511735944912936362991212572247678484714254266189387554895543059581362650590317610183298163066297222067808512475416158460503058186712075526484521755281994439911201117527735842478094495806141253486439043897521944922242922920400508627567413203304099936105515845056132712782488741493603067874284339578929219136833099102891313220990310559556157294652732734479539354232488507761014103550213645981041223634453342305592401010254525692746347387262073791779392499727262092039437397168558555412230032698588398289358725931597332584584581330967891826278639098485358284265207442731295083074633042524488707715885425994449626690238585919930642674779707136066229021101910676843397526565971160813353650750818479400142006445233870780242458248464037683566003142074954279840643652123383784996662066871231122516830360393456382174179324947298108992804122025505914677372252076198395237456436952796363693144242755836113898978900323145386327369856552438530792920045417766974128287537792382466011226864956043872238274093652307450060015992893789137552413405484572152554990150817861227352010636014378124901163944269818938689042307244380861999629520491283002357360581650096035687533019785749948079131790550161560350563258257291070611253772329897043441632522060373496088563566720733463134123433344311215157025942598825055076372308715759910117979869548654097852048197424789491158497760160404107365287460920567524487488935443628480648104885855327330432668193708960829976136842805006277299284720848347382550637196098398754240901457285467545207225983967976132795055290154129185757060816200854321836876194488576509715165456111722617323825076764206926093842682287630586016371157955402379273119714552756966750314869191300422368859228572550915180183366037724139941976755099372409727490622692571456668435569754361143547310552502158176564636203419712598295293010793247994720571949959820949649851829300254170835910777704108871621391679696611312516652967971390999530835161742853865553374189047500866255600509998074036819569181155637663829560659202582902585908016856260411665869789570796225542284377798966150495812087237688630367761434576522905478082541911192049508884974114738757023521009317266849578056865433304705046556858787533849499334744884253612181463260670373429882138425272316587833631009024592371638916677748404184080356163798995294299292327530025224127990779584767077743810031313000599147232166624517395288238600496664814308252458980109811701007585152561637315372442125219603759363163897476514146008039157411302087163374416489084956779993098142390229560442017716040454211796227259879870272023869295400687710082565306887005875597280126741380480613459359781567572172516982645542541993257317008592339036408720930690451252918144030552090091154671942949804819187311412043402174891061099139547297118700456567503300799317262867609293813001743249957573866864438652441252264770400388093096435223663401476405205708661092895847547815387006368281568161430753520155145169854202454082244952542599082186488097175030185061096048785367799474156462527958250734190347357498912771716966122251073880133229226501964266718546336134762673214568051696359367542812153219886177075913256619003097689884530079105024220987828529514867359937334520977452406066269321226667533735516127302152189857167670228729398144929123680234096235377271641386456000598818518766555096079372315317334654187303556076246621503101673143399034312119351637395489938936580970855528625472096318784711540386494061517884930146922053478431453399279546773222792684728010177631647798137585166599557219053475006912013293434623849169884044015645633265432981747288278084297331545684324775323844361549647757714763778657356658128513391248681336490344582938252269697690451860552785837549167995878622367763219151327737695775591863200942574929267512044227572631055567651437612949159657971694054552033899900562832973205183779428095109527670503521238036923885899598674708974604304916403830069957181106305398214053461539529684687757230087343300063513286250873468407777345325086195992409881443465261126173623271064065815634607983252631475018448942598447456649662266590311597528560555932271915378116773539252186999323249308169378906075894755748913957917219172657500055564599954479028714517630944899275258388413081434613606137401952877923991260590638482931997068150400409517041447666998370530874140256048035208565391746751645875210048810937311528707188756168289050413476175896631907410427443091381707085361809382695194560120966649642785704888687308030159317494692577769588686882634213822596641572108424290980873519829418821450671971187646582810925391117664177372588002676173787219743654839237299350849388103148450311524783163287557566443754660811314773598378127805681604048505634343966592551390885862179377900467434068863629926918371401078472797841357120825542858941673574581434755659622741711525534310067112732117023731238889235066152211325412111987759944785570342689407526209606356687924553538995455498013243457780672668489932512139375578743106492060404036737867998377172186468103572806598792441411091605176427743271909784708439139199509100001911575513540393812679138966284479441945731169927723434609286130871365712971194157019786072732395434309047370023044703033828413891594582542475673786894535617261210880090581985755632226261431467997625796540972762025047093637014113608220069924641743335155583345659209963969906453508415432545629952993131028792834121979344601256417178405638671065463098868530294802409971071973564856099149752929284420899626231688824936149400665808899509765284203644122265934884160834744310174855493740725397761777205734744000510696277655034876378139611176908888292849943956485136749101448733145564745262714764780196911132596442649368583682793182527327831977294017455665873216474642500313957533396454468883568016003031169389249128980994181747931129166878118142213498593121328763284653658402909524828923200461709392871340253380762163308058436894754747851468262800298494383449883038106585370761444076333551457287188281183434353409242406388457505332006786083641361278279841447197104113553373729799209355546136964393464013844948767001013779245596781409235222144562054793894926899195148602757774769926886715667489693484770786747900868568574296979938932876656940960084684711230746989069808970187599274845049407637312165577035946237594001990918670714856517968810029518771026709336174915757723258929809758347357596714560934144428226071623238213438667598664093694304853208549098487384764304324617294896320220605526911850595585708615999772713682800067106301012838352830961340291021431361271289400639655718059410607826383024025600692408316500548600168067748508634865575242703202539645252770818530183844372267082292391507186513295408236526403227909636467250558508285386060204778037212631829715344699625837127542577842830848225653569300319631460655446917755774594790275037537991310787509685182343535051617096486282460964740406995949597083541342154960441772243229212708558347985608133174170017078786623565806322165582244126564461148398239720645051260386211228226544607265627159340911474933604890614606474964117806195743281912673681649763886336799028647235974916004525072392359763160925053997025441411054001796651623861928688893783494180508359533408075915043125313908369397865073925682146340865876650904945238717435863155494205655096103926546851468390545780423561790603612374399702290651702813318885288699127219768723487959632871165006468428581303385673488964510418023994459483461035908663381666350678788705460306286815150190730503761255621943620952193889716107354069301359291923615682683689208704288958023457512120280979461219838605924456684995169246211438212328094236132700843135347566305251628996818825329616125129696073025480206222315467211261705443542656103244965538435352777612654000463732996123217386881508750610522881813875268242540204846195724225207629459367337054365123175767591367957611590355145659605296567350036095733333840997789773585160758349859698967267151750210947262513293980419740267355683382270571283921759062019247082865164325502461078554257111564284754822506211051703267295373582267052544633898562165787530560854798015787563972463819194365415518244883912462534105289140471005056687947142315802007414574672762471506737558652490265294006862592828763412288130573395280103185979358023026552997524898628810350710397490588057075338458422731452897520573991611486377260268057939355853334588948956591769251478855417271983107641984854875259709848368893194386037168120977311291558920110309397433443031738684215705505146343938853499067070947475388075856680131615525693739262633252259708629230184342750560289681093569401768371545446522735566138537576985056538548215586544134289504743099969603786688515343065197642368908603963996351632973039310142780885009861968648514214347819880116455426565274815752946496010993655457083495015294212686632743538909866801800559241930342597204047396752492835631051007693430855026451199130337394659441449113678346947540647775111519642991594892555461304117525273447829046946192367775931764406278004192956804433984496566077735302085999656896530911981968984672597706085657259093375687200799192064766217402876732216727377053614361296986123015923409281981387394552421558197882116320466559502432605385926634894453011159709968341225762400489339676280911420300597587418788352072428267116119562406557701632346295856942903845229138003882767220392440197257140767201165820280776627400366255907897993463621696846305389174589834028804556175922141449637764048577842947363920026438740531604165881464764118747301727522324881332874683012356445622936998161219242186734640719702831237619063934802678580824825222934474894949974083876686339868786591908726666165070197403061653358499191666816205373478373002533696775981841093000577771536695585532181320153830284880458991260845559114924526652112126181177736577099100951045979803936198376043478662345185553896143811217275394149862721111766972335541626721787763929440107196289316882652973089853591405817466176474265771393573537686180698271620410230263622222165650853064567274633297692458463743645560095502562513388218979223031997445417006733787140213747241468038336034050861748091513386947675936557092315801684075255572486818161638184592495754065168227117681073933297689221838702234961652433542066137349195093907750885838654660296768173917295695295431256031613482669949139069033867597861773805761193896884356294760270746213994189774068027538354516205712417561699912217466727430693876327263547371401782909168682283072130149979984912949929544128663135538373420816386266209348884395035363732447130664963885955873462741289078910652789845765391301143078667341612501921726435144406701499323582313631178839413426104668360704371289350524453633441931844999769545928541504476592293197888893958870593729225737125148084836345562858960393926130675188330368224707008805449463117934713992775550129948300271607963957516887123384900482337125193247636008498461619964490973782364789490741486526911883758515531411696303790867719482749857734007115353205177120209245868320694469633632166823480021260194045661976307741427694271647754359459383557175528239451611967403398053852862617307707926687458222595829658977536389899931224383717410992155355094283877500341818677765434179708060160865204094386166440729930538282270156180761991374493143867019638111611224612279988309586329720172703354017765420726387200228400076160815630927826385186588684035611896829587082529698339305617750164157563301050370359821163352308859832885699060160010465296347131338464289378790908129900336962841113472516255417998325645719882106635247335869516886239466255857067809776581004672844627315019271090235985442465867763767173452167600668449152338459681360383010208666722182126498796194678020470813016165881458332903983390814335328583066060484238783536658856951152182234559478881661486904828692776758275298506921360288374650551062051761657455153767610734099863615422025729495230832385251347078785449260657111347412387894409446396600696077436374929715228285204858365919533925714906027692275151264861561371032774222358488175395660251696986318537918686972507124814200196332750538684747740132360525004712928482377767748132517577049814786413251472688948830519343476962975929691525730295139115739469406825797471872200062883379554590479754587831871815464953618558922267692371091679915293254867257893622764465301599234529548432087392662452807757304291685231932185478451006623527256758536079029783697697251548670260164212021829487239097766730640688057957010019455618029170230417584725176232975307018269258252281856251062693446167196560655297286112277569447920105505571119126996854013502079573238516945660583751762472841961291928893063511484883443783978910151995205916803051267633922746360775530230708786885573313373951582837811850845972946366881836252748627206639575642663048869966375379184075617626390674049912251215123203417997532554019951154464457378100925850435800304548472564933808864583389287093294125411333764701970063683514987729199165646628502295703737111248865501724937116993621235786527019926337780470567854321153521202447571605629863342579762050053588958516207100014154023308775979569092314333842912796487717170255412549880323913402437355283753622126345056584915292074000750581606038843788688511454526047307885895229231774555039066011005206326455088711577931834459447052794031806892608509650046460758564000034268359430990022059447677178610355985251333282125124748212543089179454011721510601781578216012167009029808529120574898023943067521602742205650216591776886479926885195862144492301943435392513955818582167014486960084318441361069650092981036844050188429784965279672852279324297462438065010866103075683715473614827861417767477944323785686521335092576830116699994644849542620704306482932608146909408090002075478001981421209822840868479555249751934537787693658195120876744038994131765118936899928666870760034997757167464352239207132308184531095328486013375898923699089207162236817789995025023952557447142989103057149249297007786026683650021874484422942158470384758445330746196407019400829238160839236705205103663079580164664414540763190734916694436086484514066480974221778120150910888146578347690080442882084526136475577184870100990868234162666391292902235901564263809110463272538068863369371620861139540610276016920362442750582284554943113279379675750492309998749730303781270635029871523846612577863448725062865234776966985411386512139330950775058832602464668147244347519036158974546398668956771309479050569882935167028297072137943845516858399234758397999430910626265244001077889663804035379696087340671015484618726415317558005838792158487819065386786533855415527028645589647621189806839727499924959993111000108454432046871635753794287852395856416875766692399954069924818583743590370640700362502882256519244686490054438877544935653888291770088007615127364647440285270969514908995534867650819137412915715826837351617588587419103867860793763608060311450094503410512871504050795219503084749663555268591060653400588741831395329247453840989830313965924698122683382315549913803141397709983776278757109979060996839188805726495194794601873401000401482255866569578448159040223267581811599760340175966068979335194953480958579424103579277262803472334448465040345291852826578729602124491855917482198162140689282159651731880109483301421147551874279192613346659464659676234728074964046427624029449799813615690830377646019844048157760249957570424429363100259609817429268938953250118116978069194028119927055025220576810789146213186210083366292349866217171435259806812975439288029464990623736773217833501278195478567407844772599510028399225169815026191340985836869343286344033406839654124287082568133912201258381914712497805295682286465048790265606678227643212887713835548440807652090714033166421657197346601142650885022152568953588762157065634478645404578050733871143117083178611383147140898782705448767081374928723504340715478624024888455191636658016528018463742681390775692047129661314353142128162734813317428460545974000180213397430083808091262788373623622426122006758556252485478436423605467941037045661904374452868332684208708192650358666588725479855311393344554325284655382181770649219366864455997262768649224834359162231934169373711796171562962713627546735376001197665780007873548366861031031987485675309288917465061414686451467780418452077956312439576822236629051167286624233098952587496450722554746787016820991773803818838032685925348262465698009080028928107902005600442849938354036158760979873428233550943952574212403589663843686292763197175170534499155901941106249700147985428541512828440309332658607774557836285240404803513413718903012101706236230634898031279699697836755841874851060500432253138033473465703813113998667454027089297996380965471014344547582006922551249023045385102389563724452176979113777493090537289491085342476538749958513513486271030456299454876760338613033117084946803440873560538285020482565184300275933884818882038663926335956948811012264939643325589806775247064304458086814958839402188038596292416502103856039880395778408205197182582892234053974123220354535095816045207497370535922365709259777664493634541627899634517673217045054472443561824178897620620043840065032690706728139622060279533272958220056814269437563955158378988279184486416907606323297053456543249546504988493447229806992591992073036620131506977059767148842205636853410203067074764643902056647063386096591984483962632089992660321903506772878077059506802466919013026095795316420067398373032073997767299772823579425523374580833530825281159179666055774567922147577933940909774122452820378580776047335648448052903352802366428286117392072421956223563301647308139043232248712374871336326647088439428236056537616472032034102664344167920453206637738561916113581642187027096769862669390317599200724659637866309370490205536045062596376733991232664892538914347255963507852111113287215713503425548228025890120699676048128280662483711039869734506484087214783965160302357629033261278679606544121776121512429153286346282075255969795669853564999255050394956962192194279910390416046051212868852832200375502557565813032521251138066389839110285281596127636505927620528787810802101103934612050381954917033179412040564943200699018150943693816225292707312092938499345645054869657620298600849010827807025645108102894815150812148659504686392701666823052860755770125871386701923089630156832760792194814567957224808339550723913388766025094386710848577534853943452591766855031251696752827938084218838277746701289385733063148764726993889989129528642903964678972272682436400189382606488497051996727942294080267110192632793040590056598259385217056336988872473200752043934853953088162400576430720016278769221392316041804659257413361636444370150818599782928382943483816864378779381875178210020724628539352192979876164335503250926479603844663197739393887841941188540799110266435189552481936131746609231140233297397690953041950069444953168194646916799510333192751277150201120152493412602947178560634821500380871776308256144767437665327499303519744594517325227799933206094500136054525741713753384281196801895905684386141742303061061279727078513420933536582067702420302163434679517915360719545079671952964887513821761151271041275998248648628108752831575141829237216856546181078618804513384422553199881489416490334246863739975297877390612894621575981551991841311968422735470957222714376363664595357561914526212708826630123402273700772484973109009438899994155544841189719271791447210083163937686873944314276141407988436563098523272196827827138254668691698095504998929650293021001010503851436603477588917135749078284207325245483844121979628923334460284048646643571131916618299748371814795147836417225640472506455548494120032258637510398529255561339640260790353672189299162487044719196196956654278529001013931066139371868617061741782567513891195861067502614650579175199853259508588995174648489081516122135236135461175269572888094854082607141157629210929677039556684143273970988701116366976176077653426872810728957122534740318058437167313188345744079380746361446810283539813336229585658582537820577236119049258456132277566463168098406469920483866835754030752316899287847629751492802470128063586594575314038001789476812119082076975785881431219004691313251969143301209370243365609543295772849811287431040769132411246472674702022712362796591120857821204312525975744898936718021618113410390985585702616135003455841032300779532384666245579072688634309578375946027641659210782549096258370574079211374325933345663097954140608585472580008481214679005127072931780965692337432030440260021041965790169166092628320505204661609834918816194362808836767921842951959551416556372049272407457132021481938010331345460909130672142700690886939230750081544719051644539789091666172191743072133896205475094306630180295385084601839215301234722478441507001887565350246479340609649616080587057142317373193997846735619755409701192144243457960342942799906192987796265884691923254475700287276340594656234000651141629456696674697115806183056754276823910998538325941600947310885042694108728914666384193282636759545180974791860733054721998588322855115756380181159860707793034485628456678566489079371504403627974699707302373878927171407716752829607408657892235771874352137308330392086510616116463583610848468445740523627104784696631471486487265744790926440021458505506683280344074316539275938164870777647437641923384350984130399010646148090871218375714692251133132788805367704043291032257959528916978789332537880134023840835834300866978117487738423124593218942874220736488100458595494258922534906245263326502307947866185432011337375101120414429294401335242620620328529550709204005867636738831506303169832609742479224980180108014379057200689003745837099371662556238924846444028683696383721887171452592256070394827841141347264605978483446561286467011764394731417415376980912676176840162953329315664337823064482189607527571429784069587945737273974059231550701237335564884642142462702283840203667343005553202356290365538013060106397786204072251221447308501141749959125516459328658239372165682639372001989000447777323118343541065323705069118074785528686895152252879986282303218266864866670653663879349246380947466227737862884456283139193744704017775776227937543484025591921743929045671281778869566454906365986363873013488475294641830326338107456871351746247976286264715380211571945808330953811592823582246429957148878122974052195136762949555877200352300091021810699079040530331762594349544550375870433467887584492321207949341928220070345019956479299685648410255821532595093317956483317100488067185775678785750122567784600042698800627399809457792545412174499246762908960599779811911111706354960186415276009130711063848016799313325799709499720891696314311892175436262353893862448624644435033741939890063569135290352151920061912968527755253449734112247915681594284127184870768814109813241638412546319969093600785542985282967348919365330400087889355387593942703145061965169239537209543076611619640677308703316319949116596469556988356882662405950542786581115371382839208662682401599252535797742979598353439187297181895391828718466521701976620687449069117864791181152391911073269011181273383886423801487190287361295224105772552390672200728337819585317895307426576631916549401963875032607220954778811964572778633018493032308252174595771135906454432143252943068365483691145110286508975982110544784233342917443575758600657416486189340724721191951426271131050905103543811610345710937336001374550865064360083390327381789812055402314981994300878110612552151706885648098165144208769688194959533368439107312564244887918800034399003428680106553147975223352593755542997815676036501149916049024357379569319997125895672262514199066110937385066867311201850432417708892347678331649492714153436132379288312171066395753600826507666053879476998106827968069794923975684457992369654536833798549877372460865730609127161382841829751815029014937350796817980851130141386630232239066615626991821164065609334750213248268534623902517405884315300098679699061622548229860088180217731218468314308064030855101509711894345168036002584047983227106202864521430340829750493243354140481857333945518892986626214922991432571328828347508806963141327440429687896334161491136464147475252543143469283345956188549043827625764472748969765946031728886469892643339401386246729349551578888352066623975567965901809864123920644557841512405682876565944289192852787686880000056597986113744252173620314813995363038130697063736929704209015155514597158114139586159953960430764203603778685713083958159740265996464719555883861724167047840483299743409604937878672675323415753336302667344110653356419742603224021112577106480504675315124083827327558973803421395456788027247075656348230064285314822486447155273621297323535217094650421396652319639282979944485236757665398373603398783775089624311240563978159551376960308627647898487987042520900929114758887821414766529936220851947641945538352283989404290795422300406030702549047773722472621012364001542055486493803579883784607091265656457438116491737539906910666835377129239015008197245850404511046684972739341767186020035621283226906916647253950723545133624364780110092565925743090601494669576272845251962335870199994835116642011123913357625917276655791471832014867226745950851069341410918650168499320491883486298154144245956759151067392287566659932798813933090207718556401972069704915270996925388159828288759916708236946833135870666836435029578073537972718902717841965094762246488175425896713445506427575729524254238181368656759167048364437858955156576235083173891928079512625593429898758226227606045813318802994045550035814900529746423792156195266399852006852951731585104975537674606767673841050034757503367448193455002125923765719125777628344930332474613901851321167090653083843113381105603417814113973463854238941273906753728093352450153748893356207836827866897931637298454278683277280696733627972375236737617389885409061527267862390441064309152270032719794253192762022357303762731653721678688516457694617445887674323274526800939375219537562222970983164242479337294513631743129516693560606862541898793726056132193008470606852152047996795071831875696244478479316380849174378151638919094279819676741861661599696842697250762765853391778268817630396624745125255528385350208014046539988466060363274298125363271776760835163815242745481446634791103624131522839889791339383096714159338750356741141424092074033375655621848240088405931294686946307212912686678912936135541365810069736053126491665867692056375936832142184199087896301803801722952790343718705869891142666228072755013653446004671905514893860259156492715027621642899647816920109266824801285407041374787638970274551497813467478570980325023510004548301679053087671357032457255650060590870121839757414652348198578808450808402503111789951281648998728121051546111142197132471688504673553086860262930497688450707957002074451122491917251743485034456490568396557284653536588556894462308455880099274672441933206218824749535402924444665362464601019318562713423996584848109159638978374819170550708446314195201230799290092219476137121756321134869219398115065628143739790258648279397273430290449266793649372157461509587505897437194443099286679212502164382549724031922116635388905496601401204576291635955309047143747783446988563402738155386955084470812218186562746341791608371908058733440973267995658757571832921509057535470978673719535351596166560885105098817278860648194669817233071263445310244953538188901285156499543806569016977052866437777651017118205556135109974613875831844633824654539569974336925874474374267174439827479286729645705001330039450282213145245724797460346574430493541152270117915395615992955888247784943081290131377527170211835096133364685646270955808136214609246388248535428239076019325084002969296664131767055641774937195843081115872650013267056350256852997005247403941726780605700427592052137169838765331293606429280863216035388019615427081878945218948758841169133673091712286275152059013409498086959150679680262356297828321236221591565168442520813268071874584798394920677292259206966633207064721513946059547894596763897629055079732612906738642546904752450606415051302207060608843396230573242904383864051749565802138880639196355018819908453195628979488159689464626616963642803698397239755580512060801339742004998785778351408733239621208735392016050274712841393621668415367252543238674479606752478603990943358855673210273882939682381895642938889386843658814422482606116079392181837116868038102008823178217234544732070348528421337978152835477540625693932906702126489408839590913632644394279216897913323935882543859867710059475661014965397085274869369895018414049735908477771236648170637710607804816637351340314805983743965295336074621198949824138921417031078178611502111068738029144146775146808574449792524996708868300697876128122127838890646851376175403655937361731120208547550205609902064589655639726389327135159485852250175598847805340992587565316913421669699916733552129711556865159010842725160642924600749876496829601531013059659474890695465145666781942810698747025380665191411139914624265622088591010548758245755588380764766632941697634827689014199228055531441079248807768182140275730601681911573345924978239757929985950611083386171261811280487271969668111380491109244608851721970115207642962066923393161137055644053409619587503264560040099425188649073331558783327514375751948032625619061939659077539109055076220599702026700780867166098931639602187634880429157740981050889528297997920891678631904508158860673786143231497466838140366233450609022866815985089860675168375098700115514447621820076925609180455558852885774671611709209104568332781850499145707716127918122571028616408120231231159382645847745881158277818926398859424923904570524585026617712181597350509102799744666801465102314017553566208920671308670941708215339618934509288279580471352681948833975722308851251422895554899022797676610622773369299284314141310483942738541866642337364170608585979283339094014119962156327860176808409572265168876840247468959946290274929649955932924806496459488456705823131016979413018149434256649312687907843055569548052485466198087975518259846480342327207325281138954589863770189111623044860437096221581563426287441737212409696596360286149555351413515811267384421372889262206767578668529853981910752450007333662148352357095170104225430756628616475404503412979708597004932634877962785792396737845879889822226003193576543766787834580132852304079549509782628270748153903668784667709509598783773660750279529944113013192385069057938152589913581303132102255486073110350882310257614255326800532228028428813890351789825909189200287614539195368660055206015195952516982406042096087815100215570484110252452391957096922442335446877783188272677131110008401469107015344737033278859608273273702091166693624388205431163059322961968651137028937727129748875669664488563757290261091212698666347751668656836017927862153247353369970824644754755101979040704018063020591091174207553098010378373242557429859311727201948738443850848855467966071100467497087817232769286931885556568090226311015722866299830127514277670129733389787149718561576014799167330891610946657650571043774616622789330152439527388314056575054624095882263501920142095763642230746282129205335786000270095319242180095759159815415283913769208703669495231928087436462006163168493230344945612815190055450412301493577983632980730207693808626597834333807562161910628717087221534163271927053961566760201283561235922153596760932589808810155990978406631266270329788388201535756678705540360280540377149880012129623334171145585813979345701824762862088113979915044830181140978270768968530914048545674630035342250680119234669664581941566310335081769555052920536691157713507168439212721250465927180957409670253122882168285085998903136256445204803341905069000167650166148720215435901299904821065797252322679538023326401613019017383780426673381445803390639486739003951973598831568790516829323211439973384656104895797908240445566512429503853616131561026787560375605446266773423983518550723501219780423593854612835436393610813396760420047702801484157971201834396761453735684625135835778828529413471084831663125382011872638825725077645906055475728828678056079455875762555206698741726941868245044537433550686685889794166333062592568492217643772527433855717155157370030097701732122523463234947275941404269134554982102132558277027913272059014850147966319672832653288951279509686704673624660569825380915555140666195956447682180507887384092052249767079322869287508092143724649788354970004733413607418872541608123645333558938689908687379713542557567895523405608658399871248973525961573398640448247251572079343876344952729860057161912099604875020639176126741274202051438272990955974457380544156165150920207983059092693868641878307402951302931966252611541098603218441017961150435434499940232511634626136473892873329496804325068054883569762937184875472088859978527876878980932273461323404524388846426650790116822409968883476406935853140792343297425655088842810335615068007923161540734259572891328470703494542860169869675435322365529274741376383932197004754849738502988827995541691395932305495907819871975178448540168217784728504682978993325836471175631044458992675360482319743123360453109501295128954070779236728075060313044360523591994981686108439838080959262700935029972894257581613374833570992687000253191209649152073919737032946970956486117518355344518181322476092904436326404040033382281995785974902428117945900743489716841661824755041171579995053549810494145631113107153435860658816907918242210654142448202937397623201898487564487132365419567792649650749934463260545953266159411150263527006338707479697420228353862841550903196576380975094232192398292081171471641167899764509776456062648794163327405109024296929979997520191080112369220710704880667300571300511890000295991176389909786518001323587826373386152265361772252842740335285318899030207102950537809450681270944547839109249512390151776856420471491736789467038017181610525307896592804459470834990234347645384663437880435923139780005756791605495630919943898935886315962904807277268538396706637747462736354003425667184620259710058159524117981207925087941119680637961744895964238038483554507501767563084811445308025181470480127014975882534186690123774510553501184139729529472493699229112259033511025068486134967003442304006838867349315979024012533761722425319884405584411082788028938042724939968484135527685574989176515335580327929109681196881174779097083427624606597637797193825580166695752289779135274376844254655155489458976512472440511505011076993583840610568452807781465726539738261393907668195248665486143007590772215691036163228867469994813729014734536155643927061938934462378945506554113675998011489820917397688111225695138343558526286340895810320639929366996155235370519234889747201045989136794738428227835714738200884666052339748077915639815612579538031950998930150156983684855066734144738417027084434691842597859692295257063632907225733284182106978568345773253511277072833411755636308808261701225925095889800207258788038476922852204517859189720224412357784664052427207718385943790168250145910185284952045427159612215657885107849814674502938450823250751696383845442272675129118544080769370139929606681752335277109890105429320308186458960288079154053195058523989953972277018413573279917744707871331648263742679246667926644643727653025294876882757820289496327336936187473223822444279928423590861824734665766576027871641668208638659782761635005018679992515160519449112072782597062050012196423919642107312874980780945571706462688977140799978454542718910818633849264911949992721672996665963111298794376064745985149650507428125984947059907464206630747867594868959149162401514488281023642461376883602071368565298083007012223092311708580830433180532717504114580853043754454819198598041851060848345891293556674708626658089791467337967077805378640195871671582597749720687958157430183311225258013501745902855229581828793607976672378280486534580109216162399089670853650856340232180591537461356931158820526751743387564297594309402639884285647276148831098909170308936619476468986265304816015528620709842166908683728905856184492902945129045675238307545846160900633399266478694016384824310464984265537212080704243120037293199193017017137872969981235300642404157544406762171493976814708671641721608637302226352223897359069276765320903659189767750345706120497670162855428362104322330511860901137694244405617925776426673258653596390342796275314248977584559403638653009601508258038437489909171865357535036018580472940827693068008972845152024222176195591378707341134104250203486818124572206701055027066569967975133136112642116695625375754337356652402420645926989988245029086094209233357112204301953201651052534178628409731854340972414461129967568201865447561328140220017545221441348737287024653305196954847466101209921655073811106541969954755058617789991499196320771520620126428813515992251515491343777441394782170365851325748488627195832995099150094177417264229305053696914577503507267283247784504287489611828284842393726369631688951066833216165767687906792750699038246421492786194867152108811345557839042777436528257869682125159072076681007910209780167472453144423321472686169697291604539272667262982942430858447037977646896736305423540061312044157575174846207316887015852961975563540615889363714672202222556609912581053379103501742884960565614283244908278230286765677779711815420308184106699214116281678026126385170546606864991204978647031902709305286525174004873036729676655027262733775302117673141447036658600099047854386736285324300518387746127897671807780727856810618832803902851879579290758763078090458073659727424999972199236948887093651547051493696797176184763825357051683625408445616208404644348708233774666120802402908507943553788079718618555048940051005954676314435172332185939258952837290666174020952341678428424052556409190331541103289763393533030875226393306278264401549708723176676036277337806065244737568771629028424574064353574656843082125838866316692386254260161743516965767084105314922993067150199682841546179122368583673451260416581285876147604141868053630296738752344448635429490136419908042132913200686598129346467954947740329456873648579860136580440034052843196107849392565037686563912699512684702062894691722286160087796150198635260590856059713771934542761746358094959030481729136723178472046836288721515434220064743832709568659697077990096737847792575814360307808832341075171478250110711486967547296440918674811062154188102965876645256714349825216769252010044796718093922710584144788029073716025987592604069872845480116842422976443692306788583335356266887429856030221645021343026519893886043350413902296006090447079162117701097565451533558604457693160862883186907597664833470746330713167681534646320723529667361171546589837077111907329076314729340434606398386200315898716669768400301975785224514019292614254520924962325249765089092034451545305845212280547471566347900073325081521282724955189441299596135012320347659932230837560346933849370803273999066684535698187919903179729008551749692283498472734443794538164193454427303752327840197481157272774234759649551414844612551501748570025028295920231757851556384255069590401852939559592521564326680888569182524562346046509119650631422975012087754212353899573305023653950989395722155191785394376200685250073600226963536530741725513042349337987971749614971261526813413568154458252853280071245853477883909413708861943521086233781460888342017274765391580380302568583551161455274203035051718127895723353336514553416352730074937640924917752072245009947494704147104823974097397785645747800343257549968425980272479346385136051397281409097128421581864198178609281159369283895197244635954029351298525770801748705881164268417882983250884754173348476060578167986483499374129385755812256396797930299185523262866491344164896641666911141439510840689645930195461324566179345217836205434796584695290006188972090509150229106920693521552568486241498998518209652402200726329024754931237928568059367197313107142247196475612323464840243561286708452852235562438662596069019824358711424425966008627474981581106325732266873594938039467946660751543079838841837691179957049145636444463486584284680258641639502654897051177836035350861464442300686305977992820446186714019679521245287581015497607329352466110652619691760874932918412518043915404301621599443562700019128231159408533220624017910697479485957596994307114287510311786019850915270981168439734541726786184758203371265145377753051979240536150820649963246169254133024813795012976469127430579083966718615971443027803782333669620431414413621422495513719928709350152967837122476959454964018170119150162799342489152389527600225447549032142346765055572720162024479472604899079507721355801113747152672250911735275261838797413262930958829860033853734650065602459801307694397614645264528546877081781206827129049107485573127991773412732560092426114045113882623956046683543311329609633590719551921620392815126826399761651989737348860691729969770345501854943651677171028528890674725862238914023542008761599970747025493164071782984954915940401132468817700691693839895852468417434446806250608724548099783475954177285145359017397379021416051218693729778699658088018998849075885059470622079945184657471340556295821139132535038551150726180139810836751748979776885430046729817043427133601127292022111758271892160528936620675110031800616506072023947250451311576434736609360896155522908924890849941568488020660310580138748834980839584580528314540922020782812587091903808706098660172020013968424919059044717193485991306398104192972301960959812371411568694430710532458036717100146474919200670197055051543292059942496829115209509375831278410697226009620254155002039835004595491733737350431367092885450088279052793787699372378235368722071432592096859843124419939516193541152276326699093546377899550334809049742162773297494123436747897431534621790802129539135804661132988929600898255414463606195252107676724624046851305182369048945484292815391341615303630950759837864329734939183978007179256294323191505217410722070811887693142922750088961964222688177208196052738956005831992591541290995448590942100239804302962572779156542095777736576423307066471665136934379202704557757441880560252975931370317389177922705380981897409452537750478343382822628472123554027219022262502733837368361435550662035933331681913037430407771731936388889935810627764878868214349263671381918457961135325428643179286079176025815465352979148200961231091112464789790950674300090737661613785722566729606863298904001451281288156279560038860897204790646775029285395773207954719395961631437661815464882829591971763574986403957947880462406052241472515701983670000256556747147859643106268778670568421570327789638733960715759626069274096398001710832180892663989084800881347471250500642268288840968429392501408247686160225668672800009162440048631877365453129923546221683400096081782346629012091444681625558933378918451647230831565039627595299477299018292135846567098178502629673745278928935682867792514297070392270397501018458417340881446236318569982442598419481692154159625290396883671647227283838966804861372195088850826117184728953765231728353063424017281948923043345092375406959727577654913693236391546918225133163191857037190093375926517795773031365072978836568980909174727528110928979504722882592387915568120990779003978906892296290047009161379685686032763382481792024684499909720370200525343471923896938191545619771257852250674550950712442302030719378438892525523427481740914555268279666063597635422752085443710433199692608130498705565847303692585727058235164213993225201468243640388841634610983174045262174753503452380285055445030590955996409063426222768640759214031496324703104743283719585393192841970775058047454757566243300400469543008619653308969939801700398609890747114785623064570196029343734815219752942458972610793482023948517948849070031274175903606768485107881051288281446427268541301938091500844909859818096842447782470705362493584635311663729732814374749067646529610543998430071805403870382242173951758640281091804835225454700386818922362624441660550454075365408946015954732867112861600520525082673742933624886332676400642240439713677636371154914387365796448576813885066881896845030188970252325759164705271832401896648709147315372572415419175974939618126802591947415334845492880163254398861799448355630474373258963652205033487286693609554699719595440768332792680815095718603435279564698927833018267824494761592394134618236992077924218279415763321180293817363439757453433604257829057597971053040303949661203768633234591952593262532135953892811430941338187786393777376020631193160238957067273734620931849490609387218633898309574212156240014842011202979631574941193493684190608412599469919414782259081187635227614238374752671138863183911374721044722089109720763694398273178405127251718207857588051630762637664772841410112054389085929448190667407047998932292786545579783831821382688167500107594357713199437211077020436639436506210928002794936662902817186040238522418466751955186461279180371146763841784796119113534080083960434059771457795782198770820523146678369193710975491769419126863158677153685557622586054497055474210371181718041322388219025136638972497560209911634985047671802917115513902603430454118654180460542128265967821745047092828997996283088222105113250953551670335174780199288674856640564167247792186383846152336566794426836026385748090893589403206196238454986955915856185105699577925758221683798196520381845811420543405679522844741409314962244314912758258780373274393894305042402187305196565411208171698858994744613943146617448913116971850560514366832676713290160022519945931908857670199651326302787622454430744265413026134944115905579325005072796321487649857571470765457910285221927336922451023853546158725250627356010428420285836335068953320745890011149610893943614668941417553606601551002848599277228832866264393618036301756493062421817796838875395115767789711492699772118210514713355696499337131233329826937082596505208490534492921744719343360830901158314298625850571764370724128684625757622635102816102944197642440806054577582410783169168482704433737669262330762207705209600976398999560634943186509849551910849225134466799962621659889936267855652653804477982805545872897030225107365724620287435578617395260243554910756355301844205510564640632004948898451684341414874980065369936594474533344899579605799835579907451438283202857013681585656965844136283262881428206042969515485046040828723370499933188150069954405110111021400054046952901055174441219220873481851561609406681976546875621305315068014790364364485096307170365017057054997903605999174277725202843721053839122956272589827470941670360393955508417427897015757709904446679106501859171251437241640818598793006773971843268665559076877240769289921268184163518447261073714400885044891127562144646182475030886919081768708812085970820893643923543595327927600954259069350994265392639939850491908478891993074816940320476029184418467653796430618099520759825784875833663498296754136491835912811758465400184102438813238967727361636693531236641833120427969600664845512532127985407463199276489554237208950237368382800497863371714548913773201436273219323161442922300633373285713300076547134230035760047238959570037366929815728900869654522172461243811528706959207405399866421639545715773025479344152566380741929534907797234927189730069233406727280340401222515849471784754773538408924529024466802110198348056068651521338734297123029052116115826641544741036850049406813962997990399350705075836311368710954274242123756619495596394688871479775671452011332983767596999503351119651156267118460365112506594076436155192873531445072172593476096260872924296015224765769636643198557956343606522759783775233449765144478633501232416577072298246194582863932871804344587132075206946264591771209467330293684478906990488327413656951269421840082973683436516565707594171560975425962157137081904248173013035859158048839958398992372300881337056491679867038773392717949392002146142601875609301753367448592609550060437407929472709954827521481048297521170760296589869619504988421207937645048980070773744699187417433520243817654449522605655720016796548892950530469398423711751056295750658925733141577583966425023943996415904840562888028324764269045293753308760625537532057360783240411346988111799629056602107874704222760666507455526398535961638873749750476109313371352131785717039435890353724061239690729264851239256399041003125031085973216873441495983506072871902599797301813100980362995268102366442572546360311175846783748562760598530605554370116581562963116373323848212860864588889928970232635334345040562526819259695288624328172389399632989559134660099549253069420752329997977980633007787498146683695812407806724432889080447012901199831462305263622945599857211607649605286986655293329386365267673643630211813235610924864932511874595899660912991474666353782631712516195173460795024428186483875375323569893169649218620295196789093715808503806641331610721396031096126817012732019728578596979148870052853219858778910988004943224531082348706259231309842647142716429280578850580383712313466983502709066271792478787016578661701450594679333411752969075645554994247308196982514232819516640302992772768831365030527309540838161195431324096714415537407894425307612485694545904756860228615235567332291944934570337185164061183134523009164299306377130251721213211157244378145983274012497083033310578451520871672912368525811016931535283730396752980192508023500461006549838399502801877308660593952542075867452595344403702030973907909674953612269874371298118886737648869519439804564709587850729714506675874728165273346551283895925849629431317112631695341951012192957124031674023288360231918155864202523315379735329049672810353544809768145593199182793740428104309288603567425561070635691883852395496729321818745755195558802829689472753361595355412799049843341370057970461669503544099280676243258904288791127884110289121426740673898235809802456362521361862463604387599049128951675543977172625191965298787243627817970024904210275834734514930321441911415423627566917577024804884017539171611136349293213802692205151929516793106907566715037656492514764060536819692215442248420146395776625473475119478966574666015562751352307845247064145622997349721085825899403670790938290462286457869366923558256661695097548227354756573253255250683739861220819037237503728298534603550310378465915119164942631140140960707909456187550048601335114318962303289508059808264465741576610047612150998331691443273241942280997019508223645727976704400584072635653325267478856269697146524658390366228707933915559543231378478502921843545978532568623558587375751555200825945571614954486851535225926101122645937946790183140026491939927730242707656716535627043755822726115247946967907394912145921452574989073384165091306718901082292499755590826458720644184487276493267058336141821580682716688420102588013107206890225966454294189603544977714171253703681063172585071435088694275635248969922629543803139710806179170258604768756843397783878169312930539008720306312509244435069781303403241047309649252720450516230960247712917584885862392197280973833830349238954772936655508926785901991821061724656968492365912725493224890310705958754321911384948701927147963288968706256837006310597788141477547082424222459661380501261885645001802947524244890126790649007188821743643944981378397025295772332595987843678200089621680404902200650804926297779953749809283525086166485449850538562702238550174811185984229667852892105471471759218351604057350405507274262922792043366942552252957746749901014686244807720195667052516876942637432724361293988741617176879665443595164243629068127872721405234201901464076946418758463864240798960609379603823587931297144458797579988019366602462832007241327637079362453357962290477971210222328648916724884622034054356896134155977116168459304672109463334161124180695113544299096439723708277532311070268267025194986798752852034425643793891918916096722343347094327035368613605706142466969622826265107952054372007714310499080916039611232928358994624322128540401399537707787353798542258045841560918678419124269151530787511085090684152745237588516815095438025037039564195321491821462295035100315438456203747970576286262546141092827016299838179336247839881036755353303019953697637367820139536403404859270916330102774901589546112123237511650413585924012618805675351569753018715793984693630747255841379714632299615982755076516030697721691644909380906415258284436006704675386267976334933760093925513710837859735583221979674731497085761490171684998789450375873639632663057205826702031395003219994112875227893810939103869422161562665659547524001399870696323364104498624064173956666150886365201326999522952427355270075929025348545268190758023506239906400018806087891870140097687694402075313738515412409253247939615897608056616539114705604844423191064321787741216738627537217693006510970218519865069332745785522359021184660266462043256049741394171661041303122437185658963710054573914952787438529811428171380891707044381542914320700683791795751275478486527221594348237358565734874825762545061811430965720965269485079147229655232043068956138816401594115167777942065131808019342593829017410765039315028704739256043930660757301573599829868040130559403631416723342417102756341814545367442842537337585677122369649217390751826080236033619352292577356347926840826172440525186960059055191369187652933026135604853670523494297613431996872499522993852036755203008344278062753019712655588893638171838558004071184880562846832891425380420956099887456387161631647760963489727700081135074334349919054693453284704762959280593638118585750840095787072961927104618079063263270810939980505955573652982775573781939987913764617087043550542897038877170673328220752232050562794754530789291187858560521613139423982656729660296034801874008515223098059153251345692581357031522264705141850714634163833003032402680047229960376934987972713006576075893637485728148440354246423794958432206778201741429558513346602984160326890318207848651521417555413490775785399551979378961490703456530610701491940171601769525704550562438665478066620226811110535389350648365712113547302465994286474747937362252887926847374235617653983095009495006033504089027140540623010049707924806503675647771656988807635304482145709827282698052467677083553105746796578453161187971033158544874546608584954167401723563515209144320701196082248593196320522697392649771659909082295934833150704299503119330455884881281304726915970038792310943575401832263944960719179060007661952448148926197223632911670086457476170141681419354684230806575637357549213701241470414568544500679283060392118927172768617067452900877068899161772404952721316185199243761304211603628671696127615370023409376403202175224452825866735679862209231515017427053812297306412800389086993842641905690117315449973621102200273938796048585631245307336476682284620739722126827515383198553615735712622681373385184010264351192587592060329461031412266393295648303813218901784581028884937728205434702407997374327194567000454112013355126223221457416945106804992167520507300677351004990964580484169430792385857272693846940528403834585413458220780021091976800953095361944313229760422318464501178430542110137648061887848489962502498988330313687755168413214291249098844438835004677150918391544558137417022775647812241858403259415119030511344771574216780305328182112127029808061364601519622623311857074383942946258750852428264404810094238042678913071324804889053092478623564865466033023452429122935073821430703576030744028465539387703056123139962007926541123018805248835872383917152355986823255247349247901153480818659465712754444529827242110695591008743757667469150448268653565002395723703649541070297948798781661232972139390227146260214916528998261299525358745193045628104927352885122063312827238173879353836721885565569923409979013942547908955480922265659168011965861234452720052033116656773163488026331708688515750450118922948192067907483589532069601163514292410010941244315986658790597888023615270029814581151482371748918467306419901091052400446651439636495354658319963887378335406970770984333409738932035025686842889805509229441263442919684713847810482765621267540685190385854283652769385120576547501238712588931994757785874997739928992232722078452375133113664227975244480094078028958216445012807859238839125892951422872651415882794971975633362737855882992094038428201421854601373423699590451103193169639455156376045405441308453344899992470184803597029785929723874853104354113597491224576853406605668576836124847220652623126374846822502520238048040734632066029520428924555783706349563187303438133315191223906815867306711638862198354472209610226041436282322876644955717806743951003477213813156767457883667760039937380123740209143771759109912220637287703559008810343506171438758674749320929247588680208878641124584389714002616735505903140868609273570917470541852476802589473756703193105988745350301766091448781624476753819725478263975579278879551707189938686140069720772812702821323652911639716733217350523988137768741749385592629723094606082880397890015225276514859749398338277473358581486479144101123293885598967282443465728745734667550910216642695984479416946661557068326782380258576511366360235176440084658286966687259672218099062682260015200540528864955059971071810408241328976613596372658239726916438203839799235501484596111692653082429211357896659063964545495733109860573649027844991318111551754327060756689250901767497911892859745477801826085938707820996668207547340202110401783551158750904253392231471863051047177152763720840395076386915572472219046456763130282287027891402361240774951824609734169106556325947726790114110558748893386061217707437202918374081189464920042943541024767514961849260471265036348126976178570525609947976139238164893827623617800369976921373589270284679762897908670977190587103469525219470267888470630504453891513694388497673277125731379191588865659597863764959312341330292723896651328086292376539329948826176877968783973227533826966232094448338662364707548572601494171053877817069640544314858505411681439761185690650236306816662982230273367065130872970066030734141928969050579637312495134219685076094875881461446412124904852987635571679445846584420968812828258834764037316327476480545309485853619062170825429921176026285677929598962519362570984217851152632733079704249728917868519014389105115333071837601507797379540064004803645454788562173938758189749829404002581129849794862144924558703757321907820790660709056772648044581719489475191660522936532185918244765599044800997206523284665721906257958564165746644851560453136359719490056166627023120684264195272632062825376410003531737492606039164915125918119288028037647272124670424924865656995160079035578714378441050660199251571660395607050044275536917521601060682388038993925546963655582262477874289262562093315281203463191518267148408046370322969809382257768278863497158069499734975433787304650430286847810628114833558977821245412909748927853816403537850393854481327392153176674341145784304106125876662841053548254060807709096714103452676257723384337291781563507383179113166364762221810635106061451680263541120260414357041316629689914572784165011697332603193787126013812030190849503282676262177256986246107745964103174411602645461571637498198744368564133733330514242021135017291819974723353089125546102604999942389174401125512680119406521005387282598871735953125806709636152924821017634024567606296909162503599584304925894068390491390074128916904662823718421140007795892028645383984515949226102946389276080849036280486958766907444577327222972427400417272750824020018438717548528993925617390652812876330054987803608423308643848618732085532757604339649836633851174816164319728721864418772343018015182514573848104002324213012178601743224377909048410072225925371082319635856514974976969668344515556333360641278154223257724159838033194896965441417077131419190102996817056821180270828560282302245365155467296013309192516910959185959383384195020297554581660038685285652842911587542194965922869106963058971166355930874585700886555003152047952748199844572866770296908161822499073128039612535450559049705785630736706312070757378581164273302879371162332511729320357322321595326875355716843149422005167970774195169201208756201403686485282914396848728044336883656602648916608040549605303659553499109086972443076156924935295687899990027735596068247046274131980202832846958747234163266075761747188321806456807022079935494054785125889163587039438163831027684313172681482347801979340286641202668051295697282646943200255462965759922984720603545055196323184408212964777038926818007989433889762677593677378919884625785130258070578749215310763832266896986738077920950459108368414211780006297362649250212194747862348490481623139412593818132259415155237122684366159151389108697195193678385265375796310039961067911547857406896381280017194324739580795868756157640373130270298709940757947273570709324727036029971896788554390636625172977584612615748425474941016832800797359346409508042088015221783668008355464083202857566768469042532624559051847768589866001744995422363822185545944386600812257657328605595641445767314359965489674251633624383774334165212284921669450600629216037085139647591519251552794502269757265243255231878373270447193842165026811020833097159184772007845504525958291431223945749896985858103957394071322390982951808238314619962366299288428245539212359459663747041613067440022983253161832933856799223661959475876625493574710824119689750733028024375701542633288327783910318172979427368421469115809016682527812506935176704956869894229236131192777711697990822010265114790432396330738013957724832038437235858427751612775795366406781685771131414528417629259750751835362485526635969712288291791908560548740512759476303504736924978038583912389310929106064585627762369618846958695695434539976279814408956757479010548006877293786506302991924103783797665368772585846507675801239114319708772252569019421889203561477287366768250406049045047856087742261175656613381475526987291328251636554823877588210873780312512431991872120266376083726481937315236357541061095441310383160159136747546719554405104208227503839925376786693987489248306677438807641586173688388373556207854257658606370599100817249882957619843514452280396274098331691889000211103780930298580436412039318448247052643617466129386509581183795686719719928423830269302125149998327789692432537342371115102818370090435313510408979209748037578583924671678938099926412712519732945427012451642200954816777258314686823318824231111750966120651186413294643729032210791645496875813847163607737250663107648530806309764895781743231841781394167277388667361469083712657315825252738323008285509493332625254037683160050192061511987979436877876587484120184298974753298031368306392092031984175050635039232150783870162705992896946699532116075808008798074288369807107694853711013735878249433419621628860098902589308830103930603337053548652167308260076733753395136725334385100946796993426215411478040898720389655118058024716212631919939343051209466138475640238331546949780653330576202131060360680823747410557405954377537113769924740217109686245421035919060241428253346881452892389494653025370395656018610607380554979402937916334378384385311586072082230421345534294433382815350919597204416516207856730871439941989805811596385522012194558805581981784778029034642396374657109349122367578729718322327305732697583411668711890192655178846484479315237178687984912584223898873546815172484428373217405762466543813807892438148245272500284004311592053433829590096210314567582562731271425533698813687606437494880036792649587707328652814065518801073279858872904419800548469553396591190812505360921820625812008651202814070224066467514952405038205564789129668383501598947363664522687557829362917250378044399850997493358737955506270428555075844291308482510434892107955318006217242520452618053855553024128139514918167075458378199778792746858712698624417361519993839196702629456253898021492628172480617400111763886244696533186548190686721703391426670496153199983101133396388978198148695281425910871480623357318112504524864872225108214880745844572793337966509913601643379704428627984503693172537419769188406919670261210911123312206979707936785737066203176990096972851365026891916987936508183793828073236210184863177349252276148133884163081015546833928879282652051982149047380195921950669150497160819584139067902326444429618625854069568779986494310559178721916571238697520721378553068926602629737988315908630767899572081344215936577839522671986000723017088467524535909101364341326685389436725351675830750066006308015486577712033088969979396551583628766429681675955932358494416293875799436440540098598984248825284966392683804322601351281422516681728308754828073799666342306541654405588389439626598196939228743663550171193967745815163067020023364140420261322012037207395351263751874367270595074413176669630889745765212066774091417504089496521000014129672838642729994882515576770209347688520987357821200627282845212578497918757776368036877136353789857223938765429899340894767695223427188405397242358625243902890603338406646363490249185889375291934166277689649070209645905754838615675260003197419802004737875115719531045816413775477639030966921219924186260212398478347650503440463105228214048291646553590672336996339531304796026946291407311714534697703196473893136403566153500176597250812672809618705017861355321810571178216272419657505974613490475374886749687979684751392631278237596344829096291420400004230124528821131455750713623439318315874621058992051849743210241361087526935961529303092908347271488700622114471855360332071185842715058889997727927047134475077561120442126767717112470964822589425281423307205693475736923798674716409974011558599519239728569308288474363858811327712779969420403915043965121237667218841314150248157484859077219426221885118351955402973786562369720079301207259410173200299754605524490919852224860082076647686553640879116574430974483512128901176216846092970623635370925249635305388399560284131757637236921648772895343719800385862245761153878154663460058822831166826529660681159069409844648628602842257065318563118903252261398730156076592446576877907552751593142865493025892084884331379242581653490645976173607214387487977451032586617991759304793590444785419365700264188597603413965349113542417079405581044958713617089853363452465534881422065209589227512293181516612589968082056607938572391600647092296412975376628930547705674646085461475574641375825656531368696200399015497115920728986571912131963382963237408263324133026807841075619632245887882464846395144354038463613322736894337980381394664805822315298223188564259119413777963426343738181075837986526895932208476858768007089293836187062285892571152137704039756842521266907251972615794107050511278309835556536396522086047737264895264675574156159857995465962177333844974909860067710528305519177405724894091274162182126936155822866724001203958001234023517762302427520429476532435507641340352512238786428547285435275137352898378146206167529455920442113691347250993818366835264920240820896122818746035142477086474265219297431974393493383410293062205220996884115725522385109283351444513760933905536973618824334344454762864002904897812889554049050781278804162388255064397172874995576598443057341200247387097295223267551699373730855596734369449546522911653126396188781204518966605046202253622106700984256385339193275289892891930778510550820656171290043649722297274364115541447221375917914196902167026132838545100194360189517465223087025340315030276340327974107499368366422250512401904052054971503776811305756443709921911935511061488074124632654498568849363804353142327092276532922152989674581646932307329073495605742413266310546324096152188222506367677919654319242736117118896842089767351297502878719384312265155575671113119581021071272949738170092206246690396486694264485896608550168320710517480815446886814900434365158713400990707233898389504581217334032202160056585412697854848256019156928367389691280152128208729732601974749294729096581537615604410961804255564283044396724879962238428483774836599252408409258821314775419929004180326393227430522061439556528119060748211342388493608913225617701934425592788235705318857873584218604863065065196739311844499473347309451445982384138706633976550468020270454401056321672819322987119872643701085504876439480282012881042647425755006353416832777724663251607192665822998124840414599636564985259869647111215302796792844323200734652194462330019994216445308909592577832593407922732600919250420813706346052745210897140947468194741103722101646738121074707646338610424057320111106792086145692156642771391706481633522770894813916675181025134627985731879786754855775749550348984875831677337988038194087274588512440527547738836012267538414062401593860695983164502155705383531647900609863298816269225032762301524359815395451483792937233825194250257663645385750663545946594384781333915704513332203704501223024780559241502934013005689885892890947147318384570786266966894518908069055013965005054498529241704177879986008221947195999045417548775437414441029735655577867948557656166533757373349659578914303735524408255365933336038249348509213788986086252158475161910539204176351594689028004665366872733993850080066721840556092010224833839583834295351270108965447854892045011822317344694071877424136462013479595587605240046115824818553226436168622952245045879822226460566142035474774752398496055205541023601834266333730236259762306123002923377795368287798232160475573989800598654572588548480389269430379718930432537205578352015089735268978358643287767990794616657939275751103541735827024826356227354867205578941750786930354545270754169736862373875963639581393452547925043324553187223687216590793422989271611491863846485163264382480146284781642662177021019539410173664014685670964279104742075432389515129366368787534113523897785780560168217229109949769775492392613904301840481481735410404600035834780497866979086292105208476931009313648349570857722755236825615293321880162367260108324507949306716024979465064374503839433412659833905551798240973442351838183310359828353748719154780700804365683729196134295201090833704577774091731088554076278408821457627373143349846644117886005715385394768647334626492733192679984956768022513863244050997911493691941365763364421149327888755878353926386033125752212757843006659941059767755363880805510183533613721141789050934638544104615803571291227320221613154659023423027325613833729729885317157878238325073489577899913337412982755183527578783754763029471243782083339097932997019619522961049800242220369713980742829934019212310836308955779815310135321276152752043584803218659209579421637320259507929664849023558928322615334059277437180045738744874420296995775739371449947083223974036880575353532888095012842780234146387332966133225315398070223400766716964431896478651403874270802813529336422235498626843099168989712727470449378832873109039370475774116832664172836831272531638614094938383374391219655554293494529804857614568513984122690790659138298737683357853246719239539741305308004104363678810804242312318139250817715194753949463021879127789533052778768377706612361599185375343684805705915347141185205449321754306570034834232618488562423937618274115952541537573597451762780471813869201655671120014289777001735432448307714432431045399438669733246373349159415591613702046687382129332701563679780690522994198638873729906971160655899083617197453695200985444610862129531459239468625508141716762795319679976112762388247677886491813129103715536978136251281533359613016474383535309409538440679499060972818411633618860989590750421720621527993277286037513757373390743378161059386235337616294525003566304516116435497206500857353372634281210271923031816909554600387344602741141547222552253330773037138241838804180562942697278945480670707009899015675392008913016589550536074018062418208910522096128266202795166153079349526375260751261527283018983210446458501055629609740215489444217608469185972509558091975762983929738714150912491576763337976873505946861696780420343141642761445694568779417634223529547492622558992362073389383928103106492048587320790764682106422281937422446773102117655160019606832182955973149632453312041484214957788705261248289527791168545034571697172618889357586483916353022991760868457431122324841574073527917761617069725626828560113529958949547225610426414933422535736134552866519628976650322108689936948979714910916763288006941037985726499934887867496721693013235705546378100905907149395810436491711227051045280395982634371338198038126151548100044793874014499616158756583180858226850057102053973364617198814853764250225404628531020138768084075112772120655219198816735169819845016765804018646807650782636366785288130313584676724630102748733750400991298986766160229994382802357557245411603534720906180569076730615365055644468582385466476932291153792328078505824596655536440963818925694364981851148793121569648294393611397664653892190393098176237474258987068340744041770145159854536038220080520574959314452613273858088550289727633379217473044551266728502462378005783049607106329705584493607947019311931342545222238392454733761206337588725662649412455510149269993602312838443993149714981975915199322197567413608279104266691790012077895456881938762833724164357114645186195888484217924119970688897568570614902590633401983776408335939781005206314098085484194681266434493873110277458413962689822784684781564570804152459722169981677905885487934056366257048587247968192719801498631970149374810057906343749600867626349563949567770879618640033736230668817745964240674500508209811362811068678863216751574318565073046677626476357703234961401724578986567936009961958017144962293855045870347204945935216320059774488310588406813475002493883622754843168970105001998206581471694304289281400004963447038128395597287344185943363466656856751281512201630772501864816401957422270118692716293592478056105965267585261803991867321331365235212742602138401600726596607673080658342179442597984902552716694147039456113302376885463417378739995719883707613738850053236242126985682208933813017749695440196004726094183721956574195666113461625131160717792157920214702092405042967559812146051069004486460782432755617580575369449799620039067208525235233647553041464682136215277547805213161168924342592391337202728915265405920206652765723649284149361400609843045223009098839558592660032329740134235904633494483973803696977781629137734233869737263069246072902105969657641798554504208174799603677546936400996266285301249764919727332266697980338468365776806105763314603741108702598641165070654522576352249694359732625006164722258024833890122945629022532901730008439856614298521712680711859632940064336027866771911694508858537189189898529586603044325297408144195998576520297290579615164360116521555367384397342202251031467618712791925538369354533881241197030358030040800449730447396935030637546782720073193808787198046090760680403601083422720546111886068777935219377889759448291250844498869010861483352575544833165252649489226939704110116653734001662411389104918422760526802041746125903614227464235188922112362167011636893211872265212885471443523065709917315281400609193496091729086333657122505681477167136582604018643427081799328432377609114705749610704165966971335014093665907796960602132783984450185453051080333331893904874447084062636904721260801636372425340045668248570849732423403869293845392296202106704393215758734608316053426317144735660332067421696156120352751807169268176257314225107030366079896847932835201390463542023327161309220874179354702490368947110937843509782212910101733256077501614458323828797043232217306184579964332271778090799963637663929222965676954257853195657549973176233957485663013077651347842880187375423335086932174017888990255315879181745637557488847540632858888935955361781401379653531678934511433525450758570891418285836006892471697776502812388094169375153864733803664487052688282432317065554772437487946225092733082584872600175196228638658011440987134085844295025163798044197132142083403753634175322245081896471013453190807518817624288579962520448898323632084705888045699880028165151628336217768174985374718836890934706729997710815014503708404784233813702107347633972801193764710216504589112409339604635107856958199758182692170530930630885493864243234117607411179883545765276314886848193928291608289496346773542344359007509497237456730866017074861371580193777468742802633959205403395509301396294248545750535490328814700317666230640578258248525998183263187315086180543983258590727871411096118991399141350651707895231749484522763309389005642098096662010277726238599750061793669949047057854785830552704630772973435969871233045832509395870248506041373205183969364030844245156723980405715130342531728081643866765087098602387269885108938863399351823482678523997917356737135367606736761010908106717209500770517862513959185459314960517569597382072556273022508086065889911258962664731740218827160736838715231579012013783026129706835856652053660617362526955200095935250654942275247747267208757249113650583008654396840159821389875245833081894582505197374257342698655771215182831566072803705822160228060000922684419170432521512166352423663639157593566605352561560339649514558262216646463376313890246551991490622272192379518674836590882309358425754100930410838863241126493748413080619200509054720294255563861942985833758276311427607521498744475389204340498041610330428514101653155011658973065424738812029664608006921279378553404202957353538116637130176521792152618040240326398529017739943505749224896080925081907570806105116762637858497570265440468252308292734821110401471257657964543408851436165482430092098485080097983780001677689566063718630479195924148764481593740114007574456919199340083432134197551390769369566443660636320551882021288867724216795105024603479874218384442303854231831654583527707565254006838928678107142585380694065527927162878963515322982058790365213166974502657266688266740525976718881549014392070964382471525996341562068086351788464789523780623426418812454441802339358145844545257049813395595574056153871873130620127122900055383733812762954254566639885880228103798681038980584604877795364884403877561245728009271665778137949045610562279466470549094547700722750689937002021025291645380350603778537734773070687559254431771138778984781093772999289258610292027761122384171931617554712916970706192459104492064987895589374441902655508079892533180261522298666587898334030087188869297957823645290440734812695405425435439283048283751073927657033851559349632362830531538304119022330998971048426567626187424820286145368521374581803724384707838973497287651461992883602629830589903352367651378371643987811868188957612223331648256833382853541263299718494331097443614286613415757106755393559677352419019077886438752012502062727146855699819821110644087731410410882534995969073994853025187772831493227446280687972749088277239399391853340057292494998636523881729349085760765021644600706527667610738909326841774841820646784569916452221512651857346682853437934936763301452674456275708159547294712613943614219217502688871652223095608016627921810791577626206111741644426586867479535385743345655366238815799734224289100784096192541974803210394236687716683961355188086545245133671528384786275509599170528033972660186822175389902475073247240381166692623993283072322719216673512800746572370590049606187387646931733398090718091988267569780714088579815404049178394263200081189266294577431036581687289768199338128621841471716507602288768175399852346980765205445573675205785006871511665751489486505685287117892076884821676299447492675064313232621710760215398434802053563734535767634121460066008339051523515198977585042225224858817924436073594887709736206486552927748677875515339546435230454425346146772101037177999028954057911602753374319851733953188653169494562585211351712451651737303112883624671562921692164370736350951166328947567408791571565545352598504461551219706503343043654548245172018571785886801118467212359536208847746361885929455908949264135974966170196389045200559105150667032404709536695799817020518476514043422076292067222177613147620019407962678976211391962172795442576317543117890526780448329070817030224318307885240529443282460825679940783910768241902029763466962370073050415376769268512895972880217529903537119955508061958719366201358779081121706611020708903582166355203528286350608968862496095133602883682287737022136194333090230910093827375565108258870626698800747475108763831995557945737232215124919593172975361871255577113806224530772465407114556027117464272606655300807885233365025322674112545735966713476864066321210327880628583558605464408000069802726958222481855091295785428482497258906422613033549930394651962078146071745683302522977947414209863608839362449241370666826843322234282504649596025823883052243462365574640589144725182797974176524336487938096378367761635758201804177565164082440916262867052749144850498018159921402056123983325182091797867824609110577944809664273028428388505726562104025469036846428198955920408862629090191438033898952991390852029051478544790029961598509269980552980008083409440397215864520993365494109699588370093785855733525043205909573157600715015871422378556818198831013839271324820817247728939563274687531364416406262270742088455980139315587850458997403891949946389007864155394549300909680950626421593251100107791708230958237441785847606298184770806664552624874277059267851658456154202564720914802885685564981559084564785445655446737898395240974896564061268432178147201404582886505398903435600428460362207819587146224314546485595665852586755244611140392071839950423314590657501861600004424435504774740283906262607657535358882947014236721205762236218791318946812984138520486859672669566438970192842350112924778306909223652043180092234580816705905597108939233838124584041156145948353099534275376404716841363548016771490200886354792375283811872080068274682794136437288602264582473955173601090318304580230708272620324411881764607668610378982582811046270445610246128745425223958681248494494771794996494655659492251224231577347391240617796004719195228121345842609302949433755168781896341306924691051276069858692146175344848853711309879919852981439285407930375424862468154650141025312935790559867726310316310095872036200430858619574253208953610160101323567501855911369991042824718008877690574826150906170792809447577873194645350752970225900089988361784480021613483989823006773610083362928031971656593613003663837130727936380706007705380264720312130066338877009696871889112729405270787393042068564676691767647502022955237921391240639786028040213314838321407177589293695714142688118841056904521098608802520790800241661153373248614574018245206045650857587156687540126058520848776033183431169178681401662685771773414482881127193292057126033345764371581688255549187998909792871557711511721924495556629637332467278063454942404576679157377975475157862340987499409670779745669583431750833241852629956223935155187768499022400535715843739438210145251015379997788370985826091021679250330516210909641536768969972743552508109189440506636509160164393815856081463123784571041051014289621410076985060215831710906549998397090174627265341484102536170762417719947453218634039150964961980479488494533595891261219764231659427002007899024317685140866074271740402257960313989632550655245354514864384505379776744109814299244581702605261799241504162059511611803804435887246375819353443368784939589102570687889214078024174923744743613419925999222356658733024335147595373608369000569242894993730252441531686060530976862976173756593220078653400691578917075969063477378901327649465370864015135246652283954254751075551910390544410872780619770766380750152927083951747327371471041024583484505210156820115959019275899098548507103068912663613919964438438262733047232046709027332513898563015546032450378858864844911786697585520342228264082655778457906141524403803346709732525522006438789993799716039776977597988960600500567322287501931991086900170538190302895224230027239028935129676723399527662592152258380319490047376723189560736967210532353766550930800038334632047426036146042931348662786110190828644179344511943963140159309265272504753916343202468210881420406411458517851597554136810233305730753873803387475876580995509091444376456310779946710176589485192822443830825125968179721841990673102704609856850361042734302447900448232874870351393353511046355400253168328436749801141519312156137026178422997737768968649076864201624186770886778573274088312049558597555257417492691448675323322414914206878455801360383709794874656141698245000028424235113432337962825081168487613708806484488296046133710313162779113651456696519727792676375733510328727860690651059510250606351698532186477969175645399725036557130919447608046001223034049272296375529222986553599323752300027752375003156926152521470246122492681877492716937555381897542369621560155122254913435164913277165230855163769975964700495082984501324257869008196723933127939709185253711352683086833456886068505662862733722957322108973502039092649103708415000482095270846556501074237555791260589055084784661545721620290352474531981168498056021745203614237877625113205106808260326810995703616305669471326780768605418814251942296290407880225403226109348418175646775238064126477526819884792820238617905943056281890055447535516431727523433148762777197618017501224222840658018507245064766128930188720826722979432731925481120905111151307760320872828579016261108115732478452180607758672691029304958854107923050371493350853903707543911405788505861849541971595007516625574735874072866412063008145874192175364132357689048006099582270760041543055923790947703336996409525658461160573089451437093112303031721959439303170683668472792231185418361618333844573668565864182163769634886299711879109870427871280553393876944898734523156044967259284062167854428534571655185024667916430106205828585968350607558290365342358094928844891109400876035381375879316620753472790466144819040539634256962186949771655233293445832031278251155273782692897911439430090623149372473168611392529669405491971020618885355700264208968462733385513651155838411896592581131173739040669843038916887669367059884890390242829219225230292445828984402515320244381416937810860857117297056370214466580848915692687434184023154414876940837784538043334335038787691208758094629298444815031772967696027660920015241805915592969814628769760001281730250379593053960266561010874082521913632660784653213182245002775406110776658643683672155377834608132879097798486776774780632032258239999112942773363280429045353785328644907795393666955490578289951832059700699521814820372757928294645322015824692081734897955133090154330809975924575750128606896382219658368029675468629931690229825701839442745778268647502395531033995561416442500318604034433739379280984757725453569319165043152427369411678491252590538808910885906183986036129891140580068455480125744343874599817276509945528973420536056427220882587475189418730456264937785613428167695671420931168176633089643283858451543530110408402670398767043975092885403568880680470704019069647572810982036622028813720335621731008184251634672301224155005508619726576404189606610573340614816916025540515319060559923798225990302731844277655104603760307738262969559805771119380460166043671321916729998341153399712762353718397869152064189553377435630179051447156634378263787157729668263022689366754865180733463683102173000129954651662481764720363713525395144372548615963737038781169431877592101264985156124963841844089273518772122604037264196448399112134832965336592955378231634329219942545887634451158941343526711431520863402867166817601020254655809530619329075308659595084212866923481553482656612008803030261354712012547202777891857829816637105012590975824823528109374165515912002730507565425165484670743737256767192258152118293976520598386223477558142994378687829021287018664627932147657855459905509219368645961981387071704742104835421879283033930805658668854799755765744417268565657696483946021851338281731235844374829488482356591401805621619064824823687745977706715151750134431897515944585667830730731408341899764416836969659763270124807602067688391855255577433285226349857932596388059302666962606116059140008560078133165588289317869917246714060733964461397164901459284491839790586300300753462475280226881284231180187624884365823492378199662308964537928056330083779963761145092859152872752176423220674184911424293576669589647519495881444268940623717221155038647189360156414240041104866647775317890734149213562991078641372809083635836122081154111855235172932814246657951779029208495714740549044594944532998616162462085209134772052308757750742309846839997004084822372562518328105014774020227809614893976641543912144951174564083139882814299937030880857054067789961758800505606041107284907222208068931484010645058404696556799442731633042787942896578875915172515299050897665097817500233019580342549917220584719392620214752603408384517512436602010080949617774180444839902370779891732262059698836082408076945061817756735713470950480821970377591889430782607611528416472253693916666607028050382334790114378624438973637730580260568198425923210380897551165984862420510183767785089395568026846829160510614109227944829824961173428820981293372251888049270948389567963836958480556351447154487364163958849925550028960490365618777941136343310457816908646755995623332569676840334866389567163520247474822198897897845407918178432552478220598646099090867124326299537814357215112078944523021123560485775917349725762910188683203238249902261443868871586519559377618591395155559967475131559928940683950274459619168161052584213766336332373104956904390150564348744622747083472404191036081292531513572607004663492555563754257377082007414554820700544818637078722121702249602913200001608165140110196814722912805321649854046915849017745298825150904296459302230858539314352367088417209508310950416327581118628209763352837862954858496341985049790371478912132582538568301161097742492749134873211250883899898694305396404811313676315232120733755542830628057687513415367306732702603148892448841921026089221716306065735871427272840350827092610450180679098829499512110850835989140183317278518741328922633428685933312548068949761814825970788495910011826039542570763633644412904567781515595440328083884587322198110832015701720528507874275519687373983118005592267301192544145575349148966745400135544223690713826873850009670048559582473752383810304756210739474911121322497067238976884529562215373811609356246892357381991211087076690568957488238421288607654567404177977555793416807606475548304853578588823766288211315478864001844220002403046164609631066824235215454604652655796848712387177187149086230308305697518166455273807800835180953167557687671229097808945630930732078930253581165117526065250519212690567946148510310375604877527845537193055256203743422773873413255604746769318097843303138504564213430076637922197556121519953026362724182443887636059886188885050435139868876752875199392475078412091461262454658941792629157409405528867955122226069934125192150043281264204234006994652467091312161480344534280780292116447708195485209425169298536321302780483832725349802071594711589577333153160283092292993113933685810128010324748571917062187687248823542684389478562492140027526111051518397227446903629161809845694638803769885885359781913182606708655279465844776192601755498959447728077578454317179065253589010381092704139553399460302583536852912927119062869792136436968826922508736908993179844490938996275374484203407078309683247445598395068884341739866247703081174635354692240343451517432427011910073390997977945267577340387924085250632768522884483714087891635434575498156769439655232678998166003630969241696433130893544860221752351401985525226234988465958590374139221117422325031112020328761227879368301574050835614550816879103773562207661368430578414462888859060056216053459637378473712399019566669794057788821616316474396158015382296475478075059592359313796125098387621776739801911412650908773195779170074546823522690176705627351978000016010822029305351372883117390856407661926962277230312547869861413663422162993190832433628048654983734101857747119083950063436222904558166188131910557242406476803982086717436516265785524911586581691338291513755805213558318310608157705016205650017120659064647346785636913040072430027785138299837753908593596844427873073341229162305885383563277025513388851462963996740035147642240213656088611085761185392588579525931029137633016122533500767417788782802340543100831995852108886801224924199576298109844293191826693143480740157331861938368210982500785403233474793009286934531568256768855504163301748234232761241163904477275285611048112840400743060832952173706294943047935185757365768254975870905902170629595319657993182041953607736613716656025342664487627327415837618619826625628512148040955029148482465046791398194475721629480555302997319510683346623883604143067038166808706514026005399933681540395942272183152867631286927322136285822231663033276379125384429838420204642728714172940112733937796355645808908809110192687255083442610354696936457672860409435452406020935149666939153121232940953948195030273782140378698002578883258595076837655133044910655087460488639009159653120950077333378384067595141009283776923792096716414191506032042498959285941505567067514896339218638406399906947087772085752148887204152726053226940440000527902059535823929608849397546658617400168288470462580147902219407141765831910921917373788891705427927072122498880065341998904920027578547461787491220275893296981748916975347117665701510304037747208351576211191731942564222693307476942218956610062373710884559063071578529109426643116153363214244582295757602616155125437065585348632630426707942454785852329809079171069053885863839702585146891134996985740986997285251370560247425230138682228816472820816625501379565657374193839454488181879558273014427457558010284940997066386840237310998966116477164055603086560625492583285486153913219242067300488094299061960101757159555862825930087836424658696296362635414867925925850576368885049551897851281539519570132618181645065283460691488010148760763241376158239814741329314964749529320193840499519187762102772669337106672021195671627729282409076045710058836444390275971529411351584675505492799199291148193241362222178881476173992750908329827657175913689058885021998436695430334241642640772132006967440469344478736819088742550457106874531707715716748803226466717647134206345272134860966458740401450785792575597576764993985243585567051720275436645013248980619496519382213003560930776750651689144282322211702901221649368050098376136822254320360446825139596261659530029715068336698310917162613211071788903674335980312790998768323049107400019989265543697508020870138559676330342636568649727167769326476737300097201428380640155428098441990362267985788577621912453764465120475365715745071276374249306059537294580977941628810270323948869926055090628937552939048759928131651371795629064743980268076618802864977050622981027545973980738079640399267881248238608815973290131857431199602920743003725637969311720646379252634844315348037943432821416501415554446660849172709876812751568817055017796625064459191257098476923761670588184525247580892742603413935199769304212233041323187164503799982299367626931451856715192243574823051725830680510371747859545628367266732249252301896298084259027998503331384664138400485357784532728218296248684371986372834753692330669394879012517409998671991505452181246790853036458745469374186638948322001096572649895605690515268953473540499778130437090325438456136703730336403052154490480498483861718526079496125720144879471237176604924331340639593373651845396690457247346909414611380659431265359811719594845346983993909373913653537225555186090503717234300200683366439787720948715575687695011747560028362242362623147989154439822534462889132776262906165052844626314419428739489358735130476552128819170353221276379299220756408954891010968652418242957053012036622461365122194939810246018224534321028492088628157356660120469315549172256423445407245499710455556156796573773427542881974463867703916039516998471025725576156245663833990599510643365806403863863412742285797063690366428200684310992936853709651688211698871222002659393648505728971947867005212983225266293266664608217356390530614405261845613976498638126165371639860525044028683960718038268822482923755065739882873824207477018045487590207917764963963995717179034616991317361867695747104114362212121839148554290559613386157633607885233467180558407913904299649870796852986083326294337007732975484838529850210337951895466304585080117658709980589440695452512049357049660598687278638428499260427216388601901924940968426299311114379782249505699114724808192178718210686038999801059522371586783285399494246892377032661880440529768953659170136840448811608814698310719712580021143949104395506139624509965189436036349782636002044991482602648775815468416047414977654647366186067186778456045427672435760107806850905537801848608225023467152740146634700092500260547214535791608428511312732957227520206264863153494659031870057077952788239425595239255550747508400078953311045427013763793783619357384869133406206467086456845205256568454886847874659936114881744397829113037633422318347299968066719302979760906736028266203055251367445660609334489006075114531688700416870213281298401749147407836751134385972287133892109510180513401381791881032815007856368178439571648657905311964487845827147891441575462851274200911940310303514647236227702648813459268289540356093694877376018356287312868479655355070152675692185965868733903458773586356672584660801013840601760693895079414601948011680720300037765636810107175111382867458173408961824906316226682204848243053914266716241532298540568621369098617631562068497847416302746722106852673703693819102665925545621044329919058537437151388726228436718881251434560226589904130738805981189255111080222723883368991871149507391809814346222198004375003770618258934213802172850986264915982917871522509482207715938506583523202429300134175044229150473821072675414506591132928107571651098147800498571561050352783784020756033078928155334142379024053766621876069725254861741815245300195727532522596330952357222480962472467519808338920972632530310669312931551489338635988633495840977991669555405806081658961179025301412961427461822357313033197968825508340347757063491580924722340306101978759271951853611549044381275077874553278661822365941246499251662127587583077436951666664093098418882297463156548022816877348398970986932260954951258410848127313176594406123293303523774312322068102848992256937383867657855480379434690679732007731880049171164775826180792295406875145613355155495727617095640718633229636902042308862865842896436363436687087938384778058685520676621148412987753463632305760895716351849166895575604481458619119374789068454425692977034335709790793766749094900842836738977978564215049161195645459998338283912072294987437171571009724383738219220957130143060165819658073057951088707910442356961932277073953325220498586719557508024548669590573131629034787801164457415248178624243388393653973128368791469458950172025445520961897016628383277760489453499147303714044908981969784478843491250432782472475847452375117501814605643921964822720890052180792009715511834523156724522284999775873520295097453044363567992206630027577698610264451715394325553897790397405700113468687007562517438916169720500358189246491581149818687560830144406732586585406457628546567480596512146044671858816239916592425945383333196656981538290854873752837183397610369131233269537166674102012362134251550910220890401500749619679298317779684089030338611438719672152043200972186003038193866352051000543124968044180237633578704644868730989270980837815856365645118809581932681075241060077839746173785008807453766338415886851657338182600020554174926322231838929999768821250892350970601341661785273040243072514660626177874096893349860934096413086813067861121718754789343413329635999899507070355249108547939337651500507391297067699218088869549746432732871914205370550771904760359168796368184948732912536000534722124782384747967118882548211775812082655816473028572450774344867014066682532663073798877180533321263902679306057136254699641158917452331863413891158442582701511286782530378593191087548813596437651224657689682160969093222334903672712297917941089658963581331251422151155447412739723072407013555358150683987483855377497969637146449809566592504152708395875938575670633915414370809728722988544233470072106021950352111661816559639938392234120489519984651809628264280505041409150804744814109747302620674882921230913592502161807776646251825972664189030978403026797542487450387558059248133335673693006693622599944037509707551870606335940845322488769971872139700733344443346616366360148142595758963697276728260026132583551152134956396680959458179618155241762773427726678565684217145520682417582171723180177047275232610382701779885023369887332267067836914868748985873902946393743313733648024746016109529663468356504186842999595655078062369005083728186057757390323502197532933488676980384319170279588610519441984892462802161527854307859530863424562006410076084615201581205374569137682322543006868182992845166867855140626837500082718001301964309672233233383770384102447696914194872380178365033437276882663255983677859381009441185252324752038325698167483971920865379486054696168466906585536573634492614056385254971605928032971994159899304188499664659344040905507709022335493142582556167494521229182879667023948214470297346180848976180924724063823502136788043620443415998897052403409427266848911708197278605989977783838287030356328598201957609805590692976760873785567216956945056886490876715275163856775812073086749916825120748959363401519339591137894514516990646989162493934560234121746387847501609439633488607157350684326853525100971412879461285847524412482779680962457292634048312271629157124576499093278974342392836775586268859717068104505512288142374996310409525850046708341715968178836305722730001699409753842076360750380442679955004450253313647179222988911840262331426625414458229054268552250522607239316959630571349063155381456032221108750287305678592947888904319201434655970822838378873193546528396649707366555683481360711940452615974762344774825699133237934215552300770721362895405475832344711528529721962550329126835599080855284260382169448724405765285152929540400658314467074092129144666726745939954165652457160346805298358745853090621429715267938567387092432937587950257699091439487922359356584575557950452253663856719788640641638548902856362926229093632658960420616301798074495979073790406593413852304247720889348196856264449029331514369003145620839948380245110791595393342880149048042539465862480679343472151744160180852730272403669876561016976337512080172038992586794425051634185459641782638784517402325555532777888857981932909650965927263784178571474936560342285849003082046889433646919899136290712692932957554924163893964943046403153437148415063424668947492550331666008638179540258690077228029400055743120953573632668141417065217611079072471148232947980844018124010626915303312170355627362455411295990970066117989004863063380567120931563853915592932237700691195694846516899028579384171754681905885533735923590889777759112907487947762211573965499120794848498683930908882335501222321308707458499308159525181381352106369035429717718730790940488455759686171811773310884232389110454674193267502221216965859323846194713756695477852914133572010529129963288389813748288383873895439319054551445568584026972763764459787234356681522528690780543029090105905272661950902014058927937477028124999490579277338653561307905279941287255705152297326560912148631018941026176147805833172320239486439229343184965060858147666378138683761524595364020383786285220692139540124736324762178385980996480646386916068804305927048246484168340232574570879249375968059686573586399512625430546790536918769973081449661221593247922159099800727687238558382903139665508289022131194816388273516495465511827468277409181108762991727533307410936429348695402928012779764218044798302791797466295585039979799145687115128836427524900379331679661237817555996184489681596337039199244421996129056038422734758628628831492133889556826121890988215775634070521746985553538838445077425612870601604396369491959225534932793703763638864558746469646072697673628499337161587986144520688097401456520786103636198510194890612598929737027283781812835858442162600325610841729018237953870031678346804046782106661998777727645054566386814175226384287866172375676772625648116318767432552580648703083311705249302100627213126188614964223622055780702622869909336904033155238728846257532397125123219589710369097145252685890332596156464470685940134327582672075233642869049208130125611947799960675295519356395627582345762412251816180935973584710477798846410919241120851314672180307873017757032383182152611380548989201694305292804066203092024989774197356453518605416051734670265792110086497873712652801057564836962334810752647073834256784698038285690189520383202179107807878891999814119259024595300035177349312850162407662027699095308321389706296467006094433975254500167010142413299781556440755909896557816474673129683186234558354063360133770417792182241003639882146921673561454258996756915640659729244523391043656784926017154560670746293453966304351883705799507807421497577490608181668668441440590025535297193189249189102746703084255236333026944084651063977514999740314178930872645558420840486764640733042539634726147188533482907036933844843711932920304593561395704374539918665674922455158320346185559899892944345350783568211542129131303165455250864453120342645061284496139429514580587477798792893142446966014851646707113995608384688954930172855239433240690071763094163168365294132923804660204209792369481243093358510255935408389885610502466344731323123492514594299173807112599540300945260392624715578603917420792189765543710012295085504740681504835529156994963702414473937296217000517429483198621084671861777154661149494861286387341682203985039557418021026361141396869638070763720596739372486773329588994004629470380708330206984674308677145040349493424885673382643390602664415525628071356347029563459191889859495608287971476167070797328532454628388984502063178800553647994404330376920965008603031792727569081164682472561432749980494817965314564658647810180358397061900419270051896735317051049856623487227464145016704708610464478954807730488694968355194993984144063047831698827508549732819396444454039184480283025181251260969700195558694081084928470165302880218711181141530582179014666768433782888046237274473902207212977648741761822747841544775045335070573056618145610354877797602365809597650428972709208683206719312055345617973977901731310962773717168621827240520551460837200509358027560825707118217796749876142978804313475294594915950377266442228557265115415695988444061816383713515956500939422480302650531177064393098600629669705255516396588973319338282681110381825346351496167531444960364945504132044206254764444408854041048508076931181959250741546488283806269643520253804271225299966552665581515554379991267267583348112402781572535319598575024399149974842630024253411734472860770013378356335951609419600664249265058895682407898794066184385425088434917560572107421974603430097746764503840480746517003089976532297178651934300421486330045644844772589859001608368096068472964749733628339545582610385975802929598890686400564194452444577684170881834148584144743711137799509658127297309902032408147127536174314047634540662414018612019289352009613936229316461749470019262223374425764626667720797944543650936498139883570136223264690125694124575825544651574332228523687442016929560352856518034688321047988332958681437485780922088386098856136974139685749861844780103904010895776303478372796832680860092138696234253288882872064437728318702953273645238885603608441384072327325297577106495081747298606577269340750583880917339396691552100856018315578120872804135672713791020260216900693734533369752382840595354077465622614062904065069053230981564398260537258794423738748680561186575496860821049908931459041895902457092615962158208823631005521128708720455829559421790315405171927015642081811187611705686046876796531761790717109341554848342672476037348720377860732518977845887197129859378419297185835978991839031291109249994030493664800892450766888836057038969714263723024828932438165389708447547131574417256100006349562305810021388305095833492925572822021166833378099586785015448379008061780797839156740944143880232607024281698605301143327699711823409469234449696192599600113896838294148133447228846718633831069525558702287126036705812971866393711252065156433984933333680782339208789467410132958601131041786871545148806076239154521215242884004236049707738926158683966348475228512661080867195181773877814813638640384851863961861191987223501037066326064043296466495020836333083596921893480411015251822430421776618945929889498678503943478102514813101015243291640235085850175807362046986168835781537352981429085533061428843350890432009759610214127370839439822930070330014779684813387988075697129665797918433396251328674848541021830718541497481366260128235480475826588797901507466727355382539032166421095604080804488736350287930058533769152212254812241018962599268221387210467836194875039920970725142391889763307730173164833023069399940003140129716103263328609078904905661995445928652875301403722488897125011549451675767317111668179204619764210461014553492938938959486682605498674067493594818616031335919525054044219487582229367874891314790198162084131314389578425601630755793148455870140836577292606460529052869422419684706568489695302054424906984649576457780239335468173295330102110831709014215477424484559075521610616532095561814695975996743520439853342972084090577105529102217521251993304028434113463239941202581978765974707445169504721338627812519964068720060173933170294518623298456568744738504144230883237249884961305818707908694397466560553123201314192994940456931260682641487647744074933535544764158153360939765024150271218429894210835743623917256232259673694726035304385704979495413592716208733056508202687860691994017261552275024560000009203764706546307865563867581954182786498657347843237319314381534505269561802014818466950438342945881985251311788637074127240286337702692310618713703411894517480358455869848589292267937663456492416442697995459630284182447015137740146264047217382124583755265017614196414823611934516430499976468219402142526962210247844526445282071956927287314600313095649488633305557598150324349908971500767729817504832421670464251443765865840274855145188849537225849960542977844894963941935105646011126101966762290006085637406990918305993727767837138161700595348292770643502453690914146284676603045170251376219124890539345754621725563721331106189210843767119639779283606556652957568000474282575075283444275866569448397553905469304577235718138584707094698801764951748385316820068409160348605050657969716540745276832029955997771678300900459319702655930610675008009884787915648807248460343103751704555937468459550082549099845986248966784075691188541930428267467925739425905035461513992819123721367126431952556606649384433917163825908023864582414392609185414596767289421246836286818589067469450935288092456743879368611959935393443860039367552130263739911052617350713192104972087772656624767363905442198036653477516656174848898503450085265682229994034161284994178019761603650622891482418565046324380056733905525504518130691977291426520990454016549324570184047625743193150646987827064964833797744239593111754739548059253886971226634687714126150992724344750965709247971876001174153479940515434130410310662936220089847923326909022203289544962522409005380336563251270555295025605728073973158444416815132518633575644420887546412867561882917006933265362464097099398083799709500023412379331465890378506182360648260949043113756618457804576976398393601809068109354226605198991102404701168508769394267272881955902421715958180507087880803617274970347759235172659763940448693161873232430516257574890276424231027081784929040909552379635602243002654421611925049009972901437962975417426212677297021002352298111932452394395608854661396103538220198467244540320213929413627126928340790412063634162254322859194726334171367328060056457408024317899103689333521088105948746718907559856417572552743971307008294693484439967717425074573891778210042811983938831895721877833786381383244021066954089391509196363621009339786569260792837022841176047831168735277095668911973102960398507704247965892951928615008404777236289391261528756786161086790433609062427402297794790294464394717255947960948339876333212462692971934492255699882364224187775771137711018197770112774845079239177529300883237567159373913351193651823764163885382165594263385682460369289092319830560789284576965697890085086870146915329978482835786425690459921468701622315369267005224069566467701542028197448865560923612768432624883303367460737181266788749409057993501097012994096801078957935062647072358614979139755447179403480099379232039741394103503715247215832184704119148802950462005952465517350576840139416664633700861014612716862745427452305069701236234821946503375962868997334755187417614507640456078893025149768455531147768117702304705485658942114718932644796762302769669727375384997069243614546304634213811450710145023965321993091571903205072450544191423445310562031776426659515419573038578232971213711537572407047496759675535628051733564186401612960564684111384078377694256439136007146101454400548421934257744731086373343219452784618425106258244421656458530477024580463463092151284370671206388851902761408893133946057402723378949643291069102280673918813371131424129193334854861063629196819245388618214455563212852142985756149143740030585806364084633708240400645163927156262616397176972341566023439943204425775935446263953519373695298123807054158822895404479356325499673206875138342516633783097783143517526373401418476673544506296490828515546248344303892472483851811247829905008761795925947952814271788789228897296200765743404125357304899813162248212346471179073338738211217031964301085161241743574007973992986747594600835522383746634139255635392166747514242000401400415887970993158539513652137727018984115571237472826227312057599306133568520848813174690348859784255977883165661448476901433904469944557379006717422175830998164579401041256392417084334922142971400553478863801561270765983962015170395475968238957617462542226240840429447421489127993280612522097893222004816445204088019587813299921429753323812261947379455532539681228177824879919824887163664952193211756767164577952408552992617532380342229316163009192310110268479723769513460735033583328090917006294474052852463110499570087579022166495605674804747336973600511781312457062930343278245753461815077500035102782986767766484427347227588159710356753071260185796786722742862234664013536969628422644338676919400877260094592916935890143706964062551846161469289602969366570353221721361093621038411765315172391296193181137337348787773606234759070355780417965654447926113745979801377220374734281048611871681928842966151184326633196398497337545286792581810175509354833242147358170976145323146954928258293965985939745999158928381477083343249064152881801452647614796721822417415745504787264616766277129252837625862661940955247421338662462973553890537502473269793254931141771405654657776840757459934838048988791027332851179515355881795441130157793135497721400962673812347908988598527893763795089367924715643758157660524002511496194688643404236202946739875571938639587280514722908933119330043206983769589523685549472515786461276838192677046085117640218810905580894603488227784962820080677198943972012376318865533209045799034547028416158212952599553550746565745727564289447101438243309836907825210524219506884674675333315931121104974834211165263314362910026642356915223499202624289699949480082999371621962679426044851634812288833736332564690484531697605856506085311451355079672220938100389161747796132936042723722863747183210559347447761215429927556938731652288976524129445445135524197832986767602148287465472867617499302415768958096915311783120559723489934313587520683194963316200376995885900069319523628532081340847028072590595434776518174333471893795803778012586894336863590020321200721305991391484383683177889342280301703232629492073909425555975544007226052677190608015846619766852143898549245291080983731495680560892658942872959538500856703299547772031936522897730952802730962635074366135396575709833641417197595126188665489905052257032302410116048914548530138634432488856591258607268609721981717987462114008523664210201051172344347147359134594807772971569064145579174487920105149434155435298332388593222531360871827938478770805875885309625955629379773293530635008453758915144226665157190286471466511437090776176428229220343198819829445617650920283963781862187422066767984239749437008156862788019547322295847713023122351919637598561007032060989083004258861845852424188542999822207589505644979458593016869377000685370438107329077820950007074053953344791929361230924854883561896065308564596153318277568293510416414173917901267420587736515711474681808554733933147047285558875978331720608636164477852898020791415291597393014756093095625778624653953171075278273278964503811228610153849052243928135421086922402169931966147951975927796724203564893038934788854344366142040999456576773616346732905057176591854648426786951683692225861459529976147441513546568807072092296902193965232634347356043107262651643543676502649941232420126476159063348540163549234500080106279708383982895008133177535753056246983308653910223931266972033622454780068846317353102257167620726057019452830701455787278025187932980538140026369823536331386445665317400116709899336212038049712497555176921813646904734418053197952908994493896985090641441476090819101817190088600645359426766610635981490976301949889409254880447038053471142520577595498930346851202331202702257921721886752162581385406115042391688507077312113241420555663027379969317186896677989369772363982647243605838923715054505359230450259366975005316831917326205510237578944171818462829163554093831601807051910792293178490933282301431643962581725642321471060390075378145031908253055858462151291556136197472790269081919449750729181268261905904010939218816176049834471418026085998037677566907905956285520145245591275559713146249396018326595407209686009623728167590204816642777344318367541660369864782987651028059686545098336745203702158100107323965632328846177735384833344268572497318609960959162357089239867447318120718242434169383405386858452693966626883911078783840433616032331785068756924282168172372200832645414066739051898302206515234702526249335235757417533454721312678264642559831770051309953395609578079691415454791022724373067391999937763310346889650066024335738893206951317591624107043633349561164574994051349548940879159144079644551909075864439006430426770500642713210829797092048799336572491363347508676045428714269100810844373199211495326318012491134250588402396462432005772207553695813540011002050137588294678035413580183610320527506198263317120235150891570977877670603751923437748936484676266578247642931035678797748946404720340800343459069943712529184242668028418150525586370234600998596819614630130865689406564433115875028972175477405044808367078465947099813819279268713073067826108265901071070192777311724008501293225414391608468385971330845768105144260025076252877287409283553693545438300759303807808793480203965501370186103703345217450419046329303086774713531698933416525204152088910749623510290558875179680194302902539356786428752121996397367009271543558385471456206242638780299852910195336339639539021811813634562102618512971409391791177755705654460602970848474290455442553048131471084586877177940418066466975738751510630366988123012592206657144506314307078561982367045495145422956132705078056974723863342675286616641361097275239851827352411927599950660400575135530973967496447893735715850315663861222038185367979357326443607225699646151745668002699866513041889202824975087190074388154692001479850010800125539713773282103796975121944527163197391718627982660452023138289889223952373078971824623494402239955608488546016417779432289232552836734750205640992697178965445029728890702620340010700581663205599216231563393386789378575665608182346976911503520865715041330904036675807862490662667266035894285136322920442442999091233308441065980200843007342446304481570981207123353831263256879857777946424782025296601460395982901414025180520856449813705745287146262478682952351499492448771746540030317152629623673439609869672841406443875328682841135541836054710601329418486837211812709023183485354012553419284610393902833100282974538873588793457827825460912294141892070849726012208443211271148162923156247767737034082294189577003475791420607623629074315699868237543889656241313107203814658442919647124199367726005335934690886457627064299398781123423883069788891134738363206502310258124326835591540313348140703063715663947496540551747066548777269007059740848468722569854599123638943975196336500773287373996549194784813470765097019102599977631306965422615619833687725121803713195485740907728050030472629849219776178933712530778516159328143229474263976495215710864134404255860005094278704159920389140030384465742262237022915892783675724426428303557585149478699327280612679065372837497795247021215427398370115736189085313333211847489567651995128104574761137050831921207513423201679198010225463873006060928147282038084176524996572280319295336523376679239084471411490348296835390305041339698205024625664071229363298277978268518770091307118415407293011406834644818546898199275223669698374547544857613022946370765060746701935016115586000131285798434875993825103634090241850003239792461767666043336634685892058891505024214105468798826669869494003440993926432054501977528898290875900237942568282342005014688164827179668157874921562755924408274054904819048729820205191209160962516961809207606989984657292329344175627494662762229175107552697288552669375486925918468995143931620944075903396319893039245984403078952022773175251738205440914662375568054049741962423393657654762814565211678749454686884066507372915537446983443992062292643314910851158334091075076665900484348939657648612285997754043950721632594281913495962579448468804564877513622939705183368395033787656147971228833702543064582285940417235190464756188890313195073338632146748243472889711753139831719534346527845811079969103006796964124454398815828836458970123742478552106526826666386755106561586250610309176118558178116832277150326595855362951103936864115375651923074760248773346128744376927175998595262691524695477856922392595048094919190331306052745956255305941104093726055815775700589887424897760905549451792239596313304475034852872294960962479492996153911044664462464573603981245954538757947044209011005721999894957973516465977280687405965438352876577308664805641757950845874947509591234721008758907688703352122214209201725513262194343648994025398087564500908541693182476604177079797507731362627794791084403187814868835107585053128091033474359306103948353407332948512900944923773654928715641827507283998044070342432073580590507835201502951318033596759427134076248893762847357981136049394798063767300244801850659137123923602843412717090694651800875933208065294565391169787132123459523798516448245019734893623840253518617424722758170093598814358988724616832835660619520340821637620563323565213983137385294237776905251470232158604957083687624720255016666100608527148910058996274066657759153007770407980014675342286640603249459077569992369483537123323032308232614754234771762705442511311711872417601337957986487652586133547885995970584858868037286556278535001188454437129198048683852302244549088210079939962130154470652247407017945056326348973955526514455707298358098176424208051606225391708522097794164007140728400667336812861195050177530346135210675099823401025798332696743653742639604031347173942657687999770266804194894442819003562620764022963164672406294374116067508317436950680258509498280921192923609658314161593403479724224165955046105666948715486536980244543449436103025005411598812741871286058517874182095423814705333588320899113611682162078237914912816496016341606804211456748228359300167802292249175975912804772037398526995601667289663610995648527470464900520830039794430529424930858196537194895060209013572204324852867612394562459021923597761958452672233687931381509422755929103005533994317584319412362522610764957425034491694547766859929388688925093374608302059342113531077173874529555013480888273667243313748719099958229412855538101547717192381394544290501404050221430417873437323877121745395054497285853878590823863041505205239570810126006452436471326441324511646922007809216219724979656379313747412188609675800165785143756095772026273486196499288019499038656062223447310364880735809198972984235125189330000327216785394972771613425316170060624095909609224536916545670526080624275277632887557169232008919289839900759684093879193980914617662535296168237989345980203479484513016535616712256150107645754341796512744281272360647085235903818462421996013082105280606064748103177211732789120970182268135987716347057389589942307587248875397622810490095210474066320203989275834153356636684056800818840127836665364526930066442444576148196193688059997776451876014992909038842811827147154421669399185136647387529158056187184144074213584483896228092944135488967814071643443850194149802198473503898782604114097144136747723973311589572733942085670245634793866320124340036801852964716841144826192116430497667379368027018327307179243681491611273703497036602441526647543130519475721739484347035731458181239863381595683192818803012688158536588467853389601899113570566338622827199945020307783378291677616417853035981246417817258831543394527712212826439243981751760335189519382881861108015303225066281266664828152381864324235758807476523315347769220429647509660097379487807465852357363228619757181167994955502404248884663184948428573422745612613948692428122558183023143843756574120179485769586268268359266631541858860416020784729524850787169898255546428047718064306381255303157502037069047413731928821604746686831653654544605991388742780250816355617022595154067666270988036926360287770371984475422179632558363685633728996246975260411887850406453284434000016627004386092295164745652390858680408461272080916626778975726358102556920470473273385413351928658283513489396881477072798795119688287558310407889512734975210606159519789856472358197481582469782945133364248709701504501024406854004318631919725717148902039275274400911356305070621869800347593257315348051124565595624209283799000468769305103329671524120744983971846269739493546895528762638790766668862067492443916352338070514849518892040985605285123967772875408445322570910544276375363989033428519539277885274907924500965765032550887354448403892082884354683839672438499842607379020601524024072327915919922117299664588113873983907036610595237488098073846611474161316163678688076979467719902326547771344640281827709983789667086048215109061615249871304929196686653537907846974410051696881516895832750819580978459081120383919438629874330831251680656691871907925323407591276691717471598053716650574353361623448955812746056928495534129698441678119005860299801084132192054803587804700955120214580138039804301598724356380298506202078428506232398228800524054852933049821346462758522018252044408001764409858609957327398550844072480075436335223173214087297270394413734671680553876123711274451159384525729834207749718784683486650244803121187974117370622083521007722099824212577212949748495430333241323974977242972886973602427634271636713756929109486424981278049736880881642185635612015105966171162272795722953865322546356030773309690258916051763896517040377275234834236656269220603248862117884009908661008147799037474397738252612892104427927001189235496479115679502674282988228295840663587958645761414575728882651419939144378154571810742968172312667855082117369154280774844458596861673585177928314244579960501333079700243811098548770360789271159321618928201029190776089410391067219608130685918842094541194975944298182659836991816108568593252345090454971057641849530681128236679862876607900514029121530554024216996887606735553627474199551342495065153943680945797968673503808399489376677955887372806438765916905557399850174674779046206743780686753086134834208214207132517838402292487683447792887619446247346188316585898008878251702237912544379551402799960467311002112004846759807264428953195671758082224312757044787129131496212649282909671476416598605070364564970491327425252864448852670351178290330706397638665233328282942077761087569967214793794626609589618211480556372906694623871725543782877924011523150728783136703016261030316668250831464928709667449682280047758597370243967980158510472073313669214739878665586045431704628079985366308743826976520015004314938338724014810728165354180747965165220878203739492628824808165491471751980644692323136475098748839941216923371584346303974440499643658950349516643952086380248531821122380662547878669776482365694115032958945586700298731514427109616876076653135996805828254890077620040575645481672146812774857820663311396195378925986839690651363626739112362549611668411258374403633688221657521080669367081716260616142108506766761304498356935609994554766069708769898137533868990071630778151044310196839389760202965780339530783720771958671026021783700609668567981123762653913466072779605671561737336153226502022523988586920684661426600727406974860463019072784651565175540032440980293295723853282066731870935729529882507703845314983246392908210952869716497151103305896293176588786346553112238464450313634067837055991596999669299403496989698690490089503313805587933756475978866026900884736202723476719129776560788129347042094101170881044820841432928589914153765222034418799520564328037122983580397424960713892836847983249216917149860098838128454168229927089079438252996437684547897864255364859496690401174394012342001393303861674238735667158457683496472723237796398811775536928630455133901570436959246959236402181357994566814881243384893572188041930528223420439366949040254932181335210332362186529463320703752823549612514774133365364127224017968586873586603870076589494809573912555437356660430641827546848677655542226282322095486345504704916737514960222808908501210562043095563769939598713230787411569438355799240408847818272113150239160884824550514488821928691485697273919985665560140262528352689280350597738654209175124313956984951228200369480545148887169046270914481010937197538390099801889299080280560343031272310091333679718665817033338449845243372602207114003596531483474468147049961215629165024861047104117415741180654282623132925692501167783343745785983444400610555261358934869545130419704553639051216023846093022474395425314014325674548380040394078717180743203428727402420044182509066116675280484314428002315905878777240553744990336486930263294343265893798714421476712410614230209190352320201103796577367200839968763007287666551455947222872109083416308197376247826576858715164763802054602772468793824403474327758383242175939355813148659580090996264518776349059735273417641547003465056800012277757780949959230894791557612328963899301444412147344118611016529083289010585244500363804592291483857875106238426479897987527639479978378920339243370565019321164383363945054907813317551672118329829046900592258015588945607336418264202195853459610044463239177452524531073100756539176082169469939595722667987637726217918053324869025490512360244412295906551283292308017903469560702363230266286846857301673573867934248502112034935825772604596540956192451021768079903264134908192003843868817163461768701781014368768605041106762364958521699812587869922869297230140269041198962528908511076817854022400212443969286524409013537236118860510717213670000526877605297700139904742665218404826996601703091169838486217809012020870164556042677423353127277705709737230377512249107316224821406806796136624556167525668714610327973116538457061002772762349873633510353938799994667266892357692606301529465239841881364082876375585451037088167074522707077803547783893651555346998077461686317783542032346228027509326352241225338427554151492955526785567533630412753499761684668162224796035589320414990367655683967894838451338458457117507022741392737454829609070242209968309927850857822297473386642028471817622149113754849506996389843098075480813869876910390966707078162125195496563596180387642262389597551391272994836565427901870266633511017046360145567679572011547147882105203848434826652855751697636071551830661861574246536811259608361919078495731708782679795270681388537351281880012632350090055732682708398198758927962725208857794360269087384915595493152801671639511867788462090969613967074565068735034402609242888748376494537179370888442011239406213612594093621437522851429595281236879408506719481922869776843598407531611875995637356712249117819163788399295478468379813402258731004587383924359744054777509391008537564533122241095970178675334070113783337855401374759893915052092910214596587517765808566145234827957175865844893185165808328443033867534256881277853336250098357777468844265280502498420345310764778523919537077081096052187016035774975593925246182040940179819105259912770556867583559295823752384562528102855012229081364825533398098340747106238711919266032283112609369899831271931640201249374223540083725140760921289913644931432780696527292608665150820492892882298124260391466973269368513041456760237356254913872827242880111609379940094973942198822011043129738837418724430897404544776275965624250092339785285934212261629061603798330659075084544988805741340441268286181346236324931483294646661872002840434536312939015661669955289305720319077578857428812562398598792561716240944113629461297626821607482672575556357468963206444158573800831448201390804907567814792269075613419111707241915791121237165039488872971443209794496175913097680942314277633609256805348951893206615647715559496179866443766065868293759654194493139853126938244195261840531718513246848104687802774111220481408710707584814798371086598272072445997060934128148386459312483257567773068484910086577065154505179689850899130732966095802263641007808121759792567506102459213685082185319154281909727761715606245583595695721886077714895868934859231735508900930826965424413293952531864524148654446839492162893449727902419234064160351210529119590106802165434871499498164819506217099652346174748653816973838659054337855890692317194203621941276772092535573657705637936815936151568045531161022703035482347038502993772313495085875918575778983856683802162204245577445648113273461181524461306800947111889219415072476207844450139232866605440770788150888221059094568936332495198318622890059630435202951012373422078800301616433468585871253506432054917479381719171443311676474043558979219293667885400766352513159777683306784216159149612388137194727856148408907523154052764260265429734634325183570607154171898763574918709163247003368592064363830965222925952136953922388180756225748664093757485779881747212178451871542679358638505863682386064698727415227759810874724544503370209553761356640584778189804898344313962975887715518030059485006725338198273394968617258331859231440889174912971486501901378070604741452699867625763654852916010242099558074393028971222256141441430235626323137507555339520007292638576033896482289186819844263422901389391784190857297399578923858200548867801590360926432635576920938088718146931375132479876339756526427776241721323658422688344909479169568096544113710727849774700703440751143896505154455475054911730423094427084910664873103164937740258532830654620076795653083349753412897988954859593687951526641669959612995606811863917937497415344244340650360627955149986018181462774779381418292921455979196950848710675714753285428946853837929933891577228651341447833030847085084081022565720376062108919804909164059375623958731144777801572021116042001235412682464070451475421946220826949547769246415284557988664718255686588004614201556491074789153670877733024790490155565833085188437716977290747385852070177217265535943381547438491476446761073830479579003062797158088784809259643499515083896908226472402944727761136436604974127539992109148546107399169690051929525738648034212536649259653664520330816743067670298092267675515861878013575894379684430902977321400502358729244007674748446241580399271658125317906927355102748117385548401222051682347520485727068893329555940725520378140136337480168528132793030947485381486098251082616600967365105231835064216295175798508016612867455434405815985419555642629648397592839373344714522388928224266562277491639750327731352004908109631723332511655733312167165110658324907205068108846884769405358434677935944962613789650896549034809852370020031550302073304505000064752475921086193789109203370422356836907020843662015548163691133793582427730733129690423451971677848408452685643134670727164636214369602716397361325065986926995612676925396789686186094804608825117223011525954249289372788396793610613401195634835659973547805482453427863729074390261055773859268090341325028666410060143390018798495002418459113233600131320270428865655635393922215541856083397468842603571017254589922521484449056209420547353018217927755627588881640617459630538859040268818076939859732672235892491558164999133751792411384141814573703051378090867894700839008292514817483267407465571179897047681974562778308482712122810894872698209383340914139107673704834181680297754676565500516672862254998084746881386735519319344646839472229052357535773658278259504414284314088824800876171327639016243794693144404012567009974023899993358691439739786136314189309089629261806992762924062664474347472779039120575449892491598259002252485926995399405603144872085733439329916160981194001057772081418729461524242980933401350777373698783079251132749645668794565707392812746926432350656836487620372273625228976803016396191779155448986546658269937334450167123747894263666043282290364483667582603590500332040701060878555250441534463471128187434306052277511843262372813673487594221173645746591067153231343973029312543661629038448101144297586108175758922396410360029891396377582654605473444875251406947381451273508555978706938608526652380943989058368864262996436471146265061072247661690557324839802232158341821749557187935232254229471976802343389864453404472821250016057567557087969737894799961268009980657298419532954902183681546910006540607545513552050942035005190826610167180243725716509698677891813021799003863375351042938059513368594744395349707549481959150000438309048428367810917228237748201896112350413006645791602817354819250620190400768324805886076838707103058917970749357672116327289776972120037014276777045035846129679540491572754108041661947375342758385816673106620776570008054092625022195344541351613922217705453981568932378170037987997049526742802034632802877807056606970717694854807103709382999889064026223002637881587800491561073776789125126890892329720457711873081664945367515714711181487629287299699458272562524158509211912159494367355246275933652201367690231107025621253404366879095582364207343168247443984753678249172668373031470413440243805750647007232848842866659066613711763210225522214787500791674868944383561361473970920265727788099956887222455435168017045989306947411247283724197012695799147546480573541764221162101093028769083619126412127102936489830974852261373081839151370678339504026214451142135709284087179056697872017296956895722217108811430296982332959243880856625067765522934239230261355800753362434834263519362011508491867706251189168825047584770922450581796385329708868278792429726761702823283113689346189286910702266777598659073346666461682595775216817110749433959414844758635232707004860613817980139246583617015147432439167163829916870281993665691190328714164820523237055321217956915247101330282353055614915407907474413821163130032288616432282298677872800076575843173972391995657095030628203931793781191440154621831768917028913661235109639222243466147889180714832015680699834043696166660542420383905871813214502207251806628412477135153121959589752082964328161035400874403288163518206495778436533299980432436690775492273901301921988401955852315154193030307122465115509339301524667656519647058103676306789826151044377053325963390910788128766541494387227439336900447389952289490810457615636527391437393679692427462429516351315853639020799761410122569983781372160967603775062350208063771791726646007950940095974257237725953305173172057429433127609993022070089162126501191605556488097543438916042199116011546444624926158899090555449593538652213531234691545773985486788308949212988818040696071157409491659332508335670766709119902976186764515320627575500243038254768230280435239740888414024693559486622890283992284775971870382832696691494628133900309125637083722892903899016129994395794459777120080682512039613545180561737882206823659268759866685966815320580564535181665740771883034348110179573866886602567525329133625470030438307895009919015012091481019789799111063111283088458696498697983651224400388501094948306341355629888938991995756914394405143896560630200490461886763759249766859786887603999657821339297850573643285191056639865880501229882128865463537725272288322933566934538246636051719063955703007830073369920116185775749696382052537558214766253915236776171032063764032981344079817120276817499074835875914767923176663776643300791809597941170534285975764344207402474223734121340061817979984374667800999275562907706376840904056075692120608286668170585499465933723949603856984329892335070666971576680022487972892663804354266986517391063502255042715925496610672859167484065569720341715467579946042530541004296220617324621146795480096617908619365456331192056282498689655258463828546948536516049434989804977184271652056765587998354601558213212950641227936888798294451988383592615874812233648803068883854376454143673126820094639435458196621957096813924138730462470140601820392212109871355317188973594966473653834356265663687190988129812442123706731045343997234954376060251191529365911979584870650954834562865413168660796189617998804370160455474059674768593661109209764021399818746195633875213575911413289500008275590419812441264005987362715158243957855541068583287044768737752345199795521498622158637835639605878501223822319469875819672642594014464127703868822420630361541502082829577172902702719257971622630854571107979507008588595126649273469703468556973797967657317013505093817040399874986243191558541306636859777707168307365900493903999587473806559469709440523475270278836145081249336113056766846289751261496648294684673005316044762227748279533901683271822105390782961038338739583332867387849716072134630815067574230204850032158114292013493380859504710693345527587549759329826126045222559612329291237988588685529265346022561176259442112049951264471898171433429867472511877659049111635470234188395950118872759738413112838914334478867359496922836581513987844541592610355591165544693782095326214169947474383819832566087994044382179095384639837115553156182727806008859806613041427848542875850317033331758391475711070770075403689252491592761416284392820982634032365474670621821484536240380752846497101578910433641506359177448959812689394965025615938161187877917753427949452252144592741933363792236503113033424811394224694974755802610520566494011726840553363077070998345187442700577833741072115880451531240889922874022890343644180450614379496650986902872646204728926246365946789564469431983195486136381955157452297997231912513077227985188805160830927609611174127013814748234256983067700609108304948934923853484624458841333725718053335316490681400667406895202501355658205831613831083909525244961239856302371131415327639885574503060471149387229522397559012712581813259964110701275774861136427156020141267202363042868558614398643474754987040177116264782145455159723377349187146706897070993946984634881840993809436815960671023085094348838909062762167482437158384579015101386469420815310119813113672308941511919169604359369241120344883087102203895811181277999237354016616535603029479299000034894051401103965260221883282294970601360430217591969132674694977250415700149610094240714786560118109715097536705451988350520365964831136348882745622897348462518336816376682438972583802556790278357721825762177250276143775967326062495874909574467732992577972749527399297160673967867963641504953708945008272106510454581193678402469313697751839527482892684120128478438034154707937655896524659624737078776883355784538960198623837260092774972940652091698729389265126921124283846839563277507603705310102195883134590014608615607267806317860290664531009255086834010703239629951463678647168235895963408806292786172043986344833834152862137846719790209999727160470229903198984059428950807512191374361613669374055094793858426276887893628152363382415190741526772738303024317956280181669966303865994740354390329148927437656893227534537492897892145081814586273153031608967456073981697420126359418621031353693779666723218371952281453668593483797001824341803424243552766683982672716038063974031053254949877240825457989166305685493077070969201838593146424957703881123285602543404801127283078799230074121981236981123391785505865429017587034976227895262452162570392845460803889858714390827287117282007442082670216376425574911688635554804673353399801360903426873582257275636537794653043942197089510642461948252786353629916649106467270981130125732313299107838208738014440139855261696371569731367618917155246269343576780914076112100651346224720602042845848246910297944745338906585572167018128713767510941222720908739295086105826739434334721504283050144698801391126374926788087598210327842464977547676894216540376020320982972148377204092474617259442449466435671519447581082185783552744950789388099145394126686568811235161222734107178200455522081561004674998963650368978690823558602311192127893711039349397937105696861105308694524196092234220855452715856811193660206148010442025572952809688016084702765106893987125188121988216110903998666060922257893470701019968373334505778115409074910251054023041576086906591038147383246503507409740127096800092841029683779325837719495629729623711545515333872385443675314621815094779033153990937463146627698276183832307533470518775642071215119092455280518442488140661524461070083286827043129631138507944479635647325887637493901504551186169380913709114552029743798032440355076440594417004308843708901734598660792976736438589327520163857562707196636006862008328533006503717672058508904385079390306731982943013008152942060054548196066071893668280935505117812611153070129796244887581186980944668979957652584182211199214107117734761477814119235811459179691211478564650050532997052535083711980981372228085802757821659451455693049637186676830209379370340010938231931708692697118536860523809404528758584160094943320871067554580531701324625560365710499363749523652565242439762451968056408804623800600055374481322741508521179755669978351696580935919257568992874004112842978046947296642559864605383557495762534485016812355682011156383765322575812200496544795723223381489916605491744862437872601574408167803321908151288965342326303225493604384921847416091314275810103993889101067070678630688431633983423273632137843670465852126613176989250086415945355486446515917065830161169620365985124866129730004549970737540814481344274564128451295595662250223594232612717461981962020595754261775208124632482154490085853501076997605619788904544508961598208312735221510994723831860109362947940899156128425897439751314086153798632117431117232287155391101944897824054007756607531285143791737214622583627787243577072391684336123638188049557272075181248288354142373541686943102468003958086816942577574975245151625453426298745130062119058867737984536417757943381022364597465794700709834380166150179700437769490175511129387691839995461730779215929233858451789670868561647140916513080675869784540265122424658645889520720177102336996251737910446416796618277826613973668727195386656721629186632368264259753033515063249784845240635445256183193974739217651992331882890593301097653589858056317660168490987759672952908091882439745207385504535106983888234557926167816922668073322802837513402834010969414257004716811392972490792707695294411075162626458157506582848650888896729051182879880440958774216917075933081968049130507407582137447791817566003343125212503455514694054193480922884946802550654002691763269335821017669869620410047788240921806906707895283334692101338338132401480213985804595184111378082872183633823349001902174458559125446971575115467877894118530909051641216037771497457889167814679309613171450612155994202526257289779312001503991228969206280920408160556726142141604695291171841442985080492836506084936088501939467594367845773951834859977417136781619558670437970959696390496190966986750801688860915098529976745758936407839976615108778844867783831410831991757134583244892416348727563760549383272527469785265836118972283565256664208066138768105557453312943730782700085014886535090523698189511517179823684123254059218398225245749404859615167786074401196262751006991156119719335365443319160061542419223582294066658417148635717332459111200335407874008365938825118486257066223097360557338452488668771730330602870094155528545523979539673431236890458272603215579387131740994392413647113625577874421739806326345781959530145253323338865112217277841401987460385636716210348708599432538326544316186507323988045687266901597171541287213692949825332918894309946389521063244623228361449276437712873084804265795489381138291685307544106143840848113471456130526247797643282902268363938553784244710462113667515026251859693973070232628675489957304327657599490686528178343704725939643486986775302722294950278306609600991065579723501109256914877167846187307239205381068286449904320161603685561657081539266969013360615065387270456723293833367906218611166718422821323753092007768462098195969927126374092941220454154895127105344418843088714108717536846478602457530244183454618937557231952773660574237970406284170234991024079679471948123531511685655034371628247214636431419903746335116651210967505654712997323291989750769681769089139815854311345396340866500244959741719061768147374228889076091926238281762141705376615989844111763002471051553345220320013093487872224209239449989778157266923578397382275625441004442794474770714232239809044764776330941937552920707278450983487235296182651436929259773002174219397409713603351647838974923906577004098747793987733139268482535048897775011069683306744282420965009461674085590362669790703359853114700454068192322187900160412275693298205704515052069286981115206124457516359029193879989086421266448529094977547120937179031456966707763131036403100393563435422497113714485769100582730850512870199468648496057794989143280645298465674178600121278429811385958062532629757422334990467945255272794939827427520511473134160751212554468084792726251108176088056689169329749298392278120425696437479089001456995996336035594340174374614266448309277223626409919985800881532451039159228766136713973840965896577011958615840999085653869524006578200730481826219430227697896192135012490137222505079645957019510909961506165931883403774803913251835104325861107702882057457483406878016775009153784799828291842008339054593244513575607347212501832558283067614551232447066605672785284527383482269035203420277821310992584796054173554026384071989191122000684227434086649003346902510666339063955255519323635615035676095666912301291181530373426459686410591436299773926321647432147114640526868204408842351279437826323525364808636961582712782873952965825518368319197705718676584805802183075327760671342285519681925191132467820135293409949799250111633067973525836005821553484221775134649939891983091907594141537383727252788615277724619054923823826732897666833920064850663390301915461887190527187659460060224114769797185813182916501042964693546075270123398615666331780239797356139918006807449569453515088943870466419277378982154618273322735537182684589614481314091613435039502728587811412946429923876490863318324306454464593502978165770055506216444856037531893807843197515588123961433520531690827182975659854707986672363537442800940533379800896217896820755415386350531972980814366262712636650438223620215956993797001045932294371627632802413909719771802101744175237872060463538674662300170877682813509738907160038552264496221120500053024347729626806300060205991410231238592860990589800184073261165062649489059638344291692226928179859388570605614736646129139980635282703002515533850765697321557556213656760408115991883652704545510529019187380267001219382867306329568134539124388953211632258835456902177780455699882346673503279513822178925706709822815554184175901319199331174828010059753404356455450272668660765584258006841633504207354337772934987685081014749493815427862983708565573065963759843127215547644186146331387798493836283780608232101210928580694304780917945338162832282079698758181074348468396995145534916384099265212487075956261342911949266160849711205361618569323235284231146359271797096918285882134252052037737794038630075763138606436876041543179372893025712784621662961193466308354295430657127334059393976024590549118371944811767950657781929389361184579358010899466176805075117312907280558030133349592601605520750711910023018269990907112084479467327735549693148815151249452739582434974557935874136256863804618003023620983436806206117430967681732962759090679123701409342409334036278897276573744940220950731125782779338180972781506494027416323713138993640353644065543384098819092416497284603022728035345828547089437622311784883577765248808802530136280564035116220511100244629042217220542029397455524315219452930316482455097412833223767239675385384535851784182369471764220112853662993687340291975464495441156159535520234166298219099168816035766971125450355817376631841402636978802506962232466798650062377113435582700639858246167565911298358074832750720987510552874735076604425449392821049254186073519616881102105871385699300314033021505377430178239722537566353389814957299027538873458266485019217325056015757018165635321440293046429966104893411258375265133474363098885086416880730148916091547859777354503641476894324774206216339690713092670784389846905989535345730963251402333138006759451020787891562168675825679885126142092207522830161051078326412522436694304391407378665872710090211577135934597478197570195386622631040124028211538915360901825580341139745655879131203440304137739834959942750914174986360146340370110813181339224035113815055617017471105198832528091078212184447974054678815493657543456612745795310672034003644686970545918032832474778646717518115074397738760442324628420632457240717987292468537369226768283353814968594674533873181830806409873863099650710876862056159555054594100425301079287463310177488371177871390904496895166544488407073701247177965683648644976872228607029520980639099146480111648782362227766693362150011543365933392236541165863140363543679998416534124998206316248947347549615983566296262237851610090957526545403388827822904383416476765765029652943917413107320794050999915726077586223778005640536774711454275744003981975308312796858001333696715060485380821606668671350407806492729328596174601149499989142110691526693539968195773824833926048232674988630477732482097060599639763190790150907404850676110266917083152152951568372632105972510951409934197551619676533171630880341363069432830995732696506184953815689515892295571498621106113475068845219366754079926095507433339343683370768238679502578227022467304475891640629098828005506778542881934187716000287235003138898981786100711385121109324831431514808130500814362619411232691656455819580120833009115277929471736741214231484248384689421209080000350739659022350540161993488013180167012548585515508505321208203267680606372736515408908430023208954523076565497692650793813238720649178573612209825995828590698488826979910722206278790501321830926803370366023962663668121885042677688331790638158882964244953917642359062400879065720588327164123102563452127328493558176433134657119819892148967543927310703582801598126501868327639767338976252474639512416407373663870160991361896189851316250810550391356923904776315956732540769092304399297130541187740704761685697927162198587462017570350230206341362053564323433752895865757042776504690862858307420679931129529292007822053116341324143804227452721313559385582415613838198681608885069987385707001737675001600972936437686350370760137856407584306010610542530877477934011841861049791615983923592471293092885789410134552055343231556311763873576398002527000413299733826407316085299350414066834503173298551566982670620082960621784786658058486476361595421892977151529577272275477160786977505929858218110230211836093285403353737547028208632583743140578098470624344426648059341267613146054119200758381902339167829205216929046764245436638343979682458032822249335078139149275653722395867502361840377783171658396878950025537728184090787466018194935951475856419745672196039685500839670354095103149540169689965309284015240089499573841654155981009974426032839708822373422539826753489549843333601005868149650091224135374978248293115108953936664313439447168115239325642814397149064926288782715271880517726761220256303505094613599344612433246873820648923602053809707304645327931152062047677096474580206990781550235755364341203294096418768538586074417863362286893630022829899240194319424133918326631596713723423256548080030063314774540586307220542041277337950688997602525516836370082739064625443141283492348097744960403326038993785710685537987386318355671378714877652501283877386462806896787670562693748813951738903829067510424405479762501990788116226382326090295631650468372605098264854939089229037767782528882912401679743087147053993109336627487566728969168751110134467741125868522907220098473436276175774035210984524030637411235893916087890060756247128706761502717596276025142138796996568194842538519684497286981467792358919889600716488219195544794920126328539345474955356492541794634002163051604626942437484986369195323725985753917533381093049189051966620096401002228988019665531468888940573307463623917433275781737264409915331239073415280714880027629333560367707327709631970315202238492082856272442612820042067382960289797122153672185376802046784776601806477257249666032658785976864838773767969915683411183179675330337532977267775824589183988732089266090879175943081082886220721360143683582938014018105878443500197952753815126974471134541624802226210277034387170284088517179089964952691161809140906723995945147726060108369315044709858419396488171434281563683335658003252128484247799682328226299271148125260236910422425737171367316937604156991699111520539262488800434747082686911169872555007081808824618000568451061254811440996888137767663347083355613275664407041242854463439504596635896688317773870130717974308025743710814035523097281757238454549898346115195746626284165380696843813546274126654405594734047188070242555219376569904254307185281282559328621211230620000552633964003423887680077485770979767729332699953234427479421412956998164048122812211103312407971852450111409430085762720968756376299797107459765578593476028090676178200346023959408439864096134957337520192855258383618152374390961153929524657995648488992625779037627245759339560526736022746113719908401142822257977298193139399787991438210084924287335903144516443711422591941629999874553561666594580348714405209051470842343177745842300371803425915062943785801105061507411604006678247118772343485007431150340713355486336368863040499749520883716026694906026992170129527415551779933425240492006111628634198081877666681167674316316535459592217956299731534603139717815056643994410443324373055153968346955460026916257398331626701153776106972601324526107012220746448148766400538720004527878166023200210500003589884712046195790790856898263440977202217912178834747265426650498878672547730306886021612846989638668350029242259796243355629241372904403726163050809161499676118871007099417809708208081551786899552672355115933881144151187597696127783696167155472335345408208974666859704689723680050000485096206696280462016539231642686480800568094062765782330952681535826151412475374081463203553620142779472353540874404344896194988800887350479438729464855340766433240880416834163908653488910011941188475033529815991223422219817713384794426573853569445947099817663734628216598564073545830756581379730050248515274300153758259274307990357765935512097989531637757457330431496881591467681270328923594327875674055931098916943443493174088865351583636685238442107911831033065458166087329347014558071782591846878059710640260379049819003609372110972154655082914273242373223318861925008987332936503679743978929921968017861731662818979321441658782137510396132625991987964654021947987252765181981691154447013194457952555827040467868077488255063669848619683011167949811109195244866841756159464462311622260726021222091511910665740211000451781850528047957323189031853983220299789580599557698899146515175898448914234756472203340276265223644145759807205194260105857842037084696449534997291924235443056511244439590257027596529978117710487776963341166240346148862419480739525622638274939464086163387098015249688035200079014660973426568365994195659956670311835986009863705219496408430799892473843706626336669555959954204929550507919848809314462897742171230580587399119788007358518473080042895063926165974102668482968449345147490345330077705992991329173123287751049278123961910457704191377055982684089352019064748305689937883359867838681608271835120952294818759451380551965851834318593894693851049948116630745471367267086489878997067808933461270066084276856616641840007412843932733755540413357832445804903693019152244649873014139327019972610856688904781580276514699538483571662049944732342297288239953997281319902146438007467421319508151526527999398658689598567668778703784031018926577989572214548977407502216010919774600929806388897628322097700130409110441349632898875152098561566795675514631522720620104727216350311704655067738724773899168244011969183216118460750991292661856720448506099172013250439989630495811644442176073834966017772877155420355186677897132511705642151236124042288742630375796840404025424038217177699771436521206313457926219172588355314692924026517658957833823721391382474303936280191637184908767996315558631199385726571945222512381387827415965080556552241874295169823405251130212595684886703409904571410377349123404970506472795905503730376779595685681291198084796225597967372304355173631104208393576651564974224749748347288500046718728035473038328233391975908381144848468493372263387852006309434835922702212241149968550303538190958798900904916160407118822176749253696775192021901086973687916175023023341351196750872779389928471965723020167553146302081439653829830867831890466741696121246457908664537262278856299312306636709275877644913564106273543016249312819749231354768254909140229113566777064342271394470097488107081190599783813825388695156345664600693257043080131261557209869267294917666104897163950907915269017257113532723974741751803293343370382936850523434280874563772557178967849251816336864222259725313815465947243726070995134533597731730624802705953196472873927962611569377045768742311335425902024304152652372490283517951015251676623040456974274054850066772668835184797057371752245239783068319440009589125143233224963239971418589249603565638310490649256515982968407885665058657577966335897647993547149779659593098105369508795300991975372546177387495580243304227285465744554314297871454130532039854374405759130487824053658818367020434547889232399988152128373786345780516148282947462440660933864906752843651496863510507045822339482954404365066745208425560125071342790438388764474740024747730181597722404134708432637146347684927394448349600140832754149353420848124459947579073362584944924704868653267449759522911415411208482426736480335267859156541999738912629098119574576953731308169192325698416539951189566151594830929045415394427923372692697739187607298011699695476802164863971796036960862928092895800768060606843892533448132953838708904570435665289545588363957068833423978786684317112214049128284362682323717747175626295161813739838626390248361304169397854110651469514249517191246766067418684143770402012271761874782969575577646829869166510861346010393241667614151780875266124622820906867593576809154536553353608830134991231639387364806588524008956534891916561922393623547017418425910864785103850485218982219991918608283856645861194073193328543902036505629273695262725062351775720267951792257251833583147245300739658704607648501435717672118495304392545285202710578902330502926647586645213124533705452870129093155755504318422630671988242161267066259094115765828071582243095175322564777528189109688098923684223268930019216882133451911614635110026461546757733620049533236637272567975056059768981893827906465118518704061102967376503391194669105937847694207860501331607158719909017816636005939664731645515543891025324654713722589267735817301774010149649658005992184717150343261392433987202303833200697097615665628126006721467210884924628991632787122599613190079294650159752771571469147330660848143724889575243211953761153640366344876817012755573403136899005436309871870630445923847222625384884962156361501240796785890099951127193495306348241993212707796858119174507066921569163874729884336117867605233599585487524136040586172827193167977666822175448883329164531988827328090287513102622776285376046478204487088604421819799804485205104561406324054296715351035348140194905837032596086709454579004914183747407457808709682764114472268625339203374333912473682577996710765555228158654508537670057430286427103152830958830564745685765910073353845244943896960711213967099242581240445869983063920754430138493497395672257003724898846733387491016800933092811118951133514749894211009341675340527986963145223777794524017918236946009942941245636824290130312697523555058062065647039153372933077483239943996695292974062739772159469565532895214110887681768297644295867293354090195867731661123545102919833355775058259943051331789720275135059225016029270526679006301206297909955398722344060599103184089568913876524702188643373636078389297031394513372953117986091931303886769754506250558319504470181427034212145524518754813571149606349055893710831634232410418803214720113956189981078483219757542944394680288763869694404044552079026237881917167316937520010295336046536767104097915526365895587346564791443247839173087648074751601708296415126301312862886793116000552034439698007642782615856081164741537856561804911746718882579671349933021809071208271058751650087512418028720958859166222068454465674719522056025168854883281237706990831590737590945959214591355910603729509130343081374283911822904076900507661489195515076413564675375300774218464716667004378311805296621527032992452653277648983934543969103732103192996587296444816064272388764301088640023146230876091832484633010835303733792787181271966926488899134367650682963446591126747445341561458169121974340415544787922280138484249383638919403835577291825672311076582267925799393156570599956027137111407306353665508124558729318284265757015289498072266862632747012790842128974573329857341997409349624154526494905765319255591000229193175360593912865916596030133220957425845834511909280161212100819719534524525596751494217360565646478719180809513921581521215801666196180329040696605900740985355179483072472130377677498297714044544479754915890384654240596284406575987584465314476805402423545323333113721294667985110640588967896844797390508304371134588405684196292760646283230096244592115072878597484118144250955580992443019992880348319586425708093327181972737051653254333688992463578577422824915126161189482127545273738354558660018521075101873045730727256465297697154838294187002947675373441487928968983796125425687873041945703848923249643340412997460551391286170911853416365619663280420311980000395146177826798375684692607404730274626620422113720273194632934077627932539770542294349255655568420767761563584872157087407970955472468885124189653982244219418019831528904887231302193130231451394271753134202000920408547564664488964599566761913257759129913183286681338099271426721945973400632939163124527062149465560917796761070461320202719981539839602972469480124567613161398289209178622214466189812354388426571491476935301853478477451788327989420553829094670668832726304583373813220451886161552985932784532390561021333156810669307451078214195014274978401254393828966773121828255755923882451370625280705226036852992474729837867506750333654771041853462811800829663729985629581127160414968321963581258932067754749076844664909121796197038804639988723726338459048642254373447096843237062360791279015603101975024339518874419208932100036665809322392914065744566062384926713964737173570052993973627314490172007867258127178924501438712650721524452288671211114585777338978293558545818197759445065981592792864138095221561742952871741576586211731275778819544301196336518942399491669906018768145668457877930837189504476869068772836524098055592722125340236642797837547206276356329262800342971352542740508026528418121526199815276745258448966842155859037717264394162151595131709950562565987856949024362308174393768989523342353276645067399098617274486136819288897356475572713255299695610118647953234826913412369134019654509720255469955885006046274951543552863548440431844003714217548512360812443281979569654258890907018678950798623033555512535155985815592066149317150757781753314814333247533209651741583601095613173894267542310439844968660179450208475198213900473700694078793067342527916797928545003830251509488771109503624040695854374436955596144710817443195959993671156040834547062814237635553985873837304328512387802407182704415309743714658558609388043373196986760319915826573283240747642519371339011877688350911336012017000109599182972396347339451964516380395823065599417286821485329340823159435596785433351741537586405309714944804288903150893921741823340905841065837723952604189235233165573263337367036438415049302395790312351142770108622443419658661707706051029920144401083159286368386664250143471965465071759953346245637190642445074637507058360192988984918452673447908620782934919758965096547507521119467712003872614743765245528889349350328400008183020966343945701515092972131829379720666785896675570113395045121047607847417593320202726049252416986474057972936211972895351831937611722482964918649645646535831713131698851574127007251299109664617449646440873613800924252729051990763830957110744239419167581014985247828988179912886580238774240755897311653605918551277683191780669847305371873555008650530926857067920377362015753347296855240982931431648058918728398312017755288320092426628248340284872114243074114992948467794943700516307843975299458495982482236030489353472347464696799811184745447076928214066698098496146469299144835962183794170500234107772349760385860582863250426895339552122244910699311950778536035072266253521774981967993113658244548826317300116531735028179956659398483322991069890407117510668683163336991816946414591677442933578323788646214954113714420760271915350731591505159327795496644049045086776399183695534607085242299324019832020174854120162770160923179696833656721445540062278312726354817086087302454056946473350505784931921725620848533253828856881640700286388771075208948201277329884352354981296796295995286890713809150923760379969655518902816128212733566007508864817946187315700441622183308400337643604565578585649234915559810038938786209690164281896482375920468644922882836465477278684183956435426544574738305682325262362662644761684516369356071647269437016635016389089075664617116496263014336035910488712779468307685804778978511846481923797175587833936408561704329145170953342930272768296981694049356946051373718899750216933147394121994620741378825268701256125907194105041565131854995549351492008684403531010381185797940475358334794438213441036873248068758293891787301689030465623569653634580208707694300606694731089121399644444942990181777271355716860730678863412420025408448487893883048254812451114752299110562314472785731420576692442008844816585464008135603240032009564959560991605200401553494341462936382823847127203864005462783419959645311159509852396597476221613429307856649425162769462335601546487868307546616085010832439175636574787925322618972193771270200940689366858376990575398065219610098488908660971296860064911737694057311262333505786847801906611170810391239534207269124982270953641724442688026938874793991572074434960204391021219835716410058102644917430919342131278519133071826538679244184800496109450315555719863118993223033217752788817361161504135541128202624032757102998706034199138050658917552297770170700363099227759018567442356020200441044781648118027574318110670731473258416999770568960358852726278585870861119772564130290759089311160423618686455055235772331974404673241952732295515857358668149952486236778188050309843920530007271807401158422679605745047013552720939296466476984353255366088620378306167268974155939214120196303765309623073486799894528669277180042836060050095653263246110203027519694885429090786954358968297502893973222135317590364055337815943285600849961986041153180691095951884208560924765011793904326340560643520058849545604300767717358214167491060860911509820117949075793740055226957387954076922273187354917017183188962388250193724627413918818224954504793724813207009210474247109521667534944785567864923441173334603429514729080677465253833467516118867268203143526666708115552682040129903810260393925064748086260091916612534466444393149743705516292219360527492443956802216825694750992375876864252488413363496368197200187429749603027929850323844221852596881237338593702354638019370985327886756272745371354216796907304140660265251553952556487376011941996190448060560478102478722740203386124526233350908599444323403477010931866633331951605421486060700936755908225748688112431113878732907978194986811598693818410116515038004614232533206159830021100582261947069267673783109513807729783792958137858958500136205746396661956075595775755635550344714291193014197106566138803316731841226542641200976964877208583232971978401570034789073203808235094863130325074722616624732260275618554938977492458059460549121856276298139556551263831631486162113907140019159771644234463890657180914958096072514552947588615626157148535959857586055554586563329993509303332588573674255627486972573651232257216353878408453219238890133491912093080867581707260892588486171386365357414006216196571557862407902661218318194147562006551969284723516991422427123271902528599858584532541209599720704361645979740804673622650465513258501916459862328186572331183710172587734073547657537555312260280364684491807625165872426564708649329478504759864081127923715554719699653717093445890080757647829117892907480512195944139726466165809269244870939605080001812380639975479710244987769674697010003761011342699719665447435787726767295070813714408954625125035415068864879782864366882770806410420725223285637568485486942906481380414519872312977138961803043902338311171447842530429106088853734298207206521602266116161727076235606934093053083556701503325785679727571815451028450709229858938918836625462359993645947098331295240959161225834051408879449644528980908429634811589115388542032687890046324934745412047804807989044126924403698039954353592099331291274105125311055845738750824020887863141859198970626411445169965657824288848451945897167082751828088861838220333783289805602021184992430059112015769043012471674376578527733230275707343827106071958579647056572197505332161141885286557023278754345857171409895117781257825656201075897414609775712622189669198003612540469202225623481242281841437009512500702345019709962199228743796262182792490440026434510995283810154287740490018058361750556482987043950819260637361013520637279982459683697798812469239572419104021622359878990931351684698228368036771746208805247356658012597083847581795226290686377636473200302751268636811977536368009532085582965869917948943567183259028829088174663610597960759071087273389247773262566603531741814954248440271540875408974312836744738675110816086003478313567634966534404487477915342087836924568943004152454216328967836532591317011333253760787879348307507805250682896850513499685183193203799596265150656857327582840808778328212949283943177531264310089845805656252785746982478032924890313401160818083603723287229435053667730476517960547724331999185892048226960564960712521567827024757359302012004011188130366868857617289175287469575914123665121950588430316539899839638036873471368239739359564940917505646813116094459921674345065016393427780935053281971569537394027327304765592861451631520638066915811733664437539521432388578213021535570064396028377542391549839191019332877178161349961979662154244159245179660700811205365902275322974064582063275012824611675227517653113842970963369297321545958603841949205944530483401740848546808075138757899879090410112011676631638973761271058388272104061044826633547835547884938092754422426574246908838828844036879788440502822203276698704846572833916686309010978641175853171325424630670256632846873969441794988155458864344254595665460862633703211239090855568333026503612330581769346396808954087113952424578595524740044288691586607026326346670112906472467485727613293888534481655344004723192887882039216648434425836657735414682193373266060417750795529224595783114767597763418576969503448877421059726938571925345854341216665356157500563543301890787367027225416221136595735971147803259052935933310033348754665516660710034197927349359312718662093111839092103113187443374241230046677971050377934467349293033692901349326596490304500763522342973926827418013674801441827071235042914587928701750399050218314880177724444719953137739874611198524587327449134340027235585777353895166509172980245559488370480125285244817852388289486276908402072398170234113760547943810919708485216019825782703830581190868362325187858734050745876360544557493841131652547974960641182381813120984801510851947954920321749023546325564165301577794120219581175908719034522101284500755747724816152911803104765501647198252455584887590966073613301688519639570817924190032956916291747442214559550890984834863055224718312396430230938825202685188126705941593581822041943764077170258430583680611226869482908218143366468983861199544465440753947598303154023872305672183632275191702271387777395394321470609755346726162298057468398394225005494402957921114306482985132390515857557734848393928777988854362383558259855779684006919804086147225031699173308015724337205567909321823348198458947379085800414664284258132860783189221912250100203618915011752705542322954995085819922073044192565254624433587497961628318567839139776807623946689258147903141607938659704006820195960995785714994875756558790186751611658910325374934029584527710723396242422305894950503545838052603786797828574934999672255018060870126207619655680914085706325944005406198479907286673017871431548033156404715967041638783225276194522126736110143673834467115309309764291363003951437557579332878160746438305638786996991723802076332119042974855374461943876360194097812445271341093766459994193996877417143315096502178013026844017280247352025492371439633449630498573705278214190351331299736632823712796531570600749884546421454641702920018915697526727273342672767018075420434301688568030582332253534917165844082152170409224545610610455169205879241808250385303014048737104363132118918288741521221668185238261816668744103528560258482354079285908704836316976581876793464367788033090236773558727035286883677442951637733298824152698564715303070782507623141196645685421106279815125261697996566758382831775954042617871759956512401380851408240613127110428579042234802285146604829356830210507561677451968274706252222016568287662401737393919427871668257626616238248077077481103735786359434006787822155793550539163426900594023872729254531051619022056379836522063980272937056129987787765764970385973471229569968302030838223423691042019696931632422607879075846922236227943273349470218745473970128861625157142640299905469560379118560656043135064752981257956760717813013786264557704912708959037014222189148227164232844026059020506414314461383135898214352558850516972962064624487701620432488875743654544384384468275435544617834163971247401208104992687106663507741182620479939474399477616660918454249471480109278864210475714600818666170386461734711102648823403763601168880517646468671138204517642924185456509350617096069947081234947390637602013963128066379852124249931868345193153061059290704990497971258161223276150022064696389351397553804139345076833658012363497806054198772029659807036124571830718003026069822161402418321751547201517245533074575598978010706447306036994461207684982360791929545999375154108744293980505117840750894158150831371032991932399976831835562496099351068210645203180180155259874243978303368808396639940519864582639910126559148708428342677444463247660692995487609812370747589462589751201686723989360516104872820061187707853629367035721907547982795931817306620903978614417039332209925918167546989391304278837798118364218182594530735995869402694203828039558966771875266618901783261312384424328759399653759305679285812382575901404567511142904403834405451643896535202650901379700645726826021623672188301044825215297550113413559433842001717530503442619934760437420589830958585807774901937031520021836338063632532547464389242338245161908463979351488346696064393830562985840109098136048466817645620185576713748192931070863800479708010544266848522018999141691663893885855003007081624486396988673961332464320122426627014812829678424139230651572575444016265569102700578852444976847246288732995863210100326613315891288123793915520638384865436881666577453750931344091314328894894896370212475292329123905249131936912265100820357055996014761812523920143207832848250537522312284403053474780450944943075220885984383419704332536724669227174268677749534602882159532132380501206215650111040692380735900182527747520993338369388251195364936457858521982317241360021154257378090753247737530790597285308476279951840671200070480996106276332540790058393290552628494656265227243464411556759774690850926940012566139780274246129608739718033872007414162532574830125604979696813296069515846778660317523313685881521397049750592042757549669734749586599017571801399881609394568227437850325636701516709134218483429336111992757816839713270473154992201076597345954226532292785456220342368477967259262865435095299879796166275726466259898030350869996375110205661227636146354563218372798466526393513282675617652424571601455808877455822486571238395058255426729340412972985059825569859106610290755030332374473024054342847766184295924379443875459717426272033803103930660484715065224489402940795504846868395747430166379090981422515449935073187560146943302013163906065709506350460229056958311299509312365369399719939725095670949257481526944027972332055957135931763714781349148753569727087055453724462220465316684847463751379390184573175064423210630367604248411987968437222601216638362041320476462310914328932566748164170567868411400365633414960685469804497755966897462838181999047304117325318471369316498329096914016407213964582900658674467854839537489635419079215778689741089050014844573282493173261650695025016474590844239017604233925435144696100893816762830186164207448483002990120447087868069434424640264797137573321431106384079058646438081943032821737695449588855892843133867002723268747910957546671000426078826948281845088213821754464011097906545744450178789704509680410511372924218982550312614695060914799850777931551384958845089755797294839561073263152821252753131885423345042961194717594452375990184656300096432757141203876303821636293628814519601049233208548736393033259561094561092298133439355888672993766989347707008334021414479561443011180095514216883141405048853436293505703338155562981807647230057847842948935225920886630358669907713180993473774209535364786267708656806924364161773684148698324095706243795392810398654645903769537886768250466772852814568492676243314932344195468521094242558542708336553739013793511993568793559670138228582319848254569942971872909603219918695934212706292489276356074717337748632266317942070115374593709872096107334966668230172585921734118054080049514825898120333248223040998836192770888978865778920805608767646312598764280613897714800861885799744729338712826853477319351232695229585127742849907122381423486911063198899689135859340899534652488136300304673074665608621489774427093310260006859935687191257217485885851480418186566303638133360736971418979723299134649317829629324987502711345433882507839353706369111285941541175440580119450679223258639183622993164284707531936761647738184983451702487098359889527329825040786762575356587043584918221190259162606749462361308815044564445880564993578112878377290056337069822496913159745193847625987134617194640978374128846566145258630844699005562039325991130518450943098379449222153554702358064556726695177117894736994313075764203518000133261101416046009709880318462264774750026653301909100465011602535119799933817330671415720608238022955521070100692217472868857148957314396870925691181626186781289032042585704333684107369302597855273754545834545949131358369667919502114634355462786819680734649614091631200657895580295422221444443594898702304786618840676587627488076957159729143953296508988037313840321092646085296010505638964595946166232984815444126182733486172341205212706880106177419008716296893203025161521524771574501352632140740727472295470438363040184126891644022422434145614647337413846327519808341172983150165941439529543085339961302976527033641640768371649282038311401757973727726287228485856776715837874476073741537907065078159587271500511052678546667923972935039909822024798644972984317855996398484614136076804735279382968932935597443379005372440663263861175951775889099737380430582317429152734822886255217338524160167605045426366190446369961081587489320201465292883201550233890698786205947413214596676338140461787279812239161743434189704898573106118561018682797024094619563767293199477885834468519820175403062976077019850474313820728136303691125637282240505016161350102770811798527930214827301114827430819690300079742106478789268775331729404920090428393023022210885719402006581049242767249529194952887170013576776880503724841367875658563034540549370877004402437642103646393640511223652379066625943666230982756138737354583471455377824117054137784860547379140955531080496417988744990875372764221126408107705481577365314630276514041880606619990093196473284649938023085068108074095138069798216572493889587099598533498126907828970923281892562346295622782296202231438240802319233473127326237430122186657117259263227676299410430881942821310180669514024380223636118196734706019091686395406510939264448397968441368753756915815508947069964104941603401540495239017494072249376755636437925488692958852336044454467340530870977417712662499590409011162871540163312392284851611876901457863698298225068846201415393696657458111528322386317817509083798631149741954093569578440924175421567936888783663614452787651494498022716481548409565867683181841299975421130698816843494997643308099208180924651224709079507907787958267001081825572332133823602279635300712319935358908406556631671696720013532537301825612270496325225011014039065790845458379652285573155230650862313628239324100135779656306504326736728174843283250116383004064106461525330624126145546675549797453410701039831438108788362350324856147338327470388741625995207431558599815346149488722366877212702910724813763965905589980326783844069566749436287824897180212509279752389735528322136187442906581858383348596049659465057352344476058851051703395185059342694726098623307370284522935490477591745903059548221240164324172748690255551693251132676618648703088241927903629852533102962723319748813963746007570188102010468200528098362021897484572793770580695155845324580678698746998362962382966886913019162255270767981125105334616919187747581269633451492962564075917470051474315562142229657295288417483385643023999070092628980325769819118787106820228274072248832587393971559801384729529807580919068420492264308474325398621100662588358737511012798635290663287628072908180392332010729835140377668489345993113659283663904646003821569398368856339134237907526429049559213002275947041725240053503686498679764608252636241763382869124338533333151629326780350691959902553247615877415534817477444580199912134521875944772059808931717960129584935560228235871015399390638572090285425901054859499840054658084173887943091722890045489306791149453431670355208874206348108761250168848918976884238562754382316282075562670281170478769744262273313384903285495312272203860181429561665521379075160386931861879857120251167759603505699903172160370114700666895183203981387691731128519382128838462790644005612922950985136043632703674938528451282268120013466622270491633108772865092314461022104259434550079522262585101396697538503390339010486655397247895307336065481309819779497371717171858838209987148164916742987465323287122644853370784555845509545742091427042760720697388788829878682740552309833658771097849689240627008316588934328249627757356643278257309674269896226232636315172226214013094756061902858672736223351459319591382831818833587805962625918445838395952648207323053036755303368179944131732460212194154238021475816203949076923542595125039149741259497170188796013171573123848154229602591354130298093495555956522766149154825987637681108621113029354119828628700087192703218004494406701566303514324403041642849612517516085439196627787629262200117208282765502132814352736735602428400093782202584505675511653937790606699529149717405196643122048231991184144331888100616420558094664881006751252114367017737668469275744805072936629233779370444118695750186963847826735965583690172667456997455325931501277549744023389737573783911639622835811996782384696101123106559824953586392868741066568666117178694658002509071329935881284386462139240272561336060938653514668526331933949332773005762809285997735283434776462922105633901257485724503744788477753211957846865378887867018633643010784564425615906475641076987659718976397243015475864820243286865480887159632512333046932896200023109596714682156300773461798122629753899918448193824761310144445119564391585525057271014811061950550480413817403261757394958448845134042655833236104456577348405452717019977584586149630545334017020232197725735060782880770880041337227981705280786088649549679137974050581969298526383264375958853587971545919044387761153102198763024392903480231590665455603849054243181542126771591125786506500107729792997318010766286258454940876899651565742213819252293230825227742383801018671831372859256477304342222202035286418472012845973178146336247907196494221461169233297975898841457110972182796042546676977399337982513751574531354034407266997315188763211225475467903742111832786629522235742577258120598718421157837633320663811516862739348436296724202468908061651886636688574264837526225576445408849351169753791192746081223208619233246977480145940339211767823803674802567837439676519009780323480930252912262482406444139181508428030884019437292584127044917515364306260155830071269268527677320068222197661570543846624886193241856907985762282562398664787171421933239188882142792194085128906618225012760459069904057328805144896761729753622760240656510491188426729764547216636212810593084364212968788386810141737720216877890264176948530364133192042292513295516069979828438100958552015084247071485334073045239212590886065717145514170893523735855354489747012121648916339804883607506386050970057530954889838364444795064847445429296774666096961165877000472299405099820921421148565232423414165632180547008896788696756039804665111430975656342327985326802528303906908377287662266331081783924267382127472969012295625000841533360921482420484056376061906994469323641812544272189186915665180106908121410949593298427143316466533558989259961381261083892505372075460580377437241522883757378808252933746055263470788824744760463463797605073395332432135305565033532387154326309601595346476533093618033628571513006136052235505911071733274789751928387828871683435275366395653665842887802748553986758558751538787479635951292890756346451759809299126846927845522415181034325488759700213170331523786495967571534113255056249592559434858688154912848839229849874684283211131048581185590622839621648711270042388181059954150387698543566046342860933322318332242594881740127998538937613971160522850997512122664191171146448578163802353380603471254802613719433588527327353519299119883574056592816993771890206399216514275298979092810015633430407965891235033532504086084959166928673729234217281307417346573277782212344583748361916149271720337393821725346973753651031641322391312004424139804811082408678846763704145502527065989324949719661271871523342987763510129540533422787850965685572525404685515088302393121416960981231929660367718558541960055382415418846253930296961898954247084411322468730969046731336198500518194833929661501024399090675705117354660300818745796726856164791907429636040014470173770823666038541069786904450507487938477310145139961799084276828439099202243122915308395797900134969849505725631791600665456714357191113167684405892658547898284185828558084702898302095909534915082926927900794211153543979179267839364127664800037616397406135092574496302180426149763573096172553217113356816879384525554341873754071866689607770120340725346306981000149719964584901350887464972758469211691966502562841382531485873893762561111446858971748345761027229229631288764678077221603373898196317372783862871851170457681597577061706174492901958974557103330036274402356132695970686001933369232987271587446048301418404837880625271280788942416060352401137474855640121628610721253243897469193905830718056639609334548788766445981061508776137736447157970504998769300514757667491880431461409525663239137638162039501112742152046820131254117172694614850354467358719905923951904803700734648890069622907062417909500506059857246364613793648121126041244446385297413236471435723917444160941189386651935177548310213670631531443081075661839170417279958737041211762117385404810232251864989945555151326023174035508326803509635007389195487516412600662119260771261190279687137047531395598042568933423568670719096228613910263201745537467652230555499508290723311633762609236964275642931811845570185776622243161334919806652637296299139083470947654992665582139105432142943178487235353213186664897278823885644428893206601256407430598052701608322169873502338917688065766480819488561614486240089938629845127358314749413334852413775447219993410289704349281759013420130023373833904868870634100101471895531409219886976029667769581859681283064505192252988231456089130151878770623125752145096160147833289710951083096980284793310243604235691942251920882609214866840408432818515996444688756666750134049885977999168097656029181093060619016721091988228016398604384170175202362089577954377256447809184449943795330367094338304836272489098999350426180292302662224078734859192861303741658524191970267724132268504387582981633120670831529866843345801903008239401337367653600668456670743203196624774528974951999183676707562848544429640942776218864944648643300870547520315905048108646694886131930096051619077033643869111045120316503309415174640493540840090520434294194055861427799225657012442503982767904044733533741808882622998743320041461972647009488360544497347279299711854156566229778053320594158177449203805900138749884210014263091180313813286881123131553342972019510699673182769621938233293141228933422410069790331377166331087238058500785599549430674710614947267716667987387657273082983436926194383318360176188714789521494746947617432526621122252413385477546163096929237781835318603118855717199356605335911298736355563844438064522420046099528268234887838093554969878841687809333219435253771828184950730731283691208097965199439967830326664929217722203216118195542711299843129185720887761837223583269912092974709365648093692061828479586931515406673335866043044199447440375908762689626461812356851842657880364560398465510963587402509420537000814600306034979149266433514932664425355771321423510369607370322668082479865176057982585105886026131731250462516893359141798791921586409447884824375238385717755881439685683601155229241415307542606433176644842651159330605759733573268992733350766932946346843098287462047690088523488756607440443621016257916841360031705617738020243801717088453457714180903264748448732659081478567602592394118278634876249621952445466373935814776703332463876800210287585488722015755237017293897761010818231675717563340443996676473540084615844192240631423965970125303068205242107975354350118475328336671181454000132840374581904024613622220553912307626851478126256045138859387117374377072169539743321810815912413475881453292961122114702552919225090177329172360694252336339888237504764951053773190158540959099139760631580047966607108161318758519227980067920145625474050169488839503459863195179734879179010643164289332632083141001223306801298627762829220501661456056732323297028717388847392997252941770104281276674989094516712531825989265660938363337213414888681278016484004220410640438887805560126260905502057254240513382547786132212387315729249572700715903923475038009672506333489461769013381645369686552248624593933491778952294741082655628187808386054475368754078000602768690747315019630393969424495207173325971035246028761723742480155814138956182657279706501266344461896125698799945901856678587825822737675700697953341689998777252952028995110804437311249490923076242822194614166078828042993457066892060358264366664578345845325899285696954852411030810266967767643061077931478568541068776482958678269866416391230192151808545544247601585777758299481874771367744126502025631288030918089617067252244928459802314384636842841115188372282406407807870523019730949434594330504379479081820777623557614806754320691041835186427586458863613708415119784928558229202690153747213654231799854541493842058882477941356388290572997244559669271368487646774998399658961010060919630127232874348357426379384063233759990083280521441780155627806373748982219189973051833853535450137349332229691484474628724198662899470969934031851068301370977795829533009098749095248147892119458787733277289772024129037279384847684577990362537897693941199602891382481323084984558569669023874809444337515950409198375157941683641066843634143553408072122616799106548058856552773456187506696948269921512444534336014813796000204616766317479086238251047978339715320458915838859530351137830662459564044120743102971648411304356561496905917775982425304248562403592572141135120595939224729160988662014653227005517892380855775119830297555883622441014537370298793161409477580511364468528019786542348625264835160244093867957658173836672187329191294761285414580465992932486241467018787165385879975006709164502369131326179465789547408747821258874401550785433499034948645539699817216374956656815498191501184792826018917108417847321860038298396396404341412174980783923296578974798580661823915634692188345599092740751910851955411523281791813357157211555355397041643987418084885327527986438626637267094908021636978583841253173276310617972260812222417070167217524754483296987637360666093108445157993568247662502818192842482665755113545449486737505646628998668732132586175295165888355813860685583752459628704691037218339840447605579211404788210691909872942405112180389204987191024632089593628013646465809803980971236725183094140331420762406592192781439924969248453511225476972701415692642868099054441858824284119397316232385611437307471722368247646315798498953489130328122563027652623813890790738359756109671909514297420052875684082515418574092672105458512712063217747751010939629228598834887603813568870249442747157570407614588502296010049375439887464393056992829717113586706034486717150820566266289290681683465908978974533578929466111666704483573327155994686077068129747077208679848501571383150229120968438710517429189335489136909162259821195143466322478130012040625369425813347725448713550640408374378925390348528710010213867284957981923674819622066080560895663575316162299946250405197692103017740833218373190626865535790252033885246913270265437895355401845752647878936759421987255413655453879021712345993720899814938760218630083933428880597847604256577500372610423382459608933606104255090130735198256910276811594427014387898999581602259378475870045886915125606916458640647112835462135349428343234616107902203145697188601693271602757162178613127437711475219522006632141896759756869609615296356503313522597151328011823357108941734508660137751367048154590023911471850934237210543034971534630328309163195471857732292762530977199241763162432152148529119115259135274925377666088986860361191833321878051681769398578041856929214206887127520469757238231892997008640207630266137568491018392438250017349348120669197169008571526579769423107552814994286438334088317696338474149490587929161132167093990814984600743302737700000221530901353527540301071887098553840914990843002131586958822301142104739640876862914433630566111129239836671300585479169945799420910238417875684907821561222753195562739847483612004241676617307967243551435250209475158485218617620810267356392331389142508790599745330868006800402345162496741581632724637727765293467619641039418664850536095590007818671074638324424562568735353234734231816512032233396268337057419561698673224013329347017649998192605688095175356046439819038951226237459301132182280381969017962288299215484429657665346361805352143651258447281035456913164159622249441861918815354311121820509859181563953985477817819678761016184944275868343037664163892987339093721676275169587909507412658022268732127282508013142809772017013371446844485336763409944705007806780704570313382597531668111637157026497904639094265600558333438474895750014286481483803770523348499433463098266054378559376652515250500165848855693079389661429249249150451918543052008386638676027927035537793059426550513829317670002924869187721618329064946154938663816827314660074891893188967668345213690959670085307189807927148719549033709799323288861447121096190592421071284075111346459657325288063552266746476777459986489759113716488635708211602357186988756832948294569727927549924031547144094093036985508526301970621334089473024042762906000153154094289070456371784123324111652791862172935783428940403007748280392772085238750469065165065507773517269477974678879274227619483247207833087270581775698845644306426674303877044323831971171466736276494341529348045109660782487860131808143528552239288739079950661831010496058365041113978096591613132748141959540238809620697583037568264466158794743313636394859829720458479721181096733654335978852195109314970800390640644611785618087153771963565254193202400304494888827251162659387997353034473810695393142891761354034898344031756454468466873810578163423224628321208774202565269017122767147484437248017742355521379370750469928559405507029226875685311822390388858017957090061387704616472251653574848645252345969227412910554257899285496544047132119386488548270675975195715533284201196040761813329013480986722819627297523130797796647494587994008861224947602854293432179595227308061403124742771732729168638200377372404253320723531260374709740573390278250313255048179867075486695181993971126737417966149826149705511756854596212763195346086375653668424430901332986427379599930143716036055546041362155314523340329145962183029804070127819547489181159059136065511461565516925572146715165114318252793684449121618866106597396613017368748851935767372405073551224525056454306128915005671904681355952944493093424778517774758676954167170699737613152982809686169793108393546618995434691588455037913617350239588641517427744601304518999310832028245625097413714487067279495762851890470949202448344317320701915492395510734578666641678793091478812300649565787778057287473204018631197119381732869585656705219185821883758567296229933029640314300450653119185572706116632867442956932437337601382048831468564722811801062462207987813096853542329454031141970783722780685228869189732728952913290707669877753707890965954693433911853450398480117067005288117279364794772821753577561844476835270811174131400689537987941670439798620062045611209155221600536003989674829821438500827630866618643601155321915818498518176381243270203362310096337786009073541395374158924578803195476994619963258445215703217588282792099740468121313773360994056620953348681352957986283781005960069636635979202727805854898014545241504072197464503019840322779565757682858762682731866442909505177110066671659643502807006583742075856773857496189814402229426443196853968823430244147859481543972166504346307518414874808337003197442763054537447535501086284953650127873024581362021815274329434594134699564614081417898917831374879826732470587584814001297466545842872281435212684872006392052914502837163277791713540571620540874158125462418532399353933248122143080261290638947312486908127379088314316697438305903272027866122685543520874216509515517543657044207897484760008047033919074142981378339539054453972579700446539105759826748613238047617772273879568729530831707387480515797690084518432529621744120028246509535695497217380631054421298024969409813795885463242146271397796522341195617490333880823182958427040775783292165563510931241710901807328515932543766417455729148805330789817444300653115198325676200812343583734756413575755857474702955849135318129712334093096473708896368541105133315657137522651623440762983559849704676663324870842548102664036323223207639312958691455009991467159847392851645233191529252906765501449913522330481547532979666137595979036043325199127980316995868699950365125956392775937764372189800930293411629847590454235511709906651091317188554074873129125626496575770450558058480499279160213984502729331151853507672031765062881741859901977559000812877066281162693455181374197236191945483613479926010198969265472014646896732963314029046607926152909760948778837560352511088708318637820729829346131095163228929342584788144685046798777897342454610964620771629072092204950986400051401318240624204499148664742696871674981784749244654119195495469893190127584343541261617977273309038378373967660984301503766398878108097615653550862168067800940234473469957079460118941430474283471811891172622097939491608618711279003990458641799102825129485974907182765306744552302768307148883677939291617849823024825595261674841853148955375776805557664479026173782179962200336086346821733889614899005846381521943984194793793914455371657864243410494957633369491061850243537850222563807618741924143820432280049967920516826715747746417321487285266407506209332650423693213737234827609682462844334485853941097948050250195926568813904666384488960934071403134392700823182193262275620001734579256734490207074531391809165420332488619536147598749869440737359645877502670969984076085770806589431595017798996265396693183536320351971931881307048774569888012596697282486440098065546688643655960767904166737944607873005830058831935740386262078302806639246114319605345486618667849969753510180197059471579372490240657771667943255896067613878998899740686038253647927623190937659054458501414092826503526364587271850243278256156066568116053848237072813831679385645759122084219292416951924495127130369816852308707410454874043121343004391451096486567942769240500093450651188330868616058527120460858972988162662763356146402448063450584856333828177106986006711386332106557590656582294292167729725203334085183721442181999124121277170330263688339723271821459943775383120307888408942846733952455636814067159385226394307689465042862468597962647747188217500876189674613887809053802848636132828770098836143211994771580168106463286687142925599954169087952022063121130641795965393886128644231435696661180253476343397058166691596022523914756228295366458964275996124034683469081133694259796804764054663427837714546193522797850496215883083678263282212160073123522382046229248839087944890759100906957481366260273375501294645669925701958070076074625011495929413121624218552760054602071639577046777086581741714662969319930173491795015511464656497458576141513020790835397225693217041981382474560232996843289359858941219679738810483514381393852495448013667912508757934032367099106087745448879405125241271913217743903012258778428784960134042088284051022907531355405840115299576024611560257247719714957080976813338339970584889225028932298962459804082365098226235070363527334271149090018028134222760563716931010818660178628583191818857661419451482362256663032850447334606381945018685760251413181839887723341971821630518371594715800602385514927307646732758803686180395552757663880414266799070819036758184487497218906262802259214179208775343205588003007108342203159456853953646226385546189578261657237451661283740216042448011180962744306245263581698235116687027579157988371046082924564623609128259681685484023092173942418975676467730088553702929023199630425721431126764311684203308811706870287667968686100070718148461219541488395371732995879419310544418057347284424291032934060157880788027500124674230558804387481903311640381913409461190078957419209875368528336004608659340595813341724948161150586693034468754595704536698950950925716013880296148423103620475483505308365362966811277323819496646071477547629900944977461412343571075145964494512013124014490787659085702776270192976239961820723283002937454463965235681007373642102870763424533206832366333813119695062374835482242047532727715952123571947975780743965702843403827504214502860893358734257188661288516183694571149612845207768254314777441775145070854059094993423391666810112953779884097806497995074332886146232529096573122571139592233880804159635245670581458709428955616984740000357815684915136228319421697338932097006414864332199066555778772526098275923621342168261022078188128470438600326755735838245587556156621701375363351093180743811082419637794317478444115542407332527359693008413758897850162284409478639845495428968101226454801881207153920995013007131486275776965820606616955630092431499366880661057441899394905990629417523625530398746449995362479832016359844872877508337532168085082865575313223913117218081230539033567518971148057599717162322796336122676497263642080797553777237863967103916621316270642560503724488186227180207897241940800364901717873085533581098850237576285150940102014784190416338984462639668675530552479446562539233365175833787661999457556264295766354908024534312275853423451910048298423277882193448192408638118595004651849037618095239972285261554847735693030289048424962905164858243835345963441062142837955775961971537680755297636096081367070762239966603877050942216157306984474140893810680769768389732502652597388282218812909273362406254223037350337079432284106834797277506537733453895821401750651787558641549803405715920771652713664726802443491943225848831236089343461798279068072804988481800149032693681973979581824191552386988581070627528027410966677736845295403193140292745532651191507466841789274129769713094587775251699655708992529882449852308537915861006091119886630693647713540344773092804239923566404497919864453057378222656887344121381299821600431580035803412317582834299938758962326756307063327779669348254974319163384888355264526728437307344845069152008425214309480005303502077908121156292588309004965675736875351711339140421269786058243102901276478411817455416147353452973204093728075861211227961747004029769211199942571851667088129016877324170004299061848527762727029969879878022990071377458371275928582159593665446896696803588659702362082095627779183149098202830653656513748512989190064890582006508149676974767497569191006828835567682826039998896554140885603516819363667071235647239276223631806058079923536130355870917611402740840620311046426974645601443119779215483022734656339428749001159201846620258587627361634792061671709223375564879538637864899927324650183245805594429713422011907420715422297308452856827718835292020172244848658642914177126299386113606196109715802541094073579497654849433424115435101984345534556674937390504408738149401161127308635929321108944696912397600987620796936587689711440532812729004167249573266970740970783070414739929087113213953715019357135070112164440678791246082908919754595335613726769642100041132754339583636114246131882165374899434313814356063029717970363564304703120392481007362653838428885970823207060063790468811004811555177256508417857089393124091891953707836731959337600600549956763127800504023153139979502472583971523452169378966433049990272557946728053104573710085333490564558977155783613262053424934877524604650144159675959816353173605519076913446760391747941150857239334579764424594756847261272132043140687231772859216667455003917871433733459628371390582107465487688538056988874033638096827882154138244224036315838140575810205581437916173074242193075000145999599238576134451511078882763052349583246843247131823116087524218784351294410037285348724887934713787483360780140401888901011245237623227375359113141406767763132170470162802697160058678462849022117063511730125376151445923463935415204968479139756098192030764756741723090412345167024780913724282926958606876829748019662062669572152161668704933965151598593258687489639284463827557286107144791094986636073333889684143691097449765083011598932927840231896218242176048288341746116077565155907929578149957078664390363246633393708620501934630033431282666256653928390835646199483308691272591150865975612597606190646185255568594750116462143316359342116111083424353176613952843413942567229104536148185240434904244279057010057279192046813499874843787379088963611274875851683331204498275390457261303788379859092585010542645601341773438157767681094322795142723527911689135908394464223063556256028290713562596582594171121945781117033543509122844543931048090885607802382139270258380026148523158144380626201401826799444391136128631860049811524267867453678894506707936400597442001037272389346920784636919050564720806988087745378549335599048408027978327743659610260083076488352542489655199473836140719061080757903971506858366585210646857318224126004725878833273340975213915671339241432908152001659949652935135978482101300169542741308562168973049845670829710888028294515808758903194296762252144982905117184103989867465343695233663561392211865895600143917284066132480885519814462332280000236609361661441948762710663456423126944483067438067130250958451672485680062498282821215646395995174038779098215522385185577814738959810639809661490073498777872014650513213443556112978243988628274998636841344847244557386816913624246841700635062691885330886225593495537392492612775365810181343178284644598425018456697665108805234061127493459451549733408492028532144852475951960111068712662304502386861287558429538287777745157651386063365389129346744568916075912417670760935606960346480440598714604194797374647112853164143285531257083886136493088152430995335521069826175061042622386618406112548792884518755826359624750980281673540692141004267658155129867412150525717583279094993084355233538949667817852210377681451802719379933143906649187151015955278084061143462824463888994126985446541493664311746527077815866436749631867422523655039939452402491038303983433488536628226701974872416793243395108327223619263607466773626485948536014586316735260215109572853221376049841889090029468406010045543360780993436200401119150082239938025398275175507124683874191614593571116216914174252942960611833040973731271911967709267939075479074278610894077233877762873861948558167258873137690164017811717677657055749269824328115184940330294008860382945223276116393884106717091464650912406032056924349018020168377375107160574446569667756068037780807184691275425437402340115360597780837014506399137177570110003570979318179112402790380084593733032483839777347563775921248761209261009667305761583082689418597631563531991157891579401211894863638468262885637978295649154511449878553859602092853004669399194808163392899462841138014240371831906329736403535172922473180413899765569352109232498813176675312244668216285321958651939442491706240539054096191718218821280930645749616250243992173816646584062398243145534915834293571142134896930284558714827659024142802232466527095511523802896372790284264576199977014824331657820551580471548311825108088559301529503728881589196422250205029849013862627464233293924661898889338038956926676649192047802628287764950132334068187299609763637164286879012275132078502819065461503069937578882380640638076083526709860083426152135953365411079639382726009427732424813723113461299802461986727082535517867251597316304920106067961014920216235087576119072580390696544763128674355197550816594769892847369349709459996022571148359065101862826029548772472873265877104206282600010034663620962424499439300514889263927698213332237569711819705026267175112897956906528990704844674079769892642214037009368974524147349396710382475853143717576445193422653636049994618200592343020736180422291623007274610941279466938621071385035326665445728484989505092046028752003580536842440743044006496599750315487091890229489175303596472849265810834644016220268665331054511688096970523034550139143679595774126370351903329400013578360528348093416657128528702545494397039774046735090965454630244322081800235977309471395494287683163439658929847693445751915356497316791643318483972241172734803488829922424824534630970037812527985982471090961690825510169678167242537873150712861309640198279782756402769405592852587149694319751188314661351578301971986783273273036880864905853068346837604914656737201834399420931767340781473863217678249690672307719273151470701092034292529524849391837896327096251143398682607886802635279372469671120133770308260455954366826694581362976483670836158210296572263694678188916456922931292246266424965375247938184147019143859819422288874862018389443797586666198984864469964902895999194238657029903990300194544100999974512719758645034609523328320172245682050965210571976110502256289019973688856744683218661107738244737633502340041733748571457595745920887295308624682891052028116692207643072908044615022179211666255475087115064569389688547260079551720596780442925734904109962128645598903011026761301185971550188466360660156998087789412472821671160153905603128817550958255081163141747805100652830672121915110783445511060179115738462864315333185016585963333906033984665367752201196193134461166386372918224373796018297629939892639422991029709784582837674728578892360232788278368067475355121293054369371825437356321716704532926936486593653760765094694837944374840254879413407910037236698103904766463295371034852014425175920610594297655771724975038828669124129140002709325121405505162227791198366618225775553527420843692726631786949687713329778064167357082386808839687924191051759825395028591663472506164248640156534927757990952426984650423202993999537989196039544361112177487724911706572698956072640798011606695676771619603994057084552836826643038914503319167430383298251267332433416818493274786357474451048128239722942058119035378469738325924066531809871147857216276898828529405253539983145708115838597511382555430954410946421008915721737029993926308266924938008768745999167796020873686617106919788588628076369820269318675831485236458333092527047414832847791254134535670009609583084719596347739739193980570304851898652511833964305545084671158568853781987023968851093718664082576814615474354483469104595207619686950443547409486851267496065429468312512294406097412733102175119821993232808919163785572044634565106565640435610213805327279954952386099715359658299523245900575594230180608795097111127335511644098681323343257513237860387246112847850210388242116681891759145293823124751521601637854860023739371767442974188490202683673582916954581166624091699843092356234111207684963101517815505253062154993446435036488196715938084094561517457433560626988411247346334604230470548545775478287606072054417570473729842645681299140768494343216717195507016448354822895875906724745349863464696072625436928061513238859717533887729631953469970824214037512102588299085848562145729630869180322440527608285420043287122580041042770171748301083919533601597417883028752149431130327542364836676777720216463447466990360331489976227144546018318732608559782476726001854362767587844091534825176343301706910922363343664225438419594928283083468866496448855188515280533343420976459122686744103706513924269571255412435287611007052725099809865874943939720914120035073211653160068530515900527382298312030722726439120812454751496370631900113382388426977894578209955742835785650815391476891624488880405872683629315319412688416651082021023236649291342624694688110273752005682010566886212234484789047966838759477850155916716420300531281804757061532933666598134328194415420986889410877220605881508747898178337222789900922362096608297481080140228503566074439039904172509086003604749151164054912750267379573292370346199348484563651526459462104891513883295000472687387122600133088090902917449935898882289385602571710461477236397441715264292687593787865617658921364346881233611767338105886704023512144106769949743657936497441021463724265095518571561170419331066035927763878121173149079753855987741909978087191930921273108933837864507058062979193183842925887004241503617130602622360112510527289453224087079053029872395740024197605814318513011401812772035228994410262723404369450513786302218185652697021634413984188743566204330753025144428469849605511912927160739939946247215971016124848928302754554035089499765420779569015627254245052901601330244525076446617177059225072308653958878172320378723305902665157488966519641534276830100084853496649894910784731860841224909787609231435900367252314178579273497965544171989307863246070762339506405815821731095944929926002827615686617253147714747318694222888521774680149572206123759814743017358823588664275726944368364938227883745545778901825482463383825938324977223588224663129147979441098781772336747787834843105279346047973616186721245659539285264923225947672043915695029324066390662768360438492819434542661103386866958273911078471938514633574978159178870884009272686609737347235975096597313469791024115086826562367086792947427123304093863215987146853940517745834394143036858716782261827001837990702092102489525037742994232305248826209279295365398208950516930037320284228391282832973862738484108164980578616116330785572376632431896687895702242512045667156122653461797714845729954948225211724569462746638214409351734270103928748211515053026895682676530355891283373621815018839377599186937993903657526654317769540927344028768511713538978678024775521422904110522369511888810746414628372756193230025628222959970874181383209998500722225128316007421263334152761223753282873234192133127214971792714337408978445245949732683190647766349127232798049511941384002990594252973678188117162902649050117665387431039110408046235777967138709035611180376586568437120393755275627000251311983789609039832318832659920252703379251604649745815279646954791370953853143771075505701636469756622267970109134059362888054091586027675700289146099669826235056240212532327465034419919230106818595774033122913484683840550388302007297647770241601436495119124924193946950873520588258887678086598108513077836549452235298009194284391016505857774995476092388864979112517196604264024230522671310436542930079436560232581581836291052145081608944400682820551185504445597300731187707760719458902688632398571827203451761669576112220275645695971475572558449291189898682982686348486117023944063989623676109397618207820371110853398830456618742092067694199699176792459385689445632117393309235161532141044935972143614701176484346941047800510780435579746145406139022214913169693526846573345277617125555124086386889141901706029575473797750678006296285988078869217663878597754161676939754963990964063966867902455348763886365899831759484636993366933302215764802756578521211420098747171893285506667765349108147705264277232236310948829393184575448588976001131639717020669237992985806031215131071732605599874668266852581050429177634521852543184399674976782318872479666223523412337024919005012823534239487592819781891752312285702476432092972946847538445220119142672622985276584561951574018723734095565392631113998308126285513938852331117991090169481663869008949315584061431157880863808229243764773161243861076690202655221901359607282567039831785782049398697433631174116978327457250364057245614015926686429857663354708132604704769780171467409430664538848315061106942605323669739788593091869282610069311649385201680932903651952934419955791865765098760287173269462140760359585065964143830725439351298046255191595998027673022406592475648197158016402103264210984004516701724108698091436878838351613660143915283236463559032485287397627519038024138365313133796626683056965708943600712227115655218610739200361292485728278934762999771012190587599293162824472535141484511976357927650732935445851809654128486259528230123440402517794091142814470944769752523799859071421506006913641671030902309177889831241841853625506320608769062934904495200938325750814286342839558544430576936834494150767307382923596824835258598173317423574174745934906842205589594431626610324224733991776795126317296266248527838540467229397799051827222611023553569920611012217633209672876162650220770175267038839222613670970200046222152491604526606234956087533696429034499848842899029471884876164300809824502367922928587887158687006580414570293580109943014576724159406264747043542339702968294957881349045696817211620514974244492804799475311376019135301220699711930715032477238285426491774783089104409616963732573697070153018562348369635208895697442089215827571953610622484531373044280491078534663397844297634475504905606993486019386755060358730749406216790632649234868524142230910552542304882213020823436107392257021188442069903320936776509780673641495979133332476153816648639993211719343636023210734035160251782709181500201719546362077950212927758020410012779874673286325882016290383839303887687413052558027733094411028631026200170858973791458694570394712172836618795151175609716606173153548396031008297097809496344183123375130816589006826712599844787444575890624256162102562856592403020893533532212229091463455852236933788048885455187416283689674461601862695440948830718601067112203626170435965376969501792685848106363347892993691261548624367762465270660961003180597466161138468543964006129396798022628902839053616896670096701341615204950896360143546850255925834747451353699114082657457810186787049537629699739630945544581492403706406455620547153120888080097333691620522504521391170923120202942180596853679196792960099357101200749376715594871863243816346034967598353008196309730001474259162953606535036419579778798614077045781648651145777260171621187070889160474359658490416034533634397596398093857284903278035115285119329728186340671630165128014298243926476661502352288353985146904034157275250372181784506586854743998710426271472464268321293056898890707400330508519484819123050787967449943699023991961636096262881035466761124299311702885073640051083076303657063868036694938798904746903102496518564372653627073014763432274354433733001940376160768942229309580197066925899670118166752654400201136670554585734156950889682761102830064675247779709122971427353635354806637395897636634774361488868379055703884116666251888953135098286323646871258515551795926046606070795718204856138401125532223329818972335994631390365774923453645448524596721678922505889634836606688061426101208010724523439564492719509989643728852073066117865709241265778780386182950780681603583199242542610129046749862091177239024090556731498589923843052732756693153824932448315576731812280233306042479036767601960209252582469386626261647180994633816107381202448985682021151783895884205909597831105180681514187434126521205632295488103735778656551956460539547058799277139697531388396860848683435373016524784798076131737399270508222203849046580764638131581322201527966302297767702266382983734944036881973609103390390325177140425767253854232818038644149698761768116755942023637401005425452787752054176188771956832474872724874448628941367590666863931087865497386926895291932405108253213215781341883487671165206909234643343292522610369511573080273003317773010381198339575903016071692795995835131367498361822393661685884289115996452481560904870835232905178983595743011850765128493214839361701464731208211529369524428198139297369007036560891723274976830537294465266897657469692755865318862630340233607585915434686768041358196195455845228848209824229738403881404930810579057403106789854399685910265561225573734635312613115717343899968071796277753367019353241386183282166272867016937435524917805987161380088776144926989643043113207243614614581100879757666000481771028670531415026329803338684693633935754308621628775647915104125358152964262158277175139627251080241604872651362041605347838138081072877269003953816637236865750306544570592167164736102615329311870483424749594492689444669397727107862572967416038880711820578187340351962700213295117821703443922517468402512024305708974644748613024123610502190150952468891504237401006597584648582828162499048045013237031052584511277728238179403290050432952433589814164987220774291361241438247787798551842962158606812872550203264343707131017182476862617354903384888632351469958536419719031727190947359212057351857581941395159395956701859924331014620481942564475954985263099257281064796562405456469000854372126807794858240281625814649567960892567188810551144060738909692351136072475636427190309212895713762875668735612660373561916817560851060741392329221615278122507393771258158286823702874906161861862194931070451689694480092981316730536118559263627953960668679016731833878123625722073833870129615109208579447612992075171268582995182632616135426659627487875210324931804352455846185301606988457696822348126912924281303081539911830477333900890260792829835768880144118354894164713303817717243085472725870201450731373301812002868390052237141484080813947345793261332266274877597514510939061137978359387167198536071413738978675146074833205989007710853670577158193857843059415896951803147775811589128730832298219820045000712642158584076391232402167589174463489604449106235227506006748911682413532895155386106822340618151839936777270348221481431426807021115457735947364591274220673013046297153100078111665993447226061291493846916067600405348150587271370774849614237097440044875070626037040554144079757635702700816794685479919685163366836394526552719219085904282587817987739253178565029712281418024362067541497253069390137383346865512307473059697374789428578194001806862011985860713575182050651437911895407476097390603870086202099983523314692021118539818987991775983063479413309747237436982358497060528774454967110856246675412779242954396210143407928650533895927387942105188356137393481401724935837803674545839979105468844822065063249028420277552786578080469065387614044288802986456324155146929275381028304756725097525697031745158055496537742497746471157837489612837047893505939199845648637123616896224143222751317954568098965542608871565493862756044942559765798163215104219192188899657709196814166032709253300378391836675512797758885840322420422783396239923506205537934814562585317545944193177375618205567104568256494656370166504621840952093965263067618450537108675905796332680127261407642229656150509807865674492938379687747373342176102390413039121753842289824068302506654512485870728600495799673087241320513437138305544662843807797317595355019733805627255482480916826640648056623765369014896736528213701506142196759130113151793007300149517676177885456874241203982734885569902913372435654468866572392964055844853606654642526251859084970609582878984176970517481687709544043003671432276989032871998749019656280188680548677072276024300550903891002077266109955972310325695771550387513599949005596017349197959826211298168048897850871871647264114812536588485894734966991143228835637664025334172989916428676215328507738611726200144713185941821990888166629197066749758749777872333773003600287853527994811534179119526655525989843118258933661961697429028128383232582492270384854181175251140029717455475804310444561748924694287089773106748520658451515577716304036810804666472369070401148191090187762937613547586861372187637873415892156206453562068143558678942973511100855387925483530527201720394784941666720378955247530881437294132387709351382354199468784126886578955435157017463505599317642908028431313123469586522802509173667057625259163552919848512348076696566568689685386180476537813630792270104475149612098681028120327035341445384015240120232242520168923511387772378157090789083467019426271869882268678529738543548445849499119546167088565725071471975289366646795508051558038798133348606150083494535197430468886786075257121565631305660011722971781990007701163260766844347920916650030949806976904887675930142014458868887700224288995122328247966369869178904610677817980891799790735799056091722126264054108471213042479168302525449033218487214803534025793647119749956753390498961385825272681073729826462438849799183178983137180812009573218339909394109541591845878713193509714192668992855702854936845823162414977412381843110230563404785227060848027013964217948069001727273791685451749804375297034067469036726734754148755629908469558687721463930995606561313885686035013469651141107467790329773539849668483641512660423292755825212291464347072478258680157953442092296576843564445788800818855795329471426720004562563094574165962873137017564543255210022052450892138465278169231958402821546411630942577066827174556103399750357649861933941440966629467944459643715605762174760767468811024237024451739157242516464599384130587618041481900500829248710447286698699330615708304929125496453899828547304864480691256425921885416068114650043655327654239507778901982359882274658055309261310429963105232925860135160816688600948463826573433577460556886047299312624130394812343726860364766251994510829635039292800778428478314733898541930407860747716995233211280297110461980618159241234526320544360556712932105019622829099465149531772300806628130817216715889016001602474914308359800130265384161690490249146334061068261825019943491680296915888405120686998743899280455462455942885581347116282424004905027500748321741473879672073945386936409490426419019192798565839814134720431880992417257103196106646741186960218735138496709690573855664205571100978821906605741847833308006077633608732762015030694200670879189625783322374696593497697024330343215346030992668926959581842305291728410070643196358834031675720505858850943029346633314554905606603300743340903282739024158537429976196727768089485058195968470822197287434822552132107256764795670071855344928284086589913789479860245685776121667983441607097314499575902239190504747888115357474038355684465450209421815618623509592623356103558610842112660368337789897285951522633621874769199982630096492009290681133633521308632811582193549374035304321317064656471663123011142008224065457487605811972054760434002328493350819230923913908665815987098462426940319057957112148001892154091796351465214115537610285410017613783335545721826534593951476179186855365377734477344492614098269704960240835998022583306796556728886008343115050000650795833295395033765946439743296521724022660893980531362328151129694853108575982990501936399105647463717028301022230099584219436859824716705890533134010418794827059897907888580734680506361449757464187774193574093072452280260999866689522884165116210432546094606316424750054008341122119299130065880249625865874773910726108353272408605835621781912093949813935859415388239522758238668321422984778989685940162223403169485420862120548045341785358498463014957783712650661009976087527633396399991403155436592849249808883008249870175417549635188251810491385755165918171080366439813865665034678378810260557099019816916647569938258539860841220858469383341829905058125044795950111135212684788489639491718352431040704728400938868009973238537922929263998482135605581925608996357870729146426332570235092296104627653449393153205707403282951421505396529559570417961502372751891946635963531693979025626436379740307452417064967627643236744154390105125820838225037434634502902088021252860540208067122493824908953873619242330225911305662749151316987391487757513974512567310583895059203375286229690863000043810664959047715924571291866736423329615989003287065630374030857736445762834041971488064279586641802361451177091574695893307654534696943069726959099454888902830463068042896997384195134948327226389649142607019825843271695050777924133970230383702714973096257051956443271250060708990550518487593890911967827981403918456320112841958359595571094120931963050629279801066613260861091146955072683535485485512978027951360465668878196366875617149320284040086451773192113515496839097624862209733785645654280445141119645248880673242430935797819483444620691856061386264828755909864700273977725029249395742747436910765022036747704015539334199802434457273894331412773096353628886945003568675617282569894568707388570135326013483238993809348388034376685952304145786187815311464263412104102353027304374852450301723798213803187261215034588207551996983952517557925625213969891636273968521789136606507226129096194033496777786904021163961216112577897284625617510416134796529951819080645540766539516827041056174871450958620452986735407034965144020316066380284115666176757788589596815114287971094457830855816913985788593943747508883756596164017621506787304722588791514576975148854273746132964833948385242949273508147580397704669711693205382477444250560088533378223523195472658663942763076024184160383413617007926948836550268279193541692524122017591819701794671765907823519797069424298288633973803443299363494071952824644466850662362768689153878719650798517240690308305587305372409729616144415027151929162635881388484883695137889752207816523543835089313256208326877016466128052369969905036886694492050488230374948979230392711377477244443004115252121888343571063612778507371046647721619450591454162362961752573845145698772424909029155938659376261150664708322447525679380248467394034050660470874096659587161350360592114017812980857522689283234482252886475532329863646130056585351152144258550367566586976638996823132654882133626629680433956034379781625120521469422020538734500826523672420292106044703955649066870663875825579508505382567681697207048971802368671737533304498827327135032759441812067773593092720336537989357238082455380671710464211583949417022488529719256161204116394538102717533615966533430060367064672597873448739529490735997190248999992880704021817903778479321319879780795293225677868633171821744689474417590515677655476786226064535500462888818645096286526477982629142177673938901403697759729336787807498336573662995676171692811449760406426838132181428070465777731921953102405882076970362641257140572803780674983343208020592475974574940544416007525593147555362898574868902040903713992162201706528633948271633838054872613618972320723655278861099280904809660503945354009230705197334429664732902952149056230702015148127220973767225897876250800910540416559132679238240467417621762398722300866910616403910563314773408905845563665449089049285891615693461587452730865208349402181312122734683550058007434899247301810315083104051247254860297408617357069292739344334767922724487164212126781272721276995685615428143745422715481068233090291613071057797652448343288797543280654682534081807704705777174193780281237545749063525518340931369842722334609644784279066540723646869859377937275071557771693829957325972154159029640836923640863005628164394687396919300083704118466240903634457550007281177687021545189691060795933774441863735886596233937652375103954798955138159346006273215588113330307375559730189811532847484496328008817581570839845143225138479788118692773670837886191118972548892321939960713506655547450663928479528415379727832768203346642728229085886536610503121116054944207490380558596147271402196281597465966456642469636718660031795171992785335254517128478929676807333169674363272968490538857345402298804069286293985859703988407534873314875351499437069493085664597796175791330469362167144888152845018390150991289428456494925579497804283424127072189673394325650079438520333807811700892197883229516609237877241321154987751152026887729827886940868294588879310786554050394668282138454451643633098972877978584576413018663862734260167279990665985818050309390230001590354779015041513732452848558003898099447182145311626056581189097789561276649306021310365886973200867029526330588553285170502775940344968689056165448140731518538862960601962916148670809771999843154690113809897644303678064963223205250857569259636798628334324108782687245596848844358262109571535783725080140570354429735077449402469814753330302160462877870272935171559750960659460683074690923805051434693230300085246542731612125225197044231453180813698395732470532276143319869329918337856713107888216328635795869560283526731053971223399751829651555774100957170264384320214072944168861013467799787062894374731277182043206032887373743538502560311691141779769473383270682531907338818205108005177316348047038114998521024754175236583424545805306799663485905574784077062369617503814502620617065647422561368861050720067238736666937015023609439956344353450283494912526428609449514535466080689360207654621404866999156639507743405916823065862346949004588579161668257323406765485742615244248645162153842013694599304450026951427411122162258578972813340699678527542912135703933525203923555935030272323516221208986427000526351975174268148786361819852734011265178271762454197331934528069260124321101939971745750185240810114802785132751238331264801538967746342703255181138971139369650009890441967145015656300685595261869132951373852441350260671901054867913303709950512208478453107493390295190474567947609565489337918196886794549485921401231629387307987618288852927454974733863279252514144980877373531616839904793995309749667610806550605424444315918472181063895394876490760498352023977238625432422454847670478691276171691074394102811475784845936215282934140761539597042021303691721991488469619223075923099593688675553661084927416564918090325394412473387338846064638842704182878109586619438945836744841951101084259859963691808787608715775504462659196923745775863046538170352310080262701815456214067798677623413382209380668124102043177703231269555216800580842935361933313888262895453486566255336478007196376543892317538167928606325428707373763100510648773124367967168205235784157301955072234262685885358477012581366913863753589407518975930384075369970955769391042278743709156178535973772197797907722838138999874795339253477487559172328257355989300593794099990059585327580549215169893095617381064553142717706833016131383707453239010345833658778524951171045706048219788417623511720288365686919201491227641497997101924659374641692982596833378966862213794674699788107711891257566926904441886399582828200805863464612643190380667960927260187062982429986076396896737895852329138268298348230790239259911467496859371604866169538351545706872313527035901794946309069874956062773927787327602792890965888081790856008299360490143165688301181447446674744535727250411731853359105518410517606853986769950545576556108684478095204671363529581587071185396523337917517176620750039813395718466124072660996608100259395707619020220302453868276726263971223543197809989696833847522218246103988959375192232810014194449145332762456562519656502518975442685877596311607806067855722592840072047089342354559751188060675931752163221412324313935327383575693809020873250792551913825915548891384089314310360175169568657229768919600273325928317334990474961564550121311699712485283666973646154855171438225065302136444284670518834023741658466976619087647248457553916542822438088819877132302114637638126174503835572396647548390120372611992243558815121948949823380540587251199111312828675820578888232939838135375812812800137693082863600855678557725810552603334876610285441095308883518554134856146407882033566815194619128847489874012768995659165828457216337532684305574612748091593158830761806729422111052514290170785083057616976831592452038107317320530291559832801150412537037306150435988663099019387669542534015272034599922968872862034765104626353253131691980280360305219009249307204338257474762884918355162996481716041864508998400561425303098491535694705308875417388813576857638867376142081925606247835864537436974873370063395700417403677564715697655232261775940804999547254605718278676947520261186533551012503686937433403976437540426744027812582230037529881879153611071556098165981695350417336517902845961132382042400396608713423027665354592336187070034335842831177904487029222113840523556803501507375678182722672213424553332627015505043622351590153854019082220225634751978604166202086675958640873574413857836739523403209666779833660997845296645681856100406203228592148244188279302573097835754761893710793242943638596848498836229243900077374085159779261066156004332364959223649640246253929343678038935879995567785367775540607063971435627699015388571612198185411289663177017284884236873993754725897805497423234218212725425938850221855703305527118028764594187748158771237006835924524768112484889213158077385080121737632570670026178200420231091686955756296641615800359578665052006486511880769276678929596055902603139230934943339872113237447908656073306391666975132330979381014886135773140733721167415183285454147300918025936899844032275602795326245140916665820122501372839144864081635020560887659456920844574208405853833104437701388889208920551786225160768937960425151002028587467450650035003134616647238032104622631883714536905593791688021596508741103031219342915726274079842391085551329997258684935398157522332182299462788782887611548607999237765311701038254238555903800663441591617730212164994559133426459432977429798714255396698111630712583640034238071005777424434986691528437435702373486032905314298805850576740575600914358409506607315011814852252080943913492304427089260704243353356794121913552686330853426037005761167207569761919280554211310304346477357722436603197348515034217423490177390650283109881734982942072117690265388756337505501221679352153348154405458279321458599934052455337184109623198863501946658072850430308348451832598259593566141992408387131386411649199159758564343448878534189791148784191575423133455221284602495836994874934616280229578387108600738825206254836124473640469264977225530194881199615666400254738151564952970154547403681311108439663547052405957796655868431928616886036223394012172665335665074104396664252155584099089076116028706438572598569186703892530388211192799052534475877530943820941683580523578126570152937489461167505929994590322785740980139193662926079146485926162657700093779940540851246268116150705572370613223724393039694893138192193184321356103805467045201021292614177097195327859689171363726774864395809758062936985448094928432360114337626395278244016668016860191068083191071963156564231537410378468298461410329053423522364884253612293061435863859687111169620602941547604676528594408831125637548478448285231989647537534803260374815191569435005031207642330521799706645751406001651593713310482259453306126802011583918368274748871710826601406580248804684761793225795819195321251154261404100775101306490960783934907340762726176743423575759636833155555645491295542884823163614139214487028073327231033167781632385195310374865514318711452409698983641924326819535043042725613546743221820196222527673900097585231053787275398224319902846397708439754873082848646759771963813744600185570753578442415501674162501584413377246852613712201306958464425921013506844677713618979651067316540078077481318122941788492550842417962173327788769213480073498275682330475916118481135794144290499881590479312910998096205685799756072166311657791112230500830537666876351317686815020523415617093742397846289144341452501636677081462207328417052669252196524563436329658093153098425831629877094896786694280773093420267458364116496100998232265203262453741239286178685944802210247251270294666909235584601924647519209190431536134098885507538903634356152089849674876225788809210654250880698596700824117818291606677123313503232765528016631410671951600022485563136856079872197433526934490284628519832249322736054121150477180683862355818527971669344409200062649996816453475522965560969583394610462541332132182575945724274512906258601023907345193499724018834920881287405778142049147763858915711363089921139438036951558606416256286863126577817442845479532728288711958945175975409476319866030659876645082427612924558568991645450885209155454275694076507825689212406265750355670523846276774774166776130716735982645711204082189937928063200961828668496473401336289664348820725206377905534379187040664807807786930867338479041568733052833890409292931199788682875356786447291624631617853890960121667166179991408118850747252231696746704936506014664959847651353442591613666067287347754558957052942642320499213183248335107520256854496815336210494546223581550328163050939713697065787446169735380546636592906158774248802999446372735555171251064948409954993733781582696573701376941703361155991855304756214366136790501886585997903200478769398804823076001041896732115889903343131574405272348726909964996775222631318880703521824880240210373930369449510369816842122985710158313202412491436522963557747895410464101116500931257872224137265115708965224484705209560961128920955173085901914330467343948909715940186323182094063729898288171676161376516017082725502515082712821738414652980662457575952673666818502798167645015886553336660936410126473637470277571313401829946693082864889075195678945599934698735264382057799975973025149452438273545744791200338802379541258458107431733204876869330520997609697399489001856845218459152841447179204146301602150771637793108062978081182472597348617930897635175623531922828599210854773680863116630962559483919280895197093289609524694681025531764429775494332893427728103769240707458043647699646380063435508376229878937683246105044129538165551881630197322114608036870649806797757596231681843369508546152105493359586368652945376684541091757148162053985591953660620153016395294715383844953577781730353729922965066019922257380574555016525734998944451442393032959243234903126786982204963925164537469285674907595444854913338081245077461633121191947561689689380468895456818662887483991452608798906679164213133338279222117608200798286149921974831942732766238810459901117430945765725653971050490217748802945764210754243985694181298323034212812060349135380149443926652346725007339948020308331334282259525893630921625006686266301167540785248863303169096391030574611238599726081148093203527162603286826192150173530497304222101101210847703131486785382997173306190962669861861895240475052813217698558596641498813040833097822873433508851441509181001043107888587789656965254583955529840771345588544207166608622132423257346214668039707984135311079281376308006102966245053361953199691014991581778337644044288963763094125046791759307184487266720372856973076187245734329464650411132885262704007168288026742527430901340719111508285135782970568749812608103599098803882756922506669998747394296237837501327830936569070533030903188066772542513502957145149672771343349776327601424331698512470804010403353609000394726476375961627477882446473111197791914027475174568522159244872960106637769174125323463019139450392722938068672282646322590201292240417183783629406760672508363176659283539107283137877221903842188603733301215439435269091523240326242418332970973482916356719625715386818774373586324861358362800575181346695429230254226153961865772028733982242977570792507423638250582574045559076142226360617816870056370962621536268521279939271956371724556166258972648099250916080622496614752672304925397050563475237821685278310230489082100590901901645166557163451307828754382564448066346356676238834213267268099102119049074168993994835669497904636638879155266321059377022190366306388054499806705350766981433121984458150420907234589066032013253595802477633302375676835707454443868801734694600707577592630844719770320379511013239366926071357019860600804280835290859896941101138736359085186638345461766199830081551028436465672510696995269506651100476850646272588529347876522931683929547571594950015011208290217562599470786273274165814274794145599876141307212556560250038810205618412010950894402027349848934885645599891208626777784151678597600864268622399360184644400226406457287607312151281348677109033816897537446585401487603696580682710298676318178860603317577800713953654331739289609172267071927975991161815882120200710193680290571270673591643185014854047689048676295173984357038398292476202565748798148925503110713985008220820471671378368553875486594538694324589870487421896580587633403499058272793744637585836278690197831015658965167886659310168030339888388712128943709177818119168845631191708008801753722594992135384606086987182778279614998557617196206010211327778527183252556033379964350822335273720128964486819526250405050275661519886627737425086747951973464900704423427015531732653259885100531496887583070425572756371330391731431267930491566215124606269139477253858254318710214181296862437160839075613325114557416955940962519206370351545329583489528517929165083970445442849975149783297444442885686086282707332281513993002702849598568282409867675975262384584728198120720443229797467641310812059686513723613256555125350029365201705975239730314122044973799990597215027703016742295740931286234131723872352329557344395074763661683545323310460633306810926143793336433384654291296028993035785168159540359510449589623320500054641518932137061097834556989829150337900941973050155194112350134549587650091394912503186682494288518910804926105106073323485328198655352074275284355170720364605830445247158229383370013995042552470684659396634622981838524596471447913080689773268080084021692670417321616108186859090194872535890647768959640448708814935879588330905492031357723043047942539890457585993050381978224681758691545971324304044073584310694483139741105676487302162447813272325809173241039090716008486613939091851772690545266471243810212152600551342163714687039386717042284226824797015294158940827309762094069612494977391696159038038285321225376366247713852841069805399897480364942148488125028378811849814601505456790493837959002585170095992383476889395349014609263623363865249716015255402373327814441758952767671063379620883662753298164391374154978574040973918412403123443058732758376998850494756380293920502057217402010692451886385154586013066066766918252382146436047963980472852836951142535088835746017342209599173030487054421557532046507116458619387099648016237829712887487476477565375446235861607971018452565759815331252410613178627782177476617408869991000865535390412031741451967973043934920271256072277708535809189003214920900059190027760206048437361988818516422712094256383515968021504350708024957575455292240875023455605345510132903040766040760808407747568230310644953285449700487704741886257581310091129893211734681658533965192937275057462817315037760505406152427932714953674035954528513793192291988142031956430264145198894818281792635778096846883674771027816944504041914961061695671241130463036384236808086347835216609656262931932809112544389902565799734282695702168242153304377177586117688537653245427071047433717989101435080478672328711486058792894046056462320146387760960493901553206213177847627477142628125253376649399877023046742619975711048533849751240647935876597153789720260006618641401766073371053843237655496455196104838038701306749602671097363785062381794763963377646218462400030960751764094928709353076691468603651436911270039350610582899380751587410377702329475041844356672567299243273800637484790119568334995440556156941589021353850267398630394371272970851298975845182619207606668204392567793982880985024672922945866004610458652104087663457050667969730082928799605154442015731701292580042035694883920523166810905280460751641836240965307034539930578513846890613225971132370819272986290444154086261400164016191398395728168668036264687917235565622922835424149826187657562544464373214494939100530353451810436031775281605759191848004897661551148276959593183262067875794524858469956612621198568800616241549483338007118010670435784388370016214705017788192013875327741366912190157775908741768196253593638318703369274739037042214149088310290164117667082724184252073244176117994835767100524679356498390014705413515380591211084856761925568430578962320542831603481464259632988052810128612185306374571885513678542447064555973104478863055779298641878826685900217869351933512080830653705487734347642373942841236039281830442586135003736514319574368822769619664838962116039128403932406263610293596454414383606504315183302829113529389872791426144040136466506703428244531894133639992756806579489709691822595852252936712323752998878754126792273512698963294734151334267345005153950050678069034127591809322485878755430205342712994072663332994757993167539102258721165488423057244905578324620273695306913410050649983369610976859185287127721142234401363395253721961294251359974857127840139520835989411371339325783324111520113152007128015274305037973106254365565799284151135770943411222986963053556421346462061764362349771456894400490857744123981392586808994937887811165996350353219550822749111863077633428647969313243121940960098627839257289370735223004692698908830725212034041161078899780439595259559923146641378157406539603837338754767076834880194352844143422843366466544243706125155383325545694641804438986761639812677576345327887508584822209715474449427081827048418212037806897654001299473575817669675109500061673996226383615101194211576283184768969641715238056156277925738014069857406723923935700077553657769872658510929694931676801631164705537322201886292141476250797891265617451836631718953066550272989229285837898864799897211012975391074638718599505284299100533156251931441144411119451073291358671871618011915522835126865174982465796489633909109368255439608264117825686739429135228234362431860468866013570080149365662537627178375686578085817962790530294919715205820902070049721338571279376209890806895094593494628241939441354059529512564406249048240146875615269850881476196358082705249802257136563969008456048352634649541237830833956722557006389990151524281039362156526518784051223471101926211156280634615555009610565071487561642067688770573456574224578585867076507564125029425005709805532340051285978546977952755206155507968953376917130989988405800378918500398033232095196120938812418000386899382758637745285436352058222794737248664513424340065003158602159630069958447754677177626555475243310327342092302303365072479044923370438036029887692919677694809555809086815833074829689903277257553140160056489647882287884214743126021277039709128701877042379049101157198122969051251449838175169195370598088310435617616422111526338058364807527034472294452502463288049914024185324527165778489060524107583632711337199376620319358098070863781269028352963310250486803708004942115714683039990083556995574626684931751691935379933089802361408214387077774992641298057188464179709705651975388145854319854960416642351338344481262171166127141126995163464262690178518627791478367770003811879412021680719405124623158481961448845975254727977531472048914464650740228638963169899344227207603759171615444207478725699084965573524598293567671153353506047753484367924968312832100135590172711609333372533022406946157863225255476124372479733369381709728873687947940551128426108136900934984630299951255285522617966203484457643934803710038697818063553699774739680580823620540809305283009643394926506977562368953779052099496356613281516207622184639652545536215625425161311615030151779156702058771816289999813265903353446441069644395741696232874039250389468940417085576353528475838366434880208738440393760698739137897291538312219991356036346136574497010836642161381388382897861805705604215321659448158635387185017872911156698132668297077827367958429190807250555506865423435813467840371066380644103277445567848751543620173513287569640636634721516365608884258284517765414155534717564365226997888061917555337359719768745358419645509479617971695295572581213090276723330514901267844285760107665226536479877739752557529798642094439819269718392732668400882443893480435503132677521259050173704196326845875400852862789507670572057605535231895160618814183168560420734107956503021307127726331728072701481330266850946066700771947409356929342990336047060003958956462313157717831428518924205761923670176833927689772561565504290459945106314197587577972000075934104806086281271789552445218826140953351179688290443963545357080598029377138624317014533144324844835270412797944910374210842142016764592545994517446104401507892853767194967435967568960304247947330734524450293000806737388239900032077777823379716650745548181296783765667489672551903346968519030384791962998107082221711936080837245523242737155752154348682736953878168655782483547677173166515785467013091765427559110346344777667098945219229761307076789042991250741701291610794058155483317071179548826120378037314499275744711378509219148096637963890357280283259077705279411207577178777585035827215103512467278844544524843028519231221020495183229279211097004826477026959718581060029844170667433877949040816871178996380676682655983896773180755385588264584140475068740017594970601371524907855350498975387060713588749158940948200690346126751959995611028160422542118821063957543336804526585128452951924410175429292719631053295645632611862885640256204687597065664803936138612286898233255065351598060820183800160808605042316561124275164321620154577465262405654287238315051627113562637726872556894344331574796472733799457016781910475050030144000472736666940841517153762792824852843174014825058025997893918790871766560523053902716935478756234678550488481501212248827649082050410668738422324209443648884664026796134781704610744885015197614153048226442484562217217909505056605593280915382774111347883206068604880961363013701339066398430921989024110579083499336659085899144800513904417027011309867368672667243781014990188265779226828322748412774640360929260893264366251558397477271631295743997766387648316824018375062042154456741213544858298690265226162506871753705161253890252396151967553549726278035114952323861537361685095893834031034578853998841938391507207694869425991209356745416537535887697213670862221968403765655091544535915446139248302009390277697039240221126000898377490135014165727104548030131830805351690136648307891850792229150314715139375030247993271514587700697122894092112733257454905311247869086420424348478948539393749975896036281106090738610953277124309011774719262667909227666160462916256219751605768462583104230559670807334679763116289703164762246267299898198159989667570396407055433366452796166169081721584261923034838857509687763281488419437826277099408576718383520712464052892662954871843392955509607731484635198377038942287741005405008367909472220670858513230304702478273175677108366612186482128888213286330311255175767117869780869871279760514275546185908993496060339533848561065490059728640228354403377531029312930497065076637886194224072893678526079384529182607230350188106520060588305345142537395456384461037829176285814962127720916179834313441225338337297752956553446599918304214479138519430246330374492752934253990947477161181126955225966708997906862339845727436763809057283689576398944806193488327880234803334488756404623866440399149691254175686602697538783444966867282554976945513310216884470225115096236001105592262822272349789605654548650231824911350577372070288587771227884909052844026719108278700690449094822051878598937855834927529206327233894996290986435679458346926153364839894403338466359014512038188453626527338368734628091046184679233013899493498567458617146782116039390415526340242339674029411708625818209454744213834935676197343105040825209771876538939847782215661011906217931777050390922813785718271809363283532996877239987478889581872299045795787144481903240444556582519438673294170071472947480513909848588282607573973094667444781544525949128535105529838128260031318786726179381078168704174024461552207960750627390498344535211573303452788367489487263983255913708163319666519247229046737225524503458469348909473483040199194102462963305509255263989835053137429291093642832386375092818533193726530896026113259501631339403926065958838570055391864687611150400804207018923512836546469224707079826140537542935250139519975392740353502691793871597132423757329924396071937578961178754572574905156332477032574879462287273433674106530499311851381803701870157245648676942738986977517833012677286112360405788655970092286249408777535846951654948037120902321633965299997248852624032173880447209732933343772071605587958117625424887541313706094364200552593999293388079377119283956842084616236155974216676437126654402217033800846233976253955622367218721195972630192016860413212760711069590485888890337975351977239254335007870154517067026189298008011139462682653481675668903079149730612202730818729386694990422123931269293980189337295858511652350709068187061872296074136384119834161596854365033875761123426260336122079589365562489094151408653580424963360133736102073757043251529949025802989689324802136975577263119833534732803551618371535617249794438215338711332573103907956759802063351136473834269018482157043161590050521945883485108706013942178125699181600665088926794292919480003241252027694687366274847241805988862762201578251577709384706158464512453615253199765263080714364282247380088633274223898115632726501283145158636845452505153521082916679950887139617805591157626465567530012545733918604609866668571344149673456959540764282276543965609156917154862321495118241773702409894930066205358349138741340343983808610354503888975778424571390815547218298904531148322316656410813723035865989394194035815877555110785146374651573470016255874517415938789833168188867813376153902884760061529680683956074409174439821873766362407660298689668590244992295248944721955552697554716101771561283592659988532103955711477782657068876963251656299548723952667680576563403402956597696550217358433830585833316221337410270499126833820194321150174066970067374735198605126914914163978287221001381231001610471813160782811763519267347806158292448524329976789074404475418229465546086940199634115810282964035135603345097805052614747264264942923624941651832317490407689514245362683545209972339003524027037004185338356051461425877677082150787228187753503646027999822800677146223137612039255408615059711469115028397789956843772637551759211157139164915411525126497342720191104262212085828865893902403706908939588638699588997183083580601801065518305952503105914519584328505553318675535633801610946485279175936679373156832777897623637095811176298831510060514059069388129732902740828992601012312176938262771005270572106082651304920133930856263951517967761805710640202766633074272610379126685913898328928544526099682989904223571467754170900498115290518450775225393881629556017721314072816568017997043250200683076756309705558380684966462124736390401527020551946077396385487945653458991940579360000836782175587576764040716562926938697616870866265243664159536039067168679779804865671504152098944749573184212724509301719096377532197066235893872561395018015537694490962194243196462573080364701486497743836389868833770841948637108306898913528057096575548974855995152918842708724495968786245482456194385732262686004198797150801866579246257326301168950516161400161968182519957435697102371203237379345935630567281865182559230145422242838430395138277167500731324624762035625124045925147112355374839866343376026424466592227316316041160833479609462902561456162759823135610148542909202224124831286750689393101251344945937112793054882666682493239525080803119556128548377677348332001661036634709247958754526265988700437830868999814178930802202551659540183016436277500927723015406016144594370700110895682593918452201801122121343556217648453265840961286488073747122628240355722135151721103230372079105893481373449579207646481783261765530689365109716541857110434345880844597211346700740965402541272338661096672580622158399784970974417350895406343752053122969099830268731222080330985804329525312687717578850150840148282831241012038260639504337985537079752736356638137194188870625987111548114029848514923584934906763557513813092048831484971767454736175368399488889665706735587735062622346530575656163759810148040401534101514255515400427905316164196799242765920948524546449972741891190851589370209135978846226013731550632722641214994129726746878125737515516835149998749499063649782826488256994255636043422377715809328864351167865136614534416055055139721653629836102837605709235752567990812573621509674937757865206519862610317395630527414462916675638488379842431007759215707898790856871730039807081314597037366760404339031301535281562549745134960265886759281703619069361669224485916446349994967452658221045680067414327054000630028427338576689329384454749024358561617887719145402873106575169378947986986554458357894993813098871045570648489616179435200957099247975230436764048374700204480758471150746506216537988770895870076391006154479364145864203460645331214441444185307376118800766164993256175924009645085610888090682495131147483850798211322078112181924579143924761142895286889548492342374886966105686380501608840268570001198167518876538629396246226592230605839645916622662450251915511394724334353768333767437201479043847290314743066407057055307952768733281585769739255902120688748800756756823015286469636842214440877947448030512366044597762713463551069593375683331460865836024003912114644153972026621481045450948902780328397443496228414755393759830350161989392325200500690348603536231077126824561508592109524524527054436434776925605038911902681926302715968538316413208942859411734219289090324785674766759204262247904213247806856114821424929108587336631459419724682707221796295343733862425994607373741536000055107834063787974911225545421608771775978700791778097209360110781819375810212416823511126424047566798302134374275244163526743017395020106248940778220397238229851318475259254456753512095124876987007902625720648323549634541388142740103226257823903311082691673261328699902629009266645918315011581149182002527492066346609188398038741648799899578860783252183143065190461574161479824520988636163965839381888283966307722833588821441799005365861814399969091316264545948475086081478276604876840449028094851682163182754479328626203033180934696679846733342652869043030115862726712812381001724964953194961835731844116122055889050973888172622557597449930209578326711958048259183495169430085526708675758097307764030925202613977490018255686761692493852304248408525942049658197639755370800915491228748187880038937121104638709721369886464101655500482429053539143380087207246000573835180328568668960816795755891219700632485597672614796101501441827429691771128868279049165804511481907080334887833880956778660262167064119981259994505536765781536472861323969692092790699063483495105162778864984923770725451922712358154154388566410381952330169982281405761691318860951524008920256729052594800678013822232293619888810448569022838472430812761529820271527752048407507371698316225238987974025413610776122664164402901023143645175853038023287004908182647622941030049853759856695385672092215952118515292724870099229378443349631636628679648048640262289175360933400230380310983268815391964138637797353814086924848803655708224764743397256721447950498609700286094564251222925383245115913268265008750214733131176907382380966894687755351531227672804419444301473823018141445600521922039427901926148681065105110363807433554550361631120372815131613034379543247375485111736293195657415715877557242174356457858126279013784021128892661324359311054484902575521675627668782970031288924263112756545233584076430971300093216562047418958085492802523856771129445662313832548509271275517702622329485703749822743042243151123362539746904182949789112941947637888800441478592726753172076948531760736061102846943680782705889141454094767699503529505575299873677632619554008233693575034998399374787810596893020836476027120249688467203499320278980891588940667279238468830559535784820186300682710265197297780234433200307964545694109891889293412433153213080586270732951773034405067343482678193985595065368608021492730842848833463639828036797855806940329183966663480059139798787446314253233870828418150985610861430906575634642761586020496256059310257003362123593098089958324676218138940987350767387589082314711914055735818114578411921193911852024350025794186341706574989252784747522499082706108040776778816057985915861507044911203216040999077119266384528147774713234205701295855812048934794850881869615764851310774200463959523844080359036722290814945661280741412247525086372594203830325800608538310166592727949878647467833487470697949336968744627439195338533673099249925502243048473799600071327809949575594945186343090916770762055208539131718899148215612030977262585165717803485292719039121796535430512648243671910745087877069514028865295380050236688852094320466680209423937994151586959716920036025303862311323758849383645884870920892779024125203266184312186528335894114132364006456208371948638077181548755140193505278181190696463320178496372939493763703894769944956169588803949269660994856762209975610833162979114869081935286847274511973981486921482654297861428625812187933854553036567826267652738542544559833646280190709307756623077126219576042910018915194988213096483694750305478750854392946252276915186542656229831761303032259114994054413316712744427035934098758401325626963421637672651764314014992664497825643113750247197268475513303958679530844914001187053464070384909334224664804541530824592393104007305819285359618641375908766463946792838592772203108190246425647986847190338158393021244419498397489481797193842190707905806485665686932939369184920050312023086231935929379834536979369025408456904106769303132638411052531349957096828224216666205503830406218563794582942104551026188754728148325439978965953698904672885833032809163705944675338425555861203097258560226269295808457941598236006298413589022207019253329355766577966527958591232941475283991386078075632178281003094105974316279889959358104482753657444499615327969281516097539292836593410145089725329197857323380581928998817183634082147917317194719524613464363778630005796607164169010402522268676837593405460492601761936487283942858017772255580607464763157051312015999502706686986088075054798931446966313264595401951552582423209283537012980571177828900412836643774489744777859954206693248740661713191587636409793716864382570089421745982397437397104302055256978013097440329747616082462975109769890614091541905644298275999437413277118235696930440107151087509924375938867391496420088502386686001485522655926273452577054269093982212556978035641636607095764786763927914507741122123868772157594652432565992098772924053942159511415224589916439531904109260376943081972083068495917518690598647539126494975447427879110668868049466592855290787430258101997650915961078632339186255147867316178988295867660003162307631056230912773972696301901402541703940621357939015572588557693766117990834591841409081248597340464720873279360629508686542100873122039761371336342035334576002300907010429648620094954206056201594400112603743237054989207011480159752169705089961290617886836978900762545351900594103254656270614631362765867987748420750089140951356100554271899989517504506725512992459415463848713679231503370666787046363231071687670932676489457924674346489160705140667036175130200291823961718919288523779942140737443651289766687207363265519575020556256332874299974460290230953267921266122357674665560810276967314818355862288129674375974038810633266731210822405772131755375180123640371264817527321084913336528038028400450226313887179309270876581024285846082793281823179486641690960644685830210393883906658353108934946040143085695067933848460880845404377755367404180792084989209898938267030136902905473444221444683408274557286788490842456191397318857569400540243245045614074310653057356267013004024363280731331674259905201066346368920174661427538475732176904848880066967929123208363019194834188914599623579901268380989008087956345091416508027128114822942007761303556156578395453224298217177869862866798351360818697912035983459601208917722126577712987656683190928333111257874740982788900575851457405878839526424588412347816289057964456145386107696134191479130080726040950793037856184046238287866458933804821299580463847484262297938511091487400937208273987044650583257715241658440852410722685503501192692460919112388974682226393438739755486809411040514684333210227632828663829059578067281299334924803241732313566100709204118946128390344728555349153547747047723633974059874797078766214614226982122837391646598406005066963462010929782371331775424222759481512928004182169761324459702996352753686044570997305150145647439227779260182087079538018852417773336337628933646740546090850394844156835384586896458410784792108732962244894869965252903753769232784392890387082923878932041166138537956261745558202428967650989660213267229007869455395191923189523611658042331615449612303592332750953088205909110181415128163588338307207451584052345919652973823932794345431241575200400793678846877838023845405885080093004411263482673534810148150212351126692354401448147547457839949422986432963517332815988917212488694870237337649809529844298352972453119225541903189892942558763801920449278061110089764525872786051393552247036285505978507891256653111726035943526174019170787937073283590564338500498632356089162208837154572925913588902512129553689706000435617409993726523345824043875640792580142603085065593995953026539983101493907259060930179862530492422994634357112256427997392948432845542525821258218938623880626106321102480042426629041920281128033113497006801203014681075545643812692542206970142611733177197083079813259872041284409114931471515605997072060660631553185564446943995225918733025189059941606104783907373024657963444376509608313367911592899624131294994924803159496697523243378601910530947675055722515320618070040799093741789068195214918105285858100957806849683266063441386121285709026779229510369287804431455778821469246234090374831016199792414528739644931132556166706001843091776378488973401705540913308262908381969696105253248050271900176188480956921304951620650496630524989594481617043608054801248634948713631338909077865500557157684313931546133135799746148938514714107699753421129510412386010449699161523341264572228018526920251639646318260438799993419794359848037336489124018850983306970504026838477753050879632177649001869737981265336676997121934653804227171826044956279313373184757443047771996620480392214736386913468085791339180636702153247163511420801594762171926595200178164135934021373474389999484853359083201498791039419124880064766079223159127298261969272873629269443000761505845811770278618647656908735850055560670629675076866159918419676703307084113542498199870757969626549693047581805185538097842825992688917990490294437119693688380117029978270966551923225703131253611653414328713592061292786371448882351947227368255295630437086636654391782412207209686514539451635364754494957950991644066358978924332730675588397774062221213505828475559039822956022686435509427872037431530206198194088747377065294621795895442525147257522368501046087975032656890939674905751144305414511602493427752820238810256707932749491053427311611569416262038687806493581602915781690626436541793623334671201013605980809450265226214736122955799443756944934590787445200379638303682598863518865974507465268058808663907160102829034559644595824378972723187902870109537346801047714258686942648546123610205713019774976423113625660304015420367394316854904400809801563810978152573797549057012885953985800391739351161362903908312685374166090491545265219902000363208136512431254461868220283861705984315266146827681775597838088826714673411394962518066714298407306576881462433340186403479191515620029890456932396994522438838114207750314845479381668983514405983345823788825188190512545022005581780536935360510492044415572967962169087998502446874336038768832036996771574368553701712309391865176004118237874539722057559705241759348740995433187439261070767722492037519091345302424603533742841876332888350788005936326231758515110922586059503737559177519884432270392609202082626426828688489705124236132178187784854932966705637594306357848010895263789560909283527688785517925031615084826462502616679599507967844381678917211788698661585436552584947339266582991558734176414361726998155939438033001339390960438009422544230111016989350126809641412894382878494480465010291838263202005169469587044705918839986189778890482189748728883861737445952558553832773633056713252099522149589250767274899141238454699751401307716302931599247105856898189732657510965293333876017828226072928258783212142874888605973661182455305730009257252300209880900529775773837051771110896158685437632720023562136299861972014050949098239379842119060897920228535116519487439030597895165274476416083012374142527147120067027724228664474010066216522763958475791792549552027760722186112993950663767673069495480935885007391311724324802365011163353222317905152416711231789869954954640433690514918398592349643151181635830311140695678973798578203870496873823038673240760087700583304175315443789688075034665912410540473957037717331674846245703603705953739872844582811894233567795173890198819089816830924725017602248862360559422501547786405785246104644190305908409402644590178908172303049352602190442672993338078594273451767168384375422672533279851243916052783761744627286572577390311099248471385234763217216206397788010486576011073217397371950990934685615355494203218372957438327854230293863072294085829165447751629351621869220029945057635073554186926485664116070111910854706949485027165332502323136314026755849051092344632881982718181769109922705678193272671894381101402753566687448695111219873435572178148383171889814631082000232765844752890413644426819718253022245598660236025763411527861544114693406838357919973346776375530950594228774786650051862257096853627612796671486129360442704855464863581055060379821840290405881514729935542024783535442785205930787143543635410117292169215533280558896812095908176266695401163110387746350658073432836566564855122302937018702632553302935982220503117680326813454669349100399389580895395565600580655784425297545778963015639520846403837795636981775036867317251701527539482056956318334905073912382775988467591611667539666073710773357231522463177166981566648960919776523920847202074124036029240861604196229625798445597252236862052432150972494573027446315694290004642067309875714413159364911758680473081006925166255031512841607082466860993840914554709655975844603551290958164386493391303675380491855084672441484627796735500148376593188767966291200998350748102987564084844955752395366625247329055201343535366554987963906723722132557677529762363012850237302955184813021161900983046518520306426014360411145644308826350004165527099875875973287681765305497713993137239027976683263620733314999054780113794270718147010987275085445114429573678341258390600250704260857925584152569292237115197955848429076115113805525319151313311162415962120459372254704936878295315059381008789902287966337587894399075869504428081567979839015694363160515760846747572642940231202749891686034655872906170164773006276583124949775213397966025144168851103383339642685055633640033774296225712380305917490794611893508288841151290292419379706408298681192589722577200321726375661119756943332217262817563913755022665257714110153007448872267727744385031487833229405873935702751141075401301999261541583700022703685008960003959339646913508632675262643337664978181934863472781334056186280293589326655224582840402953944305450845299991029429847402672202999238639443134560525199099859382022651233550677986706203643746873108427720858306631190412697648356160067667171998325277839251648690640035174707405586830525125715776048794989773485062619396260185354203231495633760558258207168202488705758004732804391581368298241692049526184415743920028109080117447429993576777417615247693166766592894930176389403039454175172144737144545887597086797812789424122336998597828086241251707723089671400919949854890837903906147048709777330661599810667039095989202001316304029226224959914286385697639270997827559786922139834304707113928078404215317417775503680459790485272058962581551620033033212472119027527180936801347245147017464386187041899022459278144622928742310457952333527398759146668297275005740145875510721985324477239314866350304694467344675099670921586675749727294008853487090760618400715943687072940630794683038230067254925297046857702698503360126034071199381529655328508221869582157136390603202631500433220108608619175322257048580976238507286776658093712051952640797687609163996430181021879915125202606302375919934721167703494914344462219238157055850775463125264592753332981918320192462669914818853584579989896868284587414694222014502289415137390141442566060302302258006081932963618530290497060071549367549629773529555166832627502317762589449245782046187500117244426124485791847589173278677935994813379972291834948530482005775529010793455824224504688641390269348020282023498863638438009958298682107982708098150895409222681437636340090790258219128859635314797169501900141199721726846477231274246577112603280946283255404199773789002967858585414065690584026951434058319650879503068208235399772540746429728593247807776298902828585168098441350938629328923288022349990869747609654356321854055674106679687837240408929837504951357104747872875073348508700950084211040202951745066263076588559742930847886435512826794184003778627825511524664380822029115602689337982702791559314292099860140049603830278486495269665378339275265940083561614961968984758531186477826007412529845899232082270086652591281610620165097520344517085161384280426204100964168871299177255841120860559746958570055649592438334468349701715702027925318486802854119513939487889960815934985688785938363355625852646545539431181179641984530032507988085003417442531813947105012504288094395009453502286966910798301532311782840459009683523324658369378145879030598467448997426481135600154621652051642697794608746575089710493711720540109861159699908650165312030759526727028031606894186521388679826369109525076108821308583029334359680564978696818055373572237280026980050607853358342807411476300053711309608322362828861878697162534261591906707881025767537313592201315658496508764085762850440918542910551398080274084752275808901163083585538030184448126952447003956770922158036458515782798989604213701520333081767933867375425497732016068210775730930242249805387768744906662020606377892633368151205616126433274840475428935680261882791753841054400180106094778869272083391689583927138944932229699530346973507276988992466455222326197019243092890016365704529399654982508142541127149296958292378959781616589096734542507454747238283537978149396438392519420843940474265497364529291267852202120580900190047575785969423837223693868866577550376475104964674529208524398266746254243089408933783794990656321188043128109621728438638185565076502424874226875952848151911580068078896464745614550649460864265572402703124529035637245952254930821155994801665509396708712565762216446866483340247615779256234932098916093389418698641010924299225722239261386685461188940820086327712400266870397780350424350380988968513122726049066275820421321723215668256041016632074305564469181928684671368035182072799096421351826516360674198289658513984511959526323567812562581690849717455307582077238914519576416939367349222578944582154579044920890420377453487966009573697813412835958516707232505206105704307842622846833408631461195352472456345096415896292466420361280095639100895119632715884037349120715538209937958264082939598795152671136249216285193099295295644211921705418858163245315382274344644893164723452186464461587527730951724072485166433753916288210578700527979720876727943755409307192163748379077291639788468163026133750905113924997801933537028867516791782832845521464876006206434452236810981364959930480142007807396605509750845754778944244105198590375677596659083872905481234739560753531978950677343869510929256169395305862550556667655930008620419066434783662077205836917211151460916330326318703694797165312609192394734296614118181309336092076411340426658929085772204480533210576969674736554776422175979623084489305691735562605793229512621741782497247099759812027107318893035121897606357700810878798717664298108468037915963968226553779686138044491148141464733958060797971676363358717431037955577352107136375985414321100879691999598546116342407713861516691671433069316019117177658456637126493557904800922167336351883883487783899287867539297667558691994706663271737651146557233277508336522884335611933612679020054459039084877040114874274920572238216335784152386869054171649376821485570769143196812233383045137107630555430773994270009034147861008757851239937735660128157809345314962462503473989440516390352210084240101595061302443297598430938185083465753366720264704301483291151346888963998042685956967543077418001014037262726314729440007718960391501126389749209064264660121358890745028341056326855739296848678837448592256994252930986878338907407926539710570690300585796673126191706067955889960623233997817896235056585603376477333200304753025510349776232280424886641811904452246951967006598743422170265245830430684312682883283247427208948491886635092198846667066004371268647077249666256783490511077285656829202605790001738457755189287636873391205628276899725308839530796413397603718091568454545866995102653248228519947760581976725145727654087372775387353110844664030846278479512986701913878778787958541265680906673120435871086104814285435829451653318293243378049991131393782707106629390982154613444931635790645524646129117582771191068351911472437414059819978193304651032316612142412651153557382650867514559421728591442140594622168127852487727300296358687759261679374025494479607016785672084948626149505408793739684398381026874221798923376288312678149549318131016268440481970979035881326707635311516193400175666799293128668375774809402344500402000760471707416632410107872477236376989568891610668340441514530670305634794971902649745737203576489225574579489770993741269309386078867037714831257654845918311544283592182454251926816794839518914824069981628370286324364792251817607935761154150634598605567420449927143222593405495881777101848889277944987937642583869292893720481159509702078057965993669277086320730742092170466354089918310052158223775603203546526061186318496554230618462729883176308263813433640838830298868431112707965575466530324093397348625927290144994745076372135917824032052821631855278093301700893616410933855139439428458398292554536679676298065033388686001077653847664305719523609433128892314411012555642607449565380907844909593821926016297966931522890906578642771700644466969506117243668759731099812028441100153400267790997774000779434352888880577074855649513210504018519745747034375532535121930878941596028348417998728880215309710214081261464180229253852526127524134871578618531333188513571165343027490071326125049114710307536456899571585151326495845721868936673743753374463545337999660781706607808539258592819680491605354731382522575886952597021787654230764708525120301395153598223358951912766186157990513473329401701284942028603197667105772690956079771346992093503054296657347608000592910411628482594419295305670031604777478562216982834479912646694214601363671251917982209893002131820817705138038541923191902832429682910719091924771362839783569862143360720468458793128506435125913747085372044549980269208004383154460235460279491448294249436907177442844032781570967885520494250520076166164361685910331914908463152128705454045520761144205207892177559604884672908822398999128319673129268652539671069412851160928221816594841949799096899943410909416226044509818602577996659385219222704054486635218401576033025828298455864688834259996145122860108863182005290831040069989358772959590053629893858424899735486513961248656486874083785104368346564688936962241830009441699862875839642240147466025072279874678241622980003477807265617499129503206956529361279692099938387295658131285131487026677800147211359595128518618269044756683180646301352762535757863176557149988085258011707283507287050016070026985620108786794040892767566193372505729208333760248324366264364911679091687222724920791346875983798982357807313473012702454832116307002680923009205347731431844188109577181576287978716679715159505161206588857193961577711437130477566272937243079963671282828614704085977348533458606878954688813289140474729666645116687722931023752151901570177493353483040183171591345551893728055435634214740641831031898942399176807526799268587404559821845997100955772860297586524956025581539878988362065849628175194299205496111629665882476548042648768078864679963894065545877438022782683273142377839540413878239320495440264252347868188076353375217241894160211640358676569387178077696650056476136377049205711711693453279267137240870443593836621183763919950162502535506705867404429111700267593104636587443967007082613401674544033503637292881251109297247587915692654174639837058255025096337333990108105932048534827363686469277330123847330689307610395812422838736336860373844803123425599289190390705135549906910204450928602404649532223154237640972367848148113170598281612335801244456541451251460582226379310271781631824896618766501190987525459808310580870343643046848333316388223523038750684526985128003129729304359820829124368085754273060753058105255254232744181998992736664742279624082815887294513419142041384981305473704027393049537283115846567340834265426297569398903764339195872919737537679054527990160563640100819685853003465660289950528912449437596996069573840412554683955281115620607566958415891517684201727380985930424157454756649748214970466567918827545723234089233390790853722317246384003363331233054915401085057901705277763922159640677954924077062566338426311170678387088769634719363855343866302024448823547220533740859865834710604737065646730857519644727897526164787429313771977658007532963061451248212888453147844876164231114232316886004955813671912920848893224704820066366542196090566550005434361568247297751229194559582917780336916687796771016898987459939196366133232557816223736878772534706562440113030884510244886206702855680350945811088298146665496918824187892095000050691738382684686083031516144705133814086536227047126187053468372486528977835464185581739501481320108918063470643064824758156376344799032414306559224784857915108920401751096311800527615412258708583368664275204362415034445952596282836694390576615949946008864875177362867146773786381086828239155322919570470204599663696748067414072210110257239788374918983747910781666981206104674200845891828997767431720354712469608130489412690862491345634220634222120354019465058306206560692803558551414949989443285587606941873114048322943944995905441480178873232509979264011377482835895318804625343302466082787127173616385837319644430416170074902692066602330893218228663248045347495473827213762270729884413929408753127374243320471189482540057082449170086406602841814482390248996367913386173933081479039618781536525724831332633950895066431808209246044094588571093902123540756459425788247760122474691949215254256615182561168710705808749700953261076527532776341922484651189517085453419912170931790058904166984576937131232637137179719462058665729625656908513938170496056084334647764975186991460853583920852479593540736266288793536751831930513307629682407694113123091577667752968528229933225539526950075409784278627607829883141485238280367460391819412380834372938339278931547828650064716744726342450726860319416910559509996085070888147628084052125052413624359461302788584612342339475251692628656765075069968916806373000406400369470986756374846321778933302873978846001107170238950984913694458130630329822182130386483270979738132164161267876805280607417893188048296331235597267075175284330243468683249184829812131357365697799536820390196537146003726644295741563981854911327554714494617970984606949284483913255520751117075967200578517443487691320928039109449851275790333617247878574256608543149471542519350674413059317622736884817795931995019457691450362648494486423567060871430669918957243475258907354107392997271526236657925370084233268656444799624447352237581512787197787369895357420328254811713535696896143891437533463758015445368713014399586282598177191583647836558085666735250969954922769794929674595520361203036297781186660417632657982070863374112104777603732278700565722899767492261970393320978214846830457048935373471582345670453591150118434461608667054118133869837141200044444997796865888483825160936967761495030306033598378736441227209077113875644860295435332525221082599520790919905647669176887200650492569150488155990752899716429496818314797364102045106691165121644610074546108532155593346126154245012124359786948912604984475447142321663012016540067802893404132663828768964400463812733092356303498198933713815846517933231530929815544280241208967079823407510835644407338476208199500512350049503551825578468808164640192998614425183333197536575318961283640459600491167933112700560681510573722496619181615674204686073881404813416313557708296262647570004190758390135577670824637673107987857108057458467694286666369952242337926571471048680722863822521026416212544142786570903007615415870628566613868893623810823383879926249179664843998583059253276133041216457617729749482985609250789938668803748200864094823269886124007121600772203912114933439539626439717017277897400772726723280630989658976441899987458579920779957550231976296722711547643233920824446162304938395941249224243037835152904810127645227280209994675760932734070350494959532856117445890824386329240632864788404528159325205756400389508437864260679235956866238966200473455148023905500559333896750998344109155321906810362961478803136656471125185184889274939584366783887495111175504314756484358470336568962491846678802267592221350102304123498711224234797175567628995652114435011764124588219503966050968615591227699791640907856901545574068267109957518535659599388682857917990408844334959861881746746906719744961343555750779420573195826276750100320500184306796316241200755447068843441425174051699598567704049567720767920497894479783683421755506344126871673331374889064519750315132610500832206991449242364803983626145012356295919457726845691174356773140921683268224608671219370392456858050702906337979343843993470121269353456041367954471750720477224452878234901987360672948183902123294081896304177433470858630385056708386745715034813449654113752581812898070008985840243532129520852268589819255599477917217084092867459841709685391320103713784999159616424026806160191759815138811285856968605753205514148913390536411792927322499012750804402033411556632861944447118695008304458713541533506768796190738122675182235766225870953735659467296549460122531753617085705814206498264677660085990904905893606434233605832609506453407610936834720676657447424069201937143580176213955610637111143168728289728428649775589365214174659820066280206544210696208383425454146842771154759549493405698017074902353052561252249672428249219243670732019350405466968429393117915873741295146573367584250880480170010796207850300974874976736968238551638425881082528726568331351578878306683467586062178294008969675588994839949461906647489134516015863462332228755425363670730258570992196134253812803633450685611867200871512151516949644125322272632725302611310099280023568901911805141171891066554450727524753902112130171955443400086857024680194954680502530930916615730598555786074406835703789405981729347775797540563424480225292611001871871867366027097787458602289412713670477187619027945194561520033891425259440978505957087107964015543968644270772970778500781284602438035616978739237050627489808493299864679669233375655300187914148562071689519581254522747515449223909269407742289297902283925152542338431688842409296874614831853641891460959850069547022563622061039601583666663999315154987231125280004615069060743363016618872171625437314111162176849887957348798423336213853923227872811803565933907433698263290695506514246110739188328914042370202122225130475302746380632957801385397882189127925651048799548762483456832433286481682686312482955045634835295492477237862203566317799144696625637451350559970055897078029819689749900298573473348386117642332521939129030539643729674544708949098959544200288472229288150793373995189122327236598198987970847039779914917891555141833666456283762248294145660167397655950604508350745605046536115747574399837422167875252744118929184857013965577590213044322320528853050410818635856514231748377689019092064754099942491425297454689901464645789318206639187023913902267657047843104503627583835113274955252566694525289376299937408143220577767993781807251230545518237413443592337440630255065924781269055106128947033871371266744077642432094929557001963867335276420226003571901532309347349387982659768178711661254708203141884304540528558060895742657570057685725148433902771093989297518496446405192965597806316764804211364351284011063797773560042818160585741594904505952752222193152190225197536156930909388296898477822834529913674100612401200865649272275103551324124493561475929910994609964904111481759281651280763912528769365237044271056311809566351019453566967221977227596995057598286654788243116094952144793675351173886468695478381403070096463602616602349334895706944373298970549062007493991179472260394783590133015091455201782707284386487175068067633961497144843422213537047937839651593961846473206947746782136193807841218515112604810805529884549375865095299018585745960467467472332571334611437383630786124453308662190607587082910160053435347848200475409747087940799609671853793239884810979763764271133480869399643392519940676039918854780491734208758586386750611837832484808178266132531147076556360403065579829288679430623903493781573854347387232926642975872902058884700280347479756419092364032424697121209561713121232047472159923109495569665026093720574954387671942608087436523082832941722895826137410740457505854791397597732990567279619071532263544492085075941856662493601496823155972009298612372189773724347860780579545827599679002839719227189931173238731395150888164828965628574163809087227080842984750532038836711906979707634153489638700846971474994803944928433265060123883274141499864869989471821756771859743037110112239828555340825561317579426276814176539687139836241812971865609199178481215914586321540070516997271281342375190316037996536711201176806444757655796146494469011879458233121905226210834549190713633032379814500112073207528256731091521181080529036767272639391248845535664869182456087538891085236780643866770801358992991285822391543000058741537543999539667903375239459043497881094323922665945011085109444167257445238665308366514828842013924507228655445705076074925729337721999850541695378485301317971159330325708015587165083377649531093925604704157245331815311192403008983218907021330538935865846291636876365035589343864869166042999649798137694969652292057401011934924404179678258534650772092191582654357903344590949395223350991410143425757178881836855682992295143209837080410233978043265233620281931804935456261472410052320286040325796649581818120176730619076457648104726049296614535933314539376649477973833542086471247510340943832608442616150062888654626025371096006255852566983726031000832353882455090683154825600353009990735509041368112582325073519211960961276117556619430949808594557640961888539863738163519057455446668620460032246390293310076537062012960247194280634377699176045378764314330176682838358610938876075861788380038249815145813962900908238305371369806673392511607200526316067000700262917613527772657412627316289475536918488681043318097659490922701128204237732075379631995362078046146755087364530202136953568744728977651339453812636224324137642181796320157681733691436887887041158712637800010815951592216307023718318949380072759536472701524909679182978028863496745281356472232796842675186169728883196754278374446342216863975835598309176464165017284847561947904702382805601227207880598322067879107206638542089721564319701426670694544520112475878001346076989133418196381422334844154802836116978569437820870550379306367120749307843025912885071928523745507540274675717586152558370627924877351412660365454650970856589946175967728169411427367995511664040153646999026106445475376891215865762582165838634378816522145110803130676827103921683860129766540551116919936918602220847893114242654007838732392067535749792482217358828681280893923531667043221596489005593544306480889406914340148834201980771410235953359996120257235047219884879849763708929562632101385491994004753456461160481530244645852367000949444860413085290155928472942261330297193928020696913705891375161414147987977998382449469007253245236329652743365240376817288084358468449867426502558924465952565212783961750107364984769310612830077574658694616880111028884432362884690638667912440197723165323168389379319061984263171904533053933464123944608123883412543048270859226083219230805354682424568109651038536773385188237642002110448560203820775968100035054204617499644029711632180133486034857156382383683366486170295770018798690302729284709260569737465452552322282010701618160350899981744657230106084836212399207237998844305123360698038026325691380925873410075689862557324037550213309541648631777418850135603276177643548446031155063986349996961305606443868746953453719721818657647963629373317907750480144499062972822369146316689048369822879130209438479720547309522066723665813091567803337407525435584895844828198646779676499965590822859690278835759540953464625784389176019364829881448293740166776215760768643405390655697478092958200181023847344891295757725785954417617203664135387245517797751208694067884566935750187535152053662482272837349832170556159645302596181408393469421950423586132188272051290565430666890348164191752093964189782061099333112105854304029523028473560442764104708506989198335364451546567880159734109408178284762551252705515280219085429672648639289680098908924400730713885427864247230454303879036494419474021763595305913989083377972164091041610241175909262308965454359667848154123550662425838878873935825953828989760904443062000664493194691299412968052272634150716837879341883126643502094002596287157516779551890909913935636162530863575649915890995159188992285047342399747555937898895884893067734849864389531300526614896776410836622586655325069528140173976690020377247824196360264521698463202695142218914062563492316192037809118169869787036919852698497336599832615308524720467800153789999401786876572878577141578828062271590523595149901796152513618929604528136970316117719989484555334160969425501261016823277085760645546004164038041112319408657016910045109950134531199120015503488059917724001213694048859996288456854388466096321612121923316301597342590878912864899933967943974789339545205058529468015543145642647128824632290934429207724356647093334224149317767325447016394037979098820493004749397612597631029591640744493229628996902425698913073419029802420368770519783746285150542897368186070515145350312510401570800269599973370904059908295156440029363675542960354758670196120118078892875843251699648900677999229459555972882287551433623109026647877829738753016564358347588456875158511777678408956540877819677459782272205793946325621768927197743217284237441023107033752511289593565972215660691741526830059511176724437658656050734855063504276397353902203556284141355262065451434649395489553148590116873708557895386259495203155622236564651837189078535860423231431757566454910785707513739101630613317884572398531542942969692232803048564765356583794566710921963029611723802968747095272193438830200265166427193198120747374686008088188143221094963150809829123287547856480761470204272343464824277945791689428536803582259434157447876355832501073761758717927852549086836305949224097176152741948655365791290982447186689759438599330488018197657194427691869077648757500402270508849624603943130047717246291712006410834645710305352000651728947285805993741177075700442354158173491422347113390060687002885962718724777954319058394331423439312903505642776198985936579731952569118736392242473318017838838031237285887832605935849088639676056242320142283123840994768379174068955617802767497495308401098088083735117091859410594045361798341151311995028425114020917822686420357409384241062754583862216347970760526427204231579963450385759058089881939324945701082862022926512608530899138652637603951934149311489818814412959810734224070017197403371886505782083251958170880193668610719409871919296127688675211890562646349884231294447660231260206357393296737159480018288159357125638011979189561152893762035158045437110408187563346633069687550302290951946986682192593514087067493229268177038819545603505174021323260452084097218209106531037252821709488512795685775869801392920174262891326506836613029689029261532444486086397015062577812937467751344313517928010083430835372850535852916287892351212305050382771491557743495145215552488425499113941169428630325552951308730644690046660940652969596905247079580417046679449007948515065555168995055530398160664002580839712323524593568437149764077838990867894428244767403875855285337790649038965562329356520346127401029983166799689332430471541625829456627058437087176443747972644078376412156130120575880026940817538585550171271772869043130514517884281194628342921326726348411931531328906550194503324769164108355589223018908338114882569277395701762931627907390241403729557439204235063910078705088912510745872426670255873587360507370965920998466148846525176837263058074616919069059862110475182604769551305216787958750494888530324768832550468430577528272671882051791635422584784514520280522102560783427244153342216016408961742412227547224942416439044025722458643101490595472558774884944876499561944473735789974470927046738639704829436839769314155629284654930111334599254624311753030527620267867572310874790194577688616061993338107792570468582913970811669007671439334296319667755910277211048375627888654222614353629799968250800079756203982241542688305626972499605965159092259194424241708805842056620659822370792803491226399091845861948730880765801057268691209013928965961013756768733225578966271116932668565922839375087169221229375463925040090490592996515134422174168823870391096124761508495652088865570088290210566216604257369458560401618855643406275186591266168793131260525657395857316945464771461034464023986432027051097519322262999855421963423698186892125942280377121864256798057423977894820273452084885508743004579250893601507725266081520220459372102832396870519094586989204088591340249694272259265510147033283174235589666178237243797737647655326197659265209728361939790992835873204960910574249123851493297987913159078775964719037199401305902049676856974060931500160352974107902585086895239452622597878653796832685753027455223197821520321086351153250412868924204353840214123645604537561229893286610385657640700787434764250628936711839749105485482291032684122332357045525055025578137907655305499436272478445881497620286544699312540281972348709599719350878270098444518215496557591841783134424191299260121231792442154420034631422169492580668142767091868861010893681309261601920707669332472363249318659569864171938923254539568215121913924330558823942180902816692305878119579458337865318233726941570998448335124219084624634529244486407250471857239054977775691915611819833145480020407361823104757270234517284441299352637639532294506776067931541004586266468301821127820050555730092573541782246729303231759878427866514756683994049684314826237212495595324510053968309687727589873808829741505880620225348656995734118371042399216627113171285636713684439046262856787754486523585687281086905758695668394444938172618894196934958111130162143756214293914028874366616980902221796654450819331924325805417751055277117090260783898962960964094585240130437406475239202084683736482250524825329028404643255860128941388367460055433459225965455176476332960659651551417051391157119133869755730121946760765407230742365701548310132266878444288749759611449819190300206719892860506171607538585757269711213528882857538703054074502845083240629486173396706837420512403204417068249045962635980799185328295242125681822458456559804297324217011257614670661143213677323890010983425077234114544994860364802526267525327524503696977304504210691113240303750849983803050667136545233532180769148934890039236886644837663230992462355462201460874421826648756166912394870072052024877094724989268589041478993829758493883998196879815206083856648322927568721229265766264165407408230797663115846840325514502374926219617200018742201804556928058543922639643940557494059858543836450896966965444569986409620221923675114655797337275581954869015295927781757820200682393535559615513280645686353942224184541373429324884445030739378584540787944352861673506731666391571422581352536507719939308433866832351812234198196491966596737473498417348417662359973901096714331792246731419488578869518192848797945196854553886228523369961713775561792164020537218818114303274276299054567714324054478722049507696475806355021828642366814221564547622225758358112724445980074162728029414836200119799490540756671014086109903393878110270104895010686447991521149547346966249063425302095516383361027599145489822270955148127548179645041059944798625382963190344849324319155248873782961915666400784337319460202315964317329052912933959544020048715792122196768767492103384557689526687499973796924928473095509953806996241818086558734768158777583162633120089369365149330725897368222512462607294508872268938621142746711607402795786089668859328266779062642340584628950687762154155398120357691041473810551218753130896118711638896275773507182525068952046518687153264989488133899649051905144972000497346159827372250083577655231323831709024346204232573903956339120642123228105897432996187770457552576636026852687051418700371639134361859220849564307988053606861291852150152078947217794274767540357779480722574058691694687466011063465128673050239917924732796526167403599995999540064478924421726365475559185195421678198246802864669134202483860931179212546578398405968246453506611869747986053629225642866070417914856977450437826196463637735353871396056945948158211134870597777897044130999417748957042844346143402826208494817153672534802763637902551726450280242337326164494353692891072024255485831176629644582776907002768406341152345512123977542456733866123911651136781577897852621889279967438936158912509607839913840980400907557603751769281318706016077136011502838608800851264292958279096465366625706774587711927566370644380558490582580521085727249275608197948040960501028532136827428562848925821855749317766279951533508484814579663241709896003809774835689396715335018258867179953039224657677459909834252564722848341348094512021424033252079352383172402079095591701405483759611261339873629985041897928348423064344004622223288308158901251702194884121101168314769858441643417940997581237334761871182293127288818785607835366922715692853336196315913702496646475359843821738450921886657919092118311979566796960824865844533998901268650615210768602969194657581192407404689118942100742707709165037087012945977838710606768244948583466538420085643441469154917990846678254066288781171241539799404112852093653610141742322669247910022702398446499322412167043408728525262043244897809942469280233253567555284152469141936591008764815224404613198709242246852200421593652549373638798635548651959236916606816878431170961377525133719313426949200049073169612976123793815241842286286930022786799926283513672733476312735706568565028466385904776451937892402886508650707501468510775889304978698201563022692855828839121021158734364456040268615747204974356879579458894418901843124608872561594134538728362037742653105200626082760323518927050104567647937503575071025001046153668683081465259738625572698641837409909075369535249103723622649541070467616451378939642778148822742537194835678571104039054632452885708441399726584309427500173658223573009968972521212050363462128386659391137215122492145823768051739553365123311765768117196137933666948243991036462351868527239416929954533093115236097579899182935922141608562052244540577113526876743945883176028930256107766645377359829090849679962783401241471830696786849901669902061631864861322313459557324909125897477901251386944782959197769927515687221632050659436621636978916399439349094730719042683728551377451352743311512956076977140603418632447213604542506208977735451481626461353296909897345975289751767477166281719428556282927456973517578501508735928971862797795402876809770388503204800393064884892626975264387831367868212850205680919410831343530392978722341563465353476889042628822608590717163545455956869993680466108057198338049635902281988713966766211397823136678658944578261106498703205923493622040184650203528165330129869927648712913947479114473488818823703527007779574336216372537678735627079359248738598534608163982666698902577309204342402541588936645274074856957794094509124485774111779606943514178213021126724548215192148159964740156953199609788337589312876087372308764848147710504209628265185830274171019449806154914743602682296539014098042967360993936117913128629886381825033861914952450261706893575608762054848957549818436636276532642692073506620570127321125165142524162804256996726681848681703817840457333462162264476654561356594491473247353626859561466390954674170975437880207745041874720112697192297253889990754082352479246490998373346196260590884886157129508874432319368929531344997608653581395668782321462877026442606920439509516121372354263898295446920567173805895199245175563808362023647827446473874068930597287575372740927730268319320465304476627867165239076346404781776597016404181135678310795537574122629344674663350545694495323567506783498648432400929972872871165655747598031845817012558522311862781329934224804209054998143593280217700517509891004818481943861557895456309204332685332128392506684815801029141467491162380447999454583235120307468254019520900566252363151493001594187706370696344298758478676597996158722257056840880338063553277143813160886956737080053685915379024045648260355724240919805670558013436705285577864877838383012095448742636497229598321819261606652120407543640728162349841773271441098191806888423704358144168327256902791292662615530595229057695116709455696987135018868353106331367546271448487767296980188102553052846638230145354440238915860240665670687083858718557375322891842336240529119432100040912409592813542914213058937253815935701335869898678186312167207890692571178719861022413488893622612209627210377800076320169744384098905780720665665123821010649180354376702326188492215192007296839014550443517274955134542473329715220682923100902482544295100973895958718337917019073570230080385595162325585597214132237778114198307597635263038031510819028683045317549749725436785577289038212026746587547267515827748945976455794641246986865621654475501953885234305364865577416128556087812432842745327337310422849249998134610654269668688671725873521802262175894810421645360438257102871470426907112637826654183766963293028880229885227751774493398931815508665577826557516009254873465138743434996828653476860937316037897261556126977687786911363526333724144613369319720881288351625272899491970043834025067872379364935562325552227909258751001911170579671627693135932329313850315896482927040949560760942479313701656155067280968928266405084560098759193456660644866937041962629073607858857807415867204182164472735458610431275861160572803459106381505148006407245173803823166216600312236299723406566699071745519125696238475065568477296563910562669297761190995641308364131625165573051995965568749765806152023492803488732811846366105120855004070601260834109779131720319603564244070511917327951413699488490212491435664310932900949692694102786533204142333870388425448681366866593217088457531130783405287343793502650660664426878412250432077667642961130945432031136861320860914119198219557651391499446256838570859674274730435281570300892937200637307696781007376700326141874804082552091882242062251449238292363377391764082471241050063732246695146305757716183701575139993007981033053687648047668584927214942507627229976735916675346670204564701455237232345720717611506207188650726729854264431124364472208567555884694547991449348757844007407492406499927144870893741494822495038318009763469611599719848620773897246665932351379353778597062090535763607527595730384181300202396564614852687586028609391859216462340514323816637573339378287171016199190311182577455405965728503820409707736778754479529510553544119550388039068094049242598067242248413410934309136105238007079686993525049071444154286184253801736335137234874834214290391824576080757750112954338878322310537817652615302243764665901970635878449348082858212656316090381745156406559202122980720554600585579354566043613381230815224870766127098040689269193608231587664672987588288805130014556117261279456573390849190990382292016833022818109575782318526648846505886762223082629443581952820614967474620889752043561683812349408591297525692043344716842171945100174820929467991361169314861436078636801510323170042946714147449541374333548018873215388057595417226837530786765106536116168806604802956845936114366620563055826127648267791253722994315046539621232975975817133374971646225935533691275439056652844185604944165011463802646731220258035886201877285132480904571429876764052779307607030131611846632132835899644875589114485120518625518179778639562006964943651090984673713581874728950505017729978029119438864431319313441976316277421765335044101574728151837273535068787481475610166586339190713258037800484032763190314979676581371540719754444484855614687872951702770912075398694171522046387698476256910366540484744109750522317228890225098362412627850579850247840344377900986321579103410391015660976861956011954380672715972001225565455148100230566616972326763529757898517008124878866171216677374882349674419874282703566301931216236241352127252029524930206033611955349635715221320935409440509309293407544393342554670265018888981059636511800655716679370932664678435651329002264933240773669866615800643794510215427124266950433432288412972885160280934451995491721764210988507097542794133533536209110576917208205917823314303760528042699552969075750643140485357625215003770884328088932985887569422892669497315566348437450533969050391046766157244251115329724484241514582915782692677078157351688707456379745442915651115874120170938667996118273405745143283446224790409622574522578544951782967319908828023786382331137674912438604097863389394498036711400841032754326773403657661505130270288537854639321200205943485248497100741532537608507537488872876807429030628813031097626455484416144228571884238035554869592614575650014682417385646494756473863064046140797040686756446520954092725024483147185215295040357796462499875197141733009889884482298927398049591572711200200564778938420953632568082840897897305700130564944416295756715905370042532308651187943880303831169249821944430876701998945897111737455444324690211563146728130814501499284662161592194887705998382203503479025094342804244265164863684403888897074117967252563411213238495734879557831394345442637276093614846454046546240349262580066480427963943087639089635240320721118104601051429113586484424916558547001118960144659337623382044449170256298558975559920399731743203812895172863596937874772644062183767043262468130336500170694426443173862554364606221880641848561685605405516936627394707115180148258686347337916883289279917714132001077123273093880582823009591698258112924812168739893064664407723751253775558420371731818469821178177559849903226967247073121149421657075619397690601728285815880719147709500329632562873420609577243565013146922532451719182840693618586159316008222589028990803891259718583316113083389388693974109609563171630578737817001504395826415282475572191046734085821933057922256554184300998770997391289609757223522120695782661547912351826448266886940676656751463281168518147789136192175479613053023763215128945819617588115338568983605124709722537477479935126776403788910042893929332608993575775623218191748031268397775959166806235678709020847258810804823975590301976773927081904348883830213878709018484685621435699770777207511291678943310733178383105410250404627396657648454816944884399512314369571505524992246634962429443695274572652715987405426621788359905765869930994033327887650980055096258970161483063126557866987259778694124126933030252911611813252881986736044543107093949451125125101415865234086564017596652119331933767598877713138460433211300472047421242330567179083594425047700127403278673991021973949338728571481098130491593262700282250334903124774496379044540865694217520585299815699642799658738856835478303953260481704308755674311518177502571595323742981793011556510441801849194746048826721426943027303835597540459601285200105178015749115150139399810122296243143051859068228581618545967218414127579380344254797594160794400849235788158693667953446348025901433455658330862536963093687676702831928061479135907633266093823999054051401904587537418886527271092843197360437757065482429607934029591614553339213684052372942158652447543735178159463111303853544263373874955707214163091372251662547894819012159652421052405038245613252334523667289123180829002613568436791931730067130631533241342361079163323946259629257405325737865280016316354629773126764702604219432799743863391630083732256746104719840661355028983066928187099116528552266831930571663095024302704693252407454656968072474450692651386646721506446331589846074363601715001118402951003498544858801933717887597749148656126299787250010263214107316505109757221250475889709593532481542583988601426807269590566766421129702701956024818366648058693862038834911363025655019708263400866131440141937547712569172524360291363795784908175333026355241374879497537797026133354773133614648114691675688106840689827104611222225904828098156360890527814295016955462721903164674506608436845123922612143314988425726266167190160933900630630466547037608916940324060106981258021628387879516053823573265755348965890949982361864480432087953947738717022379680798745293521287625291591228974233066155449011664628413486852671985998516592042417425793162099813110290397481269786509172068843371240073287655186302410546376363292973783264054904000979617704857779673460655561528013804550714581783008360038873760849642130396353119262219124583626400758334491061804023506983793747226226578503181546097988559240352072412423620503990125921583281783336407551356263293795012922281670616779626251485249393313329071357363932301046749848965910096856610830287400100376506748165815463011204404999350964634424768334710781613202919607525166875790955889675563622282237583663823163746945079039734085751382332384801985194978936627133645140285824287046565607531722170277084713879896773583566420319162250757174362936231013698934955539445978159913355643725215745396107150967732108018433299148709174579988556187066928929469519897163781636528073218922801234736232201127639763759109988919676662489071843443988764713431998304435740320054462829897344861047158096895967973433696590324392884749605930479003385111286227704678089712220365798981951419439537679358935731477655679342667577353494927392078082897193106474940825410411032145675795110692753959563190917980825773338968554582508828439099787729429530945272556244854360701138533882086554785625136290399032589136680699325140821615811303608154266160521594456568335285136814900447786441997480679900315312987311975065645711658083156005628846535593582878172825711846162035194021254374928974899255613403380226756214444450721559370794560882242305711344880878524581001382492704555182296101517123775053076474898862392328163834404769562613807491484414572848010454628505226807901054038795099335764846700788232374242597467532227171232889462236611991699959142685462356852476171795352563249567586040844675058202732620551288349642282355000657820087168491814527174830050623138064269673769549058352238945841185115806719437801934984988243833617559141386343019505787587188985786764180532613386000212534510988880058816181744913296170214797883793298236168358528408370336115213005862025062081147711833459815521361683035813040371676197327303424653003817201432556330337943413152250922834853371557667065247725977197636827249729333779644110748098817875629245960334290392461185058355777613240495816642142786457826917220216040912954050933901244842517288408045950015428222729415942460006261447556370964783103212802595056607339173054718886620177545746297116994185763005136231592021482359478449570066207952569228275949840646259238989564450402457862952997044639234007748844190168100522664420603138975670033033345828538917120571145266561522750545109061122772621268943109004527181273384711851866702979226479291405004506128555787677790091286109406243515307349545267952741584168333515658801774111533071499277617901581066542000117258135885784285968355261515752733988139660320931739058360287931530945412395759061921560485620508816799322413242423181562379054723556212075300528944220449503617683043533603341616403817576457804142752423720331598188337413963183969431572321435646241545567083585665441803782657211731953805524130657318799448989658051329224457978520056854858317927460959945784424158554144629611811107211696594184324061747713273147130355004320443648574101164560893776683318524466372276512069344388278518350229490781848813936788215084120888569542218833137234972676826103137040020980064882257789171085470667509763569123393489207317690844928959343714546730573598755774319753371970502174892043308034869321462240870120570550172820211299830688538285258849637108479414711734362467526261620019746483054622475914933526337144813669765576375976719495299260664062763186152033643722166217246039971414057510290552225142790144301769496645044422604675838145512951003401946102025375455553742918813200109949374471410405270931611895181331514580969535990235634211712848859689289971400752797735865971878128906718662292242820907575133828534607014034280276604409214697455843634228952552760579523755997796694026875550693604649633019998343091212226941158699086471810471914907127897268674728855602362259571336332082448285118732279619094062099130629765525290737405161681212584478128831429191571302405127616246281623606412820485617995261739895799971845498928049959637546383269607239978599347909888275579181096660021477588404692237642138681495922789064296693463344170158102108517177546638325100513232266319595222683089036164319335945399255086961917035265887010956980975062219594491188010911255996045037909409064503490320099099369532843978004560488457146623945099438333157508465514237495244229662863900273448723589128514459074544897429688787093133816392173368212613683927250521549489729171177699968566426503481354875620793013723736421370229435215817112140461826200469781991536348165372143083662216210462886448259535789052600471061053158287971015399913517383663533838257615151054052982567280902642739587092462574120005407852356340951317845154106646125401668121111229466292271031016909817804051665099316104633605307647034707498668962811360937849456589112767082171284688494664767901945025326466344645476243636378580221060103742739504023992196687459033033318561911414383957930638576888119707930501606838781476516481951408074980148655616927033152066590231584450890952540705730890419956920092024192929052871758700183011049011597330403091730072421752261698661169407464422506276063650157325798655466699644002760398225623584513843346997305270546075256048348003709711306412192361677627749722841065404203431463289714926641025592766514075996355966936931877505806195722155300423904777971390104220584162308921920005606787529626696851205660634353773269972692134108715156026895350437339618335049698843256656905984319806872375294554535818405937626890880216080772140706242753086399175275371816987423541245157384149892594155876861898260825585067145037319598700273038648622174652827169201890109032978413582544627306116104987604391667618265732335376744178659943417661447200769619047408042336183337304763356689783821733941547961319307040599491089600151257975263563114315078971080199668388585387089484086635694386627504000225834608735719397126595307802051836646709854018417665964559390257873113014084498060878863077986752055897108745136063575841992349353121043238690127156423076840028680954448415640308078244882408792871970397061696552615443181491181139007688899655387599547741788209333091573105451695405847167359026331498514160824299912083612546615492603156749584258921567856060579133830158992485570482522114459660128845853466213553105108491913867802110051789417956241587275070636658397839450349574735858454372570157806289910559374960932914401255069708299759463381577861396715092400668378892163767428132769093719899399703084601581892771698476789943938336713659797380546230068604198710763402828692511863278025883060482689640934890315727652515761642701528929749036403561285351566081856322421904595131349460375968771084882586225006674222275551237278426266333907007138299039059739747006843677117898035897932586638519012493110901168197513642243836703882332253265350003123546780067164565036841983248201883878016553212951533062136967632286483437647977487528135093250111016609154500786240265179520305567664211095785632045082317842984818751419744739111483755489719441842744645184066435282261542863158644368598670861060453763425261491200347313856226326407968527308078347180852771889067650062569903373498849707344776796109923810666081604494455833040033658019381640380521901436325575352372551879927504060051987707099339091755412086560894675194595546077097062814626885930789207701617951546814366103060795726475271830605402123764550846964430668100041084337707438834776948655216255201990988812167586622938379597174792784629661381089443359445428939952629270278233152813827369197744389821341533553954456247708282422657422415841620634140035206182388540453257219156325037427176369933424767997666661050472269669386434568327509632286796446155202350593647533115391523841019158783490133334116473874282838261685078332620854078686967157165134799184664644446185452300556423168239331834867862204726903902512351450666086105103841495056398328865498106216239204687254925735492356596469600554806105936742938875918469283176829582623100100410774257355829679246534902306781030180174212794992268098682849440163919056065961599124780227969859491212649184268014767875853060183431586407939973938974658257802881527386504100575251019017305120709587755641591230592883781063058742010683826709878620772279009880049661153799485783746583756771952684862220282291972559759945844743422209352428599476602585470918126045389015068939370931313709497876159172700443216449591097302141121674680414285580501087262399411128886015954113872263564989190678027349211677068688015450899123999223023170947230168398007510974015979223753222989046517554439723766747323841567972989816735175645101794685597854905315123525340871099157746538853026667130258790028197303236948723694089899061183747121958928124465190135738012557598748652970612873390011281625349050835938144570977509143726314178809196993293785271168954610686588666199950446212323376614576287142801555188779081533224052610295200894727926567300426197208904177443465441934700740193936989596478815746208082589933980488833242169274955436950866023273315742710468113831737276460129461812144554175958475004749051574145826755355326681310620284674159847723530793909617013487245638511143355278814581690569450795911522227705505430517962983833551627561969918547621907413938594843088128637897585753746284623939784063647494905187026056717882376121179747397228009790278106113839597742285672131102149569184385127194096274548384272665188268181049283255513850957106240069996567021527306454712962843512631896853990958015956859186086509565736078371337184879543260712281601008908642967411406331048261257090460922169253720072315300982326001717504849829916313873718273500011018759172994438328637596794263334006389389282147642275344291412853142035860307090328750652741859640524868145365790057743976791720201501635685042702166374811223646146493914411024798556232980272260937774474265042782567145561438115433051397704068897633922970005176006461237784337028393880150467328453090108499397099522957103620409405576875648194600067466025820334632151457044237284648043261404428419980148367996389684234006555017487941118229079621112665635789564825779921086176357381406939948399129153859607299132311637596467551518223155774646004169471475449275064605277522328225480953099019671409978605607295312687238870339748454791772826672538624366659122118244038324945411180815785919387845694386043481665378984528501441658963827131264264470158773869247442428575906962505699876231087841493199359826145155693867346799536834984037258394710356085104283737255865868750288334260506077534617902232821191216235018416344218369031355906998364054618210621254822197298542975580049014070186377306403304587243615460446938429396971038855451733805199316912299122473130317993072235574016829316556531805767708070978785629024619852324083367692631093047312485454189741525733059816099346153327289542549117851457874233514314241431087750592904829033517308820205461803438911830550394408362828253541065670811421179698565810057457508375458287522209262076900442251388333747329045936697970317199746772661239947776990649745997512869342404218752269761032233741106841563222986760556263489155337893600310535507383377556261496108252754738855510031262343783985566756837496622217237856120006451222052719114442023026094564207210253179391377908410251953602570853478679947732542083850979432129789596581564576980002923193891718375364501067849470810091813637946226997220526625952435654392243523836313253705456906106621461098988215003982410733046114716827854732524263331987200099065254106809772993526941776689314380269385899794839038520628390046205639898293149397167574949985411854371628073759963896678531409379682242244381901820510873333064065821968218733259069999889746085393797071089944078881073894423879122173147724385745626232325455427909030028145445066635807290302060631349027633800612673035919338850764105886093883847836730487327944147671970903775440548611621071274080086033425340436844033881895452200984286241138011462131004711773564051058432686486696332751807224450402260574315000020383073357503457952324775322185853693600077792757915501393876606853416326463013094127244437063907006804946870237803877119651199870805401720551498637209281055452077714375292448194094127245199799682819590442982580263556156425810960018052668445957954607161078581380969679572498452182086245197577147606648561675609678589143837674173867279538901487696288216955451287769264081156153877915109948554235276646289199736983919557555601895272751211227299469368367857272047304308522327967323892094235181861169873131365016173646704881852968195426904833011999338599678670943915852383290286207378561784224243468688213619430614209080034295332492699902190005996229334310134341087037041116651902424359911553107592230933978915359273374686044623552796550343320419295831388539765590414466505474945081791048820698321376740666307811810938392255067575198161968418625734237651201622451010036370641117871737591788074904975085436354145103686258905421306567327372147396906530348802705231997048556577261170024848018940667549150576689458258276424682137346596079651318679400986895841860323379091975638324078486281815037227609748732076213091527302430303965730851139011865695524947936480846385391352551977102187658263406177318292738449353559609718449955231387732107715470457862865481955904370993432099719423955048700873263700122087524024264993643320234719716096511222016453817810415533697656430488176155335091968475733149293032502854413932710127744376271008930077546472769824244764095256041889524771976469940238730073715048915082704258936951704692589260327964888075270443539150085521203532244878938814635084981650687930265610813546227415862721366689701694759012332696931644631248519915700549796439077656238864891436936790047452078366038374632018130661695966151040239565301758278561114103308760129336482279965848295749482758471834617249649129012193189893780539346115748791606512933488136233729662485665694980112604453347420138312443764358533442489568901701954908728526335891857248937533741756195102223715921614866518973810447738416478140471841883552362295205585117504954081632398621732789646472469147466784968092632081867589135422335962132994959619993361584328208065368312251219096678043532694485941136844591777694300921092545392601083094111787266286236842089477539070156927711670473473124241582337953001286975129484796407004535411129512247607170154763336457096232351403613900754777974389493386844881872563613995999891529183306238283544459547533275981052167928192242707971024408673625776741487807711211317602974093092926218766195267875140506188008892286137615393255294480563128212871706445197515042583931266580003071129524541141978838410733426880921417357338812425788385745641251325231921771880475882649173113292810655124762203350189006714770183404601008585749293732071231666910406872712221705066489483492695826405475325876560433768131798072561192539486897949334156920449731517766710574724713990038084151947889981528518899124956731957133379643210030447364607909152012775104189500056895481527563862509244175311274436029772460869254937710204898809248454657025251355803098943642518029926102793936930783840158883989094577232137075891927953245333868203042342657355111419352855828644366801403999529635056700469213598709380126975257310446474055420702851778099608548961925490849857336138373554472427943256816444601207090113081203659024469581254411123362400153816574340839936466606159836848778995971007745239810482232846518203599707458366102890308954095889171045997867125080505114033653431648779174775786325975016382590394010219568264835309164783548257640371782057987820443799033561481142591453784719938521646854895250909184339261048331773624257809900397923441662794756680953637064086667629622561180124882816960562637073942281291464471267966746104586515950308319485440729637572097018358010773858546175191103156758137923997481329323547840036235563426492647881896644594611113615108201553527873681222577939166632961346128218669068058695368718022384838346536948556976178923213889016743589719768782336155330350410041875164634877931461118298434554265447097798207633279696099973166013731930507326171129928101848890847341403679030476956095426516124582022666384089818184881048772206004745041054644544781927374915074912278804184246514458077823151979581284357899971245649534639434194986706887277616872788285908100339929207545766923794249219403494504709046197025148812048598535742752699528719433051930353160785879977254680183451749194293396472023157858083351467355604033410113404886606842734597572383063044960411772282625526362426728113221394003078096532796131815653056010281560826704723672051257052159515181834311515219313656048346516121001242968101148531395712515631939488085161100201945737952385804658904691298002454735098520865384043795468731863512327598794594731782070842267301068165139464364665077883812742867236287470452125470655385559706641088725273046654882977862232756386758155186507043744156309705689402493253405329379525233119940520931983535444749436744088317617732749077883583323337363431021865009426708898506334416692999691582686507577696301625308757579572500605035493998833613962176803048033124572031991367014808603271648574271742948323807256831899687407214619054290254561675001047096294050048057974184256304355387526594337939631435781318371087736112624981262734472408330377323780442086996881529315642422673946371525797966431550621643626462885593582727362742115148056123414457986439922048377813174020950240248902862839247042675832481564746864784018823624731008525404609833072260945345806556042274221772255098798826575484807675793193921441054825187129141551290119859243130483173887807530794844560761049345155100901526585978945315102078350224838836505893613213678550495458106999696166897821520949124523741136997584976060126171820675103666650605105715105080169428288919293275527357146506626522822957588839164753157336530457122852665716825772668354723103107164475056553671689053782505421989086290831463970132270712510686059934250412980051938379106387143577206160567216195622920174986801656008006774713872340138906879636958600890519161549752945046780596886051553303785094736485243490727196957210526124393696183180340948990146476741476694275345563349155527244445328686584536466693346261340612152303280106776754395785395976627505102215910280112133095101703545322264747300031822352932368093313000356558053204598343165101226526246680183979525643622167546469134891253638013164313308549298030833711878819442319071560370302404769980622834071393882032187883721610841588798974597784438695732804122871750580560749160125928556713123067074904188455525220023810880066010156541085288748188366827503505658600178940492896379668398998020322593346405906351076371952684605170575153777623462578463802718686250955063208392365011226836491570758987151948207631136250670974669279431236605239682545398146012887496633461691797393139026713247946827541318423208128060282441929135926588587451925056996010755544848260984053623513935880291144740553435589642732396415066877986563699666594435020616447088955655365311944696241018568169741812059438540505163816195294237641493655249113550605589547795097330383688896535645205223770777400354118594078244301408396727046787650272414614038327926538871453804348267399817999542481480940645357105264061694900307977915304072421761613505956488248799735517474578356062805245869899563228936164464430162103321187954831224689691533020037641840129863278181003124829332328824373028863522761167935360761834881083829120268651901830710323836632795164504120434406958139694728850831610450349337006336468316927709159041099364252422430374635562949599855404823529818047324766039821344792840376219863917599478017655746246465222946161689583233946230915341759386456965388643338279256602527709748757439399525210741946280232018404241848238262169200758681711288278693044540310892518405826184630835582843112861976748019279459386168172277307301028869628915145657974273187439098824218094150404057324443311462690505816315235455336085593729019578138135253066567777581317516968039260628057465189833520893757100866739486741262467733309540471270030265644547420622232792599552399644205271562732060201252398704698718454208658520638801119262691693506115321814320460406628190116267985284576909987514752106761933849735142376486024806918984736030937171494606469196417959020100980820929347319228905184166918164388062585089930461283561307149823286930556469829595902622266106333823607425975157437289241310560335812781369854693392243646064641225175573200030257876534910851215990758054961861341093694985207984296728187807253993451235606560785696888294968150716856888808594986982621415825717555759818431150514512564589069900753703367427007440985614475141238283367964216290233011960461558658504548187682754409630293439147362995667769394498706778704655041976476387838398812161388353386989460985764327008487842285307486300843173178836554902262900818203800424251725265023549414020640660521740984890253766476260985005136126636447255979755384728845679390281336469139935477586065461814064175219516264182375322265465513764874975517883737473813945883543442373941140018759209971964883102151435650771712680878551478559115544235062374078984247159389210834212577298150540447496813162517827911451218230553477396685136528915620661129778557587615546197362553866796686430247882575967353400201156901440342536653580120143472986825121143308218584549751335130591566768495986141029503381568877085389039923911590523339217151861714175326721089229156935435235119499570829454255720909179697236359385550258586652922664501702817076341476135760059408584373370955098017633985038696741159384406090237316835094614755330450150426851104306071814265468295922863521116873268314180615766354165605884955284447697001953890170952219864138172991038672950620483758045109833982856555843339140155102303589289830985886914849716516548282203265113248695873660183991492327346836419667010930426428664763684966017007091470140466349994692201081532853499182389959124701349313764191626359040041168091676799707098682316560834514228495466882777287136935283514987326830257152147792415112063192551936074174223584498946863601146519606804305304543430026164493044444211238936705012577708041770276774717632429620911940639978708399579696537224560382818615523570203140214187425869197037265550592611529554627196319873051861547053772997812963641001714229943910873786880689786459768300970244694225006015353711085728944719356402762548619196561430965855958481376429056667792971635257475156158714997001812480227064098775212467204321322632535102559518202400627173711350517444634457249381805840171702211377226248355053546846381429013935378591892112509075219074739631349666605045111293746992758855739819566288547351747302943752782976303213135081704339869639574600162706040919127928128020319931460587585728079060507357708811671419867440556542992674175352709749952503604866628828413900682264208129284168468659533842313962084487942122061945469759757758946468793018299583510524175796462893255728583715569576031346654994844226376129631672837320715726799523246440207781344339268705459284972448422124957149241304312324533121041967132476685689840896348070935224048093905184954836594946031183254869402334851007551899599631567166256972187942597293009322029171680398919853611517558581369893745806676037463424387285261151009997484824917631918374359071986862703884968044820445810732838724165020446230710085906473169137509898962295968651766885475507031229173495042083768180851826106274573280547209216673253149039658320792294314639244680178475527071182949758044315871956500924199786480346021122246301034706755150852870437709835327765540465327670915534271756458429373373273674611454772539309459769002173104426607535986294129962299703825843065600916136269775571924997875068878407899225212147720841638329444021541244696512522784134721089276505548940193059069975940541092130425088828299378571711086862383579960440732463231142985431271028839889729837213628685570430690672678075141444171568120884896434542597402525629976721085922886002943263843307334974218001460984870767426564963074860914794534670599557072120716832120376661010638486862639854530144825105738907611313682013981835069630611624386530077084323433682045880548660863410076033647606726827092908826863025803989191147877505986754524831603348235427762545334930745505373536171743312489039764124634768012410969710173666246234034869167535372399748586620674147804909032576494478636009792100021400957008127340416478345791785737452723744009963007051974051127667083513928113566687641229770623509546826071405208494586906116656479954028751205899144483969511288134161503091428092941317918328135078048512718378225255598123320116518812908149004892590629341602104999386373835682499003792522053490881190783581261305788358081409028129488315238639807624907701628836361915125936378217815126678527047649833564594686460052201953387564275769213951900437365576287152989441849981273225825449694113110823871209377615321347083894820660731270116082230238832435201117079736932592332673810170184704067994776366939442565190276283948805399760432049777314478957748996317027497178597075185968157244908637845631700090706608195770159746472649875528730061072789311959686518708490529894258850657615443107734549027671261891853050362422403756710571568381180045670660272972715043809457311339466969179320275452732818685711660135420813283819996325728996931724570904714606782047275163005745446409167068426821608031759940096761876088242485453999100169303947276603587201231402847791505587197570628995284521851834656488992879967327543000922070093026551229544132054804937753655996189478386563919811326690017315053475585007565650449670592121678980868142261926574547359654381831019864121844967093966080890750886111984804836322974538602441307453721437745824322767657784703343835390543570059329383773599703980203453975267615069223958574656420650246683378915567031507691568219738197110315324298472607593852494196258927488120902633977096374245611929194906491827906925470763730365199843546872437274462393880112110796134316618000691826597009113465437204044124869272271777140195989235066923173389054368319985392990810967872858659479597553432496880874090046406773366034741032445488204910234440775972711625925636471443701332782843435560101018443521424274120104731589768459684508709802863904900607430876465773723935588055583053521600865914035140911840841377600125622457379165014413941820826972056181562339504476364845083925378553270413159201934893772203149471656599522420274788929615160829638286183357640995476665178067500770582433471532526249885333545775543741981596888276622482509033360195293240577384221074932859400136683879403126864839880333684006187414262927911970044197886811209900832324465757507550684405159000785843668025908923953693585904797027178047337922202584302476275989978840159752033784080428426950896590174514427743749998983401639564415892248598626585322377143114981311140394848925476299369408529293257519152669024924719293969837211648500787591900629966235949286933145170103136277023355886948127423819265059921863537504851588914176010082351488530860657449128413384402726557180244983575306085103561466883928929099788643703948533368278486416366965526600820770714662578027469273911298087342204231374110813527945714842057896045809435979045278685374570090149598845541517543806988104448383336838671332147045800648331925002698066391971813489618665926076975729203524643853840659184003889820799367116670265522703735196685880003981738197008125565133588272914383092815199073480373405087058764862367935781412920225975788346889699472801658214082517721967542100742463467617032528062998114328777786354497058129253716695847861076187742424535303084363192893389333887688487983756170984344400638280637512180838938208653156769353777170073898969479808866020941917356330950753497887868258560481921514578146458480135897413092016133469771083136048281442607853874993883371869945143414882470628699164850959713372629005654844407042790825348686917744247842476945183095387610118477673157408802346092493261179707560091825822479528279772198501463556781540670078707969993259210405565873694869482096777100177235629382126466516879478795984527118189101884319395640920548357861216497068261370277635640414064848978481588178919719947598130568174201847006015408152118451383116881114279718872037111455671518480554495947439536180820978217494371599341151491351832298918059183126097415330365281645063266338064706023720418907163161552022038123026117599910462213499696865564951886894853252859105470692984753536446769871729300328869395655732760894269622855874341892854306308263783754418886614837618076639691268743156389957798400209961798492286187130623594013163775837480132018468681128687707147395937929018576955929118497404284661760793589268074745317431365267662166621501793712005753938156554210547660623353970756216746358818414027323794830934939344742970653526416274830721718919782865064810634226233191717929112228004663400443097715643059397143377051450769185100718764517826776611138770879506197715067883004843361075278274911543871748877771874896174417946222793994745541963409503945392188750782109856565187728299059068716251976785595743032575115195289390594114641033317286342107418583131368371054424042315596429360872979166141251871285269911079331236783955937962980694594349117069828482585571283376677177951042370026134423531415361308793096748019734030721971087046565455328964532417294071820677871729170707688490814036135499786231048949969219109917033303058589758731702160364276711632243602537924258668880991328072605699208693966200525628179856901863312991294841911910164205574080730901489148654266740986416627398395550033342565115113172580692094288323235442546255277397506805726940190390973625862349161810662394905171048851184638807838555595701645268189041372091118044207573881298095118056179365324183341835890312981580234092782865178196026248894930084510409718118089265570247385745744989718395135426629735552424387613969290478166298338613703518842213043946078797438501888017378265335055633662459294079459818930286285678510561853313484358002298480309187484144305140165292075276627116493426652324138687748395431925181960587735029319410916209056048419738352500007913128764416788603020479247490227073217735226717093316302694647483441320101732579727581799052715121622635066776560435830723395970675972988172561530464026036076541318446377339422271362031325371469604699261517578591121008695961743035550663618345146975050929251050471590577948911909057112094209825476149194344662294310760415403265228586163579508287713245529605137449500848471203447697692643500403168465995776840328750808626924520888460201006528749610870334335150594676605071062202078908650391645239019249687423291119718831414147973332835438830221590756730567993643617167465073253431820870104038709330948262160310527248708792180916542950320623362123123925987976886443735421680236323091764270309442185522358740704046016352607186613990333573980167625178620551595652873112137355456954984948798740423465715636330891419315858264677835728286050197083235724630269198381614636370382484674351608338023045029514369124860374406371029489601074795202431413423763094220021282087306542211766969763355975743239748223639848613931606756414278609168966815735921416063786956650291792751648909539729169830950808814193419251853950317389407286876756581274503000251441386748021568170307743350468903404829623737451876097059156169785092546786350250625072799208955442767682911860177804039095563001618438928177154563165909717891882047960635709381807590537046053694896062039069269679954714044718103426132182233995020914063373308868305065506574416162559518092972655068444433222794041820031116720472127334342542054413838739874299163107708194605616254888594278256931970064257396201361543936943811288177751662876612693435467252978009485065607862559024155560945719244485409919490366812504044968109849573474389643131631163748378515205853457047739802553564419825660987709748071743620141091168614231435569234655113340792150466890267180932977873678154303694652911729041996907358617470121144823146500940864875968292707441132494689564804253142425199628682771505969436976342184287180899652069815506820803499771905601246569088287895805689518298188031974824438692309284826566485549278951947581549032088565401128353859444735460468616152232785028072351389892832960627284140382159023881229350021125584555524105997194583598099443469253852120043589810731384452942492856597755937201884580512280465419683805168144613453632112305543641253210944565559532388566405587727316383875774475531535068913650383976586467426472305816973973103676626636711184133357141383250729992461297059797624111538415693184442689819098850458203771160381935789247833122946425292698163742531887083224132557462183692168530450595897570528176915114022962239291622946252473902359305288421172291452009016856570433718047497788143062484675826948342578302521010482298041485963472812732193799513987273570720691800603071913668555793448246536512086484423284114942079758362199057450981594391778157660154610521972993532426286474095963722219152224787285466648479500285977105000116445151476621018899448150153246158663050360206127826198904996060499235527964120968122317728350961327050374149606039490107708255620409434973845976530928411288281526168246827211557998377983290030907802163138884752317668075241257194970669827253255790361305334772929121827791088660225271044484675470902766413150787457535278536624039235469172478413274488437430513742573484558353395767297399700974665095017117178376372588191134810278715932494602534377383973928988849115281680515449844839960332766289326077019591206207824858473813758296934834069226348800035186665588014756665616855696186265885594495681461467009452679096346789003683794821770790262420277612127869492086237117448826235249267266937132756681170644918045753850619383995546500999931666993604912953516733475755652456066461656178383066289533088647323667841784181819257028127477373712297426258672864832616451629233485077228926143831479389902207543209287557689959693450447826048877351780449860995676624511765241825390478761795417131717385902008561852371666886661071444293692587229231415216421699355389557463729232983453030244402139284221146103863412581822418498717608131873467250376507124169948581130173372542428706347960627829605812307864246253601313494511301762007255988489020344353512607756353860499916680450782628030433755501476205016825329289242954503729201917023601347527872451884599209894800145269323533394710878265756983046878923101046022682062593005244436165841714515578453063716561635941636595873031528017656133334913153104967151986911151555330451373764011340535523482577653679341126946552003230262405894953174207404325515808499099663340016091836382243697343722328731417239991168154146419789498474869066265779739919404501746215872093058164485440593988353344691942995889577786497411647067450581755973144330388291442759537347295711198979178745007930691611609090277340129251094679801252592170822488125174994029248083726871443870965944451683596111427663452844145756795935922813558003465659446196751285162016482814181396792550076440795050460596207414222883490638807373768765339898564209051956458601494114054894418751108927803375133220659915950123369152836433722717999390539350213746443146207062707585120532132206850736900722646823601290648453651539026861823745933212800810092390321919206736732110351872361856380169942582716043795937025656526211951084215296877705225545277456895421073384370638897454771815332748991715750870906360457277639434604677638142778644556153928784486596339505148331640441770130329915781460098050560731702132711700868747114082341814289156222025107113861369446347416889228024733765176701407493039897781534299802054917839589215975355578956645446368773033807863614575275523971974362288143380040830571095925441462204100315945672363289600169867223038399186822787469602099587154416448773626524996390518528546796577799521078191492779079257446901621575382193982102906065544045428488751463494790202012349414769816400166002944045449846898722980532171506580026602477956315840542362915270987388426833094223497702366771788846632209099651692762136270389347211419150277881032041440162613224501097356337425349805905826076270337779685560988430596237421680711885510812814416920676523252090556529875539605437878585788100868260658181059393010133321038731226812373490741981645096946207823541537439885611367499731137372171867349691058041733061389226073200938873689610276621820543635627030505633340390895855749820378868769705754423565646609471984743864468349825339116183609674806113554284901264196949647128763351339204166475856389238308338920484733343290020180143129677643731035586562215348499640715068815399397637263029502125616991728151964653382299695306128113399802860018677056968084649664540410419483899099423269786041696756011036295089915502139751877708133350513757418334975412629978908447811037035970351647627089996800883122099256390020440889838448329173074904330107968292112131024141623216285002700608576808169881767478506978863059394192811237854960160000163286550621846869325742284746005062667708482225123210587180430302438883759581279299211455446465528318232489847948302460764464117767017059703893197387467396106600387773689466320521955582769309587379722302411684970486195640129217145734775533604807213571361404956665692897823564597265343340243011760130035743023410341737508612389941523286877253269646263659703309267979904296091138492827836426246886841823179460520582367712459539365821449497595937883051504515915071032090139892843656980991874435873766865855170147103476348891706903427753373852511443219594598968539519236917092885026973423584235755197255379914276312863608618699085429390701142057387763758379306302068335298866304251875865817813799693281578533188877384655933455848442047646802710862330018069663149841193581750917164187982985592562831271203426512174426426491939807040845309601519341485208536812329910976945070199188801235927405638635684351962960505735306486064153859922797084486773079235896091805704249312420870163837992178225424154455267598525072661628879109612467821173881538804569429998711361382521170362617420392709469346834008515241567051365407247301280430057249704197037517760515286686782040787486559874991782458405751430943556311996595132151734846205515265043298962545532769684671253750362338431263316920595446560540415503063897787890126324748831033789857930913115139153862106495191011218800879422055543831166341732386258986245816383970773045619286416760406094469865361512853580649273813169084750644770140350931252718539989872942646571372533637541262603183985027176012494336165470989983208437665542455179732694233806208822034601557282482597712739021506776621884591460096303503303548103994440156156220225915490727041971058132528778740492585786979482150094567508772968459589904652911580058773498614171326358717676778987775510678651590197200619024073607324072867678873532030513626591700587852447163198942974336294751130369192558514311023492968919240555020481888152133456282366550624943584958871653397618363387162323946831856168203473184587961646962915266644292123757606271849473060833516484836852723046470382194474397288145385764701332933139972577186255714694025419395881891142805291341977640375484482572767733001294362648827867065065036779278962795104695965080753879459920486494008896345730682818500956072615603923960872378940449812482329651470590326132895233473372496016260826605794547865293493675198030339151947843672907879847483143944147198339509997137070982914071074582507452112349231967999070766397769133011874783514143355372326473019770744785675133080943523897615921588469177638112973818380939068663509321551887897972286205203675140313064568296054119030451503741239842446743194124188553749037296923520475378541432892416070292995877550744785638036376618658547831359253621183868127742622006984970236030153300052584643616391624826255433418282501812897920206674921744125491470796513731474634525904533336159949403192195244433966594018553266860107135345268135133563020625686373222640661348891196237253518428572516346834130086180192709414449625763597363972094020744434984606798628568494319487937356691294390050051959411219646780363476899986697337958438133562780670013484539252252699049166338769819685655646600267692378768412567654975023455121905764332386959554797652993534204390466419428513771522133501399311345988195178524591243442480408164761928305143635845676284850658186633259370219187235745636713134863219920020205874994030911662658100077942393680752643849523136659534620936540898349123819350058302510522815651796209033540713561186934677564516780692316828883037047603763458082517737697810558743961486265371519502256238923915736906301987464373841591081793621922884332482038810645502782783963113407535420694955084523327508758427909988916780995341754461895184568788190034490184272167426712930304828816906138693345353233278452317816759202282845807409924873734831812098869796052611593634628336248084590144347239917400508134637999844591386290246891334169237935329619101396964114022933675695910738970921345341380695888379551699868284293453982947296491462019573933403051939477938099273092587632016381342500744864420818604936233445821711352940806632895862056018458803611127664838143298788127435626483020590864763445582499758795817116968779694716795049018045092411518478816384101671175691593381648675438008463723482200483536003176459510255390667338330805013066494905148830265790799617918209244371855762157793105102108240135518943786060823160155383165317419140697758916658823853941133275382484356476351450503291563588015293805735457980197452965878972537096405995625338916148167268996229273121943723331518865423268567654434649359354900130878679969135910584998744427831574519377335848924960893787601446223747530899740141965153628298626849925250785718325111518666641207656536067027889181696597467784924886454686066217905638534591929107474258294583744562646204242807562702711900400383005116934691266990516201776440570807997986728823433414777005120525463216927699939408821968448570393417060058893951420062628540427146916989980614443118450703022372316704763836565514125349164677665583626619504630069837608259618190255211517891614224521479419191528839467068664642250873398139929364354526743506503581343902041800441866042028985917585523539340212865577061089861526219871350145357091311441472173767682343487720477052311106705003399674339300151965477493578552781574720976833939994402234284239905868951967622458415441551034820752562672177033151757137151290479797907340156773251524754451883269273286477100261870698518396287411415985118155257823476684747118048130085611787547735769784986870278657378041253526726803669694389669070497809255448725195336634864051864251620411347141399256685202332276605527376118506950740397882323966941197030437200338023637402352265389022999421652800552770603761454391073401694226196122495297678895022574542612346832012024373110419172556054715235730674715333361896046708698645162593836337461765809104836074265699869848466017463403618812224229461530486814792360313617517805749634858108307534311038257577897571640400483026081723958224787828393960555829710982339160387329844480903990213130859864275532228922685799906725462837499953358181603892572132764167763940020652527430913158303552630980552262851066225035754155057106209608458622350699430101348957444891176189112699885994348426352896388122787908648531194195455638842479494959700331392763706716798979323294217836281213358414897244520199434089120065637546410235433790455889424926197818903577984259530884030961353173896332854819809280034728036792403559672875926042011615155704520217604946476057349817078420910933253446176983525654236821813622487836580161296777150191972067293018420599520579418270405932373328817339711369598393926366731359414565574847340015878806112576295391104180593594460797777632070546857248042767142801368872209082474977164593033606342063793969238880861983191194199249036643679297934662292983661822087063676822292985289431385174548608124502971436366206051054478638058735020844689770966249281422361662594288330072622370828467353818460688024935645596475848083742493944602330964432519352527535412769134994767989613251366650764058175059153985053722558703665806352624573854333991364701666933385524949900951843122272699193759584194358860329934668825510730239539526917221857523323976249690680624940946437056172400504210125097041381275946095111651039661490130421545788796318125883282253117835542356715720531516848522250182130672708096991021870360120685799164200620814707473952016460507500390352863524573251420564737892422581447806051984295798307730916971439008915612979612853318317711678031785163848715448049254616076905304986816903954184526762254755138814786467370661772154909306659808807751089427977647593289120456258587913435771744064219305821972913122594455126417221633204647275900817437155778140408185058439006014985771697680494031595838339690835987591592574043631974968517857767856221891650117724728473553923084381227754399567655826332034203547895279537111624167409571753124074717753392103738127960109353412783038920186497916351334685437262359245589332506854805831475186478238563986790243729417263687797888686996354335319801076851057332329754099144702130265871559220494637564493126873597894719061058412471741204615164811906324767868587780558270447066699371424743349857966581125564390184671010865903116695216184066051021231817054567085089771964551779847830103100568683953903988783403461816305450598445364721053476467525264101088397365697025033875776822249704718841833171702087612044211449009004035705416622604472308226873614660524179668889371518456052586097571860609452903504089714861272110523735266203027268122553265615284889887722872218323150186743009172373813004676099125078762870261791167740735182502123936802262520454918526849686942943533626909955946471132644775839517180148139008947575818349131448377354201808581469338541562649429739437748493183038901167880567243066784336203688183070857973819291783261811393685914379681465130126867698233432067506056396521410270221690063275484144032453941788469216647578776365209612177918370064395051810362415097270418185163299471644775476135706439815027909814940143353606004495008734820100711081828351255478912644774472298328172182916129820292175545392618865059308630000463428413174292247103244784292820763468624568635035759328723473449103697594543280375227120010194295994162444726098621549362218003216904712162085472872331576868983171107468663664957737534363678703527919895834814249739768072619847828505493248158302209599882459264819333559399608249189014678673483497784257986393242279360361546315104149004233981022152173913928294979994451388895294763658594600409505384159014167035879377298803757533355771381998157980338750517034949575294114509286737914452326086061377862563590456320652904320642526960341557679721494149309808386587556705642911126729958796541126921949391217155013230129142397729997395760336010106928486045612240905554747578305685009107328944583337743871367933448097592527140121639419591120214786779366567596778565402892517741615522912181166634496253831559374338889872252109321750269733099784585964771319421207743184995066141323782670148165558997714663696549596158123919578913141666657783120920687782088097723122464984649478249209631018301799972105497238232080730168261855238481566080647103068111417167054238057785977610919608119670619844649570983570466722138495902227431382748450356726037085565782303207038875760344105762865941959481732185481635663783888375846868363415841956661273421976993933999307169548492466325238930068057681186283392921055243624688356629870919892426080182534440358666304557224635890710344660331306533464374841861952977246047502986925952316487627651232780936880687297450783914071955280833341457434275449921704629640537257916666869559771525003200028026076662129534716551278604262926373582289560967858166530390003785053143653779134646485333710168661066819889864586332841727250524921823408287322535426867573115439354423806080038904917595835901552001965954274175271069716289628073988284126148037799692619158615893490291364807009209289189912025133832846373673238887562185036678531158500454790093073887516467585515888750399435698298882645497896170451193671298879708633239400342910160624741566147791077759959668556325024402359529681848316065321535312296414401509915779687505553711987280313103013604941544665506202394863727384952209102587733667507057063114273356883329886094178477766260651512618901514959491984228434676487675959453361159597521939890113071610034200899925921750159658257315451847542205814482322867280780670277549287631746987177570495320044669281225180224562854715741055547577713742066514948375692772979181440812002842420949543734054001250884237076759403503502175481298245013943047341857871873814506372781115054047692072842285702366210931868333336734312578778745817667657903125646020847379521982962601356409846552530178724831521539925666502388789271770949867675832519376014608658290368486744179494518325788222652407194894767416526637172301498739117550902282323620094933295855743348918098435342373445606397176920730252817515520300063619938768186669424486209137145159606591624977413130600383281308216214279437302716790087606635728532334262449778952528356483570325437370969228763622412816764508999311330535394545904901823324861016914747718828779728143598748856881626236907987270979215860253276843369555651568594559681380194723864845790391253008234861707835484139148741029926247077267886514137668295649077052929503366588731997190324756867573674218657452641542151793565736702064598371994933249257398333239749593859983586919475948260823047078745407497638435552599117319586832667477073871108794300488744949682779924288718645340853303053711227370570638758686931466898216359932863655972330548696953220549680516267814668946707337766450366047368293788291366923397164815061471418270311157409189594702782172219387314690880425705606453896779701165966894670478200225604675858791957843990197472868729791118517519863803235761505573921655450584160457669805581383998683446429340241611996083243268550280022150618156773519396336649690421006420902876613630737157928239106792770140955508067778059360565148428079972998709456335789987754431187429883074487435394313620852808339714037851356420645954278893348452278875412779988249546329715420475744066027244990880358437323502550645947020038581191853394561655074448228476436182378743130861902586081464750311926204283542888335017658452045322021047170911713517728083732841252249730577953866681940562489955012613402375571492154373620889050845943022778213841478634917845493537020353805460319453377233299804055418397287462331218733873100394425865299546997000530673058313069193667293605685912288338882754046469092525516879948918587056121331177934957823193602866040574649158991375819619572329832144253603318661890805992172946575584852076655136543499419563414048519521128433678479993766801681276413658598684257113144002893415121276477769390266942955314517942714045645770774439370331422018811473983856458259870948803767782382766226075767652907262655538465455111869715769581876158665683679671722090802182827125517513015905835966706183483948070899442118434100584699360136712960696484789580779864534964188807334095269629964439371102969626702959204052197316549147889527445348042255456487513831489581662664331222975350579506837367326697022561518431181262593555443441165334041500681983196815222293163856212291967099177525166076954742435329207319321033867320186917459282888511164833365431989582435708839574260070060921226262188361022216883817000695299725217737286233734924402697960690804066383181563865419586556188576713790946478469407443070244863550200452852304966234498196227586240339179041968286535388581291262160625445477043436052749639914928601819671232239727518531676382688665541239013522862897193678959682052735062695395089353515153542064415594202712112243074494138213143004487844177784274954727204550777750263267840871718342645771920456897878125836505850788102178549695138123832926131782954266258147005887711808893606386542587619680913294313919121825560139775168917559661831132264428912675157295625221295037282081255382979429740183568516909280790033620895459855035775961669060123682629854880589647947558684495620874282025934937967709827179930014976659022862493269731777062599694750489372032790173968320902129042769959681112969751977273827399282482370734962910426549467119779539353534633218128082686031750319668358712783358144074987034485406762276700818364777953449472031752627805987334104777251302852598255057120555112253754154072058602052523778692217848194985895711703449385672168167661549141520221699686996068178757975664914972225304547034305583122448541969563640539968150003040547906448128439462352222552704336083798103830500674535277186994222877600079202682326639263531431647579245375044202676148265705660388008282468029851195536844165983241039200225563585963082977286246069331241680609988934941415974812412040775671587886682606824058427020677161668983437312241096567435365353104196696290694184922852899128327746214421087737621987690674365046806758048333782446804835651793913241496910181165121524025077755404486868041985247052729737845595206490055673208868618595143427489775443341795053758615768580602658538456129427855773014307116044744443078460239060633262543707027037947905390038551049315797125042636084854297939262875959716777567837320400985949176284901891234206152412405129502648943319585494707107836135898547410879367635306270913025036037094900958252594702118538321283330277790959668944770592748560948501996966434173507240135423759136447015207513425675797315692762179451348054432280453993147310105816396116997881239817468488908296916994966707925090769271952670824741941208059511973164252039240119577872329159317061318214017529756956138706904943816553553850578905506852034581487719844147815741493497000961710086549954316546165597108537059211958973531907031903302065044622436095773635582935350969099864743186749098575089145115036945019250160602597627282895841217277465149236314379044040170388102343383991163909892649799651163061198983929583046269698007896371387533410816005451009506869901805932897130468644414193811179516423769546586841085762581245473787934564652806029237184355198537727617293703489354726772565410519275025854223967160749647903973162110032260806129862673794670510543693274324314023211271430009436438277268259955117552866691605033155969608392946821579746225303181820161380954460603431405359259019351428559418704990033883019022708564081525993680521543452858298436449367708953877732903114759097558064902793460645567851245664834014020500173389192518533970429597869800329610918567113205742891079338823803382918718092113935267022416473850827390410666815278133903769011755977592115019320656552741365564282216191751496991868237780724433019712494307316917865872446243660158616333238330494999467050641427911440740683262464343329265209048925659074865663262928188988859037364549725236254883600266713620040094282786788336196427215261330445088732871817219273072632611667042119841402277313787937362033980741367901750682206490775731162092644371287658528833051211643637131283544985463123639802720582245856302395042510517532897285591357810272065799544032169247959049553546127535357880046172305594411689803041343796308160941242217583008929700466754287988116255612030923533167893010216222079015505363140447975357187836689478256146013878400599943905392982900173362891732423583084328995089812323536858685130392600137920574069073839940463326886500177780552029036353692900928516533348731583440990540659805694099095393001959226332179786357922943830302190163733702002160859350761129619085774421832657318067990741314962980925834672019169743729893507040623593518017239693918633188262521935151336371825814187698302047554240388005312909251485935004194184965519650678566882541342460937054601574781914010387893095002266128719579398444237676204582127568012166624307004568060075391458226313591627807295873010088156642264714421980430582319523947399661650191752449561889130906763178545135990097839578148195306581889833742074611603737981161545793532244516608401403599437719199197034285708177898301935525511789103691836848085578277292173929930281253125353471634821321550564401869638696668028640953325292453518254160782323126437201534298436532755816646225959683447377794228343132406965685031592708920205222861541009775055050301793431292413071509008216886235828450046930290773000330883254261162328808633658656284040333508661290891840050715049149909324291962409753233144115565420372344432407261675625914261294663986547207268866464674296637152212230318898432630100086548861528018423062918999716916551892036106395212176925128903476212289014135979844379566091862734117159559550312346603731881805513649626974661791935659223395354973200692101188422521613383244231473136068499171714858263905933666081187122448853155377350522531788115837573765964401286324844551242620826176641787584352941168584750994251270546271661068694105396872393062933879751900657787020028211254930222231780282727804898107723360730673605815470265886707096857967063592661833229427540130350299705243330531950170960847024405675467041529948121732133488124447362756862614815770058380543878418913751463192496739622141568614506018879203345856419962249500214967441020242974072193098874201736505230364390266934855665904704377437079211206365628978611108942344224673117486074700564306034932282124918100999264176895695553571333311478211098017460155780283720101041563449608381028191240132669263483564807154804926289514437874734519623494861606116562550857229850313229155639589965202139521732543400073974632237832971567093274606478055737001475588769307663229567327453157830639432500019948933803002609452641390924772319335343323150848979864579737742402775836868084439979475901026200910993349222043591875090082957681789410850961904536888532855986576970004253671991513913744156276524302497467831204356888626615422782988723610752676539850520577235294811433000976023884862875579388538370901810062489242246936784305042720128011676709623351847224528250602287358808729026318537929668181238624154653378676327600286321421557625611146283239481794348143706338932380130746499916381133570608058658863563477414401545664027257938319767693165821562364381751390850260457936748020524252812805180511755593331577823444994197960204652818004352450866700476436244121464618767506518257337511594719018758993789205983004115825972447057930575667845909879583439057382780610336896552777911139090316344395165435718732791966100458875851701181642273835323141872194291825749972426537665981831151549543246672811123095517891173969369970329785029173648214592724149700860628286219823992945715180046694013083807092960516309650070981256601054548370042901397978744611512920710442557150625082488712175353931650350313522757849172513639095018285925404849876518202738310412760012592839068832124778452642566089818803685308240477296145636225293790287198230470220272147593753909973751041149188551271748893856879699918349274413205484426892205244584973064422981406801321408599776895308992430242189920092566795221413035457212306858315104461536364923554499109517899645200671225117374737448306216569554000062646140443066320764927127346806511328684834657817164526975824188795177229775963650977434108935158318606874179748799862316078812193869984528882694359784792736330069959108156466990234539250446555455249017423795566648319076195165674029381172830965529373201566660830002093832675475821107192282383599066183829397298666998644691827130214572097229911550944713246110373178094838402007939611922421940568618821846282681777834018734915004318169478685715238662870508087850366480537372016629851073477064452030481741283240045526985436313872023045368490711160441011187493376855884191424535369912400684887792183152396030402953957313087597541247237505269163389522510647538392739719633172887975021982120382195457282100980171906603785057001079409309981136578484568843690849525299263115932680341604789531121706529835559406903754956761140378008715291989465721651851046230693664714059961954048628538655972713260105994503141435991132781959950959235411793882894404654021382852594562909786512971328144004226649616493617550841434857582252521048747465920452837739447383353716343551346404977845016295124038085855818010429494567065259344242396328432005989970310797515166100556661286788511644406808140373683514886599807772415100341592720455023483011179238615088079000988609965774323190800532587245905404462160077190861243899953693646791200131632110922279985055005987448595209036793457733615599308797633256969635982317452773651747557485679878070173015081498826629050783887048459883407990835020887056959620785285265762917213150568722346757835436225363491671090260201241526156953433471513910346624984562698747473557243410307056693777728805998600270030881414504312402585227326444326959541547403395980053887181983078338194946456671480452212349276498479021175846512008959514213362843404506729296036153209072521782581063840614038333049607321714352119991889984208854054375401405479463702010538055908734698685115769346881649578000686541156860218535263866736211900955396425416715651699869098219424636918935782508801762261128610055408476880356295029307573099884356929281193483181311344140269439178086851779226403944460947313923508642660013705628243064998223027788784830118172382875458337189883618302004349127313688626274907083078490228270623317180512015158529300951643217311521224125736470638288000130073913112828001580297247625296217134880791297179998948570991548542460514624123861671865091495867798484978855659643560234626451276872173995144514087583483247285986888144768985440407515963004845438292932790568900383997049434707881813896511376966741739692892544327821109189572387010860195063207767569033813930307236849143278506745089270874323049377443586006902830913507693045153269025055360086942745541109935516800127057872958630661171233790994243901713168283429597050450641431591178889935718121153454568136569613353312099542042789352178292678969684030276433130332657538800831505856767814437547895692300087642860822578116651309728433914011095194569298277344766695924273765820211346978132701215385226955275421698353037937096882335246349591929837265645682252700452612943335428221358591570494112917126949636066878668854436964706509214455892412372983270925228514452042944320611107988086267447911573751942455464883519975676483124075976892786146796407969758776874809266165869322770851464208296941236572208216464806180327013293618253645704090901036366087454552419355725251245693075316800055945068171967093284826456447689436674076950195496076324019024809204822514830771414828020565752801046134435400644245085331970087802328488109827690825595362416928165790501577631216740687556511758150011997112432899550525123806927350200093761426588090151583418013895427273415247619378721088554591514799875482380811448246602140873408614060782976592369325450621029344924164527381499341707070943227183623897023574714701628228253956121121720705591373226289982478567565501019857022471780445897731025515360107208034368102786864496819247814387338609575525377256254132211949088178506274315134375036952403773185391223613869849064947111577043374138030305604415224361759816536367917235163359156648027715262640730545482350479480281911448735089986479041912590223415421167368544339148416281117775577938600746541474801260765433418644715621042088141399891690419572091732172607386150073372464693782722246677753052304566736201115345990706339296192527379410086039739655683690935576462034837928745860115031109531614378809851708660079999261901385537071324676090584402287732720892432665211906453785977188406156913401563177258483049470045880024453906738455025502493298510468794494036093514422444221431382501676555560045728375704043191040076237741527448018226568248990934947147521939392547984680403956757062630582429820711632417127689807988073548112461107260311736308573612892549909567204170142625548930733033602849078298704989396939118451228630124678955962211816132584045225601137838537317807443456881398027302103952355052100753571558716728675065695796952203069211415316940198063805418775859377344460737910945999079908046940355998818031727830638041539186767606917964860786357171298523732086291059464640859466967465545104257367394337734711276766681282348582642168079649619051077379803094893331741728199286097760240137105983539588681795312326371931227508204375346413928482148722589650239691967024264239540951089220949111022741485586453527343584855130733742786969577651593385983382393246242231949090829641245057383925021927823409076723406050821880350537978414220992961000722415156493533161441753697193818977418712536705167745952525177377847579827879619211064710418286376931852338629337924845212171113206510798967419229487954118314680246727961637448396440475606952839525380461939890903909070312990692329375831027200430917825442101031524012986636047268241453851150515996654642238984045362650312455246044467234099913439627633104659397749214490080009307052368814214976243505211103085349258742550660911878076091164017363594589794802803967966019637058976286894731111036884297398386576169428438791299692508428619941939360057444022496330464430081812103129146758132017937779315287044400999851811507132924572723927136993205572954667598549113814024052355156802577611516637418054048355221931109049216454029645111437634418037318015717672903100471162782194169964226999821067184367577724890268512740259616800017539064044116780861915380257604784363102586672001796484970572982335469553209098964040841429388750563401087164797809191768727052169444042010579483459437403119170229114710679325168120161094479564073510609361407979438105089421739042747594497803311630231133011803811213894220051106653074920685296002769905943917236365176552946697749311390782403448827480241944041147110413557509402259050652806030366644914875624474540853217072251630154855261083814715509899705558078374930746080351095610005009224275583927253954247993558148627781310991966123921677805087200135328865872392277068781640763575999796536424343123345093506284764161280513570108234650640057833352963706654572513768322448948076663580905129293708361234553502094426780378708681575890162479704184831667498936443181457691366936367343534278118610085906243873589527758552924426128184198230745428478757620198785340470063529792561824847267643552238164517927384262678002586165805471084396698810822838614682643370013397804659410862505340194210762119406987672807827036187761196232737437572639030633973644237344740289144115543356776883300019127575024546211358301504107784696714683220070605460639868893984575162332003831755593349997171261835304762321521891003465585871670591656805495378013662077632953291645283570395741956506043581593698503679751385403746847085880786977431340298883474993855037938141389250678087807393955758798278087209502131905144815467313267541072862756345361893039281118348058012548129059906616623741676716261724274458040486264219106722369402041081625243470332613350189698827525506432265277392346952429391894575097100556625537152156684194087963526202892865664189816736479087790801599116461304266370508140416231940752374312917616219820029640048558961678544421596635961895378768668059723894442798762394918806716371077562638726448642802866519753705325173346788544942086592976502393238296408283276964603962508784993873599237621858657792465815452730431726962470482680468321778013389888721549115181003403979033363663280524397013704495956661889308525656668876432429046968301973396078181844657740395463894415486988613996272546514577406947250483211606719938238726667934761066293377365501432362737009770461328312525389394407053518371783218284413104676033492709023941379541615093456806714613685459749404627333951747789139537651990033974117623462206063807635536546947811123760739469895505544981507149381183961709852247607340156236102367813467845515078972561966666820268373716123653729226379819165041845014624050035499819562253079901556957950836423594082318750458398288719366264747008819735079248168355410366986687709409147115026417170697713599502368847267472291746542786802475707213832101060021330328158700483584912293041595960530496176966956992752029341738985167033076715719081276819062186777975262061130024942457610393369100860971249816401111269953818975525609365277682951349923345205978427927898520257809173032995466262742655661985508344163911538631918104723782609003054343542058093227843546326872605615931919407744591620422766080485875115374929151636320769247080617926429373245000488922639785395395199230812628574100553074871136686537172740661237327735267666817049868851372559647347138192255641094999285828449837989936305004742645895807696038783011862521144515798007093823807239458989019560389393133653971157648305495649521696634949962810566974184190166962465306370729156918690918729527036035049677726544074825067098394056534456480555101441358809467975817101146372054118182320276347653377774998736614203502199218533967773759658888516565679452825620613099173758352549981085552280680892523134717983173277965265510770198672688254684432609025025632839267403089063296565959761949906661166538049865837693364467338651606019705161713211468690800819550512159169621490613168032012355838509796747357038746416660411516593335324710795675761113111377404066174809535990116134792816815953951649719934014467627349208371217427896488725592409549958775905158071886409927927794969822241605929270609799876980184761007466510268713253099134324912579457868804081872230143531289453850207030863453955200787657934183663612521859216093373988408261610366492355859902385986231189709569132350643532956114556184924395409512841113053665156484314539422867475900728607955343073285782585581976160522380978003590329627402840084779103130745994882893295959835380648867088783099442847365435189666119265925486175323683058747386174754263961891250934657126177769170680510806661528518050538216308781263268272066756123278329184772332431640902485500433373098779841784872979230006399978882141252820810411722770312194743072187496837551589353918408098183115106723031124579084716379512256138622994013860240630932545857984000199255199846091421683136956452703616415952025090112471791880488497965881540594992070426926853158725509087995611306106468493607228096686099326993658907841953972493830507439711658308762297830743540787009775923438856209924495883929362013682697985206779124985204473796000871833044374109102293239660929375994126954196294235519928034850237790409157991861494210065637216501382074057484477611902591712445559658048455136904868738412105417698288457229763538259130006593396355795646594939001374102610722718497480196740785923194002741950765204025670388944882799059602281847341923142019227459319929051843503471095959277670701652197348933471564587542361657384861243836327761226142314990790224016069280764510418242124318304548919330782020986585332621219244156846597449397540456039752462980015540634313916228004464803124757574058579346493022888672998218771606572778689818277741397281633929055222880220505887638563291874361403986682765426446226961903342099250962690342008388549666430545964638928849748204211774135390269222631901975665329653186995132495696834176424557192665483042599913595632527951934125640405394311608724868800037861381179977902017488933526381521330199813808509072114615345017360970420294439416124141091880029616755275901142111007850655164004478149038334812748864037832748376194868043697084825880595055247041764849486067056518702120371046131146485794054312113932389565669572332384356941661175977978271679143441392649320968143929641010401799392578399497710302779971886469101469867892754244990027608730389530878669745725886276453940998523363173827554377352206666968021345919953272675799117899723754526879370711803548723449085863943708790668559721934797134707528488871652754672294920930534043199630873950648315968081839084027071743726794109788531518471156439810836423309317795447402966358667468926070368354187016346690511443210264625314165717826846739107671518005992477678374588166689144497165098611718871638439519551916328381153841762362211182045259297881585475313691653870536141742571727073548670011867095988117464230134503050890840277268266091998886612256863211332777449001998496174789063114745291376617203404043853302362865187322244730657812267067239588146016581428335363103198876306782744043287865076160649911836152821451825533410749991830299660239456466826655696903213111407214854133393977170779056544933249413619765305105944771785634424134600969483796799202655101228285502203417846688096131444313202067127806661252262316979864219267724650139288449047475310289089551514003411002237321053736603732957959081466716254620578012927941703232086959351730593665517475847593471014189386142721401639342923947937061755713699610002839436036001659392335543091205822571904760849114394486638522778495143169415214824043968952771220346347696189769297841361738499661272366297273873650917225495936802821710682148757759022554715285856530429278525179149836118214666718924774215955982011867174030310199880864436771960684470060422644808400367038675231303284158313157930792919285956816807960564761524755599019657411051056405400043149558712778368893556951632584474826088551521658285218732391952914950030824878111769833773122297650569216340901732773382709345951269584232042681030291920259022795316938736120375451637625317772300188353236732454452322361545032935930774463337464648249916530546102357591696854427882252226613530444359367666569535407208286755512877423019975605383597059486644001691562285682219842512592188498885207322958600824770176650879822358185430654981580893190653259186563771551118178541677597809793509629331708072483335054736556793767658108451542488378070091913566630732658595198379732512126346298108347148942790984919360909785892657984358965729872775867566376026706997936258035268684335612707239001900698358947916776114826847729631828840511034085676526026349595638690523268261094399498742911871282951503891423801648080380214143289576075236951097811810668584862151500268393301383393327644979021522608059999712074711344589244227153394857011425372456762024758877755005488225260576569422425427131997320423419465532485982428138289751069153959905559073260793020959197920982707019947828653619907627573985034628788979490805803000303844869134197977589505414703502710992260231847792709369491419053518697266137009483883199363135019447532933761031404728946522542734485592047846445523072201992898569047973887758420502094723572543840594891131325715269672951470172540145414430474257277697764069564415552678086003839697705873765763774427919450624101051182408477520664292554299106425842368898838433912846707924053082234099460662324925541769933706557026698025943352185658190184086803772386965963179639325255429242115988227743581721552527049462294695009015744083198293894579653667148021379174116790034244642943230317767944429474626119925359810174408395008871861126186800471827834268133757744107192459059654566759200444278336745510782692729650789922346856666505844282575154593366800167435727365163913951387765829342631916870799642966954332300795905444384990638837001610386617857165949947147886989258409823474290601976166015141559489948325389378063582534659761874769808290569713018733166550329443533518805351354263326187181090055102978149040461761139864403478168622885022506792520060198960316153759374194952497132653752646309051147160537489284341414244542702124716487084233510849864752122377717026272527750690628315851064384707839417518672568422255796009537949533005242364388201798984558496636592267927794458286949056552909098500267240252100915832820077509332820502958364944437188305076405196325579423214432446034538292699449018074006362813402332016659309504393920879179651907914053966101290004407141103239265901589726128905135546060001581381090589308690395589923862933993417247371361224858343823428274323331109370891916630291773293215629313290432155354200989752646046485940398369103350872081676732229434261138383901325973867975995294275928150815162921781641709072997719410941432216275192387599081833894123612930360435544571696789416255155356097324196246477753770602822061891351712713931448725316351311531942512437472087273898771356877600628648413566089558714659574295436122086046024028241884094064063863557891601216742783618604511135587991167695529880070598627735768902174871921865420303018373708679669917505646682055941486393802805155459941879725370314492520624865364912423147633604535834795910820665055868316487195825598317148261747302380012820297403238916575945980789776349503747888132754083489027624867468128686473632422029463608391822994816426647612091896052262766467109115868624861808426155676797598531894212240102694854014762972199021983077332603904824151453177075358316233382575400884812762492127206239238037948609381312198666898638466035749803952553456756132773887481707452337240778115679753377598327443790846721553203497703134667818641376039949050295260612558590590179374349607834461486887031777731137418047905592040711042546467338873399082850895736292747141586131006262856164613574844557237417062080624143163314003807611335538090344815923736420750169895301626975309904420592561778423236287203337808364712966884543263102926215218503052904198389703074519535941536966614478593330077161541375594456291652761281925311198823858142241832376279634407196362665942337351201767347554977725571836758015371650750308899254769314594357976379087491800204783806947031675557145307868151405754041476935278323965505126168273226113861342569661801840647043865522182810519676026017544799636662976083561458691399887382614328595193535410956057334907131364582498845503252194690063656916280331306375305526954101678187445357955540000684029541404702108531013225582311905972321423401586751542764033602055720882663558504717463563539646186586929638513877608385654658981341308320492156505457926654224488648919721031619744809212463802725925419654449415972745874333615556765538357511321038731554930015507103047479362083957880967550262912218022340526620323853642085989593739720919941016163725111051145096092096579520579498505800815436292382217196990005316547957237071947314902809898508972405640629718152825383955057122216881767073498623932289152119056654480449912657436774462263500285923653561920550750665248359301281677861859279359561157554778235950593457094908232969595958766316812960510991040472629387047394128105062762847987469760351917274912468046513040716526892190547666808511733059506454635641753273054590514975187794553102938745434114108718140578190690518917115470176269952902711063781270867715342632853614569879482123509524954885714155239059631360538118156806990866341684571628694298839137896391287512171006849760221591734407050368839212871155749372857702784530415673125477708026175212149724451852123154049064834355742888626460432397136165254275177951771059997117033251344250408684839224828704602697209204484896493881541665595003531697416858602725324105344626522566754071674693960908528109570481576673732046886108789873443021338664006726631399614493479255666458750179096822706856595687358646670977240949545674798318247163979121725807956982144193803064552700928732794017916104141015925847934276127734400951533352858505793186807809627402487105158275262836139208046910701927077782268152613090623963282838560612615139133754433717976710292105154921369923424625361687460007539404022106431627116557020224662021169917632857823636956652687279972699076267154223926307444898833986894563571147249176112024110805078902404513623704183186095777336022737747078753089701131611092666757630396212338721782956039791965935611956541037632810012104450758297129280200990534400237192855281287302068983428403887485257411860856365613596630337494979660982095587268289540925746896058448153391448779160456607913858276741179814460018191198116614890537101443021418278233285760890091068294960395380475723670814976660271809301141788384720990676929653753606626421204936357326855743246701129423924552679823266109442918753351455952501080925212290734453930003234927703176998896508929646511768918631731329883438123549877447700465206932097527623278126207974108158966020410343401402093511519155080861219757395463617336557531777851150616756971582831949670170076256650139730649651610425414450715941767516169264737273749956656298667648011027727694299860491707849461387064205716179141215407051241492783535417575762162104944202313241330826342419702578047088617165343360210210263118724925391487167495577846110338271704899321865621964116527562818042621127570765013286944192196083064211026890873106504285081567878743093308066077036915970947988990338668129865313368313608557107367960183006586093144410358218893727397934940097661483262860394660610906257455977474440451817133473436681646902892405079193738459881274710402544669251946346024389964404652555143423807669249177004482054243528466002342570387805974501267873892406923677403671994234017248801694316589125215666937808024238830703651383130449533285285716760096851996166327650813479893241396239102558561148854419584393908624158531911776718636644806566040908141565536484410157322855744256392865594604223545130546589178397959574869842256242647714601783469459705590187778477443447943024224381858453685908221317933689740878210511029968711785094430128989592852971590397858672843336558440597088491547057360742083379491673399939215063881817329155699140277738576190526097388513751008418904706528348542814188021681701745932803113340500013000498965161708768545525977585115912583381041938602556907253172925537858659612574864543425628802654113890947759965165953427774459454940244104278750857031196899195120733770956512090909912414510098783872511099548096990479002118236512882907675766912047971608173441039952507101922536064589601615100512667075851138785327208729132201684670795121039584348836348159914322052541769624884053205581942185262046045007654513849870589571392240398138217223408809682983245097336845610593335885034025215301186151257099142689322188407008712947485685051921546221782294270077222522291148691034355673810460040541177625103448344153648395042441128829222190646176864521617582763580249676827960593437256547955304747941687142984135003033843618028645038394982555441034264840782274132327615868451445844980386279032976053825764313204472937817662885657383877218740267464480298104885869343887258098554045150784313451383580916062244420795549694443959725615372572321961060267527413264912597142009458833979009471594150866884221114717055423529128322087717928319245465155148752110539702863939357290948140542588100233302676103733592646888331496131480951534070070670857692344060560610436506966943772189373361565852042027783038555800713422962912466168567974171937594489230131066645464176272476843557777423131525659087734705077360389400829906533687724904357312684203852808551882633406034857541335761201548957548355137639524174660802417011972902340339132684102972637691582001610379574670489013771253594774632052253712519672768553148542986197331950190018600873627787786757246264276896368692286046720773890263246821772593631917034471857101734581684706971835785005332595513466957057278063749301260505316000459775484451657054063733983302868450552512628368157362577775055881669418675230221540487235823450835007975022618919769937447212016514329580440756882019693046735238205842698435128810471436429137114679984638507136524180336337144745177850121520518510778493828753871052353834851840616086468300336707605333946912989284998944906002160392755068904816070249351976846554282961231957399380053520960082877051454514594611287628407542451225679219306664174728788095182232994353189316274274355807410930856674113335963057953037019549495513090263848395514904202518690379511118213636568277218484373516742239349469831177028191793474643415926940838260858470787511473910752469445721651591045681076671239540737830643388975638697944875121717804526987417398742474341828804637628691058929354183647495093178058508424494605146268394215792320888192022133735326811605351461514210181358236739013647461806338743129424298145617036442533942747771358158537051471685543407875060854555256625367710957518249427668642717937232872654370056669698020267041412599719879038453108455150538582624091027635767532805723440564263845493858070459790765761852658988805966152657222206745135363180370117367912504264144826221895204880975249666873152406349828901354207817529711832437781860023969990145849505668052934713478503994883447790364878168092182157246557150997023993400325588644928494293919517024441889334531275528998570492853012135428713273925503247846011581392485126639283744114197136894784831997361024190324224124383410774255604466100689785285745293680081407573314860790845583643921715531480795535282456616660671636246336140031106748706621558782869898042435782899241733664331701322350015364900481789645111181632965160647943453675757483069829736669702827121457443354307515418131216157294372156946309140862299614806430452556015215649361128635930724948816066804626404328775665802311554297339789533450291904724337836135073569088627188880526514240586668760308705244476647108102074050403710536788343881176105549519631665449640453049413113302577071132448987357982883003520418312584830462946119333123428348691733519966467769883019314698305039577954982820490863263075430047637179653772302554306716669215928505253978584431244505399025236081321916677559277194798940841958374185229955608521852395285405199160980764161027294873793919278552488610750088272319860495407109928860570011199299730127285718115633427266240562214374306306693691128282106699572370850141012911215781293277549909570312118820213971979793197739697011284211604967989314885482654501181965753249520227307853033403131670607798875094738722219306703788720215778382864560850080202928357257060953707750848622237679165050444623935239072155573497227406265255787452784985548141878110570070294046361573991488753508038677225438433617337313596423502183640236417628306909679126499476151592974112515761835913843114716977237801326534784803150992897270044163863887622134702097314627497845321916780844189039852746029752977987215706668184624913790734612564867017988105246198548430641821097411127709740029834623381511570034760525612097490491196692890376715837118683176243807939958046505632474262591407986935324988025792802971690324953612808083924034001278424607437463015966597331419232252320715305344333322538279174340967516605077866338529353486679745468693767744343160031772488541845270323276018134437420463083178843079311225603536591779162370189932668245311672764448992443437190494534878953817523667575525449421332150736349648353275549565448457022530254163546353056765420146917336214970793666277757518646208251794128809155806475438958618872264411452012728548270935937189398602894891648071147388031767741706417926989174438479547404673945727115731275419951006622053780523026962635106911414106880297219443402827251424755144042434918025337028850185973029148772367546620754234606401880665404423231947821656163102481292696562126164868115520261789860009193024486945917312294928331270769765895900454678564676098416947078942220449161489546592109749053672648995485595612019160304138033078718667675366359752526980165274075337791529112130465856622760176444120137893861262887342360169905723376256072645237312517075424511396307496586052475150940756112153736940848024635144654202781692323638330567302372291465673247395661666626436921994807792546045295193288149202623039385141156614510209501508399289230941935606108652717657538449604475333071692970060433293261227791812388316912350375360684865778676135210836940393891304084975436234956184084562656036291633979873312893721831217054201814689069551922664367739017490166522077203272902295168419737400685720696983372536785990007519421804641568082821328944716292560402806949708847785725195611117973645089858671243638051432630887992562111633790112836498659676224721450153812164109992435430096239966605512519665001209926135808580923326584073438143292283194195454253673412708367966998861168711587326560728185734998504488598833595046876234147256318837118217004888431188472689410025094232929387291713899587408140478335008487946893629117432509093000661571077442922316669267321574240084838531360200277772424491281306675685351626995976397297053737033071987711458797173829225449533587097203731930028417971793793144537989698250724046839642224824061692204141977295672120680600099786509140196039850079795341636452303161422512752786428120590651390536925125976366712617868673962326416049292445238583898138224686276629702345355542966301271982789560214928824335114309813456396505013783688787700568441690014179415982682347489934145045103776876472831663584607923626540779839816424993766797782738640704894756074322510441443664758281737131190868217051920391766476580388737726801503564259748596385989315466720330971062428313905955974974796901400566889259028977533070612852232722009427108653681657792861449211458432140743847334639799563899220105879461085068172903858768045649002634327103491871772647456253471000395100989026667682514776986700160420075412636166911081499453653983329742763904129133965779357758226038696656151874726803560379560095630561471031657721204060398913233700231483299823629659916286292640990883772783988991665953400292434215312378730747791078220541794146107011565115774409981649386696753737304217432970004177074695252830907513834218129778405254305566868201323750714058526318044475827237599562991185331168743753600017849761566883091883645587733728883869395863903375169170141590057247363785094903281126772097085987664428777076684000478569448517469635911873150240963185739460381211238553338344055442948812831718399245446470830368076583164851886115432621440582635885670862383123095594187068850348880662862795417980292984949942722177636692621266416087188308154118357191628888041042498452632623046497436709134404396060934488593081840595076033672820521383551532422126770306727427953964619187697217816758010555107218495297688040184377896630056771557556707658540584512047603030095537529419055559223069342227553891595666117516705527521575988898815590127635659273139373266084784154952786281069995845337092771186664847963691489912246244890189675392238937269420281447587955488008193248106574776669349357328328100435904224563213020050616582532760567714610234274504705263752787272384415280562371645728995534807826067947330431172822970097471700689696308259075819475639367177636993956518239634566657113286630094792398533367147407424271734441875895818829286694562463931119617933360933553626554634355923316498421762875780830332495562157261493415968940636524371855125783666463893501685864015388130042795467162100175506272322559743077639556045844462677267295796374267817751534991878814468557723160889543699850911958876137035594076118564916335928596495704538675538381714111361895743471124810625225837486218421002688861445004231379474316751488192223393072392367200113021150204368898706176467290371248761786077286914403160203831389501790109806700251711976439208188943115562520199137746087652948146376712274576016004806573859975928235629845930014807829679146564753892763766343256931234577789538105644482586707681364501230902533078743822777442973666991095402356074466574503039841368511051721200119200443592794191248797031190069885254029127082340605659024797444357342452668254615743523032830192181384566634365495688673119579161551613008110943155517892700722257463992192551672830088752169974075920531205927121134887539463569170036016774952174103003183490189297519594708029052081920996987392303664285456227035918136214046036697919671289419892479711884388616943349204251233716974833167663458465268723486840827994626460158734182545183128456291113589791974528467805796521544449637975785416029420135994368399107349148747389036388945123923782792480701027648322861191811577371415021867057819910923816977508792595883534250732986535074833217664585749841221264248629130404563003809843177027403336685220480040893939243712463362573238634755924036166712378587540084093700818178963173802467687273462393223351631488746023479363175214992534274628183048323364108145409789840186363176831375923430309331944001122455570505935760290893341748700793168434574002008240365059905877981786571548341422039650777388822725558059578385300027808334724266716876657656416047205680139029340751924011354947121636174722095925360959020268455891667277317228097767561359069071782734640911585702401773928161623432086048894793395350909322615529517461579311834077609518624228953060149847769188012028622054049750778049196384998912718543836750361313192820818228665082761042589318691608684900132749998871728342235650311629994861883492530683370426169396988466254065146753552137747178747272615792814914494334918266185487021342460820637791566747987470589033798090173445498229437262080427880073504856107483251800984304394867824763215654354442025206885257864117956897776554288454002291643588323006898722727538525250030552365336058695817223736771129643652519478666804326465101605434243666423840714850469274064713709134214271789831686063023715665772092875126983408843561258691918515763113316879199789566604699940276082808095621036329585212787491288783491679102288705726566174376046391757030805264605442253825085137629470982782323889180881764598124191883417038640822908867352724259088434689264931034289013339282221733331492386068300731806374205348034070765366982513188361985293575990845554535504092481665224524392827552334115618014352317459476197931866218988351499208726775631563940802129107274464547073896208577064784216489318973193741943632252149851931144644875304806364777924299536943038796095264394074712699898955288534714045319120341311571751114726765717036026525620286233233979331797565392344482322070823627257377830307270787415244886613352261234446641300604896693314963766735369957761177494618029729257512997267825198045896370672055889047736411189371392768137133372473946934907098159807432892372444991414267399614754731625411121394480855224586081487508591771873021511673607716903087485335477106717710392901010234130401961002990868784719341823199986824564301918270978185873188671277720528467830979899210604770304095765217778174515264301338457066792311115393635228129066794710563447636863573614746465884169555314897668964917274272093439494963277084462340286913854960773624618266162089802255923264329066368190606962764892509597452395770158411137896121483720300032343071285780243317249938649847539591107998984171769804239195284563520481669524753591840023351642124014543814831184740142783209383719742528915657872272955642343894491807261347847021870581990884884902894105448330132350415519942659322286941861171506164982929024570768048287240254074527650773123811109560005795684691776271809042211464500187291945071858157084554819691547683866691947449466244573988004280206133521469311064127708327493918311585884774455134245864580524434509722385555138254911628693438128502095308757126879326750099745822097004262963070756296943579653866436968073091141039299827170279495679732893477100549145200812475687758174047810294915704054774987272953446561204110670099674588078798917206734006990794284146333040655925092187107357376771554742242043324702308070802538058950498643557027025340043497729316487926186352714774561856072909504996779351785746087463981450300392721329543358992476985611477562088649060999000993604313750037555444461978002528356510666231917704091925310677841421943200229677626050444521690842247277294341886050232444498832634093410023639598044952307767319725313634373146603003824523813126323306041829809184579574175743843979518474827869380913318412814462217271033854426539192666172498708627597740902060670460535691430366540622212650527087118860860501116307082513782655625625260005492575612860512277343199006730896031394932934005992073711881139952128936379322371289034881479669100241048510350091724649723446652262850361999414923669194390572876594279557975975479771917774701474094770610640052156233724050811426799119521164828289829730577381754415900212228800967849549961620990344546516608039757502833912578298034666811254247241719023387982625210095915684683183916680885840116327144165514349739219252742687714002303192171726152629130189455949441143245507087786579568062332652198480134223386117435061003578267159267029565039273998257875948950199304311842204332724697688093289952620728814379676240855103034297008343746487616571088626090031259845119044989788389266190968692746344167729142608024226498203172111681276675886152476188668134916387228331615554031888154781161304109360972650415916606336523335193246437113027548390350839985387372842559901635545209217502851818402529049492852995006047926149974533351469331906866023601343335857456297860114923920928537881727752880385961944832829123968977869101244694757469844390899882526582732591004428220519639954551103795952339994137142131971166607220418183008966326107584175502048392627632530484556567171098744557132616121170250500031856813400228271434863906775243869255553053379904357978914751687043473642715530792295878874813102635536996441695746329639202834293496936439644218293960815207387277550615894594817218633251453834408389357936686396004897200967238837520987041913591629527917792705354265192914341317483057233889240962372788905654095867239656058416954694026304618677428402764648716426209591340206207891593989364002839759093015325933280701454365100571265299380221946243582769029425226086377626193797834438166446521973419262843713430010922060081799047101941586967199403046732104949372699409785867579225892484316580443494689312877076396600720134998451539633496737415265736647354205142298289825574132364793151580749556789561495590446576220515044386820508615579288987266514006998201039459112473231772220776215931010853273518135634801585460264740650933433456768057587204296635750191679190421722445562639575883136468671738149125853245199259320601390364581477018454336284954747337306586827918705823263128838964716175518787914525817164693934352706326879136436308843666869872604688557041437032543188667075855745937371320913599418600951097372853775453536772078411117464535058579584841928330777694807886615189095691114716395263775967909574121250272698813229183599649759327150589523280942368033396946991963718753254776927712917466417118382111980278654313756055350126072356935405473777467566906735646531734590799718182390419842070720409817352085291013756951731066956761397977687890661836564359758623074987183438171496593535993648178988429857159187564892300354618898351711578365509059752652289742939267462635044878033218740745535167887894196042785066399648352441912533728013687382567504548072497956208246571748998648961572885042983249106905492854393371857932030819994508533191156540371768461032419802159227817586583528663491215560877306831903279898092593804214380994300799041957176334488490692048322005074859144862381038798726860287579764025772564615196299079022161757669037926842812376156841900524287902019651568547434854290451242194773303544226189495061377404626466993276337303503719175774771813644548816360749703520778123750561519377605591180907263988208101827910200730748409551909907777880808913333336440638020366227023498833032624703257377423555756103423654565894627806635420859746849457784518754680607427172889386493972543853923697283751150655339799004947504676132427156728827593989343485443986012046448800641260299975108698052120577005471339840145206494632401521040921536633475740187595820776844675669633471393853287818186833007297744663292191838516844056056536607129393122282804373675079942331199351776891658906909127371353872964576510761967489863343847257379661917569445322943784585060147148696257596192838229600464080727190964087866512944909341039232435219948482938773202597737142160722984386976510273085470571188954286505071660410821816950576954723190352150112294395732043112133841659167682644814395944749725048846967198344504738251339623388125215281671950423575805673030654695800772599605966656066471578985037212330943890660782187898560626450496899331127480152434682415255414031246139168635512924371836202386147877442756246466487422310890140747436577838217121201549503513344114176299044699653678838098327469478234514368191527800930451789357445928264057444763429113457852342911778024712327349020818159575365998029289563188563450097718574546055553262254937623021634155438883653033816375054268749340381761251837603633577880526802886798836996534553410953579031937726572815234354474509663581627525980090920060141706317934539385709256966262880160690170414438872751394596446083506993560804882112445011340231299428274389733373313793616176028730078622424167385818729971415244925701394280206128386752614842697621100616299325966594145265727946439308496897072945788401311141062846499109523163389436263269630369777414943318458909481995472230394350180119263464666168563907532020597874416911822233262022330046682862699566477396627412438832868153302322407356651540917471150312615994815907816949158582848530509559426662646767976198389755271066977969120574920285060087346197630716600001343562892583121788891609988929266027235402805011677895466546220316686067041656204709815897237409030876500247342159220487849352394346047522783909257359895493146342281301806732891828481945642586376212951984323152311407229412892547363661388128169157217186507596907014652196563716704677007779326731433043520374340802611952631839985769617853665828002459744060352189384094426327710631223625157736520463146663333918667409336589217142605608573869805113482310522466634651827775833935926216899273781637257190045775389679803278551213299077834085365291375774632575575344038355673164975609046075580487873285457615580565761467102497066135276294044148091389139379291703002340569977495282617797362279245567265082298942082842124520136587452426340815352870640493338166310801170022901634447283661194969977788228768165559757332589280726940343886545269580655752006456136654865095888730856543002172353690092137358747027704272725150890172557557692706189696294370683800464341660420181832528779536307018376817843895528344419632768888123009305698550539947958613807884982500204295788298714855655836346263006000179806289724530856600322130578755913760759990749409623137524301014732810237848205028943584167363623353824639426417810018881852872394651589248938078988157689053001054871745279780892774517731139327310085888945898357149194788329424838850588386044127219317292697558588521218279490026022108952893176434578673959868540507857545162997748313925036451701249507327957878869336213504327881141360433884169497102504314367467819893599350782501493944340452401381272644119526170935329189748514996239777657934398847177648993845672190220675840879940683807533048727657672072564614724068455479973530795790837042934954682160757131512611247002989518668014177152696650929241425784324363585728880652927858531036099471064225290061936526469634870888918359889094007727213591628520145328454345094289259578209365306181149897357324138824974884397052068018813808816304742776834863356136857489052090896641790468710559389224511006659827849720992202461017176232699063714327020409470993609466304753976849341649234333861219731926716453471680681357513389859549172195251409458113576176095090645722480530516546124157638040371567917240998682755502362241860319184407067032179485671881918483421181473745398043955028245151636801674388294904197118039903815536620499113102130156279154631643176219820177609824016021563694625543659442997715190423947445223087728059353996952089293646356193623763929107844867179737899785508385188065872685000439100868495672850024929634518539484285356425236238445983595365106147863175553344256528308127720818661532248155940749954858698829012338504982843175679838481740716256103284353053923890414901089415316184322463787627274542289691275879810122449401506962665839819737822832070685964779131036478129796531630472019803267419107450356378130893183475211363694908463675568787808504886540375293780374382010372111294521831784108559340151692058314179336977419246980499549329364365689272366538220079164017068800543189944626242589649284126746413028733271356220595673481446260577560356101619913089607683559391694296361422852443263831805313946273638343764254872296339208236433665154781446321677654585035116151481606748825596356845063107187493634959808728505112704619755021436463895522057983934314564735504594046397935559927586352550781121688639211445113053882689905827337692947513722812721820775577237473349143299962567705690557868582594334094154923142281849136153828169629225891221688708934868229052908724747803218507082433237173972022488597463391745208955412218824724355604959639641537268722278397498498167359074143660288808776120141324786416635191287501407310791030687418302706585606872395778516193448563462961944235992607638890081356854397842757004903814483397381587137293806989123617604344761398899536796928103259296845629886042348631611275969833682439631912779481514852092103053062565096947043227827344372237119050053087740182375900947735762775611242888324360639595854391244100148339381115248237354406767299036980298596308148401097364639458260823192998857587973947251877633545103224360306776972700259993989815993615966339757163034480204043859896531304096070671938827463696423684506415566106816124821382510168940467577365697038537464878531853805120830024388760802743038594587158157420886353402666050450822027586788933900744922254501583418725281362140118097484384089897584580039527414301471381258098515799752298271661618554044906625085748952507705656990830729623064376266362999058554037645478087219228983782472012121229672617197762291698374531275172786096211406355228643408807398194750072990232123768247659750414243451256551519217702769033301887865886548270024411835209505533411552282767125954540690505535069380928407828065371484354962563748718235574322940430710408081645709890207562196268927439845316824169773944651248631039393981249820517826615739290654543480912475645017434644608685999247689614793945979212804852891754733420628864578967683230154463790697044361098464329431762896440676414154892110798296305744546042187132571449489883914790122135070923456752642296349554260113940163800340127438982830551579064581256565074567537545828236061909669431168107560942846684880753069561606102140252807903325624508888114220214200887553190086477087143333791627197347348671138939173692863860202590002602652472398625845638275683724278179297768853590468347391851631604947260347767049655490874630989111456706338708071595731448619856839675296269089135689231248199601495102353960380669499080456438059977256081002374989264445292535861929514078794571552817576279761871289137630441168693475510491583859100122814275771931346497855004968060329435150508728045932280856704156069061798031501887561230307906338303919177692652546121246064502870171185779925400430489215475984017767435466611157605233918923923933846602829144375494967461474299447369586885845359031728558866101265278873267184252212466106092859705260311300197361395042058032233459519855464649619295564516666495847223003969856228637144154216437358625376612876701483646693291162621594515767473326198939943578460174547793442853017256985992334972701748798129484310378751685834321111880825285247274477140468523672591225857160883295617024998029820684239006402835332411748846178128006004817087893104882369530856794767849635703884381540127610375978192269762584816901560430843948548934053582422496915068195219940309903290856740423605007699810804989967217333549498128786820098669942897567333120355081769150634424967509553305259263708009382447849927768540244746297547377526561249461390339569898638687045681841241925355670380868385745922987603813106153422812393224037277633344010139198669187704426142169877777133758380608294393094470471180924753970148921803032033966617720824155572443323707810179322789338013052345097172327428800996693453536675634273037428470780011089395777007417501689771188815973362174388300275495512127407658053993127208736728393976452465667165238561236959368060572057527306260462130774285158525608327231839164100732356276295447799476764229270075557732641446521439191602905504856187798381488839116612850115517733166243314569641897903675721673342510729634365042066731189471025792342063437718615899266665843968937874426538992542243954956458343067648660083487457588620209033870417652957006039747737639136676064413878759301834229625778168530188184610979193146475075612531609081121541106516955170415045206066196307781536493171225933634153968567161311482352904757315304482986104804053345457396488804371243865174024412864644014765369266752841982825879145933339747419315380805433625615318400345533995666987794475472960138894038314818111792812278099885662465483396709103312179099316326281717528936735308592048505818567756421237480117105137650823046986401390206546835554828606234069006079227633582130989415147462571064129186545548360264759469311075708227091586485187130962299588519088060972473247257339046762373494546052779324303084800911374782280456213321393175053926915549602723806813627576768651564322330553657061402798220964762780520126260400578200524806578073381522693133378843935555901260465672265630961968598134059857239114425630271750125518732155794794665606493670213047236639967617654967096230397292377858503924616780404154548845395822777678057190072911396082180672247959057334850467782535017186955238649399276806699090628286601383617661186744028334677056606202002389761355347098392909868456746522734163938956616011936781702525240439918403494306973712169994949457650417587261850153402712137468867331271901883901189249488976257395106668556274357446196040694582416669487212526876955843295358723034997515113366629936399713132438664272921951428363083031186418454134193014421609870046064024515272050836682148864850867047445340596262377317088692391008666091599047546583083597224487094863196882244328971904126121946523668459553399956217220052149054032661392956450046513784050041274532143556666072808713144558498434557747945030320689759613134219143304515745560417191815423391610797605535128115876516634200951157594587783305576996367481459021341478684307759995934030636617801593054848455486604005489445679618172547899607743364476685957600172479020410469148419236540122674859993196982972694704419167213159109832006782950967871857756327338698762538849461494988935660878020977299088167158878176480673559288672158686759901193101770904639729110220365054926134322313659117907107977738510379120164386491076309684473827720310596889320904598615092834676931378886732454544072987349799066025694319552742207223039120018002532666264709746914813662863217759786080815598296074756927404628545750144932324797772524254931519762359075804489669295049188646678794790769962107448878895129947633163743410927220438341872897415798668178849305026917997632907476405570140076817007361213039828053493636018896999633108383471813081841138529697419078589849687490419642031213166434652469909918969158595638499175047052490271610004035483127354893736538216038794929479944379759813471117593632532989531743690539420781530403970872074589806930623631472863226665318899842149720768954330670937597925169744565764551710095473080484647278096802291525557762848922694645324796257171512747419206197073198880764409993354316993476049444971210346669272602152232610579749764650556199140563949369619203016176032892535494711313556345139418983888562912733456571512455290189942521619060994859572748138422231041731529118018550840103789596625708926496090006749730324471049672310243371987694373315877104108358643774872189785181760418651055482236517378554425329198860821280093150799360011546285107022933186917236033516144985419407899199263576333163067620780375484684301548599212760462571774511830669991861950196723262846124471742823230980868476760528049030713266493673008314068699785765328099593720156179261739775037271846625083641204032566447186164383271568335964539185778099865771973884714723715882951444925831936981558270360114199188164236179512996715763263724877704885826431423406993344921445537416765416074745223826124826336285620285547591085718376855944268311849037358863235384798187926622449055315931112249369883128488688829384559842838781766451309516243693444767741503925879703978839077468667196390412549762728563312040694639392237113900481395776102886256776047726747245958603223473481189226206768286190313076384540681964161305657022774552057285907040610580226634899287716357322164203966382765133580597863598287857501826777223559084588739117457357268426185130660165073133852992227717877220548310421105057004429077253221700864673120493542197686283255294061959333100372891271299426399306474387722322326816472536146256629342141918177278779961899695166123439016194845109571579885001693054549688924094448470548761696321801350554514711393409643567512658889798951528334861769171876850290158246247611850637405820972839064077849678039904827935835355563238194017673239129369221589897145082505972269205058908428750129475423140271513118598785220937076352531248055270611971830757072158523927829443258968673046282475964517806610078214071113759571161604912711254078490295725963699019304962559433539179332661073522577422685894427404910505430092257177506873244256686454603437715079697717273877510905727828844843654684772072224755245271658626930183754562300276433949819386195720587450434088519491786821630213323187686176775561747283134253820478573329407667530707910420464749738367082005480327561436664794920279249521366850282183343340610824994728654438903702585888102975780832912329711711351587851633451987992767858509740617122811415805800135609246395548981393858608537701360021775177776841584892671689282866213531296124981400975174224032070132737240397296297809165135056428328898398720661804009595069861517752651775056373984856710837038291061287066849958865255467982425367894365646613496533641971052863669444776604543696491843625059917747516839822783016462388101374023489283764069305680597650312612105800859945926612036220540023360587006521603254477394926008764308389968042763109491860632547683100766262396704244167026880393099850232162487883286933764636464150355763140898625043516243499739178413467780202767181636354295425462317315833542898733087434560671382238169007954314233279144378112977634575126972331575010219010372171847464865894184700875481513144749629049416267233912076500897898456552287273308225116958748871575661555566545713614094762101324157909420782211898317757474076472381225095858529800932318137474660261147794429241192145924868385733428678804050925697729452556430984103118038057829181157485687874086819342971215729232445431237592946607079949421775930101651166229814979112894695854617632317714688389272787840909186160458976798925262801060647807171854012400380400830147310833699456006163987895950207485984519097805828819637838174084195538678290955097209222882207762912740571258588601467026694672717092832170811534670829312631933432218796759707142342975679539183901193621110478999938185202547769106590038830677113069203731392762332010398649544121248575263863890859482359928354582431657842028497332480201539126185643755111796605929385918367515646207497960964494463079194593208639407778451248818249524641806781536629772714922270242069089760532834781261806040965589788816154631302751702988603305490210811199955176450066788918096312650703886344531636063891151547918192605561487430212690412082244647562601049414824448854437782098895647759984893437030927908676991130236800751980132412347487404251283637692249909480846240048219818409571584309836550172684174909181522785751627229983419791973101164493978533192511148276366307080636660951727672945248517096316015283778440194548576640284930419170114002186504908075836620439965796587258469807149777317943294474392914971524732313689019809103083135922503489656274460072116425581073725503795573912440170760441903592434224102214856871502804037436909734585769619526639326256880526748676129996808485765597444585929497217782780828819847949630336901084708232153096358593110773620418439324001967922396701859241514888018306962932377602699847997466293534306167389235289614397507655973645528515139029551751210103727025099862337112161568740270708708804411456939416937953885029266042710839820401893103190235105013979978473507195169782209057797624796152275742062542398662227754327190671710754272800327385909209825751255220715582298984540713170826294625755227192723933562157789405028989275796438793550618185493028010435911626289550660839450483873435146946948648611109574561338246302943594380115731936412730884253135285422255596420715513361871208708728969749617324302046859283768383274410029112405517017397000271191926970536377150168017954101667722752052895648948099530455458373090209377417787218034765752077107567358243478473971769269305592130149827551138018877010220004141370545042157034016417946979503397861818534821089752055980060725706683598090015159608775130434334714068409421621799243564687341868874862283043926345121699852428636558665737285776250515623949372219536301964682640296368308752946990931228467755499548851004784165739067826595075000212432646659011726410060760720028154607696463195551676890341350999785141605594557795577740541605810670162796002918707790645396184292433982852136450779447586824406951226909806670731766338863588049599051044046791728949293706690634029045499216878622864939502866183735276213384219920103827480218334596246595390049432177585461977253571798906180816611676727171594680233144313542896621399780924776565641154933344722258983465324069742682297714830617214196839797280297957297833951628734594529431837255192334419271348045598334241754940859228252368913178348079326918970888352081730286494889943536587959230803074419666395633918115186273494859022444308061296403292619357067828695021391757233295283322883956721596786618761843443177531825009901966105980170403015501221480473619176616504336564234809259734357803029848856778808163411445600321590526713337310738633084055470410187628829793770729966615894589138642998935389444755154289606018485873758045069373279492921500756795045089276757845577110460216011216551572319996111156836138775005872297759283034877597777005190041413041846630106938257649210364279032984210252337495157605134498402242511485296484031872708284561699838638485466308644101608891226496626982263625011821950497971837287742502306722045933128094987178303789908235615107975253403343676228117920684958583532479311260418114857931534770601648944407264099697906543299125095544167824211549346924320088611550442029821831072632623386648103919625586998060558362275843339429305548702795740723099928302296190070797912021589946174658510125219835322120534205692311857827710860867119279720769336968105263899161569724386493457620952587013431121231773149528809055224443159910039602626234669321646927518783904633820377810962954337624064614095560090313359351295670109485523149475610719411561850575257943789530644214636376254669408014182691829644224514590401425582656359929910121788297388092410885887928217490808800582894034828049485811082712670440008007117427799301801393336110568147786397841334395393204113254101884682563308976223564350542265418905995602199427263467333584356866168181624699799740135709979001698038713760480926167726482122039188704966684926537812438942268925807323427600048956967413808397040115499281327469602089672208667965743579485768003461688066393297504351892534659289217850576173728529480204844387147499866588469261087065966284561962285114062655238782695185723926487985158502850248320679702849847829285713593991192882277866858773380047737711230810870518806458974123564413006470425930491528303954961972533968033209867514046302978110790850654197706160097069765407836484622600673928042054751531049159933471773180015156360810490877387773468523073120523475603653569755386829218647137431644240321334633305120189104022566289227822604637377876007708003633574550736180475675359512695852174682383445644673621921279727760546413265858061073004834080071243842687898267068806546550031689827633027525052569894175354419714229467463480752989392993657810082670004601067404864833140333065013951842922077483069113428283358005274920402492166137468714935742998407797411520727591331845864302306181472886372309029415385649170192214651605712495671221776203896455560183443077120853953523515241147551960830816429211714782125964075131924004923489989314402673574854596436875226351997831156966248298650699164525414809728965701934502292128772509420781989784433810132806939552214776963827345449997771951026246900988196196397413794498981310323192970456459166494819089235096949196233774074343965010204955413092909354185817188954241429020018409675914938842581060421629246602876532227012253114526000825469378120601839971086705698840153868100612063389572291317219144983645090535485206460044706605849380436634347524178087746108952355260084481136072070603793486145123651310384293242053839819009083514070596586330859513142574200039249760254082868362717514273752237418108618225939027547010367332234608712820790758427363769799830787509447810855579411965391858864220751555410549423823066757320581842108696330409024442469575242351330428980244989768567461922935821272276627971190784104052141802894864032159034047674517738386710279868748875128827462277250961099268763627703917264256219647688628906699241379910703991124283117578586831144760641182813258687633966598412474697955802408271435159752206692104674169747532817268505043404518056449051629460417101784745161327796459302764962889524490928908910874257492064924806987170332462912924134525990284247005826450348423706221445595719375402516624044520008723268327322574064645239500435361469065207475064495209515681913250205177562643760150953734997408990670430942437066911433849323893731137505818803650228806255941268123818799067671578240010112281234389425221468409427866582912821372493517781870042414636689526184028179194243308909604270131643806157102222165219323547941166657022381226850232325271288182774077492601238242175245392552458497712085143370744849748771826528739223120474413945183063192238056055117191449346730961489529563458338788536028403446208304410367673880207318322987907986773735029741547395904411856566584862057505331083956843384786667748377359237903368266100020011886675777316864214448296002181665804630340547437172339792619348649252203785473410075320396824058449444582544271930927338048437140186816529926103466478001968846274401681619436611209298229059888613770505089061905535732888212321991722353871434115133349254471654348423031829958830787342423453482423646306535862721495033202327729760800701457408924100218791431079127538555385627970780173338384002825203400348876445815191313990461302868155644456213284856507922389493298316925226236162662698988961285708418890528387409216223719189192880044071818036220349425100953593042864409421684311334250211708325776181900007815153293238949757796731581153804934022463472954105863871234346427952933954240272357384076374336268256164422199109755047988761352376113221138296103817660822013804599922945598226062076039258706716711266642760427518253019699858880184846048600612248832065339038977912204940499288885448121881032266826201137694677067900086096195428659477738482790271516179334649117146537054616912018738842800519420403771772566003974999191456083652782717487991274195307164178846355029631702221788560461974483137132820684377345781806740624178340311629531035223077527050524416222397392290334410358055773065450822002933449605308716820504861987592555358987555490447796251451431480871095205740462863992094216493566579529334844031167492255198856571234328896173337903097631258737171720344081844123504903342253435243306046818166188102772347112318769002271157805396429375525547356735122674581988310573870931380930191073728723465475568143846578436076207932802702850798332175578955577560806697743302054940787282913190481724469573048319142129271697139402762946900507783100701190225014565364162774105498328389699446176272316382391524852495572908238309482465789689066953989383350269654147852564867908464404277793516000907950253513181729389516072201743772344592540811120462967410754698949525083757125555701237274168698671984788837242393845335797902152544297242593183890887337864483535978567541458903555363276720642665764048104315422958880152334519302962647318301959316940313030420418911183169045247869963925308346374649063325713278865254355762275117653118026019264868299793900469222939929502997585368844884961602117485042996553149577296665531109585846418852532815729709300447885636102693401787956264579098580798124421595703150402924858676059802298382942060014963202184690202418688776419054752167437003866263120080126191534455892910142800213024805290703963732340901662610645200098859508746999154276595743494194611400045076245293050103793405265753466393689240135675284575730697701383482865136772771293491658142444037110688423508388683997401845978053363312206105300543910902913785887108787644240483316316968183236861835793162099677943613250934450622403891266138656534256883736989698976855826631582924754856022335373590841715225176326871155258616936969498831139810332941983769621913735464907679654934509996200223945414504534117961822776233280990969336655387529998425857284843074803031458698690880363866075507570807078357801772102475274586275593722043892411783384632041951046741999195120530311914661379178959235044155594353004045721016898733149658438486916038704190251554380210067205715771580676478519324416272747550971822307962209784434572615356484218183300938276533061899165483023596480495565564029463416558072148040994726218653861214652082193486593386340607588735680424083695668133092888701827080200735700416061512669901171001674292299269228684253644393854149742036548048048679013593313755312833545756201682036540765148204089267808708526961397237893659692891361205558105203246169712050042958265926023061592618435324803041323651982262937260357468214103999498129402960736356104085823037257632333573237987503496066818959426283421357518403458844448646150018846119312584891672769604040581791857763252552720908073487203015794520331496845679026276585748516852726940001391555789060471610415750553726514361737970336001813142819870619069775410826163740561187051431850879540079091509487258041284195379675198625088233554921577999593264623442693039004216693312758867307151685221599517917218294307918701436420828674148616486110128049941127658673393379287574176214458282141405802960083643297632206795022200404764156130756347376642179135885501673208612703618521747738534165842462915979907577692713646354937192940303843114016192952208190347904522516226714251431718915251468229833290636353921787785900732430020373555812100958507391398971683703199508181093028307765834558558198519381723046705356122478237851906889050239020453284324120391503300382825276347366586969218780613147004074745287040741938062150887483141608256586278728951096296160199812813766910366775143101152345552914970632345042685850865508619276350389569123761033944561352323656564965554518277167190611482134872293826729762334240185341774824690859052941575223340295849128343454656391838781159795757519320833430235110161012266147594656345338687552171255213844141679885285250669420827565942823053477553289166806070773588947478364376811019552706695793836990775301500177745662618543335004947579218607344740659669229640919002696965507562855726366595947921920274160968547770739765555929484515347877835677924941848368801469921060888620933979226640891343122839689068435927687364347884390933964807018856166516141348150704809050591759502152914270048410817126186960773086427498768264109824871358756857211307477248011432323503946758381279169818266160335334025624106543120409254075989066696149533106746990268403930631428127497804491995526083246817646242240921319202257455688027653363422978873100119683222570762940179957149692775903200760162783673844599477362646986006354162871102957297022705497239860442027898430927955716556538102030631687046685996622856621050731303872925789680933313439875863262663013428684587014185455537106771236614436333043469244415394088128967147502128359126320347313661974171454658356631607070421238462237150401251560746918047925981896479312224883987831698685174816625045272275931118151635492913338317987436368709645738679102614511613016298952799315342318188014494111062639627642831586411609845973528685234795928071433637822258541981890063533604907028009959574836919536296183141687012647581854526680293196543537113628150973776710581264190437260613727618743247855428153765164159597696156756970216496213627850418227475716374090104284871815905594418440561818667451650151816901146056000561197588155342880399193411046365665102696062328795487706030983307013543399959171125385966171115832540473007793012457962617361211587937532101721707144656888590839695661535110848712943350251413317302072470418557541379702120814944033231456571126639084887431271746325229835829592666585851920973810524187326355107183611553862867333298722389736914361451907969115829834510631625239280259858449653963630058924261632574579387096160628583301098071407785045608107738580006077839203890898758590934411407300775071374766161479539267059002867418784326822137519454762810274318177356142652817726882277063211263148385828087044818683957908136237238667749271337769675459962254426128580780263426015262123699610442627879738419751059571629723442181165798944394817902540939053385297120212125189758817788299172742052637076580837511488127419599771368740434167784486489711593566153745903914262238264334546515681587062830248784961325915782707186894595964125196362904175398289749693292757057904006442942717159216096484648604701951431690920711607954244733912167211894151016565663912587691537833748387510845780908612508829857529985729876462358322937472299062887592884272455775522065547742776209990325775545993690735071221843520584969173209882491889522986466365412919465520102628155793001836509327506320527024393139683776012354187627765355750810625853139704543760460037623993567117334540827075265526301488042684732633080779948876467372463199987997070978012438044280503290413362310965780899427756007243753351124928362085161002916748482631779251565823016745541249672955586187321264769153124537609485651817859192265122219510504137497669868623726771400941506192615399806605485414121728102428533301194177972144539953765878076272490451992006597215159311799883816747561261578548691119174149462110490423029961758843580183298556765239626483387743085870936382857521928277352423215632216965016794144303954375406232190200441131694316873329089212075119194429223953987145363901366311438744903775435604189477935697435129742076991403213832345126829015526385864741980616448217757879529402313650884643019033211950230769670503119457037388621739442047154564947046870777035497204138964428607618462818482265965320584776099991631950460400299487980576788033946829055116674026779104503050340086464636335804385251170992894283984025912084854781114026204984223021466013443350395822506353883558074164734096853935182863694368169584657799722433116129242612911426530155850567524787532362097176200424582976949323480750209636361052925802927986268242781569480916931831510355535658246149267240906433437692570079908923384640331643456775138008826773071403763017429133385473567896190337770613327112886717982294702505707087210063673492405717209376524074069823888409249655030167875271892949650112158849948055684851537981771433033561999173123393385056465477980930769764742957652670390413420126119261175661049872356792331607348764493475130560618208616052546259849551210532801450911152845123088203943791350755393214820920786055475480554029172652591623187359016827785645857148488044965844847793534293755441691431375973430047736253054401682141666649063679573343958369379439411065762312341128273305988596304489182682431719730141009253593056864338324223587883810679813877570275273370450091880494729400473978573033487944220382672149264031177098712556044657862461481379378561650078490427384313411434923953553870234907208113816828544719068902687777810363528511917671011753793191374788870404438548673246775657521352087846682180712435308849322229636252691094244303351845131393844388673732549973538116150066410586121686970668890181414400039547588258489210515344830130512802862148276849157613830903107914620247272754415784251981182703599204151517848077998030514684739057671851895918728285823077556029694448348699811815476058450853041687229170979103420476717589978970148352890147180277216176160702794589289379435218765874215542088808546745859669384515097823717064710536349050131118179395200923392752150293231864697504002700024236599676323042415348592360582164221381876715191465388891657465748086134117690311079372069644838669965733843874524506444739548925203907853086673444096950235841252329126479781194472848483100058415110206404280210485607703988652015827799714445737113037887765185920273715849645917799937897802998743476181553004479672197008329273554249064723919213832461774454664171487499205520363264022599900870132867249769095766351024836245929262745890143611818268661198454783154271925686117931298228597102967712752102245324408631700622900753277811814890039267731994904014320197682384398052110387185564102557773142501491648462456518379535056647520767401311569051068511303127495713576750593536485297999747943413940828505035203292601458302793812902662675418970745659185213531502752128896523349238657137001965034181188402335989025501837641650391182406188935988231388066676934486589363810454585995233027389369806432299269841442936147892430504255330405072181635034968584005760746118377968733616486154671732943799993339666421114228820885271593485027980185079965566262741785637050562896630046707657393084693286723312561222006257456010717154975352394827665897798288059624464815953112154635943788953399392975673917505957181402193288184685807562375189409551905289300768091959579034988210260882458198256555503098157587809488224681525712937488449377836471334555045430978615092408418903461249682950436909824457368328788885024149806251028256226450980085802013619256419853678852539092509648743461796157230611866442792956994220841727434593322610424776259500347438131572220577088812485371779025719423089745896033409538890744061260969473450092740072836806738943002244910770913671440413585357462476049505591292177143648992209273845417231793437237206140141489509657172030231274670322122731929740384902406224068079712028360549893530088449198359528643586825391603056830286673265725885497423104762974260112230632618950182519734311541955866551502547244002353363372957514924427802451924733761805909841617406322147525950923339727157578280174092914136813921303022035738383777590807313794225804580491074269209772882035201478443478901120406370472315480436718506082231972847177790090875345388572919447787147599905838500432129932338836027372360980536019914241956139908493181699096278569483593417120151671980930726112160638733833260985206413070493358052215087071563928792024410500315620282794680442016185112174344199373064485533686704591890323844240136302303927565971854910493268143122199725530517854487140296278615673034810187314198536814843367268746631294244564438305967109835909951763556338078560002633914612050436892476663741657806603964687524012860779053290435777734281510916363432228987194793872095949787400482091192028248797550317023243922907714980157482449858382809334885207971799624310030052624698714438751566093342388521852234875651190373618063698851020901712586708207637440378445488870203766023067335547718963868222859340704574224477473946062735624120459899454542265118224792377042293061630050075745027412031135163174731100803620254278939691448105388848875462142130838143190798055207458615374390421756167516369816744125037348787173418778986819777137101059840996550697568038585782385660607159064490356790509933431563772458776832333726966976067561876448198452200499133162047276937647480988504708225619799731639835219611953894221567870008261471111569940742177562861563694132738719916577951530518473553996305175572389832679929085989287127340267246269177359219373114648110534332968646429062077152932178033341877437780321002606311825799236345826117084151255495641736028835710112624295332051973193519510020766670174747050584465202263175722332729787738887142096387141444857585648170030338830097056881786873394607080438145990497964481027486696495972084943885389526214103820794291696919069601912132539531484306750033611100627887562660876552419583669423262531105664809240614676856782127499351386538263863790879971356013588345998275165605818293124386585825807992185479791625235028243100016785832070372289840184164714188990468674238983021577123858503875756424823957014434799918848986169196638035790491500624647164392971032094231639875208591219695736630433404765023297111431713876574860533965166683661648187866469505546599043426517827569641643357696072163132657230829384005876596989393835694032997855660642100513363547031306815362829770497597014172270758462117163039662978368957140676822251573748608813481939070324896022951633700539032043650953447588949556200495070783912059989677111973900842258464655663240838489887249183570145624923971250325627187068582288757732595526438860669417218666276275725866455906888092807580401813181819003599541686020060272869209467595416663006931572285978118498780102573238811812248981341622450469810483696499868086502622225078496075266493708186187400262651066856751778050172182600616812787294448972457901482125171734692698809200679234256154066819161001098087655723612112483278877582906802450123135257416650882162119917337956557814139062929192748127340574263103507606724354075405335702639313108522875463632555001882218053600850054996874308637564264081222861889489067834517406686084465105480726316311823872966097531790159845838557101386041576139077654398802250178773201226367941181850068851141213333579206359095871946681146331382809277158768789877793531446143675617349528441511152647344533181032966241293601333105061798999944877037520548944693762696700800091764775299070001793013662942008524914636326722860718445855994794330743540911438207038519601007888673529520983312487726479505175452928821816409334784588829335398977744870900320303763631776832879291967300761046924844120854301392960016907872328922537720505545291536978845827887072763904478444705691307075997885852359596240900147232831550093679712366764501244742796724447250131278392754757383150084537687928620557962976209373436754013622400372808404508532080245438753139436585834364107287276284160457400247175393136271539905226864035678502577911329654769191989643187246388739076941308763654702118347938865035052918544610849134803022564637540645316254741211669263091015124977996061480900311195940671595770837510425040072106801185685156897766900718482023791505226118617849744242543343000868902150938337719649574496539323389132197269342739199442396784500373602101636562051651569396267051691606920979092594711404379711833090977883482066949199930976494375719899982668391355041257433231594563952250530093935247857570892597150208131342790445777101919188733855657383989266540189727244228071126632692056632376238111847922104025934461608920760507070463895436281935761344453460266474644964290022113932926139868484419559080744440804861337579401940297594491424753237400517658816777886607922006142636427837301459102296972133265515688344983604476123730066005493023580960151632618767693714079081820366377985601585094496748623866885657885614607731190083429179117273635523587393972813895996345069632602694721870058825608342388776451041258789653994656169942330968535289005710473733436978965448150386897296100483496343820705631622979723536288918007080013963641093658508771972782902758255808807385665190591629754085879238266626647487474303360526364904965190024524853306729554377426514368062078425823804436464207449177115765485057041284181387543766785785823102286615156083084048001718293802882951758736743241970902905473998094509731099454891654213573699466535299926701431594042780580695787196652291867476506116304475970560449912692330678410028770948956377220912945454150821449786752141646565660831035572763307466860770628127923732162820425589911369381638588842937005620492465554910730216402098644521292013921416400368258136862095804402954144475230550834551063730818667188657673267562028325874145979059772604045684413227630673823954757869482921619152832921128601527285544106360406934846995942241885472572014505920686752503555151875097561893634954065236795965382609258263775876475253695878585168405512573379715762092091088297603491441967016549220076842289922077948022226520197891730158825354344048072509670595334809886343129626375471205159341821276497699542170435853488002852682862145759671517937268919994592531135816967067178982595632182362462247815957434173038885615480661434199146680577446389360610051040359001882110348249808910973879557960273591610241349396171318564767642508879775198043775213165139577933945068279910467365025973597669586384833764078416149354645191764639521101938032738545030979812250045968091382438003470344917822592927040875411517231067039788847381043998485779252787151074047739599155588271937858094747514514352434997057707920816282046540932237926203052374303185164238977273692530848742230015617502362779013086817848535569134867759336775460863131878807457118153869254538388734406879342628357215060379826301722277866872269977757340498905729237597107575685528962319747472141479714215627197714398523924198046198835726302854594266155647003212226301497187814549779497698868712142623428931701359560168541318890382811204995054215090712066695700950227442151320398994214437316322081885300838877955502532870238535515566841200408101575411999757167577214870107404132429497729684231486201497097125503585254878226522387352399112439327102077737979654989236047128675073269090405378158844654968442130480496021456660201825083411897316595073376330443794824990184326952377490202091671124071451730850727259164465246790386992979039786411557385396836086034558881966836039754805316547137785946557458028629600476902002554931019707047826110022723719947022100124932582800171394710315230004208287896737370362934207677515606309937884513165462488286026060019614377867795179311081853828698948610421518780260434772753743933177513993850721814717544419930632864607898689107139741646679699234025027861251026546409383049392822240342663450472736997528249148429575500699262633722287016282439123617228566016019663870933029239390912790859779587069725685849382431658765703913132132570149609866883503798245821435909076306073850171723571447455135000194124436298209550282613411118375964936664946319798393059087080616297226779245202568441898551924654569966140840016940369836611930430885394964116010350934201088751395580315906748730868654816547144336407804905594963158675105784258975279973087568946845001691654729201745399316274272926579100736719467066871125897301084390544638837084720963644586782946867784324965860533427201222835497053400793637169815810389194511343446277403211150997011614619582096490337175898005203414932955275947026499841911939072021322835587776024046226804976574190148502409783370692780193719409402090743755005070375835158059357995367959130771580833823235209453228176749472061464317426054932439127402638643246476184013785143947642886434874344405650771239993771200095182053149087110974169907245776493380143632730269913972924281018363636196227445752467281682202736679424165637697152239650031852896872042816331308922665710622079910819962565613475445173216304612678149557154015594680055200480935868199493978636808479452781948294847369708118140765403043108462715919314246092386551020248359284031980135326264844040940467508207398539190451549472961279360527940191428107465614435384807977371060045828449325390579636819574007682129194602069682015966089293092998125733850939226108090325016574301506877086045871796072109327709663894188458348076224205954621737899312109547075346431876881980232565843370560976387583682356663402547755063095615767368624278568090857708843322143372458006979146967879680651983068064236882432914494967609132869616603236138235868482688302493925823807446264582229496601161011228861867122050862277486121902789587393279288314143325322785202760389055710268731269052944885402765894611731872907166057510559810598267735880003126775290670053923222595192084043490527303110519967231040671532678690735443592227550567379895261344267482963251546234129652431708978095990382652080763041979580902926679629788631304512734342787069546185008893261521227601058712345345599416198356461491791204470655489949513211740713623717839343948817860715987259314426492906057068193908683414878542422579611838726857431666385560344433882010416991481122145633492799320597417036763537254201307965106159710248899404997095754495615682306154917168334811281297431584845700187922613626460901695922365278860363143316497530440340338261652979943625608379266983603110890270049132658994510728166536572242547056868093201226533527966882468441491692901308666530300242442047993086684457996632777766173046250816247444625663967339229231294790219413226872858738666515785110776963781960847068503573859758876604132140399533548783682597760760446857649604308987832947713459045535680751768540449112217346840550594729848862082661653010733988700172057945910822908106343821352908726183016149141440335187362537839982061095542414507758968047077523318854892888628572056227539494938939466548370131117598784290721609673566859450819067590432399439921018398128902427743963374135993127091558394949680100320801244954190881108614154110650267602665574047308699922582885621911359081156789581414759099573921647246855122671238729629329275412605662382912942528241459506508681741579758110170987445358962369922816835614425989767727118484351266835174993862828173928207222200789851341706243337976749644383619891017187870581610022613410989114023428414803188270798616453710739903293099511351690252321538671446551314733342046062705307776013389859010622671097743058238581198213627053245177202871141371832446534333527009334795538184425427806780332634397108435243553474195396720618717293797541724151138326911698239308986714085151632549256834509005440536739236504323020620675102165701599868609238160259028388117387945374063125106759785813457330961608425986654123953069135093943703602152632263369821722074848170477403872404856130288719413421066874189426295252853492824448762305257915729913331853816351099921097591560465718342722906368396623355227761057509751183090963939251113463593299149261783604257150947308915892817646781399227857741478851764540115470581623668853735932300294620031235663046720853599890338944522298622543598465046213174915092141434894628275271818287463628244311591564269205177623399735321930805947260076951332134201359783943646342772925520551130191549022748682414402411132348354775690127934244100451500006873736296182301916864617252896677686802823746093369192650815027960848716683710087000747751799217432757324384878587171656050990741704043172740811880725027451131210115099198461874514179220849362613043982832846804580532515486233232918102600863134776910376709263519735261732504295413144800401468576286523955573640650624439144635244135430137577224465080850692431434719074940076165403488128858721933633607042869541651859276093345819186997341606617485135000403674344065592736112911268128667347027075942388351688757029817163031516937407105864767184199798104567305934037356232310543035958571775942580361264004968195203575087428057679407276251064431491607390432639031797391801931667922445636905591922787934033449028504855873911678993249930804556527741428780405976560014806467812667207884748375606001486762944973264233532181064438207139612793120052200826815385126466379442485219184552649641640843610642018721239795727490074678923594887782566448529188532387121043256320176617138318532810656508494065696747403332621720625721792787887963908762717432704529522099354130878957672527642064248649140659554443613499540149661567462793319404838039051696728952562625361988503261514575589644439498393646991784758122765616452398665322166844121390268662728553092410636251122254942838153077815831189073773138607020224228592314858746929116780063914229030415470906433194695629665903060149199997105734902147696397274528385550039859675523866434050088944550031710050780684269536291860912551556487087867376401848324355407905188637372446424567500929752869232686771201672393484495299735307393411087602143414850000980730504956106921159076179789872232094704722900979504850474359687230905686904000415137282696783538782264345383764670150410623403994902804844650303813059048669818287128432616174109640068498988598980322148529978898922727054371462961935879350898000778204210329640454255748670660701596323673736804854364067429960223561242407352503637175300562256683997599691027363535206553866631769348089772875493678870388986687755022913615371946444952008386800693425550284533637428578484640213552889223584843898448554449364045057122266909402018323185339768326898757202808761267583233233959113953118282064387443291694692740945104870439488233777421062484000104169954363312988509297342904140007148063670381422412107289962271778895350553277580443570435738379110885573206173980496888042608454458268352226644842817211212907984243605752831668479691005593947062528771462180557061739071996124069817543992784732143649809980614968601435915022943582684282799585341595047689226760839869407464854358779182713231963891220484193116917085773890154700275897788702165630855985583258521068671628055174129336577952369041019858733537523379014204444850297077093676949453753281253225502483081480807823298009169809678260753278383809267916546319937149534919083633448292059705753045438991014235902327068348550068032188720786214572642425162786300903640030746608774907184127656511162283697873703051234171437929500117174600864381290684509759377621733214599339661276011800827498186030618639325240621872528858049905346635642592447458234225968234513629954183841546560079553566546625106267732249359919743238529523260154150873460493990417811412956065815276602413714894459481711140638362226081453404625496156738208714370956265646970110464604640402630625914450686739716703356864134292842522099392149519155373365596032555158780015764878981020091385260151971868058364909402676817425387184679571443149393226326400805486753381701249460788242316382080519902261809197741732362277385787235406494629583245850363243277250692812924670536253408228192486274858407258175048653897311078727046282426996339249822759072756977029485238724528523215900106394571260190697937012537939955546020895278751442056905737176192553571984795773024918766451404097116734815504545983364045148262886784832069582527363583186066275610836527304684560794542622141875192482188119739242940989341925049768839318197052167634124618126230260694890960298654622963872474626134115095919338685911441184697597959070970143130267042374409632223144358420506861836232440014295328789228913876555036177675594597708622250134970612723950568324664964537350201396088747825101243189220234022430083855088967380906254908313797256932345258422149906654369183305018611151628154385358300472105713471594707608598368604601718358191582054437691032719765791663252470874503040878978883152185013198216451378361751508171495744836703543545232416061559529386031684483103647086285742857112762757835873364141127292457789464155468355654301102996224461372881899464824439510408065007117379361925965167075217420365768009485855368995052354637962766925655868116859149936567187049698245493830939574961734082542708053905645869659528734533290969188363408459851167066563250846119153371987262556300538710981323199223495093205541605968818295150590375466963401287734062571954444440150373459609458853565535620552388356511168320455351906022977368390726844901017948905766128855130203682803598464667455665301579315543516881955645539655506505427716555502395852034845240686201359033565645379585971488516121056799993841741898081690761302061920864112028574060024153985876853029201451428363824226348395710450547672534617254249268365033210080726734319807132234952846261186430737639343317378862058748176697385632438553404734677824282643852887553858939379828227688037957645209811900648050010428260677105988958135043516427490764411474002740279694809248267674694543330102175025216085080260555166163381992619284503280545982973970037392077913555958824803380393065474834302023407904551844604133796198832216023636127114579726082190373869101511447415802331644515845848776865754830199564222915797499398984168142264275454384248081513530047815920493795198940280432292276422807373338129338343910728533289386349938934041214281282716029078063567719265723720580487188417411561737451012749350409955904144136343217468677236218220924789930775149264790697715894811226489396120927402982858062875716041180058440115127280035753193950734392682283423955253957921649665564860149987440679656436109556557053795833435522720612140063521322287177099087979834939493775450152634310262865114126991171068517079394643342447059040941004434464605619759811378843619261640061603866364807519114603406344754651079736461670074948590380127608250421614093915436153033954321423893988565856686290651508689875132508885753982392545450917902637919923305781941321452310043717930126635511012470745088029666920340680596261696493857970923091249945540957433425663099949106567088721616714988153789469245495408076025579517713796957463432113157155214981671521720778575568056644333225538147003710507648475299685905340663386594467755597727620731127656027003843208831865687253850868370190162164878998618183350022992621880473354078096288597696063627483920738958099512096906935908949863505910852804073047463527115968424520007275163691190729623629183737700770561686018336540997466649820758118805879273552903626493630543496807532870054253067220958039749167603482672967799763368432204448244198222897441305942654607073949944008528158549135085533272166087384655689672978312506050398082668883497552955001109966924810105732212938602294760934982273302854809889669499441279467256351890269108653768593175273846673212494981349730299749264579013161205149519545592306496474761269123291872965973763685075407228474717899328988515003554111316855159779557560499736604622082842516674044081504903458111781734078733169790732649024193046337632214027281315636355584521277968571417248253137578621831207224118961938383547526995522666598730243197219269129872875342692322887160323197010127795233733856430271732016139322817087653507989338687270516818252951606163754950605096238334739155435225047019550440919301776664378529904483928788606956806127493903524021973744923399930000751122266501255483932543291222812201671203107021760094305494132606568192838342811118712433234225968313594691242218547724505668753098950518304495633126962644117147905220316286773267348555883527405228514484994458046740138155242915381998170853251675835985749514449914885545189205143815169998272354258771750420323712900923357201543300305372287870646982798820321455164055495415973211406192476123977451855816649228016037689061771425128703854622811416783283480286958753621628091240391082441528293402046876278147650387084261242946218028842334330008347471359977546203031792873621588970149998685071288965926464344203065132366104388644533808016731674446923511484564343318471447590995308625241785712749387946470841284255144898361528899177456134655873089583128935720666571845554680096815818286481304286595388023306299374259163971189969973395277798117065247555286452212110834141124199127908623015086479795345133223602635476754902605678725595148939350951275233630947221351643848463294189757226906915292958584111212944566825965418028170271474244005138188068600081597890738917653889809780963923949728030259455706632358004660564939805165393776545965505710276178473076670711201640888529327550634941516930830687654784750589782206023289593911412908552081989914097258414738201387438581687725467703958095624282625979685932381006333961584654502415434446411102778909728433343419947503521625018107674797605978708013307255622189312962321865732066943231578420799917552784532759410264364336842600596565584812102968171098626100896661529528855357563812944375211131620107471827842218995460722934373621032335719109691211057640751988454139456493234659074202267079747281861364875515928927584970347087689791429584088969358223347982790176646982443073710718912741520227791191875891001532486316127963282587886852727358480238539906217147098846888694975092330597911195582618726498882003180954000472688422347461662337071003591525029384043864236627959491794600258153956223621511935011631466523560907211538745173565131012559910084954609416127375175050098759311876602664788460950067154461095217885977700983116542080921846224196928506266485695559696350288210918321505899120343724243922311002264826283358189555343191928295973618659693613030203130801684709238204118620844956165285436562010557002035462092681984702290899432956050853906764840424942528327372927975473553002741573020130442890748485452255471229746599429712355788385502329717377243820721116818661852569325093148312672764198085873777296365779293022829900211399816208487858951075833152871547441883937415210619895574673994120408073236306342680955520301950012224250818012270936559148648622423643613101436203188214854222559912892006824037432328695363404646016633230268308655515266908994209008082089158135300460519890369109763215660515997805444927269709493041205787280612990098750433849518851377263266330676650858504651554294796486962593067858205917855088600889216584318271984196369906303080568856273079109679452815628543030275510181419154542116970740135797814420021610160638552968908655149263240947564723254297078822762117192656244078908496037361916451172283699685851365597418057599156383998114150698131631311097350380181532298893413205980834592099829879989638225929676197850848196691684246655626539166376782783294122982466305546004422222988827276436517046736217912637962558482794242999711527337296171955412175737181969278296470027680035529257942626282034769583558742959770759740788763848011205070903664226608516312403688811590185302251450813018675131624557984634182308211377271944929355175763694108167269704723943387840186789675783075919263141337030066992903771916046524639054559656916810740806920163337838979123402581198348695729579183547352151512106895721593301631074094777136049453331804930576212008312751492336910366597357517171415137292795664035848833122815414100766755709600501381380596516329580114288979226289834191075409194350775585177978555945743369679500442435562649712422443862711002179947477646620842699292808023068746169748147816699167382515441530044909780430238083848800739863115675273206369178122499962351952728560841031197018442594058084304369011279425030196423970372394838571271090626355003637547042373432050989135370838863886371482306151131459515494814467144641347097024278725659628338823253106123508124766233875034434056028278161665941733892344521412880513352829513572964031626864013110859903588450695786295359674804179352311217981270670493956576919694593653433410720165996529393395440623286439164336683255594705659795687651339662824559764002529046623803682422092977696312965217652584349968138884448282605445739935903980709271074300960380733156859302946283785303440016835719482156342645282815326962966176976802854470743651130001855171856677935210255096254556677695947933639853020683249327960829367920465431852835165341566717008604781197932935888402415407891183778567255924127012607172300205121074206366524298637014722434894643777397865333982146317833209883945090659403042937228120887494605547456466925769641212410400451364730083742485823170078471162142213547577259899497354933339593317292689841305275927329596164863738991765603507614240374130745341060587085408706290065187706479053493733390783844016791948884578494115371102027638057695164037549026638352819125442347054216645025242635068323559185811558957633973694418497694481570853522952334991398086955256833762297719333285204799098777250964985459085404450755856271199656404936613653945644354462865800788696556730956023983791573750665973942184533178540783267014872708171018007602593560390763536060536948126930452838964433007914156582085962969836144865419444443919479056602189327541813735486899304446748346572393275849206484563558282060068617872087126648707931672161737716388245734574867695539899814510522333182699679185809267959034229419728740841526274642508935552797408092674628536959378989956098569907656080055133637835773000182555867538050887462888833802862855386388678116361300565641053427497841091747728293152970974023834946089833971450693961923644274828214890854544327139100446744249909642779446320049057217827085425065405392743099008755067091267614658455898591928918958375929167035843339136401492892887822062599986269948934791378194103238629973546869400534268266985126724630027617596770791424322855969606644394595638870174173147923237688660020671701113400288165180331436189902912955342694682442423462638006351048588416254508584179573967621535370041667505420312913167243679572024847783488741658608530130051827509817700710051621975923973921804916793833521584266235774751153590908295445945113327524280972786055191709486821744213385867789321908505438822929293841719204930327002011156719557766151556642546436258392245574622893675931437838389953281783310349111847102666926449728024645931324100534004584068574395319489890381052788479239920868552245422933486005908163169489226151752577106949265218975406026295497850790275012118032400830742957422235314626407351350500732312249818842972006810525020536597654064181529621978057061076966253446529357697467956501442296365345189538032920021449385639736614371102609828157138805090228450798847231974390639006414466377736949777853633818495566254082694867668030394115294253465713008607405840140394982726762357247120473737766652045542133545284476741849427117624212185665308918432347214898392895853733576116329385472878550597952352726062478812067269956444704674430534543693897555109570444096662183797668449255014509315368128376101891949653906098090586730465567826096216447274667916858443629760321223633105828064864473621863489929228943098250251184045163678010157866871957669009194907131317533002605308407820317489587725830580392876764200977196935082511036195176374156581796295879102658425539722944479659268064206259673811364513741605647120439989251219883236276271391173559618510883922340147504493611514953698996432193723747981819542460656906985949586508150071630416635347960794248208016244367710856115976829293329001007473729743919694065435961822924929484373628581788257066610257426195865427490897792106898116877947799970407327748691397456327600607569830427819752361980004011265878819228436160518803383061790973266324533832366391122791184546745798313761645744156412356648613940933617047199363190824946349004781275784555526335855409084715837645485321248842820564501133907877797388882793786835200145477597279824766200960582688308002776629764166320395967730464182135054821259489243226816496611319329120881104570019268501406448636958626157916384111280405626193029722660633643544240069525905191019057485205381999674675060541799162705470283970944369224960161420394149086674551283655669141687068669112762694814927610377929919245847653450697639921527393290670128716465441516254368967678861078353481324834738581057015803457099025701781290348388311202713393694623578179638879465490305796481524915320530721133099663013961225110332411306523035127526624369548324575403968714329082455044669528094539472893356749539208561352586144929465381388157036026105453945292334612079093232337617104575509297745960255227918105914870220955724398247349586990880915918777573602057126103756537542751334152171465926526520206902201923368789054821646843706839024776674093471239666887823433604422718023536259897905964980321578394668650386707941074952369800108192471787284380449640393584156329221638820637394161662627123662157564714515304715023473571793493960528381879265301777191986477576968630345680057230066166299457723425035876408233908389472367191657985888577437123734253119175300250739369840661791793948759819017746281865426674085519084994783225440467973301814356448149097279009788386392154424495640281722836056475596178522613220687254271537333677854509735812531092722867353056472823910581604237040272773554383226485049354234515183765594073827883338124670728957547054993966013378308679789378874089174961061310590205189059677889244378314323776367175461010537180981139480792083869880730558305397713377550206595375023447221048641698765924413903910139587396657247575038545632342351636060793834009665457912421437279739351567425117337597131248071195349416576940417079139841979862714526295752550020687542620691062915431364982674782434358941821222353730850367408366225609336424796011200260034591356212045109205515012722889038343657473672981931059481823262914861810460683936254714139735904661273743657344765133272971463200259907619020857154084372474342794019726223840963170213826726515646592021048427762230946621495222779019864812828080031025432173091262514061780141228747876992775926118211378662252699875920246785455363763339226164173343546439247873768084513496851050458550315251137948856747345640415688210093275220644056757480848675141241813683543903807916588165318368440586817019374333267654876337810987474640638585609701963607771125058508135027401197002744643201346623303994935435887610960943968349509061091280855160747368002988447683196117322229277652000375530346889024983744749236244609387225763585204695976266604979860242717550740466835469111145480044716634086707205637612139056039533063161362125352987670303395934076162092607880542358114994339447981964467157690112070259340462552207094794134544849776308829874801212575713527910617256206970807263469118286442184762983784398179076156401341764161289475205046340383389495075844624147188124827582354050709549335194049516337124573491976535887632407615051753812337510977276128288659327585176828794231415801509809557373807069357365112605133007312725871644950071635546359264755423276979070188806071311981505953207722293112854124856402272517187022494526582484811693043680292942140471748887340884814194324721633013197218361791941955378482069673022636834250920358018182110953394249742613043433236719674086107632996332618695495618067139912923536734807823574032851711695655335597876566638865583205550506257570667706153873243250587827364166772163619249068941577140826379263887304848635016348338107623803748153165785835622693588275603264445467907095882293702834235546369774086177329338022594171162879500902702106842769700224293754737842779925567668618767250602814438191363596387774712989946884142884404198800376203242038712576405711272896304153292775786527429243360421426718151452779043954574723887614032423146413083804848465610924574692355715452143656231004740026910033183844509366737269454739928153139537129899250698722473374912516540635482468052747013458912672580561168164969621921028211945115673293273793361259792387305694497498720072851478677630046212571470127104452291604245565855832457339918249823990852230891872473289775705449093538263238895052957842980245038067311929702874589089860487773894521555428744373131614568001990145735545298106195037262328787303463666206456305048708586605607573711962420599408738486808010006244704981726657784826440220665855503352760271468443944657238167055606533072761159429210942084999901205350130748599433593383786575059712263704934055973468223770287088500291082026290206124380811329233367544060597726661646790497251803831810438255443180509206502485496584973501294675516700678349453223469831560488828143923445215601897054331135302987697880809923972270461573498182642302274103592449820334676969187464016484478987539429853489154883374508480027481924874318783934512619345845854666780992633944769760144806283405432999093915773770375181660096013667992342654101708452966811334909002460783318403453182594970897555519874783561735877780976397967713683861562644932112909752076205001416034008729062294858955117314396864523537907111776227038354508140463396900506293985483606276036673306054295581560195597267884683861277601400521966564420529090875673558969609253743826328407131947475713929376791372176109395891508069845485717952807413584626324824639956996899775186549587986735693946996255892693350853545603479316530617100957027877391495611491826176019792636483814978769601262427279417123312553018534029956551702430852001627795110797917712798650004120538563651975539518554487368656587576324090745007300795210183672662602814179903971047045505709469940757369189112917990490391146669908397757281440125655288213586973579820865471523638348853529993633041864892225888918285543483576831998089063836887509295443636660059178595560585149785901336594001499121118203371224966317453582347588782322113454367364473714840711592644879338129605530196392741130417076659714685496190751982766359597967276793486867525521250025229222640508755192341238780766739945203700830635266164730167989085574748989058302045391099573963003839642330970958460346034735677284472431526299323362723889126714974788811215671988905030537501442218779495259043201069772557165381190368818749435993022554212769510801567087793777362782726188599230967796266650441735481331570707623197312243187326958730661887468175858603555170635883559315676503178238847070189346739956466288165688984078255484964566385897776073194084874037130284759374811106417348222124416533973578128284977884125590817189735654033182242590232608241342074104769947400396718027322560581629232516393011634411107743454433640630694407384249871036678922129962223188429539070572206714549773544319694775657696584061589932585705700477320590240494889139596085220340245053616779668692239955604097199755104825910287697449484462766029086212771494287108594495391554750407560229127235173410538158494223303672737775286345989184588506849557431048303841587846890053974971970026789486689941752946280543726472455083647869498792053844946704451446529805869940705427617793255684772112646069168525543439888459939540355334598857781608221370002049388600114681090706373034199981764776170153857730278243763754467793525250610141276381803841462626271713244846712699232530250462794205114092479304446074526484085776119483668964034918527192120237704339392653194113580731925906535802819155054924496697621575848917299672473271688112341511147720223218078863892761864823447496144758076198883635996822302371678220280144019987801412603777986302883714073926934424798561264895368889330763572264323790604086146940724641565043744412929205657537959828818817545376760929332460065966341323731325414475593175072605744690516452423676235593184407788243678333662330242279251927702867208488642066131849150798589002885098105604955052389669376084680996459070799123379337864936871042768157052920529350429578966063769090170899530013145769482659985511279116877121656714422538243545624531040392427302368811800679528055851544126145878980664581331920046236168263047351634979233707024475959995931362468929327546223273781284124035686855279747901036997493346539140509176967337016403992936107473675824812257517609421982713295624673645014491107884497387776417001270309430969055504838146491132390768414662722500967159468882189479895077471394105095439673248570698336610956887829030194373326990737552057316972965165595347305549840326444587899388602886160985234086014319272530280749817016219739988826878004503403656463394851961117378394367316674130671215718068275032587480218475414420189239299106947586334443285614874166852423253766819135413280702437992296824697528557851575900189239338105832998883242122649110654571774849098503839316971637729192934885336972471821742521007876896915053073066253036518060020510246996839872263198642085662519125081692021514748544585778036299494265347339971386386818687059665891646561771397976151693429604063659886538798645849730636982004970012993814668737502678743732759805724542299690384398468007949277284577479591470746558822185031231262712143156035954819520655201463528988940505080369358966600227105015097833419217875905243891811311479670668583255696211867752437174986052144920275319662777771581007428443019248702750705689168131484299449045919869464272884778633285802338641286038219734736531286631789365931951879830539865241237056663643905422840717416924759686346153202579058736955089878048176927264556467838596999385892766205942617435826496452843896908199061920926571364392001877180202267743241871078814052946568623930075423075141050524118065263838795609399617775997711135801670832445641224281027585293386226482856805040919143306468502620810422713354285625123499599271212823806572691733433859320692500881820659617217706354595437087738573593335541281274939743197042417864182381870039529440619937254310894186721355105752203956632917158653087949746768880483422324438183443068707938920826716150541948245275755470755357557071873539071120087305767155100297759156965879499225883458294730482366346442253328860305069527246319322419331061145782439389085914443213906456689928490800937385546507016281317086822271606257466864820353527985500484118018845643707586780675847602797581122824540068822837862438295550708853166286056436555070980503772176604454170249720177606919823037245284386861875999296520453803905907967724020754495565420250718525579770720454472413212012700669739297508627681294052026604707536889945651108892561912259795429970326502314709229230301144313053066749835886651667331000621326011641432132116238312655603451950103156527109635741067676439702792528967307390222427781055601990344231662545743632159887287082895513542107110391711643169615370971107001264214845221891831455280274202870947463983867263616190329151909973123947633577531468261428857875390042019621173960216269038442895365655828734896545971966539301559102895940936120549992633419851565326739829512343749307205138525208055047403701094354661054682921520684197571222764009529198065635678044415762919639721636453015810963824654875811525833217541214074214495140797847597715207240987708273105392799310970814891961809382709211920907335268422807692505271362147594037460740573393686112959655780239958191622003086537820087827154784099252023128822055600150894154573778238506742720668129640890020918334940275155399600461130838730087827404047116983880906020600897317856463463436150004744800925581567073194834339697455435229293600754434468998216529315508073757831036017880053999525805381707555273348012100523875151536211113819662641538747135321096873662005609724047792610816959793415535295918459903568940477610884701722015752622314049217600843908086392189783998705121258781410256144714549160802743671728262540866156690940840049324200571735593299468047159971230573860487954361057444199856460705044442256963612230052063824182090460882062271656069473118962598940238482280637950012246125865950111530775131539946131400897064871567776349052202891493248651912741600666901785580068850267079397557419155213009681154091999761291607736417741034137596438670799519736913550673108616450503598242369257117205130579265613479273000523939265390204327450637318193308712526376473740306132073441593630642158495212529091160296288386047256472018503141293280688239546362350191172466227837828961489995554409872648399656343599360510447584195643229838263964671683916298596852923411912031990040087014517185426837103401541674798919081528003073998810154853520975837633136313533850038966642839378808278216849352245642453500415631787368875782659763926434005031715215524417851103408552808950662935131972161114157410034282765937768552188086449141905333379608086046011435998940539572028425898159112610395393280161022120309661645530212646285710999334763687212052961323895315462944340946993785236308778304333782546854510715076667931622457077044962329343451346107260288502596495220235140691273247861833639743877553855250427239746878550913359033439092569541815725659515798424739790731005606788472491307477448813191904514154026742943383002766499293332305402177833937648528765857404956854773204424395480384164487666489698716249657173631596846485590604551424056916679195218576433711456350528683255024653707539900369394120664048791645532863176424552424244671289586132818422201959616611656284416735521284793875140613040979738899755165826332416391950719741038313569026321944195664726596388555025531099991141916906573244044816041510991769574030361486411428889823873856947139193578681266978604119271114693673305046439718458730187118284949279032961414418951626301607026434649586709762765384814966944507272131577190447863861766018924915770165014603451878067000294939393000757122183848706179159132353719185605577310160707751693052959934116417594566865286060465207467862984695191300224654799661366917868741584821509298443098031076785819216315451043746398406528346806900476974587039734411230584527719393124324391689688127283198141911314787284932142030009973149064656240772971546867130971733316642211771865382610995321644373395663702987380816751065639161238320322988408696709074936670656825600225087604984092347672188777345062852458080968875209489599282937700943804919414352479500384410579327861569750494687800899836308685994067052971705552782527482339371959220227671920041281544359584696221817466364687202928601942453524821055920830392260709806493988576153266497326535925942598316068895088357235008196125840869512553684544632341618749450170577409195983281612162494373267548332873173224525371498396671807931405791033460080399604303701349618139209742490539392564721077809429705581777123491190250306615257510069845646913735255360320188653471065266599125784220707273339587342394587603005422353531857514237142871466889630261990772859770200724043676042856348981616607895429650766276021862276189481124660439033819113745418716334424532958145900610529687756492754833977367396898012356611171908336157972464032896929185637852515867141737000421196288612170515489590491314029038040870432444528073649378916511097235993667762920504600097185444174594810742922925941831978706174965142707211356671816256112208868414526796347401614052396009043545331800198922699106565193489154709760111642788575539904240512920978314230631830038588562580544660978643400394963771664402398633531590603497380601897805246312810431887202033520311351127461304327999486631128842675676021790936523168942653685235381480424490097013033083096575690630114450958281904104241380930787205561755833855651015277400973632183587015695673464979456233929372937638290305399524416591777467430548134013266480660885905095972657106535732289618557216876213269679576058969219449193060846106397448163358870241403283684646060244351534174678861955621390346090802211571129182813213809304706244973827432876053039946782982950980622757345017051984979483077567824111172215212999320699089053828152046684657814741666065214428570718212082907462736921289347811251161639779392192634696247683870718112103364840997951629103933532075693982351016404628735704060049642673574575829869553951469027322722837692628303457756713729340754132019935458989618193919437061140087053639797749084041190142457142810713102947095770106551865807189012178757653377371662326880396281724212836252283099690170858957104369604525965840864056937964056977909505043288392714591986088291823998529435322012612346768291050753161184577243876712295348704686154702371409305234655160853108712446429958302627336460324434871731317067403525868925233991806821045244144746804574704475810872863007521620198287721531077895459066256697858771294659490901070500189510077429859645217441130997663081342253805021813908145844181792744006391602930388668659286555868278344132894145311020897686234911609256899710845001872465884961059432526144337725391469346146415474510931000279878471555920606601051033957009454170901490103991006260838839141172259803175853677012250105843247763139813967433600698287548458710493643911021270637052925489341260873266150434402829460541269965285289787392122784140247612228078904068547591941747127599069974382591301140374213511253447946467924585413463528785633846395996657704713387013396125840564809006375433259367603142931610374587291691016342971351072662350758617827925893834104572575317513750884130368565923860465702696194461033736797971368958469204957396345030033134978553651445234919558328775285234508772000522109384835369109139782678815942458060968408358554390523790532460395984945600567992829585630210466577367359844857017054586305340298803997006105780552080814005844739564997400234216457980588914709260082930612010928595683073656377307132694865107899296361087635021126356192921889993215871780187568576822607593705277836692307751570508276620480197778251813738100161332449305821505927401264895685682529613078448859363739209659311471498962929110141637726375830156078882848112167584356761505123343005966559065174742399426281361235035823416817271865285229770352698567311555676658623569163870058273343877121258778608524896109403637461838395061324116303628458349569277270856743822303302115763896238713431448467225564033904400565272956980174628654877258801637137352755153027232114109023181940979386006104490991319507265037117167093120471411914509138452762691066581328848160537334515985301962012503972358235955876114147517068740661742501413404455487503948078650090789330405672781472955152747598470395644539314287610289328142042923406504852227393654192403941801837243716445556083930436644998528765591023853388828746227567978434980077471290961444521246802896713574612825617976824032279450407231225837193522736082353913938922887855797962998364182275595925965633341807849532332650298375822880847073037693716606211458382363392698232346190815746032326047853434220782483917792983951643524876323933356552525240096477056165763952149543166731753820440855226515989199679506476358503712336673016745701438391266405916953926600768796778147007320573934635842660468361806435563806273898905499079086831561197984516714122186358511956778963002755241348728115349612788198833861895412322636391646603292116412583873677802078262156857195808546560273228813988793431952034416627948506601567707945564911078156819094217709341779312225387253054949641997223874092263318324356497881049362222856395028831731278055540377657800016051753291818762938020647044404924739186064203727683304234509808513837793218303518366682782783158794563683461787038755301552562217506068690620673695381667654902752641922984053030759331403929067438564633262846524870931882262217301719082398869690069566276316991517544929603446254792683173846039865943505039748517675877139672559203948687730005273445383631151059744351189927660418908171841578923464450320583967683383407024963971068745470973857683373690404443592168175089665128539577283893640712617126893768207464168344616116670065604201324142483644198980879002922488797187388772631813557735776633884606567904036524321226932133848406630365027422035976614711032996955083425311121565093327744139048745509802292528219202455750013338864375489999238526701570764335628746080632963920601601543632481638058210840807894207961467862511274117271394301784307401885084256657844192614940173084831914126504604892174589378806029938179772737410018063014458386119644173458291634916562115799975265695614070990668851572510028591142303129882217380576338059260693928998643887247188998307276822805572748171021995071532127450220283537082376537239206647704734955148416524638069173344152023449474366683803932953208987026740482278185125088912145474597252277655078430384950067588547898520972046301886747744572362910943954265551846492122129607224047802447647836171466779540625525377015272149472724655652635052532169277173581330342699557917382811888499854715027787011700278055673025554444250975834617621393517995219155494561284769721086947259931166006496294986684322523646197727901736160852880092625377305054519743676805875184242308139536739772763034153746865204776301703462790569038524894891077336974336401115306306936849903748675849369055514624827208685857615524161750903984756298366123979874643459337530681951787389254434238933552354139068085020912954982333468424782765615991094585888118197598457033435864842853201592730248429310840654351279565581147657562742020283497152236686816579645351882290958427865590363813741550405891988011786417492081342000925370156250418553846020739422516990504131101297553154116020521603061056062089626154189923704062662780187398647908019700074582322610698516401538054357007514468586807686716646257551541936279726886959510291186223223715997552249918253140183283002322341333086050294952752892998083257267958851652377838189831014171779073316850539363098804409160660678724283340018259128759538241474587032051946987120525440899992100038430100879735487059050000495454458259643764175375535177774683556698527897651789050271757891325107568134196562164549801562821189805557669190259557780231213223701623382920891031173736381339319584721350348938064248497037192591331892224614271091439257004402061282265364412062224267573849473266920388430845449235065104022369518682659692314984489785106725250338952059146178872303705577960946466345128963832191173949404084135242502409197898464598487366578094309564540120544084945228619115812836445407604141414038259703263468140191981233204364344512914222325215227689829686924891850297240814238505610712821883607368507709164962448017341710254016826640094657360655382660479055871449521071770121665334857497875415473772941105438444050113658068849323113160155722753979392843489266279388711401875304928671100802289415873066839928582640428851989714378096046968975909897318144642037280019514847024628223584597205506640861154227834454069758579392846046214159385631729650908592397673405075498444467226376368944245791602919936253067807564150178829515764363535827460714567615700006933338999553412098053219882954361994496828211166356079203281383629197725424889227970705514792539267972721616173564945467516406111761852725695042141984002449851791912954717964426890308321102277100842479472412915402112690969913461933894680659230792374379891768091043001322572540618604609155960707767113485413853911576309601160655428178915748589296627853793415931093077495249653088817391136617921485616063567762546801907692466170931550315881880801896312427845739293084683459418121716648904132769902854208432338387506037657668798377672602809625860909498897357081457684363580601446721636842712312250785732933385027434074223351889792124246770596188612284994684806009801299898267603267861814563275811799560893346864200280385153511734296929126052727635191237806955932690390502333806998762798156719344306320517373937097160945020143650869211614174600967165538148222476120447866527946549385029729810596749991194953155817982177720404616556269062298308716187743467897918138421470855268382631622680646071954622464764557714843995180133659198989368212036342072695400575991088701002843072631550306402604815095261353218777139998199865896140316713006487442028153694257451143510070837980213260252551730467463100961351749002637736994142747080385803490912927559108833493319598600963435130393671707197026534504998940254307332696940621958258344597111960707780044273927485424047563595801614257608749936785615446242361629527922508327083420764096425326291211932359553739246578052318782295132128217756209578216085877648938491466082201332586031867128913031807918633462585844450710953951998004961927420109383074346563254303560514865220007416459596326581262010172798009383848663710631117333833458408319695797513625711534787147269858206339497819070835597727652535758145585589311866062662636607257231515397425154440616206970349938521304768752407626949299766754590832554434258458121499614627846498382007691082596875229781345397904618384858155101357869938631249340416134453607591813035372606677060826852302470097604915100263263013213276875472893088663008395224617065529163451921952389186541792819400941782211300121639779478959825459728033256715125755070879316791894838294324125607127485927153680768995635458884945258905008923182423532189154182657065288127876515861963899539019027077958850738288533109268233537663647227289154496959332473222731698940586116974990667810638838048424933735327824964489111873879131970402267727330197120003393164485195311948586296931939407438489845959491803322916260493000979440982095342565831923798212674955871831531441665997002785255113293471513187420805311542074182161779864850053209411620100552874803893082010979325100916288809078861184259569466552546437455739818220617030172890220900023364585407982473085295031595686618703192019848287940354173741841330469478624839246568654943926285425619506559857121137979866722307015183466019360250133189428255470871498292222965998638019832446457445552005118100516059106360271785225072256315510010113041574860124032186646434680539715691228394315370796732725674360214087278558760062762520679321022438746013372486331372589314706108221298598467613943512955930066180901291540474803461069820308755069069270040876243744275811930175519558397062339748927939146003327515254390492575758968859402191142237590908414635773413058399076360382983779125998224707356162245115418885929821107331356584272477243889450466479427048456461205037989218575718253310507490479933498526282937728126088050756084117482372477953025657128012847402650278873981334329391297031434578649221803968603060614286983998491845993264114953373721026707767700456942232023097883497046628034240800428731207181858142926208693073603446030788876800187151757878681255086358445263269363756425345285814276138125409863010720142781427928416194875483258153953036811383652587285517049869536768450850305163790763678670957378171892288081412277966018173197866937220174052039452386172156747016740699781235995412254745586395423167961367250572616933255221753478683343248135205769596482603689362893749124923874564228325099484223100621216137470203714751448551010856690386679625178514044243225945190168067006375989314925049868858853060514152711050712332141478120202556627308364742586614233547840961271804214845090845006484378323234216736972660256440142985936969001288131693137014596693246898047121942314977052211871624338363385706227155685071059713756671683836241691995975360256019699623412038277054162152653053135569400281621380036252032293414224309128623735785302015205257510893644124321659631040830777267037172919170771165864775777452663648288876896316734877104683161533367142801742386541896904517935281435759355292585748734040625736141393737378925402413037536960709645570979692728253215895801122754615260999287890630578587610846728586798463067551106072699642196986915458987633296010735819095049544121466602466523657650907154105621461533693956283143964412597582739681395563845118122418761295648690145988954883400968875190247317331097792393591415784413418240615710124915444154107515624263730962065401917833401299695206424094232785159362321810418486862966536182488505488982809360545868356448930463067346975707212696003252882621508237971818296035164316530814118717097630712656512342436972252214162929700337060084253984616453208281727698599794470637016005875211900684807792918170060279566999288764070848871812016599030902451056712873293821011112973256569383782255629824656811688734952396483187488251439026638928233948270706044857481069099939479839117763526790811203729509546890480625155768332922366972087013416085035354003008472106603726575152123893105108935587566578278649432628225945830886151985339093170337911915520217725727444275256064824958126384102384059220929087568056622245400547326225639684014300877985488455635747728258878458750614435568156251021534988033095889903202642770368055756930319378672344215430094578507723467523039754132512844362181719429468184213400409405538941166963535514311531369372590152935238111067072298842627155958974846942458285176205724040297795899613301808604013624966511035931317264747082598742890269383917899160964508361679185130138713736272649355069807931863079253321961239305276700903098487066828107805595825213507830970553901103090389415731195242108545360591584164384570180780847020717768088441246466086515294188652823719575150840775723616958068121813937331272205856653475720019302190893103983839917143950802329346538099269607262184967608670481074116769543698890167115801794838289986037349058068287371477035995329020712531710434373955267632920758638266470071100513240380062917518608585551745526983538367752059423900559447147533264343676276860516916212951165273859905122386505552531201426570658945789159645032845208481930917930935750296414311174678274313266617158839604408997411734382758711413123878446454674282418572483067826139061304559646875605300982431504213682936883183621692070770902294232118721789968852768316712035065096895843263940698237193083444407011589715438512070320786976970782075042071829234893914318284643305998654356946502900216779158873505945560369063521155266625848421606126214787131517123837391508270049380347624741576161440210275547074542586631194657015033098722255024857458162061517771767039386908949534792329324059988987820210805615378183650866036170088663311924929938386737554551530256916658539854890206379480838766056019285989599752350236805412644078660069567153466795290883367248339092413966067872243698758050045786927321064498926702643821118793032310671905917571274009946570506556013777815638890306969784644209176579633938779402827629827108795756564272766486842742853523945282732519212380462145475987638245802471217195864276346014705481196816464162922127964298129070070099961844567264704599342738052138939760844600116552421827501360025801006250445913420940336717636872429528034213179107626589240365223124044376939534119597614420856776815057547780092432991211170749288506953864958248784653147666593702965595272119186901574940209378375113949969620121731533374974527757163234454878638416213100770657258977924999782157357824035194827932872214920242868514935107147440633367350317127269082621366328299238123669514661276708196025648104510543748555240821203870980000904835104062665124743551510062231008347674914721309760051608711341684019198971383000338223565437191607682173260378497758245860975670816791143493623504331458592546752901409815740832715662750748649750849896276516651329294226190930559100749720473963693989326246572856502791584766086208242725949160174467358474431096493370469831351774394260436186964022044139783776429525419800515369578086494079831803573706188085675411613216726095166199945664971272486078541044290047713043922344249610948061225972425323463600906069996032388837021888206955723733113472543645484571624229508877274517212395895242132506872226154808988995908972055215067145121586503363412373386623120099207744258796438606333842544619630471199604586941978828598899294348623028537248372658670445204774213045577028927368330729490915960069868149187200494760912173109706367769106634544232594219943766654698064452179270494785368681628348437923087848436812901226441484605402687053144896471378751792944255148708711080753932398966276924271233611512744961176843129528596033261867268818197021647303598471411925891443734760636022631682336837812000973295943648573045925051437153666761326180440002382737735152248441827171635114468662827117972582415277205574598736316133908596811407451004798078426835766036613759432954949413870575823543603380868479905002490082045994634892345338289233656237876344833284847554760678879764981077300134218799742436666036063741402031308469896118263608296465928609261809112316683985475151675382861728015743009023838167733070469934403842200539928608195762746408402902828748622127796937612822680223681403719104212257411154173855331134835297380304027865664140510110858184995109308771228875716336521464859828076176319080750552048421896321969586605980009033636727656652769462695015650535178991022881200250918481852575614236048688875327371776410091481770353838297449710604239705424434994910608692729385018705228808459909129115287188878264162656431687086661466740513032429224692537582126368500289005422020263205204770682688069695727449760755706021672770257594735368272934473799380876100368400260997748368624584301266657460556456629433679646516162647936733231264596753322935523785230694166265097064922070484386994843578627617540811833867859236443914156737256781233013999362911611961838284631148927554037384991143971641143610375801363717078792857385879109030996471784111326960721875640025949999782396262138939700337708966394681979846075630962376620896438476784795150580756207215368924929257906660905355092982164755414414547911886693624562511995192553746008146207354843177133495302954892255084487161785209528691227704170811353761353756516482192314375203558798481977019759439377416728819796596077885596380972627840472994293627998477726369134094669688476160378579244847788303804277565829162034243913950709670058939228299319257150438278221256165866134633083419254920800588126136478152142763587472673732888887473518788923412459970154109846040700811332654519804372071489009733934343420382881107558236505246495217446151896916129413606726822813669202718609470519795924620143872596736503876470291676063117011103504557504213237060146449500044679266353456346291140631094185785461658105605686621593201246165180257175735110100873662023383632668087840239580715678019119247333804773633437809221281375152415808890804299902506812921013500991519337857422528641848074203192313678318462097971327204838204716768737699884387985972828438259825018405790328748664975715485681740148628571980901105344733396170126162721421507576285030258774516605100583673868777457186024611684253377840296555087100956510281049135331794823891377379238030148809977311541866781510510824968243930065133488139517431696060789476336887555008232571542556725246948864046979186606968935438824169273284685677511401347376566941823291216709514595209209690422577152511799793260870612702975956487266196372639455466389017947548798531755104422271926537918750182412085842715940592907386132269016999386866852681462901333942360329975252095021854966931008676656687221204075213821397104127633579112729912201245291203827775876571675605076956154303235915173638935753072489887097118936269002363271818940899631399746370422796628452249335549431079710729963123327441164266326828233356060459956726249881484026372044374068785086782433352449338253401941216069469785306272026939303377946214503742050253847037008335857476291781653268019549938543558964602458705826437881299139558306532991847822160142930676064591267495159264910384441233326384619274240821150755853569292050822674823972110978617714112137484102801009905319353987581892094009858393969394311683257121086811715798288210832553289448629881045170003007297333152611481050644792734052107510867665371228250843876724004411549075947663450928374508503301089663415408202856267668463626328170790513164514153473547462222253135622425215206796458710973200945042874824260365108891504842938117381153597569735017855039331065180383179032903457278823680425432013062888073396570917716914212982429399362695492084029039842346659876606519043663603357734114726170024609213128422808452222491557754533416836757527374022626274269123859394848908538872808458822879066467417478359504134451203163456251390509675056601861157038443286247726271612348118504969484540532633826475503179103361655270989673545451592414194153376499747395944935875271086618694427956429701510342252762106704122928952361185135473228584857745693051462718651522376882924504499226959289398647946839623155713023337859508969914385251643860820537419857838928504579662915760250672266947707736801450032933786175147764677550134446383168407015809393961928913032073444798159501561905277021379161454418430616858161562190965121130396822565651328729021057773888912239095720486344718360436959939536268780628727431135970697583878204531773644605976063032116378468072635029443803762181343051911079484335004596246316294989580368407016482587432284083155681137749341357126148692542809929619680996891868842061986402107211573224081356844782649703083069950104403254545389427487366221753317343581973266565920899874970889143507699141135793941160120676436735809413407039782407640699189946690576166847493913146275273596012247765801699973963133613542889642157442127860918907382510062286300857156376387070324119795612483090710182051581145859800906866490164003043552955369876716380961078767292992752112214463413126755997242023231527385823792545523845581682259290485713409589686951395529519437115682227260638255299122072173641819837703532856243272972335915081354500910272418985086185020930728048787237628192383373333420712216664323337309783720780908147159219900388309381121480369880534134967466095853839963989419889893734505820539088124206382678591638298696406229083886164260819248701024340498025433421156010825464100954094838513763094108530981549889659557336484908419853835702333313701622253202168575772721288458170858894410171289729985247409642603536587236076921570462816569381336597406301577112976923483170236689145702865636046398597928292861939542140474536012773999850702185378513851395875274150379685172277371957809387627624527394687662197232911771281070338719971825152248718987777285943836229754353884208494819801593314988995102228002163642693230951390258357483799169059483556292001856186394711525494341658589936018268615162380112518306199208997946110366745693721076512670011566405395042789926286255812988528274328466097524544469852487868420774599586247927682796187757887366567969133044973364561738830707624130958041484442819923275908001280185895737635564725445012059382131878257774781604190881278381993825902140862720743673917966237804249595989431021885798959538607824526045425912817453943567680514499646820417127322775849756053724127013604894086497089456517904388305225818893310440331252391269885078209879695162428869104051369427190952370266069282866495663487326384376714722153208353606386512211434269927007715046150802471120604987036062025828892743898078077570749667044138651217457493976271030669539285374376448161953991593252443903685190311810580161843227273392479156219530820392003934037299781002612597646518787994188735038327334547979778207030342196633356992765465326325796114628586502862262135573947906714734644945137752177988954990626959683736444209268983376817691524495223603024571691448493507582222736895700947831459410723354222664726519124053678036899334855835614524128979823046861368125670888087648886500268620852270067006624477196410013196081047635867313891336622653953577292081276074399744291808634984755654875082149386642067222287041295586334012742042687392993367456363693952141032153025865452487105725308471949981887799024191347546376899427244264930767251686834562380081379973195374082985091006587353385654063281330065428497656005383472559200603653269785488349644352120103857345969398665005516490896562246392001289196067003745871991389696461954632711568018692997036734800379573366794752273599586532292838643073430728502999747663989246559911765196613200950955808448670990608057837587930290808306880742313643348870621053856842733677048938353656677092300364793116032871067553922284851441791971893272600057123176468990580276964616070967910422250276112330349253398092655822213354645092617602278768019175889356749662539709130870018447621567913907604764839144495004515666384202054025694883343679820364318139192501395709527927249932080101573007465017465103026364931372939109221808714487568246164554470128648549632239280566808612492600280506503522311438288411201181784584045117789078844604756285146133282201221112499449019482331448295653599076240328159339389274167423656280840511266903691056567539286670574493957151007321334397409426120210558189167267046342902038245110762214202804292892882298123459345184954514574743654859079213072098151391986428376058333047587823175103614104478826028626474542457165090644094696047767603278114442287804936494842726045634239404594720166269142128653461206947036328923345891965040862436367590389243703672428519820870616326918242162672610454104871721386410783364899069724247934350413471495317748153731572829706963217374999435558926090340120043446062990865651454606383181322063104566260789125018048162687837873851517784771906567397120142089288807057870993451994313183633151653757043445053883232215728064677102473700678301604216133969821857129849384287351873556097324221072731589985439488827258047090075985986024833422129262056643243469793749828250529218900764279174447369076485032836808749966021503849449055858129494637931448185676263467500515638670797229189323499810811502361759262715462602313681467817428071583440657326142065088887498767424220553625713733174113293651242877430040869026166338306669436587174048781835329895263137923675465089901270764423731998768934388577847331012790622556358796031378877639768640824371191949421409709244723961310276204041997259836492132592733706191162381931874041375568480848607602743371234590558498624663257702975774918022471130356344781876408541631703601020387378603754150885473243243811317527066683731349636996448441851651731022603383606119972284748372054809118949208951746112092221836935577642928323365538111242048316605187930998598112852633758685280507942124444211130006003904209203060879501855217198049613565998784362250776508320818477663098216278125058739991234210785617069675863411343925601921058040576474924394824512357660536597273656131132842266961910880259770389417854394344800045028821409057038113666546434490361263700977167839655004144004145179528768512777349900411935305335391407525996087334564072278757999554130716070945315461242600903966177231123534491455888333955481892217410249349692037075665567053320336295452697411229023762695319722977665754282852956321645075395278749293525749284385817689843671107348936442098582163625460338269726390368653735986921630599153076604155755989085009750127059926284492595163213708444772937961667334444637303669145053503877016934083497040168770219347978675593917647921996887752289290267838494853842549290727969008033308520987171165510213175870934980873758108045659594926820490295105346324915667249086108408130675130161319572865468215623411568059894512856012960040933781485983960929334761043140656928203503054507900397596004740549749227861299820055949754235938415853787021245657762981259030915252858031210939157852324067979500339532655060265730313903122683476964658467060236209343366029861829194752819682310228416679273878963181269129788036839834086518956535050700701834222785241818411843081226911656596493741518057254966920282264110543924274429715310298886066846262771443478034521139958979598107244018875433564546768742501486406156551527261990073044874008719112064709836309075863014257791790517249486482060693873975960803232535826847130985373587738115075259176181098244602121092356227286329151611485086073095426946107541666468554300350665355904567480463939660588011988804207507044280100470642470046621882287516745228704775754682101647412442955980953668510057381334597699996195503254886363739404969538534918118026147370038958164413851058283537082457451088787472014418433952669212584492159623118817918334133418448464579358386597770989894528817891818767182264825522682728246775897688460584287121629093024235169743673925962653610869368950960357361058439173761351247874265975664490285575052131028624450120843355113423113287512118761873261874919785106224751862543185688039121633232597379572995338761893357623263012579485091002967776534018529518382749871886660469010440638931351974018537286490393199150148499447590844536477095646391813746454297657100769888263031533033726387312739338579378639962290908920215799243402390498767622777458530382372670764056550995163957153683078508927533483284604762009189427270627770174348610749886065194584943390183340874053234486444158569360759463057207010994595362225515491171043821121435296111650467943734412981972488493975302508163858697680640690158928952110398578402508827032421725115294002416564520157391036843812534551757679727664009675480173798047337204178154560464553634613290291778194152979764971346609126788461024869811404875534709792166543963998166506972208698132004308024297709972609842629292327145612071795017883282055188093224220847416901567751427554749698933690932943528150133354579594984963044432788768844260880358063460204086930071302243062568576459330709738738602037110986192290606085052601945853431620805565648764745388505922797336665204435647920750260021310847819639268256993434638050599877873554286032097779715593218030945729556565488938101411954280849566899596401396921076929399383446950766798155442364220199702626482624006153454496294045303365896998160858015714574490813042209763906292370158549099328964368295717041716526783684743548822893814937857387270630894091178392902751267702303949121850342537975324767379558385192341261494481573165045453783530300657296270491538398155868685659082715643903037411585655876477363329730070480463363265283181055994354222059792702784486239582825226224822601655375351783212810809252003032315809011977370687028114390125593519206185072636790894372300502202778725072957189966270682919525485645718939530091183490799441139960966313136965621216193848883004347968807171159658233799568355202733903761278993473642169389922781524834451086633813782450835041191242961491545310865958669955093484453683952148350480910931650784633459157241321260736534347621685478182880705000284935708597332478129314506748313714149893297329421560736374776323361624826462864868456415285360832101244673478845755062382052462883497057812410881849828273471317565176183375101938577587756295558450090214402424950670045772281754659351537775727376657174692152047438503786185401354165437577942873991470289417779151136876372761041968314647795282790875086058061254425597183192944128550528372817205239050670732516008323159545133444187047099526336266089588527420928253322838085813080284448935641344326305179640638817786212306472813584912872551499846650792523589121434781484294144495526260332261372037348746320061613357656746147410912781226699319728822067454658888510350118196181033218021271820827582210990630072967109118704588802566288791975636515566801183140347212960267794836268192427628916940929658990855257098358900974626817495206396550730750145338642479634586420056269818116831866933096543088262574011180008281676425786284613586896210938948738714072451467336194360356471425327909443993621542911381150566883835912290490885985614509386708380548654351566338896139058856846461885617724880358209082392070382875231878215048232696201851401083910217020293737346335058619230540357325125360467589731018171364042311048268749713455167869293920659561575065548823167669239122746757916289095246202407487247085914239605760371523925149493919249047115140250536013659413458572810261377592277078648754573601817478903874659934571960976665596035688522949975682932593010737410192646250135140179002466662216509446947386127516298939435587874122621135284155634668146012052822181127913478541716974213173567757609320945430478417913180001416333588824246997125967172880447912219805583828088148073992112804168551061236749804087823802581747492210331149474634659955179899424181386637963843243885115950612195913492388916210175367342619055394795933115985347357925700374841958721790764999097761288737435177324667836447881309203564097612427242130112988701461215399227317105811656197067455160023445344884315947075360966791694276886528990724026448407460127847839027100456570831755374930557409025738373747204259760676932154096322978670616505205511396580806060372412933117656613210876205041168780681046249390198539202322336162955452143913151071708907366220819973488834375948958331034512430715099144628946665002271715483704470140283209808206683739545573934395473899674845455200930154802779067295734839327722620395143510139861495392427080200177564289361716733073428076921120248948059349388258336094450990148252288608485351196947557723662355165610677378993434527821902187834160616208842083785066251547110981466927238714239705045410430043276805276297914552833681573417139214124828869514412496393090223498717431253494246557514264998166372190877102521744705786433055943022313026274880302327118473201017521834075254823369846866564068182306744735574214046082506777141969593780793731650561101921951232690537931884809985012048030282944355284652116992800973968240002053942932975424460488570626117051806121790933504630556035378454122645070333161707209854678161851834679051977228684659155889557886951633217873414714536918165621894032298345768877456512654517479091676341984900944383582191829623031644752010420850379851033518829601889784029893876539150171608665877986359379564445688996974267071949768414965283245462168222332298785513412467056604325476961162645339222553281802811438911256550406451542480155544828923234259276257844773930235826128477608438421052103776309049580242990914031528079945865610151108152390167066636430807677238843203259480402336938310241664927969465022775301963189473515960183609036511872103436095606568830107972422080840115729527267992943846308692195420240586191345475666422412380378239403277516200405818813902158770712216094518944718752309407587137823850800551421256305789768006884981054962350832698154723319995221304195328915422036917051654880279497346661496734326230296556063152396392062820255168700101357665198714568926806785374735321301108290793848421083484010768888648078877067889784989241704758624077932676895461001424067494152947878182831061187684539461459885827169802200111049312929090725408798418326868621339019740926684043108072760228765205226282238206142657483004729312045566818050214582081809939238733414840464075042075175037222158341284049769268260937132793890838727590951120417048647280427161800033158647555359029479975541366836525199600377997165305200392470730469648897936274197829563738489638067277470243605191121571938665213327845254253165140261554777627170647364580554694700772494879941188716018566057963774112351849274197696531784419760472554020959761695336036392727635313877033685232155345723707443008632537221685978211314019053934551870391596770204972239316248811271658831026696333960822327321957338756861855567587173886721488358085338376493963736678305780919094581729494065348850731985348167328578710646991871485598645306506543885738765163553247253357647460007495877643842605676337326589724205393516590390306399647054872138361296208962012821616695799805328488644875803812194495977109987246628300623378920444546273136622482201461598369748158103094245788742950108278584953858163852030176955171827398450805737328773649886563778340599136647583454544580179873219112686792675508856884657823056919778026460373726240584370829523746555482072687798039432828451695716170995001267289017046168212225963332857463417306000659160587779021095946564606327143697151187680684504658157528885397937540315912551248314780011644460741085030845109157916132900610860043222009058119797024385907613667900353145806206698702811340133639515762021449075643110515866559847554305782962635661075957040114981469403037003742203874213109089087003971766646077989774737991278272755252143102662056183599924834217119787302556493879339011708714991159548607596327130670090515894414585009214436830716385806714487991100378031334486538137284094591860472115916419117302212913209520007596730514635031936368555021193318229862058184139689748299627338593681193370896638951224281315310710329928112191497531670932527997223676579448237032600281744765944586454916041767350889852080268280875034015240334217234256340331110689263724459618584585820483153900312942640504590641927573988210896031765553246722233445809812141543469566830969724314412149202566734436240374433014408946331944165268108479170072334839459807090870807922973247803038705293372947030618107822697270251006241244602262297967681474817230765925386630505056704657272927335844129506829378042092754328261994151958833716798347031696355090990253437004746364605834177118120872458681189460167537652479035494336912506334063639545681621488147197631984087916025145002580194189755907078144194715992218983397108489239199625096765325267838868034090397444296901543518019672969871123756624696744694242097017704855271938956560491830416986596011174538202612571188518187186089155097942637487510218393685354592613241974706825724279128800345505277553997191585246701742028136189935607555852167647504879695304750917361270523711487414108487420831125880628509049350381072647804934882817984155497399670271772024705762932863215499120602433400323390439117324436188818629636023589532540356180817360685495289020163750577442150131511982989542318295725756538803609456743242507200949524206868486860917862157490157911929638602598335811796753130460845441745872161565085778598093084775793698354268226848599187090556517363509624143930685844578748034261184116305549187957062463939729093343888159209242657719149415426540809399462510004996112604379635486553007905006858883051594809449645085725704532829664710029859111596589702122118271305360307701922281194179842236400057767426533816615206485688774855270537792408970116781317787330274478133846421349429874715040677999887875732046989335380326222006960331536424109201239539724528392567401049393460853369909918440151572701010109163437079425228010322191882527398227586768277221003348615583813390435842134459569854275751653821710639596820860366176665173949664859244915853812168637621434686508356488514270084768885310963594866343297705679337863381902922835930243297832031937863642659347835068900364758334324488940316379123359462265868282569271521242858644867562384099163305429470702117628695060125263807039515287351331361459345910856041125395264306126409215249155021719083580241246708964986838687786348851033665690514424901796589068782899607418245732085599077707791304196710172519269623990984401570256029227630528659561724457456988933005640376739797871155548055494631511983385375702408304773119710272321325537631467794283295994112274950838974708771912446159771088630558944670444876344888546417484040443515431937890312375707817239360534855642116252900714657606560086008424669551210550919695671210674509105817567454959042384885805221772359930010925889699730914875357531310106844730186980625851143817381064606118802662760094331145992262489285574752190050217555609130910395840822811222526098978237860223159055580924729643465799835338984260385705095478757796380335969617857122089114992109695018414527755183526979343258505724074420112763450076582326379826973323634563416918017709443859720187290919206846544547910650205670977336065532613063733763177406866477987014487251235008372851789559772811062733796176188106951426100124183617825452516480121997041670344388523429305250673526734226281077525875982185789238293338446594969400145527448986712221476706843391526066403381822684903277383064241366885683530830633552880909946154165482020176561988051602007950878209824944470423821402468552219103303266391050203427894620457883948685491506887001134384535211228518749968618708186237826703062482220035504151440775221235003968273235202496034854003549558316706314232492169574966094872791358014289820301672941456064249569713358788121880071184487832634991654799049917695152689850053109446845980952458324578797631972254841180092175559640966601113590693388336316618565480336987592890259464127189221810052245430424010102648557061496304984697431658036764165741814922574642633878232467041538173500437343971489665190023683445862218847100243328142513959877064844407668209457814771515056304077644919338298433072464437182775862999041084945261130003597373748718913684340920360082125342169542020264140895753489166497777230267574788965452023931640064964940096329900930656013328673553913153847344250883516168219278167540200996295795344328451052802846876029759424972675350649485883860209757116027749941084563974890991897622011576921220508463853608137337902106266106309778621483326573906879883686262297201363396308869167249490397506778181905789338528869905037618220362616997487124033599204788564320812632122768628621877460210653425677423962082416680075328762663356334353674771897101284092323790666439725673494669090369350304742021013204006895955215886207026309812657629606736644879419242835794975576575860661441552410929862644572895788324174537534260872730240932210633919139897537256334821050104956359271956305096006100958200016878724083167799401484329365909251165528450284849147894642955062629839185385814206559154731667809036389446176455893126573622845248447316935715626475296673020360083570994109096925808401521912746065815794821980190697147606098449331004773089991770940349725572127158970655962896030205964329817569858094614608879668539602163706905119554509063907735529250282615535567882000343699912340060393938067588137443516314854443919615515562156351204351763231957039531968287916918753853584930316938693622001156806268125142938278138487468307245320309151084601965665161881566873776239545362400518551464276280532061300442841359267510958233806963962562757379699210699640189111121350383063701678740573269434126546268756735387552648887281170215160309490850756301739449661586017312156143491013317415967931619597371510647683711604039981199234003774928446886955296097368051676024051140623945695264854396863392755550852202469971443259704717481256944810056802207519748872824051883303676036322117000665545779708271981733709807680266153589525433879525402817146931067967531656021863823280392117732371862931880497138785814068448378233583214744556349943771554256697901540527933249408876071651817970343397373284988325770182817475166475185058930571597123085918199517670363348748194918755066340639639376459221103213771481578845259439707955786270195326849722666477727559969387164707267303203918845380601914661102784988360109823899691617669063364548364788375440937484733323863887837643570220076663971597975235183254683203435139507250879065238571156264453971281642001705500554238721002740106045439728634360257399503667579471796666549988964118137285193101907685915740725003242116618527928211197630113723292975954401451841525011586552606586190280442371448410118027490820284653063862402582904780345736994269950874121069156602130143820026609847647817741571935536292923086917513120081620109410512501812474970910466873523807535756255302845207193192530599031484897712196803686959794611852943429669848408050535493295888051825583144225416067879717305106629709522822832697210813047412670105123646950139098931049567747999468721459088071689884635872448517239034839918157864533271254083100017663331910770175129798572224958895104024637145913457733017506738650011809417758797019534841573392096772801542705808136958249448382044861672740052209512373210327750900362948390948934899006733425959812277861982703160473300613872872607223325275087071221540497019806848335138571841222757203240580665383336843406123344568911826254663081365333039504085964318910679092841210273117005709373216697969880167292692174168751340917942262005757087908204341248918674060598217816233567750024255554693800427768104244217316938366772869539144768885106957958985412982680899015855904286969402952670222415237777065644058322829388722022300745635712821964395743330238624018822271742253286633941439978669676309751787643246594159261965180360397954991601337537967168758898360928667817867004710679349767653227882012931052834210839045091348695834590803745639709158100236326392491551802574982444180923026076346654346643111712407536590126681946017111187405584202193261445744199609737610399804667557477935415206753992614436134399361187631218608254169750348626172914843858344062412012512827120025118876491898927360989273136678826847327620302996508995713266576640234131156913003457110624236903204278443408317544693484000842710397955279294311740936589848403718117880191022863302515360912404441360947019672766211599112879475689603120329977725245714803404305319325338327733191602932812013334027280414889612452227420880531741242846875699059287497993111405784195317318186418886015477727878518800820932067529093686446824527155420539230726751194115778132208435992387860985086728386439226448670365996990823704029932781313891460261952510305229201918748124837897267902805990507020022761708458966411649895977053902058155503184544263230068083675604494909005463796479124670933441993326250189422572408420736617974271221305639822355288086526861020256481373103562746577491820630742017333193462365289403402071354939486648995925787154828750420421856691940046590520583384838781591833761746089297795915911413398166685049031577565866223044349127991391056073174448772807157358210421306195429023813861417441962739444811991032533778711838422985679255771066912775302146339342348220099304071981391319408453547749090459315773641583437968547351794641356066377951726741959039013092922650239253152534998751921817297997685306847926358157906187129967700402845701974427399709171556455376482236708948610902132485840112675671483484944521415834820532952046438524972919579026246456789669607656539120109684443966372567095156056679855549617032798328062266605587677979870784928484792220452677317511083221927745559629851617838303601412941641282263412995043016665534823600432612341753212508185159356970705969630040913466615201024503551532883258264600473895465413500946204132845444876059198172086650697592677601505650925933041364696171980099292278071588541447865868477358695056741172624267370588078606441413281404981317483421103780559907487099446444985654617591973503684911215950189761398788759858595873807889479540883467137923343267309941346534556721457044415396318431429959735950237717045820466541013099315284106731022413661270626658480607161836494049392488316353841600492290692384413728255991775778480304451928855965877990257230416194506354793910741203408639875065937831918938896968771082334917363282424963325977142842881142675321014625980603593210996293521387859864533294242197787322747877275937792175211648049159289847122399562822786700985947543875098971004167772037626833569895976382582171573859190650653825541197416512079369654143757483925434397889109029721377571922287698059920297129120353408626011691847476074262573649808202296214302438907022391233495012161672854955613715426754959544852660409186733325338399943681859586863647927244812084541588085770521354602663249471417327157186235616526992838444624820142720176903396796602748526986372155410520463799072488610147112878856945104222285278147411228949314803212362997902928823746677998667119108735599225698568945157089902409527287381108037713992032525732265594432426824195037997570316364882397624892233626013435444539496142125137913067731785793237384218762471505589652032041048822382762954379680243810226760459753236527808817661596452949511336403394501710740242037738444750739876293565893608229090312606838251992342565759500405078326848829477245105073195125973411537431416855659781346080352072025172919568475043749205319695581399218722339875129682355087204045113394233076583611343586740985026443604179505569692592057515506392308178678156959178613659378241957370669414991239556256815561934544901808936907800275670799056975439933882830199048405312679138805505085347544498844642362158238808949390183264149486670165047991991234412511208416956102473762795792803222646208443853638499425155018395811612980649351525591193298428563406748680969139488873621714459106839979475539998122031212625250232235427354809971295887535870856266168912406755129660609379080017443318813336931097270326789042560172323975503736092968559439634255955351023064203498651895285046436008325438471454253392808606734163959333573020619286793492931323004039672759458302777211769437171951256874830008450565980420404304824764025859373346815939507461468610436570021207790072546834287621355102638038576004056770856298676094081601457804222932306276983338932549082782740335441202282627452859207342882843277499244002294335680689470173315080465388653338832748013588542557581332397469271230370067845993013170908727062503662913275890446110654487587511095846520914767183428178043133761292453872577204565271972328292568832573621692737820626322114637992736479146592573740882332217505267953720322734415368925809612557576007043808817088622001086246619214734670095086667022097719617821146738469538043044725963875009456576133774703110731131452745996473729047372945753050727026877560307425201657965572469722074281185758868968150873547405089222536355615005545842633076537484590598043447545116868679782773326111160032326109283703736411740026315916268888600422928083038791196932627096035564152851495070190588153650049487188165248182201710570895193521691603687262723812975139180138802369012294563455680861180760989291033490368413856944190112761832002890530437570433017964780415483096495456384809844126860224507676908005409614001712842278923916237682633579702616316124106145147570469269889125669747973107920854344894547394149446306744933788788678179357294752255175064387445401465894202025879403689967235670240301482242991677291856480891113898783325074901471075687828268213137814666883619567298618018773637233985271327723036823824453577328442905671942472295224370781962829254319416760527861883478931162926185873044106903629725746570891207110948812899539341690168365599168846092807922041481617489974336378846417924264352230951135738861356421420830024027322916968518485625072520640584001945273772516192169212133036575827947373156738482416277421567203041795709213878770017555558713703972296662275638150614678194738811429695994282104215494814070834645238172572974074255076135434339174308677464060987517129492633511400121509415164632904253611620085804365662401832442845992962446642313241192432450983141507336874631743694573510221121591892733142318433973089572112559450803683983629287881274545851421924008616656299507965481219026769834216662107102635214636956462123299004670656367186307271761489274497588082769088619608854967820433139155480835312246815018161855083448136360097595933322818272690037697111090327113042827476816397349328815527165904871239588689148664932610534612492975117971004235890449563030808858810298026039464707552262237255000661810967181759310377413812844533939919122556171368666688592635335354153433686818088686840211616575963898157844742264311883871587919164272044167720583108944325521918753722827416259804964819623284447204059228587556035626624349062101463168252505348901527021712455965809671636038512209745024537056555664299600366345836334233041683653159349181700449413222903872763186294505629449529085817104356712906381208906480070239435902699414316200029821233628258879890157788333753784528492546677409694840287400692805513200382974666378913784789028116560540926324782151661275921796471898530104378499057029513387102359019591282560629795944525176902918239128142402155725880725007884216132890786271501635892452587562869473558436564387113807746294823573757647679372367818711770323185530744984358869787189038780762850897988392624637665081596510542783805369670217039628354591706128263161768444651433031468458881581361115518196540728305754903829488389830357920839693370723577934147277503891077010081495387581569528997410156347521674821440183005035748586640792863221519928688197289205498733243412118093546351319511207228528819697074547506113181575662446374235282411577708939593609630848324747996079718226400835420604588214239627740321464944612506014632407170037855822965747900390372474391313791681868821868202314497507541647697565295848299785817233605799712814259955988034690497983206546787918920892202086175427474696086954517670481576583108090245644163337927166818369269174971736790157604765840922898960672579985712240542727172131525445277409689931007539654245442574911308408776219942965622817977618391301965476957948027920792317551330473258632136249353446312953370830715913795081689131561823191145724226021087487762856912980617438886682528543069383096896891312240450269245681067194921791045224084299788246800404599848372612793972800775636884810463769623928155190884182128624093499720202120662369256402365302716087472333444573321911154267909071279139886013733173944153344273910532848227827120536114349817893136668597780556006732915295366491901043075106418794652224240798132062928294140785628663505038139896578808132038166274111209614303557274286259998468349699871170468698778328269187836946943534134486261854049328744500246244728676462009982182562306356697790262693227462230839866494358902404460390758829026555880856713879756795605402178258707097640188769705434771714061924256490360501119458321726017720114597881892881541567328153758958774091345179062437709768807261447930373714880871413825958825537515930717152386619637132620197087835484186329091560554349454017352507518142799886965181154928744413703302010638201246899482034050314182101118519789079840234367430111713354638288123223354053415228480737947536318570367109805310938402100595419833328453497738309874264851207036488781891071236534591562516115025299944465528739026164761406448031967997796913678785493891701236204652126895255919018815359965686278658417645607411008848839460044631796090804334637505770598051825410020936194266990782369718538218420121216944577743328219125191190712049622764660422225847195475733843334551405644526189064555783929594968907822059442408968322017539061079967668584001113272783518456146297278297110152953929869695700096729623854238984021306324948287244836678802036870154320367924741120478097990030424980675018586944874813169486601746907576903913082981635535557721034095388589603554594796145309527468738771571689496862184356606238404736991395358699252488839375083290007638119631844508056037102035777217065566192385116515542739048843930560073908861468993810047370427747306815444129224233422696016534741900373164346410023881101040118327257458998332364339093744714766841791719576283670509815541402207768584442690747243301322018743985463023721806082590840477523519064931717842206460364361940066370049524805978763683654287654026697513713022268164952269189088713362904615189160082632719702644991009471059262578677477779110888591249306776570220365910125666402180301901454165905371482602357208080082516611260731783345213057411602544931002925711032260579797111958684770626175367103460873368411989151176063598932523831457097969374737257106346000801703022343763125265896095633584761953230161352408989987014582430241247343691404972999379668173115645153972468949109180540031950454889612667713973171335125066089851904422045929382834420679104429726557145957271443951805283576902439179039220268126034309039069648745863123823340221439127457942642451486129075864719127327457007923320286828531139135865106245148988817989385141364120412050789472382949499378460062930425317772735453028337736125640109260726152242769231557435923966995715951687257300522761612742174154457670578779352521907144632953637913169027270217419279679766881563499344870841429573073333604118807527337474565000472433704156728451650848689272259459634568334657247944562673965889851356076651861854869292215673952598214265253468231425356292517713818671885493547863876778186345733221358776746286591211422338122492181514143899667438507115894760653701058343272295890045972262996374932418455850415320057980576867807286358812254219290635452881444114868449153184533229979725510084411473387384852166090177273705883825128013806205376915139853591998926832297846430179574938538726710437360067316749188795654529924893201710221667756325505033158088310786633156786831123453172580541445813487657624363140137574328427653032197235697922388484048475500644106686618552858413921304550737716036797601539423238161771499482128616944031102299368031614394945469954358546243306738631375330397136958162579336656432699850187381001353952084065724792105274867486756902305766457050358515094311588679344763200026597628323165642127812046996105479479016934599792082489540455453453922133562991811154299641238927117410058966250696996237930581931254681457000290630350230822901824818462062351099629786868887297651180069792429009115493023229095445149260762387953050733170307518247559415192625713059771260188589640198462620213985466623639716074850622447181984203638238155032153613026380877041909076914588650128335315180591053119094374403477121637947924671816136110615281904450653436667772007751152018981773232497543113443208702292858677943290509284177325735787008355165475791218606577182367178740616431336660557456426114970891126772814975748537342338552376504999812958277589123731382372678736688679313561932646814213686906883999066082741814527797153994316633998793111788413203613412688469902031779731723157153985728969335999580664662004768683653059741517512287472232036446739397125158817312569520475470988445611258118960334420895705821369864411430771356217219159671449319166777313221648930240453956120512773445949696829345146347516974877932652965337193761109251645729650462814606431850604085593844100429105741024142801652153638265358574360316747753427107641144863558334898712085156643518945065761742387382470597849062764527512178168603042656348177070343862920652126893139362468004717570430067757522396089328609932816746958012666082583703304999597704952066954309986840160965348350229376001931889914410647150967546735780773455430451642792915679594403705613845359052369261377544762386236795161033111085199760064086975075431849572136448032446191964683757666949225315902529108834197191903449795497135586688851188780276901952034424039721805415779699888501423020163634837319232677187524371323061050129930333251869573233931078926365940497174764804856961882316768906502230233700643598397070206005761768699874309634115112888652416718891652610757593156696412703901253480676868512271535034069715165223205577635629911722405175462685817619578228691673126831947969568416370388167855480037786283962213705280723741385459622252749502279142475762469431013027949036663179764541479775139871432966383220437764900833233982277206894526833850845801829138833762563958069869961894985887193669600231946732552629095480380283412693823443470235267215914702256094275198524224417847303985202650531163599458150373777857209448904592761950109247844791542621893871501325404491401716914533624830118872688847403795087962881476034944386827847566238763448329068835048282597664760994673285003293397780471665698758174457749730520378556494273619362549239021014393885948318293831641526393035625045684602473038611811173602512510518938230949980703780281373480033922991300469238782419190861729381517455164347566248007735633824603517422408937416547987578544533785882999941635978926805690425044617120130064241494693961309158491717695753775663077944398143577924964739064301729720300505854298016853328248490332048250872503048626544197293042434306733962715988893281936343432404243948572233523113460220736409427854616254239881341267066504987789861155079787403979153985347145602133851894723086791815724724370472054511477782419080186915211853915167182804603735899980045049529170476775723273607052725676126447813886718704832423664859147373992970778115337887440354264227546843981224547072683933611435409172044737190154500367715602741292543822780581165608397401447022752222761298222126500635804294469838375005800458344124836325547612531458271929016836250641252258250030533440414923551055909332511208084855270023456302386727948144518065159159268796522021832979794137483840808654550466508658804380411101690873327781028441950830273967256724910556807283567300970971748576940046837164096942867300514212924967582007260542065353763874664700840503101931630321795525066735368133166982317074277353512998359744642480204232612929673075260329130139490636133825122581335659601840595253148127837792502128076873466658710322045447582312877522871237276174658583965127739617746444057031302545017244890613586037966922672459412468406335324000855355967153893483506087817297576909938863445959857837173407376102486976214846441589004440798307855258277957216230705042046546784010709046063034441589999726319843222633235643368000532510422165386557347590470143094960967522023505995203015948914124046325879618872718079511420083716095797560327210484865282149600805154895511299463156850654823597461173199321467933749516514862659644857959773678096055491309965071444000523034473315568440982035183391883150711582460959775787727223563444652398125956909149416465663901849141482890758769684087585967402285926719322376070954064360472412515338952878404291961443005783659639924875571828289158171233987971272127274207931721185629190336824684910476400478465511442940917287029622342888618736477965968865294219912447532705990699287360392261984338658691782584339154709799863592242808135397308567851948452780380563189760773484550464596519488629541139458925276856237089609079405056194375393863150829538607866790727420994487746546386507380872495113248274254343574783590384886800091697353248196503656285706527622172191542882814708902834871798246093289643245957390588277113819946680364819523957861939897039576482377590008638030909922056204370928100671878522407479035234731614351512628479902354262000815510211671880889975852668321276466816126771334407886598956831851359853035825457400876313849326397225378798087847836866706020134051936877388304279325340466826341525089762880425833089932625314127575323174936231474064081370257875268560945230524578994345163748638314340834189606655784676474364344132282449415952849053444613198535522563373954161812147056680090000042319783783404614893913271887719078901431044543150109672648197293545515803353769787809380114490543477898535763419912807743448963914401484512231174347591454903750863166902270483019981793484509604003091953093209744595845542345673564173059471648380498476963466729378688002156020853353987253769325061321413412476200619416397496896203720329235523788546860566068987976604863933589458537760130199017108915484923146282237990832959266749778205594494713443033823662936150091132214743997380677683074942458349208611680810282036047405619022259334375869735151971894960890424404459986950561954381725069950125803784532640588318846473391831450208010276531307749258016450128763418331327627413789958966414901627853265453739810322022409696008412002827201074977682390598276744941728752585074713860077882208205739754717056679506049525882880108245124979536439861029467880205324865970299232047962860185193215702542709191577052588149681276237295229968532544992461122856251784643564571565485505561845003641575543309414551161759385952807079235577890791193283438953626520530107860546600383513960149270635649155409206285748049810784877861327529007849847879914661603859880987539517712078581692594679180521793787913238901548779640905462309820567807875749568941784357931925175282594823978056282157470786856107536471972774480394040425830442758786787854005495835939466898716302920609202743617099236292728973836248463042739739256471402009100076513071657721410993193117663179939593489319076775519150779463655882551159784103180782289481398469504969583866709870023977173694389242755050153938063042678682610167147271050868668562009672837999334896400598020876450753363590401847659771356728913195945866260616514394097652516247762860133483130481573157720701085714658374796532695323672958570087221972422783512756579103528169837872234679115780217343726390366450429326592707658262882341970835285953854023329521217667500970571481633980949717323811616079012101923494673472946462408278681344422066998603561938877703068181923851934231711560081573753744710436490442629578990704385182372843082089791859679855257897902705629278236993258374355707275805004142743968854984078265851600282392984437850656292214895972469656325961516516793880057332945039527050763068773071796893885937565391443500966215180570390175613792217177121947021738212105401081058073579830537921541989336524033231194748644735053119656034337274782860584108784555855898110015083701409336161853636002626351568243778866397177169852835362908086821153446898851700862739624437895752187520718030915885462246591762567754154884666548384565581664917447560942289648736450644645070844541958606947373568475799008474443912935451115964840933448769582192749762470179986970077865708427474766466634016220426747291486200017901288006306328198089192658085974602479597064861050652032785836790650814809219525579265838100749832920261091701484821306675806035551239751923208677920860486486864798364521447391538553984735389272737492776564149510179728590155122918073187986790306532487615300364190284747694589471306639994299484980919746010900337740241337650875554013161413809484807182232223313124424703025586418107885416347315590001567753605761918597395881074055334407032955368755947796730633079813922852382452505420135462171424613055376766699613433469559534975812957707078790448926438229302673482553116042908953773733187521072353149120271966850287318627324546839231795118589858175580952294121977738503226744582150176355307033616396169440510273761639786241425888627215562735682743592243200396529705422114239162080848681387524596488356451294291723239562152558787323271171929008793554259605957070224571263110803759708338736032204523878008939366288524054017585797314302437397428381909383759863308691811270715096946777204729798195603964897262248681674860019311092580206331978829512000117883250146161875167468610015183711135693001521757048021873462483463068268556156212407501434004090954390380443446548819332053791142289314180983976300160232540494265447229465821277765847484567962093176150042351571172812477965833941367964226697319951777717643095066732422655429822152010554644002930505862478332597630820046607301791509781311614189661028215594184737435318172793145723794083385880696290067355850101055554488414434920571692862285451560165914141842307570080869572532657056381894098532329575452200220946371272987502267089906858671662470934866809473455432977919758370372770901141728949406734114877707741392042895079929941800164594903213934079126671840309850621079993563117858177091679430800095213446265749975661782724803969409553098601910868519403678771258740136172211211287629144577809031300303876960449163519192496677572862390052529842488297740120356325663614366471823462513487338874068630637592352472478865628037876603342564055970271296394636052519351650723190737542369800508757326802525523809523554681875165996935873521614117071311088233796199490646866187029081325014471799351436808725903764152076207871785407181035544300245215320734563481590943711642599831552274236549813534789598224548912358137675870134060210927076812409235670813286746660987303784919101967594753862324662868486856757233258416880265348002059620980605317613590672424414795560832776969363648475512368953575861789084130817484879747400594435573465431843734217406398051911553025396669313757361756781296306720174041674387850213188015618287646143847505071944427322048941850152931670001762684409008599515014060595850127541036712468014947260572848949560990133840663646836702494451724519086579477670895127571329018954159007607745400575267309050671449092400456170448020563091941531027323374427111086537347243686493804426929872350154565530407854079044622193514493897924077253956716401713801871193430806073629170654798960121553473900036690563654754651894396366319772464098641892875274332755009022561280310078647423862998030268099386041120752105887525867105769376383598232597381883037307005315268520895444350176746980743893497015760926496888129036063386067298731678935262140989839607051582689466072481471568636330322659532779428823548474486096006684869281995017731183799697332937555264795614649963537142022087518587457977453282041597426623079531681916629569586266660769923727194752973900312310693737120111535184490038297624496983835474267140860712643352206390684899130061089573162845677529751145790294072113415296197235317310060799233545383632922271549378847086201117172201282989135794288195386852902141852954297472561124961174756448634569555293039171465004199980600370410043192746591614696080534504606022034210732427155731856562578231689130925869494462132628866994625478878745459932245975870516397424232583647691033690552943186511379064659719177141002827622361840389710433603878279079329055805769243197336111352253568121216197991286725632121881708089096355848388710491275064495071082510267875452505625584612907727582243700330877142427527473068268135174599660972109836184412140235493231255732538574107634412098118631275064312683666193508443622470077882769414470083323698101061212427824468934914326296438655730403480870343891674237726525672381533710204303222621374606960827913628261238862855304635053060942759950977135646706874357526030806843397236576333819488037328930064737322181479395048613304479661062670960026123065750306529100135763111111395126260546023136739739264934366187613582300442489420426672683145630169988629902770076994154396643948029764964677882581067330464270902998000073844769086905577254646350281259491161081900970914583449627273177844630908637785075670026842991863464033924105014615272109286068580563115887284659056127541199123031902713715153613894525957521517531549808073837436486292314238389114743308882849370761384398149370830236195858572282949077295424449220647575056836281772955511944138565955217662404871022026407413332316084088027145104591024515588188389582105265833522829322161731923914183865356832514317292709447415849566195175724581839345578473627299747758690167568204671652947147687399835467873998478323112591258240051881267794470169029461992156409716602653186357277459614456643668787702640054810725982687306607396178513244088747155367627959697764290805391294413755883793592235168873272738925398801871510974178850139329556201292131232191520158803382586973755413210371978237377907456308340294410733553277530934532693762738337369148716735229892079957448275851887608217001197481149524426227234936992456382973321601668451523893127743107035674633307225422304830881053793073650909308809948934263098200363897249679175434346204205231794017890874761107568163487003122669957075854085183927896844194455468512834401823487256199968412597843494975562231126885134832871627955544038037983947772171140454465870660302821684849502392515166605064061632335670657305579185051528298645212578492012207209656577410214153468997705198927406936867826822756221734902111033718810579490327127086523470463462141613812657858867744112326375180979212044149191411125566578840417119539883136390334844109105172144698818346805678597167170708498073672452502071889442102853052403176370110358156142437185861420951707419375769409216056727183310001963855834639097119126776900696908467377139182155235560020360927281268604737256720759547870903722014866555963984935651287915288304794850728258805056528739305495791675465242511768040425072539768379699819417147955353094663509648040526275969047617229339636527661023449374950137944993737204822030645919000732433811832415900514374220817013645445294382535907199229245197108465518961462699301561490828338072607471408614311944929838114832560630757254376985670734513434607105183848678661983590957799209715659581510720311370433638252449999673408175304365324836454267855041017727398061336996962506048838040798612584739405518839355980692883469731945077334629643458483668387930380158211754218005003740373589474424854486977064832952620382173201890521409627917888851322017136512098701931894059310741446762276031695160264631886178261310680264450541155935609290263628323167005365100876259641690748892570160603150858996158905758453039351981584555262534145575629645443099051429168595181682969538291984870238689761364652252107409557993165492099833171621803923148627536744117184958178961191927707209224102214472957266539991013851024159973571611155210182093078448714144873125323455019037545550299388316712463172399011528713098695497885590219056825172724463144444063046706279059615906694316673066397675010226063856991966258130184859988061981421306186431871501075643619925404900151226201030413941494442010311151118210500912254747560717830704507713325844427833324027254403427583159099280774158677087315461685771721835787458337893730559479843672602438248478186530266679956354952691294754303597621530128014044491991227502123028524838853253858147787224419203923023883143637297725863792759817995696683935673136325236889253252969689733413618598105214382646843305745238156057099348123251050859079307231990788397850326683045809349692791224063389636224531585006166146273848122843034838527829142025344927285572770080519251282322069803685695529624783094448807637557254165526648070395306684484239461533884389213395286834254717385563558670289987430355876539084595588958188663129425264347456772188050124098384935571539866757049587927429067952340387113365178775562693977925281249841674401988329884765256689115006895766601864019466858388946964897754775901708881380177338693329545095294091088483172697088362222019391248565366770579493618761620050808843612117299946775451497698868310529775030150888847827932973702912074943226136240163727302070393515607238005182651144332590527859925286262221570771555103914138016584694971444719720357213852825969637098543282794222772286689211368359148519306584663090062728384665504915295273698245996311121028208311736625462987834037459799746028648033348196405258056979422850945523094276543014105486715714774824072748841794931557954299887043998896039567160757523085265173872690738758111197041330706879428602404480912273282671285730594782086321680200107069583623951161440106709218980317338489548089084134950278122722462341875187513523155827245793073573225931676173823738727247628734381297353142662746213282623954521106743586138322947404356921509402907493876575763031242510658856425437723318937994242582546299681678391068097925435638270821292216196654024394343564451003276904414780410480160505249698726984832111025940564359857647717606698970916126808325072586740344208124304183962847778725288429448856679343285349636080707576488384783707302476447533725135708944123154784372796135081203438991230758536221059499028342159791972465723273161082841395622535678263546708966253741251402857903062999547788522459100072137130919464476195830686607871699107878310702401655908465466036553012998775351126906828864076097609680713803506939670354012381644866844121184068079543966374454611503574854381505899671624897040615445084472714038467184944378139953111857791379075442207784514218619040404882574758950922198895032909676288841989658929738584544153195790705030779342414381747789113990583456763301645340435824386681146243312870591335438012465941735130854539089919543779890270192729338835721872380348832750947647957226050255153459302743946418750527623341617508452721567552244113545827841426718278694558343513721070587162901115771606350808083451619282400307256243592042946890132218445820617803624413467107873931864821102595505687868029196098318308684674118772787896255426662776803723519309701623219977144598275348422552172753594124802718044550842302200478093510192939804530252155574813253758941920412465397971992047691284573778600477902419987763789120555311470476206873395585988717910504336171673896204435604194998039887205215829174275940659795792224915960870335572711759573185303640610339610721545411050888772124388179529676022964770882137113732084506579447031074095937699574792303351950198843568916632504803587751355640185284200693279751458866342693208296073460091647230505639586194468427177234988089643736418577986771754567181231812408161922230165466409543506074332222347771417878438437427387718078154632576429780093471565588979585845361878892376275527751321937445579182396182012977702205737964496495534891527949806854736615403449065737570226866410984902695379072550283470123843143859734460327454152031600162329695971557674801037727913841010145923273012189715957185644427445437873662216315106336569337353034332562304858211666006073123864406662690597700254888308851377657940826232613390782600565371479172390613505544722795181218097027206543999312380456797484403605131014545031011519110011994801461398333045584472239603713628730606228138641276542922697763324651077610783015131285992571303672870410179331023522887421171770819884320395229599078372320913258893713731978510799313874789204478560682530182466917525387353256640475303756857367545352621651173627414132190451092111861306448070749665358848307885069734413962721285242792938418417754231221253043708395586300080786043341711541495984362018923231063541215170205486864580838719534453879370823975521694304127104787064327835195265582238405909400260172918597016685427041541369780867044569607232056272481905145043113186463072757091269154768222331584208864425462722351354537622376645948301707531526928428085717347608300303723448762803186265884580666929420393767336466685909457241911962205306035206860555014389067991077916199811022638654560155495776110957180888077245921902494261152392486078714437053524704024849151153427582139536484213970400581433016597501202308469748598110985380520332350442872692203007621002511310493872719636484515240166373286765262594694954480953286830438692973734949440750898741062600752252780065217402511772047853080436663957285348032192246235460244026631858196478634827581072842592946825212620705715632189115419451239909408489060919756384072152703771256017722064845532126553801735213367738736654148064377751806928381596382112820082128740446617553968448697687442945188949445639592641770976554255843595649505758471696001967891496415546918249730019079648330932432214784702102104327417443350707669329748532409102560359751457957960188843214433020681967814830129479575354539674343902172269801794500031592011710712581727848306375360395439959815362798691948706962061433437365342118832474344136875331698116551269971145297844048211811362006135726834785569853558374600029437148535034756161214166040450034467019366281067790431196073402884333665763387340083559156993218004549484159353470038448951811230127710773995915848639523602898355447076329029718998452072385972903497895947836486310716274324535022757896473498077082537640765271334428844942607066528937947785058490894592020859937739125173787386891024836450613094536937316051696775177930164204422920318142731381116726671350171456622661855651922777424859119524855492971191662340552596695805372237909914117703854634166755528393514584935885987352249883690328010054551976910679009339200310254473324229492488374550715698873959751721729939880416058239848761378105511987926245649481147610241074244446089999823725065711750126965151833712764659043381823521436944406133514739438657077365303241664994084563307891957332693140612818037550353972469070081178760178946942008454294884308302190985792284751069610913092871893755839375591220406947857987488424342051421028721092476545542360777866531458795334451619724454622625332979773546517306427637552088180325573449523549238494672485143954356773016135663503782856294622188835170159117786292391007004093001333649830863167666244076650691875147407657616552574454558332924055730592282103298694151742390643915265871699667873963639562766703430484107553543849144909764403445282112103984610508223860112597381081723791406192919637945367739566468125463387465458833749638857782651238494673803452033999193867577342480827665632822105896526183686262112467483715341440532285222548815368505244407134158147459157845983109433785526029141819470674725485369423082428550282385340536002494099063340271614488000665135020951463466987155355753995488849539310012226254739090326418600807346209861433452680835369657307937371052610640665749088963456703511133619037531647666591261239455492860653594360511358338447316146119033477372985415004748708361758848690700748774907076350671636584742115940702215138421638817107281268762095103417392744125296057291660094653647177272666949025949143015506206657892340194264942081491505144155062731465814063988816689359382426903309551142778465145988111989632307036190848111098281337354364147606290585167635790909852572811523259702020562880879575413658960068246992536692824771164200250045639425780353097043848236996966091425286660357151086246446460583353700489635194665314307472016362730410679960287219096468199945653792031483626991816853472500252431444744469729377187162456436137897121672498305906175359334863831433884225548184583305345181342466248412982082887220986575510235782382301362308819404038999071603022331801586399135732234291690837899726372560716708977351025659058903316861234467974505147642341792083166673387584958613507454697882898616538696431679479014187179984885359228051065988255069831910740828821724151892873431370154826043144655412525576721832800398585514167900874841981019109806566466714622860783342518708116856074316739642644264889787430628724012830291886857894677011053233097984306878520732761165007143867283488983940312294983452371087311273015758442108425019317069428684865213277366460307384164079724981396604709804635694645854374061183663812011349262078004329137427788655172803061057610583912218608963795704723087326391161788125859642535038952477730703397664004132163854311476048836974796556023480028347298684108209836526867364673086105808821767400647656138204700287321546985364583439866212071285235812825001656537515160606681298415965456674205816894023963130974628672044153251648422481177037744519402974631794989712150629626826806061533553893313262434739879904592898679907385378597358946000789783972926184668106251872045877043594397038307949035533599469250430985768258115969614949942065023325896582584807606486591484171685164783283164924114676414079337562896198756711030659374507259063376770443223259668636546149757710058624380776175625255826908868249419341460877316259152272810606160210068920462893989109489397110229768021559724221585781015678950178018228319443979329523158183163594954185535470123596871037751731818979717461993104780209627334731776525709209576990675136578034788377449003916720746802675561750437076184855074621310377837593803683568799940376056034979991477427557470982595877337028302651667276658061165817718629173311363900745349092953825525964174072864579653411271456650772403531786942360961309441473195288625134356130881756802814104898332836521924058610487136432213689493286382099904102447595225345198287917754951124929560640963992103104898420049656434659842855985105911840021662017128908926040365879431555270311462804851660938973153431942239196139954268254725399848940732023082119148312270688171465264923917523869628556803927191916660575249860221764813331599696942290629384494800500106035770493549081391857034353774543048360737323260629637665300080322751384334164385663796221016240627651722783969912518329307118207749249109863573908755137763624885782935258232781030117128767547763714903285635047723736847246295219672846024285438592403730882665357599379426439286144482430763225450158717889147572456379590439233332805625612179407445595102300584794137605975106399640297861507094186746908754774004442502465599292018811636970475302184876016854233993712826787408740235870414148988189891814609618578294710420151578729294871788408576759972955281480696449682902357673752131572646068298427319352683908148293854367098360593203051884920819080368071723260369105244775803935138901428274510762841797654731269324030632384833772774377250215302644149430369380270987040143337864726551117572594774787873867790512662579210881287913751125190207658992735160753904056973958015101556376802582210983514048256454302585850147094933840513566302037675937386197226992441963048480025981852609984103764024274015127829637101491841730507582730569531986914662149300813880551485802572563289365495515492542635080443191322333270723763070675099224229958878165835109660210270590857553844150499220960285308051233528128345704659549209001242172172602467917966897536949190630281960719703827417363165245939299314613938081407615511814023437854014047856958381174401281483998803865912950835018374471020642471173479764749423138990517194002300550757180587937897949684306108047030133206614991111628284417324534719212007329570341795216885484777299949042767361280082904704302682327543753053170907736959664713793663915371687956615006194915304572837688898335972974063610725979536518537036208379400536079118874556726344045616967627113788065293577841320034400430514344712967867289952708846385350905866133671229915027060999922107888182812036184588401679481197809390411040416137601479735740707977455295275141924328947770262554669679414146717331080180249762456850218199662454008891980880741975387759362851726060869169681858421991988945384834428166926479120049301030123967650196119207504613599481342620656052846195520930900698017685614169022459833319440803232472379569340733297314169036925517079967144975996544248746762625567587378033045750450044229915415411813236430489840432786451084728023876523156036738753974526523750790293206441898259267658634960396109811056174371574031243752686011719472892906621686979321526489178761871648832891695421199638593468246020527521529119019828030336625512111767775321584720175401524836232156612389407272716632573392620427529281564059028252694234998001204968626758546302324900413985713873682001229754673613163245538600497816996597904185049203462181370086995689907102446333102303742134992926997126375876897910716521959043477799181647301960781878536914836597766072471959385599901377831291370699116717244257997732480711446596813937833328377174111198774300537155467960983000183277530465794280167941759230789659609848999513010011369631882439038448107609821224049401589755578873211735489336797284744158710466446678792657094780755029131303475418682340340375732553507512432504393692621545316859954437661463619123071769729750493632847128019602965108218869012913201286531294556246960276607613804843810033658391747005117980964654766571573393850799713806785021571930034227971568137861493901933957803414523426204440916926584704191319178393102275387897861695827298108225657189520524505253131229370384387963423634270961925419773054200144979775764165774466323127272739235338575355162421102488667717482562610150246289313963742861108106305028897245587519412211840506494592981679452095108798218922993212374732785345554608888040321086400739732884875913555612576672869013715702018364737567951528657059735354240517128751854261009769817660365059479459152828256410448297326864498545968459637889191021671595219884257643936453803587642686624265138443327632743523576515421056189456046802736726160979635584950477439213549440986654746339118485616661486101601969876822724883927645484384244212355932510159230023681993144276560469731466647872352074167872982902309287862002964693311083015663828318943678893312962990311016720727891857181775967010703752907519994894560238523919448198633181037619138851781981598891562556526369745958930870227772938134749284464602398127464475071415632253905244813582961209674654000383032334078562378660580743529134169309176557884409494527813650865277229504301706236247385846232471042153609836023397931879384822752552462507731135718050156977097057101043802445215455739648691699295286121016431752095281559714119272137444269490880915666209520532221389732411590460215871225836086563739213618031936424842231300650753892051453772578179310179929537005052700545187867640545519132975947668286936239762402599172616852723953289832682121523366601390214863858036309775508490072382966756910491148266660653261996793126629033427996931293870501698679068407105950942344336802909858180645378373717142976705163543452304909434791360841114326685057596098033838196850559907772331780825037092179527478760039659780566514431135213081296309566827265273869202550385585968026186036281158537591285919307968052955689927154893303432705199429483085861286886023868647691324132559141197702161928700238580402213056493587555702373479133242267513409257795134431848233150796482444436819205599309304988609901579152354049201769035647089992758046883148520783646581481663789912862893746721745610403330414695172622044114167995812386776060474462979259877888868246146510452872388549781617693739742026938572940136038938776046598180914706151702052458966972237702022156838062983956159290633559759530195221329332402653081283741099714840931340540448527751504852277778383044057242337878829861468726565834937410952227339998070500916336224714662176041165683264849542207979002248251201509812162516425641521054854679294757302946765476011979197685961880893674405140978263669654744990164295132361231691120957450591182746202052768107295841333515104913296632094524757952277740344840030360778263398185030521964507334988421766135236714237824351112026187764035571214573949349775888457816521380204055104648018910893994114815956965679571112974335346499211441710209869385062575178489945103684303921693733704156380854437510675191419538262577424210925031141776979332556312036724452312059921526888731719116949178190878553524197041128940045112617192549278150384208185770532210881886613744124157055702535289210087988695235651711477886420628460722935118732504868417585421313829606337404567377668983361231682026201592845607010796167528601471656929345996695965228227462702965782905297179072942320242939704707283405337648668089231380353599255918243065098461127707592318285341436126074835635935321501689669256700208092539584950254336810783304482419268846757477881134267683360962164294811877670396858563282320386902454607201136104388690446636435636649062450702353556060263359487639053639135211231295590496439117464812998730068597178115507995892195806759229509138089276221646515011756364048509502217586667214691096929867175282378811244314999083574928204521201653266184916095860207296868169955160748880259602482972369849955087353355528822405018926602664562769656701292699245431852653561996723167772989912216191774279953682733839329462302032993251040369660975849034494058849897114520817381354331823713404195595210325079626207444324027217079554368629046418932754552542296947119726016454546590847204418562030045412141246760991044001450064722139787409988177285369594922285091503183670273436036671951252467437083617002003241229122602100213255832703173936146126130616978084559677596825117817910888884791138057055372362263527930362489634343436626609662343690195101048069890286756917482808590102238597473346825920033200701692620237765221158475992985503461043455674156924786146284750432709104378930663969326105413668403121489006538138891063827380149961651435433337599066477930241464557043639685387508233969386025866733740986372731746824849166925829858023890244233171128956383475471298941450873151448027792287665524136623166161139572979618748291595483802027925412775796520368729876043515536353848481493936431762154770132508106550153237521369218164033175800463358265646172869219574946784582980112771534115408696257010257158183739144005808549463233500929026254288716895716846633644593484221900336417898616476646244799571468184678468225849501238283344702335987095590401763656046128425854877077517710507532124534546318432492106792014911103233519633907081519869731850084492221601445262421223366769406848367959275390979714827396392045716436596040827410753275630141638319918676630312134397427454208082431698876714442926134724471045002770654821436043623803780900301803496438389065733659724538164407130893629828547705709607824492196611474463545240244083412180839172021276126530208090919189320974873197407766997664882797384094428515937421659912181892659338185390253386187380295722639641870353943951609737649154261599349738331384113608007413416369212754012500127583112812305714447427627081194948340266061581100287613874293171434969243041351950847542670020515566454279503655497785299434962604482006944138827236541133489108276773175420179446803583268042937602928982245736741852263261308323400805085378336396284322037084611394431393299333676713717850790245582864716078415263728080094414465221554073880429514339118606586161541239988887406472011243071587335834295599787114779152199162096281776316504171939693345429543143412201954341315813267854679203498644828805946052014364359555595250915544169942733190843815753379072182714695901686697063575043928189896265460811729680731846293509465241315323176076304861803216885146590042610328064025446314915912941244130455601348355762950628908374497858299574146323224364969673852113624849202957742913025029336225569095688526737983110292017034152249433548537077929369159688045180105608949710649708613202772482552472487680495959949549829447360243603936825522449776324770941531244553281340447419597721881937319815830593835875132609353562350280447097086329434805168783238155037790347028131778228310932824140138408352634219078522240176196905965375727899055148993518335796612532355411116562465583463698892779234378061423833696908768319728446409072906368548559757871480275735849105013115738853458148963297612554702426831609945880483072270471312341598223603112084749580793450182024388096677341915983097489688974742016892609509817009935838969233920675475246504284646362758276440754297106395780417358839077217211484731678709759761410805342919443352034855944942268957116289114204686650465911900593774452696636861387145695242044413377759148498056037600590693136744641453076621403000126338468842562761721792032105203692536825419588360402071084008329654641486713098003975745162332137091162018059820782857711447901309029785594393592202100867218843320710021885734686941940846546738948473578778598780042330115620581580749992729308327029929402948721331208662391238486654670974733072708957921644352958277919881041039573556314430507378331939901071019287990952451860949670530166335346206603082594103772647983432704162185734680235236033530617938117129157862649539516230390071866376301100006348828980070395429760400320519849993709655657415653991897830801393471134554859691120294991596613148613516624112682734806772095246693093253483267320393419974534464663824160386647565004091539386478231638844164265869673824074938135491416698189383732592822780852853187610215279393467292062006012692837985452469484368727269859955079609727143350660829438263554944088126119636684643208164247208801829293194202513732280872679048647087055983812486655259792369419171946297296836222394348599485543876252585566977274081452088122280247903763898197990213085390034126417059553263000293127664241217039036986102239024470947168052821277665230791952621663863460597864372568289223728258366356540283874584142610248031929975123713802882478373997915845928165220230579546571234490305956575447088204269778013398951552656631108258597876157906687480669556871242644641951957549801167493331318514989895936268538643625383050496225486875251915473745977115353001871535427565501013612679694309955019780481862323482438554988358825630315672594551708852881824938305395872725768929160293359346572778736376590980054689142998271709829550632753596635830920406976325405697886955651858599526275860296194997757022626081354666917894793309057691831544184278942214570518570275629314739301018380829744150424773619479328795001546801681819546899116487352615692971971458721216991205623902071484147232618420614483598137396735656924980105861238284190692435214694326098033395677016736602449873878478386854850852305229730300999027056647986447987097861342299648472336269362110663245435666393814192306088610455365801196875124920153141887395671519570273300574234273632937909732328918840481804064195377759959059031352175525715892036747257993163081335123078647764014685143536144169162695409624170826847282177208887255616322282225261182874363869050535344236464991693962552717253941801363921609806716240431119219591867728106425968878951843686920503565216796184502212730068673592562110822067306085235340138104434411725098626131213819118200635978002382960447138420394415844137357360359448232691941706444232597181521249522132438998041829238615790703055611067898284576607131384767900483982587601708055286469568448488828528030139501360827035347750473235882120207971551694684545961947485798284593341970370952497200370439244324161293084664099829902272681602187860182170351012338863558255225599040326933456188255931720992426574480870808183556462844122516215595747474937382950282686268735229868493651628661775366769285942582085815657942332077198033971969974761617554137031024945503026139186769978264695240304172913768561250188326912183943442508848896020400555229977309224717318272029532783905818509381785474759224038628451757564229899745152110586230672316183470928302721760389569976658402179569075454150060228926520871648483232420381247945760837730790987353576513846067226030160136179979939473766116295541604482233045593425110435336921172080632355936294291568731270316266304356930577308477471260119591615749813500959523292138352774094533014856957776620484948677965742573643756500994102371215560261947015812884225396959154506983678318910656364450578703962544378130522042677653686051107389067163591194203424824689831994554172342972841393832456147437174398056515226646092076520893034708584883754944875409592301397904286945954055294891828707988899710484780786106431693065211795741017095619011152742949095221372663568551567584251360646147602559495426096644654008662962947540253871298605272271457867122713584018578671405518478179273207398418302908388459358347906174383532987327833842442859778591189327181605331190108030013271049576294943386563388395661012589034660254775090613160523263343379536512368170447776649473475191680640315981532277603815712613314576178718880583582286748483357502386266862032614492393214137881257937461654294626190739003746175696703234201341903325541718528082743846084906597770437067823067298563802393140336029127514748298420786038531141532513937096059356054139048043796527472378316844562888484435606737744187570242300271369457175931736334443460239016855407602109249290452460062274529393863228623135099765971499251032063812457829726223784832571121281402546864990009040811185752144536741534468317680855369407029685941170623825471090024850992852442553008445493866597330572728214230397095591817407151562081864466765000858260780893894799961141555998007403867821526403867043687579598959150574917877043483039243099512763903796942375251003361230841331436659501849870948859636138841650826264894808742482654645304076888645038524895248166703484485169165007042866149064053523408243961073613521257495207637581871589525681068314065828438705182513406281402916808783755436380902796439439683976400147126561241923860954842897319046668451975194548624291114057270371741685175245585840535392011343524792935426336624852665429415801943002529836244340708997374272021484317534638858341437091552256427456265352982064861552589651843692339240743421661537836383380357597936294547231460157654814184114032812874298091225019903585527752980896610601848700704005339959205689955440700994991480630011665085087326094179033823684145128883613849296477994824056648899232682081475369451162789835428203716410730035655961452927605231798472391522010031002377307393364672183853995046449553549603157737880284995652470798638736186120300822774857402965734509509908280133736889758228158136184085890060700155600681641454760393234502661107064320203840374237816939943946231008676814139280052453104337266905566626857198150055646453161334838515881011969072088975500491590339773370292661320197659937529638916083607111816127207397368976849900274417234911631840500524267801976726537967367533520439406438080126698628103421544493254277373480966813003685258208661333817047900995318011207623250021674498238128329682313285496570571065403011506998833029069719902135029859098837820737171086244659806803719125506410408694839141776066285233534203693221893887165354972101990595272332831226409823307667262419137170194507662717979702258673122077555820966547176123211656192124092379668114694416986779159519909905511043074498536231986044731723537035660633823443706877593428100973712405231217919144323251965160551108378521481712715560310025047805757747417173983172475999121386373825760363604424675042380275432168922712263823382774542278721293839654900328114904958761586975559945118809101675116927069802483123062569832654125962435860083564329838107074162901393219146439326119987563713044542180129819363417849884668637241965889977155490209831122833238491269514986265146724862230101980795920571138747653351985200653765089875004887757856486485460729778178852047315756324239473682503672794777995003881051101621455500435086656832102921127115277318628627762798721999659403013286672669071038617060549848664112455977928093300633701184239212207292915790998184291853856309408744352712379702930152297797001182433207169515877518688374076845147493410994128990540179760485643108208108359770473118706055087847214482825409565999471097209617856372371386891320319533760564990349468713265341797910887982719948485799289018393029214610382693501807188416221881202549798340441537225591631103353519580172193628792895626146390579140330255378188234891938398657302081557048736652168953995004535043325901728635699874630387712639407841073650690618083414220288731417548285478589845420553773949748829137211182261158895472757839661439622278033888957675377798129396325148756340962080074924432290578205402595027416298435875090810167133494914190395652365837935497216137255089624677686147801494399512614246958808102614732597965584409703872829434951622283259082397415191476835472933724349867627930368668582750801333405729823449101587795816853138166766974611815696990413170358935388004674780283009913742789331703083574301185634295432660225783642062632192348126293045975547663138753541690786855714416140235413790981801640068056354994271117578407704547989552119149480271657775766857995656978319837092939846886467882542213979332753874676392411285595209635283419637607543777786804801576009589258255837959308873754781403971813967152537398435298047670670947157255889486798815822972975729171042874838605551041242425190469466399222969077923050224234353351939159777848325388197303306411262461432692138440644393382249864511698004217183126576104745037119806677427656562612803105145176215567453027219965158637452634147067641421438238130902620734159027264351519160633829554475849525664469398419814895034080979848119549765813357193525196687309447584630594310317422366171880254234707548191158718289587667336635478830890298856551945471435332819877065921754401388319822217901672393078257656702712446956433373142414188653724827733413857070284983686031170568802340754252178917831977181037219661354295325817873709626942208553728235126859422116365589971990505144143295542847482767621877573282491562164361522568045969837512330480557159710403329304877131718164225844802340230224441449779527302049685205250928988176929082983362799905247342423046420804103725643387314422379244537850775734519655379384893479188405867435875037602120156480113374410419928309579797611008327986659249297191656968629207487802089559187572573306960971060426445790753453098951443594781145375782873733094456929612203841566262724842762234976421916132361521488827393234920379684002639978471513854901381377394689118120999650636750069191893809477763009674307412609325583313978354087325179710847923852405454302417939620432963036783915459374848080341444414404933851923300821434647545067542113777518888756615332920888777460379076263489316364613680866071752012686088015449741682764846972569613464697404899765703081124733477579453249438137451178803632916215127871221774556586119799614350378146560862022328447066372020177368955905103783593116746336284373519738446612275246095816667880139302250832167516429273963891850104693672914014199032370679943882108653997962570441857427680676202129416876898294362375787243594064346011929922624575505763369268921520883323002980927570703148865076798590256256528732105755946419309108438650069206409378518371836401656586015279532476868542591745681578486901594878407376139869643393500081139089244087920133175386477964075344758200192768060805259030574422667484308262642051400504924206553986931806465243600306938727934323388052504682031366235182372482742920074541820518917683065012147602119060781474212818837634772217795858164506887224802349933886439207768986847069050312458128572322249117250425336599670798906234670587005783645763675876171412328895453477230080647087834752803047039378001958627423011277041375519185840418597705178144990873883518980963060216093384702589146962622663102053629449827096635308875241994005838052993692620696376946958240486356053400985414412139518275504457061117902438978465815767831462331589253928196274849923979847624821711155763531804406739790975181230355596717846078692687929706149655809008260805386085348934447183213070835597384202733827216407055719323256742429912883101173304253663024905150665599817990934783548810877354060287227399453841439142549162960120297285256850656412261067658118614122246435267125794974041688786549022785815793895355368342959658962593651604136816113187041433690094454303507336734358284583255268960841801868203742019890614703084649965051669436099822871813950546392858456670312260223660982981529062141894955524189370097184895497642362935981991234185647962360435764846541546254229478090290691265883995789092761043472697789714135502983841175915701202258082983184224297455404231669001043748056915233991292351114500144824223685896504209464546204518136283414263979532007031637515460159131951307539800367983528414160484274812731761390790328892745148123068435435289063922948803916894546170307231295836162023426586504982344083354752272467062645265236895143694416911744558717833080011881361109037334474893862918055589034905964675321760862518974643117688711696675351263535299378267591568380076488565705184579281126706096991441480024937282846138132722017566439017446499486071783512919595291318934279847499847637359149567936378530036602631130632720220237275680689066324569065077169101321625021680280882391684624101701754042354935957548670370234594461557196875701696961122429557699038927575739951350305767210613324412502982942787617177789948033447636200261804130222989008873133612245766418480810893861590642026403659281243210667275999330920061620074436652227516172404583214944392273152126326763939538546495945754016926467350037337354126211268375066037569659254100731169370829181651302382942710939709404469737937217362546782101029443677959849994422793521738227729249138066199942720849036361439724068741224099933298664982086674192241915258821626291142280675398704123376094270503826387682444654791671831059289795560430464298204855790947803008413227196442763290337545620328284185649587045866068765746340430817934000371643009288162852215869272639719944170080753209610593003476567638888031454401207874752626314302685720897683911792725805498811783603077579390516414996543186312634011422133778857501148435711935789137499890889027711167142444776751925706744700552592706843013616459264308585028943963963660076782591927997772259120002467703966419176478214718739723596996705318493477011898172109216894262462144044867901160296906676250848120406040977196058691215162969244492737489027682432067665761296379642046291842946735376343591717940728856228631761409129710287761285127950137456243206835321311579831358548473102844397911788859657958096970156545376259458403681152967407547036448154455759539699499320586267072226933324578491985644862842556899599773500662899643774054597562835862621057499332672282884131318519665380829808161545146698806726863720715251080603846168327248633372347859252122618248464495556331869850968630783756931748593131942889091020874015019115433895790204358818008956182102874029802258904605988391007848517578640554832939884718697997074361036927334246879612332602599632787939399988657824038599865639494154344720595118911226850326459577815048756195016858532923807570273040360850301746393499726074912756810673606737855154542887210688536303884369812757750891924962799317367274397502902666441695344297718126126454448477662748660821727702844636867350067056958263897224818783278431091100383056550025811955412818750229197999482787656748675222981665166191289651120864338539478371815355228232225173529987912062373156521873108834429117424772659055360090542287852509085304198526445878914545417400284697762916642500016054843017328817305000167335992716096545043716655606758586807568832558824401554747315613817440754212365180081930061938088630544562961772512590348627937293518543544056941808383020018610495275119583023042063917282596027480915312545185641763976894896480691972676795004049671364177189945964990214210704313219587164657293720121527931272663117051775485282862173552360268486398939903951750309094371169407635547047451423871187135710065086880723200185251553580836249598865397776852598252815028416390852428306876945777680987512838188579214757645321966552918257145388657666658226926515434974188564347158101115580950287309487355367842550255139830137594587971504451926548692059724014646010344997659074923163400646602552614128980708623882949901751453000785427088960188703632495616912839072024245555005106004281453148204348242938225907496608551057551160487559819974797438552796274723435792426147596858276975526065099256049149014281819458811983768460717694818151080051773359162912882170259606197807871655700346831593965441190974515700630202380733336294278377145853085204129793710267642017400628085831303295909412945659226322423426948654703367501630413978237138251409914776466356803601721285636517057301424740737622577024896942241129531619120476621693979606487708239418445397966929314049413674221112083810167903270837468483319943403280780103265804965561207643911212607170219670640533636147853525578663041687631475188182911549770868974064259509796762239585719870179248647678238458553131465446423284099644530803037312595509522267290502828417209998705481000534475577407961987935926105882661804708123201298372103713960907364131614717407976242507854020967525361199922852492622330238486255263782699780330764457826189777334099786620387568549775183987115794171349124680215963045772274253702020616266756881951083617472533678692542878702370082614270453715654450072123458205608170651591118142986574225444489639231476136978688102084378039422186029874070546916631203547689046748623772113614284040379764637588152581531966248825376021838564395121326735334962644149329763683980403181743988225694425271918250924651741066665960688138829908442623370666822104124698745171084972580580676833154155304379478273826970130626666642953275841082663361051826016114791173900163648741028536001778617598184048852749178463584072802311527394774792911728407982558109305230297866500337081327872188738806406273524171972208555824204017608905757453353387623056197084024756668225926728046180223603775268226274478294617732253183279360625503453689955641948286085862534737188932512008667284969793817202910684022034210247652468435403567306692119308666347861955180180632542929843831468008908345981081489582374534959199015134431185294139925971717110708570694722415946771751161149057176084934905709977790355678274220715163432782310966596279925826649342134681371892826958548306172112670281236443383524822045056432007376166297689716406707546300470395761034604128427286146148105522559812617823795286908819390631389648430252848539917882550036450402541199444806557644028901978320256224211770630003353814304700618990072290408750239912403141393424698974943533760024144137707511513347732681030133335604009542294009588439299139857964189993595198765924669484528850137179381338734002668346478233785537408442379391338164329277587415270020972885942365194840639125519806763635066633329882844648104181541326188614195303839073328994346489286953129008795893258650409399558705043563342868541515144768259728018886533227419769820315550998222539022678725573124610303589149537359804872998501010502614599896550920976562823897900703636374265069992957852023417495894715624533178000068801992652542101603009580344155725377243033705983607460067670558203297377027222181887335341859774815938050246063816339688305346818042494915227634374173390788326490368546817922563412447165727425052356854820508513561536700010582435812276644688255109808755666322176158916309625260670913743303079126828894111565528840627610512407098258184384055393110956643079125324724363256874428173733815159028257699049112062069622463827061819777336104831110892601760934352895652352288776993269072144302925952702950503757041487564797246945285760897466665470225747747465597978912159726065282821579080656180615452468044871443623331683241953986137431154969435428360255199969413166372681982488759705513869458887217757192561078670662813459243699958928391999232603172633841303944322571885554982540889515915868015879997457843095201023342456632448486115478793041164109968218266791256346934680324937337748495007874651936851739276885238221248541805268856581508339063780513324201812448237013821453711767390643345652818137035307250177827328463107125034689092008750153713821084941776285605488130074160304056745177089770704366369125093598194639599661165756728642589856171729007281271665344828121748666986950628263476185655188529526015706602048421637368502943911736533298891666592520254914690140298530645135249590907969839388791856097826250989301224243060879654368237615350676438821378427186740479512202182567706973925181261129833736968492983607722253952923795728912488882177659943458754381588523579538364689116514896664159978443319564547097810897513578662406798887225392402409696790401355581573071034888244823226315678055398703646971291428215578650769699736282056395402498322051866816904995798796326377574729805975054812183513695907516224830132419371824748847921648389250471060357851421091957756149279738634658356167774421085704883071411418923625988640699309189141019382013614482426818242378502890297250838403111058571170122818407016733172018365205832199508216228217724025972201838498852257341445484986505847310062356415053907454479481499315951538965747682417029122683326837454213529575829504918193443686784636148635271263034370580329671130747442426453393440579195273921933031438998203280544506081412126855745056153497973132512186297422957689385580075124320234785902514391769929461624969192449688462185398252529739403491135932203448669913249308091882466065098487802362474517472731578031839587570959508516671265376289571762332900815907599476013519868136572864293018297700639259626830429341258655866029022842739082461154105653405940541669905847892309159325013885235816022392797361226412007382405612882818374941828348881103129048835730579094821183763034363489737231141159897853180553905983327231498965083710439168693634537156300438078817837284126466898455746315896426671475033004854123297096790731448480929512601625935715717686566251784934916566761022324634542335916173040464496145168023619231710071732593129821194213869424241643003841562391895789163942300862146732453885800396994431135428654947315472898008835309021102857389605784838093293216878077676002058249800930923382468657247158745142654881087424601928489702756592267016257867715131122177345641735189708699662545118555690934309803220584413092930327163044420354233711552611217824497923144667489030991727061546398831221346524824058370898953029755477158407297866822196144064047982418825925865721667862759108334314367431500591856163608369837867278151108317508863121162410245461219770193197377670654349658465666286922988413590379782258789142608424068162956362210542354727059341800426243111813568996200154645255052664358906663858067172581691218948305918161770851911670015993590704273454142647894015225932755402131245152263143646426281582303602334736362976091329729863523524184536401730891839411702779349444475658874553391407392856369178120664488163997773307515301228822171629117786849758998779806641879098616173145691144306263614993642765798929393465799524615206765481199288573893337399249815811753871328904116826521485889422222808645037689834245485632150859887070335011494340315816204984663213188975752750442277999318528328548556758181453418918878349872292544187349357524412906972185101153779671231720220372127592961422839637661733876455677502218184638500876715642801363742593932241098446884393411099170331552400684952966616744783495912412169115552140419722280603099194236513518121487460558672712995443622368165472651106078135940707260292842028992697452150254814538411817885822682579694676989458196344061530185478115363312335475400995843432567806641687711792065087620298537838610370490617436646428111347545431661197281004745015465232305844105838320834391541896782242992464562596948713140229955816790738988661614927266177104294419742868860333545998691281054319947776934097958127415828052694785853648789792282710350749656342761997575370084241293491729319641675996283843855496436847762541330251340425270877718907581617987646436591205466043808565244181781908641494910996820641720116755012015249978558374433295185724588157265372574546954974341482215736360913884625083797349887068520017891695125535151197685414992187231447253121980403741805717804831005070323285329144263842997317823505013462701643604596391752237211356425305313957883128805108359484461734586758368792115476686125154022329788016240723656171130325816919598333890798416662270373392248374687938946960496450163510868424482657750221983952394940727860671499707429390528106544952258356765840405604138372633866017221591727311919860190503388817073604210705974728976278687157294653061647204988166808163579660267570669420701109058925741333029591670902635968290195661509950205408947721141864911864731354346623613436425319993076872863913264868979713074159289136281595224122621483444054421633964278485190851560046281865954418897052191928603244721976475201542882697295175780081835120130884016208283470576799843957742526318215175367185211674126062960857717632221265688649073233552206149596179393801972915231148057490415835990670806771579227060166224281957398928032636440790962151832862335155440434228419794105689892226192428560426276450877396488959468548439717845092745324836431764340650253118486252967605539496433189024780777784327279021704989530212618987031598638736584188589055316244969337906372770453815481632723058928934304625982565989154177532520049549427684032677796590319288751714230967247653485245233288562516394233408309208386426000496615249339326866568617179579436670588961885159691535005194781031864111882561628503549012204492977846436416459204980174909385607346621257543891181812010618403884606017808600672075536754997747131432702418789726972766774156267959537071982894110976743135025232888579423260191167968070673567448289302174587889487428072934915960681246009689640623961447365063289071178924831913425935620648803648841577278321475266432813805952472738694790483249072239040415084866706448938151566517326195941368943038497764902406728380352750268690825715089490683244410932847946366707199133252861574240612701411023664163036808850515703078626553968725657296253932027518313122617757064073170122631676149644015968954254155745110506091213257938793324044447756278284268715472156244627757568747700819126991001434697593823388546704059640719927300032844895286471180107340339318864821380793912655978596799182194867734709297344585100461132326488513411351195514095890547280864183527128134295357473676866579799075932425706300765749752841567696206090465375493066874488740647327474264885961989852974974733629355626737819194384381883741292474428033285628462426011960718009717542988003349743515726509404284844730222295418013477290694541975345941178717180319301788666240056590154514170208326632022222695520305518404009199163739551033621407949511605519277821679733590636897028497762372006765595950297138810410365258528292922520301887352862565058051856176378722303214118118815238020965627145102737658268767574916594390443669500261645931630471530808465505292055328346746022027036897193972002858479230106114930199673847700778610763962797472655436908232080317930816008381386838378129655567514247997283023430383763190065529035675566446644435565913929878150832810323937132724304317142759173330430101078196612302149288841700029876587495603535848308416507112727622091941561516276993788430169013351045429023830706239268191904840596905404129220051123220697759869108538467505449160972384666019274898153457775502862739513429255346319934882105552321616885573508054326598245142606237427652220166790968403686860874020943629422236412313253129847498420696587499673336803832030937581562986215137533980507376927465714958084196698192986609953348959411524374548735319022376034912315451195134040957456354124673996022758669309273592328894496982886954869118840303596500754989743703157806768264595056361860130028863629290106206482511041510926062507574715535082549570127579791920100327316671400354194138524391559851465935541084099177269727472799193401037857068859465558336192022182201524019528578401952512066789367369492673516362441474269984055949471022439997622792277420456070498223073861384892622253340761436016195374868374659201872400963844777797814361965318391870612927350725511040690647253493842460912393789763047408990512872619860463912032650991728255138114000873864901928388913291766266694114256729568029097436437551395399501530916208533512485028888949934334666441106399537371201474200743604699625481053787465782129631712071853537947900886640560356921730625325071565017826720476473147879627890379874215735801331804981600225352634474626409875648942582233361922397431958595278767253708711094466134547483676613519507716771816520871602987732157405097166171919665360638640157469525263172277324038322585444555297307639608342761432718955498038500817756716194223907749987536882317461494866861972222836510370816433381636876351947606485300800087577249356106236617872400459657717939411982978401331097804134064705765273238374180734357468639089438344676431467780626925498751758210413864889508700683651033222256401339946932628260140712895689786726011286152379175496953034701687741493878570150881353703771474083596771737933056174044772389385477046410879634087139147659119397733812470117180538737072688399562843888477621711428331130258375725112664577902867242928730342407136754508817618501631023353416688633121960514345682215710673229046643850738594764849349597720115568551470631374135296736916052199620725188959496853872414649695703562442607453026296890044791667699464671237997024173275802736060189797796214253788110611132380116717788649243982059510462987832053473146598519365890402264437929838151419411635216675803972217401899531463082499514889495075394737396672764270186525890158996908500588226002041050704518411048289550823137694510484853311284302385767554048806144671258418669027406199726355615765542556466951331764245415764546589430693000438181009836675774161316377495940273934870398248785773953629932172545095523675781748693003790441367342141512229570112948084066400430947414152365225393052294185434325191111949739084667388766307747181197415380038358147030394860938813459191285597608630036689569740729370662824995091580475268582658548686590900326106096196571891775420757592001671205013804217639582702599150412234675405986766511767607855002821714714829828003623107146376771207877185922238366452887485841692071591500937091801711045963873973456369450879325086626174872780021798502184962390090217570106034145566927161864687643015894836760276481544182854478317086998449761440150685975868787269051923737356547862044061822936783934899567243651685770009702733817413327544000287896414833956962001197822883897029823117910063043245528042463874318941038804795400527510359772853380611869650264718649125466910438673613027663430932950624041890421944836011964877254698701264196201849388312448082779333629829244769512302270571103712975867906892847014044088457673014539136564150217285927714172948773640692375181895938108508608157771018777735344681921585248258925012715529189800820673716362161485791316280613397608213050757371356768368386738725038093445001044130398875825015908367868632212978105670921555957923671931891213372580890916198046632989926563841465956980690810596769276296768404362486849167963361233092439719725673922259204801929178600608064700603154003868811607555661305114738578063512869182194035441614036975073984082610269627879369220320962531437984445968412677229470061555646443509088861469629609228891317010895954154808379737954312564520854965581175696756550783560601767254557300310073446192781529109444825769543315611662874037572102937961179289694226035978141659701314647899534899487987342642599744816691879945835567683125521106368035748462160818575359965073509253483839804274984151212156578925081925042982373454646184463289837195264964361449984909331591367421586931937892374032153645673777423371482282826189631626452769904349447062170731821238223330592157702120343318400994960411129489568954563976182296909849634288405406911640035863242504736455675258038973222935276268906568268812193760175748639776038725778974270855521346578796458446088812281256168227870618435767584655786985152048880713756750349954031491520730096163558588230177174837197246841286815026340865076543509957746356716136713966516401490612103737392033841613428011493736202038907170088347957533167367305164192271329418658927474770644984842867978665993055143324611136963244807833428466539021569888959139969077600090977137047521562268230361892296242381400268922271298671168290345214216768733626290598245287208846459851732104894026261635178914886459795767789649381131058614170146220234459137900726132809665806515735397333763231160961742068395660009306324506905869434428595614320046290828054488859720158882862262699512398174198819424094628537572807558864949476734908581478547944818086882587648745818150019067271884618170004585572236785296931093320598053570813102239829119757213007742549023783413265932006133600295207702807977210536035412717890714690027671400177868449350929532397606437308892315562186238732456078914914506111398754079693747029275634792586852464574129079585598868601155382709677220878619723361876342196573265875415355748015624943583719359291076118605549977819213518025895758604502993308736710871982220963934123895518837036580293501619673599302325772349585252755660702147845411854125519651166766461138531111357218174921529943048014729654342562878760081157050751478172786051130049200134458782400711061924710749156943258988341683600924567721461671251957264714406884077761015105471558944663430615397219710701144083387496634915369995381938808987691078540834321725092740901567723316935618746194783668491636789836990789661227601201367782056271943898927003135537407244001297671854396080523397501485957868573404426248414874335274050106805283193056822910736556164054507539370041508669255701918709960429789468320587016834787841663731304617499853121966427091749758610610630279272756961047485633985555594271650890042656025107268237168689156959621835774388641091993630416719556426823546519046818907193056626652159100895660600411110582764159858670257750861011218498769571238357364528029778275786174246341997464284752346537727073104463771745710522964481800211527083930084936705329819564167226361411834446328051238252381224445319207765616672909315320876482448913239177633841226659121730459854633312560893861700071584532063125625014200674969812159184723181101782590235986756641790428839424792395339413293252219834711716982198552100143277597213358296016886088460813940595380218126589896425585251199369741993322759402352072419346687712108382670492658628080634525153409817494650419012377142651844871604831794298221080166951299773365822148833231652373708347529981707264305355316111675060466167774103734688858697846428066612488275236727858125694413932806579331112112374416647358206758128009289606378726958965919040486278087068594231720241639059760485095572968737507117783164877080206774053296221054722585833313038920644705894626863256451575743995207340964472814579345159408556368250969621010620721916869230365438693164376486577682134981418768474158947777846298789104691286809205669515262062782230711612276444297331410759832586923071345099922479037905538512037741219208373959315315684037534709934011516479890865168537221246340329566282644106206283563977084229093521833115516715108095983793115176545554175924177459168096211011020842335305778259436805876252723963882001978436930582342071858884934486370856066320611962510370087200250215312569252178140822485354067012033825919327655034499717369635044748497533331139259515819243274299102829574903882202760808147353836512870342335428556721519435188310208939597292760794384965430738507508682277252138688482973300132930706105798948479377268248628493613307323129678682987345748701257327411027378378157051148710705243774362984036426439686521275534243340565702276752529253321206841660779314142914956280240683427515274595843210817233745827159846555248416042542106516301933845187014499191007839660258332750182400975666078688787825839281537809790872637821700871520135539996889248637172231161980574015218021475815125023348894223305130056567582987143931220166528243971942453133023385981908320735328683952598261356520082661724169932728237338105770895869414139687231881640698332971991654694209799840142512411596452095083901039766028436299801332121589512141848570336515173643441692629524021687962750546599212970641499433045435502169417236007950421809683770364677053455757423004071896866413790122775315038384410218115247045329926322251981454151038751586223732024927118302652469793171522880855045167609120300520271509380439048083260912487086839359076673473125690308405798756934940385751223745727267132846005932717794858474098537409956449570330637848480207410585480793616820560512794223566239335310763518638633870624698703869278838346001500250819466490328615768957945650155166589491829708569622196179955555911681535981987956469151097334639765055067515546091928791624989859539507492554758903905268821460398871614239850872013801554714199586262519545489538759855045854732677738075866432173104795773424186225707843858555174694973892600510052906548257040876999664021996266170093942560579325441924723471074909273713075699362724227197643059466215427712526715773042461223586532351107556288459417570655039587912436232911781467482401852562251139988505863025829330541807596413801291701207310970455991844745972343749895915714697651604350076922234171722336139620862399611590408739710689404909304568121448455022424285465313029707372532376831334214654305179261720107226264962543264023678969197277916974882205102768081852580407563618799725842269703161905949245936643492907431569782178328853072633857719516063086604299594371650684106515515456773214683320584444929228796041310696661686105667673588586024383193454889149270536603920046123129934886057525255554029225172946266014652266569203609579703388934068071006965179982413857792446000421477005527208473832930241290084218482428960105108843424503790247090836570213292646595700275938971274781460347825277806416053928611551113816799483174554180259415917612508279743823889333671029282731653401685633163455034850804128151707691506046312236955216271119069009589883522128683585013756667190221659352513584790337990585228932642421146900469265724972716518875641159280088146497472503787924135630552920811552411896599834530353679296922278061208850414512765836255780670969381236673737977308524515806323662576216870853924797310704858351027491422316174922833428425602737441775558596733741244637419924037009344460657651493346121144036343157505775079932786894116576495201572841159999719224714720880374665788854700345404068433948846357812526916536877841086241718453951666448785381991268523730323092734599798514828486776287867331850203198621558315744220829404038421089515261722698619639236250901907175131719521089437962589407239165099938841778763505080120782992901603524253294796290813748821606346498025371712057251718194336439110542236705011842828534543971410029654587254933749586130880542243936140995291840957874520262082432574999591780425796400953661777632937683798454114495929961608164236498608614643313309684363513309577443526325593719357654785232313197091630346734929022211753505578688919431423317149379895143378286803770625944296144981570029637921755382173926235062070900224606463066091505556295146843809690107929505057628332279144625532393531671291938417960218206177423990273310203563246420355205529480217441019462585320652971947224071914133826773975697062690996025300713047565283404330380432390131585186815872916390410454539511886237281649362144018018486028448649676810756981014861731350008358676255604862514687156764262872037935879708161902658666006154984227878299325056430573436803500814229787316750428488561965691711253666099272951271226962306332287609642752569235038648367110038398852683127139569718885183945770655205186615388857100510215509460652951816278658663225231337514568433897022462829933705973314473110747186893593471080556438385282108562548121372206934348334368888645272085387826280049253131396125702815785353239941282364997781304770786563882247708369408971991993300547075375339775304031895555786721753920520167979114517100151293501619194186585781866530654088781569434133079815230914209676860025072066103447362048683804356955401614128072050030271693264942797196827357627701012137350992350906830828697680340185822759750751085911660133807125448096879312859781945908703101799042196668737984299640560777150981433421517154805525322746315734208758676838963093517135783806584616188516159113190770923708145961076427638124490202028716539009805875570748871420451650606934318982083756399209333580433350363705448696241559972304000298990718639877281460673221409944671327348043401141147123685066295030427969095815765615065678352769059953045294587660529027467691719989813977908957936266914924685106401621574256532085843437286004359394924372373533938989240026653568208968717193127813643461934613456706248408868078268166762953125512304155285771157175180297645824494852092058691311925098792275743322487561693510800110900407514421345228294895045086875101849393173444492922314747956112457624272953397528872135484733566948963978075413718010708717562066755106288817935020332578261309438730534680371260472629434447189447324361942549931427881414450637831530153589825269740268419081481540700714085914801304509938592190325823254179660244046666510674444361170392411329108477116834883172643225393261615941804061763183782381621313370792819386943093593857386579154605903965038846013577693783277277734028090677609316701364606660585527662334020413260703607753932827202249864376734586833739348537880149650138674563441742594085414205541134737149503767527902266588291136574681915383544341837774309136114186617532604973285237885898625949978103066821140068350076284826576866259414529562308153114731718104807213176333588062818291346581298739454064413172883189748691591806789685836718660751006445521049909103679547958042734157693645822359921022257376900444602551002739329457582586524919776913307342762813016363724086010415630741219043724297517203489841673943068339195072812725007633531097965977054233086773923313619450505315708013687865069644319566686472600608815082403848806156130753133477428174574417634886934192046066422051434219161453870500668634343314367358658521925519622145743196775201440020645437916462206775250006046098379836034568184754632746528992467170271779725536384758067087390610299413959900344229058593909028871975231327182402606649007147807728705321009666806098844678190805278447720913625190036338278746918208335511054687394044823331870809705836022004517895489722751701837204591670425034131197467150256001633580638962813226493623255795732510426899539111438328826906450164742473470291718788492959024620296556654106863339301283445855875291339532031651902156152272385562845391583958736963958973113272894218631188315328612811936251925443180119372892667279157864228421400774830485268799988430934480493707370610597881875890728013185181873722747777051325308785671712731829558186650259764225880422738125116195432748785019283535013816323882889406299096121936930769367345183863590260226709265670865579370422901391793245495743967006274581172436196122669831895118518348946867606029189062808072299287814202901890411694034337571678827901901564832959915511491227238573590162662211701856800322341841126099105747594162265810953297754478713403200281146688634645342831764290038274027447755701932212069093156501836095105718765876596379872733612416679052719778766006270327309808456548540212459737534320947555085766733224659832408718871626810466546700005862455244719168708252829109222069220423965355132168853358674726323252503237851535572957795876429177467678492831532928577204388868688760502848628804331137247497214176772170592506051026171111433321650785993351961810096469861518814844408447792574244440440445816933396990571992317398241402179979572316034589521085865161349348333394486329499041168175575606821337478023250766400991687106606085831957608059339651830450786729293420241204705802503883261688323110409777278110956822432452479369371075718597052396397682842396259329865047887962505278985347948028049100210213883307170879791886739317885060798871321483896573339682026056126855984561174612864961617165759596121793528770345694861931643862686204349107492711042147119356743631750806342517186496215496682163439638976716299138839673294315732775399113297469162210261831087950282959868160058337288302561232035034526045166339491138320056185344684080765491326866102354966873141806637825886703756161502321302842408265066314603507562659676366898378397167777083082995850395472995052987756809704415253661097273474724336833512708753116652907472426732623921396446073846286961813691463290663448106698174812335392306738089664741571990045620214139286024309561732577949189435632421382511051597723370908549114944500589719307603498518702824139481718577798626330683533619980843417818889740569854086892069233136260645164653602814939387784297537505625920866131239512977073693471445442137598827833758894984762042320426045242466613836717753521991517176805040132307172942923723561889918807327865574049162896006701846553031973842848735090984853877646516353451008168168658394042194811634142510161727372632403984430031820321554141727657307221215428506853334457019512960013114443193396516181432501455602973504135242798707935906061135392030407344144475259764911227660395686760087372111478398990326117545539652427541858273430947716625392871521921242347490581589774392939024255152926729540537070221082558287180870320493700719009826709419050114740423245160954111876164796674723852815474719292077757818872896881706690801722102661343581107610120280879187921575067312558763225672144917057446774700344166951598131212598286511923771962550547595966441646113138730480756941132683021915504197140253393648095962484129997698437332869752165917245337130201494259062921322190623198488109815814481396740824627805194671707596106574825199900403930789261516440918619912136676458952323720869407483713508380321316903010970507352541582302451971710319252615592332257359873646228589218019918754137475092108326806472647138762453228395589595824291275188817088550282273988399045459748049558035546105470394263414986133057909445746169742008780721535576147318030664881371640403488137576424522236566053348226196812626593304753573377711515637030269665989938327124087636722022993066330652887751964560032790851040277000040864663892035815413787959359015173001232830307937516166500620295338680691163026574444101247988899240061987903107983651028205832322771955368282014370242426833460693716821103356589402054597677556062656932120293573015390910925643364538059398173772528678682753148293583857416524736124356956498669428414264690406875077737208000435277672451949772317877209705724131498592808619815041520761830226738125638777773835406883471320322069375994415966788581091755050253543533522638406873784578755328983628813703894391458312371752393629798319354128472756754355845678618579715762973330034201670358450932943621668658386822512056798819206756638308114415249588762042155523806590306124689216502398169894035201979580578048447773230323174002311082179988273900124128869171407206113122674900989410498151878169072976064800995553476910459102683321401330352472867885900885941111368839384963971340839434370091189758002889814662937208766464269320306044926205417767214999971269572454252858351504000496899723885030081176253705365435969686105450974273715920853557371378932909265794334909288809263783797977710083667775354933591077299917980508560510218568384931627010979744570089186123443151861119296638185855422980952180067858691730351643333987963879310207903784269370411497086258205688896236676826334097555634479890886386155726489389899082115719541282147579554322060492236220242243690287729832605982253685598413066486129440379912329182564696723659086196922786308853021478050591264303564140654569160440118147422918028939327675230576680355296733895631882321342188809931820068041924912143717455274904030204311541187373580937228656395360195422506962138466780440353444011970173493463750448675565864775198812573752305766559031794942858271465686920519189406784664891366578366632733242815661082282604671012524486258170397984277077869492612635991724786928044355769420651128999231466590631134465771356830426632420713433152490032201258216179599911001238888083722605512686075342283366405523816642158394898465651732374427494999593912881259520788511707448311513756857981809454202796852998724690318271479088140756521186570764169521216858504568302995394994543099932440717050985872882828007749490775697995062304755922765792607128971803966897589029460504882958705388050345779328125300755643681893743930805033568661122406996892257449041823687431827244730196028532670183329829330085074141852199567291953306878614993506653264346617913120310275078054808021665776782632290923456340121218456931700142844835961527520171154963897451002422740035729550435693200369816869580397395915458331609474974028145319258162208089483328469299933692447291746158741141138845673065338340166356441716085353358060384270913212593323514215717982065125730325034538436044390056747963485640450974470656297435966914456488944528989083218673650550206346828021815309474992242928080689764253047036192258259558830776905935094117841334328780640687974180863692603882908722963080786919000639635583728572103508296995184573980165557103057165009785617737410186768959834561015045812347929303782189517090387740921718951918570084723722771514992423557790283900051240688236488182217759607757309482093195498824402362313527753263322427471229967068476827799114100084509819176610135261219661630111904721144876440343945865879371170180518908574565914852804899368999927958719466704227656926093730134436100514203051289626832597370353154613568160193211992249633822034990297652376369013662195161794184455466593065482040212633664236805833045204046140361575382275835917755457487061023506891868679137835745624638736065887860813072070311049561868661127523394406730553019413671004140505126289396940970535583036623051603320449376478930799606133643216433926268490321880751058290333741858457534470823219656023849644398480658934504052152472888063218908569221692835178899476691029440737476861148556143677634265727761636221469592910271887934554689158898516220032596003877307606178077525084327119146870463947167179098545113145148117498358323665752739085391489225526240341608749111955824553921769845964330102653854186634484541768929150781473226338841614981686090769430518129704169946486929604673189475142221063124522696036929946602061017159796978163848436748601869961421710981724096234238136344197734636673847757115521447686295895696581975992385839051423656617398007591217657143755931875704489972214665182714443778981230016326008626732670874818979236736216168590220009888508970372880836732675011002740153299629466534749643314444138818508480436176121288054093800336457678906876863213292534623898265590379414944223358958538369406466298549855852644945260698856923941409293895943266274043854203683197658321959806636878140254717461938772437495953075946132586937456073266221721098497210964526944369443276536978209545500262877612233365639322723370459489074540600162314280402770483317776761164608573337709547743218238638083218938440960201259145846472730990159179205261119953016651436675292762155479565895723441282376857134198682228662635444552065852129898076568962723020158825769287368171764236943528111942402982960737857344301450537587667330465851234843657187273664738603086148947821205274910378077185759436537107674697106788826236174249280197758800131808126597497121371262948286033255583388105299361054296674883699007949999946424250115712305003203020271958322578142974532335087555578716850279970807430336966436175517049300787544793308585391171210967792111445690432053620168408421977160244022419139858130580112303694367696397397331959582877507060250303259096069560800130666366328839449246107091560686233813756177297991508474138460681463644315175465893063684587044925183681286914070528604619538366532187225083816380910129525111895941781398197836082539669082413754995032103164186619025599710169724272312844161663800745390070529878489892591175085043368040712352563626312156860432532697185293398004019664598520375803420892026408757639665352579247614918326011940969130123830457587131353212089949827662092174140742164638110154470014641730232493990009208538536994108852945530519621134791105729796050952171112128135588435429945847379671130698043278358804253245214974110928434366923489969938177646090211635275355879573271505242126991091237604258112989884403910163495072898398900374308340092805133473585118437735404101246745369838504502970307865725226227904124459827268143163792625586768193006320266238365224843060925259481961723397779831620019618107006989028126007574759999216777115517613084198294161078271487064782789267720528744296597642267853295388247295357309517450846452399812892316405644074447716598653892162025171901601709618641165411050877387712807870651057599717954433246720869683558360451852919851901215517056537506652067818068885579066182027328618765360913294698135303519646206031184753210945330524109242554630632654540056458112008177728152442574295758447652804165709311723950492235979083170868531862853346795647973592695102499307738566357046805072824804908796854327815929634302057825373199217757807843959970273759362024388716513235110542414705113097933594513002795279155183360610145998479429707662909834767855438221829382124627860161107778766027201451222980068922670652820794455443174450851480938054678830653666868609526781372133092862561759177996146421813696370311358038563697352210545691689060942789225899660663648761691394058232472550622798643686860984193394580467062943973337260559762560820294942928594883898791222430402088608256829514722080065942578990646260120217468196116208114295739261689114200251939974864925187972608919405079427487823874430703845857941805643531034647554923292885364464449122850114046190055253379259805682595951416682865663264810364192768224969631106587973770393807073984900595690030946165053030274665374813633453394955813602634426096748287666953004352585853779029752425107365753274563825651507032655212962157103012304795463874479983725010250301697758279004528543359292787986850787016918885326266660746357427315940748036875133082363571180590196125886449870750848007323482511236144458839202631797514713150925960401123554662282021816378606854214200517263735601015452781496008777073677539189136608012845980867678260281576162909259589476824490181611760555018322619950275669935460801908686518351225443222435813890392607071739656887908647945482075943580563259885516070763834730092135974716619248213161183310663304492119442621965412107385360851544089787629380622849596650260054793847476891696931486805354843428212214052251396826692752083627724231400163405270909918509163617636571674233057220907011948966933210965509413079694487167456222986218225128115739903161511794682808594303084796925929095333650093505364315773477624676928138627308499817775209524427242957867178919677692209381507870111183464033274623879894221490325744338081514441983205936073097958123516449922048917169337986118806475832781433371307405311123530889781166971488335259265566095699847112623265272642364160730511813232942974263573614537155197465075457898614513825817284620156012962059189961053968800055853524307909663328346162837127996525521583956497437796953154551783691757607845805643854808589632373550132369749163407121622185447857047242324836163092830307494015071691693977738319845790238822791166976401127685335160643292147089110448113807990871525557925247939722760372780168726603882329157249519873445474580970804738435988678939176370712664148463790829567240593986849246486359006597940309115505223065600147142407206557668210801060942874117787360942559012219432461174322387880312894468695884322912386564629826524463597492743367385345329778900746838180629871795996188323719836280059735274049258563609292628748194090715941692681732493542660524136699226031498988911777064712703060122506795874945329909743743044942924180080821681759584151181966153642498781861698441033914276909424767742320575231330700659664052661070604845269369399937785961168894842502520017271677917085394450240458830619802285627052879417139264313444319121840986238776578786143129915143017683326892764986462880792790651245088784456947140879515258810537085386070168864030221445751621671912179614186568591488276953751166214718667477183975999030212803780049711528838936047603086178856382296250252098503846894529832699983342621674646888749750052496513734124347600151431641148706649954948791578621110609792122946629478797396649336833521186990994110475925490301049857055174526716839487069179586888575333312340568384692522630923778944189359901340625881476619084116133088008469570531511296376988698402152463902615875065887054494952124763415866141217354796658673546981759495899754233832377377467031609365257875164698015632814105165655908163931841872109713104846821979749580136603912775470869694957195003606762862611652893781103500078482062496722830043284710915226493319738547339808951693570451267454848331618839152521427682236351949720985717911664061768416958057296036339102835750752417595441520177988621320662763097341146229017501981767364887930580269802249179736712754783643024834337316635893385199931202007293442328195231661787943401763938971876068451745143158956299209348482290177618883177162357547536041662401887550905557551417505268459484755854716571944293925683901963501491281338657836150990392811521419745015604619029524744435610381400775026601416722801492769257719171749877526246213349369159602655518069218946946839930784233678130037526812237661322238171046839794123759570488284308191218558022825130247228254349009469094294765854088106730239985932837463006087755045704215654823308192765016277825626573716281429377632584117761855714762143782296459215468649952952858936160031258892601870284967724982063974924985902137263890391595778276413945511064011809315262013405055964552742361200912163243192813628527320146501226921059335852824592716607399943704785076036649416674017999844690257780622279604512573469398292986424402173019595608552761489597821246934875713700988282398423895787494698521087150809840399456699590048157767432279388425950259556882741575426887819902723222486414443222207496632943521060008966381559700370879621014912731541906251227819319759281660411173222802363778878274683185318820306246407406640216252440374777954536338084655949026862262035599854196842609733533039756505216004934044734532986414969720754888846412778667634589595843841283992673594668407965820163786171886029718678062020717639771325649352388997524341229186668726303175343948895289382658086619456394477092539873601534538021925040586518820879445702528778605646476750613786568250989523781985002223208159558456614544485990091920792502273023903627737652699412003862270237644671666349858559836261156724620571308293846256145471232860770134804430421240077114466064982663294291949028994901931725074807964861445104585441888340591439761599233692441711271721812008106128486273659162095632355686529847493615081038180866163625032724596968710760270437813488592990044710077811622386748261685908045777934038552097434028660291635956221607613656289515888269347550908138876267686307909721821685667206657917474350990972376794297627209738920649168535620676622516618018809291722934263421656063118077903056567876893953360849981604406756444579256394287499363126706022488088759339105205233792535433749173062320788001609355932143924651763866496067279591431119593110858288497802027596465844577476534300420265866208438461173727049332979930299847622264343945867770268702614860859798875724622465908443085482093937072039090332300948873002244566239591714573204098149246353404604516419923718986986921725985207958435834863663676196411911275329130750401759490924423925179365851223928962308611499084001791180904156889712682522030535762906323293569260317427337563339615410512731986079867066903089602460089177785967436609639668155980268200674492676632481199661813277704557965241837174744656827826368869482792802850437371891254601405498023930955456447471877918869423834054489044222312541808118339472815915639174605890176529186640588084789795687770736750451192334020123731438722250357896282675627486422488378713704537461208930688839885659047550510343015204757262710797160687812059650484773519361331453122919212059153615815689349086776232984723289789265811758755526382208511636391355328380268872920056322408248187161266720709858361830029670263767658817850609182403089775128784664676485930050796582473115364262525107034707277047771360503019347154919722874701916580025443168484232252869796081551249747610755953807087711720564255245841572848265652414738078804594885050927615227168488071889721745107250237434335484634756024539351552970660416399502850182616629492235203487439433509801182806105236702495091782922662038254968608424800500865931210170740833855037006052740049148448758114236774126488041160076439570692598976366232861116571361123241420653814044843108714117851039508420079118435737102201584539010828683761825275968756797293338704512579622758492395887930443371593311439353025846876738735907680520184000811855723425840835167125288837449484414227326549927185485729717756616437853599127119628364946728257246581039574823097614887294886049058973985204159038683959681600495156440366124118376136077796637135176582844885646742509060344422455002155865443615350455764878827357465296797364992997338197579732447862640372609154352267105840457521416667661281864321471299731341233603009366338787057934594431671845843763437208808039079673754009801239459478623149498004726263171151296127458874932635588504226802939107614914769186308657317473110797211136767338490689254171618056135081926511360773603417844722040664872171028954016112631571424147649968698770220621328009163984263389968709387570547214935210151481720179747031376543506083402461371827765277079681419967398266543681136048940224845584958540176104012572100800645617562193524285724554832833870245040803656636795741923032900109925146920999142342989088230155871955947103869996584047492229158402667104411617659032662604959893147655735374577658377137855206272687661388833528398853450341464692288567826037267851346864477165357522511197606320003733130382601879712417897519820143550368974678340731838448148669030743388769377190238404813266988350919206452592897463205759481551815804041138001629784949904991484155069379544134687795615452898589328133396599807991245950703958370592143384250604940181072446642049298065250405841458791485680274475271551007446702965340563468498645219456271772440913873649145050935177469077846938808055363868932426234312090358332720073991307022542737122937604809197106532064027819460616957883387017126865892316356884624339186228530172763955687606239173420947671909721986592014958997358514876126955860062150554179481216359654198098960550161833320117906222912538719645799952679780769366311277202101636352407643818386109076349641516646660771672650456398329688388047128836351340695411100631322827469062502334592982100914102059572482578173747775184116262199006698273549239126635877502486030392568634379676873320623680293122551080769533032723165135755631768819144040077409171126335071380941272229996462409090977068751130144167696713726509625097442096057465436650760512983978831357535281029271102049183444637780831404050012038740599491599250476591351219204301995978319201904828194665530423279694267028417803343833581041079039588969249129858078489698374403286178897326822192956656993085412856712548104059216454785193610249804749242602044070018238758809339857052131890651086348954256774807106064272488687080488773235497897513513694719297181877055289229358234212007895691583228438542506573142048476373652800808295783378793724829865791970958622821059508241800047145505817587607043014713220996340972956302931813380947874932628320530837791582233160300208538030044274528081417741795173435175996854992323504306449080518228662905340912041115112724643445476618887607011988542600302669170552210497586990696427601306067891865376764971874184761837275738623195801136726969073623401960394419464999002736440470252307503679770098345948686262222117284272079860452833937074212825405725836416700587230407138448919879665843432363594713462450803859343717085965573162952089703700788455882926828368149962122630984751075430129442770757247494956990679378420103901576958173993862998324582705810645404038260875658392699369820540989652138398977244527653735229287830739159403600581196257293959682600676253119961877428375521359541863720573894142701539048831822064207564980557483238047124844055044739473313469974724047981773118523432783151112973947068711186875628961984539892223013467754559457630983959213387443689988620108198419785093019540694410545743536382584190994317590770993473783456737438100871202296112142023172842383434612917967398703872328123222151495024725380286959911135980116250262892733319403990247013061791909284678486687792788995439350181810006816250247745744009608418383915856746993247064810886421768160052280524049256909455300078038528006327536859660979852535290801690000958849050027104320677160300999063952900907798576379177722949543413483536730830274052690703323383120738866753571121608050001835544666706141786090442498532271610148243526754969231851089491449334337655155398220166819000600907152010558155470095572688136043711387920817882381866469322189939599866094797974341910473264486320937445638676105460898713554125436706780816012429576867374001362104676525135519787575803334886600917864177914533208752463813027716857068379475769189154124805921910937096136127491257399725675571936154379207209795300182363803464804009400891910710190877363444870928624044916239722499561387881274824501400139695088276628434284018068709653626125286020141740811821842197737026179492696149227584397001307677332973235536378973285156981223766712527896821475379361724450282316316281840432308640473980549580456873269620909667336072249358943112738846700399321190112568611695558101944283329287363066379926226344491338268189028579255564782396484034641586071880594236941884174491855767056840390005781681543243089531574447114153333776184632523271494354970793064017430997180331786386631221954530504602617196629431663194466469855615722454367060207936218646758511756479347350049566278768437450338717626867637069179295514813148439638792140805383170451936461129492763567058972372269462400970570367374305777121223931333180405058548869055595890667798614677964437126522604712803915281503020147851389042571672981851206723801764990564741054880834353405017663964262865680092830572571656204617879664836558231129759524011998486455323795918848767791636526529727145050361318597036854592360011386572635865149620079113568574066319556004655880761344077563307676381747041793069412379737461590065284095264811058899300872818461288038780595123708168804818052103433197156619106944989957718181863200648138416546631845708569546428787002378784708597484413988351106722841362727596730712836860509931879619595668409199673641784986000294966260051911926754904566340863343272486600075359562477788233612438279302417938620106765656988355427099324436659630799445127008997825908720140244044166520763561755607467849813169879865312662932145753391801798684308159716992089107641861352412300330294737069868147989418490209369767644821626098135836486264822273629495442029605711274038884085692563652540823458173558441261520851493044270647343544267590050162903267949652004293980463325021645006011113752921168408484074269207647422185796367851517995378101538599259930948317025871897062786478254625127183725497367469334105569494100774952938886370152046802942259774718637780098876556124313118709595292878481662736463669825730435107179049498854455273551606082459375071688447089475309820007547591442993523905742397388876827938818687582334144017572216992272167499936998640355777868875421117361374505050627914409306704128107287075517494831152934539789399006511927337913763389323850629649729258279162826538396855248102248272509402230625567897489123063264999017483228455593973486875976202964506780608495960592503989498678862494261667278188498629511924863006951617509004294317247540004917312427449250315706893457352902987842895583728916175011332563909042248333624049657058497661985052881458284394691495248198340714785510658787513752085134773958757719446708845216898750230459588769293639734600005044387398286153692704476122651833737047328553079419847450929925198928685241631735315989156161799317246216183856060535639306324191849997503572053788016872133692253128549680321722583429613586350161698363437788115499503927974694883004569434776479614240419605825140225597392302325206037145895089048889154926358660343343954428898667438695907810838325553038834773210014935674741694910556988150441807370247592296041367171011851297531962667330322731557974156652031493229029506139791346199614592008843760812829770346862363574498015616517358758084434690978776604661543966492868432560465546651914049520069689252688193589365802660861948388771802955475370944480299825018365975137922441609032774849419644774373538369763026645665006844869430717738014494766038619607983887702266235626937874414737600463432635576583451856317453578456121829251991793451352018891296247681435293430841930200762241080559432271707463554957202626631457174523933081201634188723930070450648409166816113042635515230324812826347017328675223850880240064526614491280841530431639801505599249067208929757689448627772032122423216044395100428011916364650879290831704497233034201140499693878602240296121667641689718001157187055827251880100601253024143476362414144851704343316395121108244424224985045112128813674325016831889953301596034793502164681475041125496183549275746242311846783330329501793728448703673292701593726131336036938941233759494061249841499219058517029491413402561206657443502648196829950959009044988025022051733350290428526230770518296682234404975994049514780138064883531233267141540478552372678169036400067521768253425946860852561046582899492466197647608048515092425321398478445060297954032671547143212145572594398619063007813119405726526905524106800144150178070233725573748092084170739242853144614928923073163714063764341044844398646171286821594613221867042105736569638711914235458752374420921726470714635241281725846223309461699757592948495290420386446254651612498439468549650609494665753316291401757632090378602993431364235074512631503634205206828310967983671517027714805996918934089826096897885338000562452448964940203998589336508479750130065386503753688692275367838511325223834762252574637528821223558762968553247564403238725001727865673305750562938167543124372736470714703406073980416902067205944486963379780980370894702395707395458066930832768531364670535131487666384922131180323481696689341716904641691812435744236179828631202857913632043171977805316986670812870317081192801511233617450594215978254999136550113850328033499783768892719463062726641448640270345397771615507676796722468343324002980128476586302008017713169111042027607532154002381922754485758764800131698859338509008717954202565240664160466514317386036771813523185167899888241481908148016004918110223457067695872964560407609537630113640031795035555309803162776785917320192599285947962706989972124314130018246433517030158158759073016276606961414084261033399628955217721848346059013148500682108087733228355996742386024869811872587356173487153029569648689756503286996366081996539078637409099996119449751875851101434148527243607192112020730417106327318459427325321907889375535349170612380481480782385083907797616517048794074581147453642739169841011964105947764362011408827445904694930587403139948137936888417150212566235717477512434612907204966998687137274669927935865093553390861524844300784418060095783851997584806173513075294020518062471482292359654317462276516110889279958799268342009939533211390438720487937464623044578142826675498479545731287367959363116468979823155124916514299430078352031505624793852887225998444106495168889028705160585872265314910332146310484626327880181303660735021551798875598177801132183521123431300742864361776707897775148594450048061221293937969394074278518470760310391169272337290128597677605761373283891385206827009253791561991306015709379543427796231158847544795359540624016676623710187056883854074584406674075225566469757501394523004565789701259594178367966020581235539510029741314192910490297432877363403111982891159646000396971201438790096166046851674552378729886263716836326990676756975818319146373676053394497171682278985008451823319022103604791648928469063708644121351291148797890812289540806064737551022804637397130148198791917331063814575740989249338423990002766162260428155155561935967450659937360395069892927687471684653653269357191207425692632716814595613803115259348570440918005508001865791443794958251935266977805311823520929517336524458654539024315302144868827827857568754416877136410837366401032799548858539178374139067690745180014739877464289138283169003887239651937264973354172565965413589968126074820536143188342450171842564396368871055444689104598648112062448030698573005711836388103315826303214805688790609141112597807515764731376459608787340311621805997468217537333717181047064253981300457601687533755350341793265242124887662883559134241540871771907240011794560969148755233084213473761417245591367338093466059407404164394433578374856649138697541023618573119528028785154589832848365721365810199824040459613644918808622616542047053748034802765786237000565648237207763520091355248497667541302188454202993663522224088043503143144209955151775975491045932356229289733541106906901213929470475799863011706940426407470659594068663859134863524104777963864510679742696811967828055742541891852939491419286807387528288123173048603270166720162368571847481798731191367513072572064469782599993872506567441981927151548215554394676634065706451503423560299252071303154256062190860425397088814569365193012388204772897421285345965302545389016827041443719452131316248587475325413315579963103195173402517283164279138121873222400397381612728156181873351835575018864251001231804470392519764149586280399110284132104973544003365198943278991758586797946484200793909644276773002924446245149322834325492106015065071789732627529508730502327409537925643735594043947567646965817465122630967206938483047454506942244820810609646262088136112123799503410817484202385604852639235117978332516870663379731148753945868533727990913436882791526686934050565611496401348310559676373511992088128835059710342069873824501508455808691102824258720811086813495764324239941184236135776767149511602153860976602879390192974012682440597184527825800424875462536016539196761695245159414299909692453371063521449810454819220527779533276580655147460586894799758976294456099758425435175949798649658834297339026344874442408297585272287606756834572024995227287135432517550562190955619573756641521283504746354635218651271974103717667518909862407670322653356751480241521906140632887669109744063065218141517142682682567799377192366042434778502321174924254836651066932506690650071524851726562498942284277099421995704323469281946596435346429274910771546328499366552012570447527624386194967400668893461890053840902747987298454421582583485383719588288492181720845965158187630204697380329197148449235312328064978539097950257162717035682282869444412236561849738760070009906908600232755263338460265887752437202965330514437836764965951049725637699725517943814859628492294971303460828532879256203727247473211704214438034188002575211189611284899593430744097770004612639509040175613965767750358072016082541245419727098429775917849648681213752605473279214646881876871138763537416253271182049255085942172255562680491109090502597863508552011994014711710690565824938113540944881902009408722976986210125895532285161214010054545256487124372705667106755923992363414415140132667468149220873845937090849813504421085559448504558093135356050544166126784570889387024308617640509180391998944546293448651116733785804443770847867701056903624450877241279726219249742433569241585331899357937393890343434582149538582708947128243106122337761625008525534994470429355326078830144917843226897808619736312700320851651387682495747930882201728914395342254112681933977519678840096195056089142919731484204379655602870125875570572833690081325386459193401642628010226989888724218951000325416457416600900165230756056673677345435533822712692098019514721014496177718122667446651786536924370525897451333029383466171637717844948088987243989296121871481068485952268682761528054282887723487370978728771534962246987081316756896662085447769112013297398671390742903393957921766516301712418677434221581353790136845780219155462370469367067516774244861952294016878483750368410734339822272351758660511408724429736579316496367553630617445581985012327190728508664921163625507313379183585542987466224318123771534489620388909584338630507500022166754560319378832586577015170925167886501036955371479258707634157873514805209502881410668170434083922273175482128478641334216244069557980529600380543153664536860361226636864179564715871008002089834899392545469923889321676028893656179036668892264456188148737503009440486430207560518654376737285408474463983193561799840655740608975900708933195007500258135760777494521293574791123449181633980880709827016260049454584527184153182882322211965234130093742900926497156619493213969715833065788569453068416563793888182741283764397970966971026050173187262125252696626315512377668438970957309000692631659478690657790793945943430543322338785126143700711968937080866245716305243596947962813451049091869249051122822305888567369801101070436389932977678667907010025143062709478989729259801033557136445849044494614566504571529842455607114902088877689341021253804442227707383295108531174527418288915040336602546506448581227555737842111524162846459080510793718574250125588268752812952010479972689216730466698717772468679576119445869125176521532081925678901503386457096635647801976630951648278172707688113235494308786278811996767388551730429906347760452095605554363400095203509186886836515448137578695454575762492486390833267062713605318559704485145309031659176886960444004220128313317744781757298765550333992831992045042714999150093632687861103853603758169994137668672476220821330310007475727490733107472586916616344931121709254034891303480151987627354974422883753005873349043028029839921824370421692885485740399338776736491299286004368620468495508964951053378543189286046078657902788855208781019785382580491348394567410826227862193651887733306294892068648025845962443068275622311751206390085558217118131314240899320034607951348201016671839573990637154382740116962065821687629766370406701659424063574068964872871831106878286452795561087696770827101849841218481084917715643445034038412901892441981088612259605341615236946680986756870861422080604632248530807063608776606816407442388205447851108004257367331308180000799349679365159074895982941210760994936470775635002517073897458443564056120625268388969491014311500345347782948258487620676631832378551551535587109249566699737385590820636228685178017393237844257407652777197846708732742129503594035647915031805516359469136434741975022106384953741078942711007190127350341957554781267034556911658048894448008775628871024077223832009783185481935614265653561045608570377717785663668080575939612878503308703158272430597428639913955588035801429426114029166429576304386324118219011296667676231803746960031917496681216989471506775835076941166398463028286201404165294682482378033304889600731383924329844593878994191731481223172058502464306484698208377764507547815070961074745966834701181777173395365033508235762876874733592533520999968445345262900800023420479137876813586601233784495697858611891919222917064405042100482013723926530637070248444725149490004598702464555405396689905105087471145853627839058481461086123502317229961521487247264230657853454977337227850912492596002055424286817836228270025526905003028766649964713995902081965283502979468540843272769798013870075415094878822723668039614549742267641712145974513331809133736799893460299330035619163811010862710333345448704361948686602576869689428960418361571554612403357464363566021493040424352951705846565125756349662254655439765537781609597753542521520715618157001546304219749723499110968007112748904135286186561169494569134139703335869510553145538324202489080871072833789528477636600506066336486462265934936590836656725968282422869216107687034780661181179409693461542562972501466319879107083524597933234317933708072044180878449550612135289537856729730248692288152550121185550715818235150077726958353401907377928208280104797042077358100557946840130397425622670332984175556748726082819814702070293083456731775128368847853271510874468085277445934890042848474156290971582279564230895349028043119697816193009397049789474366863566117976049542311482395773048242178722981628320588476613171890109772124976522529213937596063262387058125493031514950112776470974210599010214620470540875431113328406853007181287729773172889120469152703562301762573250842313606004568167008861172608655638320306055177393690248563956961295579056672467139870085592856826266911124327900115039132794957308181699491092403533230141535164011152587010252171775851207387156715297597230020917294449510714364366858206634549020251228408357534259489289549797508670468292898075017735054552277672888607437199830782970158257617442929874095385640917956744667287550254657372394596970506723240607847038373882098108886075381994604122643157563678777988963418319312858244226776876317997047452234556990669290062830422484365541432307173031724697986980501867985172265937798269285923172089286178436772592353152379203347576265628936069155572783945621631740849565928604458398431619557455217071229518554210723566930609257370382587000064509670555820233156844790373039312094450635752208017648485268638702832279508622666537101840593567539697644553767887251252965158159952425573402459036464976664190012081353273179612075576205873255825616725768015269777412871458745719330288884334251337272240231267223421638349783574034287281545013786066523076887811414969386480144917582987538624639725982920498806232409631173524947858018468240395035488737634490678302581222227149687648477176862168631421147115440479027802403957105335472773689846894164397913502764652774900641481130576624269552850606983794957952741809960368471202056246181056926105617551858586822573081168957003691760726222079469848941742425511306924096209240665198524495878229319423492151744752887055802411028240301574354144126258315692336627520443820415594528184288517119480573791330430341015970582562866513470787482031848412486234489784744529140343364151444401901372343828090654932858835064031618691354732571817969619323666065733163384935802232338446511207790195342745156381676659776543273420645549854918767164107798101807512602784965053524007316723455567194117166334775426446149877087425426430944258413022576792346327906748079893491804062908931608266453694269174266037722159216940681872810421977946389573681411888760360658447822825213896686472224233898539083217294894372355884696443672969260672211579177357713159322155430787046104128961332111039704429616574673533268956888858028317675992672869762709057907513800520942898954573700771750886748904468543321087358182388473139324251090211846193069344160584839315984243075064027681470485610926544073884785738700052673659132677222232538774619796644446215280537950913959869288691950341204220056411648633194223380691106215124779616187132310961339684182936025289533631041072364011784403526081356077723186918176761470858475912454864346520107761251711977012511403994405926512744334789004656758219202704599478451022042970265399295750275712688362425059480754507105669082680713883359400400867906223257593110019169862251928715146514493744238871619364367845128053140258802553310975478620074409708739324218296014173061085905140981459998022722998455112917482917768775089541889772630231697316873397338423688774339615138688279310152552422982654338381241281916049655351317011293491730027062833129631544889398458408390887631311117755624916524710367227154216575157287942276946690205172583813224265910196557169450889347681372618644342833812061538774940648910474905353584398097083632273662185577257862284393356372397571153525080988933519534591439904996898538136520346122806348243570881002466848590315673346090006646320780879450619041997800707701028523641154736875047950967148372327071111092664084110772406611687699509123140449764098808113623412684953529210406751886556969655628414397679069378730866242988824980107698284819706114208156266596397698808238788010822949917381182085094159778676585461337559596143104511489035068333994841312705815358396309817977493764726898393913684246611105286722656008590955143301415461869482104089747878272845563947183322979280310621718372408073809394865746327099919695343398224461387037207215938919487855575305385201613881061826406761449799055804222655419240946860572184521285956232795603620979541285331811174824233832262103180444435965166641722748047735121944444549114265469267490212949064945521724829893510223700338683348273100816736684367052549561106256762534322619167193635103551381828411394677236564746522485113992142974169021571420440425145073353554525773083970372335168243539834337646420527252377798855961796241320383095951295091720357491715381026256130241304381013955829917525852028044645045209509398422607033844926189439062426775256086076579867391598795964867053988730416060792462880953157666933016548205345657339169832195890039293318165777530710082216861370741488003447568061413143629108808467732883178228507346579222929297423388179190160519039526491648535810499504402603399582301972744125604431069998440854785664000591065605986308962822500442481390891483492896526384352937317830240818774892607543688969557587005348419630391017856048950491330871511126191632113493321662731528401716403037157010331805629494783724560548131929160077852352695548041526343545215012418452696404507298629872634019057606443428151674867954447595320609141349258695504101504530547866234277614143000182823342936063847509520681986522595380364668943265265328507280175563787219337655084814378418247453277017902493318380902574953885410328360428481706212847128898713237288026280142766904169555056447466214825201462635317407527275029257115651228235042122575990512894893090861762867347882370503763324699756023157707869354154200221502025863122356856956015091841471841585977962974437123000638205575687433337733049810782790605990918360030299481167327994830897252310232046775535371392235674947678358477667534218674148668461387373812496260363433493634348942893168663877960426157797682188767843255833223250375222633485251056647490473175970819870564289155498598812253714919355473741609149964467890208901074317877143166041815663922663097852903018637109345708015039899941346073246234482002672813991879891164486417206183618072784419632590221778512388077795540629962749229844410303602728560659937415079262441171327445924229573371191875315610225227873226366130481177096168443056219003894906598903092988828490218990017087410340417148057401081966444828104988916554298066239198821057491972456447945198214360582802088674544763010594702235708942054452261625732082773853966001124963079385878806978359676636336329961400033192188352773978090240938046471156255615270105659586970195032551892571049546426206072985594490408412176134061209755917610385655564918509169909787756961369034530273926115849567669674211414564500266504736790154372222554487047715008401277237328303413875900357426121440607056052710641569460429487381434777203473471536216446312883420437643505890984388959985812258013594272553589931489283318644959116835638584914268726127126770892682515203283221206471263214177107393030073856814164774019387164281826127627748794062480582941608617160708165012316220370014401946056984719778405714611020019745968113249898256649418432913235870967385558055054681856554740787060777013226189182995598292150438508220946383378761120539269153176002333895931859369883051848326738336450866442970923937831088647103742156944790840871712310905603801139589175043987356485988672756547164285782981378583226433577773154207912756616768521430372425795929136360821098023550229254180507363401644538528628938594133633323193864968083277557283244809048536317666601399867304314193193840238141130873981832101274617954685375937291068197489079786053894411946900759905461102993782986150949548733824560725986067759179639465196546737347196269060819604225213637933498757666741655302630240483043089978662703905572338760064553054340196517670916255354484903775927319694432054438064302923825697090665921491052624465618284215172677014392285400168276205193003044066363422520201282433384689680814493542358895395017194999164446968984110870574786033700811951088632522962316475883377665407318146506820218015128159300176166366554552506836224411025143433500577592187259829308862487120215524975132104237333363645026444608627067642430977590766752268717631803281301426742251813462217759642596246869037463135031176392448789378469946376413479730783076318314004538106427893553544102299565704123453981938127077274939760863218013139813900682897660575554685400068127562275002481148630257355692198221728172728704744695435183683798007387344840577313349604496089581184693851147477223739778061898225342473219443944591340841262746016901381570673060193475238423537109447444453591450020189196136033303642344076102391755623036715883206736869493395901751619655178040860127683329441722402590309693835126585279121426679261803577701691379406598805630161415465560413997201154131146500864052035431803384776485443999573692050296846844652401308354039317643111246324228334831164712437882657820171412541657206804559798157129797660292218592065094406627301973626836025462910251478085076367204595559381641737333902979690844487725243489437480945998871681319852465089687800958881038770452876960242146925340472884036898361904995546270505775282193419011902008254287737554223455749493396830405925170267112596808311008808977195474911259256924996216119582085403701973299109461772586806060065462366361557414819903793860101632607392756876696972838756858978344501017791757479621083271493086371242767642743749144570053759923493148136161287027980356331455338407786866781578964889906618943170654922351273095499598908797797354871976864531514644125539796556862693157440012669947861693538048780208675434318184956281137255154131864482108916474482108017354675096190595618981960398068068828070484795551229653413534650759596778489200423306388193067063462828623485551071692114126376232485153741582570881475121176196490739628007245029173402477838312087036996191819266190496764810184751618858563230217295149890436277209196155628101391681417906624879843939225498561921937647562976557771070668342425461247713970696824279938452581230731920939546633935341997781024260652016904743062409148798980635956253730637659507358785282420605805519611835084703667715525623488479472721486442263626079374276699702698913804590895272023066729497514885912398665955108461012098673455023668689394908563437220421840999232855859042078181675435981562552790565613272047063422717661403144519621792870054979535552303508977858880778084744925552144985205421957414469399137074238706311314555629927438537879385950119190799930764599933439940079555761496831678941096204231616709345311418261326639936221220417434822872773775036894277868025921135058546870698369608558870679142563148580826306621392981417441053512390514217093495186802993977407096229288533940452903923738810530436351490758538298423902851906544889198679024268800959977410820495581537350568791745417283380644598374095593084243376099933365051248829894772112905573642687764762939550569743895844200211123338700467782709351598063763777352715217970731273759892165076631698028175167410396820715471835506731154635597026927134465863775293083246837235571178880748302388358540120163056821073833284446593049093428220846302502797232282913167670238498264140118090319919099030730385438857301790663770605989572864235807496754723104027833091089073496738931019779850224240100063720233638640910010143050805143177257075635644193277726928761657750848977851151677164456916561628599058917514462809003075883419515161901698469362374127866809244436215279683445977075087488127550250834957058953046975143476699734986364721899024474298849862762049851289141556545695824974383009822216342192037813209572803646130374347441590931141203764725128863889231771842745084700267909602181498412495779398586860526719884527662828551890348223828612322106985684555165729200897131015637850158721777798445496159608832339952887215132278452698644747884559157120168285340981381934676485082015734704138995225957994181408744242033973842834725767203418324368294451550676746526629133707798161980999864086195606808009532574457730459422277150717422015101248936306373113177423836969061360847517313003121133082096352366405784010390197565798464241410799199356283505981792979642470943204453372315763552043437890958200596447293426623140481988424003106474669315307426626795689053493251843297980488713210937036469516851383886650647007220958500811723701077527891221918574302252381805391796661928679599531132512841059542512087844138750891918750177168134750391703021379229154205092880022830791274088624809360614224865175307109912077040356189592061261870942601382755822096608225991274612300607209245087669702299182915402717724461345392421869184628699340268127525977283127966678316016681891092921152032740723006318018223803925220619222340465036199963979088324777390038376947729407171175188743031119990687996150129289123090814755907503799089984813373542491535503047955003910079427638031552393342822211514326444636402789055402282646951964462046759038916657724155002313557252243928461902648592641763354735850469140396958633311496113864645068136057115897999150158192013364504803812747665533259210692770945196471247204900379824060523851797259311939947101442940545000160826051080451702143278258944827181807208744393235864875992753761471614459277969142969003204615572250195815522533535519600507227753891983126721197193013146403127587154351065297316355853567719648348846374574291098963436910866415634432218822809669480561057818939519408165730548408131628674381019689825147337772080632515079485296028048801624311095813666210617857136334581722997825616096725122788096167921575020534680429674467310488302208485170588598202186938902777373660970952659438979542438816093624384257826986875816717220059494284540467607319765744694683726865094776707097394604393916071229389893797865546850389232644967642926302591537087624445407446805163056956491666262665439349980353718226436512192670853661186349151545849084932772823597440052462493976755514714778154839600086673190498682554313727409380665579815311154956083806621545415912994744848655674715013170187357083103062217627070900666329259361847509398307948558318926283641441061572772398876766586774709185619266391126751227169919774581359711315240935540559184232898088223345023457550601748062131632064671243338209545513960669119697358764202605328517863890246630611807881782834701054870519429130228129998610051288959324574081250311889016070858417326026579489534180333726476589926089262667599364344146730673260307310080303423755610742003537044252047967576916891498364378977642399880502375087722918549336397443022306461206493123396960048603381333313324206293159142486949461875334216335181389953497882307469375780510912807145706627928309417781315725333720108394262552607977272554825931723034711205614049201199474664702917701573175498493588816181504534660512592851591691540504652822483198807695717014162733113963355152197580730182277784133295759857431156900451092628964096755243921394964893693467849511436352174490917859733607612396910044805131674785747791992384635665450668281541487337570163291458691477260517707828618462029293697597305983572209004397017232709867684619020116220407628647062970848985019865509649772060882323608275425586966149334350951944699984249393143606140190771522453229333942549733647964870781690135512649626914324192087027324667504608994530692460929861320743892923165737101358650984621893375479180969370385966981204580991828207699425650485695355981360404174222652963118716939900315688483916627228738997818767328427555044780694987020860484418314740763373303005249996046647336926187224146199781970229451550245606965391251834685607996817144664044854451512298963360018156809688372159158555667191508797528264181512493419580235869937801242886389078478179486654627854980657743346708655928322205163583226397722736712974599134974740957310023106658325885860388803428175297180395712201317368548912244814457264246180691433637695483285374811903359688302559490499096974896239112818575246646659218178867552938714052683442356179594755915629390266295334303946890075041585917480451096617901739497271059901205414546871378153335581552558089027829891936127684028024450730285883534916244323201240823439196799893465513632598754272619206028658338291713651224697192470303454896999322306241914570836711262089738886499330256938640485204282610805764879453204114994783978696359601204262032367030508524547815966733317309862015445499913490530362480679387924229115243828730254541434241751245358555499978874522226313515434011865614904312383449301119297377927073979156499659292630233745736532405190835368752778644773504025118234871174146456984149999234736384055349066185832954240150318364744432593802092167050651892573449045241754627634067339797021730805044737302906725857637189782590138415790415021254624672784314082349443779884828619168722256788458412604217825324405806146621028343481410156079729444092997062593380846179324013282060112487107556306045159991632040299737951710874395114421549454605460798473452265136160014394327255925435839104139855928491184383143337416218686595693213537489099046876839855644989201010501718013211875673204971875352345353257499974265297543294579380799494179668680638675256586926774972788931554423391731987171500099165479061439273676287653720205346262519036030542752880540295923890627416980074027712492402247612014969123825886887262960329278474320664649452230035715122115577589289685224747826612939484090598285924643150843735843092441795614467366475972883758554205127085703353091379551054565060295807642866168255268747992496750461080559966858527106660463966431467091923953933146450323089700304008513339463395758035603968390793782723968532801978772281241662472686479981331902528992767909896913610819835508600249910223167757597771413302815147447760990739607259429713918038480499357983517775605408021106127201740250439669280759114599620975561277045247776139436211493660954187852824183901179319662736784319380733918447450936794951091922217960769013112453386142393010341188725197119757117882584055327370354123841011631095798442753211450461249439248900529784985425827313652192687133568192937340537632238094170220593589506406416438505217996383849946583558267766759035126969669661696224007775261553229100594280893250386666869955429819591011634235288633399044711850420831509769199069984703636731691824171893128574382434592451766341781030484984228036640785864604861570676740786323192188430215411917083596234347274217006499799798291633834707135983420854175953777348728946250735262673627364272185327788704029248646795684268407883213270116634059344081325169390373060075945281855439840041361802259999355836261129804117774378615925048827356912952075799458531188858982451550475375723505813627728162142135764130044276304079715906254811213838246052438539004455406366715940835542862557021336763307552617190873537782502178387235097185333281774898182105011338310462134138601471341481327231922862683329700274707786936437740191364642965730171615064845982087690961781666687445372849272646313333745245000769015432617521563923602181967304928731231844576618179784927533908867643740165847453284045905075615018105208192828612945036883069211799963571465115100624026218404887214731294736570687164232196343073400815249270492293562161854907426489599564214085580616183665180819778294153660730300160318309805256798714129367026036279547420053400411589487430065237216055375314147726693035430888195995421909344419009464546524977177742526259138884439006361375674672624547400683833636839048986986052014514543638958522641507588619016991692143256716648262146352576834575042213905519544219131947782321005271111636490140796246923521297543957804164959469445827034272577756549371488766703635981813132458212218769263528358495018489721261905554509190159136970900422159710322516588612423257745669524921245716978615077933799025227042472884173889267070898442176560278845577674453121441084417572160420200792076096715385887145036133434840226209150787721494290958158183716715798541782098545386248729943826670574091379024628516134273583053839542661794196564621422272561224359192848757910650788223216743099153008240103914225936710660673952959387228984135886249386316826399651623578187954895944175075795380695318627322771197317232347347047070900544737651813686463682509622845041586464634239498332994783279023500080705619401045373669960155954192886716063216248736022418820656118585148707751813712625497501162665384024430357756199077223825344414362319313936528788230261112910459683106802144037513372498185352909076119977369620367895652388025720556488353057189907374541631008840573032415214705352223022306341059786116422410134807735559231795106614512237352433127551293020981917408618645593352861266742270347694103103034321615509297874877913098044876856632478187510346450672568836524251351446008731020992241625887574320406180106236281178735612942629569338456580513317307055920974635612255534841734842994055333115285677916975879904988351489442293586838648524625749849397723923927621964920306669554600674107782459165051545495578189443253732018213956110972292111340867641092525693149144034302830302206092456638712527913583948876629072188490990926274777603765486207135712676594692783810987547154152022259759399920600554675299564853027126934328255120921761664842899614335893257519350942264508776590085515165079633747555817331136383834378088447680188036917611240559249886813323312845151958385823397270328687197112004536708839949927677204348173068482740925848478230397661859347217936945174624275144264789352387446788740293970432965505924886240874169965004765615999982016028614832242337674443037085654896111636610848291069722929624502090541689993720843054049533839344032749200352705560107433388161094162821787940617141337660372742651709460330609500489685506496204296538826850357212850387843520023071220159327794570733389205421287699954772367799372475761571590734785058383058290714926351129806855078905924368205601930904615727571508783155294439922320874292729172740565482191154145120644960484965213605970676236084395842458153774640864622911105917585530553228173228834042482352075073154879951626553368515626581495891084527057016462019929692205643147706281861914660138609995368396842600209792807307649276844702701024493338187641206588485771752197876917017544355417772680746246817046346978513711815775583654540002881971834848018403630249834490833884054565596975965241817381146927150341874490179650626541812530081458464576120030927416635188857379944506937614585321110050281742871644374418947800604976506130366986140588333645935764670023114352009975517641157350620538443292986552938850392965436294627320044644136941390102018094308884380609309975334955577196755976742212395287427385660146028261909320462956918283623388091670349217255304343226080998990129019114513406031807845316245785234832793541912203358074368470087989687897044091846114176044621069823394036706372392370572030560693012410578503870864673890922730158007122210014977058704177087602567569795993943319993179662650651152447007174834694513451566538996844146705070774474759447838257890539312899553222878070782873928380601783101759023870593000219045918089844480735417198249636766369674723115935473030601634941578508908044938457239635849905277522900764472160533235383638855314151908591641134878470449597533453526506895540131332114172483151445652630325924952341840198743129644576779075200663672173662739585402555648102763977258158882060172893580459918245624802324050229481794973156379586981295424403582307866175050914897385468478463528683627353721477061073586611639878265229925523260205292281244363382191315106593465383276781070945973251946037817933580294566149568423279703383052557119460714487354287775532290437540234000097201546846963402706477322837361705649298642158302285500256381527498020445199744362771925755638338640850156642147430232569483485708147302787399091296233526410018261800693916883318196660589600344312435353155509925591292049395268925499236509983692888822814452534299717021280256173954388635896092571914670500282956629135667252738588217831070120361265490141313548827632862395121374084852489473423931430273977686926750689327513158919734421913529273218096397696490125952050255895834944841591636905666418163308257278689986620646248237993111999849995915407907390520476156808936195042908903297043950984640036020337230332833094603916926115538033927915469279870775107955524895797723807427297490104386214967983068554882389349116527194197082596005843698533986242852185971681164675319455814569576837195560261136007215558633294282953938153377876529261398105232606582370660299592702132452440639770096439460683260706276818297673170012719146819501622769607716968598982040008742941062652457800481678444504009800501347882870271097228050308251077780416513927373793125299822897260345080291246546863002999072097392701370417000574910267662598418600295737287030154171582810742929202527937002226161226270903304923023144861276441773488949368810216648248531824454833104273264540699791185165888114299713333333869871815561069960171057676419673840419483226408891775450232657070311547073658834122727657179439329812266124899540002218829140885389710199737397041640545943461884835023088616133412011397662574118669182541631880042557531755586940239280608434833087867809293083154499608937480576719655111493813830525017309999455588004577653007273173040517706915880901874588386458163830955733133788491617199808331693068987603409326747133522311234971709691171875764594106077056176910897816866905660684918202171764172064650277926186227452870491677727944544918678921796164775584125076924428465981926422624257551929861903623615560714936344838987548377299893204366377738810532771642829354500559913958168163507238493323101385464561375018505328817326485894614257038373152567606845712906361454879003599657793472595557477157198404020006204477444534688726686831142760824839571546283066822809392996173003518073652045442860329778231934361542384160608330534875485889875374147483339333854559533017499070078291740166448328722130942407458837089083774775821058209031341217966031609146783783666857579288073619959809417528342232621773140198690013798228556604156655120410863228790171936750030108609287924991743493885601838722935193725640047339755068582887617225849008465205296395195266714132968486990449816236091981795895193049648660972891008688779970003677028971161715863310345565634989270093703324675357196035144233860401818730309894172005095566651723958596120279640926942235077912016095263280387282665774937027552442900647556290666336337706583164133003016134877512156040223934895143339866622858949182326080342859955359944304964065001304228949863023746536639714915253804832399899618408528026774893446855494565038036345515540804896662781375003845120381754374623155206487381510865047784267457511800363205037066759352112083295198617935194250958852507206109825998087838811024400439439374171392736048224671984013042804034690724776838863179571492639045727073488751028677610825193930180729313742412650878822763457739202295172654388234165074681082715997944557575286459543824586071128206243771627292300737283179890443680644286280015651630643938424337790011254906781570837070505414952245516893700977195892369925898425881150631331488824698643318178484715250243334123186129671904166358692662672016512201880861513460754214744711734290789185061520278078758329634346116366562892463501624080327434502571691036380502347476589610678716910575143274121251549007714604921718917327991719302895699823810860911755086490988955283674786054039647558167409967082906582267178202688483622222733619566353583879125431598741312254252346153786915570973307821224001376143994102641981520731723577819270267818619642963909134948386934452526946048131981955130259555990930834001840763768651720198994483614065030219594010899462747787045470238729727566602267345851214446381190838520639678671009147741089648863312911021547944399036783594014307197816215720307806437624618086656491901668218638349475833551321090587320328402205033862961867468984512246603349281879737176372637283433418902771900532448549756976082760745192443047521980550903733761400300869060639203366848628959536702542513398259365805673245146540011817394283057740221792383175375630091969244463251831971868000238566937547523285221754761283254706671880928108455566282473832100575759104673822197730841407304951919754552280610144824347244954117168871062921498856819236996506309553727642204571220262508980269071316472686977138508222788083359028267239158827416973164577123983463428592469339090938352750067427562721653060344615633111847667623233099805486387877433862086805668098035690704549924987255954394143339149716409735427339127021384235875480997378745527508574788143584012939584455829050591228482057429545830073291993790390369622690314386766928939172009876022548015433990700707010930881354717928731176279316860683864293056491000059346135163038752837709355040266395313315331247068048241801504566826629271868603626494856747218659354232935214575258558241166570770252385554755692712405188699981311216982811305093637200744198271172478895941014331438422654842983761803240325437865793751020846625241496250398506374147273212658589400756784677080252085673006673087268314923699731017643794328467592271713693960072093523072804664771889741747940792114560184691328059392943252589365882309402070648359237800637888308099395201870177332205358603576264314116225963232217699453629831625602722080308747942039700934987975245555725349231317707283797576659038666194449304048645621873486301494683651835381290216347327957978814653493103005898573721182192891686254159089682208039890096303641331535049066224041644053314987761249451403560184518299073420515472229256161959996268855017896417498217929810769844325505971147579918700511383264450664252921505522086572092774181179572984322858371005090035096920924925890899608381583058802739251531805648469754866478262161282176430653868999008598023794222947418296372846946099570973040330209439351554551116186580373799537273735446606170379459908672535805051217273260139760126765104737292703760166392668951089611200512182640260049827147816079740096388446312150350243570483471058842045456125868344149923449841704123888930714488375324036776898346523128971570979589396654973492623424411618497884107584325477419732944116321003568670224564688513812586880972096781723071788428075387918526765693745158186155403569902571388435389557237725763417474989731161233068030229449035134729836466761695837604248531255905969143716242407347075455157040762354619025075095530110191686538566521183475580416393184968355736122311947831210946957112664488844629281251891390363600590982358270013228263511293337037898552851756002130689215607287049619402284609153123305558578543328534990502887880832419238867194445876368414024536884194915226484483045753757646895454379017706708641180621061671134567492924456168544248765055155451614589427828112144377282014743816433597814706506717137196974879177172497583490706905193580198552918113021835239418103415902797707399798686512755925861274798846455873969713991543705827146751731711173588492104831774461517027220856576809086551260080419953572280042289008834469404878874356481828611690080947321439711965015449666661437326009448588677224654492966742382562260424801395971606850877384260025925121138338843920882314504683250914754162215945228997711115572397052288437443675901436831110032866543624963370811813703074806535073612583276804588229673506132776564064226595127714717425579825377180952512503389729156936538392728223220494366741387740707110727709123897974776287406184916068371991783363329876609505425665133919465747485296328746567331822020262889177787399191397845785829624366664658387592477186099822705014176856275620593830649634564162918716134711287432263572055511364459307170625286430662692125433563388716526904875533696995561980104613160533181425334305792343730638466972213501075406706921174376159514176133975570580930531615834116356261072913794137434359507036043232048592874487025755313354592449011554251729548740920123967708903178788049634756171394751460117627450680898627914760269866699639291329340733501107094960993205544194838615710940516261203548291363326556562249196710908522056572353894473768595574745820034662218675324335674715529210418140121296001125542860863079414342672942546702327034004571925513944730361315109694748234457871779537606590847339121815483517350895990854108793155329023707656050085349084018898971478739621764680028646217024151210336860177427688996562031067988486989709335566098155816155223804391177645693101811894333287712097917408779856133052279082782365891094127982896150156972076217995826527039191845599603021957333540811471059050770348901361692724387424677381545621619856267143409722549565979849054389734110837335413826459833868383498242405560240064875698551164620503556280278025405393809780290854775169564260092246664437389236292776004647720800914425942816032045437617676635794684011456349214412711870051063304569717025040412979113594130731861143071647673291097788750408924148167338978803183703236304430743339967130709209585485633878725014865105586482820985457652234690180104701858182902874545249089234602350353498223349052423415096436383514365689175500539816319121430535695165331410471306076201390987061293180962318854129372119117288178085026561393710022701749314404239283013785778744434517191870565149311950818201943312978379864216838571659297637274009804802324008153194678794362825100740928692214925653367540844514082930076353163688449993441056810106240019716631406958631337761963392246387745837807450785705418702466416636203408695315335862132929438135298830858371616392953654912779508222435323055299295462233433266132099537863203259156646646492981480540961730087990250687578008897049948791973036230215980349977294193900786151296344252717625591806672599010068262574965490038445858707401723234217048059262947638249767043731055835601909161415345594331715870861465436299813027479835986937569741772569422383641396243077892189065052042903009485093730965782671818928332160557479661195295218243423775533858015972518990962444434363323641611366221131613193542253583447828456484798151065508929046870680760675048950788600506598735107938440268640350205550767148160160510072991337410229435249615941178295210822508503685109724103660706560866516388297568026313636387878127313943563318954975644151270760766936234959472670869584866641624042283466957785599733374721738845509260900226073454954072098358997589609672225303775489543219091630709535434689588166247918865806684367887266038923845178238354646659001684153865685266233071414307817162053381782127273495205618856848502348512894745477515197533564363756413009088698155837283266920214450895684936676013060632788385201438055433032421759291525355871972549258743636966168431550405995358169280968657950273578367720250277121771268840223600914940465044613836089792312287210885953844751634830527633050036295365924958366842969291923880450257136210754063177392838917734032740534702625629268975235090930054826232393140701811055684545883281101589393716120331764495476776261778295845282031753314097478788423980885890437112063711719566597394787249642385736390988493437250390047313308611195757712240298233783206511458538673014143773090220648178941012891987237749268329395156726260618018348500227588549937859894509793484765842246903806491639508826002130632223162633195678430047885329393731174161908082163050849709114352697474503183856643813377422927634282807762013687242974536168674341471489173833606804570419416836081661469580404752035837251390867486347159230163754315560876101467952120696081544179890069048728010613381551971741831493171904340972023771757392430936865123960547032077350072916534279597169218529034886304387959708340866387418675342565634294709332985138469297083932055517451354671186740252292744563222248784142059460314854025294980704485515096313184138220123346275492349648796097890349266598469190036917695560278707369705775427934421236339475044859556592409367371646136684482789072992188730415180626101278225684480454461886476668702174060892664195452416724605828761132920422521133908860886973078864594375555189146096447135565874361646499539678119124837084769272486096414912388024927508126871498551893328075432864043620952521020371170027819373228493660787838913382356298956038503439412640833026926956527365287619119586378548456985048016257483541908936252532440070849141073179193767505899557706834677155796729135314969044858925482263049671805881751764006842337307563238038162879578747650585215117642335069882031708487464041677578667664035790156573422235529132742553120961915218449393554008210807981047609416440015718872856630266578662498039456228037179741388101799373158144665496880319899823842739612240451918994348199750611929962592782813368559699720903435534246384152433910080903011093191374240828131901663299839899613527350789296280630823978581234446644559903071587454410564921714121887358951561569570795120884243165516398631302670193271583388950993589790024620184043173575350566519934379573541798224537665611243820949711357989974117451812657115526848034710155831916249756935895227212697198338140040559923784128142340540952067124025929072201595061279703207404974505267066382657673554624932967253747267677117482358224795364968764671926746372362813749975290856946502943013010649310205369565720042211572681638144480542100404244287097500929549659439424069537414039968694503825873233775998018755736452560240711120674276809341540221165259159791731457694563929187751855059638426113363846468558080583553205532571119909526750871600097422398471581070419096950519809517369071717396798113474435181413368271713163361636424243808220563433727651668391202387380237407598926861076382901442481627980142767940758611292816110878483365847057118679155924003786157774704682195370163205788823871683123097404488356710851382780532036642399909477312121141438216338032607670086121269908279804259468055686050341319540890826034421314736572517498498961024990021249976216226950641565661626187159823823926446547900809729706313169084310627295496444235917732427632938023175517985452413923842530396273364230142204867164968834440926023779739832172945985134852507872392275759482423412948812124744930193916393950880017028454381263075864824469512174418409735578593887719040618196426478384821057980367339971774797499514241929623688537275480719538538692538857867306745948527424554941076483654927858493173304519667600475072277787945500275565402460650688451441135253059040745720126045749730725361782659196292594690413282200251403474469213930674890546862016391721535184632634064379768114581978972838595915815475661959283649408008154466207636154003742715668309165303731442197541178015803664709570517437389283964240771672473072605021959431284019282561626256665607306069791756121219143446053055885499389308464921722721308434644186230309025266322017257909302483811608528506549651663601385957533648323948272102558872530105238659587283300859123493344329126322339547184027287225017737149425133278988007817798743235735444382572971932888552939374363830676309101388976123322198857860232798233835010722619577188318747785924038453039559753280117349783247206530873129411435088848956322987378598913820064746354892053479144628575489829309589286210943978353677768212476633600234649542390637178097612726626768193366456552845936463563086907701469054033156803800549545935944070038482322902418306582216514552850495933743247488955866845315348806997645379390982502036630362571899168486031916505938899152157898521619814740839177750178311958506277956594566280366669752229268253876876559415241803526304000294313744823785477889209249010076540303089844721832905204265138784988018560420047706981312468359120019776350344390113656440721034150515016169692353774251018055462722307331966341852868831958377912511183404125671779591045387352530825099189413400540861910393778701445876976250457656043574130611928941536203559165434198079001379965619448860138065914994932277173256383705682773429544126923966473866707799283572847441855937121419686227804977039259713610222439068678826465243224114815708720779886755847659313636109495264762484810619639696740570365566532403599085570279451453546551896622848622363233630333596677861722912202248767936558601581471313126042183131900210071637313493377619203824401764410433540429564063511432085406335742833765170277115913876417193189066419879979054976400449178645382979118930979287248514070541328897505231669860789534376803584279299981379437002933445455846050847338312025076470697595270241957191815587932476552734588934368167304587106900083737381104887403215390633620757725680707007343040482521599305532079598726204595923681669014493953754712673682326196224796366505015923908711290298062350408570848496447127323889026575356394571047152474266942090803125263329067767646567870139911459657647403709470594588305916301782676015908492969430329686267259751546646627869775577548020958036918545577057590724843818078671879364337143995058473494347752176419836877530703364501882093332591512105381707377068928814382731000138101916931778286418841536567917655434266332784514001451840079826264050453419268549503333242535069202174957432436829977855369260609996874451561209642889855287188558371852450661145517080391957004473579522907379200613243995259527497872674554385592533820107613915323668469012414676550227800044957408491685387647053258200020598052077619044283863381967716100754420480786346788208441824877122748000181825536986905531623328486463795204858840735219496980621812416603098606998171210764167198292403387479327070453985317341163212494653257958300209434111626411482837909235453289644297052504410112245940144812844344163630208798870736658335870900612624156228481434129630878035170000657650314096024779808884638065209824234948990498924996350475107635341464543116309230893472491835708720150645630540453576237406830268530670326267960012326952315617875298088144670143239276499912946354385540410305274664514487216936603529966400552690908037340728200264668232537007017843935175336660821968835017107384125169713524156396509474099424731411913303610855023825648510167032003373401440369880407288798841578082422810569845010814322964174142959173227332754248971566074905211804355731333115653756662117930522935880672870205773395276590228077453182582388316108639480826788106057535467178332712347944716034130554148231244010208786153567078628861992727892741713604028007748803071759324952135186352634933448172995878021821084402381677508042221122914628440497302160756356406667920840556120841673296926811381251729650862454800772439580027005752687287105415118187879193576802192277030418388682971611755829920367974861953966816460446671223710917771302287104610399175562906221653511409559647253380752382698315444608568782339556783881082147400587337567217570460598454243690245167866191785300487313314426371313140104610505799098026691118040323874645174378661097257246721855817047757127743598002273582252409956308681093033448598215047665997005960716642620037145155599242767584334265151331885777175761400288155602066100838622657882857640930304932388289859068935229754581953109889977405175280730535454069510413494861254894700971494190682297916284822286291514698102719326881850572371304975651284989447161783838140030722551918365589882047862334698993739184135162552142296406410221588415103084744285594570099819324682938052698348267534229182891494512714219230993643308488269018693651382445694242159145264117680208907244301857961749932243331082653160898244657834706372744801228060475617760615331899888751017898856648196519802984939684696232479528859382579923209717270803600885637256256387945676801926461361722921381714955547286832358517232595949463140965110696805769738393829967465569949258330196333298861105631344641531114422217579890675506284667991073827865064746934068850732730156687042150189627566852819817566219715943574323188330844730097176847240004703084359888389178548894021204230921891587689038665345879385515004866592984688435509314556148010333372465027306866816699331007594531799705305293829597517731752768808330103495836951470948014255683410243421511259348098266231915319149272457305901895568412020424092199681923991261659206029925667577604436431061575835532497194831409788813914087813769327515136818766514701659907892628103276308749719365670508581740977018401643888085040824873510998779756716280553231617871899200371994350817894454162726056403484075156410574163736015691445700575745580322448204944183785199446124320474653728611206596858551460258906323630559353519361651799174556025527893961958748279512498693245439289288957331652659432681378404356159402151948590555797610740154598961618227683866968265875011781492145859383465096465975497641512906563603292217349328697268182622841294219027104892507872461001281173843051655215221501747618244212760148675882458932100071979025652747952337227059200290029296765145361087318943540541357242277974793561470831443837289339756751694777608746218518380314120132880136960686552070140772392782752562904655558614008850065664030100986300124397192284884352062286847412560481843068328264147514705418839694409511411962937774693562053438138739084973889473114668805223075323650604033029897918230630551166864150466144984940485625005298705162454753966977653992664383418990197171810469046718933230001273799425100048400333981857299933635054839898751315010824590346065312117970301772636286961117389442718446112570245133035930978202458856401754911212159295726145348474429457207827171662457516667610948995299291491135747298615734585390806945931632954866026326399065725891618005920652059513045955423384768024150472570231626648978718441604888407208667333496987484065508314669407829662194204914209809444394756467680634474173978978258211115946968956115565365242348520131234485274165064199936425550851546564761579047521261149671737477378051576246001923834678786729153001255539644815618807243764597447345829054121479953910258521993524076910747094134172451289461169612936307172559603739489897430920206011220269055695407524844165768538072564411920046309976194019879808151240109347506243008337552938324515496060545563524973231735885129597986563109800728057874754516097856663328865177889283689077582003375365419988185552295160518112416860405804873828161990847271102668448828965565191069067077899106621266571247255986724762269232728733318774961235633916904257434775718818456708300069933605655838196916702064336232864487699065863789863153438976647077357494889876120266665368777622825366383254916501626284921991905510372024924386960958363150858745926482534625833505336624331000211754755920943864069182580586903796018424582016880827259557279573692020403246871269215389617249425773291383279869658938226972328289842213752821517898087021947667231893100207891834740696930410169341927996385742448264013874615857383954907780632924840584688560179633802622207959949957414993601728972281211998855336697157262014848239021766850967724099420765651285239521562952536406711287083382548901414810910155356359404119050873987597816775114022614073293905109211039166254073703316338617078662412085410119232187281180894532089763117405425744213776194421572391824123438504352386933588097131586955350930077973440103029650987996128195911271242775644096440865442360535910563447264487515995552613804546030141907808746279483284250875506392495560657751720473887050488622720359783026812302899833664552156340222251056933675191851546050109783569802963772837793647086089044905384160795318705459330074605259184094309837556925474910556751373129039712649479202632188442773800882069505675420854224340192862341647395993831168139199997430391021794944881330195382832135360586866709760063248501283181156530471345416018489586767308417118398804918400789211990574882991046721443494244483846868794626195676452049126463225616962652364107972390879046145582209545500016012801816023333038064299413117088052778553077821199514102105462370867724269016848554127943512935655004636817987175520922803000864545663853251171035780221196518645608166691488627874129775302398673644061548785063175945432989874948338650554888775458228449541860190323602426056610424061234805040384362353454821082757772165243317075569989253452865705739829901944808357625694516535924323446601961801622761337615663192571639567503214325271962552413344964589017002800042379489412062629348864544467961543342421966238475801537577569949667820595604867710888039449041898266319579972857208854345624598859501504267867628035245674716079018156846675447566979590539890566747621810242347639508842440970031094500644038521013523825761916149718044403307984218555537174709380825113644034154778216172274379528024549246996333669875631437172719323145098731975577015401734813916880269879770406435250471297087966327177674737314804748225563982670686025335657350394979266429828661942191459140018266764856404154208218342689771904054605446167641243348035479344663416326079380785484638634700845319764564795510151746344601155032831357171387854944451442742403041963155236345050262868626040658580081690311009361549216170007933923899700345747822739762530641013882802929332362562121927452967790083081439993940614487307696911543548589701556255769244662737887742885365244928868264116417430529704304831377815957906789311592671996628923243892670619995776820188965691591336861513927120489943178690646982117308607328760446185243888605133144852544783154075967437649075230079797573379827023469112519668065218387016906956423766196372157743603760360626429331988856746084307127488465775396473085245829659511906155273458622171824013279324149936701813033353573152969875667953497238840858013562134215929092491930767198967155164947178718006718123414316892721939739722986817315402533303801032828216090050063806923239715924777305565920458995032730613332446891645094835482669242230601113118176985558581365796491420204545381325104005730033737009013791647522857969170610097577123339632487470767104266613264526500353555769745425236907128515986507550979319832373581210134636376102840504864490187060705059252705583241948568086712991807852525734015616614658947888128090934980206055708269775380632128943086749038640272134372856048626561860274740758735830773485271286336258144131884851482966793918138020507961090658266496115183962477849995854056001604440550966917125234419987789515564627537005305390559321070658324806227345898341132093183202434488771128732499736413771032315071009892985475024138633373138742774322080364213924876987539322866369272356845193152169277695736491874767813111435934791089198155611389011804413868592304799585091167330372474843521427300549735124295104999610111238989074207328226812575052481037445516758176863747563797513560335415606949231279214627719978912458723775651646229603131651888526211621659653812828971607612149357203918003779506521344239342338641095005448330789823701770809120420522049030265278022926288593090065750439126869789974909958587063116146465398524233237612941117518150427893350501122999052005363951040920362639583265981347798832844081006724709328369887044474692282226940816904460443327933448257558764495949904404471497469406730431313153597019453052677795724103538898447199675387030626211929714316952874509214126621004503968331017491342239742384626729020894158548308214535520888934742389600663635951076937341231907442561192379071544899678805126359309225049788066372153107379874936979431134213345334969700733111714644711127774974863752530916200284570785616764906258008383910101313990241334085187720688272915569219456289227732482777808705141370256464649954802103586490320345405593301522870970030624877767580494620782142129587184863712258095865538501158329153290746405967152570181902876660122160801033519280386543520727553775420550180773309541034488621779474028265006896850193498409112550868321754334628658546109494024676883755452487305043758279941126444099803061556783904208406005468579908253606208271373938841500499028302748484733623529988682104554997974184025534476674178556229165695637962185909946597001212005324635153702716697218874927143279088848343372601618470825153503533614395299456283783986186164647472954977352769247848796950690549383755965566597196572180953126002216616452383477366021136515805040626577072592176476023717047153394473261026778868613802054390609785737890673827766047562377276693645779466249997885097361332491768347340823362442094619610490429299968965961299571898581768675241815872109248092835168348207348084395334823822995804055511383142680926602085703304013702931323395769601825984090589455768385134833626377810174119217805931381344430225859530585484749620046924759550705645596885606538170271031803725898267401774349584508895446991714387111058085491737111067726027218096635364647626561817999945588891762271862653965202430175737031644785503151165091035646992918435651296504208659393446521299834246693139701884842074727208832366106111007770742674833661656216829591992870452822044746135309856274786112964166023070014886836174843893285435438274439473909201022491660277199957348703065713143008952091386757590190317770085577622797398079595371461558682226352653594430588068430841090288551496449743759799210927217646379792508945139976906572503925288040971770707248186429305894328983192525959264414163547104327239829878664248453295202415976232005442363166187053214473602801620921728518901895052810645130257054874195993958322522100262082324693157863349909843744158028232757108747214053753713791832581070218129216465361271574271240818297651436776637611750624267302101082964156460406443916928536848272675786346833998240496773811608974406015337546985326714371103884169868813899112333827738038559261739482853367226269730564227099455542530992598059588897649106563748826065812154294996794092545438072981624278973973588501006517536263145203460092157854614701513542872800940074870535102091795947650095036001752398218429062714623115257909519692174114476848537350857465341274913762982647445380902649318446502538323636550128760552826626570759781252998702280244073987620985195102506588308869635828350623016867020255748505864280056857494448837259572990130111469020514899864205302948090473082318318367531283077628104026004595330812612922789681323441394707837963310548886009847275372406083340834274485261546876113440222148694596225899467366879452073675651783415035386966704715245441041699917810290312383957028673015258986827289538029381676883986325862534031411316946344528128068312308174212161526209348912954502517564317012491088657325112620776260909544334660816684949252729940495168280094970718721985775844809014193499512529999542209150390112911538055143423998608832535666123156702894688218006265912047562337735427683852757426179437988280603521043519361135495393925805753535795430799560627071358900685684781879049473649307049185441853406150061452193652288209313238145460221175552740215286685776431981711480310378772314493818765960319073734798923786066658047097862416747422220173814165875956688371239426510313792576133485751349950327651527551179773047454387476192221234797004704796133946417194075672894280814119917776475272215447815792423408619277457057538766174593593836783661607945699440837104567466073508276489160628942324247944786872133431932958333982888827616834300060062026275877164128195716429698590607056122012820879828990377455640177167717786370104172091721672305907801378850931364817349881562290551628802798605069095559886637694090031986387696251356514391126387366922859086561585562812584158019578501413103516279043074409656122206976901634510430021601571352718926538983874492041385594885135988289664930702265964820903498699668160574997160155405345500927997693746628424315824654322659312150036224110172837556523228771866764734122994293087054933828897500648733260584961288575762354586528352199943819875410260897824696823813260917953636856883701733223920384741513157522285495680102737750522711087171101428159722793685799433635671283898488294415286788819436734954563098045098916012239382471323044638286347488590912576099741812870114025677474192393918962687318283183195575432048259579122192024740955390854953953172690762169767240167758861514500791291207042381870261103210050092612896233150925604632560388943075000756319557928763111154092538143192376603779134946185479164232965911073475096293658561636426811958262127778782381603854964242940500045173559672012320017872239051898924692198095382365326203637222490463360457983616412051958042072408573197585894280550613980897959899484634915628692249529221434229713650521083969152142323952143624368307449945764668861982469025505360458919804552599921205904705305173669590436310089198839696411320041164238531563399693666957974380874356193633104528446314624269521811570008780577244763240329270208338542578995517474080041051935647647552796201281349980799343339633251937166953565909569792537936786272897400136529593588639011122230661190773518842625110754575815569455924545576375719349206905637429201741655904474236568393480609375942550251791529752716505928890978684090013024104882120181784545120588184928624765183931666836028881680618150042540627141535611038989225062989502937935200604469445538277993166733594981720559501973089196146125953552835045869600208116868236120198477483535263525752029979893695299880655563298872101220404528155505567494794812955726892568566814111094159004314916420353981266242065287682757443780884257925004154544088424671649065029586382589295045367928337502814492253842495299157234099727393991517291740494835260932896930524462917934966671880113134776597340741307031039707272739744859838449131780712712116774886319896932134456485533435905686810275282414276816321827794567749670376717296288338099062800499306981537387082937375603964595885840862832119525262087320798955780734206682656991910517026441374965200791221012178615323108250798254610588044697669357928059629257441971050865195203165470912300726290354659621246264205975846023803511178728337037319454477700986872262048213155735118409533594583478191772342847855586443442726326473767011266633878311127862297504527138916019868422196373820700537572267890542463322899185938171992243566626190880580272908277530189431866930254231483572092772953084402264992733605123095019312986206642143548369436756159198701567630901601388304007971866221136124659717073356172948892054000604109525345839898972382741006917113117718258814666138727349039024462332330104658377019551920368981056819053624980580612184983607857147489614779969485477861847867228532331000015186115503489476856103141614468746698333349719561926048248073066161771815506949916658649230966870901196018789472754754935770444385107815675206757774347782806558660090446068266490677945942001045828515972679596057651676250352317196908942708188146901577702226325379053689659081665278322802064171048419560522669058274333243583618326798734842113557903891796527003344490574573671874486799820589708183351108528116262433215328749157511005077607974463023259755778166648112095236823356004117846210231994115509386380053384280615381962727653184767464667554357873082123726667193305910555080001804938168643692082628250368268215106078130711820502443496272168509717617335639301861354503607040791175953521277500871442816726012343862802197012924252058447900136596832169020213148955106380054608133647958771197610028175725771834495021303785836750783108719636347067080621518536502920984586426556997768656408980201416859152268226618782386081071666300788688779220024458378664345937654524049874513848366484370175236698365862289503292044021234966725865190796948410475842781814465034843528461503219808510411654206410955186276013247569787893765458193110805414521486365959248348389836718959693174367702440127000694343284522996234968615505763041301178355058191369528506601356702565890287480443675365741549390408747280021739138301992400855411896193295928982400735526200856321617060955665222357949671127947115251759267266522826442296369299368226109207518926176359285703439964621993509968973566225757470483460823541219669093787015260616139289048954951223745383886065166424126565026118349127615018423112480404170908975963383345684431772681854745065876893318160950196864905691900929975806727812767324831469899566503641694084950474024179178813928580390501021969838285421315844295063361948062177388612867725476097772406759348886444639674153595167398480860116328309759653578230940444190041798481810594708276063182686770335665120424801550040602776560144711133527863797743182573137864548882714207049251655129025239784449268778698497831114522031312211267257009936805179913630735475253527681492805742670788250395869317430595523954015989099201543874016604877350559879017472648267594365753507477973656562321207154591857828850045666733212453572758104907235028455211759038410286291469853203162277634562678195093535526683337268990798731236264811869567308272329627480181641006097243129406559788999505224887038343625847474060553746507618195340649145852260389432837387372896338897721916083368476231620720634035436281842708085120182521115424320413108743848580885260309129017824404653070579547588647704678745332176941389894176708190801708810122299377349933612911333018823793380669789576427922820465764889871678268297544516356908621160388264972336208441930134261259937343285877596125158781276499253369043560154269239371315990044359981014982823077797148374214273229838618871136908626705041385136611982629777496732667481986760416126761545942429230300140905264438876580009751622586944974234408182873135049061938729855950446220332411771773954712889977173325282239255099429363029504517220956158020159363862747864034025618358936112785257586033653520085654348358565799189165473897607300908196030928784752334662949265549923295950292817401530049470838436800068142750521592096792080294349338036646104503901149510678778600558456544259294960724136726445852549695863579465737240933631864703751785063882515567673995566747068585980471220723528517305911899400216478133826018430936470207712327620290820774083231136946708794953389013018582213729885300411818814927521889504633153320483004059853889740832513480334346230149537074372674348746447367856832620059043530820460369635317533796505572332955746592712581454327220850264666395385100724232881602461441353080192647734154719466352821989724041877436126942128142937525005799813662057662633055348960718042987066090425289718584828615143589419303043357581995242849815850324183483518899810680623708923874412656754785863504677008220691273787352229871619666652108672941899264364465637330422449209522589513662364946556016234077532692191483937200041103861845471199701764780669663141388386373297982270493473065600515998869494971825737522302452348099831257325304547109467521755010814240724219944938515127057456503594432955403216738784705961439948900256914553395421980122220717988513067696288235772479539673582817470192220953357404963911298969240759853526304740733436031734617176089260462476942666857483961414628840297684291172977139502821940344964044195876297483159266676212489676558976178620053996547818481706671516474518640821219466232653411573861884580818128626959273801700805699819345697564448054296165770749167502465842315925847650270175689286555066897128362482813700227935904738072184682746583592631997520559049990649598606620858050553062566041795634423609559567681166584052657291737504925515076338136476314184664700898702537073149219973148237027816152904652776057104027297491813318260328428102464038475338671595992524266418691205589131689433375711202176655554950444718208195240486974844201927120441147710293319792493787808403041629978057850617668650659320885851657634713273138966196648753767610763122748040711984899286806544289818118379440804300069878200519148205063347652076917868852550666313274841611775303957452796992507385395474132875717950963735949710696692182978902671321017199009470074615080547658381159686321331910199841843097337459983760938871136055623733449265205913689320663433322606005128424390823587525839836046059634733390211699587112779468733041971023452333030412731018105784582415802914321898875964322135517377775379410768742280615931617784801364181968352771452102425520218633520743960405868458664168175641261946185291039281319816735268728710518018878349833941996364844166968839148655024382176802471902929682206783497150513834513927466306044698962060379543453197643187880696212984535648878241004838568299135908039035583482815318747551236746013438460596404618623432224018777647506250942141151715522492665325240119878553799941189298927723384156281693118668419595929775983464722227364337640444143138259870172952898460932969301843205349551750554932857462516545641312468333540192976949493265391816105674468898751797001420177571650235768960132801680786916947853530654796647140243963288536886065124293687029633626629875980295698178890001703316763119492674515193855461758155972249592983896641299202596210330983895518222620823824795590871064979142036912580073401890496002936569025706030321036650071420812478076029737589091848772321928943523948080327025090273256463104562935712618116812201444994126993545633935117575143801016585536937202057985842282641225955826762710667197136901650771984762472898269187625721792981511827098227079288853399680530566899762096299136714377186690875781264962737438176332379528918939707131944753842364654117721759158808929174596910135552158083010669111593157993681001037509284366068321440957882012192397821349525585094299292615723639014237511047908481547706685814553562351409421220149179362574710129358720303317243224527166131748132001755914008962629156542416586316341054986445151990952288797184944625719271194151214892479331966387684548662910429941644199436924475714442512608088466745093768696991288928792700597725098223413189544879888353175139594304845962891456648077187185429433624177917059651979358866716029131192107377012842009499412928696567047559198008700742308003200024510155708843511958265705285781498993781428798508341315485461890764270243645327828348502905419067908706485900530114262943667693160946240965442927493660011282384810007641607377347558010006832188686190465971445167173271385948116675873147453520521909397585808020719310176663399073716644630693068727382257750377124737253180099217149261128898301197345578280085967589746258087693660108340759106196830572073972264165375229778459116703895856684261726675846259923027001434194587969511869602229178917805589313383019783422938196045843124023934571010756754540728900604222270886683013716133950564549061552818237696282633680383886423216969664343739787626850381484037354816301209070185570694482279147797752489906065904682971422417805574245098492045492973042274615435149816513913822541751413253900928539340390263166486760687849607944085583299673058510107954379562152948823940851542353851181406075518590668373387770573752487498948325301029506252797206103086264592706029042611610132202481649290256277606079939992934889918431715645784511134297598531767604402821330230344474768179149613135592400445747664079191725856198970843364087577994421185798847390882238675196971278060182556142594789182225977138820471255819905217423000928863754148299832257782460769620746691676190258933072148450355354268758578595044975272139282587961711003756345273798590204666880820608539290015076347583952318507428173240497310411082852611781736365260474314551631800633527753045198047784394839993985643631756919887578517820477669930485640587587119561532954239353162588531836259171762089372900571271059942416871999948863280127636846944745083941706848873579658117214136956643920915130424940099542418605764483624937190484408413475064718340351762038053419286567118035331025181926492036977813888784087503512759147378720368554715858435064220203975872259642978000380134671924855772629067094077062203262688347339950103093670568092342436462434261123476789548840011505818544912914153200356367245041166876440940560875237600994065873974761957201112337033346499041448914176463862815851588580995018946462699827574726206907434965315745458806403705709937222504540996909393044392655116058751657193053629951818123259669680141045044638276987094402071770841253642502405978639110734351752186952999875033769559154052611288305835890945538910295366274135308882243090023178297764162455593115304563847355006753575750306307353191551226386324318292674119554810077737601337847318962258443080292494218247562806312482215818128133930602153509315937166354838222785908556974810346082010727473123106901524660068907609066181651268748803044921593431586036085130902969503597773346322448255778604791194188558590762416242008071261686145639531018784668011149568666496706121829160422747709331732096045312420489565522899338220458170874851217161384211054643555075770079722963260084713061678989422269644847770822218595759910650016410931596304544159929024841060451072562129909676065023075483530233119061801610329957313638887456704139141721417318007508238490148510689902403153262179227052577674073866188586643489649153444536952229735838413033337371861261037174718280216226329483481982823613439616210662168110854035897095918440156043579726970831640267080277035281113302170941263916339829656655873171600417474375800176821372847579554229653966123551048433431175180151448704760927362006219430070721583201167164250537765351536769565828145742028006772356545644261045918280156723785186996620735494389371875867059482044710909683379197824884726416166542263198740431467411049248503296239374984640610139173120517000943871942963023252197308410165870698976705257020211794094755451647912486309301753571743220289066381162376024163401269115291109652144865722239874908597660008042559598021891200583641746998358720859112990927019208762351036661203717700960903050226400108453138454843559286195991461505523609373977154289224090517633372893770545738799317195428152819999168520846229019255761040847092654650616290405846029326125618457886921399618893658250179753881716324503072868765518056380960831382034671419146431820619008258512945821751109475065361269036831502468327394108967538316513950277331231284584243409007452338124306082239331435485655407752506548173107536002393511489098695222792505205712576738232654139285658091663102225523561335811376362995822892589754414682309562698468592419874383496397752954704395351210733548033576415554370846148848223949995519244810498498917721782640280553404234013872716383339190363603569251233521752876469592819799575924894027120862799195446510121773167581531512574078907846200813029703602242517719915349357193764661333105109124013219754407208803213854229945172474387950775906627674563820868204006583671597367277963427808013809389056030775065094405790001584908861607053237782073857424523088083392445116882511872859361285311156811226840576651863391329806630377521430724780367776515843821828997940710824107106763045310542574329321506360590381430733581091071707284238688025230109955707077172915181107234380874018791900720854298232445089231268678158052406666118025968676006321209170578038140254674346105685871038320362865647545239635180721658177010183178391272791017636648858404194393893397282042581729383203201949552392732503824422946707517361566090716358585265820612161659021662700061394480148662726253600260683293040703606278485461873145623445425939124711152789496309462618232244451403402478969537573567298573602975811094416736914444108968481024041834677170091810251517571440880080107820278807799051804976681610301196778305245485064055213270215940641387029317917230439660052618871253881419320777495398224639537735250400191923610720894985024934806151484783989315552605592848315138410522217278804565594374587598591758570278787862600352975658605501379768095458069477818381596695845402246860961447346052964095651998479791074642923678680653051920276956293829819306296675800659210782682485344656636663279523774289956101926583261262902136709209258635579393789440530079667920788918067524359056610331483513261784953007787097867412446892400717072194591022132885801303196019772931379221709881510348630866729300623256385143710550709379636873249059763996947190459072745844356434942866173894588364494004836332857783117719084774134871494876337803517727985301716004564312856944781402127848380687478418919786293807069648355462941395790947963824888865825028209998011614185100308289267432500473481700583652712786148750169572155390988339529841261855313643672669008147408121529623166432958245107757485429654542667787276271526281489278508699035539776584613269101002831015500108040858467920867930982136532924249823583371354401762408994904323975245517558719336023932059932295758538868763893027529234695611904454844795442034458299290238775412279487452955502961052635980312059081330204419826210126478894149537223182950606563114298225192061017786178322663835578869519796743605169514900225386852839287632914684051171548834216903786873199895044457570333120483573756919534196829990341561676408520586079499717166241157026000216785659108146350856430485742318762936952529188168952879016109348449888290321851070063732661751945652924269757176457390202129185430872089808030046986222765859597027915343799863321908480524952708898858883427186252479721662572279148156400459921413435843183215701903934005693816958130008525876596595156481883048670181692205912677458243337099709303374109541821537713004896532569499955007704563910354034603212890268041396127420335206213937170450012198243917790595597602889392835839357367248905602329695857282654949795463860118502013444288330052601426380604280803427581354381432902326037891774032929043867012683619460885932547129217640988230488324128868146949432725520615084171301348898832810710553495094283808346206835139159658711809151648012335881304025866929943366299274158637097660611812282513730135406084753954980300576161348553530618601048034414093470759752127477471931610488939303705515700880700009173778692394020287254284118355155750228832129559229681853167488954368279333445833278611120771745025385647150344922890709929647482223317183637220995152280041455703171697015206786376864480325877063826884059098215426095435553206199340039363517349678440638972791831793643282353932318959607609637294040311357600291019834216857691558801686832609618969359142663255459185469669652747851963637275308414911818716375048525574759191986677854530562998024470259422531617226304499645173471224752503716415819779012958208971225704698365365330812340577956816062283871498837839243531524171943785905817447945071077638771378445388335717923974483335754849464398798303458247213315515815630343776077435874762669602115313433984865182322231870037078133634914860528330896629184070610821059285623404927838272751084720329704376586243954566832889216148913561791476498786992249551427083860519275245159238128160389023286621516304301179331099559635268975886702961554735105810214869695562855482304176765975617955659235710703481746216584248170876484946608546842429191023775444099082470368316271454761837693326187800025371721783182971187496971681525677137676565866181096417748397829774255013004421058099368087362364390372539420642828091177474473990465865093527584526764477906070210477992345374310338241101881469616931989493199166593412240668317484266707496742155995027189600342945507650257472408991282912649130900513481968398447192109832568346188364738287975601492494632862953239297678414341795426090116137954068577598807488354183350259603467652019877849459170978884933131425565693376021599015253530777115913036933072454353542392014264207499239496078265717386330110377186447590397761257677738760536444616898804224524929428914469616711541055459718052096160932477096931778086077736244687601712551236643507681493371024606445958874537357757047965319456804432436562130958086095771245461262487437409853282409908997911484032685427671653251354048840412922211365446257424945163065778492522702186910217365244305352454681199843575516781427335519149360009281919127267211313096231352245402938254272443462555770323279264472996474841354680687916337955658936768908564751718995160550415943937250624058459853006956955970476861293568123187397770849108267436121098283388370150827216284126676097230094859963700958932564728999154947290819560575555901748119694297547828686385628202589413120939075167418303278023813759520614482424309636506425576051381626433127654214245159175619806883826591331352759766021913867626690289510685453991002037332616764057925404490491835310283956783919588643581420604629451142057237408844630930006153761299526369021174182691003154883713752423223979300211008534795518823697507598054408832394905428949772358401532948152534857311801157385940430386926734149283993128732716267358093172124765086132580052166431026649164283833506509042781029510931405901097801310453483568316840567109630701308868370267549856935981498944858861003109563680696759573070609569897901747426411916141735208261829619533579375277629450140896825144825641707785564584549996678449971033266130647178836815934992946336926474028442963329329789947328851156511756524362032536772248824760217213769344430343823145249357959307553385176816273334605398976974249757492959220111426082433898015168259749218020984510032017801653405590724967467192602971268788231680250931832650568649536383572019957149486761497855513307008316222109246453947947778813707585217362724901147801164839344590231738374010076465531334046693971761900663269178691922613433576419873543059755304671454338102010365735683785355313416334026570664656253370109988120410479115596248981863648989859493108809371851892947534094333846101620316263175534796366604520087149098201635949972232756961878109017561590517960506310710330319477412467153538318501488207582636844387470187811251496280234365325631575186608530922569133421097214980366287542570513079885883242518797746943950750147609206953628789826957646762086460738002934210186137656317347888212948640640407475284669102523147697358563588084560206788160018398675495216280675638037101538646308956658222794117353520644533307798955196243127958684149839318472258114872126738190113123717294098441827186854997095807870682036886591430363005019585953182161144367977061143260991205602406651515464782714316072917004030933158782349707873933339546764887866582743669842754605057344040259026035888185978000739354227800698848234988148283782553658525105994432280811754281187967178476222663632847979462734060355786135711342389971463098180165416570891393669098544037207180955870246411941730877542562233055666894396048158090757552500060762924590805074517747979676646574905043459564203936432392553891260988161918747395421010520172233322216109726922092471632126161321172362348141295322330262817847866787147964018846752152611235153739326261103832974714961379558994138822353424796761997445906123925211490100854554976518876767879987504794160995259289887280267709946011242887994005054597451278095524708374900154298326156042092575316350064247975022663789666420009571450929885737837037695504413332964785088647488186781199926999140689446611317997833132308359911498079554825652232293895304502543458136894212725674459356355725837122689666149144093029240721857754909482016360975325139029435956214564293408737263929416249910336061331492033895778476229143849593547713019882885827363448256564092601418690064969329199424549461313202601262996214046388724178349959624840714443051366542966390089277784250397709578417546182579341876914861311920535871786589794467258139068528422766072284339024272530351119372528968128299716786416046054178465504690009502509351688502281319098100924854192109770540296673878479271336843024796522248080008778597685323150631823857755513370610707804830707462583836954474855616980124859398281662778915330227293226280285619206359651554050133564116146408904078995171819856857339644389510387359814216008339537987961357250897149794074474796459372007940948486916980559040326032382127047122698163467744905439566620385152813395722334201805724815545345906170240972499001268462911001951084971010851727058659890899240900406085454573350058391538554810729057598162433063324106966802500475943432708889543928525093445407904160073721025088472438309269003496625348097644013284045036218157076182364831868896752568669754283488299082365733925639701597250787247719184631908265589031046582948696428823041518097481151121907146073229803165577482707151787797452869459142909918595206510761399872658337587738197440176457400950893520650797697171436438223473852609419334575395609230747981785310796118971166528054174716123950469898692347695549748942605280117691971332452155323015863142179330062760201498537590594814046307162830412910364066873575013154571640833529723604638142109991515751445836182786235183829519193228669922336729695425582387587408805331537526234417487339557966191087064306029245157216985952707421792148231467855605091126694143691657993569155764326363283962509690641489790962572155834475204476424186843785569549087805703202288953198875115020423952966940334574106702047769077930683901985774769589370247663743739879293008954571217682659075663311057056060078454743132666186408228460238342509757307875368362514197674611054984005690524043364008415438087635222519987404770434284035472382382529010018808434202945390311720021351353153059025234690895844252850134766357159364406128080428478489024043529888386202855590820972828410054612817540185268319917413974427748049340057159095536891509997338352943449645889580258293735345807232371274904634628435199007392560787172731850691569133451057477975572510739794166108164228847880313116174319657037029476248906516223742387940305840604416975850839334553966606854261368115182063839347040377429691283590673053797356726001273144071288167232702445454453230617339327808296287594291961569170323904098225505568454464151780962056917444855770617407273538166682702336170249754013630245323481629874804590846077404260062207557488194062325232506880602838447992219911933298668728015453819343078866842985826120889611837373716379017514735286736069851233837302720777709490646093585894252810874833063520260099957587917045231948677168640016460324986276131643448740108107540755506746165969324539632467529787833672226036434587697378344440147488697553571817932738852161236039757180063695568460880878756931266951552036424794619965702924960319867717327076383464054638177369879842116419881636271835270768652196713540110866969779681460827210736830576028584561315690999633392164857697969021841715434222071606596250036517087402118907104771449575262013757765939144351965473418067518687647822603947620960126100948214925458753636974231680699600549414973367918754017823903749048670212260364766416769189898802285573320516302095006802323496328938085922634070368073992544675477514323698882605047773967811182325803473245584063938967061189874198577212964711444324569259538126292602003478837641986256870722115593011816251801703927829781829572675833406659806493582716502150635452134432988774648370583942727450469294910918235348058845390763390906087433164971571629929691609177265424120196101537143072098619517814436650858244818546592019218884311978753610261625799070999086624934363532627185980670825808108696846296982024622523496220689627223705278459979278266714417809161158653297626765438622396479264310897587697426760359648444941472947143077971427290660339730688539769974854822962895397148498178835286122997238782109356515756215721171757895263821279136945439211268247775349124870833556246110423337911532292949167046747676467723104115148459270862548478839869824172694879580471082359652017560129265077056979229759098352156588763020039371664546585839530030816237925902060660607217075811518467615151682403894150207801221621870885063366270467230899601702353457246548252206253136262958232843195063797052172848467975837465788147249307160240516206644757523861351195025655276379132884908656210263162062190165701690263915683055576104624250571470617503699814893138434920191014993402117646296990058113206128624660577268772534254785221581043755177843657500847663472822363594387684176440305671593112612576697921978988252444933326247500771030788855721386942185812675121870153541595854776869087430926676490533697142559970764602709378888912197333432331211519100811425400302413770407635365268755220369019019299995112926936532194368738314491951176114792043371686894665292923051171240098634131283931907365072328448140091624419986617993671013370224990060168573387547727598013131651164725556741146512541795035995671927035331430609365467275116704379918855691122583995042050795527439895340169247845139986509996451717043256564121020525593996609784734953088161685248309512299731393430705616672712782982360596144028976664634194553588280248785403818771472466978295032906685809107431648880053337538032590353411479016532323783424807428971836449995375285655113910257836871675048540199471336911308295549449890633862690242280398264463820620879502082354353756363594948396884536012618354592457260824060550337169909977503526395999631913905057313828424456564857241896874599355363297008760891818895790014099701136453350015284104461532135021666922082585643884139805055915629569002400742064047801796308140609418108498614964496998805892990814321628211503687448228334765996165531871603269747408969078049872618553742005817203829003984948457323931899167881956744051391626990201595546901168509868762064913824422557963192717903896753755440130091788421808781736915078645204823902996322751613013470818670851085497461107498149264502422910156620737061273206155547633654456789395999218481026885312742122130330411427849472886848947648902396869919613724850888017671314217344370192722148854097707443047106182128543981317569492233230849768428814086976103097245691251865412580778826919028115228726221846705163304492711767005426931994622594512375986287592799004260832809243021508364034802056927487197141542140752760576366785791587679014835170680346082699182247221572167052811745400146171416821328199186987199780122935978330804074789165545365528389605935673291610298095436262055801707803575934312661780813304753994889029295166246957910710695766859259120226871542180243587777069173417259803019266890756777878212453190784870682680426668039306023400998225847016125199133140259561481117174940423798511889403726816036402267757079902641548883010153988020918247471297424356406161838834062368234210085686544080049139904060384496310850203989240927829624913794859119818909559719142793420243981118281387277074459162617296036333345102330532941631333398471402704842568984608034481163792197188281961848400779176976633488921997370124994717996929433910001211693288333199468908336062800913290197676021138384539941660303499890238718362743324069545950354305220513196581494617839937303776447023242895432684833692482627763315193878007149260410130847004075958964735275563090042921630843735106539345541061994499980000771048607172793688522931980660452782355472638135077331320183781421740408644992384392042572808582091407348328302924688390447613986408547048756377091159773361971655918373433055687878781862909235930723257133084264922320711121903291667433051857078324601280924841225519714989121378832150166400820826428042668841870887002141425530355584668200625835159949006031760325289110870679627593814872671130570442371465608539115184820250366219754849012608583669331064791998885274448200153312867197223332124725220507048468370836907464455290232873023884566227338274148104648397132273868580498183757712289178963065083326576582212720999730134979363849652127738069397792102093448326966734191366114784387790000814144849633961014945565878556637787508955041615094985296837343167442722298696524590887228373312158129721056287434392503518765214246777535662594837818802058597619004078132785921358598017169363087427738356030540224145737606036157216666862405121217756776690119043330044434747334994500809936979027649965556591628196724995552057078889344490260296905924150158784764843966927317725567008052715818526655702070223225362455968643328513411088600274926920900340052798911360388329023191004041101881711441356110702484809284563443209624004357365687580535452969048918025956339869146247415910879083064975410962494979718162243721297190613739933538702770247588999888746195622534511499678034253324081945477510123402409619730280534264417041080082938604586021472766908917900062242971571639928407001947441517571194819112874691050037351614828238954254913863425224144613295556811204424874964262861102866582998264321167728402319261452705416948859918866793830793005204924385184059750536998068077197192822668445275734033529434568153193373709681184123034442570708896922183687690558621413341746578647781290300509368192185068422200051703875697044978642188489455962188552710809686022554386953952631256026942158130983235294180270917439026234322374069793049955693347143610707384995388523296934705125824881646270800058930912915785218750344322691826507686840827166381694174107775268083686640534574505632361662388886009078154828481102505642390695544230013127952218997736675760093050444877573301798759352187489826079146625786812940549184366705603796758851477068917706237201399500813819719742187838659808592890681192817106695382009205283874469596634513252834435717789210216528994152840023320392471803805886000820033675214148992581518008956326982772687608064772447313229482184834185241290703528176073033797748564160635447425040206060131633782066105409968171606553037677206329405600721225872268327701592884603880694060060005195822726688535908506295715322045251737264706781382507507231747362497165845954572096941799868220974236258362351874296326806702011122482744543268050946534573499911799140293712481502509245340803084653211077926445397824449478208366871185432273216402266482493832967551461024322808168255157192728129716980675608100138993333147229604486210793959443206784786238163184080347880936163977024406136708346127483304965633154766564307224892526570158195718752571407935396965953190198191732061079424854446649931081349470924580612246864687790163934309173104107736931015455972290498433617281601711233439932619782705065970666195337299586663335127612872065868239835657638221264540880282312345762397686754708995200313242886998748936669998319788346831163636510715610984643902953661145972654094794012236986642684865346601636715496706316241756244678049245186721817692344114783740288742609710694715385240429559964376364568409898118824429118044021951312590198805639257644350347074006086666519625659567988811318001935787228298931792423215322121109616516779746968136376215088061805524135367068266006589139220160814088520316255526111417248745998858828306817634597277844860273458688502879096169187046329136346312376421914281671756178578480677186342898649237899294782390133578305337333667030094125185126151431015483515035885904631454603520490196678982763405874198430370638684879019842296468406358768161110623181194266433349951144901339111065965388669360843226226794419517032793951604676686545922470816837636762232767028185014165018741733793114213462937485694692148060141461156352726367686114088703057846526775873592997254245734650902059727682660879598765637288276255034770889992433189455350022011491675681455319526637864170740051228862549518132520800495217548820103971017746288926793052961400066629838732138598740130655657871285491387542862475442392781375117139491340029149755920610743350025163329017694092055582394642121780813735035578682528556874232038717848993300991291792774093907537121512900237717283521333709583157467109232670023506472212150789961864864535517507763743253271821667223736996671648944141217485152136411096085727685097982334412560636976584967262044551206433570342285465559480522230912559913941012161072681675622329625255250873061986758082814854941756271962046916250850191783768752914241534011937610196091219072318691025511143047864064987407808670342894948044656583788492929137082896776875441989913582249761095271794205510460744820840055775905797499715836241599937059967555701409291730007037422373461430169767959059349853055923667787411058575095736257851960887192186808846157457646855167486636455014688093624901527690884647385396007991511148323143590335955895991277280683933586298019599339782225033080488985100256110115795076806727044995083618272756014977600255385798228422177792494191418158414913565241281836147385778951536438206775475483447365504456174383129804958123556387661448111246177501927857258176033264774741630742297543089104947156329056705838643191460229234515651310306524118896773887484926123644012881822476301375679664188230381000609945259447000058014590039183893991272158337763904153702532658292485364463339863007737723767101984274038239154312515277919012062440370885723089596041052173027592587836477097651349246592491778325145001460514010274252438757417534036965564416950423956322308514773802666231447867411389309119984953154940640043020556246536234101567092831294612717745720667057748618324001995315485950363167400625574407277631189402760196800730195467226663988358121778378989643068389918009314157755910434467112412360259291838188473985935887289245255017246401173398372718204473565192499101530484018645306388422727711207540678066948599747166333440906962421362259113245763135641046506304583964293400777562161628619502798551497504698549292966554725176540970820653376930707983122671211958439844725606979561625429067314875723182709164112586554455256762754922757210824477497812098625324118886867336761284001491325153579458341260461580657196807379090035713776600852550849374204119310755589776898843327610226891327695910457007453951007199503701185380284018420025304489001088136100914989665369886847089993354539000312889540391672673171061658270274407105752619484729512734082885097045436237790777670174916719119070881338058118090633119790659892516761344808861197756713735935819704350553732051129121351722877581769024870072405657159583326675897997548682046093218535402082065525167515696477961827010699266578410544496708613276840312355720545362660180313981022539729108260872345256892882003791986999300701207206694461637720391761451494687890120971395013291880899052143539740877073555391205472713365786726339977702699018327293272475148718395920878575162616039860919658207687763008380623438442127084409939264737880829552392188621620211088266109159155828086353895594130594688983188576543156448596071678125170164997094776752163971496985141866915997349139535864130051965311602776937927493713302519647272440758733592514254737393361171143539540512461907015070798938418616856915136177140103295908963499855124725062659539633327527863538881608438306873887894012577852410347436302011126226658922446005088869909678476558650354216318978562163403098281751819240618739154422626096175253788700274027797856098451873926249963795986000216534015954047201027908789023420705032196590813855183468841119238571398802618661911870576604503685413655314544989034687330480489916244215462064665512094231962428076378066547310883706039630615820970246050847553314306886168045133266316352771948276771919416219755047104555052747497420557652140296640007553894085345864042421880724501032782132544832219018013759161373805775483489602346532556137136344841182304852558515420686710306956970325873760227644051805077924593387751216120557716186807980248591920040119782294248279085311020483169434964543501420538767757397808225304329763442195971818264827966202542333972657362310164670011464013712210325629875051551572374131632046908836988961925894736230554536965901928476843357646599679767701640946306257049270903824112070073305671695017172883874033709965067208810204086444084404856700880922601390895980440511804276224178401130856453979453603635413580718438331647807964997098977479521185514756800361774865698583744669758463082699907777617789339059547855688884815153175426291629194796708646913171878943599695215425590074614392683708343152665300243899960520960354855361935555287155993090084034067402634315767643586637013082675329524310554480760921197986840021925213835112708093844108323965495871749428097100892812966273449269274164899868806216652892718725158587650900433803477150024911210888839099204632542212952324260137394923316361331827179731915713085107734599070176999795836466218214562895892264963519877507318730155286501637188456428539962817053729254066417259254330414030221188438274742232951684209560095969586340230966953908587574438008657224238986214782749125493246080335777076251737723831424977760666096979941576370960094537628710038031941887457619172033744136698615394313395377464796298904051669469008867411453533635620552519282593487876666389429299686963208590038461423632098646310522062178376396043866767507480649453815127228180409944270244575648582574848053222197801602016968538320250525098156068474112066868062501923701398312183329974619822904761268581986465158787756185950618784149713881389280153230037966767953281117556608744313623315868407527493823815542757053196137534710770600901004554987711320883830782701412079732101885716369823481358812987641443076403589969287918434600395837247403401408558739221952064322550325933184800537332572995045834645514568767158886658473649544632745413890351591635656132507828494431955040502466589407102908645899233544355289098401768909807533552714805792542285714403298580875530656865812455709610589135892611779098546212039180389601555215220367140164496626309708237701620598061157785832921317726078846216517224946059472018778403601797555506971530454482367267837767683907156167556798138055209871064343497278276170908918404845581072224537157236973471542161265177083105752218810288665005344233536688293118824705836304963601364107337995030536514436842180270214313870681905512496515094391508688675835693568248167110082021186186995486577981416831407328568373375584686768942809344034243719373700597570084775036660221992784747112633525768404693239214042135029834937425257197184331825590510842537315437811895481011196249438382959536634986944304119146755858772534901425448034658570047056814515341954397691957937851664810561305775557113663709674326289287414195403936515275228531901960298389877119382432086922371091222183594912235849668425969509277060498858101785120512884474890614678618264920393349861105176507022567102934750005634161463098491443585937691555056461919102421161510494015224618779700039100352224397937854475962363405209978631035434311520309137301861046304429327598139703174322320442967513667218150829831524647318107620077686281198880191060835277447612690316244206605896088139791769942684640302895903324304257317009475002776216548204659774612893874020022418899248302740924756102630165609898142175594655326978964110469464799315879610876116917118466656198613043735170820593547004167746693783256421955710227372277798023850159171849808388172272833042116397315322191427940452909363513390983190896338011694971144714064402246559502616503857151219307211530829616814080505206052448895404329001855644536114681808884060971752775485469852341566838154448080539308830749495428162961153724341465206511058991239003191768703538384887037143106531302242710082801314088308929128541893335439582143218904492817512016876687931271178007451518875967382685256381174781359583250485955659515851752715295517381146914537259593643243463280330443087445865687391029961182891247008078596377889990887219578913071899640923361786417961163800796660181803380264626007330068411983818759222708555830564251734811662388180737142595508233065851724825318915900439205663641403972848984220571446116848947310877366576282549721437900808644383423155297750812698246444969602308003672007173788286063256078823524129203068057499345599369512903523837789945654203618523538400587437789799532572073637215469499676957667908291261950190452760437204335087137820070233527017058112689711918802436952163849209779260473497060378426489440112330150626303286251033952489551764617415726284965331252898217177738281747159431682167287512839896899653588609166766290746155163563183876010437922405022301049592009832519949539135586424802126009196477112767822404809273587870973227211249856717482948959932299546374392308233879689554062645399657942576434712791816272511974524536816886227923206882335546331115032512713139602817535732702872321315769108527332587096059943579823561428798722975404806431381485729408382977981587268366378773995101043677574042695244856644151864614565491856912791583813713432521527467460668951855373638832004903608766703676460186943076219622320928783824458000185171917557259145887879686264516903241405608809206990044010592341007487963813172695607958648718256073065853220034484486072594375461036727944408900760049205916187175161664415769029018465961195883404347025422405669551879911308203200295530788563548260281924758887402274124484454535764811986371819418219299330753348977739691203009006087255540813900916255775972691582518494911009932295286148321981575302456757323319296920072050783247362222251663477858096922111032821713621226339065965059925847773375737954920420449144995220901294124197340887369298241428920004595481379314071457237233178201867121878928412429186678818054146920638847564093422239655902341082416347034891567727633154516080326451419076430296164428045191354223010042981591515611053203835970169956131963209731895072716200031393525831283796169809197882902176339712437926756685539091514286545674623782068970628806941910505956674224457663278672593716783837179295642862976397660319098250546762794397721041668571498438089398294519469149745565735558536492938290426890291556579130664351992036616141289239235032666923919282235419245373227133917352709964689144205400799373443156107539681318151770062024045707224044852091082571981129073711189266883008652464988161937223912819376970588513070232585841069434812866734463250005171759414199409134005914133313044271974798010379156444267577193502784056397034721714420984921245012498829284765905126792135387520064460857239624037616066501668275600268547267020824685331835913005428210704310174844858092806819652386399150426831714959017458637859618470389558303367839734500384460214772127751886465305348889332140005019932501050752102998627734112596434600937492090431407475965948523245376018889756980021657623405071898057575575085308078817645399509586746208494834059375329198035734512827777422649990491407296636256576009754670940200995798311295991899348168636582862471429432942385986591417415635222769290443437923334150467046382708238534655665639275184607993840889834151365628185881572872635107232473461437516393045696643061734731521938483100810030154305932042579711536787932566737850558855668609013720159481622754805354656340960387265528442211327521254498934809558972057159680243458732743763463642100445698304906671408376339198011007433936194664706861199451096331982054717927316277730198314883538271218809054990693525564984734462591186205740647992826273063497870881595102206566885308635136643076036733767903693714224174349286032247137169173597270572095132409343010974484363094811111974102856964747963312382219422112803361294734240042001050713792206405361420251816927072513860746023211135935843642242237932370034245171874644853191052650160663551717899055680448645636670688303718410950694789773269456345288137309392977275805982310933994233310495988146434461185019625359000785115100552646938994036388138214341438154232137422157859000185460128291083027076256418619728986543823083491698674398151415905298830698645390552931626614465480097803047788980828056279833697975452119044127670473265800845713766832529432420649925196206337971419068980799659018896259700400892868116310323479936642901016489413977650907422412890171933307253302871904447001016617496254646488916972557652522751250965195351456248420579838541190762508491008245066576837039813543035466413180763137461635158786033939397284806475568577594030479303523559506657562077571048070934604929204148974086611639525146097547572884089497478713987242712333462652083394359295339970715355425786726692485468553892158078535341396496288183915292322798524247164085326080442474442843475725049612291745924139122218649979852796221641222639232999851646397254986674896672384815647531101143907688503785941495526290832760850684786531184528202647736528040169878078663846506424821992889036154083729987121213329114405265589293109550554353769358030345818526305573837718979457757531396509456446993194742991741898820116122729624480048825837164290223014681732498444085937475431290787741333227331609130691796184635116111214952619112995852116878020387923760471279266994054517466788941892769270502509317339002736359134065814960413437309782772780092432987993786517296316252169444486439273075644740205999225569306902036774485226552951474624187460594213730009543771173212705638574386219899905477622676377584609716337190307972853677554471076383649314117200828149483152813753937132422500669781593522899958557160033825269709933667868253705080638084553016869024102879565180335441286004036995107295838476244288067928097698965316620873785620827495838662273039821373026626877804954675637788661207901852160847037338827237919057854087176918948692348375989552887738640008702245271375183774937256006106557114831821727598948878044237980433428888990094757216089979776099683439620305987213896057078162624313836858676457980897780537043701606909394195417544273875912855834198467896149444015281332478731970136982706315116512286879991531532075223651429358183789318728241194444765116615591247285014093718883988403412067787042617515464249471689883693875192554699860465857026989961399728816380706247126187370205253614396122392916944648986517705715245354826796547850799072773873254855993998373584351872527512442037891981175485474476954639384586069414783321053686070709183984169922240829775670273223661284764132268483812181069063104254082745072319595563843119181988119171168297144138584533351303165431612479146817298169719516667452377507964992546546063871193474100257393969917677213539175546984749863345584558995716392310837748859355197890804995569760890509429126502809197700253865437245504854497432059912010345937646683263901488031541343393304116536302377595229323829804715490241041597974922500203614306946816116472143135869879551679827517965349677977373950471372961896693402296008237000764630762394530920039544992807120474493418391686701314984832873820817865847425492992421036463763467770203691098326754314771342284753412926187780758603086442150357809185669965714999553737818565388795410225846008704759334084182736722994639602685020034926744298172261989604353262551128731082267171070534894196723017133744573236605612627141536899669395971481311907607951022800755382351865869760354921049645916677193112192586333430975484770880313850212436881999445178602344095374428239342447300485606974105897703755579404270253971398584386489337780557969264511204202088288897346659155337868002157365733007248889520326350233228916644248340463449275201152129452288115625971748651402908722983817541170999100126209906681275019232519277174691062936918562964074457936191746423385318932219718259631035771559592234141042532886385866205121584927170478339203383756568792183837825865202183159144831135325333961594469302518425422027591681464187511848740565032861272316867272631271696687360056343434560488805844065916665280939480494894733306389955974716267124688278070680772524028248921158684487946699296850127247170594540392293138440475456656736057786012336594964724498481982025501822928462643679550877537537202944726027546489970250244614454873791097398224120150210795821835301187642731796435890017355388341406989581376181626857324001796724781981624324871540522704960777214175794464438252485432192364270237264917482934229238329597157976693410413454171777561096046206245782041430180502406738982224139536546034571385641728317491950553032459172480283493167758389252917188312223979274722840667335839875407524659636560750848315777103014436976573220377396231288374060452520621393865928223747272460611578247941821258949850611573199794409790882618249235560781412240554956626773006268497870029180229259075787779995401051668675209344892814397136442295971247951821601638457242242467343289362636461978301743096164628495629267041659208361845258424759183198602054512804003906513860165568172548478965000127753585077693568043210987634274330606885269227260401616594531894801598236839411153359371508946394267000331156777275352376893890277708758692952040868639665808007154111811412354528545387082512557214496517081072416173026059151804680414219233339684598500523908533653838998936310109804095259639096667673396179790186292620383546205760326850311864675697417048385513912768280120044768710615022076434955269544933889961459526931954131118242294176129717222997154738406833531331857580991659180269814835145376167324654653386207958165301949461794699892062709739947492207921295221740087636370534326848620901157365326632339072141211128347964405436450226981716055650536061604837934250053004670218273482425466686747973140585669845586923681248405700215544916949007838304682770028690936593564722643015000045967831099952966494756087510066824578882060261182389644508306383678571035385942862658868171206910923750274393987310873141947404942711559450198997323145397091719927390297348123454052059687656975163275209444068572384670704842206288549066045561791136624533716320933510133161158111948063351436969548247604353073816461788108374382744961047497205913458195754988183912968036039555568543802458139126832456650685097058734859003742589147981676163735848342083271829952777542202460010532073248769046544326531474898298717498447295200337086135150780857107398112716857857542104500528628580830250525292062066795226976559679663439039127166799872265410992078022938146206549230254069625410005019777649677928076307263229318671561664800881288732029098444466283010678673955404154643407479575176997066475009566902188133752744999072534722600295134162984717202329837884787720621707064230689029027177306251936818252662392395028842010538620388747009532321702880278256118845102398558713559592824676091845166342353788382123206791433412992213856495530588941156586534698065259216093237806529603850538940350967598819903855063495969939710280524478860059893099574020750679431812984346249792803741038677274161363116645939697175009201761230874067997341028460690643382348492670299412217746750418566096471891931045681304707727637457439715764363487070361859048513639924353476346658912224533056361181466196582539243109522115626634642313424647997507052833343228867991144230962440126292298552480916380176704247241061323827709475082758063121042069127336078015358381928540921755111253795444999780084532228448798729632744461017811545864268590574124515006426872720374285229348947668127032396699244922811631296918353640737296440912158890014738979974973567201133245990415023765691557606760541627521677138595186586410429694320317190817379199383405746500919004549311005955245535662136046637527670110853986364361560399665548326129797327012193683377164188516737974250908776984690522327360500870115140656842084296153852916618772853971631568339473615401108614174156469678553900166875939391470171080495894907390076750357192240663348904270589697618089452790627854038217364032554992017422253290256302234488006463855143986086767430320334253478451867674809151743538393609941507375620235584094048102095306545796949089085701467434620703020208259967792653554766305079039210241260458764206878223623341073949373550965007502427288182146070027735571015484802024924888649945441140218391209093865715814600344252818069721319766018796421572545009508676978793282702056839772212397390852537717827999095088566766103621802017234170606621763536829858433098655062718198700638181816113599569790772993718010925384580102660541404602347360926561610532760400802232885491347127301778284924675887125124988587942068235501247410635126194770389662557195584725598628283275880758188311803785233793660178484850015980697859136707495779502540095470066143232902440097287647149498427151430191663929825729410083821213679926083309505889880144758972971608145136949742726419838047040117611677064433552463724088494129629890134671225646319861657246751522348127556627997260416038133790624740618765517598448919781970458242913564542806965310283080574890467642051501672798167695120533982869407713409636177384593656436814481832684619263529661875476113439986812034548591191452860161526800619066848766273462946091518275344704105186716839851418305323304395248122258356889751310142977894095006634482484849157253544331631634798169802547130945109479036199794635854947636657733342849422811823099170322705277981873582234970797263925099450218366402108062525415455241041429163870829026450202654861071886289341709073922835372028916165029028320846921557784562791806121384994204862393706036996632309423423733686621808751173706951643305463080103717287131146121489804821709975009489848122900876745768387962770331727454014398280047132910784749843921993429821291093488985811641206555844061500991823676292831806046801186821267746070096744527028975442632440521704648084458930737909260747687727233414499781771376947395590504540047373743998667147480145706772274306753942504648469068973698341958824570489012190979656082814869716945840375547847970519050596946058484975226360598812310442135222172989226408621998864572988850240691125833208965206055726430321600644221808981354592749668914391789283787120464179298606431811500966712531847079664436710709519692109151228047436950815969752477694136134607405483414011844270653247595752778683342540518778716793144351798054743915007396583146953262758559450100240444863696430234398098022812043227359102275010783827656913913810415961087983445297517398296918266844325185402499021896827645866312024969489129747867120973902142390972171952165146995513335186251196485361994236238527051726885202876677279397870057403826670241880748836131973616336127045240702610533745422048596209264172848795007655260706061537594669812737415722346414415207089345204480695052649475340408759790770421158869030368672170610410507111105631100170753790087478490924038230916849201851453852823584525059105764001243229320582921705757810966752884266626259770425162976744387612359464400460204915999619338141900591616845454592198896032387130211440013598188122245531567440738910877840311659694441602772005978405170873430225816802223612587417518349481933308701599950446294240537028464538186421954008590439613722168143505972745684697827380958476115779603330009608985581890955568627907127002890434163007576486403476779641626217907434934570317791007682288430669691873241556947936944823262311037259806681538286368412598806459710362410165841750636450186069363808992786692350249077885371477290031785214357916501221577030706763612085449396184378990600562549333267000022953493073300612895959013438349394261801606002636279462311729600169404950711904903554202810561018498722640830558088004255170339915163923394324077008756101916038984426451627658102712307356632510371064298209516297689120337868867908397606292403295070214921601557795837828862754361061527374652724755323805576144437508070419670523492308207054643005974828642288024657035064224029509516995285424562758704482059353996704070417142962530575286143578045473433194551657707853877537282418389266135670508311367159501070337663379993152571217561460803028199777062962426569497214847884379338529067347279091867784267267384069613492226843956725472159679487675152059660398998189645218758087244920767348133076521857574344563542870304070284342086577780181090192019775559554840989201081807543494942553998848810868351114250432624738403906126736279235011344721535958113344536030927374319562284836098945181282952238373518113257772870364201646492827683742483480850506195447408960190599634886189811545069871680803892832983274633482348169541636209577441830256538716491888755698378417091616668633722995770330710103881458357158219588676584639803717380734551629392872584417218209780810129564686758873966216122086636265202814757277877973790701476901483401542300252602418074733934951590284875297200203763214861124007791492393160521575525113420213650821427097184885683867992222688366948582999148703896861005677697651922959060875651161044706281503208215034841288178766574608656047183586699980860591908286683138721602695085825301235174192933691395824450780012927159727979359049067287779436480667581630969553227266160748655041345740858372322392539633712276907748849201949178208162821835509212625299767250005487010778571204350932699209424154968659926696136046992931331563938939240679878291887936645133740915648861255665926884620630731408314525783973256002724388166909550508374962380582311708373220851896465515006791597411246068115050494607364627360501856913527038831929160739229308069688618940682750756239938760425451722293243904823835790898446865825283525515785397446084406771441763967421046067830459102550578325570728718455130007810093779402223054819929111028111086814818685624451519510131256705426746632211086503306643140152038883062027097582977760112910178610005226050167472854892472793974278573609677791968560260792519458472255326568539504467444747291596352408324659087789736481631797211365347915415542935774847185781496913312962921186644821849683048706165769900104989739826840653676221292663123788168751445993676921612583149233334450930446062657481405619513172431184467029945044572730083007702918372502405411456425999581744839751025072664125555538775297660721734244860007908754119583281253691412656240527714970963030079690255880702009431586657341334067259077575434793919616356228867610214397901998354192560646470868859704758788106818049050874803624247483369511610534232721904898025042073651873606794438569580852608357420595449155316565694956662404222407859035457553253445036301430335591593257970235547386428709530889987346090464953858197537487749829010412579223567010944115950338210189061271349409935852942918986762213512539649836732483690706893566056096223179609940479862311978995860390240195898836201565377717294107414034039916547958404277203068501720143373431608349925651181684385531448537190255808229690674887990719944933823036764940282080875225661679792929486801126050658970440952586430515655740712112692271943192118718769102132083162365788673123723550175084671559204353785490671957219850220382347181359302886448857873252116484972293517259281181746738346105471098343441284464040701597316035335858633030408339000353703169926204879915837331604071516266309207158873609668864055397973709493815174939373543628930766040021159945477503682971251342218215262514410399766810431827674737941663957866795865712366050436171102700737958589993710825125212513084565074153218601318358779369143419831034322521605969017165048340450860449132123780145091095161425618396729434864678752811889081328168813723750216729793021959348825301475653251562707166868996790298078724473224385977889074143791018463733056498543160443144373075354230200234085637228518295462966980527305315784472693412984879544142693275436057155163672796734149548891768836482389710666398374428587453343731526326719657174033488973977904761372081773088529932179524029683425048953452897925033624667693404338189833445694496340847282651521930532153086340245195565433026711949328378384234582583778723290382202528003846853160313450841913447845181433233849936628159271394775832958995377098403214829980414128087468949676467569166770586369567537318723709507297620799819891373500693232419959733441277137300527290589114813961490195625927874028112375641946635624116869317960106450065136454578719159400713104399510383567081417802099380834103078931688414471994889292271290198128899063394227458996462580211339428155315664769639192548402122396602167553351527051291428880831825948694921664100724651748273450624768974087855267039983359299275219356326819363814172420319807529822853733167781673471027201583937651096183030198731612368833666756012363686525014778578539119911228339386587083093716853791698890703796853242782970078294155575201244257263323690603329787903858381488504489881555068767859766127147632697965260116069565277470050710611830353915589347124483422144491655725192076330216338046529506211966585707871344819427113217700046853472595331916847046216541222681159273935021031458293310930666480519506190553680660347853158388906222343528378485165711693446115041481105572540987224668896627175787930956466729634834938222401793186630589049484335511451718595672784192691296427818398981896395299144062744473749881395469427220317809672040025890150306606107254082101079626710223272800262057068896897051380299211688780313419304615797157872327227826402692639561959285188311260026118929252130323169017707755884169574980890344191960380192040705914253327742484091699491639500063856169659023671681775277989260756820653523016492144121063502367986016695831187316641905482941020505214789212873153420212547606195814201854017179192864776559997338560026597892289065896612653629647873362724673224215337613956281998399156735931681422793333086289075753446923378583539408992342014113540885643765656488170217141080850160038985276350305322887370549580768450549313999489902952582561444907080273724810663455409758728920875813374809272357725401226601600558103542920598750787942819478106914441020838385039009871860533113989452637661147908598817271049063044274309875657976232291361327064926190520569080313953858968078542035681089150148840918676568516581002097867582759367733214175044220141827558917471211112199467188540304131950093183845402784512500285449811438318701414402334093201451104402188567668767191149383911531769560088614680399664777399102867524120310953826681209550228522211618321877172041026307154052899146923023505018657544400114252395401075315303210762100556305840674823271816163117747728968491368451855484203389387152271414479291346563159913688729746682640914191255491238804843208699759250838703534066142392478176200212394177688654246415854248301951836275923389545487769210924008479210867589800729227682502505226456502587838704416118575221438867439940057106043281895924939767543217720139107428908440118239672420640867214500649440239037316173132398116171489653232926748431501128741342653987841456834961904646995747862214623386498122079155089169249723333653307441961793532972071177304662881351582088409319272898895766665212592392752201419899227622005067103955242739479770283487370575545458261811387182526179866928750144386313674880165460599548519395383487140504948308225244265154989265130791570099571259114987198966176145590218704728782384556165548359755054954455693606132073166875226144035075432461841908957741864776442821244698072957094005427039381354810989690624788107660389302840902298856703294831939073611220991925106808654993090881994009843113405609549363350410821329733842721944553387397562947584319591397973334753922927510081382683973794377859049530138723303414103004339872669130517071511275674429581122631227675370693181260219834400414131947179159478234426936791190255644082503591529385623667584436288839569936474851878538909365330311427516726951740352191831792476080043244064752584487964630254100808909531020730052608723363419018515007041116452107634163606213434797628555866612642274875103674778523268177824990783766240199706603103962142760029124159127568598130765602497689255903970647757078339314805721429130272951754553675237196462065687112549197147709533060659349800939181478117911216403000517964704990183456777347376692078874947123620138715306189492305287095035619376543106548652945575810838785430560078565183748912930647310424426821138844556861458506447235802934302297321975606146462587412668507618309850961465969103789033739065683169612699377112654025522618575946353350365110658042576920051160325392304137008599070449009301008534205212143650170570181015978025812019042322095457912425266372342464263560267946060838038990380038836156443901144929998793019960283736858335942887181458720471323546636187153007553215601666122675111462502904905734808449785364243074752653212225355562082819075561163881837704291933474743043641152657011699455933524302753192480299297225931116745252549923172341364189201999862261224313846911046437435709492474874961627158764916063602348377300654396713519821983480005487083605151754020026759634961871536818580075063805238246939374087561834186973508592119092790439470253359889669436412788703763160116391940433464267156282281168154561250866421073644034103686400056366503866084997730492497072529993619283838476224172209240438803965913346740769737087122637867919794981266571081309368447448858289359156679526147274084611585932052560847679648812916318268862919404511522284862651049722514067757015444228967993655492944104366015452212329869196457231352934248433483572561012552524989235754192152476025727556272967721434410379507099089403841178485570306861262465061667111753089004938620904456075012328084843926584450568912731681005780622457322236426512581281199438595553101791371596671607539854127222769667695261876189593671009971936823255797164324351504197209299250371292875900973209735380276625982679760907782917410312104300257097453880267667647186024278061190421435113816466747935201709122845545856582370122781580081038006239339659358692040949574051247666651064170166044342950409836625759542538008109628583719328609293642008573412436398349683903345396215376131981701745992628759641143747788371433764579164967434126964733364327129446522119794410148770756895521972828971927146309281345254946352654862660321542058076818891615982763201700238530811032312814551074770062078962423707687551473142172563955266999582855606003619808461898319210397929800150646141775449029924845768277729163967612329926675438489063264718961694938710690023974354780175163967718073869260450740147744204481838875862664523117037686101049015044633952159635191891912151142046472617844374173654395989175693403655712380542244343087145226128991851100847238013448429587278513048875810280699547695927283194661647161511586322043103809039939641038532668194008119817134001139796361360171936954297057761108849120728049453288370051436016043276948643608438480931381586454468031770972402164714235654592560099667988172873983282291783946845908207239156987985191503510731920443207229757473884514405323452924743905439505291127224280539712094213946749343326200123666162261034535663568408627880260005435599137946663745165198892039120257919490134470750118173921411009549249663453575859874628978389361033405825614397227437247993558982071951281630318721789750029247731908699005247022064021909599763717327287462280178296249348210476477889148162639164454634148986374428003584825033280690328451102561820906505910265421439102917809255321082756736284903724402349582643246547080449398835917463297650828760893130206325032739247606281905351463624766653061866977493004588647448978548468836245858956653981710380668572382504520580942748458803302462694614854746680768883236412738425256428142878772038503178986889024083800152023289811327183824318211086384779097934438134388847372170548551040812240766949142570067846678088461992210799311295060852367955041776368235490846949621126340408852646731516647857001036937942843626568879990363657800059784798345347606398877016018566867481152417691663910828169647572355717456166515004865925946771916318771768133054403140938451982744911406859419493955408475192567897097150196121626457320815171600389139803815862198787155936113433452076280508454247554416145803650352851257048288521000848330706184744914978580275887628228027797078811772515078245761770198463454246655323577113060134224168390499320325756615598774844607249291731073900748998722119735030262427209099281937065321752443803851043377740316007809581884747626210565430127056867258681462617569038901782795601127034562444551798309319367125747721218680787299514840892319559471635740963517201709072814062617428686579089362913309103551926331819208851458786897939445171572683054167216522318815963525044930860817400910576212482730375183698750981504969419286596642896524402036348304749629603341803282186394367449854053858701685802570510909692961099103265092955998878421791039941705844607868460465180752536023421871612826679553672728740024659537593919056901450919369649986341737459392456259989772038900451806291892246367113030537229949446722045146297238801387258119133989669493934387655640600811133556014072249795732882151227569741630784827155536772340592640964676037067333140681515369274409919316151356619895184909243042638582015514060779300274500728132893657644572049464756101956883638162784610667736374422116081917842607419881906722976535357190046743501988585817110766561682005405622138150206343607410299633568693863823074810395865680522969608425987264351844058087089281238264994341457492561654327621736602022587254841384108641110576709813689308866173925422706064910952757012034060716818383964160350299459842991759876330276196215212733114649094454018485507834310428775243529593873245988270016379343678849085344860069913637544181845787681635865767450879390406034308802645233615875922796865307288750997479548180575516733589688829300944737765284417201908424895743964508863253997758537806887945465402978193765711435689563237790282921112306210409070247608169181832329695285804466055361420103001701231728925605293004156041755936327349452273780101908268956480715366610989386748162938993710436206433345545661657559959316421782784788348895816361029770077140686897138363936230005979736504178689766614150203754982726973499034121849607347006406515087114341437891232906998201302455553718891039389663445894419635967783349186271205074830625131763894896578190843147183258090459262475574629596978572743579851604063447093776821452269132387452494661001768812821507607092562884287528830947042149235148137268070787304854804180770314941305585554604179028010862441238409179591712073641240699362622716713247938486435173403109963584100301713227684712799786893909852031042621098689572501128611234243951749764702434239278087468987793582091376354684915621571879502365305785237273045996966179572124645192172495616887230665316717070217298394042377476990881666565778734437727596357372879736324735846301045212858660300620448571693736034903879425198436800198638083507101811829179423170522327234829324014824525291353305528344621135572515061926367934677632379693510998550464020746725422058784370730388780234736757830224746741023149735391715561233594205175701059028667783215810635692217902627462734860753619302126485586389092616654902511203832972353861799169174622485270746823168852058603348907317559205435305560610049839858950763529565017148220508523522399241266609379644050444242032239428347515371468179914174693762754613108939026273666502170612446224774738537464399307028641491344387972330918483581930546644084371211398879882260447595511583233490014020487484656360276883438594780056425551891732072805934613561879259753268518934798948361296050609112562800005514101521789364637414703185013595963641471875631942494381878997787898045947057023289909503541894204211784081354386077559550215816057202171618286803371205635958447929153244116817815259196945166957565706416481900589410873612389097150145751369442835159829860061995836900551517111671469093619124541692072750368186064193933293787120688181455757494896219412081805876252461613848839504782013933344498654256324427771627811651395309392528913764824539072811363744995042835221368582342042598479895129555486411746576180853332082865201144344868084091733624362453279338206694162899383568903159684880124327370392517397131444841979238737628402968950357235714775099529416143276688048584248901099369108582699755973315307400447342974706012442129873887388648922371099621270256112020276535309420152087244628881722364843747903290156634122140109660180452865406647151103035805973465224770815834898449942837388944422705180045587730273864262382074545134513088298321514167068181201052420342625177785201569245439638052412232240772407723477375635197978582300483140956189413324247173390592236065724981835828584038900460179847132175484123220226721950453782783360543595541665857822838397874061048123181279786978482341384905687691556493390646944600122571807718323949709913252981258815384317993023957575125251367691719161270611648759864725227060630387992632153366228796935497887962072603879534941258540455019970598960338340763480976191399342779169578962965977579621661465024373960196328569368185658554488009866152610536234048914577738671856692957092781673785197375985675689036343987573831560526123583786129763505898697789607983523113062041899241400151103677276890140139468124915912794525719028037713615710035991691757734729719130383737014923579399405849404953569677210036545394248194669110302896948279147367954065867166894283748115550516531940136982595872859277757943827070718205341863354474741889003035494617044195693268961061210023802870093361579712933212119740091542238088076067151794333217492394368454669523763532299956533201737176159194150530254253503107570145621923111523453520512833446183862670055412085817712766790627497019982190149385688315907829998275058213139469173906792500314016300467806169528561099398866700866228349400111454791543572360868355956060069891495319121947417180638257767571598445643578797502615485897054538069646105206258971988246828056870502780831801212938749140361109090753183102735895911356212396422353007956949021943768219139938122023424660068118887566526597662335223038431879962718399295053294442986779301137372738337029135474751606984137152094536195949636350437489533188168047327672013967216075267915795755150303856869070759769646880167134832910858649021084833708241657720774882309032334456293850281976333840284076400379959206127315164312765105281688787684352194431482357975278916401498837989963507374459525920808550169597331998769859708916919571689686870545936475749272561062441386185941801041909439856740508050565996921068132379055005214801636494165145782762296329619882054010087790330310675460797901937861422429286661147081917735305793549196689891355780119212448804884400684120381223080251493453114765969832580776238332236261839000235598403953317439534188843269057338187879091624533119205889592377491679110413274109437394182864768928699861811125340944421977713269255535419009582592084669179472010161317683233952267591638025842176393551539046494823364425719305629397721754710616176425264189856230356290172272372096793685548899106955616280961662927448987574166673118016986330790102339729511256399768748909444981474049937459437204996605310995417531254311955851480177051584144155388902461275716146487458247347828510056803077001352836142369417026629458428841698980991179749513751321525204640863224905641595214276526421543488975886875387140173275377010753456967412394795339573390619763744783263847967409670486012362031034802596980764388545509534276078848171955568134201845520503654715623804488920999970286149597066827250327107962872293412491567206275329162716756109418850686263871958440018860140939315534413323634997822672273106829149721390474593520757580806844519215357180752881604251655134486739680269897092606374914596318325602290364059113851436330139817337997988291563424832967167760254820522756804560751824708604947642252337695174862620404119539327923135345839272114503381877401258926882638800508257483091578127675199361445670880774990394230646888566223005389325147993230633900852700567938153461487319931697185586174440136313615649228073370707644182752359710789089565895187501027932492609045444722868870083138599622449415140179874956691207128155263314745283713699680278843912442238429229828614642966132486498814431496453253553015019703493362524060018283679941592156666666393443061583368439017291274436073291483802419069502501486794754383377821952400061122614690710968069356311744634369251355694127227447950250593826948835506257485826722735521888638668794235279986353288420022273756174726483749635532415277591464280970891072450203970339543201063561612964181371945984329073239923756941744811125338211184141559083770422698575727770634065317342273657914492494684979933399950227275504237713183567071287102101371568690550949542456070428614713609567996810550104137253913227525094207396136441288290446363074035672094573382141660231266496234144974392402231664324332724196886484443674589423768448033660454885188637790883547611198094057046718576884026097903346198231203401182104973051983392338974619819447153654029806762726104042686520138109461696224850060055954688671323346865566913720566468249175032034886492525405828883810351226871395894341920662441920442535095233799183996959889012397583412384401477837219925724410247183232495725832237014938935918412207986605018931775603711888423354349915907529466964996337963454240908672645376074888710332067558887782249044797967130076524457078156472172801977681332883547898689730870246530260751400708620938247686772609021241808884832501740286135721445126725966125616277099746508851067366207764496036815467762679823003458606297704648410404894278483791454238705086367474677588848094028140651077305676075895906713978658741170742408761638595321487857802022523813456824584330119074560887508681329136556404579220869611615485719234814463151949829755078892001879066453482211643144352968508532525208970819369289182583000019010379178137868612233257400530018039205016055089964313128977935848915591684318465190834903121665541467419885995603594193825218255465001422494889339076140416396561643652913340923431208680076179327275574052417865986061901170708156480249910356134864154855330054887356310554424807528002022497195901204426890131739667412218812072769065295581831473067146529080616154724460462381592622698256772000378312313910485513263078078847574333188096695672833787911034723553464083847589284085891724310655810647860272359305704783791139536418179648409597820037382989831273395729478424043633329391869109417644607108474046800900665949785074160526902936981185284290233101539853662618040857396564986230114940614879265455861327052505255771936348977309941232448997755879107617798810131824008868899140734243715613151945800595987062715851916599514971416639738192848925241898423770100629863994769747816282406885610150170180099275636466477719182172203299952863018646184861265930613861579584817409644474080203991279997356854595697489505513766824096455513117767960133770418349793703191498473467600619521808954539584778448201569257495259562727508152498416966687198369247604039761357966509788970023299299944411793417343743370728450085943660589672874676207177525737479912018868194171170965334772469695129440264273172977637484674806246087619306323177284903601615100615673087536098539975902078498958750377118728032426286130006050415073206404734157286482886020014435866282660194944936562447436655190957069596287050751991687182586076289017425213469504945029288292310652887431635631301511870299093788319436363460266742146169096358556493727636391320842390275514097460457805850956686380033200959264686555968252013098347989404166273753721351691623131330697926577896587853823542816995440868624889381412991407154996665409489269881187747407024665154555348826578470281195542441481945749469806923927408652939094977434503363921886350350408852885740536952855974499088059673245453589262651039776834920583205577094729019722194965626366952627764058317817788008211117197840690709455399843515164676255423599380052530859255374183782425755139193408977605880194099220294327141054705490062358897528399230060343588727509837110939566710099934921457225261587544595167334456707937939672039420880172397263422788236460992341712560696104203969732667078596170714796265775539595521142300737632843767712454701670755438685912374854860279246248487040849587943627137781818876401050126040893337302475954467841734971903792517996723645644584845697344944644840321409439236367472152172108242349469500356614172233226061441698422332529876684800402029228689903898004973339800458894626708395658080298645602048113172888587917005081867316907455054357103286131871932623714775181209991811810956008902180631432359194434913710764051554124761463105378812053480005537296744015608940580317974216001513550549772676906507023583670461090119173432791504642838029336114046603508943839445367345437019265850793204644559110469327223696401519240504101098004869219294049182481067375296772707588556290500762174424262467229628429443776765379337436844061575294175285118477174783850314118161841157477621162628334217509049170497060630748368012572179167352828862053752810109578458475933535654355821137538321922030287630605660495564010313802299838681638619613720417680230024803731838697328330706922670394661009959211773517640666947463161991875606355650421681247680634443721277863154341749770642108654330403882235446942419248077401392820099175394795336438512240249819076669266333978278517075819271543108753083803401850055115997992165968851336214404205522813847791033821102093665934460672982382552727082317312915390769188087703276829304794092020600224513863476435642731277601813665214830950859806534818479981531115694863544517698629298453752280142212529926182346332132901666929612344671748045325348118437740294716284552809200920633089798729923373192141569487507015441702904937165663184033202051036310609209247543015845363030638820831882559321349378299168198630359419054334577953425427146969842132145455249294451296980871817768736532422788730130209925613173525828176454618466747225119639929195814021268932363863919235229267164814294444970173286715910295312528814701346617655350627603103518688071173322777018490219333171752916362248501431332270363809299696560935309495202885450639387818030730988903215199450920538914549036288745244056623200326287574610706080558326969692430220969460418317390816501266355612177183258567930522811644501071795184888730984351628657395333440999981815278093860985198265288066217883516867109426247320002750522686091320544570955640262414987747307947985532028630740085931820663411441948009093800200498600440182769721708530833562198719585853988405263899220366930435753513046031079943860898401571475483092903043292901213246830610799059364028463573409968113709173282518339311005733004265500593070805795276566515885768998139137615018353423125020803503275945185419427317619231013828208162074553991672816717822351100492239570727002955258735601037402219702406753901022505940208318377267432413362666605071104159302108820196261183577123823914206161025235554301878270098485275655534455656041039218391602623772712329812823360563006244915489707420793961075808862961891460266531281224607413535258766082531383988884408667331167387690865420131638472005629114503815705567657359631497821394209591126226837266923872482591136729976277811633669705109658563857582514124912292140765901312618643429557412530461196113353968735198717197400900118508171559095296479162417920016130372110569382919193801101326511924651296023028826099555022015106068854655180007307748202748224638081811570685915212475014364350544954360826983106724119901090382179413667341751613469961927421690587960494830353002249680063861951870173692115542273191342309976232653768527002574015133290159536666199602165318070173414299131625464403737053410758986279846480108881725644434429433473035145093084389112495679628433308019481889964842848867535117397111170033326277325930209403937085039895636249392130698715004124619841400867819265888183310272755983033180490680080189761668371263814213982639228792422229573399571997310308431296849013969881703934505958027473565253588448448172461594506438987608875984931159880871453216526500261774641104828418962702625926698562890028193935885270698547776932079178825365250069661715449038718881750832052185631549881717174826703834209537685982907887863954415367192760392261755398266929435527673908876152627372329693722092405883415532210730395308507953662093247603223379415335711056448059459644736315831236246966789808782345671061717201790159970587989260452357288164639432517598698324477397591500418374763901103022359201958575171933463814086134803976247262722681954863726795650692004509806705965984181485402478328319079225709660946358570391935279752473841626070469816225306820689428219397204730679025500075691358698351846522481854128965554710397301928229874675265393306470412875618570828625589509274420716549171076083472515231055854607942564255176020246921749175408297117675557241121283015961749401018913610927283026193342218887618727163015757198302534656373361368872272385527091824733208433000986896437020387365251220269644168332647010676486248782606625090007865245128166041855063422144865107400314772045733985060628946979799076130446295492341582411651834178567600602872554969923656545960997221548405307837558844043193792945541937943835497377440408232295258416116477906755147327546333101458136751888721476010027959404104652451456730456837058546656447272692598166656000249509798283374631099847881612084043108174113900491871738738806896478574140203425905612699863695028110537928742952333838601700589856330404777099317074532320169390523922650142159931388219559395317933528727630774733512342758823342903579061598116135025357724016635046008455610863752758114514976590538465881050843353213774713351907752448394524355894012118639428681144968007242052672809165705356719934119118123783189343553196733581784345338246982021389231049397442335423641766827386315164697717169670173951500606692803838815083639610883761569474899911953853138998726921201684640588358613338918976091273479410516126899166697729895713047202262972528030492229728085560011104772340840950092158529382198644150537601207408994920249366576650826812634991484527086864587555898395361129240660163895492759630226384063153346303631121257325610889343308836962009152245380963825845874501247350736883338467071539340127223946446393707644674873131627244214230008737167315829671642438785412162788820714415566096527302250964662426047134352220400004899582644327780491686178324279136777150176993806281804553062516955564881829894103594176948778897974371952382960471181271629432206334105690874288015714118708343762952210833681884356515666143289082282236775102556857964561013357223762629480742651366974370183533707168553516002381571384519977938762838442338155924043834563781869292934687114817779017081530341682899079833985857513850725794981181208707953136588559464111216210697428209777372483937461000520336233123773550535369302516728251834516044382837384097908983155426192684138112927107212484457029632719363863945501937266116629444098366760460311756598027342395547189368514928388199176688891471186761414758895935058581223822550751719561240655082277800288355911703271664477615493364948377388292182773244613243705170494394368678788618169748459460866807336168927630529445969420423792187632478846083498952820910965702305201537886552922569032436765338105191073333200543380410222142454367465940136820753016563257606441952176750317524031960892227445952468970961830414077946335295219660103601782528749224678901828558339279915631017093400008621819118078157984042115853247160713233128289268743360770272270458014113043158066553575254217583994492164278372649679125915937831517519560093722340529745097808920726715092758892504288811732064095655075844651531984429825320227283542126982481048194558673679760523284815424120664786666971643622139418412064381671970672408981966240425472657501804974888645997387158727589475346684393712876208457364377109358765195067822542454496564976261900446137501943319990353395583146794423852874468884433719589107435831116062794145326749952669700992502632240964844717672634336732580476411105993309434730572887354748416252975708087604020512179617899897265805447995620930134330915762821829168145422669769343399536867523705822858581806707451778625983564286571734330955753826390376721570060268921856922127053919794531709243851043027482696653699969162864062709125721136048816584064582026173260913540884004153479443483730414050643537765826350805957579569321577082877080886668020817560016998502389278603105495200309663443985058248793738153655255288451129590004851811999304867884987364396991034276508991739214969879758480459701398213598695182001074683426317578519132013169535823258848121335520407453457397136260377560090118214944402168580155064509464439595527580958311318234295468845037435284320298114425421981733082180742024827714846617738285144766169195059957619133195615034484904779021542069760022466652789546182075659802223765265883536776582567504090287277039226664472618308288593221559972963821983922005192688940733282943946325705850369664320323294077382620091787731599306167977546212578842809334576954845113610788178034983339928780134705870357948201285548780333065915784223714566594635925547838827980992419262869183696047443500062455145342226430911419858324605027619567844281342935896555374238759752270097530471064377748415924609848377103552709003601965170934139566407758953071039687700994556602949417423037038863673690403379893982983424387159101566186759811532059941832093428828359969177127413730824478978508169762287991281798253504629035476974826458608869088912567310931389546115990498249504836738860131254640171538902866827511073125017287202011559009055123630469561400764383110478679536276013187999777816815124665071957670107590526447829075105510883730457807148591692109219200131639628799227695568253215370202284432563543326242635617910035726331325082440516592275285280924728369502319614017760241570224612592589231042480649076225447045032148147254389417836880651233451003080334685253902445701910007787850997918175219326436302624551265367480312746259800233460839608608584887854261184123190523029453035649868136596916024894283024991506646948598920148475467003029793847687945354966275042458441082674860097338924160511646117279897494862674200211644815706819342612275577027144174450267484552753706988063507670956229549270537683619083919285069488909375587888207570348505187520266024656228771734099672521547163026321410489634566081166725631267113129474613133300644581973467220075318327468468297736913543843321639021164737689846214859305199376591083477382488131983883330137160204408770357555757480354067134742744635909508232297791728711330487459183066767396871678921207550985060508529145967284254050780629283215300801172482016487701939562413364243368758913900715849252283413095935360282972962745915109559046582324843779276104494944578629859955334511600666712128437761945137323337096921508751957103483696265065547657026282828429479998043595416755358768596703797508490773018872843598376471499390849686829950386780376108635672639262918431112022707578005400101573995046045768646563793276518167002847997343671972731498613023480775706724870804366382484979904079371017645054943297865358830056282564814608324743173813310801069108029652408532095129453255581215586560323255372502655996293287323226881949278867477063992720680661397682377022095293964758476164934632724582249244683161210712844658770973187085837234837177129072449948204346175273672287798171831699371751272622107171070381260498478104681217776864576728855085916513326488170250257015347580111674722161357924092698214337694586850097930951609179813152996524161294239641554951291607646549657512912451175926780109604646148283947359618154331389245254807814691636802382109455414770217330878458071507968126143612292369909177334349656762742982453670010944601579053652920615288727859471907803473185070457158978150723562798486040732745171512750392895450574014354356073315921248942761809741219881976670284891136861741994919315959840295738214476641633572017162074579659101596968703321836200281290566841380784388027997538085399470189911556034918702734780995627965120087799000475310786562616022313628441123368000956004054821352928774476905470638602945809746168119679230415948756365510123658837424059336952568102668553673500277291991317434498914172460883748591548134567975372420941383809718308344659874542862886115489490935954287193934536926937086995553977354143063530383196588779534723060123964021218804854063272312272478722490819401315782972317471738957582169896458820753000395876103320691913688371081533126023004170788498076433205987452627084232252824968558884899060954237181953777412372717832525619456403903136169460254433271850307475298155169112599658225586533695547970924627657789130812032677548122292937671823638102200563079030113346424264189923902235900751815503315308419418888653847269171238893056815760213373164666977656492294757575718971549998987617973669510306441744725843320488525149958728739367545593253308741371350019918259660978842403826736152375835189765445158133380467670375279946531431026070951017949600399142421036178379553071996540136059539516151668604203907812507024173942903228900745727103899602411210800097767116493519717574391635435437318502703614932796768105680818837014577193189236752144339493687203398490231679801690277550403489765500660728289227703744718443026791773122180023733975506297134822209976108843936069467269970044328297709943365307978581051011525882578207282539995765221983734429304001846479297263981721091318858429677020204655691929248306362722743118582759018480148196490177431601093758391426639693186309993816121768913197390451683117479111332266755012031804938175496399129637054545861981858481464698064505091830538184498185201262636811653878750540101122459269770526633075034153086965400093026211810551618012113666042823890545090348440317605701270338109504980168935996025557656430279397836561236319057067827687621804680348358776718263120945370963089853529680789205051885594533243564517037494088903802197829332507886770793657575793493091705443868932972330887083519193380363977089550517987487327089529607462909688390151676184091433525443325720944634013455431131297577665723589113340421711422567035603639889134341781156111013345927955528142074646457643917569746431892543980135759122334590856472416552018450142140264341699507573409292259086449199080044373741110902721579616698564427582590730554427936525825883658561764085657651368239277853451621300216156613186931518751993464217042540387965818633881869849721095582923441400181658905246584797964255027456878754120654474934506403890950537911499232901133063335496608832211317989294657903572815733411491542826305825593340206122183631899158252833693542760846032735878660257060887878654136568654447810924521954240940918247786111416310055660508360463729478701405335163512879021356329743891551744245954815123556024997458731357650751108568006716316482829480486845737378556191141936626216509523172484876248169357190141824545385600994886945397932989236578328953188524676133716172258342471367231437072142078951266048450848516290498988873256253877266135462013746767566181014953740677306346680481884026142659711828953603613532154255356496628060713809914439680267529657755510165975769975295649210813262281162162013393051881871483641569950795364991947381429137830525291772352562666272775729660284334363660281080012139487989233978154981207643748597234531568752888369580474679660658495210812615145956464122640832814460594126296808342588698269507775436062119081963528539149926143886454907306356499214805493941480565640094665342190986479298930784291742138274758963162578344048047867712192278319368638057002645834732880454133464418509277322035191795941064981919535919894481928012744494706003466105063771722748080950732152476824336696006118518438286847700775119363093231546535518191185283705723893225897925329325574843612588000087374020102772318551474407399744839746212880117295413462939148522701948179312978885178757294492762707900923358559280636029020178634552157365335231542762176098196995096157968101751248913956746563150374780796398642916478110533417026158782446671725506366391547977051563995955037176684658516095325481808515772681984779904705390834946952914617585312149368159005592619210424264930354539072447275907126962108704577521746308114915049771065293198621839196393146405378274748597063364178745479680167154331828905899023512989898786192728440650673390064778211478120030885565382089696768781227788525071354310991007253411298609199372491074560061858151218301636719794900806247133700573225828912916583759427450568835450316960547663298852469370890220951028124621146590143493110935401187533275270622337358008071549808287641844156578503540962347872335061888575066637660738879976147828488433429846278782817798820566939405160617080792956900183474758728189049531873269116295675360512027346619013852987667617353317625378536826527672951541294179915090913967468768603557474639381410019611525074884072932033005706152987832878085301206993213132089306083567596518375065193233047039078985420091451521477919202022288290775061341572632604010347203128232409490133009605398417791972871040322761940735227576828802927465645312602508843091777018187322116771380212206309547366252420992021619181288488307958060151710136318378107300058635266330464304639875616420506060265333046266212750267126687364508775816325346458648056822974071535528782348249356759145327063337933664193385328534459566597095448787432508306972066653540059510161301410640292744306184404756163897439582007753788127755955542367297689223267904040850893040622405725130518491339336519134730450782065884265302269330871565238309857004218993425429105856891445187956398949389154301429435060499625211294049884483678276049530011881743006193544605966843708758053645847890839869483077972687473218472120956889337798404062527523670395547856071335731792956809887147554589233893501547931618738140943483144364128148846431723958874991656034449994625386561015413813430431271396051395317033124909010039020367440612188536755741866548748286029931632165473154643411429758571700421825315007185796498896824042164507593413561917673455219236410856638262561436580033382237005443933662307136895518607089868055434035779526886292976450877597038168283962284694286291606077605895866512849376116142754404411249510751212352315478020824104737320787634494338278408505611865931566283687870624596229607747313666421967829210278709888140213998700328855528499338454415253666901673357243670390545238990634208598838316494840471732041246637221098948577191305244146293191572957711413388590306897283974384564825397924966885091729314262644449619502428663346208404457170751977172550785716962689571779931144621145442161323273268491832688481615091194504400879461722165403363373877809411484539209014525675530304730429829085716846464845904704988468301844352512425841761700175009223241555821461683509444120958726738133973816970357605254468388665515950174492189255353096947189392221068814857944323153279418820360076021033358082417644707181491417312243023555596092313870095871930451428510205689554715686177608779005096219984629868071094722137966095483747509409560729090175140757210975830223194050933898244029751734697645538348189460833839492025907489328101521434864072797786622881961145023587545351015718815143635566053426202692004757300555794020749489561678914970571978098173705470740327615673538480587787884577920775979671633489288641974762930106042306962893403478202758380121431584220413806677275361625478092529256275645020223476533360419668991843618299070947025602016287641023753740917956958057356169700740029487551058313623377684632681272978658521313801995183719747491325989046585835225924049842857973661999112116065531857980252464397472904463002220737077278604785986685909767333622498563594947178265793626214042488984185418035904136302068404562925526856249254943174550137417702400599882925278331338568284230794499271397465904163587663174399942987697587741169225588513792349588997426014379769141167281451103613695707683943019382241145180518987673556791082558970351143720055136530354227865770567342787975645387958427248479017068630747971902458401500704266445362859897486031996177601750928313188024092274772583321815229886409002293587694726284841323161234749982919235942961360519936141673371706156331718459400537050706013589594447798549227353812841076089236255317968617636359096466315321923843598639461292859795550392535292058614914521911873254087023009275752740516470231577330704814083944263609074345279811909826601225161667311557621071738189521723947271864098308491834242165009878727160885957332351815466595277472852421218085865694004354801513158557213740920841019410936542779563841107344702845045792032166681732567300431457316584234337557500847396271644846452602933305065222169169107076218992817096537548509746460185877616167580952025717719135355921778495530684667066589211245838185863294577155901802093712409886771142003784917083911805099405355772406019172794164964170420016706555434969143691125261174683779270335514234031180706263229259155795398219161812296929281962919271658219152076791122496277625650108517935528662160634894479714025740148495789506175029309504763156843788031807121711317153341860612842054966563977473856131865355829826713016004643598331694697973008531156031787420811202974079329246193503795259617740413216474780998989518732702155416600576107254469375416929418176889132324585073258782523633410636802067634993193389239856905503168713835918489270307578909611267661440809772541190170399192159548465083134255700254552954021804401939541822948610236846884726913619775043864350822103175701070055885386399270819517116906756593344079642783476184741822921663011655007151603159259952879949221827010743935323322405747999482290111305443127992281688639095497725563727848647159678073716176377436669490944072817512224552397436027894455035461052171886348537972340526269616041365141182567659089389287345821622877662727227035156207199209073825005670008857373920433066961498613493451446308139352717603256007162206859571660305094767415019236048191337553109543498825852446492581494312709207388739470557349506477409628540917471847216715896237092850780503958538634229084628830009297175266288398111091733392025500015285985891758996558245928260784344706242047016616237411577617101768184832771190312486424128189730833529409332363456718862601329545976934904863264912272908340823842496094741614695337131063995365991879982661416862138676551256727133820707840346706567221621746835074410499433273548656943600786605508491985257114737634520050576811236799459896629412478576389277120782758111847829555705295896972479536653965547884059284795590138706920293584299958114589019822319226608365434084540767725697079264300367391857066836601733216753643162404576859036851659715803066336143910694447617351947462118556145720267298398949765777786675812115070250560262640200333396049192370434739936835768044144976061564880601321967293281297528982016623831019351024939788285763319338106962249886304565300244199864032667403297364351335090377895551797609698658999226008962040292099136126942935060705102813522332608921904176260414602207208087930626894294764989405399386944693056181549161443525756443476594964033967382185070021210001572385922879685761853418675807772733119634029558806990386860551138958321755679178008475978356988571375991696241177935324123516901397909882225690037310060192152871362914998943164711456135896130016363376143432500073711050127593411066901571858467815413691625609039436186716188320887961786298916434749107926418940240728709763475037069130272879521459696876448970081494843966864114520052052202230074196312393221478976248750099557950782747837821069696488057159950319483788093536264054074321697693020435191924128096294211185714710866645876745045603846320036373910923600085481626289907851096760443726074303427400585606823733721851401661959113243416662434638942639595818849041946102418041994327597693230164815322623571039024770346739882660030841868263858437975788494901619351548596267021430408580330339845825582516920786852608747574717173499436300005079202279266436535609852761230577630637609402263427126732852901713411286701737090286107553452065191577990847195421655015811184035776243328839176653380514281459326601908630266219440976738824457664989280079308050447586260086106408714253176130621980145771787400749858252742414480091837427621336154604058782252047464392977271659203755069466010463127352683261016186394027727609624148789268352586693540070065319131273207906191479426028820765734467765379594587533367906226993002521533544791912462098221414310671527508558417334127079132933853988920028331878688607994256211847308403988298910737602142526005770241019223543739167042116711090955835246526096160147616892475816778006363611512159393101486952931395460666316302316066125917172523917504921229193074261598949958521998785532706419162341255354479618344145218676033314370478768584706473487697646538940419537269242034377297543843591101532919049503529839085789904068791534179464765603553035984575667677468104418544098810116620238924721003017389514921540099630996190191555748214432996240976894393720175157284211194757772194263138052575247427378461427402883755215114552510642935163602302745232816103445439698933227287010348205223695915854591285542862896605104954659658085636108300007496715708794322027432832827123348800135387803472442075221882161183496439462302352032252722251146311328509359416911329969456372868994283596819194877298095706242609701041761141860505446364435028489972417160604360483734527635019080347883715749795391072432314870820190328009980950151601446308683199289688484243591087156297236068463664618730408615649231594376767845747627745627694657071020671222643526229554690004321921696772283248663486874624729668685667964788846415992364211328108876360886829442572175117840689200359988910726587140419672656978040860218825060108625532471006228573053163071879520802578574120260994056042843271318786139351660115777617661754594693247431570432619952020762975621251568219201593920796483681473267356911333019318095339715229482843027035203173907435762948995466366724731816835789568787466107150952480415402623162445610858643245754675297821580732747076941425621855676415497725021215612926683663903106721746551184909659800779426927897932259886534847446941546500624859343550427547264837703196898029896939372274354216639077199440359764080719444392029505921178942989130201481759598288813517989427408224830556996129752256245805160800305146260674737507300987889834847220387360055574615275331021593788208824250808014729017245587104098123624610743515209823805703749211741751273049994295488770860353311814595890095909811416344286515127742790925902899237478694906244671839774375516533247215165671345988683412084785875234196546742565904073398327671564546377087695712198089023368256151186710964987788951702892137054390761700841498146477710238458223304472729685382216255175311422519326137656712108730606930818057750176066395511366265941325751613572663012202822192758870202160983608226931105016495049801331943188745550043591402296151344093792703906585028406291419754928122943499463253031074583805642750971150160463716781354260668555335656664888537147125376537228313276455456647471226824826899054532168514237580473711570049675690903625874472069596384506900862142648856073976949824684499608062406297861209287571099878227082615526051930515135567871200722339033150739738563310928623025219288397989755065053370453400437463715222612838534980798635607839332957019728857892220342554563524080695138798824057683634186317083029988486463277593172976816278606019415591710960811116788605967174631719803809330421732004385455308810295133072896987504758530928956361958258899997628844811311346958038178367175428936174088414138493271979723778727936599076346802328086008731066605196264263162408211751279243318161918049749971908966425971796395818870495556326822227558855518547727031653815368073430948425791246499044321522202318934863945975747368091258568720317819808368884859093649243280075175659706978670830883632768307914418378491948220625416664031921251804728583600712629047983120330749101254545632608053780436444162596314209623791857462999302094347685267815971488658605262968167731847160515779443298875436179028334146235541386931923720523263564614183377626552375960892620073337742426427237601128168742179742246556529112353341064142949416630912748028385386857780441447633239809298440342021553519648819380633659745697677952915292786626387920574299841946507878387638806490777546141551535076087180340622919327926370827618154247106792131752405378421637070840368701056911938073177331848379089935067878004013213254428716476481878474134693735826583286723072787299141190430649424607626037487148183972395467570342616160659347434558767992859736103956006030207749915895225034471153695759554170232779776062988475173521010568138550599915753689858836233806737757520833852666605076496653265214504977736817198901781034917638802972527658347267331913563187511601700099260169866453825067251618249682555895996738928396434146070529515797256683491019954146401730508042372576138980788938828538607986499590051167472740395487937901801139044990802350295219193424001075778489328502921457849968265809252721043913536152597526443971141338519624828530244077100676052485910795599636999022094186173078476475609377599420654762345639805796151868784308216636464560842010769696336609686493129920239851769176724300777464026447873916992297926591808156853533340073216783752919696808605268493445107600738960834409120924770466165647866795192633874715371481215238564307177602663544974569665917466823204031325987952428733345486471603274808641609518603289610540906247832086521858325185323556833856045505076003943241953357543284346901796962322775157386509891579117138256579457403609399928460367764381608887134420799251677335364319915545966641321216176558049445760664048456841212602188858493796388459041499652836291957513680896859251860065054158963986384372000315142932316114661931769126778642513427849838109912996701784490247959404665834954012549028069714551031120485417437176056956401626373141814542241622441971893274829176704366757522392062946976047825759179638075702639393851289379180268296175316870867121927086808325606510446802649926395932183008342966401170674161827795410251016961861500246990146261238911459859796170667452538632363886871548455812971428412111210097030886683257641010820406816250996885151889602618854678648788163749044659488537879330737969268666394100200665051360699287631736927850374208354463344811591424069958537437435834153271891341475566965299168023843930897237267923920696538879424847033342117184085567579020173542275376467536843119496191083861804757214872675897433568895962614586446023032169000537922949303190417316087626163563254577436986583943267212708877096056845334014296178292857275659320301390885173872230737515184638713892931897803046198052609074807369897602642462630036652717974530828238427528868989092429328150706922563827984281848378849812682271572100663456734893919285907828329098355948118765025046252511544750722510758231444704814316124393667525220854122857828404095050313088617428880684769862898284270173856675293970339226033625262761812681912977711267892638611207400687296208232789550219924969592458038527479856913753358340302209925039452249905954599337807673566925472913220908418706584316542577429638642770370579825088478172066562816059614684814230481811034020532437266308416589374822116381643052530073121538910575934763023621185454877267387581565418585012087780833975484700125425174881726346313607009068404371015423324069888825287269242839667176536523987154582110005041795577791208047684636655959876834454581998128017957140064619486117786690363295098925575522245814051115285129998306413080459483025180242742820756378687470047605531344518587644708809741416147688884335679863084792718043306212264204209431707145259398922623726899769581343074588597226877032491580845252412983111553097635391735715293462000119461001786609351179720893433206440364541440329545345262568727079571232379632287576976081747918083370206423503497217048008703387736390768275256442766209850121846382285454445826667451340534436738193557033627465389576520053158752511859175784802940840171473082122014040117945678513683250103057476655896893955766708318050357699672416476570512238295044036608510390061332478419175801205264361158559878291340562116782961125355515641921496267791335969581048126796940210937579057326400695134085792468369929162384088223980893652257905084411342425717825678667780327302134997438673953922311178944909948417176964932291212459204468380208563485938999795287284608943109913755238836819255283987481628468900598328221104054139807309826172356402709071253745141190014747738669548101566219323843507229711940063432780486896188584891304467478194630957744033586674678640716553225755770518189233727792896704375012986048266380300472265669956176778853565576919155039501619822189085636870406879227183666609676480903259082156830659561737936301830247225054209973042295174760882212531779997999870500430336304835011038454316624150320161484333449964373341078144268595093521441954572749981862134560241390759903754460715417434436597747770731845279401608164047574762515849602932757890742822011005522741195075549772320601466798692959538210232737468806308771157978763693838562722262808625654728087989254569268147803203710436349288169518866836616464607481163780656520288609796995149253099361043392502338144597969556969517681817938098578313680346319654976705142191117852155367623017650072665187636884178254017260547730077815713185642221491605110889655233127805042814012247307687263056202346430612110105829561742287109836147235149772391387964645604505779995697558659838689189153982864861683112289686901194518568147631307560064480184230008135288469471236550842068318418015706726021735809298669182273646039898181146340275087441224910091044301070017587092417433973043808519752847075280276572634093486521073326140840283628340044985152868623504560738623582866352197713332128286013590242995765992055111071736535516943679809920866627020345696484056724527640702605931636038823700414793378096687770748212914572427269809495394301974302477501727834840633088908101556033704265924692741845834210943780421401977690702401686346188692319336307331900943966928253578187759647396660572118683299973001087631851863102323178166883246996843649037911975586452392452091145909399501260392239017901254365512311494437135786004674645866203664399587944178093658649015844492822436780179175327607180789865028116222203343362367878522800956610962920826093718353970832904307878155800676044476743456121182593890259685792553144281972527710851031904513577985887506934489160176397002693616082266853580327028228859636234859715596321694378431450520573316459955711657063102392196221054248926981592291718144722783851360308807377044489276861491484844934906680256521172796227626331627734845515151197793114347469788252373647533485860227301984492659307076665853740115805901088602150487229344824922876430502455024458566314887375064852121294284275437586361151050152047734937419029746774575401842074466515296888535173995378609353918611638772676379617207221084488686117632420615377530141821557020842141439269341820738836336153249537115214364058141543676966538974559184867745306687930738328880759414747819912690529085585102048115992115718845807157067227700664302849767368291801923882878611027976982526791403979952965471795947469501492934636348406727190532561369027747669905302687577831576294596772388443183566261999333919638701189345379654346400150539723815141080533292948430257888861623467210935231888380620804518508789454080014243548276946236773145084596709447892845659468087371195643707450457565281661940848780410468877543121588935595387713856719466548770070892050454895088312474065504249865666910392843376137696511515187721011417339980659809780195753718306928555420113784069042906213157568425034815463768273286900610041320169294261747265168661202007341612023176257787916380707912897467569807181028263155162872013123613785280664700569668820338245123575074874969514429495590125148427950494649257373067793117404896502401502143960175235800587699470344341674066502387346105515021911048529085108350461096641542394231275544370173008562646233259982806405708868491928315724041912838665216574771981824169142596295140967991961541581280672464680457430730388431004352576563079684169146863668625110300449109598792837151414434574574638791328984826729615626511862287949098559229017612704361251935523569500519691402188708332035684743604116728947609490505537752575861505531619427420259756191927184123324264849854470420470487604508417981060172648236998539944007230358996896710191019417059593160992718983065482406195588209132847697289836927639094479886078910577511973063608502887870088821707529804426437789082057510463725761898896939948467136030257766437431533918756477583452200904730673333765004785482320852573534715223413938304367183204445781142214257388002576658345897173035087271748977868061106191354094557412273134550298506333078655507672990188611874847841647192111346269867706875541268698925670731132715320085712637488686881211925530981457934413438931033449316152265840045841643726177683373462522006111470544034554682982427215840272517155214184528799006057826296444481038630582430370999452835140573871184843105803211001014257689975130704316211715273109791733954685588885935056104572893478343555193181200707326841978699228529551613104310424819514674783343733491650442086882734822975199758561750729355542585136631578158076857239797853297834231801102008866445959636800485183711470598291040278678527646952682234036040070842533452185073020634971331515298463849684227607567356031376211451851579321469602468445935931996991791027951636960675163660771780354166223498928032665768132192612980366837334095204725647338765016864484048239288174637500148313345396489018803468141576514157766170482683598769753026523240380743006433547884069462372062247722719197796260431364784322394885845375638921190593626583275354885873321798843863684691942896785043384062038598790038832638163764938669493936753945209291933806763898538077922206298527738158521551355072685839041793038676496017946827978819495040743381692060062274114227679830827609899530749042453428754625289164836287588450584603162112416644587108884336905603941444813295546515286219767671229132797693434955500890839611989083759924616340883247279331793751192691742675636856169099744096596198714086440591838742443585098900381227455898092014994008614637778502774078859086475181821650062347864085291999556175873364107413108549844315304540274013163998737625585804293169540771089036036634892784905352283348451060246164784181101594511903634219899431898692270463634426322735608422360359960466716869590445143593855563324713656339041293408538853852509687999037507459269977170393698967712892774096250547712246938828421474930256498492396181708428634226538365987921156764751763992116155863856687751435118096992645581964242746261617476095964727924121231053227794646672730118789594982019118509719558634044790537113372356891232672662021332974945924738353190127657726530294464911928656439410998375966101145762771368809514370754672281398931203356782093943083277142434263065600616889870498093905322608427781314490782443777807919963361674343062187263406955498689928493412043871996708575543312665553921277474731650257907587408240376830038254083238079440701058208646954356371246014545521470897947660668649590663979229951730791385813611356668338671005098867369549156777502207067726758182057890860239656553749728079463887314540888891743999521612199825713781203923048734216120466046736277471850900916140127298638779499699098712914021767607734630573936170765196425731197561368001404267363731322656797746456639956249612431391286479594060406821442447332109692518129208601307467811074147922331491482368709907885427516803522754031882878500204129896331275782052373472475901228193875076131853768059948523977512760113295744908829854507376987848267413045068314644114316984011714199545062970598039157764561010641575943743191364663293802022260470279446762876326188308704989927391243459629651975901043046211210737626171486042414369323456509634246794253582420149222209806125763131633362345963313631460396867914676846278579102556025114927804024348758072758852415344687753181755677482179621134230936588348564305114294015660089012416876362572051903238301533397207859530881061853337505180742633791348535381140272615881399409418957585900352552277086876613864742261582224080656272759944695967440337884990149765056285814832694626692698770893936601939417988136343117208959785050963066457239286000216372413238502687719948082262955063945080939695910824579933677750983078755627270890658178980503674621591062942509679798602218350991029520957911242974298380642554526665756378057960982917600723699288655126260759405839685654951375104354858875265393226054153543011549075154563216291829589280291708092728119123118916383069414039258942200809381786174543746390049866470032050625526799171584989453047231967743992930316601008640997550313067965532757844588055319144644179721412175100234601676172516510171518714282773189931486589258940136355580447685561663294019406124857601395334957945648796285153195345722274678490322800121958177361013592355204733330262799896610695272531104228570656299405942899456593377333922912840283380237443975694626285358709246898178314991143900407155173052977055330362968542318733152050136256436171579419220355546692994028840855155374469518646938709561427572121264424858607822050755184955672836344756099924200344246581734033823426718572893703497208353303052828336605995146071293498933047138136768936050705822773015422611514739260539594545280613595015528017805152559906212468869647361466799834539996422864409855400679186057570147393154024569330002848189078479267081658865234970368010905952791636372852673855784384117792278238605321123985663269211676271545433750783972738144890502579816469787697598655903606804045020493901171486921379653008606077461721707790038017911902750732892068334462913591110825693659428735543255126885586680051709192932872528089067280565058505254870339260942345728526117346995604287410553200562511398884226970134833651208294450643714840264210589625849211165336495670917942412403254572300117165620331176636825974657200250749812456088224850468132893341807302401308148025888744101258911183238350420660403276424665512040035099716700962344461594206298175687685237157823902443272076128635602511381883999570827005355567061777680917460408062749345683988118771244327302181992631617009350474613411639101469409274022916370826763220831710312153554252968565876565297065499908555572992129560398648602968954617666933399546815961969136731020300528501723599977487344615690625635623890397550373487229287312864844889134671710337561520851573505972900470445493786362409498371680292902580478813491739196976334148468637722501311215947957174366299989307464239771923051462159558723329301964285492084863393496769502436166577021122091070439367093949522592034173621017729958287033288341940892267515914972398009667339180709014197497536980502689350904210627437938812571479214318234812348720827660094311318767404462322191329313598792973029400011379668268531300085616074427401203899723741792168720855278505139198073588635307304663303661983757795966541167549028798150357723118063297579577688281848416835033563485527416851548708623985377996737193597746207145130299461324138998233281644220345803192843351206191288700894608811800368667838035234967312227137677393141649698671068804369222270269319481645568250337067931910905085599963051802488341302808281301542510631082030903176767676047929324280094265553408868082809825029804884014046889051552982511854492247620425689442764915325655961696364454474228499209588745186603547490304428321860447859512223410339861549303621073863767705274214759572226748794126293841565694085784063574216766806636859879794977910654961743827710024748006908430190766792711999634040966304570119334731995734922286186058452446833582257141099000878350629610595898962265240517871268364662399899324354350075807044896028020383492244425009793465542536107828527905099819849048146363928494260806817839828098844488854308156892995098842812184525476073459428355505966350647374855213231491076399224900167694633875210872382580866713736391499543467237858307031297796941187608810701042886285028645316220871847749625605008375822664848013131211632980798097911699780901523339756226074025812849903301154316212230300028391784569750213934643835320488122579515211237500416592545621678008717452276685438563405172367739594103653472575988624745694943762472797168594609836974698538254021192831292064146781983287841197153776139768696086863618774644039172969564556249384663213917825817972022222263166856394141835165489366169356872346524755065644663093193479278063622313416021796778025542228003506171689762990657204214586341890715978108069990754712786348595784477955667583677650153890199537856736710899257617559989564823883984500838947048295762607416257570454298435590258309941931309830359825600783771458556550675523650998113552518906058094130379011326401257976103726783989427421216833220624812611081276414481178220040519144397873849997185006106409980758533603539900001443101526886119898308562664740746723569934556624463082457556723694931984015925813512243978255668916375919668576335160749558991943322356915122456357485571309058137499668619194942919159008359576625596680337655284226178491125212864920756371249273382370541757517790501819675496265586278562015638513110902147224557793775363127648801716681148472500586587538196657708422405129880618343906493060248430995734029543310570865108596192325258976046734818880396781279006491395707438031205973285493703573532837009629113010281294081729463640426678310051874150963121718779780955700502624368350365879607678343543276351497817984854349913229934793398593306582319354537465724331585043066877013557085721017454429308236861518807702531222230169676499862833464178225174576174854705945272136527878465536788397746533276110429853693889170040169166431395297209953593706880564295272246628303147272939066962706776906522158601316757573419999336428141920148166183643320296998421779676938973373300346394835448878388001004921265971744282404088889188062535033575636398019005007665030233643048934649420358128476485164426716521348114675516562397810283939374943693921921321040700133617308633947404174592787760094802469562798511889493197839431904897422342709896000540000206846600301022782747981765767802643054244896659112385791897894671824109348676394209349431858379428283477831697875550692971146980799906314188076413932339357537182824433412292118132727886866701474374065359105267194184959787209280842188678548440361048900189802138179822324491927495696528910319008415106075943311073535269890207004462788202519729027080098539663078600521417930881603293256163507779960941222151253901370800482936863955168773848952990590370213550101711943914085801400631375445783651588551657150264963073141728139751167871621181481082714452460290602085161706207610254135908475936764463426987166865553298016894983093909666360907461160258767682531114438756353321873498016569236081189034894144160508476182062876344596323197464450079287033064223728681004223319656173263949402960833254808874580052997648743303915674166857910026182132068134222299332089373746699232216185681328352381412086650530399355606372865074084390676967408320781517626619207698695690167959655287289610641898564524118140008487885904979627879871517717360745747509910564823893750588335047957457217727649413033096231135358218080692276570669632237288979321236954055374854346569172026736117520223735592629015128876198777650640923267411262634813665546734883275520797371951860736239570885551625537971542199328936653681635535269144249083632685947040336371111880684845615941102152639869324952043571599246902915521630173750621597737777609466014987402753091064820360949253201663027531498084911527011805727000150391564628283600076171588039063547863986117915217698857178265759922985038556245359186155586423465430625252475981557587231813415136058707641384566986488386903982554267074635473996098053563739710976850484881538687661520687432862155745433980840888102221852036743556897255767618155189309494762609699896912954091788841561027646934199086881400332615647191087305648374004887085097756166056050000001992156777212134731050261786410811673679297197222087736575339343248910984165393348126123933939915287722610086242795804948481614891598660590750336918395481100672556825929628881088245301746260876548716107186459527169471493616032142038113126039463915376867469415228624554496915915725649572427752158852990735371752056652547241323272049691369686838378085768493302177747526870965884119222764089830183667484041420565213084651863786363291446121149128008262672043958385859998626319898979238507588648946893617043340559291600818098245582789158633459659296698518865859510968955342210845876989401024654383070160586395406657106763015821299710665715698373875357286265710159765461027560214489053543902554604745494061543878235680048740034513329623953517555992782062692503718313747573896277756539059988631733233083784873700820520582437439520001072875388639723053342644011466954329164409190596164481559957751842075403235884802814837918248135729541453331518561068779707972978051564506376551699519800188717091877045238046683448294557125804109226818633170589032961852805325415875145743486321088516947994664160917913547023317341376086069282043990128174087229104989049771529271493339883767369428459505067850706322687582427073982029706649705063911258796591704094918237795187048949536146518904394491354866039643225995843685142642077980802549592240868104890602134982467062240754746188508297458885852302227983214089681371233965100383221015299506218303658318467250085926671210042319302843372279877471135161516518329255655530373414791837020027060128344337946262463932872547165466527349759191452752345769096486596402486190954584745887051886422870171948230419335700893250422209134320470742647913444381746429145185769050605674336785061685008609863043910022468248467740497527928723145925313309778555121773616040108580167247276557899138580835495706649119311356165657642829753627615461362137625489434460584504541297605909515082732065039704035593918279988805538224306885302097266548111682774897004135925319953135663291389779534254052073774993015639544427210606078004767538144201428629469935182488784367016722381290761652277889349519757476868359532371016947886271016379652766515284038595626106502138012962298899189673944634005220780327747126222086744821086199233398509517100187912706139561193082362266547338729150257632184807682228983234992719249621794287865175808944770072429294490464670907558865378845861781830617348373659724064022618489019943736067893222764177055976627143334801802937735951393987879363498887356979029581742143882952061825091129560759201670215977853772062814872476317453244782515505690168833585219223254672568093764322562098280634954157636263682734706864061306693081021763901112936810210291462168611692044614439050160904672568150878594105304562011535278444651785722200950022451720451629417306896462054645342888565341264736293511290788882109466331179535449411055322626582920672481524835436192131444566708932284950539313456660794201241775550392248771032811594354289277800972605666836939625661667562401277727518946646076685394929062827624034031617199374580954173595698215136191730327649733638404365672970014770454796841848827537035824512881458001953610722300751102896078445425508603671483204892031319814376600210723684550843603131325488702424153628822183370170474745393418269068085243919733584298248208578625499168953805870499248183382148471389960933916286358436464272887572390819757268216495406175601677777839925608005958807869884726843690660722282835479152297099032922110367483638621633413135904299395915515613693607663433670618791352992690627716782200602680624990426635712915739345114566881237844984245730929191422802672260371966910601952361812797529006282433463168670214440563998293087382535276765515110583029108447341408403967053789546399898832591813429310983875507084415188677643342474943534649097496544664266744026388411145073625704603839843970567791840136884872660949996410746018944545966280448776718392693441668477619969706610407595854045334170243415111438988595768374573653572514833840683971686531080047588702484482407343747570434723428822004393166630628498837891558860480394548959752383821413501695611375407696851151630903689066871818998341232116368479818238726457418851445736406306679688302967296550731984122161578013694637563423520175896706894044758516154426022040040578985278707832388208535435269772121211935307844703503079261087886652050774877236724445367863140901379684630761453977728292832154040713733289065660465327183071887347931031647136448397897339145941921828895652813145004210713386727016180789057449186494195454473373669748022517853857952063735649205222338354292786131188125800034684833572229369883785635597594765157009736453648956690446810745182552425269210075951227066794207985323468458842968519983568207291655120791281689732454826155682723263463381782287996834757626319526240463528597897374787608397209950555389091254505902192496127347292507884377274396591468155600194082400329932998893977312291117630539983757365654123731549231524169294932987807940229767870399081742196856006022152718863681128551476171741022142789233670236500183465692824466194384655923627095453935760885169481294089007747584966202966965675458845025061719443974264704621692101556710052503614559701514290062989991757914372835446741845342231653418792875502163906215797622080435343103173852066524097897845609017331084160312624870577190428975456382438707469243402337539197546894585460499167482113481585328914163211377018188508971860614327666697228010266556928359891773403470052597391521209066634084585406271528172262243588774143923871353607051932660622427868960366122375561456382856048474984448929238270197088060895261007446491218265899466707866757185029796800710851495260264380829025019837059699059388950266660281371115217229701961294230441103848821077198571616603229962083087351565902948463411186748326322052497350664343978776497076964298930159601614296077565650001013247507740827733124472509339068432550711361621473911062826084081093014118840009941835074205559245384804194176578547946502080586238514869234813396940907900163178844889550099610533255278146506313944058326931900820624822001820950370710708595211811462709898839887603311238791605659980294778109464474587359175967388276686238045945576206151699995589578216387679482922953093518071919567900668618979514517917614729876802697427031339142529543156807667083911137356320949389608689488408214422539027321349890501785160129519467579341860404844116196311595526914163438322151680995174358225902160127076804941371965826203373575147468444415555904362592597231052883173256920050856632782983225372917991600778231968026591061827582729588053934693602730591082177687220017584475666248743327183808992015268464797087047556234047009182270552580317474252856543104152949220616169047582675001164971636532853660593902383803907686755576914533603777680654049840924066442731925877093410428912771050869191754193223237137813752623916346796703944064929742345697193722663476065026092851717283691244595190875455972153417531966302750584238717482966443028030240489678675033060437148561010933690054808347659997180940690192866063621588628683601798800502433614803990449122475747211300309061187765840938904311695224584382325900604217792033994140244414942721096623952616288959023095759729242120462214495047262320904092777874635145397103812134897932512291276906638051271500835930755570614664614055724770087512104186645373382945092630004550361169667922660611310350079093987240608535666366816484263362406626544581780364543067288678485320727519939532995610480731303363221184882811630409533724061950476588999298852794520606007122622407829428406715427097440060095236112506332018255010949417308502728799634413685175059113655893035481809798181850765228666288016375495963400285650785588974125072728683561894465265509668124005626551748292236180457077257928846260651646008322443191478146388346150741487348201948777251797985644042934458483249981015507946426959229793174828406066024107226812273106659805191899770518326701519245814158244496389650833124099595281536121295777917113204435392675928301629722668117442371030361136680537504340966594568696100402694573389253444170181933792065431404231031365145281740940622565255400524957355260139937586198249983867931285691562383011213416776438541415169035068126115266244049808749217753375120244933787559259994207240618543611264581029053688131560501116628271284395435009564361669614379237702693170960546138981470324682175969914196049719212626802881004409078430905499714962849420892511049972757506580299108888111213024624877303161665074118344727757890978921685292985767073954814418593356023168483456485598039761310892071007870505316853891681644199450718631233889391861370758533998494097194649978894604249137992877883953837187051433359660739909087847673880190333135547504861146796569522062037881913922904939203632971958139864016429327196412012605753753588400060580470119924701707230255291712903049935610687192159663492719251545016275366078780775932258303434214160193273985700625660217142087660893276967979716137028426561188302081718176252173626056925123250384470855342444177970278461605240148237851934124830304201231777885204738462534478364789604236147093389065602728220456634945260669472331150661366196872482797284067950715781254714315772466731201948645385494318241465646039600013149879615682799886973383584649800203376493595029598420579502336347359891694155993385836576641010799909728793265082046897504129359819371267921431634290296901562994569210017610454224439167188266566427136268948046152974482700740541362199428484737447583598183299298528113404242835198879156156376721619044150169295189186968313364189667138037051234881013974253657286181878742178115317540379303396704693767177446471826770219639424489734621309100042958413748683533017620282050537785906749121362233001015509733545537091525431087894916014142048941408365075321987686023827581338557781263568971201872571238537563766321953315106625211702605243523501114835890187915242270631462193721178522435799987898793887695369312961262691688814854332502681796988107764059464281674882751531445401993550555767367408220308922844503680463708918774111064602444083545184174582490043692609563683573748823418715378309934671629665111171088461500031587283617658902598333092932684578571637318308809711463499230118087868054902068755887570326234687775863150744639709363570103560845092433191138840403863229147886075903357506154497643503185846031762797253395900938778664855294366241605640938586487242804575602880510517720114464184874563214606004901086870922235340576499162661870730470224913878198326791433871997968292030552367810994559915746568921956431052999600249545833509232336173359802876365579280416488997092425605771202926366137069962591400585337580147958122348545090910647194503498977972693776854746757234652140288115300897136705955132426212837082130616136585058537698581843529147989477543764757612193352218827130081074017545377963846208498557295311576977472659281410616970882417686021083776050335467148277297037755500332194262416980599199792428483210178406421717542215749365962736240760832818087354753973758175919797905320760016780053953399960838342839149826816762244959660302369356881500344121857758293912037157099008873114902922078447999158980336793742500954831308727829192309937066744889133509405041744356301085683411014407312428167038357510754820484135656917563462012837241766776007782967205065809980908886979018264160987272507255885988959036007180392352862118212518921761133128015079585270005999346956782727870150197978519014572191029007335089044972925025907906173482149629387999609622107922997477497542718508197077224665857031756245542640823166399754651152511811894424809970621088622432932338414315349881792213960694979780270246362305531985656434756050421107387098764683917309408706993453225124580929531515555571841726988628838844960417479232350405733917822920975051367516619497733425997123207483630559284973147983516361606329729791997016711411820725224230021567242530219829809189281720587426486885729269226806435844709070318133840736090175492456674942454944992102309914771701946244283234266189422859612253261865442114007670782784561737983199384166060869272289795821832121681434779539774049609928180599490471173784528063622394927371402252010288114750555915887031345059010946876803070339639625215973299812444002240323723174140148705760914465546193053775938263801679085426914827903878107078763297058219325810685572313691486352620872465849863335112677925019603455254831716371350728594926769119960736505632116129715026139203648173118822815800407236389845303924949406303405860651090521040512743119907863941331769433463983159290710123689232210374145511759763070784936883195428915759308648853435685759869225477636931552663049029319729119550900536998977898618759146550049623626968746923364332838640561202848382491587373826345233675954587179039771957441074721952959817810197302275235900092005858258800177413658641599877791978673585912405891212762472978674257351461392205303544308273360617802802952572243675745130342485463759523914518245023386018220089324435093006471652709805563345556953682676729833635866602040282328018903299945718839409588528089468038018667528709377390121446136335631448980460967283827194850938648970965427895910338779689184794020933673425660859309053440504270030997462741093237809036322597334638128714065603037094769706560406119236320005822869265053840126074610488872200791973499543172596113446493325784046724895257502204881491313127577595157214129099361696211055895861414835503652173256848809717337870279463477005006503365087817792217170186736537971382441295348842197155914124749082850059290345373300230569673592093309224750975294854060870739291818283568585475630765896856475433521303943255834465474697404145113081348995351569069540234730773345451239886897465143094387790859396555524592767326085720921023031369653004075120251779799500040025237191562566210368955500756064898000834607109624299387251842505890679192349322917310284857199291838847744180440999276268368578918826104783404460945556893327678138710584062418972089072566371345612732988445183427477856072712478066111496712307708288549954024472018142496693624647216777421935799534447776620980254096572532080934828475749095926584409534164637834036972629771341194006570864803356840248731915459478514130360868427681783180673931146377012404678681317258018018329067013484925407014062137842474952273386115093744427111231792443678584623647249311086619231147251248909614982404416017826553313963509987121367401881141711408597713443252195554134729729615226562602840366587385264431818623283879716297355292468686117572683634247190964426445859906354681660432139494738359256199889970021735928617869197051994646959656242466900263765188535697617491204703218373892656711406433550112450855086283761982669027076896184862572463573695258738912574632362124379422410794093285637894973720076121033608597096417782575907990369123296945830743024379114189531016309608727070030226316235228974574722327714898030488916374735550647107597169729339633895856683117348013371772263426441180328095437469374626506074218660613265105028166263566604746071630836659181909336363066144401095181518053047311743429766041302295874925828422980005893144606618494087284846615206701481035175759985764951716547938121031978668934157051083927675338481127062901026357274237334007652513300266993776067851710312955406532073483924688089927481374788402347740508568918112395046078687723186677203807775297300279871148125546132424169921817904460791039666383222002846927241857978345462972821249512539032506872754295925812939044402087117325340313437212209824857806865347787833567813201482859864064919409293260195838529814314027655722106169046801977167505630848747327833190684273975854591351852801703645522588650276465101533660703186055581246325237037502364812197680015838464847044049077142384085380039736471237495262337499498190395467168984668588014372851029235080194235479017542010225101102861696629215667458056763851780406128330922719122019117484880774577880234184694022204640142392448565954476566195982022036509521690524378860318664606369294684766650976795928248183048053721951408212487926356740033426254605012546174886636955097214367103224078019631569038362641109090746103139115398871632333958498729782045981762068481956348321233111269333459227497657669819383799848726388937557281152755036658806872223831755483090385629874867045674812878959780147338780964186900858056314651483566436910334152177252129123209709594160509841745906940802595405030638399418109932640024826491077842573276723816981537728700171397418027696970480615795734874120808336676496987537055218267110239031783578429736546238285152816406640891775435847865748918652832459358014004960823900597414132222686258758677379451158747103385713033540294853097343825425224030881062547018330252066645120491611904006997233445387661775997262747713083977193773725947423875314358766920755247632538169574921518825867934003979162599513111714442525483103824217894508903320085274314224072257880004028158808783727025031696309592758977984193367058001116089554256193984216152910311502273821153751544842482874419868944628905946785586616571688428923339715395107889455389509072981871019955060485693816447600912327708822973267105357596146856178230130215698145698579539757802119240500100337758638041293659432247362784624318749623230074713508534484297448719074072309506084245522682738643084184222174881576987665389918232543322668127936850516581177556799750147264263405217620093764545028689859511723156529103526175853188774208200991461881849460442631016817392962053686231165561204216125974382243679434919756779917155311298658459009227144878293654205498303519936443075720040883428223863527238953775441658782233737970054606461082229244345585181122394049716203595689727162208528235073018560964972692890540399145231819848901689810109000576911141494673567524160947888112685328569307083925457372868960495670899275473874103239091996099871500476136762246583320234569927831659328022955916733465054786413293107229257667254287329341170993450797762963026142781095979523160825298764216178691798038651214105929657779900612325060660261346109014255417605697913398848948524197966581939451966589445651636692769175351468250530075291324425958429919500943574065073569060231397353112486052639811163186662484497990992634973882223533627940780799525894284297056335346675845251891816014138864474069736764710086420321522200336745621403955638147276941665208729007198617723858887518377015219486729252927458560687942377627119555817374992024015079756126462256480508265261225022288867123207639414768659463854997303401330390549971069958638541653513470889654935794554794379572061639363156146886010777172873585888481616077365123610116496495670729345419265144469272455190740169433450308182012186677441119141283811796214664494295032695776708275413232959740924028059525624579912996161368744883352050382008538624056835583571726392025177071523233852883406509628493420127925409399520335046033411539335437578107713202803855183928598173013712115415705021081744774021967114396769673045422196183932460565057348808306030127163671451687673011934192202105388962777304427906687700375152750467559773339512767081317369339428617421516689369313837158125643265750797219323526226297904240152175204148452307973952470762094125795977443553904496917077190634712748708323700407076230272834035235523883536961587957432340227353004721318997545331413256333732687553322096039232190627028501657046180004701891226747726985073550359254920938738244386866522856542290184523639937579764166093120670549051976613951142282307097833702140173511428186336009440295001815860581135139668825837859620322566226085687069358126716529982760174098084164458976724418601123799663207273979034879004420423251506117055159939429248330590865660248311079188941989749225263440587917088494379672274135213738530559139125500825542390200328701800517482108105320125264936906735021260473745057916914427063521934266073267767346137199728468766363876147587326283444591562084451505862909587347044618893583356543079618206269924801683085060566553833744094651256634009559553736825945731571447929647460644234220913222152591875037336692116080288639696249555346538678924066997815985415249816674464352485948640508124127940734943031919475445899097474361182069346779569756761430552564981288339330432290512724233002417533082734616413121075277820301726045924646256977839745585555688262237275504942423600326968346905575700246810529953591672081340953141842672371275525578091163059398056723823499764989689633754925606279723620400904732816468524294109899460361166736688663914940185384541590857476148629102847564840435870653237737625372483495305433519561528349122017234968260916934189068959256367279050564309270736424239664817563736503920437695411563953262170133598341762482621184854940231359331968549689617951069989031074794195637994116376084230434073774652632808380899398536081169536355490981250034176728466987145043438448880835687583056836511635424060057018989494830173429667843741316390016331496389181664784205466431591928184027891358809416691972332191596216099172746138389024593683432312074217717804795528194916692402178304329159364530845645013173167776196465050072238344584937415810104800580483979621634936877368426643873394962108061469715202657973640793326996830597127771518941007997793495067312431703463592122453984001560257168929923643574516479922405539299340012170208570541257726948730994711977614688932172158465711240990012700627181650855434041045643748695986455174331323852544021373691227224951446698262128726654588689046193461848505724394482176075062244097363740018616098155135380634460988704199008290210438152686276127811206756815095861498073158005173885458813380811674507205101848652045473561170212720166290796665358713055513245725404158673730553463216706880317485325001605942721225512009461150388663202908660148226302737929561065713226882137225649531456526462467618181419809662972010752320840814993852767870207832514504024208911038726368694604892269741709695433119620947779906367761239410857122560140415006199646110265707167136779036982533439446136911057420702531889717959055604232714911382129832575958155452708894646740431910676495086116429422310212725508113484578899714414207778486354478591496707680347217064265022864660386136691471350212427701007695143212821338099650211299161137569330443556427229159471250885893288475945415994801056719574556061237893905596255218317578676563833942273659926734052430102088541961937230872285191676353726865852073746104745441753802326878450184426439242562405204328714590171236007143351679523019866860918706233167361696890705788516030811281335917852066512885897327264782949795307212172085389092183560017507535568463980226674365963869893751024415148529176745613285863321308947555267160101093772239355523796151715746867854929459516331771751582793567183946037290663774112906125823188858493100452716014576067595619850342008451235133995741970848692682932599556700626733302491957994246288285402735699155492937775621707260653165370928880896856500129131901992988752528954352278461452590172325791302580898613688911438596258099519358400847463314752158216146826101241582325085136537868757813312588578110354378369971682232522725934298106949071664447069611320218607965767930688708922313378239261124908974150257035868354374237220403683878444300350089224481662999755552662337077732347170191238897890566639579707837919243849555152233955680797282498931045752287150281200258679161771140858746818398165928163978805280471680133520458858203222321297749083223416834155938390349851754582295568629279372409548516671644497055277088359253410806599350344013891144771051551318755433573287364143275579547422364214809045986730023422381369189688115104714880603967961834684959785880863314931721452170736460383296649741018208008163154279783303887831740270809456699279779428862092121151451103322537932118561962075662331316643304707936315228393776851417175743997007722836367777581160759644624723103047414915818083262899052572635837884201008221328038570517256760528897542649111124918473787949093373687087279525062856961473015374434576872403515570801370900175432059576348325093688359429077850706578547345027666739900479693882400011292033263489495931713772145030252400633524677456563072399394058488937431942559398248370521767554803207919863842133169703413623063217325433646251827397264798227919235482539814601690397310132187265073296294732272158758915570021530951448279470310614002415880538560852953654174542353267124462412897792538816326924201643455068948422244583060577852330949238264573445739532524148282741339371604358512348746632672704309631056216128374329637217843160079368695038825331080152563224869282666835688271666909497009351243673979326156058532638822528149552468244716825135202977105084099784597169551831796703754890527868109462168529526505627081194797940852806292071967017990562349639549714478020390305804823040470434429927976225961615667630137832660915586740823997373583353357976171343130132183193818482717426364426644021793611657589761599620020358028074928450678624385605829150171951968501052422784007537275139528525441709718316518991126058933919850739471391599335516396366495191825564212104537422447220743194200707350731399681974354201919850015861046430915155735021550582026031102074981526570274870163070607246788290579198958749819815509381554053268238462942053256752103717784870166702265956845850805018034292529931295331012008125737420590537513455044738427562407303731016349710735616094159478771614548966812770473237261866442516068405167529778519942565121307852322900640469289866039842392260703661916632218630987487028417804883530460184351541255411071483007812426613213959056155487221567639487684919980392920392698306775130815064996579607677184651869943588980140565428783898872600296367892986917216086578850731625281032201448944364896897155602292925164729678863560161383715369343015485593420379710315943433218505468244205933683615522733335860101383905738074618829510704354674438377631367800383100384632988489111160111262841711042680365049957747558511644364183559942440977539022462917681000787864679252499603665393139862124193868550521073750752625645238992187510342473299640188737124245620275603676140464842004444115317063051521327397080070122114148899306700075496936492490476539426384558733612860870971043313630262092697328987759988350153196546803407168616113900906345376244417676668495495983109019390944272693808471671404119470006043159629873932130716262145395879037384604125850747446871611049563962768250497255887164752785819170185236018641646905996557911241856879121913247738272888042820373221994724891712701573846575314130314156675444514478581597043727524907653241021342533853891870643649468363786977550613524389881316617635084137304646869562951327397158953748648143538308710526224655221082379134878982904830293604336125984843980775787660112574941040827743033423000496543576816244647409604506296570198290805954303067177337667585710321146814687779398436947431290140369653006952769733343554293213891033152311762409474979593409629536390104928282675313153816378038078293165014491775459010831364854713687234080392893039027251053573852251606286502345280604722873789282595361271487502943752990508521801101559265901048097591356334513504351531895887121451888679149230274128551915693024445267459729236470099843687863176955929515759692736143522880228181155277081970113752140975479436689494096622910283114185926807654625838263032903349524170733704780897135543935719955428184215773403732822534020724301440353592898340421019842927182834148682752686164464217244760255562218810500416297234015823258818467989216356323594767204020154133430394697289405436626373816815152444911467747015873302975420484260832646721373849735440495536984729912162358046377485298802210683685753101997746371310950360507109426829741099805895969308972416973582427746446789758953322201487055688710809566169186509581249524840409899518492725142276448018024600599408060887651416678541807996173736814661043733933232915245096179431990121149033685562375112025739647126558755242545727268231762560446380828698765327920223953938242432545186028963069196907924073015188050325558665617666897876231676801603578737540108892500871480598079169246193757907747151130319350327553732280001667879799355759527469082495321087929042300002760037369229326913279119294294533192267388589135066775503490056368138950687144595009956434189344284796856873707526152838010628549955176554559246918007832351985439660983368234897136549686852352000748364178069505403306483885425294954024584713630472159584905981447905067111238654046140844622861911287529148992044705312042452776290212697784159031299570420201422391266478732919286942957009667387523165255456165193823763616776703059928632078545935486974153728045793614245592407081445917501565062951187799987773078420725319312273691483621067808104949029728633270506095152538860974184959120680040569411055312100033648269588056857506612035630692608219389556661017876290830020230502406168664468360353801991335746416451451485481897225979214674431873113243297639452313563440142196930473214333110241849263478216473443558202107974898468230833103456385030071440320909662616751210047760887346151468494624743254857277623344490147390438534781247261517891392373369828995268592304236733240677563926452963723317655843088757174977588953630917011757173564995198060873495620746124084053769947958582977638748816971499969823560373584859213097199019169422232145321643956868575487277964828069549144658514770325449280541432503210558947875173684599212239790067694026096177493218262415805431046328439573423824364851099088399729376660858673291373091829771632384568416778485089006262139147622133752422503981805242345447280127460277412352902780915655753334937383144894595626295222652581494343101877775441228485572959845522228315502660671661099675285919055907249588929473635385055453103708816801976189952804776067890080211813499415307958819371445926470264724546010237627869196641832971667726548598990169970227617726819574204973713576163545467094143086819024240729290099238529724774269934411888868276550250861453059075295542640814087574518825540881484630770997380083003973009475378282505815582802385023647427893411822996977168849843805262113386072986178402468110146652645622023824326225090400076258000179148977814555005938506750294494897756520191249949777763427368124903353200265431959355075838004843113956942251258459362166095981976307859368984368773095178775767791628006049474379564526747129773336998430032889715412156101436166035528797689667259957534848260651802496555846271595248801208810430246301197237168874286401033134074514139163834008647377062494657067213046754085898000760679706821180319172054175481327142211010030662378640655578279148350410940138251158732873109564766025009151198789371497543556336357644374086035840787056332294637110626890627528059988235170924426386439006061687996790018618838312916108089008639715839861654721857403900175260458462849922863933236001085018156748878558745657260680023331152129632138023463080218753371964663265223546806363089456772171631704764975987669149406798579442246758011195138899261781297467007904045334177328171336582341286806625864604944903208802939150467527176813678944207225478291714187090265592031386388440237881345542947646525081240091115742480941703410388255471311423536076758532517835930172519545658129340768669600585449099920186398043890358144536048306609031004058066132239700238695644204904790826273880048383893740609859662117517780879178615518920203798584793504188524276589702398951413318510000853634927701345465740190278997058530734259055587541684522887232119984576148165109678782722983757314852228938195486032734168850326091551333989386357485214970033520555351659639197055002043896847681529959180041566565527250012964662411054893216244264505747094846902012718755506288240560867972853782515464903433406758791127690550332550621170317758582429313474039745797076339541232775475798325447219900560792385735415289265164071455385520579020330834382403989101850471322935736541387763711857746761113760642481862264715267841024959370215386589495596397012873098606273928732326757774687574282921302934613522709313992417823041525768273160849648911920257210181184080712304792560661169032514336674818336713683165303325188121699563221793390634540386678221434448480369844650294130720917493315425137411137774919897223722940220874904118748788421488524968696973317635619099069207184473690777744648273732319317279274648239564191065978700259564637198449922315972449961689658693659698878989857182219305227929513420185898988273756130799634315370885307194494391719365140957498689465769998582349502634714949798471554866319796930141318121860440688125174798710869753047565274328880551582785067520945193459150348465126540487581733432224411292166511460583306991956130404774066319388690190995255443314704698328013378276560327553165331889342523127746483022787079794822579573983427363450581363070269965849443641022950007209243561153899662993275252605894758112707699621273681607141859760745658349752341467161280667255610192710158411645030076088864215229238170165639084172520930374899042547756986466100999769991916375351263459117536665818639395128205968093925167704784985388208025656431377826357927842843497068225968221804510466617234008137410052614711680123014310698193938496643739920481624380865054863749377188018549776137757220165424710830812679650466685657413564362637613870762531587593138692647567530358322777029086681705787904991610159069768867596589845930039739664995336410284563635297128530603632230214854656902803631151324883424504300708255427616105369058207897722866033174536223268072135113511502164130242968075415234994317654077038163604123850819755811976685707599126150829727032940077759517926753348026358574500357577710508109754968879938089538776949551455745117914096550061669774146231954937771199494579119390523223592469250171023395207025090855184818369838396924281079262523945861914926684443109625396270647795088336594299738436955222356882190308305111022911044107638575862880040125259151470408353290442595170535463654100500406074358886793798059350035698016396998543650285580188144046605891665065951388092942463303968664511046375608368420083790539262218639591151241810438858295296311142329685040462592988175623430189931189393451456965327230629857151936662740959812360346117400006982743790486611808100002054886035359539390295494215771467477770039461109799333159102484945918948398261948162996545335968067796963731503377427166938237794751582407520557485563109310941179237133831911649629566924071619721245479859650098554378596921637267762447604780722054405494222194185940195558109030709170346996348865674464344554629403386332472159979693072480638681514469239792486584952147541650592791042329992684894649879255925448296080804252449762258037098354366300078848058364613350957463306576213514115751944237098947463862848544521360056581799470822202883953603662356990081119838308997193956140809389011374651442934025902011680920928523544629999444776787930210439356461197209088739758879600557168983667322210281673984369881375773139725927467892580218341205000230128570594505822604905538007498799050245274803886727607657315756501607851571673253990267208744832997277629933825089041407271421453142478910369116479306088073811891263471659039040981766395931178617788846575826045604660394374465272382007070504908434410911244638056229803483949831817829991485967983741096618835535940173520403266586756705725704348056248819939876283811697481739912589589849001626542983598106866066274109964804926533873253830531575964110321267167486306240585599180310033715270189477749674468398666706369996203947689173109065906944037057031131850854276846375238720470196266260086100390834061207714963372704295188797143609850963152569080336682523393035694160525824316706016073145443304877754345745384937858309815456080514900005407528356654659845707967268299952492859508558316685502707261329038968023435658355315612132625218077697847676349605231624001759161708737904334943370957001585165642739271941211592138843711300717080007442720211153338321455761271703857103502878866619102055830841708088849851799611456887563711508475714283420658051254056610596049504559865032308052030812433871066201752238907319803000440247395841064610165834265576191525629186707274594009109324624740115171619221781290380397645186732356120804624088502650815607664392208427918760911051787893756170168762554144971184888020613160115223245892086086081984878293090519353617475406424052620464515406590160288707366945381494320137748516116717057209077483895682153912546054551057233424772154337197944746865411016995189168037265413549090578270826947636713886963040981276539263793737662510413651224497491180452916256696320863225504673682127521915300155753426833922778881865909253883331096796379082886687763003227297382253506052861374850594644002301450896467715234123551604024536931547202432147538530023738292025067420604254698792980706928348214887089417633156789239688312629126449968580716551728873694765206760229689064467733528721682476638597971151017202508763868383210855226181174053099523507175358678764250242988361835338532926148174944826418429951570221729349170878924579797477974246690176644094823902725371478898274385778105038202674487112734430650898556268039522319003582962400809122829798240291213547851065850799625097418361120537899453647812268803559484784686303093146671123031762782223060851169382028870304605297376424652784434377231182952989536797343228061722537100502196163105861170102162665180434133983380684937926741685653876815427721307949306709746878341938146284726293277411475292822471833548610397032603850461807923111174104364291792751629509029367999907799452503705937074466440766143500279255863642087623919349074110643158953225900251401605487358044651654965814992551123548908298067268341970826646712621379454928758172766592052048095403699169289750233998277064482783150851844972585506017524856199322687257130938533402418922954514552065120460228348983985579493506912301893423567276478395362565245744505859188773436770300153979943712031259694419755570645162648137526034618690906837237062241422229198816534532142266776297246544140021106498620521405506942148175911453485108416326899209926127858800932845961634381125788728695547760589223790065536446359834623670637573692568306659940476923901458397270830655688228950544344853678072436487654935317309088092878336517205602532940907385943262130857703044378719270859371847056134418371295037037884832425054157893854826557433943993804992357012144112052337232090264352509712536947518762915271202945631094423043887868786175231322012482340531026104259431118760790424294140717877453341506627534472382805136252450518625140176361252680170563665827187792478815040038305580774234990892967137562669576262657765184642777446769428443846519813324964952044034236270006477244927618828666332809149789189676441668611773114950019406088951947230214368541087817628523440553343506333950723503644544720729244085886062647490972570299759491878569096612004798667883858149484179255567920639735309040051772790301443217730826339337596105769339439238191906199179211430370676748567535211203906593279706057514577797178677128827705987283502011447260553251097146138472199997539149968306872003929501072196140581062493293676919862744312715514336955886720704771466534612107392299738433752078513942251682882575014706459174270520909275378067305573133780374256196255993119960133537080569359769779809200816985405347160338923473449720539057505919297354757928603565921888700363804075954208108306455125385662737632096106106888326232482017971682930663913384373240165504476021545550323275824865139534881825054730079614186556662875396090860487021263076693605901509353920169520054362196570024108083020149536429828718178081249281762757826328702634524169276863055111367313478685681225457377042090023636812763328629911877198141040426037789740886044677708608966707823897624846441808226523994995152041789547805777809083043519573176123584743557771506949127261304340656964383184103303229941710235728510649791308941665119316795404182966333841370350393670840960950430639653662897419194769554233782435794131925137748590783192758028476383694444785958272281723506230909938919800502610365248068725342344613538137605889142582443285107663525087698601521358423709174656927428360500500339110788825871723505075117360531529156405992041669819436561551072562530629194022774195500234562857012052733128092041345773447562792648348605437907207056029128511237178660682002177178960891792858081866952046286115473105424378249350873655529924854110839496268112226225597844027930097232065471305368007027689880367977967760892024025912532067570454476309493329967348383513580628910228040263016982839690575956276938099798454839896975232570741951995197226646529595643426825505784486901148385849615094649563276310929274229961419087043952659489500940191428808487174045898804213758870348140297888973745967078454821096433250980221810609797743585288923114627489959118263149590323815236870492661379894131978441838518460026237805540797608886641296964692718823939833297003904935934524532983929548650991546317286802468099203530990644379391984055577791270647677292291599917402073671101247551323635980008402217532394699262445401912579184239986962272597572172064346005455717564898443552601219035505597977086763053431073521577925793371901149375653188528273822720544840280215708260863386662230438779548048885275599237346544574009432468524620133695394689788678289503788287237343554174500941336871413534681932640526731094936002684911912426922802675110172380211524819560296099071599877743902548029585085478602691063484157080339480860436753888974320014201538193378678438232000605258025740982213277504540858322160248737455100524045333348158886776861852300412643714630181184694087052192705077126273555740590806428657490416022259675429987704898763690620454341394180515874957607283408828114686002707389418252446553187403944929702566560386278400503371304691930975924021252364740189512390330175897625537213825903217811898816920847406325891395137623006453279513346656194963868180232010182529484481730813569611714278505178413574717170240297559817505933591953211390955838122717215691712073684272202451205772187152747278530179120787631228169141111789321934939677028657019500781621358780465030158124792359264799575312157138614575186038780795627531128654147371294626638830030263865238512268341753125066062316861086703334519819928776839029820277697277627429890637887983305288925758685667315257270188557001602616310774845873224525140459231897056799582134666221184451742878414823141291398046707311265043606082436239448561451068674431104231076097622292975872870376666981714635469964077202361079316449754162634242707680869175691909927027642898969219074994821370943011472550716349400372107107524899093405313465422739366123192200739113484499099491591261581363804647728748175549625678635574818522279020018756576506778107975098245995179097047272592196384485366814206305504430087311136706670707715590337183472685180273728329647119899073185054018896132923172318860884408324542060826588890360827879605672738649800893040891892917910987119934333633197972752872765842608222303402048397288963564038473877375376661545802834675583984349620848607689817709979376969003530442879659521568450823087762560264807697781880320203508290143084293902632248529884505833097747013657557191612285895859582510467807435198631067092024032286147432443903384525551400671190087231320687011937278404096095624011206021229210361284999144654937209181923142566409411235065319890249321343363051970467373079368487746026933266599775272126673916831719663729059074180655547068915496217095350636653959243600499181331311016570829393718845324866585017746195806227237627888057555038790748589895662848713636293836833988164090187591225901443982894368633530324810753379961682533459997230392292297288917939671596817409390338588798130955618285367747560198762656234822409776182810291380010548297358816410263622203512420173747937462618128207502003558203947640822459851291789584145018907391385295207726235853150110929193198425511256091949950235135396627367090313550243511049916384362662374269847141779310792155910140793240089882195932332521110943013039699000606860151563212057227859491132210613280778328235703602337662699535897835484233250143915524477054195934105232273777860423283682750046393674296947844210988973716648139078249003991533974293439444500662804133514921596392963477776003560593059853601941955294165971952833446872362038069631031676811801909521797577958474724868121616442897618538148828526018599948084660989223587565234856823449544823712645306495108234961998369766597568207680640694149645244914101258849982868079211364585113482273621496864047672464619821736820713756299307613978836633097133160469647326723834721327732927267790852653233172859431543018008164635380095341945834723092115402831467099248572592273940234366026907849813440588333999948358296827466829647547996403707107932747118650768156389517806052034834068995190955987549982088995077776861243527637847667834433261922631732406153398391163972440384580257833973110650954425937375074315268893236505767115941026228684615480062153374877622502851493884944353117664375856085343840208739420733109013965547706447216776696119603297217558428589598224555243945315751617484058399637249719572510692825041471138247555489065087659578067785653288897852475382147394830980921302007574166793374794997053365532863030862858526576269998758879056026524453007889354292802259191265540716963496755287713258499753822685390594732247738422533679836508170776676403529443121347884752257430690697233926467279577322555325265967230523507979418415760353490268124125682463501154859328072484656651677012074456711455296425276624240631003072529030068117067084252752458158547462977568316298974580283338945729411199852165465061291764354353260527722009798876287322427403673110124298243449965552038633355226172002937226760659993866054358715144058039043455530682181095103537091366631626569564841950967728141539818146069013888311650173566460211561484389918728716695188154147253514492594474686926892479126474881764356870501575072245006415682704079929391936821464107546052046162490533010592412848263941329590506378318982648099483643674094377368888241819318570291162398371145145621456269981556210143781896102351717430527889971558127943584989781573536027830117615185119202596581523053308547469931578551919383314722617752438272491197038612974000552158964322111319296779019053424792983120022178553397395255386132411743004665484898235630219970400772816635985167960345192767733523268785150155374222090999189651194266912373348395155683455999996880739381999601873970618228941660470214408487284584771049120128108302133504184834675387010396083405841708948320332140547382966402399520562597233534745305149786019322240168047694868185585869353248189433998539139519890971294770200430108526992920806924778893062978680122137924290068507546558893337758084634711651146197339195362078050535704695609152116858876358412030256721150940843431959322734919038225756675550658572416770013175153373364064564712704434988327191782022433011750358963668680912386638274977896280786322529570566603705093503219674388263507087209037867852243729107054154216440806017619300403500972268071745554857896220935825624478543329555778802126395328356441830561338976108295131040013691644135237766546440920102533954258731430126748256138975113438990532666659316989336178084640830282238633656786499105034717628039928204666969065270673721442354855567965917905179768959831554450914188978980389449771535240057075467367415690629952460866098350765889724936319042289940985879744972560404171844307378322610639423281246553511602664772171237031346471111447176230320678374188664437124669905042248067731303269494499453891330491654594320170813345046991462070577199930678277804485133489806136178296789613991108395553098831177076283770764089646669157291790713575080533672549585807985771205742413574439974750863499943952597174644811981470086038798876599765367704713272172409872726875599271730744923270175549999101375374955371157966276365616589694076499757782780521819268348471431174722931051272158462278659818375801245916585606495180898291158712357638525934625536675477622883639062526916256869768187182602969253814284872915469030312714971649082357553254196501457334484824020740308872595590447312665238149815347490975357240226546575484329706415351466746885513674495563220277089230457953071109849278685552642018628734476623910263746530026863536674145822948243633241206791058411441692007023408482227520678958140832005491690690361511459724370979083281257567592050017946675804590974552531275923165279596122463393117903280352791446928801544774305687791079075142944456286888920055874386861800235150853473383576178653872088724849171079414198503564145790534598962594938573730292672422316871219623650000162334482726327407855573024812164540392988361959088776817422786185249254688682400172908779671464144546291415077091789054507281155598067110667509468520663337566590445387786919375173496754674812404204932884540992827499576275835227571896985182526481246039450701689061615464199020627125136885848346307837440903709756367021499605498176670470753877728190695130979485664887498959333972340862313010440732154295096103815387120605503036440942549818626876706908601943188763589061970623037519979883874858083306390428664495006580450721431644326588647733886144223565658224830145481514372820159024795160634766184804198022852829864543275974277340584887959245545741925239230663008626094986439541165607685210974624000543465256226938600150364676227077308262839439189599612717934854129928332618297633544183609639171339636490588560432772112945380012194344126717105864116727470780820178935049760136814903846353825483120152529338984622522351189540914780301461944401983974984697790336146209930396558265133881481792544668440454268859297570370086572370101429300494269101266168511014405623551078165435530183781199692625448222418784030866301875630612625817940088812408651920808308936799503590808838181691602877228840003657387783988660768071391457052596301507031617770719838254419325728248350274319839569016818560322333045949476467815814774038483205002620115688662240757573275342558651779575499095523812151732023166693627930562980130169386693027150144271724481874984765806007514269860586894039822432322558230078143318627054258335326333350931987126111206746797924029626780897550002907309350976078523100590406721941747393008916729209235247548884036426956849285598406996939362959474875638935330897067079468331593443152269029384556008983258789258355338238780706493003254147450340456444088312203812645253584077122842155826574179286968507952258975841994804510020929084676902501219298238016168766861734899350905022308264440141288463451973237666140882061363779533897010150145975000464393592167332097735981171768843216633102571528006855923577622688346227081732338410461121517156798326019491282148396061502037162381065573812426284506097556851315781493736833273015678681107029993242827589582326698146855097487491536947970543349374348640607030896652610007502266497989509811305682333700003775153610346119857632443848338011245936017794538095791784359540411772665045737263062014080163048297892446509401118446062686451868454809060458406781203385608065795028965696256080011753186509733812894018976709212198393021973532663108946520672523784259983345965699609135362224404359871268780372616903607461129800819362054563921116228706278030815413838497385527491443202979721496671456319184239841565574365497022515486648144121224026930757549648171876003788033947234375737880924973153756888379499717848554076136088173457970123143751602040820748180223199661552662879874190613413911537939615680857287644098469050658673342899539207495886826535056177423045775958168571685420706734540606163430579651225612086738952625768592690887900991723719255600830942917718524675800327303655697608368824761151492110921939775823471144526011614418630613509643224472526950820179192161469852301990452806102095817214004008857737475047823416333848091316815475484079453441701041025353827349409894834556189854122934585666274443694368582516545445130948901989244831296838067270386747037795736646417714751608417839782428193502993642959173450340505391619915243484767662839777795663553381656059811005217256818080946268923199357519217655141409539614754787735704651102579083722340074212861360516807179031517614700469230722305718680987761175973516391480011380413599895091269590872450593700103126308886160526350805145879362369772237716037734598652194285124760264483758582560297034199711769941274220425987973939075755465773145344886142850128545761171031337973178341168045399675824862745513946798951538825888933179436279267486500187180323120593228021390936356538332404768903862139552174748553500747066661875849689099560821691268774060280944195621942013733456865259193446537540154490875784285928950661329324583005632986786966845621374610619903988307477711852276041355577383452433559149851794488916445361124663712711683492340980513544921198454930509165323604493672174138925431045354400016281423771668959025935698745046413125394369047031763582209123493781965431225120270130239636711849478212516487476147538571880531774487086931316705569980792733424807980320052516511679595164921514718327586649639193376554677687264745869901454426012552713526711914091041826003761600684485645134949271386701558536461770204553727145756039961572365918560058021012100485664117263984115217186529597957606900971241445757368825815588485326248237127982384657838609538150032564112017268045481368012575044841059508055198285592458092886942144517899651749828828295636525077510836426846272291600057644380971790236707809276992375238003151086270329921807792570017053620418563359843415120932901185479694350110535386548224965704811679513293290250593906036800108988530930736236474326881382686011938088923039182574290872798096657596621954844428169373819000187136894389998589732115892348075556665624077767416391530527195570693858592755472004378258073108506966471195360315200769319275711968840722406695936220034164922145178188891147805457121600428262347261498615394378134851666852434009946216296651784679844476344613112033222368050290357523599646733575607276624372986808280381861190418997235790423684799357913818950409485593151478561677933582003915795051312885786924424630374967823028745389967124468234564455978676235969660363818345462365028609518869553678609557523870530531650670918102250954837345027842688564718186561728839531136723511898220081372644832044056303571076907041255828583788472158748530426352710750568803452221659075809146348412846984208917607617448141127540091635861154935688875237283231023662260871972859110828111579437677796038419927188472969560597817605176504637192091662928757562690749883597982609002987754511062128151309191393041590681465020432830253926092277308171080715012995890635516251028620477825911401010784335194006859436418760676311365860449374334192336020072673004678240127353292163925329333630095562994070418564579980382798034350597941687722053904592804582459548641019353328385055674326340465062498254130503311439036041529317554760852663905541385383957464285533437664417051018454198670779643693698770386693422060530161943073039662102731823903552965603975819973827859136436834836449118864044066234493878857702920117326864575929636411833992430890899272441794328006488507516243611901101506969603497024310599884304221818666796039037918011856439378003162800071752286041352574550960927773590320842947008022245096916344587640485166623600467375901287829886902054291948744388074061795062753694548575323706920031920907154914187689240374270584413606413366490665763516759392261379742821238202143692697601925852914061638626401006772553203919120598637450876502976006996237081337545443972530061369308850748404667434900166239720037451168870031100077380534862492497468059806842217832432796897560371576769735083152119605845862642918706637622081350099958904365086601502953430279164050271027351259638962382561438835181373615827339987800268713484217591415322713507330720841294703426888673299888488275872979426631059386169693477450019973881213208570959063594249595285063460674515211843783913382893920370765657798887130023461094630436094048955599237087556242141247483747849292602370932261130422794285858920317170135147834348089536677936270732158028593497012227652096753721839564612477774309801048896476399673612367119048774447423438561329877480663017304111410109156980522219250755253004194767340970822828521525049289039356743235610744494706035199034053258359106553400518615941334306664564311467038115452880236992620508600216952477231293967348929998688266265965237505999780183583239919070790041709162783292385913842674242300966176164585317898904261182329998034064540154647261960372445529261133089037076655145793322769528116618645812638304082747968677199764637530137067722812081838971266251938171765679971262187481658736590528307525521757851461804053189472026738670787357367200768933756997889359082071381408442365611031650493208339365063417511084035483058768856497856682601381904662323046673552238422638793899826365489143175713835810604242152875522974552398838589081714155562295614228203215053436065961313077858233119999320965950181619371772597304806686004388541872071748433487175623762864034341078913095027783632899591843828744413927049660758291209499591738582298651094857994401656124396715691555995999616569577261982587893670388870913745686397634587698246517309441593860809529907378971148528081143498250360067309154177379570411407949700097612434434372175556566370620441663971613436067727527357282149552910712277786007174963915282453242144501168254022017346613458802945149609145529549866728919759868815269542661894867242135773124329646880431163572051038647469882345380730960893749473696944658436078699613909446631816516882571573478488548109231013180700033402380181755156054513431470003331102580472632710965999628044004461387950219658920834805119605149376624446714460614740524033804663584942136061711541245777049086209953181614150058192048549461057612383646563508031598835587513772229679059380256012055004312978623601641801273769850078144863836622273878860084912181948936457559726016064111613385050882367601811569328194907574102336880764765135413766915360197944171143480271587122649100732036754298858174439491472402349939474233371054850058901293779551690243402002631491653122162705655195737794342629912646758684843194096885622587654173124199919730935072457080570893070271316515893371419715467398907740403935352717707459805674872285760093291811396929340295596986752955284920399406708593626286971055549403761909304689601771137022686449611626908833486276954775701243630196196245699110763979478068449530223471345244378960001564589719799995732764793830500094412767435835831692700911113767480710969812088920037744967065139405976717219053044861799145713632094475245989740810366840925471574854697952349773576375353018377794258570326462393578604488830437684367593339816789419358735134623979066962383989177022301105585775459300620639670053677905402141668021328317130200523377532759670672565613505401626457627646810957357365418601477031209535449182850323493070819982288739955007020463147300609903197422640152750109296061669716110732192477923142343302678496275433293043951350918716100376040709625771843937151274091358997757981475939594015489615469856293956204145423312572191618897547771603401726018368171692046058766971721355541240766908450135224559796145338005653375693918229730928666185110734212763096928186189734142602425743416578668436258055432480149480823818797980174883242701648349013250856172409413337853964822366355743978762062254463334617541943983530808231402201738133682593818068556960408232311803477904909162288347300938304870511103507206575105322526519845004252915337818624827262101987263621040791578552819220585870451186670613107078711096844136533684351248095374136708152958018496198157642998502589676533434845943042624470119565544512209138419314219001932935718206969600746903712329534051938339958646159271322214464030651415697594866551456484167690433580193725097381847218009365220238225944848905608387569005013338178544683204773133134829662472148816412134162301952052558832559992118319481005588277242789515939422237499205613444339318962305945003827796327063699862113542208098548792183074851511927244417208615862415681414214454751228091442398857043598693848041327333828279586223639198120292973767348854748985988180867180229104477959777104727012128035691495955222325861525021000839651316269351458258141258546050672430495177513758134051393252757209811065065670587242131015555662765145056334497678455879358368933901383978420163700259566923210500530375240574676332319118279685410062419519572940155096471653931192010107175555426841429011030751970535442596083488078085416795700083261576778056592873242400422444684564877803401377619146760067718495565511263710803982624679938354874419982897508703454237910662425326096106856565831263131967029014847767143990277592692159649558078612941841442688901762371879151122388566178080644562701482670916460717779614434137845180394778400920647846710548933373108217162412851636995210416734878958132608199543203298850829232487370225145915157545530953921818503563497673777454121282816898664963601658710325852070403063976393348366379145743158167169972020468397157590484478812464148452775999252121598317750924134450882073894324080864301977067236151362078533571367122958224210155138252904652230420127537898150082098056511769116376457071966921082600209903607318322911782677614508791387975230394790152922365482492041646365134338771512601274753485169223436320478828309139649928863222098076302818109975159274152558057780947447351686148268470635143476488692206017794619292761729331082735371935960044247780780281710122598095126669792485094524417401920265625916133731549473480154532366016550367857175915661191561355631252386173355844844885462686549494534507991897745438628276021484808743460259158682174466179595686437715184050804122654208414081121621984159060993569085322530442596478334507170815052496762288801127510638132775450218768073314112905451448326756723935674507260398052453133548734300906284225567267691063336699800477325026018165682045270259734498433914096696932102188958886867004628032493532257535656501256175002700850899767170146480348128535383671559876199627333436001263557679156422805216178789635576593582953113087581744012015739950022361852664707860207807981220290965115405989239330021943669217478093671778995558144980697655545736698296623821740553726896435617424831162118400881101013731620794897766775379433939929525763384185200890967403891089719518268189482750792994856483056816581258998935830565659090241159971299693632257273976662097186013319966313645536741893177502014690427388425192728691645850006634397189400492528950820874559464125098784081547542572403942150660393264691787948728715124861752938335044748546113636246546366647635443187752306551519921450497112387050786452618154552088983593252111057048519166825124288509287849638117459460801383079476868675261242874023623379517818247337784093033015423285473861086210432104372533787386515011149928868293783538876721730771022378200811804110818653402605281206736606693775780802161077794328759522406111269269505134007721828568324188505846267408741748331242578931165847140280853039612127096838463018132470137197251974027777644225000146759341604348540389001051372856666164711565170030027717164091318018229181180135597992235056781203649845947537715825694747537085909907380782211090489521896406603816689369593115572437991029426970610175774886674434249822652610300470290376890604437898955017136664969783669233616086678649627410808512668008772568768075861577618905589342847176494325570188764985642824078247885119995139977208986156841725515147384787065984717301262989733869368371101854424377885359793560746913186075340210981930116431973947092323433905023596463456433978734880584648092340455529570314036436242293835899546282685195113785439406287331537642463379047744064834531361809286607396297877383333280399943501000955661918931771921006895507984729697317044374827425287753363550370539607767321182478643816184667394681774635557633659340338008769957637107340536948839812339617615920545335176199505717909516448305840719504953577246435433042038395905931987715138565245413848942027953449821364400613466681940689617484017023392098688527334922103073256904236034999002250304550370478089233684370530213904815453131861201609651981530933146199713032682456543872974218782836515168430235016664662140413900086564705053473516474834664981414614945028544944982296196381675905704222617175171211094006933737908646229968821657707393279857797541036674696977767213188058131467344689203137197227651466145079008176429858952047230517786830632116130364973727747673118911310816076064142663336116441377570836960035156613364185468758016830591872831688954376470542815008318548163311147966976613840218161845780014359956741612480407826802686241874450484436330165511095680623640345339224414648795445083469428167226539112699339913888586061939406685689708325137078604516273330077967061448228735856339062795018063646270302601722672743142002490085682717556826982111768624777720405309471450630866515242775039326681815702593035885721158594323409086185899403259648827142655316758481798168059900190085934693430902432069578411251735985162888691663120877003653727313353705053137674375905648011966141642938010794868581792354177414409207457827986922523220301877567271253795012777097019296195576784038293577282482100713911044740776533434656941636615252554757813598869259076881002905363191229910124003629704463001856634724981944456310948600836262736430784277397779081170981479986767659585162205678088489716089201604029592301797044318897945458917176791404706820997246029219068309985661920103058388320708498285849621160343238308350385659189195181246851979008138132064498772732621721336764119992856865445934791256110501523952320782783504959127051534359651212399939234277696835293171924315604512149487014568733697580109547742345275850992871532175129996907976234978090651306550081301714182630987357189430942784764791994609007740258144630546073990555093065202069609296923293982793852542354685453184012230384673371928891818060920700337222053697580816342125948474367359676714612846726795802217720929369058122378950246101716365449938848607121024597814612662731893807319637842335156313230217104364172005901301646194168233718457528002130770515457028880906181069428005368702365030625227809739829710098592097159372022299046623847878974740922359460476372434617570385835241139609401116922452065966417754364376387711099542116070273387235407277324683121475872408871972976847553839644659069445953666587190555269950410321798089069019688397257232858803578279947105068931967370891807462367553745066617278544206695118821099318041350462669035166234712434324414121692631820838267558724907764002092206784085087007828164712241758131510408419915319398280198685162175962719447203609766090769936477624640832515443449696800639540297784398159045515678670124296506210843021047122955349798862408266315532774835493205715457144705306809069598504271184719900632373077409028107907613593455508849588630233340576811932342907625203990811651814804140973839235457970030051112070781308974997601187184987962177019867553939626401064523232038498607667482602084169679068070546065388722094907491283832496586497917634891997571252702193464316331382733005468209801872822223488140318888526571225184279864550585907297594962664141877582657840303676547334169881935322732891960877133222897592453036181918952581955623651407873253653310606266582491133153200123562111604143615552906824721230594748594374455254186735526157029406096465783147331086360277768812668696608181643353959838211852951589803545732887126799742341497560114484996149367796247893216870147725737721905833230928065765147749762881744168589287499066094279579400217109834616444408047072352939756730151779888713788155962625147771707192939077127085955941253573972169266170693072405028849967896841735438573846868997728785893527985899844949945173965126142411313801754980447690222368332468758567189474741168458707820292209590963566406714220445426278526268986183153049507275112654735381588530667716539529421927483235552334829621609844888972694312806625988070153119125976601673308388041536026200306667084984652099181640527442759191825512543251465672398770574920486299355335427419562441952532563525817585186880510995834482233278204102894577224917231446923736783923647943893715649781811832750922192463882690529054436705390907826460965588890477449939616624214702520206439288896702782122327282473771284421780338738153716918533590219699532777912766809972465252159838101959147260200730200306936528495669450375293421480279264755297472117315669263079539113581628349687945987726545815920806263788895552729342009130777948394808962661985178023222254831444052592031331118687502143760961704013729551656303084348653354763270894817778998534375331358224935975673979759132614168989417535798525359040830810666790244557161996489709298417381509249846278380320397670107804825218464248146863915544898931780869142543853252725200111557443965012142218022352626880160285606448216081315671985472864942222643393215443460603963358384401649188198616808364277263307727846769291382556235335302146449418049137524201732276903855138097679504615612607588329032918559731165960582358826432625064210070355238577479471523719518244627451940759974274274456341349772452740582500934135121840879962240163939610774170342970650123996421364543668552999514278898918438731470078411433658257866954534627954855657620653234665366348553674854677209400766528186128327016154362460301149839205365725896819248219367829934570013258104436765389996871279410166773727933077809327335662132800388900842985046734543495707824552623549136196038893035000247948442328988531154732669441800151886994816225028997156449612313414987355620691779991845810499281050126436319406827681043272238962220088909703761953695595034366689704512451976296058821088127550642852494341690051332330546006918215417012887417582534042244299423167396508446212930932708262692820204248372020098771954137307477508489472631950340492958849545575541646462544887110541785381355454663973513912946051430166307623155191292569670222115103714168569041154298332240803682059399165261124818153159269106512197426032137950835820547502797635017401680895266490659833400616102297120349614383431106462149431503457834689971455407458249646263049187234797933682597463486448662309045833614179391820783513479245082757180252231195205126925927599461740860761268385855148211840128681343758925599431833637969430464175605729293162818858088345504751981892687329820434463375328357278299759108275511313440621631047511417449022915687720182894049295901070485522671576969582984072227868927212751180952334176601606543600888196988331960946739202739539594156562605760074993562424401559330416516565563803773925672499725973823645333859154272301788080345638012802429174858216499129385514042256353066096325463373844834055148693990966010737962039042641388588772031043344759502373051391984034344884635536604236324416300327079959120074698348676927526657397146415447028996606683144900368553017848070845241778937274680925402164738704009541991111893347660478118865449475650573572790871089305618413658037150111535300483893524078752554825814479538707479778380004107386685846328151386207143085760395500698996574540807140082943286681561809152797126855059823273042769187358286627273309006086532395977952795413003916688710265231655737532995780180335949256727096274405108560955401523391450880851227596740157971653791836862385206777305338196994064630403927411010361680010945026847691715543457921583067791760517903474192364563909913286657596131610117276130725991179695252405746749210037236160177187927447056676255997555575942216621393255492587943834868218322933260700713084574795946217532870201855396712259953726660130750703869495695808841939815449577504282472837710312781059944234260033879090100034025191822289162430125531877776248702992105137811070483756497847815887768838217767286570093252868217616553930790819561198219337517062679458244314295903614396661737047250416510954512097190266729767649921982255592355495805252457808322502969139321800797764972148929576755017776763594688507374112336753542763183797607262366505204646172598576032411689856717579265482754217460417432926025346163013658072543506781993472230950464388510608221539964902318680422372165092781125128873033167140753903621585866166048115356698735051977634886175739666101004340073644610159965639782496041006310842481635684449325121583178384439893249770956160061443342449435074367950496736478668733701085450600167348089885959934381847596893513030402667717257354556899288786302028076024745088297859927141768067299536570262552148666533240797827118489585619870809916540750390127102698900437645953255604997622102446892334820173557166930440160594464242494885389219027682437044487162185923785717794921528825583636314490008390445283649399248294918438085390358372674549369197996518962202241288201255239874352901313383325569888945085706434109451242842381670922766025835467424106398956462892390310705178411512243020371493085455623048219144408075120855981459592074192032095431167324490898618425071071267265674116834771277358761646005615205007538148408704607204948102615067888545967454331313576485694312417780734121777922864605744828533712475385355118127942670789998928376514814249841631948645837091823466464770934062324865911769905477522502866625322193293275164506984168307924985013490091658510867414810612666871713507630071601363234778830169260623458105241044883121443815041681167277118917878239583415490533232354529608788838876137676875727784180885047012555754027390972695690230913266040924590931811278744303830827186109367775416270695379671104158018179115766647145734125896131555862315462643827007146688441451598607781778631510560473006370777676618030102530351537327625396904537328891744002318249408332357497707562313972003243245077815471640366109453461219602063727902049915578749655895367296022616807981782845184762074763019354864746543179820249809706710715060528355326319712693779804080855423657271357537112218495493807590878623903629378258981114556160654961539129207334288992414813095280959216128558948001768185209781235662892763452973503384923798709677307851343483579857187160966275848289044152975377262681878067126435200934674801387503985839480881905730222016538979382540919594281014571995794567092031677106834133640924175142365445490781594730898483580164586387043482749461603859794584691781419546495366480418738034950487148451289614015734294919624378820151408493591404644510185593737266059314450030129138836866849625453177739873065353654293421365709448908472525036233186238394061342446371201754352258207266247718717791558317583161164864130081254581821597457849732796976294211601812245931400245420604117872906444059307201087918421698690914867954281070244010222759924088887073932193750765344663684824377191143245713137731435486611947638027164752191632052643433295224643874877010251411425581807330274914376006849462599563384826755837475856942862962853843117360011310295386016609880489292317319040647609599140346542061723276487133453040425725258815969082015481523867421840497500256730582580565342075233632884130990272268974372541985898868808866779066216912217227217181721036538986024584155506923203264579157613029002253811335226835208478798950400630449389992131544251010196305670368800813671717770356429147451457489374945509736425822103677292728684669171213198987629662409588127838155164604538783392952999454201500470649384655302951612607519984706173289917001891772042148264112581318332916686029879605843835716056864241422901037481086196121809932220662625239229189130645935808501471624596415959690778208223817861970914530769169986846677559541330607878625586158220210213014700794286017475425707119860310676824940754344969523228253196198065260777713212031119188978840285993013002779582494688875265331138495610794404202922731666564259909256242977101195754725129966922102031225082251048517862418056520401881552687264857609070604068944687769474205645149171814980874912255863748797795225052792524359444113896778208910010142095388897354980167348611635109334781627293967236032647504769880631890345484452292976024423003656880219862272568016757663600264543822540914211533528053774728329714825715734586400797795052346442694975277478642853677118798495482434485666041398044678990665101507401208031488683592578422432865757715474461501410361427339911080716321401623378183328510308825630048639585641505525310924198108134578124126252899040861037905422925087718292406481619411507441329914269208592514748125678570908801625282546296565690122261641022449172014256095360876684947285442795815137854574245594758110941110503559968428570769973349247223313703315789933751036828594617349123932563041767218310269616896563934766432270590528581276202554781968043869905294545262476809193110924454258278727253932863390366366087939720729043444437812987621324651591340051924446760307289077789618607743052966207469226267097388519420873771407167919240378588603370261741820382074483618055753807807379290133026884234165323301884441609260728522171482280026470012822133536594111891672956912659318953958658600513226297459558737587280626328843247585628125615217349947651803664850129722923411640210435596500655441860185168446692285971985462066351458930460693879366758176201809209151403748483628961217917840716745028463972668869496401359455287727624628151600180496756665501604017652477062614028153652354745433400120504091608348718346255023353400090774112327968822168541380197543099106403735049973782664458254649257253308233920685562431638167956714305359413137813665154213226866168426480603854814702982846711285172041759295033951228793444962684770883568442913199718390960772420326663829003808516719054018537672888426141360614981507068384897648610971160406838643503982550717240604768051299673634300796940589432451274505169354519907912727580259616091706318801565182830143529376315369389727781911179830067883080107948838055526945661118054100452198096838299272905772917494281843595003840977424813898329385847318872228829241316396581171653279421307018829090139544267274249313514181313290484387977215233771189227597174652114344677159654388203847340637083615280509932406096900082954350874330427615878651757632390679775767853602298949756947281263384667784612436696241957519936498772828183581449454713162568579061705300602054473617970251712497042625172023912588620780901894143821680254437666292153791353800658154767855398627662491479832125304867174265997427270279633951046209204517463555731135677545645709331339417963817459862917598617830416406530071066643617285141080544150284130410247637181568946114749434177099068229817169633195141274299230072146618695212423567730100842542819647891658876475970494012905981157732055386547320448389215817097215572847643608721973098466249718532348481443001189590950303295605725357571240880814424724558514556623108138335769071017025372901237992507407482345225431942353329911006787588553721361934146246833174926421165870247898002189250560413848092360904992449020718131031939341661562617057594735322838705955445054161086134594425658247094198155515911507721411929094182733959088942497714662057372053615674997853236185293163083386491271502337686216205196433471528191430792796579794540830348402544380257298320311420802972008809003102382745275439746894571525956805723372457630555681080368968129853777857421038625938550622905332074589356239981110204449748280815889219414075704741521372883717911116434245069796748162303465495947396973867236608598407056999438890313392937981732954964816775723460913406589731825196799611224801015094168376355698033397965986153415476547483663788772402279454793753111104716708651690295359374008726600862596568597702060626713450273630239278647568337924331849522910370390387934324048442423297004397904102993294005297177341134397946869722409832821644139811222904448748471559592610968340642361458119909405235863429009229217174085769393379501049878187275644788574106665204803068836919384903462670936400749095949145279520417545694421997836828902519576432454581827567467337815277362827406204069950065840781215274559013218105489110893663644402582713974620536428310586716772858528083002300641816834334981043686095844315887856526036314118043172713264028673107732161691414624296327141301880868965604785235145284557198071373085589906804356023098980528528645541169903858199303150640716630973164113464551678833237267010760465315363454325079553603430987070525269294731335343742727037323220246982793886238293091316245920123472536631390227542378950748944159987453443167733340557115993490258669225994235445858758288420682215291507527478201293559734691332370948415367144664399358574909192990948177355098204696036194509496550262091614303345356387489137232515964424292357600681468455510913590524152804003396759874334717335098213873404024146783432143240434263791334670242622840065124802872881058992395108000286599740864905738582417073775817504049823869595810385022659612974706249484325187677057533546785070589048144462393044123147544472042532008918706801672512099490610222786823922328908486953559916529694648388128338169796597940273533589700723609600580805939785485200194720304864614626328928683333229189218134411114440220813744269825659437191373947848659988276865876412861398092563629128430086245712982192520619412696338108224318521809094208818065224578315092531423859945529409924324234056178514150206526601597769379091018097484151674985019388736410719945097473203955945376069855210412460993958361343890900860255825862971857214226107912479201410914327481527994919996509494403906221177318094531422110365425625659653503478398917501225402889879796331937192748018500454453049737196511525825278108064094758574552726974029223896781703639140246410209779850873437012986502747700691272217482229395805459192284601105447666737849210825013133850256671588460739966177384329144091576154806272116693923997631484102317291367221719257950646412448615277392437389007803295073605222572380058434564333364673888535258448197155860669969530741446609462206560379882545283625636549379692895538962418523902655245122634245229817525540076468683364181650551477642964225471427115067102789927092370117052840298364607034003109645445249430253599150889112650109886059401277257122091049543890493109427983560090283776505539407468577176116157654630988416166970378383711598840823947362528931227720358070148063076682964796922849343333502009730260872409023845374438235731066806252746504946354866568971257177577028129993590679444368049810453313214898481505766385880174366083072409789892797020953925371229792796639670866454145698268499651130780784578290627042692464152162441978486521852123812150818472678769221159704838957319463544907257311929429373290977679130764219748386928696741924372025460886165494931518864136936470009850469161392964612126014286559379028777269861881172732183556773429751577374847039579942022913082192748411517727466483715515039711010910653180465283648595836392560587020194730170425816518167470823109404669160816988956424119752336509168157456494262473205585193164835949267692587414889552999896383064425376321666024330372332449906784982193442607782137817428261592687919980164547826480277615220926275814829612915232480837817936504751860954667656398553705112475312686279116088914597191452774150692877371236279394519148614999198388410984058096458187499136977911543334341892561279397553590207433998445859079100787541108855150709587511834819455248856618626993377011580830318494015730526625851750335934075924928132425967611469302127388941513164588223622781828999937080719510957098238833151180197655858827043591207844454804473076433925490995884558253377720546034591632476523909339394332756167654439780425244316861447127903454937793358516665355784642814973713585649704229123986108711614902852753089733478946428494482965640961605225670106158506101712258163410772460676572128854544807446230083168999041849618387790477018970037093359040444037403763963680561746547983283731343091872822182671021625762608544616637163447011622546875689730265951099208163070625274383274054548908778742701719179134765487102866421425770482969316292329533728099299772461679059875883555851456652748177464553909950063408012953159140996350722142992981097455278010015203782939418651207546569997887132828067566745999793073075122504971216919761482650529234216559884683649843548587046647001187392321279385438704580333691723188077974716330011466081661326290127541830065244032147688119399256787341633367753320480476352314900463170908996165444237717031940394458352664729445253933764397255369535168621025452787810938963810643194366266085076814117606185886568706856225967941711458076243567943421296405842094654201878111609879976860859976058850719767975539421913111527486339760061557620548324975860557538238130170055560327442957557829251263454360475820650672948322906071963992263334059891680777557026546476702085917490084094930450947283759846396688494981314036313388271798917795491939401566538430028217868146678703996474944382729831724594738394561348894342384492790262660811721449635825857766360162504105026837707542225322595880877593936384390048004324134267619100495322742704083079430846815810674772326534515062243002376840393164941500575118900062402524122192030712474797813397144936033181696350040979134117832487464655557516166813490117318028209525231266040123290703181270877293350093929459303728645615045865547490784698117227403784578579779515277335572195792283610209777613225589138517629017819929234287247128900451322469187571084292478485333050435367731418438669446478313045322363061611711512216170798577258048894812378763256404659785385883253013066536436882523219177688303841481785232320717603173099475567082448140723881193554654184266038961887658714902587202086339469571310091212118795003629862439326186097421298184233983167028287303568728387893939224712065958940784801256085911018172214038231555461467184988498323284257573238944965386361424619762478023903086680853184541084221071700953872335186014592484726502259886770295449980937452903408447033580705072978381834913334082537053333989200143385121499555640344628753699795313409161478975643329884757763172935301424986179277355383284703520760620906621421264675346070409561584679889324311783615290589445376180166595112131797715940501159506853785544076101629167182741448059941086996813131662587892318058665543361923183872139433909988365377915380060528188923216174006381428315295755528159451609794934610694379492973327104484231322566193581801724181586651677087995561763047993626178043349004468538711360929262944854151010771293939730237823093198459037654722884289866318436921534762077135284426341971370519515800327021023155457663867620568944203548094191080972152099848370808669081949315870275277930125642653117256831361843787879816686898017647061465138056996977927815428030036807976372560052318450344123078425060672930135805718306447687209755365410252809049487263343059208122279891394689846227300181438648992406686894532294976734127733716152976508739850129910783213348937229175966156483340275456449934656283787249415281808048072236337799049981576699194045027541018533939591399800876350772138391720102786817157941384823772410946011908574454310103840423517205570184137765351493857559973416713049702840543035830371655470470980065999643396943100938701072686976422520691449450642809770770026513919202238318455873560432327420991756060065495663701751911607261780278883836144430230444334829119812729390044304124820586535470456383001249345586132791465977451398884938477854627393139657873889473599151133466456902171086635016530535349532495720352389501247305182648676172300490635320754156506974836692210581332221367244110563867237905008396752016535023228754270753531432762599657994926260043001891230470242297491738030675739971285915560538881906654146515391670114931743147486662797496893710417095234753328326583903575353213710954866120435280860211405087542296184772327472834492727126221726403612311743455062265992197205792570676179119720761043140446634001678049656814224735096203864808816873923699067349186750762398947779915149533544027243833379575053717785921914363933274714843915710266300664443748151738790335665892550578512172467742085865099484758036533725060195897504605397066947065980130767236874613481161391161247747464450766990657661843923333020887516646404926492314240864582137581374867102915404230913113594872821053433252490656951128952922083081337446312222951894625475846589909428715622068508198870446384032538875394917582041201153646438161305842981004673558142078874973581750304102608981088080300028756462440443743353790199992690074124887782563856982647518651637195727642668348830146191005531825585816888608182318324564914496865897108939599104199970964869383246372663896372303083083919534773257341117951739551143061239662317786886591137729032874330326445119267265292770593627071649659512385017389950624336874648326016055837648076017283286798717278716476141744955908601762691827278059102856181193880446159961041733274123668446328473246613510519010100949613806588499713222573692959708943421329425145684748696104649261368556212065907234541277077060496022002841110374015904417318965731552151731121356336753723575019401355168040741916682575115183570941862224964507250622134960906489079947839779907452349556228092981924409919105026503809660496763340019549656780550075545865352285513149165931908437287935731982407304396377832169499255802231242415601349878233218075844382300681088287378792736664622195610188073288503896418241290534609400782234488717940702336508352449455698356642565116344735765402186643847236781293936271543929220660246053154075611319095244670580609642874262491223696429759669227875971412824079349719051382289868053729225911064140119160284978546386839174161798738448301050766813101369164213598462523759588022458650957506381474526866329052489900906373052893490189673252612620964878449763281205196537723553081612279304957756606545708389098416055342267975408088353590822061549876641900246592537446065842251229369002623067562309143710013951659253825382082603657793720574160824473106649847369117397477930290336556466998258002271737595284362734092133160530268321502073461138622327685046135567321986027655913593126679907052246676828707059430484757192326501489565278970305155190398940693027127050853106256183918647063331902791059023776589875593132000743843869302492304274442108864938051210790458054125425630468042994036359388690452624871627708065665695963475378052127857819338609771894208791005608881218972273442142456455283726994763275072239725857216166553074934655399658780979478034462566946499258925835994324025219559596307252432293793895024541802672080154986194580311534662828363792297732636792480482894913412678280259034908341569704222767491594777555848399390412877461252938464716826051745038267153712384563717882143331783500465672517709347975070817149484449374938875459473614214454026812512945221879038206844327032056377282625275599357138703290801460432874967804189661419737829298416294438334580818429223163156822593589354043226052768296199343447272731166068769834681422618903781351306016817266370700833551488748108857640173293764962338953164373394567047707065889335038611588281213283564333745096484072840354054709385485446939728180489050052771561766435982013178453871948616873631303589591345339841616803929000704701158201307047765029574950030862040251483944687372959215862851430692228571133057256544668069247845423191535272321674875928060898466360611050238857639181414677336258653504067182054535664757704098856578238849077095687604740489637272714181767897128008823506000611901119544961668546838257552509696191788737929739994888296179273862681109598638588309236839638417470494027704660792030141767659605844817555579288021122006597919273342244065760988775089992497589660390386742364491289290507173819271201250973066381673444450236539792754305525916904675542869451217054330567586353039184958535030480471480389955945422722784731119055537008986363105795915069614483115372728693483910137675806889536690822889283667542174619647741453297379921890276362759311316171316725623260421326785576868561879447818927148558464946555177282674009160064133014369905866813546415457324288522007275901197885952545893451825129632968170060354020947775607244947985657500105487602973695113652449146082718378981927230922855217974751550918621047344070959545217698549496397949204997110573357007764704057782723347082192532824974197384896161387083002366989343135030357363623324457716951117673726472117221873630998666791563844398333817199361686574526267038536255550818252136180098828173938113090362888394590393752107555447473516965928762109177700024793258687939534085186581933455003933777971224229883063403453176027966707553459837914483882539788943981603489377352250487011835038186501058391727440838211248853792256958692650730139576298668649334646051342421912131379717020431754891187548615403397102780947497770187170238279783660224288464507262086700092826892859020088022772180734386604396913865091410763657782013607024418307266272448785783933988776795309007159200586945988509253461359214297824391942912691087452389102705468641717325727640669516316073522009873168491693108737665203782932275891032650138727273377325052110716752748339273208943136525108741709461077970134772906506102864966390341256016572004934813974621274478994571422468970423903264372192445193050037809850060967469882192526936518927519474817656675347998440173163582858426266849329399575365011637710558197979515057397559833664941381487735940701038160558474569038128647315811598732652167258732625624660344871156167237996395186054552738316577628785425232866658179498028644091738488745862114457320461558914810972971526770148831157407377321321875710230903150039324962870063814041351623383125634395304665722118977949169003595060943456727399047668536414083430223914567944350346967090261818707591180043126032259910199267180073966427671738916954687715575521628255761966903501685610552422161537130863813382003398501468398754099449978628757961902125130957113869037435279446213303386771169171517003623540789142994935452461403591611267926056917701175172165031486644956694581229857456762644892996900714421933876084939560719306616855037182673009675125073171234633463162801959323591612051060244511285036117931261288245994215423688882720524719205235246821222966955259421012165887006924110494582655023333724288694243808847759264761057555927331455133752009295013532091675967845458358518843476610024445055947694894464782475303758811595628744604553056992932685093057579187251124261894884362039948745249451847031799897211346441789169014682447491642792394543144739481860058391535023041476313234631555628686222632854353298321988651660820160269537200617216728951123427965064908308364509268592692346415662614191198006998736121987014493605005101955986071066495007614380642184756355180328761079394920328034687872406744803077240979437676813096652655140537076667646658883314278841522080230378119255196969871156012235926575723451325871551169837115846797599918114082692254799500199702019353309412282957389152148789274305867003243146094647521366649062787807624449552710419163320065442471257357629893605321302908865916256773886678342017619112292853227113758266172589204733031230841663803099943445569524279951876678324121409077380181142172553652256589708093011550744764167702597076947066823368060909731865244495307195727835162637408465668402236561923863413672209830641662014541646768530018292440907536412882962332647990441512690163373401129354017580911770411818140415237941142764346277121395827806892899658732057554352345023084119204158345332679416028393689530623869650648267402510664499705098414334362837009636593326680678332242174806025854670098912490823146115383691408155680873121431138291610199267850375405191059256176759405490095227411763238877812136634764637333204014296383478177944126895712074699163309161354791700513987605392693411097048906377081871450148768261396084145014179363555662924404217882487919706009132189376932293066618868731140721528338016840220551834124094261246500399183336835145780333330633768556067769570947643287104211705737388322540459936521133525443257357745038432303627857731463443413996923206334787408765785308660160792793823433444749929058656719680654519545472846711531129425090242567903113890921260166640477570935614314434892996541539296764911776926384754751566668625426759042739380924583724678579727791324245297784835672658162950938368584363379426628823706360322822356955878420283951992863868769715266046308242196076741802009437138013702564232703804608190863647277364508199385991419456586346246459814629863555360076226686764339901436213762045338833799284903143833844338086494765824282862431552209301605861015324143440959617077812526537393802828308759913764157638603075274471354446484429774247932591266974222227458782407463648551907125992508245854792840509251606055928311342389906169073437969235489342087989724321234082351200976987382127768507724496087454459445609034601031603230917041662675241529879492306847942958600631768743450290711775459427613895427035674108694787523289113569371029894081715898620349762019592059562697061325515437975683095595207772898409212936989506722737799342541451705321403895042688765551990697636292085112486768401560084119706808314108694208764573760292781702471237657405683453562661269901970723495311952699765515036159269771287710504485552592126654086458820872147309449016036959097226892344166155682799514842860563888858467788829899563193540675189895690029562747626012038719923297977854393501213844034463016559697682249760071223539016142658611317098962882648959229094416381045252212421288070651774135606418421816819366975199940790429876996345834754512806744919597602295146083516573663902593345469918292132136911797797428675200207759754704036184528652553294045724600980112475299248302069108898849882295574727059755730761718261600304677935520951156265067595156051216582806547284521094790008703670817601568015781681220014726165189228110504583461278876557804081721414281103391505902786828473916871680072025530147961496273617480160720374974027897510935388871874878746338523217931079065357081645969754677382608155453932161029827265857651961409354405514418798227708063273506504428793442737988910246877592945920046185553340836230008914894726864915150268392360262834481223015747426979487642025812816289681996911172057603386838644560984708489754004228181725284048111956404678773652125666781003428562519909795368537520972341712698422846751530396437643842618558768435003390610116272657487781963911753837533686088494093016035825335692400149959370911924279617641831915566270722991866266296936101005863815998520267921834872801007514086170095095271277391341537644974466317479092213908228931152514214935599083615426421500938595263727534764131839887026143709123799922455860495558454509413652130570527017371231904197543667637614501541759504558994834780547081975724976455063040111856388603124259960325431016660162842678242546104076479095678311677212744645744334302620944498755676522432705192915256814258631081213231798344151285882072871219094961759643099030206695315312052007906306914779029555060595696109883943120107343334046526341140938307953575904177258622292745990177545428060656224991056189245946291064836526117716909914006187926987993388610101860394983170654972449648473866215491045032398421583551871152132022782261637842744835110285775037340020422829591108978199363654698444377216443751274092435515136096205101446738141704464971955166813522361552240517531422053895175972896621314089033451215361971261462608976675571083537988825563498155548431905598157719620626603686150540314493752432240999586933369113006273132318211394379193717678667309749539384260811247287648975976506368785287220949732540237625710580451289294063855998775821854381196747834879375771238148949238010775381747656702341278468298419471844312075558618535238401501638394333486482860656824055845963847460353197002801355778564034822857402947440493380018619573028124153486198512321675180611816360351488202863345928711359121462151428087664470995831248551850774287159689334669790455833052124972371597595501106374588418290739865260066658158043448070233584725003373286134356845039867430259966281444486985722395416197613943511511532024151530760728479614834353583261077789524865010137219343471976561938077305984283266330643043033845136110963602278427412729354100749413136240904547634986910859528809510549190121797475831778287414162834651543948204979282373739945866897137102539417050580643684613478466628142655528922395631229687996372666006610199478932234929903566861744412403076310174270938958838067660145630236497154479376599811184544330897068221210124212209180428792978168153502604777500007357470200384089572079946006830629824351151210408102904088412443393187630055732246969980809370823480241187768566824189237397168846661632171070146180747084836382220222838040748157185475946918121950408247173066274093198915565276426441601415546869906995059250205983224783465624127474175567844446693175035126700871645783226906003631089475559764194711504257154577205777364119848217028713516989316276275475559034997602753937736054331103083088777871436685041142984686429148778448308825008187309330740424595185622897564693550950751840631520505596642380417046069944034695656367443289927394963442123821808187378994556014345273581527710227625093232774142841069908800706824576412491543880269089645105044213786427166276268977390327882065203881848812777091545779933148702294597388427211250602529628318307597177586856893421383043208112333030039408394084185003961367886180656886509914605128202917706826647739187961910520005831610168205074636538676128137980469441121237745833402274788735895810615961256332624493963875250215791642475625541788944950404085832007220917013586774499977718687895536922325593533156551075154229017017766024545177501424580917614196174069113003027813967366739157814511770802959532818129872900745832147105103999803459655996484040707844789338449990762539249602644264822243824730706854933796287514821619933014740912306578470980928315597539616834906472971351617003743399895769681981266787342195330513510711122735552946985268937202228187790441528759747973535789840604441793329125493872849999841235496090177023557597517266955310169701565719663285870486242187542677341162398615486423318045193984475500223001868057162283759198007188025731205576854766829971602238798998320463773228010299490489792060633525113390830872699605625048425682219934972512785564617413222396520816078978550219231698427824954340286616794390199920365747657115246253035920521109726520221018744284124873744259659562574907720295942231228808123332804723910578362864108898766891083913182731490308486665645063133976600630886697431714945090839892807127942288105849735346705472408919245098891759481868663389440846424726805741331914944215814157963157885234551041365696320818607031390282863028822118434125350532159169097739252862955230515101665029745562843170359188139777494634131101963268049130688192666199437192322000670981384131682897429865767706895906398276942250506500593749267705010083863863391178028908504982185954197525906874872039961539257135827897978698232524507566893872590005479785330030249429232816771777190105125502754665068943440702291851061768451947579000324653666205774231779948940208780346587524727274210758661896452743915158001295270984574867430948465469234924012486112053764355868324345418623760523252509330020189272879831521304077581097462997823746197799381343883776293534941350670470750667624569767205324632621920868580933472003392788027435703239987101913260305586128921905102607426290537153667584621830609530559255707337332873523677791040530343536878165288116584948785117112907872349920311314036461780132620585787667786634608013331114239126681849999223958454893472077841115564075299821401641327030846353310655637248909169543305391657580908837858071392796533357735250919431123375867343941327292582874968864058434023703552035134503896791742845636689182353665365865362076460628769954204554059333918270471686686644601235241826701341476483181445585723739721334900452715576053766788856796507665612273296230964563610734059755605360883811413001838900418315856308027290045079720946692450833882200976080055572382765967457763394786279078482016828650725289572574641348544723704225434249580379475016271684254106839869334620311820830700358338981480543736622176261533696920112533042497169061137251558594911186400174328914768297727109741901743938145881785189938127130202818071885414555931728448556017869227645593868463815767693893806410333279496089797106258849698455890727263186959296877795993423078140676484765758840879087931687857226888067583378156049465326307486301955000964518130934868629445911137646351288589089679566480340676839603887848684227093760297407558108317291631337064946290955116790934912423286385677837954699994464580842924902402988868185384179204923555374073341695512061171231473043342549746238473553552061692583667650941529620414541182020273003689004943081380765280123306372652739396788811656320468793661075352358647296181725269807952754400650462248394613807341802704275013185162202190264558030356500014775608619193752091084264778326508739688443015186900704912003365909977666037995821033940630839581453149647561464438511723358921683574932847844020850905230175895790486627788482899363677257211664187327051904474436961554706622900921742740117221373124631790832291831926979689804703902815960048783044164743368506764813596288069978198049096122828082435052751651390126657238224998760511629808873576683449980823753766394936299915449277168834145242273533607035909430162877267176532676579121781534621326553748818201705738870866076345193941568574330405654337664471448354444330465714682925442163577237904180927829097705005273594434765606048475033894308028659559504109688419109686494595903700485024438814511154582247135596344524312506937882214829377784413687163895540629794715076548499624695543137437339976862976890554034850183915689410462834590638869725504141426168053098539936212256342718644236120186810464088837149439333049666297831660092584619714348196576568681725162778646341525647060909609397276908779836174483171032855208391745979100374375928528099210063174321397897646704459702148633003723165568701062335355617759785354279015357815247514661098108584693317055172920111957504394904397339968793090265693655019481556561443662247121210855119713074527430759171194636250865640826433325411092794032693063499083277914307954654786813801373076029554529880786899768068788087719937959019713834386919291173056558001233571709934742745114371263110865281237803869726235694126109305622712557257188025172310103511138397789847872353073507554339602731727138855918180483668366002570462951503499206372305699218527268015564685004140784287311106159976947676930526611691495803292518934093031147887183233208687580822249882901259509095430116886079065016817075605633210986066115684895342684990476943554979015752046493943159425260590171216051150727178600098931706229701051957277400636869134276470166004480872810950098142586400202352227227372346055350258399319893732145611391701057660907640940184744585549667099452417473635534899754191486644941381137171066106484398815843786243729607444979336460099602454016304238849063841774633536770818934532007350801705209589156901883897493357666442825193029080705600235490725744433039873590262906672018579577625199106699471798752034037909651903193620689757340578784463483688752346933797802951609947683231542742141775546397611898051972054805171821749379713258806551955488045560175968047133099755391306078233130284765433893368679411324446989042662148484138962424375162123771863138616104708191515095979235523231545351499516205270976574266204927475470177382972080944254260381240713970082668669038234639103099229021610787461799919081562219866584475210517307141521738743688069275929861997536437412185690508384760545585809655035964213273380872600381597503642699367493435878273795633695206113484302741530229302733140437108960654927711307495818429980935943471746007423302832297964429026244649494036036970569134226302925207761920758734422819098302988680267316757918313504561278280135728021134769886918211763117237574044932667656349704188401829552590216323394309186127976990897585302507284359454638592710249691681210584216672999919749558832006692991220376508862698630218397755890116627973893763594135077102835353894617685843177907612699375189697786462248568914337325130333653253243770468883963979246880668356649947694832798793515939611641410752253037056144241328200895745007886624402839805372007479436635150244487514052129472559714200969787295589253571213737610588000504857946124840646023887229637948534097308715839653761887443507573988606850084220986748557828740797649354982014184968640314223277609247109337607960228552303314779378132088591471583653558051887209255840304288955161005108882060886239508388264248182284150942218021065544301640242162005897439175637257771000405471227432038597718079467900964093864579910150679024267073613741157368327164597708694815165950572667227394503880199873139349179127335424307958667087542850767068514446245042279544860927220026384405817067195985611595379245005442272777687292909029395886639410321980504529170701149472673631392603548153087987439387224735360269846485010571852841182358030948243397787280460179521497626974471798784051799778489368813084065186462106448804056474562510523554180986529135076920288958788267852234370952535298522892001457479908628960533537907729970432967888067592109897813511788264925167646175834105268485199996756962807009733678219658125521439726504080198497326518063928876846449960341635153581027291549975382516219482653673362890190821200263306068553377975260102248120739880307105868873235649995695407049904839203562038796033880171127594163505500258444705405031179417702198725323346656161014477221035956095933049305393636832766086381206403165609195889275228644546096913295994309116740833248102620747856927652524353143339038451543037733927897490620824498505325204660988660814397976245258234184818140279969612259690171134065091792268201298124925069370151794087035980717899213702503682389259185488714213580130287537175830304010279642512314140398357077198855750626550602729853640770586758298367598083588448809023173228535841717132842651558436158901972501777336655695574727655701531400687521160841528807010679019007796846575127888053727951917960459026122030355078921213485305470905940666548622944076377810784660562635924139395901425702053876500712281276478186246586787732579577805652023235366553966604731354482234895516048007647961909913857701468897548291195352999096335615011284627309021207071287775744445659087247948940398267301634510678365470585969350550929052347964898513802605101412845415739181022564713976599124034186327707458193080159991619037985596025977060044675149102314371029667991258897104280469576101147191438225797174752370957254551069151032956354301166786369484571208162692789429380053428356622252152970000015255673003077278764522301216240861704788713425504657229551828129912997652497444637578068100086440170134943793799244282792285401840374180058928259252564676496382690311687494324835314050871171240316813083422751231962653838628577797395330673095125627091393279066220145672692041075604303750820630737257420389590000540443172878257222478808865790673405727144370297191778241823279735877895857186595105592816362501231680620135599347415465476544051184316429129295664409783216303901747009378484654383815932898485984460939949966535061860616321575088359428790076352592327508305955904116143786801806159432479691230994392199942561997912687300489233174615398431176406982998922458553456454163478053735234300001147537536559871288442736183335887622703608458996362694087701717701405382606677002281819040426152459314026775481324275646074145197135572574638771488361757543116870991818186006949623456742932205887384493465460274611532300861841901053268408211586971017112996212564652804426503292711116945180032784807289918961093410394030148495148357557985742368951698089961912617718652365787580901849358476739794766692608953431732145170734787870101828915558216544048172955660495749444118574332851225082865408273275037335133731551417972807451577711414897263631712743714031415327682713891370777869214906740182319725708309067799244527607013858602248170769308472453346432419151649736931721452875710731983841013596725064001765054996492665770248622383131129310080236066496806172885339340678513456350285090547687772508087152157345701313007746697987040800201845958682324451106562694725591562418056097051952169516800990872290117348110998556726139637522960737603338359611808080840124731877839897544856754690324139157125332445571323313748242380265177642666254990550723261857772846855082477888243579436764645320548066370024282723743613415003781431127189980073984502945777649339202687741117510903167511752321369910705009786210156799929696052576698389134531177008351179206022913190537685796640963865527077512438959740522230187483833555579340051662867227139815132822283521162614287899324263198090501706703240736922329969439529618074485895010717558915360321006415035972132798663043798465796215729010944102588046166068959045577460971161019532466001431018846510610639524066332968882450736159047980846339403453929938660487739607175918661405896628930981740158918045011751296544064956077474061672717226359443638427875182196969995895397932793459654358701172774969936786748759392021105391246969680544609148529739739602657050037860753686944786478660232859639768184796300473485275526928800537191272092397487517287230812998992095058663069864818061765043615185955835544211461477959143942923170703630084366099381126427695283766255926281063483313525494082422027116117377393307233167602626230088260102942027567170621173049790056879925731116210922088117985852470835783663248882117913890450268039328070172845186224619156542572252380248328246126923000701181369749519149449607540519655774776214642579267378911587202832364006060080234242578677594914728061871041346969506977938537754376924705012031958885624099875204963793193308826575205160853985478325281051890454134653114303898434509851998689969251005817153489363342053502466231583247584529200067659412888355494707286691495509473554469929253601426152560651645998182710711565871511437149852188852146597171012547693379127039694708980078372756906620859091444779919633912123498071041239521243905886373742292375813441815142244620255926257558422822352710635647734591745221705447562548202753581724662778146946098737529336288324032458457384404582199436483347384532222036282671545084973048506102638747234823784830391444631503957633815645639270150227239735132706616598913815002946785274899898435202399235574743969640533053168373792265227054119065621312537660321186261976407873995857702147053965414962223287474343174330376729861568113628982026326663731369106488448756351889390175184352406116335362469017253482766769196171030744081795882348635436458170046742602014943842138750490676157637130810253046782664442400311907280297006151395806198761319511586051427524730575121022540449471124632463235601444443338055571195705517382232360658902968147362147563339387882643965366757054365554475541273891310503140318984741780981986754101043603240845486336547017164194401696608342821255335846868514717986465742682511792311260173996522770837139740407235160078767417257350281007055063866531625958349718615108037280814729556377221774497060183088014864600462960124255032854524269831411668227640594454479213750799131402555796446571454410500143105005983681783238896944767273839785842626573675019535425735810683706910611972995789465046200129920561527393711306244271241696735653173008521301968091005467324374814324305265021307045181778503826196867537353004656472955396808992406080906168223322992019402957744571844855789888412846551015500418225062106185421552695415643848304368993606317301238941533010918289279030816080470090216826691057300575564764387873915745345090131427417832297253188911432531385651481530512203124898973031644707923105445625959776354695831771776923455199746951579731038185041579001177927317077212042830976884781386397658581443441627201009843556079561670128641569940592926892680142748131494009687374994568034337756258832854862203412356403296984614429998048823211868025286087961099797269888446908865354195014433234769753541202044534476343925791429038972505897504327206557333614405236357087728556946309101715923123712306742686585259135228664420744994589700873837708143931406006694822433083216658847106898577548734889096525823616465276777999968902766917720138838611535037823582810736071898666148236041349747472079317504610090741401710442923996382030255935674849793576506751843397804644637417044020411934384057583176038045060159849550207380673579490594502656165415325856413454931391913836315287574015038760043874983742635718672398115840923917094743330628710099239226325361770947420912810605121230157695873025433263544350252756344116262843938961709447717170524525073537481242576659436752714628887198944220126182196593149730498531997709309678714169343418064708937417240470462279201323846617109449307254439980378637323526121820132121461577617620935501813239976480543576958975823304087279786861936136377790256638341968143611112170130503937269462563764791188599059327875928066965774887709749870327494426795319213874993195587728263981752787631701447335571154474463967954317564275594734096449558348371181181952468896876302698654071143977634613196185276897453717649216971022360445210201605409396074861751957301275371367734128917231863979156013128270021523686155195524811331216261662580927494175313106495530212396318575752339845662272488560504950375818879808989448034066951334183640797559699144799551480580285544648806255361536967392843367997735541458576463240339215815280973103029119248711652179315043531990463086531828866314248371765152601404892167262280871869020414360767406742106283222029986468518480809648628422262075119985675552234834051951241510501038373979696446707249544114440834208739856906225542288402864244865745159196036811530835067751785346260689079374366209349391804509854685445974505581846846607250960113264447088425731064672137756749388281021102236623606242206354021896805151434871574048877150352379972364585418234226556866777417912047683298891795544566514893588755718549965621659281251532935486309072889609129095920889391076946674049675022222909477580924862728034797653907713920324508871902377645050617110054232631668018990943944427751762042588883436123026642356120926476888748241947643329029464919392387333050087315886237039953756137567229000939452696018182648009171965090347714968656747395593232903816966893175664323106399740326128110986846912668798397377837218895928359931805202332853117485460636576095017989769654702576813832494677180345966863141911869790550995756859522508016460061150789109283556095777508879482388275137894133826976074423917017516284461730884980194109620274189315896171498765144359984831039305024887412980907381446622265291840597476357804992389216329872094605341652493898117808394242204891540660418657188345264505928818466307687775097611331736868343723332145561027210344660923489151999530578267454402994829983131144866054399205604159332839954213030637247285252878422028283419545511299724573629790695263592630233639709615262725322393584604917182496952240972789966177646101641928134383459207014572614328631875232354381802247343200742674816125039924363174997010623946946757481122898207259727069582969495304786252251218992624162256622757174890409846029097041357454183125195377146813506010886973907024723771381522150765604093218207595816323317785555965443308879233995208762167090941864019828605638070328496515790027289669438454310499884169969136126323023204102000120270419920311297489440269190692358081052746820031682446930391010474936688135453570037718082173768641006879939101378069706236418490132983711957061202342239495304869966363094954531981127985779913665891116908525750449060322340367490506686156479291879577075066068674549458529090319027345175413092328647777618391817226859419657603503973736209036999480166423265421598467521873772482898697912935466106340855147077143559566709644315784281612970932234910497074448087719745046881083533686369525096505189457926942961143896450012084854656513287904749470759927974411446610522942248952299357585326337298281332320698927136373246862131712363187394231660140351676110702941660150888098254374895834910534849442114537780338945835466628941369221899163361463261944864019479453515145654970488442762268156804404396479772751017408057840258856897174255165175209876442916827734880040127189082526454928822853337248324758644032649347384763858375064071930794000176369376026614513604156705024807130460478325600817837551997076350805544836245890755074805519032953579939438748283264723859831714172710164963732717042451056561525672338376352198687463625393119199323462777985947980316352254511763851881418457745530553856020575492873212391105994464765763813675021293381363380350918005768551055916408011506618401649645974562372701131297845823930222331610871724813199470796346588351121475552943035963790042412451233757538085398896915674484890913495505985793608449314696970998356348591109025094166021909823418800353921568532459360107805782002247499855021555738381687213605376254472008591919760306147386921199405534435404611718708080304966212283003026239491120689394491077606057457407058554059576465078101327187720648340282296721659844918628695183556927825500447586638264296029608524661536466477277689151943946968058064905813312058097186922797204867423555260032493398928296688224937717817300629762547537509896158312749231415353798360860888404259764372086554734553553865196176007440120834893999305950624283275385715955733911625898361178567363008876173184109677787558343156778468175503955882115451621100320135887027109132423505893583917608667315401925177871526532803493192017171285630579549086303897248590510973775705303518860916066900005965018641625862746405237135189127391923530706825736596672279959890189635260942945400249623118592579578551772914108403271718353117812772556225393764516776297942142582352260377331314880975893349330698845327643219862648703993751690324693818597583109651926292684444682742705800224393876798600704717410599258472792925992586051284042701932490708928695261766829963728304334137820819518838221929556287514857279177557462333330347597545683023184844895646378106077261867335326962438771658171070976777653045206139176218943363563342626297278077829310517411589431965234243832803751788956692555766106030299297890050127470718523648605454776608749779331425021516878972882133150763244289672976064614499141716534795708304830936142501085288481929741345189579625452167733578366392918239361097932866566238554808335067908487842403392734922451473227150357981936432804761717785617558074812447911287672230724315372817558482012847025689058154079375698444891163026780088414781468704033055135601477108189408778124725275744526521559313607887879581409109742099525853083145252881848453476155240628492736426175785510300104744174544782366520996930283522938388186873974523038239467958660173966662922829494157908751063053750055212443128498268575489877311866596087473869557277348006910381061039650303040762430717143861466598452129820247333785672842178106665459951437256485656290017425107857522329384773844840955552408201113133441625976768147867793155362517609493376729703044816285099295063406412172611992728582698393767748745993631067910525689216460009682580463385163233725741087348304589373989271575574868883430398071192909534972238156926189949831669954722067503150134897637992218612480420338081942476602135464659948692853293318457675762780105442772595996779570378314849065082022224010983598274437932531762985671044529687787107627055801301807974888718154324300643372560587633765045847164808270433820257626557895738027948682045669951810993343607482712161819095949656456356183524040045060043080373049866610314467241674965520542406832778337157289566184030809441503834940851874509865994288412337881440054834785412946038194222014040558957741676785485464058962542139379061661939918770768013038881003193448047575456844779329189835252678551668428802431298567942271960713397883049190621503503444784511969628398492518842137672766725644644331741657081040537974952646893119629157902683624454903888635327599213667879765544154885974504179150361765030874069568880456832481650454860124172281493037205127058468895512330082175742243836652021557508827340723270542447824978073836610721412534669314238953628785373726503319338085492837014374209879107668684923438018600901013985097766891970416943624013410747197256765052688453071860046395932022294301618889599405432709222823175349736915432090615357269483491029834106290959343528695677676512894578081492524865980863934790625576536487198488805743723480428758355537000470496103147787658016184286596131766635075813367401283471129908619808817785485833682934266671888078537889545370287774715495658096847123473781180666182039373329692200596226358684677320730983640096348768796913691735471266797505173873755682620847689516506491298807832396070586202843559049470214731098417173561353762329257060342299851876619972988095112111574736875814015938785249170538387756819367644862540904833642315432495124952570249451691596126923035528129757300798338027446486460533276265667462805417563030164817987798097262210628148839818629820646683860922217663553178270380228348883009170064396416674960237401101282250674768914395670180679196480201064447520297876414746422396456160821742739166180973134925454661922181012251521177566091987881002103678882132741875933858901983178356612596947872215450132843880520685043259055460308016457103646189643719748623169759513846331716278995712082361744019993596886301871968033390896093923043108299026728592832427481877500220809939314458743104426736503845110990283032117976915156618655494427641440776993551352532216234800283918951001830465449584849767679691898133577218736317343057555190846351898270794034295520472230256533760535774735047317795698241819038974289656838052510095900021639722157635742872265446751330155319945938624838868135082929702931190893617715861730794468937864256376903883619769962680103897757933475141159647861360308001520731022520402824121008344386227271969958766039885612319460660313710609523839224288956751241777661897970059643797314378647047674922454459671609729691085907581716307750462159792432702037755284324960736370376607513576729152570265298964594091077999837058794627030320322235809141638686951663263384033133599240040969357167385107478257509474646791946099657244878187119342566761524396037458940960029288778554570751501174780117408261267414267290674234015672394248274904448470367360459463941707909593058766669594133845608406736346502606327215722267717863188516677364636407755294962004740207653535670103083976273559099766847406776166551060753413463787131260964151119891587874206876615613381641651533824154330140351357848881896547366285140481248198941515695530373416709490748078543435637719791694159170762712790549760227224476080553225084815384873073453238130617113068020305769512736473422936679713164766774101562245393501436956833705234909426106016214192316550226975477211768639042231101133493947050145502038421498731271810490233767627595606504782377356616420687925421564729721176693745714409925762059296421825946594134537335944422062855294319139577006838274561572988412121321062737994632066280802496709389396678792785401284838111802000992686111260381530852887607767085821788627970404240918500742291901615069861180028281075521442729138673404282622893206975950390788782602601176459144566415610886342965015583783685828721950565564670781878492233541620434300874663653424821571125057402095808582873064892260288788903692703565396163113187556165202759595464324356665912038070365634199816776083491292626470721973137969950842457590395224236882385160354247927933361883488667976407808129063013710235091868697266865152801075407216590467210825721853099423231654886224550137420458609265642483221926115117001516791235469664101472250212244377761378465521257793786792500541808339171389660180491987449376294955041704116141502664516532781547743561252250380691589494720498452182083396303651380568192193191653853678987400985309086077478621324122500228184867117042274334682900449049942783940667392295580760773385819358579986540330104158691231598985016649299888699110560643278601088276419007466271687993178339731869904410937327549721622725716310866695057215254057113429231578640554274145488177242123330236659102179696002530492745010085487467046054063526895087994946369447575272774501541202208545235396885712454054450033590399503999953416667101659975360509967980806023108084982307754088356271157075710412776110166599877408037812540136708769837593792061050028056067684888563308660118917819775367444377467797121116962807471144871937493188000783344450816923463781167276779222506433901472129913581953524710540605429119538381905483197798518108627360839631837804562974355315143053578626846434299588122837366415322647505665023167152448015481443092177915132985964998949713249142525266083563417501290880134031392471123968003314707809970907141157227826120335988177781592268643615173565502830349794677691904740271840261919474234574497389865660610316566670545891306021377457443738312096920048983658082664673535521242868268204507350640000752961241295460000998907080274072017747694556190785758536818424910509587458202035841034388701086843953971156574736916471987774373613360573114657981756692611708964939076416191055708856037211568916877073947508598754676467581813685501475265733193906793814788065226391986380528686048118693651363066322569325231417568582308993853547880465154496494852956981784354000966641027904691543884695891150228682615274117737565740018790156145140293273011493959567357159693481812550274808835233480937925841232170445805023724314522927700514399817559812202986466288067218884825773095886128672672194924081094943305115765819236006269916011679758062649658985442860769704300345221725598651879790616632158145966097305950706607297472506260340846662429190769517227066401352796368282947733493984948099033991155649432172137732693197147295074786414710356270314362598692240014075275358998443151559736297150977351979792361191130663546328847624198201899956937662961080711701311211374487517042542756358372328842844193870120326330622897067161419580773247168307232627976496111892116753935654143781633891190364254852963951471111894904924123036490816258493643692388599180550092455436556193496585935197387786930345505515007416181508914167002000870461766690288107667735641538928094475441608668296302885983071877774843313683931284084853561171619013150421466686523651623398405277475931458377604018284509713037977797214766804993610200572847732800090214885503447624143900323343908292155804383859836724586807859531881923356004518566722881064525889055966884036314794025442564478415410335221123848838424651356717688519323612343356430933538629965501532715949672768667720289308149445117475495607241241118665731574464283608910253222421184940575324442756861001777802680123092077895482607795985995641067404076598696057650513470151196733615332792399679056743464453606782317758140581146972119190331069838910069227582278509428251302025041595921328290532854225218450018172918934908336240070627757512925761149228724199831885770967326119479319878769877087772344601602527875508556040399250650558207720450149893361444068705066782745619312626904537993139443604158863056281653257728100916676141111220088337425878899498078056847912564156787574852991737444571372038659074961006712769251095463696075866652978432032264739746527992763509870421517275292533714055655946077841625378418333885023379834267393590186053185468945606073020510701024019145987956620917569109919759003541516630385730069837561946156463578257603168858804642046037419404933363680119338819918614678926575633262696166452481041155465486176718678724810914826560060682271970822859822378839380886967487236930871840179221343550405155206672833472400562554415115078947263224981209831983173299693653026211061068205871621241675134922406022252368959770564657035681032046952743696491051256242966127071465812951014710034562663135822901589023260425914966417922164088961878885010530509585661733515106725129336949928761281283145831069795158380772684105035814230943551238006276203707957273368050760006765815409753499882920868133904038577624851879330075030761160593333151899429375315377750396196127625045607906496753183009345932794834345199666312449657986707003099382857418359663109105679870358647615987133392981284517782856782745437446134552064750090115500520422317674419159066379752480098825597884727317408948617420088000817696096805055021037413558583048346892164572279883848538455275735964123832548929178315745776197656703232913658132153465430541137043035542602221036927958525784125766246241480440478754218287540138106622958391908216790125322998678843913887108108426622962616641755081112239693645325221509422056291572069050809096650017916856923435881200139497373712576498349810793865875568517368224951552498555982256443114008477191635747091628238751118243483003391734835977011843624794570963832192852569173652519298132107545381533349622669932849169456911745074294087182561322974056655584693387891862407505910933214619020442008962419355399315978527050648055770274957566967212350559848588517548435761107102956935038056287057821463226503541440208063197797310641321219466311858327544782386006665847570221965657572657083085287356970183012480438168460509666217065956671853155082890324760728064055575814555069541560575153479049681512869541403527870069877802264349370895954905510169178087123529346968066225985558647383367540781642600712181182576636158862020464708674519779921531353655633742584017106901037930992796802231862227231851661590673025648107477022502068640255774740685765132913853775464021458433478320569733996197904548863644294711212799251865470438328936422696782968981758667394148003087925901285607678550321931402136692921343561716364109661380636554736920056836930520285673179744829489525900454417817564464567846295427730665104417242476490012345862739569531684533448740527500294266097322999728747716396857687049378262969914009586166892641731556320075517756766462725922376866614177128023363124238267294937195636880158900104928063233791171422525210059834560977096847392794366021047521695427293860610238535079375165595804846141353381197200476020598354895975741920526667749074541824479375815086176257091543567621248757900759009745963704346558220949741667063757434844750820563462143114193639174969279178459881088251001504723951154120903326082861046501683833744369324478415643983622057995643463629876093938148882552346946677968945409566892371916259156516530934605381353112998179344813217584935272167829302087038143320030177849571427772013592733292457274838831569646091647472122273088411253490481197553631649886564199730190881138719073538134946408517592844989891957023569854399887147265086393906521792654851071509495757486180753576745633171101422391489794725234314329938466963428573057887571124283572032529189587282756343475127625130076604829978947622034563137434175691591169814280564647196261053941825749632386685054960002405838316019289034850901934884324735457861064455100998626063911287155915588417556772010875442153432257858432287527454860846060507762777252828143835659562523099254712398478699723236952700821049604893529089807450982581476095573627534422645881495178099621032229758396525158797763210860632786338177445117389358715988111716581081135748675049687612456508298691849524396614040249064493991970016893187020283169208970558608114876389556074788020365521685301187673206424439830610955232845356041168676843527896221479211705673801527290432546951169478062054829143980767771008221228933894178403513170349288761664417427184155706929261644791926199793276198474356819708357257198113042139690375851240474796436799169573325922418239511323590905246977641935764330356866899059370551595913266006624962507713886533279416354403561402640585285784495763190937571399693015163485113205758474005392869664166704612970189214077267118879851273996578175358727594686043096040589041602612489596972145042171007131399988645524327174610833424263456214243787622870316859122123613917892244474933392017533894942387349227991511842037923903164599402838045779548019947373537470093373935542385976391893358944880076844005954376256693118467815960708419212295771403045560215705719226900341524827780672837752779275412209457126069097069793249272272799421800858393300906076621133739825019496531355833858706286104040962315727092714042972659929389780185167406730141218658168240119846033487565874751339365209323473506520857102886857656196672321408505639717124567554900790333363852724055785494435194046554229194968169382420614585249556015752248049749858160117672338587836780119462930300811672669140868098553866810651536422581690649566365410348959061544915667147311214820499944030223698203277830114209231083808523124742793540672754423888503498911271572647665090892687161295436012789151818387153305460096108832253345442188630998574576049658642539115936242450666975861983162697355447345167987172420629654328185840176876091336830346240807090433796368444384573427726098650549896068653698235243379148129855513449196576063936967008445390740725803386007294928190269167681713676584382614887681453489216819534382800906175278223555542263265351270923558846334751152584064043321216526918903231647907848359176445885563282040086233776899952423807902505874113268607544764704548477548329234406858000197307701451963936973132242878334719329294183963120364806072291926481293172997350720452615865130816696015158929441617834667205444859840009180676741014320479448887276306591049241559727238094348380935357142149571979648125275575580253681467118734353969930201677534367436721270147361444084203763323118448932811889802381286326304025872302627590844985621320476550001612252355353087360095454760140555276037540256553545913037519139802922449438817956149002593587269962609126779854535349637186958086628648070049710585189878201845681906195794519308725932971013480916710665878827155267733594038602149577050157132158708027842377342210545551802825383873052222196953527792929430962866617326626964267207189894876065773702754975678707660670371345858272214713861554179333092745107526338398685797825839969236304224249301253410229253097663942563976386336133197300636831171575050348294968323204633986272919187620976600853543991724880566159876169420410262636142849296464301793523059719938651854882143628281264540648168242218515454365487361389461194700870199269888305733056457173862636336014893799977841486851910074127473343817632559798066369781450120269747969435444578214889942612129133734188180045427613118856731046311727740945533688421980783258550015222773906991516352467144190448762233994372082473697535618099766047012221638790912606590984027969350138301793480072978477915060560667992848515424620588795548603357604356234280049599271753583476051584475861730605150794174976630438123062931120562230360726357246841057726830268411377006983687889977602632136375696003424718031102235642267627458646361518133873939189389483454390929129182350835888654780225460686971788381398068433536790379361405083025898586361296373454285789956841790655642317367526974464702379738885940793272469941363986622845400577381238683992171983011067269567214531577699230714753472247245238790398046829595622172100843946060749207563910893029558769767026231048589527156116233725369998323965804571780730102339845683285702934020488126791284276447507454712466701849794445910270551892205181506288090435115077774156520565344526881390917261385174680090684597841627823397308455473340685840502173871529206295456316427394029970375650063149876739997120127892344665378890570641837505735091946902517962663724436799238269385220200927674836945229476089023358050721068809405807891296749094756426140066415466289809022821583311102024063024836822737454255874632497628261598918201987399329045876386674487158953486115051975937303078771172141237307461358545028888931080387903909722516543861325284744763594136907807761350308180982406569187931257974584378458449840148747308043445495726572698136809451256421927865760173803583761180448186884368498561602869175980793623044578580782177669865251672449167075342428824060896516953737908845370929112630090286080195289177964323966226307887912503757188426803285264062309063836535697894274772526923336035619127693138173603353290339648330810499020601911777160590641009211802336932492226502728894193720477203050410619774313718211183990887590933762900986360901819508833740613546680214086064560861260023321392209170823822830907595864898064135881286535957215243816667777087373457430993702682041545794367325899642628467130107156120848817037713528920521345134461403819793622574928747974538186777416719584667602738966450889577356199117717927434058844578962493187843880002752331122664242593918900023529152307104564005136411001800860120446680616651644890381861275000663779089982015385819552105079336924539844956494056735734449717996184787765500326667834881288701137800214694748485530272991720040712850688691163023546176513853018249212568041719283200403309226878725117096654679344433221196672670732502890594654543248961208010069723803690325179614740890675611417705603589846235869740781318136121807549473673356813838226820325426277972116495232220672746223396858382646115187668371796581871230746649469635109648072001770702596503575809611747732645973432282550096162997897844469041786515731188976455037406569197915905946642944514644113227970837114758834338222213205697555744111319441615793438009344986549222264266543556990490170362951281751177255040410432530585599698390817263412515388505247690467766033874674098249418568956159294925124545546766881326124241216488944581138219618220178609702349729485949919141085903763581770095962986212298114336798385361199653771995247786324375239720477152399778033047510900805830351191578458605509636597355870769339433483921820354828318846251537589709506958149848290529421341223049055224700679080821845913221771542938543471279752215877614606128248257154296725175843094627232664256750106380186516096452689828343537757551513306068721022113932015709036019228691786616732430520510409282109167688230582568061885785089149233161342117794091899119649159667038080777802579058942163022488014282537393489297957040791398237573595197800426261215575528637723279513841654554930553152696866058081559439002765113659905284182555915877711010747022667400485093955023254624246798570666143164661397179712606067469945912567407366800391770791437784166859948028221757053127488068656735812813122698011983892242096939214570257323193314863414500308726034349445386905815245780614080868477511817596551192072947853868532555080795848643422594572359955746135951079805344197454240359367666865841945690133270782791784049819183747363897522699104919251466398382145275306357662260407839834979661251897451852484830557638365637639469830842615710538900742920748732537598411280853150763983103834207436545500681453864831719726791177232028707140374770010207498452799548516744036128630294431285947002610902967105520098797089803487700270666454537844585700197469276612401046700436372565554418922716465271657966103934946476093947879928306143962922640305206616137860994312674650875622338633266739651719427111883299406063157157765839955342798637322325803534910170782897764527537319480893763038457626481609840508842039595001531974480069231942050075194387798936677877978432081756507320796341094454320304200590137272795257199786910800853735990813051658665877200176494804803782589356915831074882043636396662111421148246999624911673806130081890287431662491522103785181683997451619158861823031527721010471555429935248870312664556496860091085240803184145516195054866228673606708338753792176485356868340614630833466020603486361828466819080290448010597985122751877259593997217607983728519349581599845378292913636539500225431743146699398140608546719525321364586909234742438512035888793716644214598443380642322167412133967309670165924106730546786566209869840623810713521536115567107924737708037467907988263946819061144450951725664759952737473154104522106312760356761115640785701956716808086247860289787743798595015635831834813422920886712182125123716235882937005660789693537072214729947697675123462378135013642107549610626851788265865726352474432416641835204196163342994719633575195653220226786262309588689310511128396046050924846889709253050767314494483703877383014868703453015139150451832423168469922301441449377571082673001397676179168562087093490789901843945668288995541738582441471571966841007714382215827855191878798674167263240003356806874453574173756832991942883091210533687679035660707675468698755311881167733271602512153055467042158104774125633250241793122496542679692543163703806038111642353855003406463200283856972720678512385644692353056140434645773148419935321140600524706745346557206972743493575763086844770879671689930381470223205783473488633141951162394573309462743609130980575810612927209973883678812274917828207019948927301685728131888757400408829928861191287315151026440695221735073250024405992555323330088543422243014261446844267269402777119939523723659759265888924730419894671713011163645666905764031276241935115838619098571386506174557058345967425940715913342177394372866008873013443277866844106102659976759317567294873010332660242077854953622001189584236247950246868645712053706417810462766323880651675707227605818948137991092926634616833443666273847058357349076644261666477323380988217421272430959844970610370004491271944302444323033362989725545055702745013069186718068283919864908549261246964305089065980931509327479950303907188958879510180792223063156948587596591504238788268072685566608862925135187861370590286658029540100409960933401661055107828708215070327424595147671248734524768456437834891629373651014205369902194089667430089246597482426348360531761549093926022583778283992925071573794344513860710444272984927687705810214716240864000352797558586596928629147848262329991252719068729851185353153958507241109792891809738926674262914718399535633091289111693635946233693227303642696223971026224208490949490998470039596463731095873856708230701436285930945838259240973512852261248367059927789985557164765244635064788304512590558383879546327992216287899115379637654038629603374951818889855449896747784651814531012097701214943182695080827710013471387914136881459241834914170670666588538454253511745194562052207224983638456818291098064867001661800765298650965745795967626489131169584622544556502089786366244950184730541454308832207688723398947753913197979094969031844018628230018678685844953747572625977376398915359016454454823372986565149811732359501821603266283902200983211503525817408042175026358567802013481862612012452499831025940388495998111656698261745553707802645295814573922778376092947779857033308961086714010008948999341634590051357882913770802987987496227112979112165470348953354172254819614507341214043430942324888853168152943495999040338519225635565196710579669295804548961694155524867230490728292664787630478829782799166259781880632361625838708089103076968529929683882375451622031057620135073472856727808464420528930690921232114437568893400424317021369862545201039799263899329266796757549919536578767007967989634081190959591859025353205029468960023988396055556938797353299717194176171183045768364120553522898425143008763687615343614033497420436435742591023770459195298301031614097996872499588985141044676762293667051169525829339052090806356701789611388739178697955530183792260724561954334247457589478637665435946795054262846361511174602730790814044984686637370768333029989395251792028589908657160220339784199502013574655117018450664980227227612491275119864389374929126228211985036261615036877613914249456218231247144907063816060138080461541162829606201053227055701783113278662756769903483095248316991725081919221911081088079950239592231168713874812398638890391964384752944194666658118873225646385062895034361291712953142634386279589916148683367444199557067533542925965208427660770676583910131439948034885741627253736519998358554034939666542509890713315651346108432858779980012742186384666907189784533264476423093424227231491679315400054584069878913658859770035391077091425622478027394583595434899166429869551679482456330774376405366645858807926174488909253481896825468057905470024796440491052982359409199517471027792783593066371058685996562674480477532131501152125159905032287665253986306751396879260694269816095950756741705954283988298178869506553839720971083806746357350661667599797732984891782242729793781397629230669342200806770875047806364648573701635281491880316948455514331862575865379857649289353739532287961704549461984895769563289844220695426759855116809144292906526790301255533076628333583583468732986540730459173205659986025096592831512819642762044339621759511538174685991071830142979311534785135768102496270724613442238294048004512311597093882334273525003622384001492026611745396363599313433375041228871313413633820420167791060504763554362298830270939754740881991696313943365804521584312679987679361995701499124684561829314453037455211833143820680238439458049761977049338942255728075552183177436880330285795570822774213945466760689559074353502106008221591549666090284495612110622861790412425684949942985230909875582892142868476390852087571429391239747618664688609027423453573111159533282606577807920237957177683596868970966558692844046430411770171444126404408043306996680503397303600804933444601426657107397121429202114139969143385857368960708465194697948531215475402255195770039107678830219717228668417288881922643179624953337441253499443921062207849223992094530599588411498769871225835288219234002044349129420999108287935606523666171605445722594359202759924564160467254486797536413146772885677294025358649345387483324434797538325534413616393467294111488868013228964014068356847380422064852452577596810811000939822803863973531977835701038077582890222096781887234984637307693830112698450860181540185350542120041682899638729357432981974366796479006311308426469918472709030126440279144759682454856794975506961895510373776272827273499053551338319743014325015310677983664537705112600421690899848383736866831510293425658913941557605990081379679885875189797804522230232782382812616165621861145128512619363666277780442201683680453425411439108351338646546862375596926487557637877319212598384230274281163674079017874222459079972092466722715652092936699006121318403033461274646732966254595583207152178476193839324537412469041320713221879528674204083947790940615392081783065540189262085093664553509917543855517417433129896909701667365454795894159697737127307976275686560640831753480956511631339645674365347084897511433365217608384703334788282629432042339493541711513135191682576740477481364455559650034536493097346348120478208283559302212556610010619316595439820001896909583241496767120476720483613539481129399994951097877259271333582819272155701976436485553000964135636405522637960026512672416306005588821077165697454682957996240415950602479711634108550525581188657508715713765056864326161773799616266104190979197146631610875232522778622270893037597317995697179457388860850098986627093135787220447226866273197278782901950599484847152215066831662733794404134642927937264172988406327239983824036208994321732546515392337622494147637497674373860513098083149448051064956494304754284527156690650056550143910696539933685495167557997594455588836219937576069553498444915433107825377234542051076083363936608610564440300487562902022069225763614653093772012785456256725046010528591272982288126056784593894940779824603660018097475099979249928655376500679315342652427468424878972232694560078895650934722540144292259079607964132379208966928654112744850363839622157929487752452236597639078115581976705335012853180708556644287207478182328016324084383196260411579744452971823450185244927428832185041774809718377691949209309577964467731322839884550392015811063539695083177041396697835221053336257960585994000534675446130867335701920856304381503784020131999915464829719423707789884136566765782150756744782470046611733198599453935967526037997767246505696313340410693234694887182518527079667568513307999788153182119368686576732715602926810976129348934773577738403376070697139872057506702109270990783896297767624959838497035205006077737377013640946598948498869842312174842335792792369729063786108182469015326467653894818141156406508113327021083214546053450426959661671477660940012902863855547855266618969301551287691490484913220606078389334506802739504086792630703581348288970249095948707224728829679545613695741894298077712267411053806687391262052102124891531827424401905148637496031570352417993705527674738202728794242452490353559594015131404027732249124473903960980789418315351862981845016963687715015989249377370677902430888413299990336951279300717502710500665251398811900081757785428129743440744714734643996496019500788964233715084557737179967822858300421514539370394495372728424384093361684218563600996639194217347708261297393455250652284059923415120991182140255978221710578032683065911207013456740652069223892269311850090614289866261909687377458552125151411086994354298605811303539376861919346850871752085828649520375080285684293466711141762273884637961412675165657385562428148366010022231972009043080996767391303871263662921959904826800485353810747974140452716630821753254376803229454799963382546710034717845003708531867717391932310658097117390136411881495356233092552920119636051068832825618118364932742827015375107067409133564236456261350936555978732391707220781247787033267084133526872417659461172000602021678049820791265108400790934609768278962820215205189654193817259219704120818352632967307219699664893826855534964082111226794316701121507674551592933330436714335024968000834738527759820603050841923742868651216588388220009502772630596601545371742246139820102533880963609022333436647351680449997712961835684588337240216471800936543235614623311424672432579765748113028361333659549404000552672809626799097994613110864403322498558340879725875793855127404665776267256999569020658572835172841495584606469276438932135493789535764173865604680481136345589127955264373183139459552628625137983308093012782149920221200542706820593969705763995279380783807889457006117509614056956845200208459990475333680703440894415896624167163558381303609511473838314058591145649596922785964383871969050020961555315222729598166236857647751323536684104859405259846546458887023360555882900004615969540658296451111322346508395313947004817895171881681355993510189799652218088748401038704442882080242568908350940538922909442481311063578435608870813197621618295897504753675306009174560282115844577926064209095925917593887335376598857207703191189262975495729871370449643169370751096494809113220889306817813102554156032953950985474633748155808408606390952891430454934025753869449689611738920296549263786611919813310545443161299131008907427042155135204363471321518011359139529748588324552078961059249540480339495698883450381810605072514748000861608694423773976700522049534268533775956723529425601529904173105255647756605658054632902741161405103312294005785284187169085537280862455245815540150483685246198972196412162870317150569319525066769846471403307526174911111234614953591612618164394402840408165118681199607671412874053127247422578160467845382792009453433026384808235183877104246446093773951420080182200308029782515294940863933333994406029875403605785266101525198791051342086998811578412711971887281639088222484859198359368456825435149354803035346771717845369373608794394776838307205212189742319409475852378034025290266654112215327685818444012194136640960925948876246868168078699627369924987578331540984322040700131149406992321376720976420728899262645183131289747930825770267848814421569047560364217962196213553201333919940603422639493731771775218757106471332220693058872757762357238974579438430710404409951809703940618515318767357644688021533623874789749435479468254564993994409754396262377020476926248624300937867358585304975735128515208452136745425886298095079354126338068881391221760571861438396137522314397276321064656903001596647226951642019444467884158286360207884687376890622315923464181510826936235988111904533979889547057674163761975839960200542205500737466995602983562136798571170900260670260444924248935653019331539843725897582391894424180039877112725405874536729895917896242521236851887871728598436417866475295272674767637646922083187067915791396041595971101468682415623628127830018070343898789970507801231338524399357830170958356649409801205698448862471926909550759062578098647245461282252908355771609031251866007501836101530219159276513399769477085408398474613894246905989902820634760463889183440110087768183926677243612680731061447189011900822067519617678169092962347091153003106376802525409705669510188360630252723059412671383453294630771253560036252775417478257008495367788786879951499315385583649256128839642013491175273995919739587340842778124631233205269691817681827251496297190927700018304545847007852603909575815728021663556377671595612635553512069362107968602480804135087230677167131578446478900380800287570642691176631295733053903898760026776601165586379138339865730860816171737813347048339458750773931762188585160626299085878243213498569284690540758369561982798868044779152347037980895850424538372042145922296349007131073534433745426222215628721701248931471733740300949569194458580820364768444838361297703022557085073512810840353858402413953942713905974101344515314436535900281949698463985855004578941557034462190324289004976944392791889531297836673237257429004048924894297659832901108418359917487052572985884694106596978918613318527087973512698648493418730413944998076145672883269189742180559111324296987779543296189304905482676927554851123493568675588734676902019346597753056745331466012757778411738185608074131746182613164401766332408398205905723865637680333836246417143278517468000957584876812592019668296239298827597680425347191982350617770793684433094839335506331690404335790084294090709939049014153565100716459141120748229596891992113618201757258356695074918000375803632229128433214030968339099409421307598366769952162540308217975212780181095758503898108574731372699210200687411612046982042424551232699827942571906322498911073454661341186733371634692425588655463682859707869888345753275387563525167157894963955258483620461002802257589817310330438345124158854867405873198580504802388176220441553172166879669288382530592099411053171292702341264266504875497145476742377202814670221531794773062743662156336543425580353102933102580603161099551488502297493186468740546470592199698876514307272165936022431330657650857951531263725035857245083720476505466754594433480713907848364803345603516490950106582117579460048759486072873556458578254425261682697952546079998750895236088629971050904315413860918609894089887023285575997677945561768530153345816593232262838555542090723237419357475969586582258729084785139997899512305978881929095158907388682671717726101104648003779527193257530109929208089285357321971759558153717913035832244642332913053404302577615683667513980254291826747130464006190595437003264082182727162671570507066894465079508894379530601684222226212009064149009566011398215845887601292339331016926941618979459137128243706798064845977376438643643056587064818025163528100771968858192241490815260203800942249601820622835167592986535926155369324026796017517358651714047674396209962247236337843691141619694956320146840094911960555988872694345355790715720450527654832533577461604462715170964245871497300597700288322456844665726168511343518702983286188758066453959836721163630624219693067884503935426392472736536094030001054161398421918748177235360732177521690162587813954806195496620087953492754672379805567742512905146423964320368700002567065964892950362746482048495983731799958351014752439047516310741643772860807523521992016590326747464916360104822336291216765876068887627370235237317722716111397239721599397370348812087098839362114328600458705655180906569082143387343522857309051789864283665192329248784986106664053613692490925676472468828604586688603860737919661388977339460204183582493819412973707562995017393503158417047788310898202859194443397694857574289172600431612591163879987514686682295680755386895470783729590731425968597708154290962001987358932704526861293026614788073738565153271195547345043337068295791842689639873904202332850417632814865490355361943336194819195899066748666333219529703165587884638526524638141197790803064967691211996420979065343322107339339396935547919589314170833651267826958863229819398890197840035116214756367102996568752240742244314219272041749199019605778120504780359903164692760005652900657698182978571417530367204940546834853728895633293054644059216219559264238021566846429014874369297875857535820022148054889216118155601857482840346651533133222070510878919197635670948255388372442837979758418888298203358455457760230973296961536089754249829016126846808567677150353824008838561102505144665924289204648271243348828640090956416520134519465142202745621343847590121017053175966791996457163975117532927878362207950281321773686567423792395502886905980564331893652674632884760978462433587436805603579035634350470576405070347751634612775018616043079942639311544449123032192453102550498629810548603782512721392294047058943806609658319167700686729899202954290000625209602025584645334453667812898028775105389551617712769633078589420139634716010616075903430960439313236902034436896286232344754883904054343399275523902123603408221002396354974192112179875618621532841790327065390771892677251187544141542824058759242626671634015743159257860335693835626854336690811684963157385537841598016372860636403301871686721510999798658884710891786431917850501719999863683607145921610264571075046093922815597308286144391294903475476100144953068681637043696777011208278838452176282928912734766159242041438219753764371681268116817439522171145496565691229324072550234209639792182331230242712899335721200201466239325042577750874453720182348425907813805048277957988573755177441795510133220676025111294896426384218150905839442297103261347600621969243011392748585662212613997129713741538852688210219770576297192971904587736264629494989531224311166765740956651321311092459678435478224546130850194993524361349637012445434102535044010311882082013519316605597812864922832434843821224722833836014859916841795437101842560784301710909424932216871347076724889368780326227766701938840340950615994464813556658768880914711069905792382518702679402524195322172204905752455919790540283059508154739783428175982134272625701268930611949930924207988927836167812656999875538370132918722335511955803272603464197367479589898098148877432019214836959923602814144320005577603901717574893616615617189896949940149690509663042442306434857089125080582906269482682811500704830970877746730703469218673283312932941647642260366611330924126084516687625378642353395375571964885300678669773528336030670299787493836034892943672021231931598734970043683439626523133167727216418634924911655474813291857490781375304924529347092594723296829102291351434838445923085461564765254388719875773082266752610925075939000562321489112426542697841852379695947875512399849624943332570112175547274797220960567891457477046314882223283886826654942743189467356531497916548933751537761245813480391512976031719531982844986755824924168316672901757336639546432635385329100321757277612841170634784096809309588321815660018754035314193733643234360675292212261052105595659108188626466910553558887890382349002202185761816490835734081757504095510530159657261115011466333638602136533969846766207930407908408176479325579935311761531756915413262152330364285915913381028993321899652654689470463670306377125250275382229026916817034862655310658292696070249079274225706830258406183168813458949432640725915526962270964284815065061954398819400820012508178002718624609197641860291282923350207028327929387292628431332229421437383786310877573370244114687861258079665886753239465588260068129592649456491447679516679423793887875422661250209684093756350010276670558611400808407513308264237554472797104276708645374539997934399570752881106961499775553291095417378137810501950427437476756986387618927460475820923880813099766394852226120860229204956470541530571058912755946898620592519187266733037483641571714502890893273849258142669473366572179565639857493592544106679067757348615279396097474492420282539805953429687740928126839546262077532303014744910835628175370099332991650021324864251650320349891868037523080333226691512768690876268036686300910375079631172906991390221178192899635388182997921190673512859895864491790129137562896080619371191363304795860980338826244226235494593965414043057208631860053547991745674222606286406221966551939094065529341540292392105339958726238840428527583728364461800433748701324383942359894972228431659246674827982182111310002400777853121478949092500798975885566430061103944895633144306021859596136019972250289024857515225135883395084340291470133728314582640416029069484888214700272075201060006135439989739444878153239005752177467614810207092582158519880460589941467661581589375954402623138951299468843567481475362806437057110863987896633303858653336605197368688031733267331113827654852842375610440581515300649076651252400538866767664262773851545334687138291602931498086323442697381283592731597673820142666846224679307988497774160759390732454009096786548822283278900721598774444794106856676346660448785467268762495894629103799162654857184207259976329212252543091377232223636777943267427185003858793049037689224609721429755607058944796095363159816902499665667186549185233753978287722828404018122569051155258374803667618086277967754218783330953090936937912406453339484869987836655945624470964565087203628300333036127354605403935891081463054249552322154337174664564837395190412590072196009772795760518723276630047712877011028610920170755415944722682471309444313604591959682037138600440448656677441483652178364368817858418576148850857984809441646519579904104803459643882943235677365269387203617396762967424154872699816673409931381899434305540890272909420557229537575795624045555060170600576782416386592625931118488576501502241472876736766711022710042330696332771085181089474087389784684822724950676010964608091627729664596933746664649928854943091067470748548919020219238324024372377024637498970702864117700381215400727984010496840355128412027130147026504954119683791255638663117474800670661354454043026438423443378934008039057350160420420862211631346589028615134089286254210040238389003660108269795499774103120256384508484165424593484026159376659135100485595900346720231790189771268886581324022716924147918092035045746770059739485062886131019100658868175029098340052773486510384601438581603903057219054451276383096340096303910700231444846985152206601082697311072395709178630787654845475813845085853226564617327926655207898063366382206919606082064832051574672548178928876273131285738222699490839074176597992462651417141288019804699455968693111516209838149137450432286213355976937299112997848839683329938344245866951920638909736696721091576267240861774395746998691187936575363990586298126310286387210550137278343024015386228581576663472528699072691522107448764328159028733015550143584292624671337971956140867329459444652718045151175177665424677177038845350247614807433042627803584587177586714563339744056551022251330801841077264639012337610840700020328226333177456769839088794436699064078237864847295119178507749475498305817559947949830285841201378618654206782946527277738305095280173466728207089506544281923062760549100859094928832428262051612258741357978628054540544452193167965810557311418253282952403235423151595445099418281996840763136273649369434792436192334726821869425710535877067771017990940724184770620976330393925668157676305341583929893830435874284620095042402208165128022540898315147058314657843429988224138666480465329739388100975678494885242002695691921938664609951429488607092178577026024092622020173203999934053780459773993126058734826846298771271384158767996685122526684806291127995585081809323352035904731196294988836139204940581370350177554032013885745853032310237997295578275974612588206514776753170913948441286817020438945829921881098258100570082646998701642072019407693193228571452255415825740619961575762930919934104130446163891542305217973832481786453913309649406906351467230847780800869804940630381375084568239903673578140261233117657079480314209325281342692100389804376338640351248897295645904270418401431843840175357065062181792675073714637505211560672680922429171728216923169872591324799235258466934379521984759504616014274256899124740409855068390618625809885725869601674983912530569032929927854462757086460960621398747341026167594997386903821963269636984575028196768552770297945543961797377543766718053322695437660751708771308101869712969771928276048745785058038447431089751333880027377626632496874790959737493181255845620058025560304176231846220402161314203043542190557432521320152787524364179059635103475615280902188118414823250061327869222630082381479618984031783261502804535779431583259104655562399087933825130552901677236826028193137678346515442269182655434509271747480515943665310998890772284080312262958578556948590735993186200048655808386683162674556659876116029072292918265525471551476799244819445197081784103824362543709340502449544793426290000919366717918600195332625161656191269036092375464701194174423991734529879546701634558709683553537721613273660774907610500474033379298687503849006761101829894940723324334776414709530039841308512690106435310447119415378711772533929699600051030090812576100615808815968980113767435032815666585462092068590576787100126923692213457964009395349418673712527439770470052259615373709210153598411542694499507672813854601666151686971293830403787508922384884002789535608365323518778284468357702674100789507176660594367420468000756525399058584554931403798692253156693288958110759711399695150026702311994254441757024222594574124179987321354206440141292466798323791708144263029365336801084499678133340462264824705074875865936370948988761416856355807946759220796542464501755589026154093683961000253040003090112158880777621406380922793097142489286911239242868900451819210124003256429684122306297324952162461917606787692650268855463488547806550806085877222908268232730851891808851092261240534385283243674612373575273944108275555293773172636382048619728936936776638347041580972328657881248119392613841558327637042945309163257193977701622099207914725190380287885571651020086082332360875116154675899105927883683199349005145442453521079796280194820094108878491556473333569804876651083040244552252722774342167914647309382296989718408154614568774149892177426727230875988234126869822669970086743010844565758299330435313046141591488794071050582570363579268678551006436611855600001663945564207247875693908952154693762754015930071270811103131450685186073663139075767605272627451849846094707225746040840218548901455156269223085644035374533465729161519800546820875594887302477437019923214152495794520495476308685625347420079058847757816872901028107272690885838373757467504709866602509152873286737650236169019661588760152568045308688113415806068753901283017494712441762558591190557719166799921662881793955704814710229652748567860919987280995180428251841771692369542756847368161282022298777633203378440505670308357193995960914189748921093553737768758907604270394558257544503318981351601942097814650596525649168132352384644772543165805633071600658217685307966362750021839229917343933270116548032095846944410403170104698216066870166853215700098953749366612536791007035724983828062287351655041949766402323779935591119987009586693142254210741618250436993093859666206446525145890455336338779412086620559834884311226597738169509183686603081487535865265999819001676829619253760451937681189197210452402131165228505839847120155236607919251121865341507078834593538240956448347497030820914301957250523981884853458101057054855814845491463581522750526271789990389961187562943506486236788654923676353288469246465334604562751293780452238109416804543885825428574559561148649702137405491995517629124798333374188163233041599628623401702968288772238095697347582442313229480889427287531461037739883362038181860965470534917413598775742992261065097098807011589847246898696452733894023977524849149812587437617470575699881652508387534361234239138460079439670219481481293408513060574138516119783140879950867373220446710647453149892048044675609345613217840620544078988483537046234221257215842992179272974419908217771071600834508611944522585843604433044429888734003891550098272214712600792228413769432494756805167099919932598684453814587978585169971281895297897998398818903745736259965668072285287147207869896680154271623463338243147497684650993468314482904816944537305842992208544559190068787705141808954364156291189289995816788006080258295903470678541703116442894550087430455680187283256308922936910114892924607185662383328758378069751914078248965386014199286809208342719639231551587182723146004234081702449826616310650282786979495126514594878888643303723127755583318764608720069169879819650106584033661711124799424246126258948161102927196811478165253412882653068129504965432832878139586351656468498770941247332870227710657233930585979155870766222656969785819860528173555041465063313534578747921322179705219572002435077692947620137274687629472148264313733349585551107549119986807072658240179115228765297268984087696972553644404581524445225671766030654521869507052712037010279225035614286661434976544949011790165432878434919407227373774899563198180717338971025392530336483574325832107567651672915874630812717551495580021632362359174253299539289808118430336860908722140385721849629690274853679832054760990585165542559012048291259455372444844828023704296735124780247307112079139002221503256546359327564313637168559583755420686899832179560895527440431594160956717624984875952050996667636595107986256963694400732427075248531727939437754030319271197147233025807302012943117243358210866085319022160289691914518830722090812689720916576942654135250643931915145481895061774144732054314026077023022375648244903659878282287687936288818772341866849660117603198411475632002273749186147931619507145349179293490502063499432411506407658702933709638074547213480159612392508383871219547265324670856776461044492890711992028964509287556181239221471569884563296189405026869435956566893555035724987360636971140081245174947284226648447418598754448722258866008494986379601727290134108460455773138775451225094139394601453392873411853586828017093007798011247876487715744322531963776753375468069471535137703692031246046217740761019550494841068721163223454812980694724181941661773709324014642763146800083582866302051316413478131779022501292384219909680433928852036118047161803008685505571894729322994834223790016482283483402896758614333694842140756305748785984638484117280056174347365726690800871202519846198701358253501578479699302791645595631897209897001282522379456696350643777028727407607804806661607123053476984178242520042794972453657130127190157408350327036813441918547641341551504117516953445072664156969743168102431599230982858011639495193515287193254732907124500357977153166041734373774484222518534701099778939347344115597486603372843911492382357792421158278516092144458024672474159824125516893412195612244740802562880710989653861140147730599064200094377794331083507203523503371353682324570203623474022589594456863417496594217506908410568433503972448236218061447417873167143438677558215451406440139140562699617076900419600204687340563943660007284231579185382740846269498928324634447486340179817936478443989288342566663337777942473083781371733602408923932073635286569724418842431042541286909581871582788611350408779407121840853908199870245528558161729978602338425053605861892283697665735909767663221045266378886776407391814639295451777036709213698394791261220735678073670363666740267145604501559642592758817704396000544819632394531900038584778699457451817315685306997955248203231614526743373911422092004144698884178584368794648616286470917640134218983181649729035160704101236974071130806640187937427895401715371212193365894374138322846262354925430189367681212659984538461901473173707260358023406940309506132533935965137653599032860830277609814764227653059265362941512832589405114832200898455085112473348865321880236580265847060375445436178059855955151177486627082248962421047054283457927335671888689939155500807729825402152756671145122071411460229778447741518375020315991066804702604136855793854320749213549152615730257679970624258140175798499531531682339022989240042657250713746990227319559505534111809067195381906945624077656461883812459414299245940170332301577129115044679781017274939084743423250969149811994989821748068422596755676797134973246842302642909893231447393582698864733754209618231955903125088048722836378097941015405985585710113963866432830939281767607879723304943661318235844253097088006770023041284200387544247732626819336190559173696710072194333261279814894748306006030787549050860136367742814956398498300708539213248873754366288211433440799125895292273114657999807863886190620662355393460762755248004396161099873333821407190417441082682176434121498983310443091374931787396113198774691994803135217167361368055501386402449545030310469925765907495990966856605930489510974529092080689617898500190799745105621897984035706681599512741109948633432678249638449647225586974953271342374677673462311378496444432031313958941726548138586198952262342415412142940158614688232352110269462343256584793490359607323485982427609558265023318221637633146264687993121548619045024012552390093079375155162589381176716720188538679352290899562607116097663980919896828583942827292049740898680209824260364429134137326012362683382764572539475180540378895745772280396637067145278230925368255712727881595115082694496950318043674988216256463232912813579892961344982638553630903337898829681476448542689181094272837046200157341472397522837489786904543074400973108600386347550088130673284310012694150154825091916849836347057963991436940140217661389103875121251430058735266784096180080837947195608889007513133112686075270999750038095885897862697896315925209178625100337312681430650335679497000774992582139141724383821148325302104225656085731090893824354014546700058937898286170679744302414404307220121547592747492015435348120882519587803145206440605864180169146023780724758748077198112519553674223413955283190392919536676862363924226616875086457475604334864823309509623731971057914878193130443503344541927879264037531962336215509223441637275171374345670887721740863070400355454453543222821637540174553820354141279046864716944505932429128035453296757776158040405771344683725709597558684800137834635223621069227881389380693172489517838092350743554044812730876279146120830672254580519244744753785245749891828909328138733290331621741863552082062961708849882856130889009440859420850075437965230555229115211372520436184580247176543656753650278508231537216961317980695741760907803544512659423275563906401776328607755424752070539538907087916807950952200163212009589880818873881418381249346559145608116649635905560958140160983489533803443252586596541008096955190159815882435408477064986253511154565649189515562548443387370763417708768913247259986010108942895657096257605031722750403127183613414818582593254937162249258666172852189645424892589734394826988727560002665305711553394056551870908164637202758171138365154848452347720217758792028704201451498338758443847808383548923477837278074415038764249315257662241185520566548543895928140564755279540535492195941616908459283545419688535326589017953530647877215521583733498599509194905139425733564487466516668769210577023985440090755588030269816611217675059972932869298228947399996490177600407581924130731875311489605889806780384087712427355920633357821383441886961587030029099613928569904156170251399652559984892387501602397457346728394812655754198280981538831918869230996673781461901482169932769876274929006482130461042381684416878803243119821175389471116280666463959198996228289970411478299167289854874952483051479974839539623450605738398281648739156711673297889019587764551656205095541800797802363053146288260221344674993331810318222484949127765376691494751067457518931345052648966255172124151993745064223754343310008181579682357929963131321915708425673597302148098325038493040353875912530221402964787433307645938752912003422631994189769303659498410622453871091257847169280269447212032363688411716450842813884626639476374575657142649830966229809739456711760534011713110021831271889197495726802898164176810501907714518954571639353611891566218526369185428711914274089247114198743752604898747991722265067291809774016914011056396925640001828997562829052010514123206705314281297831987927024258246548790597199581644641181818326438914125217411770799536690512580411490780350452610562315894992409945494997584538087763479321033301497655750842913922673017183603208825408580137841338989243684370986341146463943766392038986101819746985483833823139861002340381958469497056961501378080589626069566875264800436851921248450587110706127048656605230238466674433009400755202302289565215664796144205154709934810208930381616791090573552966070018821285565362485325026228805339872930685968523939346857985223214462719781320438401757084789959614169289616376780316957364692666907877011356945907340316690437793451212163589309970248587106819203110174520202101465744935922314336933748349518260965481018559547570990319329232874174190104629111655237703047771862364909630672523038959950507210103753033110789327127502179388555975719379963817974833683683952624519506537882869636440121734763530111296895756748644363530205107891833118250399028484472311574424406785631878925732386723092838572725808585050654536238373213259124319086784707528500857728548431579063508068257305049234198997489030420061696061735389038650664208985569121058017440637780767911875652572555434454851467165482081251565159535117117016855432626051748938232941800109143907705161376418836575647391686871607905106060592947534089304967695997739014873323051307319040209387163040439841823563290341690008579605414764246970820755541724341307867485966410823326348988493263462158546890770825627491194806760937503433366713282776904137994600715933628748508740842680635970799578259942647281024648561529159253601779612338286318036352301196701762240187131261344206103842911401604938964368079778705863161149071779488506445919447280329080563737334653294388589537245594422618810716857126629375823035253792946282214152268552139790775940604442984155451774877912125028805053952393550743945552540619914437363867742816218157563626533773589725937426759293489179361423737361076505710482791095741393245682485167172835671088419096190166303105452228536221654762840365384811001583368572899288960691038456434944267573534337783799996398895820353348080126717516390076969670809027038437365647578502919104426462223787144500024930434676817964812703854390342513049132426735073192529101079418603927615516410360019618215747594288810153966299640321066710177700521029874276186587798969303032495380919773939764820259459342359855825250333396819334423270979653846801559736605612704244576127371203595491288754411666656369758746447688299787234872267596058846732852302955724478839240818752942343439283761240283557494993350792137635509415724187053244902436588231543835849861931845560163099102742690529499765403450362821130787704350521994870176623425700176141189307645562363493517715411641325308776878222699170974362108823391348667595103120994865208213110315731023217574138876603276775708905512020512622788748837468261919647051648128620318511612837170152234679010969635631558451505270771040479411396996433982980660612439976737556872674481516224482909815535765484792902169821568582678797426586836161849101018541387968459001973348990102695781322832792377598864988448617387299003517884569215607682280550351767849743543693433267992455296985224128935602048625025463531987149267957245442724436466425928577838840639763138534394093532247686742371007674719490184428037104501250988725472265745574135482828110481484416416568237271135817600488780908261938686595352336844565526497800159920862910275815272948623106802820397794837625855408085388703734196789600662336390053838343122170558487153358356060520609500551098657423678224649555853178633104786523732298291996022677334397518140024834840960556840512929060641905906082779604468437847248852290388661889235040425682521490354643935329675352141204300353441126801982085637022606776789406907096792341131813156564959867424020798543370988613498429117878072338052581149896997973839016009888840867328329459094122013448664600414586549422692272163159015579416141293376355080696466224015660133210771773118571489595608894173478617009199616348574524435744044104562948513725487548739904563356127276818818893017031451178253632086211654362571518563964202539096150603946540638203083811188896446089053978776300853527197110411756979389449276368118674429802107981494011041659913744060255964543970097753380622613712258016993095168546872400906162138810517107117508202251951594209235708301212236806415982382540443214349670541269207529537784463119918668997459787734134044742547799187850100505290289457824293788773203306203773607761737300830786781090747603774656109366945247177473205007598309796357021299768414073942837762603318842064853466554439575577320498090917958116419441359690668880193747884621175361310960388957099225520844424509474702813102178179585184275673239501229088398523682423042143540406459518030124695678421473903231592698929945581503554636883700246588672611619344749656872384749207559587137362929537245908620775611416144098424274443296077480657549086652633339243755426884472926102346522446401458123121814045281048825318385741454445480830942114288176257947910373380533709774473172162873308379405918899863400057037474735381486716815221116488627654747902616556751119342011248949861688024426956165695722306255283737828553231344210795753821807839958264931476223244929011242630053865168609340707625550650053885407849580865831015802124005083813912989185549656024989600855440354465024948918372756954363095574160988229058366609638893895090150335655514713918504410352924428519429595016142725602980877965875798889777934190153637162833609220701674380658497408536090157252944544851470596896894396672119169896137091466222531874268433232505503686505992532315259887230593577325772747229610660776978158905947900888814712204966665673777836563669427927643078899134336275196039028242371923188890328871090539183983739371972355588266071227450675370443737159237399353048859195254203916776669960555870734929639181654051024292363538208093168459313846053055117455405202194347904501441237347959848908549517733834415709195305167645722477295171367089212314318076438533457190896007338363674256798804430972916103618743989302255194464580485366196399467683262990424863332588732019313816087991213926610406396816022621181861291825443876046304948889445216299549667742047008120494079450752006675110245210444858393268262752959387369580412722038311490410991834112544355262016052116797295196672351166633157984656136795036086736768314826990894148674246674228581538009032257055327224864024258970160205563317661886410551644011889416248671786844606863433212277890417882293410339874163702492923579791591197363971741302960343260358060333579614027068233796915461802198478097230081511995706809129240884642509584608168722040816838484590046638687410816834408708455496418745575061691456550229426755949673285416586121650240095096636410418887013264814084078371672766551260890323015172442064797029302186343847004928172318694640718792176140604146135538645783685991442730078275159160749688555346996451522918764613176109076882497563369362192557151369521372313320166628846847314570670498219321073316261952771591604321739733765495100604396506945304998862806389594877453840012920274650408578493422514237202010039998281224646400336341860095524022514203871846461798656160416953323043038661616723120834350434485934820839554144061117139867748863147382780730242588868673206876930384628670538650723695464829885318149224954896078030720750458685574541843860682290967807319209425997732366017009428781481566730163631251831752242414142821070025765844841038118763537224435426929424971242836927114143500322272424100744780491639820453870007026662402809851507814909363282580304963109583851140343519716795220427768188490391624278826862525324170882965583374524131280421709238340703702427559170136114308047476589740182377351232029033844317278227460409606858919936628279186444081999649780535609394003442657883248417636233529609135958098395123069099586394334886324056859640262628786103468547194039863141503811967938628002860835223620620105940971308441645485774703598921942780017560096866521378300575430132561517885571859278236077811280762881320633403669056992151004834302352970381866466325879326912076757534286119002570363603233017687359176384095509522299892228673278669185097513314352257805939848020175032028718711533146484076011405338016679701045598923260069806664932744127275573125416826764627544204946070109840460594358552591011702595783830394542861642261826606304846594095310836581672800119378044499411492704524401725775139061975715854770485320840855816747081315410307285482008826795330736982965064161994626786056017596368475655779993680633300785284628774296421363369089640077984670055123184679692808670535915134156460920798684448660986747737315502478966709672873927041487533370901173452121829434715288549165101084131334963478876728225205434586934871674487268672557716812982445399791369820069229737639116674744057189234636600382441991664642629094089434282618078917702681729419803270422288444151089984760581851398064447165968856999220444018491819482909396960295302576807002430145007656499848387308716501250308320690988703984606615475213371822998175981533664367422734871786446991228055594295689239541675645692583421407028543154943033778776771679233367039209184677496621754508612250051218761535763344997635784137027248034852805774910477462805997633708145719361256878660339910745704467291555685900891337841753072466878734458304613516048577033927849515896266161828981049494137112614895340213002287110250130170273245511159130883580289387798622796007519359139592655520280545583730227869909709732168892900976387211131120782119768744930261408289657626875167405803496204314652125423246502834897002284447363760679328285349940693546147751950730464663093146799750638922224780129881716166263036173631044632774658030932715793211734264140720299111833584082108169909060811660831505458790206278165880493846697858080283562997797222404742507167214359282722282773658678831094988408733708237802865836874518227555771798985905012286882436069729984277918810746665766095062333028314393276292270104501589133207767397438498244710345490208565695594923162519597729175319155053929187792644163777311408497977389119404353359515527687284100361121292026069344131360993247545153759482578630281599396325630897746530526088044286367918075732520822225192345957568681624755849050903515353340880839194640183165742207323257818260552345522162186318884855166161643924451161938458235843839383784618044308099319567608376316938102685549435658360158148975223952816683628362097475210287962119131213120327775193055923096609452032722765340294889392366939191289252338043595039222190293807816921362994640712423751114045706894212600282799244873346663115216198808910960498962205773900065567016010346074327094856718791641621823663803023581437776877057633181743079907170930650989041803899963732808066930717888837360144103958172098896841872486089963513776956902464100560880246798404226340991939423625627240221816008267146001696461040613958089849186442967917622606203855760187910012701792994767276824560610644710248903455512509081714278219683369857516272615341238391819779561059607498754374618399426442826752795802741957961675621065435381653821333346537615596461292695328180428884201762483141260558873110552982565985704868628238784444485008005824025376059812317329151043322787240066942890631420081609275657364917443619788927610697789607170707454320189237969953790663095293104633970153891545501780254340824966421499886133994048412532765166154118610788638181886667300908341787520830708955877211279250611938755049591171962295127090678392554994133094432427051106573471463498315914852581533430337680931605541605229822108849755827689758077540621929046622215796213163226853427810763142945822859883982899000343349257916757174390627347811622457975630924204183098014437396074799291646204439821036375232461565458184821401234030518283637582127020684940180555622884419065230687517008429128763231464143362420177832157714448136776924014267580126462774695023611274709624071684730733972395641641760335129553603923488154620031056896630011963757285210841559509726785082638259796049665426591243707789013799045939113687105571756427122629300688929938062694849873805209466258439366922776819429436865027064910381529495970718475112766828934368304867937693429316721169245313920679573947921714976593096871934132931973609157780720761883427812241364673435064315323006814923119775494394454365017777412326438400929592766302159952073504240449023510631704018643694528624403273298829661656088333929777169577543543990907749308480560648222316456765466080310006373783257634432301423160431094366747777497775577030987411115155342298846133590927720062758731848520426058690789871515263840130207130159416356886331767108856899729906851751734853739450929584444491633367134461620742712235464279431509757184098360630069194044234273647864498839669212665958087729106766585861402132522083152221639023871449733739384185041905086450446220184653142868408176459710867249233498393641105207604009599644433124686015184708076590413357730600480290568912012067258236696142746700672267598840183560109278863842038216347426994451376160950811883252528540284483657044784999716104375575235287980890233166212213365346792332560518885501466603740197204345837915828176889774143839656723092440313367501177837377782349237513727541899584398519340673423737301054734567886477449430386822462771384544422232103122102564016457982965922338803777309698550910530384517160432138534720190873549009869204883558466398472849947282631117396311074347717505659811552889157007391569733593877848545455785463949309438113982474581099343993669388935605541616205693247256217571632255500230089907998438800480356328299529536422978436351759056764703377358858595499885712306276067175197665249808348182477765536879821625863646348097721564649675798553218419756818725438609206620490614255084974752405579460998520769031412789642508723605259651847138316711680667678551896538394192645534072409588192703255524320627533128090725472686684620656907504133707256413598209447412790558322675682258810677416749133744383801619290357140612822297913038592230474293155560194440677991186753099013290029399062999453474821672930842227920980854392983825737322657485667662144277551921536063404265592519932158605485765824440004172577589088935865209240822274799991587367631262938156856275805892433650557514512122855809640640496359511675240678122067078841473473954286173175560584311361953235837048028647347568561928926103787872586704355136314310025605741583503671159989586760068835811139001321260623995205274406890812295449952618238472439027291572055999249731145567427040616222961788640149321700787017618530134830412641679409199971639277856312894428910646739599901713359832207899946169123388436314149080449182039680823047380231868819982382318815315920193265665121212849661689113736847191869685930547050911644623296739053772523816750678072404902178811373025773678048480005530069730148013981653128173340749376376006323925302038522330666997764227871238855313864831730874371696533321482910928862348715854223507314401701611777970798176331212298066984518626856545349439508541631051114763541186917762997090368405762138147430224565817730288449220622536335027184904501233388741290828676634107103850442054954025571954282196082607201344875294124325332801110837321204101317179205233869543980721642930900044496510707274045781650291857893800950672582729658840604224967153694775346227102412317730482891192790068541936109799628553979608876833684930608089575324134508325864759194484671869824698469742349256611464155489024984015915845986617639650735948454418629370504498437798862215240645531857723077614496123563511952893053117747389065949251920367704539000209712066147989907591480856466615725949031103850546980908015153393515264639974597924345892888898934593866646001949246028315643498841090060057916352631472447429821250681807680244899434576517357300528768911727483055598346373150115519580669443471200649098273746948191916376244910248792741520281537670012585176340736534542968966813360931101595239183290200824614088878472666560316259517279708285338446021440422110293086844613906670544273133131477685560030730911099289192646626709277512414403448848048701577019656260093764817522882664228279968591534003114816937707460009239693266132433901874547774969808403639366164443135448126296041537987249306853064224536797108739332557775293926364066397724437507418676146434945591476450924348087131709337866970917273874090824071369928254030865260829099362904050116543562786363907464366089222214730182990778176514535879415736108160680276390028609400150548696032391811874758362271810069463241883326716704110019622808399209154241216635293442136695351506518179261060279537580331353993686470462550492860941742811692127355443064112061237976571219712335679649546560425821746752052338003969047072305436937256243583073312305644339598185344958429654671067189861639231151518066028638382572583341064547021468006766937747738328986878846734808902459205314156931435794091080478098906904533511417803012258135669757508529763072983927398770064326844032728567906799679475544595866754453262252661207620581372811839035350653709673079963234039670206462451702895547476878681498315473041588590409301340618037983517798127442980635534946715744169521075911105754879146598638851091624959866236193554074809730848152466328840492898385349061716112829933300343041590004692286842470719768784514118167172021297732496362549184151274230800579502146314530034984329526294248818529650379921397919794976063831649797677775068155866086553899090208455844360630272770493390819487476692898441188043919847744687400913561726472755928460803599398901154466371266021842948503972427455727139954121132533174699792734209004440932326292998478074564295212943738546189037732027165984772878686818602783717283121243913254293266703343136568463489584703089436695558896964547130353923128180631316901937481850481938108110830713954812179107392445708051185103552718368762520611756539179859383072664104805264686851244132490847807795673959287645701737792774720437061122247688364590778136504436739434976142289054228585561151042510394040066765980084750604172469616559655192331805514743731084906411131123734674781675893754305810193703958879440325225727006019996749968166828477348730913512386264332373256387394992002655320238951963866564614810116557195168188208133354916120166338438739129264902123687399392558133052498100783047749202708563301479277248852059338229856293530748361590734456199795910198275254296661468499271159216346910410421894030591494096865796106046510765110718470441421633466659759415296438309065776206160084150916057616926222969656273843823726868806518193731380738803915963630207414893729262321043807082491189298202798580330182584056654215883189708070351092142260455437644158218895211915847005740096138070633424747526960196960472425195057060777858766297541556561396654457165884445528596728155222268565045926528160246643942334879379915760581818355595536198429956207669892480272303139372687338531743757617113073835110488903096931145002802965857299940213293947151008001969379725823095920566667342687169378943893710299416110652112663030304187005744210394676150357658436012790749465942436944012704092877226528206391693472320500951429906403652842757374188986074398821415615770615576790214914483531875574002128129503030744063776417676448801967042127857510488394086974551826982410376843590090379542459861240163724654301563720055030360726717739768205025368931653219237361065089745908788269040919623318168573498964978573413691001115433332997065404289954977956983305778810095010459718280729358422145466279585858674694756849427593179770378752855265434953021059565012314616166278922451651470211583214555363172629597530904896320913538132828900058877327875288336088567632788898942428543935747993372932607874769034421385712936282319304905324224382376199010537297813480741663765708457078371566401694716227162045183539268939720933208223479863981156841954740385541617619973722087419854002020454353120715658995914938425379714842549174028464796807638326975077288645534009771239329222732276037228997218523637239452044548659001015122017655874498380503593579454327981045093275072239955746709195723960697861492959061065202115204346635739304737208279251274718037458107147977149290122127186131060738269684206864068760501039661346094338009049042137902311567585292647669721917820085394409625728022446722217649344288245617864984832666596071151141105217002083886122532915104080261577098681261182212233408755800156385582770130325551220578897282653125909902519429567061371535885406486354872456734468789130488530919191633292225771178745892418803322687811735978061856115690795800972642422778984938872905257838817684947001381120447050777280926749240737970533853038781723082290603436076535785816580558335288856475089371367628875680844693515042543270823790091044861471601720462679708022261750645096124172887808302928492883573364849527144907095874768185852589648357481010317589758987852526868645357298852978913900816724676180579128343072740302094770586068738938612618386683341275899165959632922533745392965777811116409504647040627355509373634033902176766185086601644419832415751726927450501237518846515975393103792159682558733297360070880965666479815053000770983392958450712149135807398818582883147932117241462377467543525821607719355037107115817926562317701850447803781780564010239193022550997843268860920187783006972199554145854927838667873164724147711232653187340069844329956041490774589938372141116869784797904135380669082673127920463881487794266867357668520255985795217643046890533121272376670301232578610378916698078025688602896541211650346837551973736207535821667297610036734652183867199599458498682928913145209362361610172754279737866222748181842081005224038349454895676356352073975780031772275369835785805130768258555850475229292389425935918164728117968156584791719484462556249304774083238275060404741684050158825698151212414287271779756105541967067294769513130544537227431863757469280128733882571394334537699498553405462172362871574545942200921284958368360378415472253927488896031438501984646028226897973010862878140328381162594294681158052721787292936959894502039277948829111728178652094084844355535320165090006712255654278338818545542259964833220830993926233229627724053538391740219473477500908360299327682923903577059511048275647271874651737343039744934873192791674564224609415774010939599087679215493290531592851414529008909881347554383433077367188551863784610526119137160260854417607968149840260491138878164648448983590236391824255905985663553674413362925542698405522966661617097062677587407611109819492347422530057776381687757415452038965928234666471562493012535306179482159063451140267340019480858716796425990732653774503500645101755225087689361251739962334960065121121110411157371456962452819811382089445552207960609996906803633688396030198861249572251905434229058490791827459694640121499351159933422910287927323566866610660432892334934600745477541640598040396890662083859151369674045845309663465605295905061450355347085213198568540964709038309391561237571681239058168775465237815405612520347307966059066046690261352895699985335797676475596103594594358820168453259256589238014105797310289670477771571139882694176676648545681688898909874627104613376553764765981549753559706476396314120010971902512876267700839260025378787325159169477551979740675715037857333209315161791896538825757603805577012892427526366294616768536643930869093007700475215004000879838676649520971365261786617756371235248847337811677176917408025688658989760616231150439184018819308772262877117268532087394288445667466494998025824904106004965704237709166506046193016005404813673241243893686842047688666834066420214191345436565893848482211937295114030029997829734660309543909515142914909205196358088619346917663411080962239009558176487291680307036545749063541302079173704599157586699598665094422539544815907647882042811012034328178773843400226350370059983541571507206058278608500016575619243198717498972352870484369395897550748235337432545901198458802069971804184184935239568806435919912849722175133052014278783192914189687688837399224268036265173215647754608938078944251308980521308015358091692104736980443679324129407853029803318804309631514328302278023566867715398598114733863532691632489595190742415792512699431431488712203130746330655753014239395018642917622925692289547870407786119376078045925181455847323536299801016685973795479708320594593153865190433799539937752221364850122819290681978444342788624904428120033368686457678886568009531691096121577442589206833597241067708632979697092856320594503243934349722291290708524083435931527769672478934176298155340999708854857574510149694383759017669806395947508898175579394842261909270050427665071834773173687666071810739895716454527155594532901890827110927082357329438722887268358619033190357196729299531177452703560770495348165174472898100619799984614045217407689492644500597912119766231264323384941062529778733658722883380570068285550764495416751360567613580725521447788976377969777166770904889204732695814226621070902920504365858061016681316602831650797838864838566042314794239683629823528607841627977364691911887469748333593381369402529803071378971712892879973727219254754704250042258554097344779231952422267140627343928365922325199772522192294196842750204633591972705498447771848236336245674640442462904608126221857973829664243970323849122175932188726106075870286607539981238047890133650122575008863591507216913188929283119861951807121916806677699818994613300764671416616261699357386651627268949831601308995847800604724578629113112577529556703584115211564715017870800244828311330658934527447376692606173184900656031681080219794777737843084167043189637649010669706893748387178996810620424800567675082701792110202842430045754252294149324051665232299318659242065598146880833772443997885168169255134197395362785021394351017899922327904553779143422437843784969506907280062053141809017132930260885466636385522048149091400790377283508497133581408164951449759638599858501370220238381977001764781137607872872728043962291873825890301130238107698359015369115231067152135091650940200549702258392244579697184097091755398073757513112489560970306530687601540316380467240768735322923694797828288055105080255243606053072130347302640594781052417382102662817496652321054238556493840535603059054327024787190468455733765282328478972391764858354483450240168025863821589634849625073905936911427822114149633093222121744779972702436468341722002289364898112278228028808737380810474166351109890491266802324409143242466967738181245179408768622007170996937233885586139121134557429013126417002412457235058227476805658251005240581167118654497366407587206663343475323194214221411909014992858013088884606945479084865715929308881668387061042708338744775944118114925790141539348410141493944127766550661211744454647338694203506199245531199593609081628626252580341550690833270276196735545091146652863923989614498207762464654426494241851863841333440018884198705553834480011078327566142968940308456386023731559061425324957266926954435433203464946517839276595818731221611929042613375209618932005853238886957315854061001329695945626767953954187700795940508915507715363743195365485422328602317827472977938093091386907647242551410098556312049726320880575578985992780881970009776912892153001709646976202190619815763233532596281559356950185045892753452560003375047025832977581996963439945367140016978971418939039090726038783359553730706583979827438153814975235577553771862338330922966301429665844169406557836228936697348574266252091143061295834253467669710700943122501324890373282137669670360522954176000324120956357362256274669530583695665765252030242815705376217667247568895079379101108155216496211145903672526624743577591679294426588208006363429275571045126215147618823507271970949883566394811101015421284470964714776530253865132658849416355740123166163780889195632963827735717554222620789577474119063231926031564153633491803062505997501372574583665392888579040767579727742004768369186631158628085849863838700661507256262588894502853782339650419324382705629536116488281432741081728395851007318103201445116503421541363582777705982490602938242564433633008519521050810966071471079334291839292913470512448298310676385346562511036120997291317973372346684859005450585548300110105816376194020139608265142593006595352664007869104706347054020602100556209351313201480075877633638389101408277114483876189511342348145176352314906381355191704736891880215936674453575673212122302221013682218495250062613019968074962030618998948870236095948638139753918897879863215379214928167487947366212946349434460184344183153118646184068036425704359370583140828221645123282872691946177135455160325806698162495395692010913393226718189087060575687960469409015826743705463773799750829364045323655040520924077958980740227337133753009610971854617104002654801051661627862136162382751421663972696919968151580906096083285822555365876823931656258857937739241032829823972329033195745244827718859772946803615216928001506033181437780996078528372798438843592989049589089301344057402929502821786394243268822262403146055121771400053719131387069728262308606948027807020286336012018407914410266435610111027310975008820621587198581510911612112684814873854845026846623221336522165530517827435893110162093493325537307300216437122472830206936512160193885692341332430271802827452381827434590061117729863860916878879458200561740446004611873863907574329863295102293216822089683568890486148938199444241348514246981321100657738291352817262015136869514314536488217737591204688353633616049822670603479917435704047762824861471866002509261853433391853020288214941649878494263513687535455390872394725241320584148001435404451301077828181099879954339842873777091670578081800603309074716396687800638956434012600652409263458879181986464946887176046244209769155480345331513516825523214195794502141277501863825059780593937073937472202530041639205989622114060104471485293387702301165884604161629940100158749251498542902573394992520363122474065791416143564037756534910157652121421145016003673144009145599531962964599938517404220801902878666450300141657330577715275166054729697972414540061167915147026317946410062188649250336398482665973242551287702363888607427506961322955428170256509153814793712168286963456013813928044271960480665414117320024483333753416637281505241097526521806775113052662401949403558226050431974910644219264971944950773361361458450029220793836821241328117224217599537335429334157391405719901007827433584876213832871810661093084985002231704880757814073527249076173858883075143273221803276321912688582931370746967136480094100782721154824998410410175073685774285248401703885631416330963843863592217226642789610982843845803342099106114261954258083415136934699983298695311244138500044506433283278017874207325226206480632965658628025026558018089991467607499336515819382329379744679838632989095710949392298057180291952606025688376607714809627572849939300285118244543825522039818853945557142760413473106330139786141913229794220307879514340910848273934846079034899359921813374788552215269926643615738783596360815191225120931177822796455828828838864423729907844298247134459239436302673735702024480674189190715667908470819299885719551614150037477428642358611849219299908627430184814141419378111873327415038892425816890854185139770412115805570411862447024741210201550405402235663023385257039702346390832481943467894673144991110206151855511886573074013399605442016369713508875378620252647589060393821662288364110429593359793189390293562560222047114443077274140054499799890510006147297360564324990159810880305429340526124095711160368894621379583382768042496271599169134902947397855062629743498008374831840703351921627426944885278705963177188306476622849435401920965823828907293963965625161490475443486432928478456565299728741810613758963548418433585502888345825799604273210484353518424933353597086930323393226692495725425082075373700759991853980178162829987175155961611441435925936845000086718153145177107876730793753502047882107898400351122156041105474803367456182970689230412256336084012956054018703448380813649483281761769021431984272593430151122635356657147455757759691015721453210394491551204929318499844704615910294291722571341511054577538095544815649651059056014067557504458617639316382450995224966137333868062867037696717282575595893400398506230180222056008064372873572433668199346220183170489231928427634047399682439431110302091752302024461208768070088264635930000898979229265866072045858394684644580282712501681540038607030060605332501920045539885979841816908272275834250609938955524242164360404977943290627172459232789239640512148688325245524220661734602955736053828607888012433786178860227150093445880877783152142456463179659153551631315832345674062492960934535112277396740470344151843840787702207428871138352653142110670435044029193277676380581741789824088153462408782940883470221581210708218940872017095481449466055368105489733752502382940768625551116035291176966073847277247688099951416970242991895227969126310901980099173441984347551258456027341635798576197921524242013366019971802895386838774722757927436198825725846628882937461106477124401523416667158601619216903269783230383624630464030879217786858471965991203439280186502421764149316671221913981631321454742446794944380436060869653024588397002812067963827475892739816596304075269437841093687918363150209002579804144668888197646613924141727175477001823394112699634743105697292552081907790605811776594610773862383540286385944177603721274530166644825823321852411034029348328257991201498705799753469350182101730667250383973578588946127702730592436731874269945042974543783562544115468758989052889093030558199296701150485806366815724102865635522314315057807649820181917365432693277258844980912170410351582586601748387883709131129778995965514936464956181774393171231263954429387283601896712799989613209661524733681068604980172650157342541398738203135357586994573909564303795928730704200926511590848316275633979724713371147655130448853596521037834115350966681132776656439470730177248599689617644865924729615587856002428007688865106820680089657532781293773240368179140114409498338071641181323867051962728934648142490352415630809153862358199042581351553077101785302356807102017052530940987234303565804055266098038674542499506067683396919782354689827804813596191563805078507472013697609058444206115731208102085024208994743084435572715261935510141895088737547713353950021553754405466906779544194218442875464538504505498165990796082047595578431671326594084886062556007462170852454586370041201706725437937468981065561571861575175146356202310480076287374661224051807400528680003833564369608677253867190463497265517640217688348565336473062031935239228226159485258813009990019758341584235989070281851445252406096850654160292880057302953568219314819290616993185476842688140571608200738255998807784997802889980812786209136076356623976703723955310400782477837722205004074750511756359872437286940737240347030980644838396589411050468196485148654050349528494663106306611786820429336613027085086638090410416140397479102697965935156135456218866884689699393465095148349536364637773553818968065196538044452434412766741116719823214783458678023964626273380742585263617148244474683728782769612871874187069445232329034641768305884358802891532242631972231511494148018088251069786600006235229751812785259875627664188164110896536007139198226590701074362218046123566849633541731202227814154303644294732775024318598675596039918681961925514956420460081869410117121039117127495140806861764349643649370057708657242645890048761363966386069866699027853041350843368146977735762804090486294358891418385865534776374716251842003336827672439341243475939156015467717533594579191549760638497216269824470348372655744061619629689425456149723841690731978694581660854328799318610464236318720680433597099682418582180620567030271674527154560758752158706272063618286847426420203598897352952481629745641313365833050439943536392605034036758401557438290238475289972707187941017247024525712855923450618249386220768538558540176518259335228729887425064172353126427855047544064695693169481058801865786137246015742724991554103110233928031602191251737288750466295113274182230812890167531276618690440236643330071492760077786876177799990853395149123954067707644095580785523765039287153930620853665590252438347946554803068980314517223563878413589302622795237820573914110457161779344490946425318740471367157710206188546050096478655007478719708862301551931514464527810182899649394809863921173023042378758478080863021419219566176153479729973153080103589076734918411622323474473011024955925607265124158879839451324613667965748850567162516962581313079511050111205018737629165133693203843193396367577469598424098973965225427644507300652919304496669723239820596806609277620575824933936654881062343853927556141182145663770809763010846021383131737301223823312862485018316787855037311175389808857105662649957072137373596879898292007273426581309179892708746258355731695117808339796573788870191566568966033380223052579989964554380781372423755472312527100008840801066247045671784435490689016009179009404345297862991533168440973516908096264404795004323164184548640574942465831627500364053022464220784993216345326398815946880503835850353119343241914392905082994185587354196410807137565045093604003818549240076780620708325388660462914180083480584694882976079841749662296297412738517340510583931163934532467997085111486967247877045291144858638672452121664692172501455622998423605687780851543301762162335138192973568382675607108401231408804799625236634675323639208656681639369303479403163100931237804616243077417310370438973537551795261954629876391284020407558837980925179962013322450925736375522301026309356218931985197827697231410763933113026016663930831513509689750893066964505999368318730221758250082917934180161815482189224131710217471712398399024961822126363355643017777509095838757637553778412974041353075296995531911101447718704087389290745623182100570798102672975544412553478134214421811417894842165953254290934656138909263964755305102687308549494067805976817481923812997314279103112982936877075973182394567060203279322048483255357282747073904790411658852289793283046626361287789702291591997783517379558383531013737629896592054204567934054775163679574397257096932356105240165380904427258609749301630525053951959832887837949942956330401541776352282311504195321955625848386024018489983093398590077189842168161302656609998853059162963490919974210711902101231395833898685700904763260914840619196988452448125739816353553617016315779074414521555177474554330090516183322363245598054879137668176154492795595906291637049106428402033421820760152966181994904850176199082185323729155636903301426012343407322347797827642133251964432294200840965047666493316984405534750896242964510684358169466691638009644184344787951152597071453722017242193776355901056044063747153442564544341007710482253981637846574829261543471743587764068108918825518158700399548202718285282528838512553090355642129033093210773948000859436024665989599900127698593661539778516271841714253283723254685983319421905460516914154427251038792592088696291684407182759952363171062448076357191876848369913731665843531727373829904879936317593026137456541743559737704219458556719589912827591712372140422565960509879973412546141852014837951790560683005513520593696772404915425733398382296608999206106763657842356104736447386403161660310502568257889816071194572226656459790319802226764542900438232194747430865332663941322754555672286428805125866907287856579353023740699796888082127413735871320922346664525474893727058948725273536353706577092552541110123466846010889983483270236018400908731919866579437563694464068252853174937911906236813658575039066447201861018624852026482549540515406734898318865424440661908156641309392586377542530376736546765501724912287323507004764551267241050826746623041301453631600041478821538525928023984617780953204794770426131871003611634348640308296452666335889881575911804241927434023689527703870591692297203891999217038387149001994182062710133634176097979556326052824404089871872400868222492497497787239481162091533663315909329204347442273076623429567460981868469906590806581143738246120817284839952991048545987862149542540721539604890670500521366159706872275090032660652304924151993367577455527015488784029464792619787743377909205014367268311919955283236759838186783908006767589480692659339677159668126959335888999501530745921201384032365665299412118337840293496665102593427526108510255571887421599165274014188184574437772614725064116542825859444653548488387033708867109644847671223173607650141554282379366880894546221445106235618038536426875865415675721213799393830235280514397681252221502127763241992819944276325482454663860160878256620575274789940753972840796455476901734238254101844480902605218862990705806221152234098607363383874050304624104069751205492371693923777179788867660248509446956568125115514998222900657486599690510266596962146882095555697384818090494263717103305090377949905906314242550698898760386294472964539733942158938956309056909082270798125436508563653111531208017757708653184031071535692461896459680319203160712022489781080678453302967606849770618455736133189958136251579149394076802869620688815665186870931811897609329956663169335362227628016212211268376063441577342468707202553010974492473850396484188360344208424351351161350728683261697224865663040191859598112145852678393824268231143062692576391453206677968311009374231341902373835405700822767907083651863633394090474911158824067663115257847680748432128330783437421268896480280107568629459646214662879415531095401641275816707014347617907220231133065180951569626416071323375612247245429171361864951344856767804311523424197117551992850615654904077817065175564660023538354248736748929921583117172198830410950970490560928896154336425182419645520728845904957504800446601134260570843699955167572698773023465152914067508612138010514808490864862823506303705862270829887840569552347157060462113377132365107250197601016285193065422214597539752838189491339623326870750619920475734371973188527421894616305848227831800938011866203352196945162306354376313475568153868338257088560354280434010424255532307688380635158515415959049335111233868302813847193469826624807048722437768090999247200875875587120801560201096456464726485081269624725035090994662426317218262738956798974624303219064877231344870568776442527504912169114300699998560046249545227030848776643394691655911134304934377398210965892724515603048867090449921314916722806981426149970978765609457865441144851168486085582068784158815030213180498189822986949659242027783735612519763250623359891162994025193868134441845822100047436546352588398140456094189056849199421709356477353344942960983197953167163902604645995456816812280550392243988577300352923190301450615476037643123466977582647919152666916465306624528769089087824317660726005002840731968126438148233482207063245871956354050371897787200288212494428562565643650124792245543220434803204736450475628025955856676762457807191223991269659423421198854211313614349013789742993239027735212679977528914038839833365226353158620515906254994024066577382784860613678811586244060296723925094584803842559956203590773402755721367489725196278611659297155535397876301306569291906394125507091571192499047304369631717298975651799010676540799493187561949496773038180752279738482181727782682166869612934083502697794822070259826601114195293773876645611407779167661213385813739078654940484345142981276495620444766260452552453164585199138673086765635629335159926113773534345975333304125110628458964318692126891087768765948366877294325395320303097118219364934438058016738203198284035465640950338326525780595114765289702606318006905658100280757773050173375073937969728697545349771021013983318787362321909647475023630542304285277517034818172266914794052256667356007357048379617941363751458545490713437647889405086853047572871001603383099598659469324613112100914630654754670671382637473101879279414326649817391306793461391531078325661463056724665651585100251456304475118498189913314726192442665020550721046439257560678799860838978197080736294699614726818178501947853862104318350531553478053799597443156412758242956234655478012266789353043698948148865270724232205722705097602027296367695271520278261085481754569507366289924185792769028431465047713839326700815364303310844732852396889355063155825984137952368778370056514464957400839006526297547794779850165331241185753275698100030349986091579072653465810362088796570279943324304786280432006273402163831451764582754893185289587697573811706884632734606019918246146890128350713119464672162462426375410060111371264239079930191785236902930302841413081426416023458637652956911714563486042781993208415963430806530136733326444948072814907085114557766135132173283453768298819179935612249969508289026354970458300812276635327936831600411073982007028973452124185642382340382282185111865569462538526412219020778521478841700370524863029028553146355509942844537433573606686031088346053412657294770572785399018670299197907457098188635638359476092543665226219220978860380703098567140386348046275481059640953862069322510497655198285528519266377405167095334865223344942169022369354493085347492187101281841587257026019838329393882697575807505680729336389082391733913952426405604196122230714930119782068990874660717529336189743895827176912847500024834514517953278169717411612516844354814312517318575112123268935499298129559678170452686498685842906427065890784589928050318450327749140688790767442118697575433087582394347669499926890834697499671516175650500534967029382306489587210182754938551154663149436036081510532222189246550738672825576024054609688272411728628940613468430933819532297687243483263509489917938634993284096292526524308032666429373690841803325757927484821561590144895941155098224269980479284905574149786178030574009993866816043560211423247341951937215198282034210731365132585037414356430773812756338859876685665282838960169170549041024888147343773006140064132895181551577494171289974061995832821831752197826431103190600078281522257815590248466056060532352740480270011276994529365090658734777092076874113780827911295414740153189401346901217029780227700530320789571932455648589998375319572715740556005049689944810997464644000983184679997843002438674696254994909537272777108403028898895356072088344995463405781117924533283514674210111622839757249327768096718338183350242092607017627011777143869802332770883832599800870297199590010465646472936926996020303516131775969247149121308478547653839282680174850363702504248252067435623580516460947812223274671157158574230402564251278114763413490619866341571124328997885780520348864298034461502761135344832669067108666923436972731301673461858376918753268503500105620816037447410849097420210486178029244268156665189352012082624746171467971947311812053326261804409213795214674739949435006204480593859412196797016728611456221168442139049640046269724969510999379773159388522612729514387161254676827507461042547275079018297964198927037729161765717647973896253510299335454505483990098172321411689442935601445763351705256954184869417146456921138639059596754800764891676932963755161937552561700466849269057187792576942990395854991657622828819648429222358819539724030596774155569362236450516286031892406561231288134939458143263527321841012604648005793264262629383389448411611432520838219979777957282229536631941044430103053873810075092382852471391168098072425002166499234883668623404809288554520339559840941964134341753838613104572218152636020791554595691859423778635094080512461944336981062941429715300642498044827188650097979934292189723990020703437723406064374312559488648690933992312945132493994100938499288786470854883753089149885770578010637685355174529082809034033599474275710821511581509633239111890148265556808953389010946828265425812270977424070662403053522876373423707344261284211714014792037308233635523173942151987884653809721038974223191824666848592522922003736804582042880112171299759692334916248932840020713788265775327914646494055752313318497288957160944032235280109552922418153072439199756492574060529203091946581290843610197941941214791808172009021027764862188214183083213421611978820613250983866919779874534498510145882935567538649352480338044392293032692342069678539750164564820030619937765930491970153869065596347759271995000294681519012195926431483963549154597618868077249332813447451527854059967314066752336354390922437718705374496791234847674052803236366126663603977859122316319652814494891209788209294022865404883556641966205905201850149434261473165399812908699919502592894014721257673806389865476196078072966609900006275675115395646650392233216169331762987134217230055211084409805379676412466609639975709929627241185018465029921564616166076735063675942798145603123598450265536068120246950874407672773104681821855629633135382380524988005413811189346882686317065301446665216806254808860848793456979629644470409865911106775826138539808337636757240755439851799421873964779594985900595247169545649444870034398989812947510988813185194628512394420149983548251582342175794745864906168436196395628388651689649419055678551152812267234488547059761684211315792616041688760540566471214055974411677797945013332111909412096734463862090388640096555460590152182458841603383315743616064090004606014900268726464689274183985065715718291424381212760610177724763522684500607607107993140326190449394530954784659336862376912172826835320798132281804216180364960007585657998233133054987598741098356813853481653800673523827936941246143613896651780962567262829673914995531046317130191522793028305658943380697564638422545743892303848653218074717993831988353422608229556868427716859826083461365517552120886574409089529193631757690928308109258542408579001291651267586427239680398036912364467533666861905975701164471555412568121628233898439653327258486134157973769195349335984043511562355870125980629747532045775741423388092735658449077094059881248326987085364229628735552956910048795483457017222312433289777065896077959707243433919482640685815563859493944619397662779734469711447499228347184045866125524826054497035255583689002631280913549953635447206865978767074256644677338613765114788913245609604316939384078267566548632756244512306384828522647960817101238375038561644605013268107504019515634241470681626198210872900990336394775687211972421514525670731114971680820119632272619366700240891796571423202593211086340154542763546767127671391056948007102177602023296934253350294770014184855484585590566311409683570090883475525611901819310338555177218891955900284435858936344634960649038043426041735815445513677612433160812455219962699385823398607186637521964059275563739797346854015253873342502700354397894399565518811326107061803503961658733600904582724429141800834740089225371027040606253926422242614129941836562608132249221436977049436182249342359712910076904402273911729827293026283915124692418579555234587377246524666951504861341896958300705951830202444044685321578605090412741076648699971528177645603655804255995655325698374929813661271840741846011453182915245814102874882815420543058200081519465557517430177667046039366993835528764735722412416175915114518939860632528358630851292660142496575708584194858816164308154766166161582511960637139719608206738517563142259799368965925860466532684366747666894109721908225496888765619218045805421458179066039364948524290096477678876768328653388943308565743241138349427552180754331730575714598863703812940707019099577891274291498935211215656133281378895489403205321794879295983696501914495827044649669403979602340235863005351558483416304938470324079212659549092995420702820756450165306790508719064851365853896943237477437927106468258354923470237909631595506207906527621074362303531022429605175404043023709104767334128066910074111145936454609368266450140216111890540940418549738409475360886459748304867682429329619041882543653902769551794137724911060549345842013061903377050534533707320235689088933184291227457064732662118804134326426284742258745599676637558558862134235362621684211764981960489067902323964145831953899736206007786150643110928608302775055687191059718697627142949366582134496143114859304844507677040889228488977552908517270239559913131190242341865891329839862972835570715331677060783668845563145909034659517401620127537057908533400682992049719625609373999311774630061161281702294293672968938872822128709175072282062196585258613555002134044446043165283735389848361139159306561032001254547339124716986594750867491225940836398971462230165148898305496894503099368751082363208047730235239136920481375046988941351749726097055710206648584685873786276479815479020660714660457496704579946689755829168154427033403927492508032496298458094314296142846535371892595324191239586069200548209787100262863664647762057473541075032315831755306285553159504393152281086888901966043940501655735514321297867114436492814433855545700030486166745756262706732293731289717587138732407475260287752234851966193719068290416765417486351580337705574108776454524090482230257295705757445198998311465789910968703506978459603623349704911557528471982377861246501754744679322903293783255267624015000370092257694364322814727261340051569849850443335041114079502200263238997596799973688458854562640247936645638818915533955459373217828859168321498360967026352441279929660259557915524460908820938212822637452160143062603591618777665332121814949838399472223037081428585676093932265714734367137077106644900185445395900038658730249695807326935261054224588453051614567671032282752154741883948417020199944375483974089692473042542604367258670051767010705730042867579664080563487389081896166432969966914034993624069472132147845763226860024642192325763600501812370549658458880927893569874617617694360380287382504265433498461269319820689722068993512083349387978057118055573186445965842205595159514473305581481611233791366388398323072166566719081869346793455936651531865071633659849864114708970856173324580200459841422898746283827781208519841984503576090405380947700505963885084502658370304911582317428997561055118610336976064371153838895801015952373039855724081878115097328358116773121046423357195151223154942960155359901608472380383597434232945333128684220452912976087112651255173971811626715621796665935507658272645422690740700943462257261364003733708688792079660971420537006741083521949635572208999700350941315120152895077191613486845942562207236129761009739459562697046676435180304357451306975237248088979938390576971376345529747333923746253001603048378102276313048979379098026404754372956352998253399213911767014162500937754202643033359344289521223802902948463635748144734638788780451868214896101891901555657429236756141285965572023339079248175042422004797710723773158389387599615077579216319010399872727319822340469286459491521598290849877547692685463143884367123096106439248594775702811338158700576109350115246536675069069157324341577580838156816148770854510668507165116634776676419255826609348177236824048979639057718741615884910392390718290490003799951466216122553882157582490821101442910871510401811730434363691504114705919279301885983470430360929624562316022026209499125390596972817829494600469419240803677317039747995153542304549655372717165239519122401667636229902996372818362192404960195874458860392451971078926256814750871841668355209263466580106639482466744935075833692938590508104268852220439401613459014864976848079398029758405894350366797730801320591352948835622006916978846399585019981675725136159399265293990726593002665765044024479242428895991336955651210287555582350827364151325078024418504987516266622765892262333641990323809941724948719709008434694322819970878888836149082336493060474741346782362779549909085703411118054148165351937181563525188754853241791824135080926275479477376529928805598940097387246858510663490921106841030271177352073433352686310281343616170468379545914478831631525617066013505379827939240991296587290745001209890705325472468813827315986605613074871075317032804019553200631165955856804443379822949007676761562233318754860220480048333604417376964860541390863409768976216277238116017551796244903777440920398427957284461973497806519001012186605382270007069033032509939052549234534102855254552678138554518848582199114161321978464558554802530471085145844022633150787937472104285667490455590270893859799788148867867620323842399803123548356095984187278264414580642124725141176254703992526026951722076135163873582284854294373221976996843277901664356208769549234020520454895120500980354218807792343922364174526942084837365727295100153402553499034932049299755670808947135395872210811482265191415066282930077813684713927337660583028280935149439926734569040417130900051440919447165974427068423691484499419874683747176666053187375583844555863748215666155097434723618133645777410356444304643912482078157761378895529342591004093931497216345305785691557171934909485477968683971722248316236294497864853784386351201748124028233583529241788915812294368154660348073553927478658975065099758016470933273220856637745146809999258672409234874290805039162503384554259331314660929919932272995866950667800437711168613210318262765335713667653062323066268271553584687849260326540083300817021033294627629253931404589128960094911353208684893798067241201764508020417349067526070881113650861612315575108449344277548537736858255154514645270481038699139603512058212540998351547888941062147335961839668518666266436842964827861759915295307962490738297228465105997806505674864909935019596988371689475592799723897532983311628100501115619148467336123674273796722467199638665582873807564874690244238096079578370362741864470908997109079526484906469244158660883006941293964205706415111409226838693403838601741201341142332631201182034726191862369357561291082449035947714378245010478505516619307007352299131006840871653055691241819384850721610571599297965397643138939169713814829973963053192630655839301414132100810765251236120993560724948393034063392389273157233903134409272106977082765436500940538627656424030680385921706098841899666896115932213975004523884020284190985278352033894582713734763568951883934849279614229725196216184277669187009126110893987891663634311275892730037508968035867545164854460847687489425203725489443690250596929700330307808141481335432617881388367413034290540377560959929902304956919975962635160995174046522927578238735534133908496285385016652852121160828579483488879303059708525152392614649182271905151088647266933773462235293394283977888518895968713040017325546397266001282246280584845197969145696643536717076302617012055616554985798871277749424915632673342669158670831755400030667047389989986221081536329865067424733395584510924741196526889605311273716579462071966252654567286208767231509500182169086709936973239023586316199946717010281728840346883516091164119056053602562049862852354265174381431707386669831641325228902646938662385049914067267651290897561931624791570840416470250549683011056403710222522648055292847352147850761425152855992232942121556674361875797144158248542798310033926086841257919626915997272869720234343245764895189590574807180631367461269609154160837164040418967390691921573582649382801785852396887677798545336707589662400266880677083128643554705117895034973210289807378711833053704007665690307270069077904565391039808043159128408214310713122745054254306311344779898947972770300907688688397452872211605336427720199540078119741109408290989385944882194129363358005848913690940032353202942068915178575443144827918728308792122414879186134479928262874464685513089692327140627435259878762784790499480889507305152905219755004182153249134419352017022702345224742220907815570403514289553951591946313387096601203812220399019894801978499773258169613202495909912722608989300367967422997075058208321183657780474664337898871453673651059147815731997374749464153023426350553444697719740342795893909010231335263687240708185536823576111958370317311944145819520089508974843839983437052499918145932474642205054857323053662230595425169106556794900814619696092266210172872214162155027508577928284208198240544695299422480219744014993700100339736488963029455398707221947312005280792673991847661019860103128805376237058390138090453311080721198988798382212943945794891109120663198387978361646385556840366924325392512154372072228930288747168589382665913884279588908396611538461690837754672846429476009977848650480356893503309639685116174629624018307742598929042852557623970578793578519844832412345524639058198417708749896103300301382174403567020058387153353441368659887417501340795233395871156543115301055660453636603380412681186159396401813043959620381988298912789638596071830129812344723104854847223154714783522923489943000788782435082381340179229225179961229797405527146131907810333689992048138912450656978464877176412662345766170480760548159398452809361509390619002210814133641371207805053393566686432242954152042571443990490708334247450200993622640481008765628659617207318130146757558375690172938144459065724082175007795523853545812775646917259146646044841527559102217592611950019660118015200219623233769237151712739503417201273262193019125444688157548574484606837953947866532999159331508464137191422289582210670205189832582383268464646131484823655755821711052653297097576610732271429258626670867334350951926229226489205813554380995714077079849524194906081899594331878557711854669370300875274323476922005140150551534150253736607525191427790535094168268822075851043377359598197031389211492939518231224851527840479649450980539339819188050180341661983114213174285754476992667809672467924455058960095807647425618564218141704026525633013778690986120842750065473001840088389781058210533322163167552798694905683405586422838308266707778343892307860168293923310182672235850979459163819387917549629652725062093212555166202664603906514703781066690810360246515626047532005626433021368477998817136677152600948358610691493574395013718377497956112737188928025293715536640501850073644267936595666248141144723812032533177882007355783047412176208971927680151582112531217020647724559979569786986129069015749197544777429400513066571780075453831716373542725748222038484094292117546230892776271866174519938790435804627686148632540373830961904997837477681720001408922862163863586105511162624982169126057825371363829840958803832876049855820141561099847907252656023167407833722194639180233833647058802833807823692949923881732949256643992035187464788417794770389633819677501286568004607136061956019355014596164301745777520068961607811130835644270353083413824008518011288198127469616132956802322990405476079312004805939953246277637929803136937277204855004476849070022824159823049260741227780707094469381751927554435061743624507558676580675502728773565488205670662488184268549530301599165206794800181977104265724015779293359195409098730609868906091121164513338937688929970475072598474613142209806420188830790615572620979335355809580464022375493703937714806982354486141897795320860801925270855515588530594492415112718925807880865581579860280628214911906226904185586474395114582819744520365567690050610605776975234265270915260822330266286799334554575613146322176483392463972312748846960708582044563072577405719955808735451490572988298944138600106312917696291489398534404106026562091787119494373418404855998605958161404670772665466225878300004613378101363074711576674371071096899888898629290466252528077024231271031796008400860299689680274863694054799918774233613323743294563453144397645118620459467176217194557608027168669612106608198826794272944217474404286036428585570838048451021546442258129170556897905411600623615181356403600839679628664096982608318209335783205052810432392598564810050438028284581690126905989585938402978739582810386302270340429728298787040161773175322794998646177887674611053102776555036681513764410480213274819520181847554196729793655586604749258153437150253410410432121083752864968796045341543419835590011189642331289856604977673746248224910221714840198138568574111680150991830068220551302257119389046779281092698368216251670284090122333904856435235397923359831600941741218415223679211352161029417479598862150561816265697496848450803155945077084631901466071163237170270284291707283439676190475512794399428975983400856698699380051540659919437474018055442173373966699983456742342997342197508207142657065158581878098074743364805784077675137928730299819926528755363615101888252121691361813140669316459125571124979930816562919159712869829001028110435388139374531678233588131685244980420307658447503303995498496041022412375805611564772333882734444759019624661709147051154318182003093477091883287370345076045550245229304399603346737581200242747586491393793351997063414498386497084351275942132474247222204217582956927863842465044807214444426931121678227447940725947647702170708383023963748135132526198402259684622938394952493220955173752519738927064197882366614659803029153605926577051764150437869112881720860702555126673322058852061477881310273287975382695088602665527450044188796169111342469254188049113903659293518468262699986939592590309058497881644166061002360656534244217396214062866959612105396982879702930445967673617693771430700639194847004382603903507608235283757127261715354039532649514944961564887339378246299775598899280113156342570767296921297452255240796868370509813200349750489732586075538932879733535526914707355250518545664807149683801500534770963725723549086462252723041519433231258752280455607782908419897413055698583286518311209487338140204899177788560194550694215710414894644912197947472936580050796852187419228356666499753065685587281486433346899315659287085190212421127346304207485667910073243893765429696418237349849316362863521999974583475315186286581472896072369400508390965852405205753360315018596774233173837402166893015293602227332501054727118270521799472842906235258581721881939374272934406067312705613102001573082650491989469419974483237807376613781249587281933251619575638311010502227089891016641502212972329339667664959354004747066701242273332586039694829378319113440299686170585414324296500079286521532211053147315056310400275004932017039155729798950937186781709353205038935580487564271001122706036100225315433668091058491388278166561903435474474172540863336718544646744394874384696106907045368316575489212131169172308214660199744530070629764893420450156161350052776142148145540917623499865022359667739438003195586747408237452342581731828824161555888049101924512189613723695608000560991688693869727986007507555350928107208907348504265193182838467934317472390776473874110901109547198595361402633159391320243800925516916218691833064896062955493775557776526322231015770685326293701830048661410972903458749637501577602629632115028981402593663001777004433587402705828308427335744276738252346909663492549532641112582488005289227043857025472197195941065176100834543970819907092080106917686088882158235066890768337068906660111224436237104775346624664172135518436238363831575479889375125143689960247230252185632846038307988361311633577554549236818418300513694218353358903629484094120487580820466442857590877054856543000478173611218435880140664676708789325167624048981556024161495016971311337369988367623139451902751160256678463844175330698855000093834948075158985496620814789123228791808522623984976474371222421446588165001968279479614969702038499132203111274935978749312028605400781512956814466269867447662091819915837036685685153783322836777115228848078471579154996440860907797729308986087910977895413616998623859875292502252811022962966356368369842048528318965881574393319581482578321229431373965914101520691196300466436782234894566322132154612825310882278125798187388365749459047597368371730135332058456980703389549623905207794183789435651678973496418746713963640450256542748742212555396653134140902767307686198989800827190624349842646998112368031335940034622369943213279746069271761776100075270628658738834441942312736076887392693573049191103507442505928553906693696616747738476195440782304696122301731595368268995223180810386094867329334609922280510106569131314780634670187231337538243855744980154123593475117846667956219050573115783824334532560975711001347250196274001818094165882309059864770948624481152462910230545417407616565073688676258719144502336385775224454871440434293092721622297470459254302924151921091435877340381433271966101562576969396650893839041159793585325688877606652081498027735065050130366210663856627930274373771699868484432376462767392720059226249350859998935150997266639547570214554954295406962651619774048137886804973010391019483392946378847091283814451087973759318992837976879052689421404766601227070104229155880390712634165149513598506374300980982455204042543186944055465111228938459410920230525171747310177390346957150340352531575390378058051511740882958036908588798836098937414240271231384156986456565487764754856297655869300660520387405178777529418466097701372375060079524118215511713378424848212744762214163936347539504330700756068559938598077930325924642851056591090067090742187694839827097005282583856530981546981943852791794991750208642081724674338565082507658605078510036417263354818957017342921164515134295854177398816782870556371780258388274142021687784484465178359631989389330206654181287197079595457163848776390655758713296555698264673768089957445517418040527249037870324253772402111683762755646863519791144782924038695155830938609049917457548828079821909950154002647491431778455541384606054530749340455031556171149088737377871907976060059928217907270049296307363399051644673924989023174750004548012691143030820357914783307785554392647245410126853828549257416125069548058210853773257737204295065623889229283213231475119630447744230219881229679754262180561358589466409299598847128662104730913413163581819870604803375140927442202295794668302989817935276309906168569106210970714457873976700624964965866756712297801741915662828375164669814646859997632827003102437380094938564149364507408123877128334565560377642047238821956208616543551059374849756694066903983863792127767101209768753503716926564260795044677675788909268876703582092678764124690160716595713253681781860234209692831998245116306188089369763819367579473745861295016420707127297383553642931655624091720812469912173012850483451794008215353396796174015731133994102017670523144517533494123562236412297937570231111176578456270567296978460728474046675819790036477227304242452822494971842306359268850457545946585843773702955394587018094086078118449577726251012251413442695679730467845070788751430985497105070280724866906537340401022818774684378669959560730339299679290312420081876279679794274917962748341126390410166736146884826251347683094179616560393176726279691843225408178042111388176315794949458370962025334274401044147225229844236983497189628383961141070022209769132833586303576645474318748961280017675730679128787980038012122445181578286857241665408035960453058564518276522686717377979414022445012655930110364779693655829055457459117148201390436287100295520970015901063041026186657195999901918649835851463618854828564395077449778319005073687583835818707362915679876034237224057389303098294483236958398661607923932128344150552183755664544285270212081522923255868367197541382912734463890949409878513413759677840765767574352673779918905721073104822983580482572541577178675142656671361732155236228620989046882059203044523814065432552238149216689267066394855571502627672165272502487241142028442841127763640580414060649598654061490540017466019173691959781652851185617259733221773145385708308928792915785912344125461153324419289504818839053277019482693388195220354262452914355168573940272407339158891993771469068321687243109775355061661892285335361531284209501862406031364411356046041987698809149958555782755021796827510440084488055775548547607362420306693763414695671213948203651456146245496146834733054445991200981754124985236043703856518752990850931367406712601625278827589682379688203111885623750081109630466114067326633906583109530840804252213706283307990288785537200272646274068136527625870908862681468790095846415794996138208584775496236904642814514525795916167445343361745402786714775176526369462026328852831420122226963820680475090793019249333978214178302710802164361637354996293454970606644338705000544591283238218627377233188796431837889391782857523944387667076490323377283071079367847183251837202236811492579398621972892090127642819429716309737900681854181311602919978040988758857990323026019661304743060185376101236815105275676647996497109023986495955047019984316695754049382902651041441322474826529253383138194922204708002477429969854482632017520623533587476653433916870318467322158368767864672525944070827997484567974262984620769484561466921838433202296157254223181890844976496814316025352279036324115299591154570496193896452557566528428199300433583419649646808194297329716768265548457689706041518101663869960119944784805185642617762957220970149539217369709218496801677363493702050693370698732097113627651620444023739586173951646146067320788873833327522765239240693886386208621805302741405347192014624017270186843442812260144006334307948590839551010071299286415784709762129362167198733057388814205270905119638030412772800573978431488683600444910561989954218522476833539236062579119350173769848023910069516583249130129454466437106545752099836550705186640023405217705944457743697714162257538170559792421725034027550352674064250028802609639028338020010435702175875559397163957827273286211307955824343352696134052044839520071029025120694262218247921536228954944710812577075477486953495790242795066522686168990554660689458470034274012386600959326061646057515432712853423959618409215927218542816942790969402282958068961460812660859051738435406902439725113354388850575932357207215217834556941160673257685370170242670805386804505115849034135111351268741920714437521440734111827294915976524279913688193859961228576415642558372262876138120417494217304038302489459647689882595254273445466598489942386206040415275270435747226486641610769385566974249988814947841616051353721240738879044064280149019585456395476700218772883118324654208315889688574084527204300802289906601160817833340219470437343907114967495967251669474223086233112087045058360524560244377389670906151016329187380007728379901542509400538017182589844268543172727431292105733046111998925183974855006327393304384656503460765631912039185258490216911240669535571448735469379349597339140679129174558987213759529966576755760688522935114681023190153442409923266007747412191888600199810587800938638893005169231899481327261008112363530011629999780381178069009650775554091401267603647170523908007811556015377814476350837842597002537258529800452221980401177160769543472548508298405716470662727979649732978655660716826399535699148946777024466691225220830973207565704822288956437141347408877545814663827439165165013200044924351636238828957908784806697332461309626875186383669390477964845093758032766948318889015447190103802971953631263449144436226682262727760075010619355828880458401842759936963209386396592125107695913363422383678192396696310058723779635030929285965033954585783568499949020597062339382931612277749784025016561032047127141898471719642194516868308032286063523315146888264590799977750158707848266064892059115773722061688652099020477391545970735063341089726473486392831143689247580721934129521590241936514985287319187679878871236521061146522367013499317126957278222340444163530570301245793528024286115334943082637138599441405609127415673643978845379890996880751475251280018560343874757665003866003777318417985662424206498928733360444464913887769005288030685475649938460315146716890482350037618666495210057474565308255325292284970530025953914855424430902597513086278031291302004780642120129895917504863622879701607617007804960422212594391507869001965055574213419438101681466076400337474716132962235873397044821775958973011723332565344179283176127250837160534280354010422062257122404616930860622198684095744366164855279441311304784333428220007656778661745381235699024291053071483759927357907851071467361804776008973798769778324237758548140259632156961198781990768926464360059742825719776926476406973426060743141942396572672312668682517695902569013007508929384669781464425141260892842139398975103693608424020922497026277566414991629633890699252747879298809972742457114604479250234915218784887907366398337275358446019164648915126771657958420686680872296557532624221859079993842460382707272104171523386770039336187008355551605532340514064104667339435789609650975929671292774473359368371946957161330687612253651549413061405385822267781707937336413625653715957882822748230176432288009870261907745098832893076318783227293358434883056229817022152336507575443909324697247157869884490213428110626401748153635750361452004763918767956049536603793500214010202242949438723652459253662766757687536799080308894214591102751789070611688257298169541340015086097531010079970929980818843631450874232326251188255521632403478402142195111055950220728114410476291941507655958715014890851826565179579980951010506603238204889164124066906265479578696941910964162484178687632380707414580595100139549835949270429520566136486714506237768884350141306002197858394020654948266886535155046314654686679704304695447442999537507964612541550501587029660115000375433031770717350001720663870679280277135429720290834180232149004690591871632332453351600233047903041873082264074338577143018623713673023129734140473691090926505200000830475489839631586187045818071341631578502868584547537683138709623787947940673743270337214898295601219718411276913394611005845255205060665288670540655976591337763460419756335444185242318223350004618858418728631154451534472391115915606575848900216837135667694667338828288798896281989358089585091670298042227422848079655357285703620876070307876920022945407155272061142122687296407798321119818014074113768965351631908047298971675934623348811172867080782015635459345796605753950548199325667713044041623753677903016689344436617687056219233001108558399652804335119926681811141731112482144655412000498235190011762753397067471596385146198990482737685054034204925046727685700174132024307423062718632907583767776007882946100631747462234499829660392645784060692427344905850549719812070609424873540826400574366523876630490553491373504651298058572972786979164266690806658348382873475291564784382593109535715666721328310247957952359438184057414894133868118650291330844341964119865903894849029046170044983586615885222089123922102320714503117642522596567854446917135235301978331171622706460499268638974418543284982800837683525902087786994569390669234008712868305271659278084210350937522752696116504263901918938466126063402557684618017717625188071806433381497232178330883511649214289626966981678043927111924414647948161106116086701369323019054716193168033182425541811968856721775791509475882593603611961977870664514890387792118468052663871570796976439782477728088889523603887373064046662052756868671303160428734669448593172427956188531093027179676181137195623242779909080594064345099752187066591827586684298617328331324096305051118785333427639544193706401377824134069568293944485047977001033137595701175339345720771665035619462175641141836182475299519875393686770562437162737297253056785885545870819602326306958469723653584830809164508107920107051461426290397978305316621627845007003180186581631080448711250887165347551512371100602806800804828650623685115500215000646062046530799212169311471476788506205939841904386030360896402906124351104632887584441972135287080299469162157447128099074702877502489152752299692983998625860981813472726454824515118799854822406289511474765300572883964337514146002327641433350138735476697190157205673299395699921194177584360336316694619674511819687795839928846455497949868863127803330517403304879324086822375451036724886903564951423084520514114642032414340710079676845712596031941683607163266508793578044798386239559201314985926689035275100519269845428949450244844779093430270117466876533841928143654217807358536277505282400866873764320531699743661353577245603942988335001853948311256557973269209407772524718018784040611184499106917847720286355111481350294278088439110938929831099726174990393733413619841440767645432043560079917662442509394990525668856023308683609022626245852736330687630617652334086348225016079479803702515982327563362755706341764155133010597769090214417669828781258488034734749884351577197483863745701528095043809682444442131956555390036594469291911971475442870390458416962215497906722624855275698891625313031252634869453540023287326125187634652654563329446948388870905195934264103288030509374166593939808002233532536334849157519695163264820362346364658029659448195426537169670213956654393698064237416248483024037420153109506974330956597053868843323824668438460916475240586997948259344523680972417288198556708209952674363480160130704433528219275217584361578254367369981365590843606106831323771662489921783703666202731913823071680660384158925679517603128668207302390186180285812933241404621738602209006179897989543187982923729544712637896806069321141579135874730837351896545436539492125769369992788749344437667143165990176758034268733983224167888269709817684474810743981492923769757893578900811658357549509491199921845430133912195896940913553268476793933577774857895195397208139128784214930445442563717870561037102045528795510216030805342022259778368140703349766588354488197446010608291757034453358679097692312331537767970532714077891531656601767906285620621557576689795618938802568681237317603766084418893123491559164172199358843752604499855781046463345742511763130428329460414482665735257822916798504146963536107121292455940179001807275353960030449368323140520268932535180176021374740759130452359808814948850004570690532268033725254933040303875989955356290724011049613870229135537003153402045965738878190769510599388666571544871875056217824100053483670788334964852468428645970231585943770424784056970224061821457041963366055752048189842664293277359709426293364796460216360642702801981483207439271470073868202105054443732221093796463066524535868185388001765287281408603648778304546076424049646915697183571144422896170127285646353619275192196352425035372864341757594092612318051403592243182790525025768615706270294548921651857536432950700871515161933905196893847970932971220824000702914857354450822870765091564755679991342857833214372552977425134770681546958910276490549396985408175387862390373010694736207323465215830891597524948697747818080891848214990133497278090138732324133428289497752174951351790674825469243245024615013894894057613701518934904339732454938415798577974402689228187993537191477798031273469295030410263147684770831672041624137096525952834398722266864250964725743832161182460555164489002161204646457181203212156620192442902241266191051045057693512511785679972538938219188966081848490322097195356781908995893162177912142438009613929961000566819800459705022585316957622500807185599153514549378055756018096223770615639760955438860855246809751251643849095454130718406083005727155959132485625222352513012379629538578644820971101857886762668491559557773004833079085967081554218251362833689597751242914795717379147823408891760991237039946754809403588002586175478799009018987633571688641725210285546684847451877347218205365080468551593724081022964407278408965243115668425077973994431061426858621010460160370416065512155889466440271106908991268806420871757089225166332493017638993928454125959321178381872254147457262309355540074655926148054258386842200682322534890984671464336300051206321758408935254595657213673216270861691990082929247776632322959479933304777797899254469454290782744447729431219970154509435806294096136371494604949711688626673614469596247123267062948162335614810681260434722068354353654083069709934161889089506966840842906203679561970017441915520280203959633972858342244205062170657398772916721453052300527522946344266553551889706779358576468551180444550530326856975313030543594201827213791989862867236035224177029438740845717484812176336504528387422360813233774235240374467018273786024548946801087825477414978413667031186001290604355824594883180845221128573255388345417988825862224167984834866347375876591494732326756910634215353907374521820184384813459546983925008377348510009870195735077281392376093430742887778792698629639871921903141626809838694455609172777699388050545072018463850626807068536206000573650707614838883923749686915135980497283060634061603962972637782086779424601003234669290011878512772895631439026249394252385283728449556998613563858212726867713411752989758720753299118084750279866483769184557665037495471672137406071029350920806414336782584765807812461034599459216136021357038569174356707366779728109046421167020150594808778677223231087383721086109249270891060606519579037970558597150804607362349546107630623546276038283464426464625165192733188160807547454081596483517745250253748135356142505629985173783751372253798242743641978179731834262118036489368912918986709685182277011682617245571910838068589693452926796898027379279147354641917292598430897378640651923963420601359081138324785192814232474192618628291367677657474964302780578185681314853182098563196631007515933666069483832433246013957636307446200151723532976063508764917026024924250794975583917412047475730651101176431579534326171181409726393220866354041869854944463931905732273796979828804460399181682357344577964965864444022620777690244205645506305571506207742520246035151666616571943897768767828865686283185644155385969203118352104855377709564438332053202681401253830341352763187700909842657865004086412641533038003144523559039691539400091966981121424612858408705765390803172492646266748996814839704884168823466802626159354174105745734805197317101232462537067680165835012405492821476005552621119012517691534598350032631769282670177085354017064826194838550713612587351076704092949900276574982263489238505682372345614611218591019642755265617071273327790591241217638652253122786801044744438715848932096993915284409174208146342366441433932540641549683984431786137713634135593903141938977827127675464927308548093423783114248950103154655193901437961521740370703248353259666073555051647829313192634956782380057175066894396680175003215040976686563377303096494615271750798210561996407233335628072000282440834720959475347634126357524364186048232729805256518712300599798695227742835884257338046000741746780970458957416197512247595091594134021478259314927300735344000440292106070981511827486019800658384389870954865964188842512444300002826395301304263466562010397456583605796216395719127304413593917343826674232239154136020714231752178373794793847241263767059113106223283895974213370824006660000940437395795666136413001837505553787680822264360236657661035789476725501530429669985406416641952754579953377296799779082995673130288258969196986853134730289186536029294374056196759643864582560355144854862317499317562328072512709436381172891860273681161386842188097632540115602803759200918001197546470498552499204628950584138925360100808627563199595798136077780584628988013629616581205884931153903283025426215550339266663414529462755323207655516311210777275462972472001888688986878686538489134162939760943084745517944280094294734715196515997790305520426396320802579326503971773729877948204493999299219566710058731619822616576985524528276039420590389307702841024239217413113768255712999004605353241294578426515982107444221549295813318026831593050732662032174436423108914597578128059411498921903156546544369611234149807676294072936091176067192906341373952392430473092558051137972757696450007314864818255945147902763348074903009695747336012330400367186336620184825616276915585356685947625685940132766857199019185303595777094404521585189721902500535165500561415965311492628553845685871784995640970334815077259222885554615091446294493868389279274673098201616888880182830640371011264223066685826861286781243370926460074790571930452968335111737075585121682694230420911911465880037809825185980621847029652002304125070457580572599301593428573520765346705721083116687208747350460010323845689433321781455215431838748175506742731078471726498186778602274086623005272516554621863999777727007358462220745947173898674068626320304792090190791814306869385678702910764942713085750042531066997040081610198789056104042776372524518382962140659693277710680051682570458084630618417516341272631015838801658763931276840766750369724997258363109412721266104846762190220669613669048059287289729722009489839687580268130153130096538214125524932027021301682598044942969442145261037248694911669448409123136907216403148794378926877264725282982971279991673269967639097936062460624502691116868301657629003154829458512260436589116376874396885180126780775327626206581847072913825945903600480519149373652573607668338167871440046052747612013074039075988622769299955253065779230036303355229301720143990520098529036593924771524406413877789076246718459095670447277887774676946371599876414088169056983615789052272242661815899592610476640024279826183614880345563501756043677855390711723944643222831153204756196683884090841704417200371449339023926756954346594515230922816035130029339858133247073346319526992389666085706280068793849630761135988456741595941126815567622621815754092648973335555239786326973123402884365057352598359843091896760450086125029160848502114405643802440903653912011618886073786777815221190337354909541574938896504746874174794115539129496644061117914474404424535543760411111766563384234315540624810201549807394296043291811054395129762983950035111175205058412863110004544469071099371744164781459465586495308302983609599427696780629725913441377542002384543837385140491020632565167119657511685154025327486552470644636064492731510218338106521713038453439882633292363789189441040224995062490473499636276523563486904533943719758042445234145110501799128988654679513019813566560084422235988902603645676638474094297811013095611421369050938329554657561004654251717885619681434744615649226701187764277749155934738635322026435913248762991725251946684442105154847771102937990022979029343400546892138991735225286207179833601533159588680805178150432433806419908544344812903354277456974318787726706959034331001993434388921294075477307000312176690127519805374528974492684043604749967027576198566730490187677956135531212485570212670095698323693566533225195269534336065944759480611920238206766018562497303301411836956196140852214149693420115406981514959117920332035528516452480635052396936439218247511355401406308794938965785678713210000021966031893028225502383217750201399738567528881438317830716991561115342187166925981434529615272618431724476507848208412570197919873477501068034227923258202927207279900188986880318507239979648523848957445528206328599207157652291589494359776001814355347025194710968850410496569671080372947730454651582166698879419973656330536641924569904697516904101437851607618578924904999768385431381597148267597609065235229048890526831122113713404329296059857398588230286023429635092297823526581479816582885643600478664867505357676838957243079503034520407905690903852682865010967397576534305332590910623088452097397569275472639001507536725023046732048852318033509798783145470603568166774032869495857893962515215966171927584517282977276117649681183891173971388787721778382132006675150429357232055044437283327102534775363271974807183709204652938564539385708254676810089015065103301998007966979874028123027733011208582717750077375121613617048122895642892088728201492225120954170261654925470276921289209586277018328433667103812630070107463106199725979719869831350407780801963917871295502824547580925622490956146757836193809485271894704106636187485110976991338085459245217873694723458743689576887504578900079972736082650147336097080863222245183688470650513507943511965170976499988599671786066808540873331430089003795450659607362821387886023679834997297311376592620459701172685107687121586253502981585008999109360607255108953051098622764618580677731751706470094893306539777001360312042888106668814890728392063391893051262510058104510390635370714436674613232615051914755240972383364206153375700752380223002658086896662345477934756134087869500775063973377508482542115059323286949143387696151529554879566629682900422542409843919290913398105011039305991529473873670986066823467302425316090480264838212124414096689344519812215103924078970466410342620884876762717115535724643262080435625733204809116375572868986414556843522863503592430550963812995565195994814089003990571411430297240808848761508678939345416013611400586364382663556908703275141706948092611407620668397565431701185997432928441310270142816732671823459958065652724028924619180122842150101489689930487234196070540324173416219465222360781324931200085751556758611067650144666397302480528487871177275817820874005079501217436433771337665911185809476880212186828153064565852782366743582819473074003990543550809233654253714703086268122806008468926346044557312628607191774762724961072419230829511548481507652779347035786348681238642045185816534585105325048260992824663153284764259751584067574574447713715564591298560485692995482236208589823852277921035059189820342911375447118876663862403416199423764409090670260029792692644383237447960303905027582034333692783252500884246650357587350102382207745758808051074343160955303610719686875437445770238421953249753846114475377799576089470965487493058304253930834405984714679933793254914863338187402740771293415196963706321539070434683856862307554135539555717035344607052306402297916731785994037848436077406919170635436729750647859597216325205421247281010069645926731723793381057481880357007044073221267586211956804518364111845863461303188332877356033743815065507996600174966079004167768778728551908796572037521047660013299798603813940543409900501249406678346944689023572306954017562998405532166419236041982276661361593951022920277681196166485211154012640444486179872085149787121933215927971874615755536254354859017408046994935802766168798798235378656102141036478032700134575019223346089998240033472862514783077834837653832081126652119725866499291156037509930123938652584095508257285993767487630627504672375889518258603397522879918777840426237778894338305356946971134643174229377722809014742209068383060263770189353798701571069639257790195824708977627222204362543711228315932482157530880960162336251625540031381466230038296771706692437894425933985465390226040838522631842626901142355277299322897013639467260523560987714571528822030224138541189681518866063484349255187312215811550981971085893032308065261349588736162992426910505975090060677991258218585089144665493930103663311139054742058353326507338529247102701570992205587047096854467259281354887460855868661169946364193719717824947177732917164002776191078768095312667852886134516435946924855434989257858174132389252004736292744958860936488077228542543140938844301592156727888693284741859268105354445001186066292341624334010598599136460834994404507774845317566824757961881330455162847455410993719583641386250602357442300272666274230669448866534965428399352078155671771142442260389610683613082002746168058836792326797867051940092208034455123105906797130488306888916385405802730125973116543868705013231269491744809120134222210324745786631928483768908010601180801233799027973473676338586335955782949697117666106244848553587871811552805042227370349105470812062248552378755442511327927280577118749727694180286052218024869748916126702812948107724170946339758157841244185598417088932385712561413449910569266629145516384868732045579003043364397950605585906412556039932360111400542700879739653425105915811736504976783108296740025889789266440329373102051727138091193953584449164366821402172246258326079143089298453261369541763619500906429710231576487143441529977082958275290856448624039315554363482483981481930318358519938972577328986536562434495242974376739151475995754419243377970467402853352087964852117870304784184555264377517117569425588359368222971423777051381141505825215573114460687984332439738719953273147136032946191188724085365056506792040291790614675344002129878351596207920870971263211083509604818761375005077826788102899587781410693999794060243124400242636068536623079481083694782199272375277806450198941156495808122008111926210484136062381806424460804876637187625867222248726224065504354044939084462325934078759515557381987276042085754991951721706114222939759017533057087553954503463525247467431799305797167562722510352714112745752258167449575352683526615047461965596784573592741455354840464255867307115164865942080030087542204392874113466758476526680856824251977430569180709539465434397999839833702022118906765920715824857010862922457948359123750163683045319053589716710573132622834019207996663097989998071240166239503308068240991666637092224312988904742954477570345154861287264219503494995752192513839152944981611590613780181058263097688277871028339244893814174949796215045913023607226307043997938861762141917343960569392652989467897318049865009946607001444834267684786789997276580052592311765309167253276838316322908905258318426398074415772915031740049363030897923263155685630367299547985636428965366657263961566537689881075936410645577628382995185828232084369228812677332348244304898839216766838178921795516235353757031102111248147967844448727459655535966347512882882128922944547942341094485247282200117596710717409841933539459278857614255994632845655770323389238159379290179899219103613972776220338647756290085896743630158550598257379436935045652646548393672776190871977897355226946432437724029964821653897145506246105998223767090291431433106098856786232916058888606742359638259697492357263208641412500569788765446246172172709619210258903723895316472796938724163726125129297301837206797379547416476686869695304554136279928974042903989739794590463429669782634419437144983776401334135488947298291680357093476001688330979983296595088039452105040251128041373226712926033606220050829438504653788216451448017735570672719733190524506497406785269539036015646052116085867230428448303800207143451678054339834058942189930692435743618734699136595854365858795840821131354840741786587133611775059908636291484950617031857962320531297784840973365336411263361750277057228305393511930218421077627998049080355586500679369816023799648149763486223633478134474252170436421275572346948212389965642703561005807362856469668825240853938461141515959015452935823778624687938382430093157769464710743447947950119598062843927943493644258694677694278477561235588520149169366900979497014520293799184397597874365857390486820760832864661645502379843834133103508003642137948889103618817640927737018192204529905542163332327278958782176131928372930371188807680070822554799810989763074377582313359617372996153021950884072629564650033773273212478937433348598183307694679485667380117306786102023294317742999110470360763297709196501176775982276711120896266365649690914886008070287316985711802734388785348878364688400250589986652684818062165833802397564172847195275449686904334573079542422949366437412628263782243966991860297725819302798122857946661695949616070217893284049209208983925698412534564453848265309890366012499751338356304171287535020621490870359263032341574140930848080059082901042273196158613972980500918351345568416725990669565105013379547076272342750378229223095921145472847603198254892778580471244948166928664133178785822103080428425711023861460331805828603011798772232049662232520570947235548470912562124085381220501395267516062067823493618854202518841074097446066749643783240021522553292844034452281139969227802301105836066642896411152109486075266622485066364958986988067662370788518391931223262598241148049801756647330235577930952863803620114201506804617819860791228292202083086828337441356401837797168461262117383927818552641344528146943384725840285157407378510883463402326474774308340151852248923222950669620759923042351854511367819081397202135258198815697935200023924812531862960155187482682778008529711398053055817559005562606085665991815547451211706871293994867783241003103527730178741251397501339545500940041041325427686719674816675377600743450768374293727030291575887841354335350350652595447449536199648621246428330655803833606396249409315885251721500484477412750350226350391892667551583627239582186473972381584231702921625449386580343418628424691273292041204901153623758124510408366262229090712457099168981519860715228948484546070880471856287197234278154476749126717938095817918255547855644336905999111827284843907988350317512334172572685875923663083819598936249772917382874212382502467976684588133438561586965724255758251552819156718091376990086688130672837381007253124601409496146543280950505008016684350198582811334891339561411073005946426925505318097242262394750528454684040297247860280044673905159608732644863611214531649152233837476031264873138082688552587723916499301117869060679577993537078078829533367119927171768514916945678530708282750336080673322873292483915271759043636043572347020068132139718778041542253829293185599272318024534779518670997785266056425441023937185299197252408929403233606672231370004308898916749266250990284370522805770547242535762902439478161121668007746804860058943149824668237290779136853775604703802305118168627853269324796575989488396239693340846145995418245544344242368561372800968530513086576623766697978873871329847029205751380212914198569102057072498421052784544141809879337631233618884575028108489454005745055126803568640761815391429085747400881253684821066619652803416430102525047393081411593035806385165173625139832267261550426698250971832279181518672091372367375570579037020984653172087765874069971394106813071877527745685430667324190382556919647600719682530327660053533396575765834339932301369874138520168206035546969355929875845426011720138362165280370264081710545215271071658203797791925041310765170151985312797584364193395198447811438734980931493725760419387551170380804494887707654032011931442751011449568770840292253073618932036091332275581404411706262590886263948613727411257740609184793448492485611183631985116150619030436792896568706403438212863744083354000962750730143135191535460250800297818864577836726618921884210699104074882753210366597205156653065512552303094130955116911842659227578909431573876170580352685314114608886476799923122393788492958933084524977169693611814937411594198764212792883952016865561422089176701851266156791967761093242062521095257985140905976837716665850495913224532972044865134647730083005517927177687038585984332029227694589373836807476243460712528590758411073251379101931855551479084287811611371275953279813546703949286014960194566345302196687540059499637023520608073282960709066207466287529082101084395825688421530908840172353231401657682159149612815441907763570517893630460207841256123580655874581312336104596996728868507630465902506649692177748842345331448072329697429399610504362911010590741385436061697785532687592419018787282910199852452770858249702178308702936514020895623352849994173015653550206719646258119322415055408311354155095789779691546495927385589547525808182201425965428772895042518932566337852100329933219947377343142862790211736992076403694860934305752364002745154035584494080596503763103755301211305237005755189941958016420728777917441121975657926326496694756987685051313862650460867172646570486405150232946161150475566313244756135655558058337766110632065193151833730657823225444328185776905440700501370329797875607856932990612759470563969568370783090661761807342965074635234192166002777874246240686063438109194994197472702707625036150818208665185061016984875313292473020344820449879443437150961143469989200328167185199199779573360522880450398969139697549615980737203203207213248431691816653265907299919464229028512471561455803376535739366285238576380206864100085886563670653373757911175235803791290274425350220573076065566763554777551005539953809177181796484265673253466915941727467738036167224583953405800449682706155076018900779782844119537871766464209075792973067744077319552778928287064601247321344229166516886061957100723686214979980840710373716091636759489683811482266115635524599990079364315735119054941852857680529442014887088093506952088339451411473297823818789742424023494792649505420543320902534605104417883951196861781718690381475072054101397236183987955819609974884496228830951186435060989837216213333167960233357652110816649899252361374860201200125313009495114010363166864770317775097478853045574924760639764705334762925802338113737144513235173695304313374989823118406157134544004521081880264185091352877486017234147052823270130641912099369111702149101747066399443515035040236401820851844866428704206550710392464797035839538792613127826161804743462286631890819996421021780894360082691240900684834923969831627830327006064535566463868985579854344940788072613138001097705137553023549839658763470555553582890727788635684099755826742352880558609493249933430168849680333244755419960599134040219659786226763169066675401333276468955969326748126644659405969172274340853225379215809519246751235042063333878157463021899317855062334219012591788419244914422277625073967482528350766338173657606425753642324188393582030721610243543968750142048726600415050469351157114749883344967235276357742374760535762019319874764198076165993413766964328446907529080325651242830937366505285350734360835826628141939528164326510788669358108382302235039357997591103402027111510447018699065921094452918131275540792135259275187785517284536120797216972387635825448022313428995389251601310074904925830084113054393682194137599117581140662434155124477564041737820361037238541417126933482698515834350028585100877396855285212516608445454213220404738392117970178998877024174393133591681992490618922679215695779027781623771903732404359311328427855072652912320366670743869776721049932998812392317855144445280558939410392897976278940115072457475774629888309665078760035538652501033387846308396578551286873845107855680392493492290459567586204929764615453392013491601346557755110808273434953332911583401996132010963215241668436802596545939252333721409555207009069905117609014254364950947223011622596250338333821279286556267989650738436816752460946116926521666510765670634567459298301422051175068767707712661790624410950881490289167322385323231784073627023889299339565556411799366972832008351829883893242811943237454552567641732756321156691777614287549514965730649754794187047087923069604822337272497574219840823571653522864992548824850239866949494240807941576950528287554602656210136183758258989831083734237409452600249487554160484645279549630974721351493516146780228500214191843218768162835100375038481165700886597089728093506032936825104467156203519799984009813092321944643159784995740791717399046210421591763666082442426136196229007012792156537305812474228495554070718690785452528289228217662269774232999572575053794282276256323607264744489346663943327658845843638025270420455962719422712354638490028026476262987874857762283187587086636629403855082126610835484601887139084943534815260194784436984446932381373520991052548019226980850775311636054020791979254509287968196883893242508783786072747684402051857047998214047858372332834476630124228352537781030634936854464936743269378033276510992179700654243132442548627829334170736281651615613511192948465870467009736832650045865777497928752589925257020209850002259562885132866232632626871004056222175369989010766035687678316927248373708369088351430961288572335176715491772296386427457957756903359765389388142155065744196149049258042419352306615323129590952927126190587350869187791345341970138187335630264005296863629287959274873833203794628164397133105787138671019194807188758957943741136522115293285913431607737904468898767107212425329939043005421832714801156265850930937705101106504596923776510736301335613469069450928241120574591904910165678857406194584292212270227641548249208597383243085857943184008273080207583379915968013970551709033818112671198327580909788625774793129269816166672630298760131286616604080905545769010870777596473347849807125585636821587540677039922572184804294557126091976097813453169935016860406795609343693515846632237308924890287942240399895748581591310923189696942587232403789738960275354180159038215485168688016034634912000389224904366246145803105275543133980862497851673454993785067616850152898564306825393373097286190673792679663933284890171507138449224557596995264883117415338729921696578747316260133453472779412830992752785310513788601910341883247070206797450416115710682758098414650544584153854876961606562179098381878982807908403907020972714268358211931761719225299456392146367940575462714962144793358031688726288490930428542612345014701015325360895627072049776518915565747465382437604395799175795345425124347863723083483596654451842079130715299141394398309412275237080929158287001640524570313459984227397634153119755132715802503537602011950077187078568854204849493675014839118657534439100449029258933989570604507632706534476912303512364603840254295816701107257466165566636341314984003999972123958786464348063326208310887491409490063934397658820176377727992461349547139179712959396579930457774061692368033957489092867013874750895456988497804843536130186306776951872177915323961779110232981227620878018962665099805409748455742885405021564712893905269426670212226976364059212048285821686710126211555346172411482239809962014775743009155181751567306353732774297278711670027613076107208885609853659323125374399057090802702523148104598838880169582207596760541066936875522694849022643003836234776547693629878331339517499139214540982799996213848794972639824458424256760531052765411233552399980173110706616788166206161449300606385895577961487424310076384928344104080094677293585161114663024868094547394183442997338602625383279692807989776497128424034712273118566429617352294650439117959504255433897228604714395736873431564617663162939868685866028624402869120752467292365083798811153269087353781898960591945159279870843952088295400877638818188543153033950129312921547062407106854753184279940405254796096482960082483780089854960688232505238625321057998706782350247250958667700428339343643563884703313456609324974176920963537538487204106704062218213370533689852779886332716393293818784836292204023900266704745430092593322110853806935322748567263841729437512107156665247502148103800188887689002312059516117183086457067683953383801287009299770692992073333004997424201407061538352930470261626468285958610752712105298894510122797475028019611665097098300072837640635948523247408492088692088415358422746000197944154836859630130736300433785590811164733564081002674541637911505847021457738072143866184905647627764076666763312711787843171506065585490845533079905017110684466337771214428925841194771782914832780756945607640596927035356581156921082790677517895595425114417295222188967293571740094065652573740626337092182487595780259916939397238161728140898044761317633546016816250032130164781012042103186056074280566171765654990141938849834217404007354437080984951345066632685761772020831449938780992779912199840697655602506600049022605271638679286357559127530819262726098591913470611479894448160313657928315388981118849798779281543068985184591216245597036432604887195730676328949359067453487116667180842837800100368877344071910846344835508764211847503951903546138385797384426984559415542436929636617124681194224863732518190665989393697130396853195600707938609581444013387469509052947040761028636435001689120161121622771107256560963274534279068960625108197185025550534601695860074066221537787848225063060854391599224899557391133455102137231090213093362806249923992432030145665243058303339354176542308372107411212974109281673505526606677370465788926956301118769787278945181431427714894265974494789191372019681078148339222573807866555673247564811550112216723049405617086142742976519218536750205387724023692991634549571182533984436482355203179962460422144879200997720182451999377934882753023483436709153730065740217484336274590185681618985880844770794638932055030350479999554825586617805650284710330165813776294639204366681239960405479381454596989121102452696444738271189382679312783653786492527837927426626671040974651100697563231116288808439897003337263644933009164153621544540803055813489705105180944502339102642350714538621188072466202047561359849878933759416344410461618547714748836634084648756157356650550126952730140493618316080997601775845199311650780619224076765520210994520343300390739561760288638137159534106764525577552968440444815268981880457584401968520903882876432687230644488415505684170198125787579474155554935699848360251075328108567464094949473234391015379904174879462203570606099043776379420751545628578738944374777562532758228362359237836959636896255787753420525373147889278003633779579250640014503421437008175466358528930447867955927624087000086861620957452992158887147180358780011071612281788093081165257357577496080875059683723461971388928550398338026172783020430388428418975468304623790398388685155006998418555037429492052719786162101530919291000710332983673118516986782431882742778127419656705303031962363225716280388271810243960298512418795671418592572700562353507203869406651928887635070774002089642385592641137102649646176527021046622567713905770751285787257019242207962670148630642312191002006771557464972378012063534026390704587854861687858332237088779819130261722915006158723723435901577776547044941054899966931446621218683706344831554661387268914629345786846645129162863589241754195483571059031714453687374032919190295261363337514725311089737157539657216508742617051072981722488201354599566596199986379001282368442701079156349512402285078178539552215259531949940163369718207266268879848724652072884833595571658634084770884706173490010482345235133373807328425449729367324683624702998398509545347224455627022586661391715736686065968934915328906516953537121144973414579397464694144212301868919529296043167119559602334713806438888187917468495364039969432015933097139932525391381970706994672192914740725457464880866845116209097179289330850931241412522703034345079791948074137351936579999409536820416966145680817748270830651697778739737362500052746408813954289824314459507913670469857985584349725386354196858567949295274765858746988998047849222972586272714313830857535889808995648843244541976075271355053277561812470864154856225311916869404058356647519541429484715778593917490076644608558119972170266280944176426412829133079490636416671436451918503081905489904161482224249115527238632354199058972106308885450852630781510990444956620468567411636231734869568366320974677386750812973969063493937982394101639192043701899171635792934507142647331739768463129860038448260760420622091937893753751944180991122333009603871255796464764481434620855845451138147810858632581239112282843940948477989276907960486672573295360174413888462079451802531486017025614831715726099954761159696934903947307832482062696512128777934627356317258572353043375200657685135950065181892836551264777845731227951590907524260182694596298940465417465456793892683312671357324932357576370468353612078578182379079435088226412525744962871594069696539637219273206929890792857152973138620056607811442887215233931852544264215065146072180700818912954605636615712151612191252524333284381931304124925059549889268688152725748257501290284995074043326701214698602232089063025095622889069090781088382165068829876769073271777148018082400832317149745106796879456732155453632762634739249946894601407247135096251578270017873537943489403866113230374578089790096329058950396263170323503886941047527377699399040922877924166067665876794195252769659280528586154036582572262376723616462848892984996829545358517458269986925050981259314622189020854296903728554471241823697693762380351775590881938708062673878392780489872452697894569682371053305939147271309992222820815644542846419971607939888053671073541177295221124023872729113235245198539944291649360672420465658487616069852524856288938519217393855962399615679243891581647046333329096460772599987006303023167454215245987730259448126964240050626736358161477570666321700086874893524112155242408668680087664036500992026303344931499965832109374842635528852466387572642276348570674938817645405567010979154639186413107899958549948913469106643699664512276477876198217742549781044630042243480037218188978855270751099780678290678258967534385257765247152189251302852984808024161727620588129793295432154347576545279840684606238720679497360294452180010215608487127793038099884539402537281397312311059009068306394855866783073034576564726083721973383011527579167047851974167863756377316434205337916426792628187471071893363481097008854083611129898730168699056979336374421242800632538282928973129608233234440313035527375313220400681112667873785363007850888586806260592014058172197448636410009976480461165288555544641431828717117201045720234896321938387768686512097681620604192910722759178644669840516722770227779157656361189046410667862308067851146809650020320578274237315731554226664217887129927310900994734745522430635452753693462892274901267753836072672637971525544731574930809411908205200862150258597148133652719766327005811406229135905027031018648049974337003107751776348330909952903641794455306584419993669347346755705871999778035615804789151406180081520688701243882031702908210286361701462675061856688138693198129509155831856446004027257473643192258158756601434362563965553574437948960213472721038793011261835973451683883836100504188418823639015012723911065507380492757056594386430533370213546026798467364790326189063977733555785001336549247258528479535357735989898085575347905624907359107070086314094312111919317298754990055333775532294197315106978631642891010029408358952863380476002105515688410636454548863599899386897666538330015428625173791085466488103375888918253890388584639367991158740581301938615828796462212499573346910384545468023842613976171325393208559025806422128250081181449940973119656615749232777376982162577376778991723949303900828473068116991119702394833424073735891206451675101671674309978041664681094557722193374160132183676956521441050821809858296027800950631822694189690891644026782194636268126671665381418119820836012356890362177586360411771291230365201916663813782405758107577224207473274600090402486344104781504902355998155651160531076261656554095494816842801995616937085263446299124193669650054996953198020320529723186936985426116267603683552397394615467434843464772818352681443633453330273696380937542042373534542351682349109032222297922593006103726654704966427949573900469672306556843778737091027693592260735572596691524218165288718654508388099338075440478180397043226060230031107711059628376251883563216818490453222453516609884369705981753916698818512662949617533520073748859782153291352156608459379090633651924149864177595634774638903737597587456348276573711032213609807996690678568083977521022565715452239855201352332259625283944090823077936954027466796280362508002418971201029468794502698383577209566712226300354171493167618087033652462103901932971866442592940735068366060139214654698527513422009743106500671193902828371749771952684431022213427953569114074722437033426782586180931067126990780471061876353637606757035986782097164659275142289385532584477263998151049915421945486458358374106975209755587506254861169497041218628162114295033612712291817736345703741274265641592047335168600721872975397991373371717816741366328224822347974838498484737794544971089554497539983632332537843674046819886278996003172452929296318552969829373901274842314853173007887366525583812454485487748430684528740328069216262973030752987265588834106554837579364031967748785523331786468663099272563143065387549336004077886050374715626144503670950633170056153733686128154174305255075438112655302523913728273387753938526971093803653272833224234702378780542173333864130421127942055361450494777858802892894263880768537614402333791630448065440827629184110114680533563100108355995341061143831114503370211881681423762191858946702912017373350678923338091184213838945348011546281883677694193904331990213232262959918373178066353869719106116357334626924468849014459988991631117337628465164845786059464675387607494612975626092776672866829692067138055430351825960719854323325307364508874432337457887520043543342247039135007426556925934287171872844820067835935374661119944258737240542432090329946495035712416890741673940198893507990414079479016722488475074585612476893993992800448319733671021814226808906724107370544383503156946471153282210132010222464274873637492800382349151240708966215772834667679533114432893446627680671254160858363131250822450248777190506836340593623212845738882591035845858404268297014983987643943174637312670866213223340185593383966890832167035748661702348375368416036429200149808065145380093190722044135623022067683586652818926648491749171783323054313507841920292796365191588814959440644996391567883237835535409226352742607223130228059911399410490576960766698265474306706046845252442729749477325088625011941024541281338850338482048094118765470864505797926950590024419194416614720627426952626279320288336094995775518747405639480106242165650441767877212233126052453339151867205796541629388094994769545500766064987074389385890003705378422745233557776655936054456385790572947271993206081258650812139745042772599584190878366747747748951290960735653858895425117201254369502227411661504967337257000430148488752406421337350972338325240072081983342201529318903633998672203885824185847318052553975128173812285401829123173460477121708023788290879861919650491535604867088951043170952948288228626840578757203231730184933360634577219130136643074927033277736274219618011830980780523608908186622478768536476385497857879805926314796454347591645367424885279415585374903586798021276196735141916338518671551082845268069667748900449440961244654074245137027661788339840212705771808642432041539743015123306450932895656306067597921374518780785370638341189351976383252891365071864271020411507752549633332446655993190070427079934533899621732094793410238132224402274524292729002391522104128078345403451109423594415954131341542949360164117558052177791519587431572558499559519329904220438350795156718301981401020087723224102418448480586763655892455055596298952610319499414930806693432656494600008524690600824424408174986152766055525336480670044129432769776599865172443545336622526233563329620005741742588128743980873051763037372805130059185213575854119663407701726314528406908318070777211001963280859431396535006009959614623284041792905028651745502625021288328635883949619781856961179134415898564307900304133700620220220648424030209656665250916598339985922272681121101900344599428077428673859344919700207790059363172924541710247259732657674807115509434823976113358876689448736520354512008533684385572361502138562396512101057027600490539022631701252195896186160657925376966878288349262290216191403748068984924732177441904454883589149948490561322648744094129893725918148427053937452682217070255347898786393629995196159889491275047847969726213805441026011638017534405726438506271605847363281229216898816745746391852924997270956671741729341347886554172893878432752658015372572013219534359104776450590598764099763212180028430597553375923284173226586860900507401680187572862277060988080770963086365441841214263743026057747419959450073842416602523571851893390997067866444814127156969817142498807658657592949498584098333466122048567284632548718933708379097167740191878561057301814219452378428187264128659916392375680241479332087051033066830320906299636397885033564369291954581027187909371933985233221869536023655188165786648769205128990440502724201777698554521843303493276937965492461974573988532850318647172092672581768534924135871416282474655926256252019563082901992816166474100013846368477947355319842051480661988438168637607321017844084343059629000378593365642486280294324886925064615085396538210467277524808018145591124252190251565562118791036378754514106921933238823347541299663830833299754823716862459450847058581057614033991332470827896013913486269280625635599757343704405342760797075132962576007019147411837532150785824007694885729596670541833074398186430906936571743079966677445205785892852406700938144306163934893414907182349982135412323297835825815557998650949414617429278172745926474560196729870981451415628591748509987600529233178569097454743415232907524872261212860515914363433702556487040578268260399545473634180741179037850414531023704406945423450552881183128306051446923999441017158159510709040655198058165885262284691678705764777539063192518797562008297661756966170513285132676486143637920974590524456769933467598554632293313803616061326434427727969895240880801194195111053902469267738626016862039907442495721029934805466244433839527961652652861114694049000573972904600636509699788239919694419216437855117532699541825491120883892824061090835906193358112991416443210167131006048322889763360068950684647891935697071066154898829915320923163815497776668583019833539293051417698452338284679003994688052651934739294763952530232082929194568432144872421059979324818849170773074061682164212771530935911387280523378878822369671076237548324616609520375875621304928877468189130546195958398290096887278903951492004168530085590459027598523705766880648386230637079018569317629904197205030947045414496417515675271435225933615072833652972645993548673453409770012990032165837327242349898546783165086920809593216545185314715258219420287078831821908576447402395258798862717173085322693704074170776107028334523044339307857142379030157374035868933217070752067309930422637621613942142073474659221402716490345673151127091880502818414962391331888583668941384140273888487192767885575168653447413866909192311167822925593956174486124719707268469221689459528851918434460661147859457280900327971667290034296652095340548003218317219456495520928070793106060232761773921774207999978312741345151278087205436357169936624792161521738427483275956056629927009176211112862725611697540578847008467176187179322001828614087503851427937512991663777526196943209079769360749855441638939903203488579754638689093139486363828931155747732373983626314198413900458282486654204358231173937715166808326040963771420006056950998862682723891059673332251589179088327056125764565962199743823591237780884592914343385712137659677323821677471541076982962148880746952039982759589195958354130846065745373095455704649156261634971361633784999337931078320512200152543267467526412449676556439284957265080072402178729058959309379108871341993671151719504968341526612952394119946121338878148131228617963032895634772417651696458292538707690055704306876421260028417877785965600849841851446955499115436370139381399226211213165986668669273748139885399769413144063603836691943573012516251000319329883392769110572355910939916361651252716786014374277420511287662659153541968696304038504627486911391699374521373632514015794225855181730768009428808684576094135201415990208360418801359629881118243759394770243186532647195453724403077155809634335533441053412686915112834576372366122209330528779741915997862904746047329255302239989887339543854273921384392245737511037109314690501679029819481823710372318070419782734707365690242061467564336045105550789303855212444215723953258967349887810656467256385719162897854243696224901336461282648506980614822496758489936775192729372429361214317251579481516794953899528471482981205452870866496509691572571425383290837469508953695220042330764987516139135564568113695606629066991585912078215086838989626581815473542855041158014076442499491428449756463522795150747270925009494240611752625655535709041621131086769725337203041961017806634455481046697835656143744155495790588446551384591676144468513282684980469658572642982777805128073141540883078692909591288626425327393693619237055564785216886227385288408691557541292547780529086454640622014535699693123730934301557062504479391897808040936939726278905123840987585366590914219466022345186712184511578682157030692957135181410758856525883999055709426030030509538546880601301645934437464342959155807652984318438937111965295197945929363989415435376354591534333650707182852203117809224698674566356136606988325492211058133807180189304479883698311426057772381149498970036534397407143317630623990825908534777927511711534431810462073633996694447279420943230055718812219348480986639988284513853274345618405110759492442493029825439686212698981094019844727109046801072399588559723269817188128603548198300358018764317024811726606110810593697067474121659076095727968958482648922156541976894701213277692142108477792426231510793650921970653772093948569188676623592192037832152147056795837417777434838642344994558754519041404782597340062130757793009309513195177213031197436182219471575781647117198176757739284303680444135821150633962187320663611025963779107840293752510806225331176344534569614716684380707429575414378864699617064047736471042802799923320919174596866490749374624995618019643524556674890029367496356408591925984049119750415276636887544601580016203713575824094436263241200328925824104293834329671282652761172173434516200110970263009067190058289478849925155344798717060824600967973558502581095831934332831300887476297402075811375731590836845882334164797879243913125202186599357971468515112308834858214207698866719973735609862873014245492831690287484516840886851824495197714248715498697874149126069701967561474984350998080731446198730015696593091295908736494589492939381924110816506287884264825796610810286191562973579825453151836299732160807362683578480096430451817351865334206463941946482043481456427571248038101249260227169247827935899515792000511135157686759014861530481080175735681282300119398571432542171287111721231221289234322371099990258714765658680589140999085775970051162698104178557766313390629372526435504896751907418317892909472972564822002796506984450390797823029718541119486306476187580122612460392944631707464543967052053663911205638301149331320685545760117358624144547979388107620911614173035889707625262732464725296164450507596883215791102793523381721233357474771385342527480569177806611912272211435386594157596409856061935122327105209651339265323761170734107787043376975240902507760357411060926334646719006019382392316200114395333901453020944969155786505008913080456776125341606950857286139742969744050869390723525790839534086361649411317292513075425221280800732804892406439433612639432841604871531799697871257432369788064293800775456164543876912137242286462834516670410441636446330196104124344321495834031702979226845249190468734304101648713978377518148110277293491723575850444443590635479257178696334072340357470421091017706578167492934959732029897502383732862247321975351971723467652606839310687234953395029136389593643419492049017925613871886081412139983999557000363558095941076230262168000716549472342666131461112808845095446300378631647151163687774685264338851816786181783908530509347487665836261258443260435954063686809709828055241862964547272153286693088424081843272610644462048695040121904069364922067189963481899103291121949170477790413803853150069817995888675080932058396733407777112578742102511230027963624380200537239728819978865568561019927350819374266676717214278770529286416103648221644970268127562638226349769534851573478858573974868241313341849564073968528531089960758033258379543987301332555380388100488088470722317073140042505095329903782731747673178527561503900205156455022281131009868061036097809595503616014984970596857769321159962833173989436316826496520390276496277974974892084427055446268164526124954020836121196011437215088697081031489406929196295220312009705787505254912398204095136717712365355875814405860143606325988304375204111450621494736857956339591850765399055737644479332581935985155158654537980300413312155512420877527188582586936630530963464467727796936665188761480854423474345404372633774527297435768208474417210280201127700131027753326238655196722961441484733044306663198136730970757334118304996562470485086443807390242642521651024785752756040573669829501795075888439142311647761873242905726829395169056517272329735724940775996557820019370143695053557885233922976806788736783904500958979492952778619671880899765631694754155385541701287736572061510432314296192977829125319975092132797856301903160290720185273160620482228282319721060240834129230080062449196529094788521368005131422679094814420481770435850916798968618895615547962225575765638927516640164558483892356613313525513057537131800086276935220323657233877435149866648326286164187041106383198039394039778139428913383019559884117705777626027472923286112265550850226662300085523056610830837224026507277247611479855838033851666238695358774979945273655910627069825475708945363294495474578839893056474979632300368607983249744259249399158693476572794452039290288825546342818485343451892565987047778899885744672040387347879768600115139544329896629407045500025487222839037452062701538676440657630378155800122699308038768669101760324742175666307142481215769330940809144633432347634575255710430789831817985080275462218655799549758862187570041446239345535301890004942245802880231304433261932678648102820139507356046563346221236121885635699166115557979412117729639662819553261290035077057210255638294594332782330087332103288756600769644511834302057427238166527350783515213734666657795038717133648923109926948240717460763531453916485110404976009339348057934205824451313369781431926120845878435330646395031387529687134064436622564788085252472494055836420059074055945073923118132978295629346666210690458412324383861050400216457416505560070112078747953689484091586877718658453370058209783340170002136895074130776637572919700191282483451239088559424151173148097203144830274217496718940311553530675573752335818886999434298202787442050187570738393686636519126338721163515506474740027992501465230218755694907376705195040333547068917913580719293872057124750903777465635126547733956676636051109948167837088640972503342887687026628152445788251189657928860377427008815809820754647535165700829482042912820216673213576666105211537119489273752991872642950314880821256777606804691085224589571781229373393955890673023327896035177863197308508334122503211821707099460020493139431700104029973946967045064605688338817947922405221350315063045448938260771515815298707207309599540752897167981226939028849509598246370820448869899702455509608905810914215417087094055640462903092281049620537278692151978617914028644671665184945212514408828355056792969609574079234079790378752615062038643520434811191589736463777688183149901131776011694611044732492037807182697099940200325574209322314072270955963047267587452999661842243235929530918835055515428670281752968771274350546223045674600008027256190417417548913032225195958555209088734773624217993839646160344094003483767405388948608739281188310769311317146228747594254224518848350997044615110289354926707315056170213109966598284993648323288945665760330404860187453656443347586265061085903976607726518318136873958820556600094278988317780798152461972415637250938882874603200120676080974237923885295797388706332432469232361750853844639934880104318770445514033212344146166823674851540552536780676477994420790694231109203221099453772486612657767422805382273966577710365356714492295152376819520740602174538795381122464269510944041025429144161179973922721511226461513309756347166624130852105180751112178039982809560715145691832271401814033201935247960367546075710221125323668885529817857820798103007911282977524296931629110728687058450164623665925079576159061666078424192578945533242479781737380476273266692119396503463642308702477608829361303292851644303212173823094993726831867123150282739128435246638663540743008919710086796081993170558386563697953110074468108021548872168474946628220205110300581574131895799246447920075819417168195272754208412097375235114349239747594697263756930845741989339864786347241760047310319960666029830723165665427919298940440101703949737710468344915174139012909432603055045982658445069569371668381805280346285099126322249070485406065102467110494127609584696694736168401409096307461854263236670615324552042645070599131486480540382708050440383077123377556277094258983327025447543015688856990902264055515730385878167957426517179894765211339668706000149334423097979406376378868532293953719394085903490196940728730522824068153860751083216783719188705914493462283744840037717549033192038771659364535112013962127995576672227863294718593853925385837479943416130058175235636881895300710409011636908437526903364248965690251556601855355815089715302741397865900323111543508312992493026179375481331233889997035162930682931100050956880038505797389226943608592168008190312767010139597131074169519846980754012948932908805136855767061043380241279519303914054118617476112217262429325399622099909273236954872396144129429506990810707109478728841072010439038915809141650418091071072111822687828999997803420889592274565882061326231493316308171929683958777212152463011697256549096635295605506156996660861828333755357624623891979322559912854256556375544927358061447685309795507895252783569179090080411461354709168741465900837941281257835515945303983207520939470525007384910311832763698037748161826500803881633743369670080659607980448534496039676295924792442309707136407093150752328799904592536161406678448793259454983466008670118336044032914577178113197322285086349584039357978814725249758366521205863260349231217697222385827266172555277843912873390582783420860405685516298133733269705303325971938258505871546055847994894119526521851778586324531253685571883466955615453029082954115015157588097436941716476567605963971682348287759791544501981952758485583360955073540704614296702757103954841569552305986276130143580907565478383033811033482088998079933328088666727901188344573249401123595673861133272479373619935759161475256355543114470373654206908461284148856018763671432290536599822143342208419103799412123259619821111981605420028136371877359209968225664473801646005614675023180769543306104745162888336325386436458727419516203387082498120166518591801535396347269810713096316306023706295385417554998713045889364371271291193554521080690130117983267425183394180566547145491281927512442166221188273252608774482556888121371413616828470252986809732369962184693375918623464753454776368647792583503840973310440715324599136362518960070394206942372305432758862906577543812447793905814338262613758578739897169128155790480945307213433939951010201145569196531459538895856101246722981307569376836739709798283671151739540309134892167158518748251633629156153575213085166151331608780486575141280303328674017943336175764165182604860289240345702143804271994520954076829064157558855073930073226612014792341700966683353417835356020011694385555757391655367632771273579549243280732688892266487907285072671368193319918591577716140552463869904418567044331699060297028047051001576785713696779890299603320342039045741040322608641338826548582742260396252385725133498860823078977787199759653892796014552201613796954102443384720409703296420518448237583580737615394754981421453130120497463217827602559601686910096156439160671600835115987297431251803016304068858314620105694355598633603439408005098234045492754080586766589283126121943580066421646230757819922765597388004523156412298831810153465730123932350055664617372305570708017913835395027361649168797877582751354375231293895821648423132482041247456600595787291597879385149998498280126438580457403357622003110767204814328712083531958036374085679810675718713676446281209674805277696694327153465491190242560799334329729538997171200240639303196166854143204504868654030218061228926926367324487037405339589767424393576227051043880791089869496149816271176717770440641925194379793422789477628832631218634514519829571224139040145262221055352762537624780152279425180683235038730351459073984140203490573095627768648209355544601607441762053796988302045909165258360533082209535043583906941781925727492556543806251826148652539887099877535919894513370945205269551114127836067664144989955824034567497486788505621124274170582501431162276152438601817422188962260415752750856126500267903213060144037897507814870652067004975556823500263268470251988561559655886137912050969755527600108033431050433204354734815075260084086429274719707310239331041756760135181781366321482101610724801041105294973651223197824552028244804164028771009775417525130861383495893966614972317876840249836268094910457603871599029103953683930228555761797961063056752834837662941678851390224228875286150830195753640268852528329052633290460950991428925304955991592199328887754072884102682784954404769167835658793988571665452135011346239711288802409591599959468332124240852942276483011487184130761765082553008359916036310590533909220881385305388349583957829956600135938398352308526650254872816517147915815902402750508973284649314856246076658350534343705099098533327654970006755041250339436070830298614258311644493638609777688963395522530499556473125189918420727679946971793606508669367625964981329815801971687775960585532101334384632988905683566843587473909085320770213239011771203569629781431753914262848545559512373958635960389638744700114198299649392988823966607480450176595258219972218732028697638980747788085013389817730598119523232686991988336720493051152194118521953639970166335866621097307768528599248322865540520956616674018121037573201939186394676328484514732157672163546466206164426645212678161063230482372238471544015231273187251299225906961791990813962472966196369595757960886561027422012954566711730377590894713193543723665753341133942418103606021006221536690659871863001869087049622707879204477101587553460092293877177765415331266804463881471511023148322158648822797745123978795473336758401948838586264614228084970264658801544677896782536450756758719612266622005860527209915796018738587818590582933995762625323265061765563949824497968400265937903248436551227083331399713822819001533030506835924733076852027385427237667016426386753434089633724969178953667468253602081614303409425175863690521973503406284030326122970015101427093238047973400693204699807305344323808383126986120797234662541810594642744940125999025353548334910798534776441230542044441712787968145093964360235110722093146042739051875123882797101903547646895201037436521245246605812379904939010973062340136368888575516600296319397610555415608052158758988467980257297190954278618699548323898539579256650617072878741584894372875913262732394156565364178708274575996432593432097192601785161656265064727467119472023374867266026837563880307375448615918245847372312858171201668315759066679507230823211664985473149741172807590804074170925095291767227603998341930292601652732685750826046394705692907157764271645591825195055074803711370777669534147154989147740914202714834713514795465793962177831924215399200037058260737255311195508728539023584654999424143203923339364009251324295627656398631149419138403353199412842057297561049947957498987529372216557401053761675704673574834504726219757752324996411782652645939221709462838815431403180893355503592154520221149982434933502205494202460491304103493756704110562079584781125824063131485477051149165201935272367528745647846508850051248077760360000548267158907031991033350984831742390018486496054877278765234068067238517366181573807755713951976884662311990028345320963621852548243193244000633999619327606345638018898795320615484508601582560216873452506647877102424966656207203526562346410241775628351384783166353726549418892530663341406981520521956024569392151245762636353708513285234934008097965999384633598041069224701017821639823443169560726094043676130501844907355812196275856676392383081209032532457768867268360073683356397256482467139498702839549229154643036479100544523679016077624469308947354646713675464138346220234698593995701657579226450188214150124346591313954693282044522490130255124499393372016678011919741166963625012542335600412645413228098537538798256199474212434056944447958041475851996566237944992425259144931682170118000536666242528289651862423812231501706637457573467025012398473427354718987195382684630905746842057001112683428481961596641096980493675078628533523838721933472293336987669255015771821466948031550408922322502629560343306698654924264545210080258445162485967263245491469814197852352044698900670366531806740171942595445570749560212435442855468252643558307716712585392281816118584972755034203530834479054634520812701035856669702090472182103200855411320872428006794575565749366120146811838435053245016574527018830791693274634893018629657597674500134572230764360683473149546086909504700083910221574890437133736917985510992922911848756373367753034683543473554263138774569310178378941724220025555859200739231502092448020253763590189344153123673347199708441210161656923656497713239390227786336994582990274506212137602185639033099733681512563827089810691251253994115738985799038063426230881888988127080109753232297435373656698764355748016742595755327153078023944539884965395281720076932027593248078242821506253757672267909391600113243135473986125534770594772081689460359043685094199593024495054312974443950667493023955763877246289988682448181431513909243807850808194528161961610150992360477917948604395543614402925879885203728002767521219251947156600074770703804574840264813033245002741716628244021987578698922303885915928316753664904174912211437119791170369621041917071123094453515869617716251385764345774290339820722968507377218342958786911071491613484647901137450957711911635427353190394704608240783908127259359329252677817785090889486642382081063757669832897460468884852237694345025634573238595258172741387185016252639507339134647812512713333176454785614551566060415290560508704596050302338354464229978388791985878932424863131711415013361761563678615353437735250980372088559887310721185714888297864854801934667787971662009948270571763225554949986203993436064268930846832105344195572762424310562440422370746164983519824524442111573253651115684960904665850170683536902896000454201332028383197383586794702494712392339392312392792600188166143422345816146462202954469855454226565966147210908456676828090821111759709363845994912122200653555611182370481576042412449891662878569367714141067407330816444901911962077872416078142009951105061921886705001160950891755964502588002407208236195739908188701964560468053006313803196192748073478595776196843509388624297617337649063155317542393274442083121599359504307023147514676203407520514549158825417467607136981921338734191908778235549296948438084530059895702335923115379512428214397900683735323908966299511617306302114658967301065146356042102673208154810685198884613048071058731912815788855239474464163092047249879303412034928435649758563493872079658683156400968318663255621864811793271590298732506768912043228877740494989935305793894629116141557213045632197875430699154572037228315174064616844205923963278660609927201442177582606052763265060501518265763282807732390832605451123672375789947534194927095317073423385119467623603769616194116965079514650087758939335811917346063969817564452652731555894257804613371379845724214233524176012284336554870667091120639293081701699727802675315594512008726795794556768152961445429413710508848767392620800665676058143563142941064894788086887297279522267400668302947179778606744353507252124447258787986047679324086801019579929869771438855656037688565898612491890658235332331953839688678998610903698523308524031819296219298392118581035135070401899017289083695017525372724584874039651507065618392581060003386832013059285148179900464723827826670158244043061698116684769006472934313398738313386151670686228845759454052120694517463342874316521113137686270543258546858351096355454241463249168429428348588927160958264245244355643004536167949802222180858367220385598423928147576435850105567648532455673757118440197961771161834247782734926749981705360429667754789397491658642572353561116578559286064078684490264219665479070856498149007489432329812662636628247199167841671543031209728487016743173287465648571384917877355490191177216065702584942999820885659232974158877976498355820480084432529965404921949762566580723066055302395928084222327192393643838691566247293092183758051002871647881840229086184424322278242121315542064447238560794158133812286865939059582921887865440501920484866094534162964718188636089813183352021031379374334965682318547866919196721573723333309490270791378485087777195898985920750358577134007589851388973264064893936679402407566573483995113943393812625704817523378036930474961987151954181073061391068530725488837865376990032936118675412884330185791891554091410770997782993901758682784864863678573731919866902626981941855508735360848841230085288342048549861634700807654978641613002281374885035798713798494472557570050059551704112542990463007135362316889699892765758452579774003894189743729372257482539688790924462098633496556448365132683118041055031694509593109028878809323082492056115960535240580348124569686395228305690606290336667833088756639559022288468179645359127860415988767290833394320839482855380904037510988865764860525567928197405371959829228462932787105394556129590825838893766130478551586309356497559711619493672196845384194440834631581795478033692479528450755316581190191619207497744051217228029805902017148706668182411065500898186240516862296564662048580071920616747944308675422083030629024341692084997769999425542367820130353035953699515249215484270220742166544072959441076751767026884514464097026441780702871680590111338561037868925950967282274955013860907289993068234218741462103908638748021150135821440127339204528476547585604782907602159951196722428339416858858807400784042221984607442844318905514813458548981895663949968034050616162516146841462409617232208995052224546611978763576859344230986877308225543384012748167592824980365207207065809408943468921686325560377082282729135922707525288352241899186543782336740465878194809258042021007259686326577300760719445686228159978711923348639176041357925949991425455412934310230259323477027198538841203617327431985480651982979363827704071742022590739669121044274695707697569131595263266374819927578028963830894696819274048820439361825599672486285370434492967559345160078976507058600177484945181847513340065473493298312686333822842432275701540638892452976072823337120860642225690824914321520965636280537727905951339535397752413399247293043275169296342115991990422161372655568287859519718373635691630817878155244569941223742455207832704157024485425151948212220337169786483576427234833544473190769335818550800316966087308166322809685060497362659517803608084011767292261889770621924474946861085058378026167227485298981555451255039829635711234174337262900937404060745928340023597935654211358330367073697759423813261504158802257308985600223316886710867188247287131328329844085791195323878078768847508433686430259582733923252051523327869281703247579805099295955300139722320348961733636211235888031195719834468997940607011185523154081717465213804033121807021693386941240809396198420557404704687140688375884613886920558588249210413588861387929230897169447817844078118054582738237146648205779393061663252588340723242588651733680303631559008500403748104568057976419715819531880215004125788539343508580600531714094471970710117142427865773627629643437809296685523954781412235089480031932512456832984760759425063159153008462043068404284316079048498674216891105235624416612180617123531612382129710554871863300017670381075375536048482076431656866568545843312432640936092255814048246838355788426149411612806811163410598116097803144711404764802522422044981397939256855860047517655690655858778143870077740145198462984895935694906980255068600932389951873394233840813146371208104057781667207947341061367030427281460295355962975367172605202334585144426127073529890741641449229747412578979674484673466141820708320065634937115912202165663552061986249807198364958992870823491012428942855288790355297128815776060461869035974694015983986560552249182693920438375987198966632423477852498580644118667140479436878700609488863547423573753384815549766338745618188446949194585821563914321174158545687049597343789148906316200180529333059542808742027445098932609842970568261601604447876901743140261008098339804708765820019755172593354535944313959072203871200356089467782032505536974266826405234902792335826973542286977737126112996608868243418880950647797880207656921846223328694118891598921406008147468078061553504603261471323910344604674760692858733588316859606817438833523657352983551840628006015099389378747503851778749034605649736353455260922001866152027955348306977971786186263274373281579094297829466643874039525610242482411554118963245977941420410334429878530814646069560561785456631207734010902079275032039584787400110680365139841244766588252370705271054310674094154919720725449434539600295584543968755037147378182643528133776834707949601393382497711247503155412438583261356350439026518318419579031905247929232230539400847895200061072194995529378416453733778866946084314519734494888591195107140717393819642575243901138322797758464288785135855289562287142144977357174381576279245270464005956884010352173185193141638645956428276492471047398910946504951788763852795743381138066161843197005182396090087144431466412601272631838135371890438610106596284560131901350392884737657794266491491086339257182537218222823906470072921317573601001901858977304159534616341774183536437497300769272806156242227825779401344143735322728351035590979562884619130784295907153014751296451857225154965946163459730643577992243925334048748136435913728653210814006661794230385742656107982640840765763983315990854902357038589909775703910668746439849155768843494121026782914017502789685682335479797249811996125170269006065553479313770648798557111502644463717854596121026268817771600190377874944768719602685203688901806020981685419440387440300053734275636642639501610254944969304910386243229762085914895234641882300150953567782378471432705698491027317415474526852182314460497565477408704934862489195086644237709950551590202274582011370510674467365751144178970234862382708215957036034844346786191396972468619139112682989738897576034714101783937719296002874027088553531295908723574668373682306174971482704417316667937402150416270263851216236961163874004238360499654229727623726034900510034027257959369467580197491583895492839973764831312188204012424267273986395667957903512641688106556228764156056867820923240008727978646282911435691302452603080616370649231410742734722314350003336059434459383449472788282869217831292680385080634795259146783378983534834689250806106600479001510983532277612517331816251062902565679991715719479065105030720142391449673163771151504412522098039478714004037312307380618644730974705025161983042616847343605118492044120715216614592478889537058580559805761429948487267840710392914824328809350344273360449501401315532041442304132030760292923145596759443186835590993697560449893648453220757473488198193717225934318302926878839291885729393519085297066608025197758253053344719634318832541753620053595459105638236272048757791660332981546305172293877085046599163253484201659022885428730601562068303408731990779637059648981219494808788630575385233050793501988186125419570076679307479480970502597273200239844681740605169932772400984578279318518291325568653993941403288786933259241586422589223327593865522131878246114747916506452688166963015138032415238450045212492875354692637354992487118355578293546550629784136901770659917204102686034043265399823825509009211208770101174508959129428935399999558468488451762028921532692589348090296213159101779730186489265722403521033245171251113603427796781670614554978903885424294427329815983532468907155241621241014562122451088168823193690839936266261584959995370130360903318151067744027673837504696450231489495944438223206489256001548657848579030148139697227305372740557067387202754791166228227674067796121132802597772852616000308685199721955582651421455299044108560221698905590471769718748647223671175617087533796737155326422839669768692397334127619029547678817125310088500989651759846538300016807132859337117035887563344836000077952351474419907965233372208018544869644369214299676363866733189572992841339984769968403199469587543508860616642085742865277327183566977732382950349535915513302051149992912360195659845503965700134182048655796124642801780413556018000284952286591175646530478007345978636713414095105113235254754898118273077762975291596661190060176954932881774446519348374904610065446648191105281100368331954483642585079126391997699287987808576512150364514345930326513678070427320648395032335690054575909897070381449843989437275321963666021033713609169740647772894212039865256193255858397943369914717217321480734546912869365058425902261646374564189885209474627131625052925786243148634603792302805920885655685740800385671241659064887021455566213261214481068856301760139041630588612614151213393382539738126416155224503943530980048081411417057464820850616569844698826442047602091861037354741137326020502391070620420820965110207667872776796063132924339361900602502096685266492094892657723757023295214005861979056985827694040620105960946779996898871320527436386291752988190620201119422252672977380001796329780214242531492180768870590796565543150652738375839285289166764308876333200170318787324118201179818183942423894032186029427735481264145012401936101194753986949335402707826655818041603563185377149448314524141959734445673258192833023342387162424263468766539877856584323064595747059018891077215058460431309965098067248925143769389317167867678674451383526665662576294207831764250110634981939673211246658936149514888180716682804489124908123004647267154011524977167238259544390795633332134270555330166295892660874284212110402531649502082205475318346337415113149470100239457567474090887964836745438264826024913145395558063551651653117923236853194342399267307309565342308780378085284292783734584887433961620088445237619856526938956246077761857701776510508908042271125957240955268995119415688201724487210551900842109543814871159700960998315924401997880966134895644017891184235096471547541274418123779323319690216492217641937171691522086189365242825443185803902917356537014834772886912289049169982236400460762260121930591808091350481335165790523245344697046010295477838662971915813634650957599293713360818055098137888423226758667813556847779791549301692056312494349108169010407149870101319410594098516965483698780544683233466529166499956668121963999515051049506753295309958085984509058585109649592521016504946924037589093091897503288961035748834375181934437116617587643127063644299262600256229188352378471632493613795693751788090918394496661156420572751596683623523932578564929585501292320762180915975526073115125823836547230419669520853780321229213091717290025675796582978024561128600780853032323083817225919255510053949784260638529085780074965889281800928023077328604971776585830002989202646390798297436610077359957072220308663988206399682369236704826415237597366943797226710163995487029971836185204367174749715172818853908989264353111135521126824022439266989872457523705537916492105477157721483376869662021054899029300402010700208390204809178963260882374756294845915200347062101522957145551183939206065181977848269369997418810166733227476885142435985033316774609922349429309957197543199436576444434238155260839924521367506012598446341063370227143622571227524028157772229246198525598324622887783590606375623993505212815936514431467852999578146784817254129127978966773131275433848771574558656055080014608116339814539782963048516902217654024155879267582444612659542146224632069963907888853083340172750712249947838204923993609930936122114748262812267253861850478221522932365616569343752748080308574389446301291419705800395603303758597741399860865355128465275014289701483496343972137116724989428698360321779417941848356563833617700709587761726308403217047860447764947894802794120598985350438041003721027029635102050729186182316575921919485033723567177648160674795846022134629163769547816486203326595311398416507755050949266426152740950848129083562379018250658147154615311806943262194249016197681610923113419088553952763544009744234584579786796825637560450958819846524312231470806791186312838931022965926772218098600304590042683829447086626009257247472220883216498335568741722205788523606319272916502317694387860564710338479891114230867690465201744284446925581139814692634561399363294180395939333496435837208689629546631164700462929945487566603718028788496399092744955550465500606640037544088654949541160650469207307260419975766097492343308968981478696998075069359498909348980732435735153544790294352733946089234051021234089704068970898540018825770763427040758871579855625477947540178668312306937624250736544916212362733195234312675708701275427802530608522957500697226934656923915400597205718898012537554460068927451957589005851819409809156819120969392589041646278516330673026162244327156235144002397706176820607699214158476609090837441265779501398486291712722489739477233963425775588940770856974746191727767832499738997105437527015990514697885691565587738343535363750058491409220948571213063900847214728434351098249242997997942317537197254778182619776510354300587444717618241997388285090407607464331013492758913908911247780634349154122384612485850872732807738171368302617092267685609993279734921450560996326313481839999886005551514295087420970861390913834281169939484505342690316247103278259285255775893267440638485543557742927707591202716251638255454410386375988630664485301515934036195110646305620779668596015875068373309734471194486798398341865670001430257979769911062556644183728289517907127840166683680526032813046225762231673100281500793327556576137743679051110975227588159578130497876311156665827044378100879885543882271678636917360151813288513207124298900869056873761261440872362415421217789470396403420862339554627750352718385128577402093447093415811205675857118190203071469564577572730839985732615361401028496381475203925291916226052429521070334542305371227431194406353453851410678566106090334680616622110579923255783345072093461046576685979719406951217213950032718664053647892596746567842028439844166686308120139406879162821143535231117632157957647956581312308473457487227459505671116848587704750370231622382106142608386308969766869259069665262973087173282394116344212535842722794000608232522226777525809090508895265084736019696230053176595160902161381409496152844105877538456017983085618784558477832514244024197269194957957678075778078276232872512500872039426002421405366591892505406338948132456538118312448075312485107910548961079865873874931826261992911686877534681017933282269634335302971513388702425087275162002286612004645889304542954568997007498609901981073511682782603569164843491898882353086285232398520942008391955163762069990584651070039479225950197123494474537077661016088297617633771463540991224467942850329837768324685009733716599992685304206779153161741438053701227347640295807437205780039952641178337530351790283701449259472455188983767582403458278450298423327894254086833341245437456292809070080323056101147933812124446970891355807429237763803052630776278757477140297249920500511110387690240176443758595793423408798829164027790975392262776324095787484305347195449565429148943907695141316036398909451373049734133128944920405816368951532009177196026842521755241067710397371791293018751547162537062609703868188131104007500593272890094389465556700983840565467300418108697509874778592524885312029825018423274506017674899090108853120866375826308050203292341268154735902020492945048038756591005201166043581815519457989153156809411379228457562804714381748345378031349122371645615025765401215560599310508127048841461212083779770140559321163780947527669019275198831733057042665215786258429716609850873157296761414250229380297574317182163409663544626143822884035833204833734037314666785894145116101705362748527177629202212038641204220413478284742421682392278108063072317124072783502804266702776753202096938620886083849482470614327370810994938143074523480982109764955060703450302148432176115101762751832191681644771662459842643093765763879659159392335324619201293176927196137506900935457771935324006007394745772939954035281354380623484751698585582361518604185992189108293268114063481368053793645015339304997436144639927881164772614953583404818873635098909316012951359145310453115386182868365314870973331773313748929232120605508319924804138641272678433856480577623643083466927370920807445828631083560754115935039289130255372718245759974463561401517919728026537525241659270274182117229388712200082092620664514809387522577017004184982264900129100293302514439128821836503171618339850289005112958780274754740399475354905483263545497401775652208406117945026342743849389504749458590667213055180960420897285490793646941801468063075116988284616572238736148045928203085438035900397598478126988497140878934918048188685236089817843121068152941904396829218116064530908533100604670380178312794458450469070696817667763724920814328648280151316988815443942863965625585674295388383270910767377706994733184534517778387136959598134506179455889867464273751102910457078509460152323728458893563726285981111574425271041826954111985964175057576635058294590190936310538758013587806582969675592349371184754989823705244509708148697016850125086873698511578759650096915478222813459658645937308792943908826134216808648802301579183460577685036153154273201017828360575088273463402337617949188702723537537976027889140422343787096539513329715275199272311121935195872614378852364024363363732717556451450675013672301781383617580866121755177220379932100139222620275508821148468744054054531351824931170996925281462298918984276512282617178614222767902554728231876823685114982312696772213959709443320768553346584502625660452582972356669246866556146108643519901155444703298290944827571042972792628588428051180712319801572108603408534512529890456372849579571269613336880764330852570591098527627957047347070233318560641133264421182419128063716387458858434338876144565050019029826879878560889897786261408888315387038723733032417164258209018639737609788043928319798618226234484668189900145068187463954296225252487276646573152604998168861934927430117344769292697411797159362863288276431310091453742949303719276765915223244838777517176401751772305318016569373427417796043099714390836843096628438303096475575613190464565282612302179740882734869556945204525645055646908448565088665826884737784164807185020594901485788255855226019574579123207866242875455062769990375215264334278941846788623175658716949466625514426759306088496906944249102537203576830318422286426738810902315773258602160405453664410358944260405114312798823781276375451228015117514736927289493103765893499967481149488218453162597418779422379663021213885483174400284432716182369160600066655407446350373266897873805135685263041827245641542077767548582317579064514235544854120823162494540911952280192678579276902481469955739227497942930580029237651251990463329382322973779826583706959939124967711985371666918955890867641642498059442038769977421231290258523619272451565418552534430037597652907967486234365853563387873921796030231954896329672950700961957151098188414034439916389268275031820703180638078369797100314683379522916335604751562587820910812169332891234135846962882213870915779314888850532382305278940571105873532115745687149655695685620127073259688590541207508545022254108110080520033662594049536022023049240493171569042064025063564147823488436861770651702871000914665055884275273968423363093487841173007576878402233193705052836178291855745731436222947725952492677322055669105306606446209287726466324125081834650039915268849352069966174809689027243575405059652705668627137825426851332337388198927809389939339018526381686285656476982772917207951632651351209565139937694166302471576434020751056625048336350171203153357697272733057066054768941964526891035001298335955440598098206737810258869443318823167050164309380302412198919884637760619127200001507744983607215281985283102813795309394254259180902105594641364414430962402449985905337466672417509166861698820955061182734738255051976050356175683615252841236593804995355288531713148218369328141245018523691363558493532049451660285645815216279653382856804569928156588056001922926795435515603243634820409718316393587614746934028597558011023143741831045190010119466028052787003207067920559570359101304270050481939191176257471851788067407600186874012370790332479721604332142806066172998563223384697056812127951652681994854383905359798401291601423414673760871249890340877318836274322895572333455784850770916042468569316920026943922516644857553104794882513393064364092577426333369638597739513049622678460829423537762381330788136062680773909321781023401391292689207943839137091735556362077530606957246093905002456817205291983307942759227393198803394562346830978495944202955007406839233854350333168171883720387034343478288977473724739528160235599640683926981507644225223571442617491691967922330078294832426940832399741713634146225785902554728653125019748646031037733559737249000192970854039976922248833417071575050872044071210395518624748720412875670111782048734062983622934872851167340891644334389991679489495988350930284569367459621781973522067856171900092148263723092223405512038018626455864335751630467396987319996698860784826914940703663378263840007009902342172767678066337610895271750414463085953090249862938301543395909260625259851482991578230185019139624923062879339031393710664838959419285808511672795681872143420067943021427978716178741271912025201994675487270115759485363319671385074884159212089104962439543122717845585149127175137900494683131941748233191421263933295052759961121616495460790451146539461486689041352814276716453479845627199867082077429649475781509683171836986759481650371676684367414100956645342412631567113967416265859441184145024394562285407017035472798548058683948825408905271909782697221783163902348072620197177745767186506981090977413720509992342858878346598665240130188554900716971924327339650745308545253137168708896574351742716698986873813390765467166860408268087996654302764481547777924407881892925975987489451595090110469514249076884663729450820713795504528080169786236805379115442757976331051844474946444917716783951661322400774088524462648167816264660090455199725296640131714770044856066693442463901114642633738546208894708963343534436378579966653030121265148456277892340467762868061474564034161693990098309644794567423868633750922220787220914841754423835182181362493088828143432018479112492777954968815744335833327254730753024825555784245028182449862365354616217067142626067194363910678226186091366043068196242413768035984835816155219942742643787437837648178086407676083822951021529220603345542255182409674529044472119156055714498352704279360869883069884280526490751846382747674523980861737359999277688724097950383056687524283837948836019163079802241404534637661814837195243123478830015358885640104459443090610928388953618292237198918467125583143180324810298088003951961765182597746714751808635585416814957523166963010570962327725843647225229015258009696180735011427355924748118108995848269008266052388313028557095631637265407235292512236756505989063377732715705105260482319484614281983501207064405407713980560100085019621397009033136332886682387230211945234488699926491921935986472390335960456557135394490463499641931575184320251143790107556204964381256766412230037256189363402070691505414712148667997465578857554355525764381800280844990739671848538151017964169824770715344975015050416298171419894313110111258379773958698064230071280317306742760752395237608457168073482221044066393811790113714310285731692463539131763288510278377978424137369942011549068300445567957491074776865988823525532071244616929830643601096153094096972080029538677345834910113591642515174530245405944066929670961598354447717903537765146556426645251536583602805890216810123894411260066751052577364623986919248682027271839942082353998118971026959836165445842745317318709123652498862892227156794989387045737491754481698862170580795844778185448887967528093126243712716081169027215300941315731281571296763247399663752219320929511889066990727993443692725152368914301564977298813683629918839226702728115263043736864197526456079523474846454827463272763737312613919452043372041709483788832452241998732688875325916663623882949206414054115096669884044695761208141418878951060143294853107543850132608894413642372850576537466843866117704308794784175745100043921090269872591388858376977378600367610613814971363019234515326214670362499453843087498888516546168707849188240049112667864300954638455311874397630365023158415695270846995658173675233898087701992601706336633637345888703714350370430114510081680766902368633937177782835834542890975371674821594658771997668728207737370124116833195976548099451844088205261386891232741786136235925302183702687885637822673514934857088889386997587989018281599855710951520032482943547421365260771153639241355090687892659666838275776624891521470805830734631924700056700081736250148863016728217945671439498947945291469621485501332980819932930143174604607869553212818320380872290411630815266440808652761636149480357577990433390215120134639060802772760140590271039293625272065293740940293189284273917362225077209632129327428624794842332726084167643456838009053878927401681642899598940785285555341791944172722651997098741921075091830113156676521540033198835816274214054909768882376137744203006337180430646355890862783338981147869439610193446068422077716361280069323570903420374199482394754466722250778221428110100224952572488596470109686629187713287547913294521367217675684741100396107960453847362242431974941098054481880063168539218284578635791508429356327784988804550447993108429821955106828086055553737059969081136280800185920542907565718645735638326844263340016417530265210225619766964832786168244556398786491151031479346277758566429523229782011038954258571928301002184396950518028245088162709436627795930936997055342874492939605753346815176574920917352974066988360856334597349032125378973817143497081270087129723706422156651935658328052877052867637621062034141246821808032133998249713741942239638932200416175616646868370648607257625155894251274295096756532011258745631960033052981329902392842738702570910711268417540480457222258212520551933265896037319827868838037236875578044853508778735398661334235783206434307155618229229060497054267813266668418360084937122337873323688496456333665847867220683331051137300965854275284491672723496285432671962542852521812943246562984915897223681499522938084381738478749023988437563534056270943335733894286285360675525614543080345323233336667497786784796696125468920394294942517619605194202928550149157180158540881228351750675048398461419354670082176424976963721516965724921607616847982119918860744261701873036127358947912142587768407232372380107560314188331228103260722067299820437380527728376268036765567661154511927705995274000267889726379153624139925981821592899253968982524882792752108378035543740002238129392671466145105120311372232974238551416011892290792503489458053340726852587101251485335983938470959363710072787051183766421641881981209072730766399687797056101286938443442375457531547205326621799627437432249937972557604630511321732013558417803174339664654759315052525353903266860778221876270803273714236344862712585587976017893940587791224786667993700038719237180402505791139420749572674273419544694056156789227363503306651128671012298735236343862405001078226577593424914884213704172167803458963026812427245708953233445810624809162275383414721363418203209354570509713593810448386667348448461803512495234926134643202088467331815900047474470981987095049063838858804089546450765011966401036875126643670069648445820930300573839920369296125012182082667791731904138065088732058666124695612383202998386288896441613164685912535988120511135476097208667149419226251963981502953033200241004506435064406131073198086344414895735202099985609966942928727309959851993375252215436103235714378109860914932596358603402370120230327462965595241353122636996616723960218562950804364748035579748827205268096033347491905108703427230526419055927474351507368405661070735821865116589836825324807429201611134815784520566344212969546483444767690152405074737553720459494214747417124237472063925403839803550132274724525843895107841850521692214031849538963426258681619827131984995969267861985348349267506012168318969358894745066696485308421031740613177516434415784999536838599559241355024706557386138498443355984515145462070790515618431170222010579463298775739170489562591124937131809802140055601536010313414677368351342554220457423937080831673521473897485467859166072540091778794527989765780094304948263245323586752542749689000150450075541745898787052523654831449054096201867457753934007452718391053658269163117097184430140853544511298255251814411553769659102837064114976472194172082726044075638870928515193527028235655999351373928787664439778958704678303211780290676677714584047861142581288933554141008465410564927967529056347423124585544494515211034454035153377405317372052048814032992950048762795306694977624384141970115635650648455219962744733147508356775125165539058086951495359162876016540407845946545102893314452069419680147970752144795957905947577590571437498520082236153045165843893557123010988950484507777042529013235578814953782840491639020827393846007711289893767766169309104820357656837094923371229679780368213147554716009320989388647431609597101378030397542047479662191774360910886528255273357715494664279728626726367644711514802202935452036729328342030104342995380189008298405802076485734533885826082160201872930277325369582562824274382101997498009406663075489859019457646686884127740789323068885126293048552006860451392705441041126304922377033871102484094168512279419174881778086458019801680963304455878123353450661468549695434892785951663426697304185586711909401431760030593783161736194070330996193431749639385345996610127752058517909001029647719072465581128441124763039166745258442148307219996192574190025684065794175372984625414324255466880110523991212450936099483871539321899678157714224317011409129265578572085737557560897553260651964343057971304567675739873591959431741076302502812185232625066890862836785753914833508147125514956087037487956353592381908239221670179828011161935343382454514397176830566773469894358500457634246692210336148060883252884224959096304553211074268305783148782425057913178125630749126332044953422684574685918918847961881028515845635612781651270322773195189477242435381063714180860721255495109973202722836385833784398666979628776806652580009589862447604701254841194554772695329876620395456352865046176480820156734374052551862180805051269879707272799319854617226650763010259457931476885531970987272923342102568794464318291730817413714357020306113963816022531378914215106885312740237955181457414421850205989564165079491905913518514156044268945399044036285606904649155315293164384672823462007653105605557833994767900639952062933480945454680982384889741470827607871271162250181854371813329535028169456939029723579437733093597359693730976199205904288110367249776395343392286605985591863263641176636349803002093699856782462320773883212162410292962904300003339427893973116829408654039830584680072554446170092006506104512395562485848553818842840159262692250933006837896177272270851175234193860791192904674811970240541482586393414546818714943227949527435438765350172298516496338330579369953396394995879452532031176175616555179060950426375220660193914098283479178195377620606561695541418490896764407978446921533127929374850408860439797850928895665500164751360003666114428530738078736570372563565555644217749361756851770176836579839646622732829637984227336758475920845118325113685551700975842087110267152459092202133654339784682610507129810726675912425769247635058810458300549545206980016072635252193149594648550459999647949744608801993552849671579269239464727253984558955887410922580223642683089521920743223817129426555734410606297061048833922520008176536330967547888346767618401456278018855108389584519507263804146356688236950448672767950621374109640972536872516958436287287753145220323694076212321656778127624449888235355872664206429047129839379336439944712942802585367999209556870727470420590983346915796250954192476905305629944795759511603204748998946533857508779918168335161664520741508036637768516797735905708340530691562675178066393392113459568639619480759851829537996573813463367946028021129115791549569895589154215562477072409382908488212220296875514237624289534629970524102443455753801916147070370928469940756486260811669671251015805319568409292193291575876727063524746301020219143128458629352317089471739066430857431940008025639927277117092836272484547677684285057253637644107875296720382360573187548269397846523007937714807677871929333040917304335413020173356741272781416844197908744898672766690659056987655132276982575378372761585012964529231813845669068961006121703105146922111362813840429656925599888157012242396878604965636497920887604459195897370473169283058625791059273600581003689418272695104026390221844048743661867722722877362381182412598228041537031571850353115473535198387110931866883209756537272479908201683101470695415225011200109667142923575382341199947825876476033279197560994414650808648029613250921301226273129261599212899909458748483078593417471580243525986715540325746594219559215198552906607429227668633200234227083214249086664429299814818887417737088827221467909202599835481300092975274188908098195537099025139155156441860215662919404152212831017830314843796723343756165825806896226022560913208692246525523678072726074963566178752741898503860231637393041388324273707293645844869411200892086706687080111688142026638550048417937086448319425372589620601185095257841361258909582577141300205925398748765565983186043468691137601016011967496199205530281019346435988501982787494488248465454544656423865154729433544940665441733119710844863570100828533519060788283181313335181053964894116447194027847310125166684688274025785229111215473955464591621752238742801910124022319853293521633293787716876871460419784475175606533389514127197269817643161021945201584182402919282280694260689142362978905936367515518914575004310953454090975295957711375600401673432296578224045192241297871498576706785684864637937298447875249095474572748755564950223406240024431449803901369927115572449124026549266498681651306489627686304532087000095058245030080036159313025783144885439431510064617241181405928895075044357496224407998285776862767770078499570107219814191786513852839168172353111762113241073842992639277099475092381021139563256237928920899180220883136610311260801325190876754453626536338980173176684963042441951389278799089590162973439947148155724032985831148537185766200742012752648974299745601638667951814243025926427983376327374430810624973626791071104079724173757707978535857166159790661992195555147218349009812474569695611725617644227523523767641787780546917110366678497978943264975184198909730939762433733635706644191485226711862739575004519854329634677833573151687834410684897833198879954324374403371640986873428995778355865472564622291880493197657679855253022865721457783793379845427858275684862405626563348267678555847326353057297310540127331363558123267640973257575628628396198896322308390926676348364026115717541531009890618414089496400682403926112644004912962953346770167445622433871457065194697698759607116128305424991595673360537838864645021408976367673488368864777767686903557491572513059147385354871396696205658346868661433927354322666473673430829927720273152554378997203455345519630171515814604999479869846387896298969875290494145192605331621110810164599159272071873760144476833069695478553301302259581438308184222598311483188809709696378976018523074545658682392128049981518719649289453400630858257937161439037073636529100125600387203771431731236994169459841435298290277974621405228737267024629930544320075842667701483804084514088141193700807538544076605004886532354318300668039041338520388721576039819965180570658711021696937286024003477634705396271084173672200170896265675150187211194209550741462753051605254649200945079545650318328079311028648997900564948795969549516531031007793097956574056212935384828160305030360224710033552630941473661213917171422746009461131303957426012366483487122615794995626360656554984471128122827968168928359480313535162648541134336537905017574821334151713618851597007926799087347243184889927610385482074249140861128485527847348956594460925721545924597702710108853426632122951385734677303159354117124516788042790437290702891636889371072907651046864975232728870714935658868684233916880576846912738470993549578426050209782163137445767600211179619048305543338242519391915427598326663611639155874077847917052491714715028484829565820128203571104088940213423184696020760370791276099474180684732895778559969623307150847346903311046252922627689747861896295702553862706267307634789933288089897240526430121808249496263124070966039508976121222363557651381050888158663716836048129372019008607232867232840817064878341577012984581716387196593634554573927813033646634599185410500586459470152551027978101505872100854940106546092985031853182620274250556413974694924679631081128031484855632373613148461556378885467838895029564018400367826124127054117264738141984790576125434644306596095870396737315045561188597659497912572346709123454970035982351435488896503373983518554667418809145498081940052170915386906998488087280758938356487615536737828921728475856071067335817869402427237822106130393940508978254192811741835724369532255136548496603851388659530687055684164294057957884950720320380113668777933143084421148257309781076008806653378468259216362001683901969321605594099187017764492372039932183290767961395363171110170266141302191696320760188905052958348667883688033654764452412449045104105971070657641720201022154534623402815007349577626275935007226372807954376782930638188796213769673659839643584799678680257567765475944126068814855282517281388047547127511808588520661095322301074998820989498611223404721205381630089664430656235380073314351882802560966957957747509486043959812289689752275075943583981461644116382319360272657012717468695775097208025451403246549856793049770011627538877856893032395601905092209521302683679051515891835992561097408907212934579650970682398275795373864648248599980704266959115531193007313274547786777957362941044056329717978241596592662960948985947037963138953400679667097449180104856841519660077308239678334478276074917839621314777095895074787659189361985089713150835733712782721146073027765337594254721124765553575706243262009002698388204290443947665688435659074859209318804275804277076793602070212419252180734023497184777550792064062122392008392685831080632344859822300325355257680469297735167029619887377740652258878553283240562779490536880885437722505299479147769177597829440081031655768990881253782843794942290573992691282247172925336146942879498242289943048154852164836097663316515304572748772726384895156810909082839608411267835252576459654592396013808355343085939209183133831209767939217863193980998778322486457087439294256267847798289886949447079125076899194191159457220233384965840062103144387461438898226504413491529802586971230199907281257493179062854297278698542605407126097217934952212129457561734129855255831080767818738093566208610130207221893374489777515902338649357914000149139939027718731761492097533772609469715358506404993098407370261725028690568498128254019895827127844158793984446861489204482364614126465237786261882251514613457637741708772863046571633091986532539394852152329283727940648864950061201188571832967141649507538720788289311102107004951646793986676319187070107767668566591707533550524402206079489350964334962282761418486249799025137571184403629362160805844489492421362205632538804694683030312040683535140521193176313636758473063475224678237739205454451133352684898499343635662149875489616624427028657897371852770975719159370333088326363395953640260668207691892662344311959400789377871428956038631821255737346305312254315645263094244495233194256162023948864477497533024315795379545730262916599936456972157600736714362666362625595752867874529866783096506122450305526186791845250988001278942920072381601593689676661293870464596450757951197231228563726799219177755409507499485219305129191665374335012990839543805502523378487408232379251153269055664308215547497588701079381831602662232762549494880125602462623425797022277678451029262143494579505489200492688236583950022137029255335430386693298487404336656818067292551614226704269151843433338347441451102906169613254289130569389435312917591140607742600941954658954156444725909006971530522520889442926918866327514391976468116832808535991167576703689957485552026425770278786333676464571145909790773427460657907868262989419533461161320591322071046760957233354631091344601060651076963356692141170574428018761585363720972178768401913588401093799788184070545472328378022815164090137412213741746799996406401175758764829972359991992542325061656943031469948578310285662809593623234474420713908449822616134895714112026185412137233179961376706463478370569256579148484208518282621700825914051842067357682605622072772355194439773088169657003884847409313211590391200957769373587675572250155979844499349178956627448485972069251371636115915841807397181465396636937274257077804734130231266361337427315163251065719228283206493408113669694212888185815426827576272186165802917761964342716508866225686751008274176420183198617231486002940084649349556327546372102979278677021500553390544228441711175546057083791816151026062884458037377680868613163968393815621551392859082461333883742998580529916518795801600194306204658520397482555737504668144739832790861393382801605389010918925652501300734537721120744506698471254987675426865732194146041087602539358345856256944938205657418643344509975057304247564971391188992234549864706548110184765980657079405246855813993078849312668997099633999094327347473025343618612473828377523394785151181981587141579788466994541651266109425327824128835668768680902503062721324075075134024228729588305391943234248083625256741444970449891816216364743178564832609509822610741972816117815519290626133153162577635725896115004055591462641802511224853711073544897005387847085633598909412575987524570664551953073551273341691477246056145493876737428753053301502858184031127956820433649425032655992157090287247867663596325301183863812451764942443086137425881142249537171051108211910297256041502369144865503138966539004164488212363291124153565418383703230825391776105955961044604578608195864776213081666553698547686764653828119684560123157220118039814889123681568035229954066991071957815943411416886014425976553974830320462788561648780048355917458282438602251944930904735737398777687922683625017412283332862838692839443928329294340380091802329953826819212683153200063457593354209103455502127651136613213701676366235066742628847293632338320793737132228783481616452391269432637162942023036579824663778703084744522233775026860586201794912863573167805824977684665034276919300403279166226531587405082409950154723818189939663782073174322745176111107466149551146768029743937013958747877511058480068580307168176313355623150031582781709013458988194684184238510217856727175358957407652880656100645129446765629618744214678554802358715300603644160058501376728277368795140296318237242400662803610295887017236769865073770976386215319443975749978631707394926957720830269634423756668366145186965152602534163587450055866258777807880545785535739086125772942646165496374891247013243498904194756432270299522802335716309838692200170264963588947548015028893967953571694233242893325165209705190204781607757816113923271299461180977543983201455805146068097808731804687819950450747267711024229754132121753691580450117768441685859424520887805754181541488085245049286902699394442652413169872623063363496445251067944931007069806009252714299432970710925400570846880113118606798440562451253791265031397891064079511313925548138893972348614316858530186567729191764738747181708511394887356006964446324918359035519157543708422479578162076604911176380465042310787122209642542853128908720217359902682844125224627658634415480553928273098464709366371661722553282698067934548379678364405516796176330701151343726553230528300423038700614914291681227031907599828840348275227123210324892850985363379889545411252244324411641649583742989407991331184058528407666170963388694065197759620826608538638427308761051624140449867642562601389989857566308674782713560897014009557032497379893902513855356329558840475512617726321639518653281971178022601870863302002042726477129218185960715833006444101225849346046180027371917732453088337603510335729224241967874619376026558764304003967899073237693596182530647375532856403847024147251011546851845873623876840533339588305706022554528449900983303606496530072015772465602900412451521465102294679150725986066306739668163394707906024990464621683162252392642727344475397215373249890223731031828525014994065722808732237489506023298660639652832161069431803869074502380259325508510457456343949284580641826935262890108885702445147900447876739754834453544652191469247581174488146238726856399360698470839649604840397164423216472579055645460919811687783408514465372843700780741667404580034730707626866779936669132605101216589589769065853472828335979671823448965200544215011080254112960050038524096131722727177406881985656759591615263640341233992090259382923358849889227543240861564263935254735462842035240776083220487418903261449126453310972411085632014398445435997682654694975046572143890144257226540239530465209936104027757134619580860651585976263716580649914039586213493872129287449335754893152962605646961255222284119714602534642968026143684477260507793265386303043094870589521394415136645897743044309231939545948955903286858365410998777487778556760976300602801093448127231921545321085847673515892778356174576557983891867710692340221530549528097534756017037761432792475182950025959788355108826258968161755746717352564705267617718103972302404813719481954832635071773856628088880940221015824584728904369695125874378770955866276753040523275577937127990779671434893053454173011349214667694607454414616642453272002271737478446940629043925630724345998236253809183688877458149243728863453433727194658863045536906153637798813589127954082689928897820434183399743079020397485492631883421303256527734353504075766620372903608906667345884619494705557640630611553551898650555888555978890901667338310421110211698657602928959805841999226497858224191011774266980196897510307204389562393429792002538476027071463869756144736944457359068517785397570128135476829222910661072064507919425028753550677914231348939790133596354645163378164223963440369550063979883165154116517934359009936209882135423192789646674292120363585664449155487670415362051503091124244775129634254300743320208238871449292229147108206299941618428649538441566378853784570861391650692382504823918766654804067539159113917865471593291128690321171686271159115042773347043017154438214641549587280380550142679829975418622731782183867002806591375197056304481876112439622480634145985384079965035711001056470765261322207364958519199200871875591330204589189694017610209443830800057597126911321206892775875905503717840879130038305819570916455894453329455945156668436864337356099765281597997962121547894735317803951934626738605448502014317497182737048469447252451200288306811401835598840963719280462023037542961259495749418958657880485503456415328930074716358265169843213345574967262330640249630477021354808499938868808599505441213450657127511200851038183627626880554429747677853929884432348901828630044431528269172812125120422631560513825130456850713980076496985431962083954970140000084924983115596029488473182637588443921861326880585308712320746773718477139349436897191239209848123437706815384556020011447010004028764855637347222235908908014341621450034838317590410252221635356429308003297531364275102239060163357747583005609171494571269236153679673741044140599968278434112036168021775130814962052775805695480054980154450080213432173539053238060845988408036706505541489916033972314068691126387962477001790805129594703276397126207022279127887615819112410006084062494955443208785685436641744138264250764475948050474158299905740240121154102351319294115701713914892800905586167230261487793358257510547801389915255593570165375482600022206482107983667158510741465188645715831535983765212802520943546973983170074219125519801093582971644797483455804235724205350289477361736078269433517912735106138861060826573296995550306627996628939841137391765058793815878586071720839110502619631791047040759145986689586682730645066989060479545375768032912309255737265565895227986274327393718958584601968091224048172510298767495933167086846443190763133009784697802340176044869006104396815318990837470274833448161254703088603576067785859002752879996568041195281213148841183561037698278642985519269907096448055876628968335072860216055429311350081378546556727894517999175781633345068080385925530424267485471917295182747731070013629345161557329567244983963628343863962512319186981971006830188590076058525616784908051445150446601812417206003795958167965805473689246789363623535310887816288081810224773256595091806201982144547486636555902542047976652031886624198387371834357687216989183419863211953474953127244257999633680351148131236203852833083008939109429053741478008637151065166765616913137856765312609819538233587953637006731820774286252588980306327518619629510243100978060947737786731331522199221178208056294836656238003958034210316201140748666681420617329484103285407382911642787341909366217368752450239894190351638930196410270875524372299338693746850400047368352030395588081694981582586522199317445535185134482442171718819184934924336261047739777624084132255015317148178074740871087034735505931211594387613755935971790501959678513593063841281171126937988270676517080264553791599746414563058112958071143527613317609231668855885316038983542113294668072290195527629374030044808414944036629373349292986048364503694385083739905437897990612569552113047446614458869708787938494130424299904219818601755318411446844277962428794118003995852498554427694668073807277905207638286371706847499552191860543110837089700455325573987247043450083670298140138102094133776202270498176282998489777709618235584409107594261400944210070364849173760910352463869847828192909247025100208152650715770561512612381545967330318717912598366215968119728392383052266752973090696587030407214502909897851755385981706934142149101499886939966624813105735164645973856142102698712012887449258543750718547651979288637962950406373992057913440864590969018365943916256868616950612423826286297195011248289400403389658975561214400420484013372501928494506705715240682252810010785863833567805497807449136315997076639027866468514236721598349378787140522580100994118247169577717836451731662235388988179767587084272012607059134075827751893169514257248130938111770972175404116748193758871514000988954361359983784323046885904935935143974299103645832165772724285562151160807795038703434470685296872891196023699111942457725036873982890044223998648144863231600093030247381662317812397351167635744336124762912380663422491916901888920936398233404984743495702529790965088681292758648369937093889650192710976981304095863795691265963708657215188856756584210698863204716657750535092494747212277437293203497081299020627269455107917683580296970929740253243254009342335134866627895371366932039742381240528011898347788343567699025783185550613753275116499374329691256925531379972627889961481339393597430510350965180110076754412399276522299295259486324189694074765848966137248949743476700748572482001547431571461257167698884062161619851943353679091146565306494791282470604661652843880844166482859215410735521347489640805420663911483212122142887334538746588648852862945109169201328784044202429768284273089852868370013347326720582049991575686139462416658338535173661286994952266000946664686134930804702568692813750689793332206235665671082598871038256142713312400804344407948376127314725178649577001781167686983950145167720307177348338827408851820442756765867399176319673189149568906827277981329237009228358186992325801773553942558873757009040996479112770710545063745295621145808314148189724089893448420379808218929318119629054900394604337485474626036090229688267230578045154460756497636870660915330060257847700476943682938173219751474652819430176700761594358779509597415600133837975092994080323180951039059712343850717697796054567820903669565153298004291386739449263838394773205100875991562484131418406841532509652490642741629360476129011819609196227421160046402405009531367467237621017971617900333954357482120427297962549131428211108335175060640013688276705131195237946100129209446733566861488008208616660164159896825936930406716840358299100594947414062191429229758291483601676802140990220688294457057286384914734073030427355334492877285194012250602311031002076062498030748875123881827566319969517848208831315104791561115298909369946437379000386198262992354807522739697883417776252505399744515211680017545080480135575884293019190204858267561078505748708946666758826167745156597883515455402838591121634012175196570285514008325927212844733683821917128420546140381083219396352643036025997191334224180625270239267783021080753688007396560102592031956250554467352557244571206461436782622199329756347671850924513377513465581918162415591262473580346935061603896648771070694513824518759466975794395339340888800993297387370110060714153651731189428221966530034332522309802387904672359913671601826989023197647896127456902667303335186712027211284284796520560667685571995590978982214916126297098401824656242302992351202626119866106543671234615204711166088417822494381042855612485412339360960282963870193942579404875505297810947781434658504320777952870337446957803110061532191664670184748504647763841251585929061398208998771257457019094347833072273261438296979987727300656111101769989049480452635358954259822852293156506944691207611282739641459539333204939499421081553055075666933391280946447376693573531772008690600968816216684208764289258975412289674294749700442564676328992301556305937614406799449532153677588594307387206126852461651964460838949523094328166911992433118458512243487964244849928496747101658719946172946814790230782437984639192781296674529785789680498475604784368825773666180604643554404913944009960227293292468573733020360610571018889733754608785438959857322196584130480323045804634604430462492623999466025815621440001078381790747964674130214233799787069389802490037581167680570952222965987571841964395738520142242535334645974478221682129502856837446336128667963762409734604122120002666974943065575906410313708901803433339169888767335098552139019837144545005370337569212629766089672375853113233015948114469426105361141454850798491357579633123496810230039363147438808335986529173979341525142205078146669809096155955293064727815943206582859299108772084865956464714561605952459476350500890966571043861462427677351531845501437582428611133503935025043100098635796970553061457830773690530827038116638769257679750003961156280245224023167968070375634328605049081587934375252751279554682065527533103097758262409758466221140841372101708604536428734776805229493611722011666281609770539478512996961054912891414099760602767430922710709897863345138877409643822961396583275129398583489843944282095479916097837434022065337774655301645229396345832201295349470169724272507648116662296167085197681698971373410300983144702975590626732242455748043951188668134429477230606631535194931604274339471311066658998547750712652544144088061808031615890734807195853905329414696941969410510942952943949348363749529642504573659299477649872949543544146561407018095648998229186414728531457128953820732680579139657622574718714402097897817308922424763504697489859649672355786042880516146224319939667103129087852883061387154466284619702753880875471386444242649601714103597273733681879148951302375093632481686065035235659813829821345264464658929281510535841833564154051297106971123431290167519969925453173225989388102509097433143231358238811879076275208823375205607450708379549979993019620210002585197248553529372188802791932612122092144274387788780133414835333974380346113225528647538353974146966139385696143124595123935171634962508925466484271522847105097688429933236183053220816530811306019074476934452204210391959798838916820052420475704824659414491411497749605999503792658344524317228708342682055731599141876322013497332775539343894156235827010905212709188344546908525508886883158859086085973253018217922617039778877365169339389057751801945833551747245254300070263701776241174352771004126401427468573717050329426349524364238167692249147501819620570185289599045399443251031224430180318495403105136242434241737119756237834415487630441569246144164500610081490216795654625332270715788794041915427753899215707417887040235565664070688465371117475834619200691877841800029079388156760448446278504750430326544325343091133941933742539336524703213902718075135106291132455090029472820981753558851323595357488261003841773942534518438570897717127708292548185194443708118698997968126026155409631426445321884022889790106835385417511855781543618885200766901313187256904395734770135280922815384769269323899543117217566936731869455445634862669526328046716675071339916175437108118671530423805386376863662037620220663858600463592885498724455333590091433783250973649704920190743217459770065827015819553988165723575436938930223658131570911662503075701014304527889310068921265796045775079921863586002173197947389862273517771308895687178949669514036819672602737499286652257914988182630976225696708415426791890812394737856777104309268888082508312361382934768185193090772767289250018334250296483652108135609893508335311433472163445050702525264786926915581267659178373314963152762618115287916128133792091883925682067385607346802541875914911652906924051294073491987726731165686437685198047560094133292615499601942368399176990288962677698152147352352273302393551498822754512737485790241936744617041386441519338474311240590290048434953020032364148550164845781927431552837432127976422094940865560646439195167069080603112747493983152961946592490230798500262956271165554381046538717398403267236654547362984992542649725407699315236113734214198549518536294831348218550970824942422584048418907607254377287963021096202567784201136923255081784247214061694794195981854415787539423134825027855525715158131773102031832204514006439537323678947043865353649239232489322629316328339320638264091470063494169295094191120595372842314283584317619776773152393152468565398458307417442851146748393554184306118130663074514602846806368990814106785062343322232781238325135770806367319562731608037417681345699521181131241145837353257319412309034162186621337812134037577378333289555873916914525133394157482098057655259961422862125309172712137978723624270726415437732089417455294474464877457024629678139593294922409356128842608336552109080817357380644922941383187358379691835252509004408948800997053222698214509549371437239741028726157992719860798385102656053625643880087268131020150275944719739225294361105675594341777391941392896791826273689357793479281494495971213144788673603620548602333895562714884472758429660102896732190625704795685032657724491372391493554162169860336127269193793632691964726348647135040971168194544468885239727439925527906463555530518168862439219179267535455197852835909267198827036596992981930666321341285471036092035054132579706642617714285023188992676239362994282807092742729468978647265797720553698128350881001461155226590843361735463412502555843930220551494244231050232685902233101597791438172287826845599959548787889470628914017260023591523593975506498098740678808675112411237487453780996475494197467213749623917402279262865240192987028423636633982595661993022495824588532614240899133316539976594981473292361999200553301630225358122367725372435925910597037837697884330946736134837022458286052405317628068785966939657416943433912413154786224966259752860625051745392890125610627787894847160391339440895792911375145430914552155892494411039331616408975326173178677950152183568410680271468321256604332948320648713357389361206012474693231211489426573973376289484423507538698551202733712401342134862227816143194230488080169450034034112548174234936694986779798283306609829346349935051383620552832015793079912182271469007681473321297177467704048671876382169509055762796702885122336268347915185815602713125908874983864082802250075572941184197950760179613027140576459302121799168036034705558717947932760691961225367670462070361649601268787927178413701022412206860116432096585035615447112276224484717492287043639149957961449087702680654037024776984523787637636375078009518503774277216547586157955156807207906740127001859866230877315402441840791424035964051160871953913344593287997920109228931176745614172364169551264655127950192789834095647178017480834173653066316220951933003177623478871174964857105548645440966346988566536213901906994682806443318302182350522468260266697592851281805398092925052764054768008009098412724869246079082993402241681359150840655838801443388205244549637258819427260332590158524517436191814730789436664084834080369494403507249045023142130395751552858469705829716840227582926034617444657725216802080004284797256459661355182236825832502602808987281083011809806440042387708123743604582285429618241831868969167897106564505056686420324947054312525388533874862879890321548875415531037474645657284413515029550891573414815640245750478516574020596644032017573364371330131679261299275890588571569266496127089853535138792819183439611340908086232161702382707498821133208528166862403918031294632645211422478953228064460588695563633461718420640014126447725946814664986146428435546030658589271565006027908855608716173608297574286842430178679939650265147789333715317108334089744437699962150270542459958923035962513346769812715404934644137814065366797089505038085253690173733159192901033758130895316267903010945554058072527518756418624707851438579430115378624725852881366302070600734657345299101697643537178098922151221887005523323768812927054268591183409335781312264270327757306379303134277438919795220648648719053273715425338919774138401819284801081117394211927501545521178533702168673641382359615161992882323137807767128802732877767076334042232051242412109728540775278638682473927160133071241437434854315977962085005140007603273780424373122285219301458840760196689086850692194438198977043397786051361670774601170277079915560376213161771886773374881320180726085979717132475315668455664629000977404173962676728672391156900444714657939998542761942054351372397463678998659141823302741373386255641310867343575574712637196345599036959022207390911013446132751004765812063398958666500839682514209323966562579799294817772332558683345801856522589061714274489240015503766959489607711762814707661250237710430922427079761055603741864643215000315456319688565475666261836047301156375162349868331233042887604668374094353874610553128934862038862872171262424523607493748803391151591716485407344927015040098864695118868664578769389691067725989981967870588200622003863281807757792012508762924072503235345664439892472885087729411740025262878861043682040633175570451175471218407523717540734502536424092367117148393793193269654869803726923771988198703136018549694207615583615986426549430391292331478594630639663750759210669622178704592131487889490295614974488224764382680009363471315772972381501597084676977029663526679413189661865823847496922423974457063221763564372815842220105416074554539282188920758531532136748893027148453560619545523857119312997881151985087819738495018017279327170021407848345349238124044150648545522038066740006124929897763673708021838554463070176069531012908772051659604137691964848251833776390262444304538681501169642349310694150125690996337327473968464677293720256692324643944644418901603267837608921361448059674972407069244662383123049944124904550993807979450228832784694529330982147691827029025603397957213363167653936190859551536698595311463081703122605656933182273428060213110614946926565584463861281966978650419425424910946934233764901258348103183923859586727810269670483683724184383107989975845578558717291897890136931103264962546707678699762291134275141169647771340646052209568934955961884659290238106270833448470012032444546085122226956260951554724289420469260681513146375006057751014012700442630003060696954490619713880359235962430606550326319060419208733822667887297801198813310683421371986715380493280688504498217451931884970378239952524285746603522263974013570192927259113891638414817810271549896075266100119565981013293400672427796085406042310097430054671266883893353130155326718720640311658745714821025994041946132733272887359516034210488258927345552692560410445567259690535951417143506126725491238482910776364310488129535944292120248789080599039864867306180950216592120402396525814255573685670405754495291387323832503110201667601838231052376090368896326601228998505432582582511234179098696952542519784809939004523725266690687970247987645670382826424774499693956285902925721496725388038896075600158428538249548026423536673380604048087384714905002051408306328670788696396410020987764327017783188839427550021052143142525217892501577681850255655414430797469563063054667211732284430254008216111897862938307604225334831340915093523200855075332687251451868338254661728963136160097033461499732840077168540467724633419477783933376432466262128072151143273200009170684445951086095113614079023539844410504277974610071412913683055088334613021126995558091381199408372257787716750316168061885187054498167353867632750112762453278415721487335129810121410002857124864087820901909190176333119807233180986235886355116410306686562373689404716265288082071024264867384209068171599615823036018282731566405552258397961805801505953408795482165563733815101940785416471315625329538007949439150412987082273495635835932304954722293290893305814106099573728993863159018663689578185324424113605991584629687926655493691058934104516807825471607984595749320370863493119559780147413646395469274307617604834357757418110810361108464138481334875433028602101979537944007061111913647585532880678417438062322046923393154648260046016199870422469813589058585174941360184171489169499174930888776692401527272617096431050098042285724600820116967478082262398372196109461282565227828106890284284253603198091973703460401514696266411898200425975614097096326383566318489648937590377977359702849174702481718904943047373914817014860973162048895906812714401093386348517980382454514426303330124626648310804833547789990513497417962746249158481745391826311473343974465604110749837069877794436638654144766493745152560898729907719370331770933686473785268666249710191759162757280706657533550790329115390182346557110554617562194443064075173628128937444692230100594734694496340187032055086439066707018981620480370336545034029264971933158745854495916733851025872927609343853972263477373357313947067301302142731799697138234049067343883482987723643679539718125508814855980167555191519231410780101078927013695666716464171048250082531734999726002289933263966979392379313686470693992911102534454429761330667329120056006493955366113732568144703621694097407179911480483633291077111947836432682085033076605948070486168505199098872566895549057694395974754283506193402773074961587412443881452622272065764860879848843879120512649288547371919021916345942718383751373772853200355179214036081331655461114651229910089917316928719617905708829988601339317711997007742582894410654831746675286521086765091866488565905145426337732870255218733016366577151509124355581845222494567177337766496216135987709240149903012490589597923765328057332564593532309100973214246927748424008401014616607754434022887426101642262122631989543909346071913057504743865024704133601123337250987265982669897249125707092327397169318274853668047575795569298911467171394719268842263191004431041035037456147439162394312699970065320218137105927012076050763587941952570231924391109104079446576863002634910701323234853748861348482169534553922886876797533803988962266198162619488760896454746516499130050957095550316368698166741992336815323499352545709197818109895654491249641993080556156283265634829487501295017783259073484268383648064268918239420670733438067238235380919577529520853993527839654342769500998904254990554457883062437481466135806260919200304873201628573257523919596946884708440334306779936439331528179984623935735575598229904181365579859494238005819722715436831070552892455173020761907772361690189646201640468505548040295378747681979917146473448260334500185632958366549241550852115005645719695543721683018441172246738403050673715018457401635904495369461023722958758600516710757109521099790162197683845072515795985983247763215271071802715453131681039842202670551793269868377082613523087921592256951277129488939101273516782347331452698416922422098784459512317983823218169383371886292345505632163510451023480218114314009115935151210776235484398010878407943092697033105355517653865558354743357074594009207933047834748448988336443608213273890591316261636696727927393163928424511327137341067314627880527583520597425443817534431292521951184528513319594792506168050130243758970345549005262135326475697198190509656087810304418807492210716498856800725392237623560836588504833193647575758392401592077916650738071142015486294618442639141408332298080673270583383900070014550724262362936868050110652268512329220442221952749705953608395322114115264774595154437487752814041852594369819749846547844683522867020505310935939431923841155005850862975750220629071063442987012376573141948595550354375012244687911546451306430646186219099154298143132346227782979072827832567311182669408299128016672673565942303946895629247019563328985600194025756203051666824095627132881393565599721115761611866034902777636863819908878456565781370676888556019530789232552394366320678530145521740845129898029648142487912278291103447552574337118760287021689666292840058877143085587002896183183501118760498492835126703001985048550992934675713321279144422741422337122556399381422833603281009184663252189770654855480868283432937048528919868285447989110273977412565132374721436298285799265044740894803662808413605192151807096798677768174439928162891342076439558332745241001376079711409176934314851798270571976341832225992390269188534430998351040714315956675574742855882036841856640637091503899028778517692681503980324122075769131866670258354348806436268971983631577086152053942162849603523998027381218638905197004148250423967718790010332372066862449192832075299013691501288642289609256552722253943427991525707372781499174667752845921252153840057782274436065854946586662536513443475236910741821230783685781888613660266793836724384427892941989447489025032844284393292232448938348423189454376400742301978227583791842174192789995869002264511110910949237092135528672115135055519155864851341613697583816526014013117190936632180246285423393438231671364154827195532138946781440701562118094014318477156332186201263238326513048218418441074283208097767004082833000111994078448233382126768240064836242249060026372729022580320879389150782454696830869840905424562746896146486488413069397784105817206253417949474552130032948540161653567546026553272617255636458477990179303386887040048972101801168024645410882323910307317442002379706654167523153366567273847207196534456783846765098044027603476597576876170297573088493232622126482465133560027071056908082939077816065919887916825708435138609059841278381641285581483791518264878979073756325953690700121277660981936561297774585382615441164959484915083306698079755344245582609509641007963991730420886903236711182127735235444728262323862494309850112574003506251593525874844363759863085991646245141701249803629851064564891747299932801372167647849843605172794980551830968904137753955047339958801251036106851310987567201129467982813242174892983145641910122776539884914910393614798624666951505763606216030377327124694394592989315973985992905863705112875864833685672576120269464987258056240232562371600354780210896204554445144575863147925953522822982981107301822786208927338584286430121480132216169163952204612937006222410883187568027241329628083804015800872747563603782876853097784808094946184791738848641572887297439898442429271138987508367728334396445937696552940285745900454538553790374596944035860285090984014002081493082556709984352582952386984726974983820702972712634896163854066173023527340562607557580558652433886580971816919132585706209515379168108923826952494485672485439074666252637571894120860041832422646464857908061709360052750650086165800137101674327120944724188399039370937316468082817557690646520392025491761860815218952685490150813056462707157702751152013639185445686071834094644891864062451075282557196220649039192227386064499111718276307702718552192110824707681542698980393692603299780365676861387684990250148726894228946787967402993139340046613848653183339473580487170134133268271549532525443510851944775079612588496114090586009260424324886168228186644013934647946039366749531697879384274716644831219861002576870465410205371688127038396051645866258821700311866857621542064318780555887904442298002196558831576779441791409842001857163756827912419906041888972560259806372012466808708344106874124956856994723567420565417454928960248967568159870964042131415670856569808844137707571246659725566945538699386181198712973374856092068202900140368372842914887047975793621302716848301220425811670799479911559937106333829704208368935295667582851511148816588918069008116345097937769108248108291187253025302094128820292699181749534087635921720722596846043870342312594520803256970354489760914080477280614580807282638095609300060801115805252522298259901888382486373631592910386722656016037287029520885404784805104818339758040732699709538829642654583258324801785166148254413019199133400635149328334357839254439309296787205077033751572623425165204468355949538058895596134566167619867500233014699468252871169517267823287175329558475555940213719980866683725137865729965569311796608965352991531926868422456225380513791025543428404506620779217050323112702835580333426647846365165221237233733292132592615012170094355328506946110821175979065775157124014558179036591299224640688540387421042517149611285054440250113674936293036476713849426720991328657056464198266883958794688580194694520755125510976550591997035933657197783359276365445304865382944404735052536890383277097851545473822799103869428980780710313292526258656869411980264998669667459160472097816899265680665251867482407531626400234016572028540275761932088706506231223890082031723878992178826632532999856767690110309314901392039582382248228425975160266905451066805003336459948131673840360338043331996564569356687995152512936982382945536597914120048135606408497269397896513507928973893869669055015485106433330845503149701765544188870794211832654294596319169726176430293937253135293327975960858926847688717406701369201726655548333824479277154805235239472489763869752744260489133559196400662508325290042799712891844738144431377879810769585345227460865028155840945004102339174847366278179527706074491608925216821327622457140284963972809378757424236092324397452003861119977595404856146248727579031983075564141789432659172687423056575121522443009140378819449789953799074219161256781615442317785057269406017356804324374119388055887115340728937670435294433221394694984525574096051319166104188598980764511499997421406368745422234953439937233298407204995856690300209310825240569128597664844351815117271636092314585472691665454826791555473388088231910166255069569817105154578923392949917669600848943618417391935271315883048919435568525976577245859134898484863120240242060056194960104293122160475544023713307911636484653053772700178842496060596626008780173614383426299570489867793748176002817861412785762280414216390593684139214710450626215319040368942404751554028052008480262223036754015483714780029670181982306197968666471097855585405863584194751200764938057346035477718352692424258519628949280866226593541597033509854301267942235741114320620322074628172405980905354545253260599034702975071706836958790838506966474649072379903244409769036744311622185953657179043099612343496910563759416666880446865973481278565576799653288482885582089090781004680651997687839726028996165132935499437895728582006614548462554542252932554374511540830730858772389715830906002989992425013228746882440356701258531536977320964189522891678683065382469190352064003477066647573777400698468250122320544116995979589282087972480649373273465324731113405418214088247903716458519580866852107458611947630401108270339815308655541581395741254889921937626954259356892249268278725017332928490119396775486096567414944974465835651139812275027669287763049462500089195814038228679218510463014972328830871695799267516759244802001306363394771267074997434335736022939905840337984638796903625480468613364815504980511216967768812052190934734417943066516230834982040252081870098247390708495106689321227655914307761126072782638025676495821860313491362483250831696631771533922274583108183687807720187511509395851445130129605639830975242573315858445235575207907978697063506556869609274880555358741622672507679857332442316446124761804097906139600419564838074241541451791125558425881884187689148426884610650683934875684360451286007652869770062850740451932236155241472582253519572672690148770198910992032975695390344750533757959257299214402606831653458507576986229068891141515396824660394495091860377297776941576569802760920362602964908146922852728779951311546179107035275539826723664859032710121856569519481572155613658397237536132739091795100702434810703988504300156460265485069221334143342970768879927277036494650499216443763731624230070877226995386951314498226638225078238148735831106725043849423350954849365498699230608577075259657979392022512991611808960142936137568438894056092174564830907231996666436038699844364058394422577858894013331078297621444691633544052614635980234223225229310134658397589013200355195709718822017011665865615075927360097819866916617473665390398312383608295918427213033965280168355647338333117352489149833891624928790085985285100083221339236707268951383911408211518837771535542057816614835271643323486646991039287470683831988633873641092255469573528131005803494622307109396351178421176336816190724132047920266929505748136764744744469564379242908475953249073062537387481338871004468958834738673706969734048269572575346084739216045203023610958238451342702758882895477790467997041625512942965368673458010762268319461243036520000075849538445590015686357385365540433462569266440574421037393216371751012694188530221358197759882872828277244023120218606981983717048487674385424671638553130416473628384061470671591791628699673943718592881447623828521179887554457471260108422922303756746229310438297050576643277759883438628736779376195923253613499022950513926441075297859022583029854911625583970711504308632199438639023139023804948924526038368103682541156337353691329594293519770975987131392827489063257321402487524588535737970661468056539851708520952830539732445214369618679349827280178741197237679265705332359544191534781666753706335275999789177328036326516239432660656565901607830964683475817431115205538827350641380072364985897702867472639365461791316251754876572013694221025247716350612351363675588926925915882420242432356817654247052748737461779087721694048250213003497569217311985918043255264029234996632725599949064213180345404516219798512861432441378718440227690315614488541012933485339849927962140033088379287787592051758999718129994057602608245533622711876972194389649101360992895955249749938188552513805734793857558103976439615700707368160301841687391494432394654760838371318066821871962329825784022561709532154399888432375360370073256131752322640294465339492628126366501511660073466243200217135449304924436062505736478960931285414351618581335214174615766094602521272405868832302650417328727022906609166736946510339550964591232110604692649796778898761942529119767082664682975500509288736176814491938429302610888458783466552963330543990970758305756615399928937844987733981401446527311502134216310008644918099801976912595342856351514159569031921638981086517339828501528130003110507384338822887702836355487046792392596979139682490074381052429623345890190778141241195167241797716749775704636588128532859787712264390563904700061813670843992100875394626407303992675758655360405876780129390960316456350411432545185355376558210321188270752038863938888450186237564272161240848237877604016218090877810849786882809193695377374080920945827393813616875168018531796524443390399131316335849683651022610688358911635533174266919289570830210231648521305675463232728376585559344761915751162543814113570164863890866729396175066306058458104615578016079000995372453515734356035766243782227247761677073622995914182463853241611635722755513213207904391659029742265828926773003367504258899729168634487580156622523451174109495985986538778206941095440523085242154641871963075784209741203581057761891932333337618615767872247407506515742006014106213826915298023609003128183967342426555001713273563709534554014810208842356023693678720598501693480400428837200942950324387999006893971392548892111326112424128686211446988586205182170049908009839333358898803025573576081633467917289305076070863893105134273269707772847813349645800221226996003130210158322489642430097532997151098914184217071733335325331190694303488464224944323497432973300382290732812059461180568660641172595442753178932794184885706732800517141104673654495442246497159387157415316332355874941587910050012056595011387365010500424463917878990027418974638444329608215781656573018774288722538095001674172786508746373192842490779680189545876930477359683144807826180782088700448817255363824293047273575806610904041086213081702441461139134246214899933665963503596931715398825407827503710685652978592570857080408963611243823465195806077021230685494874351625870912915238416836953721652981346298240807165108171782048225838623396197217647319811185238495968554366856544575748889962389117079767695526724052053790602575955892521440037057263492101339421829970174362888260582690768054088366147985231699694677180701671178983687436639622280499207628148506055445261094657289847377440882521708972667416058215301220796956170985912840643085383152898420282042386178315861080708833598502179576002996931072449221517232344503394544912576614732563514512834411811759510477433256835468317058611009058845623791633784306042415419973918109759624680266633860668267474067886767708018759485429755533476039436238047404677338048793295312703077514281138177718384321417194843832541159160168512544708578149917781726196639998292052022639047489464696453839079634915428590645114131024352243785316347208095148973009565866857436127123626586827111397801687958678234595700058020894845688892464458559442853744080644966302744036740692435523783943952652669087598939895525553772361241627132086452885999866182742549734564975686749036558389569759636862441733345933284206367534792938079306127115740998026258698213612275449683536245408170053872159052904081227026059511686638892318334374942113915405546722823387465993263943935847465697836516522880590372317308044567434454121109079059012809364080148921399837154430786741636551507055971392331354869769618757481960202648269803417572604863294583925522512298991083749457480307900540956686168712073179750607776258604830921958083314125493290427505688876011818143133596035188967638415977200171962687604627265374985235006882596915343184270283673929830389097667173701687350822777411888091145385347352462866023256733184587134135787775038591842722671098345824106600990496922067150934130996759824328817983677155614081203421344721157527249820105555485876437304337178813846685156410596197471872970883545785730196500141642118213877180933573870669156358823785551315979804504513211244700001778665664178321443916076698532822302642993798254417168684522780699256807753505051634516848526828746496915070616353571900944854064612986502031876843657376356847909847275009747360529337081522808761842539647410870683614669987594304271211177394405605821351074711839575007131873695073952492937823047755981486483273095102289549643538173891659531616328332118219152102285144882334861849723293185969072492471824289843837185321347095368146740446076481754205266362892334879369280630487665560570698331276964521265179923676791450306521016592465255903794363277765244828730423506582284033218210631266226992893484341192380543740063750993335238063412516518376582526875996652341964253682685934322080775307785592806484811154524615425525927494617988078957931927338883167731078950027898459203111149166536479292008967126959486025990554945187404369943415679881305742340063162170069536846532387103115896265899248370367815025504205718607290073542820193232691012049724063466282156158630789492400174684519342743872143812564664400002543998662826174161719192336121276416785485629189850966307977315628350182421562136708613793971732708554382137695780344911873762724250266841306989406506321151049521282215798473320164803586167917680857553544138952440705628435922957856459403297039928843239146524700680467644318979426851648583276172671991479916296764574949915310638129676024445525583510208116739589218438707278251516658017055900863770298463556134996630459622145941407876141044819788296484623102666793667863548115132833799806181188848711842285186029254036359224351025714678142184594997842619919329886326763348012620270469750489902684155856941415336828930493474716538857831569969835276609674273582528429596831047419124829873438573577793783534512759358131433110374509841629113555772326376971418992155368985650691247551138036727360554093738626297415638834952119114544524817592260043047069150699372040937209614385019804946952785909890301530256695047575680708317588337020407249221083040574038867314517809328242383603621534430112410721685339224455008216729901376963276378179827549487334156920588522590781041065579257546045857180256922594473849278289674177524077489309065210901599258498515012342052774008879766922574328057747104970013548287174238381226170798034274806093208354593135526598476312731263486161170010096645304238602065783549803068768906254596969685614486659186371823654164817846285130683337579489462090792893432992393736773520980921249745136902775740261828130072996036893595265242739818569808002415713195447404447089200152194572164034317334379761243585355972484439032486650021027426423834266857792778759047176256415115001037272486147565956220406293831440446354728820598843986705664516301172457249402462137136999005508913689899291749143822203001223965878601917070744070035668689560366384261331001019307148911791861893495088744463655482416957296987771804820668406428926245596018303639144875822115209930626489002969606536624539740505847725668497609075868635879162254131481430409241978705021992592948349479575737666646376786716680549013810953812714530415019199350578819519922552541012089253681691586326661080617078186302951931030894995768575397456200217210887979885350012275729814932470656356294987300456944991282036727957904780212922444891876153312501253873773928704361440221678859175228884089587260166488097844065366927275091712000411244248707141987340477967991069360644672813035046514437559699900682473679892333304681251862091057553602579083184527361339063540954048031703388332446167790299631070397895878208106063193724280842523372544541862340898367200862379116156554130425556076640459501968636571579687928774825621594510249753283614759455190385140541489162171529971221806140367395759292467242212769550795403201427263299405114349178357788052473730923430422437044231650829803553135416880144110930889676656223462609211115966059479194338143283007608719074306244973592852410870218168891129525461709724550793331399503085426081131486860435894331884386341305570425792727247097839118674947378521551509173544836657458235302559366865039243654671489924719520683149260556713814980686987657075662541661732692391855824066151405880481223481846084714010184859748636934940822706399253893144414583906504588469932666811616351747968115592169885383005121066793376884400512234146757527112807076814983513733011709939630280647605714506896856903681866718389676742625446576405953586136116736791449666128551903445502103261532772826574109145906658137859549941123412082760255933257916143328046548450720896303957583766844706136891733135304588301120752689297650516336517480956737812511059818890154576939087834417295445901105412075544079181016434816571210233018577068942259647908892404744871486725609954671682366263257378858556560936185891709148719526899215534795581007928915632722769767910836100546746000872645429714143086507762004306528269387852562063665295611710335524429410722668533499178428016319586843400709075211819346869574028868341915701170450172769023207449152137113562053378613162165563254271121741700321116906277045270468574312446793574468874974743475678316697486804488578948545772941605641639378245223007840208476647762212284324129190373895321503765324319885599005835365812648238965949120741882551282514119751664448731209861523741608124052659202855745217569743913876766205076326699031123893558331783923698991224789604089821066645833590031831874654459768448332493464363306199873506796111875070168757406359009248178165515064034385187730466004896742352829064010691948362543913117046292968427678837103185698147084492590876581624794550045375211698456574260348272828742758773621601288422323677266422540774099389589722594480756096504205309790250076049650046409767246325280376539173049454239265381373647379771279356772644722712322700244702260159681514211254163097040658972436005532282030017610999495530391394630932586571281648198140285950344293893954874378884908879310259461235448188827636756002270018472951320094868749789234860129212826855917973743364650103230174082283867980966218878951258032615952569600355993405001240678829108969766037366928343377408343637317453167244721818395897589431189459712040679935615660677135388226276557260004020439515152811052736431292157802475163584789012567989431419458498050784295801083192619294338301202040861524676709117803447496850200804718046427719230413798904202266316032448178207826941611836123074351217064506984471671036038668837095472942114438401663016788527083201806918935379891568915977526431693149312575097171358078843126246665963392356471827061404305309181058578312441071339089001426048811111259306130153652539015759134631156385812615262513076882771956254281757819694832287334545101086640785597689352279541961050194588128277047175956133539921734144529790334468015985211632805012743771449179486785213118106152213350172470032239537392211785857102421266910535734307546081004163992524022436919848405557473605716478093193974658728050889844666268675107627883453423022063479975658034089700913441425992674304886980835370563121984170245710193306106556886613435802998390335184206821932734153480651748650670683599628500566386015074385896588400036866657712929510583934029153417433728361234261016814396899912940901589077822336098586187376784831221537658033580744649502372429671491036102145773436187170523419262104877971941447337081113791447395733108485097537715166297957981264626080537720725697305257738015751230583532803004711758788494250173707413638517043335380328130153608647136190235153538234549148924906079905313593059973032665405479679597672980435837525437238581293733770925353935058647753695222214046662494353864861334695644261130814852630495752173099898705443509401469582376437650497661347852884059978531564302837115967492644096000382938320895437193534821008666133006757245659608731822631687506902346895989779431909110666061482802361463135837698331214350090488363443545001075327806858270208991668390802359377644801986602470784817952997929932792531389931236002619437554472842822627974949886550481689409102520147058473875785802089223026363117548413451990279216571141661709923349377590899368150101179627967680888316669175231379800280591611917531200514887937908192332483800536286157829811873519749417232311790368547514324106920256678150748448486006470319793840451063886259744191760346452065116078095735730621942509058123756682424055924944210781703107089092739728614174670777153772748833490268622565780777902181970506198232090779449882779512054788510894184156902420368262676899548727630749972517457432073534169660630683800806498558521827792729670429963384610037817876749213789913430260128795442909647489010840655298539485159991804644914116460803866792746895582124401393012237873170521932267837354571998489149870408783890636100267347968452405018220940150803389558704372573257102719433294665026599142462756144371942763811138568754275254979945364970431146773183783858094866212404358987691209038754444299862821513311242196654509515905532238019402609119797911524482091649633748758820327398377909061031975090426453419092918240492251409488724574286291070963920623379115315609518999432560808582729489972418969426229409348913025954197291762497204505147673992907055311514365869225215221588507448302314192820194799205699989822992431508916172122692480573116018863061841078626353662771454227261333149041136032833242020176509674376201594466550581221615677764096919020086543817964278727269901618092438435703932132071197096023832606785146588896663991177304823049729946005756297948765362293096877700145387588829130067470775718992070345979616532060238843334554408574317941693519699130443281050186330745983935393862783779801046034653818488730189689928811253251681809290320899590201486966852861179795368295555595154829499878993526955113217720924757469289065438954832114833443003890625442067750488350954710962665193412366592347551692015894757319890648687475442802171991417455511016798227547899099196118031668014450859061145271686852056983680795638605461549356779275357481358626803282259604558031783936466268922562627526430361453915779181941169909201719687274469189685112544388201990525191069146468452471627852305937598919778345963262240708011890605010485935446100672900875451211222256792770142214752538340081666738637473449223942337545226334088806533726570930293435459125328911335684698542667945276505853409441943930158149110563589785681121172495959185003846414791518452667268254894382681994233030536943903612192460699483200218357308537330728646652614582880788209486146675106194130337972786098754930860599132093209894849309382809462023427763811474456679730600849559804148694513702108913790313205387186581422110545887034743974338850331979148875084962602929098516767617549864738011146537105877951767348148674364970629729332088785691031184009362635887705703206644338018857598649896791595265962035823368625801234828465531434884287748736283075245954467164733643960858998283654224955470210134370726918584432136698833757579548503425348988232375156837386532953371642182927661367936238416503142386652193433277653514894899255090974720753180278269578694106024743863790707608578576264298366865165363999180569399510449413015362804318301604793902058973474703739165039213854559446733116347516691251347975301163196070670433246585465600093714099985470858396579988261817259146519740624925541682302437515953036567272257684722597068028321981098050636518611900913405850821532084688572083912935759856853096524358059479154835526796183715567335123616161344137570194550845328644122632146152947512555598375762834022991564045935309283703323883597137103886292550979673574533622937323528120683039431906604146724806667187018454704409309320702010805435280129399191454985511337129944332110775686405093150279183011261901807029195593654681368917782145095203813423471370922277270960980457026563546224397825707566648661138833383796962921115505255869736375855060236365888196709551273442818501022363168273760372733739937516682069029263351466921963228140596084024203100325964009705297419888201315242279326724698890507173894468157295099542371748810474435730874940702858533697760715923695419381278320143463026760593182913571834312783962825078669699407091971244839258434062614050700139436496892489755486523840805216050537273122297568091352258314482277469121459320280999133167642881757119827291519912605327868856811675812050105407121911114387636230277071239696356509896925032118752409585440594657181055666815004103089565329157278615830585065745369052277992370906119187891480971966997014577651387417939802513687047610630828700285721677880752999003160820820886282449651255306901068149544184808608162017990555632800736950487512726078993739180553586054933407778537403731279405417497025318484846502410631312189936913839577341396202979222568567950289651437008468181685546825709645912790141851648176251580589832344299435649971792259056576911975124686907169147208952949957194166798326353234283508139299601986679348580750648915182569323914895401639351160742432892718353275366928584017430853520927497922456829402546191184733305364220394597737759763507350548421994916585906452762365621755529303861670261144336359308258709022710919057202208096705204907662152539701578539568947505620926855274714530652459585824482416842078703527168325057341955845483136688823300114774883921912429943287381426211922169505083414974520035426691293795998214392187328963578729147735512725394805581843109387474184613205434285916745784121062076949714055804810500582141210397040784289986383894464003735405966684270922913998993943401910278028426299046437268012139414194830154932521823398194992704026313166479626182958798717649532748662316651497698031149574663390217405482845164970338319618340046428577465331454604893556894637677133949716829109733587206768677647125008604204244734594992341461091126823724780196338083384904817098310333003381958307510040780056954210356676353740061159857456864957126525114396118732968314928999165194412993058142424590718683794154862639217013639806034516001283824209404627546804881792718827957307351813508297207503977324810666496721382284414085924316903308132259693460628074148255435546510505696291350666293948003230026790214349007725475400715078725667135247570918050908772020788885255250458716827356831165939024802730206353135901874188197495043611185321778008441967834386775434401497474181811624094708764636207718697662397594978514004528802051147960012963864421015442909022467512924447672629741571894448637053712499983172804012106783267478181031253410905752534800121285879916751041982024863099891742199521719525994828096270789452204025196859895036535048075754652389839581944732578544089682025154029970631333836707498634239051974650912605185953677509372538778112475776762493344334757240457502560313435041929089677359501079326404067947934080495672444546403973937942131963943313222241078370573184078409313159067157032564485348901556942355592599884312985777931081905489054527755410538908792649663226049573601364074085195873321386986368334105663384262965502425570025093820403342463949729505275239357721023073571116348277594502115227022448323464376233536007079563009643123732596058004980984456694570579690101448251005991452979573984989249695997937927189125254805966119385924479075118219493938683765034567759537401915208850572018344064962846646945113358729349754220523802480469713090568922839749802698453774873035177667541297240089203015662791456088699573098035485268127764794906822962928703065645779941306639270269590839855851287659617259772306912122803406874125467083225362912360873776933268725171069961059418752862813829978016871926463841890377922086428531841522176957896556901128153551401422591989009786227318985157668042380340556318993881344434305505470980700323444548863186820406277572663126253305740851464331651062172102490271135503592065292650898608897430085064153339628488095309375564016485977298988337227378279982712652540325480725519393472716517667789847370086940270069517778056175895017611794389736886448271231116677838247394466434553851015383613317060752963515127689278259028846138191864604118980660921309084532664293493432588862637072463347117867403699505232751176335060974946844570993040253131337419312879751438220219008506734861924842991371783711378410876533651196804098820482666243331094329512323575373871704330301722237164824476715707858731088850998438399592520559113852862692845871532415372175304733094483809756685941508858146420984750347575529896136311730189534568562823333219853294768961986693683633243609583663171178403945818032448189929155159924989906242717787619419826005488311662209782031918525407109374551007857096188523791571910880119730904019677252920589584058080330293697703995729199677428164636785936790262330508910501599960948913889207792841707171722056074159210416147171935178454994750432809779171804993688004149247233438458982447038299143137575107339768187548847924683750779329581646677533637334662863799073983891019372569421992347647089131641366638751689413113490660438740103494025876396159936488441015919368414900455557998737424113674036307479143263641997069730708664402353581374950256469311730526794209622041491100688492623231742374094974454582661124604565943459331048099873180181155538628267649174990039026770213796080049211571300028826821428532114615438691976108015481536243999679141946646693550496176008023303744216267904081983824172729454547476682640371195385378168467995858265195613425473990389040277910526736518173039236777307025972012523534876669193072476637319228721430684388367068833147471364046440650640055636691199100020480208184924528904097647239624192266456992005981244531047381689086827246064487949118128719980397127511279623550701014276688298064046851666239032973671522452876120001604826710845534674323098274388039922858913343853423448225304772689064305552094234408141331055931344595032482538681923564568371731601203765009708867673958400388090820490234070180774336898383198131672628680956196260140094508348672015894774222354379309935175062827803135179112460576262781025342986142393828253971754973915827910365406576664687605749034066652341445599823182613496851472236559113227067793048961844332267366786988454699230053412548234519458345296954689045571287012584872375672246481420529452531259607416954991356396300600578688434237003527470655698162993938317534907995556459195036048242717729727867996319678083976592099150774420106048493887943599197948174212989207077967746725185117662969853420817385263294194983983693456823195010132095753694297199033551305316861316567817752418065671284997330201263710040465673525825595519047157579195376185278474174815336168815505111222119830577989567119634103284643707525745898479365805354677294647686404120054612115218780697556497434170812793500867382369197057713000656203580847552894722449515368604117729650833493235549748911313148658234346566622099697080216078981517763925420200418031197481769570865458509753334208905417382078397651154991493377910548312873975572088988704285614718624898215409893400978389798942297459854397826322501134490404170267618618186208405330837689305697374477135748625488143639921074804485312548356973876269985113469449194441165512988128502635824188384925432040635879254538589210132692551617004550931447237393139384909669018639200959888668903815297680934476975752882865951778021705201890337720916627161978678212722174318597135175181309339050362030111625629446995783339501061264900826842530335548520900344261632345668560724173924694824407579587830302572185010275402422812492260670324727436782260988910547336928656643222511022646225046898740985649596423351811535896617364903538023500350931792737635120007679005673043490558505076314940130662467792149606487277227685737781196886148388014855589079997151242438429203450172343255718274357229305540040939839966913013070186734049453028000042266629127112626502819684552649237483398788563963224132533888351091177475393966300348345409429020952641861163930458429096096470656304220155923043960090587087338634828876998722721116896168538271991616660355774918567321850208250837015580112052133933630924521320266606175250768502973480798815678558747107051892439248294948901880396462132169973714468903983304345195486927876578687574817446114426262848171765740069486311152853728344920476659280953242273933627607299207163024107378205097555990030314568051552149490241258808833862304745259836642626868699554403220572076472905102593482604189512232059845444254031612589348908298069171349067388729006841538380832773665206765598139945648833159615067364853694397085102936410075249063727856940938156045809037108584971997158032624469703319206556573744673355087604610636871366499241483716460796164680952553960208605121445894008108035443125530060739286982438724252314179216461208399608939475578150240794071181089607045209195745943261870687751900955491390727844253743315891616487142538069811756947590281128418525695879827375206904050403424197548208861128084232846900050796047520356762179470849782150982146057208561312825464540806028306876035501167661747420765884023618991144988926323449066414302820593518093972666947692022166898282381972943216686810046764762982480724676551390844018931865482463704505360672387221192096738086048599210772465570423862192559019601386729312135508658668803397544099904156852830829842916220709725850774969893932077041413665311209836759325178942519133134177047778192466627651905801087394969075070680567112942570930868458297010519855336549201047906519878772067642045248360397411504562918870730473527122921404918811309705076236738504238197939279133695349110629091142422286478355814095766778108363930060785212567697186613408628667561085458465588461308711777893844315525169018574971852135333657179503030005324815745623227653600577398740094840350552213091581466614961310053526551905605489246330136164909816175388952849760034417806251141427856994137706894360649212965594438332816121785930405642507056616606543735587993203058229707931737001592755276592068097209927486614017212543073519866212817955772661924322550869437691040972367730685845298562463086318790560878085999497218213535368267099223231271971233931531413703826536168321118514520010101101710959793086584443955739230074606635426628923795950188858016549651836850939465789069660273758485902500072706989234944463821102697924975278697235477825352098404243621091588656341883566400067989378409839455662996087202826659781337929526799620879316288676548961397793146848271788391478393220162008410899168002902611870762759756538175359669154514353307047028557769149471829209502364028055399216858850146976651660958525901180460747426231744965002494444719056596262603414459649643266257864964650842040315879911279576304517877536291602338832968670883748987437213914028701820725992568198415589234778691544175847819018774522917602863315222987746611366794354932689247869800083044811167283487048488188835070653580940461057632819207266639710559445274677636906667718248175742007228986046371444264920935417796286036879527507988883326444367530995460728573646677764168731014112121343532823609886956496062442865046465713896323295789933445506677642330019309139034554139155267339505638423073733320731545953800675306490134422013559967405314279981367505900717128801998996660479170704524770172533180530104955631905994098552191704514615858242010245412240678803003164407127617491185966542097951248601965927087543260871778080570010532957496998946472145964554379763714422487953063052974130624613547075480908137182497249996669892871665790916508090776599611656679072962186682056097101160903718353403415153308483457945406931983264662785553998375915769493910172262669994321298635432497481987796537679885545094976766108864279740743934984180856324400293801565527846446740424624801711533410057967856005366211657951212294759978495842124276278749182519551591661827622780695554660756916405009439223459827593455372453214388651222607966054270050537294777735907024851759281441238340959295216490162134574227040551978010754403099937207650907105842428971816436728212362591729447395065143776950860782077209322461267667642245011002537422964738294034988548540701252245558471409849042911677020603427110530944035974069880887075185155282558183636912637182410143151659900980416783238497564434399181024805498326106547087199655545771175478816307590576642925079531883582602657061895950435131624970963813482613972753824745681794925112692668311405904677048236509468085082819160189190318308662244217561571355999293580349007470056765012400945187184390510903575319663757204627154107324144844286648097592132365798473440863691369245370909631597318299722903308611804879945880572063058473407284107735544865342640741059393938938922814143900996744001894566114149943712630599252039797610289038157162489793291724987722592096955374242963837918511076992371091051026869107527908396273241310001358339327641827065029431572825354892223458745207154970340481927918265402482931059322504211387284444037645393216389286198408501795617307788183123819788725341708923045088447251344112012006731754849236161274727900995088150456742912628413956095578774484702420102961115113579437387903072647120656792992220872798348915199083541504321669372070132036595697707092174547201359027218516568875826475756238034273893430385035022370211500321934590621576786334831393683199332049343919255843194197493562676423097313031921146043468420700619445216940156433727693765983533822705526653644423661001929194241568817518785963018644752791114153764379728233360370544328451701720888655634987414042753558354637149892567436030966647523485720670791022723184290862196154728547267504388015219311030508778680358102237483115825658162766505876999745559253012584654479668869273027110348101592531756817742799813057125048422375075298200017158122594451624357234087411270851835960898765042309699491125826881379665128025341510634122023357779557835493736904753475820533022188124723600875716157793375599977947670425186219698557961740687206944561645612725955559906414632722058652608389248643476607732985124066684422812410222240921611885786635884064485396929099068587669561626125128174606891457428533347713987176074362457191463688194015033893781136470100797872833848429763100664282424826034568997450247750178166987022542259728769749047395260093596568417692804496836019677144196981414341866847964593654473630041469270617570628580318954693446967490887893003422150688243536578997942912216881788483772954727419692853232835817715453480386757653819383749405314246429609312506487482383433403909168075247638113500815475483968739077200504063457002076706165529382087288522861848585469034587676963478203180310009835687300850879484873277195494024135262797634416711143996380947642507850423979033038125166147852329402908125889324737457150484612938319596890182740821202799079445807656611904871889090303067663139776721156073269578754386643032065196526412571753108041821960400749636792757928597516147533626683954750166644420677458930031259165303650965054037220677445401323159224238182501564941453812853638601940370324563423819488252110980709373731053482848463368142279371223848442065121183303963790219754940209245053569734004750162618357059822256772912692329665322819839135231294128629421100144632192502265478464533515656833756057890777522017951452213096958401637427778621248216433791113985353054450924408572290066513616167957071275873037255632087642152985656564209984575520200914204679566829351823842592803822630166064059195984744207592636121315914474006522205801969160353843338756873842917013322553282248611096539015266060962700629440858500289058770731337663879506961823010069915022523569921501647124317541597022833776346072087889658552292324815733060878178965500522013636460742445343857405433890325374244147066232900334163953590392269990802591452292417828446472896045532538994677881916795467098054812808233417846613374365500355608557464884817659814257889052732886058779780163022071563839161294973138818699952167897822950771989612616506865177801203555926448579818759919190189762283052111708653106962411129534056038552091190238697820199250130711281293905229983660696478932359761667045201631139955657124682526992360663949294362026174043221826969373977694569579857093046728178710872396347628559637413359618231286623525046667702572343315598757314128621498171865542633890177664196039386200392906683098380144977530092102928160364798527313732683123481613362680216024940671934173304697731531399614289783790395603637993633697326699657576351505406621198980062698772727674003583703408553787778706245152698109654477186494557991341157640713638102577115453912113447030753105069886065574398916075734773509262480053267275895158231487888471604179105005522733275187115222941678558294987164252545725274137651865574357064076170606957867994810832189869795351670877685962894210873313788641904600343228464706480615195178891278574620677028401955372536733946799720738877759214825696136150554253770769806637835631336010839498565223342681938865570055605596461140893509056101553978626558778810067143092065377359888970041397634069592189287662957168305308539130517526521399887256457545875709779368854497261954342816969309058417181722462680607374579214757298500538682686326821753488608721966890296553979615525617895652432961174097872609738283367530645737669214127208401736148202353823883941212393124680655655560087790299974702927089836277722863834398164569724485746203183796091140936965029026118138409276590235790245677509789307555736554797342080469282398065114222283012755890182562861454603903749932830268193423603337566408744826163434675649146616030970942582978512205631575489974519926058772255064360497308970709165225591077279714361248845244203647144907324814529951270319295942723282995922652298369405962704943508259044927300939145428722012155838386671014112193047122153056450645356928160936010777235373724549163841088028906975009626218642253686523105625587230658137414069148493306442407822729754929043213852058093739018198948087540019323911774580177129419065650284837209720779095204578397798932076267028076041350287527551192285339755769968889808036082203319727560400896922168490821668305176243325367155780127382996437025820191516100730850862228808887745418564494667154980541559048864542756172969606379575248639242999289787502678237714789933097656674360917529079701706916984534919022814463079926612039371955249175552534555762926392893228676865353575444065585528353084694114118719540843747277374858444652735893632880891587033616190354310047544063244874183048354512214497825752963641423457443835034658013982860264430970727198039008573116344914683162012316652457130267178062602544935595369904365660776025829620631530360753436879637775368465931894393401879420349859104518015964258986872567166459163088648294086905361857098738148628013010790452648468505717431949299203605749279499523303570288820907901417462225088160702178380607189576009355649569816644550492416909551843245355908707035848420862060224246512454283924682273150211657436155153685504178668674409700125559520406640418133383369104732597455329409942216511139600087379505563524993538381613054964548918545043910918597876711566100978292603516209682737693406335337857435210157029125138871073537422631520539195808542115070350819437968051584487088437347633135137983853907569125447865673928994258860410010424652308487626778482832019173529938187520181368138694784393807285695152195215002310990860922508567374820331519317482996829657812468591618459426546362204008337703405700861404448075661422948343239539260795611584988909624487939666421188042052114236262768057138968892484015422034389073510749573801730630691316966779038354306896818636541555202505115286190741821432030746351474437554198089745341540754308154700725149412256609131372603043803270460867280630211430043966415165713941463766323333425120511406864953140063062562105841734174294504303606888941707081258935278030183667402922846008492494400128961168019234350702322135556244605119286417199469697505462786100368901166237999792092017378227269504679682046202877392948720900396412579892534593644600560813479333679025734413829426797109007443182263871362703611359651369601483792122108741098659881074606810007395668178834288514971402728426041636798362406397430817863961781743686486513736814265792327223482436656361420645099905848217988185957884682942802757867125797714648121973610239863541914702153485915571601992507659007828904613282785309209724103134979234809086637744031188454203982767567715796168055062069338645315153451789432346431523965012477437270801947019338654129623794014624325780207647510366401503004582939297283777718137532543107320125366141447121222264813679360325386255162517745027554870199036014589104477829309152968746754497025806074927112936877304064021465414982426700042034269198704022645405574146567359473712443268675858868891818071728516191659599435398898295146018323745249077073986142468421541125537927581872383842124254924919032699730986706885184993043034183850310156029258952345375149991653101275507759310970448943193605314253682086210736754274181828708720107680846822198999063812805236498234182006352187151193601205946684057063912313286528363263057626848036228167247124234965706500785537179466493032191017486208960751543530252825413573801060995337342070094235117972741432757208851349904671802916392211829498686119153572069862160074845798177567727058547870781261626585041378849353211336114471096850913730939873157760093517096568555116715846989338749043623469466330598103344127178298599170974512571433432989774982491940600594045606647984633097678209786265596578545823965088868885916512402659796121020441235052180639667245413936223383706201773044952193192343599818072181003548603218072554215497596500093920109064340954176150735640404475264949734382001312096153524565590972526399535289687013433499057744153083340865124802084465407531000681302997551432166408261421210152171451129764963506766846240907566526948587180323751726640317159051123735206186530919163838926212840276515633356811665021098459147638523816216522460553296243533131090083118879257833343211202822797517985749682333870614324020797211452104183812117194659554352239502408167219923399146120944425306113316475930054866107168536589363639887834840520983460835616814617834275865292390244798917400903247264667596840658862048408105140615243805669623296845974685089685689596782416096895745779153313544710837559109686472200114367985651157693963797808654984652725412699869062000129100153096802826394658169748734764670447984822235176495369084263861761583283622317566175610360159447118189805228674054515804103782683705558330789593760214560534753087501108557195353227659869252723413765494002876992787457461566063697201002308090695787316402292453933233914702604565731121176874505791171922283778985359878029922922219739915553333998301735107794132557477297877442563412174891977236136707127068266422337101488248033069564806529317990749900288153102521464085880236812757806710937685708728768435698864459402223700503024866942274045587810747914884764048301239947057003790886664594417724707044080853421417478949887729184270310376306378091894518034248203070220168071827104949827950070185550830779243914804521551962177970119973883505578857349071684469891688234874993423987957663257403013853001738710737433495004846258580547100715181083436398310911282465257760331050169329590749863141603226586253067703170403534606937426939176286424521936751019894776626991930905455624963343073873402937791955620966115080601134284691753173549844486962139871620469846532123976913054793284616266846056590231856622951249926411601812179676281480393689189297468462058433404364543773531108514386913417209943807887446090456976709169189136051980896529568365627634954822945597168027107961661901201540449959625784486631379983085364857958584672030268047231566528290564144305279421719890549310778003726292212261043221448608190077701755988237032290798855571886420843308411504796363075335567192397110398947396169707415031029604757040053009107792819661149869639028878003064290050137632849940101104859740609728200306501105484518693868916541839932098559857282286561772558989860667909618210536797444547126451287123869231521622126764961392822661838526235532101756155278797146574687010598718913560524083726110040569723322701333262336277806874063138779825900135395171562622255844432710640849960374829322123261213801448819013547142433761379956371961856338887457602965559441453838108788716949060660419945683659467603578795703640795580272546715295768820709299691380512993819183607537543480823631208427621301181089905124231948148312516645201163777430236426964631760552298778957008528706190187371064811832942397769272849003531400789753075309585955745583567625452229206348817437504840630420104818869224553314667785309983849517925132334741099224857151834175072991684754745154360271971272069898132760558467757479257707950185284140976434878885065275617736361014670541532745199325733439774911818128679928941237923412625319711973385860317788462144757608604311320668791587120945090354088803641864185240392349094252972394434674996133756915769959250716080541727430943736573981811494975630861108529046655332593607203147295075464634218570847318415954996290489849729966221435460258968308162024147940468688733815384909523210214525266402864136100598096579080096850296195744849403678282715168936610579561808040461053366346666253490821043129762735085131536447708760904389796713366774621350181672748047363461935121461235145316332242440377189810475707383971755511506588650469620486369498629228976084835679634538456118798363113950364594449381411007117864919446200569421043203811096564765361431208637476575241076223477821091249127158313448728220629634571006672754305336485671758119065748630826636451086389371566158313307267282241757451722767991570704177711788441522383461646020323476266183214232180222308968408284859108143263262596313600806395212872004443349221001589916205461066598123811562228616519825957171557725195099869529311431492011137432143607255422335857860188634049183939999573021192992179120813248175449638837986903107281001146713452762810656946252561474632534107969411590587240881576746552050791886725480985914016554050382024531864431484276919009282997243135571338336823251178151200255959590637889064118552122593140352176672687537169824810851122738796313355365024099093283926125225863215060329598596987364581247542398511950871904651913878275697580721314672671528336748587239465795371104821497208286322245926349154763153442765716751650314906923084172595058751252034726828282659219054543972890056194916508980593623414535496692737258798989128148506866899781638138973317101352439254930937139850444814571476712746502102726445096355820599131952927557839625608012024303201934182634708099667400042914929378656947716162873695066059628097558244272976215863689173085116046168357399028836437742681737701936345493866771094335775059689603354806246590843516970262455234436616753858987475718613424742957269927539922444379761625836672126341199355131019724707185902437223426098782184222998869383908398254611053770702596061417228414951505177748330343968043408906782082973137187866029278316336996949766648470819165754402947744340612131360327742796936830098961397803819187621182760549592005971029460238707163352114869496321940128690788036104613996757798009939172222791648089837248907908049895097774009289088570059915906326781486565595631494820443248610222762296869976144211993183852629717032946658220441249628641778474737053622958924124333111328797423320486061903504066744526380982572002282042742470130821007125667925497868342244718949324463361597415667375525487836325519388001949575030347188003514686231346345922852780293511841810060557088191181185433911429419379222422468000458480947411253132670046270869057644663706123808179364138074066509874449757516974777213642782576257524502356687489171345455244734692052092627199891816700792433496914868417032831585883222868826604755271343213042960940473299639961660291927251625838481962845512581344344902818827317617432761854414519227262462513838157437622119593303982195101752799236894599571412199142409878926361898719952101117449979149118799683281551708857065009900573253287467577150091756770952864933696981063850703433069227085962324663736113877175270434064634328223436952451074634628702059239812300760494781231344477957084953777137402488234656275216813753900101206712103941834270560940757730058466560792281139423736587891946514510215665452997004068611817679684764468345558789517343597908780832454670596261757673381331781623123620446333503023513147842014129612287391480487715234287590080436603720184952914478576364136617631267494322865310174654912628028874976304399389361774656140892196191499401812488377010213724969378199528630167817293865195979899635690055550517260871049366598573637719756422192969324801549551830639119155914330670922094537391385214520155114588628079364364609934272303433587756599853047647299379400438695278261464096152747131872914998117590524295943202676152426576272190652413375691693873339051320734412276239539894339510432741703303963110252489472337912937667119568768645337447588423975510554345186740359993022695242673564182400650664001451410237624336864193401447990962672204835928400182899668207898140409092320882763726540480423721650528644874325673139731603363907824783377426183330660234573503619222293867546599171297316378447466344679969231198586749121407974825980714788830034315911863650687929546235429503386231488928702394289461572255957999773244682967708786089730336249191525170124008801265378590922447491418222451258045403228306297142675956344628344259533028670830130792230039360336751275312633880304456520377603410860125227810316963486187824865210355044574133086771770887881419668117254842657004788669808410294615514803951820872998452456682979091272014932823443568072926474518744379584767469561079285706109426372184932117391163498308374795615143387542871057861726207458864202041114635431755774509421470903838008824270505998733704910632810569382889598387445749807855843201088542827904351294793705096082956615796254918547231493486200732282398732622706410504003729308460492480204832313534539435490265798943109991344233885324623586756445961966876173685280209274864583526843759880432385872264718519686499694449962559851276462275139162914930394518097719207865944680691145567764711525883641557838977813331143135640819818817418137379179930247980537705025791415655844887498243462381462139809509211909999342246030491285006150371870833600655196498325875861276611630370881847868983962285955653701792741881502352763099926494002956819538197917236559483152739317566784701817642263487077696858971765453637617121056855900653972328267100893759819580284438990069296642771071202977316297465897384145889633291786712114169183771312584570402270412063023934825664252582349399323181635605168126479241665309241782249489023116570964846614750453730283569463365409487182741983820620650639306363373924477227588106030537573217086170342272334180070203205682582107891580997534174619436231829560101094611658354227895645243971391042181521837255590175597413356381423034087607827636065364556174039400265382545339109699234372270436129961485974860272803255200340192810063224940370649149449364754029900648022806166778540358949304533007183761529516356405079539503199831987189851496833942284202355618978492072159136936478481275231318597823543675390076438569563773690914131180709238004522526153729356951686417096276209737371961667299065680792701842328225947055093757448558692202210582749113024972217022412799831214632849359740375981076945846538576945794163391840199672618731333548548410612161625735289251817443570886027080475484154208128629829928358692898614616820645367755092967368429788438518389279410687090896728931905222312666306994098899732528501966903585959798842247009224365692419109318522629888460764237786395253165345608415623770054319671725199365095192062505651502750499494490318319084619053814665829001074780799841818848619677841292869683392108348092578801136420024726432320909745818728978451670689317965760924221093423590859664457428843828044439642236287058672442862245490893340251361842946457123106234988244716446952685446665922525885631403250218846402243072500977057602490555016851550177949307204831892633329258498889640846008751735668227781249827714408303866110675777316602909562398194112391180096854695250521609137014043644645031576959617174302988899739780745486265967645423319682338613326261227819211505839783215013513308735629505361184550035957732804875385767596608775871198074298294055441352773491868096110567967001912934700015725204953322804720853517047593067171059331202408848441374068651583276525387134469873373131661950197433581060599954555876309164791774428795294866435371392054695026797102339971749097574646458797159104001156602982116225318283946537819420688148017307894324818915205781844549094141824936815326148631955895702105537629490542058356236444204288615364244681054784361096791953143261987442671405943660388125603493791858100843327675826797535052457031089432345963274243838546850160222019871061695518515545586411958341888126650533355512142724072556939780402455324610479446910863718346603014127141567298744487753042666871611781105608936482755852624314569985406679104125862596492262647348589120738585089997932339291909412046209184175891756131546521667259687798449405127717734843315314060466219211733392610164927378226774121889124543356894866762898447432866543153834180482267076597376940538559167451500786035940006956958569121140778698136526388547762876730183731579954719030568766291278729311123423916488049177958119226816686783618839910582819238112227697373102656193126621389155472504723540770308290776568839195443265904502780412199528190558085734657945335264250329422205476732511208024739266373506439891760340644391660658341740002664132722957609611951272420641942346383645964103031308509106624214825801857030184365341849947645700653792313571201311266074119206272781018209848888049001154788727803412748419035084395606235578230122120202400414818012367791782074007542294893053711487806685248365549325711682515625028960216037950901428705399312115583235340559271780669041346900144638689298865996185312359492827888937847838788559201090639326547716559526395983454746161780559973706670899288936053282206740652117087167914155461459426151554719110836120380966558418405821365564596841852013925283033594147564998826493373559668198197004338230454528203045843516462208213098433267400853501864241984041740556323478562354140007251406102858057947883235385720707189085279526442671930446869459710576574386429401619516804639442198765890623837271763359613876824816582424909724107864559315982858686847249756882992584892829938302400068840759502709731186793399302324209338856124654645018782329082620501029023198994124519320630791599026795746202874438656291322736906916281308879734781182947079470479832274209447495364612179910200817701536162234626106930761199969765127527585888664804974911311153817200607382822046816425399177211256612137677675805095654783104196448120546251122808060446808016186015325977540870405381657054202594445410145391853116975253052074660791009227204450431218369637048040562642137287219697184106613377212691358899691713729445819903391656268113532195100473234199106563625704046376232801620684897085385734659710993164197198075649918463365475702926487323981334449345174584065447806656947449078390677849049403449087446301331092334117229516520976385403300932689578116921039666968375595437483795052408925387309688653778813067760410831669385942656156674638710913418143458905243879901885143680389827505600152868299030909994516885205319862525967685376460762236992775949362690833807473287718621287050780461097218871695032179785621703425942803994549648833472137247161671682030893138242663371922895178395320870682544106753957305175062856008542899795450087165047320477299870137013408542607036607379983243869447465125382097562000570012504699915338986491190770623829083878740809198117576492939541132727050459015650086512363473887837591646600774034652880726031896408642490043076215224532021840534863624946590822965580170435200232577107217057542328112740336110528561234537167255847924839282084544142687464438373894277101815234798997085769945303452107605333051511526224406480100692048448066215140177445832647496788425487464298934742529218050838229968518903069448754600471534186192592478391016027550487198131456540868047148321380163349621792246305350361827091095093422958253299739790558447856491297737622851839030826378970611239156639313738336670980267196382301031045639717539892327663419760868442298590651376270507115787165998443740406513882248750236675276614098248067035107495793856897959529137044850146219591303704849099340960236892131807929553144522543198192123565599548442326802900221347309836155148960643627555230686510640326463665651509650832499146021737040099985246706810847731853629015614308124384983045705114211111632129187154001276459881130758997975046375802328279059521864798157346218240546591262976555558038203283664625416111622561710864803774167309099464395781599481440327066354128583573886009679116228824238268259627381251798201768613844793627388217454274500268452618690422691939977995368776786792946220644769640600036199756726561788491393270933580639315496723368054119380314955817101251402447757470099125224098212667636281094053928397575013245838206974043201082513600119072849691798287096269460157792557393196586765478438481510346261090578731900449586863617501061715746679425223252579553141746381100642769933223160956539086467506995894642168861614283925388582640679379055627741011175491975794918721592589234546379462162989291684652409373159921499411852311190536868098660427229212397102229434534405959838534570684695988500740739724061096300995050695828147289765837375557610527893661112108925116928622752237976515349985761334816577122262608494172572667932164976307544527234116372865888780555754197774810803077251067262784334942099780867520869986658122703799671750036096579831247468250272556833590840960781678976207765974463732255866557151862009760520340333255976225775942721254962900744629355756730219504780063648895673826849703487294766812001487755285087500842975039718246368326933975163081675347318870458712571704735888894907360332623831895995043404058523486746877813389827286875756497903213718912699696613809788152409371450833198240210009847491801291196082869380748810117464583003401053302193530185232357896440837256808334970407978501959101351710090369770376079055050276934381375139254429373163042335284252078069628161382004177850347296340868307567098395260037060187809722530699673864881797675089816523775232151215662436851308467284337571622441779296164921778937472214959411381654186520702376643222184769966764003042836854582743559523926938736149936141015803020323077105259744573790171660805875182277510042182045844478816890463716284992479020228632749749450496798037916966819105938843187051730452447445008914659700350967351015076592800875516596531356689484968290527031918795155303477250087170589994484145284316414910622894987529831550962654153044662219492306078497412337530127614870144305737785302008177773817573550898797073582392187785572670038474721781559234614607453701510746023572235730456451633529809996451828914125135541526321813775545846080381748901498900016514282101262151742237378089480594925072880956338520998750485050752883980289081883004465803880992181945277082277397928951688029232276049537468069650665708453801534605244183342625171774153049390990984825678406714926909608466576941854779361455376512329840314139746970340833630876945619450443642449144352861374510446303671886819980094655073871652817157919080408097461362276148519477964000221894322080967498316599176401027637673248848330275660443004498234301210081190048302772298406490924087846462603709662093388190563721623710556224477184058499605647741254252444600161651830659143923041069164093206506249291427596446747090680410121277476089729140089212354848829354986372223640329224367452161847577319386195202596073206882671702163784804195756586526102926549965501475493012824781635854743226521562640420666819073220415667167422818386223167739038546742342099335394982058247080559696327339615662451301029468561977097389525342817639894750983542476141811524084207589355042703505712126637451124513692048559848191621544188758331611210190081359139209030761146262856825599580356002840086122200464145850045344071118765300953358358180492730950306478351790649692221763342756605271862847075417869719360722535821949218660938784364391279237913566163800924130418633329421024596547979865701614643066687564219510827182577804165263090546512125626358080918764653388615910276187612668951829019232098860514658988835591251333475389851117232943760724572996054871975829902204212056247069532334330068622543340534268969470031797790102881210496572875327163080880406448048276412503999420474219689678432632365023044731166937326102144799358801641684289364993383485298121556288465303240911917401359458974546511386943983674304475832777493883798106808342436312651426612929663232030869653710069578743423333803562934604213817065410463574372875118370531530819182708631035686564904989597910830995782330647821317436408750119583497886313658842779927640578082867704320511632562982470025975547180077569601615697970346142859162783303190297091380488424647211868042698685385939825089915632459958081338586951843079975081890502011201539935338185872370132806079424220542322919701704309217623892081903285164398480283704754984685236718620200377401753088706053467062330950368278337819824242572691081520234210541867759770981526412598440472539233813703766610787201212313140244388735558161730160356555182069387387809446541142725657086543435668130332421297875236458951429351330709093805514221153423979125053015773849361593821455671028097053233167474193121696490071901065830318238849094151011384725131796177563508499237332020549461537667634021625333802176271010499253765421330852119281765169670103576197800483896432305088628740398060509700602259870939906684105863128386186944342235504090824092094704321497105277381335754243742440243144738559095643801861665299782876581507232934040961208983772289298985480959830934854525519558180615506506007346423101960484732352925471607842036066970041329203862501558529368628595444585791391534388036557847251409022917369110944776079893894147543370934130243993131802629080825819953419082981558364746263226125785884433634518490018023191768332245382871326492071881069891924003423863873698247861389942013196117190955238369007653646807276208774406331464912873045811464749735997248947970612803524832450702780665042088165351062729613322741069024400558635064008462424276427634211871383603867414142090708971660582575317487136895360538121527414392932991731817550640347492907185859624204286723143788782188593499874640071323926949498126785966785094960777840337379158395102381794536313818747449375449823956880208102108127712744401965682325804148028127025962731503757808477510783877302425734303893304904028280890158374002968179600230446440742146524722215193925294558002894643862903307624928533807796261971777407712193011089742471070190981830858216044834953455709419042734411696954415340914740306666156443379841321667379962858239573885565700166588134029197144820318484764230545090735778692551452459570112181822718458309300484877125675144557916257399663656192488790991755652210479143870058403942724146183319207196701384730662013049423859531642921921655912036755238622725569449661661424726981550390973677027725153292279391635257393752664175422427890847065136299172304079516456028266042500606151246307989380863167350757354166209489538560827699536841470955118700117245189634857333077470771288880198486561698973015379086746411449555386686851322767581988054695185507609531201115395589978609678994100073027880844615235480833590191484421059451486140146396657955997319497748725331205954947606350699469969116040857299047876688746426017246955559492359811992466197303902571352827926401667935146221422221871907953348115611219414072428612356537716506659292956473483331410600983860909158880799951601759389921623162278043066091006058616017844331734562931573595457795597593193588304250580250656307954167003650349268422262438908421246480507068667866781374952620006139291824101862351289214909578269870439848187243844414105305085251234981175847943351358684074726545359295300873011897646097832800687611661841444823039017472480894486690305262811880827919908378706318400002703796169778736827906278130575313744009267846615561551912547581509542094721209999648448115643062613131132827642105702783450496233758455867493472566842168590784052794944565373873614457395310757268466012665605672900848747144071879748512425636437682127294999443062512152419578901749136269151990408120134705768662320858456174558843336134942659830877812429928516997028740406969688805907739584930523601666034713422168537441130621451954708197476998057095258462922111832724661455942968174059354057823993642173358088617906390975083763688136117866364075064892029327437582669186136303746049873516331632364339765394101509668965107639197725328945256630928791683629215487550070389424042570111901206159434331080399267065245838510973547415941593822867238325701298498852610675629429712694839435719270756634018812348536619596265449785160276234494665294560813157321817545438063824118461861405290290889904493987531152413962325769746086704707970747803480480048179506993911073310971739114295411191023352879883373482254963718493015433189859958945268476883106210070943339443459202938628168008106186161691222911441824646082524214518562903887553382389287465094595447217683241630188393988608327105502702082658075914987131442359434802724359574600097818190555416958390155361663158538649284734092237031038158382198275756594405497131360555643208664485523254965898046320454642766377930916866961154136693958558421206904211521235051129432433913627627908149148493061111801621146229965295776372850874406301580545344356288299310762752379535494152753330108191084323029109726804774686446605962817724406565091509044492315415171998700389755939010625003121073533687905706297352348264427998380792963338526100268491079439094891633767152949982776888968822522894397585385637646654682252181499623928956399928102621433054267410908421449632978216548799265921107205494293823779097634560128640870122724633871878901230220836622960338246852463694764045800988622142495533063171177629641705990778722194691458995568691817329056491380182541947755197025811438563837750038816476020699176235903171031511865988137622591305844887418116438223491275608019469623191800654088720173471217146250001918972571230546310093400066642906600698206230930629552803010020294627917947458644130297439429565648798982086620661016323182581859987597865697008594786200287818455977834438700990185933445681499990642075649569091223582715403583299796686959293994074370773587685728186870747198194276037395996009748945388783586273044665883948790507636710871833259370584466127031767412648979993616752674771012747245896933871359589003981553196984299099997001781866832801730364115789646106796211449388353944632507825833488992246276473727206895640568915629713311707922127648457456727422166483313075103329238208437272819864447111249702423493413437410321146959769407044513221372079323116675019380418454181901904630767756169535602605135279451579761374644422703967427946169649230633741338129001690100923100707409163844565608304507030498150722120220269280395326774867268681252780379570303948904343083410786149488324964438207455050453135813033048843389798950224519662341273044689507966043448824029436415308221464751961223234976148952335637307160687073905811396935748005688612802217747936346570671778316561153726310453562511788267163609998447063989845201682864560778038271842320094385529352556218655743434820730734534151239732747293463638830675159331347044020005620366048463583976874677971764747558641072653109789754702399517637443759773297127739080294368767632563069056208155706976511884582331843445667901273090689814338216911397752868753245515802492113878071232254301340489393512167322542758838165938026019375662471384300203408645348065660253933050894999710257560988323406577847546136442107781732093788700975754944707315503620490664023274830460430792213161434155666579632914824850762366712596104797763463620568947513070789498606976415456987155645868363819887733148773608550611907605655564195343588090448277732555582421641643003157275463207254113904935271821137106643436286965602324373807908788929127642478599402407687623661081743932104219970680144841516022818533128725910969609280903275971352833935985254836410633709710357119176445097468762035410123476406667012415910809664951609114574983576539349787956096000721390889738526811099557443296475387046027019467439236032145768451861819913017367555849719448358543113759610152781041151637132677593158013667520966820759245077450270165101618058114797230595035613266682597953265609921138576582668440559856606842507731884883380621294302884379701445740320338567847568081459435880353341790703880725195099228748402650552859447036049617538785635208016391258872492993667461931042141090330131234189274480967117404595282919621262630413185634722277571306555069921345901716287180839570820059948224151369455091921033996295213466685454842415483445869044222835771879138398426693802019192260620428633144288924965609223160594366150662664804691838389104858461915678224157983941089463025486682019528448952047348787255692035222325963658248360226005666695803141688867993153365968137956513766990802873570650322839209133103272336154516349460561893348901537696092048251071256457335735653877378664814999619471485650659875387533288379980396477569210126990867936510124243858533708230208448444679614849581041608448996454633158517469494530207572977721963574574411342421457047056155764046137254088143489121238970212997946561564227583613905345334909625583058868728509281873999132226163713686149413128863945094873773205830101696816405879917846669253667762688259094994999806038604969405619153819186143382873935951194583623369059453783089470989554749189290625399524989659359865555469333535145514919049589440339088984000352625004862341750285164779430632780470651126083822538196832253267984922318285831254320276057160165351818249953503980253858101618460451082821740165685238695737202735455756267945352821122214589590595691347233020951612691233011046097835980177708406206348542274071255909389783312373469145858149373374127131718241985707909772734755401537745223069500827256013197999243100387561349428537970049715408993474645741820453203670826265360623931241091125018378803550789368927892694890760436753703098082136561947938476969283942750521592837364187431957074065520450138201330002148551218469315669090570032351142635211098144904191710694758026761420275820100556812233831318042552327293128160439990198447199511544773261345485723762261496805925047553339133876703157419160021298537247417240041915554045624245860002046261414088177913044573481157066713503314073396467877403156578265826070426256548713383613507423552681776437870781565024547340613132133825525664865541235308803415571304625087809119748302910908350957711814151817422289831121305635540765992532064443596826405149728299765378046241622326652852950955537608080753005980282116516802573405402764290075292169586191741130566573956730563775273184040283517773374881513319842252470815080294305628194899598367701509886786891070902032323212429504569547137445581013977877979335498546971816928539765206649852842885677021700437010560854415116662178464617477010576784227365121638809935989471839154874374682104016157596894627278927727404313266606979053073138608306568773498860322445150322870389057554508239550933247116167051051613286195031647143455215028495006355878176585704010331392577067144238231403524815209735851360480874478107196731508912594908524671508946481624489657815571318952510565424037033880291745583721972488416082460644113536160797859727590079404217944091567745389034606318861971041252204172917340050140646809218653978912611396241102575006222195244037527730142883634169760573377545494772009838016346492041975766280412811510410096584422988445808626770194721720645756502440244192622765084498113918425154631614486638021778280390024826463973984866771699009719652837126735798717454946366231236592389472822811180191693152537570692436822790404074760372332281116612681387774338331551486205852139833660679110305343314124265448234380800450504841875749109613777470328256526789642304377511602401412698366908844699874811481973916806937998140811102147392799153000340408634370905075745035460114754878657184432645807615484405540932893090931352634647947894667607673707131059351224629464924129454045040390310050551198893226991500998462585039607913428086104292462756725463482363331998687661021679708504177336755873253159015831420133127099462572675698809071139023046689309045598244015920222242997439022341946839207406973060539149887422354966551327134233183442087682621677021515886924399679204467344074572727497637452506038556714394518758251510768160933087214487150807778934771123625968500482599792058635242958377797400267929430067413474919243423072461346633551283098360615209934137107031856498135288193551856232581633746163444940095926078570586721163617632338975959225896103735871693681420578840886521268112274611918579605362123135799807771633315208214349962935970553183600180626908443577444916101086141248625700884633298202475733690222479591411294251894504906531365968149756196291385805300947115718924208801183445197061909893139402159155536674274101172861106138190401486311052486367898876458991377808995693432498527014775428757175922322028099217021193495253988458944293917209885302878531376052097046685656811039217866138846754424604170075840236652375834694401349146776647911909352799257957627911159362617392577273051446608594548842667675726643580438405583147879945751323822432460881527248375771193771755477688610058450106699895386870448006907900903710055576711153417236613195862952488060324967849514423974005999421851315538403899215158279045226661105283817271121130046267019849556359162032824234254564226348351728075066819756805134612377869449043348009765509873896971121624443984700444273257722510838125521572398995208511792502518966899079472772973036240469589397291773316798148106106634147733852635165141325079055015880716133747210777286428642990474392556994082800148038577403207424463643505377069136960503213782360430401889909268032650832627152084661882967898771484360776224894756263797493051018087274264446578726240657613991789650447818474174056716421604021519679913935962872748430062069979502696615775084384225838726058322170260719025245960547168882363833578134490481737951662247428094720525749997709991261145387557658624650914191272135009006479878067726010410908843195762854702874150667001082168846640621713801757862084471802675269363851073293435749557714983109963885507519866174280933441124378133654580227137982837024427253408629798924377437164625306349482803173320832522828090931466283526221368214214267563227926647439843123482565054652294404482568966477337025191728395495510839424250399629769199998332091066839610346536570963139878056218031829490638902421223724270002770373412480455816400236336805844551602224399119067989545402177670784414219994943798634526431793988202858366881535602805811876057643700071855215788277349520065628209139468038710719295731837908543955807057759721034943882639478262085759587055210867470796315690521558560372706581473958388411227685241584921028539848295035355204778535613066853183328518540135757530638735873375434845345950207612915939860672484312014490334964882296033804468206342821839259194420557216513991828981280713269370318803478786721316182439013825041862374708173793346023485268152559381505837859202126051529454041856359915204743755055764770505788718268254551483670296929732916290185482349193961129787519193944709706297380751924110935134198390934895957193465431756829242508865455006637576991214216063183090345685397339068784839658912328320500428303012200430844777028854071202352172813287719500509976864121788468745774667846989406736486801524443196426281733444108130506167147250765513864410468777166686009499988995013006797713022886371990465434153382802915176319580542350554954600093143027451382170879540495904943627210709885292922812562764591750640052420219590968546122190584184099617277598230993793534228936680276967008642679943672020021636593813850266846427192626977744672616197688580335418677955635367024862473171178848848589715791878609460768102032139668952857367553719412192253800856764062048751916982909736178358908234105828418257603135404284903213950200023679467586180406183603698567858524263414832757185048296551069946685958036846849300598257198099620707829696357906442082369673661230652249101981539121232927778580587652386660850360005148321186016289346816607222443895720374994807992343487791104204186328455940469948794731056404332871011357480231009725110636820462403052512347385195592472569519208441518413022792681749525609556909046064097634888926222191913368175430318162206697559829525553748976170002152918546843783553155640513975477304226535880775642793774688389115404861158265002889697064843582791401867856356097765183684411605233353770746661164832353047766451123673509458878107794045311653935348781875130103304483582573026409554835783928639424744949248365493341023411044433953414162034938236428385336741852111297494016693423478720169339124835234787783779151848979806952170347747745273583891347933090727378257851955779553073609109279245234922055909000654324924226073544065363759667448513544578581990401648686790713999166976899038263333145388637528921663527526891970847109487146479538631660206641341063228051907968353160464886915023117806299205756938179430601680000910192443499227776080809173600497463773065717053455779528276732957384551367621933833884764616134095174677693089760853310466261109425767249888666119484016616671375022634254394669315925587763896589400870654892762886561682402374446644617526031578299830595694206217257175105193463655610837496179679817447036196320773143915273316427584379661769416173165940591426980309264563162713498105728594557928018793854637813600444917251838337097206336411119654245929413874234277179926950066930949608486981113219992294738769221781643690140276865936564155229894159858331198804022924777135068484003197391517506387747527142662739089096226102307571758075458135138499819497302207089557194022119813624282499633986215876524782595395867406829680655861541980244128390594733226731226207318497793934491956988183481406499425405495282646653449277747588114430441390630632834164359281552218261964851109894994798758840149428509846000370062830538218507426564424116251070799770853335492281450831345720081398275907006286234736645440838672115197124584103277169883927157568930323706087430650657831260411337182641385901407043625437235665864764818680807605979303261774765224460993913728087654612050704135949321823076704959114235620290661567379469965445279849671368520022003093771705634934313603926146190609116125906833019156280642176492924356617131888640625739025200248385445254767760688007971110926039858295836394727113469014548253077819739026788245401352244139117081906573987177396847443597208406828931731857371438966123988614028455399950512503071796858284491792527200220687364907965987635498559781254829003829214903999583319032541445966453385898451818333904798698271182231465456351458231106144567657086889276887690751565391359924915122407658410809966234517343948164928326999160155533855546330760514934310547158921971713483195707984582924349721669822216954663794545566215515001147755083757849142110735244715631196464981955396861587104563882673942774293750315824806173917272451837889489798620206480746518561804338537336454554043020422415337611216347391225014443621042186855726397258016815284928485018583634194178772735456766835918438077157431379485711765611987040860568450377138500314769114914124055744574625633551578818369836446300745026791878280332769553025544339571085492237478525911280652368001906439034408038053064401069533351795354847420076954903614322838785510937253369826097750454591856794105342501875841777035299080192826912274159743519973338805915991414983239559337571183099615547634449645295449577221473105543970594456149571916679396216778671233521340744550853030709858988573198230306620110849398495923182896529788049191533719511778527260414262080259529484908710620920215972918928186775079664290338857813614865788362407458554060748995323278341486127205643916030624280235414006409792275015418093316295596276667876112845163661651741244327777519023044404289583841305578749905287295606845643330382193644209607718737624907230005502488595917691683666930884141828139631653310353816721505787955730801989214330925629479321661377161038165871651231322639652304260889827820733056474731813321354441780118379943394355318325336223848565296614751078706877502776134289025192563070550468803062619005085117371438793884290339318171222331289066659971623716509358148983207696643194675624026196781395126627433338538355235341177607200935851652055702821800627937226377606927648532660720163728384415414667362131581237310594677552325726730684103152133818860491616081347829384046935448963053517496776268907178470497514501336561695832047553939283867466437068652905416406292607291554219680776385848816244267431830507047825691266443317999164739791908047325947240494950529307556564845845299153891029182164154627706739889465689792316639652779753994289409019296980509342518214129842879521005355647664651041100382028465360735872992147479642613469729324529124932345872987196870348661847647464816662687735015210641964779415523248315305768594859242223403421769398592090029692492657805902753684320109162379314179464283494398172747528630074514396210288617887187666824921362492492416499011552107559283376117620832324975534036826512684806764801275627600439538725523838560187590072071042262590531734999956425926459935844874794404130090049449420438152337734457415378297354697579206861859202172720336042324631783740914908038027544316163430959182716143037348888767335851816985783690465031417631613232986638059922433462764089728406491534753078580082749386766866242279776933013011871522877641137682380690663176111923764597851112569241315437540283085251066462539484153951031740654788540850384298857375705422264084738038630711309490745274927599999506133285946375686960334640108806590809823686565071479928220964239574562143488584265774399883143791691953371342458943606152053904093331013597417269947227993157369733623734285941495229071954525162527098157133482763152392196901061333054774333866632236128736803798912810947551064676870120798096165071824755442774125283214089754391431273800298850242447563013842900411815607443546834677544058170963908646798421498777887125376370531048216004075500164662517960115535199688495847068026567250035773374102785621521032370623927352072835402785984354994980723200532077101920152533490605846989884853453608704826934045744947165114326391224588742675790947394796819923951896144978822552781634485825876303252555870450106867896707040765779790278168727637380053124876611552681239832873074397865844293992293282565750019807393531314607856970459434229444996713736671861131268612200760256699614278154000589906626763383437006575939426530867729928076544641238792938182905232451324907743439744343878616979882959101252889586043725591393603838821517980408881867021935328634383735325440108991209893680774592427148574561992734640034742353642731966668792632309842369177137382783017909597180586276647429346817342407996766946415965305101591293703222733520715545426612383494248478950081080189541211610779766622309406070097868942931176626437306251312032765491437512006747603359273723640908404085248586318141877681130967425532754243552333169480812596096736645226590012477245851351318333648355640506912255416896867983962041965357284993074985353212037889350958118409991370348304611523920207219433646876623547429793020235307263699384817964043863396104076669158095077961307475259855807472053812149597129418081054238233066721623887686819923221574881095453860630112037399090988557197744010000215721844663498848133375528089084566258401351857644807831142942528422858930600088187837502813264314033343755337623738393288117595545337864950904133661305342805066092801058605953066526997498649990786082813156636627914767214124381138934553403103555084797830713023478951665017627363530695107640386044935826448934928275147680248315348345543951737768225778721316281443784208016085580780140939212012478085099542077136685276883176623113631954401025308660869247058614026557284636953804236325240423887339254026942402503069063411591139895705988111066706544298377399333323329140979219882462860784450973079420832780874410373147429121625608575455947557942705749826799770896766513318171394399614213168353395688955402753955318983499310108232032817958340114345062273266753712693921782390763789506157258207776828780740496692682659003963571128514551621292365437521575283129450083943658618678642417053519272921767842826799742441824309468076483659876889747906163736127310674692277386728715966985983543307488234577740670530377331779012441894862014449745083455676427254993600593353530656604336079624815310970420494531629291926588925902869650212123028508057234640271016144356291089492706743258189774348569616641518452741269571784615341755561664363755423549344126566643872801766399985313540537173524054460396416971794499087795000973490088059753726597172609401376770706649084009052720115520527860207846571000192224519840692600660155067284906459001521642720416874775862495626252422806695857889460450273859370338826845896967158591735994024233279719297424002618737700518802682890549902921371394099913444607326400675641212108463840915198627054477755487611392733607623749551900517071333681091182881666899152199855309708944482754188331584240734592691577959499921308840918389972394546591140342080298285796094623080081071569215464175339091225352079036910325676366720095271356697142284580000684537152367897067916987429920331938828004152946779592768725058221776909117692401515120763048701801575241085325992124761165469183001882561735706049484507615557108429791180402380902105848109998944202917765492420032263237746896540016259356582196185628465004270775566657570339810546567253224782880346481018532225116410736100403666475554863702564134302809615060373871428752301517262743674910163295733825134234466665509682981641925601502612180870339989360934833716554507174089084167919305280196991666801520160052948432002253220210872335153657505343305349681382344451235222045749666899105114867245619992890059262468754310870975268439031780799621968087293114795226168129749466829811819521052376788583614168373765620335617132962574688914773031818832163158195394340919562867146536474795535684855142480289158879932829172120794702471048059743548909965232794638767594603385510007236472625037512319952833437431953010820654439455348627748642681985154217961155490284895687820979880670862321619533412202468128693179905362483639652523842275270284361381608468815521997336245456403093206302295526830803522527611681359891900811370698722946739573592982855913435974146483988367602014838605831291341813164181189515560257779979667422791064955516735361136059776244811433916907467659919681373936305772423569212308757931651843920636510470452806936060334601976445159530973728133464928927187288564348492721452017603167909614924536052594972625282039005900220693651671850918643712795286520893752256540670471247320197560147429396020944910426589217497641467398437420378058097128539059524594968396656640716398138202012483263364739729615843172121182668019307747301924098199974110929369318637839433342158513909883162687999436880849665882866538796629802767970348057078589208389883830999559137803890098809531920843820006240440256922131713576007726940682784133162330551115150061811876417903381916569631545586652441838630239435877492686626150588946857171444070527014681396657977056239620658860404779958079412661178637407563373322334991714941923036892674484266427283180235158991062693004455935125393983660992077336924555833480618012787958590633947965013348364357437648817152882404729685153038792352013969642245879312069120241327755537265927491082681359336442349062430199992788093315389031633129233936032411435542448921081639371817735276351810434051118432025534446951535712163517533250638058618232604853430387488243561646914348681792502530447792415817290877967632571787725092611221770607861375765586650445091999511863779679359369241007818609595711138525893070011896332192247884602376888808778231970161919824839083149141921287850604643452645156132112219915143982277559620613938807217261159888346565312269747482803069373452611442849448933169762922948082709092735407977841128114673570294773676638586229764149689475638675003347592356828391740674738307412794114912712930232284383536357495036409205493427615792156673957356947735839369772738988669387196661480125696641253125704153507496661218502600107126417341187882372598976056707693037528687259271786877029307237450908376553601272435278187738365278698542148017578992890547426071483490132501481741936201095653894007299388735575645078176371151448671826776959676068992637656735534276538730755640045801562752772343401815364259174244057300477772312052845060938209087426197687055321198974630693165465731557021735274876965744888892397227159872505383031620447075260719576959866882188760389969013593462447250011192195305490504208654408341966335716388901622547049436422475949443627761222420281290272604281543588342284725358277160453048572871009549131068422261578474076436844314316175000882229461988985215341126531592008125658126454851739607024039575706627657208205775008285388742189057773818218472777048250867277670577716628375783251678849092641048589666969769377590979186317718072898234573870425273115129423771723213984573492323687259578232400850742029352940249625126912876667206208975839247433431447808663958180897900789359343468021611625661497880031712702340281388705429895578192291323908810196542617224940509009493364892473475661005623233047109314451235567713214213965254800050083517896424074629086290419868629412343733518058870163697125152800377581147840029764598389514742897639061587277448635949781882339769680613495920431326580930675388764250251819106223581147409570819755958777726411135791246973168164425332275927536447755686541141933249181810329002606410225695042414618349383110430149729400579659230587762425988177917468996424593538628071303558500471829663251333003758131844909340544282949914277120308437172539847033177191358838732932884400260131913050661941997505616417322672449650940260002364837296035332887469837834368142362591877690773515157755993692199669381896687255122604206310634212987772521377344245806501806798922152583484651918397414927275648914517837963321892100952562879947933806643073673469860968107288517360270882216831231693890381375129988424108735555660106218162101353628111784448410721467101642786572977098864935033761652292868945279397993182159759203352692997146622649062368930447440627658985442869028716765646599203591204147298707601918427715867178832569084455007022505969705829111527354323737674135861644103644593218685874899102772803587734648886712834991598963627559499255616022625157806889336429318199733130050729416253834286805390799899170047538254375455204768567823246893018720233991925312518622462762499149016649074842681120211554921641915784205165833646690432352603400543187785513199761981341771596493922938255391345642079074747920943671095779252847569635041750325928901880206308210811107338955972132962973262098092942244312912038041266975665609329737314502686873163265191315940235619622081735095828955625351124364393982124419878197049460188291936698551315243389680942490564724588094904068758956759079241065215971091081346096944196588218129526695097704579478040744711770299692473877919193014877760597551688938257202076398503038591090357001916931382102260111200092582280020979872925104037864220550831971569543503915629595857277501129519186791452803659077498932812011734682895675553917680919343455282998432811471820752135592358182124960129775619346918377446560797320622378491738946746104569763451832003767654646436954030784211140700576909217149311427441897381210119083839213578980420302364092209092123454678213221412470950280793223650524936978914223521988423566781650295934974065804873460595507328238309409632364840068378552696438194969798705794180706715952008941056864467540475181028574136722859859238484192337734065617143686795958131683493437963735260783382862076800169430253182976161908408814415387143306966682147208245691957495412824101399674289749288977644044274259564993145039556323608529340364016218224229615438092488815722925219530558462521805826139681966181479576178219579131136978026962364602633055426399184310921385441961967477959403345692535732462903896047250921074523397592721458173736494905362400526419760974237533312713188928328447125407658239593430228338485235672466323874111588234235470235510611891092332894432467746324549214092235466236601218404302061381628018994674789908075153367912847277838079221476423311784703531069343631930862438918119007895017641348768869998040830137077526905276733225107222035763096584145391542767006876544149149148116717982717069903206830751728018903261776993414449633020242268310652047478726129728574476604441364137691621078229858024384309503008549806446544861991013988915243630249114227063743655898804853763851203050198853251506541944481437925682742906156505833950759312603953091469315186368505447744493389918749214049081853161889139755440937013163298988843791219233262010489656638293853671291639592259517779427392133926238992358110154818142146015492887915785025199880630643328514417331577004734509430721019088117953501137566700796270501279064717312685373720805862597363085309656980407944108029499497278009708168710790097878379829007703365244425933100244674077049485796053853464145725349944493604949548846907554313532957467704386600771802738823715143088799680740419078917481992583564020928634190735826467179171262385507421537985865884573572426725986130539903001664946773284233500174779767990377275608232665996699306293711143045806477940462274668232498060982484101852463290279075992000316500259051772795307153135222588951653166849103113125511342060511641700741092258565288351707592612864853167107523250411517756294635892249541854410801643946338271701583860026156636789379817567300401068758860882396012688090637927893235006695285161495683671804909449180833011784239874785737743335760370382208142882640258999115795114510130247954948639598095847326808264707258380302610020168738766416310962783022990945424489690793007256237610317735116822475284199669459561314752746862218743971775639720907684148383658521614361646732114709765597385653089299575354495658223481374459344219810575667613507387404513601665408444084604867618194649741081736163350896367052001209201127652885228840246587520359486858948610855403735345485888286697554238324184862217988506042641494171376555620391310549841295371350986714983353339918845890853790259182245844642024631791081577396765867849250925104789472511361453735914041530250579657442703680170937116369645658544432798492478573177889097795036981359379227344495665257918309454334803016906483942473764307183236294370956189408307010506196377183426153283546967128022178870328959251514486000184326091930828302180759477717126992229793748396817168609162174298581613636330422233021968812051136120898992812574458890057911833807680117200019587281793212455483099345259512885294862445081837986573048071526146330120391832692768822195737922678174564561146103634977945219130022694700597820598223464373383238039564037819489991720146581917690043813858810796099848114201827661306590988373340282602341068621660532621904031102532445324247631988410339842227898279184684603016146189686505116014155451230238970596224949315568233153609969502329450443654085848331344968417595365062125589112282118744207473262939380469209613772132720915725556156203243977425607594802243588464874739097506540601674406322323058274865821984793226616228895904186298660052704076127998996337625903926871715018429996406776647969885848707771587924703221763135901444682435019429986003009019065112010361539910432857530860435747168625321684521512529630864752447529084949693727713835618302794279037260003072925310655736339822277573349058346711554394906236685783295384996014166083852007844581343721263977277267743418213975727574572251799498568284587848662518585768014237775694106966301420403262165486624146619555654474193953971435293451164425322387875865843410570786397748764828965131028355769356381269226302179460487405782687529297329978844155997203521430215476832888109933001755976620053586363833795619486659072885499128312949399265582415497389609842838559903986655910218586294306772204175007539832334088339759101953407881659717515870701443805991493418716633642321335827204096210452508175494382508262563387611763983693003975864053801531009774268367647237744348635139618091102945754168515424977505561035779958575260577432430387389532599972510629900559327553086900890795858911160822775908828951517802425563296327584628742913108924282639048314106802768490857140044502667062987300593834697811607819722893856707749401018921133883232042752343392873887331302525653228337064543427498861249406968961716932928712860051091052062943944547146796297295349446363303616161523603051835777752144555287108426226773834315645576265766116332671147178460493493998751328355607685550303953938183004302231793271984543272698673415585185483360287201833538167997110823753404149887960089392366906629016610436982456168798538473340606513818959388226012224927065445848450854953756004432305157077745502113565658258754227585827737773357780244674811636712668282496512956355764620987344091207717429903593182403941739429809752794691728953202678087323026624464393776374712307246340415843683513920396947250047218935440127255787461145732927443126908671636373691763176798266503633595581782892768593992162027408430932547939281228519981519302753817383583937754318338549129978359897780449522345176499884729880227104918302820502757658968884431670410312866092730326752251584488097274005350284011596371994166253521904252559877665363292044761682514138243674560045786043590326960298399961677938729618943176879449459804449217350357169031616224228555531500435475199008448060111924085585069819004207503585359487630147777587266337517972056434698761643142161111167030353449071048840895496945276548944140101402737297207708601422495307777649020585971430708672607839829239016975354234204855622540996495991189807080653743389604881405093624187844487593114906173908192746921825490137807612049036146367801201347938961752676676430202755493868040281856759185772997984529615165116483071449936760589000229680637794120262963772122796502882510830723894794391493994241394763231031889286591567228013485388111218602968073921476898920103343006981312265382509424968416944123582987307188671412804499131824495809492885282984470260270213347677951930848434362093442346164788573137621666212586630421967942752278131091882068554323460758130109661935347074463968629473226469549818171287269553646548119960584433339870645333873684369365573992145153143753777353714862515129752343160485100192049133326270717490082457577124248317142595726384132468550509368741448923000620559664167179490312639672751083776400997692450609138804431999614155840374420928567554357068268049497411254805407767422544765921792638716354520227876531091022661650072502233583953677064534848116052081570617968367133923863366704646555907895977039873017281246826170663749615970677300891422011683173310665665529725391728322596510474653719189308327751638284073013519696717463524078399572632523119709434229174606300330613764986001725032794462190506995461110803016934722695767837098726301017184683724980360229131391783765229258941818891451583325664784131474265054241476644017764167999884973727387290809522411465996548333264144744315100743705060857988457105099716706592296836341730698811359371929167288799990515601294359443945689178059240843421739119803715417245025539862521019252257984325583532733663249420525098159085416060571068205248176876559390136292144435864226616166801255182013050728860097388420289610000409547081709088420894382301935096810370392161196393161154206163379994886553375066726250302223417982269978573929986303820609885378781608687020228453071800006199128424812546660204765459046496143747036714423109324362201465111345006940713145741235685755668613467724186330765524492364858666569898301492926139655375955019795143913039308234060404699879141249205757330188497530105501378563313072325852174634425597673148504286872453645500051656695665475097578295251000075176998357996048285128981380760674339648273309155202719454355399105336565320109637946317001791919077772898794941428553930068720515296084554740257892739035333612579525859311512448955494159197695978264866427339190549393818911522630981690514597561609689469910679569796680416724398944133702130584153848987775062385907560668696795210746816367750982374820044952645323897759472327493496074787765817815775794219123701119100592393393610186762590513858654256934772713076338155516186643873594159489925458664616960764295703345289370322633905116005769165344975716220722438432354299816457286195597872917346460254334511434464015189164107124395015623924989242795289625462389498297779644060741939976315741073524458619105791775309725733105373714859370406157940019630531586204493739646050892780647370605442927881794689441789694557273775588098035295432276428886444202934908912824068821748659745892457675364369614437380415153277463678153742060654592211092870194635474741011463585207797277015126333694326258980484662536411695690032417241014480201740369182033202375237471200987169957593835533033633590976304215309450418348286641573175758111024784723625504586888600050901968770158057538072867268000352033130758912208488112971227589304092445092526014260894731911227339730550485433140929385508744380352449363272390877886196775468298558789717653763007079821253390550398043314281825580636599614236603314376530519512019458775251358137794823146801084173391433536131469946589143727567413385191108455699291249411153991624723636752316651015782656871177610250992462334094522478069970179611562557699669090202094769379210167252226765107624623876546662840051491000261412047831266794087288301368922691973306965352725257122395263854629048055219497928470764205146425887600941284916253476718686427848033483211423903013955268776448542760383627506188620051375199643996261508177434248325077622120880441841155852694871787193832638105558182477739790158685167839596626853836021127285587789304005553463382077894005590317591974253799814421039638664442372924074898667801525578824344937469162369690351476158270786273073815701134482128683734618067749010565650753138041461157685159197519764487914487373816755125214299042948183859906185017563295343842583819811975058279373993124515439037632205064676483268225140491352743545777092361567231320329006899599998665479412532877762119035726873669347629003308548577732101719338707736742236814628307371202611470744967433082414701270576620409596800515769466982852027058836195759359520235663783742020245282160148068873383031338116096740978460926549137250371176730401096900312392397730323712347564580173706451632168682177810444401915198093064662028795135033077665672648419805535300177809222623924106662955725952672312678107580208179879481100742414510576574383073620694321510641911573552126835977779066438477261982740288657267279517317461984994599818568578776696367561309913343727513218925130358708469272975934865063138661050913660696400308546690841489953890452575463442335397644158931365898955962486341990517509841728749025022724504303707118662499195051970777447216798242434257847842395793107756557694709795475086645915025779383761061281258161483122707279015372152768818743167379677388682340227463461144613321480006321478348175703495930781240073150465695487763585657550207883617148271516753596869852964302848432938167056894610217819883330899718168197260423265012459194170873311625491608673864717599604496914996501623640408205286087482210845003489190336946685287383846998223290717969455384673093117702844739156888023258596747733783263891074252152500321823454194586405785982079203311150542903789431373074703148621089439822570697174966791869653913811194680817750901026406603773802564515126997903652904514227567672519866698771374839176659791501368926560089660769910308338898895301132424758517564165880483617029475563369284390676904311317693402311339651765112826497302661234264722859242396853457398560517205597575963244231698391996393596917869935529742999243935030038892852814463530466742282974328476872771992695053335274793929148503564079723984934256066375886003238980387225050146951285926499872133235745782001652865109617364589542542802399916859956094887630767855681187375446825129388318999757644036032756305630275419832247572771240880999700670492896220736863178578872149463550654910363418403638841613164726821368994165406680814207270668746437684489766718880262678958729086403450311786905214622087269618442695704478665325836775745525225414107709330680954367726423266772510436010681003738696209325192889217975586098692258798264401432173645259539534283875218041830830815775522009335897768445656994934508977689853963100649607233197381627960297875933623160301641336155970917334595650150738772447665374607411076099214289404601223497164276982144607872592083676681549555753116345596536582097932023551509420561970279520917758723957546744085947861680104753468394863043818292433171794324792620454574815038608433166640030911214805743585832323366396867851620705938842375925487288272338223376494997892130352353473812204415171816058846286276378186516674639807407439632601895952860871465797932801775925019780403916311560688568100725491693505269191942176318977038854163873217185274540400988039641281753125749784615025260438587937107421301458984420377506183752480719565324562520585911385087035356180370647848005450432515739994363322671580749941502658450001157959185099234096254978484100686114887677336013589114593670359936849744697073952802357971406330236863080994779026271553040161379813058573708586740452087370592555035609783754190746601225034138421163834072120893941641518879967993112923683994793892972823106303191907012477664942156126640538224157508868815399460363530382583869374872594967020883883598988406629316100596949710483560735496974216968600851655932522877487990040051321019737200752904176294237829197413129034279957096743983310553295275809551480625441015417218027685694167718915857955518594220734952405250848711650751924912580232270021399729673485636863461636622657100262174122754867761773453468222077225831384968283764752896179330160585557788543848503328209657916152347667553036918535265440170610673893987479513968429637082561631058543198440831314513752638988028900332466930774177417510686908336908364602417106410245379009848229250210367233406327721549816586103000066817009341971097981792733929543797466398259882968195462781313870826919151835000656355083388186317646266401577096939637057180672485498308146813036370286816000329834008182019791885847949993049046824147295748696177611050338499899792161967626952454247898369488151869418342425399962920066876722470696793124772504342537741642425479293416778866015794759422909424242186087534259805431061262990739630293928813101005770032815721505304493432706106215700225305983482934247072752306043654925325766344452771778409146579180857040779492591642849672465604498059585102097041532785965897237451244165363787832180493126292585048494336573126449103537923305957167475938520991216119647977449388947897920635042444676915672106097396088539045149199511359207944616854657559005680866772396277516932358823246288456074506614343773126009241004977227970821560581428022825477259498670753010561694477308964709966882092432056261598251467694753193903496709557069400643641053890083980824124638347698904123414164433716468194120734438622629254467626085625126802420539769711471042051496306914773136834782409751262575524750916780468553900037968912830009506734138211464959818399154656727471849546251897212515041872094339447026067432185844433526111036805371618686221835928424858547898454664556644538419933364939408325484132036230616239078514539781740682704719096566157994871477208710275261436434082104735995638367766091679105418221139233062927140567656278694537349742892111322952108044954967404148249421400107862200594403696131612989002824608046087098689957207694224016824687430393101764923751681643477938034591892776087232236478992307483167885220999797559099773356588452919263518979895811454033067799892248752024268652201805738145967045287625101562546274873916587195782606485731964265835607251784853090489074671153895495339094890551115715577451508735943822736977345909166488501840860407061486542301427580218654748755239416747835174775100528154725694883598231190893088118446372172509795110728014895134761849565092391304801721534692200685579002596757584928094938464341969384381872069230273937403099955814426661553804061179700277763335721961853290840940831752123514569817711612424349454207537524157225903954333262413496985167308323078852730447300567277577091886922174423623598198026009601898492474827041367143121374230341252217637820116246655385834509208594889520666092637965593214569142795049321057394078538010681101126768372662289947333688916526627600168040708750178591974642421472698595774638276571148592161401976465610867193640565404362268954052295936651111735473295769878380763956217295811473462391933366877176661193485092900249677754291170195421177784322611447795392446420991500288731808132252176590149238929396522857240318730769397644754912991881481060582667207001346671349708504300996606183696820075314449019913543372903161240661255676294279046353161089145252525895889161868464526559725987496323452959847739273225887338265793924378976894322658412993471046513482637719629676352744332229367208670507581591844455670511035579973095202926460499151024898492817063493713184309540871870065592241729969615760082759512102609843194893702236300183114347509659300807748825357646277660275921340480458709219400116640380550740212106484699651997192528991583656813723674960572364783877833819244954099064173766766100198983825564169961488404037674202482852826287444711724803059876346774545888494056132105825305177160360743385744060981798278354069581053872631847809547986004551859737455518020422954484180631357933746880806918661096516188518607739311126082525921673399631693516228670260895936662496745040862513111140521619999864075441396424370261403319057686559756296648841892442000483799626257562461577086074513869688748503544293768931641908794080217298819512619395593643345013705783420330319458950103134435769509532142751481760532542241767696667158401904758705376142219412931758950881840357905386793853702767273630434323541538508708075193612986704616306805621701436899405366951241945298354067195890680698607958374261465266128929797526779676941634483028196492727557066260073571860825344859092385340673898740064418563670702049945150665038126857423329997111411529398962254696835673222463670013094647570738474355494417832466478165174102296003743569037407576963307395689318638481953602712220860588472792062023039022313652849180820962968422278121953813434733184500166482507029404921290929630756606325642305384242336282499676075170501899398810672211812218732556448881620806466056086367755807973670067603829096444936901891977643115916155502689162906917958738275611013361755964713418885047406178542166452145261908303024522785821398710334389890436792941485872611416087663723868157363956298901832301600976508307751134698186140484921393840646525038682601814882714447563400838867311626932921317338291394286585338804943905044625923695646627316902411506602694767670047065005605192025112416514391821247420967088667714652228322100700898185778878866050185385772324129668420256823542686420890060039196117907869490372943046237563823139045246928350894900950132849400393075415075722770442193896131466960790837022694505243840068344603081620661094140796593103931176827770640136923360496890266938940557266873479033706242610898613805252925913949868945503172637771314176170159310572389801228814205550554430310179728613461310562574595651070235121843382543742449377754518680465379356143447647744313785922956601616059517189905791260978135994616021258776365838757655694571894620680382964254837952912925266411678366273433229083829464278915465200882678389550970467609039307968677500952756864841237666504307958480528354962680511639945330525227169708973348575066358648733522125189073347475225415560488915248139593069553209183817324351468590266340664646879506820887190083092949578932457629758366683085652974820130992330384642359564387447689681461316506524768018654651380413734524622828152078572450977894210200379627880999793113981705743760840100466248933516755645022154237794203057964246410796655057063840926375314246750112688387142009930750922528351808401119815341721340796736590888022627575801214149770044607361502042788355627543836219170676321008856222304893566657718829533504005484804218318758585366825890517907782650070887914474236294735257621172138064804746904943457476906783311324899532379649062520958354086974115164180172539303548493988172695405484483807702548712235689276946472040127667296906022898457369107338005749945371086225224967009975365770603861524958027086296268627215893902477541173493045638228648672423622619827880626722675419623401743337178866901184243395409966997968920943866448123717049712700936729989579499662112932973781128019245962670304289936104556347876032465429002557950068712322711022155567151998353467405310385850114036288733241386410273273279613521223686153339253587076357738272339465713825239186997335542080619163529081429931665608048636467843693078442146494828977226614060506666040496350644380799970666079398551772569196234473377290377481992038493285712712750072789746579857193479272879297175415156377235004562976311082039960801186855177324002773404072023111917478848015666114027949461030586057597120255380266844798222094308636976130214446085333471701653086745331810546144146287533759732953813712391794661436448750814807599108017070047450708789626126246054603071201494289138777830552700067927884331354254635000443634572635302144127472296504264882871593559279729867389241982654149645679575028907647511891302468899532992786165852445443408399566425199135176050741196758809820593262931926998457540171792907027794420576727683940149820904320702750595673904591067582449421765822832822149851991336647680366670635587007604300937853311187115490985377799331943499568030068403830422924394254548839902685211610689548028115397719630326503345584353052882496449707076757377790117398007172195570487476355561420174346180745676446770585997314437204515142620371253510229300302065854250271329599296717955037512614871012167476307966459941981004760373699324235202754561335419351296657152615526973670164699612582898739802077342955257502291013453484172449451161446889947528251497227485881839059831530698610966069763202402303926239062036970235189637126745268761500499386681807772486793431145274892374346855371181964862563118260827548703297593315972294910511658355752181130642661008141336217122352415069503853455541670574283158895525416792964149686306123905380907885806845767183520503126042992912330100443267633833817173666074098338770236360380148215453632773979920515320756109251878134408082694202417308381613179492782684466255834443045279058456885557814330237216217589156354566912641999501924294669697103835211736755186371080459085665790655571504087984321130966029199689329569100965134629861224025761690481938469704043730141121770967158684585062283307032080193189691940320015766005645729355738881786224149623287057233190286835725087659712278367614940936839082053040824148114962381358914910699692297579692274721530714973494482382735778056029066951813289299122996875027339783838478851086356107514248972831161560709105488185266724522144822028096271171964438663911644051575823009493726335225280819385630455712881366464184544625784261838896425688569944044452322749962760957705030503929045562374719724670685345155499896575977394862428823603673427018823688318979913458896436155770230404323357342625162569290448753443017326452553333915007345919476962202349554659924892238696101321340640048723832460069589193622461834939213133272752946848493435098539392405266977087215035162100336648545531658723205428848746056793707383730668412785544496695335057181334093687864957241365748367799043979679684962724248963801906449958656117257198949772253107488911479577305281516470600654016151857262594308611641599266620104836694465509883825063965068411521012560803217258815801197222468396152167239326816165814932498200204234143292854559624165017800312015874114770804265299483749973881246971191847320416920819459015140257853784380377794654108840537410367368105959766048776396645792407068635058265216405012941381120756640480552220205491383888138734937560738878790631287202267503789935239218444507602163160477104948272828548109983698512281984463204915721798761513873099883024346735808686331640191927775802711555837524842669036679876137506565130107082990449375684437458476153825661753078234846078549058475307620277447355216510583137289277652425546598267121782131477360108298052754619291085542277634151145417057281848447965753358210489374585626957990056093597230719774655516439775654512610822558645725135361895764854311728802137458963365858008964648509386090685418449717693274811290863735555174815122103162245966576746644025314264387866849582587432227910687027070373423838096836497818571606781330350476981054286638802811778569396689547051666069054067382483609386485745863711722235604129458339242979672078545027195808325143893178353781377907724780176875749702318459099668563257617787208587566456250175110166083244746429324618492402400534649560493049530694750909336951536121172258713859560612373147544308563057475912680767521849143975114936062882350098008478355563660998803624664843692649608876309490513117514959915172667859506792046448545999581521020624034179670919753343154226085185316999641962720693373998205436620218935677126431929943990034958081074992749829565464569261843820153613172191242948488863689002580672537995727974572097968475869407063839984190873201628651872104370220552751193478501755901932557678139822994026747377727818594567327728122216863575454875658409460096827241633033059386721140573165531394089191813158218042279687842928365829052740520474649648206603721588321647370632806311464169294481837231676145453737316019704048241812424385264679159158019571751700004010194239064804733776003112618716093678968512967554130747082107614534584482272661420160577177252567098171963526333766118080827669359178537763659460283825523053376225629812582556372693296701833750017176182734856289004311542790869677052404487461124278342554060266604528835046334195841388269670580670122320252096071065308190948357845476359579710183461588743671457938957224739137078815835818547814283583330960348265750019481053070547496916042372241770737896949224902188260934517113592965552220132093880185863119713112707438403989255178258720985035124855779801146840914987216011971693299175388728376494223826796487909336226325993555915620899993750161464223927953579393719207346425275367235376903145216532450083767716276128021148008957869559216760434520018444238521650880619000764104486445278599915745165252406481819576074858370456169987484962011441261352499447603587303828171170722492511673065155398666649301188454614260965567750900713982713560744254050243079126238812916235538698711850702240264485291656183359758804769070475486957507496510737707869489326487088174263836417008951058812446535689044230757427732439895868211839599760787256759128645717846179382266512837360843857518703983307644931637719063551705189199983055535310765709587102573728168402462927621113998180947528409404537907894069576448226416341205030736713187815531307553763348181750654130215993092367697286003892131031264044447675358777764970352505774023107253208623040930902219934700633196797598159698077650493046500981890547935436670356617549297373625328886620319940868043099880908713964753581265257117246293233441943352902597001105742598718795973788753715974815284083297739744057322503963534624935682934145682345534672628810689323350282461445170189751700430269338771991554890246874020673384146999017001639855927327139107767141825738431318547284157029620922037536199720435149584216376835091705869593981074725589645914154825443502137961042088974154374764705949329481671807000659655484695055150412329245744257757544495467710730539747956572572396978078319859560055205688392279536437997121192331402553425302558583992574605657978131505586650530733755054972872847112905002587634928143990081896654809821485371044098678006535656313878064958799272047889385887749529322543373375293529607143541582945527753895575205019356203779868260065781510060683532427510832953996790729583512157563182870733744846403313558695874016741344946965021606589029324229856936328978175768236942877421171771787367898665886989624947161642684519850047923438676301253482607706769499733001571800813392809695568888739473749662236754153294592034415636636899721343518085485616285950110791012013842770481099239001814127698127401312658757684102486069335340766458643351533327873869112553756450766197502129981846531130948772414757248925771053422496316708953968181841799827431767576952232621591456187249049607479528308056419656188583309281590068768534592805124778676347404569974272086772927202941145232602250360164506658695836478263119533570895485973873289078420983328441872466545376275474253977435201603321869743369552505152020551173237468010327641890616647922828206452764863720728782937866302364046110396164317891293714625766361729065860320030854932324697975211706341875304044685060230202101821473603210831150878801579473061413601514474027949266554447181685366744380601805187027493573471489202903393062735251876650532153150646310513384633789173458322290021097582986657321258865373506022225295808740287421993628919628259899602622447612729251923967109049860062471311726365174411991163050496530882937900158739388400795143513479932886797496823124487783208884792672645138541266560176549790740851037454009165417530043977376132186212672016809052848892168090119854060754706853942868959077704874060263235328978204720166807551216437905200670839069306649197909211387060582982741212487964566505997729380598209534855219448547310434566654985864745811417518187246745473525040024919073322425159910592586407677394411475031986114684622692116222671902638524005056384320674918153653870877970606349787582278509268953238385459388620860191445635300095511468049089533093296354922118770616685147001280417152553252294161363561512124766597306385615140089343469193670795554029794930565504212965287848526473042707374924917195105301691704579026570491287844221434930518004896309287950215063852784632024399982509948953358147443349337133100775176292232906831450767015196278134828322297736548985184186319543344989429630497288474945672165811249345787412463004196402680481331471279777207252321527126037011374036576636403885787723557714743662009196678627714195284481764793307451641183205594918327785103430270736078257519399349204238716171262164506972817427880759276252696919506919476261681569929467329534796211353480621248694889321781046218048757615835991387874863431790943886418743935380950135994485442579650692090328410990727835115306506288852557501552030489866568267769094951527407006262413346176790827917934237468605885607030617905150642432810122139137971847859599732370476368254199231532748308548304863819594621880049893443914165226279696743698620763595981741733816134127045620881951175469475508897959221705494024341249372536267958886501860413296236704076116769186488439742043422311351510478429168809076380100430475533524291176402167924892983376112369497487794292181775602052213721497113185028949085884288264645372189025014370581311633177402247068295308650094251710991530672358991048344671662009896704270243250111727802789090368022169353384656719073772120399842388584842269411591883638430239910292037554610678833810752475433049134307597423081244626773820820962644142055916271370222277667491282799531905313219618065773001989131440259154024567093044098358598919189628019618887867349530201359268334431250668107910816258955660515530493203465430902291741842719974307745915439371385221785182231915246327696639274406176130842975819644384671123817845434494679117058002496221416207308045417959117439912322518138089050834164691887201574779096014925546083647625068307935577575893529001353803183109336981731066949083746661301731833133420179034871394448436867072665319954220235543064533078022846607940901552354578215602616922216077317357606791102824716934973790851512065226338734324839516725296335208330234474138367972044524355779949761326027931043937097339036261168087383608331643699841722283548024035148816523334839595527590349617028559723936551452851661961346673157214575995917275326358963906646829709772925292404055562592453745393964013752018810397412604475717746136722615623579484446594221759942747942266612996820779031678537838806167739677470237564169063837702318028262056807976254042630077549702535924720467727068917026955870328581355759388601431634530278599836130475598268450331207340650588535814786175471870773769481748425453269910877114186131206174161139836793916294080743001234794401640705850040506109818162705189463645320656635220116479342084541587466188741577994312878946381727562673835167322560923820002820000870578812467309633799680977097354589901794024190406458068650117598977700539448858226209025899371949522999359484461701339909943187280841032272403730663126201082887685387317899287552108460264391281352229617169387296717460634199204238249486267752564062954365260420842488653372808190469990329904143493647211303853436097376554410524984372859242447402457950117177081721210973502906006868723249742240895296035402064945367587056837324553450653063263994966196337495671147308596612315941301142436000297927399893479397375573913811767506788077077043157247820934952859680014587632870677120323428886644376244812832628779033557812080011525395235173193310709663370715785190465531238994838666835930923117845552415661980437770828220078558283167201860436460529573243897690944925840275882992719694808359737327885486068950545838606880645046563807961679221092115868141058441206779263717993374642590710430297702765920844228737718876789780414824067204364083240658288521873938681544841499488131067987568108944402592835798755961460078707565982393924945038075531940634417553171983924390145213874072109547914215951564226236106623515575066331564981473736479079637664981978627424686713332443537684378854078170719519688981343331361763760218030103432674307440283130394020343897162950961987534920720516620923429478985162439427316318246635765837698068346189786609961048431443731262609208012012462501558638270341884914789266101676667729204428957306603039452255061660722063226892460870931716913629865226936487516236454038036781719831533818212622884317014919524509638585508703650596793883378019824386810396068006031727424082366010184811976879122106352909799254230088501229150587817719015859223062269335964873342948633929893854131266620485664617747725009910993469386501471169254870221159003801233663578470788430768242853315272803131330773247100761037428146867043765545670990828088526609183808875210139389124879314032442772376484887845185545320289968192882280768658389723030592381318289296736121260165162715469214297503128703653550924227829666259042666083585398296004915339589108291253868500161010602001295779165735126095561842323881100269594938983403573052316374902131053078961639643852976554636669942430364001493133473085066012852193616614610449194416479236743216698108072771480627278559233259823527744228610626441270230014224478781679358786673946071841698768861169305777089557149160390286353675211851729722614425162930333011770307142949758798133416855203132792686864303567823178227200962773816933155527062745503590106940065365469714879639140284185977155314249150394806138379034476947534367983226920189049192784190993902580195255134052408440313309915426747913907166427765223089887008605558049058150111684419966580905076578654483997117174184855377084482577387491782726192799905160780135016797420343918328434634572375244758853476831264169427398275149239286794417211926583565274201309409732250400738143713489440975401243873141481168091777271142791925789915852593954557240119311450854161422282872321722123280197640468926392402307955493800400215038652735718466098139167400171692685815446490129638745829324171924944174172698518788379238922182067612448852363971197419714234570103673103289509642820666177518796111057419700549925648873830312736402466553731348096897439610264470163963289309075811599010040906842451952472773820041628139362899110072833672380636491106320430224729574772753098926266120869856398997373984747170317867860288094592390715223215803615063188884803497981833199844150987363552367801747182252835979731522072176928401056367084364763839710989338251597623007121479817762738641240622266504061421358806853007403683377542475651950203121648580633783221353264205518251872355947398314033169149031991389427832952295478145606601001517770486386968398882785417381166404528468011722428388936813393811010664752485595328829257995289521559757680431091959593706173805352761145695161374217203593445287029430618519356413879546773270973700930385558119847476892256342835869532099669838183361460894779814528546072878031660248724273608460502708466878171118117977710211778301514818251633781340314961275430356232880854571141895852879829667871232156506369291837836464355560325381629091994900864444407834193500276879388738128789987007142693705424967507498542863954116323178266825307518136831447146337303548028522700223598041970063759138047687022059679758826472446324343348161747771066279134495047849300555131792604072374358397046285938803611411181852834744650177932337598948926495823548097860440992585009128394458946180292304590267543507970486661604707656431941310916471952688527801695009872045117264405391583171027929045702234084338897240778878425550839907290220631389443887054485023078414380340093709200864742752968922390188310814561118438872998500538782742112415364614747102316966962946149650020678578246418340715218566986635968416890049926107540426905302733017665951099642670070362262303933488157775471491540450582836258918592015961793722040394469923012143598883540163309926163393179304655436226646481845710380707715792149860830315665297539695303186822213915882196123699597621857160871698167182448821607419197894483015506472054198868288286126319398299104019024006629739507799088130450022140210373387130020641384080809624769310582380312604780833150113082203817901084421604330864685569770094418228661762784790364588037289779720953225584974781820408377194554402758705389875284269046185257444199132738265949106705213027801522409047345275100466295117160880452330327092951556097562126766339481845949807106431831874565757039823985335345715820399957563823620514581143239915524892963827364195051026179585538996000978714278065799274919182596431136939263712360513701607587131351848814979310889095542150707659468259689786366410898539016482153044801705865543572886316877392154202645284868054038442322280487084641009231631050594080470802676985286149132425126240485895341887092077817968245724901114052501464121097811139583895101216223468732073938620288146033049751938183416670663775529732729845083977806872499001365476851482096269339895609930613219304288130217318278014454974200678746094784870174049580681319434665151435367971958130589419866704369152804440809171697263866295621873446416176881025496388657675976557078451780092767401382954196037227976801079504394983449436235551765612359767381049666118438512544801231721102566463226706440606228643888723303294965218849324311918563519572531877822231511127308274067309925036037822391416516715429939694772803482414373003376623624432020646663346885141765858107243900111207232185702905004944166326283089512635468278766891330245900561214948136390136287368021374222240219295590148531851265616333666942737283985146335446061328604138723476306749048152265816546301173908546389251222905530656406417253569248759809356754266401400496651108263139620693908743153191301834008435971455207382071207636018882991144404288453347254978953736369905962253635410519904603323256016640781135242742337481948308683667186074820033650999955409501432564843774173102383672014638553002148099066089850127737951110413939952934458533534915093598290163473500757410559348828703436937648142423345583692665379746869207003005281814828834494051775410867641409189298473779259650144349657043653943515807630363177617226271044002654032909830146421880360818709527513593333432651357686860436222911812054035437952247399706294516709089883123020290243050483682392267512145781700175585387634982062375677353666020084680409581659869981748142713419128417215370805743831302948635742964890421277819399425160107822153668342404769375185679823414017935557144013546883661861681330097185228785454092027987771297067522679581693472767619581791195290347898822850901161839590176219643897729206014023319507669166613268625088463238682096067018112145454344289746531574746660072114169101918606950184742199172866136803264605284854658912835402464839981213163029753852252302824591061782560345189086766045263778737253857693894666826645174620845504363586075392918255011509710583526490019570433568927509829043318079693223815860945978638218631797687246365679231720974399403342753279916659503850011478051483069992810508669489248620385045196407475632111273703830376443882360380433250464800796516741345892723192806095508367537520647142855202641187671185612929951447681714136605661166372490177337487472386194882793175607948259167876192713381853418644368723485840739186925548560253711736192182384798252764010095438400604918149484902148133054078881330147491849441237768233855812842994224995723123023868140896439980577627587916453635398246106935198530579535399824110500282402324188577005461339155764303383368971473774181037263143949713537182077477742785519362115482205270913864310124715709161104214628377639129815822879272359643094913202616816605985160332568631820162825743309701712051802689591832815109247975724634549646094844456835200965428396998818699551257034176641078238914849793946294838291852797854210046626893788581614208855519106392086733960436895158634708842135912512899192862574923814447892609125995800939488853805464527512352682136694811871257339263118084480579769759154489608925726286521253887610669232134665327255393204315329380806803714239859198990477117102129834910124970467580282922796449274269040362613452003517685143329475251164768585005150848948892654550099505432990368963420270731120381221408378530756042352235174159446835209364332246522083957895702537255235797345914780957721886466094385899631961120256221237687704148756148322302099769887324977182822024325445546303604724343592322984580138982367582502137921255648549575705414212184518109929424219440838235508229898967730751285179295709133922006160253617164949191310550049857626842411793481498613208589537945309216197626800859245521957351637899846748093855414523675302974366769885755926491282828096211824148572108346000495406457444021422884459980214440392136425041272201034842446399191968200627842365019724818041609349933158033164625404949339744716220932148424758902405948884368573960436210661600222317527149393517682564154411202152133664925533821922055839666558070858888305292813059334121967249801123548993708698636235058431535878348706068409954015124153523178958512064327722881551437657185965870211937277305469580769550957488058118077793492524531638276705043813354129170885690789652339587482724738277506698698782877644722448506163666450989512527943197791913680200501439567872901034678231300873445622710206339411726251505217468953617469436583153610633913828502619178343173205651573278004819816115828840056017662589972023236878869379714589028285513749038203081265132340370132196171021620743320685817513400025335372649286101460679750812479966147638768623235378627349476493921864846943011975826522570846451691903110942517343300834519626706870455839784798654112850240783038173823842693359433589228241620607775824292516642196762068992822495779954770054802197426048068964051815927984135653503684416313640893695626275581904753657156103522323924212978295629616627093352472609580499220449880163702207048605546481733968466255406741798240710479294275340608544589531479715314975429481168493964880234532440624142179390389882791626718845841316773141872924652397803416041488533344561415799952240797252833958928241586873998772981060847277492546392612511027575515701368389044171174698498103231448391156260013102850433275490280640072280125706640565133876903734419959369719473336555336433327404255391834920521566331067486187986438554651625183761133680839707714830907134843863925474625000276969251803671440975888526678732386165266642745411819714539343751891753102986380826193245184276597973900730030574157199599649066032947836179569260436342025367798277524330863547412101381527107258740994358588767826605557939184728134269653907610018360023422129185366094718871582795350994395173079911790818023382015875112221962069387661556191846361175576533274065717701386089037085627486447563669070597658407295408733460445332045873669448403461197197026636668247504716279030956938251230736105882926089538348834540995905807685491553285258064994371117440232046181931540068168436487672610736239868220883532796407678347440121133181628574662001225318675815037623686499851250821262998652528201945777630933606876719588416541636229437989962267258586732707167867193501426084495417164251033698037696680935389032130014617542358058324854860668356846672127388110175183985875200137971467988000064966881045469041550439282109201992350405813722739643248766078031876496570450449165517811651020915388377013740541272567195915738434663484256468113694714263465920445758155645085741873724289749903848733456547629264121622156731501000644789970284954338473801133261689569594645725392871945623718087796963829828152330546230103974267049563224054918421967441470311524159560878826830369305280146851068653335214462804270161688063750243361797808741819046733003405149321572359237546171516743141010591859008645126298532854440637946174140697950316600996690737671263486424662243620774163525390485495715815069913671451294136175244811873787689157327482086006799314076368308955195665426862696964530094762175953351912191307964810776130210094002480085862899756700620213042771229413476039828460626790288045312764705472859784932107891360291492019945778550560039535300058497921870884753649300754068241203787376235315695551528777969088414310507310467523290530856918086960918323729637179269797215993340051791258150757604471825570362107875858500923385886759905144546883171797152784999269106509756946506755399946925954764989143802681774812485111578399553488631688929728554551990928194845311266977756284299394391894070996912302611045643423617407013962624353494761429913496283172728069523267370082923360188070038307918567860250710251541042253082177832599479942387993800770305446700379631930178920407387388870650733901701465221447095227504556158789391643544776402516867161425780473267599867865326756918302183281324596094515759435778000830366557996084099015289550946113669613499589110431044715665794431628446227651808707458189162331831177487142166884519238560050811248247948373956041013137196709936436518598241223074977193976259391194613027486037171962661084664708679016601638123384560750387566792786241131185417006081450786505943929435948977882936646744297378313928006662967717903438088680316027937882286154610377710032877622249216869936048889594869680302186433504525303341980443845824417124608486738603902227438045674595100781458480277625449704743535615783204976069621137592685822199303486538388941947969584039123816619660475158357446628005889620118768683771568593633151254675652681508164395006650796029502384582435417694779921158303603449690771777484672061525031036139567258650877959332366564509292290253448830333669234968580249508976929935887805326289530865171882814374992980378614790337434247524796036934278510754219982755513478380841553827568146795302141232835415313931985867066697764126908497928966436303579247714581371513502572575143698196893028390713079491136106338846154962895517511134644864773758760711989755919842261417800321915531989731102673967656607667578743766940459936836612531492159065902710404595865767204507738520766999390161488608873376717510570495226574554048212608225350838339938588978137723906909059964023612385704308189037088532748853811111598460220690623383298371980303198028297955252607323240452333547871500818193426823319314876438894524326120249857833191199931364516447079298412757190007576811861757361364783037535163214609294825895288033537759532603576127702209383484573494243442189366595260501850133008588638132682583588601907638174676979620863823849952699891347101484160103607746924448200832528887874954990707531624101825211032767504624065425381375348351864393103531994911706946036564998769043452107731683233263504863896193353395682158152591861185199388994218224814948000146884687316255486098345758684312023351481218146407081000118239541220947034242129379765392017036251395464090541873180813217352313737695924951043647930185304311184273496211745040467479644956120513224410183076430563983972926811007697196632139051617503338555646605046394000537873739692067001058700034687688346898787516056209884386988793568068110887195939265987399710448588744821797716822587778899773865314080712405348157849349268258685741562957924121425799854880384127525058601207543697348547891505801667831784261675992880947803516854553490867669313491877794515686312249929477223376800179075748082309713845669615201970310415962103449838993088114498505652963101063438680543240622839659663305186971630556207253853281865669529614464010840491229930607326726186916891012577672431443039459820406340755572796844276058602211591382350879886726966545782812348529999663704635441124199332770761785945497371899138554717737062779416207844031516618221801571626998498291832604931239141469443582187304586622089908879236548382416532452598046519282209073385332546911161714537968758984808704503856569994451900014919209897042954634603865494418577275201847535275307219642948279590411538453890690349556376516700932936949023651614139193921578352202168412142993816170330323431237010906506168911792981424413378024189681097526069270946909530887056735217689757475829636037146277634295204116428878386927231378295883629090390225667436974330867594439766092153899152764594028250923693057639663605247090407457520117982661017957897246256193145878614655052834165942024524778698647608024633164374481715777297164021181147662055597344018366002164058287271092126528081453208915466358032640485841007125739678779249851788567059583548621672938293323733791258328736603378436129895820805383861958985289874801255532974027100827328747454269002509545204051763701246300981366525858122011006822870429921359356402701525118311700488467886465660629291917287185149773036049166440528629128445514976538618488396915906542867529223137760211661376198623666359854722261008566004242603563237646097973367624804766442879508327765110553159159798311752443865421715409127124405231231256903730060989612619043659689783917087242372335881469943672086172934091539936421542005722414392693393102903707020747978941188413628684596262643223279042687543161080381480699485917787658323976276348178046380746859855053203271496871591742488200723951752349249006936837738587271555505485153559531130452260413803900099231729784780675406009673952793750999998412888321291110370823551558104733621802108377202463252954940161822079043310506227471507693827546258252879580951094789733828737173017437061590792788650165365081933322229177931018141468025628035978573711422227316125356972768497833314758172339078017814700551408194949651875417527659759893896093095323715901437526802274089933052332536695404877848271222005995826885613121065104666732134967068104393968040439197567073926293690510622502481335498365853261709868555977602412708201048964286667490350828775491105861360868316846963714516438060832101637612667041597398922330863684405117080551891563063956684168727655542947267278927967474843776444978937524887293657968193711688370033805255426920823265934043123542701346899819900399929238349023888010508168109055997303052556638002279668246229454168980248461443862305495140175593443395444865000164887156021166392012106544842909539307880225852078125295656426504578775653477413748264395512104665098102672329599537333884334388719819542295539605957693410221377037973122336615960461042287628530130631977946793979767125436360619371896809083042548744865952779639235527130286766402003326006149902475436032837594448811335461559632291787114090627522075077945571840466936659527805402240164138020373339235448986727019229928482645714003385191810424862588459944801990541380196442853104828765705995190750521989277474656915317181331963438291564240013215340280671521500168736161512862960141553206815218454559837874480236294340605580302477798845700818636366870133499588055789862754634885349755115098311431093995279690165817682857297875141302349168586269012998667550633182510115421125830048641333053372499525132218667949050206661591759574776749476424403203199956941091551391647898958896885494311526256150525699268753775155940390540088421261567865631880080172001933937995767889574270758591421140300653254164152730749453260589185549408318207333313274894556260718349379016165109737087369618142462087163590910833381744462871766480092037047001627857430891782330908405688858275636209540804393162580128198772299471990233620851926782215785867476246797256791859134807003511291964843536563147821487004403187877225446301633256243810991401601386216142621225253917990209891879889735849079169163335463810736815201557898752644493259583287118306484119249611213454110358298777979149758900982560786797214004603109286580235623235805289196775944151925325640296546462064054707538533788353015601573080019928825776129081228677203192960919186185504738394925545742967051613830270596309109378801919015132972393488469321816695351953863559105194984861530887953151840308119395384070121851356741918748022663119260226293513723081285300562207263705793984856908384380690778258822358794684597787269602741388094649510313932019726782338079254712359381519491218469012074881294308199849439054569930469448435515736091083841272370140797850817308820068983046916611918270734271339110625605427283435415038266677730617554326250915461025750806678197547147024176127295920512824557674616123869124876828455075170429068582242995770044955631338744502320307055764055599548892641231473624496684956863073690769024380651118398075551470842205953153553260684128194031999433428149825719262938476548258885282109219041830858286504112507793617848201981093035584890852418898032089903187849158890572132532195272513280925472760190901164483457688556767763772582998313280268432616918436879736052259142860815524524741018125172989024416151539083660716057565697173919045487048297211562351037281333082311140187024621953755871124373379601701320021978239920026453507379214211201959317112724595155138396465951438139118989383397274340431542648415306412554124690870448943979496519458083029008846353224678744894035494056940413326934508512727974620176079775549677250284523165410970228554101349272895218612853511466883871868473225371699173520986003648095920524813391664794335555773066647911593058996563072489865162777050138756923459176231106082779535465913415943028668463476175617483247665255733131456651532797708867759360905029687996799587454327380219445728113042504315588702600343981209315500439648395064464671947332749071654756113599283936986629532519576105240167003981555857426537107790208687642498842411645589107183469881870572250017686246710077064177817248477050223002216449428243246160888108396059390544906908397205144866671586851150852130314553163307867929937265444309125407625935809326982075224103851103363607982096036761300394289582397659105539490962305698793168997466991604252242665151362340882536679089732860455927763704700424717034018775495216588082921892866727064531618164577482631955215477294393565676258216856084667157671350417319024417670689028689399295689410146854922042049014625719411417377988992421689933658944161430077470403354997468794496030463390836282832131124939969748604683360229297046403684547370895641231806454217049009255017738933518847219210765150020791937711615417402138574148957941021422363955998905396943611547056173042495900075104786610092667695458426350646107588552848318211571003634243962271834537241557749101095417073682597777569145937258988570378295682379636802681160172920735785085477721097774687140386446704476249975308141615052372830351724792494967159703172612301186692404665176718353213149322211209176099130686146151309969452688282244587550999923024223814360412431518084532908360529489021287703336283466305419748644792896420879885700791664230054503600544394334412713973501870603693094211314053622470585369449106181545323004199826486779772311398979185517258222875115597105189772997056735698816276085221027867785771857066009870555579727841655274632320534719567467007962065355680000618734772813866537975396229417931095214450841506691621134026392185961034748126263880652288439942785064391777805013517090676171916135916940039892896379120433180076733966552775846546633102576352365325622405433392848141295495858108136149687134349805361617320734906280451092008610681463315878167873016801509563272512813077289722483221883982777064099267144915145226226306737988395553724623232224650725535727430042924563283945325101854123143511863222433773884543783419090382431156280459237280643783463966544555785150430015354439912581828785860416846167042825176364954937059270846029431021871272910823116013274568652945928942893190615996589773703014313072823848840656569972811302057751520536967320353242754572875967087895472562454908541001557556134238561385475431406049393410566000931886417885559180890311813464062382202826091023780526884070428871770041862226455898623422953959647502567124106617405957668772025737751132077796941135018337940424342746706785699398293105040250627067464824339972871225852809555500897688046449748132894687399379301760823766679041864348562707871244310131627821280054330155551845867463021459876075636830677496004068388730538720735099029550079508208069324336457142802821294057564242493839783080056242871806220497804540075035171029280763300504902091376160067780291136140991981008743111344466728757590173659946815466540605520644201353729913518515117227059031223050623305952850952397446134469376754254705011912360460478541935375695095084722611952526251140776047395573553259105876274860348253014831880757686064357529861330749618281413124750980749895370211080247359514789886393435182741227412845494443946678781952728593895008126432398068259347554918418398125839936053769369985221619246502955388821452156576658774540675577295841035940618682537853309203516944164412725243497090628941788780951062050024922916897092819129821420439012462887691056857829361940531434402175328383883225833238687592853637310607083392304924181359313289387069811361352820346741360936063071876244880253734145572626890744361538270753504003799295176752823243675607838868162492401360139492787281405776727228647587851323396190079490610255137633979840064812124931165307918278994219030306000048395618907596828963037256174245843919049440704683204939077161406004284612216424250998649815154580611930711593577960496684201999854226739100442982877180352202987842524706003899328437256302537609206692569257143993086616756319858510908150442620392224383042596257568017942030420832403016295772340278844277782681062713599227359331517017690139187646761502582186155873824231353268284397020901132395938566823714885320022265235392282075752647297612485724279309467373738132915742738143031078069423597504844064031583609424933002235170152147650530865806296465094674219142386065143045384865712049752269250656920925783751480087845600528985214297591516199082862470448605229682416360576215113151380059178532736541835233155912797002926666379166953906552062478832534328228069577015583235607999419958381675218919729169459938961497722059968188283643918576231958501668010424879637072533936420399054637404519781399209605070610316642783955573666644721870761014782162890831837726500695777952769781490235184461013262549608367408522075256808644957153087963138879803417311342104415863083915867688142695002553361819075557097741775910865754718677460845353250739798943737262583106333695760154064663966010707797449433321212242310399134744929627920290107100752185243672993419514970099878099427970798812018436163398926969322352484854236210234857093507535528775911930362861189764465415814748517673352966634573063300285896752283146250521506965091571441792025365982186976270249351089124041698503246130649084387880271161260041247126326939694919613441497921261627268785094100391683761362962599424562105228107853125336229668762563245051014106809953316416117851274365761878202487699221432397695021478960263405267198004603282084782247578800928570522520185613812684911864363191667343177655684564487447161122925190114034857423260750945809917559676904493316926408335525216668425754116671309768251262524513255073527049048829258264161227794375414931212781138836676914969181217139926064582472133578362255350704832555473562023864821168869275499257871112406751300489985463774510818818477263547174174485327908241195764720373679665449539346654864413055293681930159724112372536964821935422808205343366124117237360899865552905023380493850566112062686354557524815010457393670819697414915457787770960782188964026829627522009841733419844683767589209661595292333658633631964663211051103091176814926149097964065275804522261216206746864162748623719420606847664677452547057329638880890700107665256344972789215899948889931103767949843565711878113631300468679870892534972712531304491026094641405041204018643389383109599767778941953061848636654453190116992340825142894866373266212909490965335431712707458821541167608873720879917019099746668826453112088953200528628795678143528106412212386859534651812127537205172332566150138838229680688217354688425503142211949050031695859382809009053917966848913503823096175525864546102199579350068015456798377613491796817242539805759907547762306179982776389581042576993165587117599291066061098393314665644195644126907526057239023387301511510058222641867751484422257166476143815072232250653530141562212744565313045309055655011821625300576612362200042661533947394698765026390917834911501298305358608939846676064753793389626419996271135388915143450264224996121439650821307586306609053377729310198721494738462940187275892126857459447394970201858693366040007034856459126475801237115593778495495139360124338704478917334687239422700479396178188844659413353274053284959024495242448265872961112812335578757511927934356325033174969087320700639976616765944697595160377823004365285652514641806209607103459227223048850960766084076496074761791993672412297220861076935850476147925485648550102571679908924249210012998999514571369151118301867321740190590387079087328563521222213811662111830056603302230352435697357485899227685682761403850184472773813662119778528606218080745414427248115182449919619771846264136627683248929987135908024273046552954745878813242953881169897325753562870528158175995059505005331405552472077453679040447076222628412679243351146390609350575133382174563875395166445516925540016593059057859562813012990793819985181537550382443508397016748016038472223551083364781149849154124621988933091254836456796832954358044449489058651208022769238037173648869566360409066108686131034684398993612662115455584347176901882415402860263495074972316616247692383502740740144806678235714640837956447559391852745092436953975489608134415915024857300217623946917432009137691052923099071097153380672318437136494567438976263965587521844121558022046256394979598468435267840251640111092012511722060436991257486514468599950723141957567157353871794121969886471332859375255915803909126438053953032021736103051555970225513221590545376263615240335785539011278079608278908235779204354678554328361580647890238896442739872891261549724920960346220743947976959018810969947605080953974708768073395123367723223866687955971454840410884360027739342442737626281902920774916992402993205892223609333810155915960407055356178965045386804762785748148322151109975278371556625150541748354127500989805570787456315956289270978378687116566623570683248809035504817625829979620320886236110304976500315517477814618215482188725789708358355955873099920356023936038386073719397923030482015848638872545920191674236279514772438657109847781737978512052256199721109427100698674346047706511514723394281071186343044280264368545246028010333857488946093097155714345346795310796534257669634159762744079742901821460926505204387299019262168384252232460971391866568327393076201984450254376182036753737183571584857693565229523706293119557771378961325758386937623884428159459852934202906958694161237446977623499095038281591449010897554495389284162672051649000805750404131128123451913556456169857411669292320806651946666508629521952495622047172181480480412736189350645471848608514045356084300596429470634264649049526490524113672781215353690255272446307250579102104816574585579661790127675678648506299679343722852487592977179800837843552778807401622671862340437023387594739397480589676057448507522270852344592139016747247743415644750864323961504944008393437452402502280783003913467609374652227914189685873552695254143336899143453149940298772916569141947551595754818267839365565164178075169455249162576451785864407389565564994720869678036840632986604672577602711160667655890029457282823306353373449434159593800224525085921477893565328661392811827759097864865522732353046004443409088157526811066329873444457997731405350970708238359826978829259713252632836796607049853220155689015394098753770658256856177598700157105922373068840663068426832056425858262374154454606858951694602151474768504866277055541323191689793273048574598406397506268017438247711315158531884282571613312614044839681515599545959528276990605310213262824701844158277884946248048425762663655333212299555574363530537698633953590438738290380146774263925882070583400552741980481427878080034855433650964270202917483486007806163638235116537202458242706478236206480938070557613190485229515854464771709227723150102896818749885636928979288823164518179362745765208611910892315797828175568830913935321200618597267533156901771652891698825389159013750981412537883785522154278018052541323663515580420822818075902209580348653975761591683518014187217849680698652263721990434227034264611556034117921212447010258388232533583477410503346526197510919259425197267759432475733776454253474367035307254824679228580195252846944663598415510153805292362654009155306765692341783641060942509853160180087319383660039667840340684880730168698204611190293523903180897654430937284406962611238432664378200755215181276437784415356738731105139671474988430593079864216029651272080469034104915760327447734170638701566800507997174507377282878763754900925903165931539913184614682979543540714387378085082566257330078162569334027904732376166767242875935623147456118640287205621081565086941845493703915159575244104403421209911503299002743820289165502065335834597982112805411167087891001010658662970334677823119361719963722898241994230837317367979988156666630353365926556830239093907420534961099341771097880862685925618457521403394633992502132316364459143304285281892420670909553403732724961158513078728039263078009399244128540024152110431718850235607080288155817478485459082203696243633926271300346503401145623571450939435396820059765870101647355930331651367064550494882681357811241330686646402997268258866386623796908556131283030855472870021363790103881576525619984458058957179268194510240970808757803497282680198755786257516683367945616130074527931923597613211622156429492524951109361409609699548213421200421110912418177342971859029516590430362105334781396715748582042977812501097979018166402854237969790532702367182774342549060989940659195147654290398294712770774238107764869619345915424334220616980915339765666940752003712711156151508320574563209558758318115062022706817201552137741265216976324747415315758810816790695358766448514634214001382098819007725879904155998253110190024961072866221087358799239183239480877033202411564746500286067250082230938210233788256182554158074050177424224098636553987787119237735867794403599489431213698461669848177055851192023801181072012094330180314117402575521278318632809314948017676905156684211706661718447473139707182608549776415126244313637127467402757847197006181011054110068200205416814520024220601337551077931836312659978790045258154678619546383049822062511745441430079048464071307772014096653309909913868265250839468781701305962671956549774339892017244229129360216840484873145047467952716609824518706564427388763344811556818702752180314558819473650899447736627021580277388397681864892239107538706853288189099417349830622051602847549994867817682445513836956883784180364277787517149464794850986323170443521148881002270105609001196494091484967271960337301383423871865678642807124344518330817947755836089177120766811493299323556797003761057415716247640874642474192855521188376441993071959562142687570129682759011944547473581693021959626914228863992610006100534863532696548783332185170786510523459017918238646280464374532760148914830964402063291035191031557747394331276487941980607256495347788665127930373872377883476367798859675316454565798878012163608317745620308533370086656098680657987160077936488584809770038459452756600601059581621118668313616003184967475018835503134132461996466446189048149312910672892882685488426282025707359363475430286679315134337300802380188126611363333800940963983071008343274993451424128585645023190946056090600652547624012607107655179969627884766817588108707174974818585831709114256145096697672762101651641597911964169363359761869574698954097586934459743413256979382217321516820860299765646151554857768863917291527274839042437079411331348179623134670520590915212659874607582820738033957062919369953852593418223508301856542779809735766661556846358347357174479956463292985542677665727341068631005349849008587007675881201352435512437359110936210178643327345025859806427204781173897201245206332677230323952485327124498866914750716228057710803553458706220535601236552018956601164064924833849925332098946995219328255154141151758308695657337595020416426652656419873856787336165836099562649063337324664177262602479368410355697809635507266799835350141517945513380036820279757022684482809085516776154951798458016555600913081311523455372538189942183568069981833861870024058143610957483967409553600568605638682560322875531608866372539059956825065863661214903862780072822331128309435469439650864041681426324537472750593537934753564439715030335911599970582290416601620766569673694379031499817466702837718212399782800118280982355014131579223755792598012497295139929369398789680392129282388454227268653204634489845576061972607179693224567325327299007737847884032977626351718554995250664405302024027681130638701413504728312105502944834886085359531056196677618377226156898648277499768905830997676448156837512105052828633779523634509840462287795955779901104375641501684034086245118709530218725705952631145333955314027304694525728756599665309757461790476216473275821275562254258018632133657511011951785792993508196842132839739592620722752670159363008304281980114104407986495719829480322975967511049202643625816208086900251693280494252719041711645898416587708108079076242721853209753299299549994571532551214520446782563063227367050188886242775051644189123564528458231944629596442983065397945258754583038796476537528684169700591885983096287499812884995260150081227356168753393588106428392978013466672907135015961805492449180738924050711567651281735960113188145955411816746113505659198917977281617950537190768679073179751218099678833742529168175449533171942818472694235293207471770480461250393093900941852241592871328537149221781626364065098669219529214791139402665346181973681254680170238660822132664389607429245227811702173112765441995218273030619158350233186822214823802159601035209102051175256804809370622712765151430928403986850984872510225643530905758631220738349239066882609088126829688063773038412877871956728756557538815942876658267774404119264803767714560447739619338429614002162977729603300128354014884031730199792407468394057581049343742994231772242857668889023480582938941531804911145364190154068103865743805488316739154317577135517091894819843449047501264070980350682171197222702221088808626381344861697238288359052789130309928179748456009830454687913037690983474217765644026431019966696082982927212228213200586858075193301048755849814455555880881192276962711649877812990235245749528741601072825350308020364270865979418320625543096048270003498019127403204378137033948487440309228635219327633866062996574330204476575830572111222906844021969407190525360595579671644745913156362784107051751854522944986723114318826677756893237574938964086535293881737038818251517628212077581313802716559129923615342042037894868137227225965083052778067179416775870308624521685476254670015969927192495210125987561927767459027333344642146803193327980904122358861838098952797076780879145566467465955359888270655345095730243806553971335915685621065004520913434515497669776844855352593969490217908856945739743918744816897731423013274179708316351717029255152582103991907390483973558494324564666058212006149107168926755110605865476200762246823109854677061393396683378033357611102792459192560837847977628622797948646745368055443405887907333281216875628939200324675934365777985956460633484729615965561638390074943772606422286110220908519603390967150962589886685674761522859640803015189021243714042951122381694472131423686809231733071264213160964600191389686970107680864975869417798817866706246455329173346083898282253900304812477775915154568188672946997903858684210414961054578596740464627351357888306866115686819171751338418157090031852083612833587172153610124344125430438056909983239115266806000007779250489929936676560841723546110374189969018393135349536152956802300539727231188165351160486975261950307455200418783953386848553553878712699541246039725496710782660994290628831766018342348463777902824870911934453285351775789828998078735699924488454414466352262031020492319282200120072955309192901108222593888584557453260586096558931814315230062318006845631920792872690463292261609352292850201866905997675985518081017702386551374598312397517249671020540530710195863915823449854061825521356110575036958396438884658555596365738162498921641225747405021907774447734943350695767176198643159551812763429033491616691799499832869774184989937586963648276006505223916313365944978531843242759847088917589280099691312911511554818007215148798492323446652164554392177650027637520929994952338301004810570374765839523724217866912890238518124767422297579467320423529898398571406191724626666796023531553924032137164105091170508588385198329739635561732315117109797979196266336054702914802578143598359287284374704713844454175513458208674269191693109960343886501792293244390851069333965669593955470958625903634569874159881478974338233930737934915839348652035495759270363546208617522772957726562283733648516236413014376662715878248705141066248656732558282237735336322108512617349877279797268573734769906961866146210277009215584424456418453473782773229223701844954734100221747024958547220158057316789494709238936609614249286677987987577909957121686577961654545263347965049227172825677803361987561513048341627066289172092457989954686844771690717210562219147505604876466493843082904888226708073463291131456662648421062302856647494419362827841292468420218431391959358193797239549308732694537957065322214644767869981902898402275470463399547596958180204543495192237999800889034830230877359471647903367129118702699597026868692576521697239287247549413118480694863737277888175847136900208403535305848423299424560560856321601079959642913339145137444804354810839801120681310203194999671754833063582477695433331604007646742864336933228450453084767304164001420452305141587650970686373967155528203002068332729810375040739225125670180729803478435378225941720610247567525933761717127495138022755940602914668203761563108022137422664578523789063533631949881633107887417098050145130731300844384491986076289652081856894918529631980525903046086320708332474058292465113057678369881900370679537680875612349011903091747490566959334182631757681258945166915446738367736154583402320676501788465359598831866454293509223311481812593228923343026525500796927603982369524733123395548903395138983217841246011855502916096404601333583181768179226429419410590852948087796017460542410607607293030378704723597303026355217274109732806810902385187182918151984164433573225494979699733185273652008215918286777992945281324620125321413793754084435149034043252377210645215002378755242340491494921339689226469779421338527295321624489185818635933343268209778157707576769275738501448526906996059463216371297049282658810999383679730117232471678339462870670364000567777295757375847956984566856432497956996318261481503393439307988595692311760494935792026170265618494423970890561490826205415954071856497065866528644938470242517210773893706726333714188578353407098795686373806871681657518862392699481210747722987953303884900725712859602091998563547033337449675247532912352763388339937184666963408746221242321085014693437574481041658858079186382995248201473281307892722282110894639909643194170855765487499521787042331095111692677215836095340401744578353839867079965010228236920402294602596330673138635335406640407243834044681700248812492120015294658252366440911358328988187684037056507655367775136378201153843675678963700299465781223620211580639302773415718791883380955578255931812227639412058525601679622443550544125592494256670741628800629849940125498775276677282646072973242873351450815850113801251234755986175830683260121762147252984253244844166835297278985884786685418059847918744244524607203089382770527455352559442569350479127724538201234783355738760612227970347151718282329066501604697705720864435062002283708547971979516169286649975923357182175998182682806686271371211808375527639136510533281940193112212015191166495936408861418899022078990433550765803613237446496340270226390614053527208634618227045824541988881262407972725369285657715789925097788991067933666178509015757815189041317226713420894105932550921199387904160712253471898129766546509064444984159448538339579149106187035402266020268326611862108641021282029313293861492493384166603768115883143341737589012102487214668590400608038196205767940804965114361838711868408739913687233565294164701103920229453706708716211744047618954615878604779365692854874788722386618508622778992339192554944570244801331881040713059597029839825191256261297271669718176816345081940978259081768093136053159486859412489398874336234530908303222298751071644897049621778903010098595470692786445874220457228397989329855595594764743496493498090506682537940308490879014005960504169127488542197927703824891545872587640629472661127782034214015394609121569561699427907355875786318075637527362820922463436905952616708497368613886404332350867283245909411300756241070002702723440735080981454223881907659730415342791388193412583946886770740579274021693097834363536440823340582949042953570718926637407817144652213941253150397520600696519883133580623705198571820215869710030432141937483705567804273752382706397148276824847659462854673433541742198947986890630642985320547849873408044528682730368986948627787096004829042386877925319178064765408099141830886985105031597686937609337413505882863070911895399184491685733105092099262433876314549398714996400990126566225723739130181852136274516933633218589987979444005290262789234377608689539579187762389742540880783403569478370439995995894867852840894415188900417584344609170645168783455125489230269755910723406574742124300472885232683277438860681840951576132434332850351014667315974955701967813447351548194691167471431014793962214226480332902266313957288905371345764223039946747755416325781846856056972393982007581026723543636404855803976632441172492868094339172319602465740518824022475115914064383610852361018847863498437952934089317219563258759880050862372022940199546406375574786580623997987590350284434390346975502559207027469647029807081054094296773165875956381417377956980763794044019637092763901691342352269086242038495889050129798651990809472206889088810705759553832988371454196544543406523295396366092360855712324715348413504347493853102147806295417766439369067383382697556459228478859108353590067774110915861951092523603023579367358348202113453303414028571631109294675458436637757733201133532073471894764532691578888830023216625491038683517446974149767681716002203717640984333681750640167132975154963100473649996335240352685688049990435681033114695408988048920737863972816487557694236681657463127202819810659365136912856459761650105495329153296773866346374274842609198058782554796947276676947123601604360115949783954139866646465482541495613177793565382166364177899492201783238520446056379634964987661797955785055788654041011243707835931730036257311900347991967928468578646258851258976963259862293556514519473973983316597382972133340498876431321972134149914330329980044295338372080432178403871725016139242698877927837900929275732324966984210152799530258372051738330984889182511430156269825389488850369307577083160146312445021729652926823649067840523797094827557133148515414373710626557811106627476156655000050693015961117870862404622358733470160659718617003526634608943570270023328045864856259316590641605425607441227840566454784596950882473933905776653509686460791845800948611370903840809803228488522045809784836478196705633010055979382452172200516077509526255888810069891100967752529746175264109969897028325113630051340893659940241636957626245180175948244551663704461129716187298959631453180155196729458647322385353739000145196154850291398260698819416919485725821459397897570830570649802831391189910734810575019903488844965750019252408986540169338598281466998057736673964996629780081367684865772306342077660139816718218846735398098830935553057197671587820085911641910614789720456746714772158311086380786338381050052961634357476422083951964238889022263312040303103305263240609344808505437344605942253668517802171156135851907825908638381308232693426159159406997957714316803395985002571559865914761938027895263770325928815691117746838778364297654603490300261538052049187062759556816790877011839594974576804973001934843247786376633240357887525625230328453756941447669673103615051425230637999454835724872602353382131584950538094863496158508002006197074857036928470658074150147308995394574026891974199430360319424965614106783949724516517113860449500354707799772699895794417260981733455205706989313676237548601013577633416308326421126179949878981113330828953815793228755947339133682887665484969976740415430238763617260183094695671032186990567836120670991300786802084067927097427668957720859306522616022084496186159345899552444050872776757721234168229949087609806271776731910974849873762758886130301181617276520394458179105572455556390182715955502101200292276885569306038153514299783976934131358029209448026466869534922660232801482324627564354984008490455949617026155531341553889647036855247043554158065653688303470982602761573365020494857112345829429017152946498251029773484254719710612868995417333821366051997435504401619370971681262562100202343794944211083559994585218512564334999784356587181840154293262936805167835318961606164348003307050212220504906583960143439504837434877060657900613804510162774933108816024612600844558961393856288087361833811883913616763297925243197988950307264757660151206891759958232663653403526714768929316714296322633376075435058061308459172915417091450539278194925014155656959845211820808388430394389850687160358476694208648676408814671967389083537831521969131184745294895011157146377683231794161433277228265582049819979409543509344304071519783044436492687276802245933945912368402814676576773086275293749344477002914661517654321880177490792138894525905717626497629480755346553545208621616797369589691415850083437368968646997600276799030598075608354316982451751182598785127771345250168094618655237221065078506239591152318531615674143169880724534523331165150630649352659714775404364669662977182870277724825088962329103426044108433987905625431875341224786934578439659698743183470345434898813107809293735287975701578236970923772702972519823215145431274828804741341770222539037034368940451221174754875843388935692812969866678849204581532034826548001764497734619677488423697671187147652226176930229048900158588603684263178114514624763809105824940481228403098624091817297987601528201738305050617777321581975992812258835674849385393962885945952510775232750179305687813792933898374276797804442409489980109095644210996980237203190433970690183387354544922570128089228109649356708619458979915088096843763022987412081246505878189631717148953204478121507059340696182943127322044641108258387475486907376563438240781782433278797255674481353069625299788537280991883690397815054133872550836356101542343995966274315122300978485128766506083783108789983298724828879045693137993325581666118131857062188815037177999645765264398669078552564931113512268221694271926502505105412807979450969830730130202889296950265573076648725888984108970632935139089839197570923655493166675252625108261013005258417960308488811201718559913942168321218983782220635771244844368379217757230495401646742190260808302607184053979243096119677869935622481631750310855591571646601768897102161613238003813443566554947500037205915979840852980375448181471098127730586303675800055876214632164685198864054393107649685698350694939369416067178327631972114424890770608506038226966914683530057070376200741450056459445462595982930074125263382563915106207604391056419159792603031102050206704223324953346967130636166447504697967045730697861995124614336267336898014394436494600110440615233064329550870440350041929704791339717302413891175923449355451894748424681565748585730475206279549928947874762840789626769144993943722082839776216480659857577268010357685879540402359509697798729727760828919005501090767766161781471917337063817515701981986502247186844655516392982242147257774156991335435375226216542847494527033972204376033819384084051510875301448771369548805852580677569428688936824333455043722552120255766988724629996354909843937911343589965688402669434279139385229252114420043873434064347728435184387065923685415219979851968219871146375180856652588389268562766406059632846983137308326340811225593132952965919346120378027213852607795465651412096512550821991452594563763919779757984861387034572307507576997694891427995671602979582038066719371054523035711367234465643788776242661136615350990519830000684728852169293253304381743564615098970504444343255710663024884662831504620905685717221358037067927846858685624408411838942747183996059905562439232766146023680015511544562357194394435048322499723630153359797276010501648934997973622575790128361344366797093510816676864572740841004400113165031758439202611111171623812130091110925625406994163514815270952741288194211079836397189489870890438670714952246205460944601084009640785938754595661904406402531745527775387228697650779906210792898628811141301571731884908844660323276341870913180339457685855545004127288805144622579590570548562450176499106115767504770995057402000915438157475726815613042718687663834754711960527721540465978072822252727763448209905373170892145393147988385159512304066900152421762298562941887028285347782279629608026741339800885947311682968334959494049196481555167286995154169002350100397885225000504955336590732842393157344155611923075518513834747830391114995943502290056266953061098028904690360281187667910708736681803891679662185458135752369513561394136670270665153702432266589450640087188249012372928642743427964438337405623873261069171823207950182769514479592914427313561476270148462678651158944614276231197027346856046649842993436720600550058904657977369934133768453075792597341747609566151369922790854624837496798893797791521455083151671326878530124968028517240035503202439844616924305156002263472844655965106242704659601964729798665852840008258592314666983335925448266666895124899108430312937272990438080692646383291928546308418249129442206141330381443780232480141072412523241199454036503128744012308381300274550887127386089229258355090682218184548399711115567891600260895096996454665923388667200958898416902570237661718948524117418017991224996147636422322074895784879573633877094614354199505831770917750457097495792036378917902056803751400162600298670509470882813015201881283046519057230664126783234862173362389143982436907585498943222745771270046037927790387308228459907427231444761752495959262631095435090279497807861376102520906798517892762019812845169347818074730546856542776820533362546728566865011795948014589968620601550111390307338079947746598744300774161781386433092966645257074357946909586331129948277571083906573647688034385058972131246022437807160342025075335337461952503150487652647461061031449070556222085858896555261684295047272603539241991433860030255814459093591888158387766435696160989756407134363154280680418240079620344810121127244088162008476894760052380978164977674085196205533480277901032656231165868495085994086851222389383123338850789271480512663795886098546345942375128246935987002208979417106674357183020015121202704245787124261125269614487277963315322866469813669321441994912176066790053862619773280549112593614468647372173805676285002353839845397494170091996987263099434621702484960104318431650762152583533890464253209639383040355104643504296980873612694778650790079100269809157606218142227050126947696953208125134815916263562972095010390324004280147269480252598970020005461619225967548209045951320703876191884751519642180497318633143505444248796208484805098365122302457423223990682908674840699513452534916528313816220819237748746882141990514189937818421295792896706061002593879450482350515924014506501314960847574268698319120347172865706018151628544744961647128886517093522804618401020944342828353351319246906216699195593303859703547827171412364621645973942939817351897310498240158807426622384736029494827229119028231308334654693403109844757880058955503070153270286344487175936200696505247162552187136105231806918309696273870271093736461818214280397704351087469638813287213949645215616544578129826008898228493332993589540958255503113054654108908906935489988990980378067518268174413350060411812707148291183853373426816199330710792633977042933213275345376206089379677650821677614825784609213954635942876321904688651846789021483717196272604607821098822709933950359736133967249760357901753714943365459036904909350164887031622670378270445209025046044952456063655090271170487641609321960611994028677252893228746157746854648705226449523860064043725426518403966512796593370376875369213552188035367463641420984367325742529634259944164589120550981644530906021752844466800968050432196444742523515838737156217093937542833343940070085265879919643181046047248860754319415348076276518442321513103313143371499265528443261799405326304178056623742831946967417631748240027806026219122493676648185887180809857752726533158519920104385756433833010625808384091545943309470281979281594645397909178080702575178477617324282937386195021023998298886115915254497320562205134833931177820521841995042950837276738445282228212952158740102923277985061050591259884086812906436321109910025452571466759993041161516208262732801144734376080414207735099242363592616914908234393062954225761153548298001534286305527499907303041866709257319896519581490024169150058235325407881357028299686368014983268105515829448388336884350092730663522186756676625507856969528963486982481804493258961830160698338282717110656794408490414923746678826778685300347113674168189125596282232809372800000505526802093286225784689614646111320598948429230773454869474768519237483900668855704578379708022467105466730697981993518696680400698592599879511497531769778015546625316492520821252860539890238626086242810531033238747525319506541201141130216152521380226469329770687313619057011410990667880048249606234982358236551045040940973740046790520274870400246989038975021433042569376302149252810122548937106838148891284512408646981214440262216019700593242556291642601911053172511481879384008771343962835317468308019732437745286585745196512014381082035871331813810483654653607440329292641618213476331096658024426938269004594346581951412706449978108841074262012545395423487241480628069311210531179412743430331759309280675218426898102879876070205900016759973652743629951323428224830920116492530311942177388909875943542455221292677128571676916830746955689312713839341383680864337039916485097455490521636680837599873529133348535271981035591601823651900222807142638937476158633240214904563511530634732147425418394299851084153864649097377870615728359574756302636650754686782154132564938086533453839636227739226635727225865580453745034710009258163545173634445866152449731756048084943253889997306678477699017484986162956628145128854757453391013032137796420681936716028628518063928227265784837198960036315010049361451076106592617636195822205092586527008996712854714279096432953246835292196677021746301914069410652882481631827264517656515719699389486480863110238311637869705570662635310886113298173064395195760872423517218147161682582146763138314334081730152365190287141991670640452383536460633158460651447146727096693201277636191617382853013838397128942262662856684500901091354040610374581924430618980134821577978795728938898792207953694371556103272299208452565550056771765594839417850740482732134961694655574772922221785277943013260296892271600093318644020270751938965385679179522161482541979539012223372263262595042013773367031530742546713421717562181951095569996932862780692734464120136269166659301795182036477303668769986458380910399268916115114172084353495510920113899408125509287236928840895873524276580040494526646691656932294911096168250030985335449171898074364579779368352173413312595385458678989395007538908399026509986408293505556416711235872956928990220283003909187526382019409230781907157171670575232696592680135612899680827253552388739538938499329094073529560058106007039296556036501223343996836722494392152168319272304558840434335417507750136706178135693780454418486444005798717604526613592888198448258422908274994098389152332963587648028712299279874326538562954157690587472875323693294246134360097543023391928405045848046407413080845855834447153565363331288489461057424294537341528272880431472609467833104658001337559547132534897788635745261878071806440878861174782586810438008931699321713005726498276547902824606828896238268956804005175324620782455935869958645442236916631729500503240869179158071240679934252991664628289977849865415168475458472740127399915173572561970634020768260910029378213906087933346103285724003574896645199917841322477110394988678173748752469382890174711963692324299367079953243479963198765834925451781969579830779089633789610352218332731267489366926415096586070858722690848210826332957285024421331265894660552150883472655981679440595082934507008630143072364410987007759443892128631289543521222298835830635850245577604045479586840422221161259104110840184494434401048131312482876823423530270933670467855743518477982374572348277824831074718849631062848532090449796999101421931978371298525026677321658159573220768681237074882274539432810494038091877278815392633842985909567102056548423793906000562099633822994466261650114451205890103647345345204848032691316763061348599033371991898377468553987579675082252063901001472142025024260120256715299413238528587938345178093632077703790142940396943338746454183079107880239511389915076597868510192289924837742513733463392834202425314748252111119500810238862190276483513697951177768754792396665773987006453669513211945937250884412675219116039041814824860763174207420713141993050879468889293514101432229047807419528476202862343814266032977807886599839057128757276997601812147737959883671695938022815779911613405780231822685962597570331126107950706187260025297801302563144330474453784840042686015075482003850629350221770455586277173812771530549044516236383951850180789003366915763570894807110539337761489548880112582977947431545821416939991818686297324966146386337800058061886246170705424134551274087013021088245306129547640047364541516821598202425470498061524269351950442152378154444193683618906107947152237449619464988699797886798150619901084716031089024493118149035676614536703918561929645188080041355367114747486786475242440741625291748442211856110543276450740569668788678426959554062267750209561184192747247946442022113570053739278947969296620481770140137722011222426788059058396005214350876948365344121679477241298820553769021552214097934185477282970756678725577973226015025340884669685643335520380014008724880823689461260826514383795604482373348626273275763991959929620894431731543714058450245151527229017678898934425781727791692455418637113066202972617762269497573553328040431783430743190605344279770123549359906056957753738806454168407269162019882282331001063447147040354361568267171740577327093400322921941332814691252170611080739424723409974824078285148505437750619221159021779628856660167387198694757770732792730231797340181205087258501936263473870290363153745868411274060473131450135752682179343221879664453887413030738970558124683384646717239643164823994186493158937993694650121406171841492045974945051996964430958609648839241606748966089591592669181175351628026449146151535167199924023135661346067238271520606414164513388892167831336860579132334633726081700810726474427736931319655271644666028890630125710503754205036603310003958570409836324152059769615362578996114154584206134370879432371627179747255289835444324788053329556742249509619804108072502603773763786233025066728478896566353473840017554160465801791870214990397516738953469567333404651867651511228068248745544998771977161917988052483348585524576481442571340154297578760843895737308680333853115100568114141978188902751067943580178400717378745551999994513583110904138354114483677091291082324014499880536511768013878552860972828986886946536907425638839068817283047517610584553474215319452791550361793871478219306991209722499342253944519065710069478072554595938689813396678978878936961445158845781519661109343138410394639843677804550538628147298155256144980118154808448544827918088254539440935609591461834922576263869020734892340724193855911208654034830651899711726313645339809633509604777566761615895234982256990165809060600389376928522219248584495648805958973271717667158623374697895825602373836041427367767776149462971323302575525444239194436613279370123676800371183609930541909888846387779663556557290471013762676860183003571845048252639518859347727316886427335816805360481636978320637230236455126085492589855386709803811039123637544118785431502608596726384836264467871804743523720378081933295533542808874935874424186773555465337353479166512077073926165653244974539903068142985894185429954473797739036981047471901760822801125282324018697796643136633467739806585138525033302823966796901618835496411938982352284002827329736858441726420858007420170160302672374331197254201820631240215163007940878991883922371568511978736625147094786751990287941539042361453056285169305548420524192288763752740293522688654238949179447593592148340117798564772268102113970651840600254826166837618738449434014529207009460540715643518124483673176999178577223850512354096203387232106336581974514229209377356892024330446091019677753174191505944914825533361607132617035478382784964564524047150232986635893485720121636681651959554048977683497319049214730648003795033404537963151500318198492693322531245149454063287581175196383078790745840707883241837141423547487126784918143584206977875958247645742777853261347622975104875410658698574521829282692780375630300794179399076186634810301151697153211472597238894384303572835900151123155112757337845668763185431698331024313914682605477956488317200872767613370317510454058898994265815523518497770276563529175866098913431773548296673209316376056059088513968599087163272077023699475235569490722122232755861344189182677048476855774075018845706818037203027283030156468644334489112640492290503940373048556391126470664411700390047159856887856545228794640433352038776202544672385056235353057812846066228943947337543707680916924996109065085816748144706064106452996544286611285684096349956460921380211903144495634127723440514105384738516812784039234982803041538776766555068796195657425342904585784355863168611266371831003840185030608984311358384042608220181953165161778374142018708823874305662093249290753334849436267600280050438497751147900016005750770577229330917891538110307725130384791929311229415471227293250287752414611879214772372711388203825256782719784398999472241579327863676581307534657154941380549731037520315230784955162596790090505606508762302732148434721840046986853183771903234312876092975480423890945882301409524344930382911243518149744826532664559857091569024362127871648307876370533713019661124209408594281692122055363433955572470782257108917989154846551895762896871184067601864115301976332190778342938994709330757165867793158580992758349871118513324093870452749994800597446333953839322285578002113388922652391612735688263885369831551902778779584380137226388464559395040996088039793020489858439434689126173761078667005420204822592471593361416857363272216610723773030960725977075080755724622524820704191336192766426581878438505348397565614255260357883527372533777021051516080098131845394219704151014131808150823002119144742036489537924091813143765070848587925131563328390375609128496387945800363539112237558868168733894382697612098329361715068167963228713909067646421151076404744749215367788482388121249779465509222276882627381061887195916320246990215342532605374975980660322532997345317834537837268935461684792214124673604534682936705325055926072870662194508712279051242241131070849736504519787973037659743734099773566792017706184773754829891362927806275637604059368074755059131620086170619372536216785682983724944861405811484766408631916455664595023255645678460653841588000772937798724827610999448697130705024877918717090334598165763418376074007749417564246834784833813276437928702079164434678493687302524587729257505519290628885816424485076558166553481182577354606102305842415172953643644671701899497373467060891306858141927989528903283407808179445790807725526292608239685117877931081568787608748258989532586563493556827326678402727692471368715823740345638642818413814041309508975747228909471516939490334080469685776126809044386848855370360469565339541624278741517878680105123616374536828033928587655710762080818673323768304747841412487479745791304553311404358784960205349009550008798884219423462396541005984645737724355536593188613410715234748308455343270374525497847724217525337413948489236487579629170064708900297463238102038458668416740559934826113991155763248309889861503567912955722678686202462833177335159997608055892652301592166354948552176099380263872733173313123618398924891013382845913766317937774729507205972961614419131687861881925845365296969037961940923568838694837802277885368674958259906398213765005112577419303736144525436385907341076449405139541771490144106395347426284481949497846931874641940933847500621407153448592056512593146189442835311269326017623860552646275362176808602697435782960726223022273179206520389650896241744171296503543236066230032915516749701040266671105392356796914349929178303844631681929078006037962226352743284138628440027823079389063257932294135520476796745001052508834515909565384719232418632729191745659051333775026066821262018933332927311473040828482620475626456233942545867932694158097529193055246811823320484668542286277341490457872650648338636507217547512973032550188340322210707882277861726555805696856022344879417811456218872178682564331209016399791890410290073101288053917105164156434951538409401038026950638745519314081141454438352046821093590380310475729170893692431297181362733341064173527778653976894347709313398088542576052454649425239083271944851870715228140147924728549059211415188898629219259185685470900030769126378974225034800298085398093276617393000689021235188627199855920341484901290240022170139320868157732400660213518306262304317839434516144162189529322308313777946081906780589767880927708610467413956069729762154183494742608691198950531253319148426893619584991541425459336365431760101072076507789883804183489164827414828580557264517003257223932326046440117766571449640507970175958171599014536583912016761257345781259815581150539799459340528862839605618507016580116725160188589593389121577333474535124885287051830153921977651936347439928203695634350892085110063563493717184744849463937596684950140772470896093053695277822230547535172912585014050317776065232004231835411104961921679820965600260942986113702140149126906606042433886927206937131819630099709873330615675381965133164885785861350382060352922516487824310362266706715421178945532560238958772863755481336052753829097159346023460067487242048702201480247855653140725459285075523891684883072885742747399310178596052360202836930018839911294033354466956675710085909657120628944568338149592375573630670378347048611130305418447585427898429464081054790610709276500743937193808622574966580324314793356323315884071614837601254976106682867712951738669765625421314624475779236498734650949492718654825706585248628862285884835393473197008051949302893313856618213121129052199878585512132832443158291736274919936177120555435401005053649360495339971953518727558736908904031785767474111985014095687493186542368263696436593660649933054320928215756622560123291537016470423016568144956598603851038731006675081150865569899381119137334995858882267404465423493433388251035487324638871708946283858029169170918667379983486502940373922072180776018241654221803007603031008943295254381197469621324682442816886230797816047588663578184751939564460414991853640185058477529348806482816421258095734372164903034368356583655002821287576659559098590658363572823112805934540026255515140502497167468489229741653506625382901788647786024022362153047117849044335166222981239485937571990700112317166031503615039664064284059159396849733151427562085977215161597257528511093460095778056177122141616585359237428858106195921376341577498671101620997727655765834205844167917790738441313222990820947500718459932489794355946830742640241769569056102765026576643232811921892891596180991310151141894632216891454599244898198196636607533767416464247838679661666858512780301616280074131927782207933372463746441438226100386141583670737284966115537011018912670755654062743993307804072491300839768602279670915110689394029467639362829869351539625397191346949941759034721824000384285854709614497566064057612038607807895204427442258524620869579563436383146262233953363349534614792828541969941282862845497784810129387904530934508575941976593367057790416480497555029192878776035306467183255717987013371134825086518265475815473057057804469233751343528299000999425770523800414573079707486601458887283307752846784748218853723637284542070650008825784514299752724054123691187395261229278839952169083146051085901030961764831099548660102303507565631037246644746733527840738157021863071636475280015366480768867540975717161862011185532132890328378502504041602303061632125687899770343432095324480933287016616798587112160144924461266689718957986325662305674446954613894358628242376816692788053968390959430983391469830087922270267232923216269767538734681526487455340066496216072045284374553441989055393813785610701033957908869588826521765347644865596543615918169118438451218716218215441707252704381065815856431705212335424048016350173397996038698701976759495668729165146070080168778639577846363100615658035019830257928437531798769791826769225987389970006952894923472741521206864544515189675180348467504751036120495584016701541861699827244850729882843582133670507768087748450370034283033667148618609546962314171660207182602078427193659616756925315575373035336804686359813633745112418998250836059542231549704431489343806557899363112530682470714371938344880432649922721755217176288564616523403522029681424812521604284387972196986297334033092840146362312107578601888356017156116527803811690279902857022637256730076227954693733971425079933923991066813422664422312433233177984067182588437861428891748610957074143655307718424309390085267379336659628679308785830484352259483900349497172882345908739217844109340307429426262598442146174493251336169441133382479438775472642018849055038510175660280515371554708563771849810699419171737366015822689947717777072717080651267351709365362700927762515858177097590500160825775166895308653576139371476815481234442543961857353967571189521234905613451388101607714313531161187342874784867439114028758683549136482966399401501177729243198415341774250080486544634258697809583466867532746677262094334154416136815256207055845526683617205867195212323179301866605643784392411266603043287102395466223373341061401341401822362779766268733095468450618755920138321518129944993623767894129263747992231649743888759023983512682531529622478000048942783935045159098383121398521881157886346184671320124279592303305171906099580534079481497560631463283766211883890589293500098801014262890154126830555441353179535152472755957975830219717127775374742810322381933986595111903993128627494692897477029882861965751620299963455561746143095455666495583719049089681272160619751485030597549409874995677281426430609982144468088537004374092285972643237113923817411655619065116938908717346221588911568413630276640736622610725176528840175358915984426920325169835885843971133370581351162187390429718693157337825899129716695205748466305632586709121896813779739036677984191759588969500794268965162242145238912822559646347429999319229241439934406069522107289613053018656507863325053569349351623352756327395094240990932547653204865946574451249330859578344605408143582746087100419316074428470301311898916689990951598916444509483999112729571760297267834819159132589465705729527027001533387841903513083767799187833881166724516071999104695075410053759702553772502039256574066546088095002621431439063923612579597200145894534656282378954895630252568736462812573334836609570035775790911123457663383801314442020133272666511047839255004200770515377096170912451247328004262759328083055837758404758572069809558402393548937421501779324625841983195784987367044546384471873541819367788227521960298574548060993005906017052702526183463824615099322126558087314112003433106962162023153486890571046899472088826466221872160496939382455731019889133073150146753696403699892476149590506611766227391195230659504714242245709788520856828352435924375805973029304851575315209362692411264364454741900962753078155923032525530123957797037365324593547094213028711174497920601368898780745373636453932335422174508945855250555505478757045572050292826713921076213003964933130621187535597619689780780969686816378952539820795455156159271297171218426567824872763182242930716787528546818680052365452501337132906362390610924820614903341817577303110616849421323768393304867522965147595498924436635299241536399923197331542300749061126912593232437710122644486543035260103251457956696497642603028835691441541928915227391684753746036342393988015273899792257200256750288524411463869695546113021026389982704203405779535270750252443011259309245642939945329624818564962744363919073132086656098713246524544180737453621170605506928198850569025815867631748839159663139796246166395479211648585148229607520641181832795963122098577482837564268465229055519368511157879240136689613944250886459794290741886184413488406373866461595400262914008420146694400678690436247595841897723035031948810102299382619494994365256818661592243331281961337453277727301021114832951027062560927605121815308679583222610108462354425105146527869904182550296864033838474771645421263970147640454846672575924858025267800429041347058783377718263132566226743396336886258442481724542471091116755550926601080571417545706180420409487183865229729968182800063920721468982060890033039926438765826477138708771943937971249607830369293858960561018015353771721321716799699474399474731598711352989927417261206033549974517787871143697371864002167194333402690175267702930962155696397291657292551795668790567614141740186282062206630534430480018770736939103575595352918173066103475276591478980183142091839043352993950208697081711593329330954172299206989982377229831361743227917149052750506811022215029407682189151444720828761386225329452019538210052943422208483089597958016052743053981660374723493720013445998975538981513223433402556182174931431116782491921325970148812118360522925229484937074514995579272875985241808327034203723644096018637942095121100216203332508599926998056517477223977223738699345081983249956261823513341485950583977338864994413606023027349965277469519607192734683380847008350329048823254993860218494532638916089448564016658320103050072983228881085734694038161399129450502674369397181362772161469195252183047008693129983753538971004684521307910866816488762675801841183848967051559430011598552574719720499233042588077109953271169566186452625832384231468112025914472660373273837148217600507345113507319999146632206602164770806808206494904449012102548422324196337957365743838875299631858069680683557425968823231924060272778504445682829011502943078046435239974466526275507177226715359137727665599804070550938617988243247227005347172378957162914718043746409679977222216629359434173943706476023894709479221661918447725990759625901420006807271274671482317050320065837945489270785437330606762302475960636321599565337707895718028667170737515312924723951739163301837756300287246424278856628768561837719204663414498001862017361563990030356966376600754287760152420401599160260222578490567923011797553796874467381475854324710825768615997087803297220468657770216743201278803667869120164356876429144852371786410514481565207235794206994944451413715916014520568544115883606256771845225249147367852206883007621579238054977385446400983106627593930107084036417275123872953275968313486067324911099264003065756894993005714236265420702211416173340946445285810197810596387679382057840277984107091801425341962384874497460796132200337056614878766288740687274537217422257102794602268904377407326851438602409039737997179878357879851079814620747871141547582769783437054486279552111594993540977890540140427974817786947322550328693718428606982232505745465642209386040700773709206805064845915837764294389340412403996559583418297275508474518356209290749139813957870842850487686654350926080794377630326043398378955076769507600539046548652805468252034604918095343255310516830864700011659326351192985583615423419106406197407691457526992217181969361715016087784415477638469097183298592803795267948326694141685846430120828733349074016227269900913444335803405765916429198588567884120390492406250695686237883026520510636075617341280524364150535186976435611801256888187941125339499569340462018461942302269277993160455653161758570948679799294204875129942405242817563732159859940939484038254890351250791783440733604567799255661023304105633047715561361227472478446331581062197912701508792305742195182773571029809558862953146955049213306390152394527021911797188611629222219208221512021910139899084253356711626352530767009226557610954715473579009027302890211929972838959594115239272028995663334350606723377797256184588854820391688462044860573116943818116182788778448947775608045199246050715543745885317456214220345337061972221522310993347951996979337901650985347445240891979608535755881532926647256538544196163732786801629690748430628805805497294661859054352661239366946985149064855379907767960943185261816013269136869721944680054534065280543846287558741729658230459786616086532596957135189644942064328350555935687497035282177756167022767799748963978287260086828009218911394471090973600469309089869708868724697939571166950831783483535858794874472699966698368668927629367028333295085867538410609762903118771767129672379815617643365550298006672514771399507642654442398963037174142485713848480143652985293805428539041361222356972359310088208303067557313216899002630701720017985517921668366404525113861289913109209952284514474874856817937960095807055450953562840415766074886829864875023860774941198660092676661406570002861203270495020861870006915772236675780562158095024845210217780630195199756550044253807468876668618945263636118673508284774861790790126719629163813024130409167694786570859376748228892827347488870994700406549407271469595217632104307289895147424407176809002122841115616969068977908350589112196610740313122769258160783975985108437575088410195036951786928079099641810434272619495983197548825066642503020064721672202995554656103019695167075481378151079594704862182676543711784000238428005889172159548611988060226303886554820949508858777995314131259040651305848092548543613221475006966695942498323302754819077130924263122618629153637356402940119493686852678187553501061798031601301817357188107991859907779263993807086516157614907410500232182169727383608119175495750224935233677275280115519805084718347870050876655596046771807079118560279519306177734941142325865476264320541496341435528432143995025775198044641919655288464451492217816146697756386690635276927052652239868637087600082821450692182507582735461454534656038090004106020151962485737461016441261343218333913998502939416613947483313088263762347516194875446649366618314972453433333910577729953413995239063816030108195114209305982334639016401032331337098365388417446595194750074765106341246018644961056970727438758448930156329544554889001801982295850519834222341083866328805231488425641378011502562386295986056790835998730408862476210106372157298170302151279532771943773246379965677851981974112382498600438179439527109927374310903133889667998923574059824890163722458356320305534510930372904795672609931296542640507232273545025214505162779490666932999259501741924924716735624060935158805108838612573005833045477055345524259741100613421597019678698035128300734133428271263013934083090767395166007723436933894889139456819494390064789358524333471872139551839876944052007462319318584434462606421885672141795470121630070622985376797717042572738263538574788468154966661648301707761262995589663976433067791988067538188825274959877024838252054576559766581934327399569523151263815743649024440302466349369749389916768320951372770896646605666212804095388045980740334657645623222286119098123241208303860368682984666705872941350676470843101293585919777492556265174615305811944327922611180807638525467695761169134069161687371155919583682628119098270181567593109861302444853845479491594407292615466637436050558985925426573801089486137028427576184423188971824440042825913073482309732047844574133063377663774132238288811195572849953293258354950634547896198085757160132911205380130933169519831402273936619081613704575914660388785593443510574973429887583418235374400604070952067782338154913245432388783323373792599235519814669103785888377440994793565046498789007054577961933483397456416403963891699820619908903273598791591569614061447579732900069253052125225448940925640846899234313686153800735873252693264468962408492427786930731613313016978739714117787745677163714798082282254950199094485293233624199394460110930978181700121778351610222971096520396362860353227671782357544251052160249723774074474597060266710020625290400698305470677278299087161621755099200585099805889499773527318481949246372284168184226578186622917859649157363739881751738817616911518631854243066093675069011074147402202396179705385324637249448461072128831943956037506684838798466168757474332730925333089916537881706141876165579223186717063863351001316857182729345930194409173981488301019540350184791119492926800973649296084511930177983577419576535969188943246887241005953676977984181029815213853714426572383479519044344305444936460956948441953655736376835433608615335283053509815604157026663764972133440673003087252532189564131182822070462798263712294775486444648936743900793831653899290283804396254068341776966906855770277107580511029870718133713724210202223604542253685703999394529677482095577237829700560721059395151486221971062244653783839901864869577972619288921256130684112128970971029554196369042188848730697366367525195519425495965427621176467329845744557319216222038855016656923812174346794607261591924754669050838325019880006706483158521499960116951260169556479660117825643859643412119653172430450940297230833214987970852130143062048003813507117635864245327337578882607770794004770347360259398719285103444220738675166090475744732356318041287584855857019945116024033266088823139520506965560123057409215553011271818773246837606327808638327813841128325463303526584951298797342522231373962512542409465893357879624753962789233600324088974675793963724092114074225616526305790891457106006458784055508576065026901639305986827801921874722423006987145611304434698145284124592952864017585906711001175397122180980393922269423814554998303689670078203796513303922533139518618715184479628244285658453827469807610873859276098180664350329863667305015545034644910721170067231243710533384476331109022195416459580449155569258323943737961552350638007598957324967355569380401888016988725043296829391026766469861903315505631586733182236988930229069577145471181010085807653297029306358824325877537996594290966118645629405043913551615182851317949894331662687946799757521176569659048687673711883312635453869192529058771636401189918538887222239885499346054148506343548641987370344783082152277654319657647835315625429980939495982004445304698118343227642511101867611134853914027343881936805182566773680320156522995427183091704976893758870864991022127513136964267958556543406278112466013791545978457064956485950398002427700232959573592492917861558032466765930925472903998859253896399588189439159668028737527728281757704686250424425514341751792200463250081171231598028617647349535546335814240267754934135434605218603460020154225986910572542161868237784207098230382492168380384030395947397179402574626548799547539030477200806613149539871154629046622593764728879600848483013845795551769755148170668280566490986668731397652082870967473974745518249005588442653952340858573993858929147886597793022764012390842302530186669743415416037474150347369719770508462917628724825758211182980692216370945385110026269965743469640897566407899211121907848012540197829580382153233490739010247467608908346051360113196698474377011546887256803482027546383305887808510958059014754588389152100761817612734233577099190385494038476858400182279545930460629379992197564462760873075543305117018600569725467247849464153103577522139978946141883257982841831324691991475997682899399066431678012924354854209832779742342179945708386341978403264848476023466838508608464856019156038470288888461556725895303051286348361206691934657195466559627531706297001845551307834369339296826766220437330579681502808489110421493244200197651609330089392046238414424082127351646716851697133686105880930708058428412256962993554558511773661339501585163397135052360702385321397032215863649599892041375120961502546969121389844787210597253658446900894962392215891391245439535622728387938766513326295331641066484349594099041684248679488671521647879064784274199150686771726865806432197830559382385659644150898176206579362258992218220738237617987161441977284458265553528926619011751367456149728134435686240616808677652184615744252117523638660133333071130877777812551670569430405025365705770510351287266755647503546720579599342020516248713577041554114881028173977105121335330906114278129867417064933579993138504076782632747486411667558821049210915778810425551620973998403042893907687296156868720210905158227125528176526765785448877240418117394313969565433957053990888901612370934238274833062843175172678930814663906830768985700048222943742253089769083539890872758477133005199675250120170434441599989819848326305402821475566152189516626618141618237566965272495609369814107074203474884059064297623979269626784090269342862979269364687660943068172133040589921303361547498825182010847874373749347657210116393998737416767428978556565303389620446864233091851429509153762182197178119387039929973234707232237299438604219332206451994987183373264414491498587119003087123208304235258686251968888656439779915755920483539880692937053498792345624802157834682533803876860903246694708317888059663034544925994840257733612304944340980373349367524319233403147284587932627407966460058358171074876498843753693072604034916374997239045245389211743315556225844929949035156944047929605210303012999568137161407250368512332769802330418039910989978259895498327424465996516409487797533776683614379794247101045594905470531893724486306792015550969374246996688782763459671136146207086102629633050605519050880072329305041356342436906291356130999069948733044439615030982609351379914869924605442011009125507331804548451848076112794709213386318439098766617988668563199664115226378461880206669049421916658853920683945495104781389034951752377818949425301547801086257598255933771974469590030346606959286143797111611094823456807201579176139755774084192084091444461866137568219576834465751585310159998110358644388396987557642694890986282102824415803131272408273851599442638330657452520476566705988028242720474446052977285227567408760975070715230185157775102373353150203675141843262450962950452733934080692792742967227637346314846909432270606059007236146811407852667491702114842397348071048483828561443241716890346776507355448368880096450452704166728359677327030863967861172871761959655251473322571782803155416251338147300579825973568799209235992015297491114910346350268774057218724056418389330346095051196806962236823756799294083494019057128278159723773691462366787893627227058800769713168670079195453799978949333842458474267902687352604159597192699327911395598638873992670753916374819949418310707104407993299553918000086927269196766309546322039101602511456583656035448979291202121358674961771073416608023095441849192424918411926094377471444883770406898874171186646285245957712391826790370066108847870340622885402283573314263848455938158405064035242082696997701492468656238101526689875780933738217957856987860213859862199847163645866476290925864253598731991636223637280790201326077088198572295453643332158559702709830443487194117544610588883237579216079310568002638724785427808676220126558664222781926446153391309003803912158370362041676919680079880529170001065222174694521117918535759309005539796504484999694888396494501464261779579308953771579437363436664719753078306638649276717811518101515057642964086687128197158715404416290367068802277342094821522242710610815006649031319708122488948358628163084272865585100039074968707153697763746738830495586502575659969631450086122429354969603257807611484391363776196561386574113611143369198517405105516016437137595927684244364422769647718726112120319040246974286566558661735491122526849698938042345754959604676914585436269245789759720064283039152340239051531163416042352257278837311638549406850966506530991153363051114266433182455830763008409093623125617501156967867551256272860670063333787821833085529318117143637356290244230971936382515837702263668816186498008133857941891364244078348527038571205038906105565208192141939542931752262009406257173976759245354812923698047798067333939531661770651843436556441998273631440407697740696117036445362892561749512407190470742280267693923916246106993509337079076066819192705686271456257513734756288060482135324457939732954497267270729872059615056671853410572849561270577017539131901222288340373110049289671073760090476280144081632519823320327937889297127293968975970760076706497476307113288773365922240614334964462687231096562626458436166109703832484850944264293699160162294872842728469866609595782543048775766827971725455781443140292809016578244521428108585174276132774214533464737725312110268657493714781469830844621419935813930011312539235623109778084103505996145486456481258616465792852414605222408476006072144663531745327273189453458395698920891853479812208706545241876640881100038420811455586342333306402617231132873114259545188136856794723140689246441162426579893782452281810085985559465121426857562573576294356642311706665930026282120324655309199964605553880962246337862446173587330145047878636187951861111370728029540131787490892628549189174512659959564626550438803199005624614407046397211694040728871165221039557653205734490357890312545271314990242391784614985194444285509921849852401388896553863561323512353771757237481407563115711395200447737796771632116953210235502743918845105869722471589680040995246401420272064374967068698982476547414395468215929701635844606387581780844630978923159193333323494362024417994883422760084378341152641050942409365172129628773321583081167412606948575665198845398691285286091312372502715994076271231452115515420266524495470644873748381450894003111325766163610923207774782143805674202476048823357498575076320063640107121563825236040780608197671531784356441400307769038870311126673505872910215798630238409588156284287622059031564596331802019793573457703102341600750843405251875186640111396206453619378164198360262543125709297745403129266801350374569844480192526315432087844019696541398709194796390131203132645384096851105994722416541607180362381472490306748945501193375613964859994765813520579954697122618412497880238248721278443050832507550832602870531489769839210902575825734842796158819659237515926515136369310825903506045750633748396441725874600862999742050879219830329524297257907671745297907933765346321396018070494452607993707171193629170611322799978123013052247394401456868190126872608493026520779030282370516965348269229491223165066696419807194784285105707343690414349289172043382222062864344812949432893351177628313383653407272707323367249394103030421859415964438557519431187254626380620409750188957010346014783595523257824488258708533090806792135905201184850089205942777776621683508000591138249871593380047072633487167936126210848891208271393944482648365694730818093813345197505510003404018788196977658194096870380986494825949772686668073318763664801517302608187720788500336222653330074954813668041094383562203814141168653042661319579127241387467030787364092303119615436542020570365300320169551784342350071685248274509252551929993113795630063521342793932810337595050147777101583410679275203412703908723164087256898035576657901292159985260784046203692152358491825267982472867618438195426479268677397604875175158101107552517670412319708733441557685285612404115190687916844440276918112733277052115751081408996243349756155712585507161990852571910382831474112406938498978484846529589612575600989940481006962261660925618757440847329178942961749346280789547595664536254607867848911783501089519762565909848494896872387611055882333511997814531087439112018407213864275669813244416602393812379526111610644351703269100482471724349254112067921783478565798935725113120016127219958859794276948694184096780267441738408390578339997183927994760772190026832479232095711398684083350980467600360343080662193815618839036463737091244221693524365904483915364791568803576515076066865639411030570080490477694785406834758010838093902754311034076351276785298372834111918356004727357261984447407740493272507632883380841876115124865289030207621604976484052489870708578116452503682061919540520879407620057558637275393301631103970422402839314738275676387341916251032984210406054450396864506526545676904517165557281183501143215266419651118604785598645386908512890394064271285281106474319548226606930459796038434483320790595574235674950774245836298728060468882853112013483345405248848668326517289104856633434073029347256530996813452407553967650761060584934375091660027036103478568945903313202084004795183092687393089828342214407740850781560056847677094012808685532165967073685951344088197626883089155902909812750440099403945127387735422778499171525003102740242109981101872618455005219166649651740905636089781529060736329136668741820583873779852739602942150952181452230960670484297471773932217541758418358072841109902440568402502493094269526932182444844402209854034816574029971493540912023721396119339303266530504704551766836487133791353806139840918981127759679961695805669954523785003961825317868762862821886927016013470844021875531871663745917265366790421903518068660494696346413002706828153550014542088557348424049655041234078650153830247572081379185541644003025594871760905436920085876281512258973187765538007009962849668627987469626145725745357069040266028809066034620178308148664405634553957626644122879808023807438977724875996849673082538761983951785803025187707405081756512894219289539315698213770961283415363867994336485103949271849573500685976275729976757419394101218347761367943594137913385832761817844432281811594926991257976875265089329183880064720316088582630066645559921249979820137587658803283858292785769996883582245328966419347691059482518060075387322767389695009671935989487747059329937118083702905265276688871898567344038086810684021613982491061637896951557179773638542714580980467549939129276476099787638509589209322231813742695482442988605795743790003985713423192474829315254102323346092761636076840610202029910547254955908818946736539367043066457644679343232715519633475019403065221767504752707071049420740846501945793965343972407060587296834547522565424285360789375951682484676073409485076389059305516972611993177828778166241290608820483375515125216494224643546720383125989016027360503135396558288436195770067668219249024801827625834248943509742090335869227694603806669924467256920271538637914396379025832755648167039819591165148372327253771169557292777163568855850760286497016567147052976863979883992763962148598661868438784328768365908878638622811863649630629320023850048150380504023113701121737586080624327132405983307028676912761062555829255100633431710136545608538285865231462076005651423047728927277280553209378240392190876029287874930807658317669595196849115414424931678833105961152763161754405655413475882532816937367769947383471195952673004695469412184072119986579538006163316188923575278660901758154643532033144484699297265232731871485269522333937868946722986085967274297536136613770850442729602884425214474702307130569872141969059423169631832934755952228599212196162326962311497813954057770077261399810884818663274215456707230321684404608732341973481798241274837042235464180218534153379755404464147340552242561568470733753083401022603512067036155507484227323640763179238480484448999251405633318609237305574290832149340663362492727688888347904121931445713665357155944985604754041992786854414162673115254612208066522187992900242233022934284404440020884821722257736045384138004866500094797768203497540141237343539116140865493947514223069045412197827073394752671725656138671525431378413630487554847235527203754980762298479512727331116046708380860872621487211099997219917988269979241642076390204298665672356104771224634856472465159424137133454654632866938062055512419139238003290241273588438263024973414010906379687768488745359162556397413022991321496064961862405616200394194328697473896217153976026980546287581839353882926547279125465670466345484804991749513384220361306016685634672565058072747224906896477983026963795002825380835624955248427562537205795504482285409913417391942847757196540830775934055837559785741828670950824325094494733430079416685153055025578812651024450780822275139111740505093330841071943007194072651951191827356475572564969615643101701318573358830525849803724151472892587277451861136196727155517860636096253479791744458380875436314370008035317582408322705198491286743723146298482610455147595129561746048814312601966528739085258073326594022203376247639522306204625563947228161660042333363113287615275777311321922905830059877839378955696190300572735763431481113847586733793540613516079877037866649263679278192760444587421934805016352701639676898720603815789432099552550879974507657930531092973060639916536399385668357954844799417141441191037571904662280750361268259121057180958602383275613097008542216984280218468686144152330722759642333648423479297548724035589432377390699323354989633821068557424347550885004111932215785572852309387706137977295483021483906037376755809376649907660559245286670145908862055029931103905721775620474850080087861940656776164598898967353209216176234477863967697267604430094134968093929275112971771858571084068326304724214991274094421142328947943655881812944504780787552052859090404043267452486783663076046364586338199949145739858263939592270638028171523880340341960444136798945341120732720038068295584833362210529570444982416962978759632285925338748022733779403564444554924414915741232862268255045913864974797827423575453617770172661851827308921408725662926751744343777354191660030049040131953032013152819883871538909619809277895528152894849558469322311320661762468437563733255037252944274436280439077470226343220034736872486344763235321846387514021658314055387207982970363490978553918407082487007666724895715840109089975731696758263168821061132021457722512387492237965369309273548598323321357150226005356341149762052223297468805070992698966519575712936516025692421474786824122277121270766462394689568076183157742501829158195112860955584529452402257221105399513727729357512826685477418017108202005146653036507946254521474806421937866610870123072144064290285049070252549802565659646631312699575392812449330632055173268507739497712954973018454518975182597894533630165859924241537849996288675687878337997155685629996094359894209702291419667254738529698467872209343633633887377202120145042186618493835031104772178951419806777797662142859836855632257282722937824977872035598361782268346206160916291302209421404643292833261831651922452236322182313732893145397347210860837000104926309741331795676511896029706802056987980586121664801776939683618269345222842172006354781658459366217388819691639674346403741759121299643080032341386362205289238195193699745930591175920501154905233413138005224301885011084006407186917180918126458488938278214090423763800622723747478332392277259463247074747564719008278137705426854848131754785096474709786258962546423321928838159235431743461452804723405633565829212946378565924969549549695582004663451394988593934487448695705059935351467099310381810651775719877466235054775885443897114566583327915491001747033438174739956061106701838898524002013033521639742115621584391013192229373925098233976901303194950989993243385899895128642894310894375947650703120524997453922467589759707255278636478473241144565191123825305131756066262677253812617203023246853978317509691355932393619728315285148702376209213535363802712688980044719301220536400051248442085116238725380348236661125702890492623796885859991528676078868198076476735237696655365721106355561848636791991788079744104698303634039972601365511535442379395622529645684233745633592784144599689605964731416298788523669725150367563011732551385513248257988075911452615333756415576991793448916243540641181030775501019624880967063375574537791953742779387291153148240642279990139593108337085389820344873820913393108093433667837338058763299230885475930010880496399567992165223427182661265511941247578654655776846988461673366147928634441644685213535720125289931628791554045377310790520612363852423107179166634968924976087356579874989249159007146240315040255280387243411917182274370547902925227611689152385883037685795159508276335776943974047456424366122257519972481871341963764996381980093480630204687403489405225746109154197421951307838445928644449336337060910415232534380305629101158243137590298481391068441596124692843533806933536877420767830741409139996359872292551350293845807240808845615041161311465199456446205549937435493337715116655937521106465039198003941420030165092116574406233879183944306064692338517158102365157260226804937859804786186189833558759900020767168401786338316456780154672160589677812306241973679488938284318619421920973730135820912484196497107513078826941102802363561167708650818274069847565128600152179046367392604837933438401193386092267444812381332182514508195399309548780359234996398734856718340613850054255239473764531757574752901926872636999015829826574430339061011610596711524118629865972531310314054660191803096107783332538546903322311106571070772136581811834378817858683268984335644494173353418989959675827025150610690059662760476012449976644507508311749285103247074146837189887123095517020547325844568858425957664180136763941220032482229821178497856964984516764156976227987448846776745531504330149054436246560819502885972782916731212109378552511799081555365562946602912513694263725349276320115186767836190726192731707377114568606795049890826977325300008318427082670178211983206331878130352032096304064141266334519682625539000412610011985949211954945888629056474828453300684956361028098524072698496352750123389842774524577271369225947092550148427101262163025664756931144612436459825086704961941124159715138235544500507828674919827278866060744364099073729704960739117716461695401364486373427417327297046406717139099547544679920426267094324034142033102677452665247178466912249939783578408224764201284449623875410999237165831278684072930711693879102150903317716366920388559158088600680755523471778732648578093076872183162282658884490733435470338784813006993885573834626059616899724464593214637159945599780434657904832044401794036978825626185582687013576478958291140816367713409423463290276964618308200107064370598558716371654045970493400679864920532262801620328065812463385627731436750170074596486573186041112859886478434069168305676457445766895808796755499028584067711561026695331099515966671107749274935710275849928128155339140225513159209662155897289369112323661345656680392726013728123078615961952970642353705072383433389582934853224155888372234877975570380742734850317626226958589211426239725786287512215479900451834300344489213110276455789931534639866682079974504550884067101270854910063079667083302696800482528794615557250063930466260335722429164855134501078516721904694309631825540957192592932716215780514541271516639231853747977573035929665567320056548871329248348094596795574460241595037089064166524109842376943514432660050838246004681282655219713959640815987071841802045502978443304454891617454317489459368714272993944876441623136021453127605207337562953073550735332329471616128575583650681824886292264427377874362020407600660867105886352415211255972053166885724246934897961048421577577848428593416097285662907579456769402948710433481757863314350410937159748554147926665951726508793236244437571482150145128413330457385054180608520969443971527166336509681680966452040169977339493819996049730389025772373291703601286014875246126954613264879407907593142504744655881559285278363726533288174396070179445787349077188839640124955275947655351832264600332527386741958685859035218893442237302666544501572994881988833982865855473918449713379025828344172799061650312721738302502942492951161799090542430632798465264671975199750014182046369619184315521264008215216592298194394213523271543341741176760845587698396541872058383925291657672281594100929834194366930842023961545544228023428835565720167390731077040292285191238728582044450038993412827499762828917198494259315802708383379894213384543292878115444961002407992998458854831772350292851665771381285228187321397465865783650585737410226804823883590369053274725273412872586488983682760075106110731107645956933267092696696908373270776238958775389290126078959210258270512088660909369446344535984152445653643806198744954913918849504437623453192289765291861630081691448147672883140899665526424159846196371498730425805610205174434101645079301004887172849066086848961916659681858918868695859003951404130628866263533804662390813491601552496065374318015281099913855404867019384299757819015398116186126665239046722559485372971477743541284000930926313427074752450605464845793318836213865602674272861241722127251014617419274676444909643296873993173307194024165840774007738320561837780756233543189798158494806284777115044957229955793642018078948563714269093446124160301752462100213166094235957352894195244265210347768802954896643111414806215557758300111791521101311368980035708987126303320600167775446501534793427938054714626178169698491363566986657310968353149970635947591409096747892890515434293359232590497236722783660780802071585677434878119628270638651267237928309118540825533157761083553468276908386569347436528409100944795082122074120490011486318901125539356390643635997182532800156479938968404381714759767623949806541375404385537369842764573075007872879072509723275852709482570392698619526639153322796274506053231379064176303375593497543033941793536606521608161430421813856790117372569203712381121951015997888977118263152156440047930728819427523131273838943876791516351440018942245942215437223111383637654071775759623146002902122177128927575154807874692635035186216910887783328946263263717822900482818076291667337198778994414084112303896742993616424009540940353237691153140286847549478874250798847094580103537903555796307842237173702407190692078586169185469433628356716201328109033873094386133893237254869733260164205093871047454408646401391973347348106617787425139553582782773704020116021986211132936641634082438026029704806962643886514845578175411788020138099771539662133802782740303973110176197682468319914017363554377903243287243505022547982499038319365178051109919930128397101261094866782746631719453562786700595555177631744507333635541604559072445863419773558774589826865270520317686932729321537477817852024160612524400805731664581670711470741952370560366871702551632666639046037559376641597617808019220061007979635145027412843954897987015883109838200401974558873372293433608802747548353845726878316541288342762653966491628966232673258577187100055873494850795139260880865195775511803613701670083483678672867919334665178997032902183799389947860186772502015285418183146663902213015528496663264280881342071512043304502614009746363048331160203027364529599331440695923046961265301322170894321113036981026477201270065777817043147635579837276367971407869958051247035650220467438699470551536264500867753019640825322402839607887617586447818751703278276176810597731461089340103288519441887768985967485466085544564782384681437363707512087205905135199119045609418918126534125732390693059484061569681963300024520051693079439646687366337890140470912045213848080030517227162429466655746255813909896146927215184863503925215930648009217353069608924137777246861877804783394665796201259151816839786048275237402371628201496972081337971194288376230652075228135880899725998485439566778098477869549250769005934021411737246224336704549030254634513899810834767655144052223486180512819957557955113123617245625447470292519498613870406936457578689300238752783796360603999183958892404923611612644938325611954329528522754452255319171465483344726907618512865907961842529663099482698412669363005450654167591529773702588152379131008542143244761709528213269696298408656635545958695569211314998590770251394868760540593593916504936050813216063146392884150447033368296835102404863730129067731005067375661191457760468032044829080069975280674060031200729302908357956574708342652013894437222334563121669855779946271702214618176552358822703594836030369432157464227936894573131053092274792156152308885504794582161562287576299404422679392223437862720190473948315227828833498107588054133565544662369316288217346879600537789539417329047399635251574737758787722185373242587660572277323360705821843282355964936834185712925508632540418325328170375387312019886570269128445329800014240967547465407904354165344829189183164567195555397168295104713820575001306683369860409161317955676958584613315659007533474618090597943844334788789919231243866299698183772998240368519731098816418950100497427730426943687449371147652989740700886369603486895139710725915015765209514110217982223203628509194137622711664012071928440656396571621132433890736622469001970958941824552981056013705401428264033217970610225445622811901650981038279832588898362721376595815729710863917652869057191425788907446632121232430255460165024251750580417258513824573243496108495560676505759557538870005174193067842235965997194420917811029606944880057109895064515298468850850248842425614990396259207136489752914486214223772627102526379365099022726616002221950615515371254686473820048377387942530265685368060309420748096305950913114291150066022665166912582358000600732739931184202682000799865288210497028715897549574973542232100943709754641196763103545601664204271182948030059367471298600130109422169971946158271339294053072226916165076172771996265089462498804567160841160542385757682045129810884271303172684556759574581475767984256583510958161528359904890976777541445898995155032793426355613145649796249480358718641341149197625289488123566685249978938676140104482401620972784967111418408468162839625074468807011408971995112209873049347166127575203663026609493925184597614141806467283097178548212054184605387944055006060981235069920304398678096415580597544440945715247275189565106726236647420335787692745480654526970424717167463095333652441580890466547629936622401623835781306623232034066468010005398660327492936452514183110286899575909406198911679494786369742261820698700752701252488457693258112628070807549729474304131688490059119626291525194749620670374984849395449425408966871605612669221823073040936838731459875129053066052275972076736172551788660112492926763521278624592877499084535007516166248232475724978158263629258090823722254870316665507380852880359142340939496289831530041557248593148972072910992734621619012558385968450458931566842229984232360434141668606920110957556852131455360965246112255490489352044056825363359496359470714043638503414255346502022262090547146689319260683962145478282853122547434056261448892032080281781708485942166724701642090076023435115924141942578044076986490148424692926456385973474614701424574095048336484289783144425700590706014236737625680364470525561387683387530650225647228761207792968103410187571908737936450940912589168598227572416651158142544687240173506478924950557114432043093090130141925604999047951678693890487556545335465456495961044116517387378616347990193924607405404976827541527319595981735163028628579165292146222212792118399924136178399428792702820991961431715766179596668171168403234243278070865641179574617308827441734972992523652211713806876338450782723460348184631844968850670571971284325762624684908490990433193346690447165972175014566599858382750147675996052789722914812229642570487117913572932875812873766906065965746468382751738134980253427251075258323821232419839582115527440697735455030768084871173523778493903569722318108540099274227871984973558684806348847601350086826747867746374343284292111193144202686881262512100435066556289376595788997812586319539049146322833896063921119686661851201732616699473618781363582090809341063147898835156962355173149404322490948632233843817372129920471323785737813440295325307603623334978534059386369617302136139434930052362356891930571565771149387102206947300169429498426748742768005331271125332144016120302971778720558491501161374732557355766895385863969543931674901009002555142717386057339729845613907489773657820162800761062947254953666558126226019247584457836269361669363316648693027530433435999553454177679607473072501086655967591794330929237456243795179528939843195702319595002271672862978988303212513806470433125297867382173953780854703154891493921134571011201589122074759975007467881802237455041741470081397967371369323960455292818746393435542993478858629783306683375430643758049286215022932145297177462339560074143096599530688750851787524769547699468876489257069296416236379333981895965012463840044250690361106476476352603978655913483351733070114674431954835346706787677031570537037439783920693560914866312469694844933527169523677916622026149284176344916885890564778500765705018491192850578477633530592091543079711454585660241464650736983195031420068157981248935383641813376654996509758420362427066458849095359825943624477893366226992066150900540756169058391185650324308647657285604110231926174845798507896200693933947570772796990036021508234556505768900306232218707047028102728467037862389305924414462045966340467398876097032772338208526169397335922407023989853784810047510938181279337074214299937397584543477883118312338829703211220075632888954138977642716739773586653385815120094149984488081642717360233013730120375058498424733632162658081694951252689653470102373225394613943420714524832724624734015673032862500036761798918611156835182684947307531653728167969662813318818451238491124535322406986144252060360762529756667986557817493802745106031092405678534228074483028891994282757471036098064182809712662444210758355769931256137608846323442286652529448653598603423077967442272246179445633546529690294809840568898093203843035157411734186320561420858965494391152611737116322454930291584094273150708599960267580308402738112392502076394485030670026443054532008600669772274273864239867871720630040888021117135643162129631760811880864503656594333345953139195346418259719616461384565614019939694918527811290554054354004947100594750523893046398125927476404175924632911369763785847598592699903504484945361065852235480921994073473650177139906468940324754080511144353072328225304863130537555827263724227858178970121617121419142992205458158510324371487976814219941299499325718041566161619461165631037349008824847931325020506111218509726409389658191650477853892340580403303172852505520292646968053125754093396800298566893339106339841490379077420430386768094318579411327455715573476721754151462206755626168353625059489793616543317834667087640931281580786904577747910747924721480649315267769234821727235179736789860062045429667314623665540622457778291827358763807548388813480927042869349722192628379014678537090302663492253785170080437746479654057975102068225211735116445868598221669790509133614855112889063132219484603378601229615329405561773511207021219132351362051426131960062030505124669570206909854004039722942379015529391708863559447653003211234140025039940944356692764486565977333391254179413494584191916601708095546546268406606497753311531366214106070296094380188710462120912479400170257925289048656168916555025076772946533140506723388982111954023525451047068730465418682637902005949689566197356867926199973356741260628907400106108379431922522079296634583232252485143419934327249216512368389190633888335770801149695430234139004278929753009555431282869875097133365775468745072479188415838069520252751091138091662769048815860441257853058436303770271432561212085839501643474920688594654894790238383900850824438143099851562015186584312604082875057242392220187834366874026101504964010494026317162069812088151191107718971215918372576489425248073956673524081310099942201227692733882202312732907037687140691635960746547575361880774804762493469778408168252174160986634972181361705285814327238195211501041966181838243226714548337312703611472178145919737032564864589443256453627575866188243291722676166715281256008994216989538069724868939351129641588338631391585521751153007442722147379704739893459552243330523353719548160179665808404361594636922175513938559206191008308059881249066886616234279165746200967175989278858197993436056348069450160736943539622163367950137575357801963881414438986356416985536593813881520098013314318497226415052179795560050583042968548579236572538794879269561328712448024979958094114649073491070532284377488503958602409092447124813189832147220835382245741258970258620396795432118907014696819872416923638501879465728526671356024170228105070538880548745459921499733301622427189592065471424329985345311349049763677903665147761025964808944652941044895669915016394875990339052171697894889815114185839051452298749007297314464930818038521814094642867741227724048754083067324100330583269400430578540202832310682528691278805952652845424447381669299855999735475145225208003427057598836107993227474637141508780287436150162486605735985325992855879028756412811010403226778617823096858551021976598581821539937467268713949457742141009091721734834567028929765167218190810799822558942679359983503395700778562678784071816292077327255800054134812778802697367415528223234779512451827907507526935317479789341857857789003784553275222383711568150416521215297265452067069623716343997926624754412251299103388948261205416455816180468857926094023783094178199551670847881103352297856198652476097003734390128970406164331272601970820921202757302783823600507400762267117057226996567226597836012396451533386036823029777802206924022045961362633366280191403670127277755560548098468167969424438809268940580663163434208377907874347317886790713410601030889999153440850940248004138340223784754191561094392897459665118749073228031122452464209427273713818211119397419662667204000439086187545151355364524098429289031292968122571468480326706153224875212911021390734759873598766803693157304898662578723708217595205984615005297100263743625324358103518260590933603551240019070778324895326649357980947458458926390380919549036497242059618507256002493185109211353893874468189601455009299082856258652704267204182618939719135520285615874219612849844443922338427637367799144039799719782326012836157069514184289528981033823478676365180287353217672751494804900395813898895807927153156412347225464169678407253248863162311518106315968296568049135637664292586704129527661420347838194695695921822139054735357617986282515608811941743142955506042450740282659361850063246482774003187557759845577573795500086623347821106089241987378864267216867133547648198045725234103012654297061640597350335906632521835955057827880916562367320639524896181057481019604974937647725966374967353686513607066133886189834008473853612120898818585162625337964142406087060572739958652076510904520838583898085153747120608706938732305433605809790125713868304740355162807109321497787443195299480721091935164231759770235340849512600476107528216363139696629786546403426380000819555997638558631473422492685638629685735949427723419298608686297194870216767567574756842771175905642351996927895755423496403241546049595450454578687358253338104844731640644403306396181968843591688839278247454863403728306512356539475235764787011448619521702773639938762112433910955699281533752795968771108346784506565353439201402498972660651457914242429579976749546355158116407299412433496025240279686312421488241066976084857978353185148612942400015540271596292225683055247002644026116116592769084265071656094583100205451246182979472197362756477247982465621158478197147110021265875585486483872433911244851656966519811599946333684862276811411124017556669321110331488344821924268471307096627375752162736671355047085150976636726877523697767230785500865390314325760601211585742225514202016732128551144398556300091587708349529564289190517743036092219980928634078067009917651028722922985410087902631589363146729895515177811941800468034114254567320085050077793006867363909410314639496304261899105873133718525099060097880341687409552800973765956020386440537262024766363050982304862093458072482893519920737576120221038701572402977787401141192205375806437208669476500843306252963636699820011224201780748406202580507117795335574748255426923473691561062081443772193141977029060615667094219758090501279271827481179170208549641378568097638142009604690035421109002044363678134297159884916294361911818723883149854259325259925099489781098511694072373607731079212886865190234275432471791916529048457547636763576696304616094396020201127794005120308196127703765927366849860905997786114159908322632853078818467576616607240245068284134804718913194427147066616385880502765394643966080487640324710075108575657960919621288186060703959291962152052584378125381733275548198866662805965368615168544918316919967890058037127008364428819478612450492960903211157085979124191012580755781555268191513457966189156431421846128379006245502644710839702623803343201418326622771111760526390141491246992960205649217586859916849132671219695288959791981925547352024612059064791502475624688101114845161720650657446907216689230584911398703984472773787874643662161939357973157969915843856131445915740085702179209764800111275019362243457797559323449163523598241944507934022345615495140862321487084886785759370909576544749521511447933912145191680622605279392259823768801466378687497991309521641383204225755836934043181439989391678738462376593872314296302292150939949312473541895673398970133966808016292884539650019025992855218317924525867358050702214388311627778553979383556878416589098747010390047558508710190234058829721907190597255473811411234650162756783201631157200771863391819495192629271647545737612347331248490140318684087933751126920423522420638561956685497002589522673070826572085777238576886876447508152535251854513486183226942041385557489025837786306945943245115478960397033753074617879044122297175079023928385188369727556863984311341183309518083385730714951279606417103795720942784010633416752244317851871616670255581725858444126190711274962038942823372669842788419082661276662895477125024880091754972271930445040932814019047745272272071191809015499325731644684286932598515231491985967038112786477659168422591770481315498433487838753710390798103589558790421674444611291535014119266132544336856010512787758956380010590429969258880941057288913596566397942971250044459648922981521256795253044592264058311136253456158446755210972648775549894646221487177002285044664049468166147292085386092627281209520780927690820534410381702078550782757326172973173563045317848551353317012609913099233527188699546897778563414656131516286825119820364194358083000114472799885034463610829648054376248955244744596419489853931583795224095626251871943760812702314956875080595247255077517264954621479378226830075794009826621946441394556618361128672688440300947727316162601946706534094858291682348062944019797884947910683404103480242776596419496768400248633653119717395870119907328986620520544298174129621624403936523173567712353588152971066546244947159936995323774264931949091823516446585507631073169968948514184737969381610790084244463365616738940018926521225989371897224823118174219567135516692700725135071500071134426174823429168307419124733761489736669409507748140659910482670042401856515219166070888890953639322360174977663793614238268001702227943139003978800583231114859111788083016167520582207059638840743282023565321085135570452767955345903766338738912460455416470453483539288220233411987135748655820995542460549880841433782276765842562620682833688367105577970490584120368853969711984393433563759998398791461270233417760394220444110472866323227074705040393720853713619410248000760387465689282683633059759737576442956344340569806779889988299539721173052461855883060422172652954891931130366084144603461100835009796114236593917970821738017005475080048808081849981589088906638467217887517573390684371637869802573621992507217466365886273010972702235110884969601019383940609898947669925183706209106688961546368227984988715235267608311280210309557973715494472907584989880719617242673400409601263112162123519266598786306539764549613605334976043089294354557547221175267394994957579874183509888286384188820537907422000568498302972108305495194467628489915029746948593679874891376584686333264909198629870185023789201075041488849995713240171172136485737913176832132561027328964671440029099490366047308827214945707646726253812876918238710078875089772315237062900665725379256845712564388694576917312505517091972606946967648740199062290106664162898670397273850809293263979203316941159083263519577659086667674048405267504818057429080803166272114994562367968051519300053789341128132270495339035216331477434987897953125584889149594738240076468678753218891050997829033812516383189680697673399489440820206429584276573365840753772459483391329551192502531575844865387540707859251881204709474057033237738967003538285789193335269242313658452810266064744530703608180733944214007452930439904234895840104496864588566125333487652984028973907213929434317073882660891033521620332314007779947612686020410648263402516759284269202789857786159437410545559872712260634248352251833860090597921363642967977418546710819851133656855631276540986564695122433736225886726721012391947459536994649537092396864779133869410740807549876460925966053170673710689522874114778356307354806973928182563922542548037350747749090462759537901307680219499516624027196281889033100712621109551276997333505819424326144555091094185981323692024822882435074014486112188365254672407332553741620726031200622011669518870420246798924763234325817538775036816253878950456043649187140571869502522363362234968225165700688564527154348475264994941222620546135790700187352267952106655331815166926278133079623434419369701746240594067171868245781038700336079877683505908977672914385033733765814790175642837204320897135440200822581163613380604877238416280666651269958782850354386877084006701712268493338727351248543926582959107786859119920375351517735042567927791168695732488952883230778634077850373735203372920106146201349258605820904556317569486921134364978690225266074659367377185286696825633704654408399157029926974929438118917877434702998513951560382824139918268101558772475071201403896693108861692004625737055770362575252823771881828542235779281039520861916132067229337658560996395839690780014708315214410115382493291752624730698860449416328864881460065675487700748371174685642077999261269095348428772289372812065346701060832276413855525594082886415941434309252952426280950601286864928655558694394539826101544578955683789890759874162134550828320947209282751171786347760381497623920751700282817830434422836227539673213417281043408821794102439858509567816913595566577664270695828240099725450196278569971773848036462559774435242129393855223199560282650962285417818518033265919438822525649968869286723153914817346837092030585326768566785743208534245079976344575685458635589984371845592757643990759469456183509605271458471917951942020669533708762535466155246420487759424760518921184418197421095969537392601923999055734072088124066967760441712568360886098224580360341531096539598087410451202105972180451639614368961579297309995183379566876996407284439391896127347278355485677605132302284951100069847046070774545511456187799297238686230443629032570446450373701791140136814960464839747227100665980714966703170947021151708256158896996336349053293085830015844065624632846437219184347334324146353767739168589150434514868598035708121889160268693949545622502915189532080506496176108814470349084794001851927468436615651948290507559886897941746962505349523576335630613422049320712222551893142470675616095473012614815394038637135338395645158264827409357684091854748364727349443421521040660572571287949346852099774224359961551681060088180032743514352297456467897797329098273334132913340669990853404706175848679238221506695551026436501405262056097617642417722870927622158890639129825149905516964389322041721443570092487248342706370337746077729943734831214155809704397962897009452444947935590457259191623535078845554565393058320955551933642743715068812232837993200344844767016370526243743209967085018482097806358305844917172438915009628920392809998870001421061697422023542763201634344926175945369998936303612642179260910334698045484101055001415617442994738233964470341467561245846227293631691129053957447859158404398679317528289647900109697084008507984891899562862254553850877980201178506119348599135172309842440993982191879199450954788808182340121802283979938624623424511394132873699497821353248458734744373865194051969664270898583215139907170048683466310923579224302337773322196027013418124770149360014970837050358718480151834967313259759373760999194921891534168730708036417973297847830541314243777223301894246857013673048164054688565693873721252189413192123999225911918629114088596739710093384487032307451731913764165861903111116569234736214681925600043019860789672218211871859979296461819780436505210875993231705886906218290464153632005118270206776917081207671924646777410033987807847804524619219821462170099016752848229921009201010039538377726010803293330473434628426310787566287275751919981520192678772294131556845020656520078046783897568751263436001260132414965138638596732183523131287180579117297110768376236260145687930102781259566454248567424144272213369697750476334685236406068556391035102449132759804129026206542871124597138053915878003319832300571399927553082391729303133382735157401639695767630756901174380278617493965826058018906674141909967492215084462797836011755135005167516449176812276328604195153152078004883128836634639582894925691956713035791908919244306275274547657160491941429471209037439412284855930694404914028039968812114342158877146057195587037682566381345397641312867107582104616111389477495933380206410465246391704988192696769836366131132760745832996175869408279550003139923130778052323554758095842416036500960577291655909174510670461754802800790630519931121407091084130344269822662887092127534781659898507591607647932533154685680123174181910082435361969864823400997124943692711801904011107351345636392616112728937103043069591915809676179825195989643093563867701963241875434396190925906274440411567328024080868681355407891246053141427749021591622694398221682736580014869240259758380319770532749296727275438036974252913069049079939980467323907477608093031194591558168620511425085730134774149431595543815643650234839054163119646552632268630787297281380570999668624063263205525340408379513008233408866040007171525769022806933627033836270991283496414236140290349222412910163171258128128341219128095711214730111382852567698634438973116148129337572583552709760830997045887576613956224915590758400852755458432096213167991400043411172444395046190167033830544143313447753295076710914959033559161880006289664145644751827079331013098827275205904532049312971052397901089718164554963616495038263137843806071233846788816043374870079181181755223693120404270811700701470216414097741818304887373646412359229256768399683724430363804159411256478083260448339333191797062893569760312487809366774028229373558189248795362295031872683175352198703798699998010059046038939375947825989477624840731885656577800579631083186030250149682232566017419609136332086292753853688006667065505364644206673998763919550201858829352453840609227657162371861781813543724861874141724359477815898892266252219532875592655268715325977449024415526549375546983593371181896016653206568477211115754830172271228589022144055698718883281264091690753356300344373282949398089925407556193658625264559188755116391747762222087565412215781953433787138917327287871472672073658987809038908803909138457100988729831878232647162253316526407440246681265915956206884558856922239763618913283710687698154352620181681804089552769364662849783368571599995388947155335019190486189218588371815199943421305501449088916143535624088617254926861547407523405195017009583271222108723858100649768260909953064351884407398763270076891312818870202809361645743856639522997875748129115633206991682601880274327442126109869898604017446246892016114549410510419110397032676152209177314415974373918110587546574937791496302055346694795910817982703714243929819507100170496159264898971176802039788493931098633783484055004497503262554976703603552894193767466374871461403643749893768183145038964856905879504116072663788494158566607175071702899660127083205022755311050504609281984158649788385865066632620413694871188960753287014852353871121436977161818204113524697963995055621772864163072933761490909399802469105471730858147472548957885020305959708299267951802043641876331197028807752752747350995098758773799084684624024710815395142651590212552242580516054846181571082351940582742730847371261077578047090930413989223514765704754108830111300824250427799137177618912178262260080971197254609558616138147885011762386415122863222322116511993286516049384256101011738679934834288143611003354442448982411692262912860174415085600733601624441578156147717445804950992481824032328611198051250773630148564995990092293012984172969163041121085678859297625550881607506779346928188753476854277464845209006410708158408268395224334717653400619486187616221307585487172350766525400439533111948671460028154909068451250698191716064588973731442404087353430770095636412178688185063819836936267354972801622600458808868435331558545452893759202261658635444655450894611067496054904994962103963961020064213641713317546529763339793458251448212200323529759914139866651252126005143305895571605154227362717476786028841191318493250210712607052078824198729101125957591551880939460797914207420950588200035783342201733559686441583046433962565556037933600619501366950134051537756286970829648565077050390497457839280741785982283959170140625119952751438363878686626985259823820710539210305574981324885409293035759534946798622621294355533342304830546800648123564574250025513307154388658444168649099024614381671364014072089756169251032795255822229167672092328901658707613145636207444023884958429778638442533620439172781338065404099991480934198446065949555990880125199705290952942205618124768992082604286550721788269268811207923377059524119339445094643986132290144192321022496004269247907395346723276163022556848876673294495620113189170111959310601659070470434433949085661073567689476879932772892369296218033400008196562507101645580661626085464066140787307120689670289428094003597874218900134236390268914295590410468695147517171022179276695130037220820126313531269532468747639699163182539342995646292272761993263474618350755812618698901666156264798375451850870749435989109453717798270915828462271744846640197234053988371700204291693659498448306430925247670744493649983732229994158466891592689673991198224019795243554049502119466251721917957183777898337218211985005696160404674748025299851541379867334305725275364613896321321919994065686345037307648469085586077880961801372380157598401537485538709987296096264348978017684833388188716420353878807002411792190902332915909173152646483967241594510963947892181528556751185707404215853383637145835681964244585629307535395712351561550784111310579113646172979483021219344382470158569025091757652064524438373082145660676235965262964692001651064826114040713818819748814145878733796475383334074869630605181908641468878732532406979845148326148491422244974540480661876021031745416325073537038646512329045628679436279944078399607696259969945673220825643245712137626175205722863843773690051832087332177439636560949993159247523550674774723060466270641063319726752974296207833184530480166276270372030134106380845194534686111304370590324864348226430715380962841369494575826371208441906746151945240719356906664371946216417300068175007223856956627938907897707466671425762437427249423865191484545814635583355143205174699257021695300232770127699215658604056968255316627136491374741946097933586079240883407613450570077160697896885756204637733506544409073676986269223524282727303908573544137825274186386736497780501490065065165385952527828801730868646836325395602881643146801795397943684843841715131689265441829835057930808376307232931445390776897927734219982139837350708339244346391278382722170126535477591163437358181286576450364082799483109874178876113114930886612572847345121932781203061244000051588248826635130396037889409552293155970259343386472593815470537040278995769911400172876546464823838904341515926380466300971569645945100607430516029407999292457282014988665518730984630409682312692746357698973908288244921485686229003310760283064990067029641069277502880954273601560603193972768483646050408926276054662387146818321934172403758495482720249811848620293466312819732928550922580024986975753471337105362911693153880453389422594055366383726837378453375296243284272936164474634070575091533521561841785901203289140329415983892528001524748487932036919347120966800854568345526364090256015229982896386289617671278904022633593422855803132819590822703048584134597436886583401825497756616905964235595978028906785914294185734518067236159972080942740032695108433525312313620896140763414834695892547367504658452345784868691304040449373948911383245079585510399695025011968517026671175125896744112354060916327065720690830469945107063939898924889813656299136988952182798574740678406158159123877330959874235680792943346676269120904310869443520955700304863388531094582692248869407296245141956386501167375402642530479187889252635595612214549408343474625392680031755647207558003868252205316581514615638590235719832513509641607316616351219105563655957060196545624568977997086974142672210244978728803363751227250778324288384412104654954134245230589139915247786051695741804751350058580760231779748304818459750863999419683124527178266806047491064453533211601944491789888598969031195205982882438018597372530774673006257306035863889658417698809474722809097287484850790087296590658134820403034857763909042893441169542668257435018843753807883216801021060420734735117324426314156080057004765843638869684244351741649078016453841495955308656326309558530560471780500925687643192266904508784659087537608279711668790513779049209931045934592445780471703029905721120488790850613993557924693113872684827671707508492783992576485004419947831140421002596156291801903042366821686448777710519800191155880457856075609398186469014703371946994287086125900861962956312662032099363926005880772114489135634564894517334476702937554059172976917966906040839409744909157065810690036004429960948128728835216167024249600683397023892793971438771070224467431395545744180562836736940030221249221331331542469562894547152394127672187899294664023623347763474796315151468566673669247130697569146635128109332284483515220088748263736653386279347045051251050107149829002052386664448297588936344678885668229541063893936877763816594590833174999771597045844509728364818534964567726865239729499707691009952884977125796166200465311797971012397504017193926462916381635795089124295500673138043766211397817530329653808099891739329640176549807797319365910439853326492636842550809329839064758275828570453792392427037369702772593883724900641344826961617113038052200230620206484214716854979070258686768087103495365679479259825584483795618857325966897092747193308118666781231657244471859981676273484057897110117677524252861609516485640588477817381126158979106414196347873480023683433385533987927101253781410043060310322137806946802528045223607672686371073840400925201091331985502265991280940593797399730499154183379792084242125675348516362483222234512582293518389578253553462222207361671498697382801250828674072003755782708824099535019974192266998451969751998182786464664832731641009102371697369102098452261007521926031632292182945201291512697107636711764199367942577034136047494743230109591079433176317638073905389787155800678091141613554292042328343167076148394213187208802767838335052073922493573329723279093744743617821070245783442700650612810865768199700138338543481942208952125299453924674038050926068901169747119609972721615740992145364313996689704942108327715119120469708403558474730401688110245562976887475863429200949332982123664544859034690527070107000189400821194065143243744853932395263211498613874197915897050425243337807914820038868287726136695800034230129400931515581776338197083504067448391625040147201731741069400874524023952001713975421548278231922473729096758229706567278503646765022579906838649627974290864090386361066748660571236875235360142094752383795985329844123747236021928449359618111361438681275330653618766406758494521061219804580735003184645057570552737463779257443227442510365219677497651852982511652959109222638891845479149188069902033659859643853904867706143832076843229317354574207581897172804553172363517446644684246692839626205647013928663508511395734370704299141481628767540938698603499320316232478348836327727960101718694475622653902994548408010235974140965504420395275365947188490309201262345871508472271912961250096403118203522186111225560743068211715155259841707473814725314750351928588620943980905225359607237894073424669313355357032454135842556934842536844347615674605558444235271960103957155103633521436119297168520558420137081674809045423420603544602026359183590597891635608204253721071762164059315794395911120787407564765600923818400391067825474767423701860874797310332825062403666573917005328092401701544185281473676814072163278980468783700175217752392232887030737811461322852042918962562591398072940443356285889137860694185997256498937593080212593268738194482899769203479933250190133271671488747608584760552001676563266472392295290529608127761489319118523139027019341240457241251905765424322929468578332040869468618528387808862429433064939652548657581729613502920112787965218107736530896291702180445663528383539463007080711788160947019828778252838624313006467745596491344066493000921440956851969073100608080532009674702942322977546524317535924061536598912467600931234698645132202942588893606675337933898139894094041778868755312083682318788112960520897787680487165347823461079350734571842718456767589738881105113122038606424831437211539383612526449165080015271782031466756758750937066037190329972512034789919044639423643739743623323720537622542562850912698358332396547359743292010401492624253311612692963742006619193320337831382644580831924581651179519165235339422161607569795575422609580475752823192516701614797650992828410513422441193852310766802990591600986564307390470674844519191692261888326541680692587577871958092205030708976564475192591902279695954415278141261759614005551207325147133645581805505262547911801881360772290324280472495093778801199025178362947789973494269593526819201401295465273599269663581488361395891103044927592344295514397508183173872669730571663633615972806745708519656660147941547704688134850090548526433133998010018015291976178285434442422912800738934479173599396755654203632464295366451259504226382558165084687340656650877975747307119592986099064188915492964626983329402316196196398209005491078727856782326519466216133148995591388801700472061745826551055060714090482459079396895064321346679928421655910224850748655508405754224550075398197913827316360299060230455893797226672290611100039743752661795284651239576533590823603492216000938245476365307995157255525698681918786350577141244819618730200989308890097750155280662400677153542063764823530359155580750370256072911093044779136463760383102887134884175131447926791620599752210023460624691500373332205379927930725406424039219400261039294471619069356217442845035632518672161544689029704817016339131031998686618314978857082028980003928925415351936623292883550789423219094045304309637447681609829965326407435453673248933531116638976234669806352614821464407906437360552565740520449913022384762886404247638158920020307711400739080157737005401918445759491957589256936388763249922332620707540351336223371395312191217567542110930138913565746480438612761789894183904275450236999074536223461111903119052136116263779303820846745909242118271707047588216385745594890881300588058090772145753983775883392190848447146716336234190092749390175556234754381461755415335380419700143938268841170151436537324515342342336650766747754157724858478438688901728625779918666897361518333564839621464308205799177564179554594911047840955523442565539186099627537144377897764369093484949375127538433937851298264087294972140449911118379365275599775740195615115487681968754944634863969084265335147150138780655594672457232767272927913013931542853536700464440756315219278665827532774719220250568243490777839786549837495441445263765197349962620030464795803030548251894166478706845637350427103152166630733785572448848426362843966168623017875382322288288533244595182482047165683754684902305467530712426860204833152563992274839862535418112280148469250213951740156211823937570334412995542413981530117372007986140417915032990339739813630471213665019053800984565085273327331843122486074796882105261768486213602070253744958326162169464434392509137687370553147566925427476927028430614549051684637440600499451198860866191427761630301287818174737583185580125430978497992398916995936103113790451994770794220931579465465116189897427067556537481259587377753120757374070439554524676944397352660516666038766230908932850438703552953130801656220285226258751364854143036151609987391801750786290929617310131098345297288384053689458897636331976459073805032135289709903387673495614437715727217707432436571961874301658939643830807849882507782543839724827493193413918489502041819759898003441535641376142808558125668959806303509645544645034699639411764713173417550379986712443884114552971132375612557769427986710114653495384537053157497170560698333667529111670848477567361965401914226597594307928324550191874444328862292407262837101090743771689426285980315949943375185000328576462406470277504532071013546529869286941957585683579018929143852013530738749853287298516643887641667216462853888145850515759564389872528205995972136370109055199905867142052975397031694648148996766975188786860564557085026574394598397696920589256970825702254471630679398799702348790118137898080726354110720545489888292149488870326970461437651260566399640892236152072286231500420893199398768579646188164744444497022484749932903112344262882498979556102814324482218090875506021191817276240583901335432422549439772480703129157368383366293080693608699927446571526108300136375705113399603683016283912892991629703084428648867878923424405282998008281232058342744036724530962623202535824093369085560734960330369415545441539113294303821108675313747916718369398832211755972495717050913779862589694377493230465449798753971440005548662813247230073333874235493622086751883091905481914280500050600761462178667461348384197789868409198733958020614830216603232528346433772138603351091100572950503901653444226207896406670005734627510931546625669662996055146446320816678003996434202436589118407664040471490317675405221748626529131721116917479651194479796917462324926503473582045653316950282376994293705252406529745276237469229802926479678046184541106515265390880092404079623019787653598052058218253764181354364003086419543102372798455560132415409001426276396296758911713753973354206944620058962700662836755191329879989639698066952408224894523167886668638515558709225225610514276503051847292293708032395778672399298083122225454175425128552997882708359936109834551836989453067368886255408077736997970943174932368372019728125494850450385553890831595573183861079962910027022299378144930372407032417376710934355120841147507353691259856874304620665965002028579894368983820447261702393402837846829052171885966938314679925845655484000829340029234120524147865010154919729513948453947987671600950350710137620821301152690149229964796253157710140727207086175954240997550465498728293006092699138647386714192158229145547655977711189837450291296146461977859703635733218306054953034021964749952077762954514108277601824477709779573995335881207829549023793334494212262732159912409123551714683588468129596038917561350590074913933809467920283708709501231285156526273383998569829614408259704631682420882109264172940043506595539274675160460982428637072179064196250725738308126175353715155332797028216078967837429626510032397005123399120219029403129998101053272756573884956345462330816490106277771462576016048327276508137220392174749421908906554554046480805857049076448318698270194453302009294842368761377377483510124494793326968306174163980368880469284388509294275814083882896169619290790054040770672236366621754616992287030342920705728693680594131800719454776978619185697576807873627010898341503241671767022153371882998128160588378597227299450408998345433993346929717782709899532744388771727184144785911256735558399278690537190735200647441857881960476298746239761182484730802959797490553174400336392566840419078749060014891237812738404964882976105398387753627353605530502817048736368586729250824825474799535851627364085139418600425233220612203876302428165290749527504082486626640671222811399950878271659395407777773549966699208731518855437195804476454990259231563934216357723676740910597419881889972586413451538716670653526796798780515277095002530594426500225028432057802436298072576544664415186838687375121325095313254354294233696269574096192314361305281986457537732610748123056343468816702781625293441341554530472920703787060266919260005071009019426181267270555061025640437939786275350411105675834871106383943643309488253432461970839410302647847592301319338487974513247099321829791891759473220046175515449254760150612680466150306366046867329093980106918900723386043913384222893296579889193670027964096500757681614845457494736795624370990625454615646834163222845511894678704905560341501672906248759017811037691538946548846811286388948909738425683030800452750924307417594312071503641706861473381648907797624428167557438990424675061761759800099171816871881812454759253953946310228437920839886311556253623253357207925548373436848832039801512354435768966818663007887564993648756518279413128129924000184990329842178756068806326484845207996532594384279001743811761918857315893571332913924780656183694134496803181818466294515432172707843764421835842103210710676634087245272674068462612936532487566284757162616282780411419142118433486958910427448194440768466046567757959551418388455790609585984227676102554792509171754790877516596791092008572450821027214196525331737641695584957228628211413966726895052589221156060674905133500780255788001433644471472175547360155810620655308428664849267116274432894721824893386290615388065224458109613295124706275732783159650044878872883014213921548987007963108114802300690295653280004822218546799523079330492250026643224989928668327475810159397705507133915356209018956878604532291250698949626841992369620074454417393632799271727116544153100979703421367708612398589759015954373975797062355329330108046231253312601330327063991621988613679197009346713620391581212075316796925303977716643760982344773574833511956020858355360419356998208105001252204810595654555308522023799636097291241443525149342333228557522968405785673895851286509007161263789914923519684397997934375002166115237533946423265562494662694704246006783027678633115787441586469347240438031714302281618880423551969856236947346717943995711340812126382534808935718197824103821309311401717657796089359318045475186184218196101278311946387978971877196135922014816902810200826444387065729645474397192849176826388949429567071961140728680915142149933660825911515069274612117776324997721341446652922257829733734065993266724854057982940498740690544505205033591127838675215371309105970824085186673270695821488383487845411138274207477349086868688529336480208653859461966255505132547560366933948588593159580271603360402987116041776462510703904533365871138387199105608780598687749565062518350133887546435255595995325079734210265537294338805371220886153126525220576579269220533688851678018733656146998025766943187476281404218775452976378168515926333442019786843911527219727011595783639946196203121198193591244991195157265390317752004294827411756821297439473034902522489660743975340319194704003466896924292798621374209929535773893886198993355504312153448090156322641481667540970969057527612529706943004843686337107811482394839130857748245022555828738973449161556753756320879548190582182432721390070077853056322059743684176588866346233341456221309037242378032708546243622967634110100252600078278209136804575012294372163968555107150490536205006983477959323600706218461896575716359208928911021448500226679775684904208535954249397462375236376260072445825523505192178845706584964038504913572317379560593986059498117066833189218208862656193839969190808285197973230568397887961010790246909485571379339917700493717019023702740128594071284951674657609151227883003469128462655353842305163722654020130949755136856514860018672658534929320995005118684669598378144805214385787899591399172429005256321492682906605390956778943529698606598972976875491183090541126839966751843910856460567227812797863830871871681772945624923406172788215117294047350103235293084104608640171955740621231307217519786231969828453428988575122041344129417693479056845849366360189734908781266828406464025649294978658748014613028482609252882943223089817575478757939688841808622609587394889584177875165378223833766885845216781558822609406966039051290146632475193030367829771677274544767223252999307061363876948993766745285088618135788755503006292364364713909332415417356863018125797825416628752627713129555230422864707963726693418795237500798220313245725624083327202864534819197944644856579166450953274081048747184970857368564475487590765856366174806963016760808759089627845524171406878260317899011624732532480812874177149638521987294087545939108467243869760109756864177018379498829636297999088365953066895359452178217391554372863813052249414021055514637742539452343033114517309116548207536005600987385141214332846785466913884168994616939877902823159395681414411490947514925083115828047879285027494453372299751615621487854138402884638165909051954325934298765435200994202922916369801623203583306486663925189765618086911516827000816999063854434978914535971628289089008416225025569193206422031139904068200605646493525041116305465864458098369988168980167575972089739168331552358019127274358388066533195196484635401021722724259412549469793129194122334169349494399669307445926566861565436525852674136859102041297332411456725005121506877266601478496234656852135250747168537596381871244078628346985631969396775170673315456394188134183957658195042545196026801141553601242068168096228457210363735264416736331472440583301782705053015883356302116400009997247464224078449779626618003815859866277081709755830913338673937040707223106531545675160237211858145256911966602317254731596998896918930186847713587030572791645419164575661337378503523401206052654087005211164848409000108103417497924331163366388368356394694400251413682030201225174039175068092017125168883126659066023098823798355844814758544934481386108508706878120577421866344275347956544643474475455414179565190526376081671827987147207773035355392876272396619364329892562901047288434848139144330356027198525522481706567318706109510559029226047907679894328703405382826288188788276975162603366010788246326136882785726380507705754000013755774554772385404467812369832472029726833386725110380857181712410299882053010591256492481344027262292202327922781755539250233928271305124765936940376458338031707852496764401818344117587906962431861763069134908236376516649128397323493435784437302403889470939779450734760949225351416651869765326871209261720988664299761065937246972620371739631363953303627051580568004183337192165295554336522208785526971661412408049479417022990891636864756141651715802865740934816409259088576257654582589481139203622153292170595564372886286680812935182998948937354766882817966681304476359002896966729370457565605686429216639879318927684057188008035777133253463573131287061292450593305930647623913735869167206889193920767632700391043136648154570775601258722385574443538857376886016682976752386814265651760608389369784547809174539558813551054234538774640011688241820099194390146271847975481057295859579153067057785033942304162807991396356828882639103313554173618492792519147487380205829156688729832650396496271123145710560914138195650956815982045618156772066539522119529966941626508562395474528407620069876887365499001431055504679697140877989822686965490103897034247314409391034148231869366919155891803489793138603411184277500835891847579168811717012573185594802349710314180059845195301365805855359010230988687196042004635774704845334191937742561582499868604891181857762100034356712811998506396972284305221796267964574838924341899494736929999760124435701611590048240747487642021690614199462480064774765566077642557732874883004218425168093472241036740187266652295678933978307053895530972132945667800203695244913968272323924476231123518286045104069553720285318776724550660023050131695999030312800966361412848157769025289319739390250886914308211546045870945731053997520618393854451346955125971029133451402083478328882368382016852942437731034111175299709229399394739737724662389987504321962070448351873063359046516326475845593752617685007551799715238539962686888016603285310836794117984319120170124985305726650251009036902630104769726296344643025118765956189174218766088211535947642566069786632037631960568014144317531696950462835537575104319163372333427344754721205884137018297975908220210879717845749121159302900008895817006133002409448192965091708129613030050015782162491146300130562381849224496252077942127430814676734655454371545178871797554756839804518969799610919961218549998334461806969293400345544698094172752773897108190610152632220562100558971840971580183609237753611165028224527511925364017807282756766306096223753325981735483332268337640107232143535784754530600459871327679129663898978914686124132779465713450182858390687525802695834460697634570514655497415705021168394192228256367153143865815176330425867574818496701992581413049509792098769986481914548221372396039982353697634597382690408374941258105892340349528784790123374287088901602389847128507438969790528361938917495558911488993965659328063353262375613777513434204855033117072515996196451102104169871927961268753909256684698230248383384842050636483524558313635522202544970336123350727836454018357680313486119398974037290174288795214478705388738814309542010684516976463778329294546412105292651756216665141879572795772824778118259183558678945043212389481561360782184341653614030549965789384663290061939257336686812027277609299866692729648800890771164316257449621623617081942935304578028923039995128812515447218024942552590555386201725010780671765828983122804383577722494473294432973213987271970428504359800079485101031426582035959511602962776919032458910010095307120566666173725245257955151149901725701920624195187850010122193967409639059394345337102863668166812734336688250827150573164858338076937691678818229800190669871756776774713174553065900619444512653401952316368983649317214334158691693800536169848984853430315636833759103295326193512894236994422173317935296389811587723457961094587741401037725399758998244838193013738088825271857003733223007568798613343287393453129692643057205973471572634842429521413880971873833615503114880644052840670657492660025283565653120730390905977932271050856904468391825267303179838070400585366220872927848997507012796783816016243190847725369178684573671170736334994516053284767325483148611735853091382254160567731415350591726389208365324551739428958456869307853983408067182214223397401304736011700580438913634778177002570038070239903055708840329385050055808711182830954825901559974716408679041633224835119583488560680786498175771921899165567010254750277670213042615689878504036656343816497161153907282934048408396172891222959792431839293626898632871301562882651630482425118369000099654975292113725957479032603399494088941927768766519142424810687937102798350930130404347281117336737131740324025987896246977815222929969964789001348049319758088274383183218261160694532674958616122159438681480620228779516994794833796508826605429901707520957329065682974770719968996264029699745559725151516811470366347471912357300175223357785124044189118764101093191242371719100136427758879663926745940412851320935363842895933194935052289704734546331443806715882491784237029255833614115329226236750955315050663466957300071594217436489109825297575755939474838409396766975261466033096755414175382997734780715376341125548969369507910008432297795740750302040082593140628186751191651508378045575758289931851768036652719573227479657612055969812137805226968419817241999322121284713280133988093092122542337424555012972071409824854974108307979771291232886516990824019500983243497317830381864231931342674020066047760721278116511228863173115495326851029735072450972266259903205643670905942090666963011464062337125372183174995808047713837642768344165424922135476746680530260621194129007546433102823580022411801022619870642370247493863014819629445280165178679548654715992099824898616469510683990628230065580817497205508226404605410582967944821116248675383281130928718092461968327037451881167102409927540820430231410286765564480189860003528814294950363967823297468606903938079075308922651817668536644477483552400379012054171288656066238648333578989699400511997506269252485036132850687452399791696792054612123500950324392941976926936152762521958846221831647450440939731610624834778976329730206868970891425245611740519949329241463039831972269544336848268649306939207046931001103025786031046464186077338815545355498049310725031267393020408877546337519340439105384313619466497052263952589097171936151929043665895299226678250976525196214534577248272191815834414236813918542426349381212630426972809824136741709432083247895284716851786052064854435766092907341603997770872041036339120786487653530190273725017167396005547901910275583042389931150013470863499137495764764036345945336839283289335758965514761842551475158760432235852238559702437272637508366324212899608530040129723000680346207731658537206724423083906801736392736649282700201511913601592029994320936431946680306067684011999834958342587935610801437633188470968736321339459628407319311919077100263536654444481791973590045136482975911204406757774000856861135480450946172690644081246071768530951299970884314897622221076360287785995834344983566084736010736207131996022971604572975065345588351061102276018655519887195971965195134173153175721135093086068361728575409730850622653383793182999469660941407526083644639362117261236123329394514679081124379742710020003260873048315704541207191977777508586778197258517838114592208551531220843271023046265255443791740621377757602345208397117329392823461067007117312421070401771067676744798270136451194600524786306820670455893359180262516799367664908120595452827707030651249655780358571904875799076727318955292935016686787261479748394845130943967030175968688206949932734715277717428236941985284008588238651905216699637643997930960304363239432555033191445085145556246519182845857909727831361395765878805134102458685087033462715257738547611118799148795968365123951764511779611560708550049096355693781739904002881391992065410201948616589268643462024172214931822433808865841655772521515143346214783403094226151548868964874829058765212476149231755672264906269852006126811201679962109439844224157190718255577375788144530730031773538548283405647527533409271073005086146087229263098851570927326718028875315122444548682551725395809979440105848373098609908936669348644860862374936665809000968148684982444931972086931216748091744352265850037595247976360209387466913093555605197105253284334148798619564685078443805611430285736899827665228083760895886426730399837031774730379442471836399657580264872823582275571273968083488612035489487552298504444717171710739738740285074768754626390621790810905302180080927390669730361164786103854438192805322314063839014949241738691123894581977095827672656772037034506457390001609776393293081828881829416250748025653871367595230701430366919119751582086507703402251527156577541302898794632362454968371338906579800515143764088158229728315668830260103933710537207248472845123627363954479213617292105826047923094632106319631633254801654041041331437321614650028218629105563114257951562978547475440445624975041404917127351083455596165537140552622715461276663692637756589267684714204535258003443826181064675407327259212508686409482985180302289652240886083771359845274688397318671399386710584844133787063566760041254412485578150662379197056260563054551429650475946040145317370282903660007795029259585672028191056073890658287006895345337522780788242192672652013215971817058471690483080685693491516298968711779176145046083313107616492230211498049729001302822915831623781982793399313841526980757188880594339791322470274260022660380838470069089216952750188497366246529429039724733655706188534691639607013442679375686567601153230858051804075661954773638638900859414873516647426741324446372463769019675658270864458885999351247194060587598613515279010158377615027702158197676646404182754912122186176186617442388525200844137247809821316909110779119522672197981369554870711642343619654560518861024635908911169600412377253968552739881682724517294141712607353215120257436318579837630429308085928718431541999480633671046219557907413266166742345316905230856717371393800764598260014804596955069160134722534777244107446372695802992729530982271564102702336579511492541226396666102346731326807003492130080361000027765656367133242329431485460400734712187624249834302211749101044229158655488449270410387730778064076744045297766397197028207291577437121489112813234487536591328794563978677262415874977733330983760038260042723200522882944404402699435612940840454082679793518001258122366003679039759236578581107349494212019211174355512499687290624330398020449610921703956889430003733355936096317727071214579868926833748311457793038695950613503146133354401213427791878193974235575872735033330403002966340562684736270824656909950645120050098130783181725155906494754585957232040327183673740094210424659319975419974346743154496977999569150184358973818239895764215929049788686125720658553710344807758331784881457984945163913804435353758274819790406948169021712480037824679893336209252453425746728544546916103562770276845723386615793307571063501834553823306390036377097842967884693867593078823978915769661366415333994546254028679172642468829204597740459291763965800969322606324767986012357160535222696913824006841225847901694848524214452254356932543606394890795819263983614503707682822798544530279624499901123981070645455077971349404197002530110877434370816684753444213613190168811931837995502017298924756603462667945232975625813823635395322302776524418190915773112324909987672118438644337029042737229245348214253432294290174787153484707515692497637267173849120246579697798710782808458418990955362893695435063733575346781114369112265286010382532383735188231971960243608927113840959125633519539661756997024923257356232110809252547485613718094706448877058343064049144517972482122203803245004581106105287363925571582654512624620860429130555010579654741326369919973598623187417073210580926369546397234375514802600629666061428240699792265825783377572708635352456271809611497645750719944245031222475435333217707297010324887605020789370680869680345815507359604881923734460072917562940324857737743806950264414767598122322992206335007702432427838298009254008653799355096148185429215883772622093546155312300041095021305843721241370515780277630122760449426517007757565340113843195534788540121259121823573466061324556953295861329899108562610607053799012059625578493334809906840067239733172436693429403222171744375413946178845917457986546760629179054758798052429331958035496886781292716904751875625641858367262714832007506122617882924596700224514046869241531810876131173622470478893095098733426178062194866147412170760490141614615472104435033848786288922938622348275236834684454425754725685318906967528257160564373615814207433718636451430177849962352580142970610101464806030731610573686985723827936172443601863297107992565186664449426909127598250028189313694243608495953134833221187109632923163269877967275885152372790735245303140308849968724182446154221928425257355443366844414009955739934346596822084428514507351337146394010080392670271495734732985059025740719129520153717433262568880663476442519613745954221224386479252426379491650595974470384210019764233765940461684597051175851881770746050352182450944128279526268672104426891133574934348543421308090627381749132578806249159856856801746921244211276215824289685968088148276853658722694923358952616005886105573997271435311309813379748490035341636014763436130595253937558825175290693933400745286888909105811983529324282332540207731332020747624455474358084716365037283725036330765562482297694634371111660565533254832032048625178519994218332073241070797311831855835717426582832443203934876228667360521015393173727758829606429951209983785037689314128403058268751577881210291651066190263356999365463481624079346355665716944908418448282676087914353199533792923838699526341794193235169476347431089696274991176781090640720593259000517825164920210768565101250938219622840716961142778303002035442553929296682219565150735056705905538502539835239408888481068527345273302938397134730579129610379470441649838646303945412445712234095535622611151254432258113062521452491742995734376929299499560479261654199314389326871209766580065751775195757658362874057411916286724069760288386778983276956041058249183050952837866507289445141840766106721273172409633633437467915865568569913577143958100301625694059298436569184420756541698910140072959613052539739857106007374529560578125128057447884822455106702876472208100992539603923930172694667098924248690890289078714586582916366621693205260912669918907703067061930095882680170019793759496307754043358788897856659288605057236574319222734344984675278569829858596402574683590678998005245764450620712855283317244015995478891548302459978411450540786344371961215985292461258801984783904285441134218183019000147344830003124994446287958737965836649129363156505286100100340480298395562029641022480737777129065886325262098083681087175155145037919210090029054586553511318899157997318912930365815854173780101633857815024089971637743296598091449494672565536061041685067666647575598284052592911071041510753564693482184692111844166379775660096701791328719969794530381129331492257956424270563285685762294282230144024531235825483684620409899418885903589617106397675307228555140406000303297738595652654299540861116103173674738731988247246229170501778062709776647067560756250701044295955012281551738548998818033457485578315482303938593450245169003757155121270937979242343754682217872062397196244066581070179556181639466410098098851170293078313260571651674001143899179397610592810116373372505402882827242880457507517114422215014293470262164353319813816870953136147131649108666606806428392021130314383384601394557414088896117848684739190130466126341415045563201331971694769819215513479785720047690067268072421330257216930476901880344877402424231941149273552001955352170761992618361623234232632008627224959583610652388062890688039991148136185008053103173685290755364071037216430229060940733004133175313404473341927451952167064756070104444027208447769955662312989430075468824426719505987881396643979305587143087430718131991167018220644872521229522808433259746754865395519277419111723555605153591306427464425404794603096607002689260647571328781379059052094820926655881445164279780728388862676363071581039286092067216929182366768290719576986315058075655598661961213327312445618231350737436844231702409359581217663958767511350613814239693421072054334849675753752953516541412257674656052616747172347027932294235097048641490445372732862042886248949553303436112111562404586293445554318222152293104724090908343956594161735808660896351875239832567398418812020856314566145170656677750197342651362375914804827620474255677393580438211184858469210808399930803120355138420134225115115222970205972940071932043783331775870398643105408344135137386768360700506458305663686227728736185394728032706216675484865132066523473114785504918204196740657681485487537583410897634516544655811828270750790158649546066654955556178093670983922971670056636871274658779192147051697691132450803728307442007829977216237491466245526535615636056040754300514744966011696604913057162268624770885332168400183657401424320558317945818220142109242381769955761765181192204661932437249919116380614282293334956279016884859222406337075415570448790159432905718359767651642946873354434091800987322935590012463785724200234019869424011895774015673949659458394355993535182833606583180568387981213639910767455195525330768735143753260340124205562775753581760504982587378825441411913713787798873279724433382383046300935020934354401451113167016972081128456223728631680569725310380515023290607971186017189415346043650181401570866033701569803271100045571029790930799021773185105757790833433031883164636515778030912558810433435709096650436346777477905872468003709883587991030496127847425168946275955646222583471806898042485910206152743807899265947002628194317374584980706633528378760131969500919662347977113487291287023181833407076994306045465446197473379414892962902399952899036307378076938492418166364515970070945926872584638749354910192728853361549764771879586787098359249528634930023437832448449039057801299454303847268269136636554601032087488722914737932527172412156728178219997186868286913335663096810063165948504458736716871404411177792755065495584350194872845721290875184853320216232645840348119996953923752511336739394533953514880852841960902579532509228893199435341837654525060998835243811874708218755661405547847516247605715158343550385886773291972865557835115121293755894454770754880332369743317588695488094094573688791547073546726265004674730871509056100899437191062654261714967247600795011390331022316270388217346925836189099914250988674398208538271613596273183153282475018855063866789703119789971961438376937055928369462947715686675748640363398113609637021477478740106882942337292841037062056486889229701123196959289668821897464875891521371671140947271623428456233296782679952935390976321701873109580752728286495842951757133750980637456015801730403752942887203811896153016605592923912021246197803519961604511530745973628729654421939995352180382926204652870540869600029090122898748557179584377561909654717142322651514203884616444639850600336495886048673070793695913694499302488018177974035863391767178735993218211917919826207410440752952407827879617873219591379495544270717815388321948014342114593999698267869116609372756672669126256668922866856864294074399505154902938884636249484692808991771985316318582699646796860532043809379020767234058183700068003500357478535233839060215486077765887840760860750658892042146083894735822847198076343025952303330195798407826184958266970875166886369441775436346536107735704807674090102923274442437907282369578699092485775202696363092953266283377563018094460676333655756183675986327530111203867845625361809719806159632833149340243330608701197509526383614533610812473056001557409073880277162617406000985212376480097533018729371368179255134844065479281257188737846910657053252579376035789095219550809284724933198724895017745928075647757361778724661786117874553006615865005527802784526698041830062699646851447473884086334046011435939941811585453609126992575251278432667145243229763791505452014263641901425465390679859751567089184993942851865733346518865925125303064240499135429912590827535130614112285823382307082439451534209228317695429243042202257079840111801051004739369656970521470783835429668126408619465087560936722497437559443234179159823117503548766846556137576583254214299841169915595802083845006760742618575802895254350633371180872629650921657633045543216448566290115543043341430852907288416623489722258817641852389707809234424100590567060367514722260631547691657408288558860026812739857273852500854134066769833478707587227703229908603646828809084073928617114414326913210001558157813348627733516458566836144400365778980099648269440646449503360302647392255494143531513623184223798848130171572815511528912334107599880690441971434465893422902511284126872607085825853268824844678827191302612917523489607399952291913243815385386183124709007734106497236489590599836037585939487868499321237742277526587643641848871081055525876754178288436450131425091172705574209256808750219898333984566113280165033552247284223675111685319212468670927928975196588802579036137030473776813699234881869977414673159502170645107391928525235988788634527689462408363281257199294269308022174617062052860659275858147726857932729418124517302256602562675126804068458452078822688232246018929111763888397466301810387247668031285492998283390040256875412594463845124662018332575300045472548147489229331000424023006003800534005869019956339443848294654295630545467357916269265278593149678331860347788904143953166195038916165490196506679477514355236469201561629183208267674606823268651182589211571212416131212381070505737121736689606449621480369248354910595181357200616023671106013643177088244360549841123989178345859045345548415268056845222472757715493456063533734493312404744949506108128544100489059055894241639931910532839467281814177498941174186504068630686857804406321459378669188326192968434662452339106079442400103436981167254127009107960003791841947832241357927305374943493385208749901211037432343304828056616341581210245007172027236501828897534394431072018027727426527842456613621530023844005835630592152232856588573229974363068015983884802170163791503477847850986839179308370860062562316642413996548104057872150954064424459257436648020967783382377152710551662730395021905608869573346569145249908723960511590398760374856199047060845858268981944355468893887834363438046079965852632297262744229929936555738523694192461181497048782698510004006383758615729767255786461556961999136911765844113947483495893941874241235065432136742399505300252273197998998603819301305323392275817188432533874218685266504259628716376802197273398506309424275166975663515153187283785015785335374490316508255123654108524532830964422532816238029898356852308244146065935663065216456677042314518206001760994655838507882279293179066998983860419388826603614647865312921375818413979027162058100182586132419501176866305448673498082471753369244399732182780929994677838123317041413626441282755829078160140569691158805078944667248918463044417869157368851051783769766353730368134849378710821715572511286561041176755198481792726318227002382013068500477023954996931416376389685518086785443995681933812511232923513037653472090477588772550660044580617966039813154959675632627636620772132565274656871549972957488506865117138922444212869728896997580470968706615094123897950579636769657796807793988514642055755003444448875272336439319685451463180184253282952184214556224167386940541783704999997090582585359240763536228398242579595527982457487110216943732315363408377203314088597801162249032999095788310630446821790139718535259951649346090976929324453043669600227631900668900169222955403844529227708246120330464182449671751551924135182116156674392503945362359277856344088636393125963664336875615579192876042180172890898293233425283102715673954979023193766639912311252899056995470046637037581522967582040207453667018345516293460505998866017652116749294370909276801249712181431941793276718597824775849647572194225631793233871271603406652669028555772781611075969577895932003265075246485721016132473189722461865226128350604863033305422962545155844646243773917689589143648059571287671811774631313538642928002555944737949097160266638155035829672091171450712467871559131967788604882433266939036749690552760093915918942187852284057767321199697788841485231729631810240849679584338705864129325716394460680842630836569332302885695946641115132785258554529085675383298841017908975004385047885844882640263545131629875528275701757675006974606009849126999473046777725755115507042668778372218202161740637501036993255570998450595263096679930315555516661910761422717022830029578511975020200554491548582247236129773578019288824821676263115709356078534450775171166572587327483643674512595481670604898757414445807085257394686461022009107837571456618369087171351640253727683104292722208253557406316882882920455314076842566566182270537144191735546524474080912702655210538122935939344051357784294447795073302244217443779122769070920001371246710014817013540340527229321077988507425011838998167952770565207215416602933195062161386436578828204371557812555862122192914260347523253252370056055878018909608790392245860849727516004048187169295518715783106552466656412780439933237628094341874310635915850860944085926608180385806592083131144480255055226622333663390755996106270200888491689159593974261276780418941221772691251933650626140864411589878423802862061035529967341353864370712242052572618896972018326300522038272740235508032418819618948345967491323875331344529110226853589446312697349244444914826806918580820084016407053897501181411730942699775267030729354608888422533580502415134223776473234117049984926616040882558750992335304420600167763113023499385468780229276452742419672299821468868106491907561995060130692631156330377562469952036524164605002604922537771466986288773207550130976553154582773487174093125128860129624598659798657144596103605016722455940520705211871907517230618878597797809449524018113465924506256174110379542558020178955886274060798133250719396561281256195086766621600952053807227355474711762803449120506148310617407802556839737974994310296141487224799240917742123208995798132536744400158620868276516799394282108142204345723143545645480957795711219086629730451145693349943424444815439104863657862185614071976644150282315047594182001165243451841438407074847871380956666795800259187726017977176495917037891452204736126728190229048726804633730169962570695296397349597778756882370330147604255209449157735388845230614908003164527879734840113403966135720295283442879968215047183177113070945297183366520935217315250341821580789810972048652213553168926788203900874995082940239477880179820980217843967269412333554387492504798821760495369678039206069147247470517951149964035179233101729514023605616526512290116739451501468226952563987950123546882007725804868551583621560758267695918469504268390260521703720363053516389485170734114357889641519664031006890753486511960829139605845197248808904890311084658332861347567372234049649392356611619453979598368410125183234989139459168117484261337031969304962914940854500021973456176246799267740789986648512947044039258589005508741247392435079628200159308759552231152820518155388404729790103084461344473472089974769210296438909931002809330801239162193462974966824892563703461467090125379191336037630303292010036818070150681814778555525411332343001698752246052260177303477624418351840763646297725168572218575192933344523331593815303664456742128939317604539623576750311782819452020441172152755062264449991628816590590452368252795873535915228949995589912033175712915729236184058838096669515775175232406657382180982610412051116356011176252650066904374909382450700118274740979040344826763503076477164979853908248421670007955145141429410964155938231094663210970290410623636589065952029631431961958090096222694985948817893904746485042092626736588139781503294073537475935918930300952778596516034669765943901666905649620483058527076935592050772249464083993820353305166265108446421065561180515583392776890954413462498946771036522852383852528046796423244527754832559905033860302011814635502868305118268803563615984979911478520831498726825715305676060818298840683454781236204233977802771256653031954381219705249978373366635127984732582908967051404362666202207636982621606842503026815945627126004739141548742178226514454466028340554860163043587390811731298479637726369078645004158761077229729238453934031449482824284325103791387597719021470952954140406779859077020136188957596694197247197767949641780143217614576083062966683715014530954410147958372346567302611774302658503217025303532669359750417252545061095614403769711601818216986515612109895407327878820202900874464017283821678186849382073046373003473958603688440544657938509116878059459530089829869651750617264938779739582650391367384581947641477901607711552898070651714976799908974190054801063609211606578191283039314666510234476983513240122634946761050195217689240977025789192080691334691551865845056279928971623389373062413568670579196405825671926881523251620419911572647481066848715121638511074152148037835844230451438854869736049965925817065648867249045306689690860222008257884402047779848226862683557221581588819909568856394313246251112322522484680158556686761214536231099520997437186343819172845516984516112472711331728343466871736147690550123959911754750292125838914815100230068592302467488542019195957975591313058777497727217510259049850050276431681317545987688437109938248447222574254252250246127845075549579400791203196393037841593894446901229567889517830457550217955599962943629697967785609957977351501453199309927449612204709818951893231145626145471298164330857892178248223589487541563420144781905316458634278006742056878215003892343862358713162405250959111644502937862391428270171499768441224254747912350802997576698672835116734573319806653968018883874405862916685204232469658019858101614155111651763265249522674302647576614306547261347724344320002970569797159131116090275326542410722266608411862263807124474097172422133880733092950947153851108151890949025814968630506329277448961087459428362889625304660326662934306162522521639050945031214595202158313599734648478920684539633271347624997905912987786754875801868940113326910205253627198131430525164162812211050598629112114600117759151797519268096347096520837996435095604629782403779487010324277705570586086575727811489898743246855661858827171628449710425533109512886615625151288624835092822376303726410961992474065491582502612496494909922087795348999410748192061761106534237165760355123977731404772610375207132870084140025726883761638954624467969700749862154662640677537541303460980039691537447943195561641500596142683038376287847945512823680295702676397053050143617954112750139840529625068968788089697900717013784863024462316076643297266011914832067856313454229919005559510937181689631516848341754329017305236764898489898188791645943947453680385369249124878374098156777649229755700571223789594067677386481228671038771699050906653404018563061864904754343231431844324074803246237393501638204016646503446312802287547826693070231590000031840795830286314147902239170945345068109172042089022587850257607419921975327153160069999566793007782583356601735096896368616630618298528628428254062158638359546863006510550586559527893497547248289844169514858376857213219030463662463838895808966963289548735015417390572515383720473764274996376513581141681257065064280307714440941954942420301406666639258123171362565092147516052868111105162827384065147061053427037669093542406488942840255988296022695638606047033046992137035045872991614910165062150335723451107438926627284077589519281658620699472524190179474046917261239883055928090087835556629174121535816052567563896947965040429109471912867299190867904993394724363068638431336073739399328644646838945122419303883043941336904822948432923417272437655353389243974625039153090282232207405474732281502621202072414823483834447656911257204597759650063832442203846876347207185138053269138887386530603627448039553871134934204120417288437588809329676810526307748799996194249501753893037056603910169443784179379730712173739805583771343166696516461568290530445762822771379469071865618292732217147350827235161687952347502300555094465155959981541470195268784987443370037316204412042011821271730552173270059386756984392227730044294574817242470990724636671631679127054529172237982770043989729134123386170270801289097560729073082928671731412214089585384504404860247647484631186778022157157192145977501598240998052062857275161679155352492755788930226778915687496091274940660483147665270110323901233047256525430597524309767631451655918621822754498115607901586566131803838044387352740634467510859542724051726038104396313373356333402597399572492332973838788956679729354374503178259534018800043508999705519889035245911946521280472916420019559833961234185479154890054748192026695916992268504328435323938939259006676698944836998173529529616329559920240678323186927533297252974948186535299258023141971568468830011751099789431483480144172032458356309477389651297691311260939071643618171045180053160023291329140617610472282401614197359041494653219202196580164458068772249173910130757471848298460719742147459850104414999936886346436163680140960516596861161841742208882004210960494104915752330196721967734579586128119347029516391589619503290024409728360739141529753027934269039958634099555058119064723488534913409550367642621481366017991646343767668216769089932473081250790676730197701308745645305261641998479710868105059585985965708730115811789918238560494010938568606909207449679617495380001324670543043170115074688381360583567161947917836924363238586448342428159100618594305352152653633412280131739537615481739724577489744652270957482832116064411756178308219703431381096757083308954261025596851838838162209866810892292196580038824020910080988618852797276431871133805218834320550684403580271693856668208487956842340134073030552156540590907845872366424389995333534284943879163468213159672417089379430475584368800067375656910758552949299538321549433129648249784042242066607030526666217940867272010326843608061258132298935356548860706243174765886408355222551153903851969185937954974298741063244152747547920338295296632233218579973311240426920707503742999606768669816070052913989652994132102638553474990470927218554089047066834358800703666959018495127641007800899688736069790630685921016154158833443643491810140488415732108579000135904970581481706546295265239647127746748408663486149556890266696630063569176138999857833810288554542857554278525803321054416951092388448102438629527326971842839045454867577987916573921254978489858383599776701546726510305804058959826566939985439921642132401998092107585518319907992472781802903308903479249543042989930755562861339872969841965251200894095532296634915292069165471786157681276602664424617036594531357362872905152480817262741325062030998451975384296845538443866390160902512573608647846362568124687197999254686733520297761194149345397153096447899460302590775498411599964496852678968539127362139103362454477914781822581553679198896575194827525179206590844131236075551442871357870896976586282934613375620647548893887409242226315958389337904081897002745770645391537832039123236887843233041859559087318594910460271268806596279191753329364151696194116878171403046981731102646849964745817727340507920302891888538594589626956677424104205516043142195491474617893073527355516149241984634376886757181342481471427007940283630087478360500633804022168351750686986966778753584280226392129894112491393061430346010897236442583390221271102802689072986483842065600651385618156059806892978684122380839073584750632957462718801011149838753936975515227248301659398402063289080481862416066827997827264057190294061860907043201806599762754527671721949956697911237981497632963182674492036076265961030485919774790135624569045201584594871912366500141846343732288397822869459181176596686615397140903094756302765974761099222353549842603656385950594115738484314418459021106394508496787413917789171875150401991171905193385582336480795748873644271122155799035633798753441968936667076767844241472932869477386770456915362160321025537561033487179231449396600522236239773889528407248412690287186878912986454262720335938309602974039712675313820862662872358503549057485650805716683454002614017886079235704735855421324240068664644665810578918404526320352547390885564421634427518843926009945013444358799713454057978326428037236747188991118254310784648396441048219817509897642270710638481468821165470734454956753380865847201780422096242908093972757580380815739362841225281556461560050394328074098051883350280489468238342526833051263045788313731910861962342575028567236745004352681314489440287259835093042411254345329300520418697232482316511751964650914674972470409987088387448763570890472272987627801193497748457680150246804369344644465416869813831159760090414501440832856462032325998409916345424177040422662809853258615860217662054366314155987797379612339430071911696983148574800051361819377002112856277710852141423836943840600804035562889199658366720910916576585113403073880619950940784905758975926837441034728956426062050778896456631831713581574910872891237638600835084823107244303305986416708917103687342670022958242334992007564422928645912465535094783538968701808565386590857961856496096573443126560611948657480533092752350534090769269009136979928325340920647100909038449678381195198129127168035431964694326203314561013003556539100681599282690635410022734462574032489341733731227272253730295303932269934184296520939012294415874381944497665320288781428434293163753207843343662163474652732292496419055403634083522379619336720479156783378926880651646475367671692478314333192177204001658106316350120463595705552165170199291141130408856832568227886766344111481157800887058907835533973788551234225624144438038889506205442675456845639117042961922515137819483930521469760640281228872891871982628663750629190725643100995281826912596612992334640136995091468716636780315525023317195551871448913730317376709716134687925198743447722715659741775180651810930046601891300332638216805899612021902532056647370277553585859773748482409919623996125844237006936762765412765369557055974360609810798886488955296745622942480146780946976077589736465405836109274702785106537745676495211569469758613897645211434254988799650950993510698486480759956148477061722385894365404394148923552803326353728253635402465347703893067610761153064771537432866413452382630007367992811983952456404297081144679693764736549776587935600639742191766801571553106185727376739689308692765379874412322500556272625890899606323946375186013714962639492421413569504790037204989184040057667119839643417752148186797556797792655943962137538277169405919559107528571040259164155767501690151449651755506380288863717163280106518305551225125039771043594593161737406765208175446131216771930436808524319194632069158169425138682731030050496792394840698770776122450138710792173293737456699671084410394591465482560192435730541178670023988341837355044593701565870979154201864723054303303258341250463594330880719649107978066730178001632118176933957048109365189397065539321274805739525143553678064942806866251002827493009651767182722667038053437753919746015328042490257902676042884861451936242131768204229652141550008637346751237216948105135051035906896793874680671832798730313628789330336057534235950210904864494260307776104753197910324718681218390301945422087092868533112192436201351663623485909857391792312845687906519153647206241139440107380119784071350278660797064899816631651465540625196566897752847891484654384404994839642449214112643610383722977902293153704155980651959225811119597491259632551509916946927292719323240527638804734092231943438069682089056520064983283170699291608594388012621626580773232407019307899398678819088139160784105528775735610473425542954658905502203954090955487581496590253970437008694426659189303691921334395910601277380208350616417986659417329409461731666024968083058520700301205970318840072486532985203840161995700580062170397634488261332407916659474447987122688819191807156687635329558146847599660755668676567492122335580239109230052753300675188906737392010628706823640419875650483020495858910220652843782985151428364140649243782196335618474102155539538603647287293761061236310820261343840773370720588411634419311634996155920349038812962087087881786306389761476525601805619457238943792640686667613889105571584408806944739402899397066723552265358639531754918684022039774750962443428479625375924231947169735958594872164846211756619794330272663142427576471988042857600007939669029866727902476841921857069165421649164594519313815617192387452590091148374325978225192473328412521621562988307140327952909131555915423669876671159382393653802067011465589443122837895729419166216409031647260096663632316700071669608047149246732445301123087872660202976380426947070478490845266912674540787331281273651701286823136087129630053483915842579417638054955047902592991025897152960707619155210317592854431655075602344325494567780550526928169148549837606622313471404390005056859017191593037764791143056873730799196659078036340850947630491688550835711697537145559626374591186463261943124992278193132006249692434386621755615664330261633220456743838198040249325645788943038590035090878977524787947158516154849965370671514855401081605468760316903994011944867575538719463436497010365041673654204081005018377740586885999403095691184547887182153946987146939715208983156128753164027865944185279361004317022009800853750360543749631214303004653418379452750398814653216543314097956516406890838992919760864827912754817795722099272789555463315338189901843329675713706804445969046692578850662477688068319812825549878011109031315044375229024677122242971071464194673035419528360881339638428189623424959527396175885288422361315559059043280282169911626559060112274127005880658933159416353237417724485543790053436933138306830370742210250632997368073073472655188334090066356340418054637907930674591470986821877583166906803566604648464135691730182535126060188075661471079285940709167500540221256363945969071406250564309265420880118715377925083153410673057279833284957669396406408739899983987072573243512545388860970525052233362110652129434439993339974366736808465642536979168821238913958026679993250811257174579548430430983476726319533228744109847293059677552565567171786066843695040819872866916860652461830553907789324406254029444961829218471420016670433652092442190479684107744282686192200751249230831426367892432143342914114435436176283228618513866384093148891090424434903748694195091617910431370390868987047931838983470295788530532384028773324424082141251797927158110585745637421277176452854605560893497893489562887067856706092143088763329760908393890966372430534830958241448819727001477887469946455210013223406266466718546448611641672096017550535365684030544242259633309660609484497076542181511013011760904385231529255874726530759000700567884189065132378222825070329882998669609914366205162091658126272566590939006512082069794809060868096848367555566723416838122081534044275320595016493340936995217090726639391827882479524507761787526207087932137139959595005349660704487151181721822273779171658588340540759219986638042658403777047199649603449742779170391312094587957772784851780282015126546984741540701764952253259458602402498353744228843146361600006650266025261262084574181949063214259734780479912981892320976237617234341794014214154178457373885580359427902177265122920413222507732784281554926441893219201991788615023800056698393882789005105539278984789458634295467012465108484122234775927693233580075294964745129735987427320824888858214813384899162780847575901158199345451479985107648573986667768056023491626313232908725184912820566250223472153395735156885110521008029590076428621394245991042671906583791262855166006149108075435477261923801942426166822912575617054760109946185646041257885708610001356645915378946205554855505759922602477720778078948746085368128269985748435875823021989441747286573343647956389874117199871842206213138618898098336114331879857095197790369066805851627186235842123010033622255314390835566177894248548030310021197582491897810925702275501611748146903681147108851260012899321357024896439036783568079163002059816287878281817767615515481566460964235490387619841869148257233564044557157410740759147936276568380772507332809277146070936425270183461808413126040459746603064819181189345361163430595233960461951734559370825490897373018610175343586117985898533946061075559761432747377645097905889983566259229933439784557154949470156553315408551480031752586316923213566834602244703977796919086602203630308249787244860722221343833107120662034178104397443281852014067085466420707083092545199130090300782349317088493323126640781277620990920298124154000197861543774186913327486070801477204458288570241046490208422182299613678218156244675637864030439927701392112769803941107115676613872151814941308601996230632628793663699562678783261209287174618163721298212925765893298943879432920035779392132586958802598847243917471914721073614446625901589528511216026189881957341764769590247841028987883015137937634660719752310747349055166472866299832677152290682744756610327555436165769562882968729837179267089062813845552804511752524354174625131076883272854149817082241964873765418477033947838103327506858968662644006625174877448624776777923860764336994624377690812588614337373491237438990504081777658765022373867701922302620400357413824444908011394541018439483843078936139146739430915666634341755271982013820744612345498336282886036698331057827491841706187973928681723617029636749793920474983349893559862277035830826046232561910605435323563436845300523944580543564557633538709517079421269302026483903823959506093543148451714203112632506757713520271584625378945955513501215502520073773793197834059615760993205502166429906303610008728567947293034040662712037081317873220265231080584169274928230367809628423629324035782684018556518900404169882314478922343771557566485553141863942586813498966886391054084112117488044148678964312309189219955356035538937882896170031702774333420287422387880330453728810809733394020316831880549911626172904005300622052829129381909660339347929812543569341455640775025809905170763328109978404621335574184060143147648635861262673228951458054183451492549427221879078288461789063802753831552697032166211714048218814745787283289676637122026671033117175032329861567493851432646257619230326766087610299192489666629665674656707862807496408658364339254642517712414455028758693491609270026811399478396496296790615271606184791374205654074455078440923167984421370311606022889943078225731932486568182608308019178465106414921736139577152056234604729151819982341383731289758295670906595748332732717602501604584517611926216316399155091151621315950751193921252770111933834821004229361111210952581935945776449777470935266040247045753870478354778655092353769768635258124923838351006791277906414044278428121333173744797851967631052922035116803525427043947397654907593784258061252125164299525924099175652156571150324692497783886775589562877484378597732267318959784921587740448190132888551884117619440545742010390004935720614779923089108429100892042768234851995109258374664347636423838900015850936260773446244710446320146239694225274474658016735784450807068059800215553628875188869187500312968812105517963466881525569438743497814157642360735214855294893624315221137518114443596830095876263690755388031701370552238224278726879521557601843533863330457913968577922738395093250934575809893482579869648026510835688722208851455354848200762035871771440951406611281750642312508019807661485510705873405038564342387880434924282728204176916788232606122619413331519950833763628682800744937983632491742310425514041348906666846584824398556128436386071124728915401234469749133138803927064038626055060758473121397277840422402373686125239082373555138864369207165180018927225793791293934839437617828463647637994486900227634295767370233115565661637924616628053839169896673867337661730390449005761237840985018297203930960279338785640808176341692975132110354644039475142042404361785777230515211738787460301959500439274784292440843759966112480424620536283999714762090719089689966636870978896820119124936231751800653588529193572086973425653367175501140189927590417454714447808570482421798426296553267077011161223676778734907168981166022783887092987030712570795639431703329583480377782993188586479390198148921153000405131335741251570912860116751560907510395547968565962811485992652690097220417496859134036449453954101901182697607903254020771957598100179956480012457446108824176999205191496285945440143647132591225556927548161965674176181469384637112552660416138977420345924191710723754552514816114529204407425816146028950839459198089955611102707035489164892015189316606937850759494823040214536023181936963928341204504337666604764572954061242056215224627980101186035937795772528887446550065056339023268785084845973504326733840169973036538318695472415228244884596951407051283939218180527965240336796899151371484259419810383734659200866080071890951047698289997313828440150383787080429751971176860217189647087684822046877303520816541141805962285091861564524639399139834162449226103921700380520849681547281096250874777012289621409638142676745235203310672926910272150815480713187795286342860018372920322991962514083205736327290445391783493461439608997213130427957156099805731922757863039892430679033601918176580846723457821945591581032939358360583743752297646538684728024318269641173622055085180585655551521527677547712804338946241309365389241544437689810871122206716764403729445919889467597090889241662628354805180105980181451775843432148796672898130147533927513497629606510965527928561650453420951676346336113937685071223281903195998765398454910041259977422890615190185796607582400814409026933289338352043902251795317278480341958506695814862089941043855078352891097783179193062682191141782852045344587628884915781616036677392305391607237370082377810143914188756219245337754646961297688422466475725395794436307299582037294488913173116845936219883831011739555261983899546808787566698985552353974820157348085161454178246572570153679796116315998365518509721408115985401088724093062739128398860987155922579206856804722166547207526315885934044692497297293816235366861889543870688180349230511406596235818289259912640421478605855039017317144493039495454036382766065487223913533286860391979217438910390225706348301356110069741356934014434703024922318229848169137510891614897429438857433400624356974404264330912488871860266725815051527072113142412011512859151453310483329443957398860889294472992616883005913028318564795440497332271165343464741608151405985307634141450773143638298213486420148029171495326856408189188148531454487893224275971746657468380466973602611970456619416440626225961822412024694823416950298190607130781837321873259777310123400373964223137624910249512212818464932245202535505309867928843575626644674970023281099326519093130391781370770581794633015295375082006999310000697662842799717490725258098868046859957163518611224490095202708532647577048853304529684328037337723297689919388696285028527451288263005141660451498579212157627801266775788167570244773446387551497876223970929569813020732378987988287837256802445961497153756421289109188257345357974653048115170173701025851702270438879540296637286624901078567438034522663158293135800527247564801119034930523607494950244605110438086935649315536258844225924297327374199957652055240448733568209261556769262402809506643525162485722827415549764341810555420503126877435186722081041231379006716609216230138216678422944638459058531684504874923224405954565478769856849660499710314485177381614699654272625172238476943012018805413853849500754014852125667092796270902097467172550626547901805853869765908504981426513722579611793583551769920331465531843600916524452206559029516181634843109328287722543412065187236549191219439801023699792500296972620219294981535518686434998942566249305323101379507016862283210915144016226820585574829863514502833867153860413691779502441139548531201154506055258915905543457986680884826192541963682513274994964427474121203021435057756260856115289813336939541530780944315885393541954313345726789019722144988179860575523812501523471297656210170746919434681717298530131062437012800612425924995853571525629275032495837300413881134531639279956248514097351146089578910721886241529297473970462117952714640701292023362317652840982348596025360297037717838659864522726523673190460544223116636634338310266689271587799969892587844435372699771971402833874391147667825593450958098430715595709862120734157121276312759654703148201980895975311951897455114820828578548855792136437434219492785221088604113674688056949429148703565783695680641937159089593361603680518940280457302205512418181142757441861220970687292692827511405869096019517923661181952220921646018525003252441919180900044890990263536734414197825700780466417318994904138410165290289219146732228828596820878603052052114409345638871732346941473092785422240700308855089307106107045225563262979877593649938203000948343107807656111846358014326058168791955856134679587350391248628992990169105661100688294452690851472131246994241998397588042486480013145992233157273808060276198665272381938172912626162528487384288208515041833684033069891770497794755102221857768120260436809250741738493326571863373748799259239188235198260604512151229490312136488634812171069750060720317102834083837318904836768222389314002507866078692845534385641060349499441612825774510695925719226298493707066008434455147680360192362500854696593641438869687805611455938020846707769531310326301238333013343107034770683963159857318696308461351303430032617485413870325797821606164101442207774363142197616327916915342290390736253675732349118247075405020283094474801279698965632221073466760129812189683062243700108806014547585748591916677486887516791518893571381185516764406023641245680818437713803951740039752531676871845524597563587339500259052275078396590051102808905523756860373929983894908533842713472917220949024569775988483550342065250523149236128728808219083385245586402649933522328754098926777381858757741984814978724599971833370173061625640346702503541045964152937958996198822935819448274953972831347983872912477734991987555162875232425538699424785921471756877842170750026571538583032461079728345932075999787223561700837055198093250600654302595697477624409288609463800316695654995854459158293744384190178554628621629476558654442216696767349774056154796401442740829229483405112266999562026246919167652256284527363593259557436708571382041383406290136932181760015399165252652934834033257987515391095792508547936252228333308278197329984638483510739034765496990518449857970075046438534288205363526724667985868950337558926372928957165732338110708126879646189734825054571196536015640634731590432591278512934592894243103260419702650987039936955232955165929821398310796514269843492108389226401829499752733704344415246837878772530774226502071637943962206135917976241672850960152031504482206651731812269703106442730485815690484527200281455243274530962381706269658962974868927144770330798253402038830790818841965756808977178376861160298434598244727824572638991462383112446813086396078086250087086836091950629484717856107468320581112054845213516099032705696549385975450184551595757950626329160814771845361254746349843920814639053881573959726355727401977510350308083394760069246299291795799914113615017412226604565815835201908342048953788395773876069040352961148618864131300620012729513856572901976338546299892843600535819619322983331097111210787846083945958334160946754617410897315899744213947501608584705136171915651957725262974979232031091713096188382779729863120961598401291532970460011375778406331589123017034813334766025267489503083347002729261781220546021304099398418399324467339859817247736736302697682798077661193992485216497577269815072177662349548503119812837269604586255533032863829974251294946530396325884588057592818142226507378806798906040713289541133052456151714286956516909913038237395695321164925284061063650171523325559206872177817643451085969167325416872190421039797295813192769844305531497670105546790858753598290963561324936749762125190097798258695627630001573890863520272318426076484495243437180289393582024653250740903147987564564075883091548199355720982523166322277224630515079064117394056873534302042479008117255023429819552476143882867383337082274557679472250415760543048048605484597582156316797507267422863851578585058241383040361281415482284406795234590364435338569098194024832553481440707029155648795621542399285630873654687743924210605476266766811097852847209779022650387282247621705851032206928007706589964378580618428029012164325544000561926074048833610351340456941340229105112661366044875923245883976153680871594312840574698720468585675599733246253501316867840490993413992710392657468173696841733832593835299735577859918043872810332645463802482439093016516413416689054205316633409491238431768685685208173404957238919043532524723912288125933743521661997157206174960031518272711782049931579039177860653011786444373327028322006933852573122085138771532813702412816928290632390872351655603740071559582713341957373718653064061006617237270231775827713736804852596034127915420010091706554680452898190300641095137135390510479139426419191909900593370675109136334130837871974762125851870833187295451963562134129086980011079349193343786982113249733228565881028539642813808286717100432324555710076123342310361488893169020985570806383455564007161014282348313648032471351451071087379200836446187605936823605169377192831951758938470279349513217268071658877142806031178374124303024750789883864091605743316118141837785294862985365873905750434171673446369776609867418149179238776750465317524558232625345325798739646992731004064195978299805563231676175757277427619039530207841727755368629724942180711411536345637273049037962819390445092378118832002552225717405889365372443138161116448182171984159418292443829596440937396154714078569529530007205862003188938119736547863939072890470640823398865366057436309212537714771510870152491965567203199377954428235638189276686703967161104986439349232235062206019441814010888958958517432870942876943711592708186549718534566594638649348418895098418397182095938806254697186406344032102078233393182169573111258304237057025786209725973260190880369922307750192409309911423772040499492602203254270678526122430523186502927100873752570076438680564667190592004114355219536398125356177625808745687422002125155268101464985694239458920108453341163616302907487095815685912773900264493560684689382325534498497099079909638098001511766131769247624411057994282013341151707510795694333337629464944904643983226927423714142300573608121665036945282661317922762382704062127179763785935041729138595630865051872567982693418395090580196612589712887301230773930739688295040870350504511820445803697616883161865967207777629688205015278244429243906259634564112911402585529067505291573946414546063648781637809788563532046608276024027204257982931490805206310335707828756522030519010653335125297433509330025045427853633666715549384010622972105763533350523031728531643330734100011996719492685931158613997017907064606788497843849576045177361463018750236557614417156175373196943468388875660898604945249609495458659882241415059255697873612174680327933953528047705229849910602578964489106125569059094004655057621026702074445017743864395854697122918701164874720381834514967000867452156079847537125898509576940473524125414323858402528841657646615567503634596069063108630408818087256730430037822434211817448482124560928721495606710806165197664459094549788558618377802019296187047931258604278088807321719409223423928795434204207334547312713602272490855152916653634196419089345317908722149035457938090585477828084273692280883120965581767570105480266961980600656434329004843362174331809204314273238351538185957946060233114295851430712424304303123533810061114336541877670594480892035863184488399979600733099010362091508272993859185728539199220162979577848800269407655388590082722867689674303212880988782180877399608341875444099978686603715273335657178337070884652404224219361863516604413489956221018911507445348320351791964862165426343481217942018765063014658170921427940597794047029140908142568412483668925219109899695504894606877548576915595292602707256107375342440130620086103336668209946227928729589266081826038140282109664983035096539997610004204217805352891238607865975084691578976377614898991820310350036971454887516947776484267720911799525186567494257966266091372501629221578937714141572561754737069062146546711952673309751699736875097555523788610402494314055291057209342632771441636089465535371589063967518095718236775273529287298913399260246939347919910903967464651216872669982766468556569032748060190543585333370700118416674298314917194016972403288889996547609532293745871086572889128358171215866605622527591713168177591712782064881444487040406274739937245242690831736173227159635706484239127352625312220945077001838095907423173621068526094688113268038096764831748367226427732481538859654553791051347453657033183669762454787728500801876722060558237385224543869682267454394166239714587243991273773494803047362280531380053647725346672054610791733268043315234364100590278298959692866450732814139816438604245391451530380140666630700441894734727290930397281593890156199544134346271029339320267646622633665930008681878987926436237254812575813634602717835970041420809395651822833477230079624198388223313135248888421441686093192632639670947481577589810369226628031511319598600095402087197636314561999434875106773036883838082437077715104798378025723081283461225445907812466240862794264120122049444613611612583496552220301668585043674446120053953354936187929539640259395411638119766348755945313502711265096440537444182140733110446565559544330901420209085539411872431787246844481921549982929382586432999501074711072996709326261343973795604273640144766450416288089018654604865103010206863342826251414928301673045026182639680898673860950387792718007355361070696627819406848161057672245441161319782756421586030880624650738680400574796202776735243320010342633438046019400269082335866143876192133487255544678169483942515572301449364506455584280541391867640207071972277856019252933611900533802653295579061561133071314579187087040336574217240215105019059865548196567689285963759063645185456074796616974996247693005454500990106531789985723476649482538664195609750890278205938282870854923721342049837881856343210762410658926483244846305829458600245338412987127762741062676160690170655692132540469514654953041616366303038359312338359812650009852358767705873095017413649804651667814909726739268845849219650771534028563526236683864275697068652530092353817323074153793644303001481092857062896775292577394187439627482279321876692855895337170685738725288137357705044980176812016462972663058415500007603016972692043326800880875493431343162547375356744108659242506701017790773560774221508980329604771158746378702995072729385379646355076929816183142658035085292667351207044089519596731753040159392849113208643827609612374623054991128485904962385673026205087666356117269347334501870939503407156380954245611661659640040984362401354944061135948871870992663547173060872936226598934632983257475009819760501614426708740500236321196262053952135438487601935164245580410244677455755362960012229412866075365122082980096666602957616592186278853479054329483532984592146774231614717034941939255050998229311715829150802680499468871499545741932248916023799822933856485607103554528774989750706479577844693485451079299299419715930719625900893133534324168189715343932338949040960767934809645221595400216905277576239321933950803730094075411345528207027191978818029533179773637783623449821765951507686557345161280952414381806211728690951925402385286990661460661370737389896978544542117164116176912922797782333519832278308025953708586976805281371588673660849170432256732250423846131772217356635947304097453656442294526631583538017841674954871035003870070759084454230023049955611428847905076853949969043021494313650372744391037025954527760995817726009880183429603798641169713279475293530520532658320676655336558980685863520981805598259321008159371777791164238919637396185354110191880108750221626407943769982082095413486386992232294476246652732578663807872708766803064128468423329782434671369807390228073370164271108129894142410387150812321721213155419756047345918133368208775281199349881672144013561520345642054977993440591337451209547280032673825157512522364178599129717079455992431856455757766791938263155672606589441793928618456967618923831434995452995990290794658888624164280279392727739193150230525505284547193398508178937837435368759749784497756509679379377508569944930356623115589228689192211306386288304563823802908957941947996189471467488481397346616050777898561583255215856734647965668961492257711507961337778817848990492973939499933718646206955888029280541944244529810886499383739290863410752718270889796326824319884352457485340728904285829626855756845386414950370378417368034213804939568507332368433521572224556974079880466791214467229771080896449422539746660027637398197084621348567110810698113762061076393562102838764882767342409108405175077354904847084907104089191484419971483044532481733522349715011749587327302370324984820194888335778301719788561419744148040130335085437686358129517318246661426948027961374092323738118168213579190876884394265499402668030030566537651293388989216690658752948154121697838508866023754218508181938737302252534894044261981420449663769182302631279066841315480176334987402659942095273534679309105596743432646202934890973254512089699977951169156346117554593518947792361846497913811815866816949986133481476719885663333065695802869370296756235647823004680341190926846635691073267051068082112994118180591212020235499707994309729814197645103034385770792977999954953409942964099447693068049049125451989495020035842542046751010950322664998331999443611452978818122106026190706917645402926328662772840362466395207896296487994563793969590693235200087884236372673878791832735524680943079839235262388428130446135878583919910639129881211897293088486664725986387341422568987639120065799796824661086422597805559341757279381407596140341204655190189075599175752030641882773566782851126563006073802701092543657041870974160955407115177669535820683492946239317107839499544433283782272135839970834455968908581301025420720359356600861422283611731268071913340322493851866229636345779132032140234560419602185233737608357581077789596086471080477197504181916239476909706195192623004193278301859265168631530333740129963062069527902862291884003119060838816599219105162460516189924851235178901464171799596251922003376832215731541427312988569213596561575932044494226788856814689159363313043465030131292898655004603031182547814958151201417969461956470636772381065711907624702053526106776765633165588837141942516405600982553439171569380313611299938458083206288473540032776897679363282613001218139467160783043434734868328370559955750434821922478839280121496705986841637316731165137175442561698928793980890323239140008055777955765501887476735134538980913849213197000399875689998958360684525687203550192727482647921178082229942125689018857822114638397181885681349731289609025744529443908612841080606482697049798961725461218654348848525243165493133103886706461915841561090320448319162313470883095675717122633090886248940691433397029201597540020699269735526070543900211900580913697801286701880867213102991269579068272551024144117589509809105677878125524400828005018556730826467765671465531511733774523805271579121817338128576772051380031169669224716085654534309315097735849119261100156112763406289834806825365756540508511941374755862530190490428295468457194833677826198776487845120555706215012479690638861719262886268235090766041577725355806499928961085653705257876001745431458187411424198481143899797550638863404480824038532526214126971243954438143377018312818154037492887992064659729030209189345601605868327183157618860228266403581123720856612111473749980936203964662913362325743601719991438857262601665332009107175894425107273140720370318021152526777823578359691050743021551408615912392777303427159953892654783263106654564015626170769971465567000220092851890237228026382582110323045217049468186721410203996270128116182660730207101057163555055940608148257906522269635613504639975805279564258936034993969455515768344595135881019855340121545467058045076985644709926548266634653775113631779508187147407718737248261888150767633661139412569900689841528200462407346102659802338162620547960197350400627438170483710322809321625033450253255461181978792769578330422186104584650787033947290563292047466127455868615326127533229660025594985823663761212204766798576064124623117744542330098670941470621369799378235480304001491537969797757866478386619665559751096462420470106482416004478896974911611965547238112869010161439515047189726458208850238129042418981696549500756246955641458991975328286899684737234440091556536255402083145248222068535039726555761730258895468620681475818664255828533582320573197913249858985912904228537152320754777582955834013353987513356198191232239346273576444721066255043184376686893354378463550292150539683236236149416907175489758479635693986881181502704110141740475196441400925350256980992232058140051256846628478882782061134408769544054190582890597582406528278057909997538740780892122661844934486939410058691186685348297409202709389683355736634170550030786962107304251214573421449454328780681168611417500738581709933445010554259066996101464795375609256940355226637731501410159950076280023794837240160276546139370507527887962443295014313890968180984242456938502465867950983173983717472720906994579229897138436489212408865554001012095608173614487799778276777759349218385880126077155903445116827727801345326761006209012678388876755968616223782707971623267914496380746368925466945140946607759537100473810478680845795354871281039787734158018525275825946532252142297513544762387735482403524492752028071148087278795443029508580167694862758867326214968805194873699091134594345279337151550938502584580180817148320003414853537822252448602711574584091981591155000143412494434996240709773647282296114513318535535522840557053860559114659463874917564959293853430755864551428114454883178055196655265642757228569855269787879680524770638473068362300948860955615813919892807015083440075130774337449961763383717176241696336217078265077736767572650859340346131282514574702235748234446696467852455627758496206773966107378516979974210599641597819396896093846503640595239417143657214839648065433107823861991345772809004648268553298895275651124203737070958792700391660023434354616144268661289974897493720994024292709557454746629284586294982658506142841942622253993096700096918782366605990610599400049896702308377718793971603317162634093611017836509344864054282754623071976763796039822211387969766917820552527578124944811139119266330778961599705604364892610787187603111200334119099417243117132718386550527449990110194769934954963455424826653240802064672622261558593154964699525456598438560000194724637824782090124417363183954644239571704933660756584966047081992654164099395822097408792785777173337736919631818503145849949820515101065623626905488143267731475417396410942651991510227205094714439020868031017646469862659450181078099146448596248758229875724709508772472433535619347943597875992357415049977123318359366462627556652836607394020363322267975978981601107614919523420350962759039732771992088594559966799635948396501817592237795192587746346669236865458264824889404856435357174109058045849629470414368192320730541067277322384214714753241621180574210143287833563463596453262821114574555354961943205738458599603206604861455430372476745578890404206786233194169027682545136231553180126076215276992029455999641656373331717437615410893431784701186399960814864984159927348020093200828139301006869950820821405621597321160571653870574898666757100781964641935076471406905615401957868633952912168506075451952982990930110266812187960151146740328186003053124495317646934926535708397043264332801161542029205810004144803369368205527290724193478266548065527423695104289735974544964861060338932198078622332578030101389773957135449869458444687029638322027692857094662832572429941039895897903013129163819687848888544791696318999438760853969274452983163599868775861552137446435796198049157810026867271507942832493086469255417375878940207117989206308849004347845137771998866700718421772063341904292153596611389467794981541059188665440164240516098109190174729285473947353084357301239005153433276286418089728097732894104175892292297964397309737714753646637489760705471205029461523590866895262249221848830558962498074760640638522619286801690776210249963453679556362410785047497334352635698078103046156107911024631307843693847384501254942197074980169235171325087627903257172324816556141243458971798151245860714797826952422551785199593705853909839155322225565830311855434003425729275022425056491790639647788308779383711538811472987840370713549467583084785135254519830536796864638909689298974894985864094197549911312818128436205505381083837074865849991958850855725742988822319231056152423802480246366855331979949553131118291618770953842760341013905424294387398508670538749607040026956641512083004808136172306385552903029578509512716335367516825012224724735440751226104109032368888812743359536764590794218110297843515848788504651754344270022939818856121097894704513048730248128083681406032803826002123905609779654274733161965096105896460546118783951935322466620801869000137607284205766117269625467320566905627508014538496987317107321285137590354326010173956062184448619022542013203464910509089333652969810668052520875456562335924203973583006194519711208077739082501724970862451181632137914746776112471197854095322318778804047530211610557034159068480582472866782117153839795559785905832366354864049610381294604333725387556425193151671489428284541184624030476911151432770951935966849260200983286349221553110332446738911580604801170109488718869540437834262724628015116138650559892069669421260644384022869339256597202669454745212381252048095815564666995456759475728737826288335910797289800153494846553615174676348139976856621719019535902864534485045412144989552905263116311252017735229624941215655977370856098610628947313037465895614142635233919718400549662987167421388747277103205036538739013362663228836430880454646237098825346856026420591531153599953586123163246531084399234365631724730064187098161262201477699605667223041387073532203984983161612463564498383924117728869225711563353003919120894047508643007588873187735883672555196297463975061698669108914430301607045190079113609788156406999110080898283669051287521988960840695031719173188948245644142806983522098543446781067319755303925514234384344119096894946994893413024384438918618833627181525746692678421113932870814407824659497079011982495347069593368571161502397420103882581921251022832066323092136463446436714561129477159728834959277627784661950405433483630641833627542048926400307005996169978732330780114990261802296815321746073036929500975885869964456458447802463695847161772773718360495729572948580111140374792361975392691720659804918715774278312555027827402168075399407536469754903222063387151321778594307745516087758449402931836684133741491719894047181108415437528442071540938733127409981643303479157305698703807049704938896715180013642299532015505012727733371155350107393091135550561447094144720094519006514909007958235657169383154295439100153379187282000434326347991747901594371348202099426571647334349330681850831025274082692519606002940176696281494566428297249430117688957966744029208948844192264799009776313542350038745937277837195900793271536043416565856260495752466155176610017924914116007038420123783815579914297469318791062740823564685356961539377879810029685501291527238317694814790886841610449964296039047646508476023577774526191062188322623043759960290058742954896815472141249621733092396930847652419222744538919000203191276493985757982382334886024744415864100989383259813126900418308285870206556464925705704961901363478009502647918885792049361591903531592827680051488589581307143765755170906954235491946149149153294887683789495123030493663369948296092563670661704965539007728692856668820290161356789095680762013698825304154338219950721192842960259610672326531646869920074407388802293572092539668491666538404717143009472443267370678208652096077503029250253715636077392513638102709753390187404573679027548175836239261515219799289160847407418601197312808308725168225599149225626983283562656367589034707289631493773864295381567476552682804050933643394551100897646395588497642813091798548568024665278173102077674597394539037646507817355446528855524943324922835212894272532658044624275743003309926372037409759432897216693081209878585892513872218337301021108539960077858417926907012754190262960917302698623249365768185411697804703575887155657043749979772549919835548778957816447318116830845325483033331814427305830025688088363186307142075640175186366214098247651579437833833170446033874350315449498112236091032187040698535946526327863525905241553667164967306133911759736648377634889488387124500040750121801100991437822333810603516977030475723965779428336562033014095163698460174722139693191248185566607189046354836377854967373854631501705750480905766089137694520621512388133045794746480596466201804844634948989422672812954074877377027651168598709292182923303980653138973689443290809250537345062010478810553804708622063229945640735254208390581541016891066821206561971370380953946481863942560846056565647605302886214694566232727529750095838742626401803133188811677071149377261760617479911691249178409342874015345549069813422799562275013120296489343812611728992735856628786412137336534132329032933684430903349483672143292209855391336198198931523510196117124051368993211613190405036110840900450657370667909955305867242792014372005365859035583055087439999872409593385025619778215289430989429964482988404287058361665424215204458598190852880121237571039446069871531505891353774597195435015210823876168750336671328755486200136927491261105631259787791976615833332684242314154995858051788895691501072101894852500843660228205443308737469506689426529922246448991966176709382170150383764930390268947696611678672267944568047159013552828420770995740605311667713536369162716494406254053782873681917248857887866452114685498833345834242838801797048472496053017722250266539159294064398384519370684306886028592594166075060511396941141090290464645086055420804017292663091505440952162926173215356729457124726614253303000834302228385392197235785110197020507393600580203912936590160879266660470897720949583276268261834007511108620928599856276379540557756187294530761546627466493381259691556007462048435904605726813067893299366512165639051677254198646267311513343498771427062246976305177201296617109809714919369621043317199079177380565805932076780020682745542266965122060221602069452293211165283983001485507699940152673387363226272256156299273105790092231576142689255223301977910418346762611336842177273610252170135180195961214144231969159939822380075940722692237232298252572023899809632266759300149991091893596484954014219457016388023613633066691083681871516816642092275340085067186809386164964990085511319159504403030129974619095683523314928147359654898057492107626913662752480000904633043215256199915463507145968741683802863450342950509756816331284011737355637249343348171490077390056962140774973847301339188584182184017594859058119073458577962991869660975332408227877889826003642376414697172288671523264399401661254191391033309511200570230017984455127178511851604929945222165309658609574905218478661410540373443308826415794385940258611672351659303563607637085110049824841274766203506608071104100598880707847396357456404793716095983654258651666340257785385786949223156511821969973471876004974596857456792807164042065519795357565357312368660377817414601289471010858961004950471332805621303601007190991117435478883367021396957996520022618214616870951448282035452690697011593842288566002903395200155174678006808096728103811069473572781595023242918200121097390173695155206965547998556220739156901032138001425479813230387721138580056167550609827255320147843889616527903440351277942706154677988773695220737954913590091387698404913601325339745297126023231067674195716211103470627372708217785887685144991132559148681676195822809217939953573818364194741840488540867134649120348651733496189974934083819398508383769637475292478724436521601706264800474632542523389839243235555287341724371173585920166973144997562426976966276095550753041775028900029738915246839966860011763557582638591919987352217118294792263645171616149822489144216358578707437583779979047854673431849182654861664832794904919518439876098051871178244061202747203692230457046054550338616131105707231008293887724312672138405566988566015926543051412493343651432512754256629104575429056034310943641910643584597630081014632291368228909583552725186562483691121919365123422437339376251651325862459259454361136829291730377385786873058675272017962729795007345694220047499617703347841509511432739211139474309994823190913692748943000958331637230157429128099027634751685517812662312453905127277017957853611761447560793255845001949157117462337289868512263982130152223079499620653951360903976079509878186432922259561585713497699118145775271053059687321773965283981609964602788115330619438868718387411059848485149961223439706094565065997589324118391907056100827555777283244005511345730969698149105637263062862422581072635315286519393810463841010552085547861179706795391139335450387821161125802160916893333726539784154782133029865869065407145053929947603105193575085588536393394301361554665429955799916795995632642909770261029591768142709624278075760539794954391951647363902095420810028805783687141121327104309900643564216870538056038976487834318595388805703652728060924481698013191065840776393861728140610299636343327517976334565541657127421259824409319382404254938543283326182297137672773823424091411398648897666313953548874568373511721121914940984029527241085569501279456059329068138069722021199027328677227337942555265903309635391043736749949580706909372485385010071825382741832111455583615951143789620797099854495655101342277793156137702143995178160979437635229174386151186944045183004259945819626623017114726554921048120896513688805732213212155113502536966652951817811352621502190006922910900114120910841676336298077780988599993686379789864728710975429073623536588346701629597561486782339105238022263515244944785040824776878225660279046406693914837222519969017219196838804103251555604355914733049269838025132430147598189355754113721944759919184749064708493056898996723961750663813054388479541661114296219743998557155007439839608847776528729177154860595606684751969652720246373095120516660590911488702917036122428822503742747256985775128403364352608703369357813571368273863822689678632662484971111371664632489560998995243721897183145976477525612468296811816159931652797749584976134310181922733496540048705245208983732841614553401079672301592971748663447528386507153841765297154351405467073854599513132046136286622671849033848149603710611773044965168612552957610923133362409229896560756255252007947420784636198888476448623474440780312744299012328001517437822140698530283176614721997760290425660895452423237301737620328758216164296205683108317404805528443356565431608745512468152695776369952734178431860770042391321008951336977828397457033881519854585363983414755212133764906405071583807766542745609983248960099033637986113162969981326431271004469268842240814169894095680802476784689415286686745335096705981426029807662195322179609259611479307465158833660532981076705019427128889975846144928236210825597782900223730271561447694567996480655163289439075320260283836645221103658108739687776840289479898343422968760223844397258046335857581308249431617407797000998682881049745945613028702647979506913874145643906786511153063962546837720330357985507894214749781597211389210934204648155369774316574717455062406255994520560157967879453314174984931448400111862530854862656991412290860907952080395975652804553403953329983123784673817081526164626711534549834125320875621375863751118645072496402115632153919191760254110627666166794385506944760430629407309943694841199319503254587710628564634711269773480153880067404273908858775235169380153230881741418295629929309796915367136333764798537426458877228798745681370899776441916719750088030672715662012647090829171454845589965350067883152669971404742750895053909816238039677515068658667158688581130940523854642203079702599759751382570325537766236838604458203982417843482195937495884315584375102818894798611207906503159302529831302212529576867403090207059522478968097472186060411049044980126339141229065238753440088715023371428120151837365935337421759819810663838513131443669879569470849201984757852176639603749390002693383312832306162136896374237386479214419143848998612307877233332444320444427192916471492886474907796433233043844250364816416547239475868019794249357213705498455040504242457899025179746288823201123680257122803323596729496473285917177654826463615486117983129782730806986980280129560175843396960477800294865060368469688767233419242609676453432901154228333100117597074915991414838337988070155669418161330353914592851519690553492693103900752715822172877884319834631951120304513262391063412511084166395743194882316250698558287198573303096883683620313508248628376601862580149016557398996720540702701639591493376240593957365959818301524710523283261031764997330151486050819137040977627755005843044802261171335556628787268318559536596849237634603000161273328406118677411850018885320475885505849184449530034387171326835333416161675271821719640586081451097580690444906030958165585786732705830185760111340063932309455971517473518924068906103223349946506979650338088432918405206850154499833988056329178002897862577737603058796382697837220639741447037896935842185098223337237760443369063431513882076967141118530655143490552851375858947777569360619961576068164319661428593161435763426771452057760478574620154728003670123878310075462926568882640777903820021233618590703149429922220512356390794441579640371918373559486779889192904270756166814531312787947010875208491502229155587845815925643826653815180107170362349542186618683211282607404696522272824703972512896349914792335822485295109332283941792422804606639308061133636315146993325414992045981888425299794431722171062018699510780741146797866533265671233943224259122678675890289464683783291828377558388659164024452158135865214708491986196323587791593946001406620416463819065114210939824232719112434859827631726788507228426360290299423814399622622844617215804998760928383427332056727963739334508455947408103872886903224523914714403599593620311773725920806153697992094862626434849510563458539981839910336842356149476359546215497000088338989320559431793977799910660186448684123962299653211997555037338483010525158782623531507733752327857952507654330131113799860907443311700535764645506014865252987704519905826701448973372597844968715057992709310631727109381998944311480992323224161739850015004223260353217658679719236913396172024255646326260151027998848528515240063464604517545601180809841510172945997785272550147706154789913351629935470419617846299462808672493548493603837948467993643677383843750945588125737043202910396180321189860714426002869524124731680603873017438574643836223087213931521364666585839367256268380893721695813405288175018805743955681434127468378012031476080200048413545664553720484640199592286466780685850979178154001235804643776034793576558440532958201617223466169131951588883433399508238676894835942400661906775899727513935884646104129012501473329524707961813957003603555337121320346242287859733284486574060250063200994558334633981648880618411529153686338427258996850176153933164313624316133567505408400146433317986559839713211785394445901512633485371614109628794325712639239304107115734440358767630055378122631238566125518120445585619215996534954675333922137985641881422312323078170184935586232387492468797043610847339669666866896172518595817177541846385838032467103720370081988967423490012441774026972283099848810572812308320422610868463723307924842689532196227709542266980918746421976543237300531634999328663460380238430630804695060569775054241158293964245156634363240835294343192956300721977874220407506303786539089584401728554580088020568683990447998025584325244355447414565756909801132756096175771791996276509590928005118127709095991577630873663158741965446342544381869405408703441026072733454978272386526441947340998881731411848086307308019863308534258268726070797946167737029151300595855186055529492395779278225523256613046613228108143335261823664888527049317006792241581656485192000509047834756395097442960034583597366115278474070886977147557724318453111940427293867743991548785683255212045816952612289180435347159183219431977301363684869979005350434928769017857952597332776373857786519694178150972171636235295606817418826041620755715467857551870255935552482842836179886475317843943291611190852822759509590815499334924413875039465808405782693600751695513382414031914675437731408716337963813727746276748667401065730475056996180891305692182103579679826325261820932740472018941450151368523666401377833183746591538694847122768869107862059968906838283354602287342632135104038605783326812417122409897490510408873324181764232496834716445415925705295638388809051099898343296836678503642935913882189099100127463393919549421356721983317272447140856572926663753341251335204742510899703081170513117959686329016225524120408887551434964873784226515355316046635089877144121469258703369029933384221171736162431567958037502283400304399840683413334759855563582681292568585356780153905692021893921935214168738814107590720744220711250344390656483364377998519656962407342640675263897385239380590816977635354296928594950366998056385308960557892032817680997179371670653075210174099713594140765510770342952060024718180970122515611468439579772363909323481270086998750478049669553625563079344917717781165007702521190387552222690929203771662464479345734997826362111544267400725632779961692114181404162823730447922831769907641074681496495044867360546192921113699990974169847755478394752822389849541147145530539066834992152287035424879624174580954810273715243104299995112412580054473306271005005668952127802395208236063503837786067232930662924873203679585251520098843083374146546906605327777750628450416980975918713513134117757559389173180874003827905951384144347967964851016474412763228338140075104559426920147861495291475442068397509236697911496908854581297718245961009072273204263759037543567380792418702011918120281990323881820429353182128098035048504687979526057332111169787097179269037086550377610986541078689391841250701311974525743161745988453889535174217897214210745337467878690593630526622437215799130191053291525271605433734980915209699336314480670581491339015675771581921820719671666975928673272000175176390716786488252322184697723261464860740781160099955312910534919692754595328833703629725889287395907095655175103179874067790153319549962388331242706296084368562488156784249082696494672844777990645324676999489961921449206513481215812638644151718571372325237354722482397551352875427238111732797557936235741592914451051298698198169185496239796076283676907823467752161419879233673692456215462836207008337106013773231610206080837010170274630425510421857844464669634925798717814429590352490638428555985934213879451651657919072088058116507687027975815670023189235778660113598105574483286264060791559475291238627745702809503901803152927847155398731258688729153469559369618287254198087074452389617621288783895708244621202579254794977084175339000867732006391739018594031040490177849346342673871805565605576296618449251870304008101773157078004809524947471170740229875919116955478610875308264376504233153049339958381407208997272642180104515896151633572274233702843976488131326867958251613456750389598283698172327936206662291136671933002727689133870139492397115760874930187830329327260231956872345899221035644327245014715018186242863851687983559259617368045569607563853679258951971108873449378690316240688622230988344176411247217748341338041031917092327815221796005140199062852163414944322857133506620633445738902520793111493154996471584636261310573507137356436934029215868304265658248537281740466877140174921345636049973413439152381510281821018430361228151253937994107871827991905130242727244293294230007974686932534783482938725302803350689716362965006287462336069808602923690953608078776750082044525720457766210287734024551836616385755982432351149965663964184275296014891446371074582840879021253175666682086825196730421305549041136276632007502176476644977832694478369250295909464679290753384716424080878202912863165325262061159923503210126648750985253253609905384984897143898164185246159176578703956555274945502474655236793527761744141033323415614786223565813277894712201162669174290983457981075132028594008689703075487376225316898888303853678150636946261072156298004495099946771191032974965893218440379394144154139909473366476331723242759327195376750385835535712873307046812982209599097171141474528176048477124998705767302277762730847689314192560729975297565992857361658183441918877572535159240599637889283938314175640962020941714952896342079810617915490618086395538505977895294514050800285289655884460069256994291539181415946575727595339838511644955240980044266688174951262856197258586762659187592340814370448662226152780662795642993327921933487225002094879302885889063858938902076489402498338233108752143797328403765818446503851487564912365809137865256177994660251208029274781191307854803474469903558020670785280556898677011985466014897538136998718974050316007069888217514660700530439194142365954180679119822811143237622279272352722140501909028775852873103154851874199461738921713078178189504848189897205421353897024818795138815999488118886421301941368255604835688870934016958843419932619161032899708616090410665439553661280370979655980948106999381679052935140839216220660133919907354288193109527676610141870261754565502788756250996684799022385737029437641871361652775570171279367545762141842243504221172612151647843858753563811197240930787798201722739294257754441080685033584326145165056226522291317057026444943952752093188369914199747176648730739070851358276090576041533486179592291512058561318880047195267487797818425333763127254982689633523941351416599926878206745250971249384404602951621892619308010748693398431324076681364509531867164801543132640681593840699027099916321634926122153351114265630563187759082722232060808604990703106379635823189321507991748589672718437009186091977887548575188597170587115849423136773207898777742174205488775511297417674092045460539992375199717751976411790799128014650979392051468127028474748387420792335135686136708705632654078615107745117319614589573954923738431901096541146869876423114835773243730137385111957436031361745352927759656369806623861894945233539258939689120799573458816785170574802649651726767529320705114054242486926968808340527755148125514206767243072290748890983980175421854050759263548843560811487158130628402216578855722878250921780855197837726833998573346291546007989259685753016759061162873448781308281895754898318736090611187839189917871109663851149054321489226391824222155068650052693710802585640313288234835285502065402226431306017967958017393887540657679961566648495321554523516774949317084253414321158620500477294711274992886092950262938534993022512661674133908548593601899716073766345664076256794362080983134659339693041992282347344452932233382274143628333480450344447628438494005361381384854758817791928624586305732711155925453576971384703987866252793997343744040688325814140414006829143526800665875718910270081777395535551453784177942678070532044047299557320470058859835210453880668982668805136977693144897797578345492992320242526120701272258819314750615496581964768816693497466261879699748470180474123254957807272037486424612901287080269997621381042505557865566014859068290153029646813082902549087293804221765085396262125554349709283258848382874826417429622473219863304811979629051348913596293712359802869808622118464437103874249946120608720067942094131100864293449744939592162872499891730487598035903641628101234060829450663331013188751622927366466537553528230865301545905239870824973524816120716837420055130928612871118862381255245801380123198773135972934640029927561395280351602630508897991605465047095436012226917221415943932477791548972265302889933514736373490993381266167256180912050719063428485920211567119718242109051118671117108301870709795553663599037726743532450277752105138611388303134760669182308995178761862228824059632643098561011417199944472268484231597593361233079025102281563798315691843630031273842397139264013120122884921234232406187314595104507226773849102847177935657525127441709903136030423390434219210488234020718266358284075326670673642613099582094512817998965903516181177252119628769750995634951816840604317165902359463492000067771801784333057913198802637821795545536538092081141833181912441628825526650696061996733140117770709349596166725803696920012249507688860725221724623191894804030020164767404358592278100910968986950532448378193305095252276659198154287565194411694760369971879852713685267201911060744710772082187346922187817990438629151777667039453457063769996881809052203552117759670733643171633793570767253339085935261698101686216315211111932502131307278692495156027703030477601483184501751154226557122089343522366002934558820334530075050240457217015983963399460981449897855252048067304248770550514917481387530230409884357391559278334168072879579049586263328003062048859133760757440699243337963443217842809752965812927290775230811523788638616850564476019309665248599162321460220316728070360664927550634865142822173908143496648651692927464235497760439730387758853775835278113748359199391326275290023870135396334610695412545061850049999929034497909776996928350663657200331536502811072394284142938264731508973458522383932757258371036500238854596615240536716634045758527942603156697557090838644440509633503006247578327172289225626949700668123511001457673563441231899605392859117599460517224776253826906344276844600545047330045107877168121236339711685155295886461546080667659851362763615529311377312390066417604899041973430266312534887434578411645803423536147537614941222138901684793079820330756911492090760955878256845395627461631191442884072446979373404797027151179413248397204661548003757604378590706470125338848153970441684266978390107342795342831393257219833016594699315163420101301048127096264327690500263084630689367048855482418671944284781970615364118040627723898591378488517296223367462106193923946737347202329523038699429515263164617651076261693078158328952116058747946108100721010816428770238375681204686673963903709333495739197177403664235733741958450734097464155516122030015621651103134316244945727619969644062022939734904817223532897674785629614833383848222993165212868132266925251645033531462213254211568800512799503244477285201760454116540759677114311493731458102425564813428747802730486948543865403451492601088184931366796636253809895702428931291468824176309951455979556866814115030395785420675169906236644945129289023560740408044165945022124728341708705250998453984984277636788644555590094556928712393556837412187874740816847572398879850042726141112644942684579627719305418540898701681735280361790947304123839733926579176390910481359302588712083647524119686001659614947807585651521015105311091288287686435161530185624618058932830724724974720932581692785293163957660103210684810248651264408641080179067362742896388287010083233626736704586370442641782276731502245164013969383969492027886085985639403595694613411464391891462156727402163556816523240282606669947408914376337021603861323899277095738231343911277140208988625354978116505322949305362342329743769290425939779044060711477244870323175045287654335614368239325285978131467506432644913918006153305357196441369557961012704478250376365209094053926417052386917249556083437533511408961307881099883024635086914576885698984624880792043879750246933939526559859334982067815011627386797559453440575642664285419773946903289289692285125972698607594823530916807855261280130403371354610270968855767349787048090578062447419626033854666702723627364449781260412861860793647566889124760932602002265302526656158068110232310832481159501702281320640194447414495821388442377514809620375344124714271634587936126929782788829723927620427727454178099505623157294589192385414055171209567425273473326184888366633530663780464268208685256285594819388371556253845446369899927872012977258595749436757374615366633974871821059633749611617180435932121023288306647305966738729874836561504219366591613478108750106397383018320184313944882271237752988309036817723299822984957237496452181176382236968241358072692468714411790037401547473819047922290228387562304268902195575835727231282291462419219785822964782537094187865236396505075266478870891914671951284149452053662449726951052139045544697196162057118187237644839938621235109388379427162825678934798557403964949544668012437808329282449403358901458991662681778647173187135874045654155954950825531957488381264251785328299091556205797059531004634288693448086473699635943433853700894399788582160553957568737746722990440574875433100001759590273641000132056232308760766045931341458777202274614378787561331663168109077279120375718485025766830030310557427640180946473967491401136391095277764655729187172228483258662426308003757004479602841987163930110609572709725517042037507208269122124509325345210069566796991104795745097778149240638168573731136752363151947500948057775905112543351424736687790280011213627870797549792427249499165692039185115788619678255032604949716907253740000831653628222447110806225866245295676866905505412347154942166746755604354630185464255370052938147230294100567251178822238766771097944374482237365371309248377364422492971600828198310891310410141682287671226678530560060123676170577648294667559825879897320960243623480944111144295868172475033737776235175763394235377554905549306022640801674354083764358384956471669569913228753733073343943563064777174544838253632023646956936002629208211453164385948118162033715350905933093062111644933709950533495729004674603909359073650641453631325939626008384083503722703819822829974319252744886582123282003792377024395527125918079424157615612801626847545995521449904816876037555709372634884369759032035356125790730975852485973319228419356115565433536845120698126627812292343499653055802227687754591115480118522413237505254722410201864838289669126466671247051304552580327771654291087919754182651719316230657585361638109758248425598701138574715371618931198137823776438069554497629888134768878424771094528025830016010800348487375549370130691981839354168661226512644484284609066318199311977779986794466168063541778165648098285380490333667636816560358464695840243228951607842615731633371770990426872004039556825495059659805737358367358468174746244884376735332175135790555997993265730649531745215339945800014099674384569381769562724698488368970352572356871419846388268030627932000124203141191839878354663213233914914175022308362185417242833256725173801736193356020314945469466664386077324954710889126545454078062204129870567200692698732981984737793552366944996414854778797438007761592524862720352857544799459896717527890859697900944746633626453331907046788036303173497536536977727659700112759059018972060221763224442759584593277588852479367410073663508846914941229715058212634998510159484690625621403310698054552195984368213450845888135048197815443918646968821764662544287973348215035442231636384483819096946006214488099171128433401709339987052294526308495706825391558556535897404847190610088873583786302062343827096073418722203474747940418872413874970021940749892788600226663844009874308336231109993220558508924832066267841177705771271561970441644905192644485938115293629158350450522132995068442391963504113713179062622314608300850258396373947158951388486650283133524105337360904737445139709070443018653300756395836445955418672692260009320392314031049516984170272207961380072524301939012462667859139902601913674599382347229831227948883463350230349264738721239506875308514455291636443691832741814575513769437279180518241971583544555614941356372050828640913372925557428675089476400874954735842054925087815480601521275248890077039168306069067509748749593784824380431921400261120343064134389948767583095291979962435324890436581645941032568157015467372532526315903014916692565701340327774269939437039565918552004627396277167038226768280137060659515654618159261927586232366417159734329751436343579449782460042174214880503897380514420372777473945444702236574686274424675282397130641121727381897311163333674459288491315857049934423181543900717861534525672641596400172780124922051079553550723852099716354057445426073970324568988426449533479764991226650053175890763226145631668663090779045668014619060332982527643725497808340241578117820831690721566324190119141075644721717518516703710000190473357784621539455819453171513172011114834931059100831487172189899937085281456775172762813807779539225082849160529267878712121040957598590090304518489531013902502645374667137759371951270377412325470748684681572341002984388991050912898908621169430606129460437565109496404471195022752236877769362728004663883343920433347819499552563730273577685630836082496153681036653468388052804835371351857306945452156718856586318932133239325638015894993286313176929558443732345363436293714947272832330703713071527674717925846221498410916153813881940258271958082052958873086183473602321030227983324862661357429805105842594935669389126015789474378983464638496792166155116522254983956070529786735924791308088850198603953104299228530872913429331132924138504205278542229279565204637956909038010331342420475231042287308600582238389640580996635985864841369271361554601355005838775498923898663863626899507714217760583861047379080063505860444628212571102172050168097439470697301069492353196575786155264771323629603455086800733319835963687981804087199375232923900159159017346281056240965926899371388655535600711627810528721146241737602301915453396363331844392590826703955563895048978901375107341578020553125419812379652788285319321243779303820285942674525076878505506866385716643845046048787450581632703162785237727090211439685535897609049162068803072995717227718518565749350376886932365962323148626343532787041873774489278750450065583587005953350698126343602394668549073308699301116917584378081039044781032907197883368067577957821418386103847076666878152136038054609975016218996151472618884940883806084307982152878015296153602544175475489888430416883935349522165179790684922697847677721353467068618949944624165595707042356911133221627664641758937905335522614606666495375817395374723042090036122182445803092547671667166724051216589236577326233041515513391485771288797358525785080495184792215665955644008445454334402840797450632730515119179609651410059936043755448836795261662085749562597983639646983832732434376192344153039677081819182509440520009424448083877340089819302979673027409353983781334787248608284097506049754237771833917259252259440112953749086042535331887177355678342420033028893650760363448382787908864156414424484308930854660820165778917069593275623924459011195661689125529728085667932692948197843985781121212426821015929424824210769950002425693060997623634104594204836438552921806309050928529121073497664923341439204404627296910850255081767873812005734413253647508541713880006678831676796197295494178697862128286923593384678036630272274845872793944575682893336144674814545174944428566771347985534530374935102016721663158437065962512728905527069750592835145278587233275367133544500729552655813352024933144924289973008505455520493683621630348807248258201421435028698739070728774713523742757479581497626923798599974809875561758109708413745429159838457909647184896772007769105168772814286419828174455997844877370514796449020136843180815036869194686034373050733542926743595244723577072906219285738714532884681188306802712885167904633053824347084434625233937077677830827794698435082543175789537011219566239304124745659270573314305056872609676783444449032779085625614343650964998056753399449838704779999746886592094708915590963571510895491417842722450502703308649847393612423792992177716435452874305468797952588618447123671675901789830441692218726168393438015718986970249610984053348478869155560061648724524424917744640921690481722482790394454420083741071356027371559485604289595018981192721040954663588746677576530145187743347755633851844683127619419939933009519429442255494689650654685097700630268611178215056549096787423220349511393173564328180633879353945676014967268210403062122748938107960359246084627778905778362749351676258926349483504898355502618676518515656199133330901543943701373504693407067358403776836230975389774435058359611254256552577049907190908646027388971750964484257563288022752811233352234184591520678193114879307256927759418712350990082009826272646757085961638746865182679306945291098446946806164130233320011083603750846741595119959060730003355441587813819883309714551011361046999038748426353218219483935831661775558700783210699264103101171657280907605627451918804394305384919278981250593332640337365953051019669985639688800135380326406782275517027645997842486449438550366528261806599156145306678441896114095070324889879662357818964809403251689890822645316293786905272471252960976115978030215619962627200829704986319546856142671542797668686433492008196265904485932965609844894631902782431893988877154393645828977143367506891258530192370834091375026869877109696332149290133374615493867990219104609316709329350185252573747313184372265378239815736165472142515715221445275675477913904524367524535389628555560421789471137819204227073140273476716629879475610253793486289929195446807912939382882959680378511488178730798028458811499657126178586450994520902922393956737475221610118040757677167894198987597987371824919403586456242006033238482109306966653284922568286335410600533859791618837338522165216712881392840029663026074895933131982745517435574399348211052044384324866178450192974921584688605611672916698220845339026223026478411559944136222470951230950614744270018438161379530148069097635266429564476000234798372434572890652239631137410888359757125584718901218072168102152131517482479005556483525029637984033120398757844919334691182094958303071435284658982961005382038737323421199049494772332978297306284432721802206045013796172582012665430534676504887837924834293453200284886999685900516144465341408460510854755987087090108093816665995597809515634279741625458095963177651631838548990723604323317574963643911400096210465318163136257700867272672871183273922607891499179933079684907563777295043224515717541598095748348163996572621417376179245779663526972832730858072936587458348610343665694187078357703105731636645331129319076821612649137907059952802332373208692815882162802385427106527125070924445098738644137497891202243325423816533791693598866290647736379469123908452822952723639290728663174299477626836099847566637399467397299481634968404443703620322224120429032466012026535104188909337622884414390507878244338119486351497341401184139785031326566595728457271424680572116240484193532313672918092396784879729622223765484356113950003955709930649936112073898264169873609145954321132687784086753283250489674410152564565729805340469022575586070792819270390004756453294898578956465831807911546597573391072105941283062352475183205297045940793040471859615507076545155308952018976282679884224301451695757326383387622877110265237343388637950394995887762874660395644174558882333319173232940530135161587547334777398812171823574655674143418889689642586900655999111822060346849483718776285871551007665049924451406950107285782913777021812246759833368560505784814673622207885841572322748622187479681389882006102215292822438289628175008502988584869693880356908237693923062351351646096398844427151045739020357361732431520832196012941212581652068463805866552231917194027481844024171586886009763066916788313467945030405362360181927978242512277967109025456172845573834143984105622361901605527402841930613166876541434091489612325547883297490831936434298779543615366129136560721285445001921716936136708836427682424521599348181204003202842653562419487253286371325659543441846122470842151285366684698685826347339940762651111123717313055766115565820807049642429153193605155238243662064722660207597698186828166302174579098442392968177100614106145412129905503088428181828114239433893167958300713164935717953023510771264083514816465019694755576500836917731460277327939201995826877326614974391077141727051559463589150818143510350900542650277073052315718437166330560567587363390583892264362083965339650838873672979397911139458255798327431469453216395202927463704990549474842157861252236794497583900822142713168383440967454721088686896341701826082599443465070110407563733510130384904549274628598279947337799197286507460760860222447181119238870678527127668274821432048120366226069149236443157089686548458513441665575699152576577855100733658169174383025398991333427456711331393260917363221854312502150475203850330336417067921353101719315638836249010806793972145948577930329458930951968605232537092375367156680109762590529709991693331583936257109639511970330241113161657214676775482052743335089496294528283044060931846059493184740456573724750798724707359030734851993360057777118018419865175022364158490970235300379174071640333203992680435747209075338651138696734265203659730880969288618683786744393755959278019678241130249407589516832088283320461305185224550060902981987890090750047133512940836544096018317078168553367530162616718539679212613796594243765803681774820883992457874264868024511897537596669297605583205309197095550803901401170467096320401733096813109319385666264385585931825132913278037638794709364345569593177003097434282095005000547004926249296482202277429236078644454060568706535040544799120235725418986656442428553698236214824647026945297712347455831530114394027839906387596448041872388975916148808231769558444701352314499369443834001745145852165112043596597111108521280743282816316283091981355327310121163000172345587683314280888399584060176660181401926874445221306401200466218642861312127737532014874462439650247069382824315277196932438171336076336235589230741063083298566443295202234043400929039888987767741113829738611031865909921783548250285391154335244027013401548556560645129725013894667003592496668793819756625060860072840821390215032990947790204540901542984249724358125021915777695111170783252139403237527114391001983102980779050885224291378886324488057995473300875941882781054680688366337698065270079228599698161924811794014624639974736048183749442556867568649498092741167129225530067584972392333392916507040783858975085002979290966685340513892689879930997132732295920954996462916240354722832582486164634458688958856997072362214453043994454539249965729510962946685947967230680558990730566100195734248598302965008284668410604790054755353619895185636031063828680039236095374075880473382019869549221040113206932196883623885952286290981057735239159885127832626451293317926236153116068572908735154911861422443824816531622025668284794308523366076672478781532338092751476291780913629763487397668155840230424693546707127187405954404437750758235797948575212952985190210949977877184521078047330064124054794507965753506071201053377416126717385842279927616480129207032780162145331678084739175554185442896796006498041161922022145667079387821098200320930992510424937883683482609695395982750472917939120044623514667328635221756591280161095832105141958977063443599439005329795529010231305917198527104720957067009105270080339783298946364115075051935993532805147397637818772611759325972385015569159147413004933989056386319955695581722749015957788570682056054200083336228221505767424874796586001987907098878111602216100175620716275114317963114807125884829814767266672541470100095707472354136580266844909865913179419652758760257454200737113863550911128934921645977154697835285027542178695633259995762469150311746108608385102575306984642825668261931946253239438934192540742384372783298253486727285594509192536913554206246722618983002989307128226123484745624547818447140789779905356100411005477209949937972860294484187052803929871826364122821345417264287188384964940130051681986927554711912798663553181598562037034295983223874534925465054472644189898472571774963406560964659816964204719816511651917123677010376797890601888921737846219591674171263549779733856111268301219276447587383020858939911961315573846251873337609918167967467024532911635966588490907060928485964571514418388532913376039914047060799550369746257129581768923108101129475052646251988599640068856023688778740676154296298759396517699017918466545306585470263335929232322467228705919443876623440915073541905940255074919363576354739811526730797665565201491151324523328725909809887029663097189486950841557854783634321841490120020633410701109902839249185809290352568659989384429415843020561563113159085739965581888001356298128321542316142418815768736153645444955247325332082417571591951948435110071850800207777781669379320883784074141511882403208751919172917508125357274123338851100320312900924946224877901363241977576422874208741541196369248239658955229327385956337787009494812545592130116333424565921554884805741476857323920270355270712487056510854266812612455575261676487519726259930778316822816996772995388961117327860546726446351372497745248225743064225404597425375590509673251112828717363289453109524308846277595074401308038314631955499048968870918856046350032882484632294454795804159317916528295932608722169687664455953857379104151570614253009298272279171828374445029248789374848625659963407718890406360101174725489444015963348002288776053905688773771998118863467205459386886355824673589625099873995584315571555994415446948957480514585329544608844730784900414244130033863460936447340704405444594871205116398618681225519837891341413310606828622112608293903122900256663671533598944991306014802904503629183682557474330035870883701387834534485894098902954332021719520808211569270072538582816528124577909519218821285958477872141227878277502024527583025120333541672607220012895040621000565480659680729874041722483838587175066179958063301304876792308955557396940051030183766066003004784730055433923935266656333399133305958719730584190221543014852481043387019104712059048795127204508333128378253301672893143227890765922902142249958060715325661055387544408366575829537954782355646812983464607074762298229864243193996908305612596108239580023528672707928597512586875142231673247202011095186883194612875819887698402057162040097046808802055460300762381026349504996225223473736429066286739994110915111479822911303487840077158568797921102795560751419961888741682198561052147805887452300294201732835998507197977689610305387479303882527921163156112258721172037115676556546987443800096454207799618129176816499033448720870066188809989825209557858221564563298578964011348850212427347487633305236201195834988902054867936446291224274183916414411879498706324050494176849751338791944429672415131897025506423929874283038648101795860234804616752255204440071870079535014617900891070992029287202927321581932905902495405635743665877680440561036653190367518311691517343323963204642065189203642307888606343138617219059097958669598647450513250834943621194776419812362218822020435024450162378580522166889060756436429191005931407155033012579253919487543252075432453543728388674240250470336991225077374474892521207727772004944626038209715136283163502065605458078131315627417441127164286375504364157736724549621488819422422499349869569842380933949286421389828819428003236136477162618466089273267890801573179624618548760785495978676454754570873433421781263256314401810659491990377630169393204839418154116364435664399471459929918231070689609125888734532058529062577292986560648784724835774306017701144478865233218093122792002977900115738818529499179376522796229873008392438202279379154299385299738678101602398545238238770878017419699971267319286466925544810695683171247418576563774961862500565704809018361466309116092137989291955182266383114259375437381644323879265765754066449665497465236971905288908732316479987967120712596588572933682285744164485427997511781223422148441847248448496167287806648807646348142812143191946245128506276469276887168673409373736615704585485553148732636265527026494136548640953399911421689450132092033866207330914580583598471140487096691118542788108473280453126991842711128294763886315215984883549905166697850863162252769720838372041459767038204018395028135257162382601480695113564183733489157159114000947591225715567308023803684742057792811085285473133546209530466985027400482094047161954991764976813430470810658882048043335205026223966792880353449580169081983019847322383353750267473357774319730339064460509718918723838566824521242084274760902550748743062797516973036312245336309431813032856015303905997242711725315634274768296981746338165914364895317806866897901654858181702844537135445981070064963048950949022079363764786018522587784592692809963786847415379234393235249779512891041466236492915743498760297379395744675046857331460961394928499920597780105356215068659440045608670883423021751216360287987941388929068168890405360212045978777907678369595076406632367935854368198349366119677220715196576810824983440117929764367385970147880368235091766602157798198114495081750610914158501300024184314245158310295153752379206880490832767042646616632216160688403909692733408787878726184026000486194697357375592048658289361658162642363743635772936445823297959941545537169644413678613109036653374967711839547772335730545719480331725059853106100219509425979669156566878942566211249890212024676814311019045792100388323111607964765195290026678804859765283334386451328469323254766298724983809701825884642510816900594205352662029652094237139699407331235595817362794873718864389433609264681599909372859962081390098965370105566195244694862224752889644061551078246299774492076286930255289689325252078493769521274155723512437572298224805339269845947396069183160211549847447470190674442632121017498428973505879256708880654478638967422860332940491894002143267957969302662758992230238616743991245828898310999436873430218374317846343609002260969221639491029510528063605752229398925287441889141849130433681182168855072633255837283911349791945997287690479215364412593373693415120557898967690274372552048526192369784010722861908595587441372670570355414875487222188667890030779485802939353592925581802981665288129344438386964733242948450448898593412688430849636263491328539689331341208796695020473504413826243249106263605757874790170022178200972272820371797816944301358202859406748103019719308770006874516983120841338561745457995142948908755150005960617349784344919435182107616118520458476289982082107200622244405254700148193031015112936831251110384758880526897454160640177317315987457731985228658848343795440748333725058069416889894004739177203621910711358791411438106319712918199472671592626035524087439648412471635244942112932768083688211718879437416746048401174482766614853363074620920626155282006918622879158548952498032116664700964064927935669064037339670903646548879347219452333439097158322305238873581417807970167686422143918124248638400331331268451010275074440621585792726087061562193490228049726408495986131392245293253801279602208640712056321868357502202886936299732933848892935935655535218745803775766097660420241863648308424225087998754184005839481872157000599358865184744573297034606312426874180457186987034968679160263325951968273933205515351033818955168077539478606742178461696346977579456288539094082031589263905842131815639652686926490607328678107059367432527248946684985178835696593499253260631569699684161799015504296104526823537487298501117452971842254996788714482004254234843957507158861638880151622464576250022137966220773446699806942731752889197943322853446232814630116630677231328180340759915083036668434198328006076314008253269803103614044821239138133435517859432547182737431310345033353917455586693289784851416752390815808574948093985019890874518856417616921588301621428713602992466960759842658120028191404914964444948804306065928958898011857801699195402572630467016215139997273350800206180906074226835124174050897953396497016156024289841356252486564913004497065155056309912619926692027995117634102981249805394295253848818122578285545184252678899656567680798240104358443283766871153220629979939607300158933509237708357591510671190307971674135666590909660736267818461062061443862520573744746473433914572250538379986934997666964348278528180194066701878443762662539452928783217073912410215085689116398592940272967072140543570493548281192157432257178260202885295284674889528930448261181660261291198284990092430544162596916170961133555246692862465432196515359415998864140682979670384954186678060586925711562506503583162184134752829805606793127270477187313969494318048236780679207882798144892404546225793820779856105356874249142226927481257467604766729850041999178678955741211418477998119905184989289796925381784709720379287476480036664966859926909777235196016445947727201854878755762242062574315639037865403374313448233170040204072039201593917509038547930833651576223588148165640747178878917911536234952137308306817477035359801787620510705429733151695668355211431688233967275137275651043771956994164165420047110918011336661299818708871028964277014637485721728165254621955765343975235551690582389910209099982514808333500867251459540937276023859090767373721379577089414018133758238301957709933419604786527676149197815763499913423438613629593507090551290997187622815138019911722306810685319339326648595775124380164296635213097478729972629016860630135728909053866575668050341676190819413307531645050043873118372573999918285082856182953374968968698417225272629808651935616667343421290993065723441225124053306794375301981917992315321665041793528164021271105407628980254730021137522497836506935678243016708189990378919709794036493128040593481713427311386474943649748786616823981163957550289757446914577425093630001199394423665859524420803563206369382270354850268561005981343177918577129788513719343741150414630568194231759854422586933210881599855701459475404495483508671314914226389239044975475493024490286399559748762571539947007433405427099902306145423142200593362526878833147738148861232535600023047131056191007974342535465794477288396389371560512818067582985077032835520577933602219426220309068376293314262419095620688780122246737933250702956789766387951432452210355533500926303044813332726749025730647939142922660804150895868821045357241268673983330622262885694948737303150322241626784795122328195471811570694055407424879445388927704121208599759399993226580761360772406385406926838678619048834179955645771259894331002038255569140614507839456886375684680783989256528269505777145765088255352778553026174405398914540203355158070499660327025336913206133953733168208154371794566275365098371196538698676516727513485648131726602139902832511280620960326081843021544640401528228027116891418510055389583036810449805735245836626563626115411949534951528038101684750245959634969658793408907820531460974210771027156509002160262414755051339507059911371672532516027254293085451642168074594829690719623310514852527144731693834796998572587603489807376773740975352313313890277334257958680456347091665331544533960759736509725288757403422628230123225258658319674790019658882676376993231891344920513168051258737641009678548914505233929673954824525559785170317971613382354246035774532882920788225576286907082686261658857018800118578621672699270388419913011831602774480589855176112257290905895557791938378712526022561509869439458045704739502019889720245475461747974823093465013392794804250621752161236188732616193238332949099139693379790639362340320669502675319587099005959860401145194785890753835667572307563625249131840329456067202733487267334427906890245270849255079483866582776857092887868621824647443223465425499979942705512951857256924479290662523642403836249930165331761937868032439403167364432524111202237542343215396458553543152456904540628231817746145231637764732274521065371503135058592593514944973129262278271397927446234057458931991475553247985838779905478441728165909893718734332002564220896835809572800492747179086230936568753864431687853797006291051481150328890525574907980945151725839382722226384821454431802694156463821305772804797147729760799339075432702862349831443120500997230665823931601845018911407924119953053572266253843562241288472759210477910655282318265822139171443326166386634004841619611421550369704976112823107431234850784068683492554542102633548562761736741453530364896229704804642208518650443360023652661748137556939290237921763918832161561572041464582496216262261418072594301092216573391690924378081332280604683808832757884942889980369713081156408817707816619903348077911171996126702296230538643863953354923267495533908063357767804782213497856321979571514741336293911523948603312861838956903174586398119372873639783541283976175337440942888538133984407826937172053411821110928731852933633617260192856952752383741017932400424714566609544725594636143821368876238988655201137595075653790117185171238870622930159538083848149370177538298814079068306976300520543658900825025215491402645237163731431092438933502034098517753214929811038415832230322560723988958715408127438063188015676783030073732676083432861345962766030754888956855279927721499102662486632092372175047981247459559788828472485009571028639056457759967270906167084736065939817068034716396792977874759532049746867566118947347293777190521773143782846804662057187847075893657977876118196908914394372937207874648448902150670621732781308994563401769944786862351746670152340448258514211370440003852822259299808813203418861548739327259352094502405267248638417729347346360094110832718755149666953999762488186879644123144400251128544566938118034702573368898114049567839031161278425493994400713369276871454484160756964894351968497127252076207188112220276541747122025338396549755010539570684597558401054257956188577341917273660155473065501179930026902304496990008528483994532204347611442799907722839461545975084568180830821863670845961003752016299725665289240396167149725516140923818706590217008705222216515014223356693247266203761973342965886275180749623890465638128251051149530014154924988710725549794378833388472427671203009510099168249939722361601603003639015796670202191291261612216695639543542282362250493630108614453256676469546986656985538150885702137567860240661521571055982101511334755456507635923515743683875192887023918174720866278975588816925464695501326775579187761916398887952203471352025476030281596288585792598488078579556084091330050593066162626537865157865293465790778330132428418079416969701250358376642488229432356417937887668764765434171825746971902019687774074585894094830594807082788976528443559490916096666718838490326726154402910977319283579046043187344888776544268295883637975337281200795636012218717168460688764516512569244910310576094644458989455543844511038573994845670243820020502920376115780653348071646938380552434138353173914921207536940009924616294495431855021491847908436327389430552799660981300911435841984388956579055411845300721555782367513871396422135763509835883691992586594811511833423080764489995856270004967303161713593084373388778797747977158210301535411113484564464443972003515010705492630982912689664225865841161763464352433264075581824485094365962797309216743633736649251294464733121675675398146258847352747789734552344060452525673967107288598471747339527450967627747173328010037582677185963490493333891692330301879902088061440183644470219446425291934901267349068294712738921410007355738544669251654884965961107363201735513106414210142926652933912295729363054844637356235026399859557310642644050383314201290225883094731931652722183126606550956031084571473943304618697771322860487395380332489816010975518586897326729910226383743772914365730201459693299896020064668738984408094719414188324196460968450743216416137520413538212773612867603724759343703749924390210992344873004516160312039792091719617671869873406078850681427150784629139642409190221305585417975999517711263662720473995600929771718240891921761767283318799779593391750151866285781964849771066816555174184457047208873658124336344637071519753915588689503593970694077692746650113086249388240979754671032103620668451202504576843473503855692272141674244963889133998118800660293156382715417898715050610637573925774488588032041679138554479332564781117626462521570054665424396314517920714977229501540565304075589008801996818191422343478478689445018169874230526372321541828947938469250969941690582792299462175753155483736591832682912007508849014273297343210115462435911670763553894838936594322951636953960356156196419712646888957971790800772917985057212659013929006139269138370601238475667375767862897609492563934857183415985489192360468938687628013839376228469311086717823128983731202220612273983839178020905969458533155003002382806223060258069084222090539389598256916647768785190828821914797934023406417999803390482230866247011972827505528820919504652543371744227129719702726850911832491175166526319125735947991906055576937951094479354556754548127707629708216161230832758616203981185297441008241140787463156455110959593230407277052752591057373009898054336933590509349749427710002268668619130749025516721871686153834869478552587366930036360113899751372548442480441478895758387823269498946625399827922587108463066967139354652892265935593105530312923654791489102293711209769876757185341874632124707317385978003090227345931269337994511448652234397071382700901404364195636405366446656513778853191312468144904029483394754253109384638312466027732038620435018207561048748466839534108846565764915278357228824033151180807576635647869455603549819404936606977164864720784051628952161208507161700808422799933980309676853268450818724072256576841658487808758481665144144317904944155271717652855835788111828069783144629329120618709376306698854607699226126760942721348758917525873812900052537029743533301321936842881472866581113959679160507895414811897479991345023668291572690676362607932814138078606118479712114582368060403763996183418657984620046672977477822991418143212034449148146002273475854665784427019523886443020200266870069385120760880220682549659034652980515198505972602719046655283437455671071258785256943089373006242665895732051125459518964104409742594305737382013176480687874724857417260121683793483257806288646522843667861275961485759072081448113284787417693140321987651235503994225720527008859251962340302355966287556467235751235318394005468269458602243088655917568262642875379238187820837022763927371492402404531871654985540460280212430788688185191139334154432418246052953205370360596162548171329028224236845178991957938741361392622374236169271025388509480905876496116084606121634116614436447589613983500958823714409011334504407867804608284865250484013107062846990588454021377537516920977160661237627631722851164990536899013561260681155463595002220538553535111429383569460278154644288638485984078450052307693403110748550895744866919423620019249211038981731365658184010877647716337222926972695661425261952625996157745008910507679092847483208558690827116879513904573902575897671023624083572603533641789981585687108293381051764259945531691043499188093842323292296686358036009604265465519842809253658188203718936883942622979215539178440796622306498465464851125078535662227963692834216784669648404649955785388751637101438160367132447413019071628741915567165263090189368485770360386574254635073324242083775953827659083996215944607672164644711815595169690313120132184974571063622998868404747474840298269782092065168049893638530718110683081536750909741836835240295686062577272399027905508004866291515960953832392640299183698034142239124818520668915082864455924448910041059740701835513693898040465777354756996673154594432599224797386325176525064772046182831458991388824686522281792798149152618849111953805652267877831319574843675038047290625391041200424810761292973360980166834776691927414809524977055647778280284954691618764567995734718740978222503459849348814409405279449958908038667746045308105287616954939105725380470316048630815595293514077737058451043765064912241666485290955960300815298927505254556005960273290186636558262027603258022219288187712589388822783216777939340650662519015228782526610656425385266427182920606309382302121580434706673907817070062779642871868620641093457119152411619727690287419036096625468589589700068002556721934471257500147904056439312679494419150714811028214569694682454120470765700195807898752487953362510430010736289671182646201608927432526128204840890225660803422434028097114732965785751976154646733942631848555911952628920554742320002754837151195103249964321478610258376007426360930566144172398255557230928052019223837554425417069140196536566414623985256263732607478342970642192772764512276642827494817937809415910864890748989881199497741774441301007479567215450110332120613307000050169308884086211669295235069343278727461522993410878795772926702665721303113884167850653054439234612579052772355702226977869251171635132878066805351243512613010382646697964173051291942368951364213693470457164549440406243135314539193734443756218128586066592049031054919487202884807596999392068725012251438441454042893794786725074750047193135740908235645716463585563436531077934519520926986862744811786751128917494311690169894019582463774496688141711790693431547018105213538895669727355549828764726597886442859648564266355813492798774666083760190388573849243112763639936491462188509887962158139016864533084010742333337523889139112293149360905982638407664493841883866577948332159930279847759954567259903100979353237616722711499997469844327338839029954813867965707016367145664737552836292800186566980190213659553362022070707956574092951676768792858458044945823820383550259932114470535981383889069801293174121306958582343416040321142117186693657477687797481768897449480954558135569612396454304752524515569736746647221447634336533204826427519591583797070439930558460585108962260664434258737800513693053524342634903083828560280403394140380153188556384203683157577276887047782773927867964481541010979675827303472545541243688027458833882450905904700134199061286039761017394017199222906748179766076471466173291025073920499233075600038154795108719529282571725406819299663959143506265760145993789402512684371672480828857929911659498118475659427402770510008252775715349955069642182414120437658289023270591129257894935363990688506550052740573176162682244054223910743206814938544801523923965696193373221518949280897280634159044291854929317105188126154978534781535821227826815127147487681805901140794328941841630106393789724770803265866166302648312773519738413953769737542903517428943786625024834436598611759562380459034754031957720648670865844982710946340916204881250764106915987132578305874488202992950411484763939601443826455041020112413677331781897069935440177777849066127989253001771951243644037937563967230727267677481343302174326210097996156489042045512741988983880323510503220702745374073711751853233909783207217975529250669901318816807394087362964993488427409043865778083382789723921994892359792485979276254109616952091247044040884682288251007351218305713829360288049159013428985382066328044108325154252435866070029553999752280393328219314136438635064687981675311190529848602518206365301573183811717536540075557575259202622824502433418499325229877051673308199908582288915784953508864227145541772678610878302301900340982882223978448399367227184799841946626916950819638161463573482048377104812917957758336995267959857132112059251856102971360303247744772415739399787021709142511265936010636425657161527431708900963815899128325503737708758994986537994681728290297443769074349286389604795458619370441258319630784763675085727776061898405816423544163045149440945285620251016390210591565196487848628551133183703979832736753491984619131508410583928575688930915877440219764235308062862367776462865055214969934149086688258527079054450235290496167332325101810112910301283313245470753716027641982257595658006287341815490485385007707873446632927307756833820856961342763207011164648152002669655701722611019208014989771924014695451792954783209276170371205718238638958060336028335711401538764906614975453174919800927320534683019650878720539619049939238019453224799127772551330690091918956644436326416325556113449213103833047348890839192802841527118327823545178306982022819821203936509613978006527937035789874115441504796917057200578867572265018043384920555624082851393296852904234520800407925691043823326480198436091881104908960682493192734986296503478814652693658758164697605177435178583018007302505339283252149305301877805014420621978049860099006462601985095603416686262272564126897452438681451786486238301786144719813868445243812830967045477724424304320154069181661907042038703031964882664184734295182931064313306817512131616308217856615010576255210840879401875693217150894032379678375771791215697426893253468225239582450332730431903137380461160315630499178780937139072563338008887581541841361687880874059767867100254556872126076460496593604488979123001171196145787446006024115112801446019745147744197630268006433017577301279506686611329057038883171226146884125433010318738945148974969235272317483224179405863876475430597287976276337093234687875895540459605687314697773450258507080187288549432720277630909025543338361903125974878069637813472487514423539046731765284027744100395834535110366048480814023677332765706651103237062658462869341407068589308874045100677491882675347032485533432576402821783163158932415832777374151070417760491279610824280858215722951540718847766730756284723256251585285313215542053762183284131802619265269594174654801057080966819462829728374002720043592808873152245568053680524166891857465621917877689152804313514805831963325767649414973034331400357082424906806149166775137280356567030939494348871703061660322814843519369373148464926227572856826372570855108826732085788372644349828971727220210826315433971056773167865009848686069166662309552482752088067735229869027022034816821099704290963017059406003874940582565173290292813980482688621867612508608809416586204706203557924714394147460257803819409737043275938388399769753620233556942382359978594072844578561330727465310780979759975014769997837868033106777141211666786070394542515517868301003994598387318219530693539110967834205541078401308820395995603324723475041708212374488648314298096596118169231079350363550168638968702352726319517163665356632423906586616348150240659191084849005883722161611690336328030362934256981006429353320268827186154702131936502014674535270358114865435117368936587955229049796387832533185560636019694736507299773813946571855256898917865316062512296874317190278894569093916980331347271865324682780502387392953966960512482611171793955753695103507560010024968647101616177800625079638965693386544445305115007722955114915616877669622221943330237507353982649677573631323426678113242608462892162750608535221727766505962194941016328302386925183081525032020082469662153387413128971181340845293455772699710967086180902130918879419832313034851508052367880901353747817303128640219263284554117812480093874229856015366527935256657117742893353422926613778156670422312637312870205735621864328762161619312195970394054116783657553119273715938194213501234107624870426108906934318689057121354547631768023236456344426526343274993750034620636738756805928482688070255451337375175874385759526100964696037228575280944251418060297735485386232371275388740749728581118179149238625496117687414494941348067809143121059769064492543454333010143120069327257546965970347252117229448422331104041369356249234988234066807026627309497117360161563132512298759297431564619329736763505905350196409203919510188270019746383501303878393151170497715207758691214059796217195560711552421492057597242666694975777895530140087652068026855312288958153150539957655710582090996513296430297825091120973121845466597615021535289979045976928557850451726742090650972799912382411607929915515569438078664780851281936385884203657304278666648796255292617473778635277405378428671451785580521626536263436171371209492703303353184714133000668475938489219629172581668252429888321007547588354902160321365805669241073964626686058283907721375990465182187766101558815368799160721923056711790023621656310127141505936744126600534710096098572048163734055623308223944347599037947171813533348714039464458731393397811954699096497003022638152193342776210429376474991894016303377956350569488852414994162991964118102051794581470280737226110123977490663917652052585642958387959280255025614895640432859174545928718896544962650637139117343756875679503312603891194467588903168770407112732101959801030706461973082951342226313009334792726741923818167159309408043778162317051355250539953623671467623240141813977938817587148729147319102187678006070451379106574261776432923013151679830538998770543897470594782473394603049724221755181183177961998621567432861226555162963622008678112715437611818218732542971739067075868251566565536180213029692316320364778290283943913323432048922572006297691307589874817984460269875330505478897773960271081890266171590171749395312552543270803981102174424827205638963078605682231943433663509570918745481326125590405943040006957855634287348400046603032393436514409154804551233146839445434884777152419774214418676446911379424771968995338023437943232914985734118663977242357866625431935150274877136332648360203129322146248766140473061207619151999458646168642185733993131158025630591508844914798294896615380067770155502832055085903218537166837654281938885257164889425445924718164034630717941938151053295805013759536907904059455935078661455870491378795035609609913185639902644603966403160594546473065804175314128517614488327027909479951387359430353654093787908532492208419975521010250650440181179517088519000351172375868969940917021470609782267273351661873898722627317780058702829026966739146688705947605722147796234268213537109206110850358135063688974520771543859536048237790302169468237207603210441695756582526578717041717149748122019747578109764970174569417307511582630003392203212696038530296372777728667200600317968299585814375731403578478740005202833082443470981648574196045286191528296479481834463318263142482845455340512901664281306950136361579917761857920993268742042622340135618949568891281623156200792617043667892417360778338796455403264882287058830260736473358302021674420839001354926596218843617424379390587264584726133158629506109392402965439785454159965674423965476623710940007017094826597185556928359438572215119777328230151049536233157395059289347975460296663390482360009172469160005903256789978089418608124188889948615866442454080320733601568509521807438441520225665405629544454280680469759165334332267649413876612316662305049575240920826633793569930992975439925878686024198716249265565504860187186176683738008209138253943250050947540361785912711315924397155370903753731608970994240692692748878448469794868545305198203820227107022584322289274937693580444679530129542494361638424054223959878192872119859532721028297622439444938252625723287553027244029820466026143976005886650239424763937046694476657244543589383697530058809454620217185162727935797853384914490559275377774279710867901279214744281465323512213827835097236189458156645982537581457369599438617604546220682414695565147523792985039558508769332066203362835438987371566026734799346475129728843358169665795948988178339555734420816619592544681211259755318597886519458669095913789378897367609316951986018667535214761880662415388213270587552011788643814944059864581739491191813682728935690998356809879417779633226462008948289690892088499036279500538060259577874375532206109942317303749720211726743370254187566305404178352642360523053317629278052239324416603386810856013966419771951604145052203974941743130027523228725420474737871380596437391039671102785924719064591812232817523022668519396201889071118101098022327043002415443519496098169410114784028349550659697993192335323295010661127177971727672775594033769968705254633140959735234522913102917810364740645002767109498212897491852682827795295283353691098071209239183938123845976925086147182686166624434584288389810020684063603994869214740303587864975393052280952721984559301283477992394211026911059220741355503810592743052423899147937238732400088338132748244689753715525912765166128964601807097174753615020427325936730876287755474755014073008572340222739774318648261824135913174788404456649317588812891955073526882525420696351939306697838690954175496256382256889792493670170134484480490635619459197675955118706619293812820240115540863568775067920991253424094392654072759389074928194891243207399951889209692866339613308900736057581800264969519355977158553075860051431772977574978924992474970103673057692061461253625825343090950109872684904341158490558636835544487258745890095090540441858012559239275606948578277694053536577613723391726910612063585112682678369625913087970356727042521035387428087013817370170473015113751038442087110953271470300819761377060412606933737891779151751730601623385052458194202311794079837351199714897425075669694496788875340305178448670223146700089634819941401884446573685108492067741080814124651166827580831027014578380472084223622312921563842332558283906164233973831402563610532077919167354627734035394219450228723522487186462044752913833043790164721676479369325456215802295639385767518896371029624524183579798227186197466427758138716866852387212778612732150319617199216349601196481389019569234961117157781795228373239913286433238002379682771790899633778110878144444873260318031412474711489524858626370504829595861531072583297747296965940794902042261999125853510506218938418556952067441157848522541154572275460772666984361175816958020088727339324183148719440150413622927116050392172489487538380035319384073326266469090309985421620040431366148815260608392031255642795393946219008124942933631018353389265311703479509741395361582532577856952893613171843065753426766283305906965579325645358324428425632486356527813547679918111900671798631440717470587463915000940875277891024198508196447987798749928102571960213556651953468910757654311465391903026193851767161630131573594057874041038197504024341326195761415473048441091438399998104053972475081091621108184883964907831705278723768117857296305665953269187486241015812937848376862999920611585802691577495070371222123079220574575961147907432983513762712798585347777331999688055117891701265763451391435396428572089251551025422905786021155885052281239309832852751350359470132517377608496330683308721958097226719642705407427110356751852378946549056127291780722577956655273146719327287571748280121624585719489901010402759102978489730530105262800670424293803718303301166082441267478322312093641155183035533117578503263696932437424392702750686660831210383479033714580144517756676718148475051388440966871245232512533834551684079448701940839341593287206122184557936287355612811850328392034308008385138954791338350970267187086443348474935219438330142498403393244516237471013276811480263247158288517702267611491670695044583910135683686047625767507247502875847464840773655460987962843586270480400695351874190429616820341665417336451512670054789776441201612955652486803330039382392028860895247612892331661169421412190886174818354687270554168625704046543706290640730561018502034880585095646792397443186959348190014082309138612444032273462173065359978509638661142028697456193249938705744577953607807289875989167386154878832746376519571091489048436650752570653522787257306854842783379608127173099393805279124255402718448722056754538116111087686820275018362816480655266704015176221871800788426633765234499251860234605272598280848133171659765298651022381069634033381819884514724035451663462142949289623251028046205270483645195935186509251633684675770868964531218556674211669748286455639226882173319768561385916777257485078217249750679759785487858263505088175516576780155144563946691773175957788488915829256886932984024650998040000665304703008798120725223686892698533825286880441725901498124041471325255046792978677892261345834311603981719910585117868453197267030923205393722193214487083665625070541171701017702303037714767802366893803622925783875972935773004560870637206159837298753553516380419893717525209607263817361595196054580909816573559678576219669886264051044540146897974601748962784702097976618730852878940539313237269282912206004407928515982927787368239972101126563889425975746276713575564276931938182408680866963530804604048576378764563020925207343969083948828954840976917732224003265652207260321978856965491570859855231765910851873261369001954642671998258555219946695561727429781658286654958815713865650793519081205415378242978309583633657862324523614415534033844964874559548476047633996535673354120433766362060604760730741121215760318364259936718770441801498193326954277346594713994287436439807872902141389997996686305908012802910699980578880890813598756035596516569443236886905764729174852022014226938863867673912342133050096005052286153273265956148646210906162692401936163049158915253735888131570633678157690405166126337685770965419471865917113036187529503560360743924895635370571267551012445950278162394502670938769609607349493003780067226677664908594490164760546042541999527569925664824899756125803963489513245010525114640591650440332144532559405945888149584743769873696870810842447396098500980925146024726673286102912762869507523659108567736430103760018733078384087235429928733303937014944565655946215956456164319804175330361306384158480525947919474622074479513077195453904402768659419662096304879100845742865000797902539061445862971937017519090892035091629076944090329609536230297594143977322348135793263143916648674884267369981894251564277414427030259816770514437435308840203659864112798024837988319892198834018920193462099632830800673026265051034570508221494719104080444309129590433340733119540652762448550766475672480411567618788067455407390745394333745891950294154496140521281500848111900902458450166407617405002559418467049858650524671076577671666898087662747513832019364500610578985600587775234563438967617504301819033107721069110635141423788026929475386586893572744831656996604540536888861786883785169706856421928767679075951360903919155707949969843620889426566257154550650863564523977524279803934164243657708593400234549633136375471192019779994353979418776989691681661961467014654735505499580367701147543043148110793912397053478612759230679419374405190318750254757494011622583051337682867632685969082534126318599295585259775883474184080560541663766611294753049667659138885760720817549628938774177422320806763230239284717142834582474694929505754486919352965726965479740557477086383253942201591503428187855395269665298564150831171666889635293490603423466977253881923661219094755609635299710518219417124466250872523691969189208966344182667090657183530536726907427891704608377642814965909118268145806118080542178869711802715827100009881866965409419749565020971193904785840450619689028760450194971021527449044345915904494742109014115215339441646216809436263929740742902873924031175210848758732562770312501091140648935825823259257201927895405002338430079346904831856238328365069812268678400595683876985834667528872248394523832382886921829504500333031425977885966366806923517832259707908481812912071222327460029574548212712048592233725316498493028688468712564840963735929547462970975967683104515621885685054673850429504799879680850804851714095892189856562128392533220885065435316511923050878056188143281828213312290736145331414639726411072055514321028851144146864259240106917898767183562017523203785039168659329019679972298508305318868025231208658162505036469453807349559327607693951100737029782761952027758191241324448099113043613581223648273528879701394807838212221848785055605983637685230206115473360806617829881391743679167209476798787098774869867105481891125219433223530610562816619730235447733059430138359526231233205480995897531526910597669742637598125494100207531143950723861265660261678586018472535338121719854183856339051034414169555548643138188955005705437220295774408099131652278001803399963441507490551348708438190968568570576488945821231590869002025172704165522125608726793113961743815025894794918080476294707234834688790116107329006454869664940713518582574986225898512412716311344922568752839737248068044857658271096235301543679246562013041764065148009763671768571003451085140827138434822481919149046028979328923950065032245186657596514319281486181914221488343306374533305089226518957726918930379851502003907763480413786789850364582124097203172874641203318448576268263536569981883989321306359252442157272106381920817757054648559863757291278212253866398376267192794960373052818816294927165477187240084260431976552703381415884204018246028296981999550608226542306009938831519882665719872986924210480867533864933459165118517628093491111697916368124477555978309709959655563479946937718304108508369577239721383184231554561655319037781283246336219916059825979626224818755111593902063586776723119959952578116249921971876292472885043169449563538496429233244899115256677819859240166463172003788995334099432659682163341623498922444088662300613762048342496113715447996487506189156394924971309173369026380542109657562198503003763341689429186671869189427004253348822644687132737084736277133074070807295475917447105249693316180346775086038681665466010777411688814917545763950076466397656425375368949310617936947274868578624797862488916845138312700574611785446521873986585702617063319181219974420082119250034616360924674490212318617711868650150951280258908217665152327666097913571438483251523690515181686026996560494255411231718953935182572045584452515565384189581661935442924762097482985217134487874050581222504731453844704531658795735409652592293848747469044347249062944088136168635784148875407857995365356211847502777436829269357411231994276972529769985509333834623612132557219075490610365260636046885296454819561357446196681758824315811700368266507119215670962613460508105299192843132732229578689113083090793919044712457727244434930388445106902384912155417697443416394863261852740015710946665664973141628907047897470323216130307744728503430744739623437555526862721172100682776598472448088725073657263310402569590768905767740972880775774736581534162022391179871111366774176485553112369273038457791566492530370719962013242628753037499887452911480969515871602717376631383885589640616539058126751621914750682994242080226164525980923583110713791957607390614236252125997437974820722319961693579183615293710939371530662642016764431104773115082473208297007427001191884679715007511067963940808757925895823411671132919702788657320506442883689150010675803532093385280386212641738280490701237316217737330392434204988262813549161604433807564378177148282498074944549133307250804018806004718655436641642327863460872214804399556875597889025483135816826447883820535105232279828993186415928572087995628925680885808198629769171402631556747048389811593464244627525367264392812138016067036954630907560781310060593217647926635854610319915163734159079462233973137417652637957675205209468092873535384073965649728890954588573117522692850213847223336714917921604626227175396922013255618060029132654622296221638133684019216132326201620008318809390889877184819305524057120919560827207631609335438787707968080818125112240797775865603925782084997995824466696985684655126025713017108367966637345141101050736840199360606537633693996549946347743377065257031928089576606075868372891387664688583166038578198447573595001048956085610743941086372616066413772942912665542164716341734736978590493754159922731368252510088047128982575517278436587258349538059550907546829121816196686885867529686126931753316103026862183540651305629692903345722203147407455295136650436713779579409160351338024896253011333554294723912665107827270069792028864714924848930954593760205456543979467364717751060171170487920299556461736426018121206370754207791559670734426770129912517312383221859618094625016320597999322438044074010482013711978168794797926804237712321847886399498648304525762248349863597713683944167919610432133260119645319765120970119448290684824859548548450612893531305509583722255917957781023129891859267998701220201940526950762223101654476693661547543983359613044289865159082740449461731127448502875811682423319682942543218151526223696943986740226857979052700290645646339550642081356988286554887020941504395115159171789722542725289408341188660785761021234889556357599138146102325317272855550978785008840710196646786045904254104296723347145368642782252385158908905360695610793108868158135335630027402257881803224346065862275801222839579983373474993388946229215468031886682748965570609551050355130559244036314863109520128781293462191329525375996499003175792254321754981988273211943612177568328604938739144187236391370955571246831991422736805500585470169090820114784309117595315035326325773221055492442814151396962009244054686462796511782375769600307585926723596719590668322163456617539687047135106261586091725992615951679577968653910682347243733662325597942515622327517720813300532211339177220703962879656714502147598996778949608619796410140998814956719261325531746933010373021606374544770077402313617683007162858079950478046875754862831167835114937435652126412962165008108256608426155795408825918978836668352291788628624361340310793963349574181595649320969244258656293921154107543651061261481369237195727651844625859973847123324277465451104077366278471258460947496244917349663106527781249156763341657946631997469259240882016251372612862034764680795259669550849736166455897769209129330297233764440780281291004566374038810407317756545174875841552694761419977015960529067506958396146583029227171887213352498943371217754350991149930765499117552228160252584149367886579165993173950295778408966670960459684732595561941579028005271717137557843377359511818094710099933791471063774783736378915751988518877983455299876989047424436705683020016122684976127555582937892487457831220912853842050534737034835989914931424907326754531878088204662761523062918402819767854258655409248776991952087975379349893684923366972670076080897987244873192367405854713213221186393718194030697483787867102103117640544922675401452934246075581704321191198328379780829326915913170396909988648404095190401121391097450185387600585725879556138393139933538570933666476679108690868583140499315684626260593120529909927162067218737494740980679876720627628548459377232965558078968226728764922719196559231940689875199395999128481798418363109138275267164845621359785525283254016943910612596344739897048150194936906763918988662011629517624056411716961993439545839877296688510268019771095480822753158478317338317686545848800413858295244268023046713915102428051282590020532699393789212875988404819206893750094917105229286420087156326602101284395888306481651958796765316896307201434370791124694024127898682633908396326506477419822210041724741596027762947181252385816989126784740563371444112215548898155566098586110184770494097149043480746629519350782702471052694566048076472240421622952281470617592585110860096247828310628031920338543196160060585351616794188705094884470720311066468040301395678427844692100958233972538620828138273358582935477872692880846282226544988685734952634505285298866655439256181706165693220096354275296531426536627158824490998040450585319986900871713086638363374400959115429834265462230145112075531802754295068153905352442966852170266393328581965581847567384756216135059603052257695679310674674715756150793792591201680152494418929285401123167121574266855048834233077322948142377201079023029345909582766117197116512647671663312035351441016065443629498497396845032714389301231982864829130315560915542820751799351202951449489395671426226403583171728226649611986046344520137757581307679100888651156727243104653206127886990760500258217881927984327043700237694958921385526268224509778935588372117916445566289239964153155944052368787357072828169615373403962827515235737402665915313381495517290612556624608416099277865081594870161575392889281384890193560001136676969344195003288994593095983559564173388738120271257311811734125524534309996074131299627783790590285446734979331591107028556835857060619407357302818374396691127649001510377152635163592431057567993267865887852067483958523406932845611412671641926666600413697160562017958810054954457086160692016504699026280282385682615816936540365237508633509624760994893151779226869470048318396570279563647489120815995311739436685432141864832952102243891639856676066360290536733771666698117244976418623889371723043046763388515282251144905116308794120422869130867149418357095627298581645702005054101064034198822278168172897982432826027938759502492052059005430919203266121970100237333236068111688599548395725842995818472606386714939441730834812876103211545207482190568367233075344904697406968849848357783303657144642215232542527095469799541308709156549762022133030470587917746646597566003772760831705206094498271041513722066705671098217569461619572832718781956400196685854736688756658217360027228610196675831095279664603434193550643922665124631730864788865821137364860290349031778143473702913832061671057546147025972549963464297871122379884391607222328906262721644345723944936308365329909565783949283890882579906988097210544726690416089604366917951509044774324193610160778563973227904702512818460500792110461082834895685099520426283721965915881841864775117912442322538749103022236428807322948845346849061414068628305983016786548299606767298766891067860444471066779547143922074254301515926315772339263698721778132283909392462717528296353698951404958064433962059362752793049649028427363888503297342520001913991544769156261649985971026927840627446202387177470377658360007483575339801656245221010675315502061847992019941494746632978613848982896619819040871498824189208496177148488581922193781492781275309656510980296719376201683191071189199001821600171535072666382421313974175860907457714282179792505685631114272625314930480160272055133050357124350833876052423523554127367487835029324502781763791822047625959662834004153795035573427031015286909742015511237492877379133057206581990431422790077885850741569176576896801548175122486483669430879224248419608942061558616077286794921066285267481213386397553445624178273379575435863307866946159641649770418753368607583809054060443241676158623677101717205871363556579390347680820156143063369227694847436768932795397406894264049127102074212338682163261115483687132196220207125877792933648519973814390109899485448933072790518796706784745862788905633262928116476571471673122736676669266691210344618488038955979597681935196298493944518433148782676537329355230030483206126770339143785627425090455687970204923088134933327087901707759197620483349913065662236985796601388887403764751238114600611532214424374189651623253748907840394987286158457756799210843904833601086700923721898689352121662590175333055541746401573247414247198528580746301490099392606112743302719522650193564566544189988375116735466900114281409699482874284640568221138329666244815883497299680658435803442713861548983966938807951184646266018490160644608642269982440422415224685431963963248271550963159580389197619285294149905039447222939961532742272970184518452561975339536521074788481243813012608481759935219497104699028881660328907921863207743527432730038074405272419524832012676963721706684259783180713747917566417724422559347130311576028199289560812927139556150081503637815731383740738898888209858012491326908427251698715723127318207862072717675490792125171450916460654820689702877852279872676403174135413858316155990354121117933646497071469816836039980144828208447957430901177280495002675513212167697490203256769319917515707662556462439678836079192407207654058515173184646624115172637396240999784015164201897008541778268921919658010973957129032741431224546006911708588750113067267108372663733738427444081763622496721003189600928240433867825546313923799490938346621899235130585927496583695095089050472872191224851586163328697248515417039234564968672944603119879902146280409836598585593977451601746441592290351586981739356359580615555129426690532648546091711176756372918759670790722597080787578237631428863004292454619508162072950013465288265679213458156478868706829563218658543100300887010727075908494402532347827183016813726944867291776192794685198293653234112729015300907436493359645221871606738378558176563759106250502875576965051980987764168257138693101855232989155715245058413585411327782317150968801086068041069342191782124007186700999776474473160902614247599904236944903869189294788649446876192651121511504956829286945988586658678370841584642255246818154478516911966807969446652790438403898839853948884222638047300975720204477647595185953244352769150085830601057361193175641681402970873004250482859224225947574711188362953277740348148697746571785854698154535307937958730384404840474181822376769200981201206956596204493389758033479510513036789464007988108316716598363063343845261384279234508623529440663579624109574902719541886283204492172669763714873580620848217045041217543749721587808843630429095593556386100242299794580050203792142669969144707749288024225488730932419666279742860347247388746330238473483101115007566386812344249509374046700647498394842412347995592005705423859391484357946293658188368553936122871341687114727933222473766022480299290483068848302441667945385447044074390879506639430704512540279234703199183050743241945161964423348048062033488991146540693085334178956649386849466080906001763371468962899181842907998278993075250437241268039826246334680413665098523542225678039305000254486336655910469176057642022917814104963225291132215811302889004644566625816915519404241187623745009898416879769654942843620875573944705692392205895688578251028172848738569204116798882399261893804967992876159444760433576201396407424357315535788379820947602247964603240723628233311603149975917248947605543247728956025188067150182304714063875677856483653679576500245426258865351123754309603860832169559740347461702786823121908537785193464245229049109648291704061881389543223559986716351995221146563439260902002905954237608009084382524924365313230290905120444130050573223254262495466129352883249850570600406472408708110272824144199319503823165062107039412338841096856590686243886448146477648855595382863981461802138330372374146097416915480244865468851845164850629279051669808274465535555963564819594474778398180546043452516180732330963139011966111975114655524921084737401438047190092649004046534603366174311459766716792883604685097366015686871327690509729863723026417709671038158602105370289070208337423797439853823036855150260206358358789764771116261608838436273261544640253641607629301304725592316816968410435777976520558473894836043959000672766932728895982662843539424459363327298426507664303912883325146807770655347275650963163292657142364546471005832450863209696155877927340092021436818987217355176509550776419447239899364534385360616353233042871509719941318936977278291842237195314953933035705033866642962034856989442150649752293198204995633131364787719752450747950895329511513769788960429541104564817176511513835207056017039122776155811132242854980456453470169848301328283810055157084265545210040649783827434141815317488243172098679999068786335778217244130606163957308020483506854938990276397777844558342778161631733505561481008273609663313818664899253185092324797333535723529000253856568243007701557595426357425644600349528701527597761193448091010506792204316601057105502820428600389591112384920094579978881151682863812454797450237129890058407133159187990533998916625113348378512123860372917443716466470475411199576329440967459275231785432236737863728873010181080950781133609906072684721548653971486689980773459343124885386983730552365975459290231031977980247214726474651037765411648535726091730449674006606702924909578542131953810503382334973098278204131191316604019128397458981012346165031177047086324933127903122671039089848835343373605980127958334740992649237514316204918046315160301745088741572447108864680101434875043337545263393560614858052162958464540357100174967840582801508219381425811708695298721210965441106767572250455655969666158402743809820109396598487016993305095475557373308594051730365408642324727626381726576149599883776386060943241388355846218641204566743258189177380059446837033281521412328136042674571961378561488097071908869793290503596284205012261541948585591906033807021065136578193224882028646835175240520887498432770307820757707122449807423790469569223110536496445540514647483862127827570571970008486133451288301831436927726432015334138644325791453260280513662911441844336993035326210198485382303402826353564515820319430427196352535329716120375951662917064473283693568067045953057302617527367221184848960524308940353370428550308811214309616790156530809963900808903387853045499934384137240990637363179457361802753294767905372460896424789340971445860573577926091676847127355451867022678239982311630791227417778144614955580434987962585720250423224276205586720967071478219368354450475939894159963021656018376099720338490430985021116801119898444556192847728793181664632806068843561176087221007007692250933467021578544359862801996270922667911287514106090589613436479249483385304472968724162990890699587480468344220868898706408594087465191738942738643329374888636243137160825879189921717136628358173787733660566256823921491189356007291545851390008466787384900608699096964891729748458081906161590646459973156721273886135920046908407008595058082900345187119275170253416524108927555090582357931929516204368583197008835978840510735231185639699630341076736416037237038496330211982451152290438122675588818380163703099783096227469771065216757466211406508438449031064775423872307832267429187790488201367598170850102490746021919423615378256920682669127531265043397155400648803087031263627118440953724507523105122834875382624034668972134956750067490435606118424078521866656438748181196080337289664605557848284851934909519919194446581305848239569330869602272445147585095569931338045944551056158708987542720401676254161369767477821409913530693108341613277086688988487019342861456264700245799371100201044007166958972174692085187336111107480104607469880323256418042458331247270952487332489204741507402591070032336671924156139883596386084829477059855291403770996651116681676707862278892733979763433407505422380922777426174212229161347118491649238478014741709071645774213349359636653837221815865024425225154543443331492160853386613965767603617310458969002392855729219875427459033756872989874552485475716118632298122965294401798886163143412763025981166134602283470791976151870393494013349631346054116799868880651029551358107834056104301863012606946489150711260240941011445712904157318810587433321012192989752243454503375076701599241419359099771863682338671465853972566773475972604711926944567643265737882492593512333363522778195651130213186199232256073418369746277663496784942819050428353342890936873282620765009166484416543507934985374566935794009647167723815084254629091691464523597569390988073834708942098577096327523923963931745474680411301824102169083410853620382685245616192154823518671732982487707074101092257909946177912368056570165561296192780506154486120051501761578792675024343827260591997161532829614299251752285760048369694760872033877974087743549691475945571494961184111138383548297748755653945842527120672649775036091901653619013963065472616231481038282750183507398781593603496120879871978330645815754875884166594514339223706636965088730016282521056210143570344040623759107564187890928801379529097435056273134653144191029153318755493993192518720617134145128128704650608597814911671528070557865347533063410304272108163188739486148286306286186407055763981265057948281395380542322058946735917511898548676708949276923090929976530117425356657250343033585579069779590858429776793691834916222889222078138747011148460300513789130743993719056924124451452323325732881426591488254964224559259453302200880677633082886344306934403715843676024702774472745372746662434187211668719048255816440950306795139917448077741817130060758363121851112885626556754607868049465268073989147179002359009403973127826548573894978561998395884226659626221793246326267738370947899312307908545826542636037972023999359764848292476203262445020776641144909361624366609296218201524859103723690919119285600990654093363556849047267991346596283377089713700545084759734094644529151839700896697518672237621993463115939016363418750356649258943374882717644172523390488581013742756879245860783118900882638127518251037344446602256392846604659434514552834030237594997012539280450921146174333869273055741879135738521151530338299522869814473226563541818966506665284202194744873163347114279691378325643668459895057828379548295029034788231192462251655842106061440743203643630179883481837934819884694370030989746891085688014326881164597818067757265820201707447184029548946059283840122214489747975950137752931535061152050493526529162560246593329197625033879595679517126860730350434593620832815906214843924995425292859206553990034499785530518884544760063811143833409173009156303423583589221865586731026935896074277404755155299577198569750605222004347217893121610142996559274194998038067311027124512510211009387306068814713962855239426096628849655369786518348732053888813602820944477373640529810390018718674292697555318998389659451668767820974431752803312736841446004228133472762652548925144124467637584621677772164360099146356732421949292202834924529286817117708652813083520377247768162708970199226571683075149884184948868518875459964197370648720934700337552374494888474365116357553126767295524944736282909725931558722088848294287219632262476014735217044209017755111384122217794859809127465378490841892260725696731684438160547906172117689922514513523849328907057188470915014636771835548872720352821137031079514208768405670358146765646594124527339809639586837570468728021550685275737245617470254339578559515281204876883229805523558485903333180434678993458770001221841096265993768738072732769564234062902145353064624894022190476566027161109082298614177878848048345557268110346955285788407754094107737307734739263842833226455373766087599379288283013493499831183594940659216779673142742589870823948255749477315059684109885912208453864950537349166398932185050325847265046536695208261913197870214260269972573042977929242558363963207036998556063365346742943050489760132311374031067904267342072483729184656852071919379825659298555183557314907291995342886211386752195869027649229323997305806652947246519731480637279718310056562950605118699476988825305410445242787829360074055285179184223470020067820305429677410338560157925868376912700576413366465105643806136060241802802871239032944415856741451886557074253376732383680863582545607115837426468981168466453189891551513252878615186807884009604268518853957912303386044500374953645958436773982005106820429890028447279178120162004637558894308899403744496018765296207470011326297663330572636117336627105945000280659386797520442973449359942922484433006806741662720916917970330668002309385499987923210098302711135755750479328136643964218312793491891559030202393526142451640411464826232704813431602394321497687948326225248536673502268121492849642180555580102563981842808027689742067000801827441732028611023903067184647919501855933332827682422885289106254342437681408616107533217140517627563011410311496674523844540843824457861903433900543358875420346336594791390891197114775767032531123328902366094061398471986702648159782387226407011841332493144332011074124357918768989756647678194350683846405801904890147049553666077939200495082745661496688339465252673285083459033194629891565840295940211993582498447500026359133675500954707380862067842452308485638653664252165119994527592786233298347350505610555757277225694267145966133454958104367773587063351258703526127393408726994559232301145068544975267159042081890719846252723819725959229034339172078765039573704205705671726776873673419379095988413123788562129370510228390110254440976465130109444527818483944786461005824721566977393912068366496571584706079716736341164084164180066328520792958429806210707536170237556298345620564293601483437003272589079880653277676645496573211645389410163391017176414917793127353985194379110464147897260548454676583459835636074804384888283837719792078891514083651357718455138169978727225266996736859660006176337754133066218906232602036045334735865710235495531391623857451267957558724131875896422835868023321960701129067161574401772515940463217021440910661710778652614243429481377591693907404910003632661448166238545538398361607459360672228795597204570253357218651262255504230928845003635582065723820374965318735463189144775044365327125394611327136754586939121663280390477561706992152899622744007316153358044392445964799289210298099425018934495790322595512718057390974092440643520115554530125619660587199009037609263512813148845303332387964662013270030282916334289769443430781457411459970250754375284666881958951033935449742828446561962038988616648358183199985949537594964164760749537098493694632173656704472437541467679028079620033599370490280453182677114469034412756300815697611538883325765352840491195339883582815286572110686194030802494774305376888944896661861772753527625976954939743946773423694698134674953599921042769444016193593832640167564659031272100230044397054658528445125986666747790557337119723367100384249081210412193549203770314373664408728921618051158612447362939271976710650719495259948593148719004394665360802455934358309650401191160664535705336946329911300196913289597772658401487636370965779614338798914718151586232757878155152904682248034246538973828940702457652132255150385243974059583256072308638222494689318880118321429947594175308705919448661471591269055009366937807955748818336735963398154641465942405704860957834544260485355259330038779740514334328391007986686759534290444440742215909854715635371940290513514738168063314022848935518051981839610976020935669483848266515162696433539411403060489343420968209217758241449083177815821230493567247279754336980668223397975720339998672949741763296992367448963075654033678033252721783522313761831289427513228975928989459185120194530193525565605842724152335676352883466799508024825541731231179602670164988128555176873008247934717944870143274186841183848788588260995463479851184415077543170921492901458534727902183301432518868634449119636467786037452029117786479514114782345682098493671463303001297832980459974152912122239134270309812079318287628583305091265419699230177278995639323790255034662618992500424118858682529879486106681535255564826153316347496072673964042590614022013925083749238860574639726206308693512350507259398710666937455798292696027822938691220147191833519419755897030247130056490975807860075823802431931402591128702410977494613155436212993631250484992170303198117407491892798617296963898031694555014573386592704670876402854003175715414676518414705789094805833076436108769618185514878826388870975400717281961332640216676548535152668467794755666146144684441366202498238836188311834671551729178560086780679424819918980594645203176641610336632037361624371940456058775585997950099860246263139733862891750243651170929909944494649615984205511917023081562275941257600610056507869723267077358434719290523558055082010178362294095981566005125029373661399136819950043705248474042952903546313741911637570294030989370593931804983275609404067894624433381650582230816688972885237256998454941017039423319965849015949803831927707958958522237891675274342055285023052299251726350621428672814965398978918226487736138351763940934243781387558035825651170846486786003312558145554419002319677219985561933111194835372749063782672061483946224694371679497430061565106407790951333905097254986859119671584315443988499030113857411135772525751269195520899989839681389864145403867109238671491686006761928683387887906940455024266342302881113954878815966833068082328611575289428402612865260592320924427937100675777991273349948465880734173816918231992302171025474326691503306123644753319524912489505385800621356441655921718612846977289864414102043639760542673430278304169662530803321622177406243547359713511667646726568107727545654005314555569110341168215170934888288058818216585848670408885692388902106993803176499002402490014837590262944888212562435546803112385411716022919043527965222588470650679263932857628093207071200164550170536705972985274819256426166843584549657701506848295212351680752947878069096514315795667288504275926247189613549869545095234312598563911846804908312366957354630985673399984317552414994337877318487044195548304311550668023453628530335520189705215688234107491447083345016078340190672985272226777487521741360630135900961804157314946063344780548376448387131832918814663304679071951361758422658768712220985342472907717481371852752488738154567386884215249662942418252879578925619168432869896991223204284461987122126819974786694174442818872608567068674777758390625138820313349628854367901164710670780944841186823375242217578970305655983398614144531972427192273464758890082930452294539194839313518440744885561851806841505278388616754701696720270368723047169500915059915478493208385281163292283813715619734707767607439682025156064499460638693815330868052152214456954492221211209369922922400701920378987649561883646118667943299779798910863614248995956747049988848304177120216075251889461513452881148730861524073164852722408609579071774354787717287416047645077969552462612671078159682465733557512073628422308174537289134975433751967407463627674545209450083514040226696939289487870712822273243118948577529592494206336937387736952354353603458697367739467106811693862545683207134433361954225178571654878356533334740317428092637670723134332655976204632455543464707777549477144383034831106376557573406247118415489649908869787405627670265674189752029168333065387392542738338169836345587235242386192580764981548129834859490710140366752892035909637031599316240820917671308660008483576355115519291755175662249100606692151342097217812519299924424997862028319879377900549291491602234931449193714313224091717457504746769777353786951449652489072631172939989422377257715786473190739144336538869438603700004733425309192079318703280581787051341031813849409545820244391311506472897954990219639446117545019918480099054835857144620983780537162674644668986101382382281313640066955627859186993557384046528203748059200699919812484223816847922335579995714902593254562691232299232717866026876079202526336659018036341817474428076899587181042047328236164667628590805400124943450271500185465754905727085328482930840530435580224042689246427045411498642185699017664269414458021679606702941973053945030878285144847293900667625160376339247746202668105876353605242600407739693750135291180096505441691108756354617471715511916889494126152166510397252033770689248436908376537659900378078452077690577906187465543372397099437651505652055579344287235986966775112077369857262619381253351298342213170369052315448558310415520550552494719841173961873175424233856175319807904974614151922760289242154556292193378488039516446340172819867857022849659919480693354484875989176258937679062857375520937793606467957279645408701914330779530819414488366984629927554902456848630636829069490819618769381523373403261553111990419993943299450124103069895472715478047157627616152985849233847395815274590613903773010939888444301851135839446376667088496476439265790798973953044914532244195236374938267961615677523770824111301688558864893649282856958969651565435350692959208012496272902978696356285493900906314896092311838682942146175313472580716355461051727384765495216656979561625179163323465618963482184972064782457351993709471765719539949869908022782973873240874552315333601373059789828037063637375486735313383186569643044334168100830695220950559722034319383995054101785373552314938286956965804842999752324107040947392361133591535992757801543080601108841093006707777646529648073400102374196496855833375476674308575826000994739183420918980080337983550877801527910327989494212197070755307305639521309654795077310239819429963689317004174516889146180454517576457855924765703361772435795701342874170123264090490048272089470043734935456561591060630210505244769895346115764045120486399337150029227284230061835788231442770368564117891996574117222132979245858380804385444213885245225660604340134360049049108833341201105859522975368803246619550789308963422289255675194664514070713235182912820995940792946563123600904052100637656972378857365367067124567240511383128266833681333659761230397899364874330703586519855094661055005987216481467133195256521159716177115676002333265380646392192265757873104475523585138794810632154207206503864581727555324278872330905878011051781469278215098287335194708705173172606906381022504804026113337932433398206673200399833071922874535524678904822155423029563448906702924770400084892392782341018204819159742838969700344671238814237381471953857367726183797939167845083250108872994958740633874848253773760563855151605674301239486385340509601557303343663330277620051066344400865486066247490439628204569771770505523055124998151571818300890890300952474530279225913509813412663842181617069464809274640357334180418380738570303856245152327556074629988510029413545493046971120606044209815447669863287327461845460895870175557536172900476024166535969715754755840024552993441782302192024410728425826541730185456378577029061048701730759856223803379052432595751832230426013428830020600639007188542462138649925334225332442295943466200220298267534001876314795265720618009111374542993043153198848985645547284101410453405060933488995005769577616364188953767461814440119545580426106806529713575808095549206436809553796102775254633416814160597077182117724234194918524480102232258872294304587081637933741010559420527684373467404786015726244602768877979367886278814079621680326839119371170518340888285738598092029501585851735426935133841568671897148537021346951988553826590311307638143515126174609269634214501500856247098760805976757358627331736441650729950236820323796699725130986750192187667808236692365877732982246364888090318307248414842003676609786734788835667492512578341146617170254804553564518148097881412665642120647411065933733450637639147093069267883697004897393399067734311255892242875247819884413840571995187422539897880735423967550906363757111091076905415258093784530217560615639784560072320472962280803775549428783047013951213227875110558500936354649302790042377021546567738128984594085467706844657311798121890617200514214390794997333840232567946187669360766828492887714909740817632443289175171219263302591875496174727252676125276306370459048183275886684484922368292046756164159541521782045058885184823250469976610098815417756679850181388112518490109711434301669145439810064272954702314227221748646182219836872420781827584612653560084927339341209603081096909591680712974579913069295674708236321805182829001907824690073734128053584563475775137849427566503775193396910214926325419902460606784739545451011219800500909282525295584200533101816207698378132589438375556278286550313056903299976663517304767651051908920775363789455579836283615778396942841688868342483023983973591407570029725800712268122202887592106152105451817773202297449937730919062299308852600996025491957815099242072115872096534099073806415140596034538584684036747479256452172172243042279114635081953169959955899693290293195945572149531349883052749115245873795816364078717798371483326033621147105130779569625252456794189788093597602818004642958562842245108184353842616838922296870800087922352719972078360851837241922975330396374361711472112334459325511023169670905489271881968507594512619865086618661050516644271539270588469818811218720584094213024454890685035282292587012230730306232588450494981250839370277911910753204286363448517040994459393704226011707994875452904038071819617899094507481080322488182295292107651543034630707493724857598117483713421228816894307088347027153064249167708645868356618283281411361825261347949281520445655051923543114527891590266714875888887848485276117031169073071174248068330697062641500333942214634089004085082837843501236687184562364956797592498718829452383592987153308399630912656725101038466088483005544435471064310732310716145624718166953581317461431114324238712209141848949948299274879886373513203869148655189719730499250696602540730675997514781059601630845980425607891043500843145035387414986955433581540452765897315568140467641384914424368700376218208862707822902748105839425530374646460217336641760763308646836186471660137914437373467904534565833376037362285307428204800188018440054156560802085725616600939550091120183839888813281321456908042559912241163195229538386896698623676204501677280457169621761376108096474919513081486482593607148451789231201604697318145980001771925938396902056899138395652765155078295381120437709221479828740016909035534671078433883287056360198755223719896741913135665227583344221492710319944482871823118298953740663807504172415045113221917188502094839776371856710147097827855253833987932215841087195307352906948779772204254280388257155603735263952902400492671138025984344109968243765147209967940700966707039864466380070045497644326504298592585439505680401209367868596102934266700869264635021613789077697217161788893985625413113011522145415212508924515224016841405105013213761453756345050580563825824868142357140738497417957090435923219363445741171134380010240401713519006275873318743697160249209483321309415586893266830841587256061944032130533041162101606116389768838742697620099689425856113354617543570910983237744492469861191773782479652310758502095483510259819160549603804741399801620003229252942951139418000157027149913835880520116429642531462982535612798065931150011647022329218113234665706935507251837743873706314433134940878459652088893917813862970603414495944313931799657168579905849029531929213809311715899813722846470900170846363256001165698104016794904067694066173389233676360833254742417513936199387759706008123508403967795323565679822937547638650849202131654486105106074253026126661591183405326562936770428160594487535873162402217816679096801799987652034742301858478549465548503206184729950869445011649400379819314014537013495979453812246258670963744150506802219694840785501311213098359725621989986214255276778182127475613589368590368582011325806514654620182805724642078251235496872657174801091745627136763470731843134678184782630551705811468426740925981819176956128299821892800804027927924916224427275858487999976725752712148388978032908373703031848382406208119676974521925821416449871889455731155560364422232834399043270252518956233299110105651340089733352156081359412462465554401889893371387785004131331228613044633551389365354201032506972397409806824947131040312767124048312485533007473756214518239601320173949462252365635014161616158880048710265099747642229996344965485311886735677671779034735163700293117561737243774872427008547190919414305479988522220085508854430831502131197194440585980817063058689222508853515344702944865992856373849655329253010659959939804865976290328685015607989757601550277628229197399301249582965847782411033634439300401408398028533462610993639174770181857418256174495859140186563723546881496900433561125258243862802161521250446617685272714318038709625518796198541503932094784797687762751430611580835437392513899421181335167135054102931240968734281504420291073439232768950187475569570481792391027698939415243655917502240999560275900992238796511453974937824013759294324843426445475894291016692655851589834629666687102440137847461690935232608002473958247170021034213794781734348598097179708798492503888689727559853357209361256487828049615973503983649729396160997129207009805470637062938464007933736628076998757020181641643624655180073810415832031850656151929819564490925488932960434890683456799609881730374110990190208944060335166415515332351577517875699873393670273461099645201110383693997297909104945761080125505284479938905919693826194748295733530247294768212570995946484983248781364037594784840113309129595971999333228826976283455959253671033356765072637164806968199060819228565579080866634601768223871070465185824990003292717068459164424315932714025321748822993873589720794116968542226849979836617147525938975450111564992924516708217929300466009834828830749720215417593021537389538081942944683141657244652572515087308376944433008189460207128111073797828222510269929399743586202600245770116669614526936991813754133804752592090549322870769563937551275078925694377832455553822268597758992787926705781808230042940781162400727472496411362754339699399795337902411550324546257448259777827416169024655990791618707547377188630044679195288764071258604391417943941868163855730515938160455395169171218669834870616287611088352181624662279682916034831794509601520535696739937560545045652412683547222402334112336775011265033194726539883877356423470315136742468066694146259856293603817405196480542575289582912221154218950389222332125123895655913444336359126480141566923443563894300774302985238191361118312992509401216440483269457268364723481181265818960290061073069784674215345173251895485256847445095366897552861898544285508721387048851494487543114886072745256140337135797799886668761888482930919347028439324541926837673851180287718835855701724021239436320775310402076217670561723009477349987784829074543385605520100492140634648831560962468188267962931091980588676209807006141400638529343405504623226536410148937274971127114919264094393402556103499410978943015417930979837227552289815833467933144366956610692502248878270384380098768596865481068804361803114209124683728315298252178194220363106553203702537457431022522163065691080765187266770340811149223799275006613649182507480581806423867636875151210193521392925864358415196408802177923438748026954717732392348840629670252321247772553959883665437675818437152357758019329184911601271210094822657111368078250356764642795282414147222543790221283162919377600426552486466169308800838023254747111573815855121192581626958803487106665771625918714258296308631370200395018635641530013880419162951100489689767226974142237653698895785807108990222138105665243079946795454981453233843508349983787423124127036014529734523233142755212106508166032081929760371518044236993227535359223782211747830403706400752372440638183728862594364131769421608668362578406162821617995756866353057958498385867074449354905829420459762106408501923626280086974861571297167180839057542191670879698000756573600107793055484678622424510101986129336217823690690243890892690073920278250617629227001402281711374034982532109897367736398638293988141072551827612945652893810767994309142417131686157870751870611909939006865434960040534290054750380163489609232801089628449819491977034488966179070945707936001398866235654264464527017843316976335078261756369519584747139003310288193966776916288726076073662950394846442654610726945005837777949288307819830358683166921134857779346670361285794091753362287961041923348722284156660885827763691045845089558565057450601273649304112932732719763353262336147958962854160803946128180934292928743438846135562706628009323415282425695803771400957015093709297683294999125619891644619316843626591126768324059800418831759841555788437467256933372874762769777134974098958641202087599802784738052600516333452843687982523435279763120967001679227114830931023319776367254251191888529091273759807549785641777137916537307632814326444510851276305705140459458170694256864727197254032735702873386458260605302108811453713852570796554483167583085234804403946914316845367085024866593750120238258971506886768279597402551332456186805955732531874246130068927898661527173256954126762033251509185542968702686697933961190452656825916313870363751241413038476663266697391836508270330045783098475629562817035673464702822709766170812096574653101797880210947424089268043257560841329518867332450734198705037101768166124801071938060237224679230772515732177234472402031090104848740948777068667912719003896941142235715636756807349647751787854776585168424967018744613652001686462691627585651358172410238303297987033046700246256984755725178037703620590873974536962659117395025582437631257092731031726151282851920352022274346267408091267202542418899148182606818468063692371644356917318431062306399078229278410673465259084606303894393303120658452046226856571278811093827168752934461277953851658715107442293942101468289642542777728042099476900261906180975191329207802881944157604471944599818132566545934732028734746908261301044953427507295729723550092749385320649326435320391257461340745738141575661016814347146815073910016031480629148397903291513201954336467085052826110527824231300689412077520075586120839521557513352488305332287170288567653772989785194480144486575082605260596030301184828005496517123755964742876829999698023449660318080114734783024161044635267538856864427162831268584038781902778496921143078840811460234547552456999768755080127298520214981734492111205980382288801773959125661112364588198845694486787550579581542503071654709915759321059290662966392198250709427489581195720539466941431538700621613312199989261023437123946345282611636313988162682299425062306956429089968365050253072612879905741555736829878640600529852726289268195771808235196878298883674814479979235337811796363800460864019522563201961806205459114258932451129090853408739987838344154378437196433324348590756949987699823165292809016834868964591456812061843071844778198074221886911240216667317689519416701859783479993991703408711404564227828625622375897532194641471091632206589201114660664320190381879786608534156506072117989482862459268026901924205147130717121378672438039631319577923342322070782347191070109208035361610958763459565578608834467296010826524526858610531178006042983312972440475739278511612285752839158075434349477018333118754703275746651502555369989803291154725458382827576393617560277511454221381073801426883774840815827512838639064336152377271138127325595418105216224143742100146093918889293312246591664838642228634876875692741600280853844143049321634931033992363014001135995402199173881795340285708196366849076369290272858637609940614047847253114537102230371468484606589713828865702174874558402472381474365913129125981213047324009551639807844406984318774745785557024469246111019130136395925650155428000494912994153394216385280002814008281031866840486474877616667530549845154585756732877634562907050468042184005202176924979016016859872392800853974613862665527901289534903599485767504579992410309583287484880422562157309726416465527062916396388777369918474845657159253390805767374760153548845618686291591689785986284981273182774262436051694401668919050221761898264051535422911326800460021967589810425814214136371617438133775932797058544211178326388494922616655466071490865181637472063725848910503148993194519310513879697065312171828818969062615873558107642882009836827050426213211244871490075650530002646657641747012511802480487243794880865863097168064758146621939763930592766005506909534955760057737379159401471315251350987914497521051151219895726866136736783529701564052470000196447507007696562240136386088311417047455531083024094979699931100162526297154815439834125251576603693421050360439358899645757385992267685979339225136579000896160878679368345844251485933802662006522402321291971215320587765673987064590431597252153667030697474325074200294737834548164894681049993036867554091310262068698602817470203926966854491406958814474626327063466992203942836968916430629707084255624292304619166090614278297785413879816383276461233301228001887406360435695866897825619515271091963228296869775548028000391651592492329313316047661212353961757246617221722919078558277126812893200331379836239448204463327886284771530804920711860779362967754099084473657456297329760555069154680307623241343293682219914233620334614522781845842851642020768223212240465080888054724470323653649186425185948843920824094619307830227767455647068221446903435418628959209692771446095470070970373926707357075685636980415048557209409328191169845471239506661019573994580323228030301921694379516522164612448764732769016516258579140108078393868880953280086327098168815905766001376507865546902849665168567672947037476525405938730060313578527322640185016415571395674503830713131287218697931922798752072613765356237619054161398538630927733480567029567090347913899028354497563672998175567444162094622553825470998574765365316652640764375781621112309316548273673387719935909322878031291364001433586442081029746983091376770846825245951239941723153077316411630224744603953165101437676949103069785442925413305394534143149029332589621933148573940655518665204608151890427820488683993643360663258298567762620800690349265672017820670113752780431157640433786480009047495560056108477927518616430450463681284701843989914616934919853052839653616837104530292459967798398458581268787091513216543058378370272505318399330726951175101556975002817998704597536526790861273271677093455720391164210577434182721391185842579318185931941394337342922689276432299821256063106749674724504966516386900637338052287397921495607574361250005724446194905721560291488352316264791031335977615844026991795389145177013942659799072580135768602367406969915692466056675710598811030359261311552413807817296686002181429860310582558590339054470480442361354401170130226622145357005358981754147472368825838276441861289647792220110168631699047802192118460786252388083397458622523311964751127182317769796859419660806291359573635615827991250120981573285664836065949256072197337139172639144252227131337380279486440210665822533876020027865047698986367321984989236149961129198673327361496500010561854302761342651873354496456297742910945622903184526766143019314710026325862024955759073922698674981080059797899053216815374474900020738701572065573597988264543324569115746693960643765368817876600881049816499844234883982099937196278799279446600044898119903719938887798236983566915251809772119910864307162478670988457449179082775629227210744362140268383169286638783384373744471937129767421435310728487401133577945985302330966407218824013372380342877746897673914251764155342616948787996033642769231730251480255582110284305592797080961909235285850234737626143863468941320212920227090663814552817231058914906434520041788143257111870758834428842653938253385105441563066643685621584680275039394045872099180215878543190751188166257134206495888595363119233787324094066541627414903847369352758456012190855974625933902090850180466677418271917310487678321680445578565057615251941790136334116640870689880447894038381018499659390790201358368899331337125450284523483712234410173501084190478253017503564762594785372691346416878360487809963393841218161974655856519091096143612239977231850576595931137527417811383215446833057737848139097607622515430865715896977324432989150410117543966314787877464670285461170279110901627153167859144518446520553023857169091254327550264904718251658937632703052666838966363338672745460571556664359735974881087867281701689547529125591922464249689672693886319331132386108128272209949558907676495878858387386860595598252193923141616021690827339935211213516393660257843259828145616063131048688657556375286426609508078898422738228721229359338076144476258044325416442912084033269364657295861356441142725061332459308114918945596296522524091987037502534818525019510789340139589742195949864036067666320647406659159439683855585621322279922928458016118948417743955859160876617880937478334145778411346174100641633945772427956716782541995783891525278414219985565290805112274408936033177511397462410047959890258164024601740331556725122604488949431975529845122090109715686995446310187109878693669977466997725270410133790246468625193678341725984966067677434704948062513974791213927731239840926576842781395756282909016796062862680839029842762643802339745526715085227927038122240553017163363041467730694017166513830654485137927063469326323698588920422867994074659398700475045708278843205672780916932660718097371727498147975491053972378081169643081773338765444948248705650576212686559001531228734186229703516020110970965508843976872520559168092082206753999362410291957045734741877556488859643850533117150192323297817348566246010917031799021482911565293941333732982634845093210465228205144210574300007445142024530906623406373597075616407106761410532823196576000060827374850479373205852167370070585542793127357371324782871653963692111940647795682263233098785838836473540103901030688205214537808905101465679560566900542452254658385793866934028813123417044182969682368098427656880097843021285270677942015420407659211052438162176523039687689623039014054646783521743138178144798271109529182715180930526714452600782481367502730647938685046986399730402557920460539202879605046150183106303295823625136175972124545059471641796429459589450090801289602004517167998290882861383876139928167805591108370753019939971599105069470194436650130072877017519311733000257421456273071036276617734728518215751838998477609933883109034472691563097501304887898597400106645037568542112720519750224721294767916586864291688653329484152399230507448356076537454264181871411252948296571556158327627425963517892221501927574183912859921623545710474705937774308352910735657617241837326256352653894428495088083420619922382656652911533273385979194626951975081833433411985402640239204350294588336622325896686213334160314365048476992362591279644572239072911503814907117184264735422036557637757049048272514514818122704716743300162181677651582591736551476508994426505662195509991958617098988029119388314693299011961958556202280642710424520685069554816665284404897602967021200255486465013412518129375523789260973682007754192281588443580162887805436140006431146660619646212397729306145042669607951702099757752628597299449150361636340810999219793566064756031714246271154023518625029835491409605775969433865889569025547517325267980644523570711483376196714299043357492311690826954093254428512712429346252481605881961678259843865415764691665407322870079297659688645269654703880044544800376732640947941182195283678293949129140694058850875087368008388663084456529851249582579310684365863538128427592618248893746584642485923888437818518853432233539463216971543441047601489540130767099377612656918611339296300200292521979196247542569690854054218841428285028793940578562104715411379541568190557347896518118097407131228704109997527027412401892795822725561483611736779727710333082630279040069520151171928113456575576037672792724668978795930642580112119923945659235260786994563278958127100663094161857465541470503974300867121237839656748364284682783320150635036499462558836078676785955633474059932966479145009151535606507923837050846168746952256845591074612442091842805235867131404641322829519496150391076529694707670216107264198462556447763295770006947619144443700539439112121174480507290270412328542220056032225135990979636274942738043230001899818365199668654505218630426487641515551332928653972434469725344162251302298913934729329774759017536159406659535759907922793282691786432833022029183408870775562335794231592450821547705839050675286688265843836285747083195638489679666663382947181789388678572501995990710562739927279265000470993347951141966099028647734238891763450166414037534111925894662993495241330615980844092772659102437512699601508270732721635240848677922715490062990982813108936986127698915994132400019661212757715968109297994114015823052831930111324732688075000591049421027307370495534334745534754913577810559517342162593598997036734598825394151790956950325442115799901570465871132980570450819853745936131658468974549255966758859571597375289840947112877554170629983030387115268266904883917206499762152031740706071314915535990573925957693618860021096993854257765656948975549795924333222277292875195397167464626801058081480053063538003362989064138379072083066912279479822521470143377058104708025942154537895958076449196656076038387088647647233077872148959611283946672413202927402140023306129241090433405608761429515767030000090228083910307924610571660059395003571115153467919432365202057236181159854463786842304153676226753443698610492318496157351538166488909296068808992818899498832099664688832895787245806083281020819172739891994602068288621782501308665162895476686425792462843326814346095652821360166039338789686954713055958477633466192018762330170049664929025647434747065394225399719419566527044596433169485334363999372910294313212885962428463550312392984048318105717697791664020762356655992700393544945108076030776103134292359426433794626720257017851619762003403016650833507579648535124765388968060722068358571967845357037055617218302155796634949577757080581926374630329198652670412881655866542892025100759161100548263422698112623894248829452361713736189202243731860130680714720059114684069472977886119770931853912211847596805441535516159063611905942470602118936163535907951624655904028087360711119894004803582111660654160009870497101962051148039017412937356722448251204794999926048295097987836932728357035736419852503143718929077218924414803132328149315143063792155511239341578765261811335037314802151488300059047349887282380604983914623834243371476663131519438492672072414335460000792099542354023959399132945540275850302926793572554411546194751945399125185546953398130197732113266326080095592314467786297246548814090432482019996525560852864979315265315184216541502108404156967584118005559653364500572634031026716610534317118105951167566030159740364378347074016290316045998269127109621937036908908013646120279914855610186918911654524542150795768191412733557783809682514610235732134083639109026653662032236972806954882448812598558833418531322635659344265366086859044565558903322370482571926268942380754616920061181523928219000287195351439788821961996825425648156927305513641281100505445831797875883013362790619004545123707659296038732955422442763305902167817079542449228783455919162636095588070544826136416854479902974585780997894887784322163169693006900168803107028664513899892049797931957844196752362158254753180196048065575597650516783117239902576734226077267188506852659924895453455766219235277199499403451932082859302144009150705431390972253543003180572537140629564695078313783933568014136626347588380004678987150573773598979800564408784332939598463352907116340525486100129181722109574729086064984140289507105634547240081266487495968197418077418364349478762399233525868703959382623928551460739133920769095149322105022495076591456325285301665791415733882204447916179740131703486653810304912997347943429274929982545015521710705533420465315302365310831358031691224083402086045346196767098169153963992106618088173736994749098841909821158978034258547432801844311639965900576596316070062520757869048584723723260493489589701256532437461359105956636397617335283396772234165726894709009706834351346297112965371453185306116723835441510283737896798364637020906060481873185902014514880948780278051967694299254829543060236537888224286970167792277799309175993333003566136360188820425086550226853406898733888145001288792549663597702007913398722317741364725831323592999950019372583203323776598076403991312928719986946017755512880996872379638024227313189713177510525065847788257432390449614454750991742502353854380862693740714391285491593805648850783119131916916840010852433509696287117582143110714690515225417752377390591004420357617622922047435971729416534566278632451657328986562621249426391092216626668463844642423840003128886387313365127458081128250781937164450268519845465145570672888061925109987860514268880881209347146865555024648529236429114883377092706533460791572438169489409171074250333837793345262898413010949855966532712678779204066623761295742126792248511161521047898720426155625106897130669705709624505880525409023834280773779496908937584143553171679685211054223207761306993068449878905041044809652739671572304384432895666538422298001310540667738395302884352825282854169726491709510547530103469868273850356240820429832309605199525136849673679600803606734805470956257638439506237323265937381401009635579910806713024328341793662546183180247499165419512363748194593212892396200151924818941010932102940200215115411598523966986544973461645485443328724111617418131380805232691502162219320075785310614583418130423386464038357673340427844668502052932713192017422156298304195016768619806465593114059862784733793060039209862952300922979368445027397738775290429410002563835512245568121129462678454813377902985564548058894049381632385995784227269356264217388173081878999829484501638453276414981258200675736650230075790475531368102232946886790008001470992025220217862563653325912953708164270149666340559392488193287074898990521162695770742335802668964132284692320234682032481999178121554767221575359722473580493319859997428635886496933094913474247367924228406731673101175609241663921933567322650893080845958537915394955461464195981552065245931013053975734124702392078924847724503374543820210657060813814616651538504006460310558660575511037686263462704851405089780168365347838364118302600283386043567111106075399078866776449816256409327952472737823960895169028987392944101562792960111903857847314064421865435580513387533455952181765979435371462618239858102172737834951683521768728383784645360740376285881990574758347845304909766542021691312435812360961980582092898729710895576205123799073335906590833963854670707659438249233877618648083314415082799912511195293525479133415674509771497346216546639677505735406245522642309128453250423798787477341720627604954072433397308774969148707811385419449991259032572454872683369521694333300838948381831270982860651823674276786157715008417530215589596616356335123628734154429860928217503404510231050477752148509160659199771041491086928909206261804317511491083604476919185579463951280278492425970864208741210408666845592115167789299719298885799599410522388895945470329429218297527147076282063525248831087681045588381429513792617136427381626200815439727842618489561481369557758923676854918369299419501105418043822066823208559654753643496262271773265061362699509009741775366795992869816571643641808533104239304086754893987531031651981736417622194555002212400639379847171435536702348437440082843034722508487363655304772748160544483249219747571849973200776090457658494100346325263703777930227018971650392024175449304139882081945550124947165484698962103297050000617951875319431657183321243858137213546774794035674951554158706220555212153038951144695230461662678138169092878530829564356943588500083837067508855154718435802066668691275153391334307399205762270234961268475517237511519761561331705234581441984822065559665109060635934615246924576061167487137996268278105403799137045997050317147489526198737691596457042979396565508527070481128952941710516129065690359474777344346547630079787812927797678349142357186590196159019406177352240208819206877644977986928280878227251485463734144056792745545487898349667044524249924599137209412856155385813475108655697614168181901907209563155197172255834008860634879495568034281250307633482142558842218915940318193226195879027213825991120747271743801518932229742658801272775619403837522204179129029275499433145577911998513188760365865307400134437827962601448091801080151472460870669576867102708707115382646530073605026781669835874134882726444533566123964767800095950190832025753000474725063262082212063539679386974160290460596481404236096422209772898295356652740964367743562583552755900531046546818298183584671366403537592638957224689846489450791959812460027720280570618202814498788429381457400841758493677910790385426325269650329381952579101141126435335948947727697791093934229273969104115812320732715227873112956952934004001108587063155379223703509703334183108752147676092239627520867801142544460774222501718211686306437874120248523760365249374123917129877696764032187771561473261982225448978813842510803255457184488785206350487603724781767129880076917423696589064358448476236842429341432284919005441313225296928628945265336481313619562187786411172405279702370581395869932865479510466286166915709751546371084111698024245696765349186875643916474591586604798355347453026034923883529736868632254067046973967514650408589952552800883037711178055398907746225646391111254443094007517776944481428991443571261177069191879165669875136018383865245420453547745752201834095014459486578419688266068232500439668903498185923247483084266927806298188115253529546649335870219469703178593851559677973695148414956744082243273289445423715755933437806303499641339682768732526743752440381685787904048875511696285090300004304081568241221482878809504357783618420258844787372563459359741539706958728668888015631334707227343563241763966021035579134531243183802064439931610164658256932380334734683047383389076344029488312867740795010043543173636022618906300476622700620693601401280810391565963119884754021887025379242674882004709381584578168817108982556717370821357420242307198591298565597882641869177550569856722324157135019082168009106746418288251283942831997819836160971483533168416119629170289261588461207039819602660367323531425896957246344812999289942356030145987236196328360813985550095531316390558126120425893276984870787181858433165812547144893308644173539100747523004437858796594756086162697969957059261265066177260052480076782717643540102777861114513689586552386940997269691860292842266864396109098670276139343179771993159310258621406376147538274376546243314017044561496953007465255394938456825231849537730632951087010801559583486108310982449623271437049026929735223895715337810666718784335326723079570202468360687281836734016540072507231252127363396392109275022488195310162936869399831154837461637181551128911479800048208642059243771419944081513092802254407697268251350864818029044811584595103471071911272603093483294161823177163744496814488146006587941658436036798800830404306953248994979809932827588736667164809406774020537064366587860244183315185735262351402062790673785856283950750706479289550789763777406887106288884163631922781830762958755281781643646100301939911495603452589672093122405405040841179426509655105363072689509083907010907201973532944591646946861360480392973962846887279164309891238919144702265490009335462678074008768107326258315496610742903758181953987180201738718676001868228887865075225948021142916087170631977413447916103242088454923267801182252744501337900347219217734451615990547426782717303588393459222779876351357949451278227612078913664817664425039645379099773089122764326791550284452653074995476366398397691132596056450215162663269319525655275897902355975204725605812269523706849630708660806805190396240590914647869893865746593730984379577475679799939859374038492928730251996736166036454602262313302446883034844608585528322980080931183832809631516386008738170565638327605691867942404958668183858339464633784972965257601508745021620021207231200626207320406453129519381042486558432412378737418153054054760686573067623234232794014883824304515666300938121553253609311045890724743461358077868384597732976230962518751342038268492716088111321307092978050378477622864302130622726661721923443034890520179116172303101325825423744742514245076955197850369619333264517456432162354952870993362051997503629652675017252944267646720686122283906789804037760319248909835593719849156777141531659569734541128987812911392968201638236401983408422435658890671081297302903498571203464560702492491718047101387415091582233147554994715671143603047663316507477302109204471426761943527797923790694402716678820352174622678279712130661783521475881067373810612590155186998211524685813565589710728177425094843740250182087279577514213715209918005896788563115237789029267726094543093250877331828605963287910680312015606735671232827353987930940018915497456915560994830930114266585368330024773679333137571352224398065652182042409856296016817696558706434610584343666369877589798113646689979598238147418455483786228430722814765594723312889433285961316072040633242237058461771704233313684873093441976489076486468075152392598795676878761414908005649895174955126930504893143327016838604279124448711594789856123691417544948712041869945882388960192548927013767942720881872625321981304510639896105693718240478416281264434398345795139305288179567414761026267864525120353961474570332672356669204313213318020755685645503838054362809888454293641982183775141878195668622834605487522218204310722107767493442118562666697179076309013108191403568559268061279837149810552076492873267878298888648400219086043838168394591371155618416242584617686844380959947555776179663655155231271790245399417208570264710965568110511574908184476759095674279286725619578674177737662421585913584190336827892619284971422277148450083889750327961344781128151029821975981193581560437694176777987902626508955848754532680807140653724777721773891685564453728620942759704202802691690228186430613586109725054995442195663381829785256472181518569392488133271808844980776106578881435217062963222204214755238944880210005895386705558374001206739201921514892114312224432223615716212358667784767575281381779864792362169935402354669715560282464098816552806976524018572017091136692974473354543243603826769894058149052787635334741750897214711105762669526707217408334413593049602475943874890771368319060223413862644215945504462485503697356240507204119526993976184610703062122307330839702156263981090194521973307481989528092372464585924165532985243491567410725950382682301473428084348998463321083030948997097914361390268234313685892371264319271076984226361024672331166639375655962913845544779266498785202251529165958730664904988026444668599804588154679305904401373684006798978361151243871207649169352969744640690306807307529426410206780057939981399664427808651550597872558757778802319402683132323419660549059734768105367236001122340395518965771280977444078632880528914394685460226711203665093247879773830910683249294647667389324255292134514192368337541527642444077580264694205852002880932825389988730365195189208492013750835319806261020712594089939786821200133042447182099645446549804508686108199494783276003589873564662449707712196610559130371467649388266872286236505557063439178647515907949179195986456539370475387381899910815464919241632296069552459552568364025358226970175394287242347840683960997657800147593483300811936493457450776522209000675443097084278606789792041104020766052946306461696485315144240961600359127798118424721894938513259488060452758739181327889976821114603467147187898638977765033998350183760256944171746693586883001126629675368093925109671332464258557464220503763692172278481432433344252676810864869086462592755296475613546880493583493387790420086947755118482270377880437372037676180429032658764900144173127614642567934262472477207561431055757060621141322398359911320509913237583283960006094598496245983098159179683935585382599326833052444561727352499306837351322642688958152068700134551509570059682697658739008362108709623940174697264625333756914323617337118548291205463744785678123383383814656878687605750080430151155511998166994408941519731703690207957205705000380411679892557669003830188178695523020998661959614661944324179385803848082363631704352359468356823850896873888918105462324161262999511465345851323785949418792963423876108466357656945501422549983651062575132575203826446462609438920540704200793419876179988723791349474960399485955443319562768497374970099007338659700080298723163148148147787794068289096656393694962939252545677831786768511999167083261081432540576570484536503837257411145278928989370573140703349221015230295913694540735194998879874881426455468208152736085530333184248792436658562511650154668890318228607313588269859150896743709499770444239990824473700242750426797854035358371597096798518272536994870774654781861579700734821554503328372059731255678617500119430267423132866300207690633979749012891783480167946662001927666318146461453949930503642824735027857643667486113132422600413428882305854479823528878234396877301885464721806658870908810598919752903875195409805785041090895721570890914932498809897929177073862400339534081562242518747107698284967676005134158605689659292274417406132548075993765613239470711952052748779823589260562624888944397447068832338812177250425317937867994504112092609738442153039659010691378459632760091316527295630221147449744549351808552085094545711734439004817607263510557587354578850063664064410910664493668994590533503096047467378235117634832335841855679152831884906977980501522615851327080418520578492858545311929450807640302422783805581520679317840622817167418563987608897155846005130534680305519399873233553127451232909306437972491964401872883761895106366368708809900333237742610781592175575374427840246716992685100912684805729386523206774987666556191036965847902544972282865348374745021607525350607954027828338897065140096237130092458211554166701406078762326983250741623342889901341918459329704034223878393740156834276648339898779641543975912404294077092852222452046302932611880946045261351946364250669155407544945071701696204310553883126918392223402950006944137497521495948746705586334014317066582788510077961729128224803420016326365395661827584213526104946896236661943874270771541326379084813858991103468599217175601088674057059249720046454784710940146882534861674330279555126233754621340641472008599565834030226649099569735135568373415027481096720939201378203747004992266730271294340642493865321889787492256436284240197996698154280745832133534574089795039693336178359725730312978853244269697005318073683819374203601744357477910822126675969119380632173782423468743717914370891569233717348956683792414385857599344034722138149239890301765912133908567560743567051355034180138082450845832327431573233331758431489153312686451827120053249115088825388395951940709960051164403726462270832394771300523542820687515949032590551114015273548510300546460225832495502527093938179117518175403511207533384871294957490545116050149748877695322107854997337268826571230314476569909511472260019863608756761173050890791030885319742464295248814612974685527255427999552821279656145958276900909313501193156162699990951204697359807455531356455209756533672297280840276571050973349123929573881192042719641918098218838637895719815162109736561957333779196954233457939316563156545885492469731673701989129772174849408555834536734606454077634607358960268264677231463625865247145876577466819088343208376841270417402839919735066094260992051563627144534805790320861936213250422251021335895724765405942488851258362937218629938833499307461460913393186689201169110887391610531662415796383845552279558619424879381332300030886155498401520696229389853775944740131893837209379199233818672452603547232164230353904452619900090510425044319123077028114918456890787615385769446184855806522718247073516896646823269566417970267100511970850585923809617336955500058277200869937510726849596160232286347573194507963682520646154201314860168695334030675782728491959935777210201794279230327599530143062075405239584769005372033952740775215063555135517142774235264589004762375918138665006198161822113736308093775428269099004210071114848914479359381727421122936411329235227047683517794017631771863202405212045838732765157715472770134578345279439719431224404767046725876423458408218050228330687079867705066151731763617132042520939548810778751196707212189191333917563959472276553050249459995345228669227154206923573715322557662853973402752357538735459668349705775729954094197408811515879529081703749318883545240949795239522570571951884848725056070987121969387744887593820059862695739300225645944849052700354643826375489862668904263761679571409413587585767182655662969009872784668129248414153887406353434950258572207319958271538733553567468097467413551852893084419414429770112749544335623064635614821042060497555668613489119270685785628194310095039275981246079169915349105912696235776086088374677806718032846605169812694288794910581744895788633700995873426030834377341935226709465256762582614512835887375653417478076046621736087210765644665002618560033626969700421270588317375527342098049323459513852299948934486051834580177410200964879531213445413618179938155229483089145660360832396745903605767347363940678739205691371625544419490875465430656934981389964135801370248839874329793965423627056368590202245005622034546283096329026177014380337518440823287987855839776463960673968571445193639513247261138965105326923787259370053470383402361130749559968181024568703684684261783069674971866091611362946569395420316179700642079645258610820327860403303446234710358232440575652138163225097370538717912139584802498917342718620596525663358465726880602642913034370458382632715860149110079942606682362530965199030335856656586704737227193967111220142893967133089433888339108732683355009533076266786798776959517849777427054279560161771152534472200969356077669144987446702468197976822664361653918751772477182551858587267924365954180174955647104048093307683386729646320219554770364662379244236106485361324443229996222806404601395233153256414298460416943576829133902824586225442035513503244746987581780853235211341899529663150058030564891811392691454665983028991678068482211253501021764146280382997620127636153944750064118516047994258527552474868661996880769118132075419991020257035968927581578418481537713825171074103481002371226541628487182571928967435508806998925118314064256497733966106067492545618561467005363126501236057505763685141390950479948428338737167120293237029503614515859742230702460551385557166000835536564815946454412550245780350533435286620813644851614714554981318695617289754529673953799177660035171070867759890474394626579890130155756851615297832154652170253904545290376603219753127859073572135256582428087190030855326757889774090701369745421109650363079655245570131354375312202877059962748216724291924829469523688064670890913859835628298612635969039716930762732006365770646063483393645096564134569102287128548434835844438297565081813510629572885472224825973471475842509803842751366404616909949844933112047877372684691765859690460983983322470463826440161998149563979324496810536793018246144937024203683959483455908187528962746290252216255840207247182186310764542863538962629769813783542034727501902597979770574273107963759048505580969035529696541325714896884608913169461784038680204175090002693851875641931729109852372770210970150589034000252924602836551287590857287345891707130710222420096356422139992283679234298940265589665325120065424503413403888687219762726438929413773815843676049626502216807985243968085994502524382869765380422255758032914175193970601444062441166227057975305389276205541317429029074328297462018791484303177533680626772033492989145390048770129202271311326805555175567513755878864888121206738967098307640371902456088186889406626466958144148139803161257565101016359629174075264478754813703063345099810488733941266910159198348735104545240438595629677322054628845793661892490716033138470845264133498007089002622444635067318149305233851280716142264536185347036664706546552260987340832090031863958693408020654517770838659779219994549034130955008561748041610090881153914066966530236822209375832610673343489427927469293961383978787485705363443197919329073876135391285950549816191463452690757858857437187292075120077364164440824880969004077815983981770504546877142642177948303162932411460378536267994744821480648900420804236472742006126482706008109306033995857013998119242529769220629709185780050685876209412300214993297514384295762039601484645873121971026720475850269093515283450981995801701009994604530326183467432996844584563294675136616845317838359806504876903189374270835758460947846759438499275133317913922237246977341813963257958690466238362981505806748717635125415944677012146886014130884145857339536321072653785550540892013129635611560633724690978979372663373188188884946695736510996264750582382953130821640497752371818022608985185412539308902443497405367851287284794998770173063313464388633159142460334494147783900067214183638026727363907686000129885312939881709158861446462533904698088349760875171127477659918396034367164517497496391809223166096630176333333005904107440270446863020939890059880571633341356331729702412699692424316706164972524735841781528522336713214715889332123597912737692383708805295052895367706526171060155400599828040321720930336023286338429170654109041148688558677020011275889452006047063308481383989971526430592611467472351518221256471311241208240509954983510317725209458205020912001744929819055975244964106748805416949877390708013867535253086798577764947910617642859959973739621619874530245868432407734227482971353393390897375780805621243200264128463427179378061389878738402236411782280473907621813564941575791121324165220468902319119575899208635932873690234477876350538420340519810862135037362707912928617811163824185571171642160329350022930323253349523994394711953921763228617687052226587875653250364603665226712974502149897290220942611922497445141530230882427132651152186693618604620370833760260343981295307188807193469324086193850198373474404559576013679778385093577610972028154850477177536813429986238415819472394061990728488895451276531990170868550064499062499347892320938273579299547112465997499463780760489178501437247226020023814408621636921047360932089902542965713608654761947562739211012873998489263498370062997152266671763574973004402024449682025797713252346997877159831767480804277599536869450290551534943911970517532876150319513954499978835325933664564520854340781132155184811084683677464460459420533049241846676043507807486400139191017419923506723933228104004062108243915487140349064815721507544641289064878365379476886385284759776490672193350905150052434315292700778946978998556775417432075058755657880882049323808064814173579117387437670486644653287618320716561883483465010878093535443117156825330637618023115220462636929467541380080090477034639266614769378646510111726731459332840584413594525653478495883886498634691340674857190715292760788367233777330581619775368343693988956023468212445186645414683899412900419990374436580569319923400646516115531119941767875686554777786381087795227098608079023560625183589599235380850002405939565532857476079225586523148832075636989507264917191557773105529667799176427058841719760062354479625998454351060749172126029803244479085966233730307449318807995407946669117180931916393776844844446464265846255155547074866446467621131618732617358580581774705805741427470973429310147126982443716419569713613944065782720292129689789901022567783149128358121016046473206804992089693691048168681833231709579350306374380959441555928992454307778575386586979608850048038269551074917044919145926594898615674823925820150529534339602935041313724749913943450593794213910997686362560045014909485426970428824990033871190892122494614268060370869926099114194838061609386946191140665072213871077140729513580991467213159089707402697044660513745872086569791773690943582589196819009994293585997823690327080068578250844067314271364722142783477768213779979558854992296806293755639252003669636401366900035500261119852221504447284867993141723666244185824921424721068677271396288908141846509493305414480251823217366417232543441223608512549544483657630601286352728641208034012584723356827115716776947233239163072401463728598139998867554961289281313142803916344128749107659698975361366106737297369235269407187669902911278794441652889593918149126799542559961390414307488201231444567233635387501254970758139680866422618266394590598538840358845840490721037748969528149512222982212985263734747293387339722855935161507443612119220260788399075267148814426176560359725373043902945315538980013463321208267412672703490016597803329513350975453853320746778511633832410294296564355727097649005917523086160432944077831279914881336363300286649043946058030269710938434348530424417655414675239105004854705558436331127068673797420445414804983931127780484899539616149227984394528879855045085036571872427379513295175878612609842757453356854742904745647119132437829817288971584334578649249766547020848456099708627274473461836452003730825426658610532113792555387509573384647687720913600105349019298524478663903002448670162473858932112064011995741261844553960277418477093721708950817319601865698094919977143793501124367868619736935435777960587745713645817303611268045148652182206519773243405290014192919763902489521422018397652168264941339248054887961895625931107135985990527281237745711376551946970723005319721448153621893914365851633754787387259438164162138787367986749689663000806575464578719430197223742211088195825768171385208584961504650596011636162214837134289283700295752513161329873895904806755618954195887295697864303701252449978359433913246334422638150931769108749915326606143030993996763014832479869768927242409463367157916803531023428400003851461610260710927986603550683035131858910115801805951424100123241759354054509731732554827947644540558969491094020616219996249150808164652235196897092031898878805569387154061677176783135572419506442259090122689010929630250442608281108189055209143165614037878728432266684959661989865971421065900040588836010922487478987015629345493906480148826359761165614902843040738947460673665529067403343792172084923753106381676777020952550319867627199954441611672812083169697868549987206343844883832209625255842970878095060672594593667007611042011364859825977483222590388906605242665268891478263393350676448467755330400190109627957663864769569374098780351554369659963287350890457674182000481510287879989716183926107375233382360666132071298592802633979725139059158659477576124088991285550942487168677395252960514825124437930946362273922195689613468962735332663919432723071148160516714661292413643734416245598395860760807179609480897651464134440052003083695999641816776424891150132555201819151187979003974282735972528218300541020823133416027524509731090042229190405428933703361536480927779804017926811708025355199511126306335090203877346836320921618982306002378061677216703822791141248645285530902230908713409196191820215213694337496412824233697287565414816521546045482219117681735951657492358193081967032524577263323134285157143788787987965145460264668621813066679335448949018700103626352669483960153936146887011329926467283016131199832551249865826002651650133203118941508928365696376338298887675258018237406990710226589724422785968387261951482585819340031901714762657110258268530055155676923647599424991417365832742479841271635255008106078778856706552444494065646194636042849491080545085357738994567550169197346654357962814338592825732226565707592992968765677900698782410000651657913263533999013088949510401224892576441060810605685274216150732825051956539669715979451306528495717624002132847563852435296564487205195950971090384399224516499965674128779864539667659269991341019237101591326518262869434778270321150961940408899416117556152230896495842132844003907170761484794134996500965590122657298122432813890857086716256186673817298918418804486884486212988275895560404341549686227353700332429910267862167469885567124575331745420383072915439577557133909535282371590384812217849031640599230262700505791315001664606597874862650714029582906097492249909996189576175235144126303614294723894592094449364290652270540793231086250552084648888787318207209442730156783116230960807520922660077596940540257911131126934022859265469512734875502925480539701168614005918971585953922383507764251511035854233750884497771384685400724334925632509192340419029018509389068464009973188297988904518446655418955811597721471026116890607509751129108280442035207488562674724621597615950735958216974224662565134494117094543265792338004698219209668759047052653034516555758888393586159151114984260181138700016247984106196784607791267181448244829676556759024211046205420625353594144123891806031732185612124306233819203502044710711770023746126282958940560011180131399194071594497317642999063308591648025960838086506791848204815742908805503345814874414983610825939017758392636809679296184386196934310604637091225274975768768356285256954192899339738531790029087678494730920638924822242552671853115294879595793295502010332933190830476276386721926077437904989513915947692575572195459666334032775772271046566164746577861368572877348489127683591421527196290760346026338039184932964268830859034838743248743206076196262026214290370731656832548585413704168562466436943261703826796695508657743259680251376470355107669174389658111079510505598682270064884989021076288030185244898518316137229843199713067715197637821329384391338096196062445418854451143063263016789804145458913647737998915167825678439635608376787210000002189433176845252951986369698868618795364750597912677052865593906401604832981465014865418469103297569904638710918881694292037079188182351768576541926158023296296582658259625360482335377720975540905387322992802635062069415271702719988382679737917217708151164357964915304285444922508290853400751748768861884167245170447760798516691496602322523818408390364798970352928556064326751292191276197501333017533003740468735073432864100109225658563451304912835721540910305847086696507937103961726341558275366141754428842752558542937652543049136718377056854866057965212089641012136967972162943971225237699708530915227097593467755164746435197403403779875849887419371279230801055542906787537337174041549950756218476305198699930807953758202923374312344324652808612546950745497463480170634834448647988746926605993073299726267179387667089188828882330576016873090882027205507763445006046740445044719214604264314444985451232965783307764166666565202882050285050166887181260838676899470520827374252407233965451742126760223000044269800742634628534126692301165357867434081454763740138354748740223808358922103601199834647459046404245271646383240301132520361668865247171315128518335110430662350690868475901582959464982801452690749796160825821400077858887431237703151385312026813365959453118407052568852406825022116049421710214190332478265034874460893319864851848034924566545073088436289233243037936956637805944905108397984965734972547573905537711814365865567065652086737417560601248520195773706859958271425799234260391449394183611275036290051665124517756171756949010349681019640396998732061165245055901207952885534479091739922044588199466819123888573962243236773840409390311456623405810751075697634675466711480763249141895345723226972059346215521543770618091020849123599235050025279031187971856140132233618977812324531116636495339550924380171971304199513120582101129691677446955411568865947179870106207134576392888044927675002280002287914831054668846035755073522743168626232963542204105096872907487681086254416057228190202423962684059697882058394795918225371928210517866776473873243789619122032133786332074534451962830894903688478240497230446135360309577525903804763594392416057640536764347077371882570345896595737310738093683650898344777167722332326197860826742905081685606481784108405032841845323429913248194592578014537833357516310061919257006161868928775681256808256599903608807389937617093519383605902540178287841813526162665644656413635640996337992541390404775511688284564171612097487391928219791696078196530210871811270601354893118661052095891090252267029313728022268512751520557813409179132543240891928745648807212898229459895404986587428811936425733355852797400423401995159774980941100073877009413101678188840545415656241127182916259426475521085284239123426779353145976515438659152314199374438035835738160126344689674705653319461815531355471524063318303031546090451371880764447572516478086457096543750935821469901631321641119997702795109349288311977108265286549234984080334712831659161281829261160444235690590990526376482416637444439057567039590199453743818609320199680327205226788883246746463147818650551416515897882459427216774250499651825620457189623629135560545143848804492756028325739937837811359735675511949043519590690764419010816358518770084782316750129448315268927051737945156295875215963755359146516085362303003868950296394009677231302792846509992781120658016773694255187265605531951679371525329521305066840702090022746553013920820828040679072509753083216865618221478247703350670913665770479195849672479510871521670561585844146756574535058134074134400432416352301731472978344768200646189494575340776982468647549873927255066519891272016897995214002327838605542645830998916806729118948923049039812281395623054437318369998997753250227177672620813335586613059207462278140215348248847774204678249462381175851846800197427258823080966477585567331161372111533102775394458537941318619642962220049406911924107112063974106690459632130842769029770711789344741811524992725238140054526316424922079634387612127668631112058528399334917482538076921939410739975774658237632957577765016931317096411581064150952251059771429970348371670680619475132412786210859057260844537044354392980630416531926765050754382518782158996781357343062046033602102951170211907509093931342250367934025485169975710387866101997202406152393712896676435120370698808942726716010012337114741857866669955874745231677342931739268739622248737416466357642760955118782738028945992485023018142687209680645455417698061995442563268640129242391645343126226287523361638747569064563842699286762312768504554252162476664220684488528758282796322351899191303368246419174102591608309063114588647520248821458674421338070013311444148827775456109848553610983249273703780365314938203328754850014833734681093199286876487822347556302248861083595093210495228211795818340351928499756322710272681579042555014649005967032730476259915734667123900442479006284515321661990288458899054010679804347954727118998535149359950681193946509408994605224046374299339368679998139950723059634528062406834394391653294277953221289879263614163303965614323475037600436777978120497483473376915088145009366240239483632073143939522187044888274356291156931543656319277212579258251140931797257608539662965523303912468636020066085343180661429125023277386448699168739189072721508304837123366709236351672380507119975266709701679898869101247170209725301530612405529743596754400902411256386736836518957465975763276600964670442808458440901666774578529801482523078079938526646025550582431052197135384887951009359129369605938152865726263737381955270023618805659809527394000897455511585183835195413140538083216199764736894136733835175395923121185782927115443926544623477533029249440506928246557255726732840801654923476649319905597458434372101326902217408432250389141644320434316092817111197841866103055639944713586914280043224333004998029567935395603127105430836253470683011692984484720892083878938924244609737676701698238285026595993090198272196300829675398841413902889733942957905461351532895225983916148992576756376263626459749113065965618068653985987570804571880625544762038203035853374619265146447280296330201798229545602197333385481226697213113238729973110293247580926683542449396306297086934242221175207534361536475934562874037129710566990754025765499392263875198547605894631013280745329354872564575199999075270658396850679933688128306796068767046508480305617304481282677376714589240157664010121119913367718855893663680797966031367149351708135334046982253681634719123794480372127750274702206211968685871542515348971297908913552570143247746113950796814194163248954627088251037178825360037962846825748871778009495705737512414763012577810436340418378360481504871808682317872056428707653389225325146204678629866494034302940614123602511570560690955149622148773730227975462251239687942206449273589870733705465551695726395897815693590535983721596280209607233348614564945615999195039027476544889130528211172589916670651296723067563342175311365129843725832020322330719182808004131634998278477831276664431744301585466481618707609938075131785130408986945739762361415928704098226007407430840022334200187565097136953478297095647317409495720132928578418029577642265845720435779042467249207628231180499776812599485313843210797516228626495759853271556945493836338612284331360266681042915861568602266698429393519700670298565009031958544147352818532695533621156244664179752883746035824379243718398625214407518248617477041814480458160958049161728297533239708546896042470829775306012245648626103614998139124353099723280436162668301501853467400594048182597244022877661501366604974690639029950595815982755785052095738848950568024857232550263086183734104939626086441243502417434750175890251639353042429249510575433448593012039400288789851788041467389939465629494435695961879287129878329611616838067146164910762425065102058380831021405650143725590998191952248956991320023741614633054309249182266416565366394608029864604638954581372444788705078576090145221640218545188564644949363062856579298018860795887218966684030434351424501533530781608777798908479519212412108688377541109754435122462220014008604908603511738496221785127316561571293762551227328578820905212651249415986212629283521758637078296743632220907007446715633460200526069428828428782913058812909943637130042043810511998970629071150947135259477204406145462381276629764495276916739600867912880819199861165439874369706686005994311169436451076582439169528904857065127629502053507005433106666498779838854973656015365862083506303724445414770719010264863959833746220539977514664444399052686174855987137601491614429325715156357523334593884992018667951192158236613401102911971020359013920146001673335481168718863083252531777933077314805204261856795849914517178218121406977892241935647207315521155636081776924542700517024070064799582707789784340393023512333730405018123678760042671815523883993295393960553938370035410357984435595566862430411997929748429914679888129678877666864833660015000648423106677125543549772566713362445220668532162917450055704868154479303718670289025421543056746948407454965973328162806316060904599016813549778657705374190415171809785818355179927764324079593174882595337353892551768942091145239795030845599259636777510613994927057106400292866708596831040997997993648826161975460948368815616561797384475785663883012138722601332086343187415666142737299777884258356061785040207861017014376765686517205728861808155394352028460200238549719528360537345115401601128619010054757609356936081701513292981870395860364055606021066319243902142376899506089994390467747404133345537256563973381948638280250846882132435833060909856859567467889457066890036132026301509442924146654284306746909416595703210291012211491832955878978600399766581257913379128039052715573068919325002897213519419392332499575152511934575925555592544908078957903191476735810995708382488295716711902754387429753706273691832174011263003601653012580468150688921272319674412202758066301908408226715981675830875125971082269271783925479332816330022320042189745414512260100747410299949594820704370191801856603226853492725252237705307906283638045864216869433927426333589207929974013527921748002276570157815982453786236237916189936757732987668693831410911893129945739656885829640240578514447122606392074139052517722667427912591993347988190763739591305869293713497502341556138548243347069413747844261197028429101292720465822740518471418431910634077156296951825061812746323989071440283110382307440506694922804242082495869447108707652636541025848429456904536060448240592185565131871702824787054022435046776485355390647625009430164897219271180739108332242937159790715415404695791120531357163661440406172920136871532836366121465336013069178730055361157652363526568089468523391044562288042153439239440065524555672650886063500746629272385531654756311413254719891148173877394698542447963177715735200282421393094741393735615391400649812235684920962906823539272662563467988720583851881377344194818084342751838679493539752851737900385509735889496848888669279131746548213175032613121947547459680474444128278305537012228415157729214002440674569716816212614932655867065849685908574571710884060905676515653377792294294198114388595377313576570840167434598521151142865834938869433190790334689280432952366554043094447848301607432404781272065801733296073435925810063168337252734902167715123464196165522407539547231301512670459877065055488781894477358604916131464712805131749402187101917270664653442291978872428307359143341511802148194901289870638520460993904964781728699114694404967079662849460168283198712366436593133464590463700294948312952004948015520580981797497312878332619794043382022407547343353846067987306878093844816832365965603060550852699732880411729568661259653706613480460507469876761173161784115215450373356947897695552248832633977211051386790034707975236658184113715819715124917186698443956678884593412094774753763624686076923100112048000874106468532627259274088429901804944826587809728816933502281611529438827266610666563026385627953202219492819707516417935151076300481993116379497820402866013974773917409465314542688358972796675690688335259044861503121691430139735133271124950710619982167978339336311629345687504271295280169152407909801748544435495413574377043689021644006097616887496214336480482269993852238503726230190290684197594192210667152977471443471064256437296267767319482038123234873882828909285643398015980002291127851537278272332593668436744360537319939427070476394831768797353358716703980864609535589132179639692640021864705434600271443522939800857763292017343477249940401092143501335455292483561129596479073299859257662967840135948238143045360497629675864691881877538053113689093765382092870880239855316698519831671682492969778015211658736469863634885153086547932623575238496790652015584891011725601372050521759177587816260447221656632326291144690757859501388772170939508581118278914685778256952147726347687654317700102581214436686863998606833392288999746392475987415005563105690757403119945017352334128056097217915110422683494078438250325142721371370930694736302175772983537722509684498546000059517394927511733963707431050093686628873049958730715242594694945656121811539832945575423662234737223855864709023789508884617490709819048936103044758435667448960111299901241900820242995908260513840540651503516556475161291010691402685485712277320818041358135815007420492053844583000659120686257444241764616152564532851792831868503995685727219772594014750567883820467156829346637941607911362274230592174061816164226155427959012501415354550767120226749458766987087756928019309908612041031271528841424805770000029550852335913862082402702541681832627155331533841567473452997623818668613049033884200091849927234903484082178272147431590680893923184301844395918237874232303175416918307209381326628866828039617449248658995551292450913253117890912067489485571812441201310360400294470924870388487024680344562709679204012931475945300040966278574722096280264354380870662373401787797187407932726231575775764828439209732525450622066685942090412959381088879948930352882218654395378406411735838012357087149043089019932124998529422843368920287952455942888685718521210959178488936236302055754061627230932720813828883343820093136514997068689163820986624069481253172438916918542279165024167948668404052896569353696912500482908461910651110024720220351450868646160192231882105585779255948911681955098508701262432488507654475969813330680908864865653157980166056081890989564604239425746196493375440806404885748864019610543471463915408998967351279247916574086117010279003904518763945952386714076636792022717212097512812983625629543579635601585659808215965157693078426704132209590096664400309229423223282774596295506005256957422598566982427881334502506972317933015631278047892205899616873355941908096683075280029140372320960633202676317477098594568178490734987942996993736228586380226545124780907124356070140471691341654004031791917182870216076420236965786761049414638552017838285459081185200486209154110544589354984752516029828646517873995668236709661578935375034351985155098168065912062058220566590326892199559731124613090826538337968751213975487084089174441232192951347379731739453010103753569290898708236459946393414590099004812974456211222599450530427880288333094917209634852333390407881075713696462312317523621796916953903682658719575773763980545456829367047302117304724302022727058820887464786344245999643606213792723721108894119655984883901947095637220019132409935577174132545360070943856697387822370155633807857473322571782311642893268398916394628452170381116136789666352398039806188851266760484734718716533480744594721943129818607674193664841864999604065180833407254636204369405084436668401231464191106459296111497191197802064899243390295707111400968520463666495927560686163752990383513544593178147599880249840306145810784897267523644303972013894635915093772276223862829566322284801171370633634735382197987232767465097042566757723392508164548996871242380275009921882106839045399110002105499071113832205929844643622241983202189948855191737049493690816417997127286028997952177434866643773402485368752042623761308395243684982481031941905580944521998184624994576767406410522628257615347163603196015996655813696388709914594957739680276950619890567614836002465037550923440567229202251961940943814131617098290895842984880983728266417237867163947412013994166458039980316887818118074917067522147106851593337684484614146619453616649155826829582343734096180548184881282787830598106518049996856906404009094451554698244097790911154397125583124405606661617527925666822582950020676888598989905661372472526065707240734217894334035995205887572596116320408176936650372773708807559193755684313792718120696404130491919626604090650993250206859593710512320984958247053565904241982038648810500633325204089025051458136452527799709722190850868279067441199811431436621354385430092123932501096487284682908442164183566981014059105159034584912571216512925448938987043600020800065339397412714060007352752892491719926994886801934373906463779809295766947596060547657427822078416270145440687478148460433380560621269481914472976407928298912568766492631190508523176381321389886102788688092696950340362239738691394446953166420237094063868075027124276933858725272951685585224510411954698442126338333367176585788241531548158836569044143683584447836365530633056242070215427947530452289427658070124389883376362524755906244901178453366066283459569368290773421912813359003014123132499600197619185196029476094655700498119154156049022507389781956356437044113069457333658082392972331407281446108565950102316344893521334816712537998174357161223074597206919619868135089294789642528998316684979277738440520893506026835422674954629431468093844432180927224957055995300234334322995902704768254504103071008069358732752208848525147946639814039232920761930719371280151639097336247915235664785897897968844480252744253476009264516720416569990895503101859574395978488362570551591530909504856129179339530083886206781017072921801000280254208988683958283085807697108122347124538775513908060220469565145250908851623689651193158262121755985851220811326901878577955276856035682705748011384886273826773657501456165983520966813403885671193413286051289778641997212469833027346914249780102896249113578951655310077029696912225123901498551787140698449620955938525103071838455522181341317580595584955802317768646506494185527388707221622831735669686074316798834804340419530006892688037137149487655939259044604339846034317090849124511995888719495797733318811758214885382376979151504475319638927537549655162678900272296060397940495512122821578047482951239186872375908775889759775134753079921255054676045742418237970143374606283244757373644300264281311206955426553692968013721522593027684018619007966919123240947586006670557274366544420877118459449989084027231931407820079434372262071536980069909824865902596882802594952991572903988872176935499415024784136529163138655503843761212606239897627401881621864654538830302260203040137478238061322865000527765714417478112020568401156946308809444402964673082397679123683634154162255619674059440538503153479960551435627725987276668844718374998626972032921858302906534439124501486041818061328098153100379832132084794664059466273832459735002485056457898516399323814531556646946834060700744440769627080829434872862954955796904117542134691375067550888881646194192127747443063602497576374343830341890347362723837744791412310960983181245758697183255868542481791835146316418753987068507444027457277894076679982151145648149162689663588455651549339892094806866739778441563576178787311369159824871330619933115866774871236611946567174570083815165325103972391297118834679679395086371974434660572387049584037381185521714633022470254888932844451763238022267682678139482073991186646496925810962597357459799773203734657580311209816649970767208485607071413358015006807684488485106820209770360364759275766285429092096727621147470638482807311707195651646038120030364567229356199492974795253260724927202217320371330743961448787265993377965806807316098923475770635288313712250399542680479019449523136561195373728238937058581964167251949338750207970836288156426809732450119877936129901652749042084089776390601673927283473861126392671564189818118583659087687132721891188110825877286416475591472220933343291694561197138526582982642221026866904681252615908629971716686841290142017598659800488338323216736040324689166806378722132544513872231553121123523985808380017047241902466879849814479591412102816438248336798879920280508662845050536131749284860284727552281173511194137719657419348888965309974770968401826120131849880528076295327449379017201497727216608327277545897400780855517562430717997308467453573951234796783791630046539640160786301664539358110687670767263520637679593642264650449540896839077314331191759746442700851161949763793181869994708308824830867694067756189338707178299866469234321162547677667052308851164473847216983300790232737045325721757160244132314777935976146953841638704811577525078849619567794106580751269658953587865604324537073294428176242271848181946429489185284012280282666887175795232187569100054211335284091655561580441378473732456320920762455611152968288681482560915778121657412684215690308323168669310745434645698465454865889546091343855725215406223133457928853730243247766807729198614937187497390621622691348665638123479161790316281828558992501001672189566347161922653164861023446797061555957999092990830869233032474087039114426614405892152924989828947793652548503897389813953707561678569467514877071225806083027007070001107190269483845016668704779838753242111590153144301410676642488038790166595216259551631821015361867084448570236332737872318900821197267867116126720020282385473301819857231801004864938160922157188187725920718692805545337060993804931196366294518746680586909597094107144008442054344605286762382414351403158582652565103252050187096172549076733329484694618484121369353222409266625115065250497697702681607924653464190484180192895144974178608343526716587209627470580541067233041451294524914978365204316404218091683740594889785078344961261247117335156118083258563126573365754674410147630394029545168218532301219626780983464067530935961328780435399108527867658195553155021259726291165624078216108474770696497674840743121362153916184781574540594814529122168188124568613787269808203824928640682663748055344712914500943916126991911827879015648556815615643334404779127026368772517455589315552724470658239016425488567561261894035948067407944892723982606942066323388813090320595321799832165723763842041380412839472414394277592168916347257819220318480449314373262463936108477321035288127192766772324440004225828716740641880048662629969064747511105816443873787263477957172511860712601869114131352972556436985037854390668231775896648357298842584593102228200465183675161870841152361886118522881967008122863186642731971664798087509395337420280189362987945155921371290718597760596831003589827365166724679021543160740245162485384835432784976695945581986493303174341476126873841971961300024918044096060634326154433310439336401328789668543420152894227066572635680159511491651749593418937804544924095088840916739718211198456308373831530798871359968168921223468394932565675582142402742629522168944834582169021063359522670738435772883190680227878213750909090105155393944343163208043838953684784812780510839521386726058956071532505343205422487614319853490498175176162126652044863917930168678479433968265045723992412550473200511655842562140327470075644334287824681355316551352401887704335233790839607640800365887613332504310716296295337921793078383005487701828089301409285364152113421185451830977022776806724779278406659312132866628206215895236448118524115860734125336885861034628664828752141937854805282871227261525166009328811304448910282186138109312832445339247683424571397966696487901864040678513828175571170468435838246819859513270865709711001953047452958007742262735499643930462989551291578022297665874358755588351660949233777860387088149321742621003985406178940558000136752835905146096926119875179443676772274912330022343492986038070408646431689804568571572159775777323876781779988908497155848297056187819887414276985204021044753774810051674161014791404364059665638758076126940782418966413677430849418037653220476487045646246811069720742216354045441208907033843255564874318785212184177781894201564877442831014669824786823188399206699142508401136941227922948748693269857997429722447462502764168552693978335663975754195585348172963483791194003320085723529850890425683942491370985397809278861767004801132618882336089697886720261498453071641240937659582073996574456223484609110743480671815922668346735522695480604197099285567093195806197614724625527235122594009611503252620158216740058858616900781807451533556552453028073112413487888661128913834692783145998051081109935709495373849140042607981366021856278480227254813283064348543666607051211404799455627667035590205881036042013566871945606285491351076633295494438183685636936001466988991339575437503896217870335578538518637773371603601025708156548529737915897542072064643283742700132742297760256056358996699413163142182394807610608439512010773983825152333301049973120311486666808513824312795960710957575801405306691602470594918631164220919398954638790148114736362256946246646439387264655011029423754985795035187844096922555245766935650333745370038142823975085487682427813757146694642403432132831018391321965967022917087151801772480747635469382528887350676900122572361978850285711285152675904843689679223912225522568295974114041534358297203731421774726296832705754725270009101278742364404963844463555576274201842812708484409948768637340206660039181669637751314945535407238006519997039348756239477092639308552586750792001226347669370878280683789475268988504669272490292226006245572032766885943972048722773189674915455755699026422405321158150853624162734271954355776581630704543515330318193533472885071680902095254774968528234342411007229284458495156943207941704490257699218667666779007725111710569710012691191545873573705300809651315389876474101983804981279238540890690412296243565223217857648228927136056832919958549791912732966951578257913302773011622976971177430885531823213617919762005284664239244313147883856704638425103004263095469886377699726638038939863604257171680508595636940297435754358005015104425061031641461877065980804081898467779172408476194997671480386434237209349188466958216077117454330344595302915351251494795001800928675995156244772114693744538173117749648372876119797959425579961822172375906340735772645419841248095365552672396114125048509017002006791742434091954947172101036009887383658225515410874626090587546452562033627327491497389667565295527644392496632298803496659120643792951460930244091640520198586974301979080717556846258207587382456699996632659562475866294445295639988228649861613495564559768386140324278452844716806096462591829428771218579617564052192007196239584971119494796591503940444079742686954529691533464571433600172465045147181188724674919353876550832511884506638813068060789698219226302805289382499860575202265690480004449061512745069044248088176620559223733127657386832085459519269986389501020419918927952111198842413967166585072062614520100536097507262248216068333928705521135482618911998265178792936340900942141315924339301606881773226053511283261597991572059638993450574874436009655345832609047993351763830219782429705776342985603872740566953220308427688129408130466201610988152690172732151453992346897283420642343917271419045999081920697873587811732961733933802655383430156767363830262096150715022572578687533016320513376506197345314492608374867841547971674645078833828995795476636851214447127109714044085043315684504461408380955487563430892347920811941032812870302305133236261527524631908012171152688394058825891047717857337043056184454556399318198782531939350204341632616511213504605572058517749020699450582652104502337903167707542478393676628717049292608783358364235709991585801220065467977522381113867455299847536936477429225801127853738104686795520920947916421259548418891182141011884603017942623796520815261270674433856109146765264290286944657398099546569479744518934986806150124474914490304447242408302992546432375394661299445495105939655057084747285062215248777709039149033237740707911867149341246001780379905060071609269836136614452303741765494127349737755865618437248233516033806523303684556284755925085653597023077640137047827391221036222513678689696379459108938086385406117234815249109339623164584337064848240441620462082810790647804669980165538709169643918151607077608937371580719861854820613221583289326111176836409571070662550613967378913317263025095691323262465142861714428384822466879029231316208695927726795987844387582773246019374811251931437228759114658066568777552430315001107554578797377305914147984740109378474050180884709192512497800920962840022919532326339879802653975294479082981340032064592488261742851806796236343247292127845617740075980782406961560757243087887330360817245118842921710064995613404839537460634374952181703239151855016535768853416901354669478039067993529080745251021588634533538877575019013147776931153714850761521160627408234116588678235179836900258639848364023694872333008303544538159698844171497945463585157051134640291599866900550649810897446880850586179356341425780312687151932249431545146678509874521748257428392402308156520974944918070880456020888502679244790509407099843787013298941977627133508506220227943456882925663540903162584787558402640096123605232652390810925442751990098617517968666044723394502763073025081412323721677690417183244548671987123002143498132944321876620805593005481235694686468713988336427411563462248404979408178504363321407595676556584564609368203741595531405366749965848299174356175067317130648181296544081619239050281007269955437787163805206741164926708467873254925576672158323802064227821779530427032206657463248873110555309142565000021621939628214776646951905024318476346868743482381357898985778120106736496707978135846305300566091180136391946292513079766981013124657994314838717175616024740990128142069845878518702130225656769110065812509024799723645663184970962777897964394496407702701422450730230465581770575440115049868975956675080796903867361766845232095544223431531689648942479511413372280620996412738394855652205427715690505439172395102430367134585088578086674142122739282698031116630690571327887448090320287553762873910479679658436104292632666575872598524183215403639442480017247834944837966319621122687147331267489787242175020623039510810633179272582563037234043898077737709900753930051831176934861300578376653034620350055825861893137490080357108351762309753950793728195331309547968162890310358589319600275246403624229834392936150356889042656285585328585422559335061002588573296280605102490463229620221102783205275107581576607770482661359251746031485228387897643348757288158099275039595731614653876996824743711790978096484287076963668112168828964139444282298450365770260592359911154404424956974469318854099936059462639157571129946974388836119313803046690891147482068510772609488331490576829071308893681912166531114670252022439996226058751162987797670068731231703023019544300728313500091136170238645029472141607067722810885921884452562238111028859603124887688446610140779793682963557735526319831333827594788348786387591495103640762615906715118735693177870052073215732340347760429789161280731515925293824507160946397541273318155710739816789440270347384472991413143264155305763921495348100014694488367397670731982831579416939512609647967498550183783885551570796161121302684119213907733063624380375981159142713189350178518535281563322748148544294508402800325462724570206331365825365490694481575484555766362801372436832066467784149997822385543735310746686121152161095492016830207591815310302087078165905366130576249001953364579026283796705254352219606410166048844023221754774957653972743157850743842722119287881615287639443940081200958069538096781778541994898047670146504055252260078361797364021901805836505098078257319971302728968590130421113463910662187321132251321218747784442464353235114663981369169842251379464498769410867366286007398258486207617074579877765415581505816782783514569433562216368890990753638497900452382712934392615038804958479867427008917321215541452851341358333287989287987423724206267984617855641571514635244384831118455548351903194234900538567197750350334394995937113034124588680299429794158563286698421038402565884314639030741068730880505202185667678078766744101924484090107850704626366772314349329808993184797675533441493812675462283961217351865729087964648214680457837500329814067195717474758617765378885413623633165178561332191508001581207668329430897889990309536589793419487816204986854865477278124430941301813665448689280280906912189229136149444812860477710713437628939212922589818860015096382652535367836504544661957278207372770379904633437197041579733690669019342651440226319324552511107864041378287568216860813827406773755408498891164694353940424539701135697664528839583203137564615103640485541395031290461622151934519859659125207534078095586717515706828336778837986298469876827563687520816375598455428419075318271909084635887819035143262464841412984616735225880813850736263085424675821825212759188393290249408253935794484463936777888056169043325027312333909409826974797548172150599122916122710898956379512859156924529347687837455832365663852394835065871595682546361767834361354335397201301845238550885561369456838202013829068112576427274656556300727317348322934799653368017773657049884181730630097524818972950023958162173657987540860878716561851054330226123955315354890285852438366864005365079298497427962259283668233602975866723479902646207304117161309868650363344411034978299922084872956892672632091230997649910580635357520016554011695192164423790876791423822404110487342075899568634671667770330916823303862449334830909480124124417791025071559922889398941437804716422154503058796910300328343190092423801437344343811823904626533525035748519910541658812257946319006074250601658778716637831707551331958294805397633434788776817767474501656482010844593980392389014653771076337403059952702082686859137447689858993622017321816160276751301981809732560003211603303732158422084375045946995508950944409282330559945804428551204532789351887549998157051259229598112739813805630706215898083070120590543241433876794518428065811596318830600082472851836764104903874616832655463676473935183467008781200573670137870269523040642782736600996695357810404625630071533774322230564479662209668094738485379663905335531465346402244112433766570749912893657071058256320661116365917414714468680290926492789988934948286859866034458518315869813069709131176365078868315866188584704390948619228221025550458839781023684355278410425554838992335849708703534130376424201527894609361698961114780713212561560776964890445464552469816368183627854146140413884180085358130671501273623321109114653984395977461560926979146935156950984232530857289013975213950293023058512957740994534608500810382533990049831013849537291184444228681995336469398767541716276556230468444305850022228273118705106794032813834796879468280564194194780350153664993736008857251211568639541853254258270876820218998913686452670124943560036297982102661699062200281427787956684159767495863201146989557556071159372016180751448511574511435844231831845684731461815721637757571254848420261820539957667461382548736270473013075848045562019448972677636040856733013026093294802996912570890204730781690482139036331755392796811919912951180138748345283272178055252287483495233296958454033166007889525201782875669064168103598917515291263521617176729897408353761885072093265198308617622980019750486182960735315303927556717188737017212457118205314896090212417819228848970691526886284592984903264768521649810174745450866955515674344368135620638795686569725441197919855135000895123254083380339994098003681538014477907553014086153684052088172907488279625921623642973996571239087278704287491919360311798221434458236976496396921445865866548305032266400581653448028111903939393372274276717704931239207384797410815179819617539051981028012994802825240347704526273368656509117700798582213618908920262943685474567690777806514519643844624801039774676161963151379534316058288347748432179157458057769231333041271303404580613245104784381029424121771516352512023243245998567024955318243699079408365632562322348827434578861923262685901957884633628031108607048582699994027937605835733070728317295178156903610889601430526023430353322789930026438085355958999969104130042969587813300976964031394426684738433267913221778183776453646336285224898566592929819742923929005428598934085003174308123294526005788508171786995940087460765972512231875632425658911008062742727052824496806153231091363482642021257901051168147600064638368113399406030562201769193730851226956957148200946088246027696785024760065001532665678069459410358841724513001605824629555908171338268026871148500293356664481167655954593199294951132998748661032997650600442328223062049831085539530046253906346029926554470206509669757648157700016261664919545614295869250448565296235370580972432404468158131850307523829585202305375180911539854278858454581175885052371779655694072677661212874255888941695698895599903680886487228973738432254051712922626013121355728242512495712680019320136073933152816166566765485811704039463730779423201750739633961930664435808767381011232286921103092627574166419394369851839536553723687321202417552709411629980819819371208955944306036711711105370342402938570434248712248656158513227118438880018134615534560403506043498438907666341565475244816844384636785194354762540959723468208684260517792121016313413656240872206932652116827883350763960716088510075408613340104945056999712634433206085523959879243832013418208919773627206023104486368319279489418961824673349542982821341957641424177839351594744991720609654943887156695586512722268072090500138726685578734440742548680713445288748821390569832654665105499244889520913288212526355266436011188516793202532195573363873165253515644953387048868785959141189063273227871924227536719290863310283516594599378972039248120410539656005798536200630407435146099237063756159268907309003026454300130636038783250345597880319924060986599627453567592645698013867482906890126510572151529662031650978639664965611276972826077707813679245141907078419124364021983644517332461858929857050844583144850048009434325419069414292605458918579630385590218286194524294136320980978213380179181141489560855426128035562439148117771727260955446381740737779989381874182433735350653850773017335442515873457116116047042213020141132925550196987944994328750445014872941572084966180243599045815610918526514518592035140038345008390530950551394417857982411361438984698479139304208739659250022587048403051292826158480860850889119482959441020499095488991786136200888137011991860200093104728630880585832292558837693654761565851302595700517971260228576568814681839394652531781429101776089921277913675039735921800914864818952947542915319131697236071566560234381477949181679313972898841510233119232010290869860767112401951500886564432500401280438697830989443505315635217876052505388503197886999553461644825130411291411227414414790760875389062953977160479024665067032854845871781550791351567454492046748985521947365180057335773223480862827751674188131485912373723285054424949751426043238737975511954996538209742962029791306588141612481518170810095053623834192797821444565086412961326650120273929428446503418347880236889177128394694028144379160664833147907526204944883308191206432539596985019435550218015461234024918694524945890636329868150759974613874355930834854945908102206824562025452116585720309757413007753022363889199319876976797326241473840607118699196059215548191262780896483404728485266511390574757676609385840107691007534181678474762043664765761908400127354605279133876961270444498374699571457745014898705952281534832861809152274991947851641156188654282158654940747155012553239829218775747050633428578726204289320162373720686853525713475366707611908557772223624163841111638233801143197649549490399785628480089220370612169946543692665453053594627343791675964819538293745070851733519804260794354582607062763209081397627370992713648619566440475108090252723680769645790932486831261940897126113893087970367455767269440275377937525598778583691698056829072574822569059456488484525577564573257374625996607230699591970025704202690685504262068748290067688351215897219147232415747778997307984097307621964974030776313269239836123595917890587886497032248167949008578152528680345482058551432892044912557508428710874119283362104425571782364433216799392510510260503431091123447576145919400955277538153974248330590897367101820478521679409279767618861118455112085637014958297758980231666284786229384536880743816506920933742227715116685237611403406148719961976574294163579272275321719361953379488123470257067493548362477167916165693171148566671303088790593554378814624896140199308964990840810152259666345811479791791164876997264359720466649258040330920562740433850541053910655693740469774133235318802755332735257844791327214600975055287418339451084508130559429422096501712088059790552514307159652579606282523064571101236873835654651140490093914417715151054925585212782947962748997741159015401532387590673152834443661519727962116365143477159776967884059571955437456496590075095321253559920520611013029279196400294604913243054036649624156058432309281738958009658098896958717474578134592387903638426350536184073735496273988563413678494093761888881259922844058863475660071159375139136254691317591068348120866395694761438474695549538237410834121080770902602374152600652946628550537770733296303823649003338255173397051534394255328927465331978096455265266596167295104444739531063888624157833933128003450921398655254405819883048457123357297458260137526252412948528172675904422987783101137499874897945662310132687919541748522036587097700529049054428838231853600134858858501120815251723921733618425905914296333207456384651046860364464272777381938743324500711925035743658778619835436489189303774866503894835156331393493513473330188130894923681825115755682054763617226019587563303115877703780502347109514077496432212619722707013300219643405794822149873056295818210911715804864845311513893104605418062703275582663277478564806776787455188362183162883472950694352144654832035467705363561656343158646128452473073394270085742591688292340437467548527296962616460208405347179453088630813764820775946188355268534280305040900151187013055131422013179715138599873343318050450440197712398119290233389705248402208820277803933393226718010604503185406960863224926654342460453678997262487408426165695086639630491938700907876561356671911159121216022405083795218885773267253920481032166362164049600563175079105155924188815741940268229421565885681252183035564998767880078898060597843545352722706051421044783842090954634292696120417175646015785186885080872298187524401438983376579729067311572204023791516532688652533043917017797274030227154218509575347385066620815007941550880567894206784122496357631690514606911545986619352130355729147853995400340773667068728041668277766589149210740730460567281393887153808205768086597802670383605019562713012389736431113193832543050599239514369735343332067911098353323988182864416578923614460075357588303413689580793963197214823407679662026232066872226585876509747399151252257776138082176729393571284124076581849776515930094192356208475869000908756856567446382224031690895411365376150808054620213112290116291065087468659423823446484885650683440746341530918991701872032878415373073688728007812381785088467035208739660628036561049133450781228719485316349475313210785098361178158978981758180754248062126952782252101499707970451503923243765556484823588727483809313063742614735929734795839766666803943917613798990972040753130970568340805381765328749882981524494420491254760248283953787096686480064662332949439652523225007171700298460803471535279195883953549270734187747045555524773212862404644637144217664919387325355214888797233107897072875519587550084303603757868378581323392085819497816644769467591456885066738388680294557958073773270999800970350694047989274355779225561232862941517342828063273092539954361840307568694392000021902513712346142372155852848922668002334414833223393578003985787541830801891052824830465981664044418112518206755106543567185354123785168453590416036920181807001101739583912787588573292673400270947538390400810562195478416750279467598973307077280142974741007674769997528558172097275853066830194205892838303243115889900048547422486488129633807428521947484980849656310262464673305887860592537267375938226630918495496217642511139241899971675363142114594286722543092685730718588706134950143169494440017443195053972134785535417800567722132095800020276262511492358923854702467630212882133620114380952254860475981153707770931042923789915263753931465034925975562317839264603476330761229713439815509175625414843634479564526349000651421124360162110211295161793889046749139323653309400555115488763864252778767042366721040716054059205727093217869447061607589792932370749492340207404427222872036826658344587619919396399324272681767981070598582716395742269710842066527089550201034473473342957488479616217125881006496201291608036572906019660542939260955416583808997117853640117433144994974667997479335524302878934988559013553705935483457567311428803960581716206429163588412686355591354204061632988015306852368280066352258093581382730127271853810716568473954861060581941488116172411990087524926449003693296400476463161520996925574926801283568448916746763220252653314934512828087329573861016801252761992352980003616652056334559108186129967878146230088218788373372113260158530775058861834438117432030640166830942158585809457194463255667840799443773551255837861984169457894453231258091239409764586360353782952861202750725802256781498636627124057462346779389903027103173106595681689551202702723667724879822661802158329689017759473535769801625067066182561784324816381107931586991620907262896346660883487612397493744858496239786402752757493042214635787799759983197634074118714749682838378899673282734803537029367517117999879287475008747143389419373778626765023096722379439064483186233540807169666684942571544934400281460313846703411135991497760673158862318158644012787422285764285516836118984380940414740790208516491639729316708950380082723082065676285839534350542513723778608767455911260946364399814532194469725478808810298850422472930930581095168362916478061426715888438734907170262831772596409415812704357741518461971206970270189820735866412183191469915611513105709111722026373458532880077729575005804940219918474939336252080762325129868769960237751696968941108292049560976536823650102137988495501682134309403413129601458309586339849036248816596962201698112056882181238535984369557721269678490832653172005964247470793622094481789489239608783777761071582658580677717633059279025962941688302925933720239212716144823908018540952319690245233091221147618168305167012276698235125862345786738545538940824084944274991843763802034803477408865130664335283552068567320761019025354789157681526441802708204820599997256746641931842143533014862655323130585262383022014673703426930468784642647961702670137211018128084037102011009990971555452439284946629272053876528362647282481131139223476052360438788091966786302556216133579262527586390479863759281753970471378286924187477129112196647706393149099327864929170193089338646714553870967672572054154030513340578141928079535323678177803307959077437026741805824808619263379207100848391104021843199333622651948248449133084407847963766121840346939248362784731506436775513981135686314656603029527894679999113215111960886955516265280876627120615432818865838775980396669638908446335789017484397488691086467963852165142361329818500489672125644618306906495433725463592631028590375849913720440082780390739421594930855567028911373668402063084810648122010311075403480352090202387778192219488125470535047272074865870635239352079262408641980597716555636371416647504990174230830210375046330655632397795174305290753082780966143381013877543879022312189543564118287216923597756094157009921124307637042002542035831866142780320438211518457828937696451771070938820510145877338279893088997117007820247488156537015500209508450837612151223430993182332335801181944812419074229971878692943462325333307031706124789702336261112383283449819802818705767084782740538328782386209020263173674775147748229146295334716135878211015781449342073046407195355796013250435562776837353326127387490737626287169425869310186429921202741305951185615716136927908750718894536054113026577138354619841895642080775540155646984914199620769734404385014179115146927233681470389393696603092243862921741015051770827398984462964992621439087281750036881136617928395967481829655672975817393439584804465382531096456485499637190813779829368648442371523109756417160241104405718884770872216193931805218958694724238659799894609378715222656073977463917294348704375310178906999975597451880963991421666997850677131578645528091759766206383019629465670526030689681135660040536343694873304671038596021717434347895788964400436025643632689659986782488481111621646526759992710204870370524949645088057620798873253041089522961337290823119043911488418205314442527888040367199661921503233619655510892146434190824314404869952206373670644817060017793830170632951429341403452130659776934359544425161958823389904123784338908325106174975346462302036458088033313814221022605276940361313700110242639552045081890888596685511306526538954834318837770262713756244925290293101584078671012027516496839376640383178937794703201995109419931938270021745646914667575091820371079097042502477800200512453436500019876683625099670560614417381322116568338356179912147519636694358409128680456778707915410124060890977042655033590334152105709823307987073045476506637952101551950839408109960677642917008095542265084000054685190191001019561185886311721917569951923478241561352938558757192441534000834159938297689457410452778595781967357261408878469965627258755529972862758887154618968898923681289278823573869697559913433273889776946957382051672832347286909233906015694951748516296601010651181834293573119140033758937565421469399321134785184191741923788391790610764670662808250689519482572217291375086468437499685255975739088470606440264412248073461972865564107096243992810329834825488429474356933006409789632966022032314194152930361714229302914820511790696728089528011681918728393491981291728387702805626074904529755986275757639368287758443921725852819865702444528907016232826576980067129413257542532379859688845202294988681889969302264728059834896398017149920754439026411961764629456739329315087444068814143814878195508116209492940475164499679679462485554730450609210627304092376921796794107619887083693570712615180432060320870520801789962294248459933197003838818404935979600636611743632703217020258966939612617802693059826969682744456496676973802216599125086087204409972390320608074734360593604395754129536183937914725975140558771621206953244359732657521418190313453655318333066503783936697578757261851937793966859378099820003344922169964850518141194304211314257576367313280857492580346759162089603645370182330881010485960722913096315996418528918594547284021937563413745596848719723767574285071674895639098644299946748814477431735527542125082976281827994225122732211023783436389833920097814525396846757348671013360407377531948541790294980968236159607688503288026998652959229513372359138169229454718484294823896900029660707400696418738202684530831091153399486295111531426177200718805651557948253230238247760553213982260891699131833337377849579799842297649750511826339259940884304286265231653724127313944810879261516780501249735502693252651852582187120813417297179119801724988634043591551524535649496022656503463705903692849869288217446889003543226322779318034602036746481058998738104657161123261102565064262864524981260232451635619560542824599514346151469935002811896742923377615261767163542018555449271506938137728654646562341625185350985067785531220259083217204749571302634310870446349253281468561345028890190749841362511467529267405648172468239858930184714407187622567938595348428781793431396054241649234604741071894032024919853970334410450013593298362863167657383758477557143600517318483461172800525960054984242983620757704880888474171797913881067270937057706377693326903796957083154400755926374165339761261387472457645713902626437669898368213709019818741288027415510060952499151587502732431595289735203283001352481310629078247458505658051702040368670094922882875745712861233143607867506415723582835730958741992728711856967141775387990318617940728572914934888023495761387965701689025063990276815203585055433737530470888206293039158447652905347763890232134074367215524775340109402977629497532547496258803632670778819863542160719923164674667873375227193431981492306794025122136231325732143437852337604719365704601431193968602104478585743203005897707956970889053111365304863733965206292642531394403805702957279308076467295785755092248294809514095071019661652967277905746035818032057315444089905870341822199398210430808448044561045296364961622816969058118148812149154052142127930378007712930613654212338058529913849453733602629157565482659810954929542507661819099260154875522120080648322712860148820827408572708399295317585089143767474772471095342142347764175475319682047795571608153567553366551062792093818598378581821285569486744688561754312790115440356090735616387178927062516669980282345580763665800983154504455874651327353445889659242285710904664097917946627413221682693460408138771874449890271699955811927528782268185835100488869743296389609325274436293446659758710084938826481057667284168581777428674869224309578418054289532257275207210635300608821403050830177167746496952804179416401982004978721533790458191899740793288101403505289786144846693272845670997238191423640619526692566692734965276089849801136775949623191502966810522281156366240302846375773568347469018595228909595062568206157559338584467137923959863133340414545830998724694605094138339595110117719601981211693558997718306481431335087638128494392169783264451547612048301444501988051386478621275604042402540986149239705315665524362094734542041101969971207715298720191825756767867067135683667618175884827304285228985168340567888553977590420176140282973785299783287267490117875187692732739787953097547670593450685035848131319787908246492514083629266184851065119646957145478784674376187375467321328357182604554181350296379699756690624483036070581097816110406212221815478133166621086771233434335171026590204636279996111296573238208944185797539288977372255725447004615747619294153051232288268257848766717009710387469331017234125137625005940329679748592249424759381283199216172026858792123136752420591251050866247743111287920368229772252230411261269803628370262105644338119908639313103990806036914907165186094521853805196117643624116726326919653773447760224616342498947988821737412021120641680136874492182406425619729121965889093701769147127622425585730675726878498128425629032648827329123735346549719589563974491329676866644893096727077106251519147910712575532945700909368306313795306579673324465113977482921411379392875246039925781772600434698868793256603783088122995275383266979928915798639341701739196758190552386522236052538787791599745814171303304252060534280742072348209744624006071737280093788948180823601494164604928285383896099483119601206506601143743872437616685082745272237752887565734098004669868426779282556197519221918932922981949087859067701069154111880159690219585478799421102417116242916208565600331636034736491098478339368942213487012809895923590086187886771163934891296233164600094077137644696282456201680432926443829198854058433493717936798501559263982334477100564328404012076304949872622094626323223300392915154627015073085375027319870922412449440405007790239847022130350019671467125254163558479421208772815014485427406409023719677721569891800817216414714106651787646221132998500732273851703183070778436063527589123801773397029420646842671604418599499149108899224821675121954925099349687483886442796026951036031559803385190504291068571230339256232206291159431530472404020473062672735696785484772630681421495033148668322678444812936700063754102781944218049614327376285512838613141073905851421708729441563709637538681738884088380535322540864646449317451781608753827385017608559244590945188050921914109848130073940747462843212896201566094154701109289834439271239630758803468841988821400193690118920761537898363511907671034557417518135619049253923563224427316957803201870415678595801276782034363095758253712763215711524054053665835602994587694483187068535390636750423602117831905663658597303386769695938996015715396829647811090682985331189428649490196489752416880198384423313916587769132453641187902028983636558181498682904028898928874853700769438992405017085646701809907821914540701129535862865909516332575199865566950970742731656678728372255151328686623653749586980810868878492936267638872787916019467542555916747776569839642978458263820284568494231511590449459265479715696333578452173415613734877907447419555393814166108148576852422540879910188533934185569929972227582308394220024204568852016963197418221626826500174710501791542844691011234190382493353851654023099019180421005951960936294160900906866980892073269860326147089769962067611068966501281210627739180261264251156635917013449145948496552520611036688610717909287192107598169712964741539327209836450997832049320054083069163567829635345678307260436132218412396474520252733646256071500354389711588888201430130717296735328340790896808499315542590552506491521219291427156265231454533309595216848018305724716933356452851625578984563075427310190488172489085385689375544778786495653940238879515353801286421267939726203572428256478866050190317309764226895913230166903042838602329603799311560851019700874950359594593534676286755076471258562565127980603364565277292630515987757943777441693295893296106665427250322796337690471971679889888799553573721743769698624442025171817631423432706970027395920477951167641607601287381748766737322331012646487999214646204506100649839112145605517439985819673381792162109726209826071156303437011213447392902984025307798002070941116466733793539864424360676756601800483630036010012027623210946376347221511294121596885317741103488186388658600649047370946196982199286533717646370108662580077138299306278493831712210842437123659021198824523594934783078894178263505232983431184054989217239317770509721871475792799467250655197827921577007889319448904327866445829507236716006809664810666840266069509892724048449426175830141750367603170325445425393730244594168722124706927618296355527760773765509608736580822279820095851904028922834527862469522468114728280805895734454689165076174872095143598790696106190576388961574480318910401145584361914049911086529673228183030549623096556957953593576926042660936408299557037721410141555657953755031545969269932540045660096501842619007208090566403177910876165471933613291195616410463077457788602799517739584870015305166494833240173858231004802111772799210774304808474072181461242184879100225885041073025107545889602929083634314424945458746489036058359663165463829888650024735510761625346829041471173532747144898357565048957451629138495620311041957448081715830750334992905898277566848833422850780474752573914993523859869202344399764868881469186772492925048006510830567601283137629989097580215169303538643632565170073593733730503297829097930593769367375134236676756635335968860865405820420342719720634314556105910040444867590264713915149459969079074136612563425477510139256548002805252425185113035098022723138746813159435204969912619614974998106526706762116195963542626003706112438334825487281492168317273643070151289296017005069589903877479038196594484160069403613758710749073978106009425575042175301953711770946926653343220233576672444390419610155006183137153557650425860029460562648029244362000398609243859148602295458397285977722417966572285586556169457736039289457460785617384423487408375486415800102122260354705883267396199659421988402614695147431530177968286531737479950645625823763027281878949549271081482506439047200740381199460159006725269250998235693912510705684075698792658926687361179349050355761328405235941905798031148065765227611811442609128304338686387481450528768841855253697277527884355177942097469925206840660629857897040492665362813188946980640601101319618826066078692263219828063340667107838420291225080014517260128851646576369477158223671522837738729330812651890262195956117046580407964745141111820809359984199162772779694308340506543585505209380533875529693313761692116949651155694734786012613469968237392934437632831042372931427419541916602361277215858171171322224623478425421769355645371126570995320836934199183075180311702567406922636013292113290540544824712600634754991210504315644238919552704787690683314873978323825754004727084726715332021254860279987550814447845565640494811392535627286359717926735231140136805904747561652038069577428886750829622399922747433865092707616485807112057706567006135148886036151609523210217407486244861487302928272526083592248001275741398844952256600498971165348571671785516007851522672432558058811281665310909237405200727973486282444105906643889734772715826471396130635940745993386923787236023671254010915900203540198066336864005918639932339553415268897213832325687250162627916344081876010964809348833681819030354002318117578545318702558566724144491379822960157194750500095268347547724669198842657493092787383325884444718632963995127649958300310008049413613326544817451852451099567960666757419464907253380185865183716561718414914961737742269968518621651431665927495287417987015356873816493447862588053431751412589685474907796336268888983516476596030655734434922306619835752160568145507812494350224088716395398384671674614051392517581869521398538673919929077952406837554972350522913845416303058768267899426871339793876445104543040899680868430671192479511101837712383845788926737876367504329089049318355457751892960604143089347853365120536502532768291765766655203712038446888150538784089627420167346131300133419734705616011239675325207670600655013187758906754711498749312942677305712940485452155576128174050732865266745589484541320823888998278239582852087896264932755267732422997774465518875276267091865374045042919378673348904864233995627356961186038916643225072382424929396797458258626614679647945497916308804053115458059066718935901615251249221018776024136770375456011602028976448323538300600488164833617530341864114247574215690014072580110279595962831983759712663929568329819145865853397166146167278894215740714991243137806922582478562988514647784378617508496937836383748700646436903069535564678334440220740628865509476461695535565195371506660541599260724248481422533464053717287368307426461244825059056332077298205658130905084585083662708116768781234083784018326794569725556751459607502222688722606188886574565004747271870510527505433405083417343315390069156463869362104144824388697633123638613193111025109886290628705122166407412661963791227023645192732259556427165245001096670804888792246970570362438124666614302815299256437617220088957697961270413191072058652360879960951456490734453962804785747044156487567249600949354038920761357767202559977474144257060147867018722642523829880854198416260538166643938017875725980297202705544991852041478622300368035137026132651166304439293073417034515428064828221945528357148399890212326479769966558827638116470297048427465971349430533248362813674380500844903231888738769918517262152976583616726616542738799117523400716745703106909404649190378841282470197643741676920717953345339165277354535045218050378691748410400462375145488508981145408626583005159649904719511409920846757971178032717706259868310168382490556884640640414743422883746714902614912956780629157496304958866133043474761098480900471429122214822351330452777934868175132295398498170337960624105088529361068605827933900338435159590742565740282345539093292479643773353296353304100455633246329274284012348453314843222276936962892301140549559073612931955224180290982187926976546173058995055635811005597697825898376828626338231748916594672880424498775072241605828870030873630690499521526786110925789507155450721845777143175673576330599484820263062988750994376075821234559739702051071764248159119997934046169435717760496054355863944628371312972767938891352146538213527639539956921349114123122238453543880462704665550890494703298713545245246037294603255508511463674731428866002382846468252773451604860133855179672010148611096462916403413534585178255295688671644558236651236835907855336422941242685254417464966997421997611610817362294125912879622668018481611619840508302963803273489872927904871376263664105439552540170134289173715020401630883516781815827335119414727309857955937082817732844321837673847294576371927530877964560920958455107347328428590145974412569892935909912703160403166194396444036843027773715117263502544057929104870858595456083052154975148759317900798101560201484945837381756088645783353080944187349558207061826356708507781600533037783972066192414284846825779657318575025898208058309388547287167423592461032023024859228720817418846932250856159557027431505889241094259898779736929047880371692662490111819454860593601845798750499422086799483333347896971691073808229138912309352885457869245108934760541204726693458022327729492263315942741490698085118420720783865598165627735850342258269002237774045464351670814341179195848119929160478783650804253317668520247656749789883783127828831040561801281659401471489580740987340152171959970797053531379526003752921414010914712296646521939803553701872864937099342488969876154501672439966727043791159981189599901261500420894675887817912647461758001747115705010474082247411500067101132364542174228938380048945940815738991830760365961423981840332434832039624928130565446840931923588909392787580072016185501927875979460452033714086021179475347233264955781050540425234239219994632508708278714896364255973240079906684370571085411461161340245650261490234595416583351336475364073927290422277508071679067775290921576452231722058868857623017801755385833823459319823836219686165969308720396214189868993488116793027051632232642583400741481580322091144483367558398800300377418776528391729427935914079479980694410500032717706166009261561314593668997054855165340273424789242106797917644970080964695233804730736526005947064373533663170037701835783680367943322114801791230150244835921316480304300724156628451563484802479485596463577048946676242921530535864137679344510163448545015466716761491566045064048388010074057950236473088248369872761926805534579431920518563839578887503902728243356008077182595565143148689160906023021271928523181264525275498581610043372951475020775714070705597988595413162702335085326423054706617703407416606718289895007074936546294295807585895672133366525810532427769920948810516636212446807630202777271532553774094357910931744842868200168439409038246827772199283738283632252035877927671041607162434122954690860611808252395929799564137820296075859675216928557455613049409531343258074555577219377718749033204190433443769337070866076041548658416400856827122939989914171143400632913975205290120756710542325151119868366955078100095709332445243469310659554354171823365417790696653891261622887441300462132939113802195745773211451211184579136261158606888454569145276925185320460854029370824061481368843043818592236307178321066782514832187340797089219354696737935557251306654960692925810047083294282165886979263239682799995362037455987458572813388333735307554656267241975462852939159957149143125909285939084628675447813680921484718146632124272525632769857155841513237964996929740893306445830059936077580469635492012049197957993947870513860289615312327328024038450210115353811392907180409252920227896330106159854599819351796730966104804415904879512486065948281677651138038897620669378984577414773850852676231296178017339207027642942029052997967128796769574299524393143482072107824577936317938616915315105182368351953124028281272249548409636859652924492006310335342402178889171870853922215550734534654099486410425195016963331142814777182147414871848465490396875240368948190440140401480097117525930857277915514506204737238176031677226680952972080572130917670310140575459950818422460671570925140053380628298158516456773481984360706869526078087643621289627089597875586356945440660402152618368094628167718180929201036848698456452248440875443790321380416597326840058822469603786614832664724893727135794912547911856503995310128053774014270863082958909452333286901973467341627809435034013817066274099313244550363412793042968395580111917519600778790811171734851798810890731074612331863719300885709781013590736263122714791506092189830368970176768903957054705915989309976495453366364288251743922566473156659736098496235404208929004955935428411205345108709933796810528044478144900878536215457184736665514484510923540132866262385226810785524806137508940365577303018060571361426295097447538491896663320124011768120019616145890814805500701705494302711648754668594024961015275283902778351834658111158529928301645486753086884940705908583148881052401917323444523608217460450937465847020509889574937188763467151346151911301072079681094166488185271472990377070469953660481075658914274971352681530650777543536515101653800050315934869001892326539325083851124803067401834602437205943103416492362777923010958075103909971177348497728763925614149310161846095463759022399722659163349998149178418055117775975039362150994494236379670445020023495212177112027043786454995668064172303712910306242447412890089936961031953692374753789060867382321144428135990065621900573641638408530717076862640090361827734478002400870463125023429472268560636174857594398526116577309721801963708834025315887065982580669859002276572391419866850548234937435635322515748292709640455967609784036324732341373159302788314930107034104101136451256221434474519624421073759700556217703692145226933731041259523831509318307934674819078788693046573282137684533982162916783740896741591940910297168226616542831067921303693645927285711452685520465225248297766163751593245922576813063381461396337752809154174430294968501256520670784784105862867223749554983062232312692524965430283222386139026911462170547271219859252324078800057987753641785651543694672329230201971061571446585041382783752158803183189028774569016054445743903967749683806057739956892572856477820614965668151897979573064451685533913409510194353320199595542542193058641603599793004020914423830529239701038491379035691795151733856346147373718514053646355926368277232441404571913872384112043126524476433497698813944078036530671173577366488295100007741233251299046876469334705105719847436271247966148693188358644541675607190007966962549704744205264949341083520752400247235894501541999828467401833161715187769769445147482121848484918630203283976419827585394118201006801930051044825761207456528425197341828427407990673622329353122774130424230764751616979678719437638937412048020432922048343069893722745219434237658575257750744883101282942065337047821634771704671636120362857620718976352375285893890592873172477663184269630311780582728920665881750084906360177010357411804277364623326072029485591939305465039447302799288158176827702611850297777995717110410799806185500988896078435721160268666637036912715341022269082584506334163590681658955841494990485913906982485589943022083217416786366885023445072234737520681142422645011724234420504092928251945820165807397442682474208580659516426932360652547835496267980639183171789968212168900992722033207754547975343588410577655892217228205571615692432416951561875882999566682835560920980643479669403890417133884257858611710133675657211307823433336260742673904188139969333679854061855453423408012641632366204191277577260320397610743201801367601133947129015061592235126736686047752005129562950764710343944427017883071581228877563025734966633845511439141014540221914218383593886417831991464971656118998154000685965292945614230697155868520229689765311612462890294356547091197931837221810978616494954238059726960367012102606152657038768066495831982763506820047985246682032687637930371823913564473413852230697105603821763715392671055538481668827923720764388990115386473704350953184272078984655875446056677082952582091996654190843739185538319861471747575994125952635082621901912355580628410529035831256611263291872088252642338435135247030710118416979937673936262647907849607168500374935853467895149805965461485412986954951449443057632794915376027061037694978560124342945057685624552721755187524551495224467587306007173646836702719529178089677519822785847686595047059936117921083282911070837739824611884407849029183556650503982898617052751514491377548018531061043614481409638745216876719108615791987886990010372932380228816007243196099404522995810820275661511506684894557350447017032029961232181966425971957058493399645369899785042160932172081308538380568354229682019303692717652931724909909384296949217593234395914240674613493675573458884595902859632439944934233112039476625592605504193393014010192092049975537998874108041277746985899161855777613352233704610876906361749394784596305658420852699699082656753072834651937286643604400120889403187772931024428882708274743364191282803099495491343393737877183808395938727185646280051379188806400103487327822004225226185758810524455961730579746092140841848392179454479316371416056576670748104395561357989987774699150366115375880275162959810803592440628755492740078615645016772802079867586830648924323053980036918471888741028710766800280924628758292349764659706724416231603833847343996056699546031289656349403607044819765451641295404360143100751446584374250148591457555254448505918134647421692732997007965103022117766929632754705098318340710432395633371872241870262556594018093432596240908227938101998274613017268448884999113662574888458615507763577118435458902217814994797343772012228347939922156230853876332980039270760208020973419319537237199304585481340558235411370606733791415283631317931931285440098509701115749731611373483993041876369630676959146867584987659706692001218129863606153358618433316366598727202499357352951356349854406120029034192575100554711428602443402392813291952535371760899299562069288379318143275683627194271566626299315176730319477160088996409031976834148295098308909003501396312773132306522458143707579502234509184392125183711526642687637288452392304656709864779399226440963921190365901137257212415625607959633929744595084036502029771400080013701727608244934236433617568249264371511064494158714097018042652113047903896724959929791702287625043091710219275290162741096025122829414403501525969185690939874490956180731220689504723227682394009591259759920409513306788891845363290287376403768611103274345893285894055135412446404116638336610551984017777240171587504972463965172077390464668539877730831859979141824684269977777045637316769527309586823215654796973724847985170649635153659776395661435063840983375364683805876203940892319612968601472719618357677812852533966184060678571363650496104829123226126319716013168006349213231865048395701134269113223906408869774433890997593244367721889302064662584233291681126722648332170329503516179858345068105963196564521820958290704586760159333362917535064865432497212606017061065929784162250924336588648583321927598315977349821598892926861129551943288623240755319058152545137730253397706912998372028425104350975653358706447838897467348059375827047930504798997340410211980301075685453002483265389720301209837864069871497851921267260244417632059830023915729479572866467635232697131624432191966202594356873310545168312161594521391515177889708212349105972417036414602659926716794854176277937736281622014524030079825610294900307221219853739026368694083410508103295370169106690878426452303171894487675062459054461760657632508664209792024116203623842370716856493495116968728655035693597917804116830116390228686872451341835423054588063842981898566158450656037214616765508942722137884692545680809654685931045807963262294584464996052182493313387777494274791561217585713848917500884670708282590698278549529116637665271719741342568079197523093239019559001236697854547110998583471321294112710634152150795730211630170858405438084832258098799371106177169708690900101728899499347223472943587926443416178745227567961766049873958607072125553358240571131262891978476452397216873257820706015897191780119675218425684620317766977012827612293224539809349678625364422597113642628408821612096567401991381544031476160957559551789279264822583445285108335770797766508269426944043064514292810962802127641340935117280846508654854004371525065915264813576674792370022609783201157041415420768280428500729370733750197287103314132857169679525453624487297818870224059778070925247402180734349191723231198626360699308509484254183549381673428692686229300877898215698196642347027318918757213953656341380838768725641190840125264320463656329864989687509870375596311985151761780641481662023587939067514961817823338991213100297117460619151942127057340092058900725349397565160933945182456233786340179658260092545670254942759627387379733881596896281379087140217212888835897025371399253036779084927046019227716043119549545208498919066501911920268313905087845728268104803741957778554245858468970403317817099787584639248420603968259882129829344685172469355545001879687712552261823436931509590975371968572598109131399416195800986347179211993360446737580828792387035252302612040719986403162539579676948274159720476997783350176924179980814701460868674543849269571244981594207023968145538883856079358360485815753481112905671516069600261655728057788295521054914602510142315258174984367226945481411839169254546826654013843438990034795529218559034424032636147288022205576008179658819648566079385563054045836385419896423047833410582006560661507239884802242134787529865552165463627316374625150366817827036905028006090240632652623803619412373218744123514107954695149420410025878307319729680323277833627423400512612876318472449966890317823246651557578424150241296673736492415719071165087112130102725641158355797707036147279578534909272176592163867324247179363992097089039159301290207904563463770362886037187977357382226025184071192649826166770993552579034552929693497034457952374362368199300621933469349695950106772061997774460786714831771368766176209798245406807675712733334256689843086662017462655521044001701590828242937379441884415652300350724279792213116370106379648084386217285048632328255968363566064068494516648274606569560399126806624420886661977010987837734020161701551004080175179795450941287351841393196690354917547781280969036762247571130726294773927413955305984803733004631661159662118372265770294343838832478698427607687801915498440680455117134628502609725040452495910981880222590218985704108507335232970248432331077013196682104517124023762606928563243292299083570622011321394117331857481714142021447802717888409305098344610170070474617463572556114672496149986286392621694534746874441720061489963779621648376659516357003756802052224434139764941854072665573215593400891540544102402731240421293966630500161340460779118831224349116900202569765767175856285654907174511553034474102622565508953406932328241166272681933746140958551256726435281985707886077438320164333827421293744050102655647673826825179610772483622799813835036564186677232273446727486075271323396887969958359968658811572801749149140154969752776241442424101046616350448126100933248209387193546641305765853569743511022908298825353085458991643087353771159927487127979123775451997990852645722778631912729024832220282746597771392737556404293953412731254830440121407157415465110455130198632166967364463377766042170149721700276782044533388172452511472108197516614762961866544890276120392794387773410725817843604148717335594673734989906917961222188402614350412352853351180574051855916200568892294494193041702067776883610357112240053023091901317380857027242947386613872309858220583377013687019922404063027162205829277115596461115015632484270819889767779465292784937869116419021234210726586185164375051394669917036673661067677672815762275148223796552545513936625574368295587371939767055831758421947464743329681272615750322458103040031320416191483537567455393439115272896936354866468081726661506838316816443570424207769220883697959285605343520400211820158467941048468084820825997103120132064866750583748369269605027285320867999605101668203601207826822642134200001571938177430974222756984641850128479609772524949964825168924465747959385151201924949277182247340455771628904020523496752327103064235430486071513173630795391682413194202189580492336543314695772001195853247808262946536109210096088409864341757927534850061892929529074658405055724945360688829115666807956148559144594081588187129983566724702720772820803199819857658942398276466907437449250023571729810521154222306024647657837910021810076019782330890548921510851248356408634909789005095917617181788035260138695926875520514246132483984804167360076732859229810268363025366704983246352360356648433380286076807647770186927282529875064161520414609079661182102176174735023105300336928170703781958194785378934371743350573981721216973246131061871388347413445135150473072464814259122791771971841395383138846205986276444406685629643262403898641747789905201618272058333462058506362200396338078066167801469775349699712221829521819527757262350089310738186081490032641870255447089242821200002888192774346433098052020582057310064443515926607364520447949883254700950790795711273036167903036881991082826596038368340062064045065936706185332354437849242228243959594535152032538933201370075956429160822856787633082022117592043328348578090609267660746709156357158916690533735874964008275351835265203444299364006737049066653475946713149168182520804391775437652061634946856667383625180984068858412774971374471202779431076735736876183937718279669513905280442523865179323657168948555980792416336981575668625897692496960033140652789136236797026501042872710172381084288646894486727965754344330762101306050134979131332192582476976101097868734414851005665090758785005355452109014914710263961211159505251719982869022432535074901638447814781478276852341756970553185832087039074037358389154428963234417134253912741693691157874742265750009785243916966940002377891872520807390286484944205607340883342557535281880203442113020146100718618951157307200180601429530547193345637221372287349125730383279154204207408121203314754073461159384853566593149913430470878119902427692138156544091392146302132426219599465145947389975447129866343591837150709010543351361215610498543490481493753158521290700750945419721169557628067087903120930520031724236435792598020008547574412037545478951605503462639848343452392081604610806825906408707579221928888344204466095266111973587147313887628570695771237949513970526449567436855406606337269174009505350448932668557333828903653760364486123681253240716722690687369940706829341232235959671971876186154034709129461559054368546099480809511520735322402350704735761919764522307510927285382296076466855415681560409587965674721986596184369191611031114347585246561006538909224041491115454219032874669129317201278953512903625734033872891331802580511020129475384179867731555107891317531649648807092923733075514687680093647620451511011188232663321141311707690169841726151442793035141359203408160156534023018838592189030247624203453721162805416455834217889547785709318797990850040900649343343507367403734798034161443701959148959954555571027918219672336903459062609970058759010628149670848046532938011139088409885761577077416603281428068283252834391422678052303343813162307291217980450388424310683849496747438324720059830911752285492092489480660060556699277207624254450306798029711868371950473057837035324908092271580492240278168818763232250131743885367487260549047603431521880436807606345723753442374949811008273487365495793159557374956067118983232671745248045077331847789043133588611174923646052199326797710878450572389292343673161832993311759215228858043335232033998275719510922352023187363080915059274789212284639087232601756831003410286441744491177512242180443633402041579929424084198930503302982204433635640600869103858493363162021440503588458898721105109052606484299399897854456391391810531168104165492663929635139987351044912807474639987064570332570812116186207088542216338031578215374516306682291301509810955986586445062784262192709006703806179385967082976116534000211009698328956320941395782270796832912156963245343463331646445113816948945292142944184053908946975448714986492901894232799931518128913123171785352536924850563271458622574286508854698996663116943757942851057993754215981196192217742945044220644572641184346625551401256977717859924003675930912022164726352198270654855543635913345727719646422592537394533294427875517199727351341005808255210090570895263574303851245031139296487652103976336131527727398135674529789285559973482502172745074333925510216270452617153223962779894812674180760480759739219600743387156857446106966203096788358007384052922277074606237663489659632021076622750409862920925382116284711895547731952966345933440881034632567868842033014382358879161689706703187946072445144685605719616055559355609532364100468840814664467849173278469269610685880761541599889894494587542284863614078995957662993394411906555051559670494382814283181901559479549155079508282333818369661645338114756963931601252996870418038357510494716956610977556003699317483672913029397858247086228797670403701437479764926709242182033486821707348631032442845289766322955571765006419740665657786830782589133136445664726390905072248043423231554929571651040925916079677778659874976183360189165882894002292477140783374449055715385571529340853154018626640671708101149431050320748553562275140003530022724761203882287936642943439466743444080395067815357154538594730739956060372717537396709892306529348353328499435018209154335667273206625898660193129342791301746869849456360326198871318557967913070682339688573486452725987056852865417704926851871117072368516517600831881464153975639560020830257555768117879463214413498193040449192386882923813345138198530893740940679215471704988307370276095411915850852840626368015920905211390134128586555871221216564312078920044994522778582665585586156368247949410603078577189079192730748492231342743245220950954032867670394768119165564182775598381206050036515732078818639355992250438599697896211158895684698182862185654437512094457445471581316874923722744547149474619208429397954106493928643529072949368129135882880841362449671113574405219816222410890600405180936271754531959433117986967112044942786782105656089170574324237418497373415004197162240371692788874007254017988206744136989772185040533139436531392670765249247471250567929349943432005786434336907826500018342173932373557619686940138219793449924740776626601663397310537511776574256752818613056693357727820348544612988488580284808965389756096471848799298860707669826954210132478834942597665882845520031056367853309249358748770965238417994830835983620067929412728260775996677564954529456101305335464481513813347592482219251029741245270903209476641720820901116369777582322669182402842663543576322096229458663373350675681184098341404847578538542638469376520501564654473696650348403592611506862112757418474114392153017342808735037590400875386375622604349230061755628440847780942631010603626526585287568572908273198613670877040133518322528797088166984967671664632192289912775379953053540597082522110102716822481263460570823219749820706859621236681266613428231491920558530760962404398536097640351784306746084365962227457056842470489648692877413132087141193679054134211345891723134977163935752622097826673067728551172832329827445530780553242254564160850640764326412680053360553864474698217205833950753601543936540509973034714821499830650075547220573988932252971873430676301160288471141775552526245031960901623331193912478730849910041350351522792010375002066873610817883821080915434753281567402199961714748505578342771714003702288797087831792281327497724232015392763856715242827625689890225251109547373772374288369321193386912984648156585903346882208730589378373733376569709810378209988523204552408266151076097943883764449266348895387592502381893228342136789710304020585047660227673392314607782411358595160861011690422699698934382074969260798536913926670260832121371011367640581870398511689142697492518318818703695259553829222452526388753741988983537437238426920241226036545642901757348018726518596295640665337765644188904176434227211194046969005185062763020058479613235804764791084380456646431405876878660327216592110084426062700554408231725330455763896568082284563809896262395708149198048901670797938667370612831805819210914719989209160022138123433810936495486320603808975443631558161027536280424222723885807304641613861094573390632297201799401262481751383381994096881051093108991031953314562197904336133101854939666171013041867653320901187994932094504571748473025421983054609497588883145411380779706033903203728728971866268648762567865994247809352524564631890627185508388257612242990897417062466076017625106756003594420384556355500018283247239382666492663494510241113285355744341677609266750477547807686039056817018810325511131623269398391068000396972509212897165843825618519041407068977071369651689543580864410297048249588760430904691711895465345825972442881809579361081810325673131655978759899942178631389561188634456906473505145348135419270101487820686589735837674611091053755287642899353120085144718306514533926512837334230908555382166116575808225595175789212327819866560050909408668441805131356257238974575023319540983551141231706123653497088930942649286099194233222557699983611615518457872414251161318471261288829945793673682113704071418687237919593306687488933570037746503711678200903107020981427090470524427658896982235620824459311277393579305725701339993315515362334193776261058758701088295998917633546021379542910174694905652782371431458796759101614061342614893568708481069089390908765143443597113492729108463130875531710033153990913735283358581087318230397812631034974756586780569349630440991685444530885572998103799274450720278298468601070250983078084918284588037094146683187542933087674811057556168002721529378427969080331108076432251806127103337301136365760195157074360885213130435077127685180347661307381143017438627766061765552943152853078013015847146260802422120654569888976085226104903410881618107701280909645337552431785008980773284528832355243006969670446088796847722756299094870254751231996217952663552752529291812119525327090820697066071916285441862197275542437312745276135280865961321129592817792751702169758423203053458369989669325343492231975524568323734158961604338093411800788990264309880198796505285908496465056980878077004815969258499422038836401369049104760391501664215957954592119217838372095233136639695310609041652600344880463956596894456636592815474201549094735120467972619088263138475643855264289706434111184161322911163729953206663830353531620520767965333417323987048459735965651624275155457615479558558328203941277732433606651885434679795092779210844675622261825344465010638674251866519500122479885328254443393504092768353306837194213240288570615716142801763405382629985670306158144583673648739382067773905102758383871922152764580347303645386126305620112266679265691851043771430389707526468745961778414875875994462735906203575486778093119535506436345466642067472864520022187474668908869678042590619728803853932378121183649556725352549144092115479421790505329734213285784031891879338741060611586726879394306907454057136844467758121709297230775748706069265924163798707318700308436741332111519286462263338740184357991007869746557088047338372119616774784971585021398264391106140706806185753256519962157432700194460607359822033521742711570738874013975799541425351106675798951122600150756372905607379344492845407401934099610934567710887263739522241160516593095528938433939378134039251018633624091150507075644007001394751616025299845390605105336805169732043831822418996587481816972210169266229388469371580928727547844697472356238819550305585340070285173738277268033834675390718102049539146786481354310050556187156744176575418838086916757810311236967906409946996421951255299843460663740320907006758715827438461758434117452204381075050759142964205036723191471469812979751175335365056168065737768973733228035627990588532280185232951767322984172509809620131194984338713234670096631235074051012056560786643293275903580305758260761783948188538849704214239934840947821086844873975560218593719430776705231880517529117066110110778649207166007326600171660481201833419316399728852496744791171556027901127797831263835419152945581473889687574252963491069620293232113369175126474927419191714043431610348524504802402258836096708420510096458620926590812445125809556552932730070792521929595035742385592069281936921234157440150007131879829390776737245574918604854020006952279248250818441919516456021420958261422635513715368911874100981408740045705093432992087972356213719491763816297253619237449270828285824883607269876673054914230317575286815674164314542579661060014725470326432945987438437551919786825640045156098769865768252057141451638494150085733614259771377508834172909475361276040975919770418023418866068215727117342295737160474589380977686008147889173309929196474339018810202181767351450772258736749344278591497040455049547940283182833781107204652354892703543449928075411106289382602596070579376495518309631087337444478865910567240461376027747327555766984800920520092813222608769812129231174950871520470281159216916016566203831434902675523654966421446954922700456803059315677722761738389646473500092666492618840301176563477588197454832953711609569842054708704098481901563604352099797712242083745900447014816360519251047547929901053374176977786709506369552898417185258801757284764055783957568402898837057536888605043185447270547406086080585993546159278640464414635951795848356633730550327648811587787381375050563016983213106130824211199902116665970254103769817124639927966832523002129054941470831966361467949150805848854376954043572102384913549149266860878441933673218284795608252586373114369505087040235186073603058997157375967180308984914885713698250215557134691516005997625769531144490132133965604521312528388003820631680996648269460802508112006368161790751385368988775214151519575842655449980158846943348917048994147041824593395559993793564033426477389395133995317648787917176321681985092170331637381087227632321680253391790756093828898683552509196870721157947111166794064664995934028297458632514066641955706701232413017839497653615828813983521348004353124154533780166852177684326887766006925438525866309325663090623398776049345639533027976591164170170657658965469138856073303575336163183677235735219310266667070500570277313761363755220880570702565516238398618395375775060786726062311878637451336360937327955656722351279643966230074739946456217183682235925997710019787466099689890011071837577608302837038795041739793811092080887745705279554940854408075567437088742053563807284558057796003634003791620865073965264758366442343701719473798687369774745805842194631249034983264902321476653088012288404228581295635946779855506378447744308924547913172559283364690756519324828188245562516245330379332746916220327404945524381220475073902333371772282639857739830415928196370957198596438777927889451816922684992939809017192758850257716803255863265058383697746692836714662564836025549713599410889797477757839403139019443766828163162114834106196313838089666413870279551843040272977059325178028877265338369891511660117439447888286793429215104494370261873317950474789119772315094048611656576333419543743222900213605140199515108772858124844635125782673799021384197647310336584217910587057971903424731798932987922701530277983067160794428763220454114786244207676365932618138651399282464877698361828476237485832276781531671305485134255198930370325044489416835886477881105585338331022271584555919311192291545783532819440584664787525726999249611314269423981607683002023470138824313528250459628281785049506561454404536290837354998972511724828611916299598548971924115873430487172929969273832913099638083372789054121848878010933905434289040769345202306954521797126412803430783427667172909537460784232503933359372777819363646731356559360148344177021266679183024579423333498688529240291364342434034410515385429239122504481538363098336341906599180644100826045539757806988308114018885209018712770077963578922941594360541476866882973838342473950720019482112505352669648008031296222321533097768634393212065918777020653809242385574352055708700298740644486785353597011154721957082344468935717083056370212029371223771775904523403304374473495941417704522523626974622713175694573921675577721704331719641167373218919654310450076906796236976127702494828093411935158433864729199318596540186567738219835599625228295931807621402186730266261181712339774629921660305713069415782537143597351279425403395027961173345105936637452324133066453268018135660454801240726112570519457450217635105839589484481608845088628071981731301610371151992669361380535379389414838260282976542658095719838998834282777044504135809412363670915926476476397810496406638257739904410475514203424486315805362780897765606964081399863161591102067692784371687352646113229946687472417304123553491037821443127117170581398195757125221525081520813509558239514971802635933003885891898361175133939883924021626692628518067250884401328571610581897069096978062407527232041579185009887722488591576955525938415288716512157260853306171486130520491316066020597129364500072935085764188579799203787411837714676911950271295488130339113905991250456960268692764877824968663697273133190842284549801766693038344853277591584176862577020969333267497644158855197990968723235665201797780495733938139584830143158801280828059503358427879550974549970265826651257649661889301086774476232611557083574121201584527835756734890270188823461873878474254559982559029377587478934979036635010646121252251665330815561647560901604377052532160195029473085020022675725302849471377331863355903640432168795059256961134003815246947767689545622020510936980188739373693795474404741600325966787257593632372560144792778520161008480105801422669732971894814473786211344706879476086161666384272233145925971987454874253639769129331786587318116116557795071257055096244387108780471730416252167531476030226333713579021444521543941643006048582842425885197318602513526130060735169379460198914535093134907363618738957776108358231110024858624845931120993270162305760891403177423700988702945264489254384194310573594175078557513933443976290302086714848370298577812180172517097629201370159476909695751471395531736829445671190661647575684158492551206633118034418530538827263600758557510775321362910172270285472451239437320340508688341876224001312414011242318500272479837807958649336984896526635693167326302882483418258645617077404552661665342756386865491560815998592759121141982037616616713575264020062480372917411351355768588471982238560297042369384702468782121485772098389198882704184676594920774446175968572747832562175656426434692514952298903570257048283020888833454795354132681344491904472060834842588657364331492918586713452816326420451866064359107599688635056792354868659236068327180619107789155834681320837050165789750977351764855101303939507530375820904181163754252411432028771403784509452500902821020716617484758526662623533055178841213601992985992415098971349800137781663102420109395601507623977480892112925570803646768622875675513382050326022001055446039551669750923949486303122579147070536723980064831845935423348868137794971863742814166123685437908010289894945019085280253161246117985000580584853839408343326765231437960721936508410433832578337766586109956806429432654830103739562022341290299328163797887631828456714349678805453300688604626303332775438010457300395785487405006472452418073245077467333916418736309321068830017994361022311602314821247894917074375228384170294551955004583755993181538090098407371100767706965678911370988909265019117009478564060525776019269299286030946794484141556631155806953926060242208231980223330124460897062141977890067169208955525732703367335425060484559685660064991490848056423918461102578033239651503838614793574518853771073845772396495848243650096665570664517916184465904383104350031812315416760986860243068605772039910046306730922695777922365200228684412893845244371335160824255945938457067374776935764937557632576598644880996198839506022713933516948258370805414374611641162511968081530176894863999141817654804232367946655740017892569707028262073881252278067034462361307035194685636621502104374308007559365411185460268041400837407439232594440189796019593394399249841943528644675683040625296531784643910407311184836867411168223096892104482377164770483060359145007981464357492468202330349924145101556754504105367521211695591119577479405536303238243299891688460113364518894869490904194171483501936361344107838817739520339721984402834075963516097245518887175582960235417329721919213141485788292327710228768968807175212279215891573277522185124856861814993216294801171021879663504108671272452257632228153832876666114682841582192606200845261283559045069290514781366492994310440104657709704900493649964680505923869039388589018975723085442243193283469418056955465484583260138243019500638263435850060314869965445877847668095839501824692641208636212362617048812825349412757912900904564624695848156625093289191067132889209901310196177582697207409336324437267423555896545466834519477434774243439405305758193864544759854673290495145271558618501759607965409457226282807625258696974297069202385172144471865113817774439878890371619480120540660179409754564693958107490738505847433721918648312860096896559791025147051591498906840952880405968130920259074768265365074505065949458436508004420846842653118307884634626184140368646441012029335135059889974469498988498327683582497616024398511612924211219804309937971699375832354849597737840270086689351255448272363536348762832271860726104917613114157235380543317541839250314579445702075652684853635633967530207016427956935273698416070532121366985689511162910256389676489835320594808096295629007040544389525677406297581905159719932256290176925124126409140928674943881924554308368973999825232649057633658854201130994623553340460702861683543557949227247719380385681373548367782061527462924235933934657304252942060238054123108900438282151566248022893565756238956540925137298574120992937089064952641466098464970094498095504645406346751536241196344692069528707209646402835178249847465675721725324786523833160769419636364521315013003129308959657749718510543996320993402523378143529547313614987851714421776735869719300337272435145699585670635134471162666787976801159732319677827786273136637962514201423660343806039322558554154254767025519500005173811924347317589970395727124994508932113245242776183787643844332884197732324078079684628917665948949379885396744659272559015451775704484009969601376007721480259146252180678418238437506940997143013376207756610335988149509945318451706653881306185809469265023023204483543105013761354505868022656008206461780453113966239949851406787790573846957171805191947891920690047103006693168352635451017220893499460326469106256416318638012413892910737772789971616184441545639033550498304193316805782195376503649044629458805882122958422436315073867966826109841101177236179757697197395837373005166993317459483267816586971595937375145989634318017798391375394535298306502312407665859124039541558783702403257007953846179537201746531836266888393171361898599831030037347195830094986855928069917134119885380992546535543435748901099131491369225454782775073774833208813486721325438860285572722383208478293276985748542899229725886898935097651716129917285044537403835100190468616922796951527811528149747840719914936477225958893103780479521038222265119355216301780585926090194839751541023758947351302609350050583055037258763510918069060465747204303511120409372309916385500545564516047878927596433452849035483145650884058344844551153453172376809605771426281010783724098128769060446053721344123342920242292578929446124285371060789248252632666889809791761446852917788627321155291153264770796926681993701857045275439194489470241984635267475944307182710927697292106946676797327850153166514959972195799362878463601029561608473875912372756571421424295104205945829171030149984163540175095934178598924479505951866772475874038397838225101603988730781866728882337833787988092984057633037414349979212953325526617358328951756781944603408244558653578071472249421986540083441091966837873918317459214333375411471155676831844297147360974613363813934095266060642932051899973425727498881184287133740943353960153300247872901591011414073251368680205132692916303385341277049594154715381253253027433528248457579283780930298669936532183166696877918877742860693238906296181728295643156426685540230355026111581662318028460078690709046116348089333149407541264691949519773063957091819765296519421503346196111297856039477222661143351611162880454877205576696526879389549915880728979125489194453818358426773834416279028930727287473980225970554744450515472041138112193911361409168894190166345681644144533717673659079139515033283849936819458358212381057267199428644344202466099759217156374795915997452832610622669626514971282213303921891482930099706381499590015072746472512191404664643796300381591796539679456600964018251311009207225694928142646858359683875645001662246790190049176632215860987352899789687934956710861280842476102126014599663610327908742646376839699008007354961933468658536530874452913372486428261088987863439940541593561800227775118767648277577324189811092579417316590407449611112878370661154273479674982822977380065773730426630107377604418985250928712372293203008352822777559470819323407902595231463999708670621225128593819326044855573471379174389379522469196274604607803911449673782274485812577539762587030095642663866486037047507386442184578519375247511918648900755125515573130495153661671519565502921932293288955843999307899515585404248240049828795224621893636698769434156587189108506241656410499500660633863242037520195617452477364226887178297581108742529448130768804550705053425361785080226624792733122569043754564980760107182751967680747837491163130797253118556229512889042692392133622581766017225332301290303875101236707982318587809695908694485351510616957863466261679024010680627444589775290556341774664681257667931742830699083177152212162303467624649780828483436578192637155007561132347627021761471811319196598391380028175077574808036676988285666708513859401778450662350730217634452696733415488199594037673007357093130882515263591380932398129451113305999698044820992588330260341401832469662356731187106492718885908067071975290203209051179922314314315971330470816867845289526395511960236467378866974943575321611297392657973762435776822995168584869516117414272620990265204678989006859503983340430594162386250988959271721648700983247283877351005040064764343336804808704979456528815095747779200778080116960271919524830522263336073236327480868077581339951832825838662027197994051972721192818075464154849282607856365802393711957533694943615640886706859477322751349418823311134439814924782464659154734113030596088413507951767000826503188794470185589288410187687840410833841657457358617117411731570850792182554248174939703382299823973605656411798093531346175581500492608522333699278297386447729028254185234778020235941884793215715615449283129678576706782353370623989419826771118345607673496890156674994639500327908910905372059813989538002846183660425172143608586192783025578384202245342440476756881317956838926135435352671577446496067949002022159070835390784675685046637593565502106536674966528222853293851727384414788093888573796434386870051151746628327440854696320952395653659043563166639814327809668807696478274283662496220487770722498644302682988740188640839722271577221800409711372317517822131715674145226230381714588104732681211498559463317218929432925815989868703358233723843819566540585229422516162916807831443072037563529099507449669474614387300948091182650965592512031767433951772107422732717384023439583450847750880743560461360523824551307862026497557123381903301460916166903785569686938115002218360894856476087462887702680165598431742403389129274023417308187806829128382786950286860266838164073215506499183067443590546893772818540952178370416489482340804869755205009076337258600064959064227652423782655084807132815316805917303317955092217160037893025613193913840651238295389957083448045295955851586074602235284354426626022740662386458616304135844038006301204823594689807314166668427565679648929960603526205184517378162970779959775795061537445846223186576397236358148586292839170470684887332789557488888280427031024576918859280924988219103189080591062862636500035469162698455533429726458077085175829245546259855599582100959381258544640038187894643614314375258546702788058571791859430816047953928388975916883853712185248873358301215988488727434937788540420609779903503301134287499316395309492629655987709329161277844327745098179992202325211915253631865856182525100301276009504797941047425131602759487276757176760301589657160006386173997323914267184589093200684539025126331051511844006221220507832434516130953972872628181395397976965152663562898333238577753691358490233937706413960798067913320275333727930154922602606333185388024237265053092074030999548788113891778578258353241415406059112446537356351231876167990999241483489859160377065654722406567425381031260956445104038236564236590164552448175030127891169353515521875694005136704664109363663028553464005094484940004682530686250888958716992671830224811231213628895888377635072296982533147367177682018125562704924739943786764687687013372975836331904799868143291573117372586664479954617604796187706302182685024851147362432830106699037211299155655552169106176527133089300390657177265464357446897011891580815685158057938245414269428430389106307004699901048705992972073141237967891093171669865207141132683501480340540176900847839680838866329562296937667654658931983225296080089568569803213876049066987470604165809150490578097693360791397388280526224375520154681000885315181084938377634063711049411869328517088371429535465647146225810605714507142687665332896346022734066797724138119311232825645308932257406116157852139136825359923132010245695887915995811719030750233425558913727219608872642908138669838931627807336546587286101963913592927811202714606474262605172496429826993900481100379485676633014357076125654715376762083824796985137807508793185804419716667342042741265482711165630665633746387105148473723551639677227602587995112329885082325891709003435598656789752702219728065622485882652815749623538814693224393815448892483996705924175982771252763196397977235436285656320389544777841427679123653673504719354208725216997106854345961340059001631571086547885821689029257185521536970561859771361367934193360076144104839134981919278853397370249812254268090003984213371122565284282551395379053877863250532124387991135440034129093895318762557191395805033056280039581317943400574611405106313548914916212186315820432417794065991677087107841291889736788016798426717338629131923294685677181877837207618830326355455676810821601975265137767570702275765663435633109008596815810388934710034832038308916189966566975203415185508096422057819300714710030684198093857302950911613317461698144670982825175788674098719951824753773377338585928304537348247731077875500732030342397766008138119608579519754599247498681918874453752464937783467819268669136366762384920790376972701885169116461434060770658080215221463983754459148917025552270744325428968041197863900480137883019490300810880138445488886907498465518749035197777471261163793284254432719428251251518733073336209115709492262580178854421498516451486026475203081192300607648083577091056934982000352824424951704078866802989577405630401432309075778243809281353658744063331951263288219808593252824444305797753643238720546557340653579952597768141027446767733368183609137962936733368825128934120272467399628427952087154135528932309842587759147901600936162586896707746257861662932749213312467586009298715449857662909398107681083769256138424190243279069086338551918778321845810107948700005878368628729754629915684788308596560495025370573445547970100936206469679628180931767061947236587340750316138947578616928973265158009408096934523960163456884131800009642990713031368112546026590506522733236134790223738858334462254514295395512009581924217178189094931532920354220712851866649455288059104095615534152621582367351144526272898337287908060428041761131403839147176950128225335181038865059123370597149602252865377889507668797187470326769862262293885032488814374384852705299830990573460699639971786184556285050596833670139717724335108551791359246899537490066890076725323912793684294413987074675695182565299202508548355109615024319769630088879076617799988357760709432497209415389329432626592581070025377255926903004496924595297540529924447124462579555242397483041900039611089650641354855396948669837339678508410941069179454114437992737964199142387387357679249919939658597597513086336353384078918864461580357092604581332115336064366112336135021713524442513682548585930508100530106268697916895936633304618560130255786961498038081585271909336148596796726469558378011062568555721416479953864691736600596120254426120414509917723638867352894447027991100709458497208921003333118562347411091811512406540481769550150526521501155261055245868615588230060413646021535692935500985385454905884084169375523919558409954465878675196758899411845671763738466514915649370554806372924656636904769633441877489564308462260108053119127654126248445715563195322168820251042639497286191137925392860030295930779043425513002694831820001884097814695016860765653772757531255496431249936872824734847771466532793151955104859330565312522779274638737128082006152214354035951707325886181060900755338969632932577632070908965581162430561158380560888909566761051020342255938391861231261174931583210324814164769309894836237634672281289136950889477179836443560204360064875044170493579198142974108706632057348920880211250318741852739685238560088271866869380144995938113392548007086420259770426793438159077287219494420880379985317558948076121221870293997988761954827324551869451162390602571479319490187673704101613421366762951109675881090569346411804512448822962707061520823911044549207007379837333341899364842883833612323666010796021413520941074542812692245874381719796884825689465069129288083027773654763409344038250184606037778532266647073357421200280596767704822909968568152600488813018936077513521259471279925353375588685252550302181903555576188836014961346554390743595502290812819326569937723343244718211228233851040205171839151414125032982175199898365758853782392951938988956342600957956371708671940381399642595391612601246943566913724318727459710359692027647828191953473972694972707339228916042225435172076496346074381078705435354117929800749950807448233967594711472565837903748764072934138139946829884377482038367206229317747590760496894381847529539914232052926948547776361611280633249896026286169955061666195571009184407370572970963864708993494137717904924731778848190828827955913464126448306685010567961762964743162770360639673055505855912394072997108388033802589690895097489298914829365168146188408617355174080129483760742837811479232885364375042018173157425495910062929529639611783661000595665027421518025990391334224073397694993641202772858174447469018371754391838767694458367080199498611825837449772871471487805046650109258990297514494686855076638277582323376079071007736988918876227050659972629118079614421338982166281720327564673418195484192438980632996351400175092492102108432235203521399064931170073220157800337717087484094979106824558973146644885700966827554584201785997712177675688832256779389055655354425275775394990194745211970402209477473771963846993927608570315568641841211993162566405166580758364198975474355559162803638759383008211325262192054187719388572152328766029788472534683724738925230733687706993206191384211038398903017145027215647664333635587524267690646344942505068827358048132737247978509193976787286046254226324658962127018624498445174866058701855388246995986357580343991971977681552377878308379786561716064991635853023980735854174187904963412276425643261724227435629629009601613940218428880372852245120517366182136287132441148974898234665730463948116456040675192289367637093821509550712503720696853456077797750666124850619269581354601750387058630892750574580515003026229835651951931899760018785943041250217465144826872247425700285309708670420255461696011423724794724705724515459973470250430111715923363755360733311542376523703816104149001868132719107268378863420234713722631387106614104074634035810148585042426663418737602126276053255927931223230230382990181614463945884909389021233552368357183550505935488908126907717704328992383809468804801658500397685982207316555797112623933767608672707580070893579458544443174647204881160420885424339411348791677511273675351731390845841731437315272069430684958709548725471034443560582318043766439014329709098638323086569263634404188646517535462562758711978601157004391791139599278463432466856032930427209591089869395889547987045693547450294554776185684016587629921152085895329806247266828055510190065534415205456037900423846033950497200819470193916656967353884625211541810603187099180610752647375503487900390803765175012338554290778443172984995297931459211331542708373476417237996965541105646613414554122796921603455798178663034586468263659652456816493430740800448129918775759729023852936122265246105091760816056967004830821598897960898098115993480103603088837048845265553577232898242116542200727172543555089369438063010467121962148574409738116534784842735297815826740571953179375126371404166390590951906465292723286338911286392393152836144694819675540163958873219083811971905837966384918061115693276404247715249876505542973430884811499404016278403110773495415260846938763749015841042620766033707575082432392678738772925402395225862673560364572831948807691604253680356261838066664257065795672129884808917381641315433609390807203084907695924915114192331430470799942799584460174531088391070744885687460115198435666504751324158062569672122955422907991216241639617631135201899997182317875571174969267953363695106123593945277110880204231024727970493142210926613594645448527111365632915142896830747662726685747457442320825917335323642910389194599773291408623022134853175143060382626517360671082629454324598538998309877196696508395825230361908666425847236167863375052622827110336109080482620954701345930757588773196739560249798406711488459190642807072711972871717883994126580292102094552097134910859654409215638493994501523092515903148595333996507427088934421955805415035764643055175892019840079768745229494591139806846561565912817722004260805541034839179959149631729428780963698792368924552112227730871470627522558057323673539796165546563829020083654006941708986643866510901564468726359962026333247241475210523511221792732882066848228169331178963765850079413488496090516522933587187038359058712089758358185862528614424331540666391766346124293103652901484259033016623379351183341678960782210147368987726540265721593513957268404487900631824641537824971049804847462493751196484893596767448065664674747474976871247864842957244294898260469760216642466010726355869368444044580411977195576132197656680815914928384584414054274943613173992721339620563229259437953495062617780825955239979968752309768400069275267972186531167406861368599081706249208681257877923115019105467056437694225869252582044650991868539321568248583783890700386100341110739036362291943112834875203795863770742196640686901433576412367916347001715002569690548724508389901880400646416883899513282291080505795903259547269512996733648212443458900164947212492491560006207950357810732548506464008021755869063414029173984640458576772936497776138398178064292532813258350619385463671412335846194599201707809040584853305735518535012352166955202405778879638790145411348173240147873937453189862506752799955033892606186083810941249682147738156835350307041960069179027949557748180699673211980178461166450778375530911574207911133626239846940359477210789174568740654032620517581784322185470417202215456927134503662936518509236000587107623561184648601227685691432490207172881978100101247802514442686254408515235577838009280375494590506827640343042138758829680187888361670316233159299883016005536156860442325678838587220972165594586595264045477668693569855543693008424062653872308830676036619779927659452844574486935201461136756688517004375682361857802252688837231813840042466242661383590783026871141404538654154272925358196281403022253832897891783726470927888393457135445510228588888413608938043869064184255463452547563492110223999379373704104035380895964243157005608975725084205107212789572499157285371048424654863296320358288892946647008500024985968287895559977186701552138746752311987296332027453115861536600739151578618794175887650132391535487072563658383110180290902017400807674600628684568590279508448907486651386574005941513809728426009070361724605195015524071985299970918665226986563404107690464477046987474201478687063727453260597271516592048716397012995581621094161933328730047530561310047187918235367676438750346627312377148479934339424461791729885677859371309409559460006395720651630145894131685404786016622066164493645837789212886983871738352649765412845412220876750382319190090528988055592033562905769281476052863659326406667331409039448151597506755426292816620490876480516853632415986771185103423495641862461730223012481111163208050825411971870480865134310434142022819095979930701837888922602361815440691149114501523647731563829469901959378117768853709928881507315790419149897080581176017040921927581288125014884337230089291596197734044255580587091454439780501140278834506848074931806113685727645362127542257130503713209977354495697561028532579630932520905526540420419875658327511849198912703996043720832323694379701873025867528107286485519931666674118541298299711300147161728070188149287002121360769585167768176534169651788062879087262520928666044968631683893397672140662113936177230485041803048263279920314600516494106132205869247043324809281823625105959771908572855536818793705310610252237627653329554602476968028178389954453712378919356249234262392441386866178412604819024675541907636509627051688743792991459732591063444575733067410368131574374715147908991523809172423170779447730355244430331559602338722284411696644423500648973581119625688060351053982897268323580905217389476207833066659615842100047325248718735308192130856258673509842463320766261190370869971516004478087890801475025863549627673750024449742141733763779727603866151488575122430054936032209575968837111562050466668882456286788230352814264601213006952481721438480281569556015519016374189533934842603694734314489889739888645781742195383615390267335456650178007279627233404765786235428200416182282921357402482317296994378291157588264050965013429106491213299617796685686016814437641637415472161585766993935745756345731689243010803594288192157926922361242503664426362620254269199252410264335095500246364411766194127210516775631181465046433620137717232584495871470527806907416421925356649274633115232149561725307501264126902149643047859121291230790144917210667601552013549910860608948511485294693672654751866679717824107415107200117138651476920652755387921757048998556237628334496566980271436282859924815815187359272385445991450343089284377339174168008558240867401336260885576022519642828290151687317303050990461594395090173235180044159783571663457136299899454661983619237805242181599199047523956507473092910943870856673021039624187744499616337894974899018562778154668090225730319673661898400776470751391082199259829914212191693835604599079551177523189529820339672572066532283762736606651680544783157127808772231467762660215771019782568160274177996990448476906606303455736649144955577229773278788974056851753013729951672860605790180447139601121876474281843625865861042034394031474332705321134261192774187835423796530163304983099048166973663323810251234664662885195706719925333583032061607126328142902169653899404306482252870828320546080727599555471104808599644348223139980752004065349558021183433293128233378530314851435376672713153819428315081728886525248348104967305731027813076524984003304996332353181104894131783236135508488921830654001303238772921438324938025965701707017675189344337086585571606665369849057140845940120801347344339211016216641378209694439566502428975859581587833575197257902584525150428669047045950366240625640890770931729034294206243145946085740317315025982700113529336629500660765674860839914531711056008568878044483181717964806808157638484978338587549979388390882040324648900642599666718535866815095540985505857029691235463692741778753741035171286690242339957397686751170848050741844551769673019304199120687729188471855288694922074156143979325518231796882090763342607825481924075232083544036554622032934779744414857738377472177359036040009264972014733193209531378316285236831874771384275913823666570627772798221389797224708376864025146917766471405675260867476186199092630491230976584551781542480770725652734899946635433233280720423534531472309859332331622621749746415755633738321445699166362599363216899390343667581292632946349498599482581076138463643753039941430475398534814044447911018232505999534620076685779164530512440003440581064037405144529136864591081515123851147284145137025251714518017986147777932412141952950626705869594196764540162374035735983515062425834243857334288242565823225453232378858305421005287490606375826521638450355930842054240470686790733645484200814045779023205719673663091230617534917901389354778060206424071598250565572525265258920597348116437278687648303583350258824175583290997283695111308386675324327442741533742536591375330251457916278619307758631048405931797760372966392228607487209222270218213306003899183145929822153935819879456234764004339694108898882725200595908530479767868356229351025616766886253896187894078267547817286681498600155471332165789334879720353801652686404925844172195652266465009567725479631787280690467862554322570250773827495339082416069913935701189092369901849366698664887580982912210791444034610693790976347939511834266161004013649736183694110306342749877097910387058080584392611818261469806933308696160529317242214807572536911555386108985943287118762599030158332384748831009210347079384030599046956596043111846047222589194512276152595497734616518979696912902000444883766315172920443359901215949665800441111188532661948499299169657563324510299940349354141301730969912613355258469754691755077143927001768019858372690711971885476208563425518655061165292201391456617309635674886658172751663393260265613771362316347703934086018500493715283313798062094391178139850119040877149387577046725725567627703307992407001458867579335307137832145565510846050068805025747197895917158407815332665765047094171914521633956521479282623391975374618380178606196405655487058414649544999450181704914813506623823338485422600034198357851937824215779767496944141656165531492500167714380652789520281075658541056191041640257699509357129526550525395916073159251536382819018944123984773309497863402571820870967184130884032649179961037581555858665988702247222960774221555253493227342562063567011039417012759892043946286291261644376843580516840139991556153926651826597139880283413286612341489346511777811199381669445828065144983912769479149513892040934278177867832679339914422036472847655084578279988577259400067406478814942254696518450551452779261778395191192485735515469238336538390761073115681730091140168620585562358530600892075077587262048644083990334337206145548207791779331546501749594224272311722969220943143824457168741787055546597813550083914502963840325232863821244536043233756642801064437331763921128031686633698645979393738304475510498054119470790402416309486579637932799807857631855010830433661334693349001861032871032099891859939161158313609885373264358597699886223036311407995128145322299884248987267467798804672185348648572450467846602558028568258285482642310967454804125232741812811175628714113479688405195803551202656368054694973489277454799926194775024251059069757850804089954573363912991833494958331780070735506132407787278821443880117902809123595273525503993782088176797046265740899156214969128099787689922849783660007930092194523847718185845143306348363304429871657492380340131706648497653814158515797438816521080314144249802457258427500756553505201578038581966281429261280951249283342097906192972416466566882823842739735723901145656081727104931332703428055843270858252144755491878721580387625447914663076245534526218675023826936675212858186624138130260683101872242803478306501972209896127113187715454937264345455406112913032637228584155265657873951189555999585089450295817667777444978431913663875397883413499605663102202276969161993695178673590943017605354360501810721831162481359220901744265197265535964614365374829174800756099830088675410097191600853162037633737800543389146731157928048724641289656214911900453533601303099845454508069887431959177174776199641713383716344086198371751328415867184399829359960979931194957313579846334032935735822191750086585173194748672164999318495375667349290396909624682198449427307559052631718664183782170245749525578628178170339204942043586549300464808982087181528284818702410009627113777178267317368886799707540020658923028401751061547870812568876112662321017206071331483796448498080412739785330779919673820668001305380204911487376163080992219962747103414872642925881539389182222767998567483202335245066299954506846437672767455319099411283828103712676482874699702683057493096281667311324318185100657265361749933443153782292254297239515713791991350635680861397842892381443251577463416894254154643046455538041424381124723308997848204423775601226091235753568486458145952391179160661382635978151633470074293278997070974965737867388830231630100318024293083246577460406008758410947854154429006269367072739074832969554454558633440050162761348385240623180265524666501637414050938550071340041729247077730470275316310087028943233239275870679515034631785387592365050068561747937390659939053385169176772006338849954593031048530851070640657692501579592637217303895701612705919845056150222668861991609324582843053841713222737076355397123969798785004635379891819520417574427621927939912751190420853684540316248103801264423499734695878303146877842853864417466842815826784225184811427743875164679860369248896298345902009276903182107570681803469097581208734229204950258994739257029634675421728392488628705040444107468748043710204869549014967907011573233388512439614624000029957176576493802415948517703225233032416073378743342695241335456511128264128290100314392423761078962844592163980710303928197068547617701535881232946987908231275203983867379779291127900800682039317509571000446486103426716427441409530040813422119831524427753131125803629315530257185183183528337728352704013503423167138967117901105129871739431367459204867475978558702412487124889546740940486996266938475502085834928518240212079478425028346204298725530535500898260973354268057610782400668518809759361628859805355062096348693295464935295869858289031618662326442964967059557885467931213653042651384060413463025565122181938381127565300616336024351444798223532880218709668239423837662130036096972791582457918977253255267867563855935754619713483512448344738529489434143105205118232063459844724001902885433939417688214004909262821231203165272077661482023869992566127563005007087877037910339935192332045897334308047293791490836788843239314253548920906463055611643980787937941853530574778475153535398106597480369267937174746934290155360417664116249913262507755367356649806860117709722068684663334152207126140226433928100601279637054071726124868278849363515725815820530906239099410497396440739011856656003103696065879148294594090796606862771553948565218037527307891331670195375597741013874246904117373674765546352518588245772111365849901959262443811760001765220068917059344657649214310703053131515367174496709210505737202052625038495932906009057564687134824414307353339657768666484485459255650062811726266349356701476509277958688735366496819531778695058220826173224757928356006427509798605724221503372185795871225227089953689501545171984154831617233313181633053478104939326634522902108026406780092395992781701257208289435947666975126095130691509066025325677161051395542278974034060181096605027005604787330584504754607196425657730861295369452632754011358666200711548768409188753069601576017730809272892671177311310471871618039895198472537167314523920969059136082586972980565753062363499907508673158316423466574496207896704847793011914401509723620602369455601831741839371864330844520546579043388083262719895016693163167240794822293791040441786299491124897906600343598758732138298418900946682443223903973036663507888525412940976208656175149896148876754323977551367662638082145875242455247977986036214899440791583781829884465265420814738115921131747727062196433284812637000286432834230409382629563281084938012229597161478783082047165387203170620039560556094102830186417891406688652761643151353370769237723598965271163966741477122747213945068277697091472185378885978909671466307559885099649963554567230972767878845260244097394900910730215080439611558757762583734808085172599325199172733327796042357236004899669436086972281148812455710349875528759285842628493046215514738939105703926259076469444927878217652397300546292294674421127814300597294632333644345930173277204669051989169144388728040555014467714815967612774476760138774666371800081456643102903816918111822407301125319625418385199811142162785906756290070907687972756450487329051661600890473228649715985046689581983374466182797935992890977815843849611805076883938393805974385272911642594995223034732520337381757282022236754546600061904747862211070415794711603318682389682171814989391839779486649676764174990123593229825232936249704729637196412178395471649130265218463327753363985207813525073533877692008799191788261511884891642638958704869876652086032940109747638550674502462385257328889212197343789591497136562480930997896055775502674624278988177723922473064926144835562977012105464297552829996107519680944669129835722459258092708688754942111283011702922971142996106301039761172545908211006036094519272075834304639802537145065208292738832227730303346496071132642670326673051234857835025505716485443435390189027690013116847962887276651855216000171995337697466208416661886573637417026630515703548126043135456956538809344924522492142062400798281173495665174724802477553034651502638966764574191617957861268368705755174871270182928021552507076234169970777158215677000565168295680238645634632895483685909972535777510884369138367021731598620607327226533107035233937689835261772673677773586678078598257643613865866697586898737789685119712422284252404911023252568684619362780249387606125998155409940384159805778157097446356806942797613028185716700065423998108023146734673305847535163410985617060133765030123097423969004679756365307379397978790712429287440600391835471919355408460898500168915583278685025427375611149919231111259770097900720217514202358554712996537546864912003129785037649152173217842768990753902713490422332431587781712161594397035145561794169888934441688911369942058861762650636181830989422502553651203485545734820692749294433404752151235730277420175181044194066383994541058948380181581556261899295950851992480373980554162221064269914054506850275240443468311601581221706982931194775262211510654786415640027569479467212281965643498870473273110988269638546607287910237721193639955997498410837571525621676515735802690128935433270767920687593618544190084035827641563442253450439549380255012817520462112572598443609608712297727064258003916222752689568636510879504757996167529520615815837025317165503639613804077506914498084596187251240560647136101587430523322542310392656076966065718117240034493567693022231640598682466899997107076989911882366903141182512100537267949533083811777331283210620551616664627506746666104411670810655171697410137179340066309225734374966089472114798339218358044976793754233776049871017985533032573681848393747868223535356073841496477107369048733925006828818196294788865460715479207395682823475492987462434548260078849507313304746753751116290209106450637697365043573347216108377094086832560873717188120237790856846329905274320447700097315605129545611172141055122695962608189455730616656437987389624676121000786800175919991985622132857420006815020079846238761115535772759123860840679834070619265419179139487269189103026674429739909403203551776468006339509159955233257259601609281829074845469764463121664711784392743148529008329343559665175571617214545557556822198870020781790415713681544934325326428666452819256058649376307393461530941088894734140310402339972550108060403491274029729063105709597825800548404098152051425349972336722645789194429400910358754652150591763608258037879923269000745743362291079120286767063623271310019607399139357485890574502811990688391283300063900525734779138996504576110942275195678111628594732615353907371224675878783845224812785375730303728739634312056294971213705746184978486826759864413602933790708737387866941326530473180630282349431033812031187411771814313114004958943687504042103144790828451319178373900221596021404271174858050095255294488968446041453821788155504620994475543392480434577113156290125796498875891337165020566619706009281953218159523351362208758363467814118273359127385441573656868875709643552971402429552464099358274117522483573329705483335700478158242768554404382171305180075884844390278900508592613803089423211304697064384831180977277621222847606798626863630723015578544649723507723024045581337190125276709654674394048098873569230433471558895595262771333452418265588311801770883674584319808023104550743241445773198966689797262688807655430365561042021910023518095638079611311597465971081954208622397178757118875311676761855494582479458777559514276499887551625764794293792917223853500747767396216636822432853401105406096303672592228079332444021157808374184721261679006468565685552555181540335865814449762125567027513232417102893246224597306210668928665107022064789316322349524437491601390134759211528853081182256741970430762690776063531743457195547853683451218675073418656069531558129874704045853100871904695277141039745428892270831148144539390696911660556119749789261782752342695244644599257347356643075545989172728090144514494617699324982169006731495576756351713457164463954342991661173707214016674923714932861344207422681812802799581547480206770970412859726884887732392395080338476515637344611517451576665579470360756465170816761978521183395557925699531264170689635046035443835531623024320937319237545884617788889991857572110032260257187365424487989004299125452413379962748885021840822303561383025769160417217265633197724269950280403284473139129920159420399328447574296028815988632690143770224895491639434273049996718381943061546880326301398575047248682771144656338926073504744848978409060414766672779761201968570030062334043755072532819890931570715841409975084693760329076080709800327278132774526024331064456177944787523343994023634220018393414562482342271449634506272224845870785003385332094947663469397738793104141189406073236618279520210355878083844202752124424262382667753637465543670950177965075047391005778657907355118011156675703239269391198713552544280409590908515427578873911694856207028564886671939459026739611330187636127505180575766743004689393134436395986805992425366292478476973270624030370261580053834542487970170078332910554914216073917004157699957150637695966801785003751944930815043928100944813092620448766182459589515869893624441794385920306917739345898918482482186971805862758947674355963473499634566106511331568771185937758457022762817892624560008502573238578166301885936876516724433100277665925295930985517531399293273792731837373324747405148522255001689029326079272597362169503533577409880500420421416151537568510232326619645575409048510405301632492647250192787967912205666484343172954775806847660187251194472327621925999160397471771013551400108481611108925552098576628296018227135891936187926272360394307678488778412804165297622072704412663070261850527071646783641747433794384695616537089885072055286665310993268775643911814698185525052665128570879395946577727247795422623646520390909776624911753823720609281303945176064756924087131053681613272001256687927786500005614365403922051234876277198910832023626581643148192462432396028939323178506197441745870328285265541450436085462407990934957663103837168949862294701618618646427281686006803069759082460882616261153494439165377868609952654907979330178519346303824512672969075371403062463356904388272622945954018051291680957998404631767688632906385859261068343130300102548438333675939618596588978902506868535722646922892501854373710074405840510403110773917460163334374356673680229905623193376714467321619271470753030531384472921474832747721292466990708402271247473146526745753245000839367847593952883337789667667209954112865078082816872905616155535992760939140520942629356228697800037905495149598675858563565159401870479796047496945412077792020055646856405427066140838960183589489196513374302730807623720158871123131170428985386085184453821703092518259912486021075378239193703425129156231836432600528526983202112061188299694260244969394952112149287506413358251232444972843064298551590632084679806575826777497716951966535142435700847606808346651985280034392888915116936630675316171618261191129857182530904421608264742157493939010688374009620134844524240793765697078795765607689688602472434900647436155045270431933651809562653743071753437520047556765256536358506099592811645523177527897961422013285649553866299385263772927043834887221097535344748025059316384590397083687202013748085664847528418298281276681148504989898090233028587450667730253104013751369560486732767937141336334607614113710552850698672665881771756587057881001965980952366316753204410802318912198049204122269227575294927494975331610268379426472772855000707625960887295729742974933833792164653183479151953815093901300455211687380007775154621378064632122991438213681446671822211166812252248333068838942517153184612434612595336782894447126737821277774442095207200269755747104973881579840733663892974050717283618193784625530861423740838251587410878966654776472880494373623041572999683942983992326613171300051788754619543630441567675521898397076784316957570903633904103671371246179504667679160928656364938455231251415437960743882412405474835979060907539129386080871894956281514406935955150720469719493293055628940804471421209148067659418694279773063183285877528064698363366487847570325736951869260818206939437838870298486244058103381303329310288791824307613506387520967461141290983217879155333350578968388249974313678194725260672807731352901928008257109271618348882069857656445372664643184113361063413395675647019223459845522971863801857735380975590791827133827952332222312502433239640651296892087469683851175557615019843184369723361626946335156073625407035888405802665347007323914527393532116377671311851317977118281261090515744630465186553980644855012708528767757596079721111478603584917563343182814556075912197938234273701106552343137407042246083519363456577351855428738922375507493877230762545556198724545534265740043963906398710872440195246171821375742267744982130460545260259199343882115715001519974693116183915255439541562120611862544411052972422736148205505153942630044995508163997831588850510316894272743793731055637797038210372303880388013741248325519564756600645608440907918879163755299631777199227528216966655392788603990065098388424762451979764035789930656455721231337243241321298808443970200150821979532267521709556295677999646494195453451084865965298284431260849263253297386154699133280171900020879686798107905168762500036414310326009137018032988043054785400516876505327586917184718521318292668766417595689669161973548360458356020249038556303523678938376704865886430319123712905380032869460000881115162675737464190513823701323186330240935691206364865386728756921437646565997814659008686636114461545409926819147973005081398715145303069621556104932162427863380213648234438383957118490154267798843357791658410785824544358108385138274640548966982873277532200664400600673358957585249638676244378936551056798108960522404934996740653808624991949031387132092414882608731471022149975533857404220832143282100858812856003348870787845857841927480143067990935489127412135635783870531025831003479602526836121052474207478093491934138797274798309935824219995041064269091538363924416182776126590533456636691646392259696175216314184081630375463692990042402068031699037090841705685872632587738748176272489047792567198994710686310529399800665129728790038400886580963453916178789203170222670409352877188730972353785346747492544637890204669722458404395293968723503448624675367715220813822956745985974682401553815078828020459085697808410798981810025120923820608073314319127376000284945998419214834061530480478896994806204839368066642966074050709420118467933336305718488404748063149933905754560210223604646418978284514229743605135434524007299799032486820259020531813546654279434151665703423694329035350820510435359821565629269928020021394033847761431083635170218906039928589297301638838497071231563228803615999364384863868961537634212632793543851614800467394105356699150479310477730754710236285697254307073327708166524489561590016598171843409899982488606018500304354034825960005079209047913543552813423170649448488274821113518161295124376036740080824691030695834930867092206900875398105276969862832602107753685405435593029522033696384155976190889713908375132022349202821277165143059478894473182691934927171680130719066746900443139114842945736682931803934472052033336535553468907020297596173852094859287817153416971428397088895058016541960120784657910933761127645440652300637581993820209784813648032522584961898259074705643912749793766294702898959919412931902005932612200178237973284605670418745981792324736033646455837810294607370527265899796056622862749280174260853520945637503451512984457502587865412852296896811310635040694314355438146949933097892908398551313067421042197662065234859659704768214714610262753079992976816698871964208866910220241844507952669679962876247723718543481006384228588440484473044368739443238570974802850882042254099881611969762862769682601173945118912134274960688196506802367626136238923327173698334436118956396247300545619562542758990758561623464891292836759933414023870988770961362836805069992740649549139310269307887624614458582384723325021646468437516789456326986837770959123155396976556302498458007840160771604446635308291083462002710119386815571864664248986842867822253439396437852055206381794179593779094395459428001088927862469120227762723917841916396850819175816806167520278152478437758189749430830423078240020784870774254658966423974459033748282344883365117398906290304330311302075801040927132872979149971166974236616751930578304636700302019641120822569632938628811461454576552598855442718150476223748313323141355682292041718693291113532960075808514607175949600711462323588103768298295929807407334461679843203329971184988624032174275758690614834482827420805978170460032836359868395661959911671177065206808913663580317603260870400116552572559684839998977648961330386262971231631245301497166003876344079924397163301210473375765843611465454998629561251073327956751436783770351310378527989109790841256971423782310070759313008255744605758619776800505791859065698576298033043036004603273184005285663790859667220244192469423444006168384003305195923808041208393120036268691142027153357834441618627054057958372776104631546802253366254091407893563039995904957368963000544208336483797682107186068591193730645902496448145696801620397900326653998022068561034268734928033144801064545055014446933927207323604503473640005559522021621756063016784845746490875879991408762921419721660455912777056318987992896479396358934635383682707683430199346196703825514526270041087428781071301084504619685476157400329065703386313647286346578188198636717067943318833320447971498820733089697421971491128503993328282971178575362633550055171570578615330323143681727427232665114961075187526081631534184042348080936637393664475182469221373087873438575664218557839877318911294116923936252271211975723169932294689196529929143631497826049001356446199599811988301082363090489761077337065476639997592299747831676689692792361898844346826712207598622777114245753990414134631876774761164118308994166808994172427969183277652321724288792774281679279908643536634558553199712558831738988840499107875136259403058443063778766269071110088244975983285224978155867412499272403157451946130487121956568049261277930896707417465382347282369184029706741690871520873911656796675257053396670621723230165357549224794047744348572346590883234072522202125735235513494551448815143482265077189010914477701394130098422439359585041319307698277738122468614348991121265021864417343517879410279894866192292399702389549066072044310111170677088648263188272398813205472757861661474621691308794197467312760713853035946577810507449891035943924928178066866266655739011560905039324925741890250663928420305137398430282762808225271447539509620870455702211206921779612645556074950412794486794521379026842948220601895504433947097197496001798698262821510512156114433061023652714139251266168784928850823402002443636985117237745202842118511194663839245689080801204294046207453790632100763117978820328689473870100917463279805077499473101361573308040157514961592863851122950552745586580358106244496636832502702376419137042190336034040953474710203751520379390791024421924406672153999277123825370736249222880061124086765065985819993331554331789402881637069567533378336821737870851924885014834922316308681163004015650287484693603718894617221808132517691774853322191196128388507834666084447608697874380470885559052539233295976890139536657673494098857963399972490898665579340475844735389226156374021707038178171498031941082851451367491806645601492055068142243905932222949489867963728117955571509207158278665134413703519954268803470147013975592705776050135180843223542361649280000247588263707247712105529178032570891511384611844081663412531247656992197769999850894174051648008126428123885055815988191870677450952670847860983508011407206514455168453324570861412838460619063082393149918674247830965477209031588585710895532314155030459585085128392335475247284740697445940297483915265372714569250712501161011718197728354111393050008227391722657419802681336150240191090822369153040870126117596043592052274948853020947025602770218660794830680758985467229116075791911226228962478785858407566602767727991150933741371758421555947248410967351175241664029425855300994635178278314991833673679630224848595081250982167601246435411469349835392195464103337352723846753263367226341355479571869041587978226711806420809035214405430074927741816986124913955606969708958070179522740186857647273541846753990718975287074417433488239382323350635447931139613532843759168368812017475171131008907299374662718964702118398274236547523782876382746596334699785215602991568694124823089323227924003039818129320320843062767474943885700406364985325884537107634657681940435967375744405590261202084281294533501320486190957814493166552099456101063485665119914336663291502675928373205557756163179126024012054977815574630476794864270489563181948245807433400514146318202253945989082528051703249674558390844070297251385062993597760247848419685988308118941046950325954950915442904349649679572331165412286186057114139888324804244343397485357643121902509583586300636687958710818831800903529743457553784313868886126947192139328330704093335615451628100114413385199191469910575451766042890765170248221353659472432964787489366183417831881735049315846598402216871553392170631841574558964787800791421248063200918496697793311555338506868392092479759359896009275615241753786530522675879107505708438224478807530072631160330353888511915269074867379922481217854822502049021420521926592046746603967595488975739508289900042003690629427135432576283034801436897085613468388501327982067331392651288244866899105920434090960255496774210375217207961536555030480738162084214182166017194668108463899387096414941824064451826654065971763083918784821727373162263698166760766950179935816056278613254608303852077753317184997766336300501483685226064451588972390929512795298562619414939414044085624243643188866317188958767179968901380060972993639236976515042215887883087690605990979567998669674453891500744963701550662049450207219303267274711651191324492085904680351283439280478097638313492336586722580004882567849646015449188301609369937546203536912972313920572492898745210348103687506138522999632074014184322142022669895818839400316094294148640465396092216221322528388914326355236231680882797179378980477442583957156262114829057464137872508491611755277345324677506468525500604988801193470295634402711727305842121932358059402902046009687894876926201882545007236112829453728227062496053024492160747226368371104895521909488311955224768468322084905395567307405896948904940908760298788732335519763569587435893544105118009939118282428753253419809267295620971285822632290439700500290001418435008449895858960161033396004319456864721845216837877995692342255218332216659139834073855130860284068449257959953531461009188821786785405218701186797639569932246139761269261833456893244019028508940263672505946731301889025394918985092464152116600153651606877939598723345230648969632575268776413689124459118184434299243813483332361634807121657824746022757192282809533758228616292625267463967977504491495769583355011667028307894781932383516688497689417893156709891991610012057920245028024925587522015937866021947933117621265107951710209523681859647149015947335623781528219574732269811032865539413958402578392640428018903398140430142816174444645951164730285945742231221689236636397637193429904893595646890855354837885339177856740637038381623902885408259034620926062074622963264620272055076495833526026247488069412647554022511696274979512735590880331602236548565883858518624646292708458244341970316391692440228114066045426773602391789455465454529106949615072610629791483652307668171120591905111176653574704846091770769102977927495003217166297633014941645208421547836877274109575874694558884325619585149741129982267387017616360789210483764638269484222562948728499320070430102198925409212310849279062870647599235548210591159650943119069067958164252318477686277525932433497801312173709494767379321571130909201209624890626627700290705154935372565417956132042734417983801533976957489884797694167235784252869136139766476876647324411309212403826549347157390274701159603619090570798169127578813896186005162888659950500242531438969238112653747183785429989433231464564451503691143315779045774493090971438933275204221112209662542174571212396850060376695467363654519807542575331102688728569244197718414235048393639236036945755768675599164091293614000741507530571136330570398480557955186615333300689272610666549349615972930884518421109173584134937573833649375400963806963622987465341924456062931628281877442936691417465879504916422465382640246086690757797403873043333352480277215443175461249820948874943759662927042130004975207543018760155475753075508597389421553709644873198506170096371700458456218101504619397046176758025728622594507386900999600466774721921417436551057858319203503789782367323773183009867566441623365355480808184620262200586462536023716481162766699208288726024403857544529573557203672098897774983927252890821490705656944817962666984878443585851618029377637739670590501459563651482850730297731460033819957421550152510138534660896593014137916202704530391127443256665857506902798881936947343019391777814735248830555714967544660725453940592396115109047669309722843733714227193652823198343330032046554779983251989063241325318165873984053323618866813327442327121189520975189133801128565352416527688763356435436781558539035802991220948859888664632321327986451598107214356815303234877800156859933921728888916882483475889508980030562644443515184023437665222536742899683211084974675472959067192572636670628249871534447454894867328642857458171573099563895944767510570911887786371376131826099602667911890465234647189999136534864293928251140751890716690615716802400522911421761170606627718349596253677797847498709131746054527869497361127672740046706960547611068701825336889059985474084987237938564238644717834302858527545644483606708745011995348369752571402042059032714521716273952902258087837334935253328311746412471565036754160623949000703376541008810035574048532424777127471823480863037003407144753385548975688043354712004470241118265033734947299714559774665678456295317466289202854308756961446152351873127400829646966973064961618565272390873606273541443567516151896833676271802304942825296891027223778487816111567123176821053630001510938764472179433833123608935117393246179332941422268549770404826375977749596588140849752744956891223192197458075489455412602483489111579403670249030869753886898277800849699993593376597301807811190208993483173309138539701488061371849626145902083011573180016299005288282066925529814465133559550563211794569338533002298837623229224876285565844395884344347404466597588709623320496832272489937184492479723362197883715355119709300142654367361366283995979614994153019044416218071995610791403863888909409065554534219574408777276664346176136319590534941357059304205073850637179640130182206673489409236883147583956224211761400933764508524356512513585525526159632063447261910006469943781018241645691498015499845429881899873951955987025648211701609730325604861320157082491252492186481363950173012871954344729620514896790105442931003691649536745482785988200714308967275502839594715128893037172317558960768836070810411783010182168900578081265371079499947483092086857657459110782080625844786207963517406895967330919955550307581887967398217905846824691668824883125763594003512579439244508102380587797292208055045049586107997409430596183399076441783601507447790527391962742925767444476649578930702267235402073798093840271836939919603828710538964007597057856076510286155009698006563115146817385075068948889408376454656889195680596913514789034781100136736802218032201797603701551131479653677487385309272530750835919872158703491137677162142512867159354740550331245836945988805955004450240652167746769945121807836852410425136390655390808412175454737869498091568830921094983028696082354452112142205617380650864581840088684347767733436839589815803881497928211741271816135886288019766055226288559442079049015812273009302835457537281851865144364468027932662370339082631337326770362908930190881233483848590652666284719503913614283022220736620006252608884359838402849559918090510621066722681317843197547535154517955341699602644695084965246574447128151158859308870857885238495204684179289102819496651769130615498852269650851527875633373485486804505295044839448978409890185041961599480979886999765073771135469546346321792771132790657092033040874797246848779047195580405585855171324236118062058799732573059450505559464407557189678698530315968927413906087988931686210618175975248260845391599443036344748365730905622169232085268560179258170021860725187152857686830024890174904720747178209237901917966831416477917321854411263764722117943018297698646357350157965400921422861004539434001771038526598348328852341488293955558961058952675863381888717068770268351391914048438516644233173903098871949675766128820815188018140236966891285977551747181447623653353352246138222642753651747325330088653286190797854090395970260035574946695396858474491922481304237864842679976396055659778069252496682915765559904351831565517766827532778805637371356450932838403844955784350780707014139174199532613170584505726876886276999141513742286791646992505483157694431376341571398693913785698087498140164080824336743855617808720675298347865690576201370835344969911975251696525762257093564715289032872461870698181116291886463011193341620167041521483604733522754024158957787491311180966491590894181493050467738778584718015874197185105768332765521495313340611449643044965338695047251466181659484795414082132171922427990420223564971715791246539175434668756774705373476089333133839036222997466654243454780395662905553464532235009958226314933191385425686832224608946288000702288699650768162671045015603081984607927228045858461227259488773047511926287652777411889047563515204469032305780361543939407089845279786002447694077016449706922971564466377370242473673566490418263958324756345637753521534645681923302884968086457346942376073346616982317512304126911262161429331072720929602172741345931958043223968156405562889951251824330650735836311359159354141250846632364339122532965681558869701894962490346563331558502847013517633225609766991649801101935013054648780847644351540662680232011941173262479317685082703190728786129117644812296585280954510157580223717770902474946566791069478038291452295378488082452529646921354688403565826917271215303745783327929013475861284597671802541408941748123207344260645101477612302077012055896008010149438344666112338760582398569485865312424985372410374978721196727455616643555481627878964505723856589834627986998147127369915121915711783929773902642763462141900187271546779144542860089540446787875278671425416049318872841298573104781875142128490023034085968452763242506983748721651556154093186669232675403036787056783081466952995596241359870434721113521341644950051346270079360399594039952129231493514078306465516851310110966208588899255136327089152944004028548926101876270365228011992334561567278647082794363494020313104769174774386990184573869676238893463974775378826736906770872663012737901333247398681726642416518340945307659975497472706759415851317567355334115917411828989110879005417522573388044278304891135988579713153867946289726422549865371845946097496653768417443908498665843586981061034765609097105941218948689587225702645660104633667832319975035205725436035568870967882387965332338217992183879600761583372210264386947765136385369773154950300157837850793930910288536318003747012328291423141118727641283508369339344382589285594613608583044173104697943309215397070791259341915053272743324156054858011730394892556113652471736213423010398702114824823161160913547815847694603803637995639282332387906511197868948635922550628430358455733323519682324049745835476635469312144259970336688218342670047557141283224641664510409588265895386836425788716294217001840380527549186429593381431466723979968929412632424597631653723603146493157952835479922347818277945189412962962602802017067032257980450647546801803168083402223292835438453654669515139635301420117427933660990794637871663419673622415973839778096084376341493613928895538194991587391317420754456253864170787873083523301355553139857476876100212060304794071912324340571377439651401488905856651776766796838014823147081570962972255456906268463794218738749953094573614158296223526405021683593697634366810504060307730918449989209618805418957890656712064475121064639900310095148874028352556427043349359966683501527079402708224333096165188825904168311552859365384327910062395531575234693938715324791805128823495117682919231131884639859620818554578884636820276817857310220017542668855467635746126842680168024379082759990428734446682413102456099088665538399824699579972774172969659096594814430879605030663570493545917117737413189265025086365337703602656962666001267024571722062587062730504028161985522455696272457461694991965310888958274142321096549997617802348832103678312999500655081752538829168056664289485928018873193649313972868612726114801340772438077526099953301333101070029234981312617317878500072894644859798984426477475051325934731124515648239142352061564662198227512607893539643794516037707576942065351048979849009200610281435620365210898913503845931123707995882810378397194584036016131233408937255653917522495007223860145883853353331570355678175028192717228761675729185624120686768208487431048417685400395904257815331130930366939233466699085924057726762787442583081225108719763112769114535345569369286812115587192564014002433800879336067175252287645607517495960211133420158036198568532522368538345610888711621272461765467271435399929740166006316680256098596482125793221360054097941270493929195029185043621727099508839005491052265439343371116337620986599992627905651118293741345354205527129838666309350900888624581207151948148725617937410796073794800273011563033978169980154000704860037571895661691147678038827039576814039434501679217791694856142523906168821540588819535266240503192906366684689198282628579037628058514222061824466482191892306109715429881104201191055123036633955391885500171934291614569529215670864227857124178989902685820629185119322805871017590605057824977261679841710357049300255940963101338104109589004366746665092995383452319619718995984613389815078636433896267934214836131969787602933324587435950745635779723935610793015580290151730557268718138783919700276705276267097174839318139867731414436756937099945364161785325520859464819742770391416635619629938639667775687232608763889363353772640162236976217846996758341118022108044397433776003697889357096173274008766945488600562133604696362022931114366889958911933227399913972933488960528559175111745478312523797964183466416800344220714214302638328807483684993296957365081292133419309061638880624239668691905253490714909618452868165382649792169238541726284240198820440479782398248593730655075412124825410207210995753983099449317999769999099394197039666693450933623963937372688146465472955228114106136100796109684217407828852251472748229374174817065059745311582257842434713270108137896832835856880315747128516229981895415345689159431199658614366400167519542155620435170061929994549187502697940505754312144843002987028789400484786582169640192495726879367896693796565501471845479951405127130951151235305862861943526815478330478581268167821473019124132135363760664354431662978623922954345709153323542472360848813339277032718993032708545377315090811898283311848711483103923556413496550982476896687361182083536581055409104212706568775661961407760735568232227681222643959461542027893616915936834655296042152318987819829742213145261654048464761776208851796901310823286450061206353464237094751789372813149912254206602518923256121233382986138910618145899258947098490073593603452475970621750945903998758656640938345338411197069937061429785803701754395309163965397298960971010142431588084534444928624989129636165357130863760824195841953796054456934606674995231971487548204904958622176253586550347012486034498086035960757461842924198179993080178519319235656939328944036959185319926741621718078722868990810120405518003202664602534057223103935035104618872317684651795779891752727770693395870135666868087510755622573588469185352805103465564044838086938172180844622770291582553824507699330745104887722971098566418971207190852326651386964683720191871115994274075081127984012974340792053784215591755229566326479491526149533389187301695831116175605946896912571345047507885021230895058230862605117820051550165282634674574463999306857782197724298688340678704634929119366150143464833425140375214673831056473204393542967835853834699407488623380314752774779033723590450479904063330907989260404257051850342732720478505900951449391238016590502636806157296179587454489161635404252523554995859427697072092879701511199439342283411164675757903908368200263629472477956120552452663303206136968224789195387538467344046314800246452308356170615305529067593931793672907446178632904518526762694359472854390542925547887240988163476261583043457749059945493351259474342239275022150066280273071571693278059932562307318910236133135056203456250806714411242386092261991291240245591864747365947138143851746930514503783499657311122637940095870189710217680355958350385100412449157256720850413834491397740044160486752409362980490745266581453729919941364764423392490178548495423995679014106526273841946914988724320184884088696925251846435872178393389124102085494193297530970884867213538893473908212421590144044233482950336168964502370576893566752703862417656022751073340065284510484399713279290750363900401124020805373889036351379423779686966108437457892779403635456445057633186080061839286854089807382223803143008113404040915652532143742356873376246954173206680004940075873372982774503119513246804361265879788191116645336578264960821343261527891055806077484338603726868525048244104912206670101922760252411992239203077344318021286200918571553572678549417896158218275219867864057338857265728906392516870090916914895617064323422800080859010183641583562678045391496482801395629047324290922453636516505100875836920061154060268642874369534137962564265255441016179983523599115914962687203818503836824954089276179571879665847605229315326753608289616559376044254237718601256182958587785142446400262309718062619930027711840522913454038885760936302245073722457294172359991366576051186470964815733385048624608229773068521849825814322787724192990103601039499063082741397852900781849466464009651715207750661521033918827988208289722532243052840154429369811634236022733660927251462256787479001869696502193142351538492521795728103543298619677047568155478537430400152210401716783963693660394965483628001701849034383329907933780134395308653063105945001369314020692787244860240127913394365147733180564183793081321459246917492446500160262888932534511714054301469464330671369385560207987568784438318556765189865402322500235225277631718832144579213336150015315982885970148779397786579274108610938839124164260901288673824992786550517024471494037992888395370231982791105326481455753095837618626501475592975865294058938258520305265262172607500492453763170283480018677085499908601299296422569706975713962481284011511544915909053464080897996430854735415401808104616989077782859767716066255658727826115469708384813448847426961797835662592964120897881210910475542736792493963192083684382927222644313731126460793752109869710549813073587915052041794350936417425132892573341523751906701227945846247622989966189569112174448919729871149312678461044329404191066806086973262852296907475509565490717824667161451715223816136017271617152433314542176246049895270534193888685407663625843701264957138507168625924691024744895868682187623757127692991109787240644217874333273821236050256706855096989793380653926371691389247718847735095830747549525117196959926211951396956140004631923135573831259676707332688442141284002025874137734952731396436769678595152116889773347664241248312752639164564820839986613230078887373109407958790132275403540391724066092081388092256430835556385692106987065820012162509827201719857468513946152401654509118500186849352079550152237242000632851152322868360986606304555964110512767575374307953982778235216026298335381846715983837189557103639672806499412892448791937574300780472448332160256693967493322440556996340048529658421264421896943989077779058858302775082283253046866188656826507386201503731579998801475686043166236573915015819753184603831479185364863839284608105217272467654206554000742998896829797881650251238039399974028969522525391900002832030279360673999562291129021244486362851708618213729642278891601802680454386071063584254147035629886347590678479072199170331722367449052183261844871266108574975988226819548530716582788769057710138322673457129412652311667700562179287056147397343111849121052755928137721258860464331838877430013974947367456316718654035510771782399026143672336748739252722681697851191594100532810227343931947920707423890457491863837061092641981529660250608441707763194935183196884799874121526740555352896924878067514455429152404918442353712427120844421948809162125233962881126678887692199270648717904531177850058516362890536650687992236304784176680663096363475136489443656266397887091100331473999786947222954761879191180811881415096706767410429872332444105034313826588034882168972417906496209657202209741415570412105298571026108481128991899177065440897908600752804036784839311227503630788268538037374616140923802270758458914601580665997186128139922199241885867203743190125334370172816140406170956786603265192373258545754008889137710898311028939865353426530345880680348631374029886087942915859397748614983844076223493830219776774680338420928431368867756056186852081279721415151111758635704316735298453929822970255351663353461331285108647656525423646146021717918198023993807943837303109548038990636332210673725543371484767222238297521771031765913129145855835801884450696851541203645214306956854426602423297796631406797925117119647312994555901747779802423181519949844939947872526231373682868105500977007808180572267981330859443636216066708431292687984826106575557177038766574726134029800939190689765824267270021963911083384477603571243959718243963327644532962092957453354367744235020059325512165109511814660625103580332163204864963581015576842286555433216161562886364599017627721285602824182274708899668733842981498254561350075484200464458088994574847915557712268297733973781951038383625716447138295354331257555324764455128922840814256417820061122165724801073540041248210511028257806897710245630215529777674407911160137255773976356564948723851983939756285087569597245698510933408705206694699457875399554543119525206832342740017249927117904954159236809775358416294107799848554046317818655251182533931403385558148158852047823093697024596948860377711091851728285633703833906583054598882822795775868292071988500370824435551299447007049226054974021645172736452098369778214043670757230177986710369757494359950159072855856770496116174157720254706621369747554792373627530111042779818391417125830285223572971613117136404175462207729431568387776075819868534045906493130065233755382102468906400618939314644270957720424912618796053102953387503539892205581935152140249037319453281992700962137588384099386025490788499338414516077080214583059322325766192053663232390035108485230081788122251666523652323917870065891653108628699790821931773066159115859147750181232915766090719032126787872061952253499491725205247889633266485087413271895734987931043384234857240222788742451510415327440950493034740333621281939972815792126455122587351308517659310202419756272071827622070737962364623395484218201129984830489371304812278356369362262782752404128715675426996616208136226016640726696157912839655310637480994109645901696003954133564271193880970269936676379510958013063517789215167469883467571709869891641638546483628315950741331607331702881180871952621806109952786926959633217795653313766844512015505606302110298380442567450060924801695295071712394477531660934197814887128651342103932495024931490279284728720542656382864417149293967883614731525302072992303826811687618359542631920728591436303701822752188600185482696008933957933525484678285638898880290454126995498240523673454935613456030321872720355396587030105714538768604003110175665143149653761429821423912798914146154471467148176944011254917243746138510607734568762449576542387275890540052050974176088951285189643920753591315067692791601610831877835059711509849779276173772545554229216642146856581005304026238055735570262917686305818600503713569945639718933430100617897302356398540068685708494086337458907007984109023490629802706686239953043971098579223265032064617873030759845313837486323536977086456601123107292204330011969874839755387716453773618780335827996143394645412348000513274271992583616952512326281854908925226603208691119142517445479440186672492065464605975314164263628146256545951303729020138203880582628911774873241648435837026916555085630035375191162611692340003788064429478838974040477725530030581176307961496744995933778138698044324902689060421332549401501628662967050893681740657888255739484852140605560349165049048689316448191535929140036874297025219501458328787338318978210431221420812388202691948783059320281829930587405617970991225296652827861611968694119392019702231161956523443368940725410343487415892099206354022559681619005445164399194406558858205624766838540194826178372868555732032510791635260687265432975763581517790396837962995441833431122657531262729783241340696310489647230879564841758716686049582760511313298370882901533887739343540327598601240935122001022502812617537461158266741552155461820267142421331507875233539119551998384055140232154593701430406225824922336018909663038427171055745279796469064663491466619842149839812063189534845099929087300971458809180358104917351845634944534126951228936050202877256462847356260778560506872225195972074334279535440996404241730572055924977920470210636144342796963955252215776558013147646132621163707552870997183648368525080283123076085799500095458959798369543527489540034406945430459693917826205419370921798030187420094486087802780960919352908355097640543955018888355371702491813884125551320435040097585667788433721882195558879815624967503631302389161836683945181708879870494402178151958566322888116553359201120554959413022674415319910804503992065180607911336347562075413444307029625790120723000800026081589085268304110847316846797282214840914452238496378906715164281275286777214533794097297868127526195139159750237865820640872649144989258988081990447086968463107914285603727903187437543783314797486176530708615204166639317180472861973098275308550553865766006056334876012095000089208652338463599801249609777683066018970044360763878837482562052972401338321574455770658695677145582850186474162366981677948392565675406507067507551281260559844701064164995162880424915209260339785829979917391492901225851633015042320235284176297126308705282005917228250362211843788885513069376151503482932233679301159908535235335532135602483087319327058728472996446887978896568527571498054785965057241640879612498624700217801671812050119972439241627187601453829349214002234909174945384288657243115424404904563977128578082054531524404940276202080450561205815110502015407462426597357944653604677103882997882473662392639426946129560960392579511346715407877730211433906281443872747047463014072947064397020762893576446116763302866747611304470148083672939817851873628994345885808450996989971219849338760401430683862906543950951453565671630199987482004224036132928487273090997377174286053470556730342262597275682290863840022066231869793264194879423443122651110080271779907815187480531336031487627389909641218857856447758559107309147773588394056996417283876436916222932707522118705941355573092927408256374787329959254471094467547168580167476767739366193184440815436351435531739232037760488180325703018922644122777746834470147809855563055858396355203923839719458390275715112373183337742636544134737956866643158067331380650203614458604488558857427746402796803408187111639321546820353158661475378715867690906936723651310578052453069687877860370681041357659984989437803995909154754933884356169407551553428081772936576085256699619789004903541035323788506166172034426419885253311697088475641904035822440149716132340027662188781117804489031468189456976604568438487567087441019879657429345239481008358273171141032313484791509077645724335800904377261557123236743017268357533482004397070527585055923758304358456945666821540974026556842338298746399907315066550221304449689608819273747668071038948829554048313171437052174720947955214492853692375366207746983773522753003226981422622511059040041665240898633680066269668345515698729399760454655773259855045132274097898555598495373912948263428318821546848403462673888432622028026022353078160314920088202286804751203801799909468377560743294032324169723060794763996251286850069466203462760214552366174954312907904367451002059818216558474636521634568967394012106072387039103829503697083975181346260004798115765204039507583761200114162239044521324994095594795747513854798586846183694524298939485844431971259360267893073454259611342676513904328093223419760630055225927214855646599352934255387843381460124584047789071976551357367253652660593728263401741133871813431269193933664972942036917546448974342772859406967666095291363740637323687895988312425853679198642378041788058371215842917287989270468189678680081050925766799784390426190683823772541002967390348802794600682801053094165652407236421148205674303651569973973059579511211498113611610768083890519331800806739031547168640743319193703353720225438823300483095954100775546132341368359278566230943484214180630239335230282591073497850058488042248798773998978560828309586443168314174111813136330605137475959586071514410538863624959587023929906231340821359542110949266428158071214378733498247631682204424723593005829917508370681863954818966557033305468019236177330826797530655619226861580022148823687747374324958218058865672176995182726437325680278383968597898080003267099046356968387733457336194109017856496782009349753744373168058031193928061462933703763461212367590103473027393510424433023026276625639587264298121753720550304309477292134749614212117077194447352468707330691167981121711068926189061477145160281365433292567569504450218694789597652351954739533637571690277118818981723393597249861112208985949127061538085873427556926280337498119645790244993846568346206968781187806076518364528327028658413456947926507800050248193959557166431609014978703797598696531211132931451757060615849242391210292411634478311030873654015161775674542179229295741254306281949075790877142881623490593049164153337662326870443720398418024584865242916493755195975506859799676095521618887079083396473953323443309137217930790938450709925630233970734682127468922906237543198162828716766035170507344744155100361382247486476424319394126570599896709489893013368050999884618241941069088420302919965601184492115073176619418801218633465150289798858398402927962178989291044518863429756016129730068792024684259463043093181189066869825045186803822014301081347430553301762143378500944699763905857543265682247700353763127355010966801249864501279141927813436560004740844339042980557651127306825135012350353028689935219694574281886748670745727676377807026156674860780173945584291699910133831062406270580885803714720295429993142546732908421372499452764999988604768353567601080165883047700450083295411784415424336513013491862862059951945862880958846623671119430922690210945277786952799744207834912275221253167316387655436304619218223246425430905069557149090629333952121994204068039696051376756079950685785981607307719113963974645215675873608837167107412299002009541005683400578406737663786178482762261604327924756712449909880084909741956763876651975410673807356645804358476297412804844068092490565799692360200588603030983515071816598464874546193614740089840116480397155210414201048477191168869467495073200911005394948514981174736269861531063416577486460802247610760708104503295873580389677274114047604646800800745340134604139921583555663616894267337631597184325526964806343108981440731522823669915859613123504197403606636418550907014753227870209459578592704095227493366163593559723447450586231677484650001778272119637405596463001933659126246738372561196612712204498514855556245722176812729488524069021809296915935957246184046415340614955703956762302796877636815429623969850104558799082873561805486752361895151591440398769168585187301839785910682749720813326550300189244118653525043141198771222120697180976919966356197720257080091136602029152651439793612939627980757140627402339504445388033236267698859152294576379708702446094990784485156511876349519281792007672373816728454343109874611804252449812884685497964594174521441142879321655037438471488617530320880477423169666884934589808824217790105240537824081296494343997901630466304077732726366189012875111565666141355856905064742693930202802170949787042128819421704909997830922655380216795186767084712292329908453078594344275921572267205710773689962164184152683230939762292045066662497797738151943842845693604643889372611361188831086135027342404778095173251414657007348502270677964646289504691856650462671152250629940833683478217627878823781556405149160402272386316214881790943920574480862881554351033404054395066558721366689178197628664443619542534581492665104070670015166510567573791334764473468523238639050588046865041523423394032631114448883027688054233573694625970297937237676147019211187931175189764116924078461512239371256887202807434917723406161396698063658582576629568107396157547641562146758409791559923099395624246725445795176377068669048286185775236062245205500005040963282457861633698834453682983689559988471016866027969917581147496765181465864374936041684094098378475730431638688170573193627091004914795835938663893797002324027614814542163163590055375064483292850730436300117938523666059042903954133544648721709664060826512415120354569217582300194967339056462972765064102523622847961043539614183092509891176049493922327437801846442538058380225923672415886138025452000577872696596679126173392190812286137191553819407350872832336524598220072523188214217199673823756565248952961394601463413885521104541031762315724461582471478846181254379908282489497707356166933371874152591965486529404143470816596214281986702919059742945922813941294172490696857597464603732143252326052039450443514652329954704223555293919921363016240564880459775745314353368124010316140876333170835920624040399505905024322225037888060060812370297450048634382095390846568012563162805803001938026596410053342726595832368043438485948172231443665989028836700154777320431348535307581754778738117059132700905459020777097809129283300124064644892121734838534464894721417279671485138334202731677989456383601324414559936732977976397767469331651135904000250520631532844046987338044261169288577130080476852391008981465570225525137797710190769057250063843943583715018529126755505142460438065684287776655842197917501068890053494026088067860757760077162556491498970575476243395146463559410435591008000034557202844371111089690441469913610380958444702966141004150221000037172291448323426248651018159689539359713421600348580455034328962306364904633487399267487611753155316109689534925184212288434794359232758576742702501894178071153250769163135356900989664996557405372345403890912308757104715039892759531476511625337474939323225824562650013971397644826384051459230485934361827691600984768651098881877962031925994845266456590224023147253485352790785275886545232823771380499707959050052625642855105365932452994584116113290539309347797195622417961739103083378941973029235019451670072311429122901680371044796086172634404871620155662035686571992323782077356831286618735964059821901138232090348605856617403543159085649553087838398463309704939365364699358325350244633608543321093217911251220499309370254428945894565438183582908780553455655379641944775127613667435388149835463977288163292986936525680892154325500742094444874390871319094667709977969871981693854720293638016082979663768916238732783742001321645846212414043163724149990103422486992188032599879084940465917148746948114691523078646327112307806807353658445675109298036091031799154721324614112959567198039946512817706665956741439950977757446286592437160939928402291520178515548360978436029683004570887557342048493800511800016485731927675228535617956053288278844147778736723117371099456753773797888409393866764271465808748590106254095366661272272492479105217576627753596189212328709879544786436801406476983772585488134494380479095639914587408821815044007542781420540704929360924492874885260937159250092812436660396741747525638176034751938026340329337109408135711023786361729782595566504910661613800491667645746365671566542495950661327690415644733795388588283309523116690193886927549374757890065974482005373893842519652652515801153925932488643922680771553155488892425501168585502352011674444576782639488995603786350267915755871879794401065744699898189449559842429585870223723740644081580492267711174571052397062794714544141215095157606279885359093192911905104002530350440137305791508969371341468676007857950942327198956951647472164481639577032200538657586684122121051439238926942927858580535587990603931813140562841344661139252137851011295612442464386762365051221011821525568560406306791636981586849051423256081696381276325008139191965591770268422865172607572714509223135184937743185083417542748349079620024949090480273308262867166674916359380683352841628584164400049637311412090783794916392958388181080560578352749024846120903868378664308866734563073935797876059985725815433126696515473673047621655727949214670876573910883139022603388771852443489386406701725900690157954767775072620150022882220099823462890507181067866499442665898678494932682136762292587435374201329171742355907737678911214001129965683535763785347269248951821955257585776885606250790632341712211866727488754145080649377114921977457460862933119896370383769494443378878512274925261996906831238541392257070060786263945337753639516738081810245612640614770068363438231221395572589174339785001469542540635080655412552138888288381146306852215719961247302333756593587091865459113383976243406538774669231566812561408980528725591047514038466275116153433297798123640494961976485800331274760501303029887441826060367269838967976505406415098620479038913114694726310211107284996714060627186633294139321281045837212840912018924133542783690172779289044800000217129984372185105734511443212265118406688358812291352564798166435560393007589685922331036430477287958024751697534315404584603645140545307280995868620232229632325554783222002080821356676993028354709209860634776885208694740932846395730743611608224649161249810064633911271305089399438614705716112227219467125951586874026291716686437076934306559581512956731334705472144436220184502516969934662485991009510537139350590385766771801451478058198820588546870867075586654279055448103952149343940919324979822965180051008622513448061819966667165811713233646514945242090175332424433997980797881508431280678455550510596240130963254453905817892455603246094658044045645100175176592337546207430210768161929683590621696801696281932886123797870983647427910517432268357093084606739705091235098425575743790360738443063961088147682364386880214340232730020802366307671609564753196736878056964923765449715779069955721032922145501248404735535355743534515912828161518625542305727438713965867943337347375005727226014591188933828734564470342519228935668822663592146136773985850789965609717492315291555866610346246249911654429796996226534145129173433801664662724154049507521291086992913300180681286846821924596480268320216716566819926038416068508762750674316702974617887524436318304462159973583221970075686280115848949850630205810022919422012307153359318253435976909568535831093580399472882177735274684730858084530970047295271120472167503743005700076382216832327984395187560580064478922940565245635822820657979535512033113386021038582041450673698313130727792253373418824366277931364643829043763435456282790353420980578986859248335422718498125486543529317890368077697771326890623458551166008072630455982462421224151311847290849397202594266279432456699485321513654531202985897926089636140874234100943900946844599897541869244810253779204900756083428552459698942177683536098788409080362066835556118250869434773551339161834487608471641263346109709998714894219221659140730182136060357053353386225643482905774819164705936545251168902494579026969260602202186164286749386923634198201068854669933472443927366679361796034695650966297096217266380772637576449329898841106366704446714865016878309583651711353041300953662719242445615433141687276867099109738697021194947409564971185647774436979677421506589787555687152662239773705082572427695302755017898467226347775216738102130240217350505493809310833785007144836010569781564835543138921700020697260338196799661130934504057222018516906339507734260031708992482607986807371351666114731757477510805792011195780438255475187657108853904424509359015410396343085633473456004450602512078868722952968690033471827566218644769182633082899076625269233270927091986621550670495439840919092600366418287706885465247607590629949020190636064784736178492445150909330644260956423517843860543137811642299376552750237423273451576053038547784877844715334897517077934507175905253578991549770418385318206861049892287156608419912472342738310125551031832318549222715086413525664042819940515175240104897662459041467322502970032656720421443179932341010154094552233439809573534788861477917389997244327395752977025906195730129457538764652957642012627122952046510501422382302907782733327200851981683395787992670634163045371747178300566857802911629398628583528822239187900872540588803937133830203282286090779729883164385792686157988297110528714115535844988927651154878740057604889428373058203034810703621312383108889698124106305113830693292013421634435923740433308865486928372696256954296941657276743294380826026775359634157014597144624362536152748440852015091256550606078120401242484930625947226584729986406418196718239598650729198805914991202685605575569560091930652231076210043670627834767211227665072560907324934353437287356229216742546350236411437009021877728223169924203107186194398160327689159877234972317527123127867898804468224057586457894966504757121914050812397866323401742531475615009900988825593042129731954006885348017554107519996386605400397256037919558137843646642072888080452320908176024194429459185821862608635301665893474915044423174654817798987258271058491344205366643616592364515411353313358508785382667905682018590921126266113466188277117323637278448587448091226443888441684688928055105766815169301215605722968952637287216524018236668171706607004954621407833842781801463853653041385497022135044767366212650915857872403412378958536544331002961034647715349550682349360883690435810070175047679860947291313129451842847408710505441092232213258245204877646354105751497733693473605197176981871956821738650104215240641419343566938867312978242430839762040531990823522964816829471893751138831386994075076457884207579952883405556514594395795277962562658107789575735644067447926865375624432200799408254880878749783096841911674600387191428554128088318008145259235073277639579223710853685257288915904327226258080874061737240063736566135611545316158190359653676676477437903008462347819507037061448298601476296392435524439041572007532409146842903718545107693851738599850507207513026786463311196926168311397528370063931969715178527943571881355343412285006864319024074862500050590808105750415954857585890597123936290332779545967067765978167213956142539252724302447590544099785782324831791131537563868874235736210454762008214244637280692750849455149893656948033683369751749258709017599605670524718841985661937790944584467456214554119160559440946468522627165646823358069475302556971385590655210730579956979035134646983585279414668413177979016419806103939081745826010434843313214874575848052633295127195347423177546581845999505338000302155843272047850197281259233951363021350958488492155620108595229571216963254392830881700641718620559904944279545965145737342611919334868302193118396849988489107818031475634983040454887305779098523418977575318971277732037561832745541997822523260705296295759005246788609776505155339011409095991665769727044034380706634856168852002073138004182222045502884734866325285029282042406281645825563031370781381445182878920697616845081255792552425901274463117574983553700082487004850279353853358391624335723968195216959939352922523330223553143141572536730417024941281898986563666897668477872395718865822406689874334413888648550224881364236954618487611928981555793940099988102366674509533103552536092339955333697048029341283466816288477234783212720107222602820938988158272474565262032557865446483814077051278157242779172023322506363275616119676282891391523720314441952885967730020529225140231316260974766365409718758017155937698899732985920448518555225332798740092020289457099019718848052552622741632588540001684092923645953345406713705904095464773242138978954295769952982751026532487392593567611143405942445113885135807021460080673218729701624867009137320832802295717158561954856715227549685366231023275565862331945304468673613800447122531019808536469435115780854640726276743454933417086001432402228653830430882584870321502567822065106880638595469484024037274952257433145024792002896786183030013703099264055796470399280079851429095893610410626113032598236352200382935862936132191444097271579895350875844743814304856167133848310470296253354333184905782640113133270736845572522336024622464188492757696006882092741678202091641390555319533100442455849155321301818025540148142728498199635184605400466574575096592211574164731942425381351278650317409032168757035655656697968004470408794976066466511777353603934613574788874216710346058426104995951599133561846146355763339945479484263144018155670676905894178104065206598190748036621586777645188684704327655660538365139506634204643731868337288962068211207518901231893721880898251606501739113146572466231642306523966699425162939835527268777607311203913505232280224504277287000597130668005999370760386281687696385356880294750401664717655478845429526488795880726355215754803854986840315921564263051579151604256918184152672197999407415361380383722221307996833582865711195562103748475364526039077728631980024156454816741733976388196599550911206003625730152465898895833070134095606354778965680375553022430198264804093230049249449526476174317425346432433973481902107824198850268578882043224642507076114351448702223957445681680254772385974539484122692391856995872486031239607416396182686612865921837535001708765596788029461554406759906940877344472714854814495927627684315051487869287524066179355874400789533225480710314084037993299673353137926315386782252166596345648378747098843324227209212484813149240411510609164807247187957866252398382935645492895780958281732710717584773259263763026156227427802751652736509557201326212388373985654532611325278414339699269504221926603873059470861555222793714992382659859505910194552596302175481595671389130190080301719957924735444991048542617729547683875722171633608183165392948229342731625418850153995394962733467127076149683938847446361149501243557405211673370539039599616633339233751001332202294680992077678163303435807817909429713267161947326335253521093707236082996931583106859262243588152369906725530978429281179954806761766203716824054186757990767139566611238457936402227793465143098942541088681244843703440504997323509147197426884256724706044852043815371487384806150459397475231240901388600343231990697128872781815287751057171716013177886290542168925688547511630396775496680742199317484500685389173712013140105877741919174386158214730669628723301456003401879540175164631717917786060013813430360297781639136775272201174683665858567341504898964265090205786365745650338057068769916480719529264616529182007159165294008960137402259955255722273893660617879930089208202948312531767295993651171254494716719059977959632072863828907109193235400750735486744112583961940203149959459733202934623008387720050458588646859620674913392512861335381740826827437238693838534859660834764920681301083557542043369947744096977541271605083146394840813752202528894683699186284344095213732388419034383739709780056814813477358817340394402792567718114025963340257049932387002901544020864615345647101335777674283172710627527103616447860397958153975566157285268639395326286566388765830803128552702564616077241978689616822727837350614073709258414386862735671083700568314310154249016439822948613146139313967243235908821217363513492169501642607476029482596970727675470124381743347212999609651483039790859020610996988185129156812424313605396015153255878912168186758321387907386024828711571623908289514777985438442704638878099629746323373908970016186736717678012989393185148696602195885728552405735993596051730164370996561026774271867036418648626273578005173771189367887181387314677978569358904263042125332648723193209593271084955341468698994255247820225243678063184169650998702224427757071697580165691080941908584110582992438789490119294774617878855808730469904169572825170696908364629306560077843588064223473446092588903610061918839359176757789289539807664151408078348039904109395863356140476113151413065766071872284896717232343180364233311702555827100582679625303036439488336553982949024537082147992119891990055110313368063624948468394040043191539280015643676188943556862769784200310682513345413110363671596306479416437296807112177596457524823040846932167517370817651607242911961891994713374594447614453567836518429884584158607172548506736143475528473581914768948741671718695938076708081003869306630841576097147628604041467194864859289180385112798023471343700523896908632174016530979147102068570093311303537702583369284891350036512613470940895442259558895233598499685163077620890604859418198988658719449926297200519089432917413219324907064470907135605570049705748166325104613506888322665199255985924689516839736383743212372979255536812887949326243566436452161736132385552643649619552740255948176279165710428118673335515502261481749728457175165830300765917867084203721399356117866476574664217479841337584508074097962517300080658400819690747471629025080368598256917600900086144440739263168284968584603370813098753804899365399323342694504038640475368619960235576988592884207269049421269139107346815978932736674391341631075007765700087263971447016333336012051696099177434328673901968540043749270444532388186981887499357659768146932188816975665693276609032849991695946211395651494381555785131530268090291525536601058760436573127278385218174865753995507370813762082808764819192802293880698306495411980616954967509940367590104801200313737711788011204785174114157790892326293643393909473098954346480480679211020464528843911370710803994238317938683549581409198556694828208493434361281320397653609755594411621985295403362989752856672211496751871403381132249373929105423497051253612153786847469052717172233347736619184156318863635700005149125890104397462576627158206812210946198223714008624831241463155515221976868326896983523110208223928286600640942296955423523667168574549101624616756794112284973950195000706709925703495968417801767886463362954220670606387537733755558041061562346706809559893325316441898300953662207391098886703010029408526324052926309371514914805350825854427695522197808134967904132937677784559251478897318566495678893819389169290404482689425967307870457555573111012433629647626071704119836549814806635770140619042956854538781483930531486278513788041207353543417612886035936724172283611174098615738323939054105651654535044984538408102033645263090768750451949769580491979128284822026133510245793722756237238273395064199083089370806258285402399656670434134091281451249197488018515655036007055830515688702564686369952082664892342158229745629212356267552054082496424135326567918818148856770469458685942939634597648618932418075230865669448084687593246038015503097735119095008792990458595329855707980539853645952656399287095681989968163758561168960316348904594954678416651552870263832228013878840071867880733507877190838961821130648859100345229736633166607608265263835988845105790417558804403513550639921314563146529125308646980794924291007183834907432863550872566176053492917575210715460151073979145469029109270540098797453754108659939908638243959548154708221913721557252634803532012647317635553402076191607671467119714199024301492626598104793431200188040647976991180815300419791132428652771899745391165642549885272917336876844009219203941162003075478439740812387849457265599305245247938669258211767464226958439607563374753292714776495728908566067913760362502713635546598024575967798319743353285791334492829926187341984329062666785934689322760519155043251303805511764855609890194710083313753627769519781237793315833200139913759788350755597648962215294304021104714757012878612612137793586512861921586461659157649567431259192651270383876758799634952542340421947262206563588872167977703646556161031950344907506100983742067782149735759298426283293284046322899882301540015999660077980261466840248640492570137069123141677482666142213339540863105575680508407122374304841043009818946260075439722978898541158211740939420613030242018487928207281960271696476265081665527507364503493784657484085848517506970115531536600942916756293364012655854614093291521683250685130420278689707644968397819650172444802734750448665583574807487246148641014134782166042798725717025865237322576467864361696707835689570734272786667761808946391496161325095051541426959688899290372091649443593756690182630675472090770937071744703899411975468278550850399216159826706824809325148452328028807675802738168081380591716029271694915831393749869324152067025366940637709430347725613410848652653970079619877776787038832077307160996881603025584216274543317980729637418270826181584560616636033726023462633741480104228036350261450572742990722226323648510403777685686862898971662740775196270090151382681936261971402464478427237242551201534957080604752997728795127127894767145429838607550538756572695859767159765422668431024070477285085253157364895811271441165762234708673270479162981766098517986072266454045836683290812346112465621165856986116695188190435652738519445595902080129723049301867143489258482039002818299768267708031380308020091135168180055829371806530147882680038456099099904599367738268431838343893823036165942872642981076865722954944434674538586217252926511433537205187237291740450930442936021707828915235641101311868138478292070607395470823851470908571107412144302127041142394737983719190283987104494262918822685561245448887619731539881607852249419364171135070313967775604694908180205949324230553210666377583903337683831685333926312054793253224310376132064871921393986671865470785626555966728146160470362118573839334315264589626284826204766563466156289941789503833067026328178366163948919828680698738845202241495004848351546834507975209189261896755043528630560302879518862266302325713305603168440432792582311373676650779946496669415860897731515528743042149136547126633841236469365178614225941046979154506318360401181661830257076921442593983335117525121290691601930312815615485711528087515402589974224977902054272300414035094223625008993087600042973098500569093808046997991204694891775949233611797603960995635280987038631767235468330376976568548745900789307926211319969361212783288682608981488407361271338260040176116590305348781263337361298286599450427325430525778573981682923606656150524918631064025279018846965073058273124184640674687379268264554709289749051081128975479033352982657663460620788658974126225247236644295025851577536169031566454715081636418524221208255657334134886502231830041579577763788504670204058844512123672894485558157276424179239886908552791380851093328856513551361966263300911546887598124115548702468103674171041915233388785944528635550088363143662346220768258516390386972994151208430039665478839390858502366606557524841261965381348678921046220671998163205757269032887740425824945766857820227076209334053373945583525031861633477729587646548890310274738467677075890735090356102994423443584707368153524797575045599915154686836908093427932503794001621840833442151047365668427897854182604549407620407044678788419189653424141123610034002048071745638084252398315333409069341350982013420892228169992181175579841622036295175206145357521264266926469113039620604606125559529346253990276162172091095923421950957975387207216417054590691472081762284120258582463497421587133142387665530061545821233122748064830785751849224817101771233496216338380736485194081577899968086387308112978607546262472960211870783719185586156210573297655513961498731211210933891124350200290799070672412265491267401621501830527854985131725078846831243762756534327850911950364430594941575182719564370926325767559794042293004024236167392978565795692950803063427243423169275556267743247764347055434400734924241328244894815095288757167610732723714013337112271765875439301311652368967848921336737755871023833051563844985263464272757753340155348965290305756709759632597524832944717162181955304214222162981033010717903780482431921044110850698325918387856910266715813595130856021089199935875536989944588311587643836384158218745258284036340039452143524803098734421074588836297303353188400804957694406045300538866896041728625843834758452758475902588210425479413696222809791959576797436057183027564609971788945512964709545389575079703451549026243321741241108212660526454721583402221269029013550230580207145256463073900412464305830554344412142793727499228390427044160554259243429002982296685159388344008743788359648375641624531612598822001873023339088779227618307837212774487858102659167763486943877012438348349709005893485780079595722036433503236900507324410015222617818297082040801279592763867772316108851633761395180854626982618010359300427009108558308821834417366765399981572399478235595618667022918677842845815626388014899835985818989346743538548740381504689459350845253660003058149152999430275966196672716330463490734969183295159414306412294289002117737497621534129009543573384779356973482097490962365632564538065649286308080102157785378031819358103232680523304095212486980098139249127903153010063719916762808775524418598816511675259649771762031837612318069170168441225162803956774189017936563835513943845137189749974486846865611199329365404429459421886489494523494209541289831195536352238391367909856115251893100991459926608364133412328844093955629031244978268059154364190535794100733307314865295188917446025890164030272388990142984197273060497800976121160756990047992945372525702245555888865927012637611284670893030551044606902188948259605921991714541862160412983102090114642272224798672707584846601029223939789403819295533781797704873249223999838750047856470077333022960147405604120211609418002608564536395869419555380980563574693954085560556643389780004138259653369891685474072295501236826412461696980469592579148569501342609108314773274079289959825830768545630202571808177853512837675553082446789270508256588284987064376095562250919190497383307486934074565037891480683946066356363004712296286504501219082775079492062534508081261442439677874240752006548919674320523667071367517398587005971614677103825306399155725620832742685761266344632715186472855996472616730046538755217620471581594529259071834385141012051673518813963517036540618930270259525895904697524552956466516098038980939283002541893827688216093269124681760771432352834456094716875880845689281296121292950368123297689233947052922101929396419508767821661362252269210112050036827416680438049963885315543717430990629071442966659500597709606362686714378884347751498844527585865801412704639132487819506368214270720505732355537558570197281332093940097640005275678179790729336865188176795201205877618320701560476979293414287991129750443722665199879074402538349372192678660555024029188084993006759229950080059174893890161435718627500518106650085238968578395023094313314614712117269674027930208367901825422285556287970142069284797818028891614755745890107212659997626814718502466995184252758735036297812437918900644701293651705882589705789995636804609553907449965757011357204159761771270685546638796237268581277157017906735466177624622736598438796091488396412753796789444442998936793649610843437036585086072191878691383142951411513178351721535759489882414154301202585336513506968403170305475507849871525587412602461382518271798378255507433357350454910316979335354622881094377441822346729726619114068385589712840383254021716331247775057912226017840890157564579589286978478979842921102354622277877664033619130063534777806343869782479578730275816089775818765743502100583899114017839704012443876718066330581180135239654201031111203380306235705382707830422517254040733750411461562782360532811457551149517438636558555586635672627818200490165899022535681387367649537737523574385375579174008973849086070635345629687997524008237293676934892431740318468850357434959639144237150214708598760148283018654897340105960407972715509561703119301551474108626612428045136607107206915096808662152434746031524673640334786053856281363719406773814654923005989163598028341604900626382475924403240235588348339999462000965791196520043867175628621956472237122791656518955724366478080632950887396293819639585387995979518043108972208463754360813905141798713263864824909197718458441903823782189426600308635188302621031604182422579583632779753577719519062105244336571382004034301359042819250992841543252843170343780716829340599056644071722435479288293398446425623556051152712290699145701966923812799175908472707989957913395882742295041152165373352505447637986434495419700154815454500321710591196387592473013286225830183368657372296079557382493016420368178962317561979855320499367678061136547538963597268150598227341457099070891927874326606146188180941102546983462884415752488686523059492146345240276787554231878980806759210401567497929716230294057550251171868373928624749016036765010856672321170197280371401982113334716724899016376321063464634607384530200035082317302285439054057682830487273780981910459366325086678875520455179086022679314644587648393745745831871139761171981357530901338732535169559652495523740011345979313900767986938323081690424787831029824318240585971951218357918773389857077170587080005968696129283051869240531779806170840890216821193534934814129937042863621983319409529634027255278730040747250581904826236872601803033782606282685869118426133602395892579159276524702753953561179542334202318254773903040211546454020891803745666776387769811794440453665224855202312336939426239667686829055833263830050582608711528476051628117129676402544886271200504361101824398498514911590579923528244509012712485741333044987248208124695268455925159450973793309527348687213982609047914683227110061785968755084042766939895042858345732595700444460512563062638818480215188374198370898373481000807117916851942178815101268919646076578937711420929724590621117268009955488977387533179304692275455263956567171789658899748747637456144647774830506182323977548067611512041441271685828975026707828777668553453535545362608241958947095708608147338849471452758222304864073311836944733074006560148678444284792371398303718661464004511778248943157981991900371530857989755792389861504975204622403849820058381472943652817571123979632759812947671751386663885206206652882929534527655646329678342598718958517404626439415809393224749779840664189797001939851804017660130997159947169963322601715908928402468591933927485710025010059587289682171004438196194330945835207192709578102634674040664729767299195866010165683686199030421411236247225729180618900211525722600007506095838202300414481011992358696892387810216264414019586128463772026531938303546296311339821238410550697448114464500537987473816248549597937803847263391070691916573552526859559183138348781335279356886951323145197571550889172805747904117003053147030035620366168079092301154235804868648408041805356898907557896418811748693027379569034323627317123572281008457157760000566928283101949379952963009755222426450989291203515141284018466535319281591277231260987693305179899050124992363747976694609138740053048544128469883408131784191256885941182917525528396413275672650843361301483449562365449049331262036011538020569763853031386259851992276412744978755260441086772224367291000720544360809412194970790526136149361585869969524008860675315563616253508783065482274481469756596989372500206425867544474582970187413128518339717604207426069047310865702787281050407392515616422139150769520515016848265779038473743059992823778671757428814375857621391839674789089898619697800877590675783609157091927006531879884647219196013628197305208147500832782268769278793380135527853717925720335188601073721980332359975218426563577159668585575057688782014312314458067203591297573026939324351790971793135630323921985055496889573324492329868649505148384089132682146284698155889771277521964260397027310421931740056106734153055268772693520516115054725848414485335797737315517935469170521470932183346354423846413118130817936256366080079551376397864254005365419627904895418105382889985308447733942795669002505683034222650475288640985573835132234816044025225285157392459904017337923882070368580025890838692210018301806371097892709491526760725593037506748735218150538057052366415041102915560121675138731350654921693600923282595776968368087466359693610338569804731731183606275819690271719435750606037137043739181884195961148328186119373147108522980570589187485143312703868592941873793297515082765405667417640185658610931697691106810862421376628494677103267098811027638401476905883036766946537990936691570021929620624370587340136118494091933520832068329772577224755153796374299044914894473556975946465893958067205739747698075026864555518049363240582420864436987922964387803807412361079002351467593886845541552417583622044546471343690161308356872129291070098370053199352154694714288786352444436594331850876741560564884748490407425302437996866900456886331836194783472253176092729091308876383586004546421407671379468842916382682865186686562929941567113181372941195475327319841991233514209489827498996790876137645683448862774535437098985600619362576708070777017647796675132176970699868424233897296181985839012145016977950003892910088444832301941149150007679049612841316757924308194428398114841349966575385842207982857868427090087578315214115708868571877332225733507827812263415903882356454320317043915456596012464843269713238558623182906439745329672101720601774734579920107008876927178388630086763820517503186776526448490670409046090285575304394794085253461156921692996167399864891127827704140751141295272396537941491734759022885253717899365043735259424835820729588144649952378065787530141995097953310961081797373088323709163866354109848185198877142064086665357159932579639490790374203550711823467961337093229757766569222273648616749766021114247357615507659094398075367532719656293216210840837921685111319939219613231818238136571998598608129216267646249464474788047276655241318890496286773448726399848701406331822600612599064526940125751125764335190592361630332145777192241911058794780264662803880802736083924620731039311075719362263915169534808743010958511985401396462090787866380823260595694029343030219696914575827554529379933015309846061832033408923697377256301347333508767299451631501972200238426436285452505910320207776382631686505362207101038905382747195538717311047972206667489873364477009896537560571101532069543317296890415622628741070878448220445142962085099273085015004830203925807446031398579074479393348909014072300897793064508699299167506859575501172298918840828757355250588655021409568370621988103102376496691411250961756263514315515860804141730370677539792789240010709320378819618974810401698601044862537276198628526088846456973626608965332564800354719038462050412809813506573305218946601444848948056711132884249895386051719269072891221479003215803748602017737619751923529894653431382025891054000906494195978454875957835738985612995034572799408649417281021712429818026879217597235563797897738848927867303499454663243997895212746796487174126349823446331823304710314331739533752036286185075898997878476503686288420083832193320849539529558253989401582942358262048318901550435900759611329179634370378653710127863866352378125720551644029825087184898379479382214649824180696553924505555100916324284896930256226238568816014516835374044069482731918884507471509614591026127431900383944958598884526476855158030982130776400182092460102788749561704655249337936551816634282924510216200482676282555431204690769669988288444793349914608628609491113788947079308017984546922366120836996228192524665998201328058762738025229444215643468986902500004978971661180165415842864618668540229289077157850800881735312991472252189807837618907411986633257910636143039080456842378659728372125845224944700730058453434148314219606899980614275849332870082406428157930224998900690591011370607794114657977250190438082544143318597030198852067836619893132080871951090450761548458433959364868618679712021455818738532730988370831195829332716175707416563546591468214089879067967561663409477267151226548135988457477684398546809107410134606500763121596562724998384271905614897985989756322682579008526516175651576103492429465660509372178732590081606448107789014052637555473232018150280090594334485663098207731342137898569767642877662619939246289351755224387549916250533029394743520244583336141347617054220021855109185191900429039428343252395725143842421620774631383114236309641733377385387539712369118438296795693818341642295080485305359814557001912533472782578676100835899661090040447032294825113391555036795967582355645583399869445882154281770412646102790650212183475461633480043682930127707448062440435187792014326032792126411904145168299571732066001849469148850344446899399009667488107116710713819282910852327069736711586631947235132095620339722361078216820413813503709872005045326227251515980181023570101376413535783455420791825469308859077738480901682220099979818376767637283103676315668406651082556175955399722868379587048033246433110477742978534333787225580818471569486451437228751163029688104256021577025105131201293294862330146505591556181706568793444051120732929707633955095113831940642727830691067350409628660659818700310436231282557990944052191665265700200413265585997808553205693020594266851778249434394024865065544086545269273155876685768316784971835076759005961689742173258253473579091619478400365464703300780991636906571122031918697341265434745352719308747928105995874406261954746770828461913037923589058694198938619153343596045693794389189912168400499562129373224840558591219628100691073626453136214874295585059871478395702101807104218303878329498077522302095597904763712650435014766326384767921004553800394599294047619908137523696632408359566669589713751528095243203948766902935795843690703804832699801448424243050358500580131418999678995166885615093501629780057158211699118708240630923308139905238951772430260264990111325197016854535939416323089983052156152263617877655821493935442161608821708352620007173593358026802393368259028416924978334264796973282237649597120657994685686314596164358868564187722889282163154946991356409353652010536509801340131679202730846550374781370318684402382617347620893282165300056191304224646375730903693501685809674522260113324664344996427376323651330919628458164393629038647311974717098290979493981813890028041180225870608804987299590329577066504211623576355975995402067071479353251730185191083376609960773624029034126065502735773038551035396353806717090590508298794295871901343388980582057556414662974749862215980434160848583259801620576591869191090806084764883168188117520626948073641696655151012957758042233855961427486802366313763273533571505254622911768586793090916222353347408137189406691799142445110479597318866732911557909600323450358627569779223131842901546754741868911561088088869842660298279886302130394064752362675259963418763431130180428592489495180561040319845186035251265754144936922411663781914470979676698582849848907051941384617072648141084305521603204010221348922945362970413193826852492524923653422472525479392285807006470494753611031650532729108169342075006090894254531436452790954462076146392018098694832270671641250768820809801226813521504728592175374089006514791976658976099269972811031169017737065821430500212898367774914276398243066506608387344283762309196529902962208061844560718491609738745358666772277028598926023764595877856293665926610124907554775620484548326575901782848194556014284848520769488999928321295321011070020859007063972777382602381577719025487697691314822403329040333889952920514825760361173653986711466327016233762486438496436945161201096515476162053504230686846083716705587071637087549906641274492285495701931262598488507650249921154756228033620152426862336906763564363596587398557917165200426134677964689103592949487716566526613677926052476411241149383348214796784617853668459433678375602330932334836748320445059062404379829311316167149203385171012359191833646362216496074504638275638550905549041501736239890608973205793455909357054722909699815013654899352515960462877149264779417570031414159176979448960644573048711041930554532398228425070257031098370473685149220894844128525462870360180214438717903897442869332132523653681823984895056873783502138204899878106118501188939272704876459626440620563635903659453379848101734588524448097438944183552068871389614008592917511194712506733889082961297368229052696790696259954947101483002772175386748620065491466246906278230609928459552424693917729737667810851452394851870286199511803781385245682330503050933554476658124006712898368267005206213920012722815328587367518901127450751548793076691396034396373700195947333878609199732923598885057804485256665777339269987200539823101928258137533940307734467755048455976572214385199074843137677141026173005979199338089708662087525296062286472110102030132261751428514795766110610295908999005350489283531966448199354028417062049329478518634856896589139407684080793393256970783611433322009302061705214381957286233001868753384305491545834726387095031938474506731659687103973602141268206740897848842532384468885636746532621176235777446772877765474025155413756618381552956857034869205802043833527260129027598738066272369484181751526619599785600300174655693796831105545722170053589447506238985767302812183816919981533424513782073660006528339549117049642962785179887490350930994199841450256863550954188690408696095848864495445755753699941142377030360749843442197566141736558614066944502167637594163404203389910439464636569217470736164915314960490143734049265792968087519150802763769897223267918544528847978313605076940505513135272441336569087351121531142789319316299996855413047295061505521234086468139936987275482086413524525859756419487495853964737601314079939980550205686812415394387158209684304550506799889237809742989460413861784232963640501742357686215693185322982002969490887007719500414986942579161772651505214088914823816672220664104624535452442460731376064035611120237925797913182487176055533574892991841986669302445663642327807521906112858360656212460329498111615260277776503592073151427825408972765733265523440989598660393996393307342007764986902330489955310194857936466837829676409426493774546777759825571812391992442827882799358741272801397341915656969127852990057204673511688951498807973321730858353952336169270644175013010600033249770806430211350251971776235026370416235588714179197148170194669198601516400200742418613363823407854083486058282034059969219492814845624841920911648612355774146935274119483126567080944082826158722598348114920163885811705917981921451817185765753269937451484756505185551110628865261919015686708135835014874336748219496891185752954970028925959165520291246457726722627684952901799132945418560551687700973933226754919686585541892926685148093932580022248891979320205837590645643296703557515733948572397729681614558114988221838777595572616230550893528425178610233804516006501008075472160024295923195020738441177530743078960456756553434918943260868858103050337737374577758038418294338616070136546765625360098722564949029898969504005185951320272133389608576799812852752272900251882352955816883796007010058521738109003767705539583131090199379293063419070156271540103276413110429487030894053803749675456530090619790372730036434334952469799361321066992326502634625097037695277925426538503068391362134444346491419144394220564275261163924631382070016070880185817538296975084723850198058590780725193846982339028938377739702555850006623927978234196343691068552222779546814620971763423072040813153629385726973747565419623268688694626144962437307112779780963665695426259920727451179529015789657904393045482891765652318003905573133038437210324911967519263033898806609256660282701252045549850831982048695305021897946681827619245947694610887440308944464482509481865329391954296972718855868089138002434135057255260868778568063414507482975711511179140232595154275516123982924393639649523894635930141225975287401138409877573617415636709815530986043859251489252240304118445611910830212939000554370997254464479961105947463985871592358176658571236852530975493132358313405615561960456444774069078463105836461338653670956889453646428235856761941594938295664472045167967241054117253588787963587155526594211678436642814791458994747258055879566194929570316833318932797120116109637163337816736543699612254328951249378482414940055396551267370454216497349523595149203467731383206356070078582553556122293262979058761135123134500956264226038784056441222996727027145561257649482473548356031378156325105318641923885233875293974348659795342748374857936086590102232247239347341701017451243998330453243723716431057311277159446422620970925840846607717234219343746163354374672121775853800581336626212321802904645433074920597347960457822269286229051019919634367118310814953220867328546463854187287673833983103978281437651540432148637493693475785030212396238863118591458285636070673172872497057323341232150461060321855472012541757861176925877453597176570902183384179272786350813144224171378232694703719843972074612345756017907473267749955161454001570069297976447777208469974094372279580480846911866278159781451488382799188504962257967225331105893064322430936797321000907665309787681226269778982107413091158519194597912028069962407596756621226319896438600924140052799704294945268387186845246964093853225171443941218627247983230362457120219402689727647076050303919640771187985924304132057481207856194780498111791058752585832189899729526615135014826078041151410474454567500639129763436558844961354072765849937985306700464029251628993395134604635668376725135043872518625432968429106229100292448959576839407466622765708235239590114431992934028918241958696214285744978413066702411732752051180690052391765721290776672139206145497204921864533677012547435706434743231977034068031807894460002613292406462631054958369694149046224559018453545075456567407051928234121138187863411557311132938160028831480003411484121393990671895279697631094305424232043206447731776196657797022831497858946955949004593447265043791386712110567519139941859262032171947035240058650638055384058167935401449422531949234057609549862223261290702961452758292194636923723371443232676058011271434206637352132744654714589819074163849964923749069596983790201756789448280349249691728381578770433284261818320504955775672857681809300660238108071762552169829591509142686634336343974396213274633799092704923332190767323445123281791118939865209338369727668880473462209627732893511459778787805356761004690564332288370216002024563920156024766344112348139504203783673251107920169833329362279910785061679838656760199717450472901633950393334456885152761656096691253133750802140819002156563957849386445756008926891965658079546736339781063645344630489680718568641591926237377700880898088975916374424722614179378351805371243363946122723317972030493656471089630363868439537686282903315961401792947607855941558767195821196654969354490692443763277352859185006661891526829220294908529089416265865661667481624624868897825242609739140368974542689380756672584688696809364633489614622309314709413682658225359751087947773043497710696098530314627566373897689355522872232826833884659627081488612015269404314534571512675453439832095099692332273370138533681076753206878806699327573980266523139058908190949255317549727343790302825149884290905325312742162196055406742450652111178570407231245210488883953674635371962131121223956178923330529356218908692108631111706967410350780718252687589856026170254929111374589524790029339789031023232434358889848265740482557763314991271269384337098891822192857453604359193876964619654843240027484436313384479999518734222551694941515868467505688626106396087570262587597644785571759145037622790905230575806505227069892291972330410703780925973564462148871791477043290224703163804367825467689978635301296973407204334573831338133116254790136807930808974014068490457287824826076591590656491916236616596241633441337685817974029859840505297226157866720327235595464902075641420583178378252299624705013513164023914369150422244329636514890925411319861213412504770926572168306871958023437258512433937053884418685537718598965736814685777438156395903033558294840999578610013901238603068754696089894012833440485464457449417650214329716115745861655041009980648292741206261879210558650297738552052006041264158538583274397952621113719251174192398456979641761990759474310626504302965466926784584491551127880441219453745163084454550037095162653510891463315903891188631535813546528303382304049859426927729432834901713307175951565066458429034998758828491486526256016536528820941514941806763064254766121057745992278389704169207555004995811210352332416125117462725909081977101033184873719597792915130909889068686371145485875648656453935701113349492559664035474224192073360709467528743085815665224880356387433251727182765950157260640007796987754377637400730188789172521578868449484229270837552506305568064374808321027767403882062129970182144092614779111328949017199772548118245255162187905135697306252753457194907472637260911463832790359651275034139398518213713288883860887110095317404334482201556631053301301567787957248006188146302772050691890025095211750451186850795336269228756481128490054904543614426705841945341615718542105135487096631915075492906205743259220753064133047617967053735256994932195560657147698156412525759752668578956200835253148372438184044143012476000460226567307000589775664266006521027358732708818954066723501041460281194419777248911826146014223612681921556511666755100288741933418315862736429334752034989689106048083001057277856263055066777335574933792518436381068390222818337428741361805794955000333814395939340251713523297365327309222860286731973130199559054188861950036222460718754764196694088923674990649632998073393311235475464613807522797453301497576616078642767563281979977310185210214584483122415396434475269628790859243410095504752558925785042173955306149181661564688253380514416823991371329653986803822216502530490639837854585221753618952895739266015550571888920790604597798079905402259512041077966999243675153936660833233328579298254052183854804327261859878763204421052758878745307996111431086124347201902234817347029198072047908467193979443986019818281690876294121703556080845688189753176884569002032939353368178378096200932207745760730858816171552533391320283313584422288178038717405749395200957402811775663476288206523063028213356887893278430349930187897660312480537572321685062416470453987645035530867319949069819979234244325694193848866750682561845112273324287536267706432944187932426870207969030158959504423052852569983498918798367482098856392476469227666342803744344386156216303623691880289029339444923472579613611332737532623018219582301038827909379575685657386411404894869617243353584915161253100549795872325458738878924600371118038142322465914974105215852201993842092935226865748538804966504440112939542939256713554444108439286328700074783930962997817029766359298910000588063753990747349240594040499694878316940708997982406612764842936422899963559915939726470913706734631158993631619486320149580490416560025406839433489104430336547762424922833332804412540116204817680423083511229000027248894621134019679599098348961698771583514245643647234601922529172614011681849716405159301541416241727777344268838772232891773063502754977265218942602146356302417224057819563759976814116777352060330266518645401144753903233231439143658121142480287613080106135555607740373349549433565271849934062902267926909209084296135242529985841472263820813247265618985833800377222477386371118204546778159617647072602073360052877081489037994517152507040274805446489417533767610284495137421053354424596634510456619810041329057230618463540499006710481980804562979622425482377961151782240789835031093472728752947082988360923352985888556740131533006015548218321300189546094060181502569899356549821279629485200565785010331307217260991216495506690696684897897948120148723748713331616086642433549222162896084941201583589843926076667370246194109243127074191584926118177572666839386196934227506037742540480276706167865579950293919005831137042344738111424055426610929428973542689210202538828941066575932806653615752331655638159300720373005710755041872796020712279556764373619141701583374949879317244214911240351735571930962317871850025620288531193510606316680960055087256378812614797005070262675098652638082153132675695743001746016424729428233738387730112592326315607081938460429845417965849768777707876523793830422248074192810432126680326607072488426099847031841611213027396882855241977462130377546862737714111740232289929594692778414972344064231250277752509583665607190964537108417442650901490978841051696022611890305332411829561696053807335917381366433502801145119190858666185183329209775995006678475569363390403474108572262499312822489096041542130141221286625821864821443020615798384028957192085245695101737955907230971954492168618378016298141016921031429361859862157756238391171100710031141497917651656934298189980845542833150481553990948071585356283286052332062527017071580637108146214186809663934354921636362735034122150485941326838216548786200859746945378586940844555699210552842225373831948213250777463285471294465143563337671456260376716367120762966319958775079914850858064734443946768478078831943098963761966169438076428771255640433376333556793807589240507786878832122185168429384754497807983785994607418811098359355820980323137323957448306453229117502577657628573045121639428292473605283902065535911671716855202296148099394807733677356415478634708842416816348612992951330637547888865513134154527827593448898824154356682194755401966137505704333675274430226885701688072669199770203108247392671168810337175326827467539902579919833013103395659150716443542501243390971911675225187980900501282347065482192088658799951203113146459602139607018770565843332256218510868946676412301203910570596353619918597382047398679289825694554193169835212896672882247424383784661007645934147490963020250078239617804020989625242954760960998405023444039094028634503616627511553764914475493823909793356348900889103939786864018155826898465864783173047904859613414320681348432928547529292534586417133427906501294825537143884840872560842180266848100738257819393347165623450726790412679550121557711395912193196854875045661230277530110092524289038538492548291604820873384096431596323635579234760046548618717094268258755082278138450493609378284115793292310605532813027279225215151636199401218045235520633958132595411556980936704079803075787628315638862049963517605442287092546025874110186718387263409969855845092172501732987747014333824123392545810261966934413921412989030918793549060269765112795095156271266656907946925720477063457373707205528565328123682261859685086504312076303024973077144553329548909449633576586030289514064963246544009944273778680119062535611764646464186161393980601837218977505037713220864871472515207435558010584739928469893766167279442275864187611484652778405304817895210085071266967938089601118696583588189002540681764952489576257327602504604295884807344679691271304280178510564001371089737760891177334501945426978255264337979658690124911093257213576888066221590778630254028407872796749326273269472979106881604160826997639278281573641594070096291228335385413487360407590490191308460155228050651362779443490396578717174791337300970379992661926829002913802194522941832620299974026327952627045996491098083496715332365794839574106746583187540302116181788500591577181338412105168802353080013092968330169704006540377288087938922399847632808262303976921056631647420169703344067064937177465844735416063762569292135699349899879773760618287674291046416234772672127118953211743683134983270813881808585317159244010607868408564701195271051312075515359818392828886931976479529149960226206515239088138522762845868001637539229264590972658417019339739357764718961060531378221271588906167336640574156215968882981454224012178239158246891188369036050007812175814947636247573487141038773563987039279789055536002066912988421283956705617325768253015016244951872349958341573317043664973122934195232479582237558213168083054601919766034489510891635701815351173573008830681860733464800747780292493105217786692767276733267837550472286498138499723080732532925659029827365346932770278655786426940292079897401982115346206061926635514027095175548009712199231875344311514130654036025710033191870786585619905193386554779705445160220878727154432015822972759487487799606643987555059458523689115418165764702529365006203207106039888930615668221262873001667773806497008099352749436832526514768502893871731818494079255916275337259502852322430195814323658025353802002759624008900235310714643741293464204688863253298839970520620195669694373307931597045220364572730399761898694596108929706262151272315309558976552670696805290472750697065958340854126103306401158268813637131376508757939005483422564166860363809518032110873156342411949427420703963895370560319252977233977516130688077909029122841276097599919207821413038398530717843200349999010344134142176057792652941910940680445734936183949611494989813632811958420069354150440935576175311452058898778806865367099631186793507356026357534092820549171941996558202996819794738994720471774187063799124678791873647696115602679068318719004301714242299701619286573014372251155984552675750620420040652106036664520979608023938698544248328312294027198150121527896637003196400874194567672488511594710453932775661949946559148392288241851449737451561258409794026892579974807586851802552274464593477466651499458253636326056446989687134950381278497116178180026555702032293393389998883071532119819592164614070387568983430683874096699963127658026351622524786485360404545367800830239466409593782278151470137859904095132591158645848165899720393491406469717818501931792205729970964852931657302588072126392227837231318093309637262873712362979854056357156815481340912456133855738574439171365998502865178304124317797821773392502795204647940774579002488637887078670696250037082585982010171780778396663957379715979116261302110494369747630694183022794045864814597051601332838452750381214538327105600444128941084200053507412335617004084449650331959228984447572414429151330081001739266554757762135702858331205476641467762242962657420293205970747031965024555004602517011337733151402859070244712139392874028121687799797776047554124070388649771190507026605075606568439117726338139449093631131997966048115082691500946869984557865316814008272423552550415556712751683649969120886838431579987955580018349420143687345299735067615512553317904860363858661522101373241183470815316690862627600446549121338035180541845445936122339238778958081263386806986346518929126648400037685347729953164835380736797703793843784524839666673132822738708014249980432838375087215152153227705223125824300425818821278302800284873097552370785180452749782501604901780564406779038902648190975939161463929043870120778540612865361054650294277085035633650714262542169420406765258123736297511361301444953934741822471396020460118463471126395255861738261024261392983685796060770224894766491447173545163089706538871402550781509088655234354578816078058033331691491519460295793300312767628424576708091725710646261735196723913300621716737304919548998287658815528478143536876283223031255932994012557683408585934815585817000706893741892946565297280836453159316808775735936838292086151409008053751467952096190186497850353895102913430110030259456424566767565317572025304218711609790645569303978214654846456434139633311697922176935008102859706837810552958574208005976576936727655733307569743564432513655454179837080699927994873945973513493604901408336812335898701455853860748239258322089344165292465248605114479371933397156927016730229781949300016573424463790189889745628865537369988831635745075773128065623496083788386892069029889875557858780650587125236114053405023051818632948722863620570201150725029216255834342741389063783207344749962040869075594569808743960266002954598091164986530633119866539576320376037048150335860270293892836564026329523720992540470906122865548362463554222204561305457210044289998670621999300492724362936457237961100204214596271072424427163303109220237740613219817516720667236561327544468302961435551574140432054026995174869861617700018525606671565977011557597479586973355769370542493270341656380285824530340903797592924041805451159795515396416283687149727582126697458241443399204996783425864626230317517034147879659985641126036971195364987267612654993573765340973419404907503922345214904679242171851528809833765309860196956734373675113003113906873248284080069365567884016527617935866779990151798544585500536552263057959141872745575377164209775244673999712404962810837132358688208938244753574863784804083059654169079793015029444597822288890375915478579397598030983292224417797541761130933769321715486911051309438595727725624449447654712311121361250038023636516864194351246806707694057644541371348659071645648207377401757198948188485984683785371642066337524441005312061258680394760738193042539533542326676765705803684034529172913123600493900798547888323319798992185317202441016021188582544044489181957706578698958044763288671670812472658849603623948961885286087212807318795086357989794231114764040157047440224613961349680331014906009628462628511420967845576309698718213079054372157528329319274743638028871932259944744341954043751193514875558960278035108196232294462525092244172151103692162491987320629796009121597735782247205755553786762756779029716273998514804291556440975169699478850150187905377754352272224730957860247233138014649529723547640329295234086420596427935347793151049671534020089800147467254126996493324353940451995138748247330305743481347175491765474982949940954606341119764139472311513271800689702712713492475196640861336222249403922460269878823340727596984704580586926481119359297870023706330504030000233191357486325167737287163716041037113881455250975042110775542436795413305321417581627666573228142078398789155141066214671767270237229971177068652840267424429888530568028009528484595150307317281619795239116536601834389813161813203764453215454841832636149042816733339348800972395788678494498578550467625348218675267716600096635023494974746198428654888324556318489718263914965542504317411763379221534844903364235382846560417951586505008858533748275913412795389716278554427459824808503156386764348830298240888484806104485347657111443710841558619369028923170657785223191438125963464964090402483147367603843016176652930274669672303840295764381555548576115201687874300473308820298571392844493300404240859305052303962230293257945731722584148446618860090080834143282266845097711909259585745287590393100833078271916253225989472259593169985215991279258886471820363532513593260376682199398148652304717151187283138706290227787932668746232946892755364333223669122262681119383861517350447441636571980698899569884275542088495656321009414334988716443679868853581208061427837231324636069373070126398044048149900365921537132084502071085405114677757504287226492487191613301715607917888368896256625210528037088438545512258301014608294829259145944634132902185374271073096041995385463680999285167812892179574093757943321018765649123128682569683737793964024635896916712860232315469553645116932634448221896139335263215191019167031736232738206887518608198904526808696278172358051719146799412683095998662623822518169826888218578537510084018873065862374103353439775766712147799442502512288635943785533444138148567125243190110592173030178643822323097058586208239743252126434368039839194815730193977171813613958445902889148557316649872256803516175621527379041680360480983438989659227465706593628292559926796034394382851764040604936964225776152379676456688598102409451749874482359067250072974991411418526421509115551419681357931114650376136454970415919983922292407236464884331489659445944917619454707421684322091670373833286256800806685153153192697419234409891048210272189115357312786987871575856244244109581678156936845966101995148691310392745677708342387433976267288529131158550405764502680645984003474389932155227225205615610860842104109727566097698450695238507625631493337337914056922083279095222563570674281581637485508698613346690480741169820454281223764170027977992576675669099875494960329253120093584092213482297752804291080435512041210418415539709870166189497309266857116086143007606026823521840008632338448932524502111297542458462099192990839163134483450710083757887600691552221644140307490116787023400434225448128549794079943648215963743942769889193344014570577297051402034363393638341959378730146143267908317889356838412915057368249290080001335864411021552185962251415048918795809940544742203755974526446904626307693674604231856975550870320953021125853415545543378423697866550888785507681681791188102272589180805249051816405406915099520958742191451482944523193110467718603828101765445431364716059763019868766455005604307208052405478045315437592490939477894833705269556433520925246813065668406282854448062329495935800181686018229475668562017103347773954573781313896220079620624267042308649274544833482690328832286223753274747231741147867724900051636476069794367531121329671958176913468647442935270531858261175099259627640610043788879998481994049035999096672453831860331108541340098062407872351250233915132385554568767163603315575668731134594478771565127176435459857295178379473651509264297122470876165500437188616913495757639935802417330315759968927229705849768752789556019616266765841188344461759849122134122677629663084294162903509846777727203591009633440262534952428878525442361447991024028476538848388627174455336578505348599795632190670752008483947440434561487967570077221935360078528637901892113335328609349748477166343785866818410896648735487227120505883023412377594403614723231907393522196912885666983470427002281160276978859646115832683501905720670838855678837797734585680327948854785083931771435538998669836670918540751946752326143309519301533476090937046317035156114782520097408214797700203836302299153467627161359718489956982919034158668129509809999165299755645709356351410338729258275365083759607295375190151965048650086319303994485546079016703222262920507080474917968107801864762340775319626535361553635157409854464068345967435542980871512058659463764127484874959737597835653218628504055152736449447800137367156254405562090104968782884511191887485777632105551135731359535861172745030320540018697293890295399569123727400471771579699093260038306881533873606771073242254812250773953964433420123078565841074648274374499168700929746434164263590228343997122429377945608660606218952047799161299145484089936856576995800203602581195903281131258089215806389438931378505543131900889912777134996713741425241369002953539116447615770263302271927344542998572426564456813218666836292155900427306767246070062209890969207868912059727190215613681501304995482444329931495317301608940164846179893489180300234706575968912633255137396721066846409421724129493961704834148595114227809737412680550921366281019218722091626642348310086339580971403606575053045217955500227162975847568608272856946949122107478379203244162022654844421468428424905356976772066860428701328105158321228902056783587386353201805081845969533242217527094144523368261422555846660177438867281499474296162372103323331689287135479944759837286491613209098911254176981868915163588421498986314501321548741605286384083083517414537448096035061307785859202722915884226789113441161864832134214140449998164029176810227189835174545233864612146741185432901601277914827108891546763187312659889071934399887029450592008532278151977340813788658663040510034082116505097279581722913992544698681100206407765771971160027984109157220264223139923147344593055841013882337223854006614758940382908643463105106105585212020268227003909938849857998009010408460484573981424068646360596761258245315143251839880624636175703975865400056326113623063106146652299042586917522123800375365074998275098928618735495066011534005370001143650690498273446594128354302576719465663110167463591242296337364805825316944436383605226293104356096507858121794418165730273725688152856192303052297337432594431976477189374634152004391235309013113345109282354250795689580055513501800005396627414764119320870059344973453014111736847748501150263267640290469201487325213790020220285091173481128984261520782200622297712462337503708968217680899028239887837135015566671136611998048190679164631160317149545603498905131642563762948721123679206797107570698200365486861737389954075933698970377389061527315983379541832462789474962093301921793208131341261575836512973322254601335265675463503483660718691226534283274087749099122313649394182300487336055187089426812462193170958014375574060686176869942860290342097783243722594162992179302970240066958318111844885274993365406574398897809976602878388050809516363138692124895338031505858210357130377689239374016576581117843424830576372583529224175797876468532215417735654213608250945151567657165177530980792597063304495305208248100366516246080034087534523017819047213869012018030131001810901883518681357806734088276861204764833500904138912962092941272975261285963662789602786468221300208723355424534219483466779240256430538976075481988988923525970432752434430969153098004776466516183850566908800911892283782763606304362530108364051205051650205637707392929056138453538400390564774536641995116801137552825036946292869645666843777214940719777799198993371536771585600117198416716117078122904833443977850874271146912887667830808102918360235929657346912589933445163165766652892937547178475971083521118276396782634053333554758925987913876059416947250451964281556385809498073090438997243744585103790024715231155253114471477780774579127169100622057204961878851248723732271410160788671345318533614348052200620897251147130349375640078841532854015992667352289991087915156983447630537257317659239389140530547695333336749877874034281529559582597453971545424878357706844128292222219381383005274801199857801378333860170567889773084398262105888046137973386420146720096041916679896498331790547231648215762876262756809415962160113419916704382853579693176021662587759956630149516788429201681157928662599833286522579410951256901653525740415830688852210693717265780367074093697869320620340656933089843369159021117684296327982252154739326933691408566437408686698676932120458516048592351492081034033437739169746347863156548203355058007354752676136424668045864906176056162734527062105834312796290316801695106350316898247482653311769730963552744425595234186914960618638020040360863982752146158888905376634710204777458689296802533771391976116357917810562134697260135770339987553046437551842418337954144244942575899889669799904888774125059906512946552443898740363075231254208337774976491956307839907799856204158674725318425533017741245813697474628558636555706261069073844460180615744073096585771436681911993290518288140760063621283525611297528144096100027020570342840520652432766739252024398536433592285280882189498439432462351410423736920751909499539316136148852675344089681712420481282274510228394944696483892493237966780595217614910371375068116365072367191320822644406681434573033547300115999021139644738439408904997551915096739007109122752279743471903155208923645230263526841325864862740281639546891157703626013650698575609600713303070111540186381849957549437543916023501607682035162574256258955421650329538903202540302131936094880660146076548695228350230014046733285158577066011062225676417371807544216730902766602973448489816659518811029138092277463911472411744353272048028913927162341440653483555619488388827083237585092059740831277768639682897447571514355027234136467726186003396713029100634204132472136678254394201958864880598439472468506435408173530133192988560758045757288440905188651884062161716525555863309384645391987881147282863576727452939046483682997948558115497098297051763738315359946796866741756149963731985231067997346589977606856169336319358453238712979106357190515574423193598276933631650486318951877238857937144568933515611582419850785083642936296682974395737154227879576863482219734238880547368409972437757679127339970520529153809009395991353755316208127764156020374686281103815311291790201816181108231396202421502458851338926956687611674652946931694986808510070563252698395372811730235318817900170664968158893657767208690480936897253571911927325931235826096992681481437380958893245765756636117006437836173588794697989104906432641406238229780561348599000844013469313802869445908104567733122760268770902539745201560537018446226356939571952368344753500777939992298770913724030691670480501211889720585234181973776424183306266741707081908004542514303675743626628488242617936463164116607257693061857234692880585239397979859015789707704937618016187967194388035385681656586509498304673981755356128527379085010629179135549117235942063583045431351833179088924057073213321164670413863235307688970530683281715455484315340375650967153116733095432030375763194325954130299035674002473141829276897321318634957414832406471355701315485244144340408810190564105196506035313880349825522056151646869208875530026677247612627310928195718122925027490582763310631487369813489597453973762499151650158468321243260697447980769872187311026096397390410049527067688111774955348404298459521063565909994911754977271636816150038017483100786412438001984834588116754868339800291349608314375179999816353309667576047574221350468958511451752770537572458876997390500792697762593153794724928511897928571399070289019583489506933081934916488892260718445590150037537365639521838749048250384308128227227777489256750397418609097248366576063526607347024019370790896987498593235180564373486141202973338500195872980606890793707142857329254995894632514588465771595401033903471182364993780465915285773070279452836853342210108736233508707757693925356332183571234576711631848171211294599822145638482123187021763661629736741671399478055676235791298157197471503770920407202138202239773816041864378060322129057019040259192043463693381519527164502304826126231219303378078058872619106396094526386323600366097735997773779393192619724167056419285059550365333770319148344128142311625790583673445860828898609817040782153176457230853339247177790501462625354709688496105881890444081069470101578537363707073662842207638038433142394372378822765825186670857628520623206213844092321722048708433251268922867706870257523352597602888264463888614220818646500147328379744000175528426076178364374362444224616390375827731117849659647497883442379067102566132631411843921942541225401033632804867816060234642929607396331329893219248179275171710533456690580740520678792749098191004263920109595280178313714419940600402954262128974364070659241182462457540686339804680206410174799812576790906186252021120189990784430027171682547958432883127353919770153228105243748715963759427403356509229115749264036163225415260454888024579533254002283491356654077468947497512286869360196239895053740590583329228773214597260126918001797745236676437433335626597650666336290090980813956188044795000121257003344558844423483274778136879741062401680751377545459523543093328087315637277272013686248734158154627229227254766353292556184783428612173778366656433932296968854872050184469374166306908140046482721592217165013576077786185155157359641652834078122127786317127162455503649926740338787243381432227388686972411473918810631085491318435193173899926236308827440551437312268627013951422718630180015073684149942174035826307963884922841968706800085116892546989156578978866891422762947553441959875314207329282391784349225836008704393476637113076716121059973107173463428780107084329846598467729820920288074507308637699538809009756219305909437948798919370550347713790548256417559459165392755045671904776185078412146427911628328170895525127185536862528312859497835658158475163591486181952896692676420388477854933366620794307261382769905194855112415714902527495342626710804423966022455911483577425306314954925929725048537163486970169530918089110120212574082610044110238165809771567938166939487720573869201537829674461032780665364114238079005490653221790909453636159785018373917357984732796883752364737829736387182565350000849114547207349197358597893523892806258992995922581204450995815070749334966776355944949820410784900030966365105655320846532324186361184552586400316817760455093305271024302752945403397851394262283942012790720716159145567667561162250835496313730887233877686151510830896837847703947110442749834016394693009620207100650567441288329055680062940922259124371165254382164542343455916657754764743756536059861318468945905097877757599707324129242381106928796284536759815601337814063431845241596822281632297226043087684793278143124969379906019847703184591011869459811442052728675854048542314720111632708051987250266768265996608665154083902761302583001978614938919628008336596502590985965297099854096951394542049559621261549197407089183041240158284343915434040303224028241811473386106094781329622787528970360437848367922506035915632077180961347583904430965891147704426530107258655995106537849341823148984494504455535325382870655469033247591691788981576292201643295834677372294236830793352625013537802096810854921977746057628904890322984119377587645123598510135541296833420552692221719399027039839519563544853414438917827010764861305910919888910041187519482734891663223351308239434438029593040533151844171699818434509098746883500014358375303658659518637509687781140988966733611021446644393819659967527990789352110825546163511289733897201850742626441244176967900625504465076555850516482241405943845046292961338011788559623468640175660091034986444633018147920357788464736865712684174604866609798402436478100039092572511080499834425892238451684553855175993058605272801286158214713820940785442393192913018297901319704800814553351988608844814916272939134997680802904220471738275875038302528396583813852547043674743597843134608828023966113238644320327272699893293573563138907130269434952004778783773759269647759224073274725174689172384829455743563152351356531082031050930192151469575610714011984306146245097977389127042390850731971173201652752278454455600409875601297381340222167907256791489527131253546602700800812269090203163725943314307315205629699970569459307693241508905271929362099149623746139830872533712272544258420043182735210351796219984915575101029562197445658921266082363589883650506768811280361130087704122471035876899586800479955021599152989105527220830472597601588172465538855505436037346679572940737852917491994349725637984655173722143375066917698394967285371521829122646266700315591870195445973031020634764331982710986113496978401761181272517664960407675551998956610782714953482529886928507981733577974509024484300434760725975054005839717956144535416503678574540118510428650762528800176912578387681594263596838381782474952308723082245093945626102309102409056780470608909117786484591787347902765127880916493939761132602706947229149969875562483547275526750584103852329492429601262694746950519263833327166908303414520445947799257449171933855553293063985411207366376454735667541324835623642731798875554445807505711938460327899207441680563968868529505250356189625821470144658490689599439208157512043100587015162667917927301620344953108749225410121167368347764521635357465329404177790916262583793968818369502999202105482137537073367744382056817943488896805897328687760914672797255600792696262052132712942573573190105940517273559577946590650274081930419413579579445850307101352929910801397334519260793635727024105975229741851887041638457697068456186240810755216965784826536893840709617817140497442303947392528082455124121374856715606630500940475500584085457145429970455407270586110773480440357037727187564829621095417453969928321822532843457647572232257082275148722706235217551384740009381242480087637275170932958791513078869855085962224873993679059166633334857792711965782011001126464293117102118454989469711749773452449470138644635029551041704837504812527460269372812730217513979037486666423457853092400487387727140525417433872807620242276055961858201956891266641498627576436999905074445435311228977868988558239198757576305878539049875433013213273391059002768393559761012004564264927286879307260559056833599615406895299303432375283846510475626576972009868795582339920866653564463046854444704478741096704288927137558776018688885138273598052290204763053393831794501687921234774371353953054657080255267032126922108008955736064037484293873552982865346449486284191822266323215368437528239417380423676712088549755067205760519207301741038142731068519181387612770707463444031424484070030506531508039665380132747498326199188430039808035143315734393301640849933895540061099130857768313656289472851862889865055002066767365202764174388444516225022378676556742903846882299842078740128727874022884891097724460750685806996345030731686369982017307135836931881899643833424233074516846869064302916872794313709763415424038121149289484310090851920164397636053239074012157509764453601635329296307069232389826868021933641043680863908538906498627632684061797287382704278830109900118666682986359518499067256441965505913976716299597306019030048765823538747659146690244322025879930207697606319020173826051353422610709694811830950233949209405402680208783584486259799305424223606266463859842285501371980461782888949703645893681907694068693108403279565585507365412925073490770221020142170131739012448992538711954166096059973415155560911581204470300346418129061914916833251048480425372317871457732875675669218546306707943644623420995025831150710297656096231227828097288272703809467591822168087801728371414810757204440367446570132261907916980957089150303940599865435984034476441912835232902960709129804746300103632695366189276459225277145714123472634345847519719537031331190151910439507565963894413957008794171698308629177433835165908488238934392792635681499362759304506583937862449296669915894340049616263180979181861986414169738664854028952060087583845998654440711115117406549294785477434400935907186923508311176867977914840462914213264308653844448680342940566507586547645833878954922462591208390971142858895691219135548043709951099413523410157955198273615233269393041331786595274000139782792207132654626581082715989947096743695215760293718454155454663019280292750106744154601874392831760366295932876457121048446172344401015437804255456316992447704926259591189489436417621037445027552045061225278432413686138970736933202104044989394422292041390010415791311483893908336373439577743977031791401453540068384830473361409245126627217934268657954059027245198136660458472257603748133558616804606103757910990577736717205751750335989867087503895846953098536582891187462732115513662990155326529618987105827211121174669823432402245716342641184121919492313765959016176672051725111345809265262270606259707929781127520907344240655710877291224240706854226754096731960760759334354937357915373637844369555651616523714408475096594603142967411563875856387447246227976231181166065839057403684933166038269684254384657722901219851072155130104750480383675641001333277835833418290230975528553669195014088365588563321491102974105983521461173217207497726576615936394789320342982386614564348149641613601608629529312201166017885442701450011201927197284001232562230789344034358594012329366323683717999943851498168675056740818515480857712828326456008967328057165678403778561014295403911301848463787047411462301422903563950500868334426125505677793371434246440865394583291668433494317500266339743057792393626777737145074076240709398454841483492640387989423641199588230083854420509450181189292755265666242918740084047752258947509727439431606931222247963857894183203238207299084509691625078148194189780795519788868684702772854204142459964623128748249702504456333896890252361810403787563616299294298495323560436464573892013426204851852933114865248616591155700333691144522890187113283773293771359560486258804510408533781592298417183607472323143446370659083597965218912929326503289528517892283756651266635271861837554235984469086687342481575399612871779720633601539329209930891971872744027848561201200401140723431856326211053541858430358073851809855775693225138450096842763960860100853658606603021548021681813223056147720222708773411249180617362993106840815352310659951767578681685909168812379095264098734452994238020055082600883679323807192129880383685674946515906822195124558560860481601555907577306439367500972717631304122202415834465027651477583197288734973572725344449398809400064312186372851560239780324256390642619535700458242983077910488695386367887834033332837114703567620689593163298675755704790728376775602068439244915840634632516945445580166432331975586523003692533731410892792044299003212993697320210288858919054879891250419828766232702875588160175039900820324422184564484593751058539949774403814594226095705785414371075438848604986561889669100993631644532413228185567607952975914687701064922832530451054971286783790818601898534074450735086582003046965584012848766420028543262563920725522887421050023240961700341792898645233405847874937368700718292855385145739766267239988507887314485058514292589673960788574789107166632193701110481094255408340327728564563398840502259306623632225076185217385087403699867829048817957737769361248040787253258798779852586637709250039102809591627056337682616403783063880826425524275631410135266325732108074895899071094948583053313126468262887340249148976517566529945475087128628674553143471960580868567060569514611670563657124424771330105570820159141608681396877049209819168042996228635783329616299334512810845635260303641461956240064725477932232245418541771068968644356768601998607903872399582818922144274594551977328560666797545412463342562625090942866516096572898134285311020417062361218396329725960482635491764922938258860223690766003878941353790413768182525861473502099715292440185174108219762840702578911452413665229476686491655815655213185882029577835189542348177562906988838126490741570420371178767844095846561095009933510869177699153766918360932621758507930686064756936827137966601910887764849887229483800803201674733177545632726736798136071341775674673588439748861814933833862737638256314866397532920773190822963796705127848374086512097514793455973432975240539190213456342046629967437225734805934312724418669928903274673224175948450485742391113355569999698720159681672099003405258964422061761883698586881743605228445723179793650972997871374063805220841760209537859353298787941510892650623852594478431784766300518270715612162003762737577421262366986417577770040213913053525960782153169063510707076705735982655183252760228151375345808200944539168005436010878546608591757112416979727471421401937433440966874029594876734222070621427525798837421963454720943480681677218295919002430095713164784330763412975400342899610777517148432656495562968028779541508983009043948851493519007631171117782298366041843404188875463161194335097330369900588952878104533724702308315720623203639123299777656082633616283481731312303063964471330503935142928456194207944040233131509767389309902847758136391160522959229001296037743914756371169857375641373633187264801966824008407541226914520360472173824280232810421884183079373095729136414210189831452491836361262478016978807539873860146810491868366235075097827004238888143102415908460016012165406817348756269266939421996763744877593231155375299139941123249229303705627929765949217479553760666340694842494364120854637999779423797256937706740771817808246349090636871891039412029238077779204066776016850471981035284556820615254398631661627265481481609657455004816961006912585478603753824030800185568306007797006101664208846565823434924226630763277350244487031552743410681552571164096390121806437863133047873633461840402735809491046071794584657018511904532759272731685078686020222122314030988368943543336415815394235950875386224919914124147952241202705103866408172389774885404129852233784625614961114893974009222185700874351210040745578549995884557398746146811982323402933724384957940937846570233702478905905815326365281700120145089038128134245858732522834731066884612727319092817627716818070616810652443270447987971512672529184316073137632801140384574003126156846669941094600952732164469304827336426937162001564969693806741464545846268153601218051428174117057544315060268426385090476628483458769913229071928648419039293312692186141772354348498987812498381504096972951705036029083381183489906593886374077617269279366008860850838781597795983006431301157614311698141409409351532932508883884830548040317405972124268942524050475437719082080912609078127458527454287156569242184691563393236299668137833475626752461474619285399279690471899401262903842625647727702469844020354202309437842920537001910249756186651274832014814815454695958322750298571342193954100645520265938446598044039337957739474019345383427886046409485074864227685418607443670784046414580360403598583333253452835686394105747243193550631275030901246272298662999147791323546359199096591916229622271531883801612492295162357267982983507932850027377712895472692909423259686423199864019254711181991931996376538001856551204705469298805835972094833568810697300097745289547906618007256466239761764373830294590349924243522841279927982818935818394489167389202230950388312392238896911958945105877457251800828022161115385187670866656535524521463660399485743329071287781632120124489222336337254452315108916051206025754350489956435899076090074866442052756815291531857916126848055823009374853998536742811903620453637277880234818576182079398243264708942098537842465684549061203657770020481008393601073172698710848121616333269395027223789236404450109590053759597617727034139324200626674052668658984138034527232088797340537287274226949731628992098414048133849005790271968182688917668790035584286491230706893849310261818543185306827296648346347328978738686530692100338003641359330283048790698410319014456730083794611296724661912943303307132253598812513739864029069447158855840643347906937936930314649155959676582077048298769805540414538367414579199073520392592064584427574508560754426123350692721891438940470476165570199333752806821185592401763018499645370027730561797665808079313485669629105721143661025187695606088687452195492671666489821567827476408960225800077822216203116544481579318497534976887074656073906966783771038207307843885316785913463999347045250495710932136984324894905817405199482124551193065615640773043009713036402133868821883267409479456710378126017241691153822348736768016567727578917751417025357622313587138003574230763974303261729337138989473098995628514138806654038228697157146981099031981759654238222248003536738020500089379248240314874424975460232081045959673072583579001257399030710432127925840409993052744693591235419832956910028651855363144182160017967126101344006003584353995676093208469928099415098679498968709446833089594367451980562175290057622249144513404562581703027749918922654290821067090334463838344182261140783657922374757501940857831483883520878217191989765420092158522054839404888915622799329634675406209397808183190279538081103981562643656280410601188136394451800320091202509890158043101157353135943741572629640980625878849553162893002700409025167483751279510656264464544821304986676382950759582220883451133010393337561190166389349615314711981839320628781016475394534290343969927882965008052853754654455053497467276390989759340449971514123854838257289573322592108890058787279828180772740569316244642814168201992626827874960197687875217311173254494796948986832663085837278689355042152055209394200710597513705000699029646537403672992594003266541311104864946621251375478072464862477535907394524218761821286003321373750928819007078158423300173650148281395498895101251525731017103423506092010760203633185750973876043110433115357084711992412590734454570839486033013333588394034012209407590874911302015099384834464169088647025520130507941785186108676521921446837235904808586071115135450074142011643547767786719382348769273024097935462434867001635025403365368404483541224609892584149452009914113396620585464588148233013833052319149855750335082438366326817253833781387710861069744338780186664505384174284365615513133474932364786522879984336789715721060928081014077861902594081093307258415320878029967111573473165720328728129094016232275090755098354846242669709931951479725743260676898928430179708734987164794747120166876645295443739310791493755955888302934988120861919506986606491081333341133409095930945510266909346085348807422910677844795493734957998538330000908493307155291154377298567798820497734106001669202625538006419549975355043809372143949133059608226187447267979109237526226598826360709824606833618168395477297781448541294821736648939082906697407180657758760109679122054491886509920036585856219372325542813045210878487917410217517220133861476685126400319804754031870765819649687775636311406579274735880573402619881543557740141253086228595873816293619572640525704466059138905668654276363356616035140902013001554454159452689654536708285361816995344492495577863706900721611152950831813154917056098582518506805540714682273959451421886169176474689579087719028102038942787574628873819765919866817271205577467411491581612409745066214242521024790259049092371928311603935812765165427494247097114349081812772858181198149100926166746600528431032688071513713302958951965705663012838695504072007455357247996581942414516413468054525701814966716789861534248563250478530642355620562518976062080606025039976585318833049998547733430261384633877615312320752006565981799265642006885685156718077141903036233164766277252622082585193574312445662679359336277023356307614410764033792150521494278429053659826175802448213436781054045113024012916671948237457824426284144173268773387280936947443053586444485528229831572962537797461551767183284817197437625726353526479745997273641236098571860859398094474370058610795279002018671912921698499402178685845241189433213946538538401915467182808718017185315208911781895946791979151302445512282566450649681369481154964599581755630842623709819686566149516476710462736234388227923363438419425956292685193962786574890151120948635954893610773564363458683260188803803688894521117420885507398535721989481167517361326268715390423985990809269637123819663640381848385447452784917180074928077133523656905919114164039622460851563056555546623458750983722458365255963979172443889713508856987226945417655888860090768155579174302319509917587205289975421061634081311111147430583389149278233872876819466718376303240976069630624038166888445756427752546203457699234883976888554542454409893147018605438670380711879251986248977195305823760684194625042928809585952439765150933974338041346710891861943047739807656487040373653103523305584751768558576932235382558440528514391736315607330966546116006160299291740737728349668927714107439088062840084339909478739255116080466301037791310456313720930603432166661616527191032405278175802777294179067629516079944296548229223331851901817949052198710500609261387113666097593191148545681729267904000908623143338984562631606794172281877799337773457523283047651664615835421040973568021899455518449544297996169469189392717934602070820328555428576297083663359696008379600129431998799405349292297152266916878037499286664837273090330269002637090832207562051019977717705124127749453647899500535597962596691052965581924312381549998322500173268261814881872673933803627224715451205506573995449769800787411445158636066077942368128383058532996452174229369743586859233129290794057815250714519626695754635317271607505804378729654928615913686856606566857833487326930749753648607565185188291708067016080777975834271455303561422085246743640053904578433065344353123017300475051876475239793370304074853504303522141765745367019172403564714855828389540164173197753029651265304450471290268508169332273041306784906751901036681814050478904268406163296692806248865108890836287068411409905420330286676482134652654055663635294633064668507101656980806211137034174807600529392763983782704546693585870756112043865139325778336867162897908798224212683591968767759719200620367054506216692604210617390923099455569835220736878733101116068858983687614277313976369345635031398276442782498742561425452521946472200029660267625478028767321456144948314749194188467716315661576884524484399085157926489616168136146295829867037193179938270252084328003325902359179101433880303626097861018078816537766145160717316345422776555593799270923794449647476316067322214755486653351982797156674581210927752709984933159171702438806029535285690290812883559707277888372726269032199805757932383915300676394945654302810597284668727861860767115686162449385069081897488763401620153344248203434053872795910349205044056574575001935017036232371486617598325301576797501665033300375167079784311231308874278608241737277389536733957381578188515292822274886390351518210956480679521190021207731249542162780518765619011328980419263061004435044036151943855184467863573678496164892496999822197753521582757955866003406611127964440828323276263712581044425003139978101927094829245771642756577428874851402596321785105589347335751480132004338602198250122308145086920720570351359877412683829019608806617637477840341435612150761181716390436831951469539992120366459452112512699420165918888032666738752473826359744917104378226514762915727093066607697284103766029948731412329533822312167011408342229881637677935634483101647992674686249309847443118638734039422340187275866274789443025477386894302549943060885101062794393462981215584406753993120660719650165981876460850532508950312974494592863561630820565054181616273511912304902742479305730185997967074959891217604142578142306621496188614000396774497466459224262497249551647093221891333462123349145622470125450442026828873828473472814893382948047282264499063192168517245760953438576053951336649491359388766815256304299840453379262324676698172933812336819554057777868742072899788129987008116113253018258181192073083808440737297435343106106689044098631688336937233186285970743724026355719880112867413145293684803792726851682841192115444810344384674620016074793259835242873048482135761948510446588050890513848860468702151597466702471808682969298938691978919280902430385761172651641897633279381530734360534890599522205567227009314484707558406360099171387471573957363410531432005462753531444565890378456476531692797960695321860212481444998978048676281621425459011535971536998369000249718834863576841970396109281907034647819998241086335656706113355617160590785599256136250469261319770412907580306920525457255685472863950690622174036881724795814962257564484876636403424166558227168900374685888797767293663371098953355951664155552959291015356974536740822307679862676537417629105043836427049930589925494634001883080790808436147290109494306684909764339467599672109025113791905585537267992830781652221295235984528772869669762732049389083279884089191208139402880888318338202817047212888499876339635046613569977794489333091994414956836584606820715189644014764458511371257901759886671362553457611832860767848782851774746184491792265057770104619465049075674090845838238947796459895288432545254958249452012494460205850317027260341124322806782523881504117953711915445929962745519559355022344850462038660935750479511272042696623275697577102665097212618963500663456532094873254914852549604364918129140227395092427940725648096605869749022653363473004166114267562688462331955248686894995230859351041936497777913150457837948646485875165652016326629428901368267581316044864666852097647402767965773990618614207717118159753436753016152048774829938674194411424260099432837996914367215449327888702023474460956259438865105418271669950413799737826410597876869071796960893298416716900640734458591872025307207583437553411269717725499489676879402114103333740249731006078651988589781314961612334920671543471621677421873740874997686732482783306822457982278546891157092553518907368071292783715647450438187844286574228846529157565818899473098130524599001924151669800730452105913654420045301555211388890199292370898750010234106794981765174032016622857088835042452352544643361572888252402715032648378491580208820326421700523781200940001079369758708125030083897856199949792575332122462368734483310638947089939298147726347736779919901476605226599797681115491790478828750521027808101468180313790145389727862526132219141148116641623469426449057448493917159061833032817505628198481532324042749138271981626079842896492193129586999495587166060235340331108043957624638921387677176289714889283760376600800736372488262391356362182248441836407653272278661136991435297049272471687742648756712625745970957352465955013821912700696808136483428130442065633824452561974046804073963046285614334523090834510711967293864198447158881776432924411253052068583545406351071570672059807618748131675874973729527753352335534197358965077260354843174999430283005232095371912767511989945752451029194857917221115004251103960158843951879463786863006590594370711515096998400791207347529544005755839205554411707101343575220177869545936627123186953070384439736891314674952566248447789168639072716715141578718571613491089473887467978668741840506583487737570501830123779326989788746560927685330905038199404973565958147159225990993838737842491590935562741935681042572075093021027578359518738981985716935563991137845092819720714462382382940661022785925142843053900781469087127538333479914540373065107959327205080466986365594980062265710240292483855659508384344716426249375976046435041359188551300910873419436519653831389617001381821947007633615053933306956027285358921954134717732784533050710646384587932472849827815777663788690634611918634709056831750412886593103484200385369476624981905689823888535866782746941106927685389173060480443165693213504550976893986859975835873178522931806739783349827280579099020004823314907790683084866206125663735994808791624007056632682511224830009563812796503808013209837484690663681501369901087727534230369953595015492932645953778729443699534994307548533145918198582824032478725744723944396674940986696799460273610794959704923234676929547083029414683832952226738974937524207197664501245834539497856315996667074221540270812968084197169292328591612528060209928677374517413406030465161366446600402587697531045057623948769543852415803514674337080829477395972977919124196113856597891745439961084434367983436629370075562492370876297367697103213061442296745840429091847460543170181725192439660498639538733131020245894743195230876474658046009167931445535143504285630951541862434670087598451308297220380688652770920086551572757563750863897830688296959911242456729383444148157518150718726451477707428045060843521654510726201483804457026131589977844571734242398024488638032274776500992953696788050976070938030447744542535607034160014590955971983841973601000963129159511994678777330522181476890344489006249261024799712393591078979230517264106091477575696259677810259912820277031338804999237984532188566246171664233976735081604518165082543891358278393213365085680271065117692841955607146574514757667758927272897896827959332649724305824311760253318994158154011748049910872089415507858847261897157283503167156522167379701765874652427204515651180128661870575063542303058543077767329253195479296824202206802268387772613905078234011120897575217657780179713434917352436477507446165740235354857147412011171767334424150601703631328285437020644075745916358404528806033790005253640919162789463223197001569867404119875140603789735911390467399394207667947948410977251034871884009972644816321362390237909857591584523050446283152171620845645923750767630817931229450568290931822982016701945265550911279527826368865414670486072576508190333723766153751254897324780539133589915381449413878976732642719590831135141176793747988702143833004522650987216923299581252128286936623986608602173811193530314256522539610889800029869358768955306134859475440667216669478515794545692051802502343308842258060665232116344650879430469502273646781114586103402222342456079062260159713232435423957919548354619065663257518906116369285202777322041222916214203177780188472199076258275336869202123331450911390418340233004529631332576404724754891723338211928834088940961982397635966918811332892431277989644526228926013568690576771327231927820956584623290834912462961028263663256046471160909510294485121315622770478794631195297182107545408398203999373948018516729072940622643609829650229505408290173616202296870086746218051754662566245368732705435753040974831533690170785935188448738125095082221202115040958943593943131362062714211632064191563840970716074023515465169070642388516697739321351567166680704600519065093948501080884322174981841374996199913271951620822139565868653411705445876719876681228656033325784664088452503096550332311896143764476100534553014755605818422178689920390366716811603416092659160413190322707591021351472829835575433590988156473400817061117979545540916859034076014915288659691946681219182419262570595781601875223945459249451199565263164770024172795343075417357531400593142496119136801067470582498969158256898491797482490675564024435399721844105331986788442674665720938653064590743770309786873836385177533884578073538392085809567199758621569478912440520583091202024819507190093076187458716488503763899018900248882670745315247772465358743426995913847159421535211200999562665651685691326674440784701240355434252549047282977470586269056073459977098332513819943571986066811237216288619465922112491659037564794962868020720223255061333276422423515206379632817046307298719435419026663636643749770016338126771785373538543475200858609561512393220907703441419071841743020464256038887624480212912866599230626760722220487661921643578695263028973997142109480642864978199522434324778570683758496606821927765538783889531352257859670065727470678268606391059726209169247018995444772449432172891410473539428181637576752945879823789615736392944408938781602266702317634242211402646907467828062680864020130225046771438064735838257610944724727209148207379814988422124849297939770036330204281953669707794314282886370448493214187399994151792988151353653314912647192459473868357510670790283614231285350538348503556328525408954402648779352065573641181934827847441337816987490206274029908646654706089104262290311769875908017111937538697933625905973561750995168234926121807788772746110595410048703932305035347023951811103052706882372218540132036887538931858673882967032091188378934600970712345069360038691947923102299186518840538427121251751846307466154000841162420149303672777428710225759906119793488866824209937755346302361808070630871508217547618686385273417253318049224923553620478010826842716583224097280712537752801789542330207541768377072169133217453503140654184554950776266922184037633072055709379688312610226083239664164998625114369813690049597258993459376699723189249562089321731498534542844384785275659208435390045827467036506242212883109503123408850609617812257073955701270504151245187957872207944874152957315522727903727971650223716552919802639575867787473071645055211695992716974292942173068662325485344365253323961768874112332609139961432193669941330209353538935598464026482255341351688663195119162346858244712311727066936683824066436205043415563516575543869806053373603943854356937065744910950965161157787177153185054799875391017724716699468865288949068615761241793076252426806412534947696800248853743400363491962347778793797571500414592836240286150658406742000103612249004949587586535756968229557099993626387510332065892806770258202618842414465279255852378412682469649246588089153471444126608729478812150398252217375786737034889238612457004066100444348629655033819434083104512448637093816839239975745418986323167822717716219930887592037268204416172407009957948093370260043034904475505853433283690373118625964723266548489540414990583797994998751163464216093316529823426327151916530387107901567908106418630730153945932678995032643996481656435658314802443709956855859611191166402497902631339830381676120639262581804083995179000150580673790200459488478492070396657134119284234268001116203444336051963393930333067034976949578959664618642266115484286776045059686433076814137139860016570428955784813737583618555639554207614679689302233242138465690798074703750208836878697697125157195407711296223079591971062229204667230364098348868518303429522506011028523350501684941624266867978610251845518693201466250073860817049056472832169653840131745139953927555609136541424822495138075837805683629435652190610796202099002634512208375321524282273041606821541539565010414633448297064105679219199382781472606220147290495532238914930905825500578503812617715938042120671404141718082171215875115422705016258117024726080875531457770719378387135624893748316882536788152637031415775437546567611053883367235169096331380465177673902164493078445106460890456078976790956302620299843139856154976008283665329108517248511289739878812738124016888840608914283759494858674657734018778376647737207739889872404731625314060694901972395922034013408245911634642504537219048193845125776013637761931299285305095197824144218495249050343260974471629656781888896748578040615120436297226447141908107735647557634019339189567505324267391830400299875489113442082738890361632992478400449301607661753373127075658678869154371132618851734376894651764610906714612609947261918615724936645150276611432032768605299809207964436016204304304181324448434508311441712478421139604451000239720540931242960693055197528747529462045300806442625415948749422372740896922781846084048096453046323165342698969653317712456728092582206129569313890052806898711751398758877291162849802946082007718691800495299063822359712056515842127487082941365415285709058393268809057750729825420805773875523626406193869610348343188255616178673639696516066729615132154683837744557625292067860427859939029095161871728494602448949651626748183754090968586306139924889013233689785445718834695024929553539447696540241168404083813061808414161751168068470685934546431194823461392356558267800486996261898455836741314131914073570423302880426195722103502443000756022199056709372994498625196217277565828189507103461328476191259550564595004714239382791348539496954355380365989539057131054889614203559652850259059380805170298129902857891784996317422086238911862069692645804936066097962585624881175469025240982312770975022447247311091679804978430855370002767566276301681099505346430595560908652822348052818543195922930405487278905343064120299669934987506590595051254813109169562133854653513046778683060470998875397147615361526728616833063929392931488892338101879915256174874085673199225196310134018287727530057086811007064499619193203562062902480563805052659919352836697571279245847927084741803110849556911138874088441442921631736032677388556001745502123391630471019476642820691730449838609976747335097076732525041337660202486302691749168834004336685963728589478493093539770743257858673590643395946808502223364417993684537481184578667993480795548558046460647586986225509687563688691924509736165687776026373634539258775487266684640331110480939832786488266630126169690237134079611020597916335482954887046840190339934155688202330102172947976073330704254752174526470191017952468814162953990387091047035505909455673613372118425733438145758975857744560119969126821193811554532881968044696164310326073868224492801646704430470504394529401741143790327098814889687059174722126184844007552843784417817680301943000826092624537801654528409289439700753161292943008498337139797815847048478566914445378466911304412440551510366650421600729767719467097842688028274950038338587582306045444950328879886097651572216339482542727989346678114788458994432316847835633926651683464334310095427000802418605921867823171868001811156591718882597574563236943356566151295877596425503160269632479790149317677472151794226619207604455685281458430033898575317421696314488015375700074955636310156151160124071684809565334448832361890123993839152304385560102213828579187797796644398189847145484884148857821276079759897255342803169063584998488930088466815698827714335835968445150553536797575021030712675539380576452307393586665361847529514040272731435006267959184893376749586519091168985673284349211275379863987839968854798561167724694952336742036224366532590777924390217016093907957852551428596567444866931488598393658463595206591080036485325587992848025514641793036557605655159234591327501413454566355681434693823580867121329395604103983982559005596132373612446606357216845190476669715904748162069444768142596267430448910020799040220340077045094684701185642825840681860050934848143126524174397437260084531288261980449053850180482652211830971123190855777302674500154150598532392456577727952457777915717670131342853736420974318028448659507466981581355926003308293942407261122014095006472877904223748292938469398166359305453586641139475926903673135540655493927684253122489024080903628885268448180131388117488378382221417659415883996544137819985237596001083962415605291769457365118990490726283535702720744720818833222846105010757137123043901604616465880760933620063253831917410524209020662033565362548353228078810451490431241215864609459237723188673947039151827949495132240391807073380336450050110085543998529562587301711533345876615473663798997865145019897958819599522340513302431677208947956004836562523398202761347616786663255913034855956290755171566771569257882681926499698528058804840544081156027450486736679062614350166683803699599383545984140007621973584433501610651923318613642055153033922632896693278757964010928453541107297297021176308577630936240216555341402089073922175359105669865824110956144887581044158792437117531192095042558777295184266030577104353344765597636272603214830245924844316850944590839395233177570143435608692115596264681999425695426749655543905703088883292575738270827931305462655730077016420314391876194235750315344213467132248285870815904281942810998035643744022470351348561878437461910585519190680160813478909768282572995644392315356175640647438723359637777136611252488248972649959104991844376278576852877288645893189751649047985095523723943005228164975968068484586416334683180135435365074827170340315728117353409564267653105062593549350416936284581672613975812441637842325726539914469217830013675168871017001003111503811755414519727221690546978720800362766123426413940015482337105236691992912170602634767640513256093479713844722784263697792520321588490659838518305806083299172737314513087749026527488389022056511448228299112304036210557425115822930909594845970164517555750422131642466072734117129187408877328772930380233230829654090384661030258619509285183044253927550376543551116220458971540100631558971983328956635284114408723214544248200795654067780847510071921588122082738056310402598462019266875261415008833955061811386233653718638327569304825098755366877227692954233624634368690945895285228180630251969872304484354587866762908720609957728075511755659499238113929384750833762145487899384919789024543351541459676561074734542812823367176003157666938288361952920039406390885205961815671597462096284039514769884959288867109869605369397781272467448376900745350506829877666282353280958279348893944440669989663107234374558825416546061835843885799985878534135532152679504942794125620478861004053876522800950175383650761596256542540394473291716180997782283095657056658209039748808316140246082886118794933738812215155376014963321804149633684899994290036768919872070268696007150056695294480246497956548599876460101342996728882101067377700660041109449739447475202734270905632785006870631286689260322353576417963745925232680913049080403158020148213498930601480007505365145552342072188979506898413745458952907225818913645555954440084996800270373343311957129367519372098977660922452028928361072162478484123163239475552169418457496970316390853579449315035448644572380575224838101172603073552923616159672383008947760293332331202331299911911775968125344252529375513777009192912966142256509892468400179498574919757660945620401162418106020916171408721091986685925286479391409698824210596187643253065677959885487942837860674906613585961104767463265453504298033166379591620054239696557907686255992866976779798855609056546787855606550355830144768777186574836827303746077929882345210136705912642382270741014315397476562394238863729052814006017077814824233822579924619175614800593268700955824014868020875729386959949738397063637718478174066440502327151729558240381156448557195173685983307036096114964393639109421122147490674669013001343722175448499889873363300273693107065938873114248680876231233983543413849032331698124821053904406877589905181905606697586354322957396384032866875744802708006758507823622608808788483017940862288578058874774252204758123903228012602370522252097053224123303058719800860187577599699957881276641717280499151756436631032046879527852514635000810774237856934856730895266653072571776644662290495620617630848204628105862825346653031526329330781452012305635823375764926421649976429758157165361116298934366039041321198027224277013939251296395675776722824070099060925690915719484551815543931231309905191889568036159330476975193030438797393515597301217216732393699924383528353461348981493548129604863916982812983730408046127382332298125452978544408569250991315277193774013191239635796969086474720028471004029889247070172914365025189910546989716677159507770767219469927712579972082160539696505081863288920411189381361016024770341542774609334107069061880604386858475512985052719827726603019782630815405432351238891549501158861359437731956520077024879507921430914720320182828552808788620772220537818046755394172653770363403684982167243394300690700296556935068568370572485155958571766898553694463971012678098881404281373601410366823684427223433217155547010950330452618724222404383592213236434454714986804548931825849555507725007671538181730591070570160594713238458104487321809769399660472046864430105326375804322400533999222593384468586925729027464530669050001989800310215689582389373799226826007588120157471332689805393491135851055877616323166855397098684579441769286511742575164867880359165842099068440819465163472915921212747025848439114682240920973544268790827854654532740687577353825752319214353724756320902443947496979771625336987423794608348316752154254261962986012052270518007246211368005466472089121041965753155060739818182569378964694750319260074401800221769433312065031893614525861312989170122547990214026452254780379319807576565531315203611812793924649022821543234733323055260281219715232031729427858529888603001140244130674604296152244178098358934815901806314016274015985644823387489547172128071366088588176715089121719044353631129643141791640005158016934238242248583157580595432490911955446714077079822208874588645448035700180648055117350610852727586523610318355857812921281492992989221472105755597035323631557417647684530425119276827675400522118170147785021341885190166634526936516464222405031559271938595773930296558776491136906748759341419604666030758440100256945847849638586704408078889829568812802461482772052587176419101383004322661396028561134294084536785692405407607552246078645010742749889932445181426484664675255812942109852402462992082523447638463195894722322881977177140290413390170857799732648915263961334178678858700791880090475526255736273545783406682657272732095942096275181205849617786132716848134670877912657310290725680595881682249750914909727782383226159218874021620824548425470252643080387530879060000773454641131537521982620012527636771480931684345433724965400628185263872436016639828972999590508918543682871411729771134657660657374756541458713353193253866075406689175002521650176021386279216584435001243515342484938816628294470666874575990994247578899414557364160412036064034591245036388344585860614656714544116850400894029348205687668442577467596564131340726306677288560741712862763111798476440280271996174989854440095924998661469029525476674937838648671825593974988492344065458358105131984319568105445409097173390419826781777937653095548164145637374142751138183158840119374013211306419516807226402677315021820754410215401740071206612886104264417815871323995964596429854610350987469135415595201313850623696429961804222945596207925517831495805771662519804764670334662011754958878050603618184859525272221085922123685779548593340503166237481277982124638124244993396711233657501372548597302489477668173427104009672875106825979971139992995000816999866541532304173639077342461594307377565726514945680091850148435034273651094360849226310700208013437822134853326851060152523793498068380778466208362913656725643498290726690989715032646412451695950747700914479630357403215266892383699119747880313560557924598050828443363910358978069273164366503488881186600518102044913606069497673945543999439636588552375499972963780708123810824781261642450940958260894433149854251840593423757280667852922310004238850104333107170214117095442900821627262194632868228886175247059485952378414550808332966269243587617564639789537589192181424814623385638671859396739533305394588998152979496222631629010267143951867090882391453309983271911808293877962553835970488422950643338722932432684409722448502628339756064821137611399045296447477132803190332642421230199438979990336409889097363193385983879494847560371797844993098874732374816528376497467921283674129708825032836063735086524359241235424169867747226380721337682643407169320302824788105134108874049401369235689712557221321991409689244366293450080944567496832750146906611137352333074113334384183525273736864776069052396160923279766412519446948589607388351382673216132168623987332737673132878460410481105556596716478279328889718678916252108345908655033268309648057979374808638005772102842272313763952062656407258032308952476304193480036507901867675305208613815614796230578768767762433690715451549893683491415251099990063563074970360654626233983370458801308725633612740475770666245648306530654783609485454108846611947944759186718292193105469323295520796275082705026853490096384941780367121314892666017004136478641189371279801838968070982765899420225239703509824006406112676570933549590898206441498630346662372797102553206706122006231374108692218373496346079102153860238432078915963772294087127127990806398291807889493877566014224096143505516776287739314195181189936381150081370869685091148283087026377208117117443962509789019173543360259309886064472539582467662251570863462236319280608202124827503129987207940746555616129308460539157899287152862715503242734136779076580337456855210602572815459100456353848595721818554947172414588919895304154398152244839226797261724732771458075418431525012040698386480801630300937792996189108918139649754186816181750825478667371526397893381085050491016335146701205330657981481652208176112531340677446958047627580447032197046715776890535678876060825260491159337848012987000069200370814074312642963005018941819988179730539489971941206679822774224351279469798338059205126997052693667416033244368234965093970120571451659946196425227840514454705201236412870382848770022005526485256287846739446541170156779222913599863463918751824172136222995801962765624632668333622227982500566023740951301499413455311979385974491179271453249349186130770519935605407127654965847374306386147874091133578607060595663459661107953412320336123396656429348555485788420183651573745105149386331592443663350621361193199557184690776936976975835603976557872873222577090316474466676998315057193994106741974015843033034689121274555598550119035171889658727861872082567338628770157060508548091198665592655313004626553363687729077829820171674483856774949332252528901700005598796983400068466337424885846357008867217213719053864762408655105562303213087205930819853636878990395395918229057844419570036902540383864413714500818741987774781037308691209920785365324286857803858139463173141573148005757355478064034365076354259245798805307155363622980389312229586320794073852600965973457781710992606793725261710077279135445354150976384147821049038759214477264480284266727007395799530493945254813248703928499650613757345767525212373167501269341306404737105915277116378122105885874948158912904072368483613226915110042402547746558956160957959408961996322077208537484394659487857670822477727505477193622835690730004727296791345450245163890482437874051123178505724176994707858546446427510396254314824681316003700534824288322742999610734244414518366133307282775677345251243076316517642670224109474044041616147857702799397938931771944897477877720364675672885966557337456127386394174276927001760921080329404060613736324515452188900005621206887057428586199185130385727235845078746867973635201062383883903808545230908444112523093702881596432120012324105169702307185906003253984121558484251456190056240487892546372282014470915669786995361597397547530648183891225336686598238072912707077706389879924701939314342386874486584416695999259869806167719880131436426025917684578403500798698787078740442565302412555016493157419034272983902873540340562640479105634478930929637655288020998596648150645200137808654779531557851354607945248270512879943088418929477446718997740987570236226993430361435384426213666193268046231851934948068631973183577800696851770669736830503192604374948724115998778462891287338314154264681748737967754168410771548594848122767632241757874174430795816084255021411270173393382359333351720467921671523354668625845001262932976991365969074235959379980512145960119595494416234347209186764443840359556381823954733141789521733150329664209705352022868675505251548713556074862614458208548324936296593107540140384754349992780619712979042208785634921448717156237002850567052578235505964838775698182888252447282039602562764890702118542705522539231948570518377434297632497035998499782073518219367846981617149205921682994053869209535153600728825275678181188866579978307002798853220954045544025021975280578684814991631241268750895243519482215548796290652018464379404373897015769134528657803879491803017139659706137748861005228842793874015909614144122456482291161926449333954437083995948934177957233380321829985705423666373793045041348022484306838558200135808510168830351605085470941375546927724693798748546132557709447088075913980905804373833202952176482714714694958612490388880348989804245343746664590384051901715309535016405560500796838388676201545316642747119876794495528219858034920663590690123663277924298117471950306631909698091301758542176874093289176815870074774834153227123235936084343787974074384987202173752189896809878982943650090074846120540441963137168708429950615693340789836371596148446369612150572927131992734143382842554367761502748982100056740455692550884112040367708316664533794459652739444744567488311611540135175465423239629536557223113932256082968181665314456642329525059243046602349757150225621756561215758638667872405661119843771518209219124836139663672626148064083789833068826830583103558025044389600210595197667048324288171551321056020997605345160312799399267135765188686697651655492482645301223829345222353731566455937355954369096876080526031965136812032480477794719743876631349249658716803974654445773081754807008879565287552811207708548268253382268941478120079242723966710083962789158172178974906958999031257238567993655715269750019142962668811503168756903280593249658380525638724066317103971262633980322137078085823716739052449097524411316677964667109070059024688296090948464247257081897141755000230819029062360374767809683303298496033652950390866465942957069253378555505941103811614325173356992678757176144866821154938465542789506239017609055447666669447564265711057303173659872887954858487423015991253215318346062938137578274977961010545870511602398780141724871482664062029501867977083138534894611875572796748453043508463885735665035526159432666270199759711548367222997556547673168010087319902211828847195944048209749304889999377452843319050292831012998167660024053386217493034995961017711254484423438492234757371303159734569797962780635694451954179639697489414739854848655682678145076363889466797248626345717705353954117071728851414149666247033831944208329092004426261367088118505091075991281366401020084668522498043930943360187589896925179759687762215645416812871381606536240180868179333033246123907594387884392990690888030916683620423843173402420676922761629305562247931560700856597387054047532194084430338993283447755457039326257702572458912515820238916546276092894323619164105734596398247739721212172203376693903829599239064294489621764699989926426299310011899317773974125227075973710932567920850335747681372759226203852669681336366663940654205599736129458958728182020546688687943677043564968869437130672939881054905344984119454335919480525610082100929116926816178565118313087587945544199884339875165119335169435270454057775132468157695439762761273341774707137197729467771923799342961813709452940117109669908558017680382413186524486984521833023443815382630594344134070128556350767667728596460034076772607788476710861167966127899023962681770976399767372050929646865846901251731413158322931912538076271335364619092217067042490794865405664141773058077718775005909662536353016451893982586368208259084214023305635739632189175800302286538270478423610653905750578406410940904979304671353805814438901346431987751914214195717797622304213253617633132998974428466745258991003236315841530938718692639934717797106504689091317986936294210803083079414818460216029218585848354716188166425490401792220734926048609831692297205675618806697962330541223621743626087917370230610941027281842201011360168264715709588296260011589429207848289430795672188600638936786283000796857619073696751251162278520611289850356057474753257966401529014044997434660068335059097484997345142231852906426055569525054849666412057420023426813631952871289146927987931365468829566496247657285329747862508800704023625289980857800523908201642561388918722962458070532029422888214800050192351861609172024566441068324481680739541759028285633208280715372711203999572192506179569366470513792108224582726794747654449595093777766919755399798133309568848821542387286650828567283828384130610833303604010785705432641593379978331570598177088645284611567764989318421576195487975601999813390228132682044862568754857126376163873721089860568320045482537717839450248966392187084619164580418096028367949041785194056613163224045434626525339517861804710044751397369536682494663321915149987472250880242783874519135266459555153007226130691948320370349872647207994736290919550153961524061364275620263923855620981054060982426334765857164660639809974210963537542889869534662050610217761265097162533925045033127420639821772211622628915998317665437977574102322900129143065069285982446125721959584187201111709159254496905217155680388498281741185733948991409253916489038601021517727253391553686780364535685898833293921071262976765713551766282911756867124359337334149729872477089946019576566739763825564400747378411009122168328568490949411875243648553551424935049794181135624857130274360767812413555271836498668505650357765596904066662125584347374666224645234994109288602481519848995632456728153484887268631133676481547965210344497753746791773404785362669411104929783428852692115237389150724599207933610557443656378225484728402759496466476951091102921730083908664329447925045042475259756063691763473045006939754374260779973917061420948940038457560742194649436772552782075025403195811813521073911314429952464860095561643212945257802746641057483109850844487377561373727803440446974831666133831696567296319704846303723978395644296630185273471124728542724993709196670932507552341739655279327270004131742689119534887619809360856470392636380252463761773678381808485465753035459888697497650655600187571588560391061191537489231438553892134186568529333154384631373849684970796936611897066064238933998979285014484432905005845829988993583147925654524542996391239930816772958266691548809700657223268845967268337561911781901052548487930897713997277790458961788290258215010617390271982126841657338009687550623574550209559714522859483788912162219748985783155039628817202710945079533454058431277160848078154337600568861904810386336492514611365617497306382558106200373806487592884531537140832633077757405021434748301961877637414641873468964540844940284533391104571746644791097222765703575687648667891043437411108942698978019918997665596077518865995908997304456680043485770263746280336266222664521109184857187249496975329455360408607147270513160935317844176284947777761723371786158459005573824608977338464741734155277225736083338046009802185694461332920225369627050603272907974722913011596798046109638114927103333808949709875461559815916398138382091614688076139337112317964043584537944716805605261060182192700951013294604370556742736243534838609841574106072534145319558932656879654074373078741749249823770816886372767322482361925362338449611575580878458450094095702413048826700759218960461154908267105144402334081037248933996026787917403442939684127033712951355211157500876524833937743682761786843092539185814549996212197956186002329133220484546178800853458822594757531768379113261718228649699702524430617645159426295067387747452647933401533182802140838317993632791201944309393730284692442352922497092420456203679545242076016195452139814752865301451151345983803887781010323506537865785253355860514737635384087977576700037478976811711443896415479893430971464860045770214416287330511227286141978570696220495007546760680746916751739432284411756192753373738550498436985234986134448383452022955524308271782657568651442421594739773002051284055363567640089090791702218362710128291816160933300530372661008397543564578535993884307486810697270879505746506299615911141521417800291410175760641774285149517137726592637418739203348233159375170547944155836092848778436807528733617991532049394632894519687762659071617976432561464485157679422398167287149863097850069333059159465367358834932428668779009370312294429906673352293648175025935174757114432428263595457365549514827224604234875951351983353140919134489782264168013997368706126125079475195554954020517471489684526301796355039898862820028158813363941231584693360979782243402602322237679546990237008026994651368060719526423152423736713180960346280840163880873992429240082041148734164770900038603848586782337090094828196442050418321282317894013854801684150311340188003715897776812548964790658005942206546826236148719433441648728430568554630205550524489628513817638258403629720045236621322103543554124847472072070778486978377435550599610661010501787734101534560840024170169102810738728884037691183169790072619593862544241295284695941060596300471099602070890641835536521966216545131245648677350779303059759688957496611770353788559756561088577280547487947410691795825048189545616418655280617556929335570496571386429334271704484005986587893523214271887912459795402277747723067320951105106539803294818273895834585501293079508341867750389649749409973563577831301387587343478960341581816727437244993302292133221554962973860901193438135356730824496369058888552267705609002124106338069714154025279069621657260369570368865766238291282009138160849621162182702995238148658074247270174662934743062330967869497254127322043839507525947489714856035166653410144895252951951326290226204981686109729581527657811371580719697338726608913600814221983971950645191517612909504875566522808856619192289952993387950522754249770837291512585056618006214453755197323044985288426365181324275474847645405766843136940488625124293389789709354383674612696662509362804018090023897526622797573325607584565746783620727187777414469492837574773325501104916632194222763221758099548837677162739603018049811486872057789765088045713503760681899373248466063709149931245440604512742060487635054552090323126529648246618485613321268469218867051068363841834073633087912291957995913499004495475823132064738221613568856234671852953880648659704492770371380231446651178453296210036802069371114917667802455737884228246991674795282235457173013817686833203860886429467948833571241279700254215363665902875712029151808684656585311816148871382567041049943651335178143121041388698595109520928013123820387674510187588675370613448065611255577718413841207745773511133385423937696986647194440780875973396726690418156376895256453822525649151741385947903046954776390675163558633043677964007152828023960889682754750154300346589051299434311629261600622159104207308838534457648252753426260205287289593581891558169136197555397537020895098010104325294801418318239250895967920251072194039095658310034808126861386329902059986038916158883554918762839077351398042568503473056713852174883083261016064708998837885491577279571046911846752587494108747564325082091083237700741446381924883287910696485118202042929374653329620166975463565502486666715230704870749853105817530050678610399979647823420988155509092145234815517362633394716325944972701038654256361119998571252614987170746799412837200109494672704539468535457747998568951402636437494381214209797070722615899759930731153454894078614760470806055404845441794253580542203138974873024158415693746679132596418104290234464579006022603111403409268671687884853022913405646058598628406616709080331955580979746613582474710574609738617836380565352225564214463592737197506665176875750635545446759986897148765167005504080435341791744539636660680654881265617445429477814057190157386950119364142975863530810084949154053817377020269216670439810105466591785183731752185048281100885007330045724878509936907574736145103995150594987335302340926161010469313452320088229562354671193681710660921922239886592467021427162449303826649095217318761562425820132765054642810792228944641435276738311587200971616174350819549034435547763527533652181678053180207588882432522920232617024400504412101369384117408069936862218672302002246760460040156626861069123888419339848790192898026043955368558245750157994970260831861649027755062151945561514432648238775144955681725931301558097618769864957603584184957579034281615370462966000535374506190457399487374632774436638276141013426094096908488589324747866060192260808793769639791939872659486867810977863702360897300242766719742365343629496187851480278014290987719132081182852939833564587672032700137965229725251179454334510185965005544251698668606413147530835839355328938682498697483766439891068094253958166136534606583556871315075383578799563676551244497411571334912337919140251302107463578718122082454421905845619449606575800026200384394207685232113921662030388394302015322791013057085804617932155353258671042012170334139901959750264913371633452607188261128932713667193065327270271715841920876532602977963953666396770013241175076576963958936812645896269745015044035763274891400667200418478503886831695965840146555013888682093434857284346378133332374788194918882851758948643746637477079659026070138447880645232947771962456978501376637271962817703771755892773363869813607462672530122680621280825292890228800028044668096059366685336989035807149581758543462593570618715741641611184157806478244544331380984505136216132354516449154621679990756497283836229899762325502627580632729077695568329911852354116811321064312462143841209273021622242394541753478610253531616579412392953227875180872697281771135206812299807085000039172134340013853590644215958740485946589656613184506886471737086407103048002594737211152170864528156031229162241052467474950146368827373731280494601318106003916447350866735399652175137092487945735207226174701258818018810354332512492835237743137470768450906826508480766629365696470721797467399572127643743396526581336943143216626129588331616033856332091249677853394809372310126628963354466104942482157682615118935426162982184035392207425897367357908165004771675400475570484396628362648591212057602870986233523255371752910203317929459282037958806654524859854297661926956351814326470038190585692618714679820451030822454666144858373097374971330723285628076718981000435063129245783099889609856491764888210537541203477857669026708123537962344197623006176923338311812876031356986665110912964641138560117871301129462732009861352399404921217635029788040244841651201914654834804832396032574750608218181200386584601285276899472529450876518912636749803062878492570135122682766146050187810808726643435189007684761060633562616409036379541926844530085717712648088991935939446740216901106073619819914613535023526983564763256756867368777534184077152332107151053986326601430048797214887364042338156766110252136965601920347670618149707484073804796522895909070425885147792942916508825062028875706471975689738414688508194990694467677023297354252541980494864611448483947481317084482810861347673771074574144464543923279965778602856709651625371758952532533645510541290753909718552676056530176300202059095016538200527245311929130229843107315489661531357790249207653625293572490910934989367274692833464943422973389973072566344452838273900837872173524216136653163413524599279864244961560119100431719342830796836773752893942265266372329134826632046363216291764137801248408402979036830828040865844548701892947288307082434675729142653484310970566362883215741947063828845802003236444585679857016416634742280466279574794386432182992458038639028658231233902073932167079314211892751477097972499094972749246644239557847452739685860614014922673707919575742721268972628332153162622816722039315332021446117638921431804649031413165621951086707525138055046448282457431226000833832819637704354018665980448539682203753234914810854904600461617806262737854694541235687896518771410163266106744386777546065578943729335578310786453949028367274404316765013346535753437089629848939585597054589552575228121769734977692921953801910829986161561597395906614278411205700104602766829571249192709542935798338699452361423869247084324138445460348303322331937603304777678185870234218878700988424331526503462029273935620072643984567568611475220764952871405126603795782487690522839773882910242501150186333384385968306716150301844094721379244245178331897482689803747394840323021243878137509444323207196062299032281421499985872446717109257120254103241197572109698613315949240816683452293883030060840740280370782216945257370974395077698760723900972937415778770001931834776300156471522360645836601160151947517394029523801592008828886572482119791724383880572876351523714352364290736545100696086327277078808718882819083359981024664469824253368653818847634644997684953054619558637893287469986781122202415487762299279409484259991523259091780595413681309870219944528960714616320428604419624045693933446414345648599892441710814914825870262723400106664757485184714254144282726622662631009352743292334238143794316125189037624897331453490840370322811511313855857229722745286889232823699698915623919850394208487446139422204188235427161705905912883321930380575241988701469327554835158385253080634379099276405530688788697393724926423397826591404128954151493472945006455890029917187094041784959227335364318164747440006397757364749923718449073114647992252541603178102539306596675352488048752049716637637843278148403138494085284170466324310196663127165186433689785442627765414923964770850133281734693822310262160583123568835026742963413003822234744322010611552925281594478078319599191101394893951184192074862557316295665023914568239712818440987898985017203202661831914369306573372621068526673738614675059099157577182592869877019468266970015049122033359369072074314614547110314192679775748991729022490663227780081568179961735627810494958670994552959854869229823009290431047194361315466676935549847445407725266856475108046238317090547082493490474275256031625141097129016575592176332321351997845455727429669463206231245088659810566900083501877215715945770269548238853007854499823473775278321530003262716995423903430252891065816500154103172615155930749768219349273556364035368831575053210041672670234220414073234196188670307523714070376594280334617636437401874074292439434246885048534749288562029396219008931436610678670792836874132123222687225105513237856506640688428346039347452609495421691093735753014391684655942590148990017345180498335343850245152859616289057551157341684952633546952417897079040823524013115317906973072408758973829631957815538664777753569813132748480646796463261381374052695612833002893392962537626666773069159150136765722625500150623840597622306127172296595273357854976634068881815427537882564015118106367003054815619578080624657144025590820196299756318406342551502803526857612961464727528551491834055931075026295250018627662831391874540051775495789126931856885592209118973390481230357253575210115557119191874994614521116805151377818753863159247482899072798312953574703324829836184511245235429838755145431544869681568009499188781176022403102040816275929821109503083912403934843525366803281933656127254484759366981130603136441104247655345225955124159285428985979718884968310312704300832789929706638322774315520802979052161076958823648769941473700087880919034994989599375030235490261884622647860461310573334675445277274884526503452124578611653279998132419097386027984720337039450241779964050841071619406254215485987024259206236714974782266694537368416315631162014349031082056595857911363034712109196545864839751022567092467987296848747534182903882157997374482817710238128674181838146305677563037649131984998746726569938608179564074903813299687241453116034380226755974698652128596762477402897047884502519154077056009032831315303428742528021062311783714580059364338147533540821059400174514055692676867927182678994318275586882973950275259073761843809225652957345880353818111824153376070801660015409454834313124124988150071780137924625241877187983387344315364023229859178179318316104644271387347627643938792586802910926380768221354365770609727022183916195375075616190483909032654469616450059541568860758407371794590702158014910471648722276692294637586909301506105554045946395960384370795810602195210679827852062999264313453111832040731667889622619532456875174894326575357867998284242464914366514416998649741996158152623944948625718668203564461201305247544519140774870725485922277893001436111346641675974180209742701728062501423510968975327235452315016043151510846991677314871782853185592218602717837238049039940953813682254343150418282500951475736196570413867480196096897657242698326326070904803952764761142090118901838900703485166851611698831148256650893530113343622207813288972183266469899592007051895186670554195250440476800655199515801173402321033045892234445502648609141545964413948785968484352846175729750373704468895583578656969702356404223554676003778904331243151513426369181193213677331914055389231143364795304172208239231176973471316412899887245575243455150686782781349804838582137430027835536097212162290397806268916338529046503210833013647785454420403988960733014856074522114074693212629594491649041900866029470411101660818551223204059616637837329907595345717014703180736785993686567259316120532096881748223884423033658091652478269646032851763914404636496882587820877732628225833491589663816045858464334199638998977196098712844642389527554037893163037436744340944019866591055991569319961394767427145435589676242774371381463246431082374373898445192144198120397934730582536190762364593739946982818762020193120801892756028839353558768849423420837518245456068135498863706674589376713996298245912614666297324871401307641654865941305152239382903253076833780771342872926011252794514828573726891748648555410219238899842560887885642802878305622057606879792500687426216263350890515911202071098318764540018896427216017024164069207542674081808704236752310269961952063672120291537182302692599362487865992997321822448285834042404038031697542768086385513077250216302023052933605947681592253341626558627077983527395216573167423955101804351845424348196220860261459765211973774943615342359369688870350976512984657286641968559553504461700037844844258827390681762411347740320705200214955277880334316652181884383567673232038360423273342148263652463719064911739525012114640234892156241733144199241643085598037752097406445289631048877615416263560104290090311255266098444715802596279931942618674103640996899599742325288336393018767097059045505876335556462446463097414676934549825774379503743448619638332360445177575943308760596584717911640248918266102805000779020061964350797766522660127469712421213999642371628950369595116773785239869654273375876873572884930543726953035308549255156500259787180830920951991091680172117848499896086341251462543787335053473845005734777532669592757936570465504676493543848035160579500955645256317257459916309761548365812928553173898180861552342698258681088175914466001235254046633475218017451113065492564972785938533307208322807101754591273450245730664022543707677712146534080699546551555358334644309796605057043213373107465233618414816916723071439181811251021830849182340036995490136783577484869403326603177200201688636146636981177241231961987776458672976666654608456762885588806071431721748673329371562621400122145445177929649863278496434942993959007392831532794696951712276630338868238974549354997645365449466231810885595348327313680485801959460608022916344789806164502021364214877479616563732825867136248744507607960455999216358762773840863157404877263357107013507606302909942988862995789641740644451019488709324055642081527940106456629206310377745316410526621943923843587274932105232617099544314717015847095939943851039223095852332995914177566618475002133277426472324485323970026252643907893430376033508321762197542476289200508499330913909208948044320758888015988835633124515833931327142340471562931499485236570681383207578424821343440660735702387578293558097141566383785798180101682139015722434998762592044576575928808021388259213775963567899692367559830203700200023478961932177183657494811269819914053355582592256971101388186919988891474277771454205277027027771783369076403485109579858963254419212704202476700440687187466305780988252864758325711030662891823246498499149806746895395461261387532623616131545340607609630818118130527743075859028916606718293031669418222274756965184952998491281311211701889513072881903141872524379954553888548449001873800017513976170202893604904322257842774070574952221273130261178944421209999141067769275648176012101073109117916824597238556258223144283168385746364994807881109211251826338606761789303569670554326343191761738482995493344889627361130315319329213726189683912572234537827148960800205256009490836262189651421131570183059508042434500605726684358591175725088298144399972108692416021573448931388069329238391212267855962755127845553139464993678526267603525402746981114698775694643863204187087064301573323549212602840642583073467130645022339789110394481814993626305979670643096314934813792130945606671139035974482789024906411823863131335690856065625457366843592530477545438138091938403532226169714167362040800775670171389538609254040305170630806216210038934897967080944166744638698279542741299670584824811826462854314017227993892127679538561382253779003997582495061497462331353860709940393492161649256157732203010736357108370126583096401429728080369276048835427555890418094496722744640736763720038927839644038101348675897815223601235663827144562285469327471938575577562157088328302113889816283174599691799165041067972015409713961695960846411611100316912161646393353683991365127730266293239292601345960499231572790922958879910568111703078379415305855378307023425430122556924170845209189426312119516629822250972072655823836253054512208324387189478582102352989775766127198081611209160687452565734056437796677285185386206485192971830872064719512364584017562920531933117694722594849396266850579902802055698786031277405546591769709184373703979135544437201140879541197548496440423679244139543549333099459224726572247044087748321597879324348994002274646195729437542894391421217510857481633732150182657418214735021739028335408061773398028471866747242641117137890575125936591570617207689172300762079922908750138624045701277819286096899018116550472424792540228223102496301584594749512035940143045888378547481601229484305193118291086741489405648358766760587968141096134094040488794571839694845014310612827481978259694731612734770489762017688594353794865256621164762441579688855884423312874195453911077519917032290671302035702952096914443459589552368050174985654522939234339069179546015389905367415157534958800193562656734137947156907366753244246650608710894322646489811490191620590714564148088638068111402691960292299760823590069121319235990670633795639072725311293359235606041992548648942333023040562197819922390826096590783425251903893294383586596263546023463343436143899869179961329948732981207993861069837794908854439772038516722135961867053330756109722673272339919069253027504785809590044193501442685046333766188849573060010639208282116255006154327847922970575650576582982773988039507908302207357006853050967775820731649906914234866805301132803690800543029497435584030992508383214883587226522950342434415294809771491079585677530022375008162083176554284297290931135017735631308412946477595029793430792421814086303130865339936987277274879573981230021988590572962706625981252163758864269438917131019680428299912777123039646327635715030384847468155787489636074668933386051987474963288727594785767050198999372923678807083269111759306847323832488197021808910718858087390827504969401585759011585187219906112646274815208155331574154551166933415371808219960662371345285121537470821618023136334179093798111778291263701686589872050394166318636151514929216753598003348187585397218262620666973655892001924349538606033394794713977790300544148496248257210732256620742160421124073130299133688951408645536390063822664071693820550609784152186161464945290787170540314777225291335203367608881676184748276966810755450350753430785384209743526134308535785758706051577498377295069451066285147275225474409550695370710369375952091655676258871106285754318785400302996777524678834710381293331811316472625737338938654512098556093187314454649641475631117773293071934682267809145250060964004172616956333986841129029128709050033025996625669746637389277445452158233972918319688033517228097989399530975068595834261778453488760795448118458059001285820403692045954351661768338313249794688857517835334511373318746241934362702200143372358598298954514801545838467879801707328910813203741922416200850624653087725085833701659288124848574305803409351617426946545475236732751830549269540982163945828094550681136122468808435034011271686264367379720953445575981117933179265869436438116982221591447992879212017607975321879464959431667419530107550087385445466673676324897651073248626005973979046142807820546194513927743702115184980042728742100543685851867739897639168197285309697157449211679456609534903714657350618400569496926223940867630676946118802006921200625400962621252715340438800652583563249313292036211151213012020750396691207205428807366069174170905156240957157277636169693118785124077222823430026117979913670762557935573164846273417947668734347067387548789988550669980325416633602455628694147611694557053521035951696895722953059650787616492268403330010390925379729430691347395200328238412792632297326768316365458373581278986054770167771174380356011528250872160103698366805213250238085762624518754958641332847378872988210163591325314858275663014107104218655687472506062500158309273566668868118723468386384691552403383905107580886398928182483888653283346781652152195018240226846875768996671273919853878566192437696224872319206897945382753036945222204512498515704755969183586438403879151745165506612789592560583267356298618972740112693026656485820083223327593225666190692767143684075911042953744376432424378218139631902788466896246553496428885152548431747027342108286154822813301297435136462443831429411270895354454742606850381718210154823332379894251767772946506370431746045171310622719070583116022436744431913525222961518724869939046104960135775027610405875564120185866457577791376435437310106872482228796849325231129214473915979829711676834505342359149243151826842429765043968359507971318234978487085634164354585110556518597428043181572867555560997854235705759887028431022129034538651050319421128568960202840490444376028668191666473300111131482844693121018237102575612409620556817390657152097239081499820720722823644679626438540550584156119951248670844330999824125110870299409333457994023202776100268953465374238286023229518203989140562853287361556051912250576349589434706697563391899928376474341397094431761804953557840899129994138435969226303459487312669088740408227138002842555175416310157579767274420370416180287937815807844434301125293254840080337944798252634952188857897881414604592229137577367401569741009384920226129357851848071417776560215343676460802923978282945283073418222768648546668782162527498597565162547048596331162820594596833227498240764749425241300885841210561742500316725033776047966460189074811585261346264031684649560874378138857847724762376133823756560751594353139823228436300862313379779826475800755493809976490132225197228701715013190141781278917546506856042110340433913402324535728276578560209240308534491215596841235077710768262948174962548985912410566803066611928529760551345451561111802338851822017154789863216547609166678798307277451686613968854134013238593448060614918454560019526604735895029759383835310395223992877936622326618038273900572256372661152488326903749347927378517588948837723254630897751824626244844316268972385902465347290301838588004768539685528197763145085870680220600929598772615287613907703531924213406475724213744494346681561953129463822853610835569985988605268081019365738009330972445441906506582284636196717711599501936963393921243544662642609463722968610034905222613156620916620545519727886768027567117619354356767284832534759658803756578365399336878221948882458916391699298236592681233008190094327939825290698993542851631511852432115484607168642224735858363183070903145099903064014609226034163563047241615611962677574780582188900301813456865825495092493788738147034443440155377763113781935910965506023903507514027444777972436557908856729161738662064600094357722782620251569934937422340584228981181124597380056586066389144211897245753834774250509513101345473129247072964657389474671532750986376839459843362143950513864092003816272484130083213298770854512497095391952898209668220736862073025156664334047772827440939336573775406118918676018161735214931091363623501268986054952261287281264154945861311092471245787536608684285631976861109834321445849160131299166961058332789193914702640765068600644048800149145188629124393867871332830536996731477340567875225398083534272929635118483746023970106613317589368698018164766577137318146983310085130218557695763282210519883915461566153369037794354739361694388569520005415613892713808282405845766342104988035230895619903993801446411213791672938667376911641996557703258586196769722797443662700955013302812495898854592590878348902301379329845637420007817115100239975143381399086741747268851749147528799380912929446404479357858841538429137591742357093151714449459888466611929176020841304395536562059905094179151773073050489710713871415719857924211866978427764818714741911404826774980024876144953127212725920735661196925761102265748443890040423463710060604287186194443334156011243514295219804804789970237579879584525036189924275366869996812231260221362004834877715976008009716030760066935180503689921856992239396651746748634696274110402650472424634642514285251041012491101472836541066697146136891705087551389424890818245899528609972814198456382759129565322877216839484762468025563600629917329322034322490967750536952072966878756684640624417894617361945599888045761504692560186480068595378807297270901694052717405216918242570787006878178314596693660710162344374760420434786497668985036839081732009709009384992509848493980419533844969824410080371974878839833265766066115443191725669217623261110701055714295115589284915226603702034611435079075552003074307291904741468403803859510601993577962829076203487630426975010321441148765699116666699948266544121873393308219351782206077862673462587668019270729426824633781140251236198919982476577580010647580039619691923972202322663292396935603405986765858942403058284104173412486903286542342006136716723195454040977000380937012571909056941161680686475718316238607087128189322451390842369465388375084116272141129321304361699610995207488167603706827769000533192969837874190935525062501316985929245087142657979934808276007267309077590095690371440541488384454619763648633243020143989167676328930733199074342842811465936711439434933337072008548055621206828371938028032492288474104769060668603455512759005629000634938532366287567298196634743901929842926176410586348238907002789795146992955340404785436023577025181477956578318749257409878418794269696432520769312017946079142595861143998525263641689040454126961533373042892736126503263036421792745367211113124208886671730190263188487118128794465615152961743302031898055982265863464380534687189595344675588260172600404605654819046467833150951973581159822944865128839769288148600802692561185444121365129023523203459640147180011927575050129970432299319000166598369892863680303322488470243146835681490181687126546161208339900704211039826746443864339385426471881193438399236957409018971833936201024029571990324313564103053355916957677474788109869755260619260507418043470250745214179524556769194167565296783138572541834236851104515891372974484900184705603506900317714935786706941544642898287857205700916899313897680425196937877331382584919983901942335372687619689116779362779661768282954684621938753803908497725562039151496868443341406151863759174479828033702890754716286264814494330557242700178086479963762382055172111965746867487769130713328429874401533869568592326902925100971974817227715287195978540283440639739144632591390124208165152566022970862747618003638699829044424528050356835845945632638386665689524745223236707439537576981414209408255231850893414899193168089778753774561115757929182810783630768646330700840104512287878042187854135781294508393085390867696849583817790182307810798031274397994071014689640320391427726715142324237642610117594997230475084508616404068071905003668327443821179878624440670122201250942166549403102179456757849264280609889972824316735884016772490658039597633370811713868835846174762146462336008372326449371177804301178175395811242177683835386456789261802269739144213265217015459872054444558026801388160481287457036968269310122362727508389793997423592423547582716240844688004678347324674766464745433064262750654919057140762066490209856872411797075456256224952287527704552101847740991710157373083747789397972681158278856624121249419412688788394826512806655186495311943632844500260665097945905889654789015517168084774495342673417904109998225450600070988965793999426208361149631169361857608275131754596089484058478095313275521029100040644500404269078383299258332430385232029174531941864728255590033159273976242345922132467848883124159159083096577843145685193637129820789343446143033277352696015414368367169965748632981411190524078794486492258517592481781151703704100102047953669433889814417154148990989523960380217226576796577813924453889084596835394243162504478077791397936953145775772424389634892521571297307560730822570101925813875502044782557989500485758967407655286769487679504198542687831552259258417945177645295712349736127539156944975046670429614053723701243587735553720689009354517017475777899223746254796863265454651725151939412260881107246778074929639421482232156515809928848443424989900552079013106859174598775914086693687666189265720082827274769412951655776537755073362144400922955316573437175228700456651743887651024381662647385132895074075426159940132291573228121830780510708593503833655668712711944034676811427322960340807670391190290457477145570084606861209823122752362579895678431221220047565258876948719136100468815704508769041481136223605365098577015048136930460434926538025340738403060489444622470326976962758939108509983507751816196925185999369928918121474431271832593734564777457959872303755956306632618152052651175468416409300565588035219839427196597689017529258271681747151951533880495332545803602444166022538580674616931122024847809174413648849062487522883669944522021930062985832574056945358112016847629497931056950352008336833279411627771132730643846039420456808134601314009407019463997974888865013642174274374775441630667841291304315769956064218017121467148833126861126355238311618089600435352420913198294783382954420084052661087265626968345262574803999270410319781643574019296730908652921600922737996787144389520750487926564529665813248805167366217950972158713053382141394671293010178972749500188187767602922123460399282178168294840543864031546541755656998907724681935565762120525975677054574663365503480905665022475974186333296518564176380463205203257244953924547197886577685210870055627597715379106566010586130584506539028951664398707539449913915317497663539852800626949111721504905011474150551583937620911211529989943517116092024615269501189210188847138254038970030457933745230748319386531430853922840462064457385441611349589627276736841445848927347875494559356920576129188529332649403252382421384058687255661235332703624238311336144700800578173291576875060498313602700415885327196612590813100196550599008994187087556067449216154574694583534647134616725555909675909110879776710410996504315607809377430212027355391230250525847693016970160432981772682119266687320993554426734355685116299701573498307442962292768211006743088851761293788279116905841783251445402480899372651880489210429540098331896666289882750591735168541863201770419792766890312060980334383034688019736739520526895408373412513049970565996806354077634070132649569632722582560205162130238840888913020737994775960010630238893860655422935250961692663027848702814053762846631615306042704161639586213324114819813171699224524496104940116976745173041551385605868206482182087065486023360184666568896989225719871441538355748478486686740713541572462982232233413292841062580988224143772445480581481778691465794111149124938771377303178682651988664881772378759460137196452141567123832062089207326780607257873535072919416600146407245410262606549438829687567200617943665559062595359468533879442959270727895126259304193163694619375495089503914670709538491356067667995518211189527492198530532438296640346661606958072089865784752705561766977172668952382214019657072875445056798981964603065423864682834363367243486334947835204832540349858450994467286406142947924800859593592053000138812054267566353227653927845132411750297399573125642028447973316426464816861866506782734708240947755759713833671110644809682206853912223746276023528322599766521066992814748339967684000765702000186289665863583370571729648747319758344374300285234597351675151837095197392704241161710560714127067769889334921062636128786780689706808627439907058689368184267628851830883610065241812013643888025103173566953800184283085894907842009477623417524352096648533694683344664559354797656908169332752823812749180412676737930985310546453735747680623379749259498388582309067852267699081882824162179177698709381779334236406887911208145488548494018280878348040914482956201619201526259328479308678834948764019549222259331114715069530371970267305017398968687252959379531514654591579502595090141362822758436878938766537377853166991005662982597609597685185674659842428063765979079498098924152244783611145849216517847552831392628955122318026469795203409945524050151068864979589733131978075858721019057580256501765177023344762172819436267689800964414682715114222346364479998950815580727258318894284625484894024312960524803437564549561748491132723896164254047841035130577536865893634223456295377136514362689627475127907163695432646460945459831933475934835755665376933517355465001128424866103765133180682425348835174691691934763340814577166115175163137451529873767801710192090737282270842680727274079568619389583408807442860846660299481494859465703074344034016167302300291985271398264587033910772810379148062228717978818631887193402829252195831479385481179009414206776023016253155621134654958407709559859657226029516068226129905048771335327448175098503375137079838825892651730783076563437231489721526659868430614415175291948450383802116983524685537213721133879027200918992891839081456123468031711735411577272908723106809700163104807555606134574379757423700336680333236115302756882212520425856719502116571972351098324101582907404478838972158115119451353888755227732463550682779803977379386701419549809233801210119636454359208268747171699031499428882780315298314564520319190797985102106649543138735961197714344067826309311369950905993378292027342278558385164683010357894223750446876465798117548660087619383776480323720914938566044723986307281069473815084687792125061397465529665574607822967348404603120496225234415655288587977761180971199784158980370460274086960472528758295427027181519540659085689744751999099522019281512410547150852841594824596522646942666824130309280571968900512676002664979249813387816380640851540488406974613904558195496341273850725698574367319607529140835020217429094396993439709704859737415106851940048518892702198511094027202203760567515799583342046064971567607914515320371520844574216137096185355100317407834608274093148541925245872051403372668787448399407616654397903411836796362995422657097548709888953890415825994030880061424612720865543954881055517678587781983214623612296947606132567417190823836176892395464574956600578033182969717179164283888216112871404048150977191876507773868284623125720749472239817772715936439402999284459943711925051033019808727425887083428459352481775138112488736615137398738059518047074394788239924780085625800760185416908968974936013445658606559517799549394463810975486043438097252082864356139564586981844660173870252316740202182146807833734993107028612311700425277414820269103706198109857313954652719152878751057520652224451340646844089619662013252237192240034850417327838345480767727277329965480849690211475228676214184533566591914496052542469717001858859250362298599946449831950261519459285968103268188832630876982129738208210660931744659335694887237859928046358328329495223749631291332562385944764327890965813825874274960685842288913056580845255489350353024044581154375186470584747787398272827338372288893492338834665038432486008249105683173280124252909258849191496883891679228493497218703763268664020949911891663582904304545563829524276162153720446852292824245758640845473410571730395950427201256209089806871927729138899893323806135944367814754721246534789566041143494538922770831083181671148776825950604006418192389670388905294146384919633135198368800449300065610265392765336717118595898143856671264555721325659839426272252523633110799840403307616626050022181476846543609588960319633206292924160265281585824383720453424982168632539114603945187503375416819113458920498880388014637168480933251708263287804738923788355414390763853602074613118353202366017481660961584415107889445780641059420988678964241039975194017565538257059993663048452971375890464447651195903488256580714172946767113988432983923309410395724715382841741651650119776946783821846748636442521807143501937702006086141590776172489068921301633841620908005826727970496789187833331179578798481766351817690726403553248717272797437734635441158565130764259832790984535434501541827916354639615914507262455558253822103317761915691318742311273165707882924016344027279413930711616475820313633543788607960858672060334880211983230767053292499191589995141292587273533422828845636277968382246401260621985159488218935130981693015553702760893081269166835863648297259872524762400300144143487525065626129871692541132243713757577184680327852864693783539637322985808341854829025717015768714018043659104519946321718528104441951155294652778975599626428181267280138917672588588196188211693707557623376024599400696961930764959747253579065593964408052593911473322643888808665795568851837069441290157917777304101712349914740265145606579833183012908467395421731257053763558013795261062294599237945809475326416238253039401368622473637512752190379485070596504794794428012252913296543503154367843403826212177751000178836499368026220030950363005434593782484323276442703767172136590370064636517900235634905848957173136391576530751508879501777278430204565322430286151920931491194791083375531291432143783283568717411987071675540484669465654608485490339401426863944079331142663632677790312108773893075440777694734997924997008656988022980893678646177090471656966087578477539154408580600102259277871467411845684777661633311109447163745053331192058804416788056002755536661990300739860427410595454640031139626960303323880338985197732591059515373677482389611331656908625973115673572734486769095758184892984047547900328828433011869261839724357135037317548049325223873775417843863973190008162767913666184544476357064428594126801068100606741240820606633750091652584982878397060980303442355556090525142081985173322967141529072309171208895024465267787656651587911643916997315470458254263034123279310302368238847729884767554818086978661417534958016515505629868574504092259095185376580604897218404302974225158967789592136528859631834923403939095153350590953627453947778253096576272972587040248508227574091393049463846146265160536300378939002807307283947048095760159845560932035892653694556558947715287043063956499232888226496162995187304225241695377928137477432344274374165816280287434760896983945356417603001387228054483310200240679057962102059143336207983276342374086505123355723057925976889168240435503045788400620490426788078200450011539224382541977489728609776836890561883277650602347755321279672645483958763837086503355908185656338542565507185771437128190946521184281940212933672421831215639153237925515711779071317255083489582392343913202759201983460021489503228961324065288084680731970228016681824325416582142826423787686765090842273351345557982730845217798393054960602022918683897810783535253653203595757226378553973451868077065610672140340569097109137319037776137445968367818688695894537311731233665289009675407623892738495260711969448391725562522202855923999732190037068962398833565970612342182290010094821739234637451857182525088169633866347587542226154091700903249215008115299888414879625242479854475821252833215256580487428008205162042976005421550412646299939288427591210278297948134158534424757152384034085566998343123312518017152802870813686332890496495684458350436466146855459324451071496404398178803928480147494807563226251744526686152078283962762476216065985339101683694100027917463171158250308687953562688160439234478950724806979859707306212344563903444767456858836505752396461484936998393070735678780973646689991588439537549512571461120500298439796997899158603136110270694669722489547451654947186896366458713382188314508177930830237894261050526927749548908920818556673026720836053272299220466696064576140916976330602945762645259389000739291805567355626248185624985285662356541984879136220994450529248517688404775690829764724302673797917220703291130865697438783742704411406305286102759189198405415204509076734906904361684922839578343665448470657583615985689586555461214541651642173481412134573782950631132819886006939803676131062436908467254164691548717403405023152394670553050070381302908707548556798794051273088951597288805580094055360650625348519158791025964848955427718534565566094784713736702047226923169357558996284063494047062657111628391100915339504344917100202266117506149837741939091223246892070306214713468368797597962257490303675155623294317450810322734467121132786953484788793302723887805829168921180918482511780901086770999322148651240141972871272010389036683613597930739299334220800478480098015856471595970319257948167600131343367507219383625594286861330984279177796334761117719045687021206142086828165639769999110156309018901226484742390144768725615499878439030488171788398492123034716419050769151779376958616046032857219433216945688161794685003838299623181635943447979427268906504045984531650068132987784376520955119385499918492110698614550603832417710251208621876924823562682844437798906163235765907497162322485917368782560223408879047150783805170464723878755430011215210818029082043276599419895737138770460354290539758803413566800594600014952813547454550172158925699206705308695672038843609756952679056221524656587403878703295320871478366046197834045427273073087419757891384626666648163415482181199185216873221219664951035051109174138865687785035580845078124849778428085751283251063135401227292619703472009531607376119485002551713634587338909396432935132627841664467011796416384570270237115910845440516264016969242750104332803824348661293861250260034365694337922093610009675483770265358473615208280657365918357032391666868088914472233155068820892133186545646612423032836460526741323223017900543884127360066587947854961677913952201584271036272895193475776541909892323192676350225216930687503962339855954645577817007463838656037843965706383656308749561326282911923160280296138902981007993731450029502911160367720686327914748526292706353668810925299500809220150736387209186676410333558702604999675146916254251653970965578460202663147181898157230627555364346868664500550019461433698140440133239441954836033518246352554952186924808539739955200465735446104889327506503457285534851631018012275340943213446614267987248260763438595230548398848606208835125716341316675182398145379970824536906882568387737267350210618453631584548010444202448586091943743628172907834624548987380570313400948395817686397302438280099715636018470187699712955084368947509340348858915356370199472941595667219805924236367408048097297119413750933076229934746171495074049595531611002227509170028349864498685124030664705610572672562200547175765988283740868872475506564256229279491466352237730176115328336317471983449531133448040394581712402590238503611306103851763844982731414325211384278878413155066143203333093927315597885230905182643648620399750886437676584352984386625836665668219390170637077485325899651642261444306654114242807605663337580326136541806113974168061619462648165254001941195923230688985490348349576298106345037914483288911580495166965825407821539478319573280388326520857799872459822759324405714140444868367023644646960683884952146440810096367303659818913563376676774901485941307649985414452870335968767935836653889376730149729834246763764666411159281928625919372460679246206667427830947539101172240940065727148907982848820307165748873675680488166209690791915384234442521185669632693311484696231175077475275773390538603832037297747642139108855935988252569321767862404257008660466272030647579611775295224068093597523231580159253191736591009396174255827410124307584863365068734442500713874900366184884914392957543077630629863451065170007918192338557597635467739587764625386461225184785902859607683874400050492544481485949482388941874496658865959712135655755104432793817172401530780026296177870958218964497599366246755629951998055871569116334913699340399558073273093051759531867015509744150820473818837264988334316464632839260925557996631555473147366848811395326380674780493540716371390701721654029453705565407988300509196703176530051270409703836005026496498254079321923602642455149583043485022362445093109132307109416451574905424867961612823233932167440918844926223532760454828251216518975038881853938254043528093708287024166636293657152317228776548537307247907041315307917932166959172695375765945271575977097027924050661459914776230273161892125915221732578472333775221069344219180798935770099891411413909283648372102367468120688797186980617434347045970148242056993080549969801898616946384340351339360831510280783186101513049297548683001047733150504628708987567391222811932819887389805681449761626025844968734376550905537032625897275212141172534146906384647587838032715922029332405076275465914210357012809876178055462120195561385663736613194006980482250007891739079448982979081482335726503309528746881794560051953033046166334886569628717720694005765196456467484528007095982074331219389431942762834590842778872227340403458761739641788546004441391732473268958691599329823010536037044247261329573759555230872571326122628848306391352000576479030437333204383965539033895881624217259281590148919755253639289149123108905392513366060127269152223243167523082081165421539170619608599903177576995656693673511557201161466620281617804326972461155959150027455509574037315759925041500977719094430280151217297807106649190635050274112861858757380520261909729637821200711414591430916393130668809256821399725351618291796415427703133187105059061073856597876479036409987364841190846248603882800643536773316539942665671546049376765544894844463732050917684701591558811617629576804553861905606542964293329988233752465731529121315440226942211584002344467353825318079369541817701505837055430144074052063776141095189835016913955085016372698806055680197808707730340849400457162783639627169772532367749723134794598998578157628632148569893328503020330455972227155702575420493042112774828372900001895070126283149259907046433347810237241381822654126350885674905981758833349542049955875598189214008446254483795611566940893279408294370918433419593549233805721716061349525938943303373860244067454308593489708722043923816242566621631965495599005690483361539541558718130499469161971092112965196391740512473520822356751307831352711538488846262394053537671680797357952114019830771812421723831357002042881301480501928240966467465495871979983959482596503051085747699932011928584910405092493399517541288247034448645077562398243066353259906109734133824890133180937082635590715832318710050347826650389134729853103432564662505040239906334198755006567406220626638008561906723748698577290805391201997503706828830398778508587627877967522349431143858926040002081501962865309096617624210643595137525078174700635362686681844016246011484677726262780611981513679025211794965496698399030218421221512991807498381391704539551820019959567902498737547508099845008717740029964054713089473858499171155852627467556036155749342892073276902427166524237758442743321707033057403481924767716394713033448399480755044853610374365286619504552874375197141258213686156925262339394852256735173446870412918624997943740933107288556536284070173933023414241531361322521296130743955268072147194857414136987401417551346645603014058480340413686282621289332193207982792069878958303794083760104866247125804983309691296825521855966680745945573453907843483923502919661964665603685402839642160123671170480394119507657482926885797064888182851492996027479027534305869976253407013790858486431015121096247325404711075527493083175867538601266700778089751470528174541271195787313235351340596080838261735938947142365866250116222537336692032155125695052011086863369712841651437737785227499087850140722394650518528212362519294785886308090276426743712504757709858088950707176795755930370280326381791125258923657994160022872045265393252708012843021150607343211297387105343956800504292500357520205629801857426918701080178465510200621137876178079123842182037862126747040694701201966047380854461142210651535284762173000430082131164344502242080626191344717248239348287655175640239494887874226331310676970379794288700729304377104633868963999870842533392338814146394740141935919828341409192616130642600847294738951164698463614907534675258688462615153254413338016650056247186460115693656733220003779292076694565819088648681744234724509727394066147697274603490533210032459059115363892955297703173426672570170182846349690571592870706076295058425753817074566820301763065533134896335875859133789985309130248139486410868957557161955743319547109542182425070196998982156839544274603988387343803521021146860017599929591749277337153417700203603137408184712956910214493564293369229113155432293942051087959439945839339553258595185994552243817590551553547443260330026531952574225136665584559863741263747579204251391519748411841883778311055350054421305564019269526767502471088094619789985547615385348757509142208144885703852559952420998464384457681420357432859058911014758091394300371000164546784115069716964536466078823264622289218521262949100393381252595719326694277626004117524256398673109907984500357095541622540586813901540414964659862094710868625925506640591747467102637132523470518610409046128132035264703547704286750437055702291505053903362960925801127516998894070694560597236310490536382828551792314860218250735014529881394587014050004448318165199153305096832888524838071004031159598916444038515262725518012072171567755424654289699742047423606363489368720967172924686331495396307989881017383578354317916265916854365753286529705777331210113849086209924593459835994090819974425877525299600221016082878420204365078873012007603093551282391662875972976211909889412039827087252218747037022530568557508010531743169426144904582771545249524565128251002444565053405790061376646764890230644465231666046875504249573530406271104152030617078900553798781747011655850301084826777508363443584333557771306924701576988553951144026005301712192473868260217907539812050242487187653034783983058382250231265718528211374860400526486184827586523791121139939552566774650706348425109696380528964312375150044240575855260597387313937936629639602475362945998326105687031671537657231697604825443372654446973914920312497278861944682975387676022807755237904807175541441138643535420739136187998178475738035616593369805370195666675899129352928288834161818795902829134439388629393950107546986839833574166390778439527789711520698209318226534703333353591374986360908928054245024170036039380830781076094356854050544944702319648481024828181566291816399528731393762398014863056256689866873370541844350044839918882443042549297068890777869722015164092127108968275595003826552317419229008183542904114896966351221375139698268018224532631979732290150804297670926931951087467434968772963274681880245605391272222684764151398702978567680183636108701041280173520278329325231215741532926201980904572999159170337671479048798933383944954050688775459923700380065602239261566244344191834044594938372355892443427035163415026101146068901024168193785096907539375739909379850813558925534159948394815355503647276523030820669569915862424654650213823351691622911030468904866874075111167317110317082699976347596730087101760992724227025135047019368637257513842498916437266096430368968325546863218477262425964041201088048031149141511546445698734723511108360523581501261985815718275871017309653938167541593860986912174703724255901923844779044895101242012982442765111022139675181117452641180271072957330096255455330601725253130395560868603215229206985388181224287870656835371093119884196256111272929662646955760769156543474137352135574667159214384319256829690643762980043006498968604564398652347599777178923897932267309437698407734090199767119802127300987408214407906269732496255501167706437500726103745675540235517660513967286979223423947219777250054151413225114427907466427030838529197847756398803870163093350743359106357269985068197477291196538473635423815121611337005401956357937719677924928104845477746800928742559168202912354953196131707982490896787143548568812114501753329857083257790638890207295819496444029323969537844535875326676423980923427341253394691429080644227486645593328203994972936818210616740824578800965842116049025821448589803198867518018523283214145203494070213224482968993585728124977694936619193247707670020427990920989470594000797930103249014135320345401159121523802948473401553341454095541507411059911437564637417700820427330415259999703081916770122498377416445730080689323161514025594366562318403011059643496788926848779541706886933431114145138902698953428274597276663807534329023623353743726317244327420592223363114427654878451865966908972343083367503987261657012393581707215893049469007915336564129101347355997927994884518731037544521367315840087721422808260385170431994838094766523676945412739169887235764658815317114797370073504757367867881032321484058116307578442279181948848630968849250131990270918871801804950728762812318689443672429069805450596699333023911852954084792687333275855543133897259421289247948373834180628686631602186883498157799790757720149736481516521246857591229169585449552564210577054529366977587123914092286153307519368928057812849592884357403756375357237248920230500280153657711817674725222176998441855601593202337417782962592724148184482821513820038271297942646037294401299050241236437864355116065151152165615796298455057946801241397234694709650017248145063317809388035508331730877100337976513790018159569038567857576408969355656175808572645358729291247803071896145273292525933815670830026544060464875779728438010441185131966977532718184932300020697405402599759644720165634919585105263416958285228354126902556536411467389516792168451268688597871420457032953908356929967655847588667346168066843285633888940958523094533722801090220706787628792082982690013184416219325603080011528026187650347681853905403209883493807461391715928789508819322132829740481426353684829700214964126090899132216893045104130821330485983239413551886340692564859871493584274614604530458226758427759933185074287956651676726307229300093135965580424185706340684562850618202817079813599615522121414788527978886565442018638591581271050762279589641740856343708545968945697017944267729550610037699042269753018318241572295411892071416267767909975080292052957786701352990203750265351769936813408994497860434472276746569358327765714268567306967585069849141664496095676885865690302632213612706969791285579827657205373270691823834402318496177489224489772396540115677082768077274262304572162827987648024278553943265895638258955745573716977824745041861959161879744717620874026867807964872779737614753028170470454984923616451107450778018296628833600807652172701078481167091272788969158987107363350463300168797641277127651330858976664435504450962047455264698967262753623801410513514875367239939623192039831827847005953076155020012920978126130426720865237029489466596303325162559692247976123937684270884158547483143323620197172215216326126515685680761529015384833629399558484568266894697592220440343343614759926795841174366969311585544060793965187849110198793737776496897886392125497695954689464836833225962456765915430760201923071981516803982577635954127386109307178905943414310108809623961687159440208881732487493393632311700624919035465798537258040218984469107807109256594914175887702413302053280624214008866369557537546798409691267551909851496631585236168919119370406778375802157827634117399416100753057607790453575471449928156503984599407916591303767225074042197313684330857898998468934691641054865641246778273530215898884166193861929792822640714291619100725061168018888518523439125509924906499840638690514225851942203882519015189366869716578119180106613174286184817015660957808303563838256348551360162081373580093895977927501133265928026669075822884803340528821976285256310053363731641297562237703071642398285391902351948076978437089375430890842413075258948474767515360080667160024793134409780125729950634360952204639211713964928742927868294851268371367003347379864924208933463993526170913553797989361143210528960881300848169070696316687575970784743970825960347613296641062365379584926347203682192288535115726192562059574259700431589409376282858132944462161959875242490314337240663759607929435803894347122646568845037239576493246725266232039108508598502917166743792978255314182684971517535866833633067419574448362337794778949416513368187611839246979511405715757984325888610838838795159403128563194761998268839699450048629505116193751977159454479402706448079474584617857244510582997864482761429600844703836823875362998535698542228802850347054180874660422335090133719824949308730948234261154717221996873214058794249630519336389184727162955856904770942874452332741765106034292922224632360367493801543971069909810210693628037405271416058319648139043673896160086488990578922298626517811467542984700207074757138540629648346191573547969888888685109250554414174951994251550269519114712146345036024859283891519911104868616474669633760335845549398100436968021380124836198973858715305951157367701154736059294137910995041099717812815182157917312582762728901610372834395669747550998817616260123871575710559035995748927476722029706344467380087954642107976636087190098218248266786774499720774663064541753636918159729753716795558728903988739280478515667096762631181720189373472447798901464008071672240593327273688274230099040547826778834104680703250043463856511894647874549310563443576443416071156405798331610380119533190197841375994969782030637452668078694633359121084262909866798569963947515614164007075310293702459064956476947743473042883308167939978640544240347891069876058200033436076413861403279096138606181685254824629769348338285647144777834021192343541516656083813299584189277209693444223943612112114345677240032145127633356265195262250689399693392979218338683879761281604473751116108968765128573271065730511874969386195719797936086450042392582055304292357239522002467865639387791411666896878531877619377477427754475439264837034324180320239760732024735049741230825845529245413127364774683761900207151161767347946194027885916269021619594486133117611914098627102308645823634875717155230715669069624572839834088325381801464664800916361638666258780522263745834005096773093568296740335185715589068232320108589067982173144196488273158102423630169461877620034845097795530501962309662434653262241942747030108520577935818545610708440523731323549188068436117839713243858560935374098885749684406828844982751781723696132505633123631753865621637997711372194178703610390428070964848439827831471897332285099006393185827161550941659577790296908371865402846204756789919976869700736037045378925767235865362030536571154718417324914620281017825188803515024352772813179237141385495776163860681499303977192987558121352830568072434499894542703907910994111820334193265219157730507986005797097648911649216996864874778543930807503363432472467806784272278461190109369710247183669974912814307284054883242318842629841489610968349003884002497361595173007868150033224082528070649249064052529879961569077817037520476798854248615707323117084335409617599990219339984341310874711100501877334763131021330749502828824770511877008150202534900347455359160875764960635088005214338512631629312216321752064777093841138065893369121587994418074627245453438407534726114784251149108449246736368348774676995255557221119509079018193232990596948870943574501272702535096430974142700436682778527977518337933876512300850470235358882335103455393481292772784584247444510594708968670679394779164442909390482859284610760985594058907265498225058032025255697272377941042623898869565673513335016113642241823854429184539251276878889715810433883522156022015037235166448375788998296235142608899333723199576401732262376800043139028955670859612624266425350881475826192921378806038206865686387194003819888102528316621678255068201681677984298938725416644449084953313638450233817497534780301254671982027134467349147304813300575569205052379158780519948983181910266524983020618665080554274893458755097417838954177175643369829626788008710701549393973267024976866330907599420252600807440630823601454182224602172253920981823673909232891071457965947808528199040628057758938863504470920599763676034142013288913887334762622033351733656016356043539920032303542260840492394824682216529939194025383157782646291181311552899971676725054377842160515678331595809625971866865759583369458006485883594711831832568366996734051394263386719259643910821736359436349553141443970508127394146149059524306270217292966797523497684861054345193188368142825933971413211891540395052926514382137395794973541890277639952207307042199174542412798535235711369019570991713813242604198148501610717301909120694847643309865007837834922064741920452762485775724645837437007815654148317531009330093843250296040525407480685832687351910058988537703875831924298853397111403132090790898500730185628727770189200489126390009724340469115491433159088780669647152080722380976493593769355405597827262843352894286169272137831428854346201833274165498862009174504502511431921578493921961683784864848889390324486212628008206294305985027783151639654563811725339195064320639143945967418515876086312369589463685078226718603280930529419204205435691610411909173537733472363315107596727544267341016378182782025928428693221007984890095204519534371599819868264235175843130819305628086677028265865692989682161581677209987735232349035813434167548660407743535358795215222375140724095420897116904924703086093049181522752994433615013876467152318839821763504993655641431409825627710708687143145602541387388616974138644000492956669764705624553143850005366361927952939210748696886187338868647558761658489444221491064325498047476418516315105230732138582032551552902792472854101434231955713296250735767169969970639392187733142536759267142057037776636414835817227904643209603670796093294601624212481097841777959087169441423940876811732658700424650680990700104849400004966848718452679705026423123150154087924228515297954263782557317561883285491045219539570287253464157771182994026638945482802628338030421451330694951263278188933577425684098437506937894452995724209530794894619108037243726087137656554244062159775530693227838828835794607865484531334484856499990632366200165582494844244644975158278244940127697704439656348502858165248241290235260641559140983010913618086150015868496658761826004975946585880086837324115791457265660452980491980225023577930358602381102870574551517703256337712598979176471517540514820982466476993951320469634265007757983010373943964269725551311934306893786421002378341691157072633729394802296048461100980121565936817697247723454347623364224280666203173807730271605075971074216296805644484737091058029864003266749879585194600355208002716420985516923482616348402455605698595824494063869909840619642303061414305519731710599271873438549630684661158902300169368955151948276910259950936353861554590141845706054133551821920092549341930434832173751289578870801010239199313825087854468715040121531404174268839336783658280475649902266939834000991859792505761498712137970595821504901616485948117916927402450602339541035041568595782908148117450781569549211249990764039537296753837082277677727623010360831041876503813437125526413022298121830024159298629760661172852395028541062605262496026857206836454450524386761918876565910395988441438022985266172683311376325169616166866236951887260426152673729165200982495624350625240722611039346157596133997234802939896245872839246037829270198158469008647415880482110756182807977612200522412231042419297699517138443988899583289285882547872069576651426375401239716275427353388213816496530533653382212159499474308883519747725378221679615424235659803255354542105817563071902189787509164246499673916506066702227153482345215474556863381158741337349026981027962488800421224164685507069870956287844558445138436261942132827544361702605067536747553293952191552097428918093529744720793039398125840227281436758029315448937057870704134686039447267085656291532712674616157490613963666468189420837839756519374041559996969576036999473522272876064397824150056324962526948681049490106758730587517766423290534249365920203679370042501659772669031228166960894046582914805650786787279921162656289423648676798807897365399690626135022685740981114553074027184149994292874001319865953529739595438857132253998424687442054686404830521357471464417424234879473965036481973139879657970944543819360073055260108261568993320711032350516828810132977732389987847642828267498529535334274177007059180553050743115364171924508273742444634644283565030736814479948920179419585773731495018221788419324925979766529296051586187562588548067870422058078769300524670800942738711003092510764202892217519977238613712944610836573393088280258674340312584811405619445525884755134065912266366451881417637364696721761651262204020365994583898908750656536219253937109809319109795154607958990549484720100717267321679622772893014338095847447545130601075593556302179227215783520866004251482888028831162278988523885919442315656861077319494594342852618929176893291800755902562655848350393136878438949353443573523255159408651007923296678727465873989996007786113529858482376642780074951896942884293918632584406687905598505582311435942407340995065711048776958428552506415090921075557589278831512418334443890294788143621980341887088250407589342080682067752769419258216662899170169045237079341830493683767954473324316160641990456378228940710258078091787797625812259806852011756547686598603563901947537336239186448604444615331493328063784801256565552686561988559753318975536557551845866145687756223349130095690048111067728904019256219756131843993170272043466712615407963671979199097927026228726892783194980646345531045977528984475297059363586509128798338220869867638612646308169511231679056436087152920771041868230135285670123960905071011750892262668750846371261315678098294876755817656987731910494936726239618976610025847297189806557924413317464683519647437200334315436614438258064491953406371686095843756881997526630570822448452222383270949678410063498107938071094456957441044176924327669961442999027753673818297283376406899524357317313605224318774958587011839352077727912321789758243568124297384635185162910064494652438132443474149647396306440013216588447567892395851020168665884805955628823821442307232952763591218137424478092042001354304646752431425619421995095519212179009488721787011458197037736507817567007762221830319492820796165337436972010763922573177863530523052117225367466942713281596064724658999412910498090458771981613500360973739280773719278426839869572060098425350192825126450818294462032389890141501496562754788715402775512618582500363313647609357622626849247336923319908271297078990545013695057546682304704878886152171681441497186348482972184982226088399896798884174812848699800639347324296941862361263688354975805992996952117779149818068928669556530899386297228143512877298295613394136561578517582173491558462431476628003624072025692794666044314063765212529918787899627862272649025707687379434821346961736299837330673046671824863058328671223682009515664100856456181542757917921966139680530954204326839422202471719592648420534497465719785035958368021969160253908749553608018024064982580639629852023482796964846896253262842865290161834796988602863197591515087533136164512456372611190051226828353634864133592806760247343265931704286212471571005626511985494590402226869733388126908665015821051504905059428715246064541732992198424747096103305305919521517746522563285225265507798880495975074153776889946592842625069848725152796695985096613254989838408927134505037017895532891922183096150101611399154715920500512166042007196177279929404462760114167563196250841819294474091355760376853714796010285609871917862638684975225768133101130609236812321117621600874865541674644430747001963776192780310029284530441983742261808712031725519966097925587532885472151103785920028942131060789854223724532453377719713897469681315283992493026289466285448111101642066806682934080920965102770124280958579999188101814685078358991892863022885044863532141524598563277106146625360931347555771178943750068974604181261170507166062434799071463633277189233792633764658410895793841816361733261481839206594911128544663135390471030505932421800497173614341854334284641509624588114650012168654266652558327366278799316196818895334167843446926723424826191877853597567505039511417737478489561009022328733262811381564308317827362551876798392101700160377924991228319540258477425075682517842704577414347385295157790900960133526447955376404524547420358526703347030617772447284122874281290185079719122956186134262483215730076245900213347886570651898819052014343496583375486646771384688291970133588861724207106957512511540092896988129126713500052833752822129036614636651735533349448003470516869571437310373351500162921269377942977770756622991784226272105185909201549948087230005038010269713394769907799246941525938035226551673615057222512924599645493422305656641950734504246812262169936183823348850549384831363403817825782719496661463511700080935019880060243804516674166724778710223546517237090420741962200664218899104251928772628809774206504221564054905763498499287920663502014110307860621864307722275004988319010304143202275004920286811397497757378252220607598905895088256396298722644541543304339497004853470851184001530937935839891353296130356056414706110004352016786755225403685424803271542068755698901649961637441981079169622949038916786451431407103752513939497329794927811532119180678400994905203888306133598923702843118676946932108701459996522566189881833977347996856761666567386082439423302733518447079167370608963812995204512265497905793826044945692268390325677425790463366457893440722690738738011735161034398259443426471392878719787039419664022791395702397150860280063665355273520552884071778593848612711256930725360327995623308203582503686495879855508340229971524584478645492298682201386030287086831320809615965167352631046897423976112232643662585508747745708313026973819960898443142855218417055952474702292173417876618941866541327298176349394979589089270265067284703603396988879979887465074248747152383856637685620530509548047845997546907371502631374706633759042220132357387627895149983188433300289922703385842508142016749524356268214942998733126139461055625718065259301787524462747008047884393280445732857441155101960077938529645993094716071539663679467339278165893586481239901611094976267044571638533852045228022771993518512919131803648525211533880770641314083696630399338993769387724856647411568587207784940833030070205709244074100117637883888247221359123326399057646810964036953508705173553792959346344292895156913985426374522567240175907812645910884785803766622869632036290787403255075818592476936697437673398004268943661594179476827714006710051437548585436493483558136603887597810078566275658998004154508577824047208764891633962950940523322980314749909199532510124853283684693812896964898766492796216739871431288216161497662901608994836525857548215067333464455409645970167097588040823072771405515352860454555149568891557822919284239177044953638812791531431290500912619926153624549289209321357779752822073912354647103460750066286780747528539895767471413155529800565448538684912225483128665462879045517167578712985896918163521477094103112774967806075800906571266868232176298116112146344487174756915937709944895449562284116703205785195488639661107828024396335148252152101540118421882066623209275105455882091488917372783785293636031283125306506235665123888976868258636503116194039153133712161005006963142851468221448810301299655651778969948602686044994576923557654944438604310524287613339650679894008973704010512682670151846080011189704243106025043192637154023621536359679753202607458647958899572461979510916219841348306565614033659538982289052390434062136162239380447271920239679957401603120981608306823448949256678534995089981515717413253436591008514457432448996199842392519613417677255299770709009954101595702905282854479289015777260309132358637087802392092795103361201387087706728142502904635715867318392858683239959120585386323412976115404255708576361846977071550738941434047585139357231362438573492474954639744037760423016366052401063695061013030693434631839997800801120840654584318313708559777683457026223875960205574132244752212582603298609939431141945539632151507484225064303550540897914815613896566387717734459608521625236259075332266800063289065476894731918028381392166121651404753613440273185723189190215540240240289565741350724254313281817241311217459241748995328729761748409469250811796535177423007443018078752090645266656005003351292381185802084472158818283187674827152823984313046286212130604400317955604067171984167431172928860100836997516283723037826458777289947208335913704093228292602510881931545582695495776102858419361435733245664543737416075082723509875976300290339770227206713226046895937688925309893465292514418101583395799476880333369508404036031462786058476117957045850751565630235906620308720548303205591864662061255808960464272828421333133193928267892230176880940464805424959231092483807227844462137388669772460222146918636997241279765827959354105601984771826385295709844652169272544185390204272358928169197276806768927214952960005084900036088089509100393008203328412313718046321628016369746189156793429982801698108416763992359993946933387491097449160127870487407197823146212625264950449516721064803028900213289604397420920201780693078739552880996778523422219460774898049865070197302249846072447521541527884670404302400439490173456524878625902016768226525034896519725405299172606301922469975114640811098923888558837351887000777121196066361886054245990656843588841207866018015860158717000305906637491052182180556734720215457663927300702508270441763175523904630317116700102161998101371661338703020677176561659246511605509392030489282282940454474139666989404372880136439963532803310199847110972893109159927544722502071113580424854180082838133952634338070218756736699809663678607140540261340359851687234301832947026215430744515112519090149682536262492952130196571677254256667716305915534680056156002951101280578208298259600498562745034883454334824335245987597010510408441394277813208677629010088963900568898251472346166577686733287251526556552790848967386214925928565706776018752254308592318369574875298872801849885090276443388916550168872488370953187740402327548154520780115424742577349287100750255581157326142464588213557524758096348076641879338492386933024584558127574965331976380868613628219990833349993510923443279858678615068495857015497311483114755722857729169516900283613647710658863450992975557294320279577508536878007715265653623916590804891740004485370888830273053654861120878409350563416596845242668588027731608489887850641994519293168964522821785831062546146421945406990378295867211755769857920773885705959293393866000078696240338104372063342860997309273029382741978306317635762898406393377346453185664216543812696805023377070499331705988391005770217843532762264322201493035643157171268477114383102604227828309610598842400177604960721637925946925806745812608403910022639980556780249074741797299597936027468324166776570770559258807286679765962000940467279877502284932565042968495600688193445814303058849130810693921674792369990675928375531958868059657623344444884043920758460764749390939124975756692130418808306018932451190678846545302882519184928453516472707316579379905347434408931195209929024485829999907401737961244499134074091959128591878010343169635943241669500570585962781680041706374790424512455605286657668107394897393348886842158227645364701681473810573345239571130731327037912233805264653498271580802918197069862587818205813850085158446887685755066974041148459052869450643221911627165622528483894786878344276930735608603204426417803834467434421008307451607304038092377201642831574988037405790886945154894944075887829115981761287954990980663293222834979668553634561453867657003496244373905001100275770334490565800277904416601327026333648331870278378278818259690338133911133350714300338209178422811978542359662673431853722201828843050255032233079711469496749749183512933149303799263723107995273520731007927429478726111355613232367852822216969621865795467250334623470283983444395332840667248744788376038880553022504095500010938892241752256906767301551659800484580310962439184784261854582919053752446225383867622240714898739588311793997730681000060985789385541730882231205379442287670793903515236159905587369063941551221636213203501498823882830547820277153937046333160616027906902811563694778385056404108688722099597113826970911908859221219377241351231857933535057963977951628972096592816604689231110128252844991159742255460953879139964754875760893679488462239044217151245341905907546531016032818753426076084680291774140129098975728589888234418244378871265769352201037310289119702337552996822755047114000338609692039266491043194530381552014764245595762753242239796246803971326836378297774220264415433848041643112498343770798653683491040639824912721803614881996160662487106204398342439329093047480539265082656429540671888277710122419512582278925858296985424771489025665882013207603826564674699585008899357622178834525574959534075305236607461171252361880521340595597120791700660623124813260905344508311914719563381879521357465588976503785909858042352472220837782684975360341987150484526925201144336755023112885331995189333321455327449366902557763363502205335350608451348108819503054749940365137359233072113565972041346537969336286140568402402056084489293930933359092079167495712093043033239801974555452942592629362505694652446244519619825854766061501450142446692219991611245444380525836386873966823954496109218167780388303920176274852140054868433332258607599252093367148647394830455678475709405822982796431115231841406168308238316609473228525997424062335165764382529583555863774845959003916373233419404352747287479212601735292256525381659386134120153325599424615019367236851722424916197750622251846446310266442142025765551135256336463289311382921124028634765412185807263543956831396382698251095983254578051600196157605469173627511238962238990531948636672234409771418689839085293327589500778284773566793431874675786585169492820937503410926765319910305381130416113910690309614400228958131861742157418254357233051181539251868545235888367072915102091268335878929331752921903381143580774165316391456900313789689476905361173163507882334086287560448184438414181879651920570542618677210627189285399656697682344216957432312282271596340754448687425599267482181478242113608821888752001556646291592170295935313726711840743703052996111109045683347741960936172873650167231189850940917024175077257256516575015065780001264734601372923838070130307371782347147651196900986681444710276833346752014784850997493699636056683365065491056901099764299921878948075109242512463738318570535860929069482520950256990937315194056233408919496336382335699790149729417376104433804998013646311908815730493132788079806234228908588765630833746996256722487040527484469192327689691747217418808238803544195093800485455350823598453813180747958148486124329805964373056628346233481252865386121741315726693395480076341755317669749357426564936095321750208606805617287954504468243028952637964918503891483241374621670176545957889966167500660629748983504995281821417582978503653225502424899127135332740104331762723280475571102271875780805065967779523701995056620262995086956305721243553977217604286511181089658524676129934359710535806103119935211006005774188376922874531304276498419601810000954184086257977456220495587065235683655921421068013587743539883265315862236452558061774760219175498917826239312028807621817385316986856379934968916103946744613870341887903826037255476268419679140555181181712959154019913153487690776918054952710207830071993292426813161516583165940994731734754357626677189045431693605631265387667975542946394048740708016165245671098420561906671947177025294856937910958254188833657907540070429484262211079100646022770044840732643551719334862571741537927197134157949132254358825574799670763021666419733204862954017082072580316782330263849032074764206367035009928663683316097021209728309943265334885101659071964273754015946194875269187475013671903948451640241836507918988649279574423585623766111211943086756407136642829107320244524041452837861789379499221686448779721694867206972787740483672302754865605743227647328812585233145208729030919370659176211680351513674357298617329905282440354230221252595091377542078461400573970487302131545893157415672894883636908249979647521694820170876022019272632003743369766373141831733832649732347182927238055713339690146774339784766584831927440514852693464016830584851522652595235412494604772492428458367512871521479049514593774125199148273282672365091182394780632875758764278222320934039539461303895727347690005396915118409535289452087768247240592409669579702569878181719797514202692365497119025738574094450772223871841821435345644045938009344203709850805177933391012943416477857386132430425902574186692293730113874054100788614100656759372033217255728107168331746140032162880250194404907174141221759843742778455709469999533295953155275238555168944087908223728796318519970615590767861392484941539333690473474283240005646434786788245890219595695836130703271162660475050126899312016802476782202017093811485937619330854131873162534577500082936403945405510639662544304467121881094300118829883778525601976875176723505076281309796038046309789323146521544843983847864177323519958747400903213136971457278950967511082723702192002409916727748621229231086940365666450106525743831349713278505263971837861698829234086523155574958864578798287028607065170557965366994261926445024838562740980141955460361198078095059062772248278522560852059640298533425135185129090707346114451834966514366851594577182049442116845961877677949095770086711914287911497729238689506324800492724292677963287960122052083204158114074538281276132667422902290267990545269643875591450397682923669554457079815175805831616304495200337075560898362841041582128418558461399127519503968345683469292610693202503782359142255550636659415331899361196503493929746294629775800398965683407798623981731822618765905163499598902696967037232459275742500773787207568843788749916250834509430767222625624666566895219920090595376211053232913697165923229945006079472001590785595171995776284135881414723675480047923765971341129214490944744266908546096685896232302893768623252327043280394954010098422899074270392115575538120967099022474879736013897793617299583732894018562578689684938093868788865900399517088923023866513201129865917251504096830607978553440553278155014093170990969234177935853176731466876419213993479574271964098127168395174213959718969645513206852140791783350690793898671201588677644844958184040814468188674761470570273427160145150238152471958322846546676759128585436469853782841126845822160213456416517598015287314497257111223706111392676818219581573361173444383816801739276413662775617548125878200830689575365643648587484449243451552470421989368663151850553012442512507081159547369008886402705185612494111092291930624945939818563077338673068346874517250003841752087988338270334965977659159137103684084656485873852275650541358936445578840992684558015517460250871157769998064776370614883562466453597015715146800710864590678991631122545271447500014977696969930310657391235579097984829921276400154083380205090816966702809812204476613314570222209607832743126870196339918598295522017680470751559107761523498887398058760735551370337077919326245184985420869222981370178460090217136131478321054325246088752251769273317980627280552998716624377549802166779517373772102505781542221340646775556938280271298288046128863179067248620179007239583490396649750405283367271156432070572053248198468077672913308200528784296136530674847452463504336381610826298859437657033498701881474659469380375460735757619255407339086692656148758604495386874747874483138599031224642181672967181048505510539601668908912012066541506435824827844258451627983801791218000149173917868663936250222907211351234916498039153845016780975564376898384514765492601231655690373517575331594530976196011424239345792573536925908085301321976143042343487129463854060236910630008791103268779610352884915150695517532055243250802231027948766292433258559343869055190266201292881191774917549486224616032131547881677171260976851540499644125775774296268504473687187646668207486818478090186754892870559904225545483992149199161859594844775936539830762857171077780553091225514944676814910906522228633240444756176255605756419348251611374274935111197987127717962820804827250887450991279938912737518661468067712054352795413594808958397681361153447334860173086984231039238777138393631408975130310778627464660781233600177078920525585501276574936152665752155562644498058063147527326133805145514784981010369520714862133842377724168734750475355901973410692307655347935939781638019392120514309077268556889154078232323263976490969899091948016707272787819805031006955227105683892456024194037254235137668301711522062028700070931601888379219461560369176143812925886957266931207630713152898970083040652412342870606786465723910943672697649138740696809698154886895676686798351672946930215600569494732333348339033310134903952788092829400301109927956817603693039776864094611835786066028396876860217849696248656956240055915054472310897506897300321525062425069531669682680579040525810759320072273905324233437758569188269613961359020508603528422116986027594356276549197823226995569616247940366807173248016322361835297337730436564035952252648091775441600012357081921550929917074989263078037050270088260682225159704614531694874148683732096055023388721576026909735810383640993820839079791404390693935421382624360667841633469273758014107723056083387352911355199575171860671474816192536488708115545225751033990004898077707240475909797899295535395163837006450152546420364210673830038595870481402711764683692456111118721727617830681369222863030690855241029087988228544269295186723433646123721875216607982520947401710318169643551164497748538633882983482178457906112231685326064696259392100300143943155355677165642510728108313222043614149351656676491407805333586867678464235331368583560937624613240905502184159590093511870937704359703943948888622296795385489177090973672270222884654640496861240865044291012975866119045515127649622205407466880263545073963411952742265092580496796246352446028667856460133957025992634800618989203618704467106529037726233454837347996233588908854567740022320192611406846419198934337969442259118576495649363784719849302784055545164022704058085837783364761026367307220881438040974886643740575804364728637163231715620073336070119257995233799435312133849183340189128256722177021300773518470616318262403129255837937454033459226281793358353258134687686312781450064531045641090999169118302001615182077734774105389535711281600851419811972501768948093996684419098299982628020843914288237563636049685551228064516271280654378631961730837832775946505501666926433585726930935503385045620474245982145266013720237738776777424352910386173560871587543774264334803412056490592115521404565047009244308632155192885395985594673690513200302249143353700044616033540595764693804355345253781210145828939680270964261467174626459467613783570821673273602504392189010231549534555917571442514646234083581370899949323959233375441217851437756228285346874619472176399854920630704326429451095048380522238508126784892978240244168864207040741375131843172320645865250856279915814432668799463136024000270447826216520926282253686854794260156556919570609098877733639537883101584188421559542520565237613202772521966409216267519020830948942469742045830092444872090448555576441925125865197260835431832906886135168270141487036915503571501478342495091436752010594660806045773769237652157757455989310760069914501791902367020357553328066453986384929156486384398359418957842055898900470951189003530334335551438249823371419840733757596297338362113787942310861324038452387929808556695192538944052890704168667237739964993753118232467264093112629394127390528064259952618469095081315899535254084825115850532094573609499587204869252349307218088697804351765819812530414604057533648304179041554699580810984272678175942039757077312007421516258309066517956849237041316675749272873399857492669269140157591843961074967639884425262291188816744935321476101584289980063095854084270534906410491820463188743583916916933805656833308453976088049939533674905696442338244130927575974391912545515530220297280958119284743568364041964243615545506984105555295221107514825187940740368089489547583757692437997998989227658855319992428007970838507610876272650690973173138027455486847411370180173463121622051671894596138381375427770470690096957385798583733151709593884191596841092145349839561516437023133682285524144374634340845853724945727021861963986043280917341223474370575659311096144086566748641913541695402590460835247316364033034788747167677696391233429711954972636553625136345621490629141872763525227166359628400899989422408361951676040802997157122956193655546218404766521008218350858003228723681949058231300116307835791410021531584624885692349718721400123668052738662434262211337217304963060160424742725509194236584382105254150436394321036198320960116159739414359516023664490555442647996346178056666070984651396492432289677192710383447070006101405980387947637878107677625107755099631542497701483349529437482826433526948486696291802890704058645911509562511291938996719250319057886915663125806190894611702781318286215927891563704163498326831579020808561267534668384826728870173568156240279657487988300214327169379997336858586009286806200031014331894155682386577665435120456473411170525734976396447598012312230754647023419133234095678452171374926713275852879612709459425092019922520960491832483417165577197592494699197061430336747314410327438452885775577195468087116863930516662018620363988925682005138850139748788845430692381953517711193416950184469353017273620524549609979537828593481880927766498382196312862399856306470261128531144599129629739163221471235258295375009733845223104156849021427854059782232322072576674380110796132409294608260427554685186590773893296110359812280509645814612517731564162522105261457975776644098364878249562429349484714642584588551142896813334302921952883080041080970172415860674717083321690747149045977915383242737986542077480726879587585685720784149333835957602462343428426854643570062737432537224673197010498209967799854907165724039157480394510092427661308249085092176849454915556946156596976671746946115657375173226702208472552724693733710649281184847799882016469392413847749289750338850876881362517785016656159770468442375211527268482767322565602625327362449242930810969158057633735855770813607628647821278636980956871911165996346657846475043289831437364674343054477733244578772501830190363085931900388457745311082472404019400307587078552593496659009808251812878470175466828361699010207942776531071890216616862988565643809682520419363647693202483918786660423610565242196911656825540952506247133946100985894220944904319585677262272487646773949519315466820317899639021935313802606825785423302099396202132588919258713046310777561088903765088383171654532516190926149991301359018605959197402203460896726364539820463920200555952027538883565817173923521530525716492488665870183900762825203644297171707268395133168786130819990693288440088903446182950735560490440343845672444306794573829781062561351666384704720731714366828117376071812053920525786566274402250649391324939935485446930507257852065001587891044629683844866259538995617288160384329541668060350230166804378023492548417265716879707107758279377870048113296648967803159899757827932791150523216402588626298928352840787153897143041475243624813924921576293114683297430446037591401612464178691565133375886016866104771970422275202193075944191965077221229776391322107899455551226281033351701567780299640060622826689450936016282571615113465378841980305521462297072289266327328877057381782648387610856835640281374642353094145480882842294148977040458895288352051226981488612949771323011966520895978747558403209083027949183356096531262319331770158196821544459999433497238142325737410451142286800113815710840999445008953181240759849910261992102291771634613043800096145210409314084740432504835443912466622077187537257691121216920315688665150423429069447852931358210086238868307581620747544550212820021455904442829463480043644523051898356145654550471397578598151554806236077186969544068614157876832394943184673366357733410690514702188557614797421248196375059129910531956581649139196096268810847095784256981651750744127795818775605204043077223384223278149666862027873044853978489019856130256510424927814823634740850121908629505516715394806522310029707004530424473433227822924840281668409998928200607242378162506208312294354429977298208210163307620931702592402749243862132564148832955926996018222299418509676600241071715519191697824222670167369973780069210261020741099760070030228131271965984319467032229369389545463441257113228713147793236700931019368631711125186892507565127535159905160054497393544319452698352366770099910223063395966561489358626880365871691434503204944538555668917180294947609301186851478047436179120508619673301446582573270502459323568628631968943928491221291194720920908074863325549193008065727337628143578229872260069064877998850276522199820599524163597711387133011186938022450966976048566976371497199027980093413562940441052345246267374994896634588334735496063751313917529331832150468137607372154720474997430834991871103431708511270345976589468619743687120670540194391037277632614034656935407548758452103880885767057746397631595325861251469515595755057873849655965984901834349908561716442424165439030477769387204298649324156853994636013033122998681791927900058613040688643378455635616770722478881473979978742125900264325225793901403577374042138351393056856621091928389886885068634596679885826764940049259223068551442656913795077720986137561633469692370490250222183254289425850168359787492894429981194213081666802331818193016748776502705457430075797670277051304719360723222495037818366099213124504027268148267778026589221860431119361673510873100132057035801586582262830098592809988087420243591967960654147112275870954413648128057293210612860115080956263618896641731086422473400846027747614018201867337306087731283676873041839704577629424377029752449445696270428677237052972021310104005545782333976673591306084854113412048130545827644221640514453300829244170132366222325860870383832543094106574395969119157898850180053121057711490127970913023225821464075522352562443363257387563284286952945069756308540262051072885162840985204065762121550506527828995215964802773929884848171007968764702119018155478363831492124114993921510841436087807419280240504115460699941624824183879411921674428945100346043191877085749368441501788419914900376782171461503854262161065931327884019669141435072082809618497203369097482850904451742896301169504257562204894097007033700829926222997879629185891188086149091733143608818539984385468342754481386702872505783347018843469694171767566391987667472198468305329984863585344943022854055423188500133639397971075043188678592208659261896741538227859310243346127860308997723966164896071839677043561176851579787171137569912680176179919643434799519135410682851654392661434367160884133377621425192839451967755970827215039275445443858006616298983440735174710591272561890385435719795701725983230350053958368085735893996037455096902544102733378681889275555589517961239204785509777664939653452942407156282062129902769981091645676993983992147167408854929743257908649811777005867071062503174713704057288248903423573776097136867028218102664998309165974375546207765233605053288379323745189790339729920631565910979331743825759403402385670937694366705918315158838216471186685974608631220029634166832187916803650006519020520849090160151892291302559623030303876470235956569392669444717462068134972738656569027508225849264446102041924472668637446826560239199003549129410288355036829971567485305894498478895613434230502786421151949543224276187877875178899151124563024769233060069705539961281167130807113946429928073007897446003323391278825741326888717181754525156211144653643155826946291434726492140764789183293590600224908198828633747652809562578184397286725766094577248034754089407535679171104276677509809539250308418935940689632387995144102086553796590346427833824923131267121964536604662980001166088281105857588934073969302633664802719344998514219525802516179023678943286367912335289823490866841156590223097170333105389545043803600337500717235521698152594144207192935478512030319750449813357432628897404331194544508321164887901876583958820314314687742223025302265849811371316390976360368035335208276566227466301664215036874399463052051183209386832199809890911041966464542377011089345490671450857658422642901914703857938074131739618384545842033049175852414440283029113638359880298653411649787414281548867675076920170025855500799985697631323212883558062801483658891728343406003823715352437857365459669391904084754450476356251062211817787100575195878829651783155776575498623957022803538211717017185890607981398765424521162382365594040390340018512000704141339657103057973668235313778100974095799376963711427995202079339622288717603559699186541617613038569748327418245685886388387823806274386546318686185301339438628349973370312827210186893899676109975194336413738921137641446236556556277340097059913433736377852230055993969603872817238614699039721517451584595813104189346386457234980060040116012268614457664964048712548286894121087489372093202766661170214545590782927255428446281442491954610191958274256017175583829485315249715418321387184667280904727223766621505004836350801875836270709573002091825927148266545059234148508635446523613779000922916219724774251844324314312030843574033794736765685484511310050638298314874359483630997334138787203845926425940923391319351648574231138963905949588903110297252315660374589283934400131388181816586961826312592799513634883021353057288589140021640752341715022906346559504876901482517765892408164444278192367964702355564607496677524431337625802491714182592759620266277342839592463043846003001497653764257411475747742807991539569308253908593910922044028671787364251931362671237830447144931289252303655589363586516720221483931514408053206075093564728491799925660088091880379302950486081840916928446626587281589107679442391717734239782589202032828784344181535435875034419128666052102065497806089276922532514102444715291627757150202276195661245610182958701014423960040930282975204864424677136283239524531687150638152557669741558659059424513384398903584339643489057910729435615943213310618562700754800419593900667306301933600124474650325292688396340114243978669987146969529551024157762797329188962381326989701624165191860870816027174897246307925293364067145618969751879850277763772858845842976323716037649747712834385134027983129883664870294058523517541621632013587911104294060659486457478530675452007186299417029731506097308147100068649352093879303088310733566982934743424840640115516199655077327572305600951082872687791765073273831081282641912911984332324753382488856268002411165313893224545852905129791462909809909875057156838327824310981951776440778341001862353859989063582671626685337550881492033101860847170501219112689599030907254033866944476584222184914244084979324403253083289439380065688551179072556420456032943245367471759350170055506914201951666990109678995885479127422046974582573418766387612341780318317318151940588535383064465225249359910086244897495048791455557235697544102106503745158523565732140717703557321456865933623114916904409819842000728193789064531274667909224308843068177291507575398397221803009238573221284971838023127184691977084986270387409551642015041601767235613591143172746516172619242117012408434962599342584235752558014983216921749941498060622167258728903798465873035332384001295904649757076899050648162914491642251750681161650455759712729250853901515980412806293324931494770179787602478119166043411424978605053267401541532667771603997488956172918331135075792826710475925468503940123495931651640391487330289381994695944913390776521459056655968475419600922853444925823266250910405402368342406873979736537210807391184557304921451727645879456788928969377705374527435428236228176842164274484339922224608850850397790042999702164102012141365701875453395338247227799746158969345063561122291474486523127202140493552887666966162627614265050150371797181162504023873007758938857412044023375892817074848168475907871865031688300686354995316879451811124515559509627360915864108328716074512357380336425549158315242562113643560737353516048147799420927624876386131888475301897406722471586768056536965587770096604146004145279767919503511265819689644953599406419844694638117711368403249758754630191489636747994570363069059812503693156948173328933603080324012329021332737016781307823230424093151111518165612901822102405399373732536173566261326260251913979154381941914915117701798790134076574388563167370340362300668075338775084843660477280975652819523068011382120384076733300204771211029307817465708866355833246063064437835917915414653291401955329896085266022978552279354505207994348575475324815883418295634946866764229400602595440128569705373470215571078793788396364263405027924004434095650391454592398525804291938009017026683940218169142112951740446859849829844439093050247133337668325975639158791265618118008805238307672748348856538999674097650176490513012427039921767165477435968700140594641770749692744382290488178732124260047454485354702931771327804915125325831771212600406604747457230881282176977623234557618239079219469827984511924411419207791652530306202032440952453466567130195118736497642158649212741237619319269638053747610989045913744313337388239287624717092140213485636879249009072114129393940638859903255774638857686273747349814072763810597671802565329254028864794204087775269566412503073418018263914888670329417448140054900611642930361105985043335144753758510001526135153424525338502163168653822793513161355364478876912571988776968425079129326584250539428050075308376461795430866649675804635196875719965238224065833918995584197331061668458461256611487679848393614137807246358131684429692875113690954644315430910339787612790904424491867298007735813104562898110972241110771794190498545644799734720555322419657479181580275161893324359024153628905490647616368755024769373391593784492270557947272448319890483550957735389003291293355437962119481452250536779537012346818868290957522426613932768060808494837281305639109069873793136682694739206433508923030933625491924424657309995592104654952421410791411678515918999487425287329364198613046448487646036959129195086840108148589654632700650933867284434427054419726156426620490435067273209390283515548699913430151311552800196741812667953551672133850171371825673911026920355467280526549664130840956082849356449140101951561985570527107555390011293889680733950512701389915883815300794102156545544751950815733768216334313851223342376417071337212807433799439076013518353687173859853753389337472960588224447127696219445534324534095198325023165476007086718386883891515493588379173746697595357941363433855817071681449928112890513387759743195454575739829842229267627742780615457115815471726076781361837436660193417277701713635259385463580842611634906380031992826891424528217485535883697135705346227346483647907694640648579266595607706767731965993161361323399532868002033298176421894888678725250991573870170178192490282030549617430752357587150975921126171953902835335076764985358762149514129362665598889251276871162048678720524733403287183930678985865915511774186365532623851156901922296554934998109469126573277317711409616149995557937484606845126249149064869733344162815573212171936503130721811414094456758714839034733372010519881210579717758467816057158030255442124519184458482938286645452021404521559501963684608063081928338998628004057920312757107366244999768578142985167780513585233735288812246725753893038239627544937534491664803117837480035334284615529881193449670464669108439896615507449013277216279602939421172080094388422372548717442168025016934629405485298365127100814073839690245896333006701632445362248592619068530399004817661259818865147086093612785281865140532132977994388327274660395868879001708866441150110884183959259826431116066648355202231559151594728575506453702633054956576383990717510458685703720768206979344040962067300874721722797945495837360103825684763980375694471180140613487912869044589228689229061043110174707767777461471948577255605493859275713285884968916814039949907202405355349507489382726566088973032947668604263604301208776449690271847803136272065745704113343202510644639295285096729105307576816438622687471973278505109439382459720517690834180972210482400959896108678160435369038413458476625429298784192832906109831638561207426499920899369921086824296353286684156101327858221642990833078460165803995171996112140518370979353106325483776727229182366315113084492646716260146719941544573180341250593703214931890488454271925896036170540055805733301584423134339414608751283801998038562018757212983498182516389720080556712288019691327410472456364878631715445735708116836266642788750703098483550434533533586805263553656606476642393799015683308233436880782458701915103898574283359904852852402163021789997118397463676785509094029140921967453646446059520991179485549563468118753125841870718296121117761028841991495724936561465122901844652641778726676134757709280360911998740902012906711030866259993824382653964050021779861896512110474554893734770927765104093673660068689498145471439585280864567747311277725024274878232320870634894499532031470617907461021042259008611243109115833710217274490039233585264793136207617775052993356288116744952494160449356077877540865599223934411649519413942726244479334178973059232541177611999469130370619160162349221281908633307880027645473424365816628744812629527560539912895870275857244160153598813409311466044540349391842207431343023256875489278056050304521677795786736358225794039275734488995646491671096764407665089068971392706607476696780150720993368428476899786378235673178007569353955813373261645359027767699907974118360728340209493168969853647098387546831562048700509563113843731848961981382847623693208427280699685747024035079180471217961605467832754585362651974509782920067101530446529737182429798833955115441509261666907318239611084282825211841949840210977328481863011935053836197923802225023754849133475870900456152749662516645957079624380929133800782222343019276148059874222816635180973636439541316744037493371572069555406153872239109095455355513118815315141756380067180974505454840819440706400226360103330959482597563141267952504734050507550471184512386865636766113432365127669382424329775555416329439353512496492592904340351182752756567502332384173703555196894438087849629778655049948028800783649594667431349753078584225468540199398681466557297704371099452410062987602319806600419098558810937668316001008891222666314847654602972751103662683887757235543637521140981915394948332598048747012662156611819475630110797761463064344828036532936927530590529275961682053679183991567439210465217989762971181122666363480069128313805977785898814915864560424211227569243019821462591124136909633075481394575415184993665307229438481029320349159982896411196949987239666713524950308922908781290979270481433371916434391478854378505391044684278798311382233081920101257870278832107581430011913449312479152303220382547431229405258550487746786057907384192357542894833519927975737609216417873496231272922991281496215564811641214043413211676426391341903618670916525371128730849563203847132376214074804961228292514441922753961316913547388882310336663618355655488912646821547518305972745169035359283051895283208145179849254413331798027305934123725823534276710762427210921247260033773356619774405348832325779753791632540713242132439270975094853229686472664274873400070788171462472447370943279979648558817339890830540001692496543400026019393590994400450544315978230841457417573788335371223208559905003839310027267639660109972882672172577416435833733734765773267789968415149614687433626576426241396430556429617654751365530510893630632625412929872147623019965654628654434394990885868282225966349618251832172322827339073093949550325251919932171481466560371665758962332755915976295725284017038414170866401371237020350538401423302004927568356583933986861567581322712937616679264567965762418234977446771768638130937807545147726263254518085741400851085459295835723800095493425202959835890995889940308589352941996849253871166291318047823794510225694195321904357398041881729035781063278444897717125990776042897333906640296673923394761086969525235248088681020279854967828606702083870871888213200588587986029272704295342758054154474163052907125470527022794014046566653886610409567487205786445310853230910389005405729934773506937483160508287996320542036857704099529145766932009064970932971045165060567160524228361255246879572198808328831045963252920116296131288650439802166755106997636407062446034476746103938705019382930981223376480726178297684666433463467197253408605689585852318352369735896755215891249151685187181623463488528093356685814838297079994295732771084224067841848617729531595717668962559719833191632990790645258600834765988628700462956409707876949582645216105957062145722698991616310877922755429487048012504281019655483435243869349519766669417223777799637691151549703371256792351960105791739357396609823820341625242883321755554266597294724271324090125868897817587816754007352779098957978508900919186124889499243162769812331302925817141042636803147224140307080686697502407356069191581143093828492899336810703199167969216871000887429649335598692962342464202278742308992072611965970626677511165907503269555491663025227741945371910873001284458970916218099483917491240560093228219073889304331182140467495475109260013081287809615705956494062391694075441031030535267645132580027746051388794793948042118008861670644826305323544202087388473052954043607139185534059242016890493422325640524667156624023423478845724740902617145576014023006886773228963031027818358674870796879609981871916827010331870271567181250532284595723186961082248097598103518218314041887418339946110127820480686211189481197935016912656243925912315740124085011775119577985691892442667141149113101815589087096321267937614711872649945674178134262572851209847825108247808740248555921259238984331653759401291993845159905147425345883519994029157946888595653881438063014764330859705435570387248709791309838608223845408407125448401710776416778683278936165160650138879649483454602554389667949768603184114107194781362959164772730016456767632525397507531265784228870693577415225956602449425095798553877621193900831203616619183086079399352756414687735490722563884280547847140900613730653702484933672700720904661376706720694017722722530612458224496568442279426153060733803666654981992655063708192232375657970549496630856481129530827568516856959707938923905663082943393783355578450826744079350334671989087462032471625364331457616444889406393461087548802479509687041149071664584341039740064577178543330290116180692950188096442143580779133374147389275758517728270837160120303239887651942581894228005018007569992363028512856954351004887209863716278081852727291333740655204087926519348760373124085803773692580031953686452090020965165609193657811075409493565890585138804077854294196770526525208070955881210074983298884166772900605800650902620269444712712852822189207506010489034738641579478361038579799548253144323804617937974162916285836852504626253277503778864701344430785474059276972298525733541572671711218394074988011549650709225033024127200950450468336408859029146952182597240011925754208894483942069239685765432309655114968883748956691538238554712158846238461456079331659284681415198628243007332173463571421761679356143842487437218292739221449353484814851530267337498776473522288344442635784848374616223554241367069277574394381950540792902361702123786600695429557254347195746965436681375221540864874530893787865711601905770850393283151070760328379920248467467259906093294361163149596009448917169675713444897378620034705540386678540239285053009512917627296466024302481031651043122796189404629503003370890735349488589622895631421537743647941693052950866034372898955532600803386865876394533141934466667152655304425635814170275641825079239830537297593322168564457092087859941436757957296146667142019122472219281624811866693609823197591048566580313589686577817978477503508436344905394441498773852861015956656844133393782934215551599156072162255524088984885201248312405988706749623405957011000990359009514019376875774187055884577942690525872515002665835118351514170368593640056191628257824277159994173803689023198434445995712355493726622939243929546235945826864096896667822066828600391144444728837268672137850988894718026329433092362780997810016020054335313815673908390926872931105612741464074997297623406836928692236575831603626332156621898433574702430626403820898805046576376853510011825318514096711754852436563985882952961392011811626920289397830819982089677461288530407162487065595466422275824727610961524731932475221594735348044640993263478315365712057541003099466192528085333678143247998099427262888590543954163406714426223804004761008426891401137323275148678268776452566349598627320865390013035828803506394519648710414677533470187719095995706513019137581404065616492625376195508721273094382695981886086725839137579672154882322257242157054552820986719618773565802376629257059178215198603890870320257530641615955983356336245684271260224277540410125350127890822845378286466744504978777552726385135779563257780841135265054822911780226917107579609567090884241931634262334255363531693596180107264724190632821967288204606927377230451995034509838936477253053923436096151267777389254620764040445918863685541954806008220552686374723886755262716332187653570450371062550437996850047841466533191663192436042922793746522745304858096863336174417240278995962073372091289955642703089135195637707340325759404150658644018213137092979466351377863485140760572942199246243493582178400908483894741923306247342114045409367194361204220693810679303547600751268732684819941003537357659196622342491621825320347656149127214173430411399234624680169848105394969994134863771527327480422084079530955143691216923678152010265725745926415824005599233771008233425256053610070262066752714090767885979423755582153669151004491036920929183511649958453078832889473895707254521752238370771309923352272586624419544028919887121942534517219373853217030090877257920657596859769702801984127740342783330683877999519771953126148405622527586881551764397718595651082165380724605860553893681054586422139685883871380333900712044007464979222683898273666112768476059792073376772793352209404695791680560005873933597392176239976146311071781377979341459955262876928942966207015120621835200507296014204132494024512992082153186502557471532651662750424316277499948735038850100148620704290805081106275379327814286910811042305741507963494985492134913387058463833885931617648132028428965920012869840193304430097989567141057929327918921219544990492060849849520063568995684192264149530137499368186419936384036350276225400126296032256777654070397128880297654075968274702478327014764547263325105960837207310858884568913159748233671000886206412650241795795764682013198206545210387217203398773719368421946305751649151197966431615845793037801184671423585777664476506645634861594692659956789064280216496207607473357369668684439626393275065626945614080699068436762578489918938740187293713693087208906030924212321256617216947104462674370201976717403213318440681980254170026923472423619238080666339622419972614161240301891912282805325818556943753695824549267028284819737090155513663877685446484516405860267698565689441914257888059090766508271062082950101850267311878282558875087493283053886917592663429083892760892705697647926077960636166087607089751756227796661653077950011539683601259136442137621774170304870326495064016505370374818350611696178737790604583946306689899435812148350819757891888786699641758050823035738471114580643020763564579046079385676876673888394841945937239676813377979370859868920634412802000223915395379118447281830883292671751273424792001152314578033905901837496499080999341361661299443303131265364121698907117384236958010077247491225937743567160426710680228934421860008832691347048952024954729438508239550364851947131831780395629715223212445633345160192193337319688130351718408646991886273359345556009479640332609957725574624687632186251706621544910198457089638500112839578512584093588943580324104639251124141413063545520923575022424844799317156194321278564021947437024887005779091831570553548102226634993428108537679905973796408545569434759369021224603720322480293065695519821051201051244454497067955799202452056874265682037453681209963782230133763926490144927545181154900539957106778834564984811695030672606400610404190006150409311634489583680403711494367498904124575791156946277101099792317314710599000658036505095259090620298685592067768441827327934517318945464958728335634057444637764738387773555753374094641909807226434857752596960398263315464526980765539209070941661221439757725405451379191608882140836770160311118072065499833508597919576192690819590377579164716145353269109535559873875800277155517483310081840809008855798600734876641787713644450162884449940148722971214412696039409319460310122622366533137517864614847952814652298165516089192887386666257355768709749562960177257793040317022766370352065863477018082215556757585321039759065824907513863764819350994349617757477192837863279329877974884033283389432048397683467781997574808123986205622635913691025648711495501621876257445284317865686729304810285749323643721836156255789811273521908544012650646931955077933609892079839137168581846476540408582492006345090015616033595918499556448040548300628504604742091137161812174083909396976634421620580674754774525549426385952373827305028019486501326420934578859761949260939745612789369885522429723831816895754325566358124757918571307265042836591205554743932027103561747648623555270503320540128865692715295118356832155925002445838321916065460368586461432602043099879513905073205595437429094238651992098761270381666367952891726938219310338678098310584736231573799207599947767688816889304715404137887151502325140753638741446397158633008129507296809386406666851837100221636763700089400056795944588811579629173284372595463875464568202447909200736821563605303123721393143794779997444336102463747321599195499865740867873823519293267743041367412735079621535192421419327332176240844939828939719125096825931274890104639800108262402830814525431854967633234295615725608449389096365684231043806397855671401052451625232160968806646844036651908721825244943556655286080770103573190694954301909981945958560187979317437155095638746056717559280019345240415148666748668388764457964269696975997228049163345873947578976141516384580559854971167717590467226144275700438488483610247642473250991529392489657841774696861230980170494889463607838002806237120393070225684084101868091778692074214725528915198796905269091132393287519092860270008205433348553694856990921027598845749466206485595039724095793974319345888648430798555868115337095283218752068169389595739716453288818866775188743078352464662407940292370885776150530584151805561587657273223353470829514372174257945506900626718087307516756215385682515774208798024132753496021606077022556172326882320698406399374750330223323213235710179468388579143974158058178687217155841090263279518794183463136372584637120686174976009822029078810941192853596344452240518367792384932816637416332890237098487681292366034719312311381564660270315607527462899020778227870743555313010747792586869376549619452745837124550234710077894262756309553037089741914346871573670751661489285785954793566219329703466052908071832752716778360154543874437736430016317747813950157149421692791145488818252374516339552182626091250585002676412715219059747647321228385595272989833046795459737637658574693538127888686599071342456543510958129513858833821337644336213175031529382596242280787898631224982782678175726854302259665999111018913199079174962138073335624233289901802951575746218012670284321619420972569238807956440692126668496079322942228961821813072330409961200740309631254513580682175929949403131992456672492332868904609421481555216507610621663058025475242987428255898336061490507317744511595872012368470612718201565769685008091949317903655868116645072847506999673205711208761623685456434049821828355151819454263779423350526062977193973680655655289515004661607536558539882508415270610346896073254604438463754570643277863153657156891903463758463670261348833474241518675248687351759107115407828580782575967123414545351668332399680765104164318051371470927133163848803623621295462325620753194047193491926275821903488004040767328030962781417848189013867088293088940463858382890801183237599229016521311231072643241403121547764043709929997567369899375029550024402640003890282744697724463655223218255439502517719439990358651948365567982168104482443839424002607523639598022734146027350801800910758648944365325518409754076164286334188287442499578312752314560420846287078140299567229272586840997371509117218655825487610116266538666543540348401420235617241035913113991580593472690624735487463809294791906188391160082954876765735901352484185308754787225461084661824731030944867593038037906795877665794021447203407739620996527045195460086438926704582443431877566899802109952892722052777295547906201571422279979942729916608035329529639896678279916565928747751718240263113276867716583332002616536776981594879447699669306942249657294909431576988507448215954956418616954395785530469524270282033081295332727459443245502454233021656706763060124877509931450093687478357824010945751336748830607495000135725380714607033766151453562209093866791391054354159992847254130630321553765334664489069093323611162690573069876986429724573097158581723930833736852005870929005051099993762451035816513148644691656505929696814693637624832313596872325429654986441744489489967423415932208477500623861187176803437235571462957425881973552078829229242865496296117191406772628123449506380002199014360686142510389427953719683768544057793658383003207771616483467500281719522240422538054083982102879187633480194749353081596011003044665786600551727567827174337444536650910392774231680445896948037737752460241789705335741816138007010977335973631310796501920524504621332102737616988187538361388694737309797516666691572232805448363261708302355963616333858478067691847332814761792384668860496618725235795300961835058382977468452926963645667491019490172998350656007821313361311109988645004628949413370695656701635292225345356574757449983524336605494828006023382999029333327731378669040086110866525434585119742154336793277522225253216482544951826702422972229516955369808310480187574453426449247444762111582635710099643067223501718651907420818320992055856201012348172718464789236242777776589392397366802241089789903874075018237551541929874689552395435699024755950033276921137906475182313382337594723916512998418536716890375864122670948862004292003905675864733202516346898550410092365427419554470698109985281406040893604026049876237841320051160815624154071384539101427930455028343055277480489493934240107443119801437707118550024372348717901694962983750019803869466407865678276146515832567117151509004967532513970749632067139578674457515997343253245897589800836197476090567703482786595647508171323769569236830617714210277566915422434947215201265250508933950995296394884041576008142985056815620612809700154762199782292205684899727231247172506186223812234135210334864406721346821969579170070925768041729110622504088730473505628907338609860312497577168279052488607263082819383132878590127549747115386835700638169843772109897396681947675888670109870541722276704085824054208898193016255907966305698867856791465778861091478499132690273175563081677932823168721347836375268717814512258182923449636649412659908400384916733443371357328709806708930687097603349835928845884826466918648116082283985814531771240496444170480425876293226350454029800298865440011664516898731348083058359008861242506937353031551947888971673169285874337388892009758264957759499998773282016992670346742726286171671070353019491564708815770877767700556449817989140312537590605245947530868519266633640580635437415349173194061017398756453743981542792346415944207362475919039966077336754393126752725185747954332373721643524855747805316416991904974662471621846241420663080077162768327580393521913556569910247691047095400074070987093582327918930129897505889240944345084772261435935354580060903143448584971904597972178191893349849436891155683348892855339286151225269974417803814286966962902363366967208396159054786853198454996193666265507246000337132230636921944909587154776953814972876695227417594713076707571872398917410281878240584103899007030153236889417701389305212999077271613071873800562765137985896210033734255838316104379190499272586093783971835330769601337848905677108605350622426521113733211701645483153298092826961029876471471493006907130771481254759552541448911529988859509806944477368962695548782759515099669271392187918661009119513016156699131810906262991274231237247623291955142950871131593743438217976590733335212310617784151638288220469487135841025321388549327058705540452226000683062431960720313004721787712447467694456710418183801459529114851656324814828878866841322082100870969585496109674327555323697246187719644846797222840364007885478778832432269561141522455339388994657937016208322680136282980677344650372069156739312748808759463751777219753798947285354753011340209684206074120414187742694391422528047933822574576452966658836160520123535586396520482063722237131483180554065185060883172426785291146361634777469126601493573470359123156293463041044572853541887093775531608781936965897591342995432017565104194585719166601422955963329095470435586542966069397462649228780974238185885176641611035207693828578813046953232331419359815833739331792757406998977220847395561888440527442355539762676213790837560162386556244418259149253093948163241857999163580881807929468289469408180840688891121595947850911664378213586140710063498858156072896443249072265224048881136718376054932352941466886626402034380478854678480076212191203306814979994407802384573590392550460607981558637949891654416570827614882073815752062241008409083478461606674156743840371727572269125238684041540857625142926165545835787818943639769131594461298986948500115623535594759650810191893889051406545338343207281979591105081952853529904608561229437106483471363176955741334233210423316847990189422458472659633087075446781366176496872390161484250751102906275869801654833891778186629155985070859831765852990401330180505978244107619432997357716268034987433272036189672116754053052763050010119738547341870261959366957789945906190692325901065326299804206890948265157505889985540209972449143873924716795689698516969120542478162869455614063684165946909446444252147127774601016042180175554875815679815298124476818331262604729639360500187680616899943972464877224667007333772707144479405076614480059268750795181250588401721897639278779315945315645962616031893314728760308366853087281790795176803162435882168076284740331109309824771014270673646815612008757126067827136673223148701597744615023281894140547029852476656841336769142559187629686991769611575444830727899779402389624598615062002769410356686665248601682577083744285373606948503104455661618012473152660810840849613999286550199026194801711081664716749525350826456372193483755762939618948369828512269939772761461741724146466164051796927674993286609458001858056652740154678165335186110338795274565534696279285870666560125886925484017481892327519928293745430775241628576673325577026459050504849710332147670264431482379091940710618479119290874969018667249239403105059752319646162079260358491601616644607948795727940253668791357865067364873884946482306436443920329226363024214655854026800664636326572290007005244536343662725443097796020073909582866370309869089082719099372647985626077774719003884109102362270827628172083660432775215388876933944228002691823517509956264969185475250571450235505494970618492119209033264780633055158673229369220627793772999971296444639236060013542783659915121170057569744998762433620081042990287523120946887345062170651493058516025533970431012133742167565915676896120454697793419585508325425510812885737879303428260453783443741470254508289161537577940402611957483728245885940908521217812944844140592750721875745358628558987965961218291604099994608369402769876145664113429394807073275748705887305439989788337376192954435602427109029898245824542194016133098583645169350060896758665543444365559017314772246773252997086379519996899264292965482816112467870120845540065283946298499460438985181750046436588232638508466870750194765057927489781747937914564945915679512085305331269337989873190631716408735764656364226966336737551864727528251732012237596308299276451101438990239623480735144502874701675244101634339909080406557349327950106493599789501604893568298164732569562789301798918189475285656139306243316876455055102025059558975897269046229099275892571488540287687493485837323730930778186553428561254562333657085342220282698129511128897384863397857902757610522419284392930953948306166747951503985668589995359083915333869875763132790986922974923092666078665513343529550644028048548789919495551078134387711988385118480371319988579696582257367086598696542418773077939197890056124026762746471840318206295568208230549115349576319305165214010820947680593839378021023425692131672168185032321680245151056141752345951587251294346981634847618696195550745763294526800087118299424371022142780280838339778219690213997831741695079358219559424669065964394029514978959522527318992451301203549870598813322513779544032468235988840440041601809315873204431732224933602828981494436819220779296674064944238657223381321925174877940312365902311963046820386758995257378011433475287119689531589684997279112395708078007432699330807408967503937889855469727183038319630429760771042375674069308114328066917830084152034602122499530643533869614619670858039466770776289504126017517725835028550095122625951112720235191282220616899249980912602792041174626628954438517929283511225682667307269573966826620685810190901748050408062745539997877238953928258931501782643770548769868637777729225233913759481150087214976083553447800268941596371345218584263448450933247583663296481412550041568590484533973564246622287841387163715217088963727049701253666180843821158282225607090833091115603590126158695720385719846494954384352431080035869416897870766805274585724432108714788237226809817090555506117014099929110755783426181889670872115006436659983286695656178219545536121535198262802731456414927909359151426209141816815077571375398859402666935291613340503493782574221477791167250922400334811793955069786652224418518436862335218583923157537903451477435501287018239021342892891999885237676204953338009350662362070073832693796869584814282948486735347884762154422172200808492069949600811901902987397246780797165878823921104281717936227624288012870389752952393633979522375491058636648224025529953910878579717887379574265987973871732263621272108432377821140213866257735607416753558084443637620875559507301817688859455034806909623863167451433813085677382989044435980951779857837930521916801260653323353158201338259602645921471734920569392822620738585639265619924446521863899800064311723512222568564192774362748552397569378274606085818711199591212261623491895971751267867142794298983085914250978485665732191543077098506833681915950953396337002035686265176174337622419462769778636805107284706330329349191587224368270898131119888352768570502501591860504840963375485952731929596622666492073453156566530990389360572218656140394330913568297962341515224163239814518024465065788175999273092184805642543326297862581876650723086168057092389500674630410572357833402337229868810251529555011042750693340295829224920471029656276096981208510221481704874205858814108511185954284212647786662988282634195002908291231626239293034823372008926496962844754320587769402799316516998412330386870056760870660961981735127153230968218141052143728942797744029209104385445696627805214006574272262719033268719041586193109989733419784299061263558305713398310375675423441814084333869027881563287182908395443160764464185614460962594357885958556988528278475195114307179201394996974685470667345906091480963533667063917543397637428329269081318866467456386367241173674032860618104687650181860823972014600236738223981411465141710091520890823838306668183713435281189609488048930399220595458251030574502897651935952747264364994551249288496206308663558787164679423875131849102108745012798271559122254995062649932311870249489574811851170769142083346464563389264684917828406708771633190565014865415878029569033178745277006190465828566099328839785294457425487585593853162188565879613915227277295867293008220787014659638310648775614152252358842897218916123139565157838009770740973138610485983334893482085897582315135907227643167849649104255910778964978662424071874519489465271240620690034119650551409373882780429858413635225729319229485192126094594088602508617332709580395329140790163195099760010071879809981614562509003823447453330523662378926665341156166829985311275870174796238137934713570509645837760634743546522109791744289287188639949517459072894847887262138773444249197069780089518002913346103245472831623116318526765052558411358283348592093466799519331321599495940331056262001834536024241681049766260202266684577331403500261694889313805878471914391930468650487904241928466499443524911247467059876197786312257497386125081481884658751489524595919996711494260111854567101035953683930219413836912103958258559816989519024496365017475630232757173171397836158091415524530654577893151370577531708058172169653665215174129177499849207553558882964353645609044858864737178063516354616543707211314516840918126764327908999135695467878248022690289262225548971622782253578608250985425148598432253240171914394483326374811849347914724767308079219629310654993083953255606740177646391336523817187772163352195932039280657478418559643199341085401464582671116398073391121652456291767431453320183480214925031277575400378375818654690682701092639085033929901612953517428203309474317606119003175668700027399400409514895722425431128628930960531207025730805729902114964099516889115077938226696872747359224415643411343772645548698835601925425500877942708843221829319823459058407484085110755402506863409874793508609978282404658005496989243383423178739629685476184735460701494786131287076600636447996632062939933869369310398353313812431953284599723334200832089949435754129034466555176709422646448592011532954859811001575654101400823549143731214236879472939740913218854495704949301837379189848258399592489068709852431180979691795007447828254087241285599611333574639878730617241767537735777335579778517520418803159625129067718962406607749537270843809717078586055123854947115872764508608159985586432096666677918252817842969012747899546691568415650005594150784981856125812053649741544370704275946114608533795481305988446424695872753410501390886267072684009954156026451732437650797156044917836207817023581693970275737306101449686201537483489158020240852760290255023851965622313286596962490028541431353494932961135831248894898233502105720800513137155833088783862062816391025789293324304483051420497379389802910469692841667715184714492982347777300999272825930229652940856373937988839301184117556042258933544080793185299735203837020895940003286452860663500967359949024892692763639496775690337026092357953166327538351918830530954904693588821894660263830533219864179195178523316135446781115417940553579909328487943845264405666952873994088673252726388550105561661767377904149895983976229380502852773787224933840218435457012173717029866060806907607667341538402284473230302909256914268288609725953045026163049802065100906081672392621236653738199693619680436591488952160943753816792893895402162897817838321798413419934945830162852486988450658822343553803867659834746691667696403581121488891395244224971611701522452050571229771592045617532418742267452038748289759795453190497015366399629803098385033075069941597437602768610802735458825596867489567344809847734964355519579575279785262334344206665787934867832264521036347672395433172716025715261721059781096506173013118462197491029437602867539901399513493957493786783537520709253363603866699816366485217236203303264249240138553712605685702468340789575827504877914754708412481998165634431363026687235579209415763120841802448468175267193897013582779553106892042713950159526155381567025214041639414845434539428107590324078078962657001252106331202428197544814489740312175370517118110947318526812456096084696790203686953037417061035461005388359810728036697056395540852389896139148403651644227380663039685547864478480664900667251585796487001489888779875882008072134197082689490108799707002579172170514676252678729219373882572931437015433186119239657644684664422202700687029688576852150977243119732858197181584307889795408133990103624541228629525007859752006969664236636185368866101643156228845143636116529638521011605457343422147659000239118967053213692169974215852809246922098157387589618026885512645356395850525249368667494157740270690614300463752438112015644326450837005996202403852716301988685958143668209761915264309394811409186338573193893636279737023776798988990097525508715523754443279537699211125499202801511604858921652622571256117744359784421524707257230230508006461362775733686250347822440076627069816469176869955662236700901042341602313695048366981881789947301647113202504514717078415194138498436714499292725266948397013135953659325546329826488398937036692470204582379484369829266474929854865822756331569427891592765888106311709255723297280208600724296780900124205607896943676032129674783530571017504041812518671310632054777314092151036895226379650871350328981782487346640998013642963579325838449275527816038759323911088609052140433889265695649561505622394474845668999012564648377182728722779258641258728279024355800320464864135721767976533423285893105138449521187770212595062948492030433726226883912117435695843217629264468663612626460836370150612948392438474644776733350229606168624959127357741090445701890506872432415866774238619670653374463866073361987052158635164083020473447892615653451883995221512720256605179117055205365545228959298991394627704243966558547027575340029472901187311968764300573534264890500015772259780991618215862977048666630860127355421975507237722644876391300011914637537084208982435604703822195525820452526110740002212475625757217537419901269373441667093861764119022974133419305340342340039059477090077874410384270009166827128927182342365430607256205875540868530154701710445309179763496631159344245546334476598611033381924986212333534974221964497390914518067904619826943090556090458049823769788944087753133614165350640097258926826271868549916844686140552305213859327523859157666307748107100325073340518864046692060651349146547529673649648770975798911860229931845468659915993487335179299561007791964741667524287392707911321463593819261574709979900738870498822286763014439775944634003906230625672035527668296422565580112838662956388229892340579521890296783067224139727369235247415493261889366191690405200834354181230837412526967479038280959553901613021685218498313668439166679530060992605700365943765112935261860879807933172555678239276678100099155325592914652565532563082826697626729438229263717002735360331795563043267488089125279078541383259526482205394620855766043145156779472858776784609543032912178453104402217659694817182452305626815228687815409172846327349489327684112826146123399468345319112034428391541337297230813187842098886259974054441275284847070290816650073845011987071668451369476444960172844734786222199020415355505044763577860827687441438165668146437657634904333378998961472368116440271900056883423646212362469825920006832714880682866140300035416532233499360681964733865350509644487152506305408884482521011556637902833768812541717812778395319936756128554492338180919442872195264124677355843802344396088103359092531395566634673993497458251317171991541763655230568973723877854084554934119998564812002731405953919348762397892405165849220759076046093821927153812968394129524883098174291293199702613028570168869552788784663543980445627129234575334043617353777292384766577371879818601349715012048627729934365638930351906839585395934165469175002267440129212842063869061831351756470778277054079110814617683013328004140820246232729852339202687769044651561659404685172552941579575703215734360216574275760897160713441784267591434687056088266857729556036329537936364884490762382682216976079315331143224373435748808711919450752164438582486774397840874163991217529419822252038031820150764749858101644267571190587613078785032451381776632436188157508792459657176821695832510765234491635330257443858028008801011640188313583590911692847825149124931333990835383334292012106805582757956846721534526143674096596503256182761634478292433525826876603281198099508455276059197037892383344300740407938445479267023943466368369379499385378419623135437737773518018891112155017138131283620389130279599317174418969524795755107718326479148378806158666909944392138102292232781392595425015753134033441000230700528908958269990373926969174954894135184135169638630009988960061812922398536261709009218389482773203135836721232529136518475210324068081820190555700931782638635873592256555289351425348183917538354560649810669785683207133973759428890650098013138836918001214412267894795640009141756419927702657230641498693168736520693882271806493496484396053858914619725972658748847554901124701749699959659243876120031639347866383771060522022363634889347126542222350429370017431291380969584083337894041061423678738696572851128538389606138383026779194667648962940612295830155143724618500420976813176073948198416049450586006114695247661394535823947340774734477093247309394813363702164470327684869262051354374037946523743006622037172421380452549498623711934104374554072091255854883541717624589429435133979307076773585284919494941927548045707355842404662492592724608474796202395177915323852530601679855633249510679869147175364083270267337981537679377518407378744502947567542519739161470949580767608793753993800935062693531203388487221562342234374074256423242788792886608875107286851702108390704346022117135226029295287899041529140799298579449451656980336546071992616695302560355013195170033544169691529443133988758126674228733833042663836739295282104298774290951648990931301395737325319460912756135173352653954783547340615696280165118611208405258490336984525761687482924280915311273141629704271669008699433388765371961995765595885639941699809593899335178241847781477563054686740310311471410621842417141485023755826345939189704814349541905187305840941589073276284147582183770629131761243981070624989505397200638422009804256093166084476318212290385724011169048089082144807897905855319936553936319401523103070880876143715958723668686303966585628984045680857637482242351634726493205598394840925498778828674905131745561419220868855507049317237412317274174266069734266910729377055596748817212512816170534788682287502110960850404317939612201705847664987801699094157076693197670196069417094838413990464922226276195569345229598628684399383141574992783336060798347547206160108647289421169987853072425232524524261998663277655567551460163203259745208760179188798280717241546753191723647859575873277902068811698605385275701972184875939635349896969641080354974936752191224907132847056966159200135498942844795971089435626562339753831917747836254158772710360839633755746155495089768207368059250901970591478167380102164974402560803780190962971594250463841266129218387792289309022528184965908018809151700193501315686139008061869939760311010700029691431467426804986205754385520654574429446584956462907540259417693604642687146576190560304864487972583503132228995367312654244636299408885932745614071630321165225400401436436237237110564527904950085718103634111020518221386846814511665045179675376179637534875980329116756323534734455175291868413488557311687560636729638421072777070950832473015789177953004867915603563898096236680054143520064760728720367660964929229157104162027644164109323988444288326402664623656784978150191845386500991845041063746472786259673935728748513891549966013089263214291317003609597661279377142678388137593975767210880986686556327445478594094850998769210245744296178993494167619717118426265332783412784049487288223465361824985880070896989842177565534282792778535662873603640396181311974588593164237780858627552856729727851109307498353506616427642745483349607182183682175452301142933777846770424295985404085737139957180535022350601968253419652584420233991710654703850086279228639177000450849268157099400339037810739071433781738139187070772263461458646319625626960938943789706803657702927303273501033930071381554891739423423111911889634237481780159367365814308791375921715013215557146832013860114750849921984702600057644225751540650127443096547748846663798375400583245127207861245913234946798239679669042606705267492497588949847294061680940063090759543628682024658026221700317229063965230636427002347660739500644716209455680271785982118380961765219308699464457098181914872080482173806597505788413852776777475687101044062141037786325902546612896153659468808497561866373935737583443030489910231139490430062209167293593490769706907686314959631095179744777449973884193831297912773066883103663568928801088069660557994599807638474717046718899450888866089825703032312084551450032187664323339290156445445956415676808487506608978806146793781334348430202244900418239140358242469502955637967419078461541165718876548670539553203512783239761783793457840779898556216893403440371774992794404069812910013353245939084257237902519538802887989017716141688717614492332873963933703920987488511597848242950797009658452410037301910433120862126398208773521866645122338600480503217060191284304244994622504380917161148105238517857384671810507935969623013090179717695106830215918738412788068050734337782107753499825842946290304691082387005578171793100642318283879505313774420894787372325990521203374074230796418828450078992132146501643246806220693893119721461998047305256002485834223675096719451025825496684296000938663061061230312535808650635417194672941612539748870546623292140909354519842887301610824275176180670693022656390325456446238438749334620411427713479245707885532308911844180532544911629174992139395627598943398722616136128695474672744316610239563883213594762252320866780099864914437362454606324237835331704710051552207046166220998590092925174025417491067299677830507105467622938203099902172917938876989943580971293037851660300132253103686686635730145658053338059900444601246627778743154008151899913426453949426369444630208965277870841019231387370729531330301491112743881105568356698876444038172709161979577552115828052120873538372061361009259906428538275580415832721224720099811214907603722745792888872203044815722289670633883251844587537555455421936393416970856987087316165332596817824612433148574474319521770104125376918589711748150435793354767570297169607634891759133855115727215193739711015237431455618358596274027298383764697760180603813714203309728157745774801538791502180826824821017380798539949508556386351549380894978677232120174483247201353138286007928943510015262400909340402733597260376518189657486410285718472867545775208962193411480046449482525998002918229579516906332747995351313901970333697553876200134161111051153340362318277938810479817849328497455031654158717547647792521804760332528362925400801935238125956864810870265247229314659525736380075876770387105777293115851549846470635861807702093088337408800049615456339577095125906798618275647076436787628897548484813170671659052828159201359888014026734161215104538759236044403697855567518438353960550256955032961775015634542748365010929305792430111405451698807188607539195328071736167110065041501729961561662335983534184227000484423184964572841498687673036464133168679470293097558603802697552044170337048687623673092872957065891440665048866491003151566009149899212469200362805739740281968768927898814842049925703748960901139164206022540781239986351476190544071979000819961070213270268542887471661197837107226463240117383073334308348714311308036154646382990927046644223616653981573172993902095651009570343648792262220384472869034020940449225975773521654408120802612332303534742416745838716286111324753045574965797315345254444781603578092636230136969155763469103854429937182790702875345533116659006022481816946800455566384506474484322093528077752280583874649786180110500346333670687940594549663662068773805515276907685098815051069752195480838822618330234550277877742160819963867068286624288088598526861674298187037660547863397665447082637460372935897457345717886097608069993767046655073820115768123123725160430170085747932162567032960854125518982218154500881700494834591524212925055549664361684002180443856994726220317554503990030302862734966041867696429222399641638333323339894993431349231765018600150860710304522855346641673433357762734280788305150795420145223693879264819850669397190001707283399858443461606326806909215135676267585266372789001634450660637018784322642088505927241594632023508269127272728563890388888561496250898036664564603455601777796731354516098036698716127537346910355899995855663974098569780410023234940862917048454115432034757422811571983067560230424647818288157740297880044516329655037450280614401977770415233446053148436967201051123117280477282307567682772825635954471006829990686008258904838276684742875729638863240522615794096198716905614068464840367119151007628034106297078401019442413792591587839294950543521167359495441373033000134267764020050151442112151476371221566085052075525445291370117096412921745085395996834259106092889729660338058412372985546932088278675132587650841646989145020370352617141652592000681208136847009101502524995711970018653618645082011716270740694385439633617454212445903713145935836232650660179594793824638896068775584639447113333006174948224524210868266163375759321151127366058467844241017196701260445297048573655904941564097144350695885991588154104472003860014763870573296272375984985546536212373260160489638071187057803866227290614092015326524397095804662314417663473717735024320048870186476442621789675556472913691543062220298720376441883837365241788530408682302299801022493244658065851412671323595028133273843715803713365137630663236646586312932317200151411405591106773736416900156584144429250010303367503522743468880053768027931336783333838973942240500336292175945550234992867311221022663033564517151107665968381978975629688416872861732114801825982876555452330367981754072169746043383946427699827802099022350356789098249273963311161833330402088033323838247918775798014347798898763929652715182752258263674012434604803648260279516851436090111960247922662989914382282941925386992000074722823283248729863756178387222866937145470509351235228497186498394712089470187523922669046315500083534782981298651805517517007473936582314754352785772783482501527106333733625353897246918934042774436292786115058292204169682000917729361474414194779930422234195895647231072327759178968404237153572504396116880916513969958334890554505395186674288655270161054906196694850614249491461880163561957576957827608418026384918187768707658132467603540994405988103843253558048674302010632409414663773493468781859086046074179363261757495708638541091041475486680365073014564348082404471216672856014847441707448542858090620097391499650108007110023278489385396882158830685550234338534643414033916466545654300069716424099799582839559328908229063616399566608591307263137589845865336774471097352792964445408848894802886819201227195907259761372498230713390099211007841942838956171730289155952683715010482710971361936724508719848381730777956120489913890229495439379146129617484500494372602731085044651799793056850469505347936799902709881503665707659565468219439110534909826330044284808868261926566891587833410658342850396379893184939094864300470557206141498161261380112278038009816259931037887925111435224852710519249444175591091016159794518303688355110983819382635634367352783464834972269783665082567563863801948540098917000212970832122426490143133506545094317865562017730360239371582494228534323010580532960131405290759480876378477596620116569057486120873295259215258033799726354283993345122610011922935576705253075198961309853471481958896848757655940263004443822220762816513686881193135897119382257566991672849285230361906788363435318834596128605207324513931825853373396699859210748145361485811014222858409588640348963088408677384572008833180318260347468866877014786751270580149499503893666040215602641612218229013052718351739161091557540765472299921141185660443594299828121130158136682719002478844828679317398032072389318229175593077071805317700603198439635071787299636852828409741566726799953619949738152848440561132883324823308110331216373334481941472075189827232034978309565579251924695171699075414742523582021310321138354267953740642408037226178305876581595798820192678790275580427434238588663293089538514465047476713202482163677793299591130511681398581218453672968879800329908286367858398997646492884182579906861448841293516814076054147566852865479231383210358869488628963939769311922943765824068568676522458216711273645093758658249102958807636313459913926005500793520533311306917081525203474986274292047581143733316471411521775211432997190991501474615247273781715711058885775492227407255107977152927155736253709014832250122382882329556432259242227840150994875984812609651063513289187070132516819947028949260782523747851969679702488966220776955789856978733056001987305750196818242427518851758015612459273851438291452021612700788701349714701701233415049882907161098443452734516085026673754313601436577205054745442415174748479606513372385530491922821830887448380704699897706157060847242858547452266526301209084922442729722909554957050704248020430510872685282211315216147996688888904096568460875133556586902408807467017127309941463393940150562539252991120253530156092555567886092658620855002079819828186355130357009131374990895638356701485654167021108998040348902286898989233418460421012065883453127481810053852154528436856157374185007147998521681093238017267211973864503581571097792334933737624465746974575606701667451843655064655808749407032879446174539733843134678356910264515715506786524064079639505792624676068025113547049605935811168604701825766807245790307982609420777743738178763595577397434278953563631767718164628566597988768609180157262138149496937904953000474115281865076737447232263934908817905143651536725661292554940618843389987221323583634683888830256465562353203852910358542586648483571518629182960379466656562712102047779320023492190754798449206042784359149840719845535416990318836904135019880365495551013236608322013981914790670775522028750198022248706513260996332926063896917672189326806894755160952532341289348158520969071170252887242257349982087558470914754734860299485399797996638982699138633295120865768509283387625598414711916624114479310031124844952081308542067048858820361326847614173874186897077522150416841001070788307566921026532721380659784988184709352291550246793272714660603343003954009401137705131061653270763167093670601360379220723855780323709878421477259278876014160002042335896162678658076365349111219941906580436434126978015289094768984952729126582220956452199358077748857367056178899854463176796099751895771589410482614100472423121862412849001857515458194207825517040957388015644732409824576730422268616180877795620359200777977714281594933956977293347601054201354127819196348542214719614868774615568274729336085590579950243468437821065068060601319198117971902907861986774592675362316264034258748310299307395362916179344359140609328864252420269583195076042241637531225064477011661342520270330452191492439951033538304982560146111333221169223012282719665564325348357780065492627766649166707531746802481999268950063663613131239463918715935542021772871527340769154902738692416674257729632001242069431970640844242644492604878386164030439053478517539394690336760973932060452794772616010902456463839865604721107322514403689492785834914482841348182203573866189094849197606688338614164999780453864713259039980409808691975122964739326502667229625251320875726631251548893649417300912642940717068584738991623964724984202615699354174035813999541900260604029204975177345466558383707199218851156230104790963623818222370019782989362491624299466539089574873058891281343688142431700766185699933619909804439993507356042482503694100562380695897659557798814583287703218389578372586439827145628992543754779332010213218602835416928512165930188730293662791007974964850229218174497989633489665480652645275947461568302493671643189437715185683348234934271981773035418518459007087377244692295638413231201980994225517011405458611912812241023683764880260713428031835907546996780064760466279495282083706555611445176885497763903994994514157950895973477229050128767064293048716702467359727378389085453801919694043283068300729947157855291069148084013044758644915599419304882657217391883610996273933202559005592022350830404651894288821469063094740056709846261543576583837893177485808554334588212214143294540051493955529529783926803348988684914537435858669580615141466982204824600864906422311979473060661425256813653836981930020721726300762258490375318908646131136903850533504309895006515155232759922672803108700130664107394710626954954034079355666006997565478013778682560638460705834712065847714580146593593238740163889884976668421057993498506873060573834648939259587645205667241758609228107964164732363457159213084487945414302608337352791333842995260764174136593654483410339806842613169267183728752310049187336712137352241537803329210067966693183822265507851214724389323203115923902305773343778848538964336769343121451883952521672651132991353843139872310592019895880986987808494601561994362681468759602311844440155743352867962649962867302363956027472089082466905767011848605911850697226088471818282621728558291488669646278371993178356699781276806823779478418729073927684664860488820144250418738084293308027165307076998557082768564046980922699813525398975854448385000790733758980790808000273814131931120857511912557350066161198752432137605342460507172626184997270253260505893072002068789304867362848203020983326870825500761087494905583593204069439648983917420806252845256994992346404255442510888216739266774265880393594438899417972258894360252102573971813945222120645788989795117793614342783706570013990970290829313260782414270218318248634532435845538236629749566942701270699651092398863804929515796984277772464623317070378557680863483519940641246625902943091257590144439016221248326727363823581126108490871000057184655317166007038888863646053522246624504323914980235755519436235204171227002215149218106868749814968570707505357023708201969599899900309955630140493212512714427276003866298800466291822054108947170401810304670015624966632932784817836871760603287323727594459529639864124745620085552808608241152169587038395010705568936488139171926638610999360302306362123962421290907391786901991961063875310905846110384860562736956565538253341284489850146472966307730135943535691993451076021672343236267257477537042029084391070352713348954636014721176166749153657158634720997753412496910632110873551748154506950220762540182982425016711759020313059943587938836229403317334896971323754514248799698023911968381529295490544862496534880267335022991418254695875348820517932238909694039095166241551898213422169719644545019522662060104946019980437331023449454200409178899200651585327075237534716952885155729709606882702014914712954798452558748837309527504849907728540250122648572131749593515887918018353531067094723902948827878755732360218313855643389413848752424275301847437288109863148323393107903455581947290475585160328279916870785868725483533635255917678172141179327321836311297127488488570318658853828339160080755002085887271283449640026903055229315333299838187287930959957714996030185701613803406400184556806135848088842263797068802881668876656055128271629265064795917581722458332955541987521261158489161537132776571873573866004448077182384250265735666596935989225788894789618884516153202141149309896182417104931845716951058575373621618102493206687837036464822934884867172408022243264548509470937015491629561128586706371608375332581650595113430447579776122022387360174477443144504939722308041414734385688561284178211538521693897411173929069805533598038644933026630173737518595005053391182794776139031139457452876561590799085336326935733820739922389682555621676596484177286404654550634155073161113642788779327957811297890764962536086776703715029284927100018451720993835138742721847113932639696477519147102327763146112774608331679028885977598071367312798183090851439589341775669797200744760275607128362239752732702173283163554167469015961890697255380934149874386938134027253686712264804738308930930868208661193297588829783306956424590068922950506179472996572233625327834150563276669588435638059985359691753826102270638239249028953035672254380297112119998661373546877668365946067684244740025078450732813580168992516922519006584979686968740841201121115520711754221735125481650348001431983214939233740643047603954439164082468127906403287889128973483578183821390423569240507573558577389602981250273424257630390601068046448422515691957393613689462021689889335906247703749698619736036339114849263378358866665763904740895827396100714805096056857540494813927148161464342070558855823999234436941261800356945443959884164879223344392925537053768670627167132831905033152209987559236753295882428083684046148515340503460559001243554546988186342202017005912763685296729593198506057752742634577934332143274540950080921766294131692122935342014855546071563073926327653363086159462683251757808029900050420949169584625872490444623915690294954162502366056145014019932705759940589788481984283952145327772830159392539666637515493516569457529465211043169400651867610142480940889164637759199074244639888500326836662539768835973826106533170409802849939257996466261451028498455347302189828827109157863696439161627556241095819382771220072381288623507834282253535760770595737440061866938707300891026735693646846402063631585589324049202385009548525216874517859555131739616079448649154611034722993120065827687134344578446146294424445459573449705196173558484343604662133780475134971014964109153050790090648402265679781519131578719544792148395033321604534494307585031792170084021719792889645526280480885636552864021709909148135270010753201949753717953438119412837555823061903783805205475700153649168733442544044511097342029923146729365856634789678468986966910465389270591872065303592710935364982261153131971243706087105510656575949391315517077434400068208294030433206134089574664282884234519845453800983956994025966436369516172968032994621406935063325623297094535066700824949228826826634498838638668742763278019376124962143669528752971000730785770281632507069515785154186735171959446567624384855708057821551297981640479190030670528719213818469528283847344969756052648367456651299417265641221922058465752378448987646559203282485859924643565744490709018926920467007798692453700242449448473790447921977248676146223692396746200059564098660642832251078195512535450939013970680207237304140606610783935115532422799741596989211297613452115406854894627672480638182334582056341738600321508588183597662506621462004641768194092531652294635214453864974077976425835234836012108726698898470107733302008374927328918020485352520851167437429070154568161501964277884982872713026002711735579622151146353322073844076364441138698877107987477134112100325466000330909180667912737243770638289430749265065526350525355109539305043384214223958159169470572559853826431664871836056628652921947553623554215169748989137380585710557836151294943325730066701741619498091151865937513520859898949516380372940977965020902350534537748617786446649864692521464058174822164780555277398706629185206325361407452186287537788177130390359837934896851045637705112960756684786349232272882589262403453248837362463984904659737047308804299649896696610620139699972947882318812683140443980672527485434123471489059790574423945541993220116460268168467054089263252132459258174108495540836994650172347509779903463970242180505793159422811870049210987962872438074802114513381459536175928991408848013463550943206186740542454496493322142723443481174968661388976692822989201978746870195825696816488631107433675628848316427091285079893815604217861623139706330422002455560929247137841204153914176572692687328622545811866372092609629865025883507102014039808893634261795958458773092522572986860334434942744947255732580789875828178130603915482394854918686739627384179825287276672408426175991244374470638745739348588239183475434180952674418940031574175752510540247382400937154595025117703949170855346112890755184897307711774165976510425511819745856663268390170896017553578361782999243502061902281392598508592455376690417007761467461825036343220910677295731651717571055607334682150041513974595296590802088565026343059053537459553042379149809512854296087387075781464874470643637530753355016534568303035441827023665976416665491768187891393925019801421619027751755457667334058276428504115259557371422285698787491072141210634836181419909249571991477144052711593767295021824883271399803377036248941154858358362128758312612360360543878134173734688049015954736617758796221546366175224359321238025580503484724804362029786766364064136840325224699975011181817919268044615397665486533163970792353686848125730765720107971995612570892838091716683212867589628818120842903773195908610659940407287986612797974810483048872115136970530096780432269904692196705859902147191165228383181077987830930121785192672647917391908495741874936344732757538607814738165485390368852034236859538852304767188880134161853599587883668370399429050994158575873145886618942865824471819736510241266019752370062022733496129088274937120336847613686634666282285496131751091828492742367314474169897573430523512938451479166509077360045951359926190140322993744575310238987631817079545572521779385854414981553768127266487128878027743757462750046716317120617291330397713326364040122276195080182857750427316786340049440788435151781478473702725407190065291346064882685354337364857586511149302791384632498396544240216575570794408913866748146183775503738855252637348679930697452386754182984608987003817061745827275463429840640516834303982978824705391988080912749275795750492724356772915834055442845505522253850025396147589343898766834063268814971322998480124780980399112036822623947608417088799615584915565578852708227746493961879131349744857111622281854835303603984998160676079616280322586399112498939145536216969377798488332186109954835502059884985387931228736450746182411940348359656836348651843776664999367293994416736380898222864563349694831740484141214011490261515398047933805012602214584067926321876016079371672666535761154285027834127984197287210233749641961359506059800827653071221399392346863881415645925126228951123683049395554478292802537935623337495320885567120352617473327213011667147149284613340664351457516704475025089608503868812800665120833353231857770034409061781907497858587498227910044766656493964363758122429706866071947780226686826678820133576618704771485806551759773129614204461085690506923343111195721642463102920747630084512434696402272037587521015107481857173820310688104464980761869952614664593047000044590964681472725171806695784031447810714677340554520015106229631261022794294359797070637473104798550080512165693495163241717152469546120383232569646669392327223814597769005776014893515214175712296711773602982211143034398244816158478180703583939818799895633383298835411342871484045111946000584906375821630078481107323120403274101989155180309707722804420210360497450447585504585369610683914558878912376485659644443288823080229257888941112405369525426804642814842007954145394235025556463352187181582375818046393941149966039409351221115797151045949096890760609071237904925453378713189581056689811573888046056986073372276995203001314508736685818243596882181017829036969608443810805458141982614215139817368353525415747224103729209468421251608964822680295963614586512627566337079920836321781326028598144731909152587180596112047700760776631379801330618651192466695972093288103185313999606055081135246354415262223668421327053781945130826234669705316209832138484690063249045509186607854707225194029069325602987368500810003454586268734305847979543936375771667400521463219740717670849864325690299085331083063719166183624078389230730688373936727116472870611369638697837419169225234954652295973325412455505391277211008222013793493206731426289730474205719290664496235915464170614668847682246829381362279819839863206724522687246794443580678039384072595224840144713971249265227749825954927277489146088088522279766392921754283527412468547696947155504320668984265386086079395506626872547215504257932840390300622337137639219771713230026860478261089913839413757703540233764431151458310259568972828389428628782096049474415263088950664390195406084306437738031083641492598896930257268516629600470411154277111229482266454564119722932862437882140453257610349518616414156781224586021549142158098179112327088126323640106443935472355484073025686539638719311292696202815749831464444459244012197279928387457162893954546897623661629753477143951718853455634707228976197208589266545575003554267158210611252145780602689222194099176961945085648173122843248490837782722960544750059071935173522807941116069412163852549777863400346654450094690911116869890376215854107760427628940575078705212557366990367447589624199545555671690234867210872196953963345014001383245810040072861826800876465503084007421997532773308291432701878400407344876217777055290392794543928881939272469009951013483125988413165540865042511012411048698145177196651353031723576325243262671718905289958731679487003399961501705192699258744261230364263359738222741340085490941398728193963617038721599485710663351934759927712209664719736626749819424446636935369661491531847078088894216826519014564678910493841092741438591639797832507109470536650964474326327195673289710929104127197853061266866789754151156576215011408017830658241857328088917148883082418334888706232398959754699672113615307733169510616217341290058361190020186430745279864895969414851396314886745276413344591946315620040945838422138164815352313615211175202060039898830456447469150928754080188448347386630998168220526205410645815099043067030905997200280872682372775932047365061089887779074400145556925801160800078874631358164705619958632341051743075203261287669851204573826474461275721831973352582391342078351118381904528989530091881071061467902602104416659024158179333327089744783084702833708442885370792636730382839431686247033627160477751834853201142193751707105771315696172347559545583178446104491399961447598258888167371920485323335777602645795489664188130490185944200173156828311202313552164206235276967307526078849933996157463965494900563587756611692396762019905778269517869119710734873127514275789360050539956630515556945159462198010857600071840113226331799418941327164446782170717442344574398390964844843611039469269019263722513932371949287697469459750727947257099031003738249692425619066052755549956751148276120357240580412414739655993742377092016595345282312135833082927993626840889521771818814730608852226507095101356404957105561982249666211261683901347624458657639529568683438290143927304885247529924931233026914514006865131714632550892655769618438695270619904081617788502423943939463236059061191344921388175687251364083004531546866735805677183199321697614322732939982551879173461242245064856300325020661775432138089996727029936381780780314788018797189591225031482243902067229623018833805322493143195581871312850246325876842528069304356090263816634783695478205221047923457257749727057467871014436568646167556382049827620657321400555663020058861465099155107472203638098781953315645816447756725942492640687543053150648161433258446081664847639733252391451860615714386484174195365420219585578999789534221159644347994728667340412804750008613099206012119610367042485201886321023492756740379677745483809577447132762344731916563898098147572324764310931020884773297660322172265231167868269262516455613924151658799074619015183053461282072321431625172828634387455065258907847399566928299765284628000591390167705417127356048262413864562958319112010053992731772334685711345874103869115458613427295659829180648046950588981457291018999648933671254596024131437964001395009010793862219097515022588600969194626913092907357487603414701957997471277029870980755899758004238324242031195893263350131372563102075946443405637390937647053254844696508338546294184051764440768626402147140949657479016253725012038193417853716158654436517882638447710931290363878663609077914581123715883327319069561128567605838137997357993352751441860875271665554977736257995116669221636197659736082381375577632220469076115523814265779783358246206526696396694818933826384047126691768622134214624558632590279956274572335206997815876920938164889908752090838768354185057678151340535953142374858150040446496820040139474859765057719864049061401892278954300221337554892540465872773709891648024934369653828368062027544199818398612057267473178831539581241174830986172359270724007864472270267938875632748197427934512834064419799757944389782380318850789155711870177319249708800639817030098997168170677479265245746175505093706422582545647793670620466589728298693556711437423792522418231330770774083254476535719729546768797307928359017568696809490439874509421355502850256129657742048527938316974614060883923873143622257697059774475056819030194532532085294710119798362797921116933878275699786046822906944822350009035238411301254036534324297777542775456021150510485985784931145193641441821485499565530931398170244465075314548063028377163303028139749496010175413177669926661308284633356961732711160059960946467615161644382257553481116642450044426691385685590913457377881125163702392744310202832918397412417200270632295222546131271278872225039176523403897223153881942180178990422844999311622939504780602184184285520488439676632211541306912094986554836501655297147011203857163288248022264377059730419386746384380460121829928926121964005816801303770135035487554278983033798911524602016223088547357325797551281918769832823635568816279856596363801267980445574365414929883482649912864246385961314215135569904012398392635662080259480580160669206589594254850512134307984381221594110157872435982534238977448441878185876900706577844169222513038601994655497712016049031808696561491321017735653541198201880386966593689795175394128929686044716447314352775275687423240602731981804244228722491995127276522060250576815471352089827905303348638399001420973015913790750216760882466129844485688988723599356406541061785803900863674276672573419024960029823382063145550365843324971480171566986300650772885040942840944853725339670781628809999123967539785188045014136093049882380524259729812473122379546889587533398607922950018053936233880490570831538627897211280158845100315668832683375957736185543902694738197273404559909538960358522626046013397271216560162863928817651189129966876633413488457194329712519459344719978868321767382831740351250506045961895888788846741678054538405807317864953420658241122605349625507170834225451529470654360511622804757609139405251531269557158627498876113905527532785882671572652008906906577687255226290490401070998164011150347147002210266877021756189636660180533116657252666698176021559357191937313497465483507500780460364853693383615509798647945260348680425323634820790316227899724765982838207395894658985598214389106562032385841583505622450816176868151366769907937973379623059115250049562916094875437914525458549804377635668558149134111074594045213237450387080867229858851908493463760859469267704522664653628965823368155135954057426750746457543711413364956181065965159841119238445100756342631561885464419550414838974366983579662429066319004602823659959271317470252510504842018434833489886898639378162949190355929841482538286236651794193904777526353875983181108592037714205194626967166667618873928499488583095948669628262921922591129090207961690730824227724541346449203564326886261504433123442820860004852660615663245235435558178985440491212895497100054533439937465318175042756448612666052576705569458666109920833898085130401567531828917590887178446879691568979886014601359237670890955627163669109258627741713509046177050982197934024660576413884789913224927053774657285922243364555741988510034852127965523441099250772238321300707218553126462415402895849034244802042213447170389898096489843748979180241223611890573913288778652320511912396618580012724295798029612752888967450186661545680849950013084583657686957777167377050927614131585203503810958348458770341469372314014783326860588234124718521417200812910264312629130892120137923531978067660157413063615988797594438647076094909590423868949438411299630982740677613025587166881917745085827945005620704126481439246748893996995468079875084364645041142860633202842629201539220935315532451097159380954585805703377060880784615606360568472115394746505224723717273580159263292079811641801035654505544619979291410055064501167231149005813175656270773319512495746438443102755625793630697967200313115383224406256907025309721970971016636019134183483730635888752271349540570608862765739003272189863253982280959001236788714006954513426580345560122941225111871197635444164204235734845893796453232321983380168831488154603770222710423190684806579113820673812835782305809605421139961767667121636884638059182288380495432886843262107349928047985133099000538635950471492301283803139837038252871856708965878194452100848652288737517504558151969311689946152201627543395668173772351156065125820580279604349386948861707091079864821347329363610793018969273606264887916056820286749968199072767385447660542837525025689697846680678866862094788619186903198285880872050214894737393087210963382764685622330294956163907241799417122944042524481709226354233805403790397435283416707681959679845116243240191123251761713328252487480688705014521236214540744576230248835749354213656048897017702752180314107523719347086267898588558929961367180946743088477808354500743234532839876379316264338366258539114954380428593130876415966711502737765069105237597963348739727789300874344148576775272331984536746861854110828620145683792765044378974781845871432583340405702179276579061200321890372956997740984111411300820136556478228766435240922181050987720260414572912885516941864730432475732782368431705963496866921467726652866739228416097541665179030525547556442795316596680060308769428688159315585955115853816055464951395683606050522275999614280632494935132092840185445949807481276550751995797810951582696148146271933793434753262212997744437661819612861258062272980371551343786253907579300170406018767526264185007602640019357720069793456296007406108046519626290553157983227540799600925043215384589576440201899915332813403680459252360125351573227042801747065652168386514574095977695733585935759489356268453561543541625254499174029185007173284269166906418372229829918697465856888642194384248116582941726811094051577426117393389169651793176932336051268820616640634345656711265590665790205381925114401236852127628687871186805736146116461617597171391072983118953890826683666717604623563522974168998537535629500643339189522120625981097107576711220764982033842678689348784433163859892714662113781082753419276829677721709821318989028847381770150529725557764453075350711921384359626902111965088928822507907608965961484326964020419523975686068354429309679133644194618856013720683175775085548700709733920614946516020691020460309589447513594262657632472719165243164310542587807668241011286866164950932339026943576251614730756169058555586761397763668316612943435278063619503401549469599343958014372058601976161925625152269702829661648334008808883535554491436461368606967700055100544866516329389762594117495705562342435593011046551891975970469700755332916323009884778212232884668931376118925857834242575669263174807109036143729419601821755965061809368705758761745451126516636946310642429481534654852416799257944144584006571638625333894515053778347832196205625348165738405816304255175618520945151147238389509007200797344140684031950960172550669430714938313181598316996230125025465165888895839076350128315306010883835189174032246686921867936687276435465071648845939353452088713619249117045441317676313931748888587245592327546592244561926267381055348574637935597136385458387055294092256510039933878360794965782398158190909927704177953977238808546200891741424852101414835308905926249581111707132031445837759754535452114490834646410754569098919767826602685304806506056932365404204939719697265805293632973270690886250864372290970582746969937133014346105715633785198802878425158848164199260593294121659472992717102526508963484749221904512932943807809501944279456069448898062938222436533270445011029660597693985958716352342636205746311414683970884247993980025778861617682354809177098911819461395756314280774502357882429528518762724371384686809538562303460832398581543957212819340027701458428226090790883264263424724646494885488876205459883965905187440747779916330724138016998861575420363609189611825240375175914910720927441018802087316336748498185920308222559157303457054595251681032705793910195073521923578465649346193101264962247216097826850059270898672469817954719564855948065645641652909901006003649710542596387131220096254666326082129059614934539416455083307841008256196524727386310308282741874421540023503991789092983017986436716112436517285047817566104630441725327323884609646115360445036271256632773386341680847595466495021527577117193545386632936073652400123574972324458911930737222810665877960566986708942137126392349376011190272973433445617080584290028570769070310191795998874689622527261487557292464081492257043439948361108566693567366398800515310002819287690420221164730725029593805381763836331154506463837069038872922888905665281118281200575005570739143984964872191560695649745927548132633995319188449908690856845220488143933833626538948628973858979356775102704620344321315719149411088554267850195428554359690578139765874083461802435516413057297730745320926224203206482989425860084441905735525395071326892430125915221203738102697063193668464856996965502814881777795573433806759129930943841031418979964622485833604537584268461907885204343474401097811233642831290592246443734638780333930999750005451581949966986307685817368341396508651668993236316292772701661326729245766845577374841825411744134048448630545655380301752353741410220164139327779494342236857460776294378215943678309009929612328976643150068608738608383079821057376715408278817491984700112537158491942006054436287456414322064732351191167896116917645801712295217560449722327754812102998471366883415122638160247037716824799864702834973030407735375314382027593590680882097736796209322583600255129240217060886454339357910694237817892057787182414231688424038516950117852863259790548982996350214727257845635130711107441289038933515884467704143430114735922213949877493894428118948280006490033345702496570426298035764842850516793748655503380687705400317712284293682254109361471222199251872671409248845481943455163323352504754498755586377171288019810944498915255573960449897641555892705449697667899081371825527326103136407807254186402036281792696769895258038469736450857074922654680616472037187781757537540112560115810048478689801766216025492832379953173699730629953007446474107688728516884978705059010249356691503502161189588881898110916843688157372973988268666358914210919307142917001636306322111782989242362363375381225218466020391753015588619462146095991627535505355147249025781386193746081925751355977510515701661778909054500709444889371464253607235324057525127084430119866304833909580076337252296531331901256848085757476618678227014157825576285573687355750260491390649808810486125070968037750201969911965494244389644738106953128812906540107955612081985961199648742799857311576453399085512415676163716643972069271485422057674626666011851160097134619079716466930291768945733383589172150873190429094083328421835094995332333775923012539393147178328570012831285780617382144537069412321461771405164334115395768906327419172210430092210791434585153429702604844463901062416492214373834803190777824308352919090975952429085774224481853978891540572711508936452270258986536133061085556084715633119892995281351095872419126882624462267751833462248459991058128545574425249121301546747383888393924957222333415942578501734552090528091280583939323038146380613494071803567263142108214724995651012870847332049324059758547566026797295288658966505824532847053082474176795214374233978002689138039425223950666919926488537947098749991867143436438065097747441416626727487927575254339560855178334184877867956965245755240834023500978295286832194186611917188396865223499845500260029742989618392949035795243752646800472966206380425163500899622906544094292547722751855876672149981621439704801191775326931579774634353323858587667405038811269774925932334654152110625764512426669252003833294111658089209106740218744475320646369115787562543038824701971231006833104286113240938886112882205703593931017455526274916170038434110411249128474333502034175644438620202757157110657856803229435900516975574275118826719988906868375583017501735055133736386566191539896915502490774703186287468683176352050141198631082281056736989651225164161078770972748724393211696324079077483255401312216542084974644120707092336630333229841099010284441347751933476754775115497029124027124355983003138385815196472429285321679941619191448049104326605800851936661820569072295912249288348246303973243659826374855964502296464678299299764614933557966388638632453521848562708328242767774002868273682377515723887700691684713358256120368042136433867884165403853955728714119563541346262903346505455924173610294296836368780700798803601293696976351228524558044854403297959097233081276555703676169299487472473581467272535247540285586422905593274010440706984117641954250483476773904824570353346147622122371039624451835585109485455963589618622326323059349760037662314400247346499132843646999402118771140601780373175194444241860455939962077666288225751488673267847239152368466558109103408758078893341804421091733192507375799112445008937137780026672432182804679165517770913718823315832112026606394850153151360402802494762797763738584831333023559320209193219417032040313898413239316200595454231430090934323987356740461165868159150959728785825795601059985798753502165668151279641729843111363413058085096995139848123554383201120776750148911221947924529132090825986550824732782601905287242021278144166375867324463843230221695701603465131597435438900776587439287662052981511853929150242709522061274373023524803699745065262020571963195052267402252848244051662536977575471292845606412647485333012373825779316615158897062810543770345752750767901160253924944170832358595956192534425369420856292687137857516744829041837911539277297628998545957903361594121878709408023578442366686181885405892303407467994141283723190011112325652175159569967803409605113844554290072163338599462719071121784114560121888350212055708978149986183352363834482152761303980894029726899927416005692767304975930489687949240633016408942575418288163976677249386196698809680617028512738456902534056183657491774263618168200168045261891239151575136143034910382500377816446276064469242703955243853212850997839635706682738302825844243417018218206360643290097002683509933472840611775456101967979342321526085374463729387704508033368256880069407517991394776653619026324912725213046451661318074152117587339078136792756697465884204639786871170419644005655027583356496835423137477442962399016180291094298605003352908923626826096038798383364654553277408634850874776305641294746234627611665828256297256844083043278100846985667788828055366455268737052472315435294776096867237802055764346705544747946311208930143261169362956622196077487370171611790177219126455123016032741675941507805014244168747904343829972635546953579121896781089912337895721945353932642319545913241102173406604854237812550792907043152348476551632698286111898735687414574872612909849370055682461719501462595509407908673603096290564109550145922350119620555548339718368982291246346890193896971752751014566525718809333117500328117560236428690472273277440788191074492644951695368008473879042304081267016625898457267798502344211516727590645982032328295002616494608272144802947077913616528630135409744650226206828159703986186448797255775159860215758378856632808297007624634679708358578113507558591203689677762739190286130384779193570407360136251287247784276048045851531490120141833271638608866677827796452436476378920229787814065560064250792181308318391499031656044484239422899396290345875145971852995779759474462763571170897688941973177085951205326809485255697499352594559048649541144129523433839917390820920400861958034081818093140757394453408816682735611117304953298424326425878304719643325272811969192867229434208560035709198727850216326491069296915807551800273528208740279403760885750484411062786923482202461711103561565437385084733926863298655748101379275687591252514447626926620580851166496605291608568461195524033599043957270576604118771258530373940110769956773954390184202924296055848913209613607443604406187628615897756890854990494574879052248928680706740651043859808111437686044509860329606320553524250690652047133044580016188423057495881990765006983472787169936230365392055546943506073338726602644604223362978653147302318751050777104427795919433502715131580362660723763709042821408057568706392020849579245824435999919051730351983118398960513078312564905278580495709330350590671141443323974802012539145100629394142209124401763891622292787806641416168307468587628807257579669338776435418820425040128493687417583893511774739697804035312381476824481698724709512120565021073960051769449959087576889605739003135394907812439483380375569851457756927741710435229346587231320301844338329977627430092682222360943986886623159243803266621455359662235873733140194787009513816673847447185909885065163478181375940542220750797189052872107885463186224285996919136361518243001566360121152219757069535214821506631641800045626503227060866004965648755612889367875599822195987670241849984609072808086029237337079185735850641411062163170011648164971056852052795736129714535223445048585299956658577758937565354398766510504475479599221799600090372273064809597827843669140550599145753804471504258887623176961897733161159418043224746629406548220271695285861653702722581727759898302830128801142790374163745776129448771976266297841731736905953442198724162842332965844832537907840490381141048674914729587913322441224701035359693989967197557412815238940768584870701320981118665052781657071730464148059368584119792290776090549273343335283164921903642768621987180361256233301247391557330993986953210786058694135763638221376054676212031505137820822811465561261511694335628167612107040520457689362510874606960756021133727194102579293111861958706966254259089962120733907670535057521525512783949035085195959204373086997029933169594723441788622403773981539298870451872522913211788555048143687615711478296566504973882115451537470484650971895591159644228469741517494805762021394933390551008188283402202756888491349732377086766691791894596455989612780489854919259886848162756595661303868407936925140956258285731295624519205039360669464270081993027298701071319902281703397542300463696348964482712570495507243556352523978916113001590196343428360439630712852625487456211816756850570982159477303318997773909806816216139188464644107730911659361159261823378637762351273029953118042913745352824099968920053217807241435759678612607897545808052203605384348618041689655209373312812909234567260182293554555470932004976943007601422753784104969925282656703205611433337093121067878637800936104457157891246359356121951250937763095692602254125188089045499496994262703380775997727360852739310692250497861780810296901247188699891698814853519591594896815774607467767072064836809709420506301090390300746023817455270469741043720940440198619809516480287505553040728824362868966618914198897842536521825591562269361170501262757893569901720907492520542807985644442389750738008300255401932383548960887654523417497411604340424680771586678604270314693470122662106522442138283006884804552506167195818928057922538291805446461296396304022930859540329794991544134097222199304698732654153172431193258748027680664767686182702853606681260868323175736594677414580206646359193276059210589505700025945614693777509684433649000493859331698464594625546698804964929790371212924788367533440365809230983151537573541626181723852286492517045233336009220241381245951367385704879210836008818190626467694898139907643715270020965902128947181526866789077072221842184757425814998411362974596815609989598981055305442323131199599072700287320135960350474935782152448758263378840518010057786917091955950923062822921569534013863676307882839063050748138614628349683234562373180683004037546564441229249447036534839699616263950251143531383503469206173417708762155848689794625475316233512729858262115702701126091571719050356515564852369527232687604157938482458313806738917064609825025613279385150316573619177364263300361720839464175790936803596556763727314373666799518127171286671317675297755240403805013727264931505234600453942060988797708387162167462314450299904958301448637873526915631673949643982478262501403342921964208770872783453544141606885281002710171125113501162793847353234900612801635725526188542418483167389510562564060005665635346769186314938565508633230028593114670992229352292899996780924529002343873508837540085360576524929197625456876910537117059635204962574516579483684993055815416142054475358707656096731815698959105865399904089653821621737072694084223481521075903282095128001736783144807874489465693586997571551728541323493125114233013394499248087134645697901873315906763921958908573136712911156247507009999471933100394037967871468164479622809262549090771467743014277160377931373670586956763423819125940025030938452349416753645418349768334800967512139703448940522438079999619750699508306383068475723805765773861134783785568704739135019543781395894795379702533260161198397640136646653372312702554917724984379416960106172289351495128678161561998770516014785776693420501760515559056922064463176805678076142954611123880934900020962427024934843544999809136672948817247376911562780980483029362162234105125944418525548811801746196779642398078378345301835792272305869638649026708628604295658068015731492653436217300787931739058380708010153710007005984801474106282776805731063820301095878059015072753149868660462318719747222613735845680566976268480092603084610358082091936361054943746181127659600827592857764291095731388618878655589530531131873298814336413463430463834751508867633440777040230397758672258900431688447217150566721451574908562441200774642523371134165137892102456950186010133190681746253181577733503647939839261449054491714674614669986019852517814694338572479405709812241622972531472093402319473329247586186074269608773733095264171656495128508945656533501279109447399141112713557910801620952517652245442370952029925576419309065581142455937865624095809587610230380215138726221721040228031748203514540043141878975882369791400607391075421211921304355875090371769143709878888258021280131278299190977307260201141536776390117115435887873617746731040274408310644323220120459983074293859916461132983465768247449500333549761639391965457543030889915962513417721015763352669777693728003443612571636950192608785151565106783042458202447360014075266824416984496700601699954141474495343530316995231451371468994097152348294976177273342569010411085559654325109943489529758017322426567161607114535977388602363602990066252471212266058106731958935740746542194398707145590515843333968978504737653113263346449551006611963367443992447585942121794311093750452967643152653448173950581527380347694925589207726799152907803185484535012704883186032129552430863368556425927366624244497568394282938117925376621547474939973759563382512264362478556236491661983583363161243467349259197433934067433870362475737597220283241873375087570800471052873530410289664291090314313251709715283316926263797190773711929978099282150771280658188662701763625524117627768561785677858801235700176357390981693728715518367969019879061185791687925082532530323424970832429755285927658506393215007357725634683293142309615677700727161663195405219054478531639067075326473750648717102193825679335651380014959464194000445843942241164954313715772825300813288078666906573888632313503736739688528189394959369077543692476629604344895841105913361345730651072526003150356076133206140276203457985031438488986280709264039311270058100343309764362821297843662956649312361534863191404997706588366537189833291847308223837910760209734057775781525485784741008043011793002944832580439308454641872164374989693452702030183058243922019747878457649805063759987511770212852683563495797232470342558669967848548990361807644153721433050038837799377765706964171572300757653171716593224932815585023920106223259007827138195249341212646175110473713944225727800646372053824383930356264518915625510259709821541975774695045901584854853952736799248211619495998355966324734902184925479825384921251292258220757185653812916065437586414181683329658567410402561222017845227374834069870837497988831975921748772235749760112868539849393730940225162396392427637247539848692052996098454532833559789640619077236152958258700979652530730017596796347534048219383150170878499280087926801500572252040842516417853780356256743596799184155241687365748217841334908365018590825062874919984697007632615046916637766426650278690477502401359035436049134893329354968928513860702922458654536462214810576563453178970953455591566369033507066713965231520206965289897558977808289930530929873445242569120961677931393493538810322465888578006132444349054262200196678078350367690318900030502014596583094759144256471339924927792323025575685496999203696576841828805894338266183681275547062842423039015616973421607565678821657953349626824264458052866074223298082331340244546984276401557446745222968365173837149985268993271241348674888905925782127727162980014189390686411246755370851606882989531272985434540417423000450882598758907554104259252296858709039487099187582229070349841876614576073056943713837584618084490698260752303806296057739961314244969535668120780058071975236394467959110128129372075985049137069626049450096519617840272071453366479762173748781422793479866610189812759180946338309825864167616396494559444570093681165741174621337369395478362489775622198155826095392813692211842916313700196899597177593910515218364834254565860353306515690494918524454395356366037959728740750787456983302572424073183248004133469725552774440062108775851845376428396501520779802445812807784961897467555735623925224869955417673081758371454696188493160249036692029213549271757105841413850489267035757369924348832021435086308302641324311565811465527410164846992388368512941931236390823252035564654321469199276077215811792189746079617956646332000512397612290881765923696570634544568502251497874846483924366022449016504458678125644016422569169748121156811217877130582489923630123099161554709264101784706893568972951199736144235427987734451543360104842267532313413099221422749498265503733785798877790272731378450298553222398539491812603409288617762766775184402377998500277686378561441863023683342174013714584968660183073556453533684863175989793453704493844536343192006886977436977261926079926825050424138010279756690179989892308678353910200676325706620125942515955742933757964540585981279009109601399736405962882465504627299326325547807399364200514132672573093712902829014594251699792282026278509351370916464009222287719409086309475041595597506006425660830712415737765999833626869157304588173619963984130018901963564543077292756030763063217020874062809407125017402672074202085273595051610600497621559642672568205654588862053493858782959911427493425137480793962889619157420979141605538622213690862968921152836985079195421179567793071144365766240781698837824199362314191516337135312338973755619825538294985995130759959980785835469851116738423785594879316777845469405327099778976984686165803193491673876507608949314311337928106868982567982550657148438980495830432205416923096263168427968071815026411128017466443569214329435167553895456994607687155549766763752029857045328669334345630265188197664732890660765978857015155710172603949171415028055384586603861389168732141315676589182790986135151394819620741346361675306388647587897707787510853139063092855350142796759137975151253069746631893807305256978631598011330791141491661542525587348042937330752243348766187704781835030190914007716419176980384499870040484398058281121126968996925951170698830117468881679143074963180170505271859296061384538554681854888535833273072406927965313493053257608698107828581750657384053422710305735413852132325382270351419319971343746090262199891230157251954336918546044310063795707943456241437762878882255177418249388472715848036902581369853811659437881579260249320719066857526005478451728080004156435181527640889581769834098093565864794433174885130618968174034302137706600182975230875759201668436322522946595225940704736647420973079247428093849242998622091692054018465507541931539522668651946796494365580352855426417394021346984709218163353905302037559058549364368091887438232799822898282484515218801127254977218349151978960653637636961574682973014095054865229997059554592252915583791812745180136272878480334854451340654303611185287140661192701559188256771493602307943559358311246006070536871810761502605398302379579099582427037623575716024690320396305398423801061350561563124509371889299464709112107672111631444075540008684148760158882458508050102839239519763346504169349924153984673739590626103116164652390241312556739891303349052269486600771297845338608934631531122897051467114310224770275167793644002466497648179520911130583059098964132884706544696767497155322612118942657430106206353182286493568798209877376059161586951811810900338062982225124353215455093373516950094546810473634119693197237343060198677294170629321980386630706020221571639581047812443111680161433073259988512941264069567303755983610242175712906756417104797130391803802017707607600345065170123209332968715957845303324702117315032284560712684918426851039627030718565972480803375937288339928731027739127955750606465033022105419107425297279809670983733027695043640545401685453803744489236520384894518611420054971780618999058195885924702055425269842141970287608633083880951052288924835112695692866637034096321675665243723507010639440933826541109408176833692680233430007170900734868005069556654579445616847966682648587853626733641973538920615790814116162522106048464594577411148860272758994347416749625849559412779353799086601346373048887997107060833910992973496183894143785699626806782886982211765579905775046150064138466954343019329970922863213713678390476009942776779989248854903841134870294790835445626879742081458999553566019774193022253948901060024878005170827677683037156618878695656800489206950910206424575297585127448803132257087966238174036548396974372884462206755256900895122736531120889751735932134698447644485647641993553753537837047944289119575576388147668092817917286106819970456701445088669205491024738055853663607120126686150464422802792277445411224317932043054188960881961126013516157307963442872960032402368818598116617422921914451947990281173514640690123700334500190560672104063477265067426938418263619974660738818509598190408091498581906934106871620372265565551335494639209140250648987217877733782835432001559288076329172028312344231067056427166928060377126232037338463528750908689522118001740394273702079850341202423390141886239302462433593242738658412257520491673124278727029115282493594081452433819382287453065864924420620759138838492265249139926219442304134631160813138619905291047662824830734749705696424794618231658327870891811813205818805047206664200518532756894131445961073089199483843056825909550658151332025415899557167765019283439145190246761675576330886494228010001180157074002437023066978032927988752851952599472231835072935687596865605350704946601231841337419562160447515645739167653847477912894202415409288440794562500748560704128805171934421041633048611243498971400913124242791419776638416395121103571119632487402496996913399076414583534657174503942147063211761232020126949317557905533577085074099386592785836047446350406861134164725406373926165099481305478870990658811735837839620659862449634132206840389550565797150789365466182188741608706393751951763699891934659076685320995567661087477607844003064351523947633541732434191085830480058314616983776495486007268221690503285994363779255908503927698587716256584128715006870810831574187823173413003200765823992427636347656766078612379610675959629871402578203796400722473912700100577222830415152714515379353159217257321752676989719717028854284783543869090618933226444954415287308283411818928052604046659556020031060702343390626106605660809599407387457753639063374038950160011628931869491217922820707075444510043229747320803509617335883133116369982506468116010729126826932815432955407506138096533088456878797614961568743116493513725859873833286321171258203730996320599967367706644703720263090883829896801308544128743584000504550769028613853961042120406435417555871035373217991482751182394119729326501481752188993177760162998785564579231221244105072206024194629401949797467087563680267444218600052328247916838820862417834666669530708165377851755071546059245490454323798024039719223086110934119844331728951830087214166205127448727077015284502305633347462259676185981809635473382028488862824632136238131228116232546641789467691108297346922353473523176723289234438027088836127288894213437579217927900438225421046699576780026655847395733816626145024705812441842107456084713952345417087950651214582491055274430819450530982215510983278852311814744261276546375059660468246811562638598123030630817731181058535677330427590369289400572889436394780469626453015151038366064474337881850893419165540552556693734970845922262743050285801344950928706299929983584245156056817107734790337183015749148088311638538377775683702844187492592626414522093401883742087602231351398974959547960070208839799121515918304331996151996866750085831923002616270238240222174547666198674066655657015654024398754360578655486437526231206464033750400373667582368697419082763368590258069789217786500829242258402097925838147934538101338813789452148021878078688933826187073185499386399921142738381978847062109721608328342820832700784411857324473689901532079444502688811780094193037177621653660698461334502886204637586094107815298133640479002213086221273139484153303581238617150468575059329570010847315097927570342138904237618031581222762765272329439968541482473730895575848392026919404419910699174554181435646245569510864934130074749524269298974790041163305757062875513728435021813736718526028795394624002350992970972899503689170510603639434913266611067828173997160546314865622316482431652470871019249750009291056024280403683967065990082288873554810070150148202780292382704710188632559145133146082899408229537180051988515920255090185088965539602070206291874941032522040405056248454099554913578138562097283173491305395563473415566401445570693367270829051587997518506137231045418635019317831914419386345917181976002520896637684790387026688950620331490170432136124294866529647859366042244834225794083378812189529324994615370726720357947562826953500016906363846251880626504226904033894009332919093000436837558977243355305728818280021586602883910260786742102737714490974489136323327055947189607740692865557768297636747677402107235658276434241024062530920356835445679110233411300700262348641389102899753100224356599913890567753247060912295498597763324827284593525692606549403065009858684126249179240179609733994584651287489446352582928488544229276728657485210442911220014015495986904144576663558791792694594166508193814828928456426594513653311838506999274188935850297671284037324341537371415270720594279896887879069117863210308028686861484976118890546033131814764337154601151187046070715604344078605471271487030159477585238319684515428113180756551306229548806274333095168260711004284543040038792946457959341034079531891350963834209418949380893427916186710111264317732363060936565741193824016758117461039721565866384495416643043625411652816024096264921260892043970917649724637266915904141606070940652447887928498148260616989916672955510093454062163762927334043374655413378686103498536982282986999389888389449268420153452370017442871750435080498994300116278614421707760299604867122133754835304085090353685841753020442143370064997087017911293206116228210462528241391685755035240861482086146311243194689396113061985310154837547021590821309205515936050197934812139145163884802260648041971984768615687458659961514461695819172205311914510369010845019143190958110380643491041167067731899187978399394647768479092781118215632080163402749933442683553598400066666362475276010606968886971688675348418665243672291897827782584359723519642110453068143356045378334412556990669337892809243768393164528686548061790227605985107885706168922219195022422816359606929191975612008248879707556584122772517643886282758802119771639210112559008852936634482850219381236564101138903660731826394896341931232928909319028070214253014011701415912026860402043225514647944063122410685178313995031055863230425117162286454479824233553126534293937980115933584287714037589991260499617542453182056573731497262864002122491030391294773369259590763358107943062910523376230949738182265985762168538716347589509208718481442365155072095250509899407825869239498634595165463782934874453084289635248039950726534137052746546170525167363556127416272497614062662821400218279807709064603396857216891969260764152891241277866941113628665924898657317614198609073334590162016160834699574982082818189413116985120328771982857568997936963078809611408256156741870028611685036488173893705046750805213238650097553198102639001058471616707469700048712002980973900086884671874054463602553856007776254743022659004600564326433386901202151622662079846737965558960306550169824944110883936357430634127601287523194611420496946451479571126457339096042532149645949708667071373756079477671151834498577045855672634314178967286620158242406013465914816241325828022331828273987670017116083518755870045959697941490712573920698728905771137934380432532879547105348460317181455565176545053145529257518480360155625489473929177457189417093257750371015707782145548251692164356871108967084670018229492355540087642106420700038259859934786886209000261238819062450206885404265084481452914286794651202104545823261556645454594969266505686845567095849997710541764566089088610224047929537353179937248819132441377208465387399243059472509541034664936389690399768546908055186770064679637697120674216342136976681041765258852258745981421665148214183040747428558037719366375457890011964916575390115499414973256612666177887128118376555109339453657860328206801981844413213340324381064954093467890032249111536679762504292382684690123032904085346751974903740816394448897262618901588099782973776847618342547810459236727096671142906140001595360381766479880262550547504041954924990393847068242381723222357486171844148922971778732058185362349321135817313114547765248017275918530437305585760250800829416281613895547337567444777998164323745400970491668188434944120024932200270746162872670969207371380315987967797147890683586536966349815866439923523966690453423991375185887336273175352348473028691882368795962124797978240446474574119507242939042650469840806312529780798646825176394742034303056760443754955053314709577580088216231297878751453857006282889619400041337673771512237307735614185956232221567060917905529843520209986878518920192217952767015596034833351960739269477787896722220266875166301057339266825683117316984659641498631636624947345822157292257652785212892635243349081064657041246747992601513699090682666290715837969865455258241652730304969263200016693296132779142897619592917821998070020835492969345858875570639195746469198673213020694841019778056474542896257777175991971282856485685544343080825491160273640146317243836754096828982321688387851689770773232825747917180589563577639640897904137642722175690389506747504031839893380715648473451854955194093297045742890873745188333298806507022597135211381042361589700943870875568470621136092367317389294143092394002717574454337137625653239141386662949678939473886481380033635844669169677609386962557506230060602642498177662546822004901301406877959485327747672881706257757168870533828965306947568576020248188240755629689707854695710406988808649770446205143610183146744417532376258707575514383160278890391776772968824102896027738708562871787346427932610620199598221929558055640860083146239985984414357903083174591519012958293111294765934460727383514590869665391263346635705020431563716634800708100673079059816597922991681544524653141563019777755570387625045247886173561622141693322361558546572243389545630221199245066780146742223999884441524923041436517118152803234008869762277708319443115131432747016429030276184386972146453331392886878308374990291471410295132095043862443078671239710395995512301803195831139851738233176985619154372983809517035417242708555220894727912781617169071771525637276912619375170950890825274654847903412778225630944583176523873805844368722338396709784912977077840319423511323663396780795063549347105416101454191896290192582502072348466646457558683912024896321204746342357390884363618618043067840543218121782488368327899786485943387549730572849427203759234123846495851508867215736694585999134202508827800909110029289866251861218740675620895799796143775999279609164688458686623569305771614701152674967385944834585700954006665764586408883116812235579409114040612539182043018205062759331989760156782365155285663007730848928379161086980509077985887292036973857243796603421359381451760299386186880878266015098085495598479640307114452052718028078981005974248834373072163712245547636075874778565992493152820319961098678177823613190843596763841021956832562679362053754887773350604127058323363409334415830506731991640571427184625280849613157418257474343509191012526955935674309343037742084450264342324221032845659639512965548231922704334995450122640481201632779075725817024109666643285736623359759166537351731315721917911822031798954683466813159612492448594562584208361111378020882484878903085609202799252619577065570159317228323483064976537896476660197255219773037914382171718844114850702740980654547736970093187034736443779087888112140534064008809744402939212877494800412748955075736665621288606980939204870479162747248047885480552845217283427955365865820521914985137699109958859010733941478170553609713991710515157274145614619756064306708466082851553880224885924506659538410563849288322917080913533741446843827450798010399032558609051848428179392615263471545696462337056277433947109394704556341135406510145819016446028980678481951142062918472130185993052646859095497170619940958609839781928637065505016044429317305104868863629285963522555813145535671184126514858846242176765891684522744621250433036361851916655247291304554416201332645240733361847157495130709975415916036161528203292248743544582793660759555209613924771578947505735676160251002685160179374029248937775890700192459890109065941172470771909703240775321805066046261075031979442736624943114465938978970535428952630706411200651182302493425079808671495882554648578119571113242554899887878737232286114285286864697464022985773630856192137245216392565848827334655266766269763485136619172725516919656681085089645980129965595569416662141866274096143660357996469983735659554175973992337481075055631126974796461098121173272437491444308181608540841300211218455327112820589343800537245142897397426894252940610000404902052694029372640413231017197638009378301424919714069791663604890981013077461451556591198749140945824204608759120621747529304865119752038580389408605313901520824735051783024673845334493713082663132705805543604213558599694035480316760754838953335251873440033066609861907788032243280952105598341071061123218807094038200330017315988509248140822110140309289945198436995188309483676437504958063657582895211227628092782300998667801229675607292842439071481680707035187968609144096885200678695179584773092390687907811017840756292570188483366409668212844535745192830726649967873149127032597225768727911617183654694082860728980898416744947948650764524181449223191769878273306462684268025518262096355496042254462673906844762348528570919690681951138921395296441885103129991281608447043486120506312037493307368125657708534916846715845097404820152574178736727589617865257949904148904707155903785399292508143278075426593583075884343703700959739547610887193793900571068251234790131986212911576482257775951741989828424298634605502814759718042091508362798714762142754612957914724614294939440559239168355674510324100033332951497643182893988433536011090559658053004805351701370524492360693627016184975498545111832114631045462519002231265757718403364967560418048891609781053536207998975755232572312168926876400873026746111156030144807024236339357500917260933647457012253225855676958187931154744535711220778691366095554631120652310879370922463085144568924578614984277978747186583066469097873790459970809526813844466044984917165592228586158620513464896417195603744427684170720389578502849505780440165480828660002883323449085000021047143809071460736704926410874071901478128464279164881863215292720349663777989038927196095742744427752664706812030703336527566500774859269457061015899260251065473994848359656558633982656534981567452974421793357349518041383015790249226254204815542849168812290227478876328531899877948776454344607714169697135215016864377448459809774082002618078663814922739569013795381419345982732044221052147038759981247574492387884658187568024164401946340967005123182928900999353288232934574667667442446271182747430365145150469690653110068875956697016533414798235599347917288567034050813896098752809400802817303734867488720481174531868573524319066124108697169967963853583417099803349327169405719107510636710709468211263924670353548993187443169819217472767967089785470928434658258637165945421782324479272015992912770718700995287322785321050216956423005749849535475766523004861399209686412507164578932010214145615143464930134488110245999950271505306198275940141113230352786563223363790277289584067908506708966238273596103217909573666879295454587386468123346068211807479645980256959589740950367890943321466326170106251288206501901718758328363252564032368134342086866113187913165099498695315052422223000830012902802686709902839027386507768616340324044927745633170495423211866998648221731605724307408677544227945717702743411731022688275474006362412396819751264636129193741793157470552868561962360629315568510426446951120564603192482048874957045519341220111399308862735244610673868885583966033661171765557261181126982967281027843671765809002885832735009754342371990933396210698288587015305844271010999532119056418835127095885720196317675648980239812490693638764123082084994742414098826987107121240043680544755551430538478736866806321917373204773563731441148150834771756470344737193125794436073273047109804908406394323146603093686475778778877042268481877432316236264271751824517228762929261177295045212910893792983478032598344382495572091374512809168974476533167398497945996065506960246027363028883534850068969642436654349996828496397694456103587560594555250324659260375952895386535330439876367718126090542360286941244681180598160516563825380504690808181474084759923616704595166638392878773437339024301139480900275186454906108297952932941241120991509917253209533197021147852388642693293822087392164370966936262985234014224004927140937363016477961497215425674933268708503341852355831724873783264089321768230602496873307065385612984583638323071460066001254177588807049503384246604864066193073655827169456472850324471944935323920326074573176402419704411355191252776759015145988110471792213153406311328863196233037041090251423614392426886134566750085912657017934215762274939033965555176212369120996924504227786913974650236978786168144681481824405564894914674346949453276498568008345531795412867686725293478802247589922396817011248340523857504146376576028986055911685269651581133414841143080867181750421287995609761036526754823712598368889833495792237778076366276576421958903627228703380113617993133987199052030012619888317623316609780453900756295472172275799355560520438771555198426193731774039400769122706599278751734713841735213479997815322790281252806375584165812108668807053667643497441660525621475709000351342635174146387501323018471340976551599563617864906384440223879232475696387295447850893744335112025789283119479976817471426324423484123111730028137041677379276517211551563993139086109715204583995821346007614201704581875738766778837447409498175442628394121492071197045755198666433860670463117114052522191104699362107994091332725601773049129369044458643554351073716150948496294205697797583220906014549078659374835044211076973740968486703616111842328634813511052070354423756774085072058156427008210328639314277832172575694589773573160832161024066569939066919409296718296033666712010259467569204452922777902030132988260098938692226336581747047391961659877728149062820462439266396225155992952125445701862238053521624617461907808549011375140543684627386540547860016950098416949090439575773859670229810052937462538407355229698068406460805318148630079954366038617899279630847326779829334175329558590216009174485410427620034021485497835352639632402869629827809956976584409673606139849117016381310533970287962296933413847059254240147692222398802259069150764884813679612789312698780185576110320074919176439780738535234027351725746191116499349881210143006218375452019899042887834327545138471033872056206275054685565580183553238324240570126449820255152809048262296337103001282036983230658713132030321048218470423739446507141544074375104341944569978958848834708188268100455022700108751855768750782650445435056750965396543130712794264061890676902620993916725658636708204724972899030188102456465815457881731505266339347285458051994705629242758973114886131974755396712291758255728755559969497614083905871624071992538766264002810559626025166962422966146513166368228387804699565671195022598447181078934886212964288838253280438728855594159716432856668464405243400625907019542377826987913416087948285763820125546757375916689107263763946087418091387344104757855520139755248377523142747418066060010875304878199662541974281895480967217865412976326801716492113428059264329891469234566172546613634756335325910767506415133558206209859369227369814895057394344141765062241563997034581446647601091431658403381830993609374197785643113800341075255583830616243473615770143605651554532467475574812240207646097914671019653468830653148661644770278734274923427063365397893602663473611764344610467559556830141339389926803373404528519371729656672610620581207744513613715205664568772555282879511492525553099084965387993143263098916091162344514195070484227414510665441460263916119707571249460743814138742939750248729445555243811396815141818886407669809441418015685562690461507100396461217637302350909660236348302112178407545876382239815618599404335434108497133985173116186310087445039271473275950540537786838406078621980755033067123091865536754776418594883425053285671821267672525085779807761313304042310394262710065297641631914172447789999002565758076195686213283321225565850467480966332843980903018817503100371150392218030143868531160562893013043410465424806124004524356867579296976589594919791064685059465098504158165195769204270502465565507709325290596060914245013086140430812086662435464773545292400167940084416988686526832871949934013592979490277289054331517217376108641587309566463538793869294717981539367949063769405067087613131877549098625132515191942620734714593601887496406385437998924645996435449877066395128771242396728932938068091181998653759641328494097203360532081510143049898852721867028223046904502256187687795617081918847535523702906455027781467925917737978992720478408834718788858866838413185020233141154732964466496893483027543003240642891052403174898191619215900626805249480255866715960324800488670937662695871409717079350989562436127709199411849664451384015349717497299973483656432942398461911352098400570737745350500414297500059348112838013356742336583932103055660144322242025053446794210335222497737621937421117254807359279020928849118570404715730538256546533148205575458587463128582909291644781022695236181071394038764312266875362946889490632873194189457186899355305705538483418387327799317621791425196633991192166222056889827422167666796657047067405384809041916810607043774122519321948838895576417980171612907499546542934475753608072546997050093659935950047935770492137469985651680006175805802171585462893417309508017771002114641526590230523917545499513494557100705354074128958366196742754507452203285768051397709722707840227660608227404181041869754329359152562512914871843319712234880041693036577359492053608260800717794205320808903939274371163633402755230973339986903478237646536543817064689036503386377941483337429546404934355278894813840090571806302484379072535724190599087315147333553751043651480056322169759448800829334613810449339876228699906360742606036348928905398411433616982146537384944063503426232289224615014054573060115071762513648516339057909763930047320874852137778504416249817605264438670574701828111090399779160668522658494743988714067108806190840710022378036341310295568687175284583491657151785893968444646251135811424254688743835086394785878430105111044842049106304105853945176194976184663754749017693808904868470115788075903301874416602886268503084025456292819068524344920489688912883066059748120626523417965206064562122896888504815555953850585849286500368753206525977212947211615030108464577837128001861797599134133816837387643370407181681966114849828635481176936415455457501071183498422689055015712607106137768455951268425759838822582331221006721296296875105462991949645571037781406358495409091505963949568103131141801526449759439722703271225444594581934868562724893604492826701985281842352293076086928764683370851344717995767612450606000784030312205934146859624868344009390839416616475854500852386294923414578729123376491003195785618849348745171168700226049296692649134678106879941779131775932284438624819514297493140593036137727403055496604937211964828279113343508158845521420594233909752405612064222331785689696506868013289747472633992632660942066353574696520900512468748380011218195571959815361398699570404197017755898493953674678041668680188254975265763427910732915674383905237953372455094312863600868742299121171618071529444456521563050098845505687890768036308439149852529111979475348898901597772732341129357961380147611100024050542189943431735426328171856404993252854148266890541592467822265638273390552800305024927061965272822771467981527498453203612516627932257385525225923575548079171170001006938647800524105985636735735921970910737673872603322672604646900313693627736267984176099794235604764165421781572249969700251390085311420723646162422951250330751505557490482397920061380208449979022036920459377775876054296286224881684331121772891629174113339923019838525004904007378525393784031668881099274284641653152824844532489194746891807975133582671493981430978150115673743443793966949748997664118919451858483628324486249101882731699336400277003406148002871970321181717228332594402681330370905134261743633220899729116038683221188947935499165480205769069937591117243464086953221084291104525615651141450288834678488735154620611317777178604854771108806633977096655442465683641037114568955287180490316517206060976347965367267148332706235790010694578733392858507355682005749490569856329284480484433199634723668640443114370656673850074752176575003453378168058821247099275107486132683340924219164378278501707119585992887297505592025757673272764755949812613110721223566754943991530460288766480257504834146023584040434454000722860928317714204016769517555587553139218883905968860189253689288483460013110352907611939071859857460547917016849909561449603036374679071863700052229974609977703120890283933294072463561191212518448477578381701691881536653456387543871081854822187001426256172219174108025851880948163354584887770270379319326816001280249037961509592258329848697263780015956062724532118222191940179077006362132022432332843239756281723358559479224685174947793021830233459895612576316629136509138807745751512789002004748148527854987939291232427827266646278799345978882934097465091808276547007538393638434970618436889176381637526444918015189103350173817728026750061187930932191339395921416320893700459149168063402106166260896235019686323702621237141134370863323058669043763809550000765173765349678067945378277873940199861530186210605290429189067244147155565766420694495268681159442743384846522170627572146251161930107572979362560409919932129183748423493403452499949737192970060394660280754967210601411596558636624700716535381005964544312675914769347466409275996735910837961619131867502872867942703986902949034481077548814163932045322172449547625223729193307456584403563232675558259829828507607223097783241273910075029326455370398241384218114023177567076626356797482180280035760610494532902835706792638072734676806856101946060183328142270929169827985221909355605172927081207346063378034765367357936287219065453928998764473101645911621802702929467126728678818272839035469958742036305289286762399605777261697208279094663372717595175242807218880219406716082538300928714743747598956774984764778066332291980131875345390201250545933640735501131799323522656338570464195880263186776392058183098931158238070259884068831358124998649703065542261606039318337007434108837956308483398673633551377073933879532377957136145865260305919242848933638552096319406427158588944426140874290741864106718787292478117614059326197708133852314621631216143949976078578501475770157136862982249576920564547211322456964779283547106911294486349640254070058774190629537414422687885749226555387273621451897850602793268924422351589028915600961817514774925031415779987556830380943726708123282976899682835927251612762594492456077250267994877483288383290880464550861781134051614680856387026832261991531877148632905286457100514403055065382791738348725490604608890732539454783628599255539787331018518228169834811112374187992882058408068121991832676307151339725595248271866321678591053671147303934089157175071886850135387654646811619076722810296550296400672078128043416039330137462072218136788702035482835292829060938021208222049173990764070379353450518939385073443560874863060352192578850312800038335372171913737036759880540475510630278542487998941128839435698186447153742741678080955923894015181344688478467063053655877491828074287535942242247816400960993930180537261007070843815511101778380970302831784103814727181096712669073895854113033609070579145966862649060167100565271536630976996905865712436947254526057301658010380945959811741715322944455473818505666488052420063153185871411394184557311250129966883442379323143419711045260960857713778817364927661847833777760935584749062457940809280914134010696825172991121926972250002650841440341189020128952973621669169645816071679444040170347043958341715508164782368462476432597867120813097835728844813114629559887493173294611914191344698256471444793721836737785668029869717266986357550612085567736429677947713629186107073506315646748239708807160956501601132911194439131350554616436800014918066663523427028528131990716362551477539285981642898133342703305547565857144174745843871896890968710140362469267118899810814975258284432734078611640222456129107180648263338283764752494044371450288826034803241323926412926562696771690896243216792772636171810238788827051585530013478315768978803065168339689793507994016099138148613411257922749109317152596165748971848220429233602473022192495631056013115830852858925049462425613881925048923248675105213919667496194662387726631385246555072014862240656161930022889673124311213490556966138524008946764538673900910405714302022434457343929300258527246319280111397950259855704905527593626515017958395468935295330489914833407602419678994013041555098407485717291858521209013647764257585607251261046222418190586814671697117175532634705227122436331792106882728197831277883259488636768750620882121446399270090938473954794836429877814493094810154224326490533598035982309023741220321752260911999847337394313903977112742640883363902612869039117915018584416217477601293968401658162256863336610955999393200906317300447945522233610748237102684011473884060677278715236027066368856815023846367182076233209185434125875121445468256813776945500541728524913284579546975426121776760594835747112490191540585097498391647363672213142353413983540387097365005139622593984408075520729796846208052744255369667303347006326864067309606253866731814035542359296738748597673741679032775326926478769257543127604506535309329046721521372751120035847388459091937910824210465543446221459382200322944346669183412306222495669979345208433844035937392554917941664243139422237776168077071037658645336647052317150632765713954014605808141137666186420781653157610755786145258540200019879172819414629097503987152403556722389620206929936970877036027927557168154501163997500446959112415513306452439535609092170549830608458343342200063747804907360006615159132823024957667050131270410290050015236965220523976210859670515446325666443486279224170714007345244623283155671235298309869593020446369025231913417480908421084782516897149245545905037142067381231732743405233543335714018651515527627326952731861751398815884373772117923602209334074899391678931257720994440791203847087274071668112635834929363128333274716551631968931157258881962338739874458907396951993930732920730355523944229725703270187055710736218444427910707090585730338615024118036452811801572542033100424303040884473339038599352976034130017375762471208594731300531924762837206426106542960067108862061706078029773664931230269927721034243118242054016022034465278993194232097446012142754744439212359288563279756186790900353207195823843275482099611683920258140310096112556892607607829249057713978170460174105298767023491484703429112162462947934030661534535266415050999820277770320014230892028447015123876142445905154860211152350429706030456920516033517388177614051726240216291160949858518967595272836437359192291681565737717768339244390035894499520303484643045874455432332913702886360562037400066571084019727880985373301015363041151363402444725427206212540069814757246502892670409452199176421031030339003439925066075097748744419972414751000641211897469815461504882433217009299229283657525132610246435355763622059881008497961676028871112427648978483855706958336825701834353159686921209471041939238218551104673220568639577921481102332697731925218585867837575472484360714154449409794722586254157585477299676898717423986157264832316124785557829339995898905735767208887246799757460753465918184316497397677285855152672083508944782103355259114850544496382501416073937686352102828881245423933239668354377213663164178967786611118724167127596903645999773905601936670682941456724049169318301434024893804616892292621703553900161688344943700180703382594110272711634001387980897846404679714587875415480079363330236392540392952824376414662512614305669589680893208423382218827188495783453722224516391970707704582526953379940661924645408928436403349441179331925515385001759534282893523375016535783312682125483648249911104195074325706545370320531174182146913242688691089181897144065315516064657225784467248513633461034334090008291353386757426925491607600487550139080973130860888142556651291651293909894049073806429470585159383814088678774181671460173895485920731665674607177529045556897326745480445578298772323863673325884164759875289632352308797629786007049211682598200583591208185424583392592219095742120802650200679652195819798380881419831773698564074100326949689007616188851950175906426956201231801533788270205168395049454506560047388175550329307240073943582674759530230530520254441977508041791562284284755553733035789037549291590072619729942404428691442092050608314044219554023894155630705948470716189663279102895059397521710441022221791833518324033218377530999606957913461916196578112949628890928458551782754442772511949938182337978550034482306968608825022125346744011857032823398463509095426692678317094072528430063780633283588506451186861338169720521979648894474254211586129071890558718378496240924361067867295875646596201636232895166675858883654659539566326805666905588312395344028500756625979596313072296940222013059470470774073937824023621293171278149728099695522767625122425428651689594133078873937902764255025075281692020060298431598860501787755705759091615742920684500448504740534798653578279251926360747362662273929021614805081886564022555669755504028751635589603593414841948431270172771859332357389056852129412026646871676100401922666714466134425809296683793378790367194173267076194940156231010591364341532357207396407946433601388383632174716246899762693966054837150054222321158340032759315578884464850249628569675574657045421728673102828546262511623245252425049247082677264629266821540371098079799365954733057929804601538857726344290935942499206000135731395499385535443461052848935347488009700828226424437622672583944342606436086181025242491390459927813184649160711256671133935199515218567298518020144751657253662250207927701363268682181899618734759221561656630862459204824169843588535296011146397883446570212145093682769894617916191384703705050482266299665714421741554882683515791191276883082514030657166586602073536834274620070104812421002831365908847839890637740796699447394477977649257141328461819042382912341933458332308767318134758733334168346905733811425985906926434092324570117039383244147725120977275362599723930617503998640071140953464502208196599802522130146344686214864678043568441278664402906560771509109508621634487728774625950560326199104384185187287711833530456815333407413876583143879200461782127821565240200564297628637515642570118174547441298864026353147428416264309373342638337278130928717358514336153005061378651078975930002348005259166523988080642580945035059715266265113382473601556502091487778108144908105068816197404838754437231880313895009063705680419604673337054787317637628287166444444103008522750552426490555733895871814975246445934094794792211627463923153302963670759532249280513515419129059376512701650209176741168764963081613581705066993684101546258899994566223924176765096960630474973943947580187716118072996546193829277304875495459245165999888390180831008546310423902148409717035716921837111843063075343311355192824842077057700348222290190571631352192890612691824392098860835485651652243253585933735172738118151811936560002284776682540931697030249328880863735712233586563965402842733775111626651565901737482257502231026481143275996959739661736389059176371413944187952196421096646525304299877694025954785567162483482579918018458468694551563140161230992645312052598869170318933804281569821383518580868810188254567052699003136242068677590946266606134889259284577597737000068526407653237985086497095275369696532420847789477061707148027280033082855153506578322424232227893243747261146708050680434304972452591033664453653844717215972281644983687178270996339923842954565025707995618149617429643673253019758504894763570198509007975083670707844872959192266015388481911390949762247755043469445088147900881569845824352334005895365910124730214277908833256563558458132729399686515492804376667625614334387827127552602600640664078046120345940657320195586369884248921688868694818683029485812926890515383706279349736480575149219004709774118135492571007644178107132266419811501662629429670608039071188639100899164296989510630341778898369445952758072583965697002174069739348648714031560125900859758213290659174895111325779754639648072186147107280837283708568084970270056005552454242991955700366331837310831141424863417419066649416259211162859252590720466672862829991280051685728357281850590862061671212205809382839561092629711980392774421312228121454017185430928425696120555211623347193075570322585882945512357522046222709295376278437943813191368568220506801519925605616948956431885366571331298358612460772640363368753048036657508014364826880970440012710853219512339077325709455884579238644085503885644957345025168756229111949541264510865001347565656019812988798091496610649605775881719446776409531661524423502258500293633658970059370511836205548789904219615744959917404486584057145659318909688191396905045780191085538676960916208654331618407911479468527817432561419297731903718987539282228151439156933531214317252151929733149288195111033714517067045868132598721742794743134355674707953472282153117962807069401111578066223830079969318162457536014366224252259003666380481983100440643616681315546300048767524536934780045925419273919882451608793347198966082393029603979518792600431096320460621700320003575545436331412475203340301792642571790208218807895805145017074480040456977723855787030509911370589590070929993743150061280326137757623004487915980784858820205774977049269663098001285662360356186450479782501528384732992928420701111125116456031707002366664549313390085925832273435824303357614646942294907446207683283890124755341685863517130886752869046314180319913755210942394766850299045958037849099867588041513430980060718178843573544669086506123384182930049899332768433048432782170770417079964069921881390202737512122345514562249716052575723512770231338492746895658366310698551000010264621177528670218885852690894615177997273941367280921951196775581967708679375495738118664557998848836954404659036425862020485225833309191296147303695331645003337620645640522905593332738867287675393155322112446450496858176135351306947550558179390893898527354782408506980410144109401159471258387673453768351448905859557811867900267384237927514509455755510553061087107243750895766004782459122590659103549051938334485277498916302343281941818516625406654738172439749664932758913054381084229799805911374213382652541415794505600953972502542433106584976858492251437166060987018538790436751901236749139644194947099334607469206599728936125771803172645221022363705947897411871608391256036032055564286309667049375581431564238226460795461464128250820537528961623928851655099459935160235048501243204271976805548885700481097364700398500254351268729681309876482158956825157412519051226007333863265304029232151870585789427886402886842587966048952737614969372507634443282611241791568086916587018026263846774548132143067884835417092944994701421795317722093800556477478230085233445849911329798093518054144501111867325222586268928160993674654637626834510707744508960227238835053380678083974025914044252983645542451697099934667347387966557477708419761624911790426966843542461635242124646495501644656384203135389178047986415721590980494613149173073383742026271424997542099480683818671474825803477666032764574482289243554376459995922096326219137793767903227400734252406692052039326626500471875644416799861446372388283188781442767893126644715807119709609092708236959347118487620228430004437185002427218523016212486809179654317120803177663386989449945395721558902005663570609243847058004860971818042906939805800372558073407384480028885150655282430563102557875233516901888218868526840609224606539701716294988762116314732332719891032310581544655083135362925552139382753992006607323853811124029881131064401594785122660324619900696925801146787670930622552936377549658041381290500450603603358665148485753976376651942019439073300245931873478821524108725189737532782723660728135031830117155898669316172115137286970709491099818966367322490854687116915242665945871424349767817457125306497662390001078539753736768574334961166613019039470066882779644599670986054597177014682650443734894625926915266164741102127015391869927519702569409461056788524381478082411438388494940096419045390093049289814372363061044929389029535078545019131666223407228811593279222457905577461515837264291589579997586203364622633537276242952807195369373850080566237459000639701508349262931083511510479120715581964504907892075428569163231782417236385830636235389167302733500337182097172341802316548187011407561042792966327174987711807917954755048377885695305757436100648778283211501703305534494021711691240472735654243584644266936087922153771509033156906061984217910075707854059513482731324222617818037003934307477998652554309300415356880811711205546239270642686616485924486236912998746014047728987811026905576328687011136852657357336487456637758823200343758651683091261491076063653113098201459974003102361798041709488754408060007269203283821307283398121591159208824966508077709642449120015024671575222989127945094684186022056151685931786529098957951440525259852711478267050027054334795537747160356407172154632326505537919811377454372753174622870923299524401984973081625187142279645756262581180601855681589765958330911518106857632337884900519140470781863749226959485939604558490283412210207949485123456652802656047721039429632223217254248837787431506119461076087726629365407926148009684739405223526775890742939236456117530294300666688836711272576866962228373029358019885086916960585480252968821947210400338641729230273320215955767487582948225454850266323225070763973847222316763493828693284126943384713006366239788544749062456657120969889378555964102258873223880678603134521210026510914837004936956970271897455636375199950946337679850809284575089079449948771974327748022939131694771132005491477260989249461031857197958400326643340679155432129272821378409796205857881430191298817743331673246713636811073245872922646812896252533791923741779636511183677653939588169234117471180620833236449554922121646495793824249584648668147727349688298587712486058784282745437673188700684984878590065972119346867388544410420077392457290324152561712565860594685007933842801202590480339598768549087327085939131506437948989323521183609755999200215230455316087330478937028614500818086415927861610070097122890259269546232368107391698632987700995781384253687111172388815824628246957170997871895262700455187082478875904583288177466420438499050785621647526578903129478755090420282059344786287739465989251290030499672567860327326549276842106165528352449359863043493892413748492490648693288636974173087344810065401004056445231508226735187168672640494796543568776179508950797979272848900780793695305670252035988263955031212139466721478996930586590681336336329488428336487166807149638590345706285413831499103984044373108786469535252520790919310263597361086597579365760650712134858200854477878048836623957772698749060241568919430171936361440909724701369713389992124262852913729829874872859163814305709005400205296224476098400183548411939726974673765997413791329753561346669771432573796904027703258483650255426032660351719990011208864053456381632409305375914964387653224639283090482292661834493605052499260922794414552037318171028759908121968951168267661100187121186671104559561132073912504188683784546292533152452401418153244331103957755754085382170713961529944709127916611015620043061455699990115260443078212785120049962245953124822153343088638630993420246237398831446809170386574265123986332441198216074884465111916660175865853007816162161516345610457694081634701717498730317748925817831726789402546769268433131109452784547908461561654191350535763692930317356757706018252345532783726117172730212413489261595451395785809928110623158097448121796171679392300588303085963987986031611975089799599980792923367486819914759826489468166866492983896365555083691624949823239285019706240184125075349041774496283334216046988300462630571816556766262045586705933514793701322044906382358586595812551185207019356435377611876690872719316043419803321925063236146438049813059582575156700599483268591185735769351170777508323905878046491066677479285415738107956225151992905603386672137850599286388490835709426177622168969461526361954859161941318434823305479990287034158631086844276138972962050323558458543663668920550069082417625428986876570136991466082236891594539430686218208457849269341134042626900085223146875262619539218681348281976752922314499222624579777517771598473737404479779981358877711002584019564517801419565691419259530741123593645422955104544344993484290018340667819176636122565595238338399171735058295875128447913776157928028028283570678618922819639009019243203671738790706322388769233089203385703310402237147447497760144825492341101309097921184417381201297853253900399344295801707047561321129847998882637900000986950517853082360588432463873643521027984653611820939413320050229356093626174112356190457342791749165397922618131579066286130884661778275100873413101079339400228864555345547823936426027426630434362941244677205707559092309919571406823369255544234529200121099662672394427475741070308600529839750596470929602530468122711127329797922130252956184335579820282000416210807338226453741063590305192404278199312818140221295039791982049858133261973603239881629815759810987375040257962329860841439566556340369795966235642038273860802006505108132519326861722181445165131034587351049875144090087151823201427305986397953279100096538688224900038439982573387030256653394509786406373374256233119652685676187523336546885669950291798730357084172064891565260224749663557346637679230172742891568273373957287511044851535737973707298581217067714478161163675892844882370636501212482831364825313094222015972625289276972299833316945090747966327062206870244629532801007362169587816654405103491122200105573743305561066665773213451829897968638860602613149360530639720154488200926522887606902544032965951717164006855051689495923926477943435139468707824425596880015942892831239028223707510422644565037066552666233302790846732277481001635319128658459667857128215617305237851155431841181521898218379766676551360289065492447262876002376502763145425828740035051900141546120257811156582776144144067632336684614903477837467926496225419953524495774872901410002177600936431784305165818061821953010803597153455813423069030322594325936980706741879917355518796640199582092543179843574631540161643537843397094787665857547451687433018804584229204961773060964143685416097062741346264185457827208902537327210729322780697597108397726076476364561726557442034909863547308065209510097888908757841728788954846031424500143113124749026251556493833510068239443608337386150145689460298993493566070008499975431204922804103483737396006082593148355857269828613049735085811612260388060491976304220719291846531050803449513396539435006956142386812765302631466338062270755989736258860806429365714568909627224185801783158547514078414739825682348132855388700399133804094055509275567981227865472321070855293954800358897049381608656180241282793703947250831563055613069189336182003119485963138093835451389516457542985817150366417990792268751475146164004774541020556588075291014572416937447414777669460375514531317194505026495478863447516083874176141958951240103951327209842677071230174050531447004368969566265458934596522724616034550844906945104356960934091670383627476521566847311825064405824663630333232249291022940694214031016230031967507729787991404887460783330340161947291078044778642632285804868232711099808135049751367309682002644874112394531745534480397505119599362873275977461120682814032278113096773436698807806763807031050119572777361481388843484780575715246777845362114781802793684888585596421171860062339170447384755733195369851750263970122726926949804095165481738146557370001675654881555371814871507727880983918343505229982521418468647260559389932602188236779242791635360681139679304292175102686796372262515351489576293462675310947029133452529531613729589651166065005118085255189685814991346455511128119055741691463306787601485357136340987638610206770787166988207504931463400612547457991466968076813348283172466555605386130207387219967409587522166315913937970080501381887419020941533369414385558101603060352779227148649406113080771922066673132524011012761199997186378991622971889860985121068828719555295829401353022131391063217081188986670181480819000495137613393713316855931688723712439011469863641245398678572162170250336855801681421169864306174169896210460744419781902853797221300131311982137779283308421678331727307381497289775858084307109893277755070832992460061659689693413102204981102267308195871293882536712350045453669129605229955092347441869266493034130282518935729987514530316177685018508178287111153681312746169801191214888383564216492038682538760559393559644928676099266944527351723081142634713363746187007005818355544924798707621554792999232668980187499637437499941233106063069154271497128443764968157286233882455275997483505117437102875410534659065291082128895758117301289664013891912059740886422943038683039350048226234198449027179127842835540553474666625609040033378131387013262394046416662745154691901484180288809364372975994733199310817138460039041059295912016874363187045365487051193235071010949161951180131296597652608558871888748490998829176556713311036229452667557413493761982691325383156020221250335868720806004172639228241065764617059204685443409486293039018325555044921618420905577941293603822094589681468311134802729465369849386279667298676188279853405128616927738661961351033810394943333305210708035847782900842000538176893304899707559210911168018259129894762162490660942563382333312046292946828480040851034327519419625716462161048222357532739093538854352841332097002637312634677115304081137099320183812115007265979618947289866044529268116117913621851228523081690024958762643367297762372545454082750293656232516521546798277189735145249065599569520425548092112774804559466421203632450345837663329962633101086822815519155903535641835469151923535212172926486169939280740699256552951717117536473214251445403920203457904843308880163129116291373621130719477272442152879624569884217373308939350241279330141260447599745158072869177575099048880432748887843656810819225321756526135746768071633983909202839307893400566710200081858945386563093288517667680299757905499851550587899209284228242186402641757754153256793079596578971402588933325173076561251580359477297924428152159066455179544339010043463900009459553599049749955512236251479292993859528937306420414347708283888088618849058779550292094038712912287016264932998161924297071933797244618591385361053498665787517414278433461281731062839946557994204025892057174158127087979389717718166115137361896307715622477286230721595998512671613332749545604831004156293613267091815217150852313384213950939154297002955204641861447041765426156022235311891543031523744872383580188592081762237708020229911230236915693365188643488837693846192356860331428208996946812174049592412408700424509346513358130265188313096581455998338478276812499413897552259934223104349058710704598364974544612710998847930949555147067296187057679618796670499917541397745743073477134834102867274411877082423273133661247787402179389852852958688392131296101004803073242861087566522073113700170907429190191927381099947510569073960121188593475675187818383288066356437834710418869963484204758081688134320243305093231073537747109539287147755712933906413383728823386506784331459023441973876134344638044159989198640162569067188437245937502948907357755692677614442518629326666160013080638352439214119498761843844949177279030721958118841476546510586855361839864324609962730557810351210724859289334526756800873512661026633807353332073475490858308943547680156795521906649993503623950203429207136569016103980894102725876988432901014435695075437598685891343443101653724606269014522929717253116304297970738336220308980018609639674619026621593562352676403051197798890055688567587802830054071449996770164747589415152755802347796180910896394279503701805462066461958209095811619559072294128458711313514630330865123794845075151729239722713900437297382369770992248933464082314513009541589170817437254542469898322455247029116094233393489396852820124125378685755014715173566931896935506492696331789082937473379409153205191153411920545270302801550332842852846353905989543760453972355740859378103365833490875765553199829953862962863239864288209148736453460401058024369716783016822408832249252873962787125793613683694296607636559862783884799190984521720612873051889640132551624872600184044250515317139976375387069065020431844301146594847995312515046895274721296074136334202046032014402834841437643059639209483080569228087101058830524602411894163706872928420220086948438428759501379887958759566745382395228230902566774450279536756467940543912920773909375711842302869154706356677822372998818158607135479900006073512071087380943237779276472925255050052864799565242024139977344805235235849743632119725520011650809919079566344906072137448227195181556932258029902606116146320010342800906686017177243122700430741183139997403258743614274312358900538434083281229253690915725757115433894919777530121326196020646033363131854268481212921350163989248083371378488342044422728802080667890957244802064344599207565656780383634108537311244679682622223414764869428808512911998242086419870617109393514128912142335153033058164876529328686630619345069288108020656149199684772256410074422278890720980095287463295370939516743476208351389438231722944191442219316476426925438010576243672142955005688432239924506216144273876464367886099912046838316125552935409480461343347183567888824406967312598354490328053551233877316072519623977237777982510746283085589603214197074287107824616869665434644543113313856106829800565581674783220396031434003439684002668267857464511276975622124221339145413556243700259231616192688289138003494259629104980710182001528839354676265730372136994362784180173148098191189833115088013869552326336139709388509744603483292247993272781398637650906540903147205909139726682766574257833771366050615823624025632106124821648286382148452338263822731538197777513936568138848179713317825307218994048231394330397507787595574352625197174314865259413088731540876653647962221967004389911550259460276926070681827051042443287709578493889391149389541423144604320346105648508384374193397540337785259718869228357104548854670856708258848723650283488288900229561564469752836844699374988712071635522505155122330744758686872290363558225303656787027718031130961538937193816820706967346841989593292510399933133692974157674008296497673623055208412724622391749293477129486502517424479652062528136947714645867257742240683521762150056532106043853044623565250412500085236092845228525901953089428155839005941970923208864805380726648529346882739517566614635456304166242870914257254504847245080795099116298132824999041935224112226590896159837013283304592131208929907598543704797834148947463040721342909450110298221743768778250751964498780165096934807295000931492910747528183468431652517137407157082539060275056786168371576228378968811903611846079045756486810332885811254133119088191524808110188185634002342303009049617370975842192709963239124282649234543113175721206806543143887918360018779022780283848624000006148085411582599018980511047801715563376296329775003172037391999021489305981200766709550943194611390551323765239013839057632633855603852872748176923513173003562410501565203539087704302802749946249969476330188786332484737010668797947864846542678392769220499532862890570881902518298060656640846540497684130749566509802126241564033039719197761256177574049118598251476541364751694623469228441306967940032317256651028463010937659812370076335060514472199315019548863628459623394406936608002126363098764603325977972272422995523031596755817691405496144064034430341766468517607100018823254354701612514874976504907819374513175181068946739144664133049865827854278425700315138063124730928006790813510899711255428877025564763841563987460214012298892888880708732875983671780486328820353487634414853077159108510877347135224092801143677760728741424829296952930763282957264287678294938149135522154443889672023030005713012819586079638836932516920416117534833698082348737135243397301260341669705930869025712947522049650739937213260958138643489807018312907317045020660964633943812622827476093925176168498496266336162395913226910594237104660960301367478212122455775806423690193145691551977731927538238717989233361036932140148420753938470337791720700323535437552258985814939257517481636430566911631951430984296143143354632313292529865914473801774299116683067562090652639831899015604791721625150939887220119629164268805004995575601942220997564676845371205267985750901303466909482430560011994590485274699406571980533733806317526792495155428334171142379553236461340364559875815744138302732862854600657732077139944456786295348835931439545437340613963810860297186612199708579209703216620618788589692144502815105625593679860838970562746824304694909013295199692776366808158421365335794904833430658090383004902099436847931612685046050511535091929236553326226726481292949203226991472478544785724550984822984794257818658144776970367759042057688536981856173552351764901901801674372741281904081084086397831105024140260167477691590336704525737874067049321519747187339172540217885998872870586736611018171898957327006473534494261283573585691902517716926310039562291347845158206923958159676407020660154296340516481006908411278563088502784574805212502296739209975889978221900189337891803359097128646709019795021715740302599446056787351676324251290135282845440184183781555618729690050768895998708104486661657628601616449117965748907685326131318220661025535797425400038891407768455000200425163316434500507123306250445731820210790501224083096540329706577443581800754750412385953213753967023712850952711253592908111165981587477064815428889080640342517592266906698544113232841032914191403018458436302000539927852030756465922904100721766342976522061283703253533671334742478273400021996341690993581624245157156997930063550519630439259444945701077376271599481199965171472907645847561128889902769107722381068580519940458887742343228648385742738379467461483784765783990530920195936740773138405248120934890101840090756921656117626922978237836188186372190797253587682514125962121683233965466544402377235015782339332602480149442694581007991796058252928974535042493338711592633944657161174482065480730607310390332885216839971064168618941690231327979688854537107443027805872377075731481592365261855233060107946549649875700176150158721379237476459564907357340898855870371671279281260873641406241122621342033230409025876108953664070617298301623189487293536710173765051707773108122326994183818710935211523416948763171624231310684121882660887914763978105744961841487519050085746778620188802568425218162255516029061354587958570949120450679152871865900111984547011371917482254694704247854636002796081727603875671061536489037423365309457967776817460673568839376461095734642311786111256742515286775613603735143096372988991849826456139449731011396919443270262255667964512698781838697787326549267626213394986807185187933771121312765247654253348929229398492346114908764967557106243311484299867810212687279522046262581135135877836045806452276581828319758359405826535964979673490310772029235072191717447290331531039960266338151850458804604157414775408073275212557823384619068499045729998989984577539174991416026318606413491995812349119272024588800573384361598347131417257407721928048476443245000861225128536720440156153102267094520486711563286610334290047781109501177710066855741050267352807595696189803094141871300458977538212994840239429266811492680002582974132428501594774100993140304031203370395213941310100156038434968549894547285871140400535171713960734157773962129789652397057392988622849385404837668888440221194347191834450597426984056350117223045995969632713001503157840865870462002607107921633970059791303164112263929128758132894448702529444807175395704225661867932513910903720194019957058246033219344192891192063173651150859457633276931860753344026361615092387355388132858099299172645971797897106762590712310767987748873745549749587319431775549109680265042365271800449419855323512524509827167960429563843632376570305243343404066119735445952710283681058635439222008257014609436076290149062318596007118779273645177918809325163771167568398901422460468793805956937617041074444345838423660350082605764079153059835746874553138382281437718404788684506241388316699764276677940436967458728804319899054172013473498803152380468053187261800284802033435698219235089157914859629810460504743828566777910186992790234236936992946473995575731824470264100991451142530455930448430339718771734724008286529498763913560706747986671327499330144281651229342750785764043078724194089587669450439358801301779920994539225489331117943856477453882730357208138705197914212104852955381909281424425263231020166368965749980630929912891742262197197165918291330808028698289541857056256459393636466900065569436296138677338001225836215257664609423047616558285004387921890855481234394246623781874822161233053393262251841031686310762004709584129252188405309581778090410828940276505166115178753559030798020869742523410164839364618501826262313586499806454330159180806881734217422941785133159203987473411159605787192810706253991126302316283146198564778631059740894241609557555761842287017441302582415820579757828093527442882044856554396807366162173077342155711214667938208762244841903731577413437955328233353351656396143862346969160735232578211927019620022846159782311171163485722270385334469792078767451064922325257937661962437695032929265102724785185360591419382361313309760817619763519048213388315450122330694218109780633087031343514529750512344993105806076426143803988286198756959806182305529555955315097036885403787407907396898000565079490923713749395136971753704195870378876727000102260472138573492746121855888307402474712198948189636150072801469070884253886125416814124341650544106014718468702314375172236494691038535560210455725799176723951572201384531866372995313757906132827631957111799377961371352737351778278743269901081439563337619656693150342218891097615471825998594516054524463311862834733821016306031403483450874580854855946499252128115423445756330664076769464569122936256016762381277975469538251711575579972586607285947976956117683479619640119803275218598550666990370095917679601440840524592883068227789472947046120147905929265569149991338652809454528171694219022546012012364999994249966588277935556404561551761723867522007647926583799523856322520883686552199679181007818319475323907448049637244103253628188955026447913998316567266153993248563643665324483922859590982123267930571352508745720482790619182146409189768414848738487938667026483530926735891258815891788677547292228197019560573159888270349300081126054567239747035746322834854267669139087778434104684437577777920853053883106194796555673888569681838160238354935691355115322952867784656389763646254003084220396195906438935765953119462924839282028432453641012980521239559239891506467835722097812307792881197672415804867059816669196063949209378984547263354301122636099113825066175999775309768563204736093361596842601929781897203911700490024842302063210200516458358033494493697182558964824977216486373873500008222971643034660573047149094080098499903990294903146410892342273062237430743646225923441102279235909901353388727918227941339986401810061672139589950159668686900432521821876918108057211196933768206614795107605271687391096528132889598997949714863111291782513566727960589667351150296057562344754985820475829533103188560774017486032166842066660107024243209086162760006299696388453894434888470810571738478552757208902425642397506938447927107013240655128147784514253744278444031516712896158967304263722661743388841410722725736917027887029024973592322845310863211911735569283266101930313323768409148450437064058530006231330054456943862645368596390079546393271434960388602832676692831266468862252882566203320845159922258853297542214422452851668729926355957385497382598719083251534073212022554470450746426536575229954146391835423163830098992593054171739179207458616092860714563146403085484157105927125034946124911515384444102686159841146565754043482726443773579211386919173500172588917988493493541672221963475097057802362977788552675482834842533966362689135357496270696930742261689226487238874222342687330498144972443821088701028960457266816528202291479156320341197554399214656999239166838037438322129084502075886794542156473442810212464513004329292578906223383397421897265383808572988612345012239394830754780429718751030498347027885336793098983082177622964901793358776812181068823797051714829514096361926445471568817350866492364349909093021097892761335348278803631631558629186930257205378642210787699291593601420657779327605920923375541215853107225639184701949475932197237607779357260497890486724369054221541164477389575217286490044103263954510976769464981336069392468681386673260806804761591771396200677590739768187377276428283822121325445961458082887307463288581467661009552749848582406496320826501528422400557923496421187180592545362121083806330715960917787428542388819135972816823321210901572832593675350038148522506361968118729378609955513801330508819906589736088804513035813849902167632964684959518656302229385203823519373840235756572392056447169132834196845292685361196105692242940020260766672338792245778843055909932696152850159679243379831583144997324272187397805557612242167368958070710009239952225040322527653921941263867039448769992096544905543655409071666916148035615429023086816696042012677481875321366762370941530038893679936540309635136772424493749647968853165280909823778014129563526123392627413428701507970876525385784110662918514832990817958350885730470259080379865776732686241285680801748389294232362921139222862649055256371557145968278096201787222941651052936417222588540931984112625123730067715517503611144925378361238961974374054083447256324355199508394245274024298653721640987091954204891040527159134094535793864464090023817833863044194901951712147456068047792833376620837702410960216510811936655013217058134395603143956402797516396455374047763102823812619854351974939837721299287768790826085150523677757765919291625457226001332991185180012395810974825129397852531531781028596289178208013266174252053066999067430183346144550404176756593860683532825086368138471196897568911324801756633820151721474254940767127749473927758890129280438042776836738247112634356948795264228774955368336835135933960529573262863703305826963845338621499277090261355609206312272932038514954177000485670794726746537366969319933477227103558763045943250877163988904855649066726415153670241507736532652350074507242678951109426397141566704707107343100156630866422581963104697256926425149012221971511546304002795382288558262952015933292969239485568948197487601815891109137821482086186888947141890798509202901881351037559282011148168370179598209466125672465008698002140561424695896726903130884295954799542124872567283799889686973688569704596661595032417753668586738783921566394950553282852102255697118278222087001356619757239073031679060067172100648685408521419798160931168269595117668737148695966959665852833791445133924605631788720928284839860133197283860883031310578275738100896024150281823942475007239129832689221799573438061134624175231163078237224220833545914970644809769674052927925859547083780724482011731751743745085006989302157029759697750091514367899828857391088390398692365654401335149140389326345661725811658896820233696498512909654354043192172037080608838280397375826117401958172337135443991803579964274967756186951486784686995302697182877520002913444068483409209348191954148415961402435201552197445853961089481706034941968204985714460793834563394957084745744736615714830094765907189690265813249066324105457189968080752265862376692527525536181842652912297862181356694688758487910588034989931520980803652359751590416625738635465254187401806972464889162200350986645669320149365520768959599317367414304075818347361104719967854293162462001507265695068764794406421764532557135498482596427864645713544470588203569430278627279170176535421520257481194179140466093114388531985735953322845871451471463720163529118400392945799693181296964017728509831228373344793242688601083163728007804145714002269484691191418282231967919221875845847280150718545012604109325021678343797027077561692068029683304047898719562747807862248515830640024243773833844434387185442139270256729035180092827850555839980173301075797989322167559116045128575814728836791422211507933834845425996986187579606667203128528066262139204671330983630541118869190566679172731536439271432985098902467492998837854697067010482512185166202667977049549816317973276192634047097357153397599170935986539118938062697889839690967634930182183638288705636711711049847620947401913449618712136062681679007175506547827884948804436542670987581281180844489097929470945764836299915310184675431590340490712931058898080797793663640618864283766246487926856771802094508782787294672794717950902283506142187691991149598249401262097559820466672322507648010804550506031965517775017983757736633726751694720024825008683669460834608177548413651047873042077289863177801317979284029463749458797363588215481412846437989603673885475842005106598921251059019560838128464940203126047080475394977592256112215345517790807750555148184226144941760125887112800866100253195760415163635501831065615474118611290321258841949366757228060114168857877577662979702559846057299894089294039899960952250131943216463623920590286866070486350766926094469933625366069982366982992168487464239084969919093528131570692372916453064068000283713088928576820773191594377001948610095169195553982551512690830173534854056434410998439346842848813494676513207341601506652938512417544966827439666695298175721647606163928079179326901909436036852818166660157424369692468376609640330336764298197691980541854546146778272751799472179157229399950978542955119420292829158807435355835142508332908945919188401739678370137721006970302235419183797873975652376934847574535548738300613815834976516540561630639315234780172925930461227326331910755077956492280948319646320527351733176275064536930802195407866839210274538958765190341438744538609173736349808361152709686474979174474334898930614167011088445852496227370869477782397706043673165250369393702747007862056126875753465943437897305838042316784303856560409278001077888944494056251361042134479161764158446673976239491856564409178973257093237386002919212042110769433888455794819708482005101544401838761275224829677362641166992656518156933140406965539487517578872311321307308884079786605340688527144895450902214008909958256743100019662627170845650375921134786280023128734167960177490415729542543260540284138706729672389508964066415626516189592962679245915534175311955220023032042980688230584035608700328741640583039194078345320863570719840971661909501878451808071217964329219216372063162300095335597617868870463539893052013608203975439928013958132345873432721950531066282799978948596360177196738050298837794182848507635986731619617200532842253585959141995164290791957921690281633396244563454017954459055050518423498715345987369654611115384545778344837890916207614543325561311510157137654307434161695930513513692395216064986167660343732446788792615665854871891884136828223315463699290087339731191803227795702679437844870083414191845668889923056152400810047784183994238743666564456943372757202594500548509170739881014198392717728954848308310190371798531692446015566585810048226552188007206012390104974218917078049708219593770453987977546770565690857359236921908032708021234265898878604636475023782965044135091423719286896691376658285041216860108663444497602740083462080482970500956772485692078460531374312920858732360706578199227885615090016576218785071577820655624600693857092720565463162307550880308722967338602641351873282474920807335077194939502676231223576199310715179197325463518610898000058071060874700886332705059395391252340600953482838869588080672111796069483562407622261563049170783138141145448455639389304762610122564174429234514738705299819201215468634283735644846524730750310881977224009554581402258413450129900608135283435601617506558841912297258019237633553256810140390316631796708378193410941370738517797530983773747266022151207681731300361296582849370029717877510974025876650716456050973217326325945863960202579524877913217516872651483527790853910538872464335018092232068467677143895048336344490054721869650345358346243675052895558062574134610240782405806178042974859206009869043686946385296618700427870974319390639193049307964729989210259484244021413935147328060660108161274265997266334510855037749456186833984769106149120005273106958117384814044638988665427426594697228931658384493989881192183150872729512739144688008418537710130675346457277454689543895242821449311815808210878227822502421669574263722919073227147903028958502145916103263394819167525017284124419012839123615284843442856186811762035035530126358112693000769273360633947581826317065461835688656027126231883591333713367243324703912182186805785440210453184329036998453489183997296255553577454817306544112333155745959213845438683031092639353257943914000990356625118992378380827722510031237048815577132855889626403131436469323676974927365361851062436987180527711750684586238155010701409667090318337566026928053516968396659487041046939475037161520415204618171268215988200934176881179961009963213573549999432898809758667850034169636891322359376393305692570990448593215108588514117720736995951074136319763486835854687210950354402430786337685439551472307191828360462536295296819516953703973944579267277073416494394895496861007938383894110617804301957841349978025353692352079120444758970518011694813821697522565046186557893466774541816884670153874840160355573509271518558581859248296981422013876374982000193089403788915632051247179799344089152673114296707392026435911968879645062066756250825554703155740052636419109199172494918827181075419387520483517685706136832896954807087826562839498843852170206553284738585593721025743814770923140736604156163754306406313903823974720943836861404414610809459144186804163381831140646525935248505425224436079200484566196774006237143848515071748217594048535601252911322029770513837192032701601325525577778263985383150450330051014155722987589897835241542246842183048729260343846093295750373613983642997577329937948123178024989348144708307297535917663226720924818003368665971530361141172794825607725121421224816363079727436273185511817655682671206642744456382622232291132928417101355884848978644750479980943486215915826543139250424958794112058552167427364593875283032212364605982058470321917994387550317109018669984134286469454279588792828706438895459746389064689078471678775875737398622787423682972965237888031952051402629441553306490845684294468852420976277373518850535845176783557673150747473010630014233881371764282981860525138894838124480380735783248193105105473866746988141561459830178333182004996527831291255419109043693917257940738764625945084710986912385100428346112729211499988857598885339572645201850564670233985857092405923292174816039036152049903931547417977942844845276760581875796134738913740903436158321302054508575458992280535391086757587649489373122402854684344838500775291608477402690241081515319681952779705530166809227634622218217563790328225254068980925654085190421661591635779817813982192904173102881818347360690325086243623308430455968066693350436104862817570844643564577795617860646605023030734189606132376910679338010099005185081831051478679589649367868041493880064699023176714021201684003964268222586084347940348625918559486826401521789481157528732286571838276201966912548919550060513546142631797501206814320204415723295669810776748377978806831617679444391751552315766656075876237376776566658309204688111527284751665186708629870143219820110429555759112894192328329760844189641132757647656086848585558149075592096036640872349227251652101343789645579718483735805763381001404527240078667076439258978327751719272275756555047968773164152691826411007117712607806313286044534488226452629908728829669143836798683482945724006017139221898468719621946289787178434957883762345770369385881613069086227737513360124403029669067378236274052985372404051927243214074308164218663529792245422583020296793544917615498874122000267401794070592024335241213547965385657299549483459866923002690230411137667584944579039937898414598681251171231505729892700052015849885529662572357327209094228784274053540565994419664048568742120096950896570732154983734611557729131113432526828061229392882998020416431844772021124905834033021069047914935621254670337162203533435382267993683556496973206620814192508340700259229199732189426096297563378585898494805867409923408244411744565575812272201950328742715813976177818685790653275836086414167200648426874624300096879937805886712566767432628708155522324434805551695053982949064542988440494537683855894992966553989627686425414895515893914797913805859980533429147434729093861686453001650496370750726196751613126670147967190004871867360768257268878626225099915990079166419302270096872518109825589638418277362364664504486538529736591586046212826391308234507839721561829673128129762368448686788548311909848784142907969767494382970942427526699401605857579827190660328515288026279732275034680823699414078411215633325382587961224554454935841934550047866492166713904085349790136025658479523844236690504481787082294898787331098604622093875742041251427453892892940123329755385967823134635127529485502885546049932936879825271228736031265301708264636999980589311851830560247435997773094366280401768269139401243666043834513776635321888175225908461316552700583699021139489535807361475940067853572694925694295122478638611478920177548839333157538726022331492780904771591296699215833627143002301007567187803444764397940543321145116218358402963121531094546265064454890805442312582194171999243015285777638883333791665062872432436389868034320148421235479687405622926671283715081318286618928529911413789116175026668257726424297912270860188955739875913716676116777612152889758358011219932501578917793954756437481872673955625269808338141806607946769037600253073627710172668065291091423751446044064503578565700286666764102215884248394392450180034569013837785135483432896863748869317438805493801979261860976137192650671196302283717807134926483937684718579257938456498216008645210435451638217317177199157345843432000820648451662061487976738167924392679542108784803497343351179453768192732282618234877303548186709721493100484784914921373742610328580709887592457781231611725146906728546113124945349420204835266641166743991599343718481502679451926878196048203631791050692317131936143836773873014578975074004072308822283098876431499509434151025506525493112670474795847684428718771171243710264148556512206335765262405995269216776317322474682536303021884890993234932654408613042616747083433693256417724940718908106499873203799245629946713102451839314209084009566164335989517122371638231572446780442315781816299763774071164728480543261298614627939101979407389613635181243050025583891190095618371574957571281053610955903433946443283301556156650303105044267314184767885895598806943853036203298152312659869927466074611383174460615436471508447619318115814057678170667961459319328684410540276059330001884573576636642389316230060459816188078145954083646775428131215667766364866817771412578513740597753098201709022178208820349072003789119122747511154804212016969239890373348112444811398877416942116034870740614654352530320345963478060635062603673164090696405799693347117195889015658196481762203302862471961022361125498043969783790461942282894469908228848577616177495669401718011615887662813697306285299242656039648192956253799316664870078325393835912654872121980484412194622419230991838323242378382721534499018494300208227480041375989706851599514687992268112793544377833107921221067266981349853707285381100710729585976286137531884842872130508327236447566753638751293853374909148680662633636572876702332434657304217746235928465913956671538773992621174093158515165868596454034390406986832341267110685478063415167927675685134648783028656533299364176763189793171465637482931099683675060090432406647778772095053119103315644880910766018539910582789222084980378668193648506724312179466873235667188303497332883901969506162905105339662674707159745404959861046165749879532662840951813706531300611506015851887951877054952853479410512246498918942525403780517550124951945762014953237606628764023654341705777016491915801141341949750853566331290113160885004642816128539614903427857418743595683970783700598663186735676556727359660318075959496507465457288712340576448320981172906859454755723155278696609916229800108334064914197965713675968475303374409040630718314776278634110355562368837086384939925926551034837082394655860364706374128685804898400205595159372305807151186161439674038982549287195364506795194863443751561265401437082543379441511657357935303422842635443529465934022775555453408794956928695078991863763666041651622341191815581064157762890541165843232467670650380391585878081037735757350010188603727314157866055782642603162072587008580996614805657790903998578361751070067971286515526475470482036600756774272795604662083094424862764633172810675711977625666463486610341735250418145900732099165697819541911439475410899533795610545562963045626830134014191086621602477741185091325746408485011316498198368906144371595505501428604484827364344119718964273776390037433669892773346456219216377505181403952913854102060026411092505059163025291558950070625732020844144796285434019624356155702634725623818262968967453954882594536682878474706119629241291798068307379044193432048002291702354991507692709035913356357855375348551837515829971326781572395086309727964536645887741475255019428713957815020726210562004272441556754174735751107077746254999190012896396667926575352002377657508751843582357625687905185653427973164697862473087799004224664363569828881391366131501415521166211847313116668008338806505226743281722835553317956181414351017206333756074919180483032587424538896726103519794213003410480363039359211737656850317833675969068580419804288361054319117850901940909948194786227474388064420873891093330136471718362229346068175013362878514527979773725886188151625066688407178981347783132569801841138423154979588193126532213354551525391059845429726517966372510405120803497682766962154261825794357721782540956005147471726883354177390616158670442638457618894575688334084206738292699349944981019199896679633104924515749310012753434802656887899046597226632288309932501784756532393178873548443737502041231498639693205241437550684936988148876170866030246430224299901015923995002509875211727915054663326940764133801053739029863924681997456633596075421980197730331398404058606156236829411058545516354530514588905000913075665573689951799701636252008987483635314413675346415010774800674318332176097229335734672793155056722098178467273437140008441119362966153052583585216901770040268320409076241208179829732221725714231660085520719785282293412446387278904741721357643014139430688203568184045561459033467462495613617284106456099963567143234061765992720377460530157597915732789297581578597171272051013809934164743681778606419645185674544788157345091534664395508585796656765840473810858981800518722618312980928494450482320783983042460631327173071693331720412260739044722670593479414247872827920980565686454803891494812730806206352783381961693964647860661306679416836909852481475352859189662406944715491686359553629340265455824975951249059587034816535071610295386602698327897222442037054993218421688163407387516666477998860771116520568011345095060312994975742297402066562880046751725617639948848712699987866476288660895344198762158154519830523368600112574248204059974592299813334293443502893216606504143182345903176104012305550248861841601868796192591385637653489066019627977163698663366334845256196142384191549337486644076524216866376903133595045885736820837620076431556928183895448442551212198415575597550772163741290341123048618302998341550195172813210815069930503360187789365095556698251539513327833302016151805643935098958288665647819493779284376464793867741368901147006518911154683011724202479349728204383171856357673963153311339428151474067542427755244441981064183395831248001095363827656968466531728511612214127540239217103331239499151015610788249961166118810701194137625093643206296092928284401925910134693424004631851177974226499370586038150744632567307515854734138025064916766355698784880426421735234029579447009521071293783616346759592694813842668079806670419462389259886444438512334185459197629099468657072824919839129372925252450288141446589762485282096340243134850440822759885853428604611308550883022250708949445273358124134393664915406293166322399745053688715425360329494818513239524785423441261071315210559096608886943576047036813135665773634725393252021503351587837554922613669535328931150643673806158799011143058052101024588540333158478353063414701848395807503714008427301027573832925296193127948391817164877422126530898204462289455377413668082681087485045544346287039665102283662382686033481489822760698591233420583622748982146805502464470806129265092068054025030775969520586955204485437665760139502867448400278106668623762885733518219193954887659149660334622154585953350003501446579734075197843631019330959504274560934116761499716710142671549971588062672863966981630419246940699044861449579813506066667583308558093121783423690772977809075730187160625528437472803121938413235966194003893346182972336766334195646007593366389859079162476164164291377837985378525009739173928116424247596606719491186020310680871563197203723871709082541109671134902698888157106174284683632751889124020085521390213408266926905443351423168399902585762115180465917852093999069549992479868255913992211087879869426852637624641727443790280514108185688012914515647307325716583119048831489345207854042008797189120356340500415727877475721979134985506776765740605016700427994957407005792201903985429016228113294697702426653256733375031290380001514379442485211872328826390323208177397017867628172291179488342038431176705720812074272491020587483337782459476416272147242897980339257999024620318011879248990840370474144402473014642856515795434279300408501983286944746699113640554947816364922974035027246118730507193675229388199004337333361984893649025181714844414304451105219251965373351971192575460441090033470366867553000892468317441862641516583665554117869793909127939832907390587130266041215866915745376893763863570252124706134089990043488339388289110053757434738447851534936853156915939545429563418451990441558783131590018313929141489926658186994297458619657836511119976361142109390389473715353216887584426848160587516243283711995408558200759133892736960415295264893573619871650331902448162439058876062230576713207106795938448444233640267923858802206352699964937205197989824488484914702081972822602413169198625160544761058391335389782906075750744464901642893929738482964668513661502156558908760530514801424147512493391527709048162084432523023253154907555513650614703247707740436390358891655659511522366083431012519153957360151779591863419761408521084248476873764129733748449416203073725367655150868185015479826644168076517813395541716104344946197572974028565620328889365572052487448311264353416512734839056889938650234422742956997709830759181059751855840844438127253993356641316436809699440978547753458115643606797903917441784898022720641550467474349097005352644109802357364505192572949613951489004517448761828694783079610294579244299652736946844918913535919728247632411290385743827078257565713691647671769185316792025040346386056917990651394937319249389162377599942265969885341901197078696933122836156840812248230513492873674947054488543993258039761688800235540144960340541025665873885333172082674470872448361041923478826268527574224141764692627205957783857158550163062064540761553639272041290079091388250111616544913578428447309042045542831567530654823969366822341890753923967284086650364806786018962826883893082950945115903371024684302419754474125321659930171109816872291303822342471560723472677224839682414816008409823120866570688620272434380120761949150591099812640631891366097885709121292884782135373023795100669072497784203829130900205613020178287780244914358878810415814914590998214082079322419688374399076563130376804263875154466005928578997961043888540729737458991151823424488812481756820781214506521087454594348335708742100334193718098931620159852390893680746536985192361384580098943033575817095690354664276258074501722294163083680811824453794319383189504218481198094459834234467426801745834494035651640315478948655687100642918472826572168075019124837755819012997321338596410168860521130132679169446867381609340599074432845688286770643068256203348343727973209453189459740621348256968706626177691830681924324392657688089256710841545938209713768647973845511608688950096365617156073531057804293603368457219419033919515234613301585175382594918364049741554782819343602704571258312915853642551870479497842550630602481637067060959575005830425024178869732855114588547713197685315329589373656571174829413575421316117029581442826868799543450541755947535882499958636264300652507340150603260829723855249041732401580094034077072737437501355433414398980675432877382784316619369417518302060457390145621320859013397259307570310709380887613281950225230667308576083217394658415996838692239585558413688964967934479603866982268278010902067080272800141324833471815704524105846415644559456500992593399506726989111775980118336782224422278963294027592542923590671406600842202874992290225880151094620232780939693927343671835736770055691778401584224818662254088584438536139470576203067877253732975611776652269509337092913879554550277788471008469358371492459512040021599586106073290216561221585359083808245586106398074004318574486872406143894005480937477391069105707005871850234585185810153578195553900868249442649818036757823683399638851234672103129179347021531970325531257197953320033484214069804195696031786094601035303222129548169174286741400726033369584092785835192829935208024674823189203223443140312348372585060570782654382536242110982457964356611673165733004379060430029177335496973214681417079191287723188647366557399426947235471071244826036981278599315950165713372401678802651415650829200167746482124854801741502815144095588606326056955411368776550262131035172634957326236662340807853002952935685392708341771352039365140397081380968633748685143497497102309544402100966844648577549002706369992000654572787207468645074719392185611459729417920152384142993616553134677570341716998911096172489304572771524030410789026810598420972778387347315474338267085598482437074700384958231683380073495946896351891575164057174500065475984233737262408320652364543129468910229503453161212816118731157021512074255342386556868153265206534305712069739694829708920868828215385876584551484308311361249655971177502590879304083762252316344268838515121552613473347251656736498674772512364141960824348657757852435529899601429583397134440184467586986451768384990749053121693916543620281724387391382074135431321380455491662907404769899185264814695000599503879853356884654059675179909534629273238623700197290083320581261506582222720030293230007297664491392406464819113687295749994205836411937163978483365150065953273585722083288147705602400144372572408096495661885792446797369959540304643695863427901275043413402910238267784665819539944641043197532927152270142657249387120087491103905486548095036792625181029405991010504232682466673094740025925194294905340739968215162794224037210762210453108240283238342775494525226927687528601438536671356202393135290792090134365879540738401524319021832030988031246133271571903694038141002340471288276632600842179966714358824261875279448556263384236772043934257016186933720798348579885150779794089840629453491811251761859397478437912946910994735874072663811890651768303046543426128467228131238375872181868062329395735996211729940498993506956787416861901659405588934067069322579171734503439459542369248039028904635906677682551746038376761957819324540615101497374597844027372032304524727630158893636720703600719749082270353812488936874743179203589936870030137833613279675362689444000643480239556588694006624104871067964480794178165562927379368212121630817197968547839890402693779653847790717818181705249740240337901664034846053651252157547388434416195373799935044589519861236414643871235089705213383532329643383068528909897925668269538659650237158239388922656462339090916783923866243280817933530693337292456188657489599296345163483572752114478186729995117828185735375338190692978890856347903077047892181179945829630039915866177265744236557516963305341004438452888278678910790011377950599026399181677698269059389528829130371921573876497188088545836873254377559798441697388673114816405019325868691364004767563949206959077246571752804224976100411551778369384680554992690529501386890396767600673310609694873321700694426177264095064006864318247495606487991691408113090830266125241303887600484124482145585793283098663151541508087114670215242131495182613074427810903049957727630205757578496150031477578913855067272202790913314107309278475580218944632872950667655740475521337429094087152045372885212049099928991547468597018768768835962916980876005915626812570872659419612021639094497438969755957050487603959340431262485041907805365727832873884091708875312119539682247735194406516978620197060205069780509660717339495773150730406888304216882339821200894645729446368699618430445925033224491613986613459289332138732599656982546617364579403483896943960811690666739357800070724431546483892460419100292531700038294613681193945360187268712450267570830094900500766559287717070921948450635910098427066750872973718129207244498852133794435352605506328815567982808515895716732131896910679508302116709302345116973678744403039674538625528759281864384695892650074901913747589370731641719693128658573609861048896114235653457038123264617252872695115221579954676522983549449046521057381925098868579951457471232741761980709243339444415458712968492370393549095116133435247347604233832085225260410317051446056307325551650070666008856084027976548698039681373737759341943419068509316859525457402315823445003430660637167401964186360139180623393751786482278719610040577310579729121076707698369859682175785933474536988470375588474612937765170291617975197179288384250385893647703731196145374144801665859732191073674788811940076365955366499719205229261383063566739438268727834515933346690008632890443884618843235722444762356107602798064333680727336475604143537834338702109404234570586312372242179072435064015004639565807479971821586186049924538324589713643852457661556623966911379861560233102824014986987162086929922464032770744557981656716519780196047063560839655527710089924319303604016001417084115700552041202358180662674906007578474060080523574156082900832316805796589089893601420092781714587314300308034029212056344628356752948321593873309473776974577015035273470895744070268068477786288634212969045255415663484384686932520634042808845575024862841620106415917163445844100970604063512413181283545535539145376606327227661992562521977064798474780250683887198401732283082820151756465147580104275833450641677425765523181370512055709309272791599997440084518986626606946851411829023430211637149350499386244263056563161070867968133877763025222268194397004698415073200500458196081252645242613954374939397015588824627362780723624850670096030322441395636588500693545253043439421629343377145569335291278762562506758938190387047921212357429780717032100247652457094819964367736836320676836775129950215228273039380803113567310767341001537250890574960806230680145892998405142260805102766148877020068296266405845124462336549006261855768773211250193763680554523031128300087480518315302191750177341201403191658458819247667041499550553055727801241733771833705850610434057544998714863995766537855459770956740105190400857702151256911789108360408916947823052253866849354951158126724669765876548873650433104135049408673161982172012193361770830191466675018343989479790827268456341231785299369503182000206593542070713884660999220516347016274496852896512336279434700697775259491577012770194850938596266820128213066661321872395567086457379800080386895496753949820588977180728482858150262352268785271858135017149955081735510490113765108584244535965928701635475941573092613456812853338916447644771106416223838540216079789239528197309501763176974841434144390763268432655683675726423732513751634635840698676986578430640614106052253986204026783614199859745168440677741513156806142154657435736223274032100325401848848175639125867442727752271354797788218047156566611481105972599210397910161650104360467243995071768736168473416440175330195074198492237276809929918003212910703083891909985401412390249016175332274976878297546979882847244801754365857531410610733737162702595830735786018052066051289698837356203516223811794527037157502592601636442619571949592022268802382370758829002594676455348963666308695812872407655395156572337381973706501617811386120628581808670964390399530846717166310498889537252026860450092348994172304180507993852682285012976906956512709365862982722811370876964845425545510456161770667778583018770682267843889022552770949659947441441225834981253567696244367082533905536520059099302981889522330344076313882190295992415525079906840754716372817345901067463489559650708388442299232234329576367335311924745859572052739135598924298790800647048775247778001597151637605017435062907190231915934679829725021427438775541501114136731062108592037798881173088823033036882463674744233274138624864655310849199086499184126788131020640892512893148302817120999134318627466242108586241300519280357025053382518475104546263677789074396485293915489664061655841622107924961240325712554611167017364211185151576950912326142654344434241244640650034715973212457192035490736940777887326715032261184297900282741915973543418684830364589667498278616224898079437261156335557243121409686987761465379509904640235736064148688475114273348300304956116779533374462267364084233083071969198219807908611748474184702137850658483693107455477592546318587058859141653094676676457422104760664982484703626653354384478530594320996845859093606607367664278241603060988871278562639752172044912115551005210621810801620670383428041823274433781150992733541143502059041538297461251506938638845277800474389544159501188769685582980456214800817155971471331653722796386440199397703135622809826202247685999316889298120875729143727069733122718014420818729352890643007623521360046604953334794685223989086792790594319245003877293037223900279211062959994142022972143291799691701959816020142851650496359068993299902801050285959688777893123698410734530356493986954786844804548193868002313484228402754430910671684904877582419094848354275911558984234242247075229320641652135914831525370957143431529982882745551516273301628930005143488899250500737489246360661100367974311488994894440055674850691223070317974468503651980011693090365241844102713927982301498377990353037375299520517823491695534667764703813525502139647399343807471586191042341103753076725238643840716869282991397552319812683963529923597791085675400453546068460009775762104171245471384496156622790852043468216720470106772899221827949417321499523573732996349586431905048746791810149388272193735960780620059803694428530851325400663616326468640362012336412476132510926975244475654001021927293472734001724851969504373924889060102917490777228245875254846557401762888430740599370023075434803772242827438886500647892492797396276763035744767046727043467015825991107709823869113510154098417118082961743315981844909290638296745359715259367858449961517234844328778003399528776480791750880376705307978357406603220448400772715454883519783910163758778948932910723579016512934669570058781056194187608067634782041166636723250649932243368959489434187189469482920414219499285489425175774909183540144525090788592078872831350627721561936593871236888791284169782298022477668403260667307358916265252372087849880287463673337423459278992580445953518771602188342287489695785528244198493945312962081428334568169304141708353783245894247484836966306281723174880338158759946211047340525135614807636390348164726775800093434420747972725169257808511608465247575763601671817967842563043468861965764923768896461703001016981926710112883545217642418661385364343153827685868207505189968360540175675107829462054810073566772030677535000265536219167509759548682635563084293262704313171580887316913018299452577119539419602423111948889449522827824821082903837508486777767082872505076643270072205317267909173626378120173054674018450797694988376062887730285648481484089773508191653116424017055793221727838288483963312958990562552088307970973488317804430693914033506912140200441998376613288599271926491230927035197322673952353676736959717399700187859949322436037456047616156848735982463344284734947023534185172381070573865430383354798596613717066095890307873687845068766068516168826072514101889410211880442552208612156580301110066553662210152017614975885012970560279401445960730268051407316267398029159607645901922779920085730863946078241089300309505976597331066458936103517293600630837584837956410373650105538900070695972524231683145485185626171697758120852732328228098201191811322037243278822761551573712926324851827444047986349815047327916224651911583268178357710243371867014828577692810039721897031649156085191995031432528774047016588238062601521640517933861791251478739171453578174553275736698627060139282307646185376654968444824655955860331851619526797568773913825189052764345447408645390936925400020429945719929766310956997663110343486380548912520606164720688840135576576221270349257174555123526117477257078116088129904965629778214609546790736550769937580813392026071239162330038164762601440318866353549421025268748892004449955148902561045638022105911496422423830143959679412022870013853599852725133105668624958992939490031196437776782798420208172593935193002709755634736749259133702447195790939915090096703914134281713249966393234599231685144090214740805428898934266260141824647896403846842592116073282579600550699012380325592121075668721293917787143647911562304861982495523455378407742412712186754964218683793529817612824760475824277385437845969493791706734283244850523361176321338461697765030531201559541553163039713481166393229134595542318247604805750317742123308610346172539645366884876837994800889039817991123575253541070876971834580583318427527150174191569257813082054340859341552360355782646629255073355923679563526076520143569887786057203843746422546400842592730201650106670833416592278715390469516903040253540797935196445108406478321190454733252995962566437255250167240304755985467023382113539101851471645043179630647357885556132510327154436074111517352138067977130592825468366629730268479335022935456839990322856971751009830285059597758732867651187558494861000624965914713557375985789731005396315887757395571310895587722915333584361774530350208001625518245808797297604114355821106808755345606080256275224720993378138762610317905065529403123148433937775376859051896027657109046280733227248052975950182308985784682597936183146974384189520873626907587683889585092539150314997324525946918554752865410725491348516985560297407032103414380953092427981305123057322743143152972506741369471779279975316637969343358113130570054641002379056562997339964091682747975053522297364748360439307655086965088040328303067552187094526932871787349705051418864805468541472794709919951671626149207706811928677825741296706328521478650316492576352658024844103383981312949571425588438524776354255336891035745954982408983151069508630267827760591288286442201039823429745472209754718525639591440878094884518071387704141834168068768147435129291127958503951602618176062536890104963947179620238533090736270914863638986376880264421372238742218915863012087322140775459639165483723115296172212519218489210937885368511495074749990214042792377386787805204579708350777500055284887138810558040215608087910786550458765274779486228052110216722332550367528300291376085215498168853107801921095729325370321176209281648232206964242832951139577849662491917897192273645289220663464273035002192715319321120467704485063810006121231679274117945397563057488805226341770673861128762798219811006671669487787813046876852582962811956426715347814072877817878397790834690475822510982046736295142288061867612122960420942574286568812642388249413248788163546648822766302436181442159334042668074625911256878035156671413311700147177452050591019705578398138181487632023078622685976789261508291505733344460849218854989745880035024067654181299246290260563753804309916146618635874392793145690654566599554241782190912090252405635368186175053398577598516264695736807984138082529607334836195077754336997573698307114555708902071295339222851843156521093533317685109694806972077031623980685979403240694154931707637798356624545697368413578075032821979872147225811249865126165705145258174896958667979241805334341600382049487956559993636786533880591886548128210659084001350048167850894128617284577885408284643090502556683151093480345674092013671163767246639564398132703331751087668758694238976113553594584655709303225849039543814963646659608729197050504825812931299099173697880392080579094306755854367210772433081283614929360659305592293267651591749285628141435387684367092054721799165845243891919516548015004144784721063379208330011380333108728884329833023100323917967363314554706758236749025773393160499510803501048763587159036177377093237003328560104090831794723490791258850027961446817283860614729591086560300430506248017641866543729003688171085266901743832799042046832146277957838251717702523268301978853548776729238483920395280618078120959957379952036150930333941626388451570609778461790164376405070253038720997329432585308507971261949993670336312533492013049169287163597252143111044418517802795404093603345291232099251941597318720633727279750818404021935588778446468156560830384540623301070497830654935416302963504876067894801907855988140433582884689942954543081189212504164728337954642391723336937022003258708888646761716883794934858143218435170252771720273555783384596794482280562562495264704873927988561319374420358035420122054817364216182724792041576249480043572458979256772438501867687537088350575899939107740841292873781983579464650954098008450806087219326728701616614295188708609275095149829198313048193218757389717523766475366869568579372027945100499549510779786810745317168961732061961422029122659583757924496063463264880897170422829411996349197964329609406006308762532125657370358500760647962982508794524331336545301194631543053077502697879892441461567262575566391038724583531732362997117072130311391442247858465142103216673337343828156953401207672930210603572940779454871451256419010658133398376024257096126819252143223861218032663554621135027200225936739445800323857641552348136166482720214972061267405282712425615479421262852103953338284274977004051754069688317622560971269646501014988260635174409403373002780038643826577171038654089980083997630065023498038534647882120547507749183152246832449389700320830844283532000667502407644566083465000279416349811821680687102670229065129750741150723411543064122679856906607865202858703959931239127503176102677550002168290998210460746869175763827985668077597752569394987854331923916056644638895550985724546348016527402825814494303399551361674365325993381425924499788728770682690390249140026747205979302142392151640694550542266731517065304751323065727496066534272322262014895595922431799065868235895901097878915521199767672968944357505423451945788205052901827490263259667708294695467947685213431987577049687044317815214658039727342109322663850759137722687408437482946266437532120477177197690359424328357177863364846913331731437499526779862384964452936357152079323862658801918259759156685915490523730898550686108577391680232391082252712179708729379778381266927477721638520038245374425082587905928000920814598181903875752609438479310795017837415543326301805999994394926621742126453774233839245045749293727156295150394961586271330735155793803649157538664793667338825700533081524358399164605527743261697566094303242897761691950939196011689776214665073176941519500173976314832332225601910265998065784219774069201297847412785024412908887845219265099190598922591257455199612248838497822368738909391905069976244793661140491189480862950832867672255478400933833845593205475975341999932993920038733704907678249007013018905242402059308364808801846786179313291321691019329293526053208238550414464981378263832995664683484556604578924604495912667318646245277893254258011808810958499638265516784927879728266246445240367143009957060908410105843716796280251554532840864471877721129402119638115345439342555103105803094307551074837844821626400816408061608836957900635452885567880275935388658051560187454421181450380572792265334486604873881729557709103861140634964570752457340923483183699096638763607878936293952103795741841415495226583548423036978124009577587478531172926214925850789084936246096558160870380096976032142913365478509917520510677122823246687740401114997384683202150749130750753901603550377747721253387307419569991979990236084902681417822545062246036676285603230473390757743883571435010017469789088981348183850024766937401450386284147042398901176936571729888952680949497735406441043531927079185928619806292468813945257661331887133300657723423009147963377567751488866171654314411098927679638468090705796789125569048565388857313244925687955044020264570986816405775157864450483109767238719954764552390592821221393616646633383811383349722415338455247338140978581184697409716199909744917634550139324066494569929975808859125227216236806850902848569604829231316108476929847333690370055614438949032343668519149263945546519146752384079279055799156663622623619423344299269247128448739513254354228141023459128526632563643873647090890257926960931969708967758801196012887893477568815700222825595692432806655509906370323684135207702697715559509475393813360052445690978409877248551282737440795035978881124744608159092991450627035626264349965933930083827099548761828629174046524015097302044405092826145621228825361825171933390933028362506250823692066684780026637894758499510819015760151822467170551685616086760931801991956242454436507097290178605497055164603381269579908974476270325097516797881139600526278444008926832863418358282389220782998824492685255740529702964944050288508134895501476521795359777933994319651550043069377961572877308993196640662163742480585400323867039598998226773414646258878745743078112583824808177368971076458509171288723847015075194539677102758355534772324214350379577444906037896359937415556924025864559713442349805484941727439442507458004801022653919280287961963064961311777603282193747646334948973732631802137284254204474590231099119517400107311208322322819011824220871689039530058793379129857349450670176557882544111800520158243819447710914093802522323267804921546407734825864778248118688979140752526961312313549474255034409698875196901806157303400483946523275068135871903927273514974096879333311102962899725430993941106535347199219716980648768638739114901224786152667442469617790054132062548659942853013021975131585470482017200963226521089367633297624753042579494334990145346385765417489504884301686756085125070029520490220756057573563517484601247009064356429192048780941848024824224859064169923450451905948008904538976478718348847476286833074165222603449058393778224667499898905028053320601605952823219331098963858683353520345324105013259717641406635166527658997090726676971836434666736176285482705743898917740988731854117044943546362060884546865695365707012778496635261095154820773676822272529224332721917454356631329845486686648332545062377139150960261843688638929576128180660593465720873323956520045128778174444709414834787114536380028286233454940058214027742857353616898067157546559803457670370574754836332458963183060032681443815243994313839141803532264304525192494848574692436783928590807737338494417320501051386546148414655811585523927894692269457114219093348095660686221748889187446560782579924775244355106620961241111336264112750231973559630349569205815831001087596758751637791378808907385510357190344431218887915790719785067819959636476664713936961044832679659878803976088847771992142183376799463932117826810524180529177923162706783722938849383357968478734910539792520628268641827379958799353713438029873558543996615768038448040584673881078286456599079086337626163990365623938972222597431141477921629166436694299636301752493805399864868782304485687222603806273776243905290823095195952513614893028821232826777748915896487065030467522687357848592138625815174940419538882985346113930141419983353910045066406554808110972644843742571164558240782460868381568916177599242319232446661283430796330513137057577573233831282298029711775650869506444934102456049477783676612196120460605928492298841915921667729765827724627489483463783601865968577848326646328516092776026730910792873241528644386356164761597497205870726459242147569709204042741323876632760479411225139851103420652136318873615465942886553842208703596414111484449989994025520881858727125015961307428818054743807882200763469305248423514147575591323391251098095805050837852430334956044581877264137506144170380863717126164118557365336374846829454798463336944618874377009995547871237199833702925374139195409191786261862703184020733648326099635811241821707414201601654415618164834258112600699458966839832415070417745629305768783557308310461040944389002466530223475196098484134959540652016989241840567072983951749146326595143702498498959962069213691529633551664607620298068638257308952386900152813751003283528660616976872444047942503855233484815600978920336686121223632531063403482384052770917485692486856656715408744825053272277342163299216137032440567141661307420632956252131416050190097890474234452496400084497118720090386027461856270481706149579108884612947434848484451147413659485724018933728062699023022665280883535132768167231018764378282215864793834853885746986827799138350708378461872471704883527990806501774416583217408510438293559544224306558140366958836175537919987144397891911558209014547993600284419791920951174550573501444263909286438371917935312535266980790419031054255286428415435205466790460115959978018892078074097821025732634848362081371107025030901140996720809747643558927069349440919369307196873439473762002515431074128956231804146657824710060888209831624681034107580904088123663896922304167184107883343410285825300267435844855361665623776941153613105168171913474233212551597332440341935251780461956602054030793889993711122628036911392475055326250426607637022969286465156946482523404128666511957537377517668815967914591878903487973574798919724089885775683955406478879085300612667526940337664280857575045513309109755635422457617000375560298604842799693968242640312992020056331044806019596401360536796178908095450614558274893579081563840955334143464190836881791320211279711790089226373475705144149771895558452721291054186374106536843430458628681147788084318211549082874957867576077978030855035611995061826926289074431218086048567225875807275843622848310067752390566768970346368897527993087102327016759953682936433949834068995792616343590271190508597547919999760121512572779069165058441405314645265377604649197868879001700418356206118599470970634559827027105003950876012463489115311234884425163726443301653488501889044959318003671742982694526983221274446803614462918313630839910112680387852680539070503453363036300326788350973108400254577519479189263467263778273981364643774943249932217057601246770356074912538972937414621336837508827208771885594391659188795587738724187493426727530921792073690684140849729528245835682482231169218875410853428587037337994950670813466764306446447077783139260360585180963898857797311987684135054434854665850768120625427282910590556643957992762551266665075964952517139959554268360172127483468680263089721099503907317133444476553470108399985056864972261505293296213610323135790171923721355355701850569897224445233765807734164643051807743206244874570931514150027135649259035586278629812561277996339221434629869794807993978726281323632255620679609440816043340941391440050763341059640643585644007380359461347361978516599565910106912565995019547876774097133130554484714168814838920512413476824333667201650201118587058958738538181381059946928081379236735838178271246567774976753798855515018753812282895410342459547408818277093709357301288559351718382669914374580073236490368146583093934776658245009778924822363633937040689197895358152063882718823657650834901778398966025731838101002739403579066257638085236578316772094134400579198385611947407805208749841998198587158514057347697889457764767929358956001516110121165239954031091719105394890608507383454050117914724590732709514816382921240277419276133809698377395120713168566719378744124971143582444849229919312780135656288106136899053486849917653426859988839985910187001386070536113389823625373330243125532078732032572353242694398910488672541473736266056767778985264853005736928498605045020801216522560646737036382503709625048601297293755279358185887136862486823696569990746582710249657858764383577640499595418593325753920839573812614301704198520635674913186894806452173956861866583219466520069180395707837424518831596304293231446916766295257558080356231430673089802444441281879444480298970187294466000897979581180472877116619563970036905640563199365430662992744866044283062973921881022433546252941537104677190478688973561541889480627235551780112876658820418347594341601146672063180713319073767102613407908892761059711257753010530461165135866538075159532814866537165954150369943145792515901847935969317347124636783287384660897344733712609638048163720175286810295674649435077246377233887724967909673295930273675593071469077206798657139342882052369170195336320165901687912315764463605413338888299603401979540533734487713377543796061206159301090373938616943476770673570492226943215550120573690914661013278094270964740295653260805950852694526565850221004244451953698698471594323269464961391952760816316252970569355582306287915117710267228032310623249677639634933375349123774548960772026974279678137063409868493067529475773894251077807299384200996425677803650325790011268511351342191633690668334755787350864792696084536682047958698743583812619170944712589973636579031643524633570544319431032538206999191728622266911597886787011542755193371258497619827877250733952110099984843280308429970146273481506325060159582529643821605470115834474245691158244848118542031765343973935708970382555443558269346625032878392472481647739163121704552339129026870858416817550274067765154736800987532629231282818645941063388114259453497284338337389800041458626400385818293462290889358213383702245801298688019165013246139132250597295833861667369085675824272676866796034371261740047617724261665665931041703584354077810943629133632210151148145732862678135841678592927414097532773514857670222673211423240946107657226228114614633933092702008684513497027275237755256432334163456733743778077259432137289702761872711863772989189712364032761167777603506313508023049426421562938470858031370718504817149914103624341080122977358885153891956702902980459189402192743493676790921442341148764098004192184906503044324895236975120924933947186263374201492517737199252530071148115598213225645260335172303492179291585483065459585297929093964152789981872515896955361686130613878122391933801548126029395118385835037819237546098948351431245311701863326282794007662368588396588205497812025349687785353394137570847406707643230148426916107501653814549333873869270372750745500596659687712499922684001991843932177018882054293433680735114171550494610584509298844227304710891588014730737994870109892966579534468068407647630733499184839147481544157926349786620687057462513358180455525205433233558868876422365881469007841844226138294176024170416487841810104390487204386834495626092363221222270532394922595445978176388809531836795316138674584353239142780303121289328604094471310387432854994681220709253577070612656293632623098602686043702779968997716177784623688537974281788615244639925144199897830295129783914258391657566227717624614656900470256410087486090833734985626693627078326669156890814212155176849218515356441609213461836467820198440313786082045669916171556801512067790147378631323388008187796610160530366867430429145846171778832502767584758856615725029840743569394080656975046507458607744624757600388443749159570827590469588165302981349848179724048145689573799260758425572246135066142112837345246053365820051597618085053591294541074016642580474109842269205565362567041098083719277318254428369190547019391699607325727323158275785871950236492151096765498669695951524034263634257495145946374844032189996646092016303091166628130995880575868590010052408155633677804881088330940434252156986221664607320254887659878735401764559451702192364215965377053048000235055902548334388907983327765127602145367433878709149905510602573784435050457368765256090510129984329029368616087409184065631943205497047831979975247416899129655299434216159906612812465566286589943450528762170313354290428473452666893269392255090934250703924487155601600177154869129353783161702210607799789368871842052141230868276565347522588824693151957608959999988687733836682785599762825274635507767690034775668129767773234334722642146002309744727541483647950400343038229754006518135876367117018419785569767176774959049764139076859633049544377980757718343123279574240960313667834212188576580968330490957217234122725210133460224182284886966234719039836340518124675498687736779861914450899764015086920378797236130305237196380340730342238144503869521492629567025508633670000508081455320639510489610746542438254795361309676885789401399040964409431948726890283762465452725557190642772292076712438502070499045343176406342668970500888073549482436576667587834412409477890488383321974356528175086954316964814749119667297604139475201863615129754251318124919708032552625451583666943832043263419123452494365212279498170402478041225287967474380785791106212243891197720652122307444374083194013687153692389076187886335120043044111973697637215791790474259407143967040892536538174890181044125849976563855004982109646392931629716133190162817027516697069337052472240714182747817116781726066711470634304060309715365648291563906025387918980155715527479790099159655436972696127564121100112687652811176880587519501878247903210003221687638011078980503759387006049859848583576198758602747774288361919996925359708871622582605441400502358132835860636169176317933572173734331057094346904601376646241308065209715339227101218817700053589177341376797467232162503368684461985233948326127299027066311403910345298695240140292160220115605119682637107570694643746888293539203577389273958191242032172583284408457592727685740470134264273154102258917341851965615471071352561324612448593152667010360729543018889981698328014892613600843614572123682518008924257683847498218448376031732432476493101130098340584585473575449759421167092709913695281246609608301406810665350812042418318003551029444001177886736831334507316369000916227862676684867751061893704769153004674551787038028328483024694119561336725343445654692686008006635651367482332102902671276030229912319293267157513651533657038858949333376850439391384726222416588114344669007813288368137652950845209899740111767945314524567259062006490762196569100665306530380563728570677909084096884266911286382774832567150297703051429301411948604687382440680410850028658860048678683004983110745833131168414313044753232281268255327649533853080663617880690497102252989274485295193507400456869476345186824800105072682174051456453371504858366463215163922494838390200568537176431542906997629356284644081093331824580662523063339948181453697203632694243497063325144767982636056288472349224478223918227388170453264456801087986877830571778381933180130413281358995293210837216017092956172704321826562841375084126270964155175321180558626519120736277628730925763932754088556776246754936981412943363398388403272951659353007808701195585192205771762437898843230732232393840513308616569252807646009905069358680310235828130635225670741918451054467519951646145392727309808201747719533479209463497827519584701204958919023193058196528022337321033764914753337139076853030466866719102157505449246071022175511463838003342411813389393806483879121797381709750367867923715427378583957923265193970622343613152770333527843433580332536967637806851894733806709300749472567416173760783458613926139138350928553000044065205190494226716028787991771391219721183174877760465838864942682863518975305659494732331053743217069805336554969244113948349959540380306273222492110170950864347734178431014596131287148939332853191684982120462533694697353529196286837425390296964591706601408755158651685079089733761911099794623184869383775403122097239441213647006762691003821710838785363126808077804039527405382180222061231260723711894938471229285786440620058964750420972991869905729842918932533162289162922655616169925217259832991445352358185766222731883148869264050522086151064397691891278486342776484128383944728475757209460245148326919083291536583352589526051055470738081062153583496773772975355008349727103830016170219418728140768177930851769835755933594487160105668899312689493216831587711697163961591901866650650685314844838433227864340764392048192302941946438552506359366696189554218213255337323723438119578939396890589645006165325355983474009249796094289403268141192699055994114436420788782679484156419038266391806445599568301293099972111579273741615025497372574810082270728819860549306233762135557304013018950271174722760252015603435761703171852386435843671520584961719322544492623513563957041584559526618129156118264507313004112326508015372435072793285336083054325770259570058867467391683811227837306211497673170893018425817383402724887802709260932887009139933388192870213447950415625250686112929101255201683963701749197699796842489643688998541515097113370088988956396496252373503770558107107630274484842883070478985548989143867522178134853511294925388869538971815063422546185510641892912529076153362836552537554841258170826421285487037803220039007949139326135954218740893660897944877016197359617392462208210006615050213460312423499300023628025446230278370386641317408516152408817739856667331504890631268039065281152134966993310815864387902913094365484820043744863726975013380748834945458102834773541782065196159365513974848325040648457142656415983939259918075412437464764716369514047515571750350500323671220204038684159825304707330659045099713934455942991702978578078270772304627011446976681233268836337748949020232698507942700111747943498187010963839520490462983106702720856608978951357928544364563869850135042440119993326426645248116914760594423319186025196814236301366045825953787534086386482671797993131085615136268275864504606884281836970983394896806826814360052989923345047768706958248260639200689590297597617117068357660785504919662520181483860444192400046842974737493502734211445306055321015876069790016585951467399178733035032005429784556830881722140105503006772795838301684364707935102285275589062198092476571385622450810634355316674057505092607734363221967161126178340273411879963335706456764075062559557072635879428901851545982992068163294538801314082333068641732486078289220187260811493099666158882850756914283357373080309975543606130332609350374742677404136345072451709272284661453180454578394956835512605781273916585592435665304353804120391151331695074075683997257022029627978005089695086744277883944786782684567049079783063439363784217132986203434000251737940364903647076568402582485991846938256649515528073275137767686342309945851956992491339048756796252273882293626849392777029240388979730148212317867067760639465028352707420679785737217704866890955890733394079681116124457734552403424801067599852806809887554355255423332762745272390696789051284719102668785975659698516238229199797360677023561145667436594875710478943526610817607600353942598165093843036288810743362067499019874859707532236298049825321955174730117964158455517409626117038227659371759244675021219672535765137620828971733542542510248627338836014828213244694638083742272842060339363911895341216224975631323653406198020827700755030668321218543647650575508089059828357837151718152609669781029162532561120459381301655985431601875070326086233509165887598395289266607070510653742675470938156476794521832916858095338790500116526917761675008588918367516824728512732876189425549284381430730948147531352710731232448669601915927083192644743081969606070736605570080955104050157594463376186748297269872267765743816158635112170700948973951853651949594750965604358400735664058945171968585412984378103745510553786892597709239709069705565109554892272963289095839099210180369952511952504632045165204506705962142650550610153499858833592526153142814906227458714713366541020982330069244006802232501839433328194194648527435140451793230685158030269149629767909532436735286789240198398515147006991492357515556799220430770833382044156110134193182241222958549927622491973467870839973501337139077033186425940184836389538992694790188979862834229727053207908314839420402062432020925287104048414205136945319686054773374608947436326807718947476134943838865146759432604138029402264280340082043070665577615615614717288984131802718844229769137374870385497199606061545848625209242591761377611901264028682517470845440107686438077953406905959639765197352573688078605368043107542373570047516087059986765440667714866808979012939008776464189949286056128894644568358298953731540554692428801544310332417298447373908067993053290005292912233939450267635998421252236427284236512168411294226204760973364648975795432817412207199469174843753155405403385403876387685222408391985011376481072196626180085593118719137428667094703899382740190835069953023461338555677066279732460569613695519031518491445433698783221845441636302631955493688788100702811473862459598338083031469211366533720899375474469636695330833773076245861642590760673618243503696601414764868101256698710987068448878046814571888723958693519037719209735660491847201494637541377201211690469722386078826130548071357255105978647965108979184818222241534641562817557945498362396834739434261238598172364460370655708569887783343967085697863548575792868163295868151993305618109875400055263238304131633899573790374893617405491697057451186188665048330143616980126051781907220854754898882265175960761614558009128332080114354539407708346364561229198180665617146525311489710613229577272872744426288771853748431322918234432387084286687987975838669284839958708634492697020287511805265260780129917630085247756741522110704545509889800524204795301317644907683831525528841063808572827599371663569130937799344040076740139976095616641033746052910348191610123231846520619971127368123266709058161286656530409329124672424200150064766343311942651213037318191587994920494903552924147527684822792582130706012109776594771439375669082026844423693256524104267145188924362026955488143795881776553931168754042173777497556313444608304785846220773361156642489708005074345775120812987497145727642247889935578593607258181701839344311690410482837578530408803400711467395707258574506776333511083058434939729706103774521885279979883021004445640980984946188066748793877229341661213250511202862938268703281760942114453098423484474585802066298594127095721808452435073902432745499365820369464460664099936674264678564603998245990329225892715372707854472843419872993861292742467288342490032254103937144262363360075449639974800121500013093249568133440806126187688371076725492022633914039845846290858721924133968728781807319512051130657305175156106178615981053308394018914715337270091292461984236889489118783102625219814478736351094434828148150374834399429311107782024135147622007777488414391745451491932441911880681381428406204665969490356715682870185357564003879020142884814366512037486596703241718144543683154635611964752604859451654869674433943656377957982474529201109964083253423786381835444055303325232757208205946110277056007077692826965157231638210871452647470369993311400667526068019310373973834310062239573100967145393117202067454912107562479867145055562231975391854199818238878257680085603571038883450116158862744910457078556385549478641047256178279579994809565310231318925341357088784169971214767424518174042068904821027492722053507766463908230030698506940052744907098672113829251328573825422803053313947550432696230621568111045004532882875766947503333425058391077839704875476949292966515828399978180467991366873704726708830197951179754175488612160893838163107937933456306703225978538036563532410722635679287009849577104983995200100712521644261835235022524227940397656837380968270497303343620195200977034136372876750221820013023922139417173256403975280574647639393947063905286833658911359639861948671228993441919405841273005974256528298369068107692815941632347768085972629236763642449936736372594156249171801156456116560932774495725291265358574207581037079551052294328721838178135039212362159034637842091934955096469214283332571831762700713402027840716618117451453755615522776182849497921396373887877098584279844033632489210486871264495877920617240918584786028548630455954535098723468189968838097713317183147237193805906259878813151922796344654122667373156685606466608464745769653195859347677141493946536295349028808130840834355448506198111772038565784855115018793496482061698633113663220980250204221175222274049168547610102201599014871796707876151913954479921273554557501999121023856575535252226677775783533473909866379689093783685482980867401413361905079083210548098368281080732090885926562239167239999496377401287780425788182299051003252660513240218155999458998432359831351687690173396839150013888284494254443933053633987154551110112303631198092723245352616983737003958722427087374117967055896522905649896164363277808675607998196274882295921164953059955840533846089765578384470658301599384997515415217166033586576825353805802171208063943525241944782853135211412520169391187760744954788583580807506743290564201559215013299068392367967299059788439015090800770193788643076848745601300123318370692516008903463965838346584381240303870837693797602414379776797505751804568086413324425634826655849861318278574307316361688645870663316478765024280210780983408475535664811301376399909637972833866592261511151369167558443015983675689651885173869084912599576996042860566856854226256237601310977494768710314353571981365063084875329951407084818203515659963092373617968474521675069862471056513675575654347619873993605830306223005851026832384805837115094291409627415900209139872444306644104229948850973279821123344963755562195388028175854303467291009434315675335863261184882547991145147089683702382480461142203221646318991744269573879673566160257935944083969955499288424287382170788628990236975491760562475939787333320597081227090803134784992692111934562553581638240469906133063881176231947707183748475311038929864705012358834781785346199803583079059833816038453409685319893796203251265453812387964784678878166410473894298399561144929783710294802579762423374378058940319792593244240795472377090441259121015498438104340696129195538942322471640691058257429931572767594109610345935310396991286443134445224187972572561721293909470402554367197281189228511991124680808115136511770370400257436554167965746572632855729982500687256131241947619770486105425870454142868800514202243640954521068960029110130381956695250731462415000652688419120032665109485823983496862807013828472983993014560857378441573127221631835011533311862815028482583439991933884069882373378567555940916116666039568771525357192613848158634269195166311317066688113118241588502793476528492664041274836355028721985994538934840188681901013748757917345500755341651894421619353398820003644287024215901040082274511603298449033405621136551795875096888338447682866834947526305789181413549452450730063843385318665551221100923865424939773357310278122603561117320923751714076198381659492474742151474761356412607748443775582783937812046666255452273860884815179348913661161199163464126048132064938640613222969460782705888132393110260805584660371986645084903099368066703646486534322370135465465274349287319701878403142555933127979906886672501082690339164618106446505588003872399714739797136425004488762983878245786315104981811566669137210563948807303579110043907456690726081880138798235403565655366320753938705038399852086980201734868325728930852614230999287430971836154154131094513584216024766769940882895908393015409613747592699898686337548177818182196215869232552856954162245260511943786689044683711352900711523559087777447889671375513483851020575806352759752678482581180562750455187326396058684511154258033928945101883613945194391589402754891540660188607930925662439528041890316835236959218870934790981624504737950328508199429471876848671722585705114990655628428385144460681634713001819652655618548679503931507274408535616128562507278563083633211096452417709080701710352706029183329733276117862586871936330833203095855717293758064418992761065880973195510213954161654341088774629918916786644655696200594150657852985408149781697606436759643794840584514629054870006563079930542180508562164382924143568610191527618889445529853630119638630373980602590209295158941485930967104956933586334913005310574228066273101140861163270012434042227516910572049878475798213462055782626949396729304810222559775257444815249788236620165563825637680283282306582090426554740166729334780668710014627383158258469847045508163600515013550447919635542942462984801736061613215911549934765584897878698033374428300085709503729647579570875588431788025780325391557679157301021729503278638362709826584183290817869235718122147892155818906056793354000240049786701738104072376696545404020488839584919172885558723636619797408325518289256817572003563951399529957706598310826478759247500773937507651799421665124221316415584306748586617953016794435633103061386285433038285312018468582164079533205844205921788814811786775917629961704616331380090413252507582802571998554574605677635630949692882327350231441752236470458824373226405161579437173722713943644283678273091603319207591691607491024118727816800215006851889782231134367021072418905048760623402283858397413598474346115773337628671882061379013032313840367133456825116683401922394045837381922205314762449428177138018617221354254128868181927801647085124264230981289372630053159687496030028993392925635452264278993630169655101107707131180912304501922871048102535759047318744466327787980207244446320881104606311303241521076248186626154820275532562775741080388140694348167140664137211390284389441552961384149849786506128014574628698471430503546784895890295509658221584634652905179952725486501738844205371191937959059089102188927418785491283757790498037158405636366929903689634317483807897142315622846978071244909891683761884833363423484722830957556590703440519073860213236589820521919151905673553495624758949961331426478461382925038141211196669274163677511627264043065523129089225631926315687722457017063056524755004724070394073058224109909640788834659891293882114723388302658997247474121474977006220079222615885443807971179722769899539752828099083950940752507988726722240437255901710961611913615396317700510434692279540178383659701915454253363568373848798938582085496597591462674164945040968173420292346832962486175294998415958677619373650216574994648896792370787140739371654025092121031856636481461103623292462375769123728802639471267145122150841318435634355753902779520819440368872726084406760223203596369926363991846117989205121315186576484277240641550611642921256311843769666220541334783358675452553963732641932080928803396135258369045214144599412384256871293293042228563618002167597487879996871749157452596170236665420569956332069157346333098619600526075343720280085754519448582218863982259165905991404000656871706496348356506773753520000134230686084326288104684121922729547015096543424778254197593006519221835101976430069385194797598354731813854442448542266803873676272851735879874884837851654713156199332256565731381879003315735465674199241056154575508756307962744514456024182980954245956722073450261839090362474943576163660959802065744653745984277573667420390142501152660340219512545489383173803624997407969250446262259349195223064962568322241383543086656819452274499387389219331751585945031051975059588934299172501751067452995236125894586270891065448270296291941774288884646582835206733865063670398961512678940056807871881985080730887989744298807787050572886109928270409126857089009087251291759543979340656294014352214999722862569724930592854802245004587607774429974581630763000677371020826971588652992347740747397031623018628886786177169176214698545451427392977010172320899255950731395107508509563631794431766116497767224084556064692476542319965249196828327790124751442675431461019275741462375566623225977308750891353921684046659340365391623041389589717170228400698458283734676115933116604929105668406523310207977138742129753681448534437299470646094940958277697202390666979067656775807881583185915874992219379040796307847084006661396848994625359784314552809996332119892294186951260927701328689149883165510139529848334005866400785644343215847693319060112769304832492173746618172494571620440564742545587527052347856308705611406078921676842816215586465524458682065945137658455235323032798321454534194011399750229686495296139220697799185760570916183595698323025356428136971184134566439606554012250995206423887955742144241215097541730014849455123950509620004870744778647349631982411878505052925713123032854467651957893586644813805742853879767697173486911923521414374309405247014410148136055617180223814606737714220148642146150261351553475618722860460949499121513012657306464614095668044404804036655867055204078103073688057819089371143684200922605071383863183554097878877397630610139743905263067828534229298571297563946209895946177913336070961039668335018408867428097035636686089208635390369140737314567436251690892987373526244216706700932629942866251836254997161282315109333769844236499459123300471292001189150737597343152893922557313238767471548726254559865304726998467333481981582752918984173336066485085522369412064422157575831770544467137533764958866426683020622943443464669115744880459465037048855078559089589831477601343441749164000902488188216315838981946587789392444410401711896847807625730043110534896707514728446212967261892233197712356882037084043641210516929892444404517383665839312412095262950223577392517831561074898542364477560533031478828592768242052222201734164511081807540651815948669313229340985422977088302964978121044152246338888006721285536853364031449626195176169796402638914249986650436500145272054084947659895812902585255598086786436370445371649208663314810162012349821554879958080387732223272288099161728256382378766608939435261294043253003122526350039753303241773879098508337069733933988087126792006648208375388626489858479100451591956267609733007673183441316754432078008017346282949699559920628812025878247410866690649697078398525257182423938428582438043306010042142386623350013022917864342936468497142316168064822783304526307037446363296252621503510899497808914409119198515060665652629978929752764443804648480816039164470177506605244855506892127067668264500735469751452897813955227663583555108279219356492188287122396776093417398969958908465191267813168581880266355703097869175334161189669855484809677145895639665052739594259294207909517032952596986248835075255753174430544917420419976612532816429480473120864854600061535190766799189998895882349832187020012894369237365621358810872272722054579410665802643971546112194769145095642393979520008208439305961729950613071059921824157247415686181586757278500359429167642226593871704369484030220227321738335687883024522103933424620520422593472635611606107227873831783234210321678230213933278394073834127593685084902129790949342109599151837009884521415124680586972716175572943648067664554503808900256093841330690763634115032660419035501737547494777788385569438150984954203109487091610521409368543320753987869014150810254668425615501063725238627940944137842668005555162113994138083442085543565769057572084342096355894533011039265386426102981642894553953133368569814800558622426921397278436395431711361924283995430950878365252062374357023142383556935012017168973820401627701463525482613416602422299899760018982122381665623509056783809624117282703866618058306700174431944684762585054044896151230484746697876780847912141404668319025260917261154771761015891516545477299177529975548127463481440192333023521053945855393046750414139065604253966415391652408006253829379557785904359305215871995311874809726156255159807790683465682043969919124597339840809637851718340874525676647368874997379907261594540895411520227358165595058256471264847535933270248243545484867295737989683092780678934742356036106296566408429047942968640844190619349313839781962389871220128272919777873334501474491744980306475070807362741918873002535293730626247239095740923896399559306741765629387250972067460267009058798254433210159068116554856790950651040244312910712513617997424137139483394632370235865569469715568605496071279598384712168028404820527451022908309738525051206260023473939448351872595004585116498926052731902141254221873444335483551294379235812295941554203907163290802508161082004306122894350576151732001971217359196078435886928339047367110308122858044264989686026355565013332124806270188994705590564723154245073633277216348765997833977074219004748997923220578322331110939984099558961134602385501248456100417184410165091141577834406986715526542924256373667135385468189447436808307031575871830077446213097027027360343185571591869789424553202885536604788007522929992571002720548849657516026693927639978976627488192593602678983811187839595284225326819106561596523521032989012925432578887227433046557738298801793135870164272167480003193079657934875165618597449252104860498955690616097961430771544172146530737765906416859089903824735546660529299586549507522663627526111759920535478659007420310192069406449475782104282321267471645821125173117655071099820853506261502334427583315217732653875570435290317569772368874638437558700939650042870628751054896392224486361562273749470229483674419390945213915998243536628932897474396239704975777598753742005656929295480662420738807435878644034543820304955489762471665513029228024278470227652330729746670026286519461014417401697239669635928983671814406848048566449340439657431061169528608487554061693001168201534970159427440476357053186040706593510225349753595194982822398309239304228508150959554683667700046954762796323895217276519157960310630928154336563277483163907401566704747525310525628361089752057555297124282777245081081198336858596683418134381582904789728259753426324272631954779483322831879183908963785653036047531890025385500397558027032295493080883933291571477963595360394711990817508673366064309561043603936575801700495339052053137410963176149343083354726087613667805861175985873476048639311248082457317911844176181784954414654133991433235299788030069699280704472139616179931115902526995263081906212856241732962847895101668727447675719817080851786665542125313933935382486257164654863420921475284677145984750478569530558763378789168109456952364420475301496479916236604892294371230387473349042175405439548011010848507950621311680964344915857862993647258961639480806604085174938212213692629854233662642028035814998980721282796309419698300269246074319070246294271041287925740811989143230919967778499920739918230551478269387593531689087866855925660332753605631249792386721962401477300922004675639692407524531416373280290608309908181796701285780461712135847001255801802640796110431767634885451698592067318309537135611881942268114958462509914548499379088208213354968878563977085329569057343467204327102620793536983958131060952302409831564011484091620426599770911947148390738552770012200900294649995014726928577628959529492670785030833922431761935212796686263896390034422186063214449904137634849383293419977346952872886964616798739775148599004342640947455420979769616628650315084034721604429864654461827132814422472660550522009538637258335715984273240249835501046727692333156938335450699716619454587629668422698186762688526558120848291613410098400752418112497972506606570872465328032060890429940339018579219397719886907059910374974912337197565879983028090675089282295127830562357123205109005564159461645735665490068201204219354255400508062074053220840849190855431021667415581499684770160762750769113602061245105981482110098464634777699706374289728756080049334927774451500203608511993659000149879601677303542138835361397471819694882015125016498735874906772961203222375872907775424284106817876344552131380944368202864433336078665027076586361096017206463965791076989786809513299830616715780418712330736032340661766239011137083162861330903633800072098560096316606262730076996318255182817667127344654939331285055816009539808348702338000074104550466561673460579597250400744983675747974614710597199641629424027438187541221782887484986630409104046599827139629900369886012765423613106122235968656405759729239184129387319538139462569037655890511060965731520679416216906555388635297507648991439227366627807812140449832574874911635818893185000614255440953497822484754864077238937981193349808782062802993443168579120723088028141937651598432361871382338801484619664857807956332534194556767049919732095015119753933591387391121068378143755204852459940755707725482022031058791486968894526376951243064692640284688443027041590306467931495872258968552233310030246433598973539251893039429375749298821602233872806314279757169401758785054660086395399965661768487535743020479291649281091811041135026307602334804267814808317833384034596027260688972404407390419189063777511848509155955254992902487015631637044306794422943536755854474816155992869090395890121666925754842344021558182145149116164765427292552229369660880828019857773134417813727615679012308270311412708919513028917819533162474196558173452803548607283917501343349873339512103283642321103545076792786351668882047184944400276079629542296010945415255238064381942240273873545748835967009166278259142974908424472723807322764592062743658364013384605647567342442021533010005610666947269102141795991442506602337733572076799408762880197926773272517617474634549195436719645945342489208446713871805637335462678347393217385226232881993915071489644150469945498137479947129336058947051518134028655944590408130904753934833324913562072823958967726341855091149582880504215275869689562696073563710854166613198062959158494526498719479346232428628021915175038737274038116275936603199558395242794268367370181931831629911184128706132588387985971408627496920521676610012079279116495455052638052257096780405814900956504470226061661634507139292650985831933470659024718670792792758231145227038842282328749434821873277963187622214809036040604619181179254836030565552341469205516682787037011868566548506684879933028991994671932870124244637656201665424649656885895291312574100570301704647992236414299636071074507534643677181964856819896098337597674268924599516133990315333815821479878133547654589725457647699195995142278422241167941506096216645809578705313186518765472470751156976940137143143452862877033791183257077997104002796389924629788540890913594056546282964603074371220951427661848741793860229003951611491350522259023109105324719165335277157679360776403680223979727628524087987532465792424906870424139815958087213800730067579596090654672843338633676176284324923088344092234242476363508615998617503945948864764846990280109554289701354527819633757255537476223041684918524993997720908151763950410361340687081192991272747641923745113623415736806061038919372932202309183761803467295436137251299737013091412858581105732206485409060363132845876777487102083921817734773781065529063767067345936394116708402767967109765115382113565959567858695406204153169043850313467829356684459341555335497077608959690558269866336691517931613797045449067432532696404233890205977982136938968849992436840131386761461824989165279784669009628977188089606721822266599847244606310887941318848441074583331670918730125618000707834997312808752601321871878052962371508115346280682691562510257752017934608265239753578339680930171681845066478848350876538728530327648343464191328815946654545645959990569119093875219592388874276105417202118489881135893510903766876535548675913454062556193502188382758597725084054141188389518559972474373061086317059788411002956548033892037849929488049656000043203892302252380268856366156138366584841482420545874674361897430824341231613536219071615175690114336017751543405002277867051717568430442823198873460400312381451217071563632674787647180956556848448515310807873270791024506330557449638022080304551171897911320731914655255508043553412078467478482500541341964239503201656985024406774736428266219156889303519806336318186737958441332974255656625754844653164277265024889289892280503254650488285117002500701994721248081718574587014427829312188570645004453260716508446674217505683428265283489831524692796321635295140445393161293379965026472536393434576794481933311069473270633082962594841953943111135099611064377485337855970648945063312962165740657205011143875748566191511976800796971214704255294284633564273466436417842774869663479147325369057056417682666942602899582812377500052805561874381773129840383968810357866198456230085666159820529159661034246161385244327935620941811565514131790500101516567641871181738488661397912402816482327047176428224602305529908673565924517948168553519462613797111125673769832146232377982724513086629409266736416993216124666811569539287777557409387171827796435645023338291054254874919382835745247357351598893123412255480591693577117058697484954529672698475834566260770765756772383247987747212689111885024650771245293835036734006420536034113456109577041099872923300516594090025464106559729957660512081698058212049424167264538949646774628226652536366901529440404471677919436328943092104090265732506447112069497170713953149668665313477427104712314208320989217377360031272443767187874098322409210941512567119484220334415550664994351314430288818419859998696779472654475340468451798331660526274471092831619932836499875267123499430329877669103169876068607381664620602789226316071311736499183141624894217677517874922507638218432041844105281307717633393482574856276515605269812125249808096820319297912166988847651737106021731521290167727610267549803028864865587723628207712948231561665776200381273248081945124252676860827935981927316753576011923036318948039548831068027762690034334354584637031027299562040165783614957766753842281129796871994693925419489668688837964835673516395360899975224237173491667965210490313866340056927731255591523413671132208739175972456928916215251016245803640513334567231909112028808881399581233446889416424709870035021006560476975350368766653745306215076286806420282886355607451366135303309669385949467627329657268595163010502825405243697292466326100327851521969083033725596304750751747440488061278394475113826669782131635238446602247867331960639678648717860934860522897051282240351996492466449611932794770638673383266585332817646734223704664366795277650220040118278926068474634787814233156061889723396247159625475503111916415157601267282574928633767676312218259053673012889598285236484746992203872371299159072307065858057703064007140498377225972090487334086392465626858318644671828546202630321664119000192936098566772968115705266314425106353754256795626376113284692711608996992047603966111907990882266422785309164630918871796846769476029522169114945729695405256779673033901238357241080740542480990566838595098947955674555882588304403142695895885829840806618322832098891444525566159014600418460973724649857605039244478797205080225034581918027690698830344469264521841847550739272452128517166948611484973014056946203103307969071013845103569081064568038111746844832727436153065718340781740443338307138710947992486186890664526215619405610545459311825329496725784834086568970569681213114992011660330673421008201979852206212036436109535981013979757082570960185273578684329340436150679325185295581576837453107074351850896510508276545433850119136473429693404601174271081975354293193554796397117554248331499715869495153302394620699007844329014899614925928975899158922923759702902315253141268513476451730204671542157574263370725783938905230955109588631014730698727913926805322168065958263967501307757923885905484784225903357398950453410074373072277103713092076904196905677691827406748150339393340582562669471180464161286616814011395961168676076344406524274164291595778737645961031053907828446769451108353740020185099792286942833778769848419601316156573329762091871931001377406094436244226135017009269154037334445856365789359220854767404790899092250624436013727911560458837278882205086697657326999303734591271797233326466560405098752220588960827630856342495889419332593469983348005188428876210844309839554399020332600304727540162921962157038841074951380672837492468224888052352636377513698508065667051660998703348088252420882702195489748815103471395321083183052811698886405584297938383369116601741319501520897605871615275382938579211564115326459707208515108781781805529343641964813049608130337374563578613694695798949695484289571920679281034012292677477847771897057421814563643977471012833096705935459746794296445868956046751959827998955987594307547267110401140548457780765028898404978502270920774336233077541395247260031845494187585477597950564590173206708242603892985266937048224395883842849133193780928661828755684944003134553382005186741148196554856809042337284538339983598667257597483179346906439745250366035570350884048803513689082935652497303995172109530836421567936889499963229272522680666759170352889555447421036460547189254617264283690436890672398566377306419743742637492267113345396675989860723377089846751577317560605405802306747124072556730340977736396860996377495273559414176571043987214689019787784498469554406820820751950064118139013538225584830231343638176261537864390746196370734123037640433255260587550327325712972403223504958235447606352368009482424983855508543934466994598271738676894522347489391712560666780324527863924461327296104599668247555966680651106525171266339992465687443207410938460814499463552490002419940280746713724684558604533079686052381503155805562322461729145939409066127867737387135147591917859269202078955698040770203420722633951207816737299520110256715085198928809523117461531544415759100464991869815259669976519040365608424055731090088569000454899276545376992336376146324513415536957478740589189692933770017192100745325748514470183741975796393583024264828589954539972885249250348604610112111821833072822191018491712838357692159696374153684848304029479378638335957987699453750678344783686712807536520963049781829885669352527344501846212837996190460507835926187592338972219261414086466842379392648292920917742940766320741682028983511674065307438271873858744355173757403941536026591831025247014405377968235368606756447638162071357392625957323884456256511109751960617074307649031364129436722328487214978317810859714723484031054611329645838261774973104331635830620754888023821755029877156096310354763317823902328472453182072191780330756687916845762413208397575866488187323401936708715349978854969876826787945419723083652707597375869838809723610391897406918758619597534401317516200424394362559601683318562287096597409449402692101752342344596818188820815833203950037574555529998983224406861351523201718100860099283723680920205040415953628607509275391370903723230117931312087879614613989542935721208941334447108030679107957698570627525828348667739946428229579433646857334984756508817362095401147777725779463197107566397826480940486617740773384947013546755875257874514247603995093571063746504148804827522746721214121420674257191732165734246850160103775822116548600514110702122263419250211152344265232704587842554623456660454489443786502298593352699891386472161468255126142875322195935820228073814420483570826877041417668934520294887067840326208888827133411789790547632263205850690617699980900135703568387457011493281784845296884141038266036009744799596975095989952442161765976589456520269638436234695097217425855391245410778460944343436155191195317194554935260933097712416486480370423763824178292543853391362027987053272772042126978464830739112001136039158192750778371126558876221658560319117026215458416290210622217715186424972727324926833494820117546497548762026894093994401630038588013858364783191423086274970528547406406089358620865221742174234268106426776754137660868760231159050695166607477665930233312782787559908168188195068537801923292397957409474318502343472879214093226995516435987023490498910570499120077995178352708226092589217113752523189335602022949073118379269578340407649868048690748143142046472491777258755141409731302249342032937548019088175216717680584084146618882375730591326310762531670020765193357153020308455295376197158137251871198458643669450538764113708804001520100862051704970166851968928631476410166586885040822969119113196118446971201497257260899705806250144112062933812028568448286727304746922045381916066399755173620776186338416486879401933496860206860167472560701685333583451507910135194872399882600821549170803701979920530550747813284473365258179485373790318466138552430746116825414038134431696537714065322101654150738725809323838362539427039725555811832532195079828889634788314338131063169082612252259808974314206673337452973444018067202073519009282338799462551740008514934296734443956377407996874192450990081424358339705552572564617328693181801737391359056191510722039374901626751824362680018388138898645016599243544099869605275653498590311577383035293127323366468383306115623728980536750230346361885094871347649743466263386736531881416845310554443872714945086680799406417815912308371560631701888784452942260207101809168254400693739561730873744543567324731960179491634196950379507662757156189404072108670427907130715702354832340920677367558299525384344766277610318049369202126287547674480417005709034208769468661739671655147171180256187621322073330564708689648459783690076879322558263279216380874906943563558961411578886044148548166019314380945788759978446572376653529005556555325964020900499799855046081973503168145690475318870635991925171677647161122101883613465982082156787442946838799491735147333496317007943105411981723015771409628591348557111768406845135013890788397863164620490971120855404020569619384508180309975020763251945581354105264965108780820484692263979106777630875871693201129680926753199531220663423524885353193418556752459681492462840918386810213445970588131575982863384251064053625216130959364171315803781213311841424526758857231996200961347762318167813022556311500894607548997284033572749957587439755714092387010222760934606786337487520308527910500631957793210275236406732519461420459854667705452513594518086107730478348274159337494052269364936091613287061988995217361678327822176075562877647716371312796903428183758448454978964034478992221725194496357127187203195445329631664070502022905227313813290505682280936934080070267189789243313167483743274351390786850151304952532784759677256990169209515971788539617438832296032251971235269546475578462550264883127736040884618229547264391583947510729599087097583131036624632300282631936076950313990213518465772043989191425765033176060474203054831655019922392642813872562150781016525414538724705818718939739961411329188580720557349816398734846004082000858324007728623338015573264692021913283607469667657779005488032195454512682805978058314246582145019532762228330968261681478185955503425419344058446980612752497957442793056216216140957799559582395091358846541370712468705752711519265367350101981369740324060689580537050616431743980857209490721909708523366284957382249859371366124593465164016122515050075557221803744178222305744530036508560813473623537122841620432766263105333198631373807158351975118606097435203242639122816067756447063818871309544181350498226045550588606051309563229753415783701634939640946496823618643681374435214991182348223498430821928065674913937424523023218082779449419272108834673220462569319149820599431556103352453850707464363240341707496964871644741596908248726108700760583534128446386397141353834027143525556971532071985161519051381668796039509367703361991312032881517553171197301322983937835482798182755839112942857803968211690713996861367481403146528817631991311690271583225805318603651808306822116826875601050722596466142067150493708135714433651802198209741423287237883076880473666928320962775455919950244722978388924901756796993208566180024801878908401949019381401655720521479185962657525654372365742242854134176756735283789384160122555460686227087643806204901624272108714916087570771787131259967960595654767898457146351719465607332327922890053891238223418518390710344180216029381526731066421540626850678459207556558951223375287279744293418425196787221211378803107059186532866208047965928527586768057148332251386066706819211350640665566647780852362943411619750584850840661549574201814466385384249641478463554045266171365621701425458849970588401209616059175615971638409358659105158109519149712677206936556078328518032807271698684696442199592973229600228023654300799042178130520249561645008890783355696029789605516860176271927528179478041107244155917400468542707263453082576000714058064212331082841870661737467439612318663978401006124071572917888974216053511447535662828700113375316687404187273865429257847757834362139285159988599680927510508883623898145117559352844932430441322769424408009882396293170771352604023462340645048027576640576938535495204230962802868868334498095187679683768081932660843550825859498563519928951067313897878021601891554394054132085586672572064263255950256430160137647436965290930223090152238996624300687357309974956405713730986879249721460441653694848368314633602712305021249940143780920498730735312803458801480582680396668062907534119045763013721844700165441124187737158968568358944288008351417169774808662303638918231015759485637739137788260373971589802505166389404602954282459467251977749101888176114799059096314146120607623265601353536864544318538181376417695605036377764579610491923348248779870785550073080181495494332219799830765051194436424775652746193079789621962165294234047450773487977319852795742461820113967391106948122406061282420097731921869995775136752237259574267414612910805441853308401331351443221114305374321590501519903522069558584769941430137967719884744020352337883852558785017165609855010440472553206026150588973715401075807781450691955869675864918244777493625780546220236063554713341676762999313457170313049358207768227072275306767527029588001929431459543829117463198438291034577329374397934850308944945497285006089323378363666238207631282658969886075893395310403270434889390835382908676038439937839421350421731105504570320571131391891384731583497828139298589334865848825256754243089885723394911255460523360322824320943364554342150755194236041867916000527030107150026730796636277928612539095292861339403599998492749949560765089606963956215732572638592929660401201912134923777850712137740908799667548573779972849640213812638553881974632546091706885446765782832877937388021697980651185171031633047159691474829025989032709576430277264662269322816493877903728993440615809940735753670096332924809698955826053770805796772086639161986495580072739970053338506474461617467620790842043892566549737427825281321688287887264537067274055429776452831715488007608320139573161332846846835405514662912875341830641734443256085658038436532928451180716751477765357343182236471985164888568279786956956430179473219855123000500286949356914826246904635269572690985754336340991758124596779749852025119988048138868166678762269956184637849597114115116378317440834747854103099079561664400926796700227299317777042162031089772779473316293031456093038400049617196991528602382370956806174437435001885640117253142994633052263219503027578186066164969826806987668314370707712883793940965636455849143392653480819682547415625137268474723180573281424137435745402867498929300229334632385166247401036442633429613730507017744331720109880567354987852071760219113468377125331812565265925558006488033519490751609563165748946490853374808214245602929787518735941361027279554781005332035616530541143893436625775284464170694460617748441290614733516579660551034276403043316197822884430066868661707210967224298813441895528459379166983373667547067607397448133157168498876320575718074677099267246523796937771980021383389450146709414619173475355036624407544814688747862464209401301244517078080079073748495483118386937864936112405299122275933289347731000833437734432461416232972934068442403481546791038909727730180003493535440102749506115222179189062281574060364914747799691947296039821874981247653637201925457863627671134724897516021341580220982720838829388909360526521094509435784267768798199383532588797976554410859252063788617036342176799598506450741187733246343153095640500147036550862983218669654531329853559698915605946468372136910537158937563436595453333595410063448551138380675112052265410042358014458287664969840820391105572542850600456253153489099685721475783377661326676691687277266532271237680921172024892559890688976974997462628440262665218941247367421466177074388425908907601316266010004723242887940659007151113253266648189403676974486752408349167712272246614467910694303387162077292884956445839818343730661874128117400776373365741440434598771177981158082863003595586237242636403810028829724462396916017580203464781853417327675774872869133480324561019919176098449385525708600479121144605303913823245821504401443081506306275326776824768008218252028063564968009131745360340053249214339504472104151622209739689554620399226625152402105703700792517281756464400937886881233531458858420304090044559408657287263644449703066551287352457679820342483416655004574011253889474131592919098034128860485112823179276879883388116811847706906820756365585912413815402929767627489304094088417846230074440563696475450680977891514080431190049828970072649754398102205954245244682331482010657022526519118671101569907307804264572616506517009996718023072254965748175713637045974000114440607853934444724706542013335922737750194187810340539569416611673754323802892009515351889506478412961650520444174978943260034097613973394371930531076446282936579987485977906809120272715451481693082332508972731816079836435717884808182124163430727551606063442900043841341648807443071002031131888608840788536445871790742602562294989409491703184527891597951393767091546080113135613609545415267736872040043829432505040608847826498108331317238428172136172794581537420553882100458567005128128818748844391443740125621688304678777239481344407835563668459383483258698341689474854377452008004039020586326679954500504809585057360070854174633085254346421289643799337750586570148326749126789764565919594640026754742939101570592077192205383782787027855041096230582835010815926710097505846778133747735773000936665873416418010357179369661414164702461479236336815675903295249653846007908085997421842866981905614080338329743956555126044312733314345125426946919597746174940795518027584110760667263062163330128414363848593703065964112984986174577114274323268861605913502748163019787260140335404293054059102293932080450594565134879874200494232584310628827049867329649644692961460431144997953848378455046229179532216332142586979167208666722203798342773047048348228376986581911494102160444549547605509036795901936291205950356996630206895293196388467437250301177308299868183246756915892630008883758765322619413901787635328952570151145269101945651285937620832151695680173906438758326547799244731313075948350237712081923899015542913681152766216411714155338375327571329852823749487972387785656136804749011643210301627258256701720106605401767379125641268672151369935509221851099362214027550003814780354259349708670430592978345287810591334575268154673456150409027826344670677588560196015724282918115269564905517719064348588132775171920788734954061315754898581745256141111959608065108713583725360325581812663785864991904788473396174843447531018642295117209457317035593053635950677953089195342636434237133478153475683065068731897177991299609112413426445793197901806104398367483622047821560561462781909666858159301879625478597306766894719083300241048170239403563528851822907632172604596791134860574204987992392910058893444323329611098284472908643157688725186421337818110930046327468334455995043020053221987234178268487721244111313044761011490832396026652360989883625601066955885464283217822156442686631094043734616392273411221121111021990225425470194583645386260028026466078587544852146683251556067797616338081003979604649568164945240301554023667924620330185060177795656262624511348157332968100088281794591170614799826664077611281327194108735125792949101509072464397986428286935658379645138998126940724823859773389368295421726352794326817930651269462020711170454173780499219255216757459372224800928308032240096641066528738010411011962669775917907971244089446820611581087263120809574942216693713597302566314942773572460584627961881587440734962838067645754659523294359292434269594026190398830092078462005741993475796687401781341193844561700832717732791522383247309278754025811183064929058190678678273298998536582674365598149993844393300936742194784045816086592988751489967789574726275011704167253771012520176240345103850885107915591896357069299651913669007766900979894939481324106196631301254621756310996935947496956093760367385128317733908953006841619268660767399320480483328610766256388874362192446220156495800044748842616369394318005126544651878579446128972681444964715832046375627738961602527838451558816657473807480792749051840147227892910958813434558236125844830243769295592663497277306292943516674361748963955747914838185251674505001882595238693038023226507415521949738720647544814270014172745873324191321374164611734797330568187686652899169800203855033819364754769719543109181587761357461450586796033102533882139264604633965686753039034852927304726770413625667307425003142770275030771637150095392451983937829324414268580977501279117471885500797654389612736259400431798431217509865502085965121949774395532277946812062833732150905008963088229866147970749463741444376386157903587746719061767368176448186362093030536591369854968949898017048460643215931211416715871680485086169400622247297093803470020677667745638818690151402991172594004222876676918953664424820737553382261144340597923822291051971753149347524229542576123566781089932725232008243164529700771425530046513538203432892880061623390424726929232592810131865153882082503249762027262197623233751711003757035566516413368203040243591703113435427388525417181129380164233529118320587266311118132287144188843097942038231488251353716973062484625653825690007360940013888729434190489987060588610375341448574743698632868955015757851612128841676788110676006751551814517282424908655854203794070474185418348137283269292563797711427187442196656601738891423254889920179108824778368456556475244431042987903073270172439506804097949176981387331008453004349459598440985163917531541246829063159023131796811909094392588147317285472230364648390481842344998443634029612455161181528897675804966657114350983801808632588843751090100439746053830317790024619021675489176131414978473472736120306495205725009480286547512114545898554897126249201419324063033198977256074613964894042200414981749972785452463978270530267788418138864327200945220615857203063358129332588510862970352108660199525619024568419753073218364184606459605514895475934075976227656973799831178774132344158792202251238948161427753175849727916354171649579905131320840161462256426747451636951337072807832206648186829531886976455535248281841113079376927659653491725236530341074330410851914099710292105106945915262849204336654111532141152660338314410125270214709028371902082714829648187904077638181922622624371922161736609563858188649804399404826311133833334801001942424885420655190142788652092851532733924743026013747367082240830997623645367948056188989102587334500344481652477426552437870833771248343614380935498312860746140105101233231396113479928307636735301927799401535824231164182578825370129447181515131870673153656186472344423066907843795578692041512136333604264684463344896716756476156236365103708604630955130776842289326022525708754073660034163789313404016404269072552617801613014462151910070659150191529560695370115134935428343663502880240371791506454691683643922702263723703333741088658655304619867785226647626753761212933046665584241917032821062298044413115642963233033411360360652155812787255511598882961713408838848573694933308747829673162017032184022381427090762843933205214435658816513038103446018528314534298528550650868567455968699110065719085564327881626270135380638897332300706554908469847660541678567087841774756228977438050253692036405204194825120319955372803038448558485691005314233496101579734556065645521932474894656764248620914710764225480818001317548109305153366623563090390089080956439204984571900437204266987953228978901089348357505866399489835805520688066115229460011344984086145675016930114893062208269838015805298952494803700374370337080780481371102869372455563269942114190969404285866766304968670373086783004210957225052229459216060851954737086259362012821073904412683185933271980194050204978381940392040839580535019905576573954067770893039871061537465826364800229264873374253615882360667401339181041744505521382389273213165808863850791546489787927080493300225582485645784753013259149676654294725691891357073542423396282357720796207784686782897900542067835117337138092904071867068825457711740775568749570818954284180847691147883656718153393944390655544244853674554644322186811935157668635066020499276364517540652157574149167437980774151110982050327984702978758335209586338806602052456875434016697202400162203138403343532590098919408676885765227507712220584482965496513800748448900600793778100501809564582645675560235664532165860098649595206889862004062877886866660331187698940835947193781175481105781991632125542727907011252553836383811809623283422287066876328920276159251131822914963415995984184472282429154995499031311679977540160974416057318728069152765827211798946646572548419031855173063679995696547941825381567503006902731934354913715403935133441933142478767809972084643202173743289475093512380064231229094974544558606360466321099671462189201717570357754487132095214738822379878731045039029991044413232135035304706714940347948290982125494295151075727795149517337907265844901048919774840586193359172062786701289958766644411673741795441444845295917046631963098899383054420189445297478572164653659876335561240486094197430311849943566976616159316364734475094875416417580311806432217121238796975820807818840058388398529003222566592185274754430560117904123563821174126455589741872456296205646898955812522178732806367782524294327495310019830555963401513987973040388283472662915421419167477646681951554371109423474862345192503770336902365614972457173519207732313454650236285115983841529360515847005308979181852126919954418220687695039231108598205439421699641769724353866357448292409427220587916558139591980962927899893473456869501433915843640649956799832730669774811234585635405925484067502142059126470945809012494605305391359967564124458562026381549706571467677477825846167625295018990482548682311393931497112167377844235576499487805824559851520969634675873412815455819497888481915478900447476691524537793384538225308560824452132282228331727339587063391242654274717721075106030050316923344792067308043012884410979248754401268407004254585247323180586512594348592513491260408377325169217781544188600068291285126104874166510623144055364731384912008801035379955460617123200372255238590767292554062019485657740262613936824002327949864454873005303454377492972509784823611237514064014614000917442017104473333422395893864116364523775289917502584181503338923526000130372260308497047187418233419385317109698849218651942307583840129048305975586483605707345990091758935953095044475461148732816757517236985911147145101596634239796645500363833764663176226852098950667999793873217119573130315592684250271820473206018643204008215859645627182492673753144027481940863590882353207564418196589348096130782204588085655032103539141434258475249257566594503230662949404369445504603891949286873708975232327001468649401721094756316365522004750764840474813931713089883996187976397337626524599172705759412038184320258797317107625512319378011413649708068952391065654679785644712129430812020258819789289072855082430115580984140312545352433709041258142099072593885444729780697218888082013260176016268896440546398637878894374005058121861690653321952396744523767701074722805413100290641474876830753476179499329331437096411186104777327002584045339659399680832487919637151446457372766569962351621886903378768049321493854426325046013494300762728246885032982116485634715045059352421637844643534130136292385338953354733673933746210741817964957811597302501693392661084798001431394227926718516987459813572438862768039086106423086744129166028711504343277210726264272476992468696794264555689713265244790778158238222842064868792556401076657651558246401462313629471941220104667313274703934030073315567393760843780495217275671529012880048567557516123507869577672833740804720474672833269754312965338290150613130567135032808968783959166095234721970373058872376008278042830805809193811260778703020521496953106033828020372297663777772087255844243547765891738586161112452449311774580398580159708590258897648335119206328079669181504109986884871911035980710207447932974551669012787348128377926742171035011515241867093843815384691367446700851601719884156674831959559137060824677011785402734820402994650363815554801097353553133026410719370841528374492934324638753436001085878134377483102635001668603022408413108804605559221100266472448005246423780138768827692581645545833452673092827869771574218300587855061610328290780160353964185894590978751394146961385430083835102451874551204023968191746077373756005340448343135669201291252417856496198936169560540031237644984518834125168162690375763265208337613086417595811895822904782283210052611158930593197552897248779970071257748592799586310603141174163675127500743030779741847615534756728857938141525602062946793815963854049449362043250197403675692066461762150525860576884067995282918035152286880807604947911737039040484222152706555122744467925781509723453297902279650569140721008944355456331715601466387530946902051764351304396580441456908211363306238508242904276244779077051500663272732421738522138281324478092005342692753108920915940720965058092491113052068518126089474912458654915282286104770908441482077760605142357512426973750431053066571777462096878138804551460809597626620476417433692101595509913425498720424100906806196726784465765225298316953854336358612173033233520385799581158966411568960513704830447889304403367323801292885287016592008601967176517376908569527137001305393098952460722030696815735770133507320844761647493768415052223749388377780000109451469706585587362693280257200378222590730908612304232582213073111628733625745683470378806890230621196189958540994465534906812207712831969876601388934574199781984192322929980646799268286807784177397161205435243452713726260725891506556174055645712873883397402143284285860799691971132371560375185013999625332475174520012813389616478696410360681793997959732094446158854094983508699578413306144967410773873232332839536564749661424713967487547841362217318748837103191339182282439847583330700466100351043917864607404089703390352755657948183485814159385024147641662906010829961977881739459347990122238857065377532186490448617129805514338565139002620549067988121323960421816487107054857099482639600963581296269710635050107216651902247984113520282986086826713002090554582228253700274267470428514857698875908769249018361401860816629288085098493136407975480416480364733994748113849699687397418638928450595108482440677066137989821431008141632054938402456602019576980967720249282114992274431657601312260893856616593633264879769498162221991196797773569312016522762446374655624069721434247468352357938291987864105758829883383867004975188586122891490424627467703111831501223759611000425648838414656282119394424093155148973396782997591224801693324842966254252481685360872388136226731454091108033650382354670977199612549569376609237415895302991986951023676186138552610768699626902956101783530922277543817751172066543762490706536084849490149438643948834320050080451603173923306806402894180788175692756881239898703765909474170238024698978380356130197161377490093499886791244425601310079478598802266007176487735558187521475319213697217560320927190253445122232665910809962503839084721631283228714907983897923382991235674774453267646720917757137228971941453195767652528804550073285857993918919171477856523945763892311649245450256589659143665346967001032413257648612814512920589155510308959053818680424034054827916339769060833496425334904519603919046619864983529291393537360306692369901192380728733673501160427306680264709998963252350811219460859065385678597698426794833897749093353825967088584069847117443426789524415474470447721740450998585434358325635388660541612987655589291388974396380775990343721204237029778623602181253699643084348092866394085381670484698405294407065073138243934059752710609265119702483298583936517646794694030187587780807342053582683537540364241108175892658587879751093542209573804959906424794098836062117869225144244913492907648899008389381996325725883774544714415392057438660386342386000261585571697300134137983234970313373621314310966675605306622960505667333411357575471664040721063477268221074996311012842409305143793004555171005499899331096649939162458779840997631602328299983132018363210620566295296890820455387097448324392710211339960663042732305040418262875002501393771740533498226249947471190786825513787616207746880558646155685052967689173016564789501645392584806597342631726604063775054951144953900200789749059789882422828818823957069007018030689226781668831221010163250523366965323383261507792241797089787180625131646768506171278865767638423817284048390020543093333856118936620712393499069406010754693147261346356829221248591152407646305700831690368110192410403730022237367953904865590364628491068737342020303586198327397241402812416246201150764576993801020726071003581175823956577866816749976177054146519277754325076618309111408651911322813974792885632361530255535443905230547047626854736019836014032055663943044987341503119883402650274902499519690649896401624533178560661977152632624115967265217493095126799322387032652330008702659816590368071442767069777867544954876135314742730954551253939919491075237270253253059487604694525571702636397502223216699551109618073126702473621564929158766736125616538736166658417151699737159089910348076486636952784621979856152857654740418385105167785874056179842449087138188802333906247394350249838170075184127699468477023275357213192898677924218575148320017578983630059896231679482748594526175353003567389669183850847958759985907496031616121124352949058317383058771041838231485780622505305963800599291600696928347539550644585540325940798996397297430538431840726832513503722226299761369273509537207756469117302844142196183038284874669469344230357104467909084069516390591591246123384350232556767546305527167786036153181287209033282349384410566351755729113863924850965703571997477141760178278502301872663701525910653882771657264512107491517896125907320658878944662893956674953943492682994325134913139677113014903774770146332707553424705809130035067295932173530498398162953121754394324999774400224379413376486564315774482780879099421021186432411502965684942501297072428122901270498981210984499112861864269304827805621731244540775812655523173952689301484806452309008494975757571984652540731507724460674444387311257765326829275891714344517567010161042728844580321697935899088480402916308887669520385303733493074259155052891222764680851539805360103163020307763665541955331636385384161693367269651065364654803019663874525512443397809000636273401389896920676930224767855630328846831701729435585870050515987429186944571420848518822702207149520700223639983093877075160369878413275949998610503441868092837812073541953411264661038984487757512778886384907353053308395233714368643835609987657380374208490337266422045167151562226303892227773730814022269051087429487068735987005927390147953465025230754059579449484240171114763381458008493685181753183505803657583916744289430546790506871756473066156272901573846131048629503181295525128447744208687049339773906680044653364153419848759490644927147877993559649542541378126709315008821203755875043687034531172041914256880192288692365938232164517099797597278648419522650910688550426228235837147688154679355884738318231893574880609627624676615537475385209301912203672667859989776572459313668480012606174200246207664277817720176383059001534656169503734568243989966959215129299065110044968584475125676603907596922555286812591002825038738080573797352906716272818585060930900117379368859748634093217193007550182890271982445903426928593778053980432333981900007712967810918808734659682080041766586278461226901336612427416465599163755774056347206885379782506241425728198051880543478216970112953267260913257718848281025245603294249365951596750142543300785400490650836529128359883543141274339447456411974657704722366082344249883138767173053589773634722357314894809890603519896384584507718809811116267411763088078058665183726586919129728883714072321078539242451248773919767676395223925233839943213141910592857793617278878206604677892272380126374260230166717107776950282810591745287574504734669225701455278984030637421442806183405412329573175529964818433158469990137521308624560593150957076099957818725014708375533427784464294666523319756931350070550455543728019112222004072673874247378159475210884410694054188817558072929532882033554902147674493493217916950687856968483999110329814183594609642321551939438414666145273295695018122159969162647662163912695530225085588724150805513527621828899551164904841253847569027955068166221070154676274159214510170011808056531905741071197908641479368569645920708896583795347191430371559266885764723498590192439028436709534411892656933134642841888734646820636829299950295746055934274073771985113877330191444565445824670887757671229311926114604331092919127024506636001962374772726593312758251019205160116315852325607368576350666050052802860405837837232585720292213555374193617713821103646469683470067524051439490581159056234980533866411518808880560063385523374758416177358749326494710659246059933515137276574146705877880375657448219937121794955360524639657779797599299852140619499903763218973527247771167229119034513457804764770004163309590880644471345953579392340824256543133720972820631800938968578095576407755744557987846604238234494869612524391016139560905251446246704366127792942262335892288172403753049329817054806700139393509037761722875968913516841435075550653544335305861700305697918369755551731008156364683013697079084288997785476223287648574119454612959316342068882877709957167700596985531166656317772434829606718244217527872375324390976224098945836179160667516088227360963755440745378337693610545091743905835033825726856454142318405961649078821678212284092118725817859698959187579824190344825263454937872737480466953808564740343461901169489781426271988212444195487689239568744085268631987917267213035206088565998461441980164336984750489955682750437283682657092386763010859043042819582232666386232118245703442336563023386050905150293078972399152287354319792467015000687075555256316710321734035558003813714156249770650844526631396722538004688359044923948824226074972982529627999258874870168493257924621461221827086377231773630741778899675264827529417076757866560721707290693301925628757842149743757302016699696563333454762842790965551260344847626141946841024566844815279446459884683227423077291583559133062308801824967597305284436313779716698257897363628866705645426160898273060391602081494453160987330145769930782856271212355779165762640287199370091623956216120834587036981009853264045860625579343114031703868823417907287144346573255000947882594806528509269287244570755383705182565921626423311389197509400649376245702014890841310395768584527188531920060521673198918951164373129688104534604607795196259358912387240840478445711235739959282474125307215149377140873883345288588254579517637454676870342845359150934603413450188819463479716522095116350443969109986588069805827218668003598119236450706249776222324608455203172964339129130272185666490184954430741581705035438335800389975389604257654008326875160968850848632101720026368003064989926900694197057201753260652134828376091825052500688264792470151681965652514104501465561392555285774231573085616687745777736207340722693372596269963051003837895640983906292343743158751902264801527335601972699731972193144634997642358650617895529055333905895288706723593044159024052426843872579914532394090826076286604506502291326804041809267222796310171899442122989244642784107572288643351940826268451848601512029212542360228559426780458391282516495439204860785341612324470000138855574384451114944902679957514318947741275219171029674949963698910481220923538860643917777404163620724448220531309505011499730720469653808687951889794790329722322094226996842610372671176584849070400259216499980091960330242622416193585471806318119191177605901052868713185686818886377159320082347850079509897362385868880787173154093982868690302859795984881317456179514271230331081850526657739829826688312897953141084682358946968228063345085236661001911059705687301470990509561530931705080287258698284063621481196908877861640606377867962090652170659846477639515535841676638243079521612742980806992894223500023692701165854190935471706790567037902851191152730776570772289443880358088186093330432803676546009147520795498163575138502150958547230317215307782767367841252412492368160997335318026149593320762818017774919785527043928731428514130836455423766954739197672194366976655485591063346729768350717205056418167981853663850373428993340189058514723364193636824989184456265661718176325184731122450249675431128021932001440386728661743747782514423579422872012122785462351717333121664500858611084529080593185667023576952475194727313906299776868336078222607100593349359909976765459231449518376506190904014610961692063698621178175611239200949218619518504671674082238102448474808726727923189254542491670234082307277736588374123811841933659696175107815551097938534839770037446533897908794667873442497367066066842584807781227967663217578586177903797838550537376084673716007630229608244305046593875182792548256351730735046605512066960543974851669952281486923336624715278992755853203785598912236389395922353544448588511889116104459794638622912367105056239581205359633972129102871581486420533582314704768325785772285473023515081208349647270544797012780234963629808688154229523838911032408641816847578634638111730036027553818340008478925006659408332570253762458032642229527273446798436321453572650567030754976869325285524054133559183611837027117139237150944260249211014898957702214985480468078847889504967134077315040838769925358048081964029346901014470436447012999364665944900696344031233830148102804755380860119356856646430930291787477103007908392134156985634356775151460143501665677210560456657321349814944933438284976307524207486861672730292756723550576053175590629221704289552594548242202195468377694519394094934818119434204369821375337921636865987234040823375595385894718969509790635339692049422474980173867682840501618348255935109603396713977274340100749537680939532526133799389240734797368820632823520232210812730040711840544612930360158574941556894986006179491683293920727987907185347343973191468396216617921193778919292925309319708721343411661154336717031002760758076750236533790310437122818637905212925922169243091306226963295649502976112527523441504142975827037797318824297678890537795092188078394997984115404699591899718997427185915045449018917993908259096669648612023934051103263084402982471942365453973266691654675259361079032749144987071773221407728014568967443647474347984206615207219669076186211023760885833306240832700086421783574110806036810827935964346200993438090787882908910126009874583605712648610050483258265922595191280221580177935409933844080668201961879075572890245441994554961636913710472496349143385009349249836291090389909358637826460244991619011830183431311359266039001407617649810991424819827422426710187041573444561110575938076893957259514318316117236654920592279695930020079242462745221356030210935031005232541935729713817516424999707721535736669448639788993267755898096976768650197060839118818297352470439531024501478998322515921120427875558100434252051808913040654414852565432093062504494241143129572258146475138417451787138047404368855396675082542202551755024912695189135754309957217246033189071695950687027279432310022233312356170988572414225422907590493125838151005287054232041925071896453912071391513870145665090205662467229026055728714879007712103196533865253297018972078131991184713372169103431337738362220520948404162722517279503288708596172756586117490807799725677057005956758448792991251160604805857389572725171017026230932279531028855014228671746919368367409953125028870716306713252216844206033570661301106713275366009550063979408989090979223334639254540008355001445113314320877134851744990803870301135884520706060666460920967183277436581547450304204904453178898985910661926405130827007867817697296572706739969376225849128281623179903863850509025052327853817337129014787786079010092530361168189030809024112061673513984373980597008201248036332285118338281614999176258500127842911048794410247119728051510703396428019848410586086085298143895463543396990955523199959156031712253436777473765919953938531787124974515786501620171154165441160049884336037133147134559164086502213934612158985543106373775798494830567505095349906596610024774689751592398568199907282600433262169381681850898619785803251528223440439148128848303701149721923498045204180644302979777438379971632061049289577439443346706349879858361127117641336118104487433338607809214206639140714155085402482607834026894617861553122620427646741586805013995929886759539843668452033119492591775286829816853015987246770739663661021500118604794614407487501240637863576028704472563979861984758988348731014633660398685846090956753311999577608408872476654907864292541842609868241146700486381362846141439900586387330865532695129118509766522838212054741045040662400071943429652529572201246651905131259906774429844733117509946214092187467226317516099910235431594535259356759085916422385167036275168046343505946525062306401329246229073841286226750082284868595682080855667869487844601059026728203893858259176231744554375754370368218674527466621326736395967890799226446917983558901434098438964517540927036310826002187669737082800422556812929496898886862125215978057553507167406227911286850730244817715927795817824393839963007103149142762040908295922893588275897757109109659739839599221988950741671618233961588681667072283093841193791548391918396381308951576271638413472071237181428730948911333996439788216142493463147190655561148071453253484009171442399630723067996464055015583195201753365201410611323188787700934687569533376972571055855209290198807669815896007505528259268542978283916386195069991123423598072108481514385146308862635751577909533443964116859431882520841192796192330034470703738723681735968447914631637119645942556495032781819337953808532931602133064402884786643923758810456217459030383122227967657924071438836322244751378460600505554096341382303968790036066611379280217030746814358506049647227873956895127534781456537717962474879446900823503479781553149157916255461936832349262898274595086021307991604434673895566230708249283099271429537994715174154084585421384579945659574723450506079072566477653448717796317088351317270573159928792234701459550864296202895786275652083621315769505085469432393438238764624897549668918303310542114032746844329532541178265435427088575713841219355050170838172795983622888942505775739193964987749350691003158388798398037796445309840560972438083303800637079366381399704756322990357262494765921359083685095873406283743864108004643980682526159199448306935261327901882376205382462128683272960097183646931670393937561291767741090091757591563326147875698046910192107016459995671942211285699008296967223665392347732728596791619794872213699806156836758904104501683064202728632218141993804913541116793744227555886848410173311473837632020063723471221386024293139055600659983345168942751015925123941075536850560102170149970638698870151445999960818248296707634347308981699404592322360174363654582139939886203520892878885022415931207762273534066536209694546314179111882378630082245473498392358011499049184755278616104469796160287656441097031107205050682375629030178283920380642109354633315707578993889671150661349107247444943308917040420896609773626244695981126222848278656264595193660407475780251403609708831537301110206071092379205481906492040152454965287192930542219525715721268634982919099611605968799218513167216452820733207833273814466507417079210783999372883200489743541348147369745250405082532416228610562787690322094650292353002068794187437433744666636547912869314887043786419142141647118582942827954970500578422640087287483949088944398197891174970164437158088663497447646725175208348743162321036343664394743625331271535949879290013390690015016164542208104042024533922028603380340398671432236038426743829008020367648840319248301111226839860217141570741279000844321555812567785325475712352726075568885509884193245816760112983634029916321241391789186796020322800107950949240383789878600220539448345937387227531631498975468022991842454052095886731891319269178821104328858997659166075284887307091664484026498693425105244260915989355837644819019614526603712583799405375049059522777974551732003792763423540954011759037568408850188008226447785650213626033496674278466783258182586605465672345465731603133710697817413345182929022143400979514617292033732698770200409808784756789884256683961861841592853389473607041174297871199072396218164485929801246873826041390039264070312804568693683210731640983173183594019642047047611726678332280561746195156204134761405324265659997108668854379387434935228317359028397036453424233023238312654271536809472926803072659624730040287130680594651788011027610693103105356154112057858801053715119635851249946419134960268795492236763337119146105464234991524054633894210495863512006914640840103803411932979981706550970433230641879065465136501583746262899081312434778559284841898945871143743083701026408153480924444079070910223051070304431636772109389639727490850611859329603565105072528576495821511790126552888624591120303667367779815316032617934370398403912899175383419547725374686737469693651496493686073697764703854330894204057994636645752906270408778332184924263770649903053873514974140908681246127187260551876968615535311009678606222704503249266170414140182881236150491709688900181068294452539448762994745330397020531880582341044893103736751930033548614471434663411762028633273636772115335181796339994474999056658348594818728917772726309647745325682692012873852546505131910079554877847902651960341538370165254678952585820100582775254348130067436154659585586833105400743907896066559976076287515398722133847905926784265378808978339635231655066588090076449443030659963721709786138031973451885371330755732838309782452517486281527818702830954489849972082663173162408891579793816877357534068171689710522361157541182107592402217468010598565912222813143444926181073619475533620392735030404624911318620804524133916687840067020135002035505136265231602497928880410292042370590153813300397809810911173587397735509213247698817584502531895158678509992458362467018102345526786432112328145281284873513648612407579216803862621659986636372127513769985511514394782348636111680232808711491322709250034305363987427539334819379299027156357932730258733138730212525447662813512667278325040200284769836775684375238840741866976129144703751960324158117061513814868403636178344411126349198256394453543942002347738538124340244808708866650536587991239659948837608316101861678034958865838596348514902488559200240785167648456192623778220418899470926004734489016879341581648237890771080218507449692573445503067513388232694251878687242831917856289451997118860970817132595514191716188440130766040603966972823653558684287879366519764101392973508991645595415968369925963809401454497837871549038457298751957019133153105442370936643582394742652503209376006023180862849450828849239501435143640218503895394645297873189565118226422299723998080838098936272113582548932461586846368123434259169652981419289534452334369613287730630524942975120154111360175389093307671004295554754091942010783054972209058877731740643754147507669417885601201138553750490603276179899307799606827820214632740098777370550014284046874217170698029562272868735283642159365771630508602846892962059848874464562060072489428706485536434137264360283824470590691297483181809122215968518390698589733704212723920190615111571168834582818924086326987139424478580134119293389673115667978146459118722483092831170015391568840549540515665424169638371579312493242503458133802793246620922068781476206909862645652053315693844167822183221647874167018297458436344046781472915972286165326868869291742789359022752516063889529103982234311986220226798112516843642121008975201613607254820115048816185572861029257502964389470559540575899874586280626756702917289311159373677302161202398435709350886286498404587796089954505256154355892064516416421601866136323478799068194809084298457536841185606913225926439098073384941312827314712731995494349819551921983787254434341288828359928078113210277984034255036011048614838048851370749252214655517549039708812457059402907947725193167304550159268903096904785697928918883620331315811113694713566056564718905269658243139680249630449098734831976032054840723656206672566980515447495319074775002817868471438894438841736550499065801830722345544049686227588783799746242865122943224383139791694356462442152088312119171825447747459722476404042169412992908746923062936947488818976309188972110658948079862326651904692691344729972806258522416293742429099235111115496639180820561728338529054363844304849971218014529845009148969333872735626200002617688032736025016800477262694880192320916758543087117986978232303590719732274894413286776300295391563966537422463989628840215689620163394537480679802870674134414833473007837836970182027188840788337267587103036115778821834358299577228292729033101411343942830165431899159129838780317419675451248650551504245515581162809035978085392813570634549535135224843871363460998199749135143893715069962320125054960477497684642080035261596629113474178595640835782032969075365755979703364883422752762903055966588713485565545701570275315084639699582446583035239550077887130741654583096290196929453338108725527195948996313192124191812829780624320211430648202530182266003544868894472140030173973453740392826340530590351506634674999170181949826500556093229809119984637490828042507154466820805606729635640599441399101142380872917263743232033878543473802862635588380427119124836561574715247180692189478370197624948711412580131184412723744749015846557997925808320427834727927573908031214888611821732506542084137952509677008615544307974156156966137212705073174309345239299375212670591520319524425686976642521728641023072631013864241472724008448969683731259924451941892774184767559449941199834808767163392171100624156860008954541021046828574978478790774082025159511704417760689444225618236123129396722979328299364325960478351815125110413399257289251285746541592507836429201421142175292910603011719644856092343332966988206743842563723273914531919665468954360929811819696425845102978397083638783939370037424947630537147298133938632088659817964800959248013462301317377735600133368732760662896877667571263445198597981899069619556734603669523746954311065938223760793585704955971959106037631972145146316041017082968014949712355030640053370114820696998812018287346182828022725282998500454292009808453212973065136862090748544189644127729359057540302285613385481540191006386232852766514351756715885975543013318559479784555583798780203225278954217119380930750854774626962796257048516487466431218791932413859538980346885057351010014013709933650228732923119990406504052222106585565516652773361661682961702051083338325332162662868247623167629078988689945816101031518358475392561359114245571691163853260404182161269051245831260728109032934247557050903397710088019388655734389216674432417980093815723038178718997502685370291514889775465598160455705260098987443313717003776188235429775993710135478593026941168584298964387515738751148848756532251924525896118689344330979345418751578884348735995121972005199422168379115167732805935361712475724648869799641919902975118785384016037532695141164240361546257076444227292731799799443027880759627716014659192005396717022922667657447997420179915722876458028066899666883402641141920345609027362825845716197210812044504454460319058090602903748264992847105243837104123224648294752390291717873089484369595181260470102680167425207136624767078510542196960987321081388054822052085995076182520716537378552411334785046781245538181138862034642718669811107769801419943129066373877388085292881060009125451649874610210029403130262937062045878401091464442913745067211203659872751176485688487197321264735188439663070168347430341778765878587235364135340725813324465231755778826574363221103633924634576013866993676561453766287803998026566672990132435896827981301799002466557994104810743723314861314863174161941118980356684693570282719491416358049963262077144591117237364848718156185256786690078672802313839704053684895778867546691585635523812563600186800144910412257127567667198982610236893812587180445275068995844728029445817934379881794385319310742153166717741487432550382929192954976965348814160965478624269845928232251920652212003683576043937148516891903252346757345135247384586150596350062146969198174226864868015651462311786234038311796415183014486584440680532415944040932636186358014046275626204612930740843566775080707981011874216223823197854367205659593307102983187817848400350164696052724406195325717218765261706826318183641650100848248614406261840091502463039415190974192654635580446343847723058795916450363036730833954078848187683142026995794214522474777983725347759696037543586605282798434140003734276840864222840618868290854224349452838477905893881778426250588737191737111411904990261070015400301039257539460046661074411420848892456140708430825546194562591089981151571158968690579225546127727690720489248027654391597165332664111341657165394833406929866516892872945974176843837453829083593182240775110145222227962086819669652723505586627768567976416707248420596074956688452450320529822203481348229377104845263538682389747747500930790362536551736610826607572579555830627347720211094115293221707523122963646295704566255720289409700693426985308028424147739787402496284883796631416348297755341911154870995355709661894289962112650159082031322815751421419956632570290495271300326588134614201249747413457361275958847780399717391113738395137591919199361656220057442357574135299180958357423860492296263484518871470585881720716176962302008051007096598514281980686957608277829967960906213815250561455471483669811891316385049319803649394065455700732295018956590770127845425346920937003306811089676584661053318537174545403869078856164514721120914334974461399942153690503433763304743397985400768977808158599565204635899623313051068860376327491674851864966454089153131930183911412040029031519198936109057143140832641014379955516987076735130288298893763591569075284287193832625137929113269382731362109743746623119200209254605872364354545017252401271906126969379061346221136477808047637532558770311644722963748519734096412685865416937287490489823207652158579657136606330449435476709890059617092105752463326259198823968570153700832046416360755648025096117813208920906805467058067370531964454922940710125440887021179237633223304042091971988426914223470639880682995062706547047038943809779915089490938790161583898550233130918260062408115429384010448379739594383852578894056835310435202518210826775412435829388372036117237044606574628298383153968329691223347056399383542629230930444624768747005924863810814730012393921768637092947977568479113911733893575724694128816507131323443409054656858551805693555106980555251609596958871774002998714145560526223324353126769545503513946385351375676499297089164237705795323000860664695034744694292025032698633354569300985476239154154093342333027378991352723441823934410591897849573066335225693378558316013879698121053804478500286038940422071524131737851086967065296741537185472512398881595318653157762717650934118236215388494626360591165889493064171478289017307743852835051649247247541708132302202531389617938536277154355817292648568099029247892707927999442839155710466346699931761287300959734911290487903125940008671300142813861076624994486022168348600734954694953875208603894957590098701441035583413467850806894807241246376871805434109636935463738950574318948217867270417902506757547982424298693771634703019622663653019433179513299696753749329408900836639743977485611040939139483340878467414174271145147760160909883582575433082302690106580145514301488352976121310182155357394645434861475040520052626711738017252101631378922703909923459026949709005168104641832178763741832938266498696339389938116588231112676175949210375934473513357673646214277426902898833828500436702717014138129030367469997457836231887942239390713179105187763202437861282836715211849842482981749786757811193289078157481049608800250484093283035303374340318751674302836291411552490969696425350277660377599286684438264424641045581474078399785347171181405428223825826726445833118152263160130118891220669535988723559197134833740629536235259601760042115936929796253404264043647705130304460361184081443524343815739981923091283870595510877674138914168452537722061114570443190351186098191755603183864942960023423543076687939299746155028728695085295926021188155978662285417655110194442747518014748057444476135239173095246989236798682211108654406585333114241944130733926734179930019709619811736805539339747388435072251914503605532968695520190881058373299877553455907804844352232643905580123373431511050299168475734096655831421264727757141903438530473805126851835400747057696771261797100526818965828472130721112942161352262699830596408124984436000392761714919877610816351688610495965678974080489486110032030914962469334179650342027646763576385286308078208926627534388849055452271844953235053390882163817210863879136750051405886756854195481542657655450405993602495932087176122912441479799107862621338102314294027494362980627275370000783319441162509159168994190242269393747676429780664704945408708553689252201414824716998484161610974254113905444994888736200100310187667360204253409599418508645921035613469952406799128724992921177917192427202970357391916053571648390572539020147003950179014490862812916554067312961623506340556618798104475976995789955966046969295905763987201766495883063927393659271746702726443756413229105238406049994514787488539138844976948135119981618441578759226634901688310275981760664603274635962000055707773710972645485365378109781114679087535577425898375924581733382827808852989977027649571192781832376630002504193170319614815995591649154024274908956824644667609646401207363747750003731948701648939864823930752373972238590891131295999987177393505497949323753838717074888670378642664058943217954178969121650341331121186061587242052703451829109453876720412509920224792395879404699840298812223435149805120607769927275667202286552233854943121730442928492556108646885112297346990251131702971986725383371787500822986446401158918669827679174745468027530105387999492601460297455435627977346737552885494886137056610849891191094722579523275559900538783781798140616819048711977162437553675707145399959500697194346198887247635128241407619041012760168005372582728347321320602203765152606177428167248506423091701612670206974753009867354626040291959456532303565169478673874304005055812478509169650809872532045830735505229482378395502834075385181604238800755420091984110641034067146182981426812804018579896838453375074747621292610286279250454804354842657006016310971792149486274533879244485815296068404651401495582887937971475830209101689619729259037339646816177946675574403836913541698663519739141206253014787680009634760519601375938529260432086289776789922525679638245280530747788078447688267888856106316601189770963796819630948267966680336075663780888460947951538084265841651026575862904796086071979798277860693826727303756271831497959175536268127540323197278453622993407505470087812861903933833503150446607964935782252839929655435680585261594717928382205713281906010617459823437834363920686711923233728235641590974452334867851716256496185006471582287825530560225122189049220193346183758541657784660621580701548839710842011943495543557078903871804162156965869327348865834460274678565273250019976230173631130241846731477269715225240023098955745235243117546257860940032080964333851611155251697603069690002791962660993043629367346970364003019113078093441808870067063112242057121766936213936482571763185035553091494907645097588171609564732614598694429260152167076024717653749825390964263623141824718883282652582841336093034559025258323893419693244925699151396278279628081787396422066509231021641406415157186173499299266681146022968283072939445360877796295601862879396398018023981286453753492286671291039320169787662490906425442006302767420332011080806042049054629622663570790696607819986129240292826546490993616847502072004286888801934315394518513336270197289576985129452344200588081749822040750911403596059231283497005010980544637591941483068714707281490194251475717143103205744597994390784389980301100823660117391983013156782020939489929529169680317670083925554485896843277956650968053772388521360524586873784044858532915570025592411038397368393851795092142245488034460174258253100789255826204455128467781591004419012499257514036643857498563226638278547900619209967256587501438182005982602245754187573528571598942399435868357206264214987375819258729726450560734306674973651434193156907676865133847009548436915756708381562299146785664928188747769835384653598315151561394633464499561667087533909560392077782721627966053425265545585149588048973667886610336782832223024046588384740020480445477767491157832515974378947787973937166120610050434382413497151094134260488642458164290877107293811883371777786857952775246162733320164894350266790945674574096483835903021634431100280724620268376662064386315227841388843017566618436817512076843274977316278280724000044653631446495879880095471729260863491629653505680818171085280415262833171137534263333750254742850532546628959759921152106865783186772527193195024320180031777317293568140157095481315340828213824999861279787747097871962626900754037040817580169636903422107720169412420944881503532763352179178636192349352309231712566671940222493796541692562819926389823254378581991627869713891721893217708646505904152579336617611863697582392804141873756888857731228831592796786097279395244460634363749380416525861343122011650029916902688560831018025622817701102283676900863564446238190180508250006786429611421897117747713054305229191154758597244414294002543580631632464236127284959302364357044246864478010920068555927615433564444672185508044760794166159801908920597750950413031611883512542670687730765695831803984206028227003987596950084901322131625698814476479591023435914481436759302024852366133523253964043784670263313212005561110461744208364726747863751502006851710097756168755633516755145400652129834714567602382383954746623070869919633637710389162552538617456079357931905932640808694232760859435044458213337945744388320385924860893226912290401866053751387013086812883304437275122182590952071771526358032057980031263224193865090072356550345218630803988908591022852334712034283845098284107733256040521583626690469290244861496228855289559647388269971522531575150400202737119761879455993526266771696977019030838469152535335215266911341730804431606952198875062850675002596376340253343968373336472327809460834367323458359464656921858830926790041182417262308430581778108653098228919718022463485152840877311718358421266836080286142634569546658471358635988578221332360548566114482666068847210275503884766029668704159910717366574314735143991232654904460239096660240650876246303342505701011986898282963156269321922953484023007340080730300298712414458979032092661830325433348997891877120957986100204062229720784550781536546102375239980178082171342724434662770665358441484499904652530000325785949648513338792139107232967151185647296028068022464199155929622646955725316426107618849106557545239400712169880414503468222178630694606644924535163563532278240016906705783962175426551060992483543672503187087423468579865118603123176678353935080439070394020650153193215818259726465352721804287441625197126117252832105266180295767350662545105127589875358059874100749557039206530852517254009914999099305647720599735292015108647273813270948259015928389554239906365284115768266727905808459425104410188623378823651242626433737049271286646838471122872578434824318134606157022036961774138454319607534123320870384195616382775550691534037521429791861874744963225711387949721868472866489204538778602494391900144393102870014921703157475963615701274109047955486218475873760324707304090457599080520073566414937211448573723648613484344993023209909142057713980044166890945700564249573790354544170620763706833698387698338374677186842740142310000901152537614775296917737134691828322957921657414524709279570911187187829300204981944908825214695697541814857419975428939175527097468913398804616943498535884128649563137537831972356395148005137585591782701048973358439744106523335207296168652436468940212295015249180214017590956051337741793978310451772431814556863489838731528531560666914182618998062622371552650117589596301935331410442423498027062112844960366987380440532381722089401597411289538219103112734846800557180171472765973239252433572906237777914305351173146452527868657984444835030876696533219505746670047089585130717382958100650966975340320068364013265520427294779966889547047161950060274526893538665483816148703802156196581265912343131071633325028697272542253385714885907700200288367387579593692625538349154026032447269429928793440278782046686252820878786434240458060961095485828325241952383586275008446207180347585323251195104085755226020163464015425065594274483501224390732282261458321981681190147352805571931890184515532132295054749566411830900057104917759276027096527243024442114439229010929982424094041148915145859693447869589692100165545880015077869296744563610567909782989444988360091679139573951637913350693143945583255970641495543977625119159011995667796826712734596788966920780849978670749463507635120088722176811447130625706410590033865788405463220387927694189708771497232111406371158629103408905411547942842351053045026300842197835273306554038511976773951296708894864876410010216852071998536497696008984814795019463945408130841888108935041349562054319486161954698496963921988834105931859793757950974566552271182224841551073192536140135246739290371620872830728662603497465683904340714857622141417951153907617094379447678394891666172230278588852956052505861005717783036391550158033240625986038791262586257605409185184916587520381040086555453075153260272224611933239434741436405300873648558949180972543170184584249512616127931232208634759006469712772618948298701154303082660595687936760626639797886886223622823982320078838586120295326457573985514568422421830098441748324360276012907141261841883572219614898557942335454327350733025458655165386472628998663391192637384736378469428217429254039514309440027613380231578156382509815639539635954904937937084990141826046117408561367269735426566000828108016595859955281958603994986940141313575255786107093805291513252444578283841716893328757450996037238844706493247497397159579757073212686340462707538278265035858322866196930001292658966972236381241018594368606242405911629539969234403902153779132533050551190474300579223237915131848513884637587539765955014716441288379646904389078555180643695941576121480068199941152978193328167505886033066145874990298247586899753476625954996298222889928010458004589115729252949840823086072292900181162034274660067438416443615461365429245382547784438413041596771405353101884502426761924962666624137612067382733458430244337795736983148367007178746241459353186000852190325688326284155089805009358225438438466953979197462760012285703016287159981179111124158111119512710232933974378168106412248583486617564832788133201635475120605130079022586066915997413529586330205540017468478008841216317751080638241304920873625353009791570123660630155313173543965688098090372215580408532822327674364134048373445654354224444965972143117209257222570364662414612894482446880510693225179611865616848621998911455042844725960703537546295539240698937598488090451413336809531539901019618339748349035500691058061261513259854394295244243971603506807871395298747545169766357765777998923693742416149463232468751022641639381763833649909537125223693406356144705991250989043573339551750168518376425561564501432657132885027499698980341460013977314434999190547625306107542219217574567500273431441527160446874549149672018348069313135952325772245356904500432021962357802212381906952033950210475383682590147164758925088468335221335145461710462701333303034236164768240011332397867643672416157946847168434551671546792691400013073858986570647626419808790538228632821433758391886182116404159905081437526863820901949920822554073172391838059767530617202458724819484412917094084618939754565732059231701836231498300093983721023009110984466460115520133789673623126670358148788993807067366834130240735265927711620229908123606520747960419665430442800297851003200423316286016563240298319115077663568547046583792557860230152736459874497847581821587298016257034501286439213161686127132788305917086845604447667693206852396546418291096925087057385518750476702147900050980399099589287367646732585544285389901358826883239830678698717516567274699973410290757252473032510644265210445060982028692575660039097151441070057770276175389269351120146659400094558218794925007017445279544640629264597878224699748837944561762330737016616532686913785792382759908710871603583822675921485780412047090920434598009543018562875664801855725930328680097229527063107577607410243876378460163399428810599840339944367666510954880504094017262597422944465057978216077889657906799274565532132045466626937118067044330057412215352306124991760689108626695169124634077850183750425909126151827099088126405070363039959771182816752133701670416324081852664936774260121044734831335964756371400347792605778838440780956848738711810174723123606072832160533410771898144729304705964748027772731495694561441746444904448905268857568918251241788321510237864602419414452957189596793460421842613952850013865303989879216995208934829748925616047474369583231163207384383200268807184846772769721464196447018615977050139172069640384197725253239144464004354442313555202648454679185303415945256587321798663170796758222665905411130671642550848987162521001961733408756508686361690937700975782462635401700277690953499574759738287954172990610305962666747438508503298321526683926057374828906012111382482812954084357086420830527722531281503876221113465062832382756703722923839353371264218005894369636442287826229928778954674840551537108175815325271475275317561518459853304426024227088137137153326320874876678689217185819222079563176712948929665708964967591560688344445748642059484280146900001703093520624322775956949094089219576457468216038506760024109996002696112831688613697584515920380193628731877838367463061386481604797423690482960403173185275678269932231180007205320058506794855271054036153836177131708339391151429047110890889537220529200721680861341081912098675038115572953134352505639006387712658342838360367813715154969615802967341893590136022446684357391249418516969360794174897361280158579018262707868140364284412403590016564552927890889396731933257225325839922488219712418057610593559585382279239382178095019840676427887822567187416791274130509121831521486186303399012703524972660305585021936030480172859799521871368337009060032857238600007745426318374379478710524807351322909989095127989559187668789400953920476419007904301987877869145164651442722851455531272684574220146200032305212182645061074606701774638388420322685873254454166317411751818299574071970403088120216639702477662337074274357448914248263267395881411878673296629861917908961142138462633710885731076062003633107734563282239141526515386256639945686464783145414847309282265123582208470636325830487219408865042629787115122745647838025327551861202479355864367797886199853730221931031673905526677235807044774262984187556543558265703170816441606004129322200375506795726941331179202054312997724062931991391166030962946667467852741596729152762854186192667466676815207157173704522199500566597764193939235403030167685047465737713489109511130697663848520217976362923233688305825574459530807254882965379220859907817056709504717182280932178270914933879395174090249130133779791890775638756863406377421054000623626962252919898616429402873046227618152317354021815450339146270918283984734527202903587675791918430607998731883696430493221173245718687228415221265136540371100890372662252633448892093911961415773515922427296862712950193084506864005423785789204974831278087718586414046426028736475892940953119960209434742156300967497234028707215854186941546036241635571683314344583127185110984862774957688290439771966535531259999602628884289655506937080407209917892141836798596625597006223451562632384603149478565413958718554681097240567100135196578272988963475600208718529732784920462790176180249139452707819571758116363737298038837911900347722959316911771920675752346769944147838475583952480516560009834719142023193432144233153958315688660902405323583835886917321095186276935382884816351506342884849422620880908705078700508608954321617921793970754057825611958294931293575424181839570868778932155708506338403142504058409392191306811948294176324632537857484524518596271597192247937777191068272388310246033838008754274052791864300718264580110449236872545175009318988583051725308289325065631105385522159150406510333170322876712285685204355440728971197387671525662457391816420503965654134088758408095283711110456861236598663387876762229895369665038242992075833981924957265823328318911997088786597754735204741295667292819285986581657714482783986560129983292658244131289279835766838122342503568196280667154676257035018490006617267332059556286589399392762852886283112117610273839440307423122236872297024871856002262288322287022626809797718914313697502619819936138211466480210853310554833513905316379482016522022557013647357950204583438819680283181156395738329941377932186416270349746035986418175234952165048673125402942416699003538523844453977409147916427814465854160389339957615559413198593946974641341082843813837269726563909709370474821631411516607640990051400865689360815684839468987086628177029659075074972981001315513891443902535035113976621816688811014040975990304728638212791979416877325357844040904509194277338377124428749643135749991367453773773345560269069679927146023135948751479759771914954867754055778961836977847390685586063332400283200923783233867802116063386091914984889317343926812179591310957598653348083978340199034507215615059524451447859367335557815980391223137100067154286674408777029420582979641287781260430616705234560704692519860738777767869244623034852120388239562382929539524267663889710046553562534318946545131676482412742606202477374072353051865360924648920945201262549194241784349271030330776765686518573858820517781242290657151441733374431744482770498852182660749911739005533226555159249475708203546723341521929854379296408493490029225170709225596387638549777482435637695056725382555785517658383565394466631586341102728666297002916272102369521506596028790351313005587458037833198332856943143568051714185662329757018630228754129794391952078128245948460679327663529476746746420212112527241674099690174436682745978717208547198964837422055278742072159646030754660289701598463638161620883298059716679780404737539682103214617232879407836151474195345283695298483510989223403438669019921640647960076601968625959333336528715755786990021590556108421387282187778227222663990195440860934140427751840481508719568517936662267250186977372382405569298098085642234450978069161012137975024599269676044211908182077924154428464016720026880891346908474045013140060733623102433048586696972302935260263096186615567358083046280049431468457147064807124699926295141953495374991706459680381481338886672602390259900381408957296233596672508835486050206395699648866133897791884112158077107778481592188905602103857109195643558411503946191191765169249850723112212670453768159361118904063092883183093402789902568932407817255453182494145175918341506140967222050971026800016327246267434414765240957440265926693436276301920033438176567912058506836513033233273675170357612145271747829665231827206114049533836578959428619111385024996684467778239010794904952052520340182434644835134302524496432437685107470382718386396360495127060012298523196308279876498067089319725460001270946801175071569251709707128046876700685621097616654973286349593040625753703218406460747072048199945667528782785465798392017438055974996382555055687118778647130304951246805817045993469945995484065241992229579354306234833033097586854159977109713248902442286923180529734669666247977529153291492175635562307704010109360141182952967659883859411558936324513233682263811316345830759695514201749745534412944212609473198160608075102277429291992475915790320663370923895486163901628108801192172552274339182368607480140420438359249124147507541154606826471200156348497994244209006757319590203211888333408775062221406902964819056663751225504801516894933771263528780592143630245440070319826673219399709173433192761731521367361476076719111670040407413316444433848753867450914713710768148818497234152600307645175994106686320299708518178255372305973321692552113497002103483788193325877852631128701537804868555263224117728267246531490912413588110119650599610837178072499009764593996132595824202664470786734209400255093622548389801797057149750258761758693766459874070075075344787757810031109770711562249331092702236128023072138424781854062926003633011656022509692352408225403863393608903546808607672452464174334077824109685664979911529993101333475194295067124605098936428894931998379033648888885951948726294790189385340838976803267409412807504711105735120348572998115042286133156425637731266900573539927259550130083408003169119556052918372537877180562087691049637166496586106050497620287373308402174049791373291712247970548105759745149623436286586751047958990995074516455274305730190964049277111772710138764943131003721248930875926268451712497860254396450694547099181875100127173700635854391124826968583281883486805998628044575826601372952551512731795352287396216133584898352068718569175038491573988689317859795182080727677740115057439979688962503407582784126026927293255954638017982306355027892746206077557450633168184897004586776591764534530329229881257722010886427880414305690197697951613089088512399087309598316257137221966552198388932918772943645522466017494583220841046627519071286937719491221630048321499483186406481361720720212662319077970585639153071859640219410345192864690673426000897240764950762410263737085374687082372187651481290728431451726514724151649376488319618765368730512264479483507952700251929912248573642671545810411988447075644894026164152978365730301491723570455489687848321846172736020570997939989559700248358299377459893781382699105356442869578655445948952930847048373652116146686341223858735292305470403461165258204459407580557241989077344095367884493862747026746786647779839808029822131702689537080712867073628451807026972617486532226655970508666787021220279259861247467446187477723739939841663969969197608877985266256977786153196092028522711278670270189190787712314274856788518745632720860533039688148532913449300200400237336487302677200903242642464362830613794143106967707142389762632482219892598589862220287277062040547744128915448504667690936928165673895702939119406232048321142137631991795797545792039365194970527723039784427382656042759918694609727946787551436614617165691786780528748223551441053574787456803407594042692199375720047602272885956346275075668186051659236587718476739480717880762013944967424808454945107343643860367225798407936440857881263439265171321144547066880387884414520267687811705422314740348645877252264757739976943184423427978555436122952746821162882627052672118565416698538035461490742964082638163483607667990284682291527053473921928854093129319707544800695080278502551577145554099545335219817311504435710714014509765831097728327409003590063146794879266648771883092835499542065265491317620200636714004603756645015217481284919536526993344201394787362898021107019832567367690967416988480896035391022721458621881125392516584601982713401449037474343318356392864921610219969396205586729653786940453259638210997234891824260995380725935999976284370551037368978519349914632912077632268250811222844517521287990740439956791342562638960991351718121555760936316909282796982594160012108555115253802985596475714371295315681115406905391975420642618168903033610185619031613626437444110756245493226494396806108318070839599330276166975636140629601459627279896222840924343722459632473720878778420495873656110145808616445111632217744015212621099991836113105165639403713230627465556510969176669897913076374643988990899615020593682873019835973922446916501477130416766722655127754391639629382858304120799633847424738357379265760969096499244688210597119207162809313693480352605601814435034397764751076057422786947124518235518994355394449695155925632378348764889647559606795194370167387804390212059142914032164369555830024152743282076220938151163036968137316211839418670313554729753859061486659593544060447888099610298834119435624377949315902001900547525783912337406998028879288800094768804436454050222925941283129166536695313574150065834684873631763660301825242649354677184634005575568913577174668912033738526682853616319940509561663276834452322635908070246995311804802923056393573907638062363759027219683280816573966347463712056290285107278765347991574545164035153483331663668772138367433975840489352063087975737243355285773188749674142323339874396366611979194214428835272903854044166683995935094396732578596002349661822742282904317687637501533582088135224043712416186111110663853813799008498128367606363255090531644178199529602530526391050213803163654141177744455243111217092159374487279294831625502317218826366474753327348091120940200771256249151443582350795072681138849442863917679900478522322197133172245133565594598122852994896040172111388542792057261996057018610934479565774386710819727615025651185517102947300517242448521381281449023602795327752384498674288080537447144397450719737276444545771730315410145335128914899468078110995011460929150318911763321281306992705266413545326567481901933575404484999920652169705665087783639591288083834194749830962178775785922859236887521078401901446915947899828163980835543572496248622036988970164839300710022466131462793444953477156306536369877766706288599217976959006598495103280384307638259764851959704497744788781873930830315072646493301418289254576203925561832474543634290183487618514952040690809731125642392672992179892981313647442037556090288674625713396248855057939312488061500308826988408596864795617739181008227454933813077161573705510898787037147493684417983563536370210352777326539219194308025703342269474174411643051568937692325639671846724823598703120522564003716963098214304651123926068841581014913654322835409767077486507546263172747245578715346817921160563150919530777143306403712964634384675846224432055087702031381117958936315199354514329912491868623817757951270111280554556231405141075940128260160266454628657812365950009702200608543917649330403947369680838647935900229904832843602846350224085084630755651736489186812612369069640824959601055431017737623024481093103666391576543456412224411731228244719472719445928116482299183291822008806138986285704679513666804331769771545434555327306204484543116232249119004726198959092427063169936152315927850951195163252792653915388755463046319644628450419598218931362041694990859756058417037999418230816479623001760189186957970961245756205448734475050086168928524740068482186285290088578173932607446796838645886738991848471069824020603138920115305490603394927795624411048736759780890241286328016486972486542405770268998922566587454353680872559404845606206347215567904122326042050382722508471249085159241015884219906156126207598822364375294737303294809085524404122865502615696580823862082211572802784136615089139165815231978456061042081005224298327621104384609845318604844512937712920327694442251211609741713047178968438408759054641139247910813987174280926932966454947887658610009530278041107789762051061230891056273490918357704837090177068255825624932030926705222498267999562112586519235605320094629840869370583673561351562057119160156973315146404735628707652200239886943179513110111105320530043419796047048152002804087828286989577544960897675944545534044989864198957513945004811312075461273147645159090740746732374190572612416986917977404400194543403018417909294507708366575743500946261168771478705797105897145713459538022338066049376378195746328835190930454838271996538220186820583671020294802288458804122455769119267429096564492191486458960495510628872421804150544468059788213564706743228386821659729982282243390417748109557481887148661845950235525518856742843219627238032183717787558253789928566466878672245851334447328561065031285786934158027906965888035700721820019270264864046126687659056977239371408498741649939281756261702474058811432627014346814677916031785491058488544914315606609469439654624043175279368634426850278324252937820403270881264331488706175364810937919440356650668928236000023704394741619842162108492525980072498009654444826812720201682061916710508013122481861482943782268181633400806679002648647656360299590283878862627765501340839749782217278832427579017349376323968075409937347814328798713980984395904815487565811486355422536831803133201014424699441034514209600067509626691922002335607153752689082548625245157529328563363182533736192991921638005011515297894277263395831505876595022203452249181620666997310570187402280145409592608301115009363819524052191077433629215222304646452140699929617670236781089699578717074144558149760895418937551766279848721892171314971293820825101594427734864529293430796266080921548645213391690336069455170422155213784242383581073487817143033484475458807348754329748635851036283815029982713144155156273351134010716836107159769786096160885436927861816549040157997551761293235158837046982159006282798017539146698578909944599402600395126396851670298603127798943674934219391239594729063183503010003628099383269059375520846854538440950092247220181804894010044388324393789796785432388534842422341075743844986984429495778849632020269705191564920146804573606712876524367923223672858326819023588877816537488148967765060816605365072734181560776313071036487456371395088398768288236591926561985014451946058399821112096380096930203197620508638817295653568633269722180577941846569547877347460914205743390656593332262335797741292657719159353811918950800708335600087893910162760709728825154477751647756036625103812655790519535024431060844638969283157022966546235796291811163949734057852667425196388027569239741591687504517590737144470468494917024103817392668737151310880031588121159067912439042305184924828183142475959970067954383268211745244327785589646210977570391973859378367110261084718035100295903516970397788277483028242011698989964948454007871343455842608959167214595492927242714036569892388361877250282091845789157171060283139741065623709097448206492276643257870655742543356067495681055987531033593119383988958483933391575851937483141105571053587083102424305306863251968815193908443024948669199769456285387684679271300786262539752730090689952377506760136787942261278239275511962757187353043103681813649982793931974619760927569212550065770539625601914634411494015512159547922212169904138659612916715005948210054455422077378652874023830372742576944981402492279891374499128469178694617212023339373078297759050347473669807698607257919171717401331300831344178151335258863779409079257697119907669390915840757651368187308604302376866917669370131122437005918695002205035999416803897249766616296560569113288815511444196412748725338522634505439145219608090486697763199462326491607821192570812463207000472959343333171158506817123249265413509522410475443176173544774607097122090864536869880442165957307710361419423302205437791723506971687394571829708831509597476412782806627270587762436602637755391056047928962510475920215502673893510691406730002365843930582441202205342481844706921622526591672534608090459534610284637817011800148218039321136888754740064622962241797167210038911927992596693541856992376403414021813968522576690027817069033095776656420245772076799335990213077199825720380294443262791909857535321933006873643727825696876954830074524026495523431823936364587643712341103059518807704701230183693200681737658586944773529122106135317693353441059067366041466428955063364555373177764769036159668524500970474677756201642069848803556335306760966349816171024079692855570268346768209057673347892810345842643010404489076293813392831625807294049356119401595930689491833741926336035863978289596165830426358945440424376911808902204341177427370120337132757578147786151504725954621802825021868822702399276313461813944726895955096273677101651107267317457476997497751388808861513670996769850739412192821195144954783241663260735529569998515353558793428410644987182618323045312661307843809753892264315170744866463843494296493972385247405291254314262917695629793610923938753417353875471672853525239942236913151376115538897703247684275943760033335769187335387101292998047366576074895744788652388122791758630248357192460229742645664571474107758156188198931489514555396398067258153131443797879860354599806044485852551575048950020599922057056091168259784401383771290188966408512547853481277613134459741329666431911758548432814012736801867520881821172318479377228772992776673123576371246155829262216635005306478012905650097603498990376962457785713930640425418167504871928722533228073540696476829617974779925042145816621581730378259737072733987666130512373103934693718186894501931239161113180034565026908871604270160484988407915456192634341813416240107196282460197042709450824461049777891706738617728771504207586546745731536328405429931063901950066896749293827518757526174589067319054489686745652654325783035413492198558765256333889973574035906256628538445569842362316494892452867476727681935563827746263336675233598692476800762476066574339756517499201747984678116004037783798231830386041634646139797902267922775348118048331831602252016150006190021940679562415139660319375409566836317527010591446618214237024701702196329091843919351486961834437895496930949603728657939155909393728490841578179069870154258372687115959218772380625912008704147039737485037226665376179547571409640840958902837401354513185149248491510027216902090733397141299104459341257652361326192926057213194657168710087686624845211113917376087629669125057556578446543297923240846399289677941446472052441298781169640860582975025878655265929031857308158903745851094521547027174690728574011663723584382911483683180324887014063738153265219353050803543310171327959049915254461796254516144213583485887335371317670380915196319688600698977690821966334176095447396499202753373774906646584237391993616321473160907674297848719694788195120421008291489145675486544135967493767385661611977713263557092145986196704703292995272682667278946063525427920921471549094424570037209305471237619107098220943869289487728176183476041884562500303986718415644139007434671541413275655029613695903315105736631362299043553475295422712532434916859290634137716769050543053977727597226379479513457829670881537449281459773232461059869574686657719680126624332220800708764662684818883189805180157438509794664761070746406836188279940908060195774117075988328765351066443563871745117514578334062415479037109606002952536119637932225175187415781732412902414093041503334892507118334202368587848660295535278792005433829949430471271981766346626257182215484815049445046401891599426355061742448903562725158745997473208533875329478856765777236398939515955269653567047252258230426533364007340940209910137935954506414653553181258636245121117462870219806172907005958893989119622282599857899115153547288212823749411929931997546703172011130651027720930220274849595330833356012773812923179414176870972163698252291271267732023223104805600709751478986723674154895418742099325587512354341231995917886395756623015101648984190000948119259385712075320322858530240025271914036900956521025912315992310227161769568576353655806023658510713401093300146973185740785288213001674187994915640042118246007675357156549386908753960937966771040415219465479436419291275083088416658667296845183372410839913617829940319451261633771612923845661228279426817146323793280007223109157655736528310110883127229628288803832619348513260274074682653228423625285746699137504986634786424050519994822155447636337889791681175799470687226011290385560843375589052140122043551999168923962014572970074481363195609765405999545216271958144270465993044245592997884910956533825750079520268303482240182610203780247871526555955520102158408439355377443310376454484705723127362992264869530226968411534928985188893067031987553646761576378969094698321003396155518060471268788409449553421341664952920557115320402398581809157368153696889669515366357896643472906286121877440958993729254909806345892883037122283855289902636763224468641180150629026059281956357256726134208839702744970013291755678369854424657505311172438388465579936771414710143164325367936615249295331806583753128242599292139709252556965928002826037502800591121619333400636159869238218161248363154295777083919749705518441409840496221721169376951974056430672698413373496902199245952881089148800086172521621478974966221693676659162510958278643540874160954256390399978599923638547191671708011587214798043127730687925754987681384136594117698519619254298175138931198653432636442081794628802422999797203321810054038537017646113806114083403365495896187790861051367436935830809938087109029171044103311221478082562594018510249434106543435255597692193481179100555090758023192196482471705974160522479763278887146752370047015001760454235871638916644072161141017065643766188641523564537329672359783898904701283304015587194831116323835587514356225724134148781434981820597822484608001944715923785793956613361951181060192677431135737087645578195069468094554689781741784612195120418294264454061723109003450482415399565634858569062335815311903321587942885391352967718573426485491070461337500575730914456495525272545260424856733533211564935613640816580539437984906976939887447306643949576013809327764370556925435447602104578425221792967447919612568090636109370045752294186164616979345879883700452663586869989649591007308706404476566274164586660903775424179549768286208072483053589294371263811768851756950086730178151380864156511589484015059171414895519912764258700287293318170554490384491270851348104401357260009853137372189373677868302987704509331571399420345156603498344345321462421427937752746010493012569306172570762017925292971374452941020235284028078245662227518482429154666898091413668774969344641614845732267812162815150553582695507863414687595771886326570590966636141028276747340107878262335523341311267212729413323409973618736291417565593009008656610887626119497242190350992499785220827243952339052533430308050840360838002016408220515394329371549515332350144126516019385247781346015664595836123869971283582699072585420881512764515708836145997468144957970080674001635959889337008221777109268841805705098411273962327336748587349285651547715668202966818666178846959125099131474404433944294694481255927834248889495320492113885331278538796063065742646476181244838489382574802272923274447079341870894940810518623825096495009719022719676488796172983267598871898976740720865551353968030790251002245901955859517404975658838497908535358408467480245348947741436856423063595928255348495082230119108691638956943341502107243365282282805268821267081452106350984591593423479665878690364002153129096052962062798730948505874383643688330222566496229181799535556063869819202324272502407576029714864734127585190246638012168314703623790013231259452902221713294706653167666465377660413213334289249728007696605092289123908495344706403592389386882243042423465493047842637342392069174655371001250692502598500928356757358360202590877059346834225936731152111921936597874992926313784899554569930382599859331027883116443882619577026394995050561898714612956212066784993908019630415021886034287072163893018088854073079419320876820668403711024742830179150468752852699134938673550361045596684755178791064669204553893710673962994536944513726340045970902905577267735283556795307239314013620395895086274922617387246639544420002993512838841792990566194536181527762493600381441935230510587741988069556303838361293516905122400028036418518866649134431922112890485012109574479220011639478747022535926474476886845693832220598322614786766145652411346076064684999557654422624982434711536008409611854953847424833656798727289844029579615123692817768252533219549378924971842933224329312157360497892723265258092071699287807083298913921507356499086721907721277827145093301332685472778181867862620086743271517656959132548820284161584311558412882079709851458363436554976689987620315363577551884938662660027842740644747350280309605515485132688014393254983891931425755022226477919466091699141849153864762981901624766338695325653928639510714924110083782530418385738767593568429501131373011112560515832964806425204922187481622245222242231546177445434920535914539003544233446356276944398837773960316221567735372473868088137455733975605984233862268758203116397411727188046458158679736589534878643671683138194021479732082189899326758713004919095940164688378862670126952503929822939042145865159993166336898972291634374490830621952915449941493887718245808308934965418163031796764649208796664252441356839676418309407125397485645519692806550167908052948907463241523063490584816718647489014222613095745463539431925360030741305124615408040432304648560930597270569911398922318326077760554904616182651598469934229327143784480710935802580379953161832173192022138493383257171362006381788779291561587182760556058340784186474199405223429005745699472691879414153044627613581419815638839099821784111054065719772168543112500863704143988693199513499900594991589352892101422354374468887322134643136687494297078281555159931546135097115390624813487303385104982216267896273717767885641886500495759314245358775856174850597631618057686575336434166857192729476875245158703017006755451380160009187770005024656587900020221137116833729541683364389104512810037488949043288156275097276937919032988528025053984392912628222913224955035324113667379099422574629458624956819522287757977702753147006021852657005950786694516688646470221676846437390999410078874110333068112888098373858656741921724409240116882142767734473522556421059773771995240452970130827908384627122841615307102072708905359365678055946932969680126335946735606628607566558558455446628155512084308454505613672641572822121445865839846595011748855869259506549381963840651067550088275679547667263651790038926813674567007907163013805166628599485737118973998150756067295815067517550529300424053759880365357681262820713189485913486005093823045874210046565080319207650221711599317116682082163441688636867215560614265334691869835065277845285851224967354170529399299786629850462372322214939544839316648525965992342253909947844943277104379278763054611539434149100353558839161495127051405538425058958949550651628055453481991317543598029554514784118623084039682660941905119947150775832699692919178401654239033816308114780226502323322385986666771436826850033571050034224905413666246552578031247466991947957540368304873266787433814616015233855556285593881060216199592444665334143485229106668979049262011342900202453924059228169377635671919173987205027480296500092802944825645397439374017306324292195567068177229548501735148875528424526223911916454742303064257435679756342444907212999604701256098264432310732197820820697282954785884957367447941303988052913626228226389542684871877968736556023624686662670526515894430986059665494914433714948069904066405173608734722288673587730989017620470679512547923670745900093261516103550341966938025098233808246249484520763462433814217907451362298816647795544361650429800529672169943852581237192750638302518904219217249367780497772954397156732235955314973101000991091694495267260962700309990897642250121255887286964138627446180503183495694207118849527888768371788340099788516829614754762273645163982307662680647312116335265849862781464271878445544286434669066682823957383585833330389506748313263553104141679598910618704109292462524621239349021952761120579758687366109750244963388656529650754807440669183758127181876308738746064983813995478401740459960516610996794988404815984213013896041473615563003228310052675927994411475486596217000118787662983040217732294430856027769330560741978992476550466653235259952739618892938911279675005472599536192411467290598158445548448378946485335162611748202849025696397459316817570455321897850938011543940526396984850031921741183723485619239566677722995339613218955544892029000410876042599940543767749556882251205887310624275211902974191591938389692830611351738732916221439650559069702449810442661210242377095634197494399594429878853228626664030440379849819534052981443403366751261536357234353517317572928103816762613072107642565525594273007189068787382853831438137040912655162269917043330590870251640687346208023541225784116277643516660325557276656556473814686289696032596553756704098501413941774709893682861104386514186778953047807487462313339265040458814493909715207017865242036301568976685075407174264490476171432413673058649781754556311949603041962074558166820980431753029419977014928297111738143840650026259868030055753040766814308303261913239107929538031210157909839304084902320643584801968406895466704177292767282650287486427991140564116524515192744586136983284199122160266226583207872063794520592956227707894536253118339758496849760045337822081078669586459283053167714278890979183437185969282565659082129770869720377845931014680782385810084538335579731076894477762283799834435880042878868936296330482474911256806888989229265351065945354764292894394704890206965436248589368606717065830326464950394221010112123159221427686387753421466719385002144816171146982073446189198546713537488553885579525382332280115441744683154588431738941657646321496252367728165868963658531184167884756890593664934888847321529225691972455225230295792712385330919013249982666849133791495244031586062586110739552111248696612673279893959136738933999130383208491684787088441997653436582524301876207396466210753777116994239823304719756956173084358991771140135857072821098882819241805223071725300353573477575512107178857836505735571867797710232813077924991656055855232036396679248671265496447990904222614968788902138306527075314808490972756518337136946460397391097615276129806549392427511740660113516753369775992167090774315658961316790809244254396116848983792016921825731772576031819060573591681095663922240194447156427180816207125861611544892490231419150463812520993062867376944612346812133645727375938337165694496538513136797063547296576320510907709196148051932770285047259957163687790632809814534285384410750542234224476069166431279441467379670929806231526129958622512905900492904454541553020998945768201597746324920694294332318790728228998233339481403373552412502892109765371918348192920403688791227020378136890622974036722245965584181904470044748104201310635441450083355514602051934157224505714831768963406130163762328018153012030567778351513049148228865303344145910669306214590557658585859651515275169203050831690145922226106989780314377841539170373543164910900828383261888762496272771463503737926001885182392274514385144098726097306690560403178994672288386622423138753013194997500785222545486792184097025985128237372891789232270158894811180118787116242465063423811665820526582487554851839108794644408753284170329761425498815862588085278178839238050387223063675793160440243781775346674158140485188674762196503699903429911860419095870992345374249533113663567584120715299721164847675652012896405294325932556384677548732237668520951018721857014118918291986626916724653000414802941572582654797073990419193402268950480384618285753277879812574200033067776772033454154724335912014061459820375549841471494482257063388821778439989597707058160557255380716727285933327427041181902530230327063531984208523460602733229539038288539125164912619907116182051207817383047184931626568229674531441487984124192836199184992761785257347440970940561856695658729736664964211829958657556079281088712646287088848207192404352052430892161682888261680363916465267630398581711559377376815096312234944061504218839183039275965416806662488666580332012349968291317746319376379533279061412992609877009947333367521510820948315830451212041530201122245684941174064270551785746237195775284235184730151513173541195490400970518531492729386038088938437382386021713314701145789745150192267407044093912746134283956350455271902396171722930209434916147322123710444537584721353329197348759463628102477696136348250239991661789773838980212270736548318051798679573913839738392725525780419790246105017629880001069325247452655451382810274740824746485399873161647381104548472039379052243473085702867150818391977372174662973680342450162743463982970338624916917920393832841819705084811049303110678302508638777718762859842368299731268785163842582821113616522705880144117228674708337190859922309686719965261869728345230257572383066479914282197010218159929603240692267790427312413928034145058754554406416508952332181083704371120150387512161489987733233646402564543629319571135546217248430717602524886948755343144978824864692187872547434705628386881282636308760599809066131122669087672440819214536857850192899269137111049821967466888336672096851044158401391708390904822293341029146393731668818248926744674155914168689849352235832573093554501377647520570311265933777755053282103607835026398895885147517478186443695183351486587736661322323702686785626143479615277839404102203311147115050682308378727233219377856387310312628582550960112667767663760879261515141699314908350587226421245831120127175470867274428357007063592560068872625621869746154378538752829987054497167817142522126251616613696285917824770169841343757630469869115880020739218362920635694404573899556503113674632209144824580222321582641734154659470456356564311180966852674830220774862591200032268280520999027375612842478418788516440578580723596315711681010644858341614532617810853207631400781236652859127936920496744279831418715073011712594918006924160770342384241199576589304746615223761312776105791139065735499400542154887703835075453144436199782760440563065455326686556585209423568990563735622877380651101135768350826097992232144881313702645407110909168462741927426489460727441768024388498203396810361643454689710854705416002949099466329200468340601246052800809989529692724667817135712861092682029223087570272569146742506284157661805427580742464443330817021683317727358425210120110959822024918472478693910204357789203637838189498321079401951381647994270422936771938803100828222557691764147554593689342214301401561993260235343336542057686284412120443851756806292507233221151147252524140118074617583077878099932309146642957525165546623807332137536972380076691755587413970981869908036280429209514554864123072457342579073871553967907711930050240092886669397138379598695050343262864549735083756929270272345098096195447927628642938742118144262667033477022556144782309219981166711450020967110175027416088840748083197047450866545337420297262735784811130293639643823721470960590106327580148981347515402241516724234274785427097591454168073045720787474276407950847572889312195408733759545562058420408208976951527077973608562895303259560190530148326176206451913499775171490613047064196076667368663362936822265203843994073609831338146372997349705052542797081041036274029800536143883104894526185630621011019353643171398830652794859139447616699547552193690307379477412708632682485585992795141748234249246218920676623715565003589199971761825323015039716889100008302319546484519735656016898255549357957505230990433365013783350339826729493175804252714370423318674294702690135835995486857928115913177179595622127122861715101560594207181933934895668493747441673872327939956547032740553628480416526222172286808881689939259130796291248986650009578608363001300396976588142994575066226962033513318565095267055327750735409741476656840787542893190394948030472629833326402144628245016800575648843717921883498572437235729570611643447333801660204056223188677326227892042285951932901327358273182977552235000643158558042488819577058994750840667378184804000953123024498171115621120199508981981902445673642463800185479973777790912120007782397916494117554418456701723760207198673872877127046217716224096035469204082054223656546486067189476960332747529342354565039304299017208282297038556109031716233517065073954770868981256642822884842518130043545441872595644156632467926892796028774576363698242497227617975548181868590756669124756460784271970453416889882364180742712651275376192893048294465502011878614293975758268052932574370625713543308173283063983168117666160322988560419496224832419675726876887705845074570185295848681004126755213995200186384187207886581329678100315183130851608371522746249210238817316361771756089230886590235958363355838823379143947626031078530555807109795582919849260036744870066848595821263583925630288427115992987615391608611149510328299647979018747682773427005708641188634243552168573439314133244091634019411471536302434277155856868917416946292333039162107599519057367338249070594543481215472063463403983202733195921043608856933811096821766528670930069613138482037144500455098068785072662724977205381110421089820133825480620177541407022049358797822685902334155342722310632478430859888490298446384505987456826358123248854178582199398971629440022173012886667382074668958047148397960124742183698603642589139048649976567119870025871796449928796470861075309935389987966669742724806675906893119948105426859040676915816906523462330224283867632671263333432661077785417028848513985431337277923412082791723394475185256732517332699893208197362104197313672362610403568993790835966430970184904597298532177522560125992595040628771753300581399615688402295750061522548916149431388914114774703944220204691203239588873565782593721098589865203190182640406764957033794986470841458075770012681271975266278732781440574773592776384491133118889468515412598834830003185708951276130458276180999597861326094574978696976018023951402746553525105232225006262117398587621775198561298923298441618619358370892274104793051643638698662478305602491246333710061887265571126073835190756748246809030196086111604387224385836791247591448592557111399257047689143227915436114762596391084063465454657014340634726495521134734243105202772558764088613934988711028061433718275589188084102481454195853609365077308713756854211187862740967770766537105384980423096867402743444844711737739748437512260756097517985747738425772092203930795967265886860591462614436788417519186073836716197661337144682291437980782217655739386961243014169380389119259173603777258912209211653670955059677104101324783901141873915701798596170817592179264343995902489238299696295128402822229952980857371250060452112129850305856806644033747262079406043392780996342936528638872900137830526252269461157235737851240717958663832043423283278357961954707454779879208783176425794846547413414973674265157161399645475972977931286060076698340674777000446302041576105420479547322516573255239284733560072261195582346636729226099097538464392765097835946422031815438011223602737986065224209699343472643353475694991809699859914621801095581599907329143440771262266239598100844816717124961397780043798536216770609585682943612230184003356101960601493711618201358413027939260924772565934171143076594277528320344938385481682700280906405486581238711614128989221876829906351735470755094469191605741265786016038409191501735926175844849627416359249390159363633671233960907728928941684093069029585378216067324953070475924018624702394544140501577283166397077792980755422320106766940775469651918141024743031856966432370589474237691924459997253588186366571514563550235074775627767030220526274614222179477547717880401458338259196516872217180688523771449147187416609509607377234239730437915662937138498522532307585444286318474123272406710003342844623785862151539871242025509681383938792515464881965080320915679341367285811564933063361324970864653383416212491428691952232606655148151888025985943445326682650131917765227984844366358499432811752775991422709386575865788496222889146796531753630295015493309447772351884274086131813352412386381526381834525479568135674923842280292847024994396212815605522032506775359355334994680434675328768617372785044550857023053138815007753640749531627875590539591222060334341216113953356353531290119793033921349914984784330617890555335397007126491462922565420826835640146355484044315691205783674003983713083850185408255718228932074364037753905911745526225145867660579128586312889555732259327550527975482258010014564440393518484846927581047104659876590645402986394884070255168916021648111918203075993609832922135599368143572094007671819345474647320411999276463857532486032913978530553042474080649477264923506993696913471938366572792813679589192581371962723432885562731257034223132940788115254845819008371864882487505133514426132179209390934249659032869440419562611315028515051677898906605240106751755269199990147991776787220560551351517078759771378563439899702927041919842736847925779099337165535458903102127294816890627580055451937945704169184968954696357808850470930195431327076655530589903681786808945524305632024580680900125143442920700418065382573747694719678441414677199573349526860189502037995422718265025440265127311493817606022386379412973062016082273110192403229797928335493388471247159209405045074298483198537198520329544596184232823624714938950447879495769783712629443408684903066403480913752949664678694237794930940382421662500658449319124669563990589005299393601910327627285461155609370343757477498410638884055389545908042582771827777592916635327688692406445937085869744048089556991620236594014970897342068133007484888028969331325301047061118235900265550611246941874934745311357762650350416893557181367901325435868356386874962857677488029824523068663034235212060060831955261223749745983695403653236751169139099360472441958107283020422475406579467215912335860511163703048865536840728026333084306112421761846536927215673565587603719188506441549117952161438725670812253229121331440058157364886044454891344919362190528947558312865567349659529566496969897842109681165224949967144400528779922277455830031288701454376775729926639297525941592707014188920587016184544012915141070543164802959986509948582518468700523236140024582421819005168586496134894672368515010066160612962297546103166427701430337024814363574495430404355416972161290646721420863554371629422809590241166015733386309877204565579679044971358909567411510157391485728234048297465885046957990517558959849764590545521545739495694664296058456373615521308695020319959571530840255100402152970142522773927699013197586278462409758010935682543631483479564444564014202381723305343689824942712600662998106173230674026068087140687455027205711402507369374358783171811000880326321668194707915923010324539467847760419066996744514883681947322446069355077209679999058686952621229471964598810992162470996952639495564766575780855295990541377220012779332984813692273315788488278369364070253238797976176201669733606760644403660394143806037055634507008975593146574552161360488922975219369277443006396040688745902297686883866735502694795255541552666286337753781798042641057632159852556949562238769688962874969987114922180832973035439424031182732863426228986863062881006589914426138687197181438905407552926696070419383779569212376427587618465979954465546780549925428506573027935151122615714388883567426001333592019940708934150505878360954008012514944480589484788758351062543131154056517640920587844847690633947149295142653964016394141619166297198107755769401568670263889811805367391404052343804443239189855614849496570726930579264892432711040746799646310576229671808537748888153467062136438282629964501716421114621137064470082878712702640047379666414421780893823494414583377381009610837504408317234242847048326678363035602471704568190622388601266536684518861453336496125543439749905943295336547797255023425908660598523423431394462094870598743539435363971363694963261054651375710505105930626959369437686946429451708159974152602154093778274115024429158619371594756064170997110687802874980590961554602406208354546118917308812108164445358695643090160272551227345383970798185845717194699045940217390466497208068995841113333609743103127011709073959404392394124717632124843560171762103042807402904021609709953074043074005414001598745811138557448761292962800664156427459765026958277606458467141783689127390929427933294592168813246036726893258525668600951338130181548974968350859682809651439647523502506361143630229462395977470198501943237085246705580605023651017806585987304650780975985880356425002643642716309923653022138438056340814852464865036821012258153775273661019007264094340155691784437550774340679369185728803824259346759781664219277422138773040709779510141717729613449273378979204226167400175995429286482581127784726898835517208018602195756367059218434976107128006855149622430066914445272802317757788280096766303272064211980522725918805054659654827617816547512706316206273380116646254819159512056968536561979919377103162285916425148066577654773869812605907239406280514976016863593045328693660618840463065246435744262692209586621559022037302530055338547811116964798376953306787047342511114222390513872972280443031876953556143474215234089947747953738942334570651755171899216870973107352882055721091961621676460733728541333935394440227220368285648126405580578733767772940313512318706853687748216315298750159287344503330339495230898211695444807474306471925473498856221334563779356432653387633693302081719199591570248995947899494831004348730373768400032390924325106454232535056808466608706388926196378827179868931272668117346199763700429512191222557230942735395582139303457488069724296768855975728926303397873630712960937107398198806350701966002997393207257369043997854151020827136431042938023398984376953073733560104766173263775327028477367021814493550702733455010816173966905406392419532563349051497983005012854782308499474982525577065014454766288666646465039168153578560040819057172794816033931567770476698005889620406812623702106613036309281298672326002278930740469408660280782221273176295354596700625305311966686673621827968774963314982344553552157491328321847434333026700771126340188251874915711245638775700891184229642040346592509386754086309853465875281204096717584909277531102272522130343356639165886636850029339860761905232117862586185416457464444623059866118887323857514418632010381186076025480066013829453243982651132986113812797146856574232482667940996575784908260600470054762965618251479499676539762299591854635933488248981748885817118543229931291432310155091217097991750572445479261041295707268915201010068410584200499008358013237506891369981897844698022679388150128421671509765894404629794205654699664106596180084226114594481365866828324540932167687689726934063181503715501958064675196667141650703383481769328098209886467329838287815168162839990966608775920238746152295546135111900783455471316165274491819404130731689668960195271974592043022864686195719846083040037197682492166393737597914914464171465369464251931316359860612665895706770909060360837375823149069319030957662537069608341985574815274540157696040883657033084674221907257979698698845189798602173160243732168485297440586122799364923197437321433258339952325832847093888966894976709165300058509960299106197482991487255798685771645533875410068569604489040057332410542755451018053717935034853766238785166029841230797656873298189462306674671814400446297256196031521054732267818905782310337823317438892094447868105388587070738318062802301242364842120696770372904575620998992292663249122462742755399316200472848182751262696692408821724341009866322210576744040324516586673980254652404771831893068978527652764600158230249794601950396701945456531221855356186191132587606318327172976468691990715021180539924682162414474452137920076746516809205456592898974748743987467318397953676736167262328877148905706981104512502755781634833660541889101695153091697097959192224369492278478430569771962527559182187875797327547232701537147724095106008210097516137230252974155679443377420007851345312069015903868599024369807365211630628637594729294534030799464276803122105515527372379338582810361064467415285359359269310307275862989781299240804515178217946158324211685243206778659105812545242333950364840532505057248784407529898448886907964978644205154771922793561453419998220085013374696806086586787207078060777174490538860101671471159038734678036514034141128115517605973559138394682539906965170388812397223814999172729188071870473705600251630573421755732444906413163265195242559047218430843247545703712431802313514224315969707931533760358748151909751977825073357395471303238271423392210729152672217742229218635273125292825103184707382530312276186649418146748314183186458157463330855973649614503890379813245554350479479065393495655091103001462875213374942812919858563424481823373748839845202161998528147258266697506995863286264080438621602430313403942632004062677146944155289442019322578044110194642404244027962504488270464846667007890536355236221507078919189528334742547002991503036714656078472501472747517999835502190499216580862285319067581493644027979660398627070661041199381402039780662598369738069812885087940610596920197576407898877722520000829976395025570987354025683466611083334180135626859591131650599924075413460523579672241607161516461018020395226898196574040460312573360342963866976274644428595857189734338676120929638341111208700201889521536490372449965996518717122255895865194684426891154521930404502196632873691201524039192840290642203852851451030930765683505345073906945773779440022655352380835950823737024817613886402398262391161224706091783626243894718844533987199489872157068113055096178828788807818746434877620445861068304455992182145318953750531111404919317686227883909299892766449614998068344699769956041491957434169016312210338189379847411261893599056887012411613277066065407616620388848527369507758345225641774609473060360651548824755844373718406249101921181896141848785345992109087525307519628155798740025746061462269201314919368601925330658055969424419884908179287267853830619848584748703734490687546761175756359334696735774967305494513454957841932827509417656022477390836753495818786751560053549838048772880353145953392656918871804954068025156709514221875563711594541215990004036006460424912761749948813602646615541379905825534379842718508397559264744835150912714927010688563395412758918914296246093487246706982088122560897348318477879608560274008747458941456680915467247740845176611383206730405912489364245459098933588634334926050177201794830380303566569359822357297811641766443609075495092066721715006926966953570174574060385188181804068460735511543141203010765116590397355375209501917842763674720765374955171372744641512832458475353213013133976384624274557292559294772540655867498258804437863405778166721088813778140078844737234807039559039795783478414639323518453685841328380932759123214058172408503500169384436377282217588059258871105749170932049234941044040395655216164169552429298000139727857915942016135641977615497316800376403244566938823280857675344625242357035566724038488044572902912160663165869146633015977842764528719458357896565385549140692845711514884389708944463999756442197955187753631670365276886055772906623244018351485403210466410402637567627345749396996222958845430312750243333508888498094966870878544573114798895032863819311265312662492388566719503262142047829616148493019766649420543997445188130474670845159506118917622688123916067162200921934221250669594536864145585919897906863153178606896524753969848775998242718969939570813697831651673989978475135776772721512494573624310568124462283842909384420437105613765519754519902267941642025317027899499796747044416367178615227630684206689776913316619807462447231054825903745794452994608286454227301663741963453596046907695281198639150671710766162047704628590059304008027956018243066827412313383263777977446917191923328877920254495643613403448694584733816668529495294132565003794800127185535157933112172640241654104858355503430532226940028729843766438631262592895726961490934392662073238722540160847332325211687956355995744300650110992368637364847777453581352369966367103940320412452361711863837177842112362613367300051211974546976388391124655863097592392384979109083179203534054235431299920310887361416891518092875456219073152142653863582294354231247301551904085337484781240357246803678699876043398744338874130701611338591936127406546744762462689610591582502026680789187232281364071399218794005883693838412654597120505139313313656464713165789458120819910299533906436991101339460229588862274962922423726264927486388414027784085394144393697420223092195777484150555825237204850289573544024070475089869163193076869087270970301966471061235762380404713988654665010791290448261228623570925556039847048254783294791258226446079526554025503815393958309662799177650111024666257916979450501766557048400866294639913236979699273221179526807925886737840519694517128745105530546874270793781760051399390612222383774284918688935335326438653432870620396050688962861588736274668885391270581147584161510799686074437940926584833853861817513485773706017733550080082726093025284435986119868742254013826556138831682955561722864934413505519745323981872905599613716234993310637883044253037679215798023721660421169616841078939121199535700490231480809979059199297408165571439241561480939221770561673069089287079831985841300204868984495042614446685805275985196680684078075206510248726830910244302184493438925528955112735497678168773301075364344976516962262479466005687407098552377700256649877250969969179267668109592897252105748935597953446156584931913638135592213038113223103129347920685251803415719128527029017425365258173657953805992645996998696875855541501639144652936932749431795473914722663206792740513266158494736577719466807976944605181280658220364328642936586276178788619078688522978045226676579534597971491978838083548988307878006835949603501854074919186285269357424842102079296826829835566035875154799517895745041691799516034934030557969898138221920601369202532359972942732436900077490129593290690765953626134418284643210354937846719262806419447335211407493544628939010435617196442978244587751394508445072376641722067580658698441839157419172397031862427303985536191451221190512620516336452975919418774969486706532143056263300106435689475194585847052331937684789845664793220327622167952448373544111582929699845432754211007301277312635477153583612838707615798551305197828498897784515904116468987459142972846923340817883631588157559084683963101669185384294217568725380636280790598491321873975006750066000151219886594983842383037760944455824539162337758481469193984712136573182380277254215960979466803450807047477467249084137176164976793446686249434417399489566421048475253722682688018527139923932153415346054012562444136946836335318496892718877984891613232372769879552374193711563172614173437472985407613126976972146015859586889856373866625616623746874437497463074932565857772621734953596290731005951081643245545914883973051671248986638138066815814861407230116612165749610405839057372511380806286303830042735390445843905382731922824957650339790747449298975059024178816667141743417035470893316259586844302605415772277252214846909977747474785681309828319256679700081556041017832431913085674000537090057282366889807642969244180564410774745197139327627943428340225879288803876298593370896572211991151591001573522921273636816072060601405112529620357462501069034529852008492255600600543146545258978078608876291996574639733735361837881848486505299841315953032032604337826461104712862557092498048551494298790909206691049596437377102017812959408967362593303538110598127295332405511505425184601669588967902428905884545683593447048699761824285729406854492539964346867502900033301207490979374383391704676739352729399876693457924427296152063225098767860910637458210338500654127992150148756778769821653249514286651219486045043954809971438638746085680286092408932272134484586776548949579790847541133986001875365550636439756803422639010516880210676025965343311922487474673507300482903409877639514090906852836521345627368424903123409054700505814913026373753568506826604991342468557702775421081967890855892376626719951313606068820391222883049850978325110075233293588401263358400609751703264554574349240209430920044129368607977090633068762528043633150231104244735299107911300530978307673799204936770061988552791644460848721381543848415730140726435443231116946773822973180171976971418494135060218334038082646455871053991038698344022726517971949232201155679933878358347662985102256767087006863999123247157436571310165884573366870283434924783166718006753189716883056803327886161934647552624131098666447696253840292499919845816187278058947776783919178995418567326452507541073516970511409767916002794554211724002290744015438859906138714622660552984902975459530506497491050379143589942125613823978041724784386612648009874915126416919114766658507196469346033759650186612044238037068881945282873349241145858904219870189080472986550244214524661537405457928991880879138256713958119466571635958242594219640837148938234232283418528746071540768048385973372576586874005692072388498447708289458311737026879539546736690402734801269493892087486952012618827373871472678370528308411656424010547684532294459271147752628533984667272237968305910155586741898426107580466220726017529970543460702219501649810088685045801178905749188798516189107958134015945173880575191699404080914617708182305564869142277165615076523396286789575564429369230185040754611014873094680928937816133923926069810552292063010195170915970042011717508025238251968140081938388422575830416629599984774184380068632123158807884575896738037253404381051884564996176216175099009653761913264024023811092456943850708906472511343312189134909634865397115265082421669827570030319002001175025421381022570626132995034442264767909512912334721284620631931304752733498173928931506895442968116075466992892639181930742519324981095407711680328906216143946981747088392172500977966876118922683368115391909623345057738096152847690630628841007109516405999610915597923397730406684382925531314592916793515460042633435969084852758539202364615710254169304117956313060642102062937288704937889753484004782864218164157573243805141954141733294120403830697394578928006290186843851981251714921028012005936510178149177838384553091862629469096568543650656990106119098073802847577528954232166285516858936137437628243107906295890834694279935141188331928005478350365931979764188632335780705843434725744074477035991312198574195012680959364560249650862786886814186118927584941819748639544028362068431813597593958647836118012510015430558507056466371745404128030611584163453896013905689138388285291046832288923732244762326403945449606251395089953106977938114984744593532537195380381080899042271490445356393770076279146523714450145226321972025275825320806246119648386628536038194079500106202553410767304559082510696700338147653594917135669161820850764360130764826499763738141690525529828135660191019635242055075453749539252568197571575535388330975904703263946462620235355157776047050529507518644741858305086447184929811805789941716514836922142280990997924971968427121527583459627241560065457043193917061834486656206071833664851011452724347529967296931569385045489861529526461509912683755907111743631859147768556678545188587269798869531615739288966364623545206611238697891695819553859041843895953057428835280154390034369775520593614591557567445939947405058720641488489817371234392247567420006724487867717296797051072094255718023032009571229068255520306721809141127044848805922298411971815277779093682993004210916350225119628246677798746784845384169770043861882440673650857043018794532737295213752545343561920240158593614369458902688134141447100968986279969064812717829521107477448586666522133292065060008703126288700634990377916055502102659141654698932501015854930070587997106192100190922749715023923681577550088622065419856706006624624289878959781829513504236447874283819551009791735419226409957044151470676308619498500228013501343410154172546668043745031471895681888016079836005119270924142734746002646609896235097962153487453629240843588653555506731062564211033798638907543849270693813615566578858251476271957526930603444224865838087529619313595048846053408019132939285249379927715077679542984395777676167446439341878971169050480851451999551985827810512288758178695393660078996421616583610193918734550924024163827633725276851259202346194520401748862444687788785904374126855227620107664105124688278349316714203588639981262675497061721839437285316415988375956766940799660823780190480291009244399217985203379000094042637209129521518818906279963815799089820974914426786864074449951881453738738376167070261244980929640344629750894924717839061395657038733006414694466639577100256143963801864358371309946664029497207948315775137207085229932534767031275462558985984562677017333044914636881811717430997777751651549008879485790688299649192759442329897878905310202582744708104487557853096237183432841822067607520430026426821563409908258785625608679306545519362460458898088565314392195013733391130965772847500043452907035561686596223983392263440219077135089846636311818658967635045700694896816330226581897654790096081439191689743109481516711152551462639340434451721618753395479142703423989988140673838808767474657195696663413356244600982902647796792846730554684201885448181184583963103982952589078269916065425050588961056517029333284608390951050957962253170381589730844390741272050042295462604540902116661152854499656284471486626059133248468522775701391181616457313590730936619039981089150034247108282403065212997821484946843183619659670890985436761437393717213687634104295219057154263390389246766121147793092555627395723653602528490612079678820452199161549365836462132316087122721932917512510490231611885156510096588001375912250835472715636608929115825514114041354142692408463418841748331761234003294427190857523626895550765663327304314008025998545527580311786484160761403214902733365192992334349197565622134875897713326053503323428077811678794216641944622342229896595884657864602344512202484088710845566435650435826674678717225882597216802425903377073846731989292500239940200982078924859404648587089051858162453470958326284892182037756069371080929258269073133635626369258021633744714343734871804630746395549994871356813066860108954069270152796983935076914452161960536145389260337938562756023522410650813150992080160722419495808853093409918094186737734895568476914749323925467384966984676786497572260725071996319914760441111361647698296091970835448744747361931938422981276906055938457892928042771224613491665788613353999432953952499882950044530157519943454002867652802761944540864643322005760729822799445120031627603728401271272049120962387789587020667033941724415857301730033224426104419836752784061892293956791119741137099175780733460357062375075013701325418630099159604407863799652487329228777830994795461156335761775656026881613239329015988167429552654667007505342820969247101311690112991655080006426903119203480545562718597522060115924848617282355495984439521278725777607851695936968006561247844663074523490493546499088264616001043039143210504182837129818678859762307853113647282647806285936777092701484655069820584741138342803241366027318326284799229661892508916443729107238145732287828641526872089330393636282220668089360711575118775904066551070878674263923059377986269018110872346709891433036670235060785253250508143116330060692796824728057104861288934197596525507275128382099396485666656967496201186503089950045370981785197474228115463478413797084326242505894612110614139529135363762879292868266407180806090495515860136615389961400090216342494255282798853830974435766239684320599241762297704024873017416008528360114764530345898128387280474954798889615924203953878770724820678097863138474709410062057224765959390045492735804142926415559849171476597629197779846365159157153117424629223995363041361741913431847797072117065671652087234787895755932666958383696469338357590852403255915410069368562664907749956363043462106919531245202347977356163982381335864992753727692499586086207386963223037468146358716169485444504303688207659996173125681488751260044884924951150117333817309556438568194899807819757893283494131305362938205594281945561858735156562518835779787524964628610376630182679541591638366012343417144789509978255028957892240487243538866576281387149863511448968855933193997350538229172783119363947010781830442234804668976162035615149613754552885367419753154846572676869986468852740374775489828884338564405222497262930954310404460274526666494256760581181893419161697589131516716393967314605144801563375669032256884315961055613962731706993338941211232332078744397238049141826734843530228905410020447355396084850466025442708621360876328227331438188895061236174573132562057357021818763660206575125349899525627113433169802421702690885009596455706404208289072018262831875514653385755910481658662258406139520242608243141417247686214251859456899020479118827787609782410266149885680684125643522617107472653151551085580689268779303383540868665439418562497977768882823888689336482628537361035643137956868918709594101005069310758520966602541873612700205568788438101088444720116212919878754803991774923109816651711605042212277492837508199388667903850889318500564401117263115748787823495074636385290721071700707500568749415618134981172320397267125064044950790030030398462794945185246315497845548260371486663142729172285813702517833126952729104509526741688344375934274573654110528138640824803158722774197124664264836288307449899143187054053402839255902734541396651736456024341311878099365668730759693500764302508911226174028162990785266546876243217296735405056533987937564739255421175486277522031471676868065688219142096415307631216109615224722146924283356301646544670960542860874601618866029515370483728277962252419679173374046881761208049824680766957170674108009447736801525200411874309796961871790992513365085155736826456172934837796553244839721529010536898022695489612070509533076795800567309701918668568533207489992315286423490469950725912655289086104422097040380266386601328139084970802549972682412045335240659717519767077714005074311262926456863895037409153476253580386578431231748042355286955709485847753817057754986427552311991823122623652900898716752183282209602280324660560580336369779551123022408522933076549810517160595618665356024988134635850245266857971546227796113155143764200534929994256582545343319077286593149019256014328850957248976662778487088406822462776590178950033810560125989977230650000220467271570423452802610962087125891267049140792102532830356862936424602604457553783577137057144356163646706802726821937768440539065584589989369419707439574368451708983397435089652948726304964608965752893998121941201736754556374792260773745688290277453644828702067807590613512906013887449672795793701107235652938332387391003202026838924713697116516698693570299189859913840496869085055730063739555066330348713413704956921891682302890776392461489122874226452051180458749666733513182232725680014500006230117228481816895237848285473995124655603010714484865507422205017232392486283619957898891049380347654021422703112759177545940677399876999065533293249556652140327238202106148377817424098719012881136115608243684294746174226070952985885268585887228886839363657023255173283506389799403716820047522032392824266454613572503255434150570370976205343976617667920487914906559061942338349770532534196239808586991908672310238197331624930433308803732684294046649106309449913258081003962264367608388626122925790925872957230688875539825087840760595109071141167849594742132302818251661913193455563044915090721238995421594849465652376124311635029169291946358798031066983314713393009791361859060909013513579809501806195081890195681586869909038808513813135353241710853186516171772942714543330254696914703266943456035328859189909764154424998422027999039281145465841585219563446081027702012252767341267295032215995905921662413099002780381822488946038034604427329428802045759311934036359730779042022178478777154862533946779428388411056562800123646699652303267580159939693876705416101865707860088503429939749810277518583330227304292612401073323996538786873835990383164152325369858449937931543535806429052165071750177577343020352337022300060480072203543047011368707922555893349123405697179474534205698601792471646111031506099750105291857213621976727780761456358161050061162711658289979235215258185086231912957225842821793255822958561055914826965551654326035172345394361329749496213340401610483531600498908786712024404260230648417504062106920771999010318647448312414282964129140426287757873092405041638556932373297191460895401694844193888778544990221803244737589190408211973446968651881290063654117319317159310618389738719182003929529434248743060685961207628163777368979736338796102507329491272926092282727349215873587358203004105936020454905419999098037400909430245238673834832950545820153998001061432989580195135323037367391915031044279216831934762955351352438295870944521802959064666684404253212016795012411960119049148357467559075649470045145781797469698443248081818917819057384408550555661885981480473451647746166898959693074779310101813539606009530847583649031641603884226035350056109680895847515355705104377301097757877829500785568608942283814884165347578518578463669503778213621147804646933087824643974112132915294069110699040255088745990676352623020905198111481902878486977023851332467678868354665301574896261001714269824877212656353750293820868791528697172740182480453623360595535945952335663772396473999858889615297785794850606875483222022331481245127271468619695419543090319083023322467941376886056892536809895303580509398843497505043227795386028609373448649524204463403064664677777895958268427268500419437427978900916782709528007656263515914816049962339106120120586106400939533189192482182649474930655952517577311948079670159743931868431898808216166126305648678246551297166513157763665591259515710723152962966346322129714277062319925177695693229519761452765949242812013532039394925356743817457754538865807375104149273555212393636895740309662408011114766516075681764842906791616778800260768387489551859015727356074088182400614463824130889065244754805622441116365055903363709762051029739304733950095383997603563791659004181668713161815918024446663739678462424614554930362583586296868634345875682589380290264350508680814293771167562931119215785374201514059806756092282127567785616604319251145331895636077205858932624978429212765052343084542566165549306656572624813679189179741630479951056186799382070699254078851447786919548746403821163509857133732832124010540936403401086432053731343246495209865637651669129425164566407278637439768142870829837161463386634716977463976666594260729157207615776262801203889043711914897582034381610306214314194066158295907733823315886763917271453135753596196072491200724944611329643756609368410719030447816011919565722608910997024260959748349085165461213785740176584745307532176098818582452256235932671146738612027276911803644831999928325941606960769391918003376901691030354431589371026374405941140291891840401827879013635773045244345509221171748416294106818268519635016195469464145786130684610794511987034102026145389396005154143342233568994699615557494650244239622270810911584544047719700647445660585249641385960897048370187639139878466295034330750886950226774298345628856613018214359023915228706162698715261392080656934671715327399426052117478735733964381575889442200922958631432272839402190828210417664215735748969319588799244021271289331023546823967143861487808852328513044156826843355196530687735513822813280468412579515867371888502541056044065037062786569142711652287514984947189649580567547254238248964540821026228757549454843607322076532973612374344257372139721335022048090168196310572041598311524447230782579043367073569100082895630529571905418568875172159041417402261530148277946503477065649132133970466384299067693388059204487990918860580127199378102763292957071182343300712001011834604205449924119460840327940316168741102116238098142905250906701638167561972141209618016430356964339720540065001113267415142033249588274060513124438510139195702030290812030640290995198524061733607518517819606165886322643965499060052532488328167431580949400558287115624819424218535671999640193101936694145394133727645549333903010210212299719315338863552174029934002558545110819137929034542075673012448130256821826644719781162259767623514781431992042388544799782778118409645967300611099852328552342820917917172219436956916670128932804374464056988815549476373638920737131636087675839055602461096993363852810638066826127119344596109040268767523182149512674474120344898210498855577586765005008540986193406842833769659357732232766436922210159740485728485739590459453529730497218452233900886264031022270170150678683053312646504573310574289466002727496499707715689153988314280194186680550976439306103236411141684159681810328029916010129988672850028037777052673041843372045062916481233098999820368557372666685459730310039306313606283480571634802172641535965482889896177642072128974082698207537196400769980733955101080487028818538631599021772815188124633042909060288075115495813414994403620378454376042691818595466941929128803310729876644806352469984159899040186029315790790100523078351196420688584899700465541842815642443414941149301168470430876207643707946572228016984235383276076951432875766758853438398758710746648548968815626450953047984855534246866392467362134390389307483327646337693326315623906205703660814911171311647935869681224250291901344795048107466334575392119168179848802739577646568830821463938446688889961896402545493611365567460434074198729615238172682655884724807280607736098315891578753508641572849580167820472218481724191670559005787078683504242668926111150979962705786639091215846039823726167772484990151255280031164376926767356386464661479828809159629798962259278025680112920580573293378433825103641046329588434822472988425057300907599330977959014166022695347171038818361100730044645798093057560308927802384901361561104573093965891425516241632311750001059904778264644988040379783563480484783845950306589098524637331461652873069163206464007649306939573443759277482274563924611444312660920659832915206445634015386441343790064599094243362384989710667557498590003910504412080883455509120356022828604080491730763281343437346730270481000562460651030715332550104477810903598631115811986274366060863524413301288618994824024608869510271545608397746813232530062385642186227493809330207380799147721043287988763402918936233736851759285587268616948707946799049073422842554392478025151721934903439878573319800801456543755854015027670093394285527747716836333640411856400007653971889636191249677290346879482583146068709979198113903188563627507668154626661654368040790542249438185576912116589859216360680477307790736679993199023156760922847942043254124448051307061384981073584861541273486803954537635018023085984105602011760119957982376870050685817271462732864650003050034459716435355120860248763407139707002057845162559187054248172770651434105012402367376842014459952672615193735873702623585236861321261556244666020503816842991311354889763397295374301386128271403375189974220026216651285961778036124338445004140789422534586246019131910899759303588809496152081023663034019363515546745019030895794628414067928049026840330503206028322768872952869806206432697707843262553456972856208395087154577781506558804141470462115092315752408992415751652682973199123476184901503205410242912326789155672113097823423837032579883176462500576796798140645528012890891368412756465637913568740300263501219197393370598759294826034203739368057257661554691837433921168702111249961608137386510471382927624788514176903661547835691351840953995307674742613300273839761392223078916159490794771434604482596474394946290225664602122670359069446546965072035905969845094865550474776684322462476249805300034755485636842718585437484581189997851649211136356331190773228895045085917558905600144772135680330121918995087937787473803668807829125585536122986169342033258550060599410718037138464232161331337709274597631879811215658076054522198032705196640453119927051349335460803541529923907025345454345762921548968766839327252008893506883056471841355659966591691258063324248905341782193608155386678716097837664368424682750542116339508349309015324384472406866093819060882767220948903079415955126646995623824679842468920870349884021969288222728999683237796123596100901474990184267165061964097280300959395415198100601789972938028171458015548120182133062529226833706596555419129915670418566789959942026108925021907452436177526354508176660068349018073169496897363389953836956207893861748718095089106943060207701304215565201577592254478278774201593120024037027352069895406634663075505117518233470499240918170294146799739239347308222398395747342906102650753601014398642031721967140293570975886073798927641046658492359430060620885497847051914947679675514489076717623404076992772056223600035894418107551382587096792780398551154145472982428212532996777680705783869541623492443021841520844971005825193286657051156811338874303724985624019629182713963818567034097030959829405349212379838573455762772673240504934695200870279944805439101412282112879777408919803890297388177791892960894764902784837400686568510039627448669276266098590217877627832094039782501294517923224232068674675678641842989414284595594930268693815729149896140322748865333904032486303525153309069733850574953169720233140988994192887219191143051836384157922700353358935418485402256573426672190184577424819581122666929930764302469114804372268981997534318906027284495331580223471685521845790131471088995181800436666611028272074177374006356415556484361867582176498771066696855421086906378808805573855927844114096211070011284509023696677597469231994133123337254016985726043159358448621737940865632429800393634930294480192684418412632859878359688103487858362327653782870495080603720740496658064316705117515875687815831015387269977039432148564959523303619842128087184078977222070839924453896839349968271878365614452304407488153097351179411596322767003757153821683544094647112039501810040744696086873871660843677648391690726069483145699754474773089411799995949051086072982195596837254773626374891474900340418819637996362733961321907274774454660118635970946909718924880914271635798553863556021054569550702308703378510945046472040377945094830773207334931941277304418333189030662080438034135835057748054413146614385571232117205108428896394746825038445069669171363288834024843039553559489410396816710225623288455753856774398081566999530252520912873239313660103288859226431152100136323769632880356097845075194388759032894922726556112211005192436741178172719824189551611768627710082328194251848170099531620443383152569971980588300747634500796685668544659040964406450430190808691695534303048168714303510396801206422139391446923178285762511202350754009836568454797259417935946355096696026258959736491683433033724289215890291364525338258503274728322200389418482010494018901208292002863482258650511413301631554741872658137176725164188770516946261770862495228821757478964015285018294852560521412776690734888224336519670441741414396768609239618539880621383480519585945936424064527914697076593926463098663960974592759222354649267563625860582340467527116644840825827609836041759488809313898239226065732241886613433836319930466945819626665628521092743951160655043865985090346631427648475155516474387833842992685870077278432461500140439522959081390959827121416355866458599420047699779055065550057398729566238628069684303589619356466264322092988296707585956651025237689527802393094647491074165543911940458771579202555607393023773075688509951521857960583138881701822351778199893554829937635352746521685105634805393517831715570076460426692181470394432965489734037267155072859489604556880982904327543444853452311715397789211171007512681611386364380133854538802888268293812234533337522609436481756495393613361096145161532080753372012203107697483969389597116488026928630454969341635150803571175259181469283750353823834160964546060605892508675105191923194885067711974643700629458792033863004246073913578683012041837774311214189375686783374479451352925952090067759055920317113189329001951780445212546105299663447780105145432220552432035310832201052615090265449590903073042204341946705118337296389971160173296927498786131041860243042698020834731195885743874043717260869939016448106184721380788747962293850921978038469519780487305327770536055357918563597201328233824615535934130261314943292372995783704959677045555958027525338399789486288469033173886639113020415159687655439385355441763087298268753704606727056360681974808903624280423879383925804056583877840762366880875048586299572182195167738732417967496028005309875517511923673299280644040644429994222181215202711878755937717219134153821356132303889440715379247780865245756768451254461785915108543514394213710905061611186254201288413062240707826815114981745678035508260867946653211926184317548344618798621603947144105745315474584428927957005738755665615400649902057802006316290775728346245404854801995370705046850446831394597782338383669880171686318041452369595054060169413813163735725491801795890848514884783256706526710846587119645412679758384595893904334251041632454387846996906257451297997462136375377119324370394706517983554929189794507858703431898698274333653173068008382997892831593636606489964441691586667698656840883987549793884623406424643725516912575644261218611636256305919948515212341827926967511959756943114964029317644821880549896021363888905427317597977753256597202778681845749266454413093689283557632059731502622666786274594397035666331634789127394784487684130417982273326368308835015767501435142744103287860787352730130507392534961142393671383632515799042437573054264012079775897075328221339130964384958943995254818586256723189892331440266355850275373791336721349458267556699396137431336995761622202164172331863889697743084303235548419067038787201217931586893284282552898616744495351970357650718316471629257852930668619766577846890685281371037256945620986185540790597794310818293174180293597069598539206468358545805938327183191948250779909587200986303166014457590562952923639111002862925492547642748765442409633915219876041583206503552846815589815690951745455336997749045604391952195735301742407863223027597722315571233630150882544348411565501279229981596699225012257640150362073653512163022394913342536695583706375443867996258739413163968134937430854976932778189987913894128743635777924731064065499369951317399230899660527237939155382139685314565513944129226192346717386114818017700504462775019272515527015956168025308382323790991235161022488610802825711405462225164108911896210028038742268808403886480925841532788895325753037998027256087718843761274961973775951807417926287946325802089072119533928645186338052957208419315433607357596085274426729721029086475770149612488853701162424840508636102184834245182428989554372471591901444064741815235404548509915370203845084848801607295384529182486375696704393830462992060721280438842101253443216243235226599156621130683683068111891844842934401883680254843996638518783174699149876933006805761666429895856094730127983112171299622351506694728470644889692560580559310790887322462536481411266356865192308175975423910866807144308143484519758418474073538889893302225348158226357049830500489644666431612132224631743526490912776291110859449250853074702019078208299547182592532346448330954933345750531654650643784470058082053620753081987943698221170418668151275860992253862299152849294163242491757828105972951071273104754797479335782015968975704058737001690608447669503734059996568729534452393465377474266749853812873158889000793747298313567523834972526647785397511922431838047555835259129288287910398034176509054114943785033020932696091498473267513283044946630928394144940350433111326605470071159850387414299737460190238690093368472274179785747261395624963900968834566644433101403933688459629866492866478618146643927837526731696713492823703073399372551803350485220195904081120215024165158888020299672781744556394986108945220003918575282327943277784511231308847034035636210170946349830092315023781903676457129746099871809353762915449950231558371072422018716886456810736961881207047305869267251767893848274713660652964874140855237099275161878046096817377155312249853103265411801867135720276251467816617102078829231004758378147653159133816021110577118108576405771231766894366489413683176135207370993039213304683648371283146940101168166985960777243940533786677091471265867820284097692644382614128396738593660381769288260026790973096132545266490991632404429451711371114904705060870021285298332156004664394646314819601010746274720863786620094627676063194192293561574992740525157754034962953466219372555200740112102559950629516784945264314802243236153832908305290857605164656613438417812955429445880130529044308408267699685990290558836102537197679512826942526015681829119552318950014915584255207596123718121740511017768810186360540857354070326574491285579946931563243358504718923290146803577147894115988125031338703115733798129878785610256245793957343327767619338405805010467922147684557942796979934359793281513766577164004249887994803318999147999729362769852892012604354559423200349302173587275072033477564818123085689854610996583042679776658775123003013402824670789967481737007373675385421670734483682877234367478903878813382646671243724921983880567586355732024947350663232758741945929650082738781892954922263040987408592019200454363887091279225558924844638049391883623036129366699934027016616252153915473254579284589721443590280927873506793230631374076840679404835076713389501937210830814666079042996755861813938466039794218974012259002284838764343915540523249947935504374929832230249649534583364642404392811396588413136041296758531910032575583895235287117456785877191516942375474960057552460179972958643732387428417304645476886771239007139403747581265657800333995247309823498393735432334563632859781909508113048662690493664261009147923474796448718854211058204970677623268294065215670811855365382673954165325222759556269689458411924852949249905931000764977300003740146180930828740406265679210821546333050410206529066905121211819111724639561726172614582706403036577886333974813167738590609574809378927353287891517310185471982783228999478716582053177745214224048237801934831512805974962978435680451070319568403467546999960570917869613408474752573105986966827739370507965100103729411613858715067969474263744665765931043358183560364044303052881995341671746203603010374657480370718930497134736921103029345682689636934209173666666380017015664737723315116760992639057235039595193822181246021844095782482093866528905617021349941427651187287659226205934153385466176532561112272240506578213990691658147986273113373577812227626998224660928294734253109060780191033605917513539618060982710262910434250140331908454445976493365636060994035918077094283419953573774627299498313282856418003153648694742418142990908289627430645120566390554587742438823654521842426394591334511462846001362852254983479683290288506444122651216692313802136241654188763885157998922924326134853730863918387783485307433308755627451508576789883760471970081012447319229098666321392272192577551585292887611624933162209773413056902396359906699057895290264647622664958487369673079629424084896497354894435387799081178480179018349620439782074609804039668202879041967147764910515218431387872143870328741565162898147154837610484778677555747785181251552119219290076116517216069144348961081865234714088136473750152927565581050224945746665333414776371680375024662627148874531226343550353645610157970049687100664644429132339296979160744023325323319435477409269982066861420508230177892528828708524195504517441236511943305768375015444185680441759287936053595383282116937201385012297573258087214960656146903056178332989617776257525717684420477794672212266937789813633568183121717547939001557550368746958166807834669012747580826405238563262377099493411672559742881474038561099142704380123228868268539971405847984176904271832030612166403050585624378380492430523549429578631790904428684438581699143717419335923448672584405981188555676175172684248071625700761603829649345742261345390277886101472280396376056483356022840468118529722925831036408771975910255869632595355302798521624059343022028719771076320182545930631797048140858892623319983884530235136098589491849378024374118659340830692952377316474459946961443432660607827018879285887341211968160712380299389694757229797079033413333135496680902607975791534075128281965679538251070102917939139260561229021838609053147128497741556863691976319212696312513330241843092178798238368649661344644851605619931891828846901341424995279243227554464340524436674582718438788061746589094383829910748205157418644389401166759625314154698793034854866921809394862476845673382847519878673687869443678599629667600968934046614752579899713396213047746061209761094587151632812044461708578599218563543609501511394478244289141271264075442053633370958038057580239205774515529794523512012362179998783814527447155789816618968384468683735656561605151820367586575224728860968310937174487062552512312922102017567433149564570407165765621176138275205830860219881792506204318179742077234956399608746515641210299292065654332140306500013593047369332852670793630532584049240732140811896478627146394339194186189028662762260662712436157660450482468054459363772351720259068401907087089035892423560670744491294393725230821316225926298007527903254197650710940651623337096681328591812597000716943646927215573936021141452921370409280479229278796822246208050726854430411057949176131344172822226536700654233956226100727685151814014020893057698279362704352291442543186051371927518690182019433429409060865165890204952669496656215398270073716799971018575691559151383195395970213616566095086568984932418725179210162741690309369868889069041358272284307873665812367221708557541521659954413964433567678585770656504569612836970653424128398184347539589843297976091067683663962803698034284416792887520843364606766480122787881551445821586847023334605247388691428969626217537394394912455293296442654523000449929340165168774590671467983713231840688683409750821102987219259618522358899084110293478988714396791212011626685749973596223333006908942114489364104812549509482285087204686768311104592746168550608178795721334837416479797429486052294130069644377821592846018997257174059966268324697556283557228656961307648883509379624190836878354382765774765157616854664434833669439398657327566402236338024098544039646425449516394044361459683431028043220988131887440078783459081481239098419639881300087141305168521679217019567702344911697752356635181007780959805251971276915709217468884994222852395281129543071508005379055889423097920600887499406615296181476562678126859042993977239732467909373431186465381011511032682714035290589962558482116745872105144508392739422803341776932388525875378796975265455417130398703360313803104477604729166195409286487265126046247828322299056234227554022530563185524102097166458809431835304950616389332142870806290012712291582996793882093216685010860506518497818384252844136648052309949025787174461783800098467006670862221446354204996313872118861037822244640468892387106061806418832197659345442673722139866876098230642930207075343720065917099209822217710896543601776352937360265109932613730100743078315984341668048219236847850309281347540607498464403126224386236615658172532392531081145426727436881162752840592639356434104778399208172852602362063736105404255025861062895336826651961330149803178141248424470758617003379819788462205587154651684156284371505190245367726117318086843695660076155679181435196580847706679427812314119253914597936733681644765068545243300003814310903408551377457869503117083602796286571917503077520558058375870237083822263694855012605646490651772195569666420162148034722075037792765059750835673335804755706510449000004181629319932838977242554879375356321231094696082010787520520633733714925731891095510461587159345275805060563884906442120576897097502488029551555653158843231397489780170333804992807752061885028449392821348145367265392772488493325299193990063016313816065219299105842804914967118821803161083637135586922204294774862807719674801910642811290806453978598057846364248997262714224158882119288994195622615228905658769579711686461874596211433744546302402482472997719432439636106436098984929159825894303264059497842253865303080002651137931523857865023447833382970169539070816935705419529993485113915462442481684733878405367476799859830839853887744125662423976681421309276148798669012591823055343927182478086781990463781738067408606321017869145233938094008635853131755206625798365414046580024148097747985983832378726818679947342313994239006322720287910738967183451548701065076175707153272713231251768511647609269581062877223947414244868872818537609032429982213251286637996661351706190161799911562310523603686327421699837519691766631225866192102047624918718731784503906209004057765210972805355231948491082464936473841112930715136349864190139790500843424621426387157233225928809926387852961485420931480125211649540060182799246573152590821968462366564170262163551063738878634761141208154714283081252823407338680304334244928343359442570846766160517176855919675393445679310858077168330054110661901916202935641149057461450392119572626594467250267933832372516844374374980748518154854604389582001900332516059276036327767712887911579542932100179269791969662156785627417601042399594229730624332176374381713974774761500862222823899586488162424060594239537042109578619552465488730583485126913432103613062211632627346718778451891563067333690273882526653989173349931687889783083696643522659300685211388842550334089853162864716333699118999138606855195696749607042260876887241020684024970848573279118529452419991711497889646001353094169634269987918078710543868300755544887061866200740220995458545856553342736918124899434890424745790993358127400940352861449172800481193726004549625370959835282706518894326737933574723798487594861554155764833538888882231287521442945058130140998281955384850099929770138197204517846255606541892974672056344665648359731910298383781782386430871113703192001184086201769195272369161583961305456095903350778814186506582777362123835833532086913427698359862325939787016094001769842963066211735329068374412914883821093540619765101253692431058237098968952293813439802361793860034037243802841544845902565077902559782102117460642919432827743085776109211258290206810867407015799279022684222418460359780218028959927659291852974880985746371802842680865359572904819023495628837903226094409432643760299609956047277462001798740357059347497704948156914623913226287439110684708465040497147629313642921515715783277429977193944044124676764701796875684821907767232706328620089548695547480732359107463156911108199077067450879033463392823447094681612726481827771385675590965462669959831970571310244260319795546239093114622438761479740001573860209436693639689500190089472947705535892030849236987549912268237182511096562493833622792510676608971292992065551815557060195056055476283063748823050950842568667328867311522899164382079445886613745235430202378110653326141213980116236003316832805442187813054406451459164975032447076728164419968253546915541129718113695231747076779785519901548177284100153887091932867320638401553454083071901390241362999701137246411664128955508255384101514248041676029345220407909561439601621489855436629590955285548026577088713702953953595725975701851762994091890429514166262810190641376747069180191464002660152910516011177157884327679303379799487742855407296078729569282447010736248853608359205297907769302043281938155070589858161046697361880009296998245603193992788112283267767423928885730655493396784426397108135403969264669949619470120531831410660265637723030103345228588560078926660745869585202015915285045339937201264148381716491211542722761366342900694224659543116526612715045009907238830065399947747195808865821587309264974268127220586490119770488908752829724042690289375829573752922310783057089977100614312124601600146370921998616790013695687278057268063339890139790992147700819559574213419656040521831696614913460136670129706107567356513115410048828603908067128855171540068348846334597744433093912216766271177277589688109721256352356033056146269762576033710731717073098568317976274229231538728046084275687579249586085705755324449753231274153622080630783975691457434717682605086255109583290548245765156075808618895465778299405627247889754894940530458519258839300414204531452922319882993525793722477743949558819023799240061736899592736928884665149483062564368224511368555265516800416253566966806416182651875024982617962039198788767403121429212619506569377364792046571429442320700824903614174991038275957160279067384177226944149914266519992732799331495492838803829160513833547806628621326303835150781062337044376626935703256150034518989275259900948211147747479543494975591254640883187620753887887158468467381705672511830449437065426266530954854768706412396403782968007799305993083672751955511594512630848868737929909444267127615515704616381682929253328345033099628775170837447718549079049885062530292884687502109589384445019399441016615661754324083369572258080302423644224022846769763972306555555225391693381671550175710554417661399691911842820643117261873303241811034376001066971945218783299076100200870374656613428434254899923691689880001520430295194590447460109007517735242884756472001499277432729517907180178149202060575886342537313541944512974919621108243205724972087533909757250279496892550868437999638853590247741996865649439774282737066870519618032882960488343258044889809038909460746286260690699643995201296634904725731463094870611156579621215404067166253407543336479975291945293490385154059887932168691701020800693317599966462486606754416981906307648900171402683607805150342611919885938228694381318208202595907472591126227942998273793484709843683979295219683526436657591986544850359669117010519577818078035695750688385489890549235198019675264804157708224891968451776176186477569440843281037499434502185529555789988109827379838515561284363577645151149238511388136318960818694819614059907896212598467551861778165703218546910283558788183220774800032893208036123176774565755858823434121717624456431975014025817231117229916190734641846776127511563170723549208166884413009974015844214750265415011686058596490359907033756542202364451098918375386078339339560138721388374550965937522371729482687721137774375526725303487553000372310689250290358034976791847466605092467973493180936303138507065554877512155179638341375859399933279593628312723252200332531232565723332661360026959467847270287775664448586278110587959957263416813393722935905513057624480838766080197775740289566969090497430569085494563535960495689414720793677603417162176553481882705376560825186064837548881325001093679724372351978681809943596747334537879653177502315227914622368170527228767248045976684845357354572818170714888174626482298923754727342380613252862191236190177468597518461097732820848783283705251961885903013986357076426757877458663678534213236857837098676842670688151665712584350322298760352406294345880459772964252298185145106815077801779824834627515273939956844616184631659757763632601801555999785936529785995492009781418535983791117643115291395569958775573648395633688582453479109833086348698006939698131455557762368940088763139098761576735948061855356822296860932925888050266245665275959087584095028242778063508124057003661737565381240931803473390481799560234001693151887052846900376193427507613034492953716459422865752944350927180487829118768749655685005537563872618896611630281999357965543750900946965401373160808831828624374947446460999476743197626683083076832786197228510073371457172383545042426635341745868484535422178962477807052302200922333671278724369870287934375291956779200849829481202348296002873595782583458865360232752718638777355597196809206826224077403857452290964592613489676908775013551173390675304776573575782549320571785042521249043558117898362872806204558220360508853974520432715295504190957301104839612708609827245650469213831240593694333642125509060911807882177086446942661738470465856968229434425314723587885932467548129543725585489624936527691306772821437944937450359074482492806019291963535571377845748306217270537616148531353430746776091481870765523132346530549061773808135282907215981854544913879862009566205298771320489656964648804248537601128127395032109893226814327147803725424926430977314651589974018485310953766616751416794921159107227778532320510242828951288773065137508774427307978301980228997924609073394654637149236814268661554375362120920522477804048602859149209553147420437591386501161423899344761981812812409701782617505048987929585915421158166779834468258906065660741314627100558873998865680730072939420397163738642980623992862351835722481824711868942348459215057805818173858314749304397072209137557604382567658048118250450139302149576886046214280181793636151490230598183536490090177140113400275802537801370403321563143830349588079612179235688176629139824646779351993538133251575758915651066262923129253999509316569178068234022157696741156797173539942392411484211066140936630779239690182139529119186020396439808157213064367682615508948621164157571933080472111377838041752078882952684324931215614710536831357809713110685983318889104171386373723406604031540334236100175378563936083391508296098936761133316508025075204451786958189932871718163568219049655959886997328347608755063883681689477180384229943466125188126832534040996866867950783181150168782141993427759722401822588872152643499593044811339789290198647782040255864993209672564584916928540912710590775866138173294743064712398588898441904552084141038841049164606144757113080297673957880407440756475532452083125724001083302552632427369642618572387206471386612299180693453459584600158468542653983767244934726547272631924876470612763580059748760402291680525202352274704157254385296574686512809903783302195527617835932691879980841303397408418627880413674963040255126692129313675765754152091838290738213919666727107405749038349577185901888876570449827878459594919363500597580876536685067425636884841500633109266214254561229002417620238897689248313997308801781429402483670753228255029069117283090488140282517733642706347712587008524198178558753700103637869592866423247127677108085549542975315160887361468113104999102839409704657107873345437485977887858930427944315752154725798766861743640647438597338714125791967851034365416753397448702271834615773272386418887904044127153913316506023199044987951817477498498604977231480455649948777909027267713398898904858555540078183231791701262487930641281252743874156314136472078273128217055339540630424936147936022968011294338295005988862764585577479329825376479284698607095723701073985535629900271492171215263519267338187514573840030365491440723046297242018139009255711955984155885024222407235706999347683107830805093486352889532390293767620285868055777774344963389769035336475701763273108027132074984886266683844817701823243449761591577830193680852036241144815594477062383583378898754936522156485434533713004108201373786565156786726404069924791528432372544852398654588079184203201700988111159506025079889731372960933137021678474380209256045451282137130496260465078510765544320363091097847055142093759221499360028487297707568359610341590312937444298281000036081451576461390622729734486978258886431391838343547096874159481498340993975453494075419415268002701529941494760977021077604048505810028309763940284729827575726177434817482193632278611909753877463830827545928320511273998733402345684488441935551240578125004677049296293791978864750250411798327282137915855580233048253606315309064138883473604064441895206602764022850036394759892798336400637571053586564870621568975171291310569393368732324636315186289036510587877645217690606636221819618709565607332740718194534195748042269857974123104003529751339699984293765256082989197594027799110069488662084099543048438592216756902272176825596513047715473871374070443115136764203184563666685273087012331534046963406938720319693703581759507763422734905259917019081476582482961830504949925620632238394987353435469667106863347369869043904064276845319450470418115664928397053869843187993578761992767105787625977199462856039894946752098314631396086701968716225208868447449565419859335242373904121397780092745539394510457890228915976690767781987740545203296827666721504866147270639294782156793469910680548718646608407478720346955599910729400690735946275933444336444055972300187432961045998522618959216516914420316341302542967249944813104223449561426624469463761167163877206934294092459705974540786639007674722898540147508666923119227671938350026561051213361941845998821974846738195191679377403703816824943884267868337026104952273091609432571691149818778031036166158446836672325371111166760251449934795937246628924136241586261157627705281336787466098391210488330997974139127063924801573659760736698101141114404003026349480923577280479947530732119281243607728951349953674665871185066861532562321004259803680491418116513616253363185826621817875130096053481283528362608501866867738207542366913239087004318517044762124984984334001019641901822864816654670458019009923522225222337268202950322000957363829485384715436725205123132800871161139877623120292903481920738209552846730613314157432573723886427862784901608845198238128327526656129450028515694424208760710497322355895409169357009052365581476349926868672562622679329839911372088408633412994389291650029794178731809652479222308547470754749297392392325337604639987702043818471096923946364725035813557232781087596229149065999539192256167109023347636704470998609294409365152130815543485188678572026389576836957240232329163924200051484744643170323673267347112748045732462227876634885049732882262481742623279777776776523545684418127757396676315606093677041976366783448328494800818721821280623145810965367702121002044006798988337817797405626062582315438852923553192635805763205271196290954357488805247884471729386875907813555961190826342828780819160664012561753042553101921627636913454580012087680482026028091436829909106351797605836182612887819987789431548061707601526814530509025721117714147908810563758508555569420948543355813654251429211799872006930583380990936764164126831866318362936481188540656342650594815281828438217548854041724297991802534553989715892341430771591449802009288677867828137353364452371644432544120089786771003593658358766155903952419833107054510751316815518614588270307049869097904899087151696385440588173367023163030860128542733156926110646477402013353987893509738324436715896944481682158216909782087718570568236743688271652302400259895919384165766290094693493994021489869650670851407203896375228654173925470265981292543508765446981085278227745733963325117011510465934339340455911999916852619352133102709059180356615195341520763053976712563656364307380553825996022939285903558471069320489875646833836760212956541652636296482006463717607501983994899936562768774646461458969914597801028268943066102032953992487111540262397716701392861639297648107444650967632638029045539175906500537296292409513117617083334140285291394718838110115012816814709298531095458445626008524997010200024969570237365083370188232206872456697765252296970452437616853464691332053175510272136566013222756218585223863000648780032132457937423815468508188859439533738333054315209056300935479877715729442616237006411488785777399793174909761747899975989614539298609712662498857609097909170324799387166819376775695720274121327006126066438369284704824181161378430327825324268628371546252990528914403990097952137562310253359066384665176282395321092542195455029527353063727501988263572466026387556928130989329999326729671824789282301507731918932987152683757969341890904108467021034996216303916654977353407505995722149048835006357658359929119686224521908032328685566162971486288119674407088825020031044715956741818509771057244966537720905256044754515453436428856904013536693846371419132893941777577654237358944679282668545579970008717253667492350170384669744769766665828561271459380717748121162179676380865065654669424065333366524570951321918828892178832181663858325550890275381209006150562618348380620776282054996995304827027859475601229511229703679570830590728975760965107726602634964954321848909647186614420654923872349262713584225250940716847146377906874535036729636460516416330017538919365499459299508788491359374751643461099819664767825095271282378696552096811237675079830319813068122611903670598387185862348959970505156064714417105380933084605704165490234128076246514867814131154561524553113070550149673541126810955997090436330816691543136642465915625987933457924060305004369641429027086822902654536964049710716252710126550160982586058274884774020923629357691412126706334308313305860302689189394010546602973887547812583472561109118753693985577102610129313147084323520402337865497413818275433373509932015451331949068139073339214588552399193979014056379844477444695017581728338978724003963743319993561373803714271460935189758651172941358145328094279788578157794615633950138236828289448945302147657916397136048316982451046239647950360680118040331622928233362637734624013308926213732674839589796001073036308611429351362718971226082181758201285972541830655946569728289529430388962084327606647793927817053138370230712172462537378812120297306653788893905477518948586331545129510271471574747661463278288234959544508918163601978493466111527962029946154780531134444245605472231856457962575808650653425358665494060597035148260272103663990789841489997910013241449077457763808086177576770151128180856488235853164724444763104638701067770353056554436059677592676656822069483453801920811848444161790718181922292837408798424429100114502915132290995254026373591812344446328504162204742600009715162724927466217483217500412525314009901475808013246611793114076113404846044621296752671370406308629440661852352765213193241636411214411188063193530198409781358351114116307859819741843265967246755686343282358720833586858607637632005923312861650951574281280418951798421762676364320350210023896693572861755834856021439248670511269167708986704009171391759740978083796829278148629287609042513390768773269247371731576288548719151386774092673752360389833739064396805927708526552314515987942301894947685713027942991921806970254386815772931150452872321401397375324454657083457788518063343212260415188750615124670769382917595589525218793960568376867330202004488370445133894626540870536600886337625943735272434620262352559209337719368859209984498334674009718230268210976812611803730832057872609979478374535581621887832645374801948144393806885046326948537414119161081260392405617954572544164049537170258371314287586303033719145780863034702805154490860418143845477998312286577204277128050589715768728768256613613004043078657723901177404482417931744025449089882787204395743596576202595041200735315230076685120180084787708296824326753573300416793745363539573341168697665428892150418838247459412910657077551718132526598196806807108596847712024604038843984306491841939949917391035119776675696009171607086049271651999553466059739188957109918764431762643061848748108730934033827583576704026526503562635194208174324236314520132799828381013857718184040764472683477957757298140362073635408317213125661340181793819602218028764959890608139451935007133955398981128899996431240684783681329357305858118537270437630711657225222802073087501343604557830176841323409351328774050101258700402085721440483368413260946814163078659481795443554179347596329819480969169268521144580415670555163866817967554609741685296065792059093513717078648147186309266002790755439241330323681871050138815565285503066261891979321136657761857762976598404184973958411749314446080377828653122159462925820685154719331993880000282899563335725368771943532394915429072757991836663480557353353970314863079505674982688418499041082523528391070704836157782931419986478167590278212276662079836299277430424612093054621987142754073308952222708529637784854866462770812165137304675099110680132667992949678697033639605297218126085117946795289295630790938152074101460051042502778307242418021706177314968034137298387326640707218969709995121963042143566817504919407424862490250473159809156966507974581517294371966665419298199268889969074579631636726151764365144690659666797281460800649828337525419643189159787260579755293740030800410711636050232155279062455334197083326021540506400529950918380559000961611298010376527715436851850582482623845894278696952996233422619359297117442566914249651319362496792794483724844213125009212539238374258207372673239833597290477243540145485007063840865062127831354246653496408988540142020171321760246611897646681949223255193710723562424892964232870791841805303517513369720602642866366261109873607649010759119506117161026584916767257684155855127848994061944772992542964441685622338965975604850824196853220997059429233428822068728790838241525354569938579411214062358402225951892425994035749707592227344450217327064689403452410796559207939358054463077124585455919276363129800329669948716292165845669175579008271049794711159802333539239357794905556874563650768337096627220802127500598337525187353587186682996912632317006948600564919309346865484030640549448305900749200317033007879254342879523951345082009039274941574427559321552339277982481180768859909354501407183275388423386562218649297910768131421458785751723901387268820398058478722602385884481164378268831736381510372196869551573608436929615319477550208571306490128618128254105213782481021242205463807348641394300582309957148449353705925376081966978875486199128070265292424110260104642010376640830766177872244799777750681768859159273219279821434307623305808624798005136605358928220737847296122784684497900656946982195380238749429162517077203397319311958857355548139128274760014958956028293102463492104154742775758943281834377400864484465380549331225552080522833124738794123810053116752417972501566244796629993416756519474213954303388833001854616100731222781109307831154251057469540640626686026708489059337656375188512934832662214441160942449016181270327878288553172322739452621110664121729064893672647868692566160531109368018723302079269939971808866256903651659884295251893379951971800799057962045735108641633082002743392420080207957928456170987999229598842314280563514631966081563995104992819600371944040463984367988140772886998229324826268724006954492475837433462443994105617041337430147799974350068116786315539182005430187171422832593155242741879341054990871790668704394777507387563599493522777624518170674870432812445744253031098328562071423603379922370378353976052694290538856402875462448979347279191130130969863797813178471120114063051581145884426508248305619991876922792324916085011126036264233685013484065593758699717061774933399524287337435935586656541178036124987114605346293015352968060774296048259705552493735285810516090478199307410259789838186441294591354165687548950825122468082154288607090404660652044029313733873334254233535795124588260942180215529945523317916720332569488330976181993763295907618161716550327691102654907795324508611532022957121772203646170967245520211725076110587417052153589956720859457480983971883209314304617001584310494208728875002468556788501178885779161562072722014586037222125181928011241652371177167014041695949401018436887271138376375214949878621214944766666185489034444896513748834424185882458214611467142930141494540823618164640694198927868636947523067067886032291775114291736200728458974970603509821457808452409179503813594136316797318035516464596588962513467152542695712960311881321022991484397721241882140213260915001809457807339923968337891488131000518672412131074954008690166312853085903104011715732404569183466424085599421545112610505757163154332324119758666800756192734651457100713440756987844849474012269394278450078932516598584855552191370552381769878841690006948753752355464283806475981130545589303945754571129353689123530494583374982767587202984623687473685204834460786001178955482042932120718985361521479908990488032271752537760551309096798640373676849065613052030020411978694453385147626386600076826888557200485046140940268146506388871853690269076157926844623476089579321358291533584347074402279650421395229091216578891027173465749079286266311262868066229738744798703475710139272294134022677509471648267862286150250067684467789640507672510727523297843536740421910506574569013129265427054437809041876370213067667463744710894085404394535244808944946941482664538135185010482348159223756411836473454381746965201560604960868598643492761644004890781138745391674173301001016140905708446066789606708484875680977184878564006829947992313434409396373974967567225554638481648831646411074313435278219435715872546466008940778837850040036522276359784884632329842380338114359510841725072625232415327268713923824962648771192653795701257738539238490473959831866790561822695773517325461431129911238735020284177429110949880134708180843933473833076727663807413651232992613815107867975559307101769455138607329623385033448905329958764406446789412598910365520857590087808174254384785958150160982808635254924697038759549861886407740971288676882362635404723871267850115340796674809850048758152080582770456102390168152190997766476738627154464764632763701583501660852483879640668389531380803443897858016460738388873475651241154555548127369432572254921613953349711817003477751737560496380150269930509586231834618936902965024577712420428329527924610348169475641835675145235109071280503109696792730654469449668965273960512902630182009245550113521266469496549869046756923862747295535171310525035891812461500070940106193319829802803604905925604831071501267696623883775272899092591308357647877805155902617549441830183233118507219137031268263962242175310120024847279913094693762654592637197376908278244521733493774383950519986700310218751258078793077195601553854978472247642597171669629292610182554377025430216483324955077878619612889348904690277067326076376223059071600677564803609064652285088687796242217005801265610112008564270151946510099771664228303767014848767588447677771151998574096155564761543769880881579612995265849442787124759399194327037414762146091468996473143216311147208662148367154203808086704566107531537673776325982275359026789525539767386076325866277695185323347634757224246299992103112582209161574578688450507221414161575404269912612403476321038874630880879990154446533858836827226751031906878307220419651542646830009926180847139480466355019393037754216731464741808805442494078270037068625729873945677771353356553594291990156033183389626932974229744129833033379474772982569482859413987807627716422768295476406283899625735980240371543071124724302617048008894317976314465821021486454124776189301287280450466338207708683570372687708085824600717955836948839181280961656428033605909533788598647850036090875313819548148074613080989800921330438481114431611961137168437702079589567519037397647744859517940221629874672418349986206969839029277259190641049431474034254538937749203821278081346376715885402967915581854160194479429704730603148096247905336258224577839691533119467778049685832025457846940801721625950849051034876632995955527200968811724925287791871113245107125938283858139388572291375645401170041343544424133919586334696139031778771701217919159323038017127873349515614951275082351274736448710551828332133257701878819467550854501241879788253634459467715954042858103672952735552167132927488701654810859148036588643705165505434819777890169271236426496284708935416997511110847477113159460809945593484733005425979921447013369630146208406995388415081747728201115312463143647561987255566783492859358900621830334179682448288625090371515436698252119290944946947104304430204198935880458626499582069340972095616626827337389297561114545011542202044920753134575195957158822864560072050656126668001910008352948018829781321320623230767737852781217340847061295815570036425955238109278031117232476292775233177404179623647465269962108809537324467426418838593686472715018715030084548360607977528239853266194272071593175892712260039189790934667516521934364531584178205710365743162346277547232686592315723888325345402227925053947308897977655322980674718900751912917593087903092473063065023124095583241727858081954313523711865769675306064123143560239697131088602083812881262517110415776795591397040545243825272796268392739994823840457722819556698540920208119468338133985925551884037658270380489374690384504295110565047594637458685484952402472248222497811414854632309208267573704486217147271880650720456487173755773255259251248636344485036526323820789262275799289338500325337468110622885243979714744768525808757047209223934729715276409618594694427569240237730836313631896549128571389588909587103411128872092927070259463528932049627702309675021295888346776268761260834721750974948437016716488127570612233517326026301255400529361764797574089774012449075390331113090227231763862074060373431215079462989736606163805143162141481838850995919342850453417635834024070114775144765374164931795043830738675940171190597897421305505786420662568837390958907113873908839950766783962389433349899078451340953678882749387475969354824027032158515367490111895051509483428565556879265739154530346176055333325134081151701984510395572167909382354335971658656236332454101637961398238850390536208037736334023815093311230142182534872503823434469681409060378592904375582790784391590666169202097663681023575363924032376886574808386889213300095567241055498932754228130990745345210253801422796013390728239851053485378814828662825227116597046641384173717566186690025507367515279135540134846682457054464641238549921292330672291409477653103301968064494889002998014994784848918442230951239829210369545536978182176806175952120035349718763667476459466004317140337822967471800861341290840187264118031632073236190412579876062427891814678429917308508463280336769513169390909388030742512597028838822774689160075515080888806647819713742927289462935963186195103094364343013876070757807282091422638603113984219430980215877890532866142122910528530896981392334987676158729613377638748292197697977490823290307765942194677358814418193003267966045518126390208261677088111571286025943511122613779760903838513748893190548105799950156490370895272232762907318532490962683727002722930288122986431268716667260816680173460553539590808924116139140409002468905351339273347926573904732636931330924185536494786234357389791848032100123455661034039800083595417090081965752233507517069309048190768705718526127213780838631227209807940672917806073461807490283429910027144018691603084716665758107895724351018447119784250526823676642668846335082873456192816859993725537179647625928932863264947833260022661637625613617317179560477980922590207205995655853244337464597180605124009060710874044155842375071245406813879709159030537185115404658505219896189620661063084865229852630992455348192753009957750638324837536179742255662809321276933116591282973820684477457429852341920420865307206750749173506592877143348322344125047579101090412006544956845976174890875183383584258204458535814082973638520455449800998270730864319813899098389475693696298595801995623305243372063835731489371578851949298361782325825526137447436019358866952304741454112945379595198700683487570235256975910139781292651078179755796346100981278533308781540508403663272233667548979578295758426795771620772746862420191911874261543131431548228990711946084520054866755312318422946824330189657284198910426667877570242267157829221158941863573697993703188266739081812689551225482127981965743588183957278206330965721634749494354585795510889583851720278425922118309967326459307162118845959508831352373823121211592253659109192068104946092567210530073340700055434894141836124878460554853491903848448316451449208706717445096564090138534710683984554097707475216356145930980234683909641172293216530085770710523615411220300639934661539524346717968329625986484970658110958608240398133381517739654624933243204933029726028376425495300071756157677048710434099620772334581673160752418893562312007483520684551068723263373929053377166214563237003566054924250476324707204864708756445613290211394155505498742469215246630592905739954250142576638100651275752988211409677404795351659800634381649048841899223452424294301086563845843533864778342772730554689812462838809629002803992707779579175004841528580881810798770114652886767133236723773710228870439934062290668465100974505874724012941700564989687383456572292424665692683157455446163788406413231850821634597339482607768554948904339028371547006423965189560008340059330991340650382010344468168257742118527126029654370333960341475753271930485920544915599225502089826059580765365142651050521665717421064550759188896872368414313038258411339677335825420614842274672308007544150384886095214590515110065117820037393712875172910623265329375081087455100224866143601134685385165451904111502061556256890527253045159770372854755524236920371167130396127934055934690504090387904274713712978159881407577639780238038706438002953124324172960471909443483104091626232845926792997798556330453508562737976053839029573439161450869884261450261806522830246285697104557572724132053578394943303866678434512599254076942656412528516818214359477463369489604157049540465419957951776529053967210367739692901261684245680534873749128057419817238937570820198850472557124301531879424108339588866356776700851933319443823928248407219395960662456274805357432698270949320130979477924259731128338716888781555268979322417155311118604449999453536118929266018185533685604572278111036144358305484499102466028469642444906024119611123954333578183469846751218312713204101629582289849225651524974522696172877348467256609129672710319768719759992586068690178284272600161663422755062422767688238621656607554808027171015263038253326937298020224257311956159896591374851158907485648075059868734238265689332858809312668476509067763058904687429711554395654798266385967750879259204290106069230703419503561789327223653823206742289889869213829026734973326417170097367485884881645546551414819213616828074941538758463114686349247193832037099936722665900594140098335315746177933094947047216737087315715017033836515850036933428658351997880613284985527043000451128576127614330904842537170993970608606008928056409595576026713772549668860588490369281234297131572087879845883958317916721665388787457639006261090900383441707686449338576615928680284812335096773750852891795922959781405001024971620243459505293889361929863345815521610532959862694302324528579092977612188721171643032427835774515693534086912634799918432623161532779796161842666908844547412060385361119900467233611699753106768480174404594366280947741204509714004297541955473109429811533041769324719134730198908172044365708131549736360398512542827197345272901218685974184448165358684782498032000533578408220824947383861745683211568632815101504803012839560388575497078909879088839696912858322708765571052533018096829276858930625172616757965458283191390890504012550320133242762085634185365648519940692777186724817952909917424514124396679394420366278215114945617541681495742038276725152450258158497113795768147472399314211337714626138298501720121027541610276492541270433189567559624072069933718701468455862532965226651424352639876583985027805107554618576083932111899925831568201426696782432999834500348975276227465057381022705748137095653804824293942979261871028774659304483398944641110638100040133363637473709682458261891065921475484454842186540127926740729746218220811642774220090439419237791094803597743977736773732563364745080308864755338065486242727509919471036124626648047759090801910942814672593760569970912210916877709808613231739347159813660642994876117366604602124799025546870502566978837044395403550033014442599427103777448068087898007499049058159390564013125851998345504691785327446020502520541099855644877510273432205619378552844725899128452588376765114370431605156892200556746755105737489904577895285867281570206238261103682884246914029076299012159345231477123541695435484620927185320258199324348205467413652716542737624716908281577710681731700442541500157222644338530750964888229878211140754311880211335189987353108817795617122255559680715330317463465125207391159692340123831733415751870656808883387775191601801445119320200905259930399376710638748206817165357823350632509443066393558024983947455859547844782095703101361468161125122047911626347948196151911560337040532840513435522155477260063447229134328391132776042566535131168542076919756500435395917633032291697022171634914229874264723330518507479422218678200736736156549633919329370946391971290515308669264109021876436395725725436660858527388487927136242985450399195549557006266765912303372953100467825815824193003843409433018640301013070946525707737577035867638358420925170579398080208854746502425462469300997330213452463974322285398135171328548548286538539159382100854195333826314027432258469079525713247784800106537879091473137076982666877433537201465600317128088608526849461236520965511871815363972058953769584648005337459316277993019898607445989716808669826575666108697009258930675327877299872988321365997099031915238339203962388194697955014079215504861916540922430913756485634724098942963039329430223245056607266093057677725431700062442686967825631325573324430664535447126703472082614491557570495003228695206405009181212750816201484375056563678589063237178094768570284492055157074324186074885761722530839241650504056229232573734565396929575938344026068591431228736300755284138676492607884217217115076930153034309354361307600776186693917576578760843978994710017649200651600435641689228002286993149046870224903515868424486986945735077264267550373210674589220403494491833313859688084958542670283241404762561366640485136642849827937166324556838288801246906492495513701941817764771529035359685476299381224935180660056332453525464874339623733181601371348598823989024562356492821623939014836844247499279700413796117548377847297110221258176962657579692556480773740209357401483059529359223102222636818251478589233236296889326586057250780825684259584905081469966905336132555542472250464257168944618197461010168695943314062688864150266055963053787160465905264137726197432234195032337150226675754527630281291612489209765134898490804678897801968670586935986361735944475284918556163558142647999788506874079099263537122929169727789073323412931911914692646865381588489241524620031742226784495571069208199338476023964685639837724007882336360961241262796273109851242061728795723377471033795454751702884762492188264841403283342306049350417732591784390046823086598052761665380332701846028091884192940122423930007099592973392376841309175246083681991742407324137948591217442492708553914037682302000261704753811323788626171045454323862601059848227056360711779457808716127175440928958018232147238671069167456110181294210486704309964847902758178642814779616099059067156224435541768344400474546404637599682769767163869176175729253388694772194082963341485534160503850801481081189636534612224100140723509934236095733914790381100696209695785350509577538612193726367982014395284846796048190663289531169315710919340890382881005219136786514197488379232266444583278461024225966282566152368223684388603400716126324052526345191863660752732250745683162061778041051880742206846651469858896016834109517115699800876343483466852605396447870182460428476274822252176027453553611487726957018405700490257182492339425473200442472061160698911452562002982577712810784184800324323367012213717373326807820856621262555030448173616458465907757653023944652929121326058756452667779354481941780520682964281140612673882364484198126131437320101264744699192490071177702529250892598372737617743992326784479617627865685538923219244267688335292162678467259054483556317346709256089783479239403759283853759886218937787055476362316101872011572420147402658852273078579982916665138586970767612395714544407945888666921866035570474256438943787788101751132115493265000717939061439278536959727409508566600782455229459232499759569962572735001921514294283213468798548591653275434748557053137990182043166906999448920752638805917154293392651949996334219383553501479297363957151805550436311864837336884548630438685132491536870404751540380846605640696666671977581616757127626313223587204173589595290296780845347393191121914995931955020749215271101681889768647737287837344049713212943099684988228849841774471982920867971672056949152557403384927155881849197993484891547890042369400263538071175573056756293820551844627063986227772440647950398295178344225811855136794079001112015077435693347115639865831348965726395966577541605343189039774723993950400073312309903423037546845893571651216540695350751985542202422445408305476110844912850446543809838783155749697664336139679624745345158909680460396486379968434046057212555544558730432420983409736312368526255418547099993682977654490971558551008893568713492162298756863815422445957538735259006596760313223644240646235192766794681350796940124954557145213897528257840169699576678001987154135387792072605388328408325448190784478575354970191583084560438316804598237638221248505718472342991491731926260035464607925284341486200413745865891934748132521589294645398828476658518193139016025853822716117822747149623944864328056275110747189771169051837403188360899910193319968156990542463319391697314286543831375202624536799083019928895009307681640905748188935578395525414107783083242734563758897361749436653990635160542767192659109060410319152002933367256498310490093895077670254445903642905782741199359631738863752473102418724645859005150936573256667493398600295614143774287752819740456365567735054894428545996815362852541069352834770575556168458381424551640591817910012611348890058146182722765625689490894001808876235649722210874443564179172376130523840601621407302204687957175705238937359294742400913749793541019954513710169548742575937923229157041484136088830034914533946361229316801043215872121741135887305983490011233126175666935432054169414451755073234910760144380769254157729703982726476278648249830610968273250953271490547584500670192528857830492536701122747051928261110354632134629661927205701452837202068714106759438363129520397476701084943049125735564879171441474214947542482443614855172206051712301499110921736088065880199786336135860628873527778064787592729073140552683911175343629456100374653450238453200191327688499203951873557985929182118516208946621501002973620169854675211016644822484344015550537413957304447547632562156104622509078291559697616555531034562232446155850158808493165269017544458520392412995672266710289575167861586020965899792088983555991785090711407905647070227227611392316928024964662934348876122804092234460248669898836993264358249930796728898029658708327011058230623484160894180635980776506413310183181465118322452768245463360864053274526295687672927809129635902907972228989437573603136431385126377900272397245441723633823426274147404521560360666520979593638483472254632107489001611916036551499580964490795474585271952928261007366959911973134064789336644468145660133181050612215892304377267888888624048541450601985094863283909509966884612829119034097879443677569427640046166705283089025465261601778805082656154844321551136138794296033782749974181133437764308670613318394687202336330082421613497110783373827931923467968904824077494754263955842777475615000048861755588873532992902858399299360078895932814657303199741355770290384072422052348824248606331359876949438340568116738466837282944701615067615532367301389366632887059418064077544009504390486099908700952328526162373544030766454757653043391716662925221935891074540386431355429629402913447164096669549632083517174965081444200698323163386197858113363110952164887449314265824394104982861536970883162729710343165147393622744047694720008449423606881686519715524397588147900625398343572125769771388896705712711090697589643163284805377370811641157700353585565761548507595744862555201103270179263304987708117516796015273001213531971063805833477500039611639295421686535147383956708319897853297015359931933546486352022400195020774687600029986707753144693544580549495479390462064217993112930319180155587499808506820729721345278460519932514604517305848781384727269012916190944734570966783220899072790093443757027054101437227949976880017484147664160814528765739671231852897464320448548785628579387911077831897548821526563960767939343504308239932607676759746437354653401100035063738009315786538336671930786486965711627443509678495202166244010072644265115653503792902973344162672816867284182176326159904444274394817529446984620532542311888869179279579986757317908982653393302772083082157126303310728291695555145430630954625677356476177527703891011116345201945216727888211519004935794499073240419081816963667216729594559509238841873984881340039889925527565738246967641094403666168383103239626023130197571874041652861762334922244808683526534198491339050296156969339254374340425368019797315367211128444000983468428659011849294345778455734705509023549399735216625076180199644569937670754524934358738120082025736523403173723684444126077466035763417489217151621884531577465487933159028726748589529317825672318761616250017584831170710225010886074965812939042624001605657262859837846077788123973335078217345792081810368196946145541397317535968550542443588973144755695717268644077783727370192847655125504090989943183263102775716655437104721114403499842984720597786511022054180291384862849807042055711226409541398179626618504880117182659202163033440271648484500369280547566292840733187827575439922440526266003701463007419254538361651052139700490954496072539272068587789098424937039550981728646334757329670913907581845548843523425441095780035491100315259553763847988380024260382774010239327361497246627052298624826324034589510895286835483904995204272810571043854133055023018154780689922104731107270435906325741394997606299999736686393897992002826337731070611619997440779334013948614894274142029137803256704401447903345711594078601327893732264995932114563405358101885347581162842774199043739055838349692408756559350768642354640022466295381377016283300598327023233092880422979613631189836075133108816626692654536932325149052948800970219578326967916310833781259835437295129275031743907069997071943159837083633422167438007111770547296965927822595242133967928267279525381496444817742145055765556220871466725262003236857864930133701375311782840729129862032997382143021243809041018552821136444205368395687575896884930548527955014692503519044477251915073506526580009477738379722616601509262877077987255775086491733361658772869796730595515800432451015980928277249264923447153669856523543622041531332950510474472287105109576106503658360275130599217805327849775433662500541372063441395451242249755377944800191565947679725112522398824130525014830509291907984140652656230057414184423334936873973048441130327053803508076724221413415517639986269309558526241979014400372815629118742614716257856164772437855570015680030805467895066569986599732569525428596999450135972672643314588488362251655558493399047631389471477516936608908921802769565210895273569311084209966149274076507228340325250653812067941298183133115001288149200698792713692331917634415501943745630197175570176280353473963479765919267788367639217521202122289027509946940593537124547391986916797595437189438527353785799466004307305370590250521468909714322656439374059200405356109934477760618154127123879122874230057130574943227216287734189522344238991350365359331467944260860824058201308500619969650855773344432408896288488511996660955998793005212965371038826588994110023568643979219237587985401853925581391740607290351017736754350397344577047689460293717422773767509365370222082950540743160083515700944508536596094030479057800542624753113822904694482369619462547602178595848436612996704011872230301433347261718549000426957635685237702414220543715062408080244964606952494731752338008094839496891486876782589360949416768095261867786196788517910428655642372213823000924932692996746225025906163022197534475727059795667494563124953751629632153758567485431860848143349371750551992559415535844796321543357910033291165752072313299983288383943288229363607644430297577277591458852209524699695332695748553606943125178011907248614038398569297462920424585790108535361193353021934464506100966170621077407055273692340059680000421331253938569688892056136130177604354585730147083205811197224538888806044832961039233327710557195979494784123616358158049990793052168628401643611777241232630966265524019951253081544341273873553593225412942555019128848276443312236346985530766687384802776873860898997040299784620095295369357186012018600841823642284348863177456166479999537354815679621864658876017082323700999560879491865229110992275594925523721502784082031660028508032831233104588569606378060907195203488685595701622739591011109475817853365554799627695516313067303379010789012561241614830784838550546197561487009145627167334046978243186823236688146565609411968828071878569038201013648762770361680656754743594855894725784956868073647931801852150111364885878646495745533546619759762257168193052655188607535773142376076844985606504159044763384115989400793248079265625759053544084018516465580798141138806982420615076734509118860818238065238093852527616844104513332097802328348707827691269673529250511841102713446495381565375680543148212979696109652399555114088822360851451552977755761037045171682080336874533185671777246387823996528975213694999226934892502756798778656203271913918855883703617003855881436901227258581831277254783596068016760086659976938717242161004321024436989482515355829774077992239120879568264646179291567227895650909771077892447419741737449027655823460288194715295253277545289163841050005054304828256268092543279492402923189405519316836618549011633946697359692906543271435028844446949776892275803503241661998708905023264281806496474127875054323923133213637018986693773294986743691661167014997809257254343941031908630610696128139671450363759816984431919145281373742631353374970039963828803076633956959426928907888595735731835186447386552034960871324216426804096625932242383843248834543420585318296032579455043848235513311702991783083725667904845345994595393649689148990591587628396942463587621638027895200475742351087470701258319204437464680548661432029018610413492364146079082393714946589784148865140386165765660787332057394155341264858004939566289044131904934945455415749647550197865873799996668925093109386072469506438639524200801406867333102240285853939331089575519650280786391369192035869615856876711853752240112455159120561035045361306739672717135931741693110950948142830980109452942261878613318913057433770473165286300904685413361684756837048752144744972016491876422428001311996202601413329169642791164035476143442458617016816236135944004075030739715214292322661133990256990921228606702660833749276122871399925349427103188424483031622556260102300967048817708891372070831269861219977755370175355622097477128113835252207565559765947405329417334174604689496930632479980662981755072049485771545399602070685201455210468826418959092537868172810883446380932284058961982730278578112075711572783193905331500202792404534918639342090144766385254906901971913269376818832511828262880070263147476722676561408903480951242862846254483506130769905676739904369886659645704502655272489364129374977181219087429636355733912083193059387545718066034295975256452369185998575954035499007568607349081140327570239415821445493555994547645069273061727941053508728378393606531136326256154603754275338513960740381835106826388779085202009103473749928437073506862318914616318961808452483777180958142273268452313455164440976833227768933676097719171890397463615612941986647120760069449965339803553398993562923392001267948254267549740866338655179616570716271613229896553110147966377740615780571216335885864698418720198221890464061049756512138526466919612832224070894083186882595713178786264921985529365583532064447303522993729644046833139475486762196871562324307989366963505963888077690306616907010858619959361602865747856851251088582547800149732565672691627646570604366733811596606599311796331307661595176776469506778417869508261857853644268560240258858793268818888313163903807335826074150573824295890853781290994287614480950469653793058722120035515944684011775015778978659326857704743547079535336356276824524073950832865532532679613255169885541353826926088298999834237303620762031901886980927398572618823929939604987314159585631515518494508955843837866598938026175160713564956138489390479018813433208599177629398803453969914718067042352527418704948495251464945521819815635388337988779748377679728868444403510749543577999493593247764707114995707598922204358601954757202208157023625527439611418496227354433687234459716832111371862271045590299539647643778913021857790112720130148058211316248873392843413124992705208434758212036427269561935187814525775011056528234627846727744784407599502147974146448547373059807040962821211347242438391265121584271301171811164006339823089566376418157753083805928389510949752123916097282916349589866320454528292968050961705667411151551965276696006898840375839251552741107052194733314394831480412604838411275805085822372906198606160737410429321667990634032977807390269080339555667609019464228354112997619019762582835811680032828344194993914754798161050989839164183558794259079527794913768505137816204225754723104151732743452296468601205545687996619383922424865749110501167636577875058766864891192093504858489044230752452349004624634370554628558504255771721029095739733024139914435402406391544145943976028095815765017984896432049973097840380634110701011202313035860183270982148887902578698057973470028757328257815065953793175297477085046252703014617651506961676475768324160547649749374563227006969977940846317260096596869578575572680035112999666429078439649552245424710068357234994285588901657579273009126009463466198732536430267526156648130589729017758119756778863715014633747172509026238377662309477996456889011582390819915298673754401416098462342650775547177314452427894949640134754722618118008949181169097000504440009536602982360479853767125995403389558636578196802375531309300464470120259512910588327464613436536858777337596445511462515687753635555464369681968697671010230001272304271007297450232344851966640036914923846676708175090080422637271253953748612757781951305912024415021927201394982653166052586829120296089527693296641598751204070084148129654520540486086918219260632606129634365277182914854945497191221329310448642711641263448786720604728114961693288595274989026438851708049650763586344337057422566673256106964991478814441310308173035895125762868112234253093203744128545878038741402333604009806698189070385625795884585840567001742711255328958061890129292538076634138155827138907522608239869092892464655945002993521051911424224339892661762137900600256478756068765762512788614883839123409382847846963190436379687109891381157583812908688478551191097823037770118020790339824772536976843177289904977255872751771624927075425952738952570972810123409707645242815307164934086284623615799323375708970469402375000075467220440913199063283808914776955087524043041419707186787491639108710513407487143272094595081979523717905469326209825874516765360621296563800895352403572320812230154029125401187551460822588958695044182011288721794929830893010954247679838825124876656339592741890781473908028281971282540606706271982681341832383379275868265068591276671915460770120914996910858191640314273321967502108415587232939708808356779444688802136493469072810169799362177317953383527420429212253422570389329355412292480641744344365998220584711656239189981755785679337678883948904637754881078454304376077820197901315386654644371454134415014357742995484349796249030907383616734909121953186798793857300255791737242890080563949877588869645113488469265262094667585878505096071772472944017260093328879794940684650905066264216452457071166380446921373131109833464198368905440477736857297148034539661277399669875563380995699130158496610727469860777745063487934149881568725755632931005506424277535930814211892492895532541334083290288044946995317854220213241509070881478219114073781948821759102078660406624642508145287128726746321640296316989521299390326776232031586864927121971482461566989021213683090466207629977542930386657099176763090122986152517737128588321606448388971877430184651763142078745980956740334275601392547964172276235527476987772564805408079303953226773312667659960820439697257051384483714689814507610021244843639417874888074472544176069183108450888698972949184163618992886206554775237235136261353797965800748506904422858798585359086164383161485455857399770140209860066164552537636092041758029561549846094905331269348086604250889454207654395718027605352853771126616162014696619992786566944067010749852625973748979394045748693804346993270897086747482428981326244566833357299519292643976317990608023401479206940322642445212124412079021950055568366376009567503985114831521214210089209092277254028228311616823408097869997307404424866642118462753204774115156706742080045534893464331622383084318133441348221109909410745269898680448958942625125606693739165356527433351596389274614479926415893331817045817316122782753326600662978861471502902816625615000177246504344984876022886835768841512507566096072133524426670430761158861389421867554685881877287228694895927092187152556893060582020957130789754029609938802146425721953284158952535455940344989540634951363435945481599553634618328816217942400428739680353650047175969258993740014967819418949376017832644116597467780926695464041934386363967824771359436480064348039350697699859832867894469930139580553138955775609331018473607741019830033085284147028794099577900908513160935684249181707571610299327285826005495460330572808881173404025593847762932957899255909131566265915373321299269489577637435372011939528791239558641313994575022164647042342664211476412543684844822422008763901956971111240717390727074974904637783396075302915193749538933636555508376082021654239553055951789484349323871839697300119512860345822388952833559848649878355172679665899020587941622039851461656066189377068454773967601942529776933625602173343611995431327449620254919250160503062552909683132349416448358689970237200365816378507305596293905034991337179971984297820923673169734563487255565383322530283946924687667005925378608336312013198195768120356349739617882879847401571777951239032062657217677065936482742122634314812718436954725654203735010517130309196883571487394432000989842648157784596674986386962481043706090314499382699012984045877893059912736850951089903708397717157107515968620418931570641010232785512028976688605476548164005150074681427323044277999675012947333413125582334242381012537486061289920675149706372732878380131927368745918298128280224022447036628564570442998828322132116826375843171756489798531049745340324823298272806629551269593008421346737264814514378079798341843248378937834942297746838157496030311349571062206560809777144015419167467903590483318423379281737109448857162874787438646666975041920096793252838903781002576455635415330742960518869409311985000642301009112283875364912228386042980064500294307872165262390850933113440491612768034731748049602024529820567640394227871128751077075022784426963081150796305646547828956263972902139120108794608137072321966888104165228911142763452675045485734815130183327664683733779673873632623074197745998247657527316095595932847907641637035238188460740836068860666604397507879103971964435974220680411310398237900991257546979808639780800381445249442169785029527309399637932750687538465012112120635281265905795092248596740979718785357789027056095475963483631935107348854807765069846215463987156003674561545836019385737713399968147052145174032589709518053981445689339301028504105655612098858803698079594721570523932544819125927518629423723590373786194766839292566322820005431023848784110653867550272362084669002576494822818245340003018169935610208208076531615486509677106755263520099205288673266098545386209332857641127392139150624499430912737869758253333580948536638076706385461869738515360126301285497886384978869114275066918093362808104484537114667017488371838791120317470406695383400352033166386035527988111796552100279620438547071865070130303593152864829558543658922024054017418119593848424802827250198890810334795916725042973320501716045681129799424311502153184387642334760764808320114510206057992740930455258899265177757096909294900233119982970548470941051712434463634054019293093854706583958209937769372402092521163880306162994539450720227715956576562728791309565424686443091308005141837545169729344215359389159213024755166381198044454276703855332728804856267183691541497159216747517304031840060588203158420642274964772247020645063674840448717481053036189139188693388997125747235088212037726193936241676739264063151751699398825009990936107381689072192210997394701023288456713116776453717391934751660234841969001050289219272539766667719878078053037018783451889615162711355749016286009875119281270537276075292195513565162433870240336459009277200142133444346111217026980885662970687086919865677747133615590256639414242617590798793443748367268762947846442769038164377994839809278860216975347093781535173109046326282925958508875366875640446318556644261452861033953880148070697014737781955756731289155455163701730771338844580193006309251226743071440187541865223328741349934698716190052220615936548245112194023050668588436886642479202875607440299343575906081005072009020158358474178751022571133643407945115377110200856230312912524519908493938729873967813149988772405952239607142339415428880729219801032410525331578114201116157439098397679213270018846305233650242623216980972386614389747920868724698288451282469081609881639615586435709146053159419472273850137217945274808290995318889534644584689752659608217199377327366809138241323108035993188423842611249613115351363233633101245034458970254035747440926578024370287536681862768580835995047305134219122017969255654700886854891570582076766610338895812347774729540800097425143087753976717713303380326803867751639693600855169040726897539443181602275887707306964342145679984108105975967665634267207727289203574778374377997546234964327662825382034090988513238268756421474405393104488956442355544866649607708301168324974358003568189025967316074857992673799889419872098550691218269126583550822403470654949812381987397368411135260486152426044484167514814326991617360655362134865828416492596976384517380060594303332023973181606598956050062777428448248543083147742901316322580802801872690750492457364198043341300513073902369163577511011247755218516953947108109683477761516698336405884192153139984885281371730908598550848096474393943414064501556342286600174539838340638144757329452304164137719033193118697898839596149111954286436868063938476617505560102486194536849280917281672905359437258181566303198904899531045540243817917856010848694744221496589717191966371942869463962654521477149712291294075632185803700024482824550800697031627368632525511896905104401009845550930433913892050403128610468801359383998482257481198163796714113662828243701535712732071031490892699464305766536254067275766768850236965870150323662678872071618986491739255988560006320535277209196871059927440955848260244066679627818055668261730263397451804867462059289536507249463651708799041618529180153352397945578631969487151629512156702558592108854799557571809973572738036346021365778618570538660781027229518425710446513370894311627547475011391395240897191969152054073318811247502639883196629205991137537666187897477791888204567869563822841431045283365149256222713655871697237027083918254715327580093586049657571199157991024817066839922466265526167101668973226050290780350494281800689839812519404558624067342828576818091960460739207844916233107531519518210175574288470685573438342278545091237604758835930576575523412855597561798475895264683153505928578178126399053054047583465479961740768400573709480609580527632721436908851987384161591853063892565557977133930556293725219044925739611110704140993078478622053781700042556829378889557536937818170833641124095281321077066572084621682136478527679483395407566348395363456555013088807411677019842037396528753402258533996703490200153623825553472195796816088626010327238923884476270312321302307321186878090868721818362320703729116766679046170782581175280043051551454937129100438763075212300629864353716868938532167101035337015957578825471594563687693582020374128560461147644036094583211860920371962760319945586744611766639145534541209079177250245342077606996137319833425874033087325326659716810090855734840770056816448559600330437789115179848211407121893901931874829624952495072701163917185741232108831331708459421535236208066379112527047733771329324876824994111855045074038717845188227281050693565725324059562338996868449527511835790607805216692116339639725418282302180304755561804701759762518777829852305686212053965655032405210994671209984167322250302897243865208261009431667988413277577334191400968199515118682870290184966222204169128985573526727023752647554894396541652092840208221427207919297239055011327229724442157789953593815835405491295342474641798168068354493440776848526488113684968885617169920089480907085519222326052315654743489274410790865878700810633123432304499579514610763165127576288502802229987656983439541391221369168859545066254359752698142677283405804691094041596303531410374228188968914109879360333493213892408243570128098318505316168775521125271229961406279805429013314414800156635537697474556905666762097916080295947777159779414900681973487439465725715535686964557699458459840909213029044308370935450466770834097165201685691592222789722581110689218847661989838425096222845409808547165708243210299844631857515138084585973333035818778495423324230617346919925342768409441681265984396976271164302091989597300693634256116721862038577659674615469153280791512121005589164719736580605034038059817000792022219709042425810465615509698524066229186840502956110682719452146568178264079933078101123096480431319622365531458674532541072143557154759506986444697952448815562476318448693165872839321823850778861675632405877692213743356708800582189657255471483508104651972636009730536456549151660445454733116680932964274779750279281422011433855228276877025198199586124375539959250130854587230165537169520514252015803347079291315832549931783606561600131008586045173602686902244706834658038171373843737914677724387015014320218913264392984337742314350450052225753117917124209889328466912322999765532719797078090192536929931120848840054254590832481389098051767632282309015188196713713700530342320920683406619273376577282577046581722230900224881585250001393376066598085161128717706881677160289498948264637164299198064421430934779285424320596766468191413042817516323433171986132969504742600007197607568364719488812691266539630601867184218620562481541368427296736517753281623926691742690524802549954858785839605780741882254152248805366247672015748674292535584256410224169765071057927569465556663758713937361655018089358818154554351674626892662071627044512138352992773521598571464681402919296936749986719694742390638111095386600692085616852355310092330535208657659617160145749975952260540542102389729525557664885820202692933490198437743528644909240024733346010561970167529257893942289214115302096732660876266356083584232800783233680013788966759365076869480312993866553269123169808586042434861302949533771143904792201821451293041783090261742955014271547268560946204991665331068456929134831674930469873302396691387375628910567317921526460660795739913466967235730540105797542762062759520586481538879671026565768987004593544092968877440771435533542518701048396457693315493093431471130869258476482726299855008210849160092290896055966196413883683783439507026428557072015476376407631292196423551210807367945349359401373455056986826883255689266238485498932688738673186436110515738105739474561525201385768442544671758664391865759691363318320753462916321072479932812632139334251367366061255267414908813276465855258754497000598120802886954295532661498594399627560578768395584857891953866160350934615412686162549023063201808363588882837010341105761625107943598660104356739369687870373198824394757096517733103206969978752368303090919964202991809255917403445631002541850112842382054718477201437287780311503904214078073956649062656725675306321307066316153990036126663667972470629467270940688202648455718896173748725338065744210783858403681484023953470047580841539231009009465721535236716827872981717963804447763519664956738464734284258173411119316373872841189325791355230041063830387249978853661142629823082203559307470832460315171812063935347465421141661944227864114375428847998055318816544919763333142873046790585943125043846674367315205719033093454997431428404459821378703847910280046196615482260537010791238131008360831994008949326792884996337991495282205029631392733367231110609778147061119009156824465949644285748476452496961175372774939521667715373863660660681813358006903564699863136454786075762409060116450303789344565616180692405054787894702429814716942420772825300674672293603549645768417632838471462590130392129366562873652320599727709857090973423773728699455227249956294660509616035294804022776265040211243742741776790689299208006752547214706572033887884490201201824826075808112718987129104340255567476792389390345914848955069171917744929012374965917734782046452702808318902906684105159619878580333785476915358512554811880071150899353805948446739688043523888030068250329341546230771328780650972212734632065525619234156274425042994989969990159603442923731291555533343700747553749042733290698184111640214083078667928786923140286287065873833429230608018276990991910246805155444541401374835724463497944756876810204007035440697975979656314081715401010711414352236176417657197104685688618654412708485479256257793700687498217284896168363805808994629661843714089315469986902477546773158525562472680113675228877055824742297380962179676385917886389715082357622143706953463509168223445802961607173944124377004189434848404392592356767612058823335396856820459519027555447973124719446765132872260248446843292073933851797671528369041637718066238656415311549377643967811914722916580802523130826225920909213422151941129542541904331824574924359644537183494016874777488799214841061391723072278376265880133515449645696205589636766603822806107874431132334309583909485746952672630102338927564377612341247387235295703183445215822534848936347432190965546025235427467051277295699718885079085544481231054144651515772498118125526742052533696779699892782010389124416773725618193661958719792216687888848888085337321086962050371455317036977396028496903823129511631209969490151955282037102299253649360341225519742927518446626660978779644469933652859296752573743394665746964378671805722875104898808510357244421249127846748690073042073403831118088145980208340245688750252061979991695011054857217298075655153108423241486040635373637538759129077304249015189249207096534752715824945473303541187206325935022398117139972835444370430373833105711172247157558851395578648533051450278059503606624155685256756564503369033311827221907862828001797440127979589085772994896366107238843792043711465213537161878946700651284677641464937561711529050045067128876514147171650105518529529104519844339232679690268951675847512102416609076113410277408791165745895763634116905251878376233820663275935839255901591705849937372388488495267130653999813530045727039278745214571052938691372815442123011215908673578322200970707537958039871669477256751507265420393628799467551638344705970028149433090800771394676739367488619077516755347724305199962059304946123570047214041164124002210428128525092485649542748684162192721205493014111323119734506551337043482408394018005615092573826284326687675256971097716860433433967277214513834716766293387664509762573661407743313907548093206052040125950796511425628793768040552255347582471064098723093115102625946051044717986560616049270138545953007651882944495975023683629305213282713350649882751246209147377237643443690740155816355371797858243117831696311183827057727654479620723631697163227697486505363317754925362648818448737828872901668866881980409404776526444397624019985662934335767032188094945562089917548368487857728371668487671023639199848934249232557134831677636654066298599629336098705726090462428742691450491192640595939873288641533886530968855740386676185307796630724889150457654216383375166707739139143396002844185315572046940926723796303000711349264210820771732712411555629398038517929703574133561305941487504264079413228660109188662916557486670405029611562224646844347768944629530326081554143607633388182546681108725983154210376720673681079112452026503437352536770310751562100465305655388870495104505809384269631825065829538716650742138078862537288248980432272111195632495414539980679029542072379912733346984298259757111152295810372660504662802956554653530817074873427224934167266739987872232855387344747723200050043314153547129757516289235396466256209886034439751205589842903550711771151597490605864319498600214841878427131185215177996286294609538834499030917173918859839480449401000168920497865241821750813396297260539348614534305392797363463233771069428245436256656607608285695007064702046665566976347108599441041507545706189054127886592373044695475757138005245740987318254123248082491542335291126084346160763567223461527504079742778863004718578013485498622286893422512761343454979453147638671563051620167820422869612845534180645484119451703857847016107514449763046642980453974276379679516095676269050351103281967835607416475162550767077325266418781174832795061318919231600445757263324376152717035976936334425704705039474483438512601717112625717541816849373351037174336947548612862622191195382598873623741151661495909241801671155280942835123700893099764431626958137564790779111783341446159537976197910840380165492551023117621724524297509183941497253422759367143901690656449502714565233836624591924351538121598455734089081459987127296487351763591245207254705350457076666028934766367020079925214227678261998930484439347616188955977496764705796765201359770358409079051442126021544124645259257740826991181395307377644384503838488525228193234123537706107980508607456760187751718271222598738033927258238719596822119449032475222670239504919154747987917207742762104919667886506630265742574560381287923198576569950038251236950062790622461601118754679738093888875392618957692797266564231759267989353198308817156055696549834612322123457066934777079230081903828951893992444720315938964029147109443233171477287184806403829506935517458554778012604024236505386997085571701223715163932532544823100483152294334351311066981029698074071465428249139260337402118951664268919368098812676854025894209879433562563871787357962362001760403362665382863791184851256262288296467846022765373639004968579530533660714981581724710315072872244763369291911990372732853071005162103873893006037576594638053528061862102639659740209472071588353723673945134629455147006884626645280456879797706335941004344283752091996895163644912204197348985854673481635682030409909404656832671036131091575800987057211145856557529904236961406444815951931424629346813563526939734910592103442704399093393011322333795423650008419931822579696553498051929042910493725572751236881036264705411490023596578251400475898890941869572228776784743091614492668123446648704237647833712285691604181382531314458839527903664154335053503697026863244388837613519895940486752888257192903729517606567363663189931085669901524683368985351444914278112143978344817881716930912507424540501902356209941329187792699516715488309468486919179858461320665280578093701653409308612947681001881570774089354282720243364252943046629404813929674575758689406938438719067553166375515480698013545440335542439943819810262099760540929873254044120789036411930431070211907604839293918349774681257016890731989363178758537358219741395018040192958655110180114865086754658128347941155948210867797380194072329580372923844052552059506743955842295723283209194386943027392790496731928264128515072872466483104191984267214996031381093282427642043732870158997219776166989568911477121390493716014018373150687841239150087386408475134031870541391081252798495317601904007684615256614607826002163964270361493907253993766096875505843870328745681226114451488774986133272815045264077841174820311788017530169640326824346873981030357525266830307347974923622439516751860022984627414587703069410798466199744414620406750438261741557921698268468278319980154755986118564336140131703781575837519711354535230956480303344599671405132532541877010510920576783088126482541990807876939501786702212775457447693134551052894706450985083811222082421275454377221107245555734076733733997860661913485712685340905321649615317294932874099131210264175247608297373437802038552785283292183521090221382252694090268845408973830731577707241466331358373902942512682469527362412886592058667344528554687003150547023771817926871743021608672899399059860195681520448950463137978300244416834315681586282830499815526630293588378380498106432784794888317538848480229281328540584603591782437528644059240842423991089787382269618940909628396957116856404554970517626939044256893101807031797326842226576945446129871686271039444526060731403338660286504482642422006950809370736281630609666920296177704054001488784158943918837747496762396139822541448921764939620941934306917128140948347758883453727830455192649573686774143411745604189939332047852325152678283069658584681948048097072824897624862251937434512251387474675593509172061886818618002277412267993428735932905560261081476738286287411801180695281866511200647360224331661081799644204651065595752292430929666106753935662961621695694894358192902848041288583494276022982293695822217120432169064720950042992513974068676213382662339066423598609261486421909533522200076681453990704344537169105870288864499025796788337715655986463582188958219733154882655157650463094640371740905345703533953495690248327040351284629199291730220485266510973908494695280565374681323629571836091374726784188964152132052251967022608547484687136133819826430010588393997882040065168369501677111744372789314562999492705939645865833576560039089080387089407759367360751585509632838030587238838737864110075002886210330959632553140853374451080905805538919109980554030610123113593608614752834471644127874765634259634239564194042092753764528071995090275499173145827981851296488244766013961716258228353286925840385137159102884277107106039052243409342561999886208479024056377228723937990496316918690233824715119943223451925155701610362951736250471326694183950635180674854406579038692656360103474084318791063469444007379758518894484311437705172726866261210797188696124863791745434017510757423832136920469825848241465933395174689050921023873050099773375544973088478402409346826778940084610567658765699848972395686272168701327297145968299599682581217076038043432252870978210439635394669740892045124782814013937388235456451626275614068404458887375702957588429673223124319854316836815852787085329609062096793756959228309834709567470919310041493771604928517139902752621177347060861454013678655897929498439075234180783296458848740702631168255735165187925930540898543384703186183527219663878760251295712096948323267245486200802600807372122436073760722233046720790763481745470336093256946463816234689313300196953813036179712207815132344717996792054478724220083144202787484521584673620452052943748212258633766268803694881455952273480518497057977392979977388733216995493340100634680368974998473359361458328962560538873548088117015894534692343568541116900640658375367744601765926050620076116525883504014918603504154435497732224474249230434874617988672747288334432872478605577744723696140055757184979612480890527764094781335678253276609730190614512260044507962603862087509970766446326067823957749781842175615138219371836251518215173583302434082595810390614142858059430069483440788163194955043830211947576668544052409685617428804526470862951165862824736588598298256019499752503483773046135772499959825912884988156021559924775767638083868155666710225649946037902040975772643700733258060816190021713280224525572852534345488293725275380700994463568492241699258509084373344286670706102458208573242797679487262079015543834102545936063795410495181320780488398528381557831188762735991166668468148987131797661053665468171331070945265075074938218049347244535187979452326468628885511188362527276659375839440962211423402997560722868839547139771657197705238416357456620598263928130737624139854742675428788949052345051139111931378708434632459313860229967778518732510757089052122214091806328709411595093008185326847966162241932633078965105967652356041876987741843178397410134846771957943336759967728594663950974562932386666899194862841258615427640292888933753087073656301601462519018061143640885294639384064407021158228517444953231166456353545740986884748701928664889688239622306800186347160542068302244923545392729556609005920684145814483544058301717120856595407299935113397049679380263528333723510795235119637396178947991415901793805926901754333123961966753787125519332025289155465475202024035510880230394075903187819479544016732059285800718382948038631030434849384416822939794243530858121397461403594092562874126822876728737330815028531292425812788679656049207048372405755423302494152523861412850434805011538986335705592619454864746238351023859459422603755947807703624980021118963323539742901578377814757169843155672286154563847717784683382396627972044055894538133105976612045961060735391079773162251148608143412068499707670400050132527387631119237141958710506810804332677192097568328612926121453091363441759373101027562159358521510984401231323425720901646959930773920943748885337150906082183561968577333697338677066293956568368942674632085342418546829220731913715149389741382539342972086899203787222886235558063686315028852419897847334921142393157529044090123040825716512102425324920726851390393562053906100661865035644514592499748139102200008751203760246658900056649379704946632606386443431325798507525478793213173954717236418345568275835135545549590219675041776936012486903620556784226976717100527046894269459593388062413104724147023551435025525680545348997797564436520521113843840996814732197091911098859401306649306746465088687463938176377380403037554039324915085517368580753935961526937885960570861800974661760472015261310420678559722150990859226561361298637201158205233655138651714481612649817534334862476615037761867039613769565937583123482408933446879235781855811924874797408726174622278373029324720193156587608512292970468347181306441769530521700889631155353850514983221848336443421150421454632364314644159865618358953636276095251622957507607049933843207075915668281413617143428960367194262729950410348258255232302308611060056148640421761509530602131308180335051375743004317982041473045713602787265276068588315287490401829578048514354123944046181231921513837575995693226820666130421767066844074425297768738588748685974800640511372759246061864856546447005725565122068210139729753281895658425958354620592765105210860100953316632457245687470656237040745872779138045322245601307231949707657328080761656572808722450646869942646712495157990929934514041281606690400380304544999726203888180954128057834275043929365252651071009534096549022067641840231052786697162878290521567991425399078658073956173134029419955488346567253768650107866469566929761987889584032978432605667203452584264301258044488461974421067896250769599095835070898208419139442665090146162648203137758020823398089730001573040230001783745475024739925290143589833164351744390966780670998244751170309848596102271969924088894071638989104033880622678411421159856347124281858846652847934007418812342217550881437469045968353397797776070390422474311230464635779954684261502218358835512917533387784472685203113519451553952090983242238175193727695229571518162475755119473657658300806991110918267736419668741617624000067632629092119515764456891406067815231940424762234898751993200688620104180076492033101306492023468145677071643715748849824524808585603157709533716274349343650381186864080000665154367754080891850854073368587241811180510112413804420168134971432734150722987891307319412457046907864789419846259461040897903176195638327118290461641264490774707554433750393590340474311078535211093889512663613190270440103704991251486992504506496128954782130515458872675507623796446975422840824958916266169596639501201358303419894133347616724462916065753997297328695362877637218053139835794055770009953329370252478101993365816596649984699286967516378726011855813050306019213776065635312090506848106384185033346813156372733442136865055212093222616670344650192030234712955663106311910965505033043487722988437501204819730751757487934194172585263116609841757127275331714436923314826952816695838213685261649222475491440782041052058481085624199759087155460325736963219604419219478632520002728626782911078186174417502122453217528743809081112653013894170335644052182051108828135210450122960268511247246207314122841962227059383267901542871089904533866756225773661451624603401535561882901249130971542386301031897554601131254276449218810639765702480785086888488282945735815936645200102861806427183334538247467589310178455596180720635263096964311670131204151954227440174066807459528014091323064213592255080632655612032928753722500785447046931611019797984780677659724156845235795179088087786700885686744042732127545544575598192158416671523505763070141233157484551342414328959754618967933111647541993350899390217044451411129385066320844799658775588658367798118620273627034104802544420694432545201330326301647785516654733453584759136419690884085173607888359480684726188307453044511443308337341324086920281674372550724248845490139124195526126481268796928377593891636439291319263399171676336451663197369929040644508704248001912856732263669368243593661717478895491175883664137262372285939973856450444437970597791358932779427054295023114938093576297759445760689175519587641578058993034658447994471479240265093900370516061947666392451111085074250938498265303283923151430061630463424328712877233478245495332272956656743858233719235576236086497044400433287796178957528398057717549876662499885713391682260603620758465553230382736135153796748240982610580862457121149032626465408100907302723882656198252111553534492160127167228434346583950409827469753894937581384955203823085050753153694207309641416984808858854560705470065301196442017434477915640587969764600294164889488289876495013840023266671129856892362246903842692703848466162198119201283604597081868965123817614622762975867576995447687576938642657023678905451127894111659102476291921673784108733791222439585063664757788650194392978479301483842466592839072824826016840780933977008022543238687479150255654509970224290502727623112685056754182392945878872968144339340764970172622564769195132419184013335913063496944061546852057150817803746786692422835341969176649786929296716892277771534371919049673733981032369683528837825072628717755826146664129936276568282091803286627193238880826299536918594336659114455865227124385147303877060787183815061228673531760973479343241459153029800464285962428290791496135284195391881326092586747536598823693325923478312888472107569760058611845292896321310997167454331975474139531257122722193501623638819152106965195672654439507613880421810372089262252560311571976842525492685025147009306968558001029853935120596587922197038089929959039225852046439090755210151311476827352983390900256525597627483193452105849965562244915428012353524832406784604440938874945781349582935609179610968522900551288071046265096785219145539403393094232831699750785397378116122066167886513931432410373858513509268015962039153640981692171718422775886426390972849298075974313662502038647506578089710001000566303744521242445617764604948783214887096461619748428181042221205196376834975835675082900622452756489667060071348954837058059432487154542565192378823368109009565187793724592126654166685439700942022455099848732669159023975632736034004506843273987490274475091099174715577851225773271277879197759907317337699404599269568924787776514145874648671315811866358260286860163389738247463480740721641270043832408286687732854635924217476337128701953323285066824437541997082224112981361046366170056668387348185737216657862444192215306196250090018500973501106125995938881920453327207976204943299891119064646338581826863534732090354097739833053067974675531033638419838719634518515597794675993921345252527132519241761783703447398429762322949002436695433991688251644764120985571873963502198808410094596395391304166430242567166565697640607217784347599579872058051378452486671513786768566957738140393391325428054865548679557733631059580342532004173009150148299092069933143705301255519207683883882809316286601948899212600520057855200765899736127283499450025651152957581566297846779249755136851000600790736995651950130271534001733187996542407562291811972586678372534869123891398342602904010200589683926662392177490750402359666152247889369136387751786377201693976808298915473748902416394512691847481875155512943829048645833426475052438391116312624947853689052232569601014652377062224727003374205367853402265798218468566081396096100149029172244197116874562178655663858715290468731958014662623323703230479006118063952697441832388170335057133627654913578089994912042376589179005473277063913509834426300505736043226652729064631384061721002391028487816926491877154298356713054032675403867744567340270719819481642547583790510708872000494245356673879994249588915634482739742262024819224558557486930818505894076995631551458557789510225691996894312252885143390032961155357680423912575193665961111218036189506417021031068785163062783252728625025498765195566255202315612069451197746898443563869140323203258625944249741653867365982976597026633983197555548982115915310368560063920634795927216433871359511125874385462564390673671825523455063198398671681256800136334608344687679224821468671815462741837425265404164005951637267715762091792448218091791133705173975949252728415290242444119541437683359639199486444228172664444333897739936601454705514090796093357033431301073274718660384887555616357218453953552465484202293811888343630683507858993429196726051807292453983027297664421602442533426899124341739861078786207258221383027835120615221618070531378087026032670638945883195512333498290229740856194018104767025362074006763696498683481459175181077776630690202192929706384737600953734519623719549139164807267447640200761812047183266650977287004135761485783307840028761315328557640967337450416863359901088786021768995402829041902811294324195578939156548628450447442091308364036538550718424395448628607963579948986993810913621440406370849131612386058136352662486422250904075328409773147472075346918243863378870848564417519731896849865512558780910674529673949018073026375784855314966365146565301782511241703067871443320081114181025707699732731124384475974767311075758080160791655128972404830675340721142382235442293015303721130123539544562077421597291742123998868296795798815213800539023528516817771587793112324630522828414131662328479885198324788508127974919514126522149277140235043942239926491804118148355765136984623943933110192308829426416319762756906541459829793391609118807447470634847632204844329378419446668386295544065501649413505128376715580016147383967537523393363247491255306286627575283501756368930896822818434037447942108568624875246695665484103891810391223122962944646138765030337390181440871380415216690406375199538045896951708955086080202005076803502947266366773094848820603454403101754391212079741994750122058101815608484903468146443174051382933565057476369929483253593698823886031757479824771151456296039137340866113629212006104196552941216589188577037343229310101676728335926006130524614397129861404883148486457887046587382144679758825318606474957916222483956119227453252457885065025113164967099808775943659546938388538787965930555408153759103004205874955477146002305666218737325715489707219660653282493906374065566109908069567353656607304791024775825903331771812140759216145354432298046213375801727812972005744135129163931914191540091251912632879890064727629459574009246027785111335270002653608182439203670837118355593753703524574095206359070982936658733507822755397812580626027190628393817027891265855518572674647976796421306636648603481418927250813814670516661505031452824122148831263508796676045100055882342100792861512694613521674127500954282182250103436590471290508422894508949025296351366649054429763650086406189723006864671993133080785823349744708720601100426527393538485299389372392049039935347891914891072295115413935589653940852513494500507473248633389367616532726908087213686777000136537566761232617619150502866827671789406487792416520227073589065784465625600834654683316870646238683986393515538630022058776661537664916449149714233980623526122768238812499390423256701147021321183974860710920203499003866724997514778178978092134262302003866077120094047100169418273602158271694931560717789969742568440412352666665631525493843353808420124532596419365967565117330772398256011982386341615470647544568161773983998827131803375452231563722836892497472655526187252629117349914249981473286926978284152885467737355555350193126857927070382247783540646167285286946836185336883362144099520429197395769539639011415745383951755272691994930482412451329658629645264714237587553376131739247120289082944252560954705586121687456798068860198224534812981418607783092469390708953338320649246862713718815694105214241813096054063930267182312927692093019325477893810667610644491713763909953924750966812942549571154360153337759574512949130096097022798534397272013518819943407744068485338896816557234605873918551199636144028420150982038804657519666193250451766563472308908629203375335922558430858755756153502534998037654153173627998286641427459937120100853649549315362968846410140443784089657240329504779135834981701445921036585903158542558574661593936898497744141347820899945474050076527976523756967437748588582777791692498169469184663130946569552869494279676581537260845102909534973136789026909541366987213638253371734735465177989736231524769380189513945387619281128565541862730736524401429598019918078195739483950408253048926565006783254794450065720857179369426571449000103067631617810094099065950837152446463038961445827950041910639354197826193805909540861609756076198595110798762871366856785471153366545947540218499881278567804355010847313596040662889601829187549271146996052166134933552149571039671084937179088566201661224982747130590122773725208922499733896225184331763766829643382546311497014030984600170021309599985733515082877587322918191314061768728259842983666320478490187309922036639025850205485378414691223960323265620348182815157807523131123936547910335553600389190883901153601785358746384304002565299360992299759790245766099559542658849721719385125329878460454191055956950984309733939744658071404487688192573093792482312501744399431731724976870368331500553408310350131539693378044973753880034338016886395400714160917630979024623898202900638948036072263937887676102839196705002845828287664673254305285335280188822319205446045555136446607838024102916233775452230277457949768354679286840528324441160339174790795965194248428218219594417621227400577758112974162745413549283583772874258593116169103504132062022736142949461836950770686627499546297776237281613076149658067218512031532628860571285731628227225670406941139776122071967090982195630555867886144688260200615668559588130123497060994991880693224404709537631116163346536232052112216371325737521026246788333304984287465016794925969081888857444393984454779597752468885469995091802247380475070763123966113717462190407657011922081990311156666469508540822655331255597821508666736306926659926708486488067288910339880990459747290078135532340871209539590334680974757538272898898115495736325583105279953747780718709580093023616090285386989973402425889174198812132389503976899544916466611034245994419698541233385007140516316263738430421993797228005329641360835342395875185935011029134973641550013936345352437381703949444969891607698955087152883094179236297656783527860744298140493789939042998905779293747670057651030230415448963473471856395152500108590949633074117049195964376895775563539216017096931307850716619438151368498322258926179373743073095555934157395015141533154753560378133613039832251545639533636621638837835527948775897780251033384096878290567266464389146708658067884054444106994197012615607769235879579231933459392978617743985490123837431022222047108211737026214379944606418222249072960970542026434663093477703856748816775856422938025039874842966522393103902738722376151964412849775980004990188402456481844830542543766047941328655835776931286312518955328510343967604744547201385841511827381853773273167453798139058200296376905617533962627675168758884037771872675687334386781550131277638565808823287748130223316994218982579530536797227148456520081861173393963856431016829339655897970853810784391068255318460128803964337332492901865974852133417081020719878545516496778135658016443249267648562210619686486474040499755706320264926447311381199865862470919025460695956370673691194114267186885946958760456932078773316943013802168490233036747407157391046260296290199637413491909639480595425862188876908975260800826256431487892568833404284656632047997412664904136765985476371584343218435499122225136340599313516612888926669797259921697607423233620972322379658545009721856622820385783138017317500942109506814463705357757557073878600277754127487731536650709143719796675676303305652391093525276717176707059835687562260751698474250179809588994056358502504211939017904716490470293761423391624565422474007663016197879482241106344909968452941160729675117841189406357273565874811405906947940209521206147084993238992379239553540419796538228772014509988496733549683174188096041524318939046326582367647694593783763039209548806538492236989433082800716712452646433243460479904806015514336675046517147723237007392981440493856656409649212994197825056201023114648954140697370314306189337253735333080080397799098812990514407986371119153079126336911718017928339615531856742828538176813112718962342678220029995097342847649838657006209590843599121605148454041495745747150742025261032332505870649585202598118781259592883527348785017641042014691216962547575354955587681532280802310904549704723381291554252335382693562102008642633627118701764677530635192793575737316859429517197892520535268900790890090233895738496205359776773658794933675980180340102255465881256885127329273384455046875318599156845844054965820983527645265111389229992446649158630441289226094170956345301362446285052329283349759849036017129927955421861580440301149941446496156280287833207546132975655273422884275611135442012522759359145135171916878798527733035604055223015925254200052698449063010019643271993607668523095846808299250529275046816157284895499890353023826211632756689402758396543449155237368275622191462192831636445766478605865102830032612237854035800221179349511678747272340245023072473006384961444674772098472194238871419129654488639585096888762542777399463803761841548109455989598439660474425363598133349274369356539170073035439853102386207417772231083053191755155169647439776603666425522799540061993555987287356746070991922935191464854175241878440017390597663798240812621767948342293523198468377330176415627644369603525570348175668626103237842294714009019094176580200118921161353091325387482661333965135006678884631435335142059264196878394070950501809944857982463603455004744622261763489663497135864028676422535457961139438070523417285862699561267688199987979801630614089640631925063380827828307849777257150194740886104344524379416064082180947150916517540697958532427123142577691937630171094017445774450998516466880588872711225268306469187299636034377941191614697917130198379693022605098463228538157981086268199536925854026878936784172338445446015081701676456507327734390496545521913206407092585180961928586032595412911793024388161748898437836848017550313565369401318527928655076716289800210716085703316790361842010721518102057080055818099008345802306920578466013948351919633076882887376462385189671270402106922639076828317738029586501897431175615385985483999529904865327823408378086832903903328674424219931020764808682030590301370327603505867149512774112726149657269771562155645309657129193719431569763240240826719981465337837477386190944231546970408814578688750218211091988693925416556421752546776801746550133446467106066751674260436602970452589287151583252236749078320296689331436705834357261664940255360752899733478904814725133702411475769359711885647972672754929103255983144965640364657124768476984194961008233128856747343415365283118028395217818531726585584266447169506280644036446415061796035447354907141251182917214109371969666631012517387935068537216548852855483829885035898426863597217410000175967512116966695022726826789404871625353585729860700492100079250722265114179935729513116953550034640272009880326124965007644707508196734531956213859132679486585983385859562248899462548453986923038399357404748348733426079340070909262912487069631349537251733785542972603991937861518069587644180313284567796517904252848520791118232277009960546162270982004322631151543224604863092987638568656338931801982884512427798354449483581222499866530724701430825004685800864581159049889799506513196639462166232094661090928910082524460538219820451823913633569957931149790626126552782649111092058188277536930859698518161080381567333875243713149181162850705160068150958953884799285475056277891776985359206561740038062467954121698765323933627714830553190400760294006167772118826843619919625435588088127284305946435295309603141736982842105139899053670469241253733272865389656375690554817824787456698253172468238985654526315233081084319642194485562563758756727251944908041463031583637685429677598707230542965852104333056890664914491869893315188286884805136019339024397381395104691179499927574939119347641671043410112113883586225913514693585764528370432859213107193867346003867135231582868522799263747737124462477438599442114628511021393811520031025174589837172318866663550284404689517010360632123445355719405171489494599486116003553254332374917013190118790858518019407065961491591140341060294899754295180680343451047128834126683212262374391627124287087010849403741097933048609707134159881418699592971978250923707517712524428522288424430700626713991776699961543195248555536158657862153825703952032122889706657496691864369586010248506736539801353030853723371012848784534997017497888270993249755287615444975633189682963518818402203383079315002384072082569640163963048571297457649860775254126547152182893512174740482005336076898740110588900465159022657037862838756189923591063621264862361866162582484633283296024046910793101933318972743512656101447189401817599084606151124246603535666920933340338581448038031630183592186491362798704102332962095252717185699248839274220195005761896694431387729188156119284980964053456972135468479649903291889251173141197087744312002255366065688292954293683393095160404169611502845193017002439290130407319839381839042335043364399372653760890498252330232863523783050094407865258115132810224441632990900303747943357275310626043108483530244348034355099440256929521563898198108201854144449308643485706595048853882199537980585536311921854039836578780900356222429218442525712168793438347584966086460978445447703937705707602517157401440151916410811767920705753581560730813851088824774430648343686574257886168324937794768405565553918597316852433227172214938674440727627731771695325966752366751171831555135318534197118656201462008201837528837937943311651282770069655795944744110320015887329083137771572355984918082547018742350220344792937652945885572472039033987142792729016427393431097785751920591806506026284882724547492092344045910451414117339202648899361786320244307665930837140782663631943568180618765444454932209713087286729595032591097251496905869988442866484052678385094256870366774557774345430023611114004461802157927733188978586951010506167054129543265999703716594977057289905212330827874134220229525737616938162512733711004354564021796818993158666869864261356332647146061072356555170335359807748983417088557607509025491000147480507467798940495371488315670464202438705247355084880035414034344854285065345731950341182943963582194471937113399224356569914150930223496549872308910497268851840459543340597155438982566414060150856950115907641854649158031140839662683410973020664115500383443803404238097809333090920272350586250996611051153565242758963550850022393512402500796522528097894183690260642608164053348393930298201475998834289680435964423449570870011782688801850235456860334718596168967941437462002836121395038719442927508949042866640382406468319506627508087311551323780327922222355830453639764406203175809361429570512068671048678948130407090551579594217393849388120708061996740022128259725446456976833403358701822350889504915881991340888646585576260815197106512178998525059951349886637978745512304007664373135322699637947136210175785383901156996748819285038099283415275220008033803946508017715669486080068707977843125584200324417939568316217074201400169504594191982632509311444245931735242653408619341829484070364674313136077772864469912562108931188531772607104251633215107223738820034450444386485328710657314055298988096610555601994494212704395664464266785440159486791256064614076640983439137549459228803410357466845759336527150914472002122669285387777005892754503826846322783139108460304702038461329919145827484212053120127483684361988625836401711967815113609854310080832365324058981448589700302471399223182717375041930904944217870559367994716269624862792499337211922179362693560130719118101922680182202076374345802554920050832080802536264829075146393045481513072914824734941735879637946048383877495735111112769026086195752830631037365512872501516394127751346179873164848168596424488022448489632115042710857092144506749015432177058869672418695548748888727754698653168830291915590427431442656329947192100251940080289036313576711069181082683619504419722519330462077503641141528174218381445113053237084394526309142352373644673418638688156369685562889509311147756187913589071564662043045768254958040881521422138427449730493544003457335077476773342755301894059424153803359043549528126789015861782772219272151953253030885711510200072413403500569103381783226928621551269549002709771609833335205133144751943152409072538875764061099396478188618997132346822198351079702914536879575546009806412385370807332389848215271180124295358755551697135193512056782070269811928925328101802669719680354387579467214286661226776497599876077856872725708192178017697064258578002551070419668609789051494167853075469657114301669175396381409336656113147398903717217487353338671754746949583261152709198463124757300474172728701608169495261296762563420853647850669099230728095738301828312564749223838350348451507161577528831117076597543495801523517828779073145456922490516630041988373709177274044906647547014482655643386116433634118618385989099716719001376690908556442811887533910289951229522135755163702456502445595586218093289453140915306604952121824336122830910559421987276767592630354512887889051919818280648762114545443831579523034931593634718270328794468141047386660597502511227298448847298332045768772556592295007864005619295589888468460942718769314122792268094886128454158156508520015159293210368072211486135924694978023786576518734651472261240195126929673885892317227594424727185771684439863448544223336563429718812880296413297166026455232726916092393708115147844490966282054617048909896763006121300068170176108975674180768380203903215406152955492676944573350036598120753825797228578040238666989754986391764046784152322032061033884165922853876342831783900655745594350381402970612586587024873613082379334706500203756933997186589235889800456754270301528951288401323830340431799148984912795733127905184710959406591571479517758982999289050233074972801957673613917511231646065779698775802844541051404413675242312992902885833873427135577304075066453976169604002089755462144102958160504473321713468670751497130647190901391703916583340225960579206047027900389192386979583862371732324509191699733752757690289538321543769764455740862326876597450439777758575575885386837588309157850934985771457688636074885383143939633232298583614393044366899219392028560742625675196397779652156165067343827281824800665398926865924647284997992845433516964177690058729626206452808947142193594142797032785502439815180503242774703046376850768244835518319381184128800237960483134642032611773975401156911960272320589878545516265680418571617714976883725336514345124487045362736042906405111962888307563467693270697664089257415111843734199372157329904969530943633662462362303277945660542599810002053534522644614427757427227566646688687316851670031000004088544701156068039425116278180055056884320852574240990984074862431667462706141565712996332565170462213986008677649392095653838066914212653846803673815193067436118870065455726138807605181628588881556253784039735413173469240947649481904564440435115444343555310395748046277786833742494545134237862968783344003522474754345179938340019272850349727347942323680727298850763347837655742811121679634643676904324473139538144771932740273558043524903852172806993306742587218385663532430510328246451385030144430742583392513929603374354654509562366989598410347725018519664255579381013087750900167836873326624781943983767848479035361819413620219805202083804125594869996726613702919910387191900366976230612164578589173531278091436965569752706632869105631303942242054223204942726197773458144962056816591901199830938455669447995177148166204672959533835949323169321595968499242369844311240733836610093381496129998674268508269239670439731024673811851941354263312579185688346249240773127941007865263551950851573462420146258272440493647251608466208073207860897924342940899598355439133523376517534667765995783189447462058813149011195843980262540830423373093054552184749305039775293877355136543224669399175258348468496511359261320910488773916075475041613650412082131830640239983798697259103027210830582364041804571983529476915042079645020544864118872849352550138671652649788571401150106471107744733899282572809995071347263413362496674766981046123991663730462361875666880186587630181310915660660930355681372341936543875542981573075721391356530932307427966592475770819967324521103040952422404810802134355766368918081412651815198165503649625793418814703853486206124758491900229241607781412392638038815552798064096029086639392768338957455519704866376516033269361276880970702291127761696791285069078215676222368880898175292184555099548560224231023051324173034610850408367636757284011708029154455509221909733086022951425293695284713174195891641215985990027747979950288158082305388694861105062908631966517709298942478270423026353752219669628312059041174320527080859312638000046279705817283702090778894413383990931524649331782679613445029558549493396031499868416563944535068648873964397560280626732195123678938018772636096145304696021178021348297720732257677837047849211669736598380693764015375386344858435901070576093966062584663977467543838693345709070051137328110903650875489059057994689437784619142016032048523798508279789847326873117793849497499174677116695531505990463288708038310700444337314523666369756503451855010955371378017330494182539144927930062748448940317382264560041624799383463072118854610820449440973260030870702914348258681026103053362789456254901291243990504801499699512474759521671429180360763995356717744379549015150710223842052472881332853503947872487248367774998410210907312317864150200907877756836758782219798914983529812910765972301767542993238368826781842008880336142199230708102057623416027056462626557922454167705781813750699774201835531899112454448377060665605866110563724206044786734754980784757218642109781286092055882669487841824489469081866614930160493997354466686147952777570283143955575770838162179123758233036871909082829519569660070342273817478380112492714301858856328256448391682649635386932392979805507421489966519883955947040962012011386702014163723040817440875408350628918381066538233802654430715468252473270170536731806338501813128781987266864222818927102613614022934387338205337250175925906346843689139397093867585774439377411280059475626091971996986528648011545888188461959544087530600251498577874573226493361039081967502504056781666800555446162814569051295159713907398864807338115484792982871151527233911440559857299151486497776003550485104571235631343642105383154978967664458610432259561023626439408596462967719466841308025623467629151191331096095627883462842410384628855875767408741075405580920989721634016016301531614863862394194673268958578510367972762377467426187336558682690683059524879134789659345446138509148280592756379397705181341162111717955757210355405033967431020153113770076180127018468836723198007149788956956004062768130893361495589455072204299672517073701300753941870314842318378994149438121408628225858285583135133244844393721762367888965202363219332349366119450617300107926179900484904940587247094804254997301174599792577022009071497935599834944930382871604832173884949908792456345870250066639649567944672836775022409859050514947266336330977794012582013989160034927634136238126856132746067168551458547001339867261705468837025863309947613240037241463262035380010636151178851606891821885764904704564174952516224671678610823231948793090674537265807074141674124136184059962934042801567178777598721556802729466512077877531211289251410444299803475510072351014830777967576136915271196658633826953631649322048854366431037028800415130837887520012438888815443953540200933457432539977572973236431652243685680624293334518561416127919251219250406507222403092472026506847795523777290369650613783679789258901497923226656748298943658164341600945252227187354118969597608958394537230007424503377729657224172254213141758423503101414495409639904237123995108023409549890404248859942825160132568474022997533739220848408287491395173411798364902273316761272803487085719674188235490843242188278429049365221413549868320824728013152858006007702150599673786612232936514111067769395672711655884410679950541640256772758112377235362089015892873677487981710185168159483484327981283337045190161454225278354763610061992393940237330073754663705449975860012174246081285904027423473223772308151574735321904308542420537263859775215069766251909791439001602118422016397772738353709557052992421355151603228723118944229883113908522500014884197874597440510657241677962226172915073388736844909659161300333147846895011126090708252229957444738767442301151832440795329611250661190289654040400950144336573788177568633515550140505427779598778682701371777303220228683281131726544266639005789530080174848189677922475469244622180781812100136317103655022061709563232723596181780226694783654101812240294732694617934977414110359348661779153614942164782048434863084990031064655928000814022047490524607431961681993764433751988539973686194931915210987804934785867262505287565107619664282393758521475415684291745568554643383352759431140749386568294064294046540226327605923040812383536332411959778846344361874706933958543197963910900205274002665867829262016568812524017463775512793533357285253369718828678758681278752999851468076098625328556734400826446274590893707477775927990851116733554624949001546850952285395827505761510821228546228803057889480764055556281887653002873531281768100843418712539425703384733672749702832630733974540044941354693380463737331560185789942808429794324691407161814108378012917942559753137693271717084897618002824372549715007785396788639953348942336279250453872670326085189357860795902373700772064943716528470900767368231837409960063906628598734547873806744262760088948574504293289534817840215647270839439377138187344823243760594005250463187873648464393801357368535960348355279267617828466011872720420483124883950113717970680343138618803736387975966602412211326761939940710125502451876559699997856057706175970630944814022628612090707271797859516461726044520245263124542923595869627457873398687486907003811744265196126959761253178391097066902772592992434902963515100362106128566639976704387389684409661281215144337759398609540784644094313622682902503651971959963927982280973987029478757856824974682506528335948436511031221457701838751738101970162939056670158947994888819168434045573767553028210803500769014434649631786789161761268080918324975626108854406811668454213892077709416953509688261664929766526552045973655149557157016371570754164447568906711513112708283100078511874095931593230358925454842258614278904432633221623784125668074904801637180304078460149684553803998437115611696123407298586207303042363348005932030921866949504009541917378043842268754346373228466795903444389369729750505467633009337383522506757915608425207728081645393638138860905350897919031442118036562996472846848904415010286057553872803044917385056826066767047054719945059271981514470476518866634675304015972338192664387744324566382771104937363508070314874242108164265752932435805116849720056606029923147738719195973841691955093222661017893154256676239549468891574980760565338551248735641390706352958295406195097799064498821337699241165136017304533860507092635489155267072825507390990026664317179991367245227339791995137945267625530385763442637648746407571828650275808633427325130166869818590957131831852626669220639152935357877199170853519048336864730343488604819406309407801266688703231555877913534285634244799510817794129628310435726880818741942161363793309969248747479895872674251832483371164047045635499372157776190689333070182017447667110557061569974761419035188066923191632078948427404540178982426960574386658056910440255818780006278653043250700671275007874809439245980510379024706995390013942897739294856179131999170101590078752585763966911461157564800896592812423691673900428130103369387606512736494800417116053509718354885258094338710484631387225521863399854240925549947441601986162210134488443930735928807599728741062994206297255692875846507923438985788506276172613690272360784452514582659626787907602831000210162788980161204675140987717677839677225216678929751365976561400805086595815216845812202256283401090560928158455975133009230983079014362986062418440818272056235672168486688897002927948816963191886520751375964566079189484403457843761368814183116292625006928536342553929403133207501614351444288812318864209713367524939778704212391486106792608212343465534024509790651561275439591067210523780488006328723318495835219552636767079245117458688855855584061317652138907914058646512815603108029591693547637797344563385309810048646709534404475536465751723936270236104235719542476353240570756692204072525139848909667553460682180230275366107018683751087141954115217695932561476419279723993615655576102754879021239264806647280254415197583333422088416727232151615304877097609507906453348581491622733001965910183204870055937599012464806545084001680354011094291993781954231492662579822908788045017744632808368347103166933600957302864569125349570372928465477196872845987544460856132539320117730587806460180450932637062879776665109132921445631762776951130353822409979090205053517311164590030643825124851919635319888008388011198106075294471687042158946073541813065529411093732888287932632053334836216609806395285243867885975713100627093446449797222470032401120112668541993098049189878864566261145435598534186525693709734517620515745687082879699790907660808808531145069024914894868911316254803297252454791304073085936988860432414823992428199445849340806056525924121328058388062698417046648786484102898783907027183709798877036122699747266788710606446394676628858786092151525795785299153342316082533580205797442897460486277915251501807716355418584146087873030622611047203076405471862039405620423558440447686792712823098159959081077085920311043852774963617866667178838846607318875778811789212088772385911113666455677852241974558316106677045966024595811615607369012565214851557070130499924308062667444505431899791852933730887203929904706757562568311924555851636769766938419767274335775285783228366375836550723858227861606145465333550708844744600124852146851530878697791892251552628855626774756965593283556739151892836865329119424346368871085164404637143657752983472517479370027785506235725368397952348592401436440302852173790383657503625871570373241912186599799465674278188925669014285512379368428358010668729729257045892016453822098369307297866235960971914619757039883341647510421954875799885971954559575753523037465170993015549193510438128435839713767122708198977123970964299278180602920747111428996067128581594468697005211694097577193161697252337714775110411782077236488257934452631111927512846115788922154332539718597259307299867049421451266336709501247489290802710909430389501383828614384723646097164432260740813781666407567429077532965485653083460219932349370765746212899679935943551876115957244496952150916763758730591085217285495239640781491836672970789031474659239072600490222967720280404145368648926513734115142000812587123253966251583900822210963626245857679085392633387441118449968980536601927204509313139527832633419382242465428001199405465537485613194326138140969010508388025946867065810000194197782599558655480345636808623193829847665199908909060188020394918451048661142586591021144019946934245090811215325185385513530445301233873374518500230512542363832857467138688605678205844891275688479289430941088346010428542243000750868615764050988492386628185211765767501994298649011024643575824653334824281317437244824582842543310645481004622149125015055715732110579260857166655381895321636870122533092340724368735674631432449148510557982821179234877374452256114773699914492042257222372193919356819325213717271832512078594591669110918595915738610267351296835506698412929832849446756501435936898394924726124546045330817319817839136988302665016679994698545622320455778911018670337897201721989995061653061849504641672121418725372068042297939087157378802839894249045584737585419350760610390451549554160991746292321956554562620263475628628017624704138701095565258437491080581893870851305147078759052845728078974338905791176110129233092681748704116308121054845938028956878863444855498522620468896511895193645658458452959174204316484219005328571065758667977564630550592789351573400747808724178015653785249107354960905736797080479463773307248203558738290991696917970149694629549980199903975472882687409474268864482196801263512856348749763232790308908923904376560231017874239191471905154062716362739662885801991162289201092446289275224530383651140941909949592703706657534218605354153878603636370766039366980368032863477525513665440430396325071382845798288992839965567497626077018951400475531552427998969493720387531080445861194658798858287695525649120290185407784189642523013145488870906448140036828167417161189815412350569274008437753728358176777772330070428726546021523076405362198259953158617558752675097592148719506504948130739132085535828378237063437015614121710450125463385727502694467939870370350291544954936366740364148547378059231204727344383563960172423239245226124195873385167756235001252282385358421314384293666072807253050336169860592064706002565666663152407631593444248542908673975441371866227094667193566697841971782085622795428321045947459379377984026555501394006044697850160832180677720886611362975664575072849909401211489022755246154147241746938020592807547865109993321717959852451653867052331775766554292923725903514775568775291066712926752141542783693211123603995356809371303480521951143299846973312301155809826634728488183142965331518768173090598244690050038142535831214536988907451353110626203235358825949242688121235298961077054313862985282820056642077701529691600049737891625039032128389717280947201815616821694564421301475636169129620788631697642292198480018306916522223320256886434785372279038737189384851109278690243945347267642985380666966357867783787882601550187375438829093800620754479337338094109682979353794542340401162983566434405276170960406222287576385048457862461781810224315661269153963576693225811803888894774256469420850382535849655706788128307062743469086326798129700504271493635293704702099661087119721648567717706007345104154761250593881636350889027779277504717083891912283065777926768298763152533887310857834040933125816141916882054408445273393946636110863017123744363668911611037250395114379422396330921789207502419081169617823609294736045162249450542832823262776983236344000994267465946131735722930955891558906695742384901005296788298180340285209336098594229642601498717370016425399887263727836725327855969604593536131833307133479014904736889811222726758890212102319968364992032629043247591322664940186282409856090984203997245272690144352240271310024650604327708813957570433058149219302807210753213645279484563607257654708521201922076916366100532006385695697297515918860309545515091294371268535168160227224320289883379426075099867492674238548054001984561182772669263487976698034200796041539939340332891490727956522470549149747325155519049095302804474307033983940153350598397932635987752205798892533789380892138375760710144448460316621948171584863224893888428749914352694055235501157593739151404816076880364098706510931962231732052351647344673075168943687213700397716504556330396703795616921776320618711373148263694871685205526024410502208544202728385661310972792549075624262933766539534952959144372373556802690500269690866694148347513255282435489619074584177677418105467104645517067766059354188695507397414391480622539710177635414480323305799574057457371159640118012014441700482548711428379409121537269560507589341129445991600283846409073281426218396717036150369175078026350537536564229284615362983264173611732153237545753610751989735498168065627981426253745978611357964483526845470707227793389190443154235203193104995211338824009573196689978970755756611269529304792393610317938067571998224073813320896950312634883383038780143221266451361893332200648413893877319525679865955608983389907351236335641325273265652697988636700340787213556638991686582483679030682812170757322276472355315062360717086696400098648839305085654674538202686312440648021036218272656177343304416552274985494859479350183039087855807360728195409225414088294915091446896204433969718712583511783026534361216056920704100331916204534949342211790891058319065535637019254861256565745911648609739038266163477254140317369089436380512008320188018106975874441594923713079346080239112060196112229995185520516290045810537882779551118143223055444870834260294996464739469018823329564654358964479672333491000694087986878220544526860438411149402734408129716391589313142130318728041873283601299878771878625775440085345848090602265776901955252451981482624120607800599343073117437357365241626294818357130705570696830937762669914869711748517112663739756444777687523428365359922180099024375704970436438538115801705965167872834908090645073345262270876945459211060925173400776659162927471821172286557147219985088651800180744098066294163304381900107793255771056491972251505697245967427800288462579529826775941189658286285830927194302700520176337230362360177688493497789188803872383949880021034732006480561920930657432550240090590986458486705113241123353952057036279297605498645518057237912406881434504028673580256557216364188055305761264968317077133233488760415426879836472963277803760709252517723754225769409395205536177210430636111132883181291729787171647998202215876582047634852753742143660654637773183579787413333594621676735886396478869188979855627517014267885358845192331408293014274986296283836223294507960301442074771742992745278019880243451200381101724000264932237306378773671267778097435927219630898979608451858711258775767490781037181416165198768341711266215977027129990542584421765522414200199868103280533283710054797702535854163560807334069624898609912111296357175313867848181720828466050342853113687366814618652449917775509009993535191694103929579024310321800217712780780054431613483554912335150933464505225488855906770216049675193869179547138386945782910433947689636189607433740003919105860441063886261039104797820654878922142905172338651190927735826912702949598758956559429652316103532335762963831544473066873925944998789247600392584144626044139062354494863924405687692563378031418212266862370291847414084595639308840921017420530804979085758447655405180132666201613850439726504406404855050828667031572089848462185912549155999455595705848800661107677532132820942472703032416802645113657139351391206591610136845550775762480379075403519732963186357722218925332716089127557879477571032544936144571531997068036933885014302543375519647748159518834669014202627994138087711886186612927000237317550295227082438072947623364766282854997780607865752486063551429846168193640997098215766204078850261929263470024593747797615887806936142700219714147040574783131664381131910658010097161689686951411903369101007786436042938073969508456558613277740523759095477300207314241301156874544516780672535426276751882328164674214563124404807617685009290323632126542566775409152157441689143226449602214110417967586118783934782661650676256658233368495654284170465665950025917131816680523930016633785113093792358116007320046544789363346818450939838417137513458274694770206914607776386255487770257769489927441497943840918741606649765634783331505757302804441892812298267952203901378257625343686916713417186536374581504502950867272554189934948958751426169885150275795205784053226223984463751700526957499191249951558490091774368338739855428107664900352476462753452922338286303587391539596487992111090120378207624302115989949871914122383689553046097528845510468115713419591651229614194656769149949908151028316267957527005858744173853245907068057121669902970012262673676344773010504447114880680906410911683902361552871367938256439133594279819219233225275238007593498247706561136268534057878126602024204029267344638243551913209674769495548889085830648540604337217711456033466533303826560674150816286194344482737331020048737816832964159375446844248302991959857399138752969787021895998412913448813242252766232458993023110694731556775224921557198810294500699646912831135044302708289561120180102939099289549189065922727943894960548021316524683043175805924457543986262127060492330969169242492608961054458035567903842844261595575866274722595605689808803969960303123422293845060006139062310042363944613928299699703962495693009218070087606006010828640716801382516184695567817846502644091115286357168319635286550910640810554381321633155433023462387869648730108858636168847928836433659733210719131060267030519035193912114468238518292714343561248585432102517895361161253316285324298026043550044911535542554993174855908348053221221402288455078106762523123159263854983788017482255218739607595278235026691832330240014190743145205198174086629856324661357743304055365256538062833316455495232469552761235084990335356934651904795684019610858342002659383819643000097332579595205258562249385884031049290686178708728178228315266488449290942736670615552199713350001793621806316114612156200244118131143112815854276439930165172637276859631417492214987911561254212739030783987621639506156504838392762908717290062316862947913482733731192065679493896494749955113521762065291062286290662873921232869227446375087172900019770274125163940827315370720686760019422060710888836720396664613249121460351965771718767926707379204754688310323180996832504432139023079404739964415732928319349181370728439155252160492454160777933194289978714520601827872739589061782794704570233600996145357295619303179930752225316093922577330349019032481160743066733222496076676961956128255008474486164513433340558572113586623898796394020675265639571156939309039868711289697831259838910430532894037528291144848646064872280380571688888278204270252727773764364437666155922919392075134182206753548200227822926639969260424386664518580984724827437274715060503596926757630161151806870565932143850883353963309512355205102012213168064503856210462567893819289903874885142824792346117859829946340034626017333965768476889670048026254419141884245264603093694011626695417054029606153375397503633770207225141773240273068797745329770802118868766194497799967988893214553327905112160093501085009756402779535672548293532261831779513254261473817850045323837853984480952453798297905633646015517847710012884160327525384777090651149322388168422399857047093500187800856907650878684147515610674298541484140564087486516682253914387352197557734816321912060578534505199302734459304670873070900893993986253664855005077442020674111650583096902301067051692757754515030617852000334002641300103750707517202516215695164797031477555402612420099131426443658498434141743982053230331046164827504613071737298200775648595070839201404435363700700667383901905395523383549727674475525702541871356575268049389347728046694989102450671102486229285364360565549657980540896736292351346209963012426507318665367599679898940554432433031825121595666002759174917357411795994763642429583721192894594200012942278567970840163719850786169996152805983821184229471098647203647727468954745384970178509309719571049313124091407570341898188595009742393042803875906022191957276331248476550334804288069956295317895715158978245458573774599905996497068844324692603671437814029053576433983837924993143692618903745269593422318807467787968487140927192115564405516559197554759461653991693976168562157873044133219266092988354562033570162868701661217782015535658745410714208684087291185081604454838913202251454184599473213015898492409299632831882635470234456359519893670018818495507578193438095824437093892464448334235307843778888414763333848588192277099111615171262346141507352882290179274331302738900126421090067035265197863969099552368591066360603306968632631168410484609852653405451101706664394186237964229966056040207118436128017374082289400791921222066028461169520405876756229041893370730157912920955846318651470542723603987029069430218263943118520886972240498388082412536005137155663318446812913499357154476742256689682050922412218647554181314595825534321314544473381892813127453375208070421573552576445253192255998149562147604805474521546854306428455439034818956445146906063449786147248994843412482633135716472573799404269962498495500029965780485799850293355017541154253036753807502128671410675193159377593340726577392600015737347198002475584950059494265947257475569512635984258238190714161555453846521799869469755620842599720040394872239984224893512344878907464440280003689836358351366274472501239697035282993561725590804550623050824114631312187859319962479086035251447674213204679385891723773573450369797648974037839145974515686421301432102438100388153255846865706599725317483195952849176247016131808225048889822919519016735289160175765760049126837166374289708296781546005187345450789112361142712795874068114292167922663275835567140218537395721378436487898152745042785981459379518899905231501872861229762115064979381481967921749723317317108412698691665021006066415994238140153086569551791653856055482432325574636538895881603605051172870441520426278858278299224531832473438884423175004378060720488383601166170821946329385486999634647939987127412693356627989637300413384199000453312162229686505673267283026075906284976171273292487575823341273094475029382285142003524293289792619683234506816654755837284551526944647995519939248873006678936045291778207714570655624473357914883711041397323431465518344906558086475568173755900939527149161159549879197298961838213085722574782193099857608909305040323402668512860776225646290502815763268512075404793378250820347873843565950964503557500993359948432986492065061307375079615282522303533423011181934786110561593731670584839691130616506744564747732518785490935949327256833274578350268936269848053817687982502179487025692708689197660596805096536380602439561830951566153513705074869330480654048583515041695350743225053780378761773241329883612875057982060840903613096882572915238629686883621393943644581825130512420255150851226791524693063123185683441258915463675062481889749420560273318149283524437991030509627818206110011276273310486124526390070585261597598673229994981396152894165687051961033317339093330655692316250352339546712677376240889463424638020208824683139555101229338425803589008083371935949040414302213022814795333892763427480370497244047915227630135583337001782833541345022844830088917917250998139760189919849924850336741922055390450993498845773556884804194894281203019780005315850773767687930197707519465779712893375559391581852102678826314200833908549033282874347571634764545671191552065927619583365706257767627660682263533219614577294250745588941604663675179665690965207182476175480930874773272373500615881547328575147151568201276577878248487392350465447051186097530281651088703776046579199980357005350559395866192175452073612745751992022446979467145024832468290077510180433511151487387939751854846616802660647052614573079706079192780174447877684556699993275250457514002032281531998144880578788598325141204307357522380096602266457336911344903092423920912330146865322716186400701318554739527805047879097548624110069474461215747613813904026195768329320175240815941992033253568956850842621868450801019769561988310565649090409183136135326138159092601695358924223670829468534643879830669446757524120349884503961594018347643252967458336044067996900103112149733704164594349942311968789497405584847890878605739211475565144558972080530626876210413153345498645916883240947648790554379451490274077432998948667413226592166533356954300605396012035657259568162845785966546792001257181809012615817151819776067192233834749438625620197115014887566774187743724662446937146251554144481767414040284835649305458353271485499872765623479615799518340982067525471204285997926981955453670075750694513791985226171426701063798632436489130405608092998300311886022262740758203679680762859961334970661856566069722947302273842622883350570444042914979511129523761718315341317766121501587137219420668551305622652137358657150421425314815297051824341895001121351656305778102536649350027202923773289486606654845511530891403298756413078615439314664409182479863957643077232656537789213485137212203844614305453849591845504599518028927606776032931579354887851576700086359388632957415558950599572003808170638696412921493961797004195089144902808102437896622794434284802987250337110385942844938731030550876969229418622047230207162695342377312020057621531616254813282205785988621898592087682828345969502098617000674066622035086702882785647055492780671161985014111751802497379931015300574955176071249469112638363749906253131899805984161726740599584782648007387554017141286736202141961252864443645013302892718898987023182173855098093664179446762035450995061297990585836434607227730628640485356678976759325946090466631145824945863179847857500301524048704742135530728236785913398301496527844923925445193359152725680430499477131353093548073164210218162832114726184636522094940018167865019486124993372467452845095771858093509198340468880920536897377403626468772664622394825696919700274286624579327462812632921745695233543034681246734781682256828429100231364972303661724223235269633267128768926194129123393596765747048056593835650803991728883605511860186953483143617089660153282915831996345678425068120908669453693329118522418279981370017978046462209013298729502559898716614990851033618461496396238691580357566482293076846494365162412448564663779808760807606211165180745778630159370589987687854407586722590335548831360147497865868003462633932153721417771987092292117022664837728189275915137302647548058635529261362136847707772189464895622918884153538133660942297296609505136948172207143772195779782412167992691588088191619235160055535072755708257675066853372049803947409450195313115000719578120077920356084337854204539072731382778559568078113370740866486553251736859194278141017338007742838547056601475757414910196572694703815952926956086943184563753262415723635912333952357197564944386887626549484439354594144628886541349952106279776434572101962686170377590522692982924723520673411653116527621746080797110892805314771547764799591904492534030088876438858959031031651929889673573708298580319581122755782552035506595201402879043756366063544328738755525687820209470436110389237212944712786094493462600904051319644553686209095737726243380603445247920265477901967070759504704457547063176538114520411460328575525215087133348288063818925895962725103587244939880256859786061650980230271482914178815317608690737683709049577397290035128212761496042883660912348652153091708234131675193059252714417536228745902474928171674222919773741000410657562359691027880081790094052176502632485616290856977636033479375436655716284524482724729109589740476734349470279920137216749331280939701034834734357566420464547646808838741291288887980735549236518215947869472003871576921053079459720652857157095949562490888655396086883743163582950441107497290901708396951553506451575089832917154454873975301513176547720200902365635685454563439459871026351366995446154338471480911152648658689608971608474638031669252516608202915767994487555805059038473259143083045557265691015568354520420815861582559152460313021279862742876498038840878331136895485613378930372283408037290831859587430634942404504979193632818690594264848236918118999426940277886342027902899922196098638693705116776540061476498948960708653810534949056011691812301518471208544017195822139164241694519430034318471998347854728972400127056441958062904166338066127955047670326663827663140893628558619674668575359057258832002728395286050444010256797686819614258983850960527436141917144890831756833484417185834015188253102844953534679579401153905843139780043334338845280228021358808698402880974546132461299414737407494573851625032190818712934989937024180882691998525557177160985200056498523214449882864514716455233716551648556188270832935350514297697588161410460237645159206492528020992465687630192171652720560940839020867520666884248562747514970248458605707599400030986136829880627873616530711026197100156040008388400689031198700486147517621000139097315219812832723333363815188101211530408293526891008727639591651633924673684023111283083463761778084806402736810472484334656224472833868247799474120043416180231149368623046458147919296693009406871043445392465208868162052961056646367377399195622879834801848723545414578849786529260448365226268988727255512114786240383658310896029459427181670114367310123890082453023834006798954354368166574373947473741224805330702960738673759960266497573278601978890625367511645933819247799932982588146025472574872447748641394951152959576518819675832647294977413002701596613452696334057744538587614007001927762618242692563383777636422786457120954896909420943757997496948008506230496454786767067303935507463098501029444741866836931407044152351818727395707322622794832226774177055874533364518379921164582346957197904664317299454097508500755541558397829256534722399088255573926491375543345603279261616428465809428512130162745138767322192455580007697004904565516280517637895990093604023310631403848454420969281302117407169309955471297557596298039769157979061556234567811211929135034639731607037357839053519445984020259237834803642588169521750500292933783453329504761464384958645622059405514156881884421221255878785812519728678806661942141672972854882736535412432630958946766595524552500369689437246372401278772411867624966589908059364319919862988343408076387228341225943398042285995782127824843267131393793186801447101382839573653804510104113351938599533976464952542571219864571008467516738601553128120806257540243970126734078421743345332751095273737230649597792125504359237973739323482502740589030058946516114116886621658929597940030379892872340964823127536685793799824222845853999253037449816510139807751284024583233872398784846114761840679388791275004399898953515450834392943457683454373967842973402193608631017934920312289917423599678580917072131055632017686902123139030685008100689749788381495200327293260295438763081394332246055607774279749865816450398251527456818000326541227525577222170300977169475917481507410124813976833221991948396725181099112106266385869048701437508480491393356351329353146337468158240576120946313445196504301564761622988414836115919285529214738615571881171404006723181845819191230459324979784613316650350180964135510669595990144214982871067582522101765811420618675238038472996093260198189794605772850141905143334657622157834911727494600217120109508714856823061897547192984085376631842255761473770855238360478892201578909306504464586644737182770413610056328951090873658571624092356298541535623832268087760278962235621291517314332430196053207669565679499287153644887661936674928437534761542925167341575498795085737651679887467155010438282076411367533102478547951503694264892783591228700062367133877089360396714546314586940690427494637219118480151458631956472803284946628334045691127729987292583502274640125867187666526705848558984059394344646460813275664057235997004808093461157982636566515754495607982668794340303693364478614582236532946270967358455328983965928117139977607196658285423375930536818213194959595949908139354943131205687064396820689386400608999114929200082691695070954552816147588320274535769608808122959041979987372823430460838216010724820618607852762277860105577727785772860783591839340503482756883100580252381528884855577740897699660668017257364789819098871262748500460313800358283276702265646232893633116302555612787877340425965117127024531241311055020567686467708149671247884755262713080866773349110365106670932217968182616196700082232748321417500300563392117563665933920002196211838155276812240291186595921660187755322984546964669800309259530793956881943282806302249266922636898571808365529247188038650070807108596197113844959737031410676079114703760780656794702962988364443701951916690107732724976098232666777934768196258646139462764773124281176188837364614400123157502575086788463045217374740639344779641623032804366233648160744269237174797162454110452037778574539542465765322221348174215110365513744026252260574097213736005082879787878619883782261738395643519107786571705774128853125819064725021430991757970291298941871175235740690543095981907311642315228275365268131463657555835900286736724273749040203447713994376015168995711998855693897774362870009302731641116990198804181875367083485505847914032372987819038212987938544146382768673801842694753840495956784283996210237536500345877886773918190093334249836241481926753963978224438123780056046122305499599720813540005824132363198739002563095881322020643007854862103298776498915279413538006707177990414594876390031445996988652954865687447690200888623833080623003640480488732595739795222690097836298641604092223964115227201822190641628186315970658246795044048231741899438772706577074174605679890333755285784798617884278612547684494716633222753810797730930282611830877328631642234036972072833702798693016185917802610742167388058371952342348376918992413200666327394382382741017890918570211426191100697347195280041323206199543694492323933288296497681701723825850448797360475527307806263007806505453482880498345173509021300221976037434466442550897386158230388793108352647616036331588222033389002527219423175183796374285363654056009007660270616790101674211891936599842335842635917083380525961366176424517845228815925520768931205784911231393387206003622942558744334316949108933919787051380536553473404794297264675503320048656555058648386221140624215924383312014264736410981311192000769161615189324131943494835903828569168202376109541632361594823628689374082060871219510438155855596683698266842285187084879101360344920729229917913782550201210305459865539295003070573274677936568008930289328593321570037410086113656335023031690862368061018156023516036616761432767153184581284848066155273037223413943255055795761683749795106121604449450598959980721678243183449696290958519073848096754059862364760532146833177487776697102862077834750525403802953963223996032874774969479086578969747113518957487105791011980967223093788011081522003736657248542698122788727539770859713711676781510353317976774979139756705418922652242998458327017079584516960755243705122058317180587452792210086834018570893736889511301329402446771733153284047913403593844381666718418628072428932311634420733478776733322654647526318108923775815163190490210153302480983413587037938119459026368772353888069988887623001686833986118032872410227358562574418016478872742582958549586455051115970562438144665766033115589267559398034775313101724594182677410408793435281879200679144088707811159865725872726292075475815923788398040694953918708870677267394123918124499969688563668877518488660845763131629126859516968922499142534949624514020557407985971071208905874061227568052615896650636974441523437377549667538704288738762593022258299118144747734474735759336837157476311158949554563093003013706828064647483406874260819382653379547479448047439420978837091995966495993837000340735135404797025073627640777143805662747698003229331779178943821360693790305762689405290507181104943332252233027631982049437694245154113058406878300351767644918424895984592145761819264333234161875135482674397553385633743546986434399495923457715196401365631762361135471164913774820555271422140754184864669621036241012582706282391751287514329480689740963284288362106344748719721997241779045466548750156034124989896309440701015621126370841306834359892317594413099419620382732178467335621445365852501842583842531737666924355604915821270265690002962439543295659390921413804214709268940538511112964282669926453355566403895337549681690125802042433373576153003169315148214404794075459890375877111597249255939148723853614009260458396476623725266721266947983230444588138352099204877025578408833884403314348897619282630845276946096113511811958214010116845993551224838009111746812954019923604851080587439160024728627905057223912674669236077808122857653683446651956979870910148726292789674691013580846016464175884013872927245386062260065231998622592239813276102890053675167142777941877005735740054062726207348267573445622494264170382096476550072434256018055883549867012972219782433642553258688621569253898465076252753416001185697562612122245386141255765393044961839842311712924220119021428065245864729582592433443900242264267700855593642927835811488984906488144314851586496714282453467873513639825987975730908140440753835221377916900161214992180762196524870024915267131171181290293628211222653086827347475326279308774969230003384697256944586287170561031120205097878078837546807907464554344249301755364917513545370476728472337822022836334657147840500241221962154326372635368073490376639354445035267583498815564748762942813770435286532656157666845516794863338604738940128715793973829216060970544667840603199111154454704628496833972146138320133584437193490900523569199778620345022638673735812461259840538460662645714564576240042603736008906425755646416857228765379298575932067209712703658532276709430941780908554415754252290443283310864344321814415592998479885452923776114140114060777439058698284049340968937506691160640520700287512858281103403782182243283367896400782986570501131162175910257563322873078349874226936837999007783964922145934610416529842308792174533954031789814611819788582502845707633345600275875952195385318070320308974152046530427104221201309081817833222343002539750328285064291374713992693012927214220105023511234255470127105562564016496418340297977601475953756787387050476719977446464237578476096284237164403670172268844010788806901386991927252367055083450284079156099314959963319048099297057442188670241518822532155716765380344901938626950166666475458042172999098933569600509263066768829898308426773269864974488959379381933228399733621303478768120331718825461771690895049374337348655365773837896671646608378527607514364426829544596167255937626297267333626386321897993546637394290212564236283800233079349179611857437848050418405669971349700395760731113720460004377247579155046902352574685677445680986135414947366279011589028611169419507080832037164447333372742266050467116529503200359663870439975767572258760080705568037472768425400024596443772387622250479531846125976960496147016632269200403308666817441590998106974974504893263799749480222429565317477426173390914484852456319143053144102519021542262369200970752246358296900589750381311779656090000421403885618249777075833829344957418965553027404728295012910351124386462996053805247727666824215680517741732770705543318140446418266092283342038720361615234525373697328798924928432436286113759146840151630537174307205033186427066121784743310830627011071112649570688692303566266084210526663465416935720357335519518404867746653588727999119427994793692464601046179365362848734169063151401315817980006093404391128597905372701349163066550397334679678421318009932834815276013929570534407417148780189293041913710152617000061153106120822536757723249306688576126145338121636166831660826268026961677810767829445291683120250773714136380579574149019149800869150872505517882096271023150549522857729204989828530618702435201901056271442732834663182928124182917289722236285962289531399230789461736188125931403933718396686437174891233234132677601810696340500232432358396712080969655095551774931340061628397444287760903727061270968725619601257528599893198550307704628464104839320137950209380391770162881136364920642373860609269303651943039341547680613501906624566190918523546048646788542753882701237321235381592035360839374373849996568864884530365107058416754910932147407383334599646877211028796696524624364283258644898096027270268749817991972463676164553598298590114615445034059303615006013691867367976151204638662284757823139372333742054689178653108874498056744169868865987106965356187492036064654074396371362273266560883313208914478928606372850587709719976096642416707958578878841778561730404083769724352724842940254366359081760152837882509178218166476169677015752919787956039692664107588442344168465364632272351832068624876645437364143602269057809736651013465451462250465353022949560408551303320159554574344439412359960934808214589041475078344235903270124432539480005323974608016240364720841837977154963433883236719206561775793227046856366834503588746778181398932713032220346554647726095201490430360580898274814011827273210785406042394579209334908430716101887434627716353764048305723166623423377147307907997902083585620035140230390284555900703846299634355046058962864349597997582442174304485265698737170270340293880303381021017973577222022958752799203794522930639329692180249353958833817563926374921380303533321999778565642424145728591775791649751135481542531239302104009502697556726229138442044235834432566959277059501107954508928522185695062180422106940572197250518698399224250342694937420611481935473790401328039103748342196572503958313936967996281809033703855985542666897446297169970376388222120933131207014438918840895012975698011146342089658845560743027540456343720921048596900737545271267699000031327192822676984473505049787137611672942375624872719912045045210621826787436973270143312057099087868090471222607639395358373993115808382563252816916577359640761657948644182872164190260580721995110013048403099984451150805929376506847428797412116077333551420060964728051553484770265758684965105531708842580533025512709746622016507184266574276299103635715225235952152289701909880784423358031696364738923929029272807977294659122277896058456236283933237171687666789463972816069705504426750856521085836481022616788974382776936130952350361118563944778153282100072850770949866681213138691512932375311502318423463968705163823014340829820000427143856208147545450549206997601303601405878731237731085083150187967690904219076940555649161950182167604731294597070119384603470250575241750214244064594379277651273461948482156147652339489791472939158029829670869750251075208120291187315179641905359071301845601766137176064923856836419447403877796149732711306943700840911705231592673944596823495361156225828289723112599686465951907775366784688106531172830794111773905788608442217679323009400724268589393075331042959291354060482090396592927029583028909059828553382444837373552615115615843286712465397737487759999647670613349686081982576062912997121650085956340890819713224690425749457461917655780546438041462627524340236535842010159655501263568933624199950439621004356661287286134695780682436066799127051307979181415837757271176752223953512245298750340592171970487687732686851650233447101198661297900424773112080698762170066240057294686278215813521495282747921339624813353395951622426649702955454574612352724743318348626150939393628841401630018245594892961012514322042648802401678838169526266110226794609627311372498485352040505951692730794060317131949876280307853444065727870925225911037467462324768384844759299886404065943973355791220733102739604569888200377390546621256794202261817292000590414357793467279830084662980977513607234047665027782649931517561683541914318620119411452032585202743501381380362408973774623667763476051802085441676903999876758226297933629048121068380015180856281642832557420998153911981877658005123988278504774845034172436046096272221520758107595698645801100887192281042629017571115134602358901997356955261427647436057323395857331351891733398988064487818334270877717376377195937151630789371751749236224551385539859222422480607931082180703623449086781365807036216903499007813576283750012706377726268257562220019299638490115310573944079958414979614806097207012436737385487084931773496151653775193071318652341495042868796295857659859490170368182903241066022914055619976243647942860450099205037152839651149754210428765988180291419309591024847206702023324544017225209387090329651080703068718129019887812395726000611886813928334473605969038497739481981599041018037852242438959881398467933380023452507397409418225547983790396780389957263513441980614040191964998438364610900634704207991635645785518939815850712872771475302577026673913071366155436612001782055366462130636509299855136749026201184773822138390287349377913555066408602587489058491545405873471840534151484680171812937896421965473415968995200326221980140308998124101359276807356304005431792973701412498422638138041344464393533986334838683949586619253209447530792381450055899249543956485785651683279106442515033218776009375338603395294805801691904609860476867202663793130810078623576620562960359540801676781300174602502852784082568773029200107540899486122664763614081323906545272268669473345064232041363951607287029451661172383575256124989004279279548964021330289159661178314610807885774720398959575682731229232433220905163401412850019010086610329595292984367693387049849195458560379649472617822032686070902809100461485653619751155501519090166347780661859906286100642234885602381669124939134289300115586708377705722453984221374354225722664746508785556634851655211877529489076471079124362670191338389305095922071743119323180922465921680461652179939972047989994047413572445970459442473450461922491014550912826043465981392496498033256549502672794461443076054271703311509593890350758707741502506849449805718496312054919411133855749544941597678773679771677334995830053587050258321909939561783324474183173064590494168349981598748813568103689652386605452660726266327975192427021841495155292405768401996036656928561908546351483693394232967620054344512659173642516981385149315189231169420801916119226716031329044083302493983737315525284859600120818306443203405114601285117041545240545158762936782977867496778093887292587381695858086824731990329660538180216712365620677306929721271091080151066397685682966389787611062961711094811108571683479532235376707006463722037018856335370555753539439569761446358198194443823998441333288786812080040490067810309291940197980747001408018229883605370460561714801259386997330962046792244766535656250891871783974679609608326506125404104856338514812901104772395000409760894856574495032757695522983128863786036853567282118456486097122176631916083762648539198728102691461137064832530648430179658044434481242163687302419154246611269817943981768451773698202047694626466513372280264755464475481731163124598546252843528522423991905396313098961426300697928692191448104661909279150286974190421390333466213402115357383198977269352210317276746763868148093610566535015571185188256812786989476898685112938470544001656684154311350101438040510451678888396784741725604980969260463864189889787587408812097246507734392786769766942452096619167184707208483022196409881662233973370454522671274385758494465094069500200723361060963134657861741314440814865073194012471602239869683606503860715407865044956454972121361744002511722636883922404744921054993967157447853102145592350167360178594755949258438639444293097494858447024430182961329589874297064483305381272210974307437138745215533856345605995209587566304614524531901111385232215542510723709946314128661515406891496769580792398377396917919355939809395423480047507200720504526693955855954340265594116618774043245637010057383532522751385549028404704626276549398801314020898158441020061946793762049535597103078660308287587892254603055580548076327118121039060473326205118799550604967594860373582988933072218207885867488009863667770213424590586316025762678606010604862388639291329935519179518228724590792943057027210021519140287656251614083589460874242283711586531619719437275747122286050704256603320340541538553332693777362228918814891823246396340766531860348790547635780436539802793292081377438035557406039206308008869846265628044609257440206006848650993296971477819543342096013013522284697733971419512485774357792269412704073885136330028026307039116629372835259155078578676634623515191524523287189776436489502502822387377830362229617184629834596431637576563831953506234039626319785290087799122975058128647087727451852686888877952709355534289266161490609782747538244660855867613781870300971241696522293043247967215130033854876727042294497578604820542753248871183288342274175508670374163881081674282849311154089856938512537116678471787799811366623790991676040209416645142214032986268194024652663899558695791623943166404528782198046222641296122063452936363561650108133147382326773578729982414451371509608997305111693116697954480595371638739566888413339264551087953356595802534342926262758414454743977935588412513039503142515615318190420942122773545291131919325053156892333341380563710126975750957742930816324421725056424230178365621949410788937907500451348438489053088821676610119462416676636547232730401697783357169211116001913917448210856195882323450730641708379197559701415407457010861867337863280431813970334341668125231728932882015862179647629327370612729449931498872043051039483495945970740044046099132289747317346083006689050867466553333519750906156967262805834479905901068083304374175235655763496270457651513024707261709768014090796990434687117480158237898157541044510921437389951763963401609438939427121755294280819027976985841061929668809434975464766186896602669237362678913809505093632960374851678173180746912662969736357152417507517853877654800731942835747838978168863065369702969470373541785684703826822804721333364129793853900329873151264977310657358145191993241878471811806734387955281883335169853583760581161682731569114201407492477853495434821650906056921173973283796361297339139414157185647956874656256087974637249198975858966693850640643514849828707845068492364292831640592732398278634459402265440161695282412497487972388767649129363305650810700344198071784715817618704255487417126160385998028382679754762656854837311543875452596158246707651852066227516625809051114606882387520130409145591617070943224506354304883272171764338750212485740219107175544964624812234041856607954754698806412038946918697724045926922004524061523252707392078212637968348452328918546760304309327839187331740113901766578014733589868330177063481730873594108152393998642915318450667944170544087914275727438928176961476543751827948482032170745714983653765807906072760228511210416332288309066928873296756947307619866125991074915814474558547016217944324246850568550902654978666976733709689242583879896892408826583647539616567357617903776509863583766115148326923123151146508536086132442759672280577620279845689146426018182299168577057173015827549033444002243166602294671315554124781933791009934884558570999762014441490906182294538790645814856791071937448321121778403224919639340303793015699441159531013054688509909159202504554695453906528449813056873829790839051023935993710203749834694715624341244217727067921638023294761261256886642817750705408321108288825471891354171024554913499773594964499365146856775604948953019890717177475013255704871443876411349640170084170183691316233965090872649908565968934946776628362188972604748442290636275821899935190848616029461672081210095745926788917081585770142524057212887619406891780984600406516403087074700478340343700895564024536768678664338693543244113493291956781172662785218667453300027237857360961318887313222473197351178183144906104695322859834344136920105480565884527736008263027893406012001662330513340138814090232324472947284788908247055127109383178039331641428462903598658854682603471592348004667962300081527848278109135742654424854082891806121087079705989482407660821599625435119343435283063052637114430038602150121935051108011463890761639126959200287886404440448642078792104908585658365277926568081656877026644645499372756136400189827072910901149672431549584782678862941971839078028832147355583757259131469780999618307470486211709639825738795163424616279706456629168421313839264706044175602133356731534490420659486145008224143765428661467294778438844278724443879447011798267716398046270207404530326290592128848989461339457335090916313575394243440941090886114475641207388707253615133608989702443456109036088198600970326686189463980748145848225736171869442518092665072480181157298392607915760228640669691351195917341401470899402854322612011314651519594190675193043110772008362514582232295514006652676756611802533719982313299471847185999494791437863034843694337707812408897780774511733902530798049024613765772660435761038851421770506998329971053094475833197356884270448259976606992384809520591000282946744486653319321695294477545902734319838474417639435313838084854818162421556976606256633405794588199816186181789805834178064959062746174088491773919875019294639186547441270894817199858904259246741171714822608383383651639056155810733071105095290797132522606424451020161395816268389876743155712390439072428978507531690980977267525545096246067513399571146065712960109779463134247189146153069480666593014127212163732357861572366449635356982892403094310653395600613429400146918828202877073715177581209303202543264500878634449983400720258652508114891214112122674859173264048820038461822968484850674070672714666988165592854522305956547460544763764013633223649022396771660172227882357149343965054533799433359131054364466034793544864707377915485147716770074185193008117749878511568473894852058233750218125338074386552822706889650856333743653835904082261616701845155611102181406139000091527906342266913242640269870589172898679959390952546440129262771009532479712692723616326986700450605672278056717619075547221984589522422368626269421747190042655315618766520269030790647478013219002500236279573005128777456131699594669220050150384580002452328908322904865417936284196376862963563420588794400468007171306307980777776490228721467519890687959429849031711341105219742852413822824694922806804062372053331346536294647835450136674296521439744628346804180336157175726947780328414737188140638326960637009818221711337977040295945320270654102676787525447067702515394044620552991321102171892397847918122952902152720787994510130628935539827060870702265381501147315051272338773733433799704436164147591388831115051142655774858107060387095922308806657987450395269140951749763811976194141602662527534252676174232431429913958364455089800626909461484465500657672769981492085863967312856593125545840564642137758258151151633965079013084883504178745949746791876625903118941933267018125709060675058886841493049387997013165584838734167356624314223320161107269024619895465425920724557736704441142984634344604766924581880435173429082696973617679908081922125127552879956330134683097239910444662712892343707960741410266624387581082841595672980609125567556839161970470049447613283707133680891922246321616506110600185838791356819048395710928346710069192764102479880159615330905253821699959221807756838357875345695263974367002993474149448700511865763647653501083009928639667620599886705221500052869142138626754551354473410988058373142430335344707829684886085286279852001710158987317476560116073206461807147440827415139033675259716800690238804289480612839008432047665059414132596331862750134409911530737286344045811520393196601126991073545800023717270825778649005145975362507397645415228279753741692278700513151575372351563800291308506048404842457063629027556750813111920694720575001895568140786394589597707966883888210812721406535613686742856886271910107847893527579053018711082686521398628117472998652194149589973080813996031972181113760944070514189919760265941395358948910220560222509002319217150249319310512005259234123572902877502667081289972002516184275988900261129118511547671984204657295476192617974319952426624789425706165387002059981668159117837712747254963665962340908953862489257737048141346593565224680723150513086411054476076280127875362200272130997734095661128403855778203809488493871700682270630622333678551564327950560531772439214326503068890362069469504199518737559855452520778846375222483700093100357296076950451548674371668052017032070312802950128151463800369676761477210154686055975230311273297303266129586096166885994421465181254325225308312421029192257847451534903646957395590281155391301518469400094877732200669215361304534708262120653536836959820234306136840565031132985298707337240432078748269966682019255858152553768295004288768755897907708163734063542688851156655453234391705808501545725639522843210238393607703556872248643680499099753494247576299565647256702101018070280061578047525201132862182213336477516265207029205005093223561637573173722312331034984494523107747597154501008507029121554617179631876022895844733716668724058730448488132925699381322606281213754737810722445736050197755159561973874874478648677286122278845570832728717026229137778791910791215963953466169324375258833564128391210850029625761535006613415255446164804718533325189242328602655332790845789620094775930748948448555921554380542788462195355400837509126330498557784439933587245317738132290727912712840071042703299076117388905467476431612393757672711787691872545116442216059925073796491322158290569584786563843037783201598265524069234176709679320584743179733170384515835107878120970803438970434848180168768181207040782337723700462154034693715220324707497494743849399408633655073621072762558827659570732437726901677400811976738742490980061955482076906391954653482701122937078775204428878151737769696147529945498782530744954242785355612779387940012643368940991734340529363510505038117154817794856563378141592583940197071186843912400891993267062571322032485009238860485959553127472347680832042779351386257987753282278922452640512064441337136733397936122463051495191803994219274327460903534142780790817408466934695361775239104433738624666716744179161058494683384847065487008384237045439156773442527649988285688481171687377197701179423874055260564565754639070005006738615506788644527961395035417770257316812771548583989476447906544526531290603560296744962984068483950734678912571502807030354915846980537756642604283743149815621191887722753826637781836200388951260559929197606115510556288905174865640278931716374505231477898175235868917842965141306706346333925702863277912465014925857445832239660060725298403375834623910351969227225840557715336590163726469971105811861557018514559191979772203637676677388610673605800019492190523724319513072770326884030994992338615424037029518765938226193728275162301477689002892436804869791702618916487504082992444302454738901224025786687492421186769804542584472411381628872157821519882724794860670834722637489190767723950226333164027559401415878434551383566205045460026936900552522270955721030499882651272469619409657398265889860868438164594101520294497056506939860589771381437474373722124018907649000623820164824322226203624336095361385824917737670359923239601962491272945460104023331610131387536519974494008084830031181016445373264977048438579553542600816971998308124850328236681897889641201043160714860430676412649499072826636889570398124502270701956618085383109698417717620076458828404509650477386467068919155623951164398315385956394388498230063265875385196033932362601496827954898699704947210031429489490328570921819708730484129910200161853611932767394478484956033526662792031267900474066920157170553842843434686857278700624908751867356595797280685762611537211738053462117874449698402764569938864474506886442974196049436686445518348769185933746901352279313206308096250531115305548421111929184121268060631055894739409765886644011150683430828807141542202477715554453143800487269676412274455831691840480764468086112435877571678318138451953891797319521351746674345393264418398616487031355951330723117991818981600532364545233541593628372783548502272746926396040403734559812717612949045346570728094886454994337760674232652835935335148772089214038885326548728547251302995476655464129841437079758496066859143374110705546910910886978225590755994768384269069115917967208202564795378982122066232720558971349754696286850080484545365065252818295603222908650423884272798895296813820065000917548199803402906618667587021640249836491587250093178423775708877324384244750494658731566375545867811835502262878783276799324283890991353491308788310254105145566924892492825637148535007485889869762840735512132495438159280647828369418696658767198563864373458863189636966474583016209322041998361872394400544962189098922706117814392782883039964730447897116812896224944606754854007597209433258526940750229611761662305122447727193322269453360559434416345642684626212201165213583440138298725571728765996235783104810860725331988116930987719586288437904620212857220522789916681031957901335009150447892774043686608500467997984908082160031388369901814459355023275693765196960660383380625773542408883778686571797517080067569595926524272673328152093539988752377189019835302285894225632959881267296497036727972147907758077743870441333831219016240238988345865197785105847099912859888314680286989975820833922603388091277435856735223983090773592413140278029207029994245771331891139741429404698255642748951454667319598539640763570541233064161649868245592188993060284779332023103468176329847863445214836356544069459062870934463970099453777510655287305587909370391575640971347135376013555541936774568252497737445826013706033344436216017721223593474845374999837185738415560787959063962922371170462310800467286718589435645341123388457836689052702498208458071845669316088932279166559365597995473072235744362646299206663570245990795525247715274638637922274975637217073296490110119323926173471123003362219014050743435602761608856699029810956011197328997791804543519158733746323428286543160157985824845448710861742532479866416089480107738268904597243032416448443438620873950343383465604679759682849586978042755456760891741472119334541184623816698532839720946563864418571621654212693531191816264761880375878642724557737933224255304835637390160154596746711063636420813976190083271088776112292607150654203754292229600358609157252367023134724468671582196557084733030591719809022204359021227769870415576913227967570784392931752852582001937251437013140256307142247911807914304747500671425949326995378889397083927251670230746590841934482854161557416782399573966532029434953801147213498483813236750320715289955115218608041993152402484127927881826191548910767341752337395472171343253532690931674016422293993011295306043797272514870407340227584934607424898085180003045147188051427865768749418860180676643307377360499575343709428985811929890257743660391027797899248679979816873947025009035447705437985731168418531795182024231854237688804341168096065396267390468857117929487788096958164745939511367717946296666940684780021706628169959983578040942994839423485165747918571878193548945245139292095547706050660250086666420652629166325753079661780898774151471613301710132334550841681009383762042521308441420847678117062603729825398254663532927656707410522964249927530957138301397987927593031028479812723635972803845986484992770581438939693850839250900349193980724871774911743768500672978270635191353144233418725734355190079632515298467813065432431643279012298758876689886721680084700170931117830007129157939424899580054569286728732078751896715120734932172938447687770680037373984980930128234313475247917657978890758323441733891698383187352698580135639915117921179522254580364277164538707154071629501032732674648743905310314859900214484911304309465492575282003376484879654114266248750353296307722659616932643647578989081774610566903731813244263203315685372445117189916640334288392375035978778431225196691115581650198227271297177754772868153278270020991882756899905054937310263556697421977604638271576520807643088293135438477837666281180211865824319864831898716706485428118079634341317642096899647735859741302711704342603885605731164606357961655180349627155179857162455882820314816741568547962671107619275228447372082212006909744652010993079243411800265646913771055137310754372625410602360227221989078060835642329159929678896044277958980381958579652472940320017503329468593601066165838486687091091185986149408892964999025850367647716026554704696672670123146514537361617986368092428239234613143824294896721735245880074507751218729661404518245356283407935385391126632036766711829177040146809883999485289007964035771412381805841367788810917334925569217376154468059646028725079133709497303569459020062630623220682720139520299053536595776166216025763720726995939883527270105165909386099738815842950872538640674382278182942878126866422168349825254855350236324372930992704994551769369924773286900264373382732736408909935749742482134340019642821134179097045987245592938367827443523941001499450944737844336474804069928073220316778479232572575127740746883987228049408388056678384941040283040693007010901985449388712664538293017871818800477501242153759557418124439347916790418019188251732405218445454574270005253573591606536567641794091456263686891902707819378954285225489116856897493021171583993745113987033515151532133973172961587291192775028342505725746404009113138142402919332612183030248719947680028747523233563892564827800304128599687883722361478928617056344686938804786353025762882538872491306027333478306824120608326484616071253709816623029492123909092895447748372240848952710898951548420659622416063007796612066630170835330971781722773679310239288878475151895139713204048198286222040197362193496009586026341688949315570423157501912091815573667581497253763066225155733271428585222265928074645893896619451900416334300687872664136526883874347630158856729895533404651049594687644640095481522923396758091905283178730875205955974134530666488405815359811914085832663578811537067650782813819273716012215157604344955340299902271893012609597762052834707420129626244560945808959130404565278754096264595687766200063643211574791395001079231389453855627125371062260331149109934846040219330661674155670081226003072968297065051968081193931962479848988280552501633022825813028929365111657237404238108395461052951720468770162991947829797623877491451251613783976573064305296865669609053763116081339795988061495897164848918755952734062150862094538539621294595296487301699898694494526317613160993803235538245105930347765424628370126405194040427547185337950254181745538824045492602017847224475952875814686865192530714768513293016930770974000878386996718389393681970150692079267349987309185802110960138312831583069329607088402264576742518680978782890682202719640242022238012000807379079340595451277469988668818274720178988299063418698968369652093582471991993729972217324514996907880563142286231608773171996420347942994212037021968348715790284379308379866464955130214861801580123467153470680528129772931488187554742467054845129103620308608369326127724252866206372792074267588339728711364767387923136817042800616338293169326919515188242019954475136101548915122677186285705305073633896891058884720304111684254327221353989020544227049416464058387085596037432973221455665237282505432757157137253424110520235711278450488708493100982446178478488174482404056578016491342505518436769859508865274177334952198902060151848720317473831052759456768628316523487311660675933681017491991498940036317380362755143173586746959092271243464296220259565805092561623611932707657633080686348404105592659105288896324604401143616966351176582541882214910487633177326158474566507035429404613393666220401500768844671742400384436038037040094197480773607598473769419865405663163496563961703329868819642966966150861026218803536690720584703307988803015045006983269488321859482667237431742416025262929127984641914769552300423643636012083292485095110881631876665628059975502741319633298457782040431622068413124147579972317455407414202272863372335612632398171580359980761270858194349156143576352789890834895245780251604353277802713634017517399641991434436441978953919386622993116532676564360340800577385103464336874901210800758279887258362628667881877145631233890179269895949507138094517557452738587858131340978439927305047188645086123395308176246475379621069142384351979360847576488719658975460695892247883927356030617991256460247793407860034137036861222808756474518180169456972692139623338044913535778029356921389726688349746034741781857125994149105532499708150869937258416173164742805853527151305386179856341611597433177895086437875161114555354755598598947504864938772409363638990837746923545175453248643770952721653786004774110169192501989441745229221211123044767833346676837160021716105083339815221695658022598655440811137216440101134883318684171067047199751594676617454227384621718262730129277405039119272316670324131378024746337153920757353264637173705656954120314880073352100963065824896612452740812916276314540403765123265623470721275338762063093194591952852510982930730658441759531267834800567389738607444586607170340488568858540748667799201807736300068796691455635313977193490684153265734046016736220317746617378358338379756177957952915594720982960428875888813642512910270742094299009471245089842502990804456462696785291536333971390634045103061744180644659051119208300728875124054713180970343176087867050123758407503144337999329939795411919560793018461225143397183005072144009719405877045175345784311960263971967369582429643884034005808032002926133063041993851022440146222964806619787116903177017752500013827148715134208176099403158419604836220755566010425532720533042214813555075191348921883135553429021706355419578963599194116668988226035032703759284541716300321261131946478858568970710444079587254930047071749587283080398912434031471992273105578074346723033532417625640778869303263226122736095329274550939146404139640949668627389842696537437974929471378350974816806996931176576804133359241592348081425671612216464351487003300698706703769809564774341229894693487160494141477706219575537625522945198116534633875676259481399002826704507107032991808132473427065484136257502767222109998056429499609206439327180893209512628317580492513410400242171168945125143170148366420222617775245622797128285294932061132596353405160051922993118399983132087505868677982205642685578709950576400723857331947175423030642847639975555589317390300726917203695952844488066279557701426483792851874474760958891710053881929117505982297433440787923561067895703793509516781819856151891445983785928833647827490613342252203308784294725932498843094486548454750127463047223605679628009517212051056615504549956892722794578571583048188812721261820237018764300420334491031162877349723447577561354587114143091962369878347142212324384112187450839315109652119248136909993725282087769535636008166206067437014814488827394919965339075224054093057691883715207518139962775419764894485205042619193397706427421057365986152537910835336759464181442846845451159770697352217407246836935324356839646912849299215591718692449546901700242519486509830129988197957439686730882901332868289309398071285947794843292596896071130186391364786803849706577874415442006796920118829394171975847125748408500185386948394578706114095884246127943840167330864786396537653560706638961634034236623777771681392217287809818884679225671869493334096224502772253513040984948246709183402805263831237640038080246493427219659641209059585438560681837467641478595176413063110780780095641448447087963171279749274445250371398717587356374456705821030919139956758912074952543969914223187245524294383861420074492220046099732361811012677765056689466485048578898469571048240761048015291567720730066136751450950491913343622838050674037876658887843123471229322094076635904494637391976997056484656818795165260745310004301382491577803207340305693247075549735036297812786845043856432795664216553749837052983335013663793995739062874099758016986902268336920052633774036063058749606660546857825224082085874137205617097783813877347535488813419424017631897681298601808712928098520555555259501190976660009239440816748801529153017832655146484619375372768192782276638407142398987770067838087129884033012434892845955879503233253102893981974232572048539902998253072548182141123681712574782397580634273360756377017906228985739628022976882121579348327614257978517218259660673102494232996739996463438244829339922700808908717529979436270424346347363242434552972408392147954780029584725710030624541904622677798502093565363796453665227340537619394024222179641833986149065524611157732239307849465100583600513414269742820072723271978820515851580628909685307634799773617229727931536143608901820129589791510604705674446612678162615257819377586043724189211884915666898141480890298730379349689567298191409861166816792482437698146178695212219530567351499744776609396076686344686636447286334542937727541227779702023178216665984731073510692144079052721726153080909128670339974414785022605056663729589890945503589343827558483699772321663500778351614027335755063565427954456940034667822416390708670012808484269438791225383359461870420543552145485278009145548403999677793698918869523314005344340138194409761520130301799615648913543193963661162088642316571013470687154046606230331514475318011168690030935265703989168335799357578609180538610763132609203979792323322418654278313349776288024493508761554904265641757199467407070352772739460739915079697472019306464896994030604251587799929456292150065720989496482646608657352178553367991487239203092978496717147523074679545325160860883535954351305842161264955950316291272573386844117045042141623214738631463808946718431377529431734661298323706726554750996357457496772796531244939186901117815527694654199884592687248548246430583217874830770089224163884005195030558915341999362340873048867234667299804162611440278481244947285064536505709347698658610023994917855877244983800998491404906877264668632886418094239871001617391781282590331428875409109941128656054464112370350010094356903458428196782845054944579092282377414021416843062104534552450403006217810059942168863228716371188621192347584941546227131559256444293831174161402767842663533970210540556211512063170507597457552283179676268982533296000227279855962069701597629326731027270591220294136598486787390403113753749031727278287391908503628277445776257060708066304271216503394342738212751714588738189134390228689330186161335615993284048821766459975589094549997322030465955403568149009012464611785120913602328472306734260859196011560800783705461261466221160777654337362527327564425391529489676870010652442586800202549963263572653951718159056868428082136618487281407690238867121631795015477335052339198305068191455774061213008625956905724430119622100318505028897383580382524161830094640691959698254674454940387705189355400479813890771579437072952195531212465445797490210852777717420015001683267213235931246397814115379322526747213084828952819536083966785052762737450806746468865044184186806746415045832649160565668007716527447244846490380500924937746779857056508122583193597541254148245903261269234201422079321392733297306834789652448334585782360513717308114902683116121083004363886003257312244187860529546352058466901001269421474031444333527163616051302526245993515926654282831826556272675378749040802917758545344732261419623115462517304883410528946099724081607647502482270260470358638832481978245570157832242987152887993143651467149043083113544145522467170945157596411050620715225086406778498495416194260816076342008234902503521769251813457150084993308905341513319278716568453078111805869053428723134599249088525059845346469039235483284567003720474763078195499222644449305658772354459336651475765507774435190597590844056068292242527039458559837097455087145538618711617513722338370362806819133791342961581546615667634405338226574380738617398217763098058951170200894856359876581078701784155503959340887588656642483652171437485976786005683758723035016312958760243224844095289845537643881535766537042775334578389478214836186353200874907172346132096333243264254359987141181434114699253589648220640362131680446989639234283141217736894934142633405592118975487558373955452600494607477038546985683830167869797404332808791394939774953908500783673296075377783969888978130677932169659938663378435908390863276010272076450564622986545665077573830845075497617422327320236475076321469854076987731356559253713716250871378391228142348803945255379809654915240171714095030116129256606213216730062050589518989270790837752592668397207518458846460652215447307054245606343264882489995185486294747990351686251781667425184841143144840180194886200277844596450369615186544735116033942369047752626116740997960006563807360526417471880165949924314436191181630669959282050160583083547042586209163801317317562967318467228640593347719828327008064372799019386104056728137988193904030300484872668528743023713972609664172626574533479055676226138714744038513468345000817605852709142694403410451032573229123588471763175235722136870651165427610366312787237132886797234651663263053873949993421020383668195070924582859105468802165397374794870455436529851304089018120448575481582605825384832814953258860803915355767003406877906154144321610525083231970052323394569481471465311067933605401649701573873583015749452060108032568409782088809184706327050204871208759695790270602661602796901489525723914742585320228986725368423042095824884528172237335202228873483122529232913622508409565057376904641242797363817371380030134624004312305783237093366618973495360357210769954489926615849004758250331305878170580072709691641491543395920311159053114782889514819723478273408768209922579209459501870563066810860538798506829724206755376887251583834740647713517389366424969010939136647105974371052708997208361281300547962511729320051558231880681766569717778213429567600802579360601910601907773328964384447105768841792444435094314423577808247344479979742703549901315300742510744396140645290780914866395113816605730478326687677558650725539193127592774342701519635067751528967633321713622538206195668299379516829142211779749389463805442239785943612845557198493687608937624202974969110334913432535282724714066654376621837332973040132148732603978754051423124395386285619979272094650207130725159082367704444375119973040973534004887286200723570376670363863711411003958306192286687964231126563594311992736127242886939944847666666902018166798284019361687863701345818585982797568274657958306855949818488240166582423030997297368762199418724314930246014446143036826168417760483874258646219739148941243852725776181632941681047076827042335318636670393030856332863482280623019472677019898099546513856267701344187907065567492452581310265236564322219851078302134098127914369455372837548938697045652655977773482407761427328456077840132979139114811608967518779456335008061307413733764130629668822329961037441481662134647036225910894257863454708073786280453395307202410605540438171643777599858906897208023393445906807494736999071676124712442382448712529532062703383405956271841119411703514771618840371239420806717422301822255558777037769484365837194750689603584802982626474723002054310452211199772906199766275038147461520811129833055544974101866891907778266235176722395701499071353628144328587489964005398076275137424507923373548344132949351805404112620339577249812168156328048740209274207316312198918628335471617149068649955231084117953066157523884424145391174838580955041392992878992479360747826248660795670706790280232742448989882412980782168596360334837418331547207902839335189733082993672957198973285365102902720193888272107527796557006103723752450508157322140456163614950351138363486302549294251458197704989816885854635834887540706082506152802160092057647513805093869978068243811536677138634449044591864852174176879852762262297415551081266486162510397120178266247212203653020744786191416999584004102188336624752216901775376784372892786318872763755760432883040201358686733629565206580299523733680548220064648518758558873337333374305667399162383480038361455848487920082326631798082653499874252542274342170221154903979746067206736855580603616064379979048497055066265176824389754975311904139960544052609537884251224684966294191359838222436496883517177387867160692859180047004185878630515843796909397692224683285615843714643904479278338269175437687114928155033878949819195812104056597334590109543041628856528274092465612198732479821255581260563653790324311628199112821476425069072444299340465023033193566736463997579145036552218880759559799376045387471011063814937234293127397466599757952178458035972817887981016226380642144560611797487511720841396824352368855713393795943657951748960847562025102232212608110246823934687288123050408631667522137201570564368501611581337145905297351355493098404208064482072196738724265411670862897169847248364502741976024009624606276569138270546970216985069350445731033443387724115820083017954457694121942351372945175255293906632686146990255131374096848507030169777736357297820761443260698979709765164246686046942433231851016283688482144619361980019649593817502876940137273077165734834770669030544781462023072048933808944185170856372935440963897587832622619219360539810754586852054203081187524251734197873408870815375910518386858973873534839222904845143425730769969529276076510795729965820362720151796990133608221050024721465921723685014404219717386326737548099032534707889211615478389584704972554506771786972445041978678548411166992414221427736643328864384305856279563707523901507085870270343142417613334001475775356034652921948350816541702222342893543149686355557575962653639942982475915112273911278157816880472754693794848090625751976305106577123145986582858672357139143976548787105090926784541356254824819309146751498372532876563254678262844662022315514024907201467664701990142905704107439674119965699413845311557583440115467977772856767754898456606610082773648104989826920467115960129999410251896466783904940175373297211070292409778461189232762905772526003316994697571184029721454410218645098221179594240407579990260017051232710528092436503405531696008320309071788727907905088718576917812555965859914946244775642968159279219469462343664014257671093397321459537107925195608059549848166595049501582006217371519071178322216477414533801126824929687042525973304774052714634438989849200538506899974354297042595775568522831019742612310463326979810421162272323426217973472477477133879288850611603333546942818152073976206709530654027828216015538001284109510143399346673730959204539160859595785730996502430214800606537944056955369252296416992497750468562582197429911651033663272563989758996992230924221664024196488805517689294758048196911038396378182596236210079432654437526003044631647114573459824022007880589467565216092876795238229125171275051223579203557151070592865317162941293780904493158031031748003001607491075418163551072111976886335344762153322193319625433924172980274415602615668610539123933966401250942146089056865385377766136827793659110123761088843452545301547395641495972448983982591827550886027749211873084675908985425894904542524681801270337473608155996668020661557565567665092875770982438145289564426638325051973177802902912393618252033606233975045203634142875720260568468646814757272495082912818962154384306961827756058643682670846833187004334240860124113915441508420561955644201483570827559613669457999257101312269380388186987784547675293454880691143602945383671829010942119231792151596240846303005261472833186892703850352529491392986472956808416806702591599192740459104390247828982858031050243209836908799254582858564067179826772719389978477278130332894605535535840996022352453994912383574636541233939499158682418002893519469830588833955332754665925253236377381777771951394185884924685633353313984405099368651987259981688789750862081411226265186269444518278650399177915824811058866154203220126637091264826377608566149062754790280680885263600580242790564705870901091445385857716773195792371501871650622421997825198616428210813979948104186768478364781674971751695044923722523804867344212197899769142479288764033531774486596885777058522397856628375871642746108904608811980611416130740292924592512973894588079710547153814587414274860897484474157666883024766157287986683817705347450168837852132123036429244460240215120822898562583830414398006087727658714497069000156325679231250867769276270958451787950108210749234290811071438124224355303632873749054796542866654597916571147485065367085780665788296773448087610225535845282184269080159420500955553620932528139676021248533531932471633126821546598205934097778081998658880534540084004385600480191888687056561045947689815571711901972015788886248310258424003642485738406733924405629284042562301865399877626470429287937285506588152710770701654493337836163856880524445182466861602705198144479958146393033071135148919770792511788873984078058063844947040758145565154352414714659183123163808347738137796786819094044766098419531087586999355866830774793115381330918767142053525387858605897081831683287607680561508792295151304043907593327332684921387070935882567308769240176549983984358039413445094653983771749540031518135010852973406841358420901111271236503968129587190538395890571916690595152287841023735464137424166873632418236424452549061204415866507303779039618400706394463845794322619362751747245843120765293083659167152184117158642238553987999814675343978435834105868698762819418258317374059668205428903239128971897309464313067391053808968046914841370476294669441988550417277883274155784364686711978086958625525037724587526399745322033598917147595190042292343482565436194397394816097604060788903582052816911603183063740471429505465005084601058287812052712151838056099320347384542183561388158177746167602258995712811843545626030208388711831381382153877651160213808805193675551898147301575952156576167855266170626723975855536156279964116606172408172176585396301119101874882556882612499014024094655594305026356761278325135857736069170969386025616868989979406084151231975244902466152660515663194586790925409383083143828587763008223275477071332960222655036359620954111642718552816194928241329750875115347516191926656942631355489873967986280423254598279533849202113074501405833704666118590800686101362597197438877657357687709821956391568808749551746213350695123705181052036759204830869698759239516226252100103133575678964332421405257887558198568422074433525029603267172000762807207927077711292441147823026850180029689315853854178682042943424936571914825411275488886408475198182294828383920088357715108706497249479655279551092172072599264753161092413837738938164110167818444387686297558565412017720952908250886423621642532981758906672906134567149949241567859724134764868811964825420584694640678967751236661225537813354611375112111259304787758249138764397892322293256295961353113642278965604961393263559406893098670260387771724034622514319612788406058587932591614309106368078931763632581622719582465157439977858736493505753519131921686456590374290761450415101320859331684734552782337759672653926038446096588418582135748570059360119188524007922508354149884734927499474714209440330026161566268601495713087528096057570313685296284009149354081150353326062686479269341262195559044958824664511811395930601212064009890039262268563217074601462729111140131894272211565649689106558803351141030905138960740626832364637757967116744209162358130668868900774774368535964895709200105630193361556927120537722402271159980217415122859185936563329035672679849527425893960835808418530145439341609211092870751014755992343379302970040432832094009244088696842241478859773605621891788989722606631921559675289009278111732077727505701059021541151604548788809746436003253515014795907364232202084112658613540854695342418388026944432809212916403184900012603602668027350978697464230655903238634174895202956447020688822118120205645960998781537070600739674679435049555230805367003729197712141438948732993351765104106004741658706595129666285026088433725271721130199530050743221462515639368354240037710584596066940149742665755990320345763275513148205571538128519624924679292879824302943233923541445505057387806550660393254916184147980138448559312346620913142072081981345292814613106297656839796689110780135913727102623330206432664582798819685752955269655325923705933728788152695431081362732842287613399902345924111451401724264189936285623629770144282732739500206376640328843838046270049825561862758628277502229017802835433388965790638481772575835232842339037349081587075962210068486636574680905140106499157511830546379623000334994587284338325780953691357949902126604163766780653350052138420401749003362154089195815644698280973401084318300610569125230968143893719068276756543810733208452370269031046305951080817100571409490601453895172483840787416840158183984420089588688396400868788893245876914044859323280966729768579706298469179924422573482606502989739830661760115384543127882148488867913986407782654656703756275966064236506741322988894799255215504840633581577914388526039780212068035196659359613617447886365440926630970744038888242987986385077203726558015719738067831288673049380372208502466131745662345415056036890924478906263833486389829922469584833950225896304150113908017956270809812396357821499466738556628612970704211514392706658777137850090611151834452396929507365306507760256416890392000793603943324210982007160231071871923159260216293050554990626720139564612837649593457998024751205074992417750863799109423478429349869009986246673084240889688230512799458480793102583947089610376484643000959322474435342817706949279273504144657633168697478251963813478290752971964589630475789711499713009846109558705330987488084970313486279231701771156729274290128390359108245281416466518636598508952021077038217866058266348417009999205419957130234034570406903178785452194729260582964878867964809725814626572407874696707408746429656546122036146046998483542306598323268532573618402204435183380460184813117496697187026645873030074328877786021141637172938666799214071808320095888139384500715209588763426483762464744065565732295244340579378865198836642029338830362668602476688368585977376043578229140890641610409907835366832764664294263176044847215799083317841637614848042585546151279313499707805278794561884024932285374178122029995811919480426169380872460141977214012574682338393114282791466773628206099645776300645648504971591269186615288063310568169869711085729936969391029022840878750934620053521795294684550782524868091522372275457596656133102017681464429153983167751619516840554754435283584011016280642754784148708673527458310828938892793486162743095705878690988012018410644772204397057843688279940422886750218289916995518786434458912824323673677679669105294562699921575079840387592493395954341465891902926967150471248133435316950945941161467709826892745312034919089513867771052785761804218147768093416986699924501001670639850155959699276949784219536610250839652857493787674145030522009582968212734128614809738927758857686711308142460238629522640481922772763082399432119431221992611907580534906786766009275041023484059568542241641353794640525169786474185068041638874837534531216402307611328991728196794679223659298311725266598265781686935995644593398515043947522063055161920345808886539402915966134025277527082742349909019057786338039671475876234264806960735304943137182515505905472227783592663827695981321440247992248427306326445884473222404182432933922477857538250854812425903545606870875916490559968461974269886754220386382769319233932171268798912494591652612472845175447189447360763594376970696906400798243186646538276170129186994835228287552584379342612936489026120763969768841065992529966536418273583657971598329626332850076331556248445355296716006029886707432061364965271645542575019629114657010388001941829546199813432411369664734314353610363376643127633840899276231111336979288357434223830499306971846224507956775436295355371121561152830281818022028266656138819829790524720066613645095826640881658074535471960092726742132506145832553987200861496347382677858831701860438484977142907118122178084398103603565334962007562798002115175264173481213572155322082118400033238860533286995060639333316029642568853857435599895003676677693618048940203896126406279230692291962702380378968573135639471636250859984709256303372609355538226892066653811255961315981697161921689750036800562499660905659613696118338136467517267275736385520398341740663094017215465895311175828013266922299236386939162828402358331711413254711084481281882251382164999579442704040098607262558681953115229976274234826259965598550811793542949583629807372062637991788843435394290184027233326558000840033457402610259947530027164958985578331973536440617113822335742625001874204559718491501487832520099093552610163391793445717868374594730717996549088707444037550279497712270023568412635406338508134629855243057894889260584138673095961602838505626195472570642746265313354200585402230138504088806205078875474705704559195967849798530050235168690140435989181224931972914695561439326933398222383385110544627584809121685944512276365891153807614551455369310623475474823683444698353175308071445454935420774574306420687776757296386452478845615290550694206828346629620417219935852086731587884305503605338776092221837931049567835423342163885408183890700147742534937767587465512626328273455266894373584959069114611065981104555047212568569098559318261992042652658922176843100466719266017012411569015618585492582037732357305806969168264808876646577750520412725560366833350872638889317846542604271442076676608708109036158404808859737339205751961739387077983214924177430387520586593153379269905352379421957769119886063042961808606106894768919672957950133583944100138142969036088755164233338082547714139866816554420485425730345652090107073974854967239814580398324904871981742249425093311798034982578927033092881735869273533006243469294289360074720560215028648725171201354500712951794298188063568655055429948419104920939775105522364936543691971852715014161111057169786444896659326586578323991980907667736714669250650800370079407724654701981672466112716750565878954364352827338745869701416749897988536565233309185297353854453171421643804492966327680403546582111698582568321141672726894558580279038990962852526221004225273394716609155806314721620773198531245727296119192036707306726114103660165498556389780391010387646872597808731619435287503144491041476075757236959323077440063177643415920427853540873278265019822204133529916056480963733914196307493476435857265336004813801731926608840639269646163925072392729246089576160596861217855852510051579245129140157753130307760533031683440410125327772192813073148954195031898477321398091666488298550130792649134072126486420479539761358576973602886026210298848064328030141894759480217835186232498045584399490175625053394961466145608949402710775020123619172078231730495203868290240096836465374424853147146552771663312755009910893018549103837795096963789603011982021803300646590039896968305737795165919462642687907784732562260544138576837767576321322662752611606997911098878480265886198330131356944980933278811137517001304458941902757767407374157097498522090327821385855669430079262115979764850675296821006821545775950760755583632585538237002775754167760396746658776677941344466199215697091896584003116764916558266069941711914915419617129342415165069424047134125268896849571577654379130290940605690502364531587488758346881510162407370395663802085516236706312207432614613696469150422283123175004752473069306480943636444268721487748448047749058730380744909373184449010057922546066562068791526444087669439164650120854998461855255323951566291580808906983171256213070731326244258203037902218541042322054426687575967690115794419526027376484068578915687701731962713553069348639017671538444551048711582468749259457211893684681416260463983196608528120113803510355210548772374971531925289321971595282302795634539099510189445337977182850999093350670201578438953815250031534180712390751448613447292275260390533703576212125113844202716996669404963117253814193444619017990584619465900050908014349244107238448788842947163635623255485483704365528207326563220415691299119595855198893103573421556196577178925949385572951676718161078569843505932375375680257627993034595715279879566690605520743873756998198037905673019718199296188437550892393830021762349333073641837444215997971283240842716096845723577890291660005595574000198989558315708648816258770233393226725722946251558265273099312791237356900779925286877903213131371218925940618231717870180455321820068970281997667899173203483359850231995561958089544760890260823114251981555204770993431340165969643312223846915068229492535226154822218644149546342135076038910746885020269708818338793115810242054070655032221435947251721131752504915480056451326884171150246027129017415004478066997549146837717418318406741105444096131863882050040801813756110079678374275914067563639155458681926677023827755095814319964139378797399166703246573427626728322759802475134919592649073151339484210082031785959537864067318199927333212002424937974023923381968091290181155860542516344326854777715538931689439247356892077662655749690116572047348140187818912550607151299595928153984822455271958385384164959271079011459386114648969498549297535881338400792789909516067575449530496203727675360153801500663959149024914416975429505851271446104469279815581214990186857913907275958527199727662763446420641731979293457114973439202311649970580590531759864303659184271497826133023325573482890775641424913105911691811150022646850611824252731050623231895124775581919946826241640096862724177964169319456424511349908702480774961504897718872104161839239030809714383601476151785927062244188389490832404416000712996386816720092647409838681484965260231463611002680235045342391119860851086161240785597712711275554812751795751716645167527011195840576334638654717242071766531378987572730515421097062690366337341371024277576414981525552992709682851211711199563912733918739750481624526355491967781970131525371707292399936550249613905475715281528538065507144745713942271643942278253514840623582267923525212236466443739389255876942335050593728007476800256023052108834342231227336255246274075658647142005082598938873092877442449118433022504221915475993597299560579852579498864059644474670413977574830369615912226547981945890848454886992575946238862269290797602927236194694763269750118387398140560613217106070133412710250725623535399092878656397849070592933355258011395992387627519465179649540742067668608810914995679825364394761034396902610162659344830833830630050620101228315974129873282814172384984937655565820075494658443990579889907015336596776684003696198078731317499535415212875592455698561730309713456527450562333980357488813556629655837966583159257479349817161360457048071595535397011148091580297027260950972766602247236515073910060075789398920892475325037107089394416776099180981428371350751865926940143817372800022247418890914917481921873618475390076549740796090812251197626460824575240599576419344197301430102187885957506863457322581185769290748617494226396136476759531895532886669464109186492304340906649371641450691884639755664683786119081652268055348050943852031077686683323693851306978421423304726676701714305191743535517509156010407170910797919916728839106642335689540089369246017126955871571327442552725504932590891778076873898961493135090583332232095893960097568227913608966502984577644737888379380602418847251881438947682136872967374107850931500508794994649740323058951043853885962162238671255449983724457485015827099810767303361948090532366523290216202899115808087574423463168943754233865047997599800197837459606742562900626536794370415265086834385572690529267755015738835418382215036761991012353370173262859055892792853143664873731077421073838371863583270001311295807530016639074620683498039994734567940892151701938020185188479740020502072205542038433282306284770710641995010191567223828843414588976284167526207420813943201143861693801981861701327642869767394676765079249558846346043333854142893392475760132331814877677473308485675333670709927701523276048714259211571450789170972668326974151294222648478609990000921516340772051141981920543077437591789259555762360241728253212382975081710974948560566422822489773502928650110344194508671885340690106197838330185720860604439115530969381146182777817948162805291619036928710032512041133314769825285892007670644599435160164676766196674841994460595259701992605507934888146524261752059390707550157592519571466428335197897592324624816256359740036585214532522299747338436768873095218152356579863330589923696479152164544875800338222963577005264751932431469139079007588835618500023059574152353271332986987636862676127412613443641039485112532779607613864509866207258089013388392281920674933576562718757732938484162166545265086494168143369883911689856169124660485172544517855071378597604551694815509639050682005940802382883950716887339362137309732115160611726966549617018784631437757632402155082166964131304150132233571947618025481464311901270742508520343553345867763043726030918065840792975287697713983644679894878377844567826910593160615737294168865010799869718299349931512304030358830106952310276254748222775512249639757136262058911930016211958216424222495991070543145972711890293672113763218797718877801796048301933420542529943596601777422252863039575430104319651382984364847598762580412877757174315118289104477208890769652839814618852361630743638130697039350755306209103013529673847431431278837797125745112103980515103597902926715095458897629597856217505254385273104218307778481647129798718016548987491687680103793580994348106022105698313680245332287277526495717358930940371179829440405809736765505973378400370759484760981287898041461917343160413613511431856432618793642789013894936064726344847430007822977127573434536865092195222585472487121206362191905956136460435292504112198115876356892242239058835453533427482277635693670313580868139645639379955936282165225748303521921744991247790690042718943203559282223466232482953376181000685230212712504707775749770614351192332135439650796180665349153272559060364380937172520939235263918930204235944375779932918485301115314627064627251333493383389794963405989987130808288021081778327837000592449208595171060632489846833587707536147458669068664812058125291761172905028217717701624521516432620957030307198871418625022843799236781576042817013947379362776764526649084164030190476320568714715077771358392615857171725368135276815028422605278442706061894716330444450070977998622446127825196602218291976889130814101033028575209731587375808082342940839202074147263125572596960403904545559043379741639348508732050490549368313147443483077208229001036978833514515665281802265120795654817996636670994554007940109114626545813565818716658897611666540382906968356942153860817672325579092136919121868333757528190098885338888593155284545945188241065833805862995368742321534654312887867515179568430870369327889488126830996931342631682399752434078310838235028307445499050400240248176545221597408126603677836032918314950909737716402045910742900091293664712539397833907039043656209163662155926395002404098686298821156541146359627990158378785764159081529151406860319272022147106782911392399128547887797486053607471390406908652022005542777327714981824530292005982676809498472589937811064674704769307020148858731370459704774095585287567200433838165047581596686540411299801400087644503521382474287983445812716929565640542079162328769894591449180321050733802263620599413739022131985761882713311823183086761055695482432549370277305482685847672779250799391410596241481479907166130862771121070709965072925726357419462738860437805847483796247811930878250146437158807014360313662251570168742772049661824202228622755176442551720451255409006511586808926116155574219306327288512419414309726037585649978887554805080648626963949292412451301225953381263914272738483867240571788175864785935827150557921648857194215102841273366129085508891098032531439877402409777209148672074027821058275360314983955149766804976651102462310012479714797080317200442013943235209972327929793189685209384902675132838542497574956219542932170323697752123043316827120388288808738478591256088992161582433353219039589971776214758571534278543053920250346980447284565732535347952310339900293458720435662223540084924887959291916090916506834496112169240492871577344358248592267953926064645659817959092975671281919091963087006600425787687809597933699712938268013761143056577259119572324668118575785418357698245110571084870093269389861246592422049190329695288908796850450514542324184581526393728175545152516018752123844609359563567361721576258369481058345417484144479009272965578477989900503246800803922969266875523495870950622682455322033383786248097311051982628147973932457773550902061370983966729978346910008474859911865733205809712673463283476243128705324841643185788674060383404771417870432707397361117266934260179110215744209643428083485416535822600243447278526175763421132254145445424497091420846971433935218832585353376002111706899763266930953115988305623313837810207521835359153562955758051788085518996237168049412406688152197143453274355942601554133875284921357088993775697312932508850624325981672626331415951287741604057243097166948443570683394398304911518821229720952930364186591383481937483401849080981274988971836391581384799744165403408113244024325342594759977698436052955614886599951476715058451275498709225434038472546377277561984045265785268848405776231817634299974668029373332005422616279106693569729712122095192039893520272089948189261185205367959474399508945561560979228219331172227628789314032424241492748904201386502269612648469441761583823524654191916241597918178754965781455410364027158875918147292498191652149630897487420448306461742444919678690224931690136671114231975992848929689999527910339585911015564645593063623742598907168486493090052476118000455236843874393899593939033387603456812231006426142815572982528552500660428613710241738533298777601302190503802980521038639819542458869324908469107297956488104685717167445602213606158698270881389373563147263174437905819841619231152447392666860861786202256100051153217145871348313878267631028530791541753580899645868423175129830507367061800166804236217807969156727447439956788243524580747126612371508785258060349060514829215279982282987018866588177758204382277198981418450585042372216351559907764616177250554884740600037770181005509522228555360940696556700858295331214521418595458885718728314426225036618672184280764699299136805848369903018821799548196542819054249209235422595998339588576899141124574770745287012186237006615551460777968033245913832766836636218718994495391619579598822907873483380826013584600648613574885225169009976637717482629096086521289368437995184616679471387963574909403404898952294409833767606193205712138136547405468788112402439227072630328272093883048844719919740614059037522658210306408966372805358733229738838927212858492972043282421943925076598950925524019821808967877878676904608734516663515804561160947148288792798143021978813482994696643046910757180175944925074265721737523021146263522506181720703327574025890643696563535497946472189643148830063438602381186647776077731348977688427384605197181104899837880764081052543075905990597768525542995717378562533178856627488822285211216046475979854817261238715622784705059402030250822209444074136156873631819157620182053118726165387846213838981806392441015871404317139935494400655466011025752547809197485392260207313244035461286072356698301487209075747383470653253814342607809608978774535951719451144706616013145386273815754630718511680099460699499480975567792217367374788319567575640882737057157762726988871509471042444369083840777167030916659558896809755368652854450563049659756896849794202224931398566483407123991055337282234326499190396481224093667473979224081878085202696672004816638163600020525790889305943951156778701150783209550089086500321753595088565879841757345754305395382842062813603742353430700370515035463021933506768378392145483027336052126842926232690594652573224253168099178237131798617868062093102100144076891222830137241834226444450269501641671529440183052295068468316906675788779186214073604393425817339585692236262292814059170571995487381973968884202246830356425876172770828508607545240746079465502285007791428614176424248898551622636671113910036847448330930844460394880785989591646731619232604002101326827920968713062060407574237160875846830843349853296259762866430961142298266537524413695099660775853383456394613672837689071336859990791330272918412882108287284756717637561593397173462742882415645030416497198320222551689631114184443188682882444655503556677405446821332960930240678986190191027324977766306696633594221796453427200290247039497727844843279521817198790643789785619053663999710036053302109310481468133937085543462319633763981525765193440430101148483247616258114710685794555773501136840402078743344129286380247388543891692467835546560575428924837675873117921750702634950685732344241331178510785424096360901453695611834178022259591607585526304735531226625501147095611099331474179092244951966750112481208047575298967889192819421583313557502847890077986123540341042289144795709213799924152035966555116524034199011108097354727249159693849738256155707852939686941852202695466224331703403420800021164460333037032335702956253434864453030352317658312133541995299615775086402586962674602673153683455288164927286315391550349615249275105847586285302122372936929759300890967261937116318215133756053460846346719932634462761576349211863159607218528469068146323070882559595925660729630747608585513343603302103440920182538243734612355830616138537528621364389817867466839968444801040430796542667076217222593464785424996143106031816552192371601698397097463440130415473013228300833378912010722958274478947952065762109168757378763830984660255723415711725429440901844151109925021174774536026414753619645118298619096453860755243338725421506733524317353200433709013754766300759524246652981315715657328963102834838115038237150318129290936499792414645449008297269222229868283740338798835015005856955508394830960364774383095976265518976591464372362630554108848423423796223465001598031015156481589650295506772200464630155083549180075075731551004250641649223529674314639617448303393684752940504710690690170297112724330932333192556266977649565374133872003596183647164357802189522902235025183022239353139003290851043048561489425359129594529034161476463294919274232151909735806323407650158288496594256807723090437789143772114512105055102352514465393396195959941815053614860349660163779243933010971329410337050474115054631252645272514640711660605123747003693497986971990463308972873922427614500083203429118831093921600576976951609227762006325626449478086495579210473193179367106422792383471886035702668309206325640145379046024578410147465329539752585910054364050786535141283220789263375654774957622893293693885573766207657604144116906490934277771738607213857836436657259703495113452944859443408789748936947363831460119690149147198691418383877549802106538564811691232773193211758924574398190132994369080078738196167798401781744941728591191918153362802521844729497890724062718811603428963030748197372659903814857287858845196427969624066284672084310790820276955239512342139630600897281187972716659622603923390343328388883163216632192272675811991014285800743956395339837617847932899703260006407509076613179385436314438495385637043340497084258380110878430841039529117753257428262701747135944571285329420397444047833852404115376826230570455627135513723653204527225623342857322358516177295719805176708030230581593982845781299182463600657931580540023549612224561460639212848156820253977194344742230101198379292629400403130953598385764878442993371896105523743049925822721886773091012255097074780634362702243627751272543067831377800991886728075981735734484459842566188943384445244333781732592763910508005514971932061095151417664606946184985118353963142057518403863682851560846019019495403322632711236250007938258923490400759022785657047601343408516473745859183425440389376466183650246846254527836491840684263575172080416848897096845405251812965626552343297216940772949221197977670099646213167228549537635349800959059924065180304940893992683325685423906582226408306692763223698767086888040595149367917206471126359942222693646665743346749862435806915442824643222459806935136820646436621323580431685301581387545687004593378641733681389848769486643990768319616000656419737973743851802432375592569553178615714852998366963837979105365009642267682680329204207837064256422230090197495487054460712750188223691243681104168755760334586419818570174924645767060329913625737836927629129855924720018918251565434720114619901200136128245015572105796735183909623208483008687053232666149998039526786230207348034218218972546861008547711544707185472838628667378536745916698759122376695217205034486777633730889840092264903924492732841436677301193005976498688550501110207248881570845122208426698381991699296228447857316278053426383036696443712149400519418879990141532930168266186441748617554925591290316874022565306184185360703776395459847224440184480529816576836276508732284071088559930325813700346792469768572578023006026726873005540268029326618929248485994520921475712885655455364367287050699080613591112768896131982573067955361296131804570603657690606017828048840860120110869338574803825183774603906523390472798627080061263555515672314495110258490121682084606373860387620670404481663715267918126277755168568343594043752177054272309133446515431307890932638406542351957967424039476005539987876832896300118800277310359485181223528531368770508957887166678455111297559682459537119500873284494474874204610062383718859661564980944743510509497315526075440032158491996353767280666374157368050951380130105687629265313328990660015735142961408059166349641292318425213325508800588150768485881412752803530013677200032746713583737006763792714110501002187389607500073726860576573642221608749821350037264051882789962881509230284982682099476511368955806753675711216315959899970537655823769310333320704439968541745233435112585284843415505288425951867551957323018942519972256914324457740400647945738873469759403145840746671497618438372641411781396339615364262793699010626699915364219632164658641904430444618957604602111794116187477321868124934530458396718757982687760767184617996776729657971415961833409106886679074311445140063012701635417774862671385978189714348912322728302182683114582723538004500243355395875691530895985360313242159668690086946734400584680919220674161397608769205777728622507340726563880267690403007177153757026913372538437275845728816323227708246085151495423882768605283857104505100205231267280649732570473781176309272508096316508504303545642116835047346749433759167512165377360330705740530920568778693198110457558280760641024617275199867861610813404252143494640007509561775680978620188769155535494654095678748056797358355081175636134246493006198510175552257182817353531790047375838505791917160044023010164479498766263338414172295110146369021437725112386516195036836491566172736026585916848712028733954042719996748228555738472134436190000524809121100875508773266973348223887186629776729279803733773505121039877957763700615402069198433488031277102935005625315668585681009478738397319984059821796044011057225012823179998478590228987421764823562643679510053632826349385803517195834492656792092080237465243512611735948389999847874731937847450194355098868171534465598004667231431992533907706122093512622357512316490484644113909161685615578560504001254121495989371054603936914319043738047280980642855437921003604896563384578689260973965509650144533847432044828130729508973889328019570134287187381819540590011639431026008042877631558929535565263610747021976423975122162777371361948688779755800466039282059653999270873728973216263334348259979090668455528796033523446466646741210811846447471588243350249067627736182331294982709977096777974821330328115391748473550333008407713618699591401764000737755114290300098518897056711569460328336816056770263818517805907358079837180955295657323167303009279966735342428003612864495581791295757265480905244330691322417921898226384744930548685310393591458199478989791659222800116064850155441041304718068798842620069180851909859368482001967755309815845032392397587084177762021175794240714966422541980152382966715934645175907163455916958084535231313165306808895129289544985665808817399467706135184970228790289967110408679124561926906725089578906401224791925901135291602555738136275556740979255524537163540386892738652026125165277634945097039740078817766794269521534828092875068048033689670941180006650803667338699499185049894585603287670241818749106033397592760786791535766696661951077149368663577090381835412618700179676147304314805284153434488737388246042012444306655889149666564756000417028014270941518705110611746886295055005501187513770040505616274354555580372662950540159186277844810761244287316316153842495402892496058890685382859344525751084282216381524299685102503112039246258144213668564814768185724384460154526507457777088468401041484788617826189393620394281506202762668783069489643832834741666328939389770710131154123778630677947746978381218114312906593558602725311597519698212740108279688427358480789112072865462771912654467536694305747408186885403022165218614073142493429889819622725645004031785912243468274106998034049658119810080854857094444148602447718789241878348275102077794931259849586790885084612051750421824013346194405453807775070635466362012522567287876992214549943455651331699604853092867465906681286213153854882187838797539702622150162132781523778214049859267025000701153321348842971481557337757631756065453263677271660603240343560271112256355255208361175308918865082596268972115109908076301789248262868930068765930599566968705400013140711978412206758890919807131032052541728318760779973338180661693838404180500459907003166339766160078144675823536772574458337914608699953141149327602360072265187386317928076505404946276529388041648608693066877134890358369597269784209275637972667640368328403459101368849615106258709628007757060957815703077426986480105944102053240096849820344277697522188064064723681675906154052011627035282777110203363352637007779784789445620968060187478077971358157478917767730022049682558665112301606625033162988457796598126541381861509730791061610339949633868208295090052877266997354708312080098832869464899312122696719844996515554628298656075320833701390044034791968164646402815371500512783888661751334504027806838914168727089741038179881726917089678424330406796803008205848920994050143150651930140602376257006763736598403759259140335239146063470548441363685934520731228447030599064267693161287984539384006796372024280044386595803383738787981905615942921138290061300385522037587249353731828870141487888896944226371211854839275639801169080604436525499072478833340965832631418970388109062095791885912499716944202067333062295179878199152651239056752671746015741830691608831286108414154459638763223773278731300627627179144149107418043563792502530734667455636119413841566524744602800658699903621762590700446175605238090788463221190749826475757171238729997175119734840797017493117409614526076862882542114219306676366384552724010364903686426344916987200437302707482439596670187191966487732260800455199097846579236012445188572528120426313543835159381233717302418545215083737755775105524329080143217798966384653441183365543826928190771181338716838868143437192382670207911605965128893818187023168526339009806712614510079989772753246875905176467074068134303170478344677606284386521927277058795469554267689089604551866312787851861177900925661749793018667186345152743297877944462962763778358065665167125944291502387978740086290983074196945595204933986396620155695156558094712072375487080668692248497780958233516049060347263967482941881887358114529762243128846413157253473191359047023330550459078711791976452377323905092915651571610091011263103005717473678076403469232276788751969729642437617537071408031119566818864377315888287046742047515340044577082556063027275031231504241504887450127295243525515389800931925427577895969660226052769594068780657737249040439106972507969343439157226897307956205999194551530872973930582214231499983719295602454250058542607180381371951036846500922203560270856440432635473075740808523495017555716419676115321705726757566746574347934919389411053367305310218617715618613640352787888256473266530033636786788257493998876407758112032734253334569140854840891582415444159068905272810963840375285720654087850405562916821662022369713869712655143120528473674482312215489025778397241985175806049086861710473900228591571274943797869561651131649845099245088459188267613548306539753824733173322089852321900116803601884477292861860850932400223849678364253573092133921378288354696896092235456295275780258956746000035005022308871262111673560624950798898701777195414579311258340241298386360249912326075647518674194831283943385990831826036544993660146894874011074057728651326373702693957515982774752603298274034634726677989978067098317880482479957844862429006241822062006936744316467568472903467616179598589209346776496746812983299461064512937285956515967618166525998087368956665150326898333105909982152991177452451648246495056435360433610820511356454216335368137767438591593086334264119806906952441680929614964276130257534918391372215737817458754825523716851175532649345192037585313350747201425352368938635787030629618531422310762428853399503801495769500715886475791244210652616505676222440168070757909692872238298776501414228475448897540056306098833151105050132858929123730747556125034892575122635461728409165429817452759160864055513700750979049144285940620223416767192774147104132334686282611445200130347372704680658550706113032677992643774140009693396521905438172781221989481202463582051602329775921421701983731942272328990382719450026585348626761964245403376677491387107324178651489135640025733377113100410280450789741157569193514866935976667717035310496406701935430812111175948093434041322418015285004552563797260099028662890631336651373585544049798961254849522828123714401710327920900582536756719369584007230382881321044018537808739436818563896519554918106297064816604094797821145486728213244345477633548660111755462110213607749565357221564349756169038386726806088677643209389160044967166456260366545822407968482395250557793891336127529449096309730400020895494702647602976941944968692580234459213220276170086438575954813530003936394943182196451602439070837273125842596129328867080573062237628252539630046853123267104113686476309831629673530781173928440521831866969769260808289482053768854864854109066623119020125850079778593425360119732290801978318494593503696155214879325028988763493931884150747012573382843009615114944391152223292510647232120868246375491391304280260148032296868640217837899871209792902527187006950982630340063409815305356690728028301413617250984814950178980772480222510786226750756194400504604536403713232040543312385294485981226989328642070432813105927976860499953868550532903262722587160132541381623287785765854044240835841206542212996831534499869593942701334187587950440877226681400488593315907521902898433911314548012534740855120331901180323982711679982819077597908040770237454545321726648955454521117931329647933794851232656846520832520520334440911083412103057113878989041822221603834638068084091278311809151028329159798270199977297876095277137955774809595466617194022488342062061951758283940873340035783928057099754579281632026540598753051859812413005480987961819717783735231103602181648199488129590406321041868562660196568918554694237372761414335205803922128096662605576199680659444850065899646419271277416456636837071530787416682773115356601989864083509415357200535372494433862594097374893900253244675830130824561778706346320215687832584204799504627816271828267757347179586447837309595848510862607732525971454493703870032899008641672789796309064423579283733634022622311243780400652743780717722017373687793894344684720336547617973291712119008943861754218718252902470852035835623693565009067921387809251644726510575221350782900602101163217430573481320114071023332685356278395871646345451111373235940935858062943888553229841901209019960393443162894119330692522319446840157978875334753165410818019786044738025916159339179770429218609798827672941899315548600363607326059417883535676386826891691840499434735358371315066473943346096237585555482800451616731378286629517671945064731977157236492241125547009376417379765357654704009243522016945942711875669212603907057410092714769782231910246259706591303852934464268301441373559744147215925935597326041098008753180032037828153127034475845619413942250480601876106612996611745962804731671017686721417621845030905775786203927157558810002328987579380543562774166233679770840202945440049878942344790505941483732596045793076315185049446555469210779675074532037406932217465398798494003329886662287457356972969793206096473960958964226085420576342711709273962817864363555260283044858967324314030881961151628885721398117743554017430297039650171592634846328732312387382858329533100754242066428143158826910299717957789590172708159102254314541818229448263024411004067795013148043949480007361418357005464686742019388512475142190565693592884061110398765904703918349544091934091687214231709664197082280845243777354342422107193177181225327013212257204377224705141092736275027246863178275754845058619430048190622402576684116127909505831698631002194189220932249621060893284565191581853002237041065609294637670556398542931425794747514150214919321421965981632978021312842332738237883234416909491413882056487424729509344322990839308825296332342436568048424175936160020521281357677543222409542878300884281690362459907797654643508512401345068668195104358840792317264146359235526902998159941525464287504768141931889085889160461785544799587138378264182205281011022869079549525583423969193984369273048702605938814367132262456689309346399176729762200117386324930036818038143602941113646316773523541535525802719978355464101153177045645738073321283512214474548544863555716505408315381486099420481640596690079598694566369685676536612126347256758060998399117049716442690622516951274390225387694832280762381664962805745890981414341537394185154162080505416816167149170193544048528448039362292939367103850935352366400979697673257097849132138387066150395306214866635545536185555397070159151918060887447397006646606280921784644799727666322692445724137244874589469240432044249455774825727076279619991128255356611386052123778397725225987741526225337693227427039102391704126976944509791502644379963975405499543806838045033640456209513916665460768310303858309361155228725432069459001644718766987893373940071565182739577842255546446518071021693275056507789767516069563398187060868674358093704868479112352709460340061905292729710615618260584018124939531070398713505083788977132858089121419995294359387940760440849561842968379384422621307544395646321543625688189284005012888505258899038109661722312567186739180828400002629430759454949184240004706591170184417194723372239557362611304297801134640096303440674481624824086034046507176761504797402939991373049518702385056139738775111618941172874348446612896472245135866768945095753779932707166117249908077619261898231601692743894079680858239178330310682403565372045632417324092454686572280641728602973266425366118466933324396533450547758346568795687820007829662016695052258279471221842484133127119333050604030419149355192457935138370045626523630066846577593032796856277135289707899992643202816835273632085458181914528350529445048241045353838759274811982555075544687676040073514730773802839077366175207653542643642812542224927818053706187998353569506666526683844802374697505596140070093172501663455181028711622000809897431925117763701303332662618722163977710432935312149410519373051195341301707021366115300888030892380600633229116611997792928516379800755317437402851667207163545246961162000768424825655946291962419832119499183217368113038693979084321136824567793076045579245951156329169223480673635964529347330530812456275974964130521730917941140631461744404295598560204252625738488264657437570720592325089920397972137219582164458107234203883460803922172871304144432126381860757229864962491731111365048521822000056637371922197080338355782757251013059107199127575840179769045650224797191609240678511148260934095664443098108570058662357805378748383724030350536538241153201087782941604099757008235902211687642335234509366990479885638356371956863616121591717931371843414396037970471508565537621614674235287400486945092589716789249339886151409494035323651351253261290408545347040149986048138381140699348325418302632603612450487994335780724910941624021229231553012952892249483662001686717679292400024097718746103551970441555682288847622555717085314543863555328698589373248143425152535899997891530647438023105669627842546817528216149082250291396782516520788763085723433755626845809723902893657180000232086208048926345860375061810358946894528423626348212508268792733172382677166177578844830327733088423936206097837217461175338625588643959054804800241768845522537114666699005268793142576415793734243325109984236458854649630837927422903372350922601221463992172804101112989170409163831655075060489210004265373147649307845291372505256044025038692687423236013878696238929284532545572400383874073648716241329175328454067099553911579047044727508204056964380103428158382596339069372875881483032825046431042569964413415969163892481115103999178871502670749872913339202588976588516405459314000420514886713661432147948413251260399131211031490371242356142612579535182196594232228691082354833531942466839093237239956497076950068009511728516325041220565443939645800629461449381696853123789392527867882885820738563626486440889346057727994760553635859337773579502107142479510338986139559995100408176486291191275603191156149751653000236898403199315082412447971279700112599423622867834654004351139109888512766911405549341564555746762728223342788722885089309833207968578185645788181990033442974527496952663035618392590311002964677683717537747857868516817180836520227208081202691315983667119521922710944548761547910295997142883100533465614069647463353130059236672390369201616353887838605796220880931270300308351316682387498388466516093130966704749838037116193496973483085549537840657469195958351517936091272389796419948945517083083288320689153828957264470858895796766068714449716125585350996174919049700668457110810015207726529885913609858312728384579481845112686234118152995215274551936889219663493364031384702152808558338576858666394355872034701130537572904451609698588983638677377816391128411012722986725188029873985683037373760111007086283755670069694444465854700642609822550155289024557080342531728372096402188307893416154339115313895326463011020858904288721495506551361997835415496532358763993013505315969334428233170428060581736765915678517528769098603638628067468088334966172467939590421896316003769108844858007128837543085457638113739651032520565717734764484617156263650321898634553211398001205757165473278536788869303091650007756295297274835803876709490312022694208641245657227720970044515078672957705752652095198517804424793828618153239244424355907917771465497805226664604139795619717294778605185880258657015740678200874047044027846177790139732860091011922806865835661458819406212904403333455762475485753118184099611511064700956103269116889526429732491400920707204676215654393978715518646399409103232015546165241068805150849496941294984779497283779369163797629649392908991733139875651334866928092249017593880734448432488941477640485139945064558547341451852936102836883599670545622482262485814887169215597318115237936025909513283987367161549009531241916795065277186463831524624156151565780901561004299815578815049844027244194216155040682960873809015465957908593146573201605675079768961419982011547292296898571970833150668178554618765990682198298575009815576642671375730790362563723710206329311472951684443709156257466915051529035906732379625626333737197860717501942447201684111160226464117025511224642421021431190624126580830215063200855835719412270214879131591224176833490171148161635532814612801175937106410037896864726505287408035763729913237474862729626482365610043203613381873444509514043465774147992010667916524640280529282068792919784822421906591188108788935648569271128500790638550940418406092348458362627177055443920368983218863062943394512480830716050620084760607359178356039359835659963418284078770198344097290397879677171653297129762967138246061645524265769539227994121866141895189474339009262534489443254509553527597198935767322096285752168506032649141635422410089620376012417706700298268606296044619186347595683882442756003013173074314047299271724240495061702975852912553460934557982803779694225490728640543009792757568031872932368136503009210322824361246531460581019724477060920880809060513544732535608377648449155118034899094625673225855437023252243126800683967964600152656112732128225903933192248483458414844328305197406862119440667912815596246290887391166754188749820969395957504045368282126476337041669212613347401077237727194545758422954290130442562727050396804352256274204879022714457043142923534746109385149395674564250353900610528355457095348798493483262260377511600292143003883891387476385342572037451644621512566982625233420661716099796640465902460747548017691114381440119021144671158448402345395284514305374226008745764342372995003007068963306839679136087802490721821098851494247620426269076995458705533670454886376204018423623392166228930288734621263540013418043728923100284236932533549546733656027273113644272965485699589711333857103011276674756676891977786044701261082431884213330509110131050295022070714173142775247363518712890955766694800469754758377022603126300811660309657542652524223724546648951545849652029249933617061853294818923661549720114612748556799151227970678289448872283101681228332528562542695172683288016678524870167480304423591850147100638703926813050151636617611641491670283246551106513370623955370392541681192985804945700257171214791449941412053387503500046805639657037113868701449223553962355975413894670943745383428654820694061765626678118308242928648902567212349986255953404891121547237302676909845585760902462091645453473225642562936389354181856286617695299990945152461161891436026723301506434363055834290007553903089107374261156303223919931148848643268210209029067770274035182962831321713961537943732349321361954452370525906097645403101674111385943355327590608199862715950365486060403972202910188905483722324726166817120169926290566254258653436607933433171389354096545113374521274987509033766853098499578338573810672615391895440738815957636955160186398590791314210062330733452321347409163727272187566083056282674434715343120661483595309868365397828270361105562171208838416991100691763413274754724620853690050935838807296116030844941591826945349429360033716364823989218706834276644084224910189414505754992884631550115254320725903085801056809167984232478358101432284344623247075839081362794752870796795280191632440652914004243733316394840489877882833905369809448503837809435376068380458659858167895709836217552176705773231867691054545126651933189467019399278126083654783190455029747846460963651949191973730248442311048446322299936758645593594419559422765706349104453007847197815451148912349301355992891275794636547929612694476221789739743152032913720317615059905615432582443511844891559395534014753407664366634513797252307431253631332604020118389605861228217896577704842193966327501964744570987002134915698118918577271422384976727492728497412975757208155997440342529721594532146879451850107451901484458560072484950558096353150085790056873349646052401926251114924454032684948182762541460989996679329431511325217644817160825060307836487325954986699147549265724174509988896102183811368430946158680503164069450745394711140577574869491351589009317293047301518403021963161507647216316102904931129277162745545989835149272353746811578903953679618901516613800308676494649347609520774611835812669586095843548714695074818924297742990550361194952438903955948646825126250052798241104696445233061454153413260014310207828342319730217258824945040748442835582820355881332959349220181118746027666945014159005367584791551450518673081812181118697153919194609100138652976341220409512399216924813644981039336857711066603689239045543164218525133268221015006514345605681303061250651811464802866718633668989020723191749318373175248499630038400752857686941909654277474680878975232458864584276696732921457159371380987225888567753485025835857244572056038774566961455840031781332918831251050143808571347353871977954795660523728664752316671207765334774059929445707469604281404758573253189081452596048441832547064246981604955448423790001968428766677672292875188644786371470739353060299199402652115172843902453310538138365843867207544761587084636611590245498607759862852358580537413518974563724767115269183057782737277872120749094551519847542785523450934372351741850221251835386987879625256783283997599668837327985184348178108478330627677694780114737804303914077597517056195200980264208954618506001123860469196982180922575439037756876978161982785946771207134184361126412253844386858898196547324516407476623551062466900016544985472921754641809244982630574620374392388635319337118103652366733808059465616921652530393159331048737216537863525889345129316387690685245293389221405276411770066843948251802652424348747930758743901815312143403388372371165026411599586659951798334872310825539859470655354419609777912443709737265984986146398001545602813513858649257119768509263982855523301565896361376149346957831103008794328851321623415462086287262255537312177426198577006676593336932005228640593138502055225881205691722255194587590970010961107880962558520592793902442142806111692844167470394471668286462482969699834038122851362565344904213633680587927598430410605973669705008707362735080829477030243285856518826146089076999075123954739558250084490264230503259903093107673280493454176451094068884782191173863430355746443161749269897498078513278533535091759484319018563066181587845001877232710510706944625736967769421883785629683885382113366663099341321535185409164144360058008507082956160450311730586830606474953204471439755718867663394592133296397833505976531305315555630170569141611392957040229227401276753815610862530126813951151476016451901064166018259944933446318998034279286410211698456600693079720308391183425083065248977652383574090399829355302461496946146489887259716997187768271384659359106483138276964496087513278427946475715393837347604416884681618993754376755388348919471039524508978906581204392476501022897874158555497632739813110827562299389904859446790205398233412804113386365233870944976411951304020891665145796851926165276618086553658028941660973761785140775010798483008710398599452021467231119413230569565036743999517931435351824745455692535115064108776827141604571272765565427965728493989486019283111932697422988587163827097341307612844105744573740320203774062042017243487026932068608175675677780808950468590821278153142841102013111136665678429604909932335952780641076823410272346165974662303528192452086739719050788993636808667413784615908353189756340697351934222057078476907893153277275113939171739434029900966625877573949333574727286250639346161309180072100069967926730148753571552599246823837364457670523625954677623087481426156538457102041098916135058813994719646547572595017648235197557225071250722362594189167073977273301233357105358392557549899775454415907505978217835190645066094690737796004183398471365873757902789931578604601159776238364414750788631987822277509374996499884992559434036289584951511156381034896624259807970091342061053597439488610595022997003492514883034476085092759445604166273915348513309271076666832683990212210693379238778850575131684680401201809918841615022658339669046205705909465346092790567464549611193634872928705843145033899382343833826013837652595801344964607078193855681733964913651805106273003825739686331723083491930074814576681567576290450242784256653401858301982855442888073509057106527124252815772344981498428261252066230060619980339990451928209781138002554217119866408391273009039695923416193091843919590727153696960437848958439078691638920779293024929665078492467445861260806379972782630653540232366399141794199803269302456446783771629000616573231087719519222102196081607143723247754564507675628757084122483350872578518465793237325100002412305949617175911785341646176957355749277277387123128593625931081014208014498859979924460516745268140031706196869997804723050992813046421499050483487503747691419012281488255711656600639918004727174333981800139058368358853986277355062859234175035299011897232588160409716462729330495918994261701975532383258751908796092635417706373877835989521958521008591603930504739813312277287737983453614163078499524119581232611519678528000036582458977520405735299401221900925025659412253426676486339143843513314827885821485387607696514303872242602527981042756340604396369228979704235645816444931417604964929416255770542023548482839146554773624662738209142354345189950458947038948708868625523734062338057000694798491549001202376059234047524527973865421690012708193567093068884443114200600871981518948972497043270957330559801132678119589710318942797060624147755084581793343994968471942640634485624860965708399356433298665774759090238986420553392415451922398133268932866447084969223071218381616895409466194876957203754907093369854222071217277308575788899376911223500190196487453966363310746670081170710960266168260402585017861422843587693698153800240740009112880339618823392890299654425926296188936727926517308036378271772941897775718778501062053655272826125156888830986785976981513531745706832305409436200594534452058500831688809661500104738499560463958525044815988757241046004744461307111719352084719202874565757760434329667402105085052374125981367865937187731231975003822979184224100377886513214795751290494359055281103657222746231823871874657557094730456668387988124791067725162015440746134524864060960238253705766919136272424670901866234844219888687743558036835472403814311544405920735432172398028141243294651047965573073211202437732366057227095282934958310713568560788123014262952774428578734846081602902249635153653859416173385746677223657979048813185590615596948145421677470301897875553041209597279410271369271519248791828389894902140038033136904279218918305680156715450286985281641570053272115917243446084031553561749384725505790061042866541841212956771625279157631171315584750682338665548624206071862080900501559902412962095926556095169589962186902142862392932060747117855946300009972846031171331586459335862409226112893782117520782881530471824057669522501947033328039520026839493808635430800688132312833933997573336736832367576812476556892945079034471615739698644269259094455429488860017053907491386834152163177615111297384454810684802991070352712578749740771830450778666847556110227774624448848933537181560735653712541818809283030479603759299085919262413720773212656197360355292116656840872577956805036625377008755101914237462445827636591788708861161911807664377848041148998275821736096797137967634140387590756154887760353890459069517326084381902880505421014066489969417736931749388373396366428080070218380389592018528634084914417490421027162306135993582821949057399243762606565568896250026838678680480812174927871844804359053708461820269707503616977454275378576784724124431754064152873951113293138777616148150117233959094379661446899771869209974149324935362892386990528485919344223522878375534894110184229931386536217315207770843964210900258255553940410311706177141040389404734599905753442240086506926778853647357613171691529795519676552258983550414999390893219705654990676145401196590358779522134337188261866698228124805845752974344774635036713934397333420617813748167199933371948690258350151068725806459240256743730279595664794452175141729216313445005780401890448427743951794649204465824373269428611781836223040846555912099990963399630167255464283863193787147111959829548913533750436721402614703397871728706707165740502402427314795162215333796357156269226307510835228059853127506981411873871436378534846650859318907047093927968706521750609226725724274088045019723450823551448083088600224962554583488340049581097259990009532801611918146251786847542632247615898060429694025750577371059562285746285983955690124419852512600596512054629729775858006773291369484068183719363309567480323600184461215852610785983086287654268822927690669165653120014098770068738015944385596597539968857555708804787152884798111046118302340052770151665155314238390729622636411747318768562513072928651268453245837447230574727857267841228873288965531497096286809972845611631031659218483810046258005892122870166116650147656406057361927241207086878563959172314348819143894935706492335424354113381278102881066773711012311930346897669608851073468220504497531560610659276401391837232851206107407537819878204815442460881546243361066199525615519697511170051471077781847538437894702691239037938331770495528101095824820973568304513527093440847375096866072297663879243798012428861506689697567194765115836985860541291616421592991467881099768479428686537437991954371877691575097701779583332977192885999662235637175894873605568169673144860304653998056079557672690204836965169083283575665069618634383423415914914853528757026610071766473616469239831650109356459474795770730303761945819119436205241788305477745743910304783445536483242785121806068934238522626494618939135422991329973782765564093990913484849212579866082276284230678872394633330079105260167111707779411957246037364989186059016553116225985977911958023821250325878275262426093144469823970335328473703889910952731910908325568460348157015983339273003651663960381261505072977969897799466488160670797037746105814754021696071382382449728801469396586150118752602544044925989756040717541070375946084693265375573085834835782466241849646611407194977383358997502648925233735064303476202932400124322701813228870258564993140601753812706311131349044561171934033351653176207689693374227707407595800289317440644634054431528421110773327180680115309418515001677482673693358285214984026625492539782145192080468160973941157623284221383282986009719600413378857230831911308281161231852806351185144845238641203399259784598087815761432730463401954195351403450684906732591367256444821381730897561612938366592458313234704767013226357027710909164493684609718096246705301306535816892951231018262981770802967793577123610326365639764985537636991020967758066293497362937784841714481349632081418843700336976628390793360018920337435816800908346850634533949780880540123661433376776670618059271840887498173486255694673868276035849688824104654080010380956904648961381654147233281112389806125622625289473582027998156613894675006551811822584338545236618017557929840888830137127491261039016895303210344431507878523462516843674446699352620570477371696776776185223121902115849841346622255200310661536859231129724461632682423691738954757391351500170707493170905398211307272048971435237262217037798927077882262293819896871522569687237887774025105601599489641814893427035222423939294083737272602626963224604661364277097131859565353821475138922449114219064180856884803203673690393006418708492398985820580541781380855605052754840468858474701460546373527616103908665748187137522629313312592760977270464956679991495286072269527428968210347432452209197344178399582057772433066072337777699828341668002411550546241992495779937155349596664221678476942496413899960331697892914193251057961376141566992477043090940092815904560986785119487234217614231902084784809363274819604711240909195131876210823554351419719544147641308992384566207262538909399931572733728277870852342613702106182405047597310748407614123559630292227338966829105578797594217768672519460183049416597159777973159696520191297926090059001062162503446136609922525170966442317763225968431190469781255105703752247677911593764115370093491355924125652658230132656417758362503174733682877138387867938458540802722334773712443705224224461277868767966105265298483278854475619731858782687563101566364648406375696795380103519344267133963159678676824387630982801763205169557982901634404876893477274172506925272277494759389136153860402653393915144609342089875133029846967255564491903149803762729444109828675068612000752122677961255105410423861481865526964932348617520471409349888153400229288478265094465991470605655631811398465347643641856792951839771259665655581567782864477024356677147963862440389404081510533422638132286785300174481859643294422481034050153828870977471247394070338197561518082947280673623852403683158201816696649118641164481651320845393686976939160308038401049758278464822250198479281348891773196795767272542664148304256854924502627621140216503960005850887836747290028144231776139057002490495065803528557924089201009078260013654120954774086879940706974457573636787703613518035258523084382421935296232241520613100957851016475916559557449311233532481627790280313030798686251011854834301151836614308688756150610568810270497263580402424546812239080201511213792715853377800197980115424560556508842882035053523961735141533719526726867681714501340772319869977529463711889136814704524927352964967774941138001736406629224672626194375577437796731528942101582274626481357100568806992845309344230392904062811953457734067622384279489875564476898569526846247003122174622554199696617549986716682205578464544333604821676260067603577385962999276367423061822515672304907583965529184556172841531332486101573800574676052208395851850923017595410317879044381457192934101854482732163005676020725890240990037986285499893582393880472212092950643605809356748520115178328107684179843061218262257346934282042719110720741582807439619787428170688108769199428156223218378994746635506063982234383906550405999587852156280166139856928453853057069508795809245957271646978711997274714457284207281703500997002316691469643882541832864488309225138894809839260115932632167822811307897985659804402824480152429835066006609205846755197080835726487027907233878458687229729972960811673557445686568017759785950648415326046475471167489088305828609886992899607801274375403745853464996583615067064224514324080898601906183198012495771809591661507787489873017017740159122950198904931055027077083385922048280036736578678806083847294056789443126245988839960316304388850557385655369572485532553467331238089545494926521534215921520193753659296282939399047138957631822572716923275373041523453996809419210997585770053623806580480091264381311760327153783408572856446020944322486670560717217979218541286801385984814422176575931289358266355527526207560730401245671643716538315172747914949870258601010009030727840858467875140376005140826904604766023041568088483908227860025636249151928091261535683973981200111072765860293685260588834772535679235484833211994896804946935787603181405805343065413169776402052831376439278576670221520784487381740336538620439890753852640429413938439331777428544762236841003485918786557384669157740658679841266226468655936606142849111530485696245180106897492219560984465135646880566931521590730301544505847706872444141746743342510135797796744210366863712119136043923757961949983718246214558325642075346611040477990468008032060889901832011738042244505885405590300006132297129057377953691126589696428514757014350256237413922047750141230661452544800140526932127401591053679182603071201989902379812405667721267407494589146900319041795871952994105876970194968375141418840357299060208547059848163964188339811022183139045252853114380265312097477087910109180111142242229077532409311646524058514863229179807412221411523652996473230568578008392927534553601271618838380727977409914138246538021998886697737780305902413750921030085994184510204944445389545536890645282839633573913399787561536385853814966160893448135199287873669565308185033966396076000356164722705838676600841761428328726837758102079577944966721417280473340751334948392006672392366845502205072241759738945964866986568581490466072488836884063346037187059101407288483608481587801231743531153901861972870342748269473993403278492185065369210908176658295463406804753108957078502413713161856485741105186009302711346358336230232132035125371658003631846784816725137041438427080297792924228867228398184840635367611175934592311291867967487486185958591422955498761221521288754391221101594220346372679429750768804619800932614185409745107009336702328844735355813593505364987879722679384979412555023623563784145724280992324291881849954399578997056017529686342772560610581439958113324562738565477667751096229917090477080922070974631645604044414286716365588585595784662091137781755256259893831842086992059313321013789806511566779426208965860651421760357651941523246051116668812060741163102155078370589701477862269640256166011311600563610049460541277754051239368181292950208694801355833866982132308735104988091073718806141236351288871928668355883199903566848072639912580793425273147132819041307833843515368793731544477481332446057362242622193498145692849276648059770983580646475388670108027841032870679009270472025013205186093415017301513093644765487475862250385001154182465603583242829173498906180041886787303788810277940445811903611283379748017006639903537724820935463271309781026008414902843916687393633952314896666573884974828691463713426188072190040864331398131486116256226638256553207038998569753653304691311734877998204442109821416645256163022081227403995216150897394975600700451082765974228583011374512450725519446976691740276562945893836379855578714150376414296814215210279160635050903525377997064680431520089078008239068906128162701276555021951473919412609017325838822946234331075485751471179352826723249915733390091948346407473122170321118519385380868305351757369279837142538067485323527530269379445834210436862240110709885118805468773665085904581527930235393332456882211507008643855231811871483065592411116719233404177466808627003210330826571768345785707902428894605309129907155438175595551107653603541161106362215914984192534156153351922868782035044863756212588979281336790855183920446281921661582197932897267664143686245317316770299884387663658704807386401136565477708340709201137941939119485722243799758025771613423377291592519102717893440171688722187742994704272722807247881143546532679032575629590586864658212896114973380747662831932242504981623606195611030087590103252266894093231037259205160399519395730485099832693856103647677352740503612052639190426732702897415087182054874608984364626444932835480079538057130410203431776708514401535560886228010428080014147255910827099103001661042610338274688540176400419869706271569566073876692048324377246899038689709752867907105375673436703141833404330478303538470202678715105660661421467567116967735712959523183402646177913260170048817303369693344365611886103771570449278028805456388192818057332327192890537880089544724866109470644315245518059667935816377245674457516826393280982363876854135180981182427649093592602691956601074059898800024860337511028883751538232961297592890890008298123340938985581598531241543456459297546857387467227820918421341018421274665807236174739768497589484471492646616531703383578210175846954333912088702275899144726121467131164963662151800643053625692546703276780635659260370919576735498555154946646347687435158147656014530011519392745623339426739508986961346096611063168256096670341106376290203638799472220242122405020096809924095184870749224186505214841486333922160854905993823355420097050912443942008014660478619415036446435347050425606584766030264974850428362462526032767973726190482918333023219264329617271701983171959086256959261084069836790029545725692186424012563576887308976605771304197543372447297597425395244780048415069822540351973621978704184849375758012242251017350749928089963071779124228368019366063710644884480665434000327715471056267217352253692557327253038908344403227991150473237519247425516507970083883512804178027788275851066660457897166557509581333294456026575101421814684483008823620122990893152335582306459641095253416290876016557871515301519907141020111340891062626190596996189666830422690495269696079311618915705495090357661571985065606384431041772743529646315439315152091259781226449492450810137464792070088743620138418251128569580202679873654797491887536848358708329015318833637910378861735247588747843712614074637828701314340793500591385554923104862026977470202018117508830477608638146577991159375331478496035980337477923007816519701219485400966848872318276171083756622412037260786473822480135844244936710472349377386651904270125393838020277274491083827910333303987495910250049934593705653330168126052937670882052135031087954523875991765344420746199542919716995626990747786229597659581145577542833482088185153290230599136478771455570489448834665823296127114710809645813298718292608862686012925533246522029770693638227519593138065699128572654915067805586253058381689434200785000689524644293200377211592212171167475562019721692546321357464557442095788451325455551715812100451384793344440664710166284823476770282051611226426592938237137499539238328887677132748010937758233382477485269719234689018029280111891136728019108892010551212604282671730512637771987119280363081148678745404746466432577780688056756369352781604364185078672110717902975243860173716826624975951111308173965513028501516183786173070662776150061997587904724533985755944658517366087614574080637262432449874707941258614360819410754261123768513406192173995036275094136083904924488857057724245906544552598231597612907811594014065268517229679762166985691338565821429011716446038459451821186916233412707692640529090597099663032965580110862506242891069712478662938549524087217326102691882395229469613751945719329404382489921972484568347550527819594259151337648154446077674173044636342077123987594768000644532228955683531256802675662278276393150996333372895897809827006677718832690353953161987691942576763547512117181862147013251423509922654195811372401914947271686054508042738948313018260065747638131822447601609235357873778892711298605315804316424741251815031844883712770224821690733055149266737500476253486890265192558967826886689421440304084308757327777489311686509728561879203224984127931759534661362627873753707067545287879739660887917635055552757575720369651057793701938400306988156363335056468296339111764685459941180554669306861253107893565407909722864982248268890825792344724412040399802645812314755041347287667326447921832324772000113398297915357217241232107394356395918372343168176737654291559271201118956864144532989058482159395572808643458673619325278023950740381627663338116586987633755663638527244818357417983378108658476711738735702892560770089996234138764072882334061128338541626563851421351213577047618154427862343212443583457660165165705742025721916096356684390630100977440186908168099445923353796159404209843937842108991543149488436250701364754890575196550584214258182400642988689253508233108649057855519574504770798438362497525779426212659356420093183349308830464753945715066256539441531682003974093069202592790093631877757774340303568065982739289625550197457067947991324076355723111303692924631190583751912573377714651226046145493270575393359243138144325470142641783879269271264367781135689941368672596193684940134368844921290772096109935382060266370911899905667622901497788202025058603189534179705990996805405894149625761797834099917459644079735750392019932236418545170011825787233850494707899726383730474073558317950301591978879025796218778957386026515577182286374062181374072471476285012234170557552834908636761469519643932722075985620939858706227057811335455820793505952623320501744725059016599061676580851891690592035370932580953506897008383632004964870642382712904721208871053703301559777215502126598769692919145660792994730716973409918291854518216218959880616857864247944379531643076315774985347275679313244830696407574530025167396094679645439941944072233332048451246310862392165768085132617122081867439690525208960532586371558520638877663827926646551735097417549329913498005730045773158866454122557806767964268571476256742496431266957644669600483186593746082863560110434750623552366121112522648332082802339463893941935078553825204199260921761151962772479371935732848329834700704583476889431787543417586772236226561927276498829023146317923930447513083674621832164842404206573967552818261325833243930634442942776045894777239454940766236132402675600508686061834595952879950894520791395418136856942010482490652011825142068459941888080202393331774329846990934888417041368795335066839540547254398610072165681614809839470102920467842806548538578757372364875895530668953392506248197557789791189624593708267084510173395032928026829841996365879800763796294202787343649606248247453526812626743141951414030179968934268932671815279047838619211555588294597328669390329939368973123816796769587024963537651900689404751915869711035346151858585853737177177418493469670364058242170428154601427892922597253258139448172113237639164372166940271548027571771367629536358059479548326699042008252587394327712816938607474163544213630041380520519813537437966785541326269253564612726655587838468797009815294866283058950087704478387930227334067484466492256815183641231775569372954756078596700887689435161249422653828977977121102242635342850317114412008344710860399315498718569248908754512294386462330667277699369029527150677555179879593306536068362920073458349670367043013814062131896165217244001848148478669116484496660533794048127562546762016755468110371298528446542557104257004994589729829428119192802909476418691453420976073726004290117304618217776387342696059480093538512322865955109187625453437772236856139664455245959959740511673675923894325732070651957324809082558511148129907435319306592423580121504071281357968339005196647112206095507569740328841574829213165069233491942158083626758436413696486260504263922385619933361517845535931465673544744397311320604348247191303944644274125232080276074035852078920767050210325105454049318877949927380849633950782531633841696774265680720601878228072690880351090513098606654443774459903299653488840839081950960615226169251315736332879366526098070614990569485818707336917597698744277007509083117977263454839732701312506063257334263494182145327464350554794538496779346912538339485850298975424787553382594501597678244741941536521341766151614795465454763604231728674048874933498689609341241737528915484258362091972512234423236575880139826351041437131197538068052643532587147302714776277901568517689824415753654564559965921907898609806756335757990881746252232108621065732061142636875038868513743338896432208062157677010798057910126079354650150356159698269959474806326859439301631018611150449118033445808229201375822806084102039619088276219292310040393798060232789075191530721116725236523888246147006054097672613565335361765978382574759750009694099434893333443328737095018841176249193168532334288408754685609183782377986600335051698606812124263869956647579476106524658619450751212133400991331308407565324149481596748286265356710641595446816408573649448971328723130956623515064339843841235233690511709879402276742368614334288459232466815601227048520433849354151476121922296826503690646653719196031544242513552190884719124948870232496773313038546972704108658646773692599529960501624620738621382880206884989242261724918643751045112927929526253726537624023958508461410546988761910733802033459353605538870671639964633075399673958375596849417889910991448661540013335652455265555009688259194123208247519338994243241213279605089155068061921568097542187575948583834486246309943562533232233626144410883414022276366376831921258916463570736557674700295657635136669663218643842603334404589194044870203365744845402545661581940504918817080984866130444939091349806929397491723057278341644053110528854103525189291441319532570417988533527766790950422878898959436428579254518888701663843528434996509953985042048722388735372790049131956960357359647070679741868619281187137666221832018538241960953545622194511574039988607364378510237630363321250120888124405251347874586342374113194345371878269620411126632114591401323540088042538090682022410932607519510682206665596569051309474216257479610323401033351140200271869243351107253721213156467281288448566071455005655626926026414026322996316649219158211948681347458805510950614771251583076324930824218035080736009712144629865160400597718361001788208339590631040455976994931796960469133389955726893476654899788100024668152161527815277766816559336901503944849568402079847885940812336452371555326451837536176623466695128941693407180431352443651784367149519967271573999060772221825134933149671866870727805213785548756937460661174633361674359411446705499058446171321095625882939414792963471924973859756661075948588236808491082043289810970663977095941510130353771405338502962897433109799657321762959965144674450459293371379819891918774069069194263153247070279604849292812235245378269449522362752744030543296054894741181185806569663545393956108238051709811870194381889489863789472690688010147109706388118720936153579838470356918095866906732508703656978064949763957684481221487370665286183784160973033480045770994458289917778693589456723766644925209950693408495758498068248515488738118224709980436436223666347799751815197035265602633014625391574782430383749602418614638425968380181168645257882075099823581018525435223490822136780187475471257231907555467015311808848601631360777897379022278299411718584523455822194525669980861125203497963686867179391209058370504964456716327052442586296471525340867384614776929256329109693194066254498955411835888985134350604583538676055957720167345769744529041125775524197118200532219724791893119289365978105492899189198738165440540445382865356076897608221751846254505891224984049796985296304446234584470479648869052419583178348835425427821100637783107924341252053231589660907207227076788587417316484106396622617687914139510883176757830005784585815705348030724803241056615841380141387590205113373215861750639383358904654146958961487625317633870381327014658259600474360014058750408344971787168607893410438510770287081013483927539546309733268023553661620782564296766262070887368575887434741998409234831001032916387408498835469068735652722064174794652265355238797480203915450608164919843709105837568741268342860951029952396560518579894825196324161442636884398486467156649533089659613359725340706654691600175098843140660958258892793871739514248711787723235207774073558004016367025970495651148116018533185164308236221532030325375834222505850957746694619591444532638400600461466508258922506993375420602502755105617851539153433021740442099583314803798854918167050201604920841175982452712246756191430316120013353187821859658412223082497751257985158596479682382579723103464921994647940231388740398222893433183010215082644618237793756957411045771656090675770122025483332105658942486386805272322921452135220156560854383887190789360606756242462047597435074206829433710459601483161868862913378737858899734988844116971470959633587209801578396642546563272661686437622208720915724219631034217383137251572854882247744862861363076170306298265885115239197449806684250388768713890065842094054753246265532932775192643364910828069778982462082503532607464374866229405113143983866917836235634287572943956713662888011401447430244440849704212089534123535596006082929375175888192368375878972503825499042323017406241354854384060351907373735256068498270914858640633375749147503770208105336795323015190236017199711238011405333449801451714376279654697266377405048040474803562438320936872609783774920851999446356844596468468748823796908948249033726753504222801995161480407296172539113779110974197426834215995193555100474510362562915501776318197231100157418962602451560405177321887298335500406285389892817710145435821224316046919095726037245279816360961704780797952255729641761814803342100921303462773394013705315278498278873687702465352073333854705070551211155680916175280820219289876529399705360937651594557565536328413555720272294629734306680731567558575796211911739516528759287022966159617068274773518248968175090818784391884490460444050735364066405722853191194077531982548860005497249772458233940458819916976851593096211557844522088024393466814772477870716285670592223707701793375610461612029563764450003478256352497574201082297267704831825541128812937218206292015860268344870025017086314830765451161600376617420742991299795557819422643698475512103052256902835725376618601565355491172151457072965851826477799589957840485892034571609484693855017844683714870896509554449120873840634328295824791837540211372129099374962841785481317996370170359302366763230778130902003340842148791819468843997064132701512575463838205547869999310322261314139485468972460872203603971407097990069488545215745925338957853997535229210726007349832020985379351557227526767207346527607575130256732608218336718178613087445413725628698638709133283040702226433622944740308797061096505952952884408640613681612378474343357296523118837421150576610166501298357175901110171652466843442556997728452346471908291708282377640979192494517474246317813476965266176603817099840723090932393753969486264044755021796209960471763025129771020116015694739829866883263422658950937529840205724396122183631787334422881487907256076075194839246775418581366625242425811482351839591313758493048001823668558453738627490489689327511249741962474414081197620739330805831712008109860424161564075564437163299250734920566831477556046632667154012629991626096616565628739377946722032137833543733644946803686318704538309761915102681466691316737866570253124111632428026824003503179691503975932283081112245448497220408040455349566293372632348507191001127654276352185227939654842245888116317504964286673445933508528406379466686114808806807156117460155410268386182609751896495475851490733942708055271226048507403979158429344184114925578917178083414467613440800319668852744054653947130296622357121941298151790485423507923584133347919151363613676028521715638374061465799124249729458545496152501712766379181204918732774993654547285454780169126149696226422711345850916801315714089157372035245151348906405063510717247162745099720015462420227123679975034492005513550671186015512256727869367964954629963279702355909286097864949052018314648829763600186958397825820507168392879299729491068146582330103562438214874288764312921640052150743489222078156923532866783666513772309421294812583318442000291443926036230307093583335279054036731713849300279311019753860523663770815761134229410302828989101406412492140253715283233832001679655603301755072421900811824883659661262481198351011430670417158284314119292066126482813910616335595041090285147044049778803879051410104403134135919226180289196749149567462561827558734708028948790151834569687023807020942368901595125786650623582900941867718240039747232086106725634550435102059444447702105161055637425886317852476617882069492583130578789678740502507846732931948183022938065537781049793243902495375277301258414806994131283214064330469278258241897747463453967805460739897281882291071791259206421493808702803273427943535504335031317602622483893364084133400268440901456825366509847489569279358248809373690895440787756621986650310080416854387359261496056248124159921034659290030400797254439698480513030570812717655842751901572496104203313069828156148127705778752092793863851489268227468336826144594001303191611281279851543773047592514085962238493736881014475131265232206574764824074111534583748163721722463250203139669757495129778978731548360016268512795908924918309099631129672237602799422382721506273825204014353928729728624392412391344891982251595756650696302047864537995904806167533943581965513934337046284749444542628212063167986794064524235815911143612217262977372300788107693059026767355313369343772207555011185169994621312492420617358277202199717128648953904444493255981338893585692430541152948999942518902648047001377689312446665026772014547494460107118676560381996819262551052717527698101149227503612624684706562749318264528581730260229464252882032040783231768656711584195286386151496227724935094847235825039594332833416061703544257837393577666450208315077869208687390747270862750043738095690203299450071994084698992883259446421970407177239510336590226787632184427784231251696409237509846338143655788430981729794431481324470170789382368507484940265810355088209659899845006258645300025852150399830907725787574453755898528657492800484208994010293743579615499167347772043042370958284646014893944801482415421401914602647686391780487142768577123536044672412820686098728740656617204316465941270202453984934292924003330382995213919140816235116674960033396202910275726965359490619849802469238976471816097901395608743809262755907115515715843084009396792253082542518944611179489539483198109791502788710126022587027632561541710908387586133636757611924967782064322696262011092601354902869902696962678199051159818141526462720557891064568863044071186525239443593861444858535218108006167175751513583579947230617729750597240425236391339846475783810141056346083896470468616023033568729703071404095449557267682175318230812419729584107974913846726809502317951894557857979880461867731296624398215991397838973025437244211478006724437398016212129014454145327388305860755865734014653035498200775275138942619107928424924583166843459244118706099230044940237732036504300623360787381609805013491839028972185273839537423413958730424825400289186595960517461332119037600092763667232003567436253752515144831337197910050401787170755705906584170583484125487290456387115638148558281999219808054313798204702900707180876642648228802408181867522629134672020491874882175531743307936697541422871635167633558561872795863830322135451686679673649311094905866416490572383085149886377568400075405778022616974646963691986614744246366515833246028192052974810849792351602734060236716551433960577210773449073143283924846193364285956324695244993540179220299881246317079518741122565431839656707915955636092719991180151941659580218307826320256258689210714347493271588606899861566699472814673161699538974730089337508029096218433219751578342832407484337574185071621024577843875233190148598281461117715860931642881394390730690747480179084236847970704047973932661198084560911782947209290799164951210987689835536403923867818511671217217272549310818909793554006744108511275083190805806866952490479799312732519780100184765178012383898227354809921790751652450436588590568068113720625204261018513967350331819606514662443729453872435775630150875723464530479153465502400366886899285003040238882596375952813968841179134073386225922569377599706160946654327423895596762403744643034037114954783349047903989830183698566641166441066405314433533773157821915267953636312076869286348820028208393956853451382305690507905410525036234582604927014624103776745537691237660688262832259727217206045809849894651229134349101027069637800775860161204944643982619977816055103792345807367531440830533900712796433711389397879428606455360142910218681730251290808608995891818489070363311007757998105800399008460796775670501296202794284981249908472453856915990901171510735460451796721620332395140709499165931827979210773407401520882341470484488909186324789055776355955958675271796264678273264239872529260916537643238420893659056308252438813839837769787831895137281136273790108861052972792691225599687790889773903681056414413661324765311815364045838636194413066105882955326508052181570183393154068323155146586480185143848871149078382888324666436108648877307458034577769110073945611211764074320320177232721502937700595856113992265655293043435803831522011618155676880438392347482932517214116526648081311237827286030609620452122625935195173625981771270303141702471279176316322018104862097648992048539161101430180388793179393236070803831170250029381254536332625960775890850875258631301997402308641109971335130033909923689610213405431503720117218625345661859359971553999041973348122715655402617798793765855060526233914427388172449945233659680912504917586920997194201430578605858652653836504103737042166957512760962728588142334005598884805782151984265669074109049145403383324399602528262484250434728268570283703015249427374892924840047058510015339535751091353712423487060348394737183016584559788753233032034123083447819045813732903825968398781113701516865900042200090792872849562334126932399723667690909583507014873097699612299272539124656263207891804103751358962570601759069258185165571988339012458994236370592111645056389407267041154753960820300896972179997991148698722885764242445339253550283720452116527007271675535461838290155923546451100570197209062375480058381039193326091123587620748614694371376851142569106248295052743391983872346245448708459015084700153682278584499776054740064622870056389766116754622573063771968559501655934373251952216955607994992070258021139961684117303664948656682810494156745864441533179745849583741093128446783690027681848167031785410829225155588030655843464718632035478753226923273689763874975702754617389285847049006776193747863512804834722606587223915116209163438272437823436045448936331714267405792064383617096304680329663222029155974108470962249070056834258463466452911834399087496357099632443786263247857719955124473447232627034676209589150200610416106787276456505942623953989360693072808457410520533565722788427875649379070671248547253659056262063277647392129099436764202045129601326836689885762527527818837926129715246148529947679909833079460016379209648360781214516512300564217449275332363929726490495092816383760320437232507094302084251731919199848521641000507995558796195864567717040360814895073048741711495795017616572051471194156035519359101471544440617485536943400906043314851366623661824290702332668474376341486736300456938291398734403559771349056198727829146574620388499588929512081258124385943833812805733681952727063859976830918855734748880313184639976164943706860813619628201267895226767934028042234739070535465869566681625169325664244766329399602255133759112659202744492075128552477530543316103804296698486703584589226793532577648954240099274522215363616388215130289200422654752518043387429146237816875016336350955872747265509081039483567875179457981561963520701568481777497790452490721913480805992587840831947687580908015803786044708060411667685458145692362045270311804898971855400463087721016561650924514827484388961611990923649521989295311224450258174224582921576586499559664033930848347120211615950785718754227052948054697883453233675934137165508878333546418013211437924086279639496668360499254776127374643589539632456318366209616014687590121495291471617307009513656392530986009575865589204537381978594705563234836706186075891852282255847103457409451944477473310388579720662215473002043880701524158825442761821938968430187599438504412225798969732530253858902305571862524641214101215428639803192116334230127589076006192000213212522062182380357677044265530602602963202110500849582028256367150070540678029248293425613386248073561819760902973699671782031900003762575017301914407383421746734581795470823350790476322267069732478304941118722352595773874826207203104894280320439916319553625992921018074800237156415625181336100190331059541128902111356559006335940973732875124876903987180554543845152788875659079848943455547254290069280219293872097910687743927017931495502410451369431865064135685902043812066883857107113664513240694771715082066886291146723141513236109174161411526667956046534092638307031831773950646768540346620848864996345110436418924904795871733670847854322198544467281830911625986135082119963788839313138923423961643833469870702270354775205684485427553905200147945689059620028986423129349504135707344987977567842154058774517354301664416830370832752983876755488167440272440204255295486943049874352328966823872707165581314097182492773159867798894775828257469052389463515618177501684687152287450709613727739927933552244278579267947100875839699291010776536282607957499620821188965439179889088121385431549884142696679443643046547377895137529670518464804536099907314005188434361205598121987298246673318443389830193722735020160134695135597586722429170408923723004036291137854343237324686970765435040689197417625013625669293803594727755599875842199444686515827689850343607534720221842465514946503929790614407647990992533138436262477827418242878182765392648686515019207118487644485346318256310969505037628607816141432587726399887153993534115669278833986420784483873676311423410227242483592504605810191131966761235299445396208034178984207942005076334691062513483586017932972728494096399060466499548566770019894372519048873568479048722742472150787754547819561232837968414309279481493188816924445704660599757781518301854666942965669932474004135933941143416605265299088610209038132816981446043772827130426791688217738729990938800657979462889020595581045980443421587402934715408340445097336781285102892697241434569311963082316099654847207297395071879271295510320376417163166403841889562860163741016755767387211766051075586648598401058769762089254889900104275938862345080101038523337903609905655486647802570762856726909894092036649307880036456759493402407198900399566914596899087984987758505030359055909634595574422403897988018322868622746848247155311744174934607942291390706773890698588148949194652441182616463852802650921138312651406072760938636972759030583504355317056873280123432928579609188762333645041705231766159201174952955305422354666905335498745112898043079679881498311892838161743413316084910391285098879446880645259861638095616762754968191124160049372189385780251319944451768718719151407728408073569333500143885662019351150167439132366257007282813776174586699708886082447795594892353794689071994250987434306656626165306039040715349974060054058388877718279628241851096823262063798264713534518982349986685286070252627103247308604158119137202341129917755417157719168431653199411485279983535704104983847777893865180276112838920229089715260544317302658715595197588264761080680899456208069896634538139327279560348815932072138460976080075276063827768737335855214283781567349996406168321724765689244701141631283126526465788600795383108243985963107183378754818605166361994366240138413024571043572354594389455309829919915384654782562990995519551458946719397506638736716530589771496391211122129889797337731366484648422782797452184114456558413525823042373103504734788235680064506783329260556611762493832819753608509904362606401616612902535742550007919473238541776810656258505007895648011059376062218627058035492327500133847229397939555409529302721486581391184327344856580116631851396390564143996708765429336465352156232868634568402137602485058015081261764757165409352274485759789647740844055940247388917495803674505909917345496076553658345568975424613861692740595163339237984620431980934202958352825970309212786230598618001395183797754262524719905950295211303339669806173138330761015975363287129603366011450577615718490509703422376077908881629241739168261616763522499180677867840634411205108299648019166760717687206521288938396701880471259703081074812640533801909649362297496970159061935620701431172989665340550703083493393862309638768544091500211136485190237643053331513653887508422880772588467314334959945790480778705879894854750714489025968104618644075646460724971492906329890062723822182751072750983364344132399041434596212517773162044816587983462904441890865361698163568074012866045210648763486992240384568084404162238038252882035675269685646504362381032431605959225926528059507874384441042468720403954567842030510111217676443250782201925557838109244391482839276872081657836686566840082170943190755151410615917649488206536178439707839656548961164828882399933507820792669826018994826475555161569656514568973546470286945280789964036943222095900396361704269837242529612319777667420629057803024307736057571245591127218140616832829253711011102819770601113754811436448736474964198094582546748301313697976529203297817316820327039032870285256902035643201371615649014850494247755516761652274366883243082459529044266042908503780969937099872174044842666670587940849973892237899918235251984561710794243185645867375692599167839410617439281607795469587907394782455126281596139424481943010915527630625672763940512514990677478526958081394637700639102389055068112116867614561852888041610519312559633058030500095504263681300231934969179137610039057425483297578776864226123970157152902351081083366714554222888629890564973561617940568603161074729655383713281626827385409838966245428027586459529382173916974758021749266958906819938323670261537698239202985357519641305354543289247552139649168275901842987121224273156269734013726383620931209251891881938402509405830207169335458365028746065791290499179695588442784712592608506811994830846340139781315475204885828882780312475827723947837436660052059092082955276127352412900514471063707049688051929521230187042788572488408104663562765955062155478098129437823427200717296595876329633165739583651135369168883071845409602529994560074105834087700175824178826727301291028394713152414329688298176419084503228429630311578731813955355802666618400889226605633640944489428288659418149895820651858728131252092212477425111915494552147328894113427445256050747854923379239492789099107672362066452856486239722857721942215260516407188811473098090642421969524136057117604289479341445818047920648359022282393807936202584657446074632077733773937900037804167822972350428696180676463912492895123164277158454891832920800350121156759400376323017700224847820458301285089455359621786398105682262483484863450274287797595125933439824859288543768126362260073282065391776864896447705261555411974873348496220234846487133546946106591530019983525093353612931316171957801678411776240905512626130256998586645774399537625892072474514266197120319476421995966373944720165226738785338477392070268591851677275829945241943215881317138448283550442972443876714847431226259864246250214826060903198598194804419670620848803149122156344667242180825524407064982139585720099560121833007302533134546545614104326435265990490011306110911637376718552572985263969641003843788770156890292916860522196140284894969166313148239442647607225138367128517141842517669930679705867054669128311082418635289293814726021439085125131209101551480058927468237836041733987397929913819216115571327565229736324541125972455354143680438790688332168505766146046187650405115553022359729270299687346451621985050263557536789328163379480629342575450743057456778831675192150769666375066014151464458355579445634164730152777938887434859887946065297213836715650900475878140001581363125538881773632542794546035633581861359366848102732325846418244560969923456992811720581276753005120389954235227833155939145847399631050521576693086480514714953060124753391087800615530493189582599402981254541821802501407937920861336233917712402664280755073717370038018013661936290028061510642829163522946806467142973005301868302484286426598369081827670887706577016165321199095067638708907599554949309489486613174824722362071079973141498994210278834483298772468915650624974361576827432354313167538693757076594549082162987788069121573903108803494303629867490298465634221143992694902210790835079148454050371840228128079536704993837604484917212887741029044623376880712614163805941007505894392296695919276465079032593019900668431456054450846665008664712212404694130575548716588319011607742170972838002400287125613750841831040027561810185496127843958634970731646568560401272123508095322943859060555711529152803464800220687372049898134494706788601218732772506669066243645456313360227970000347548221147520398750084809785885512373283493467600700040860926671156848599174227724904412180265591794172590315784385519172713265645635382744391467513190739221061202700013087462109829015758789039189209956278174851243015170448225483199559351987900936292094535122407275701672135907561345775060250609575694431338899606467223764665059258021232030043509699115201277732585942764199708479719924361064262461912135162775862560499414634960855222477113167316914219011661747692846374020894396805677324777292562861338284741924926831849663226785772171227221959448703337520850307374268017921881287152704283427344863335414740706227782460126571885364708880183040609183351431333868959267211831117928663857199020636103052136460267682148971267888973620208274457357796773409961446741821598405004327796787794248267532781824274435389714247353273560427582364525756828385170873758517858455817138289100003894040527051694811753839558597621467574845243396561180545025665819240545331705737172619284324612379855559806199734471759954142167729664554963405778595851166798487588724343829520407593331547768121649349338742338460021196761596777866631038842549255325218113067464716355704653202083324861465834457083147498845347325711462004604642306813484273416934057440440828004377652694175136162058907495564165923453797143418434704071417170454879541245488459536264450737128101837281348638968996053664910079347494242884971171704564839792253377835838667979066242900050199832475342571410184959036347657277016869601770309689806302934965821890141702700600207468358166431490485865167233017878800616435248897436393493518015946152894831437342054390936851822930174109982319148242511518558538438189831785093053917919870972439154106135602509797173378665620125592328152140285373681266674786011844658924270183976428778089473557253102504710548963742968768679190798193498001100054115369679866697006502459367107558579300536028402989420689226715132342212641382681812064010444342421917539783534030497931522602840065442709400505396761385530584767500388648966742781232500747999732844698986562800831894268717143480817081042641559464324542165669880247054752286689047605452624266378270078122004345605612929216717250002395879603457972426707456700378639307593919417376933626227934155729674908453198370546861803141025978950359945356946175416741615240528918832951449410883071783656169363713469074732488467329474042607137208994596054319497737979522550093190741429058568173508370868943320240162838071846409033719445442717874594849257916509910111031960206999656626878729065951507336301676051087619955616488777519396643702606368140461474151951588410451200662312663655696356199163225023828105939707687199633980185474956866205289573966180007841966642701916568251589285271051059758450642833164399859767037847011794780679835709671558819678217050902749421051697337749741513006667505733163772796358530319026270669813076249168991266628375640700628139502926121839519013705381364451861723887824949432835122821546753921743335113754069728950125980603259027397843845295865333897433138293211168131014560368247720502414951007413260608724558924003152766392552557401431523959718518601172635895181357673108667909732259062556483061751543734364202170432903152256879313473939052591504233754289398347325634636319388990322430249910816900767559924782679661546884487852292749142150649141484192873598055235211559920480493920984523853691633863053191013563534933096621129263045085888791193084694773423814756608838083108291978733787971018814862811051520225228707697255571383599893223969455375308065156811382104424985398091712921780232757918757819908094523814939696810530472433682515230257055283460994150845294380177889967886411730943116374166034953154351218247655819950424103860703846420327666017942289363043955957035020647060409047848328934928529200558081142865352898283704009078906836278138754264237159659902942086647240118445234019583361350767063241052724359333455014080463354469013130169239778973169029982920634093700560701013342745194171840980260846018500565438838266161709669939371731623047959042478777183719104415154386507877670554109118009190052911459047410815830118316748993134604759275179996703645932193728660081927023366602896730031514100256516144628889553919570517501401134997282282129732323817522970304744084384942057658260407670315061299219861810580592683531030362655611223909528240445818619714040285213015689066654011381392087350721613058254530246175302194698307336233721895278147556992142856139480656081084025294007140468499832417223483451236333849185161600007251486722226425700595528637440141929070180105682982037433677821205361415209409892117750996718808531709416854123608029888139215159496899558656470978146354980787188301175253636514499269500886548169150966925621042421561527062241755471453671197508463006163537794282921076195604778726122255555623977923193506665841477980706870144365363886534574756046763803613507548735573820355728480052552654558120186632104666741369015661077759961530541416274846480803531110787722696295571675928201233710262013160969649327830537823528776531274054839584286801853036764874477608035959590125130639699424309813826652993215664142490426866482733358331211317650168979604247219945091035594859753178973371850019555820973207757694668811483118872933871804138460163048237595067619167600033644484398472403739666606490764200202280673016592128472195998987601948719692434318090205339699101077829919472093918745706997824761831573418082373981862151685215760734702160572646420875093136795729328478940734827271631315935777094974422907405240852361553240174383647788832969978752887947164485920275817626711288031757986832945766016875065091696721117031984613824824759207708068116658544496055018639632328347259676559213601810769779713332945124610435978168109713998282718911948411394761120047389269147650533475274100327796435679430750339020050987723441051932811335166608804703562152825038286457531835227971915056636600351881663655483065555818113497872820007018711553799571918709700945815403331252836453116503345780003927084499629951884599158655900739879812636956446702045017889891024746307528331607067795745989938811532483876098514510307436188697970107344564301157167369267239517327033453941962789363065342568410971701903189611628896388146729993997165909350977373125559605164368448553967519388699546051036555376099818765065573145751804378271810771999776186206513951289265135917364148903478471686045215866398761499903648227063044868733069674587954881411252097079640355881843959592216466407243264184616890487704731260435875021035251073523229315504398873635945248559173686958532947788786334137004289805876235173056583030101182917021386334356476602282321686269998907415306790220977145750202627055248446763991289230713953365038383846686163903741578523066964402045968756138851147535736470124435204812770830853749651752504700894619216173122272503529686333313068154061669999564936425412104926159439976645682397357008840706939384136109881332916409000202157240898351685000324500497443412686331172954230903604597455980576218207869771456567748867462546117198402039140054140907400508352938146791112905564639369360406092436388813085066123245715299365110495297586667789862375114736148625159706409813948406426184226119871321221546787038361472552288769367564118340184760306696573979298490065208980144632216666108847657489138554280215995726767225396023019651016488188227345653854896416527892778596377598738413052962722797861800090476937016308766297296992121317948256972726986268224664021776873622139595625240903519312909022270118438959467609920933615432334423667205165362168627676428031672645157483546748324852847691031606696958276703826155887662035436865323514953778386573155087227046659426493454942063245724188458476842642807261633254013767733840597665192887148490164265307863414232847079639547492197083101949769325685148102036572029670131723752516177399684957173419544405246237606749587091839268601353544500150904325446301346337190862737865493237124019226343093898170608730068598913737527261492149595511286257505855719472397894419195758675368818817463881247647794978386744973455514471402577135503541169025824536956498904299714150803037572603533416865258013496331732280871613287221644142758287442372257009868921615858831072137043297268189242823421413578063652278904840725922897481502479735113445331732572914633868682617396606941596772411306117461115406364617538984206591137316380532031594866810842104340094601223367315509533604011504629232147287972510985950688672362530021836100413869985739635028179994522492182838371264838527339522267465446202663907561846716596822986183470552970467436956330928668321174772692855858577312753588295238648527092668967858760741578359810783985941394781531829680126433889825119722898808412346631734458950679459790739861156115016955602038867343923268558465975956586905722066615585409992828318044244220042704471539745271945420698542754710101110287456527677028625638167702667611010766927604899859891439489948118383187762334330135456583319094623159731362080141677406884073207423346814922519146148896024150019234090245932576872758228740078204092933372937916961295662406230571942840113840742762052928484275906226859769793970401057816070439539082481718104454322175158988581603744773292482631584550865919877999986033779413789302453748574768354240969313613806631422976275082368493580094863136660016312072033341145063964675357850235645122155974328131634535177865374457243503782097209268361741954413175018714174496421602306164156154843705109995333152297823178802043992371222129609017184288822348298138522259016716320439122712963965993566093639404210739603354369595009564842974939681326921981435089629895828301742394805436259978322374403495241207400473192360010575542334804928038458659809952416196037135598381500175687832973926629977383822546073845888164916345800683528599121539343827437512852153576561783717221195993684223266898941306797425540627956662960960565470205622951371908826278408461546384295644878766260447408406203756280744358814735036982752558383652293799291056114505183786121188350529860404468945533242396648141763112186899573522468186041731120765831886810055677070056740819093268609906137710341669096235954864468171763638446414934665107257630082236876448765257239868141839093213645708340486294119837767447461385462079942719928489441350236533727860647113141525942387689924920682476460464530330818361108428580166957552539062797148873084081591118598462391043227055138940408255105863290145404492067170400608346358631407264004664600227808706155983671697457900689492288098606645335389777403035203086728023877776412494251327889084819647537477242433046528029200759925290236155092944443488262913034862194591071483482095096593541342699403778882227528585914219554512066972823465457223293875644262539782183805894199128878923390419859168158180328435269229171598292250717141499442655110628564740168688218076065225099168906397447441460465722096375009057156301468732031542377993561201872484343007003083365314610321217410870136933375168896907122150507987168472377381281141808718297171854648377978650272873931235984062096672290760235554190659353381617050297094360454091566787612019416793621158070959229399783549975014971631603116357145889406911963374471601698621739178559307067472588327439631229901870563420169687445674177361905897755341204609823866616690724993318465789837778516173993303947894853614706417698017071056043255497549905594783671933364070736011875972626724632205059281544591128670808580685701591458128790144791145172571129807821535188604249834761532204588403474645957207228277167210557763200913360657192990123558096026894081990723415704175705690750152034694990526171835032829824275649018673611730015523625899175519417862443765115130665780077600118634449164728266434364908812249730319235501028685489720437000887514700541305011130427795690685534797629539861155707105201941452370131340375844001482013690901040878257757507181030852019458164348586906636140890625522676525747973830501417747899223560791400450035223911677513577032972860382915548697453686470640849240021535983701543207201613526769909437893909560512195223947423864225838205087113009031280254837930007453100741615125347128221081409027873792543267157898873396352758466476818162395111346045110452234949815877311822318640985195183710634752904227812496058639148778941980365350001321863316565017254129549499614862978905509313806920739903715790605446120569344584598916708007109493409804331270101790305959464268458853263061676180800842144913826806744288483760390778968070238021350971851412072934932965817132611313684426936380112981636994791780297789214191948194524825650980285270064020510116877533887312489199640602915854749681904563705911098367376063866494987894995385347219271700691492215232966782523091819786272400376913972555133104665850903387061912065472243227855700040862905599936302484091363036455390241355429286669130352104713029848051264708735310277364867408607812335615354718503678396830190975870521010433969444631118796479132317723748558599797572109840227657515113244982415931548405884112831125381884840042371164294618651822459435490464640475346772164295446258793736436855918692888930654459279212508057497538076812009470970049810675142857600984767796766127419464827084489796400111977582667080517286969634683944983609715841032332349884972990701519361730453972285090558394664594424496899509674910909841397645328519914678299218541743810515391699460178022619476743661155904308292217973003659276287588227857663768572781445871439897729273675895383432634969025518979942322205960069539873216740047368442938031186917000930379292506444901471709841697172139263987642185420444077616206827036556708192753624523550887801101085754096151343569381976955727851701998888881719700562446016123735203007535289730450028745708419424091044472169127737830591671115913536090699731330853401625991621564511217708074862524528574284640948988969898031106488012897394260956955947965648956425019337459160596168646392715043103382509751004152533347589131048645942170813626819096679075925259992792580079373693095835938397116222062035992108503557451778612552486831636720188342164801591290854253635801454960623727855302063428732716896907010414476061820433691338158578973018083223130265258540574246504984981828976835034789402459255036328432739121119971612256353926207038807748529022762156138300173768674808899760246383846210129925084336968047289035163611476843089659961688078207734523854925608149907740853382246111708779283877963591434639448293360233588272709602993064115931870895661873503394803936199915072894155030922213069951131613172114071161001472619822644489819394311925270600976298447758469371319285942200242280628173672434418182060823574116722884013747327439689668895302994482830822930486080396239664188910194937768677269335531938754232605679951642973694694652460344491849017876912121679294317424066724269547607813159192646857998789790935480866353360829685866224340112570142373350432379148028722947485024605402724041909007481824462631945002646446295809943066569625685408166162478384766421769230960795747813472677350674440039725798270736278358649074549155758518827528866278620638880762888968522630671802635671909166717627031869336700777661767518646768702928111637252926465548739455383910891199617751078924529473240396394057860553380739684890367589972077295630390424697051756659294942859697294555139036817269060878331796230429734642082883635283739304845546110771122039416553581913136784614069630040778182224455578580327640847756859613823523592258026968894453766314093158310564027414547425803330330598079866965700342532364616936133433108324278456626817054869565323583235817618634269863129103466741146737752175127187547341782125664783267681045874373305068040374483201651850833459424731931545287499119812510442912851697872523379261554075147281198175317798961850308829622091156807767429747780580676898551760285455479522218359458168687294420151734344344607692560773051594171892865757770870724026507146571602501105978639378475601800569186948343581951852806566979783008698879299450912759642321256249405658647609480760245334725623172444100758702514082991340028393662042446096998347842123019445853562568016087049864362360275550696302956600890262757720404633318421384704858187945922219573499078242462489408636649743164475111444215689499140968415700587989688115327970519425637204854659000485304406852912215394228530018815550437791865650127913488916523738951545051007529161069889846633726192764666723415407331624566883307801909058484605200837365127414160042618147174104076375925159592338520769080312407789024299253120410839423630458405060646517639378444442835061729914353343348481919955363740520608655028277362138344918820943387781320135832328990171610034672119087826929449352311645761170772138906291410081975606301861808798756365606439877135249929760338208732887745895410463718110039564001784442877841104117807200346630561009225830457605363291285720664635627583344279604739763180327161449710097547802674063617637033382816955004663041202778602596332005711079689848367839371215546416031050142203140336215048248569286470465685969501046329449844604497937632346555547444688543019180020960956980286742209257938338404441811116531817449444529269041762844992189723789423452761761139018595377413558079293800049549852054557007314377597134803396371584292287339474145365254465927794007847147742826376101982390176269836646171549579825976016706362427014417082956199691843252114347692846791231870559464595868374701442457336660204379357926723423025087929567304136823644509710968587523217530232709177704792861864272322940431413631800060237811277358933193951598799726609509970052633467110171145895514781690174169836800565850003881349373084497233506336828611948386866866684392584581476608028158791489072531559071256793709517990539348001998837258360494103238909395401253775997922021014707146618600986623536523238944051141838823922807315168593770015058222962242862208648246431691509401624495091807935766132205063786590496143974763252558099236428452878754126702641927446286075088151344562287689849033729159789345274318976921344020144596486699403651349825245794495350365407018564395598181284132435106726882707549108657046487153929977274338726205661917816179459002415054711535009393206013316207388767523141036073340626031990766633537248767032139401936370593009127960591854157605257894302760206677357456780803322817245791158311417693824531002287397455067469060093072274203382189307244756275518021963104379354214561717347993053516031341073169617484440566340042508141814578287441986786769754283889965028129103435232967656045999149760198559013552999214090065409195864268785715403805768175484879412453405885132362538440732677355003694380116979141259258181077176509224915778723177159992859749025608895013449369216861244014375413512747109058213607922015714535977172427494128940844041976073829721142667159546980774989707890894842546601179410258464631674805982983582077180143346239979405795560071896017397906260510482790228728193610701276567192576340080837362003763150813398286831283899206095547541115893376648383314931534073743880219621382294033318218538772910686203558370908629998914928512058797840178856781661763236860480053604805000465949499500423532730923442230433070171877897513851277536238539265775508210687036267155451606285460158548232479281261756768931434524625873867177142026131532128001686357546000899552897480976857148883129215477575967039378058836900954333318213363783731453564088057705330390606429907580917934794040415932806409489484068464739610408437148462776501032690479274472964442985563386212260191614444032249037862650793323394265194112869072513467874099668778132672789347222241350343561650023201163033096306515509358017127569308150844050483031391914982090154279770223409719174276576653565825089934400212737371374171092509393370125032158925462267554938935284373567753567309238893664117476784926804873175487130504543828762331566330911966075808849098845431044553153546367631165645213209616489633462346544178264507000249129198344947181223928375591801543091835663938500552705022656253420431848177181418617178845933543883190924320122985994523932074219786956726530006825942929770013535752014015194271783796989276040453421259260831335785955866645116125195840748186421261230211225994165021839207029540790685178504477048132188079129925576425822168072748468715089031428402513558199556792364869265450334254472333517049775539134329252040109110763886472618232546477138046032079556955366299148565728354196457077670800030746544484759441022656348004052631293819021022852215729103477075087887228596660901586051203376784540453620734421647436862325452244698134581443312857966039738318391863881451123673901219281265528579293467472686249075556915551994988134773615956040342228593969220852757172433448980046035866365665481019960103412846279572084238746064535946274576099346905704017965505010310142606028479050788794341331734799891501263364212228426885192110287877042229870666110431371864034700681735517463035287505929909378505469081001364665207297468404543479208718046512449958640526035175619654630542126187763605579427139042249686887651025949790636831189826228135900653431485892821247939068046720580198425381417583079325442236868550451965526438719270628397117445058764475104075969248672732948282116367232667941737204109178357743091664961586575401467433281316484895582616292431908658250431547180183615785535097224642044055205254049805824099848215999166897428668802194227730144718202494727739182717498627386301418902075926829467678835793881751180866881810107086760730888563944666321601123438226706320193804690471815348713520608556784466425357736471857652213712519310864229355847874172432966209913056038670184387023287889624588032442820257032840710068812265633312298768375655680423051379136237984058212784160657924844537500567702915061546850914826036166160194430711501130838945946294236273247901383264018374377500682919467145839004802544146918321919269952094522104750926515893506930373809789717787937491298852364324414866997831874888560940754063908338362821301164885941246692214559153657234357732718103752665615380261705626789158942392865036396754555783748652379649712368887973107066926001604360427952113421138655365923986812193102413392429061103429280560919650329734409736276064301299558455169969620405439914062948748572239457608110756877029779234635212631269090484562923831229898057021832207389595618951812411973422140678240159689375648283273694353227308640805289381201714167862209185477733158844409316187967473857106598699736044306074968430939843215067733958938481445275423745299362877625721186577444606574671508671458771101510051149661781576873100418428507340950698589402161214142468063946380228576456461058242315036309657036028974283808453082372095651714039940785893932748173563825676882751381975611587144782662547641071611438276672489393879154808438329815090614043882773510416692600862894144131146823881226473902857181327059034162025557772496660187100863137209721512544284753521384199888671544598874653363516301063365048743439924665801779987165138987986567922062273730879453917917666710194310678942311705130537745940387080075351293645945857927868230397600344996310131859320032404415153165661003072682667195595844727404805065073002151884525805280192896629180420757335179779318336745197340261086904971057709555378989176909981306783614224983054934594170082157235341104613347265039041338079518745648732226996803742653054628097677463669605309946338011900080181253317037198425921398662078423094254635435128255153815050595440195319137641657562632405218491561293484375964499660335009143612934280797340483447497905866061213771151367144003333896106146473106450983979631137221002158792239621648007950521099984487862736627811355872783192723848865237027680394171006748558733731466315668834662563305358938312967306659699873240543351196995170773422542966199549836706828336263109986974304950597443087199650860212946233740523967957319860911809141035732155289443262214648833281067000663102544821430854908593396059478487232115159555504246138415298901318719274002653021626721448112770043153490130932145151278145001065992894283554247009914150494823001597103808195045472970168848124156094342062822673526576038590579369976644833673223929025202585517816860309546925946708071552842015321037588837610821405156180821659867417873484077093170001836305048680086326351926984062295820157209865405612776133189313723870158612251809104408333622160376069739577522167383352509927448117886331264668602251554993736799481806504542004109516279629172676232281616760595186716795253391182338801132743410485445665858787511017593178665851569126634851358264957044276806049981511113933897254175463487672054979539402677079826684950098593773550653353709192656147662518551607331163537669587508635335136518468712221834465670575596403567794936334627603770829994913315098220068587183554085334792594709699539699862688199533876279043645973304559606043188845992021275970000540391359307206220679267101050755495746053675168390585060645295544563028462741511261232868255243378877710819221339076006291877513595759777339346793703684200937639041093226554271470949985417667213968035210446288339567947016452065485600074746357825165910143211003873428620665255222221887355001211625374638871763783137931005654847024850770626611116967046515235537228546221695215624634798874763650350203866761029231881075049190331876389088479923804039030772294308863344060667877096248769354939096579562797542999370851985223396551032633806942251008044071292939854504829476553962061015932398942068305981266540460328328782871981313588910453327733605968738077980497074841603004962558800732867512689611511747728119784857002603300194917800905823513613326110875341583028773106827129215276617076934427616938854969569011506749414318225987085851544379589764086092517410739723034350524254540644356812833346443446078054207388050640904046742973472799083157514301606635668501166899083157394692871125537106777018476641415084046142758099162584293816776795547515322849774643960823371133398957959243404904823711739106163759048718549923609810373598964953952794739049112845686430792775455615789054212326483913309866691999933233400012495824256571641159580995055286635459403872118835445218859164406057539710341927194029422901683778044375025762078900801492438445972193690415070063258589210338005417027283692479844894250837534526057907255993977302341610428544753870908875998362848745540972590152714743024862264180595839879912772147852493823595296071937740112350674125991163519034159485889462874689007522878564130542213103655324932032692851863323653534623698963595372599460861549577694318776017671088287026672086024377537581784316323833504656769849901129068026607665297309731852468357489411765165411707660687170966548483480525433916111904967198593300538652917986018440006965667118354727913800413294701244775732278092332227743201218153245848206870356674383019783493012693049904960561154130312103253169237705040693010477602980204614913199547939695613311070877901750821597825563161778100306934468243528687325676980347596176890779836067103103578739723575529833401309032099060860103568777314622407432781887919512147642774390538393277944900336586679138675549350436280695583993548537227615298272373289101828089731968512342201286960363619931568756027670648148327436400305537866497763751664658094576260685154939306393236720724960863752311508142563672493417721096278867552752010438190012253714664191432451653716596177151064240786092391741954630579163913573090647530038180678553040683644875969278436094259158837873889832946497509628579408905653190487291390580560274695778339626842676236150066656449160057812481937260451943620994623260841090899219257189192811300725632226309280122383401733159993659894742393734047097978464877371771146475631924799404027628478067306380271758386488858958665552689775414835635709687107166170696758726503557170466725911043902581585607575642344067843500130782780700996932047514034615611816497344515522689823661927279413381560572265984527696717816575212390740725032058785528668346968038889388151305419283609879048794991028340757261751162801339235416568592184249755141320206544470583095087715894931498413273723375511020979287697615863807632430741421790351711908831998387530141208067829537352317771878320288680916657590808846216548700484370142670861425694933246648317270108865415943682205226676987143956152846097224619663826683792322894241646556323797164794527387499571052681043939070165702459571403556750331262642438013315045149522592405758410368686022476117260091817254579215885180036246344109675055905792469318578334152059823906742652276732388863131679460326490329420975260699997273463799034650977182805982383403896268026850390792033177220403033670938173305965457193068313522750964296646932060909352143822957856147183767140364984921019605806113851814912661239605591626262674493728245870197576845423837100425526888349125750183235346192900052133673342699844973970669757715576924984652159735389117865809208155837653888377057518210285492301765597053992099553910134748447631834402026035637343927546836576617422597264733301777737880281047427281676250387731201673421808044192190892043481326853571370529886757826447782095606959075489600044618683881173568030976784899147210210205564448382339001885873133047839679391962584853366924358615492358049829118905250214041598026808757150010337450256523999664495448217415242003966435971375354576683491559427333411831074228414317747089290988372835505095478729124539304501574767800912615701229280273910341734879780166861204890565589795964024540734545206248784819627268913801149059469267228917032060976807342595996081582455072368533409657138308450404937213863361435122739433726240164991614033578239503328642037103204081422303356384000583955407188931417156515591088890337489912332050843858289373397165580663744084479330631923399703054820255843315995177064634702480038371689239815919194167089945761578875120353582107676435075054877604214324450568280637530985727161569977008557205487236731350082471929044176867658780564368056225816505518663310658145509525752621571588289013685081458913126090115226043266052911800034685531640720502705364143747380958591699771057877635435736662035037819720996075372677589535651558277552990956704054394104666044287497803902861141383264741583276681561836909277581271501483613498476136171577285318944792814064690999630973325601930049677925200012773496301076923420777500498734130012017419714656987173906946703775413112563765463606380424386878064403720621232144141148807425610584609003920856635081026525911515419788123518163330339205093373501842197077482605362625739297729277253850974763670272079983753582147985270122490369719626262424361828596516172861198750003797752605353326251288907338226684821196283165507539808097181429542606207205686346370456624077947697442991848174518084377058234136254948177018157939080481346704966827830280236242987256520069177558010162805602158050750213354722529246701174767052997895344255092638344047855823598017258350175058758439898759473616603099455777611053098642943667740458765059638176245545199875839541387207229240760799102473197209619156591127781829446752509784730721426039200408982446682389058494608897343211949480584175428460660104650833896349490778762555961316184516518995180378239655829411366386994710504406795045609455980024315836459710112324641098713074753272192803821457558046421577397522023720835171945879616278247836984118298772140413995001034792456461928668494669484599375895443215980455202814590718736847416088882390824475993849169652204200338009070970239680075793606643332415540577154995054753266086206146077165445718319209875434078070906111723963727908064536449850426719415966355607990775110469541729784509796790002379748983880789928931810138528218788117235333821959086779947299158588154128791780478499331988854516492006844465278574000921513902922208140547545578843090911966994333105289223103397826916631041347108882144252269805115857441147542731953783868247535335607650963037157997667829699549451034531965954094298453764034313878456648358551995560383178548745284292860549987872551436555015743301813410313324253173012876424692710473639098002396585228508753077231616928589407914743338287295273453092061511561959014988442994504329538357617814894176810241562778412981842046319489585723190631308648421000354481421516878413996043386151365952108364102442100791082281461590967079238397460151733331681138749119910610085035296417615234719234011145533226851247537820666183534010318101815166571361626138349995838543637054156316694781429556464766993929429599816964872703052451638324266749794134942480695930747103752784336753444868206224613537351498914505297084139460566965292512630661037059528748550704167512841606121492850837779348636162889251331298091395822250187066133609933654521047992795654075896598736382606944935595976938819341725728921759761673063854358415513231959279562430803215673050936829295403913940572804364523577678602748989744731749612331455003518594932973818722445309550388891695349190921933473008832440285153716257024992667928340046619299045171109494321814617852823524705286405915255414854908827596161750178674486976201339866661518343970264963132184956673090917494882778830415109136812491439459385096216899051779222247067812705365128297166855894317915751433284626572302955564093319301171305660677080067098817523614930343619119201676989562735129752743620186082477088096103769201905958989614616338258722851695386124466945583990025759393235480599206004078860750969609575170957764144236213045699178380570358724964838078606898750066810792056275904041693203581360002895603619519535002543817042997203585486816963158512705264202557637897957187376355856716618972481721758990843764100984147162820221094100900582384057414652999396017403444865527396465747606919918986514514402555875544902587624992733185670177510487488277846364772840956009758827742326377474369946097333806159917749940195098840280812329749524717423782668220312310287514084418708009647704397675878065610164275246907711394775709973541466973791458127487242676035877443276101791838097371127371295208082170964224428724941856003156943982572943485551675225021524997195049284488779629615147997430447592618643508231095130267837519605932176636759831311190483146004839296263023893470253817500739337207055723154013761500201170843980579749020680315142323268614472710780436574559127469981509209483452142236591361176246290303004937127879569766662631613407233508874895097748747057847179501306378364254726056296395890872133713624137261026717687239746461078898626356885968639803262923197444618279083443195723873025213448941642314808481561789137141434865297046672427893823244692109800744501445133339574015162355251027269543102626730393585042661185973908272700633987199278387328376862441374971826215238793816029239557975715050523803861390937894892867974289484695875881405719688389169015782204650448128468377753443487437746840264562464346912386308091340193045590413815508260783790337728455905896927155372138117463747008672094229242188335916757443747068350207218243209842398585505614203250245921559758450362191853048775834008372748697438098886931240394942498305028758001112171386853508408459068515974232123546712045748727001840105334545959898617228486703928734383781761306623488530695020815789009439120284911017696758190723172124621502483712280353925367461111031303600526619055290121502700077751375077673641951126070785767447243907230667006817660573149153299484895197077051587466549938624635925742626183981226440719469857957938873622769415606837588257888592102973213476280183468540679225843877566931035298509753386784964690918516601845668541157400531549023326518263651853247921045240291769642014647537883788385790627210777971622539549381634550048390564352561641454650317259438250300953225403907500679133088070221693939200651400791952664580886217397693425943257981475931762613532101742631330369364395222772621341956555771796601739192665836956520842257958608509381539030663918069021785346175247792917443429220845210198033836836243862292167375218707247959320800596800344558054853660078079398898146531040043741245952793572875401815709364494468557850057943410649224058627205415592962614807847458012359519469700600663054456482801044728117449770543879023690887339341056628165132073278980622440182742979837184703990806243294020373516745886662650460639972102343422523573395387952228525421475778031226924032220491106437040320376143301273888052771858788620602451605735737715788977378769269464604161193440906472330232613275004826277392456950286102388587538749325217626616874782571116603973185773692517014836450621062875192498351065666270511543936064345606812424090664344508173829275831205482993233158666202678199507731097369294270660907394075222893736898521989419816872008984088632829953273087660481856847328575795417617068303801282844181659142200483928768819500578657407328447805419017242179043259580025468899905542725470303517017161815402930929174856587300198445594392681962698302504069386180910383257458627464600119943405577417060492209668444594328253541593585458611937766012073350504496841463282095424331148711739464026827122912464319446501164684520320286896435293075083636655131538707439435184064603884966131521069098376120701228531880087349196277023482340609815195672221523587920494919597005723387935720612836211658128804035069760951126475356436853190463731116573840441085613711605538626231718738647487139652166428060675274830042126414138329293029944999425154262839292979571645515484710760462099639077760070964735242852476870707722441475104484115429323676927813781137472757852382547430251559186128985202066834748664737477138050347810252266009826825045866634489006476212172065838112052375122946115192532031617602029529458219227846210954014401741652168318968265267055647651504547629535498050878416038598603709959465429290558544050203712930531462583934447037104465691546857341704441742915831625129040987237639438000465780247863317325947894667682807803423073111266001481412203568227522230876257570895697615209233098481927779196977044943125723827953322780973179486805086283460958055824918815404565331220731833489798874866083135064653130239406026358153923984110924627903391568924095610819438622037640436216036816451572909366649448507828725224193145644209016779861009540494596291862529150537979089682462020788444336664299956855009192195133651609104534910073935620713965202118341519507453362910032639186734246832437686210493715352659711493412359237756996937722462505999150564286990345512292800895887548048171479601222238239236057609700692740091677718813815072628013256362400159169261192463567898605830607302848279263744091009623386902184711213561302424982256514271773023323737304256608272068155640205414576174465386614327976135983593664952637559594444248364909408918303870599507040050451627105541786537459110110867777994853815720323966958394934245420043067660316992659794001107817759038278140437518036360762014884214140233439933110743675790408536274195836650843261723266972663806825171211876142951109670692877815467265936286586479193284767336929802656308125742452468356988149717364454008085920103989940794917999061110037777383534885138299270896304016701180429645817803101150482834809428009702663996212535594758072260032003541396072083640114155820407055409827468610298861542687226864474272876415791583229556412546420127904847252099488061489297875820963232317024930716681894927062447410338532644617773472231025158152037633055210698137527312974308887594076042195755324299279152326390841094120242495385647431330948893679733866860260884485390523691515188985346980081443511128696239941125496783561789038149777828311203080904592426357837655440131238787688370414889335878789254671790249815856071498362632755347928747412372110956827814007963360256793770475862464084662841474807011010916221259414843805082873073633858990328672429952626496379571071721315813383689429448498649632225347746197938438544535866121851474220094991609759171664102162253716151982835076651604609867708313942140462518219591240552180211624966544067598138426534409775745951432420625100553157720773474691533613185453989584117254921674923467006484730498087072709810806062480177147668728013325698301137621207617913851137649512359365993332892065846793509633665311925171718043981469664114200676631104961567591541372185412835799453040677125596623397072046319203284786113662765262318940266009973091647606646981610640963544992296457807916239419561720834596110033625800834909357604765829679360427618919637197752932346515228461265832161372314292907420818252534866384627021163145446963570805941497795248587342872533655070453628747749034254206066825876540290603104381521489474983460132854438858024919181409837439327860120104981146843538772431670006801124982898874056175207827288931039341550885700718667156912508561986630917671057567383157929659041600231439807041394438445744138299637072584817524913675437221350568562979874355416855194754578562647834603491693399174755733278208358849752200319584405761015982599553741827378766290995163641685839255872438027686438304852281005696342144414729490010239361069847953697136286204853433163296739233326945080865726247972674529894935240384103786428055951827165174218717843168953760293447841735055121354269068349817598563055528186993184207664431485114639053824700462105619129267473551086062274674124238294322140713682556265358004042131738411861949284136594498126250031377717794623018635926152087134857050659727293613536852910023279140233969603414092706380130701723220710469690559813637773507489886846731885856254032283674334835163513890658229035448955440540671020081136663751497865300772422409949018312532002629855937232659920210865515768014471956097654779995488517245914816081536185618365552185042430639079900116262796594225686022370055666216409568959925658097049052395505168658882846429795955684738517450204901081389268129708672272324301378582639252514124983976620267588238892374776681675750772070961492577894689265843772469221932298763558696635295128715632212511575126784530068742900422922336824930544663725057696868096318627928907067414103755673684721726080743382262685758375150283938931009675645259767814081054881018315784616276594347808988097630905626934746335152865639970090724982278163580028486015640905116511341759885554617124721704530126979142525032911136428053809148140678876267299141276088679265651045206883117993965861753495070708803723174823371428004508193587417221686751838972671643456323133948210459360105212410048851003721726692970204829389570398609775847703563412713823214732730943737857419050958758327930102165475966629607952200476220807572577651356817000333641275555071797777765774787145724475418704304432428139498836693938950816484238110775564915337600215582396564644483493859900614097170907640619194262591232200949780651333839006275158995687878813241143222512487028709378080519441911198999475664082794772611798240873980256930543365832110285577382427571616354798775369038003013065624340861204942672287058690792490552132098334325623866977674292344811416356000017900398616778698810123690550202321468378173115014379381104616888083196043947058027490307022315867192547960445406432629688452201944651422046720264378788719035046403624873512053434287231272236619459240946968828072435691004968993076383338905292727062703597709115256759965945544118443816032603563071786735159006695381292028563167618465803166790321721248617216354847429577091126096248250768480184607617675328982949455060204927614918536101329431588357065907690344234887852953604463417421182071721467351777923191971030203519681659789018354362113161393073089804587885692845006330654290021462024356998259803292014669604697813742286989280400057291121456673675740689094711922675276868881187332809452027610721699245615343566334912390439956270406325616001836893727208184567511157704267210741640306834465362495715751818111993566026512893602439451687495155571461799663437185514623477748941557397308998288590778372514605466559636984455283031386133731598469985511382084105693072055203882058787503163877440964616036133489522774716375361991528393265296661169936579381481019510210122345266828799078474550159782903276470112846856568105650897461406778399051370999174653279620041320108900702373128683469545999896126324454461939123353346767586205071900268311506414169327367087513628604071603843122092616773639246397626755405808529952355486664945488914215882000682457680699808746528433918368020279442824504828521409705973801161746378492764248291799040786986875476181812346923947536154860338483731521947253083064800171454352199904917901233486425655647202390734973576220617640904861014417756951077389157292502624637295903789254634945603277078156881798756861271390334323310296934945536727604344474231169453083064937934305783012987397298681424407843703973881264507034623900403994405725978440860648210266286225845566208420784181621239951441442842501459932233822913884442160237741651930710124646900593709613094073205436902653839715781415184692962517403396207989344736678019680964888760302577139918801248904811436728329659365821084483595858243418549968595822847878306769681272940663902866859052092627933644183944882613306840484449384939974847456100281461472930565679508746849025978404618326948349336974357575998813848815829136493308380390875270179474864939822211316936639559859112765206143482807232485981340553575040283385653121735944246151561209866213393776090772264702871515332870083011216244391507281828634291607412313963149932593655213900109608351335449215238389277477672641437402118263070093201175570239901456522194634073473928988119023806451877710362997717885538668194025178956814238649369064444679824076084288212309557707354507150933763599556408149094243872620111920598757086764530199071106658609453506219668132447058888573665855627696999313180088869577869764343414577784924705915617641918017523848575629961581450321820963972345475490110173652862864217068399995869803949033012364940634674161950310613606277676565831287776579897474362891806016492045468367250166977076076437577455652943038599852107052463221057953692961095184927805702067497417335464804213905862447642313273504149939617653259903255974331997612202822969092062983732607574552574067689659308619838352912945420571376189862442070713638518852381262323551461932875036289655501847068287668093094474608181081377988417768281123685836995501320570595729499055586647176332223156809448018602913215844617212531793857603661393285692276274976268027310423195146512129602620491199975545228828899772963741092553338730598248528230809094276607195607975986160796847149674358844384937598893571599997322284911050858224392708775524018156593952544683569500892043808813070804171355380262448610916808311224736840606808463780240636136168845133379378701226537900757974407962123101667956841103250317491186449288622498295831507564819461781068562535807403121198792130900307404521282069928594101198413069694048626761738930749023846893392739770753913431068253068712572885869619558165120601702220186056321512064761867895411007860057278572094673313913727212193095927795016231844922887699518770859379470477501973193658412193174899998280541152342197118037666925864796993946278780583725130670439641495415727804216929942901966047709978813847730455237669959631233292904092101556726447421323088409304321287858659777088810476530652439812062427154747818573699430295754532864545286396659951982473454743000419678168946507233692410472624306385013390796197895112885783260665274892408003623863327233396838797027267533055662173120544128240341285829919194116018215898510225628840073939852304659983890491544708175565382852403980072317288354915310937117530640302580141103799050582692862735483635532406627558073354835425394912715364332614339798771193178422938826249965243024115314161618615790588779815783213358005320009848161357737373551250102864120427931723153140583639540875357955364959248631213767025149831001459394132277945617781627913838800929609114490209265342238688363002850890784465142731780269861964665110940722842730028283144258106512349026654527636394825975370466203800696209418131548713663471815564281082183183893078179940203304919599689803486525055769947332378741006844944719416961644312287087571458578941231244051349993083192632073097904121288206940714540275891594774138119966525977088724887303958304579033421017690690433717771485637658359452035202027502886488527396783959588376112783019709108349744915129689714526653082573513587153400615100421424525401227926649102003037551154036430360944474264879213085057842809131706891726160527618983715631017691027777574401249153191287105328894868990226598437086811406732382444870970815398823274127121125880918841305980043418554828247086620519401087123852244549394646965845332843118142245978432172575309115217144492430846414804879876943928616294622188355912661449312972423197541740717878633110047869978540122111025627618250966013482538001072390119799574805958377071846852979857273402966805856833963007714946653101636281653717163262962394243352031415055867269862047424777591418459441805113979569935808851074469667333510079391289406344542556171962781988863170944990719472790598721905719868988627098837313054008802594500939501019003595816364015937283440492576814819606487739265416088331343771865956852563154877192287635760003972186016435251388252087498516034461346993644871184778358585637089078834670141132644788697322273690566981575113523644401789323625133171254471293889896992126600654478205351199890777079523860282799498120722842824852376332159500321943358210481077818650729524267893288992805974218930562287759482702055786779872816300355340994548384782012417884183738987157254328213743532733519847950966749481761267429383913490901321247597390143428189247525540643236993143830986670022363068405730588252881127544186367280292766036153736069041231082083931198771881508189870147938829357552092856756638275794106128635661424458623424293923003508267256561531562369115256491015124513026324229233389399144854399643357467344530361683907868306311272203822693841135826723831078784562128891496301134339350788347021302249968383301700445357385733426208885020453040992163488268466725567009490168594437069857013633170857522137449164508589046815807828619659887234097764019865356935397928519938194663522049554881484670662524109895360994975097874038986504804542210206639307583111217680444605317863900896612570220024088318239075963778199018497820834331735802739755203444708749353795407265609093179133534612975262975761450222538887106074664721766891984623501223847465961626688276293502453488113058298505997345638203370247542299978319023847599368052949926150568756730079011203138648904596395675930366401997847212753792138801819811208906551708056037081807287379540670455062465363931612043019054550923646799183753769167348570267072465402117085541189904592655704754469920468659207884014615537889170874388705728211585621916487787851745862757330738014145652964081670585126005333416126079623243871509187813612882137843692670246119521312853778718738275222985566646802788435254953257734254316687703718980375196473029323026168361758118880191894113803210640695064491828739727386022340814155162163296241139898652453595454212329380586440205590448229098469244776829908273481678397773963325805829405511514572241384956342250970322064930631384575396570986777598609892032521665746348813399147742282453006655246985158169725306123515338701703209828793263336767427487632040081742554050815690890601975000366021366085093337518760436572216086756688147161116937836314722447891122061062300474459566559154274866269835187548337092709201605359732058032431444049587381436099196437483980973091538105086674642274465194377916726077209948846934144258982921535730192718935969113525399553501199643443972028380973514592357762299030759894543470239515721179044763015429308509212717134630976464205409768834442230782031852217371210897978452159416536498464275808867201673778401143386211013190179497090548635896310862314312468321509573474174019041217651527708402226992193379738783834346835107075209740615836838772790148341361968634682643492876974784762516761376553779606224172652049035019589094574452775708215702263835021672249600999678563152663677644615413673976017738420846630774147110280465410756699301442666617696133931204541091590571745170435760806026494488752948880703667919754704858928853057618251896982803158386130009582708901748544263921601219771041976113781564554234620031571119993365862589657908878000209473368769306873142722012048400409164033021895208046586219139383517051827265824043611388747658434759472241091422784578974739216147811184556425076715681192928845705150986003494344180174910908819156528407008655053891766639696963815448629355116270906664854246438907860990498304092675485009634903768003216084669665514604186108398956872450414929334075911950709935162356821674993226924522288994509340942621402424682854864617191904098087225083544530034872733814105296485726685901785427556639515904887947521835434455487070610127387444428649398813664367610320152701940331865176166340799018358204481065227941947885007895304537529985908979177932105756689100583450733742135437732702792074595751650650976427791825360397635150465078058398396229671061701245516677361113646469049784714409319493280958070150263716906086657978632446196498873176353870264744314516630947694980118596292000654243523927943379672231403375961320712471831812962493215215698003822366813379702974801337907015584014303123923680068537955912864166238579007346245329720753932570748436996770246452427658241874814351475972467205460004154325649737365170029361712366801770451873455491622026601394088289092559347019090063373869666175096226727965112309769884700357728747444049775988591558091060830366231413437354574075468673568596238142560003294133695590437428796914447986582726134907497439599399008048219928825250534422936936563692852010882101985614987955930855140560838551478554455595891341833166953413510779777678599235833420268532512851108522946943732624437807868133944415192077478814290397579448584302377936487518604712455743991845869530055303117664609982849454588631260598477003891766455853001936661473259987757507819065573571489726900726155942169654293465347926794980871277138138216856336831203161447440293658360252570238933443826491070950789466919711119516614166416833257005673543729347983170392408243148171332884955557137597655133819334252079517381051608051549056589283545995172018098931881325169025948468854969186825607971822508890859445007561867029340024871790974113156276455011404531174628300964738104696006820878281468135172667521138297800217249427004679684612503812486458094052916569990736706125188208807524889891987331499023005233765611289191092528578350993383705143617364240816533651490737006680494761601733194401162055025893137549057935417231485832786349026616450658590207503989289154717366805475954635917584905384349824298526653186255632097422890846758128880364843271890641504334096503043707141596102938135194695203175976122072968002267879655709251337462443346908626610105331251732221458719033264356793568234783347297951364344861725996571332348129415162459216950671128456787087409263838317141574637565967756324795866179043996250177122186830533068821627397056813696411991039248472757485399317453330068573885288533147333159484590899680713670873156207304950994113264279349482858125902275690328150198335230985467318828995719721596492488524787376621050747268047453675355081748990018389192630261411433560295924737795514739968144541540488507336075503477852870033736334486313319182000187741811234543041603589547328215944181989553245365304843722807802946086497828944965285425086798777116641144112277783220904631466138968695290069559248584693882312999476918458137077571033401678781983199380127503557527414042400790517415361949445578578632012941842251080310669426045967261924666427817803618843661061252081865083689899022181661605651040228977810471287203884856662461944640526468251492012050186032239135895338984310024066844605405752286224844279707670867747985918320690366419076641879437837261471171268880028951296479505390329387129801192492564879025046185271771819658844889273933895707740574420110023507947017881663095039641958010934938744250822521023088751953153905899942360056423660005631340215573859480179109096630554572442578398003936923113889887801333857373760626985372397061861322539802114056554735421681024846413978388061212263834719520048949693867277545861675827798263580465663266664637922229482828612188959186209982562721302836762878507540924802096669849846589384373954589627177979557855973827381297900317959664686591589816533315365914864849582363164286377021488672976089229171597466269759621726575455443608316366696111493553205951035481896201832705752890696133569554703677190385568601640870272121990467351489841954703837471468177113105584318600221694393701584315106542397384953522724745822557332304542990015035028272089501919897824753729419819279408363495591963906085464104579784111613715455614131919365233365645987667730331904329168599818828698170259347921214010092779089014758072366545099981117898527588019618055150685512754117381367484082186768089125909605833201849827622427502040426122373324213138157659033861104341624888090361939968338037658081939969361161485747295367916920869128624258000008461943356993828156107233659912867247795516980544975794488714172609362032881464404895175918801411084026285788398336781282440048627065858354709252763194078484540954972949156661833481616362004326433457527263661922513284091841291063702519557269446386983514683754277823433762764274745634088491303251038160387051341584172659260955088326826950611447331602545519566916484380220037916939378758919785639914196391181011826284911601112379225463864382234190647061960482082172595723703125612056167877454470834740147745059765811151157740994876345286656711067020654126080098934099414113055600308241735753903965589552553122400239240363383840981685141801578139769217500267914490332338224261432080497611981543396739779619667462864320925709841473361025825170531486652378042234301571954564043313702064900538014177075066027911154459864171079633565893345441452308266383092188190442092308858721945593167313857470300887815929604720423643542631624116480160515406864302268605714297166154635529361350594077845370232609509677289003148908580765013122835619821837400033765028738072939476919538275683551151788348442513446169494548011350485770975240316189941313361639113664584952672528467605672622353595285222355561361710743572362384526824919922740354306014152330656343536525954776269402968807014858327264542392300104954474643799418310908352772604149061163705524248197423266710647958092021114316562163128916762105274593664707486128246223462357439758017665618864490732167998099127629822600067384440951557569809318721642980981732508543199949363978516097336570554989910448661545024278340367804068958295830668639962634518555128436860998603508470882807578695941363911807626044029366385085971899318758460474606986215090342025178139499834220498881366560129215147706839599317836025060567606419582507745951357420417056504001279895885215190896888499718959515140224260795719974145175720194367125768483577720674522149441564254231376186382774853503352933592036764847585062810817779445954662904445985319011479703769271856882003942699402318494940456289159919673844132058789008395445947649048020745352970796706286595605791629939476797702959458818515957997921864514358726904343602849432117857793688000280323557345946343702402271852946551390593836982918671205114728500599727851661027712387173220862399951673673013072367395314099748863000904889655903296967598310940205906346974181803037316548477553326505543638664329440940866948453698224952450826213117626286962581408187403099472079522755720931468973524880183699802596752586666359236695741551061766976092944552917941440214839367147727314363906736247720702524620108870575268982592475791592706595121557545598348561782847258808521241491097716753087298640977663103558655142292117575182334464816972572384869828480272469815382638615356746942919112386116003972321760801583079091511935209941046460579628583689749479109733298964696808800419616576396208440262192419841096933721135771876384849201538523605359587573192065688148952454703136250836177596438543997626116059052691333226214502418748335987815722241719232368133171420632678427018389118352755644238613494501509425603804792497076376121714306141875437745584391124630238235213190397852045142586227004693407045424528245118843965224670661796073496408190594044825581872071642326000769567210479405654326756915704122903840033258659271541862740669194785517876457955498278003783332773709696793594998519929576187078967641895445865665435270274915686788466910850845894343612088021397395169274987899416153343020332124302874669462195375288957420447624576244264813171010332053650874179246606801320982889885052031063397793677506679380671092858427323559150676062700479227045344612592829610363129699810145058869385034207239320077709667911072629314250197155221458826613048006691873784977942415249021008837735227818069702176825276352651353047286628797033862095199560300674590332610950030153452632766790786903492900237402060245681564978951633310402859767008189778565619426983005562121510312655649644010796871821248365779436390794932203873180324847936602688749458719257951161333266264712860620279686278881660024290802784853738962248597721117348396650649972019562739328191652433144307374512707098593617727818080225665433253859823249013831606251059639226446262923494397879571922173893258148577552250002957984776145191342094737646738169183780990881674167629684576321999905303008010131587501784925305667311307063928405623995685255246276983210325630272033483629850209156437078595095300722851103190656337793028324938651797951311552734557030246973623957918005193992976807995098294207668724208358923961717554364776499447465279456490069733993220691981175989284106929528478513448231340195138058833261412762314035195370412451973256142788204253887988022739629912410956042945217020037182649972748663848742629037444304949481062481198454277379501740721452859743523191220408670875929474149755615118939796774172027479862462613400435937455185341449925926482646144953592155926033528503428294757426778055732199597158634774934545076300859892619638827238719559383545213762746552325239400754381550030448346888810377066919082133795033812715977309859330792462691837864812715218025014101427552014847230320667738829465281137050525345866318839977767380570540763628052573891432601901137519588957557664592429482764963578344970849270605175060561176894057414908102996146493494578733853558850232533928096487404861251383971834580756451122287282877676378056337845218165950938227838607819491746429545966306621936933972828757735549659460408736844068902115879137122125584621852980551251949479944827879983183797546841591105945738643063215381032132052761685613321259121612396727345271068895785070549080340705458173441753295599476908459499426858666506421342380209317171823425066115250472790229140216131765280034251364555486716764230124490086906651375678678033127369302005900726005048645278689060501851122796649741908467516205039762233560495736765958894677319321527581982373158093609406021495708105739897457875346523653999945230044841733942188754879929492300023482546960907474209853481728738338633664168509266318757504760439777703623298580723717845029224768495805843164327829273945445592029630179809036560322121150176265628486074194049761815617951779694284804083587478921686216515147943916407189599666602261599120327771089876603482509323709352842927726155701219463824932138604579073689200041404186450997315749603405927188837061251903965482138840576092483053576011907216077788776872049836100112460465449591026913810017810403341670979868103541876667400061438615518755345365521734666477013460126737850753245120157968907515408915718778089464219903915616704066827395264726963413717429327417091532423713806402198864846967574881567455620873332079405560209448487581691029001093483205295056021817211821940932346358205908185599288638863696392862003550487900935040857941610676936376327655496537701432097831216566282522783123900027730840252506355492756478300459772550420820924586262703292742401616606995433581955392414294383383423646597120985139309679682700967471000479599574048874160064022750240862587022893460781937754743523316853740829777718825153344161080314767221933167950229119274763900360989475491655829411854397393569109828610028987681755568963271023131854275920889388283074055599475886967286876545671421361730463326989052417264249035568238837113449502261694684297251466637953044007448856637589725352974212210037103362808976677075125303203296410234998606910318025290030806003809907307752018098916229193733939645229504571290637374843652528577944886763357630178670164014503950842517809613908676902908080922451336098173324797422024785298224977172724006875838548473692743610509513047145356833728523865231024700205297524742983068881220572018312202261606355746666575795091685238101779341750824422927454637653978676973139983666105988120546778376678286550129128505645173179422718564426498256864000514465664129082352491427584727984732034802222648797550316711194193219182165868918647766641610291344651417861792425491366908480852471103715821526536430541808450016296877216573178215077592291686072124781324902485800867961456377085950456883876385352361698268693876257840609336559142835642528062623769259482028959263158492403598814440842099508247612028926128291625197654116521421411531497302198783522520914553730955899795088925400341428874502236521360806694861094833747694781693426288405480192031886725929149122034072098179346064664959817913274972730985804732787373963342469389926717052766573922258713378013037730899041500368488189365310566336638996349420150521704425276454581140586071591383238192843139109264251217639487516365735417041162281587849434972690976915026382943537282703595593936880515988748521247127986949691737395425642641772143540504437771706910675011494810659464858176409948329289914620824737278798337959906492672467101353550057952188514569253463474599137123779151089286711997869320446516344200344800602300179745084732322499963236728427286642736940078671523477479677090374005536314492354613742868833209688154778044295687438741822109453489963295272829080694739355575571224387262184912363320592103662684971550156321534909131670817709505675847718287614738730388358136568554804089475349963455700341897427173730494616937104498329653051121113110921087466247265077549984393462876965854399520194559901965635769021744313119051349663238854124851821462318715455935127581351968229065105178330633089393363256661569373577592960565409556893353174355801548633652248265552358348515307637487053170143530023954206858739161864006594592063469193141063300139396616548602014113296262151945688586807136297930243227767795034514823889642134801012242360413195427229579934791938241561159903945482544607623381418218051399065276352811744676179523403517290532662545203776639994759903890297937880994906208293325684763317320162456635705465296737405064312593956146125418089482576108130622112679506253282320005632801073095390607248631900692412358630592362849956461394782672836165569285338705513553273686051593983834062764888785245960305376096090962669500124269047953366560811510769189750737536380098374306094931600488851497307531623946397242787551043444706491255138101438436822069382904447438897113940221189677910781465735654314137897256655466481149596259507800923081605717941381131094608252664958444964366410358011451936074605277043603714449281756883987413306924054838655504478277810149229645619438779497590323553564631769185751602966209317756282038736102187705019095023058216956407079935052947214353935929830957067351411023035069467015474076822202981960743553198856555824881185592305264826002201081548209021473719466736777171727249975760188409168441903973001478382008723141216762878428788607491394817361993888255199322438524045291993070859291761128053489705630082103146450075713581739188614374626794172594019060230702751653456076108314181956401372887593454858748369660791534018765615411586860667365941184961352413286950037769883900251848237426524210301200957323910868122651263737622114890683484016074357756598814522604842570970581592896145500181937660936969283840439422305350713277145341204849790569747595811560982111988441759752688088942335371481231779552826800216027674394615474039940366481807682345074870772395145970949674391050282664832472807970654083517502495304616158275285705522373930646538740608232148471181055557159693239568196755158656096086910061943223546781175883136977582532880896579921605321861845862355205095111906730018941334441255325021491259289413895266591686817634410004719997001232339400034830304034704799278051193812540806254314866523136338636449482832157489954822489588048662639615270759282935093480545709532810355890387813271674924898657405644056966926036898343685195963664855324726224324648257508027036842349541326379679447395183528585012530041525831756137900065874248050468861819706656574760022609263628372350418298193968753735145370195313593741003067556658455198219932920522646698597137277592892481268776359336811250544517192216942568637673602087030685726589411831494003114266969231121247530488653832158072884587605955726442769453895727107959208898555788645309907239716692711323704313327405494232856941426553734977945380574388570244272195809852130557930657040873926094488959359824932891381551052669285501082400838570929413737769750789271701552780739216373576065332285837843126674894756538286059897499052354803120265174219519525258004906212977081165389367665125950213905359337996882942375068550859241521856158381606690654364089784080869674782261290776129949393500669682630056229823855416955198400206659510111131905930646761147986143744857618407520449929769714914322492362202518361293110021250133400959007020736790362391828039695223611236276024705905931946510841032184954799339766574791188761317948500184491809085760509378496595912410872938466437743933275645110930854252158194664849472391376049490174239829584935071259878832253720899739261215644355983780863544085250217779476988582890311109384568766411417214347213814772700433758168545746225300917472211347691666800730341236533058162072037787566891490584325964144629305945707291146391216658363092655444126847305533065364273101093125516250970176026939310403514030847667223857023618845215831415411860926962157837777514837651954940189762186711046668536044255459339996565792355748814446872272796052697966567005708619303474614562966382124516390598322688731785515007141434241115828150848140547530310939606750251844961419778395548789680889604208913453717319056080084404955333396666833227105888736452630929899439789041063990781367258463260433817223212461295711491270280736267018451744575827843420758150846489256057508571660371047592650136726700588184031015849189283691481449169620909994841342999369782467823896841001210359001867005678132614274599604843906974025872607123098131565677956167810965520399254189655638532726324588733925109549454903480615356679601868029882316575377626954666884140994679682123052961035289045628774467322779863843633937378080375377959173674458144762338251397015860589347349927876446419981981165073862640830536535669972400658189857991122201869575877663472953531856506213520607202518074163105097173877583799304003675736474721352274671126773918055940537298407428836837304499288398366475954191861296403923676103862593242710793516722625885312853995467543114077851545689451437627262994178252609224276169049963053218110028569696025592120898464232131397892473399651849754568561187676157491861499147091190299831538525309061656866524607864629223461362327094434837885336491040118846466395354210836672607355184657952246813449751262840139786695864019615231045738310033875512586375304346345334111954501263747763804414908441658140546533208192955893560418178883734233989697128977207857904739692303699317070451879029101607682652263651023198221651299098488683978235764069834553842865858646299491633490507303177262558448523250870720713549374805033640407825635810709186367045211951274050458556482126639427184184583911134292466284643258019592628318460680354875097111298437480420427261344855516315045230903489355223652940999076217821263242257141072612025763926125036054127353706451024925298128210405092529698469149366499644709586125761425299959168810096135124133341721599438793841936249651001152844914466708038983257630734555102014591254868011017346684493630654667400540438763069962487845807166967523562309194255300070852853974958427481451421061813204419537469573065194502235872447394414148622172752388808111463887025678124689848611797604626576572781873000736955650772176636684976892618220965903758430814159836680407132086427640313218983239633600195154559405161402008145679084295823276878087194012237382687529059018398161951053685314968734075433877897413581021937202142625894241974760731829125406427250457447919558466077668685182641825650976003449226747949208104026895821291753027344272277938610675794991418115326149876001506885004541813696406879824912701911059354037562738596895445480889583554162777370532849147474858664316278457527377201319546405457672348488821031823304148327083978345746953266610278902697815049141835258492494276843071188200553665472286247312424370833168980289475435271312189372054628538533822824010917792350633495589821050911274203115721849163668464066828243209200563292670689374267238589302081232023910320470534474333666453597324364281204159929881019082490827389391651352600438868334052943829413228758247512213307987919114032300804050723023454838713599737318349202723686315910730576548281615583721242660116307507228694372702350574790766054534545022717866387894493085455342114996784042629041210011430499677828166467446546610862754787645471162150966253731761604014877626376760499462851520792786347802591961375781462363611156936781704986976317052374481160745109138473363968251964726308086524654503414660376757163102792578577121284778210050041216844423030102056456212408958675847989616489929280066752508695328007399876374101616094203589969715872107281588519626672106324105852717781039726904994911670855125059827591603610958012969098668544981280025141824565436002184319024807529414122323423811183736278292034616067492466336495116824601038691516341325765211860248843789260396809321020725526276568261231399616707889511995401304528194496467852324685306795547732344169941673414786470306733947660650258765557553035226855087015593155670794848240574946154142039342427196660019846346569029156935578856558488854882064216412204518862451458214060517703487080573937262233743691997787501165731556195157298488469019951978474293903190279225617241373511946231868372339994888077799967709810665879078991780937364627999529331557635962448777411795038683873710920835251123885397449011716962125612425968594011891135539970529585388327804774300257727023611667672991412561912906588706940343331973827387082116845208727690086097559201513561144737991565255071481462007217766119826346260727379149221174071036865144322857950780431240639923309766069478079204033487916507347558936290754206110700547943581335556338646886807467750766471090483402280861447811750202899958423415322179410342546610218289567683704345840985586352538199790765586468632058882005922905001173261461895552957436998827723169099766531726280276609927025331788455951948289218281069635180161825233018134553156803764638516690982936429589397401207230007682056509450524244006930985426289742970574603792130630448306486738616485550054720058378801578767748686950988943198533636634569225886786047433711344965501315884302456926063923532901964288243701823718578703617491985923745080410936771191550985972227717132537405086193993153870439222555224686958170764128115412560780088896051107986029754556589281785515702519163992559686284715288283074953797819721528245141091563147986961017586552614331470552454790953680449698065231249518597609587690446122849110058858015396883677908981509886746334608320749535237189946981302931556451982407297423757492538162331863896540922719812337273785867341448021543295284123485221813812140237145789968860031102660270335225598704141449049513719858778635355161433368388788981889026393302418044387170502053154660102484599842037528632917043475132395458495208281042507776740420031187223228065521408376634965699395199430802119732548481788796863250808397639151615018000050838270287058929083070347658722908098094847777507128858716688653315357616628397553386406779455419217774848243876419831778046386322054127156402800206068106126040565254245838808161410973049080406988909103173632652405168315186632124363265142998891916225030864376894318576517458817995139467893530296692287878347636508449646720961810545533130561599273297290273919967474939039033710200224336902453767284161677950837757831464926510918869029792809119902899265569331843963052011485222973383182716415246732346309772398511962370585965600155990186358461784250620315280604273493709795990571375160629294275714709657304095675914261059281023228268449836138588706686966891918194389228315087391127327774295191461485508502831617153934118044018532386608417573561538610741652891634268449970246553835101293421908517958765966382068278069053479717721228520459553804139833914004514546647918625832262545455964581837752054208935785600539027623608149013140218271262113486943175603435562030771105869154089209637814866260785037687408707709157193970927421848665217377968287957534632024513844425270958315225112452662070981680687828231172575498882641710431535416471188227912967269379728599269615948062372333258326073907935010734646612583812268109650219385997956512152396494315077223349073074717615053041630676383771556839466481809788085794588038465098348109692197972350716943543987550626414257364916467746097517590769903201407502896160236782311253694487003675100027165915150195570196201160037285354987909162283762820700650418824102455392127645644441311991275669617155557117509138679643394592808557277054711929418068960126112953098676355483752047274435474577798788846504214936136418731828971067807539716942751092963774695761979026258694691481732549558639151833563175711676810239397834539523417799652916408878475896061346209009009001268169683057007175624545156569642159517066519796602219408281521293470840103771204322362341471726827814054031877117441777369922676333791375450836777459203897763346091182292382970500489675426742256413565567710817541659580077913936815207423755368405243218776546160280926247954503560052408389553106532269872471879582909915653512154520799694583826397296490166691681663592344042136354752063872370786718825290014784636174044597648180825254424998136965987179087856650764494887227573020712663243061010579360856470390822704401212952500257266354521400557652429035529998748012924855948381117096083819314409187903795498834631482586001733765818342727536634339420805265963815901783906767709283841519806731631901094803974508039512520678944291662835014382950048196203517504558868758916723420710965903434080622402417448363125506764048045707855646379183018422550966762517788113612669414481632652318193470309435608130210489842599798026951050490929534612669820415371335195960518411951390815929003272659028523365545519427091315747129346153674351426392909065505077799248292546941745624810208878870440134973131487467331270978399256648063825140469265925864639798550263593327281980198749202211379849385337839293910645262238748239980631913606790419331839916319326970827479192886602979879033378255906962683574161105310399616083741345270777736830725433771370130989166544209931146093230051613235271541645585896478175088118044321506167582945307786931015265396089228335993487167528840784325567617243253901140176085766391188909073672849735773672912204574241872321975685756364386540623629571584705747133290204350258349711472504865398240736426382119277646807166723438448113167111443177177330362342047456916413022603473604554914865860833827226095823253857294544571687756300728697439692391801298262449727564266390122944703019769518684764123268886855281620283490712365813448964074655245635037661856282264998996879497455637584500759165651525099700671466551079923224504589441854840281239178188569746633180402995880641838435993935274952946743648113984584240955706906722195987610478200247423270831187164222359920287942137710353032140045373750350788280203772051827639561893610557899135624621583888967443920346715273183865749965163268871716750750886442278678602195968718554725196344164399595113360612622969652585583178196460864250109007207831557941792112753230320653271214318664683285232492821575431055093517013252874124295680721782002812299361932196912021190356790724272352610224490429059333012452637549363082904183896550202812446818307864582336684764054400631804341449466141386027826670059867289648845541788251524443185599881616294463065717950702943510663565207535582813780572120843763363264021677176789491040563180724537778414551358959866023917909133210453892871510243775057867289412165011517738514909406864197148636433956847588862573861979341257986030810106378887017593950763543415102234624283997703306123035623577947698025672434678750833441005382775340830865592829994678845365170430413663088973738772849069944954245690946906356977752305079062895148553240373280021411936611069403161751351678336500550720082965043875533392879124552260398641863411900974703591760555266707416276659161996143152124685196266140122788220817548408509078319214379775963154564189136825397569932411075399741426806806743648506873814571785349804575469896979431822594949621078066709650131991256424794593121190490698969113152778022633855226251415670790050352293807771872396199969443485921675900108691200324409606041174624782846341036612627414411976243056787335181658588974940406624048984045989956512142177234585593495105384537810941894663568870255741018876122434186929256953177557381971563190949770185241774795128601082994870490272827091205772462777571390700728807719311688032108466388122895908955824902033704721641189756938700951187987089799985934773431769030143686179342540634198497250618779845466513044524482004062876735441439294920669434808920975587887439371031024702217392409481392776284969250401539453464557161439839090955665015819074132113848407848703747034108648751936949709759025671352542218920862625947472940790874515118193744381802561511701823841693421261894772739644717541089415940352021759757956130426415086681981545621084064224864568982127616782905161440298426852527602698062517190115203101446855387034561841258959962524207646928108340778202486312194044683217618708970501415645097498790843579003123007987758311005509827540517064134244030368593061630937508161737096611958099652639125769065794811358145687109560410467364886457979546798058594321013669113898542870789005218610264239566162434322614431389048724029772856942748248693267894009330351721339148846678772110060712879239235142242196959854882453713352014582598733554643940982723367652637116593375999051445045404500820630582665127476426098148001756616220548871913517750849182076512820986758674324686256346030705736168018931961845583236699187653324923968130694309395585645784368291925342391712257718884967485479569099978485407632255625963630789849662579815837425206378947051573305559175142497905589130227852850749923630859756139916985663310642833406663550160582853603831292904954380260884932304678598666493512299779347441931344713925502649856728500656917542002166047946239961479849271955160538668372338939575179595914365585875049647809297057041385467814936529526164079844455578466943305397032795675452438700552859671414786563654193435521161903528765837347775490537528937625145647068311473565683654922791238453313102172671321004060143815513857406921008520202445385503072265977090431899205836700527965743182758820852253538061761340594951709491408887745415744637400851840544524355309347708597632838779022728669945370788888332777595244585452284122230522734485855623010176349045171732217538102455466314276442848245072285544106261709774980900311144338216071743810338366532794524376013627634268655519331470873460584776866580788254196721873748748979194502469657734271526299748984905285922266791001242188408497269657688364324252682037553879560179955880513147184590980368685266672318298359761046836258170129413373407121247364427374859416355276854706583014969251714821841161850359742561933706772708855556145541930617568593152333830674899606936776040906277801853932513023402969178175393192179791336454026696156345847759365703194543971212779462887515322214678778713832603108300787476237352075186023176762842133311025468142274168987405145628128435253060417411855967886958515430117939047220425408295697538681508107065085624557956109778903458758356541247086993605720441950183619564118755206266289721245819949193642833540594568272925058673523397507053910090072093956641355676029050908978203258496154188261486781657464156194205639835471182033577551535160863915922886309423082590505149615141076530025825734274585978381574189649794116120584255185813422966735052498343233373033718210738963835626539956629854951938738466920957839777681120975194850290046503685907547106299621237842575939561175324790310296246487663035865194000302583922473201726615251976841014631672871514988615040712425555058857288988599777843152335887555441360487576519060985811772981109467156784257066955014664490499210219469713760504327264653150200475132037183474539161856232155706796583207315210545948219670724209431367506777622474460273285859812444197244711830687208345789680098375552315184089255054642171885839949385149884740130464355016061448097953964994109983855125967164487329317027727054746754714831464107615923904846188633472444342386029574677165181108994786551094022604065126242679660621084033948330170329249546552753001382779392630360820287739870487916465609487456993080550861408733390386319044731289692687444471518699311313083142070060945634515238401260375799310727504440738296508079277809693145529159511331860977509220177890742301529340102482063076950675320825994517952731112639010398357852853814191742739149787887574020074810717641357667947668528690769655172001173627405197960655843043065819985401160727118307894280876190431994705308998810455011132586932863057677726532530745638835454834078636071201690182758075037194623091985441314326142224405287841185135846424172032764578145669203287630354611770476139728527985560404548680083492930277442059104750806053026535133233452696495047298904961735589096400990826854043770343917163538572317944212012917888190681646708333181113857186265913581171013486381706158141850190708407309646750098732940109420448686326660351108784077398757641182674307399071826998194960073814180263094457623496396861752521952750048273132466748661671247517811445066936156776396155455048533723095827391414486873720047137205346864058385095615916916442362613919622935121128372148726736525335352995365509450101853789192435185220302083569353731340915410781677288265923396407935869042105317254832685916975629359459889785042345926492916033005791216203659841391305529693753789483792240172345664323720302418230652800337830589309701085149506696925370431602739479930764716110492088707964526574604041977436852867054423636755873039990000543952077365993648317300479761103611898343115691923768439254198870520112993077385268215655447586508188510506425367633456878680319655905420883256229187605143909170180338322657104152771931882968834037917304542978159350299975045001976909498572602247057252886224363730056413183444966983093621707730159980482202930443814343067320708801309407168181050669166075640659262842696183645524948523178562491927911465384433075573783695096119761819727336808839035316083248145228062174903813273086353413333031071126824904276181955573641624975526988626564641226868227484022438381280250248233528822792214456693212257435961079521260976868064357261985838868099639829056667462598697820492544710576239581299329028363781039596577057679563587472681770363052787952715806226240345217515875925486127106284984214082070353343107589928676801383171874422738605166461230818920312338349182237725011091862084306633097876590540781002004948637399622288633471129061334072029890658269035737564637171584887158159100959130025820801729110027555506625713609465501144158532032528057310360815673507832505059502741709405778158421297799870799941467125569101302254667940901089954648209575006258187479944629919408229084407438305865743669625100005601575854831883477511282970098052824459127939638666614643445597093045948011521903949171342529890227621126037511461945926239721029604302170186701130681777171526429206324162213882591149696272523267379568576859452169271701029335161058938512260144646941990377605147561217882740984664860873647123632199620675010725399839230371035319629740240955117148927173118050275822986703617930477635745912970230662513603219162806404499198496668332724320928599816202739192960901951851257623401757237885433808365701127946153515826810119480454278505459760063662011721095698898575535656516910015818134196615591075471936462803662171670835053114765533056846664563282821719106005463337959976871849435274951603253126605422397138373502240218657792073504579484747791824506637713667338643526225483980306993162373794433687955659863211691391011269569648927830370868248945399634607676007602552608109696931453646669664257289096000698228332883010460560656172770719530008431089074728424175646548292252438030088451719950969640599833825314185051018501576271432272129849183163168269329058843500118021215883702178840204032542233211131820212469871378258483365266040017535532093141821661255499154279637480559108803243348442935608174597060462136116431879559656345632084732911566007024893234769673800845394660887221579475521629072583969511860746690016503735742912861636965041067656893402842405364177744662624578601251672709379515252672618936197976660089508892821367606731299376166000234925144042372783184033327001549117994537190149261242862508483080441908374555099378584996853105528281388673902923045476875933381620148718383388769092225308706369548863590944514645061004229693071439274327720647069202930170187987612461569129239347902843324267832043316213744892568051475806665824489330255063189942258447060437790941214388060509146165396996841341249157707707142817494450760998274860494513012911651884526999421188454712742784711661078634440600871386811883339770336387639552949286584166637112875063881020398272422650954928524396101210451137270263753535512432362843416033503819058471126358768062939894057301536414261954916913885780769911944357222798461162232151907375259564863793727630920975822102969313365509807155416809765461922032872556776908411413438211613137767449977712800856149550108025271862199377755262609130141224669094167454662498958639663089322662558441794108752847889471565127350706759942811987493104787540364313700217107632142627457853137250519289462810314804659161030857364896233001358563113696036894748745994776326206518295527137859681087169984075756459706901457799393468249610470770678804235697735550450647832043972234153129382276469196956141977261446803789415165395335346585120736854021019986421684076627213544877478824680053935316659274110826235231072312394543258807553575643651473437593096495477894862658879087471895951413625915148936100583824029772017837121516682566111703582557464994258839170781211492863189479460217953297858594406116205363739849836071289261207815913186417867401668495824089557598990387086578591780051309408563454392071153318113207003564848584094802123301430361693329625984240104735707587603806664876397216922231508433152588070029259159460431769402123332622113526767631448515609433478088669451391149044129552118195625615266960980645749914850849584731479607940799134394537554522307613928796659462875167711277158588241822068108874194397971235688974928170407712742291779679903331320837784635893835141659032134746569013716438141084384515043641365398477855860546038707004114564309915367229106359200813787939835644128471476044587776252700407912644790249551169066611885037878469616008032281612042778487809212805893246262394768915092958445315612526318072785122805646239622525492795412197186836045362114428239188130065250327933149196648265976997461985797205040144075081278926956156795071908024951290127386959391282230498677063848273705434360559011702486049008841182980629831001694962592147480524588875425315572179160381523759541500892096231322551870890118214023596657349211352417957367920881296075760060181680190363046781893703351096475333243814113351072758407849415803184545297727752248174127207652495505209674864357214194026356823875107950939622863975951916476249724198998870065763724673309896870944827101922076004651243676248869428139939995991651209372630734674656734920842521683888412185157885823355761544956829204788675001438761956772407776452838658790166222120435564078307766957658386499625064060803677998377480379783412970719936106246321870459641962375302881080145905221437180139148415692539142787631556941855121602446289942352642074008214764813798418521244350944954711045715407931463218033259569134860562208360111341096292239923224079258416505046143116234787415045720674996039684491079330669696890606134830128623516332854205272931753417143833467596671007438173393228020229378246766681312871806164299919989628112438407059519000389911114904415216474717225726963384450081995219394750961492036742198936438837962681723316159989549370739042404073796516122319132404783696474054489781238608235434564090496234243967142381972909700486399174888105285196750027339810460939564552294435151769030912796341654817113095548747909383132845328782316155489266841524051330543094519352727374582626877805781894508164750211969432941724415651395708406512303594280475615808035523912294916759822935153325491548506522637753702192498917496288543515676056101490980457923476648649629455204860590845542491063050374758330352502635594620751407762312518057347682568839425237618213663620769134088508807702358004611392658429988008631252042744059804223097219870725927148870991791451512591347668023894592261491398337532501795899540116465928698410890557815665755137709799574211770552932728332805036441354011106040582438268971393266425591970336755701239986736888467755830925871690808469909580103812513196473127991237885790149199518040720439368950524588487909698712475542172813155482161243848005570373935163512012926649578458810874108238858218261741621503447018807622329567246093005830282215281258775458317986449284452539352552142874699301195912493192452527226112073818837483600264439047931741537527497186350483753407125825500205843080014708143919490097729944561571560489014766484247491443823905479676350703363137619947618114747273867933638066065107431825702689995700478930591030270796184753433494850110842530856241100774038754547337413859544232862607257461269768164661192094237318157397597569053329791619146371663728836958295036085142245201852572089777177514144228127959746886290985720976231693682638733422677504025790906247626027327788737548440091549015939680855286665943548324701373214313310814640356295128824312185346142106203403336091147205664334521207045051257457683237899641447071376499730889090222005000027518685117993134773834343387500122014589449379756152708363725204124321694406147822001851655230032837352329358841145952055495071238684727149567222817773536680452347641119056239610681353352897248755265100109075505440537792915217255222244971447196259048916070159461651286780865070315447586764864179945923163329157707136783322132555672277737335718338760784886980279970181913067996402085606751858701109609418208399648396396448844912579661413733284023612194154343956277727658198142605066548814870330786146118674909004346217731684928450942397247628528764343562242120402491174599065506655754253672659723322582313702103602356493475520935856073009261525687673710651621423540964220158944576738567141230534898160146990769176165190557579014776422702834611996715130871896481900456790192498572054932652673045257910191826169595505091658131827450455590852535982833246319667207047334565894784530529554909176916565932803949243681930198574904196161924994151603601965925788163512075330409425891940597448953956095941226231687221429045995617183636363194487403613127998200701898013403307732072832448016749494440090370401600384437438716275907398931623124561888757029132395537855126530043239407463713895755896094292178884059260512486625100866651951808219264671381616254933790819131603695803796705682908488593140219651165213742194425131197763089105038606541220774271031785014691929750216797871564034852901481963734954823915404163228931605232800146130774200937040300260292650330593572263980657648452608986454059235928679840276810698247642383549991846874363254279169292980903759644438483188328713697317278124651539058086661695843351242921893454676965372380262562954807989256609015970898483389531036091194470290848195617776306915005123945002850011354662681215196828886017724770132031451846609694609184776740086159252550568160220293818215100447054647824211640962765191947860273189874580983905818338018616657832421928900579032509075525638240872438364411772939306178897635398029989487076713535632485597651888678555996157799743902575542730246756129043113864328474512629161628463969544735989297190325380564816178561985988283815951772444320557090597711551253082193821288657361000414221157466589917615768683989616777377962006055734008567023249633617281450976615339563326366081879193288818615917288743782782431776191712324902234144361108811594526087929988745118208679914081571278534490056461746938169858802425995649355621469014053809801959686023760282899032961463561393387890806106071054602959163079638674408884203713908849101453070225091899495657896098235246126837574153457407037108647065046440695233066433788736107269887429367372926765825618175385224755359326268151284167510576234491468732006612549720309195895484077377738671559334851903497716026062541299003178190393804444137373535035912444089596654936422298442606650620290839099660968543379419602147418521068177179269917326467600447022601850954841978322441878485753738848158431868850990877890042598277300548325446262915113530936976505525411768948042419399119737494621894931380713307811651279530437145215417504237356389315752089643131070628144094106534496565259300486835769631880145202379391771173488343522682976867766730520448385574717876371837466241308725012495505262192927293052891776995457086805788917542047940951960403576695330677985253767400153138642140796813867274406787837052218801328518148929760030361392441036368129032876252327325892258531435711114440784043102963260354544388836245105045207512448251879031452212873163013881911769051607879352937725569269092994704753548890880028405409339567051839973194910998850191062582039634075285827694776249384601050707879356747957147976180156083480908645596914174043136516157638104805337974687676900491624264607132236058160425279600814646340370775115821013175431084881188879541724706192989564054041218039666947275688655094624195674625173862419441575262347177901075296439144932560396064183659926230788872652136290766334943400871762253691047595497597996080667250171227589238762363415005621649496729631050255506580666818959850274854032918243629381471495663509952008265979303782822693113508914226973584774154931796432045439373717206963692210551559669261287659399687212832125082684179785625168400607614191500392299248589618638204023003461765880708680404013520512622093791762359771243765180632297466233263157527121095929287035236727073953892524224314258014494252301669590739876409996673284913412627183111471033741410590429807645691332773808197105260166718414975160668950347769557300622227539355914025535847735736204990412872066500640592987843953149673162997462699260594903209226946077141064547960044762054279605833961116128328968816811890219382417490597066653955086362755889092961499978105380377581197911319353646213679220660013180024616414396871183604371793166664591584894785021842273385242877534146652063032803567312031939511061107330160597161646664622449607788689025249907670881716648369815541445300230630171533198328033356925604157662270834341630897010892448223313613957313661026243625341232653447611327019929655882111889955332012170045604343166011139537145887786000629331562946894269716047742226893884407606905911678885726734060750929856421949145237287340724291329800449642298193488614492998429475658523761525854064078186105669525769565169898076161551966291825494187891458494806727654054297848558719396282173171239542471554616218845473773573629150996279495841004243236434277298730402953842993773590499631598525537500061422720370360945583016787690665968320335540899891380285615084951417534831654377755376482887817063786341628937788872737004432979961339653532016751430316879000803728266780425747068853562517400090715139150528029481698277034002611672201307785440265422003798094205079536744449217057806199129023419866180079332523197857657089691646441205169440529426016145312328568400998384505549917559065722262549758405714747364779094671809255276387589110856299985401343380880213400533594595716039672652217786849787193031610082375313059131707815496091897561793747880839469672847719078985705662997732161989702691030146305935385742707516090305938460192699622725160263547398126546134213587673877947975178986992825428503484152458924140626673212541572104793905949433777970500157171885341943054919772040659655878120976046219664279029839648529306957917605477868994456048014307469193874017289978173545080309465745134881410609061111520883057599584564646109036048491681292106074828570693183100143493977451531512326161857712763713286464977228057104789868660723318825920122791408620918711261141017604843826401085910732119869373327680416729097917897383730761130722782914847275996275954481262952327332453660341069365037620508895360560277384192574685953589424572541497520454542809021764368385797199455059409163672140169844634211654505925587621002859307034354577863825832286279823927739861405845615235896692784114985025810892322290418392469611607377635735391747972796920276678279719409108049651159421537701540609425629084271001007495893475680566251450141330947360595202335500724178219330139929832250973895425055523706388755665038505952047875347829188504432463428685197785582222934556781603507548747158951843492398693773819717886609024425430229238638426530210867720209722467181474363727495270007264301796656433679178054372201341934968721450283845941264974577957530926514637662879380020837820155240084867715107667086649884770864584375523768396509061964095934134595301197703356120947532683225626588225322861246123639874579982491165232305546989436874523430677279247437264136287168386928442689998184900020912692920160898759675607880903186031797574818725162491737479651342108426150541649755940517168547865307619488621808848590831392440378557833373329010141172015247815647932792450291884438747199721085149392298383986869297733340943559552969852811728965195194951107721378718313340928057225373027825246605048641774768807795531536664003004347918604867290922951946182270661432185292582019075354571057028594513181209708406113815088386397588132357482613881751307554780252589711620809214176438989816667263828590468429436684414807020947328651375422748419421082060138839259080693070326438093420416753388315115198710005340146829260360785056788217125566358568351661620553322000052108029940879365400454105835130365450983817813085883342558329321290961915443951895945936498181280950789168926356438108677724815895380576226414303025707414310168625793497416808477787180621168612958689779853347095580527701758083603875263272398419356432169703982197362897323104147603347287704921632189565439546167201876731823949014103965794133294908968424879483952940523759338502339837875460946328373052042392304905457189677516964068994428180734252934366275312654928816764311648040421201590546307141946926034167817167939509738870004337165162283876446742645851906110991437195504407483418202223902288001337028211566211771872623368786870579094983711067765949159075686228592248625627605305373362973830068219223233556015165363308069013345522521394450548955226124047053458017776712883747863738876355311616258548691447931684557035749114518288424406918650278278712316444314940313536534946898044029528291534732508015695960119859435393768809201329234066227154229446950359030002504770559716408773554003180218577350143036092348516421650526648526782920283076252748850408995028287166228366713152082627318171032630762910999477917707227165773593266263799173367077118800218611708461444807071304675131986922030245327377232089993385874353462480494305336603540124400204267462723388480684804843871164772465934161811230503601691524323037521264481244450441411521944148065004157088332734165677107752490489847144714828040943867373817604983455008854301566022849108122215614311678515273952432237899934072178482589748732157448742789731510724364915509624614787802087646253103266191793710346116056135810525384017334780010951692397997599478688389060804836357972491198723899340554730486369554807966126176413790921650101427378725440384145414161845493093661587356263529321536536715557207683040911031655850589214153033115631404471585277598837547299091467710200767446866369533574772338427850450720525744684043903697856261597387023254178333500602236723826505764204074457007097778473714641329923998770400557338624425692919131633004004002573089352425307383196396086998410428917294297845125547355893213937039050061743322646584513761225730314659996611233344873213199938201904601659982061155982525881591167316044318835622918430002124281214277169349957125673730685957640681568517647336882615331084716734844650266969955945412053283768649669861827634467555505337942416523086192989793562345253870904724737881964263725068705053001349804597937651184147172239130311757513163230888355404243186014271401525198887192852831388101315774536515051469898802554393069297048945379881268124828136221621080357733033037173378003786484553134085709216878554411661156046051178867754794720925071397342720637387508096894243131449565317303532068188242908765913239253157631660815967165181262796213519133212813492363820480573516772159756901270771197711109771004699064516072228687491970757887698785134642715623610492834015548361137869931678993000907966013341860843390285771096272863165099734119960606368510137321816959928919295742848883034885059840456001934242925247488525455996348653253043173061809739219697976734229684766240300152332041256310478022855933598109244493723890588663429515754252433875839041525867594566382701189622773862725578356872084997184243872760215642000123179790459379714777874427884103199733169985128099954390517999456046964746106725335242894039204574102325998989584364290598912347944432366123813219112868673187020799774700694853936404643101158694404307336757581368758885255613125265038083702948654015146993908542142363136899761370644815389169578135777959626614180054226632171224524740114335733270941322259057617499194358620048765773029488689038163231708765161102434265374316825183106988204002529578976897639725112373842565335230217436354494061696131044054780220202029614238086817082628861367943305233211548014470764424808004525993606166754133376286069462215523784728834573419985229992053112240476963565885892905872983891481005651011011120108231390141047144560124184276081421716852366654617189155532057456251930234558213060509411309061944061842345015880660427800960525579453611775024836428452703025424241639642228737119598140340721461639751177513714528363271784505023591583909139318340698218847391223783330860537782307092703308568438678453816921659535395084941617974159659265082582965501511251524555356134046333463633053267150332484261799198715842522599544271102929964914003537120938137598550852239626784860215637015796564413528443818411072826148733549288596740349740399364764812510991657982056044996770995903878686045752231909735474779880884806137520173647236775718228539062886328460944611591070439811160799711754228806383033801506920814550219040232082387496985515713782210676340788466997171990667138475489882673771561868288437692550795870753082022018016915047141273303803916286536188993323787209025033749959671269549055418743866147157022078425845604993172640878077474407372041166166903701814994054775724695434657403161605248766360526359541142250591061791099085073774120853933025803458056935372747124408399095049732720382923472534055738025322089635912062373406878450479017687836118699872992605071359300716040903768890713512355916741000756066364730970266937568090710448183698688653058826707323530362123173204194504686355291090713183277826813846005243937648201036209360303381733015223881822304731361093676854556004793584560173375050254206257378325727506996140727494298562490977189305074347714661106028417009119112273998003891349168302004167251014243154215854325594012437548189689696148191686990434056850899213252706278943370576758518128552845459976193870737147666751761919009122669066609781998602752710309501005141587855733009910158645532112329924012044581570898650397853596486783824026595639988128204480570414295161398798505881260416890180903573341551880179516230660361122956356597009294707402331763682139846725495001884325896543531915149160068314758785082011507296772922227168054972301848929940007840786632498429958032533871776668746716559721170854514412209856608193812098358291647939750145522157987331711366758452363711473188002660084802015762803833753587091633488172630932821410074083774629670724418931020131815916449536700189538478852839955803688659216553531369441847665915286530256589188538734663045812381753152728461503692284812299124519803404847642334798187259762119569950682335163694928538593257384643413148209806650845369278986232457266128783008335401277922149322950677225266666379233907832390557462291028922033219610831315193305944360543420739091340210276646126599686962574589166415147690372583163488377870177158879229473698183099622252420180694804248471182533015438197942479691050366699748584060817738064890213201864646500969315492396744936839091346034783866038131856963685713577798703745531315286576433032843275117390453549375044798128154882751958344837427007658699263384307116570734915164298553939529109007186830815138543958000116510431971031037942694507335481223501936189165283976724950089787430519031187035508894241739034431528161985143177002912565862591856248303732891964006533956786486895487512942951346218336452289992581225973068663429406700731732692268964190545795891431512505295555679147599979888356169368921151454406053205042601067481788854421895187780200337411786518017630514821854553996308734132405620985956862220851017044429759340178674176692462918064143216926251647337315809517106386577830319282398371822255586867428045963233139924178555397234052744927250204269545998168372399227362181920866221294658447090428322209196679441286757115164652242939017746279222158612500239502156225786382033247079772226692049086248933954629197319861396782003236488698483080726965210590532796789425786276803348209352357815782987925140704878809676159788283070480174099190409320163578853093234677034728332758761889294557111860761347477889739500194159556449673226997676221720380478603602641252259205023575066756958140252700128294420549186688228201002095728295780178913036381223991624991755371582720492030485393795005794242270436047576086220123307056223343419774086655677538283713131316364602602958363945652269315310169746877404264403600527910594906574639440499762605251170555360727770071272852445837690126533959332111927255358663106494097250140703913499123072538582062460924247074764132476162667305846321674556713915356394776072249281118342521658273898519450229327440907131721566582847423020799409664009654324181450405680619715579398047758620300791605234253277626611376935572601922118613505153711064951367681723872934462281584278814727519510688069968566238917412024789094722309081765230869401165272748758124174921082264843391798391432002737182560281351483025455451640976384612232220043966888808940803866440949071779934867979923342942926177472669429089553599439139361167437760332697337938119540227548610601027557057060455330126195455470295046440525745137409044721788430223000089132014353200256823299600852277185124181913219725998637700740452543125042310817954820298220270496997006794031136051047802703065268687409045265592914411645804819404485658107816792885790526359056408603625199808920621947540028844332399360030720165368999005501155805504871645479763512046919645541873078846784990439682487464590423026698979392615572214716333449392434074173397156578651573036025868186718103194039589319309876320376048872895848894238231251526913856456151943025867126523323489854031720926917738968949412238895891976626973099687441067727821575142347272963084559597237196960274715371280159460036639888240855405252412766487901678467119699603865983684339080300866940510614676716156322234373031189775650798024144329123493324372140384503989660367233475302097836100395696819794564317243460468817881155518624572431077819267031440308365740573572668562854182084741222842643638471378559692457572584657456388633068524383017370998329394869493982311810076475169852942468353171539396705584364246591630357538323244701005680726763397335300295374002853121001277326720426021639486509669171910165788141318133360664316154047967850200013394180002013899372334999577983050847667514935019217598575829135968897381396928596986867132108982163435568991853551300754852703496742807015616607576800221207649992218856451077479247785812844515196317696409722915303969881704924569515321578655180757143734375570904504327746962182882455782068443315050107251698351019011636446860059377556781494757054827252073391535794177130817589694850582190239980968485096601356018228248169612659635094071777370487449852203800053044513610530708679647658613180343939138542155698157715442905534227686260019072496079105242425520190876407078927276308145593008567501948097805898720122409932643185945106903942027496794593648418484368162597090160132319374048356868681670591614855005363505555263747421623066565752761200530481995907908922945072330829716562587663364280340140135867862115317255407542819073402927476760527981216357009012057359267233340936611053224847028132395741032229962944376413408647271373743408786831079173979949639725596766569571434120733366734686418910977095050790912328575749858358688304575698009897059464432202799470075281902811522812437379964394244697741487042443972067555878045197062878961629809386222883215406965463580294111073269155204166719307244957396648467757082759099856379206300606328652139804565569506556749951617229744958012042775614664891773707269704100978549480480023149270722209866017570283388451497819062161641018490423142325578822530620452001879019442460231833649421027504405970615995143697682323690548040933060253362029425363313666322536074873350861681172994294426133068586928270684584934368061663201045682752963168534850931018855810805460430236811900026722766084173097340917945242699925291289219872984794090986275697033710748457479779607305604889501611294511196391155988669790930361110264313659666669588678354815689233167715648110417806775179535543650883183499217142034516661624851815701629488254880449798118456701163965679402080126231647468126942582684087129243488404885373192845922869575573519994719404714431062825657946943898468148371336888624352164091722918674093600943756964785670832786053715401122397310986528764749575116012415508813220488481765501048843548682281790266755077887694666127464304433311661470744392760403992729633663469941444707886362741252164049227157450679222248050986971932627281358131324913972972185422795264010924362208361744696235333161213551562925768313621410006396874087907490764616988504628131484419024449523020600975996223531650936438354621305011346472699137220603066578042211256098897256148131649342741346077826938741503179475263942176648440214148818081997162380328466068090674998064780019359201520445456029549456014061807151666441089648670156802720576749565848032751460732742856798666753525224561089465737149394210100723639593366380816521279276876609036838773014432436911175049748223681903036507336593801023219753327241512029802923213458517708212709550452722430701566755749731215026574531468531863149344166712142381656221301353166507444137742723361457679067467684428455530336173119086289713465536813570816698732463259773426177710045995420425619174166888626715404726095628012725097891988857412391346184023253679177869835902332663475173042790247706915600790642084362545445464053574388665899264874644124406304451717732834551862791897090904765978879304009456060305456039713395136828279297305053524837408796306875151625512515398701010427557213521923388607579560105380126137210001741448179921659690759595359075195402681945025155256951809576380482840508919758938486264400661218330280486407405336092000425917914717010317476755782314681955705128409516385051007817595067664998127484373689484964455826789434175209559514547311872761127540168224165884883396957144924057537773791903574242567340982371403169187348344863601037146706266425796938698526486590108064550942388686377468869059796898506197163664631359580519129481743556942417997860218216488427129552848220094311041069377586323070475828293824204553403685326574525124870384190345410181263875416572720003626841467501065363041257941734188504844911872787671598318129739577649084863198589913245340731272997324858381327838274135422849761414443691024576694057111381383271867692437945710379599533434856934870358012399223199844533502568880735240644975229944863729751737255083060167145005946862680996685429468945812486315121516804263909008486887075547304270898162229290847576853928209593217461377177235055042063939302083587041897294156325721565896012072213076244183310554064190344198955377717381202429861549051813252959786068218097453089429064334560033564451109332043241213520450728934029140342124310910712933312820908132848725316827420855855348126513248257787396695003075356958131525725898589093904882304235279798275922699804291941432316456806633324359582151178077235717522454550452768455545417924453295186688693572804163679416617026338389003855551121471974672968339872197998049409351709197094457308038703698377175319065616007144106660869628408052379979708034104523701851472168866714615825226552990017151833847825183992129368705282240668489858447135576905752989383381015288343552875432721892904257938058641560761092739066348336575819047369206420337922331286377163435783402745430492899696468532269386344495870157505441760177022596427103081716570445323153261611057216211561770047555453402552517342784365312284584955008306470585984920387139095514313400306972629797867235088565606024412102559205063115639297276997686610882624509541044889849324218375956193870143494332298494006577639347460363883979022724010506749415510277839295854448163032518985722031957932312290459051446430636668670441400237536242702338930121704626545968447220009725243677757082262953036681542224722028429962109880801386932080367671075194852761233367505913489042946735882029222515794846169786904385184004047035363309417115200551786461286713829745032391268614419940505064541042839676422745444503409117120897170681831784400753954216645249331035352027990354599297218814251338195988540613204805171859419909602926689309118918503146488537765078424293084814458941312062134275787227786310058812441504547177584100773689481691495744211066902737479643078953222208176578332697078503480769413249676827610280097671640957964355753688772032489494865583046134970081981843443351487628511629104738672115081783306284267641696984473253233539129012963185524899921141370966169885359961592227888749917236212287025901917349513061412188161780506512020181102885938182734007481079141459911688293780600751596669671430152022173184470834671571202812662309388730504258316439574790407045967251448101304471847745600008787629469944686838223517690419480299416368143061201352084184431097954059076788488822002384572944092945478728012752284507866166484361127817919084647628590852953518313906271088649794609017818255088743690530359239812779401181464770940313351116593676978525750856277178048599356167605863492437282830287842629383590557346119617907816403333214139442841539875623927530231531355049975345989372999967509173338424144765190208490231845414644586689808108885134689371511300125458865584574368794650067758966272138343184636177948355246415976782658281510816989274479906635387125279496172365268764389884491894638640267447108289026482411529111558702802910745951354917406294992962821814660113662821238948201716828161340367231072805083822750984097120432444265061235333790048983246738787884721176718196778176213482690587494211556433780494910116156798006740507309721018397301897559584832609026112356984306850760179306608847800369243106442992837518451150954198966205178006517071041941817688624430206943090158151489330561379296484790046232009070355843842615632572666214448344956964945955229280157681411209517275139386328497265666393079953614945863924215315928747251163746432572966119918780351731781242018336248260109244783667586203954859197267049594262234863334668894575744881216670724883099666872773632240761286850421800200625837363930540749861770031585060967863856606936940134289026995279098987701041352626395100603067711509446622405631820261051886004272112076027647553549046594035853454479129489873381650168613030545356271764944684805229514534911522066838724194839101571349361182656184445123625533259823689936140108717923219154532407381873723061006708385841107858918765186930036507461934711819746333433643351871159426296127118287203113741946489347334710559354803835946828082275443326187054735271492629072051813029350825011329924348418991166948156174300478282332974382363622109124645095568285249017055841815607384625142406585229209147731042927241430509702871789528782634029744786440893192047150549599870026866539055810066171702618904455367832470918456007453020532682478517221751425028426182005224721466903789513576880828074958691828443597187145250797547376978704088500398178279882497310031747752192152519496102146913743958169171499320718907337518125554382723725088506036470458191197490005013189397197707737921892475497705453936194852361192567006531420569674723613767254219623063512831583242924982255817338424327628496982075489618584145845617586939447005207462252270274297109347479480365486203230881207664410589150875901505251790962483436056296105498406383417765257176746566438778464467034029911096126427682183333770650590975942014499549154201236611394877152499292789271994826269410317849800490212157700932575393211142362433475147591702753986802049097027318607967283072382414374182575407042395933813292192691237915291488832128621158904630857159821401486600955963043435116409367947043445825626456957842611316905133984071620195398629246719370214700230587036590044337760612104604062757919799499613262646614492706199194405897799178147204048401589403919897574225700943847890124549316751026890348475198074253397263543588909000546743377604742722167731942343945783217522218487882975631720224575012197471790509535841417257302390997303918419075478289575981358390576805999977971768503571579809227834750945660715274345803435836607219635330013486210746309289405087563977570386826299127933921198696935045508247487482258280102544908027244483012980231990185168417952866188652325769072091851275343924980607624024809058307184538028810151796313165473281463296404199623529623891634915722702732521943559590295133319936977748991017167700271787223452913137808735977494458471733854231545815464672507777578328030696206324127678349261732940787759484977632221656217792852743164921803099636710796022908545656622738314746978009418206693717374316691389124817472167181095804060121475429727935890664140754774524331614402345839952479127680514772020468938191793099717293465919019721472443835542379821812626570253005959580781204559776886834226138026440078686153394799321397915676288131751978440216961052937275370745737529620998155121720645992313277940193804238534794809261350417595592043856619984218569442876441632165812047352057218151173656140421253847266028649609375729195825853172232509348204802383784964427166617693107012027264552665333022877784420865705815140364523369481534940840028671230277902069173712753620209337622481728586156292447662611890132819840823129880010667930130387398898874371522896226065191063087612058357968020148352663064476497003895985185526088312617324146171749430393650592366040685904657395615037960262399861494137231960206180571989555423350059795526957617305658709895121466393885341586470024812504903501265118263982650281884242161142328351770636225818154840512754187736374326344117496244456744876827215979095226956473349719086614894702264431652917343567127254117830725785274173639880475850881624383241502491623904111436637438723428989424275030376736715396561567549158467770903077682241660183579464424067124724236656121247535465422972488506122790948762248521918058845550474540279709856062187268763241600352288114480000715520880795183093831180673440302362956958901794612529925071342038014326274189030897551581591663170761493065017901380244495802563471169899633084101897788155593518614016589686607425837258449871421954705663995707844580125000546873908101364970011675312943467959077894902585496010112741734101386272145244404461700501684983816345731248958169961942903333278161797082635217396798571444070701394195648113206557670407943576620199750206773052657624337544780079715241747460773712984561591727350190828461931239941002997954229968215515948581676587784770960131772038342681304484892042053633515943517315361214026852660507223729180812711243580401397717670668851088911351043062281166124053932828643227096998790879636142319329822395573324542629687177518911788583276253100325253554317844958392033594245069379061846069314229407346747750163566093116119254909708534885760672179055014991523759357314531043328159151912166380178991923712974403276389372574785874568135059693302561800578515067928063479524538228259331053335829782662782794579407638921895829048672525227125840687049681300115549082400526533372666548570141756605703104278827680817246640487733200912170629447522597201832442978714134121278999733939876516555439692479156163660495595572456076816385800973962368551162432195062453850834311204447356283694236641091667402339404440924874317863026357270538097669043200110242932091501859559518229401225857093483515874611629600527799880274939400464255427463282416193436569824226665756249368966047890431411600189788417786464077240746114962486807242380670112314419146283986700682854214303734076761693119710927733376285716982127913926864698386926579813702132305895065691259521571153535578130482653368795944978681153321952870820291404245238256802012355988598007329269571544257020532920278644025404570105456115720489427323504232867517105077813767936681047358838446814294938664432779695517148374450491034918626600007559926514664300218390654262634174362580126650954554679843336924650436859945154475470663074365359459199680229902137876864024892361250140280534816707007135569972301097869960634883902537293847780188462358999348698896887269975125563718565853350734138665371844845285010056994589390834931410377959503715239837391446097530915265869062242519984883627259557524978130365211099406800784971964089850904395486983722183536261430133159767719731294072265370335475999571076384455684721946430480143536638281263585528610455879522476307978977500650409372735556871159915849583208975017682918993683243002521809236292137591750495515813914884931098750468352632140466894005978366859826870911204436782519921169959438868614601389170931383114294976992297486559022008614836898841422055277812768074204300018721988132313613080375900856984162102805535514738492547518956049106229542580444790193560973800083404210701578747751800434532239404111924163099064363404004215006089687175808713137370594088170916504248318389349893864823661765870378864376598726707811436992373154175260316682228880219848776722583670843148412460302002232796681162203956143811758796630682025227768362145535426286244009320240966739591075478765024453118303275203064348307224339604863278182056259102339232125106941402864850286915950136854742341207905256704798619133109461477755551267872366529556065102607072750580455181047650267014654512591289814746818646917168009790632448317544193460577267028857586847915008525854524551798754131595003510096326465055202867491075261044344642752758988811255297431728730776888512633896474193464700655358052234049014350294495270061632387083531549998641809921673930891380633125450373124068562965828945271102729127838073242675840353842441328217979734639917090285924320391127341772042780432432035129667723874478292112473943295977603212355397649506741566939451268277174833946124458176085427136069575643066027465001007464703972125820446902270501496071280226793282828558891261843342980772095228964171218261128395639454316062505629487584697558034477265647622485260360745046556673861691613240455692260575503971417377091976346807264289569286394844566585191511525307396742132397251539390826368041714026201816726704557628604146276505450529582672355137291405213448994392340498452424141843100216483758188527069019412547134781919364937147483175796622355680241337201587722205571075881784606472601665232569268995799160014507639568863849959925158218778393918750892005151531376274516334412422608138724370428993955213147935974628388872835319100416675858337226703785358908763472024017874819469177321202897544810529905681176069428285807904241791987925586627904592655274034699372470014509469110565397066482810001610840810771262985464599099256605369234170415910617760951646421021907781218669188460176939269957474051873651273128176883978959985252363854795196719323591657073030112877258166189793530696960464289244743375421536316041099992109693701134288576315896901235743942748265650116897404642480442212246405272426194290464412023843307852375257306235698769244031206613363756060088083289128307563979711317485711955026518589757495804459992043580752940360260902563961603143062529687468425105308062132386142591151649825208763869388582789101912632465176314501859895541190838885395015716312316340084133565999307731436014960271226030326706269578974574901231362078625963552018789307937041606751329589786587747644728196625642076617633637878510628164755815090708682445946216383900044571818277459100713050522347287967444409606924081475649785090876946448150892203450708515683326724195271635269796677402297502522218401307733348970590924316340989571359333673745964477678323428505964841649384669937946021388020515762592458392107501592178822369774518739666250163244381115233366312186522121574423110038650691568412322372016224227327779253752158282987166047529146193075064463744757859992677206726024438678758609269587839833270998621093820498575520964463742074789491835194110792378945559421689542823831981407467491991614844773980691008959000605612208099161663576994524053714142610613318296846208170925395243675462347779544424121743254462276851141073665706784027305012198933930539917942325567354218925118866902376843903352683691510409139507460054702605521441743234895666690319610168812129163272829671697823574527686004970370078170060942750080813096639201205800657110482578951082769981581409941153446865030699067459262583042613028595577518033838110065574956468813266039760445383345206890249969600530140135229007949040443257003382482903170152248807127109554692797244626853386141983584154815346750837412888259233670459748956326788358943356793160678935134261312791433700552986207217010486934447855687931815279877504017049268531784154243942035891267389652211094446491307508543720250102834124348139576647236706182849261079217845354909176122070229798585496602607357274752320977945189391638693856628468475868082823872574141196605515651758373149409005029074386194220105548864194814018568135481312260883872843097111523140893777895567562798293581655149101049538690445001584017222301627146246228441834566617802094301108709328289952637523699128817123251666600438475482996637742265696114264322384040481210811745001336652086890130317838196728163877518361393800613669017148887319319933874103828820321862395475251540357356770461602946316533648775275971278469843784552590671284457498734186400606101012518874002375620465695265320258414366112629662832349480354047791879281233132984655995089296763656777082777727863335196062172320637259260630162641812376635989247346525526001209473157722985261999483161289551950430257335458229578911237431445947623734333325798551728565719326786856876471248657135875768970701465783422171501554312549033060777754607578483602662168051456383907135624356693670530925813165898635679054817151270281000727245918387616535685704630701234956375424201440574291197369134124969945046544482837238205908034578746846854265155937691569350993722366320753065316553061196153968699022990919468950011164620697049807352781556633593524461494253024356813590920538927668185071424665608076266034508983829569490061568882542736148725464568247628995783753071170855847075873663147749676685629500148166979668466628570349839881513530617783653138624422686314685860609746212970958548348352654674728718712821158744151734822439929005061874968551359167910123535920099741698234124252725816102897415233290281614709592063440577626990018459472218029741626613804460355671472609331823347083258973881360351765657118050094441605109759227997456286251123908859323360356220363727134083808957802520275816123466716416222113639998161968771558353254915781620377817663911051936073901334387959125258421260919759624764012975943569939208148492200032208118772921683140266324001532967774594647022541595977628246718404973676236171975978505277718057278516082325332858840524213557254907679935527190864088719840469145567138455135445306646865652432863407212861529653113920860780501077293577929342664451067001259280555116653876350493993957690687058316319041922851598637479646772098804292315097186772220905503237646515301573757690121693847337760105537183690024296820871724518930210085591986047757292882913257041226034050485233922040385249490652531484732890997608305887670022433988527125984643308559360226899358685183752575329847552827340392930803723568081511457189332121985961378509431006398531646589705557843459706276165499716867277557644478811553979413366752333752493990452254198586919808493798498012453911768632696754321982924695795370094790862887967243740317988880434634110054928747357161324814003289923908915353574982094012167427750969275188659089822591685363072070128747404211971318730302059836639833334855303591027559902891154522784445829417589154189064182807762283428712191101689556169049801119059089643166458630971766902461894027250159678953105940751055549615147499425504502140413951532474038684219368671634721373746985290372892356924892364261179722085262452201857842254443326863729423139252065511145486912969576356313522615166756132836355988354504832927173875706702778625542481310347568333123246264449960013143437625581423627609849078704511492534226453972844247083704439423764127249922234022765634033278796947559026906353110675518548022154185708609156689871851231724011246812428655250786383254411743740807102765203889258513583052217891380152078167949039834985670247571171650405208606260197507633809387048226430631456025617169392742665178216564175809664409349340805857240137483891115673020964264881254867186470053454275077136907394131460000677351955750144268097213177645055839764768201360586447022715056437827767007974686747166439189251541121133507862020474757375279276238554544010443977666875463702918008835096833217150025954987268917566496834989710497000437831293954750241132622210581509624120458701141720070924405482503284280128815679660662043477138306686051392519068146198588134373346513655874769017828790299161396076422977747456472028112084164903744294163836366874607280864552675096520267238945152075463015458482316242228431609372991728781534810436472833760790121796231656366651938489248239763532432650433244730708308298922743192649823714320501033045227493874910246067635743610236319389023280557489481781905299520982134125510093915981466369686422665858690111156912695357262563774527394811717868301462956464084777959549233758485738990527249661478728585597028182219043752220638096425815092425267163277596044025808144520621526152170018708680642449633394190700319348919533257209438871240380136237620606110366392068137010542242740555526320840281449403059462817832641468511912189445744724315195561998872010500440975126816820618269076015864813047047518134589600124701181762497921094671227366607659214187213043888064814246488946775740609502564013234201446757670611348546243017023977733570446614643341679670866798702766140076984286395893309834269194038218872292332798581447960130816040963322297765190742238549092395710285414771988248634924748939487080146374892640292921603014664597240123613183331100446377565833560859733244305260565381799366983331508288331308983326828772355123899349663554905984624466935071437754305113936849172535672954363956688230828060007854384284680256861571598900474041770126807877101177870124333281354333957775086039270729436716987397126547940661353909656491958563868795150142306044558879478151010735314313937308270741359393482082672951919611665329792596822831698074037162198104260480550398416651368021886078253680765495881628066073140810679534617124705335463109082486779567126225728584758970753157958155374998912977418142909679160391470072724987225187735203511286877915679623194883865423013129758484832968838170388451146081856408048678771544430270360282632437013455428800111861158449477310615145320104023113754447192436465420278667178753718536010985408214147733984352680427382696008088622806581033389547497047754750976418670197445926505501999581692283869283686371450385492314925443210378019598394282748524610687501789397825361227454310116245813231678293862289507203560002854391398751740016420538847323939793205056594583839081268611667658032369588063815065068846420725081501218463755529917029133823153383816832686463431064808850973833267887514766256974128251335974863488134862738932217367918820141847773717136378421903552487805708495701793685994069214504284445178589288500542622427738431616246321437380676842131029470955404368240764976567083303572440653562814994093364818308417759922487552846629677880948214809439370001586111940398955613646080311602055016081104898574011660763543536463880218533265812978266204597288718262278150614051317022026365593201341134002226785051119839667259669515706244663526113723421290819925961997174750919885636305165492448778040318852705137354126446720309271495076985765696079057489159773609633734718687027081163210072029663515382643291709305787875621051977714789955925305372032632660996439487427203959199292646919916450127426711182981550897612017375106107942345694106064459186792737523476060545448902953796117733102229193670786369194951590001818851531939093606172120197540235781186890428076118322519463975717667353165336140431815554612974576696053070401982807762281510948221402877112657167977849821858357769071543048117059307151760087578420743603962308064139963815926014459873802381418882155295621766629175989443809398254145263046772827268603509674815213470706571363965932880116005038758779738279116234996384098886722538467933827620909486632611504695328553147442320512938131655659539337313956781721039991664850654166199324058407960707680417188750364397603598733307980546792758586049515148145841097104110655475279689998172763649338313141528234845834073086014129459655004338076013036586167818183090770544154396532696793734598750975130092875135754140101798033800693928224152566211432186230952369955648869296309826201293261285686450451147997559999930802079163107330783419449100855168461722875668327101148707450454259774726556051539672109472855875736830836694820131317275549902060764377526809982756999689379338948098234054960413795572644147795557644574386401255468146060391890442637394580516759051707928588188083038274320484580689442332005956136869920884139496094255987262761212894134569571900294798013342384450987383838071978426539812433065845101523354864244625651927016014198216025046063419522513285033757927662157670895721459376277807488252997339024338915620123882707169341647748035040460623810154708213198353359401133212585369581042747018109106815640030073061780680791146913229478385026274535708408569922162973723745629452717878398712331388576656550740919373990368798923912446113887847554040311274746448569667864379263064932974814921606607430116117987123253558498120673003179961720260486705587285635575402072186681509863329715543645181490496074883716491677372831844198393019342937034370253088852703529783853798339493066501466695411338918450238603409943997621712647477744214900266243541004634714385802148597058510863933842062426043974188558698681526506740203458891714144246973924589506832535576411977936982089107977199969739762905937614478944655652611481618935234176989777620600709507125791224482204972735968452145851547848694297462417582766334080233498468181659305734463904454755847389764187323511764612931980380256137596950807350446552169070538803699129061177343530602992402526758586416958050676071269637474184091805258153159345851733559026132028301538446434205056914991167127316088585979776488695319070619134335438930605281257270667973227488317165952552949373146704300989188470511882463686657622734427049734818639225629156977508748381999286872837643152430350850623585852531095151181733074545744012039709496230950208650496579095749610887390157705949767790068956445622641526229106517946479981378666701778589895401908087234820956003469233757715088762239475921707425988778376982887276747383717803226864996310724006294742575970749568617804658145326553150928518767719195011327885620329891745304671002363245794825134663648586190299887789134912097535722033831977087997337245354798092239822456417125044459961748151959023153965971548495472493601283927897879830877876775098025619193213336750068958412794875372855956911246385351245380120067015779428223628519849039332388094261647665571869232856346013338550541277190835244609941932646473043296378318235779374672223746353967195910265518156711590641864456467453119647878561566063066077133685931204675177516916163008441691192354424905591773452169934647533681969002186720183332500296756044186538488628549228705934719390269077839424820829236530477705386497252033171898780942186242329717292992308978471505579865279240246969309903417586818690141187857868999254739535059790786465264006592499273265671323881406977032135715393404100108759997665671839005368964630756501782006608082187483236909499876756061380604538277058027321170066770513522367883906192906993693478458744463929139683441724742763346131432672897924985864836987847551927992947059079840701691797942721782226918521666789801636567618037354416091589925711749518229909006537393571344289897303072504839578264136693953941464955234472291870462959770021340771796990778969097769665084652580292428268100267931906876531057386407987419014971156272467560282084728246495220986590910436935557939230703996961066454233814485205778145537224026104474086318747429186238515878688466644930315506119402782688644129664404753749926369527560090479552854454972205240108844889770758702623881658407211028615276253140927302334454385233164744716978397031242233953931746381309302454289346791284332160160401771000407458925371469063353796161160264140618604931211782418922213547618885322770047832272986583775116648091627418296450087658473685953440554415672595966111430672866611389542591413582901861209713226381117982625585508656114450017315411320515414470523995929561870946947986848574087881894850563708981056852431932328369957976257354088413927665237561358160111126304884998537745514868438775160877409941495759072721922803709109413305697047761537964890691380751390583888128732775914615889471649107599146036319580861377624769359460343226879339351116759563776170960455295580925988991588940360666384051802860455695467799469847161566953989975249395239405622584062466013715488019773377802894814818169816636950893800363008205433290617043939616782821437145183686067637862814064609665680635032514716120676450912448258684237580994408160656574872321936130636012704968470248648363779947900545150271113930753164891840334305564287224806195751766718356944330513760414463065970881529722484271829111003857929968918496904197608443713780335727507875720623561091206184818404907643850254671896890427641421588690202469386548345290893398951724912857465254281291608446614451347108602952703918372013806414915835567182416222377635828916556956419098813780810499302085278658667699595842407983483446736984408158979315018910427375071437532487390313548721457921162618417117337983937714192074258056944473682136172454963637229423254415603992284549646067226174124008081094645948650020225567494475980136003805010410219972420415222805523079571274937762114698230126613736632226857424365694938125054686737020820045687945584195046213112467623939050148415147733566511480774691236552913132994219942891306673183900000981900072516364377495391242620720002966445462181903236373987948576367074552580976859109489332877034579828937729775983514872304967001892583030299612220765863334434554590674542915703742032806210801809171947983455391389064530985841735778056494563551196166930228354280789941662226439354079535706777931135680815873815870055740356228380039049426501159691330941611508512543513703115679071255408357008415291769790106662634508943031577517112834553500919731887435566566872944727227640421751789427686664005736983454759701933498788887283701725610822059284986064540059352784036771423869337818187984621155542839907892812203021488947410109872904579439160615414989185404448733573818218292263237757938354013617103505202947936141144002456025365480932534620672905715004782090955593821852072640852074442413956257454092529770131785400592396694986186313611508469665977693890003607192665840953425727625009511723112256842075139334355717342897006009048654939764249762670783559497337566177834408849981745216118015054675298923443873134535820377019138585576857809501108542442396173425931530941156823114443868077513506161450912725648324126667602744247611186190994538001850178272675110676305187127710263929677369337592723398793888752282720753243023722929752102125969753155374440296726510686586799166266705976091705125191406210396157557861859591739402817006085976580388455784746503368282760805104287633244583594566793779949039918338451639688619316139368942536988042912582540930857978468037412502842402861230419161673729113091275707659569278359213690291705925550097829669009966170888181542105935060016013550677221804840503605639840625887983826587863105093999316577694207227285064449925419540083739647743886551936669740235882656421065654596032945523891278399099007188863757437247347574431044534817550454264648835117682741974269984411675106595311850774728337800338968783600245475381494769082710291250163431756262150173227869566448956951913922120522273332918223409371625969092476518770601179972248121611340257245709818599936270859868809659730996108383634742473408680402048999611484636536731555403367742298411126917356575535394148908507094813913493378739340649271281348383516107790022859395006056281737062051366987981897611411493427715102283810634784958883783163289882761688358767549221968399386466975924347047261877992507118398091845301615469276972812882369544424228007861471827535842165667124248732508476298210901482409490091650505164037077465906198862314255302954499553309713858769222970303183928772268980231196547835769697413778356449258224118611075090993230692456832963762073651238925376454228225916984223684118440035066188966611183520615722149757725858564178185628727535145039489040953140928501381515008159272239980318278075074660685464489963082306223249793108222778459953719239938452454655238661251656776572672867687631341976740774182444877180326273338699398276811679852641843463830981510185139817950106805524277943081276832510002756401428923790748428281569641242256635871514127657203832649235335008246493819459485162048248187392858740519213802330204693828361063934943927471306018109428461941754504291660755042965147141474278032521023085326660161997507506704396643379472956050910124143195785611274418731907282135931418528552526677645549151061829879991631270078366564511716135052716021045330640852434673164243639437644845530334421091385899587327274021545730129720251326356357354846175473263725001540836665406700909811978884881374716449352801651613213215260135532861346387348771969493451030797075039589227377682777656140824765584405753258776765573872991522851022050544445066449288170061020680018627730488377950523212574215018672075246781924003988683211119134268853140746471973944174677396149915136304732514431788460854993197213286437583075705185974021393016021843821857790355831864447404952917588848353930047274031425638126591617505948414114435333147663491291327362871243090969503492449402976775758935246762266749690549465826806520363642189143521865647317768886808818866682029474850658597099604340547390934257226711495669226227677832479789487886032881790638169610626899462558875223305901113082120066507418124407776022392396544626616325202052516154836917990762836741690188676511562329406949591419725394365511548535107607145442428471835936315155782907478350937163661579532075578037619484079798733807176657080180655761218351971510184410436740009996089847442994887345809195248018096305162418836887588802149656103253532483674161029949616788876095381287241979244166632045152320841349003120228997644992322624214065398464552017339606070961864332723921606787043957130342571717920095105816750991871904200907829505925848629774992509027291629910251628330529485664095926308598941271640884280699647605889350255607358517275145551478563518005709917423033539530452753093571564061585127822390836820826555116372447959302459043501850162346283585662487356910602349006275241135985830574988765288470358233664317616671072047393143847238819965678524143768113689254441762747504909192095858015805897249172990594016786997605727439772832089712308506474357568952920697520779864680981773636768656385858632892107726669458748056805510103690503731063228527830076258592883059902725520928789869960401437927545892644902981373247538490882851088185920377738681236730781620214014555816424361050908429190598737179735436640616764211050420424887237288184817214791785747594354311739516992375794938744734603472247260726817275136613930609331011656620032104544034904095234894965220916129399595506720290804069357773391244163850108196002549005382141312613925128324559865357669712709588580616536215417023671827886491053784104034846654877911983360373647469109458403475082142919352559862974185812809411122801602358602642412170732687457672986120417644738804628224664871997948616859090235546801961457070364554380662749312970325240181275828160194231029974703857957713918579298756335389653369119477982643666986644252652282673907509806930187139493354887938402397095854659154278741912889712599597159620771021994575164288876026641311435106435931618127727833925481087648634353351987896247242166872875004131615810428378252671963458218314593974469263595925609135529380727294755797032756651493255636972707063976954453411631405604141216549883664349527754445262254863507826818864322154808613662247138625792422274653659910012580406072445193136303546474549060154607823176352914316655364725024272950160422062105737760364696123881282740038357199827974574709237630509106992106992288354855471485210132538011545219735304601998408848488678254754063005775408761288037794085986015547267408735511889332388302654389397571366735423013166976251572154006547589678285093814794633373208445419232382009087983532659108787793661898873541853895713119347802159895640087513536767276006943373187403255173356737612808363849909953945816400400658361269296679167425496744037841334571903449661703787760110218182245528085855772386340742648493425047801918043014303563512089689917082614027741503206837330514489400597038618540122062602827970686683544200889413943164980289125908469031223837906426626520741590820309507357272811522530030467984816175703788185663698136696195090726731284822138298070774870959591756160956549048019678999217017532127723847536424155861536009888880647722645631160073150582729454816950315980527205068959414698547946419111369672784505069736791345672901196518832331488052449164614303624876195122095184047393139609306425297275719289793610962628139060008867763386690868831729546763938168951552752278278953048027700028160747365223812031112871278428287802712745655587921468478157173607371847341747886548978419418925675088305117743793519733459472235162997866364044095169568228217923741293404144339239732562257025710385010309182909337464608864026859243668540662884570443966328105783575699380825921205036974388405080305512139378447212226109290568011101026472266783304432266607714342386803724254965688666661920405687060339864405599862182351221690510565778025498103258280157768496695143086954267216600060370944081657974699294910001466958411339443389780271695101010573949826805415789454361756236062031010844773607015388746082531040123700998518193231365180924487046149572591652081691862512322703300664888736558926539603345695719719540695536839925077788561921404274732359058785832314020723328306510967933009681021775791249149918638702188142207177697491601578256434673488891483531247914255030734627880035671185647041590606001983738275410144666594830381879400762016824236143151090804303622149252194587862641744482828068904915962007061240007716276351729059588621756961434916219370447578002287771154311786301222561099395430221085957801544206415264946636624201433766788689082184350725576069501931770461986582500117822384149688468970694038706191683790544378783107769068245193645057890156963566806793625469923038640096901337025355192048814758453840499720091676804586674925585534675546463297736984807142761180429350345647558261213853207113654425458972981165437695886814374855469289980762742728743741268530654629448436153168240345351420345898711883790248026858091860240952654023524813984590187018354119838064840367928459325188547053057981601689353399435989722792802924714390624543746737914841041832787816394883015204173897789003550470060096395246669875545835027704327353696657051349447627280763995900846844716990581469680014514523464448199104601955366222270760662615676333569796198871705789800949904946581488294296720151847641380101116073161842990623599759601045228367168630481932112615410913797619706762965372802825695072301003484227772568347918614967652977717582744524451003838364667118810404745203476565730719385320962486458664295828961646943916334539157791419665404949269336548965480866099878809593246286343350020152710625890896251209425009212157047864579918178507981616613538443492754932889036738672480561081595583912227014276836048435631188953252621839441775286775682804560653437862139200159295285371260062518186602501298687602153837322048729468999561463648761299829541149998734494571919835038626003653411595037852195427161030963989689401989939658941207152353199826869813140027826996483700655571156211710624871807605257530150094815364571899241236335735309916158221770640186365470509451426684268997216207578029752135954925467707489577984569724991864204129667744529681361229969282053988065010692300896903963857098177323330240458734448410276799498120572508546214561388222906501082410108179623198368659318941654291081518217016340537061412214350483443454494423144472449885923354436918147615978134827639053431991733049545148258297108923470716894921406289820940982997481698391805674028726109046117463741914751046712219474303699968102991296248629860146347218894951575528046468051489681766193990460660450626528568524097313986522785106473442834419731200490353343818296868133890426258563960164204683760672150793241225367012135227032709431185781943027277516908044129921166240707396449243262283404119982035203003428557988833518360800738648130343361208330516852065286188897441536585451537796017811028729429631901575043349741627678657612190118830390528856975258523072340197332868440503221395148301878292545915155531230053333132519283846717872051394022167360682727861403592019539072621259513557282641964952224469702753099934549395722055749069590271564095641061569771698831479830338024454218157047050945235501873772152451352994430453125083914929734273207961931585321197784546737720333702721470414149891604021765387914355511074083802385013078417347804492735376166306660274720701411000582728066437655471538531543941273466038352169056705925668313701601394929182328052186895834768313488519412868667790318449245769428496509066359762428143341752638021165383834766093980241390269403914277418532385757931577618584573784446937531877064501215442011180931070969666269087935161387395669517596193593728903982849578581070776070620979819093713264058019314560565136198357223692614419347258672344424111118703947518139566014447506418076249039387773637166350278506494307030184226974919104121433846713997663590110688471374379696658350460272522636560172100756166939354661231921934755573528099225997161931809835098638077393970744173224377387985290453344867579485393378941450743589983775830949761981151242197103376945399118195905465218460267991490480332470708784015291127617541987073228010194652540449633539997194980615897619392816167293521640521841321508230043558897777535804262734396925399798005143344787101138014424013066396048354513057342172521706414852732308163563066602625374309061430317742806410398094684931596465436569068841559877632944134210147432407081626809611298757181204229130623543398997976597842883825418455135292724240633260491691778103297933047648000675475295252974395662194309159701623263151398181678445871282498691375914190285247121215054045038139591388019076828680007609839341879785739836534752240917751377471189925140835377241760624917198061882137418008925969220108082971946949478194546039093359025037732869694756620327389085617658409593575881446667703450710177357312532488460431131950586122813488059795384182288131060096944720655991105262858231707964361003986260746549177374006258100693276527571864639393671543911335846311861727954146790485461598699786742120003342137965553123347878517328422271272008135336992086770141032714692113667882603613331579015046680666633393336598209509741480039447078885235898569411420896087696598917092736147026797310151289772137530651415552601999301089463245453966085791816582326728242400255445131211705725686458494789914191755562302252945027470816341932758715436799340677151142654503269177443483848781199621055819201391575186929648263979163650767840537337061495216463498263418797306528147707892926078393781999122177823261994443297745229220180830573780511688890285841924681610597642339602140697550644910828032194154422462036319647668288518528499513712475630217207639969488329047872488653292171083799075363052166157394317233202924920692492772331118198985981864553977242647148116698698184939586070943529865399465846397646770507404307237097649840148303957887024163233533453490076627132439758147612732488868030845447992018563348777345452953877311011397614267847135163980752052791245305359046423223690910632358182965645939820757903188746898746574505561244402506333253482357337943823193782750015568396595677503960452221305718687572994048417800157953822762759017144339876136106782686932932957081443896197949866977577096578958050825580561201572764251441431877411959977858567480618587613290812720594215891048155692773417928356847618292365561587752139840367536092247810419298794674155132805836936439673550106336316295147951888893518598612427033180377157491336959403903126104937175307721637297413317189916902285664375405335601368609477361256967145956748719601488409302618350994105249976384126148072692932787737899266608558292415271524921147123692932566588452505580858335140158778764457447502510332464015627421403703931763318482581956519774160051474928041238865811141051563642777746378670127231439474179351972679509072358418910589613483834607148458811898798588129349914696400194598592484385482672748268478678336852253776622604291929128546080533389257987333865480854261274407711753405513003006904100148525147006030740538345554891219847994700675062815375128725642554717057159903861260440076241133438324964688866162920968837533101814926884285470856052212002702318057277518896954547239350557586341361127365803588523448338101974201925452075611596982623277413732105524665020240082816007959015879407429786179816238075519130570838315757065787993806668543001496621601689274012294090803930877336935838569639258535834556615023028431857038816223529765866051552337623679972525986723545035686164304387135499834555397232476170338505254580745022960489267306062287703357361782102224323773383731639789089623805043993902853857363859560552907635536567974083066920339597949502564592129331209580652761571702426507139863876316892189815204926722554571405606036617685904637003725109143354516181207406445261515283735172891654867634075778108108574746405289535323835055826769066111102785673789958341653838597493294883509837151109339366628631615688436763400229587234117351627649791498597177204150689339460439051853110811292503724724051882710673977878405876255804115647903279628567636608964985513566737742435269211082795358127942961313569832132024922398574715568129249472951303942241010182396394046987947282659627993185270150571338076823726897487891619462287522462821012315083436895123061444572724624248057018462902652831936869376699366919271818872895869934101801514933280839345371080924781990392158504643631789378388991893391146191300943214946274017207428747546009700767054552785195759803688431958935099268062449661476924281836681744385382968224531332359384364659617754315450171409477237018214252731742516254372536690867762748929779432367453440398705112407014411416874808622109638215625793977397482992907584373273424404892652545101411304345090088578841766014967683477546265327208637192446884081435173859490165803588714944378550098885298359129665532382493456248965141122725691118001338668001817278586208435497342977555491251950807784600807018448707085098932607185450623725541877247920826160263717741374985423128798536173654787088085241117967529513202366438763507412427317789053430637071642482069797019434601664551001878658015782653151026285236390832931804933268340967814904905774539014905838474865374978001986488366199905448097641541096686089127756086842360997029410775519932722239056077933919027859871477835830503611768102317405302845120012011169955357904642235213170407291637908226490001505406898876470120280977295975037211559637213824584820263314032332847287399149919471838696441242758209775307009682526210261952897111559700164273975309566415453185415115576813891708295091016294579879453309184136392873746078647715252942226493532911440271264370454018832587054095962437471527415256704844004885886615220586053048434162226717735522408279793239515040313260300403299643803090313609329719430788370642436577483468842458529937071223464335517820745726882608957743449187320384771976120454557603875613551007800795484395388460617836468482775975810300613302514083049787716219574993639309123816364946147707703732433714060763667118634066131052234368796137359301506402466197183346474399644597419512711634476163656985048027123594972550739465838484149175964432218171533999540231086320722011753840779362463451627091867397658461228003428315496001909343270287207244643588326813005403211173417240974353231327859401098140440649739878709920558771969180334998618389957000300735017162588598905403439362648812730889279240004709744255243621307227842672740682419235158896825697467140611215017086047445576105067528145215075908309024227150975973533873002853039884171925278325649634280387192294486360504371864942733764511276550010777307266880551303301764959500502062263090345564877510744564182900725612164410556982632388953600187340532694119450885373856131529619018711621947182724581910342508971242269634475078406534956541493222283263460193046931428216858941214726484716601229679919833321848286989558484513287776421466187534864247572422744389560995847543941148135162240116973258867259196412965831877317887018040077456247574726186072431124109682918674753867250382246416460546281460825320624391848260778403737797692951232341536389778688777382271974338695222125303208111673544510302715800501063185270864885340566161203415728201102237066060505751693756356804841200990391258551682240397504061559968766420122685550233165556560860100495049807973071218654362906645582594755556496681006681410916842452438721880335283959965701315571761986865638636260885328990769713451464270233391366931838916149181529531496078284385986990835758942665343728148859202731224720899932978693198589465257814024863450265249662942906451320460353240387131499515462553705325122579561910222812540507460028157183156572190114142736574189055977904818187410121323400275670637789495885846136787813631842398449452963084019486857694297413218119289189496489123667255485988248204334176692053178859507758557505680180441393330811740493053848474563829090151653825582364062760239695059927682894818063880993956239683870552544404307037405523732096894654411542690607635453049319348331942526815381950388919691140789575996341205942487578747009298051144330692768838232948763651418469524122405607439196395124156245197949693808543220785744170301243213589395518263950383520374660576892061456234397728068160070729670756607531130489784033203303187015795471473150236644526566174010866545001079634360969202950339379678636856406457012222579781732065012805982807201616442643997930493737586400577530949056598103705045070064243215420063948604379974675447081754693889399751218129184362151832104951777992279500770708021150025585684220183462449486061223793510521337588209188216346810911963963381288271433801134358353798780556284024965698917449820711050336353471204495569157475323839725665766793247893729036770868014178367346955598366013954943587358632650352283553004879407280204938988189349612830091086517595566024455374671940764571926263629748074374940186913866690909574816581510748095054088553515969224697118075966976912727771229455577387167172511425963471687423004096383433922437952647498947355548044412046989811248685218385243561582909542956997598485190344434054386240834783373129569496601720123432883319243490604419832743533906415459499477397478650867454606954054750663082856343748900001571290380911113430144256049907819485747349722743852328858789500559402953916760689402643600981052653451069444614479850108101287694647940333462321470668391406151936424271446578769187007692226020058397177482232899384184088079013443365988218572137354852483311348347772100106840132453977774123593010963522101570633390074239431595968482425117172069435380409106779680371952893976521069328202090393636294214465611291737319741442212613818567205832195354421738487759474335224141915445949158613888464663587675030181483951568567891251515302742218989638850004130074120663557281145130023966076531460184553878116899558955070315898184722020544940066935817975649917179729303279733501437582294847014520552042972689333718913343672870631969990998740063303606853054023548675679493103674003209481309822106696865013090381954827134240769877829496886682676396583288881578142946739283565300060132059262439629112685963323509594751274605769383758992525670541744767075772142833535538569010210366615646777867672726772379429050594041335662483432744120367858171763535352761084363776692700638555069642179898448048529001360536591533353917859911700372813599973797285948234846500679073678843220162324956509768166053348946227434922224509833934095366706728052156293094354408099565538561299672980956825962805025969581836525099304810007558634339007084026536548332505992760809277988900771281595836916551079177764569153423035166513995022666308745481169134158941744318427258085325063988840237496551762019566341538015764089127708422935466043081978565617928637374415323207995270693534989202524407770161634953967831103968699310622596761845424567516019132071959073912069274177351778877203510351805754384095166589296864482079489393911438987453578088846125187872916555979512206231748098685499484964749660648966336478921621508986546535677642488565463332948690051990658992407541440673392148035238774819070145617876840850200330953728084306853559429452570162150860458797108611561050961527206882438886719816554858657131022229431680774807794042360761613225327291449303252550060750881169174410143665340161288272163380531734100976731402210552240345653149712983709398349589378481539349032924063126725080215499003865215375090787639691890617058831170755911757749335177334144266987185645896113685765787292265135752084874436506757385283243252795522497618983362271818941603564275368862810308133237250018760893686228017803475170018248776862611291681938202853115510765301946129847455629857180364724373978096356428893895306330603124961030426361617536004328281041363357816198201718320360137722630666057922299966244472825038931805943817090324776260606677404076208320530465242211097364164662610062071813533469621075000122778855699169921477391013094652365205685153729090417056678062488378141581867666973514073195466333049311510091840504158588846743028467825885816579079399073287178173776921050769152494205017283404480377106204482765716096287108531677529361670063431597826228112024000282074020932871428445583703810225618585312706665181548509773782987645831354458411520945804232925698145104119661409302634198937755756975741024181118685878654062241501110001739875478830946159634649968114303486216330792883484288351691216574645353892386230054165642444803107218234744824591491937129864994647721788218851358325793015976919733469028245897450630876186709677195958310528289274726257038513178114937906636032753647151280783587944439063983499401476594265089731077839004446427875048865094521778356466975193322919006033388180842400138938165103759564936579810658905049866111960873818506444489807328436812824975409815716324063326178158810319943297666181500079862785652283533118745251009356925383011677692416583377437710803420054765518246268144590892818892233899406654052618624646075159523746671704932984606165184806035018820129992748042989749411101133739088971044537249010404238374589040985021672276528195447945967802685727532042622138210923958361182490206999304612119671541939635511461643145528028960486789144883208375234129781228752862842140137596005694988916924095565513223904041888572969133354311135861303195070364811009652553688375516729979726286754387811596890034696955575044435261608012895394066338830427232575021735225209336981455295624216345386546847227307912257039920515589563976580848425379254483863988378421446201309012119498655597177548995869355215173206823136063325791385756283968808475742665394746748710302183969607956217955424421380470473518049381038284367936167244748981715140243615222537016235920710000528148940537495308616188656414907300786476973097089824162182961690968371724977208264043371386209573129328125867289393466980907624000419727700658682540004862225958538171347666804826290563676620229154657415960542934508827451715502093066623340669773886683835165415032270565580624190612516427215514418063447371321399333831208272369481864867065699361461265848698333051454886000509094326208541263870406094669241790419562048623627252591164035156991790268333332583835191938223894932757292213441642495278830127371978412915214553667212286055897056568578019951490675339193277412066882577063600622052757749032846439622039442436793666611854649018003562613556870800747623413913350073845939526070777441812561863976014656094104488773471601761365005723326082702174581667306398653609402329840769550011332475842418996994712322622846896074080602055535952526784686259722813930831209915599042394591282672420941564460716523366018013017368915127073028935326000815354922180941779154319693795959155774071270435804349799728501561505934501575190234927362730456935843521517481295678828293440632580083718278240581529341645648679092299232743712214240572532709065154799938291456380165562069403038845482703859742727573535860037868035892971893199428756496125136657654550964335640010234709008982274457243206060303614780619390293505773751031078853481366336024154515007590284008526771295499341861114754853120176915840383786648181628187375429850799084462318760811151317080230342028745525900033033834363478359355377639142047699918529530504932352951955111857991108849108102228413734623730879296224934168526148531293271339336550472865467534978539774077825848728996891131964032061424508524304099157058994852716150280286662856824346564213611067088138054435606995441385213574621746638779294522131647154376226844593252414025303168286092868127919072325684313880774812355161408231212429911240388097408586813551442194523290372851077013917416105565552646419216671851312847320928698396568284419509909309246961273735599388767082821060299031138064033005137529694373935374910273467302142731474150671517468141514365079167055105816229916343629042638847417687518523450985108269461085790622007855112432104873332908320947057032584865043511691709270958398038314590800998552553180799602851710472814827243180594093872735380247163146888270529072393905697983951501915038249755750032762779135562044762790075809129288840489991487224918829645796769988293701162263873856985758550798570865303374247553460876428069561468988948564514373955575884628919929655074770491728390881557405805829689920612918774851295922720010647146270357018266502059277198168238507218853019608231443069453874827401933781346300435520478851298648527569685290085875945214003815188697195887935817530732376348014783787275760895834360505351660068736708020845244761221949251996409456919805528990863079957268586009830189369114031651941484783186967027802641021267461714638481632490873780764837905242057915563104445841138808083921242504804188141392504593121499159044236087467744335019347278575157227644952125531043988436368375791409963571173895416644022985185681921622092347258279554040645988119154245929009977084551206656263104929667947132914035316568195169339863034351262456726639267915980172101423529418174297232150112049144534256500309068501613622677833643546791068682834336535996104916630187178724746366479170902688835665221378319610721882722750072341727967428220953139091747280210102048639327118482035146659936082551377269846401882294173524404399882168406592734344463223978681369823020017030361771689512848575008001230411660989015185709766603275548675926530088370766510137489491905398440539658099530893201721975028168500997354451343394501257077992075566781850023682040617096547032249644775748733353849215820745552279687485299287843025492362532506710322270124617140664503365018448036167087785661817938537814885528235997053583604044181309812168262073328391454518008643723301983120460767406158782099648368783387108487548797673630876751766669131817181706727743345526069855003679333211519785931576036201564760696231016873906856447604030349374369543285218449998976663042653130771868592147406427574746815313828524133176921160610790468191163394014802809047365918925416672831590964431513299120466717605838325306189626539591344615813273264711643696027615570825934790900178585061948031885891513903705696664984106936304111045957143291114920416386334055805732507900318208542262521798304176284291333283105961804324570951870347063212497727200141415635080888603617077353363875140708876176342647338747365802059273796809742929145225286849408739421119959967068890055534787388865789642155725107351405164027242151511695793260166288066655335881263564281912421992563937079113878991617818818754699977995506341193075897093690837138682148393133784025290439152101358739258288739786241542070509604734051505116456836259512824476503220510304313346306401966104487528001804583563126517484861991209417189648707847816267421150473002882315154562774404032218389373434961898121680681670540582679272787956671339156576024461043612571578599604267085732793569611179733099060654945739385360172695251837694144342098099914932728709827836735870281025630276788349523816169870955612369046005089288113148805925154030716915774032564389509515899645584019306930876885826593440798880302276199693931255424592707016908180864146415672601568344407277722560681727246848674814739014646724142556048239849406210101870438326704831519916758871949698339198443626742756044375118204652056922808001760723684135390780403334800340905855355295371493524103531074292709849356718798949156490563489389944863527881411283376299946952098781434232858794765320551586865883528511453086484341970503797392335792034817131039667342075647506691045045276365787477107119027823631568559769482743131987845548157242989253307804358354440454595309712140353998133801223357359968916622045764032527112263591280325384758300844946977595596987226425499385999850143789349208627063928057681069701353274104458351724212235621243604606009138463494173023416868083111910281804895211282138135763489076839143942598763910341161857212935557710799493150853712620325343280911408855279356318618764856206924517965155099969463614881417595077559793079752851684821433895276642912856193128347560230384536820099046515683396740816350994429681470499553240481584697262961530915658145054125076144542200783254780406204826870481855912502361471753711445185692533443050572494877020880759984364245920072753353566663792065383915412234186541649806816784336127081469899839485747263603223903466258666492029593451778410677823046452285115381887152196230279641487826762612113154320011598153499174434595904532393756931379191067149007626019079804344899524986360025821361460460317582677441936850082299854787877946467330176741544483725672543057873659780739303887002109886100928073755457070076667902941204816077273394930350627685531078751867230988687466309235289241330886789928554484354691245573686624722053363884868066817240626812356174265385326617151359299654859858728537649452612420463989086014365305860996280920640689708574191615795767432358248656635703742259591232761336018511971800925933170289726870007410978296223529987561230804381532118660098068954393535984791004911370785413358547211383832974463949853890690217072677104278283025143918850281416305356991896942477909109213257981930242433382878138167665533682235098696943861070190236716390081361122025559243157245445284866730215140665820011626489393426707834617941673023893177890520482450144055298593420542773509242560897393303943962690873051373979271438355078803578341380029927303352037751744277408728010153945286134320765882254626612945390576092353352218369696002433360067053182356179352594374289054271763596134764031976391154707595381387191575588819436269566174295894488418626000901586051580286328697072094854624711973071612936834526665973905310408605444218801566901604550428995668450027929371657335226824078024180209591311715247875340088282380014134836942134004177256871062651815842607505576918593916054503029462641468316805899722462030566138354910274940414895002479500306428471100560325971284930039876117706737238530335870368362821574682635837582926202053278381846990909781599403858867052048963485050815614450220353757667206272118767957716067017259376543384396913756978245549599678231346737541231266567817991050407513325318379552154961580921668280658298285039095727815394676765388892875550462092069640334007658887091772541578086897620030253262326656447991890606300085114783033712631935615163633637306726773803498130562262833059335918635641199892746986040420899266349974880949786330522719269805106395058073610653053192815456947068634752057071214123228802386877303089597063610004798963882406560649158125180567160947564039368881870307846408109032549188855581694336839704444458517925288312654191647155824452813893904578661641678562453196520158531663562949134576483722574312618029593085028227872623909690225365772530226626460255258738876267247386327706420582444634871703471172749835271012618033804533389753793715677309995064284020485066738629578399956550665339743934277627957779084767814186370666597582354945029008490884983885672393641419601727048534788899424719745915678137598908896128350909838175989208381721547907701698471840830837445314023520952747188378638830401505191901279213686712322057418680576731773017098557911810715565727421836930632996973876035180739977163053560368208694921886105883908439268431325596499311321396572737914550516025566155448027278388514922410963356068762574024681828668330372355944582554537561180765894701386305288678117570956941948615217392343227626578024552879262040136051258606665626921420477634259227744181246280691025831658533968915170351438377484627749884535512590526496411523930717174653004251541631098818315748665482826506665984437429297511007348426743735952778969056494730915527182294261117392936123859457044222388360816561546142609676295542266454457818163678901001291250651332354234392795047257314562500376088852903629413077806610525809592545479731834328587020418420647514523317344423979108236720172225915501080621293988632163383940832318026752485641353467677237151248768790414169668676249668212189077005450561423074631991277488112184779682711838101614057203086749152652620921881592211838064552206446513166725049459675383414360746069947999002596400571586284677666133840590619684531496588487563000525406332211799022900850166669944899484480413766961760033803689459656702091537163827758184695270573007930026411611505973445077372137919272791856581860796125728767924505619625864185674025088976365943775448575008985748716149497895375483831483732475616553857465373971074229118439041990113137954449891720623489925805964018250454068945647897402808350104856069175373169963745331832718085261209384587655315996173011983053178088099215664857188644990905718794252553998024783446702296064004016240819532829812207816060201005374915010247627604504344458400908321670992139209479544620255661879558836866083360276869156974545446786777025024385350970646424349869584285881533294725663564279674787825219766120012993742590608276012271335536267393307556687580308419872496639682878759949867858268613621952272758196540536851477258857971902846013220943455845806905448165482602136569611477343927813618949025766847181411112277060319936071667368802340181758033465460625001377208441701736862309382067529390987585384743902896610156648125893344788361201828441260135492106268761848940491021048594481364220914138403786670293409685081959560359917023734635039501094811847999956050254404067118418837823954931124694186590473384547107628441888167305897580251191707208959396829533703759291178443743236345673868820191066570705725496277822523590287774547896708241382329424780583319125600120483237285934678724045545727818684958041293299677812323965449882663422027013144654647745858763105959636920179721729640512742024803745058204587156130730631331466023682486071794075210409212616352684783786306939902159186038089458037349057106078773462852438943411652414469245508412964282580904133768739756108473475490282743888876624202764077249008677847967390026592344963321686654822952266142469301976986946887520107124102519998217130518226447315186750995367091670607611256048485243890395588678631763853590142429704099014473239860759061425519107254716079558597072483330384954094988938606939918769052737560720121283579246025687457360594610013532175621855758966519421384087958354356769348065437505660648099583153356088708161429121551114989925045972476603278346127453741188418451646530961309921592052409454513574861299996287566122024048803748682872232301243189100827089237482939625318837575001373612181022486156151298351602438937696245471569380722640163177330224492854987141503452440663339276845083535862063038460452477495481266721172905158715536181706084903233483219263764248341072240901449534797401453928725113007799119531517559779347549458225286943934644744605073754460546695963658571163627005946414789827745646839466429992411424114357118813870982611609634781752028812889004207752892490149933564649275865555893105635787835793958847225288871593778507820139211216905311340060726601291349468018082740915055520277636904425882044737812234769101146799150530443519153148288317680278942189771976730795317915486272165908777695809192147297100774020048745487883016076127153930036162710720745886083720761578091927493153964243268944881425893720147074586240132601746505621787688817103632861886280088365656607868451612957407003342207567042943624587730469982791925658430220987246226910191934198814650259186299676968020342719441507123053458158269918194119081910408685330179078036796443006569034410874108296604901750505428408609409274388386861247961077702987128924035340520733098972764204884645091640521659526538060615839508313371226816503814498117860064794363214253121230671609782483434521635191166841416539394614927726894538559307819681968635936733817794439444283537715640130765208621569173046549204098703085285223244208019171778380829910278211484277406740087356544879147967752052282315649458756654764674478734770109682492131385883361152606150083307754573979206940216018829667192248929496115618720068456509841062181669951406601290382601246469018543662531766926769959064527503926836005267384274004328366006374291091844119402696952181871603399419081113026142842703074874106309838552832915453401921557533959119536951733484862840800801386128573966165089266438794877114387324129617859065493554890020769802233732217008929564842179251156890916939412482877774797638652037758955225123950431554649510618744095784363259864559221662919934852164623874169952013716390586981351749065273603598811034245877039822867867842965134057954265075440024207355148595862151117505540005898561122419868171673403817462166637096945330592686139265056189130528455709949203365050638903513957939127873795374266245325500910643688729269879964092792943820455234550379517038174671262183409467847084250423310326597702226368486467627652849996089109423554797532777200905685608098468684266911330660905158625541434689705027265821092779983457543295721416444384068410280810044036120828641331318534282424856472769396331436023058003099836162662117446476379607403670342811378856227336744393569458064178543159875148358182012228777772202321699745010778909046050152287172788668977879348586282282154107060906043616622633588339305169530664963594325712270138126624698397806243784916828729973848964589755143418190541400114281399993332980404670966655866725196781313026254232145622469045337832074540114856219031740633705740362593031697969448658955727096298066454765419989609718507200089863060976686148701956612178608073124405983728412908292102331658485115379288580167676197553660692961976123356206218664137946453404764733040206572733631354546484043986315725740570366135606977724840131617597783696457361567786332859558159486951413727065951371212179748116738828082581420335943179417007613785092632669463875536394324248112701772475933389729488845324690711026058730815544321889940899893915588565805798766138656138208870920046561675952787834126575286762568501892227685616291193607135060338380771009242075690371291631333298169162679325536892647645383732182854992584463683143993206310348895520599610437590972387966670321207717905873931657849536259036245977342788600009350106191108248873109496074841544229221507973375498033472893773325933422170746734707047681401865262127046292710343262689082528396158374823155272699932714891121820021670265008414187760271703069121259088983604292299772130734145571780312276721054264112354508649863990480466614868927349676144530968410406042085419945386730777892658862889046796377277789973394426732681158987526993600405481662904635603555954611989548567023384995708461744593922675688046579043517906118106719686318344856918578607585864179269985866548016470025705285985792366727548472973792140578250431217362676574500891928110188167921701854098064713928446661155647173763702816169884549511582239185470409691381496113410039639979711810277486357976648946312991809391161179640739028046685099214599320422728615016073468255938901318457689489003188359294436572528397541224664081194266317008411042523516603046318397214280865970377796070183034428106304015990974912071407915490117489220755078640216404128704406999895019993876489485540740578003468460546127597545065956616152682369970235548870924573147136332863533793645203102307363596619227926778001984064072893380758924438608966111357799414114577656173451511642369511840302783938460467865306374109307613531189007082796296512385730793726974824954628710038590879905984634538053345197041672187458864169655994363928598678636171622708990632870814485423902159785905189418846850224004373860938521428270450558346912377505819779688352928010638280774991511683736393714359890046764361004551292562420247433170800685092112682066817605352015149869629760049068576113481861023167761984692535052286997118057507328905809836111704520445860841171084119501038815033818627200765440514460759023371271953974692403844070895956440027200590002932489331359726304487489659829519288221975713215132795983565107157168724440258657001481595142924327381260051348301376961318605940595362309054016493070250946282590619776470311971191589259659708512503438932389126888297188425547067955217137438834775749110121783037961517500317456999587931150237425309080779832897148758399572217403673052465518668302957240170072226604578627792186441498074793461618170669723964263637657444271870819974864636027767653802064564805830344887852609245878087055006715755168678392891287769539232602873173951851085421339588074147853835590482077173005691466208154649902307607080547723222137546070792741666923213070194269939480636327464839824187113142865850907454867992731007108312190524240794571659801371354063631725840169487174873210527765900974047668491158881082318764609198319099584606088699501471936122714160653942327329792680948942737942940675355051011666976172201938179819692647987759313226473915699511423799408931122033437199226697039713660185122597428878277040332406441635495706798632432650612939593553978094266623989705277403635351768790010947758214975865275192091923480299146608253523924472613818349824018976690225436966829925382872970166726687631456653218868623202897320306138237933310731545175468320335118639051185538616551592982931600508469985273494027440775936658922581385685146169827878525068467267182839614365307778572471828000871638934741738842206404085172853385028889034546324317564690361211397435673943221995425947577434529990173666108599401833905244294951766123981646618454354331960123095366078462817741963356055797881544538971503988853149607204283386066132694174221406178771595266960451006333686512878365203974305635075680571358054806795623803205260661619654184490368947528806291906048803373947215992557024673184900485136249104113476244967296646990334201433224784214149981660421072585838088738728395366732634994935932608600198712327759648229336665586981161632510752597789605003585067923636990003409839281621661053456217646806196769362688952291724633537131107411711604219375666002156772907489341819501080004880909622683445536129508469217653416133380637268402412489059052876329837419542516892244124305429448883026544369467402804647019969696894534465485891981724679234076041810456638699094632997251213150877277627199572411361544511970569590227667877295164643975090773370732000167102370029904132295073969718888743894385499848832826268068051349862149048075148651521139133386428201622164576284370156299757404586931602658752451811831066599307950948445536848115287123431478610463767281814441768371788358953208497146221140221231009833639230909679055542744323605217805338706962721777179736969947652909852133345954508225510328770636388726789753372357292305435793079996840317651028233506446970856678300950210774645665874821799245977350906002110072219557620765679502757601498183387509878270488651595782268262292723178455439180613233634034940554245421896163168558135399663428972658774063370837017276222221454894532496338444661662944853278494413562782830432522384515353482778435839220110580936117591545781729597954746908971736116094557551580973917400005474797722240715742923238369600885907567991038498655817707260018457835265910039318958649312592006778543029206432925728995319173089324501889631241035460783414417906226383598520932696216220997026634822164610618062127270572965688733239042749493506714727093835495377249620769333904309402768860768010693423211390822741052199017739045860002920020441792129100919021143816454067573959561559588760537160620445112207287650495168725594952982349882043789919019097380827210671983199224040894586089351858856641083791529277557437603017231405639867623109426547011862892552057026235786255001022890650456534825370846313854326231374167323534411173966183925319924283788969879902916816925887390650638707251102826739360581725892119272886183735135025518452915384558130294990711989785424812275798111182892542132393910529911304464168692211798146989237396953579569691666321691994834688074005751282316523251953744371357580446306094132926448724375629035527327468699374330447981788103621144744314772271019363193451600224408536834796030600581244948012842986944641070894707518739483104342855995661599678437053020650604321587911004395711258758114367903491875441240078507871574000778170973157860785928714036297158963134442150475413878428511901549943569958762685031451076200755202173477504030509959947292783354670432083946877290227801363636843477197266063230571932591063868372777410061874197158382498612838266057112112815452426313416871179513017695607271312754266554095416523205492716829868467558003503238439871829772882722893776936226246948433596275755429753095180063090308253030141849360505052961560633531470745528804365841935141435679197245572216333696406028581598878556764984905091292056246366380713499638300780970644236933036469573102183489493654277827093206551465663392747372828359812750239331843776159969124745020473066457588908719702352748365228135533677206061806976835016825815757419286790235614917809446404012110807982115683669862664586068617892881332370962702019119550113915635808354865798641302737926717650853381823633012809579408122715339745444749033462739265220561631126694135057161136125626234620065741633933747460698455924808033901114829201583840237685814940358642769284987411604601893781380432589155549312551016705225217010563650737489494416945423916565865210461001465416280963702427801250721476711253622941434697943488403091650723389277496782400340059515119188032171191030921409748857803513356368833997371874436451535696836392421839374051312104998118036745473126432762512324236711129597747061306652416322075684464652575804453496486317920929442514228480443944307515185801898484145930396001691331190722084880843645709428872995685079694641239993050915813305023080425878006434651662883860899877861352667625163839470874005175312636365079523741440901099981274589789032659980553606049387076836038082550493472015208485374283734807755467719554869484260872319731604939821000343896957948077560129118165029550686209767060743905394411661081585578765371711121599537824900504042560258787462542311909258493732251042286570354293367881326273506140571568367480928927304343802552991244478679179809523413246492810734046290398671195783817969183369705843821460523262756859470750150913275615708439993655488632615603577742262230516609168680239092887666305551313840437650934257607819554102495067849004996544340338986479306353362726113126129218320209308697638601731405172086944424157238383900955885313954589288178210409281960350115083294497533252471898018782100758386936961938899729239696583185221747112023984225849001647173690818428154365776987795967070211431884056335566854953557592738020339950982664149371255298496634769336312761130256575499516679658638118712862605304670873761890246221460734184305135126861628653328745424114370213913979213819923361063039135952181356519450962778494376867155221501599053259041805170106089345331795211448954618533428027663473236308968381749362598007648375433235405473923684190269821588464922410907013896705380188637577557505147976010750402236285244028386607699298386117222989370764375640580588537297822981338216442465707158817058501934411799514397275425760311968508784448623874705294517900327591722184542247201599721587388646306966818265520038745110382906375493121925653444032878902048431417021000769586919489764953238606778418497728414942872690144226637323194918232293902227859658740723628609766671490345050369947281485702040895378591569598885925290077236864666668955038248425028484442993457993715811721596696280195055651149234899517421096286234421702825530350432674182436512700129954845460247764169335316400271409936208989496216659876231272324459461761501749499823849526157214639767646711897260858866758601390400731670090049927462909331589640174773643986912407617614016957183684839195658134269936861986271766252592057025622741486990312419631188861395492873830992964044648283706076597072335187674241591626927114067507256842681836326077222171123084919486136057814243265655485696870620339230064758961893740525390042241393768787391423414481263576391210329181733390446540242736518857190768060637973119831317918208666296789833918922784236660175102310824638470174654003140973728368076698193150761587519125054564189041698583126552343505403466109012443498250595349312121807409498677781604750384014550093595861130078276936404551566565895460873381392872739988404225035011527366081753070004655107844530720842800482417298066079027339656466241558043543882984801932608735027135603457720590204447202455748060817698231767086647918331697665166000749801019691357009916272908215919677206323888741707223260573240525548124178512553658314322652216965146222334161613924070083360714460904670165020618730698465101710274749667895881244756036434577345593791934783150290426506207037933966561071880090041431710268689581391389118152908738354404641298700641121294054495455667885435919727012756567645370709617295158829670986453612038616592431760311680311826717340176782476804822088963115477398096889315965908422155319438103744862427367849171200264080442570061527403992080162696537504158260603522197970018332222272383535979124790929478202350990488744091250598897802997097302884254449605451392559495136610885121242556769973338754471520340451116909264046005645381849860389819484964355887106751619096552002771395194877830831783767257083196757306739860629899338086097242013112263187710965172553862031556022375597815978990795986198402170357601312088243689431879783366939273890930896314714406070264820337059045808674320350809007737866683136246285755100471452650401011445282629121431259992311726276802008072379232132052820461887936431793883098285062756312706231525309043801291673258308027477505131938357091538732980429300871828251671906979836943090581444375157271738260080876118499326609906349266370049909014916178300130454326224388946836392000835582200010666557534184175329837667035511053837848071038913780828536732816035167110495143610266669097518569581708679927018280961640237491640312551793889963276631392596158219575851606084994261996599561301357437060574719565530577299260875131737352410236453279031284281994880557645361081005531476555849296788820831659555974357723598762284952713581906441669749849037866761847484619799073457339080350247492971157698558891467099106314413716381774825346077232134688806540238244710412089267833318100592298971005514609276284937860007847457459862696250895324093611530983553930481148081888050942026359328994679046591254734609022140042311760985731454950129262866672621970080731137947215175312459435652112770435985860593001810108220345968871987112092612582790020293321658869522161571939403111843462459456104890199514015338659098292652283272884094288565200260789425171836269863592786905198453337407598440170353606812159320083425081212945825087034783078958998960880710304387632506126001611272973091853200965601857284492429528763302847525598242503656148740518202209907249524262525482782428921636686168770206811463048701709318755090386181318205574467148616580874057507213334398131506594661001374903544684467415758079483263490008612294057083116057630754703367611219668607765105335223360559363858787742490964303991410371921693662203211377770741063648697456755803896139468753920509547284573850073300637229106948278181553502144681690299391707785536988582877407194107439831636738579728984523342562416732779953564422243623561626669692162360738207342740201399543446625147168187674730547395513100963707310250179773506632257402189099878797479739227721649357621648263350493655528862287380448242742059501911075666800378020939998960505285888303693882295568709759634507949662593935408236839433295857333507295449287791837233889460886831410319873482882516569151472129012233749490731875318464667431834994524799368554926600953422083003962066741063154060664255424065896891541721651535671583275993685977079567902366522368504476752476747233912446339240575073173921552503327529377947769662968932779600095212751818213559546899182634687974093241653897961763907736982961776755527539015685129383131564021941812308260167594029135265483510840681888979447642289164047328217695039802704593562389848568810944357713459287374608986129133503096660743999766831327752130942188892712535379103218041740282307690192791725599531790208890131445418719450786628320474505537697003510254448769935200425790371709968894185481875230097057014697789015590637729453116820321235629908780248908448534421515337826772013864579829310490458247746112753000342571739756105331442681909250233111822804635874871032683237002799971642264043862518062909064281840664915166460050446538665747576897572655193266607569701506671007510466182010839153356398309572319049020659827930377071041387291367680903172873470375082184020925521025578275010981319222853781869204954199569405604468207311174864717713934923110232565839613119242032021207902046719313116532334531966346782279314474396026691174150745756340913269638733167775364661913963334806990067832994993062965711120852998183502717007672113642627715625899025691441138253870611796900648208638455053120519460776238317121368720411629958674585608748889841920917418625333668625836953649594415307528966388412132590809743039585708608351794720428966775178634851122771931801270213601519415199129338399742730570581485348467491312685091610555239213421698091875417547666727572716521988533054023103741663745447853600733987987641915882872062024163064715843032895265044510769272876776411636500391039307820132840073071141258884481503464148901448393369877810148801450683532075888486515310923780534210323641750688019475244596049827607449460786344022300902053310353449158147512983089962938570143441910828036172099648180632491920889430533926081506271536764667786169913253394934430502243147802038131209684892098982380474713605819032031007725661458540977796503287572931701417639949484594596016009038801690366811441955944676782519283957993649902564331527692743832826025157658994803237384935099466703819112584469600029976846793651931617300091680469667888978879733408077596541331945326118417986209076842138883058542018714985256223579144886961419650311847169364887372029066991416096804851126264224309571610132611635450787011220246285626715437492639614163192336127320226510817619349639442536622651946427400621366338892349862999038049426539915616272227052552537981326280242819824367846402692129696513731219707834256333390956540349714181604546328874079172122998081586367942682569653031194311629014839901933611180864425225996934893319412930867521507872973379741488369956678362116287059232042330475530553564027934194572413948802801814363054039051807094995924595643439201166593468750098220909744954726371903909250044807455786013547036304884621026693664833076857472323419638082036942080164159953082792817066138243825578646247215699560416436497617071697677551187680946869945382348722493805269093906605981633614152375274939730233541236186261148241124835681770573469809156147709181701037363108296910935486785643619346856036624264119805553735262113134033049531279255279983013543399222982647344755727101545874896417670515934341030508196091185212550884075752754102306609768294362525330199208175920779639129572198984392373514521222960744553929732952450231599805931216397652166186504138566527398330211667311776553530154227096370082693365605004073279638763027664072361938300147237807134718138438665367009453615015708603863132317580489482501496689725546872735331659033772080146018224555861259862944168052307417001184630216100315935302178234257403759248055877080009268706418052061494423304781641127705411550510432141584012601201246858746599541109384835969333085177469985739154564149040757801751732864052061529531844768885781464460722247571045513170410592636929257764850283646534288455785498294839574338930158231404140090497447388652024461401341260284115037222234840265185082508461059701953112565510999922972610156520947710139008508457158550210492720426705620757155721341964944553474601581129576825076239008807150805711710591282683443178709168603401554021148972459943152866905780404063318152714240256932814550210865922118563803999423338587433926682258932494604236329582129819702415320237264658567506917495166870402974317338360643256690650694979943671956646898673585120203128153539683167698035113238900843840007216424825106850955724752445639499532512655449680450996826249854125388211298644717860254048095239417257779152398397396481140788186890062302240361851641723066873553196134429641234507605989061737233350948218566168233933102563527149852149659580291064930018383087480217538989320505467305331944111029390138080577100602519879772180016627219354742122004665173347450520243971854596856340866089037983542898141607507436474291077066386910414178665786548847001757081548427204062582829195103012339133489745864305521875959103022304242598002561969496321118713585272527104480215264713000328625344340381182360013049379081587861184298307945565331895484196110551314273329914595196248824220865075525479894207975956083080332835413011302317185501785572747503972471222185745333771578470720773029445308422485806587730650963614212412937752132282144649014186395416723875258056414834569455038935210035817875599962989370702840455728173384824747581357262901416617416388927277725342831835387273905416717022722080499959909383822362102396388166547665792951022559170709234310864980228105202851964339523619316493635107781280156273175473208320880319515632106426162496812406691388652316677741065947513027004545781456079069760163132422225998008907748924872229291393733075729789162795216635135158499191608331277112768579166461141019715429957881833174304138076194321249722630149875406381821112211314634230891323132791345861039381409343736652898648698463235946311535488429261123684207687746646579478075729675124509441119913562882169211510256669201756981024652485667219458215972764877059549264755110263444877553567928475840626157578003831574925863247150783946856190177457824219470982326254488263496047952423136925555431675338475780103456549988639342697536324906967575741786864499904916833575421609757934095965721205821044910090227226458820989843387659323077144358101026536006321940224152982452511023651608471931331159572484836911010140857778060934146023981286855159489063108721498288514466740790744756984128117956617525249337217843411037569877361243218298289560560980564802786005197964184244925931625615372213098942598214109943473986575452680973228353524575241795961967206164510924585926013712015193652485620326938598035931836195472646602442394997908843972460371725398491940022388003868979104761667420575823536220080032680473953148052265711181192700164456722016378507271761293459889629004409308733279604165958611175197091007983381843218652456917695431418424700126392030564359767035254357791356006172754932240447636153954195962277137337384678853219764343572371011872469960893950948721438399355053922599823960318388336812710727256812668358526083113531588396538502936641072644530582996130526276616344213791954680806918481981921656780890587035939266564972479934013973848982750484690081431105658389020447662726059001813554785159975802776432972936154210969164142805967468050641937411399699866401243024276584659433241913055818771245879554573226526013658771055527883783201489635176757965047310116900971887029068427787015850557554664587735132018934606870445034705642867290278545610433920343272687807875610656644291249516457090244922314201582408434013342278172548207699318679778398645566861491630218751107120509511299527656589905522822595568396906135733781804249392797668148098152298210017626051497378717543381952113400215915173921612048390786153041354503245923324720090515771529925809827723872992825296649193732110093191320387652191607852554000727526767366324935909132253967891377475256405183111467388465178136669386895288063829939991759426733671085633694613746238728415042693799256491618927716240170970392913720193590200886532542974956922956159317219463240488506869135366830836532542912936934762313920211283266992612209017682117102615369273143709992017707441718774099171662843504307979535280728572212402731099769150804021795726933274112699878993248064203863419600753221028026637876583992636077331177522718645614460818670065166202102053220930284248009005136743425523886336889409538315561334226787030574952769933829415190648619939927436289413332533267765299742770682968344489683382435141545334448989829479108480273980374191499392767198860740251631011347523975908092066710490957527672636068183463468692237220234657249474128874924021383956235765978476542899869838092656334873722857267374037290416378910084366288433913099426324442522354776343620831654732869123452764923641747934269471745021651666125932820637775522848682649137510798661379789358229930555740410897105045458179893083249692683534086123454362956492735522907857030863134801140054096788721805706504382035726836825647142564814997705184848167004430983039731400948339797571908225752559020022014982365322172118768695290758220304402232772515241050972891660941178795930699688340134750214302474083545628482703836057027649011433778057335722338293234934473327502998861652644254498155039952313109979855214290917840982897673632451062631089107008847061911954637497202450272360574002440537770688440608054884502634495057319493936827184997984596050640102769872831429779567384216800400317765000431075457915337115725028130950681219703797787136753474967825040199164645130897124592671273690035586202122596984896452928535195452707645206113830569138956050652630156121484737539908544947833028691687666662905232327443251390509848699287949872933364911848660665550800790752755577665140425004632920365380755358468927364897747491609375249170724470802023731238989427487460128255445576645075377336738194378218935696335114299214051720918523379758921385523772203960183206549751488547559674838169501844096963976773338565732381788733912927398149628774157615204360177444977054847293898215349737719478497611705228985902660719391824159316601539574529974017363008601899943231950035022498712885054799651083861852597821590796249173644283683304093178434879037498040677067689959599811991282215647070650128183856561821980602934810245141167607616994653031152040314558505969720132268854656805530524377402553926296158826946667393840568451211330650781369532231830239555320306678050913770103471026665302228826932309302961616174825244923091755652831475201442561864444582522055523031320300023018868669174994097991824755273886975342770859977494338047073819835381438153398112176788201368811163238739384649880951867298548641031745095127438203013962648896279749762397726612330077698219216659809713732478983913105205734876712546781402010452026281971730199331946695673848373568777240303477002374934289456221561756104264879931352710829089383179444458300691941539888251212565095278610105283938658751282964409812915251197575700974787524344176262640448200303403675777857508005996041546491077738309777116132974348713264398127628076155461641611672349791448124049654308502807442630999619528742879430861710360083971093466117826236970337638041027893492387988480318633686138200075817101570211022407258162506135712633317767375086087183999510443414939136419769615605871671457365493677727529115892726340792805590524711847539172961186009330134296801907648729612456127893102651721293280263214073505351825253963231265206674372615674362702546700494885822436085083456612714096645280244985870198859011092683162076654108373411787763046932481329740323630431842572943744728385849716069429080293019165573352343314954999870745096795842791244762905215646364815423807730949462507637461767688247187951927736621073519538541604589028927883832889531899120908462094809330329059965464151148597811600285567998675200201323807751545345549976209979592354892065272200336498193752316097175312572567794997994611253699174261949139892201795310333069915992596806608023071650486847883671849598495542577153258420646293045053001991773783992934470040723747249462520241969028691449261433199971502164082982405808575504907573262525727060560505928973301751364776346074611226565990191795286248033068353445085290132276886622078235712790954710301335575175410277538930378214096691069738148359828362858114701540685830626894587548326419304482002994219199165819203473036060326794172689021850135510151748135063098380069417878783730346485057225782548715919408713416050465451611830384135392222208677926282232110265784883556436653897947117049973277553157861622125688472138264311103373898413235447808339626546835175628422842866243238402667409469097372276819946753614062933456424642538410897486128375860629454924796236223638954827030592996249800122170997997927883606250086875248501625740752795377946761710666288059574490512640280699019831804680379429101414072740720516516782707336391683514002982144013085367376107551944196708172989886732091782070239365966685871450519539696972557125046921333261994718473371836910859077922076680399154887973442220377781687298301977781265443827045667603150482893773458681844019264811342009404871272391313823006675842610989969513106345471265260586858803904034912010068690959567905294093752165109412950156983246352635453900901711646837565843236644915164549561409338616447195232718160891221954880990180203810753846681871382695326817992886169785839429319599384536824502115975266922711666300940304745559329752863587773284924755097992331938529283552691371451090122768271252641495321036348145730781918693574389977058122033110217291443788478221744123525580600734653413715960412427421284072308947299919514080534644243728249963317953971404590572009203497799086492055943061550931155606535530401752611533765448748739985421870673671668325514518948233000589950047844075448515854941741548111239774939944703710183041325126709249936383652431623387327044157185075072315128347835154792157037652660969599477719028846839979164956667225556725710057289041272137820071143058407144200030112653836382291873721116032049323946758405358977266237666942896471555947404651151084242784176414616060432679416749476613567848339971418846324109051970926080120024380449590989082809789740466677132995359936355227116596934329672541433101515963097773318574225225183885799482415154984302694125606531098188405879669558136456358158533998545784077769083246210533430927973787313058727184012197812118380930167308218851047550010461595640761303043534732653906837465130785739765089815358935495452093077992889502779340619885593361392102840401073316364697096429230108063869071195879081938258557410635473846011925748277487253233375016586402181320074869127342257212775991343770506637966859405698529098300907790010499717917879462912790164532064113402660448192640093628857369405548741061121487943865685588661083230435168846790298653920721279666255639606324620852918028315636650465268979486599888825927348036912968475959160541451653574949711929774503280859301683322857314745779819084730090533241194467028971117750608571873679504445599542998917887980041022386235667395332539574159105286650062507440757255181850423975135848537507619504170218135856362806116460105873711600012165096714812861875372212668338527094628186532641037501866789846044405640858232782865660285074762125498343540393498148442050586422317159164954670917800615045538920979201310865712319616423448941200901807857362296653603752139144578283310076341310944214156766696077160707302406811367875662059403224696467978090615516227211907445776400107659333838090449398071338011481064462271485563643125994774215981288268469200200028662342639285614906186232387852054963407557383554286040855590668064508567719747365576415399573402087800887943694799925983682755417688349195208978973807512579355893870691672301424274525209659771859179013834199872725978121632888884092303102777083246943562767312301257599742623357338416944754250764456055028449497476266807198102447975871610184049307425543360181571708139265034910432541385840304415624302527329970133917752453647372633203802205883887969508359784870229223753149134714675525463516808175334140218482817926949610595016950396947292141768673977900914071980765006819059241586977880833100417011214663591847281275261498112725872763785805396812405690946662525946207934759384218096257474141419347485563352785206664665964252748712715853056658719403374973268538690799165024713991328231490133551926443286336398962697353952136632508358133201905774719009820070626765488204093378223211298757064189167270314765581200431680783730086582028748213502685249951884174409713816800911887157165188635782089148512816826091956838483024357271070660250782342920395814843312781093830285855590463816190805810393786236228418387575869591347803423219184596385469683845268006511121689001645795945800596118689173170529678159137039341341037263062685252832427556753262973374074550971616509351192413105640165510207315521807585594857240207475580057508867138355041308903185844833111022735438781143934337839687741374506961361318434483020779352324713118043190693604394972405445067128377931280846369086706001825406375388371989776555846339580302137974918518381920738627924011369164311516330301076361103685784805089130771970697711075252688198585587108108261545882065851681419296066918427538323129382209992573636430144452180570866001033531510562837385853636445926557812708968683819378679219421727201108365566500399094385714691159677228315262323315534854230534298804787806849185747088932017535361922049701962971123751241974594032029722071293753023604426813432355514018441845497520087461126633491782539962106104895552945064650824831630055988576468883065143673188120754474280432448566812813036215971964737055549351461226261650274611390903175533782240179688797476018712161023176650861553079436067205558978922698370217025852789946466380613369612869395061832067216835947123297255648151737892476763550827953197714520274803309503994246821820613532625328501963250237988172012136513004913892621862739111798686929596713078509682076676998938136712587416651608725093999672021357830160397728984492719253529686124551912128915252086388664437549387784230205591916196400292080738210896748302891092330218647855951390380520783529707679006433229274303794634898314126597050136310236892660950424542981071006842889883348472520704255374737113060003303738266057154520225256509694782548000882480473971616066773299137146066058515114275105547603806570955521945517496509516533867257879541480049830472777058797782237975184955927120941315116343930843259194875164154173414582916570348556662287993794820352166361125114855515917473735568458035264104321779696683709504662142631673120651346178454415835287849219264330839326393280373337687059511057438311836068858926591753286612705131058627564541942528823776399636128770601897128010202633488137571174980971695003142527349618018205148732696470373696950157702087263569029546277314296996676120695610207273525128541479773346481913628269872763247069684905192897159602363951200115127766199926936698422136447917681359235089496343532578632308200882089245996649584579070694449187101981560940805144919093238234021124422870006308044461376876955878082304702575463189951348682887013993058149422755874593968969069853643764674715361773042980533375710536357515649745386155081076549672841141058399706578626455805941096588757865335382857309282895220195403976454930175098342465528992406889746501530652858572570698428842981492634229919788882924769944836758637787355129646748644411684162620262623371453578577464665460557001966409094493672092473296095378282692226884952424989736160897525317173195364326047602727379489567187002744651167243678408503888471742403358376170552912528193030605921911966306663568830661834361909498521817827102152640936233563010804686595571431198702981493880854517957876801184016427465932661031805240814465770877182203703790309899507864338180045994539881960580022618484638870063997686219640956629134286476369539621805996114533455530151353566838159295433177715794619547029827320046178436808389613217700744212181381576522890748875737916701215899093970060557478412024462292032989875604366874178870279797365241632209533216807530532829628378927043461875552511270522624688648999189927999175803320615882509571595178538118818180629595655937232892127946279823815492819134388297484902947947991515079001810248415677043789728278509907451240708375691659563759538892026562726665050166291534412391047010254552320916463255966709598703047942686503154895350481605168397036705689044947732175047790263279085815699393496220107635790126848890800879577480199920720724783350176066185503338875017245417795888842164057745339993231677189443783627844640483355598164475947946464769243754493690680866037329010749837627987420103634501405122438056518509572945415902640705036233463312031052846505569039583222742538238097118616043069420097192355203085057423721848328967232033936017172963694544871790377469281197079433654529443160013037709138625263601735922408800173870069774349386638297381852411057392662343483028630886894319917763235249660479216721903960874684003302492918674826245961973391735426674530700432933008315882973541494828814838570882373352650270933230089225412280893967041176986664517961671545154635736630221976127047704053384774360646405274780630844518408260807488438846894334509231893218765513670568719628061075647761871096091610123355131972252229927444002142386870513007835515006360442522034472816806770776885235220244008438930370004712399087686617755621596287358501246546887470320070938287449104550171301054804808616827661029709200643167229778047454411779743054597507356575296383546929815010909185649044884858237789858251044883617000424967285428367477894700123126346028819458815854191060463578404263017175604119256377239072209345315917708898673494002934671146586021658198756888293590556282424246362234337379535105567268295160326700500496761458216074224880480147467328262642591258062900275923304617509661263930654599552518556238687347180585816796350767644594842865526394206158120917101684589921899009462046644493399759491404962467117319452786298199187373676709531152279534574960342123814662092524083580379406335976121729972812828326432062787684648798940986165901083747544246631071252252074626645489024309557467452551852693173439766910839232342009998765901963864769274539925092484467215832514290508905732056821682833030708103698257039807878670640948419029741252507212389610194747309905173966770032200806319896432921328494753475529446976770248414457338904263601221415718166135190869214209170933803907270245936434627084210179829027991411270598912984785624537555497889109295631623794718351283316234538832339048505967842225130338927068195243449100651441863261734464050662861179120186649042306655290784898702995569529815271410657009878530015498917932951976850868799665890552766407315783400449583836569108904292044130871823739860190800327139031115509954054805429073332552082807037494846115742469526121262994954931719977335373183827364969893783789239596134651491463290009253006233366980877842769787395183516808274611378837375254879782754633698215378118484482070884672466016769416706025892530051853169122453736251390872721429555954947331872110815395387810706778289243093614576302381108794850618149240273586068596832166880325145069283143484969962754258195444054946580857112837459088041581672525640761943400575212741644301965550443289274724915936939176283259396597137608231302693390574186853746975292535495566975111462144825127707520442150632301948774215675889853143159124882378380177202246806446784158179691941587542710439324258978672502219330683733941691447560903885819841608374588513694404993985797708276879980632291083705980209661621636004754340742876343682840375609222450865366942986401098645048593853377022649136690768012989682270278859636426097189512147835733509884957728673741470378736721900595853693879204870364083460883963309810029115018369660919596408625545751774215729674838362298752511559911328048070187642342576428655889879190401899697714634232675235548003693769892308796092493217715312073014398737698125907154915957901188819177637496154019940980165166922574303766989160661718136119241468543925593128059620763678629765702624874532614441167148356711619599912576339437712532189287701283277304118523818046311943834051628852727702296564954839813109727333515283367957277825558720409760534978103411194500996097589024438520303408697455570499552373302022459595385189797029009377895167784449121523606103082099872545248773487601322092594171154091663858877629267350131273997705819696837525490487383830970212581433801737329157868508304909073261616246306875237557935460806092045552738254417338196803760775819391033488591617090601496746733612944824187298582039001876958603146173270363412091089288349686140648688967007272866305406927691689359219133098439581095249773102568470242906781013474412032205659930989798478806125474462712142609668703004140824592594589912161915853945842813178813348617066294027852128000762790200015592534545180192491318247374011060676194031228488935710657550256159834047301562273126304595113471705188448429069566228907398045837681520832946636023138824699846437831896892295382782690521478102711710085048380488709739941409410438757328737652054985548299406213958068751082061283859198976156461336093340138906908615223103396107449726221358335801341847891232767871709300652879402097084663292237729151261627940483468771323156106120810650071520928739872196996744765891532474437428059705488491705633739820301360900321546616869735425929050405123297926828098241914507692730325709834772183502793832141346898918009771445162703046491047171303386083800686624578486880678012520848793723728108269132138144481845224881242447088927664141624583911803481304236795349635679757747002223518937188050122654558683881910708436795239867850027258918554465482521509002460625660248350379024727071895380005188859489889154107958030821978488393235164647734967940999803057381995206130298226365161491577905885962312413431713918131425313017084524303710815742172935294463400635623027689220716530748665986344938597581567105768028759173763429823148616644263911667320321959060604428914003559972526598709036233974443370859570993426608830419825070159714552155123155190332409931131698035460650785224057022782853933341959784232015170997778715255272661566358677025378195517528497358920162162843214449108686617050739762140836542259438609027913181470057313373568468841349399760492923612666892229864079254628484153378538856474924391720167601271525903523994851016584462845373806845212881136435548332353835175751907331985035960137693975769830175787631339485015540348649161182647037176001009628098355284459556067611711525474999875248609614790750495097459450240684817145557440710648124195869698662555833023903110432918900774590540454196542819436267367617622924405740604053512979407252739199347478240985179910401365339875682897932111994153727906095684688499240711018859210841625734704131556731240355717578988282496541762685721355216940768258345624797339220445525987834415063362387994237095705257610583557187629089947649708293709907397876017780454799903349098482660207525133020548311338799530328313409418754455552824117568021696057887383454956528606206278782906968411221675151619103699713720413999009518668906591359634050855435192374980122603834346138724027794216703992350293567994129729862275358428476288393205147183360043435832767168577680437404857868725228045728759712758163648764786601807577386319327527863791505845985297614359168797541860282578083649520585321032572070161646591991104293012191466541934097092612122502819623137280908330888174955611501846401861064457890644903291157942977100715408087314491480030531626555944420611093572571397450783539187756799102301221344814649428871376976429212370067378828769825761207630591341311627576135834803096524309967184109178461378628053442483883382848910834857122432959173436728395980105007323120326008700781937065347372957071530163628624451045883555127768511010579268515631970795328373541618139999451823016703440204016989198481147402256144425531065393708823068618821351210487288727750305513335715888696266441401596017507492441785049976840966677783104179491773423266082621313934790958028631925510117739048826587136117158179747586398606604570927846245689351743789553225958930460089148596667103839680111137262613801154286068827255726565127030756795413729935004239022076446643836260618596483268357046913063014263532235604947948705144262488437540249846504630205804326424934694039963252434274757379889783693523350934616256157835030375876463240636525609872575380130240776562274012992699665044220910281952910058734308930105561758390444188285901125011931238648179937117112335108220449215047345403357397461820627635136536720533216714283423556714436764683143915352577672887680072891770309403624661877675435433626395517893012679044523685140744051847811472229940579573689967538260650875345540515314944301025522315381219331970096887921044669405868076573844634883805363457213503559350595916968178142000937790423690233019657030210523550621715285509966737876155264628950718043524358377523307000945042461009995775569030051584402158532793890238938230681148459748450939285037760214962908174737092749061594426590861452431429805157595826866245404332563264345586667977757722401101298832838059709555843059302140935980284901745899565546322623114825123368345637696450806815009744203343078030966512380486772533735213508916099432989981960202387075435612247216387857111074035105474373553821122076445917488527649264590959956265895853813177445274098675963947608662582656915882907035922322455928804240475716771297815122399396994582427543198691196367831218833084761710162561629034664235741257469761841726015835091839250276904202734190926912639668994491521544213914636608048295772434870997478188354884531381913898582682783552134672175341943092086729252265889545313056231007389499312462127914937814582704753048818750795887713109219658061622609309783988664916237777235114671084054724111469056720324373570504827509177423276708101232616314433068009425791932486540178076805880140720948698497171855835213619227476877540030759865457304274032428281358115750159894813781765296995329329046275159512915580712237562129383616692014425830202388080353219947121168466661271899961573898793438471480237780756979304057299291856403759669368226759842641374146249233268820884359769126383548146997155372766219667801395163366756289774120582425659384923738331415224564919034831838540163146829638580275027954748611283781341373973192808059075730972139865693651658914780242447654116453524426572337830847568287943186703396536828770601902222150508411946074175642913148741859844484085978163232640728360258181885855618812470327612808856355210859283855364030361707608851049788917468936014324087660103614234227573410670892902265567255736647098575269675041537457889477776184564454980179828023084203312290709710454388783003552891643737987428355848856575072907205513825980000987194737055519500602796294163735086207926942094507036820410177342869476375715759963154283737563131036509832546832897354389232706638186127028020072263995974316339412295630082777397532042115930117806789591071305705368491196635922322075955255309386299409901455407924149059970510588571069152298241754636700195607000127236918060291656872178335820327341093454491809620994678064046686883213391878604946749505338022448136293548794547967964120167060089565008740071635582641597576258072657480818718097121820332682002779725867998231296215411292290481823599194137907886531415514209915584865192330027306814864821194218141970564095013384594233798053115270750793067180285279518362320986520479898159714549083739641844443159602198134182576734203218447841572832518948060233932311712876609576169797751134982813256747036930089849589517844720294055667472547666177189677613608488371524588130016781104259308833992329134781356052477137579110470217983957330715248569894925468377186440543482254818797699727038989127045550697498190161220857488133931978825035122765418835701915937923609039034550881498552437695067951495958436361952939047961041434349196448358024513335082277359637483253852183208108179164127117844764265298099779291298246991343411606409179829158200528875831891405424065438101664158720301432524323344018898997014262264723686395157888973206897963082929583141910213899175609079946013377516774214875863987801102651085969604421063616144124827506280232926640925180779180164384405037265559910560316029788096293324862280144871198715898354542797221585322634861461996154729912734516160178993558007750183099947049853709064984100364515605176338331940749717950696063226221504203594062660235933101317636045776387836117760574324478158275466514224031156692363562149102338091011549846686109962182685813607135730170513131648645208130144783491070650920781243843569317144007008674613109795856085512838667376820644019489519029058423177131157922299851510245251942080968031056153337422876743564182706643578149795713092882638518734410694121039287196038101732896499281680373236871561269940892438919955267348755744416291111622077312417430176836832881283610387081979271647688747212533328279300088690900343431847462567536546613338177882743989210820092382501082175908533623114890173279511764100811904869643479046958389911200972387648895652243833130531996340191279420500457117791402406738577541646718063270275994598323039125890839182315732973501706134761078727555181187631225134522533776855123074236152500551307854328635753505965016155274314410696524895879556206734528120080240100622506472440024573616452560331038343401920343606608846507330884898107367301189458550082305619642904868347682192498975344608524705326063444912846001702557928058352064533707309276632156353323780680098069170672619540319979634742767448572052499391621898617895275894700351540336425790345380531135982925872505263318589633170765454266507362352606548099598860442508820931289541130693877062307123244591791563421846668496882883374160125050313185615604288360325608900314237845573968132684665833040549885021121463345760768378064811760136483328873947638237958730953760880199012153138307933250934594611728500277963831556793993255819976075299284889691836469412237853724190436686564751143835533469247876685290146653970213578110208727009853436467864980679319510177517184964223282577252723464922421117160922487789890841192596903709406502085548010487587333161894134554733446244954485214031674333776942946990474168228732132993875204309396204379905477079484206849142306692464089381079813333009094501407802849058299198659340080255995022368490595951923917377503021296589577047608498072715877894486460513747519798249702563553591590483454701231091810200715160678574388039913568325508958728411485625526953661387149494113771554302235729697364858213610761339096130012230259451250839278357201814591513057686998839128107826192938092713528210109260353750650067069743409063901453832340960628475359863778455567454780397410771790326155457459659123475535097024314544138783135767857196403651640015740582858879566626302600928833359239127615048968658576464277354715852756214669372537813575940097798326352351888828298032925650855635958784070633280792212994549621523615493617824636998617431429572721077326300413810951630586696934533503313051824177381780943205531517254507618494439508270146596614543581957066821701127297182883788313604381239251837227300324963811564307267092591864196713810752754481231492945369021038368694218340469370991360399917546642308364206676026453003982956601147856790219768384484833750513200572850002691326834295206052636092959759574303947553179488847031185971697995728312293058818255903101217147968988895574838753207430448633020580256167270067829321856057976589613124459800943659748915252209359205074332092239152103744323479421808068301417343625299844982684680024605934532180216193420839357928141245137168988621517953512537928632057368450067949835181868261643650531935378830517077963885192948502938797298404530125925019229516420002183767089204697918442724771707854692236280647596459312740297109345571571627224614918872190067228352452635540509780851400900637637579134352761076045028491369296579045717298999232977577212704142572314636584534528190017719329825770493486560528308750634782789304181486303969629354168224947118809420965583817158509254494639548513162412446874032812489294599005605557499832691597095944304923653612568280063624602630695397405812995057220028739613388821828073418280698734259151025324101139880148808881545775069653416894831934368216466746126343976333364082087192146429282961946916435995501853683408779080264522227394118791286027689508692346309996783605764036577862040283412474347567693122090198696419889669185010356199726733033060037092047465119875765646610859071996612630741307760592456801617032473312482526119683392683924210089957853562430648284738751486021442953977203422181773999544036032422264010368760884805135512221684097375126087533309323953789104201193025730602077037764162560506629286443749466693342940349378926276604275691960771344938417720485754399528779572848444053473317717566999027995734076360343111648736687901458969017777348256808661057229986052734034313907047113072998631092247456151356322259624998449916208694140122580888142169382230223829215905670467489753572990332776470015278143015180433797282774454184705940057176299768270842091378391679816154257554467119999540987918090155087069329538797288644026650216341096961919645762389288963204469377106744792856805699939611603950691132341073416016946561604368646605031972814296057476775509797664923674825408983904941981603724443895987814114375638618098124060715222690281800150127032439680819280940369996629480275430328327313622233485639272114140169709221274725132280168755003992009469555752204795526935674322506215082393899117646252243593614218968408732561595198730324241656579196853608619146295699968030461056994579295718809872507045261675050597101837242106369153531274238388797643441008173432111172500153847985576172797692019980422801858917017106281964234939046494942141791689594914186637224601524949937628158673156678779078084751293137404342325147647675936547266468528326869187884404200531294249669914991740720918608001593335285603248112822887019061681666352184545013134574944469731376652350577658286886328180431189068717986393964481387613040279366096030831792339350039780291555838025144508707887986922022181318085488728924536258285548497308482567477951478107893941312734685420700885385934702042442142716436707063007640340716052077928387937644137021260413404185195017992122974830904215023877769787329118597289246519570551162368507015002313549346418886477587002879313368489272437969064443406276734051720866230210434166226825150271488489108137133046376803633668348304179535376396961061709527275471660257862347765817583232126342238519198481321282854874597494558171771869285470383734254647547604995341452868501605219107810954391873916867394975699649137223218427924910484675693927882514136487496431276899129712145743322732509284435236463621360394436653476083670239311389147322838380458966195427933610046604155722081829955257024647779538825875309444806883681040906741465717536535925577657483221010560408224015646216700210053430589874110091638523958854055919083328297207137020465681794395824340066151922755240930168150962721239991281461199273710875045660187121960240906429429405572636672829445735803733646574358385927421390819933325627824680163398236683708024231852911275276357281721480146062725376417674543343649382446114730646131704038630085124047896684218238994662947207659951541830571424312092710148192624155973800338586555038924518902397533435091807610377383979490765999582979057022115110647878384781109079091297563814929451116619967230939770203239566108809048135148840994611422984314383546574067320270507704322546593610360251758587046921547809098196403910440560262090601990283530270990532966101905748366922039401441706851709209829950524196328530983099602431567725126599464916376124752232789094931838585232822345297095862867360855922705003320682428502927275909944621657574693311271042967238603116398208163689900304639079292769523768147606646719748338531184182584282356347946556077616158847687411447180688053714427066287643397892060369880339698911317372711329301493826723644553998236457194527394518433107798419424073755741196712668613124559580837563080058815775645037951659131130891784623507293891347915093366185315282695617059904132102869081794930415547514568948986228836641906977200648033061863288660152876649786649001597656180076260634227793154468270791138471437986954470673737888164833447233281466228718344302386350940540417047851341495539636431758524724657722645650157840768627379049515327723056277451432208906869645946968733137515647934355897013820352413730623938645994484323188787360310219726431993044579944371782331086283398088037923796026700047504147503374220896948011470859847196317734415534601580382605457767991751099154724810193338106633586321779345121048122067814078518284617175416278291963024829291095550833416402744980583362466735781361848729420215159029237145808434591020364771746464377296712172981657756849254225558858967297173149911316097283370769961900080470112993799000292179855615123535142604809096319504379677215917163534179434392981029599402218426924810015322451279259154521908290921568423625925788417015371535989153823711586758240538882980137066775536331944517296734502177264395985392011083005207377543969458471303684262425543883150579737662819329465311184215298277324020977670048945321653814381966990193491706894654798835286109342510828790428568592827200028254336008790929165618960605173913620607789990525884020881251796479704519892309890287671908843018155867119271773845542654115374974992570207223627370625092224281960495645704669730410962071844509947429266295846110241699116727792167159088734829713325882633222784182767436553135521556723017127862768775602314591473372843210741964436074553727265977333438412971702115737045124628512773047217518244359775658809762866488873088229007576694242302501212516757355515477779426123235028468798666241679101024382315002363093735414580113544499792803436159935334991740665421794688776069369241065592867569874716516951172267136514088215150376592618795328610823025199468211598334060236572942407510901744878829207625769301627538504848860528063391447347471585299583043069210815363393255126695316342871173294976741432441713943843020246811792305706878890000099799453957814074152865877786872233836141118958784888838711198056941731750138346065969867047489525437701168813659217017485784405627451476604370202005962438682205389148195368016924164912904308970512420236001232963338190006680876963400732651373087565052458708406382071919087756191429385216442620352784764489942794574324825932886944131952936210289498963071564941414690019373232195570677216542219936463018990883336874090582863564252693653214155028171968130085618619551908511697770769127417434187254027797898349388138838263938607602831194464567433597207892622838205455769219336703972670197791520149299819560714048640144514721532457926871552910632799467293744373289028409458399577926128870588710607006791287309665979243562352178109744853232758123415897114864958198206468524989343014631078388135512846917308001969961051834112964774163535512039663728226831067801765609704338219161794459674918643572553041243472698922486044755505671892517664002285769843330532371570681188955324860370437121605574783997728415922743362912378436930622632254559430125506215334488411536210879615945691122857808987966991860158481270993645425479320917877482179307357109119389370962359319080262436589691038328147831435528712758224219381575310746121880343291474600958028654522590673955002300070357989123828444555513626310340671660129294296439252982414823730822440775727153989317398867319594674687001435532656765694908735185058995659828968177998996060250880083054608935462806873992344660714488554463202361911251158562827057657488794077390124783042755075072807671804181337916258214645181818781309280576194252820384432450599367704129689059558855199775161464523318918930793270732269820952597746828373484080859421496559698290613485537507785613085763910346390875517182814748351531603141944123589162504136134322761171321045278996888441032136800094027953614649405753551993173610495330595592534929808585684049481955500653797820446945179168612783406101996889420961828445485193946386124513150036281275576863672537932730904326241900828999984094794917477454794150755278300834245300147463162764522885973037335854879791826813477296656866301619735251419747474722719823849081823612491951561619858169322922175137975267479054355281834523758776426147896504152717281372459929223034846249185650703180931877956657138125377467613951875051084413599745383228720455410244576542306917244804732236442322488204657160292189135199784755596063629306051863550873456510928412056420088948402417357447812424454523752924263653398125349294230043384184216160185997937088725529906320583131087784523598009699843674255098388574147606819078651991869288600453828489792163586554745925538381140189388968087220309642122650053500959521435559384333488417289993465582486975545645144741845464139912910232537706594279524507426731157289393374499636830517807534208154932938253948899471652121163252603528984444310426612120301584894377543171171223641598752643472503868617659020599260479053841559613500857559879627543679590214623493263014921906060325894764043003242884099593838856009206588535822205366849489236622240553020567786253299457161013537964441217136215071219672706279555190773647539458418385522028826089605044326120497505337255829035420252330595637944845986354022246549649261182583493867643924324342378977221598273169334574287417782237028420710515972930424679345209216879052072012780276086301872427505509719754509827687981046464074168759854905413005889520935245503186129961699728293939959155925502669671193406215804167478752168431571326572704674951497935126274088587551726425564611211883829150111880176040667334799719629704452040714305286969214457593127161302397247284839005573820722250751329494588748016128071690955024542304283102042991688581561469573305642366561126850955829855468462938010958216213151780308915383657509033432748864416714269935058512074590125540403172458416610348749763866098514049909710388405952244263328909488504660489327533436426123767440280243036753049985648736186590811073546385934765896109289010953728947508548848395186216899667661964211975024429959959465324198682429880935380051348433367634722640084449007400928685677122598501404147527571022826317229167438381413396260954674674821440337843027182364357056524057514386190202233957285907145332315425280582130394874846510737178798677045100569585675362548920955059725393209354132473506815913448702301809307893093908232917926429876861664738433954487572714316739532792539942732825881580051354962937551461791009771048760759227661231200549306784403200636286854726710404996005561240819584033111570000845618140898941920081439848123136927005355689938090531977363194590955470709351048141053463238581331670477786780331551900809063422101890741511956441584553816765367111705099032648881122708781962739241594584489274580441295867415728281357902178609415569878693590714736051454265938877651254532207959215354897874129434169778958443006537270677008802449421473471394599881763642227914748309250742037404706180758770875269585214855040692832658346232911554342593272712087893559591073872192778478046313601888390049141810714523188291416427569579531353212564005299605485905245541189522223417234847581272927797366521975693660887496987388696358365654063236168320632020200327479683975126470715324730919564278370874059514295299129428693882624610138166939012078724182422777087504301474131415433823602444971604709746950783809901067264432352756529610456980075717285348352779760081538296073991065282927120357439140189074005621081060705778472082120339684831281841949032639114538175011231605865882825639108112534556692711573487861044511830700326045598511707061588381458093100776098026129504690129413188576147515190755617181770655997916338982447707485978172228012687647239844758870072567321338006324833880617805504405320501764520492026779979883067360538400679656718677069047512743697456517130509343601271405883042418376408114358699274295935196134964857699657837845231516761144560752887965300315996866256428755223703675027753578974347219103352141903346232646191567027479452932780965884360539133335921639995439811858597359703388079547583749524367991759844363029891890893406365099907522749248346121267356377847594671307310600478213434447438919533495541159053187155464705942611995750065192325939545968330101784808107292975523752312540850141208953781920400320864969916086599723779308552412663729916825707769245917653048828494410061943810712071510014128432104293729881233775155582488883422633411858319788500742460495868845747543815845484378936514707086349454259814591668333908380598191384836226382168132603919109492114018273633138008712204648185158774450385688391360756765019190005816411582551922356390484042367728281762449228308244737992371132076008443544970157046271785107761932693899772696709840007981741931932044738206652458987198642031052085039912032719716974529440165879230137955448659859221317787944101613481986199121976691670529159537236930202997056808287300957180871740289677872173686778375502588957259334916842484464182990930755383761468771840506761159688868114688243919859352736306311214634217100497248489997377173550664869682161733207939480051576318510630038652550557920473902806930518925623882639325489142947246941865838183525634834218196906087880348920309274490985812550108425869878714690197528446457922578642128984130145102137141711214759282939358746219637807511124218000577026919435161449128333211828607329077889036475712614982720240795753399768975584279758683523429804971480797579574232339574665406636684544457008031035694041238825243488358054751423472812588230222879869198155433028242717086918287492566958478909119783492655580657448009504573996091591794060343519089206804215032902826837221134162326305891589647775641423298454212215920260086680918304478660878548935401445887245735260826621315709276110119429994270692800663617427935321957095155414666888641976692081573252961292670159963882085980467498145157851747027122745588224971622859461301775252339077207474010170643713544859939727395681030385662240735207388887113506613736920747434854155052245267366295380382301027135883020867838087491858058129315733238537483072524884231049380002177059111799288156260596154386436614432042277760301881964914432730824841735325056673498846751353244134259115191087612455394124920004536957607215983747895425057402523800925177665129438499522477852064423957824575633390965349193773792317567715535599617705498219823965426905464716808412467871853796662624487311840278327407593481616265755088020950909682698551900724239174666438217358091209816778649279481802425031304181537040982416844897837271781411679029196650885450705566478925115551479286135444163323479406940960309962795340831326004023284735873382458296793181440876691044335037187633402092366892496938741388882514385901671379900657932728203050843113679724463469366174853127710747895455822680711225635624561928522445340590111826777375998999557761818377552488511768452614184772558692483266057888239948703904473844999661947462764371820063187339309817140366199419549795555689589033369513024875993846295371423547200815603766858824986856672018425365595618088155211591508214586421784574343751545288531359967420187004849549427470596176925495418994224184313839003617263868704979283919253224370537244477518154939457487262196161403843782919929199446990657358630749456195227082623397472460520574255172307497811617872064646454338718540143087398325218805792016665139713535049829832463112308697349367824507912320609315322036095097527643124394762966445715169410060699359774035808795486995405740152060762271790359606242496437361567357691605486450793964797575291647963816720270143705758842692569403407174684146956427560259426386492867087582160470092043602519815427766719230682624143717993704482747858788350891445180441716317867206572312586606607177666238384866951183687552531626266734795320620870506824530211905626204999840002620642595676900041507909301994240076352446460510767815238002104131340573739475470042604713342043148212571547848088715603568331578147063559481948735305093793867837058293345200900758789094813002991150967197290737088527339679880889564172869900719246984859885507743851386759702135053481384806108489861931552163850809953644949542348252384990284023813783424744031056991874813041422019784096807843482689753972511716371234778314371134106485881134844549345254599390202050227080227079501910276644617973668215495951136724664990215758298284441968805670769799593876660780374284347537078902174900565451326259145383672593408514858846154353402898967664759598522171567261391631131079043873217854134178492074370226312653361630551504233500750359364798940444594818114451448505580093790127406756091317373949541456387061906603267789003364572643500433880694486377005061151137055048659820674232906762284934459051748563668265973525476546121495730167427930784677546284675499687480917992802640359263458342866993598956093922332411018893003405644109770958408999222636987943639912471549546530570342213742087824208583434678755753062071231866148933232819911018040804146021530090731366447709127952614408114771425332121415419335294937878085815935862939492065300304647150785174805859287624412195668384627837745287886081471239263696995005475163790133212631178646563558459484440302110036932340340478835217814489301059447604042443064092474321446198456201656671518018653289795091549236301829020790750003364053481104395420369653399746475771477400936290469134348461940392215823181632561357398100960383963162084067962399670874820072669949191322763436463526092004566382031237483324133850946581992882124076382931005603331446557152936296232138064787588706710204849608719029879703868029096607357006406971583462165035136899234359804861135392453336157217556062153553523988743294247446026147155640574889670980205864409858751323187059731008724747900881949693660654687418716734557464642289205524278006457949111495689767171306637567986269625009630462301239624566914749801808447901008407834164341255778654838829514110024461026779387635758352099091714726230354802090408400155836070454717556607918829258753770483825869100057744935689530306542685201285493132152439991984832583881894888788627147355687217797829577761248652458956519890146468808982916114295528493102272659125273979952173026944994809809267352760911390869120304619749320569217394652429980409963002146488989002510720202423224671725243557602843578996976341030977439074056383162334261182663912584683497407423549764769076967597335423105828005200092183310209609284336527399299377207539562411872481683533226957691418143353679598104609607378078499298512790711242055415550312463765067244489364001892355023526847428039884707447783726095995431668760396256230047222880823199580683680084041405596795483697536733591748128372708540542039145326036341085652899172554663355162530479259569294956580493663231406910946034018032204323634488328833777942611413345232722679809354356352609684950033535691528748857922777109197469819167636013356198493001665253691197227937079563130084650979979869624492049479727035535611825122501927138662476189108418919960476251143063574224405868938193685140795320689396366644499469322288648348585474113106253963278148827886110084678972792267831017173722681614690443421111757484466744753505121653354858169046721764284220002936459252575985721173994406220334729318099346882236673904846405364696804018073350052800604215299125416164285676562627453425822818711464620030427013421327740291441359341633157332856974519511983957028239684876252410355873006742344912682450624652419130018452089706899813676125808422435634594367316391288518212454796898711867918413307719090618641982503850114275510509142565009368785806781306264619344993862964384380548818284300236019828154312057920414519956278517753807324232461331314357357848500254013489195225656210746464493716386208952336896567787672843510146846825719388072703425712026685323518615407284321376297816849062735134859720781516156665301786890098653584313898087472194903955821142127346154256442422790472354098254163584165534773244667010241896887262231137265313025195829414462063848431887887405715967593382573683743634183962197439472666601099120473619250946414684446600149598223877468090716774925813569555551045749532254988397475340889710248621995514323307517277236414473859034718760692612378669483984490497112861862421808769920058494365943519699146476238832575022083182563405062843530791652088607724953798448482816134402102978048421827655962008597101717824109000429619167017285636484872801758798601555890333582845055078363928097440712363923332932248792262323448050214646330465021826854257558146732219458106993470667659815148831614612740447932533013335987540508780957619880021828216959555964111793976736481309438161898830374627272590089256590492829480404096114574322698403712751013828727574647351291134114864511391144014913854924739026060229948879708397383341765303945708451974040485385792294645324436240055356584213435599828408223657577326424867730034172220398395035119376566711077742382573846884616811849484785944208766730993950905873216361239841996132025748015075569926363876264503040182847545291341866777672417419900425676462745296427576844625846041959508730145810527286707254594988719386025800806207435093519146780245268158885966067059138730544844826723001616095541868448077104994190171036835920149661739641441622147605647422421785409411615581960368848921179506913714817510949682305500824848681857751093668429599628842395819767167208511197277464687669567586302507968288029411903301675206601089149811032894285449182948366275289486410038347114941025311606211191306551306344900894339619999883083672260605335819562067451724148851833112236849537522604760622027249803141913866914049601260042573556104576062528369854267207328449747732780822646068178419431430081492053830684245338777410958909502770767562201877241509448251550902701728438431159963489117680030643417043436369658218558679345196737461174394321170227573867540991265546775021503471600398609429710424614413295106253442509690138407156448739681628404980468995382785145479634789044585393961445951852438284746573023588537143284677052856907298701512332046473005781985585533262260242640201118382333834449867411247285540759224291480519265152909355239889043609099380684393375487734167234002402192745659572055163697638866725310437065416284444732273713006147423451351250528402743395259040232292138022508391759770391914998149404221981388941112012644294593075040395773633804189990821100900749062312628110329150150608087820378363027692526592756972914903224058524023802231884688794462775735115460699512722588573336205785774145340911266559703665758029395167561461668861596715503034236466627007121656422723403376001444580220809590126650019800673601562148655958372154877384504874264227105799693799311590869279852365642922262277793210433053748702578683258388918996385959467605073392805003589874953781807522750123550737240656872108799046339213857829983643878571770170906954645096256456651845735129413661606210272087921490569160439730544411500109061840539529555723835665767105896015886737984644061775797009205996360420159543153599659648026459216627996795652428409478651109708956023370120872775544782017172751682558674803254074191170385266146973233089798089700113141728256225296709143740496794405862833990908008697289249575109098313474347770029202406756832573538681074357509599949325322138617509095595833138220601446706158437680789649587999459529214143757432886787365966470797234279727906266745869494727478529130506960576667671681969884634046448563122965463755285006322528844647747901675498290711904437114411064162874427863914372151633495373025099322139899672174480682256855620835558327776938058893853145699986507729086730864339141247653379198346355061159193484341904824331621364064883160328649719147282306798900251898198858683244722044384779694806020811536284823733434425966446488124186962695652101030508208491719310259242814218195339062062255198887431273947458573619023910276108039698497735668845084584596996753011611988949162821874651335820688722620772606930608139353954476621344455457111355603322680717699664196163766161855218526011516071399472286005397615773464052128679510890941326977006227650651992444566389997613255452415301181299150684204989291416029756109736880535971940294939795048693598804353314001302301128627859818506876722311996900594474209871627712768517243608775823355647938326399743833212763554949707328815910973214613294263085203719618517313121681449129415746687896016504042931324619268983271669330648192567265190787884065753084482310853559529727191732647350414786766039845265230729304257529404176937652456412856176414543385189423490963826974766859369367645049913610565888079435186949907780570584670902694187539475980912600518545107050332629827227958966980526254438234985003850497689863491635136736305439002105052873347652309240562002624941800690769791995530375410339683674317723819298645110410644611871822188319614818716325739141391798150467240754943784426354770560805747378772460603434553322544599322140192313310242639257890210838738214564933743053798982119864192146335102542616531248725484527389981921462970944292261955626654595889807271972411002090633649375454139684040306053350760879729686605664620721580645183222361761437665936683889038185434069840399013909255910853970059973090690858288699238003552816503207147967565452886849545162022160478565070891934340947791079757382506983480395370646999691010069897506202160872396265798291691773731426914620273104025429440869278901662195228058913364476949395825292846796554725173497304093555866228824002465548794224117069496199655348040330053373992185084328920014052399087631191063322117602175861665088183670304226773041553990772837394355116759149744434898133054212504365256830287742905688195869321686094799954964690503095024224245026624783529938915249486645725603109785532701802878505449899846492085818391436055876745012029813575358164200829862360572380279564707874294896751741175407721041317052803846033540127546187308076675869738955522447042283297515517840626762281661453683522675058453962790542485969306727762040474721455945888796855138658967432076278013522526547429585471716395396185399211260101355722570514093474410067993993135609676481945897156130879170985207736786618633523610112653018252260618788385163481306650022651370376828047466695790673484816220809364726267937249116246370544808457668220291196835370949114840727968387985150962638218051703581456612869928492304768482486154272450106515072304715165347247952314598249478717119096452002795455639072777524668730052138295242981954624827209724309870719485790162408303940436386369162112391264189256003286699132398461918516132614023396109052788922551357651570580892822271501123795492256822343265241928339333067154609197524757485529278389428560940338797659627015842394773650449326004615554917414320848990558184914774417620845550949993892706920645466299743631581190839165473197174981817775404607139539429108539376735083001720237204453296886291633850853520408053617900127250125547506390735332346958944303035681910047731274400066513190230209817780792128115065543539000526810853123834622126794436869019334412883390817729803482931304127316112063103067341119165859103888841707233904511689369071135437937144166871794082522220738543031680432857226308259967597987300357531449402086456649324054517126684412067234838034893526186961309400392005832135154846117461393231271881396570687197183427774381505019507621360286312416483000417867800951080522781865352012359335394039237294441877545320659852238653118341406327041600842399294452536856140122899741386599251369300115262477760968771861857695889389526212408805535432436448067311817190333501398630377652530473435750608035949146893577818120079563207141491683665042082133378299593294200877753140134867733305337230387896115193081883742726135925386911820966706603947699811180380116575706385114009240948687136220135324944726580791953649643660355388888661109167202977909551941019168643838163871075978281428361894108817817818360124737377195997893891876386288612621635242182335033870845919628765237925331760188793248960469887667158446224411555696492510234787179650792155370248299806689221368108435043501765005688513352409628830981616450053513921455101772150441114820922095143199566567558385761444049152397130119499651175064365832641691219087815150819370317854818909179808558051717679151165015595521914948293617691348645645907580565574834985180171118015733259687759376014799286299460694342443904499960584753171183128146630006424403151065652872774982456738394535112951937553745312915693279974403470217908050256963335772484544568622363492789278624693949135545595934134138614828186203690748620313454926797753950314601231420800011436539937438426727998025842760779386124860122163323716343527060743792880970868363161911214812748385754516737527441844245033751395397527947878269696690474039924705372128591555309241978129784071954379031775499060906180250173627779398148986811556160191111219497494059097214999490946474204678395760078152035650503375369985692506919335856140412827505496911652018774753921888647907754255590050679286189458405990008319380682653566860764891781527288219942381873889316768590430489271802583604037066885384389962874487742015112128362193367983238785294641164698997445565081459205491318295078719491532450375962622718392258578919148637464847196959696219842024599118130406315827435748780204957498732341023353812496850189178756737385534776570451485020385684930403747824252410089948039297472933668437011919417739868537000433276019002685083426149351700524403144280844899650596765383098142633144671247637888096835648987938025663527334971600865250231252463005196115546021809243036446587242366377416039456217945460798398966529774775974615271886481319463797018291796731575171734834756222347202479318667539901231456766167251796606256180356371367684302419468802382958991892468483745983313820508366527475376466890861550671907318243197903201086697347185695289698505512678014271318634465848132524383654245298828903922121808975125182850645976984041768869418852057041084299058309157190098036163737433059292462819385758247118529742493515368277556887665339461954477207731949593949596778421182456211248133878788478765719317564692491609517443441018917778257042996411387653481086760039756017631734452850651823589839760318296538389119247654308743044711173177747854000901013857267708352907497106872814848345899497219767004215204653500398235020997849810616870891884927538353616844657870274483806058215687287584131438042094117099186410333677176765742508214130739131638166396708896381559347504633301151360799401307390834217575774507592574271970047995295547267544331693109972082472904018075693179391466930594313397373212553948833906983872770950634429042610597513315693197307062839056162517697906374484426045077360614931004005220007904697994497606594920758128993415128564468833390182347221885754195011987119732874053903891022800494799952765234398659570771348931073365311651094456710685542696715548484787526392747723160759727937803834433541160633279475378447166920578185543854682344810644450758312949875584634350624208113875592623770144062257739836459702663696382138949217031169216556345224317324631850623221809074872188660915909172197416166619954040029819530989443810742990283286030624369153769007855313414402780602661061952381119677389902725628679514261789392816519760596525967221465372714463944958968913467147087088388847595106237238013431827498275917027607453260880430336351095283137651702967670159319505978115004869927640954483033689606695788846472635328380436418869896712036294002577078099355346090134253858374260105095268649373276709391054745114343692863851832981693369088251809577914571348672436944829769914389429611908283712464241679053011091943005048371634879521937280737713048968276709122435267756308198353424946748468304544422561975208836151801248363474587579264130281960208382676517903897308209844945073272199251029000658303838719959357944404719688822717089417516086027522766225786515321145727478868383356607086592536983192289404299054922853730323495372253214175131010530587563907865439377668397666041369643537589473793247284695555791120504868224484602134824507674305967521002547382434960831075161597029087245930388763063084204421076766873337510847062912618371110079905946800186632832680702150314164437886753917448770241564896397917880643139843539947869753894218728586029275643371881599415335594152926603932885899606118429219473207341334430582882900855440203478346054995975222348793241027599672179490006922853479815869882704567485820476880620321482363935989436481606216441642734912523388539699365278374140795805026901278437756794917499834471585957145040643911513460437134305232167610022541187980472133563703476256119539171369780293366231429192242935446264902575047044734063139760550524399764303079913804885604545257464920041019709036204639219397168663273525424410827734513303069116981745924280761173565167256624092564226510415765286062793716751124219587193173350310050200316138596265336428235011084828975017437822103082153307120770715727882532101062853539696212561496054896870211384338955501436298132831288287448652882216837064279677178789074705950908558724749785688835018926245283740646698335514369956911681679329730094154488141768440576626614160343642584768806882870261886662728513402144961609294299317024183221498851426853657251524997429643286800452777148110958939457134568349629811746017714411440857040944198553315787942018223993827531679108169040473247465062508897576911217034688649137310333299663827846231202272870666477143805096464847136012255012659342926427499455758975883864740623817398754492260612699200454168604617920610462948578179750637344201059100300077755656247769261606848384629705968277739757435070527086151006177705302212739180958761683542362392790568679703247735423430175192193335368128032925791233655093969732351589301208786431447494167020912048816008919867555115480445326450994723499774037098834736671585705137457700020797066083754353566676599277980315392879279380058855658668387141965290976215881509845145746892922256886341195029994943454238521995194976856630117849365336258137350834696804997869115462448218617683505531129482268211542001304637695730883835348159323602606201371263773792237754725260892787732813023484350081658486704485859187992013823916888098621498634347389055108485766230153376285144418591849693984586910948386987096686410413339286100127281809141625900865055607039098122396841691571269618831078854739560898028811934855904033575442757778685808497816982863897708528493555724751356719877472359966489939290848237405510213644078260203717711846840337627954037439694906334364465420362155876458703326495777405776100929416283528633066903020383800592471251858407352347636494735136631250015428510427738548900992701265854487321437600945242473226424682410965473659908065734100940991802532110517704811247302919681204653705843454944599429909423421840301831982119583056234060928854668350113851647979724008607812505653459327913281885348181884839550928818668880389584560467766529812390534477451428835638350598931498002514013847509696847341316463962222137508261576218493586843947009455707110618445829528299198850801381999805825908383053193680498369340501747836379477163335155705366986550149166585151109612063176648053558619652011578064896022262342588849965012167047542952500116701595707423059467427786283337293577272997191704461863882602819507864167244735269725933848825358307688652433482539816338248051560882828880622662467789850478380085778678389563193056565183287800292018688977276388518382077852804822770963386058173090455715299860652351961290068632632100001835104704846788096439764962975771281064476060741091879768902920927625413913485329369544496998654044886334764143350591082486880363555061612777231534283083960053014957195451139459334385901975005740522655832956434532852689581199012794267657084107326777447333134796196786387287372628266941391021149230863771957971233668630785327851553672734460973850778874400375100495360581907763664154728639181060288233165471127053307322489519207594054585882451996839321564431755743909961722065185397348536078669307880189422058066899345778208765545808256255603386772031951242673924563779046698704673629454188626400355711624401773973911482539465448330127110691819628584325491125653104395550334187785890834765219272460989106514773117000920272030664061860608886153088195981232282728797846367715776699675460519398547106211754691957879019543750087133883540748556060022070400222373647073649153774690407212572686036708967169729800541288128597235262565376652610874403996094876196057842169398388585692814970586097973902631348113111257611100774427839164392773169205926842622843891812744542561592395764773067353264009166449102395302821700710845463796951905200229230154950515549989174804842660767273424903922094415903522363170068146476281174829361634843281836307316147158569251492010026292090186495710704309966979947848962790658764952627900981296532607746410148213762553462675234943643024118483457616059666035790297491307411065052585830989673365447604900473484815766779673509264004057872485218763912437049622085685863390735629074911496786157580545567327334169962839773070064165279480177309485159433554132039733209362215201717355636944495028396532575374795521657371405517419463533349861026234158358888369677423687987515431748645519403688888941743317491484220265715027498477453110994535430679388255452151350083773228332318584544751394073553563781158238798977430532018556315101340422306683344431470354761895149008373400970591143759657271557527749161576248941503863476973477162324834933929264187219078834389211780969520347544777658050679562208654748823280506810731424758746566600337358414302909360090416215341074258338426714089315476572177746147082094069352060165384301520667224055362828879345433300207044898930592276077383857331404241543581353236338696610492340880262968814138409244323880615784620766590601986637464818887482580975103364835154443545607625732106162075426026277684700242692353584009456671480685420360385606560594274367918050733513935704385921501110258381186820554706591208365130035815531710479200320256677023855248763453102093890887825526537731917473337744880728529718244930342424188169558205992405844962126989511742618207669052190193220437345373101568592232672363638675252577797293094780270308931920214194746453373658803005131371300243018285141484273166611355710324405805773243212295572448555271732584294410692167513003371101381156102842952316174877087480529962189091208254738182127892805298602477503990238291729637835839537991690929685709682544657583808718770472976724640551327513423237715691505872767827737186039104390344422761608550089874787515769370359863374195988509306447329697661492935684445117852069352416215314536790126963983335904252404044974100581810373886038343137790067410163411142403729693012819709802245179514516258597258211499971396717180796202719778744652965246829589017888667443597885003556383753171209963438067018663027575690464167603248422672897913269897087919009366174582867105696950234498374863936289888643090918771083202561051792098745477279106444376001894411882394163037001641389252223024403819378986232672796183387382997609959193656336677747262978605640452864943283122076377435550922970294535566200702488900031430517253273956516519252018824655062223502847036001683861780091128330009660803559925206572982644597929050535861983677616335281710290876199585388430182052236443254441512060154088566303745613193005725649834223680348779955062367414180716157854807055224787153953014852706597169161444049882139105490619212515130879630560219014100067755050920585551417752261513050795905254792983735010846401020645159065099212177491352417117734370429921325855696127577912328751990931391524267585106394530846114003856437940129799141961205082784250501455262114088676677695975323885288476777536331681120675596134098873940152022630691460374922365248812326482484566991187626302631968281315748369658293885799342036372801412311528270552128035266078697887288907629196623170642925145985789321889651640288891842197216260165603733113205490872713181561634492206045080291457096834002536338138035846473538109587992914133339524147205061581525894995236316213591698503455435238296040671119850328622178807779962508087991962664253432447975125185372534344506996595370343610903985950030888388832228418603939976328121530592965073073363115232115916493174953726513760013640321694787257696567799966066669652033754813797036039624231067497466660648743338960507547942946627768335589681627874998920332251057358413631708145802228887159032016354049759621254619534581622061990778444554529111469049214633324918242224391604173907651506570340779047183482143422657888971707540765427445286069815152552091382850738092037051805877430755847299234409592627404294454715144345538229465137604755740321152160720627485615502383011837481239615084415830139257757671651022445958709326640274256335725239745269312784259022484017219607532994219875663779596536305628396721617318956765773700485881110372401038143159480098058156062393599851944217627484364684464601862229460088663299871548434265401905026566892000817338844471004304287285308112704096674005779384149191308716850644387174794544752916414850924124071648831905728475853200670387204699587146050205409571550384838806607544340487710528483862511474271424277074362574229921090271854557277513799995426776918797505081977041632773281416050789501247720383572541701957988535176215434207852694766184032691176016846653097770012741587546816132172072361096388891009606624508625929283055081619442841113330933965643519138584664628090044798507203198744063644595770834261103323341434818491457928417166002692773758942953136256590302143709593689752839119612099452351016248598981664606234684369477922816667295302135578016054793492664490985369144188342807462337834236098951374281042474626735940716906051182711456550509553663160118951444698494567886561047630383586605467315093900183877404109723976186114772805387661583909176746893318867076510594732877360538524686008614700969645083328331972650600758702763948033058905147175054331838915764976690012880823655405587911752241768490686525044721473044960733809325931802661899363733960787813229678416041112954328591119865023052361583079372779431582789388325721929954458349693821717496697555330582045979160839252724318578849314585076622866726833977373790766324327099817354897133772748133200953993060607810284791226284788186351284383345081326909732133676552191684625155229118230709875501819346982494617810347982274737201862809434556861173772923622567440060829887742494570318426716258609640488234335449259189531392440229845309674473168591793642185528394462340923677514211889872698937749786090933203953163772603117160949176185552635412939759998402053573337364039165660395506879948895369456747802764716550515030600695228240543063501808945813981126493597039512018738553396069595122855205818788612762500074730155404850349057740291442789028948548022982112446330935078744177509196895327851674166607163683206117539255441850278631476699741086575175791444290167816745660639289628418212492910668139649931640766896262660485786184653531609426897514975861621225261692524413239843861539349081145566611150304612642315561388896743968632734681997161888568585780151801982632397567950857979520315417643633547756283431714988436419944628842862268675927896563201044932178064093846742998596212277922015846444402795131885371825926414151490382443177863675435630265144601391331227619164079310967099787854508767250116593151531741795021969866823919359241949668711991618946873544569828019109168179004650075798605124823320141446493926477842024409123306013828948629399451055283892574233873600975512513990817756993457992171953986707938170453408221453364920942375372620883229465283689066312640008847068974475259745019192964548194085549236295954366512056522527376041836777058722439932164326307035353731061384950532276626590616323519124044712554817651766522930113856151904719167779726181546254988526644844352894320513362573261312328316191297759099010997441445767342827931719058889061349984337164034711088100070418457980375269784733851038952684861529874002073252683955586684273810725243466938614273109455721431546918320423959481241199814099681417830361102689369749588455674664626414999364782551810324884510578078163113812839960075489050236531224523881760072395685050676232890147899355097971551106884308648598057686909421304789662058216911848798866691196826239913221520561527639668759498839966873682728534527857933505455654487295829305076750435322981018751834317894277223864084881356060738818879211613761156348318634242990244402416638941583604365625050629539453489138212179937211250696865715692974714485420664733556390818498637480450740408336482663675103553161569826323035230732525901892704608484236563443485003099909064601774096679645583731274236218295436124317118459948448909876885231622287533672862847121483020700497090132547887025174028181478566946681660609747394372014354224399583278970824453549537404519426169590736392655334272273763857968106721618939012420185859419628657634845299063084584748188533456009765412156760239036214042426995278692212461321452077372279908659757618403228844402093456863044012293716343196888569316137712304188815725064059360629609881795280003941872651944438170398372795346247234587639635975196362318088192642829747695754367933170250210715485624234585997883205151642059038160753504035013903458290749518165849407882616150140870482906389256936506481391458363422052601789368527497351694374216111116002906897726292918896978079130358260657567572424529103525639778930019276228203204727352858494361305058821103242275580691130030063135686887483912791627488940721638136251576264796443083229239810688943372729005716597886269230782557416762882668642014248690210731289933372746718947905136294950102768102783075206043402512120733969557801915601559536957344198101065683665676447176051154051228989460076357810471782875031943019599626247208921421779407185963080643053067925822847025745786044241507862181961249812485635775517171022513823393886544384634414002464371214566274865509709667614224199452764404554454033247941287178419822160188895284410260837590093577906506322851767908968875554831930036148825832750893030199343566710813140323459901081431756699428817702939435734983585713133703417767914015872974679006938476723289520550657798170037749966960788409047670341614398691495366283102072831186494692896226928421388105783785303525957022269357503225625001510294517527075154860401427546055625813400694335897859865152900231857443445946579873210975993837093297558458528998522143417955992140424056931450906521323198269063226349781439827955913495835872221233532373257549716002757464902541483615878392193584356338784099184754584628074678019868885652719596243396655428487639464867965490173086417265987851006395484049799763006196584409438128844441705371501786782478075803989494919061593885379959930129138184506305250439277236598546507450452126477454191952364238720904169577108420582040384743934086465753247440074320299591785878105108397294159355820270614294262156980626145949064274284141522699419782752552624652014425512350779222296359438824113902440941960604280838790305618294514639973082328540818067496148659433976377416840158378839988000860400627319988455093154070520884254045080686004499090954447352617973132333357251555349684776087974150775941175827406924274876039556320453220939815665078005848467926524394370050123503713253415078780632695446047601953583214386137317698212037070998764555265456102618954354518798770694314736197770089034184663278033661720229779170219298450038215735330709631014885366163659308029897652368526957235096598545836293135782686476948377536196596581060356452601381901301780211994737028598266367052740474788795865236205392276516918784629053294371732062391471423359357085732922165147773129993191600923838349394452542314776081097277352690191315112325894871909521447864313536136005732817450139577792257595641505172892897488229053813580366612680140862792126660878359460898298170388474784500232768889224484471172438648175642547930865212112643188042407584458546505999005911072861553165193045088818488917711607966489788044638713690476367044634888998653040956648079620514162447029352152602464775017248880200828722389668411399169082090038275560278226238244304467467542479087970192914514300459210878821017173875648385339253247471776051806590510107531601185096547193277198468437148373578788797807834980467575297574440292120866990974722604019609292395160358602474875321998085207197041371869121520642851385551139239887345374489703763354282841542776760698376801909600424385993992771987923271810036671563763809541737670067396987838786703557372783306580647203851959637021333566895726528981384534890753218186501374763583383090495101359444306552391073244836825287163233906057385134276284461378783256141366780873302701233528650318774488481877190338492718456593468853607665695181816454182645322584391058497733562786887801990036256427860141012829695568624260113850590872914139883739494331971305814985916777912948707112626630014871900452481274727905058460385188160793798725071357325227197063580538505813142101334057529818562143760817917405002236326083354005928230486174253486005640235776502770166242018989154873138605600164400759925923425173187817697120791351344957744477441092532748706861686365184226959654137417677220096653165475287543142101441641335595941388770762747864522820008592777309042336124838773080991588543531149779846286910227817521721642817982353734587284815893777021067353263991056992658623272799084672935143247423026427379549954393791935810679449767573934807510466572211844591743793082916102681145308015883544297511019529487290652123807772000570821341068232897122535382943770126779034752333300852193319495566278968026442975142595576447540612667305213919546483822371547059475164924143055710245043664346664825560648171523865732876194369586152613689192130141888722047638299912994139591002287600811898747797526305725733686536134921340364041901208048069667588916706702519897797387362340660538211342409605085587025132569661027868806460318388849596368859122652841487838896089406495689850653291986371519587642922335709220290092318651490284843887905459489350267397992633419432678397377780692698967874178696040857916368143390047071934575465435515940962405588177251856152394642085813180169015184858057082133845884734053889289536133230097608703533436349067574587754713100376277162989571192886254762097231282729716611664705687454292631405011993416663190982458165745557212702214736018350891560557701560532318247797447058966636548875498730823531759254203954517384073775615568832731062125298990983560022582705796303846292121253637318130099263437682169114942079548506486343195919157565362631696395395092843074157788499292822262687887499743741457406723312039727287541920540332794481658094624620611413170238677963327131596663907651952413658670998443591542291201856020097807652484719078944041926679055549352372772687291465693204437008416736734575667100295957467526788661407852386609200624794080150727651951173135318256463875078651756374089807891893351100014473000203107002135797149925279020380373572496930577079280453326356477174110513245953117887457274454097870828974423822870329749128311655930395356328337367070925231727923063720493773636858851138508639063562179204390414633400567674537725615971293994341960320098329694730360013929375995524403434639415222923344807727458053978993508102622090235078042663396766979053722228406124429074464501657057670067927525042938396471561787283808114266881627206729333868914405095684683323953243652461543518186400473314253414198995131959539869700341594513595602280207685679324989018015558049610536083865504885609449401083296618131583433244982119725953211594234574405379672599014266931682993623155127664959877466437734131413206363845797135362071258104996019475728024389585891524030604743574154940596840900736804651301436993035777686063319366091154006513522320183042703074506846907122948409484056948470013494646807775241734242770674876039915184494874184463818615644094578992743542870718208210001852784222066975173233441070104472439298061794338672985423468488701535862240079519976245088344603282727467027132814697628003390426793741021645952435440180180346209178411831499161720084668958742572279025365236454953861957050153557954605557891468281162049800244156137655368879140197692498262882172124380376251618878617101631574581132204479017423439061063230578757872454958590721416930455443679334718566785963416933739594843750354407768129369791607577564497798758697239538468379322699057765436126621180269126120080412290935184836481279048584997477061639885731065324648723378358683659585682696028907877575049617988724275880735151741881206813833170356530036728395231414716132342208761239239152719780470790808389597680082994083902079402543242225384199087752997041064591515050976790539915400307479398943294332206702823230437231589210435767059966075382614217762664843572991095285714565623393421733612620053593809327426438234910692156452521200341614223605833382126517182669346163844907923557747363740846579963157491652562166665838432273875218997474916698556615689367454671852002589507428718714765898004540522954178479293961488711202539946339420362008587387050280611311283715575873355117297018992222137675933418577158636298712289296509411133578092383948962241521786991458601083934303401644788621263151550051521318450385105379304305523427712617809902973113376491081246931042770582966252157074843119358009141054115369644244254298578376197590998278151913615128546892764569642463912381451184285574851637060977719660871869761681424248917985480144566501421940476820987675420208945190080050201783078501019750563252829047456141412466996528822769675063549599644381970028222492243718837101924259643139557161334423939963017485808124014148262157862175349223118879261471354220754194596105880016149265567568315936323256902237472067968226576580562784318500113815391721845816916955420936390281761231382370939637353645136036974549715271667912205930865110980759090617211936717386680071581177517498787403561645313644405010514193459665982125312569656364202190581691107891733934204222232796636074693681015978367242733500275937118894780606261998776718611239268527567368938936359006409833298810776121302614686353112458852425293016796462380309859299234887722340125994385515501805848175721757831536494077068268033258308600730694243816134560552408531159108026688615008772933643252724199722407126675520860324381902465575101842057152967178411454627343063334892809877243899284014030884736088144932268390745802929792288168702281175589437466643243066091404489910991791128459379047993776272737951569641186398081930870432927620536786805364047353387403436219288196319428519186838755259606543856857350612294440606804379921597453344018926805852241759284761958186593405635720547449817680610295496726265969041695848786585977510048454998466219333376347905980487646993838760624792103192440401035164486685712908011235807811740301733174906091724573040081081138026178089459144733408663081005202258375435619639466485925098152331092523060538835026181361309955145584447394826299904168227731555165854336091919733718938663968604701766221873746948414053419092585258209503132287328499618920724324360012631896517702968002042777640025178659718018062409222169020446127835363543371157910926777807032518983586240189630150513059906206677688960762166663844929497881632492286730398203128607203911860668367348252210028645139832045722231044937519655115858914463321715359302688519407278813828205929129451683560456037240529606060769335513925354546137398512621915091386233520306956420201321263153096576549481824285080236026607252193181517486620343017039986561900684647807041114309984231887302864860733167319926103323943779960035832378071983068640418354314623346859118693174419939628275935411724986142154667295754674378052380686682113236520472102233542932020892333598322464590704581629919119013282210385299843038631827583975206666004611662179714630173447064970116922464819542688675063469934273149205176380873230048362231312720925683976121382231593538190297351732018160179439778244772463147922891822731178695797358489108313520700783042823177508591835465075940431711255704643889433919955669629251960194040769410610326745223919668961326681644355588965242706299709513380241948400098232056801957226306330764128989367476949781908308835862767851619428710386097655575371795985326824683085909328548961021769806321329298013520164835140123336398065216679426534794196999061604574992516979849034631568124785585440987299423239585025314996009893077534373382547820612539953706955410193050323939594628708590898113600120819209837533640150102233673889556328634874258707684009826212433123246666216250405303417588863202892115576241164908079094196109325337464620407444040807131085584571723581676391249731116289215513635701040498555035063240877441304365783090595192336575987370918371748916865398903385730661997825757128797844820576346498833196182088302687110522805259663002926687235678925078504097403990798761208106277538060932519816156897871664819312801292587650454287360892864459062856018357683014601237880796395369642008925051620611323586262270142022135365227612725098837112688443487594556052516175008376008574189811566296530685449432695137607245154552138246296383064922682571609125815592076717990022700003490071479877875209430705282185896066687068272129081395989860581373163732179594788979173682589434204491977914538729155287923113980997893082405209785589925301811092916942612491410425816068629232166285285749978370051431306008392537087317185187937758356418726189088493523413090373101884195780224689673628704405648629613823411994347518186261388228633529426964936317866923825470635895144104985579708300364480116533272626660921454525374538099544139347036058902191560477128977099027443905474102770981136326129924458831970323057737099496964872285693640692908972614661512108407210670183470921040254205941338735802436205718432566408593726644787071300063434699751552205816180054759953791388525179953021694095126456683871942477667851060344664255697046843126114544374038406111793403157565208546184251426334873267766870738531069533204765064247996477794839667438988836857286002010999815661602874159481215970900742830801647981272692109616493997976668592853628512756745528254296857503511111132818126473090928166820470557833710722354534075298724835310614937292253503600189763721954983002265634699818334483962636588037129285388270972753526643313145492070338347916931482823392129781688948983380562876384363445286898179946755170654633675158159249130954113434596840579399326220655158818532753357564937725929011569210243844321237784672342794301456218849007196974021924474220938596789112070786563862877918674349779043811789859385827963687866911328216065197507051079127830935633755916774766039596830279083018953025375157431113891523955031282589278549560487682118410360304396842571871960489562182524438809218399589428962683960986975662670881486397559618279035450634640162291502475279738634054981161734819959663042080865520994118328945645686107604241131164849419989975665779962664078276469009987376890781849075469217090252623981231096448000047572473403490321457070503158308994273084208706537860472491846940518415929342989050620695078994665831149418177375497058110211473664146005735156834696859228012798045198241078234094454285767609942641644449810665463222842745751949586930851007972572621265818752740191494801949869784102363834723843560695269149288646697405698697998532320908733568425212830764474805052094707251655848896479710861067626452529100308362572379243193725780652613394398974235429871444093510588363109447459593915702505295662409983732218336669292446523144516826271141747034534125105869753351455670464884402624248602843228350696497996356459705527978420007370319557654987401756177881047529482371221226859612590714377574275171081644644316354653016112532259741003456814002744349258657203932251092648366401353130564326420825278231502344062377924844821125303809486455831993798794153688139292303527649201497524114675650804822233675782234391750268290356945424418522334784269436857378159687078515554930912900687525962722182582607819436102686166618605110401311958369877804835214015781151546829787264372437695385157665492516046596575085499791724214416391325726079937413400920161902951986722110942797195014472170958190872962476897090753217817284793926632618250709271720869880022934648980950360825143102488856583902376230456268930308765739961357246293219245096304225432051423382898924160919963984425918667384536494094193790148881480460979306920979871111454637050671195128954086299350660992340582445820745173479912316630009010416287534029626528127030923434137405590477690593426961858220453300615801073195061010769516980796399719652386640741286024432978476419395650890788268468424727437712834239675940867426663815326903233582739813295764383007881402127983714116656557254530051558734494609536124152683936672649519013819948278890940244300712478862953016174290620858725818305379771605799001357311990995064121237214602360586766089639645195784700011666442801131491093875683864139058480389509460166074452049190561309349256261917497401706169254102205011027679243775965484448425346793996759140036808565818825391554215428166888309783206553848014552237203420247184059554957078079448089451645497371868808511821648321894701999906015828078884695552696142330798879926119430820549921288719829838169869218914159161235501741327731398257571196624473123891358587821634825259171338201267293863474219825306760941493840820553208617378056265928574479849515688359149552965557696081614452681260984428597933777842945132844549118365549162377782172055229980240050631754455737069593489258346625973319973753704508526617649210593439890032922509207192372753897161498308007661635200899764358223980283401397629169967550268954761081672074171827249672515411463694901860834633983868319144544708119325857864431907177311936858224258439157546505294919986781418013830164999979349368413865686123691751788247000124778083650243402789947984154545193895101110036261170933986763250399558882303501936847807639831979501945988273674475898376811985210669587946540290422577517466147569065218633842297856467549595136223953669007902030154011993236096145249644410973684508907070699352621345354794910181283169412847227101091615692934174836128964698637477687409507680503380540549899080969322265973501206380074175673711094115616369062227960643791867098518035676046908960283462624436546313640669792549765043131358255618997099039895502500434213419744910958359952783737867112472980817764310960142437107875319941746862185315233898807852884359946780108623049774509174844853306503571320932938841660305114551548952775641363847723713216479699371104208712951661037465194764286850583261119806724160509599771623147519873827509936059011118071183032655439584093769285427359433182530010391688927839095668373510169909971810317157387689646545210633031005900126622905516084334610065059792500432437948171624719438753910639092247381173602032297504732616444803871415896997000753203340733695921323193601460192718642481105884140951285048967161447750138830787983663025385291484963899944668981937478627545660006912291169134643513182612139668375786536003541957385403758963092176355353334597616243075284513372771708533517461907895552092542862916398043430553194828131138575310533621147532444510502550427747240215024663099824878431739431855874998008894271654724990269625928480909806233086560223358503825916157149500858605669687965559860458160276135515534817232802818093292359607484066362170883028696547717005690829954827984628412803620322642160910402372548073826474488945511174561579242648925353517320916188803490258309213048583889557171103223731161344456510726239607309600652752838740086785510186901352620234785094412619406418265307927076062265950253221706593912873917478248965945836495066878360375013534784778779209551230190093396702203078525171607320735751858089345055948993600823457573312404599995689441336016400752211144898329118894983837500880426128827363956892928936464014563067470537059545449211747575817352799407083427989123677691013043015548727330833029174416712535509031430879684655560341939901165413765505432223947506540901023889640882653583753335850063827556847124644497722858397187322614703071125988566802955771849845511876778552448916984236260757105470594789137646003340139329353470760070740177430921715408955428885592852638430612545891089150444933048148890256912897537794298972085598034083663298755213432267800214036411808406582439801094590525165538214482783979932739670779527040935595671433912215866294557028051112850425649166786402930451727182339561225051274609579764420055557637690578888474308168736589179621090717277532342064929506461539138126704660121537523263663641357159888030702572356495921410416773453182324279946358523808216031058574875319605040275856595901586808691721347198145823194852701502174645281718770796056770779186734340847745752059935219916018255045691921862505379881224636376266476040624614493208957025428054516766286235029923839413466464613334454325436566372965634759848606878931096716068544782190112590492141027190496024398336563273172881232085580375241832391630742428941660981353107449253114148990339626916813440265806428978483890588939158752539092301739382048961528361344155793705037690044098439737661965412448866453466881715385203968903371853577251287635385929027277034320143954512466586760957286182453163050333769087439510640623356373932265260067297937404036983649527642255132421114310827114013874970513458684768062173888034596582949601452036893137111800376251540783161775345203906411717105572588589379818241826851135735851556282462548098976776830523159881301933171103898414861665967057540238236164584592101987600313659959595037270513289893298188174186064692867726589237862517598910874226241164391071897788303051188309237905106412642205437817199069437427781481789916640560749881916542790287724641243200616389799374771507778640668547448227210650577758522337236134857862342870677773751869311003930380306075104001005892671365879864799917699585872935041568439409495792497177480931816028430832644353346157736535570633142951734238492251012764586973963020451442344289882488593594950381794886639523632739806930220565200844853205362416147977054835185968197625173959841501730612625316049351449723880209066810374168298099799246860621992385959189875403680680001055592577421659590930990580160024031894641327659258871934276748285384074206059721079813505292390363268431898382175616801783463976274708632248332549934533649624719981780055437704028924496425839700292020364614491383671894631127888994999597472373360601565884702059306938316192844719747866853945711985489296077359164574329064438946937672654975895391758508130233862613327908604018724120631057185698506776476049525247687509470239897488212954589876361401434912767493362661020455726825930084463313828205542139204929739330689739680662702375656774779037065870164519975946394557346773807141085519905190189471550673262187791929988254678340127088463759872596171683326374604187075795288405927388891182275348685940637604052884206132056293950760294930545567788285676684281226359490841934668864247495776593331301042432622249062235890552865454570142849027981719596431411354942629333635344984530142909215109855269812888123171273517080072406126312339263150348194715719212156970639653977917306395191856155344801566898348448022969607572561128812894989592169588771930278549931209332409779123778498705847663773221942909261979679845925650392376278851531609315040862950858773818047680514795998059341733251695102272266189073276596083645258412193535639240761262291496932082834080332983641912490874080331982019662621862970221974746873093989811516571480743635781789077413150239916782155745172070335123036828644218347389391867481327563983627656905140038908772403170030464516373877494864760271718132984912236862481189518326150606032592462884884820308530792923876437981379073693352708364525579134535216327231583867141376209770885957387185413565505003832598269406442963227217971261260117477117358055912041411039745413837847970420807264414748753067461273151567019592883047217504430885576495064059667495719998154976027362240000128851747326355741800527154220410388152906816920464032317228999800993230986460162192123739132100708677145650213471058799934645841149671056208677764027766077084628036478825768684885568129994980796229578759913374011477917814922749638459019888490779062684043007285402608322460049261253136135096189301110138702950262138496599362655164293028855895334576229407651513427172428597671270684466284825722159955298959317781344078821548664349535104189754558295034515258070855036733896106754864477616963257218128678369841577267352779757581974700437691046533969568688155440329644140007541049488857161317760977153222678963523941402303271016862256713443381965351185528831734080353885355651808023815742458226416225360341296568727892232397167694382530640530791307370655938628731054592034964912667249679323288518098001882163450702892017823365068906934991385737894616670011305592416687410431353695664008614202055734080328457577668997360160686632174619877922884185894351710978993561602813033140740896528205384201399872578519310932155124804315807765564627782545966667178914229783995553684977806384154999721390697407047651587242385758220892455992643775676430728450487904764670063216823403002177190090967497964223700962812234904573980553016097316517022640106664913202593705239334811211045327877045097691832635286345615744882290024478390434838373230335705993033320114745345788744988580646013147151711517212115497760934023856701458215563318473085552123977808627490924974056888050089942957060270713427357690338942925701948248170447141565252250082486680245177392095454538859850485240913445159883760552725093283867087593886290207837487258885070885880523708381128656127071005272727502024393512823200780902339003832067134660093577542742518077711005978541281731458863422428513131202237785939825535931942713276438106976894826323890015373113922403745774333004481844553773177580819793800804748692238833212656541000621873169873266445028151169149040265492964353192673767372313130565100342813288377911170628112936654344147127782463252325036425775246567444602163934814371360901401638709571477460316485610606322370952763750799417012818825455965706350314648906100736263936089181717784857786882145824739989650340990904556771111499470651955575408231398719299387467768083798786437253443531654652108596910245655979446274681183196366583967395200179256793254235587507639915687989708335580123295688982104713428364830616026559354365110381757240552865013723633032789256688784485812853752861563130888679871308176605485616194252129843436388927016445413735628471626492062690769597912373876164014935444935438713392851148456964074275878303461128288570830319139186875471845984647532993946091607548977105610660641108866720983285123426123201672084275973583818188947961454180957612707532832730906243221072455703414889249096008185781321456818301009209220022610830746565171157025491700503432250690384564825446406264791196488044772709126075009276507661380755727316907018875690155223417518697121023427254885266879048372779954304185405364381863733724413951852203529777339377090533404636715335000304306897269627700828318229612371749219908267943886748681627626657494867597547141463160595025655270767452915104451117288566264367866110260151662044900337881300327041247304190541107814149787273707137303584702071940530573249974571716773830749784895448537017808920972676629757066551301952822068492784580383510624208784090078960164716337295408107910095509691155657105354013123597413292886147033583660618367390253853170778810457390397158906352252133666799674046809518738287985156001321257123381469047632075067279231830032046638564219154830472623510068232770021794524533085725534080713242950350216368824619865787873531457168079152840695163184728231400558591433130319356805522887077489435255626138912164289975091064486284823357967873768941895828894221967645485898543030357801102538152834205594874617514832669077481014689331878430263572589940556171474083597068718880488475276635355274329604590351869869465908924523041195047992834455317020797606452905731700046632729418292423381090496298704376971383743842097453520724991435096924060427635690847166699892053185257406816608341515015601503774947581711306919180243626325750736166039292534687066633742970148365311698639570483839491889988784104519544639171743489126160510732518082813962020301768973983314036337376658903993506706729377814982847575263423323004433326172734723132609536735412903302765309775110028321882522638115874479718318296379357940757501738428537863139468896287966693938586509244372355976802360985750754423023386640507305398477568456429404626288442614230644731598493159598035478050891094622883870997569378922499012763944626715579386309410115482491853582024859301735736586499186314005694864235685237325662847805523712862198573239179589327719602623649235284328717404357479163340849279130821214821610181966807482284071351033991844487811230144367032178152565909329613808410377959512662178739349675078898706125745474700693821816589228665733470324580612876450480096829525908279832274536968759257366346399427311337265365842825356309557686161258557268728553035400676931845633548409971387356630790304349503327526168830198720866800724333732632400613073681775349251096503435730154178538690846670159640649035942634684582512426628237041696463111364850937316720422590130031633094111016948471050498619986288656244876079227612143014373173254387457463961466360789033240473734306230645083930621462873099657928205504269228808339173844170832926059512596017174593236337062821511290224354727404053942708557867545320831545934328957273285486828952685185655858137402370019837882283878332016361279532113647689227461400602467596253434342904272066000292511405158618124731760753181402764516979743679794713131704097508662421345731129125907934606523142679153341242061036172321970221527161160711900937343283291174015523887997453921313958745851103363791567273925188495451438748007500383794143448342626327725149215431788818506897161582210187524238512930315984488584753130682948495627749157584502668475200001245712101206863554344356362709273298177341600196379773643523232031651045354839302189755204399366544608438405903064136172018317640287662615608602584181294796237352140779879585827428815845451654542443301085395868249983583132262281606723620952525779328969541537609873078850131317282045352507863338185909543011917884251672430471057578292796868184521366350515417342843930722486673532451560840235094548415859170094247444598703260513366187961865478225746898707735626265933991100026259668293770115927407704708351297461008058328089719557283068483193037110480983190211353650283181423017108046418034433647494551719201902875803059731009487176232871339100256459107718265564919418468212125638878050310983334990527847785353569283414657954003846874769609205610222911973614089092941500767508278044953297778950303728061795420756700769139360339874221568119937184032707728286308396805185409307658216718969927970456593676275149903888005470872936311097507342098398913278811909959215589243451471357670778200783846636253389059812168562468102736704546558931745344247905934298712042588976342255315299989666040324208055681036914843235138351221455424535799550324150398799148272803429531227386979758529373996512965641286682769496362106426673830369505142572797938312407005863438172830921744696004653053547583391157756611773998334928398198174280374053432252854420122277197536872535197448752090080011157275562706323486037002708694105386504576135200017541716558868644247246427403039296198720084341517081299202642860919565732024604136376292588827277238993050149707522297437373905057066190294976909656129995536059186492076528052525028198920697096403746383588725491289479488091863581033033696562869842421888375495109028390896482710093576833039043033652068733401602511582030912471861364441360786408991006006193416144123786261557022690928826469142538326324317425152671668984296093708071002673934244078113560931980014325145243243814066979267136766053916861306707010873756989799953271021458622969546831495844842511643959379524505166650427278964432697928163551310688525059249686622595758360169640078514405005668704950549231337575028567466230921027354403758983035278284589310725773849208441997118618137655418223725205472960937275391654662629350512780716653756099700536828094456294953355381006961073884769175483392419507383012819749415760363370875004230147420559315312992458241383426345633264655167589153126090284509492087653649621475536365171348927887601653082443068180519473122512158898269503280468384346923839490248863854728954041447344289208332076793337545855175952812617760474568448879748991351405277377344667422463886687089580983829276973887203274722718831998673111201844813537617636820048599989774690519485065739496228820486140840790949220914976973125889899562499929041628484346669670956208817798393968863694944379170677888656735880836160592867685505338035229832319076782756926328100599616174334642624459686486719434043926617622446244575652247817758124814021780546658497795261202997645290018077785243689088692865911419211539381239886507717195264634560733475497077223920680867885026309258905683616601174728954486337991444927204296731219318584417030171485038738252113040819710628795898751155981385646679079592473537440926794667638159843580031246548305846377004408295365003873185085311598943992728611622820920261657126171934396689234659671802205820375214291547353274574461138675907945966050891016697188270244337088695148444081475186457363846000768151263917069624270056093236301088105268762307599639396630388889839168945877318439175143853802721516500275189980222485335918535540787899480644172147743724988866175876661069136561983331727216717790407051108062046861661518014602766742523272221758536552401418648478164591088983802081652364220562049341224793007057003279673155806895833842443033821246398177054467952174470274631367474847536527424047501835203825362206754161848835735426220095309056278119944796500424048822329911163016738445391292634316092027203742045011277759388788967823299585583524958228427524222977953399809567013475148967145848841703276137880259880157078526242687826719456631211962159300844338249606250612017039037221752017406665157897841110023989708804167416892173433081672246786918375693082001043882256696160416562141500362281381407829461082767688104870610940574898368160650456377929824284372932077344776978553406604791140879154332033112369386513523731268641815793985734958288394511757833571503782551987009764938581768985461472812579048351787844377448420096297434871726116051783633965466547312236340119635958081992669391908532701540503270818780424437149881538383774886707992624036318635154308353728730152552499728774166330752882858128772395188046183829522655585488228619400495669261213192665148397378579055865785252548375918356197019902211222186176130094559801992737268808133087980297514764201984487146768451749681252099656669806340190487783138454979733278181918608971279789945813768013033997408374346700480704292963506901052039655733343779286464476185928329503311614680728711848244080877046735914326327722886501177851118526282646516563612268916678932317856156390645597888742575711175583442811315453200738474378052217238464078923956195059570265243996276545758786785902318885332730902028344823846145406823717700886917825480309377038349304732502256982764077137559420145114281014596405211529583542347395879313194387630959206165052787479476142577507177747220090839697716249766551535973488838933190877593852552454619964367549455654873072916940792083074896592450737354361004974284219703787020545390801401388132240552141442082405016991886118733528138556503142992381751260467825850589428535996153462050168080733080515056900498478498215083686961915865523339255384131705721667360097998937386201968387976795828549116233221043569900687713115760008906879786444467570597420486159646191714499940884643400347327180042853008463731500410789598789259214716092783623755470526904655331897253833236115110627596553932330147543355414296672454119352509763846202434016140426001132032376711189480469226838973344997416589459535802535899508856614020163925613006730347551570738164827552917045182032497576075043350317319871680651108035190288052527017146662223050538649299161307886034041589874665760699477561907052987145954841395273121518013959975670042215637583147792116816395641465202341377685682538166751878022737504982634072899373421735712015384184468516282504328013334105585701369631665753608512213271160424933939995519906898262970844901786932412708129778318261952873905535046964755663198727044551006179347532856467548733032521383313417125076418135192727130403766729934747959846159216801816904056719234183604468710375793564722793398184725328608667942606837095197386218389192289121743276470576210238010888803941699886817147487589495591372194395358797238830074793238482944756043893246600959932762705500546548294686372889860418561630372277233595233602996144935725424564430059800664293476656756991351048155656827757034697339672656993995897139934614591026386001336909129374410315039726962439562840857289164696630353681452150322710238380110075898746944811317681086858679160662321794865367362975893718088651890201199462922000019304276081862717850382802657550905699503123021758823543743814491659834325923408572222976515826814812261778383604079716290080858568739559480865913830961496685090450179636572461492227527632254094612886433017677071698974047616168886895004371271770905432788371521035995026428350349839000507763808280913422355032285859122752765516544505817415584999390848711171532972165743355825892545022701891418535625887401627466947556820210362465381922770128934631519445587307038721932305822824615907102627276535585424895449048903770398457560272381956837320054415608044818449387727009780948023725278646285438498891927174523540631252112166574007352139656786354235088554491590317819866679157574495102611800173634273610293890793477371268687266670772978896591858216233925333807694473136408787387773235000892874421145010093984217361218385586861149392560940288764211168761457103780885413284299501321503887202671442004576573169694077285361479358444390546643637190882597306370957263940690899378628587535962231945582403620468077853347917151815821811721728812812285290465723540647122582526096831993194669509743322191215385383081360206746472316996682661663907071095491253392615910224101088969995933522723670891120224030471792573694890209984483435839734096959099846852560326069157936733177213858795614166210087978243464431174998390176249658673209633948099784777244964582920617361005443454861259963219884638350546156296215296928476576436951391033744096587900588598560918084046316052702454618372690689779071918788155196196330813105126156619588310175324230071602923160467683660950451217021396337491189021332046263981969740696200335556468076562817219972001631457644455245658899578912337098774787738478681774775292379307921244877814991140560181916970116047150073199349989326311374286565894195401118842577807518530012990605022104488807173021785721209779630651632324719120553999572093939557216111434857114328368924021282137365782991970337994288663494801970343518829317363298945095314328104176877997058375638854412609641192460107025226014273089117691479145617552210111167287219007373077211557830869355534939955751602061328765729130270716979369317600984563015854206195785592182935695002456990998843999730713843173275807548583581837627114111878471087777701558513624915165897625825370570472651673751453624234813577457193453911806869078482195995501819130229527521891140059840607503159580694201103265831584807431406647610724884438479549683041876986200283701679083414635667606977557141947972573414245441706672112436422236089387814167357844219981092113453921186090385981992556826564949229625640927725008945459601144808421612388919237861241387720427015703693939062613791457724251472638807870092733893377742755377100033116730021550220652920335769235979250318204097706769938581488127782880813217228632310365936682172264945051129608568114768417748373507742694224905551210267275101944654625176398458441490056578343094056270378599678404042268033302070365701589170841301942260629670886481849153243446243116045191855744687063706393275402917601118651489770293685829378066954477543566668657576247361144633181140499370602819895464306171076760345143232905386530231603113957025805248569240867782011724872345252432082719975366387784869188120846747926084766653735030381883097213011356750869823390128610480228634178715931204186033465351873912148024041186009567671822572233688807632884588173587897321828455030987905318883524956012560189555970078864696502732542439872274665586247099729502886439965997390196666252974096883615097149406918354378758071944672905690392279549542372631068243605165959470976120339710490868894532198962748157598471738739979101022910531280322628903629196738206229059845972922428668039470695611972514882198277157643144237943458019550594896542471917535423913019266409427842527581204532284175246617766801483743145052596563584660455682973072982913405065033768350090175942037079892106235758580075596771425196715456569255132058920480412228344231672008345954740761492103953071202234707324018721569959761440093623495116802733336691352335491791062231179228559288237372666761417246702154098657219922387554580629050302203067661854431430841895497996974644615398972470658996389687914691785269483163719373879193794660662731626852579036879668717519394673118400816293992291772557742663994774563237362788968428450422926395026692558937241199449432494563988879430912210065340479323262529543709943839835396562824454786102802181099719110164970435325755750068910934362566271968998391359500256512028118219284979466443202149082918190848186313710996820737580291718637693105592758783669710332660397136660972178911002340265071242595871145011113860046503964964184698433992198613097825417966837156318205588008136441708186516228221436209447605130272500517779983356486509544394999514645218267521083353427447822000547456657846595921166080377192848244692979207271330890581568097953123404871419987707572686058191353361544482724855237153407158470416200080264890293930516857323816668186216124966491639796433136810962193543945207014605141967489002213469290263635336485449892071364861803493181453998754192403956581362627951115442414684691065517344049012786818379532896279407479661248460997732060150268382670639531063417950756213021622056533489266253939637909738296981617961509634605543848384142159830013810813337812641239526540409245092997180873726670179806785412735627513023587182948181695857510884734702532898569064851649565556490525939996773510124459027726777444052544194637146913815591555610245781790796471451192785516127509721203441344455420696307812065828910705957108943768504704104978118178137110508335804649096735200953058163956113172737603291966654784817525405979089915918777819468716904982042136008012730861860314299554710198821963096071103587209054803031401702939576826632038576020510975106593749398465433104094571337907010215724574107269357172931023602518683343069678401891068128476165692522984853202236370112263774409509959732702305719817658184679791172256566792811810811680377856189963847926190740299734460143188653445987801103658671475159705954542295967643892127199950338597803805063900086251939131297067100510417058112283603755653471641664487562684326021586846542472317551964850544776670738785386380673366781325456752055822558660923065337282670624888345123975333797502335448711733024456194793596126464567133363063971781356215145102612123025148595868542674971662629626304768777077732893205702707429581309687821963281803425466602279503831688538025612040873816224066910872501861902257488536934387866859749326132367269603239027892213691553061839656534890517978368923168977449997119029949431571168446753443737126358701765167762983022585737309450428576537903920053278910698078415585295024238833950238468356228849732920620270745902983484982216371051466526193299160049672704329333633382548348536296219899799334830329828281956428316083668758521228993922732335221097104022984922699979139351107163806353692330496830988667960782544998517468255057707517278799506592484851371946339763826597818802838904230636257898491123619532353726428952350387803515172293692582383306032480094818875031279919668272523068515023110915667116396484489085717099749374052160786913836935463941885947164166774922777842027381501724007171932189831666741381471358154884756475020347086255540072428376011179953256371215952099421560921962844761597037223524115223563572588896700920770588542777223208283124309432981526343476644141780252943738530955902088605663007218447294725060612600674110114154063910669268779234083611943545681980021349772495312407852690446054929867393150683935487835776469187688434838255428346995608975452153290073937325078774313239255672708783626295268909227191165361363525654575567534716858505518924593116394531967124350018404959562165004418541077048233745733487356586042821387640140958272098586375720297020825294334421176038261694409858562000080265023390482066794762683615714742530424408705665263443880585266853396846030764496791411081122962476341092217512129698197675357598262874076176091366262449585684168874067136826042382706993992704590207781801215443007029376304490116090016670502681444907355194766532698974617390165136356401909191572239676857914403775121878075536843831504954344939097999162003951094194123030469232585594714291988375180964748980060666619348794139808045972855932922780481352921756454591043910453079991872098627283487040470238801029629884948925814038476573437229659053430681902177006224350258602988939894660872343750635862819356083405405642965376089542646658273021339438838471444060684848733651853201490410831982081111843488312359259135004170625194474325118392626076443778822810895076874191131060156760953613609839078573152700289416495545687337434016079784177566443786345136016068359250448402316263459226357685871929666250209000328120324117391925141015868598572703803918656718855675796106240943629331752332152824471442561119786441997726544956400191735677024953191175230637559386072118935031975521485712479963978318595655017696677316276491322722642356891522275916311661639286459280374982996863011937852047334275998480099181479233660689363043533974285841347732267067916443151194838774159801942898913816393680356378541117571648126063506790810392922350454774077166957961633502704636002167100543941429053243121051191735372549828451160196495697064566788765741029934506994170346271730319806443637808980710159823312082449327371723418107453526135546728307965213680524063192506408350791507707439415187223800940746852630915973617636744375778966904006034709767304451525142542747518696179635401733867146519464452881201710222733791988327257365413826592728101086114609658101596378544865534548977252012138128882402233742296286707158451834065293040050831954513482804883701149941072095438985205727347563069784706405867077373850422338577001800223894815540305806807856040348373988134920465757239728712924010946699613473228372025900957224597837358462757414652089877451136914268818254900252434737921407280860333932667368833519767128696348979887110463003701109031201829428979534535040538802462738015915760852945468672103037018961453257829341298172606747437469080710721335655079015463005326951582258011240443783750441604246689806167461387610663162895424433533273989385420183898170467088341921533095482187522982363471770833012505412491268753443777086789098708698696750214353686311140739094913919616757188552917949260301510648002298665834589926260118894386203336316879609604217825151059918460852289783838239876205024871774249607443632886060237173441678563898071487635954820087476609107771553385361861789544262751179730178645878764903601463922817705073732041493905090183611009352829197386062160940467753745891220679722305043555783098329722785085675110137361431980734166180472894761132210819779967922279440232511234135170630805305911453980163856845645891011066683396831410344041677193657814321922850563738214256226221231816612475498436987673798061242404729962743363589786847124663410800964251083105039314284829852693220246806930140753081873153536561975557262982657200337291976848626509126276002693773118322985541914656217918342348280449599689825717210637905636915944451548191194117383371827723599939533089309926547333637554185057950148436403174843154972493498213271652527718809607481046292702990338085424982977263495082842577502742845596050403331802224759112346253043154518925265846288128295608755000936160117976959616139858293947097266397469048676432455883631486603231320531763202469227204083730715681665797701310344593674949272736051589882405496464869276917268854877531539177307327757542366971232012463811284575825358711947953925507494416181150802876385503786292969494093077455676798387099551557406376057629103459901207293796858298164324089559993848088807033425954325132145817648295521540347138394036216656638570491249918048118069326575585348841266942503437465797975389895019353098769241147992549057312809358987042887411846239743000966478561486502148088326112145940194461500184408523291941187108323363023464531095719825737594440036859004778948930231268982366693888826324494577196664085655587128235713988880916664779529931821580488806801687605864692148693945030778341729685139285368969494887521647824065208532375088592782629399203066922336360703186429243086850272640850760173590158293265243738986005856111011211309719464648942504860355788258187811900682714222132520669379160360799180635432013473461960862137314484348294597869997066026955979127096455008641443008844627614233013569466802230339053478324100229673876115683437027088454227861379241859889145962608942313214012107082694105537571806377409333236634581445644514635747692102631424031768112667000299692462137492467114924445290674506011346029226375967439106792349652893409301756499390976221045974545925168171781439062643429469450549555972838552517822161509884971721738414131837379173206087471711047097300848235086163379787549465220168237458844041707605141684805481581013740024674440115266706009538189286628184740050595310161146855560389081485061857683386609516157321812767483718098691355402507921104805286741892317647240868041653388390624903926322280596709035238630895160405739272117076133938929670554108511307362079330589025660968979978726092745116239115907134218658192653831008950786051953137924036037007355770761429203817801169292861811801029534773512123241480351657148015964894517949715136376779150679837334550872622187155662956164857778034759812804876357575474228064521324744183200633043223924689704879543806452124170059849431340320194666749530581481571081109784859300443971124242953060670108730595775852337906966713823354738063122021257503479082489757521988061144335136012370257092800046578487168472126890467526911046822112061539807462470650187059229609334288132146220613788081948123960149923407460550211468351651470746871050525391072770834391687459810048648877184356335977495687852996734105824421838699871334827066707502312442269737476902060190693191824840095903451150671356637344549274249377843815753393346348115885707378912736410239458724256859085180315157835062032264044147771838246755139610926849217227388394551023132344139092413385210254505542463266532253402750324118767571815533511762441922379602092655276081110236547909303220020582880493968985262173230352079724637234700245306489740569200587168155942331374939775493933794985418940949778545788540610460751335141323655846533223094911382941614017162920017598896171386123473146502604044426816078923460664135376042253793087141354187862193112601563655613789064681462099000299434126453540820217805427771845879741538027199471411890788291483522943540488868718382121724219979322567840445706581464718573802316940657887845015508082383099070072392437756525789106625184214767884269314407284909882759306389663018132348426038746993252178196169413157104864513406434460172766535385605341192612027315777210714324075166787706142094199849266554133722390958442436853187961953113884574635403119025809321767477683235372579438107399860475351751229305080991741170201946203769619442531752548672752895287804682778346861626462999091391531452019328385821273174955996899907785696199270575383726518651407719023621032681013746800510767917248548531256243737983907407329069127938172539084564768327576481623757703815313424166238219896773910774418914574550061631368142456372239828215386046256731350916323971357083358210631170917469422505480937065372174362756164924866784669775782004805088359486160592408931613341969878740766167840144869595299899521133254668647032155365120578705805938565918826266375624553873201727618074779328228265533621981163477308247788909565064991971093285855931265137628140027400108228206622123696702449507433602935434266718619090241925200442766742847095856738807460823756577693723613674492767607132815616425087528566965827205694591011250410544489437409421078832925797398027594451100936054681580283560951405992516144654560086185765851071180369380729053828571668925140802699354512063295614647679673596397227679905911252954763786063635476742615333775836223011685642443419431057881981433680047777972966409327598107859946947601139598289123801067600794360463330365965390599989929309874067475431414544812552766580176486324007625021575972944331578630703963284162020787321410027614665526916546910616807682958978990983537081309295787935191799299553815885763463503138271734837146090607456295907858249091212459854572323613093727668988132939714072241058518446844775432795890212485485821454251851491468363258563513796755051744902194476419639150665379207388665941165799336636646690621953916612193391874549170914317530978325232349554985177985020964543862188854671495370228124306650196818543074349892941713465122594654497009647242745152158262072862893976975455691727743198043565983706097058292189964696323744441042963579788491132937971319180617844219608952677538797439452208072313425510844547944050437533551167191938631896928166864528241994520941895738416569851417219990444647898907190944956122330115741239287208927870311430631509713003139609890188031143691270686050813320241363023174527857360276152286443370001918497323554061557723108855484723369826236144274458589470681546314041251806522239424498420864150841106378176929287706444837787066278252930609896847593780289772267229775876628951807213919553932351047539301253512337638153193970365848759645323723636644012479013226581805974804856599346172696489187672826644025149146237876612870543891394566139800982782677363669800138120342724552416447491877273317712633587016791436939950548829552473294027180298199055934365635537206606254290855490111682867392116227227227122924480957338780106763089688625190882445567185663878928358643672838072059302531988608619090572992751611404990118225021186965461888845561364505058007640831419549931323279740421421104035914694466561534049939878451235869523458879506943021673672285016827560682307653699546453842755976202897395152404449061664685447152881759364088466633084941162823787959948724560619055736990157866137447305147002072010297514912024735251769268945240775618301553420556970633064686121172090916432975455963217960909297673930164951043072018579953256300205713615382426448531881364708597720676921383750551688399299786449332864873110829776049594334054355303809874215154205663851558943588452102494892188526981788169099099035033055313056229669345485336436740651437495434616661799107944325461588588276603905693349550849943611008054393521081524368578110996173440311461065530031344653136934751768546992028422386600431130048535660863692600808748895013301606794944290734244412083021465712849345506161617695050327672297167831816105794430336436834925414844886174698721240394614438353180298783355053367061952745490583656643935525116285772468545124554684159080922380266482604422281770103997075158695500104272092625035194009544602930576238593222331698464627099723680069815015826250887497126314633055566139684946391166237921772866512254568178260198620868194142186722733299248093608765008328039205945696575700033881481889263527667470429493780880225426394417437307248695597251613598548811250527586699279360253210424258680495944304775001032553662883192669617478073654419957160918424339530890761986854753806321005530578509027141980365609717490183733676393105385487915757019510073281394315363512843265871836067472711032294296162656510609024836870611266495249664217497102706207219860605504800526655704485065829651608087904719078361658005253800921392198075251966318169324238904117186681750280938667221166061269874306386601776253334603026533212208787859941581509881108879380800333587390831892118899790158421112480054798632871412464442591187188563218412570235760249659715639169704422900710454511836856434804294529419941998555549902639897436487866715637069104695783238987298802234087049360696822005069249301946694211725271238916251374488058295997902056167079663964092207119219171977606076054025515961531274140831224895707012643440396525366352669764768610719258065517529935876544017180393486933485875343002929363100197987198948423886769412066646840172585989879363042859044600240834047062959290280091037466165812800324230400254613017084420599761639348008451897124303926403517041581172054702334125015247838565943743896028227289100107442752670032205797288074763827884431645360019476862199522929350944143823863669405351742480372292962513218958086899172716204426158784871616843062575891076629941588521638202458383137821538651878771821381829818378049776260992765764241952726778888062431758445713268542062192141005329786408410130785820844047634918126847822198067538345977782944033637682580371034975179217556211761558960550115351185279570510514742093644053120970324374825373423941361641813403362689500719913224142870800451349260362771210466413057493195729239182366360120308288939373903096338951151045813323045030243071280482238463589495326863709862904816453051496557892336968775262511093562493403077770825846396458290988980656602719447378720816162814659468656302342055986760312394904526127635140437339538008662598186597352219036700021075378668710160262629097175893316923018445493767372391737554569153347239277629069206087437855875612102814789324198231809978797183269266811766817251668252173669353587513506719205027326198390160935285091127097303474715968239151742692875520100408803068190127030513605281379987413540736864920518402187001124947835187968365468294668216947437747085505282448149329841644087351211430935884718002861936386365738778606838758123162904933593642058518371056907443474389750965419914168281219623691815699996746943348058003774807740534890696441724148855088792341785001911872013285886164167635883480567109201938030403487373799508195724532099319993708198753580401603292463865451742600340535719418387832522145205016854001951346209319270294533784792763762199286123598744068437223824910638016029334674078184161066761516472196799424949601139265525274376758375989848123618762696870502525685019178359338056466364903907163001585684126777608732886457391086594773295150808555446171332557888798589516155101023352149899683191490898802852366349793027718434327394532482619253431282116336906370268897786214524903621687147272357731639922166655028194760771386388360715275377332471262282780270855080755869917952925573231074541069803753338142797702426856426409942166799302970734372353119655944181257519704435830421344610279849324487116879439047556026892971370632891121189450677521025852151721329779292463965232133846248726288718684054665873787622473128886139752134442934586217437891141604766526727502119435346330045947542219336339289332349433578053445874582043304925038580037552559255314668883778223934708497866761127746161876925338501886995859322395789841090288487205165207027048297272206456913110061854540535905751457722455934382591429193958619373362646667046852333267584916307614194746783634426460819774308673613520345934467937744882723037549659273972818085735269814670090882199922245984660070950158079689804449558715543154645523676820722156840819139790502604126961588945798881972315632229493770319017106445721900707884204678028625164443615483098336190985868261476821907839386501400097143101472067961282250082312064544489147139099743434623223103559182851064364941325814111202382617094810539281569720112960501813017194364582547571199983154332769754357180734789068042043464905537828873118726697104102628594814034490399979509102902842626702804696586628471131360487589255678608687992908889997133127911015516929310082427290845376061370428365541572179073307799421120100645117410503545090721143544630713316215252043753720105747140379188470887804335597185836158329144498971439323340617896210218302498209248395979611028349840822605328931117453973680372810730743970406018032133567068146064555905902402648790278950946429884366631500889195498532161073854077723244419763023268710569895787738931596706259417131143849906030748609642878518522443250325709171952547721395583455760645504661518132072602193039884858155373477721229661013419995314038036601618960459722921350678518829747898191201269082293819562915153191815586261881667645959592284896001363167185763281216940622945836078935776872428297432822419272860984203680755339100219416294712974987628830510260151941640172708265009195828834609333368856528167651577136541770741454015029192482584093406707092628680525882904436891661526732213283719073248548119166888734521087362009728999134259470839735735188757198665298876578982311695707558733739630599982938969567422004495729925354100257836885275285246932949717539982021773789762576951626955002802156416313067922488928507299361775798553661692218408312796252279532372840894571314454850712575359766396532330607237879417902950373386364740947793022207711497180669136903857812006297295691423651464337434694754330650936119041327245691230764873935850639666800843164266258676077501314058184547959408059173317191153432861752209308731500107192124026083627017452500753931124586129315527268473916111958638437907083817829770522887160473760245296839275659162719557668495245829180088160266977693596262816270547938937512892229978098429450618774081804137455232100630361513031288334624939144527072119530325500051724102670585559639941671693360657613896366501730963673986591955621061638369651715692073375257497880572359536162997709417028261467445077594030612397414285175913939061090806502948729774019256951226063957375526953535475871380825651887766036618664079933674071886025615120557789219539713420729935102587906011640060511807218117317805695654493866853512202763938362707134144283083346456897783671963447837188170916667697441845688319075575807762639787109277937668786937006798797280526142722409442759870104096355508093799065583550153280698850935512051094846651724395047235400413506800744091460377899105912711879273698856090326339636477347881185303245173596488307427757079007211964218472638377705580131666427846611568132985904249408996334152365712995340487688199510703962322701254605662971886959521165818498730342068867376321451434259167933578435285841768204983115105264826919032249458082563173900745268234859083341558680518397881728015903126591424246347579418623385806483882176261636240402626665442185778741700403934682209107421937553735801430318956289954659682513007330311047762813671433834214093035980170253570529420149739143696109210444977524498380758640174189897011237855770160203787982425752677913273264491338568908174356333470432738818440074711737477826258091851888980131504195285065715507470017255238984496725640009925513890734480934251130913376697688765121451550505113527353343938476910628729615681595680595640203135709264730626276996407480564685291368110373111779481520606125278460883710702535713567881425306773346220501949565988892932488029877316703467221086872488649160115338971876283024768682221958772899861256040832079898743759447732147909132753600714343519200907434625587107153844507504041734096390915190703884198241313119374376755044375876640390275258859560906457369679843355230824177825218934929714711169851981482265438930870171681926703403382999222852303955131006437081142565979035209946040998308457899880676712041616387245649998970448388059721080664895118603135175120932692474045992671447956194935502447323430083353014101522340709298920249799462851204587490690506250249958717396990706630078510835872999283660531822054898371278365416943142957070366880913093192821947799787274924904949680553749604690240969069220334648657628003260552930034536068836295557287896135732078027496810818117761599139523957690294834165997756853843767322030329728147356185673162387536431850865978034046134657926283375211991473164327879046562130550546405540438711761329961348681077425402132915130898950849809611092721184156476284605169856188831704004682010947245307458851289037118378330268811662689657765022753450846201260061032667723841064586247380938665304060482693416052684640412571070253963545885063946065812507885805580651848405194663187231511523129689984397380397279174579891757885057712943896220184268875699104042067430417916981848690045617732056588904039390652477867662627143317648749572949003375343465743271322253173291775198585112891938333602993707579232745600365197996335766297846536469017776437718028754609487843574958940535212212304541556875930531561576006296378303453105992490180814250501817687049577047983319579954742606469622761884527511736053109668682060029302765619828302502637260405873032342102970536451588744411403280261199973978674511618933630406268533072925509744379701631692258722448292030121738320498378298501292904636885028066267220134970386396255119699696946916155898250798082265172022882510012300927514218059188259669179708401647049576286127358554467159017624368618302307236140332647627618734748919784553729706120153257046756905801323859104419796982998129365279967900074549399187927717783988509691024071320610001136206392288771108958802493083150796488001334696223902090660143776191200679971266277047308445324824957810352630760512061703127057546034288684650148997913552074154277214238897519121707128429926709274915496843186222986026433246046652991538527485763645435742061013705093095677374208162689602818090129813249745461926986939600605449437303288790489788822003849592849757429021982043993688700548904451014803723032187558679808076048855901045951211132629810975976717893957661159299373728233361343651559102268719191861359347542925122123778053428778641762202251171680469984145307319777895201859009278773629834535891391268766899655884534663652331343174145031796531642578228390870165819022197753580064547968728825139014743287966822132257685276064952353478415453688578625617739513485560022123600895187626242622743603040988732921030636604712532310888427320906205298778575518729239685305792144117481900498997806164556553772607961476702456964887591933060915669105432627680409698313266535747701988222704484837961355205918179135854398629493846006524975899581728884447703265298728965356012227859930327804332640692609851471252443203023736562881001775125432957907036746386897201501886066294254764354286206179554061682731492210158633312072940271552533074241001549217368093928587666481929246030243609725065466032034490071346576826828113426715208461637473657164664586193292952624194513399227079334529299669570821075467377967960052582909791619840546655420403253882267629298773019330062019660694056101049777635225190236900120171826036445528692558024800044903836730523023156716322115938688988613055153429218544270406366330480830443722043893828086320564181330327081478514337086311616312999750837169985699212324795526677832212803070350041370042433713451974734138854406028919023512366313625750475304610642954376699428959391975354165863665336546677074884440324687887483194975951093322726230198229716746285033908544652871760615582348940426259369349096954555208057822833364572042601302012696899747992418302041789007620710478530092412742049874496950329641700649581071510868666077640642135189995915915849469863517918140269467035037089106336684309080007731308033087610495267487256434201271441295948103717028814180400514625438766940776036808146924064671304566878245265314084843542224393930631225469159482132738271092999343731558424889806112762656287732211088783953432439688781397874423793049402845064051316334900917468653995424574833089145212069887116009304698166107802116588263659083749278350717723059935515554002219659297462521956907700434720829802889375356452663333765142270057921187016140446561276024495537561322873315535055118920284325398025028148342248650989400053002440158431682654046025929573238405865200499023988245697201971869827090805446472104310971248228101675305062314903928795500237756229779753324777082086679961011840933421092734591049736401925480515022306832990653555511028593545520267355061380575379746359873759782254813204216285302620776813932667787650654169925594978743663676779256379176341647258265775981892029273416199762128806687661936547436779945009973752115686725427997939885091235187161986109812974315204023958368470494193995977724074440888931320749747421822088556159041342981427589061905740165838416110594490451903985049572226426038109913399806629337192159285401939199871598707243654021532554500264374527467757312788875973241047393497069727190594400875076491432017008782144701427254505328851953344675067228742905520324156775944538245090471158870662329126382535510477617739183692801902890181936902777623748298190042487739587704268662577543184331554687974988436967090984230430545716121847375730473392684678216190706957644858487707037098037234230625078502726592919801811839026511548786232842770794961367022367187687274026206825925396211299095837734297107519203980272897388170384525616638390253910811073171715911761610035749633112850180502503237758196946566710763056196889391562677213748736921892457106017239529210232599544547756634911700762002896327897295396934075045204841846560730599610828886891835462468456235015596074758268235218545381537916810213424261520210648667009354426626703171548109901637204872067093969259887887581995656596073395296724525888072466989076861037853219985180230358460109902664584232082509533547707464269290092623545252769868699444775054444517823466081362989704819923213963933605960963587832889540327197355389704941672838359275988527669998971570484319285203354793067191913958544635558090601435593634178197975030717983027443878365989535957810086070850682637759050816331715492820093378900349282757954234799686994040388588331813565901293615166814425334760472292000953600575166557480122383065987634486838274088972314389059362915224958721306825095641271500310421009984204055046490018330976253732968886303623298607620696375701244457030258245839515175685443663179927122552529042793733876944132589167553001466050063274289473026225498013555789159646195194057693559914060912632423525555257737101280670712848785356531841222539699614330805860276128900098200741223575645084959003097340404202852994808522389695552013141689952312807685243266487953437406314535198001379087295501704749234955804578535547994992279388009411762542413312100573024964370508419270360470081286711921968157090900555011751081334570979307482077535230419482497433512741862532466839656767916636234566341334258148347571698880955981535490827072570964521615457059586090973379095009277828800814447254454585659757907097623679608475075915542119960033286167257045287388585858934501098948408205782302150468986116114566263381719155899177420121153889668686276756513409495331032787485234606374372296698826151278029608221198325835710007517896294604216778319734412854113692567405444775374107784844841537854400722950545841047576600206950330635831252622335690492228521956503420470480612961188544166338744845185900956062886543273602172725154622947749587569742196150420473309005536314259990007988530280600065494960684673022636457849528324591479482289391017253144006569152009696134733475567349029727321678222690960563761527450014082681845218493915419172165328286810631766772930157636826258688428099237621483340745031234559474081031503353651141178908650251396603958779075865215221721868203675100496968819892135955286739182132138534583560776550975562071509838883210010532127395348602691709557772452789683640240885142322608503257923485693307819035872099442154637917023657395718943576148370336818214678645044072752778177834528034332846695483936936266036905996288553851283726263949543977593575327327254948171109378188935135962562211047098187820631892272145791254188850065398880906922191437949385179161139074441206801099547894451396757172283992305558911714521032913689997684309217359962304160270618720762567099255765119128603099464159546007241461441679367450155387646897927791690480212003050251411832614060460268865251239529025202506297779553439739379112751075562168620566778716737959659282917557126146105333873516971883013252276072531686673377976297744327421977432203044033473528811387873195262472082061010242186703128488321398900256903663719278580165199425122315364645822489656748724278031899685134862450940895614340979499291517696510478790485617301632068931176364774265361945032269164693449472730934766526563009800383628099717659969689556373408342756054192296889440151441419669686022766908764466381701472658227739092537445923693165379355167165274566305752962604591498874665569821682514147283652483591190470521921430149353280591260837202689753721559159886538356903565018443981458484036543803898841955199715465562315131045390707245600230289608601263520309902733425896061052823982592076596061208232027552872219455465399341693281806772505373036471123934047792640039291352637980741705086140049507018555430320007417976950711328306964132835843902638448396594908436174984752448503603364575058355596835621531267143925608079350344496071270690363446447593248507687116980515086534445162676321378853543995834938183996197004419543567955575183016455880522246816972288587497882343038332662750875004569685090965889507567022782421603185430460986770734311787504367284240286907328666163324499922949451926219883440769271475714606239956729780854425216621164390755580538092595783764976474906332252658804313768515496511446273512108429384478645067887251463181902274871942942188682832890125283225056997895138145458548507623090130381270929990758427047180669619037121814130911066897557171984715470564536900938492573997687275450388229890703645398631653150685888729099268954379520595841203917017516047971247672179190512435370356197355644578674480447470556876788185093204494501128304992156416018546878331327519018800754792011028929901500847624590355670772478722941526344499834980910753032408899147036317091437709205811383032511208134804619404874379517409118237104021960603744014658616179224575457437543733260908308783850245347227256652024524934161162708964330173679322562491872730118225239530194555577565835421836799050190558137318587038235458156400984757017873912013552175523178796463523413241508611351564841524085224643871694651701456670460110604306514433145887294427862799062230372884344266590916664099260563188057675201653373239087931088305839644786814459386501666177523004917802553494591014550263503498876522183577163011209279514228251411960488178717308401065069736565039814948069981950872726876149019651293552859608285615650149351910476304190339985288831976251649445207447177174726357618972279993003561669046364436545467805932355296950649671570800468000815708904655685461591523301467197617335370997585364457180056962342412383616976240453136780090510699996608890136245328288399946667460135663064932183177889326352337577199210623374142321838409024142945149199091501848676580478551202323269429191200271430730144149255511417177910823471298122007631681073201901411914760287947364843946018209109371526019778523874303747323876569998435545385684667629220629696079058750899022112727134026152175398729187790287375786846480298396521544944452251676247272786321502614793505997631077334727712359241048894851386023697650696398347509599309024815987384289197888111753895770904553018154496870170747083398044597274702386565786910894033192032460109470622297116425093537604332338256072552044521554727528827695284052204163220927861027747032788566873916153517905532383210996049960844593850826292633720889925250723083637609790947933431244691917858442293647013434990472603741699296322246913754665827109726001610521921015750276927779897502093829601129428193272964435409871828440366273997307805632121126986194995468738278355745034029488733548211455940047922283166028784409834709276343420949336865087984413991331868321893558112563985878489436879964767515601834502065568493235642220075970278026963754478919806133204842818480698141971152245708082153040097488417841068192750589290052710630968859099953279697658387805011592378754266392925375042996676843796381994045610695761111246366339411053351696401552598611714647810742955378321005391419274650798640957566677637585513600440679489271703311712587163311620808705516304764786763087176151213223418711658316519146101718719895760899611676860334291694711884495974605962411965781367989330894960663579812476966705164961859718230175922335405539040084050621859055955317974697421012323384305749086110238774056883466670766700990121554548477575403793082768941383250457314763298124710039778168712047056821355268658177147619152555078142146156708257568219736377066746185292903520910071027082043019425104714865918184108157346131297719456710389465850985096729397473737268013990239122752785480241634550468700192866685604980294537244985882942065457655078327443968507386661461561352738394871388548832325593117180244708130836155736921409832766965555392837087982273598554999408391116544551423128679420292324264045789950584586868581718263201377251733095432011109868903219588216089950584898291648554794243685860176123244466886834963936440273784949229640688049673218393176809695616849743380904198640902024678274935470816849604743604654726768713764055741544668796175822765350064987788679094244493720444345425007521645573666485112894289092003684872280762044344628082944182245615053330704411479976285989899605162057088008900752483703406694176066257661241716018146202860039189847365344725079301761194006515512146645644773080842503401193034157654824103793162175204628184968553211174592887327420245763353733979974917522919944109446784536807888651460931808747771411897545032990390533069311985928532804675743610969422631321678251785491826777209034679189548037771847124793063717107600591635670743354216741850967279584878108689671188235577017173697261085942358591794537232601131177793305749401929254861997151629642414773914494990023202675421103596277868759646111207183619162524569336767618026833009170930828548815518488064195345414956925218106803902824459913544834826135330916980911455545350880373740820294747023383260813218243630821527948220100526416376160746665172963691587129170472107383061962041976578141746089424381372795651311644548757420993531636053699014775859834397271543760541649956449576520978498567496765601959313039845893805158230030056203466083357006909775706241687226600218914138386010212349467667025717860648943932952260764537220854766248311155274602604385667490036948569895662160199660397368918812475179522037375592313579055947073541613996288152273428960314294743704283443088394706166101930011173236178269085477799201974538878953396959792208588344576803114586340693732324386954196855011452787346213686310939316772727202960309809879235724665227133557304099151795148618823771504717853608837658937190838503042111434658603126865044507391287822419285732706208177656772751615456979464392591209182208641423106397975859952183853076854064864113784930295744090584303849311696674094018502090512351408553493602802287704360528903874070087082718594046272924115274063967365996172531457290502213088851413215788228387355123268923844312200664529643595133326377680557255330182376217979076474144672763903128547284924808391097805722092785875165553587724360530983535287737375142074415498796251307477554275108620014500131320629655449955967821715847191761522379580453229829476282483114497244720629940513482839301107934105765121303263005623457481459422009760548657254768564555379721959456938085840036311208176590904730905415336808159729913112305646387171371827113247734798576825302947187918784502119386070335444205020615302485116473855169876351800961304207012004926979355655119892253127601884967782039929150540789272872345468339920770482624871675775202849710138632447727246807418328281320801240610194783244801716362619932860125220850287452291552396163443838122217437531307414230351821115965253454382672524169051167589634305171372015917508539136591490807403276263366765803793805280614793780147981127196619234709493431092197978187449127973819138948508379422878492894475686783491823272267399191428404054913549738138271037803451670471867421907396065069698553961905573388191353725187944980731287721762317206366322839506575899378271319972785379348155920736864312372915052314160594063966418147233970374902531453425314505080968572999209084007572708015790986845501670783113359903707628486167595215355265024273350158793693634857207483674555605070968418290915225779957228611909753595988379545974463769679818853711919204169597335949019070490959999804680385139936651089524600411901829715884563146804412089888168405992190050716721916440378716308202419909763659008917660010405832845590549185762303193131786199448784666556420588445691868893875416403408593668183180641208764144422304957861452034121538518442758085460351808447498802599971349912244279170693717980276069615702077790416054910678177663894713401544638166394254126625171063243277180197088672444743328394158038024265426791506235709829324913214054062422775349515133091704294316003283192367394604094905607695576016879222384487956846845053664732571838172163857649980690585807743242812509348733453462031386357848132015835460705592547773175724525923390506714242927967983196202082378078698197745663675495873465011883743087975489212839636116184770936418676130672621364914085434194155647426537122277387363772382092074266206185509880418462372999245615154368358266551850903719061205144076719536877321975979216861297232114002809493035184706505098842352272109826755838018126834881953263300488211031159640694170586411923654213251491270833589066915107701490831966003033672125740621066918927012971247823558887024238153848572527895063815162532827987180998589882105632739129465088585254074541795994100733240067629448715183991754275366617170367508735594177148052943795021987400128703031139121455335278579171431699846362535521273925700233108321913686303804735983525567170623966250140723056796348185379741392423277210715929294453832089178364454089350213167284674725913084059952258540232268606496095546235927231215650426417003815999020829750166574522821311214070596135960678152428948187208740956969769759320310170083653681153893729000880279987118882655029582575678924728001868955045374497128694083528238830828386343535663001015654065148836386283082797791307246218458053790502406385381408363319155953442725416741819875395898779286505127063523513454772614297031565788606971508068510913836038339214931658429469513167944562811861339716066113559367159364803370164825853965671925606776080092892614586532412461528531408062790284920308841761195653498856839315724260576212540649910807801442574184808807692902695225165786298200758532331579439835898129104268569631023047061048564322678979585937562494546170594420551646763810562796995468785714431815476777436680252123701573990449642997215811409977762098982889031418956623136264117211960323097869994315640923707137843468075437858694864849338896686824785294052223766319476270005664394089211720741584066478391527047025892851147782661611548268315926440196710056743895455096076070416919640720656456002832128589086858990337105401530365293010073653200950025937678283547334636866157437882672306700973441423265929908766941822240423174317094561779780958263261055024098137855191033622806657515637984388766256396061971305816444838530773161966319717445914304741700842359880939299004926778072668956266982579913992854036613515357808584929927511158324087994063417983855621107280036828800870526720421281066853777068065081061600862333620914364316008850062114532471803689208499503509815903956539035775918872511372343390258471609207141705074102937501550983817650046030112877604578503855322679750768054565336264342430288745703988447177166517995962337836807276382972285375380002260259120811762802512547414792223502125023307860808878864066029356763513451901403417818912506276430381351418009879778659957867919961349342600632791567284085543089233255923985366162757685573244125882334532479405176025831846948328106404934983388860438122224737161050832827634039165208585591687986964945663153271709525223955126788271740963229229054188428141242494379336826077201593967089363666531461797538394540655057230095935099579151129138795999816666309450221126283496243404388842032563714413145265148785479946120619324088411652416258093289050911589244653533490000899365478998898077096271006280892258399617100027434907672155625808613229597324738154131000029204389991831323390979899472158210153871009587922494573240968267112856739137904499545569973561255434378241367181550067707995447313453458467927563664300666030798400636646499835229158153438384151087845613331092596911418106197612084361116562492365182444545856713003386450029567023677281738535103276580039323453300598874714078399922312559207191161415714558227849902913158958098133160671012696312054889343279211735826155203616615604642522090384646075345206766939446229739596678601248166605788913364454877392143915235200282195787911396471969867340504368017226725253886585546496865099070524914913563781083767199510318865844948095628664541211318148563690414222501657244396602604665730992622012768147166152217647644076614461978970795951519788267558613762088266605472942314208218136098803283232102604423106126084115643316696816554714895596274701461034584607974696899752344440434986190443445981821300500168428391942643640887971818076810436681428897449502462462097837095232091435786587317247382448750529286089553155415246734316984238315436076239894983669155323942368211165886193985547232994565773188262640456064572680610096643715331997299372704416439535489650590057774564051631729546464026745977853442229511668717600263643851424084992333494417259864290383062636907832385662947858949667283332742900170240038272771476571424744815610969062535817508254886868409948985977501918264866103429156797025467038253841527913191782176111337355662180362201846956073256886557694935242361063525840847996044289750989958367790011653428714088824685218466453993194561385227297148953800874009493092477838608365605419615075044974250124690078543501359788779754055663815487657366382668530375921361904098405217469210406708417692119667859179342390623475287366814582290077610715655480359227050832201760527743194804580661645779672132661784149587773740425741965970578918992518682201981542250396781694609600710524004408913655868233132974788408534524618207388875960840985089131721048762607286306101973406527577667860979831002684105044020723296025960807648647590291137774411835199026724865433758750904420591796519427962054283896900895792269071100960510988287441903247804884934303274191428469753101135117247472748822843162970509145564911626355496723571711898213958919100782117421261652236030760354479883510864802066105276659820627123940215135023033776795484811616501235546995036863508230949886942263383715842380987040834981503320832937440985743296552389787065983674577611109405545002003705532896756967485260571341656382133229564630750829691607008347434552989051961525437262755299929984811902777118091149486675647792699887516974497872072623379131168402532647318066031508145182801202974144899667176409170122660958111512354461148771431784186114523150993637467105249843287341181423429703991936485211509046913517079745133578184170312549904607616439881356129844877739538184490873954778479367746640984917254174078927053341053769791454989375524396655482055293818643877973246844882633114012735669492508464826108075099060607345842111058719927605773892377657020688165362641355572427801566899584708231615360213907158403286301057727721954210669354197170847025726269415628238754340664554402413436464951087458499674828325907339305680547125465332581879006877927070451540326940280069223573737927123395814344856245427813709566103851942304392321613087315062620140398450504886593494843117627284461994643584952729745044863486640086623783708337143905241789402587831050441264936409248827556861933311714906895585592824370094551321402563764079119176836209692591432153841237140941813002814381092525402160385235135479769972834800471816793771470051370723092060538684872482093084645446437981291444859887410464255968371095096903613446774113778416269268457832065946249178060459286513461279816196580953532913556948484896603426919758613253510360269725682226526014193836570089336258670729548632275068184962522261717857127019441080912227857219957314574254363486297365276982497828290160154357472354464239914214864045040509673284746877019042364270354296855330248188017404180485251101813684604571308517906755651981738428346885393370990549049708758256427938474150253186501251661106437902035988212764263796902489128146493138647019476431683294381506547721845505516806483226954075804617741587866643323466651219300941509209032021953681296569273582227370932385332995754292650421895024499749585968595610405809396174780645875693535910298413906493963771565673051559944603974346405806858076473332192894140040768808567599693551618649652249730227194771857099361386734203615133222933573508542488181635653605326302862492971195931718923373816610021900003401583731763846058870424793272455969270872060324051011691806167758376502871849799289445143035380434803333505949834585259798087967446464115917706999238402780075770884658686409020136809990427202793323622180741024586529008812035139656958958908992829171313422481025744364077460847080490438822729883085123443234512263528063076791952002167915383286571858187010359205847765471505419532101740595856843217569226398412460810604306701198507375908705107856205697214748329241510085826110690762640961397686211744697475402056053128502414276527028125203291406811686348746878787646590978089677973874092100904891149086353485875106898289856425374849445668081003620572445654512808247648855679339172139109289581764252696158050903437880559617824339991658160030136258118388968560284879404321442432298881551947385789072400943737739273441908640340681843398763909049089404881557135774341443835035001687439121054204863174420108354124944332562526915409616170169820858639450921088012899812285994234448623885749364298005202670142399715287201923685866661077449605074976516949680025640174379177787013754542111073433073387961359795752476414527297869847802168536814897666520032190051046510042383232720061141714820343036768647538365411210017176272182127562187707014609594626784804217916959379306167628043295941586369108858018242768023638104029317495052206901956248983328043960558209404311285164837412363726056485255616126648068906527364582593080054997723874018685846364868420265628463253852780435357669265535562103448638456489382604622013802079019769969678931605760352047242976847138960066075671053020505515172602069485902766346052951375738464063600117347828989725836304222380007160795573403103347550005422553520729459067941481655609834061401701594001922127364174319632650368511648376763306703529477766836640844358133960132067527976230453902782116432257475822848364957688294931268979857552754700836430887476023821115439888377194361600971780125594073760971937148637419644165877334590755999875165071460488470336163890313661778994003771760242989933332783797937772007130914615112078525460092520264141334617566334757089003730276292031506717530059507209053543411724776589123273791708565222627312419859342759067514701520648927637096894158673653003657781999740672943039056944937314038576047294035745640391725420819506023612216447060282421155504450582503243034257357170852066481681112506231702790139306415311319291619822214799624509451668619596153542721119669141281071973214654034864372937616611004289361302536272892556474755796493447783527335369865925042016062320273210306248506652272777966500841042481930501369367151575725239615633417617871356340202512723560008207259663199239561082369401780821462878999232055620780121036173303538257982091375116891096469311799654097530071976979564206556595989133148356868346863901582454445873528164813031729830693755195308577685626466748951307214342790751751587829622660193352366092489943671037153835025543098246361877528244218670871446626970804120768800749422126481778012395564233299975390806731318900436769083098765233026982090516193126346220792240911247032536151832405342523878024945534953533149019278301076586411029084485608945624346720313511689446049952693552207560559500338536493783937194437389630902171525886882761724208356023753945967645617701558306977726202328284740966631269432533453220940446874728074031819093066379660746624462072364991922733834453892908458768361494565947183906803845599998165456835878582381453291752472993556314456753842040987066208730961518711785795872653974358907569408800846239971383271230522586006076122961692887917326082491728478736322135795359959832804845654771120083383001500985095607642794852573068310579674409420605320518587719795253089225027451013692335968145279001486320822085846854799085541958959216292533824436270755612492571113321785772784139260892503993716253467173158722873934968836023174639989918299302647360480077724539465092758922804808007479084203889244327697514483327734539610727220932555176518415381376086371579960051575268521870762776652025860269481879819607334512473268944418251683401160995280351282632258472870266723120648464434306490860894336886162252289819182099054548195451159730590187299515996378817059019334503323233606017675723469371213635076756791354610923407506508095974614709299280106529253565599861535695348640474330983993232411636503604341631875859195731349502810463363813723826935946117940869712636360038985143204066491920855703775610187198960165398873654726514417120008958005222698357309508261983833927656796697717592423336537712891592901001963722387186903021790202148550457533928678326601592992786738934150101036960649233675537099538348365018964754440605881742717108937352714017675875966022279800609405344059118799352223070253346963965491921921000417358056336930740539577820411428013997911351302986286919695614973686909332928358040487142474659055663201801299229957271676002030711523660507555622023330502217245970556673950440924991641500215421299051196592935322602386533781673871520419554494178959061544966595085282392442029770884239765672329832040705587560732101194048738884051106501778599999763462724891786139780937817013910234863126077744816953231264375959884358901651193776293183295093812368825507081553585462278530116265095052459640879846196697645382275992313108273137830962178209946524047012681352708975425181159148662092353583211271770077127604932140914732041142796284557629743218468903686692609400848634433247682757908236566592949292070499900596757287673052806244941962314416813725945681791473484338735001059561541487839844957448414449788940073469961064643834892206994638873839699518740928849784787327566895674637840817537639581655843689137701131592399346092992343165866531121577896518629081361189605636551596962013205373878065232864028930408363524261853768235732228729004040640543830972338962775163111894291134123826765850939959821119572235910238157401929970539361481040307531093849331816645537284841773374319798703195307478736905321445719671651835991135140718585844915333208320110552404847061312983158210410122054332222705217298132244274539206771121851041459121018763660225501204886743126101827904431251441661969270338673893976023706276176375781216240420321234289055860937428333093233795121824412231758021295929492973596785003752850192671607706687069564352096340662297960104914883428063334892077377766696113386082513909523640673989247327336026219058295884255653895097900789135853517156660934624291263747496594419513624550901036176665658675470963026293769588096072706543226906298036617887672089038903764800311139829388050861575412369758020920476468811822606293269942539458162019620682880961952987705616791038984010003454002758335039972500951764091590137884581843413909866332579427961988748855841253919032087932434425429766909393656399711070664328769214139601967345397335446806290270331983767352944070551480768634712848068785885020181875349496670609919580153016174739247531324994999218400262108711681495907907766185833905393772090022776285863232237760665027473582507312868287653622414079832447295812956928983287182329348367094081290218290874815245814605250354960492379936375091125329205627695901906517074642508507310435941260372770708629364027639941903851517195910201214115063851325433296078432359691355265097018488867045933448452407285977148027674746635154364552437857070341057111613348704315539216875251643445854352573562090308069332654685346430466008542384093640244626273203242852856853468231006939532287054164055851754004256232069575867570457335522869339878992684009329599150036797575007955137280837321023066028149340398988057720583904938156753605172348124817572114276746774485888194126907609678918231267184905024089282035563741848815656232412353449646165079541971418012126237723416667729513492309083303068871829826633553332898708821393128090379115050438679242004068724437029669463908439358675566980626347486085882693455776731660623707308367094045233743358745774239132041132756504723527846811077557346988135541412085119038810792950911198159688657853726261964703362473485606674986395220673148178861185935502446418297396533323206625577104650612051179489675289435431143058390756845724954633039889727327248561931398636833864804049113094994432110114113811603147157716166770811416980029527753873175025824259849128915777438730565518275277845736718331453244443938510474772246978723204888319642800528540566340647844345999250221144524634183307861121205198187743449563512655632268928966498885724142638784714931459775660750223349439922851660191339796783548360909444728385327837041570539343211801667480453702516481831908849269807847941583358143665711137078110271424324067282713332753635429145856643659598377006948037173298226698537193656268031658512399038786614103502983164664946816014489983043917090473442860295517852302292791596453042347519398309449055858611543223182216756021555015886216275210252702436383973317065042168785419971284534183054569492372981363488818863736256460196453842963529817451235974067093773259380181835893675136027282518405846996055967780061729051139046856520692732285006352789518518844760533839843657895386645810550536358298619789048334812721417625157058239486679545798401828871428078311169877046707850881718360797601812538376096606810996175058725393246451848913390541598907108353718026678554217031716539562259128709881738779581456217428371427979222421864663884663666020352135979452378968080895270893968084041876269971872203405277622707569014543455746999249844601045761874181958716275380219965316972565499277776253423764357700780537908919085085971943735211040289358141826934870705908066790771634468249319247851522453154704912550186147161359356976646005100480727375119267319148040264219659960121115145256655871700075075204801356929624535481752085742996906419291787857115005286022541790814028819672964055071441802841156485529160199436208827036395211294640384752207534421320915343894724098846221235638406581365073286309412069369828133739751078190881600206181922382627034247655341475831219686691841114534534280540825279480214998251152649970307879033054162112139406045315990784623884279918284335704471022164286684515567614035889313806688149720636536708106223557240219318322043078760315061503516389795449429528781723411697315270868295866239552525590697394432550975793603084361061026669532979293487437363613842551975247484513092683260542906827021979033631998308773891566762146659496506813844778991299499634332713030643580652602420994525823692647971927722265716935734705953649727963116049359063415444841131310633225533201614684032403406601003896905436267316442874850142133374105436782467218604335347951396523516821688220065418397342646411302436892925807817816129976956396636284861660824826663015129643733674211476194480567011002832191266085819357323958126532724703140895693999966939591301902744739289242083626481711111359091992056041677559751986426962935859850928287337359161323115246499990933608995112532202345570617745459151128899578962833556042442366518402374674957691587682046466942703399921601868383603146693553153150085969529005364485747760529658692698824229812279914842518475829619617186205827849723388655139309145742431140329323455064645006213394730935810989616789952163585495228940417809878201447441817471839639392603630713601693375975346445352212470674929812667274195336723594820084845822728865648417420605870954293728922024533961989155653724864050218321311722643043716315760897039526706334738029858569997195873450026778237757180830683267174618911138025446859379281560970380184846069837604600968371719213990811197900267608567641121632388788078972196504727400667372750745799521823566441244454773814086696595399946578253210526929942628052909252531972540962279410361937723412279728417517500811109233765520855191290088698514671682573129212786607288260195849502837577082834250936564741356204899980398030331562938890475535042650287440752468118391166605655292017674741205928233312666374554690823830828294569484451901787489506851042817577300777902121942190857403489917854886354189469537298118978564361124530392903090116888573023190037011147825692306939752800856746225140110280459017757601548577343755959104649844838110060147477098278897555187074741312991503093026506821736455121838591826911270420567393700228337981828203560336619265183536186164037498664968934104502581324568111674095573699075101637782924170812049422642854958091305467197817345343874933153200447517077732363744965486655545119936642061199641384046960083981552288412805446799632194615578758742456938626109186655771741924562590260666583116094672467590896083764586730772101426920690681029318203780132404229269087505030651784521602331630541789087035640083560080069104039467626452242023094647085722851516644571728632796170396325858729070414947176730916046374712078466549382573330317464849397609732110831355376528631579821045643190887316758891069068653896432779043905534300903169328759223117719634267383551384741099270513159395055701199826365178293258756670138548097803762309364713184588087836940574923954497082949479961563848611293572785914100932428467922576490518466000005148767190887851137545503165807714325199013076966605168409602161618087961882264692227714721921866388341761935302691180524186152744599878582603154428313899766043516128512581894862900640037112873166504778582319815700243999830496412999446472132064469812274836564034135365627914801240448377925908917293077314769595826475230870041893061607302619789511954292065362554055256814217688180896468033254268934261638573685376153858763011269088845735883145645451382469948996887383964133057398024440964770339261426834162613537243641840405788504807038999424188822956279034207956586688310356870846734097088794899102969855180840716978563703085646584118725006539315282365595975626249738350650220456638887682256433125988980554867750211855957006669114806735345118603947335201005482906448161690324802210146738667435815473670812336625994782465688630970958320482256886753412104800830885155376090780865235452204329277331162178785188303701750298478556782139949159286463274584169413326355169754396699983379633781248968446396134336673747434268144156108282448157632284607007693709234219230376048093770850133601541487118173827787922665589108599498360985997559343953633920255288824309876672782768702995993421719154467288451032293121609791349518061027986861848236144486371432555893183391717959477008697925740928643935733412842469438375579016982657327695341907538335523970046303587484093380615784365720677539342945153066464813053864232614277517945835680630510728204235074344129532575844812921213378025582334438842910310912393463187497366244363692430500958306413220529160639555039940664913245438392114623383153797308897178455471245224504463524404645648292570899908340310329394080530547077018295279850162161278857165204893431345988328350803502521888153836789316249594021364034787450788490833919969815897817807801107201520494879535922582771424362553654237978577130966128758451974126222728912393193800135939941539527153883523999247072587780211171026317173512854274657845801762531522467710168145533934808339534856463478388956268255057875270254403054523518367881211285488818448849054009514673588072426424092763122726970368438526352973314766546254648698935619093596634905880505945467439112441478450225810548816037598066349769123400622408541584479245131569698063275655601631200414713562312238221159403048848939970055464292230833916120923820910619412378596094729459042931937091423251225746036111939819964703771542693930788840616432945872951147872228189604826406886674542695876590259349657985032308151540620246665139397736739346600400399911589696579042112353843967855320832997985494046173311171937321032374985096250556754539029060807165810560986355987056057543316616303456309879499916999960155988671899324045316822899107962801601442061532504784600622776771930414945257010692248795827978718259517392645640494576257275767657545631000105613741792976206106874492385355360914169335667264210872354819046707492370938376480531465081404698500689711627921948554407391653734312107142705124401522036816703455961592574419594081348805086313327499206774833109216626630915227354557242924441881580920476243641519176030085564114679798304667846555776420469101398941245821781215162052831665769321143546093888979710475808451359126310409606961277943909598926818713816090432683241479873227092270299488148052730012410407911650860130220312673574901064799218087062112846994813605072533952180943782461443803570353850076398799983549664007112499356508702459762514541440675315080936470924264674186504328634853070271557289049039395571140057813767943182032670572900225969416982345754370336255328117309876563211383364192056343932502305663763421411481498634103579334570596705522690984254847176286831649150257036512673695064631878305042888361632554429699854814605513300969102221139971285998040771196768775890011217504585596371136276655508517370048131057208633155855453119483895275522523837796103770106317302174363491458550020758295834316034324577362321766266205732993833544679629395770678975173283139894676787646026882785097326244577019544673262524578345059746650419316317216274569113380074610838526882693495644544821954523258521215439551509873135846388823677593309408019615210239985842425642446046315790697059832884874614267353554003555614897131613185444460798426248771393300807841284747142194565765018632654625659308000756541167346776142723440757264125364246164304916584875234426343660171388678218312965909265497086115319868848303241741311549590231076019077684007197484657032010713822491532100377797576989480498049861160592503729744844726061197653531708972908761070873373267398785455742538671451877915210282896151955070058922563561132020885458733651751696146926502742322810892384953479942730949106423018238008228147682809006326529459845195790744123223429015465445554483392645700133756755287109388333043970621182114044484838977089066962811543746380681055751367148769176261582277971006036458377395396652778738535833348552025297832544311915587502406340009061659145706313767176145037357929668280591920235181296819230852770739241450747437396225637927759980505981399134888949607431768489749063309290301226321414514866375903372777915348455616476581775090557416298630659832925798419644398816787827835955226941308180749650920402588543975950861321254250926856084259688209577375476631219526904401507484259191298749546623265766449956935590026854614036172337848573745982942759726308238816006139159918383860043258331557294572978960107021208724913124079325096926143653097988707582223128318891016449270716258467424788835118726730368167797950173311860236104501133026032505107792615890326811778437229425072938532429861317147971608843942615881202991508910063736713186258031034986583045495083523715815179174396031048226215021930237774781280333102668171500996981552681068823416398299419913194050976818284219766111339772587957085407624139344590060560817464303653446208835524188870484463562453884387168950591899360441466100116719375844126777711892675559145211959781375632138205081687809722964347748949284424884516561468050356382290465231135556822353093539572864019744752621611897561000218671096962382464102179088319097299348155954807793622588857922034862989288121237778262210173916959251490756102324226679391674803179643943348447258446679180247625235831973971321580821271115614921845062992611659148441817497330858545772266389616762668520755983961543067253798710561378708074617139927890938184470797756792431371082855427994673561112144200873482909377022742226589384628732056090614399354018430078474981553620598459935478589954448896028780457578756558908425630680622031555449471344186192626585631220320744734773504325698700979362149292726642794107349174147809478643942652606485321549048340335015667923373210481700379666404393848111716470089125812883176851918955786282074061363961887141743699177608627172340344750377802973122184900138156494962438105419093800323420721968068537078997596255350862975331119383449853236933418241852073187750469938086091045007560291010652336236748364477425679028165440412255995369796446968366753735969098516376668091617655236861028710403041435950279041109436453108428229972044269443358963807140141489652856001503780885303694048525966336605700504758952479354645311843662667350517860419817077566341129416210335805894549704431424271723342592554932516068555006049449645890640546162576971027739296288808172582220776694027251762430110824882434834443990852579099024500691664655199009748416649172771178522839110074302615037587042920163935336774016755306220082790306618152648586041482688231716000131471199324472606959988168344719478919907350469954504143545315597691587899627234967382575649628764468223509959071726723772431876992853968464487615899226031336274348681910319234567665771042818175440389969480129941593234581100963307705346881176457556480732631447363721863614266370482985388213645255571266931912673756856392333729174067348348133074129444943943910409843474188531940320990667488255012303513110633043487841675647138735591303120656261477983272446361482749689254966725161380719902547817811745954936504934490005380264735344483577941362996900834614493164067675616129294789956877409735139322061117285819455166933275964801402734919108229802575666614613264708473978912926227067838942976117930163109621866394993162196331351539825535767174648876180050988153256263946259537699016659537403879756285692759423115915380900505599725363084013684347971651120923306772984517275996421401082405311050273362726010485131139902554313305913557043434019144439121194454749384772144260622284543597981025198721568017245781834846824969575812545204732492466930543026235802872655296936923955955980012642337370535455085628999711260709470406878582023485727276414717563070521706249249155899542948109767138506064243359563281761344363711474126514525185801694041270607129774728533153584375657559762591758411771158339046693873933729504290291424101529853550741308026009746657395524452173281835967202514674663545799163294309814355122524478644638943633147457220451571473751127408926104172881332739769761590203515362399954739118601263545357193761738507064846223083229943644956983739704402984283071910066280328069243450688075963488024874229937466127842473772225993103157086978044498362724046886882287259786283899542176024676718651284277074635604751225336558764096259243710689483835664182164103295524879751373230728788089774664741731370083515580822029603361422836497139314902567577203329129818048358965026590629331106352144822348878792149344718398742877081845876953903978960551492976066526043496178277627791414752449959533324205778649193141604667799729241594226197409287739648018543793466856018695017548216504359028325013835362827704537665426465279932582133131229568311314896195052745195455995529689098089436867131487188290993228052822173315741364747280946603604674203476702525786259317170401481863677818135970140843677858884962811515597768288382871481352398107703078993580034711588116591377136232511182341203091652590023604087802355999146702012797568306229983074169781248781472480484713803111719502770778226822645381439778329787230063504479816361842480381141220628141297972118071736675536351614926718877161939277581777931944807549696274058465640288673712851019298166233616927624441996740117378285523947809303301692707108752276415101986550932195702411713947001492215320743370564031845742745522223656455372701128422352568777899214642057976486832513515807559210937846304289572085386630154763515431879690093466982182995706419560887060978353884994404157065914232020077462874883121295679381893770729798797681925085830550177573712579860660101812281005026598624869295255413671370273314231740618236654306500360209092351673315653666664349430104137257803122947465831066129664393012584494473318520678943971105673699305177804354468721385540288498901975796991369786679456336048944682722362441077836262678512378277926056098621346508892367744582099609356318430416183694643541862533735912382912407767464461552507077965866222044229251996798202998672204547186756625778437903521740205704282487466905722480806560883212354412879149104693076676193206573221483842082937505360342359946469692292047768033455087401077861164877875656289766238012529029313696635462470500423521811482966946628227838950450480468608948497252195646967820509729322616138598973765415154250923627364132870548883472655552835025254805719151892162317194471421248214573369170748707229774002130079415338799669464742343676874541308044998581761324739432409843715912019951663184531925214916576320149789256234058610055471823775865538793235878508411799559169719594860547303713348657223152604578378018923175630018995580419118094952953397282677407846005568920575268835397051293007272616932196628763475976092584950014058388841609472682827222562255038253783704432967516777250043763718441457674862045598924814896537214860649144213276520721693710646982968125920777263940754965740115718980958419349490928261870211381048597584841261987630439083839540502273585432741994719536918197590402981275294230604002139270916057492195167749530316924827007535342758531619332309191992421847606594892080443110803203474375052865737516424261097031963757910728389633198834234119344855108248230576693909669503528269854620017821203382702210583690644446584494726081381229639264249530101298093972404984383405878776245886809224951410056301591994898031520498792788570823383784470202744340329652742282044009369709600903029069963254745365872022877877524310394952448855681011982479336429740796644384419852567145504442770462979353328630544473014249994812046727500026616669974474853062494558637305729864077033039230636238675247332068528183422710555535821840843061793346721726881644691688373302026351077407094217860329208371665247689560455402960751360145675297131802502463974156571726035156573585580194391767022997025767591160458299506392887935804677383427761774388175450832291499654497568264901914421508058090802761077966365341600392937224230091853955445764036471468851753168092684681857116564234214394471908383915786806448228473603209918246754166481401072335168046132010359572680586798638406626339057512631864765957418310983695057830169985206118250549392557431695225299125205422793052365205073388405855877620621462463772472674952675517838816892200125380699056078301676591890375379404781753942204991119197844339995328709437051661989400992736079141472495709259580003541193574829973265793305658834413950582167249335300267782370699799568825445505602246443940106806649415844938321405305045634113813048480397838911392904830469787330387042292922983918167316964062992355976344087245691108896629907437863155151681928798624797901487170737539562075401797106530223830376453888834762088972222895182845277344821382429309709450721789883918399809650077706203728814872182941933449294546665049011600364061876776499962878836271199567918055853190159482086158688646535868001275795813668074753947490365383079678343819226661724429161061081869830676355788480984966130134531735359229810214341449884549712419021796350463908051811094558056599303892210138791246352501254881283600812981522341102025810669485471085080648536490010898911618400413279297109645935592466774289947429414933233930010016285499177967887035585579548808252643770536238148442152715124516299870223250532443349886994752421818175677932906172487882722355119800514061982151002135918250030752785844211089404921544804796319633655268238625527369413389794116079712806113471875701554030956228715520903493060464996243183742916885215521043703269490232413657740621456357516911709229005550666257634919878030263698023387953233413925033619892545812557669006707425272311530554681626798930394777008623865844856143425428708769042548121281002468909875913205566821775775046491698543081556618435516221308395076220475144520132751732679629176138048017163312636070625117638083558598415365347795112334165924564123421000973295931958159103308673980652452905637994402303942258718557603668445171540325740541517228276525003155633227297906138456130892289921253956301353961170543046866525723377879846694633322725520111102317051807863539366129203507207850332489130971330970603599009548986476117405723476491251775354381868647880846604602747460365884628801406296049191218871304648849456456471718205405984531632788382241086254045398759157382994604658792805978396872965696119880004212785691366989182616304163134801912622326215572098501293831264784113339704193915800166726188281663299437407402680312608769993094020739748903967324286011474118186886155636636405448021487648422700159472625094136470977646003129046013612831321609324095542930524758405009083954563793163727555929000082306876646455767190183838775737940884966575968955328627748774038186444664446486806186918575320186557562759314756062236233637196624139513892298266529465650205202756995120379282117925470421578722071034218468755771838488059867352582165401711234897486217604277243625410543488065178378277603957819093734601627654683970428636553946001016480964074574281300828568263984629586625982410595639339962628310216851681445331740875417860603458753707009914968422507779250374834502270596802933004896427277057227687518788199304049256668515841969591639750852689636674398773095361485139973048398551255333253731378390274624016038494615394740792971585606332148896165144651766276935247852986340454899885654536865364339471030316465818744110945063578248419247550742616660946747086841615599506061372759684568439479615835925407763442846184771584547632234052159033035061881272864520444624366666306230905739337319242926713850158269944399554922147381278475959997624464384707496107013768084286728092345942586088039930540405836573851329933292714667270787610475933794099217475241765875114465420770464516090084618776046626748386464388047339613610038323027773355206098616803110176175592807238167394878121395527916131254804214385626789580081974025165915600610099573436945593355106487355951809132323767306424050726950263145659007218588076203323485308552139383506948557032639251065811363936762125119975266986201063173508620022506156326991896982063036439197537093966526287355721661585505912228086797701532906394856282255553937338715222496730861591985730902595651425630361110869603297920566099920620429057972354914716319736870267151592824104168095463455630976285896918130936814046245141774651614032567062700623659684440962317241307781316417542929713589723320595458519944305107443644717010345849251281167054821372319747406557701552381950414611966801942371626245706274708604166388376884836420466527308217128147131467499955286963876476600834080943905720167554297271417218768171793782739801224154893615246744099352505450786516385704600565125285484178993090591998519451175642818758927507233632929561313325272174407445188242823086805445185149977049011789187400341361779723356263306422897363219734979956044901659642008947943150279270707543130138417450410790298609770431374185011901972059322458712869701113218499164667693630618266649182942485952484776241423614530671342714224141912553947703168617179002473018867827568037528190611540940278703482156241691698288581005188342747765802699467114038111635469436947791417760933384375678815200816082138848156727803822550037547929110827723908846558140314463760394639103204246627445951051102829678740158917864204925473117443475539004396469001192921574038512791461366507756532195295017442393547530725392094429517997984774798302622692825358569579808113958469876185061896720596301054598188553782293826468192821353843335787735694470891012299983687264266382756535486530365047511951256072761067445881605940258251267953476643906916001137778771866772266277660939665484145588727282185207972401373492993895232131965232366270555284471750569615329292367541347693823334309995930069584887115606704780323155035526050562045177795734279287690627384526281514384501952526086168799601734502566033947743504936223274713195290808402686225997183378301137723405143045019678322350763654984543758147661023940933582861378935976556916061386407050840679252638500998561083289041930767546461941861467732557120562609771093632750478222601678911682786461623126437193315937905788505109099202189679220467544738769858907566549956453806601687652720633105168364132631879182462642501713198825934789283131146324456907558388294418653553211775651495796694661545507082020416612586277364867072103272335964620015507054935182010040244127168735588511345079959373602742311672533545930225805568582532738698644518545559965451419995443544487453015878558876933655883535255267709189905945314585492663090175785049211748786040927743614627757328610799866849981547505632711209377671503183130795599283836689956921196238650170331849986408284117469923112516334190558221782604126538351374236107690782475724862668095885402125997499971433756703821641013161431270223793093649455070970033498936032944483109368914113526733918057231039551902972770668787768496071985843848745537551562037612762578381299354942116145619601781066315819292041749355619374467361139032526644051484022018250624440137138621053889896017127337065479639427602098621055149448914952812222982666762493790108733085056037661689540848448386834472840390589011928728915223359895865100414095301165888788391470917924207417392247163246334257458317808577259502533060226460811349201723822821829668541424432860944904432490287415170326191920233598599245379088806521600606645304322925914594665419511033640282507157273867396207283567370786372236920783902361385430572559123636223741015494236882326283472035991595921048822996249886335031928649270335267919442849768030493396658564250305840390057308345902699653992107424987835732693311244649953409903154341078206075808304058570259635648632080751774861355834080703344404258858543870771619671493717206181731915911975146805797019788569948632334145131509247979871588257763779137186849454215316687090714604031691497903181734650549996643982032547998301749080325249661992646428792149888278244873445493386379659050819886707412143351481979005792331872608896724635212558028098033918502352761365303478949086749914771928204866029048424038875138417846585334373966168739431128489892021666565121171641167156647823781252848402037416594309226675853810594383400187103018815081919275203176172657785483649653250194132177109930337626119587488299963721051909940414330017696541974422212880101262601292000186939258940197497203348191959470076722951891779855328914390113676285178471812625878742154697757676886244621533366867921407705702904939332857369903051757667138805683782170331949746542800812925023494727420769564752696286135365153097196034302493256673115007630493852124562521796616408407230990434181942484042140723114421289884019401304310373402901325353355888002859742609247201679120463323929181543103453258449068042506130920536030953694033767214591267211656023012509747761955124089730639967649260602981940387336832174556041876236173416513386465210112369838413487065122174259473370849952175146130753734303275849258490374624222567923287500402964843581745433687387621817995499918749523604623884297906462439566851542582375531599286013088469799980904145033495723187270468874610495499250433179765684202935002091097372482891127779909519633627512828963583411949903518856377685209918453047093940212456421517947488508086446398792764769400803546826161211616980485005593022587332233904959345513301946035797709915622475910326849451274050938119481772351279010638645536015702753678672128485467009229794697204698917224013677765269547252961830675263892329758776814324997553318221211427768792878425719464139733908895353005645418402711202191719839327079731251510605271979368901494582702174410204819696560256146825919340233611965465494479300835704199718053756974700806022171347792851359598770116115216068530029846175281369647105214472722511486391168577242231199219558895572389169840461246772915878777494672171598980638945240783403570893129278429715870065821113248046630953246691751730597369463256515181059009022308982431263880985877997244251275439467109403986658165471855072456324166686638156635952719264486321717921999510826984878515309077235740536260518604787848869485317575376138567845625464356680947508195963973609125072052453843065755003320245554965241625155639299281967840101643062157325194632176199122856229595757552682419965236616149641617981856452264185998693447251283878827491802932868645089543883673704580822747390875381970881139654425380138592348525438678732502213615383315902937154890766865771065618446923278885402689552049185844299851411387680178331731285191295101279837067463459473650032110477952898596088844272128636961107669794314604684152945582258140619663280011694829647209441450554147863990987811250692313188708457660660693754021846788087706195888219067826961738974832983856662543165622715463669237531228624673818489617884250217334979667654952544602918771514888138016169846726647578655096014839447722680734492456510334747303018210233068487604435791921149045269935251282620869591699577918972673020747526284561099082476592890066989154295938007421324033543247370943901432404690653300542379773889653677235081191501196110354515504296012797567837291085078316183451902059596240601466670032267462221611860110229393413857337649026930569388722344788887821046053348542465385356264837884358671267505095870410271271791168715388365432374290496249242739370896017355800773564206345420222526337713152574751656603329140326208154053022562915390064203454036838060411939192677922992271716468304648260201164866243157734284791195123601449420952790215397042076864717639751593860724001489948126503986860279634679197775368421930908441150055855108673466933738883023542700224636427333419820141394972910937254351546433579241675389450635442693909446036394054388320191283608078525189235962767695908321019085547104249755487654534584872612010975345608389805564567864096602483643254664367899955596943825315135029261717753253355946614413667913721186871557372303181108290399528605301175825499082695417799677940691896620925827739626876495608338967163960160573017294294952673855757283547583876357904544593434990843873022678090686111608759951931287112836940030222275843967300398180543172379891506130154912426198396427334302901504138274431292508356990614268141017781737470652459631112627567960046841284842256133029244584895575318276258312356357433121985466351620155698690107834720696134535680045738594263425412163247937937079688411796085566283189354957831078190741928937393542522222236668279987050372949827594758788063488821459257255515766034567258553533617918181889536824539939430841997336199050554534367302055776758688366894119953559283841780274866433957708928720448642988941865534311456283909292898479151836827163991579766235564049859024157753169719354680839023071416880168099464605470556043759984704938089717780418207453987079565046470613096991023173539209407638612528630687400226592576037517238596917771690192109336937165918223701414703161690464033539766283560190806362755043870981117328380645226938263703659924838674565387135861678526761690688491900767220841592949849025987516703942472832285065174581245873960866267698199097516313057140097295202267762428736731590615633986753048686331452305265037245502334260638665482879386015051881526026600489746639762198456650276951478707902321901693870454510876188869365947490778144369706323849154652587937966202731912704782066404108814342376890785349974374977276310244391381879950614193576100950443338358816335318985516281784267919272224328122366829018538998508048353663879499424449641737868395712112454201817948526572684693759999920502025370806266763942690422761526355451092761045719873302466538708399749173560198045501780919051023681064488067913769974097124711459690964688646411176315212197969257442707032772352431147020407101313142057071381273489670952498324163251442081113409397103752713875935287999192402904844508203046410486035320791656729518180859809399794181947481096753578531379945457538478608173394672774516045244389620503993075277640808876017711651247074538212190124145038838046242656229504616242062338508380374245661540011858436971282201518263722077678156182758958536711301016022689465388371797043288623483313224007498337668199274144396256795120365117844659109144066968836404454753292266978978099521349391283743674058282570860957328255384472226587626171841262691475147825999695787924307843416445857840436209848249153799844055132105632316364462043321229853635114909412439313216354649122289916859118869675125730582334554619940523983187747616482997776500706114243890193955948082795738130198045393267079351649298929881006067970062387633209767566995865210536697642886532167769299528167064886034582630688427001932399767442054438106041642051339997861619607838153292127189816782356752460761440002824024559556024401391569163195511298979968451103172171498667304921125533100155557795929885664254816091817029578117865646683405838723373177036874717711396369067735849634162135414259136586765428677204692820331157846976827349779371487651038769328959240490301484890864703062687368517874428704140510483047479305250944010047121284941847313468564373205028398889058189202867743595778502175133745890495564077165354132986468855853861692899951342706486483499385322902052549886848789207411912583519791584229320972993123472776159044237351934913875185965397466888906666685197122754920779517796613703249473856615974593940796827837655639454235593297990255592225617565087947942554059314076048875622332377690500705642424158366086320578112682341957630014845196451152076439922608713064495548198092714648475080572885193929804800712756221899913838775669869257862051649015165745343726395408898406810873842804691561963013112198125819643892558156445559139032785489960272584448166401536218120555363667179527411478253058907496071404212470002334591170017213773202665243624387874277430372703598536692020132414241932851838595933403924849251174302978708938171801662451325450380592350576324250025238570630133415618053900625309811513937395876797268404005729470208402280945294160647684882386512689621285388036761790128135541797763857257200670159370559738523165338679587564609569192570116881167024596996666115667774077429756207356015589982314779084516933744509786336968804117678361559772184931385054566959967747264853194431697851306099097988174914671002402066642359304114824953568688707498561100841298231323794156093774644497090514871845264944386612195703217066631836698104142340144554140621378154145105284682362740078266079698490919063706496854694848676747298498878772096019643473105429700169090704517333722664847248352413793545001146922687584195626027042449276962902821338413814671185558556751020086312996034457187612920489685843697777293295199305639911882035888257810906610408146680904249036249763030462337406147172990098561585569191071819019555233385288415091438842368440417872052831385559961841783294964435092965259570000953337764156115025411499698318741066540855345571703061841725701725851795835743231773112872511917562558533942060318455793233997260822022080875368240577601437422869423326587828589118296467919205471050295605472401111404868187207324188435305715023703296661208575612961357981062604280321032547191732569363652757309606981514980360357505630834988193817156845476474427659122339204265711258151265688415136345221445063953473383550639812709568764581906757041350626286566707858397975395548654460622552381836716322090089608891494879301630235117778189680520561891681781942037892247815488868951637151202232144046622636940963482517123503276565145222050290599514251089876633397863429980140425052846522331220807955317716964924663786299540621054163093375346164700759613367709965676724355832731499184746015139934574002493607428028292698176053930953475285412268351471881331068386662011190572131987724823840232809043160867546122294730893421778794039002241012259386624865373004138888983695157790155058258147326436665921236138644428043237691399310713180413025226221716065121625963976270217729141755572067427995826876671007431732307898370179818072099204882230398447904777998264949214360335524247872126647792109008129587129336546406691979396752932511012842382069675682979658149172939888716741286231119358159241817626586696375167716761268216620621009568453494601773118450475039136711260884219648292809126367952718661002548066842969560956114820861558087134220172355218433175348591537868635190823219413887147272335194744160205557934779933259079395912062238023108469282052003762733415003458096107039002298478401989472507294496507546971494163255488778670830489559831995730321798730782225284931907164104687080864240129126503057120131933032987888154899613965928778331760964380238945856976356360900958095500671929236714038631566425825889053889029397715901005034871625481668629008891644991322581856947920481865483837737954822989047914795744360480732840658662503858320073402854082865300687355815158526043700312275754379358496831109845511977655738552950760938968515703418456644337831965195737963380271693278051767278153057554257580394102583138493830548713235166504929936333914284478269466048661045398056667564935864587852470516062641105496278540255495658434492153667208804990859023061215073259029497379611612074440892088512390866365068043402114524892788871838510395914890387189639645702673534199202943417042401161123898698221305525306106305532832742557121166556182400553619925043201636036732796453767331987024593948044375779908650468663236862297048214640418305037225733879017164358342541100042975830594428473031623111037299713153314834228572504024803278172513488985952788791772585448459036981014809197443843778608312751404273995219018681843535915463748398762589034912176640043252579641421589622113973841722321398818035202545485685294922783804874243359132179677372408463781122770319526734753551773053102414737585020356508914010805372740869269508844437996078862699993731200329572907041782587899171493517783617859192007108936383970942262089484126471116003698547088230523038574967936533524230130357126464119945045539532255039997496040418943396447115705672896945421723297362963689067844007569644240548796176105650123168278185515847158295883451442451662392977110710649581380744577239475281532663811347918620647789581767481228693789824424279745277871259153175704515057653176997250043364926635627600129772352824983801298356400087000713997657718689351333671647101589967796567836278799401974591150473737570327147092753922329873229378517806406195578487770345697780605579909760725053036878668350427525521064567964073347236671649550501574973449179103854042970120978833037681271705063563878686021763151139945187406588328038955961600379264359480287630812265552067448246104706151589220150356809627590289479115201925761060830682795878852444596894914062766910742754075555815590769547693807461350798369792913533051842092210875577605822458823955230951563493885118749201722830093649941505218099594782746421282685241975877128180008490561215384202146126205720798477426451614309127985017222273231792925187893334264311624611147445383019473832200082121859696771455664953152685158864696059745301686178557932723042457650543920083981307494442508922311340265506628641385449982565126517857467075198157532278540290185017941852514865699137311631391146576064950201986901613807980467594331171888380626872886803311100847902957301402804836493830225390843866242138256500956123430410123437977368691433744440671512743784732473342485409926593769679867697779328626910432196132716748412334871213431919913733043960432886180418175146799965869294960964198220871315848740174821927413091222281306908626369630253081572097868463834679921291823083970229739079579170475616755353127361992090981893741369705481455871056050689886323297173745702914744849266398878897443737225227622620731884360047204299881710183136766158661239987322379231964876569266578752869772059593014648823568948180918379473928085796882416044836028360545615847481981985202605473076584511232966262369156714229161586336462010497367358062983530244503708810506648777805807325816023047929621592481612885987772242030002749075545891260977222222870410942091588942763801847638037321102747160301991769716191447897789788649524510325589609707698390860760184578334929644052069499891604744017702372157713174200284536521262206026912483549638270668056633574678952935633607165791788149811855492594494615294437626506235614940481165496609892610271686564729768920261483183597863564737345905052126018185268160256960453617638120193548287536138431293562196309235029914693356228348235064702045182682351448383016254524997220511814427680564349257907608901781167166897714277051054996934141073293543963802030683707794497965965998002653065764466736939086839018248396974340995247997634576564199937719073735199779512638761750121806850942597148910994299363622034183533213492221436655366856535010524918860203850185591099321976673971125416035260314190570274205145677946166402862926838126622783822458412154462293398397610988258127556561115613557065703596545521225155724181189133392353187965866285424131761270796924538773706684068724277316067302127762148950526161363999675311427195739839326576340518869635182322513172278554767311888426347812335209368184865072150302965118869240905924399126517792894985022205666982508046908479608625752047884021459360556295754892544992853031368141304866641390163561275727440508261804236506934389562235012104710168578001115449008127832385498066178416659824724654485749343113829102401881038503818397840904868283078613190780193993357964784872083820918568560436440545758528623836786236193746938544057462519327467664146886893825954135963042336514895099191158172916876916921668187595695166814654715388619740757122383160126931192550140112943422701172132108168772749162056474226943661353902948020333915856496520166715528978930883207644553185981697204080144684856261136572821824620677424221116521752612181686072534262355748116495045896893749701236280023726529092988061084261862893202607631670100415117669141276202473128704953413560661233497356077095452245426645170479647013268747290422275185319019000006945445259079130587650193327625000976785085554570867184200548308531128783632728677025644630615255625578734181944191889007599610740989693768185761724485545153566064333751212203343613733813374684766614150526716610682172380968710616470596218424174940787250335808895544287588198292861910220963248486527608220042294702569366450743635363870258244990197905772131416564667723426685225566397447702137511786587492189926007719678143930660832652536554128838422384452749535739098314872132302472278776862956649655600567489348093753893634958472178172201932432357807807355224726796262150791254979829715443788949894625044856937200804477322388852621354095201833321652346927678093200815711843641532338416094910170059239730287585417985070230000207655283580588206802340260905556559357926521313525462994478859547334826797419127895526863940213737118376552096058402141350186534507858414903312317847231584836289985011997587139177382426566562384870569425968628151878456827996277504652843613329892876845459864240365194641514168583887796539359771105012406390288928672378437016024608174504898758888155635515217430842036050560512174414136977815832033128173003002424540225061612652600424978696086475180960185974486957183293696669527002471136435041927632683961563551565134478443760489028415658696118614147658963964639807480336367764365912228579716266210799083120660046653604187872747219442992073630932972395233612167669571601034876242915726333374667793753719717937358554156949860271740870231184127391961623424904550109749269678522356443153940766915441237146648718025734726689476957535475056104735418553462967276441832746422676250490710528828246688722894009127816105095638553674948437612339988867932157553537777637819093838012702452790889923106796703644719862979857470384413166100115075362258309567941293840879805612911206656807843137342828146557443080871309637420188074917927226954819672041371311084043791677535171026228743093378992757225612951220483362928779108740064244820886188452697436980767797161835429353915845836779807408803424134994430774302800383736795025612871071036690671141585545799798313249047146462982364100142362340858263201503153225920360771486475531019435835341813735312418200469588680448482073928464303641053345993244230753331315849788608797041437028309919455344956608832791903338601489693090255601573852704397952724762750613748440471844329264644783873739034918418054905556351891627342468927380845848582495363138409449029814650854216545930349534239036021748763071963136028954993349583328511019103128936819825808077899845014160087138192021484759404866713584904988974931485076632978291827175624611195121000247536635887505580792472496625387361492597183216984138822994524930747662978228579897175693874278698653748301356221234739269468167643672579902263089738010164856360031125366668614267790555559053431650011401694065172467997107603337888107863304939664252858332743175896863795026170984822136746010351207947883782088096723535139455851976857118498142728209654016896928671222758614781379591621368119163745621456119902436375795026148939566827082814559498744839466272575850901919712691465192611173888331914429190428197776010049265602343360505145714160047387842973069536608632442820948541763444038104370180511648101315708488879817792475867441650104426143516836901790788398762724188383487518490153312583230957264926851704051380988245769251412754682378616390363854095691130617527508780299352262239571971623962935439257608744314866044709546194838000746110870362835845718791679463606477674474141702537143939945970612022944426635954718666296157088959771237269561390979951868975900205477986549299157269701934466816907921399964335185592927157258442999939737002027216294089344326134814612235273809146566162596198180666035279725623079654967297648967301002359857249411314801499020903172159442279286808506197489198738795618105937000886731718533165895590798504561554431748702907492999068701446700547055342809708844101365781465358836566566174540896312600916372000416745455378668561353350071284549837112778318569776402992054544829945946373110927372054000288016252923745353409951349391611634923760504124559282527799075731950509493052661767737277878522419327297657544558960284646087286619780011425437182972575808718543337497960764318935034647556848634127839639907885186837657513925191711092033507206915469354873153816826463285013793153125381268119328597039984919923589218572091349258695282353411534309066701496822276383779264922748309535045372802605117840013837751741925392641985094643946213628588080490033634015822821886967210482892352793252494142286496107982143866839513604834613048338969111322588359625514907408364566079694691425520211857377354394789757235809293145889896050066352837401071549501839711037435348693316947214253773609482284835158541907641286993171250423198991868802906566326516568096889016198617114523613441127242985233727923445836069811184979815480639294008255641195828762238452427753991080713472917236002671848981694783325740851785285795451506350940978593167052723887947540536910672929775426537564694520254000304311462596889455044599190066789392132003569948750680474812851356482711137207947265095280422751452826692855171418808389487251528186597387936216555614492126178145697225947829373657757134657883374375170085469919089035645105848609749629898652321694230650385920877630426720097321974183136197817388549241456412503400252731605430921306689122016936763307137384734344522000062296862950972408389821636316399918343977486120788135157429171522017620948962002009220163886746992946739400551357924597543504140721730830328637568975927303844871351474174799885003409978528938792814621890628415387625983683989200427089325541780851506871788334576279719373917708521203415445351859179433242530997433962844073369579134680778165675360395667964962406942206176999309251618586661061258874126050589709740141129581461470391339270019064384687236836159876485727629613484393080018377448621095245859152777332728844811940561094274235743783778125687917660883907596928416661994521304289309379853712608956290142720751454336237793526263524853563293085002282995878933251336292578692820395927977887259566026999481286868273674074973501131521163308407430965502065435537514773344964143068205345355641301046921510603989158964653230866940195693803225753501351529744276080641442426780687076220448981870345278443939302679479335769011826998673924102270699909193566666439634232707197525395461652663647420158478139917241450796533191439082385766600423437860394042344487796325096797036260646121740037483826273285778689171225497398823780635305712096128438302041460232811149632569694537455014468299629432606191389312560317326085900213978007747728734582721077945167638401123209841885290438960430035164837310957717261707207088337063082373268098980358540116770597608254817732893906255622097448717727780676569990579542026649690610349297364362367558258654143250358534575145039000049472676557325991345680969310550172126753539055574469986961581786801674112410795680801033898116325255158866308159196484082852733916491279407296208525844470381633336168580197088330015182489346988922147251081587109621664566008484001350926184901857830105188391256375306797518109991266644322483177278635567022326784180960867014127880273523849147907627301161125144324241694337363154520953548116546275334322133673530000903201767685837297278548814391206025272828520539232165871797347317114534291122234298282994015711802846390480807145464546586892112322782277833097882042047281306055157016562192053103188551707427657395383878247072956339409208841770606526546724340386543688092986415482399613626021341504740630977682671431052199810349066601157778521414894735958940724343769243504986838679871062933914456271325507822593701624977712927522898308803953658449603005027277263714099648246231281995848624383492927716770108030789555665183249590225080779052399647988961574175056169796622796666400199087306962659026328607434257677225667208516970925721409381453106853606882324631092675284052971784259455889724938572555362438300418638929667419452373372995936671885415879885316301707953672119544960766890880329367461925362110085535015024863248410541237383985038359720108909247942394886256681864374275464706012895594320694138865504774515198145694139106433916881972689954035376949775739403716763305231707882842760995015422061365157546162396511187905177153266385864929989408047122918307105737041078232406951303113225982105436558501211822910464159410549751024798113920801914407336194423856215305472855238471029662439943759063342598874563101034827329406697575962254203080327470359577131200908263303810644667152663534921858283842006425732910820370212165323395731203299480800986631766000794055482209159741326542258859685870065230299386147529851303251427005010865467374840879046641566571916526092108743189932527359586436634991543835619301643711011030595421262555743857978698320767970022988957440729592778521144271245975107890527353619145468793519083038804401074693851733017317635019494690721140495366322179493173587210920616176243314927584918256075247653056455514371856222000266315385245778947825410630098537577166828956963200879717580523850689244107656069590908298477065301593008501046929808050325750459868405247213781986243664309252020971552756624525732624097193163364066109890333524314525462378437183148479667166143175148320936384071820732367057506921140358940809327273041520801600659402125699772292440774248946317875516850659377745387596369904930328972721292122528944837020794129176421260867657832035022741276596495762241063279806383104856080837330119987108986610327391767217803952080384978843800757740995901266122737921178160745552401844155601567833053363239483236601966771176473686629748221577883026920929826481740912141491929923308745409002670953632691970552699886282921881563701329882386937845238597977752224144653515281676681107649086467362594765929216835019713464907536913960413860178323895467668067217318749775060455298035512932064931813697353419416343254451295057784496240459930446078880938026965811166899624743170169648876296360322423945235091383521719428089744775059989115178642555123847947151867940726014357890439102969504427872892491408387512738624006742928433867741126139177358223848379947470781277503440396701459396128864500816627099243819357387423315150596692007986258657961126515500900170180590483933605336750499227719853325712178251255629406432531774179727771521239064130874377317930610067026367579039529482743930933056153951626364595808516358769627824220057900870474563211405163133992297250874677541252132761500722705448770256149917130564973608094715139234790193571452792071717126059524394141651034404134097821293264051258953484500705902511230874462086916893847315146029955724531781246912480514460408305345062604279281467100218784764721169180822017264892800736979042095921087855906481925109805346850431341197583987171211160293390713014587555552010786778279073934108007194174035661714942990068964562218003372890845901729885894689161926564384987634975610174939243278473199799661033517052437728500639810286047308429049415086520246358954518969193169263922256767226303015170272376522277197813145935387556222518320088384412168322708215176716738313921401997885612116847596651158222888974099276606347455780661456544331766249446404364607087952203915934324381671378370105267074781462649897288886082517530562236718216982712530559758322830087663197569148483547037743924071712662585661010581123265030939776993694588459358850136286090434885947342527506505628788125492765545685586188668792641671395269001446013529937192769102248333592482983266416616263691879818641920671434506756803607082458302039288395010319958299880926560402189628537048905719496746472325488835222411889434418006750694493825308867854858962723118496769309024396373748027855181382918987446096182123697210183219861979593193786344855986933576196168334015028275754912461476903659792378788942137069129347979259611082239154406188739553431556469987988304741599838457342461898086209932009288907158904983447067635217926484904858245764858819124727943341442323523123111162767053876330031706667112387668711082375071014507358541689324256814350536220646592500697515689142892886553697919661277673225872491672218355432622485995976936255720819746586081935435418894879427915228975753969408634966502265915239384419773146155030412285347479174017138079995030232094901295223426060641202144720800009558781330404628613342443605411311843665298280902581047442882763222096972206824263427573194535442839462761158826957407017586910158561007998025511088702628592215738941056704491118890176036088017269299356194290761389433572586364958681037289970831279350813693328143062174429312171421705146304923678553532274792749856192507855977305420276801285433661398236375418444363807965043086624617900581053306693172407719773432603121264855867940931942247414147809305498146278411283237535792687282642592055792356556040496422700602804941562232499086161787462196747182452228735362768634901282608433220738315344851539004648674111825529744209338231980659789943833830009440940219764943495912637912285134214674075966852574002261653216007941005793201041680837437497457867737356068905736983476871758810628375976867048585149081164060281454812282498992821901439292771015141987600121928136695042454160721638258576378625621855679769464277286539773999505596541550268522322687127711281082916571396230939144663351823941066769176266866901834582399485737525817292999611760039152271945162674085428702238130094137150686154019645036976379078392774708137334273363670141304313366353821491820815195312950323025449896158557338010515240414506752643046079221929164115424045837984562327144840291357203387356817771767339788983439594386512704956707096358456718425192488072345515066535238957958365468377153784686554039380750005606365528325558667571264884410883720545685831564714988873175542867797238486598844446317174913590067968353745338983703788805594127761751101356178345819022849206367624543430675303333817913621333664523654498897243647208054341796002525083295288003300286819272029127694643963906259472556178397393603035190819707240252018993926439947169037846034058344254087127482340217466445481372686202176928790925140899700606999153384657483397462352699311866534773914278768416128388843938831766027321007423319022132411914637893472458390163334043509555244100695884369763828946972661300963786128916956609577724260805718545775336682115546734635142335831395737233019149504383935660899908564940785399298942657403969967840351235610792417443669773478348708813205920525795790001498031925405880039958258768592894215158624570224378166611937622883680870006438038683140673477527829098299823728073259105600525663956201110234295756271919127641955731726551185856940788232104528852868803109228190176222856721389612112488054918416936464375420538905323500353896003655857255036798305933646041713351022231789216419934609784530869082687468216007728663371174421028607764153575952247830541780754175909293531503032490791038604494475886494356633400911042586963573807093540385337940374914698501604228643268945799936338062666411330279615434777669546748131634203486372955453294226214848220553996296000864166638340981240716273175636602582313444955499611336157021631553489694945478521371330576502239235584255648721681712903445854566394466794299026586695128636109163748693017371478305109812262573859138653613190772381110270826517887861089210014199563442132290835522507272903884715815078766393675767925122359706617468459929307323891961836529982060227605804466437436158106633043652407706119348250263856572713798338906199183608149061896065418784877437721890835844105516722396872851046371146619741335939263691208690343330932126562928783383693625954105920062166806187699054840354396899804648282303395893602104755716231258146788000821923284833541577935067751176677470058426711741483808211794100129119093118823902482708414589941252902706270355904084169091997145881116205874275611936396291502002140812721518698080664222361434448925485224534200843055221212936772028914876324467402086991880921528955588229301969318318491167668145297508437733930937824908354581748704392812015064130983490448952762986617156433470872746103948793164176881771999770187971675920857019023056889465028612889763115425079745706318083476019829999515278195389113987586605665048339684946776882311455733571883785630697968361704995742857213682494611827644884614853676711157500705190457738564732379311698344635856837762079374505076168563372799192446222449749482801016527191931882974337946790515113580454057968700876272428317862231619374740810673375481743550144114756390914898183561651789863724207292814989297117132411455316363498532646657891112274864176229504363871240452595071689622084836055095419026853932044589305979127327838148049992322136351704906345614191261916457882095241681625772488694866024566297051452053356589902359653627576534065243394413096351023297332440315313213662321037787790845193845546329461167946919960453228696532752799434834230118015428538427524812663877927868881562972594819368826037144943988365480645129707832076428064610158763925475352017065946301076266766401904733522193020345527570772950545256208922167132302897689663173491806503133966769269815530567159722166326190243549223971771827556171675726924280747633732002815561166667946810081557962619101079088969705067693824535735416817285864009318588664252755572203513349353960384214875882395650105120525760358938618905735675462863203899803276596698696517141240851706676122104903628207320948505652597216020019249497718124151846157736780068823834391523749399445964068376395216392188899721146435250689834562493235558285991183129499917739232542784404412524402842968543105154792467920153173140115384480711260618423795565401761750039497122241221108514367510839856925346751733271986169341800789227687725073981654668547880514809762385521730621957022959454373810748821965461068705936749469997263072753661920351875349249036689406959312354105837227580880161689093965463946282586835708166627801492474511620718226579343949006911029362426541415233320589795789587510192674918080680944456232302747377438056146266539752457172943421471084033186293543666834483765810987946266599396450691766245223742860583504523860952480830098164495092114054877845466126996968078545638109183931446656084012637834431412481838761717684946671679361386254263252441563322422096598308642714366140735841426533988498286807368709482231372400510590644760628172092141334337822271948016990552227289222221471771645960873485620776340082042901743724906625038797328141991518533344906460093038324091289761694373319806072183845498071005443287464992141064706790630239126446400341685861206469841761877424592496084956118250301850824058762545287750001441332890046165314070076554955225020237790144769885057472148234699866944567952886619381934807895917011765658846458656832781645831599816068504877202612746084832082342561457512540448931166620033368256499682451018109463743615101201393804205389580365334769846912570133240989144990968835294034980985159345412056378363740854274410039872634983042532509793728253443659254608182361570083821490565667703646022067913925560137250874159694889995707799802723734778295736863121950569637130161665659513107322792352197160685532694015313877758428662111676486856846821394627092702318945465329540419458001888594023090150779608434837608131214597718699386056439512559049321611414389811806403435356188988442800283712680354381731257244812117750962457914330489578761404514489136152529484028628070337127106800857918794009468495056252005595126511622344137766655001677661258430863528125493631632402247166603748758811002296782207054107184380590792478241522237353054043272400120970640572762012451601794109294073356255458689676334320032038536651992690115208112856271723817356548330140952424371964555383940508405379774395972650810933807622380738995674947774276544824577499198901980077747810966683928715474641116737762131532819062885977930752472268585068322298582980672525530234859515187331878467696335136353028556983622127946022152109220042213748095518583299383995972697044957330632747899722322270620336151808903551112398975468520604990799132064671263794320914795034511118378486806967265969167463961646082450474698628586165683507053898747452274897431797424637855859632644397259269016502515737941300669411041537815524926646260463260523107503234308634485326597211152107077141953822317992203811603983782700422438434401414194495921645048700755888178786984228040462143502979145511180658455806288940262595880584860009482107659769451897456665989312751548031435007797666443610434079125220561965210527414253571923308811119509830159669539006074474499988547231893552188117998576584090723537720423351409704927903583304869956208616000097277828479575782522836626072682745412110357869572985282337254145105985108751161980207911141749994247989386728336114736302524738122557997988286944898377256666364146218806014064965090013524650388053987468805455381520704656533807555219719396252884836013783058493656913516732661407321439476329310341507715209908354336549827670614879035628809731942001137428649971467923711286116819798179221037981245244549007268223008254600692731247449419675754556728018220175900148088348850651731717475622976238585846660768628065866448778517116390297804147579912263356273184667587149711826198177384015132391284844210579766582897011701505659021352262602626302968557779036993115909332370929520292482985056382641137380952975393452344342094310267965859992636793408730641807577371267134798334619212445846758993192030687832800896521877809754207599934900011398496969935471682317840053421426340004592515784982549198313313939698651499543519384508301540254590737775269495524303096140176288092021995934443552472416756704662042870043504767673043650264320646659648408893118139164871976315685654046352847288685912082194071397748159886691814839123370372828294064837034145482241772545434268685121466270483372585383357018934517678833176268636954576463106400183873260210889899145578119322086485524368360780571963386005044997710769048661135065216213591395405360846754766179913905998874275528342184994537188751936596818199311172029809077850443935858645800637978063256953705830574936634590928335305922764318700902184201955984920180311296329868729457269922977364502928811878496584289369152789822130938455818699414453515494525013834144009108886078879275877214128665638989543023767603380613947404411007710644579318081147134759177738312383740110714916550915292279924342592522235054056831301459563293210782744462045625246724599087536020509204952978640533969322009504432205217638444995808497865683417584078271609384578051976941785231107589735771233358933562018707831718004031961309928595175115024169692186460363284670201111125299065523647135469119140003463682219475764423323477766055536478236060717675220702364459428046501993965857558330711292278177165464516056148212742576528227986050746539376936814780372721008184042261389561237796948247614725696136734536166042015952087892094708999403717962450557476682795808795053442031918443513782272135479042023231165159611406566670489464882455219400672990455976132315504645816955763835908258683814120421998906347913740875598270950175887590606410071923633035179133834373431286127884948222744571114921867317664315413343067930670467990603385612053426433785355131901429878483619329131954522114487352508304386165727925301770300244832504877596043144244231100582266086464967371711289451146007337210181141694356837521907932589684608783328410792606541364154747499818005731339467279398412213853941202355223878389533724049386963797189230925666618062393166521743925901170772391749999272203552083000343087668919642052626147364983402137981525766882842152785831976918274210189590096106353234358821359646472194697355641902716159135077667869899210142391492738340539888639177926160064944334866274810858411427170288711288505715584562443737003540677858661204163772291566151292736359616490067796368340786940645910356223558552316978128233260710702749223688276895712893246846956835333531526380324711592489803603964104296686032165260754086860840676357157169260837262885355466398435999457625016906197566890658735744141993285396071835106464305542765206944175135583642727909289554841201040314527691722476174055544080722252904968249098535406983150935956296254026727911370537848176564263408521429675938212677683580106819619925024508429490212071141870036745459842092662033473851980917989126644005524116770219830529808559683184045018176605672497752976309497762270943944253491629158427360209982241612337513299339458900796219366887882485117394846861798033437232662993938716649585141775351983931965086845578181305650010248887752538199986444169807257417360062370773659726268449583768969104427499447255365438394222619565614438227180726353508248473166167544629793725342106937241564853750542165397894928677543171874146477801189663755252974840131406715160918333220582062711861334834837705479084092490727397159947657440214119470291894616046347751767160043454759860038957874103291554293419584927993169208387508307917010320541783191486938685365586696665707570954860025795069037521396110249817289448368262156557512337603915854411909475639056730863836560324809792264777568553626669515592736762229199991889971659201770687581839146531799426883233684467928848292922880931755764700791274856844598832673905148862068403083338340914588845619202767939980285254072552422322842027017981168563393102932382062418518825905715314866131901572152464122478430075742029522098312458925586786723586753693478118167611121472578559388017083230219559276273274071400023138204636924134356396369576344965157608771076123004583892566529215298581287319853422292638377065599341918601683251090252829483440814762374896757121813335218427548076801220506906427173933931867658735596586603825044892356609887896123018798458242888533929069425211091955697273281606807771777138702850762580799341815044355521778079640104600171698586293523969663554798914272151639370777757998292134159135088737958377508240209922221516288969809214297188170183639642439431475819282859300385730238710169851884309110275565069494754186805371955236800339458421343732530376459061771442488170298739575944886666425141651378996102620940933302547878129980704815523001672514648282104251354807035007649663768549568784237646758594788475665691980060075764157058871960447404047277530836585415968351166063354221295062893632149201491366571258281008728933739540345345347265055587862970217131921983697329966920523034211046812339337682239732181265845995265015027520981082295864344319562413945980849186881564390267556602280101771489607048062221692734141099521423157072932417174312296113588836347922701252504496951312265585521688360030411280432338687344646619047738586690910239754627310705064032449235460628465199170524576782708210989263084045565659025252423917375027109959388474736806260510323711567774588665112664295930305362352706834419737043763159485268002619243096424965989809040396810912815250989565836491267385934097582774197425741870306342923561710305521556735860252553009371632597851392518115864558797539494019606815654306338327062688174687230725973019866618029427172382442844162022373031025055686045747003380582217182737041718425180979928411479646721399646365280115427560622532203619647956580515371126647129552139448734602315387330216522496702577852009700128330985474891492133096370413531938409470673939618432275134390186080498044690778412628154649222030212701509099246062282037440511546119495848142002227522814823517084977014647235887807984889962184701510264080093221795912151869877727624714888717338730717725400108765229844528724841899692246377615061767171048907080758091627782896973098096356897357431244017455450143886027855915960255733013633406180337481025246265969408410504987463822074470057795663738048000833667447222545764143154286884738294698118922565121553351767053092156311402948617108593282615867317947580088957873928404970156589524280788033501870137611672431163134097746422829300958378481109517220995669522244759032179903646004576755115879743919298954362727987086973561859621850759234448522225603692595889376501369225733356946446350139653407092931345047063952387110081253581241140500363019398056577022923005895946003947586384051410915446634633718134472519722721143057260374947117403177352392783703628753504332187845315851452561310357076422069477489263409152509102062512940472482954993952598391248144380706168316094239771674021293163428299157962437952653750996887601539010094474973619412048460511492838052494091459453921144535904905228942597872533037667453567709032359228854525524073903296297430742044621528644813216789068375088532597213786508156081041482449558098013061722646604650675605584762575378944022432633408978834669813695337059186630596743052188252516384633526936290553507105626160403836864114754965884071091955175465772104884405613380080002028636524283228050585773297185506028189340663055522224047928231439167849017771521272869697965984820012921148562760631582877473882580787749337994999010098575077901641161166852260355640677616819742957298683324133072709522873844700222419994780837846257089444019295601334561272037096402133618841988608199385743330201949400841880325622610142265738435142847091337925608764017843339815522514038346559302783762873769303808898533444592913119168973299476736429874649941981935409740805867163247142381639963307945783706094677624879552082493207698391330060713240422686827214590697090462612243036435155762213923035170507582333696861933509949686832794846090877457690933760364576678277693969430019982761793264614928971450526505588808538611842315876658338482704677646278197469644080782424828462606384823414771233204455974084743203293565423283626192197677739706022364245328079410418256992691429624382947613001908461539347200133995090567094704203770365768831948848527908999301759206854895888953631160851162329257899823033643243134203741723342698703982578863573103674434971636632845183903661408593025046551103391152122971660648580113131169531296426255211781319593798721611046770663723905078968877446937503956658442863507364854443178062496435390892665881120030046757030226174171141880136636337116560070890753698252788743574735653866762096657033543192577027848919311899250308633868672992872530459947414794300674522662559543145048233105533140670289971143267420718048668137215426611265065238350539378141246740857060855751759942690581980376860584900075702815664118244297182036390532683896579166278911991471983178230879304611880780112678850289821667241936946167553305230221262527534217951555909132258864983263210696865821507230149307411393861375485286200350611579425869305259722801406234687509730167509202583992728218027731868751729198170927777880307178702835982670043015705611007960278791449154260484179838862253823002701912700300310001201383585039374328279972446871473877051540766107253942227425230373014389710368965269240527073418715188004674107137060573571416022453745112136222908730863861934956170234190931782109046372321546427313532770758542834047244999931721393662582724967290066408489246949969483283745246163191838240881814289287532899070313004874407324675148326827628388807612167420839599816824659889412533667236803340479705958792309361591686888946299829706517666520748125841751322474248826833215711480617951135923738379183473856785348744632627374381962420441831626327996785840841985740311419091413825965546141994118328182374559393756229326832523270618855711042145543658304177798540683852385147951965486514791983170226906568761888274075919316733643314873217476106912193968950657109258102798671493458777120535667674185641373665827525199207197797674793909103759569087194701578147327008471286667686635440794329716092081700395996318110313573714387321752909380804613615105765475989660903241932964819755454896097768663012539400147585503406108449179855799906223265805776951939197518350314832259852148603282823414919114809365904394031778023724832301836937581821823913374271420865188834076973855264371928892563467625549207734478264818577429195047046417172469045006954486746709461341891935019916084173150189417935414612906432880853953313774971911533836396485939937296666326419792116431141406513333460961043163166061891573753067251125560316896331393723519911284234884179113493023516291706258937707649254783363433525135596824087500478625778801404664870988790195595116086920278484377350949786012166971862502210990085495006384755581684216727467532199706405188573335174031801161949270854944859313358058316508699498601525349597787657605831641634653308727955595791942823605882370230121964953335473970254612415750980525981150732087844960616165275995642728447375775228081523650521266793428984458432842837895630394488211179322395409459485328422988244619628921642441607631058621643575568301283873293998507393234996264442431987859843338847944447086314161745555138204464434238404099943408568884035271650420019601168214295555763791232291638866318736901902570867352622641219076154499878444531211851735783080262547695868296865509288149700892905088303914364541257757696630389143949784040335286019164282167491393482700763088799318555754418350578548705388370830937285085877072699992588746123655158924125242730625637468081111359132298455343030599258573345816911082708475731575936616888711216238610813489108589641209343619164009358443466129130847918849113542180275431446746358658760548508737073365626409856791002789002080115192062631508430213558366387540658368509084310638796609631217899858751149669430812331755572729806225038207220849872619017966671723662692921536313665893785754694516040336024013142641305776202105184839829660169381109353882920054566874142852765441788511596790249054112909898981897644206206543493250921148778336700194017599634506255992079111261028333450412042526635078540155187013045118988247747026095223751074685721695570145570149413304700875446135759147686002880752477451187282089327160082246992627909047377562259479489881382833024676625443823353435260627943229364423158263287736858092837125436906523283826756533301587211327654575009770465913428770371626205804067000577056494445622273561683851248825947649154356094045826685403502885440847913397834613610373451999720281984477584979459477703324472021292837974505910653722152694739913266141640745266203259953409305803727801898995156396181949418130976262773704810438599516382226920414264755865044677244062414894999761613955127471701209670809123861958958939689636247210344741175521031869612750249731340400568213079873735223246540261805016518117131792823229748379925567790603987480842627929194895828557183884381059522098390810983632749957694778284668087847959660581903337762932316982436781656112032139450828221550989179014186964248776542741565233992808754870388818525471400008235506653017327784021045570747380490468324460540347334099035185848896233906590548097180010376730287293526395677940403867089384334952896177210201455318338981517434558245717494301332541968568032786919987861993582713296021173328555926750479833922895911081298931461765815913517386782920977329689663859899506215287471438119508294640124488182408273782109729387412419410095306127620309261449539461365572073080263201733117586448215909845100992500293891876699558243172923900322076608211182260920651573018862301511333778786109736938963022874929330039725298262471307846989538129523428484948968320160248686470476777605231886422643987466144259192751600035460642606484515801653476570070925118907863404461163366406659982319581759381588847832104693670164317946430626281174180912129286139325104389449498167210095067266321005802341957510156331761465774491203486578115995076378876552088559819432777542276792412176542850183102543910078037868466577682283648638640697488206469846333841276146212619158252287189836656576386626818819200192599001940550426572985355406244753655283911377657782400176375161127811045610353329982079675818881272099171217178938064619757867357089024937840808880856440024232003939651894017807580883166745497941225548200033890804520401642807481817336663775124968055145030430702784926100995541239391747701353270713493810405030064564504395731442183248490212250546657017210039142454883134098289767340433552003136954627039712891792249283978208719731871483191284110269593834491316106951177991562563060514182594005456415893696510956434565292877701969911897782908077309950075222639125899330547337970881244747829116641284227193334106774697959530674535557294104197625387162769434552022407924536969012177186599590747571256379474848806728669677466141279554758759182590750420619449997444590548575112393855162703715038158340823942654109852308604551573357457394259532692258786405001293039578178352040972808435779321489304211456280173165691020567122004041793818395006364584729637736937308375713594776525270333937514188226326285708217130262938259103280113817653914623306321400337761928079378493491409129591349875496650156748833796947182339397341950388738701159625913993121427585356079025230641269364300763000613368068806927925921334922614710154476545640526032408925269271789501715771021695535304314990418070166198870490119929276304200995916885541715378477842776983422660339743366624818838811330455567941047585011576069891821583179851504516557538791123397744237368956755176033245837879142197152896674572659217911558877036230816316285501810242528576275070731000960635581307142574515118566453227138634683228304169804512576630690836497542429212195550004955160535375596060757071406476295127955141082651177033518400832702601303646686953113132378664969202502346407417358030559035953170215268525628488682578161590641894774956233616958049325980423834184080738514713430388957919552226480226257866745276370333290084551832335936954255967269836478382398392339462373653399792151887923955316022225270513681661760206064447517463321860721673555788651878364265583940779608273276529266653603126855009443626036200082401128255216763404330839845745262923988602234519802228501744747097939963157331449841261581450073104066552020992395913593122949742685126347088810073896938271330195494227499795686661554817778028148422237353915163943273188685672131261917472982704145605551316625206750500755823830587952676299935949489586263456079606413328417471184907448903554975754059763865987155876760733056035984238149247849287832395585424820330475767779897191421242787937171706678209439540447360943814765595438780451319863557351126568008108411666601364903614287222487024349039438088072596080650243664350728802697330010530256148473166271483911033466365722670519113606003077676012010517718943678835364852244032381301734451542874435721732549625720741313799324141444785056690063789078917328212164419076725816652697852304580308320035666551222172543455900374958803385953667595822133253460628795081523778433094482844473203089550528684426055576024237133798218708629090441238051631302766976727332808245971347226390698304067744655192281049506689611631797094326236726745245494077066089936165672275805214366784058223525278375838908045499711494605679098539984207447402261951717116697887778127822830538566714580956132816108321431353535668487856558098543212957653201731689249472551126667449173585105079722040901608071775823137394030472577980261656366278826669583954892394794510888092896434129811074470045199043871095503663740498466726367297095772520110020987606747252040389087094679107554821088251807067540521795523502222529057307527156994669746902115967419360388185854440850598736299057751094812924164957505517596744651417837776964519036425190739017491129929513530601007194950316798068696150618371881183599815089984717050076739874513533498527682803329156677401381214255952225244858558350073911207929580896466167568320170164931783777795956796047672778799071419217122398589099854340355254730169640691539736600799612487575432796277194522576080308154113359433083949681463283042340162146160439031615321463312092430039699723265541039629416295268120017087234948564946232006939555782169041168267380212919591658741897543470878310287478314789173915862023128001457466281427762190758421885981820729281533900089850552890664438225475712781035036833169479827061561030133122093289283634430468588574392020352237186036437859312067774167299733345811843463924512428383617341458838944695125115036069706478086122903907192033982486321946475445726201225593270242670547394789074972632881262866306660555219119400623683007915591293886255473176684849296837826635636693279596550564709852071950697938368295073467310672080491303828440293099178088272196301714389672956113408268670266037743379567568740700643825710974946149764699450912400419662879604766355771200729806061155059084414099462769675323523194240682770876003028603572765495965645595539302360159087658281790576821591714303389948547747515984242953086905367965072699678415118794608065108725350684547505186903827826907345096348473312619705660932336300790387284722257487632873790388984562486298165735496364835507496806726849126248267752692473074451693753463185601742410548060189056128978720462321792815406344077696928538272519325840641131536619065496736001018777861565270872337027556811434973720862216231284145319862838935464258245538143353840777784669850395303269491890880037494531413735181290851215274796287899042465603774847796586330470367629472423065603192233552375168848367171833673019243046103013653599808323538464540197294374831246678416576357633870117268790658372805570542636652329285257140331316095673496663652674516984956610553004762292046328941558888551887210711816600685068717511343037771031776977255181391980862950496996199727830746776443242342761029729761215928825176165743702810231064779970701612824509607055112942787617949404058866756745770597971817026687458473694496855537889387631356658788768523930425103573422390817549507461739562605784812545115987054582864498954327816189089607021469693813719600930070377902728498693483749207273543177127667962067818056984355119802625459263874257693555220958851710256774087269566796618881293305189891316989936780783949168433748230352739796414021880251176590934194114531991809133540210215379031356660967302577289252030714707623786214735884173453641227829538714056939627868836164747961429028650058708110515985201333182636368598900094048922981282185082787929650335327579771616764813889119908592740281326687654372691942131179564824742288163195918970853778472447471372132695135455732451871348314797577616479838260326532955915585336763675369260160415820368410185496699734675867384364621733011286965333607046927144064781015753019331524879473811708070725977574918961348444433130548446122583045924929132032780985851269206525517286028192875974248592273724877356918554779351620539864323815979057187144127776137016836803723648880407569089801757849395002294701898249074271218550380013881866885011769680548775924496723722109929251913897729432514757062741513651952130908913218063737875191598566203676290039062119696055312651829173431524299094524586287741068381264004962356023623459745611534134468678660254668898124471253052323571381617521625104302444477640962381515726049303012931436572824284667272649788293008286950804485046886758444007330835912125952024136780094085453774584214872551465082058549187247504954961341808411652551459315726096759686740579119923260318767471439687924198347612583699719265607154779505725154246221700110452077599590622429497077051923290195797663036609794980128442009607430840327342472559793696062666759225184524299201970186017249270217721694304176326874533997816426522848572882848495841329427721601250187040751439316213720897051969974542759119781674803913767211604435786804394999236757587319609300961013275502882572223948517400980498232987557598006008342174765082394420229291253409544671363696271810260899600309315496601759416311014208335036109171790479026307236728287178645670198342987064683785629238670939272994426895417635978339618155243840622623978051966570248121534382167978183538915184752898029258772481447698336768788796870315173656822184380026425924172370102297651546764067017425930407283354029207603313306216551753838243672515257118242704644471783788168938677919892332943911941451111453604256945314218155750597826316929981546603344943094094186409729341244432108087401693811170892708100428751142198841056944293105554664894779981047713847964553186033151176125441472527593116245679298608045866025899282160565795193399854564010829556685104506137996856429332749325660523650757291425857481084312607009035909525716610811897617867546148692610633605354713284622649750045569237012280145367622448875139389736501164625937854538727580020045804996283076768217463588997924885984314740501103943009383967931926436989327738159832352324790975776543648434321383348699122267229385351977635749626607818766888727878429257520677257588565884751622174200880241299664457441566847360149223348638245137573081011805150635985479457383399748496957705060712899296551437428080815971751214676690450281940438224532592512416830429209789257454929155844360546174909489468040326176867426183682723189100973642425058821716431657149779121172214916964325448429905997264918890134166803797069483462403738328653788950930997814935559510853260437356075725259131305705132569205068152971488148248782232616928917475395150971357885772325846587666412703424581237171855259307182812253701369324097731993571707331812841725903434825561008650812678923117909445298637280955904159042611099202861513306754539175621744696977884337145594998980237174224164616107711031937761371016393752604459167013257535340450324878007145555081869155216322290914149586959007415485688855713262738693786150204464457195205080992104333450920397711494609007844065687337057326103759855127158230878161974198153551203384499579287442762098897604261975365423405925499302120710078092985591377187173141126068058847327056938499534141797639179937461421614919681277528535914460737378155370676079673971082666140480040358738026023495924180824663781552267645443032912569111623969926724062855340684078815768226084289709232986727720926694525941205963794874211267148852905084366624196188767436427304445766482583993589352955395856939221260550987707077020621772888845148781273112699203957272712487163930821244040618821316487473244821707384487000264435797810670180452559985556127796819619311367757373496400249109618326119688930736720884241650141233711442311115150621063423833044791019363610030175816270450212077781380649833952032359812398622356591695702347579642884495938925649696898188255031394039557350256119055643215348909821606370455551665473357009900527683079534770454028319410839608820703470205094349130525665856928864439588278729070780474660111204051239937335919135847038301838973234032906504749788455513172647592826927840342038485880551538492572351435026445298590575559627646306544281731160706430018803120166187801778372753592896995445578408267902229517940114770094484131938163604033129029592330726266720712861058972840024439373322036954000312931388465169289871840485063153046052532672070263776476182946201355914204485452186590003751511481872409805381335277678517384306262452269201979705955807052364007503086696410052763681257344595873521434980243938899712976707665764118200883287817848071009085399711145150045240478588424237985256848203636262067201514224447474497024704772447194838815673274787903095066541911860153946823940015803792766414621832705245101440296036312110764797628811120962456544665134349356084849469078028304573702004173468796121347878280651984807288905744293986131021806678203008156701597688927156888766106639708615427416874984696762631883555788259664432454273925941135353535799188192027161800231889076478369633666120370181956771477999423352068827437527971009924647573865729994142575563573140508216247926570377783504797649227143632556170006886941472683216931743401198680627871897960138990022696527143507661795219780986980941143568343896005127760900878791985526363403556061290079965849035736279077973792616111773674539879834056096968778352417354292553550317692652812042417484396578195667558898848805728779499731792542745275462725378424246097943733156162663856964644950746775499056594237365863159788228041410468840135059913942699466589888572704687481913228900007839238181331067892281346034323118901767453282646009505010098501597129956956568803195962778195460718494315629030054140603722661289161719912951405823544995566592725013068968097308358251058559712723551941360846349897609451182405605697039218093884606449197745942742078618972996687754074285640825965564552888539609059840244426469564002777262961912014070532948748139448030103588042929854350195873420037121618976747062844158721291747387090224881217022231889011781266183666350037451854143802540196512094486428196312477542515942448455064560959029250380228944831613121750165469885246956309212226830611333207653280498042514477336222917769382854245249947462126908936731384773080951825800847361965104640711827372821076059588205352761969244335953686735220366524358097417354789894442507668274955069589391027821303595451015948749894156721078978410656038516974243023909849319319241145068030706793585437625750495107644380912968120024145456895913604007965651845607280755760012295970009502355905838084307206950934466012854249224585703055957534711487748851990542031637679259031293393929186000051825929811011943829253972845310930721539457480304696333180942632018417898917221845717348254025036563041459033780809561005273570374572026098193686522954308407169639980877279244319741315003198725798651077163269546583932508997570524790884996154138584121074376638442475325854359824072623055607363733300885867320705108272815900957681628911599345238909061792281700544191511204151529969679749444667659824740629171140655353491104259587009622662821107726970943619686480761461198355716516904485194434126087115672421771634172856326516370045896815484417957472164008970092125753382748555981431236956390943209502656941016684183506826581303208117885757471443048067314849089339779102564670153064666609289210027925099521449345725414434192889326221269840681670029155779372101325314326576182463824909167391167762542976361798229593931685343590856765272865023353083151939646575358556060535927886028518249425817345446244420805657528333333510636453671282965132713205233287053467433515272458794676593195095014339701231718257474643665439537469622127428881475110043338278929862268077503711985888787152770043292076464598447196277697678757239852648661255747425604054305632645100819130643128009921464641328408706533608099533626196746597772138069469533320564347612106638483046359636440633472879550614758366560663119884941119836422303368335676968867275984844820543877579102634159006380057774416543823856353896021608375615048591584541167491876831093795290573353834929418829895177253074119495494684006504488133488403173567399211452026046918275219050196132906167073460102539242696827542071628074744400463036958399962877845372028624823598659473714947354470762973068939491868847953128602082743479300182493985384617052950305244276238851061012128221348334934512476479369279447203776072562993688568679003576403084599141093375539008998578134859932285280889599915984297789162170661394844908446860813018857387590447095675239755620997366263386908009256445723621857462442718604956055801172028059908652174567656875223804702732971901110191353900132829631972593265682236931494948389668617040373197320825173526307935397971006246992599036728599222260507534284394797057892215154166139675540399402988466120249308829746882403481600848742326187394469577973158623745503997183111483253180305964746534579826000267399509695175004013171166545480653913597607743002696674228633964823867676582530658201509112779399018625296389686005068674388870003838758929303563138724861586924472837774363327747026527228023102351401306598104883753563805452705558960666685149389140180292839110994261946929763334801352756433958138448230225018394510157632589299577723969319283362440393229826234374738879736156877002751765560001696740807746762564073625305643992811124187580241539999131357828041771223603281597237720345780874565725919296733280498277790139389434159780350052178127143452402286786334660456280947839823631618193400425312566376550110241054420900562032204570769656200948908656608667195468144080630003800117801333632619069373904141975461463746350845757009572722166634367296658326761317520774695145039067857976528327019430894666673502630885689914171133899975081498552396820896199013109971985022063152099798029301459476305954996235877207005758700986498968212717460808642317283870670584948086504296375024751152239858322253020726102306529602047463750292395089781636771597771870093266565283465098349483301822262473621472672895905489983430258583700067283872453005786723009998969072548966749218682127452561425072091548854559613384302880056912174840779713018308543416579021441356973094990537353649329745450005220250890210838533409039967558486035231886937530699715748995100785540559860595349042947994746008960950669068209665302242421151189766332736601200770853904911011293939437707957345858247423122293797988076749586911370208616672532717494277101822558994905560573091347626625213426632276582847732721043321934425385563884818707161038249886188176586459374537617486682062985161249148579519868097833658655242856025681156110307363904298957666649800921034911822675389616434631630439554127717490827625037420619575556414385110696166502773472819207846884987381036119283245952654267401468629591699268256644600244918454059981363852717496770163759026165521724324238186577567629276867974905321340269582320770098503069174059479848381620667609366685866213174923414031594902645250028340289929527895948892411481040577477391444747917061173753790506950230031419847976426079190608893288674104300435547323101646728930052820618613679490961281922875919506893312654498970759688123624341905520014717687515757113223911829926568044853650340745539416801108085507299422148045789777175716422345949343550039002457318582021067312637157337442891832990762533087720212967840935228951290347994536256532907394773614308160843500740225562580852128236488796400666618327380185887145012303487461956246371842926184833599679898599979591089109032316349593704536136188819527751740574413914219174478898751606280237319467897128808968311841340076298830253816035174376356398545591347285806287783472595544825956280055317482411221084937207893472831570097484927897761104398728644266033176540078292498836121764543075207242463825309642894982758936047304467139082489585797996473923952456695957482728549065706112583476548547907941894709778866958231990660103866052611644251873351156703874425583075833151277521091629408212304311906004468956872079689369904050191048929012117416638877932697608567641821225814122013077505193833288159890704314913364684102002636556612496736421695048521990325057382585940198794526099870852890616911094574713227128496545782680354138353316161940200778005239099330037433118817307393680928772635218047910228959155219259864286982487590604783139291126322529969175175721096590266647114072110817358278856793087479372015030566300953282070461938785554183384592295647211647503402500357873226694039184283209897080681216155433481698936560435375502348221577532351414863428409392813750018107394146678640667235673169719276883322412462647098324423425508095144357557906515846663550520351604261315883611051353676277060617879069289332345766983106934275714311942335959007278073408604764278909408404046690235396845493255855332488125027562305675503985171686866524619046511028810855251374800095742208951302318158270422974431168677384929216655030667816661446841716556076002585011803266916431541046023374840648429770846848691658312926143078102279252294031230059209821970220358525728816453806884822123083945293513147313154672966295123875402173973793272651108076517776302285249053553213354252359012874921923403924240163696546433344720737449675981563668266035604308117543696386124802760795081902491815207811180679383024282689715879056193438757605065769335208942526773251166683299873944473336696281601174108304879981703675444056561681730899450942771626383614734510305290730425340135524297277523934024272962843211660120855418104863517393259539754820881923565674156546419908153371855188578720055134129747705920968499428996206152533022855590317847420532883241571618643983228143416928841547137584969197865095590630318853291085386944615315078939983018043199588575770207250352664030039637296233772485124149704758577229882058981070006778457357409188459034285375931455460576668937833154407672965790823771834072294000060239057544330564162663727117322310884565009677506238905538971787057349451430349541524834441282127540431417733322323276291010128977218909331956325255687288071936040766506553927157887016822938067491020149402102826598365556669115245134895432742555555446640511427174723292552471341364258340663219445677598686716600270198990338850175636079739250329305694653608154591852574368226237320701509196703082706900358487910819791539808492185153527587704342467913144742971109349316127776146439347014522852674619961264294542778807849851078250952850381159510314468200690748855154750791993777657540366115788725737147096056311307041213557739063832474212844778907466016552182683242727486400400313541581889849634375917318646144649672685156480731279530163448004851031603305612026141881426964386045772525650932374111852946709369608819543545168407175036027537152350151573356013877438303073737026048625270267453804462322998325714607724871121102767518605510447883259420163973464167719001476224614833101595880942323888778962570816965769812053991533961228273304835983837235962479063695628764815931544407772239035939209093207779391025277330009311484697227564314934314196545980476725577976738135268744495526283315872168369912634457583117694250631764340336705406886469448475044886289345074793463018555069008130039540963590604219630549695331881401990383302897574186896931969394774807605470595696672129460214673572515730686477419230519265318875190233392139118700325214474639820112206669018457733889579490897027038696188543083722909620400617198165609750762579016127838024537063673523092434320828863194644167062393616832561028162107918287762887805079847880776203365247072381484380351218356503640284433170308531771839944529318422044301145752351929713125641321192933335920040083885101527103909600144213923038522667668886361030870133547872517348508488607556826738138162217711763276453956147208417996578786373756174995998018073673730179399011968910099797959921602480857638229892938770088807630442365142697501301693232024080827819775351713470775087670285818011659185876967115434387462447397500066311660122196877429780353544607552834682013258570706770082140704908823616261208551743444677939027097017111126349725163271428686124312663696646654873769795345215040245402020353142910702904082638515021985509715746123791023880668927462323322725813044289534240310331318291495880786732257861964090406145891493484820893384629741556605884165243873074986853473817976633535836730853894609501990121375000562154111777762537468370906018353490937388733266114754097666264887238183142690183566983160119579977680257853634863952487651482451242989144943369559382082159716763248910176401138707627619230504055309342931548128221331985922667493392537023205718057712536524180753944053946104472741792121429752715762215602631018251431309692082325890025398461327455810423847772144188391176207056529619217244242290733323485961168870742902485087833139503367636794245648478052633512944290574631275084062344578388679870744657028877545950008193493545125795698405267998450444014700042191430163531789190852200620496008401909500004741488766311651322180245376749855474344797841696407806637234314319289942160928692846096556886023655455286608443753494589340121201736716882241187931249289017976057010269934229281885232914406905626768711557002096144981480329642651759233516216961384833912326555522985287781703719198887157152466263341826165522794317506588775459148935032078214697924758774236710142658822502331910136582276448066643595409370991212602211917234990445641022616442421841476994197399030835192041949312730002728475500213733214819844361964556016383057127134816503024829256388028292868989839369179572133324782993568963712545573863456022153913660328056549882691064862325872941573116376587337813939393247938670994431956173970349195490254900454186462849819864316772328927541374794778180554791392556066628146580495968397916403768798814568384638369745349779518692775089883796610842836656988987382612067870898442089053610586304071280367578919220838245611874738087869778309349940836288747491938364341974199060315966796235083659398962318207064540588177773023884393421633838073287813924891594352940250688681336685356343168173600135247247046402949252742157020879378470941745466019999883762756187322427989982282702002607845298665182261402995016375950585881007407247363575447611220410178679973276184314286290266121762387344056711802517971872145606520680212739992957160484097918793711405890311801827689656218562568045482908910474352499503953547292879044966565159387379516636503337605701749046478149658290040991976029921842128644131188419515541808085229363971924247283568112002003151099355440153452748777077509744636347412483479014570472065648039829731693473131510534112420443695369249194651740962820747335831505304153605890145944826730666539058828369524369623498124298691601536804037028668273752616680814448142327697369883109323206893449010379784170090236670248188961035023109265413173312961930523342249290727083944103626742922867566771570273344726955374976619184706448949036908307709576442281632973560698465812996275571844885532108378247410297304923055931158764322903750180760135461339202554061936219631727221778978619616137056432374473546828737900526063609702544767479143410424422564099800435733552831694789892536058041212170599641742659897217465504378910429308284008599058905981857229647809359870385595059820857539138835749692647326483278345154093839090584741616281781551670725763416323199782989719803835047946565464562249170924379007643264660535265173931780059660382215924266216794464057216169528884178053461277302626922180362044039992471210731630707294575497405197731002670897714594096016174570959594670000687207575899599068620979597696299052996433704886701381485617229648379030730811774324580440512627795233273518979368909371062562178605792843234627164983425089779779168996799296272268482785460624832152897601194266439763263359252893069400058861398406710291385656592824474548789052979376971615958044353498119053196693616178899406670727256933856786794897683519384060989358593819443173033448051194632614889516880069921004752610176245881625763610628963516481700196150272543764485525360825591289988416610358742319573390978323197411555758050284297518728544045176691725808065575737993215931865168764648936888126940420357125164158815822419276500685748406706466505233045694677584092122820911791187671308691910408762099016378323798032003229803598372298813744200812965337141799382566559524831693774631976682759249180449394934364488791241982535124646548062570554551147058265723116409614855348531618537106032158958369608266414457149186309072813206049282206522100471510995963033699759055391640512922415346619605267231847306263596376908681913723619972370376718639336545398185471043857177190004876228300671795138126974310325200027513186568173049200711252313880623869080795375685060092637410126370846065018908872872081519639448859621915581550222088656210660716320563449628233623834438751542511473294076312111507273527724678116346339650763554126849384304530889895405960155867865485630372309726576450354902250754293999325671924270725719952444481700638714863813743347430642656000537980485935549476344303663975199510446854234021135008774876460123880019197515156871096971762158341202472963586287350705337531348670401574615796339869933158929493202003722699457305780793273870880478071530102390477058860808042601942696576232045675857032159244762030200915880116653915605332210145820817031822590082951593093466148849325783078186979151650138902644426683385086226769653058469568743129128587385228347728919944735782419068028213207506861120345729451335558598455910513304973076631118262078214295073635287599032537846879564173342945766230064946147321760011741110300954171012346750854889943936649645938253599212239263741946783448951148782251033648336738906753726130915158204839286789238841669451331488838318280057870471624615716837586465816534300269182758546345627524504919396688837726293050832599055221935292784107237093594367111331267312383134078448895831041141276593150674709207735074008245602924257581059384765311639382660802386766162483236247054291237816558212037285886647525932792696999223693207393385942959630419744489739530663794118679675638410076496710199784958495667579203036068712053002998906891571528886233168159106505102601427753183366850522492393786057414346303874241302846557827686175525765173416765613100064959329396269405223341538113799879374520178184005981003055812441814923233193760123085314922724710300455149455261667374606333713557155985002049333081548448276897308944401248868855943789423472539513343351973671255585689869472338044389436948585181423337369584638896124086704439328998262918188716997588107900552965815233903866352375563598517279319113330071684377488222336779335061802625759333135683571122292867357817189398321380202338257980115386552314743583273814252298452440846585370867617501919998406631266676446577510594685295242374839797852330950816019805041119345268543685817147466770431879455960903908098134536256974216374170387183428195286071556448416062528625969281189102168197147887109519849392156725922247366877892677512625385031392647733292369562411905689483584371365847386842892419532714106429837766334656517764807554467560465049311873235672532288779540552356959310903965980109084896126466685556770876393640021751093296954154517049961148520702789258959099117368746306340609829989755176931060758054318693115463518629540576807276093628046353513323396672509764791166851499477765649899570065966015404773874209037310471359339711212443243202149138554703775862935623841598172169259329204020903980923389315560320173641196429555387468368024976564774714046010279658126878949685423193735771136272600544530159714600966256791184706530684263481626245260929849132136327614521533388991959162640501155585902097212622307255801598987209958666416983966078305837920077375987255475025808934285315115852417259948844437574436579238672828904340358798660035558386906833012286106757855293994486943594061842060425507911734437979192680731867577362189114453390931576797134081709491715188671320191668402050927328669237888103122991169484295173016284730386230281272801426588090829477787608517808450266277036690440882327637570056514435438364030286768317895442047017595485008570878880701615442644793997258955094020315650320319875159347719675891445755280476792271550390943115416087076857251287465816925957773658037988978287645460622801874067726100887593260534494450678932047881813158700222302410839178459533278112679796728113481692418449859349590307617612477489973478581322928671951920376101021227688256960391219136268868420417642454948739612793022247814079506101753458510478920496376959694942873030288416209944914319173609081027331661149241718545491841695952830710351399309774499606933969391791141746778940359021333262296472314492496626462737848173709528615385277859943230900238582899033295790678592963556286793746896274528130283950999534213385963302491535720385110019132858894624591741580787090757375061743204533236930383618352754082324500914358511934952841312345043405266844918402138516307530181819499843199420995802708156980183879630379826708771138359035083528259295991536448988467390723383077594836804362726593275317314618339772480146201738093223367815389573885679131053054454709130405784532346780908112968455038196024674231300128119311130312617831265030836567525093192877329731681987568798290779656967489881726290168908033363365265871496987015198986283032365748408018095869027507424282482866135853234427358533902392674290900706029295799442484864954753172316034461046132398297610796259273469778600168302679322028308899201679616446298197296581332662309142315594694818968874737336161995258296589729054630015240847807798695747799063043500096013242828719810602599848448366089869016254852924147801366549158771575994564715424294652311385759629766241184834744018698995729250742380410339126936035928510556697099185322518792590984846634192753439178933866618280110163321809764160531475065386208823499231453899368074746964646421519658729129477637980032860201625300621478665407231998821389800660427360138654225219849012896319344282907754001899071991988454084415676667240330386660505131860835900802414210158162190272337613012367086449498014510306531463177772074831862701755543407433908086560132697102687152443678133413187380489781082834062144763293469858887966955960450455861604176783834714457517941583280163653944568380825761362909922725908199144588536249490000036735687472360859123994230412145133720688969346837242437825943862284163077787820760460838785703479126365486420881377507466976689853449323818919818291986174841943723895957433071711138535941545202247804750182356128668127637076088640081297269853568389337911252116297919768877772219523464928203393813583445024788525625144674462190885789949357791355310987587196113963104588654235807547872444202400871435877820319109331457319743391432429920489619073620688445309802779703442105982177405583688491887305289120382992657446820509325323942172669257409198315020594616594543402641975756149965353657017697895685787975118166835972317343348204404508049660537593734266283783066372457125943583349593589089433787135811244016499586009282790295767435023845250678942337415763261056270541996498367699655734945587729640685585119173244686677416687113055331088862997686846989976920515855114847255736133163280064526835750338287722498203198387567537580096864266056081224210089613201289004842259107021077632610412985963661753628025313440468466659648106392357322984945315329247402312685902791543587912949855124573174344579524992734617310401283374909127050207840415804819012446963396429683321894927442687368685182209612374790330690150792712798486841711905187255509564479050051274306654294706833253846918725373674438835316291057535938420859773119722791686445670171565280268465412885563852288134243943512156597490929154981649281949545758163726374414335436711735930817265106652410361091693869026534084387351434931885928697093933317974990643737127645256468945367408358504364434257469261382601229270793383539884159046098916711253400292072775586545084667337247880580052197932916489300447396421141229677834964513056261921623773595091449599706927170099157048241105112839789457778157671575067512150244373946088221983821256235356469941074255491058319200638288073808675191026282450181959857863840899788001307934174451862784195660364751702022653990983578531457830941718634265174766162509643678032648032285930767624768093325832245075373911772344458087114722774833974482925834919652998491528099954242873659259243029898363093002644981236884957233470091786220268499777869095696875087743821112822449961406273466411176798086741393935294968210951349636314697195425020575060609781115794547208062973026934110302425316544819772515494264501757720419175531132381641615994640533502973294597261011181271118500830124095110895872387931849002421856863454080232420885139974581832360756259208691332213701724235797109761692776543583482772811622256108891010682320193527198784511043820296330434378988543811479122612053001813350663843106709914209555898930369143384190635166282931338808603135301813915079393774922125170140614674425077755077442828428195450114340081678926463910942887571729018257771470973078471343613681868279821942207180789939897662749799525193952224666160731297092087408063834763647678751611948491610306052420874153994588394641597891417013137986613752535984845253299599972720602782746903460211218975032857674568423395417679833681104228146461666209293142524041852494680576396482251965292787295652509725819965649025536077050447671360168515932080200079446138827199634611174656763336177051010369314676600984854120652331695515373919615952009130732988238661996398811623508303070742478484149220263283624493767920946624485783626761108551023302273818159636545432167153503594982497751751361212991759800293508745249134504724900073573873586444185680086156503957756138118401085919066134242616485316692542569452637325119582261460643528615434572525542410231621717156829223791795682188862861066794643152566590870268036715202631729402589412726169610549215309022284499325106576423743198438736622363000393159678507814028965074938039538854962664754311764404181529336499685155820168447973236478572773336395292333915806618184619238965781548363207798114371362046011118604635198121220677567947219876518029949473116762293305216094181256923519470922406637789143912511574410039287515432251911778107685586426466172969872496054362725147436501285941899310029064305727637242512335771325248642903690350940694866550262572956576805838154808390562773693652145195023820645804597133593657880736272317154354764678687116007188595034272682370858630345608662164066149345252299185660923495418189678939163710554210883057291278124406851628428761531471544557100429881506728286763369466758619012754198702369182815171314107241360842380504145671619785975287677688594072295522060303721369134739012406335001540973574037175142725791598959520864784397084112312442045484691807240933356423067604277631106900015343534911342387541775760745126327316026018951272537331476118934959708976549814406351943052994761958940075071541444546066886703931630108686532128237725396716026135294710421869668863014878855471209005286955296542945548407309795050364264415605678207476773174644719634403288296552718480265128348627383663295223908029802243546877259314031597846640095833409689026426204706861483995657244675802808692249440161092074425110961432392896502740988330798089682251261105793278839552512300450139360624632854553737337787653474366691000637781734666861959064243417555393970303256165981791119354746316983409056454181471003683532132877991022624427932095675425773449194541437206259981502861917247838327529491996255505734234342708783957026611224994024533319589781591284461283349908578339555229011161922473248610364847731854126842623826705668931081649029009400728824926984444693412121222569024581262219328279410253850193456541077706463885209815008861500374125619973887689259003353961897521601874049145736856778913930098273152818314099355831903910995043357135625533175348265811536270285885148962768442132654046657932889301844457045696244482992797649453142633027412102276650869065840280561647009870507689274615103856993988940084951035911467425745449829739273164561291513220656675316514033106771669137726684768959302180073629087534528448932240025680834974114737424458020672847110493710095730574824407619479200372262587675973330316071655328430798384283042291978870075606237692699730860235176055838784753886848025890495804918176730052758143785827868771406948163210524930889175201276703234111976817383870313767066880886157511098819593472134820252007842935531817130557765103885953863494960028454345096863579425843934736175647748496589631908017937527320306635725097777845991288103144656076073443487918869934055730188655210416825593505387957130509198061364298173097808673848458772480007509367069376600523727953877265020687244197604531757760908878268802425317281879978355627399456299043411645950675640602511685730364832594685363006507876329508997697753475469628589721125324865654451167577320653204192282615778753493644295224549455787682903788601702019230465457372867966110222089861909858253774809534322812623946397106939856588639362172569064954888570497938129878295441448667436339018897403163232080899144573316300616682941639207722209494391533566865288484727909689306739621444553745470449088731305470719646120348198811598674280682293645801478006315531518111426778331047701966356649007227441226467550830288160586697875033481518177595871907530601511246969958886244186447477912749061102603334790705041983366870158065372377271942952670253350168386452366131280971212648853267791359713093338823119233716881339869405402233723473230689491463662839892263332074320157253172173650089523285513256354220408867545381986081505352076587375318358890810833095696961543490905533477181919205814037539010212929549883616107085225844451077394545127428717447343039242997859133169493024905791316916752740460068851750663527242805898775145211497556724243329145395924808845474566658812521134467801752754285443726081233760044366988151475210127713927040743876017427073700884197165070710117578745735155736090536712940337983468100728680685770212774043304868066740127053064363792064935809561602716102631482784194978533271128357131302077592115242685928040875219488751023426999517739023130229379128381004208297304688813529230388037067977200222053082318354327096825885961450745970866985928791932312807448055262349691445179246268367110586744429937927116904646556799257686532957415984930780408997727653009906824233045971187057398414806924081054554570019866945032204788752815464221413594465737873483312429009059205016678792339902386885914643206971264826355281871261985477281179528653325811451876876771235315918830432114033480114740399915954367792721692498685583565906748804311700022520648042703680918945028014294149626347983847143815973956863520091045431228765828183277179972186945032322174748587028410550021163771133371009811007952570919517995962368385357843894748243361834515155964412158010907532081319746910792940352518407906202569750917433018124716910097757062976409997588338044193117893057827945261657340375367535872569204450945737081764912002348444131885119670633016317159093695701086213576162156218067269465592540838949104203951954520778142720171131263440930738218521967786725261546735314661521435756522057947929102650153561161004899689370317488335521099725476213897559186456979433555662882875733357754534593180218669436757192419001653525093520081297039748417737598246905775013954797235105715095398377902772997792622072701691953656166540951707115526206669758142709274506465958649931682399022850928189919582797818972133085354225674711411162091720247310421231688801202117459042019880634396591085183267184387416351779080447046472179034461106523710676850860895003868406930992165011496531990433182384829316423266332282207612496857088641849454626664545577588622355541926269101335381187055584764769293197960771424246301975494001384004196550863830981872994879672245304302644390863266301290534502206905196550465385589878719294236964105820116665972245707725890189238829447020798282151867728154148268053589040738506119525829716452702681631042153036526095946946080028279663075649173858127882770955059219200526029195287533065503808169057936429004267152652990411413253578565947239190880559174640472785582578921129905778383627205661351748414937490256694327205778319528323448296738227791295636144225292053668312851830699347813063542346027575772079211878190881960202922863785692829046442250733694693336681534177388679084869640486828844144078405221748112863138519400930504714211370777719327953780872875417623649971921711761897880418129644071992617499733063271200789276693258263962356598651001012128575822040127949333441787427373190660315841540313693200494388838927988346732987835735047424035018940834475888519058217545913631851698919543073912607281014731325165495462390692192584899269932890528889897184790725172282298001408788539326221469468254159519481421815101989486627963851241202432809035851309814954094714964121233881574263966489500077061406173597127703316474904248731286730621822524855748972041445882372524342201766146780903796640866569640593111531712071646610157610678770760841978818943517526461516138082142211763271639138163714372206241959318444616153534635463222048295480999645497198616480456678389100969029105976611539710281937131633795778082459944339107248173313023182422242704132934294828077198256331382310372181582760122321828558445921157696276882167713619130394185614532639218275555598568918279857879892701484548541815038590415048855887916894940243262305659661629437320832599978128345999176554321832323131302880679382438619763322058244542090801569871033386362289743975630039241815834189925661032002443845350939757717100918609757597541332252745187667844527624716136324815678803822771018560669418831506112248125111810180726952958165145832019048765608805116989117883997503921070458111222263412301221792246545032811611553247060568454476396790411618389580459353154252400620663623830008914860676976366237739071543787444446463169216395360398200344072128441989173099496886218632386249289432584424739776191834065275039458539766320876119392051130470737298178716487935531843143003735315290717060182466161666827163900303081067296433080102750113631322964375401140090013865457612381744948012590401252823144259642300776127926123669260039791371690065113762537540303637489602707720908193713947491580826482226100861237035363498242071713631236321470944237601066848958746061076612094065441739944058371063018179797837572171561009153701028353535963620093820413554936116753415919418967279986157704031619111486196999909390435413494332506410816545005474057710040443986359724297309911568553501138786622005040047153718193796502643069760372220638397909045386878356880966798287432596455892808732025806448319898792641678197859448752787606547334118258581412407240162705953193306139337267329883718560015490900261142983575933878286072540826950436059258878930192625114222134690724867549332667095954005495571354782764854282500703411869307521136904455415330405936708295586295425281160765349021596817520234994341581177641606648067734132817331565884894844852322319967503012348228570736826724943912004005912472253355296294601163001671687770396552362015690452480190158195771247416463112898656414387527637962575713103182933217332395205135639529895637110044648615779632658056942300039418511931486286625402837504198749330341711032274286933384327147278637538084072819603153125911419956953375379674924601891004957581305108215751175933201761961363712595984911115867196057123962235285949254196288093003405672377414291828589351893055989494167118493610271575293396041437512773679172817467624576120841021944811207415581228603141092938321662989376027786275719890223187457064596728814329350959758740484627019501163281892628590075069032935458879758005378307748337640676061130433815636327306785526195640661147111090909495071536547513500523355346155487757498523543800583745848941075589479139478913928200951935009203119774711500466156414888032306966741785928788004076141082084857496341065042690067051416993447835654702178051835369708692213190320764994414494627776593916733220589740172519229529754678434408505461745585811462968831699886428843006745059257990938558996262537768129434225166361282694351883339651431004399649647470143551615463297987642956721350641294118039023665485433771323715704384549358482429198907695177060482873116362276036517199369178691959905480594675430955786969960344198370280331280835411951646189301080840867622401835881736049053667488858280576587091432154493360903054314551302764184359611873134054660384394748174928972521505528357782581851763315313344408717786452546272864563097147596531519711878975570603269105364242325384727527632141736210082614602784289155896865923393080290050710520442294783733974056361675164461246543798318472016372774387601337325573176896514674934708889679340250250017942352262213197819235487481803806363856455709590039192223950786991841362507540448004014393322735613987933094641996800132014964584272244534412651162587762081510072837714093452915097092567115100069904865589497683736476281867000730410042252878571955056237657626133285918353759475753890550858461125587943361917240548891424260750720487361570778778169830432270107383131434904481153458807370508484826717861253056902813618827685528748344660184999196132276649031455941806317328386545466924290921193748757573793304955517781645198243762040808919512509596765204891331902714782982664583049179935957773286831017541503021972768383633308039878848339747437919765038469016372577669325026769383775797156252062375404566871820831453048056989342816526072886435071508618416926951278603381415055858749183001945711224895824122612956525658405285278628728652198360648620164443555773364623813110457405552557847410686069764013858485482167617434409524976672543011873693373550674995026473523669939622205788263971301084527199628532694444468354181879948382998520389068766018320793799562128269748340076714218834898465177688286696650822774696770602855225278168698920881896397371498978826177410224010185364187398347145679229917228812371285386465868166425470827578065998054762828809512857449348465978860646061918980846045159907036838060439197251266213210089530394730573969263024426966874211306862170568465612693794277154146228984760575549040328055819720402287544566564670860330946351809349848647889601183488196318418652822819221325632622704811783503486834311097601701622130398304137088493239037464995802569691254172890796923040711323865267580162856317936011881911406543859980869357606982825163768294887626822274721283863210511334965534638448685540514491135832732910446585358145289443253555086402181199178647748580331902294351013759488692418091700859918719713718127692810277460560558437020638255531285427910715507053497777261332750604049893043875099898086317818104676089009090123503132462829499205967040699923935065728772062915695026936796922275282315946344886025385295851226080011082125533908165588292790019883850934882095157709140498262826848953083675645697289181380522235961437702596450673044339511245793918364140799546137891830803279486179420604517549524933887565518813458889581750989602809876758309454361387439751958915345725266781034756185245303226124294625449235314332212755366437546997666926377094348042506937902862092300048005561072566959390555250700218055139422443424819272229160360399898526226505864979243675298306419644474999486098774569516092060265850098875892969750074193270863575338731588742900773332450433491251215952068386034696563768564523949830307323359290205088624065698743439384770771921832855560586060529542849978149565528235994028727017482670874402547330658519707568139886826243431951013471277070109617161878075890151980104792837260624979212321830665862612735314841282594773751683131023859818184033160081232339396417585449974935156073806421825146885755535066663825093912282499707650334590453999826422615634616159439172303017204350703022342006857776902748367781327636155215718448825050179180098781784601279023139805532615138768561600022583272570482396808571571502742526619525149736779303244527000947459793524809433257558235643797032084279171053640250097283744169346540793097744096483686265425728078115214863530436700813585833767231863594651277789537926334476672038533147298887824658153463378359177129546254904633477905444148062297532509586823979834836685837231062811130601978971521297097026908780701037346119373281995739808006408133562575506923608691638392162552380063201520397814813196242684931699285205027635201717558566347593267435050759398528118057803199878957395000343334501071190171459939548736304653572147904733137413502534494977246224429906975112049836026499258781220004978666756900886804567872244406816706482533156131554623538055628566798175091177679799755001073424167556933947015316057516294673910949262842070362109946588467237830998868941695997536572611014830353705969945529373510442979664297866385433391251408894927605351302197465327372671134537107259988435634905488014588909973153835498500037599648840679597255675200940040841776924012523555409447538166873946436880990206988425691436984305548143919110352972296755300318209470318652662339922376781223546290269885067453303189588003748859135850684832313697329293016212353843422662547203984262742460676540013120948115156095020080459340835861646413741972418887710109066046808181479001528741549050402809815963645390430309972349683878466374247759011741496866879410674684834089818447506394116825344869811572067770524230847098866884930070354490414869612460244424693172418710773482821004798187053740335690581037738042841705512981867037155104260842290123191379999893246784148737325910243980544381721119551381960001347339684149122504509097813468069498142298261756787357019347208863573274718359819958497070232397385025939372382318216646687005098810977319802126506857794095552357127408127125068160085311312768717757932127751210499668592085699868988479543549344490387947628781895812614973769408903537657481816218654305235942149462536226922185815928021442682706405192358223220512450854120132353094898080836020670099845251005814184526793927716762415188590688565458475902007399737505834948598391768695574128342895257563062403514700111915532600706487529195385822209110371396845720648268038721680954135910129605817736887786841055205963014238367979086514617587894897762423496371273266087706618419586724534948866939836474899164287791295267952090768105355041928655262307898213809562639502668879172968307033188957397904420972236459353555172098965229709305412414653900957530692490546022622957325189074869605803311918735351348371049922075368875995136599350118982116027560515087791540434300507942619579706438539645654972500408942861189875641040787912880270760556200799300098943494932128220885051546683778049213422946929909368861914355442897034332130055616466048068610522605743357752363666604705877902964179745250552473249414587434633635338802617326647833837044418717859711926917011543783108556670702706396252117627083647128839178646456357012352029752683331272032344975845107048641823799352442053933555436298596443024789894354980490269264925169844066566879983598474793041449437227379625958981986688569040242964020135643829672252534185909271477007864758428756300495981385915360035105316236077303041138108968471589101096403580763712817784252502458224788227388869486128439576971340047098821376718718347675551912024280490125632505525295108003677909434980996794913680867881050764274969171121797484982988354944800183129466283686174125946222741970046446267893801008612752487738115330978574830953999048041879995592457261410880099306515327800674766748848648666311598922786447838312779396441187678669741093004809027688779101238220460743975137411333683675857585585566089882558774512709971371134772587613343127078426142086393468800510037661205235891133436420751640689803235078562902043408621744525821671137538583845659379024281012433019224271010047949659339327174955284281013839039353675202309753576929843274583721148104906121395947639911602262577036897630338013966817921199277832655417248491347582602278514961052489262998518022488196024032801580810907560030371766777288630537296290747334351240398394728922240130926503535669448476104913414289901053834890886136403758524465983003603690324305165099442426054877253433290970429887613683898551510775341259171076279861125402581935280872979026327659119940523034616384859053744704066650407290971639342089119340078399979016639451813851998791918270515785196920702138652619508110663327353944524368130301880912136321913048790992264496174075228380362665418062726330770416034186385463732680575204453140956729283682085418114003633643215645416803607056921449024330623350289812129405655903443690178442764190405632059558571755801784311125420252190253212620487970534986849935354464424578325366180226880241873218228067019422093633205264909999251522740173610865264368350809431885124672580616213007867201805906704523248367500751519802446355317498455314120128044099532683981703465059979802397925153001090259039289178599636549334592874793196071105513881632232835553150237774984180758447384374297618513061581173533950468024431791652503832781072921081055389824884498517504349025713470064698785338986461783681391667479827897633874991417241887677864254400206671598393407239414489975026743507297371383342310794840484004974416285173834597251388125691591658636590451893376445556171757104184715667940352776206799786220160907073739625820961227043795393588698001836530083350982541339142796218040565227616016376567843519821751712106264034351661304885862930367758117151194591959580386528290132703889184523931616463269961569737465282257783893898021649027581566103924155199577309795864501417073541969500422660022794121988470837283113064955974333035643330135710113871727623213204087595998213221764231390958172012898544117069664079821622661701018878340692007868680656905690407606220248428344274578748304059165114820454864060286781637440329397529616018658813612851703119325632280919405964313787802098557042222710377193587110972807464038753330629892347879500947804587012978803415530754901799287149625186646974610847691586368277996423996957931605078894878490325799334901526090771604553418692840229894458876014166540450386967489816654214803604467062828201441746418739884963733215545420299828877370211287659642915088865782174300127967607501441496878988886546142304052442834726057792115402340604055192812739578609090943787897863698985741123614874569001455127850238991037585445456686234564932928831711169268077219871224708641708195244211364005352358059297577740404664690181924889109221878149601443786296724690831937427330083981128134518826396343592333141224840967489745107174722160242648680975898924611896059980573941079372857302418847570340012182756407941650978629048723830126848948667430888496696005733303813135010615340028199576885848055251976950492184775885474456343380513593921531554087616281896585225492997349660325514548337164802355749184925776039235160131919582290629593597436538792660636233280155558403098953358832625539026725449319940227543205572926759981683268274880908753544268412601145064264893049089956754602369719839378415668219839685008170192583960730881944345714098294352599099409090139304252813769885944541729683321035103820132113689241231580220910350007994275861865573053154623543198638416964522405761479858289732286485594705864388385783057824868303889162929854658115537094486368572472959484563266545266862794379492821899042387726053667559584501949868111383473265177877580043713502444913327158450388737205210968445984316904411813790239985863726689655289993411094346609370095019034691632513150479439392743093315141216340538744628262083894033645443765242930090033538373201818410994181610831727997719949579931993552247930118337501877581124862142372798049671410571149239112669532053010466432500637730632743549956556288057176352457911148552156426819885845001070985799561183065749503866401613314138298887423373178147208802231806489029052801281617304691042553371304983092169979566350929730579119942564351780340871829263738532040171034941901357034964116198397048071287326878998800624787796096000462949759472943127391626920801262744504539342813584374260198952673247056567644020696628555088949425850039891718008554579714333852328563112899489060692116542144058856285160425498909371223075759463281283396186817272257893204336065045533902043943335019255585923415538383399091039145219363081023527808845536239784587401968323028411528762786921143373517927734501648345454263476654190488040094608955240727512878161436797861620252309462722385395463760018528369629000205306082698493914574744265828732721809395259325967082854647819628025392138607197351776088713438105516467309620792005311523590651407680756491429388281943763349729894393927867371195063918780802426209129736771793994869160748501339588823648430430454195044505168179861304468885138831791885181382432387268546508595445901997877972292328348117171641525136999440686103492058727327589806325542762013088717247439767115016594759588658309741941649019393906661862136765399025288393920400420561664895237838607240556115248813474003241232207742173412196742944584760467469836757762137631526795936144780003820574055493523270367028354130291484817886250265514374331169878758675169813863657587415878529115954972445080027124491409169214988572933099411664945686672383642392912469553639460529673323093311030978382114700280472671597184661584112950545254334959982061850510323169368788939024909009977950540625664704633331481716863454432315732724619330109111318463145969768874429690889664783791767874472534996511745714756256217355061680696876189708067628048747389071283408546567391308270893716877945393573250690455222045393947264312442320186546867416852630906656955532926670957378996353379832022627721482354044277808046486308906814014903893323434224050862190129820100127122309613094522707250573393802845829235280401144964473162879648298809524874319894088998294440198979062167750378371243912060708086879809574352908453327646353271651622317645587478267603036251791398960861159469104134338142798157686705576359603838656387503812217853768308331557245424736679200615142930004599371146407565798901941647344927520414142096339579567304885127193741024523188895641984589754050974935964652885090280196118363329990150594135789388198348221788514806760605249069695793807648212205965270828123098937678359219073187912708870704869205119785773826452094005140878852524012940782257538742000501167577363174026024806931329028799307724299816290390242934967658471971487337591259300564539351926668968768431211711822852665222989896030566728922628609155213917647782203799466272624956917041154721306872851702413901491920759555211632035667540442408178338017946433333694407851460579829051756723900722706008990611822588997886785647250684550854797382868451315983275740082277059248617778590032051276308221269755624899786644648441783208771421656007157656035903196167622477761216877100980404105630640901300083034520019561002695815595850326653956105060582202734579440851355570924281057303193720618969819226794801587240612460321525308829183111039208722608577887214168666915697184091200915099324223394491359640712469290931087325975970723562281035718498510670299817572741542269943219070629618637572160361250792026077886324193683361146620756167908130006389732154698773148818246139455399958058897503729109208586628150942143284599656782851486520865708731176390330525144260004371717096074510035260290919719959013114809560187402355465290858140554174195471949404028254285257670912436418712856345708040492660041098534554093105639766437155745948294548304843915596148604687871156334614278541375764870546222698382840223248918826975442187867605399111466901057252736469338925703666489606895538485822138313916313875510461777514258714351700071379113675391366396114029217812667002301563543052481489152362315210504508599258900644299754047925053378816106973345151619303662541275080433278724291645106916770794202121051682438597624881736935571524390358047146235892565049807768478858199074512678899718618513146067330144150055611146116975051337928755979163018636807129235929849299688740361455394257368767575809185994900718215926982301382393150420294999987773710537945373812353492049339207573174254502470027109175358451499171628574219122714859520707566307546193354980562251825759323668224454588246866764514140591769785717343360907825151818139513582129300886897241841718740447462062351499359266993090715139226580955320410597398113101507644099925238308988443866638318281488550048172413902835823643615778902525543115042298457090078260431005580637546752590995770612439807260748992191121414908942451616592708641063179974563999493822257806611513997655990894030637560654753217261780035107778381317391236757514938963214324562366904620949596604184199781096419608275649357770471342746439375301388266893155701809058372796448124525223822146149731139734369883449857976967416654313374080714163097148163512458494162099450472266087203788041784662857297457903463030561355388014585827258109511538724160978360401907790173914545299071386143099041994516910868513982396439321684665215972166814324640678082879167366947521041412588115742449531829014388458599943425233765137049626562663040647208957771549955495668855410244476613882071653841811738172815050131375960699701387975658154367883361568570653208934244772973929862154250611369744802159141067978853339272781047417203748941913093500173106378875556630684170358502039982548402431052730648375271555650737548728852779487302896560683118115062032289424128158149508912556051758530297856491927372436512893106940052408152099843791256093893728600697619540379577100431952759353732807066787801354790607548368227840085878511105303847978389946016626306627304071760103667143719312482496787945019660809372197321273305612800534954676392642131255294855592794773468068406382990768061551309326243092755913361273963789436803813506729690627630994310163658281260605925826098920511059146221450512626537150162356584583278606536639747171956906022963893192836085669851397395503276099334371370641452564198452392279314342421170094589452287141101507705019704143505530808148946068463585445603469614802111324572627829228954992723355981285694166089489436742291440439868405179928900972626479110038081094347491285460098286249266238313801482608501557684463487486508336666776845287669513502534832090333508938730631157701290261858053301724595078196115092339553564490633859522622301450181286266926928974599957473011438637512369978080856165986490354985454998287957611009418544893838248501589388952370468982105146168954328497583815242895064290553797573021620802746819547427454204090340141729084334342455262387329878330743705460523604965955018856278751031547620661944710010487164718012821714756170890485266388420811005721921166341488799785128399826239321292570366759661888610806947090287703411866471874637810771290657105122083668892848780273689396430769136167848837581497979630873461523844054178043125803726892684024794159976592330150631236120516309851229988140546532468340647629122159627294124665485737260383326742206157126790182860444647387821713372778309886376591981658981028343998981454807894241338945510974849513720856902016171074221489053398997493566911866448455061247323319930297074475089503227730109188667430790451586734927309162501776869971836421145449586624109122902948516909854489166702000348693239502501781637812027218253781572480585926728116776254996560563877771783842737508636631582535361828115929549442201193442545884311623834912853419889228241656987857471801232606628926943352216851584287268413991361729490384503751085075988552818805871804252229450749903887752474146858887156862928861942532525261894975765842607418479448604826165404482924924503095549938263209403093023875057537410466271911569916260478964696702148053667913657358337958544166586814999131615682788749124413514350706162933170610924340257228745569084015505534797566141619514686618196904816196828582873264997874141460124542705500933486109566868578533546440714813945434410538905315899695064824615376324905591957436907348485915975206171636705641249397637370138730456753907109635719145352026156585006735617176598888168827887377052880996328216892432413723075352437320506051101264002650185250239065812317704648394615314714164167204629539549614331557187259866513650910348605335483435795132429160330381785450583672300109572382736802835111634959810228639949375661485681285238319831300811186330819616871419596724737118193259899943640688191077514249005754500561093682727379650761626402533908813363502255589335715008473013905759874537476136296058737272468012536499950851739047607440516347770473293278809152380126565185810938495453155380864338297782529795079887998680787719302245353730108612026985799088319849399731589539862858468937034637316576569101967957162680309214415823984092285900770376517878306210223401752726303923744338262541534515207063590467661564837967719476176761693306837261726840409661665820399971172374198271513159842886002906375450139386302736834837849054382366666592718451669619248244823331540567439910242905741411358146320740011973182073694573423327196193003032314838661082522631744699870483059830046230116868144765118115337023456934048469237092562185111713451201103850788567465356637594644376373554316542842724344461985322449657743098060460869104449304281725458692918969366914882575854004452048835884069443706507110027603175959066353102177681478280505144211165129824883808120636493995336725445331750858811177850482943591977353523252439564346464832391819422930704572733576767389509381996008692667673285132996856302447347582211699106741820651786340418488392206991005574861102040631123976272026679578283584022155638190091841188224085256325603013812051447683425194904104940644103618906511601927868568157581884528002593698678290710713116979768675411496043559045263047715110561517410987917558205739740858808266357064317257709126345009388627777572764135043615586464386922418660395911091789734382280844948259633678053882625790883038027563683848623551001073256837436225737591750932509621146984035405006079975514118564184349029968477636811559657841959425050283121791421176615982584712894181530520726462522018210521633401909581850644256878902107910971538303662131366595840001799878763401471043706398574157418806475345970302518647670810372460549054875127575860692345000138482591961517342006867099032925751203644165054751978845100072160127495971396457464523089968261770673311402853603721198998436226658206975098423259742084827795650326023936647786401637917182382041447272446310877423971871038870606338843611847574897755648910616354756440669793006466453289310649957297647082056179588110016627766283990997753668546887504398798330684574181973588683343903326576779392421748679076929965985282917087863533260607797871195202626540839186919253060003982065025803012846729676176903137021164248284524111569151418175864515802535198613316964041744608043856141965092758062415019758026107475457989986992402897565013704775497509441151386673578504525683583574331620974255286822409599835436070002744286834358992328367040336680990828342117055961790284465180763784597332388686700631706537628317239979764915317218875170513734152004543297670869179697441469279609703580716060173511409045662783601341767196100074144675817678841038020499924285136022364422146447482694500846366566315764293822335403345138884444440597377166682620815276893985502468557628350828778562000428897030492016149374411292993978769143333289767669988080304309751273229905474293366742995391877261425802334634140101505968065070306828190340448601851709555759651766628283630395096485987946039473681399963494544422107918094370137345724658845543906861193953315059939380659987979963240236261652375299607081137814780000064051305651945493496742750666473028485181640400536998667163515018318139635176050795253213418264078215666453221807007278183012069386370979597670478606816888995201260842112309337455484322905381400141519368080036109499616572910988889638593274821092646019736727574409291400450808169779550646848569609730813043000993559488999618501520249977735123743414317234884298015741609725814447506607788496231604334906658550709500154335351883875502439306349396161620963486144817401107715819539845359459555821482818545341624310222398081755447528812452771957260403730754273114782428702096483868381308598887038423654935621962109072746362321350768310520265276305853923151833480804546682898911616553724703573089487504215938004813104661176286196758316495738078207330628479464259648120118743429517645548654461132729578007139457535132721583925882752330793488333440465292629466946598023040636974413213795279107305400896642406684065993963487565703118743594335293021572371853585591157101690376653635165273866112645422978514944677967395975909893084265974423914427165084045759747956037292929724683608663963666134086921732356937720871555898531581583638559080693692001452302284337486543122994853802041841260815691448025705690944584037654803933841256694217299171697869906281115069381329398715924744041055326060650411081223866812320521110014100395128528756961960954612995452651148824750686553448450983979034694722469354219372244880763901466588375553748578038350761191484287895106761992156326977996289422793367144068270640400513806864291773786249471386020952211526420919157275735930967669878660599212757715055046053973681941586454560317281722734267741293567683340689251094896790187706711889338372058739262043806245005583464439908954892350393260563514672223858742411865184445231100869527167153035716601896499011155744910827423900661347152900355310260008206897824889809700023190155128586869269942723386649923516964285793191780361905449788456598650531118066104325079190564129514025573542119381985717209735790377398205519644234681897232513408727689815311479584545146183387321568536023962016429963449952447805351812510786760094554377533786621177716697082768208346515080218624233909737462791737332578087747850908295810158975209755026834370704609556503995519819449339282979975812427155149459155386474005232307123080177524729907407294356719068770814838163645485124554022883300014219950444237972924794065573567317791950136571458367421129075274824442631696410145962212883262709022095123881900691424166148588534288022446049063956569206659073109439005478858731722946938918330749686505448353405080457613675238175380298346748305173458451282966601120179649344886076605738839887327417306409696280366760798055905651343014112533144902282137421169746432561630323035287932918751397969663845084856315151735630051500605783483734850370482622248720459783266547396217447672044547706903348390142799355602131201305193225303602032288917449987877865575736329774890086141691681485170801458369301124908497700318554826592609104846612802792986812949481040920217737271569245028702004838375619672682090875771375153622457246305191686330902162134724669080048238305596481084104522937362436986001105942407749672654383089952831276641526050376113441454468313689630036613658469488323714091693295533615779830543369781661619289952221257778584670694731704838731028973577514867094137557739546611188074297477455314427033324578810806736938390316692403433612210932498952968972578388182398757405433847527919021402323329985185812768930761929654946606822946864493680953457859404189048556524169343342663886666015034970981408968572647824999266234315300024468057659941988016502018939807669342426729889285427522803139670629863862532403993361488333707182157979334842330163238128133292749826506777745911687147935906594227925343919232029344675211318998747777331798281151712265814042122111914545426754199943342355490648337331393654368922446712940793528447487077535099875492332878080611549235314505635328714732033592201969714668184426164533288043017033592642805917859283177921613847094837191040650743566276510919330820863362107325490442971659406834676677780916995225664337236689235544543182023418527053385243090669058764848031959248927562802095624163569382099820617468059897450646531606013135335318007307446381692861593240320121098381076635242985840163751675332857223932815765420433238038906673330389116794089574574665430122027573100461924647287568494911456113983810442115971941045921892390679273528483648353263815913062882237180879814683281684017935942991047410913286962949123178939645359094881514205369455212578251355496485669210839312269351497978948939429754969736183006659369030042860900637112587929070917839384232049889904099902949690682328469261443751738594716741996400129682770931133679636920402737132511959702862442224072679738666916992717467197325597371187359202438068384026253839707096385793794725932681019487598395914958696505127924969088484877584480918400493532884971645581396419098280680515365422036337236987646190687212227484133578334376925417031266274717452850025129262138843936544836108115731654186501822946934295276613504042571640792342952716461795454081411556292752297435730528212839326518090198626088226517739980433020419483764301144774868269101229931743562589511069886240484587763352943678785311279290710270208850288981039168664784156750940628697562482975215428600754365226963250255184552191920895637521811817687791264884571199376439477417385100434235368010989999058510449681490395668484841689282881135943200729396419329088801924593981315135847101394184355825416761821262447294811751650507096819980284989161552666598895029113697137447744983399515490024048207059547311010175968239770979977369250075216950198001189923827575834394405150686060331710325721713461415072704390893373099474430957615897048870426681446483218621207821475199959614341843602286197246282849405126955068388183751989193207217272209256732401810056596265471119356564964026405986398441402406450209495543603212737212054811324281653330448329534971450387254159532961589530385600501400244660911894154831543413178925897869196780333619389062127933173285399103488830439292390449866715740743210104533750818619561683405976770390230598982144005293226248696919119913794597677119259947833713892068382482128509824144825438762087854804572602361782134856968414661720753666043950160144203887469442677740534959235061135189840075889581362822865319056812535333311953662096968048013554416221359292616814635599938707248061362992851274667860112692017340533239433351733565779170098971747134273446706475219180807534188320369794122218426332846765343552470848713563517127175452011306041329032367348207795625691822850311733561771641722016244930802594763666081449156260993771644098546392856960942574136655046343361063512232272635784549769695326376448732081903588284843572208952212962721482289953033590266964173459627715341726451816069368007531653312429702497007779627240929902508729181468212900787551230454151087619835510266295747711928423318740667881682478992620301986101094804990200632349319019143644349954664455570932130236795237905663417836293607627829446358215712136689725239816676793984047013891407043163994676567641259967292162881430151100364357033634961548941556596577449505186222264735556188941627654460695431102031384863426931958862050626472738292826856988373506696960423102007211987441117650794542645156087145744981845226930200156567481243866911523807305337554719365976421436372143438497708367759105086707668320813189441317846617969653692935915803138308600829182071194546384368956346749008150044873020689379674188149805210733309530126848158393139929661095592003853464386966704165890894751179248955651796977513208604884691958529402657732187406930748218268571520140760754003753906792686644576412473581101494151638006379902146989474324690450477775426316508040279004213553546355274197211646655526375313000982895099769547475077416447574396922185054317888804769653929544573593854011842189420724406397778583401249296537325925481184006957063662482270414732396119551751198365752638451602067449409139528949717155467280167939751235371492537213596585615450575364398472305534811613544706508115042962178586127697054666986300155799408162618050053601159760110536816189063402427416043607750392490268942676961204841886671120964817954119211972664787797779075383462624896346194984862010572891745258173367449104845276501007787936006099668146538308428874907029654979416780050433347208076862022547572229723042227133172724277051972352191861510860866742245900859903826965769739913702640290686231383613751755302580303058949099434362737815030919422116427301368555277815052574091407377147333141835124492399626712419361064482660010199001851847854847960331389834507926868753148046410967563318914682495034936320081910051673851526964387664438484130811320828136129967112995515031333435792761812848918145698501678347967351286698530052666572009612049615813724742831832442817591465571737020194345399587955874774503088979887004933966372292264882072404465744662037592038058957981739419359935333531511286599095165628783460633816498794369714366047421712738044836117732267697464239886016963537109934217215194926293052742861500990906386899305806838792091816559427047076496382740719288471735369124064869324768441231488727077820440493351674085890440709149193935972998001799942183587875842470865996720994749675893314339279780123565843260168125294053573161947885766358557222183993696638627488097947388092690045570357692501707741732132758248487671437093732079495049972704412288769818998439916378604087811432347537385630703158629314363092333933921116594659519257515213322593926977016568609672798844167631286731006485900100471812601124623458325858909564872743954026380227066487752387499262320653076732994582251198318789318216676115045104428601924757890768264956459061242449027864777215289715940312902967246853396704991558892345927008894051536935254987546449705429478916305498650830870480162446124932024533054706156019483577776995672055331825623336215952264844262036139094194790192907737368695474064518704274778946540009636821306770752865193982978747252052500919339879386946362090571840473262490702251241211812133363602928965711480499117600215848048269499833310223346904315563964879272251427906925200854871844846080231835918118314803237603432529553899296507675654485857781349471538197724168224494897559900187065361022211605028393805562884370431638914299162555642443830520376424397663023540249370180298802386232526281479754877422815377660509746031807240390434610874649932583889972587510463291202310478634612088668863750961346407579401443700606351644379384125358396037870819984107648487446236306476961521869152856764736684243732936673882257000126558801411042566360820350101312902655160952464471755699154600680650594054275962131346731017287086154688530588344159982190513039694337040894448203365573983491931564352396333441525294431641300542678346444007418970286510699044004361454537885801358843451664834564986902285933166645023407546853273331962616392486306489696830425158933955313405592877097259663194122148025446216604359271801208543185625080008871089194057461583607482907991450781367347764293668284334477974863719403002711114039745569012485038250808595314042935112304855456803680399548102898500335786138225343395441497128909742755460554631612881906957260230478331070761357823063714064677779903076625389454886663812596886197475265772318757459345110249005458817347862675963772696943933738037709816705353882652347468571406052306844317110419993789723523700385477499140603911030996187768241571664001984604074297528656077946109678717396114466636183859261494000082908441716801229982294353005766841018964523560055514479460292147212307418250530538317278511751923649132853391919278217853063102176647685334065838908625702215037657514073029178944940785793801669594594942446994050180739439863334449532438600717794543671599900247967862067061675350949886028165085065461517449655523780697980028949422024910200717554268642580418480919070829693501709232729128564915858783299827419139640336216799453291933078165623202022128918455619418486986558354585709466634464883128814406195263213385638711095114733086146596332375947432024150347495765689073952161502607306157645912753192449291967414021212952868890049043447665665306496366228733426789949444854797737768290208186451018229864342152362259149077681953312662493930936789776796439204466343635504472803333848314867908063989531046403712478225875707984826782640997403877296877737972271226098906663947055954934260403275162210359097620732247136870477892000240740101390114524891511302667584301213491118836922057948082993804429181353401178453815164455837402416068523363913961577128875995175894633314765069193247241819821216046869174649336298432153689010212647501869680709443095392894389384856549299754895552747327183681767620253544735392517526469269837562012475554043846453134279048439874556740711832355093426137820481256425526639663579318258752146707883819005251081963342215415571666043087255985869012366682037573362138895796703059576741103414323496281521339833539944379918583027607643139460727980182337632735915923090383601958859571493320300750774725094278947978785564694335152088761976401954326158039634078386140065232265755568109348264379232290713342424285967407826190320760499265593258191003760988259494598445634133218129723063362136070667611587243358518229682893215273845544120892666887879445804368079558737633923173734472779597118303051801040205248122947592756660623185762341069186975318234801033343325477174547296886102310587887720597081506729547661506152245871943585784662427803816035717148729556354003235478158099107670920990517186193174924986568738922703998434158812785965606051520452809542307721928758180398103676966031217579067152485162920346396782998429001883577604875092570387933725854324655755102658600885507887929767020045991936296328901003898334401321666107648117148820279224172988042653154591656631222099212723966727843295751240327819442854313404460176737338434348438448980974279016698303767502791950884418075216359321316712594265683369836995226860741752075778250487655933852910518210552015511761666598141356525992917292211433160994301886862793048542652665240158504452700616680270432051184613493003361632267031749213397652378112520754066733168047222433031023626042732086710425858223252545160371984070718525355604295469358484591282345436548781748928737629662383191009371167219341047789827579663762316218364212926082498188923899154738742692633297009928436064317217920547474257176705133387658003056239961770757019302823872359593583539723812246601377832521657888415801866760145617058736009497623694964414975991860257273001491788853711431422316017820971058281998112286156519495150886957513239576705653245355610965514454562752843652791196666976385683220677124513992704667173441922623451643730640930029428206652821476326077645498562807957209566763678852799523321143345984386276932746421730963818346541999371944926703572205669633541779739128350971835724871252105213054602636028063280063346171070566606308072007571143843798712805879381487119711961589253057601616085416707542146856988707270298980161750359191418626241878909313685432430120269825748821581667265507868158483602149148485557267229335130727070262924364708640764178646096543875608649640517988223923670804130665116637288622727357345016034546204057173722240309132717469442149984283955091118708110992941242776093671746374705765302807576286726114537207562342324608950052170877716630439756426033789284013338496828066269246679171193700006260785792946426019421544810042325034495650858465421328194397087112344185574888758818841789863681193469100661109237559986750851931452148558509857123295975068033954150650693535113394208482027629845739655804768710522922064590943165379795638243311792484825770411011671956607197164537571699556715888315994773781811174249963577841967501715753798326681533987455033294917983764750215401552805010053677602247112321508231895376560582856884631505149472815752410698955197836524489561753934923256866295244582926867650155514603096973087153030633003554386696209289190003080567562903252249154631651343192573046187356300751218615566427390358190022608397326466124946849401056541512832230080114962130144284153390752590099610979112324344959574266710825634862809636729961735120182981040228043720694393085010032112835414282642148643030600401914674181880177591858660114512237718873668769305617743811609728141132900279443647275406538447420340384816781156632714920861643093951781438724118271179184062459861525533926994288427037931095211066508050343954315050088134385939474091648854397851688769772309269748460322010169232000971204903008083242879722268384522771313273091328150074213143966704293621872803521983439645116250244601553889663905745455716027240678278288805544716969457410834058565521526407048983026104383543949914681088978360782810297258312437545953839519968908931371252675363803206002209080029242477549243010634173612589106401647359172115260923474177524431782624261066606563625679018802404044706441756792783751493512151427158415736105082827021475474677741415950358394763172181735006445693042730244372489170444285435947248106063558754156984982684891632048253712156347370639553733433357172501100421374018268534063394327163062663421880519084468564149177817276590266098322609934217183581989278156337067929199235792951895336933938174340213378102922975533932288773758963024776169483394112944711954775332224609852059173578169372312667282721293503138805454475348516043456175556733201200805337912952779225676523302793034813689650633428493745424958081889988628173353002302241639221799399010839205884173064635341451161481825343705252352266003250050462302450797146088198567608924965748144289851960334538710629321994515333073018968147773614787346586939711631204061160853413087580816951326775344027384638979637738919016293379222339587609246698162779108515471607602333707077336270792265098180431460514304143679325997345321340481975455936368679046658445126185382793107010796921412222192779152140381665641844412189433616306060077545175640684294878719804606248432841852058058645440637477550031940408779138635654743274284945607639640330030465986425832263795888682987994086221994773333378296660498384028890599034387054992449344900915495691761989442879100615188250412804831558900684629329222464486517535622363193477427705900717320823162319746474500275173744670415258578338807009637920832801082120884309658211899583032035222541099816863970511725337168938646763318501047613125041501879113012587341774516729915825750397167297487529348086335087681567691019668903159094650335225988674336795300414713755101490244806390098936550353581838293361756480033952714175185827177310632361481657427361342768519456697461828890912379176715104765431261272463922641302397819225685733358510295670855366548745633632084835478478827417201320404379384881794530912931464091518268851134624079551371814598031141689527159085743613307223433605612037016356850789367000000753441891812824658999876508425894161617644132525934395814314326243531691928995990415013070159145382817326378315043792402583343421149251310792752077150783823788283638872556091377884777807167657712782119169325796709343541944600159436776699742515540295668544741871986705495647797542295482099941370483107064818573262225189986043973842826924802182793569281107214182699189603631127836854944977674498666115298271362503925350301168226213248345286128890987419755138689163609351376138931544897168432577411852712445055520653013570625349209130273119794752246269448524183134314876918472026044040392885027261189949479059473931778456844041669227002226392941425942139527641402858153860211852794892697094371823196983721803050895142050792569444234353423100799278732863237511572608361846400959135022473217467090388328483150347792682987445324609331615141914456444699514180958646117759157032759596809253186556303654974301377853893981887870734291340343453724779766116366688614055624361910176644495667686956538237072617444026766842911658041706766139569440531776848530078477483360659723111283899105664634815224393236131274126294468861039082785684579598435782891643231035885681839817624786175803647224752713959953493967596654501567326422799056726764399544450488932974499500689345501342854329513726437213876977196140984158156769407667270099593036134828651253866289310588595599231962186474700576588633051274295726155737697635107284682235111028828134974224818329233748788518058086747443585494521444495396641913790040972915760108715409655123730757532699817161994550843059926623719985034782541902291950717522691638695050871654077775018205978778380687392906609950238025284283142246231132140867861664694181574196438940572155151424882964224357091855990002523273311808883443015423153925503422916070889476308416165254845719193108652420516985230739946921984494917063555249160488952081871274648097032322182171479732961275936250221837175305196488441076026557057824367789989357301715209110110905138851085294699013233887413051551324713821433232465438239962578919326114641335057645897100155167382695465167545097200587503844311818093920758033060644808102604644389032128833915786283247790598378421255075300159982766370242293066471726184809386165040465177330156365642107775346168700399057003977197565868021363116690939776195901109410881128225347823907664722573509115974175293369179979860787892989442169447145489558899474336799482627263871691467146336006473975170916005537080958722801608999297066197401361802181468363880986133264871823909112274811767202788680972189105689269865418499414731841658529977627104671757587115521659745791924518067771061702287142622570380037282053831978012588428270280165452371565248120787411697869295071765930271541787322417728176199790997347702198901847059207256997963868313550792828364457432214702250406133460805550845769068153035333156308912804990647959176919620428569375859684667262618638802070861967169405577279527380031491438093080444341356574062068380388373988878817677482703312775446334668703160604969352336122867414904579337688699095900321024738340814046192589054177680969220389143968647988299586369517949400621797725327346052652144321314468124334312866509827806060909856351093007383711024084127900227513432625096357450948520577615003625975445705205834726236122548213871350706078579987164448389061262470188939261139034243170274140206507036198586375993534766087137284065280403643687207921680111932255462858044378865647608156253001594045813715230180041685389702652151966374438425422750982585192096602740661105360280766122683319770568358844073044980181070414843111139038620817000233885807667774778041399453527937825626161622306628871049990060065651543919302898098478753139888034957251689351510034235683469956900537675296483039255142223203577801040016106740410085741381755131484426753855216841026862240449142217720498041910537314327246781998379911756600921034260723898219902030120809823714251591284051792763600387505946981620639909080816902610920565277191114030371304574846928901662575439550411716447916773609066046016271880866319912156322055939835243771885125280264629068549051540494041529603580717884363256387960719797124602741232317853354958318835490005556750009260627034500453938304984895822605665670177037324864340976241126753044811082170808528065699821043877377012709116745909039327370725410572285620376971734983566350327622249712520219967987768678777814841744026262255122511375815691009411534803726723882446554603929737549285199182255524122602755409353199388105758079000605324237607166012493909474432575610623977402633944135614221924482060788967004501137157554202333108255141929556278854958596729243768611905337617172190948557660871049767255347522866140357500912070203143388296775786985693300735439902158033682886204442882329146027788138125778362157700579612775379065673406379776387008392100594767462243114623964570379604011348181656489600992072390525622648356250219239589819111296926163308630385120302295372867575449098866669540065076300019132274794720615564608195083646400207537581942005596969297679651775132508504522076826021709333988086015713292482121170166018830110241502726477365586570328736603659188669798922935767545190545039534465095780816736095731844008915415888153422056393630302269554770901315303679629491228791462319719493347625857590056106613311954239876852087802525451611139261257957938519584703267566801353752537824043117321750868164902224272978951795390992122923604275650158132145439865368525219345617213190717599251661389307469554382314252202543566635636552453793738907380456209451739383388818871074919561811775903395574284340819193187852524937608499775380166489307461912425639714553719764173395896452300054379455790528036244252396946156972407617046499327859150592986881507209291233656796880832356701016315059167776972791255415889129718896230463761277433976125519819501108065697441084268011386537226556740322925584209177107005240335838003001908142187610315691627368922141718041236270729538278429207543944198350162932876729243028941058096818142725398270458986926097935852579124526301459931713341653684194593937272015112055642482435822559579627813094465359859509033360625645052051712879212033662627332532043299217758542863931123479431905442693392434862303324537794398258802562909059435818390881583018845759423591139956210688166985760149693802437915874167311863419083232821742569062204461839071122880050164591970267934487241818503947083972493463434305032990781336530858186733670881825595982387372884989421279691222323808168993369605065171864578166832170476818833020927932871458885180932411321715393987109480040044119160303724879366047863325939189604070262022644954621960274787839450950452212658680828965765517055581795419671018157113793906241240421385327480333595202631203959109531318638855605050691622064289068544347175664392598359410023756005586084012881597953707267184982169628417501889363424796146283282651880677523639737906230037025623638706939496936038973967876631662165102452804312810142030969282624035016045667035404786606917138112271241887304834430308449437124839512776422372541257800086287411464819716727545035911476799866059188621994786783618136502343544725910184996685013291757619113442710396223056520342713717140097069356405804162725520184268657708953168435091438799179335574695050698268368340214800490924242824266208811018687931878771816427502702950720766380744529399287912404493985482505660636276050527070467559818258212003071640070876395207410733538135374799278050161864352876869901037580068197239820352806704332548349264445814855761570086872907340332734789882379979856922808534242523762453124528547108604306210046786777792292202184311242853847083464964734228156426187194816420118213218167095853057387415374003191415048146430546479014721768164381141134217296930336818275113339421996662215387283886824021651199305969320738587145495185718520896265073062441793750844407847555209027290745451977452528212232848366287353519042011740468168223603243433480970582131598856169355435390200703718785860094023047464429062601644452280104299823149948247813046304947674261583591769393002664548073567911793707982675649982587916073944988196375893396711531104879600566987686402492379062688520692093289208021958234813862860857877032876868592438844739836283752224540475072999253645751976999000711348454938173222770733031685571248154399362359149922268286948589650542299936543245930654011984894322721265059877236968253147766457924610908532459059686162244978806747012685770391597696856423123427512058655960725547999001296914013457223385543714421706643298175791252754691297020655125274295932389730466403584234309366570213154371047240953059603762378562784582717692909740635470521525270245537855999369871688615054488060025887059008037807225849577859532746751022060135707903398151041293963664482760504637749157833952244836584238880676992916537409020340135976128648500710154114143534860947024626328379026850589100074104645338695373845771392060314772481448522185516417908066557235620849000488954596365734371132761164551016303381883739367746362913267242583735610340949332625023170698483104736142172415971448862463525550510504060088252814517943348945402059464236318496822144302276956361736860557515151976812627921141336353741417204660384318045540567057683546350678904390838747127016372334261555185299158791238196112667080083097485924135030108989910612996140210266828732814219259132386385134792212727103323213835585514137514699905600681299074565693709934387102561945595366590269883202405726899935187073054306087407031665861868610620030627316411269780488978864217091685012976102999381312007523376339388060066122682158228910693321472356826363034691841133892797972898930882579740132309042633283712531058948188837493016548461985274784021439104210216954746684431740941889813636768749526868839053900670967608307537875666561681418499066527623415694811989214904883433641041025283564933905902931219670691300803078816210673140847828986266010915533064449365558509257758500018284492610880862646206595596720379266199108493831607304230888518696436445982184359063977712395171510179490426897434579187754712941432061031434578950438514136648511823594898848214869273105889594180177872332640966855330297082602439419143079519558803325590753888843499394831868822800477804602533380646332868745413894419638083108586558287478252627610196788584475522198219846940830000303588360679693343907818117289335034492432308134717669715656021574445343095795989171902949467357825410341682410130479148481255744934718776238143030028464400878697728018455977124726910003870493446590686423581947457382171120498373795650796886096712860998228121272363850083301587315511186515793332106776659342199496951850232758876493205668908536118117438256570515743737426014939485781350775006303828784556364004757672912554667089576402385493203546159919755485174049203665023084671641266419758467001768960910126925541694892900820249543062033018278865328774380648478629748727878691301469662754662312071506900895654661568240888864039905478887772794567641036344560474348143310151727866955856624177383729502608028508030515775718191327458214606094122954180265923738959260426178134698983382602273742658207114663135873018898632554707144563521632582130441962307956526761306445725224048279944215125262346349124969974769288681965176386344129975455878173428810488255845531737730651971230222674704298962096221956067821504649812814640467071620628370446878914657841386692434505003587652420814245861360607961606977332627826314188314712002939009410458631547279056071905307941935751314328978648189753943756547024584612480425838794759739568011147789643765277251275146909184263386332646914191916060013959139675541283228662771831124953692278471793779865779727929152726529398308787038384244662498378832419294267283743057358931402260944514280220268922032541096908768293677650902051249643809126200585461980447140154283000062412267879260809444766596151708489616649585796424426038249795285806422020702337311703798668044116124306145378252571696672966647676465609152376719958557458652138772731848817707606376200782748392079887595710920879663192026072814762917118470498875450634309102670921093161748785438832936599377123739100529718551746673866969956942112633887617211397192989501188359105977351543430033882164068417555585155168915489221102609705848682808130795957284501100158812064948439853579670017688913827981925473100429569104406241052718621662496309696410122540003304617824332317290885413146872135134482520672579068016773542326439800877774731076619398659770792608680605669281110987778584357249286494269745474971348494199135602851348547892490902645829716063764923392449103117419348377673645150341180716056932822438369319745741795455510480448155169428508688826421481148145834821716403363295098096789479943744875701239534833579847023961927850196493917294676904829842563807249276404094861257196020472033314154461685880908491384730413631775870045809337599566458115349873891948475292710898062559808530479037081318009114027463973729527147636901539510977380864231945264388126047312049278415755705363510266904744472255376380469811996075520252352144259302581694624500920488821094057196809639986073505913829845684108539906407639861155389590094551545150076335093727558647410844734883880206635969415841848931165759488374613248162868547584302502616726530454825305950159639435849784107543497163550092060000387715408299510270059819323928836652898549367592190566494454570889435887248913034572830142738772026425640126223624950601184233895089699176474374251288811805333235607626011521363023344402118168214750473404437944327675770524112513526983616540718392166059801393304202606350477104432002152592072627636055173685566727933473929172435890514387973399862198770949957008720791426244709839608323920509445430302482531783774067242094639138039487589269151438105609383968497918276482912541238638903102581810014980547535848752473975446214193562097270391685089770151091427797154616167772116546615053032226857197208701238143639033283187900592140683358407013161781676032669410022568736208471548061924011384028794478083061093305510464174939383013429113155074301341697842370165576904024291716739659835226218155180397751244553419851930386781341201165489631456276147671808686810861245105238932288239757964385202398650493311331239070589233373868372318709357002778405780599697654059700195200787833667628300215674775322424721718292991436546634996428749762710121880699966854671185683088351191439582867471987618748904584365602862162983216278647495506483259620757759115136912495237793055498285453749948053074329467206655201421172517194944645158351919000866117322288595630290991380686542917640704829116761267961505638274442662683789537124959735743232266823083996824251619346685140951138153041265032817353511052347246906720742482878049603564316703465386080798073325055397469715507755607061552939954396130964461925205419765969675304204962300494776399678217058271216852520440833287609170713719328256711715130706707429631919590419091430349073839050561872002054090909459313008150096415091972109170804124409411304247850734557590423949869599495489938552839423973720220888021465685092975935593665379573227933645851957138658486011377512468197379739215180397152101039567970008769171704861744932346891756857552218211329471702900265349375006732907515426358669874365624358848691472471150676878364151336914726813734649841428160990011360728800255622885239504933749652327680690936235335191416283937931770684896301550364384518988361018622076906448281243130699129244391279862750960293414826048360004698228726918233604652789858625209361901455124991091797559142775031479521294057617150534949026527579866124366604014662646781187105809446896981440274950669178698315426354628369721845972828775087015183632823102238234174903044729953928532085828293502007979385548585107663126047844834262619070786988502138433674019196723901530766407205764061923077587525119173657179441501509032631206224535931591456842638596037975005625902377261529108398578079910194289578663158544438655023591230953366726131845689126716212240371759675076640962582823462127151636441817932049922735659163860240707173704819849148267254793226761576137825783672090714815629475377972632024908999311264094225290727117405527688625365484420883714555125316855837647425224905297752057147986768846042528283371286640549130589112945854383884789520146091774007947373606279576608295611713202476898671380361741972925083071228522309333122009733803845499899054931712879641963615033874831424098449319865873848759595738502823698193675714709332034927247945110182685432640130185266989695878348595457243236249986674204862672223830301629267782003021552983772655566003864564163223607880907098911139785845461303286115927001259110769855780332544279282352147124452319909304425136197405824104885047872768018540060799246830605456826339102497270839972752316346269307228153938867350832740625621691936919427683186986737708673915948214819018639771313867646631635242290130243649316588359284079980170582622302824530703273331434412062952622774942576244655236554473716325239125568112692576567722565328955211421714472538820334477381354415552996231237064696239053548382602634015711186867992929426913395652290958498783110910051837974715130738962076166224769408678654382814390916234951173790876813733904095305534699795883084909642825069217166231491398328501944231598332073744547405161068949384984936069827950515051286983745337308036922660562729797352925636181597611038976223958552035151977823357205699413398779517693195122015539701903433036211790231981332196324950982117767607051093298242586467371781228399220774485379513792370791977065028317692110020095787565962635512241394835472793128198947554161513318342390673346463321803151117484935110443292489909604614911297584266864013074103878735451290503904100436485227553813074426194131813987236206465111760353231491208397792114306426987577122383932928826159233678341000095084223132142907241975465757948141497605465166382368351342404715791327904179920360961015693132319709688589027389009255947692637336841527592659533518240642577376367696854096815562325043138978092486058971551326387789853252225701788665462316720224859463982221834215116127444484963185676079007462082223606653165635867592094025363337785867401125848166487938869876980715951731479949269282599432151425016951544997280640177884403927924477745045228106905595309894203924990739781687066840135389813647541361187120472230878941430192394110631463512211521669434415595926802276213512129447750042173166564429559648305143656899792937610256369316103249609166188508914083028291136528721791861425830227816606812262414125205194672041270110698735754899106719159773616981284121390561796218296172371648899766385981160871314914322459579572417685739224520685428291244626424235130431840472117950813795155586287790547702018334344340483026679064459766663250265757873488289320416596007269341336662649463391340340581801657307125083913329581514973489482886059609233336288773524652619949387658820076088629070671912432455173037334239858991850246533598911253458853833606832089436179406614395044832903865171754762554889647133085888989146985567560750775193451308507965741063844173107823309968916297736745672947424392143058971914593131459494128361954286248408330816233089126298654386399489410979023602860809783196435046504700439190087112980162773025570068366369437289266959246818801407319651405537958013328451870313751624488597175618655910967743050073622566649644455032488721608189739325285924282219993288075767596278935990955636453582801024009846933615044608108258386654983106498273938554166811655811814731768223354970504008980632679144449707240285878811187884405632881311757942603082750280391196615155609466760785094217205521371443171747229752274249488631508838796618418572623592412958819351251939658339080161744074027740953029314649528715119311516556153015771448036909401665737188986765795506256822825194049675500597462198846207420053383605943696273110538128129348200496418288996013526345690211930224955571506503269327552780365869588875055740584633597149208881437730846012974048780389971114366254771251657392146739487492938194493186003636297986551821275099395675180320045010055833096156660087335028836592435988126587306065697543247767016530602783258473625315070430828239027028553126913164498699081792338238754808796683220549569022016931875743328461972124022606354815930742455465474874725919314589187551492132409715357524833297448321421991401384360005976995010705641767344654615399795226217389008977093158459478719814269040276088371696497572020226868428278815952743534899668004080515740317387716583808065132661141533968430784542621560857506216752681785183498059846289935736650935266490399593076527530843241978375203377571365187036688062620706028573136581520871461258881368826030833771946481741904192025754101583943705263441376098909550650422611207635972202920810410583078683361642616170491068239695105429946112971353600166938815085094641141499199195824207056403206976671673433608661959233193723042445965423437153320724206921382240487616096506462290443220099246666989869961751351399412446880099275689769526691062878174340096746182660856677110910674838245038442427791976202761925589286237596048295887622384633240451047557368618851913574799805594182681430657644092581612926785653893718129839575889333908023680588713785490836007525369927088101028263247446440341193826843696795387595444927122260647116101694852193287690645630403888490455213289479687932227248913814895056687897232608075478308313706490398468992121132105718471806923106765273466004169541305329751261388186074254324178686644520814466838600429547102927730528584057430746687083852431728312384873910691135144513293538189469987685810878958172065798567309494470144889555235506525131099733647890768498719559195403894080768280161167568225929193413945822415829435422127194786488450686111374753006038885292598154909301830627733397771277067672788164435070779222633528367719084257854408628929785219502793530109162866800861676249178103314128181315480535356360912469625749530678447333034747067248302300874190250003020634587247718286459174072119662478036596276629708092577720911076100267933938720551461168390963522586010715141168798812359161515682030096406479272765618064389561783542356388063598943823693368216272400509543126168946104233626142263195124428723844186712223052931711489992950797301459531685796319986260194916035305450321742172747385608582456215243820758641977537240131887448858928903945211631491436520937145035675862350889729881115249775356335896287918707912144368652024617600998813770106496431102054398239045221895959639623691001307864518617223364666825829485278732646260835167754062522548878367072502412648893972503473765381173296705068299863140109153560456152469815344388871869533817729374654113304374352311110605269040944066481269375943952670729993160136761107609134009151365761268515473705844785263214602527606573807868710161592771529503752803168594135779055686103393417608319934379982226670053388250677883182118663077434528533443099952640457910268828165961418575541200851612208414531718237778293156692638393217490149820857565710485817375188153765739602105096444959418559956755628506177542609880020613411439305061522076079372911029631814784913245096762591596990060713958736318461893312544222142277319461731165672676620772292125814345190982605123448612909392071461246361228220837955499631085980522537443077077918397662001407389318310072469870891199747644036170834417043181475875323959820430367712957793574567586956274271589646659257350382408018696438197342429618598330630816127879194891777306199782151898884526956413767640857145133862531933431168311619373731834895277110162086074854804198192852733124091177886431634976442875416324465830673267189326624730903776249092209425845687015434431121364901031112545292245148666397731306003037520024280599161307964480504015951218961634233884294078488705536673168712697729985681300059008521240675188729643683877610946482642233881437985095328828035465263969365035065231342759048839317651739202361925081654140621295790087418293768254372226452508225526433030784544039706803309165674431557397104065364480612228147223478508211313730320365783478915384704869552811300392677223389113403454357134496464983155656515382063314847624256718979220946571728331606828111392960683644314570632879466548177979497190920779559873273186711345120567440700824921247835390693428416713940186229752597658159360638801483096400498612215020750868906620254710759343765647938427240397735062622132537939877194479382717162976671554637290964347432806823285022811709822992366234422378978265679970106194352671678108027605581550809623799456349620588186601333348018624186644780179927496515740462749812009794942438126900489991856217741320532716854267977865723988470162979018065143494234869361749512109286389700296442549945234164540966739441548107627076137533587465386592891509460013820330556659528102454008731086314200430164861805957154482418256572722559718603246693815783176920018209442981340758049736237825037934457193712999733141613583366029381616569298848744356292712702037384841887457942522756562352997804858223516146540605963209420447208783035528711166719704207620378403416026772344527123654846034327405688192731466021875093184302113257449115617361361155418987524974695584693916917542924175513134013118513765337098356187225433919192169341726396338873168760264475507366219873332510084750538515089286548749411038164397578708651920204636282086051973307576720289130619956970448536516539160856575282301853705678174882144806527156469241524069586478527757979939677705494744725553126433642231069584252182396987617989490704177126197140660470887359723533242690944165163898935808875346727236933736630332207111813352814058514461151495020427125415481343790502715313012965936349283824944079610450885677029007808574565460254167307866421490869708843541597030303829131866532936627382162971174952228615324092471706912375991173376664435638149350544183071842185285060641079549674532600229047820914260209567503662732682430158370505585049101420425340760463803509244235385923844254128693536559156721123506855051661274907137720094231902926348641095521940769935887988299033239297011528361867005321310053634356368468121928496134286159751030429170055310705881363649487115795596032092377916165069655954342193765151588209408915136908458415571151708102238838861487148796832918515799992660039011659215484045695235143723149606669394660619678004712505692470268657211021051506364135894411563065248590342928854664251939779551680558310030767538058296561896211468671684234168008448055984695683589381256335082637491903347983079646220207543050731266128261591231802870790200665942604818642213388224230983716109735581542324230342852649299520241517998813920605974935871440817902821952520861851230001046368648759302787486324608856285457101197510969363412311506031584114112566149827344640261020786941887307758441389196729332334588032211789858681228301869178747319142099668246181653433485217260645729481105615375090677143930652491456669920991897175612625863762043695893731715084025456404009674614526095345182885632849312106964338997414310156084321570321116324327122597048255693146615245031412004269354672975865892657076653365646894689138394807366259627140998166441016006181235127084741576958593426052302393498534654864515008935793514127342014940155003411650103271528842769323563182884685924523120505914245273904835342152993725832389318681490479646829830991837866624948172472284812594049599554624403595676908794205320008324711023161476134404551437663246295575135005597633037357353603923424883386169410924721719389190739270499688360761223636705135399789752630058812065110681474075686314893216535533334220713977207214658610361523271480165816969661991991004270172102343342477617808504428947994152773634632088878993447624958938241583966409786013591702084737148798310906667963220962000859923985414895937262265093949594860381138185989499944374312513548237924734202494346701197487126689722915125640238017357018174914710128458913306252542636567680869045585448873678717842038486996185434688913412650096183057503154714337805384415434761340016768053034580605436286561398164073545724456382335181836597961400783170889376691279301033506860331159977188718103954251023569376639710077457340757015779255169193004578220819831228408289301475211179925634007693541469865407062521460800401776910196484426444134400574098249038426556303996177095646567555504832929366390116928118082798573222436689426257835753131110796928087200885559546337478806966261451821246851835495431187064719444947605911646274282687743439550603119226699109619517158346765241263273681038818031678706267631917120784368102987861118362059403646905576160988111710696040096712204558952558067735348201673860633298991793436745010005733430821090037189441495287969371605085249946906527032577315405248955505073357552790049837148433707727340995015603922949654680709179926793071779370749043957923219429502076235719891935589915379810860843678389886844572292004523150253197820464373257296886950791663166172681153403501425039938388463902147390168988760889276568285018735672671319924274762160011180140716874461939533421028091338442463241498749802615314013436679601046906395584967447513959748641529947007856365157743222219211110243568553684026532032534280547269034717829271397689814420942280207423801697563246292529506330959778546232352509398931885046572262774279334539600546056748390335898773024288158743175499636628128487006951913852341293274593526848514020753119731479152006464709223289853728576177240100981647972435389524597022677847188511834781934482117364795032520279644854873918062081956694266056846725710457930902216052833180012377674419066098383092174071606163107445423848415833250243395245795766250176458352496926225329694227027964778029252965403926135715932068628150505722089875994912664937573921171512460175125809300611881232536446975172658100331695484837163106293472760055776645047689087019870569845875591876427679954647330560298908458070330389256977733998518979710217657825271973810110168633157785370760421250454411250813077534158906733864232094942826891143102272545157198878408829595529833118285823821499476396352489636559690522527308212247256010143984883968844801076029453149072489916103027208729920968695717440941412499235789508591122931684054133216278402600166131894927538788134694610383965124072695444101320338205719664857899387999138057201244657044715168231035588705674672661189568289880883373382442802341913832485449392978056916359776899152464455299844083712374493423404140035433089629424389508837970234399322110164870345137742972017963457615091217995362888713125931496429250597568163704957683552846981916489874903305105393188341743044574665578591991914989835975128703013251031248677221268056358372374803303224955607321184830207377273026384540751640625662513808103650952106374329094279070495007288201682002755953338725826410292982101173603018919328604287023538336282038084885594456672905899833899939748617779543673951511162779703217469837954096322448898673283242792783716655374532563052346439124891853320119952016414975014352912313938911009772362071990058752481125378283639446284582147856451620169880892617920049614777763356743989388224593264591192245351484943770836335297496357432333080019306498644198368667242662256019424842107296629839532879102415179459819438295011544476320432540942014602434495743639660308001990890843265640651184451860583552891929979269623910728501585985888355354575188730585800491018398296799129324001202139423929529190143992966995689326008771267648897761376178527434553813947857694273964800970659255381724707530382251832653846226049103305291632804463208328469385911580419689879654009573069269753592578273436832800370296473432269817458229326264845385129776249172945970102450972293475053963849425464312709356009581079490156130669526512348599695540236524950669491109316379128470348904814617848941981767841020783820370239852413939674108074595494074510189445243658881159763882572392486282311443260207173434208356279425264087803044516552520756144592969998295171982004894605542556512707502931531300571597173699606304675391813625311192959127252772222935263175502050929291568702070345675585352028137158345759769858622518655236302663622399233559267135378736101338991259402706855640085916857078472784992407983195238487956121529287279594766356416860418591632087523860682869441813245521317935019422824781751862246742205988820682802080728072461326064975575387199786774246598305754525559335318394231690050398099269477923346559266351622743186879174284750224363419754450971461300241248430615805953404465540610880056427998252094689738406180375469100931943800588577523790474574715891929386682368185535941870161730794823583761113741989221335551186976692852473566565803924027438279056861677039758218283209387710670282394389189790082635159330721676294687222858060281970488611739116269094713324258817666424303838463367089168863170311443350131153832444201846643617423768653199593169351670821323626695649827549385165562022828242337140589252720435285840830554979646773242037245328613025095014528676048779531682811039524392099633924070957397013011730088915319970960340654373353269162845082072418616284275209775787179687216652176750224002757930458993365924623425788863353858196137172232578134183191607297355967149699099887789123909100655441993768935997119796991533689548612181230870242629857913715561806121395286451121110306849861135169924773730546859681861763183869230983099295382320389641327807787530943342220536282988432981500435614136489143310217349036869090656814271300814755388964340408492393677621963237505316468965199588658484154714477599411161615515183329990679315261335145880281155507500561234970432075410177791937757023696746215732504832741299811100240423072167763572505726298660539047070734967240609363339538137236609636290867601561590895529820709495281725366724667205296543221388403891327709552334563142601326496106784642142608939189636322303770323198819633509097776933277579202718683356459005631127169589810278408044150650087365163078429553973331281684630916677409744329996283558886296267188795915847744632195896680257916501678488424610866987362057945728527104868631161180077117500202687353994679138954553360470200229226449591783193056396245320604415774342438347943029766224768215132995700441505843417622890130106861063019736983997587627444467128704370362712458174210887123607762243037026283702997083513279402914732458997496597124586930320905904541387282971511859517861877219046461269184719703106654557657751224669480396683234862072495147009577979756522228148529204080315464900888572393198949682488019651825735806189963144330496414705650137223260858638298322018159185508970528586366620982098220233241683935810708622860960810828762784740574941575532066984108073864259348898664135163412764201054465463083568901154990651580867969283978934886606640205473869967430204705677324981503786789871971107686731465721476874344022258726214528238749927297797813251130223624480081452148165994841182846421027333901777977441783315080634390064298332338768389055398457114806528172687197712508471873799768383938886242785046913429992623939485711946066589782563218088619088166807354435167977424076058033864142394722296793424029657628535368329583723123416904251558811983693262808208952011813137962051958113738138135644776954163259697484942490045863231307222755126145171922238321488406374595291373141763788692654006058805179339111169295020798839083410394231363359079637486044712071488877613861694118078530675892981338248666495466389935447653629617285073098723951364082254590444473251319642046119547871065892887375569378092424127254501542152727780545348287154029418612448852146025449531238848590658813024727322571484350709277625905640173241444314934401746824692156009057176582524694583052453612493530496968228048994425054500601574245784561166403448242599475423872777191406521483170180991562011433321692413094004727899662045963971466269552033575815530446398364113858677535058138227010550133339890983710698291568546083291159434345571580976113632593222267292613740651346007077150456407899118576843551248346324261682332496601724499480989373152221532814614130541706949185152786372008359890679351684398051034038951516590224670093420016765213847027155065085568674928631710159609706525800936604936855224673123252058922266219105453303727382886809155654565485379786490964238915543753323100313015402909691404992166189089884244792669335147354581142693911667996512946520818171376309928137125436637530292818006487283708937482776951355202173451523441878830067871788493479628480715566082526167547482463339361625019131298333661669647511606415988343075828459318014330057592898959647234780039625655115334557039039967907160674441560337282894198984223826930064964587319268992732959156688427258795295520221942719690676560217140398629722382231835141764941648287622062332790774539533725333824540859482222428678654574908748231012440771949481573483929363192222382710871856786018429593518890084286306822414503494625366178916409363276960222380709455580058163140978830263451771298522866554765931390072105477704022798207507554998066314958747952174569068940035351044543947760360039037801131851851349716735399945854982526365309315718114998555643720446584889362058220250426928274674465432181175860529641318217583903847337891127001045564273755713331680674651671191520651093364365055238624549545352253202622080127756040301937286969695283520122999888372855846955022860877324381262506258536587271443839228220692766539323930928261943723067418073587814804462511434129280797778362928688352381527187037513352866867029821430232996515165440742026886708696341266505818506509369437865617947757164480737547751098057169278424591350431222669491749323240182332044612223838846568278711334055282040502637277790347587284273247785341734111666802376875075598456302322581761074528199025097017851176379072772316341887858395259055576224024262344659432058719927367051325996651248805427065368484353138470566233859403135701232517708903979741564080080308135702634138617483127400818358566339381276526910997069590855016467229593615984751361282089235260770887750627971826055583284128096538713556287494688381158268542569960547283108823173973069354559155859940774882598522583184245366033674051399997233930213245428598686372142743339544640129369235532326678923287851402991632019760780059692876943938571195432152311082624785298397038959714497322714606005178761268320438592234469790134202810906550771222187418435869415299974574286570283078415872146843065659865718336958496853515334732493915366837157110853444382961425208572884460131272782083715241302509518295086074894159599012190682949407468620769493382834819130274370073321614249722651852851044972003077652725855093078484529214326797067639632020809591475098375955153674211857802604954036832169161381147481672696514954656344395320460572684008351811953721496737155517623799862221214437246294832500183255988977385679988078753416966287128793919852330007470179844469190769877908351586118878988203754061657582291142619594642253234284843879781232895571599703556804229285549287198963014075371299888006872212313228580309515927697837570760747188890654440328047476093399592092299245210683565556988384845519864136080444982375392255825171974980143258501044431221163865004263873631516054882583761927251914823127595864493719094699258474871325830005747704028714127339626895470866601399253160825564220996874899045693841450016822959183086488726243197905699357108324605953144686548570087043970189048628791632623196773757362398024316230424032731954887819204924771313555430555398856311240309746801474273872543398376527059377189424363088029783289390185304747031974990733916361306403780151062904073705067723103491002486053267247109679080889504534085804729876387814579885343820876853680349501139809651966361724442949660481982081993527285580101017858400317386209952405283707379712477857683125178591991071574090905027605767437112656404666372682149992721231257548657660040683000287731637816608003903325916133112722259115171740835533002191595954169237878048363725510242152049410269431909970076489245550433430152209076555947022798990461175557917971317829431099866657288189742292454827370515301814357850937740626633658719183788455731557312731116407629953309066018469271055131837516201465173798617273320067767038645632916348662650262559996503635660686465762916847199810711799135842393666167147068011763391329906193269047375781981467255436983221668334040345051445093914926381989338632048790591088409949867575798233737300273577670087068539931000747644908618900328891939571896451222917423499254060139961447323171206494433797500044303680285997455869360090420623615794819626162684909803747430013473558954830225006244414802651231830907931766394542674751531553448566496002067326377276273754547562362850084011231007145619222064630775799999551595835391503270121514498637051270260011702859859042295844346512536170940484509167859066727138855688021546222210436312278437488286447891231202065841387242796260047422524543957562211695237419740463010377123971567087213684524685431849078714079115694916959180819172780009878996868543713708913588271585320717661115676981534092170086382223875999863153252985413320451195370577007898920747914079159865991098038885347173889490201049541587470578856061394655561709908728634598639507807321318708858069405308311592014560501251088882483868864660741203616290516695559804149860167250861339417675607797425115980791838188038545742292291071405088295130131158827019731160463279574233211531384953497563846839144958395161257847091847416880831548608499822213640824371237132988358050463204707933859569519303365351067192168392433784849801345763364492530342945890432938403551199165275947925525257743034975444985571605219112167919014413383140162147545665382517826891248032764929804431211146135417023194066801256984278558406678059923612629808886513597910536862481791395567998805199115166426829481604121294666212150970948705033487767963202407920709855357442329190254925554176117356829302039697599492296561437381632661318576554096184116031534767155159565930939294040213234504960563748804976626556607251729589686831380061005398506747281017790006600550059275142165467028755651454379931345372260767579350793414023408821716306417202682635955004768189860363895404678032687469167063722419197553444616802591443756856962102365004992154140441368721762740304645948292527483434616958080596924047332598091655511975544045116606261896396719774872862477874496086053482674492919863001665726142933959777051145981160982743359265379792095494627977351482090738802285953471000763429266292669496173801140629620374281734591659958438045740139282927616914013369590239499100457706361108783562333572386549262654727706680057122220309414221084111884052624509120858185363192523449454703450885267697551809661716403898190292565540346395863543933366290048998810306605002244498016656176199643076030490381340955948013679427896400739207045206970101993120453310389582455577862605510879455008799843165068666581519375454255863155246610382680201543290950614848440605482714158648801569137804606307624203081478540741562784573301775367124004239049237662502342283846458809167353762358119349189690435677620013209691411962383472942681366498798999689192655241819549687006545856397858240894935178889055177884952495756050944178984505332249600943868613778496821346423311111167255521040411396622665646190299440125520809805698042243622072204915683428833227662762562053916473561879776255847519475963029875147222640916540070126476805508690143344498154887423292756472308864463581391635999621779354056045041110393865620284522696439704738323538115098341938728065838077520546002114823935894436017460645473099556801496602474371662044464696357359078035299660363936727628248551393290849526986604005569156001331127341833388569679474426580392539151952862221445379877155891108786875905390706220046068892605797126410719690557180112274953531866386254410663370901916443474524080738528292914527097739315783514225675131397483725362327245841950558514961805807131542759515005921622907052911828391344643375000333697287413074513536652563662732523136779476271457889936984403879970833274472073751211766634753913513117520688706195443138573084410489364110818574992085497755701734591011923605198615251132428042976956589158905102065522817023731761525528810756310292357384343859967809432117338829854824069481200889477630287695519717773257020004068892412639248541247287684983004910600305497954656707171519023794458442078153387102467314949913497709979946792472065727709839368668050712937270059142616704466010399181680044088846117369788401073535151143280088048387244076707572773026974674957920966752791067043687284213325955875733221435588798083071611771267817129841409234656284754095067720560877297990552435259395794287428589639343401265196610738072351267504301443190541270858883666914838497388850531014673694068568873079509530941083482630039832876388274162424036374258081814529052861000702483645013557000216931247961264129071435175441638500221888744388111477212397525765795994273627554668521741399186968153414777365995183477969489149336838841053280720895823998739209441987706532296101530510433432930967507958683647749762068204016913808027855096169200137221394934450406628208166375413896794696416167034458970676550301562599400234515020338631739862530161774280296512649949713635168073001589588011717423285924990794815204971691548177706046573492668752862938134348806140535464347224433230497094905581302439314098861759453547919078884892466517071521988101517456331740566808853277895733937068629171065970025264145565802701168922184120198986931968405271429033080578638065313391961237560609482761080523260165613022701164306028022839001424027034376090524429475054601108529240848200535586687055366522627512200476321032315995595334800136135928281528361903884709000819300324443515972391061233483946731507397724570249538185401242800297366120085197866504204493212473102251917133059342248157791919083049892124434648546659359403404107790026260732562174002818062828052122284188751362429282008373717136884587433700835286192811655848024326376942021135913083059157263329635489900041407056885615001898307167107104154553334653667718658389773075759718502245573454701293936255807040133291180712451403525578274917927829863217161231891544164087577510564400319618277830831694633853786837953885994603544405298018267364592693046573739451734461416178068272348689125048254440412252853174363579699489159793589255055005947863084630215821158109815850421192275970740586402182297938099363304974674865451932929614730786202780229042436557682093816168319751831801287828866734000981223528022972933423386982812516777744486748212650483625222612917474765688340520761925583158368041598415509991955783256825672874358615250665052799554443676869138381506129863955948294694091372121834957818675105257796386875907462899350994607928521990005494414452456752763013940093873617769103088855156422501433630190165023963928417853572693727424878089321703546987836594550796016183170821930741781125565824369884111461226067826647815225569179383792863743676680347697389232970757235244779135833737183665028246431424653937777916471930237722438404393152836604502131166591470104135221139198921379716430230787972144025512201133080967804110777574615232532071846584674306188304435598828358412042970247830950385691587235068848219656457572816431869047259444981842352902806899437908703041814455306577829346977307819883011662533140838475412056823202850387517553474508646730476316285207283902341979458369659297715844649395175881206900883948514126820456721425439965602597777877427388165288307967052354378936076144671100409630427483768544389436529526402383196457737460176471591127958270680571913419290514865049615664815128845893470050924547835098218009307622398716122426092078219799742861809122164380899344569936150795462636693046820441673119375173915912938846470264912650374427089665771248580825537457781252627132164670406136130908591875498221533578266710191581358459699797661246027432849695391621625875421272914888917721262532834658389866049941393825044681799893052792514985109940544420634753465226313505119263629472017314030680239644902596044905015216625426832406865803067464305339708315726769277588295314362704577344944486613929176091395351983372454444945391044822982423310576901673104943482902830172003738906033280811629049171844456801035398437875299892479204146113938588808250843381426773339055452689020697414461581302050498591691640494832366955388264838591751529775808087646498335506416976509149720060118918486496523313088265354272374633134227646094639893065165729006402948426525584379805876471029038798029717864853537545313166836882110598360438386632129429942614548655076885034302872209589443716485854618518963485660719574460764191111443758348113994048464368802261290788434591021954455256161686007509594314331505168303525699062020549098304221806060129147289053484439154881525906422021721619410924702788293856455501198966819869921001023372449530858552353130753195732478604648577567646924774076789375669089044927689607165749670953328885608571698470597940069440510611806817608341989385533575810647075476878389088994481012367983836518171100618728625575282552213555645409931277715641617451688300193014938814103664720872396234786609660547183886439243904040521053319927008390786881222810996881676056331007020705388394482027279608642340711183759911420856636575437549478143041501058145734625565853213024543680168719689043096203207399756376117865599719653754226280334072356902765835960277583447183124821596832797894558884760017098705513947927593566804842182871850149606005015484922471991435651585911367126394822456000490080910228630535268488188521074982881965713081824294153219244482342562435001134206221487393505163938168263539771621059932927952415967036432335184647388684886863791823002686592662602588623645452201374950221653161509180643481325590140082999126424162282001791866007798220884566125872340684972720435431082412166512471698402156779885051359710239865484155934642770518858334585280145821295623471648124464529034498058628715400133739678463204008040405938530796559297745432340751013156650906766382754375787510861180632889915298555363615845335803118261135283829423154785873024446267987337911714441047024652830727461498650128007418355877241480094507556136229067192022756577479449871841474821822333716625022974065545742408905224362933482075344964270224721685874313230428895980754765875717112898431708639802203739006944696898605330909851805692770228705854427656026131734585542006206352834790982554223436124125719468577867433494011526728510732626513130117822495724329921025344220775193757338579246860966033624914092630942307702815770171418730626188940322807599160733174026140173766892245303449578610775334013085658202568280948063588792512497903702608476173035655036946423922607264057363626817758062747065887916041552685293856118719946940578624019885257508822350559870263955651968815283512450994728664781255766445841896893055743227937929175077912172969608849992344624741682634424182695763668142609877019365433905902919168715717695252748699006694845084976366957613785292052354950166923617501864367868232695904373442079252699130241050362345882772036744328636557264602057378474258255982974277442016481607629605571727381978789668574377030961089117033854421191637807209054284629935653448033790093076648995585925492446756990171707331409212782370655440859918831694884367236513095512513637792152536831774429079877364897153820526151240989088243704851464094101912542092417030745358931399564766035934427818888839911810475677704181622969299509953917862513560878175244971384317814494509116885708480343386939022689460980477034434341798012478186567258781644418886414738095162211974340250453270511981661258212582095738609723098884071590079265472214417580830286456493967530368955654542224031208772276024352237578140172592095612953295790316673529957916712668265039863356653403642879347314439281518721057184367454002829248873452766340848925770421335722383518370194592569342382799899478899986527904545963732470933494111084013376441613381126363028144365004503660756825779793453820071784685753619103682351933266257389190898395064416980077685526896385678264220849901513781224975309457443848496852027003744146532551335142811459096683174026155656353732292668481375207869942337543320691378248383142510334770977884225536893135384012314796751238257493533352682073888463340074234711083909379461136932794890188931476351045365591947079911201771645340421650277682305848357912531498429138940069664412466372185785557354969072109512414306258665860482382035113900904248166917548713138098021686111540661001586347714061284825756042587238320220813060003254336467937491344748312660173421627570254016333187150930529225324824420438539868080426942484579734235905168803066604538820115277347063858511865997181170674001181684947046055172713523266480460665922544192556889891589947485325477277495811514518767244038768205196716133033990299334197420613141213362853017751677668961020441891042982036969608919152381483231870009914534443030663661835227207035498517367123954895526998452561897989309506313724423533202427094112576836534091398598484955389667930498871942708626944120573053557481504003903004795977352377060948429754102890319092800895820084825031283353529784704496550421939808076320164609983289473549566541652553320966126948051856571801514711024129049174043496738857423175035613002428414263160087490135873607135053937189410436103842060813840524065877275435709218598403201258665123664836356982431010812297759705567357776830813041109048600548316532618722388229755803550707044644491117759498296820041224697848178858514035757956106582670560587377286045298943121334958785790222992726845898942462661102135996880749765641499938540865675300581930789281757282929863788736639134618416342677335307049278262548174408697421110665709148110987075312230770782130449064076377323984469774500055048608428501793862593978485038685599739596775035877714034172998765463928425390727280506415307107032244437386312477999792166610080197479468450159117490405718284453397332098775137126197836777999072475559873274401569099628303603264495368919245809336302457941171530006164656543571148816886452126099978474895560014999738740282363410321770047143055598079735601608608916183540069779454412403913473030251101426672956304015532039625443352320698136997143222067707705129550411627348113297905751429061739504896165853416997746545617215320755956610421831195819148806721717492118020337913535060434412310106338289909930140585998440717643710527315096011342213932142780165588271401968437582012265605000499401294435850532412150844222998391823801054666819297016879678459041277668417109618656142034212988807513072573964394808256758665184046821451097688678717859854450448393687689985226331189541164302926138952227130609705149194546044989692958104908495492694340462815693501831424632025475062383960484519259199237603472209703399585083898215070846699727954887507861037567504043599142646041780204912990002843645070684588870256152159282442920280064759400462563646957251281671397627425434222369573338144635095800214908833412227745459682137881111030911404372300940267903052869812050973467894879314966190826616876993832979261000451216617196757955651062590723033243515239313642854200139289900196754350341747996982360053276800666708281963476216133293048395672299946368273315603584966320378443991528813344439669195317560020911293499169755836424358017831822218230014340310396516082436850955349338983192041793810179133653266972416883270845734825650267355297357529353906551402528683510634907760045267481692883805621637752904116053141792637893119464824426048980654106559413766698316113497729135272873033903164702478281878206710755902423044860919191162084942963062249242079413820673429461321451467346697779863392174101782505619457171424196888912036089282482982678719804185613164670047889856254462105107545177194015169917360521686535979054624237684951195109243736472739025232710123558647274351669992178789176329546731047082745585108938959675166282569431010806450439967978012480342329546144350067829749719467579491369183433094944621829553305670028284047591851122907910392187706048054230746577706173428318296645166750801304191445575301775430452944701490712738841410206489834925418211436791160936634148507607767994615965617103828557851884889160016406750755737684123131914678124545564492254698452811587218741440660891542994921393520070438762394831050101524327587475524521624611105969318274275834341369022599805374945464998255210693541695063283134592574350965455369387792111862712218460387709874413084345582363630200949822598669336700619377599915276939855925393893701607034876931495832215244647105643817898705935202877334493823793954462142022740869745304730665367572711561716242349738666415026299650693192388865618724563385269650696653983879747732098238746345512864323768813436303527493833421426623026688563714570470598030947344544586899308551392088962914683092803245492110412854809836226084021845564004460189517345813515069480751698586285536153900347932202949268007455325960923118782178475279363504210555273375272063284451215819212777910896270246754450785419847740855853683357197380496688338322385399412278155202072198407152868539723536656103891272131390532681030856105361020217506912785771340803442329450548744088030751432348661790796037361405446680134573945783778367626083945035234958666342717292815801701274117502526829026138410180784496993160710983570953102188132953891381398402653315229579060268865901195998307205188986246578256582090342146304635566534118313236831936425795339944801448946781708197387622968066426511698582253763859300880577891593011746146614059358417421244089060263935926822125705883978263082512464551254214486464191108233231507451117906603574543193919523211959953191117950433587342969488498791306995198810249015927766994947214047407478792933919927539667324505244410888391156505094109138285745641009639497954177011245500130568207557667401846347464587488226477177633876703858823287586785502350013235319913280507591087652931014639733524851241150129222342641087721767190634375115522822593708240828465983854269291451097161665017961743899369538187604051472800990059766021682846933117209626528235101962585962890556618746817932365718918840224894218425485672177567312438667194107437743228155416137143150385269021437087416703442725560973490352169436389900147528664592545974194045122990547137469488642453975588921513468155361497596016738341014377958995466276024534029595607873811599160371240774707513235012019880493380147777439661988418033125923729482643507321787292259855194765073297072752556680031907066232510764002736238932375752212318735472454010124868394572233141550391157600221685756104176738179032865076181278476222617841337503424359825577762555821464969695828471095451351710302849665751301480948551917628519344716638113089908094646121530470461493400044753092615999275869988429580950048971501013666184892426743340093422264231999896431054273928656218827644981700715192619547090213515961164072204084388402214249232416238211356289446624327976439190590386198169745655883551377118863323853436889430550502900064556424345686617707998708982578820523915749856444079577488266180846186790300585627060231209360076638310706526156510414946403822991567223423477396275054767865448908386102161560873124115815191370830666438262198401729824105255413551459001601072185122251771063063561245333125130581037155863821884178175983039184149560520466361919326463128945909300359609988945714973680509653626642687640956216111334931777021447491761279672843140153045210080435330081368853983157081403449286099663994558998915403618002598673864649578674328640664285739770738337272137673130483340625758403030537750948817407312135971784089733703728534421590289190633156478770992788677635063554863075276279220828609067086935473756965630494069449421026114641947069108508959886742487523769192193743250028455632567390723316455424125691650082136385093087936243395889512343843161001256011773749123154239090504328779177746641237013918812943067133452548445777069922404974583634371998992361821905693654415075878238801632265597578925797846780034346463633831972374353789771178392844935280026265797364497328304826784990724787882788490429923774767972599539561192563357616676656944876416847185085823408465496621803492057640806631474097561937470178974138619455834802174226637268982456416965206225652638455404820710782044900999188758158326277877091318583109418515649282472399462926208474709735368746387241208808291364896621126406122435446495435734273346452118532442390622881812161852932009204239126571141280827327331493551024799051788194979629958164661573806569574002624786462665231800903423691310049021185084442272699171088919151772179545513166625839797802503617021031308371559207205175331965274795971743145940569881543264836937784466434657080390202485451968307925412142067570791583398740923973659320924300596163171584684814844757632517094900990043985999726615582987566551274023045568480509901278628409590521918198619988523673451057633715689928045865663028854729023455351888830331420946839159775072825980318276589539180771395401501131856748894326244702587159848558012117444698190018219294854229106050613345678747425268942089691332249017758013568464283940867479546290385423991327112314843709861891180189219331427346418618370062333162424940639108760180887596812163451424838611940727885863022384846903796577708179413289671547756400626855940457071334452053262572594048043863057108873551433634100464938253963264221822343971878782590347188952217419803355954045330366246924804716024134646072846593478257656286165696476381043410573570867547419566030003699464187208127725119872700891291858890204478391813429256053405384283559058103596609413474103902619731363950872323468278121795552053267196196807404256256745157756067274129546234501820051104488076969313302648529863314753930718347212581154582826012184997152454180040367537309500544816949838609777002138334351149190061204121149862665922687605074986860349523875115279566100201122938101179457192971128961876358091401208243411424048581626716332501721752045165283554443458847286191368558990708363671369586391282826747441982287662583851163675089120823292501833089790219778424334427820271167320644510493120016753352837450611191900734501826167490001243738012479960073117979393810187685859319065602469407953369671625409096000242042108527895179035692062050584719095811089556458578587722572309222651414122114457580344058841955638119977509722357134081315010470066387838533891864402230316038255578267503210007990439454163628477320608936605078157562677247563445411965735981422321996417862760937417425140663733308418850875430605011679596757617209785170700797534724966986174255578703030942718496006015038052828626130959085240956575747919891108001398443653560790383361087508947971926465936835965332504930638952867179665334027486687068671947700731237608202014939953569702311392062532797566765057933641573701637321135703519472633584207096061990592125685117037983172230476245085448284616077072455358036257432419828150178462263605104179545812725108432369865207720968545279904126510986836314196431005807914389129321524320951155139274110757184754134225854534774146010153621333950121062988526909299949120748790349624154809826469626706370501263496787505622193922375673018144955120408335510992521286079349311377888559463094491708959780174843543879725762609739999466234420139389515903295069432508922733573078490790235533033182272868877752685478853189694468338717095371940077523730052511425891475904426183314604616731647796481091121846031870117828385539544903792074955138072546987283910956726032004727141413027807725188416400963247255356192421426462250632487585773219683282718769619926393840412001009556541129781855489376657732819127430973228117965218402168029942415707050864331573388581141923734758421781081334351932396153187641504678457706701212563693528756899300848741094184455470968411163029303669491900196695770369766747937580858670969131450469712560535945665099436864430119124733544601030849128568263352866991109414053586452471179546774202296561427928430130276696102557280875922485381511890987547964597375806797782278364394983252420062190907808989693572171403472578633739786384042710969568996391253983590917930405857758851034860448059872296466199538528613004357078176182639754732210090558422616235068060764589620429547925856957358784704620770574023013707364533219524225276677265617811823617176328377814356774184291513000984824297803283555717344560665745785060699051450100164231556711265437486731087534925806385065984851608045664834087819629674555605959884134971637324580423709668762646617301266768436896786630076731095266670496964005326204057055469187266895402246850499987374745331719576550270067528371791659528109873228700728715131440573783562823109579365764786862256733422118575717755073044918513820720608280653775400352712431142789018592032784884516158922508181742199886876329331437442561801969105447585595978232245637593407097565373066287409016721068298118809195306705524676073782204860992094390394968893208521966949038258028955689715707352952071645619072309067835193421844901182994463509650849105871798094669085907686323635028195792423291634476854963363558821355638065916159201227559475261782106543845536522605903859391997372865628616502002480208675629015943236179901522288086569426762391610888336948584871750089887247287821644928693281981415890563722434776199487115409573700323915494313870132794779166556332288962680839379905988220101476269865365593769380074826174862664293513052963524144303193282803603334192303721394449169913008671425280034469183002840184917432355344847756972324965059957260464148911291002131088514610167686702698107534303776261345632335743533337890247403650763422904214620587453102616399087033349215852127497697004137820760799688703243398007741709378377166195036213299293810155577016908368540052754354435927894000750701493263271531370704200570289464443347059342675317521935882060425354750286157055291386286926273109673898057076023965782346946545103721736326513936503913510880552283090669721919177320176639722851535542923597396236086918192562394502498179357870048259026128168672347295991438226688791962463605177120178079957931434039348714001460851491866882421112292042537163980700813654609502704255770185419269234214436174642758121950885447616719133189341883264846417397551892649204664863568760334468819042819435987348019209539829323567181378428617972201575892930630035444323641820376885897499339007936379767831003034138091301093780697379908934449974324746350817543568050532766388341257566002125365170096155411295371559437005375892363434194237880260705203622188712186297000954783986594373351192529545546631797955709394780396986351280212219165486152559564473289667794236999241383281440174530995426522206091675375194761076635161502657569757377043490918318479022084685187978116560842542795681077637544947741178799203203575367695713186552046108470135431989877267461603826959341117637911762028134183220529302197049842502127593680171978652578475826805154245055872788575502124632824428512822694977819168552221856776846478260782544322699816525392762719279856867131192501286968993574359555432128521767244419261793702307801448597582660913075625719074873720231359826166093137889303213166650097318655701121762737190848079497094840881155268715231459501220407232657284311454123040970750103517225603969223081210151305288171563357095359285601740177792307804126581123788614493564367566190019329288706047874989425106719424973278181097486872618070213957056482934801479705310864660945750087051818742543309012974576060611713178908907917576729286404470388290994563567131749942649818481608871311132222996521964718795793457769371408110258486596928076573958103562870759244506910537390479154356653968402544921590910913381896187881690967679076238790361389631860318592313588421221315365513616152696255969614838554768182383716008173641375880529136104180053369727280885940978946329289553370044904471286338393025032023073567462955075594399418151613555901017471647931703183866441750628529140367143167250538215802053518179810262962403118626973687470361690223864877377448268556995696811943922684186094448623208899558892530426511089538326313562691034192164785951650648856881738723798982047989291220185219816605861256608591656544215789172828942631756061326655027810973666616518032773866910447843961071574605119972233708115252139514721726316330522556014034872799723069000934858004854491708921968013229638344649741441701219303286716626332036389071611764601813991137776805966756119965475246489101466080480901754240137279301705398987070730198889807595912528358561569029428151854082228712986439672571078786665932000642091684266700328592786147445620909749092521857081015522355643013285012539577285851236883288634615094988605739292839639219715004936400133886378623471579825501359758738341447500551803883020554437121293946235373372697269066695190381928233001789751333805092505780048667259692289540574371212404164788577095454822814162466893886565924003408234134391838699945779028161802512734046077069381770333929635532266718169739449631565945678243704692767311722969580316587582529945692906270260302647814562057637107440400495800740205980710115957364039650246874504374220847294145581369496158060111909695281874633890773706298566168007806117758465557499816671998386247656365163366009509224731118980744376277388264910652967354680389637641847259439950485715841989028309257808835642237487339399439885238348316996289130686037686887849792225681785495646555630077711522729835354802032276099562671808548923208887688516937057263640216480089904934032214740453770205617530277336814594247295605412269051745803288688248604195535898495059959833422928531060571282828244842032724535394006522052354195525857080149777283291718405251429278185034948505407809993191907940305766370356404746165524610389472815873141674213549787532062651037436665677988621672815801011936889569087820959796230615448563980466307139504224652010899594755289492206414331429809692497504411173485423944785403894869832307500861401432286916342562113707701878023578225963635551049550194345942000357459191344861360625518356345327390089713018801011117550519543269561338583799380921367659901727717675768226644027958258044352500609196787086819414788833463469936632678244005699091239631221957328517292956221041105220426398590721222946260857702400712102491683329154405824561562670642835662929937997036607294181061504844592579000927919835789707464652415713541646487995710283596703531872243704614987221869731153986342594902598580568283147003532994417147801543823246151368733673556795977873585349447939390414405469981871568733586671558492932742176561662881777584542341357368644522334050860878464574300947186275492320504189469466660333489218175460566006715541837573780933971218421022713718688878200372544065710332107575237305179312281326304223194450108164937694582339178630758005312573143424029069822984603604170180932901158505230561933132922164378538974996587903778354976507824947868667534933536978545147905749542512518582637993386406584517012298014107820273692840606355907949549138784945094055021920655915596398909257898049652645903516678672109554198003759168958150915899701608457686410412370562493942295299331037580341969622018682189315845468261536311398153046242062769743130894568394838301502581026376339778287712456544241398922006173745612379698781694720600940894449298145672172161848470920526675009527307850289881876460015359794411982297543287477639493276634389692041967587323184486302742347048534025553569767754088523726204186511978304810727389188115935119446376561337246362458444485300795990974451648299302230159190845295493365926109799230078255337934878043785264678575029714510509071425272135266358200945785395635611047554820895624646153149208827614556844699166613527372477334448375068493411469645033232612415176785566096571690076398499650936779551795556775755070130331809259897638019882933056451118987070074826893048103919910386887038748141414878476144570748765903960459298400969037893052268692887241130834227199566727788582754922656021954620214213877390203236751534819789789374941415161629740420820909868568126356844776970816685829201504877468755846606383499915778957831998788558736355236213206843660363718335845487442086456895036985217420318116713635614519892133895507964466293295603498549485903895356614963763890863488331879195272955783283044020285798317976547711182036636209607417707815554608468099720543217412710226475797869272825701664823391506532540941550477655177652566595470975408314832474294402681519861862987573984768785074670555822948842874735982984690693851455083817547052993384266510120331075654635367054385945094644534497170685528747971085405806704354730300831465217509967863028052846208248539627687611536228320968889332806980920673758783534490231615620473245046935288600205256144719574505531368502939945239117243093748717368340750809483439259293150438356328423527125360928907629407715965417522731944299370144843452814614436938431396248488664336430418341204836520932081124982920687991668146304961861337655468590907348828314210474915487704907120922476289340841675920982432467341053449000934085003971328403108190325568778418830960147660110730638536308085387332258174667822568385889503011157628502033239861427848154318975690142059487229111418285459057504845699802498686309236213149019805298890721548845015670215797021919528611214312259918563382646539665129310983389699065293403194595912798065150438921198990561961634527745971506121606255109932313030882621862733017715545685713836049179294368257183482016552942763870678125490172118873209726057651755439851165192447429943480056419726646275785016471970493748640477706765237035963346909136300320069690716551382427044297047438670009471435221768485350355746035429274370155501926448247376422202659789504230517367643984984508771939417044404354139241915507860990895080251494715799955699037888255179711207781964538431201448703688013589653335446820926103004560385966335662822680031270477641620735813169707673561567328752381605445514355379462799753681650831135972760937254002747691169656244223453800211091939022697843595810974340616489130760236420600695049434270192135845836556387407908410041273398025294158060369843971544926401720381696442209207516294282558024203032438275528409478802582638270802647725633187747633963274181855117849961680083852004406938839999156078440268633977969511142630912945918582230594538645937467406916369969365339743165454836282313181284516138743915226596573017413451881800713032973176288643331301466821943305773066826376414702314053372144071366829024601387514252186155505516770378060635198574917857618081274842766933395202408195805725301194467401500845476872076708735096566072119579064132519053171067326960298775685382404794627983735850502077410195765412153840300719148196395741169273624735868779590588255660156273595715084120730498991416592303768883164354304343921957164997432335055959872314223189670722063956830941532538343920623830621199972289541630839136783558999491531377714385454431565592214918323378694831749873944387667764196747346717868969058322478946934556992013151792381758809301903395249662706214344143090721517578147222954343326828857923168078438397171111443102909817542130874834357607664171316753924022217364573338132306710880877424529436355404986259990176880315853558519031147605062862051858382049128390034124633851387943280181246138990865032743208736466557941662164074978197992751982441992639895786366843901176294879107141913192781576273471271957027469397742614460553890441413803517399209096659751241885775489411571464818884777834445940811968284926930339346314827501067122839475125482076807260668562723348485017895514038788527243702333853281597660355647626687267594512517824419311503043763897136076546727407900262927650613298731165768058932163427498016307474408637659976031051824221876234734319578002442218547941330385371901151618806234741589711706741494852048934762761647055769433891838573648067692086622173105225531932590119193297316716852544519348268061729352670138422406951443168697897934614419563693508690403006222510442490341678840933461747804809851487883059111704398435836723066145988541559327787258948389416180276639679697421575234210353037110960946960862031884966810478140269211534905898455107442982269582127523286527745748275155309636428580574016253405457358559759218990705645457141074305913765232780342117622562424226211324450371025870298699702199433663763866440767272482778069446354518545794701155925371106702987845983299603607408868289112910198996278134677958819109495971294966656011113359125687060559812639215281510118659032853676184456737081864656972771686716593142585334921359810942817829798862703919230445103929341847447330021648462351082441293892973589451923117741150951774415544703321220422122337029156720378262411912810970960281230712375946358500495949239568658575412401647798595546777447250619727840665634836021030574610017616175406280405519565546423302872518906093692247826012340521489339721587578759416391142850316733954251491386559857804111394653718514997462912635860674998660112281787951614603027644618041931261410795421966738722418495053339036146536547177552278989957882975823659823617732926048399024027593851034715675733914766016014875013823811463181949846837363075170788679639294116107838161410950175744590049762671195662076651075492536745461617501255365407339288589134607641688838428496962427975909074321021548363932663116838129676958597264281226015673041271795578474851274814734006503136083136391890656440241174850169311261037694508718388421595074618174934870367923391545736267435350447902755330397652923789959748949504893972297280431205315052491038091443834443057974186756174492032173754872122933665083677095566218369044475378402363142620875302227461896906777202685009148101186003906770918057380323708680176485083517655125354840445339228318939398323966175354575118795127196213027618198650721372341972312828635414248877360636193458824254936083593093274730551949294160400744833109244922075638257255962495195807184447237387033708272288091695663184901812899750433036896583649164717237200181532900784775246581097117470533826482980565782958035049472000804997793613822310071933359147679639712820434779473095043957095256753239074887530335730145697807911749978269408066686932944441335704827554355162523115106301372345773226330162082487023108751476022504023894303725353126768597123854592095947596577527199470014032848457295548830537900696967086380486452084221621670857667882606125500653243196859973453346581394421813783199666303072497089599487412366148693755808345382696877228895596049979948856199725494559873887190468520976179246051473019431780846074446053330630212284742845737115383076046707658210130616114406391565942126258291765305921968789729162346039574262143588828385125588656769980339115847613097184865886212109428555911822583956894856768578776365232619998657749294040236038226912440929593606269294050210038060409610170145913181621220468949069669687811257891010026870297088106498397845396104796736390399783503415326144327584603213332402052889940392083786764941187103013700217114102494960748086841067969256777948214815869278743005321572807926650614049831632679408570715130901997438160773072997580386330040205971752816026503515434774275450597998308434899049493990774857475960414216864053232835402259650603458128538464055466294687457930761418714945443483488519657765612253619860462222882798346536654181946506580505862893271774010098251328346528869504536738839634642973499118968895648220936731987250990908878856055172598056192446392708184500493121723152605355604227495442987284285410138752717854061807297802136877784204517438667115140978078883955886003430532001063879772807723903882999010682287689383051472403117140453076711478218118212126421285040948982775507590759634601109646884967822921740495856989624691495615453707721242798695427731558400828840418650343310949962317567456682983349358746437828206170828660331291348845270584664728531328699452063197145448141033508624302922024953021535847745057964611125285735641139960792368840989464788314427486819913775016961904511207560662083064689330116142682645078573552553785612327930459511885433253085080808055290076402351444868468312578487984358228965316036013978406288536441110604740657267748744056793987120495371011780755324789217798270882560933316163654290138324293227638176465205945010397507666283711227498349239952083672803064228027360561095225587784658342867262757589305147583234046721746075875079587785058805555830624528142639133300973301748335222690288954712704629314589208587166434060447248248957852693812416436542885836653991741350484221749252519706612099239586778921952428990885760532875937130898388933053875138468935945204069497222033015019263453773453778067784334592555034203324136952253344091080462498525077797561067205273181036724901213166175735080860492705742720677548132890984489527818407645134065786913019513897179099467814032694799686524603475086604042511528289733723900350211892157907776042554369757119287119977163025924585240490240435553107601928963704388156306359561982641996145081195119889838996324122651079924914635871670718465479466040846012675606698090836842385217148826191331603367847047564384500409362296576128219179840712796521533030525790221758743781539667290894337872194899707496283375907129181036905311964138155421535329647889694269131740007098247179694346857436428228285280471589221403682915354536268223244444227152824695492449692797540981701790798313572412275406789860072107617064465649375012201420353569200841031471863816500499985453620082876252675219612877099927181026879173061846401134383408343168282244668471274049915128707101631474780937119026491999022116441932064362206029295033191933479474504152838417562313441143083108359936998823496370890448021720377898760098567079716699669424068477825363728060093264498190700389310401220081566656099750327473926490586668848515280127058942076606272816044193281813208998407161839366206266309149825081862386337598847455211865224339775514357356839071703342237818233904870312357798431418192362195351528850444599001766235196774354643436087525243297675829112687574640753695941605770670638137910864300377421242509635968362062917187562464307438430386023600958611348652710261423224093145099573831331633268764928477864499530465644186521911785738850465789126851518673499871544353463354218781274181417308001672286302579955950867016193468575059023999550373083983138054367071613136079234612958196700013103511493761023988552489794467147476422648917920461349743219169167548145925675579639334801018507981833382267251834042161607180976637299367256221029063097072877193557330587379714548153773889572032310640509029437211751496360574721089242926891687948682211597277331014356670775440132413651296728854513991929685769597867865118868111539328093374465366874263042822176292994962673896152352795840195696597476276854449549311953254416805132553845362972584988012373741479077039311882361954246805030562200081050855051270116496211411623199175930475149765487643058502412626537221846781009134115437231898636076236276075254416231904593930888129913579615825356314538302750757864664365751261071338626811146623581094631603176946876615305235650607463540927426532172349514792951397320108348267689873860726071829270340056980739732282816751253692649508336323506833863967234111447729971389447776893068301757509971729585581424753459507992605904793939762988236185076581974134177337143845693369745154859201454525312497267880131316565435232176615164644200717260816615754556881321006842803769192521930115658418449705356523371157241561554284713581900129462927179173951105139219598497813465588734706132897099608613764080285082045114271740819919170903049561505193406588953763145940747459989381935513281359764482880451371694282622697229132147102231424716558491134820943743158154019326495971113628449918978355442626204241290934016989875552499047589715270706675606700231196289625871719315659806603932701466429127879599636099687004237246848523401736907001621399369672098090527377819008364841795744070456716872760835443512298034300150890160310258964416361568201406068103181058518455898674495199228938082721835234018843459726074268460016073196445432585955166832900710995082968340573926757578181858482115604093411494624610906013921154485693425338074062231779949084371418809904074396096032532327271797633964132393768903771419424036630298460623886600499198242269418112198734220557395799481193931331178413329139519682562304227284582360964494870393779128383613086411433537119694276807946769829045153620946594891949670935952608163640433679015543872785581501236730701245377339452655795433208894405313085574262846732805733793613316409755309244067933889053168128482461470013791223894861132690148762132085707648467444716667897656229399351793895704507799325137571211413525747131043863900816866720787614095934369766164046645981639168711875936183124608388883439819324504073795250537435762326797395344441706819717842442834975868302677640494428287379751346993165491899728320504559778822410229876374457638539550393110935810407365694660425952383202740710256850298332467512874856093245051975812732877635664975867167977242027806214805207658139214788664234493035533540127293028944776379675485608574646480538944620674066986246723865082982273333273801335496456991649321873231382292659163229006049932867056846295874697041417743370442291407356107831022361432127465020722621952113573022069570799292839392063055949978226659467450371300319199232532565658281637717482625333671060763906298773271236984578368375404387863998155713606826939337652815581913367078890398592506792180066489285880873703647516572127107036331290672817007377020534982808667026936330756531531284112842828087786701073427248145051378662042171129884040674276360726544351044903166082135130445571797836012559493800928852702191504710620794891844887729947433362463536533220190320687856018526781211028839457697139913356970110109147099342071342007926545728047777315077043892233025728515995013008611573725775036861881438688308998231646300886626651861601375484593259849746291450623696753479858491270470669509710851220828551747368215412414588222188152787187254186149216296964459067876306568574035034430804750808998974283163367704706559793338572161584677512225177230426831831323574089391332127606230388634860837428906112011116992018754124296194098001388572498783269972263855261060296122577403513528721929850346081643670537506071537961380470195469824015980177549276389899920027810944257106831267186783295773085220946635870763504742331095132424721681596927624770953791020324074233465333721021275610194832518283380718348401470915431550387915341687628579897059500265116046345132112446012301229496974651990699982497939234699139909749929676025667323999469194133485653188641405583408815308076952573449166385540124881471712732983240091343391507745414743496188528650771028380718585495610199804713247924744175824312032087865394439710159173755991759101759254922058687669152024429607831994558479540361974356966702546068284113603383599588717368160647964484342979354189139598187882033390013964707773852548221479038468985173975882103047029164196701203205392369485533943773245464427397109646255630017830783326986043476865274277069581180013487096201277062785450173345692814798852333824910925061860584379874072153574896052383886434815351770864981562838890899214519162513287854839075711898038176929631219779433621144265947221508265421999154784538427388414549333613883984309643890447821893072887752076802243078499281290418566278689975532483777038366343645225612157429739387765623644121030529792198008478541772445628677189797927780405581631080552465210701418542815262197731003598078468170287129176904855579092635399008010038574497062212841101490849608719855599425350899456708338160634143916493391081939218875775214584638184443412269752728782403380744963806600537021251020970374864862930713174641697487887411642884293226316346279632958041604441415601259021431046960839041975125093976799266703042894281897721549462109579593895454567787471958261309947626261017972666262193602464162679950528647643987701476010185717526355068212016837339250394527945139011288984429201740852624016170313790069442490012838597963023750108009953091101685047437427063530258455732990337828854295248824410898786601923192657384797148945687243440821220640148881900678228073191180165791639947902576308524028439336720109448647383357974039780740979842700831846867702746274031054143081878866599643319607173827195437831787632681794836830619341210672546754910173792056614561573111097089262075805225781539311560708945578770208061683477975545873498130125347816328560489708555569971675282479097540863064517476075774821065582787527432435368268159110554553820282470616573209634573077698707025901760519895042402825735334698458648791050082045439258908241453870666596960516783074945245317520998524699580316942884134621403410573635415291560350903107903194586147115266281689716804814051033724360312570386078761147788213286452687384830599359105703320376523398744492121700182098495105767208151372856926439972976133371828026777471199363954045880239920343115850257742976950602213175130602726412348290010401018709400414361983983478667343768553790731659538670158757075777167179119458807207371419748022847509456673711903377134380987348767066769321571317124829211487418722088604660401473025689563650890128209713730182206934503188271374726940319970785522888440519925841392345653204307245725079606916304398029175162196607406565956519426858058258523000801173459004605980043513398663030202521893945608509803457840080497901540234406120885494134489290079634905857816324142761219549539795294891115477607579400017091456145776587059304484891837265701569019130465352123947147476248338578403318089867425406320981453101265525005277592049523288212535816207058194451303980070404957210097958845634900527449829730420514635382739082454171145949203986882784284440694206245770985704693568155320254670693066879983083672872389717128685513690739494988710135947016718167016053383887274585363428490082622556032498373228562238725475589955552921222451598456196654821678043184431712784398806773310228137833516220739821495964210737317029206213375116071475411971053242878313183020589397472453548291463851981764894468288869632509496372315343679244710045035589037865151108712506892330588981639046094378230234160389954988414099605526641442199763441621524920671983195088458356032413588655228545976728088545009900057961125605020627731655861316481736992335840362035404277416980828376847386439095754958264733507534380609723107863643649651459538838359439497719451856835549053791368782521576749737774366398702803215024984686053714611627172803785567501633081871040039704097463444732381308351284598608326660537737901054729120468715537511662945178518161779383323854098668659892978926549673358482367538170779537933869716678396593817465232876435226770768483186093625149040806130145494726172468100809010418893532240391734470418413511127628176549465188513455706273076621120423406240162364341847368022938412931233580773500129168471566601739870289788262912650192413214012951555636155486121909046248660223304842883671209176925774096955025254204211579063322402910930471168062270370004997831524978434775609056210649288393896619238586278075388904052159978767609440074176288463770665541631725328545627855549617324629506034391316159257040560910847543916539052697062095307369094060718322521349278338922598864817472035642524853086023363242269792794664003187432231242186264844068758465225996330811956677142363261294433978979656529339101722814230788464630884441592639969680767637714584020123997566605037548581985035343427419664869014870366466585220263758199256206295811815370812453293488114010586334394331032331020899927402142567418994118767345219989403387948887118668595034883747017604080483438773773802990047824365959421221116855480292634820369995662415496120058392949673735701290199486762166385351324217354177475616206435360156151971947277561469848007744279039135407915858602829230809339864476593018139213121506598955510835844911859863512135286323756902060190591991699572844684395523203652522234084230653200762562728643287810950377566606566455930851913352192514965824553961982520339024857925368856367307342214490381195431330948184042799296962746544255698366800099891590944134671646065182144715953945780747636533332195855894743237507752318418167637381878132893647235041480091994726551431806298996834792560561006712122673799991761040449968797751759150543846084487073323828230574241617705798551865753123209673914260738802997363028747069650657557800455091015965244595972456245356442841789917505210135144294294831373722583696175592755108133182540538917733098049427807235618809187534350637695163477725689228282095606204464864395164298757064296159851847141764348448966035367158547684041087532998265087213094647989684558120474063669854387224643206865403983112918142342661977025763905891956931417421804422900832562888702785273730647661234906248908784213775011297744684305144463742827402532365680474211444689301831240264028814262230757246365231021469763885747804798078272098181258756507503952530437757278712966716872409863740077562156275880729369602815817104322757515624011779461148761382135762585395292674412086475942764417989068719601907019167431963015500935825227305288231160820230263807836737041537749755642740594114772164234495098838846777953949042503466667594327152230893981464851346200773567333628924321933351937082490657320325106907622571699229731071635134875207568293587568028887378899088065170877178934065723357363583406569021973903430464504736142787537746376256621240301358200751956223361321826485203608252495615745999204299360161551172554781490871197535487413895597582225046626228927493885715918231944903841754077619710319409109769550440240832474224906645557940821370765645642206548196432066711678943845458834233868561740917098240957551778528143763175463120339453227321342147032545903846994574243221650695709455204040394381990198145112089316006193196782121324520982994851714724427887266009874064319310708233798536204866920794492136236930305518642167031202466501234708847842551976471685188655536869281183910246070192060431016586863849056716823497464425201339685589199609021155477265800453327129610997147678074171947486471922500715791365567384750592279012836187895420969577489938112205828646661222010066638652574181346904213121677847452900421322849265452534285039390117129430024430366991285796627728338324970961110277277622912092253478316990891545342593364753138242772613990685275794870017069339281397845511840322520185019286673189342506619609796812783122268927248155566620660005277909067103903394276631431437299739850200842141129655510079444656373478712120483719238209184818106834404895801069309893676559231101301753755807454928185921219035749631774872470503339439947047480413909539652621529452256759961752183979965618224049715017087367270890465267233208203315056743336620361029451653915736388140335221859123103181103241876897772978456580066938634812733058918429328929235010234513853677390188859556976420511036226105284592057272471629651189783373939624927497201087532459437415060674714697596468462819865571741726517077225946609925073486072308482016862855365720319970147292710471327373832426423312913815645260462188738303266847359344377341081391311356883049390933960848973225039994473993276157076365386274274652122179144513368590575262806864338129063552860310383879000686634003741840460874873885304930872956312220700376000633016111743379362201811492317926745577023557134486488522209044824733038637032487410706710060778089215549738725100900396550317064116582420346348091422630078688366699221149459495751654556705226952007811772411068507437320161559804114781432614221174326289964897056911410485021856470284454593138476346210072134476276606243568334193260927742789188499460853248549458666930703407183452214396151421234440629651411229844972592506104882957972717190776716840530188822756274948415657808254378015376025438942761277119614391827685461618489537044716881736480178702894678516547293987456524433789858419802363164578507226225392934901351189657397082365660325677917125655641247504577530903620409599795098986663207214606466306499874183288423095502085436980976172385321057337166573110854389323725389766305170097739050763127961540258104972877322205039271208069584774160131124497459319163119667645907328234391130024962118641909507294482196632949670608283336110838877625962148425615432008615477685490515871416831672495290519642895236302889127608169340925726944188073148741085820002363865603221127422466841067704243148977110467588535624619592131137386204856454639313047547443895098983261799502169052984457511666602267881371465285181205281277762920421346232674188511674631382954567805184696901140712203665991773590734081121730823965429786618804833439717833008766409566542249195605167991735951930070645459642262850622251045019790746668757580498071303272604369093339292530599508213998715687658566728260369597440882640979305129786114527539806563252327110445139667524507733069200251354264785568256800436151873154162136019016700434246283174674295491973562395976998853827052699333445742783562426129498088476469795860240707640034579739416663531784619773924743288752527590518983013448932524560593538922256340892558620727497945023269929851681837864999512585495950149879303886120734016450989733026276812916320079121242359703819290128738965183121832254342493338978266411078844627918936456233628421731301394001471971828433746391007315844590803992323297848897659980879429043722093377988142348198635229804170569042677935623218611018186986439126575317522194542485463947016219537126240025224712792600743357125739826379924850238884523623482619566577836499785933688957586703879092128816910863200792419752951843573619921792047218444665952815220309470585997535798023224242346861919276376750361498778851542202873098864730120480254968712447968741076435135989201506470698360805413368463743846776516011461308074516190161860118967681216954895894080950512990250118827441319934174368550906097161187855053515407903531672383665451771860180440328111738929034526877963687175427646671175985354132228871197145649913328324581639094444053547606874818440214097908347947066257307728307290637099119106274630947918928477000433284042271749416862736805221240964752787395894286840542528342877965012862998071538681929421927361119140555672255249770883344261190256960243902141084441106276721018768882907605553603871680716953368292577280015279941777146445832169271682365343162718061593597315662300192642745646494505875029458144038774640663604875309687489944290392077626427179459859074002843861642792772216682222828748537150644307634600102338228994051194797750670120405618827397971248164515252224264547161936288429232380718923733676900604544631095032019920357079879188265263781755872571578365804233589805260716435627408839945548529627718653123066025837795833277429738454466344192307191316026682077883503293922030991007640396854116844322207024151890662125695862929880932189604701112573385331104646054869042992777879516339958390792285860025911289137507194715658491398594536975641549255736738225199161194342566179173907472359033831676651201997045992586468818822516735308386404884889622918894685197931850213764707638647599981454628108884078193381451316513053390572849642615745932717794786480223728096221487393829044764941340801516738065695613592457007380001289335647050138756320590969632863947420709574747440307899798251332698965062931822323072605254254516568881073740464516912402062969371186639501324358215848391280013627710332657193312357232326940856812312064314857295539863807339352744121549049717828163149281751456453717922578765061903307149054848185614362903960401006179086187702458127155968600671303418707761828696758244474962313600134963948293940004132593910955413909821605862708679901540599534785785500237264059494665545973922136680936305220816569525958163640251382033871176221412768677498036548462191668398615274269386017219181355520187490555458185700923022292259670087555400589481852271622957767269503621934889793932134395906358467121713922303463026213106964979716248853887963369624866752233948093985196635305586644991300014381381943941683724583174099908427104630743244249424947799458224660259119642771063560896552776933402406707477017995876718653085990083551285437034589225531252073900699409239301873774118852450420561606736043563499278612708087568821822538689268901797173737635590990145337882554750239543079837410727716400695962472953561437937119739749053466112120561077344733596688661839565803550614670009214709194389262029383010085035557912827199578990412406321231951644042977999584027454230178307876112029853358172607277723176801079105615430280323893937293645929961067864859120176882408970835890694104893053185531135586391071083903116320282159869384223136609769896987312231152052869681364802759470141654485126293555091155085377089303256087732328791077123648444471030418153802704472972256426394923349250783118326253235237038662314015000227135717416301108018785544500824820347127864750015356346429769829134022130442172624790864771292055877431619508955642045739526713253239191093032134755145581311932398231276019171682694211496484952947315956572102029196656858649495733962302769605842694132723728706623153795354618615611592320732750924154335087781949409467025933826165398880750610982854853619927681729779206616350013862537546927241438363396006156987228386067995608433221900521712965366331624512374679616912745524329417191993496372589107131900585692408637627304361901296006948894154351308142002262021372050587799580146548654684955329733164794346901385737946564918125230583492229171748106813663803529010667022844291201362355498420680301223046407069624085178027565877289162856828738525092194345885120859722972168748643326372484202904630192712425721921180431711231222871148398771960750864142598703464980918088976862262811914146747671370338220061458766841381282158762364989115040277523711912326014649161543836585796594869108326404040471111994005041269829581809906493539432504051679901182971343110924858446790773053537007059307193085490010097732195862564730172071293400919752053002905211622477303704757020522766788847889504852188167100768419087985681189258472692773678297620678574148960553486034010009453942166623018902989641271708007952188358216469459657466118542154879657739423388965288670974771793708934469937324809622184883489900042610858862036498417655041506972855418333237369666203853005641066951009520090497017953665829344207576221794904120039660709205168206213309610307920763359073042580905727589759589187104787013108342682397826268284235817457962430079444644855410689025034791625370800674321631409865618453621100235785651856493935285211501177513723699478782249822382601342449624227999082505110363347041342675220055095967854258824897428579022304515222803668936435402215865850032801298156095070237872742516189246382005910240956326628214912364113581739309395169078735319735243118464087985160314135888736817923433750905963063453124793750683879265242430771987436240380796002546843459774146158285793863314325769437240369796266144579947371620121103481053171946177899937470699363795879784096395668472566089772026398337592860254338953251387662205720373426378847050477560275743783926763219610454295775676539096296881340091672039839410164854176463797292703414086150005295587255392612245940275960053520495978811033556789207708888411170667474758394574629293415715672566050401052231928572908043124346891869753031124923484911145010618592241680294147993910211580307568194113764990999279159731256854200560165703321380060047205598797783383533854859884363641418029660858804312414444404973566999609202832994988798387862229467298963529910644623783015185443910615360666623616137295363263912546129624235429048779994033533255375443681063876623974065088017652086341904417784642918979195976246850939447508618374553675137661199474203179620186446066997654299991572244576453425651752058999989455278209778428482593777163060048858409407629202322529050901383101959736983133305433963181864281828618475081953951704528519253271421148937720654580356263508095366397202251251364755569081582482636922317141216629494367844279372844133605998039290009285916796696338431999627995814400459270073446387939664056789787725483816470148943648357800643850937441602188358328732561809079381322952349543916565361893976580063022723002269172137587306470716737962082566006234176887633086346986742432767493532453595673780961102731495920385022015561719344048591398969281566801363731088823162464673784260754437317965800266351625515003210305160392874165345435852682497347069771550896985021500904322469520042223156067133717812476290967139971923198472038658020335491470243244530152738081937398290140477610103558163321323416970504944107250399094218868459023989964348669056138465269178972929335400868813870107823821473517305590290859153780329854897071820267453717692049949722730577603252248799610363016251888908565053008454791346610996194058463625399138697582688606127642321768557277740213530244385818041980626627162806072467200776071972578961016019077178134460508845392352399398637637712146186200674257920740441315861167285180993207769230626218652082837377790406574293893681393891048959574334896526704084481197162015325118815181503507691002550743391763451484202973614104035638154097291178499407888021845080662792564518631378156963288711220134240581187920169578804717343632600905289107473662122380596387997954718360542971163451942395024922964063825701533364759066816170148575501145931344711012792307282346162707982848317091775965078172251464892328087654818472725582717282981879790570015487237650186509470070452944734749655415667828910437150477707897507638801551698648381717959147758358619520598647241433055107453217772646832487204379213509174900846359233655068542683258605103651832590587897255629259644086340597482018695893030496300822779959106810718561277482854138685800201395574606048795924655307750608178325072101453129297380824234700426307570054624031716152923406071263945160711785707002929831767974070634311570773434616507406406195889167465572501037120637133818505886349830854147332274213225124397128535853524326744936407543639955036558909984730268030436437873786107217549094815153442756105243994979482546120691981133644934301745301132124164267939454249317638638861082429326038347988362404270139185930907919470958047972635955999994802601129813766714669372435843617211806454597650574803911276716481383311495690303632448734323325356188535503529542804532722440789552644652556663769794173818356209901329300920158562188473057292631603219156164284520593871294446711097826326319269369333664969954177851533447718384164692899234169626624200025152560805297491339555118910206176536919256170559291761247872563006870022145713602450145701009221880176352100161820871863467329431079859734666005942585628969674285825765553438210676455247151009305094621878008214952898881823272907999457637795261321971864723926008616756422937987323893746715770758966506077123469707858785366936606078928296513520696721545521091981011390041457312981298633203364667317928017321012198291605905614808323110927214117796638793689653119865977673680974323537662093130213250383599115817506312070018824779541825890354652771552619028214192257273750628455945770183479650041713985683250065139320615214876879342643627403417724071376060853798002841389397920982929617182653722223123848347398524166221007671058601204167637478498120024995748337645472824601545176556920970907745187498361154252028596987584575945111462662341926460472823369917587700328056571412219582234503342829678629787670011314847929932284120498804298826773477802117368690945086667768492768183661485220024249999355656555376649536767399485929302299340685168558759794888338039904415054653632393492696378991030186410386501035163282220865997521623558954973074969546980309015842339381123045431655370475047048589439275716562512284633202512405284906032663612641439710431318247149404920732380227696930560339085679048178490017904895744948384196119509972191487803957389818214635935346296403166524875747890054784988484625280950533959116760401328579250061717803259221102603833466652260583696053630166981362314606568309139535665740314292355609520945849734830110160357677939965099826289147650719941811375687830380832797035676478101782175001267550623612893737324254280671985476747725010916680346808109317481833477274299655486444183174824792087844265776671730624591815192778681485049904283656798386180599133251919045077285947251105395370971539987948812565882924892212355174188619232516104384660346151627143672153275468394702893058241126827529875827873836693594541589568110076164124299696661305817487422956485664968966301226350917609639209041666390479166577329980470209321766262468996436863295213168108441419690219353824876818032927356583595478000748644690328162967304279299870537522512079380738023560536463154716487552563743070387593749540747284773659417157568819771130816133649986873620592937929202410852190711168487570010910712868028352747952868724286516073735775447903410059927639164638836122840878388762472117693307794673790624571727286194870498128126346571552069200597745145752327202246999792212902117315802661737837802213982323284375181009884846443471400323160562123769881869185669900660330857099463618268139343522658168861854911988676549071091171384573082501865498653030858271698393529000466030316807935049862431133642398076147545329280119270470930026888876867000349087457970296109041647269105943176563176662943532592841788104065872456541724992699526078475476309611371540943338358914333825747034819910785439313296434663058030935224671802281524328337121761475374049231401071400363439399626608768275317179242433447132534383418297927720257732940417044703433748831605656903827801746096553388386194411278497023962131556715153555421439119063345266465250654657890100414531018646206422286380687826520598030842027242541561911633712326174162733775471490395109037727691910706864143794678739416334476815852147482490341486411123429849096780240017536801914234787107445675401439003328215822762634127802769670937150840109649816642232058690990542883804707220743586512024683902728610941521669797222835042840114598362142172995755050927838087231364053350500975859691289426334911067562521633379630502932830172616316855367755497167678825034765862483239183434000013250636763180849179086767042889094180512943650687773016775292829231662339431176316693792831818995902467006782826879475606111410993280300596920606406125479616955088777843707196476531735735184653524062846413414885381117132582652828593588884970279058710983607414912351824463720294957319363678565325854368941458454422906853553411344662606734834134238049062918196246222113621469755679688949719943711602321474954560762144077998335590978660125522145419995261406207628365698112815200259778624619603448042048976036340237676856461832229019168781585316958807755987500895414982957937601829309175521829653140902883630232294246479553060824796932547651460207342430821353324803681220154183420260696573088552385479329101422780488273584071009132787579331999213417901732767902448449560653903182351645565201677948169344897186503506062476698904651678164782155596591198183767453162264982078396963186739274815449251332902297636930781562236938466640494444594281594255635510929994980945242562714522997081257481338286779784367108137199916632862942460942986228115315464082475051359432618758759633308688713678879230100547292841758684102502599904809063789842830448782985957078261617211060768344675912586283690612996787271696578804330878229981976972302549703117160974579681633123229754883679138251374456170180057596558268908598687846602505268540810710958920860339130018859354140926878352234322866647457348431060060285938933981524040178947729768757236999698225261841269485469702160487389803701726123702750070680154892256585166250632765209921626509069388726369459569119717914651147698869170969275054872459321882006175406483843904887459691902545055113945469627473516712864005970138911846604920321756223476538551634450809382799720516788418702011374904215872951812435276823279810450298888881869712194600137115012409112562641157735515416308531007039188348187008782975682354978454481072608513564695483449768238658986706239169209624283112801876859111422055439701793159635164763182336500585712953619652896280868302358371654987481759636350882901702671297255939936675410037871463060727001607542295931855314939343856611108893252911189966798502819897929195747420779641376695707180858605988824285050272590448259960039436947953719798696994560500914551339235365670212077826446166957833048966702773702595593968661302450046280234149565129733956697012566752625730458441296579813584615272327652591973715134498291307366081324912865602252197027662620992693399425566580635230796292808935796151695002778138206383347239331531902675899723327950216350503111676142085395183746964945811719636356122149090639428326094848550130640166488099593195003780129421280556887269120103892578959445405016248250285025537163965826824666623101025360486762755797106123621677428843573923329161088966726299484071326721517598218265418504982470887940411273044651726057006699480175697394146130367827331737812170721785130085949035999599559648401275831508004167536826341298051103725235511038846880370569052492882215839854386129549462581481634226534615662792595385438320764700220098464160115310578923013760051660922603551482691735826262375615640535778884201831598685488980204120238243237216436592364163771574846667020804573697660878329330519625981244457808722270392600167934424023886557193380730462383034248756548364010483874723088291305778468305360619686096300216456305872951727116971023582576984804911937132308661226806756947507549120541185056947842559627099496612721318266099021479156394913006437325345162664371874343675109823816334795804362019655988551134961059182180399381673837406135951206594334119052761727044900807522952833576985709288202776282278451471294100820445978079072529899217000368701728796913595237194293964639474214347846362087666472569846137239926873347694837103031714360447140893697883797884029661308071223294773120400764344673923521717354820898507802711936523593592945408460303964042181697684233419098408796122140917252368054262806007923354815963618884344230961622683482830381587026597637551809147955322983715692055086517847163455706655961591139100040571371656848403576921041591836851674715162286986146644583790217610091058873570012052533392404980761510103960070620486572700201061956349032874275637007732272299370170014737613815339778084192794874331585096675242110285680418265211214774234187671585720010295291157183955121225088253011309505889233807451574687433212728924850062080124838653509347228764435443449688687201020828949452444893591747472295696374714944246290449447665723685509892464506086392039157024493164514733919798550923783297517496945420791896011375866369953804112304456037874764324171174631450612433129628127989930614461147454116925491161754216530728832974079949717419039554701056860995889429121218819138079803320360206220533099338813196566903718283771866259901900034004532647291042606483003691140839389261228196071588558464470279858887062789943828700041083437105131893217110860441556925239960596208284476798601105046481113696553821138257880568346310713906178717803965754328426150029249503325729636022606806860454330840783851924375813372467647018975753905243393762372067211809762260051776361511385002475809875907908401757855876616608798165452407643800052048003576453272927946600554187314899610271100048329882610710371557071729590646115205759088280260538451576192163980902100143979812451004104172039671343308460512316791692831439134698516917507241131686074224457452157223513736042691335470312780885193856402707433284466582215777144671025042791127946377985409822567129968572123105985248231156632617664059798694705491233597870290542119052791784275233519335618956177683652242095949788009497507937630048603003591809495255314449998075571081602314750934197496628969631999315618113238720547870416355731222249647392995637508686641367849794006692526687798086354711805285839318252778843970377929604883086677479146713430549067745725236448180123769542868403301241439586746715487907734541073022819075939741777272734863312140980441866534428326467252376955417576312458562890074582851680593209960177693904844151184645963193187362558851863078730902484149976090344575340538915078957160664882068875436971570463034397869824408918988327822323891056369641406463182678664283174850599325018827688468516094739053705115877280704068218950334913959224438976042118116960092692534010626524160753207314677155791622071385352985592652342720895299675229113374253636733517170080355341151840696959021522191248699259417109789123987349673340054883307460468676570075885028750868122997465840012452048285693164244273527302917179022904381794881903290933989356236730882781113230124601545032257177637053935923873970635067781118790475981939736700545842207001925777789301884291050297891960552867336236790197783841779344679256499791818995818109373410656352719620793495708951778233288850076013540425957419746027120638519149933487511419884124163361917628174472046669849194745655409660057148555371809567307491441296576764720509574843448934244107758129419479831994235529828476169793562049109901597464515847028160329681837273440239616221647261370119066053972350496435494218837587882825369566098806307916629327768499749840868251696097091312162647508680809916636680780972571497331171043459175238215038055076539977609885585448183709900154438581631473931368848051660420449774914421567615893187867185117549920430893728092243668427531117874039765393671521188799805245531873053259833772255951761776676498703311631960968259038778331261347007828184525567906571050275746708084941752780908099644046036370032749846580049729954008390506450155596073355637949647974234315959738410988117147552117246825790672019790347104896245491123652854806435390089827858120809580759856232749692255451212072877914295055316202638357847889369115881905595710568280505126442084485831979064348202536722806596704340964009122824948353763101342386483764522575045639183797430948146127482841873579022996413782446115981233859558605778065431770737278799929343016359669424835287073421155163152117614800273579909652190006438342589106702748575672695781009873636092745111245990203703579637111566703762335206521859962834849088206464890928838226603539005067751255031313223214056583051963081213659237494064024493407703574223063557115554038377260608685462465779255145868105200523659128622507395052759430601123026943375655609813449630339762368147237106560882587630574004651201294859577153302855179209814425678702280149804622011601833502943756817838448419707526065784576069989796997732729668174962390626607563682479052356946228610917307567263196183046489339487410437334705045554595548318236968007534974562979012000518076015030057415742596050992541141730231033282388191950723273269591620382183507303114013405741704915747330134051595364116368766659361759818614469905760653608128295465384007842332504039292896466359162479048008507148454207563338445063065611136570585879446510013816561964111413373939416894033081074141741511420392474848908217408091926502559104391431941386746634304917533910300525054404626214828156924124010074097431809897877317690363109642625200983110773012513168735973248316049352232612338980041020224899398743519215991179339702909901836955971800846409747312943456976755486493374627301716031079122510821318318875706616398603366531721125354754327260866276812602848146860484588194112937108739219783512871462409291285196999359861801584921900765685603372238259210479500503554287511177553923163397565410499188593064118707132269249179745968639761014614469579274646818199897380394276777722620973341644477896585912308991990228667254603475199818268468676747633072484669223902378114131013067020499737239127478078461802910718851680516842573140671114457995354496436911787427000422577353513454740045976834986799158310660953710786898194504940553579520152010524576070635947113864708815212772790582755661372637982850925222665639310860790415970354846824188807344678634876116998167434478327043423598727087817996276502160643519370516307421165518382176386596786258257725176438680257729884692963395641513444299375324534853783845327042752332962706557075778965453791495887596629033294853415768366128166468852443533448318377111485722671236622758625278321007224079502216261736671336187461323599996297971413379716436998808324086245091862167466148567565399673079115534240907764915947484994325485287714670848257969732393883117404509961687602971753137002580309316053457904390202822503631346775987592768709231610890252610596117671956070683794499362250593908394645727514151225487186663565145590819905712276285247663773031448296087727436954522397760034229755801599124859453390887839825568687442055922680005897029372568220576375323614072747380946227572451388778230165333332581974728333635455932785384123169128961436457292657406504317637886449255753284069110401546692440602834469289308766404355567303116449725775228799045044338973743638707088728552186750593394813359073096536203326839729839037372183497880427460774150305094679039701286946814254073500205758640975258898643903944057743308566078784838658955060994616811717148553273378206948732411046040014667522333925885499383161198913159291200435939411796779220718137081965145939621136142068655262128753627879172312249680086561633156613354864503012946789358640372936124096252085736292739005403238140305953011423548831376393313129587152838208713057897121550318577669292893576429850455234384775095896405183613947766514742899487576942734732053595843587928146943721294182483496767619752601832137743551303329967169165971872357313633740251875850129398240910903060620201058384375623361531629808742496644790305906041211427979594625293587385464557159253504420631332003253151562729835831665047788782727494951252984060012090052457905396137462507375935523051001556028872772019774613466882889646852643143035215429571966175913533616978917326951647044495230861770661336360739482863482671221917973181538414632653628511706291445339110965137564301602390194233916994951513417943532233806830897895301731580373771918407977474558219306960949104201807569508374406872473780614946245941383105459956449206133676772518300701424139742948870116913008757807840936361493140018293305698291028362035368720001567955821453192837745889196476115053095757835146181146647823217452870725971367569651749052178753638899347439044267485431683212146234348152554478353783259366977503670651961207766192347676686934935763021816675752408714598213390221297672345787051327489739964354174992662334319001278825693660518064163054035770734960702471302155305896734883568654143007967014268894265218937195504321689117419934239993813540309292644133902093746242902764502900475632826630484442989948982185243971335473891602668050952372213379647211850738094576316665894506273676984174974069376730024649886907964589652554054125954238050332315237879651570198640761044086668972062824069900675971626607447259053227368880513378727175243610303612351845629004963153736550794271525828537302016547963496019058175623088326338431686419026171053357806355882074625933631110684548280298978854186908377927120971050566740697155493979167523614010501927651006734581838874075863443969753538960662506825735461600147324552759267794052030240714429153544037064430785242437430038770030760960774723289829331748555078194196356697171655607567470671202570192719830077547283522442703104562534615791165226919524757843775520124876765654743267624659236624538965890589463866557229043511111465002405765705529174446952479221249288779691562450568834178282452288711704069238828115183585144464899957434300735971421700476230544116402142595110161408238683487498138420790068510278756147974815530473577054192273540814674210733181447997626858241470615984949309708255364091386894573749885851288514227411276530658029757628901746023730530215240224377735299955012708983917222124864803393609849408795999326413833015078670948235719085608319973604392655219771582747250389682131945987862326035512961076951912028057286650008549725622278870557272585946396548943724941172816448111839218095508749027033922086224955061615049973324079102043575354041901319960084964751395780514585472285056818624668009184358730737481340059950051237635083561538741624390774022247469879566021471222905446837092433916296478262548551242054398401398613455732111594488431438288037800770857715419207742545642978030941313369170989354130148988935128412412869844180617908720043168237727680663266140339227847331084700301412848673794685828179300215352872787858388216278153912377112323748091531322816286330019692093371429311779428311799808404899589409313704450195263173852527241529982484356034301578572363141674473954148275605561380242311891049926005299335891685826077545145674560028328037732489964268234162209950772975950631793913081939264666903437509287878702903398645030793060481083447183276494359651046278061646207629970646013546587100788322792485530457997714401231328937646152888288522108976591815420753484920652276111712848594303941912359879317671291589731556596535353922810758702601688254451389955020399611269769421416392869196625376162888008228199943486688077601436289979422836403014253263603797969903666834118659184994212604620964256659995616596013510929004244053275719619829150118814318091290617573504377646913574316141449461352383302211581923314785333008014963279462073965330246609604425229096143667333792590681191234140768685869777616983973329989681718610079704142798901959633550571173921860698031928789831284790559860866781949364395375301089341468122372106086681182421363552211114981313560163223303288163925413430374218934572371494566227418721673723272810466561720567647980315214035615150656645396353664424495832035647453247244646820766641420943523875617990668176435554250701246558985885391158578253581877340285063486917637738036397298940278919217281620828922513738075496709153793849245901690433200332980610194033150061456820803402374823972413424659957683884639555718112607504557318872898467542935528867137966915081267212584074250622422855342555931689671168988783882147115586106016688564739782386379723910596239973886411378491250779963732064004852812757483826111011596539455252615377514455478377875898538079772456145525884711629237051578300160973529826213106127650299555554022813715929887902517656843185095098965751616360284301561508801743686272734095195576286250478153740423546052783813925486388573362709219753940892393102953268678990443796700046960192988316345813347024366357490836075298045085869825907685903138609480243786792061341030206608067951208001847287163792585073826535460387548531356212059570056981358222251917100770728735003756060966681160981380403187433886634856339746866732244386117085587490550762484120610014813713562858563997638862225507026798578403058341838955277526353408551915284524688740806994186799711192856105269848825696962838228851523141019599525727664524604916639220372211949758498752035833140915221669837415791866605082500705468542577752057236658865199888587552196829147318132870217070010301222467750830634576826486528104498216054836395048438083974378925540867663922778571669792266800229760955174834382971310712162174518193890127641675801630829129670574956587956059934681934657881388794725023760670782024215346795757508404930301246265614248029340843134527932264253618377373250363446906227266613879434657855913131436217287116925405551308406153331472985057950501088751880955754413265559217753681937244438673000841275988149079517814230650073354735764815278367527451881251165998372662425038785863622409944858606924112678982743799746097163976623795246603483520875087114362752221945529352299381016578176146144967128025160191115461405930410771084220424768945298406324858815967745177620083969820828484176020857626807202956416488550493370581861085037198846150839433736386812929808492106638994814361603093207498685491804787319981121958863467786557108386316250363950281863524167935064527231533914563464610507064802405208340453458603565632156855495983206200497356316080637224375362671406985081454638112814480757814711164689954449410352472343637492654988569190556630597066862434248855667485188491341738574642512494844797609229117306496968142847487514004471153883795503080477613843813541363709725496064277895697878351307810552556394741070836891844308264427505067982375337778746822246636906629962844049477813684052474138734968824536226484540244734464903142444335337974806527213078157388222049524377638168084759379655911222617887723910466063763902862860226444739886321083529290356066647198410909376579020456588291718338199097457737908755782779773312503264338059423814663732193906786874991222708826800238425787272584287460930460813115886926145364071782896020880515066455634319425774533884825804689593897857606319904954959023576830439682463998873560299543318593887023736419731050843891393452024707674724984128602203654838450929378747589570576528483020820615501348236885768541336003562065861367830768152749721003044330032146189233481501265077095247532704285735016661714346696410286929638112787892097981677960195541917846729736742991540767977145936701309593593090593761475720457879050425621877867858094209628847959983026371273341925491056272993945856580575655972740446113900810286424271937798270278939044192257502088348398984353949743066783678644315053962910944337574743495590791233608929869514070395968279001032555079936201428080210017834646475052836962652990033697481089257114160440316587994796397216280860353649559648190204259466925776453928846232525529202385215906669427954252093910284156445154668839465829567385237579243554829482753328529829721878810603083352487007260902356535272042951673025713893110170953859909181774712722839752287552951086545344800368829385603723987320164918395567966350814046519907761856918592810401575732390544458414467318202309785712156962676939092424215357973545105657045965604441705049461571691832073472487373219237439662346831073340087498611724840615321307154183977400517947104079690778907107949193462759713232604304114608120345068934524096387337314798058501977083642879859656943158481776361840416208901235202467782974448809349214404715974177588777611398967163557202124519513897918804728010074423816344421235949346462115662501283678226121260983535805718260939805526970274867199158544091603784415984785639675144883144647082284466514011551243362825398540288805907211656566496709054920664546225385235586876420592028851934487962000628585844220421384798839240902119452239740358324675045442773860950528463273806664868793626135101306390845789174371693757813178239999005691566103445002199863422994979487742219134312727925716362569892029880616893640372614332019586714194231193270301925643441646149901409616173299723716293571719697436980933674633027879258204461481171057640529110085296344366308075710743626204144409196398182896446757289413222751044756170556462183129727780296625285598771009567396077228689479231248426159351925933138073624864702792398848345180961767585069313635814251189360534520231380953127592250851591710084335573060777375555673529853926444804264261137188799610850778998529471314354086588251831229454183075724626123047690441866579368744806018340913224094192772963689148942297612371054114181419493787142163039988113622654390682284120899486533150249462536310612859906103738161621886857545669059781243201516146486157463217378391145071607070577124774097353212094475628060763242834406694751971248348071700900128629330032083323832524501792024959686330521276901202106105913075946608510932085605291401435577309229511993496931207509411678951098494858820140851980654398746418562539019660425135855868115359940606418809105621906859396899904114745561959411986619425911552691233103550279939623542828584434412482052710588208269930645874341015730582668906152049356849814642512684092584793204586924044119338934276444203717067286493356756209228737003549788683806664766762637596576876724922964135102333260126890982399762851559903260405228615210051071484020462575611579861932327293521616805907002884028300738000593372977277861884843922455076206067010499008086141019021967540739225988444859769862763235202006349655937015516431338901528125673727461772061034133076876568986741823442829820360492834409641027392895250134952648809142272498887245639984768852075460101023648610940312967090699696466818493502093107039754595700022195908381688851746719854379737838192118686798146504288429440553412050654337392904951839371725899432844755769710419298429855635073947334828968004882236685410469460376751463339857204512764226941182487570040974567245298024869333213486255179087714963293669058443456769535241563736117058317641724838555771960073331370689240681701771872747941260135064683312774580226526544260269193421404784335950759370102445861450690391787033816492932718611121248943159872258444460129008766085612021225033919304855390989826534591752963079589270358688701550164679675291696849132989511618190720928707097867101273966174108587196463913776725149581749906546836256748103502101967292223495243342601617026862984977836321561702891120423399107616496174445610686579452547527605271469688084968157004781954747289704283920287681866316061561229091527249026090343013297367306318425961889879040295727990997812040080546599519295658890435587511207708754221634008826596810878163114568220486317015586729256951929384260908192878219737875200892639074478975594777766004618306057750506661149142363101889644794785962566733243967728358720134632175860656405174965278381012943774369374807691329637832031544151392902637684420871367063597925423319648085012911103821416119218184494436508892554167615526171685734090150429516373276770707017521307392524989270191140001878930907162064271066660503349523254324016109354202437069907050287556012210695137098367961977279641912487871781473163832270168392496555613500881590870074790799110459766553035268968787138592463183169434409137705855380381742368952151984526541397770626942457986747372069277680038474431285053253553566181404087585562545342905065181598435223397690968374293318275560919813957063864083951370916760768997333718950194148094198105840929714005195946442149384757897255359005749139943199230047368602541059480754161757309054908319636240242254976089784344186738257400128085251995840384913923808271151653207806000924656969133233962403979054909412975369225270197699812877576883523370955012406057360611158760686012941006740805774904101963878431089442630180520126040678842337793320904511002072717274921069556533187785327563424962010332053775327798029938755287303756764666616926534260294401732200859300748277013810443889713277704896467499808054059066592301298321297123591914613294751516116952840427527150894232029561001298177909737364203856168608181484628771495180712383380946092587141497649845398302539286624970795421458684448800369460695537066800540411135065936099292041959784665907492045149532408814926599730721512821629568341299886961164314916785933414182142716629307597624734032309932965894584751438009300291298713644529442666964160467676059026007231997026433012133606348374721500137886795857941487820075997248670038533021104243361914611132104214483908912203847841265741502717776996335098547143369849318172489658309590867224421094971112474984393602872452350312810568187092893261073963837000030796013193277147992326883167195335214121879349446625633362520005492816578396121962147706589047258136439450142975831216740700694230872152849163093123951233169384467552185473098825713887054882105598956225827582287927981944623717009624190004977214762546687066505069350218863439253096076821087212965555275367289334299364560765662633416262510104889782890380766303853388053250047592616552734487821773780357228613287543556424730640046748095947735242404423472774236832448550849977928679051305626819797827422394993299095345115504963535117497149212461385125699759961173977667076722252693573330533188912418068937933028838506602180150167370952199747400731782605430712402247804110850436612014809625529317566152132577602500565110537817784965287740251482042009121072169395917709030956811217566508844706541974204010849086285079326178783306213267638712308635677504787141181298536600576948699468154244149505135933180273181044380724700936115937952587495203260131456623999466391084437573956826383184973058267481100203282526143182326351391749470174891275910101117770516262337571562896296701306495637906136300291122272159181666452537548177638960801726321911830736238258096229326717131955350333093223968835263583870390577993646759831602783195527591151438033576359292231096737145066483816078918618030457138840965007123755014660573106199561838692474681148433789650053222141243660439714615448373574020446264008648582934323792833080748500670644211551850185397736458942337617129084267156607014573077249598860967077698413181039382656447559172005457893780932142248789472454112991862086326223974280108596278594793672784377502143486732952500926736013919042454835153918505425484023241652755726081126842064182339534974634715015825472522342787062803186395106810602661359931811192355882923251618568171237889545329045428952810334363356675104964118279760709752815100521452279942986477096972986416585361319887513139734490395983394936239456576655830334300549218598669523783647342524359515635974162503414519423529118386269528265425611615109295293742661543164154917716523347125134137497814972387652789759005604545899273784604161379270418110334844885236768326092092996495196978920418244214964664971637518039738892046267672517442721884502241061520097645490302930114739185133217897096019013996485742920165320849474588661494354868947192724039527391857599834121355615088617474125060895268234043752442606202392723332458374297317297939754245739358387857618507971714918750778456212677662988805598816766648620719465298333026236041520672650676231892308375935054517328211738128723106881407595665249405947516348979739869625968926694942522501062818789063522011262736091734300385330354474680191416799241220733241864619168839375526220050427856414556938696948181429606578087310605574968443875470090778477198917128257740715721395870832196134325317206363759549818657749899395864857178756732305244651180941599791577574644624837451632524264409959298850430555940626569435817391184085322647195731090081702245350161877800556863351464355055572549585262848800397649012787199781310186005648862706977720952677275942745451140812310513824950869120873635773661300664212922144872714844489221318368017585302865427941080663957684206365941612445724702115890830133599233829261604813561464945050883861829756234963777363889601775508753963778966100452691195117170175564187767563525086473047285425304939431824949413558901715706240640098052391762259350701080647451880042410384586982456754520517015784213392827839738049395225649840801548429636155001788294325063395580538754491409546166635087393002156577901603826059346091241963280886666242956443768313045428733772323297300940880179230886569512241311646850017374376998169606810135741878330636823336131955271606717987582255836839960520685159478281233656883809610578005700569044812528826449815552073166880205202160529193689435312123117699429419845884344292556732916963569486985343484313376786567862098938841511585027212899616060407953704019425550134943383893928508392945674360951324978097638088279959409136276867959174429748802157720506844676499383072893199578231562736564280487464623759409571797354345370789979597383900944208406168045621011806785134557261036046012242863035933437294287204495307709872431076225508686402850280988727066486465507281927941629152946856780861635500303680456299419698572264070092760159661014197825885110954376848553667308025787456143082848962245307468122218225342395923422869356698248036984016571253176745167646122513801233628477580792256673256637511447288527741735436541699119210610193181133551546993203150997923553156264781850811025831448367069751879434776942919723028300170578447960490349309487503928232592856493917780118933919347353931995416443169301934911098042275298530386632585501868979128459557609705571978773552109469923399349137829073128020239616432163081442663322535002330714816355102506421990744015373419006923931796021093571186611791149603002350694684840689472420204026779693551070935288768835375512220423068233557071910329977377910766140551798458592628660392600487881050732195850827784283294606844963932634097985569044700177554545338339500589740230369155104452090348531666360367888320107010372834727873219334779816059854572543411760682034435994540915155273726554566947441373981949162644426947304038749797138012376313488595694769507271485165395528875812125019811673123726940552577391382885026184997267220413297187415054006408685026514725853936910258181041754160334020265922759506850152419953797112014315918401523333830263527396069310559414401439383398336404084676499153184607438897507393648651951178733372818111474185789614378613691571860109849385333213604249936687293835605338718139238102863276421897848660170175933133358213505603135640591621020858603790640650093841325607366923232262211184433096820920678701435731899056558266186971646278429392666953311933186847896432795856092418518173211872070709712956108731559705494385230500783900987272736925247376097081617015973029666861938720507972265763044997934902263976837508687110193947269494129927439624757390632435799797114817039237445049266974504038220218741138185346413244801810406605266216853813175980754412618207224950920374604086786159173997933772021656290291183915502526077580269807882966496344305423312883064799954324761738517537587019648623459206447369528309896439514428425143037231833687083683726331851402954570192638766716031607919889547056100170290460319144253543630689057501809527902259849075904173870350063552905828564466967904379374713385440907783760495681852012407681703323481388266895670650721607581996460706624958228977059261823883034149123170278793765200249104663609227651553476051934638321612112639177264126326440404811604509471738148119392905502466169064491422210436018410054387556452833995275559691364184750960750643661923028936640857584750805889254829754436531092180598192549557193845520740352876952890428820195867010517582357789935896144048335237311623588192847121618861648591273150376554664868320241627155472396690107449500131984700010242102313929172396511685985725229899418319571848227794978123703912698116817243717963363044487642091113800060495358203377117536834548335348418350490364562412042641423995468185358274878761714564005753901781146545578174924881217861851706636987007744257770872609118736325889766121266573023161820001429076553734297632296796636133155885255886945192952552201114488481294386950112230916540577287456778210250669987904730398260981998162705476955170862912427246326112030858257123571517932393282724094865075327820159078878724278316090274227592863007214913059075535870688568098462983107510641108126072969212451429253415918644661569639068703621411118846455496650076427024361282779400905423962772956305504482612024476088870639825221642799218065245748378729386311383607841662635862774773297372718053568920746605232162326815028753905381551084063434923981395938284878410304092240937610077923477835516137894742917892620224439375525671609397326593885144843742662830443754253540961525523193805497165516706260266653617548079602420839948186474122221094054586034627925564591098553020762444107885045267199966272254589836878250443338558164245651686163088049370034762112154156857260108906380846055417427376465850373950285507689903425410271947108210455153512699814209592091797045260703018665254352057150390586721189659055450960560812289779659379388992401378048711181426636406846591536372937666713106071293770679971724253919346228249511538242211282449305466953451070348819848057994426477016335052611566131869924919611544567629692391984500734866878367359398007336067405960955990504373538215301099654548436134130547555513460796238813896395979191926941037319217117734994233326646253198040991477323811027248223199215446355760360767770112778763550451287229232808290240321872883809570651656912444809574015116318929901645334054725469704038423938105709131578015617602675590187465677447764012663522577001062878672134618088965318333114314351115654608581096017765282546750746250526272153551171125771300095621831318321234868342329950011298797027777235992344706027658669618985533092667978240560309697849662322788885779946350844616315375874281484437913690909267818445067937707242745580771215690092200568215344607762683187257258250177724917076954711377660177644717782307658405991469594050962474129583483384712265008148131981727471514954840192225940348328699718395214234682708186066039179237553886506127893002373455579159806214115867477617426093685008704868452166152611966233117669786877230387637946431934433714634700260773833344821139476338452857629645298930112622749378489025459406420133472159932591549680616972192939325024010312155644520070000843160085596395322428040008978138919012156336952769859351321475070896178208016614051504698288972553663800340592641497493307011667954233292384376300777697914509224372905267788057707802352355776669874475409517116760355126357155557448060476080847637522277494069592143144604565410175807137861314585232121067369113124595712917340911133655627990050090304143685924302183969201441401341567627167556341871395299303480043976056964733569441073637346560867904099569789773103454006253606061937001345737632326507799614516719696178347512851983398075444637320408213758920667774037979009941688455021291920334044906157642672997235841626738797982636330523156552446109943589729050714274671962597400199012190272062169499285784912483868926287540144802104086313729044210423839481535799367560914524229229990203033627789668398106498133455845929303873678282173129711252574532716437652427265331817304642118739263223179732334348445539049299204183788117607171038572813011913996539313420647701843348102720078594021136784623071658318967333685780380382104319383661176130068122653607097972277930460386001835357945635374423771812884791889918896048269174092878297888356631137128539319119924850260749674381013862292609276748364075945952916975251867622153234283173681848961433414603733762085331582739140675707774641917212999503836401753067222504896187890882047390717445935033662509479984966744127155188767768104508815200613419329510457191532328010217933779797176777183971234520101101480467873920396228202670394623577459385101838028478154325349936419009125424557045927555120270822140056970591526429298233828181233604038359515283823792743501256475597503376674822345157075070718066941727379509658598880891998124715912686430774771499222492661447578702360277288392583460619826613778206027037494812993826682564939387718047624721209793866985618538515328979077467249292505016716242446767522737614013700700032571976840080056023199821815547053730734263717688938753112848636694604775232212151198088797422495956838644767793706080477472947587842126664831627136631779056964529880185073617248938422030346101622044738911346785812535732920749164307700320425166557113818433737702620353801218124536064479496230087116815520983306276891931562590491319665106134060082873576553707893311209672481535639224451551018620686605464996909190129458239825556732475211788954654474146840306256591906916659111614756365264272940320812617228636219768171171574697341952182110762979879164729226647340375403087859471171040326228274207812406863811650270336731621777430199214784371122751128423505542768798359512407257266704893671081543145797077777374413354176012244652231933222438396689052971549927940646719118745858975168175396725804296979416766108713377669909603836455873999546258106091252675652463647836962709958115488864701463858327062411198422984820994416086291445123052181705973008430193726047798924644203544916540955843210419218534399153996880203013503810936440739259175624486599617109908951476960998331809382575466769613155298080140146137683720877090471071429287041637476059455216518767635276365023209320725800321243512314386777835057219922657366696816078159075104154623619336499411457327940387688764264652084298986219757986757591960341512097339510728014747255917878925239358319483210833090117710686209423882699185941047246189399099539023309138909942820708044679911491006709933463679563530611925592343784538593250962163017911841893298234961464597449630620407320686073821315348982095047884398651492342035092698033835099875208237664111029285938440250054602313926657894996650779983431341019376278654819162469961768028178850858689317092370772255257779819954523039051878339891146462377734284064976337140607885363680401466845341047355320446596715715381145326550969384647491017126431827440125561131927439373517291514388786463420379591573726130623586836526000586771024352668624020912920851482798200382381378165507683493527682261057624031069397996134530435801110663640497699660240297819380676881813328684090916709915331699118539676188965749432610091201799281094709099379376891945425255816188568769420896535462536739100489133292485615880698117282170228409329752563624727107234936474956239100466056794312293434672677127808494220536165353777095215703087622914742686233469637955074875231572663135762252218754164317250707840721481676168247116060564478976827165613164892941459295275310361859575427024895455737670915395133288303270037989501899473874795717848583406899382163622057458214047426940215851579845147020498451642281542759249132244279335428083534436680857944037774178371112029910236411421287520332870929695902388078596150911740166687802976403357202342798725111190351171047768770437092296982073770794896349552443276861067558061666551606100981422435972483716316752816777084149339402453329566111366467231832468411162006311290147333661625851918060334446157436732542272480881064314825260245866087979709899611078368846663015815578859130660552728585558085418977618321886023228882952311103085920829288982464622093652071329218490715252030352726343962767401890096108428316263620494229035405415653717958498687042670685197392913043149749160349173150270988971412593879233511815816622512993467069026183807326664006340034838922662563824657320120870504276566448975186026465262655280703758902913745852016278835389252171642455531578621862344943998804309182381829685050883360007257780369183690908987491906043778398239328469396263417684021989299411447531842424586740946508280704763992659344682936849905588315818331359094193926702406208078690738150700372804259843960635867469339424895641948429493660216154542694251928309526278071816798034829634757534697233718977528259555404547701072042638958804515967757339005346544354865239402108439885193491423433062579579629008990607793308998471419692039062267671115928794093605855661057447030531505418137891814366378040351344801237829219023210405743235875876117955508981260410261024854919448730019154116664391825555742681169378866881480266017783134295872018918740795400741213892698139753731818940158856246540184285757975449412887137972685594967439025853635670448323076717264428709939635129773223337820039954334411139208288973659710445634166773610438644071056881904438713750034785939490371525486824497255912018197910167852658022678065679051093810256049309179734943295106696878329580459997339510681944520830262245213160741301037437436494885044393291324210208669723798470021041816558870857759264985703668837926920458914429804116020450244581660791644944945044913330100360262426163908165916237718255911821247722302548985011846590775417282061130215909178458504803931789102845558195522907726682418973493299721660874705163299373799187131084735942395704944703228068693933157105830686169641829060361885464395401419943644726135068834658994553344810325395776967230645277107327406182131832867314364012465827844156466893933736892881558316444099193001646213226489262890792710214331318495848853151113513143703728530352775408347287116463539631700614258718023097673100429383526794983454686332191740735600163938296774673833598919292043391405953986368794885667148096824874813818649351141108218536293815019114666585812852711801544058723964601520569480941862375718187455252630759773092966510003431239430118553982631461730467841480592620276516774035785795956877553023389607166738053932391256346661335896132847979657149432162888093047448707486385955206677262711724016004280551052540995718291032201702227898844409271708116475274701876933232809096463869618479715541145494435663440450585682930306041039361489038827737943225659861694603076585822988898645074582575344516752475303831793739252337473326719481403538287540372007637929341308614562878907515571032977834540417489368251063804488351407160617951248627357965839998728346544244475950958163861356018334177044152506723628142450291672445823462273676607040177736573726520738178950680174964667034965272927322632381866268333327294745218070531309306718628336774158640801242892800881339534030502182864035097292106141768719780151340614927202340488090763724466365893066945579907502554749664419439442860834195612629873839827067446894841711876558658700557352651469005544298751306133618147383667248088272384847152921676584369095678265729686928652692484675808744401880225663430901200050846145538028959617537463008889516533169263827217127098434567509739299695107670436254066917885186141680429075602107413048725203931145615689873444938727435588154470987615956992390561903555082551946087311845339252741123805303514968477300512209818911382329311122429272802386051186733068007277307949607303560046157009960025806171595289914757865769528849911628260151027865716803637982864680690362601271514710936440381889295716594325830435859054288939201450191975120189449104783115024159961832470797812331619609751522554855332878388289510748220098677465646390244189306021043963564055705304231354332141680856336200868409078525030009066582317865378828950430308285385646592710178942165101028817843484171690846230851316033593952709203100414532488862269083733412322881748643114495658533483377803329412103034333781391622241170558613071393682857204977826110963401935856930242218233213625586162913914220731892191709228915063943330205878591564809619114134680598460194517296972788694908909926411157858717509089002604462860210504810644698746258024052096455359896722123668302416246872840018296300107122049020591493061550909485185836045427634486371953002551012921181555421284120503548760097919619402149157440476846005158987387967614761564960052940872911164916465764295715737098651074860136606605121261688870673518151140025867287685493776502693275783444482653913370819127514550170399654019472065272822029094869236389968714862528202436327961982092708068404235094132657205490059933099500290429129840553405423069332883687798750279108091445680321874089705312326999801512850218814478812767765587353749001565874556492889419935744822158778732850790412803656807878625593662824798333986254244317295743857874395447316354454676969517227636203073117103321053428171679674710276543247639310898792376807619776151634060694222383404872317835830405943700010160916858256306423173838122676263041914109098073822239569019542539388783694769138935455902389948814224985438521294741560753187766986310888117562798142960152082563182317249847929836715247734181357773474520283334972066561247163781752611037659118315317350798936080465737189971796136890589502028725199494439768585569316846372138234917533859012042892839572989736962781784293684930291941223475760117153383525786201670691985963560685221633086007667659876477119408720023368212140263611420430370096302027587042388506500144751393668994372994631571437746008508500478732843027470165261347436496182589033987087673686958323402934542401392192694179255548976996703904719551783723061422317162565315903473422810771285657714665527991409831311685964610471197166329147349715209986355458484950067718572567518354926830405779370030974936509439151172697452263814097797608268508364123221331366950134191865907261138768150763330675024821114483900804080750959317332146562662028631037118544627723656224877123429492360499381266038015147253168121116629589856609395584603584532606532196781855093025433035921613380816606218793094599606753690149209859320571157381771665067035654083292379302107373377055792157161911643714337889007244327160599894252283222217805715343765284617264044728103155284849692650451833215060635378448709735466286989124578278270870058092074559843778937228695539955883514216878371344256437174738618107065549651723202514898607943438840693186894703934927093003951570398693113717021564560710252872585083692986743963553591528271243277195737769813056307795521781101699010968756254775864620811040668151903193013569252012250641988066185116327660245314892448117250352923896051931278772133847394730132212193936792744068293598443758588808266948814879162893472372613985568911397583446924238493619372197240189444745714866290591155141951950267566535551718914572021768116785695484913600011634601393465646821531310755198909881794433866765210296045118604229746081350209268395951718533189888075570914018702805344439477329084151841943751703804398184455028785453873139998849007659502474458698339139688289948489920440669390350047623315832819188120825101541609032586062205870199576364156524863454452594032379817101843391293930873098591540895247767210585447437359191554929370328461265069868840883182620809609632459553686739421118622503688625065530590408416456589027495268140109630064582485103156041627514756766168894469947133955051033016762432303871205970152634821710657034050172732801091192082626335848497136246786841699053687266758101098724221251221016174973881553655912119476653795388043537977272642341163951393154520395389598917975670604009221503063283253178073071886793884149830490113050225460276494906363288057569767254070444728795348229273026132688575471901452295206089131281936316430169693148390677170914683867486617346259389964168085149551822442517060616671618179537032357016675640398690259930802753745279209402239026726970439099956339494325199234136105008041867297818991191058574570992160415887681756115746917132657192962651463364291268567635622493330853382243928559870800427064823298961277877572300567844322627028522606869750332038712223192644079484892480280596698487025724017684784930738356632599013243602691279748928122797058831131037440052892467372760250674659539851999003891871603960070970422651357556292784435587673099793831707969354652212126892033135284551858917679539858948561229349497534433012581741607437573470879658922921728237572082636486813676067633976604180562220718087724923036402203521758527331690508035489036895049896734522067402571722712744842940472996234442065271710845647354020049808991072245716943518687816977718793813503781118711858242017077400828208130459594273372839714610837741048057685881042532478732465391378581632599150795733054439430582080523662796785815118336695478078343446334591611018651680921008451765835991701618433989538341886658352752225851224148231728934571759550533261888686220332534730661051412165988985894739588726133162790302385197648862071720271566199481086783965044762955422001682760845868967412647471920231702732389012463953646707637706563320902721762803524052554374938144904188647430938320314088743542018722400245030941903486915232002495576598079683454488999662778366787077971477391737901879257136010427452432029833087764868868146428387641006875983061321350614269655515503724663430283969731884038693148715539066678672896227187308282001387577809243333873920181258533599038902513111051212574141118737740457104256456753942722099756207483664719134123450992049006917277851085350052756641173501095274573733581591871148623527975778764563396226773526109594494040191571393063082681497497649685412402837521474636640429578308726688145929567371476817002533610498953806270440697167903894556460390566214883447658305941588970517224158491379748570090249445469352588778635742429782418408670650427977617766697073419990782658348832503212524439277488582152342959109078995308791156167365444128129087131767630558458913410626692702621961085863442540936914411242074982315733135918365866515750541386820795646449633950707420958883045139093968659910078855968553790248060140326989116551814297910748371446769208663364562365950650095192505346938049866589665387276150350843908573435656380652348676257804057251367576127038920809489548630759743432360982085106435301393215372963663012702685814231135002785164815198059611138721056662606807817720827944878851748655289981159167069708284741211286423116650650405639943992753344976553295883478211184127266858786519696346472978993090921006534776928262083770497615677457149687067774388509767775461982199891109710060425137565784422819068047679140408302613327485859416791107190212891468442354359257324307285069326856240260529600148002604725169443904752278976662978275212410859849407700038368612574099810062165051146158145450825345451493490800744622884478377637126961149686192896677726520224023998715753233666517155865727178111788003302958756499137163856985131112303947599311670593250948974204013152334891352107973884395666134324789378071426281634967568973625564759925210050087182855935405201237376916922745571393725220956929579657793457972980464023354059792356934958489581001236840954831870391816281703973984489038297222662145067967223857403926445157196815706002260772852039495795471350185934258144271052748943393813113456179698216775999451762098769719058582169059522721773241410716411139402453122562731661326346962022005237059054468553615983171806598685888214345790943705502263130436173170074421625960251216897388139078742638982095945158885762168183387335472329943547886948977890505144307021622479429124501302009777057206680635000986013329123335624251647837870140769896568505790392909683673562368046878242841436758065243828760493861411382307389277050255072730506211483721710673314792279540784681119029429327000220301091443503872026642441751910576956156712940950420884909935623407035945569717164762707284290608644221570948896225236977296593446418017804278470707504052566455940990148206972025408777923848496806889468805092451941865830145647067447955753957406200849022036995147540484821405326094601813312673422068997311753416971605621843255468885465906200011215714038550487346193739041552968517418448471129045715502637013987954577963725753350459588778068174984101009867914284369635115986094995537731514399755667444566660105059149365021757638982386512159971723132794248133585352249414399342572247289301019415260568367452237301860957026041132192987612208474868914651673886051031094166313992424941636723667480058314290920726326900301638797966760233379505251171680029301498869357989649373406626800762512090949145107419248728356155589069318473365321872542625013091829063233663350028259086115445425407579966922422783934153869038454352999507181282333007484605848934780301368473345968740170891194736638718954412154627553425073717547585152160919857294974974722041186937137389521711690648464552641036726928135491315416905324041885395496027043223841865347382581777452467164955889583271593400064623553025815582322827404653572418022497900975046054743953506655742460125790482032559606199831754088997528931636756474012495677600269627632807891459817238433473522774788691215912607888244481020391900907701122972471035705671615248964158714065160745664594456170436656591856613992824817624865169617871188583403114418456279754999458829801817307057910462349592160197770716779477555737889730344080545541164504838524371505701023103969983723720864173948311147507713836498069608615031303893333797850828287548347472764043818736457098886979882905355641317679787241655825833083057208670170010655882282006560070632374778936158089172042967059996982234424278207276349834995713746485242174468621432545048200333946270917580984203586839182731552385606856368917834102640678876999322385875042202242722687243137495060646548159094770095108459370056888124681177528805795423701246317333591205479340170577735682667598705387875157453220607920213309604015335781258158863798744420330645560166645461448288161972685653416289786543792993912414390290948940568948395011617750318922911671145840162143984323686566028177002757181357628841216328274890260876739633909886050460768094714881264745769525874411104804208806895252830408053746909408477313021846511626884026829685198289624481407552071665013288837982279191292297945499442072305658963563367944765814716098980802282827015796710083294010844508996547325919242830313824916281475302977939465150672162339757495741264936662721853851553114622108941453392939503509727096982273599328886932326300768047000435616093913728213105840081776671984958958112819100950166475432950846057180221077243900879638252928593749439311606714877315129954663534144996951923056056624512823177398031030466757813029528774608936245901147672747794061579018517820142041668579334867507282549915226509489645711934651810279532109642120219034961102067355702907476530193383151777252676393355233485585801316026504716967854252389406633855404685645661420256753406343807734043743425897571538294308217637417071817018725170769595246841634399806466197093066328417510004961305857795027005109596789892930884481756402018848597887443947754147191550244767885715384005255948828048656415902143614448493040921540538500107991618868987266086348378827534768225869285463908536941467922905474483047131782899852675867867020488802695012693058729534058707949067949619310213543589567570688697998289612381797440530694563754382073946383981406548272071255240525545062508849917289481367672930114823947566560038407554555431202317215977196991057909749163663998458615299251382317539976466933533827215714910239742232407257693631215804218805337993601711773761337110936327834170184201156114642403169887409761564367303956805240544175489028528557985517492194649541392296937664357688651279590176484759641227542918808979360123843106107322559834949802818774899091792314741846972162767168052015499715157301422309226821742120037128593793147284956147355693623661286677715030136060020826751465014658201742994444412510467146032703951960578974982726695471132375828741230284902732915889735255524327740807468747952840576934998086942396293871130568753415048138809937397804722464739973834436351886916658715132901315240905505379337853891901265698000975709312754699074413649275953108919210751543348379321700447616871702272514892337696755672836449840811594749524374004051448208882235646357025408855501448567197235935638428292774749665049676597096109188253836227982622758356266444176094698117217890914975051622509271789185069921102258483396986926694606674469283309679063351757495767600553334821831538295844275685377515304395015905233440171128538930186371931996012691545032366509516948086584939960960845815155201513197233557826610829755276050725128417961796131707821978165209265100938085908230884559694566002406248542301734893751842367342332437848218885060607265652496245305333045990125199160578773828940909797402816044950166095733895779939735942418606158288135240026969168717010194036022012669928554729652735984552886473333772664833124752668055084002341576053448531523907094059204578316054033811974354642021667248946563151584709177456938691126895852333629427824026273501505630756462035642638800474114876252685700586150058847059502607673742821722649957450377522304150633241603735815476706318459472080054336661002256617770452817927173498785311237029765492364468633076918883916812950023555138821008950130910624503104575433451369378363721304992769957816535364947903459334615509875682203120476128230231897713751115288192731321074480056657280195848531890726045517208648804477243632923278233723628927115296073312202570610285147425877019943144563287205650700772037618394326624977144361326699069995538879540116469898790577694339332013387617977609701251642628858236446944129122998797085395806115170055356830726155692115244188640912911351386236393502014905282707737534242180330807806004933547680619395479854646902863218341690243601777295623223927080203098550510886702466246606674614721115021176672928136139471283904162865453380110917158053504462525346915607063364355264924155441956198609661164853367908106105895052320683444269154050671682226980563037534215597101666736997992868759092562290693105527502485282542442402230575771887051552752006808554853533889718843668558922032482401858440624977345430619956022709152442335105672700625342020336937526956253077666357036737721600194902020506703033892562883401755543677867267868609775651882723066749089584235458993467889538495291506259057006120480894581392220313626316897209582090211463675230461203310620131478267769881709386556962125418773793892937247197826270621396025381835276493646088383405072181155994343501645265975267311108918133384284731016900600137045046580316330542505936911094423333560161221065011130828551239544068110262921253846861746174743273230740417105955253973733160640822412371401145532979186284397883647082561822910086270340779745827686003436366569329505530031584159848649037152196835782698923901783799360367857121999644431857163300835003956190753078866811981245955378388219301309472488980104514055973184554410826446899626099064980639082360383787239847472347086527900011998116006729819605609364000567774953953218277033333734915636803128487369280844551441692942402100443895974705438757381596379729792446148489918272276658530792193154522240174862152752846939513902317024531873623926250400561543211764085252190767886999336634376993318876502052295904395586127631879064919892020491936904912759304479162639487701399283655400815149089565936023122914285317947721896768475156912251789498762347942396346688776202137931927691290786358883280930105823410109665807905174975430018537563883711499746032499889747493909284397468855587759144855516788211855844657608332356463757118149783043482068816979526063864000583845750801284554283247037734282546755138216717080605502335775896543800034128797400285169343897038197117847659640417055467904310363195233232482803291384054209462302885841748233850382850452843316216235837283897443266311660675729540531115221070803317261428778619837145594628673976254361733379779580831541996584021136299330832578597692257672304564412515400987822237330149041722939417020950171729210686056549229793078118193477724774271232980669776723648082566192633779089430183466916038950580616088363409026603019645659906106993366739987502997907095048607619228588952738643945711584083173648748549450340594144434005238501124304268672138834092074547227974937650870553573153169083760922049553837170866588590573424206962463344248909953907548525889817774684957224635180164191925594949684445864735143219544503172691806660722937637336583317697802702670854549884285641378717964440366010382428107811237363922427549323479626406929847132375422828114253266148871475225929206453749342765757116569017964758790269474811951490473287515602283074522990832157698778778720253645117323096110607295706016068357215186311883648337112508669418361313603928276944292474177107953852789983396712053245616251667862386064057259074207342866941619222672144526578042064998147948492420758824075294864209437051793809487211014087186898049196634764592482509398126394322113622835311061375653941639015127718879836872866092508408846228227753889092257419278439396983104243397160773273861484543404499263006710629338653961967002427097737893997398842696307909703498615936305501688361514937193071029498146911500530047046876541616806664503176964655485818728271930593104186450875676249989699078352339141361462483325190402113034743098305206373199261870710330743356900013846901102463692816124085246458038155797238230329948269530533927219887885027699597764228120191690706162822331910826626237977975201974593184557281232017736311023850695302577662778553967019803797022086246618218370674977649758551760768916873706361450253002002381296780792027214659663849488234506218124242695491631589897742734384317311382314751396436965876093074105327770030637371604411257397029490858459588230893576293176698122857844615984165955634810041230389072288266587435607260396664325824542836802544547395049536976712601822193071522962626432983524637597473340541948272700198768688199784405407452537674222643098706667771075978671619576779291540482930525090097484694177395769850324101517121564849179686561008506633239537971642779473841030458842794282231636549640819191062038334295165641341270422979132145630998572619050521714242126038788731220554044221637480958278524371963978440493867988965392912951541076016376514054180284467272551482874310193895161736090088944618071191253558933582682511313097065810946116297075467594658151895268504740861999508602634797338493661022626356804452494060565148945657946555520110815171263108892896156971902748134515577085815023402145605987389101010333894901929002568965862637635798211285193048632985926212839792451392479995457501342208544858323972332409224530208558833178855491707537521252231429358788085479373284142641420022501138880075162430702703639022294128971852778075075782543088814510454297575833630304311365576426719399598583190937707945602543492842746491029086431512900527815724491704246329693350804468873601348932877297330299673775866025382939479920443346977424216551649714141730743359821625334557259566919632350640220160055395077889875158966372595922926797765522152104426960880138601111119456836955843115504924383656772097074433414272886808680961220769414010257238069758921654505233219862915064423007240657209977047506195715610742809532842820612468913784796368767641481105971394289039789779793393398582893396892888878289557483199813013281302428790631300305838183162322509836237829390963543388022798551743284940107860681949196889028671147888237887768086456593543413179008206932025565556523197015149799139236992918360588213970804577770350412266755032994793899364221558806953840338808834446506193506027721728164451414689827672650340477997264698376239543707535943814138434459965848383012526584817672499741522896289862755619295796361628206688056259109358683598363681138965982720998155430347712260609369065289899685633890745318404637165000739307404030476054058760927530745084465432650578474346499945339861715224152126486003988701653219114695584525564644041292236606380727628196783134409423918628590766652245024188117163823194005051150007337610660816793710585670816128745867010670371453774614505622215952007819610611812903964625984984921005238758394916428780617000311704403602943529563344225831058812410899864565926339399735026305675707278984828395827342027853343187812054775870247611557173869771704419475750737710575899012069487923475781819054363664286399652862657134149763300265838068642604719889004386115668831795763580444549948929633658130286986991119203699429404109045926455080829668940673285945535050938822873509387089403292049748445279324762754779020574146095194763104608703528859099883905159736209911856376827352539730394869495172277702409234921316060422371835781128648975301356635080766975700166093962725724405183769193903432163179577900488408654217782432172680914862498934862770632636998260150860915318537849462687934152628808945740557028747119481715831325117860891055492510010119131155804327589962766466755129286749351172420411493616968011365609597445998312797476119256419489876768310237060314602149943942394365203838620920069993963703449492453123987999850869105671001054716459371008993676326630192812017324795355585593814041344662627544511859745515762529064839609492495865993552248504205632039421126318127328089369497698838068109706292368006244295637894935433353525700002497721573942523027598803620812230495237804478429792072820896419613968853885812134030871922185626786093822435799694801160112694479632324712438908604008413161213860856156302124765364902507277703611658696560963773876845112099402363097386510587619702105546156218571386493354181145247480089873228422284618591365670056946837401135961030335590436251672073457799224832108196221308541911111704186935419041887977650613571860012028837660350776999804847524250124428570108642900668501368811539414140485334784738227193344934128956296511414224499359258220341580905234277836921193330454342902435967833216597283096248445658405774602327240889159634057897702879175655615204891130570891054514931684213338771461252106662910015615693104051044464989179651232289853054006230843791514438600065036506599491358354138002484013356627687032388000170334533153586948802669635741614218376084299514145269292792585038282528601106135504353806041149761232639097060651453712597883120651569615672168912778292271368211416429193353823642689257663033136884190708231985653240855446750780115573619294573173509760297334917533086405725122951539139955785944317488009552360252942404784203917743761464705338758708308891625108327880857453426531385827752363997251244983111598827983727926632297893310733170598791576424450257514478469432074312212254711208810019447167645296317048859609303713992141463741141008603182472943800330692345242610145977206520912737371148582089802267829970386218679575810485644885041845094557888409715081203044915531954249990227260893489534524546611436397830542553908439011882559338148112793345240305415909419765972713672078102943843564293567344548253051324120714086811705616631236433434346909927048043140465579812609489659662135131938447440536921929829905239147314718974303731335188810826945601410396041048846755288759064179962761352797315917534808260205614352541957924514394626587819737077927033234924896375294912054752386355152123835696392756315833298637667297187272724605162559688965776240545340617924280105486479335665076578709622028543486347100385245918863190090554745076627287363323503619713801091179550820566406981907268136015378052348589927344946796095908799401418755815785182321376962857599439409580097433229073190714373236102753164773110557748817136598386259838986273470603074699837863019596090385949192787010741799757441927156521590155768768669393265499513158217007511721601205684362422718499714903076404353522868379069135250483796037830478707054597058196459374103587546447921085596154066505886217565538493815819444988118017142517699449037617026306561791870221657004555082866529861059526567160395511484647175396180298536540892224319393070015623748662965964505438003202122704986756178371944080075563554500967049072863015516315224369953964734230411341774152492657994566650980290864289780468955725452581515005243219499703727859569037530390277643598460940897969986725523664848807255905139632778704101763102785264803442520732955989099732695728042696752978631019248681772176776106400194393113124595799394369982280416860848380238594728379453657496497580681393610990368507764858221179577170716012716142680139587082703304523087647856313252113144026861542710627514622172464811746904989180540327714081904593066875767200730551875011138204941919106256455127923547127552177191337124240389350539263472024459543065124107597250005340998501758626409930755970295920260156115062256989339583152527871057135901122810895921717471127233662333117983134673415315310268109026141446763201850061861286078046835101173043271039780362887036209342401430248822018683043774247174777872912136469093664735563111755717956243376166593527836545943521465912553546835189432526610980814105971558169459325143299880313887314893561503918994763203605111860975967670754895354595263864870608676739048260721519279731077514502434680577363611706734793212875233764132216705175260013379278910993964510973176653613790942022040786904305591429613695714494998517887922020706041128442140492476836494899403661388646908039395294592280313920353671712490115058551055388725437870863065412361345124424843195305227393308379458544790262904963282147132959600113043545907624125835079370856702828062462601453054599558862028774815405290242634287252387363575672488833586993394243606534517036903927864896110193500117059760348492821816150320192536882520163591750846414734885229705087702685333353197070396489823451286036757312467911057790669430247014118497234252126578657296104813179603609939064904145510506914015522831138288126040291667282223405999836478076588516763792660779006734228191370493665457642511413515490919010468814119640548454352021175628086533324853442331546056889870599488629618210188026621571393265782489659897079953875269161669734122791795897427196988190774149215129122993362258140987725444905021085096318359090693504787064546533834973698365853737698990981756684979685295155287539209741297030148542198513873138096586399235844321167766956146309682462464038095484041267543999965450679665263098770452080890599954927697665958929797187868736833948642977236437514585431901352625056208791659296757741498504747591777859609876799518950141099374605688835829485596420296345858781426113256836598999447997170442967425376129985292476516760717919815184479549634636855488715057845551000817812875491386774431381037709379844175071933987627378862941516973619031745446694391714023214484569442400289183513525039267212526167389412022953230998787824075266269216690382782387829310648545428093553456112214407882503874285382574658430687103882323002350113596062524444216020984095667353711101055529175211466059500263199819698613344051829531489450935720410095096480477990969862941906405075741332131327372058759067847385822100164679492833523838824551012961432199373600789741870218540323473401240130840746450100585486442255741865520631517891525269717196945784655886778981118602643148013177799438911145955173976279561698815386794556048780594353690259605000268109399212854667929077161373412885147519828237016716807431487022337093677575332675528711336984401950799402998582968194377476249567748442793269313928204383761992932566873206079748145057982921811762998723145111317009296158405219436814833068930797269677613073173540935417421286137763042921974083800243414249593423227354546570984989794953529046616942620732416674657342089984456980844640085160439023832719327292792325669113772663690372302916537481205142732697893134511710018765243499087556579450312162689215489935759715332327240293327526390007365050795440486893198549698639548068313715843824662292187320381475213337700733934562410014460903945611727683652178227051159633051461490966891602720913058146656214602361893557362271472065677007621886166357758179991625647614116052685238980300091192816884832372095567011424937540813308104221972941691857437083889550211603633569982978026240873981260467374014625315438567299668741093266236217914817237584210399917360834186291860682054045803602442361006250242808999046619057091065810102279477648502462261419625032145624439514996897687148681197830464373998192915621390254632508480999681472723217925637033487512463486964467561414799371789072861453103582953367796693863016199369117269880326851193452096254505721729622253340439856527615336539336044085584663415557803834110740443752776753313612592905300287447220642059631578473712025813693786577962938107155698538766891571860518300288201349196107203770249941925769929359356254667014335374896375644159971052056106299591549681608931565774742966075544277329635998364927185118029121923111680358910594275553532742563665147962930066987303281029452915216758888020570082393089311695374584924321150294444005459098006489597389841820686485950555111914925270163540473486130306958637829985634064588166830108669964257331829262153517967128525461636535495051152593857950280253596275116086427711639348783373070198534588266183763922362017759262958457568442137080899608342578786298045569555039684830330523699457955286978705109715382505986426943194533110542989724530000326390468202078075260448791182020601168747022360353892511395931794263123529187596318901919667351153122970898043434726308197787236359436880773180489919520852367898564115110310953904181977417081159967707144254075098285669445680861539574667762625027146729919791322181169229580776364958871482281352329432474930461695251199309849690966140301688266485288229886692042574588095961757170254175161317080495880281310483471735696734686040746187318138004209349755454437532588905937048513538511417686850538802102545615462570170811817012412250804222706780599231312730273603747536764479885390679523067321264589198932247760752036521710373873676748122206962769015903544550031501987415386984236493070576394897608693852216770867288244722081518922979507418206433459590413151221009838726625458018055655818310533789584567951092919109683369644903150164742358203815273537664832367286569001355863065999820276071689826432726877791400712763395967924199967795732834562123674431545172207628640108823466509406096907372478485238701226574087557292421703644553265676670018238204515713859207291995597155916455411507842632969120496578827747373290880813865264985845409569032097894829055079627553722254207590530085531560482622537326249372288472029089578656250737421626719168861881252628662553600849783061198290387794753151706483985509701607793983903920045228992544188545880605864571063508096246384277030275193436337155400940110061348976494262606192262429828536868922727265054825072212484629259569862346985710794643585888982689562978457261410269072437993036253144735094969621648712690165794165777535993001528083244209854498969860564498848017013364886297632558761760847135072639922077054546303473247323050656476465842739705298735499088681407878371936539436038028246397089053370864331392248109501512821761562138954704867931266087646777836883337441068872343650243174028073693132561813372734985248740840465555542212379155144204357580453245757738612525557588473498737691539437078406285245911187737758196476297535335187732401335933295575600063492165605713304799929059560953212248280363754630646264216507331669646387658825691497970371605129253877617412184582774089154870431133517710531475329675815544748596270069565773264158518388946871096155636058143945998091524481798328714127708555291148994949930246809434279565519670954722136596832273580803473338913487704808172247842385059825920780708540532571562601139587831482016738690684471325681878463669430756850459042921067684937560467791990846034987342404411258240310763568514390855736324558812073805789800016833713207460140824545817802624570680495876121224100588018956767932875218503493628314684164895170971592174438076384596673722830144562630820331112081548119141051222581346530021084818071129088983862325280454008111027324059152216537015671357499413423148830680094418286968841133499511550393466121171337766444112719732127883809789695126936304445829298792348976585113348628678673987372369491958330600387307212787187922461257031849384737904814218515636296570094135940776073757736304048560526150809644640320281690238745729788429181945745684087150743624799624216418369851820616760890087459343065429737093821132706770434968581839356048791317156147452645742511021023776388705765560209088930796443842479027291520201897338557493002944348735322774368774316962135867358282474351234529239302767047746371292096192782141682419544943699749020929420736328517444346060867722465816653312258543930061869513435782681741544673020352878857081060626538578808085486975325225735465224455262685761160983072060679415018673157978919006551245282482855896411320334618213016941892816317927994371766847540758065339700697833144804669085755631010002250184360025096839278937119863985540516365895043818262879444869650750858441252330505671985261775674805645802500151041289638993601261934068795016056872799360079553332163556605536836247833348611181499032391134660055046004590838432584443956677644783849232213034218958138932194262923136435768738360210080836510557023152143548099746344461855687085227222762695006394382092597378888141924454096970987033895662235280460203807857104385010475892984190868471048342838990264207376113047986875037172882423718455980955431352052258061589392945349895453119783263972518714857181289331072907964553781788179166208186420194583579416787882772296913427438637805237274758094985425495600101405643778330226457682464168254976155752106895016374844246264563401637510688087095692155177492774292917358437641481962345010485186288661293783577647085931691091276601359943352961663412159062675465856396007282364751482395228038944581372601732837294437603321840681170870034146971997912834786236774136765780630467861092892286715011914990207961526731240783303730096274094322829032741768121274494892884577559564182243978753593978480779990814766221634955417257762878888185184553355685807022843363707648637709635053799284323820412456423652221015741558464638377675900707623667911847408229809385745217600834838156627969242608560288711625193093861381129687174627322414108594429944397324434384124040859371377122204860759425026593870549919361604858085924746027562465477182157175253998171610234588210077788496441315043022326906970432267824489500246001176431922034320139874639227730981364914917843991240504402573553002865631220775099730662105210543139479792090547784311351491780432935470500186090328846238833784583886451679953097982440876923259656040282284765261078291550530122183074066402761184885518615135412087838412544373556113623903431424376130846930630114531101626885320126526633894973468031719211208057598150458963199298646719719949099865147634495065296959048641991342778508224955631718730544140914151788445570403947640844520444379580884074618477200573695983676804430138764449791578098964443299009996093925054714946804829526816152653945152205284571006558799447563205147883574620326765658290465238491616874821403884743817096254746486903599454613363692179199963943562511890778633327814717315746572428810537036015802481489129909820587682699067367670395682501595833733850440937506724771158444690100655918644362665918941784934336603688107537400499411938303170059919950674609835819990944584539259283516133296640762925233564866226328726711804932166504728500378028240279909104854673936520724529123628133334562324071024984210545705718354402897581802762231842721254784122434832836328924878331774271032377495620749663447497475603152659037874044744370923545333342555328085204962430705523216400793334289348846372381134623987944283482027087409815625128663229395439468794881256865958471071088898495650288063880385973455724382845016005681956084436082445215647897703847472904980810201301300370149106588318047157806890855953717414370326972953717231285255223340617598671174726857622306576007149512922230656283787722949015707031788148041343457852187495509043810424814357211568172306170441419364012094409271196457265050169426277778493562880067059226476207535971060892820406862694571722299505175126199563347236964758084264904403616917929342818424710163527004856784438026340613382674083272023270889723770675987844613164495582835403271752689860386535544052660819955814281446126092148913379851109057037264584948901789886247575941135167894673423620703640742665596795719385114469521622863317039657121462295740893728904155383576654117607095750564319757141858527855422453011823664180490151394717247656955823698613546267602611451183327193414807195709075471706282378394250644273595011920353635836091221025097499757572079226667262536167322798127721154477320205881746975067429383862747190108016874761197604284360504775482494939419363428766522847907256246801396252877518299019435462215180471808286486172624192956472354165830476944853091877084973264104592157286440420764074798187396106653201127308713545229241843078223251678461041636826794965474031727992087046573471155868562173352047626231015059844145917931464922944332991872159169125833862442448380914430538538224710014251769410344513656709187185536312242270305659552213195402227023620544399395248996447787267908036993587731618404098411674733228331555398437544684104288526759787567021942540706491433189380901503958759315955154996992768192249364694906682833290101618422409949834823524483707596942881145686093664798112131433050216221518472465841632767639286407882471573293050494729510047853613905662411537321500610542662932058058764872633631236033439504578129360087612822887949107502538505589524370058190631234163350385212003723814099643790440708357295255028166401644961875980729192705188435617592325946900075783028120213720677699432428917071125894603223170343259274935914761639528602213864318037510380708637007968612429683033669507492786581828085177160510801902016652588316105610543793914283254150189597249674089763106739615229980178821685639801336129127526691978071902837125830798095657758079479119286112428541250736153841025454508386115118334814486980517369551249692427800452275775299713395797218430493991776777878724173325494025557808433317412677377489033199532980095750611124345751724404072605771613800042894760267591072155420009319138993033882006129075415970727092168656781864648012444750582242318881567928681905326089351912328020834731586721126463878992636091159387850070656604879673608393926351867906084136882582393140992134461756342665650486161597212834734755583358268955007851337227260964624319211486238935175523941152938658699408637926542543135530835710879289741199552553003727331882487386357468139082861701844703083963250256297242044554321175810137095936067195579534428066016215897972186735693953698462936841499868015754266350413486644140479819043544080798949007964252421215602491598634405404848058264973193907713821442717293702448506328230317957849801103256936172085251903146508501875829600521367400561608172334515193575768661200414107076225086506708939069924918089992970067678748684277414669751849051862213100915487577549371354403467991838676309306023587921719187629456158412005717295991178552386011295123823599110788111153339590698391523212454782532017302838698777888673938605903042519422847304207002939783310014935378070117995788391823314342801945391450515813682549800884532948646466022808435209138048151426938425642954026084125090771831701956036351880685745425025170883467352149758599490188351913911695313650177647678309009238510808147538655817354745109769185849587722403207562379921692589372231787051894677666656308613777313346382999090080751783293462972049060999434131452687578541057408118793605551309176013522833527673157384611423968126739381415308405063882380665964077844913255928096516326083586956808878016771263093464756645238041023815401361820255452375655649569941509149661967016504050314220849353416709084724561711918125481426725027752105543023817479335635275712198192473032257244554336028538471037534722752721205364564629110224917994576966254365106608045731165066935337885438076877777649850124971477227898981553823637313608171205635432256677513411608408500732258559564144002902647219131989439214988538438040955465439188850747378473071990190803481328326652243464221963963917123748567408165546205987731665809342734746345633925320225042341764542078357145656846148280729847420721129554204478466555640955731773871132625808933410818148607558499720715866055035553642003134430414012985148620764278772566250393350021593021325279332373139282607032261537754555122173758857384829869285102793651848072902648551212157689453905688137399590076030375968203488010634121975264939908297849372249800614341311578847623933754403087670926746829973720004724645901102774850516751290534158592572437455309171987200354303453981500216774893142430113552081957808471356122301529159433657793207240967658749688764270917244025688922532442862154702704075115751763443313485144178861115321624222118419737655784348868565980845300954378036202653947867964212551451020248815696777748436480160064053093937030081139857940366083153975710846623309888496889567074468802577809782165106197657872617088132573487778131779695597993365937993767242951844363055135611574429423011322466585333852188915841869907921561142944001506563702349866925348705090216453468932914922475027579457209978024698042775258283313069468850150337223663217223775496351944466318635843668315849717200587701550402738494495516542791293613585352860449516814135691102789366860646808201337902455507750242466740712194138963256993007572787686780966896721807074595886326203926730074345998493704212306849239331780894653156067129836420653558362387492637533344354851758400677764778953169481637582443031910313874251417087426671335848246392108151273821507729411070381538822230274095539251294686872298972243359453465149526763814087678404676121575786829950480980306684924958962194875860866761942301207174475489167147368268629360066759083824427316396284149349947361579217235771200896568657580653551750294957925334963247081746957218505640644224518341011268377429667794974800344345629495878468575094638479777473624901430471765685269750222438277509277508837274986987968566477563508477389414054971183695753874217417595637427175520359050692195784399423102824828901389527534174411593777664079331573515358925942425445785569473517369161945858958945061901789746889432198606549364990264112371607595490069038372784640345607127317989935572367765884636234752491228001667217523955291158486008707393899895494884497105075761563041686513008383823493673038976007255677033749828771015950668761671616451561823157970798637497046581839977707945488371069463085348453340481715464468422262420195192938376158781885353910696679813521386017901058311329861489050708379916010008974943122809496487850839780131956707613707390145658423197153873359973430301841767527254620776450278474384480850251760672393478007275890081598698233901049083579249952996058468972030748371921022978244680055907687829453718350232383027259212587321518130813006215325322403872147395603647110231268281447170662297136667824916630944630429869459558516368961530390558401013775394691728245705016272604792952351173257789478477086428502805584199142265102759550105763476361826108240628518053937420287731875998640455150201333567428314253640099268504354674420257176518665188935952849284528457643620987633697737902083019358139541795124321378222534709653034786420009742895492761638556507951908289513501700279817739103148724250510933613929322107858831177904350543661264862312963210597000819676424414468798727107551785291838786933414057642853341654688923907269813294251894628948360885503761862837372115352747131428553478650638196173263169990169318973962785300176041546245860612123309255065547128884572535057532660629962718270023816822920543874646982400279387204675127754515821633624568042676238626661474859958219944260300378269498425232922315884626607830719629984504455095484132425233028925474716719809598601323798585259299214117822732814501275845429006727442767437110233020710623887054703766712038039811228409810502601193724490776910559656184073544911514611023483993578575634888080625363160308899232605657910629149150711477735990381240147230573003886570278346189089826139123138172300239239879732912489437146401802614398636506796011741202641904683996794537757174326464341666066890744871891476914350650067089932341445288056084606886836162162844831684393895667752679995247672884517569401374199208430146629028998823624118366821686698240890854907948857098007409251812331580036060319019852714785718586507681291337695097055334738598622420288091790579822034672337470717831966660494316127497811536732670593607244838528312050960679954096260084562460686011702024548485045155617579526856399898326648132463897071516460709888269746710688308354322195572206345102439459827343703011403778311837526249209466861141642538487406230138567363542891675729829247648184108190022509029545124979490986225839925761806737165383173599642507671444341658559666195188821208899521089210339029432716940581034113800768795893983306835669870653427163889204996483632207236448420535444723017719872309695487206653719102499211108062197095776334865817193250808304491503201247603447388753874091228479941170766854939830685434042801700069721522627408942396772813696704057901151710900330837238606001472919671103331387885926070064994798161613278752892846156492252405408172905561033810933246325451626905013946677874801803628150247285271961841880071031701341583535687771869871462662939446548436438615040005473746123473518886226429282600001853402826017158303073062885022950558592306841934621593537463128087726052922100526211577298244562750112875908870200321118728507313409827460673771996771339444043764081177777712026892576307487744133160354387522580832400129554806559279408723857849779464780637463106559843593776915148247479296545711974580218752784554340665728497904234307850466972601554777087583526888493523873873477939353142472994790098261646189272160445168049859721565818378196207824344254790427215536477648860141562414384412895082009043058150020380745805410510777035872745288968741577042860130156827773397849703887205004922987274898041171811087980925479791259215290165972690950390022261740231605135894293623549393274483064740780178770922745424424218250600208643513191083685794485790673148598118724855040982689960687883177636574040989274048399303151818464962041705275389517121892757125700804067255889478175437906259489928979516302261032596884242659918969515282083599863222428183270798854181537395841553003595122858403113995332438570346592057416179204000368198785028256390938364959125586085681267660509703223646446629824854308869618222686448582648324091909678608382840769848842470098397027400600320241121892761884860792788874003116588251260775715526464823361250654280048520499437730350869068048776481579601784309209308500190086365492105112868900820920725996415673898124976000005838939278181089577722442711008578976751490665203817107845201175925781422129499989424195036046707209766766695912476923495615949843694474930406136695362562687634563806916850998525557764288896892534383498080184010180028716953476059177862762358307870266344244241832254030146362042260460419586366920490340399044390559804012918387467046934312254642383892807222865202592685697866953280040001548164694854901502681397149764281770969182301183384595659011672523536340216325366702633286412545203149208655122939929224808598656251591901556485075398149519874505153905574007506051135726808841398820230370884942128891208164920198074852405342975246946148790920742057833073942941102804768996557259006337880694992705498156925234658155723774062381147382828352083165887709239121865339663953736186902454720677639674420383427538805043378577110655870368727022564099005676938447993288565777115722608397478943815935537189894464403066041329306826817456344920111025873080175783468814465085238585202764782219374155350762906352944491698920606389507648195815930099586811246997632741250299436010496414123396041887479742330167760569232264396312206137242513099467849550461119430531598709063762694099950522793123903648656580452833249139668525500674357066200283765661054126141617743765970576761193045736135596904758092847470855538244957728387701232244314048893829002199177338449603081020035332273801804186850238946739124304370804555231380985242191862569610440328747267284436912802189839652261569886033316578833983174797827573981447703122790043583655892168894131498052824545710420431904678831283136578637804257356764196445843765713700833689866065569948846584243111464841036931025949787222494312551295823481273460892153377479339180129446445284809066710857737761845796366231507830180983548980881332588750032988482327715508637311861361093559841298248509809599781178712221073360384683317099982445685924065474578082764724859110606624075710481504768353923537121537612893375123379893923361821656645795188570146765980230954581616895534330042775109821843387587555508067592659613198011600362736903381914153177309846602546232942786569241162170641559463964034040318130054463173007457247939546154487591593861345560489742878366704870471618460411608412526131662123239263698457952247967289225711987539397856190063692284326324077613621172568288404492670713824250074279817506223782730749363607566111497488101072701577874640679101599808032864890527907252674086259751983999659239955443118727982637931180167213269990774356579854523125170672305603052796698199603938503969129704484699600413185750587823701544965464918785490752010762808298284111553688987417320660131330144764565805574847901383987190730179713893760680031432603681574868212574226914244147390072065209024606317630551024525525309476066343833310280892429630750689660975667263634102936852923500575137290630837702447774589874924469559412819460851772389288491083995494372564978030217731336804087495991340240810725399351331245305164528715782992404754879445417235447849361395897941270220552716811851244877390514935365190571676694195093237686076627644834671169357966801746588578294426242004006095021435138928719518774774880722363780476837117392524508000809739700243698882518750062462803008178980262495294159273102137950638105481661566918019415036289975064687547307245292778051191702152575708308882809583410986178976272185127885707138884565750416950185956548798529765995478786711561779943836915049241834963485572235904056735787687120896356319059890495977593135508923532753978892054087483915731720323099724745610933412775607663126257372101030979988446268723505872973879990168976849974109046192559824434141161317922533430299894530072447152648017302269372251533196201597501735957758635510129626721119491769343907299172664354229970913748781976324717460142452690575228897125418761328918951440450399386373587639286955944840746136024031217951525534740262614704370529793309782566139521602912265765069463271786101656996334127331122380490122555491881057446906143800606519619450752996090423739569135693162997419350692929465755680411122018439767119445874502343829159282962424495660391592881614863840890110266400190836714469152572362562958329547597445426719969387665649492926259730139619812642074617705871181325573286109056127904233618418164698579276838658787363186211343566400941970833112714683558548696568541803843087141090163573096946605438739041301992741257244127547219647242840393163752884457460048853634088080693107785686270497023694795059296734233062406402198168762425204855600643696594920451901930410792238142259745585295411273406447261185177386808266900422126243713160503458750639088759716166821901753059805113350504718760383688639314619091647292487909368482305060270753183312212087344372522702738746958165295896790033692199292268080628515447229113804169290333144622586352661294689864969013580192295589618076445460929283161676282415369244513008093329941701408218725800337181812815759552644690962442713465957149362990421090944533580288454028012218449533046385923929037402650887569698949737837704046116784752520552948728715950611957278686289519149801201214286735506464633775511266675132996865002998097053220808491259271799137910911960148275591739816584103007529474280073956427373686281934693223893132269057353918615509144478340718110031129756642070570850300262358525242431652467446384930363856733625224856817612210052477654702499221063511527796288734908710025386423657861090460117098033187172951212319782885996311129027030954310405322108279004570742490784381305050497258822100656040367857827727441435381123059539759210765832580865586612877836224227265124388818039324686063957737641997961809532209659720454874135672355808418297427257365052212845660620507423316100582858078670075627885422718371647354905684175565661113165587720259060660840719648642887359114228447350462691370011295735117140865508373056068989824063397344405894623914537519640863988462553378335579849227918149223324797791147883408497465227336299289913196487772254084777116978982994758661257923600093213390227808872581287416360692516128732401641829451193778940171331507474034959411717098736958717437887118226733880224345139164086158553038678832251441395003487088771843110631470621168142375155520254867320019010344148077879012963116061899266851065149938183456691787960770655444121675686172327766285646762715542977886991883769186487552558532476280359533041621461196774490954034160706269977241505854171577812044183773342077184209547790306981244172260772346943722680348862097324314267157957664149842975282680083710699116790197328444497624170738030586218467581715379280354099870593507412746776498927143321040184099142255500686489279814285528467053532342408659742213482611667804456603401439789570200370688927662321669557159957459111291770856282620552938355904950931368482968815436984249460174302860633512458699784206557378152172939120733725210371765036530084216822207022103423101055497158555678194968986336041624900090340966303601354219897565561165390719506767856345522744930877335239142370615385388606230926342194714824947209656761830452555032560069369793620180354258977092892997222523754271641795465961959272289186313292598130667494269095296518531601292754415231732871220694397620711530931661330608356691660737326241710831007753662386048270249880358157625121566082980336434375078872484145393004349653683403213503437242273581571535267028112583693016901328145614234779946261721460812437084965549459398007519027621750719018329902809527597532049083322873647422739627260572095539148685387204352525307867180340207231704069380552046711995955828625736500619725367515328499989228437083428798410666987715830953247678869198735719838410820676684941842229120932110725372052670704110994091675087648226533797954532322834850536105226297114974536155466215517862746473943131564512047158911937984188285307808682191252278087230433681986648057597492682241623733061292042662663415724613967913073654877525725765239560386555483735960199183639194235791796911283944983755852250566520500442367224201827302450785036794556517845481300246369250371137716856025399767289768283690800201407914824694851342848302359110093323314977359590505667394215044636849327709058747199026077401952995084098087386022838817800237754272339592216293026732762720008046835829389234140442096438200735973029580155703467100806394049097045578668401968199113620580296163021122345579620508996672239934734267492934592934672509647741280701226584213006418224630656018570981904110296553609455873418118796209196788800026278142390715227742826280637033778536634500903412195130485217673178146806058762541844554360412692625052631388398622323666006319145795079311545755648080618747571527534240049699820326480840767130709816535290668383646279485880661697980444981798707219026598849118721865194033709449207020098216955335756366891275280041413551544481720710096297019350471486327231328052618571723119518773421771769096219489086913632152692415098630716760832440786143627061710989103905804338453015638570545566088938619691478937356271959472594887634922346114887073662849121903976428629878096716107059304693167527605172540279983893283090379163772847225338669367253544352660987512423739430967671544844913536049940339038997511969794560881834946639963488097994143975959593170697946878964272830364534413268522229787417100954199981199885732554833903988681653817214005057029020604542117050488122947330584532727316044582757862442665865497506417245354538443011011955774454165740698368376927431473762521487023725604704767920792939755139276613756061971675173789922567690509558226313222929313572122220835721973310910806177047219510382857995989216468060242016903500768980162586219276649149904515592866780233542577798464638122330555640815202870281093331065998979109752721759330029806236009672900478326829404129877919059312633084887260399966476998618616499355547808579657622739982427902247052774279204593658942064256179391584404553000309381729886764435740200571756082491223464932158380780499993113238832125190524257358646083185350698821521854420906554145882163095169590257360271317641668849420878754161988209706554223286760084652762708714514288824304226933410708801328256821237705200394901831589620025925089777489448403749692888028834633355171962399272704312966632189542825665457345924935340917597527960573969459177255783723586877703726048393057025810437225805436843504670153463743128123223321221302777068027222308116982804057650150081606680332563036209561091711957904500945750606067022506761360861189679814766837399175607187444227563905526323785030319798440570758581465028604952125805735719569312289594022555451342587548891722125836770023070546447256462007149254027297965903373232100677547487540655865663934121068574776864164006762539946253520370145132882442732906260173666481360411913710620384491129771657859383731544928784915518798924242108514867280408894150594328741136596322157781273741655689298210512910475819811485935996296040499561403267050306723582845124415986342092352636435994167103293892202377222489903410667611818501427488000518811497415775960555620043032760671157934677636263136716112868588366966393948909953605855258222900138999343700924658801499804907177678930152894391437458913062264427779120060898457881611355110618019881871802285596452333347168580465600203167727670534888500958007074124060291749047751013316615450975491597327906849867963196028752913391495729977433741056879893213266930234128548417336909258798387467859832307276496088689997266042995345275233883281678477539493673043711288521615710252928894395091606590166207386901963488921936429500802787231444125429511457965468343396911177464650957971865668585883125463918608996242525828886626579098045734234058098750201399463938991295035844192497465373805463765500223872091010946677992776697360530878999490585432597121046612488506711893257428980053002534014379221516986282728350951930478675968958832288851290466734783520171993519979745965694633940676637529995012256094959158955235143423903587563744537071235421192132625482118415460256896512325991767269858999032171734437363766653127579141014933272384235532221299212561095305558853928203559606217723187492197736258508570859238389153537968552993662117985403564907237192461901148278729630329919473551333211874579654637018332257985829448098248275871112241760039040591855828367625892645047933536592044756402360618482261970899222592008462886399376675225453735737085572673285027133065008943785938829637932660243614775117257419383148055079284362492833802788640283914634609103258840184601159322359474925614611880638828136072078771932119646749903424022986416466433611248094608512781215482280474428874990791113017234119970910223333804343004040712928702349012174571972907778261571651904388767951314106052090070075687151205143133268782721769063348183894347231110347531282948898962571904873832989197998487730604378947312599563068804175115729013047774885964822031152731052998760474142780988660788873194138388551770302693206773255606219293488844763018265005992080588041273848223180056073575226678992006240360994919426530614503928484884571017128397460768502120652042925083723594844866263996982700967594305381021484571026887391902807935781032116018802659471883565882967207919770193680080304946646943829815359798128910691136868628468491130434858755605770167291364573614418076592303823868915171626637408132911038568868104817545786219735313268940421791607502586403541456729516924969732930393968685222461964077259872223628141250581051147299888946376163964199748129854813505385962921537232184876983634073437437018072519621754936510163396528569102196092564300865469544448799033202169211968861358492887444783399840805850275162921124205565609828796011963311031492152158466081011536361681673902155106390733084394829485744257692376356484041909105582471870264274051173735034346068959924546901958139228987196847344103238935742247937132504907957186451728326867764497370245673321302189788874299483438750917449852303969184481093673684141681963527562594465556513396720385166312998667566603782659810490116047317974517416274674714642499541116661292402395627136804420092846265872553816754615291405418655774340482320594465434383638185626190147982117777713721586856278568908199708786273128706290029558839756906069864040372233403139470003289846567897656308433630998212444272010360880831636397073706637136668192900375938115406090760180951450239714891368227919641787467127031283048390937734943812835382355319871893292690399964005804154073210319782261215400631169400337116461381135352070993693027649953428041678094443656790368637067530674867800565382620219085278907730553985370319563889870096033998397121081305425310329504487179729797487699239472665716324382830805111098983430782082416433380115686781009757734726661693062851465064341515766662471659304452607666623971548958742423088168599428332550586352428410917863104257391054138819334019342546041611726088678974392643282297028844328180837302681125280066891285882672215075982654339953944638895405919658562722576380038639091089086516587192872194017151258398121860910105841060192639673380844764427676624666129561196103632357215820345702569501342922752005356364901441628141735902137132412207351879935919858069861493811655898037460918293438105386938877632259289836814927627084968478907927969735167518626293763577256931398435799335220098025575796236511333291055796106734171094121667012057879063414456812101130137685885713084678100511564467031407749274870723481153954284705560237609270211157015219218748286292301320743635409264732639756973379916831660551848002959344085401429650210193940277791130301982672577402526231082243025539166059197293426037222801518416763874363675013185787057560035332813773988779227602146544924947952091339197769850385469431735939811986109416723415998283943800102968208257163402299209210344256503445961002868568062733695614520862103263280704165869015563121207310312296959057306521864056761133513940330279507406929646974203714615378357473738889503860305070327592784759666550530939671375088206086782967244561192455403821595617713768951415851741365949232939771284878802852348972522596792847890803081813822134432746331295623600408567843037811184992642233232759558240273554007904322919175132005824177019542188121026829271264496888263518302614387151720334339899655007213206110215854691237834637330230098091950458022621158949831569939409569457576906986630415088561882919086372336754907757991787549114030925910554197005148241299559182101015699768398279464215188548950600287649737870954320497202551197513922334740029893160669372563225846654916122876001654999299533056139567226456688531563183013049498048075175243965358756749311051874867716176844793419833400693582302525692721628834174362935736103770079748115574058673133796231577099217027554864985282914943590748158213355530467356670926495946444801219709538197373642765633898856866758255100183246777096918392784066498132915480559348806279221407187022183960241535184602645291167586299178624635635432615588685196216703323842291318768956721484619802086040446688125476582112869022310825378025494189906164864879825518973797762370170658533660834294034337985384527192037593096274151349431052923510896419208187582308871035533853066809614507044476491391265031216677739994203236696698329229356130296359266591349359507966094884749768037396896760036321611406242156569765710214300088886818275127323439025801610397222550600434667923042988737874237079407514994520812015621675110295570801978386542333181544444488685277732804533300899026869136090577929539432153861019493342824213442595231814495459580434097407985305309563168343642178748389470002262309752250834321509812254812247918380246198071896965210444701495613519256051125702781277342426525773854932740019700152734709160862100689304281194724038947756187376906720032960865159581109261216362596746009566758031744117696628837475857583067154346504016873227043211492922330528223182041072017550202247061964622105218526933303699393924371230218373106364182609805659680618776657958689944598975762966306183044205595441963912054382993020922349308566469520474221218154142834869343977930398009492937651308055727425554766731382658185362612440770863146802823205498963004635795346125357642343237043127035341349865649393609290759440981669177918328863515598740260286798994740479630869515625767661468140090439950081661084445931330933686738286647648264033010587671246293560640987611238433798887928524122099542949970799576429968246177044965884647486578927027886412236425320275115381882662776255283305020863416046699708926575410122543808363482112887690515784446444294786478423704200049341989961680158034259781204300718509387109204739517056557731155575703676872012341874881107345000862405840360955463691178415944354488396135154645330746775564256827119401441423876727652042913715932887586785686345162559169258224431978911316660287065433323490484898547616555285978323447940955117060924448539419106187416671073175399473778290471518874848981774357759571635744151416967174056428856287659502281850593192303255086060263089777140816223413090180825933022771773361365165729276983240382780777192117977913004283603722670852466952544862611287635388359138609688515229547711523086538629061230267641988476303804895962852517236597964227794693577064773275898857925943140905666595997151842620044043261336799642853902433784069523596023955458896083084168833671386142421621010790946215507978849358441138794231567905106138363558534166376629653448409286774178482805455195009537600270897838264689560245559040931786731995862386428813699794492572855490659081254846542400757468658027066916523893812291343103785922395434221534336285100195662256639864513693900332108233390774741932923069708588266499816874439153893659012096857582239743734187840567559513474833560497543231408187984791531011025736218025780030984490154205256603284489068020406998900089835947046540877894290348511693082529624967799623281044695191650233655931796252259019263845882361627470573965526904452790181092667237391357053998808333127511377064528842423775885886790646974835832813785124494578465927548362107736641749714451720955582365502775609628152314072428806888647009353579154275796687419943199050972980125840710971268774151888638195492502082878336853655229853684765726828437055601766555678691733571691786248748720401357781873884357687560451651853386217769767027889357159005725275286114955537568076347903093603958755833439254898784694612963952453450642472770670798491398897547686721891839370371422446100860782434382237405752393856675861480348922805314186835048211153213377563156453879356099804697303584713436853201242978542065276627767500154021536971391866127607513608893984593216664750278275233801869877237086019980624456691912029774965366272465846538173043537119090684131421462955922331421020324841113922596983359659952157696089266996019937062455797238800290593945015979138005918987969391520312406283827265434695189082888752699014112329994297982286101993350451475640050018387208239082151698931901124204543437567518697308401803880221736973669767798552960243726759160797159850775740369817397659903975894462330236242474806168014457399911611249559554984723003404856269138966847450329028721968954560071629341008483471100742050210194550166892591937179871509999526180240819964598026755696999217881275823701805855978682207121746694370361237093898451769154264120149035968088557922939430475222676814361286443142930982829577456386204358348637269935706575444498255806307547303976117160806372769303006901265870847771233502107717142653315688569849748273114653205837505569022596961127672949459156377225773170939296569173989516275037473748911036522068339020647284121994333593907943989002195910213014909684089306854644273931175080316997215152442177496737868944903868578267239584236917464051362119242475328708632894210471064320513024518811905311072558028463566358070773117735845238322375218402685873262103549286565847871631589362095086823979440735909351611160501001077831888466960234572263853955400012394489847350486316944815823504217057708009025751761816691872788926561414904285737153484807594043552509263501017973190384328919870698702165231973477253466540989354119807973748379760732610117101896105358158174663423108016657854779918016352907700432224339001352547544491372376647165489668210582557624464457776499491298954003735418151874521455256146116512779248170418446455010019395646791905957898036116350095721161659001054617829226784294324186564054799275331305953017915111126237863224970793370659581129679619027347267562979151560418627574162678747765497862483379598407672348264887188525671957776831377658471865106602752758088111570825715218526634926561466596877013855154027421320296250798279971296237193174705395055963614757412421081729891376907086650105005064918402444247106996412889024631111806957171182790312401052263896064109550943021109080992278123150163321787709739404309656965935384135391257822590378402779275864597888166977147382661371677354604545809839397344519969346354087019148916887439796254804778617051167521155515386713426730934197471320327865719976492753333992188199337671342137971282781013205282662202883462501658941962143908438456509755579309322619895913496521017533485910852690746318654870467293942351171584216076643066169912682694644064579714118249951574739594319148039052302656503453370640134959552736269082853681614988143182804863698494911661367239012223937760390037158393551347257802505530793076062979387576218750831625798637355863088025433425471228075043241395458148390645811656260120891984943456285574792707230197956440457033272118544433017126317799409941308877677285936181794290605551809239128237405686010059888867587004903255059923248295191057675579066922940302050469555650561417223524977250533953518158611877300571885828595829568223007786319474177312885051418824858437781001106115012914019698079311054174771459048606973426189872494965622989242358579898360824150886116020121367038297265535004774130203997804773446808800237578731281978470714730951245226009224524005406341270028513375365252023307007705299475576425942470151418469520253556963142170420242210863569723700205601063894037269016246238585422279944832798901590698906621198864418401507409727445859200993368163732127443797583103699530177841020163488386460096880561350845924926856129847731929468492565133303917295760415526920545501275071686778578958299279480796128775748559897718943997066819053749608271717678293218708677652851420946630187450295290977786409676188588464906656485487929519226992466834370265360829766617860076602004911654598156055747018957174702934504275745144931430709705823238493562729595052755524484086082143220603899397172176081689101227174955091769931887461264709240491684114671597797533811551687089118411175184343434663984259899972894113397828505914836907178503499855025510170766741447549136915436022757557775288173008031941820997417296039626694416861550253055641401289621310439090304542246407159131692328321710747082819273913286364329941115293949551564683681003898201456497482174115685072770219902554975656443149113428836291681918447652081191554286347202948856038828239832854741251114263371408034243401820107901636846278048379998824224407881373217538592581033246272140937222941325407800649131295914480167730491807445491256662716133243505037166450015506151674602100099393631846012084914631503739587563168885046178139631981066327609350192293263365513671939363712226325245268769975579375828943768482947904637848924947349564714111426654519826532295192722091771958171321688965701461174730516491676791267429987145670543920092653108532646756009642470320202246083919001960160487718562058052813206439911166829271351670014656034828995360980543524949643074888214190154616493334804530861921826200189914978679177868583225537352946933849835000854611364928837302273684636770096932593203923486598306606844158081923134397052139310756314903763385461374338704341923770590378069973114167295549317812545935995981679350803854945773926648791636189323951031818083693351028320276383033320010316042260385840811083865008089962452739078226277022219471407429751419965355127229607676124647629329488693013486052068087338163219998540820661496506008186560866266490761663043059168206061489546505056100479061605670741325259797191596201447573389225359056715002373239460205498337618845852608217979421530615387231356330413237574421833768925294662517004884787734250599668768592791318529358906519707044794148841496609376537536908207077257482635229244825564787021807793542964212696882875223071263557240777073521576666419132987646788888768551175439747733564434548009877314368747516533573748258272935222984230169748577470223515882452422513314332532194524453936385569487124039875244258934131992444634279763403726723356244786921947280240778531851976353632074555146809432725010462620034460878529670873393426756303394516530916442255277589012195144903918840237856816274159758052782053026424691524263945699111721849552008396774896727669405530842158055723349962090702231245879577939025161152168163116420981985177898378347157881706940636945444458761634334664765683668321559673063224408368422277168929028997206850633127289055816965987671198029495492757249200855374584535781724401126938707096201540976693045314555815948803490546765263045136039355401634508485884142175033065865698565649363781457899269443009629647327428002470010471766336940325778509816833329666607827798682855054179062415739657026705934383763681915299670398181652957086617200813644779168694534310527967028252117218474994743602249076159322632889704860623924020164435442842502386214878051218855647555909852508793194323411944966073265581265235545812863530505208557814730932965598009639520305201627512366382594882945879782441421792579146366196090477454903561033538025999977444345101626062682956131693014303140250121888759925562954055566351012635007078480635682900466371952656511795041646233790504604221755871940296444651637308246136637494139240035692561210795040940159933688479294063920333803880483913165568639223809281881762888011215270886893171009785667236183417389319096176316099630420182835322453420950968166492497764481758999966018201402417621981463534601078908008582354577988524282696183547915915629532030169341387107163368299233730723452357247468892296805412069086040370432112955252953023566495480879868696978640630408169258221630777041597697296064222613530498621300849190492854799117686026714103803425479459754063903940098721682136726433368007607795020816145012347583533316035353505836686828284202368599169804886212844522408679014012614222035971240570154522509804262076165750377370192653939086485128119566296175350147022305449918848264955732241673117487521657705363059166340613503761113376749106524748899145216179606482789049113776840005640183087227234113553604058768618972438870691156759443159496822844467304539423432933919220131361635285190219259491776007511005239881629232466977915637270899501588774390882423444810002363687891944653723266474953223564548897862624700744482273185907401246467029050158273173166486181973595121160810225410230710888708311406671444064547197653122950119966874786013369547895102848910918038922830536459665622718195341005163868998842844182278054668392720503763398413511386576261400041981493966357425424337247547864505579688072224002910553034187491091918128656353676200686642677886705115810602857156824135117306229270055287136658515674216671881329632385985580135502420393725283782258722989918929124908766776649964331010220170105081462563567280266328124729505873383106624466599785973718248782444985934402312711398361928642601478494848408251462522351002772893002261159299320762669452428557779556767279360833427248025332741260932145287413175923051726865133376405090271580457346707954245735397772883464526950191022595382433759161082134439096346316846700509896548400849345665363665320941157071452870178145764316360015613163024158893798955893441681393971388158158608610375895926222677063906829330557441756350259088114591599415162183674565227067713228128264261616163650536534512354103690126775656030069736291719004689448581705453987408189269294647832259531343159910889788784839227556496415685462678307583364462186161418470556720509357358654892414198790341378853051709597400377528372430337378936080599549021069096479072821281917093934274548165231606292693178968791117601135439123677495937556770823832465081193095259141524892163624512968571953912328764722736962965677240034240977450469277064688638973317383442823311332415932609675231206262094383316724323340233492237209671978045574919735899986810662417059469704179808612388556212063431707335784496134788262592451830791858784770772612510040940646216289934434604812943772066863038178039558556350647087042149567796463393174905806659994777957118998115725372713440543967922326134327186328925716801650148951460595425084693419905028791136699628675201277114243126568407081837194292156142652952284318786196713262697363868316587637067924037511020489060112888668045743815974345540438907310366986669950028038887010946745269286004770904990099699766030485753582378637045390076041755419034349677778719503812929684394259626945125460548399201967449198759599741273366756449693022962573407516671392835340219724240503298059314390835616057152057735013405103024671443826896984918339984032780774982125475084456415660388883614396942623353164613104266784857675806460780506906792213759362874882086380106635683545043174741457183255473206060150832400316195244494489732639583517002629219513821433509715455557915966948131180725736338229461638794730183067501561337571208599719477984472769155050759208142273602710867329144647234778272998666882904080414361756493092912717423932672551119548138581769262506215745715583153413204276048906194410360141379700466150205059184154510656551196404244986943648718099552728521251403325520266973217963063867429526603314605755184012888531689407969637828763749164123084364419295493570868785072359763863914367339147093208192327083457962991287722574739353842761486471402212763755763195428485168454724487389284724054205627829108837962834699227777196966554116860236682741862970653614377503543110154491789415536327748322425094108194997539311017439628525296608154325458022312983816930888338009873078207161282046372909496581563611868055453452776542555962340850216496335622033045527298214437715666093733431795351103778507985476276057011579005266829190120008848834242915123946965767187008536859217452515908665220427522260052195226892629655630510534647384505337772819964535340622833750978966395164007131983837451388057747948080307948627606634209449602167419785369225588501313265068623088751537554185637912016673260750224376395701232846405648509657071760564254878250686998532071710436340601287127373684634665771400059032306734214229715202286414534580105696316074419639435533867334568544209757540400733768539078083052183668872484417604263404394178254764909685761875357768062376117627818474478656439422362604683863655454430415554689738358849954357480613535424196984717990068863576161338348231510636641005972398191622260154034360179637708882286507939439521577959259277946744528453650334659322422173809950073524640275981360681265692140023512829333212901974791082780279081542391489354540026622522232257884957267659103851792308809498587999871960811066525760567499428497683102631581169470385572753825464369138953947875632103595214707096415359052916665653126234823752965110944405419195631953180028504174972705923612539528391076356714513915425289215644604860885312840588716420567618829005699748749813751290255457808992394595348908585950090544249729584264850535343603878818859934989131096345617001033806115283522424410678685948687144741184562316771330447130797688811515469319759744998776812862702339786613754169102993491534671958593802884997872530044840729550735146823983375819439950883253260725826126074870951546697770800826616751621375740198539000775551341999675571782433442329955682678066485367170090384677946644430259960163606338420799055071780638449210425799685334070298150870781727415031056352560839221128263108619459895523857460446081874938925590740477374073632237979928480142105018373153138096997530648071583562115430061703389641375413356390631500901443835025975285196461475074866726760614129388558428091601100950981549888854056835360848994543327320472487802524938804054543114274194502461015219881421795369978645702053053870431510603755224821021594687485034062402742511979172897450588697758443124234011672617619700106520945079728895326466635775762642814656008830687385518485278027303195794028895434703554956298095836714010608015452057332365766094645849770210082936411838933538941012899478957105615434033962398117797010638429709663171944747344421654088841435800085410298788941657560621813881998415921216451556004552204241916771174000747271801117958877175132250720891037277425028475850588267107570059662040236445968074379584020728676889963815118165535261564326519429904034723009754717298636734007461545171509338162843825092275639042711754911531440201611493130435177941121008253506031986557001569955331178886184446402014924447597908231036300531222736335515289548341197507985321856714857848753719843018369129488685065485395154963146042395903708839889274902085284436455304166255274097517161882415855563657824806825574558522662992255896989422101612396250854236372254792292073280121418524708886005789051916957819353873232235100091124197137319379726888467640877156649295257258628078263548864509676884604276631859040737652662013420695070401332513068011177435793466621197376917990098452233154053430103299915033925780631717642937433316369664009489186599604880144484607666211063968439124268877836424263733074540367421853759833360575185256501050947666844374445786868578167085884028459496774335829357228658341723664089810424839889598179696391311726472025049120609497455938908250833927531408333374962599058215009964230366581499148844417548343148230937345638863728231818784294934524822913921155316001365502545679061124762052587317547745088600718694472940492550536629194229124600601973234779673558796821920028732307201481493893029600017604042840159509131819155981671276346556916524674634303530469870301537207198029807625312861078759091112409175183264674526848880794594397813726088423976211505705005927360777384395230238339859183357041526818767382288762929878346636156438115891095549066059365793897486456290840503888206174718308683157121756759884051392044575507285714416162499817897451348485597313659925470832114393803994418388472895488385822188804916748164607647422008419247473198325301416684042644608626933565632106594427218472004073017208042359760572828218968604199048721387756604020513246560589718409337364411419341766884814478814488899446438789377354364067525139559702249666580647671311821041021840621209292857443893184197823001334193295557162340594041986723408007809913496952232318575252009915176874095310016800319795960192428796209889227779595896536743807976007520505364579451427237579598901077810125374724015231793635884939768448506577529115006449532232350795889236072711634112777318172151590431581651902951731941854945394084362574688329976562275889437725997806623791717414875559810078903860088887949091118219459823984605687572499940614926940037415341689931222027263695537063964777140386788380604827841215689429572882890525508779505201572517235627902839222643986337917187584653117963276455066732229707531588141941126329736271329250971712576705806692853108511611006572197191339846436791360200898959252775380969870652896189066151064609111282345889136307778000408219744640675623795827626916774321806233258770491741286182925999572305064083176798381722088476620783235975413986192556908100828810341761571522434991931577299438918490715726563924799691579198917840121325545225127231353875424907938472057277335742911473558928834926495832890562482135210183592914498617492797700362586131901172149174181611083154222670570238900838458261808385433891530017348786141872768626866653182052717255793070624074761070750300552948678944974694507198201549859542299275284242902419028946135627647493796459194605353663512917312757785443399051683648220364230142833173977002619352218551601175436929994392335536023556558595073853711582312838706106425820116504363651081405142175021097971943720264934108408574508943934563357953135002910255398245880402013750712813330492497353261065610559026719933267475799129860428555399027978429004198449899374022962042343094607204948641491317864069769028174489298972041214257257503017009423219849710101718125749703209268886171532637997787230030811292552373497320379425624085901969943019136562835360369514184878172862213726507164803523100489497922261056597441761990079864658663020689426037502958162007138491988996499543004640413629967769117969168223922127143951675576063818137456097061232494833966527470593977307734462024132686605913227660028395996305193350999666491200938486331544277961327812915360022997325621708859427095660590020937188737218858220349884645097949142472691998372112480493482721500848727624902381403553695541847789574867210349856186191633940433985840264036896257434917943689442772294374657926629387810454038040409678624594579641052440248171010327531043531087733980055082942798314218167953016538547909826461838706606804311975315882308832484118115466239907059726963852717759435011545479212745568553297000914677581228948792507240273806904255735823851404609587439555327240894378068060767393070868354289773679369920581731502614266737502442589452297390667297729680263479265294960244574254846336852476590433773383506277719602526712306530935341712116427628927329289421059064141248662746410456745500042691510304806190300352308035707787296322522751166282121760978819877531308181374219550212766213760066556336329651860212976610068277160549352328499810265371820438015117290239735238741444748792242360298320084204087121976914794434771528656008313441475978638384423977367447309388516161221715337217691747970263282449159915470164515281139875458240064656283457671575846739793408615797365730622079644198789750336259060850054657847470506320257162190447054819524661720846154562408033636107285054895479604449009630364753196127418079821926531525515504964905538112176690846957183781662182892493824984787568218885729850879806891322305157612598851201678238737526205728829328172115896626088809268398819629322585078279432411232153241406465317037430035334048041966749496492033930062117695654848928213339351078748305670211408398926705919728123130667572889833607500622992592491828509055095037296284018317590165243621288413675068593694043734136719014430841218114028362267244047785219431830625010898290042130324778892371667467404198732954473660561857211937089897482953385251398299292719889412778106881450848055216797902207820696050096377305368136068774392087512368074706788763917950615433793289121065442066497949449740954681376046654238823764141934272567581518076467346759098233675224312881906717196392795377120922151067760766407337238574099309452910458822685560685088250774661945083993144318109927831454234597706029976227213197497843082429851040833692292211875597394589008160556774691765602694445640180617111807714659747751812874773986304427938328444787943875350808616876072218220356036280129518151305453373349509665261675145667975864957172011807680559381374541858330061883507304541690192643407850941534841124473103503046515198441215665567946960379136062181546070790838400607291999777713293504599500107431247597257320680710254784880154667102810229094876057105284037332912837206916625526825508111889817154312400301065665493128665548855093336923333137922417921991463872489812199041534764084740645003078452499522305678751000777321048695647521267523847136187310688307942795767217890689753156579940955228954350813588078178748351128915140793433744302765177158802984134370429061475737193057949321689459349933709632288414548021329309905086581387048637039359560526513051976599321885064110031023207191763420027363322085836026535922633447689925746005111471742760375917876079032111131077876213395933946128154383377113565992590264516639265857554937037813883744019868405887493942397947837143284687057132744092842279921470200468301388964601096149955285584865540422073105538486723506858068125363367780980412620231329404323279575848979324842251428384727845856913088442379521338018346762427775248849587894704079900388002759362576843688473675231478851359441416506105875907559376198065711506794388625034385301337711443369755127800033022809559088490337063258307116701275808606053786237612903198796500035748376155682109552538549092704548553701650629862277076164041164875997528390599694631892328368342280500207776032703757168793256569148643426017380970292280283385380931212350127971117036568085215484265015047934162556094810977011741982984728295063902449454144517286986838451766400209063912789223263889112078658706577618104729059643816077951068123733718060586808825062305891398400653244768096514718168298197637555571207016817444642351738370947377998892055144316955918690135060813473732139962052287629798256941017991316513099933347506246063362349363808669188926012196336600644135138416290805919839800801271268526318990591745629537223049804660406630590769502318291445123559471515861938276249311373517795852090516790025254898133503361112323212936884154294866704390007135012201690686776772697494104489801383423623040318269428239501462056294235001691023282540995474794348700763797039965840730805612689276743324311915715025829643712331469635709245554466790491096670900550238683901015876733262444987101740462141811629192492472239406412081857080805216027884830027485938025756750736203896850326771760955228984111816685342921533869000734152698681831621905122946916848177685871201532442217531634624422550872046582355765788374569337182339822398887694767326161076138952091491553709714870798795981847272230457875295687570431653055632287002373479830365503820279349879789552238554858759980355214420668879038401267861591783391323064711230373409872306222876633647392170162376846408371845611749769788061209066738471102279490105628922027052073293433732401288548406939624757552054994181734646696790171747700336605457098037805114718765288944774257114435478049197990064530926061188740340509302658146915722258600678910236300915182623179169548972352461312287930498348995474070402305247432965256810047287992935810157170225874663010078835959607075567541268184267097685291762486317456134846754173023463228394688213887757305971081763391936624768201417466670702394696893387386216808711588644819274220750013275925452775604708693274001139448636750293971908278240588158091180945992270067674463499702946469302359761410775236131694130892767622211815387464078322665323504824416577389726682172132069164321457820814020345922590553873308621611911537635806916870195596273591368475034061638331333997426731786333886287375496962741809947023745249756303069373184330556352938212729599515423719211716287331141087970805612044647788325388190564467486352675411680006721652685394978134751421929177454736962566644941791107941305799657030613018727810728573742107564639829929542740635498860736087530572046257211632002174618620316545988560359603964320265546782012632019030908951535258257453675793129832081135294956202946136568670312528463604419061865066502113896983525465619297870833119800471512267482302390255701863262491835621268129819261944926703131652089813017175699816480896236199968553657279518979032220714719113841942406962867288166763880651274137668630964770613426245949043291179680130637879953970743272966921560314907520484681710750029789092375633213331051164393059799771414711019937899399010691525932384574731544611955063756898984945945441820446181606048413828779690027853637849613247471849564725418763404970186641952103409202798820818570372508481094330778608671875281337374459760007169144437352749846105631670800686104788037484361656163124004536322139076214758235587551229955203034259562408463636461600598928642031011560778536894452873440525486526765301492849009862145728250444081923310634573841480802102086993334203136639226703007210317092567855289913028536252499748290059282235531265416269031168884123367817644519194907462897357752467695096645063152027252954981621951853138955105625669877600126173289102141818998375872517744798435352844373731659284610162071992380868253011161788631498365937258349389258003498340179634413464291041054579290208285810717866909212470511152112443266768565972202142065387979471035534048384598946538434456146867327515229054409262845240095031210800271978213211851064827255651494754163319921582397787260289540942220102968757099434880325552125755272993509942064564458835397680387326587080181746441899734741471201679611354972120892588677195443883528754777980262255689766477694761100277119855679998937276461667535869313528926845634546401678331325337289220598659431393208660534249937012212768797448377890755100639823151888824949059320208648590415640134840837317025622250870367376014700439969332162606213138818285925648068490196840578325489148706260921077930319093719382358154039613382428708812395538803327657063778106342965546047313736950592851081476718342660546780268548118862828365107080585842636819971888148054931641085265815167104889830757365433298299753353023826514542001710459951977878108510608734062739138187736086192556777161346310638499123933873564214190784674145316594066028137363742263902712166411386446267926322889092588993973496091904222377478342802314349227081557954058644393736396402056165215700743329055807311399708390665479824742838328260202431928346896374985614640327151619923904600949765517256329151966410581650755635890412104240154139528776713864462710733762325749339687986394956287638541456355523086695232837538035684808135106016195942448660010110095263329092446674130459697614565267310891471255743690698128530750736518476482263574577455248688261446616885276106224851994976766780585938016682206644238984450252014344602991529663355446904062869317775657543729196368237338740232819968587962280697482024313502040460576663277926146028624724520387057676080171371365001384853158897839629932766926720673818784901001220342364990737432023993201915645731196181422419811240879811146296259307881310871894914146454935723680884080581195810554855005354579933751871650186024881235489716437688134555780076932156219257785773205711381155082636541258797603140767059700384244128830305670984604376838350107818317245175795098929598989053736523487839549926084905021036357142165660378416943082259170936856833290206588456530157284501515014953759172029537526804998683163052993900844828265155411137813909053341773893419569327805715296086086447723846007207655481450506017632920893967971010606048154225663880197425476446393005110189529505820601129450724605479910672943076993625537812429470484218626879646185642438197744992575462239217041189219633979529269469865626780205671088484971156833001002629456546415250494122215591124554814113735949255335637405824064319458481305997300247043335061577399780164912455942666174594881994291268934100772708466169666598737915519381212137912671109829064370674441826918717125732386071333650331808212925734315381917710134860730662941831081125223543467293520311779137449674564151063119171501914327074691561015644470815068364938121926296781836150203570308980120770740195923821848450111752860303077548885013282717589550355427774901963892085523513995638956409037814665552823062689851528589262092624825791082834849781265835729620440457708994982344842508291281044052199415544146717142428530098038628335933086414864096452390853005491774936241962388534154602947319492784250987146542351333325830582515344295756319384093822138859864677090486335765873616768153973687585487362334361154822558158067199819003908712441911093151204395534016661508420317078154862489753853439843079217044985296818488722415647153376460880760398911523443642351226646760541721393426433748048394465190442644114289267772147970710163354227340886667673649007282217848717800517241516792500284606088160301782762557493476091555866451280023590395996405087452328431004690815831515758409823825526229180946799603523158196076933487327895075455050446735182058944230442729104304088984934639832329347834972152691182753070307896540033175930021175985487423030732477332821263389007216394318139821830278192665747273699610999077563090549289224418923829080913177554041957632931301450709715319762746033671336222916587443106967586451788298891152242022215208303782903848497851472315450386564258145005385917260891425879011615682772462421089403832490326088638369482482694448064051700133220808125859920945300199675738893901607103727047105168413553588145788223957466984759964792938962124069313283852312572737933973350820555835863181472358311449056605838891624600998736881215854741650306049524124926712101377953100404045496942609739594484281976106476984583201566307732390661954583495875397529657198300890073147658678903128114139726444663912685814048537780818055800029359371450132271339869287340220920506761422935154222740245514546728585101749842220092167762744628040236728640951482928351079899117767786943312182102614462159669014876552221293676771716602151228809884322794828788727806672176931162518116331273339567742981731684953838295741263597028791808905959594413094587455190364624950279309994098931637252808541678524196578686327349672958130402868130795881546184645063964275706506606127888335876465689881322545055806935929864209648557211548539336312715791532390237794932873003664127669644656440788605091517783318411656968614309050821728744275148566470760717319239720628076488716928879142954730272304236388578442868146515157653593787814465586522653129461147715040290917346857897063665744042782271449069176920588157349581091549968272282283963481131235142166535886303884788077553157618522133333231251161213596700799317772172577437869055948071755366169605811651351889456032511231668152869141977223713351099666576038127818949688963755481859936636569416203893102505444172773162960011780659407535217627693192829217882711634801210309908191220030595073007496519053916086338242416240776683657053269853967974881589285689579475088871298884680725998106032632817533301305460886654072663105264158561578152896992715456646996422086074204161107155166094292846546822872642037978420822567139196894274749882308556173137185426018076192066374338665886536305310017129079997752554238577830057422934435590812705355170422036980166272257800982898773962983472066862839443576887173503500135062317607620406013159387958145713563816682686012133382219095081732305210460102604749091920534935444462663205407136579133320792167041982090245164494930287437873696935431936662129900342068873787883637494485089394422781091956824041002166931686995194149126312145077625040930595143317728409041754572235969150263820162955712730445145079015644379229021045225768549170893388612429183157225406058213929844429131327096161965175291277208517031216959677373658220737137802934195574247295236334650624066735348296290536492270686464207362750384675429298005121626587716057030064694495414213209157914400244482069121702145912936025136806786326678311555788143465939765289709164743215604615763829556197257736129283085457637602070237337331203663519041490098693778373358944601107187762504676516088626578264249373365251932774551992409993618057348122618888640270290426237249920119201217612053525146486654558140974347424714159946234695186321509979436812128291787213860715334778494486173995524880249317845717460120500336931457244365804294848105164909915684920166189598500818286496150176175341776799548977282212595960036155694467898718855444371702143943156253570866320359008535053660670907298192826540568772531707220481779184101846147522262104110134687093490911659238915550427983703544833325399606467202707559950314550492490037189686347031393600162515364963537373930294944960850559290726381566377398133835352953723129450452585426301441971418432003215253449134154203294939509100616360799390663514914674533513509549993085979889817644592858444979852912509924928306197731849412668034212249307683432058829076941766067988985421223840108541855831784018193956506059092046279019812635156116311790702714001883478144275521156535469390643731644007601504316665001016846652342721585152979014557172943179630060734337372410664316461778577403161365243986990210024788390289942298550689246166262523960161840121544381722035591993634926966227437664070850293696237469812786793383002181601962813054269208894089207174940070467128961875608750424240310521334692805912980826254173925373108976672398880668032722101932883020778890108881069635033701573930629237129314692197543343408093618984113448673747841862543204564254800817102925268162546783583709625586385913169584859881407410986550353919918293089979854739173756064887146422499409243186987614214474468515752726568057516435540471450201402237367612902273637198944766784290749092049815231480504907054068430755261655838911863918506489701234729852842246656325059242872288911546317651256599363753298695678986179630947062066974291635434271102266001894388493121101287206744660909987863697822982598805956839103343814982912670102715870731803998725327449576553463294657041960481188686238919517675694907779054836293536944409981717796684976507737008084354649165355030569937030777667707359849778910479095654043865514821808365152951686208404888004892145846292901979660406631994522743435116755712335714180524430680331247602096122263730227459383570267662993849658347714825401312100028180079075974195063246623529690485577350191693041449141440495555432003026481729650482455763192801067096958641492582027304025476520022112060278485017611634884144581758492009573432968530291168987385822634631146821167032807967092350993220311907592533540430784750343580492219292384971620182142166118415718510777826891243821153448999995288046315890861461054213052185109355602409011635052685630377606553989414903866038422440747603874211277522502819014410022300104503842147730268701240261838262665650330344908873860887038578699209016915763093571599211454396951018644964947786509468994163666620247224267295758564449856615350156058707662482392374966185013006293465979973277409719550506737282798675209221188215648440190479365100395664916085511695871617693716093729712590338853791683322114581574788103143063409534543298746317776561636935777429012047105254010334792551088280227178611217170183232575986966187757932146508463895554709851007615214580385642765045344811077914291037706992906252980670571645952266004386914100564641742475349560673840227633801431585653956506391177545805506463209190891334113383285436342159801899049427254837343434172236483924913618689897265024830271606918834976419908704951012457986508325242284554191496502450507345776654436158641306310602397781198534138136987578821793717709298191243954958594515832095813231613182216361306750500521386607931431070443283022375826220905854359115964231885298206388770695384461750762489623552736093654938833684614262798894313572135729502926101935851956150157805681150703155818354525644352892859408796440525118748630861467924558372700664368064624677992523053647120732309156432746196676703373095798251546151123771311547801718742938741587784879729215542823751843045698892932058167514752684979736459865700732341177254302915459876486940031737834325263365526673758165419339713808305083697769235250845136771262687332420408401472571899445577826240126149713691612044254389041148679794918608651975557234261028963121528773961194170007066288090178754856334945412688501482422006615964108005674402213926980575362407495085625986222759586349324903097004146825487776339373217277400166213370112633625372490582359901897321970772892172740193366365005580169341536117327684474567925363261102483014582741034660177424078372779502388094933765672621388796730505974466653063765393686223838358524055465426350607000977159775112520315213696611682995154019471540704484998591001312824762692170097103929564442820746140602160186258218913630283872319357782863207456233116856903010208559766025654334482730088136941322994593095482267459008480850366467415591723090455405481175075188236567160959237371561833706955147601079510311845313341858260738471541607871937304565070053829653251476972543975410207826986170870258128690735885323746660910198439439759364383508261667723138774286301440998244786714281755873276577619263218324179447695110515833860840898445464853903481553543556839289934871243435010357826807286087469298035598395932898515527192987974275864324160379945394868540279655354985729951286599452557717414205812548294971320255065914535558712065198035901241727690252126067546819355355206430997456034687322903369760909731119382005155646718372309837363665258919798127381287178759098638206336298507495610953533909667203178694374481040398799250830991232756803426230178368928128366519712694652264779450377301383858137344941998795948661204144466006987065875052569058204033972656703272098873600825344474224066537716683070690416206119329834355195509351498407477101837371579853261662069928770878580719090066092933956006048897730676071879296200069439262011962663476851171333459545046984913974598159805071283287309298989078624248205641296107564863575444486539178823903702910400609500728706450965546449710650681403857083149920036086664857874100617719551752628522100613600038326118129789853909107220838126285698298348230946769859818803363265314782873111778966811064664441357745395687636475432530866143512177098445435488483554527119213958705553343690942126337774497067624749147405582939235620266716836989819296313693962223442525113884940071396279376271536230686560392940952801072744700593567895290252388828571657641949668670568451822098364290500573100225137435637020063624362467118127126348935943943890916520662641308160058386041115277419392333549141741095974324728191999399757401774876030843674866305976922390270852992587388215027135835592591887164762059770400670631863445240912755817586922549360778542779659559947776664975732211272788698616792953096559579774710458299898069939673790677269778135041495064260435120865838306160302384807858703766515444950956564134772507705935406922365229627841223497128593297120837836362742234435667306436087768901387010669447502867536783068324360901961308818310062773667521313061758815536030210515171576199259136922283060677525186700546924901416395358789180728721474180004944821597464113899189751337153497764176654556875547734671176096350059915057754384211680176406350269460698519499831817754384002922510433656609967221859053971847454875808660629447588521112107496239788604071566517105898615147239899612137939760431840632889290847227135802991472841828615667659229973497623613366323192841505766995850748850165675519308237066796806848015207536295604578926477593993981413308367582855203696164922672515462836592115229895735709258682299300407787459467606644186017770809900121101700235629250450825440172336376810495687922475500771934374305976652469648645523707003766159860575367177909133710241910244913069703840031112469483498780764599636853345675140837375900713525756650767396758532115881849178305547717540110542342680872977719908352725008672379346709050832546463166745391098375269334594600057044365341272144592796316901343845077792443342121707278915304107431108864074014328783659879902263113800969036239027504082718922709013833822175384787569148993935952696442709495932061283628252557151690952636297090650360505282442614921669967034868993464020509493502799504081782006993836250844966190966870376628785439516622786501884046749311303285116552858592125225323327305321434323316339462667400664217465338931716405464128661715379416329392294728737866381814096508139883446840510734791838335457472210221182071679652602747661696795856921063803296111662976311727886031089698268153703787344685447766041281332083110027749274665464478140768530655871049213748291208541002900123218879515501324729284550833093932350552696868818223844474092475425668859957529532957069392044708010826154688682332887102368076939135636229960663227135618693215770210305975329061892599760584249520733067503420445583013042912719062875808707452173123205357093610070487602632918120564189857982592748558534706120320186239809516813264587273089557759681280004997673748016860087141578241424802925668838864724581168360723219969920994241418878286036397827386728494500801148977100605838388437660934889518288496535883059218829125885645679743278302139529592852708424875751085595426062469081038886482673291089951091001985647216948936166138317737622208402136189537259022416395355960528867568093679781592409507876082280094632166230044953617526614858706422950011798613269178887128910178308870038968079607470895415782242323296583930624130618472291537887022868583143491726104669660005124011970163074380996333895876077684963364868227550298313984224204015103733298755184813199427853161197932905624756357788705507130459716062782444218876816804847416994470959303278122282112144806310424214817889141087349300970629511347294457715718776231322621688467861366675431409142170280842658429935339010272837050474885896206342261850100996018535877662090564832150213463919133680849440287595078186498569899603368889041612606090778193160079496734977449417022877367441981781881260020691590200357741259783835960177200083346122002523557743792428941128846742359875575414564733210797771154715547956226943055673244867772843227169876191800158289016971855348373942465671246382206209732236396140198530907479317230503229824943274676768066315441912841111593801920398984907651866830294853886605306945931572227862644380388456260931912373987317239665418623742284594593861934787173021967815134667341283635701022652710550430827222284490999204632335995918570062744988159256327324620084479799960793279530356460640936556154427542033224404125613161247850732036537554946998675631680942980085169263465827799132602547817405683183699096311808279858895727970792296468048970261188455020872920422267383102688202816387651732843916906054004334916195240762280759865834394236861607897781368947499274110842799051280072520489252682303319212251807755650895468377708548090196922737224074822405441688852398262039610769537781172989986110767013921588363453245056818177218031157249111846668855326684975904885485942845996273863703678009851562728517205972206445390679745252489459139817979039145997362868300637584325994465990439312477705414735702695629091738063926139844047690784874926068262937523430696113171566816520941716472241340593830523125058404130634229909448421761691088270714219368831707126645012533334942415571662928481191517747114475153684618641003576678651350017763955053163377404261982221185456756103377130996374817617867821449644141227421158895379763009881640097167292408923252554005915867306084544803699701570049769238076277134156281897524965982054699585731739730572576681428999181591528853564747576295971325908758499529436247980838018370458997390674061115629580491439787932268948302341192893327926651982252640769686212296941373688275818561344548068228975334715808137342666981552014330363394632034937803185923271132008085861603983454632735431004395930786639994838663103427143500209129162842624180943008655085963096458043465995291838100291193762430570379590851318196232837070089635333461905342547061794367186065487385314003828086197481764732721647422614079324290218599346708190682024713263804948897897222307813120940355962479055860428760143663254479274009416461673876233684420768650550321624960582095334488668216905476842658395194097926242559323385474941392953377762226786158110214257078451312271880087691597542643613227139628276068502012931229203001203784146431368992598179695277365250019405300432592976719345002753735641766055505090628069454548791717315216762424194330783010574767570661632452700985438742668687163615267964559918440527904586894678171630824211993573661189170574366571867501857364238535080367899642846540394710616014833820010408644120860469089760585484652255139052210561311620193215082299597969564191414962670401090967667353940860251367704959397182685077523014287710505545456349250434592334092206305863970015808270260613904235772323535964257673164769746127974160559119300653351506867873665681737626454572700445880115751817428417526757623924001440375473158205845396376423254939585094276527898048550845474067951897648691247774539775255137044041323343785881413289433014047536102668134558086078408980567390021077858822289276089905870412571251471104685511413805769331866725379227710740384924474756020007778357435242919623805035902212847119495140668331369887417143157472335074560803684852346060642179417020169726043422242458996009624563138923700684437516085934999567179938736991226676608139204178919874180765354374158813021724534782500001580843015692212622365398982720907942493259848747771880884896072312391860332820381178426094293215560036533628084588743168485356499174912889078085175006234004998192405095394908421549149700351886399994049300634081968627280945483515013459879044279646874104761737171403612610112480485634723459930261951156964206165073511830662135060719329900985031384369103063412244028193169667917048340461469982198590263095681928380292985827672573927788423208170201054901405636977856622940526241629642271728998987012078695867475245289393145841889707842593127241314564657664094764527272003573978790183696775422058564922467401026451393099416147549334266310981005068797286362356530943192197732612786170875087890613747198693341283078613818834016253731782893643821490285523024428371128204554543366386935121338642960164679128820342130170261931948154971802286823540714476791200670224742057794173769141599499283168220699820036432914320648597420826483502637532867404957094918742541180575014563306615118358938329331216521262754527868867411120463595604603780736683342549476209973830094944240732942397805621073518843153348232833250505362231145311001719572359510799669251091048286470897493557847878381317509953434722477614713142384760418764742089107947540727302939270245732615634965982997416289411902226435574563567676440472982097820079157924779195142424942297352549277559445914034226629384192969987133106620851244712016194545104823759029944127050870117004214171083679962698777351367486149887328551643023446788627674612362496598181963322508352948313811394265389187192340074912012825566580734906620769168971142607162742491676106998216595363865142773420569440570262569129528524143695168332350332107089767948082318186149148704372570726340115724068742079118502477163645885385203607463187589878318664009105024117697925498612019135525380662245630581874032503736444370780976559198242478262895302784015170731309288009104794775923484604504559028562267825880983525279009365275357056634695019305420213579377666401709509683126197297719700541019238215560364823543569242074381090041437599426759820564892844083886213472770822138727734935012669390661815595321049426934396527323675832490326824579791946639287731556247881016917197082192137964291672864710417072161690290776013599267698831154967698039212274625736364782293099602011644722625219804675746412859475682001312849711818912081267378197258873535052748355279729237353013252843469584872595358480028393180651539466057871969463818849514651745719993496444577090655227850713615129341137753911337528965811788930689440274396007071944281327873873149270717331365815701743738711593969588573082185363272471023294325039358960921111625556880469747532221255279609249337839644261220363440431237809630497070172567962600343101846763533419613144645683460582148954794073358936144657718928156394351371604320403897119810431449558160063271351272543472271625112084881976229567496919598412635720959354402787577638602155731554204574249845764960900344780096243727248391985786862938573879721123575354366915786206475115304635645475338888440018106584543795566609583089601753836337177050843486137493042378377301288828868593710761239894681149973265227551926872253259390506913113056816252405169494632829695766763742672958650357130841521057484367354506162655513910852160328550377155096377990864267467453473650848817698448979119747932686941540117237819772344099108498190255466248749745943984164737066029821638364329138363999670045563827029425322416077803995723528056273698528256440518867814944401613694905451767364015362076713723666910999092303007073083847800094479673446143075609958857650162651440981239415660228525016979982966756709622368014778848708765426595746380491515506828725322375067387699894772888389858827125144063778412339357614464008743114579675816185918143626270781123210708444111762977191570468672773955167890274345095006857404452151724120481878065453413469404948338973202383905081829951254590588224088223951100057048425898800971713571359358118354491564536132989528108176280176829599404244788855591698297732380077403181322410693715792395424148797997005149310581188504566548346694625770908597736904054194972566513239847864310874716163996714728737280307329153963127353954430134699362282716445150645573966473839364856193591413157536469311976694103607345392969485243209167489006392191600124750509028512456004561720323799437185582895503862461008563119947764526880480266737674674246455639836935640409729148962449020459475301335522065405367563117148944492917553556114493840092554626238857280348407895533427180805533522834434712952989930008039723494926430339364342691497647781297941992293891871716580460847228248762959501180298050611498507184258120947900121730372692302147553395997864795213404075190713528206783608944598022750889146549479490114923470373604100349319449203301664417336254554986339650435930360854450626597882950921503929694882331445786523586593515988977075662963744967272718563618913225631769042774980252288026924540817212556099419416603028803513394706875612244163052166111061969072198829975077662137048581414350914691404526986548850703281525159397736010330487205913676376341249336150332681436366382465413770825827890282602691884289663510814100000749477363709931861012211646297941579077232852844249481234859537628032605492277482565610574832204334855434080242800810466445636394314444181030018735981879652739265777527530563293036269257210332857753164906040463789637610790968674012612027473560701540929898796417044121440999444511448768031165687268994474579779855721494013505306660059707534853496221893145536708261625114158215095217879404879849422333758793690160264590652442224266971674812200969114974305125450118823243036346825384155421101992951786699649126557744509247891341701029825945273550051101815749444079483002439743732443282932516653413482952814907680725055318596788109687886679349097485612401803558312784904677965744690413524806849424115786543663636488971014761718497548786554499580385646981813296937989875048785695705986277887939332204510869594501005531074271898770720116344609460110886542308963638779697003425420885506015362874373578310848711116864205815034933197417288704565276661292457526006889838986930418903127927079729944688854371321220595396585678360173172775127034389409592214620883149704219353543607631842746287381390297054861983388412582456333776251939328164411236572804774982810889650695736538074561170731356605424660931325615305417599858524312800889829738070734793673067799434273362244016168277448727587130259583318429770763102554823253408632787709079833233657760458173107961199465724343823176803704587503115151442605365142573052585207297851690889679679977675366160437616594571799397976253212474345714722040519861571425506390897544152736807152163228071855136132242533818860247234801915329349642899289496082018485945680170539273003906258316929755052430537800922661515376625674675989972027680694805513048888040684540031562756967396715062555357353780309445699185525038741936773414767908055860032321712591621548083255863323379259048496146528526583406806581460571315690932470124495065787258774456598351291986605862909287474550961014119413957982885042760065799724808308422084327420533542826665239398365102579170573018608829239102992901273159080530140609398417301446762585681035599390411363082407535467746263953190030761060530483866949165052743133787421174876215921770346401868501835933915668328427392521010648123480869422496615709836200100910956186101150155558144162008971551065166449258163784820011062011043237263758849836406441805889634627870966912420410512818676729697811842994784453067955083734668805105572474659198649830109523343293254742913753958980176526956010679386460590659440673075615076395742565469457968893209699567494073633980874607558105095894001561642695744390443254194400828395778089321887768232456975627968855807787107859965978401040467584829152009913036721974634173082784806589601177889882203646102813344406802070718805879229065126904371323192182978989851737668247660974444334063130991731040022574906591233362783133859317383188868017496485390619184428140608168968570066147335219255576146567970551805725340867488621631977956738828276268090251414782758937791234640340808034342561260449549057333770656851125407372568134995978585787135116522028198897009843402318782225167976251185263372407386548677130008183451907343619057231567889695243143989339165305365244421379538979746116548833412602884185408878967896001824063069960802387428336606736744193231587170397545482861001256197295463606598889546834323099042006450549745067530826056094308620480127935375589879634678171871535811703464943003389384150842228636179899757525289940406321708325939737146369664349801024691193186883310839308823034317561184755367129401525704551507947211083179960552156977664824929054076085340551235196080230702896612339761070071360389587644587209346681994702597177700073540422659583697260465081027266687799676525633764230202243998380410290284811324796882003937402017117823538215650837824947585823961889628800564502284470118876738545916606370207844313503649279408037549988540609837585403544721626288110360541541974370199893252796155765921432850207710557126275625028661650822463389417521552146472766213429692503726197944705093266307989992562309139147465197265458904698122896477611745437457976204938459704570976659659833201883053260229672070782530711467716949303933121431226657666414896861066759573106586069354234446427760474513415332706479184260107785500773031988971983600460880590106268940876616112312272246071770918840168132936026457646645241824409241686295383706462247316516726065632813812599847963830011408041878854048920930122700255475354923292793735623579624922429519048381174301212832505860721207728094329604831957980274378111319697075069528873772672531621661282703023830946082060891835954894084699084683230197626521422960241009185293422482016523957256183554464872633628340845959002129739739048286632153912367685486019060434831534872291867278511922000898805317665823195092685899056344835832098499494346397823822410979712036531371535974450752223512279440898245708713951907360961113460945268093414083691304834160414172785251928890195804618745111876823356989243442042303262169955328318796768941172430075530374118427015680129461309251496929106657352083096683216283193235697729528657680217705985639276503552039168873685502922721777096656279153100417317896044806588035205079777602639854648968436883521700590272891928281268894703395155746366428164529721672514912156554948258922366944612591035269811776857379177726963822919128044176501784010473869761585108851796145051083644036465686251709239348100906355922192253483752812132004688689383540159598353689170767188633489535505180898174483958866480386330104659838498823641373008598648292261843751185728880621772211870047990791940358958735446361073614788984850653374892769099210216463186394934848044753214494438316796070273568027464191517154283551568306892239160189181695187672173483744502545615596367694374582143213141396629703948802637349470469013819314687404450096161615855683268660326619345545183052191647633674999416384615798599826714418706807547127557159741385443344684124586707038674217244341722179291080997828198242977648995347460734802381671486562842887210566852184603062913114284914305797064018738965482534460822308808675470360558192970775345654784425110634000222414661909641664410971223171410213046066548472289798663913724332502923162681288705927492463624493319532541537083984982259196643146639717791874733208617445319752749319443800989966845994469052815524585705393286325355834320333341347208938050495400364659022681980478105453774735341290749929775999051046818204903099748716493364877208097466671925121123711726759165252571151708649143646125731850768592063855164974714866635135601190055619810118291207755227813160866225288744897540660506034976644540623190204990808892736748644046058153710095683181954309974659387022900968750040797584376270495985589525733103862755405935340188012108183898396248839797992192040597693129142344397763451720885920489964719172210421908563212256516949317379561009785751637696126034889164901037164102383361229736930275490290319557315700709678018751284054823948989392415344945474020749190131655678279758534394422367804533397511105875292358406197098572236471820484401506045383960776660220877408832753858890036348793918686059964231398364982403161282256300433936973354506465285283161547721009459599172370988691299787255923203891137738586652123745226676484093414705093195861038112744535319688862672965406290141391462421266394598600635930133068071750796255795605464281023447630494339625466967378431085177728090757820390626469997687241740563356442829275421927670547978654371427587331521929156010559829931854866351024321131395492420382163571124335137030735227055842360314402317939801079930012472503849006154096695895686721590949500819588972559288810826830519235644725135689118874687568338460740413628037390142310767244387244784329907694580263468352161759353719331529430556566541072639068127358051013688657412858217781981064921316595148832600681136999126697202534573484337592579681245390128956375308197941054146180492492106348887587279740879416035349685479969615677785405472414156008024250558176003304497064231559205654734561633270513238871319786591157301256060090501294116062632083464127939799050565712415353844388473444539141448830702056495080786287150129699585042577205740290221734131434950738357862136666738758802049188420010603696309842757102687143588158767631745357826658259015106686291878120818700727606484139967393206599324902744714712708626017934775021892271307724213254213391456740549202270081369381307093723005661193704992443579868534844948850025403341365578087108428712620699152546255777688938208417305319589999197895732241856643737055102263813044009323695374202730832131157449963025743902268677162929376991593053563383203836538678947646036735652160933998945450888686760199147786822024765223735813330130645957106631059588334926935445144103458441141193530307992835942646368431551816402738152454239523029754147156822969108605710699410344201258628045414258379283221685699904598340153413011085166557819561880717988363710156353096631138890632928461074738828434162425491364815132933813208271729288364763866344994185399407054193892232730459465073261675748452096298055568784146360612611437423587332674895959968550221942511906990259246866315843366701926062157393206011423979049530265561188938501723603602570652486358316671299964218300087971239388419221963273219886514016628431270957089174393247585084360232415380485928021733514054794382397638599205041793655496316871337663159703943759565912283308466567886467068469751248149446172025230144027122153732299970368513986795565547676509731390146272202156493246881039788154378787971790291622853196451254852667389851523673759547491351787095641280490969899627701628016031492506059476026913812048793629200344504213348667128331140771010123038875549773758553276699572806717842284328471070273917484738406044008654038544160240109791715995218045970614669540255053570338040376225437270282063597349476256349988817268538347870415004962189679337722603980357749956604684982167621945236644645899080163781447507949486940697734922650394440955466539624875292480840208356140241967834074826789121638896341775079229714667482352738297428881276608729868489651053610005953860060419382178068884467040501121668984721681611738434095536430413385450560865659333255144670330367735303360956211161814912294579515003168923427091147854489007372636445950441787877709303641677743669401152569079195075960018514633769516519553587354732669414400752998045917849219434207284950750056942039842609680036603486376298533997667087803851268670036330032540825036924048971746317642409770684211798504548997447109361564060590410961587229637068962739486103843498474127668859650989018073643008798219664965631483398739376089234598854255843498405451266285998406288748390844870690997590416315036344626037747173384468932448878496841035726993787882431915276395528676064115788491507641036063807342405305305235690963877431634120300373867233045038478325227824487759107134435090927742384019082038793540146391898797349827960948808562988773628139006038799157271008210913728828355292566137118795828241243199754071238805474858301727494429200054854986993669293716454042568722705012089214468731934152386414815815567209303456142405418369582111089292592438233888507851920183622077566393099312561747318016760691472419092967872321731312980578928759890137671736061556947654558721058292924804801395853374665613935352504818446622722454436985896116974545092375700295739391119443056119332988694492178537942673348854956516779554526994399213596053497663232796115120758500539310663878702026607540424153233840777002806182814624541131034256311187018369393719963465679019837041654055323959094945255636071337863383906572406686388266064428781201205062181315257107486191954986747821536659580028945058859110948665022194520525312244914545577768091167321889517027059252824309703425481664844620579919888208293404637932333104191270336802898305470426634074517193779933060920321576460593581740408012339873677282469566731689286343989710933974696508195680996814749487367135828848616160211692257230886248808047422760952209010186622712943819673313997031985972976682329437983382817258684951315772543251041219783482446234101420303206216768171442393329685759669599948736840966671004478922212358936389158133759897114403919036307141736770522913970165259138715737209556497399117047050708104684898512870247652799803370523213785300872081805806145115838696262532876573796611133594179104524329181644296188494002538571300780040120662565692077359898054657983721241836684057185075784572847164479184461087351018497121554225467777503565145675904739712715807358964124388082680382698869266018839110244534072157675863090355585893676641764217084838086412003010550077045691471313243493815844888893678567925378923102314115163769099693033260451376823635186101893953317697209977766288174533379178489629772166919245518581090250905984891564359886750165271341131944582641516543920665909155910789106734352203779547454164638078795676084166949027104968452416571756078024617932238263205459024267990716413207987714989042315186493154545649037689580754819563724279444857715278500291196341029853316099949214592506617906428048728085580009321914326545947218043337428702655920978968293367384238338802758540326514708199182578596752558826673998541575068029461271280859307236391565400504763484231112482182149633332515855278577481185115494691679014106420253327777121768893002261748249083840395621799572069226983240166515733530587973052658115859990946296528975404489577656958622171660477480776140323725234474744994338333891218123351083235714745339554454300316011582368821090787445344704401419901084343327379182678096878364653419501535089483905005073918734106104638605850301184023616244907075523512190410576687260977349634344828358559626312787512267255070661732406739230546563963435931156472887685066865916582147810037434891883846362697628252173948157224159133762213267155749654238879572082555819345503354946030176568939168308047251914687818058801777872385323136696319690050566657900663977863850194642547808619673421167678091024191277904894240695402739863563978172713644424660743896309956278120372038122457473824001160646365130887716099528864855677960224837797745150227342318852324142823403893615631449237158543192992224251748572908479595773514744708494391964105671207017766798506071929039501111816437805941027179349883795928332575096763994268351886174556487024950442003903665185438316743285084932174321147385313947819327678071856463691217516320478245624087371492271113208609770306668298526331558359797854234346439261493768021469142900926455705425419919602155719438529556780666567676484096151198509884339888840277125538117712727875307911476837816469046905636855094517615740579470510236634777163061371554560550546436130023601588368569786133226263313822844493973648383798583861820285074426765986125054776574696579528386561379235790169373814008076975778154704885779425976647649409006012991270631297696063146409456950775868977740736335825440359820405898209193694503252403405047107406343859331175621836040709500197354645023233736573035912073971467717743267865745334306290929289190912832953012497970546894239793358614485989925414564266712330178651216833800410345764776799952493263432070942239771990653387972161099144749646626800671898738179179822662083353814645730556181000129740996650983239587123898573494187219954040636781171210575071440415823527804720741540782841531699138457571167390250974288544987224892846670095013379709945453963041952150528233598679516285968958974222753419419419657882861848950004545038325192520578628449097540117138190730162015546290890995457065847859909303243006281886117609854160346164661821103465002066177334564324388051363433482652586495570969266034100531565746457447314486958163515958231938177791936637841563468895247402874800230791895902120027922884751341858921077020683299082945438699714483394164201653819916205500430573730089757665033431785759860815234747966200422080043867959044672045402315523696091374023495870389179990470640224238255476500555718277532974529582440182468469620318462282380388746999144974146587610793460292187495389572516581913438922581021060069489064120738774963104055755487547822210777542941914565684913582392156678807873539244135836363131587704553440190436649864972195486005073424999834987699994115024322306513722926894043425837981649726615491935487884676688366018806869664895455040256565792204985160265848362813924215701237077308282404810260336042060818544463169006574684128850306174327571471399155060714140057825888423253955510216439275609084117228805487439380104786209388186648024784340981698039735928350655617440899304456657721733504637312160959540644240819805685922816629173743608407858296967465852641194642928252051335970080226076472870431914329513918011226631803692813740997155095089399994353006977098309356706833809705610726879244795946050490774597740798684038270963836222639743102298063516861655562390953281797551520595664655079627458841832828317999559534009822939943227848473499080329259920638336123104774119874790359547963956213840134877927608424126867232624056833224622682025663292027186686407116446136971252398504734866710222534448042352993947338876316391953351575160782237838196940667285194726683591267599315659139006795646196282311992464720461802016891396467713273319985193021036824777567641852748031308390685029546979379180304188990266332692198660366033074104194075033538262352214471284492429602755977147267117882894373234382171829793979780749815207020709903546394985684771346527518637179928067513258121717769995532707175292751726679684345304609146562460516592555014600328079517046511116226057546535036354002604044269263528271515371791484196218266538250184549137206030688613403615691871642851023790660748741091117883831329073412902861417427554967050411794052372678837396278658506829784971106810810598517446281090220974258998148552290218375979845744398515090305763609364517997661446512697489581315831303397143554696434565497891642769087495683720608260512677147441979607640518480850182876312959301860059112537450263921753804839595329842858125277430068581346232926200917362500899203035050773608849234999018808420118482191119916563018091663779172637639161047650907977063041603928773591440747287097668892280202188530291947711892740494976458490653607814764940088473498362308377289826705022426076105670037391878965156420167472933956304571573698087088802221905314730793765383543870538703614047488559275394350979232670961997840291215991327060381318997416043195074374784438755632401012823594877362894291517328097723297444324412369831296091069088597220386805347786574883313203553345581092842396124983712307049010002192471999563040652974735803211024396032291631196811864937713930954335770067620737857004140927089739208874350094334990102395052911717953405505742648209867180539017963017952909910643546628305901001151896339051536460708570928347851136810547037888653863653986893217380800165642616377377033167520713688082675562269855813099861139238827263494198332077375935532224825439140519872360605130074597692333993281540481220307282432540394064673858519713332865348487437099301819395157253971655908990383088045397693841771432214173947036459604863929666886484698503607094968939516657155101676456283082866959585797871458068336013782689832126112843063978135663285549906208400448873365132992663906574154044382017039479601116056924943823130081820212076051486275697345995405088655485484436323892039538455721030649768074035513510215297930480731689493828212575158140495195513609714813049416385311235851375704808353291013113790702870569848684514332287438380417873091963755494583314265373465624476342518377518043672432777364532080272995638116232844975166741312457037080923293934525505452834788300162173975767892393558289850467159131766844726263821620712793199261833485312418994100348446023391840955768229557732403982685326458366022803286569073010458650543509780629138759062589881358362861366686129169639095597639469891923872050601593790674718686688681296166989663065430958784402073578895704484927771240591926732923662766617720326607020318304273667144616260635315962744693784231787427014101304727249451935769027012029745845443067609956083305074631366375774431716241336622097017611605930384330649659457842044877474600318082400382005861271122476478996343266379056351361809843922291681961903241972370994388697269213086591998660161130201289711546500970342976187407512497655539169878927506905861061169495484980791185870084065482502955042640971693627197355783501660259438149494835210195474050518716731882016864006691753406577864707800906778170419073926148570088371940037098702711652539592267603128953659103773131968888792173946026462701818059967704828124908538008212996769117627889907554193101184606561349096419509567975019776790790457355257479070242815285668896134544624601255238189090419727740493428869162010850514565030558903289572543569328114248673589166903805489594614021040636638187027878154426853297683710595096751716467515361769244040135350747245692255026661906621727815400424315587654519711590606143783326603269802789098739285234261170126355547007163056874209716210051378558384897598579030773393350711324098358547582372354285219224198654328816705197618384360459063445992237044594715758534293170048287081431759473811995823057943210557915745496824299316857516249491057772360716937316607053259222830002012641765386988650480073292150616604688042346539410726299136232405566582729413718149747189636124143041060717556972184721161810709840897065082352126523080247501961992564375459706920469848188162555640117314322195553526651463357103284250247038930163863532472725912100591565719176253073627495499884640354573503546091104307530266060825186146467615385245421945836451757322960922746691903317922179183787144967826004450196990862062667374384873119033750916077368006080818498201423030806547275652124101777366881725266915482255898278754790279719467833139387353350007238528529478560513360852467548176564072263409662115355962411786222013400809612485368990126539102885472508704168145228787659081511384041726794806670414487344775772946036059794487888149334085186199999899818211286230032581356987065724185933260085773656304129050690361862765156346973432436106942667206048634961127291751772937350014732926197611227444057133215296707981285543691660403254275721872901782700106351650350135191730700569206733897743655243643277732133055413326041922197416686314610687208962336383377007780639120621548490920363840149463631872004609521498055567609276853211285815187627189227018941857162500949833378417707511188426687783200598459249363825744616286837646191793019069747990907967439832019671839415512580896278622160772620027178536766405703048593587596607547344774014464332099141633913342537967938365530463898638224109418158254134076220419779671043552285816117921662836781425140675799284254965125320462874161463052928204328801735066907822213468263479844830281626103794197124552083079860682953185157761808810669315946264001033808365896315067543969314544715039533704198308986945998789514501966117307098783088810534687210685533324255435748461046583963742160978783111966728857964758371904221143737850439595324187299945244977411033201568445450321995382823263053169276348298536709864750185287969713525448194169455889157737659032798992292513867582213174849522541721198536888240150609819326181993555552178301274169037978319628443545011463944775360558293054491554821758669349935223013677180508118748573365221649670457383318772028673291814621535017184529125116842736057037183661309363899533958720321483063423413634005301933508202080444936749232434327349017063918666120386396196189373724788427563074142618280077757853344374635647530471535183127953283427200281807354743996181775885007422255623146972623803690748873430271447842335428812821028063728966915951975230899974070817520462080097216150577649652137882449172667824629464810709818522639233481590068269886305403207005450535963177697502331910353049413700476491043565976660793868272394577233856920060204687429873505180221745046037447067816254036615819191155032285939467062796601241856101639592482421531354134129371305369659858028948658138555351889293842576264808061659069165403151220116007975524952451012162462711648602966591241753087886566467046214813206846651755333328213687563354310228592940262615868480774988937297325872635787221939661491562304162978879233570621280992401763178452815797650746562701014416035748776154326941992472028018213139995593628392907946051578523731667552416032174940966963788300303398251956695583641975411015087799752342732265893967779498307331080514490167338466741710081390557115203739980182230545455355998290730645229358324873927115023476892979219305290853657376438667475779470968170017310191107436228479415285588195890720539041154811714821794395554117744490491908383342986576666165492186605657310932109843755890520251341073657682425783011114327385443519016465879588863875464046150862863137221093812516982824064846269092574322820294868590860819721822963948405581044375207041837390509398087375365317213163318260513142498441594342308480817894112090275717008596545203290334218699974353012656349839603258789504424039163011043951134624766314605870714543756930752802968702092159059094983640696630492387039786680683680900616513470002434863734587351763710238044694787191396147526563106810320645469607213739060533176345979615627632028837076710439487527339781154675423917055626268642457433178596014662768841736445463241633013047721481161981214288546002534709906635767710714276753593342030712108730737139491691418338533633939294739214890500888593474279157564427139018960700900026153730243672632173325505842711514017208905338045533563935641159518784737621525229584829477085285742015479629778330734078913127283769983122092103136184916891371402506246993058727237732644690630108586787553557799273557789614253141880360676518419339926910344753587404205357903450554151884128482870542260950202364557924031760388359721949411378223086810640807343385402749676348434838228913796244668861126650831643220027464161912355335712734214881404649601449299305018671232109497479490953073452332521476837809162966543051035197462046049804003714505510656937100943777938722895226929856841338075085324828635921810859354275225347412279593631060313538825308045586808708093218949586679076575010416216953035348398518368542585730307962359712587299036454667815292487435074043165996866430309308375802828752710180463697226687367147642782918750503815661351421239669193428852741446477749004829540881301205121196870388420852400256355883306936222863617159561082442935763029026033915889985885246960593492687997239024636358073858296099009393393012861486287554154599992765726948207877679651518944329848360117141247427933657733208311875396945941218898472197895092532245388320118544923534545987134378330136715971629175060888401652704028291008441842780337694648881055964059117347143603085439523866957834646988916822306895961757402597713683839722455869968693979284640409860481958857771785677989409408038636063420702336342036524142684879561839537965723248469797610178314914553324534903132076545653024725047635823368173925312893376307410739359048024857161765547049959131118487328718744481018510594902789939635339740030252626589132548736224888171180371541105176523804122889296512135321489005071390391056000581111436164187246585105631480632798029039222111277512608430434000432837573854738981883864575964803825236272011948313636193626951121115443294552852568211396077630241474947463303789553315248207728946671079788379351288371919042345532933545020538877642254679585394079197289284311316842794339789017817609419450522015151154396212634483047717323627398036754096642257601685605881200535200393604673971430033035251423566485293053161700431315928224287644494713670988378658602464558375436863306956264726475999084804399351825165579392286080657188131363295526741733837726392450984147065889032393945656889691938049231266871657844949628545231975377492188680176923983190467107147785573864825298839858764677672975216784818476043959538011125663871695575982844026871267160808898346143354498363980348727272952579277330402875502084008438569459967025246090172496040599318680017160708366750990180570468675836007247168004166924482242902552432858726891420734108320215850731325990199865130044597506278198548423038128526767828656072471296452859112253610060395331228620562057299034172473441865641691363275928707048225265663710670511065428245775031848287843870808948423487119399443767844200573897402437943562531387349549146028517719026970969715945311251008008463577270027457225270311276057601279149759996844107197502626056926057090103384605799937056160072725763086958521080996112297560645589865126903862801380399870169520192648630518593601804718789147545394420510598386939607259141453310991707462934634271489944902613366458304248250785187487151069480487584807738774741814103052606206234365773415798026855077172519693677481032747302103359953236861732114084728118403244488770083812902142826928378174951915918236019841815676789318352319384939521206726245152692663381879563520400517563572765821954495293561823673987628054459479477830234340442960760878204295284804308056866002962909851495512090768341548826731377874814549021247175345331329594276220132417228586086092903228302116899881952060740487834236263535296158863534207428911650284587771445481265490708775213847624426273696617565117140681690776129011780146911825317432252033237736872700386431847474754454429003017540500409144004884656094828212730150297943815708332873327550039499830496257922946649102850399411141080169034371945913345137358141111281058527914659700970289163104978898945874511821707556810704170395445581127937555145547721065544185911519851396004722379772253703551321673397079444676557962346467710170605493522994210109716774847172562729642795742884135906641899159610560481844502936721538030560749907081005547535800459584494019556453921305049866718982306063598641560551018461768486864231626963753314143559650627818676482449271221777090651892065939688803980515537509607099478503417009676960720026532496525032069230431525847669766343320684257632814822597038790368356701803597535997853029882165373508881054908600811983710854229995068317451847532252029024076436412958312174992602640934381850647075396661249180701140928091835653293095689963575488449959963531036556840119923463520897483262925560445323964789099580970077833026896713909326071603830753749838716237229992320448734447303197832852544371148198589171408212880357689703791853714176944397411812514934684258955684033384573416146496531530377268168879177429615258411474099430355270463646014975798091120130972875691661999692681433113827752188874440834015779224541062090884791666233900707524076543983494200800606493797894319917781710612217096590006223146101090672934056063058478688778844791181439055477608080252705390524379301738949839049011565627707773691634761883510828958030053054718460616282309982035558146726535070182151289077196097997459159628930517005316477584336164664139851663597275072435651338481549902256237016772929001474183252878546281151982205067853283599606900401716287617460753837260925061768031080165085777300393762326471231389730281163586043887924592204262409983425180116108249540988545942177995532903711347297179663629099904715036678092747376120159526800356170794942090706568441327052119009080037316702653282578651166148860049716610313930151562410961606119466300867633852741617719994077373551535842338855445732370829278933410986000722866588576621686499924226305334981315275939592329383296043920107819794124120431298893664438134198205747631422067610013498240842483931546147163016479745318364542592526719332695881910221137082681834759177803998738609959424297140742215473084846260382711546213266633677115690119927190083232528765644914072968998202573397782104881086479636401101665871969352901263296026854397044863911136448101933179590500554851164391492340332088566440633159402878771907546338534523240753850187746305863133574443856421519894884170434100016582989903728180016994559674933358207241095307980158880605364381373573309231978245568426153882486322657753879926181451057681238627224187159231118452964493363907760248785390442655465424192362935826444676995809824879438515364460024894304561630255400952837052716238300944734525740712874152823406518503075371536477175979986246146217993816152199947920617980269906510283499352827260264247706083348301515196882053374138751391183361395972406677763060425213400270215137729368856354831529154692872177829433715745897709191181674409444421174882961095313874488313326582933694679230380831695451379655735501852504444785853365095382973676115957673352060620648658783960744454881498448928144278823729300691729189224525156027371614902374275706428223815481423301628154505237793803147771360379283141544698480960000275110299550457977817066382256624385189550577950586654278224933007980181539576059215048874504785519189756823758469580545524542780503013947765447198481602977367310022989535751007027569207680398980200067311675073652869484441458054721732618307495804343537880485928195953283959421823738065442058343039149854774338689904390441102340229814759037902153139632098065214594819185181125481417949150852670012812570337045630207930407835063259158180187984617430752629296609905856883004605312081857263859324629976094504048376610656936363348659293447540845805300259865013747839770456744211362097038205086722517129529599021784271436890900219167524357389874146939486974149661257704560561928153990195678932620770066953705259938986928688858825060171270657804686558231067339680151674100764336017205278256092696732074340880304168028957850953472845684656029470091244331978564323085309104740688023581444622705101860106560200607292006992816655595619681939070044629275969479736880539689881681660822341230086506382949622087058809296038922429099037983520924205501991438531044578244248494008801599561576345137734810790418586080173849178804926562144994584259525355290334316781125451634271536931477415817779314764072917373542591102900859670868065309607384771750673832627781193025994383752677608149003502672233190277999236073801796631427276299403065965135978008316790346488130203285281211378747252002736761716043759256864432201120424332646615661112268406023670789423593743798710835054618485061557473393282234832075245131302674822661828168211323730828888112664646044423720690719729694038064620849879478417843969624641613329451335538573425126238478485557167850774902193455879378035607698272671250061237081385476456352807466822815841775749366416299149806389211605529881201813331179664116795882708424794084947032279714646806391785419777217759567602778567796277275718828130660348921623684440676247638691586503474931616819010402459597767312867314983461327562026442441927338599769550903971691669991444374149020026096308900539850084576739528168221043592077595285197462955151511757602489952826385446296664859038046937544842810233944769638194706982069217494638670296294149363560111277071985256954378643270821544119958747235991073153335556117508093190987461455708646846304349018695813064560328722559827210824014503303381417211735497949653967201305154623079570429811778334909821682280404115774084104357111305380542227942712134452044889034811704313125318025749709179746443043541452306989699188180397068513156885513303500155283444108937945676435735104588485821281060242132334744339395749547195678583605655044354551956116991634854685062069974116032281785341553214562527222346680914437050780740915646133261481394097237472163525560788102679215833484507748645349536800008196228748715233268165788561818425082381056338670738416695125966293007557443869723429730381554250930059992891878646656688318804816905173326398374854239248398088883923306328365063401038338190795851840507919250722308580384072052394182923026256382737212433798833095606818069864578116354721787033621775883037870000765642373285882473971752266776366539941212658181807773345473674886694992865586893328225589097557020800303513279045543785279694145276393675802458292303915626030856352217911819729329318001513531575227741636562991231339384750809304190063276277832717925852927696532385969274816204713756332758473922417711446343170804420042291342966877976562566648972709991910734835326130669861651798016419496257726589962749977443030525671340111432070876918832808671849132155584132195493690560349850610152680045275569947661888990654168679447596793332961594170217141128014205748651284455369483281683899739393876800160574060294038018353797061231303589737334519584135757250874087932374849507479820272114001095509081841447776502515501407799050660646914436712672119416218719837999500834766895080051371575684471132187803138007287372887611297451723505705280122859040434300184311881275180162581867347850511865477721723009897539038124405941919093968646333484199499384139377675178757528511061381180024238294009536257272494230431030374066992222146356733883700770835765170754409580827710640123313744946771950307049602435429950620793827657823686770805462217548502062735421228193192788382094635308055348328560323636834099635508152375046373682803075167851884592007158668697731725315594201436014485526443074755631717231631808204649518894697792473832526417172819909179097015608842567460530104095496445593448455950213134104134064149682174229272371333820331643713846693340300024476987612198128817890471368054471450217255864284859729654801228090633388038246117645189892675495072437213350391333225955107989676753555119537821748517575518895843464484195575524516279778619056846382499151323240979613648673407961364521331713443485656481648251038913989363368762834561433677731197988123584017801036648364994194227623063027325387031149737126147793694122497960896306189032873483327101800434421909931815718699446289696627070214984964447667720658677422660993190847693676013141572685174882944842942509390713972579070194320416038674220810697939807804380083846967561721369206698436457317797511116435140960808679493114774985417472928448287775239104533006732216683160220769894235369044747120105453661510431419182744421129594860637297999358742325990230574829920227901694159291630838306066967392766079139421559677028109385798751820916439320236461965382431849041573984930470895318124452385489027622427208912987268719967054247678625076457149271841913421443572071992807073079544463045805434242427005862854162705257378935452484583212853587826660498291306707154438619901909727317382176880801693664258426970647464319251476956529711774650878037881721795966375859927886328154382032694426295898584009233113880516067638874470805653062427445689285955516741109205210901141197127820883004835557567717727406831499857296751059127926546949730375423096735906128242111567120695044136138601669442398354015608537077471612625896530067268881303519710329937270340599192956603858211706750988557119716406137696908366140311902294316722889408312534832982551857255676253880854809403855605619489024286272348834602890338736981886164322419393030593065006525551265663500626645272626808308184744984916665722233953758382965801962823275704311929796169046742222412877069496388918326903810841361507065617766982462820730366216016612447383460143286085081981359958783311776357448071022011990452585038079142697206914928266468005066083395666317305645620259337013464494518942985407456252994567984145532284184564373231404859966088099109966869430660175476216818456439152115274514577174981450132538301800563242002848396384514622709084692100527079181313013772048709613657158903385603205944755646936882610708251364573165368785061286211534817239949646089319328649861616941403636266791648956597208909851761725929789321109322731815653698017636892802195225663260057198450997851865368735234614102630530364974156773245245277524926493381800816144035399466283517122236662798681584197587836121943237637062602614222135346787561356416640690872602535688386405117826828957784374471319887817478416777929665288594095333865787482368669044213859075910433634764346800247280709682413002620631287693981803783988500063779806645779232630681722839295665242169415580250861769807282714918644709910359838205387458763383282615949010255322595626045242772784087895718565059374321626693373555960637059544477416550442557807875039571676718603848433692653069521667401581228490964317958660685514624206116045474933820131998316856927856886466995172070926995761101540385295784276865651097751445521321703656221549016844951877179127032179932287538094686006000099722293907109484834934724044211130560364134632293506699390193574889428893903485366968425427766641795317743204040366225469223661300118152172773648922109685573003682550438336017474926376819766754164953546719642504153651275450227718450562733962584809242038202090604592391226277201773557126040844875433278287147743886069338550512435930830845028233025186069436477448688737052005371168785578131020260452076929802667534571592699074401080986723472846877631250044664597545209944114709569993033304985967919229918633307135408432887794891109582670758802694787160936990205434804164672743898774657527636635344470504151305681464248281085931971417698883565031957006441694146360984100100502618822404614477305093912572871477433806880947497201065505632204597378787939021183451422872932566796898535806940812856825852373031798956553747821669707710667937531130034651319379142029114998955481631141987540213754272078939962794988080336524407025157967477349640236653085766854775163745614362184393905482527260768229835783436123723146515044146896449066562495115275231364184341472810546325335110022037217848926978034998790255960984126962569316498608844706878706779314680561663333260088480731850470357213409003220335221924812570406635261160838851382586691033047145732282286713847145721718026432659199256245629936289895772933065472005863660634682137094263434321894791455959785456593186527833109331251011284953433437512269920473472743678620748347500532516680016164620856963295289007319188287979953188149022071255500401531654166680504396913312969081600989396246615601645054963142986399819508334364899757197319729849881164477088843764984389386610072968095881486108321104392837207414061021745798230943162637616099880415538162562204146200646550470382263116523174849832507433251429410665505014228677991187508584344254874706255604207715702077800807047881240159931359846811699897367903879968651261941662258423201136088854768166525550726143333673798860324718384922185113790458810252380307190424709818686559212749718548089493347731569281948538237014793550089028317595963097532477965464292388432366789430110365293680103621624589201349670084588017745381072556021630693968249194011054682289579864619860317997559005528424875707325509387695923829826566873644597600864605400835763366441466284470978659563455317257672266646613799950418769833445118373834775359196716144866471977115063125098313421162162217959174763280697045957623890660134833086873644560435389675661131949874986173002660732844698086230218802016605310313413643952140176326741632480427832837036309475547272358976221080123033134886132462496307409193380596231432766208015545634731143328320413628044423196585370513029196296530327296291940352095738670538985335069976791772086731352999168529265520260339573016003155228034958852376478617376764177477244237743685536592837018480508579849333690761787673853705033043113335346813386819387879914861976283468748327753129953958916339213346873647482949640976582439047081071792678179354276851335667471912290976091082213113112683170548701961510524658181988108839502513504143225457384636962336899981164713565569613072859244417648073749600028361473289129833046068437753793973261593197461518488717991453926746064250349109206377934242966392463690760823274822453053015830878806298675232080954527984380572207992600923201087431375352153299141939509162452707292214452805968433508993768702550946778031511011152365432689127534353891042765643003504271932388088490863100814138388389407337245726417665368100637025041977675815323130976815608572796084758503293882162033995260188756836890114870011859317712038184339966633420860183389237174994476050659492686580754137323040060107512679050025771984521264613423136267531657684558997530114005514589189364662285119956990905493630317889441012587750348612604375799266432895884362688707105060318101589381870191503427773898949702879071013265112777106414584031745431002189890025863150825127713645833703681704772308362503448497314834738098016292434517118611867486344550653685354648121780535055604181195913130682722982302334125137990263098187005443288050915573609929183919894116616504780219748408790271177495293019061767097045542982521689029550326890375096480697612442704141788485630792753164917955642570109451075584267124770889956997589423367082647081537916757330254579065781927587725498793880085377124425170119756509010999853899038970758049054207072391233935254750931829220156540744137059652488554383734016144017433224002092457110265394370691243077316255619866734658786028570532644232948456304799739176403729346404546864134172298747114307425249138282153816636115086716957080944035534227463218369340681580934860640185595900945161323162106995486072261722580994561108391356602141408261964312971328738264448320258075878022086620416156128343580475791328725749517615670499987989212533987206115491001285821827948662729148150590876839956176299807714453505856151519388994056839395601137974185813055871862556610105550797540643506487270070207511167435232737290011577226454234168403400048763662107549102117361243865200843146332462510408918423661391709091847522973530410577595530984875735185361029771103456897402453045728755244132222923104163113233993497283983254841268668300186046370736702706982349246551687034993348030859121959938537170010003711270703258917023640028219404976449304163707972495624803653425234260136939699311650061200619865665422078240927890222290474341251940884417296557218648721961639574739521541286608189159654163686353017634798796752695430443525975286877720737598865129746090960368888711494376553818501925665019576866962789726198858080501868535260004921835067901366122442998447754210048554805527022219714871141609820150344290877348955197842362603165814510878171420542826044826158953854848093287405192215531647163135053945982421814786175694139769284761235792604648595015520656153940134397113108182739660635378959918914096915294556032229001330418991988570967139973154837661921344327415723716804984414111070098872217920400308300532801539182032346734826403850850797812595679994440626707862738472865149254395507034821216124690061346554316187973481553808241777315921022295377174337755145186405889221580112114350574279339652395530959060282737088642932701601234617075416871440664490615502347579384072409294761892571552020753306887534919501167414075734797293583696798860147709189628493207254042122743035219743023998985356302845437624252649519544453776655398983163014859478725209798707316774442470849447716851848369751601851371272731299944931352848789403403840895572359138591330884225099624792725605232538324306851290284589453889083394423047067208176773489870229932462234818070641075892000255579916043794187824045127165370432615761468326778700769909890673105139486744661169388949637077654420485107144660307937308538328804497213584417639715517981964025817105970630616873408338062908008081654638109697719403324691733672984810098794281140301853930287646870590683557907912349228775172680699467601647437904115763112643077971999626679580786971419604724403159552082901496542665659836989038100599741783034437050030505848855997582178697056656573235661171407436513441731389703107512335586141407228705201604446759695120826999419425602852441946351470584040696160165516837479961321469706808767464564418815034258465811145329361022181920436586613946629488129039714863734738294228510486877390892036176727129664080154544219829619274598666569266760263643887631876970663539156710893486300746003549635457018305687473100496171762168578819479051599495529810716259305610098326438038055019389063431537551432805763394034380556678541917355331549868127004616118036679307058980321182167279819348288235020196241563700781978966893456852988971028527595689827921933555856132603894860463188223438534572084435858589652012010772376095960077470784596513324116808965572582005876942060819120834802678605369094509194611553422741492752515728324005902898289420910859606766776348303774460629234292297838047858247384156340739255854717485446813427549478062413500365420443582175688605287939935891785852198438580040826750840821675518004387548747102056531981299785412138934070248740776906109736774789636506847259644874408287989286994634306755225176774126058135362888072776402097197264707890091240787314501702890191458150497520737992594389840862519325169659255515299418682964343857966053490497443780982944294657170540048795107420487405870128764038868671123249069271399305890232056900844389490886377104840670836405689313093459510174369274351993090616201410669865229768511003991129131136101585758259792599027810416791270517190283775402007918342418816117845866132770907017912499248553916634351773407870763962859150207667713798734303410142595969335046200250468596461704281405236925814736641223283612000401208347434025669061252193462289587798685737039817268808731562814429066832742383258017019721751570869312402034544908209711252645207439260322984228555560528198897561056417093718481009311689923859909945933255769610595753364910711035581050093139706850896279694408997991621043851503152998990105232493105621076949908168439504953069862277807839879520102773561998137657594140601915989279455171380093555135078584231348006881979005681541316297225589941519589094306820550869942146344499553926954540429123957582987856895601676487551954796837112537280572001935718653612783499653444753594752098410063260005574940354947362754195599042180241970276801776713534313928031128033460304639520536511837788589863194301320484388829979988161974721883006864159474840457597096362285559285802722408236011134940698107940448671565443502607707608547096256756630127974587285591258376262985899436923911240696202044183971967090813202212455612026811835823988528153371341635188652703215170451226545679384051742165408632703556056739273103315717135694161404586508536270804714096600484472873172340219276352206769610315301834442895275751441978551156149354983026945339687229771445710317297164208373400543213376049433701267328404875476064731364712855818732826836294972466230818120812723507576925333357891833113958954659107311709714743086639356841034246492282659397538860683744283985644021795252584022294631228462132319776095348903120505073134460245067814666608548603001147499225815578550529802747876849142501509535619653804814443337208806035111054603954792457676520169366039294548016978580554025369425778500941507414004891679433174572290767018000059846210814004803576585661121761837503005619007869867416887912871511641273201962474168100425911387059110648184009997059415513465456734661378628889290713421747647327312764159181254791831198264745066052682091513654620209742227604385241902192512043731664596414539333641871695036240755106611678181295228514843956379188296384729306949716723447523452391541242294402498231985790728127206020492274243937914626935379679082398516595239112958441756529432421841415138791753532992807494836119620032574989198217856499228448149988566674667048190181590872047561765437749155617288081259615312994268495311361784097208991622762813298504229340881253136250045647852671110695031208936788610470414753374898917130963962080437145390196279218390893153094003317781265733946990097662193166283514488425274116642266507416500690503523352846785178812661377830116573956294096269807375050273252148763238262964797494321887945666274682204248715773081952097945572837328101693787511236772783842933782105786436508670774689393698275018350903644077073028028368835717937919652483230454773510140778415318342802462313517080696558257457448991177104943681743650979543389279649082481032782388467488333997672630014971383956112347574886260897330701133411976802554303713762382539960341840635022941369706071456454247566255398871334956436358588393558484391686965722930094751089820869504507776851572381716227764937579085230473806384125164368104046106479170291569683417364587753205505272637057551711512514135023313583793608032121276085702095589876922577695395313566861626776056866617653248038769457275243923184843450250000922250660166892942432290450971682630327885376809073832232074847715298071344541978157306474162080604120540792836554051229935876736760429413635353207926815811802748333811974602345915611298180778438019727375380445337965976645341860878690289341828115561272087145720149914972875775278695444831123907135926762381726857256616508468143978513382872658703705042940101703615799363654835316606126986122361730690249511157777849427085718761746581015952644050419711750634377769232096261761500957526714365422663263300419946112637707245569885190621804838079690447876802254396375954351597101678908124635932775242780997202522340720714721417944613284159241954331347930857819277015809378043391666938000480557964099281047478058656624141042387867449899757082539533049905508391789131037457794919492077017335015897397955239590735501956183315659542669715213279085672127666788782396777014657790331462256735770924234401052551532907217564911922961589950717243382970018709359343686628842167919885123008573108005044356679078120512530419402134510163347565738095621981030974270272926183920296416747886966567907071269684540306394189860418071191086179627806111268811796728176172650013385139022643783792528737326417787893548888162235482123692153157301578147058875983570148529464164649679317852884728331477408050492331902849516299421966003982721050866287986018787607252520817787999999450568734620957676239516002641244160583269518691904939955794636470642750090345241412948117467868884997270907717052219289123795187364612577959914738339322449169081299799553199896200551374780384666779067926413271634843342255263719520693884990708893693258562200732455712587273803940784434692894529084877909962199505984294930886309961022981799356936880343122063720921116610541208419191928075440539204408038204655597954294255710333258202888898188551611177057136683438075513363022239926515981256147200615232060994683687491446140692238673126862435995293606828541503535892658679671464223146485050788958196306863121527546588593533470926177151663395657818394771856624744552515310627320724126144046141899451117341902155459723564239335068725765099191005142661969431899585950309028939932660078132839750159748143285186060204784688986662681518427626394658001576522164316877649090926738886719330030901115385102160667666410237276236263147678236118044254583291940887648069745754352620265058829368492225202350455065749870817089523245691663538866382826835529716226101364511361394693264160791941217303389887785507372539355010797629400120445475026338779793292413966167173900540058683370712088468273175020515987196692914806621105635951829404534779950297816036858888216659440740702307319243201673022320035609382257399907456332106829411605715043391907776712047492594675634715781451742615870085625427083429306523210962565872828472110237614900409272141004536328448832434144381732900603711822086124099722704789022186734178977902473582427889470543734372010081446762857607008707503039119747455756487364381147986324193260292475536130115749644370070668813452110790878361017057286422523834288390409828044522134599371447056616938944370705796665683845317533024136682927915624709576189858858469794540902466195238836478595887148739967678756556499953931533487043092891983874780339869767346875518430872389142477280804671781043467897449130794832667269564140669579676273554806154347923890521367486925075267910048514646578517576948264138019456953688713279626291833873503653574058423041991699878352059658538615854294460440239990840836710262029783852826240318087276546550987731351811356985603390038234696994025708757567872522077505840136373780810949303553315208147877093142023084586343397394603033687526066769002125335231001977364875158395707981559485342061378701141867745892842903611181141351777091841697223637004862988569377036998028915890693151532572647302778664155512871277379567686344967201919426526530863640773468129744963755772715749632649069381107325798445167716135592517353641788617145301376366759022158874446801852860005285132420645996319602527742614737167923477200942527108284146695004271502130442487137498494826095537522849179577362890016520348915252209023076480547959175458915302886897717403528738550236409211174520643098724352076403178420060765995161716298735863140486859311075243781228643510247526262759763377709668785290620369384000777461758220834260859652872786137595731092063765455195157145707652001425433915008838558847420142587982318771379232357234443706820967791937137416869870411160984686672922817979258843733876885519679650826693372712717718195480297964831756738939417131989304795612174376372544095777006154364773717321384844106985304795239460437162265456195875273363384997098823376903777455082031925597869605433553319989554112422529045245297463731134616364875806482373588503127524153326369432278745547673118947218921014985702266314936461511302262213614293652993240760518743790611969648787674386478497998541508196046381205163584532902087845868874651772441880183033129182577669900511903629532821775784026525775442628130915122465564529661246126789202477384364737675588491942103163485035960993143371444369490515077230198639204866550733578600920214223615630373904114717019444950835731854222139692096007087581900194105028819101608868901916533227570065862750273222731493957460034273848524051377693587761652396560090457586122610286964102180722096646811515968971959375597872881448520618621583564076965487556029947520871414606393180200598805621339201766769701671556325170628964317413452843854293193907458617220359799872141324903117588672310280331200316852005900252954795182285371061821893856371681134696300327471340809058100011462507047161321384764023468953999988371914874875896096386537392419310910047244303440242560010778622620737299241440122829011295696192643554450878127191095984884869846665525229040864827843761631381757698481657939346072447117400661648421816500888084191328298599588060273359921209718579875679806498116015198516819256443768030290379007060115006940224904784625624164420794824560697874189118194910405507582768333993595240864687099675874422894227700579223284826582402691955048184192383234281851096218846194144424744184734095844058226941453640265341877856942717692213011239375438169614644214014106698455980614564831664880141926672756091305337188033993214661693507786270137993788996103469764863158052811068719783907857414713067534870411106225966566758201388268556686949722875085716082430567323215079703050850254462912361447071505811003707084647933537207988692911600446368228275888265551229711217403574248621220107810363432229816171780111842857091116624066669344340176541548524811469293811687319351846044988049448425672955374256047259066006193464812314247758362894890206289923815617420389505590827320873548523038742195446156667345268501672191574993697905390166695459353490321981778907618083257363597338908118928030504677096925543506499950230795579709858231497447723905501864557739909644691967972645413623489213969615424357266125365592341355382919954706589833335536043645848838002099097769317034789116258534589784118710650348058317710868589466070726842189937785368410387445953360287912789431568368213249305556033751347623190031046572502746304883200010729143355068040555295499722155590802116068940160958623953312497372596656157016889062042404470538625735151344734838165973088740082759143944940103598187891249309562315773724344160508702977058805992909145637349492115054619957965070494297056141898960093530025404051752847715673853655266074409030024736701109818838449347418739703282275361242909231465094277272539146403549045074050216840337924428708877691382446033445658621063232433278341501749618017139465632824356068643047307479209941077251714810232357332290224877356264075401262881760250855125063603467818065292385144637276615850620695164025644377640305095689495262623196157251131294752322672392138042052569579442218232347919803048799343734791469276667792508445204407774680459057802263442363273432979744988250280249351559511660893346367914297340888919484732122878440264908961450727530932644987324837917796657388364863579493172081629911424824890852054435390378307562370822039252054244797054496699290926440651760259600753655601802976800450692753258608379183346092333316056228478646528225456376407145326226691417338817825380213640514228654831927669245104229255952867660711864266432899978879190565895240799903322226835364659356191022662498185619136632964899216139164632562960145255649953421284811604316048122347843365264820452220310745530656443638884008905315380398037290457944605376573043945768534645262018390478508903620982535051315552412196835953627007670304789138913088936398361672367264956860471737381112975519082242210980346508284104393631369202183234906456463664052568703664652355940987564570185550695125414279335364228886919817341877037435318161308927627422262008256240356585899496564078709761565266556493652555881319185701640578393072062220140794486465240717173942827831166854314730236579034076284917668901449973059694093686823701075413788151507005287435077541876127538220185812191731096305532092230823907892837755458976785870877912335239867599327083001420545034030672220845629772170139156520451451182854547231833218813491092721209585014210228724874336232132255386904991808342354733541813489916007202875613625224946868084128915167250790317238334416771230022633075190334463338941888757034746222404762697868052284775770986368001580875463505532154086496866370016746289156238124622294051305995985466461388605797645532577182525808332554742431425618599776096751512645478485395918925936783999684419759327875147934281629709841946551665432782758624790896759260057369608922215673810310259257624214184164984453292166335165240080381706677827191460516740871534302138878904991884160113743184925015488859659354407975711959835720763137107104459216105448702744018950906171211261525646869540717836595323713084101359613634178972103114466834573550939378323259166700674053598372472420295913175184487835166336295987083943138524062879415210285943243862661902005073405957178170572800931440822220668328411610471360652545588400171772436812559176994988993217201631907756356165067001746499859441139937901669772892163203441740439944363096210864823234890580436035118364477139817801492922199755443222298732669715286894976915576121299620622847485721735030303063270554033505075777997360045602637088624502862407572603546233547879250125703899783291524688540225842724086752008394076613014063010153271686213096945565273043388912945369618851295854576565924282167534467825358151415493482852267566620388572564489159216348094045074319518620466159896473142903572365225182008184903790346580809901467112769802533254593356044708158327698247015410456077696871009417016980360763625790548250808890432629586250555343244766161586043369959886228324979011986083668939439982013083793188642000218098386738501818385029901444993930370410459259992539623183056194476197281821031019795653709632656738190925181103758213452382249605483203955209588450477147727306659061391961532901160711513638385446034006823495899207963529237951966343978592925480725040064021089305809774305414764574345370549010094623290346320053532316360905746743395357056518897033165293883279839231958477932893749059968231847949346434715060543469115672709003140680056246225179381820035614988716206504281991223550007280661732101477944440789190796444616006998043194296719092878041173537647903002121319002482021950457498249900301839818183827328554042011207496650991465990009787680107865091523418214355922225011858956057211802013010979014407764726395499644789760899131717760539496805269642880418553588056188369757780628239483612271125586905554461492593160830715488920062024232384709437681324123019427045439711242317217762729076290592407347140579844356666503364511605561212630365410268882942780061405995360204399504565746785969343152171952194499502918781095324569714468330765765407903242124997699827379739460078727809494750812059658702529482737790944372652771307779216379402706599857485081078831972622560147210975249836149274783333276635608851445314748077497177145012821396942016473170664219319546189424444881059924883308995915915676958616740226819364879818024432306085923019082964760371871212360157294982653336564573506939903667013522293931389165787057136934338030073779893643519143344139291736154324241630107285654501806888770027779253187269448674907454921758630843348380072771698692663528972265994020916143658946803640090589749413540478146435466327497244270652610778220180855449974677320377243591004360242879716620619837364331930782075167383752092293478535873444758634901627312233263966452317061233449198980492243049218814246373429971874986443442832599673843647424822098227849400806766491812560510306444260026106227169326926025723236209109876335857545470521039447272855870424488779481158941426319048598320402209815478821625402443902370180470653937241919562099687055247169445640667914858092603553118372840942060260159883056457531096445720201899705959271767393495623749548912951685135166776389756009444391302840605555939171980073968898194706640455645685170326639238244880640161761405415398879336780231756184387960549570042984852578571807994740691285192939433862099759013407191658869755191726175265173093208821549969996228949075001664321106703930869357679457135193547775036371138572374118818790046621253139462427629692860128689084811253477747076808336225854339739086538797142777750673231616100154279921827507569241401623168548419025697228042167400487436514999406345673833029786265528846648494253539666198896300233793958754626441486369424850725668619947162218367655738606578294452233238214743169765397837493694459890401084040842073909403861678226123636548426438399211164461717429135684386587782944208143396363663934581254834304399820415795975705889376122795310066798341261691254331338047360815942047721827074807124290473040603104585534118241717012354763026940452355414214261358678847549360503670118999311135372677101266542060585126125956938570859307546356396542943849095164287671585955231188297840385955089994200065120737864034334754592470933987192186106635508593549460946400489347565386733782709804441153267193811076193633982783642322905662530457838000663342125916004837568421502875444874466357821172199159452581344659537919166124539705898912710532035353599346070568904884475616480919713114862114298591512669511906657427527270720456805999209659485722388203361075691562859521284425163124821189788880820283499036219744694644054985911594283976085507662016501602927060950335029419728181869541555581741589743717864005437577325430236010155483755140540237275874313793051641080468774565022564043700875636874226785600663496425881235307105237960813789832597751508099430987718233831327338097849015427442660161884376465528441210181028046717819355156424629644102262207301569530097772616532177984616700894221906615550127707161764584095051277652441427309363604661899722446726013901327341987790624712358226900437971853005527794401525850508156214073046094479746956148382175736433586132783591961703145218154351142924118696928683919127043744713085738255943425215544458501111263973610499311022144021078803677974378003686255763460761239942497922680646261582395705620951159418833688640271326999781900309409426843877222881460555566357404493572146686379367518337732952826563184470797512643648301693746867417812400717640437381457828265328971692850517144498477333895270507504127817880921166337681236093305452038051568057690869963884468125680244141006608389104559190530890352338773235947894776423391143320610661676482711329778993592191133551841248211479010113474291325504246492556719248914471068525746777534981753756822839207510206173345595951113871854233193952361687061818395603435232086798001080622892047481324392384378657102184939497797437506082398615835586319306615762843623925991924524453953809770271643142869042602299203512595438278472418859190167918814020088420538780791995241564370892302381805352992382550871444460410200158455879251803395078176365313052439171659646877812225917517597321365943090204292940293605754370864736824355955441216267224730000807736764552504875589330861874046714174569722649264093393286699152503876461642609604767246883450990428837800760506264248497777930357199835886594048482488931596500096288957210157639112958836824037746388564527486294058814835593039162767157369162489780354537136783453625269924997418213664814570669473355993373982379859455720638101627884980293761442927347689280404097569755805558043696904789088664913817988010749013311089601787555784660847958370270145007690773691046748660594869931187184614159705072346966005186551398841029890806876429550024756148419417108884083732282189809900956180522828614418436434662238608079615051438700315206033009708573764762083205388473468934738684466034588158325714232153989323569635432308515727268917936384212401253313720481128993066846293364781549694315624354505272513043197054287767587029327560715659036462133802501848599534002224080525285560997244569903376826717199912865098453550519582527500307500976259975961674196184485876792832407400069501082438937591601257153604460464943299232180483050702347584447171441923667826829796195330020458151749456603083897443274732712080398533064871903522756656911324768917247194521090513008489938001288992350874695916229935759542451037617973711433097454311413407984305768808588322245541180924732230065808572598148045334988304778383219318011505758379993469287149321490281040685369432079066865682034980446968382525928876402206853149894085427480250948325172213295545667363150149606960668708849031560020342912693001747281676504888194624134211336310616732027310736669255477969946167875861045481614870913496532089428602487577145599865340245032239040312480211046050814309363404986601628451003214569547540789226546225037917691695565202915676055599857972416303178160250242265108392562810733008556000489659527681601479324745967752364536011613113832082135115929268149559252153372179468808194206287880452956675053354032457949471526692121843848906374171248571215454605723667206940874607921591719974863215170383244985681756667664908422444839706432536054357845060268697525294907287922819438593464292356369518564858660963355560636961906619086071092388634780815872134664115172922591457329555732149166666923529329516623846597747253699420081847255040341021935168500735205238274866390354400844850200636840125089041765138438666053509352396036334787815319673448995954503993146298277845291793954662992981193422394481121062831880740428723135475864122983738998991305509487298234916337632207892050821198988175564997599211011998524636448007282170880549826985705908440254376576460203753998083679032526624372035997260058057459238565573068711220597579148033978129754794759989817064905979785149335149757698970472954377115325241427215064461747065839347167059655401121082143051727170296138847952444912796517269084939853060056702897394360001680387287338689400282651606909659585669342727221313154452653857630243631653065832908510305712442729762148524544604235227923056160442260365492235301254025406282460111790868618548566173404813250138479926387104408140770939815100330539192057054565561802444563037428824854313036071864497425767930579059165737150002037627094081822579830774818263109505194790176209481032920207982889995719863648502083146236364933735621424559723224262837987088682701857248336994962842319545556092890309851780802683280403471285340413292780884705851368212548590237440850431894565654971617579591957105651471544675320042571607784777257792519050409109595938187193251299126458324034429940206326336366206204447262508411658599827215130083597228531109318877289245128237401631452335792680786736113771555740955968298414157725641610903960338816823526514040715509605518344604444879184845237547113857344656891974412178314864995423818434757417164349513592098342584618073359351534469383571001790592574185625858623455734290809696980257564428945054422016395036879383036760047887830143784935135066592942452951327199119135005055762740908322941229461406328460976135100996989138057704318186309345129453421405020434996041280245383350390504637606214528565581336838552557292193526858325738609974412235619666795037050196464078264675274867017092772027566343174779392297042726676953509138554313015323536719000439538311452749711377445528117915076349879175269305653394730430109609303448732453875532667634737249188993675451623651478727063214439050047719302208477513322870388213053633800521142992402885349207894342780706192301420347315476314272963203751062834970554671300553659466047693001681186076247879824585265619802597810859073755345631885630292925803765979229713597891624838813428428106991364384429265330694979055831469201073385375089956722226967223701302406277189813272641404499039243998764223226971218432635122619901891147245764543023962238661178651644476148378928945688702133325993698939984838449994573349729213011985206528444269849974932875224524744052933706314028799785689785631693480855014795035969892363270443924618246647864547433190214624694458553428744739612380909923523396675080881022116985241314029973442811688547512549857262238488547133704842345062892389257233360039400787577892782799980862127213301638005001973156002675290713409713203310447715406718680855805651143436348755240134848734047031470016972869780759912114332762199455303037806576649293868288165669313859643817658543994837575018614732921854765535856494289065536526543546082564715489877964423105725252672145814673052867133729058716876606253969769327490055754138814214788372449617066490274415111818630959854132814982726351113399256298045575579651534599108050199704863830343689448621626687595971137591689583458215450703608459393656269592388132555250907225974518570621211818793888648419705116073997810612114399757539093042927724810663099779561801578007956521370624295580291462206865073971712763480555981785979831361612166960271443571141690846021609089914663412943060884199870916117368693933845041007163469642451101841954826852062067673845936717403521245884076893061310519950635147215130884388921222125946967467156839199407930313809307134789900067913436260430406546173619124567635089198510574408074380469230038632207048215774928161861624334585088191523054288805695774990090866767733976482022389571371003558492438802157347077451514722282732583170957861534472243704950917207363884194040352095566739169853226613425298058421930240283824367709748762510827327856218643146613341598217086427953614385162626774685183656137088759617027661112057091549976451405159265724313575288486923669044601146627322057209895012068685110351533387105100737114363276547401933978582797881220833760662389644343560311808024855235635595370743340945805680385631596731961341730458957914089069028202578815438257841797638198709422367946168067954216499492297692473905155721363754917718396727535275482701152672866065914599240643895772009429608056485658866611289611520960938379945706650270839486834997834830355915170429707394975647867003648194467826439345541544929313381373675390753618862559345511850489497312727325984684872815543136801036443527140657144802944187523193552366701886479557562912894094430688245401708077120348000920174026878914549583034805979530280998644439670028922724793178765438344535944209438655367457646890098686944361698530757490745542457767423190903585975897645298363578112797677585559552892763007142343180380894296680612098753740349760582958966342388588604706107908013761939735140178822563078432086881195151348542827854302169130408086509634074519901597462478946686302443924552459310073984619857748921489104954987739747275566485321427440905703989255238980199790712505571931682531294379889682501709316094972841634838412643941911558580824287829491680108678308671598443650351054908848128513755770981612576699307763121115189291933611319742062538891814272063165760820505411581002400619795867705529636743227040763845561461138488753775972371537743837111039030175746108079370051532770645542790210802081204827148351434815183978295098568769283687754714110358191409720328280649925215728152662958893939893124078653883472770820730699845269925119706427424950934064296796445095806160604468454630097613809291565651284253287939488684218570970302910714801923503470619153964162791114967384654289826459474980214458357774623344088020095189462321595240509224111280316196635299530988056377000299615669923337176330985961235832292949747054333226672574146173531865794535343926480994024957667772013031674131030985181435505077423289594619962939591524523344989562905664486443210943323675311830205862184707292270978613360188926240735854699168582923249436554939531939582194281928401173102495489277408545943143334008084311021805821370293131758451007973494315427503875718990725245320092282776403084677752628161215060871554446461772399202721806864188332208160121123499109409663401142538260120107824184178982902923769371210789547219849811503323293735928279832059862804059883106995452755989188182675593515891372496816891666610074166531217542545240993979055256112898443220413291992804184658707316892893267083012073890887158699938536860132331010113633787326374938146893550594603554199245311261703169664164563560153252125600190305039600817618687301164484408342555298704825736103491980580700086875921633115175824538653609023564254614338462984500636626869253054866286343706790645690588763723405559176982609137966305277413746933878817703694617678113297879394718859696823559190275094303572027432483592325614057502958500796023731026742215078345817286852399341383243413320728565428552494980655932171281727691633060496898847155783828785599057628215984717726787610819037791385395225343997648166474817524570768144120538015228963923502878867497311676060121160863093915872117903078348745276233619977736121349119432656845952486448062683750005596041890910813717251836783787576540614057273008228738319269219925827903880096072768519981937019422141894614922302589619897087481167382541556931763810942956027561416055729160345136847242323275123706896195500398390044480206049461264375554792080291703062490331559327564185000152776641135250534839599497182530766219736620202468141363532650700760693203173124313479798353988029015533033784996427546812687790629060487276347974844773407854640076296893252930044970479712115138792658584808720021573605515338288639923991113758341777913235147803554786092159595600660539663174635156394817723585544844269791422829439888626665526459218126051123356367648734601807196843157523369830001096760286672441864638442272444517027401956786953921821479314434206590372876540080993116627876126015033040183097389562481814686721300747450631740786604391250417918714011043092920680940536487763016050251780569981201399870313080477020504695466875318615315993039211575914232140436817152947512973795244329964989087535696738061029465858954594134092050195979231979706975718893769186208361400401063578383195718317393559821861792740317727458413626791528275292022974901170496794271916399617529056226190493464134048625570951884321878543465694755392488530693037488438539468729844511481709839990759167201711677918881571086735092073614009386425087330954623989421854869818867001498989653670738487565915659039652892138726285947694134805155736363128100736787846003022457493196115916587817659343083608137730088777621120895913103998887751525410479813138901887783971354293316030916240709279808333440849913600135295627473497149649933637342368064493845183691376715513564459110442902619509487672324248099204999122600426141583686810536276142895387585222504770867530798158365401458535272793407452232740548132797206614602179594485843720305827069405080858672849286530408468229952961987083047198459666871593005881730092703960276846632134517089678644568495493639528991018182106993093096096055654587150272668556227437342673711813762154055947919868229657213624142060967962553457187784492493175218823832121778840196351474064206704320433938468013157537987848804068157526402489445848290102823807901760502903059094674915498314479582927079908207119346247319946213054666788381050982287871486214883488389587039666927969217837373650178045156799699604711395907165901643914480170498911828813901235629449457800255364257164694393972291666753567247680661004119969853624803795585027915837458568484529001544678004746280632739326215750619734542539754245111367628266924957765855217217848183661055691690185078811490125724436373308658635016491186169024595375253032130958611271827884864345800046006748535374450354325487942363524656453208097911562596887368317834813932458996735011398327712479338156278511559358893575158422594016752495636397601380512622959789590820547478944537641474670669384584125293548568240365506929175960052094641001634615149754533349700259215317586244770594213008337405004589342148134488209025751774626930889098005583306835668877640035580140518473408667414252619351065940081193213822627856476420747299288073795978510973664819743903526814599375709483002521143467640947756924881035949633083815356704645587828297909318083518451086465535629420632215778668084416802369009621753795605605156015440544199950179382038840240495504129199932631098876996641736383697780867094478771548223164141351557016773201907168413570887294558164316720607350542919176253147645950321814195187536542286786240533702477530430354574123433794732569934048403849833272932520729289547963525491153862293905310749729595192532222609611371482670454661198424416125236240689074728895785591405329300779542044065994513829833483332520215198905223993931494751334113974087022425248543949294533357260007059836869997195268006928226136506827940978603813468341223026612321627899199099790481404715541472329985438854967436281292032716931089399388758435145585413554354976428563402560184220177363556056613031882621454851931727957973087010320304913026853266668785207891930096089264649811531759726616070792637399030787239905022712790260953914914372259956169393638207016215240714959494813947204311921917856674517315631899364524041874644708421041306819885031123796343405777788765627080297619285079394047008263513871425466442483312402485237241940434336159385837382143181594487621530469222740124929546390284889258497771951587831560296363537239414112169331273563214345428057764405759888202332756899524056359966822536571940959441357458482617142195999450481411302375330035373015982437714943052289934610182575641803757961173526252908747215326373040932885275279537441305175026110670800687806686964120933557627540413852171108406855607460867176513583065487318714730436455978999028689510907560511129338284072744457393564044982269798307147149654447270311420958497376795361902528036922706739105148111811978578316522175999696286342748916588870025547934267409975434991969208511129422733573279345480912902248588036087110295960707173758024641637478863680776652140659169269953578492603988650116777827186320486409210860815115084361090082845255418031373907086179843607189059634689093380917958643215119244838839592908118721305153398231105418459482950965089880009422651129158771946354006863256970689926584689824968572635147872081891425201704118196471702841464976640213174189660747229629304860822257038109260457692314005102026917717353065592798682644274480804626860952997980689636006760971910222868461957105284461093187888177372986963403573535836335844428791261499288793117432042384735482351196008068327228923644652433876912974884914045776529587894634614545235761296845386881240417030663734091995074740603364182436888134272846671875275808632421470492188945653659673118822337112207662238721503084127685103266482185243319439850786543219443195150459555695198269942188293404638481358354420829534049385432983496197490896114844176178196198217024471051907891667097943058334514411169028682270981535616634527504268341880204299984871160192977981718388232872173041741867635674358504005036409310552555021693010399725357154765580295882590625844112336696815575971902945602110481459316057885144320268399634598218486266181298429932334465916541598312599601476132808491483742603205972118126796899778204699923632195770987093694800017918495483735336778239734405943762193495927843909537720152406718177328368071086462416995437923121051231718178630847840232483712441438430891701318354873764536615917581142209158288520093467151745536041910691203012968298708278236209945426844374799232541684502725646323420249439946058084129777278166618037894036165987372901529386704623327433503248611263331970944139224614453133331407758874155665617551478791472625188356503131618246746572717744248415253056281410521119326634099548755746116281721130678568036396812052612637581435469948447900560967110061052862484010224668131359346846118742131688790158502839931615870544156373294065593954293942082664186377717497179612167416432588660441682841623419369893408255871994575654699623041488939290958912685626851389893800375438774382525672635698175630585326671490942807832817012531347525527105793879913330823759630382275762463674569664431598842838788116553497420433853506383565218804048946245230581619006200759097261078055452801564360830147291220871875363198679602737303662483021764648166320892731462016318888425931023020003052682249723683103883989922658361944148445209147368337283484114130867722405528158384965327742122281658591922900654579998493913350237397838548768426151889663590485244127497769799845446074743114162885203662353023446608044064759617917254754773724707610550055901207961536804967950826955019647091483137140415863942336978526317833826482694747063675291670548329565018340914540125808070356518835223403888401577292804857653256254261737720855304628340988857437366989189472867303765136418182319007018242204858350085422610308788310119322081130662050353537672850316885100493077571957286961064045028331138194328238192760492077160963321086460722749172565390060845775613328424388368753863174803801465139253863701499998291795255790094491559565545384095337390803419815777469324246724189927004072454844618216942970999180101511880575644181432951612898665804623527216010912939617509862305748890191596953844336307142640036888356295575350036598217288423088095411924240000376216880081358454380913253192386610946489045545406857004465356520971321249900260048353293738997250698079427969522621278082055213867415507974390132440556486809571618194410492124607263676600228742748515547821088033112172452877123237365713848422529717413530482836476857912994218597385450908530463918839208191746888124432762597484910251744851945445977892489534277724362089267895076815437355219237663600735039693539281465532679165341673476863311892218532229274070035004738156711522670159634976349840200081423541841463578577143182322490738355921384842597941448687852475912304130106945206982791891636236708558777237468706642435251642081598660143366214143209000490977076655129942548346517084140376367033367908446474964138239912808055084266612188268519725585262308708192123474031690385116364103251546061900578551715898895893127354729304179998485228546147350028295103851284350802942820344107394469984134247016093770394971323319251573747056554028284601903814380520747569345213343750249355994924680455050887646885943298323329193044796805803614405257867547902726357797363742327436918111913782924894553839517475735450296480380235196362360290548337540164739734242123981888165716336653803624756357501422763335259454417744098732198232963531911879637118450959332323654434225765377363571066445208689693733063817074783086687429765271531310225767940792422105716547415076884448107676586102895113558709654295924916588780795312504403671205334062515590673733303474545391574504260570415359217374725429936229607910842336926672222557435889423533929765617174238016689270738373458860913270176883519873870437392567156313136258412710320034800358475604556895005882483179508703070088393589840255328877758948942024242357945999680267323827033982979789597426592563165194085373540649034756277282060045692826858731505200504110468645476559444113140545764457790968867051184280133906244092790504584691866378705750743320147714153389250940970150921143492336261870832762149720148850300274651732399718881456134696635053088784588934086062804591404036586711533765395090776534341112057384825053595378847394483050024078396071476134782468993843596365324338852628101607313689701482122061451510088317382370193734670666602021962974072243299995282529339972435551541469582399303933852104344391332230368553305433953705525571501565038165856771362981991717345406646092955860513420402692466998344574691919798247050609985768583274221517392773965294020859404145404090629823950310551001654231800574580858777277462727910404731528681096279617787078015555279280593594276678100405730704898021375902672145819741499738076376318817653293216568165014904314292926490176214076643104346470890731446872204123691244473785154917874357545025871162198101998044443970706765668501191012906576185879086438404549132279968166816922812723987627625915267515798601642851388457413990617187996383775550946491963220213675012972741496103983395838933712881950981061376783514193098496899535178164298288145092222935865875216759390777301062711945861480826867709152402809357213677719703053203084668408259075035717130661642300697370765616568709176115244424399521575638821359998243804037055453243998085563444226066136766835874794808498858064294672674558651095560737879447017046044934192666994937391202391982098049366561002570804844433795178340316217513861490031092872979633878313603161677512408719832132632424416313811402587519575758625510733814082551425898333022297200573123085791292108368685192617998326981915831795073273879870342939657065667473069878232610681362682051207881203727509430129418586146318152643714539508977686847857874222405852170741326971382850987728819075425575227519689003379701020917500217451091192231070835045853969821187722491420008209991928759217238979820925576340153514628017969654195626282981004946982152373061791824118356404363001376314590644135423557554143214462132216030472662752499608232114010985232964672834325809027694952364398965028516836221813258851508598590469745389341816942903648476789293821201736903972071838479750419711201161133629159583018386685285125205836972793209279696709752388257774992688349912248998346436125994136389650776088538989364074908986259972344740520541053042367129523911539767127718166268528572533407861462678347677377168687789388802869897418875656446093109549789043087955141945507856948726632397240472307511561984958837179235059300532820939128828531019075662721352050949769067762837253248120232598517554128141518016368987445420157378037575801004595176124227298104370415660172708775428518142808002351332860249919170784166469111152284980221313115132972814861253079533162708483090741487055918819129541911189209257763857363685236867644324009757761120157552495984135297013541426691619864233545312940134022448887912589725935135589509893235526004536116677347316351849990924048839940137240753984803507895648449159824167922320096446681871774919844696610089562916479458732673720745667755889455973192220355132304666781694688721469432402839746866105047384971899789633650148823007096528975336308178539663417140494617608299224942559752524034616913607635910684352161203844778405350637392276037112514866774397417655753810286483926844310210796811510372786870935523583538541615730825117786588919206169814352249173028891628762452806783765765440645276860043578655208276247161493839768659595311484880393361161375818791980171194720489342444175502554475994455068867843215682497691013830710019809677026173046417852544449463628942934536833924887219778618145376744920071184573838460903052171119947678940635087737177187060075530849112705071604076694227783512640118712340250561321128384179093386244434655925114464155003226386466416425390359342181773667567601020498165037470223003040058532288764263494061448951701042936237543793693710299604549531261871501906229217898063061131170352773314041940954732432861181482891024379550680976496500347856058098155312655619328994053068664916307200758205773478673565587671099216924642143828616508307432923149383548337268737037635455204082977922429073172629802255270799352468878088518851231579375058417794391825398705342848006086122128363180139956082003787017502174408184440772684928258368416481680011981467182904835820590019577148633755759211574578276500962915661660414438925827122557241619427800242533776032737620702158694127808019170926372370174286937442675308859060296228763475682866842237552729851364001699298670565220896668505400260670326703848425570219037346134400265030911999988808902691899777864795078122439351119214332439333279397055437880480310585962775249908646626881403119614848566234936281497148632091912152008752751823841047929915144338357153702212636559002969077069664410420042127840791795817358445592992402839118683103260797758814215542110848851774840802837083482631628811427595159265431799571209875114273778105684202919014154311250489706330460435234549451690326036447052108023054831296427350240528982741615594667853193791151386986439399648948734466877410833447611457170549764107229768024609136794655068590448719300610315788240501465116758414716540835835723925761782201762108782068914320281071572636894620990502294548070693946560511563858541408909249013862922344595601586861595292387930132402437043220491442436664737896768010393679291660393436617902046940212500253661065249107184133534661797543530802431262587856020159230392576847837943948726244108087887609593083478348794136402313631616565524973138814325078745221457098392569196001851646434851771290997574821137021970718791403143867069796339914834061261601438009174038945884111244968251575286920766421516668265562913986593860850211173092121827261332584940793575790642612480718595980946884225315874088089375937105103404855655368939797984715277020168708343202335914284472488727970907704608542530678535408086525597363733534548071152503585412078858138365919832866206342617360715404280253175189737373104201632733157596232622739547774696061701820284019015029911724648355724642140174666085608254243682011482771593627315043980865415050055225861703542517460573813049262717283787779391858082747494177438508044153519235619236981483571904703747412611948102602068061576117763745889013072596959939651423263014585824533623308437520249527190882528634486633410983378295963433308460841948117552689482824432894201001963152904258343565162705662315040021310284655308659963384953744431354962484034502193488535939816130928877510543494893606756944962566521281290049772303777603117251529698913025827235285395937798486014001625508498505040735528449330485531193530504021022252399470552744323497477490635900814265769691120554683735135595002288257838840358597432208140938262654004464495966458927185211659404481389823241532562619337193028023663733621684343183438025152387562865204664000460529410272336699929757816289098150531356852516499238385652313613214611757771631672051459428603726200987156904748402910014705571663269032590933666932115886652837149807205573038117321623968758024191942459973805091666476207263180198405363080214344273367746220107167566407342817168899867132464817128283250378344685038644374083167798259400443208449165548949464893090176147516118979972647677540684976514089622912168675221780897063686189161884386769516140731688992362748150380324477143889378679373103926916860307124656409243032547636098683847470853276661079154070401546340377508888276855056634491172947589794804597753907286169641812106838482928327300604666410366305546581102438599237128593627614558084101324841526572108787530116485118514066573875658417679428535557710389522763266973248386649960771348768304185608574543696642624305248019036337250060769208085259233747823290527872915484890133418052826269237952080648102950764500842752779571527378278333175545771974398285093073516195685605752636486448793342497831943953460323298818736160303141957253321658074998974522674802522463739335270170638201063779480485179970049178802076666200327538256072438458641481185405042865311567535840655618232338177204683526878990370342608562231263119141128810875465896133679147184291092727916910251917059516712472802086192454558894362614446138625284892260219113996291499256148677631293253585092578535951965508706299948253227738102104080861629647988309731123770794991303587329043609106849781973830931519309784504173212343984556508957753167580886906831863767592169877481901249995486732724930696273914043839906640655257188579316650489805607058634346386307251700270611457912361720945480053108699102468408502744042927451827337736116960589735486124868270556339208627393217468806418903861876729373245951890725324057510376561776296272896317157502852841967607131665042787515662545293939197578883883909485033474463416738690317452095661866107899986562217947011271931913092829443916869612355939688114777569155797230464881920518562540583008008361773339185807028017099028121311739238937406476447596975428798200200057744009521164145810165274611137667389824679392605320311954285210958905587452135412257313918483377784770331284481628760078274574254000920060402793918537630791054492837244826846191503184533508268691646921191175726458460651866404713563339850352670216589908620764161349452617230116906529757925514456752674461260071475454653360302669376587310679937548665169862868035901000421882733554409524698025617017444734814841422398678416765897955397930851840720929833562417025687978344587823242337843996671154725455425330714893662014672291466660577367025818592663213293768217109528778671995374023381614926168257973220111819499477875474012326112650073998280652176125199358156799382675321504446326336122568106986343796280172798091046442384942898023734885462339161164987310706736600462909815326978219208088135278285286717511764808081336030680932444847837998276701134635019096380981896871619213138992079794429246243404156666451396184321625059054740604949958249430902089070382451517104137038994650112549381554716021635581919289283137273648498326247777381151004760376968027549753861114117365095259780806912353505922155889109929407384711037221039406854381024387878137940195087339508925534390387065435002569381825008343018262935631504807852911876579654358241427504800843261573172043656456462110775048406300365718417847715583279722294564049885909858418571222679761543810539434697053965193066754618090611167645855296961944422244498385785951982172282865150247873251329078864283033000097539843010079557001617889864594646624675081174445395822786637004732902558690529110812555275144899018438643517383480930824146012323823743664912472102261227752769912848551767005675259548158154805683877407149492689496938039708391008530880921474621974286269584731817900730987791736910076760246994404893334209414969567909671183168318219227136457530685304824706445152027800705372686920449361641036217151090309109613591284659539507070721879187752939974184651585351552485558511671920881902910109271593416920417601676514877370701367746448925984078143815306427395459995914559849125874177909169034516575359284658746949385626500458586370055748309772240664352353817162850051695380357560114841197380231667042044450766199928971492349392069731164966577577970092033211174699794758796088806386194052275977208484801112068155273422247355783940665515238138022731468129112634859433552343066663946902617038829710059438931866337177716781728252134330191822119571938787599669075235459242763704037099144227960343456916096163758955142187427991709570707628648901301272245397372763153926880560494139245507140140242080078217315482117523888324589093619803484284038514980037382958041606944730881091208549547436591506437087519223275252886671813401530126417649914031386673488655660245747162059543166991182949056827717469356482912773628975967725548669646582292355098738931920829737103186940637032534027057096123449837942673778957964128222214612295559261484448895917591446887320197554900625075103066225335117813099617844826804235786525133127566172052408221469849582872245280825377169720803595272993371623718695097215957843175866055505652082069213126440136614680046748591683841987061692865330237916006699457755551121564612529011537337792640030617429783879981441835673157872337348936833549344901201151341514318977140279831030523473736187625155116057154819368293611577988303930457086697893546144951251356451525885805948634253456693322222330798274762984664819020638889525848033513858924533177774061661923006781967092469204305526735919143707146432088665103033435441455959528282824103815638802812688452298631033494854499388910427418352061445126096855026892661980664621479776525990467032680492608731298475381752933453270657422221240706969073032418542480292051741100239021148196564571364961709690253234762158994623716092749802563889373299147808166265013856834213433913425578722532849438163317343727518840241718199196973581045859100846690928998886594949835529910580112268481341397693684178238888484871212696362883490087083898449738930650560500408691318529161686579529400894685054945390151447129582847276403306287108419548489252072689137292533223592252047915248219030858791620440759508000686094089974170504633091608266273972154074698417566148298954637574497627657467223831601356581289394666914994377947182010154893400059178714020883099985458941816914510737286333896572093076199246049364328834180132919972675769961829072620170748172280749200281040422360761301801291886409010496853109302588210752804765766212793520435931058416942470360541637907551960587315143307151312934098766740698417288165838427525718399615646657421286493793377054540806257384868518607173949086256843206007118742459550979070213410269000424593575623574261187577212828563619645234908426138826685092835988111633766526906001736626156055543463953067676496636332313571829477413320494577355554938875076688714760510563292953770366642031309265765354101217023710975137000191442090873255690552142082788486696453083289647803548495373653737461726924765694903386220081719461733884064232714839352357138219243863542911354013376908527370074019887650566251482596192825142761888840077836067793788701293622375435213692225842162375830784209624511655653453264813620532204077152566479413397753213120376695740307438040064670719027793212900013230037210577951423013973674056692614535093429965125648199647792011773237548597563938213816087156082274988981419676768586187821363663296096514366087741604227793195860175960557937328479967870195755378833657665640245423969484236355922636327812660151301306942843805238718772321086595506360599777172649328336840574527855631729848517647060357594650197464878217378415668674182766110366948662387895423710073711161139205666078725574282650693630928426700103226912647353631157640937681824119297732152452834235321128542060476013221526384384975887925526632187085019033629931772142816547984035374429483845704081255834857065974722549995358840730223251775404206810830015762591417100600749732501142479472244912472389435470763558605721972105535092640692018201001161759081435373937530143264962976734164296609030889943801352342587083228370025708010030265139700214890665240071137018367851456630766556823319212699313937867220990714390442355428948872582113744041491240366798916347865023643261074322062482564828125658455289896954003288548865693943444469841408797941817403717586511669474281869852958194986059240098976508321926790046130041528945456046734170552647517474552305633444216045068385587297056529696589724818173107678322609342457840202577037202351031219970346644823990047079901269769897783395532682207582301060592890340632753831919178698768581896083274616976729693956864642194496528290492444322500917040360665171290119889083857232633392241273878536266194122652991608655491617810244616388310621212636201065792677038167729970896890987735895217951012815254276292966010289111717219546002875927508555926079295998122668823135875230073192802648320838796200294467342903861873913310237819023511865064666236464246616056789996527371402761013317364757792626153949771106897310291538652157718337037761934282722818354465809628188059253159782510441744212813733340686909871424534379669220942384400724967548892992400937147213940090625209568571802412667846963471694247974373465885905317534851644095638746858478752420454514523133011252263848649297431348283845997308417157972389972006239118869304632402632377597789753925399372250002197740059556716059471724017478917066279347622325347656690336320342038315922120661179618522892097820913113705591182205613072467154626893960980367921525436135347588495824674248452083511811511910105648881071427086585000569576549881663061898859745675620733183262494908010393067141095932261410682613829964815347372656518533292932089542193480369412399078490114726249410256717451435818442376340749701907217293633603257287509818548008403458372796241271034974197450442626417948354411222679454265808625866049529286101573674105952499458139708656366337122361202356765384660996892814554386613599138093168850907251312286937025353892064810991417325394849757905866879835471785580146254967789043480907237241008137178003624276061105300720922029190831349653688115206367899222612294655809826441325522979799024467503661235090650830232702836452354389053788524416042891094798331490783339378840621579345473795863134768265518935887385211538798591197164245405229967181222133203240115698937715389205143989144111840544007536381189462609973383417034568732265370700331122604348312607537241776696832428737276456380639389280975411590192300326576383140551995031016716392411869704373037940025247818663026041669954059582484035984785444885985205918073568074077951324336448459254595619671523406375905150802222047002824016552778636674921403233549781343035270323786084783329080925185156190903522968144823217016629811683348117002473934465137065079261559665968207680522622627920964019594040470175261980847360247080771662320230392542358133326320408170310434060384461252178449305130171534426532826893773793448370419419054908338789395966921552943557736721545350814078742284944494586673667942604439650882178697457195814714839979457522216071556678224732795575510629660370016513783401966253833137430955674500800361566002642262964758177114271795136117586091851958841086727427039317570282570818187413688919497970100343560417489292612789846113873017316216512484793459596833722290867235230322297691940469787549030517535549187345931337376555840908335354423576568313435700645677793071712316242365201297943150012201906825477097338356783011188124720810199587000941326502604901726357558776975226420966506599640730032152440088161695381251720839200641760756988886693816547478391333211155562143639258079918031266109653778555654305858438004041062716593412917448673281208048968426784511928826122200050342821317130601490178735943398636913424355504005720534927974401830450194008977269002899551160958562913155592178705943856842665788103739312036835128442322758564639132625152628485222958785950431562579216287432148944601997742118368863574258048766788797947082186631476031096672531093880488783102405744311952479855528564105494268376816510852619422391296356097334094798263993680362064535599912637816018669707347464824541062243937891018771670493768120462022161028278916865697298515670119634887355718002261510530606690704954900501984479910400399840666435037717459945099395336357982097063915036041084273284261289059815154809980452451686255414505843774869514379834862980556827076360669218606005928688205067608590612909845713608925094514369798863592504847850073429550631075410288050209795098362454208386819547288748399419884813186097083120912258038330380907303150317457843600774227248743274027683967714258059119457489559210342321702353757151298933723707566929331581400704617942975118866864987646583556129162029949870415241772512538266670590976116497173161164258932793629792474102991991988952908228356619446601025388196508138602958292854335172233031856523746935764453578877212190431327729315086446908633521847552225105369073609703310490605150936154993536458438978695593268667679810689307255000566613064270462149302460985067864596769169879159148435661392334855396935190382455438747774453955999248541138474177396028137963644396278317629208433795756913987814106402332279136846730619270755213419360329513389635369998288535890101087444706743518751107701616041448842224034415860661128094040745334679223463349359327751051385376378377020802756350467346916648531893013130466916908845455205553833804130834435376189899733031602202219267513281445237224883141903121274414712083431836192863438333135731632228728147747442070698889315328259838898975932246699950076336353720474148768954102841320667903662439558098180955656969291561652329136283848002405697209952669945490663911346023327652696636492559808657202836209113560578276360812259091465374658049062262781156748185960951470672431721033486777404936901661614883771254353728920946390709357037562556814075966951208306580952194259511204125163444507884350828266588265545696069381315599043958714603143524393344913444199090567495304022730842010791313896404131076551708879760984402246705859172976240825326935586556282322724665286623202609768802057833445461964276260831617449200801791690500841213254575931610439854896002183868873948197695031040237834880613819735939761913680629242367090939538589258917749449322740291456696465079945460882980058941598391593264393614225115433553212654849845021136052412917484879055279025379677897467724833967109277235861437170584088902278775912241873082717200297653135398372008141698665544776596735732712130607194948291413764308103207704789146050786432776684426273372839168831933559663874426985682833343385320245764652273210890464214759204811918576920638801790555660478183255313352135963637863775926523224951735087967524036022156461831663940049740219096961055429189958170177847561715244620892553050975167709946996640563031746622520560618424650921147987822029268017633986770387574053154265890392555973201160015781990720839140819582780362751298709911024579246209261820793802698485964427043367628605062245914659347317384749274651741172313889621091708725049751979306899354223467482507331633107511686839292127681056486551811301745749484477814981624720778953073572130865757693983199427123818274346798232908223212735475264912224626621055765735357370124308950487912759854917146038356323512419883458137861038582900879638366012452827988922659891519907722764277410535276022385794216865194191354226846606884928131495933419561408901859426635188508902144568954454169267554974923346752006113624209687025843718839212063072747527122168436430895922574027602523534103214123251719768667597209596619516158783916886588419981219408684889740851703674077835263259395850814116925895417497732995437092308929708100237444713244856902425661081215689740627486958165828211538378824516104524380084771413211754202111484035963479109310207159886423734369816858766165137069783977677701235728867362780079046916119791281651404053060274746075231714662307773651276326261194367726311507532501804287051164882387002688089873761870133218363361497972958392179081344160622870735708220002868766775220621531809271409490247497561543594078715593122529438311588402864036191655878525812038237066893505967959468626128989591732303054743295777447554216632597221292865857811642351614470352953251862739859059948555700685253650058000174710570323910044988911817479952496744214860034850614146835716533306324306976803530950229787974733342077397419927150617392807042328720282258472542916559840845355214744589493514679048326769648553606743611117795489857768397004526725856396834331553110653833436162977176159966131714777052840565453481943474120319047772520785984150597114854272787961832754212735165340720627134927293915841816623555796140753973656083286497820979219493307726163746179061340430100258466672973524098669847033100603996510136424837350719929271608591276374892745004255666306961366591195074216877055826043655721206564746727306362251886689132657697333595661008127023729161926105777430720852562685389207024169496021557838801006372882764466515759311632637958094307453728740668278671066302123616160414810435645172328787318604358853661450518668203171468312360979701661045514059250005193367592334170975912076525788157990962931104324385242086317689065539435860834861011326801996390409490032471413981094463274193701710122401859742303277154234125238005068320199533132932430457211091709544858193195977117556250246285493585632719259059912350206410294177035022202801676825694101571297356468006254158198921919740982568187175602261347052709195383526351776580607314789891515568615002636024777956594751338316882531810486483000617449743952199699646772969071881314864387109097000493919580093031813581642194673171868380414478069523573231202154674261458161704987051062982636850154879779727579659200051971979753686721852713646982278436826579315347375656576102791955137768955791737031600555148879520889260464969452468814567906399434446436989166613457102545357064218895360743894878208246769744447535599488843630359182950907952888446447650973564618665709240801463458630200205073001157914386699562476404153742994874967943305352815029550683625363134986731716587697532395188437116415442685253207115714368247477099076387958604441926307441989026136150863213842232075435053676164985167810832546794308372584799444129481652540139341659348520496217837318622148225164216700182213903506681463534747785184563282327483445465047303919513218616304038167666509649144306457974249778158544635501787046097639691429414807600257215340403306265993047537667570395191362859759521383356717059886530032641798657634099704485702069630694276013017336470644819837894523614309364594146907655530246818894522874021104061770739914050787185180966890831680421977736868919146462916699307028951950189617614363370281376638577697557671880250175214044911214434061826584824268693620426683605763822964107573872404703731479489762238419982425265478712302532009202665455836833227096789456662379010537162584735144233725940816895040313140920265599372192713820834700533006084065354992670240771188084525165466468182636793533688383215386479620281842214973896941003016111750574000194735742906068300722559593841494236083008653663261264245404201389345328085308356094985285664705303798447287762158085632504596893636985078043288004267819945165738309469765915204995276073823363080013257685011413345365495908942650195889746956691590030064479024376613463143402443315780334899438519571931309037654442900939794675744336225197411092898567689719194768742369106849096579833453385936013067518701060268214325063677965965051146740798761785380667146179704331745759816875826519610363800299919097690368151719951618313082493966179047285707694473555438940149600493189685893138131498848966748940517762279030675789531808924131024047343772403884958701903210152820635871915787337315880489626494613252510706561385908154909904926846720925479042148776010780444422286396643268523214559796168469114356338478563067699751693780862232423029088101069380705646057167334622764406719982015437115332454252153593418187254447948385907623523322470265525293488292782230384533568090823158634017344931988870071188110988514472232340848670048053728925621326521035625205606172694521575844921370836040252018275315194432782688523878507228388564303162069430799590744729924293009061648348977460809776439746410070196626854149968029373015702373875932608571402271059312900493323518550035504035676544135739156002881672306285397250728314851971947886772142653787322527428873756412750217707757405028746214366104833506809416905586837002869076925644820843641086282586223224101887086596423570884188363344314183226300401568880906235246537942576810952013457506263675943549648032906001322188500939386022645283191554250424190150374871732271184435269619826836870153351373492867979172755173444325869021982971227542439560756819803384151290485012729935875453695584312772388476666319098655938524934510102566503553255024508242131522242816178374705990813213897088592135129102612370591697206746611643853006360163789789387471688249654318593696334952367775285099648873036698494889774799895519662291035043713017739274500697445840637456617352306230421363867206506000705054546559397804277678105060463928631341526559904446162790722530246558472810610753479594057433346890531011958081003482202174037906666022384857985423202397167357187267757465042595535929635325980873668590733790243730357348754178361735966710472213989986454454454617744723781605939622655117683376254667953816823087515194842734934891168160990821805253669881846110606374800072931679228770009436163016223103288046667147985014397938099487401068888374469612266768202867607353372271838736191008834442190698940955081689426341467469304340960938356859646412424130459306635160927206413784121297721529933789258684390035335231480040979263812074456328393897798523347216582797207339365642753195221310171755525113008884997052127771718233655908223779116996781762025476486287695412816634279852278015228702203498823852787350775712398927424702743570056797631996501701841864916083517675651113930627444223169429033343075722908005112296406757964371844652699097753420504586132497428967860128874920232386137601541809635508875149884152560677186572975188682141317215956531214504620583317279105634946734428835872623810758196541910533941345453981306220224797283976167313961936721662441359076229057157527051315172055169491666352006335802182074735825827054599502819407627982601195544985113307619697570772180171949152706223571403295018107253469971384183015404097934252342076880903557026671827890376019244705035900506468102687861696861474572485222784359255892908729983384606254637166415096799453149277360333407095667761272579892757489401637997904931499634949354701273572045897787961077291579575254977351556564992883976532420271769773575690965994525527364241294419943649946068689249304547955928156120831950549974893333403481561378685340725036495671729046309816471216598627252499612988445860180544225702926694226027603473217088043428251256084918939095763144153634112156794218196484923178729890430561266747737815959169898622523821694134455702137410548886023799576022891599320069114103885099833681568120155003720071005397869611997322614298264403550703821137613543571836639736774091364234246978560697961677429289846513300329973972795780212900490651661276231597803394350303082623414117099689154794907449914088694444131476919358034538651751777381344514295755468005466730873012992800760682609067201065252518640801231119531056425259458748071238346514687018743187028595146540874875944743213143131330423163053373520877148322266664066722576068663204553658668918791614074982658892126926055430643558900748378392697446891975402618750109895943854326732580623128871046109083059150764969315433926849141898506784604935010814648018188083766665066236387233962320360914445801088585160025523023498080782246568552753930829132891822229966810674371901085653451599354577397716001787495592134287063054232701867141400355905122411311385755316123472847969557407276898773424112210728830308399470680927867135918240683468666669913388836730480378827441537445680189282288258768383220987460193546303791158636612301860951526358950844933872338372140829533358977284701027281369561051444896090574613377042166606590389336867791653414232211560051598492147932928683990592495222763925162653346167298273204482630002036700416453729468772763622950544293783755745852833503160495984082791412293728656463440444074708222015817211018980579728136424856839153575757015217433223643410603752585672940620586677075554474358415515767348785814255694720015923193191360508685443440229726497723275227481529893335340691863177196116669939211591254179614444642955906343397019946323043314869242025915328829143030149024784655437898976213205613240619568764184376275883331678477607803671072497304709162008059272811451384814052801103651617336595225678126027764332866665319875725408828210015345645416320006437935925303366063175445807428844615525037749158148154963708947919354867722231107237913363686141883705071660209047726612924044412476009050475579172249279206698749372660342791891095050008163028151928156402993609410590021302645448896191079960482894538371445563171825944276434932018966294587473378326368329766084276278210421122692538634950178506970334481977013468772823760818299910736781068814710977696030466603560177030572676681713271854217661451079504520574235645737508635252181911514263022608553874217707420981155419909393277338458732016585624185508688557182223026443574283861451008210283637863034291108443739025799730315077575330659641872147909234172980556617331760622004538199638377076972833167220664302680590131343597773675532377638576880093401184613048367897358513356913237383134949958690699937966164997023916120756557021410693795218389553169586103029113133838048544277909182830472544162192955370132387717592261034923349408363015367389825083459586272916254960506639247550901961419831454415471660511786668926877574559899913945667893372460298046305963365901394885982642061813293071686251278688968551762626259866708515576544324507689788260751044908682383990130893657858300900205666140877412776189830842556718241599829347754330013287694566637905622303097958035559324521659343774753995699920998343172790018281315087213079705971428200213849399930007235037088417713782516203835413219101731528317505215249491325740023773979716600737810826765070848283991359395021756321609183021572545497441865785356141332896778216125720457861978880000022622885307692353870002861531686736289009846015618716212516664594948976686410415889214857614258955563657398286917537285773933032738388989644535108527997835738386206584203006705268750519160683110437500177923368000642531070727036875380688611835969336768823486221331265723444666973015023290671466026721097074707172508658819902368385191714213846148825239725462436064546838251224503869377742795639945650261914465826595257478194391869450576677116388756991229363722076851660543878881048797832515129852210908338990340476670376747089041251810582052733521587233341489752791706352516614514288769670175052882824561865596493086216864834915829507380983841985919516811846608774738840490184473586546443823041323810614009100842666497482729027398350102851086149609008398478566468900481922172092719420410561609239845924614204230080324752769632678248345187397896935239856743085551996661440522842232139306916072502161644092021812125757786629062187162233071898991535945201939837519369209548580112273946031857901352252757961755871683862362597162728267512682661595625313410460424910062404141600752638037907905551309778415702501028938910282861700402263673397908648516932112644839319281763162876164308190304516688273344816234089379680758191471928850756570625554964010855901408971548591475089250137457382846834728007478315749873647378988734560865909464036974370237207154412524664561255224083819022391697674151933457885708161684938625276592193254288897271285021995326118905266759461262968817080409314058010996822882110364301945289420110494980640234433182619015036391049911868690155272597169134045167191097741712376962258303687890231176437367521239037687258930360152016927221782120049897794615372479703219865551247257626912225909044295126934110918858709865134243559969165016649425379997929540086411891881248235795906371044629182116505570387387378701208229829898544614445294704223008453939121602696828800012838998594281310804310401480162540080792025070788294687214946090916077191351358387916019106507148045012436083408268410746176035566857723426634677155195515549282127427134030324027108603281316740111265575190090405426453082402666004457325701466145997409617147202807797506996261644074768931194876586732765747305270176784592667236205423637157041212664949152668999100336277628381573097968673199719217793300939678712265585747143638737366526338799740552283425194557627227302110474319589087447952164584280603044013408964449990393995321156200251330613588978987996123682066430796561654591903179019167559443617528481011311736402779760544502522262855220638840775467298334262759624612077345944408079021022155864258446224343229767841461072190781100232534024088600704374399314575145333675142302160387172910394759144941061348140207008988828675859391934021816932089907950917139454581133168835220703536418386268399627099797625503685457729227406404518172198362627098333073836647881527518037258491265830998886832936512912035897885902104053183821037855497755825860293986440813245454300225309051557382126445946130861432337994252700817721380981129800979006294497607818293881436364267047784077930069673660759545217177123640853919893709909686881548578797672517623527642302083445887098615186452611127996291014568391195948949010089845323306456543312518250783629408223912887345549632411248334213259466078755537034880827630015313934634651633069181234449872194425502269156978088184412542906438214069954516190561586485806661746256799015224703585418198027824403726777456029134980459640266143500406252586391905955815302131304358955182449836708015391043131384822519729063770210450775737325042444371631097832751776191247681273394477971926555323522861291106991475944879005610419653854212169941285866165161850778585954175417866924290034058540486386909459018475765435157659980173022259445882418969858080084950389539246237899665599639035766699800940535536905739483544464334142845857589706922288147979631028961127984878112756181512701704870394212697216641598271238904940979972068588691185035962343295614051486375242421791165045043391374333305670055234262749644770349541422188004440689078365115771030776500797105339175650459667310415477695136949098227897942474092824412095714343038734509030797696609718195531115296821241325792714245001449979649698532314012873986999117429045002401319594605063446232510362272360376060002511423544550284388259134792012411117670465367452290541669968526290727313501673714527120791680564488141352100054181893648402174414006783594498084724507392286808202754079552517754664145143282083103005037648415258801206007842181468922567654272416170579296836592238189443927881817707054001082763604108111687727561847901415826126986937883779478186001816867469807560711409522696060631585217849098484721405197307948355175351748486110465195493063427326938508098473790697243488129331462666443819699766494370449458760895053405792554920603158160633708036577829335901495737313450993378586232619183968296724175310539729472058124220130371031910662093548492285124543913465011973762021452848958405722340106192891808330055380320462820617398488281630544950400392182472159214671318195019865906496037568855242085187301848116610292228721352209590671278276951341719965416930895576922543637527296570663779164530797119556702130056729455874157375472540657845496908997922842597140543463862512888473354956754761702807458411652492399579879503608887129301761566418150600792105021166334272667769414276876173789795059237370387584145810316044384597756471428671477192707073903242640462065480494970724074014556920439422682449199352645654410844840110975665777374516215234755580338395149095352411389889012813457428711695667076096829886619227263320102753457633969249837715774922110127318192006084185267525684889177250742792244221289334039615123923325518941591547477200562788942619439530149851126204596778052672475091030473885770685143323218590104860582493505194503521994600053204823153804479756811115400134945061422783272326737195742744894096633865777113840644191766250146078705776805824002966568577943643665659969377914058244820581958334321567032567152409972142292424775731447244982826550559204737359649059526129772404858366159746850881420657405632652534994882595782714241406912795420951395616263654001031343455562053400928331782357123443003074054443649697826898767334973898365750962380442142976633504967426900961007795474816894877933352041447484858553783336459040965436993350329906677805103238017902923987165701816405570782990019049977792087645914701466359157987134357662069802754458510959084720952007753810884301104354101475926624224369699900330232059553013987368443177874658410040079653896048933268077787315185569048057293465987457008762496330553390329234814530814726452154956469259541989218798354300544545066990451888291781508386743273204217812518921277652698939626068966720508308172640432150035578313016253449422401098264470504449363565392435596439365154730079939280618897683570792481994458013933062959767493468924806206692606639083830403542183328782103485095042319607471748746247699383947050926131860013612753426305759780949860834863467236142322531710165094926110308655687447492381783488704658016357287061570298837695149259037366678971260406726122940804909183427437373284590001181939207288251793806733317529887370780852751871889848197899492277709228811691241040074550698951581528461191571801995688520632381242758314974155614425097969878915344974232969719459935776781258812125568510130754490945251155513287449791924345288190778655529489154367096619501230332427625047364723839552808650629674681136128102093563577436223420777158948158340814741403603320060199895540920777047514025413130980484403884881883132786264733677227363219681997872432447238355159555329705053249404277515913827500484427121060897047572988068652887529641724751884475126248357867712429408327672743762123074314192920145134585030009081087012928570006696831330877634125196187060923561759442605004927626322033377640970941599242945172815740580743976738580925011284049849812286178894522693318613760868696009193681480879595048110688049336056712262926472069677495723072262762222353853536772693024003354593630862775658206156325536519757937560821610841496157750423350745961902110759316455803306295689580584756019355397697582407558375618949405441572787948174751680355049362663985441172163864261604365065683403172405017334099199829418702420474173751049641730330605171707928261796382712179771478203923957683709529502605368473110769859889597273620891752985444951754317844253408254807247028629961202862793156263384456751875438422670630082627054974810415258637879220534147441457964334012031184551288259504220919588336778037359739475384028829145835805114261586563619172129546209099820182813645682284335063026198754255203976753230617780125232228643338230950171770499505153546637791839763643637928779046596908586303391956146882969380092004415268059943088789074159089051374001651025067435971819106864829782937798705011796482227555558052709971599473056626070923401870774528309021667472598323527646605051527989668881383981643304364600104626928378479176051763720213117106404689419795571403823137386249360308193106589103083322808416684889348612160514730270313159169033099612596625333987420623393119747338890074152600842150625213988651093635903536333740148125800412746989337933599013121436507910350532121923557554293346712681174264622010487842386672905243725692788031141922184084048292411533594835373007457955028572814573975238829335064538614515302385539290137254836898900068442829489380879936707093608846070540206388975887068299780122854606465674747135646321563671827121934618174408144512715218748497390897377223624538561762874434264490418881083542214369355170081714291460657475946762976722241058782440029151983888358845577905136976300831369186568918841505997836908691121181771006459311424774166725318317172679205771724972213388945951393919091380052251790183343644381755857870934982823567252267166237852141925745363618834098095054304971601453485765722966265980143055550495705433362595187143550830777550285741766307935070290952685964021992125683481155173514610302381121566109242031676964004203121012361796918912045711949774377450752307592438994022658399257754189750393867851868655801574281768716356031649561383904386388074084055207499837107866722240493603442331787983189025624576905304351250302926214562563665012681990805439172377254503606324640907968424622322359155432601127277130206030633899584656315012304995797512707895660442541168169454367443875689026194220428951114114573710514672566896887386176240379747365561231337649265414350745075135523825982528133123263447993456195817723678982127715464341578933827590103328364699143379382081417037334121747579669781085026938780406195035607952387248337913914898941284130790069549718904432089043465838107747042121383394399506096828951356831318476785831842116164190285984181901873068225017768914951551486214146875676187231739409491654873110965655992853246764357519719716722987660051223017574793091619544626263146398706100470219483741092242450399138683049440216836233824559268666768676524610665853492460500436496108716544880004274129966616385341353812560277191471503326568339541769474270628752326813368419708772651089792444848511187429498696254307845330180060732337726145720050929287363032430270835085801633114064511429971915830339004678880366169224660878488741560042587929947600342018558863333812775043251146005928603591927242366589947673933550752669498229337587645692004792910562328278974430915431342555783416961449896930789689954054713361169543071548293597366336547746028982178162932694428599639585886888374877782572453365072652786439658932116971904655379311406523459870796363546435156221196012311233079453389906204237034644034770475375680923437557645517451923490873525754175952495520088999837883726877176947762556870936051794392625309066824681376573806858431843746553558162913143161128460094217108142385347393512623742432191854159341335609596120779169527407227148024764561386820460450836516232764071100169924025888314815246615987032668013709234567714499564971728250053920511606078294619017398209476474780019821169315658434138400299348118192840279035384631716745924924741351344540841306497476450402496372069328154628313537229010059093724454580207636841731749802070331289202391956603929505335490558146888643257934577698077965037277588219643941430238368671111136957562675807206731784129424632394641196122054717194119596912596116011486635792802669611910151078726151576127377864356764989575423041645219848699439388025159806945775704146130949027624004246226022823797656860562364027689276643788224985422550091736916792950637257946871599281237822125848220549795734107985374272256498809527951995888064078790365703878689986462021640858180824968885416763979212818776622046426948200524409935215297153206456172802485151253558492944381525629957968287916036274324333887046546111446938313254170949030681785278086036068053777845862733645348316241992245359329820814250716939579128943697206991851568838117604922722030648524681842039727862608034864768545286015389217197371412689160447646519341722659565952902408606898407166282712823829824760425515276353163192430693024148112558458697803556695826858543483616845949576096287294813525744450142455600492485411561252167419726543524936032170478925691618927354198122231984588497130460233796956169773708651829403757725829879080816120504677392380481999329886134300048277820917697419817792141734317840360149963411570090270646113257317715371786429047555117671914149899202622341129636915900748725976820106911610142905457908971334878412189238190345684873498812585840105906611868104759216219597210294506526213386498212787270754124337861838553669368803895001348268520906034837038106600146021140878877567891049394232647916577195139861374593618252696863268832278263420293342872588216985611869159013055102507426741046212880538896986237747590106322101550092628806461034502854947172474148422271717006749627630093321493879735132610954219964455256600190341408232466709443628198861925364269905089417485162004009386572244870551552024205686589273287088490956439142209754058000741330963898782788442231858765171988949578051056512639439053462734225537114730083191769844374826453336302839972641874860587738892385182720178867838875166942985400841327269080517288568794300453950040795906989517951953102799327278228468897767465025945443663272635732662985809207522399189253455316047392089783220128806894060858038348831255299634926443556074036915684081567790641863295195949505382297962662425614741085639436767573116520833869723767598040868876787683612588222920042706817692744200833001349175505903947121850099461792334132963109011580136285971990848481568600065663303396104169733467871285260457734871079969911887806946483380847749918713252016760569471913603323771711633370434909587527556952997166637669403063927184339263512107156253409731064647623972154133317865162957362539449513867636656277293552280564298201924979653823737587425232185772252778850762673595662318933840657507560297876413534944981756029594623616586894630262470336994044500679270351651769960171938556420177125070630371798570155923783443405560650664032412232667962985798999648172678969528720801867955261600782964372469974959663234179700861998369957200625125762133608090173037909515963093048799394992042360144844741437443300391904193804104606063443384442491080461631997921723904285026286183321421308667356627571855608810688993700617132813678371555262977625193397945883273776921404962962415771847247288882467952476139712668612860911153237157179302314054757279258930299973916941783559504963612192643583527304572827949084636904462129936396913570687172424104959550073059597108309197545059353059907571409649646413264311753173983954524315348407242025974525834827720860773601266043392799921186988674922480623723101923378072353278351874538626763782365985899273655484795450035237225913261553494574716685745875157442291093923547836091730088917475926504156948963919906215546509881385510418622816086938260736303370555674120869575315598540593578129552493308799982078679050928034967018155696229630418487739499479641123012900528368006133707059088312301742736633948489781038092586701122210868279923350744066790137168105029880327060387437124332782435544972728212090366596235052552944605221676828345510134447841771787964226814458182504652974340874858597638183107686048297241412619162150093328128257131487737390317396914643502108370426226134494375679437278591459296071478118163823189257671078544606294970314704150743672093220579028758985496505561776889402599338617697590621398084619977731332516443614839305922116652316634649224545312529231354084062281076807340989868353469203934784177465300186064990716283859091683818837468123188201547026583888304471777194163421961885720091684028859488541799796333056476587416973295690053525808933175307272324210163581729495778753664386086784538396686990310896247262811999138080810335526609222589528637107207787263934550782794009174371144918425191367169992660146907936631296258336589164361747893640620455582520121459466375999241936252057268246952368612177411864838327444434388076849933727323460079928880601559260331151183442958239169887854497848453109335349196515982987751649963590760495333079330809103520864734943401388412031100461573686241811943660932185605041481531202587423506298782216868777569481139324858216321003563715695406969725525542790983194408940055423825958337135886689731988990564907185789710884546925548351928173989595624572480854199257271377526424027117042926868919318922064449037481601888922123388622661812039040474630716750224829655785785612597711368339505648324878117343803302741759800194146632752272198026394308395373367450984088634779342484617035613975141839599411688243374959092599431462193840774112894907216018655987903887364791354219452705766370911635704757608700077632227608646415525017617011869939450587325048911520954612909981355058604225037845228466893657193445898409644836369755258942746719866509177478793976017084308449676148773773961468562070267194722042855141285935882606961842965522587848188903314971033640472757744813023075434681190332385273264427846078075952964540596125525020376076852242231345560853135008379030573892487983321719804591205357461607513257293109444136010515619303097955536679829975994853033203800060398895008069616778570189164821172278602325975440826068113531225799473770363957913283033420935541697939303412926104646796605096915836887560494470890439061356181511171060340297593812325872254586144291851921556097452639106853190000466845882158845081248546217422917655539595301573384033973109737286622722850607331907814868199008272301485823327447407364684046429942500400313444692126149815340509466918373673304537092328867006546424643684268193619392136792966554796380788479230121989026853849401875054896275416330901933155862451155397617234862216583230062880200031280415505540111308742437233083877634382527647953911714818347540741743629072573507993390462608456082392843158886824733884522593869854883776982943408883158002496690782833260005028405464837296133019722793318102745530087921291757417195292237152344860684282738488187918458901375389269938071904539160799216242097045195263417582945389426869074865833992498368982467952105852985610247985249432222599010338885345998081259513566412057022989671921907654452395262161205072314857829549593071243994417758818408518434796776480422136191847587223366878847812111175294649375585898474322400470000046235922766948432103756755214185403449060012704731018323401307069507172651712732188657586024498769472672680020202669865061326812951219741364418197311143309059418695203045279329096538331852262747289922385639958444421857015785320695563833516024380898925337171405934573504677012658590991770156990919220755648012016707921585262217405435962960932921387272561312879103418878748887664824909717544062029320480767146881990412243838687395163306231116472375918022064959429056675876160335421230553248975203956315637004365146728267461641436163979727138263760022954652471137732981192996546878582625759230277369967188024484808179082190510497925057406471646911480354071837911870991076771500159716395023458710993894567629004697537203780938240315861033025367936893856940801841778259714314221755418359172861038220197360661494951863503176889116298112479669581417333066012519298407177267141632380563512360116870179363091313388754839546199366655529891969978048812938586792958095964813335763634472112245455567044567777983691472197597825059482415623708182260390595961662944682313690248352582407880599621655717318743738004312837120837239687395305005093454186389990089028609278661664302320271260906800078972130285051746477687211477044075278819270851929170347834492592500134156481866935350787312661865115737661673367418982561661137981108958483878154478523852819087819645687414356333548507729675708031272160923823138114106874848417301982553734780382486014571597352265622144205690808276553765984803764593612840637922245774446548034004769817888910678315983190191413231973112596029587437067476041281906076308287177379483215052362306834345103198080835910027540222101220854919771319149088250192952913338834477632349380394216308269563040075759373543094730912152478378864974087010181363534641750358239570422454003900910529678603901356604912040548840009080425084789874944908514991427231267188415418908832714053832592572928420392346927578377510877829734376944484013914235084840986713298509220961642238559099378205712363771306146876061071948078417862005000346181525615184809303940652803111645951716025174065801475922748946195478706790135704437839179454185556079336883019014100520877225663763158841398928291138360799578671783268239003395106312026429794940211570070955527186743108590310058041134048833729054515100834143568852005674247627679263396940905334289919783551819161500825881824466247764338429469684490995417109476807469537231301732465022188087459742061485760862947404701466177892551533979544701847185484933416513566843749968774352235185233546238278669021136751977332968834725483100245938925987767986433250987287029929114085820937546958009538517391901432256065620747963447016984074888277169409837437847612753586016634575980194906128583801733211043341975780640248159412702647549478530219325382533421696799430949171719850953620928252592477952774756364337523126998584339717018353529379354719515394884527885009960686310244461939977604339356888314705880892756046270568569071015751869928013011943646549510017210286080572076619995153216106845395985467386565632664959714660232805914195086649152425590733173754116677193347244440763145202352987025422594500892495668796602623267523851050192317282131544614354519587577365497644444787525614156952378688435398819020347166452341704415138836344435396216139844771175062823419442255931294318177349984447598969144492844432396896344756189011594329638886459195617009575161707916067324668562304756871396085792264241493887906189221275990008782768577303453609734852886414419225853583392093062451223923546880500857718277771429929413624936089145568731004142838739367896705191426825082428677833100074458287800061149799160453009913269736187281896544240384335597078422956305705118485822776747194484160922266440599243786822369634869096332424005011883505408607629790029778455525571611541723470031234601966274916469287529528678484009389282126181709789194935923053441587754308450277213383887489448912047418437997701761458612914434248952798923246596913330435189538384253400674713592600464913238795798067984432939428783879665174530459743540749562503538800383818940670240897154722911977486653149936752152593086324291905343093882650014965276310239316058271724758870064878731134327374342034324334634412833120004870419343906919037111180293006225738709141512872407472786863527408253558378048446360985943678464033758510237787625793323862810543699829733857586108011736427170507911608797627915975854295637624050112735721879771627503686824021170618863513539682157710031860214806332990113252956667888850003590633006426939906234935486326693394870129665184288977765864377859791122811030207747454753480256436288811495639394392058866067036173039737579708109904894108874483996248678954786597721929057642308930257009451747653376221552545525700100092635547260841705315068059274964845071329633956270769698281129122119057005269462025965761746976293953584808428493900204301628581109345338585240700499947688921574160364289067155621941380465257661431279860959583335556098663955816586165538706027059881066909339195613377468172279888462576761710509048911538977145873509908182847709658426905472655509049296407825690767158275524115050703834832766171435839944704892877032428239586169022191093061047385270985734033538383940529664344216783327932947324768708095484653523973779336482824403390837163130205157872301240069156713889941894180562631420667939084493053708074177338400013819469472079052857799659631999407119025314483281663046959391360140002672374416758687502351200305096135336114312812517791951270222033929837297984018553142867992304150837884449981327368183228762029511107330060434228906388823890987554131490671086968649733528190230488295809153456004410760743383181698428875714052420591905138607331781763902447424788673767626717007402072360099833541467906630320249588991687569683099818268057626943912878729672866035391408618405654677150497628637810008078792920093998924673839482346562164043298279653871909096380109782456683544125491271009180342913953782735013943442777394429829429909968625489661816147660614359515966943292196966512636404864649574208404544248111784379360956005229451670917821128329953467371090117110814620777877604826876334794626914003318150912759172323275224480738933802989951867647186120014349206104420291760340735052190594967743766729453470682476246831849766061752643560258372379645448513595791721784892487757858897192137383083042386589378781567316146959207598458889674360815208572771606595529683330415287872810098744859837609308150600741945024982194118882615547805118533775603939839301394386247269332027424360598571288161474928017855011141486328815311032988040903947225766960216990703697020312646103371200219498589093015215210696824487787745906400528888857950969626727311416551101680888162741892077254064243849027535744028037502821189495260815344679549441374223080286570585272503447185552714380465692469694963116333726405453297969237982390766117849210604632304506320850261520927472996420593374637200364986077155314595599851254888062634565804530250731364986717204463260715176081436478758297167057904714571902605086513392421360187694296666643600010108904000042018881111793785928901719173599583802226916532158012000314546881754888654464952255541859338726723882546222353871363949462816489012680151679239273994784879954920321824425428150656979046430526890670342308737690307987016474941642006822590492129058064507212848363254941010542236285947675907663365616149953695854304228326400560349976863916335305108434874041925273110404794753625852480409317204450625111526942505359229241365665670096170350206654061987089152114966427860179149118385572671403367569949822513518798251637913866720966001374309620111843557309098712661022355187390074121712117410902993471885319389649857908244238523077547382394413255646023487738452591021051932360829833307418211801920540613408757592444621109219292611927228583372240507430518855694487187439106734697191956205321963661361764489716916868596640875687082840890884446248756535637856226792640653262905613103297539122348726829290503292962375413767772867377984095674985969172565596899606812690465510299320581010702135394286988059889319738464038695419789050776834058190575557973019097212406861500206943886581464846243632318104704030848623818145408873254382926017083484442676808515637692073236873479724412510144280485895445759453949667190568557666608319089344595280092817212347257149182290512146057883884006287105033274049808685658666332189331702693229355934639852036365107063858589276746058049393822687226607278664507368749629639078183277206014165373237256126551596951375733286426612867585899291637598490519167855151626100355484357368911481776469906648341391749741985403605200086572186089612860857201739143185810456314798141751076223031627210959088877246993132816141395231735106335927613385325777689738042343156296884858283020390218240640906185133813440706922898818267628708562584481979782996770087522018785535555201647346261071074872945678679790619845819232515524165844723085934114771645497577691314482784757889574889438174623760577341886590087289738304601913386822555529149156275544124646379304254249759168391894842294531414614537280446859843273871450835853191278286623797879858032008605194952765533106899417373375424333551446910595172651689633844640657267082929658991684651571614228629433578148002997830650147267655390435584026538466536537366538372114173723990614269881662042779867046685972199898571280066101391257596790186973459293075337513896718748165814859898364471177152633888815225879318098430027654356257694526461854038762763895349258501950541318459986936495039420830183121905188016257139306773230909434976159027545824215101258246776631298206576616080348963739680735560849565526923892378127598218961526053675844012361860807906378995697415503150110468044097178042667617152787302247566672338734437765311152054224352920466159751111188523346907064063113438186562154021633078102887968935395390382308028439724842225969996186960616033049296943494195367942786225004510763198008753250749728742152387597868274008440722959018179567931254200052999479794740613188806014993569945125568815421430363964234725752470782150660748479529242755737085280771564219941302911152195089372257307681244831992032794271996817080177713963426628424982055052955049290574482913284591519280098013223811285121327729535529368225081954316040072171456934724111071008554773836901559556672903429074749023267099243360254018246516188175644865063488036418505551553497932640559002997850845650713661439854478382687492406777530119608023868196206616879268563915574029844038724387363228533918516177072149634838672915697347120757562167435445257576025142478696632059930670268804344912326010373365162497789195408542923451477280636224905570011115094424851394391255016841221553945875109804177785801974161938861490528299962638220529181373070815527821024713125448791428423737331429825283515391024113464774815073847719732567422087501854353621756754509859802136989861440082047984016519722124836144731702452784751072144902489252797370837618318931366937931497045238172532185397049791943681579451317873232047267040865441937007138284097434648544109280812778305941421975504131791631084587588157395173430311975213142695038054390288135674646585161436796528917498290345259840449683935704174617437481429689302540006192115021787779562979759879167459602431108998400111325445378468113396819303993726086661675802222534592195559418938799727388276002532720975193413283241033964076679999040213641585396217138495866357600994990626753464423679102402249705240510196014792377652712787676973934962005801372620419743500548149063053217173305738577026009776405776892558776872625339487910824314301613220988729094170083604441232639533107241981970486222653527415270040493266785304110398992258764563291535310387454041647946244307497940993130429937008031460967049912057494053220851888645734171798987085553362313957714814894727949915140434547965016806293100130841834103461459297366866411123969725456948977129919079032086181282447908447139855007506448732236074821167595128857870254455361831104714473066294688330692381890954614228087084118576115082427442688387286917205645613943681340373427348608941085700376444413584770583736087997495346268223711426636513444457125087150523559392485805449420612655671330066340468594301697659315418785686185839561625676928583821281878859718075822386919534493812942550351253852461353273788593810412238406659391062770749830249559869434777894067804142027437694437927654094964499285775365277947689569136311838076558485263519799142698267076513477307489086011863409113485265347905020184768352102810699112423665353817534202319591698998473906070396616210944200163617313276437759125635621725177371423969191507492534546556976190501219567575258624831121359248638307101220667769649958099385054426448952248782819245571444146980566396966192763494174926850733753843945907153191379625732127145138903551990496228666862632028303351098622652055516768914240801748203144281461849345704658469876686861114864581429273879340569828325514662462601935792976120401806331110765765792014667722627004349918330352714800742660742210495537341441209730520651073151381672734435054962167548973746800069734603048344084807710488528620350138880277021065033535683370284690830726222003671167126393723516074705887803853640238339775531656285949512724773172004449974251280635819794771357746806071569347133727860835415321253846308110443061026278686636100893193718182873812432917484978733030974780200176497084447868460357433181246468224209355248893496319515742796321784793755434114160812078936331597272186826905813450142632874774198949170449937319672863028511760767827224353685356811179135037751788730562873146782001824592831672421767743564936928034964778396870816669474028642465584609669469928221759452426636084138341221769065385623337115811498248774264815430117698375166155155112819497834628462140716496219693225121415325856923203326107357113006535692431271477983279531797646395459738263927684534999292418818989590166613593974330284438353293336388204436633184959595273566565257777769303247601706381588282358266417817456000694765844482634771585757910202860483724749974610631524253005279086896817608362786080438123436067249542153907644807995769780820125491936983464943211365033851740094666154934614844467130242672602921802067277068453843569569285586775520544861882465217150787155016433743684486757727592605800474299910521070830284692488588282258121332651454619652551678515577159734766346460268229862049297516910942411371389117258019932673762049734389624443272519926787910249033234644331046163728255935914246239169758394320936084610819565662137783404289550670314954716735578327421432178959281551195940215967325587376401099960715478739029603254438379620829398533260228535430775374184966014080545958219318172720540592840319913236853545459572296972114830475745837675905937838159526619641462012033581272797122090345128125477544196208726291711656072327021576386107066575480449989870545081308699958228968545032234858722513435429294094016356182960662169547697971054711689921119635448629146121042492764632028216824049748795073274227577425720655931018391081079083578998646845986785004430346188713891280964243445831382867555056315166179010071036791212282112771533374660074412154451003283136952442769076521482175122598078036961457067864415149442085088269384807628262534697002529488968004953032025521568742067655895668697976257421240846703810451193475886810867470529614778479204742038254969840468968786113071346122430836649473779493024094421413740822178610051917996689703458131213134768652950029062105698813145886231199898998343035721169541089106455465259474951194566312445444118976497916746349538531737501080648396530362603095249428809465537791277880249822172496775361998459028273413971543888055992798312275566595890011857276045323374925429872253971803691881974130040697788393274288069312741285216392582513163761503548655220371692609580757015430629034360001829885466978693317069618455503829155285833462507129999056992778148288321757981716535272071795991756610971514124074032787408274608393588787760598831180845761295788467203874068924340618937395506801163386400285261929582258066720210132265088889180346749510168603757983003062718408877669893108736466031612581272470034979119057971242200808700767406440128763218897704593471281088525752347642332010550516749971976377676131851787594022671030055298101000037802125846280388531122297269757291973200098900774580518863827952642196312737929824020378144414709423554677984348985858209469273614924715388400751195513062460321936762903525327845830864734271846394106008606258942607061856448895756222333519178214256899738188550951988857909022287775075514097375416051382572657844736183367550793320966274579505212858862399051909000341716865155601932865696130138525469672759917102431881176809262305890648427071760567822569570196256585934477430076787001036636302133347147357186546953118327423421826096464074827857510681173374914490436921789295148361532275892019875715603230901017822485269380686501751674171333211588272138770426611249709484193522500986908830661460076825109703531519010938044960262514045437181523767604325183300082838930006996741086008988532305862424238881137156258643753920710184738027988108828682118438182615696120381186957725364937703018827044915927684327188731147114483851286816730004106216817667951492804856476212638755807760536989648212779204844190690600294022362935951779016834595052555083082239797276766648939188181520598967307738019935103809801486615533762208815050666798037372582108131987553596705103780450942448785172935656573855938675905519965405598592922189303184513967040174163882873264048669122872091864876169856154688294509783083919287922196760596448079264226339196379922969696573690523683463675180685046512126712572523522558294527343086276733892474506783742468856012828151475012953702645712279514610694628716695386102294737732462698505732412791468343100792017815299439120120030753793715269015284479759722031036457794736700287211142787824039979030600095184619204564262754965291931119813195759473942777563721523585983185734349588510849258170689178944649805377319365487889492830970221814366118540919733812204468297755568506032252241250428027973819168963711178197210168512245959903779038942465480744636366174905449255200361752972930392900744347772906970134309946219212527949069490590187366470413973285263406246595363253885342294974827526568837560256198796794580536485936602653525553775240091220423711177852032651181112667577705972047872623030762236373715141594760229551055052895619547228698788072117545964525470408872809885261825425580732843200441789329157809336675912842660932800997280377257687190199831468621947557034721617983773609418222213133552646446476716788600868530935286671939051183685969601514328731026555627449477398173364063141254816800778799232695236223370103690189325044147892345736859469079735915735477739229198328950749453897631271420843478525716114227659706056320606022807714624739279991271745269153078187321610534238821894186694070007529090148588535590883069971008967354592473973436027646726603869089974412797060895078991436940574670793514606628455288929801666986225018461343692070607611097396351709277466669520072768416623203790573445004695889699223737689072457780804749306242995810302057367691829481104338476715939114691886955916860824431026348818634866990082037713992082164863798928460140302086756738778513118072735963761090512293135544837711706204666022651757606731212088104690039788596074371799793356716753853473748333469671316821714579183325000633096193874541471094207190405910465291185505338917241942868414874875036278172783562000895408756519621388541604562536082070570778746093872995396234681148612684063157413942747779875500499470688766742877123040100862707149262068589272317632763055296871342555256191978901547135928001616094045590712307753066044379640298812864056261284327943180466897594376116155104935714964364330040433665065165862181963775012590509836823813196903084256244141322287557183244185677116278940306281235617554428523994295732169758693081062406418224675036991870081766911693163561730424880404433898874110761516813150897022838689263976701331626980022386829732463014820881316736438227980352837298052683192494167677844105045875513662429078024867389537700265633368862218441228074257365056298884895605183387391265499176439720196830555580012713334191450081117032585009046067236864899881513915862285089977686745425995475871205985086091987445620219435511474599543424745104264237496100568292097864662440538095039586942130093265340787728511592663464153048682020876714828321299307090953501931627433367954923708688677914740332858839475060397145411501157357269630518326824740278105044069930153931600421542224077855652072005850414144934507994896622878874834803617018954707967806201710654632478573138699972027753713418042884926385308063103325092385744914460008063560718003033612944557883144652218174396660702449974772548680181598063997520874167374274090772969974856169597645710051398437861206856052413438976267298694436123011378017480451560257418537755208855681950966786336860460501863854892687142150313871746478635501762977754429208457284518390814647157068113136257001232667259671005674580722979358359700494354070502387174169030638317125320104350271512852335416252093807576602030358932722593686137614734477428206307210102011641993418180163281243658793038186055566407725336692681051344202761760308515949878388057471686017906707062080289369203005805298230442972473550897077534976320320931938783798330189124227460299239809998014467254394243591735234420360719915699312505235582902635461472211245191980723822476510272621720211825098077820556517796124115728405918729302064146395003857510735484025586170002621680587601979850862790352094182840442129638874949797115895724442558953889804849516644933223357942149068494290786964973084498532256653527404626913592417944836729726885015432110855405564884083449160446758383849410150320913367915421390160018411030882698710364945785840771439216038528126904510859681267530753314757473036917468776919722924852293982860563950067471984476749610343066529222847851619190235186545733011554792563183937780227477483679484952461924723119381780780741333351703917347187964432123248654007321466993386566855252206794591575780229320740029040448139321207403584600096822088061247765765635170980769040660896669047212460053202708120174463756584836864389071976295543330699537273152055551572652931373635244908584441393229001692148295762018998483690291265454913976869807934417222610699785267732212205927821691730189878050087023011022754818538151023683625615090175804127695995392930869787855358185143552296029458771066849041426411414262110458107222170551723263049822581989676296819989355889136705856743002718557275772083253492353053666431576392416141092977022145148506729170900573288803585698841186436400504838994510141023185071722579870736320640570151270530715338011657898487776039752450554011222795424631539234887170535361469591992615725847321408411159271883432487100131130373957145856277621954410591849259987642484034513312419740811139117787384796973203344228019937280848920280921525833843742857232094857553165564645493599614488512220848579678383246443232788589853623996581060806649912271964454739367477168722657795552845157973140133754559314920743395671799271115298739462754376618497674374962447386017775981249232783989156151414087487225032321250516999885102472584633258980541782426385794953645286132817273839044181819828680313763012194532957769208878995728940072980138547087040447095895686858028935638374283562771239859065916129132853832072105836682650259366429181359553720117783763954347447705837864310672550323188081173306921181911213625741604759782939256664270318818452195569538696424124891995950101392023127900725202949156705873704756977214628701097296172749043725259044093602298281790280162440970190210965418220766575167313760952801177711549995414899733341448161565024365845416062856029536690069326167950111297307341574816272799320898374141413887463749556184630644058163959493239946300706624886208549738674698474507381837571645697910195357164136311972769215661247765079046501304482280599915104775848110183624995784091231770196683425563020279213929967809148669756599807326927127833720321823544740192936576259531024436110522914714964764420285060063316371604521699767250585315299050342124068491356096929787202958944066234062895297429450592641246188325380074938621055332833213095619473603826825451477061597786403599957724533364273166052318987747282598011464628362566119457390654696645282904892413647850496424259151619222867052496870610405261774251273267737545043997836745115428247867969892934012365960886772859979457846318525267752064924535403399944473665971045361939871843574789389854880153115912051948931088518908255292700912771299669216989209731104055028256545803775899637167394191368593351545141853611432736395293000254366198198304456454401026816675570413368896503893981182653499348617084405832335704523532219306471119347281458356534766504606141365838588082153528815985760446766815203271880766231697082962827111576520762289390241675001065041693052705554854131116948901089881373183466431530327431148509598448569248539495603565244400320918128446139036943286120825586986987613814308415759250114045562831259887801903522427432417707514666966961367321748542021764511446759127900816526913124872858693730550402668899825219400547230704147106315491005322424208543067514978760927181634579778907425915382625940486082239669556571027013840389703131414374371325878367422797682367241714627062759673837812439769516129262869235758043985832983031877540513969461058752703155247253073564420448450362720553339453770639496872969497502338874783999847401255684188519818266362546609672789301061349028447276718519528825724094923093314477896255557055921433359812291284635068580805903253478448949806618343015334456467481542941458385763397296150249183972363501299037365609346978757240206537942268195706860901071213300552550024129124369999381298520579504097547471566076806873550660009023302840835758649869355443299574134055015246587350704763171854830794543516227965140623171577601458158179864888411110175685567612784340109878931520232192861855294736879634014742342480626997823452295834676011297160279457087954779122833143566354564745178250579563374391233367239743215733268301639162655754862707836725726798524789854896314835037171246889027650432277984185148552038710973070878271733598056463755446019832709015999518515030707155906497809653060298796565403394624931780753350870805818063981581787906030380017000749951665762246967184802889414467792607171889508715538856607287240521625058829317899200840374434977317965642103984418365897172898355825363908515175307673254635827887912908090854327621406639386033662992583479047105947008767630947988249795302090948828267390806037812460257541825665686415672144111114759447821329950999402868462325157482343192538058545502251784105319891610031409423685523748970772359498014879716071530894499136377134748071860594453001305431803180120650681645857048322457448915936463510999494268763663643025203510687998225025132577846805798251028391684085587658725564995380843042131732362328963058653951726532282748923083175800469424276779401513417633868119663266209137459204804828455793946834863912450055314961381515714240795622932398618508720122189305201853385230122006459880571533015849687101483564228318661065221622518396229112861731243246915369815100342932089278580608178958961770448328297706659596954407685091659522670968974859453561451465145275328814319943099335533746004638234771871411742518887019643013967454257532761247072738194688476625805334215912752006307102725014668031783475659512686419362355923454651202946135740110595001233619181845952773236107792057687002896455574251864253593422859680204283710228598710338815057075101139077889122242266708333597084474250134429908164025083073765315094202524497287666216371972999759701066551812822141062275382149462242395488405367158290045680963518439702234140225721927095751998118771012325258732829974370387820286981506371946335220696274170314296579597519367741456287027153524935747261349056728746815364837485019414753393104041113342487346781236164959070262232845923909468032812252309508449084815796013341145100013473517753637679306337464361482612602290743422504131186532143961501709520010105839815092301521868197054571287295469757095260718938529617848929170304313544919055944228663898110946499928789866961602450388968803895823558018538571025654645742391643374784442723811954038643110464865385060637651137497531191354340860408448617253424282029152053096494345414527350444476062572452719447797753094481923769793468951495469592661854143137817221821550293292985093650383913611269461391737750239379799008136372367379154247139514017917347747942518912098253630424846107226285758312035258176936895030558384088559135486821640323689202323542034444953718104656148660498319049609910735985935914657323405697002976399397914461381929573777522631675166513075800931279668567368393111444431345472941736816846787639795365119933655510724089759723914209446415769888171634167965447867223761023868189810831123145366845184215620873552172566158467695123270243091642125842758642959404889437635305153605902991000560488746175602827047937553887911783983386556261128435871314709892144384559089750874551561213331990155025302718243322057666710897901993678249907280974567909700591864089353719437879898979783370985205318871740622751984779215468354635714776460502178728029594163966861371149202140534732988137954084119382826651421407333684858141906903050284736753718514647286573013926756573518498884476573084293351237933730152887502087244950034287317542790550973422266056094667542507078570580204301203460444192583112386414031194843023438488626685943560375616929818339476540522053414763816044576524133760332783401062603074950123835809946775814867761953318994243229300899462572796201867412977567969453395386154955971724689689861998845213918761673991319754076793168833979411753136729085472522818865583580910427780799265143413252527241750385122424701505469876741369041155098393808409078129625277363133492466171629912013322479882096353918839685050089362089315742633520706181656347948777598398913382045686426219134261169245041993094474293707954203592704248204424060484235673128441009439163684680580544654823344356181317073462853925683158292753960101325966760510007621360959208180651171233262492457370232560652768362027484437727819916050506202025853439923456524248988853372163803386066325027997438116050791026648368297835743724359555549536143580388749810137216253475022516948325308161757238255744417635779617496211381262608488499534049041079583530389676939236886659799400148710999820822009261025849139924794358237707211987714889974699490820575079889186428466114775262903929277623765433869890164356982563854683820562245318897870946356911573809244699959110437193605811392643748908209400805433848517395480641211605639137092854969523426662039902849280155996365987916987766243620244203914147394501545456383709615925953193850486329511086497109696537496723794533824828124003886068890248750667946274860734591117000978346085270801743725460301809413533960688047921061949509101908090657647398607670104672478919873263317227523704011163376871969106551871952625083214396113158167904158524057736542527363723732711201321567330652619816098603258021977669454654965580727888937346990962468486748885359134255728248905428321474502136333877621982537775228863230175711763434750457024008271668331509393642389577800015136053669285787682520938273108948308025015674067404534441003517326423319105637379726548696408036118180511419566222797189816292513640524787897427378382210331767581480119701147262505063536649220282454407221813081223931637372001899543312756758098963275891377486143354882195352938149040701065309742224657272826273240585601527135851010987953868417114819780950172451637502124065779555600037399321161598603076169364826079886446715436484780674947238050240036482181419107605166821416858316621144770888290223221083384326904742426601263267227097795053690713949577418680759689506259561928125014614817031123504869631477102583928209641864999976081916227944192707766258494537609973742355578102173391569840733718776117033751304839675368393772749962288084404378493491354703002217672452394225532852831666418527459223947742522665061306437598304733177322301882339861984685106614599530785828035233855133337627129578917341778939728575799676030919078605076919296081811224419337876886120963959373886495980497771645248190478641993645035665474669387523017824457833553864814531234837181465174861648430406725927739254974249616653462339929265014926592180808708013626944464911034939601206724000234260568380645989370010126194749534587403694457789050531152463196446086839907146670058782146494756435945817409535822502566035456734720568677378693542051721946802372920258656875391858201175830813283835915474594005135104127479651484542905936096534123732931881393566938263445591222246617058301003254711594027244566318081028515398419444628839912685990853130583979272822918134777648188474018499693705011142166568548700314858386352443192925751819785298916938174829416404563159253683304560978500041123160860811736192600844163682564757593069069056437240060082494625701773062750188097394916313149408643208457530523188847055624997211433534649777560861532446294456301909832053080455373884937841090585860472786420331980175901668838133322890808108347330152497300171623007684975292906718204177183206283147558871199789029250081992906872578954370348205168839480227833169237580475244993082620296716843398082414098019381235225852392843529118612922800925449835741615888362635618677388025530809515144101209711944893919766836059661859061369413627515425104332347707845572545546208841134118024819344994917331680870887239344070664510085861255363983567614572708880197870115069280842703846429711072841724901040156548281217914408235171523278552505065336388902696633553721302573505985079847559413840481242249348657653234093198084204354456924625467025863861961321108502193208832549482082698793522573355702887764882314066961623565020528192350020720542130734073119117276805733368477017996282019752640158008168839813819241862816754379910809007494723743326080846217281690351791412704101263944864679285952772215586197516986153462389853830720140624097995161631399609739087449272100382804971979677084550812559124462050539988956200970859163527694413014751815844931472491354635134108226649543496903528466050005369235452045309581857522784776001969697119393572972276260480085348585663698122893806713623309493968664055017046763148628227322430207661006746774960125129331330226884179097691000445688354987544197678577262726775404325512518240187585950115868479441736994488205379814743691467919660828476383807917731791542016154431116828437091203863685202416710281705373485695945474299848584428230973346198349103146414594653735790223051101074636326559472671690418515231628510423756729313025766177019298865477552050461823611859489030905386956984403624011420780646438163192452344645159301554432985894880253249142929369960579933046254972661693453497262527312826174879278062095288362185945707222461548669510822062346819743894553849611637693161800972944019310740913250544572530510981643884194788115585195526072016045074986660324957092004525982423685414748577846022920719681661602728937911339561745775166598285361838910326395695240303088495874417048772985089802041205762381704679810740828801850731941875268315645942262192897686876453160757313372618667002000647237970508106602473290317886497629462059515810151811859156512822527813583876001073722609631674392842014375881814082557672891817748820909645189728616558755776569527573455774897306614195482772692042604437422976648241164667407523264095419888759003745132189913169833467490375303979217547972874342262264346893424156656743540894540446709615061060479637633948086118814244902345279781066321596729872295428754121827744951798070386792500018056174053107773581943499393412380570639379441272718420667015147409186565975972544621564533415230145837475741004694228478337459547165126584048370982514403368469848142115803143221595613361559095463722114900749543958053746627462630605163302592534824970418166799521588862538054311658020811998841451191535621243805329813274741830646115896526162193403628674955420145648135961766485005734398943528357305229926745040666281782714500023956988018050062537836480879199852524928458865720850486335165093081071730582860098180239680814404556728411171122823812099834512645106881195565176584165935906927124781453439538760357722632036603306329511740601142051441058566517245234998292500520987941305567466588688474146906765893477829595949859822057489350887497216655666265325728741840769351630037890587534649266377166855456214361272532437851508850374003928467239020661118903510926354896983036520449072265942939626828195963032215498118362619553085987053822978817182646388628686071448111153432856058383003276686668859556811186854769206508019223790178761814552046986227523053072803581682296291572586668677129951124800678305099139095589083678504401606674154948223844769544775444613251275657149250358277521963674097405218111470601681460583653883998324563897228667597171134444265434634734418448754958303377200493916659473616528321720732429539767546607391203091312672606095166284326219906986654175353001338096688017066105941075966392217990201011675836827974335931848172782226040027039001877214730729276313424283952719103650363609591036794230192038964180255394951612213522760484759678440536166128398902909045375051357303193618600151701024323199194985116625823921801666084834817229959522164458851385525787105908439381692874141069718636608193993289070533542284155417951491207597978290759654920000106568328602160457096446916652980498807112300338155728327943133016906526841490185652619872836364605920839150469015676296353260818081692641968071850024832931539480379098204474518977462687466328583702356597454231630266238385615444044969353767021684125489937138042101326704806335492848039207634431267075054255137986276594053768930488888055252770121113402939554335999433810953854268689200307000700661017665273761539129782676398462244390155396753254134817395150105232715845025180116164913205290413436821559808164641691817651612295648016655287699294723209319818867360656749282838743068280230365139926962578330219109451169493350299782522245226801644213719119636779482898633039392651684082716957904583535473168887500860703686024629352214848234139141198766700728440736999950415444033647981727443049183280595985706071556066119698850206891123681264061733970196784400396801229124961364453298693991174833973991088009514132606900149028554724408718345201486856104377537395817147831459298820691378218123228020239526102490677549159456948495665794538889014472233298993994320947382773423553295133572291826773323832643557056427303044952575697366623716121255995533166692074027528256252655511847553097948966198662980352824034989074818961687673490847865280759177706973719182934850196261507911952768902631569620418458123145586043732168199340319638435686290284723630347099137244255842767506021377468882830232611513460709744348011404733644612831397346966388025398481003555307969904304483114035816141971432740032377655355685218669578673521658026116984842603104527466768448664246668344896186435419184687920964534987284418542940279567587120933070389490745403125314588181450516279919763855300576596470784701591960925330499848410493087413458340946016852024678061077775548475784239959405073772884748007638245008381926006108142131512557953778455316853073452096729215257932578841982274828991170033000734829402226865107784239029526451532392435762365128337040339268877511387097809863883118253553442928604930944564577348294290328594437405039077950261557960132141930934982298321136255507272721582929043886491644379577600017684682829156165172942594465137661957688310780161461811263711544216642781315216645593945001255763643841234406310576507651135798259225792526787691430505740118341656294226612132084754858350790905749076071902725207076936605501288563093845763774085626081180394973768780141764266814778903667766264275451075434266949697993373859064257650641924587363572156879292335389475697607011018645828699209705113123344860293435507290422666737628209051808598892362596938383895902755988766019110208907150270718117842978461915475241710270728844648312098737117790438142891049020439727167987547091585871321926223481704576254126622094861310644028750087802122402874159004303931306357845091826455612958913701859170267502991846183075902051866619712615106206953461362807948588521383613847868487690749473681777758278772030190502372769764106646196605266638743159139548321517144310542745517173736799849300209935875380265538557520081465309744974163756272482639657217217217872217723577593939771753412208251122925112754044876971218618545907196603620400868289154141296717496233530284301056424986156912940384057937565332262626065786080161189049136895752276840547407031237452137440928995058640105982372064737965725421471926002541581100773730304041462766244757319788663066838300337378393588906849112813339589892319728772382794418038084941753764026224361962801961975142094657964368707826776760644506162795461366922029290610513700355150763486639826136994228580520033514290613244095314439852851933042351970763650714317477990759866857682412005464263286021237272844528514196305459785493605273076179638218009353426523954052261899943424474292154439292099139249532128813034801526060833749360586735003857854447323008017556356003554160306618462222051464091450547406775146682470099022291924443855048148039358098007697992251952861471640421907473091682543482778487099697766099968274257301707762174247246455505864866551397301870002381432502120563775604404006977891385969291525558565075272819326674057255085782525257562382756678902360159964440775684566959357438999828217280738328841804928079427492619640436744323120027734325319454249496056676977766839696632725039789163545463207146118759586652406192021692643695124925692957458051114364637862973596154150187383998849007616046439385251696705246681339697355161480749195799073983982588291565279829727880006323603399085150804777591377187647927898563339660249551758858586899725191009780816448086082506825272918110040891145822073548593935208138583863609181698819758389348462931204624543907333317750325460510251044719409883723366029809103723135675653893344723559000177464443931062245145450098474603207544658168329181812769086758314796314227832032272905245498705232392924677413199270041008088975328214472178206095327159041597459232037881591774710388153086499878684261408201577334856729559872510336292455493096735567379706270566241249203721012723805376850716342415801924159756323037745064287361097871619701881175071707366529773485835796955593505417055320675093632637652366962691115509804664147214265625640903842820926357378685479788132859548285039945603084341715266994581480298048996014453815905298796651735122383469713151598667859033041601766107077161778514423217332644050447715366731357696478506967297236655016963323614593465543041100906587081092464790098457640585464889989240483999039634178621976222839705332070728715161465242788021987514522739464940832612933681272488190826371745962366384772813030783452084248019457867764215707493474708301609898147849425369590502402438301582588031758724121833691857889174465761563337711628192907178475486281727059222143513807423644016801049672740198177627419907131008989308239205621546186846351601446606309133365014232678038739949064966825849370764997197486174248851448183660162494683005356222951233003943630739836351460671575443035547591991406287369519871583800055727363875444214540325805221325070250372980818072398024234093505295812455929883731929762695247082158494803571525555080077984528028947105810407958571610000739277403465438946138691564352328929145724751804801311921230850672819824808459204403394737145188437467717824013515615225187249719116993145626187706412869877477928111773752983294478035426550856560378118428791585843889151000883593197543846192891154504024893446705174797150277116678082442329572483871506993767601171984973434778722208937485725389537151184811501100028669439291143408414324180835793343036115421205417098847520208651304582040137950848049764184041283115021930040897521596854800362757436235592482056972398113521118199230901949439935657420890996046834946619465803750427008654159082102146910470011025156045086342074764231577908900378340770397684400358174864138851203091327944834586911363572893621768710011843737190755590068400101131473471881254040709920117069582821189746434310006803093041721354096141690916838377236807886352980726791837882139850053172567659667452569932391108644128267345396611946311562848651368802469274327306432607949574965239019146481282595511156105121628937798949841529787455928140734625753125708473553963435164507811211819419781532512288981845708027628511071201304576428082333937410057068791941677825326010412869498822137815447950276913538564686142384274046562095565914152246157536519292896548036238032581724676775049423190338888780296336166122777257522688935721747924358404722893612954700158132318384991518927948219073183782942792865229019592535599744869647925199414214211695112564434192426197961553440324340560456406277516453507330251317084531265959177144045216446511517083717404420650582492852942217448668586866263741878993064617361455416503896716620021374817726856695123266769820754039894689532604692921830786265874659780626989928514700437190390645132251702829639317004121009070375248584985076543714635037159027764327016531694857143076636816766893800744522397717793196815133787888137677870191939030578716521449580440248244314478409716657313170959798815372841649264674154176813640295834438979618040000238054898129656727952508891196593112837086988767600400469135591556514495442960667811037291037010070379687625517115602165570692697948242459995266571180485563175365255744461757937907619443371092692246921702618125001116361233758557952786562965722567709260998917015057079463956951528975304919010111907013059744864988580231466162249658296163530277015245183310416734392708955599279296860078809230465192779718301335802351671131451266973424205023381008775987194078078689705385711671236344123255496910773000523361081935213498074689984078087750941604249411516157502417050547695037649788947181624481588122744885370862361889773102564139058926033386018380019259508856396546634540330859613000232787439030935204508715436893491698984209655798249513014426448820146525142335354585725260533659854198249085960686821036194197658997474521292402368540218419565385338365198585503799407921723352893497282055006240670477538984781586545106138649794062842746403452110699916279651016326498103841719278223375244192453057887969933456890307855588344045704511101001090035771685473515873624189284263620955194632658453564236238514225534142850097726654785758020353219414713668623012924573999254092391152234255703962050296077799097894829031653886307759027566087080634729024011760857070569414537415577636866636110505328543464118655159956564723778212132964814834956194475739441642136117783915263314559170820207760674206880197634778496093914615584400779543185564624202665679633632184756751037709043820267749960551431627258943007568328713952698037310340847819254364585729059156782837465140542837185737050155080920327956136291945023086596171244896967245542211613965411356213714572153377612960948292160825484746662314187397533049422521978312959852751307636440004522842937824242104582657511524519920868511378341056027884436478417704964758658467769795166498073509361549579243423588837749071805581224996679420519040813376852157613746408176007392898356266412280097607142804290300167271273148678834445102665115000282047966631266600805317923973154804251088519540782221693321547086066034985590153962374104672110814551412698321354411171416568157986212613446011859685805379803220206421565658583329572777852941971513435410803446325947124717277921490195473203115230754835074602834638264013306821768540207072853638449142516041855741640840296902356974224035929734263165226423172517282824699243132226010129268740081132587525714736560509835289354202619801077536204360033085460303455335169417766046938788580251538695428817822110750464943833023354605217611372241354710245911618552490917925807292834316279397327251269529281613334415820725233438276831407798227248378827688163293007013195087938590534117367392110616861462813926672729307418223034447165533203467288813461653103993353955174144220994311228236836869873446934652165337661717860025625066433258407893466660261814643128067493508549877466329492421853850131290856830727918046679885914349396214908089246876756626238875963100318039567779978545476643800751730285688563374988786676503515428474496545539745620329852262798102954817419938677247995701705800787314844073439480473487618405740755288794681371022879248794482248755849577375528568008409201085378825998198930793582390613711554647134294614279929570540670121173870342966671717390553500832108955738423111040187719577904802694135071429615709501709580995847289131428196900305730060218695794437986802924800557425731094982563401601550937481555096239992657364090374207346641448059392503861643978302026991529063521466541253761140874860732667104588707430995314910588752355816664955357136223540582562281698579876739630036817888094281763295718611993848479207271149894281478980738607946249464445052835292516948840404453261045158064848269661677142530819759021035589452919792224752988546468648322413420924366662033444637343293383517455570023321260110001302686526424155790840581744033865696586031231454897115693989769461454616805871317809753497983965632373202949042521199854984621250375427642297295805669119668812619670765571465904492735733213940057569241998613844767905648301813240551532649272548335215577328974903829983642489137106446734606465289782978395644191260799731937064864003237929659337954711077879906377069623628389111928055596637997188009652043800038419004350728267292347190509159332716075077061374470244345506194940437147965121330567080048442801822532627381532623777988174420496170752176133547503677062116148079142248798887957194934594753973782428934937502114301998829027261571251484102885982112627290935912863339509089473397603029462588355381483362320319203524035261493616317795064224351964296527606974958926916150756145270213165810320005417276904044505475416689106073729316542965062886207528298919138290576720821851224484208883292533776741209556637811099078935335250960843700385061843809497454173429310483361518741684912402542082665238827665418611335609262417761092327731386764832432759626096503863050349794698726579491871505954784030738901200056428531277460506480814166154604927673329393427802500329943042499103781616659639196965780150382487241450080639374885404621390287201461945885633806670356533523083160470642326680015281120297599309514595637147508277927727360822383117543157724985139282181806820591737400797857128798090559182422712517778014581575112457940049823398317131288590564146572378697372659875673003215708442489189700959271449682186857112568484652894333441958715028556037782096505311531709569725173732257815525980932023021122714246816020236577021884687778319583957947671465568848967294535037168724518811208969578635876402389270615696287188458380683020244577420787827420590497983850150380113074122231759076249107267069405131489529681735930334208336109621372709016830341492668271540030597846495681812259344183687573361245015007043285541048160257793040599309389810341435506955948958996272126793416325557330331511160064007637359151099767546657723351111694274513058280443561601264828148775128972240918700335530452514792441154772072303629724019836364023017595329957434405295661808899537342043723032254126553750314453980752479651556497246652965362493025308164854991566301076742897186217222308063303071839309098780583728454768881698196996716772889517422431388957791808383073432355974563851521934629215893564761746220311308485947346714143340314781685685079702752143995431362874645818770213445373187883140923291736889996544152534866758419820952191342192549338410274881076745857090698021372457357395474914742509384242185399639983094337478634895935677766873486166627676954776731354265034246402764566973671785619040071790752239121754484922088252459020550528042797216881673557745998780245128456565603132865995004175756813772638411438404260510960444479980908722783175118543776529267525413429061611777799390643759731191877339883816615714541851459482075619435005573048194282196450091506188072299387841555471029738768478757260584439339016708099757653778152819080602378906654105085926144085162912619688389496307382788144966794499484209493350371808430562253830964885084978749259706001699714068723072679243821392777863180107430695622468286362071625820528029881185520756249820179157306810645068974783421839721506962267403833209806142728267509983280439511810362860945155231039230272477124358028145716486040927769833435780514545157976374628507718933195136768603930936220296405883369017484075260006767888504766289576221991970235255620143976059793865518208428989370197496504023716576527996274733034547426462458489901095586107443300345529071076185144568860554831971976656559414283812550837732772405859375456432860867783885964756729064518179183770173768654043018721844008763849087421145110498678863845698625283239290512831603243065249467421380988887277223716296398343868045499139074957961526260799150552261934728579260455716053014392661866506723901645099084493064484287890907042739208881958051921673095836199651144892252511270076420632385953762261062767814680218637580773696202737531146302961920763946579670470529096207098949143299652512314220049406488166477725246505396960045952517059229427965916128887815671445287066192298758028571493419520605227092122924071995800180740906516485546557724285667782052127297370505320225547376929987506722226586496536105268769882994537553017279321512595830924289730544768487330650197446066301175790638276186057653015610521540130973479339936092023762788539565093758757428567646320408762802296292669232653111964819739046124409646347508612437948847675782004713684363452269162169443977883329376179064043689387678626647696574943954763835030176159739162287358769962268163072550975607952179184457611172717088717015053505138142310451098811729029197860913880914390521444552938412269050330241518799590457518678280633018879688784149596518654931696996583921366435234908712356216554161841135021779284739253668159163568328888343408330795862414560054264145012511918191090920749512316759376404711540054728876755758627374455727715026200841119767548806752475563257074840699265422538015319200639134866732962904868616263120134362152240517647715468616769661230974325053921386150552739488906610046517090752342193280874598310154557985740539871006980060912411823154742554876596782492948929559596305213841449790263247143657469004213137389979368735550540103843485346940400169196541775892861540959030319669523286600772338056345724942899101817238570094260281245428787430174879933317740692179283597036935133920833755453462908562594291090441171665801492758055674841791181431247105062186744066894862534238850137983897071813863611519312822744303728937417898527221181381719210265164571058587801994235556344863450949710341531248998171218822261393136956059863286808693443058170718028029035950134222812059428448509097050602435362302762603362189791202274805146398304053929345720511457583964160025272875629194768471940433650832489984569359048065026218911856406163765170968369740948419608101608287017677013561238842155234969169349691749938039205087109512679320570924605870298611261757682812913755530935650205899003256793674045094804133739970069315283355982722655805596953114031293361283375611775401296036649046994172614808877539830137225012064613814578428811568894518791419755572914431296891677424928068303271685451678064553159476789237942870621163403621045750002770437182871033754842437334863089119936107528997968326700168302118638709793981714302301347036762595519840333674612652808019000634854368615027247934623298370965249505260531606349796373253900283407099791332989858500428538811726644660520966333864679015124913261737709229324323045077044431109391379428356131427174890667105475701201027532108428764567140927614134077681270627318583487648446066987228320728308248107669050366335981073614671739920720813118539181213749475885034146077453693833001168515878262762750843654987724050140095084468341522016943814607206376779017236252985525548601289712575339356260823944719205637394002701119738207800878679806533547557770221320033774410701666431978937513753750139931959114661859547294237438270329987385418082921023554065833716906241513611509337457651441877887259374375233542745426560515288344642167556607477758789527101990805088566614146005295320682965088234743947111496459235323064996937719233762466714743682184937563167144020902973523013063192381266678350369752983762443503042910423776633420270097288741584748136555529676578528391136837948178522376715402972836254388019979664622196046528344622495731562451973204022859548793350735324965926622814143483930468250613774561502080046811710522739452843509668597742740243675454897379608947219308510392642806846614656755554369823366254446464004640270408362404871081053192732641941051044933098301257319272508080095998290155863449210543878435669278547081596438251359540514565207375505446972344143511385450312782021930722780688622867702336445374663116595123269789135262128411909297733371651012719709321673222088557611569734748842107852692594120540606066418723763157362983772484578949422421817959351621746589879965475462432624781649607913402855566651568873805697577759609519080508746287171349786036608186817094774230803085173522266301806339383959137813688485734536697467639419864266595527936022594739979548379987266055722923250482276697635230176238953570879667664741698862631840093545627715783126256521525323814782335862143628993630983469013558314493620300738960650120942932437040230109021494416317124663062869046256266147633897718694370147709150126388172364322057099400260348078359392656941210337529424024477870522943665744891701210609849426508161475258494591521005831784686112099357322872094949688258053253392182433052014131338977261431137554205889354527765491870397455700623494053588138854562400594055115407766488914263416996704100999298361861264782381848713244258544366176758623298752047394909884581329896344954185176600846718817332909500015945217129419215561634586281361309485538356925157482744689371101880337773014719933533604836967463282209354092745290878045613492704086728830156223897376034200088460386354996996263735869427172027337095296383143277490734455776353640292829963684276062245590459829867418138767318199411225429429195376343987621105623048723167481961801356479035263309655906167218290327372555232812391061895511886908456079382612358300555385103091454462016910679220150025495907117438810951671533074116239566591793292693992998240545822530336805264548119685369427314434546785887375077270684757288324902656569623255133447643728881241401553979532791610172377315217787084953574224704961981039254479750650812158724394482016520553588447245284751213138004246604667038928934663279908125194128004477589468836029316782174291778891552585942224580309687834350698494683585364671437630408249475611003378808108597870907090136187123221076529999464975959854299694080174130986142935320289156253045757045821200485121722405386620157568396452290404367517012840686551639958169900297364082498757960189255714679130401227205342344769865876347262464953947877983642229962673569520760991903233172958970940412816930043648108628917427168370671626355201977570378990806481499627195434461486542342109634266110333830208862146639460666215616298454904381530090263144382158105191769163589602001443178770030955866910836594777149492191869796662752939578940979711748562271035951187185323742247791272423715941091046486733553412180646934132497785430902540382489821745791812945135698506212903667588613666126302194918852851941684557805229313810208059795534797247300988453647542727556719159829771039352475557688200463286732834597045534768840163482143555278908626250740920752281376923470200745650743005640569231374653427225128870007806033069335658742363467143149799649672026998577231010202858588430813204779698006621124323457881750980098258928962291334058803243509458210604430171742258966939549605862423324233271965535543316477276354039366305363421757275172034381246761872957030197896973232333814671304827510997143367068842191847498951177167786045331261283593421805724024142323341396406361764405825811814570545629329300431228546739988336452224962592545384314910305122532898852539309931021823422076343934127021447084135632640327632476903795788595357071038205955685890079092289878915247749410368657173811807435075409516423320401861867062951627572862536455464229105044851974847789600683029326038727591512564865653973243076194334604146899938697469585757550115420347514024253416286584809953368979609563273984108540844081899999104746394478653802323959645696008861519494476285589867277047235962627847293057969550625531202628758970136661820042088851988551307048263731177573334083022410272108579727616610813337509034665985482064841910860739206119748726123125179006137473873817947518875561199940663407327596263803277139387909768737233614767876422200592289916541575200569491946825704698827222799007772005081914407811960400836530491733639067349228699808202870086352280249695255313095094305904962590951024785520712049627634038365104022240719930034566243269528495747217850602215428014087607996468150201249379100605074622154413045367049683008121063758479675436914893831431959211755320734194292901205603170609747869190747786298281851663867501497863990210765187589469400998810589496376361968976977570255193435362044050389490442377075809215804688978348815009776156007845296239173969144553971909334566118487083572866860703755870870355213444334784185771428091020135016754814088407605445875089017073666560489778120780100775970495453526594300212761344334459375580452320335130377622890077080126745095987519138942655076266858359369766647602117847917037577964409628024601925760096069139692841011652588729251554344462267241778699612217903974795149201903725987773501857777110756245116222212064986936290576021541626569070675512285962848328036614030037339435215006057827939452241338697799965190969684485609326143056370274008996683284640476130072057141729570489730035669732106251518503297491114760400340027584792596543439939700229300907478845343226653278201140276748620077612053175107943817902880166123709793520398708587146432939563623256004481806271098430667771465785764968265482904697132244020443207218960882921663199092780828758048635166867201705776252543327758506618481055838995803784242125330078376036070075113891788841993556712166342820523922269922729019241990643448199642461727892668150190066831775326381446304511855680282897552191333191232215777046530347639317902394941012166216993465740540480194267012679143284570560166138319345188512661864697022600903895751426436246864861631208166539035445341229442319156164242301837444728138940418057550246232356562552772448803111999881606854534602495243033081610248287642039580398641059004089269882849683353257170337509171379890066306761495217500287730318183689973839730554065472754933925469407054900549141618986666010658441159396449645960512971463214147900943012182269452409067502529074001886194144164777782698417840238503372340110377900046709177717862913706635253758179897690243872465845281494848218384340555503243296733592293037912625679924141614917971439111118295448223139598226605617689804471277756455941297586130576427957624334607292787204771604175744618976793302306046213980798617871679224012875288472532804752821884394407690347156693078066992433251676441283653390419570540686264556064292483279130833299055400552648397637538534388564644974983672345321270300791803734145395681236978041384402763050015049540176830612415062171249290884107720198436336039093387778939264857234778095770678038250923574204564152289747998033408679735085600905261281967552428669892714022081728598662654076513375592971817537461025147047098109657054349011618259977408363854887770847400845053079166740366379677813376013268456457839325516583672013780427338342331764454523945010083397370084730766452057563664176213189832944447583226173786500116500086869333836451497686557686628868265770395610697048878495637442073999149004138829204679570180549670260572109020076263068370408727679866789915131740721499146307668363198072646228207603897653414257744563229427999912411895011406266334241505416984890732619588341822881088383148233422162237184088513429556968325194175143795843289318885858667607184424149547909914090163475812669069168323236632311931772709439412272769389537174746541908395852479308017539436365763730172494233468020073871547951603131874535247723496189179352911194537517708132788435814006069690952316233078370596172099596642042066182339388397829828320471299400617225664084322494611589434116860936806869305213149247626460045804832238960892896739863091802655234804990783402706397568711745620659037023025995770913181421630637634614738266865720966522663225805505965525453703321715095147646672967042097915402995485630458013622761329830049556204780651218775284458634733155340251887492908664417063122116017091703791413350532149945186933946746140541891704115549829373054181864434998212837882571648914503146248260748069956037835912860509669615344565381669652384451612737943023770531147291491881057990148828823430827238337208693281695593512778387573521150739256652798756885051267402177733757632577077540578666366242681819977869724250077252726072243514170524151436468356014174341239730061806475183155056928404648965364605766294214232181852984165766745032566449156569480090108253518517174286131265186964576334690702293075131731330195314299151647216206601303541318911038152554359302941686307427760828611508343399987132229624184887155148764592414113515144353286673094153746028426209713248813166911449600406035770347310163796043983605771564836554517887346137668949352063258410919355417716322090213559618268579247122537783946898566641034612956853484586014538480673612992352881478095852939968836914833176184491861835198736887844184005459918372553172385354000453093671752275874264045952635922521652437209756439944321017186313530300924796319325751315286774177800429492556480804912294365499854087840657271532066844333130803314568671012694861591830550969282785975791095550982656756189787713643771951753427150270173358637459754560776864986053528089609027975159563305742325872143453767560418965484991502952058779912559921757759146738569288111331745003231446135733540318368376436748879424591125895781610460829732720395389835947217585495700305448560569344732742611343684166220994369766472041144696605387167116537237093729385179877212327055243382444410676828535458794577739421849131269133644504019754713034780332660380237614624654396129210700389838998412927892754211149512256411964005750376808394823858226262656166769173067193297965469739928099769745148145823786645257477063815058353328311679080902253643267778696331784199182757839858711199442593746354550016109681184510857200936555758367301181233534529265794951629449630817410007323715459380330790135882991087223887244710451434408397381694414765194554156804855327606024756019104204798777676978025653883571338222499556388531931181135973857168084295755675615484425790509285636937276165667691182977361434368962144616833822284984535395990490539151458559223303153962292735233754675545572720530213776677133760229087231307890413753059205883819840536322571491985449310038180130374328769522125779761522870616174239520904897461925475065340117451550754817778527560823675345452197583322902230760774382578951877523890536238497556999187545438341131861249132410641300285271119394757381353109016938005877786810252575118397294371103493495549566830320337446610094576360111197430679255176140070266237494809253741304570544362999502458630903107890245936903330441875698177099444728613282442155715513205128433351750657988468753417800896511767436932583005243015511032028099454177096775468465589528889874554968836660265104555441032586931822601217952395423997125203610992043078338631164181172120365011427509626690835452029047217256052248679647842269643600633514003348632688155958294830132001226859005523496250389047800530626568654162635095164456591824200742042324097966774444843958535872084376242938042391717126836612465675655468885190000950590766522262847158869536492562867441633179932475320808387230805304897455127994216603067732659038613921108164111371462953282430717858206359188492498753155707788459770831650500815577775429326124773430781602813628928816185211925297743939953069220154267862703967909059612871757540647831460364069663542561289611658214923853442228743244422970289783239715300183893333613624972648887006114092978603885340212933580575005360830090114722240966540347346409625940342784926252345851467016667751210777973727175904744413714072800063202303338632725148428020450968124508561800511103763130072954580225560794782719269072373023949881865858990902531360019155284514762496911718319993942296591056609247011967899357325867245847162140717304224751843146533015253327892505501063735772770850043761638713999773479330801168353396695309246773023867851190224301119357699548976511505622376804937780547794559342994136591921167664177783777203753778537894685142090028577676826470619454834854472209212442292957688569818375815673258174732218889609847720758677648922701655449642691404733940469003027362003877680244541395144349794449593327727523140364083826169038572475030093171250661212100648542514395493217752379375162964890728899866308853257856954622694736466532892978611147380051585209096178680409957286820269947293333617168275708702409769427636908275952442841355115146496049142176549882357689025961175458541980521981612839703691283422166292320174412496435940650838376755311660143297255925734935873364043557872238316760558268192643031843626993335443025293923068758289033028250556266365490852224174572073465728215390142079099361562640470828168287904987559528249958844695822022228881016750483959619742197989026626971841783842357410438630009471888907294320835258684254611863007158705473979288600388663388585348383428331901111010920704219474757468935947105365259423042229294008866139752063395099042443352606679957597977044314437835557302200540422565935634410822105309122607178948080010796670646474722497688719888190209778949766256733447201683682692322544956285129608413415898361629782769778731537967637748676021075585503733266953274876015043967638754081146542152683346060932580409234030490274546814069001233344733530940072769074586230744355733427151457639457762292714564457711941304942370689330125680804468355555114783681715416671566957867721482245086915042022709320023164778616437794039034944679478499082153399329392330797899880429175124790357686513879649201279313329882917390545226991419444094127596667760585639738603474272351855742503504638662200076344741409002696478146371904968505536560440459077232715992844498286520642958000587579438704877315369267685182542651033264164550442348016180005327814266680081450649355897940507579895215588224528865195771938148688741512928483965954265792978935527376530131562096003160537558227653771926820618226241189821463882644774594539307587017594813867798529515612299096995930497300574598310026848433932487804930967750183945360263713381777865247690957667037766668553537232512558255703336981991162517551129840830822436320261272967393772625520752390397885077173912179018467256270282293994510042365600307951723271662801489935909865656908665513368971544681172490400862350820388780145515738508306005339802187718823588462783119864100203443856194592088134222942264950920042481725146077724816110836618614522620543802116920060791949357790559068944968767677965543635115321095839688842426998958931539525193801056146606425787086237516873755200791067905513951387698364965725576112842633469870796330481774173185621523436926717152479812452275795236724682177667609170968234769638701536821412763584290699112941388908903246197699903365017124585642066863855437468004038315199493031141090246100370361759045341150297597876192260883961636590424739789255610047391488848424298888919926925895109998738498599957922823947813063159914169261434981492565378285804145419635548722800899348474901801172997128318722006632327021460938449070118276582892556434248698056052168243655106265754669474446770848867754814842730922127204874772714399645438920724269520545192841979820624767858696107992641029276461057030753342243474307960447180257793246330617406822899121132176747134960127275126880547490563951566147649105773037555242010400946181148290519816152774521795373493520285581908740562601533337775470122988852150999265501511997340150843522307740762581744024656964030696865888777278878402325602154073166341992657286246623950226892602644431816152146356667503535010839775708115230218840397951549594872469615914691564458606177142354197865308605471962105981823686245472829722105500163433471016938808006118496750366688743443769268048681720731825574216181175111716290310719124747292609588861161874869487846465884852606983337256908426828057197165127210736889986872695634325990302225107414565221512924481998087888614945709040038033585133634681095421135581952047374876502959559182979832619503720129174107574928963060342275855600235166875864083447185570772573131469031872088030857124101021576897315093164286632324966916113075759627907110366187552649696418683369089572170313314380823025983840288322750998169155007876646603565475088191452176543552766422516193750589022408692715537144242820760516214984816985857766276822500023657741710232066793547986984735191260141308284052491251034894796716142471077465889846371843572427712021793028306998856726483388174191131721260625264404554555929401609870457854255533196317205911383168050386984236827174564785410345275560788092972760910597425293799175387322171826665142897804250758987824531892897168859699353799872362947454469273250233573274193322274485750264147794132800150451324471365609315285794935695846348790388088289442086384203428136906176670140897900137624870479605381764686241462323226710741094972358234701467602115960553130136854682245255241922681756110252361098632454686484299314084561452567732790856481714535093301539968123624362048209235434227101261986906839955286577937221655211757616306814307385131546255303838598186555584658986059887072728818316327279092657802055834552609707565015615553028529515890261278198771716865354576833305887995742185996200950308203893849418081684817001767003052060848032227382617310271728585256854830640911258944817240847066907456816176558496824449616893679440702607919279299524029974934939673859421241318639891761885905888069610495887966790995232892155566104767206398053800799961036371870244714842110119316705701623793035372479851311194936771564004121517240383579193815913626743197901846377902564978882907938544808725940732247138309635130655410009491261918553121315834975754971777918988375351846167155082980300516258632633187882038041877132525538486979781988405545884377952184367975820043844538903147459722232110868328749236776190184732906384348698841013266195090966970572771225331899347643606040421955186735371194964481320255140459059697816016989247229602658033828492415016614098284943110311527505389223099629997955920481098225432841969684744284655418209257343349343459777763429174830913842266250491443480875967835723959030502068534984451286982404639831427696463278826476480558855588644371250081891120783918487841807727047088538138279822864922056256568255584834275691182641387927498498083777180240809968461707166569214821951484919457041105066716693555883471039100740142284194923367426612066581998256694027004737027084692599919169008557090553124476858641558671646429624092650296900486240969197466864950302046819778652651307817441538862244898602749374167785559562413591053889773572306532795278444908736559413124583005821121246772841163903185836691031368225623458733474196108268861649574095442961157287588010623749150837296957171988436506325209652441447223175061388404136422981512048906252404198291627008042172270539294884185813660789447418955996001465115132635086958234367722635864270146722296941610432889901197973606884961997395552080865161207665792222818423171597440298017375923168407929834422634557863392574822330105729410910659557706224259042800012932508922359654782904062879643745078774575932476409076443096826903743928205423022562360768730840574619986817853085503852356575935567396806318906253773466084556856495540582170750879817024403775006280394888566471085241448993357602825426106081621984936004964442297141573546088528140560747177576138032098370485464336543346527169918546097209428586867433780992399770327525404654701841916596692793109899764619900531549439658178330046737568959157504052141116780034630909561932993379017158699405750793522947064790402303440136974695531316749221398108424007330105126655788108387636714104460577007036717084278313725114653184830048715684721064077155794427109834088771272336668626473796717201251804283089130118455688635268703344390225444658234346861627858195819523631162826519687405665199976001043155475973306225255716322715946315405260590933477873402802052823195244493608638272993525935158213951221351030089865995366520992628527218586405987550061892319924524015965430623533502095829697791796380583545138327538307564641011040279086338386529287273410473201208583195690330465820422943216799802267720485917450766369287714270585056301187939473738508947910203874198073336888415716435935044796136167445374812243660131551423367748418069181070155068159492970139397985254463921986606393641623291260015388661953490766281119112831359179286760533539808529155922234107843353920898179445319616106398086387777839396905591388868956090165057098655092146218831689110072955368801009074752995927763202436972542399891548424315593463943112409928997049030900392295526099100637828445260011063833058290132444707248925142860681724513765552293307655828282505103295198700480856261454166570788386580891564707451646343679040461112608923445145503570867020601575651291394329184762070739556433094002078886194614074658541373195102561566594676821936985080930781553052448142039892385683794136356625666324306725159147463204194047906771692700319826205771700592707338909005421782920300607351506896355034250062245720202269007323623303297231386492866010429447684774845523899287780957414494948206934756492433151351858815349868282211570314352417085124295430318050427277074929574029861366670207497849087753494091014075428150991804931289917718077993649036024730868193828659571288336035002408972480130337220083620034399468102835916706418578338539246818430939305844506663011809248359415923409400784657576362815975019073796260841833981302809717542243547065255604322578833759330718196950642658122239725183336154684175174787071743170310940122378502868627321938741498989955186020234412518893257743744459486325054965076597374708329807768163740158923208389249305212741474724897270802225279749235719346992808423041231636491290989942445142561013072167564665494750645029499201190178402675404689044789331316924416926712136308564887630214016587843478570797086306335906437756971330450855908945832834055244801444539078792961285981410801449135347471090312781977353344306549933785161470739846326840521586205745446676783900372536290224407109255107987483709691843230947410049538913722219850575811712256183505159919045894925283560697069791741084815228411547979743453790105373372129278050362483664631564658368537176022183221046266872293554700474060595149355060757774325078024205070400461689708152944189337802258506007042865722838090374710793662863642282935081141865180742577009919517709473948459522488750188484265265424612158468764845727415224215325764243875851962675339960863661675580342395350463144714496338667019004004949146320539981190445791488592005647863134563978427882685738195248605564746157654489974585842500354669154375614832696407953691177397092171081075167207422649442072463612826515709542445411115086238217911664742030234996246917914715923755411198935628168318771061042557634600658796717141304719902887889701001937376605727808867556474206177987704648479753225615918932407568066157767214265593839533815658033958012778088383830726409731847169800811642854851964621939085502449687707121689043451437017141388014850189521510610834409366380061667622201440328752722822724373163424420287200311506140915470364568811336305901101076023321472591681414387466271168914677203687137229516772730634027603576580054783916394525322114375905569364325100920230098524523527582540207066109056452457907541317739611899585183521417688242277260715274951106583078586166788219583948996591796540036165609058879679435294294877283459893503676511381168046946615834822788389688194427107589092754071688491546683038865950898078149701088335042840623359283916031724045189178987531058002640413523764092473025975673685926769729693282984526525879111131819366018953119566035587923266374946657329397749021503775427902509637115678776324034726166161327811801550570212334857443351282926533916414863496388181782560649439893386287697328643418934570026630753824127259406749480337588281543426496542581374449602652706240453866727874434931618952047973578983640884952331578826075064164725289254627484660561052801215201383809598477922703155622167222527101849268861107035576357843125624924522155345686799642901910901542626458385022642989700443546561657659654561939844235371387870412719740390066913034222768443935196133833784291144356383106168781706288245334231321586916746854128069153208532745790610104967605759321997159918212568970105610108003976207140693204471369662918918609138807940856223044596219820100909227473658485376010981681634950313358429848959141681740987927599114015460031968960745665526765247051694060282940559665970576460995930994910467228181109161768191088905154326353642064623704569006617920692055340449419464013201358890594677570765663637945749837232705762453593044434103685201877862139114187165734442920484335258025291888153478758555401191441959506952947054494296800565197229696296806547096210018893100252169269087980079905915261301195516631718750579952903514551609273418703834953351474857993466717904401500815140905937702674682841782251919304116469005082586652261694631541038879837156430073298136829714297002228599315715004687375490751975507312320742636800220215564138876852075295411989227543980675111359430331075439558659864380186866023217603736140703053928601036395064175478547267734669379546851162519663524127991413809897869119779804065221552302077553779116021560822904194766334430956509385954345994387087449471048289108642297023406238715489028562445690239879433340327205513878771847370497411358467617449875598169452233144976727568823144754547678847366819631089128875420012575632506443927051461532436320694995143488251840090342995215294493291104905051198462827847637453255967690788888163289883708778014195763569588400967329293421341352599931748149198190771511754016693413327564038810241486375806963368959871660827983612917818461313232517573597877435932204240357325293322411765523575856716780891199030507345096725337651387494812853920597307142687649236855986005567628267018922769088745893590868738944082258597733806526731904354155547576495336744407551686083346213318981684639556933874559178204320046926561951040583575002392516007752744175258948320521673278427761828615528503841858920673563293583511806629713717093311462735038856365106854448717907649078669145821507867532864831887012686016587132309687118373701013917029143017748663463068740604162917016619198890690518313501416784141699801942489526552411132739046266369463023267638088052105587481766935607756889393436510478615044104514457029827868798718682175769101968904551036564396657492548490790777550539082151705387281277678915513725904409639322760794501055340826005727543723288822997133676940908024417072592034889995116604767184661664528291680331378711516457447971145451512132251916211934728052225346259272703765150365162947050280898233424842128293767546827863143327436627366013697476350990732320360197033496457868968698016840295758237016683818307811216776889558683417578073041828563602570344551509333503082998299950060588664666323971694476427847792362093838846542490182859515874017283313831095216540702110024435120162205200178482455570747733972445824466986082097918561761702748005869965546566392249933210799071286855268127669962632715854974399698964076699575652587502941997207384083516345092083845451066453840193049408777427319322409559638888449418516943220960887157687541165812309151432251966492497847573309799731658436055191075668541429415668132335562175237199502505119311865515843550401825517216964407762793165479992160531938604841946334687104276328507240774418556778622802176423231973335052605388385620119176695045684201192545911634067550755307606665631280187734595654167956875649665120194133662960956525560496620803762570894705059102146911436599451630007300666079509559447554264692489523927865653886710579798263760254918620412563593877632428892365315796263316188737446025444911832406153471595561130275553174972382311468713621090456161984821575118410000401927752141523658970992755492842288666288676201720101619296395816366566272782929557225680091607495005862362876300225528870171846252405714807324809564619682214778621710260777144880241966170417968341584931186121336583917106888844852917666886003829008728458583676692726907018746951551584703995405939037746722884532768799244229549482638032246399356284570316694640051944228542633506907130549653324957191224087360006822682307531450210251054489715979030242712707004162407567035229322694300128522399456762623144713020792673268348380376411430557843360164856367091827407941889498328895215609842656437710415595647621446550100917740508429360816487775955393998053152354863260126952657350098198434392505106696245077190931037163265022642190339725340755762379620692819472582251501546056741606486068844478664801125951233234041680912902507143086274083312412502444933082130167583198602164721607715699072156362173324474061158965837837929116751011501908197837567970297185689773862803117668190080131238430578442029752903647244975145458501741284772726137884998235265904696576492207896389063592205270164375601560132050882931418111138277663904728250375604511919987510750314153150580496943388425169136002323388729024345516511985524821982645153031248051625318732627695866510904879589732149875104048894799609956997281841569144173784535491655765925932594632544120319088782494458870976531848058497634546853304968637667502380621481300521511480060261099042854127612702735001377335952817505889252872600280556869950836486494276885960179477387955364447148098598576789029469575731078921794500419806236571904263886014021093852105970837423620498353965016512726161579947034373840686017016978595062740474460059392293339798422258486190734881456852745693301835904338247178902105316478781308780348521015156055209007833978339048367400328707191398140416672459241018077867620352259234559674571878441310453083064001138515064959986536868807794616866735353621653393390587007065950839873744769144567050146937529918150437868894519217875798273318369258490761284816111110802010738388988159906692842597088935014230701101134371763404078102181842148100241759778606883407514065905772205252246154814542242498657225124622487952346551675840582083783827571940092019637705595275604479843653034771403884621123913989271939154137401665852257823644391279310916780984134675389415311993062455517082880573772668845400685935573725351354555416091514899323902362134568653229385815272830721517821510441957660533610401272442759930748550551329029237857311594908260895969220515827272365816953066181117472030361065339668041492844326127761355115997712846581378244080422781280154094355551988526452004792599850587704307806663304972951116684141288068987751359398358327426527783519402881056985684196213234921358853846556423254965232112049936497201162966750012931461265944654343505085950070125639377150337755763790779258510812231722700129911525961513168878239122993856104878521357216105469429736569916690052910968932796047308629345141673441260866784793037800752758623052123206443448049880488793949460224541077660915368571139813769473197521041619248634426678553580305553050184658209753750741356780827820916524800738198568059745125842134886043302143216431893268096666792730778780122075395294746249206964516869447129096234561322566739103325261715071230255506739216551367129812005058979860487388331406216447187082102721950580696294417246187618836254740301327693115466004286485580626787577775512802255859697468957179962740184623485334567376347598349071457374736778154747672953261103726769269172944230052557410237912713965482835023390534910646806648047109122124642826067574303021990798550238958357575292721117864705559643044361119330841580763363204697996893084951096480432717361720351224024639797038205304913032519691422845115092238189180520897179386836680156650191024846643068962275533511248283877297745265183830767943720648305443115681610566995538901629426433614005279977267433619890054690578590322499903813182782380710123822006471151798128524079914743976576951111148460449825819972338517984747787727213964177442377721931966088224054180361346531610417923239494081679117480156108575445359537444660949629399070678489404409549386352226514579434030407572077818133574285057735765985388634416636194500777998483498775874325037093220713635796342522397513914624930864318927605293570497315373870963672151439042891576317745033939544761492216869136121347120480138026458185952675713697556311250269494981855755517156487134038813063404311861077226126244371170674099094454491412711078011143740369244043605955331803388827172745877434953878311851457026181210807052632745552753026831060011444717345530654576664500875400667063893448209167942127852322477715790231962186453075408497086140338027311128950253504178657740908234118604740931387905748476192150158764237344494998622911672590158898552798332872516559294401745970336945307409450709798646176958947001591658016548346517382987033086917361631927639474085053709023981359316038299196458671512841830684667109734741687909690372810201421646663638361192676022581699167183388311424852746174587915226931495382128227400297062341217714953172578859451454849242712872312754437486214294005951029711730384250914256024999818843605519819104859471500225661085769764194637276140194690129737376779528489354687082096848592331705842502958391849917825521335982563493069974031355730354142347672240190478388129761322843108759696414159282388415990860524957369943058804130866828836481513916053969591318654956362794068879761209738140138761856497848038034643822879607189067909432950359743358430314708649229228708003123331311648929028564546549509186840531183420889395380781994558807326641064517773515089997394174729179047804320120876153439937884465009008416914830166072363390325087023456756796151566743213664825658849148733862926763684714134845025187374218482998195123164923253284162737543700069938083105402768669796731618637830071714626858395867632632623162392387979702466040467239431621673499174129316414857462208547912392045007186417775973141123943917203872035725910544641729158209830129245717575838349941047021292349731406743153322478491391504770803527452957060452025904573269038811551427349346289271309622278339382183641283088044218138458339578516892050300621860679522376564820607747834855896785411437401643014055017867201383069356552636074073872882506480340598200021561264532613706472874733919368352767691917442550622248314260111433747650238407682454409400972279744462922799894446604465767907268486295754881378276227639190373450677325901479565089442083994213791149885997704883261863252915801430988026122582621445751596884072459148665889224194914985985023874496171221568743276157337685286240647714874462148672130138793008429464802392894749574358058447744981491112636744657496726646076814194738627231837520488690782469668817201581682873707551850965754277426932808589612270577421087230659207366784169542918795362032995715629236823305615290404536976073748319141968298501222029024020113629267541652158940446461982740282676685773534465974704738799700508791124692874292704684092624812353094121893738344518795403361531961653609650187946813439818931362438659732822773109264959499535427765221676029292149900734910170061885939743632444865262427559023527830630772325827807244880912681510278938024591219237823201450504864905963050185441449388768370470418908981082689248810650052302197287574770224653492799398970747374868445641803630528462121936676404483325506067452336612074451046246750379048939469370384454535268577063042192267035229269152765336933436004421546827445681428475066087018011798425817711205510917648458379408742753981378129912096061804332788465963313290451147938213324652487708749527093791642976354512536824403341386074147130190977740115475642384959099056721159868625162559300188291424262700090360471291497312124430559844552568653110098836618477534058738809191639280440562668668135629274899285856540605453524665346740527986143587522895901916945242099999376127831426969959078885030201165480848217404100406918204822763024028158449747440992842333937298642280417436849969785954207954179745536326953990845835450148329889381101702106587760773964173462397717326161778076290358141010401803129380820343139872486599384853070983823943743532657408766022452075335143522370361562680642992910220606212133839674727656791221139050450015440466078841995063817177035866224738308793959871020593931511312384876411903287233744154993816171480481922995854117041482676178713642097055298829227678560379259596605238663247643992979096962883834633379670204671752666569522069254977790819432951496820882027086274418684328640609729090587773513841884499696812462588629733820135258161881524190472101481651603816954312421298448766109634689675337738905401233301225726709441453704731191011583312130089557223458549195087366809947468336013520658769839204244023854235024816933121521262162233167201895069442179112664395224044104555474140850347431139365748627003832683938547661724603084324252472531686622248523399462658798177049698319715181258965478073310859287745610126464130142944453539411470859784370498765066641235519246665013911587391119286116484507014657488871085854300032146485310996906570636165688285988143049578799934927809845736604624087089333920508224270139748817339345110776520219117063428950286384563313019854286621597950837056632759236258908727591535854554207569159922014060635055227728401875570362763688680281956971654954821596070332609044977704335597906639404460467888066456729680552344944697577279382496494516419720155885926484898093023672363589819424882114985430668508606158866293948114650366600826242855908753825717301701447488337542864315331241781263451754219517523692635606504543057067259089984995104974662845403406410740265538346688127229023813215531106235330268377876238705788423537260435828269848129220017840658433720202893111979617775494514573139557799599721018166532463256492461538546663180882060412482524658666462745097103793273978108897614702725672335274324994342479390569350466034797234106680504912888755349699612535176197544013356160434089569833687910721795377315088963573000618183894306149249197128705823424061445561490295266207910425177776402657021302226633796958586226793421263174340205313382032475087017776474558324514280020411117596085672463006738972956251464470560226957806826631944626985626043620103874225235257788667420034682010779731687495052062348590388733835838572432662825724205778599414838967245936191816140214546350931319556510907743585869451067557650988647350039794422909677781530709911268522830463976059850119625890500801625550740707678628718134139160616816449039009909000334472364376241634702280207800175607351036676047579710706727592415794615480329170495399438769046152331239572742075235530692639091091403970887816569495285005557690745277127855151772516087800738493706190352244377463299841056677088196759713661292937102821112546150674095708852752410533357035125983357236700173016713433809122981556127213586316319420443210298660702987562906343123078701522023318538932027457461771688355814164419883492783431510693373619199191551707113373788155877007184293836799434871220387368343786512094194752511711094019807409549665871096216832995556925313558148656883427147016169423320689454048064160472732280542435591673551932870323803408434393282729458493119987864713114549580516025867167388932808610884739991932549258853814824181393848296760772853738159465715831247386541954480063773374561904296591885011241405198206801845179829145261365531922409434012601152422835922698777670699000680234208636790005250842284461921367900617237710433018341509049949001765900896899791084117874527669841073380314666225948876206784254787574969050395371998457273303339388369813054846731441283630311807537359340922049113257675369046050006326761933678921021721586187472455328174695142299853471297565775284388514643301944492965368976038685853825572957543054826077382223513673918758850392649120535388481044013014721504941637173213436290406381029874941335413849520982729508045540005256354527422998263478763238197073955355034038538500965620405238385616874039741182577009797901771105103227506679752494878073666372499987107823221993252206828457282364173599409785527198270459396128663794640044670673627062870702172912741147590279067253118479350876364475346034974022442738671931055286312109911627971648483014703925966664441644806390251029031967497116635748098172619866976923248359216352468686237453393109909458023834239764630681292325067201214386386189524814056461075595580423994053637735184803820123575037360221286589846050464196126161550016903852798402433831472046827415923903681417829031102698984000346329411531990052857097958815412432655884893131890440415197225488057250902168597117387047789414553670668920300136098854520877625504306195294147472955387583415804027847426376187452571525040869771111288037545700214543454782507531823040981309030732946847492348566825279227330239344088388177905749911467231154814897058987944944158641495392837308114130570173518075605326770048396954048124103082040981190917869095575328631764197949393684294889753733015474388092174030659368726901093076450801191897313548030373670866156431855837063118598309666516443670473383170000576944792056690858267537822652495344070609619799054885434347183276274325136630029171594297400462454183386765302305763702241914489998907049000821543242410192960593922059052292420521361869842198780948444067069517783885217519313576938073994238999447169754056925573040214751562266708823089061527586888392257040556495725740633212967359319786437796840784214649305831519306745906475091999617696788938710833100520977177773704929049138269434298137893028951144265563053544708993181575798394777947107802070049441963337784422908685009979267942481408069670714224775639839990466561740477045260774697344179582807674478124802914842630412332476138951317168137061605987561501107652401782890429869474950180458838875414842512294871550205768699405880050746448859200551399304173179678424830815499233509686242874429312702742667866393524952836405898464189348571356986701219638242745416586320661351177424885401066240434458083058629392948293167992761293354979611797587511780317124246131995693199172786442353044718077322143293179737059745589565843443457437594825905121776793382352413607604859126553060002931679865132228216652946353749273090376091984995471780582865265570882501686532930304223374240199693336945952556121816133137879322943266101659965932300469357668029313661628952530574770296610599660774336318363642581418674441811181327509589875372711308712080417157007775585746087423718151494500197745815397354786038125259276231026493823767326543780974900706766462534000869746715908344493482780959776211531756039692420958170060432512288232323086791812588022678924658260806107229001183604586740476685060394071195420255700723416001632026682349500483758817608800354791688903020099574893709530569373422541425915854692834833338161376209451148596735171779695219542496239700335359554161664468484620332131335246296401383415960702070656853594403038761784742723771399818518861580635050437389605481215314653086182473457454486082749974189924698677019849422714754780613151967717475804145594212141264545873753261412150369785330708916079842611180401039380210270291273887313087634730039725957533299475646531123988957834829554364609023983648314993006806143278095007062842291185654087477876457081626266611136586527315026445486553131882035790025290309719030868750782715916307078359337831334238216173595176005656081835340767577369231208933105918477741293268930727778175872917823140865893413056982095422623977953567983516323847731552309000835381998437347853039167485122180766144254550018829787701028114215692877699294274368903792316113440445317539248299276142147284442025613393050248638836129907203800042705796377973607373729501214679203061277443952088304328250778456482607565674084146084975717487922572627177825723524668709754909809879021928652625608990528453786189611848694878522661042453620521207675565921981445173004585838947342123663222581110839220196959958769561058443518498851941680813036629777387344261426529767536915951801196416795203162204487781399121884938283705367710601355955362656819615393111521245072515398871145644406314768675476843137109966938487452786663428888940920007811653396948388195087953030695808903639672765456978654404688242580234005251174428693926105309550188260555216619190015353599239664734692366867272211765479564124312615541598885712166731424841721189633516957014900307816242550130251185419244911412661200535978120049995977055461828246671109793926680950566656293897695830153109175743182282834244605908862512723885647428130765673328985499625003646364517557204040440164596077694577093976628099545660596500507923853065659523977953692274464952950091422790781034885285944507098194742995653564459741755041890204265949886403219843530500545200721580730952481533233708401122216805350832611001501145901864847718488346752512788862835004190169688378068536752930856586972582975368316200528243013122754754953938480574258473292710101750849942458133993393452321972237948905228967264528960966317187273572437282159488233118099838379543604121515631311759325453100415291568541521672729869031567680650460795348629164640645147464073360925258338171320114315481192318150868042891589016826792418134829151869586639041745676507367462401492299738468059296216341991348255229203072252914546651616663765902489894445541152125025827378728145468095984331146448730443714582981919845940109238736872647605338110557329301321088320059219793559964668273644707795716104122163998800018965947207041203184439230801775998688209217476450984115290393435910864562610075548607461416459660878038619519683283481048760603425521099066639569544636551064845753877540639225628276697531271775512638133310386367770096765851664144713959752863029232995469590008512672965152875956958426821280077349190702244769218517793201352826841416623094845721618300278402943594114884137846978673872717206532346877435548536838822464604952724632022044111600233761368096886391271934191720698610849562714298505951593638307061992018758443583647961538552437543867536495973325954543093315922613908559872230304661820252851398213655833981099878006744437997149400814825731440120834141296097022900513200688369451310192508572943878793243913315807747829128078216524379325580131327760407622773366707006954698265940268205056799170754420541144654524209910105056176382274530223480999960045066175363782801207781171393297575513907713567002270541690173192940172106456447698612432450039372710519966112193614053915983186657451879534859055555887486572333145312374353485681776914883155173319965184112612210639630018218925125172248602641348744006970569783235259109739090171736109220439500272005485290597582567118854254601872532375159851813449854488630970887660488494447370591832463923940776559652295174325455786428824932983072412568319529029555522425088046252310181170484475023593212367579537475690458476421728749207838719035739146496939293611973967934322942297926734581080345862250501196817831760307296180751860681868512392539663163375679755264735027589254234763148166578206182955088007377781501713587387387190461802729598649809058334883077121162409866617013032432119827690923783736592377926112641978114185373661452582117306329196790906154895840890192386392663079108104323420238548257279513223328776994846019038510406426538254438382434228938139072887739894415971053403143756973992581553793799958234293895286411828751294616747736636140479885875364513978806401939062447751361408096808198155580050723785097432092961488966047090254231901892209712930930499115427720160617163646061147220219895740557160038546332484039282489123148598021431274863272918176197103237710433699527570887636500078749481351085608597519133245738095405635700333771070882007043625365434531235147233688013319904499411274858120742494380526581216877114634563652572666743111223687061488931973376799029845754546694536889585312131156875891875168641392878222840012122858970548289046180854482754986680919555967350356125756466612975933825206615137163014767761865055897629479750104628580233224344928301661254054601981084569056422903577795398768244253417312104781731432887732594907143207302740576869179221405576537874230964541851226782003083071726865987175205113825755204500211701929002693603722387458721348301092505242763900047712513116900039430918037426961897705636840441846050565864911789175400211522475894596960712568408791770402990915910855036688623166122163240431741648945343991547175181711435674804615598391768215243778265591461862293531188682595640815704440657026285337710047150367160347869822661031874199185909471610754625082715285494313548497707088804074733218240624525035727525173882380692931889723014084420179950770495540249724485820384146972247494119932453870337225750342091608892375618493278149470144315511982532794756485949247718254685975170395248180973208514074398644599525685225709836445127409463918669285615551685544989615227983771136662450402805842459006340915240514983665484548143632429874769846256135418322593231808623185323864752165334218239037178126391175448148539443580628904767485496828813605475927660332248090711636631595906448355538023737712481027284240579063456238535126082945007018637818526894725967986742792671807244101871181479378694887704766042063652943961919315361737701732374196157221650931832599281943415423697438217301593465257026602676808721233548266325906111285031734842959522725796472593443185794478717755441040103382460898461905129113951346086356970179669110001483786211239976007454556945631075518876903577203174171427865367033132055301580963969355903341153711188027882333878390241724997299853570401092517111299001912804073177355951005492198347652609961104434682435076993425748298316854828508540722329876281196088505120723607571573091809933420047554248708110034546823920855735336155074212827351074937808764829525066826816451032953449335241064379138691528680133984640159522651420481705547514348945659914446492698515266898256745587529846434609862462032128945011610731260152293075513081523174423111784164215274019589856582898526874816954389263150967104759888569603670774844346345776793760028534322378531319093300205053763409466813822679643014716620345898151353887412500757706187896147368697034267454835274619824250741945240932551728419660981694410316542561402066771944607761344091075049510345615818822921063588012268878330338095936177066868961247617407411853906219183502515072901850763102784505800141035776725831346799873667662541720532230707135538204112529738294750014701353561870713857946840701968599272330559619375457508798853745813933585704352014307614306268656846063959933405791160596827866805533730435699270027394247542672540557646303000936437399821081451640358328285665784601188122090352130156618970754831573865971032417801921253448320818990788662078925429595295467454891999390041000024906099898692868328361666738934000205774562331356809422665410486879726839213925509972538760402114307717308145696832746763933688236253737105053783722553414670861414816435381432089063097012935178418089269091662616703327032503222838164615921017961425664091167587848344429089358871103393007455324991949176768847579158033132147728284472546119942986166146096190011195636877120156631879611184116367632960136058020466420727271248712001906293094085856753356030923519737530870183129122181543335101624080133533378352664947864072867019531127285542575452106218511307205007689943075182438521426587355570897682021778639406949652473822312932874968742924792954348082471122052602692665233642842363577453572650579766720074349132510385311567111037348200506571467300201101396802062663285788912509993775286935682029451436572448872672207417195690119192351193727806571666128386847412138250976101081029074612510906568805318876683017524486993776094400693244079625823990845789477826656386144901839119813830323243407088239462622853213291457142329641758436774968025102306214873982900160070962922418521249145676035502774232505790404520374263986414048620733349950098322523933411812605168825635419115188830775415766270637293083167825760263688290858396882653449981092630201123811720150731778132265725707718007325613686647411288400647286582466554798291585371195109722501464622887471139415443631561178999858394464227431891448940991346428748222227029076207630183470631042674083883977796033268882171970982507308654504715769587442552396453087336104412547289310903263194247477330243611623735902161122038999921628887854303257855827393469394047672552044183531839861537867416240190081983614056332807679418902471539332644437458115233718726803963917990252765093037338733513377623211462483374942391666213825688867603930868790222493877440014301672645641148168536039251562079336012670461678147609570384617579449836664052831036731286563607945489545977201810300457833086598301998088938025424450720458968038752396236274729325157469209527923564044207318981527928833389935373955199526613423433877831832487431351927948238929777770412147310142805699070848123829807044124351452825598160753426476510511459556089602442229594949382663898896457948220268780517275826149473193129099246364929165684228743523383384757424567822630225026489434546712463020491911251647255230923783355114866631494798422852539828847641983554555239156201229051486125567568492722026779554826619001695001365067170962374849853764205293352407499084005023301966641451654628885472865506691549165027546191408630640491908687320991337371180778795977391337328398378055281957792639917346859345801308678316249673425854101698073859319319522269713470006356126589681871696616373557449708121707770557019742172953659902266199125378153622933106049545782371210434764822716213941044036984264407018762279740980149355735868283567516813321819910697220264232391039652475300307662498228912130207069536285975793527258680711949310043902312284494774371181044004121392667087725007974463771792547161042253252331411808022170869001613060953421482334823862316649764102093122654962897357727526823256164267032208948031653200307504850196769419896301494932411804936305998833668539889808094735680062836824981867957163907789480774799007353760006494444390408243362929674547538832067213799083845031887049183640012038495352694881527164879176049434379578021239905513136610454110046589207304117428911707668233175927748292900344976761666395560966389081082723784916806340711425760301856821519714762253660589768516736619245807721866487469310483697264113539699282141380929837811661012732559164011558007961371542932978566806938938537821918699555638323489785933946932600905344431695467609373351355222510363698211071828069511089346939656333386959243689710946065337712885053617005137453208923420823979069649676572278285146276127038057912275198111722386744148372554857629860944767771823543198143692883247597333906543358901938738407255394245033713249701697600220492470412380615686822198363242781929007433365903374284511840678055717288356887694080786066363186099707012038190471725626246588065053356607173602216439332992533241672029117214143738067944893057263174745134477511670164658326073319690962384201653570571860224290135423881112799078990204733859651995184347638187449366015622621722561833657852038470938596796218917602409562049801356136178159359083179424239903650353830074629010209651807223727876823703042397788872188476784176013640850143278704211425435272815292131366519856266735945877967360220388753004608471701538352574667144274463283974029397663579206189239418689281530892052006255030383329882034854599740605451972300204522001022488085031845234157966244926987432996180666750488202081551480761916777455745748003098867349229494259594623934878993279812723372476127796793379431396022687492121098006716305310050228136552492410988747346085459697852092725753607852554511997045778953704789921274881558442824203830701678568554541602079749881900794264556372153934930037337475015592953164616569693656047527193794840600122476501115498907686627040722612682711532605354330699285922286205861056936347057920634024027655171085643821874552783582702364418544302582022609835700541782947280065540185217861398276400176614177523356452144396891698949460881577845430573410844076659097579106470644159126761318217402585596206596146156644453031830822878711893091861309828038697325758459047889414918629612820783130539905512815016746522192278104563422727946836146793065996323029856670875745616387353141142867921508975612377401552737377714652019105466170697872828549466393918426469871982979858852870661633481295890985427914081559645593734937373004423589683543358056693934154879051218764539797021664814019390822362172524741377261146212124667254441007446216624778901548032787452891913793226530859739997603596738425656079422573181178366796857994998255723298873515167874184404647090898351364699025867256035405598939121577434728417227259019394253129261372545806923824275365589207549891148076379366212965759640523016322080886690599994263547235290299980546277661208921137206293935358636438659348434478548824489751796677546759834820768700983668028113607911043588642586278088127915856911095256719105767564291138107253654343711495369544309569793033127844546051858672515264185732569655308580184215466214204445317567363177018152859661873556866536191609193135060778504292660740222967885953181822353124195568721347045907077263193374611344815466161280402524081359362381517335253794828425316555870801992123942369412356237986696459110610099153685920071623844542114079205220945812122097722610360427218213551919859674411402331651594169372903618235588773788006174051791979370738015058336935948601130853123246957862057036188672892203850296859547619063275258059931363364878872916311393019755494601259492347498584551202456727091667414780277157763447122044787772806669838532196164117722135067756483804117956658509883911450316056591082329721991731831591188951467849013259441296139495302210599979148425516755643356640798580755934000966232239734904750833595687796836300483067824769220556596687452693892718016442570785160388001408491141614945485096168712165396008039117989751185746330007155925040879747526312112917311726021302994758786289421355711559782039956220924067492682905369245707654695820294682259987550916602120239291223640577922275637764698295953262322856491293090909590217358462082225143096447723157348715367989432485399868748668676996437434356142199764122275779938615315471409622092124642220211942025533452411607025251193736269625654236501014160714735654776106862963341521301767635056021829415225601375295778877689514997213421697935927400911938943088762379211121883798631564354853477875805030907575916245727560836540094233726070962436298325217759015219502279888846016056294571185404610193341070124693201986716995958712271312769627538837011590840485619158735171533275210382980194840925295829350785312634404526931449784723459287760719216887853307490285696297355876128624938685309338064136484991940254391633879743991583303495797606158358113740216117636333711101800256948880199896752836669354738197540590475229427328805342748069736651360757750684285485200434938463254066099209081551211754094095819348797011819821240832373925814254737004601202009990049989809659086222484566149002481644325657075270170141470191033950143876572397516575803442704184501140760311016253077019797270801715330227661094814814835234641746655225471985508473967896144380467228060881362869400756334145245720124336122121887672490157958171070078488847714271485513775382926081940351180601103429011850313471228825627011763837297416506699207249967763295400991504262914172299907039768199469279652571470806972168524171420896323933105267240665423758416378875780596915989529458191969519363627005765435111466410369812152041305834599987787160741935762534435836701940751741533866203350425035569205038158038611475275143341101006497125190615018757859182462586061933250868979253131979773642236715648986634007988507779743652575196305123378271669432152136698447842123605550240047451213462779581620544143476758609423668498024626514771466146515134592468398362858922886633041702924155277266678634357832095466804463856973303315098514348761666876380697432306292014782289479105542271971317897886286511496299946841686316461253044254561682083212201630819598053706026392681056120423710212519541255610532133667672718033562754200580590881052002314628951583577868741362542182736363466185620680557027587420852471787155098167168906750217681036778517746083540360602659108105408061066675347299525417832405085789020121733568110010790484024506698504453131831347971359982683291548890149735049301744313291136684284334620354210505278326001597837863479377984601026136040609784266389455785950914460427091194155483198805364901999371310027042288719287887136864845528882100158964242438282095107916572223547361141812152512994544741785085562105271580597866018896966219127086167533642406720526861929393539735297998114209524730662005937957295895030697709562219602123283734720747732973121990437492183369955337093061559293432152899532571038804548123450236932874445154935370939268848927575506659902558375404991728682632070434188864508290608315727998017193224279949309072162834974108265219728658413647015043602499020176165069068630127013982639620111608018186706990858498305922621622940124240996148385370992885077124212875406157510124590224759501448945044092794940383430123237955235986922015773047000214822655807167485422436541683337066651919849992638233029172980386600330323736798727607385958359811244378254989008313279161646914992679981791055348851050085145798586430866070718342174919448627855151899920705854366509912549126174375874352606983207245700564216499032311024685599832523367920080863599071051199205714227459634432725362244328429162665972117283257330875091946122413938345851328866630293476648092195928741940854638461370891393373614410598764481270861045304997275163803790884711139789352734365358727811626564214262674503875876168622787547411601055155746899165734647548346554694226000542733134383719508146458402718645930790253857472494889099732917266510855173580154866025287757534789241844825986831943018292519428540610210705091667475438084004373718800537867389503736066117425431589017291996987670473975226987180006364017226223962119246894867950884760002505134281283421284147260225316026066857130986964060180106381710396361871835460360089189325409593348496694627591451329676559954495882108628493582375834012161984842846899589246052869507550728972304469961955614794191376816487986697783077527629988693276681712136473037198744346477672847753223067025226690533602255582071907638808244455712802614491177975445979967761200045426957937577101528702947988775670168663776845238260295952698614933749017088220012082632079231757380720794703315667799097203390926185312646451776081363349123709299792187662198071117403539755113017065310850470007052985608546550835986403234223573439362253838138632547307162965892512054863093179109803020541638733326012124866903958829237801634363908109183498049890382923275471425986964090433162381830824483318743748472300863448687409060370771190211917688758265854753954059264055860526132101375300194643163370716840318396317491851448010236221061316220084388558799825714910761917049595267640773961105786488974338956663269760607570520353329546470227086993539381930852326707789993608661840350199527563372486207884730801375300404723564211402447178280103048115161369026411174274460967141065462113115306810315956407164818249511028621576599987320458381640372058372260025007608110351764704749784895276637146824419611422903626221564594817573075480155182658126324767720859223440736341062529583616762177889134809805307558189138456414446801263384168496817733411821370784299380300676449728642611849876719888700297422970981078454094106791286674912869251961048187729592744641733303520521949669630436438132064954490902829409029437835597574928900132478226053674818383584147823420106891001529212376833893004281175402612693322502871186276730724498464135424290269542109757359233120711668721028270571286675686748355273846174679732342836742598129219110502865211463465402625102930983375413542819117147489371322220560168632737530429824377733414968618002388263598916016518418789336137332911263020877533444640315009371681905176933524359187623941209750262153788079135880739445944446776310285192500500307582060863648345110811957188281195624809956569773884611595061882981596776314071976314031002159465019479584920332232141851524895150684786898630555247198873720095124024134002501743905143167903192251412213512055965188680562311306692153472469634642725442087337887427609932417571126230477129720448148904339818194108396576507959127668235702556751559277809424221392377722997128944359838258191792217449795818622342086136702095358279120958530704965847527002151306331391822985021638075987502483022183408532210034659510998396887074391319941821545297685931735160358682063055994585182508872039882315726624971773470440696512449769404936573350980214449814427345800323021877688912979073457422957225091658541502879756817508862472991051076112065473378195109476164858201823878862130575168851846320964946327362996717400932019304026011166038369223239403792249871000802359703073059372100096010420992115840736304566491309284259451269258050491501780108414842451295776830216274248165057651244917244967401496616857433600743724216863839610286865315931657491375747550877828369783400936197952645099901502531093469670202356393066513024630155777901532590655599637583688345303607459925736227732312466623504812537943551870980052102597915643243187220110290671718667916972132166488303625575971525199794928275181637658397128960962544535032919030068435053564275362424593051353015719814080990135078721171490694675547798009196990799682172736257869816198036891548372964839245120256402651111558163714213982932941729363297678077589697765600221052821365649056596141416481763658674898772144246378020229075503609300067116161223018459905170891271865796879382927382014419110228759682940873336648633433841303624168270789622122091129417455846294011079831451177780404185216255786832048630851903229681560635965853769278867457441044969607843946167949267384239507664255670379252709010441076258579281918783011046762852849542629601443182129608049612686149862816770422836188106891141499415491670052667368041371392448137033590588802427085451384135983564588630118170502779964238874785442051647596955416960053762882093458952803808394974844966029080211129662093943630411199916981063724047353684899578393878235217512852903457039763683959509700929942969032935056606284574373488044830859940860510413487394445777128633772217890248821582778102720882660604249060474505370023763616479143062524142594563182061376602268793019854026431936318777307665903377029070704865321399477941746800974973497239431428319109741019621951167677570227947197086815825844701046220393481659965027519167347363634102118632718945936892329327529878993900473064813684021295587504353133795675003387782920753945258650203303310987594390595999621662852954057886199658793553615320944211660365878835255240569496780688162688459973186301420597189650492548433617317221592888248924441312287992864007234469790046585970683497368800980203522701926348560629755082882445688114897466546703155299970592748439126826509149114042919702131411192904282528783113363069479015182922778275315210487848004831794536776633254776374519086786912386477434667258023540467195570410138618858052059814327334571510437465148607806812954705620531700834513501945420680445571682211250865190536122512216730197332707926752056327607750197764406296498828709989330214374225594790458782575544590738052122567057212932153960541999188376526002429434621858158995795049146846721786316874891692550526544359514160447328925919608634694869011031484965437985200883524552628139645441040703647781324028687454322803239994730104900284133940579313315968434622219145827067347772556595906636439066806013014411978653918679369925375909663125012407609223669548723925953940811713598512191930035733914536499512456824993527735664822821473828539657637294598899723852511205346535612853591280624921526597461657082659124922890680746060861297972688369402872689412389325111265489802783262328499060308908211975333993557529273171235197033083934727421343731794931241444772724062070136067492664714303450658642223963452314192702327317791909275675257540625213468648161593854311178089331135533626982585250614843793860871924324774241312797701611901102575834920602934459473323260067355500123638541208734798088896356082214192907972496477620353249031968110488177847788901136969227370106392287813219303794062666526302364270740558611609646730293188295594478919359448875340883863852491210375712572693557396479718756464679732916247502688461210687657829639857229310682949257883954338900922415008132233441604957862393479274655939891222989246945830925280298867480216116467620786289419407945206912275055260111930120835644069474786674817971487007534862415056881236666765749126573021847168764203506631058036847609390574029494874638922441248172112120565536107241315502312586079525256113664097000089779605884808115227634746177120661284609754945364650340175484936344726641356659221738556686258622981373240472623895766722910124491272552521618783437515987297994193474686731752195208155587742214079226022964427573166261812443935717059693064145108299866775562131156836344765013773154062970400636234555310654625523802043527967348237391059343809364645187412525052409757093444594537006754854457478222301178769084466103573761028373898579515192269608070151144530224177320221647648712653623170101620565422145503745884349446062408964080707286842317699390414951979424158512030874752486234411986804107242694711205613147098251212013265278971917798212119551437948657491850999141942717517487053795695302471583298629172653210134537512384889985441791118745646889564884563668534107535194968270264290166763509968085217918481533515210642784635375793225008580365641878423639487431015405951921801704617607901408591858860478713614452314582262782599415438912700107048856757500640501686112867917221199097770388939222931735200426616646495981090048089888473224648032571640882052234049816889339180446701836976269022420376341871151840556403957240905592394220320448443237449400526638658652222387645267777783390351427638877372758550046608793015381561183104081040018690598212594451057421037242075257823292221441687003748008541200678609365539301616048121788345049971982360870810843275191382265594011326930355371443175231138510731511261482109839796255477665712621213975657679075470048954872925736041023698304240589363359591542114647340692090889285685221533563091828686597986883672843904920751622388950470438939934325063027220876907880127371573856293177199920066229753007578509109104466725092578267739507269016656186620099296982532377875754176038163755885025505703693145214239486797197066336767526668570743680014582400788623648790760502817508068007063659845635252188277180319979629899962391412297876460867635484098062511198581272005867420926308773340459707195289419733803544356882022898439187516840876058086726946420669330095506561844432611872366049511116797039226884937387544542702173877260656896256342425713844118557690168801074005967027797409484854191766852258232813779566355128243773262139719499046548901205695311149327021007068841898080688860353118977014573508861973421306205345775536609054398484847938132340910121677336468597421513023395473170530057746132699862297377525364873950698519636522621904525613647856072616146737548261497247895297265352094231596952400880976659580460258374060856304807613487040836485131134489208039811612748456421022537758112459443832812219120436885468162198524008135757694828720233281588912514434579348953987428288013788264714753799422214115723504092256778026481496853378345106555493604116497918283318563312829333140639155059434122013734639054473083791355391011410869823531502753909504415247536983955062828623002180026182798000649552846805556256853379963460945353663615916686872396043382372371616534790352334897191236310194944328424733625521116892771871135380212250567675415316594198578827982446120304198759121965994303200253288188231264871192097217410895440980328609928502055983741280716046384101308122335171362950696073131531530155602411314415348034584125863079957150290554264908639893997688894254295198936382001423589092630372404984952881390181653811912766054038640066283519313507686230056790392013393214135899241934020045855227411979026814356225347441599733215636402096609950953215814721141748734504114910856937734062710045444739907955196042362629552213151701890749413158976330923062089337570535149009293765859278475147894237723689194090915002464476623820638475787254832771656825027745910693812015919340615822894271763388915602455760433983917844393931183520245495898835585216475443167667706345884284729613947787518214291974397159721570920957813269370524064250550339356759879297837514973763392383440045812398368619091725319615316618356115299701203046039544514897608668163066094665722137025106038217400665029435938533405923538192763742316529719532805020915729464301730708674494131656353329342531288020207714258229464359887626765648655922327930080855920595996633310965670703955717790436258149883323261705238090352001928667981841184535560229246958817938784399181522835400911815344290770757171404834097715530457945691907175217609280545741276722632853463942898382172125734990505336794367196064472385183753336673582131801821268261883787452757322532054765321438484094075959476876614341547812590054212219583271587455880068042499748904000480241760821404392620929501452697220498589772694729901649606993290549767374579792296993690745397138640714760293071789892476180143166751042947312896789865890097487115015251876230692603472683302969831997650221397444947869694224211773956055619965513004234983151107112919686792194152331367055974160645184338089370703394311736998644956204130909774382101454299087138585101899990034066220707328159415122153764303227373782184769520697232091747491814385662393350790635221278065930498103577022749162952717657720212487886855719980470967694534507649499945431450845936545963577606685063661788215694293897849987888803686962706110861740434553801161726564303042784236865646675109945912422477337625266644547730243953449943593253645983777987564786421821231418465624891128880231112496663433653736266699490672161743788111553650284288178174958400950077208033477253368556099289378910269893836638560802386927946958214742863415400150440574255921575170551649943177838320782450321179644012548890808928786693884749914355991642218553375687290575642293837266782162139686325164219970582679793073702447345090633709463128055433807512144526387508325964086820948496674471302044662156250244938533540846851542915044670794792480552032893637932685986829394568980133677609285663152250415122566418733207064570898040607781964472250466669880319894746506291487155205339121742645461876610892261500252983952396651529584015018513822462538564793035577928131193636452707080409313643976761263054024920088679383247146349714983042417918384372218334805471382585971242144933955772304476671767553424674940616086401370354173753259649028151897084905009198048708688989599043114101658032802517733934685079318265984146498683637875635905056251749960066831452745290618424754180034008235874561687241966240384116920301013733235461116578612760905684922803537191360507299604121579618221436899849812562731459934169018320307404721380092016649034067428899358449220995598318472448576453724749981603647275932611218923832526086111841568055560277256000378876842937540518821202392057935447287743234958232611503623947688995348983283143979070010311073744526720236576208715254702942828769823755656663899742813743425278985849256328313335175324170282867110341568581651581263017595909291962449837879205685891831310606253974620048285272288906213260823150142779424049090353164041717053048219348955187196884610177218733590404872093094983794325530945901947882470379409711067793293787547349768943385692106539637699829310720404401034995160716621837249868263247009282291112568962925332914299360690564548941243735185863891399351111362335551910921424430913163291460962249825379525690796033912807255479444786758545110031474883610775116197421671400075142911172416348598722923081082490283966719302822870291264836902921461842087153998117547889427265137035523042826539411005179729679815120031565432731340448056399273031612964928902688961105933476405953978113672510610103146437831423292032974768764358467560256971264046179626603335964234266950619493321745711650026634487214953775130904470599266590468902581969045220912547616858007671102661457008332708510589352672418957693672485683828535624011018058774088176462760546902819496233901671733276887362075652304915745815516411041555776378325131021821107716913991076195658218156636828999137615130244158380727869917449176715766193524826917069076314757448735301887037739959256264413686884150644683684170820909275711995813574560450521924428501600441360929215145043022638180503084174268213526122817599896409619918106318950252939498051999319145176476971671196362249711067162971078620806049905025656085690384059684095095759738570401526533783625849167418093401437435558211170492594090804024860753379956893055341865491078576801072318028297291532125656155219664529212093699728255575982655904688739224227458250119210985025074994709632498021370678195941743412706976709711936081773256351519117110191258771379001514501536710546543660171782246626466221337936245267468854147137203897427714600103503807691783981123011562615985093326339474621728346276943035499456887107762692845973969772436776058353470983258948593462185385773102862598800117331654337135413066494150619912732483213842811814810839400881467733961535306232685543697990800072508356006717220899882954472081919999243350603748326906021713379913583841784338360425922805273608241510071020087665036482332021778899701047019765697157899437445987733075745593048009358819614653805275466551251873391253266559641111289199883698473493283992283212146176875819627472656586082495082880679262803937135178574017985270999146698392235079174754496093039149627254704579318434992831213672560796283046088514974688244641841728149664583367265066631115276860466929705090331608726423259438437457704075581984161762884900733761556284649432193514736076626840844797028879363128721864656187685996088970424658673321151347812956121371726113985894157014165102411617989090652510223485668604621208135540584363686182726056883184165426088619950850337116475544769290492251923310769192287421154760526057130446841449291839190135589804304042574659520007606555469092266895977706296730693950368097655788632214493075596159564049957936055343118291518928752301587634062512948182980237432028712894050047287381606251760409915829694319282603139587769102728815679179469536052073834421748905992329692498694285148089627642547351717519922824472038658348104078206140681653111170388063380119887585283450423581970879589326776543005115505413832702521259800408764949661418883354851916515591669198097470770611610843984312064672331602098790047793157918260719015664202796329688225355647457004216218972130653297636059016920342618877092107325762440581662935180334246828032282033573230038533918138365033589256721348876696923078955948369932964093614445466786121888539506713265295560989201981311898474649876991989954682398804534778014495572972557412160497151288801610158474777119301819660774160162048911271343812654774081255712246257059078744319874117040325080092873931851648396250139395531807633545939638435698842776768364812572063517614974560897537222655859787455899661528144388368318697209756350145882592623435670933158907681656155112555355894469606554497171996091820190467083540065217173700522476785549573220572302529806227040957804651491189280050171970612676741642694277479920200493286864276223714438251862130016208300077010764805714867373459415689377714755427347471814171600397391053221405874496202614853190651090709301001555154354929750312885685005885239594936214849539214208907482885590385235577519385712817069867081282044895695263680123231491604223773447299470346709521849710727022501024369464795307398157383608374958379176614919449282309536297768161782625391090222390120488703360780240312673781640386245567427009187095094110370098043824510885320549953417904525310661186382899568653708402545542869980152113725438007666455448139875748274381158999479361627449575272208558486584493548673790366531748505093410400259826987312756726783809174372601535016846936020002643711632765908732277921981071120089108329726146494423189815554755693438928160343051090570024671944645814255339978042611354365099049702781854132268383719710264757924089483551196401019537845226984763623363112223017136161062194624139314089794912732911386336906460767349780756547293263917730903531415345756583043445336398129189922581106635728409675629639948104256619458425300649766403170122077224253229440089429833758380115593301415553685850624874090596229887980677244092922519353619018054743478717720270596171106296818358953225105661263447947663925246121466209382450340093558593441719439819438012529811872920863231086680252708669044934166162512782784889973885156500962882493424736244931174750330195485032187649169407308409490476252963590082594113530687737417942576423428802852435792704875593271131280603910145512840396086201253531202348354440424150490942975498657914904051608369792519360232444703082450938140166777947189352967332792165182956431478094558707311050229442843722678093518240544088377008369890328786976613005529826398644611141107698615922959656429003360156680293935509131885999067660021369309074912511409906711238413228016868439895767992037214238110300860258103751470279908948337126752266254677327920675355881957297088156087398526947818912317456725249443984570006509548069939785375677433826291569296665960681306528885096193723321758446811479939577028030012102673011403339202899844696672920584017103734059228375217735974902536718320285725419477133358744596682976994716528594844393305096220636007919944723684368643804936610947038629919597366174749094915224773171928347854295845082449492445550633527111746161640451062699890714742345388742618842382561709804637309709091898768374805696753690912119612525801005700331468190896733380293211294810562677478618692351143968256937852317435416307233393069666362323613964893907365862422206738681194984982361397387069832698958507393139036079839703363371841619142895003854980471736091324550959333615774984595534657308005377915724921726996421945814765823348669338027885517316978413284953516567547805416115680768741777688796301160535706172390442055886809204802639513855788696066221708656743622531654143098816520023737384527106475708261920397647491894541380909035719061180706865962728105827108069971210847098410736735853619972469261737308113611191392484536905347461206411022773711166756518208721244435424162851041732146047178431474018618176775902728686526084494563723759117195200211080155600900582134858950135778370998828501159831288986804873356265680732126883802208326314427219283623295843875060479730586459248913757070834794108959440411878007946552123293652102077288024001610822498468867418391434199091816550687086841282128556516230473544230449506253776856212186853060204483740793243912211224687132721291714130867859603409112480833662244697508333684946250341100845385008872939099167490009551399269549906112363837445643789064522715358668930890230518676122934252942961946058707838310876295709279194002539619506113713213057955684833591296638306937230310434864544768291496816269697493247119051557584622716320942225111957365014194336235527551405886420188715360142278953315577043854726043841110185335460880716165212251527359488793217389184583136306673167711433875406531733508783861231503930996350047289011437169909983043189000086774695541947608571893976508030496606547098224759496977171892100734828694212846129498564543394044808036170746863184927221797819612969180963815866752309393920878319199188853075527668901503215865683305275367444602762136277123575357007298042074438223343141565135251920311755366306726025803202985816392069182460518362040110845869072382400989227398802961924744372360087564566232408913501500369120902789193676852298510681220467877447941039521226989136747044836023596159215304821825734221468624272287115937720225160461896975275853180409707582836885865748028598308508159465555586864806237363150835744348684186785023193232661752785138120989322667807809751670600880496718152980284151872882894674299334218254700660668043088891637126295341942339870949754967435340009120425463202015747112063995318985213680578288428590503158698550298965297540165938041371652349470929275152267251618141609999487441095599114668813094871940692796889710532825750373569258523591708434942188680638426223589406597335295440091294795011457094947664030166010529390362853923194310875066940853388186572704182269493840797652425672251525213146475179596538281450859225645220155300970374836187307729427294185261520862466178416612581045939026594144180915316177654611203874292078491760838398459662919991599049248523302823675683960276802654156259279158065522996998329171107801935122479066487885813141183441140255950536379185353917935382810607059997621139012694831484499978348481510301582366400842190030334610153219429059388388109035953109794258575659276281116845736355721823417719021076104313124968430714511753900390434720575210874222345405782308436045642564234290140568518329963633163256812876824549776245933184340741490321151299498223429624484598372697090018869865978317191517007930194905164411811031170606469315715064965030898986235410167480681724169594910816997039058541585191904833425801356303415316367484805927732396173422172274626638550371259088727704017735295455921975569569625962784135324736982974396099037202979669530399038363033969054357851665253259614685462776715445062937832031925981741047214122378439623922061672525127828732501502035036516866013786259822383943278198449657562178534270442752682387414228432535744714269527838462355053493442541218805300756079397818017391537685901578313839121758631464250884296549105226161347732245805147387468108546827366070495910652530072932646816640905935597718933832179102689859114576742802491668057269878553503670567064213636414343599155176751153319058250392427734522255683705548419623469956705211146496890976149940411083937977378044659933324345860205191617303532630715469109142001927309841145453140452406308325528047223073405453409021407601554669454755183480405535464898348547016177990165275154063400015549991033350041550896696406189441615022566217047984699032976131131996954080238494752640796749894575626850460573600563542784504804377953233229974158161567810107833769449997654809028040863294996253131388516945053043442323866617331544872310210764518747285539689798217495652541109447490840750847901262239417815638403737278261525741839488562858434174669682803712643228914076679631347349530730067134672620837856835816470289529328532271104153682866471923667581182688581596752993587906047028679917027290937380728959477283742132387868184738021259120022366787782842756855101786315598677287797733403827416137586093358369584890515275014006026521625622399703659734366637309651400597583239787438695337505970422820131501053591900784194806694727409595399569972009118072307576956027538591495167404642010214882116080775078090420286887453462391958058905172833080338030357182483571090214245921192524877596084979409935831958777247173298397732560890531329090377095700038966160283091578418670775072327448600858945675142417580358148142371582675515985773634998353300628890877720854199139146386191068748189057405954533412598887041719652075495129310170699232316685088390777783534708773814269087488728020956196852948720001725688573888925005064631985037688950502345237681989154921031646126694505898139264245081701338118045369792455687545325757829286343601506480278237902550275098892164060709820212582830698917209853931194020852902125788322330038724653426848330933456301098684439629978264043707069052477938640931938567247701350416376496921024479508337365544058892014198379098985677439307194933409912051449050514359411816777318469141040964582512874540821926399452278307141887199398545499915344377638022697740581179100987903612799920645230432695363461878715808872101971787137079047520221371755136834858830346672790855290549130522033943889816139518617238082516990317500648008346605157032371852145069639588313287817661222835356173571212945123308244579623912304870133555530301737661385151489834596144787393678699513025525357709315088015673905327636094246201799960751961383549402832904747239376329990985001647465108047124637928473003301506116103253974990902058041469826525462807278192733626605374393461361546315691633477287610078858050713767366347152975993652186613449984550282892406975898862447833648038306355933004878647123026228500799873332440821657300317498440724360812316464374400476279227359892554603288791313162113975636852757063034699955489622158596179942103607737383023664328944937006078360745937579116211677709899302098990382968008329625664349317396079577881899244619223404057155051076451877137858588002033811938886279452887815347453095917630728337520522858499237402613111572344937251737297453056064359628151081745170016805806579882769632980723982582791991777772526340659132657731604095327647807926830060675181204812668129551546319713412163965340241494009349263158523681005193636835725307352683476116820064747203918606378701597914874906543614285487978811599291253113874717233532820592667271933232388617677089455405669741168992491877612926260327976560370203430614660647192387447459122822657850246425718641857475826603248525369671496907370528687782196667898692672971001981280924633820501610785590611066694085254682815262360514154572999895898335684565634258341186826688270873134281435214245606174818549854201490312613988216098332715159375375020688725966861569640506165096090220365955609297437355659727599119163407891514827509164337554585301419500660527407066546263564817746179082343013068647750380122097879128889926242076301955560000348826330088087583177138882791603537107917164671122580047488218505276403314041496145721608723789731750499299432416507622563196529871562999931178766343973699029646451143863664663099128482689978418676532820409359937400319852400626367914319605331887554738396953402375450103527330501488452755422837723254178617644028541557212047467178098281263516313297313958680986647135491202431506444241707016215264794215750141369305817014708936180778472604125437097008104077615896095910449964412578494152041228579721623434322721732539864634934450294702392895915300685010299485677975933590228280196524532248713944519850077931506698511429311500688370837732194491968032742781212877419689367731375669638615111180680356474894281368271626823191105417199359878448322919132131984686761633888346249752621086364412911766727891104708692036813454054203055257411484431513900083545510769249800648144362254183600035567785512703101830379393518254311361233194801839827702312898968495836132878388088653651595685344437326992637868230128213338327069028140272065368681020795402572391464473656799538552636431419883310392750858391869250191936553310649808730405362779081041567469720168623960073286786746628048185522642499729406261293578836198949620433372224258619580073406436372224940080544706206857267366872481781897907438293163293891395564151003827374826500060791945613720436788709371578813759284055369443165534288494493949081030209463429439353195755060267162062055442454519975065606426196746755152259800445268083306599006063387841954601258480464456153811928994139495223265235971254124947101851861423058112134752489039673251418858867864634360565306527334207805651967053340794213630839002995277477916454880122898212661403561200255912969080703447281511238269960904779270225197165188537340432897185441556969345275197149290711895016736012225902530472199783325287815438382148963947372648399064682114378218196372349038072851184701500836944710304818138832657868982970330269803560546454022429509625334253587191129767506800064474201432857361250700730988113873612270910962794400470627686655618562485141602224834057547159318379819837493395083103885638996003495400212067469494565051015494930540788704271029447619497813834937992007673548595509731805581457972270373227868365658575598976809546074186913519069644351496714967197829943458266385600617708045842497050471250024760726181644474839315365718230927599898408584571604301252127439148597619613531748090785329103690268388896370113294070577798676165649841223799399297312671047585735502178104280578971333503184544667154301465706598279346733804426553306052356388542605599419084320026471089562037646079876313245448126594597705123992131047801654321745303096916035388599958379205526809404955584995312045297484858570108645419405801748714102381609915887711161356402906107233680693568183679117079396632719843636529196933293188311890147349938910688705572782134777183004660575009220299790027173220423165422813164745931028955246176068797624589097508225691242653127236171256730132601237532467365368845205755799097739513820220377577037295516930968084628252977382354030887608267317865091057173569410899693855781039195694711487371758303804451401280041992223303624855169152300792412424700453069024209952726188684861038943621451509160262339868116073143189059244230083069031594152059002966314737576672490342094057463311793439727602229500844427039162361277539309729582257908066601059071254364544905420651296700021750365619689474923483119748134947660835803737346181707279723064231297049091595277705035501870717233410345608722878558298299118623071620217020125046492203267785695468560531952250448308849923167327974691881308264545267039073569000844537727861728912531447306601748076768629025490914042269017279503469675204636229411864810789417810050552184918330131293212321203065468313998579633134875079855911490594510566763052407638930395332547851250047495049539170027419593552997269984336673406776553764355145521061583650927343871295061925750289700917044775447380941542488427415075934865563224320122842734156703858283776549680599246594273482232913648590616858308319657739657954548776080866518432058407821394322536616582119227775571240291574295009382571774944317894709300270336749059933587906858020335375197848300640346271526855483267818572011460834435863050547685271907606956851424071428137117643170389721567868889626481103225142067146510523342025692718119588958910998755768027550502084516834348045809752390510411828418825027301543228200668533717167809568982096107804848871859516442436220075511999521345848481275065807937114895231596309549814083555303247914651636945117800557355883044624352109593642273362098616487701417481862640990713835492064887086601192927913863181858425559763332799331540096750406629302301141759966069015525665932815892373881402173992701098955327936760454001326693345001912636041789326252992393594972144745351008749617848456104948350774397547572152264580740762169424186950493800134509478110871591952909159021219648390568528081163694486478952537130395439504085737109078101240640690422669045682175689376335791946265146419246443544220259509298497706811446312345135337674163872068717210806427300162609275749927326666266998173019795808460106686717769766222770839485975683392035023554388936797211475712637475142754118308555363238093407220777372808536248367754969307307996586982368794994329706402760214443270118560819045506244591784832648822789680154818698459833857374233707018122174311330117711293109531918344436782778170735566993254267342031586981157134920228998520899641734383638485141429089279050299120419430838885551699561921653136164460248153302112625203081584305709749234107699664117485985397452854831712896107925979649272617623689084339630368329729443515616508689348977182242377174399742524307203978686839262823021583904041672548097076398219864157109593746304558180450388338233470146979151105041133655230532074405819080279716627683928123007015028516360538928548511144084748845656266348452466131886996296107497145250956017446646347332139389805863508072794113368373441345738685075449306639328626382612495980474318556799183549058349709095362378057822816304218982722484018455680020948914843496079203240126352740937685346440219498792588760497283342266181153454802851761226928311607918125764647956930009845088995401311667884379129935625258449315695982707568059190392753689922582194838795594140186409043790331792770002161455475487450404994957031831945284960125834746793789451433465245620670079781604630555209036653999525159210731898526541111050305340729697751220039941462895117465145138863443545262572821590128849199734767691117431010000585516101516704830878001990996282146485349150208557201732712652776052350288904990331586411088169828899595609245525963471476900422297944564308697193779827658240194640949450205163394490105924139834679283262113115635293031662116925719986521518256082996011448410612398498722026752402791237531879156778086463874919478852984719443384439294615473519134729359732965146779589534172593164710500608511932688108520754428607706203463845156688506900114988501187975286390343904973982706615288271507857073504472600575725525368950023768922372534054137281319232362320206820883507575604480143111147361342605778450678771954279856071737980624996700966239067142832097240064720399199483166034152027428338770364700428516176506342262350554839085491460480119972653959272135671257494102016222047533233467775651064736751411021388080607302621569646516790125002057058383765697528475154132139123732177187516536274123284503157157849279886362279606561801182601913420592550962150040132087882299247637562218547885706546788230547333335979096620119067026281288625940823266017411628739126390920836208096265434433644594995829508077907055136927705320543514941810547384562775343890763521541805374100039186505448331324931610407605069284019188477708171612224045531170707720713788300623540234520050796536483187549291240279638331793583142955722620775045720745907281279155274785065471375613924028106233680906681659122596378525217259655525741115625663694019853210948409935858624637943695491642284183881071364819122430091527423480327690906533333287833071424534362027644807697298752101265406403233492853509867436992890395198504911496953574739139316262195555851068748851101622997556862011350889434900886567131382737902974089280111560489601843766609586825876101720480196895892036996350867941625944548923559009387555667601975117336263529967321281570975064917254679028058953317120121881337833737277938873223111672026017215567876073012372208859095939669247689313454974248621634949616315993448520626506918662716141039032518093535784812492667382872562025505374853339273790048977063453958041573279957100085427168964585586043454362531583814487290439191388697956526086143827610987541325586975068918164553596215448018532845625516001255302007348536595679146627188968136312512675057220765625401082475744190285321615597524369996234482100205004457008110627137479736524002014583428162036276744804400919840210079286224539523928881788797244158775159123543719183742989194381989407235892140271642679068579952981908520653947002042934688724600305876448313959331391942219028937001023205342810071905163391550915243663127975448647856891643312207979810612899252478835384735425750596758902221418300614563878758335338090088621426757305479792227970445072236463013021899899651220015114981719937910646198925411635985266437279821493233017994013925241874164083577022130854331639583954365178770022856677223273239711630424269516627324637484734751471801774456128613492682686034976406688458387712350674259698740513261590849942029871314812788679337482616639505377400957172154900332825940345276334277767330199374887767859772643400674938179333785263024501242314269688673108705446578414175091513980674408745480427757134420933182689555482179873701532624715888230878092854218171747696405436407748049258535801873861182653714856766850063470689311095618875940471002901283215047412953735029595019742140990580191112338127293079361995744372095792271174564230859212332042167168132643843959317884018555729207033637552444118755156273744580474969102200604631998675595385272639598822983080737412045996671766717290309779745432872579374218492207571465570112115149883059392271687270447673215907910759363351846251309386167823679256888212899874921754218116761508564896611961965612147122906036403775831553905624515257625099052616462317217411619296040833250687954845651593265228972760137681921075855924595185346794784490067068141949379602131887871222268143908317259282564288121917559012918662380002907877378260404906291741806235289916786666390683325095932810585174736293408143010649773075642805899621291386315158757520702184743589748543785888264013341115536538229059649060182634311185618887853201596595381251828435953105286944922832810704871876576745812273622606352380743152735473250427313948014596100731350421495220642368344340615119701752525225587118805688910922541958663099581713275066088945243843831352754394536787743410742021829688924228377392647018856559125742047419709211589833012995447584910270806949120645673158301939537877800659656567533146635537361401617901134640694316453997430519871756440737709295139451244897812749314351268687568088201674108254335457841868471971902864452111837652012619181727766882119293008855905092141092874887976369376696996680312592472813604208844412674548084601328410936250965999146286956034079630383035466812942598303841612860413186599597568998777674719569201946234913457293104936112739894849643649647727580029978081633412064589750864266780905625398944860431658526266012328581724028488359513872879830658708870833693493061758267217772729953135327615437345396877987402788827870418583090200235731657729737740165128601994414739537913698137208166970156506565171682476574836733655824701892125208715440652024279107418738609670351662888926843722350693524698840451605154038582632703492602211088205347193407510436755496465829733006261946390909211225002018115988719131559483077201735443247268258614936422018280199142945052065331835126845786266544506617164154269937750139334414130549026571450322627528478934026157929539529704058503214061385997371415778264697927618976916798312454284799454375458580788579249264736359220384357551570219030002887424111012533556869606112263245031091150332728198807232865965300285978215823913224709082477626606891014626702420956694468536645500595326069258725425612842224984087798802289813601904819082407774959798737784308675935834767470094296440609397174489858736108781128537141370791249310788991141707688720821338673570266100371743700946501823439305266942397714295413643299652482358943174802300514156907277581375571179606531211462027091311374661301161577404339092938460666799451335951860874450376919816860537286614861439894070103768776462034621256014975652389727141349844838798395418611474117434744481485662618133978560809311137644248271890839177109306664415105914125689469409875857983588801951948137715327752266863112599943736730185707530248402021737120483135131713533061917827034884022659800941804024229208611188694147114080688264947213719818847970577419111267846874687224032152832410507141015714509918038791483356883335251708390483156664157134583388819967578901255278403401196957190895299005796726859767132469167757313982018089055860149337011133891625161048021635852609988223671546098619451539090936959405622646046156046799894695072030598060931940867991910208161738613376527461876570091430568999913866939764783937817271243087530573101063423373978056128036185863699484318840907724419327009862315755301825236596540136609607542872803076795228002486761198148177437032362552695473921912441701789845248099391035055756601689110599021982947548799997887742532524853358797753504229559081998280608991761734284249970260316754400872811588533557420113776505288310520005847351780659669484550899184080626432620436331506288481795376911028877470653654067427862673517897457078390513496641085017015499469309310451069874312550376875302793772849694472414901311592816127971470136853548680391037563899388690911519150411158744908902497135822338354644818772443319667045122625871842974659575871652300295399257089998836865134654554958506306074687824349890385591654474701271280364814043714705948359258528528039149360082766933435237923512850789505692744529757079994460404802291003054289871970218089712585057733061073413840842919432475098051898032369788935372380572833128445415820942664482230643121827128320184202445947250464131204648964949351496873670082617649195665156569507788250964088827835647443887768255668822907698356225829824917003253577825773242813263564715006810948064195082831136401847041242241682740871356690274893444939869541897753387878771948312963490607606263671686560053589397242967670048537302482651023060895310626404821439887474961555128602060368075166502195696702982957106908031931724154898324468742908381802123208464710462941742427370232041255441920693646247503969412284322781498391134319291206346415153157624929375772945776029172154958788507338467277340323111186180532346830327482744311782271341418411017083670928959414256996429880310532144533406195805170859190362761537981335854428685046484482355881522618745133997515377828518158340319207950566874002988995586456445472776243250373415590123335586510197824098607820781852662450405004783295099609421418657228982970212750208039902568864500234542633739775806585796807045829713674934888605013611787155597192810081226854970568184493830582203128170604228244539548851395464359400876868424962112348017483931895724184037556732413058929147424322735419057026222213738630003803385996687188179067539743422495540924100830312804261927249611498106586503392050883482123534517763263369388456997151275070683617265271712930478736638136693336984537055132868758610414751453079861959112489730983735050347653183341162357231395957032500041024643981735397409541666330154106040872015815916778458515772561662740000831814570299315923465827266179053233224548069362410340324141822311976223509283798126264813885566338951285787469232879265926635406316423965364760229034933582001924585807083592178316009939084844109959101567469144641591167706792061774877709606271598100489815671934995513026984376799703124962852789833317417025068284413821366243883278669099157727963611777717462972420330796451053951650761979597959814996704290496168143632571895987089841882635463979974133772840059448636753579080861249096010281722713402354210396366554660018228510432647328805178329072270394575359200180610744196350975884109654657160765300207044818766581721014152445040019890956194228576840099569649881185947994841439989068353076693492473756207558251296946239626698163691024246644747229635018339013791169265256095641540718803424829349060484598152835697628938658507465938195910933184313785703863403038897818763970571286275276097904534751874411372808362702816376992083965621007786415241922915192772046533631099661129216384132901020278561992664300046223942044690717972908058358864487059568779129967073918718381548339769777262396403483558621296698288135163949086514231065779075649205514273686406912311761190912199963384124092780825699842846381568394387523350682163724236447133090789385836703210402847279080813093761627399956364620417089658856070541714428018731775889178859851607882578739498514410779701263421368638246268994363059351599695005151329621835361231349333516356505389328456402508254596020945655068279136419442592782744163318386419785887696991194774731465866133653710749901387007907729186701916275449071390485237281855400818661525452014832108344706705087174580427217654485589047866808807851795986863213443280598904973873055196243974974356944315645998070868317073947978985095957192228400552309597827612209448775561366689616700174162164407494978348430879368028510368166255382925911564355741997608306204332421879268076788270713355078000579380152166963987785896793795645211829043653447486501382689864061618225666326042474022130882116496291544415642035985025888723714350628281669604341296931975522108473578483803286947091989554307553557503355847991550655368737738106093550563571964058411448830053385426767732821544692153256917523235729575007356237223400217958052032355725214674136160344705586692895383321333414125902432990260591278038682653380242712623470975540980199326353787788723561967068915312325066784307059874156180287302133373071238754540808658140265358562461273578011940660629399175948397436042907436937924348538029865475171557919883548610213405250618023846338293682053181781316813452647534819726850557502190956474724867894530186051832105364632713855392388080947181721598926011152314467746818368614883100008305986912217633569717751446381294506521657919746157100821115277433327083540494608501192822815321375745307939110159441057588177127701106943277305586062330785550307887234740030047082314829026742433368584304133653973683770497641149638356192095292310574139126688500522202082589460231266776225331013527302906284451601709621352329557840243622429544222495916347852300143269748772435930255320177287520908303887413092189130846429657122782135211198913265153166138368072698454792642136096596229777677106355426288991998604762365428634265957682288603230688594569440626148105108772598655636324655107743346736461804566589836551540278208660247847145786206351216050791590579464018252187622888383695417662781568264028353588237901984140908349658684339846808246067735256008057541013218543249431859697590857830139914471649763580937388754465435173003684225205960392840212732951567884270837837759756818150724123640214170329297142941274610746923202309524925035008083663177125255194869298888861964355392524630125077653395975352398039543347582809313945250209963148535311045664102484050900904209373696437300550041989545592933416085567178116732244959088518512392004016509008320983114686424327597874972371605533794151735090540598679809978249364599525099806166250579810540921469554251498343168791571097130198069861894593094665408429811850488054520955344080727212948330571690389255335035229547401809853282398635396150263609142761392302802188070842850495649294439769495420259816953335990670164624177465879937270756779740295464311191195839083491204988341867397764639363284576810715819861405787047370808862853588968221427048775988781392737424512579799347716977502468649577458384297214017379101590255640791055496215146381375100604851900764602964167111576059014289180326917711369404902138550327983918482123955242430793741955870428561008121626011598604794901807743578971702505275216635548681746841866699018046011730216338460418446225066291470348482146354669907403591660344886133834611871418009684729070568237566599931800198338343134096350712221294989672575694700725175069310351069097432108749335445801895494198150795932403799696535624127506250675552045429346470998966398667835860627603570354157737273193725760013954093260591404868812956656877287768811456841360819285094263752087502860024188301621874656498730861289924315341138862295997650445178296802537074126314589319283663272950538736462007585216182315516273239777194923862339411750202431666258816159961058814325532906262246316723930394922772096337819698978719661765590751221765779033276788722003920003953655846308184859695337279158534247514330488521596248341883028323336681091388701358028934125419546905449955194467824839057762069496074355013619635688424821540644529228351481166960118635416302166658662475993514287080502230214390270755879963101167823642665890670178417689802178671738152213331220171560808523978328204374523080576904679920195312294843359627364124964999843456369987826860770522714407641499027036276245888133926649451384723101582583010694724489031268801369608041300924308752184821480115197166953650924611475224713896289391209155651203861276717413413753132350112015309863488655946313638592482672594694348692916414420928645218519221580867910332535080076179986766894448360876704496855038302212255804274033995057036505569981256747245125184815076175534081822739353545381458444592581487646760818128751780942048162100285532281225504105165484738728773023562282133612488870894668561342417730922993229174856688837187824162431080903566128374237282591706477758795642842601251210540620498469957459935950057190651281102221480994135963328711916860590623360898809152100799040350211875807220166792069820341286970639014179412092307788443610884258132438263191357117723325745088463161909734368818614974312653879368131857138577484036489681547096901608224444643012892431254938256588352119976580806446785169526723479878653324236939654749233619208795818122975355413776352403983188472638607651244466290796970531017616524853533539228503223126749437080699568326001180144627122553838152696806242447281564226173489884466198381363270717521785553736061919545829962982765149627330145069503238901401817318189861015576886666236934431421693847739294619021505887744913112845011165908976954495687706451484275104885729448088905990559672230740809133215035620991484443858064950438064125044075744343732803829756101262394126968578353453326887934963310372594465675092626662276192219758459357849084448731304469945715239466372144121056160497682428514659291530321113995128820741113511778778637168663020854153588625303726494466250495827964983945568871706319843652343521374676232403555208700283647652443934389432325736074576387290542096908496828969962493103395170482768115944643282157827165696568140315554293330187478731667727447016310783136285757135063462124738718743717021700953034194393887710703196423353167959454929255022244524119918825574070042356655295870041332497177346789008461852836851288716462626789753537844281776500948727158142540805474920465654371812193067023140269994151916964133384452478987837748390919280562019903371242606533874667210454050323244975780681365802463895349366670467738628551570385517929816489120581191560857424328368059139139115061213089362419368456588599314109441867325514822104694310288016895730652724416095243137098253194587878723132018676992515214720787598856509660823149445778307972857157646732655964183145812554950525376868376237059443091886284828104550367689761308380056955705017831138828994451402036487347654684034781133775212685965811135867888728413042706845849426304900277682315950108373440531913248201339687325009699084467970181486392875836654754290034847656816355254937769575288489861728563043017263017039444864687198110041742093165150138198665284788431429516647081795434381219550035973012642949228376420739369715127023097625894935245495564880896549925243310488807427316681287783129570579811046180850814771008752641838576266188001923257541174277538645660952020879316610203251752506448716177524960450490548635895978889701976683030005547141653604503429957011958948285908240438695371275720944419072425203273537887165774292083662740569712300898077436630206084357317723445318776476277207072049749768998575698645839500753298130056630604642869969307371300190457997072414902146791386873423844342064367993332873186491696343369434450310464011757549644484956613596142560841754826110003175712297884221612058315611865696833856703896376300804756925171288727148726626387218632941844183206092369115211263513748193401459603630091738437476838497832144620389425003787036850830953547697670447514546773428190229333504454471094550169865457989959075789786357305775022625628771201476199204489462532293860633241839306387987754010111227581567432653253594955827329590380862515524305426277656512381479007008919157111281866317578378415466700376246279567559853267843811951070954689999626048210287397230108942109714806386148771787198349454863203377936620045378155462304662982441104033006924977529228283861462858310203289337990932619505745525810670350342323081266262602008028863974656543088765666504732653650075745939784299990089656954680683588655516759430151059618144581107438380724007493868659348673561958079656113909568184281378398505706711937619756849449407858616750083878186264383933761264184447767639045442499196863695626542586396687203938371354402747759555741143480881259504375413035131272807541343053539064732572180084105955809244062748665531672934498098914285068419587133582499390562846043640654615198872951974366543956347687074808981472901922014713496524984772136193992040009350780844557799246092941861357715510914012316367639879244707837557262203544025031307880834326738652783879151547538415533805437879023827036783787326522112831770833140564441676628004190952523607824816563469099657702273262875533015538427272706735077445712222381886130221131588710435707290390815787653385186162589889286690226295303478734843380998470764340429539218444150634656962186516266109003007226910044364981150279587438360666920248066406702261014502681228064641963042105729779703545711960470422339062539472499235548821847461262384063556027466984284221527790889918131320419606384215455590303264943591028533410928326160387028578328433994616060418431458049089776362224391905052441577849826246105375049459802812212345923187862007535053558644571739361465735643471095624373449332119170951640310673179695964521423991664801556579973277544181834899496094080020359110455219658788966089823037943951694955892527538030224371218972825183968227276943945938226589567814705189168127566099124652487894396356744955083493858383009961877832183012967291406490852929849075888511559727493830316298623716309520370924856049453774015915853074901118248729009477055502337578330692744809830169891771009708374245349387791889561863133898257215984439143994062705664219789706513925630035931992108578618604729988431041561951105576764138515248241896104011336152156670940247866863893632687764071819139362594131773312930473947169394179153714532480098443848017721665361343555375407064256980490743599867425821034994540260802353579714948035909526474121957660776818712710603199824806920488407617890143824686817982374053034562954083899801212138054347905972013515247524368785721179898343317831345329547375881927039244756514354027318835669868937925387864481230111776212498080344115552370555128952606331748849317860596278726915445708034689930087990957311246230710134570376059680203609622469273925526386894043999764692573130562699728365143303963012807626748498779165719418578532699124641410535168624319642739796008393877496076851454225937512211332321965245653696996873964748540482013635526637562304445314595661039128677582825484743972817112662909718712296790241818920474782364358311655167570241109794892803567607311708192712853550131313299334478551860056883676665060892758593299206640531863930859395182153100857449588150127236642154038693373027264351787102810042596891289128643112436472920286172355271646119142089267392196724957825194755031376757985062785919865239300803519846680088686557762223847124215936705179896852634924707232197716177564599155319711300260588642317783628808564806510492435398620561236290219497882835381409650606295153077260771033442267381383643170728897014226031097403505273498740469452967717842322441896199653125742023232910557137924500443641774093641693801812278027007647988536456702658615113741006026600196262140250791843895591204601464852756638819709757757419895555807927480711445247830408366587732803590816107620563123949906492329813350715133175939885685809455205846898792166177054321979383312789013055003099833068325237313027460278241732779233065628833344832834270819720197097793118000383669233269124989697845149896985058387402351590735150106587254172235471502575452915728115168298592308207487011325025646411062722185471258112544672935356621786242615294498939314841928780590090966591064393631694536595188787591943005034549162148862423832787662628657179026384791366296994607066673586558428653627370462044629366314218376687845215162379608501907790482276098841734224641476185398965283440054996220393030632942291949045757431242809970426266016152829419246893446142089273528855702780369158136852344728186016243539676558253430598174593766714583311606194929630093049689697362207749403074046583010998250585152685814275263296454419821930780382651036422286966333439983110711975920296844708808322856415047938172338037620293594192014946854192440885469168417673158587009928166786510460696072655376147097539199836108718085075942212877749334789886282639267891783231573044779841472531519304957927249930738523372791505856447447316442392356157781189186991671224388869009624424486358139436152719124664253939439176980318466096179311337433571461570944991550072665617882158137510256546942830747027356759127575240358503860266619487277754871158466055364623128675586442472117693272056405074258662048290297501128326841192887635915089391892769727757009592373813432858917382031612252084823505084602210748640956314151820577553004323966696161284052036416913619067591312049979115678871908404650913246190701239876964028828593211650408768538767967283559837584375051986383265377549622439987196994795078301829751499486486897507441214806717265745018409272270504828222658613048641756295592639857839386736570727498141053070787491414780880627510755623284448610789049843523685134856573435496923879010295635684375018151550071639198140128136289760458527011022179135376829240493846322658777409155496699731685262729173165492508656023992807572270759930765425480999646663256779053071676147612154898978258449785552909025363082142490771151648833181206361103524176553445593415451003719131117642860455610542232537877822262854953405229458612134017291134298373922245520469461300550592962620966238326575889751989798945308792773972736879942550162678587701756541945857885463709014657610783283852644705545990203202465733696898699352208938890268387647908045543136437271936124033439073523234094184413973744756844371006952302564579364568107396926776966872961612251385210369238942616292006223759856718861080840390683710497955384288120479943827312834333578627233598988779390931442767839244406000641196596287093410952988546410519387061875041218361857983812559877854149520972829217621111610633613403278370139432613457516269248305422917312999229814285416530503744432057290699122129048328829266104041111563547473047182832919435380357071304315441973860817733551835042488196667142677127497091153995859560664076824024226371969951946132608649705175311272740078890299668416518485371697882010074915930847288057997790695148064910156254362965105160895597816665811014754025804754668973575784448223192302112728877308324854627662821448105749785648869464363271653457082889331306839567738535679042515882731544478799134532364422005352357473432326037780478090714239591396823341614110361169208958224080746478004919637120880514838851969316163732877291258518523293219234395440124578957620996993764887051559396395217375892312957132561469626454723459293449412095714972140606371618614650243641546357946552301485611711778984281505856429257396972043182269868205280943300834894395890521102988276587333876144468863752897012787193844737047819990511591894805169592936734880226911223549917369537334483575207414213237615748953323137593210032093921560182709006463555294259725475556778398424511017300190835161475124559892581442485943412485343233541785534598680141838595840752584750731392799456552734709014755156985483112100159682424876070511429834081514960760993116704603544394553629878481773403743970272642593713959601823524283101544163315617026122365753457431114745699316430079972820462121337123629887227719497936211029397085979554400782267972367177789165960776537003111356770412816733136723078797038104910647809005690105225820697572298765530155773496105586991146288616320808189039782204227906825752307188546908472200592554786299452308955595232578153543826222510991237001488671687927748350052311178757101772145953984853884359715966763528799239252048509318157854812239111254683854468179547242577542715256730392679701631413857155961892912351879971442722508408251416371969517642674661532307343031066702577897796616207972025543768532891616240090578511577007436895082441324865370092018350562918047267185090270005700822476166870783571420909392564425490076472439376610231914035954302686129598055528678468238594585828933054084769001180283412013328438345059186914497676339929587339056035089621921203428528351605165689461882685239449891680794935521244794340941814875281313281575688118638476275507718094727209417926620498667391077342380300070521759743123563284337862433627210283665012637610941758736167031266392973221558331616123797691361766772974634626137459926093036471706918151445525608139210169033861371960285157698127603212142643037448030152734177068218873141321112487484565260950302898222997903775575160069692162749347209413260829957475940360308357360130415178082362053019194732802469303435933064370195483314607784684182175863814723452381991236937129884594062296663128513348567584992233176657513237116338506422853230946752354350834827513649408457592290883348812035290266437588381225519041619362672491145640969462272327659828285200837821267452229596070218798452706124916457466499625198739930446133318319578677314964295861557533638028143527055729761328633901587644155860735623582076618725083080710989364345125829071545698345521934356262940869116393216530632942268058716071766476320210035146690507127327550191710650199089598127309739379912152347491379416499692273758694240164005412790228767511012380859163989033851220980405719335055882375881732276274122208074201228359806671196850706917206022423805196986981249682232251504719482046041960048210537823430747882913864384961146173736464944958061789202294032015646686120967632744525909455946440215505679600016734104623917869362716717537174675786812750120794124373933929389329662347293431152154842230679954624947641107011938307376208968604400127806122280841737182910176844707670989562672940416035277624935335404036637609349583595009578332062931476134922366469051258748759801457128275703748644377542264403152009510288157946968551767408414748236616696743528306100758289437094163193097108309011987310035356625291532123054551752561630878288543977460285580110148585791361039454739969092114290338067287634327397787561507140050450946851660072720392098101009670963418834191326223630406218969393144142949778377988553646149751123207301863421710123005395068097754979368155219549041366498619429952155018634339761638838377152899207716957458791581306387311174007741839721544136503653605968448052521492659355300315258404152511094808557895825813667511669714223904093524298054071018146153302400415571707310417117005478797167460050787371144417335764353330201653639774390491957990932582121224103229412984808941997002750193733573736422725517036527179056421149903016336996818377691481168738462446341433363607073180969349762177477948700574694321862858371025012379140253563923907905271750075496201075506628231154127223410001432239497574795961908038251661984745264063307566982566283181633011067731501557860794150545435515057059400573765277079934023448161707490980512047454055948795895283747492453134767930670166868005483141905271871032788883800641431650692216948258084219162476960870954745731988382169711599399142860076649873719051442753328880138145842805108807623967841084966307168651500863790141139944116324181421376209102895732211424059275778620882716046789564554089217225762699508537085769532223081598988760312285179102841915824755250979017273698428073351252959183668654468519699727876228113179326494381105996869872112615614440228563668847582639671992189811615198367598521894655997638493141166303401372628662703155474769019472398888380842147179952650296734919312138211748836255204968124279758322990023308833958456893882362418810956508582775813489148013253368928428028832000973636899203037873558831052510667948515500818592127758738096961569818404374431803751016849177435483054335143539203129917523282165993175486792688273841118171433291909614854330976651548895659957866513528223219720407795164969844375158695982379202024799701766758182440005343284866796387848126351483665960774122586762178409055974170978191668207931153020010738884271290421983927711705070407053975564315242002622774187415019943525262971743728652432022873647874382515523175345790554890387199663911880590064698356971838371451057666958505158799237052708264785061873567771622656060447732038876222892819190292099748365506004909054219514567847665891227827669258568028933903338680802427751194160213993679370816533617822999928054744899801834452454257013694584692417876838434496525776313863074536735202956012486011496459354400065334953624320443822851504982765665662472947400187039459967108942904548358148964144804753195501343902217474936703429821285136342617579347668948314442637714505771178541957883817667613089503557564728519989755207637198067657704266511352645964984648813508356591586951537141499616977521701367796614887575651189956263663332508266063411137949259280088060032865242631704441520971882496149757493299741801147519742424742917798249564949606161810739157610458307361488420408736799023172121770616438848610570269132753599092278016828576519327444043241333021406877619190441293326381050518303264461678286848343873582610165662732708828899186408724841067160558735176339225550453047450172100821365652676445213327176942604949048200124643044544248959077436018678569375976790533715932722453018572513987494708600604744122740398577981928506692695708491077607897102016823581182033220892287998309030133849096817094349500830484310858844738994202288732079931838851290277918579254612500344817909984307166091972174317236371805214677538915478367867866207999021521535814637034318758797226894968725057074092451514736780462799937489354840107357582756322340871358604507014513910912548604252518773627339323032622521440346694681938905047502155873279020539850026413376765349323322467414397115990563603552667280869557112597533830588360874455436453309800360627181671368594750564719704945247400678540077784845276901341878348601828029778083268289878410098019308427416064172244143616710646458478945917435164547586816267237341928564270874387414470955919340072856412286641650611408543296527739909715719807178459436174648996713953136486829054336494315252706700115168503012477257031602122135559036306153198555442379501603202834487913488233048158170218262882018327994462830477385831131473394599473819127772038221108636141491704152203582847270306687326012117086459955095522902285289606936829300625551539191854551297047752456086178597695735315792517206056769256670617929886998976378951807810227580348520318890819635492469879922607035668277663019267914464620301198349950619968935791383308749074553101599705964968679179878512305559465126118110210229023655645660299447207365459311581273272358934370575036724868101380206240484851716645075529570237059268542320553867129862814989158089688597682318242399652912910486840842548288417367364762084221318515046119977421727581368679594356063712211578885994685835917665868770372223386838830755138218596927221194593230189404052982684920588482005326923669593175778972555609216997257636892448442272165352971431996622228854463013497310935819960386710878936460502904009426917967556877783978051196972427761607129785770864043490802546961230353148159164547855628358149738123425368808770022885826249556842897846987634310759176661199401396704776968226172616142406605036265991503202471981943513471405175097623773785554434356840249499920457717745284395036274408062246403132616946747800592321692169817883909629058543364193986068041418834463734906670845885721577367570717466848965317487311758632165456055742439906512489603794641398426513069764578775937128522944014961112770447306725970682037855841031529971076734146193067641141230403665411122255079260000319472786120236297387953825819181031960066413731113693857763739113462471275745922184471415064597142945532159671617808175875158177303744244427898174265548120057176907599108106413999100131305284219614247530835937423105440376569232439961404409554487636646631032968553088970723043626187802056583051209033037925347001624633028399559189579580081320472623437350418878367085054964707346538000128414287340122067561119814041534844236089244503800224720812257789420174180726253377162630160127143154540092326107351390648823759735480352950224476603943972499780720074515796992060849913120344453639036018877035563516049994491978642108907027705567444120851066990620395205207124018534427635331947781434149226178079958102382595657429497825251114628415839977499060849095739888653836316259043395317256715102002982527777086010620145541066767191731194794122955240596975198945815298264618026222337913113020862980554316833360375547802762106703176399131099358897939586439712482421467522523038086633137346801377651052331702256267883155065713917711022434756464263853907864758409295582034151222885760729235829963498213838890009296829683002037498376806415399760152365055642318848539422352152276487166951127110841942861779828652665709455048441645872695372614807565107143222049264175207932599489352879109127038490217686716298367653679535089527941957263244596456038626546794618671058378991591380652278027869317861922971590409475033322508754586083444969994913476914375950345875805263389631135013756809605209374028700888058573876327244247285468432279819678767376301552881547390392908411592518443932706522626217217541262731231887533403264306056821602604409554692438436956504234108667085769613088851201274992263256228755531252107401146524562991451711381046549796483082597171160897748095822658155891026073571478982005860091051867098885691700350736320503126153370584287947941946396664184796926591766556484413834076207694814261720542338842635480147669990930676589277313330063654454972627004363892157902569887785295876444638833409761396928314094306247660700403213865881201639559500162442813302378343926683908304823566966239952479527703769873910867197394668878234810900227785306650553122985120286749543893588181006848123629439921598640307426284264466545575878566116884258826037273274806979922798100286056161825310894304157348511821251939206076896341420001342188623194176672283790127903785943770882503256493315542383321369013202868929581944986250735051320882043958664885582235060427036633713255616146935928616583218244459383146991512413639231564646878539244857291747627630196889347132471288747636798502634911767394063667088209310409302890146104515322300310289597547129455200413560792971975431316430624808832951038149842562699982747640918962313353736766515328056828818459072554443568143086342587538920499153570587674674714657672198513344012567710092591224336671993823497917593456315258709119858028970768923509034709054044419438818738377986564685542966079034512570507584874466861523591757893631956371234435057395016692896100951479934515590001070983784687665240090977817286244251415127241240566167834129357357363946341419854329137021412635296123226064966416170132357941594992712676205039334953055550528296120673459167537638114497182292930415837708694205452590677367597072553578995048689396677017461345238239302908483301650504262825691596661818083796845305523935025306549290902269882940586316151611343214742135436813199966522016000976847340804538200224664483494451227116548600269227453088899021096977597295179544669471012459277877417842293805544948284930245462608133629351657175660345303346641395329606546645318318277134546113623586368363153009930841824693511923747558418584858899221301880408607304419101258965146804655285763459253434363532408877582751444883235275840615259433180943944027966689801066260524331804450390702621283687857815445170232572911271712031161547617945306307595803195016890669628698357605637824452812622719042702975587197699531517248614794913182113280109154586843800886890838624058798317812405793078197098262867643209625275873214375285912173456247192411388502568447572007686652092482090511077693867783444485477222232496346242987174030736579980230548538234226851006310165283814307046727371104612819376122697597178237119187287675417045613843342774293433196554998828689551734786426527091854956733140746378908335928917105106932376901004770152277521867867771584937007393887646296605509946311697070683218909827938589750642703176679823297225539234617368679127122508459603437443566182868706749403916142681050497526489760005237936040383249072921688256827713659893967515675707500537014947485331222948547785219956768201193102323499945881108594923220002741979798616872127886997547801281043108726236962265289479732668804918899081653416043513315336534616425717357315709785928847442944075668778040057748872714817781451498315376100771041810899238109624107721712769616202109285022941345985465806225263460054070756155069416836458341579513525024987157518433767337224805180123954870544202790719558857200408474350238976971968662091162601893720900375622878817572511532225603929291085578768490104979553688270397280829608307031768732356526443929216160267256467519017205033623036530399199842565150693017348043877387809517592614370273936702548620196279935220033797115134280171809161164856847714829589962042601081865391260388441340001196408659589441227480809405417275586162696530015684039505981791518538509901138874649526803401449776783978848268791495397369193576246241467076097247637360815267056512417646152050710819645300156502146159887701102170728949685010798152402428989935821558639896760526484989954221168324154064800799969925859168574065433756856097460130429429394653076645142094033407289383306241128021484646851907400793246563181728314658964511524092612464202077365741596370543432590545514806671912352154782145363769763700412153963649472626040042257259289930137130402940403965664565548484490607115092696091419703161301138140201041750964751047938977900810276228918400879368581325296248037616041953418025738679187843889069888820883819869227852054520283633928697646145720133333882330062959714060577911139519683034116902170044808331304480891700049677453559362428801018609893601981166080561666885166858143694485838462460244750184321200665388000442876456112514641295635620701241183716523617077669700091839331974594807716657332062730554374325530834010359815610629884114577198842650667633957236575414468136041980518015991416478421369114137251826794966167200957863140204575205201412686390065448838622043313069943387213016897014044203452842587758018214316354692856155077243231879397706219860032563668839301464610179882667055976778143559219741812200528135824589303721483366084056565344814454214196427821084581325951943679005207266106487185062064453338181771748593439337813763623061636160717749335326582391616153078820236807675930387675203586751924836491942383949795254645500075205495780128823507779111498228955324694416012463524325171222276680599860360830605643879208477746728266077107194431027139431139853862107551067464443966875541821082427610370112736789428980262618940972134057704462768464994001254246369354900403084786005545111608486997141419281356187623978391662367046723851703960355984314973383073360528924989366072856912938358978558603519177412207449084210939587860813840908798392566239340703943670409036024819948990064750191380530888012950846180150193060548418082971410140620839703757437293865076247852132748740482878478116187498308552207585847636094600261345655913966365714271660013169373742419239168316926302281648522368017159931518377889345975465998400223748910472629606973266296914970617848915613803096401779531414322223383774723146374767427744477274296529492404481833988913712209563011228746492397940226845141969615379569077982389213547675672088674613589333730904133000949571745599378618642123346819079558091318307935066347349967989539022683797663708786985498267186297860026641615656365030263298559541400583852092620787734959431678139634296026769625655223957939674772748824300507634027009832053761437370636764208148183796288932318036011612934243002689863454806256382073048113895559924692158769861610938405345393549212934351198536373878653879681232352603544629564185268458627238153497541329178285340603853611751310510640474486305136689204497951395492323510712904550662195167724606925615840872205461745605157882176452679437590551634516867206188619972152472705426921073444854268596873961428777196178264798542737098911641189292115198228132042303273933402091919451132029017128417940734837002165906409647306301190331477071235603832215385774625085904151175305924730140213392080203776462242281765331819008297419895691944378381624959533786298683547049050375047741420285454222812774004866891639807553605394860208656578366334661910178676195557469413531291319881616374138132641213582019052083895332142344260057791567737056930846431743879570039684101861907729407358741333301778206211284145029252718669499036558482091598735915240723095070436904594947496075136533666379930309514287596257956153571498200632314011033720173697339532436039082566586446984928451838643360121827955620377534298333289370383657666495105654338529112658000628802053906949848380707829880213156543876350890268748500954708654303056893226471899760255365052846381283400325789649800526800058107129657413413473991926395793415160446748944944994492882773081981372313311105954092973559647999260447764665524567665702537240157115460584102902582979379961521178114286265680766079555453266162087547349619561253161406616943893975403746830056833927197731205977017901282536027686682287412121868595452545397756946175986981958760118751341253807763466297321135301811254418743169124522410635936539704817889975542320507710368243701521282528908523838941775867503551596080785988612921503763073638877528247275448366342666520997616458793579862984722423574302156254472094733653162562594799368053629922078003751592496864514445929081182026218851034056178019750165904293127459035181029759943380395644832194901104593585740704372759676706391346841723599275200910600970995544078928639503583397971892389523787190457271929692636668499279384770644604745388818911133728684918599124979443558463676065657728792336312201643745374598369958319963752360081059036728083626614925478423380770844643139451103211217438441579881228612883950425198698572898193347091807669742967166422232244239296346918549719703684190144139514961219090422629700541487654783966246161876680729156598323254386585414564738576620218366544869170099458063230836687814922017853466593072167213657112130539299662927146326671629121659076465872523815292017350344241962112177451968656913169409797430749727507585889125173967335695117423666212502548351517838469671792773364341764310369642408577447891610835996630161419003970536539456018181489007275790588381621382069064968030385923249456399850744709896089379368389586177361917534625746169678591998572404313221623546773786982138600838742334958871069233975694071017931638006279862618097951997565947853013429928041898786599188137957004024693473784916004888158157821195021321660921353784038929060631817949200845012721017353688479302378361540703275506481328152709482759132602366080103599766827186348851596048505768895811574462250849665113994827030616174589647630309218369905769491570363361213450387290650283104669343460350925624693872239053125556051847622667199149472188058060005522498736368206756256260012667781659064185161182279233367974164481106883338942019217821255339134539175383834344504118536526226586598299083350879727169247819207532861803647212815433495253309646078462529785894992765724416026138211999053401186978588600126898095023497031199115713958910673073982139168899236001968980007049842243541057698641801286086223814130148337434512360321783006381303106781782241907300318517397074095490311690005117315560675412440760343954165977431414037799243956011349580112126985536766002728902195135522466911168008304246770862847894124310722336886804899425640525033353263022819059122746779264132406559016440104852645018855179082127610329916104959798038644711706515231067020101010523186806850237242118150343993374474036101481276666741507485950068180484349470979166698896527340670621764183732288483814847593010715436741432399547008124834657305954920799775811721539512416003202529311293359635279186747777256656865587352774802751687956982111238416851825021909646728548326114579992627194321471613657360764274932940862688140004047515321700599752961945867392728648821028088801453708148951522534190898178756260109840688037373970987785374633103576454288348141590306485641227572388931207152310252317538503737831480428688527532354617729321230759781069158133018650765808965259601490639649483154241725872156500206273658609972411247420602834036160775086107476461213743448409787835136513883050453767925199819067873850969532348514553648842443188816265288562934796608316294829941663453214640469342817034033523162667675816486981445934184086896215554715886856580579995405042566299382593371682471569016628554194865095882746849053515346426414738018464771702315734103457342490374526189242310889599067898382771631567742145803202239127326856295196570621447379956968020305120617088031149536807122324859848287563251675790952121679786564078757688270430170375733455656548793466466957955382219758255975857713310812209076876882588157853062144979261141534105021853292790699082699990100822426070181996796538603842881925055566654808078303962750575369521570839038349261854486135755751072349155588371493017690284529049139641596241736075294301961271000279330162990717133641418077904078015692128020291577940012695628475155482661243466247396361519838325372413795675957616482695210137828386859985798391449941968353039519073272250283519039716541559100214852438483726356961656889922613749775239967767498434009571816350879571208071507017243426471480495271446822830105764470624561570200929292641157821640990331857597540840088680494275345642092225486889888700657215722509656472167174678394758106873490949072645280852551220540107167826689422624402827016372726699175916926002733529221528921799336428810479587291292909516277062401391986664738830381536068637872726103516598708224639985637099873563399800674732454472562683497558576292785014279009585595346795854816483217492368425987161269148322933769407003652831800726704116464140853006252978294895416113239984426798641826849666435961505883724008628439356061338854348647023397041824333188252034558728250850327426210769051753402253281098478292225266030140512914343286491465342867755412661669473385546878929427893864190188188409749394221279626795771022358099286811011537247542279651282207569039526316293361135039347532049204084565687124842839715949188494520602773180628007356252220900832936864929249370992309507786309434674012872601456061136778433453890916794558476495524253004431611903453012725854978503862940233314994791620537841473870269887400234593186055726548653307869032687964961639588485761862745892873012904720773920164419348574783782564690049231212146463996064588722955203968136303486413966934754446916744046986792499355220531615390846324787316636586066220967470563474026953498885039308509658154636001401660681793763770200867013494010660118708099937042634008266385464412993553960035430165205291305943217693349350414200965111377279711770623396468500177545871064503327211213306503017589379537755764179747702918445484508584708683940522164452243196057294355833271358597166802818780202281480341855026815736916949915405297324826290875705553255616059001515802940733391487769706641683572216772583824496028324070668331627334823681250494324481649918610967575267803234676788318103693642537277557936513161961103831901356465741329642349927875972268363040537595465346098898843500184406166462712668213822081634470222103816130078502001585093792081924946158354812057304677035200253154537225666485215280661343502356765305563295746721076353237118716559875815637831535913518386286950229451060262714268780914850098066767364560250524104436273105366218637411518117126357869406311160801901635643503699110898231961874047316529132849613602496276744425522482250088491958368704459927577278475371123677074604916452931874843226396422544302474374652680190262885767727942253766562983317307902867141583311248964716915157405534862142637197092632456355211340938825841113418979686540736546998296974021778758839563145318773503682415266051287492028312658213762694509169557589994867943483171933399850693303831606126331141790460800390833093054927513234312903330249938309132519063095654552652698383872292135968100444690758210396352337725857246773225821295337088319374114564095617864649354681069068573970873041690178449861202005181937263450282866350874920266212030021338850187101186927913368975566773086175734407859825144374895278760301573157990970940800722209548617445917180892899033494337371574195685361171976858638669356480891455909829190284655836080228352129778165085126916388810287714946910961616620612922825459804153837242492358830542756652129840032498534340364167004921269061873829209344340536732911990876019824110563361167206675218758474941212855420680733529695885211508778657592898719563439793480954537106934637310439306234557572606450048949320647796150182105914625948257748124465260928554506189998784450953290640353135596032538148256350183450196230117396576724046997617011098145032733706587945633404150988698852819531577359615444276632383204038295756207629259686659926656372616185312901373950623427537460733125462491042046726083839773241343266383128096867549890957064188689270095167100398442708347169213032414214169989195632495628106994113908442713097107486167556268159615580513332626535578199276744529910245708835748458159804081034823301866566393178604831187477041880884433116665242109067972113657850371547543470020333409404981109522738473930970168654473557580109202604525750990935300819649109652723951891364407547828148106359529334527202473181633578517728201400674478958190631475776589522519134291687182991400298129061687515773422716008799524923983957155852028639848841587467607299342760394887568742346069461051668480737782835809357616864533292775341737218706109150282960732538441734381777314145723879281292104838665243728017421375325445303637717768312997837661796454081831760679594382716811658186773672542352300041546622657142746164009740761392078616770940041569303083445830383612594410753166920853998782117947137788584060412526390207444591549706141619963565842265423863363624716578094713958624220852142019535185431447239721258743648976882388954084397785616805964727816172461082235195149853563232073538728221880856542339998289835024411118390224111943205992739272546744561853598602972428015220904689066683725043408205828162479402821884003323034210461234767127987490417033010875560750774107560156293907204543895810099937216853889718885066148895456507561928723280907371047838887204581999190005010308971989691021956285143202502727862735156455681408402771129816326021367332009885307216022603664327389284910198212075307642394546074460794058331447088729453071948131274334037543064443271699020735236932405550485993952923373054132814349403477650591533984078047810069750487958936464906517990775954602635073932278331446206843913830037447535046586908648953080747598996495476354145074302259276857442097281584371987864496277461290421476828379895838266138598238615962941604759847691893318864335321285922914075773993038542044373018628456993780658472774641545039200252190409712653133578606388985587837631023796815925619931880652323959836362529168141030368695775638581249726301712666584048488068909872790047882104871790736021158982510153082045718595153079670482735743130061430617535788411683875624459371389483569537789239838531350492636867908136936562964496009595806655869110848390914457386720731350539324528451175187028368140688174290322306733736001880257098460978191593754449510306178586867961018869671784173663327682562603109071820709074362065967683367682912668725203102035053090274542843855278046130966439827740600944480839088568087820372725518989661269467296502864363385608779829111682315974104653058239482778994893910180214465922871783538462663503296305877266819152560991913692342557454263120239476100433609581616206609167339493738074132983282829435032578038975328510524653650425149142604269887045417972560184974220958254966478710435685741926115124724192798113103778850251494393267261902333442428389269249857870528716074153451063236318189788246261342562553280125969477562089131205601378156199394312465331041286056516037701575147685022869319294703181645670044777439251190480619080088201587426787778472677095352913591784499131075528386198323002574471607377443755714834939208929961031670767351760612290566576525815026072978133209139585276165213946399855450195665308924096483730155471090202228324862463868428285112156004941623233074687009714586813207896534401976404100867949838738898105131380237300680795790048890344164777957449874883030463092376908135786866508136431867447160476760726519109586473247266932320386773833777291593658028084042924981493187587815831200093111359461731249624416468049344395363344255052906631208487195424034821934666311035128581477859837323738093188934383244733509983815145043856075382650240569661511987445104658087618575753598046811003565503372852576377898756161451455859075042248197767613959435939099352416530312734374894283778298814926577948020384136295079803453963544856932983651509538426749404040591888144726058325991185013275393700854092749441480458329850404885553658405435252956945394945870508659462190870083937702636297031966349675585484404350863787761972088673520359373680002697983330848961471356751026256056561978239486652917651684511271586491773893850118502057156524187598437098963839726767648747690986157138285169903699523796584569491098633605965240642145340487955801562779200363539588685057766782166759804040320757634389093915814983445552788034443376572323340591238013297353777681357782034152972283481225844497893354792740060421947218281776131639658214169910327895411130598852095278038373253145311603545626097935635406862019837845646755656848712964184395511802854443272152030024582889278701166262285957279142095408234335255917893878536821158284630438086347672947914901017302736719307161303036242411072860867710527950935483836880675363370343562559326761375449149475042034185980089458862011039758733052501198359253738451046802569402533846093384205739897911577920832565127888773675170335572752479864595570819209765905778593909459072867371309684972280559327632088677031875132655392324075781478298038027086430405149631999518662842406185230004535083906930793272620500988381468075457668589563725440929435343848441589527944980134464888029983067406962306821087346246143882400210201292135391412526604514541094478444352768794268519002526391942724631795516205322209425891997029226511364836034033951457537619064091929751982211573047365443099059854563604990853245623087629767062517133476328941221736376923362757097705397769305611822663408998105779165119726028473949959806210890030265333920357343666312156370638071466155819189365997892928876560369049688514787657025476628564763598851072551948803141141470851075679850130516112190662775266295246757505333443093218186767932838957743201532012406594870239802664082357643390199025918836929593383138117378922940972698223539708686562943812603711637814032526352777422750188033198916547504917351239232744370320463522588523489508719357446150157908038911989479961157170230143922966282739142020554544862332199622919380519659566888327485466186864792986372772019623227167597099673250536711430683075581082876869429961560862542517822892025815744492540573277345718545249424536873954700067535432314105778770606292063177467981806948972590277510845850863163855717022891659039077680657978322371523984816374185906595681813385740620289429933252470757143703185429386870203763846932787682231872272485553276971232222881627365880266970735029922867303955079474949156711514730289364881227443245990436525880763508546345138527779954412960660208967426124223625868508167472054634631276752238685829053599053490783333351777431528149544795333391628935504554849860791852999001000557826348372755385162575246316923844632415929133367054143069904510818814306954995097289628458869722561118507770157126061617287495977530917303273470423895288681806820739864561555117193804220862748644917777767819546200075836354580882556492442116678901706255729709704302917326999068916428043690374551974556391492415674136474177758734744677984745489223840382994915256875047074866059636101499065681552886186787240141413337719285007934485233865443884727792163101437675462583677469089634221768196335271650243349418227278116627698250568382083525478296035241529080807677894747764577292996608162523956695686578880968978023757318392584500074187216946474098530646380046800949642210615705789488242176120608902327509071453951487380346854459244790289688973794243520182934932277765817403083177004282524757414263526354490333581679337767252863659052786259430817042006741690219993686768250073247058981805418853914534004750075916197087571578677498103322303215364318258558636434669274685073917420074627545039999411528724328625211220224617033570666284345354238555535785495181955549866735019939121751776034257643307655611912537747340889590492995586110648045201679728349801296894244697183231583557999017200021502850143411680746915311043442436784445271850398873844754292140227035956652525101033376502409680284329827869500419186160598669020515415710092039899039847455842463241466522286393764093176724293635775287222109415237506147304676162911265189708219420915932259622303938140383894549030504913925875518404583841256804585723676337103618429808039821662528253817354309627588879089174031039491247422972468447265985236192485870090686051321254802735985803796747805585192898476346241709620511230098638834236589783713136123845270081909329171788148261174869211068800551040449433447102421035353920685814804679610253989509511799039126732780444829979133654911204864971658677855345315855847469112725226331208766686069663665336346417362633441912845941870718638127890272794026675933116505691010805349241669108767450928945711485104047746136908878987117321042546212470028093095903785450719041941505072718741094200393355959101708791965000814989775956336197088074417107756881785795513458089002144019243714610862827507339121938522907026840280800203196843966961754285226412433433564603574741997016002251084509252409867433968348283936880413733033259726444411209294317336574072226856699654977729540891900930742189269824361192796475063179975249634261206786879042497935020277681641422011117671875027155283009129708253996904573427555948521952016343989493089577684920952355331918728487832841812722249919816732695595594934281997085580194452021265605665212526896188655197333186264514177174980808509389832696408313202427028702417108255883169627898956736611303966354616612399849544615778994553734562265082112027892891543634430931100580164074911402393870132867091662594998466887760470216994052098582065570717372642041549002824472007905106738502355290786284683044981935682729298259051731745377770559154365740540374879496184150810821271456141811288615196609396414053460448583632365831615942505132396056245427155753631300311399643745042269699561282029263481767359288485886595979483569920004932490143391429940875948332314221311527767253185206288692509834969710809906718434377193076429371277800614833982740819570789771409061440039975199992842634660379776633036041033425999321106414619825810298864644020444008211833933217935059679621483466997981778522533702732406529257808612794009667909391920155730868429941451391306318449782612415382678509162715360992007444922232244672799662593227429596898521491650453168501988818063156825461479541351556509468558515895642331938860917275128739088640484454504906850814699733934710345029141527839683099934608348780659005205226794773584874048368259680172405889474484640685368971090963819635115256740702106618882196431341406797654775825406903090348471083583615055400312532986244994932117092105326956922703247498051725871557501558216040882077163107970438598921174049810112967797138843468205922835617105710341741397384394884157506008973939760538943402756861406490555970235283746297184176379813761707386541224973696843038276368820355327780032998804825816857537543772993906404741308377958877660984614012792659214996639742620805503715043183893807356008397906708912403498296571682653191416579380452768797855367152199916709800175460861539874967745178502115936105212534982895377113758644637281144048099721337043651334744192753746446157557255398524816585203744153115328744069818011637904441075754711899898732651708935918894482869872293611814661734150422508802975778653668403269721708596009013182400596948692482863284620594065929530521887928534869561786454355708869838268275380154140015430009453555925980815135666880554834381589240867471340345825007374769294182356766522037590911431534754667274360195657971588387391477818646293549582420353296024296789179641859937790790457500287335053582638126432367106296114288739924201594893231558569456502335822267770532253262933982863598204991534216043123477695991513351695997339204720596077611018333072706491229579868261934793316477891803317823306978978897606533212505215644347904281885927630215102926292047074741504831191987869802937440382345617862135522560674523832610330524771069291642786744982638490810640943411749068753997237844811925556405452852506767132930901437373351917521957497417220403310604390759746575502682582403745269819727880587418111849807106527089532694439441658710981705160941215419687446789251584382447967478116637360772314877406109537232251090918131977952476601646852270772786114621925627319146709395605892918115662232002287566413590301070322479516987300335717713030217921491834472820057839153355703070485840283338948471025455738618212900124085041859338489012408980060893413536183414501884759332617905473414386978224816813006142526535091547318388709998119117463026835276713351578533043972448281114650838789175019148336368833213943648381324275300658020364461302420158968395999585599131814968867544705371704452916216104047896423519312596563001331129907988172373751239991089535098938098728331727987900888101533459957568106499944203622545673965514592470480055969962327364786303335804540696665490813127930216713014799497441355512017883552702890097932107117124641450419032858622809793460029714954058695738396597107830945514135944991018453219242790379083055597339061538644898938557059010193835902405192172742218993220148624787219751777895507532064780019315833109589599488254542250085245236333143202070995427617310035201172889280735016599639345467882161482105088984753659691844705450724127910613546022807904419545173640043872926824973791709397135500876079136700455266041238186221966987975568513181145435247932003638835787388221227533049732373255759307119601122063562851193118204518241798909078213598331280091192789787131445136792807244526890247226927461996819711366110558727686431689420654985013624787615666878389194525853049643016222101394183891790350995739827009322707533891138267933551369203850592160347357177059290783007768417362203444367638332321755131169092634693603108427062970401868998618175375376945052066730419263544268305309013934451629959491802604755997533683969321796518509630159521233618541102550102478419928271070214671082474368735642672219544045999680807942819896641098289514132318575773604050265377206519065512942229059716743019097570585660240057756881382648269097752315480675150439463603491665797289618837336563105927713840175156437472568132009168963295063265774892233188948254509054109448533357501983394353053430865738987014774727954494760181876439013263765803014573526362174783477626304458338657088870287631401068250061254074151430699345632292723219450559233834063364750355509050105122020169497282998159218766809761312108008312430073828539338659228874626735505081746842343597537757752010226834125310425117609687804210971075817839979229578915295988550927547449098809354615148701191874947262643435519740406847423154261803493076673140824126213649355239705990071018912485488860433612968516686549375257818119129125522480886726441985956301063568196880262988089752868844468298916653558785714782222191016215164933631197824645160297782089817312364698022507853045916181879787721527273671724269791545177368150863605272460658778967223746717415282269046488306514668970046379401994859594496007057572688397773987139070979041826976700498642978532540133194911869643437290687392172588794301578262219152160695828318531442129906344121523636507796142930298950429035069099018239405411198123165738605478974130686429553872520924484769719973429310397051293247412246151003585870947277394161938198321287778027052862669504313588516717322737067434399824993089817118238633399859235437210018064801003292193844940605034042234807818444931011235702187222481835621049290027547371585478560424008783430267006264809234024582604397582517836488242499220315064044758721027071142267958443113069702594679902790017534280557139335436955085993463845918064723174195100297796693542233517209799231339672361498067326237448301402849527076203231538039972379548224124952812151968507262770709191507419511728347502462607511358392627465382062880237090659789557825349971921357780380058910228091567761681876156180862524466079444521505347183783082919577915540990157727003238337880099656402804420063853080666684018353361560695391376244652117101914434437220931708845147505875462608746940702691093083653826003586136149872071338009580934380162631287393228899612164713526423284760904586268554042498410970488888193787815571429329387527102546219003365409773514710548553318337442331037532817883506412821262820429026563930021726831394121786891921900007447994338365026780753286134400051204512553995891915880128165998857530489237379528217774216161451948575927089952325217389788336622253178184317803561336359554133798661606937121295407133820977985743459567193898156033972741476551957075602261941361812511210188155783418393680329583499939520608822548735424044076834013368573733789787731097086607499192882981520407446667862017669117852704803317548622659665134468069252291930203784988988799858760204682810110680639528317893650930986651833173727034585171986206412247387885564367172506171512128791934900531623001275255493756472249656548827624536206268938547374764678158226047043992287218342933780436916043493420875444038328232391868786983555214262639370899573956701000750492299083109268784894442034333736667322052368492981356976551823698574927624018068078610367689228898287183756421558140939401075949041224102628869252596270749774828073952236565807563157701656826472429105242277766370206925209163270712088497209468759186998320742876133382246586267775185681582893966434722578551414751267145148179960727131836325514077317438843204419450422869506882864731551853549316808160834479471742905346633464115498428768955150855654731902526519928624691257683833037335089778406190643997083753645782244433436593562168399742531647300258343053316504018485285942824644636919079892546560882622471423237501407980225755127200703965665474215577113976728285089488117039348805053336992344249581094897796838954051201579783105705798902236592973916414193371900407294388741050119230804776923684300560359044279439561328768107186855246703386023998278845474195835290853737633179975339160926913374619494669262168382241855714182583291849278638459663209007348472199509865338408545592374877245505573945896910374268665641088488827535156949363042322309672781304835251093241788653358290912044760663201808879220989452547170495145078585612450204972922897646755606613076692069194365889573832017632500893667863618209630211570047639530853940094404985643484173132139909049026982725879937765831253149779320649789510239605255720873068031282961107056882048315134280284800098178574405237204947631763604313876030137952928749512200902661590223245834406399298195549197031350628870934306762156078854558448566739550366045620954967316691242945737244475002741027054972342773195072754116787012664022308992489003727601065959728886149850103339300808730714525796336677908058787205495932724090478658133187103316956582996992454983588592893573443549657709511650640034800061022928786321921799194315193440434686918760659698522499079447473422065081070180582561612503602285038347467824078662026500005203319600755022504011030273838913258777668928067307715456475214719309729737622683691169296873337184257848483988430465390695833053703036693380929666598120429853117800154128575762917709342057891341634421120648373793698093527249438513461445558496498188440649160967226502520530670275602259962355715815985315885219996408789335991178120911841508227069093481703267963594446166391449256919879384550130805852996251426979548231725399082126844753333225964620810088876315135497102204767362730205728915303108137097510654489073697182650374563493168428962413565748358283202886626555394877452521287651720078326478205454358426002624910728869157384681036812952366805046964713367384202160491890362007005515018031011399535739044622664771779203483350649596636440311811328057593731821253253863438522606266354743424999494778460618449591502598931784884702776023254649456641897713685362167734478818671481226261432377593407533155901568156460037615557025424055822727477563636925027216459133959637788113915295398482802041514185210953049985716798173646694016378138459182192570606914745162420153872261447393599137493081892681618108356251225398318853656146065358437423936522243052943822363071199624628474442257089825617724225667426875283021825808738318406956653043202414883891346069591721254742585362746607104090284904050946512223452605377732195957271695130231821625560470519363415702902865391852696109971655202282392326041116475417426246316011320734125029290120027278464895170971118349470765832696820083280839065860725440621939274387334897569328795386394434027484372267670943503024183221567449015191449852649883121551719640071705514723281366401293735299114383690499867923663906083345603181864226624633129679839404577737401911758020595247667264374697722634650911284418717244597594658807895792246597422695993559190411404291902862659721536868722573691402987473872956676093835805645454032235414446683910959553626855006879670742586580668403232559895889182944283479551509809535669542101262863165623437601851121142434678868678802269394762839609726473253385213497298075176828957072872057685930760838113013809564432035863854516661876265156495060509665931327765409839600019583464863183958847588317139296694177380762664933110365540172911244599177602135621361444821067228786168348073127719880649075027734049738703177657447943467204635296126967895238727453581533551340223386568614153696645941578157352401118957395999198230049919667912026740861437994269762711393105218213188271533257788317638650996782834990880681005908224748016689510448199630961559857469243848911090640924574135717172214559300624933616277730312048903931864845108083674001550791386729696804315699112137334504846225198126091671258257414095196717629086582111336426273713103809432641558466743079728051309814334207522684898513412664039521488080128415337633725452327289722716840364044624648501472422829982960627349384901663409201595639318185525842515982996735729854773220909296279205722887721371708793040477195269497591059724915247041896109007106737896849465597716858047742180214464706277259724076914020088814461696225102897783179001934723251452248864549692956003949014607619293148601566579533788348040145354868334951915353468849696791721551334186898831162108911401239218603961506596551576837947364978228390328076224137135596774557769070803375763184193492492799334933950113403326999500559385462465071719862096276109901937588782921609906628048861369008710275373225190046858903331663580293277468019643281640429577652866270634845001765815398019538615939679916417756006926332890919407834117681066527726805050128128267387250094393226805836162293420211006620850432735997545391411973522308269559687642940899448693033979897384569105559650911603045497565214540731296528892699294299124818378928069547436754759398222849031215884488327549912207552927054143492180845836270970068846845935464884686667714348387169467311977172341183935606565620183987544761511640823045557586107053146037230436762106291896583603277356420565908182499380897135091868352881524718679256487727071274381918428533139756988017905581570020596898242103956012910436455729236923643124490712281025047850339503449516146976143537306544257729599048610395857116202055650450813505135684082141957529510335548366031962527896653058407553970832650688016666967565035993440626563312608240534522281972542737168245621385154157854248463930155203609816618759051161398768618404033981072058142600367621547686112613539948296395188130654428721173799976259545403757720498864711513778964927678152086728329652920297751477703871419301831331177476822369087733562256170642382365897566945186843416839656469720540069434115048331489329106941423028677630064670509895598788080558111972766493623613145417938775712293446646765338453127633268078703224526722592720899421867108400661585755831692530856727684435791996756704505932983075888348141197483515754298823238433026505142599474036215715631731295908868875568747441817252360257824031706431406254014803067247482374005215348387423930070301907211965463061154449573816330685687638240834226717889599238681962669952200114896931868929444388116558187370140490975680087503587859649690081608091599720650980313366886970728876303510971146758341295307444599674956925248636087533005857173858571926594911155765039216710103490164085025762310410979031794826143333719270524909827946083099288686976772269818867209375790860413642879969692564618413883228346206193666088815431316334605710057284839596515333947444230893367012331848461900349873957445750564542798281843201750148874226207448373574791325670514474113742414737390960707756965888080930357020563625504256492370999374198426116826430842333344565076070371492146599881094135421687194745151083857185806279767149640441099631586169980804557572387550218294848648603480170798267276893910905111458148671991766201559618600197843871373365702174825776937529860555544197794951985670352406769542624539563839699280892593194149585786814652471041116858157719100191942489040438351811537101018650777148599527915427932770110438494307957394577457156061849821980919838776352471744769385075785243703117376999050809284948047760095991075467806991568538782862582048681310368906628282115437365671520166271304904649974942677234321762937524176313086136795340728351855892250455017217471731958716947718384080157234646061392640304822932852732181533216640887562176623542061274141016481659878834420404798759872751492720841347477649571518285353413421553765003194993410266420065028030106388048470736172414713982567395265319226607339566541427764414618779057746364892234690932075669170396907761256630419488347763179971335095184223679702664753003553497509933236916330731647572331135520019985128570948811666663320142185505036639301332978149244135187786395899119974459275687776249051729778803394465106180133022433095834579527298554936926478476938526345824214977858338243045029470366436639274425135634440783244923912554459565576046362832707274154376636950851168279988623554611408056866349800157199506301081629185574177660462314720811938956366868784113412897057735424917019272449368464840798399936047376560157668911766832258807046787724553750497033970235506748646930003848698782005398882013669457413251675750517768030611863321424341190324101105410991767015654811280889778832183739613137220608684044899451184395084336893720619929999926532325975511362610835572898902229199653837843172919322092892800253866569535978515070438844271091933554630407522819935358409794506465064145692571223821307808815575952928834551025252306241797441578110602013046828986935138872636572049269905142509943915596551551352407248391176781223136445250240073061079124980238481575695620897413582334875214541536574162430588287377478439576649763948509955434984276540374013552235833772472682003740335854219510856049717724404944203295776545650908991927269087280438234450668241713874377872234635201132436722373540826103371841862908219905553125855491883883847777443469086560481013113893282701658292765735497570566485096428065771440089320451299635829808088431634419759884030051998116507432972275439060857657147626816507904610618284579600169336808279995017874733065326975321920448892759639144588647674240826066122950781766818332575238631530600820096163383671701726089292917668980546148868485300865659557001937971225854630980770486988104385127952588103933777248801176776119655554612132075358869233585465645045920473015382318012357048669150124968897200216323581366466163971141925102827859078897866875014719677107180505091203717751865564677324070066766614312425735292365113712697634346237489802496407426549603866371825914286682147827078033154309721956868086081809642937235050154440817401692481202160508890427128859593492801108291707698941915085482595280978591116657568994048228138280566398850372135363080910823032276829728339346966631461447024504998982811326493464632624157927816373237170157207368641823848393506339701831482758197596510831992437709535707734761222704613296164074476447289697136840113532303939299093193258504962664242795806999505875687322649267514033265268138186169664657755773445746384401945781895027180718728125621331694771625503153579480300384633260341267865237101236923762223609190015839562754366468910278476018506557132274143208628376661690989559129714711786223912616328084205197633334574092198728174079632317890670457886423304570596520752507058932397156981966755821088245927882500507868808740378516155809872430673631541668613086238240754097986600536424562642050944482171457159886410757135871374209112058517641077291770056480059538096372434799038675761611616433568091611468514295673894606748570296307796194211616515374766993492783075007296673776402444702742355283006449590259618931277415720756469160237631315756472026611968201206140132442370242896952511550993251579086515183825271129303277140353905635550849965508067504480472115863810385940200438027883628976640734120664897142801834518175998414550141971020066068953853360841403303700096754845225766863858351515915203656199833688877759200023303056732731516450763621556687751299873962871887855557686577796366960267470767897828909924913839624109717566066108737086407288442766467456448794888847927949056230087662471443979281336826763137522698762063306679343906147420287875382377704184432287286824460121241150554033266002703338222283699463240375432337777031833037963748999043899516291241454493188862801462023562114216315185659969834011646707969129398312128325652222615978128249454633618546540757428700287547596296593951579872448053166701827670447677868010289052413867545052126211477581545143079004750548786169500244397849921992432731442891665742850103950536916178821450832423424820477498081531784451053194752088278449146727599151372680922267578461334041011789949073951433867353208429308985596974990637040196632581359537813631750849629685958438217551399792940306345068099522570432942985154302141093042495141355018088378241742679002620942308786038963096596605586791549406003777810938656173989161788589487731849249846874624838006901725388439227252446596665431449211632855391444429988186078594216625706184214367311553232997736553608680801391711483872252702470583037081450733208867258207742022451852683469400014666984413130039670342543992482743110763609916677479174380478635911583844552891081907396107350659113681064779726546057177894614224347637788291525899120770551523838379064780200760564864672537427336542969295005112574816755179625710205968536004524355157030491506927831120548279381483987158411099269623568725604385124324823096144803261957216242756583873173179854797337401156360241691125522300313552779298346514857252107802315054402603688751457432965795975154222343019775251143142363387555309845492109174099332909296538539397488346040780933340706285364394368051596691595923351052511248521433513992661646799456667314357705948064282093236844503049795696124447016314199829200360598922525630024481251051249110252651658342087780117139991057313025753492643014541819587738396430939422058909467138287543728344597669931882011111349013599222109646253220599613275121816501990285344761273663807866908292482583551521719024544129339898248386895109793608320973170640999637538423418344998014593758715102861903001970061262890533887786665683052930248577985768767367110420195640698322813989646818308170272666703713192334130614321289113128387278651868681530661301673835565674401089447252988739678868665216002138401070822119059796973601139039075843892154498855100926391026613915452069676393559283541998785220285151332191237379652701976463806066452881084055644447834546331319392607554670578555277179062333331941985404455152999759488093186852978654625102050593679835045767469093944818756290259166430832558966888251748870954293666706756002102328915943383009193248756467027383677515924924862236250219677412798960507728006705202379198975217249644476708215636217784831658420349845898439214796264591524505985328128790251221991277726101550191344664028436256543065068087899331639695530229587640650895472033145040878414655704361173429152696072069516659357874884453957990616235870157550300769627066993092633098432949896577626852166630501100385030707376524919043797581035299037670192346946326525896146312367013798374761624174235785296528327810053930457596692733896515482458498364444820378345147900566377365849583482679494757786003539923424186040433774340022030144193907141741941029927080157177944518615770592612876921085481097961818961875853219355455612639882517044771719893250558901349987337893158330505944910119400294014765352352899131689411184330040527252363063895782591535716887087129462721799029562261085993694084530162053085730006935036405450763664293995688559347099855100804293928753829889787092078624010225270751295025254877568529191301055162154643801440085253857053202352356548310945363317708290631938003890456194053064945754789934691174888068552017604514583527293018355386247346149364126179168596522858784054768278982467110501192728720520228276020009599595062374349877828356935545112487901208130487565362341982837931781930312890743076778321599552773835336115780370033252646458893928543404815080188345621751942488268973484083606722337444779281731140634221923522285911279646550568087643076810365349486740066833471928790324653788983145720943398164986578226107317200708471140411756691265137057346050493958803259044959681702727150822113769478891190855147805899467325303924466084178185092991185228914343703722295744160471163954863096229835966381670613560988571976831730210978523170630015670646169718585232371654736908147191723625872059495090879309858287921584587817243287282978929221756640326966447900885492646155461454225477360027116705299746291669875710704399256665016345619937209009882173525710483759131477511751614629419227018372859384538032669026204131624094638550683116904574809883236776904984547074722519348131457850169062990083563078514253499835890454408039168280494639313167873570730835775722586501702977673596231455638311965792749807192864828610379364071645121415756791047549219099659181092288898074598416435263646753542152751430891070645040083404267050238119209659009585443808768685510249828601050405120884224421811934413604316681772746868365564888292406778151520435993652802765784385949498574747703558466014750400943726505752284889991746729865009915952351880211622722468332502971892005630780146193796911777892165307830943716878537223280581521455375708978479765300875172447891015382811476803376433751696420154152214329598234933830963791635481415569513936161101684141039384309509131715476409289066376876226755845487122825179122671725722866359865794095189994671268022386847923743705501281687166453136276860731941156309755992387974049351481526701851516834242454727544316375908016453608568350337666591883212543298197737119066497243979202651191182287999299448575426602514991191612771409199541798831549416811701742534466423328771350520120692615889570573014820804470118668419677178742916947455699305975902696613189462417290640454694858914462735471381396112950887584142027013379205963009592626673148974081272301414276402554104523891590439972346117086431037788801918246911965177491323548798856448209630534098729961957364279398899833226911398550698654330136151290558281175795526717148160856077843653783655784738037523680743881482285943289104305259465001922675460552670197656400852166811142307760169932675617473487727032144527405120920365413146764233249098654854844124515129934995124205332066943373531444024941142978301225775326129639659060214580933811512337297421453141181196676855699879921765586850690765202770314433409399370550616931474094416248341883863603113373580597146346586397223751315650617697073405072726244683372383192497125199383145969023536318947023765012750036167106135667978990743533549079112530870343059144053257641918870711876159911227708967430875220713295962778185793410646798318687938387200727170737055480020091517665032067377858141855975771027166332124891204485428249369352439439619356152298318914374117761027097769143311973067610413189199516602265277647061556926459331560338129985203482103187905298296387421559783101842413232070985637446206627372261879907734473823853980331951043923110420651799024936380686621184413396402445846725735975511924568265142549436642688628296000035812415092249977791570257053706673769042671162539165016629699335158808799381609812159382361115812942337804807341230434479876567785432805018840214194498933527094218953403116869250782705320370925987068368571854738431692915661259902140984940280252811434234789706902593171499687675988757932340586806392820463088955394523155206132189862981486682990692204268824770492377262926153063135866177410290611238667311808687433234660805480874950889303019079725937497292120671140491980533242627180594904397985567328229892329098041927510028660758822523944332740886954325801043368515041452058821430489461028135781556816203926085571373749454945629182430223405556492970255141242388197474447817972648118919757720052640824740747319575503773177935816128285174333771187717426802675641713804571283339610167975176219249836538107943782781000515119109481758654705916016874433515817006170550069661037198210996910543246877498230614245946542641947458382415358468378442757836373022379259167027932706932254300228063011120793122617821375264676001144772922582306969911821637163587651466348638173103201262135723902395241257734030155705813505188953363947250883613735617831929281634076508933703980479928011201653485532810579631187583065778100794558267624608279904227675386968866604562221325173719515891880654647775441212120173376909192778512590267692464053965222018328406730779365448214644294207239917198236557630882612218148163806006078162461034657426737222347699038896922472364058077177071253548933211768252093734222915450454466283324824508649064824906268793257234454403585053270921916076253812688076684765975336299980871499089547337084557170807599834105530831017615751205333379641261298245086762434160652176179688632242323231764829566640992271741999121423701145501295349680612853933997969912463186154119994763872530106091934666656643368943374204482665640258623889925703842178606255362457652458032616617662471268789350581278290326068801677079322178739776653287108238015116609343317756009478057052981588662228901767344861006136660905015946166209319155183251272491792175742000744227101982607165097122279806536920796481265407051260240856150626421958920556929604537735618520526533653508175431702010724736617195840165850453383373088652224248886020274311941948721343737515110571129928859140493436223391972937908753404345268566514859901810882573609775769219439109581948781549722749875169669132881279729535791619392303357207840221600777891228346542471757242066553884590941908825434403958144235507473793109630425947731548399979210245449464140403363224892503256019501299294673603057108507776392644498180718732044506283559090851418376351440078640172053298831179183674138682154690940357990782738399852833531945274287993694757195957682391593380071400886587709562634244671923292574105244603975235405420579168282124815165332381343893237487135114405969793075166805700653497476043316387565903367248821636013930844557480091597332609242687668041309126836694187500855678064710949888182904297782668710116647305147322179006587013351076892223453235150268462812309328654253526555860141960902083231186376499786596759261907675554087486318406814406197072785753292704910500263552267065008423853647583829779811743070160881964591088439096670083059410003035200019274195647202366984274988344402352639598521282270142301763830510530486377003329836852611248319364858509088088511510449652374622360285797292896383437968195969202565278335174817472114397817597695274503578390835307282039500906530532883664766120887178360119722197605243214320815472758089752082287140143756728687688582435671740147638742915667726481526461991650129284763957584970457812621964940094177259714185538133396279629810360755667354712498881480711845168210710641652296611220490243412231095141085470086532856359060357750079884153933602031813940318293084736221229056281003291338777257980540847739306015016311180634770056892601570797003861120430125351077661193309130682989049948281069411018656928229742508677265071566033603036257635819501650950945670831663554654157014511631135966352340259970485428264218558709296586911535909019085211720479717940592287088014700524341181701382729663352117861421676914178507995334738220378541594460447423375242968933652730677159323567860747515343363991688841540879124490231026425814340495550502455126424356005846326869126257163151114823035749435678979039140199128647223065496238614107276806762585001403610344099539977717668737118309130839820550262146388964945502347381957929692297000555737337160737681412149324239435508536902302260069844698648378155891561272995626677236802489608299179095936376091820188103467687049380386800391372376476332395274816920616033098202289351953998448267458880447143555792373068295643837744398977584464061505586725115320599101831203489622416950650866152886381371865909548126956729088886405819078914259122241461166525699695186619844277394785282865101467106581072237846094288673634419707322957273855015715377836915334616750501709817512397762855326844694718240083107583988419849667460890965072313343889507152786926319463897386420254558735592799820878038520599799788636004046008917553127885694498753169098370665943883759218988330989360390285435903364774457663235350352361152953621163785564372436260326000764262153918978966200055503827615965233932172124982613482207183265244815514200151806823349812147118364144644187890514437040426564965885018511563099757540326436618260427683438889087666671472867023584306704726011958399628271329351000884953643243546174577898675828064245860829067598112031237698600004735176028120729216033175406935596624570855475797095504196018627874740848112555139561309232673520151714738844376675119118094427914593554576542100756646829670057474535702929749591128902935508979409030604852310843246051837381882601368143170918916984506208997792714928058247515396328280403428783677319820429809691615702099205974114857734993559643404489715750984000486118235962262929207831234650590053714332126414121875766369235723993485301144307218585238040568666443293790705965623843713241047275632474934453770939208843173510251930188577375722129925518503620804744742700331356239290443098232588413746225173359276646124302002456659283766984240359286061252187097291786062120753547445716054002670312816653128756060741248972664803701272120527758190612850051546411297719065446604216756602114977474296691295025658622062721034342488855868374322984418431101026773992126472383023413136593841771377802090929002623511874720688910981963969367303528642803719350281510893584801819441270535508650285869741601296556173764913606084851320700014579470449602971742954264898831328196039152504924638794589535860653099283141327422634612348364309026949233269315559475512341575612323354772959863049514090600575070482147320068134846743636812581887053462095172941975439090339068089956977085869948453503716787173257732584906717664082945001788136567265881870429779527328594350306229217807789657030815583734790765661845207783537977291189510264364393292360353132149819158436398987136507251272642900858125225520151348561635082863639368846519967778119830424051250278479087837309140123227226021809077347553150429462016771929620033844515164960764458940124717198331910786641620071485805472389666543140870599499335128743869362204070330151315851986926373621342695980811051890049525753757759495422568548383229361246295529392441579161856492977643221504068834914242481390202421483824057218786502751925244221094019923413550519370181843122878110726963634963966744585247041949200936130322443337280787459938521254885029783550476349670169777192528684046759449894892328794824594332342699424103641805739042639175131454711681694946933676623394126934415711645617880320145028155182244327938223855710036496971182994713025022617453634167422395365146598549442017837140088550402060796131924982497461166725718170962746217707239122787629120645156655758885899849534001959914395698606937802457095228574226548746068766126695672996792126601254830549853830112964384494755762197374782397851112928817691587350737160304562490110168979162395799430560509887447352689209965179655988480130055472682497303199381191903253729565855068576662088554098827804664697579775323449188842685267563552777354103008877771348397200146397902449875904037745797861868941814919306267957054139190183577944486780880161443673541787295911227440281520918033303747054299836950551411069346758430378949760935691368448567104524137451381562692552571725287504215461176513183077392204984262775642559799787712353544902961720583322031047205288354263247883519356883004167940321794145293080349043576349087567401608213418055595695700272356657409346726800404104156832646677866761490778013999680628650129367198295535470479497809028686243899604130792444464386366954976995386926774691592766727940105658540525698155746234811691887358970358916384984908942460580299450215786270056234526159720168280987731570077797004265168018524609532522844940215850490821018647173570910974873915325217323833091804172660733850238854920118422365059425137139570883027078002813256328855340719296195224686466119653819773357046449357225969176328304886026705474303191167494274327089835603542658007540582438028674789254574107327861536428027563294260130851550643650210457671008352129638619152176020306056323630727238804502879062334876934938550176054067132172246480616533141491131816659829878844488956590219527679659274475240366240567307999001152456679738930090851797294514539467520910306200685643650214808469779534838263246553752177306137909331158958259157564681825740527222503622759048441610252485690718551147000879270522789152630451285450061449363378667009292246053856198112170693191053619690682456569156121974965804054629682858721158839933319537014295903014253012176620538788797206171022724501974746007797858810790518718173572906698536130973297450570642890766944678372845761422504902053229558168430646835305641223959276543894627507133438868396065723974433821107125646085852478258573256710904473567629037908807172083839457132790096601244003431711972689809961068683092277251861258743972383899099557514749357645042912791193559303641192390187467353101263727521302704489954948971794528023127609637812924095517544592862946141204540092795541618093028736815388021024866730167674249851558053849593519905974245329697358970630408553422643327214747421494070172172901424138717328974736724251701992769401404356572983502136985793605583408824374332391619320318458085923293477303957082753932517949650365909673140629602152164253549798977464761823949863408080636454237285352244834708737748093641101557278709123244533169690388373316724696550606129176685842371047654876940399800084416680188535861477535321669045953350442804753184110611960794755954034093990219826698751140843536700994755899009293089614782331805393422689594996702782174130165579394920655812105963004708669522349340126696063898376619897680997920657892308884308902345193552169184583190932886821316294642677814451959325923562229842489760599714562993006983686183167859403569806579879582612013207395584583840987929529496931969472873549135762098359619195280863486331012228686405423186875454772687584931713076010375743403640816653531434390808202574383667997995179678888082355754700826668600083162396235472723174440534746712643837903211256999265851411395976554926216999021949135570712976961597794462098448957567514699985167656033131036251976920342573320650559257243997271026358755790698267176075247256554490988892280576702885786448758409685441033323202998849825613690083068697670088791272893208502785098838633310389380968262062036950537011170347299650056611792360068881891315790576141404013355313576712472435061098463946602543764403650624291221782600598109088528407812942069008329032666672391100045270173297901546459169668779904500022943193384281335880741960742257225705454895636992121511492718944017244834670915138381594178826619464748955307007841508874922919773376714588607574382665308422151371916173671884260440348523271316669045061984416961405786506361598169375049427914454373317399101794619985139250089152196550354378813925757559972522785754354923921428672928002583967206971372279986888553094194254613644610133361065706318563447111274350311026774335638465810667599015285159499171507112927425175678882940570757169887021156751648664655985548928356249621411754214364903656914839259364642821714035222764922780171281745993979567624421932130712491385168054946869674485838545494863095414527908281938664337675008937765901963948861613330872232152305930610209149621315624460964483050011796158317492582180532209540717378140935129495095979082793566559863752244069432791061686059258573358341866276395270218943786394317827507641829092359423044578377266735610438034241593538246555215623306760618142340695926268762610267011514868628819189221645264256478015474905719239224696231608832772612004257812554524410866167532723806993858281862941242483151299897543005669873798031738330647320083545595565631092524252951911897734384570506257696097654329209824787614614179008583656529899827574269459443109233030219231285559314797584418846283737243895259769272432761672007316618789697953542412922581880175943965788401155437528391677351318518465666592447985184573646322778293863250807302962516154313649012782520233508457203346585742799041036605270396406064404234802974337611114904594358249074014767234490367296108484894012925539494853077712810953765228951600342069283399423296302951299583303189154082399584633598686484053585319032061469440847795870129515653525455228981089242058280878204405374174312945023551667182688551153214360065293510532827293553007614905755028186947487571409350337015616323078867894139704949001563672841830857168008927291844811889777425096010355629115106843129803441862124142601783760492570654187472930466270543405537293466847320398847021416036139193228384065862394531402807985518423374695676357187522192594256625677215441898055832347561172148351786006200356569002876476897828406573293866793734740915461995751090630694142636275735306938267779592553390025650651583975654094553653663971033056491040878961166167621845081119524346074041643207419753801543375707619340388015860434617293319301969473829518697919315347519784855219819090956305496806532767974508234158758682681481468069088421989180350157132658545230382160554094389343948461897542896216382132397332485771366315386627709276363290525181147605503453913018855827036407659691526998175482664359242895363416852146651334224712893782786352242195900517098420732132207112614284105293184776517831247393921815787679769867106694669541468923057736117589185685739468325982606365328191741241410952654564956066147369051543167367446624723478862404201099976095463022786312202676685276765598578501923550381783197719136524577690327699774057033050068907440609166719610445038261311249189595973357048722217684244393579701951901303717757810427262843064074815220953137284397004012621913172879033134261981630794930829699739969185898683692632144389061257346069928592662810463183024940940439784231630730206283591029021986726330557416994628410820697406767557029878197425744917617632985345888226361291757802932038984371603539962309108925813818740412274078512609245804303051541279420823742611789161032017571478231870492736713677212360387016473159485682933866707102474726887835895570240586009924698370402969349362209740147521447891796216628849825309985055100827352724323598886021186008364136073156848480144582065399243249525924119251327052736556193006641134900860686039362354543019876697364208087673476000709048133539852573973788715280223048736226541545116566651927083633604826965387063058709439285345051149981755642181599820593511617845680464259019730609317739538523319605850615035092891779134362909701133027019931409246630255159332315118257782158498488487089752193759041002854360806753351834836798971593038412425485400273747214784569394862214163304430510679890785585223725834918423073833461515868495745180967559404712906613513305111005923524139379737167319714454939221147119441424345268113630695138864885485874375609499268469323304779683877816551046523200608503950855620857529500378426254360417178863151513328437472000268475499576878970564802514103458548317370114044180057913130831238282806258448283031636356509241530040579644366485722839133148637632900605800747084433851875750782850898287724296362914711032810453671874044673905803915561971357746710583988697584389210071469340195697278485038234951874827020548899699792097507535316030016549992866717360643576642852329000847157423697034829793338440023245218832789102689865470158592369675591124705908786047288159271663088520878861212989041362270245249872034898496129247679321811608755755877062435649321686343961490962958783102284798338024950226836405730107987127897357209467379719022277778214224315825756591977399716245320093203832165933022134754072295529748695040248606499430247505036028782674556904143013850992104971619487086508557442771451453479976989995490647407937701003079932423332284104816112950788210712642840103783523567588199056252808600519110376509664768796079608012442532896332413009887860401319008483655737953248818852963043614989271272806214813686709363545336464201008886311447843438933089297409235357188435738131727515519812593922504389500252936035692282482077211691758744157648077493960017022934849499988804631579238048491394807931762311701590731659007588904358010519344735906703246624495040255087344962685477352546400359012285279721492585868201105534459051862792538620554886283056610361885792522101492894707411131391251221560051203932821289478898549851369753971815635371731486277923248977080998567096261348632655207276901053200836288041340859874645660388525688060220632960280477230742621699397971800698029968854669958660510588944637864793455313567742433525122030875522890286766098625538285917869173443344234373039668267329762978268495228338965946586388278839614893379843558340949914875129814287934889286891446209589604502187156349415903431235568788238827600579496330924161907453183955271435584627807328548737971441870681546890919854551227451081940296974261746812890761882056370505711626546739874341949735176881495981743518095390447559387331316239532264306008362697083561741638210720924916439921954416310945983028282377748587262499215914347186567255965613970419976775751349434719997521557926630568761127374914124340087473070548200688336350475817927177398484244885241325229153563075887395602546955953124705938958061785012285392133795928768755338113438978062014835852347634636596106040351314274598780604344247601050531600817539452809607092177410652561584628026847672486867640149786785632916736676542452010906861721113594096749988062266090929783184216017013762158731368365339822331519957108887942269656913797097887856921448777174373722037331106997991959294299347869568806248441681915445818469468603354582367776935439834057414583508485985191597932295124524715305276606882589480546257520773711636351698675244455697227546203209591890277474838906312491163895306419160186182038560543966516057105710526843005461835575861921932598524641511377466849783341681496188977906950596673601692751086933458483439964283450133063689411317999896811520283971289838302446568585921826174596929758976179237696360010692626471026899199875769253070424399703866386355612446289335082651335285988490609802304499849712915007617375404812478895047530393102833654173100037384381395031858420885479622378184183629603581406372124432913722160808892527968188186243791336808299624696358320259873775095787631760682945202528541326220625255904410797817161202090292891244316005607613786529740704830833546766795845324390450597531052250587252410897902719905157819598693616981354469843914940703463150204080177591046215394129205306385287175998366809381767435232126985193996738853817295227247932905014944129744753994436633225629074454165820851165280608686123079901013237585001375856510481235720199499614010873647653224149286007666579436814567958975560645951213882681041823743482718247514186605809032936393085246490078622690146214715779761595966574659984507999006874141834862506556160760400000816772708480170241301145319807664156461806552409551858483491999877936385404865967749414965145152114763022855167685399377034775061982320681876749027045225321446481877349491975729114087536646454411672260917752939331294984622456753809788233028754580061905995713293448733950562420291589334521780647803261417774760152615434622547116768096686248283168332655565035909131761957290960643001495118328030745837870144404182155497882665692277911095112627428440191567015282759336016944967625552383030599836845722937488504599518903649366487345839041217603881942821856352300262904769973992239903453669338402901206582565658949543234025370745244455348329469263287996025122543729307416898635187241899459685714438599990109198432710937424923025702080747056556354038414635716522197111765281393866325225433262072993098038558324840679789790924649730301353539213048246833740350869978489045877002850488286742656160766702193565040121600238993387288821997372964860428149126645132176649854366054002448300360561733611400317009219148738290455830149118267434014290461857642393735162642747446823512682974799889820295743456289500817286862970656385037462279775395411833250542285264139103469700480976709064470731966848352925438351019330878143117022936598028966902167356791622001531697395909225021672924783397262468582637630423197572668017871781864255545573500309714893605814439878131812433729932385488461081180826153757055649242951631350120987524108003649265943475863161385091881428424322369051724421248603983089831683838840818860259849044924237322821848109748067439968073717608603624445347819108419523409784156236438102514462343639579760115495997441148519362509650743988937295429832379126398903652580815439518193240223107113545008584247279269009286463698429273058422316081123998042915306342301617296337720875470508369001632158922988712253113396719531197155509234666239173404278442961112607274086634483154192200412376329507885053154311773757153678098884510515150150980395516641004589675883646504108248852217357448696822031649929522552251944152081953087459559659097473737108607682980340356416177194122218185877561071867996569645063927705068990676995039568125906023391370157958576896132493072529243892420418778200587645252023070851291146118490051745775792935220374332176574251744700159763580426062771376009008275309584721988828110701505904757308194757363409098871828597270352570135250974223217933749862017560818502325782660866219350550511540854244695052702212500779435448962062845942615020271904336132029841196617117133395318537218047996299948643224268805049377558623562101853233752404000545774569666384798016727088683925222477697040174254777910991001446483927871094522642725981387857429713760246240594586377183188875450902156136478421424748149880229428751445150733759805063683245081033134629123197987182479071605273469562016702008478878984027786154889609877606304043361475402012309162233672486197040824859642699945834671704383292240199902758795982862589062807141642347844670511259732442478491593446283204429691517936372100289246594522357105720643943303802021766004977803850895573515768356048437884606520581584978227965621210198435079704328241178522562598496044128526723042219652223973528004092750465517502434934015099975216141324313174996112745703166287651983484543402949889037093379675513353755195569450997215709744542600988106420975471278181457327884258337090111214544662140551607805473270728756535360407803417322968661759283686663596377906481812489110441816503285472772072175112094615744412282144599469767822983359706082598909678060142715251079677874536415135990040877616437208379977487652197775153559431140447661162841234647152810617091102198296219598884056165432035660130401279465651673575783611201629580830391142300291738985400580116916418134963321221158739997890215552033397078683798136436817214236668788628205602898113388428555899478016498522889766602779364036753768298321514072120195858224527197319745807831310742989000261436425149011383980484538042155430438960294252865559369420826501169400121211336961638797169226504146954050093533661199488007643496769420423637193038498902025334365669091102231246750314537397784673921460579867566845184120879607505446128842375025902666133855113388416120779347726166294740047828715788055086669541726085983784882033099947718902967956193991117695027339492657927922496385139353912002424048578111401126680491639298561722052778686864790454351625584568015534343411140923690198237906574032788956279352280227875392163375292446786530142407107200561612326773213842877915348919487943704414227569816746500494225852013401295802914941173482680724072117010066800844683214889250634649676078720344505918393014492654665071383450004298762048101336813585679854518735786804649976280907772690030623254052041865003640544384125054616534594596767222071856626077889135224798726576058325250402828636538246759568139286433366019761162471737462888587055451093323569443536518629202547681239562917971385516060289650875275528083113402134223485315814243835055723622803788787092384728995907034353670280327685909953709839517267327146388105607658371466567460902037006009626348218030184665070246455880214470572403837354082370916514704391269956697500731809736585349236111175798182079457855510360769819342808207223432583489888847272198318592498370713774308793254317899478335436451696252812102170216144386993910391283790118021134882366768299419628024371653090657319434079628030987498687893924214877875278050915419764811826305499620125723924234119671491442352293684878623675080170173749329605062344874240026846431461389992583402179473777852406333195736973732247188203483104318901498822848618865492144940268387887276171826039421064689271420668473654693949781224866946244869317708348618131826182632540158456403304670977633266898466551019104380460123530469683052944313537021797497349731621614699426771371208926019235511784535520856386382212576401624729656720020299118146975841631613001088353452348969521302334569452148182105579100773585057605675356614436957128015197826377309866457392594607481312880638004348443609428391631169706461336157667668998208139024545318398149855368765835338261607823295041315222322442308743972393215404440113959794359008833983418814460307900145432063726186974628114070425180835667728730659352098819088516639977527964979021762746254025538861043973943900205492790076498671181746358032286631080781434691257574761661998212830248490895970488045870444365426412110846015007779681118718837989612500512437879968507763283659762122927853859184960327178402759053176011692463119050967040644433382884359064671565166304874668380727165247031320060402373535183915047641694600301210953459091579190281265544935735967886199766569990041820522759819762658618637960296932367276161396286827286169957391649706117305876062345160242308840950865367638091006160930154181106734148340609865928125336834473607846492046687485261865390526883703100011139476814901166426317434932408769670169025376152492761423699859354741656513257651245013567400243365877093411214416324042731562306349569931541647254217491957127775943273284926865832649805901495186313091149997142689991555984189675796917510597276694480832565905105890088093720991362614107493659526987103860240380422887903906985012117764196601076036959464598670942060120072280591662992830147499665914449993365410124861661900858773245628609729315925521411167462648523461473002287807509689610081440391884697470222283603399267158537707488933403625901782364807947998728595370978387582855373634964232759345342184622306858723796222246051991071797452812348929290237776427053605159468745514024299002347346487594771278235242054116244582076426816303940236795005801828307460648056604872301701471477797773272968758439722036587309592760855872904500886014598707542029148941880543595958280688663050963726708674437847983619839980307862344097057440302127710888998323243797812703345845852370929544506349567514655039329616020241974878234044075993829015139643334591226726540512202085592303503774694558457352367840011772664178738632039762538276609808211790409154887651059671446503477309933383914354475345401357216533576786433685879397350062230301264387842740696845832047969581643058506332067812662105610374593374912376537940605459478732986318000111613872926387123416799215906139070609533655506622069701022426745003649017784936359744454847591730595100479689137511025899823309162961494265640469951918034115005914985132403279813302875588858138000308118088580128700341341822638510062351385500806755311844113460408020040724595539573032700020628834157981051218080748015589518833721932266822735616735693977652490111651482637000396602655130190108434973749854260219292327974619128094971110176479287853153049831694656526977205262225284854229802409676087636074118316617063168693228435883455355659004055238119378422155868231166984170230928381338592444638365757606139720470789645517442543003280029871723469751920654232141954612100570780090511302164176895220870269377039998566847630393348048586267220732811617007644268514825023232562376197743695985422621961029058367812647947376372248971019699231810000376540322380196011017607095041713372872966974767697668804635050167257513264799362853441438890441952966983192223325096825571580670092937890314244923323361049205791844824837331810975923459532010985296962731065323335847883842578651751490648006524641499520546445824705722004412448070314080772708909268003420277966559836157705385169337963108523073936990449804368719205100934612981313461366519928376020323226615384270889095669136015002184738581751985294017647980344429622978154404423550738905514567331099078615708462281323780318650603620942377211890013030879623467740286298518271955271060452246106098364031630521760294069335530600207119396639932588942953211269705926039291239285850177546097132773760599303236477048015842102697704560313331111901718955402648062741657364092422565826400852416968104563725843070247752406001746415389408935884342773461191390987559922746612408378141829326351558021143551625456644495332000620482639588752268306344295235729700404801031304705650485477391467553555795721339278528440148022970889818011416485008541156525827286476688607070898404490591312286007632092084514308815048092844030102876908543141136543452914578559501380059080283147101168854562248611105444498982195307791367674534069814944819887679680614489124802622942791792061603764436341744835031644050247622668085508183520491895885606813900534973898647217628717102709719331009228276681517207283538463723332852005774604744569506388060613682589230700924445012667386211698359983299410480011561392298253848457879124184651835679575518570097665275705312451996993352793097078663516528815952038699702037293508987116174654436150155380286526669162484500797857919254936164004806515643537885508875575370212028226450170478453965814316828431835203107857926431736022513100557963796223710469378944758639992926124559537190401199621873485144781985113971062498542444306969418400731712048667836182088944691901247108711414065979860230796111806300387990441238601990320029850096449804257967569236272501037074666804205331478640428397534299388352841564114664965585395649014804976370434644722228843974395069160472049470151543332661849768821768883340341719777863177094771582204711244535787724323196525815128905709056686267680018721797537963296786709233019098365758947474452133124529916319530024773362356032646918313628336026082856307505956225407348071149200165463369946212168172881567387447416253087257720646424758590409811390417573343386005246561108243244783495587772706364671911199692289359628622038179673034378025610794033565219331953514696259038553587558159847090172168411480494227203177677542166090869367671726997582446749511444696624697259112453806344875846123906263125551991955386164032713637584409688109656661280522165646312128614517849831941977746380730131642814629836404363839392140187475525333273917039290970512326744421335429510371536712795594206130501608871960126486744630148296183122729928354643030849457083389209820118468270834889047435225780325255963964251390359658820575750396849015122510445663362078089878347948189473155589351833034488257174653621924208219008301520217163156557330714794386068316253375262778975318243236474201438661898929355339731572459948539709541972614783190156007454204665922309888581558239856360338166337307297151083061433877396644949960212991994319325365444032101896277633631881482377378982104838945267624184978820828813105026286624177104884285972988171263680656579099417711658816601262960383375096962203699435177988585053923073045437651230603922420859783787096844244195496586974914559241033063234241938358104199838936420022087521351340148869479679159351516193430263456024513538677280970624913390831041444553806511251451230116485775481726057673101393596635046274965721330409326124410631513376662213678138907419613319014611986467437643257732494299316458569189424404473922172071346588567106526510901933444443552825651876819779396701156481242735597077938943005826185468561880796727492342541999840560597576981598974176287082750286840478061989183427632674396791305412339230653876289746068416030803876812347547010925204200343361906192349211711444153620570918864271207573331745963368843189455491290985408011698124918551369753037545688445896738600200186163104889176749518164478868216937639395849552853234648029514102590701422581095181537029197839918169877229735452430854783019807297826294635409422186529348400110107841206812840617047193726350264373257466016408507880079680675999611242396966234776388817161407692362504569039177353267185057337702156573516779149446907829153190503599967600261368263366489050880616690722065906022651113982827125459207620674905629799725338058995275514526077635995847763016607816380051313399799453913667143669266954896968166319139076444353344952996517965730533488771252688764766844731119669084049380534119659487969152697619636892970213871185474256303250374610749932141389093038993603723078951974987042500621903360509964396720128254384983155909420610684217829132978226087509267160273036316813239462507224661298834630948008364043997862341685440457175199557333605091941268311585605528788040506520387329948206934517854413776486557247520120388477486300746609834553762246952159222446931634903402500426838460947062281134181104529808201526842075024465016172297608124917148066726200431983506575289233829276065185953787137830306036909093327354618783451398561893171399083134129582142025937237845308681560823072108561217673860079629055506883620406998969142890362327414052989194802456100940673235319777334705701742306031453384736893532223141973305010511186920859476125991158258282337816024656615077413316066892860391287284197983836686271037746400204075932994994610105761216042537953800201448491087800105491320139364586372386564642781080616910365676230360668904446387862769810159107206589555953758640857457185009329575119642040700137178253987934345069673778914752503347471193504038658910029532563008468104375635772603581408668041874362815679779107163607962303751670184797594475841995944599449005693973670876220017314376840210737669060190565959779175620362131034676100029866902717910233600183680203117337600689614442110560244430363999731133624992947965409379228835358196179899332204100791689897401541014739711883739560213036990214339053007637458548010106974194571705833984766036977408773433867433855959528651127710793355804463059869931675245276551473439642311726977744458171443386512823942871618027229744007076299076289951748841382372884474129713047813501740293367649873922757358165892772094043960094652165004728230456181434896096615653950678571242655991184561143241304966006786470894551885329678338733351428061818475382674732154343506701178230061866220185239195853003691392520227113019355014551059950110668541053790542036181750912666794920983899792721623665342880219374615433954886630256657744557232046259753309645488358188163087169206030611813314659679230303946059382213919823327302367521444489315397111588535923569453378214313451625910226544632657394752130412344281514800939603473660364134909956544857478955435094594333340437581952201717011253421792999743010654776457592592611418325269366013987221554613543388726283731123308504841694752476573585367940263302816565903296382529116703076169744291049610175836508266699289162098818405157973801381643803703862634257230357849564432551925200994545563636377043781006518029107676947964140583065132955503291537227516627579868029651785884674546853548783349520936304653512251184741664849808911649268670946515551685750700833544932327339180030519248318168670441946405655944583386247703080998999192861915612144642079809971095488690155395870775252667029169923781340509059176942933049550822164281288062414498403728316830637524767606048296089918675410223113312934250161379602576877432774190827028096721420876390440132313984734987845375404927921018398615516570993959188852535278617236104960786692848179429186147708219578695459551070262330636134818555808298746560265123959387307646181286773783706715252820456214959140067767248955209217290584750484854468591963714852334321897431003712832704082192200645873980168982885360334731650725564721995762743925836938284938092782757179211719907434548407105866545708253728251904349201309893160843974763234927055377443208289012981747786839364745356280489368805061694171921126536873488866051289482749147861662619342763485659331150251301668058977493577584819375578568524542190682373024159259203737863432281684133895107317807921146720412411388253671104471172553505558844752998998348331590574962259713340436180495531646493239955441097387377873761807321172990362267783420527088108021394086525048341609422699639071522915401333937551978562389032490877773044989856246485800906660375535839901593541830539472562709573475115596692514899901567747290436792183527158184402789735021692141135090011658332922607271253702687409229337896409178780008547906729846617614664626532274231092758524532502683861726680803130663982175360333270658829621945700422231195232619892877770832578331359874547591429163626907683947931905618858802565847966193564499937114737531005998231080934932641618535957169411633240480711252064754088939707196350524456594549662322920213007222741058382135341749928892145849447481852779321752394892876580501439468976044617032261915800324983386928143861085645732370774959542210689733523119834205516266966346093641318376535592874848197865964062992466894549673258756934807693108076501967521295663244037911716100369588602681577860371250433112844375887793405126145475991984045796000546772630845574058512016498531934701948922808792807876632375417331125660385332551808715899102654481037224055221237181454210747187492623836554108093770554019715338152569105877344552498900549612443227585766095908179687060034723470968630537953520898236318697939857985100509683629290853249416269050490299999850145428565605968096117248824754974098108780615111313803709358168201142575462406761302685359279219896846750816576308331188935359179127431938672270509280451733081831655523819293442952542619875626782843249832312747954284082419801366591461116800845101343024680924142916123270867793913741200107569576065074661084846863753889327993265922740733548191255019675866626688199757102341526566855938625785187678566184217893777918366928582262415314475394343488887274322097680539365801379139148978642175805449490797478471723287403571879609637116999472563308291997535441003409168533873165762341429535327175849133682476651674386018629892914448926040340423924628628949181317106878790617866884545659203772590890386387752456534612178166512892577557914681111960292799291238561062974266282894719135084217203502171974383966231543246682677382432011014484026359087795676645786710558683461235256531972095325067596786523069337861423014713829607683023721682131200947786186441939901958201060884566584236481369754834280629204757594139944832339314032367188439243000884118390108730954424061018163596324932720123684660329023824760279854152161914897205755037102458037127719478891162668721834647472903082820716047743902414945584946429112422810563201686026576731193461949473195975813076767685673146250936298016810905952680085450150638441240180582659563237300509707607444877222402860211704950634204132332010523925230661233655414846098901247629325813622611744680215969370651927281163828148254394519989104449784725037315191663119427627756858572332363907695306335209057486811656486346220930771841353731658779728354779549552756543936438511121656897444160168753233126023519918520497637992547540097657145097788907405736682556461047348922567213649429433026700027299246259843872062382985269135372114239306465586105037804990779617786903705561667873420921014487746487138453643431922627337054518224453300372673354114390971212852504383126055807790148742810337550251808317081474755769114444572336307591605733601386067807237144927640309324466789944229386175841405257370290221711950054202064304825229688813633496370578898393453644828885144388993599686397964074376921189330328082067898587414318841677974097007813090034036974597515395151471595059279173258315475927291542767573151871864846771033499663747370488722866079586012606410607938885467820363701264974944842016845451767998225301944296184713387132362100904876172395503057697400192986971743384483118793593053032061799924105732799718833971976736551697087467544817459478556339912304772840046750677499202214699478308205741717556898942649573314505694717347632557708130446217307691605090894085566461912591654860928740079465125549510125855199123411014875939315220669763672448000770054616871255893905350880179741227579851969666500419822941251058995400105463110154582804269158113200071326349058525109217303625868210415809221961648167417870465753325309618318830011312826195950768751155510120534185213373972415211359483981130244940214163499130667177300020125695105011980998910894496179644534515545423050765289677883925850215714144613205512859125071258377014393512512327924953869501195689996471756605561724052121160178415276028684828509341705417794832171768401770745157840623072885265409593480569359465080656741346415216692632737481980099549374479643447211949996206563305015265337011045285855909333840228458378553693515044175993648783341227981344045434113106662932914986470976415564916301854437338636102965139237527344907902985896070943433532013486516238940386997531430632743790062254200699553117135970957126657166243443058107916636863076048821078219628422472492004970044621712834907290494206885711995246943012810466078749795415273091768309884822199002904877777357202365369652100531788997161975051735871955716158673201047278153484698184465747388054640058153995859524509877842528597082688725486925394857067279660215350965458199111532143302036343969516153382819676227993600905088861982144536003318166158050776216760284691471219158710900270103095437814557695149593236458659910446773088580555310413693859445483289511157938841315023774964092873741555139864154342336865784235508792810858475141995770944474325918280885864142672184383546272757478681838731307380710549456550663337352212849879685010993005977391075434998983021910906698860263135015363143148472190150970824033725471111256691203189319451827963076980349895724419348097725751099771821933865002119070327474559666016202281742816727397647308778928876218479657244002965920075747000617948603104318720411616902214740345335458986017746996320827584457638635656669536623235932761479712271453216488866255692517943792939599646487463301586661253958778100464477622980133339368905273054449215358262563085935465103838539851304449016618284247219863457104440548459039300761254695275951102603568876501832024102090781432328341470811819987101508658762580685851219017342048685014983123843142132925036197972659405013091488105546557968531014942110077436917258615787621557181050278189841588735371277320574986757451683853774022993540552725973839538077438831710980328317707454500643498810187810782277404194050723037403876740297081771503034256623661733535555612586526160098553376886791321825128765165295390446148106198048503159068124058410938143467773430679974232426365285920630292020937161652396258962233333759562057666718893796865255411882514432190833485854251513570811147469676053423278307482794121932829318567753148302752832869453570621665580274806911543311025807640960904799452764836129786168155590826089636697714358976049231500279327360877704080007245867206548790074747396949176957985386554285054953179217452536603054479826046959207818544050320849726319957311046459555296920611739074330881230114927171091261468753302023053108113983498959187321789674102123647995869807097653942658087205840031250493262501575220734381773983674498719660115395540641812145103784255244706616562485681927663781951894131845491743156665451323967519348575555217153777787261402520676596287430804645293006987396669011849744246830282794871871742012789764475632945304412977137904759030351043945748195528849769014557633041281531448652366133046118388238472432172973931675182513765998673535567805783422475060247949252817434475770419716585429794461125766801225519317652971166822176330141012431204932404076409981852711495930480714501657480304684061615994992829277308086378322733689786079816192612497601542347782184346580598264983500920283566164626636251706900938023944204151697331834311531276457151723798158026083819746239954625339161231337444856124107383076909100236952955048304330143123324440500506216204462464485819055310675491366342696751113377879530279266136243912230681747306976469358980878401207416970060021775324290981510009042177775168777134521977559074810617393002596520823542641907747725421137076172879687137859275484527258634887163368039671408822522720242031366927014877115735502330829225777157671514591227679976569037525768757623797607139812978265568381906348970911412288727094421527575643734866120717563852414471080942811446541785347405225168507979662127011818682754206415033062271679715965487468820533904992622075003658628443235473683921153684613999349823839855885374297848604100505785754137707322359119048718692412098463285665113581487982843631241993746912177503749879727145118394582647274870253930338581976060861490327255523849139595470209434006586931226993091403775931756058922100669814392862192084956313678236144446327190915646797294661138600391880928499095573484304499773296046554152603811824719191066565916157452127955185794670933138436509948785190677842063264720670272489030788032213957481064413201293122908606462934012722506312517463708630212620071793876448812475846329980221284059254945124972103702539486702326532717557445810879469562388295060589688181098086548532280143942651214368338057414809332932078175819525624100934830631769219138231089180547358766920683644940273484476325786143027569063515016192374815532813851660335264791937344321820610685018084774768192056186290027388874866450008550145896198449842770760871713400669048372442894487905294794583892653094268055717132664106678633528201874085702513287546437671097429655783251151309984139313909822011130048259472094020394587611504107804406859097327623692732470660776468016836491177837407299994874868407111713180331345595222788750994803339898320852715123902992659040082628653552095812563234582722971227277333827041405350507324527167461429020005780078275989021424698668721002509706751453445576712169349049679272683574851510650149837290705981461695479007488059370246793632627457037727615599913570157137642635965896031307241110123440998572088388980133340394124818309216209082065253359000586774331411313611223296808026234618176143709885879385665850505079378734502438839758976122752998145554255889474003793193423124262640149804595143852133858832669368473346661577448362456814578571955621199697454932929384409276860309459503435870891596263444237771815960353109747589463625489096360022479272036443286368615331014271394948804560628364301524407657443550460921229394311327132038122704573412932055790321822122569448925186622009515569593353236539597804164372580664615920712258559361037531746352939209552370050338545157437890709759190374916228020495652429758617120542536171824225710850424192940883851220979217713808490825705762001336300449669459049049842801724068962458243903192687069002514812326949865971377505327543999094392994859587434681127531415676090822206420146243241861314062179271431562690287944978009782403421138578578608482279515119501831036114457613126357896233158685875076969766485445311643745513875051745646066088809924746490301563335156799447577847538702768389333214560139162151770748319845245995206153019000068755501192110495908030521785079663970361191499605430972702787315558005709975202389674185771169885241470340523228739880649593582929680405271382149939211668222123552932573930037428558322255350972615905843919239729394292636240943446554590693551267113666069672845534907404660767707889652079351799826584614994252759989758251606781024656972471201269616566546498519418749449503640359126818974479369733960834062445316359608491740121436850571999299990416597215769089224460131973621468545054052081474543652398470052485434828600265935304284830242665043217494155105696457217581744197262205938985808988518966420089238430517134754055233960451032606112391254532699926631714029505130608222549492266824157339208462919226066371053022353984867173303277894091567300126594114792076780354644698501362259865861808633098787857653676087772343097503492790364491651566914681703072351651982115158944561234695059307038555669780645030857656254605617616881443581929625473284245526024566186647988196249004292146819101320562684177192253594448215072977740325692342740526325722208752015985096206635883597184324425411025602323811194952422045682258455717558203336135995198270127803739571673033629127685181728363111218819556633534567500623440799953671954767370289656844271666685471986900552173389459290501752291365282190496406282961843167028739740659722834002701839701394688079974276517538595926888947828124955437658750383561929103719918911249820245151759591996321875676085314622809579313077486740901314046375404831648126197111539493950150051185896822682512110048292792624716008386736386101286454536959216931461445726449232240254443615483139805896635106934927200958088749473227728400442003205919535213792685593564554195218001366197935175635107097821669765650366324504383092805981840711610820685227053645649779158190260982239387084542040879794914076949253592805963692180770795510768934748928219173295645886428940524219182997230330044514693842338287819380246276114864519191365429278087543425916430452946659648888341538720304087987597790283223794707095125591764090666356241156405120035527666475995196397369209039823528254541413731347189195639417013537372887622060176116899362951432192426881015225663510222859219799938558943179418692185654071585333743028948245880147714229787112981572847809808191168472786041737328691589938914783400902144524205437569150491274552494101922047273135937603890995122348978991092461182369378347776158995451054333629919933517329720721410129155008856303368234121975350218471650844914828793081346018790132141700932929889897415382547359895294930275609095013138506921631123842713480505397230163540511021608789496577206347369899175423656718351326631653209726484931088231468219413262784116344856195261630255833386932667319557432056756774993804321368854462718702592453790945446088798582810613088380025963446020815402217945914194393484940623142758033408487663673365200883827186751423113780425817124515135769904413197102400504657254276487743970933586244919151447149774929766202218117585569592065386436886610761265688144513507192118432432706005020271179283657544824183297921449135816825716465156301077477785781204536905958397884959801333391259204679194768610348973500728404073312444814717705528507298628945357227106323044252848612419689018331377632980570344224010997970034418366601033322438071572647253930862778743074246389577511424889495656003407570534289749767141824649679995314156107860705305556008114137582944334320730298811569143038712938649775019247934861293285443592948777282131864843593777334502182814857684603089726640914766070655930168780358760420565731293056787161022671946801310726479777225651899048750259538131799829070673441529265961322833749987453308184559807652502892894012992509983490235919425794310114525725592972373561060014619730211331273696409878809869630463282878497254784340248454155989190830121073523691487422425653527234540156686803639182628729793687589450092039462840430927547157021548915972916713198465771473860180261733468089509185027372720407819038196830009348057803699020804484129257819929331320991100709321371036962475778166806258337078761404478414100794864724367415960333949470130375456583211861836024342068487147253301706539671350516644374656295301090421302364868880220651606663050548114184791534543222775728363568973535583776997219820897225481486147230596147847602591553950726930567528393124449397137203937248825831508444670965788166252523591043881556180680677949323810095789622853624024158977033906236112993316373507962969033789231474599700092879754007853897502453252907372984059483028584824531784206894146318207305159037853675213297763707141643197612847497217817960130471245443381874215515396773376637503493163041673517802691337290088159378750642705800954390177816356442792645209228140260846782813713235423787258151250460381789723660967331359782149290620795216957426609858609251410307415028071287713303064810693740651311819309001588948049972443563832697335560259075188474096735753919975144481959818703289024289886341704233466122486367293754436701594124372866438949120301705635678044490662543426695178350979744233386960854552035381283844020963394564637462456308874596890117549370061355020298516628942964856075672653835008464945930041413378389340428288324896719742759020052190201683306318943161605340109269334327008772789911840085442650289529288074645571945354147000668832147063881503467853337034929591051229533580647997393560533943037178408832938635880991671339406659523331715627510470026620298607471001089130134721828990529083363526695477017012856748088575460830958543620423055216370516789418427077429040604072435905030270439064028782344680635522581004404673114756382806628837196739569779614566109990945722698594494297231249759948593377099022358496320797973034905276798571983699193922399536472119443677745470916112277447321669912960208023418294732776064324966925141126140486506115739652414707593954674166242719103248199121108198252351591088734984710407608126024066006099645674236255584272730979875593446167705215996792226723116934444638631636009552604271509056096485044850872026303588239917859420730335277188189379550217252617358442129153290331239689305149537317464043587528245843879382654099750854317996395523566941493049319346879637289854846768550252264685527115671852645304178807317262586356832549337962566316736040079774892388520343140578803711546252286051886234113222159378365172041130909036608058644162577291610609670992226317536052651392195159598615805643226074804995283892729830060079629647765921745660894974325094078675651862655928503977790063438388787543820915739332260586230086303898708246985916600729657579113034120610773209359998003411018659819309820465436796189001113804784289285623475560858428436306569392746695393778442804248398317880864576616139059476916047257768013430811407995048627518116791936525017714600672882640055211325790780405198002330377259305996167341792729123474027803052082321461004592763530604327613589917189133632272793367290703539295371808590299173019328535439750341039053498934378775968272033348884321501444878027983863271798013817451845594375277108497274946481603903164014502881167466025538867967191506724856191713745996027883574307029117106069168909774378850648794920334913673237764695696213194317771938109454687247753892987850110371900057229287090216823468462517250429558895943008797306818070855699231536813838030295792666958494279687634504374936983873784253990551776362494106754062903385168233984459331322892656077015977694135378332517266490417178405581970121438473313673646854787133979783848113677314216674768475049726605122522836973922064218797738405948510564931488089284384098501117790953344392349010731315966586053027525175096190574393573433438670289005860202790851862969564077726457568603510251302929291377128841152503532286966074083437513196465089518197350501305332084914464012565757214745347665249754406021806765819471833264847594678939419819349365906587040291665167741924799594348758679977336210522827270957113972680867369487981108478878969818372743637929661834625491650483615467125317328478901336598066429918876384876855670841726703069351251312123710268192161973353146167236639068097538459766673916520151405769232906555103487003631327216311328351819919800005942426873284134544272164376940900152244601827190089635463591343279284610413431668393598824452683236824694993712624380287830378921335538253770202033900853852204921774041650224774210169992474106907465963233148111465723002805719259462054255623999501180122736900647962126065098230452131074205743757245403631661339227661738469195604543313398434276075919070320690601233107720123394353119559593026377396659795198655741509938929637633357374199878104616679463768068936218728527343002737534931336550246639898045839060040699304968308420394288964511420201921489236910771099965035145614297403497625500885618910062744853453966659643119206020272749634854822962571125032651976749325699349869389283776948060785980197562972369921175629372201680099330891771352230255602542222356180310553565597332743954201124504500598709555755612483839701679386622796417120554549879695570601091379527643739921622241756832353793033297161839064869380358206033269354956371249748492847275411462792487143994562001547293022930125875849266268140504459735833596178333886125871232193144244278501412460026999690624002240387312196521040621361822348363657443953553735577500809987900500319797341036646283424790063931570656595564839252661544411727782896879437070394967668409090099689026849956985094976850931411654083611881331438193143383939685294851004192319036632088278465097213100542824769653429052345068575549424783910445610266145766311261680704384043529633986157066815468037905983923805057675865497518805913768027789636196689197063867990687581684925318023636058508080481032648215786445840329907926952223568924267529786251189457333879563732649998673364097881512163496392674275777252436359039664547947938070901886913941815770671871307763261231466556839550620633424251646487741224726236339985710158650397554516949236541850457952656439684727161504574591507394351084110483445540231430693381796471902479118796522726411547090581406849970347992167392709143598861986333842498039853663706617055488631967165881250050715771459194734114148457308485112456377040572119734447601623855325848621454280784738008799312302780504754445229858563975802546223680703684551302991188478191544683801156415919325073423959409378945324833773268694727742649696690615123439136830009006335710412447441814907152049144023030113427434973389299830077901675975021692471350350170242696836472260846089387172261595614777187322900334768538635915279569417978628540056035981947591100437347514638110251027158922732951829569241195894760043909366085809349464244201627883804011723537525199752752238369222137580277552214036799942650059875416989789045858893161112882231100343500568004889176077539932891698129977663441880752803114581667524362611805316038976102595777641239210390257674459885043388383121027712623573220694190866670330945540896902946352033836351851153187291231700738994366167744796231817455222388755169742653727164082030613510182345232261745215218963169874851138848755474187340273959630534207776549986791764029901145421826278203902410247306477587148290926496773714872906754747277691272084354949822845723255150665446754078307034581871865997790424118545046515007081821194459743587255899550319658822550870546155883509816197088487855546078647685959837515942982646518415455330544837857040831965068154061805784717733359551600262859176067875181956892588470920663701754652690664837845098372164219342919861135151471876622092491689345010981783046636303029085898556813247672191494385752051294034384319741180170119197395177732382120637580632164410220405143497210657547689036331909749212561120550947530550500940220680154730153321849184585520797798734018040866182733385869400278813788567704863601483089563750844042041177679572625499471153374274355547322502105033013823279678908040235276330429522616435105736844397304603325283840140192281557283587597390382738771413360793173585939371281417757732945921834272319442181710515499721014847073761358742341902186753025389918341518205724450370054462306515823561386125906727048718251098125294033980417656364129154009854781064576379006348438178231489049390849754128758680478933182844662806245922036434398346717358047030925190516873999166534797979481874629994169870127459617226251643224538629941667981284173474544210259630792380831945388131053541145894671032961156616829184481764447300625208642562679712636885447479481059754883617349929371925713588009571747894803952375287913677710472844448214279638989316759864987244150298113772785286845964636513323562174662541398250414891418890077122381364212126664382956891410922932787080429280674467377138315238860431897383111477711783740206642198178202943657399746290923897934131933948230986522040943443458096159786063762265522297096630513431768083073250196201505861863089241978179192144829411555592059479782012448988330042962601020134146444097893571370711239089957766760633183992378100881158115780946010665391265075550027524710200745091956766440072996700095769015988889748738545237477730122449170490246672511364515100534929745509291233360228725378479338591278212922946783182700678000566865155202850928937852891864805733629175733243887429726369383550394942901407375874722286650573024726243294449165562889831198889361817806222749369514219848173685820924554327635813519739335712097208614522581987020067520568126688962790591450891396535774549216827674228660155892365411343818997848428818708141650365149605653239268557138060224129596467385378100035648171326897308503529176307101898892712806726004831745492856554963625801028281677866826315981194374089099351918081362272146947544654858091843161943004169745144970644105944112536651768758899686215459822313987813835031316508860677921307280648639118376195624924238008980298699485306028868343130713642886139713031603394444861392937771678885006225119094457121161445122156285253812139169096824619038786840587894616323191099403870213951543243891702336586305171877290830665665846300203043811671799214087021581948241662260345180436270593859228124668321859701499507466947100935772125134458025509526458984477046149138567412765839101516152036228646254680017050005523795548415439992291748052886787086092366926626951808314450154000489888170715943371097077238971245252487471953980669128599762040829217272160847955902552384440679057294229994232797212179875994906357495199206095529053936728416899820865738067693456937139959001381118536506797933819566764760564377701951130618643952368813086540396890270803600609433380219794857988042153184288420456921379608678074336530857204903896987351759036512530844580888106630398520495975930819116119179124864628955833260390187235262902193995233850601567415082492080508763002755889586087638428349353313951381314191110172595603889245447345605347114836490027372846773731536096130114597605609360148329551905585667007950963631050389683652120142350729143353891922626085140847751245229436278650505926144955312277469561889765472581664084023851936162323828219564940106962875274327731214071234898765493771588632360769860165600805455549081625134364100865558238222410000343463373586973531325485848705559558002839407295471258462969595559320526437217181709449622320007434394440182725933917731958179053986767551355299399163781590569773376150498734422904245280120238046117295270303950119419888583062945754055955378624037459878280141719974302034836158584519179874608366706661674664091933628189321155064361210882561400618102364320050571963190996103850098951860931850584962213974554128600426361761169883084005247209335746088195923390817983065998231224639359277795712810262542240305536345997229475081972590190503250999346915066266072820407168995360315061148008144979706521073343016142180279849290491839182665186229684845586490855504418383263237030791273726663487802528746316458279685033732859870508546026060401316740466228393716888862263881673660732974117626671903948653488607347314775342025366431659371864210543714799627310033216681505786103254070310385731598839598540368683568426032890594925976083338420484618641352464046356855038680275139592153035453283725704725488542259730508781551430828923235716058785033170206447826127713490926463686780186721524411331298126875246146446289231384951539859709662204729197219749118255131858294046568522574568224336676067161250642233644599706674252042259843849936972548972211189279363535355992356001977442289844607617891196502571287382883347052502768326343314574624958545157968872927954813470728664986402031740945352473429069557708923739158321609803658094966529376792750969331917027924859505200832918664999223582164570967326820794183774701944521102488312885168809087410522699230507992070419238739680011615078648016632030127903748052018063874734790129611291642581257156734708808493465313016442347591044284356458826156022966226008138984530071864647977045363132332417525317682160653259152794165932525923478487187970767445969038050343499279094962162129393743828279230522716639742528689855392467066651461377115028814454003066060897553634659848683002561383834758212767241143666223937354981284786658263209760571254474487772079772268193813415403622082345437281818775117529775447200183317100756061633028697892186114872364078291796206345706707742966853965457528887617684353136612440544550938514314946453163729445477775399994172276171541782604440850100929204365674669274309268813468118813868245601924704611944350882715640688973175119698183011864850797481848127215814922575903958642141792768319912499825639887692442960401518814011567165431261500802852094485215866989268754001260933204454929807265899682460822627429410573212984029935417756938730585366029512728055714282338251726284272194610553438893340942859144472537915377588973220498762860823532641746012135399283962799031362167899433021045324040421736204445352726659579237446103992017569612227686463562686834563062100390903141504589677737242984454079407224014788242712462089297264389534462221728533951730279079719638499563259472029455640115946611050250120103384607120091935879148828296257391007892987231914707238464884027268085417481966314479327054857669479747511214905255943168044267588515785917009645366217320813977121631540915081049779849568295736546878503273646253088373607664966725019976918943119117348332836925501337262170287586856274351235019640493419928875277739410913725160732088654470776399259878955398885936554247877260032196106458754249908816559138194484704845847823524671490251799643945001815840624902070222324681888152387193090271287788017965031605223310265387947475356919675294941744269199879704287974909393294924065008344820706995438882561349075511834829855433709750987924978075707676574103686750080008041034471847234628723430369331559392461485835216956884657538756457906005431903663025568271937785512092624120383008382276650916584917199657492043720383602596597038022938784244500475119104422804510615652912739310659068565380412986610042398932871438530121878439593202174844659076621730495607550859461197489857781007776886122255204278713332018182253307462192590924531630662876490941196303725782769301864007576831621381291091896087209144360129222728764457176971592548563794230081682805497160636411757230499035686699694326465571834668074740768791325080703132485140605743622251787930363148070718137622139758623496852646508970720997860874372062308662751253596233489826558727755780283022320238032433838443870949758147285316467378589583151187554502279796863362920763606085326639981290399138587522916363962415857851551760753396279881452954697133789553194859804289657538194976660840318308283594045662863591408372338066355523862437564722070778957373232970204749929934130783653931988663053006969417592263266567945118206484096686440049999011698988537434062461954522155205929623503335785094510425962561871703101916565997578234940270693094605884929273944248300776970129125522226158756493670800061719887118276567671290366421811751200513902465686688608854210396100089823300124441774702013810139502550075372264028025821345416013861507532093793381759351760771050118485217924782721404169757883106824202548020410080240068249996027777917182241180591667343017105430136214758651854913377555873207651787880583594090068158729785870861418292995864400878812671681569497685263742921866284281461521492125995990086861860183380037774793763123358776373898260731072172446965084211394632591950651034651726635785247653733423134332374232772471321572331136699964480230281917100381835181270642604151716350115622682835463175316859551026978320953731183056127797657356529559527459227221809911356056915489206081876572027376661770402136779964919399438803988385358717808739253093475214125132431747218686763986333214929379213794472427461010466966898851549635890805995221594221130999856554502566027418429907987750353780394717769518233806471360773134710657341518779817299345241474499491149010154844060383410618432539769318363492944441661132554771499337048102175231016119123975799556913893854411351363748961609713387037296514734510004702326971394185272852797223404912991220898152374536144391782780144534261675274642369912418101314189736061229871284520055761731240841920178153193576330011413256631418538650475440025322186201321483741818565674037198502565283848725283486680119014448906094003191448975901308289492078503727176474508523661366854343188306714744508015285301345692290781795891570854738846288044167830438963491592686494137902663608570601162852654353408251482846885293202804419227677227124168167991293434020751165069863040918803671189929795653979847305720459263505139983585972222733835196666517821003976568151961821907392719994745356453836971214461394979157844818091523689810877749276403435136234378871544024588719424680251727147729579297180927047336054062438525616535170706629885995542447116406876630348748658623923764788267239491270894997144373003311905029854345543216150519282336673822617503322120447536060400981163265876951997853922579857171243785846307120963861079764197615847516142408485240516349479266474616945513851322866234762394221276498658899480417534338086598260261380116279545129003410068399676054770753741666182022156418364894522733913636566885172415935944969484835509080089415681839629973413332933355908699951095872413774924535480365136653596204233020009754760373850744211763915126107550523455402927101691234288582534803306752080135106877817711216806303262241074801418856247143355405050115724397591463716932388734870258040624099741034706650674678687601968440114448890741357020052138403916921829618732344271171228879515943465956334602163602416798007993582653060790722116506446539019896650005262993684573271137907182920063722568926894108539264902393003523562001157088850096362675844055085059513105471549779644007859781586877147354075982457342297576126885759590499717704321104991000842336615284267176388071385701806830901201387678274742257142947451403686336018234943589720677823091556215322625780616250666831092636547408027054339880885334751773174005635515174207018338867105159750757371970918753941325691529512129476770304873941553758007920577732913140687847224662201947232116969096136980885341404974976054932207322063009165184152684714325277166465396308611504584029905696045438947401792982226001283126912952838490103170345246091302798621182445253526488912634949652161672038927342853187443474854344944724632148142463350708748435947115611012044235208310747861148571108415398343900646189598510099822169173634500450350978613451461067786845520976769439919121045315706228831473820182331180649836006094641812017969829488784194103335108478470437022921870306800084982859404588852874314354762950619017226246699268247550842864500383419454912656644515271242414214214955793887811121945356141970537125124115671990610218338795954508273360005162474257756658269820680301607730403327507738192528515288350912418225852798442040339664191578111551573933771938799101377426710920893051350218927158162758519501766533750672293895734322444986760779172413072401752693345670484339146265588585088028925074432753388479774656174997705202741423944723386295806539795501948717151927856100396783680377722345672820778682733525150826070669620103969043559804299847508625506551567646526585868083140529036296853877531556167362668680556872477615888532662547038949455122139762556617437590961130576636181504638912979122546647587119571925884738357805048974402913223922900461096773462318353273283590014024142998420195568846502136337974347713215392815561454352424621050779664671597519039964118104628371678280183607942725670770746770124209768944352802812338548024149136889185250861099624086002971721696889162247038615844848985632931330708862769194381686490202192790896837646407377771028877112664410929449579563385848329888302162321629483027376297571335803208246005297464971907125348397482496321835688027883458837723732662676853670958072503419660543150959606052717991970977444895328798006503199356901797854129436309649584960149409176017002033578639762966408254263688939495661055566532656432256296323637387103119981192814268725961580255525353075778264167341900437242673474861783003464318932928068450997265590239695849335436857530969717113105379787216215880022685868665737060286079281060495201905493336147100213086895785453619896495382886784613179616103824378937835644153447719450189636729027353033679566150388013381509661525502370859291194307218016231935971745412341148524824356527383232362984016076431270354378178694446254106705142730064678743211536328294785289904197818830363496445429532837246869902261529118974591592462544674131187971599750233245745361972875565712424102930289338955570359967509816577951970813164332598550814769447974553314845544015943350692111889566935617489134447118021511965365411115888757344064841988229535793685174610155394984046264462910171709164982496696596559536901218171631532465241852085006767258892739213009499679429060833475798344712421775208268324232953356753731590981286668967396823516146154097967675007901830186655092756854119198469210727009235528857222977912159533941744368939932384589095040315129408001614793190185880854366877069853771751431815313077962345508652288800275831018704836412172001256691789310380213653080967817429768357809149112795827167996170341162094747304832185616345244118147066134679062104278211688790834919992759490231227811387309739059607525023510941844883154351087567272610987558792798778922319369764767561985630461555633781671949708511048009121618542824983339808332147999518923162907458550439519011491992635804330255822864850206604287479957316146717509787292726793207384044832294515670116249430562622945841903838329542136655312702230461309411092636011052136356924798032365347651292709703647901488090985154782953788563935657344702440410837000505270017516187178325530014094946642436178793437262402591399959790533489600052122921480844905699726191437378881160714501596753297719226477817572334337223881745556455496272901971250433273502586941494108083085117702942042949633789899848291797175825245108217153729756160663873299610122080395408599722997399006625334600295914046144038213204637491308609436841602496012159331773820559117683437646394289980844651835587904227837882914844074537150819372542508794158086665106677979187704656992771971340174066045782890752524216065476837046297089992237583197260654836888532276229838466620732988396423939288271543202162577764674370799123216407243758964474259407448113674978322244677439931022998529269230759321968739855308502516684916685590108126862629573751954656433673202051357708633091051375569000525311169184494381405996462378894045558459629957474681827540022454875661215709437930139822071353761181571370972403082083452861347409577206125163744707366140890337128487986136054057242686813134598828843939814129118094640212123611211925731838514413404684860346758794840252863040419246039602523852782737132880468704870154485566820922418116918034068969141239965308425781099660673735598830718539765714777047139337039049218531455151191865740348731990581858049588305885536677764880080161587911438892075612958938077880201893406857682064017899804716082839408858519224391149996299593790485038156838721864739337864481524201303351071910091306385215813221007551682572119942999685439590441855899818819410984297447745849113444454843924995499398699248356728997597977355932474164370533604856479463503917159727940437412672771567367133438247294941923517406947251958411255283507435383482886474740776122921768279129020073585968054355410538018010520085137841943395928601192073431627466947899748635171573000381662994999168351050562870287664816029870412226223680019813927683470784365064411141966600773716638977781293472128977337694810738354599010338550693557658728519252618733480286233949168266571289198259804081781965951143863881442962735700688322984551119296992199101937872620921669275955184190367581697911550092486323446027147153972245607875228868512226972157536216538639738717333648327052213763710214701049883660737928446731115731443437402526693842397616479726928636112262514938314349319471915407571305770174238124589604023061181721226402360815187277442126186491868076689578340820301568853019963797315551442388331639566196503056524116610051921587351153853204385448293021230277557448196780711896622361032668455649695243523578542086343397836791261530836493739532408422798798395946120756107905801671031606042344235207591734916824224147453992041384578860412495215790558622294407680633266362290437843244742682542653410671954085314199643039080741380304983763794915432977710926878456848183022480225455132435196698573863842942757854302916077073638071654245207272435119952737007428779230448518696371520444883316515853932356402321783308155059676816321081499417804145549404442116376254496898259287057601552942850345774150437195289419774800497552945639384220592117208968874154259636142879759339144334287840153548074628228305558484274858370033176691018617245806613300124896650164286985861702664936461107595915568414519592331601603686905183609576379727214796237930182156386660439024340843770747587223185845272401104044184440156950778896422384493266338663917664494376682675843655216435195002117739838017805559814296132960340244533286127962861275682631586140792445119463915939795322166155740926328993965905077878287124633604287387602996538349773350450371583432512104687801607713530493435906195913743808216408862428821863438651822131657742625728491704838529014567421264228387739253377508153236897600851580660676046576101152568882490777957750439012239152763503900611349052620294959753200019533199420796911842433511328812723132491222593157169221127686011761229041173335425541326313886732076987686186703502152318521645919004485976903335622833941079035085402020566883814160015994124702469986634754139697614192177757350775607809618566444357898340827451461551111978644106397363281787439512477332282510702210949246288070726136589201826248008361473587627994421241117525695322925110145067863231522479230177244902982213187328523023083039962068916139176487542414883739952947494662084155944911735367500867577804640341000795107864837182664383696814056141916670496034925535922528704227333225019589756406581438277744486790944234986596616077482679930232708743507959354895820672064226865265942801945098422915219240943267533276920392697254412603059575447073093715528172150451318611422952505352857009690777709412733137440571867113809090658476089867376974934376312909847193258433137838421769823891387430140538434596833170919558742948241136906747376967480297101461584503516756150135679817382864283716902750217185023634187686425135517446272798591555933257407051286330938962599455643814271255675186319614563427219668891495775544850585582438458605034481050806900369890460204819612472438289208128344459548193399025843013440478541202259922784906762170013160688136214737196101723311333565510169263004069626964420117463685701962913512845025945313970597151136418078202989185408746448101655645269881032838615451670094015573057476977023038889285919623977159489842850981852797418256972158042870840094685071648562857572384047436759017833841238431961785230764201497755420233305053165981612018463759287239750940552969123217501516472298674308452698086925855871076228478062048328540275957161111418538134779893775069129421717532933492558705660311617732554938806721690674685591059609760151918894675884477622457531647264583477220010546931443391651790886514259072861362864094178837644840392826202066678759553791441795952609492471582097532055032202106054551338008434617396728753154683529862625858184337464043679702096619253251253814657000235746504790317645108985833605232129407067171710027952669618365787047517070363078734220105564634242354190341975193958948433522123497327004367569291241335233632403093314261736836013751001001026784549462783504718357621683038052205184241126344974461279567561982315746207980543942205302466704154094540711768736120631166313114066800411919490040674360979743356326806027261031521938193127576481015975513752314495449575675506424059463706487821104096560794891540549161197134441414911542262991671825233537986912947636278224673443401478210130675123068670054074801444611370880083007060372851876838104121254796877261297425233541251305894872718228709902366124905991524057386208714498196718794345359058371945476921686275539215958125826388272278367661661315100143500067802463326342399584505035226477813454980143514144129843374406468030688340606310852462617420389664537773965493037547403047633276890696673641661697321988090927256488517019091599700163749446265877150602596285811767831782711425160294960650117670296090263076157725562649699600658455873041721860593347373236197788035139574403542323239895170376319305328858633865673812631937767670291948591099614012593032251932764278698660947467285332741910115334365770248811508771108706204670691181791237396946744989587505976475642687876493496434955673140506470625080352530125911693518552435630888146956792991575585420149175662996567922787789623704926574226451032792581488202915233958531248079201479324099053316194531396847069389313493389980243171598362901586650646282419260034565483146735094730567726612676469400384653200164875895131474564648597734727326548815071896579237060973970528868926883499815570636169886462434445115355712931036909881968581852705836998534369098353280859917685463340159880956054956573063391101722035465669221010516692754187773480309900722310008625715810576083629392992670168747538045283717082013955052107167663029653419974615937215407339677374732883691925364266892556061936000744974085355035809139055313742868169356455923015446495776176125441425355290425154100243288909933996667763253346636465516433728148938369966620107008691367476581847678531796851110507882642375033556954565497931923671623053537773728930535455102221165980616616073730828502488540855226506640478497681122521298046488347516348808165015680296204844257958727884769865873192945289350101462167385836610739219902459989741108744582561826752828074848530935389692321929524688781549341243877221659028242573357260782238396486876470834458943475150721397084190107632899107813605641243655951292611532470473277247853033443222218799818018022381337100307166129556926392362820358798132484657270317955626435847147671785659126111919635893924609254324071869079503598394233431873421808409080230385150659484882392893711381635247486979075716710121175869871641807493916905645432927060395383860450638749319141173361011241401562194052544850582532401359208825415129796350685017563683860842168694547977809241230742711717141118590575570516836526462914329716230313266026723988757468081781045415788719022089982018509288376347679433973090894937883527353527664295561697874738961327470385926720016900749520483092964061291408534066848234063053206881976459260248053947755887175277273141459388855801704305532567879530519859679402353728840625510473079756074001549914192843028106597210702301437793806136500890363774880514769379214103190145063541806516315297285142614045229175571528631825971792829125744975446865112358872304712322656848259026134611933949787235811706607886948478413743267747271970920811074214554166181853098700770442969581600197999912054422931322465447346994680728588967377991098649122143808220968463854302719660181557627746320178869590507189615896493472033448271889213422273151504049316506832207865834519871627452046014558078783452233324284686756525534798449447751447997646550857586190006868185777149446471345090676001777198925780483235033312477383218377186563511849576646189742680530235982136782114657583993953278983283582621800682740057564407598335391645625352464703397812426500156073247482622414373732079158018923184959899457445843291917334071643041758653809981995572571006016833183469811858215608958621981072520465646482541402324283961485713876387391869872885332995963197941680036769019415566195479367718847014533296568365935989199571085487717834546017654463045492234568826104345408076545283289082243091514257533016240833233940938822363968485286410864805620957281466773552667708007214167221315820970310455923130448113985309646766508419215082585926403454041459286063817155766546837627060736157944688235566893071752354723624123576875971378427193681054249629248423761234375051020116374369062611976148398196308055757217098523950492085614469730648708643838082946349854532407090348426335830035278034450147361027102425138533264480441316364256256649263479588750061278583784896200887371906072206579218184273606692065912447870695321233709180387409389997831010200716523306019234317962373239099958009947298666871842741813952845424322478417921442474770350547435582849068438401480287418639443758206281457247828166621616395075579345443368866581412021190434747920549714744554929061300231322121091018356360911486439083778928078489502792264601639524581501993662989274183075116286445815233286103704466673178892971626115603821124052334517278671949425952851814414351859647337428012188689379248192980921747068610794767303675366800374121871227768435349636386055751016207646770781601594813397086336067665069331123087915381685879156970647793866123241225966556920709452759984212830291783556330575899303404384556431908955833984194459795968605623695348302014889676200877037457187199805493300941400353978729240748963181569603293533032806949287410008317719357398645035389165122526264903588189961737738860880390738373751496223027843883089360163268028434687375068506123960601731713546157051824147187018350049412539818957673232404539356327713782826798184855280685356972063106697743424837454481563652899612794294152133233442261118504753336524170468047755152610029719232202555416796731608352208468285953658304742854690464100169776745287907791506519537619680602451126460283828127226800789982291594473647825918719404639962616038081103510629170159946606008333385168671037663406283909806742325408706008052632814044827022469448496027957215423442996416173692332333125772506329868307601055790047614956359024986523792481058168090426921119436855441698114242373590337084310366955627423650796871403113352062928017247060811553129744855274659704971234039942898689443525556257529415002646777272502114993300773325542906835418548253686459516666435278014776319240359405490747418798135905951179272365973486782148506759018904241649442954517857588054840269925687258363359447114138475573103653935091147327672433629977072268234244432146876074530468542829822831037099707828433622185724468168642900372809119382429333657723999300201627825783126770500186814857662478972759092690671359497898518626631199679229182035206742182351403722628235162966836566690626283663949668403769254391908259306688386004637321263608376115433256861753669710835925177480353080240940751925582974904940947416851443973602754572053994144505506465023766842816851031517242270287616048991622804835419073883757213024390448964221512569192647877171170004801298526789493321754271666756321304273555667095505594795407700645050826472339405705990434132771074549643894830502841303614590605289959672467060034760343755309329784954574511244583944243084334445110797374560167577744317682467185934847457340483059673717364227256473679154676664425859827120029015436579838669313893462913840208869818424715362058086131328286649581180243926566946054577988345483785836652433396916687079272195128467895728581815073374188043386498987779360542288387874911144248211207615545653003240705994828406055225049038275721401281269430339202192319822427401345858136851853584231661538144288529959277472244799167148820802837167925131530932432748949684223481519565396387301785403735685551199285227533032160338948976020972293216593231713464491013937874416094754616706011710980964157097314455134590899715260978451214656954576584466059217747212188255096761864491628486869931857131769031917983346630365757665887792157485860034202247632518748154220695602644055024025061121646003005876012412452794401491675970406570101777053625275761068589877136159934071063284483571053283002903633734650686317755584428458809389499000996596387165806743788317411734070923256350930736855274358585949075742898747255747181029224272587388560703402835566706592466235174081091985455352227240013341682038821044054772714704720038782892417114542180030870706533430883401936857994791715190770235331306960324022836739222229467727106462802194344923191851070029377471178653725384486454697493019692273061509704738787977819349463045428029661004316052938000468192462453223149456247544455210956744283276807908170078826269082420027741114167245819660926414486043838218091462614612008829272847407329008335795567835371796899910577136836976917883401254058266263919123958154681307173659137379610200900369690351073310055869107261774701851795700241843366810461014993426960678286259561996215656310678062858163779154032043431379069388059834984566474694456577423801119125017495520345341723403195079394666217265885550555889806378913308741190746727700292870296394894758679457030077141902593653978050297039778940567419212129725697645593013239195200078341950868351816668903547189940596961423565105732195814079674103481363662063141980662005313969470892532821345572245691972426594398384268654702911935116657015664572372474229902573060190923216511270950684594630567736475840283093992427009565057561623805339311269135386418527573631514703051987538569356844232261261221286960203432963521065649170378184580157683360995769561054628433415324737855164794178896374378601641335854073886638292398529843418380600349526977182497227687232963047924871186528543999322144505847014657584120425049493629504200296456262965536021293530456651504696705761299567579208323370918736244006897925346184528481052471378416643815353040638115326272898472663439928383037134070449124760196835547357634209701805270414225458099377269331892940926991219911761530265653941567736317292169601081279387351983576711811904644668237557721002582508653082174786786047966882580494937582382688946016477303549900193524050719560649148380935336278548933162647598664102603070253094239344445854870261618301380176543722850110581876684942034291248499467129842311953178098835663490909017464894639285845772190485120500862750189502492899525467698799559685865045346894578613208222546564427641659173598661441144576612999468536495067577297562808333456300317244332913845753102258602525458383134470847145919890436701263826827373865622098877676529552830755191917050678974697631699769547698274436826615309553718440760885740756999310535267541522053623914118577297610571363141821959431244829514585218246567642014596201075264803860125428914269675337356205471672628048988033628255081951544906011674536923630318414573188723388794258114532477152153397556871022256164638000718851783045090617421775094400119577269430324221500998356728299716643446330667405456282963285051939819815479093501367043302447187633456445754937318004774301383776821970105510565210005364469803477964817182497286748134325143076367882123528653838381089177437799277303249399679156831851209644920586687067777297407669659718283353841987179413081286980630802309527043557155146253770302161511392964201970622204534012229750162856879336815288335306114185524329954256298676713230688183527517152715022635979787729548692272453844131757146684923209105817981743120201676137510674810417601944827410806208641637725898848612144620918871370195780740953918057560243329582404344918555089585930609905138782317511412426356370618618718540221760686553061286629484199124072163098006988470894333300123186447226678282623083403855328112341597826927647391872324863755670677346935271690702254300647729992814796422534895551558140151288701425456928404181394954003060632460199180429172783362875950691657115348479034066682215381736908793468636498946579280306383341709777738439461544943728309045111741931620130667558951464676487205216090185707525621773297029879306663061862047198595331420147102346300280569598991275908943118548238782053174328381180219257748635603985540694294525916306863159430381691315461589157575969850275064141449554914849886387302689120424618233132127233157707978141440090389046630021639090110977011616401810636390333115160590601828680167665821137199675973852197366377826234125447471976212980658384781403933755289814202999421648171447925090165971092766800479380445965725452502968281785753819356962872513921086518573155181117954490803716036521747445521328454315412492909948012569890674328411546524572546600680967736518204574081322795133724440187050508164423949420664280884760146665927952653727911440168832930743752664221954045636106193697539961088699189608291070478113414549092555593068184238703814923017622396770357147429828467496232527692299427103728733559943898408268718336569929464160705187905343044250013257480033479754984076859164512929877037056531634675718684695061686467018819724076352324015128761468499095324522740593145891209945649157287657100471157748600607938154160259471929846747507674193919065650292479861777829703218748069704982280989826839408095778838469211101061325816960953221659511824069862235659938385893367440727718344215117902769648877871480159443864673047133253640135162897593130708625605721975502794462243495043563247297503036270792374351395241192666103799964099891544358154461534980270131703423821315672950603881294288185581900540792087265766454489587782314746940529076536698395411994925544774477801787516642796120817393941227786022056167405657603382830071097866669852100117527509794539535707562735262363743207708921160014687034554827022404662376319455390965436187959452653336090899585968916312808329681279305931393855620180271239408718597055283016343369544797720991195967240482723914044068266844324886713862804824799856628524458207279339642723442421336759589952028949919441913252547506686080195096883084097445315299164670129336806333395818433021977818351027845698635487996876316795176702126820455959463175461495113911304731345874193942363739075144478409552300979546110389967917937886369809644352159070948861048762047280403967413672239090877742665564105949080119825362903626927125131411240720627135253334303017385672847791512206328100010368629979472474622701334877756041059764937793673399017144144604665323168033216473154562866205423387113069934404252082875629135195741487048909758179493376732772833648987465077683288110821974349208676715949324725647616651791736988622887771981722669886481396250012902825972541452264595376035012679080077402861834277953443668593228766427176737271534903520434935596353856865235121343647205976925999816561159306242913321423174900454222216384060806627177661290251260944809942168753335635879736645457210619330972256502930424118247545649177931989417946484471953998937493053632779679450985466111864992598276606875523525768471259865817739222801547999881017583875368585938510224930602956176117648507099403370687594357756888696222427002114658842522457029313427051463871760739578577245424089778194838720233440197880453507417230388218260137937697563380876593803640256789627247445730445507769869426484007485183460375191800519007522646783483422193758696232491090015596843296329065931735006893384659503880960830405398153987953833973797505972148503240543795357295360547237696411522343442326744813399041133755670192202136957278730695620901199702200007139685557264524556907932627729328688361351258684112238381611029229884335419479597102093782167975568394026500767674966187505191117408880365771360125048732644168086087967153386348933673336687980883057709054005960791110956367971834079249340744674690201957471257361350100318721497629899268954612232280874720577484548710571055170085776691151140744871539571980931921711669193655080691583680954301806629617771186873340773653671648476619675800027399136527042136779317369238034739786395677401417541274425810167054929335947739403072350626418804253672566266653324974084056709103266633551441029799423387490727312898175088327105111502024079387009197929698425979416525071608383101471494865245262354456723106718885598767992924015392811302120917326536858383336291829605918768042737266298967191108448954169937805946150618097542475214567577238688925720996999850971682348562607773036384974344630862583143216135380333818768430222385116869506062803815659488816137609916200964927295592534633758665019091771029849976098824870614204750534530437675051474639831754497520821342510223896337815485004014353276253118326785975579852267605699795586010869522237751216441971509401879482798216127462332262387858693279596464639983540564771007968762246024804751452384722113025281157114148104792707930698183530891144606981527208890613622167231140368539227739076177627959388144977146025025035263172833368062178501626874007159410806762764536082434018227695155955260222144452648959569478836718625637682105797907854215842120786207000543155877447674765583983978969088057898829275928632347145736528492345278599526974293868587445632226047441113983033503673786811952157883887232161462497225734008318876319969699480161185997964453823951077227191521928578614876100538189036336108081171300916007678790081402459811011644169286466253641700012456035900519700570111237790900021527290073918923750291629319587386118030045355281655563738774095820373033671622750932726235062812134258314541820007519212305974324811917600498854113300538880497749101169216118034182336251787563121376789856767114254375338440231225339336765390586001933918949081908724189364444132235320456253328134851235638485121761923058707184674608814640050295508837282311255374671790414537317080334812669525980739857857346732772184641445194935763374847765468513963498966643097559389820149559884855836345173505443353174479427261240999704082694960082148832981635266879527542614236431454544861159130376136193818952514139020568498703096446099686990791356444547875087960042928949418380436857325742139762485358698553190718515097922615428376156501703577195907064157556075203981492612475969981410889195806975649974448007604845828546853287068392997184402140819848180320620864589626131191965694209209567354944770074854692247870138640263785076593872997077550719698860186321176066825104625157788275137177963542232428423416603882372046565166074510675894755419630560118675184165258396549625243205032689234597846678689754453723747135778356944631437072900362514795512111191403237977267773924530868714348184109974391963199059470275268261867197954273202237875065004893601595486912108244739105400272611642607055597069548521062901848089719950101101417786067532997057767727246384048362083393200396055102380533054474333561112994569255736924898288094542518381356805781124556053349375947202358253913972967788668875692407372302957820885239378358717299063543838702920154415204717713033605575099516668073905944416388829551744557662337977038370458161301835878607428625021939422959048600867343388943709486896981702799126330427728523390606740702395930740684930519033032725121500810504162496033490576010717520073565680605018839074203882272820483825828633508032906676634049880707612813024793651976892414049617017905296764829708794500326783288171545480683863358850832670536417140988965866317665557957078399474135372119586406190014571571812728844485690280036154259470633677395393221871880265842677854053683757856118468030058833340320107491479751056853752723250756996612749685894139276540346876690086882529818758270542970559723136811119239089092913406705697108980614580364123475590318287525895465183343072549257851866508868487754641876058428816368786613835245274339597892058967574311933124095510992636590369147159506017856460768131350258683941365034253609682740762956434069604795289480253711526642121722572399107629601812263648970390147117238985341149100481644816650819358893141257738336697787879018853863146838678123465546328593988052142470446938546317389712025854520771102203560393791773446783972051457100093776204784298542000081993990599510102462306823481907313201112125980894033536320896059764821861944742380831522112890937510469820879747553507925990393795334670024414222263066859988913303848122449830738937818908058124775824473064713474018674260989291635250972090835780623040228456295722599693774866701413928447881005588808787143163013000518867177078684989066115256665189730393293045846546288916797820666641553744661059203127312558485064349327571275949293098705865621175788115917488433684212535813047112003583548637917272187550655333342576918020163974646805858512595196421347205997696817045376723804283525108172169186651293179182521042650793395830902451059862243498014985166906773396212863441423005579799103986227086490511588649881097525733443753419043183489602275223464320165151569099093948155035145183457293340361883078819617050794627643659559804914570631465215591535391489199618249654298208448215332083303528148447855734660142637706630638350115098319143098099065405509591798024503315233359205911939738206409760092389314967143626959530192426247415946859994478965153918473029473750230474852980466260683803986548196141742499304273481758093294610164675456893761273420721345232552575156178909708143888849483511457549678833029332804012688030847679311614083085551763265423647658043945113184025656559344090352614667828378932351443908430586304564776449456808711337034532618830460244810354939363789315503668923838778403177164522354147529026187269999069891169379222227646963534406742048648600732472465229512761678306339072367008681295498735788362185734007707245717821394095154689260527008982652394475365889225827230182423248020593778944188199895734898683789896209828961220674855067974313325659535972843219218344780351130963792939522375161811956034220726593912720444151887961145944417603632575396130176262590579316533005254267556852381075898312789590211006271852391127860914846445809024313661497122742616159018283035448084913612102299450489895283633425394676667949299169119539644247761391139778885559326598355675206321102931509543844689797208983596250595303996742830014396245631502834841897210433152583011677558686788110718804508169914987357773046531488827924088756099530498963965473935801521509269079575115379681412169155998000492962520731014271956047012180635859585443122953415781645479607452957239588633974579814917998512731592130852389034225549262798356240608801417719173742633137874456928034251488780065402266930608396512728004433093340069931201667703962304233420009173874732692127542656790078410910593960164916075581265898328177911221567656385459715807327110375360713022778555644744648947525086731151384496680437047271353815568636301862369033097357879184869991197513944849143489361156600392016976667198334500742656809923024879076923956672162240102859153393467788284572639216024947927503022794796124644608126920322125321651538208512604753565306882098659729034318145726781384149084401971642289420427914222846362369664891094413195685110047763982711649743681604845153802283387300486095447286659885975273811264235954284022338984214806697897206105499827689385778602980372256758744945185070575590660965689023767674970181412776597215618165118963982964084106570927204061598716838270438396631292244564827053339446587754612081452300307662702159014871997147910791221264224830080336136815736350658280616418786282441320129213525695313345802623768325247458086555269431743391957550810009063484060904273345326490828623445841328094569160760335717300826625128345497251812442385455190195659309453234767952855504819786621299770809361748101740844664802478698867931156679732654441550429977281847751250498006922096011635212665588426455874585146118000026969686782370198604247249031230761441748438491282491870862559909199715417904665392463542302387933770129474204461028444178517335372803530125071914820179603405521856256806199320208024256680324352963436865670618107332660232155074942724944725799199835809342100519728504420468248107131705713681130908675348335852355904945163301132098009434763900603247120357560003137433530077168898727448332020047991473971311506980314210343282612260905472651747173656766068639551324083924275714233273380096767092668216707776188824668613695935265977681139193943038737992384380246428276931423896050023973854512650878134045314027803387488060787641823198833439771901057157259072954987257354006741795193358593274298895322023623291259735992192926819200895326166818007779688452361931262134869850100673565782207843895212518154679856985202433231368070042198376665156098336053581184165285677068065670020926469561246375848623174739602622465937756530521982213018330108716773584964914139627585252011076511936166214840105370134924265001231896298526252989155683262038045300177431524262181783872771832661202029805030902955669830020067954876580217692240684146616909870276897454335531057964153479478016383374796468094422836174626236806085033008698970755816622900343293212073972892373371133892076883342122610070882628123836519235631238873161321907808585040156961566030738331603824664892823104613220766493804342549574650805295917269940235064822949766931175218155663693429106526920990937056712541176452151643750121310607963101498473755567833026933786039849363624193007498623476309049224724754109274754474242424446830920066334500573278415380030812877825974399489982027146963639291837921914402205349489850906546199683179354291803649942577845608795743317832241175677797792652268897340281023476759494292634293484896454301282194997992501443798831570240260069875909302112821567807167726343412248461826163373003443901578649323035963735999409261732271153255747699994603134589855834216285538826514500468891825114445527560670865713336763627574921101953020786343169352101540718637769889325063096899665080171566197078353161418114135441869243018512220479577803179162298289971620190199316016324763548970664630406370213651840854788979925331624971622162128247859460677736606135108720409287331886996170153287200044324890137307994323214827236179185129968330859718096861897679574537097915004162858477300030164243827213446549203143588710723163658397443781430670051719289160384224958325442935548440579822020649555569446595633862468502214139982460923585329138485378206375901330770291905082651394283416830601288587794844066049612083649202504816616482406129231270077483393915481564327299516636068150557035620205336228309135369146910220917778338341382655004592628644248834706521262273640361367380961341211127620866017922790731914931421117132662817731081868458848287443841705136558622640475317070487252537119983678879050312387999012828286185487272445372480634696666252502585722910519339671046277701777798137688485106744894520381847118783438747795659054486695483958146101096643713552326100753039083177480582142854572166768903264603818661194225354947706893140455529568584379692119380436158293128294061752685709714267422236763779188812005913672760892053265553312044624642681590960861740609790389653534590312258551135044090611176184770372248901395215273491690445695790305129227437658308182867439162490040992306087070580807888032998983827182001377997286322942305636792405669786271807719442591984073009382514015983638723299903475802637574653082318027043592092596800274739256147769999985210142121460587047365485432219908494269733868815170854474457722300235688569311214938837186812714714147095575489470259733744792295349941123427944041188783541983994481272081981672570739802310800979400451428755112507137303812858200181933010438257610149879723429669847902912383383658886407399347915203172896320384822835064290798364975002890089707700003781274004250130839632341202116976932413006636161267240900966997388171646357024748695515633091534030943125969726205811105216854180645235877995255798127826920371756919326735289928197673877602217609731335473350801762524674632327042721859718980547422628505596195620741920506812499605543093213453301570484913837542335918154033345226991899736436779158419915324635424510733878676590214909682403309500388232698830457021940521721875168900770697654920158885837386736408752553950651492219377648721402179982590961028714418538056416245110905724947080672265829613536355891257614378093071501396393296921475194904869378796144889620524104112708408931610468022861468252847749678455195001619637254434081893401549488867591209938613817022944374981428775247545111917067005021152516350284536844830979399764703061941974398019368674905433350359992147164026863546853716837186207509755635885990418803986178009329708894223489741613288819839276632832031643355770092102531630310762713338556740799539852913079355734118457009461303368756395803333028857868499978332834842710406673591661755097734445328511716529074459689594917913591195402293310439788621706957414604252873257090369908859725224682305885550819711360202154454870274889034288983411141269955653768703900846336348243697547709150686713352131764599945143324426394497496085566007160883852416159159724544615492560968762496731270846074255904029370411163546355860228574055268684410232300514511611567467064845299058040402437332766522710268156566477934338618534648662621783935932582473681224288008943722263797401177863203165747206578681985381619041797962166474650768546241132449319152864037032391677404886608152575403619750683565815515356685594519224587549411535365785490441394357365080042679854060708466302835268955766863634840686541573395692991677121449841710248030852914149294119362576460573782025193179408108640912228319242750934295930165016301263139228476452737174181142969622056812794277453641887282485558516989346105345785854369446443889431323084113688671365404603566842775864837448210679419206932792223407226740996449746541341227331654438743155230207957360221587580834084722820258633494349631522902142239467604872521538279127858577722920304222025867907024901156372829050895256048634025305139887370539585030141389539689046052954322362901155825566638669227687436505857955984925108516476339684299913398364084387879555429309238052721881435358370125311315397283038364163911210210462728250798419695242516810237931307602324819978196567816640014996488784236671471170433040068995118401351069322511994279138793062821652441831037022597184924560728325162162401807612875786211584756638690483087294010939608046094488045089169849753444028392095990182704246452230917759320919846812841739255062410413327118576613191767624346313909999456190934396518690616950161423510155668126950798884979657584701406416137966591651882125822601153865591333516540225289297886180631338675460758399648453606450003637918101898532827737197088514020651891256026912829484626970878039197859610334110555174196441306801818894856251314978020121274555223801611426745782847665019294421323555074980745874056858352441130107688827219987200993104634268185427530012359001141821661616001434887178437432364913235625602230038909466998281178826472879060945296524942308341169653752681257858184714778028077222815113682821857071215947045276214585703879718475698793741671952046934720680533864378951441961144767551279372710302288698914040202462585446129241698094402694613252889894493948903378921710025296399147883746111293883805053557828415859074677476508272621092679612614876960656749926736757076055265912020427722169313846732886976778316194993806038848448771000003563660441872161130270953300196903682299132140465398814819478840609014029451624662553827376474670724077787579034511422337486025872187610684319266360861478893250231258804631257663819159325159619632136524203121632020700097061144607247625362184663553829634714658509787843052326583389252184699149364334374780059736848451870355994346319989680139415916311204101742917109418475099580011794787982333231081979078167433457519821165891306121741533924274625037647984220155079145636442487912412387381163055329535193095499030056667572259718679336974798034948657363553383495559487067139503818379513585148667919194298258832188258226722679145419506376252760688508797774344308737797848041665567864611115699789408226367731705220061361009721275928581002959794720097901777081823385837019692180886171546824243987992773316643457004709391076039502105615762262186865412687237310374269223771258910398007985978768197763366776994394349610621169721732734695479470824757315880849041418798728616030812275149365464328401501315337461775416153372451957275818336559937141488467992942810149814271801735993721060120651293141169103191440822329013310017662910471949607321298119370703731596321230265738203957118932191135965923022432900713897743209652918657413634209584599375678083757442371777413999090099560119638293837928608163529441089356620755079449865873707721016308260912926215710505891186444389805712879408348493011212867419867379919928205974326071044316710312509559690685203833992996815183712990275176537523525303596772962148287242438060086380207290630048339227421423133239611550438845026687979446713085596973931965365854065672355327354523815116867953756817123940615090179074998814693596635038970966304245995378593294841779879493959725937702320493359802255067240787952009026014423303126364423855057879508625663893745192449168933660049307643238919699061633792636396131992207741407782377184133594133538650164547087098078975068173654148403732851352309599550280260072106178046088588618122485935645099399423736098546689492141977247576969054420258866241588554488840899419143981772398388658698439836691366601630766974281940847278961109720684135300826793728942325898684719236006897520060760826441342611842864654544765904400684495628262378929439875113313364876072317291620222656928547968712220458036738309045573323512980156568705672565654427836259387868425261417314254260099080178048840380921761610627959757275003881361050315946687089966351881190592123430947505558662062619428803651536409481918504998882524438245974267864420477329966263966786559927308538995360415188123147616878444926669148203280106508259199836423449273294218660587168109173917689358539297232590612318249161379633771716433908100654903381074229294405553883987607430219349037767337281990714519142108870365409122610792315386471533326481669829088140700475362938956075108897866471244369977543297552797651996657421725565843089878652166711849962196406814037450205494507934866507276312042738148624815458793330068058687638390169630119574796563481280550281315872993472768522413492412697884683735436988255155258102727780510122995862557970429161225588318745596767912256798632632604664535152511266577640976997731595187831856252237189527185483397066702628822099109349366446734295857123851106488035435042797807849607905452251321773638818872424704207789792804368100495402791222291043300897241807876831956404626391652688542110547355252335495936797159945130732182279445622744750289452128617180520195786186978154105497808511041042970947142616288197870119613740082399905318370153745650303134156706289768924081259696684258772145160830341471828257231432542672910605140979927317630467710924737707115399046821350031111746684366440801687667943725671595122122623734170517564282258759692203860885783893808857925681104641920749121170379201308582171373842761512149523675612941108784812113454609132505165392002889227076676797644625377109920006312141756824114045138896217894935919127040036970582481934019068180782871308643591794746573703181558824063474518562812246146654346747825810788633454117496115576614820174150513341212728318945015231457862237359340255717855085431538696324194338556780091689840712855646146066708373431882920415205376168696865853930616349725787931261132397925257311980781652047867131470740750348044094171078656007301719821922885335850555954277719794465902650924806367961087459458435749020705459181934991296724902994854912026094555242052883846174301191907436867922145270009054078232709429033787550750267504544903743378333775572835633891331473063392659598425753489380543374561169661153011896901847489903011614272379819915607764811081735114145655724733603869493850008877210886863807678434944434915372239484956369282840214930244775741821281121681473499613997175839371909617435910326686109729599982366135396130792435491106287095635113627272937572202686584691078395835582970456132428340032102477410600862361983248495502452551253840294193147432717482022865186630973098200858219020605931347099445021563003956144133995965677966130531424668383607212172548936041646602084552888409738913578237144058763455638610023530916189213255744050019030230096599928271137347108173445824521590881136759223466557282452185996317075139062236523087655163883155437346096062427312781902582829881452386685543427546481538807315819309070069369671496128878285941327739917016301995983625483538812241229210851010350612519497459224218617621304867092674229148499334991943798816433795284595005509185018302955251157851630617627381961936408156842156481890948750560663887576471327908109594442462500295888075100106287118136173354373144747515169544677067884483405313925642472913986202376618555299922032712306520314646228323608527098733405715105951016892386588211390619082046205512200742844120663607663458163174426446197108879638150927932385296986677388436277704466196075488992759592942841619937992416108481596133312467176871103233195233630944758333738200297573073626059865145538054785152452028131518100560513676999627709056612831920378114736007444725392078717686352037978600268224764984483828330438408225055624675076423965712340702141387762123396585930330445295977696131498897749176856131771983527816901001692783156440471010894150453093313818862006461636652524930116941729077221842320400371692053951369905739777478410071265992272330427410118458056653684744390702649392697088943113322785681195689925265447360322994522677082031248735268070450032970811831478607660817763459054191227313663831374076896625105897850851591522766268305905161069888682588783890946540597009414380549000048401143113898083057361767168163266420042782864580377134535905490196408187802713029606527142702096950207223533379502666744152389171877671667293936667021950448900210666254171941229334278497561370465727747735823514978060208425867525713717049993607963780064795789770880504042381802848734371371602928769048921109152776338172126652303099186150078393984462515574883380187790173880757154307562181491631478762117727754592659427282940708628051859789170533079783763109124707715826431240029205982286193010339952682128135832542015516177504091047814404864528793557759918797426207852500850268073516329114561389844514899636165903426017007561604297209589037537849565055503418082766190551367184448775752233490348892461572319357602259765454624574186498731053808386806755233889251274034496942438310406716837466228080583595780119248632125052825502288397338626997525718404905417727325205387979021928031347604531280395306172035657691526931569517376118929599492957571705283053311737817388391437605794147708469122767999960665376022266994831065543289904362604370083305458094419901240238181101362928270963502623577043566732862945320429428674335254661812410843861952999802430287388963613555635932148053295668990798730740925576069745823678509128739235064787004453458341889342762900951361283123475858715091129466849572986527242378352876337046173178524466614656476670065119742263287242999310131333349965711414664714993479991320048376157344071270931605242060713065551777602656338333862389465971586764567303463406004777280956187443254829099809840074023986813927152750577679338468338627789450998422895500780005045144552927675215452217745334944899275126460554016387907360887406465854653134187822792036715251995336048911719135986518946031608066831277076999651411794228240605753100177393282090813454793327219138128780620903636487019599752748748424484049805319976346970436488927665252832106974272789313555553103633717398751387688372563020573138142770174370462944003668328169791364998207097425877984327118229954951259860888491862779408772281532795129098774545161710595831658994474557280259412185489249220967040685088321432585313215462624430328640610885181308776998254713647242146083120161991524897337685863723736044127748380504400884207378160228080292830001208138504867037726400040926813865035059024157108183186346852011121077040189109486105395571898396064902597423740882235475604771625470832303001724032659507810955351439808810375764458636178031010930996124632379328394489929601092073524254882370617793763147028995026002358803516574565126213180984031350735147218751822476032186721578295234860704666579077418606917711556982330897718601219285313140989535681796823244339901024120741837746747457225891262036844124392437972733671687356599603231529350779077400784817859868080313708979031146376106460449669081351972380303585871274688110272886896027584278596368447774597611378441278561375951180655954980140309234293479287276523925203990603805371339431490466736200880283387365384427400332588096900986095698099429588139820710588909298860142579751087165832934389068893856335230535738848942375421658508288424978779620748476217574482538807193540547967041254043585692311492578781353023895207187189939986031773968780153993709185457706667924995612117789610900929427753549535308169156681125481182714047518012685719236277397913689369740128999248478717907896358615569953557225417559405575911986870706725641205856874182507954764910615898680226813486419229822807978307876566821655110631743468680713532556868145744064080566566811477321786787931993485230205655834332409565387269767607836897237467294312646549072609729848993387379975474392163974171115761937220890795381549493057003446619702290021054859207912412690932186820666177187061591602115519010434536634680635527916808029318971513336205764149025502927229739305788497184802924198968685134001864589031545612865737837275979674053917671254152726633894334355662446715102347339770508754758480862779596526579903040016509817493624775023513301120138859064720969723231933083525178933628191546728189660835073609160995512126838515007248295597614402544565367971639163423877664859169190148793859609870200292676914910590043906628201788860172915662318189564113195042797999283911472905456731429661171896011121863735685988452357834512839807246185708098482363234975588471816741144361058844790278869267852793844730992643277567911480407108061124042258773180677619570074045498284173255899025056924039582259606174253021622026470256868168954455388714714769750242285035537487166897382216441203929280021034873018988072716607204308094654581326265935076325730521000472424393818284612387391915322651349429359669699324879552101033532538257804260320699288004378480528640308781876944190552192018348071904540112482089121577740115125182709651892612859605620343994811128243494243807939053187194331629521474746629412890172077745899620385201202298748086458492488211704765453434061530963793245238968420952363752701319368357798230724996971004449683501757691120582342917957728107522159531544674127883872632175555951060540778063237236312970887907867114424200813353452446869469210380662633372688148222116045942759085668698985839985667201821415744885812178336969157399550447301605084013676485730479348414325822233186538910908021691720276994151270431524028535839071393565651949550541561996501203867617714078940087610532779498068588304639594024735755009021161915557927026891692436319046580698321617681413058799028633404771424991384221720549313044293330803279392752893612112644659903863265969869702018958850764582024447541777100849173505445772193339212877447046558028201906814600691560673350678099611719492021215439239777297188007757919040732628198613525928284927582091321795864024620739745900386446755342515409576067836004083643019056673406707426449244190664147369669845487542648011583880326709600844090171618813311278173743162018515776687352578493275337286706031209195330673705192464777188702694268418829017032439836257047065281991478221507318929770849355068848527281199409982698854018543552928538848121045940211222024350870411712125277677031947882957528050476213878773378100717832929661459931515023496559587380265531438585748497217049309629082709317716143147895341188522489667345352735438110007159164973186658032771765313330638898716070971523087440239398812728148028984433196945018598749239673084403934730861799938817138124762229380703206674643497056411869090683342916838176763399152327686076052983762829314011775611579790461965734985745985741815664086282804366593597145467944596659314237469432735192722250179301779838782476250298443128189829049219441293353547011794982132442064060485529195545866005461574469881235114922393602994303748527394988446455496235519717596515204703297122638422787109715148123550339913501594538317569225553516412447173985807968705619335190935529052568922153807129126289114988473046376943476950670051075498960700004080329550207779026505040495540495595329502617896806922044095667645678818388630121778306085821291539665046648293705963022329318820149725110434081149170578552059821143301430273672374717796197906954736658623832093596703987940630832392008593188823687612716694030212968889318211276075358364701036946957833023283588954779594627976938436582800289709959971936216671919981149706061422988294156858550382791779009665202352731757567832546411798825664704566436095391804813111717466732172418296834704702735387879235495356362149633066972196526449451183623570395705646507300728161438914138158876700368038650396216071975091596660063821617425178395425908779078357619423024780148043409739911133214571016744173687908643822518573559871846703048896294153809992708998471776984701608545936152514171665098378346487686352584033295841043353722486639929443305397978477640375073195358376929302448203440176655588920101218078651208743808426326979579911471059258936725920211073407104698785977600280656742764635851810015570854876577166928795544773354375652468543376189292210131022983021844717736418328321326349453621703493712232518749109016625342326448547691617178813682348232059614674944398611511565575930770055116488859844615093696068111699558106843135533462095808256743493236693792710226485238833813456500479026909966467506816982084459944656939543377278422392109302227282040554039639835740125820972544331703954510005034461811830619497914698462966840632124508375489998188905735739327170505672464210441642148383577004033363380525662671129084740755193019407125673661477250146192480121873409929618833074993490608820432552613655133511675262323405157420441893403457182771259221527294092549611438808125865666789723411888880957778680596980640407945564737530392196873567504646378242609250214315265527537351597785651027211880233487721677139542701741885906008630642141945664164076288574470995437673702154123642432035730040708053981561133949070046942402778608649189254441280210103231455772714092119527603669768015059049743112065720205385943046998289624369277914740993737793711461237650298061035370336109152737439600060643097113434533706878286278554920959925249255633027214484564742606462064625558250845486588784151693926519758746623328912673769827578195482110599000349241077176107437195354895429335488097565462867743541993975634507850821202043034918413365464256628856125981187683883091505238926955634240838067164940146356965873328457273877689805054524490097438658453672419594504643919044198957804281616567704668917318123165970745326197102078403655615368062195829283506458728155531481878372787971796606731188946044000442369016302942620216139394409926990696791038036858436655468799409334400482984163985179179076275412900404299274372556084477273148581268435998556468913416231778044968487596446042216750025154695968075843061296827132054046607863767236317544819024926719862794853134949803754041391307704957192353993797935648415631971434517701341621315343265150351661715558732298925743388580588548424974024840591369207885520392319433109794914407958287510642795799920470042304906106189913369803349673155810311078905902792561032961993754174078363247366161433482096667524043514954695318714824225580982692198134027990819869441462258666784873516049898652411125674211408485079173570215944589838192601082511640445128185237304121749591779629678475622267071320646201031489935710814920223846366083796874725061150518106043267749478276834610987222197089604275350892580116982489589006994502830908536627274822485790931594594380427163863672478151248861991137784047461511398256413037027442206817505276978090861919587091121720143323817090260224527743574540227074370401603782739424620007063118776032232499875415434223059241493641435681351488063021700028212899103053690821028378588489158550918589171517550792546518008453268552229325687768714652021668768545620289332050246539734952372357649176877437070511303469808416491755078131085514709336419805347641503243008739598579186549918894832376955113095355842349658442611066797214328904643048128516705238487909246118277219480252954005665078980025592218343633186636115044218445619398638940514346783563425072532172721809706424233462006060812771068701566240444659385370219782614415888855939202328537605079184394989913367195168706705855432945726961459113433497851415757604213275004364402071558615593534689239176005410185906849876693193329619216804185003854776021924707353951362513142183143093454754451819848929117037375731433011704308338489086192363264463239822631917192990600537534735390864881802965107036977082306259610522835423732808270014756997214400736995331622907798512880299940919256180343607688838974704530164091121769967192515333582636274106925940824279659180102870653626102776412435548990210759389520304816391977794999061036827352515146254292854520151807224850182514037441422490391530500664968110079513184645010455168580267870216781607097822488037468762839963704421628594276327784030516928427706728958940413453580384522444007652294293403467503261283301282286510746882394661541046670937925267752178885909409884027484611112636707889393037066282246448146323717618983745198265518413606322320881555517047554479533307057460662583186581619276732515802713360507998006023708820601674388385497844773248489376718758247810673295679171831323587242462553792800655419218350761424431460213320904007751306154424769973468488118684084837053340039642588828653821200814764361204953299948630599220698308837798640100289156625131565647333507361887368191515108570562975783014898338928233902353101455317081166053435487428692130490580771444120695521105739122340369662676365250788317253060488663443469704369274344983484447852736982285362323578659738667809518635108750129189266871771892205526149912756467601214641376740234120161132702919915668072253424779509560881032570634822288008212076455586419753149789361083846069596838570801691928928314702954695301770513447111072869256475421293966702477221199140874458696794340690254367547730596149361755996737129781898570809946077265231559238851218384627808427549211209367106610894262608881605922494091254756849818686670423706834699318143635858296440549469586917263338516279309993732790447162146496067876727517226151540289479241024878248150576841992242922407715546795452346290751430972079860469755894435113295581549614213477662398893387435985234594075980641503083592357704006172968278358129207344467955775978320134619209750002211454739047156057084592733907328007969158572664207321617840739374916510364140374402078432592291201483145071505864814919074377471504690335959254556844906450005314071614391776240631631772742833726121905816391195135121629284781064563710295809650800442076111254849569143020206962440962823248774997667805066729532699855269139206276313833481899263985919174016450679861416163817442515832597332122471348816227881285569004844621081860997593697385359239147121340623958830362198335735293576979885239191647477168108179471284785013849904197648603378928966087327447562484192701525392163300262399487622719281045327342581442615108094766553786784465122971220185316190635041355378044676326579955899472422688360201872352168089585271623639415124873434087546723533868921160464555590077310151916132690264087528788008271492761107843223891859393522987693475030813324192986686330500810026889837307860274771513494791622219460843282701296263802184686049566789276674966588847932773469212187206081620241164340418423555700304309973205200821891071090232060603563303576801453160308110679821770507232215862146428666483966398414159143503211534488425589447920271271960471892919750682840658401358109217912913065844412937624011753907290023665485826952647849617538754581544017372354075274432248474965362872392937956488435076604041826697967360199511032055175278392168122772381173223290933893968367159145908562055289181725756718089867417150846064822843167282537398057116623624812827958570390033273187497597928763114713525130368076812859099214348636774097278124723180866032688712724118587329300494705225668415169540890279875098425990282721481182852019407204517073023441903798538170180692149703647080891699351131110853455173112907308175681848742140107062030849255758397746673879151576149657312557873399160898132842768909747390415433981446626198197422391316076160750898710554114312222716248608495446038833154630580912196813306170553269506550922684624142007813182367541098338200372699174583763151707398139830857831912035558887383356573829939741977695664884519221696387760932787256543868293196120565460207182269493495675896342821335337858004101623961080492453991817112068741232626977767839859770833585949327467520396318429392431976822095406951132780908254834139771406547302495687182248815562469018810703730744412907021903845371412482835052094045929900900779560959102696493110549590957874683991474317353072889776219045307511988777303983641471404298607107234467458842736633995933457515819585932063133909508832282105677427206922724611543975698436840678605561257224828215388024870197736892449894787151623794284821527151896674971196662900924369920474497810646607701399523519412001263644662621556969032625481394320475898653417570572924194805270587145296436316778101215124479084997094368602986207150534796838566757824619181853687489128806128683503804929530916706975786049340796514371841387788945206900610426052428844447643596712239439252938523019273486624010981356100508276864594038087658879207122236996724461882876474683481492518975349736219248069941560044323169586460124818902950150739956245058524338792025168050582609960449729853876496966936058945151330561847600205186713040357682465927770209680088638648079553971325357242195152349825773580035032038032412264340937254725001538763093540830366133609945214400749404190703113216525825761082200865318109326825994585965587542095634208974053500053046088408303170254953662352991437655409664399818258969208773105761334284208374431188147692896207482447639992014631933296760677324436471680107642284200554897893717101525861524841634320085394435085373129905076280005139610603658487420715526173555259294665209044354070813014659288207045372061292802808512269601674450196146686504616480557295565665832908319380305591551073286271849212630710291728619405054844061622804814136766065107489475740181588795935706668623286217638071438754071740435122014014441911749651836402758473538878347681042004796210229940194685012692298282342692767741834849032464773240879134743884954845858304371637959490926424417316125995410096410853596377608740036434205672303593896392411714024319705886759926259226970904025090374558721677093219921165893415961562695597372176466826265029600809542241218994108062133293122584865456150147333528188640778585761503324916587489057619135651641400464247114701092208381126581736372356523117471487647753118167947728448848637129490748956204302620570713956487715689372323119127563972672498590840952396103146456940465196465350999596708986188932039166486396612723320387774013532366951433232300095747038915364332807129840200659581601385008546430960797545728036504457055194211093369468783925239292984220940030449127209131860284421733848959418026109889906485334065814494036398873907364805275874620349350152085444002085808313607979235255766683973273220779743482051628605762598315435727052251314758925292840688118721720031553852228477519771093498795359770408056462840288187803827481572761133234261500587215440897030819323771673672377712417929095073551668282607279984828422791900170862486467270546666976685648180211803290469918403557316551920022605355125593418329530918599675572598260373628898902694904931103484721279957544227486522053014474587799917603883129086378494513909979167506151025897851959872358747113798883979547449153537455442421534500961264416850468176552867595680082784105981203594262387687518768371213737510416493364830038935430037615404206604895179852594688478537702983638784619747867989791272524310717589665453372418621905246057311150461994271528146227093377566963103743458432155767797132810202956611797973185587097369690920689976695017482918590015811284060421450321398729812867526791295867001940143274555599265327885331729652543685168489306825997435309890594251847423502382773131757770155025738231400907525655686154338613216729904497851008677704269947780884969685043578578908181153134336419771856162997736599695324819232174855818496791295151380337834941857648959585207717957634843203809972216386539227063334185451997417574945319259327638578528572648924258619338030085888172277517369928221260396017903589002198315936527210140021560779705568515776090494451347494431404929108964882673717572578265782662608527782169824098796248812588583249426220530924728336556603017671413147351450107394997806056420751311610456585193580672501158014303444637977853110019437071678976600904302941326301613371296568348308325381931154034265308354301745944286818693143985150746268737615818574727177603865163053277455372963962053051255964699064610176006059622060972460838903186933824857154297963723251604532552753117367292914824446880660324904008069196602040967377430311972423562582694791593589472444663517495868194034312603576542982721597973351162012082911497742629875721592019962368302112150792269719731568277109623085325900687388302730478745942580392619702957482042284799349319445612191328564851598172108539140596628737593460527839714068999615744034981857732644746193435891422413947874206966181307510307784345699304933505025259156581939948705205991314327559049890491027552130812662424780797458661827066710496910203883744329641588167430350870154002755007398428831418543625624590254112706281659169302379180902933338069371462066869044760825611391084415158616854031250096081900057180656918311399149334269191050026859134701272372094101179874107216964828794508268901441320914312746136629601965519224229851922083734447746373232158412902447452067109224641763911348021492004919593968116381878930289815829081147995425575419702813166322681036851686420739673271905280042313220063981672067012296672855941533150440804431246385865830809645057747210210382052056776819169311080771614865564677313670869788742786318805959433206347765932262664058579575392200497235307607311535060939037342978931567519473339078996321959559925870570521678340367341187348409617871926170560515735779244348528899689777984607833968990580279785101291928115802600747800169737293939266313543205810795349617437653445188478431576417671214478197649798632927327588992030391591151168669594809593138887311983102411399875930801044264955217727696366307553433665074324394358737734014217751790924857012964198106046734750280620667630202959192976879526861783813086782954524974024603368217431842736917840584213397471055545329806083226348671615117462067012849741194788933171052812115849562679920902687381355777762121753265501298935427165632293884223365638979435061585134942826385576833030608314254626106424283674348437076707285233383934601462473954706955946930010465838658902512755673882762803772227360191408484364624239379366510458536235031627445873148616323295104005060060459960625143805831322022781688182961460700674517797027003663457042769827418908497898620634441399567650903516354331580116775112449711147949988206576237761794835089475903767191822460255714832450733513799617779083210732214525077286221301928931604273898323171345147098407839213792354726034856952966510254682285479054995495603188906020598355783632897461113413847681419109503579210335148098404289303545958353639746435928347647940458190800994518780061769192665728113786924472906864639080723785075540476621187338703139834989326332435882340134998930654526087535137542819216435718243054991524169103511458084330278327482803601067092690303423518600613038798600046506262552703416454370496551627724022927434732528607624049692077734306056895993674423502345197470196205006468873477707032682961728006046208758212438023190008193738270772820133820680121801565294378250979261092577655805191125549750188623011327637951211226020801296108232896997887654276032073052384986808312330765188219762369542429385791100252723196400788258067290500599732609430275461512376742520872520885383946419568023594856923306222959832812591799195425042091882254637169591432005794070946875767716574132520379619513432063331654162161291955604690987512403697093717255589652859148165868425472813069020032265207066566691302527902996613947303562931990740983996474632625637519639339464834775219496327968759254422368632599152688182826953336352080823253179417280701467230022847036322556807612891834707294389999091115688630588446006406535839548941101726840280244966302381653436068968654196880866719501373058422005863062787265848747318112052267925627260229466789759357399233682254609193037038405481411878966147240565914861747419019127430782481812121656332957602943365767759621781517815340803505581552605099525550674199509749653793661475945759510411774286329967635746549562903785655244494946739617360741711883457314021808356809011886921286649103637081339527397912430737971487917165391263968848770539697119602688269138093022774062677513627768546217795591890797266843580663636857094953531662838600945178732537172449564198804905986027422950336324176070742629932151042431782472327026617355014712971667201243738793539609018504979502212685264662946259230036673596704532863032631243751736085068639182214050405132122064552244266109295264164986127048342278560148609484129490497267296921140406990657159711257328363250147142456464782252568046318555284675033638810975356277170648685676141640420344540630771283349047022506022143277244456323251045805274347686717662114523346102298667684075553677848280400852096352578603362056331281268370566130557922354554127095328334904520084499877345386519218829615077870416148904122753014893411350764029377653550136523945425471566117460074665037519013310774094019166020269353018457028015010298874718095200904464706882590327704676935890920166502573148530599207238311587348577683719101166568700365858904382821896238234116796046356222636233675100563081815755297103490251897510376407111665104956538025671990470641519972079543009470900367287750814830848487154029226275755640522081820445860280791944567752204809884753781350266290073179951139637494121615337152303089995351771206259728065085032554890555701388133980332894408302359997372520825000283129779351934454358445098578243457194647516109641494821515369499036770733188108026246592352006609805734600053476997852060742532305083725464604300744019112222470140818872184046888618704199000202210410626429013968159482382732825001038519606682385376145605305257471594143543051310479789637192748994319521408654625164483870486300705699378610602274143958596287632688023821636183080156925718452545724837604669801973122201199607843826398965419951339649207034779735397847266730829404005810704713929618113489400736988394062502801997880650458425213483144056266987473029719696032084503993667389103707229822354327797831471126978753794976578024453591998830418328051988684485800349303355660034009123091163222497303745489887849918774571738316660338555746568589040334591270210590604187240795792162394982699298365922536783843863791795555280987638901649652869350355579516775321604812488477192388829482147810132563171799772783893703174237278365389234185633688017638413920460459725782822517848220457764125169099280775912371852102367329230963430095559778697225269678555761488298494781482564963759849943161301471940655500076729865173403905205466561652495650615491547910581692524546694809843439907708682525556231713209515574154203707958529864467691031405135103409360749134142025817294984808548911152092309328469951792659752005610904514681764160274885421808125487921408351859874794643294926977961529632085363050456448032513736613266833632667847668902943024360557673941177027563358542218789825056278599376712137351389554964313872141690024540380619194857916321170022797265268836348928764088832711888594848799253856235781798231453150184520873959116915304813950797223505026578979042204422620388120636733337892046364803597782637415634789977291534788483220773369531465333888115672891776145147623276549789469990388844172454888125512426948105923351893891348065237350918556732450154702751028783319406022218507493152185460057292857476130882277984713969415717601300715692685063643114629076290460937532337737779843485692621468776801257193939896555530763304106151031621848161866289778183165128365025096978822082850669089329564313649691228097427894682769469502579902331738659545743954367552683960554466780102933870358806486417705629384071694903552548542881971231543314280137655902422228363034836085320349611064920919444988578195025894507556633535219161364223807537218593968566927328177975046113649337590745793905097203294796162173345603387925785642529353676051224345143802212117002957940029940041195036020610798107680618823126524206168226999810050147786352611217243828701137338270212235800891729602836327469825852566221066052957862474389422499643950904518687229583281994623246084925381999336181787423666367237879103065134147990544207452296784148032795750685372786022258858292687300897076362763322819694405365242650545530274234353266154546621842945670838373301390331065224933159335774382678124198895983919625586864527502458898498200320644452565642932655945655558903633497996843984927753107128245794804706408284048343195815751311638098548359427816157825744361756774459761200546440380730968617189775582169619941502746070437356143085829679538197048789310395182938350128303250516617394232958887093554671829393392340751331937811260067159289166180148690494089402389375964702108221857858047741069925327561597283825826037101530202225208398464976521443664512437780138308182026306755762151821294202201362315163814013877282098409500997528435120111436707444832944068211250882550571245208868991985787926182007111411282232421378802380578164464769443766848937798292950195204249808644800894538464964551099840777030386572874502208159228049479071219802257823176064310245858976434688615550689499013596863785010769399651388228319953300806662227235124003551200865155997981947008768872492852691371614130444131853408163513096406700871638379088515828938297142584930441833701530922776227866686428561843427469054041416669936829930516733097707036370717012257213768204459455640454247552240131457214014869878413059925345184464616072985096574130235224133341841684639833532005142838775564494729074470574157597270602738622134179287217343739391097395435561032664228504184027916572830194481964323347463206877037947613078472823900595831901963393823066350772018230003867986748808553866130887814239604126046321200361902959117520708720527670958184648958220592561585353838556472482174448080268797268781914089653831234584968084976458843803214900761637096988256282488920718436704414377119040254649127704515775017752216624708944976227826065803691831857678760453517908384042455474129118544926580637608265190767203695778381842371651759209012014890488646875920982830622709489871937994706696482409913244431111716647909386696731127794964376228342420790980761307052029598615176900973859362952537581580291738032889721492578219572513924758868868380506050997619107643905902848929525994655278242943390772018322954479487882951823243062037850155018466542529445164427583388509920377342521656884266439639261589217847240321108699480338360181358465194328853064933352957399530885849503087153574212393086333406883756130041841267579808058794566633305023935675472306366412547694924015231850733672450972360929950650327503706973574562703942680633671882700910595893730340470563444019445623400412606729435683645450103627970017644637672347375928350624086818420852713491018288836736008447554992479161596312577316034772285955191627130211222724836179528360902384071651864131509109125960660586577828675858687719436174393043705853218739558110861591645207110949111530290309733380953113942380973652691576803401819409244182804952369979694917175842772803337100258437072560603124617287445800509574616358106459043563538592387686341551564079654353082447575459488407505921938576481261124080688473805278353507423064323221941835821783220854849977661803959089798152977818897565992731609910035473307078670813908031434692987915498144124328854922554152917694678207408542601541713161961233631667330065780411901874562470354337171048281180276677136147437131365549995051831110756957520565852872193277362251543518114977077114469977425394418412017920551462601540579857887586376359588427124659646205623715853103022752069521022887773824230013106768677701833051488474906462598983006561747306612105798369835092970999357134745186514085478205860349029630380100725531142185568163554753159243661592918939620041957041921069898470319978600769697588186273896295365136961987790771710386836429763306264294648225704153395362003610175950783449574468481689747022822473244748263710606211529617314065083890908615582530759553736787237515428005873733564059590439281572696914777103969870494776436496118203637539807205157008194088508908567572050335137631202041169340608985434012014340090125649391298646176780082559993057861154648915762988672928039505611938984063068397372656468756251897934371623827476210392560344953024130913206432802423086861316346009333709876853364818932016603161278818988871344923475356713414149267604080163670908026195079183604675969894950630750666508046814973934477987525212162693054239338963460411036793281070531004912597453129882984772698861951631033889274376806600379469310685709995064140981259051746705033077673335023734165732994313011693144728352463625254059576457421142411339773034093191993407076421841643036981016386336943451673419181954656494908602718644723462521970851175485766366125574957978347444015656503363766179574657182472565916311973327283727375687607858208693337495467005513825159575110190774613872760035091333757809938993294726338212981357119187859711861323624264479463660363014745188331159078102390728786326062529113303847759201736009432289050852145896422988945626608624088232047873554106273306069282816726697109306725659418628461584863743144013865443815823894640553245909521227140358491923395077599744842140619820210855311269256789573447343280774476208843630549626502391724603579239050710517141839230895392221037374996053172877604832243856100064862948069558909232544994529972168980860373760684547774542150532659685933326276754829710592404599404282220210288087278674321801195495456380546512354121793908721629078071574325676227293297445274871474427244010477819932693992988720585047032357706899850648377125101685620122829829820039012097027424177074332227974457190154577972798096695265012020653066499373990138536863736069759160648580900831033697405539462056201100389213423410951738181035517063813033327937980605317276928273140691772392401712500210740964647196075808769348691125100121103669420133930648368880925731449180128147927429940751369882269800277615265082291756400017813973113402623969710010748260856302866677826723294418137353769441666748876392851608137750424955483206141130721624230460565398113653715415193388271039707227397269110536975172678279984371879929357134594203724365925383687122931341586372549279114609213429519022325989527416216674084229065887382751406252770056446576116229783223195772783964726390993668398367567306680053262483788005399978323372961084675687597603425301680308833471058415386124510988939787758020605140796197483501726162943801088003876961655742639591094487522531547020506159942690650899670686146543625676254148972869007929344179499165082460831143952507376669289348585850717074520751222192899076605302406777989873288720989489670719600855298111941238699694984202415897255002863922086039347447062090184958506248711296438312569885202663224732821545687472775391300052728796692768569842659396744840256631008218941762227015571901716487710989384717834205785939079257798110865633999664852987187585246061857996445231913651898074714586356913148830254486451145321596105479337212902682406174104413854013622693085089669255862427816533908924305875021359851077992745416934663015679012269412390477449031183942065118367155595472444920411379250016266145898493331268519053433918540578290613851703082792466529197042424561256304210093887524531320208470882765758066263177034809339389750224238193391781882392784391891904963118105024626696741678016242717534412251503882227023501821671225059272835812323492835764404567722015959352950748654920905615474827385517678022753311233276828943636905055219398460863088678738732568878284171742982966205929603325281609801435346968889142131117651819114071717917401934669273772653086986451740565521689728725457293078675135405776400203501696415453654145985008821442866857686484625425642771948968258278001894760509505631004020939982296376919171442455396533611930967865873237341157134749802566245017971634441646413405087109201190280809366647713467874903743123125041182489862105293531088176701496871028261308229745381535774994798567875055906053349436925712160820297456273549685657073026134781715327290145259246361845483627656855307044907527419326973562577183742151630641487369006803384322195361238545869940882832530329478195778304785877764951755399361880828430105510994672274960956692199764269630679979281413672848398533937620550935943959221427281037895956844519482352203014520556338141534285496471868097703059458791453101692809444016100900616585722288926055699043964287070454389495893486182479217627221075801336594008874193266046362549530283370424519212092052223180980987680144098506351772784842751249467483835925942431801488540152202722809074633178026638942423518264506110347572314737343435000522030203484358879224371682951443996092526722556690989040849934912868308827029737062610375653673179320676699616492176403455984508528241567301342031492553497332888504458724655028942463420598160989744299340395655264817892817532388029340595783351793289178155659272513490414024548687857150734084742650068294261541223360438523243668693965620807310053980479924949415204345782509597065119250131318474384186948765781195568227363917501827629441211455915038004143548240671887532879440988145998967560900979931892246961292120748475414454025638171664097670467935988894403465382830933843856989601738334565418983755366034486257060481558214164237539698985429502364071381436031782911866831500080819518771345757834600277649050733008735271916847335589597337602929549085111460995256727495637535701550343287635440289989155315382568602107585814650664703888222866380767136540365632939978502527580025066061473399440526743022173936996201680306913906445608688980868925920890843662869181764424123121826829034472568955488666865418156331711760773816664627961312445578176475220538819815828772422793258284272039172953763322474080794504722600953556669335503348695106493348308052400914623628185466302250874425325937855870377647857700620799731683220969055918621021772758201777376469129999947155983608801759386679204082605007252416649083886610646061058261083441485404808463583085976124254138578033240650929356706399663809123988227915195095655571986631755705390834725232706008310564406835264276742895602854607743576723707567189435250142601510337501825289572956566087228314051665774221111332745537773116705991649430398860529648921699530450634111936094169088041528208033390237403905395719216231581277850091975182269318347923018327339903185772010463843307815771123059916815792135343101281011733555193347887701451808567259478135877939902197208399728940941563649825846936529882700042045615443449867566448694281066338031485888665080687785593386288694165255574355264131128982802007229740728688513546852837239302183938696330073716455988702047304720860495947481333618255948698099543718778139832491236878589471691146557447075913677440032207349731633348437788000231798747332460934956899956436782359530885805222352786611965442757280646380268959529726249721950278576684849221321427850143770313938610838547825016597978565837998600263550472231273515321507015657508656708488912211945976683456763908389066059841956157750613990004281352384618198039117913001056993201276583200737689202582896236409446904537930581473904644478147869023892496226463976015247556207536091009250723068317218435402272473905680563544115833787235557775747726461977789582332531013783675597660429844266778420977917110743961297714487537507924507371697610130053742736192496327257950579442824590588955032366901166290555323084400761116789784153241360244366957065050963341214342080295162740453495179871486816612512507365413806747087718647042572315685751700353142630481223920887899833162818155919846211971675415359733517235977730680580467194749789458964447708017047395317158696357614008886740282327766584861541976203812048666669499249998074922610200071292320636046443580574358762139976716824604173106933488490765628474225436866220426472088924759294258769331847501251652225269778548498413115280748503555012007020847134761923781869226998629345841483651722624710462982910236702183015977956407777489554651461730624735362971591607650408501528714473082408304801725555979474321221133288024207671925014427482891124879347594220465038520815035601224288812618374904215483831581652296629220930905015678697878527564676845261465953455451373090406672864363245534102605504615092414477948739810908338001904579194543643668896575528564289143931822705391255126446937965195225053909221173574694182417090095002666701724470492655561953658616187736190405518963961703903776513128554874688337172128000109241410420733004616376513372932534512305537757830364206559553958446199320977106028055839333057835297733700842261779588528344257869286206290881658223738310365877679672286668218107831298419438777175632690293119175826081875376328228715695426264831026858813598441446460150441579011018440180720057026469390160959410689725493929213275418044734285567488902342662562186948190239250310715838897691678884111828429208704133782132825353876828024396865749499000913009035931750402689770212368000808191946127984700636955930626131337293198916738051004123909958032256064620997084384285037636108797284671890576070007843066117453391383838297456707218310994309246001702606299795069672317002522227306396324665325712176694133557337262575098278064146789537144543573983223436645197639063838304397406233100717594504118532952921519276166324792460977920773856977495788175156391027622388551116643644411113235892613103110049157866119988225993839353134703243612442563831245205944371435542376801194914089979179801814864989635087118894023982244579739072271557631126682526038319091675162825679218164573571637058712982399616954864925579595375771789648312116027216350580812280034993800141226771690538383653334620597909203166743063662700936450011138594685856454795855731602701434475352406721006859787907068036394184764537086732513319874571509522121939358872095499072812702451745835902888460284839889717667263486749350950086304597629662189219527928852876764579615586221351092296709071072623659905282552802641567403995202215278881292302933772169043213771449771158563870415273968240356816494361312197986244055657418935112504497184650434160082588648741842004070371154769651511764734513825956501295612520802756748856509117768970111604824584565017690706905654451574565338017138183678174936332624586805311326410576357154129964141649752700536832141214023300882052588284914055873322808019597124365056828453390070678522390031470462052216763188187116848001303144231708717791389341195298406049346924791172500545526232357493969585869174802400097695188404738262647007883101359005598241354800796210487348643335227849237226881741067569243715503710212786134820937982636503612249984536379444493252810598337415268051053258281523028255988735912873970712082067599515335215356757135899502777228523976132648892995281089471368887489652445766450273919128476704882978533760133370650665477337823735456784198417788786629426335041042009464640371874626285317286099071171729764966898063516160687969519182464936644668442121185903446217489430023532842018410600702683027101530031591630772924760679872923025869332825608476867490365479870935153355950633146830259303581617901026899461533173139627894278216924816211214669440550743198944722869528246973609987948950877325096430369765163670475622780785904552587483972942021387317924214870797132603675545378328726207563753837428170327722313613520217195158321282481555134672597942373474225941648669042843228621805686072364114198830846847681319110559295787363967998102291529893237458432112241593899530127914984400033758544675891606134506697138226117363532744874086029357783484776919672194105318957443744229700975284643497108977050519514934108574320212063386479127908107770454779830498892145521101684842535175295929190864759396495198979516194728462007067826366527387724717780647177154718443388990448151151105543663616766942708807732427782976903289462810052606225278252466611227570721573737678520302247163333425300238477435723015698362147700845963864092944789683041836978949269775640159244098270626584321876264512588413259275742721600240786875827162901416437585981864172524540697748657666431763371169930428199201004406603667967970598335712929450131976162308420073762199331831082221724953667423083209434775342362331634651632892019791786079444646067484245665748337937384857972024161767620120089467187837034604356926548811404915239884625306568480095855551092784000899535553352691989004344884885906030194970424879740668577619922070572430551483696461370160650524875193868334193080678090272232184456963348750035350356747928654122934964750068713215785534611368073142559111419666291006486436447758394009848620589290593979211976538187678448434675973318400872249378930047469281379822313320314188531891126173856928071839865096610185103251317541070154203107350727751629121195054454169021475376367367595218171473940311196052589279996174387401354990076068552080480474436644164142445903546840918909892862644721273241305033113050998231337397309080757697861541167098443622803330010439179403465560491412161911061533845105446072166428720485172799908109570208217235972950601762236545722676000573909849758449567831094418036688178490569529440579275023200968228725964664895253743207511526083822110358561932531961136533865036369149397151449424018748153439288012253440023133224977401003572958105460100784974091832975831785133984935537336957228194804256202875781877644981675589091814685690588457952006726385749558605708933106436335945204096055058932341168533230763608429205700612848486706668375053202813039438795248236472396015139523162679876004832038482401907484512705803591843511216195182238400846975971471572781626561465077058648545565857547403862174711621698179728340974955151067149381907619414995353657256374295117635256376949230387734519538527189819318441865335923042058499225751026184799679340398069967249097232093433000473244607724752567414689791543128510701189884385927838783525115929910632397283947438234260098655182818471340796969371254021350593558095369890988606672818431687563282166769584243519077021658320558035722169726030727331880612903186089884231498211506506768120312871639013350261835657711932675103071598601463298934523032926515430223542603033068898430078977560328120888652808130012126186108233343411353110862009594845244383742795414658439254752805443994202080077502080203007817499881924891610612615972574133593069512508445676925414857045889179281571976580598524822437174298208400151503695601998307068630430533405783062764856042272165428168826736427676154162069249481999633026048283410382435399708267467977696554609130784359687029415460781945185939631004588898171172124693775146550129280860012493516462271978140681120096852521981941193902649791603833847069630588210977705623004788768534547020790793784038634810068062651933557083117656507750399881337837016008962614046065149500595223607826681658142852621277637145815640800706223172790104395727444306521611180132750761635300882009901942945703688152593707327905650848532817814802911821785620224920378990709173065863921942786459461161664149424221756208392747286549294979666064775306152949089735913014674314636652142766594862893264876549344818464055289746453139678824756717449153381154043242154426238264733290730880803367520419429303405119634555538018172445636036982816674204409722090170001645359670415767445452787085857420739373509631428679271066645981720372917393722414875496369358733403920201921747572099133833912750168507463210457318943167939817106582157186098528839541011312654215109727827525055858176098700853141458902986514609945721618950242080444564462681243277368751244937438397412805132212875289372062710960761173903829199982484424739788559205664174977000711319206968697852364420381272790801423587041721460901593412856602028340151819841310764311013599019065266389991579822652176872977523520134953731886071844883992137578084748488913723071629195273369611419129895756463588051732630452109416877184448158705246653383436047415838212306669253842454816924610609099859694999225832953686043882740657589648523199239461721760859474145411384140645298153259710764718154619438114508253145694862347650306193902145246509190243102459165263562008696408245044728284413709331959905420414919952163314343170004788625982380939458082158767668009838109800269215324205935441073779497443199858259838869532248284773925460490570454716209354041241407726682291371719347097424750989560051206905224375321330181295573751290532499150489784900753713957453328064950484661987714240003141333054739810032999968788247606130484130083806739228575664780333299054695105312669181608810144348877991284237820961262219087092134276039027362610165697677137299463697219002199435080381604568313672000198221153622669904500492443231364263419196938050586362751962667584139106197614645269122407075440814860953837762497199700691515505468275951627115106202730339945620959377111666035299314047491065505602358087872149033309032367947932872970942587490014379503828692151427064009305132378750256984610715917689813418133005510887648656887286588586154898551596880267061933234307737341301180560495234418794243568593103805224983830365179988952522934112034079080771136516896344175060024082201829021315246842523353841333551922719998627723960765607096053080209612104268630993349643390393684874976074929810059887159018580755576974468943437045728662176407133731279620397257324343187521099063450786777276319773600177962630335204433997552023977870255383241783072285167730961747625457859820937746159872140949917127966299281379517560124142890824579042705960606747498090099343131713981165144572964076909119991032846427918159978903828132549751869556900543999792704252801015549427750249045450993081874864560267701434774326611042545390933624038781352078659457737010897081689321650040294068723607376714635434511367880934524136178891655804841062770594473140638249248883763196287944330008229610154847103680419207630360083614971352672749455586856406347356234917493418941179443867308665032349714680393844860139928180139299849769151456755612427721458081467337497128978252656130722226953967436639204172040994518150976934389124783003776347980293411903269243731402244402282443654729460305168543501753756695799258417620547859696421182621701186424424541678011003135799185352334227219636292997883574171340683700809217570672468394836552939276317085287987012383545538574728347846511573334713843097091001263683762469238978030398046000801077512101923598036963628964147377800963479961781989255254617469587659281392001097047115466913490050714279427656398075690686207033847589593813020522755868100146023923303660745557841190346205923367867885530489805120469562599632983079188772713686498578477080605863712978131711602077057521529852717933303825085980662652550910178298601299800828745775105554546406094013390008335329395264789726781449771874763582201341642250362420903416063538525960334083827457128566000734872045535796441908785706384893412699182451462379295760331651662341067233821768109958078319831504006459630077530744811139440935579333736546385057539033383402069283179403114207093909781007647860467540929426754780835649024627293406964013330202555213881239846612116118904690865773511542674965034042147669242125850663620161335116149183679427798550540911364152614551706173202377135522081211222051085364787510866165327205738251028249565692300870178281895702063572708852410764817883764529672332359606946857541570065256682581265110040139167588936593335222664982600808718358882689967422022676389162551139706244017555630783417143059566910635115103843124716420904723399044886403347301137049498190700099665726378977841698483111339107341544535861855438409758257835768288575666036925393529343103327132823767572908108729346958774213857267928948731688401989787990292291274778857636441791619551344081996461994102239372485138401483624019265387563859138585510741116650038041264994985996242991366067633772433673825082169817308271643139539014249894344180509155008419460654300963375126773710156235770586363589971763187595078806467600721760257902208280885153208529709837847543435719542647360824159132326149869383006955686141538622058201067323224329602367978617163191577744975132610805476972416205308176554780736297827064861990512085357587990005366304934203118070225788484503033981503231249310347074336484617629441808046676138936751454411687982304444154140017722637241726320009261096077754327199471285458829157297579293676827979655378894092434166796758354646173418012839175795144863731818336681218859113148051268250274899780864364193402420188173708473865228480035047866320266020071184301068073222110606160385515439146852860442370413625698016470089614772426497373643814394021462050282238058328337528076345745415780979014497128766526331352139436093858253834016359649933844366170439409154888959609369892812581416574566485841664680936143040814763369468571455986111770334835831498567489909701907507659837700371325842883953075139323579675003611656742716851117224002663160002861561644743796676975850474696565484755230771321871883143470074069829646420947804788350739203743322254963391387723928240452893763561819432083669280025646537436586966296238714464018393622643382533951506269989915436991941065248057623199895270546166966091408307632197243188330742569649514864961882476424005681346077848616289859185759347113888504866612477930945914966819272521127174153420529386943986766444206804877429273572693494220664811194446746408346280641308406692350630381922349445106970985259138602308186436723463331412592830040800061038815024593072350089125577464054297777728551637307872211781289107409562203049084021942400063564282824594287173536875663641927584531878272056852001370411404958374148674504812812815885519189434870712976969046051451490283992023537167821172884787971170480462699012450294195650443419055452179458096583398905863884030234792803811877723532767000208229232318183167802765353310143686322341165012138060161809100537456334838947941725507327052478018151317133901574813940651389666768763958671441076863020174999960046090498668993674758529091837493912613962599200338453494414358291538178914256894621062064917884347358761713969529301671672103965393807202034439930161930750014713800726965668347824257673905682940395514015730107692777425978288546272176120493014287805642818109283940341381596799775367996184747873776369630553837552004220811813069602375028604973518806784900235490700346469028306122120167527979809098636771379799839361908043050354916151301817863959509718975352000319683971429385039028521909013173670148821333980992102226281471827419404839139355290685368155364852721917236579743594721323377418058644947012030987368081357707192928941520528399329255660375908041653830788729610800011881180223527084630668605665389721464838980589347503960967088283595576297968592526781341854988572030105861869665691209680746832803227975793097568367325020282540682632714157657960263776327440497295344519860463434866304720776286846951186318614435721384802647049983440757888727550056138513688791098450851097485536696003752339702783605719587197222645739954242961364054701346097152284051607497322312570917288502270606290447606674769180185816687254885373515643580578838174612413181830804319215818222947951759856738001636761187230846580999116660468139148117389262461811198018075990023473446535344541606481072460896335669381255222478913825504667460926872697806667858268923820420773690844287820753750584683503226931346989748336143084154736868858703370193751807545445372407189542088894096230247884317839069561532412360664111678056417466102585114223063429465287647658706465497824698525744678065372819435362761180566058088318388704891141861771807718774826430710856656593455962279398394714275817636038070295852711084111117597444518789897293030114707872953281119146382424650226863288493698849314587793243718023825131363103803600813207729621315708396800693329228194624601552005725113297223217243041587288571048736202433487189327247040799563527574131386260714578626220454344224268614125661067756666799659184840036221891894689205363103928715140661402529943515678064862054468669283414532600931435559885300608143278495139933800203244503914662160289716880262806100133996392189726379481288718448688285800027470061942683031584455349627751622802565034855917348292009202651073965750241139874247719082942683044870278314896442459044830834206898462172460386215737172602510731025941159575429760447472123419944222085723137830974486357076305363525634207789736914477199068448655994613480232279845454401887953757440989729243161384696150845109908551690390190689387699087982342657427634998435418314088827502165452714098025797194542437457914898630266116528784712486180189951237060146582418476783574310233388302179598076170488226871196154963169699276659785893906626272632699422161222938082099162416762918761471174500310602674444970405679801806503778709030711386533658099308063816044764437774015699542900698118627269184220848462722452656616467078532498144716585452835748177605054779361184968960505597508133794095280588748181532582565831215137120254586861689128607935916275249820503400994486058292585107390051811606165252165965667147893006133695847679674887624940873343192551447718578470978251978785690742320279770391849829438471722399389991095916649574403728942982190867637061385311627559154818421322780052070432552950408839716330826389330540754472104914646688904227866684573442004129481976154206799774790003739307982996215886265190837214600235006472015897143976484044178598723742720166326194106692285732824734586001454845550454988934913861241412189863603295009357413872370972202822558271573406268940741925193075346505121009168943516992930177899192446154769131047931424471002057656246789180850903191244439388228309401346086253298609135182246611940724153769349564236623908910551875534230519860714101788371822986041083351761483523870379721644766406687423314844404065818110416705410114836505722014002890328574486529928922681486149067378248186557874106490411759775559114059732864962101286331377582614072256629516306086705583907214846908998720379967257503533365030624703233169056871227153901934903396743352845178267604433851853449597912028241807885646778083249853590374421221995628192921829530064384537368586437042184379929055842930165591651072109022983423870064835040683003341341382261444194945876383157036452356146866729174368134075902505557750509151602135149186717887359025776355605849246983288978883411745897145236268560375289172324383671349698674074480526246634820569721167530570093791205344947417036861606378608347921972372160327135995610645467853247481803125398526575371366037450765006854811530152506063418371770877703178445435741968768806098004645852444925498696624811040046443613780763520757384332093339913566955423229047905024674800591266050780493564154555550099185080466551682651113835305124759281398896684450605095967395248218859472140895341674266080590252750771687080877755511107317281472889622379618884966887895749131605811452473091512794538285774820194174107748560436517838401194326087688525131868925204583831927875533286749515596727226071796999124280062915957763474854114198682205699755623372577352753387599414411173479645877478618233116208177032136764006682892401576650035988338061579130051081678203770850779356335459291349302658122730733682961981174463650494370334497278397039019631091777563997122608718729635487516124876779657972032367023050238096966756160417219944916754227693008402329942205841207956561542936963719036836098447900416520588961645708468604019987042556103065048823059619409155186012182498557803920819425705300804434623176511021201831265486649735526662894141952816624416577949630793249523706507399283102248950747700466036330380852232698200298122000005444235114473828788734454300549201003463879244518902829933765769079261562140418947788950199532692348154484815429918430862585589458493306796356326380334487774860015951302975006639364879620085378512718310233772077975472864227962412109781410084807203534679634861842531697683045318467182436857565407422828570107678130651068659530908982858789813470278580518035930898582907060983718447254329560300238886605964120175134854116653714596145357781873500335660120995393723360990346459675238502046251949074548645458657023176056998136791991641422001045872936102246837936924986969913838155262253296916418430938603615981084245095781100896676001797601131803980008600000626600082507977867755881552883224908295375799345162070519528496497262886435589777331576400430584480299353863108686853083006901468420441968562095396623728169487029024050462628464348840046995018349440957788567923813109704884783672442279072325736405531994289766143193544238875676883352911984249929240613570706294708347852040439762288386500124682237399321576733105787034529629757625704414802758361896763165741125835074725677283331786322047760395625445942383679741526884696495893814891942303535673257613323991818000246009135264477880752735095480288372747487189872932288283200118138875240805744678297949514533558352117598050972610454540275976947764611856067575188995063605971312595487146409778887603369794173283472361939485952453075141772440480229298721713991800974952059440854003836433994041235124911828784828309640091053374349232913866379040698006023762423236426445563647750329579238862510697032255323471788235120052449466283686438676380950778347435328993562212647128579012078754118113057185818907890847657943200947124641046081613190490889098948681440666596037443171557533240828519189785735699498295424158950906244055884943730108014442594311782812078184309456685026842024627818096042673103366845189439833939419992381487680207872248390944171236460077262908259027580075211014941186365019677586666983745908445550777105755074302843436408964794405932033352661160096259825828603650150444444294953789574463005844472456321346457204165418926688942429450550473294700273987905721777082746008338609687148411457390529637732698478185331521006504362145203359093307007643636560261667361868517530000584285795904423644141155411354029645398925839607674042551928618597176032139103437878060285670037645590360174362303473201092314077110701164353170275447803609181865009473265921173603636170671540419648961478397252625550341260047203182558732160693778953619906756449150830670159064781458722033352738175563774975674615793209273444021746485151615243887924360011127537130923201641881828547435096648409740062295670062887770642178201891050676632385216720108554796984994567630525871387730728795032189537915089760506439197830129944239336003820462629044409604672365026623681395308809406984264661006113984026268970468021106225576561043289340856183942175275763733270252607947575425987652545773746708357775670587556049143390690451475920216680061326633080700322420524077251993954751780327988377355548952387029143877279720601235489925177862474744029276295071316163598919298921648491405199654248616334843193582050110520808155213238313863603381468259629288425459303543029855964119439278829911233026249630344803283414443755995422063571945037907054331660065668184654885939139926989326605530393064809501536685596835253806724281085873042054944547389274413583744250781957562626149727288818734342554622169199759279380087370750584253539080920796174578212003832399266888389716538532646550946691707566436489212468379822941037986032487342543489247826571532436568348186604412942882865181385038566437029697549638521995153944277708235647318694917097964352244435047275382215954778662753934170688278362873664688631168561315450983947829263798091614016784175946042947704479564098873255462951457814819900845779334746074821105588441292305985075347167399191714824077704955772691465154048895508308479825266249671617989954884651432739270438040012593292031504278074517955392097758750187112089620031271564652270998136232546022267327780300156745844528024957490922562805106901502096235670832889420000043857400604610062239394494576710150519279783301919406191033277141758149377947049134203810569715883138740489226027957423067462649851904843656960546615709667178838492320738272018867387767051693258143241363971742161321037871770046831968127874286870983581820856250440223307121482082672194858411695386755319231925158401889764520882457180096449401990419124428120451430572037914737322780184730446135104069591315590400142986860128485457098361273240564041353195350288328731652653457911874366298841473258059652444558520393013432480901403555015056130728196199462674191093999710294443865100645142379202638496117944048867810747235143241313811087669784967598008401922448332770724151350690738169322649616337418827869618338743707528941039092539737957519181970397423179106787841195091180059107049048578131887404176654284153461546970252798560939119280032781186363320403686974602095281925458677722361154571408856106635664938114660644745982188133816466918582869997896878798451370682976502536814370987239236508797197617219441569928987623289168977091690845645116329757935567184840215233838400735804779428863932399986278169700155711606511077189507431685095595299828197273367591353369942187394709716594087159313649117500992050112077203635274600046316610345423595981791425075866023235514703107028756937483273697192154910182528717404816723347560473398435186680460352631239379888137947355819471985642801012787978532378212218198727301179023015602678448909065653286510839978942263733385169256899679796461060835323087585453021075734811310133419960857968701680066019204956106908565125925893165087254529956246751203720428264434655502380906971348635031897399828915101111608463313512838289713432094929007929497024402182085054538054535937320334698528269651809492013557286564496807664279046493890765756078982534148732401961362389217403814604944302608188449589192879840317243573852503128729788217295713965865772586052694988529694675368938486331775935329411187044621390671939731643617915405345580551630496928708872724843835667397999811157463264960130726719358703129523210600983411993895514816517569638895798565850794485383694962706142362802941653840853113828624078266605015977975580276708122847589682442923647378701465981816325491537609703984364264285756272539764871260736674690386988557013858718209509427395783737573725014814887479840621001298362048555388337992272226515603785434016830468836568139070292285732790380802851670917758999244138778265685803912262057671621369539532720948293295275723733018906910277691944250069598239333771014854347448567487860170853368497848737867177373023150710624742802089772042594000259275762822295749439686701970142888322315849972253345810163483961253625389351016267092314348100684377624814429519646267646406228623032968941404554871624669600907128567253952506446669375727308183727524440191202836833835559038300164929264352579834691479427859652845337271411510685932607698285604924299481719881240455720879660812164033557001893836027789688855681536558502504990553120482263765858535994135141920135809396427962196210823375852023020382456421682044610575451320001123658319438782293250074648829257500988782084310151061531602208444369884663440852498763061063068080481307021720431217731806490625199101188723715426425577930240094906717887311129471737123955273773445064349511045595513113376308586986286465858618976945075004895766699285899493641677557428412732843177703126085223979431661183004002769391518017065040011197407861090228385913257293775363412413103433963901160524262067786088540975075771058906587486031827952192692028171800801364921061961476852283536915660811479118614228045626547917071421542405129214009774354066255162939633725297292250771178777329662205371035383183145644955612887593105481007613899572331763521202016544271463602432478121622198081532372904918592659051921927494629278569132073868094409787861709404373538426898556225298639463797063662498819182349583013436570570181323616541548831551648640195371062522535059749151443324469636001678108913238799220016958357510114991486133155632262568975782692654953827449486070475745398937114940626962251271205862934702164367517313186575435668902609150533988343143614728657825513555683713758170301938471152942926298803225723087406321787800157815938831074388904602462641371196800553837446267581923899218395270126492517209352252191954493463513754433358364575660681256711832057492158951770959511250387526978372923692192632848333650046503717675181290135308328726112408847794892102722383898863400145593303014327304794269198054295667870856402524857754352806068459587937849900812566947256271294226850353513256941574354420658841438952095379241907407895495472272951894124888858398889390851749253941656374205865760473012264647651287799728115787902344317050085508949158541155805095524987925546678743940804718903298871936879254834143974686385687256059924307144791993576927059613927786307673756854330396663592896321198353517284963697729904586312326849993567499313808625943770878333453834882829426895231053173158921040741175280824584211951568769107902003843927600302889671624679232373413985903809023078348182248233850431772657749128830802110606488444563556589709857793019203664795703547472020803272894249594665109896129073264042934399320842755237438739161128120175992443245445889959915203332615755550719617837180449884969391479580031262883097492238776044543241554009099773965524134513098419561027409149203559742044221502000869597944393732572961240581477279621613315761219484411073227906463533419729716389988238709866539977718196543542840479293384049002900265458930486442468363826455639871057214743581170339761355904495385525387647601614302041377249678958564170754056574883084344497337038472621944518859591026494068810655806489192096068118367373707339644601114925059749648347486898503641110971894261122024087591622185185820328126903966796993515543852999938336290806699588103699377867218904562484041877498606122571060937706395358944761823035529350587835487676461694380743291060939224456036199231326309494883785405415273935861469461953185481439309724981976683903234803829972655127984381866860103183535208550194472681144596081372842761642779286295498014370114610278909057479897920388310992342971785793837751369470114665249125963614415726768014105971093520848004119180076064637138681964330982206566194203486010966565891875275113598307302584677338973463040920674315577680231325650136489768713111482016245328075622614337834909214539106063223095592857014572295220807452586879400855272169621828187692787054230959015998798705893096495499514651374925122479375679771814618937276844876333674797823596886485791136361189054136697411032028717703509852056451024189342509325448563417369309621046297440452176075104182182380996442697221193111552846470675594147723707989993578293199526844892669557602037433915450839723157221550370806634545025346972079511611702190928772239995099761790136310971981951131253209998357987398904228007711274645051782188619753824890942835112936258037480349280451853673630547304934774639321726177197713945456328038378213473125634582499398226145778750026918740982369264321778972777198665260181276869883308431886113246108907533782196906094868493306662052382885945186764902613499253199688100351662601405343111106116882653839676882356985050907715192843019744168057064766296713573977155796196582039614563104450767747734654671502308043105712152057566297365708988230890385286979832563010796494028562045466583435005604306822815496931128463430332052068748192029823365058719331609299533084917278695789943041874168812485703111695776156087360760251636836311909506345991415273015824650382257110690010928813209371664755825445047446601951520182990155443283006841184636750681720489694691202898027320315029307245996448427420675625859994213826999360015407508784435292165785256775468902775643752452151970759580785501220969050313113154081261588937727196053524940906803600069037515577486658557234604619298431911164008063206428401870252303094744402662902215293821690200135749884944085309440310675575991928984795389194935020533542473804654132820825747503310631890740520660611171729019706348898457024342167704425147548751546826705384462058643690772444984843476193465974624329063549383706696393818257613190749374515080684704559660757129102276821657506549576830756942460781745320130251399992897329820366911366102498026389918306936610588242255011625356354629333634263714085358235028576302301983101525499013990542193857126940584953203746617177111112549010612780416060723892820708576666338997722574164406360961435778902133370849399000660957932670906913401675370251034615902688938257256993351499210433720801829607825513160648553775317912966962110123435928264425586254669400352867209025966848100373229558176645336004985191293821392359252521498837992861648387261164543775379102639967581051346370363597523810429598416580682474192299350998178601155037120343693746209662161416618776408860307993567607595247388800688234173626371441848925715173466945277238114035262526996724958935065625790526711268005949239120266670056540191624758131740654083722727842021837815100976070899823119566197801710270823521559335802939721349373379206596253606561488204857748328144391726829333152533993291082656228344161895759006817133106055079624940120343818452665424977045569581930363006625039334406867189766707402528379235019603026481263444856495066370870815060714446881625906730756303046127137042470056166037025568887294863616122665384637991646016867612088131879419203236277178175063624605170559763912022934342785656723099540538980293577352081918338531124199615775894672624128629322615407479491629750361041121033595929659504223410219337492081669100255789667289563156799122985883357202218380927497450043620641663083802139064593096253589530481009903847639125492060404780077428980422637221987504485135819830393599177128394118404711071428321548531930684944329400076302368641394887006396989283037407751299549187766423590600848283773123019949143828058426449716682830112272399764975986247607988155496232615664989952435177990644656390715723554138777279149628487995612481470393790686134436742173304868092835391642154057050158994901278189612870410483401752184572963971872193835431312077331224252391455097739443672479030306836492208515744407766485874172764877649668585454689696340855891300487495552186788775726123188273696708987213938398029715526105142970733190191476193549498701039190325290952708949972005034429965063349343412319416985862921662691652724098399716751606294360816500765129633956044293781364280722697229090387593146996076439848717886665039715303188456286179027146051250128813669092090499941584721408073745712026386439677745602173050722676513194657803002772119069570340143057427624460209924845393811540391389162877345713808868844405888394650060038289380131610610045877305850964706476224416873232300835042060646509761164085964069167597498293294633832033375899551724660572310222514460677531239567040578294734766778014042239504976222883789562711356908316524311094042861177146186578199288904586802394099053951623552234681432588432810545649639360824880443997862831556048079511481290158643724085330181284387885133758961564842144727560211244359052569008030585475210855654581006000518458224764836346835932080410588845259752592805927003482673338956815116048422618909094658865886164770289122591915731812801393287700029953323493119945262469738132926738003351058709285893385964181885062494233701381376719758263394787765170020207957266901200717806798433785083987185800581182387711809496484475809818925181537079700564282351938619888080459595879720955834152184185218555675745615663247006927720268654072753216627459230482914264440920307516311670970596970541022637500277116665726736209531642129768159047574648262836942950870251722317743382020058304183060113875415353022060334748731656282958351211517741412799869716619398799392493523331766673045570662562439869328554670070793615180660115492163193535897958425802669745624904482383541430321655112495959567449735646620695647947307425309344462959393805930511992955480176348971056099737066424972738214117141163539768460066857918067517045941104154268243152541997219070464416521135260155972084829593977233517992422106954798566390450245479267774924390653044107600040343977052535699759839384266982172273628623852191329621110847651311687551032853934735735478089551995708228616296262017889230939020923097200887899281495329517640424810417893320643054166197030140617751365783191714534238120466104850028177884388949806128001588648905274373595995865761554025003846239916609273752585401042471556829867349904176725975564122132240819233253349067695646070427082659737520376346486827079398308868688334637257149755049444260152805206105643724680209984296127092656778420665735917463629510478148775049139837309391762347391019309912727993744622329047536326931242022395569089813442633334054977401821042737378083841213386063084626174329806309787814374087760230945390676588757425051158430536788925346757087684217789863337025016098353909346115028355003074430853296741439881527643201565960428524638883084275261867604721041402743925432129045140946724189139298806896556870138322433411535333781863589461305091743865003959455753960585081157284183004081184807546071513415774929227249826324876202471430114798378489423614997970150392115520387195457531423693360026188077748620205102865139353349409250218311632578692294553117254778383272952186078604097055905834326222123599803028505160929290459461761138022485870184493276058367422923328956670770299502928102794123543123961360570114611640487515389352813842046095653212197402578586580347803994294230678249566627310418080529984647001098883038817569570098258223220670902982545904902249660297465709822834741965928950552346389722091048309915481003012768621644140463038845327125681303841922346409290200301243534371938339059553779506039601892110306327779530069468684185900083416658228512802743569258654352502144518775696917955139597467056983478830046212372227200557788271733162899316225234986518176813508051677880685495572322593265762872061219913164338174931619968777620087727807322172582020762871217061253699604458598207613156737832220560017484665509758496254537807310671642097765993554372131574688480487139425803345925363281555012643928969807466621572349979098467836560993091658150333009505403990261942984995993982798372237762848699033969678963581474326483237469602039621992593146540723269931092038098343357034212904806042103338320387923257008049884704484792374839103259829322937958531091615770921638880684252306009368925621420562721539957758315181106031907287188104451116060508003599746934812640874461745048278841854633500727638647000923203040854377533039621037209274955352936768472663366241781347130078536963104868607489247792081794349503890484735917923507389642229169537087113523716803111259429897693485407684205527040169260624547258737960758342688337242367987420242877328440095214989887093648885380280026049896443754058389797379012191813639853766298009913332661943290477416596943839398381747961312000522213640184315710074254471354363921852047360578237842348979852733245773207341883339121390731675643432352565484162682350652392302578762467316732662050361485541729306201316480434189689203359122343602516625173114618975267258663373618079549263150762694453974866585586961820889005752514630067003014681960861884649107556559181690085144914373003950182345865961940619062202639328415058308472062133531775235961661739985892044873751490497595117713260588387948173289240876337110113775459891873901449457866564102756672621455462830415357563306594667613119326236925612457328398742680605139702222968006150699284604519530789467773380596510985932299884033475653042356438041608585112777104015459943310165138289291488745121700756436840764547179251344478011022505665366121753905578412991614434690280399314328644115391392124975091147096703566565082206910222625721198325596311693729340404326354062264024335309465786101371262003180129552972467274587549584767302021092805295750895614746253560698696701958508905677566289342214766226371073147163780058409145368963591946324099194141819198518874965925800213356265096327703970344926104786089921753379524476458673926810322231290956438069085545937177690703429530209382840038477564189494856103072315361862536182907523872498654378807198457065284523372868440461765622641291420829226863401441883367116207278001395034817508830426860303075301849810218258260692175956891730860756524805890718824221019508170125770588126622067284729995167991442040609607799975881624683235985992206266106900524763996790451270290042030448496528357079874064446580186997486779540745468688210949506930245676032241394936294641832784977942506154159558869585054827541722215910259554130661483999552950731785385297865426314259357857361697976173529555422479616186354457992562955710859015472744462007975258019309848347909995195193404385816979839122524361688764190925835263954713222998704241879187807538880834973338057712410464543591886408854672048394967014020349368561309083153202397612352619443479153517709404240372787244425220185437513856257374225483560603161340291915781996098345691607411147717348671377591351390781981021657891659258160478084783899338883779207786229205921500558570247409207711426796214246843402121360417174535451384056842808148367489046193978071437789330522468718941141246075007554007765280490075141755105043640096231648144576210796389432288729177526945313900888322249096728215747745279031257711489402650009019681775100047855549611121801321479483389396409805302247554287218050778753931290775480805461567331177096753607599270020646335429856785963537304043309243140789967386643411565993302113652707692844112449335708902606979045456175858053919008233165789047671488519888854262645555073906912914902469317093049006347716267008968199262354982767217760260070441324971092283827659051986837875404708418841829649218500340201869393658258905773421239090564323072429494337601480593280762189362757598145659931227368759003891304965845281507851037375015305811229498374540144987637335286268134389867270415973762480175890618041288101075774613260659588585376758247119923587311846435614706896197630930901488626338730688170219557423575614839912300006861103000745742933610341318520955058014724276155260041187218962323526258978557936455051453818766188968199525270915370146548113341811278329365682456664351135361766030239644513451533236682545499901446715531907789159295800066666847493440357759588412334789225420530746002207958462650169051125180171591444129774432156100927965771108577200802598662658877447116966904604442783118265510379065287828132908323336344743147960697866530396991971940745691502853707819630595853430835862042781345248425321712818765572851807857354230504737944065676609281793372931958652559499804743462374161931777556280657813486094687262818928705382405576932053712608742297242215271030534083800830959547876201762673985317257529328355669912996447008767937021585752295791732297829161284967312588003867402124205806876793294242067915379362989656077992290176827813435650406606422346973534119860473836575720601353543968814763490949131200760098136567570274590594631543170989489849902510418449157918569601456148563687498741002901962484100970746038269481854778453763100265342823487612172930209467824976553414001426002906099706132322475739587565011236331916422431350960479292801880421674371430216063282913563924010679906462326296684721839683307575255629841219432006069528097784798264566273716504585811577820437746811877008205495964661859700904159565847974420970405557330218869400492830363873413893713242578742423465258927498693238407902226277805234896487768065588508757381231982289339626877350107757609806613550425228281597415408588595094438679582474104480804290419206140149164015864013868838545099943844742532979119345470963770455241244814782072166165679817761887704211902305789416763634652240369150853929914523073082499140062495715620581731299172073734513488991454396568583889303290210931318904517145006276128510391851589431236251635083021441834888585550274200278876645162367092959050270911823480099487918368103356060718056750689058117303277814814413988152132498746687465428758129620431390342673734069352367702268932440909080203691004130590822848654343628002263382559084280716123504114342202945006095354403873865659117157206458984877233097746430892135138391246215189615124262175942247779210382524666704985963483179474158388079491347065359906004333971821414310759649566024955199911461768030950577704076253720171346329013765238338963551840108964030879637177570724621498740525122784816728546050076378330079996707616828759509468096206189469657191046162898723739152860265089345654244299356375053337574931601653332834304585166336550950304890504946166508151316815849979632162015607834021085112736735030266972293787447185697652966132408528928635055363221261443987985918630792912452243647688735781974136983628712845971412963156645917877805656341818607486213859063087672967916464088210642526887175453371436732510407127431217754295648838739816862714028385533284980010849076303123454456100038323386361960504490689938527782018238591555922455440813459631901798075717667821449563247409139672470288626501086100245015722215057199778733425550389699279612513135255279838775438967939726448610322054880301372246089375735154914324265397437162229452579490544535129806134543995673994620515669685935264896911666457095966067574923212870437498851337176358550501253196053360308566356495192500581854889015952124658988457094346190588401768627231946826347660647860796572968818449975111550163936813812283633566590764700307596370782817175440928031471286907836806706618092509812442000902479959860650879373040277147864409722010035332305320238340551462221472180401551775556133712772486644375769858731256344166365734411640112937331217249036936427795218155476374863386274485959894144603678839031384150870116890892123021651718379350743928360371678826676604630414952518917185480671464977819063259009016550479429289171839208482673471182562348966325471297913164891012723302817123177915430894257169747559479540604344715339190152813208706376362690238772695464430911229837525154193499599213264690626994154084292853203352785576201408131974122146984053334548830168051388928100534795756310941852883639756337059052452084390587240889979570407154602514467632562779231294015415061457227741006462566397633426911183324570443624383569132477157071749302428050899334968838341228156254624765667629616651831878699654658733357849936753723999580005529105583755426187819175609954381801086914843108160758375559626761919217132975852730539623099352111347262334858839371273041225590950450085032035307038489101029361531749151575945069008443668890621680780445645020761912736048517200915842234156335706203841382780005445426119838552807448478388496612022000786419959134773076303869320343816880564511367769773592630207945614800854383127000947535520485046502019815329849199008654958975286234729601794873743187264724221722679511358696149133508334981290500564653666412819618162543415317331462787355966463389720570546964214457769862600175836829949401163849683853289157834751139159975484269723293631628213383509964815845658989140298798953604894600632443245829278690622807631786631311884272197490796905063129700258801229464997774118813059193501426927367040645262082017365090441169090248582326935983166450023100533678888490814071284671777017415491525524636404513013085990290885578143531664908774044173405103739503994424430824653721952297882095056663856286098549361186158979325562169141874534576577187552094107937198164477458506546828167728372792962290160855286909449001237232037634688633616991832666881270036992330110189921939720766594960985293234883748666937424309827932619045829906613121203798784037959339907263675099869715971455279892639431877468536980013912475760019627621519085856129658984909647217997876636533805355567796417318530294064435520252785000062319909405439315351717795197697972965356941802770672035334476620050229911751157638353045540433745775572822682755659798816622964456486981088756697470364270496698613192332665522396600492388647741089165943987038691251577842175314903242758584040441409614103203830139823461650388563518768133142907284284041061843296862835421555484857689493315628462668108014345524385879130219385004773624841509002904401540056797063078924443870932352197551421912869578420537030983003349139374856257175112423367294360556261923023039163196598296156205433240798770803631295971581574490337911018533466802543548618757700681497004985809311163879488309440439611342424258362009192079689726064446623366415880605173885797836005851482763629300149994203259525644545505625395328322854691053397901657091778990268226136567994727514770116903872533760217786540588283938271250059071935539661828657066883187066093958118477774932175838532480383742133935422341866934663659765408873917168178884830959742528511816421463814106737752351937606810867459178366701529904338580652709566863813226085952379410061607432462898519768177714088856614564186706946657310796684771302622733208514630710265325105561246099412318771658754440029839001549578870968102183395138191454480219723261794300288935007243206849938344058499608226870293758588512753258818367804405042051458292875479069572251602054306336269194669763658181511724211410085819124811335880723787490560555226453283014572095784679427409627885285558990564015785885305323859868302235771340648278262034549793438217560859310818866699615993709186680632043675803554993055861488880838697238623140839037246917446409283276435840475650871490676830784917666643379818076590275974545506906970990631291824952140026128948757763727636236720688971520808786346881244594498359924681438467996853360538274766021525432830027784143287657096667011745716773866953225030358681313663673693722633743902882492399453317557236686646318000431897934905336697588236367910032502866791010021573905521579502066502726147603826467100103019334453742187282990953148709787376165473881717611444710449984811461689166729919224610512986087145700260225001271771029449877807562024318617787331694702077019458174524945016304419281750455069214975200487383751704684290128766876818079249294177445704656939590444003333757302699507956735209689379543256709217876956458244572480427983795767213746011114513887492678286390876806242490767329641784426752371764801532349361333722052023750823950121884177591577795825417811519278992969091114132105551862156107721152045851431170401050460970478891584885941217568232901521673983147625835438351871888949478182934091297847264820710219852801355933819246660726713261154164915439837017935925055785803983330937517487428185904450781341434309094205852909558039162531162951668470084911006615788926877792598804672286268336752523091832235188891984187271318199668097040300423604205402421747464597706563027132982388796993732447803362064436226481892476127658910457864158726315862129126710876866851983622001779586148186993719349868778457764277564147070168990865739199266528406452616097553762646962901003170133417679911249819523439951770396643632739868567555415096160538721089939686956832522060565940101955915169417568325122956739495022267283452528323248092927242811321121756882531830176966486125935083829092573969822824642994714740771677040691421003613757021918919488835402079843970662912163485347062474569322489721729515036222280918496852239857060925269099845089383164872071005342200904377406573040168340539369480844002527001631480666081015564573029053245293553957670690981039113117833016799943639686200029495971156987647871374938825633650491765502482049720027335196222411876395279173003859404863262571661053966898851574872944542127342460116449624382326182388737304319688851909285559018851140245349563302635937602047620778576889251079599757723164669188006141513435150774025989431292345756342287056323329682637274658010414137106967461133624344270941247372469419381486734180785353499585307531280336304292558843447728066485454882170000756369785566560068984108289740357783541736044649791299927685860187754582623921424355868180077526558133409671910738836374136331890576545403081001804010450352373467425317619260464959927798409474863184980944841767748991961746891101697064404026593100536257450104203874803887588157038877978435702715129062628059030810708538341710080407218501430356589914375289208537005301495590433086456916677798985371846070912038131178441825160130498534758768568407084755810450205214312338868339901644413792797791103617814569560139094147702964186969232527122046032508064074749807862736343952629879840010436841308238348280772676253895125465219121658098627832956361368644015127443645866113047804823838992916808429763806916528774843561712147865633210418026967787386169889200376763078713053162608522441111917048734147043983044140888644440330126509892952758443334770623306169475641491462923799466341479132145462796627771724350090315962948408738846647402236918088819958280501301438560872584359651194558933363440313959840555227836327243064155091084971988083286965817302510388692070237743260828030261583947952338645554486150854212960781265620587862115676944562541386886394046096530307560827400062066699147118308476056578600212675632183497246655883428414621340211013805552268612957593304668571359462457603198849797785818135591277627871898448462443238145316091221101235445224267647296888194420032492210748666859403783065188883448932027263177242829138320599090491382151126385932999692467475974503031287300032577199392145738310712592710392677091340029764718417892623412125331466653386453554156968242045346330060755283084003352796384400207799665550537865828000477644292722146319846945362473139072562078314355537528448508779489596622429160620541417437362465421347061602207220521606205881884711985387142025635612875149799048950898585252729988730870834568893364678152594646509090874420877436561130292897060351655555681067248809835005261557707754251039077368333826664424278500118459118891720162524840374338007138439498097129712941080471530043286691725210441600217302799927213883200173711811697592421569141944868646740627822519600908874153662351300461827812247276592211545723402939596864978125462395590513019529584622163549340861071987492920180559888377757993016357828436727286324101260199260591756053955958301596416342108033892792699044308786628945758160021378888529355850007395137082737760948480216666751642471003994576566470595711765927351651956798751436529506254238374188206676895163976580668783031931352630734191854033012841307960188971589975781760913787595113490097018090449014466392799112453962646108894453043306268681717524005224201399221395629623969253763990938731515521981418911476471332649879452241193247428859165253528337418063937282788130899094455496608371657170710847174610373850656622156784789050469551928867422025510375481179967139626679469857383354647360257385755888139741027500162690991534758368764151989275330422309017069857365181146179443307857816741422599786846608736854885968352166071078067119598099897798067801099165879225156890477062298379585314662092784134710234816807302154219755138392165060193565063050566527220010164558804262023300752776012137986480364322504846342849355286318330763834263576662395922035738385547904763431726531599932982266881969793954866559564981025214314698590533488372308001001395959243910250212783824689152570705756651066487137989621688354657090579513848673707921506791274983240567249891244469791719798860396975839221369348329775885092006105648188662973127062563276577773311015627170472982780043704973279514801544800894668645500603180518723777414051647186978043447762417516324879372971970081451197491842487140604879958266560709709810479336550407281700799903120806048713623288416345940646919543067638747807743972348045074360838026423309443930877519090798802014806752770377574982278628206454303243137158276703103959433397270174488141851880206638315543163519908818216600704538002600859459601034531807846990920232516858554073342992216839901936915164391114724105790554651633474467170807927141497601866771346326593579182337881100995171890951782645756762063288150429567925052988873871029018593508707509926124062296241472688003137221332641157090661758080996855414746863855376449276401401905817180894501666262891434616492313030147908718864069139189120109281689834248424394976784332545648625565953453051800206124047943221538116897157707066582498969573806058012531386122795104082872221282006167433886943400123672787736119786519582687498954652487078926409998351531649187876299713662121154089015977965944757831963081315688906630215715943313233280700840466771397321012194974551529833127544034912974492174278610258864960060183920107355466963138237575472649577422742617554609221006223469627418563229444206591964387329683728137589280906808834387453152702050395538682524016927047949598006687841261579286983597660473164365570096793158622543574769832131500522718931686585700954892532382946480751024142380989850335437442345882647860136841060368047680827956273534079230997538782918741736345839730894848439354309282780534847709307270104566964008677581700666655377919693539619384623116568983965692060938362696897082879880224501904380098612667456059558434925884766106514900660711319920067815241146228489776489143900678519057298981250590768566207794658332303805914379417961884692272071081561801309913353782152262828141333457454574625621913329278617025009986915371686896330264017186102411956717351604405151747578014786257816037943865213846529668942109596042365221193216974324360091243514536003613676146792944890703577597697660363966435963723322553216392747857226321368596652137969008521904574524866750304291734728361698008899034280980956426830453601745760806535260997523953645440467052280810442657121484642606409106673817233232192555133405317642078346133161106103564066006823167894430623464502579995062637052365573226439886820038753138939881526842199624082244116691657814220751186989056557538403507651899942894613426590958051524010810862373475607682215230233784587665049146640547007513752278163195028123076924110736457852887858563100178033963695643212044627627287850654274408849207263799788213917757078790268345671055205828526955164024234473895570539916300304046684980522126924882649054694586781920923212963112063795954430800254449118371884311590350914994963100897952811686335714695940954066373492341691729189332321769343850461881281672358384406278688285799485543864224552464627025127019136711150732826775908109282392045414409142998859420724552217321199589267218881448644449090365083936942009115904493204760903965322296273311867502086782409268305930482660673810094637295406702933292406565567042215434450188227842453818063203015313389360930821980675246728339031369629916285176209209329803076115764412351689694990014059703938886181280995343663101898165407411917526696658989299378495238034155003290806646927565264893339967336272305201488993984728561725219644928143768281401338883283438478523084276860626353571251033438400124462694038458468472362986626069634502563804519278183902303059885429871442896016833694133689541530474759373254253350041462387697107632830500816258299947440504665450162523764835115481160160614694588273994775016909299746099892854549693821471488434018853011867827548182763320032562530209561256867594473232125533079208371558956438495342026514958013342118597921817475020844889484155398685803313102321929102621510777509102722836543769064431688060194567623136604790959683191391315363164909568521357101480000177530535417915047176828173183314932123230917486686819011346515954450430556097025290895367510555828498441063739410241317258976176294983656140492948112492353905315266564875428206544823064807789732594196209311454124782229920666916312744112138413667584270499685990425636899645008815974086056889654102612703273833308111572493404454371067748732913263389766612658300073041925312108841012427750416786466847497317115609555321511864379723176225523063239757820437230143789326171916248581379078912327586669422022695592189359893537228821948789634461271761982817190673207508063894833262772401535877432676549348756135986999225046504023016573252442451122560634376026527863587697340873042647168210441989388834412223903179839684377265651672049095971519187816279609631799152523102914271875098306875537235921603490907873677437350889771523497335192514032976326846401345509319825116295058037576129636365708346056627558134796252190540856950030997731098173381635488414056219349521710419961558132453902686667821430791881520849412705094704227182964728331464979096951490621733587234750613486972330457208882318133935312409343956594002914914782245382059460773965914309846130180488604339892148175449956521691748742480014660450455308674628084686985005125115542869792956070560076053484155790107969053296579159380496876615508633237379153297546410987918355734556954286509740712504418547175251030228676540055091476759618051516852320279084137078408872288013165220578355473192908645060155664553100589496414025746077402135400676367059439115527273658619138434689272886894107030525009909029653381375830893704301669851952611020304048342783085300252488204989361298907450053679234720268910933071593412930140082926959188230689071575016802800157492081779919687870311437045173735193602791403854009107573593509583159312214523007496912027994746508777347906885940308323071330699155403469500523847561778019857262339240081282396691015345766023026018053563622410220136950237677606344433208718246567435844862747888506910346859038269373274865443452721174216577647346569484150403753388197819924487717227125727276377628517942027924064068567999853390472605700122806216962581074097634591668585194926490117258281968921911131191106415566914352676862717611421977160392542122757477530847634235054397089491601737037085663233200182310764577894174205093541351418822752083203850007799902296488198171047290038857462886697095652615573654110960578191363072040821616945347039909706159286875170975546084678608390586878488481143424928038274001311463856825006970740680207216896443872873754570514275865799731988858594838599713710325127789873852040929420322195351293495401952020519400514437405986714104635682117979564564865991518940233321510243281883942335242575113930035197955959916138577873548945356755461110516242078502842050025555535456156529523025415634365911953121132258073528466614082145528177384115267590523082115717541546783337092409331681988405106905103521175774367719023838273352546413337335863240474234029762734578666427403675350249937387597875336694987351408335405174434354322861201929597262764476789733999942870350835708475488296680229643895170041859726951130496770181475027192320533187671530652495859640132945457597477380449848747861098121036744365411279388395636286717925235224050092637310038445403299076634892796317959189124397437518411615373698447325071746619067077006986225044759029672919274268474407436697557159788093023005544586458568605838903170783030322009880688953203638069583308517886800056797140702542458279475763405715933912335379724031144810455163968711821756597840150512177251713808182653608071632094456517989374898761342436886194928798346799771780431946248676613803097217873830388923354331642205245349537745683881349441493351034812509258309133568134352045013830359415547862181984817221001805843038548669652903125495848209755143698960500389600433896970832453433416722766324859858378336296396445656396176535270982726313209057522826446365873338296010999615562342379500753639197354196779758703333047844041432380329729719195180033900759072049448494974551427556894778887858017735566199984801232762236184067071138281902801807591269940487714256317741712366618986179078725481992606782039527421620122987024569856950698608621879771336192780521696942110642979585659489484879995898491932702201328579201372599111654409148797686275073883791915358188571900216390130153948587594811321449556965909698192168920538497457498919738237292860982374661517442954079616863815588569556816495020699468396547119350541714261788327958537158980819529161049231751346620900562894512113931430167821942301102888458398757344319511905739635728449144631044050013597475171942228666948772179773521457945333049437592732956371377002336053571972811918680514255772776671245440498232173840450180916709852740860564995746771453414983596559940312147839862649476648138909866164818047997584707012911471051071094577919144356083190139281432616557265236514950247561215083330024937653877503974621576883314940384556345097079388853487799597851578986284826637701851503850788793387457070373107024758862245546126417727568238516424623013886694248793200123791593170343852565292042667605478751221601141173786609938189192839218106726533610156989896341725940485202947072861105489881910210527587727188390991824712114572497026709689519226651898833061380471920308231014601084104560148128137533769528775594173632712011660086907307036727287180525001978329037304262887362018455532113959738540638294243442782911168172657620350981260461146930052494123481246467740736223871031946173140010507121689658756642018372985237269236793748017844376783517938001885603227893720800381393413018254056208496412568940767629718235369242902266419405768137903599391481644491807255829604965431772128660320577495578156212500787520820428907939691136019555828609769611030527045870634335506781740366582692542725611888659894185958290871783599975482631600497122154026161476934976532235082124059911780506080608298375396184962477221154127308401495901703642255966974424204715135722815095881562859323728055129881769563902517559941196257851623647341278988968740641425910465014387002142719017949638011513508582020836678790574238360090894789264072029107401845308510970591354681058385942752633994649927907681175995005561743862789442513188600855658345168747486372091442649373033464330357697465581049397424661609022432704103088369144505256126535163684075594156594353297566433005589323371296761718040606092888788993182303844737096654479083134248121011246700801957235719688952988606737597641604212443582456177828476887225665126005223955750824222985604035024951055461114475918280074706337136444104986153527379870052985740275477857633769046947948337234483217732036892817555794070931212767874809911011253955816219874625902112041360667437081416470808134314491539955559847052154109461776122849244959537486373739005029681921189386205502742560801302991112998920115208768072989915931475735634978767258183948154348644256053948601890294417168838307891623356494933883930838754445968186601979297437338339707697606261076880567350142516457486629850179772566076559266214537003990212582160380254548777115677139589426168251391194927773429318671612827674232393817973933064755644073277613912534761699924767256272937575786039042397094607832454218490822148095898724562456889043288664496321292108568051399484081767848427176643018437797167304594804799602457688507660884594965783285210948355807169940212127805054901036137793430403607695951016550716731371522546224073055048125874093036255394581266498946940365986997210748039690120336164653216897357038090413043607125758789215093315510077191854681940944311870272760501907111592547484429834087910955026705673790851471961731521050269436278369219179768263082819281034227583437455426769822671325322230098531645147047378802314731760927428965231665550423446413234442391758669600950698248543681313378344675854875061844093595085181900532570056793276055817360618964606640633035392760453947707873615387621947063204348617274910095467867334854546569346091029172649470989298948008553894557739020165742153723814784909337292283322500670887515006675630793097648359685842548928863238088505819880993876384825550292404161102394171098962863132955239045177886855231500398616924759489190419897518496805482282605868792296804281652416807835998004537351268094895841038328858994218080683750798915601358781585105842114094798466554033517708237677344390167820709355308634395447828575868336836815468030936268981350731963471693630899563985135880068777787557146863592011093069269516049946861458745545283910134574957059979699481345933036034199348495665157090178318688825057770428102771036279996219606305207409658506201733434726902032791374345638275062389377659782466325698670586579425029703507137448963887076020309900858071566067695596006844956814205302963543358909109414133859761290280780445843903645608007458495176108372088401806677369559290657745616180162429024934347872287004976787809214626531163973764459235190626310516388216307184368100920043673039867320260630860106863544362213042562566806474953657690597929485947406593341638889867996957844726614571462403761879393728878027731276152800987466408593521286952861287397459132928869625973865940282932779619193904146707588852507694608580030148445480232725189956194535603115401544665844886480792500690699613031158254174939736757772695069930819690596780444642445704850162670093404942726835246498992332908093809980057974572364094812502782313038102253348759833644080360264954722391449969416340356323523799529057853291778564593754007109931108282857609779347977390890903203694734858468420692554305451335218831428891132231085152497074555314520911794916537796977201192434483196405667913412649452527891671531677558595927843903321138311574358978418793269651656817324400724514645375614519041739848386248768077244776778009384695274117966036831357562684413256411220031688714970678734734218184164133152682355394051259984218971619027987645632358709502147800873024474465293054887235227112620742939845957581172533538374108942811648521556735293339138990408752122789633457919193400512672687944409081636209758773137549213553975924692513792050002882804187768318035449580401218936489100116401726980401017356444739856595169751874194338771367576272398324513664364918561107929061727253337855800529940672303524215159223150304931866787035569656551372173797073018245772193020474179804209181366466238521371592472222176735831099585060898430526969643883786768951135000090751685032415527328366588164347013710585531109440709557336988750836448233976650283747232526869231288298902882500569423544280326996915350917738923894170559783289305394334079335543689340234801396652206317058590661206282879139575728688764758756280075207272585607626762096252513303728841205468137811871949261275492184776379044567673374254132738225657044309596171384194761555656372641813759007428966088657164398853135699128860197814630895196533560979789094123861925317412716083625490130682443712792367757459286110326141691959798622231361414995717788321826755320214977778911721850131262129793095022930553226651334944201927412330489880028255431463904625733684781725797883090426458319954083905809494292318428156311224382527549669486013175086217028151560713766053736721404690713505104353091028512221212787429473591933937653906393508703817862838110994704006951504756868306737015411143964188168594643012379519117739807811611554073629802021689761222138018700802953378177880379320881941670229797508106515510253516885733186798241073661734737290348580175753929755501203263636901015716706681614108804585973851320752637784930538235434406030606762191344337864428492124550616383436397518695770246568208306543372189592815108587353569138189980620460221247689761570002453896401764345070390987566784141740916699295410499948992093092435249621902827054823236561788775264627870056314232475929160100827555469253924623034661629055664711402886970677812724531633152184416082048948655694490564033942676477499519044918482576354651433343539657306291159304026178891361366240407820350284308729624592017540335320851036404998150310115017713131183340242340253379003384836699209623226568153007973578399910211430944869525078791000462794773731237965876976047635522415332367738605036597490128734308968235543740003023690512003722281531024818811408901106585976223634483464420827992677795338870017613791608779591788508770015412936428688075585547925281108850099573393977876637256737038535755726146628594803786036410373677358202076193125354002206424824979519483258363712041610582030097132939578021970431155778546391735834475025840306113553938388553299623685724963099644879906329340209644881513766968538916682557078878923402391436914818287848225527816812379635223569206200566498955504890315887990071604385755184253210554097535737087997845681023847230717109562463155958392078183946815283110385803673339054452452572046676424086153853344347448421752951599685644296843089852301688985301553389522904587864182860190126888375331033512148299942441688786821645243649938077190911063756747584779412427350609742975954689297582381308876853788083998391247300709114050581724447835607399582568205477589824617316644928230165171734448319939108913805530820332795228274382101014998838293866807453966368750047459349736636780641620736550245224362758660310327707617848452819575916491806894016921484512053166250164969357378270624828727447170129882008720723751885668095595791213442409520315786087859068919605763264986275736133994847959323773155453310504641699587092654151381635695866672848996499549970980004823621839057239637145744727870850467493325653028302663203941550211462255443654879766270229217006420474641848803848819151347899021681631303401981147834119316917560873392107325955615262995273010829190714239987235189846039521592835336711521976944709990661862438954447896395047308956334458128684093674365205787928061828274761903709395239333928729611449842256004587810736939051856903275177963860983089005323902556881966667373550785000984034584599117022203667690940146694403384555768359606780016388355403836311209199502713732698001475240556178852196919959607815330331492482204636505204520015253632162564132021590677892733620293553564872792907657750029415145547951185668616953755167240873774127840563924999115647571208260774108736439918500414291848961650248253173172258619160758411872140080662004134533181597221614967724821409467093546017678510907239033020607466860781592687979077254589805997408837455057149750506426183682119550450362813284557569161376753251479207958159059966666083250409709629956767204520361963563136011834574993715395512664431712953430968489409062759631392577467365032437664030202978061661464753382135846984080604643330028859699883297171995025943556676010446560553081537197395809296501903346491544755088283135142760343275285469149016710745934510823803895389634065627275757930301376750435528427276485054542502497389716099022534013809869643534802219590490665910398710017170584917100285036530506329270127554417125838939197102865170440692675986759591512680103934200159583806682383003464208129629963745544255162540598747464512202358650660383167338949705998674660335846905316112042932541897873432883828089388206583375064329145092747437657507868134070954405281407045110012556575986848608259869517656465147784289232027708860968693234660090372052568232431564526991752006015720813074196058250654324766091224372196931238580789758269438972781942144984364640563469233863852872604138868797914461915392508680231203278740618960432024570420632237646362319144336937153236035209612545215141634575448150789186873769193516329386640945127389777436173285466314581997208007287211104796794189213888587283366737936141404042167093152478160846071335276642965495147489127642152501109058825491210976093999654324955575312532325698417856380195731292558386594421966352339699834579712204369958686658177913220646434180941294919021488678171981797337100122506996788131120222820817542694020447766194355348585886881917315849913684695714686879033425130887611049051348076230670009382853605198602596382376718091508749852136952542846177460688397665386488221016224780966526956934481081441098962304325669561092750678399786256393547855413221041550931656954009217747988882491176281444108395276131392688582891167076607280134413103968739824805512820011024016274036666178594621899956722473182179491443125151059920212625226220970632606139828991684428617473848255932771903101954688142685666489922401155766463322008356227113329758162497463226805480046353919542393178284212193576693927908472847241868714596702121655403879094670886206995254086164195160794790048643989637968982067387839928210897190818192767821709889025500361236290480960663720693700983331598416710347487759772330685037496708120403068646723476668198931596332611848101579442266352488315749230063528538912454703163198830562844600885333165606447633494489310123868134905029090651175094134007095740272041305892637771819262097192001510757859241713191738921815449398657703319657146198395427593821982606428027730711475073666979834830235313282627016368665353349998669392039454423279873926753546943482730982868151640177520123198387526831498085469524560102842543508016132594001189078596615787739713314079534715945116869385916737158082274665025376052878358613257523752615808955602421167967877025126104856243469222169812533770546496712054412504855287410973313963296606455736445727680772141255828198170406421753459377777484484309814886985090110563034835014843160130468716265809290724015896413055556196456843520185097822901145370209945752320939570359951408260054665771147022549332380406797422548291765035076035197971960911208979569590221323253280859354193256606047888726797745184338276077417706763911631107890529408444246557030658386657473965892526488626130074852380403494778848574071084925187039385899749880890337248378407055302927855149089535721073973834519804261525573409426032028341144967013566574064913431018995198551015659934600782831390639193947941678048832765718667108700809016081718928248735895531191774907530167888715577597384358289348744805382853450115926203840552440878282778894220157468721413245370366846588571910046828763888957582294192506753102546763084208697054691729119777382766096948994764742124677873499870838106559313994309610110894780102138722032037893587849769960465018913134589819067050369105334266735759108686657814659342856358550656043069242540905456387145096667434459575711996314648494239239349253275722798771386083413419684861019435956395551850625852023318059222746567041709287749100039290064105403881567289273047314819212142797539410746839726641847221765931237868545994358517886438047290991105901857929014771734738617454054395845512460785979676252093706449722148141330574507935137491713894186882847698694960631905696090213740305184215702411018099158715438677132489857253503081630523991439604416407646115128649096003047830157155088209700013258024855904461549924012683088922419123473675789309464308748383683029026024273709840875107693666718638003461007666841079787244154261528572814020283893440132979383044042383833181033121127478467271697799354992176771115083402076568276449830032746782292770056059419246700346823765035412097462971074902704909099324664756579916997806219568912979190874923675599404695203707288585357553598279608697038627620019904558634032598144281786620752226063250269015474902017587915620179227878061981730748477376757609887212754971943929057439069764359253931185616464732126030762185361477287932057829524266371364517810404229091649017149543267281640838444630506983630687446779904788079253958984491036997041080592080302883765937747695610405704726892143206523874684512391907023406696149954764959378083560362134491545390804500955035907570654826344070596393193361561945041785664613814550241587306151152142468579109242704861819432293250319998023414136882303809456430525904197254864699763011710059296361126113752141071116034878341715352311009035942708867029765107798923927025353868882861795441351595205844449279570832123205905423071624816545229617219984777568644255364983929745208637930530647130617969106327958789038974608400919653883004264001121257707969814521489092227706009884417383147551212487855454867848028523385306349236138315493937742289030542782682621079847207317027483203848154902031016929055264876317893276000309136046472780862400321368886418748580440848143892821803293733242914583418295735626815593343122256888622345136559907030303747081241153497756874591433501470505766080111332734108384782227173178113503392871026424106301071856766005986007591922794216455275425016246289449601719448965424730373766569199349815218363094864737503549298665346138515733437016533960988310457106952735092671003028780896453877125053261305917170708516022520391833508028727501752781062174709299398537800434556631944658198428305317775405946289646263268287321936875524762726796828835454622625711993011842614612902156594475500352173319030006172101868021374067587681008599063217513767536258931063976587357441963821838161493285469998433461860375607667614673215615887578671009290137441543852179672001588348163676498925606727404462748103156702119987975637293342515615663616350027341932810977880289828265529318733900794194969669000765371771718357953821549492435621211408164541652638872094016297819507125624057976728611495222752193530550587605689403528533265711704489584780201076525591641520567211549753805326919363893530739181454061898002614804711052062123477092498421234292865478723886139299200829688268160385464069122324258264085135711857715528474069633524607969792491996222675805621305087831776485816333647286814819102723352327486237210657479136437165322618814019878318589252589826110241010075344247372644705891226337086918216509057603479697801288282880708220990044887937320531929999376522542043563613776665187223912426996182279895127723205357846409662975773390232035410679108037059115479362048306148693179905407648027083215943551013197732958015881337308817848651900194268503017694623988351468881974954522027641727884615092214157140593524723142315861007028122313679816518078512848098338261196510213252519475839388854890768535881307110350915005318286876108066578499515082629348793889265741928249384334780326205335417458249769013336129923241336630770726287988112812301043367838445328304421168341244733069372935266366580655891345544288453180470774112545105387602782937850537976493923174465695144053489565282897884660992267941489229456054617621077741167932819762979020076794615084558928643184054695762240663989627777500504431919285404529079226367843043638700570946838196137280736116275073245245035978046734388367205374769070439484262474325443095523088929959614942536247524823384596984186785087326171668415125124654860774492369401317512711027934534160270531483662476628175037758260748892080066374599609334860480594723945430706043414836141082951157994299575955039939408857084057451921129455484632492879750569938275614410026986849582529812044976860602008559297539985482632779772110719228301531703827885061581156462297643253900025290456208926950625941856320693209486323795330566199782427947416088803198173654237720554532344753828129602665910315209218422848940701862800179352101476092354782789124048663602794842865052838344753247318647873810545471347309948147495998965722230146503350616634155695591102028961805120802499368208013218928865353491257909282517393143957661812644012746750632062637367494385043249232940400046149064360826850966976938959790786181090274523899054970685404945889755111844530487966173230942575572981766128198822628840399589819880482021338148099689801693997621706840118862696901451789948046031313749530570364960630569336201081095810634227619297336526297644557714474583605913768996146588784043432973334831157686315965478286205575060112392192894384765940603745304428612151515180149701534753151745021283581373775899406957833276006473736554146820089188817496775882262697383222420815960514044978700284445022758660761313011319799931265660871453985603749630655339132289720681163645652326354041457280404033955442561777223800940427291068893944598512498415129595333840714262621091282391153242783655744108327187557447748285261304163151222739617520049051193884220731452301240547126731479573067589370394887106531528491488132253476216216939756416695948075409064344519328126690318267778796565828178712763691121362890938395715421914281482420791861552145556010090548792934219289239585026890382677091550459309765138554194433202912777658973563437064615327409581096480715598696219759422196986176486604774630086642365620613529935996793922630375211939307141378951942563707313963497859153753710919778458219441023218410789045367027625224628047038871388050035996951123143583833658554476279056698648297612698763181715762591565621173257079368019874849344439641470785554061658940403791352402448317905542144020993192862682780227600350593168237819018730122482940473255357187092136928976528893505011389754723882530078135428835278550744414305020226405778483598627667274734922377485244037188752325270978185086111313304381513611056855009397710949587286070245288088802520237805101938267204374607596263657352607112011443623161766779474916648886521466757289136038418047475175559504169641345256163643175993972199112884472023732184131316891996823806314373842965092239889851947453276295968235207443930629301744243503912943513005058780791166595768481232050719171562964515515107977814098801510669554320173032038423157966969353060577527633220013699997599090133881106733399152815852302816400956054783584334849718070632429346165393195958772187391936183059787962809216115268884712517381019864766580002511423599662205986759007583976401802625743247533642205141828525171269441555602231570234270939449669246240455232808534433631423084407818760755241634085524206045676035923105281882442662248123259151198170050210914056980223797611533566472821857197057794855048691816158847394889773502883199600166256648300867594463854908613672252389683609630217407352248500914891215265352590154719433377099831450694034873264815179772722999228286953346482889678037251674250641277008841945809070710009268722024018406113038063907054574847960560074108604885392969472066770057832782456412314780868335581927110427982722298626180976761586527754027946138343570744641924540584331971325603554737022014036258984330574053358954373888700213395693193387727407512651765074873699872682420021675724661114580326034384841879546869640281974654761910252654063293488065552796550757320487658367474448846887638587104144705615875114802211562811549237080063225095776791493354817007196165137213596247530978901909926740911240924693218126430736224488254882580725187661410445997078327760857505861423938687086824130908752310075132851952529993900481480098454865139824624784710599493242888279038735315439471996329771602091857307326576501115020964726644503250898514243573617838646459011301933042820568093577763023894027818563696204664979390167572459315690037125949541445337002043317180077112369513499830537762374784048700397646490847197519937446754200619519169653072470666853612845100996321824604210308870603675825326912099940543953590170807917489179824721020439257136075047286912457097864473373317519688970878315602658257058610004070614294977415792269148316120612605441160233678582180146370920403555168542810683244077786132032735965732564047311655280293960602214159241615287617332161258456347469641822062395012206268592752459829156757020210190112939924561993470458766717834334873180576211524689457489597624386312129795285819941715805068297411710852263665020404494740707311893759504363943709184281584119379330993071270311959134550523083654296305843335255041255664045308782055530964881877856751814134829221146998531530371750440996270726949645301465568842788419653175140332351827102268429373665707742661192116238766186434754304968248207002642254274099072702005582806446455704538763271285035720926009348384346891952926370598028441892888579323381825140317855571572998995909603983456650435307847107600377736014032685079144308494957794584245981767479538307667163446677853674357668679384146980219797867579682988261167046588953847237588073762378639153150596157464920339747127502763179138250636542774770505373366281288257892280579051637156335152975688667368541479339468241267481169902269032771607743549770685498530496413888727306593955813596893575237694994954638675460982775633624337262554207121850011146173061615982334196136501558765009528627722268800281969045412650639563320983511113146486156482024700719456431669252500100851515650827720365160596404780805874499588141594787754147140186165811508734123352504227853831855952425107985590986317924533151766722707063484328764954827380328321292074984599467519941462767707098134899137021954259166661496068698424087145001249400381530779416557257712304813834108142357271828928518548622003174482816402570919039100678352012691326548866634888722991730888767610474114667591778217822396359965106489496254394724070772542881537516325078449293331814441262328827861873487426337499132273962812920405158862242970728405235665430694086310337294914739174392904261774676722932048670382295716641033946953605303313054364542375170487252755390809532569337759922027522653752098884936085025385327800529066165045856526481723937725013057992176855360793749722649309162434494464122943722209925629241655877916506314175657119356256771900005258070622660453845117503295353051660571105543553622359310535246822930960954527084538840087975372194482090228492908415137108903965016026273471117036830128162734018906284918934734984040590090195144272256163162293749685017845789757318877935912738668506825524881726304233296600492649225089961147915411828008317185296617408561343368981972176293333767837835986812396529641045302647420864653230744872569288067265681599538681513705268789689764671616145970171145964919158501669310381613543873894378234622248044669149476174008909380136286714795188387143576250490839836508692110175658469133871238763907563393244256459366122796442382801985986885214729440887632902990757263977120406940214918192124271267382052035254933083071232239999617302622910217006542962427310388255697360107996734027141565927416031706237920164599070152459080146326939032878208919443005027689894049210246556400999346208910511164977876331205291858263630170100674943712196854071013786136938719659144044807594257096976194051700926369387398435379106881720230023699108058049848541065654385064190868428348385805640892416903196320893016103631145864179983215969656165099967362379664371147138413348436648331558041288376188207614583667328649237043926260354498432249800013709499525891394501726430556371141341656903935059388971860097552683044282280822775763583244287418063561828828176728897501906692021377612719192507323252556281041498287695474725535859830488114432241628325396289936144312630927631407115283201529689774707878188758467514024359344146760309587083274720723751849984757180719851717014141062333536478755661729835568723159301119129176978929750904183224121326393597715476200518124724103211861445127872216938845233072705145136108916608943651203427370944069969866131671157176990802535020247892461647347098953661632102596747014126790792185041343134716388010718364347878607596068906371973856818654910416337436942289793105438982005576844770777087561221466070962459974095451662550208256505789808144747663186767348789961568733178659498270796161917686284556561882240621262342331753915672537817385376842512629238202850570434554532057106885829932681142261807990240040894812337917136755360149543075633411781353897534692700896549581052171618053216847104874068613117405243295720207747361241034362463058255194046205025433880085897602522073123087621520194443599498626808609814263918354227771780575995877308054968177750011334716992532076376184707800551063778946138889234278826154482928339161957933734855428182350077355047656857365926426891534044240242863368492391114317793892723011219729105366235006084786383935154252836402357748818053593051719864680052105599864643359860227740268272681920652366421376672036517081529435608498469811295557072009585270834269776918237086974359690850570695707401878233678516189913240394872650195045035781016988300247134509707658169210859016845182648297059486697818020588296383572829632934823811741104437635960450169155093745018187663746540342054083061055094263986824229681156760714239761615658674432200678913886422984253454390869397383892948664268869371014817675715765031702916663737750794715719801629189431328395264335133915550801778570420537465381478598177950949818350454505735939759659264762163142134884209902358837658411427574547176814301875079930427086897481249743483814309268346261262632365600259921495660802043525680781561331646699437298967728985829613705088926488096459794157868411113785757944620368850215413209252809409382742861608376885997327300578546272409615005330237235630143312756440176602862555575382844408579360730853030757528161357313169991080090820280705153590852414173605523775620429228651382935897109371041439790284299316073538411151332663294089870034975457030894206169740161134662785615762517884266240182525195537292404031838331465854431512424550481580244430945468132298708880888891954615164089551402655331440326364868757238131888557981302761017376873413180222616682109897196731517406286955871947096379017358174574743184389147163704371285342105395279990983416292602227752916368816764468654066049198811527079018329615446841054737901019974268635429781945823380987157075372308467310382298077251691435659035169773591663847713210927884299044079114988681524885500516515528955898024414368950738197200687189099679616120094356259904570624395387090739433248416722635136692954592767158666645786727275752712145490332231367873168829272238542458106062623365355052075867197854673418437778560747132843232491289513023922513621921846932473346704160467587510707691985466891645382508761400005221176978977965920439556762644037524754090373297106136048123945963451066093234430025236716701228819852121711137080171226290063025714746247050770599316290209913320140913479186069254177035911758868493169895594746419773056372608913530134725756884160197849873499713994520826570743374103507716972943125930188625474098526972517053636655540432458327950839989816864104024564492198802039529873596874053436278336811922310188535960518145546465379669115428619209856459919471279566232792124598112165672412146214381902806692433576271613656088429059428564763854062308177913196502124302626711921209822922520164318686823801210127872401694816730401615748596767126191547826372850445907308092165832861625785747899067510522840132833096469804961820971931244850680597418063265642449008380876474612501755748155607534540658607358745764208727269359634645099678417441481776525652502313050629478784799378650529660041083504697807676229331057699354416346356733792556560847932452125853156017692974753829674363502748493819776775405724101916754903032632882394924591285578446997713523431351826949300888747527570857494904999558494565262291543961936446323109232010742999495910334742721548574228792122812902607946489014575590210799686465138775264462780371973634898186591999359276584696009070500824379420805277747185172850060245213241090808847271104579923929818802492455697849409054767329595055023424941579292012651950437053190266774907583781145750543841229668536563921221594123261916957760300475394694547552185734428068260356815643675470869247140468176333139325865697439621052402294597012204559363014106103997219568634291734741024468344723524816717282908061274171374360633323301532229511852317109907496762993800710359117664985638616155205713598936599542546540685336974141976711880660774301073035157313899449318829662077584642590548525586232429922892287939488624340012949206563519318598769845282782318316037187626036980834877739992851422319483151908137671955160274883766584008863891963529173315224720531316745964198951075372309885713563831665103294073848492632032880820458332665477272190174996568357213125442697262289404436674398576879286110012964432906713055435545987388915526671551332989809830818686544425340449624641698129119736565512754592631529819766212241923704859938568609253012864340539217592760954482001356667481876875004343203076212244812714986289872753592003004781931320218049896010312153710091963294664178958755175315105901723994956599890324399824213521322248687901870418400461918356533988950455865961280779494975412315392043875344959088673050854500669608872349093243403098836577185971631021973200775116999085745873913882380272469529538234256503527244138971632039792047034800551388504917960801256246477317925610517936842329930388949793979297873650574192884675333869379014402463990617882829486285220535214998380945624475593733045754256739270897301457007592720261983037870844164006361164255349555009497000908877275231878388130719006062313810916286497191615212633862850255142697587176739832324868845204090262173399960684866613881771829053421257579854562003141122457906604745471068372651844350426306259297872760876798236551433058041811506187356701541224998189628565609581022606125470084060391089144760057923276445423848651224154796943518636224648777525979708870686541428038356454503260338361345596830919222667407870976271506046637721144142165990704617525054770360537258865533250368501907508539954722436888984146012023614309294963306997668422843172524358146687055377594482930103650310972133923428129500102796564235916844503342096979020269595187384867287181229639688271131636173323888154089763044209080190122402831117383726730873330535730444400022149500561303502078663207533793845790180668389511916246110855357882030024003042347583821865152603779835361222248300769314384976157273187639085441357319306513700361672347379866057587446278740843166748898746189902410318608638670914665573801829738492371958309192426451143632908795520410902918266954508664719329816914105578584638205938305191853870076463071174414575699200944729582122613314326381191764563167755815378696437541805282895419679059113225482564529730485165029221537005237426655305703742070910820763934495664325760040043409197287303855487746589997694308304505674617085223132396886664452366261132501257333594804811461231230551685483803428276532104274374234858056590203356618279926229575365408421386460572002612900191607970480923680463133297159042520150990295599332265547115474171824804374108854843808937582841659793323654051940572512328246485879339728492875923857677945861323565493783921524825927376641334532862528961570818626849262157714635046652405849591076824708962511924705357285199331423342028581991359261632049904877317920656280897520602294669606689016031357057649766283745499425822064323039389611587468851893134992602200874725499111719444782978683479830097839247550798754644670844517571324195329570825960200516515971246308054125728306733193983007704490348802709340961900540205151015239012531096855737377902433996215118297529917319406057340789818876273850465444434947910561742965457531981445900981711522678891235735850670139237248872715935929402779002782413659824924737624977790730961719976195416799363376179668794437395099144270694895379947796305518563286262805177830885589769019857410939855234670519879373976541893062370460608046245435760742956343154725514823566106450191879795037954835979542308394726894824858517739837040948246884106134184367931173981463894544340024235368717003623314905199073379271693925216211373879469022200041971228323533106666667261990424093182784911248447506315219976454058389286843223386506059987052951262630923043453645587753787832400858528237844336433822167126743802142935216780967888100678103189174417685809746473580568497844782881380522161624168863928520058070820589946915408976319588442170890846327335926697141844407484827967240434230119969929331234224166046683046831040052527849252185376853937045703330532343282995789915147134608881085951710856073989970972313108777756523921469699342786414463377369170487879681725486636783818618766560932507427826094254869195641890462834297245679328055316444248963476301370487065136064117091554346807508504170089494097775313147734974968583230192954082522902918108292323579854904814748193316157220159284885462306985200539450931380258758015518259075216965758063576868384066742463750902746166138373095743921278241011260700554840795986169508457492714872481157365544800162906642769312438724301594687018663366001290781285322803514603004563002428774900583744820188951392092676586604947975319280939634291923602004292164721643256480377547978887719786219265391566648593257111334385616881927398257691905410216454828825539787880209345024805213442424878955785625860571778779108871457576253940079381678488076615200511396943269144633467953024982304969212480073177855939870190642313534824017994217857160683136259056045069291075483171974847516510573503051479900782578511988828457475422570867948813092712872393052258352102292477588465927855187386982183472551646351344326133737078046871855993295804946865695267877623938565584264560743155669109683286453456988186286585334539084337218655928943946343627829609752827718560668080395746492405287374685433730966111435424447182707708489728788529420371604061931443143112451497218579353606519292272509824616086031264611775165370085115072328807826614503091654545313606256893353161664424774161842593940437372011534746729303301271776660176146788869183520606680755101201693238996498604348859269780335781746095678789011974596797305889586077187117081345430866316055696620998831899864863362435071578006021394316306282711280106321129558162711637960126822640886950883061084993997819647889375315429317087025487162781201681412257528469817532871772862908774109329475866271645372967893450725701043079239207124662337800777154889559075005364016341929308781919408062125320043146982038325576980120099352315245421477382575964310757950506923320756271624003133879236120492485885969103603732586837113311359585178911932496286659302046829000558126700688760223095773879564524622701663319274778520576854453039112539657609089223336943799305507205117110231211251860940161341931938284946266651921497220051816915370587357127291651851898194610688208698698283873235314770786570364748580778664537003843653754767459150932733934624559296814220265569750407662562433956154005163984100684499788447902861312663250448315217740505714491484654837928075009763757313175339609409758122863790894046047543533415190364606544704281506383160532462540222677456568806554911634742090562863428532395139142121555941789054605234583917109594527772733923087826869800433903892137999025020057797533032039365075662813879531349732463745072065787802181042456682513684617243286733586246821283801511564929368850678836404340624441690633165382701907082184401223064411321266394713361018742057419103162872907913097713563014804846043862137007703638922715490275042947165192114146896103771230945610961465013738109539515607673991525233729300106109985458435406955048929223504692994405757995792040441588411479878694984136905330959706264060829501243775990502358473393411869715488089414083470165495017020782300204395688737070989120019439291040323939568618049407363692388042988838749196652384634653036362036979190932675072043662637006175663340989659101513267783216827766743779059561042532095596026866184644737209221453034418256211136029012687064411837563698674599408914221504527518052585161202999669096836406446847528092351084059532835857731014744917564059837210567599028493875625882278716348670330215361163406152877072069314710829583371542286973740489300069724479952934002200578438229627796624063466136843199878867167337703503715674357906022339770467028032566132417325889549174774557763083761716961768566489399448941275890736146087835595374907108848879118457178757084968843705501759234265195362845589992653820174107757052390625718873594840705682346254833151331371956593519063274972852758346197242347726234640126841264366148764559460095966788207023554044013227019963368098937141346819617305503363102186515734007100444515205324789001814807858310835053620757966122330124994751758907460959918655589966618539026871599192597553810075047991742522380531109635201892340418660015776490708784918041845241152105537597597362595792335659742457472388749542650215040200290661774839524397403673636288289113663103932409295141184737072158432426608120605971773978260587029451240862866763896715945899760028911593099857676215316840001522470982468638228195329559157574138640026082710179586975880684004335105831393170433087473203427536597696940921574085693813182945701256874296148102660715036130225524322789144025074922179360904518623671178270668718808363060540188664554695195786365695179406346832194315362141428255050688783769002795770776829324891585311436159830250056924216948910026734868579209486671950272001166843147166571514371376793684711677553434787676060308525186919483945990573479912042252233346115869437909565790745221577235283866714285941005413066547298200172120074484209192610731104834957523115359678123336182783948349693897818904643425312298012000277474901383029740390364992796883577463174281671233315011986390186087382856035054900638886551945367683436138705408816298655894514836048317628424506835394678045128016894409598648166418589820617197147938345843457004888142580593501145509362186222819009979337292713731810861931986012644028522108574882400652123414647109342280908967463540674732245176485032455361337858903143804329820669002576276213748419864217738317198012708943181010111536130348021813040268505812097244616468117363002864413526202102824331433791641151525347051195008466600333562456727582258587805403131729544130460775629740732215549771116734197946564129716439689674242566952937545566400406650413952694670102470408166356674627722910631150050630198174582095043389736381415227624998233212031622229555607686590215015718349763221265065797218221122572941469391445733056162241914580741658163167266565590204849529803488855071550026159355507532526474671116529503815477502818580043939586008410795094467832420223802598301495990489713958585781874524782045376159132723554518004775982330941330743002505575497817267798982136702814368315159604817168234801046236530642100163326799120951978134317152545759043186944930707547380935725874645897516278008839560823695502475866599593832852888513315067956317937472050404101383280674115868887059811954162431534716130381915458368110319793563282735360214573626944372814740767171704863799468837375055527171399978266011619804670454815966065078232688431006192640539780096021983966501604660312986947509620896035244545163178294395462889745133398698453049524911242577050881853142761434193035506593911138008018378026190983909419029970242238736787660716591750250572277976703048218215263517984813327439140337171716651469995259541508573210023987321991323283486866920017615792343980980936946433436223726013188189455251555694747429633176013371490247563694998217383909751195308959483494152830072555306744450180206206426239281818131471431823603682447753795289135894831266888354552392253167752588327733743065557926281942327944157345092063941788390800029386665043479102279960467954294130312519613065726324589260988681787932708708968493337092070297671499604652016843934853619894058952645167174256534820194317177281614398005430815940114734634941960098430792643766688404414468117942012104994561358833318761245522415317552329940576041306714124993893407410438708474535546893161932615094190825942042315708411546166711726789182846202207192639804640914570133631109943530444337496175907565424048130592529871155088599975218224848240372883528474184466289201252013560513281824605740263463326276856415101251837265466965358785075936179754359472780102359454824831746161734833891275403715288176390292526355596346324497626171580212458854142099353919730813044844517629646627504709062002828256595445470822484322636756309507270756311073368873341728214584116742868515010684803501180458797053888815505371318432710757286777884136076529589204295534045159742579484619389050948629606006630941850702773764381048067873449750547191953159655414518118535986318982303569891312432625474676645869405106190744938404638889624604448233493076038737888143811075695411909817279122695356798719981831895545916973693107320390895418823264472821465141112110385977435871201862024499991238307889358556671372554449166102787725408791791927869183734769112939733393590621406248240296276127820110319647603224679840162790198938955876402414341188352344170839724607500373828637431592276928422939848729961828370417266206823051103030332477152899431050751531188083447223937831297065382007553948696125038499975003378492187410974389958544022180603209562308594659183729531679123240014494481281591295699554819229016548978108335587668845880345172821220956137651205064702515322712546406866670876826990093507730903534143185815635667796125119077376394639146876125874549515840076061996897354199540495456108836501139304502457591392209733120687348947664375242457044081887525140360237304534552551113621223109759621024962664842039001493616083482369379458609464260641720311235995645662231836838450964436822939315429607570730931618654152766761129094204929756817321476496886209854022261576557283629405656681937870362963695084925586997668805352011887482876860568478087688803021893998937407915433527981865945965248629553546406613602134414688744158112013253260235759351193626076394103777105105006131698750651296062495464148804607649661916297184404834508661219627054954394858286929377156361817456238508093688668909783017836706427486765258801124097268578592998800432896800417283439547705207884905406103891930598759845099520952781452485830222023275987886548091207309905136110096848608069534482392085159838810600214698229696655296096061539232308078458420440112177522166776905568595709555606343851300756926874376716173715509130118174762860605491736192686227961936466084720570113192035447604802818508632221135506884561853414822153528371362635822536116263689677499380359791354624444424761458738904745573169289504922806977522361565259479964208008591672792879585449886147391825577387586859942323482916374185577779640532736059621720936808375788703666149224828179562105250924952118623630268073622088121608613911828184872273546085221405051939114957705826693191790894684850081905346367914220755454255765566796842424078911031292413814718403519198405966011039240441129911060457999500499926868931321843865744124595042109608895167596904663352531537682625902165140226567257638432905520969650822679888120302915328927925010644391820996038822163753766836421973658374259737599626029026005494622850679966617921953888615008038595986243060936842154054891683816161094277354544715187199763480263947202716269469608355575539216476922581972182958966702940939885160407258853745904709532177062210285670066028623629844708404501555095602083968683540475065912486635285786090198798731211251000306415279395046166560719755287222148330170733612770578744132695676085217085850489721281839447061523734890980383723708020314114923982937865332951858144181380830786778711320557090292916967006373218641833988799653845784996459808938404393671051173867385289380950806089790221243030403890113898376601756482448322066401055264129165707299417534140171511996818658494650227335871835036831648332550887389995508528804579762071018276936776128836120003152588263017485180940182677837094650465351717189632182435808212531486076462040957919787171633645912698057128655020080078032853084377652893329142939998783018559715776523457652382359553660291629067050715402204449945607692641265043518388206803855880336668416288480749973260271857206645834393228073052669791673657542209351344407506268203349979554147854131298850429661290383660339606758526128545510754686716793885339578553045504778510126341915065280341552785322780037342099838996755476146388015984665637309402156819433149184247725215598817928640097817027232584316371058116935698787452576634481566159124619039197070221227644057609893189664773913273247539358002711653475963605729394565666226733047944689391216894356497510823025729174268989615925022630244993882004639182583720969445961625630365662353270881959140335491573528691668452715505794124844710084235197950521501690122242530275382139443551056122736972523021315766757626961793421125607934243063331431524494954586255297079018828076102043201025934949635689378492358269455922057039032569466811460864969373884197774821232663972149798111605626681286489069931131200771057403705510062928462359806439696635223870153580706170644499197111766849551756163335934728919338354932591654183412613641347786048104428281215895410399345884521139032621765961430167656847884676978649488746327138170626574282339469653269366435469648678290351366740554777983790614171261272515473136698546055723399116378320991514645872208543970083283849312929971403358788085567029236759376923395340050882216293585457161313380885759118744882174660346636684558215641792768289685950498977323948432541202858840199747362310095756523185616873471835610979793542647649870788651486341722799318851659190043278105244235960693057133285915252976694542059169740594719542382393896747809396316323688404713304713817657918101382100711844400602566579845904181612037540885740224636346694149957753515640772663582470148977381463845324936165554216011049394854036068124828696656386950941182025675953295707202691505892060944706572868596493002634911720285678526912355524601989223934722884033286978376001943428214746960941766245396757347729109260915255928628427914397610203766532040742508722944678860254905185040542637492946781229815970106607002699152524807753590014934984699754387524871294339631101088702943592555587628370211622223441451716078139387472050561889985218957696349176111079455940758839431939177960472447444723433856179532189245301147695637764491274869792467001417412056653868911368561989663600848261330081956315589745877435934152671833878294413058999431496914294674052912273661412308342076749745910070733729185548561093302996009052442585345141952700079159975554130701721333734158757379021992272721714579636644613217510228005489912455696672474765871409225515978781872117467665340203766735588971292640579184780544097787096810932429799379141287344737553220900311073709563605000194060985639553503678371381675021577055288790102693584374280576552280413228664371511339225401973002065655895009175851299790454144089279766258810535731548135109209951460134649838140191425200307875206967427498682703476107914920159206743924383422100921707555127262288180017731781047866561478540459829081572999750833400237945821965611468565934030331190145974880821284038276203884907195662616304081650216745844604000362736017291558265285368565475647437073815263206364781015141268854776206010249021140269829596800456373942851966482697906002181832003429102233692819184486089247893058735507198504260162658846660913120254401628240794884771209632234679883907547871693863117282025088955652125321361437359669963643273872482739196921927042536671392640752545877973112478170286345998694643415195257929358125411645577742102166508769595349209927512460740637363758811617761523507261785213004703266884980397668074159959650871446397252506224900474734072885451455693611753651165726007502531582509295148996400161961613246494570380184341181617022508242186746741555344383623579809901245169449363186261178959078170133228868571487191915424388063477873663288322901544254259538386686840736407056282819349591635062452622861910510737128248336629058007654676808023543977147188511991775880934386785093024456905815882136936783204763827450793657414545366186430783428489631179212779965552366576776748812390208472070029043638515097849362741843020931987597223794579700902121044940866255725749857110972676436270554513869628962691386634500182654644019948650208535939253461583137916568063763446812859888962743777156978896882391341069969026871266525557906472084288486499291878265539839693084971614098336331547449808708365277108276901710362123201312871564241172192441983373162416399309736197178901384965896968664521449533925429337507098025280598600457028083734746724959427965152110204991811572341115896949693332134990439380294218275257123809291714171184193060996708428856408247281996698026948504845466396016891812482582719736929718174573043368853055756684741988287437547782117695283915567204526424229981180349379067010282518439251125975188577610631304635359860701890186533552316408852435388905100749924152992362890629322555320905459416731273372580129661961762624316509418504222398364461035216595230339377926658130457252065870496115884265798354384796238481768765703801968482509784035383650756923673501769609625545891377505804518148056191422338907966832624255927553734076850447274688515479639295659327274797474337034703541043921073838808422648963019720474420119935504463438421370695209582205994968526544229557764320700551542106070171019175150116776559491438437591456971866913254576650335594070576175588804978295536152357317933769530044400528270256254325158082358786437624174388262002778804401453590054234243773390092947305597924723477869943839161452567244505231955623879088730410705688875711101840304379862190945106705598832494919336878955863337148378680347918740563458234224902041019541290482845236057395629044848741987272967967136878683764509648832932056777000462420129002331254022656584791954124266959665355810854063663824833524257374280575324306390676474275017713111558292025996937092155886229638957926934917001236432609105224834912801035464577234314616752497950395551369003119868670938211022255208786864262452138617674267491315790223339402192374771929548264581792502908658890347374257936278177696715187389220810716597032744598610650109284588871376191974884269173237320639421244759181440195626499275126689717080659166670127735928029675896324395178279963446418068025223594866053498239025744992816617873035298406954790695879515950465634738017812001629757900502612532545440534937719784156994662655097462672505446745932397331927150510621394553395952432799995465541859332204578316558949254659604746250948816431167821615227058582993431321335232374071820114381180198358631964944507508455772618643127050944368988345136080005915992928725437871216684927462336711511850869762512940694435388757550757814962346153399297541928971248670265161421956319903362434018630000925816879394133787915302449581531119082432518291841409327914757495866569856240721937436770618288186872695281999376437861698301755191333896966852732608041537124947708273140536693315576535195809140957167686458789216611633342792894938287705589193636021930847973941039529716965003337823905460473567241543151615361359981916883932671596627667449647254655266097560375555115424003465826564444999353353538695501165188400249885061266860509985014828395577155803624878902745957084584549907630645833077316733688543352205522556393083604029452794109951289987193780125283048711420464424049843949606020936823842440502337299365054640275961903639761154044045610496482626971856923501247976219738559575917494185955168101423090762451580302123302104840520559124885623707644541366921227029050700494823610407162451534861495400413922958891630027950435737964091163747313569984689305109751070107014141312538018163681256556941946761388923304104667429265271012731061984818989413681596185126814478415478218736831796540605411251574764544480867154225056131165445507267483910056455524347660989482638593595081307403559897634852327648260170546769891572521705478691494841069386435868382830890383846597130637994230881380694845719924395578533341042734894469378616212719533868262499680135813231402787827871792304344973178999153055267121875350271772062656094485770078375378021970549492868960554623074677177050648466665138365258602344980518108031910195266835396193437358324269828460037909676029481697761225953167730094909396685125766036157529886963448956797655713020506779323643261124701881807370980604381076641828299418647574041741001696670456831816775165542357312873400119620856394415597249180955140791330201371937069803603879478778706631554351258739735700451615576422328206081461854841964840569351281470626115128148226561236195054859933289532909319338913366110809408377174758050136918881693779164291852230525703232238828328477696530084795057406121924015875389510740117786291384826291925626707017979960195685028237008728840870447638360003016979100500283984988442877596934941072452268223199297799221663222309305610394774436930674629832167114939650136854992839768984396818148791633220877174973390088542089183085969690358793402808415305881514441621004495815440147809552393530407526570238514150085161889493587547149646091535496820840805406114829853434229726210102462915124999868489855993452528140643786688371666269209920432155957859760655061512982894530212388280636881145974307350040334003385103746907687154959941750508266864207103491420937831184609911572755339768703731575645180376960354062605138361539806810084865429873032068932518386954260874652527005900394215432669271920925573100580136937391292787237170228499693499346048044559545803411871135265007081818642530752182379233059081670589659880312895555727959141429639741737907293690311338828611195701343598348504767714691915984483085026856850024370431517793642781478715582811081518545054889533318114340905992711684567095754667253895764731104915444654888925902659691826521238162568321040986682290131401862055306114238620524502632476696694970045918371778167125946980968523686728107338380505382909723771347181576706224703525491672567439699348995560003425683565985586264968452428378139353260381105330774086406274824722259771282355797603875825453137873505769060380181150847550031637395493711378439051149896370233924272123658710273060002104688829416921909113520283662980138717129842191600681107035771310182983520274642414783466060497660928560226192956893523508191057853715039957980807759812358262314881130980566353005686197500462239393853904896650418733840232953583946315292932399970232714819173785169676126222604957447234439205372637612264126736316192018094240557425679598079000344782352853150227265999305514367033218837747677934612035103680197963780426174823131468922573679778250306633962209413241913013798948931259085232842302588442038236257571522487233702280248962088961191389448563666310028113502296166027251236466153008009096337460974111565770318702151775781908254342806254562353819715258286412097614847339094564647353148442844362989081326205468359772677636963482202465923350164734744640408680101287890662126893768689348597688038762988308459929140928186242456625592319968541555881862622439679856092747695787691421240396924861466454485162097695515992716793955294956208313033066949143355792271707711772346847826927195959261123993419863894215127848156314734720812461435981948981986953738876733092754885776994525694223569165118175145304712672444161199572933833418221828703045371363486346878533339339606186916158292955592825881005905125883023972961525340013914335114517350649140576356026242362199140335911452539753294965896208850780109947964176006753495389742226667360217908383546289399066483067409240482572360383254297315748323494181639020002544950246888955976561916520998075273425655759564449341348234028776342482497213160223064625015216430099958156223487298775670829344639246332444993701112858454521236747640607844878014008007692857651702256945941717727826952291234028578162267262865478663475299021530117320050988783421273738569994670455623871808849925532307557507380431606873707795956127760737607774667501022915665441991962916421297155282448944654561266620020960663456489037824768656192515360562518136552462127647671744877836472905800751286215108043403187419197571126524771861682468743973178151733433406162587254874738011284278955594499624496660681990762603518005031431642936686699822353274847642323065343985571819792585869743364179403991196130973393150996100509620639295505783594646901567183478218732021144379976434961471417903969378357121978680574074037864224481803877971730979920313424269102370492467363907410597634548286005495078189385060881034221807834184745384265784699133757739384487535357836576899500749034289901311061910186346611843758408307398562304081610723095269085939416147856075226566875135850809396750503039555170763206103702924692051974123366779770854107963456365866729163869579416481727095195397899818482716022913221810692019625790334556527757168457365797012488138844821611200874951713189862846438769872299278672468301051645071069381336283649723278744590605169051798942295777129065457649872810664701915063950342266637430953605256113573329209455849039835712553799002951291818312892336260142897305066373630126195839465450663210162932751689823399915139334283367669518347635233594834364697260621213065873911682998801422234928662666258315813930385379823664050142743721774453170891893406328534811213890950511957714962200201482077261384397165894506685116450236569491550389693575556347062770075405935406169399033531054657393615013100449147584575061901121291159660786590214198342568063196408137708849492598393161435883406737668494605385349627907758813936218408251761939273263392330903525089146887775856639568500360956319954506176255331532769349242221658353989303741028730146767622589174026989538909785833456284866812478300054098736305438367448227793269869701593494279104663561675277480248066611554141261995104492747058100961766482567337975259502437539316079513348146500187151729906319242596438373328342485550089422279456347123045563132544280331401346626042586744733663694391107911543236367239880610429155423601029210364336234468741250289417335259058544560602771806296737385869835996286501542361400646440498815009360219896994080672839147703444143126128365666393580325550241386317667861339975449124174582724770488598902670719602674863713847880538487702781516172634084246588743719557518222520712237229607844911176295751498455706255749662802509043198582632112156511858896900069446812861479998329172515075483050785981523757633109339991870475985051234611358659796533752459200075512177622737711234299984147372860844647379587343611849302444310327963311639047047797302662719501908565399048025433461028532630363853772912827031645056824761841210776369467889775189747251664439465872903736217525229449881712099496182153676880259623855310950446267373058372446211973343910821717682417676813505085655507792426101078766577059767986734044681037784254157660414130435877479599990903293619059077841315031903456761881369861399424939495529338163902845676375456769785889582013784308806031806716257706004476038005287571179478327598464505665737989806031334540106825839299533748359417408178601914779761570185101816051452230678666009939026875052843276991709764906419196676291787185709993448889902991333929835286743392805435913471183830191557396836060056385537654390486564693456258777380234865015779135403089314245679511668628329148231525846545361704476260443698516612650587387231899614983570158119034446626707477921286459333458113691386794966371297609048302533857981784338997368417855461676779186140816993890202400492136703747944745693455495255818744434469785149486365934933699586120616228668767234233764640066020887162165754153765517243468024423982194500172108020126465292885306858271008147635989193988774001283651936553992873556774285001393898393653419210524751126359096334517868019769555207595183720281921256487677663598827564916402058542441881956372653103368517608146973719558197966533810072181322298798578651997476804895468997467912447353203337848856646127132812629026955647059836465778082245934812927801395568116411254351113547029677219138728429747342333033406602624686920483402091243972408039969111584991599432091745790686407386543583305113246928967556110871624923748984682643135566582328234416333971741814530122174156940690892707590844124239594044413201839621811997668119189131371329191884693650220833762242923455149391555057636153068556211099704278925179750693759521915382068354992143804316591782135504872476867690606969881303460598323055062660784445312867291328959921683670206545267884648158502521490109090051137822275815021593225683225418201461451828473453660781583311701971384739950473141516517491901891150824811532519461338904523914680763578805411830553330936324422157065258140146783730213521187624686365750581255810129542558370132678713979054116854953052778499654239410477856907990455139411769610324356385400426409860748698189781603204606919412193892394029671759230421703023404343481977402747017020147949855945416182268873643080892881896397260837734852606740244030435142371629932796522600493447714599648619721510189747040643436551983666299437048664608403958651387854514808670040106200765214473670217728778147103608611030022624138090474793486846353133120008590460944194224345927766096574293578122903862234577669962866843432382917431054279402899949711170139600466435453937882890759934064636997495548339478646642379093439059436819931702703717446757007970302396964786470629030113459101311500968922440902669270214553346021390984566578796913946887821639885275281360174457846800052430239355980178301591434794357572752632527510902861473545307718715442798199384447577953678189992734479258019959006100157777826084090984131712515154825121160503966352457294857923821673178109430641826327990424861328287768018974520833049135903697331199149744572601180038970060756244522224421776769045982817376715797699958441177860899784946090288632654024649822900492385611288391013008752608658078866384611197449963443708332876304780492841767064699205692895059238402584709301795459581495238247063676182774669705799100022769845159132722058526684663190572084158576645021365626085782199596470913537755012254655869629686542179296898861913297418396322894211075722373947328308991192877123338325853086138494927704060027750514633612269694450202691108857977827368886112036622329068564251479253576465033525985317249969359183174326336305841898560881110905419194309182885061598583025013306172092789348616427611998700824146499936345442584119400726971615147718862941719060475116697270873444239962199257158362668968157150474955161388105071022549215464010946362021010379813688338942608656830469754550982723086629923591952390569716151042761756518684647728898472866501563689417544100931332884605044810749651579125669751153930951209921851768386485334010462427327977642835880591821028082298532217418497613599986042772979064312228512847073316108815244263779757720980191862800612448934974894824132425892810795884209324541155915856390122866041369294579746785004979442589183977794362913950354494047232361637099732148099885411054196499377880027480637046617247008357058917816394920784601428619881227015757130178146306491678576469888639317158136201675154332243733434648513001207417125851330564560730412316661529452693806197413553968128523566237465529382261177867443396975246088792216066214769206602524933609214857503307126626180405647646582508592063177323679208566116791206170612646468253560980309603077471960717781368522218337328907932725676180888426324135492882263228569857803841717317817745610572651785814244948435199597445527898287610258414192228454342240454624462969140294005214099724781034786480648357029616276878172260008987181261392129413352063169247747360461138063962834284048149045303219263226033496317804343732802472934061175180018480871574112591770737307465168369706871566331381001648468121252256090328648231083365412042497525140941883645696910556418677462617885852068728579067947914434790932566066943423738507510718534953323246634385318758807256109868335039213757005565483717212139969136681976907203205548658799806552751320210283339763572759908253380763228377162225453434142005397464015219867284005527098282045865295076074589254929891804027389210927566132775639040610289436370204160358491724168618303268545916197515671827709729369897290873995746775208717361980984712562845633853525399871849898008276053035274640451555872862777745851837334080456519443204239844742639210229751058323266907125529530850516262815165899078127969197870297398817449021240902729850976357090638097216067277786467872421500645740307911060052549496514462515139047423334782038367973811821626895012201536147928347199028106116048365473423469945088294189625958986423277610692022335743698625601504634085229386231934376549648284453808970469327786504529228390641641778687669122067791040951946760932639305281514387772203393921375566936933897756527140535159826687971974025515008992901293015347345834076622714626256911652117382656221899839477806308070598433935959451759519294407447740744004546631178667412570624560858617898048064995138687739065922122007812805421653686585978535624883067544645314888066940843485293447053641999188918677147752733192540177731470091248785308660666823770232743256461292670360966297398602723018944948772616823158955850662538939618523964852487130762244771318040157916397506806325261198199424557999687832797846300099500538898000007011600274660963852413487089611145492050392007561061493577754746452098779794693295522618821430360919989252891644817239678855870485411582990134353996824098795747133100818456242957144465306874867504129038929580527041710339706938159820394277906452829919598299254533271300239734501214762973179943450114625848746316401884885107431355349516859308150249418572727282131794005078533047109964959145224652617743874552827354058635686056582010086447768444381125176556371546427649383024220598033147424240194930712583952288080549150775748570335586916978630047442078066619961607830931626372844488035546413334408388413341617217497267153209849896429763529800023741663275586196155829110399956812194286146226744508238839115567880588156003281127590607006667597332166407065503809481114133747932308737850385789705240051042812640375555995476178167709468219786342875337354987694937947127455938480296592237362686653610779093862089134358689674992303005655871594714756613431175391916942778697902686966288145034588161049911585298739005697502444753341596668689131737078596905891253819674369126699218522826432708011575520974894543777917163604083952375484653793127608811113192636497212789721040939251598273350095082503867530846906375342264423683930004689920377179908518013084412285962237468851445270076405648564210382240420977111629246492663237840178281871773168302668389759751543412193129712161767174178738219763167799016671631482836127554802975009117697663889285795839724963076406939336438178533419043113839108381024464303424421210855155399313894846305656825969458794664149144804988013120403050892255131510326559178710730813743081891738914950593676642815542971943097488676920277219356674451945991562353004327272956097833691472503328012634877909284112200991360141873815436928147997702427964352270165536666191235504364485584879261519428265729875295269368530988633424674692066175845596621389996204760426303639934879251842696460358817015060851648253982757647939175808771355162343078296029706654762894804467945988382415503180166808354515981822392408742054588504491885691293658658519721031998330809060661057515125280433259213133571268018590592989466345150601670858024124262443846130788594645219659954870329601876676554219897657040806946175663629156730897941947535995503826467484287593680573843850903621451740103463074685541373271663935650808982710872551430062557007972154886225654023303899997524131210703218046614637554842442531893544512752189869820591071081643286407785976381228422379500638528839489820125520864046718123266530842016777981431397020896806860779507940613955012577860771935549634252116931803042821470097739177639931523427989466581804753881322160631187303826148704989477743936881209187817882182899814003317389665878146292550345619404514468778647808264556099771026497737697301830531300758163240034624873801381061476913510495602110115450050572636246104717098657674716025234213277450038411804403954438225492113385898441628788661722970498673301708307096315353867100283610499531378351190933141095930294565975454937387686253731523181548780102807984623708847543563857437780850885419186715700611975463280577557513725129271129261712734797955844743286519768413946016202366607409611011854585124975433301096358143482171377765027398959450496196725246340636286253789968797568867562255980513219287661131778281218510224262435291633458087233428814895079955303212944655153304979520927861881661018914381802950715928914567852311561522851201528213908160744531870255527344415858397840915206263550865826913954406407700917824184575511704850790953833731651257638638710068469011171206535019951443467527143876422463694583308531152098076089307234454586732959264848606295746992091620646692637156253690808522824696721195438719586723401967474507992755591327010442869603895006724656018704771803341294644112751523608464049683650769076461911396182912642610570328375593358653655557116561620323098538715567694071006107499801686528724113842167507333301761757231425908142256758386869045252293348628228741326988138267954375360006594048328828803172659308573176519505632925999519117676127519763949883657977705894371349647650214604246662061976247444836413634986379539314727469466504663585226913850736312829044383868237485008039868503155344789319343669352304481137942172147829229217428351672199668689797778609114241844387811164154185103436212422134372307923564561125589386366642012161182076292848932112926996999314962924734350903441599104329744480834721802104430104694596851605503813632090111937987500369674821318564322839461394128674829006538118955301267799432151553641733081682485388645952887185380365746030241953125564123687206200901316917713004814113014966688482529146840288436270185626617149327981426479317879140095745762914059130201881549294674000423374575005623440712334682053754313699465413375750271129244884515214708143783847370977524218032568391889789056716304416602748291083346141587691415207695370278483170699763905035586697143102629413461037869232162871515037714442342010073753379252679938843746531731281202296327656427385489727100749198430248921524042402123356696479066606830636616750475749557938771916232265312333418581829332927092051431280338111102505889565561329776283602809775636976570723459628512596064085013275111745504070423507796458025491778964105256588229097361017578073171621421665060600233402451682811354483191627872638803619609530275817315645876070690508804366484481434094805640056824465819136282812970074585066811674317006818201653045119543630855596138393100831893240069945152745314504937128301848852874071337084657860786201985688511037013680058139255318501802851046291154448086195529074230345386080369931680836975363535292035001110642395948074579273350544014921071918064096821193775488559743100972700230484199323356274400892092759549657001774261069661047234383274715038764555977202179245199630103818265313550596660513453916323833234331183207053816254143829636369332543592908647140599380598248589368235546313655550587067691333193028979627561846652445017682489280815380248533715072406816472002081024579946817633496631791865996119729186328278585527342512466639491982936089027383873865469589348403746616355259255105355915043761298218578364096548701457662292488667301981095629037948354501417707134823772702470672195428685042344475641694863787185499391437532271011509600235273177958751052581723339494131332691516156665595946400662518710548760997314723792907751023415154658717013604218433873072529417546871760813380873769676476894171467562675225338505281503338383564571598938152665124388983133198497542859989858192936899520361463555447982033367196796221430144021709867924727419213555316957952006357105812705346658328046795369552058685698381128859132266052324437765794970766796149548119578960150079145994616712520669557912230996440715677612227264979196045017735787742505768397221332916301812836349074391432907731053962706901596472203044663493314459045684507039700672473159773975497132668436068551002627623693180238479989106953701275139357063413550812463542239122537439471728386904518628651628096982991381628318491115127991633766119728799331727754141547430337698572627993743509363798080590072175011178109338777794584344364712126426065834805877962017233902941444671406936837113499999998726978179093063698009095776394175609169294039807264209992905667280817959115811391934955756542393034837348387692048220895915612283276013181618680535536363731121262608707878429838402835679682486608083154917714998676345046375548342097670916960726550897525381341488718865193714646080702851059185778886688866559884337999244558627913880865121087899475001484374301218743401671768746726679332512594510274959149656415038493107471000175430722056498160640988480916447795170752223782234567229893061786307767589519474304346029440594121560439958071384791332226132116597941714242545471508801364553308642648645217787648153104966646496432613870820132450393673613975158118059101847919947577915644375905121436936846863208607762562381888611274137187392194488908240262777423723150902719460565451773068904588924374579220800467718185597216866530027667856281514539619318323280329760922858740337767198972767088918916300737883444576776094858749796952043869925032595058385502179734643342229112830290295130434026331286432984834011501277353122685684040933261233951759458997018171087506750529618255449419689145699466483244506851326725549162963747320819353386455449786910165914942765582317902402725381307148625412718738806629479941345603124258717646957892504273806951078722827016717306478806508684341136597651343914688546705237576297336965684099873967151293444022841690142888668509818407458787752110505614354275714428635350846083260798025026156345608204911893865867301108758274591310895760656984804362199472170071986731797305234237712774136347851947038138103359972906374987394164066325438695434127070867922860702216651618639518153136827289862805846093311226481450093588186297011160495893279147488641634331528606466349055436640640802210233578963354640292406881325938542194525785080865911347430706339319991044331219212438904230972877246693492211561500340625856508081787958134631935465516525230342646747643504529825698889552306889242035538989198449115355865157999227640438600393876697511273757222762077060979640143968139947094937332352602210952927318218456881083731319124036117381585580237363784889880260366446967564655878436145051200198218520583750575381069009424422797203761471129593509321435936131643952493138673702908231483007678077160693240783500112027263722583685912607888985114237708189982124770655872710891831349301631207480918239314153569249537832548172587122831207492360799418069628704857622969674216961091617112168856824228106547652026650728813458236709641174269867075897222773452983968293983218570296638896011100513380954339381193244511711587209316073662297010842859739094974797400522205551547867937477785850110799890262409116548102664160054082474783261536298193625494070538599071745440903074490748517744576943617399471638989991636834668531153238864023692302832815164283173600650818849576258747113110139821264502960929438560495159388556271253417588493997691955998116900856505044858155440617073687997885991863158448384188199827007335667361035478944948317771759481754955562057069505149976342022980732010043722679528098209303991161861883130977987627790140924079465021726837744514017630388838248758714239647676783292079543332238342195624256948307417136758030202375934685996511153462648643479963796583214305787484273276736996045413216797486794931473772407841861601996871640612773329439744059068668446270479164253139755044017284795304387398811862962142575092239959756490226414447726054151838320577438075266756215103593984453978781976286458725583434942554458628780152925483561606750423666990798669020358472107571918822875833979191122596843223263807974923264879409942551769688384410149575216376668820181493777097686662772251441932560423898243358365178631127665040363440695029640611820778944334063078289762456169822347800863575247767763943731956801695249486044385254308425875650449976675153340042280429922269610803312463317985154744456598393370019078247828549779616844262062727485639245572085057935825247850633638551916216701675068314460650084731454237847783097056791311498472805800383522923458722273353688375504704974665209089231854690214508895744851766753311157534324760223063895817597559406267371968051179279096907519959617295214527918684588180349680842912382563390568524658611766845841249684604431080355479542709638649235132248491348411122164064557240906993943600222534597290031079776976372849236269969492290716402240127152277662204034321073527991776490784085943577850768759992989387730792929723635697371942159642618749908853383335951009720112693254009519181235030142344217716343827729710851388358850375357538697270591993166513977789540111875077962970611442048234087153871377473779402993004538470531881078504141731536950529493359183363908020130163775964373081576788657165700224570205416322177777606828288642630862847085155123559098702422708388233425824023035886707671334802791486982840682981938183857807204857342922585930204121360085655747629238710934420305947721903870191020555478682904086799564082075654297983025035861543467953887512159947509226552079871100189222212606727068610558452029053592968063175030416054966460725506590471921539815457707536335379896633179834546391869803986044988491821200497506995147294862281512658150443094653354293395854034599756564218481822148687713270596738516618525475740419635824988775587534207894005065228388642146407164121427504351114954323935795885931921608187483606659039476073484759817374096180011418188400995105015227283092409655040925178092922354838961456996473071071595278129905934091404067373186423398046959473353635627457303741469994026535282383131862116501546591369648711574833248484802397851442321386389159656496499781690894967811368974403545422798879043649992394218164169186024332664328488118853698316495614814290692240977195277986962378703181842448076238007271186311640426952020428037715661666826552764631186846759951914508891675526105306975697038852461624647082581181793628429229565128848325347651258269515995958166328015985422376697778459663324589264553469361418912122928883338910661697952328928229299779461890385206214187540125425190856064459277687287415918829382264224512829743595342606228672121773546201288469297439411009303867839893260714588910895223974785140922191665703302731450163013965672732338631688355272435856990221253689328557821426455022572434382749515610225894872095838630496627399015437671582027397411397280138434065983831986148274477414139931627844650861247357262678062994101965947403002505184242994736945800100905243422093096865962744432627549692137849944528851746834215267998629234074248479435227773492263164827223431174765014507822151101064719178213448895542957386503956407544007173895385433349568889178092063341820373866231940820462873431638594970490780255005917934418321333771305025681312103553620041933984267151883658223054409853156360176543702348166346190346371263449422323033841005920378906007605026643888995386505144107525582306532142132970082423401851662883812233545615477598033405262652640308611530728158782792437012052546176748163910346923701153405345018400281223095449796086304753906208409137258509677445317154986156759506855999095351796216692234535219154237794331731704837100504564204301604493259959049670646518979608998832224137205947455639675856983964644502421128567960435709683643963393232761557563216940577530298645517830959227830199133660894811264760822766063255427513539892565573864209578096716318159869344728033530552794814748092545719618464251453874642336577859037090605699728008172163912292001527797672395637667636985161467707058947035442637064493248417009221598077800557210077688256921568174791721437394452665020154295421362157801616291786330572532729638770627699652019066406878841057048256445384643603488072883342998446383771807086731784407354975057057406715794514864248207322983307035619154451169530813869467364478578992187982661699375176139220161110164180745756665935958239541199075272068347375222987979159433846277456347025404443607345088851346381683554070905981274256426545671342091173130516508735432414766485060234469615335880750292914480207226091706135575154321527591115356935946836220303404064531194203381593441360429708515861624422144803221220650598884728815851117993961548121728755811593407485701819850928515852237112694564880724371018062304677513552848162481434628659893633377400468252311094927311580466882618969598742186452212565153241538545671630651947049360622481922273428858413028630174064265778851289340180386555760182113009908888005943950419510005146496094965850012853977334166241890390966209879361939974977541946889950157223563371746130323422686165771267662490434795431582749202777068814078081305731110550678851419485070927045687239447957010014671769395918502817492306394356733247305606170044292040358858370019836212291151905960316441538295545082031877259627068195730031098826529012461792331059942471782842268886688074552474286394436211869404334439886314570822794814258417875976214920656222862547403858256955947651846858958401398716386772084241953241038738015110325211134176635065187032446429665281375668343461207454152187144093385986529643367337952398584144559349979559418174347876590272949091199812436327736546116985069041656220986425652547378446748917959119226183472528487688695400617456843984839486787685820161607172430734856614824882927636449137710107974985950727966874594708349084590496568762743608362802630407226501581395705658269491809919495044126902965021443249688898380996970058059023846483475801956111048347141311058836355970663091501664664021242387122452370792566794800164629412641497109587507795595625843900873505693317642367642102843002639706425929209211598806786923677970604909826624442671964517133060935235279516514060418944250376151263461856170021969923754512232347083243525624158433451604664352640027924951723368358508285523231230136093740805031091674571149371406742190318843678233687029022982374998152236326021087727025649689080398185464263189130195259818781885419407945441354742999381346522890160706627376581950230329252179034693934482154229796445890698761640983257842478901159677173498590510641741583234979987641315784104557983993377244722574701496764495433349053363009212861680081919205127885285684458815526438203339969488676706217794821315442506666634677395058694782426046463879573069433641830188457848190088680497439829790628523358984808186445771086885822983350943835005911076365778462128516609996902672794952082245953689466436090763694206202934366800267772766627262480070863989677219693613546904026146681992122066551955992075327790988556176764136180278913925662932830654982135437866354057569780143801396304847903193020421668162938989560678908247300586850446908966908943612448466923430139354541357132325155436336171798746726278175869782844033672106791712863793403487943387184730128639602515171075397116799812745061540718089732739963410309097447488591721671309967904607465262820988026451951934269315190057982427246119531094675753808281010761399987300653909883611781019292920507075067325192664870115636450834286073902115616010234649213844757046217276538611883327711657018800885219098717712908654257957499552003346504059428831106903693218290715590389791327486965486072947351194428038058451368333263739410728788214284559689009223762264160470423405770562250888498120293299827423824098447401584304639051451255324086313511158929368746462363178515960214591095056398508472508534536738187391244242386050793257706730705361692285500733339479619866732109213521158139833214614125744490596444097194982504385256698100501451628304896210619947664056740936745833337407199720927409428249721794700642492172876899291303347140914519153173828385625271897927335240677335326755501184418308982696511376123028294475367526179807191282488903784334465845229996335446673361515498544229753412732258161124256112065263987770668010814324212839748640491445779102273199070969965036799170576621559921981823781941853836824686518308971900321427595498005793480544761102324539623096037472220462531409828382717948903338745721861827675544484568768692838408656205324763225779204042365703626101970299387791104696763645255582898301165921087657263310918024315382805349514082109643690231602901510335676695030443614883868732308319966090620783894796526915475975801582355901201499403449206377007266693598722699244427113170408011702538852381845807132153842817391150793847411719723996199708649400677146202658772480480195185009705892818550111239657941693539007029289615300366778409395808250977535527793549541245886125918786000055597300117062391423235180183117486515664475410250408281525891331418749372646893688804951953889923991280300871552649939184382029177406990564094533571111597253214063341939138040265392689953190448401613273218707401027930799806906178565862080622758020184883907683792561354495295460515309181654540143494111103550709373657330224383492342083060004793104136205404844649435281527843912331244071878119121833851575607358297916995408649209531947964363066382863222161513593931793191905901356543122314172324583108893170790511651828750016352817183515644619925787815840272534621235275836902927643918542043440770337125053244070923574638025010210268775510345934535609726694582417773179895328688972824641378521730713792465480970716092689285684818262036723527258417454886584308704173477227561017026807515146118699327953006779084542800886135204814214219513626225888793794792423573784882575660428765409182657058865129343782701533331476765013874420290924321821613848863956468053973622736139707672026598138054918784669273048043747807128685710930043157361006064596376590034173518441313343026110549175186097260692495268104661269961531879499574361163197014495722838067055093984782260243968780268253395953018601668758165832529219764537915324168958374711501691961722009750877721689683262282034171822680009050695429226327244653671570231683599970541899181822096888644193755099435383836661927155684487856868509468652226210213400286703554350864057789217014874491963732588396247074475931053706980385953233594596526255486712639438633708313434581514878906899345904221270453300659763763028996757768417323159268428159933353145359233559860002465637809132953981978144646399623687367420776876405358241317374156984077358046604783109503872713072600966146780224884119148931227312816663886002171612551223749686910011629076638136599183043840182649568913832622606067572144008315372138593360520045496993667254424765814395808511890975784709608092803424134297683832555359339281772118649302071630318289795663026226280147428475351259854344119938327723314062107174140025087635507005005836678399166589210258218851788004032072709688800396447563117907911262118552361237628529477528892869204950246121225561025616656963637342384411511177302950680539420290156831884327826401810301875724784609506628894165424717573766467075310754860833685506156442372609243195951530908659085890201744447894523227419685716423828511537879227269603781028115143725909346417934866751628787723708239890519138791190515044766808278021337211901693725536702421390042866622661290938005567793065952014725602969587129662586743190682960898576856873072561182891678950291284888021513640991965224913221595721342518793710010311506356039732351624919768359803938535525564594494220714576062760162539551826414349013500502008247895243771955566232913974067678873941191588760216069709761556014253896667216980898305283550988559983870526703140590113779891225366005436901793195298763691342364046138335008377852556958944825862329664630307722196697404425834134569077838527090975017562938794958798367185773233802659768276151241972895765615267386608243911243526423651485284040483586824898346993484176514703701828075944368798542772986181868527288311511881105276078763087358228205064858105810882562321099284286544113505050171690626716914695423404176276177835849705272475959123766773796021118887927680525519543648371194274841360387262273165284878449862792194834024156353046435230578939712843089198706872482111762303169370515492849414766254973973266809974689639179801580598884928411436513462896767037971466080403625861420535087039485112598054568889807215006624541298571153973537113765522606071757175727444117009616164880062359333205471515073001144416921452447770639611566483543861779470107590686831494656439993945474118242714258324138633706261054035420980522903993414838335270901656337606507758056460086612144846406065019398141150818101170837742729549908974283916056741920923023334309274959161816169271768639504960069101037536788312492522005233735279955728677392903992227740364117824398263967659454878080497685667301248562716321343150884539820156317473510755071096850757416302336457922894271908146930170302240750671604262810284707209822867753101484306049714008774764065346449138238891752922887742737208916000308508877212489132696671900955264260305436031480841405297273663901866813347535372748538542599019229282598008161384035849233598675650486533807508960989962257754625251081709847117497434175345292678376544464537599452618449490082566941963122827844670226318591208316051722505750819842304906505363895247707829477169580968850194629502565939486952839826234213409681961598111231895305976729651403498495006056398740269686417950598908934870838803292655170421137568047618299375624662477747048188452443808012291827013185768222967668596777561889571830777545302676683178355631620208470590364310085977817549526024079978305439447970964795349372287471753132688160962620799604850613171210017930570496068050262410781961883882242269149989675662720307739167977929489659263584748998509375735736460376031403625338311723009468930025894976441239083342595458983724321142612496566084233144500614365304363531297493423621282758127838030240202410687084126371601867764552336148388954817211085303535742473668903168408999603610144480640126579029431413712755292135130445837580168460009658117086749814582922894726779567016069185259194297488386020977055808045511650526002373431480772718183304166227443268890551146322386853979438623672160547085263259169613345246210665285993127642684751295731218320205101562065673667399449691212217136529158351303858188987427085448044618978395637755726255065719806768803441408218007547246822814593399035045485603571868467574075355186420561633462286319571690488513511470514367832905164136520723491157223150850512223352050263198213261215960753007156182274475018369168346801334928989517414659294000799763996288172976338934002309892375007366019889270758828388275432283034409177088831141559879645419463476811537206751123738002804880800112007376732698977741886291883168890719632203684899077111741510266605909497766370830654756412514865031403712659429759014103222970165721945048408888935099337092219758641518492735404198647707449380384648182606364006043490661809964708556534572313580718114585227473200573571393322884229262494910388964268194729188146470459469743840478877287502930075658313185610634569232384751302359580096564635077311204652671745072574566570381924624836577181981539141822444570110136297917006546514718596192896192599716648686917370128282165275760938139741172822011065228368642990762314763493291142400207698503757164639696961152225841618204357787393901744725803907174321859330883577624574933703560769379046007727648556184229172690736134532596582338807177902933628328086238481273814990851549753820763000085654932183615985224905613197523574648527569565448032878181625902691632891671726806996246223176628298600338231239892802966108088487648558014887954156941472035959690913630714637925937001875146588748388640727977338934418642457908577371210927384208278014114211759437691882782467973121896769810071786804293542177019244658197142455071143117302755943623157957357475932020236930885661319260814936193496343493364820008619755671709727848265367668396581222359574166423032977834212592494060483506200078989167207560264679241566669234432452445313152098781464700992307788329704450322985931973798620126954574173127132429742764276937345341431497920867800142793719584495387741931305219974963714306566240379896406087611574657052590287207685133644287616798702944526624077737356251830294807204288117491510208799062889030216650400144276466211532897047655167117576049190457607095146415457527393115781262396573588327699302629795183139900992230479341059903668459951702529256553679117255451037495402971227003743100407221132976623497676774837658808661375915299936185461005188450379611930215576149229253783804803538964907793714077831512862059809988330911132340558664550522960772475822511256408186196730659143261706019127248329834405818612442167230056644437858528708575335295154262774559760055462952863496926633153194534618216904905164143641045058134066759948903859963300580044651151428759634516307885681149111824255050334865009762376621131825629164927572242341267004600048690900450237327288174387715340550405987188364882953354421155343179088214278824835603773996919832177520703150240209254346786667947659095485888772594946779622101340420500178472852195715828582359899500389408660828692837443767297861951836524441382988194822148438182102998619907062578243768906020560001294571178973117605427198342350877225080673448949901308761510679966128046845544731467520050379681811801156326261144921467232414905350114929837181033407400290430543719118188254498204728953300730384548744324754149822871358683341181712123024275889027779216967144527768603720080427562424708770614977177779281014378038849623380813036148524894181066516623534609264971049714040657175670924290613931612242170328364970189144587824959133587954273857275088730992197701114403739285771053506963227028093409789489587789574205629385050086355105901797931753488903656322529130028062528565642248868088233152224840102039391483670932234752956200267347440749351255835565129576190896168412338006025146385315051970385696739983104779685416534001620614182669274523195812498242225623889884941604824871828491275010146919129349050972887127755821275232471211572644817934957566646538940100060082346599269266189844402490886244901050811599269227803555584404889943119244988617370617987654313298883015958493126331010394532597830121697900964288626047962638056183366299129783376840447081829260198971186919906081379091169531624736623814656020340436538648724580725117411480789960055921390271761882868775049239346900052671451027723111829370878347388985123316696708097996187718906237824047940028385992544264993639440791814215328855066282901008651054731100851998623116486402384739058045388489185961053035769645793301086473884580631348669691744620474691477228085790627669358418528324661162145462151532458077788817134619348327486795730372732887446433030300675609596879285418457581899086524943546848852109865806232549744902216369090810925613882858204866416895687404205904920498376689509316754978411305347559672136562393761990212343739347584221494738432089886313944828615912237176361152657819876176696428337141816382246030205934770623632822866166645789849937550608737587641567361456296083974626577114154444415296475434910120143548966570899604984554043413474975435671091315667440656242856138455640520960130488523821618579092921974410554938592938350232964365258137209082851090891008374540012333176579363716615418066558877758993496900109854284524306040245425874814388656398633401939080227584488441449962946940301293393977976185010407522360531676056160877649706565142564743430654853328820419279899263373632604516403284606842142876216404324979732869720011567442525906249982660246057865025454549648311807149247010361723762006553251956423877635937224274419859022134997453954962587517500887109043408006531444499507744431713939623736514973796410428222655494955921206741340438074850660154789183478244260375900150775177484268283014503977319879704307787684748761197112579286538073775125984185942689723127891681293825552330900403554374252782216317380970383156709431308579862839682324911075330286293962836465409491037800382366753643255161724205768383999302609404969118114526015021844837690893853110502846676681459864009384665560983744662833158636867428890023602237569180996726569069925431496867618368693013026064059490993540069683558429298611214693781099595246631371833456518337855339799129962694928241571756574069115546757965540398323574034719475825116371701680184466265562205763592262669216883370745737692077860964580389309386118075526896304283358651800843541221278932961366385851325757407037885751252469220650194993481471568653472277905923126892510146158883729466315913676644320215226671417558296283399474787060171881042562314146190836708012051836389921912442189741414122870307440063589763733599076779719617838284708938272343824108410898336722652175868720773412854635257170767034638989716061139848881576181926244611512086666048333614887460604859465335175834831343554593715635733521847490413342905278860414186606701128086745083400782245594598233767144569895649064332187783041929516159936900461889160686465385718699719227447213117948728021484442809376850164747119545356277133498388018763373801359694556558746702803211551161232481695206078602345836455004964870504840915832323409832866677576478257908374937558745722930196985976852903615209445439237354380237832885925430629265414211185076245350788012102837934721426712305237763899712201930470850704189498564729711070104108527519442207783516278194112654818804236203489389592155705343052947919367191866770017986994894855615823736435377951174017759753068446362415444423588062019002776217978802582699381092293101268772707733896555269099781341796351741786794116352152216405457579694461520284070459197525821047605832207089157022325528363877112715623544620745407797869985703583737585440097395372119985067669068355362894527722842538270306159307601924305969400347202193757056908183768646715381051105106571087736162723565461624008231679094369465200453205475017059874737476857869232280774127946075145777482279312610012057559411785113208524059286543716349436657382289256273735637242677283926895261518297122716184116290707587083131928710575684158600250360950377060236202667465613188475984654334271662754359595623808513752962075083149949123143752856883143207756322465571094417649153008357543949328113400281639400935995353043804633491051031273077028964624136822294006627308890830157646129424669894286289838501253112667164247788203569874334528319431733092889055585567330995533048870292584901608387273108496397675842446808359901322859918990346202459846699521814662957181857442280682910067468063850929811761933469291179005515610095582016671690127683947713202092184582544573053215399945704803100979312475276796969157515258916196037941042547123775678426228160577918567659309556431292322075763468423697450870421613782032512751431928625411712502157640317959655394259552180148666394931466970233410622247829890810676039549184172169164774984935588867743223045003186563980575339057247085532244901552983502042014046087878050898748395789816893251663696083345693153470089799668421741365078498069228438176384569563820869378091159554890568650784613680798370380510999715381778387118446627665871974445513641946370234771950246651525451063256333080855288350209537713624689823384471326616820408363681291465512642733116090689370196827070421986864213878629962444942747120221274302322517097700450958343119370689069899620506460437410687227977746059261345629583420830459232581130802778305963102740446366932204963867994762670796224895991580149036383391935818424969713729354516832721833861207213278176138420520541117910476631020437822542296009865421508733657716911900017436240191918179355362036982170439077722319918867100761298629734935092365799361917509511871892194110798967091891760876240931341311634320642154803742081997344373643735093400265826693333043184481863946146178217281105061433582262071600891107193278581777596895026790531721721374570009221504144144303143239847822149926332153736100762005929697676455909677883421237295424402543330593017571569437866721704982966342617529618879397184895644501336431622844313275843796764890172713771751711654892434994343268535943297649026582421327660284538996862718587894838848289473000859581533469888655517792511478368513073259621400658666874161146506378213194751039808181417836109881535907985990805342110654415860958162966300390760163098484032600577308736580618600723033017506487185769698617321999586453702755551793313622475758038732044399538123339379794485313715569079915880143321452740858287145382970271825591085066053670912209508637880463426346409057434286565860819783740737571517562986264319270138455501731919588489909682160387360128116850812908255594565566468317831630167648494730808792396043542030978535636630192385124361658420204072863567058400872191574158205801283027770505025277079788016843461757658795387539488587395858886409196254071203646458091596700400129717401198055223679771965556861401421518734019602257794518654693925172764738706004697949441279369710520378496087266907646798276746887191502719450667887829011672054072520221690837438889006848781691484478816556289296460715072943902581180058750143060139078394916555332223706040584889425769867108737288210755343502614718723279143497019942752469328830212272948121931126058505843003359871752851706230718432465398985626708734867606696493013772116365194478493710114075161651619479470242846024156899398539929607833699042338806381053267918119991454286653985438942788780879529869754673598767247884378956573098204869135309719866471254207850660992155384830467430073343545500938894277579140146451691288010964414667479449492387347738976084813120007347610775092266035407413967905411087177281080024805932521499644153392167251106610107464879101023777731007923174197186461612994917816632226227872076806821531488540221604589811439612416928324252679502728450822330560109003533128746008272563198683329710586533864830889324905702796527208299205489002669336980726098830630913081318038759934844819022262227628443432348845025402951649597711821963144424288923802860754406855778027307597557205916018664196923796584169513918951926273094807739049250832872201285818076031717850872127676977847342468904099084404552068461754460800005520702075358354204885565438578538760956893191234224113552399805330089069404162665637943587958959440848774798584900530410625307640233078546299197493114169753163388591741932037295805016187684701637770297005581595494689440930015821080218347226711868656630431965865742353307835016598251983172899419216477169709393688068881540941359023170670648235618639397669627528566671228012383090804303206419348215210327674747907318363467210978507387743683809948045259828613977647784353852962108074416033683347839730909443595884999433508952910677807580731475877652620054394237317850162509131212712937053475961560645934308597106886608216414744852516567214429205219096974846031552455078198649371828825655936929476436345329966184226110328949768420050430183584512000522748773870493106045368707217680591120771706497185105712841517255053494644487349658407000427545907319229507192220420417256921084992770038790338488052090012554907861058652426666236707893033640550487895447550505206794606060500350130892542117192527371198833089731473618215309140834345696293649343794560969166845202213000040568726818571539202004658512152691949758004861535617263535751530547987754480397101073014745740235665647831063140203487166566760886150339849265616476182506118063573181813109104557500149119927361987257832196703897919465048745924971858781552834317462356109610485010659740869676730372999354239710641461581090573165395288942262917876483745697815904769867486887412715079901291259899392936154999679016361215835030445749154010452524166188086231570475078162071249646873487586214521292288964895321201172332706991840943498725319435423405746035877401753236813441927416073042264790712338761811284766447162657147978460807609064902633261929268448547695549546904617748814642861597770040810852783991016408768293339736344521279211222762092567968432228003627395691067259654131592000775489717734895495291780855441790602782789267593910449706044457573500968640515225370536864138481590686099984865571513702091179295621999840921569490442760389504513968502810113236580774046539338990525798340635779429152277573101972982016261499831654740573765101001917743894319848252568616691822335957075606290642574731332540425218131853416838468431212348650050302512130273075896487237789968978584391549826599095329612529854104108781136912486313724730672794528459192294708831603673682457176551091136203791620760584065732639139023241422322760502143034265368774999981466869028668878394250260546200683646005574286766277394571076392716713811593622905996605335121647359546714146688100830088257337902294364830219726430974019507883344546809682470451629093688507257938158910808057553773391454720283458599283582071695965522664289527987925553357924648529372230895204548276617891911600714162013049333251486082717770811594171425463069427114146088216104003631392130611958075768656804909873948510638596572913987514715285515890409133972477632033523781823847921334380708428120558722285347641854730351607034998223912734332461391041454751112036879699146507376747092980588348031473822172515217808235922363591301767088630698090672979198426150694663621397925281226616666319132560557491113226796056204746896839646745299602960648558725687245755083988870986031593395350645840465473580737954074795484878281393033616116849314828906094871327040078576711627105042598438168186922826126003863451998743530419730777990376172445670529467773268001071920168349747571399896568536137510686980473490589520556068679519587646726066920555084705827677072729239671379138152406951419335375788486169032477520893849058012430969299609058671007737491048511264692779311687046465629041517877655626308509913241268827909294658396132921456260561835262318518192023785684533438246224159757093784017531151035842222365193573052648002599460824757508347620506061562332330745005308822551387276925311551992800713694432143867564578644900494013602357457047906624697079563504341258600604422415906715463761220480874836505968559521986395508869804099037859975045605239446244729575755901743509945257170340871385981403610978592803550054108899992170333245931869311430640159820261811165353663504024403988052474275818042109875705073296282720863339964993558551021884529113026930989112408664013063016125152193414146724034615197261781288481788902528700545598732615277872219648083414265095528658100277206820741300358730447465892638700448027683852216626918341507818832951494630404116673550212667074992703909651373258646814769461119541998027701563938258786445262653049550154598457209538163354640735912805365236093641642441104291803190763685933193483940305634022969406058814220215546109778250068900192104967213409060285262057401816743867528677003094810097030942099673353819446792488598974742820161299429913298000449919283299091665982839875947502302651171138130431481848746709111421612170842510804084663319058397472943581351970933827824845150054222904488206492386578694333409680192967742189405780714587377271033571116809823162289609054997847861328354777462581057312789989431737969426253174485741928882881298464823834122877875007900249123330669815312906502208273983429219716481225133273688438104808325957355598557300286989864520410086040591658061449633294691453186534326987095687720811847541148274224849775945888550305093251241536549576370177222413386556124002005402156648455191752133184328960056163378701861775123790276233567646765905464871044750181731844775347204792313589719954154494816812200267402778369834136624923543841383278901079516061250455133120248172172916619414934478441203349482557556541561941294995719918956385868420289023515291513874514138115434742405927856567120786180937176377231016030530694109462832124663027208182182203259885459988664440599126414350859765083346107300976371496384396320211094155189479715191346982068069857038900702082939565981477906627569039057798815059542868857593734988790996178337345351806177423546818297328382921818541309348872620362539004989578631920863419309895659376558626034198583026782443942231313901270225596899704029241560752591728787305610729611356551354517429579590810801829037738964527724930618130077197053850953092710305447699909576650874602631871535909205261724459966772225456070260357207968416091589600873967774216049380822642180151749974654939756536632265710577074540105680368831309727269468374283635796882485390301182424245598269463442978961240660019647044050716265127357327203149594335661786605937447857309469275455162504700990390952302937869805724472034905253868533159951506042728204251823113900040269726382741287159576011008247312450862725529706618585916988100198981286716213443140316999990666973712862411244820651927038208102860005081593487296755892083865695429922342405348919459414373398063885856260953209745569687710769219396036805386857150048710915467428569985209778143932331269571037259695745492194308861927508188468096242573796114444924533572608416406942266327928537135328450980947301222309368529325635218269568042807889405055379570371122494157125632190680296220128709230888793611791394591307244098184786736597582997397752759764790075796283607958178024542463076443354246683820819598656617606616450102119097631939616870551462940666246802349238577126703499906132176627575496302951258386099308083699391586376168883677503491176796669220089210381368408556140595838648346887179608124431526768828250801700748751707899700956554928400839464911894169209363290814273920182625012192536137725725949866417523187383490122385992472112873522531263934477853925081473356804496302972509867626158453637806245275128145335674255723258882749006797435419712588655857084923398945497762625250536715155550488504553768557840579787762069377526802169153744361374398401851110907183206635239387224805604329211369618884175822214117215320719234820918341497044956976488144211126588732672866881708408806729195540767298562938865595607240843325993809101237692779671935844670046320729075464937023494031774572566976825465039762699781221973032135873247766423909081613949195611853469636380973961386623713795205147049384471548533576274167026258911652323079778154932483711344406850926896797728071487638303146594561555412985777981437331965901728396346274026801200079453609028004451019945810752520854887187132992214174890127318045478704666781175489390795056484291742131661687429588670619447901118397100364580980591837695639001159332512418264743456170451360424875449846472704632210213165856176554200123441727561687687001826580141440183223970474184042742113896329020131447014839998056996242418161652182834086258715143133657396180764247248643176163771219503928695921278044254519863081791214167555509391899121998688048687337746883376241327875021318860340079225516903533317644768249265831310897412853221506163280874813006247233478608856047537352009572203036046868391138841138301879695763514923006680753479523775319345983008206574308524154671498891400825006154841170359360431670454305147865890479364646741040144260769003496343970097352794503963888868203943671595322985623243201561932111721777006070342673985894777029644755065750456892722835687441908844651313090732868699551120810502258149091455048572127072264497214063987522134020966134828534808215559241357059992729881866999041407659261870563857627356932240164078279114786841838860831844154384006111224378315670357889208085478954710974639885134478003617909347910863437888298812226326591947821081559663509823690376233457593956895962688987831375998984216789377033505688267357145378774540168530448555586432420068314169074866241836756824862050763609265390884395419836580411482078497640073251780801614716375814378013426283102616076569467370939315964817620253811775917391197714219131819847037036116117181100738267371628132815049355210403640578422688484624480099877569072381828431033883203805146002731913037596272269604126538008364729924191623842539762820282802039309433817723304697310476729678533017906907705294574417407622999294145704493039062745721492871084384633167912421821926886911733527408294602788360312099417366310275007774395910634859089455981695898734351648493791393430003941161891234900382824889667726581715072750920799166296876159193025169910596352743638971899485740779987361710305025231426773612799287078700092187722244067148807779750499115039986158632046167257634228638087305804395839537186346116957623184819924270083206191175646778141275569597720220017239927107629104165543135448431457013385448477608859848600045251130573176256939798972314958765074603647925148598160597408692383087023399678643343270161269126803062200020963766801640114251450308871004173282057184007768700779991408440869523604239969530684182205387694682417031180772515002119168056369911761057093022178272786877121037438887977564648637674681821132864359098903014284322144155258431613005185260762323068623401073774340205376357607452260890881600436361406401423329019258656625931824927201306286213943902897509948387908184812771729953618042961700476603242375294300380321743117897829013589376094564625493437785955766878438209885949035797693068972341286624681999638022688360855070096803911402334546652796213589289295022121772018612613580641649595583203894675104267508912414617479719755098766933494808689716687499783913289279610983538181889597041767877367836628715756021158642224059172208169035237985151478056865152948398933051753804621260321614246871665028428710541479964681302538539944978219778013827172883585476464717746728787034692671272260500330130372216806695888764159915207954647665628659529557323240554954100137806100951078104113219940982472368015990598022905865156597180572239098526045467599699602395203388133209514478686979154126325242530808554119759370341088810914360392153188002923029760491815721901675730798209412674663483923343716741905602206741082610325844852474981428418391801267342624218499341689743710354645028040564445093375905101536537666283438710670478291113976267476153240437415876950793497829075961764254347962947480842541066040517292497368269901222132513177548127117452270743974962253938204140608921209609033390380211397441871709205035813530469282560457676019866635396627271361399008641754183235817957771954826193035505965991746377835882689661835532637719717120774417589535412622002471875654585976349133302166804171339074784539298102435018066967097520886343393445117620459149081804610601150916530739756558306216800758541695291464194333615829553191944943746463320482681269089454745724381269915914239139467716335513152750189507146274617478465042508686771572930826428923220965761540347807370911039233278742972632751166223304164610124814528383487168090196486897119047404385293604422434677075546347224196188999525128509649339703586531206596549266680750873143444592306023006691338345621566158120614415165494629709676728588581966279125678976705615887881724527921111061661769741990104727160304704023175251083719005702198062606975176606725265595736675199004877835945363614601828843830271705154426117491736990892857664923037624550515270002294606945065219233662904647093749942211272121909479222162901318312795417273020960215432879577634935176680655879671411596365190629135484710067259811236602342223028651739832283612102330086904366267656383390804538720974302981602225751707713030378186149113162466087949189633230740345166460429317662498795498405150897960046573933457997257706575123576457953934823056068128621422707649993931876300105613298264731418109067608076053804834831672304190508765802428503715201727595886728835724537553582493148894998323403773591357275633777605074716488749447939183146617102171185759857136321471565621911599115425439661676787486128878617425963278885177818239649441401593486561150209451958855174684323094116617287710772356574582055847499602898177422392441069674513226481065144001429727810600021077976668011133115343456447975771849828316627282916862241493036212724847720608388307347740700055209638753283929145486523266836529694263723304274700386970469214671424975963811810622087690171232913262401845661035676462684889887885839951503525094188718470754331337840097708138410685430057198785971918430993440988346745559491288382913896294581685852576807991267153980453797846607532207057511400979046482644891795220085611280907173167057303760472308047803121133420226504049814295166416638870135528033561227166225097839053513830031061200047022963948485883456915983482737131595027873337355766845330145953069864710856130826572677598617973820226311954598020032619564596462749898670888321792482266186870801319110625055345200067027471547411353788460722172837839647209428134750018195566855470598378735554279914887556384529964086412086828602823780495598283961786934050297907052431391607340307173024637910646282015283443507393472928842128105982980875237224853450574400420141628992244380183320424985270801289021640114544105076317313344222910356851465156774983895443259728841809522919258741218688732730777962938153796981188256927497941328442365428990412316630738184007711092114236849798750974623011416955197651467455764141173821800788907448033206144130698617677449607169106663485854203730151306142347286059377988022041366993635152536417104846110789494616566262906835553739447275349255613964359434065348608245490949930870572717787520137092170490826474099257141898073461685458486000347350544773803486720856586956468332918017841419812043595560167552258790449834727369761443947696590324779555580557129723990108238276948427580880881031842480259621126775525222578484210932246939640565975622747332711083994823000103025956784756730372721092012587458106022331204424367934018659126398088306379544701394213032457270492090615824553806983723591481639999205355109252371061276714894211781597421103765936324333507040163421062377087037799082378642520845515485001056444167685494743851269317002294346446553108074104127821428000870383092971805056909631300012653595161043728983670641622203616689365889980662474777532995804819131940487689196108813528541255391815559891647634884652954435775034443703592663333818005005921415557217098748992710019751097934411014338061017517984984597275487667612205300558775096568481511533800787834204917352864082262427831237245896966309903161295738612074332207823123211837870790246491634166068235814538679795137973440913320739956927501211388920481970861733881876146344935705118954928706355156578926698860013238489464278016909378741155988269442645945830308166990059119954036316059341956338614079089475816535687927870347690516021960987858766047954670282866769599234477473458675665518644862448200691336324955216451204564963537276700485318265443405886258911948428604545275254142680983272841879738435639264450558440515460051194554060111273376448064389450236778602097188446147846959401849727155128837465351726147662431474949236627633019305210524165199843032679528341305223665549856657102041676339254598020230041225332456924150595299685571862064397030105920095571825922770192666495437312257304357665759569945618499773221166378376109726866241738233986643199812684657049055920059678522484400719287200056428857452149726537938856488725998612755568748805275695611316158650683081364531001653582419330269694411648519634906622174965767480485748170797698536046171642883339966649091117273641940120565886376555450972298287264861001496337001928800394542210263025881506284750136336979614434603106970464491542961368431921399730700230019528942001002267316413034025488977206536428985919256058793407880704721125851052302841231111416012281972899294718522597549022981875200058775785952980743814678544455454784046256968724182514862932414549284376143172309306450835236734638086909613865625859073133151132746496662267433415873078742258242951699783676614254859916703595387577926443611607018552451436224017779834882196995809553145885491611617811722200960725716635387501781498687685787986691456124676806437857880027133571908381248467587375471489496456945248131572141522606898051789083922839331143637189327498814996540883163097741161280178987859715919552515794937821918010329891658743186463704861051821375371581192657526428380339690270738758655472588149962289476509461468104613615795458213094382898249340822269657929352690449936399281210392358755002209254587106867307689843081107990552599356469967511359838416592450688918833339504765641050016646363398829183995938467509734689922259047204889275162652021261927588108826780351189309562935381871502171678150267836299650403007616975656294257328375031201832315920193853213119837752512339127352574762230699116233702916712311494483048764562084685788571808713679789829880569098773960492475679546004274121422669706663375396698740842802222886211639791530257104086876845847239450780592783533609481118930883116817559387816209553727099805661823464606486743730464503567566369596299492355223368230823209373100620690125284309943259886125127674556025480063199748623025180769907349221898244153169200067017387162616175417985344123354358158186952632619791059627642522399131444998833355737333588805351909034638247690249800217002281029030991181322434834681371631462596689957655842239480218627467636520183674477781769343959260530205569194782157797677415810795059430737619991777978137388434767951080750411692478430625891662844857357601275362564211130467920331342523174289038235686552110773407447270677850594840914802918948722912785414535295479101376125826337317724983468840420164691586624854400780935985712652644342292170560025040095279812586605777688615449164697957447302488805573305938447401412406662471577376437822096230129588051873107983438289859212462162274026518158034618800897173596399298292092600315293309955980670858038946264065426173515412539475585410715028961040435103532780328703365911741476802648570014014149793031607402243892818657463859699318161830729678794255767714086183533189619043803300152894062318049007991398771207317351016379194462205635734111489450929253934550495585775543071269293774175500645140143897683220182832079750014326011890801363075343785216899327751278428169433760300301623149042023248785068011631788288940297774096997727413476007266911378227289174932996146353293086968822981738023096766306417952318783339354432888462722946626740317231282969188155211552194679759283563438589271160396512690364077429566548242592147010965440798816291443329107052322530055088263653207251296119098391989077751018724682629686387130213472594797088244639391289614827517576420631966130152655195984992964878217578272761617986502264364405899700544659461280244617893620798538908655662982844556017174385982417392957339620490790900891910075100114827539762326832408283963184123799749946466853500692034997197645717811694591665133984518746618253259576750439195518965943390212900199377560483479345530025997225676667871158593570607165903541229938857139621519204350747934929664486183421845768857947678226815626175097114661340304314260675449689372680588223387467901173198128398944249751432911356893291234562088629390961598866493236162853441229549929246997440673910813709175955427576693369390793969281817710672322667653308516857232946014885974872041282778443215125043593717481389090395717473249565335618522599991966467533637895724848181150364613784381600487960955654885585705355901408042555261943907741157582781189673620760252259282071276800269770949979423663176268419689708210232758253143984496340745621004399764343620908913744994235362781001816649500926890582351079781483762948151097609682112919917009811760779084823889524963030833961009455441006450395083062684038696492900679494504383416804720596207232747412812021254620791740938987474245753097210242339326451699751040834597638552879882491680525882803809037545831030076409927085044827608802447858217556692763004371785913569210535513890527807465448111201077097070311219692459766686988785464602752705049745854917840313250561530144626733153267124153322450438924343686256394448419024364583143491997505676401141523012319790618252222259733718583650736435518446395978526989048146476811040100596609718020475767637127919278028542223976781489790204016943300548751261829432394238275496124234896828421187638695125294038917091093792301250609846553297208231997921696215722083068821563507963090680272833146979126549787177551840329878034257960759194476232949327354557137476825100985278934648827571412820680040837815745992645346849930371979539224609918089166266661072503908357760023744352005216397766980662649968255518078174154109323592775848870479643538907718561439430214869227133362857038468276950813812403918826527579118338746832401628979866403884810562413265132798244842755713567039043382933799411810531313384795925897034587395888717446973854321103420508160067197704412737836815065456853141269379373441565862661665917086711212728064099522684395712910219724213212291647473383671709984889218573059797045784547121988305877384363074716167620298193716618322802023292894245077258399369296734620463654724044656563583991262794078083399998541786193665183627339009435288390288710124728246322858403322522277969777778745688594556334064258217364182119324271298002180126467160613961565972310098450973511479472060880310935219135665860688051521464632222177581691390882242790554817966175892035134143451834605945946388638456535604798478263063208589726596553274055154259023712312694466043565590182800941714925223004214960904839343125108391863509989715118423017842970477560861680815364976610942599067488009110429927053716741174540852845145403984669936146648865314343195362425182618858077705822262606691892978757067715105744394957457235980622781157629820628413831858803322261559913468955441815291562865464214992442084368048027477716920177879622275250642718514715235920405743279132122523912777931436187370452764930734327690307566052792288765790144539624940815992272540068446334687784758810178727976062500689373846541011145903645007637204870749824994334521445186124544928080736989252055077647174636209342982628023319190041931589910587350549945364446643063672523636993246472107929210069528351446819070555278544514601305042352584501938834817447074818171301683800495136264621683795626029477944151129648257621404758479012354952646873485902565003000154981863788013972651507868686668497676830695414027456204447820230323406191128995820618937252061167702490826220393368860204640566391749708616300506350042722092611396430995399653789944154778254755230611706029023019779276480316379755013665481834460789273951124851044034457025263674658161778132337693705260246202744957718348182213576004464056365557063459285464144922208438641285691589624325171412757344383158519717736771224823698652453058855240007987492662313488881851251084481437566682482186526159585362470349739711513364490780201999710570510584185715344588813148759397597732024371480480914624063643197529810321440091018396947365511717358116453102086946022451732522371956704096792972426151047611925456061963980967210690343413318624412691906210436186394944457311054966283747386231688035163333201817459486139605046393556807715806695848754271202432413667158123922166766840619137393313483229755331649239394679354948145170533121696868662782254943768128320194173840156010051277156395258584329145713445437613219712951893225624417362280675551659527750454478944682243188196354738308463392348872253884106330774397645775571840425584106424407702356456575401768315299371265379522700387825594857335540352828548472400351756682053232968198702135367206184148395237797908793791667996478238611825911434587762984379126468501331366075811809855946747159969075651047253276145944883562937863557259727186487546640835952009760365949879291222612301707321960115788745492014980184065656906242635815702078363755971496611777346969415699368943078982139664143326717313722709471560822400163882324099870083850921602854575640730055111933246668801831802274668237461081596660261404891824751782765930373296232039674494615133166451236558482231925430514794459395485353502393799891033212924733045762591518734035145437792016298745539182023615909747458918050840187416441044587688199842497951879005311150601486608633412770362118217128653850259519540662902951540460008626568310236774278475151741369934640201532350920497986202653490425068416322813882840177405978845748377679464843329391339349820601004580162162545104385351772441649424465131825467357485910124038043024260724898086365961640776451928836911752102252783001771207919126590227302285255098749016999629983101174921832897888282942802064632481433174361107195922481232272665063767787160137990625749834213207973981513445165476853452909188250001119755205220580997374696304382313580551149803314333631407449891066215487089370173596287089384730948175854934828904382728634253163190118048528644312850389137400135447929822162175289653594179551163154681746562343434214670621154671158152324620903814449371565617495167355431177887789152510857913297476554460301256824116202815074686124392372780138834164951112759534647930631598620947950331217274900877054157139738761758419596799537219612241430570768075493738053803569694449674915244209271709245899044177028431558320691438728736965438932081099599642716955758017449918496985221245816076083321195308118319954462662356484493359609493349911058254956392911215318724811693281191032116141047186998725420467980807355271266878524420133887498450906276258140526350222710658520973526918192998947630955313627140938984691916253129599336030843334455595726679373416679784363612566676731088165661605270443981167101683452547876245942103653845600452320859642445052841228085177809313961977269302332789451363253401570862623973207123333569340600226551024952965122632706508080073371567841275817846610516855120571036187304053558019837570446803812921932299093776483826252057668489053740155543389612379544984083650812869145771787150560042238911918526785356212632964661820475881337703839365428991807261761240420775902329959947047120165644788361676905403044100779222980852385290776783072300889971061443351286471246535493446920691775462495493065780980570625771463653680851133245832574021898672869583115487894647232246873621471668690329673183952230917115842911583817596899498581618790087719271954326515187325488949971295057780949793350085581692888405317016710147445686206777957912768485539028418894253764053017753385823192196453428023074118482044111210023093366908128960085691124722585077947520476349559792799865508528421201671772624068746826478908969340887289615945537826560066249413210791992185379289654221594635270435336468083414848685178887218987347292197478618239436159049989463349812609331464132163819517092915099787068634574330547474851652904411628932992466372731063150433396988997553724699691281837775824080738141806164918138610948013984752967309186182091707472368685291753265235549554241120940722985949878057661673441656600578187196710007704450269531380892894331256269596461313042481610821497268964671287066729486646164331166661282083699720044860729307605628192583149709463502721681449924667594550892538939132034775492844224944853234636747938514245398612126176079765726035881161905593804360583244400653436877263796385966453917006652178486649567768250834253681598178821800494931488563901039265591400518699736195201490698777837526328981440556854781054280363328364206437756043940673137171482604687757699510957680561145682689263698370885578906582890825385284829997178818730340049809126237529618465462680490948435533000614582042373676798994436584239850031201693050630231080475896459462227830342469467658345419982022660741562769662428009642379661137212126171900001950152821569581521486125353954082816548730067133013750887708527115510998463167084577371152700759113818666666283870891625100571370556172881111384108403699862985401303700468100814952264347620843476327787778019715429133189553784669877467080444254249992170504154404590415855119411539797268347871738162472734883913620434055242770241285038109790858143472421915395030544474758261149997374647717344086147878092730801041694343041672020998832673019711701714804031944181210457460707799038266200190950748864644007629153305789162367734215268822764398539143236820464586033626849030480883712497682203587261981264161870486163438382794426832746898233080297992273212752320394268397194714304425317512911514863613500987589673533924898958019135336006623488867351191158915450405685657110396828805518683237319939688289057826852040497714843249160583674042168319980358272498098153282959155918941544469138256081844326000071914560247095088172093725125718859018424695534163102823392658496156161971243092064756005937561936262492868282743073614082894876992102740664643898243357309470103377578679919900190502859006968466930477520661424897100353803784089100779802153686568619943492932247331845044764639453782067145880224235846988599319128985826286229701975576574202515161541975565028656421167508912803325261404867647235978390347619025492147138662264351334554596253066307503549171721074230547886527246189671801289769187200151856910474964100053716788033721129544770519837281336821676928797337940230348271206420847754344110885058524532508512631563985107709660573027971273834437721661765077854729863293580457720887328314733399438368967829628684909154026849776131723123678961872233508617221296867703203593654276669761230750846141768624930097863233730408031592573848122556870023449732167390843978657232122061246014468642530155539651443457409687977293928761974369035606912359997402405170493319723417610539445323865119925481928612906169196575106085243124186369145052202194467373067092699499948405105617458992374682570408667302281363637967204141532520512524740701219836815087254839932479124681664243750812033163099567764018247899675187508891391988114898889501916474030885138154367106779172330638992580927192544152398825992709721869256646003943711533902685860397979663458306425101760266623275292000386386608885648972161945067200917334321665189587635560281303938914425457317846790542739103767841028167800934331077163383220164900350740290811614810895703307915733815236878415430635692733680031181784212921221446413148221777501644583364009326888538267307844188910530517852179852334168567037610812347625905813639915294631651544213423940710862786004246626743752833313151715321297857980822724506780152860578208432125694012647639269439861912347792887530045713442452069824376617938307158084400651255548025043666533111026438393202762883858873080989877947251523935370112771971455601110454871072749011461224728042953722218636289622003598489775325819914039956125893772924589796726389251770059989329447176532967951692985771316008683275559633740722977440015802096211137156798897302682249570964345157848090760991203881391197342588892635931655373312983346578991508716780732559585830575755442774090939649420289521791457525208278907831086843574559392986556534556564672427526838408776045710232744120597031308804265100242536254112886890930386680707495423215359920472499439254295757366090210438016392394341528728251204578820897616561609546708108555998817723775268274462890383465418551511844807444277576882767141865940746653697632925037728609178849297348345570846505210746840096072125741681387921570841214408410414754632961946405463572690043967527355108314623758835755127716211142690343800186391114488370553467376848731200106060417673688334297066358904590523170365783883219341186902484324464542799714531496606037462958646588832561977130457002309739199909401829660498063653455702183614002061433829262837419811894353239518076019189444886584370372433254682741741019861796934988164242885468036193841385013488931666343114107117127452597151197282562536452636410474793708111488752591071082215660117879106238066697859149640366573946952354354558232215658973235362074862355739315949619525179189749993803519852966231097562807943456611231297615233417098744826927677855793841220425210521782341639199410049264467472345892652129657422070871896755346614259495580931699831341562435918794391174972894130948751727549254520292263238453041604187215882955381225207046160553312724198496604647527762806455997804723704558585770680371754960342702300801734334283964768899731463006520709017630705882110354328910714743726188885945619143053859301258593701060476926278750034391700262814378114429044470104929170204696740471141486209700894162104043547538856352237577883212690101772837120233058399700294099805462947826363959409386624448780445264317513573016354229128156515621995597899433830000716200853616206091664687940878769439885415817416529389893918360391791637566057769778710462207081913950034533281883585145378374863209246773606402822146008897123944327654896831536574362258776909186374375030430560839912643641539258947154384593652762903898234995833429983386211228411845110323525717216575450493160176601559156851420315144123607517371545980547464035925099310565633311903060616703214426575989537765242786203984806505642872367277440418972027745655207833063118250965751247036417667181053447570178591957215424017189549702906721300279899932945590340468671479527982411620533114033727124092672381369192678242559158705854390753926554094433435455600231026691009632353094718817549867767675430445298223367247526430050797349867520446528198352012515945764513094120709668396039642595372734214186675779993832490050633250620268749369789319119895822922206603815377636915538118870786561965142288880987537768754058485265404284074791257937194196109109637576684613182117019471268390904960072362667701523968817069704786661658188142513205402660521350034823455580303495222259441377428564665604598765299236752132919079935053394817747433755676145728637294767380296959771681198637899351396116116761544125349748378263793670087266797307078707474856055036049139039686103531238223322574496934194307150897722358574590877534618144503778064897893470944460356469487120763997527440684470289869141703095946675217602637984795910519893528186345868572424245882702211217756515174681646962075667835956512076654109695850730059285740611554713237427260189349956502703530731372303935285663055724247443459856094348354052947014545728846471981936646968957654277403781298337368925927249060554033748752939816171905409949832395572237424963009727022953478053206193096449332762421305825867263260447647297646045103257991772367082169866055787538680653158522091330623247491930756906123767608286643381346465855070379193942345058368723436611342808646613695849287318725381118180393472305251744345290344833828146818396733627212544784282906244397879802265779823165309477085214747154210245413045738465364477627914240008369934833959166899720737191947546791430111731025379059612718041367416191248738880911792876922939841387272290837247296168045217177497803256069528903923956965291673653192075030195199186483244552099470366677939718159454101322488384468782843884686152994373440722384743243985382940590085633925209068982796930041154572452157775854914419016992144713165455120114510129407346309807710903829497761119196086612694250961244125929102188971098078563544483706040607009909647538263966068717298521157557376311688606823159669915734982985481256574976279456970444276158913198853235515869912754763363542103851482691621901299397778328252965045449518092441721411190567057414174100587744285468092545057264372583690200667522702794438218466495695477102018805243801988388339030887487483753621416240370221606645168439987200392629973016435081942097472591502981351253852802605755344263450174910773537882431693362842674245573150260806738572604174680542881953413686666799579039609516995256615453625258560158495986668700731793507014375881119918412475298511960131970901029420580700780543286198580191715695118885383580944490692858722079276739142990994579917983326598671781200745960998507910388106619696993875109782042799491092852829385296101232657740371240182227744894697769722029565196464711610440201982691510747024342943551373241257148927745035540929998672579627250510387795365945057531164307255034793025737639965547030575641753953625415478473512917728626964503038834467540861519072523223728287601877867106136292323042558411171294947584264525806660983655165907330519265567632665556152409123440867923088684783677325992781412506967887455842390349507183590508015237484034964204407939522300367840954971924616252931302346944338060480693419238386476869290069879799264941088421966661024912277002685917328101623863133029120215720572107329436761079224723158139494218945429651459803192556679013213055036546880663109956831438629940183011851341650664313123953994151508724209155159838860254527275641395858234128120762992461415661543049399448068301363364012559882605788443209707372491613930435093543230605616555488831459207506153389104302188431899683962701615370493091916019800683905655774404773139678494304281257668958893963060153071882575699043949728052731313726272058624618897624598975253126219656519661836534974121897376516538203976360153618859147423448819053546576493998753117182350357256387755507034141661058304498653091887974228352818731482477949909310268059831331673109394001683874726021615143051664271187667137314849442721769706879213252636279594220982518466621984725683278742262502122249246671411798488992788527525125770331905863898514944090525281974906344539476652205888189886667024481652352361336458960135161877351269109993430405850922235579492122380796499581232673903571222980451568391918925962490315293991910875897110746342282422276239614244924757574968549200924985249276761386259320018592883281893843647370131795742641998550243148782945109290494019729664565453613803060893737050423894414080979220547078677148387736567301435694688882783071627566912474957182210441311505260302823932577821899114231632922202099579212851504205476056445882233875392277886907886107165922264607766348471407156821173480381600477307640391810147006612613216078637577715495786959893529678327632068187489622659972172966168032595616018123808504554365148977583809754780329016601546742902257719163922798151944149513459843040992888163421176437302954704858746263325055306081508559424522845965617321844723460486470730358990892182573259276370007530250463283098306088184246619545289421291298832071253582555207095609736301827548232626872511433754330331242184600133549580245705179715859790706164855997268354310612834422169344706824374630994832167372724893458633959507753937387249200985842798145070774337929862765759242647537535622855413211276178450820327543950755092491184581013735121464631356154421909241223230725583874413358625755271100058192883762959902591060085995004461651296356768786382428344972230436710825016913056740039097067743317207961622987066812724775427798561601842789016342362458652745783528475180567135145885379833368829441188526483877710032169386889529880143391216899940807204433548846950258184474410887109278901771381470297466465522778502495945683895725748572664894184347997313611507835968938027659599030467654360284460209370173240523602008855120552752836595978273876027093924236031417256896706676589264578390932650270801620518375109809017804703620367762051164995455806328370576225186194940663613434229520639944590560978229882948813539551758001326767693941760886815467275014969197035812212498467524841386051272656281910621588157821088870009432178505342864489202970370447055000276667342206188109648216623607763556627472103402434446687413841967351492210328553517175408772706489064264045540335568284816643932657334049168557771061830178346118097201697119424615943893609689610325507358195140766457393849940112125177786525445746110187498051231710783271985033240336333696003058288525473942546260382274331903182879263712817520797139355143470997973264460888529733447741963496195299725690165930021066293959522386474765808096764865123584063850059527035297550449738448352890588244905079632271093369065891593497239134459494129990861314918445690150684327553960474812717300945183399116372320888309870174453228258452901151547173863247312933787085295759981487974543931653339779656869986832366281156889556140178616896489933718580784850642207019764348253044520408002029539173940180643644213416535495813689951699500594631814459997698941803784001334955774191583933288270185141315497768791357347962387428787261385720357274343361557822299076463505267238068713251972472699922375806546922958248170910004946828798989015481435740535787577147450476921845316634471041217619438343300820019458172987606783854784702215398032493623724639073300643326163740631847367892568653072585317378995300144911842578119656491552992051260513287379689980305210061571806206946778024509091219240463566099037843734093283443709962395652204288865942149267351289281098155335951276645056193566808558402904008100611905551738045828342493903340915635186783399561462027773884017620165370117081558366798207408684219977152283064936345464567057797434072429914805461549165278471845566111354534274060552385134401735665493484161595927750783756441388023558663757626522778735252640900056849231287873203092277443774284506743317734089600333776173033028001677145047281277018550616125714699503996208035882506111614141120470034661289756533748442054506426697592325345142049664134629999620670785826058426253042368089567051333588396926167576512667096453957187670035383462478592923415590580933551362020182288353529769963751239243935512583242232563820256204817102206109457797934303171843087513563706896699617180918301165645407361744228493975594213219656647219737529858482353934957226912645386455556428776448364307421768314895900406162679161396852751986081773335376741496662926828330082793253516950267670783704187705967273789411249041642399710960972100905096045960552241082517459825302096829917129722320450428992938302076639339650808348757810797835327344705368821837637993071648953761206261516388462393147112434017182285399750469363897655645758942365302639597139528736952923415869438660761220928368760304874709441507974963381397573562973145682137738595234567380673782118233740962019736474816529178363444196419082490821285701682709395097098463214050976717788491529299095127250880921696287983691262598444332391620199849039151169002726414875643769597891064595537782569176550112008761451489263566106453988421331409031608934651663679250853889816108295513961450462157626863567341124326019733293068783807464160055357108002108180349763577274048033875972302763966667905343518705440216673111517760153048337224272259800889445556855419300019119065813447363817672587919069753296540295007927972499393695474021633241132722759849834055697153802858435104675289518425464021089565526671522463354682967638818778573617453336115335074526961385798019078985915762789456645123006329764988046795603537273548752436390864115149874335206887348035694881303945596840710880080255708478264811973808726439012120673230070749937468839536313191872645380269856581815498815168722021148949148635853064615050848158929797469675828472784203018857640704369244722710358865542575976178572264278411486538856132812715382913036142174083666380459574742433861182241258746816199381561447252788804029745583821381538407594372768252987921527631906512372619860285859326193568422067761438319946376290201714482738167462040041824135197779640413283931729040556449222525911878398358333789120705593589967376105017654085581518654187793728549023600138018146394200911672795404149318093604674175826440382293245723924678736369951603324396076932872238909607201999444649493960132925627138425869582372152636943275948558081331908604577483366061343711793683829534573888531093794076173711169681886028699399008166085491153216646222885989379117965995002189844566641786586355020109015217847035483747177573128823981981726311653434578657890307791713922087499328021733675395483424542299981500282433534591840057264604081048172112432282825848616552606299572657248296626204330051571699641892835971261464041677992701082193029439923121064485362323600065684010511142716348099723763234920628312127845797544659406071158772387269906113795194226186776986034090040054101565600658974749905844471892332770925664276216322982460113340712384873385521801972811230498509065489250876848148700356410954796317215742896060772261101678730574694681650542319967641485696459859823441297622829926693099999408338902025841924920386188572571630930347098959618508016180425513886020257017759729691541216680714861872574324097859156256443297805832545275231627163448176725484721418692644265398638425950142701185247843745728657087060842687831553067595922010687653204114195455385725920374071834465500442586465239622174901408386298381159191689912995535509656802207157487229371799631491423218722898966305449924622882271422838784229601993088757050732590655910757885769633525563623018539727136762894588941137778349656551015959773036325524649347363195814932992074901832789947964923321678499494180545914693903833448918501394010026647283423526474392323884025903615393314441621699968042097993075075784492321722613286359745242436338416703662809733741537965430609682181061495673312567438728189506590605868382591106913301130770778919756691581303078849277237414032637595190236979855906421926581253459747910405761263138670832460068333102811656755520353129682475680503298187158155977764183941910975097711885830858625667534898657698130682095893474190851250332724218611156511917049209091987915776255900507344938943334798723779033654465909356919143003520151148591836653636334926612970056721062457477266504347227888984045276891798403851076281906159077238136836450279411709498300491659483924089886369746559204027179400592921962399363063528850028750549877522429611111299014275678929019105790844901438130481772249211784118126051625024962517180472413958766160924019844029417957295302800041210813929592780223374687944958739271933907819224062577056960816710643225067498453296303092644797646839861796976081381741137649175754094893277159278324389828884522006382952699630974118287786336121851429294968966386792835092582349239541723652183679888841927844286965946802310808340637177442511717520757010214646458040676516941759961688438325325084576195718329990059518980242803695840890659034309090034081219311720788096327266753977476509707968801917699482176329021576505442093517005446493098984385088153584886529954131537192931498739544166181462027330444142208374992331921410587005746477512191244611410932262993848392837420787338376432261320858536326817004342821641548627680236553771443146104347189483727190531234820790918705911079331214436567320496626271234268483652742791033644053216504745267039478513258291835575581318406087134761859048292214912452439882664585331268347750255586890867266411262588870367772873224634780583526064221541138440919193583295583622319491687089914102485531048830206406230786142535207917999399599822970870950582005415564093807185821012207997673302270936180038949436930385000997564961718797791447043957693907888956671751359196062733410175600441722272544108922129072397588597497632132545607842896282507900832571402546173572881025090227544675291879372345798611230407556832731027384934715449794538509452114340282541125347988339581855254498964177922092682412305071219452288139617378939841080526649481445134870334899522642590054289538813728054393075751150571382920713973795761596181561320148808959574316233674709935417628024263766594199418135983258385674109067747820619484766937047997612228594279248240063569043836230875547506977487336983776529703602709139929778370798117258235079627805586919793817403571096870435693680461205688382455270026228264651715449292808546115549145042224904658038610180941458563043269273269755831990622786927560663070467540376252295412576114164627674653437545518830910528679493073018011067756185673206769654501446042866093933073768819156445709816122576148420908195678290246957721525409661107880817794600981186008615930121425103783594532165068952134874909223823860393510160995432315990411498855074763536681242757488923461396030909486378233312446234471043913387546821319329285100839857608199546295544109502042979793920595702887495743429234029582671782655621629063841186290030321889506310494163353855180107270933770252491603408891071570439398503596839722505835577913026358353010976132920280327181967377997047866456652817824967382764035100808062544454796134106564941389985408659046007961962688229405733592860450146691214779516238283731819766843228117171333874850679274322823771802812004824521615671016133321712146022047999032069595675980590308026660031900889939475677110812900898099719636597902652255520660831259717009969382949893012913909799325300247412012944694654314129150416625304259197546955538838289801557364064145267051830227212414955426566136134630075466972582993104951465480528477022422344785282224395499598895494695012198801422418631648320321410369097209973542177115955998016635071491833009982227737106163510989126446312589599291152754143699345606619494532587519184933176669218131431537948394721001930636675258844526995404033821375529283147579726434595527819679459793339888934239993013665490057936955997666224040009540932200635886997395861063077304668158411860659405735220810661870472069871466598830090425099057925266058065583978144628787632300786800617881275912902002209908986308580653097451180105687683693133312264853602911210254341723808273498346996734500897241406760983949009897191692002433978951605224056266087299397581146850648337127616845688784764984022621138274088522197765445552780294567257825898102028043632634596171433930744239584431465225007017460288068708906248815281815350452037587699562560998822111936155114658708930957003711090450787027353999139708517610224237924586987115552702059994438336954873580619939656732215325964723003933504112410989406223167224089431265514497486105256036620261577001117346040663805151179323064847767096589679587085695296227251927197127679450216722343090510718893479175598280461114764534894132193078453137494771346419405561759389879925072420826715134477666049047291597807029675870549103995540266598180261469830359223838992714207038149260236260195192971446726312820917924700997072789467327720234802416559140127206756196237364227305371625055540198548513716969076614482452576844138651974064165979768991804349268084233971884701537849763155664513681794004907273820623315252493968449760173023314973755899685377920515751773700164788111030423442049624879816759820407523983343730009936947705452889227290416876661243584433186749720464178518969470757140860606352455140525664509026224629213422636874082900982554307201182314362853532837962433214932571821547793720616244656080167713468854021896771026503314775565894424272317535272277972275172702716509091437178517881585974644245589979865543183172109678238266601201604666258739299179585981443198674163696830575190945833868080018927561311477608820075971915221702866444260270525470658861511628652613530891543978843107994941200299009992752069002614723335010447338647901578361387215883335329498810608991313444561211563337332613711888155671492183870067865035120363529281216539426242615223696884315146000887243511135614637781189559385441702140140826032415503325975770059964250714895208042026624527611714084548588464120398031812102853274186467239942478111390137676479814573704695908097503529458241960109994010127517153890059196150456925753683341442576752824017997187846604075437565462284779067277992953134359353618057132435199562734092132837644909844769753923504355291141403012025276688944119510724784729083681220125647250435185263441362989720385391417205211751531851610150944625267904408300603893654196860451129511509757104307719568369038024275715231448981594056822996403221472250457183514717937596222941753789695251377455014893385223085829322688308866818545884616260042682336647290017845677230288527013844808646011703808536785909377985015436219883654335671742200962672506417914799435404881081739471168852502643942398422926659883935728845138463597820578843721523299811637010959050609582029928887794867324429197971897111712013773917093039687727129890373944271912994722693614221752985860742467328843195182469906085195447885871839167875470980600374250932975387216173155549139289825156837251090408547990856269674213535613786684671099553537832496561204347280278148003093283122564511746686115726881445986445233985216487945592233228557310061528647624282455392391976798521027939076489874436866074819456977698080536580202457553841822586198328570108348524531523576755885040898100404120731748794331579316879313321045458583046164712073065605668438961540955928965142648959237378466894435843393738181553140888292128616682501860449059245962569889755307647318268339033657674906029342485390782704655088734856057054621633217978991197185102932267437968825407009080876568040296894947701518100748527933927171899294789518593630216213790434450483209734934738833023889407839263930042037517504748000950208203488145754772807181147503446417076772771918662529354757788607567370601485312298578949792464160570715725180243978703875288762349959683217026197333735698137014076599964927708350987964733725445058780348671472621940473219638907412520155150980432764785501404703614015782170947585889306925398934502445259738629619406905732005788470393690962521925835043584367487554784596279067584529085210048583777434053509320336790212662680671037623071032183549452729272024030264682632240206567430142509933065865593764759381907633127747114815583363862567709330874180087925707541935520199446174959357831861535563949288578589609092100679330562664471875402551779360223684301874611991206923458586458368078518915989957521551133105263265885181300508870410915777224907684908850821726852077526843958672804447739709630481709880033249549385590988555642722675448894295059522699610845336948605264414230455618952184715947321362189345637630372926875442012279289229936249569703332359905391066764949825222141065895713173459915794893266775286498188283400054527136494563104210139039831961646929299609649067766158312362593235479288455076559954703850970884016049613486365348663792617660407978082464027653075150989619088367885735932569693185423014329789964547837255402417280160003165649754738624980245852761682253606744162743254817188719930774756502873741643749948220646662578981730466224731288422268184438579456901315463043272262356935086177973801810360436570669392861061742784623303061968631588439387252559872336913858553252441431526761468101381514431198305577712289270223664976124879365030468326027664846698511063272173344781951510115458991649637076338391522801996414824466681899411363864944218110126499737710917532571750725089553554648759811336324178864051949847271289666821918375743584251841856712364602373712463428480755576610549032335792277815603512325812986406955632325095384175639657177396224483726811776102411539651055323259506533167947159794998179626142507805108730916186873350397719718232618926277904107368456285848975647356633555628316349442668405905940118324009749745026159798409420467143548374847718889553301362704314358047087852818714546336521258781739453712745396156894204347243936633602592312598847394973163645483290811844257037424521885949968729856589766631535132205293740593737718592314136649634389615596252437474440858584359584744278333551242895148763667525364345575348853705769453831701191548741389199591087081662562558796268836087713720437080039867218034049031330570306074371385910085085989222528179101059069128632378868167948096740420894805694862026276105651961073529144593782030461628198890157481140272666325310073654535556284223670031400920513026898871830824794337605348862901447608263576716728106549841354926752634804616050158139424837902901603039919437351934225980667936063174845446495828442795358425968001238092004859894403220002384125104968559585131575790694980654374979693169001038470517023807149988697056309305953138732365542779304323737788161821663571235923504930337250422050441961751175303178723230859124099602001812792314736679011799048494164447541143064207164388842911658660045219645571906173986318738102157485986946527843060844976734122742408017346631513279837699594741931783999142547138543373478716475384753986246193152872554308559953496523653260230846699445095231061305578670593120704569310477872385527672998071719780111261890404637486736380774188605640230802159810924656147286803940309258164142554913784487482866311114810083154260507978005022857782519851186091496494511992992729889789039451954887046547965413762118059321379775510422529752693067504060449285893487300709520153200973337686419691344120253470928136726934225377156148321240051254334296718749772413380397135175833714347846361506942434474147998082267237985563269624669441022430792519665919995865570752868993086753943272912767502736076909996658144719965310107279856710649772188321407038645170344748932744431702203570002602843416446174416704214695574368547390302539066792224057915408333764808035887228538669938250535248384623629473284893313711256245399271314294137884180914010276606429551774319011370319022964367688789185827735239929873599643445010074792284534838397968142605585409869407279390839178972085195578490438578062763007551152371119005783437798961373021941421406415013953824915593770775664623709344616019747335104677177659761238412881559227991168932149981752156794689659993769749288896569774553719017884431623918998756436187164217201556120964417072263317688975074992399481876741589914518891030809770352801465489667352406286963463399292688260437888714360581869090849291692284700364308686270238624791308914422510239292195296068274670005585221427071371180605935495428965479155498728060627502086041390859862452621110264599327931701289701554609082255288564830416833645547085285932392156265660823464831066658013738128275451050924761376109068745004707894910894903583177806455792042856790361314594863619236462211517058921584678581436734707584000410714818012151409910178028763709156312015218241730364725161089190866855629671674923115222891520685550938093802855716628082904644529317319633100463766059020495067445778089718907280701227963678127110244811374509878661303094527435371563335880701194666294603672437600420371125622629173497299847106149259362075028691477513419800039056247260588573465744284710597213549303930625143991888697078260198019367295187125123232844430195091351653701222970652300754435053811773599715904890690043295777949073179383037244899802170375522235329585356920302787507849816598363392100381351237237157726737998354881894273895752543161578003214921484343749811041054441503607722643430052835434535949175953838402085216526637601837443518640375955163533363933163267130597262412646186352689765570654975002339212376574734620953321311038141831362784661379949193530433717641348593938439110238579884465506848539680734599496893120124102737998626101178422881409541781477629995674529751181404174701744755483668833034224438907921788020795105578340020481872543042027046850616241142073880550660272529812730862502075439509955524442420825523317915231621338221133149436840297261314727189080584305144144551270404030679369595018351517819971698763928641984742894064765015682542988371273900008418170008576278342699729405466312227946435814366630510180082787365178320448942840732500102661204312153667697739308330546811022640463788890666123627096637792740745429887599426951877131768331702918426326730158995829812199554106780682736819522150973583956551668424868524916384195252223102466251473560548489283814632584493722114303657732739572118401029559850173239368474921539018940073683457374119204112477509586687749301738791008919113845619486385839109168686692516807095192007214884166394125792645894944259855364304834307333094195942948710890636627175721774383395638072525102821486832970740985890112531580748743399651568464557000121076857617854281355671457122278938519727005362102615027550801103287979936399597633515317133149606515471905420945285917510560576446560701426066850970505769690823546951246348772329854955111678590073172550745959512135379330217286284683894307463091452945997991660550377835693484499552908261727853544616628163240159793396195679570424119300779010126574432058118281594771808659982776112353138887847707277970752726643972377875991093621463126606701186896692771094615142551706905443820101657009485310385707436300373495276454394304255818198972288147336490898192492019917900446615225477814056712554246961957140732580153815028934516725358503370635606187004829873326029310207488210206046969331240994083375079388581106249412024392406742569359140561179182755523321182980735960303515409112169427274760930163982756226888828511220879367327944156904016761525415857376196401070319068446428465414016542215319741802763446021243280049234088870045339781007664973207409284215657236250695998334298937522195000346498948103465353472336218192340248907537554406568071255220321742428123105647233487408574789314377833563235992335997592443820965658598430779667043415906050597121699263887400056459883179141525967555191718800373241430208067554271648651170286736862071574513494832705032145501363020902346585147060315419335642187560268612711228274727979856982509025661810469959282242290105519141084709534058400796100058657290860943340917612471741414298367687849403861851619082495652721302925499442693510256909451060704622440308769955687137320059559516684922466944453135750236746762231588599795189405374493249740955200981475667584618319191829018474768488821419192436253793849444096735075537208101828743883232174973180267934309404060294402948376360317214009090202450625433919427519063601037639589101676789900264162830667213326912629436871609477530010277831652511306201802090702574628390269502256141496280614802282259228149810706313929599767448450627817753428614280842417756147998267774820817344056438641556873794133368928081149251782646740577293295962718119914495583014287298522454926531990400307515861501031804808560141023494677651576426720338738316972771999226402929765745578274494726973566944965637948819216215382369270618438692436078086003038838207867525834132924164777282238853054356884824936069678274543224038763674726459044646064567168795772250751051575394949181057640484011381855099060959320169079951476496526700532990498240493170687396634343166128106266275230499930227886976008053867522004747056790271919128331186528169705661985794245275267979956824396195849688001639784294433947072406591020932493349968676139269765399890836725192657836422837260049801962240932487240558824815919881630137796732631157449802254969236118660464957209875185559194092346721243182949831052178829135260566947301461687498470332678184179187438041924396094101565318170096586347621446590384293599224823742718611844381099236869665283968359136043500900825127051258357353794442161630098035062847336031235564588942344211032402177843670331524768142890305061744490023293050123913835115217298160858732357893786273896759725108430742374869515467281779854362361325180538435267127945615801129899258365192108975338253963449394524255977228775183436061739097049851429413834327945633372550761701828634669291066534949488385064908354701353689766705625990077723313967475983936242648842736469839736110820156628724673605926726939388370062460824883931707264758017528339965227500724595221906971324469463674816697680683405373251900484309543379465911769713264908363249247425228758552086118049184187060336477754887268316366708797225023230856136358342300065388300702729792059392797020973907318524556623150699523678933649900576201022230574861014388212604907909734268141666615054893042459531518384033262839637414995511405386993821442937421693646823754160970899892766656892899345877899705093727690046378036495455566941350271846754875565805879841300235258499793070824535655855665938579222627443643646585571839800432634293138563724089353259136924998837287750343329520078061126648260046808639055438351132859800360582757705162602298829979006502834788998810977358324584846424907573028098980295698830424225886710810683526860734740549338246079632138615472176806022863156582838754299867985541845063114533719809746855862531135390752476082912658867073331298162781297256014606250238887029729259495118870335190423363701676825105321290317435590702938022415991228709799695250304639236080749161136874236850090252079957312452463271202594206113980744364399929980639980009776389708692297217338573556215436268796615870872575152323206449016189224114275194666409414714719140637552789455154913368548696706169691881071963677497800374514621958715536932146645013517896289928194057173506436228949604737406049377929433685810209336565122802104464558262259660524921759987040041995321406566534681590621964998236852925127183142860508278440468158548565764958488596230756503758766691318314409189617733200048876861856680652011939481102779917181499514948604309474207019258762337473341227597935233515069082463115573918145793048136701747626497289900613668311079749830150160833241095736883928138942425271417460012820626855187966259987067524096145901317646706991315501888866585554633609016805020049672671750595624941700022749725996843706227406123322839330920113194701199169934164702728762616327964156966282760677645444671857962511067856165168290093601137740032294556903501149082836539240025939162974044709512798966763055001791092067313948929413854621286422033233210705195455685813293864565966123587800962602557817490912161135141633041929030583460909513975037953654757449401550353705481808458299266346473971470631270256402090515817019356923866228918491711470478862060927429859472329245102274691114670694245095891918294744966330925521861333300952969297389885291580395453912681122579134588529151496912641147952528658172870223840328360980522054282433506252880323439882019705689882176466557068777227899027098462058336139559920145024574055803960242284686094841140338244841694988562857225605538617477178357888572745988617092481026022435405562128341625702220367478335229386845768008435131500141322136184326040541251352030002081985881148335787182992921271167673363091615908897823712804379456712960108306782488758939028420716748469894201504338675152680697836531752348422588612306130996628071165146388855462057165350727468120803246519688157132919700963201312266945390145976375486896172739979755636808815903996163518158817305257602226741861891618724620022074596744310173509711513442378499376273904968938383184381605395781012336005072310419478053306942904718303353550430643865448189391219130274843007332114845366456407818603445312282282585962855258442747915525536987025593113636086603190082581014585932182575717291411149818545625265709555698578696515522020433604846506586438313027432346824007388906132458267269090615952902492508935449627558665151048108967453106752829667576486661113884918452265121341847828291695303767812317943721708026088598453370704044606354734868574885250991999892885278755436395214126268329005949567194686598613880472544945251699416517848859734116119386577279606328866303092954026031488907019173157891909700915549211957238551973652623058699556066471538435080384808747706731096603500468669654597890694736152165868548788768050229925137463722894870628800665869143572943537815171571168353020427187149924204784254698203322293631432096854526865589013658194817351607988539030466840204020151138909697215620014190976872531054194007518272782195732619310048165671045801949356516278835619173523649513973255448534123058594886193359650820388088488923018181759144036683453528806324571445509600625607418856636261452831544159718812093431655989806806038361983200126257588682638582291936760711251832679865855300278041753428137790928793646721460890383288614336836656349818272138749751272486266287709344680320840569959469877158702168251982896481654541925938500059025705579332848494195668373732168199040151432240599226287806075191652093228362090346704931176715617086883057643299014946172751164192934008988739270940321491440907554104354649428005070014778125145823787661672147931870351036391586192326232725814576023372596742531422179852930169591364380754615134398918594276510095755158172465388344479009888915019452517665820779483443135671243125924979369812853436999933599702383630867489160515008208734293514653882821770550052117303058905212844754505091628723971302469389509265369608916642136723656794898588490057826139220156357743162658378937577871671475677961786539993484824956552870825673289628728511691228932336915752221782014531285632572492439433683805410324486118290373909441231393259550317942424573638963715777282910555154050005181435191260149913850690381305918136861023276748645487631368974630563503246497693321884578165605484812410242429407579702894558283129954088459176941418851084098202313749180421389759651947930106015428940431579513435807090078766882961683468948052622984307432004338022304042874733200672412033808129431338519337248397194825399410326302037751624401847976238901783499095238845388791842559343924734265277957000868917537519555787375051100640330319725127215745989274100995519499366153703505962684126259762461166800168287824186519597605196703678240641195851093160663780467808518502922897737385994500088751161316033329992796219843040009101428102221400820241129550670747073927860067034551703235928720519663265834358303307596063337105745413898430904269178974334450580036342483767046237763293876917685378968106340400877080884493860047496430304981074510878716550159060812255072525607172527178276405532890110580271000295967474417806341186172169535257156738831859055353216673809665074173122167652879315900589955791197433473745251868322169964996812554589451356749947438921434133145414911628161796625396773098577221099286690957983697366321911937256760220139643435081463915491279854009536010560105995564597890251832855429256408159866707806041587178902108833660530482548727962044943832617342604381406437348780410538672234557129539771339945828647013240816134273666634665148037588338824121858990140768935101218718251873332553995411992679527299984966812387353691419546467032846509053614693711678925778820805613063384599517146343595936449383770937496042297310156785070554519052185749236036660034601071649196519551241036240790971434013440508551919865367817161847424145355354748819736619880326129707076644410241003278206299759777853816771759585969211802175205616263619719237675460563488819850711447552325900754057661000669416268571984369231507639333843042001561828004181712233083290916781768951339763474608521104431427934923967055021146936243430313321036127344279223141991277466242627454414110487743700080157086146956036212246586728151620032165338031848677096512475178063991005943625633719033736909708743748323603365788680016959946407012427018271368096338129648677832228262611553065182082308890267539902852068736532651131141597867830591037317274837434563003767975564220050807210429247677542421936926688893018552945715120224043492135134387279744480777566601270804967306768426625122623376521713307566843644778158581131409026605563420140946086749169367674607325079482643145820569535159946643948956156010967465988360666637045278926108970945609172993055996261741264301854742928496803494078411260600001081583563756051317046396996821488029175635821277817823764771321507025430668486557599062424667263001549939466696180944846368482204309678089084880323037818728279456601250291263803775064297650024879824002631991039872241375289970359323485356069201588545070695744497041738200824956549686271097321476817236923301268456799182656876451471332124166353019392201052326582786006968546543233557022265739727885157910036561806836275914351937418922856844419151197692603699756272492818881587019821657582389514750778187483318616361628397202807895609504203182726788442890273894405555161246296996602641102724938497053004723622612263214819276836855847040973757718125367380261334779368177626785965870353005086473496350879793581324903355299500556571897954903630127237389268979876246595370595704381696983747257045263808348259908017317635853850752513467303623642242204353845188520368584135289577294015358451786312627769509511232511039452009900533825946648265381960014340638790060939669879832297402130701165836072635433475766815627074949291270625407886942186240914732885321407661174183180226672404138248811548127933162018187718273785876968561048772315693375028511468434029995822098377822715087791992032898751030066678960117889229666986833148342305015798082320290394035927940086878798317733673967008500168550141104481057504352075580456876549213956456541002298237287453686002887603920485962877805269987110595499573515934734517266822465188526947252554722540447992087292871427181050019234073157337070932450524966114697886927658893750143718372748788147759319723972220253765905840346760773012518041240828188312391040195137385321049834176432077135214407116735493173352396307894421364157467041367698898692173284252765682629773046545146788021445513869303008358635997688151726060348279009175500067278710830857813440357895848635216939239027511333235223788668489548236929759345087450344018617416888422099963957348925768192101363482715258831879150931095151884390769182027319028433093296221938004227100599669818671873291258580063450514859343624615668057363237748438318176664911451938624309327417020576951769061248330440257508942611336303183164598243256869544035694510169799654289346502690925282267472744785476144144721054688589431167705210261207956124961515578750067559866397573402496877738651729049689745812320572897961105135348255824992354132231383129421437294917952967414814710371584708952628629540598597174069372833526062042135593055573995259327341783452388469483971572204663734623692885780666065389239226412336206217311317062041802229313650033218138158977364628157444161630371067657773851085905893234387880375878468491377443840991947761708908785568047846340335916818474142102742155610555726222318392282663867477355534147078326028763959049103097132659110044605119892907588871599003486813511501009519330868175422012827129698230457638046158288037478033985067687411765241124827752280326502712773730726248390733577540238173979777487015836131610062029802124064310468085730303550235075480500213305153992441312284004753974635264606930042721078761896557675727474813384143093056470902573706734022307498225596222278114928156712856838348650342561423479524493763923663568730667357792237009618484197118605665223280218427179397079218431616526837092158265512190832562396374892302999111946834869918328014326751262666719075680288762129772905854315025834803815905390989895582423925061917638283738956885373148921650059812871411912382060299144128014603570622713993422937009277260074882172081009043323156945585159525519258873370193274378844645073556023132541210628835096318254682622021699591358385000847159113517217755523195008787300986865947615073848866281569591298257012204093804127384481493751349166114242346511486531282818150792500426823724104915342426885530229657490679304137904235354770446358572494510264331049773033820251807822255777627736746479689639608151211375240637091674269618914095962640233587683103748589693015378909606049177617788358467393650142082366964605955297146468567347717974575759620392528791765231672957832342729127430967674183456887626355690825815855746527999755856369360995193108095822927504432803101483380507098498614558266507549302025870888251322144324785923231023551918765531684397719306933313501642832835689069383462106468033691116202579314708949010462634469525132587789780053423290491776253684812700716633063856741437575096865332720780772880253246089486371439331773309560808807905848225152123966982457388207339609470787651116030454650848097453572652678465697269079976616131212123091289596023725794621534771755913642175831685625698417468772495560425465341110087817782035274505953990995196344987592756257394949352600957198716215059153715146889371745269757171253555067917004124379776787476667510349818490786785730308373989996907491373148566645659806697134662350837343185488259907375078443758852551938507907555143271495231113113192972710919261322003720740635725939575111032682253889794582612272077421800992541345203379430147305745750305439189173740884322862440216407955601723470095758087760853770981482945165299086617937675733652968792959021084223420471356304600546140236562525252763456953347719903907220304146226882239785742552874768484629091167672795572887358277954021019155657652568051644231623812996654610395383335584542082451952937189165231056203945978034951200447306766014621530441698180463941863192124487757705042679404005148374081536616821999797769802203433349294311537479629378739814638736188761050900869023884595230642864208443090262568067712720817838723506926417240048209991084751310020194026550835219990223636532130420599818462552608978296178816751687211627133173212290929966336618142650240444420078526242592698591289312229959571785331806772584452142214765631587838172980571242248850946769933066163872136635967809065133341710804375615608525843405329630382193645627180745967226667856799449097525758453931798728833045649351249060099256167825122062851291852100606360286730494389391054580917824909071573115642552114695055404137939381663717452747309276965714120000801595543467628625108952115646839064213852909187930562587661630935403348771187028491440578480919383218410217849092205521516079868641047402451602721943864921144444879434211068524822620591562105068947171000826571082950545354014403242908841562218081290967969352600155344203602886044051141503712609232070089140199521853821716256341720586624206447039059113310774191160154443259239685986311094471355329704298535695002474925204259074216896954090577102951707967150782159819607121105299038847794682663588199060496105800064259822395409126910683627265242535239391890817386481128932000240175461898954787193434328773452307865849847018547637607836508639237409289985217894198733972915898800195762660243561893535471185391254989497081994369413806757906978678350870003689091028686166904565438234323982873688448919396550718219682377805199844665870173401654884758600758347324896776837779841382789787971793422005498964392817423650913259912614801925953606909660653261858298450864909502400943596054062853948247050738896513742449471294771660819344395415776414150462624252081242380382357274877126032058328946455477840559957919610378393095818620327835145410554547500405216607250713765359733682309129758132902328028344544777061388101498604146942130770259171918363891998543090869781212650949273935183160928108903679129240072092957089082295644125782902988031401463938419846891702991481127734427151963413837575142525458871021973483293935528516236886001088268431766408275582268363792498188100105045651351904311542536122476902925180790896662960521453279072530969878584346626655568579060400960888860450927758548633614177037417299813657747858146028123146067177309783056944911035055096185692648419992474462911109767048392349362931216079262202096799917915230109800808319045763225682808462816139649558652643326997362494156518039731000882868863851175922401203079360046654213063871857235783557803322560162325573008497567469933570129574877460129066848351621979818446024982809562271965083627046262693515351701436694056989312566434112569501651056506894056014520296257176954819588772365647904490551945866465217992293393393960773539095575809515022120193427393177129169518804681868937944762359771399614925543710289237119728395919068047169916071949858812980044795919479473071706605506672295696891387983917235333700991453438353668031016247973625756873672357612104584252817033902547445755325755481053063681449973736430611589281830494827527776166360016282451930235257028127573756677458459306024096552088657377917611935805782509662861615683624001276068516036363610825735726959853992423157456277976097109464427333725722528929563765361932028313557708808444907462626074039060646713881135103615452219705746652493275904663873428851243506864681473797634309324050407782055643858682663223118714287566866543271916899125592435619905283502573383806936906791401111008584735168546298975654391860110567887038489225166074181395032604588626119624701133103973687591813491570687253498505234908436298007709605743572281536030121821981000360197245613385699149228444575601656674840666505603181917353372115878117862114029872200469578047296357863489954896959566017086323092289054874175418802534619219314873447027951510305968928291536651622002297871861275665943921841668367482654736530875825471923281771855657932900903932273749614420689890998877597253786492367612565576799173980909813352323975911317933787831287954209135640144699070100326193665631472801482002181212139512055342509442071420721848481069165652279334209850405248999320771196762337393979802804946706179456607566767672725272391830575191494935899944472289877549555965638550344689672037396605749717338767084208410817336174974419401920445035562704343475887014800592547665379304300649112109781456040104917294720398754946880863729329004738095451989971646131572569303234410090903783716180189119523707628697583517507789948810382801501798977508769515184119807890059913333299627304516778450730635683998649358165775164382349372156130546405200454180301430754249493764496060205365483091818312010672532427957122158936692756581886530915053492081685544927631404802593805649051173925591778709272224825866888668180058812457578684285795510335841231997758860877485653968417280935132827824510757361414654228220492263178388000057830637262561959901008542259565526050401393994083481707350507153957201703776263292989320471721991242978015301028550387865958473994788921954522676202677636870538501468773647709402438669216473572831441782541796966200608150211616066497440493074111199176376618641111150551273449051003284289465829098566262869045655923016317509190031980579433035606691713028574963694477354606102302767133807379107193002462587726015816603298522755774655068726570081081930501482967343819671388903033314142460179664782207030028727680438106889720277661314339935483561385867267106101585524266620847004670155951635377869172205969812617944835208612816402329927292491435388710562977367384617247018419544835797285179953807047181450635211024855579122242350774553812493857300299634639355715281592275848845805601697675369189999563481050070390418182257602943191956798708698882428528112623408941446109315350447761642678787757651520577703900943299571799319899132757118542627422261994517054730739616103878840331527187040951290552359258113636275311387162435629324794422317969877582811111909291845941563800882964858115472966797832251055823108407336408647774896920207022106867343618950552134741025244780320611810215992024146599512875202029383148987399727111733764156506960244588648884290546949993659622053428347904631393369848529785102213598946875129468900904152401918628091538887891449418299313452308203215622529018925626049921718310394185221390411676995175967858097276200498358995469967439219905340203459164349678241519392132229327674914572364292645693280215209304741953635342844380010497137311077636322915244164338573902454895580262530837238346108575863105439383408312156408760172711559040205362496419871587610566036389689882772426537340276377882573773821016571620166832478947049673461954343471498083338623460627031824784037577327147636990064096557937880446835239515207629267974626558774910095750171564616411469645367662054006415592535180857408882098990521782317112683761428060697661229500338315812991332329614176378511768019968634381147836669142350208909968222611538213511467159402750925051298614532740563959910902540368160017845585174779286193266934493907383905446471351122025295573395520862555987735945926106341543016938928843689151603530323454334186264519191862168064322822745092558097893281576020824235351597168004563868838001967170596443533972537152174897731605534242043520104728379324140297289241158479917853453045120644923503543871444268356267335689641826379937268232778958491223461513372757564460948242985835306793218939935747205116085288905032451339525809456650116754979494841914209590692938501782023996687659073149933577516687301747676779440801525385684156894231483640822503331839390205650050631856322170698602797284764167492716275615704472645780300863831659949414678015899413732323617869649814181658662165855681929244407907418833949470492603132269894164721851048252645334497591283413982864459481313419048043312118003716888973896114906158295958514221470990703059788924806271646799363237958136594542612648057759404235767401965559073165222265659053465395495462543616568345685748670158870558599957894303730491111367445201070496106417618717494434181658937261928937292115320307822237061474964408647381569408041116650311551937916787160611971201452940444481441566080340851468524691983374825723875264620303578574369341980549183444330097920464298081108530700959681536610501632650990295475199756377879432931307297222232771446244550617835371105535512727512168038840446141545115114226060444139046053011946758024554526948708566376637604364270038884623777069397172503268946594471714993224175371659816371617474970970088219575026365329477715301196455888971557965828078404101581865474071277321236748910346962988277660806029201675587508579613674468239881850872329606957462157129227959565649874153141479029265233909212970189143363850230289077158687166653563492303544587931192860597098214484844685213836724514561796415231921271855839327853203965009042668822007028729013323865808175946411540977661501007416826645413877128369800550020154609719016527963423738360842027254903667806280224215732328936853543941003313528998417338141062194605395741892913895668320077569637148201844554767705102892005563735587245072563513690896046859613561482597826107571827416836450440010753249227170429453221130047823602820501536167419696443478232971010331891997216968139805082242221787755046694878679862741157552317453783500065734129071284741076546534253231050270667446618635861167591802182982495094062528851531628100029794528213076012504463477086263595381296238330217245428710328777611462094443136109520042319197942106458179861391611885912634467299874309886191843263071793908732809662541073747228950602250838555259663906888488876263279214988288332336954162446353035134054190945563526094059918058313517783091417808932481416670315166283705084311623401426336842814173540446277258895014815413412404014344922048412839360377698157708958589471541460550827022962226934615274379588991463030802688187722967052744335211018279764282477564081281903868814532590257124190072173451521738437796901788066668948262476390981576312030165285732633355423799492725933154718805722943174563255425986013565136886503471793110822064470236015141785155540513274460289401938572523960671103915240245001298604733703782854443059087659845660980313095773088202426162460986230693121463411533069418942160017258182374711966618305015073291696017681625963033329089387652803054692113347189034847129373161615174552349891417858600150950039502447148422714736300566958634023290664365091152668741506679806412040519862998148926649621947786783743644046550334811396224305447842775650328954997341067766476201524524336238838116409349445276890502551877335289713358491894273893109149542832179726565057243776528716629594130649658574096085820845651342669468746472160626385388031488601760523159931404644069623379608428086603786688712910884837896215014541418937462581239234744912958635189267559422770155357006396326316532327846877653838164931503706403648663521513814396414586591213714364749367958410216402047594964084598010044798075844917797650757785836902913866538353159193763961526984709922910069008203685754805177829029917086436773427150283511071136457620414835735575356546065420163000530887906505552525244541673291057978957560283322060177179199706442944856777174754760408684769639323547040435640381114373962567799557098125463401658824263777404348824867186612747453284266182500592594891351572533238048482292638786265908075243819891039213902302734287899902105904638174546286140848808212493679209800717624721810883056862232851283432924175856828080996972881635326435924189435398818699799854487945757427454556332715844532004698141608101918561361222657274215146182110647339124189578010210804567824000803771303979373688609899574878859944703726645400432668438579106119544394362268824853423056109928175915084997304875072554289383835604788933527086268099333200890651023446153391705465249388425625343871330666538525022960120765104262017500431261116601536508802727879969247303420288413626766654269042885992727172483351212711524245349018815238395167219892315989263016207354994547196236078404205969122909104801332817881348509249396338874838138886930764796859789186188831632637527613066337426528098987026513088217667312420841246981633222043697446483396761022372655492954774323380661960356136869664639726749205413376650320361297121317025893948548995493212986700398654974755886701610755245261319389879063626749254034977814476990654310803880008154816945355265709031393511144293804508958950664644809637660510355853817512950129342691902488565498211970069543562602342326059367679604718656121050093361007581900764898717080306786817493583632041389253640818602647054045024624654512814026826222854152454520515709303045054962162320201348009104261595639300464029390354742172874507002151231506230337010685964566208199435058789614629969588279032675343616420111094977830686920850803464046387615267029274167232646894943127705959306074570146345791405243962177578379244427600889685326598725842759658253587313463505697249295009425800591254760355351254937161077791227716765023846555336858043502437542390133101072151104047429909968964557658558634449377553586345414354975386984123831667283334456896331074219137335303875423884916111148908398250650976398711745483694791157433033082426561484910591735967956702046157124314188204099555764656968679870702324890443088685591475204285145120742117956509841638535332739702327074170142257668086590683142403728279593199583096383551302555012312928602951360393348431013785051652265474831072022293740437015765399305321412186259340836069012775907527439756990660348313492161475979391633558701240114402227136438189795464306528013497753533047215390324482856239326641491730234698458334102248504812026954705370704421301807191412976856646913171239470836511630726192200747017566440685475252433345519494751528107622465326598693371717988623008576539429233304176255567671382252399982235345390052960516344619620881668904385457027176472128289578338367713005679002464432448944650242555780788310556176275686620059031714952586328653589719425782303630984431190172868831053394312788835990662127231522902532541891564682580838838955115880022025469153951648087310986745757934462741122017028112848714248387740832007910814673239645582747938040600015820638802313303666580573797628680341245480695548524427650424748913865950921044694138661872970366269628261062266606450282630548638658976232620197590922744917989895234258029031791149640607900796021851008783948051194167254420052040594110128040636546992536580405023432997298209239058632931545050806719205959522894011149797806038060408669915884983809043237320217052840348126410511485946786490476070863401601430521663751263634181749692984790250051138566134196592361361175024142453555026943325718715073452105041850160582452953330892020579532669228807518686312119428349313851705357721669031219424345808009398035917094504233302625872307796154284969419135361621298111309237530323336661045119768529656399629451643594032886222117728619070840603391471311455250013493081605864756608659719263126609677052883550983537233637917647220494696836389804617993659083735652778906162010093520632544918174968224016776443465323292513812763252073563680912900348793713436601562259287742882062277372309811791408370551112401404611637518463453358097193537227732723739176495384545387174818783133706239030686537510507667047730429754525029796827366813924899919243169964961955839829875810669149877281166695345068514210940967344248854973033927201819345389234562209575351598256894266370810867523437979284543377582402116619680177883478532844106653088939293674663942856431877578752762808128280522886812710040297944276804728585163741549541605522813908472685515293236764240214011830807415973603248214370602324629432539616380645493478103864594408111658836154334389277389415359889588546308581586088225579547857231684899492402506041212167454868131547011568679039345743651161094965812830369533917716164716432025180568492865869951822822002249643385912175589406006786708421287648380602144371344934067121469840910886018436210793191686200498931280353768232815342931887695766124868225754440979165254089571508528271795915443620749288262210578456102113863563198617475213225264258374924453654160228250516203597884418657049133845824976078978258182222812029558073326768949902071490978765961149412144067881442009889678588055563559700378730392107859368718527978651627395095340813996795309212780804735773980190322392367171176508150395254520481105486680965975465141935879833058945173654811399850760162066270618910230371511850440098822471683718093117984267877293301094817756543256605029301314147086790661971115801429377031972844998552372280961657469946859583458732331374964101167729481293039046481327742239816087821998429830786593812716578483621821404374824205951668839817663300733115215660612198866232282786315567781936492145203513151569451678644187837273287155025100983770195142083984666674060184377992037727376123819522546480245845713375693863129494983484979989681614932065535316094917626108237625065402392510921192728778465462348912765104610767927731121086742792827239438420389864742942645632000005627920014331395694155892780163754559523447944706151125126296971738718462865599708046110907554136338688946323965994940516224256251545501293280597380955860601048727120344372707082478177481766396484570401318468949397459161675695134188576147002064547109867025079661150210719572328516337120117422541862042626734331903237437859331227097710129091041434271061143812789710822363776677300903638729544842329053100024352762450881589743894195975474956301999104615916381775106848010175156873825872496309458235890470951721497999823565829355336913684741830073082628942688265628869173834244587594376199886740420490657327881902031158967204100405800151034918311319726310725624778693425740822446097721016860206391620472563718965055710109405655963116282965512923223100990704623483752643946716598730110590317177171780542073082789062485793774592015363143290854548216009593151627803430753836653181428687821440302231580040640741686335144164333863451736270827168124174361184471526595450615373989839660302401026528876399608441618471786533936166231060138856693577459262435446005538063702127021215509928546542360077753653890551501788805737481325845200188056135483426520656466371760843897051698308820212122416023790279936852221402250260425265416780146459286306963399859856985959154958862061924724905870022012494565179575119822729881190821166570998963808987732595716487743700110880445003803755192056787927267335202450528389439916398064668178028819645176482068984646817277488018685299991157731902818114185780366326292172524757359268312093154111023155730775286203406010298993424789884333423546504055081821128664709166778226492456885176977889001399236544399882005067018743593061052697047862033517734582836460384435083783412954205653094917191834115432128604183312414780437230568981689128886981797069428092727359024564550123744056083044349289247464321620597566310984169319553971661048361990900856867704742172468286199351702575555799430620800533118917799892279633720375119150690927726041026810568417844362558767075751869654674875890489383716559075287408301983898752156333959843770517997249968904146584683587568361855626077401164501771877469687764008323454475125745122476988618318772500010874469081233541346270171237973768485674708293806561802758367080731547319231791195676832222155077332884180817501962743051515847628675656457950498522809918053456793176879147958917710559409935271068133063321415048581584842796625340814235341180028701453383160740327360352616983272991310814783882677388239869499949482457138670944786309834273599342273174930257189107364118442260084023304940721822466165317474158337356554919173029669080339451430900208073575447373540237818748447162008263595946187662158620777543222863909964872826859269947570245022095172828979018411879582407290102484257366411784141421849927945087820195334063264251896335046100900454357595011795537505581227973710847517956979047532137701795874678469392654354885230612075112437872772222586799760802420123892592686241329710868746996421506255695770297551479217651325462935456246162697479874528273390626735493077041543834151897728996290313915768360966808694132885885297000232635302319924105976514766499492720880372224009755954550064424175460280659699099758594593057505064686286110624614459838397015116859227250354214119347618339115255493705312799514358088124479165536628851830037218502250644446193879503712865844005981040516564642403507683298703571372161107586361138056689544539777600717504174638173675778416262815068842338521454902587775682585900747220884495842218396516416414184045430227407436773989103101464686808304290964186560582541941715026880871203328819754674601239143877033275856456333621373609501602321603412133210657424159618818137633359953499695748161786916311736849656938899813978676935370861351922610070196631568138147278948413860360832163258711242024642879055925671149136569861423775087327258188280575226098457435150034846613423750261084017322006104742362881258069242786148037225888396380364902495870676144440099423076801461868034174624536404641634176438672766362583945049075776663150884358036493680004816375497742850841866589140219836152872416965682741535398740963123936344432696584214661120658384511040508468179074459062629248665009349211772704138739327517882526206024208919950655781617153421192592302940522889099595675688336299734267239628904961448013834940573321745583525660020648148066182483270288633713283871327211089187267150009605612207893410348125865926895662785562289313428512907270382699395400828819171025219817844836928214198301995258138092946965603647302315282359569500466824769114050443476381854533902738883613580311280376895478327169653137286124072528721213162993773604479013943274561778416947734207455178475072018223011535511234227782663883818180942751700986133429352830411685349359213333823049041474334793129784131611398445778151037744712673420594954584276801056547452383214338765020953572288616051255620396218953267700745959332832637412631169757770047097907727026848157722717854703234555763293824181770191865658697559249330838387805826556591529471592693562631462783428448815623117203605396984458167526033351669349695121408161659465833629348932021156557506093024398346865075725119964792655852697835494025273149902399165222423712384224463012777602110458640383160839445576946959805117150895324275229015356412935479293021311448288826474723144374211120357616252995825288273297253535489589926339490546168488888483270429219023549347150601752670069066810941824673104391716174056787861926093214673811987954553343328818306262978211540760983628144542829949764464955419496169698527656049514647651215073351431854299717152919453171284420696366187920355211187696013064651700622864303494579766108949610676222893226769587116128501992339241560505598230840515479831958854075139588031214088419617778601114754474496740493044302854679407415075261584699011826403864263068031969866917257487466756854201337333120836791394582323974785339387377215637389960688806286674008030546803539015417169675298810127854427655779311786306849209231024501982351703554173822890591924558249858378606040633963664711523021498394466778033126441788844967825834180444247752533578158997691404034499661073431327376038484491242790239758894728438321967740267888011635963394708213513446678743821259282977225307047956097802131596455637164972174148534645718466489925626201757641775054706563274399670486224755415994877560554013630999817235631681651120289359763667508250542693254063525064009721111874709989061972312374766685067676215603985196849082905460327141776491659606296346102150220596979885526685787336942121875736485804771940930785342069319315328216956086804030260825865106277265809888449349017310284314142247625804038444469146762124786447871733733381207476780097561336495153851115413498097674451054397958059926832929756697360847638991170360359224771070969342711084140838314702115604753674945540329278080367008116066222341451873758718671086343265095833135094511962729078281977285941133204729589390592829230841807472020863618058075289238365537006276208217088707526376490809740628246403116285923878101292346435583768362982060990777722592444249481349082804562260903432727115678125667153062005953651156951613179939884999003009827476029853116677923970692680754688889047008148943910809294446482833861812670406847374727172165412499744658909590637884329413399165254750043101627261279543567078353361697085864755013413582263851304312537939728582018642609639828666821493947056218314560950628058637897387821010287542508102392915823620130129795745069911027203308191697938125058564810323107410990930689297816983562371368443014435034840019920187580133342488688169447188220818225878669446610104481567949155812588326600606623497714902254592031764436864212134178085311380021570854919502970656489584309037953758957134502127408100800387947720890238224392514860146089254057502442455069820439895911121999021065051219958264703947855210895615860421417731463986630120894664669810448167340129130114963278975060163303526290814594489598263870540985165388243971653890429226786030108098022263812364840536227382827533858246255338583563307394656516928908060901046162656316719135176381749277323805451570466161990253366723693251750032898802189403800157461446440490072610338504084736767059386769555998848071513270648207031562196233339831081028828059130291131881096076366089844683073683514581116749857054356478656398037861021335542720478488313860581640234446266188543997206408588322479960624669610064827590777457209569813480624454866100841995596520697736643677378007425319831432049864240357517277616843070274710837147258914212185075371714756769375653319615911522643407023848586164073594154035659942863944497330558777792178736044413100474481792854050754261946032519018607934740333133981833115555757190014743455140008086804339924388934159734471157353091623215397381034176881636816450621100009304752538553740554049766432028861135551761138748819175263441880664593032424312064128784914060749023475927603373937956270011920388972957970590306326699559548192435930649496656030392836647667247813583359990966942127215099347623770858602857583953510629029759578292950801162282075754070561218161411621293948163541618772993544557597579465462655491811713092508429821978553917664047389180936029837343233165438081543821470940881978951550309232997587371416819305567844712771394842197783481557144484556788158539961971337327365200780665121527541220098534464740484953599497183052934223119566815741281331879996364922489720286964828229016356644638835142385292835445465307190184331840389879272783786587896610923268280839879782588305733197779207491165267324476485642174024166624851997975773361199314735250855486399177429092030050313977163489320118827771964670904382666509857490617298467855206811794332652837439065702981273708170455468399289242305966309472928321972056988156750037768438726231376601053821864803278247876610864114453793337572407633506872464118360196734132611726677851215153150286206375571847575748923012641762111640204064072955856710378870485017984766741191605766525492688238850161120029134814116178504279068132505498819727928712621821506213539159014315565320822393082229133239394858117802818334888247505928835112034714148674650653136965377515633219575853989027825876667065990226098690100059527572946140341500137702301978580925537320645131791904974205655473108535269284854483549805893931275619526724708717613325113086444945468444298081058842757489034929914280878972381933072463311414947275589584740056011707876787957856163897926066385370191758936484261763992712584784053341042365005111339086742135752641709959886968397539683154577757683070931911685610413510258160528024756243623567148206408607207372332856498371640317900922177669274526085643796651485329922075406862265851197547640528369739311660733025075547355272387732090452974811899560428512914802820933361508955305061641404726020942854279023679502185752058391222263588805682276720393157023499444958742392582672174459891758008871770386572657147504698905250457269093394627478506021945499966568906308507908007200769440420146068313739817052604011461602205342432231466394738683306815555702014281111775782285110156734962174158262012328202788814491871396226008276132999675820685615828368024211534414377088296819943358600332650054641821128679171246273249525086229677086886231395361385181674605032502070536852562110522464492080574531905279258689227314581594109025460630390227149776637989169352327453527537851757268769322628647174990700802874208149021816226671503078973189358240724801725694231401331439699693597969997768065134016694881674878800982795480810023380301334402945465168261035145815368046328428683316491055884269601166233070786468094423062108266708261571944002685477906839331477685333667717473164011709284522193203199360413228095427590278089403352378718309390689233566978726801139464421218232793330110910539316159031709911315228458464904177029652867781627481365838511705221104954616008668310276142944334274616742555282481287678861514066699381767253107036686525300565309865957909070710943051859646496801902668294523986983061334577190396847660632102535659774062493329094308840585388179152892437250748818730047024351904484670716625882684290499191600798322521572875974675882644792443940611695068739712387292773033030068823477062866290249180170600601066887048976330409952854999851497659290526133435760625786319676566768114714174781066380823619241583723401909186052443305225329995470904230453814496693898836106109725402768237447919164922047597222691700399068464030371051902682468165727751631853769589968475036682797562091716599844499330989869275098313631070015562215943299633092619905515164406212234239509781817469190853553568358752095601838708384995513490884799323099422989469153463629574795785657129157905619829586320659429800776640807887155175573121381182785172890941820240242739915480742288259353242805369825640112025580774871956390406775065252014639620660791132273048568537500301455559917637877435938149723342524908841090394088572048858260127602102625182926721505604286325443237191365554367853131339877474232403941207311592770186098530274152467532841334351352235676685286827952024589999690955208223395972713619239524985933073801024694933940181836369566058231085773893622642399118693269864347836290222032530940608403386845745260307402664347795353966067900813221143099595271894503025224111211500334165501194283199517011768590616013376947891353996302399528470492542797008915896599406023759773777861336963949059996153149713715252949013284844786599553010470425689991429254590686569290217660244442960038171800706602560358014681037353128747719572730787191315635841273521533474110311131787116030451013899792183956825179389636316928241672147990401766168315557065979195620814028004280657815454045904928072227044969237466785670748255143474677733605663127914587826329523445282475022380518429878421885535185500700259102563906921023843482628083295532719924855850687234598339619354128378521445157206660041595560059553834109996686309306484277008421380860877267004117617556471593731402760938260366686988791735101893960473042076528456129694191812633859833051316939170085660409272588430613235382354312566899466569906285769232367993354912346777265098073215206038107258271032191511184703008135790172115633393610431342409915226744542437903570466536636339099084497378147752292595148782426428033154134579711860847799593543185190450177655491836466097887546970848059755517061342393777847335522944799383378314003079256291682555715619270206969673160896709861636029040702048721281009789822312340272822207336548264588002815339052138918488970756610862984103879102951886818402184241315944084338867165385295916805038373168074124104539653704819351097163290907968850324154154729423241038732235519823466705675075529852031956060951078787358338021473841345250457181498523650863619046701391707880700522288315030278382134479932943451956128336755700236663105095385748516459922381139502148431224899985966270963148845030502016057483185720302005510576139987551099894984605925254545060520421360946359054426884980301833267190125855288735404740764807138211089445853398962184149798321538852834075941520788876183313643569154394813768268498866588383284669267713313689051917764908032285020203749083884731182904892364946596605322171438557956401594039773925680876591105852169393624900861000049750222570904342920049666972908764761610082854014516840489112103661333575469176313612903266111408766021735567608077632243597461817007464649357240691297171043744698476342734866000015488043845782673141593810315264584924047278941597129442604155750983547104668480584838799913303949971950157307807503975704812035339021857243370285184417193922541619869887669715708641330497686743005056265121160160885107769493267962651113960543075259514412537554238352927813719263600566060856417200911073249051113611120883497412461083208247105323179642026633175864505199981394203750506124827015079608683551373830777031017182067704233370456426865157984224067577919817254214751417790989523825125431284760237998595264640670506282642729093309622955282565281422704018318869666918566061629125567759481628617923177931993753840372611352052443919442638925613548819012384285809680066560555982504604354884824738608955665329333855870581906047016395914598429124956555712864365756539661026573959144680562994592733369354030906975783983276830132397446135672915917883255650101377593441681518072142937942835465987328696863906512453880860766429095926353870062815122116952437603151649217325785244682243983142847600537769074525131244127432405640602516202490863896672705973589073551964380903472018306930705905533551066007844151775822115809105647647366683476796556430213463611078723334277313154181063355989674731120983279850863501169772013559631513965303821182980153233312709120660675284405059694644276669260090780357288574019093355800904029119333342731143714564351206391353207443650242823615661060659401782260897699838486364615002133000038458379261211162807739377590904909627331894946502238449746148198179810874863843519540213974271585846890472401044076213528148731827372012099564179628260994800843921890809835619513801751759268967328995994794841853873887668351314771185581710245983144118676445497866564868138225978548936094815945438664505925616514820595738754487092037706721275600634524044816967243825150767616290698999388978064678037708134038345388133460731624960394291201266721940938383444854845973596058980623827283860078866047317921734599404759474492470019093793360025598492714634486972977754177757261788057928332019339103112515264376764729900750805798467930824427660315403231890030234539067186070625664762392800602492571902532686848107704114735367083055529781792976759783169396764926086440637018824154338148031426812465823018239957534023201941530108475742479573185954721933304799145639137163453981916727157201073134325680986023662250458451712009958760354185745216144168216445929761785791130414276137780090684373269201323338201965895242917924609542831295580801307067263337334646236545817080683462281431747504367009196939367413024393023451454492627412289272730332500771725298198602752796304314909789011520556404476699717181085449463980994510267876055908781406627950569882833764797374737200929690489348993231706311903411136545157915382241499720085844555296459996313295621394003540396250000985281240555327291929326748211758737560320069940713814075290267147532415977583408517217575654408530116007203244413238156198693973071804915002893911187355622542675699009795234295882647743042695807955932735581656484535007021226636989535220315775976309164482375020795437424629547114133099801251852431958023909885544765683981439094336671408981588808577385808117319141515001075052267146704984226878373549022528204282498649625668849005087291147808440003889207487689922936983194353033317899489203552936843351123122154927775007173795078572235541530783625642632468319890990321240744864049064386503570279645865337486485176231529450573599834763446454347229639286630248009622760244555814785809331175570484571753772400277422000617429546976825295658599643303930705135833767326565482633428262569120080083995048278331803955069837672502147602942954366371038024245686177532916160391310497644715918570728943321344927076462830015234630175736962084450596628291947343881444082980852168244003128419164932111595137619754978933359814881250690365780316411314563206171179792907706369305536511176943050764713119058619632311338620371440236462541232661051674961477003427069777926222673113602192579816728273107102892430548426139098483963228712335504086762430839644095823294318116654836473679219035916414460298235651569991860097328059728441006672568803687724289311729625295481671406908378098731527904373066172371427767954821595255904737389901904111880344740178066594951549563071175155117656116543638727269035093820147755726933822563036215316590102714071989774179334227565238102128522565100983657577508064405281931144156666567467530004660229787364867970974943096673023567181809105099973731700425302255383775645701330866485193787063843846068578518040301625329845943395337577373728101409928783604134529088040737632503196097422066445192859669442531297157360997108018396911024444351227273141682625903726664606703477682701552094267303576479846839214442506892401764744578420356330263147247071722700827636093934944194136360640064103696233765966378681195264465372283425914741555694758428123827383494807234506561941707933038752803657595946765304122492047882877223722258916629701550380303661510514911968534985132927021647286364254023685793290414500202443744259891863172969943640295399607157725599799871855017339235437450532304417948101675998567470998524139111216422205971297651215221936118417162576927051697304712995499567415796277180762074811912217264816341642935651376048820348694576928209159278746046500789940517715901305230874866804606605536658486305474147349875274066294982914408742410453682511550042883397114219880091827904095244949094822367695087222698250089054102246089494872203019105028276592694241665598203184552354555656575183381717633372172585134065345928158908197762561695442701605591059354101939821196065142085308132743929600936600845009546486803184498769102944922791918094019357056689365519203800244614620011623270483626713471409020243123944051524594224044312387927771602097126078438193650774119898081868400847339605243988130058036249254307995957740276929425499299935253531784619748060251569283204227708281881096848514159353315315766304298418368515942707607084975546249807382854981943079240020529733043950788155914973887385955699486936704459434617185078680949910131003438618731266643678052047580437249168142363701979611237407209798691924314645917880125727328470694464065791671952933828082054672319623449708049710690233272369360825320284079443122844860567611006192666019039740551322069399740554351040784669066084742806074889555058725554032096975679918000818790686508074219253736044649062558072855914876348075036442436880812028884144282213112247100561516303801508930078456401910708411904789236537121703944571464812571441480659337944462496209850250113584532573124997653271132998432566946168468455817435409439481930035812496818344696774320940091806090492106230132749565969800661193955349870081663352292366703943802310526181891059783477983831154072234219491875821921838489416235415164568068649584786930724606817531092178744989806977021890345787767257551896595163634961466648037881481031760895376881030074513898413636833380070330234381164239861348758223052201922521315896438011220470368096294201589429116660650038801233214010084724403530096571929805352630790091508280733889028371316204549225464812426701200439755915544265826422393626865281831708917061050206915683066490315975855621006936377797899286521034348295862786527896621675414129549063520947038058212089145590256249043616077612062705343137260064753766199733335332020781787909604686868381877072579403262652575595490046519298556638759197344960386009551390053258604922047886899283969034076500582224627364737366349901956100003431551549677862117872267096814060215559952887621579661012192044364159662157864225634090928288813248416387426429108518067233302086366616738801619121266276782727586844751820827197965958920478576777258252187437721478162824038946950406439365132725262867211793636200372597254692003951296859232645757229342948207670685852615901220729870810546966743400468701006194912645808602544851940634448850501741707956434680775063803446579612823595032527312076901204741116025245427098375279582367001071576681818386023203107969580337662128059740073643957684667095389426048843669584390662030030846408946993376591290339645219346692222950474967378293158505792590335234268665881155930457753487774693662388312727913009930911862439325247820297740830105664250174333892267775174618197559091182394639962005303958096062870553968646057122769618378361751123845860292926126407819338947965926746684449518875224166142137170442058185692737936476367627527852514642685673701651501984589974228993040768709081610852270363799406106224390233681162203345500860238763686300688821037006663909523124209939825476923523125288681722068750085104693026186729719653086676965227482386755698657910110247788989113058616666533226756998698213983378549700660371302020494961999270783997905627917267954463009521922402722398592694500614398047912792940392031387876044732715230300241285512362864856551491310079867429588585253946681807416001290847938468959040806274179414998923780687263027835190205088671469239610077290742181675319323921206693689274394480978124391474140969235394824150781422674300306343781820535790181933790955358516145784130368061773457680732505228737697077031903914666019398670814084904772541254196349301749086382948513121933201671501354122611326420711667531258841350489339689894100908264421109019249452653448153155125788956609408532869190029697211813020707725806636223117808074672036077396296596400566286670913211307509112874863993467085153668202235747500983171852693698518865473176502043128986099345209272095832070821496761881017193110939405283953233366976624834785543256304977299071485124375951838474860657713303732650485569725257210612852266620341864919102989252047525707633646947035431478595524688048738945716709512545181776556860532748134665496555556570103241778031804703887433494047016473144496944454842607513098813430753120200724000066979233372369357877462220831500717523709638938220544770665753613705992068976692908664044718368043011531820155952283198768604011317231716376482232670673933992466593819402338187829897188788261637431225238895433049027953045828922656406631771485486316696449375403646729562081062761686353359572582043636553722423375185144305890647453858681168863098487128027989976312601846509632557644641665284662780041096774250435428124651245602682195098598842889157790829733649813954089860753088441511488997162078956303212550068068988711587035303424954806832834851946862420098278423944014196247765733375909011303785362460131633746020414995690054649964792082994826210124044778240041060467135024525613285938290374473637111698708266548982324237315554747961933367260075416446428142153570684168432733337461585827808198145240720563320567227748921185073129856826926720176352029603985700644270234414604100456499317848354301922998847670618463902301914658852137448640206953041310937796265924717451579072858669200033569299425695040115302545923591129924530340453946434839728393352368636959676389056539876632410291559414260499728998604583934112478418828586094575329046694112830750938831083662022640994928236164299337036935531215476177131204957403952070937709168816426699542220090305180900081137840816627890995455847929282577118459030566127011596028090775715676203499828413322902731649281374536361573070262058733976273573297498104344708064659831400753862364155285165630773781614388415202101329010240065933189486631738599413586453745027422181563612136829900370333651492551322596593354578400406004932277266993273576175621799502772664224315437627098534077663263304579069265014224873935232323647436505503008808720218309534794934240482648017001864770306331342591970675002193295724567814184156275104484793331005405946955242849154139653043210337638551306662645739130334492560928501974999182858248038923354021696610155936969235046648697888443778716111952307667822864518205008942966464617763617357696102104270827866991506396591863845561400507954346867008839707853178904265525706609399591386453217140469935167014239606416358387529682364524254362992065126762789317440189837151988590788719116671178248620336221256577803540983455536438376081278550948253323786829387442437525881042770605409829815715927584780798020436822556484178561583385636150430487818448745660327908016775082559768670812602205545864734733695741536859428261132945612521259851926295337375632936345372255476250321245113711846276429250539036992288434229250184952269855268997088639371287297709393207381410344740640505955333293033180527510753262258467722303620694939021744373258352491740373144977844330214839536017445362584545840425978702943334040881070087261199463761706617942189265060789566988639948017114965229783797113258259643964706897122986205956258896862937119312696918355172001198683136964549466565885110932628695892629076868549660795101238080360016587530631524127982980424322994789527149214320932204040115203476994013364098124893725216681819213163684402015128790130544520876871854893541372906801431752627732277493838789501086094004665683851912931212553406365461197686634129094511328135366653804946555860974687450472848891062521856076798676812991509892390316236379051215034085529883297611350301405925383158824177753048247483322422786983578428152398758108452557710524105098452382583352315830985008743741171471590473263283377088217386557136821349051908171764754528485369478491781207985025646902306831393453367330351832826462929879753218716223546032343338819880048225324070547196361946384069379049532442509688867925560751568882139166133893374992810645792158360827193465845365512162136356172161766032835971758953137202844667460467721191663507770038997705705839879197730695381019304417863774727327811639207169852312553415038126258398107576217678978990502386061029172069352836046738773022839698750040265813747555836956944481646038581465440097733067998333708595862601160294973389122435027394206548004134920073519334183862496743194620428305313610761005800229435293406809314321594552968189596456939853642606675061793961817521068232914997056761835261543563746547971152200644196569437848245264064777605978467313022831810229258020521205650225364622990964879869319623091660043888483093008635699066711759152239469834196007816051990887089830748063849528314470243339375148394400867637893307475217615704850027187013333504811934550854592212882527940560096952266159544735328710345828593934177065974720940556037259747566289102685629743722075025706058880324554157793789136550943912196656946111105273549801726132128658240761114741740492470719160400601809523318469767781454260869208929040978129940327443667667965789860398030879935867174460030889871413973844286863743550473868920361201984071604153277974993342176160575217264658795314658483477231313088410324578975377183436470530790274169682674943059033799005712759256719220271815375053751998717821210064315089120309043430454919132666945632232484063154908108013965470947021488208840670594947654613400618478457761386961074196157855727615937903321315958376997102152137467319272912439181248835391942152067149697571297357377979372711680234365251842408488638087409582161092606057621214494977015301595705974201366473829057451855632937182417963453212491119781408368464754021197017575648096045540960348461714585851397073838165947608881078676712737603471904648894686090897643420143815180320082118098488566780806321670028042044799817916711809386070194081923385266411959785640204993723335044809916161887503132977674833625040698642412628396293581159359891815053637566543238715671544833228601309533741527506924681217199653922927233821872728122942792956150878428700840414153769709714734287322854433515350230486480823156989235405609779155458936058325764897738564081359677069083054058120511370909176658884501186404574651891954905438028474622822925101109206940438533304402727767043180534515001886939509155642535668647747742365846190178308405553554856732310696618627013932147213699748299108608578632708897818467679227984121842713284928695126583904168097499662743237482746716809213881520328667244609237936026589162644658558270465713758744533275073702406268890791413347367659147552997003940117793503926421437390040780370187649788555260263315675174619736325247502068348103748083202570253744266658507963025769423524921866084232808378406264020481167819986758909526467545465409904070395095538290942651453097832681993303502136653521484725322109984261066639094060668458164281561931849616561255749158532751333719340458320296669774335248625190313244976871394078073439841887763685913094694179835990007752366603518880986135539609249507461721921957524128892103674295504112596278840939722081022881396894247599739371619033933747293208463469999780059699622318465299914346419906881485271543971689238394045388243901037643459414879197162761018757085347390031811799311709298646914171136237920948276635173894214967122388675255582067517137906337542926167311811524069674110234995124333929169017759646636885860968717106059708237454894044417496248888658098316539931805205208204104913213486940725741956575821260582126143043673469186265361089648283273445007178456762944263053745625546226681237718579602640487256038729173637858512941053164247218278149754314604169755709428599626316867612312622863518779061078941326108975403048289893182484218785056066134907574033364086841515370116158246068264822878691435755588314007391624360145200558213545862897537172700406214280809844811267631836512624997076577709483521020270687567570347710931762017282105082155285214105123336772853818053304433035338249224058397575559508803549141847454749029655533834342191530455377838959854530933460501120933420313570603528811076482478978686215416760669966338404892300397600285099476931343293357663691871243804283326881318517604830390585000936880355618510379024763690564752378303246162198063219127538217172570827032470489982047760823507382546443883821784562310440283538942706754971017868790581031285767760008688442289241064498838394341991382705596684355690535181418433260724036641710525926350692116745539798366254190607554784782565207517655246315596915499741235630933712096717575836882633102691405948855724948120772708771410678974889607738271949205045118862609554744424046334893123613536461427406761272002522161298801157896378980606117857926407229484527820381014190303270133043320123527549481125281621275912579025266808433239678350078042208129441893599295098487087296926432773985525973746663809591672098739988265549767776205231052950998046441895820688923901962386975765034502031593416672573908861250880755645653851919679389042686577664641696227698100759836055377582333651343242208960389824436099450045505831798079139406621283275832637373427881762534343650235100610710649154252179493203425225341783205870435727155805526408729576298777411981647211955118842262993219575654250135861943658771924480394386331942208505204915051333044566025197115328899557720822367587821474672601146237109631215512904572130737176077311571803112583745250449682969313627829186409273444988931957237759982961683151508621954766231705586936017954365731250217525727717884484097010260218135029747779543285826823908547288761387135748198344447568816914082213838181066410644421480940621800985768932958522094606531714117639819471235496251180077764132301160367142603583304056865458698914824677527230264647839530877225214327005260713020042888559646034029431445070434055186470514933575651145160157823920041865670060515516487876322844302006759905593396997666833715430394035143390656562904113017775106962165320691057249926400293996802584116993401418942998361027909011197427839471137929515439132898852420259386971435427427494396895626773046871690597973677268416377273610753120044960041109747197595134706629015597823207752873903163098898124455569787870832998239829267390019380941681816699950504051900711320937950648755059540253266456583242537926174192087805990398617244487964690691857251103621553897772593921802492527604344200893880514780992998361482850603692615777856009165176108132475608027992006811158688273412662071274672804146907562479478394609523054933966320320151016451562434862799261303554703210698389069319385023477841541029623140228033207240172248588454999178668801844543181638448397998166130255248878784682375710132250785576098427520290027677795838928207083128620991111509158182416445805223619179851846178592846570069500618803856689417306880297879868605916022743329317241473985309194881643546890867377041758197142045201618897628337959838337021290816440108328912525481668585432195600293965975749659585705434863207048548199231774319988436320515480714144560423481985537065577537080194376864388531462461426090030043955866387017207450624919421538893438613374478842687396076593969250784287558574158389171061458947736897452506064361921325608293490888422175525741597074977665766788493565840914462525851773885282796236164527331485991844136451798943864759032418091476759940960564705209057923198002317450912155018970750038910296838003503249597296193385277739629358018419439975764761574169648978247372415522092730891633100116570101734715671495227981868599763640589417978740780944418051570630234608267807674948399005171764833958005841616207206402144704283232753428835809628378156102816030813369556456915265480999809703514963456437672049014722500705651632502190893409913617525639735800967958970066049451517213901707574779334603487181378543750515854974242435621107872213173259023360393006481706152024817179681715630891721767813862182649759039894177304963193802979347960405953686447493783831695054006219355032022031992549186093099506622897989437195733150142495638525479128725663005467979593028197772916267397513663355827709922859778105927276213851863800570844299325114270221967481176424310040872644674325367895622389689349958034841210514762720356772981391942996833002880114714763714681988634517570949896369528244560608459980881661273619843333156941623310973840320065975746009729016815926486686239588648942910753306530236794615331764394176649340630785983884213811045062124898443428699450369921145534868143014788708907879046535456693581454583734333466028679383894893265561505269116146339805423012081031036205545404433318774126263752421490758229602259774499669601444653131532607598951638508102697400926271618688803818904763317542564952401951091031576284316786036413992201689208178989696538472005924769964729401761167810512776881280465158188951015996627583735322428497117368120039780281420990864294166329817276810082388402274489514210091262372795230258924300135409453938339462045995695501550974793393624639996248122119980383538380538852771523379431937505669633037486988019590776101383876086693804174697300499387685920775132891458746807530923070481845404661161464175024557030822537856918333062023408973894194959229062809629249232014320194211189453103009841853180305399401727785041118763386646050566041899882144587545784568905472409212616200380750860839864899979919300798631662980522276022628849492709826203742490117736216857109304904243096042024846933639692613264202737293519460919794953223149945973441932973654305813724943024224189430146105058413101785119862239716513852141380896477572196523263310640229110993790019338814437449460450141488471710786968426118044931175085869449455315466656750573839156432569773557941790447340947532461632039788975997366102352653016181312270551599719915368885621868018494989428095422114563737916169911960673335948847965207065443178404514661348607764008321252929360388324121955794859935676057098906135854150801466166327970242398551837996196939612053591896509935166743025926809559933529614053826719093613547080550783074134086508156058537721810591985355294850118193764796508965471754494674413365255203927516396347777553202103084061394159313422322034699628973499327822445087321290775107771966685024685630797405278409222704086898899140522179319393499475226694554585480754202975388884343352012614843453490971902006382267220448179381010355931095587586948777504594450252873301860599927984534332859574106669534890828931515383982405890178315435522290801370098130899059278007620963077703258264723691037809123997998086719690786782497759589160189016482800128459232100618771591210813166369790082937855692403984265019577608038629618338285499192272567234019979129279099749437720367770244920028512297328479740808085941695844755983112488854179550736002546317555213733280926954200402204603601808744653298806121336736193102189424506518228473229063089926013768614034331919800056274791330050298017526853338592213179112915583561140205082178918242655677197917596071438140747423076801682827853569157052528062814957970329044937749449821076613895296196184708114841600885258724080919728533889472717796244863482761885968226549188245619679187460375472344893336439767936969445369043654408532222841690500737047871265264562380497854665591230079532295830030935277456460414375803672256088078153895120747058255463475074836422322215647850056365541853861420661890175448736294872124688758298662803969228240959377607773574122478865861292998102125605852881138452678219803075232224044126330408150398858200960739279187264372981969784297361819544464948172099682298236412039535595475190165326760417874790226966504680008364915906261153519532005217166861826561308950056680122007969071366516378718026699612309646260538787866371084801767484292042124327315390529740067994499121112135008629640977001183096402080784242978936914726094960421961229388400428689661398656630042236831558863786663675072262711658931591262171721717591369530369244779908909763179334476162991926002117224831047536761923713102283759832491463592275143052182353128630589174986083503809537156163812828035589732624587361592651013727045110721590480501565350479808372941959105871435491797077465703521647226390862476841100077295923468364923221760448699606841342252635024210953349583558614031393838470666403433218525917797212571588759229090224452292876462805156063059933610306533760811066076563814659652046081586505495132729374067915242069224025642744363027592708567866843779946803247690732011937662652153576789565006420431595436929959173921746977021739479225708492040814710036489630975790189251172796711620377250153098506030681833892623126292695238283350427187352516376137475222002282231422839391014023234236873574954403970943164456577899105211053089833378836107628227384033473131318599723171386264718670490896941832221710149775570737306395572790407074769843969732378369968049289538476220644505425713194419153841559221939411803436561509015414040181499859578084008134786926967281499515105027307903768596116570964841364446700686506742984499862329470142717062067949512405248205459048322264777178898456016961162523969144809605103205689234227621304156459720500083882477216072366390033897545525084397117650538284566946023998488008098969799855847024693864554168755639062264328792832935434415486099826110181162253724098997077283149220621219109058302149939922509687027863145004971448917413300261748786256341226901991869332712485723430654877538082806856104550336088006817475482738908500494869235549586418330071180508893130094722283066041755151651020959224842721179949118820079254153541469385685600620905063368245631461083485110076128766953056921145150539667698732818108281266558795417263037642959839036502387624375946629945774485471008124381671694242491974537672259159361440674573264350999784954208881318494925312222818522565485858212212704948151671926249158183124472866042758900401920834956355466628987589612412126572158951541687898161022883196127825319572692195639042760174683561446840945344948007437529673704804659422117456735167575055542944716514149291117011202339456348272457377352304947390866328357595311958615400567339911769074017159382098397672965039099165889501561054295176991861582826138693909659619312179282270752686325378204101696337591302388054990087933414276258064421680274459863580387647329876909517767715704920394994945797049033205965696394061229922782753111476180604689904042818212252408324294192388399947061478317582298033478601531130226060717235574183691318291457846741222140570775594768256334374043756054630546248427171411043784334605082033627637799347936256655503837920367278341616827144722965398495570324709786294802917964098961449105660505177162536106552122595736350580030245976795919957276395939026925510050016242409758316423685719768903654726477970421370066484699141770175088107319973404146379798079881059268583810451252686427771411258722833224402994075757078078545289566155425983403851542540968293140380668530535775949571707796697143580006507878464564960174905621793339149717638490991891366733906998659648565724275994693789339059451353017550260450671153900709408663275118229887867500248420771954525350657744326626871192422611619498281189267938353394487138402216352516254600777889577174513250244419673084511626777147390547499646554811728251074717884882894120354887824566985400813948878482883922080754592061418799562860153838218685844207177894679461669844000412356018118389965631474566425108534565309289029450010058588290224264842082902572417730447388170942298803870174948706226112454307155717331224359768955698260382314655430331382810282512644595012636385466890259703420928197703111184833621967665839999178442222475555777120277808823827527862978845605338320464454878244380270326146235994005177289834093797731890100899826346948943443172238509517312402045888422666698831672443849931562631226695626396345836630617470933848119454455369713813707556534184314530052854874386390380487363400531545636767643202787104609350757802936140193991952704666277565396994164665038229510936364258677040200708065007148693007762278061669710273773633126306481991716008988825562300967200588681300501740193127433055162239149069289627166145201801372898244188964899494806542139768147734189633508280968254912401307844620800184481934805104619766834917697277964946271721422588320757059850767069671877480628444505876950003811487870457266078345308344062478906395965680459881170848392217060295906640788387997290625116864744139848655684366195775968724604170440535160681657509388819752224364372488829489376244046320210403977985691093271291769430139242965688328908135688082555581585220315530692309512609926359496134121572767885202941136150264265207843283897881694873460592407425679337444910448225826897048992038130038866538365842412502067688321953251180557555421542067436684844535897119800577327297438741729548328590730668026799606084392792722074156261776733729876579202374422788907548820050995161313750609138336082137461419048691078838920595625027920234026370637852566094861931016867462471367088613389276263108921639111118434211756243103301375682090332631007600286351795178364138742837458648775615003803780892123134832765604073895480100255123602799895114428764539574293732279768821669797152222932066869871303071492724324825391177944933916185096241060031256642271675140296799745648330436107159767503505505510018862550724339196715304131411573868929388778852880509765075125596529182077093669847926453988545722902044501762090835001613626274117804914128156252247004235953522682709304467148571861525535856877195593018116622200933914599852488039337354885072439901587008247779930349067766488706725383077135757974769652791287772753341329146042550069193009272690437458108778052408221010813249905227247248665933773537053581736464941549230755072954982124207796471252589440284251027004265376056936125842313059869138406076015269544240380779893682311785639146736430061392546610092867517412891282084454799251204863659132666311313198658122814876939396498593204435338755030974402901801463159257911538679049143771979029945729501371045378236001237820668467969088625303541135627351563462538552252814386765392363314206657259787354627749290662222478407666894201880056633889892684259611824455516439617874546676061919888327249177032680034115014403990817422327494539871612159857328958322259910273453225721318958813335173049978908136359298569766440692448504575705094051657185080294979489232582385422270100684852737336108810085699544807772036752188848267599845008069895794894892772105273737058590443280646458833212305840461576560646301013492946763862740610888838815903968596527481221814015244725131357296477269511048152387701001943628186371796328092131871126723170843250117606757250273534505542743729010963085670047283637830144670688337395690049645715126906960181412434785768822630390037364891665068001828192704572050417707973150852533530263779291583828069920929013112372033658669258822803496924978329563893390113879806246108929091882197185243191121622474836203916579580430834591687583312549116798572251103305887917537696314744222215792539650978165097690876731513334079360484533946460971562695553326828601081950464326171233561726193621065173303106251116702513467964092040201576104261484553385011515347524406257996660461377103806492209119625958076037422487643090305205509664689846916519431458426080535645486355439013428585978495657736116027548987615681320134922042164377008746913585180722958409223018202976562264846369400891946883251791634418873746567576577228696286776549574578338392850328892177729904738052980473264234372858268461201616815288883687620015417879138672698875864229404405051649354866248408923290014848573728853887505563651103740331031144471414953145633662743473961396908642179513311083589299747200969082333169360501819419382737444484629486581071196709288009119329759707558954192154227298337939769963443397057362168182041876315047082271423294204009468942551847955468751399807520935539997209304889237190419420581262220582985483935137492213088264091845981281265373193581933049150294598777989304019764360929290214772893662868679505839941523576423588128298442396132368759360124587066454124559771419749644265417219720689146278108306233916875831594212663801471947894563270290658724778828606051164934435533084973532067002089742886405688240279296997007837646329149235419116089523121341600047599284688424116806922387225696751614234845088183759620629233258209942760583384074762146472045358021706485877789691813135027326868175308510588335401246286833813409733946725770366797242971272749967322951059744453230143644960247877588165683423917875656213823395418993138068050775058424268458690797992037199648897775933262561901710354077668486033925518403896289563546225751547930611902629682317634910110222686096249575147542914639596940791982378226557229208878221173752966417968252693675363882963235756163531807129265590286831753353192346728921865090142812557146323125779765961570686682100274419421335083120739196519493479015936392868047631668515415349661253807039707513180965361202427494971007851781011860677806147446776957773528157782187390368679099656585657384130491889752901602788139505631383731302690451651577987211336125956094435782983167367752187922742877567359673276426626482849224676392123728853770817161334148458866484673292679896538200585785270705867097348643327339919922752848535173823711778532899864239476323688501086758985477645967053827715072539476051055911915800329021353790633587140225661971216445303313191815167308372913961487338499910725689457014405326641583547482575931408972292450020354781381475671353789583632961911173347533161343711246412633257095392006428398737114254010502776920952462691901340591148903897976647309196316294268906497563722093341235505959215311812682116848189910157475512033814980991983730604415838864189048371375916297898927464028042000809799027634096219458079176412147027823691121403978237804363119400899161172622632265455321231932273039937418076880393625210985871759062867539755294792320470165427636402204056614884045282333847161972600145123859312972031479930674646231879819223474752608944436443209724516789351889864842374424511586575676057785190728108677361636315046806954996871549615394495281019182824666933344483652882713340437045428018906200254123537804278024979988738617883527018498957068556106561898642909091883795566747916028619445230658400348170097618334952046435899090544617604540941840488337075317119428860243261767008145050108457612389331911982741138744076861715524249874784527836627422275128361253424479209763794549354055784085452111320102237010964608996846007734626319341275704562185245109416261124408603299978312947596878539954966446570561109021934345105437567018595939621670257318992019806146239782648056276720308198808195361178954141118476591290374583702182056261810773707007440694275163229888957365193242240528162774393444266026769486396014160663254654487211100838941749102312198218388192892592756889179565349656207818541860819123929365805197780728135607220646614092047889501905675110964701697191694861558109742964673001244433237867776570758519357876492027146660064101295250507921270308308127975758120298099565202403041455060039878711036993358787658071319417556181281466151467206579132200204843436547025423066597923698574875417600368049624390548282104622144115040286113743077575874934393238684419128989346833083929209303465119116025043329322427099533256080072493744837576501561713466416751802524011211513476164529940313721756677269555485826848075160150684040501071838469909932943516228151956993689805637136639137283124521046237210707785493439820718016491460511328525786186964974485896250560653673896280074964315013757393937202433038338082077856167590014774489306428186784428879252979855755367609656137848064394353007649691996221582370589921700278701983790358040236520576144898806665342661121998854650955632896813216305596396812116703761704788263469315309872470820329626812721560640076683286249602361153385965505605071017163600390652902439001479076629024004395294821496681723670050592008740418849259307978620487033867428508728353128964658337853504034754028595680396105031734170520886462150507538100208911033694816079340638985202004048478276601848322026509784918325736741699360794394265060219189775655544674566866115370397816638523361377782012298923499842604602827378337568851562835490783232976001461935984018758267237697150742211155090405527622191394244822864084400221809183542845366799272622690016219668790539855023365558235093224946985811654891404258055056900605517251460266339703807106784142619026737131885838209649378074201533414844644664856456307485624102727461856358656859255066862075162324469438818571584667686613002650279404710370093843632606667311569249878638794076841363460371724035127068091421824629881472271318836544431252757220485920704701846413435762257502422304381354310751342642812598202536173612651509980729485526184430907833682334119735149163311455625613832443474200648859947809619398782409412298351333894765712219019660035888736779826036798281044663369598719156896300569097903300865257662626472145914819172399345608396913098191022922028396926282246751556681001417135431491735498879124119937681307360408435338275430802137364109923120901405093872070117643416953342835349675016943676176365097743458719594232992879464710280109905438300328738854021615281177961509854797364852158373022144268198720312771883897021270076913610377776361844562562508530166486900046555600282517065453688315743363644986056530144891517402340204141200382541168520711021884430503149118353046134786755239308222503040828436878931073400498990545708811349213505453263255577435438810948842151104295459806988838199179421139235239588146104813574752534513975349523641179431189388956633755930401491651968466762786835237558970488577050928940247450704031505384304910598095704860338797060974269707450188655741980465417064078992922345355940978087814709146664802943808045812312059155649871845754606577289770242971896889033775143692469609895392763165645009451732779425452885993377214606993171063817194196299328754095929413014520318560276443751247394512743658401597409203416062781145264129246469865153873328575361491266941396706811927404154802677664434487685556109211414108642640968588044596740702137941101970162849633895209054402147370599018489980076760819626373411599436415803642240258222329743544937571041924919231214380235654610036384447283866530688855702211948960560841624140272478077918402625005040050485760563679974506193205029902850376803831940536052348884034181221607932693813474202839678001911545588083525162359932817312336314968880675427490709082115685064730532700979689892928449512977069384575153411317391717277543927025638517735748161886645404746574450792076467183055478297469928253576641724586864066560306741169995869489083072537273378170819532392386763118259406744279074227986575473151402424386604204860879790074125272286946324391083303379826041290870120885099265469385876823849113554070837562250111667103623775269659249336967112157007310575715726174122111411162996505273384028739436109099268411157938662357014834548491180473054580682510509301162844971516109680754506237232099301969809943321064176617549265365476814600052919154904496029482274566313169579184965888904903867208241166748484314131083792983919141065129087733687341320785299869562709621846529681554848099250679757902625894610553859457952041710103486944537544663666381125836893286688799497015529946452090317695943132229193708743952227385461406775998559339912422571336392595305329223178053898108661720064739080342340545129099534465886401190296095597242492509651882366587253572652569522883677927388958202738540848337998285402061441508077068432895281418185556194962147107619653636693862686859570751597560881625614555486527566468782147830036237967046723102338460210423206751422981731379526634789016515409395159832083572330706487790653181156560549808412384126894104356676576749707006744700233572053234301562259651754936214827317845399382084580981607812936976408388870697588894328532703787719613633567227780451389124600383467885827861303960608444444802452514367159057142541707773482560352959172904992545224018222231435178444664930620164538491588696705514366606397464277285167075039563292987183289788076763098095046552045142017521933928194453002150807366496539828530675251223197618183331709119386558911950238652506625852970120999671730483141737147380519040593003775572358730505640056303936997698710901193166698648141447899033956292360246518374318797162568376651191734983273544777267466415806341849675287553957041208928220530015799115862270856215326068496251967842719825421977573073981139921086822256812553383636803962138757988236797350082549702633788811617447757863750614855678951760451043974502098849864606050198354673612427799452838348341046973379465128142042345254221268541807723458937625608315198620774982107856742576161435102143247697592065618859003231978502527556533728624478392265353893095239001960934971342641656850094886310869838470844464388235713931500817162506177516613984844852685113071871600781848768904295620641275321151124527471489909993557803968445473944678320324346233901384323138180591543546168019997513073374032060254863503343516477455779651691340277833594639245791407352856609592236876266893140926095505188730986684799599525970265067963249564739693171811843244897762482342317093022096195203242294448114207281583713316614404013182731342163429176691005619667533824484232760477119250725433384017148713166912977155785096065914630062153332256658721574480238766254824794930702128053265602713067118911705358041895679544050241352151031618117081399317579496792476026616224412950072781368011487675540335886042956971160428967254330783890109411793101696009961695034833773443029512672548748685395580746907804101257131779545619868050182143769026734386779534966837526010072655762359443310325794294112091874983918690132450229136536387427838427035372079716111527819151624755576260968584655764445549815026740753411254578660008010876673003561082131683804547912308510083206862457537318989877110856117877038772189573388930041129709395566272850230089662428808611752632811429903808471436821661866606875905032662632544090969256758840920776593512216465428572796125175088032563228685368394351758549748118526647199993753900701256142929401062564896756182912604160050102314460536224921433507655012183854623186147992501798282355979364653704260223562681612448760305120063105509832322678908464052606991213129402603265230339488779282720329038041535866134848656857746982815145568074481668571086980223542785781630605535251132605170654581803290349569402191115842473409727324432546274758294197998086191233096881502943671077902110504970195258950304966529899218922526386868639939323733466916408414173719598076479421127758156660822281636171575058210489940004618694739566003031033044986455860613316961430432572704596197614518523891584625632445564854387310903243319552843146619036900450777115372650200886068702563626121381158421443040838840345425091673310109937518737977354868291699536856400787392767656347571965113512190000282346725772381772004532021722837515115044663775842265156898486431905403479669965464028611075165476806252836226402566802040626644064953280899918625158223520682693030268408921871797866750094422346409594995448656815157084835657771152260553753123438979591185519716117110055429744487452670363480640980924338623713444217832273882791542821961140787647456678078558758936365454484476125590729627220439968663654913032455502181576159836917754269103020281303029345798919203026592360636717795679660253174448650631860805153833255937672038069177120942285374318079330186581897137253112920396129984833045907189974659744809364489791127048843303558461426441636828059963875146355167086993450280143373535518667679003828280035518023007381495950323043389855272204051547221427544018078886179685408308538465705247109261162317193043468452124027879528295782476917363272316363405090452646077152934529568823030737649228449789797304684567801750363826714114259813064948344822445663284983049509971453859568992508012294668094297491559087019659032010200735528777051907840594149927995177845260764779009940237799747171257731682244274237298998581132719880465271462345672294724601984503802566604274328416491711578269555418727174093896039223473473636144518791934575525562367321424891410109938427702724099907347665773488327518064104460363144126361471899531661508236597788302840149518566039884660700167897798232037800843358862391965159026302717427320433819292777168390284497452965112489091107580216704494747356251774620961461065291226502010131706217057246984208043875246087245133156954714242509239778797795897537319439792275972210135444096631638292654965535828061763011264989509402088328026605483771809814611397129275002196622105619159942704226377911185376278308716944478524843952219605698066457657171311861787810894027168460497916310204977199301419212872433403833105452354902669082237812070800405958282280332957701177590254302142688118185360420256473111593081451945720852395760665393531956548718614583984359932159450828840607306082633442743730115523708914802288895973442230022032921663902807669898702300430456899819712424558151710424775739230808061449317480363295722013985096992854037668222373308090756064328931376643885930954024163579059542554118387257610607507485731289495689265417313653810428293971373887305219801255647039759114229824036652017940876558300321797868701770751663651282135379069327970220142158495793574036618410869113666397985052024837771016013580574743367172644533123589126908612443231882162081647823474365475931669355455675938058189354668843765434130075701160922067874060467860015030169235153372238162147089558770829934630523887991433796589755085035034404281298388946940965377405326280875508788653093787277822238438966924765656197494022300784756960157749589664185793447853489767564574373043096609955957170514436486587115213397864273427848847458033703718811066651395967875945409516961571196280937258702556555103333597089236200778812796277089393924887391879471388234491566839157151719341680387041869399988932654120122661345887772164163718342866561728849681697479940854680228147595301286992685834702746752552848887094495244200269589450723573785588019644133670232976557853660951121386733919702610319182353472961531880164409895106412906046395853489937454819615001384949992771364363909027483477356909812218144144171560225664730073885967453867968231859559009416852442754789519399618832586228628115872207434870208698966162678851598233225949227284092719354162051758720958450869490439458474884512595100888818254262881083583951057208289884828119819970631512969815076387542562880202446008591235956555637871564651245240732781146936773025359249508705320251413229550697090240970756543863787839574909507691936463229920773235271812630369859909053479438115943326988153955165528181243936433268188426602652051216892658986985328024832010223246371422484628976911521067108012106397567267152559814005708341549823195171730949306332422618451505223817503705421969675592906389795836357612695490667956612047225943318432292863768924347523042395234811865510406327813034812510241567720635736738655180801878809648786788985904003404159044381705839484613343001138414445850647330718835921368963234163420852736111634300939866419840019536153016093835759719537497288760194236121508337324758078266378892160570338424842508536067067553250687067792265075814307525924547585795555860220192473592537904950898127822420136988434174005563326060764486042721826564349551966653946845573256655070791366635702910103946387301250510906847750085263428107640499613067751242926195534225109712219384150747705578851162885582684312811414129945615366543635353961560220108836234365395396718432501352010465111695113496602881963957003874280272405909330018948890360503568262723600388300610266838116439544607093944478321180834881420601757071000743489506424608707813745545891709754725703841697097530912423775201847421487723500444486728705340644686142235293046745288313475075506279133197206699608881268784325323434630392119566798048171818570430470170187858252748410578516731489389897053796961978786418329157940262679257538549245834162096976259351928266800900716043378735694244114720741176455257946312368622748296811931013921451230427464291041175450323035536980524263787755385126171784656092355632241693297400800038724486664078357217705383164082192962334816547076518416218947624523392160424200899053106160977755724104993569544235069838732127602486956528974481181215964709877673647605131071476756767448153438245855025514171233696875627923597501928132941860119600488332385991794797534969465931325761928713577005002247665818116941010844481119203318111136253535079749260668080376476670831236992188315594663274475395601697695673872610500289826942845990322967232214402338565658295946392665793544435802383506397056971813519327880230594501891807935158661082219711421956883134535443958832870491422311323953466566709221443877271740384295478931887005349142730187757433340951446336785990695887387723894311091450515652724813430682633734661158463914614131308736726820867726225973332388281275835138613134290210226853914465932325363655419654964562689982325840681899194116561176995996717358545551966815643988510306562915721872429441892823784300477235091708150750237801923942101525228598468384810203628966955669860683350277569687358664548530301035965290993903453145440642772238892400284963831982134832205412326554494572479427979059604577265899412676080032814496747008701671598542287794513730745598126452479363248005698357490383300109988166814287122165705671355936276167772015015425144987410355492099029696652697126978013592205145730611648456540972205719255617946913018236472476639940527116347010856731954336474890972612482148554889314965102743937542217126525844988584662098761919858278227339716646579166962532361062478311301451584455221102312987521710031174048818810776784892897109970495663680081522212933932109680520416947831765788284892685785029025047113478176365645536261915506881282172354797096850190096987884734992478927724227115168208629025925894174890176017142937348894740438570508835625363313286999095578056699183394349140704885266377641433762667407843475716023794311227126018390985637860339390851491073126140774200411355129668472759693187517671687132326819327542743170566948491001014643315450731192249684814635029661701815744945253902338050758600450448476602490318389141501426281663697313990488391848216893618180616500461607598572574644933902531695743006881021983742508683215880158325482790737794071547765828809467757572082045374630117152642871823282430905019688242968190367739578822923619767019824948936371655620542873889069812895357921832313030200311280893360659626108494088063244332462747768617122597258040496709718355785748642710166427704693459092311036210965513594861390452457315313844713306950802642295649035541127438096441307567111439861628216342122426680585543698204711615845850370942010837505326219523240366168251817214434909015627376453441117456515158208185563406195610931962730516537184704021827652001764163756209446609776472371829704132579915348566581633714826523587193997215052041464255514098919515121385665224361618002436017659792266495894483915709476837608024448765284049042151200793992122820723499259488224299150641943986522385616552734959372941985283235194511660075310246067687814786356468787440589946001982834014451813064271608167148691044023059420624620393407968313705806045924319571873153649876429684430043875829619887451066717554859974687475421119383015777611076973302344599410290594388070565607671123592188530445059734962555750970165166553028525126535305764874161820063423872630732529586301203297870271170276690497226549193146095119983671846365294983198589267908516562723675673604036776859001525520583610747552534251762957631671100477887132628472716140393356956937011240330364308548308863139710274593758597710990874065954098889927065741999422385598508134695395022060451083960672119987215577102838039625983205989607013752834254916162303100797274482431620547850881552885467665545614307669293700826323537002253616828379185197587776351249266627867010020617056463569881925984211413584394332722516520917670101822664007479223440428936956997854420271085525317532111910632975430796622438027173571508663857553909957572089220057028138428487365840115550680120821723823947837259207812863933791570707426521058685835344133193747708254596183048456328676288094343460500880588383364389966143253159679011477890671579913763624906433163011534425932894844033360925314346962952143454134266071415746272575191656151681506134106510697887143529434753513678539088028850729260348131525651461318959357252446080713546489299246553285989524887833942309504365239822285341284833027522052343735833331870983378099030598927010185498606703294803788407088727121335698821694121905660150254277259282814822023018792272011025383380399422609622625442194357912018915710865815881002311870884242147558581150593245612912110450066896414282515829440391971655311316079127110128841979881382594273267805452637000200575247263524570930449594622232559614095006382559396028739790126662672876851274096593609844666880377476194201212513195129713403565152844711699560664235360841190305375410286420800600605127367040908077660215368406465151832842673976987649717055335273119490602746282753972403646982555309417872070817915460442562493192768765229120081603412959889239316394772478693490233810412866302360991040180127605719214067860090343974600786319089621912001983992983660390177409970998743935566843342596899261461973227203663174912866574313811239815497685140070645432512278172988086667656695560450952825619562978580867493074566804052988171852998308794881191683662067490120166647861080048123349011318938132949147429775273999265867428375819580258532209954416244792356882013623275253335320517337327381438288924709867261851683907353568521230079173179849732386894543901750403883058801323426177590570664409720719366104032260903019386663270075672039927596115688569986826175414956010258421016399055186911640911703863184224512265306731319939922126994740875498706579239162407832939145610332346008184531567995704895583026531115337012335317000545563947086065599237305840904087075847190146386273970759247989257513275347885822984820643037832814234348256327559011216284582075147762577255592930714901438175210221840367268777651197870139932079569068010535526463059637284022683206578364145266211621770261551160009064779969462526475732032128336302235194707666929182709553998652560060250808282238413591539277572677937990068674403737580242836659739493089347075304913288857287178464695418427450486350602774583741650121866426387877293807576954846396052352993593974171774559615861370657092822827018010588072551199171081533466349004048603356190346340818153375430933214146931084649018221969896448587053697550883888255845531646313015664304021221089277055147901280361149173368286049538971220044275464929538272473032429145114208170723128896488909624824313106045220086841072604960640018242949156178052363081954918239638169217099689879064290191707554517994141182282701722567617709751785945603197719051918920893513950143364977236913228924533282881859800171242077515793850277992179674556484108486969343938030160605129440317134983446197234470229720392099095874129437578277336130511488536191722777235252802952039728049410313747586849900255820874307257227092241247389123691738570095300221324926922214801868327032249978480548621918955895414041433282103049022277344651739945996755944608434826222503263527912753047951714370784494947525079071765721059486575341756941104654399593946591748203126305437802799426545426451906357221929309407404975789479115066147469441068701469305684339474133777200492032239029774438530972924387641259865126293413395432263917127551669204041712647628195167283423077532210189418336895340757628302947715696030788036034901895684333458703699659045596192275751882572683086290001419744081852905509067576862840118864724044770531056446168138550687100146050174937420593590696395109292627730236641623504950006144590704566778947275836634725851760581341579574678244203594954561955074583809996030624303456491710670483916389136256439134962973108590061193398738602717571852534885963769365571983005049277480967867151229271067451498923355196242549713742095002304496481320631461485874286279945669237844920556671821416174742596177019140275986534718671184997877315168954222917984346753879478169969399179550316337341539375014254265636691273886434111519659714486868889135445132372044344208184218163549563052896934856466475940962450541714472000693263803315702665035220661366465255796869054963136303319273061104431694634550512014093272871250139435540362858854913939240843128422309555019648299813058881433612313358698159271670627526201807372301048151518123088803701603759976465890261526399049130679912184274365205736444721149016509564214911666393641388844334518726430861697753628366320067015829174490689365681888875791648868575588405043981002764518460488644000544119160278356267482290953979780329519624222302500738748681142777781093309472243440833045919769536881235290559665438587107330929020685454520392078558500170166425868202334492662029097166074047156787631509578989142616468500150813964342639258326084679759254413925431566459057649785384679611136881879464306154620776565682471495308185648703595024964394833311447770771348839760397012058359312579214641548047441845298105507693826064062425807497551066417751624471053832516537892812559985169323727479465291093934412013204774823602230529255045574144301233311286686574496419394650639304670170489666401873324771062809800138841133680533275887466079917166509030657712205953468542092808900551410596781948515837020108255044578316417347401555533112228777350771248866943974875524735671008617437678432137285490463211067601772300439586734790397209393426314621741958771465173935157361615455248028667309590575945925577265600769997426785386920507017660326903919728035298514460138896706019902500929064078766465685749485519874778669163765600869887403078445853235682759276528989557256507405053089515628247366108169426933105178061028057291940649865695051355546705946144753762955778698059514261046851502183492180244726007139932776062758331375977258936216430919221291278439376374406558779170756259082694955004595205909563359515356846795309815922109290647629641531649174752722605769982463294858069555221883000213438488073570481671243433591110829271009453023325722091003987170995449365912350086890302289916351966198025958123972774577503703712162503451173371480818440824416424246618996641782823046305912986365142842191478048702860070760342477938784747229964427701624969892328621667494363215908965082322788709708996815849298689876762841596784350055464318895100577779798010275129388369325102801403775211943554619779661618139636993753489594518584607509072400822932940827983455759987161109502363167696191607082352957407387330996461288197004498445381612865810927426028006761704730821196942750252231057710643874412854580346062653186753478496024085717118229518944809476431585417665071081752838974573281543432546741436336742602830379607962231854222899816295661525338716558658501055121134848010115010879893749693438366859572494162697142035635527688503768951311440185707689718810107903452265956058840497150397770742838472375704045481426695267556683081255108865705132541589407314126287953862419481497231798882913701391570636450887326912671987832940210381029843461017726603966703242923265000026351964523413679019009484969482859335417215776240189739960101229951345069625597795781055290885017563365638734653938678078072067308418923857852433865572600606257373405539309809678727651127649763815808434950746846745976011236154450819960191661670429148941604667335506728561568202352443477088871501664766281677345104622084513413225369093767874146956001230199895591347411386224507417921913874427010989625695711514812691027105399351018296406925825974173627933110582059448518278754804515762263470973144408858629784526217197447953097692550585374961979400754576455923563270619374232684452968546844200686750407891562872376344386418672309192890903968378079934526859274004135913784672040180177954800304128148393181716407564345404546234071799389811482206570026076170258173826965731262444309403739197546174937376742891447251940786875936818485823816758368976632086200478974062250002804387950747650338208481941523249745040539208672228590788028560504906119688746380309035424767981376689962284573021989495107122129204811367420814460245001178392776330782599292852435944970617156894042004190300593083792829513504340170057444887451051628296238300590998701686050443947257028885745681770568879646535190206519199607941644358521538705279348405529518327113771964359102435154920606984821735547619625061450899455243678320721614736694422760702896342732312543321103958005778726103313622569718266680041391837703326003342064697314487184887735139892860484099133079608432712516990031372594390930205012037582312559027474096596721875344087381962023062595882081030814094950771332272374218210403029385055971254082319102129983096020658277995259897750035618966795613933457398654044142430266708718084636379722243664085477472781624046622595397104541874552201438434946820353397514572399722546509855714034827279917595895938106848193751759911460526336072942581242888240322263470939349733308746650852787544965952866454709505766279174216335654813969325821241805602823435059012952183611385336405826118102512392409254199444881856049461720497185633000355505592509777315886417068082344357606557475955664580440035223581979929865004131033454548300774778262393967954717434237079656715450373090759692557071898565491786765360236948381368700939418424993969748766816879681263887690798692052063396155870011932395099668426753558316630149969637308260915123533268097176869969910829097810094772519047548179484453977356659837081062501539458907209997393316262903176392478666640812686048099565064583702861373725599419469223001050917971828018393760343017025181283004177244860621452813273271243828172837758828897839365888759704874577064093490859242340024481683127983614678293763461874072415850362853796136207977051553934260328386693719084054844541892403314906360233323642768343448732384453077483826333385664753576202732811897736026161014368838223517506442629840398476501033847354323955573344854464631587140729459668964982555542950536844625541318140959211524094941943771450745029190672739578791774019170733541570623970443284307699267689455838583227739934077760383099166929587668752759780488597320874019313511903168540182173611788442453061336609442277440632186159228958681339371511705366692754068659696960869833850307307857145817730346616297604707185841399642498904894478009453464186617724976658445100911719749462912232437772950026130480539500106126472091412824942447999653667619115632819918905365038050958504250887301085869539746129619850429361617142542478326465785812442390971300624792488550008450792428951460597130850766686805114823908479411588441904681609292706276046420420011426697586014810899704653977253761128235430426452087039977396812074849058696417078056356236569005097624383960843936161854656530206244753686810498903435526190946106603594959278230354976455068329674379166532172572572278516904928170600547850090941387085522067505104195717584882523052965000409655364959631576548002043026388912299860319656547912285639025004488422052142252655521342515921070437011812505145873731603325815787847028741750428470433750674555684881072700205763861349266669394102978802557349212269084754463931420324474050563291882894189860531734280768516841100735361574726836674965090455240310890059143033955768996093939284718997748067079825358627828048550831935666396460554578707472733393315387837133627696346675316040539944915102020152636646425229719616372015454307482581730325904159514915190176074957021489435841266338524449489267665194366023806844832114502406680012408965969161916270028449221171766505419678370042450685856482675060698867601070739798196564320301980628557081188349027292944305153398915234807467789451683476065895708449555677811139013615457492752740227283514559501131181962351974361004687554636172165380123910119483712317555613798154960368042122688841837718979409409464412371593686046779773278834783336186097547290850040483968706351728085426609569387546661317553323702051624569716526061265311769063968279780265323048253511761982090801308407863528039353300236931074291439725986537856665167180952170725763689053350743536729666355907913289459558418250607347843626615525971102974783800027024421126048903160400721753920205148543589959127268159778252581544566081548967041191686225367752472620745380325255948562625841840253731571256618731089976844503354080822321896147329989335057334047515058866014387475109592761157159647530571808872054986428220399087972446824756648117186705907519982847409722974544533501615137309249653816534062578141651757071446623492441440147198111635693335911697225086489224287149150268888946300664735831475199261705111050901524084561473821363134811691186247168185357497931565121735891401457920878012463233477437269088732949982698675405751301493924594258151010829857666074876234595531159045097636293520290019203982254295974416463800570326410408734972401175064479978781516761411348674455021968998288413004749668714508052462073207211625449305274900196498658068451038256818391996072030319478971413008120856003587262369463064631688274189176501093313241352851131334352487274111687786739943236929120209908639297579750642637054191293214208388290532172854774487963414699882045155032771215112365970867409281861436247565405169607311516313990300610348139846871561731647758799937762160136592787385998924567704689922897093080048486975067346140332357316640234658947595650330047859513225021411888305615662223350722116272125873359370268988508444508628133732048563184897673029933571100464349250207665390566471529484132881324921448301004503629695716089281364334673331091662112801013283952606844905341361213592828935523701341140755043824403269115403331784133057503370892802144298305556887580818919368258272916924825711704845391188194426070775900556165443414771130451679783800167148775595605572547557706978436007264013896834394984402189693696558974786571461676465511780699596289564932365323699849999057782911206858333246084343461163978862219280008841554164599157974380710917003834042732831647631731018823845723571255047492027030177676497182196975578700998362582033198069852761786790234410063879430129949414443553151419513403413744057037263579332389178519660308114770072246549416210496658173077070607085343182544451052324460644943017540649461788358633869354175261481878146307676056163573083163846353080699375177091930339328119792119967922676978859568918740990307702898451705408677754217587412894702971337034473246399986068038130660504170659256882776781986347296458672591837924103752077560662396873546260123162787378202474047718254606548753947995457386466397772545434587352971686916424521731580158988181400164084549513020307660576891427980370681117424359443902558423646486349906867326078187617762857776434058390756443706348329601779473303429480782699869057779835092599184710477808523625799878165075276665068951252293204982954940282342861450779891182605433810540220621648210299062034263366763813069523736787808610151334667221093097284911825004998230832370266179565064715029574692807417958572082652182950845089961665724654012164387411197376169144248730699888079825357228208197139659221481424018311586205959266705440825782750423234974511276778605110975965042068316442619971758653032628722122216999671323750016441973574279140657558704959246403978955366230058645197125921137627015880057217634331052233480011132782227954388202265564724137757252504583109594976315005242730543591360479552174786230258624313368127266551237350424269646771539853640781297051342430342880423437093916589068370657258546986195788024142028537759192008642975423490892852297614038144050367604038564370556291044734106331161868119971913921875849801862195602138570615696187602955569177347460272147700846815802262896980115261020259356138963979945662315558606527243927727726757254620723114781839387848002730630118441738388546471082491799790788350079394540798211236137059310831078747235066396387307812813646349267727484462313440703792671943383369098166279779419901133316016395614693873636241041908174782373834934217295647796812845274189815051867769951891641632164765089631379796678211049846442403449712035056048126622271985595618370524940564118709262880077860958512384372530001129327361213472441049482717343906040689855004216683097175060322324006999923878493851007089389759613077233632459137767792756155230591123929711449603218612431700897504561426592309814974533300005700903640910001314465229067861042878266066826470098065709736401057100393463187891957077520051299379424061054190832607504788103310112702798211891977484211006061030095605131504626215343223281810990672682566796033204628714778494829998670993206388935175625596261340336644045202765309833480526305298473704923063203685040986005373270391220887159258495392431213343597966407328933704138636182041498116074051714489330226908324905704163492639018908696962860933350040750948461997739283273527409660458220251723069863375319525768349212432936126939536745063974898542426365785114633105060954298454447904362312368460060792278409926503517038126510023440498928239469255812124733272521190671261002706526378615753704490781674048188407298305584191491027074269349542430410728724008195570155309529036906071772766448920852911679107945333013116291323008977148816340455049640518462892900224569352183238125449892674942734130656492943639476025508735630197183651563889028280988041779632164159110883156805988853913648353446071468327326933248698795490959255129766386408281691882767765276355678904867395166481047914164517810352398504637904798649935322912635230297367980426884386360882264213638275139331446017592974285700464957142315081176494226131357539704489219486533538543681520752833461222124259481153675322203172439519283641718467470996157841535986029194388037910449789456284616370588276794464240241821696649454324799156980285524827474348294228059397175965841711665552295010275688736984713022124694433476436235058291835210803250659068016892550574133604786711749585287205407164104630995512273489863716567128152186669692454653539662008116820085701366651231499830051960064425112222801478870526317483868091122458052771230252845119128158155186189362372987207179110977581938807115197382475546072496441884899748958599078348395861161480999449237395644403330171921194062948926801816339335677415462300069716463860063428009026687839253490088933264746048193187151896552050571060669241616353749878583282248426215792254469169663964311434467024576765951777249981694428289240260665778324433949701296387594014388143704262998421988630443822740065400256780580967723098000177252851512124904345675094038597614384256761160403301044217563913803420718065432194516408062221932477856295193670164984165400772908270739822193853114686281731885379397645633097078098333327018846226516595871546830430377271990413562216731691998272104068323835041118969136389676855090380824360862565561712353407339122891981908432637552743700890558134255824131903984313477598063861933400803498665933215648836054951337801001816043937747376890156893465213645566747943293900452446529869639092465573480214736636097958547959189164807771730751730127341539559233558080925088636851140942748713798773044943402679091513975276754387454924570811987171009725006847076552530499057885224416208112574754090618827416896044039638598025300672621117852892231023052148454938144259703196239466539878687782955027861664694729678708800439402655025321775053365853189481081825319764129128647149592694523120807052925059824118825506394356720566413039987413943597489314142650879624494515673124758657341105431607916234748184159966402596676319406871086398453610450443939137367027221315426832116846257791894886733388681854222221604277044906085533071904490995349223718719029967817647093705781985182891701179222159111744251286667479017348440577600066689984492303599127766488677977213497943568498016647000136246744422067702644042314889643028241671063918565109945882892988353501394612340372290619232035276215406746156155645339935006890512042084155241886761242918730319566260061658490170626147735803490565102361849534710918829132472195382481591665876092486473993678335430320747690421703633282142527772834484072759480047168770290380526095011767115222454767765694361493340171213065488193495796322487195434179170592205807356238284801755694088643904416498083852184826284816891044791644268686883845837740150162666989056153501252437822745267188126132325054251773853571996425910029786497498841182842294865889324766872014761242537974236557181071518858226367041974560171092696998091094995826003931305072026095346162334935151114591466244214120447424847893425747520865127638678633858359979918851874032802149988120335034361286411073001976535407555564288011443926384759336945789610198572908626060585422428558773894706699295021370815172278284231813798200693251517646246111943917173232967077120961339858148896310296867407291801821170814182351174122805306619911034991738303815809152444712939322323588061103401488892365503567738478847510242988325277023286515969073413049411871946493193637798417797602195756656530776465835289948840045908723198787037553278930294302164228071497394086973567578198872050901769352069244375821586325253237690166717724467045459317128452887546789630297699181346359297694087584320464197917097521794971256627721118016074157621612808613386055927161330082101692285208871916941515889902035020336715069930513856939908515211714232659650172381309660743163409926225124330629059031078176206455977587085333408602840006915518306656837484469737298771425884740872422866593252123386866593640354491112912568690242732636356655963268516430272305848168027625346268025126987003582804179276940441122760947790599497790278698674129118265476391401288471850140158606745166752343803171459583523044353772147428557098927326472461598232987078013627443358354107736287418142307030317051576386126029899494101176716614620305341745324169154945092178357948782061482831438803817779044009540243013222692010762476812215070933874534352755502494275355461037425054459680477054629981178681872639523039331300981615917560194117761857047019234827029009228592023561566187021108734448344214135688409856700017864082308067116467058726132746597859878623485928151122786118163913508743033128408525731121342179596744072842000780990500797359257862290391011500393497594615696661910364387611715256383644222418249357245811904354487416433600894324427358676670658403123631739026535771212246394598717752944180955114773311901013513620459127236123793240315255384329386844396802934544255359778538655079825064675739502712951016387320945003222923935622011472133632933322879751638404875051085691164815300376985667774625974960127509145541220485910492627770154283823641023477653920042303701709458172637288935242517258943696084289174413216786576947633024643097162482755769080194463076318992033555237612327122642603672558530053826287187761578785866819781096012002233297486534429724545703492299470098697579195790617143794745332113482401843656547899478980728983302557074614057098794170834217209824299862499887082924078453985727418978877943488112553789737086662372369824717369215999663869757545857982727920873144464540312145209889203403177567586415247948577845196054601863073021025555890867386120344490435603941713509353366382158796734632050743098201221912568729756990144117159593429581069236150455591497267682831295693755066530080574479414809616912396594482279417830973024950416175035064994839000853515526059389666937411728520704603052568167139892077023483808077903406990838768119084282196866392372438013191447815577290841115335419609811472632443575797723979856123237755744926916946700156816240017019533351676621986778882463513702088644594515611084658019450638827871938464412462379147087838093650656002021920250303108157290200923070911077659845255616747132155262463037598421137607446307756958800240679930389982719983846852513168116090109626050973148834978592717074975803975351972451597621673873331814314503852839865462868996661976056886216454876411396983487136293060380942454211017823399128266409451585547374004917341960700924282761536842226427707791558387489404164076099795142809636896825141544414757390961014470269631823779311025783139952281031420473656443799300072526554632648248235498119277470040785245012260003392860121343987046702241605522685011973516482709311236406063942723985222560008671430649051207320575777621849284482065792284601287708968746645374916869371827626325401053285889635428951712555153110584020739449272077948735451710540517494440204358591714888132118373525716077326198353961230387630754409237855219115993758139281587799585903997342626619923948889288839085644888626945954753722428923982552568334230466368843748045650654483189397529101777741550094557253113769805924560798092205467477318419509886962066391620467986490807753022404977277557202094272320025881910194298002895743433174512530366947598552250776094395801961294362268708123953653162486786495513205481829941717948895550973049237791625863737436912555912278605333575870749071169123192934431586005606891395602353675531734355499908110796088241200773474692586872601853577112969878778150521334924977716802549702208567757967981513165790822025202533813760102423986766299372168138445692635780544886194148367217587413725652416031034401343224634510530223234373529300350124701659964938366095732182600133777412697964908427003619371230043206623307297700031480896588977293385192514154184849791154452985031444114776476300779812327137444445948746778556761350825124609559200807458367774469563845886176187711747651011279097199632142102355456662376707435060217687048756777931711968693383200200210492554068988189224240199733780938357595664468993493913831394918546376850404323424016993681648043142778046417604889680883476943710750859104799076013182604607326955208100239220260168482064416238219627734241044945438831249077439314704488628858294879418904318415676501303659385978670697962935915444349870400397048211979153069639656844687884467975026300591760321584050956348006618662228248903973067914915666834114566731928072929427959892938082751819792600747973637381202787993260798477925549099474421192468428770132780779256373557012070729047670570448614697430842877274105349707923283772841670457967881524424421562907647830849835782705555382402126558461230467867570028660458271570076078884592803176371241063234342975926544108886198080424936310977422415840538211818821689333821504581764456073975515511445790805154936361258226901449943505541477557027404491212898399303427856960483323271449429192294200978641528250642318238497233653604215806982599927709641489034029896795042243294482759317059818492885614784208273238866026543915160420929897103139126039430799775755114987407330567412851745301377873573136206223130957317285335146916285347939766087208695411413584795096440397633247706768191899788254557600224084201406682551495169649281291679180187614853986713345277872774313745182001767421522260143538071838892296585867863904074747038295345117391133560365432515995881055928725016047743167356778336310407800418967869571211239762591963758859128750041802562830020752211746512976129037948932297594033128491153347000185914815270147054130511385598284704532675600453813885059050550780826127926858389248763402532277316948711249355296298278539722943040483347919091674577099490077813197198233701846545863222226743558812392775492432047088892079913566395999638496561203606421285495539132710600807426695953424715714572719426094006832659275046700810041531085489061407969620089502090422870478500671621214799005139661693357941622599336447915770702610567795476937462476036697130701436316784935848414532141097338963214204540445710642974641057939125231587869416428111228052868718947678814692043804968189749920630703646567519932742976229912472289655234635834918661327655373982994342811032779653250801514952190869568033576729876338120591068509070096748006034783517568955234617408433619700325335528477554194270188908182871161107155233589072799786556011523771103441608245497476982379421862892418921857505021154247109693173914426954244671915345058016780278019710654298975280381217806797335938491748762072366564469507877563446434446824435161695424695517174783703305528297849179101455344782277210329194227036890601733871556222297180593920439315984862453431875347765011155186734236157005094167785389240754317368444138393720802963594021086803776322740258022834359610208575370331901627383397803518020350783633038766431522922295364998669810092672628967466880846435176386041385614622854175022301817445913998514683075407709103417465667697874876986387308653751045370788898698756227570995859691399726828297113754797842480553934152146563305927625686484990405826566658656598594931976898713898267551351529446842205096257659413193164455365571889247708374431437463990805495134265197549047841228742442211639610988438229318213161258645919865951264677000036990531258975323615480843053369795320546998647264471329171433455023112453390761049145058574337804518768270052635671218111111945147560748049462857449313680331987677682989332751093425340914189370090348690651562527301373195138232075459331675568314209318324359203856510432937991798644322605878459024295011199878826362295502356263135596443006378483563205068541138476943203859497056355628854692587429034341610229097301308883526357484815828518104855889777925361850943424168643776850830928793609287182465656091224357560118966166402752361236227920203039926444923063526114476989282714037653546283021226581450639101405646943675726357871041175004687248285291669480757077874877585081913035762484756795769742220179157120671828979398674476771836213291320524822790497997424809491316644982242466182829192204185064028009742754116242794984919239065177524178985656590262400030957139863048473819117628236104655645395619208776156759515517255459149117899098004457293266618831144454236855742279260585774288337024355638846297690722783980113045752187099952757159527509805617278360059254549590450176210384963861034420681759764344930596373290027009138633033830695530700311169137576527328584835266486708715944636943493880158677333673652325438715893623370960384310622964190787061791836748027094550139779421707369391128659219843096996579206407944712323869379377361136575126867502109153020303220889961616332744207571433288638179009240556203433408662795350185655192665522546845089340849211668310051757082281939458896990485110369482809674521615563340894015162647322857117850118085020614233826787984399901181856278156992160785136324783407273356494554335824410592805869212424754960953615402652765669062999212364079820135345452998608760417747426472565363579412639335117396446082022529127672105167347745419794432705559345551891214382970876559723497620570312408552858870027660443034586945478704759568093994130528224493287534234945153247957579856312623694299134899499791600727138933695363008522908578683221498628165245160590859446563901330543596442964820768326536155841204586399189777562824329940365333301553011719366190482746144071380001512787814560657110114454586824311524787177885280233780503088418857469115890989481677032990824369488326533377669930279443163495443156378372375985714916045875183762849885833364954149511236087231086515114619326756557271595792780044639223564833414606856634535721726544054982453472958957090393344198397890622058832203222401936225054996000441799152099680474525490237855013570025744264535329566971733645407257190063540225827215205151922691555655471359077697551771027429460617796501334827336608151898538531116336650105638682595356417335460944916642507962274821947283534902484717371836621530265716666697431762646293994130750071773358245844014802349412418345869754852950082833664515652950544156643066644618767032657195042770624761652207859400112479821175989075908157660895513410737745962861481753427667472222236204427850814149650402164885169079886580248148163428911534214927769526754301305435691516245015645427197716986453798839745856458235093406696462812370394225347853310428358706094944555729799784594075789312600978431444455827996181577371731124018881430052729609540897265315934721749529814963828944177876833780688543941001545725356608336693322280688356662867004203717420502605643203475354393748788164629940494550868678542153295189524857129438002944348964210800336036122688463868208693037604726464656456428951543016074369737477535362747956902198367961439847204594031710101595174526990170508617500730258688778466665379295132689198928849485923612490270936312834271937304904051085266477862696092668283529867187156446098779698402438573023586435371175207046610015181498768816924910469022534722906867024660290620126942211670146104514234266969905858280601271849204015614412330096257352260126565653469787662077156459905413012567975984366324657278553672217128487572808219567716340621882847686077518158116355919044345749300917858332148694888198805817407414795072938275640139123294109564234322897959221005733031032213800989840954341083609415704564124296486988426859645051233096110432609136830581441346951389794283255441552253259467839162006719309768631500872425277394318324988049795088357704923857182275085766791170640934876634705204606523331431180510548704988496801047459688538346669784079770651009854301419440064771318078547868716189557068876329255200202341009858698701055056574215285869086383191290642545661692137138509556472011199253192802421471571285428705699825187971801801173544127069668246331681601237663714173617734464770313558640644954773424200547024296168976353926413877253737887040318982536548341282104701019735944720129485890295565174781241237479441033330905498944550575894341270000223768673786665629210408277063057523343170809930829707848217099714749841272963765841267828386674989198913749108269092098088935108834072521995398162390228868132840748317969972479822193622255509630738152246026551374613899471596070130795327458080225912254934710963338890851906704758980758555122307088830359539494395964237177411928429372916557806863301167920380447142092786577805367084560272397281051382415150459585817196255203922743965670565493942864254993018541037305417108762010544278787360148028384264399589323686556562062650656207844100116042074235492643552791274138550789711282778959590935585603708349191609565336805481845086639251112118130093418386526239699693157768537374092653995625407376151231487039130413743086977147221602834102170771478546719296382637441211551609659004466552402328333864399969004313758894063203114937494606865733145979225020106679957049473802807053842184374260506122253266173721724179378587150282365817720898756296306317391964837621757630499467351871438115628527735067965973912227441290009938953620116181072267743817800603737185552148619309721231609169603279351559509835998496931689447031946085996465942958963215488909269620668493972356357875831169787110651972980530872662149561312577828789649293071471539389966248289858474767620142055029618365517491092345287918127079168731002993529090932345914162888976793589268983114220108664326752477414073878180176423760168190371837673090313829683023872471528246355482231461672460763721301984253556738093789065951354205843287824125618416647842945454599000499558996776395230243573919918056682403128805404870178155096464875451142061646348544103420191672304419038050083799486097458571004183952194700302172054895546385354436327506921979639748882771054562060554290232733993572709268990660664327120847438935413613692447341664829981766197638087534588597347826325438817457484128566498890595979519353677307983806291951832970011277581460868086315398948084555651921124494002071172221618765189702140452055876463901333908656076798919399139821177468595535366635289877053792852981523691407973164440092893305236279807886081458697910092779334892418258841756884247279177231070650084574855977500810814488598893961986649221060825283830084927707914433476607681716144650228555733433114300388571436776495303679527620823271897070738748666894172845864046238076087659733109944604691022694158518202251357565359360091215194130935336755086341085973952660151728372281910730782768739148275782468168375750136245432127916896518306586714662614367494524543494591596861283653144412134464555512639426111353858112153783411408975821290935381355090885529866976687128465972228986169059184945994724880412656932633027781881026854676468416967907891459938417774827389919106364672186691022054510814990471084494687517238622417768893174223398023745777649648387078863331228325895796034906285612918237472520909120432917443651234703756111473965254946576664221095322073145464823088451602394357357173038651995846996128575510745537581908839825207504836845592360772250340227274714288414740760974901195227276407860083664048571046167916395110148219728737216021834682278597225189572373302885572114954362813387301217116918791878057918100690618332766049054539576760561442481888101703187502789030071353652443847296286929551291434191275714730455015356643179232116411576560911569777728655213523801827124054065751358194508643370524612158439565143097119542628043044538690595896484664195910275276220862767793362836645253592651763946056799247589372966752425854296887579764376048321130625064013554461529361383295878813447069745382256097109369380346709569818251179274889064797795319494333061330110019375516672346804972388522231266640045449026787156415561369114305391879005071881189534944256564821774929176557710262731835261542549163597808074102128007067746429895112082414626495712393355647633026200322763745048362206275988384420737534203638894980751917147035964083312108393711822188298013403520477733838629354945788970333721974720632072769698395250026435025081665844468419106443647509966914164080657383328189024705043941080806761882071021076593463596016662990635730021140719958396175942456825798604223283926328275146417674957381153331797744129082832458534351113800685782160786492113996927361361704460349692024018820276306998394318075416978116262974175853520343030824264775242474034604739506774878102313858641557315050487345857692643070419431303337078872855200345580043262569654761889115997075223459299145846547687887314774131328260862641155880472414157959788499145755890014995056709036780799572813985575068693722123868731174927493104074554890865641481389741087858485062213922239133442039883029328619564514179814586067355878259492805678042472153764163812453460711088497184017177112601499708519017553913614699472632521236118211891174511542363204101427603802273902919294682578868828108882246408069693062533950775400005795052247579174031072573177479354666148751180351581362987273398082953659994907040318631016523248133883275453512445533015716395074220955126771640353353063221949643312652031052095077258354135214570805737590445062543478835676290514734081716965793654519016801711013768769541576606574356451273080039541614791853395876860449822566792682067421408300663884992906130630957153498296180605367639092371769414484972338535398922613267588043456383436834015274019086217262593187685314167630725061900372198010067582084304621196964532177258915486745482636906672374787420860359734203372563430362027027194009343279358019797114817578579624095468098628684327596527071864875608464986792676578055445672683222403340079885033744116083384826513786054386551887633504374004764098918159830055761993018499786433927490352405819839752065121578232125322636356744360351794416998629257127864523193431147682141886035809995295159722816539498382965503164287510562874910644669340397253247467369221350763427809042843453820342142490064752357308449458502888863359625906113622441500538084208551303224921212343104988547323907019041596982213174899226301536260240463951491439442639861889827082688305299361688268899408516913811021926358313635923081047894809796084666880872268802485650443502284089408744247206343468766582844488291622611503543785654259095579632363118460216611227588657744120090797732393010742477604269399686841790568723031920609729941007988434478484895561597776090337380681414209391474429315505681766349631078787861697409493196186168987457562476791967108915476614128123605123629624556215490013045481941718410398406792475684229208777307561623464858778902799549689413074651836255574851712573814822173489035819027298215463981221977612303777834488063424433667703060250434205017460288165706923704735483601174815352501616263686728469643125914199970767051452177992637209738814606305178127678886802810441420156620090610866963799053369442389587955343729255789060240380418215009677021058041611098986060193329436650306039050404325091996005464772186817920153225544335783718694321958162147774233178423883977944916543085503835188472962342043134196568002712012489271805172174074915205581381554819290574964479138851530175248530534103822075066210888220214793082319828936953213168520534992087941297445749012737307405337239824327351358906663328150350540829236113125808374794223172080873412084137395953006410907619999567962371592638118922136842850476272658677188727834573962210598265887737245040266682159559153884328956714728559302332642057275149885691786552139124858626980780377703692381814165215598870471217479044711121718595734076251043845188832791065909984499246035812449564928936839884522519520761119672671162600622580585894023688977535924688016962870733226679649039408895238547016102653840643565800950423938133137996466149398497227556612828866158581763249995828834132820071733103973550229864509246227225482496569940765362399807268792570649502968709631166211056952369858597727544145905066317425674356704496413283034195954115942974639313405046498346848943041936921493493371448395540506033594373187937492329903003302540008942843609203214162413375252693806394711602268547416275702812094820003164813730468272417358043303698929182914043898469099751321881406004264198642908356929924956410710051856277301334025344750731529014698838816164117233777913555523636995555850485972525891176909740968113404989730260168258990916780290333965395442592470731461470131509954307018113631248638005906766120183381138971579751519506789445236987329168276271941039033284970024418720659998763798606549203323540805805367671749515733199760475945922878231112349200321744953167513507304423785961555739224827261894907868395005042693483246538424897563520632439682726619486323648866543978251189766053349950104005302938915935411017821985251280480239796052179421625498718642395208210414136905133049578934312827066439503129364014814047030199129117186037642591703026870753528657498812051545558271302333308609246616794272470539701692304678415374592882061039470905841234163152692636574864676453781309052795380609709700414674956314752789131139930776651304168953681678400245046022965295233741245090984328579456054586094087022358251884932683910690225591739023625764766743312731572342490414956950342263033323095198482543015369256144592885151532592076441493804602476084108780879379451154538496432564474795914910698759689198697696809818375017090587394103086454848217610243711950305682556646024591785625604526983164910468632226329379382444104205361627959457343010179453804681254454918498669004949944442589606187765239961177044513649710680394521967142531968604246131089651597026866515909932934500195572208432386420864346137853817655327886178192611794998462863590956365568154518333258863299187853698431340770657340089707179938990622624640606506229239631514197230361263931679102497885627068328709894422824493172619310224539248644972207287892229050955718144296023435834105212969686615135029321818339679691814313511678740928443557732203903683000045273097009732390956744099803178144905252524655843284526002258747147310947341422879705412335921897173957800947537035921971838276269852516758493269921265837073156417961602547142495527129906457888746648428766964844214969354965008244845843815311994852406940232282388915430947014421734833668778501017701553930931886707938378126955022287463877626943533882210159363958258794528660752117623261770137028087133679317188376247175306247919592495575540844761782553941097617457281158797886071407435988251652472284876368250877557667709146005832559606262229996353481342816987627678091187991687738455621219460554927257713030988988012533824112758101870345650922248212282935399603822757422209026136402906207460146826408648780977034789734264301945972779967820577169734193845021729505536116134629655787181789853827385890558158941636453433632044002088142401745423678921646629414058620717282072952278516440431097055263879698887690647547083770293415091999568628827319711383029687197544829816261155785828545771642987790381226777747784799770082147124674137163538807403555114366028582320855923973060142951755092838872939131186756834227637333343369701245036682720952684373552118488595579646758035379404140857682970391529992136499825154700084259582777867078639197709322878375725546112295056009823670299852635662708449382376657584795863852013881791596430209230598431525979259852494610917669887559808815412664941491392848967272334589515452743707828943932764479003107260546319562926508006198474414544680393201567571052504057600102913770275858303640940561142541383737619406105348794037121811901871221499741398520763764265180336094026360937960346876752025526360913261243640142789885006430716878416113254504155025059919493311670048303848254924049761061718363398671165688363867764030465473781068714604833699538599352169218970595373622387256597007855291604932053801396069029207375296991750159406200961521082811062053762089211212311919563140895799713173598093971553777197639741349698774201999966672257451306624180567769289435287612469093156197933371051402370968504290812126208419330593771613290444652186793590197247148026214417386204609046501741368623797033825946269699433575344458730959619511182234644940533423938158837340894935423719769210594960093345673414964813668066690608078426095412844498592932469991804980815769160090446613522479187033931847833865522371801470818150661671423493578366339836224420828991861726835157166021729205846923023774013965088600562131895076148817244483949375467080536466869654445621310989325203242686486284441421990417785481106504934072662145320731539981360078380120652021399762143365914324289416990398859646598215417266463543204466875997415092832989433392307921859909253299490516243317039302401605538992769618685312642032479562784305628572911227946363296421129538377869074458175633208996190879381043880167605254440473557378621685072469720910975869995731811776803715378809642723204007497086911984445674644965981855960826723274279883947529605001756735035147274938793428163471745306595872825552996011267894745129004013255482937697240924835950154851884172773401586832280854209556401075196991554968930927003268569247313335530823181482126251725235972630597191230127859872472977836778165554085933407192576804723339122490277484454307039902654776633293144653429089069053119557303360850081285249063568129137959435220289385839610797339590461990963005189961413754294420315487888264194601073133363373576059933165835833590151889238100347147832365926660877007715804184754376514259874348231993154016948640203035816015136515338871790826144845400359071297779466292506746999726433326555123229232386843517260287623285966203615471780235149826000628679101584840135776986047620534232584702166092268655293530968428037093127346849707734280290661697187863973838586524972673332973067661429788289604977659273526994205307650365018133200820930616212111084587203898186954061778056760445932505332275764525310533214641665472545753582973625003438438259848569152367616309401982204563104987230255976876327192454048516700986500866943872961229543968425017825127705862464655640349136734157200785217077264194583327946161233317768527243974728129712254036185527978744982053233677534717944688110467251991371427416329196894530749657880442851291997603279532436905440451848338475394588581616050781019747085242121103629378188992035291810980973206311601865938685352754260260261755481576296669006860867741141723691516597468603772976978348610322586570642141867794008072925068745346103447236197330164298090782128952715823854168051795732216429780436685177053361337552774810589707363959041240206288408442893203144820845623306057622204621761097357271146448312281473042237193501788483743048453740190996364077532142731398956618832560966050017300782324908123720414211438269050229733709739579949317510173843823363504926923623493237362133223568407813615311277099156273571143122028995413781573182902807055578864867137339099902189121812690453420143442782494239880782450502168897217249744911600655085484344127028846114522258236094161088325478853329551584703878854740288174433858143969666185869340743318304952585590435782186195598662831130271400525581443979372016188894278811289149370511473911663077496400085132263789345764574684285524093872082392007894182280479278360540157430703223814056514915112489189997006487900818571761484871509240760132905517971214586958781719895812615742234149631065326678787166108862922845881445441219269703578809744820185715549683232590244266608317088030790513026252008073281858895427152337263148235842774542359247666932611788790201894606359469771097140010792364733581281278655111052886494894329741627628443153942052020346058148308392555839594675705156866217284288214172091507005404901917312841122282640381643703304853956678689785943500310096617241875377731130279925742811301455907887746154090426804505726311612664372533969553990762320522943341143288411277976853641205757718335358817925767255205628564459039623247646640479073005222548391631162752730000949270209932339866485591933861930462384233576919124583584143901999510748588900930631230376454777322442485386768949904547450244179582696811334882721174322442703247777933220829791247299994992152730628428196369286585315619702767460084954763381514381333746396992745534273382693380330757170539115914658285572102264880076591759952874723867319560829585194982406051820593136198496132518661920970068455072188008563321444443482162880661041362554693179661286107403894485663124046103518190624376594955421225335190326253455632318058846889397247471773166357238659878492198414002369980958660016748870069218414345188310151361581104274725397119745303370507556340628059358060328494213796796800232004164674432098797230603618444451003757568222704868522039243868741837350770135065323369595200461396466964839355380644897671504736611257327281749857673195428629996869969153214970942554073562208230619403625914704614664834567848048608611871365603298147928134587284528308745655144058869769538979347943745400188155567809586011777658225524172174931817506843374393028828733401528135675099262222846846880248828110114285645318760172357265232724662385525392251277098294854985638882462874089853661587588920733334714681901969532735076473246438592037279163593241451265140098690978972991259353867285357241213695782699207717350968750561200090290967909210757959176695653944979781908361308025244177939646861171144769384406043815335206032531726864430527257824449994714154432623909525953769511528637163614967842291868620207938229892752984255575342407947942111371186083759618167772403370837295624135263661655575465672321546965051184900510957802762431045919305424058648270700023961231770247788705008894233333401983163435610788226447890101320566268880961865972206167321487082878632850455607619348548011113215920007364571138687702876022317552117711535050387825886333327265450858503779508454257162361094889710631649558744526785273802898843506552760480293988641041712301359560788346535968084549411693619724790930311668102891210922980346802774229393536651426295609968342583562474093033834576534231357974703853158564961565873332289431800115886435042709998458906083001067442938073543907776687106154647946350397354416392206228441400600392307159695680890543358611112700610970972111797238380081189406827030326134758969241895283800289004460962334185373792497606553157268373454364281528968487390463857631202241134097810790304621726451645935496771409396365456204817393530428867260612053783500561123979586081172384701285057728129380096259198774511954678913018204062051759687623723622148504841015786439667842409984675273411453230226631768001496936266618672500439787673916382136297305756900800886710535972091323040031368050960481956489573036993881092299770854458483419036932639949539205946066615673259223540744414320327399757845955299100761791725067147231717286049233910424890501462780557854461111351860455449950080734537631490647053375977966567610554192756568133558829713235623426894358760899980302595355689365863023666863033145099124406526025459155015451292797024289888613612435837569521054823790249981359400972360643126375952992631428975601435908366873363213415213399555200972932027884134236721080733855617518390813427122083681240921095717939447580585686613305549907993223411730783927706203624779971399468799051025476309933437025297280996890818886132200138667855910325820685777884096842094443394878981709705452769401259338922621256905858596808359351712744931585237116421548530852065037602927561747789744432782339475204566118832892410751564007509074447283389153369446750966958114761971416663490564029178765529804219133455071579137934524103823860399975207654532802385890669551489035120712219783031885677151772720694541064293897300816942009294619030932888230738674207478209842871987777603027520999551855170293462132774813061112233806197452922978182402315844609019393696425799707879585693055409318241074234719284426716962946214341109202550244259463066454605022184864662199307596930032358734601809555579829459638107432090243029149000426564537772609753958548409684973835357947479851618134439165553968714723575793770004524231213435404776561022245119831599610188791260277581806486713924748019358703076208605433836079661958491118945553341023482736864541496208816109320461993153145663308221156636988684341962939313170961169432021882311713400469894812902425776133535676186422310298632242175073234907291650851148362469605378725488983089700984087740992971375719498602525595886235236324954656105772143103604681794691784266789689535347034724660935583867295564788958807452395777063652739210799129457124074373771750522325919753770009174150030844906514580769572843159194815075721037779703076233083171612801422228803689814345038633964663379287211869964800695722585338633640552153418986363876963682662641350805297158542624363928527782615776181965980654271149130631572447486780719011437985416766079871924878567621613018922420057793903755467790321209752663692916667508192867995205342558031338814568254497956960583617029109664557577569660804393485115711869603345105235076168170057374158369215877660114976444616189227022709904529876527239342080498831929687291875329678542067825872392527195257623197120424815601823923863608242998014684722571459977203358960778903750563204757117311490174872647629438031835783395661852316345099656929098311769885950137121098876387756831480836207205432455829268631141376387944554372030564369473209932669854457156549878767379973577056871555723236597902683689769041607339325118046465972413255930884520284559284025904903231387292017277080968003917568881342877198807242961260967786917561265930698770018874198671069330365749989852170064922186934773863246670788883682244214968029792081045232834744754420574182172086057437070961022171109980815015495310825611318644244972950445554173680745033683824045835629186516995988771794244008903211055792191531763106393385480870360073782261652511875219928955001462154991631126187664316905093122213988578620402852583027438084311860394950034754304550403619838003640747323165110682177401058886066773868906255320942062993247574572058958749708934359489281034522240892570839674679068745440073911856901814018069355718232306897997002850637992255050889244982922276076811834968314897837871588777184946064150407918153358946138305846179098233604180722809490605978759345828826260150624956158152885852265904104282664028451434944611126410333645655480476130115973251165742235320001826238313963382473021584801580046540196177784865496571155246496020666040098759009309075731099799796831667096154279639415531333935754399343668115742082712200756000619495668795173060571891202952647077078454549140112431728421904567063426197370556621593186804145181349467948018392329575447250817837426262504500860090494188731797777405407027391808627896725773408464111821895492824538476093692489590128938895131583536178646591977927502497332575363759546457941558205722802469975177475132712412515838105829011973496155557634592299598284661711145630205630056512242455118405034820632555316258474534010068535749120791575326509013397730183684689674507625946225053927403593564099721674887295606651472704355858943870785272491480624901837005082054734294917093695906958760836126093911597641136053092826633956775971164000563298950376118189213956837330089346275586351903120429807135592184341954169624550484667578234072269393494189739388341423619157428483574719766316626467123993056602563636113868728651223575326500285729641290883588838716681218539903754602404220147066566120972631778802534874149828876844163285281378711367949601137491523060611052935168580908941924612076444134112215000368168271678466153373492997718471656464582056047150281115557803093759587131576966656236343804754729795327123370222966925820452454113433964954281969820334225722445394328596436174105787732216250435769676642344852052285785667137774484941836697129297699497511134269663363419823503781643728840016764857595787085131025047830521304506824775289652260549221041456926350212229450148980343565115311236425158436275933993764951672526814877576819518628075443952551310394573275517462808949518337523224750553190844433546426043955914786728367342742891170163273543283413768165835404215196689332570237877858557424369001932634922451018687717881858473392490451341927022227386425768635590629439512337819031159399484439993746218586698208895805399757506470126656821550847610960826066563889475233003723235196590214244218967623735940352547093775030718207432441470388584030639810069839044704352009824568039406401730277997324406130515388217868361258731518360350631227755164182062956729750873787257782064516845860236523098625676482836189795009898799092528013847190617781528858538555086456405636948704844435599361985977512303828217145499801527413859672689069507840793307558424177912649202781322826422103149873257098567163954712370818852104539877090905195744624412463981678366573012535137233859355530139428215389259024772952562082442710452832148135618698971304569007776352311114667563077683947673473877945060738027297269752369958689950077263176516762884380507143994136423500365032619459046854650033279155080128547408195356873053697718095047470686652892123401119049309756091531974125463077569169682127012149646501248165699713891445457728029241939733215444645074257174037161860251413299388868564207572182511346974989091234133773285943442318513627598884567888215666356062088538150052541982293043827041492758404133080334909274135768979260475374476093243953763853653768285389158741540663541528272379360030593611551602091116312596506167058490540605062212851133673533386245024353481413869407192745164346021501990077826399737581868353614042009267163012586802671844120938183582490933927989014648597600902426533930695658231253276590047341525085428031675728540049142922452220024091578522620053977834102281489558952282531807015578008905085570100975280192343893588074798870689928316538763468904126313445714256139146581119854083997897897537599882395932046369767361728823252841294664727234161164772516330079268576143621829419424573927768461405111745896498233737121266082000000997696567445272218497853988473060998765009492165169494747141059315936894518940639252863582111593285159052769957482856004118637009713007568386406525330970763983504035780911060554004844063574974842144058202951401100617720907262277285548699781279829998812649583223310943623827650174268842355965298359300443158609906425859443485755038884377424226200730413203007982344661234292543390267542767977890793224972549025193139854549708644663969765238537816634720270870152149876380997713386695288764524659200719921735189869229993100421067727667984680866638016210458407177034402875332492380570444700767994643481559734533834463711264533760223322387108054774608913395016397248973619514825010954732065200309612218105664146975017474868462554191498406357832812430991266937732811693491993108270635570031424462695691127825819700962438488694364557807203732668242388116308789000380515666365513488089113802913674952688822883850442420338973022306906430150750190098453550644947360732525197127961338542332116269127001430626754018411594323421269714928263373464926279838934882165938641399586755815805887830337112429382242124668124609898981042836568487441250485395394016990592488428610719556035057036800732184382049900874177537548042618173109250308268084672204715096292506405440116506489702269900568423341955673120138700838326156079699208592893072687605677622470709817102615021362366416187292749965884587251951838508680135782911080978299025815459026802346708283528187375161214565716361746609646962813930359202208253083515372732204050770502169397878457823057306040555017700618089588110721661933042465418322151043317367142355987843211309382326180098501621720350798889030666113529509894872407532580001976699253311334393238108232531939786461084854443492085422580495913617629786633360361196265143235672815402356639449903183163858272092260900794093428416698645347994215915289123379680765307364007506496891538065951170528106607007531384356668011511062769382385409170082365595157775993864844917008743257469200768071625139317251855293697900465398023991513609206500861271909168174327208682133717944207818916732134772866864028480701736615097424236195400124044776907577713098363260873471079808830913612239250396456046902853794520845859611183155679652052619952516709643088432528999517289198544288774027658300089491105476873550878953266572254764079749513514727314245293318554487917604598111189550547916743700675144293697799106796320502440519255781526405901949880662245477979460610844256019056590155222445138205721771318462270069105700405335911914061768205081731754510259935893356939817915145764457534370476182647523287480992682005625287791618522444032512284677955374663222450964813242250907416712503102906032670736167803645678805189437780337890966971539718194228213795230375963721954682890131569490187059015682053324886864053078862481462026570804515451647112593919708746616352847199717266664429948066668230602741022681199895097988181261495458283149775207986522226559328106637525225052597375431174543745364650523411379073882925284149215302112362164598583982286349805509343892659406695666406268538243918062479913900311529802243180047052003189026927624231871014665482606546510607458702644271068018490182511155642535952233692211272184000572451515442270420799646839245993644331415661085631474715638457320845441978105607968275280497308452298831152595585525273062288943806757945729176479335956823643022502788734638787415817745640864364382539868926648663972598214344762663990114204660251217942051420517804283393091370324243913557983253034698890644519744438336623659249863829821585023649810438671998690316005278503557989783443336380021986461120423947810006847558082858093340545720549410585851355387492557862283707979094441419105940059220648571627225358292602070674923082214565857590807835103094132269922359627829206652413251593787249583866083780472698522318160244368025446887381528749953311796676298144947852872976855976932855191529181720124925207037210355081648664461681357614701254534717431154440867917343135840371753926179788961745937182913815892262325573273841627964483684991247842782562937497792518448019803402808205491383305741762998023858100914134787217554805520733687803173919544140911317350247713137114944405467289156479105186381235339061161285249634842996776645512716148064420031355536138938687106244169719695840069345200811370398763945264383884661688583521408097980532163067650642405980573563482675175281507608659841907718515042302919359370587759767615154953206550487824494016946896288367399833156682913234548722119003514639765256495052950139797440389435360682091714184230945434333206163890465728219400270277242346167950637467752435623538525461087591330283321574555008413708403819184718829783795912709648618583453894622430807520990226400808971187785576380263902622510501636321992693787030747236589938328978222804090859961650880426991960868333892833831109843947932560623142083158135623937548526341980071379803279434741986720365406468448094804872588673880225041783234234042171648326651044350114861733841646482775777564779972761528219665634818895711372479168400642985744479810916645066583538070208416861038582123357604904011469454823626835059591805094783826689424522511611733369408229876841370858471460241731454514147960966447538217042986602759224786907012677142406294633242424889104445217856221685629902572184751855797174806973543806534159861666999715821202740780164017365178662425442179627297407668738988429133965504458663853748781805557929255812712186170864599552089121375858213485946651239105695022383535887725957608492546386650477385412257854055725463820496404066731477272445373860138085087495677694401823644892812622859159677348699326507095600020105107383330442806746652679867218809533923725825703087326116113966989640004165206462983766595661922232089288032277633234176282909301810923072925500301139398552470879748026967020959973081199778664067071252674654788472552940621654045159537437739635341580709484754381954684336543508496114316242152264156901755604614493563263243999092421121211948127281902023368744618342139452807524216614353762162030277423403959213244139411746176338805471792662840343169521254300009680042250259798926933173852178368355820631438747381144403464210223855294236373244692021566387875768509302810500137387553651265865395695292922701865594116168372270992063753764824687789372831995275389204519815812670097489717502368949389811012058300732664368825804645225999199747615482476402689635522771999944118477594414066868523158974655027304984555666296933773064203410725861617863008995291251230682180284593421913732779426468837969059456222838786297287609558472430516675490296907551119227944022214066771478883819425467849077768070035846244609428700244020770346402333733847322445748179627744735647458250538554072764385399590576015025412156007278902010213719459549995734711331060413192503424814961447816462113151406516366105338447248331536543748107485091574677031532705872229971394399551751813084251376594850697226802890769095616966208811748388259000898125837445195899535107030932599078729653155629573119366575030353135460449641888005199450525669485356460883560042535342243477108133781283620830971413515736857814028400767883926135218115844272493438560144048145542795736568899358273862907107527948447282574264560123657226521936758148818534912638807358323341268520009597055065480801072087185284358560482390902256428029840261901735451174945323300884481951911834784334042766950110408682018873743288103950801647921148995989936526626922745479881256697491119690773576850577933944980391418996693909209464927597157168112167604554294264820870302463885759104666480771172642622084486848074291123417302529497563357051480262937333127520651955813458538502583066902781543145575921444826634165098845493318490671215199495045567387819355271761506446654936986752077922654212809704346607889447544325311907554264235085327114954931772650997083202292828495016376387198757905803091672509797785175802253701878471701418126499679973872617143109079151834764954092228707244483374840590910168541082232899698831729967337478811554137716921999869293403924952723112566064568381783955829665023479151586185331854718602326428511684432848298313351736228206747122717235627805536819248701984191920691935583875116993696589825276897665480427479048383050562016236037248114644641388472574702057655982052319765132562111277788070941751372253577988445293217283564255939532806267109396771351847485894663942309168145582537768340964108125289299589636140604311766114425502811111082179132377268040133630861276334733035597421114501541660258667602090389892042910113395259926794747336695325484947114957041649712214726411472873201007407538590785914249406340306394947333476364062582215214605509409431126699751283957214141789323374889913514098722935776304524184276092770952803494186448292292707712251819496147337215108768972937278456617839205319107984269785360791278226375727809213394321189518811369233219409253522044214781061285135949814806632528400308779404540395104280273193893853367172503285735319354958654412791841085335808199964698684438261140707932200045116197991359158149381183592155272370688469169275021434858776942386207498327192256017492013568176203456110438515860869164238157478677993483574132242275640449900967713239520348337376089683933869307654877830143363401933718136868445628123339490570303375325583907165996193945005586779778829197569196973406232019640876877665194778432267898435216617617104512051975449332243012562753235513652994415504499047307228285387040855782298681333392878000170149171526202978890149784069863967578170722955137863172583505707208203590394328406938782150756772271061079118543133905776983763134070205923000680382176867132366649146280334946668093780967876318101861321784556188455851090436640391085657899935166777595866681628999355770531090589444600503984482967170806975207560233722700303957142276506760225030794602883479465036638490044241639968915354238871631239032118480655143182187645079633103232392854663976029153451529893505563084254709909262178318888515902719962611529764976859259907288315668741896975533464756832917779935314665776893413515666049398616329854909205295818289936648013289426144098211828084438333215438507379625199087752231551916622145180155939237041563354472348653443037893176119157343088115960511215528024845974006465196421953282139479998471071234391448139815178982947441091516366947354938362317083907409262123441026276145094766513232252545656918009893831542800917649305364884507786049914667505336826254618104952915206710694745611690221908275541576173886148888866003545103602112532289114592319355965950441688866760022531828249676393527793910881318168450497383217339260774565472253609003818815865184350414772552894226843078942400725980314351643300168657912456875328944853485769603367585231044776420665375668627871787332984301684872896397277640792266875169826981577843707177985461961279414279668437875728110140776603608196866167656309207797779016286110340490822107918227372394805728512251121326846456226718085787992134132158240001704231843444684378937031823750160774849065702809471187537542651246703116417649546355762594805649448504693699422937398454258213986069670870644867920415213719983192000526274934495074777025851232281997871350916638626307042221777746317151184563396987637386579353471620291107298168113265580886765870751345668691987168324112853316961804654329733505666036663442267946739517098521053442657659389360866967936265614627017004919935689907496405736591525481803522789056734635806503422266505169369061561599723116975331191656947822152821883362382423565243541648284322225021385485338194173449858559474062193305545555874736456652657033733320151847314914847489301424938250829368494642971091995232441802337390031730719092803881163556262194302560102185195727431595648268203197274172952542535653874978963009077719180549469010136187347952174661766381989870162957771588743172900488082655127963302642657800037648926068432290261798977974495655074904762545117499638134731412960924161100875556870836391587950245275839616734299622461395372148608833376840975821034540168770846115037202155792037692165013558539780351495322775425171041150467426772899200173324583178814533092865357402831120355611553660621568101928654773834375457031399048594088896721721890579473204623620755355482923367286596465048243172066222843329323810401858964539756353894161093424424551251019010992495472942757566100433743348586166547429884779063236043879805845311304857526886937291049426260943106019224706039246388440716655777287184862153514741329131145939470917045436544128110588224060672903227046088168513414692921236390984373277096523549765141406574394845822966801701706443663334620995151911821172477273122673348676210160660182094912346156879681794615049727361349030252913837273225415159841124775486003958753452292077346161665141896776245129450615009953857748402521983698218350664134249238691531693440243095238061305503968512311250034893706870432609263474843611161496273144205871053667093684368099336136447549405577983824248329840220077027738688901985251941340562512021157253575854264492549354892398280810398993426023868540114555536505467946139706909906909370685794089185536055618648844220861594572167290283153887321767328892742760037520959531199373495726819922199421154806338786234040037557991461344741298553701651602218962019386894263136906760875808165710047038395229972906967617613039802846466548308552289239798386206140956655639979962993156328708243674558622076734654013018828801604252679536971186831571337652681248987322720348353915502480285538721382387832170135357862675466558497105258001714780372753740390618663071745132568416169467750669251408755413353175571174563173529098646785683434543521165810674966716495193491319191098339286378971718441785815681533480948140590749978795867270537229480759675813316300570839460614965621801891318068001786703379131642278540889262432681726550533762730328234304405740819328993083739683164360031087614289408930041654571763307513275096553953096204255959306562144339146227411586617463742320443675929080013514161268847597579919511478306575672637582111474532022595611588516625197566811534929485583837286457774394368364865165926787547150900739346939192245702022174991541666664920491269923611290897139917591082693720672930797510415819129820403606177888895514178746659997183570998896441326807453072843084656698824948874710120078420629099694037128394509266593627528241506406376791290871574041139492331786051522667678271448449840047442281600526178292501738485849448150006512849008163269026771432558331232677707177814132072935841734651532013062303382107666745684146383300314304118447860101101502825493513195172350498643093318573464365099789942704161060423058914406616973385629914577770408278482287202454384504551724109182663377043270028649673916362053803203903414129990944741225956070268533040189808651940713374273986600242739197257356144618751706704925637577388907843097608984612058348362998816539195371881553414906052802728174153127630861983743576809972678751509351129247154387045867082330441745875384701344029339770444844836475738441151545821781707233163148392096624416617712390012461125025516355005111100958256407269550400887807283791737836437272709457884162329639627017491894642865065086138146485260444487154377780654684253301082388305325306273949431589199442643864061026633517970209422295283221964706811406031760954344934866192677398327043724404113281593181823295288593445601809461674973918207841476004061698817133285178051887954604849822200578195466468690441987124839165890178625526961708395875014899249765674323732269743170042055755761580345189207610286320592710615266530882778880270728266269935965512569839167225570965170423831845675922607538908499868457338204215531270976586902537224849024273793712034436824939222809815711008475952960649964585595799480328641043421814968105664087785200803223971638012399105880792703492978472048727677748299096321464367909016143438618544179535369093588772668513711902497776335499117770204369219559709116926184999081411986779085819891905653477994016037771004458929811674143252656729423553559909727558012194411951965390876592147111312246613504770105419761176663851835234102408167217585291882512761602816719681782776537524051527048289319500258464474779717662825135530411747120621156806429407597632464009716678978838370548555838735942401996371750199226301081534933848194693076560620902788386190316374818853037045332037863194152462197433090632462051068068267378636225105105250572768394866080464611077493943468569955799658400232494145529825185034667264495157399810637613118719775894400537225532531538332171612285854429190046712029003445742913106875464460344862251592408491253651651062364384829544894352921733178088264340737069499641532167368359907459316887843080139984793399579168924709583151157449524493703657629977671345565340876364348150045231844724503730680470889687276623750908731863773387173695270722172368320079306173982372384002283334263314894259278660964488915590943215233150095660369055344451805157989739652799939887200776155133241304109574267569108450967496829727119671786501011667392429554212172640680044257169397741760158285531843109770655429987580650524613858586167184331909506337378776048623890559014181965325662833026902352460068376228847825816333107782955862784942070621356580692430206470000515975264959961785490220178425955050091273644817395614734699887009979459295576139980892389579684493809352614055987913564289972206394403164752390384345784351763755842316784200697903924535153405374639793492026733521291884237311422003207142760333321195624817936997161646442512623451854456360607387467739202513117571925786148316670505738018684231708242422455669853613586014981942888205196049351224200604639438410297402079948427093672157483899407842902813442103154940415324002367190467687152879390252234053683259398880039831387502675015851634159101145083845125886436051541241208056442318258155766628936989213260273645323769026333698712692079936068057087237503480125424387676134457529813452329029853919626357054648610592227602555391642277326951156867961163683906337046380253256238629068664071017379277334051781245194233028266262532921031209433835172757497469996466365956020109996004036984795772553452510965042345593666787590557444607774904244795702962293241231328425133917270415073171220230746412744972757394596933598136626569996209177456513213210713577324843102358749164142908948212955041257510941319127035725103773544018418670934179653834473097372153407250378705811005357905703745630266959190304649490875509005802763055506862204590660244028573357054144179948287626707075410462853685695087497189033469329770997388030180029415768220410678899837229796018045885609886086055370628368919604871630479576892038750423413388597402687542217175509498712090882538326244467059064444892405618842067569210076593298283518207093259614567010153560382272580400030623427775699624993150353053060526313578196042978195729863407324664327622122791349931801561367887874062464250471455201834761272017971335503007379775530977255959298729116987410893586707993582189738437720772719730399098679463744380477160859383670018450413712179706603539952965069743476392271216491630679322909551094238673266926398813312208355062169575990686680982977861757209487184458917638834396364613788477714212017593217266076936929438270150893574126869440497065195778258804536392631726035178222928294126155612395500611100691818440942757504132186139122899469999461724726900025002222878077199831282766732076755562363658824902685901404503230712747250467535904324027675199487552232645749703182910894004967954039107586999936133935431818059678903801099839635483504819742299765614775666633809001241838725524534060060900881513217390570189997276104185005903761739320165094744735105080000428793629306523222002946766462544715094627692292867523841405201843975346609058784723768705819664778291179830121570734900456789400737333342321247915100545023137690538704738958645735107165083743645335783244234482121224798880762273926519540471113783829144966313597594548641956221861436094571210520411749615162526130228463931410365271379709327696983367503969348549827044199195290565421843903212180593292584856443613890318037943216298219365510150133783330574037688334769739726682808999672682592708788461221977501077414331055639187768174580398443411774408774187262060565168352303631712757413714008112179858813627972608939044299836689069207166617572724972717780816937659233213933734888200001282489651827109353355327415339695109736155933753020901042440695712989507670532098753183527310374316543472690174193706166291263332840774642828676796345850239204540044806568000024837705037442602872630472616423275307311195627243014766595871288617383970951138978908538893375906895189358273248009121636596925083387965543473561726514994560098306183781039484994741980105587242305932026313725887367030282918589899339648082914080714199447989126122476995077299587187937440342612095505124639218184957696597704508366569311006299988225534787634360832731590911895729953287930770528986933733076836569614295105864326363887528308426721313854458720691342890516361079907612762428016508981853346097377477317977026295617403204717122805539506172882187677918784619579769212914227491267406275514636955893783087706201855381418445299725673170439043214372453576085882884573616960400799196164158126201180479564905841948272893081966982077523113071502403043437100677354073999757946749781068695796379962577223375340481280217608900807946523099975795745488165669645024183052356531743713674992149703352875162463674183864130511274912123139330535855659929608659346180436556149584807720058295840745529345763767772618151622190155296517401906159322909063402312525593809869703456041907564225006920987243512985567833571651278962836662799767527176752619323278134476950827865990381380116753867186411010342998567531080144352611590314651204068983427672798786156110219881772228840647160845458390834921422068557555731693280341856175230646266051163667339265835061729656655205989838740709054979226048929746316547262209806154237829505381374933737931922693973878451141278729667652474059034116993200728948611521521043764064775167110502813209748757574638966300891332371588807279653256257347006874792798648819245562613082452222754446860896928763823897867152785551969083256940926457116911464054812815507538075693372435078395097201458712375492155898710560672696466420222438223949421376871437203378938620565153190875016618392312193023263367764363408452466605438132265442751696591073067262512521656954534064428306914560677982710187655540074715133727335648733702975513228184325516403287319029789184942237324351739781038213190047568323821314308643182230232594878057528070929777746626686990614060294940171818243873329172509773685793557659717695416915919279478511878591712309208044886997011489868867999090083135584413541232210882648061210694637824782431647895695555795458760189449668657983854460666120186609396781244564095176235997365891416357829362406210091870993541378591245005948724609426882216139326642348238933951028983284588097957580192340426963691485060505082012477478132770997061819206287240629334657089385046199545300685557062348695780330329851121166031450435285246064397967429010428638875765529607567400797205553428556638015330249238968816192102693616086776492008870753347943155809985609775887386228054563307913604114055166975224267592872653900865647490837216100545061811207144169955108819784609082156155751759232624226515344559060337645815471606313183221509199996881674479140300072633642210252189113531652825239937534942502896826660509959305323821281248764963283359041686470838746957398274622283649804932465630584600221982167209429115043184024746001530717709447156629468305364405289355244714461205232514484384456955307935123310573263457705486463466811572953969862358022621854434951518864805427997202547505650168030215160051612583737389364925184957126633283215022148039942238744523615247557462662853534695521014165406220472068259408031509620581846671345057791552644119722672826344899119615210084634620120834384311600953279428939239587322744777464369979461016839112574823313009776097009878456990951811188488533340411634853312859149156776747463859224055702574627065230553032074072330871390134549360988711659030167099442792699254713715127770586499943777860326891397838421101764561442486276407018621436397270917770623577145023223197084507130215376634618567074588741676960646516131375844198691257169770007000497586669591620632855087929592380513407182232162358894802850960613266752528039335452100267176577031182124693530576702560469283022329608301189381085318209335400744879353142759039409516734714178824209093864534458918543365861537234479464936597130075431868850820229780741834046925218131745032863611646541598342607585986254624376260723004896902936160057972462879721159602243343210439811401951278270450335609571557702628243999650057291409305094455701964592343525361190693151104473753737450177030274752759836988983698868415047975467846306332076206087430140263157526011031380121022013063173797064762041449008565369204511242081362258166024882278332322261519672582494902729220156032069563619012460211645866845694062080738996603220919433094870307376784146039129227446576978457758851690879823969786769721565301243255845297633826490771714469818852453203511285104272895782810139835979565114395031950842014280659060011265154336374078152306537355681119863369949215918287898656525348195656677903303251006251093908989859172399837109971074210657091307896028128606132976538619300404700359803351615555072220586696786176486510403484058056182560354518717507863032045736767317587451512473848618042724587935265291866352754856729088428539037228945663049025355539851364783950762774075589087108964820181320950025434625343177047521118068361931971952830918277056148119890578248019280033817158061255349727673865576546627246843904950931047918901281000542464850073088727554171803596328893881863459767650989373745599822809722684662448791551982371455167370703886975574025517605754194630312136661543405543439717652980912819777815470899917597844704393971478866977252184762011026353653990364900052276246133993632799929905217931687440456928567883014761476019835261036784447610990050988893172456155442661904679041076977486746142729933317517047469133577820392412101853475966500066756749530984812324460315525777751772051930698055164307799502338092987017845846500466795389655522613417005714561153119066012052188701425169256674656955254687545764506901592182875085359263394575702312455359167394703944369173324903861563026256286941437347674439008559995651700852859952880649571062191509411498306300872303689832355733714346466998017989338439575155293634027216487224875478625671162101399382726040248526484066920451880419836687471795590050559561457548919405733912241022053438533370887711091032980187738417866038043119734755901668948509935227035814017691421471327350368627740543437238574116141562080554741288040008791174942945971281533591694505844216031647689717533388568471211577205897180230715269242860413174410440955568798027372092275133526014166443137124781207679420778161596438665445351049660184027680454086098884494757806570741158379306840337957164338417577724431759855366543885734841789125486205969143118470818662002855977140820799226968995784400733137855414271378911124600456353658139036874632116654512288235468348181420682617048171965222213379783339881802939587999557434683396604110033826404098224481242528695305739394043891821788688215177034559122500636919280573642966021403829934082650436307388284182473521800346730639076581754339404394574168027520577053799518643148377447700066459113290415576181848526404067005336427799973441326701602200227667723461360027480244043364486226008645738899325877306424269543037674068586846362251054197843034240934328640678815642371727383900124312362102055934711497752848124505361110730314066132202151228847766791394403795659930331042111600218034124740484579569778364690587017934909446193518245492161612963688631081513165734396135187170617028949456694215405246490749088076485779680131392551631111388769545619906963729820000343941460671917021840601562226682194768346980849135047011001804076971794436575464797274972847179660105438114223484895403604219865177335966575752525590436350213817520426648082339345575824272448618739221988837131058266887126959885831286219392962447054661423901197451764915761518843246580635140278606588518947208843772933377159392940419685618280365860226527960230602691459114693403454725142914774945421878227356656022983039231197673457810174312734496978317422367015592480662295411491182013765730330673405830124612570405015832068392234962980376998775829625893384320609771237841225897221914889925122899570668983405414097789509564128015995924922916308950928826251062555491516449539310904470462289833723837318215709066311423247063115586471324899214052578046861818256721609861206698261756693372311068524953506124299873584894755151782016227433750772888214327915332048192629045548590981808296863571498706191487498109581951802240562383219162542800648794201792014595213905364546673368392494007019571048359635825603169968735592477605236538469381301919988109686049334985441918620841256699049563212895180690960562205844931483313539893891466352442914533350418696446055687177322371701864183923577661448754625519972848431143829751291908165230163610220685167279630344586222056056838019981132415280631677640078461342922580374780134596206771322900552528316216114793535475605585790292089341399209793422882242293260533722120644137914061772995844739784691090778967449428680383605400069007385673896629600731057191650055446462455045228650997021052037117521736951004843740699112711228210851340638219920292677061233120821659955215081834402781265665716260846505445629238102747629229985170978464084916395320174170300050822376862582747892033147524224651141434531444494211646976184663273190367127046425099621936500291203826040261365944770190018106264795097289103809889245884639665285731791645843951076576213609938054270166355129626095033081509572719768127652033163892661292930732024133858797735730342012625183643373521770103921092606359156722757950337116797192202795288449267438172014659721017891478415070311785295158596787577775095075747864669076298069514980134701590436257055394964765273720840572189925189148018701501734453490437379738708044417584757813698588256171638408279694210124456941872246402641225197240570984897971867204331425157717545220307832571563487700833074828107812895679830891834339025725586134257651015749620566841427705596633855432652669822936368733546244087309982569388433630178733207607643109636079290167031154144475694115694967817183722588489066215891448757934201664959202361237910359259018247088838491068041072668255978032661707250060673624259489510214889284260385809917404581580065151621316843386979641414778064656016426619561617513520865436251286504910051330261603592245101394481128473680374262061265940826314305621245642492037331983146509908101525904596580786783941762566983571571320326385338201076207699732092031052977806696779481284632284757519137567555249102857018232286119007609133432849352995963501285081632530557483117929629297903224767569821632334808897380320587151022492214463347355702384812742513435423030536085840966173842197166331080063610819689776646753367282233603397760633246908065499083353781130054413288240077468872991760121454796793957334794309123064292952153082217814924279883166298932670448313488918524569255216121996843759270874860056049757567810953383650921992228328153410515891169950161914806523349097637425389575923784412470542103074702468951151198181308396452217463455020580693011460536846060708034861764458862239177461532456670943756455378708515400424046813821665206496814534612482290773574382670020201457735032188592429566699015274893272606809644834416950105171874152918463853278440418927274864474945500998344967678605239725411605305827836508210972303312601482676543524755618426832012064874975982929059308764898018077861192581296211152928553957993150396098786778307676074243819635346054521203459197313915582706255757216031430208952187944243692096389716694115697207939206555079523253178587409656970827329533885669558156716822309400373364529638446833865488308088298759226510041556315196018115443711957178461025135372111037071484477006173249073595102607161671949653707841853134768023230910291716005770921522797662569966336898105433024885557601118608069309206136556440867965281747792153857720544208497888851535235914830644924460360444931329882635886434228969187039488739462968528500157431283959281040463672139035559528320195186061319093292972358545654310788201773413477727191650356750520413521320138769769654183878291859333291023395427458049144438880173882238571784857907983014651202530175058162289616028948352161394734996279948145853172114541801974898144239909589870401091262908717864103814220812525304403565613905548527094744042009466845221995286114188264737869718691236962176496633971416422604918677690074311424910968055104327988223599866993240311184828435289618097565786338119582650127999676730634129248768647084436474337686100344314394458852436902636296506600278124262769540176049989385943326909710726330794349131562635055123290916311342016996601543424026671754631306039976898368514643421638165029486067380845909898161152105382136110879146172670382808139525630244583911734489721018587815675553201688593404967136426115926415893567790572363439752105478234733375505631026881155651031349367565312871468876760083754169372326063253549156244626045977267577502119201125825024987969248913126491765438977035916847636998985643292871779109491138392412140757870735690003674213074117700973688700940146251778902804476157082670399588246774696521438109396418396542961517027623124206270228881638310009410848646943117948635734885807333532359527519510683013968194090661118924770343432370947204211344382492864289977235991948531020802966140920237056229329722660642472291193411083048003101642699210202315267732214699741038410254792659454992366014226227669225105316100765330753244466444353170156077488506682795951872437641857628567129077220106770567858092281417572498604100353746184326004270538308365731672186714976340565906488616538777732865573594166191747185636483781220770284404740273604881069461754951538591987030980528588279823571131736597071842113360288643169763883191375467266110367703070428630084869979045468828271916879546910143767445754666586661956109457314550467313764284442986559950788840041611246595786006462845251110783359651890213481802197630491507490087589166614124886362567498391858958013764027396374387246924338865305990102520815568510756768006708257960360246537427410229122002755515456171974256241327937866422339604240971155453307193982089976314525162563602703478652320288127112906032014680311349919302560600692969253777070930158806444981279940427058844546798393006853752930699303547593607615965064944522478589154210175448453237172648058175675726257072657925264754394403121913556457020731390249086952867568462750759295450456520847784198363575693122990428408764336959651951139694102053385879722366483948291983996812791134871617434247189056180998631700563996270089179057136705938648741275927854856738810163198102878701244888525930726341121185406110031138626522884127109845960014653820689017803948261221934198592922168588460986218216370155603735017620365779830834713449699449080543085229421426596424672004817865528589589097457751617996866124350085442486346455770823752728705049883363003647633459830670881962879375468980621871702592458629446738097104398854950711522181593759089489571344306332654623362741362134110781798506103600965794350608940197728191078629403506105414492988885823830242313357918349442922565417716698165923649192439256675923306060290573387159653802456070837791509172655445495050951477227557368628364166461986569932109849779917686742625344342950355508484478386530406900668855946857513979384045884333983562318232156596180953438536981556071397895610853118824325072297097787704477989950393423648925525944280052291008349439274446688502421609983164553099970687279445839057173730534940945626509347395153280244310670524308913047346662942452148382791983182238993594244236398187950801264515564068230275933607619286303728123369721827542754990249200970034019607955211937744011267884326921269225654934880908079402093664460324719011624069460949702640138464032254119982912324658395688544060774815868899014065159788672445738563091446197160568535943549497760704113745739183554705480494442566835828577321116385700847703665834682516408418058364830261114573973152814010423538731193980496192079073519426310657373388236911730091738866800583297709192746488843868349799104835320523562672431567975840038105834798089530631332014599536879418150758970052085648974461638328460575692595880317260866192895541226305316609077644617271151816903733586366157347484311415060620493651319712762848954211670929523991399490081758666121668958144025955249149032790857079255143650687397303346817370272515222870870835315760095935922567943884389909806180657116041238520480359516709073795238207643597492319255977132200295655571320951561049190852984803287150170967352320501647483335420935036605618106676643291058201039808625390347440551393644418607962452225800270527125840250607138039522406206461821997029708765261833260379865634749977891848645427255463712017536890794846791166902884233941705059763825676321593812698183372594142272870693636885563088958838928174228542395272279880727195769941484686227028238550989304126856081826087632074275891067438361439757179995477093252917083348001658680501974693855810258695391379740112389083552602457064650278886950362621423702354124730910145125085664590595368667238491692043314553768445088133938824478187862393570051031590381454090549319456173613961923493519833342675554285418643832571765895905385918361296983655191104328686043142505413873060878106536932649819929928520532528447668834165463535575459152278535620744117641010653863590755323292986444262394559334860914717539852326655317952717073317672945201150345704576712585319249818645384766883921891843194879800724262560032057173156223297166969348993268742897453731093650138820995575402608441025696314271689275780373191749706897507165404351580049097192843322104996345328312777105816524607569847302472765189972845140779419860801327843857990387593822339885661966849318385426348531473643670250161537219359282955461449830746381699037878571951124602330155053726426161490758597763079954151374344734751223500912498082611652205855532312966427759513524554163647954875402770565704422538807632525080411132419157297127416285966405170757176614418565742941293005019076072958506161934163241753450897745038999568333562829937233991918372747858472986514361843280141367057121607689702784650689780408456969002446907597860358760402075574946358948553146953806631435246714361361268525797522871090312688148467279351145989381736325510561812397547001637956250701310576519227651232225184295150443425627735097005442529487454545186762802879898999459284668785058885182885392034004746689979696412036486318618975992530629947957331104559495832508978246733624799391384801983482538392281195201853918245867158504883114040332792170685245065702594158714723847310539393729523794718506640667931039245579346627389887957952155558186946675194002613522831957922346606787639766141987117738306264177326216732619064726148929893978725041215964375261399090695869775332207630186273849756930418582723157511766690625123439473641559716291668234152240418713484870931072417191240579526196640861975009451439523390477655455410974914371372122459004929807490585696469298407138441643690517077545411092755923586854141428004793386818643413692279092664246210665923822535279525947972834628793831633466144883596234204126411410926397543347424577053445912890377328169968473846989649312587512669027514701072755519180243120059935199665977917491758279301961646671234769092329819090557937811848549002515138932532373304596684796980253995075840362866247754320394596993409082283017824381548813041921597059923675172230241407722972105850810979553690956108769604355619088035125285532178936597437511002783845287112990825590080020963264570312474800227661735226204945733334379493209697036560628407610208670192956371463645692958145358555469835638356612622508585257527087962394071599339695105624335389634340866675934534822038252036826491283426694989629722725331572397197970820146435244532090751885912661742179297960951185184282916752687031003639620732970314147132389101579844837273985406038472482120556300825144225801751177453986619271287635310014681893087176978466030501609889127816575732153122616391097442704596203192129996157624465595419572832983145839205058948115763559195445713143432394898645036089293510861359653507317206890395359964102575588033315190552190096806384020373792016162690773816269159052136009346242060495075369986296277477014342707922040956243284073761399156228326826173408563770428218738068950518686085069290282173660418960272128719174782053515186120203159029429310650931075683936941183130955463862275571311258085344135580857861185467944448239888240644966800509040669639162160229460126298183682206635415532510688544327000205413339257981994134755901694329238465482056492001808735403317415114972855395022707931828008201972882906916820244025208586666389091064293040260577897741860150430085236824766766841859386242825501363484709014497439567369526348064084301742230386473498068566804024217324224651707446851205826407976141571494564411027737800997967698537219579833131391493187234055913667492164293621024598349473552952089206321499809765410989819973012220687463840533407557597539403662757028712430541016783852248334908534111564230010916927908608741977316599755980756133376280344922279285152612958908127839001472029750293810653221646150765847014886016022451230390895584684991935920194908563341860535859352770832741094262886733365090659216649721078032774627673296196623335264435713291847260996120905269967023487848948782613941423881004534184588774799841228546591713950346516564673284989704418396303685672545898350892713127361374084546083372322883748303675686867364996503882179098451334846908789773102317923181235186138191293471575187847131948128057719514496098294935690228614215188209874991842974657997292331936605870562517920406596907073692293996932656924243881696058764554656054287928583404880715324146853356329372829116153678785730318919470203879947344160924817228170400217796091503322058655748493021312144943393049840482765590752536078693593854424786157613539746154371719512805772832661168277540796385231468004974214243168715517683149697916516094019003774248226230043751083536294771552668501487707740646266109404435563391053039199180686224069364534122661939671622263963971983483224021134278894170951784168564720653649569229627880404941639741948095440170000708484584920390439627600862539094498202185658099087463359181583956073665850691663241338960012206748839951950678600970327585381697427780160111585826946200625537187223291802298524410834371806087553253098646331051069987154171057691774138322163755785722989549664562256992727217627515481566662659080432959879327656957012007681794953188114730224537488543865801297254526909773563520659576699526560959869658485880024804889313266336584924247889979420910641292218732889778457595503907571968029536806335560360126301557187679432468429713384464515746747504336364707732632388455046811957095565444347715699678698004483554289537424753973672378559716388272665486761236379715575342794900195124133467337511011826308537556288763456532209150071196825366433487654691705963996421598500704058225397184904103724717486784109715542618469401357482399670118801710491139346688891441639280262825739768443802475281320808968029327637297878479955441255728402761573889343019781260291330880221357981489287741954547506912888603596061570819422113555793016526052512587425907131962017531540027650389375772393531904090411528264485081314377047966547093328437155044530368340066536926148141585688467693924910836756520022643832279442087346898969180394266162443043447354959386241676478036898736102732473981773967962988470301108266150598010111255577402357970292792955537108771179018350565503672341073249221979406762107921475317419847680381348515479913095371128632714800665984797957051689398891992443090139069385987769976655501675602208506065366439765040480705507570710280274464566589869713378306500394539564814029732796737873299804244714489297869070283022265468093028109694245045902342949273419938228106080560384326622941743496687890315091122581355241580011640416944916169138551240109247974340204674660097742468636206188592852861654905934887297292711042899173203952481145780314474340035667220997194799256113264327604298312071487516779914768891189835793937317204506877790005597639687946920188852082812788963900071734723607168151957792704043179809260663529723769762720258735928800365947026652962978613012669281683158543613281089309929932289740645590816914197530240889334725205832385802392645489312847088403726518975196614437896022997009847366050442799064668488836857361446355291497817623497893960920502344736808997953182341228508779855548626357790989030592677114114910718671851737873880197797039640498655884019362637397597652221758928651811772247636204250418197421732733693178404579126729024042860313889943585824299387112358055945076282237870879074039434557068824337630163761849913609035301474971348801742542374615092421336171376628076865338704794696145732734725015121840221036159026302058036479008408721044059228019301554311117441696864220342280788424146606764150440726034754163398444137124712191648005026735553562428422335613138944483552240298489540539294164058323861246980718509442553487530217576456037171056257714701511729579244545499657942682946702727996730873416678413320161255243918639088280265608150171983051010760022800510642732777374066344576021315063302522801485719328766371912533523063608248713007291369477009216838134931456250691852331367771317773021006981381892467789912834335828904158415123807722796342945192508733877345476753208667408701607198534853538978930265338335864949829781543804679503633736984976977847684746684725099736811511911763316892681174001774514038264718352461281728255119208202864203221179948537077523480832694007366477950300087907508291029752964515853515752720767761404113529912925625057500276904577160791287407596471228395285541064747603058716716720285099929205503943722701975307881949307123727045858104248188640210987919352182133166137182446979816711422589757209556883961508013420849213031864135180640195205127323516956706534548086495474939309734005791776746142113982775988318030628314121778075337996432722481256484667464010911517768717763814484805259615454365497711729959087416872412918457476009315036019495547677320339809757238876229975116160209541653661141799978528152473419153986681679728562898108349628055308437676188559645294805660193722020526096726976987746835859384392524575252937845133982086309060781583784525249556527359071008258394652956990436256483936352080826339196401736204711543148347119389774831408004720249650870293447185689620977719262706493256821239982515505391197011941024207215230804861179997471094623038179888743594099794141699500466913858288161214651236860611107128261719343039464007707419473989101494730024943639683588378479284811680027940196954444480858630446891895169828777051241655408460933960194914216866967586131105314903806877126942571174186396158632056523669604958506753745374411534528806633638450245600329750251114167027426694176216383331668920164723822275851078680703036631887417252433730980875880599952942602498891721855690638208823849740702354966650968753923442212393636870788829439620356662764291270131031634018635814963976931542282740453942895922039624045611192250601172310041290377524599933047683228762939585851479156730861514887880423998647286755020788834969939837594924578597414827600125057053894304395091073646260932015778303853826230922486071893443826345717417551494724537417369761240869560743685087425654754854833910925439272468078687191250238282842092767160819898315882390544139600034595713021141108603262912408804526928790641219876328258246657048639885342688969351442902775556727225820194698547306081561144112512926101947561023419213829092404973809042109262720225954674308289126004198892623508943061374430722672680569430028085871344700543427911853617884386025892126487283918181083373614725366750791677562260261177442279841381427046854290087653933121409481450990705123824824691134160626833164578226478855441407667330542758841220078211862902447832714355656130709876928631553342970269297031398300936760930495470911584688574535381336181393756197488119875685749254382305149415349377740904146370104710693313304803176534620682944776234607784474443734171334436174264752684118094055730894254723636390977363069205036022200732323679624262022894616460414494011842543687732341083358305099462659344700795761853966820911457673152250053930325399832856490095679160849134112809951933221010348649458562308010014595894798380851766524879913204521799363515028363651482905323559751610988168998020640390241910199598971265339995032528141715512108028169280452723676319772726206583072405774618506168418652974585472616930339495429511805613240388487585431879131629015095783500833240439690973769995436996487603227927171579445375579413697940888040113782129954789396691154232753422012993843567106379405357945901639942453211167374919353350196821168938189591879536337474159742958343594038926672502659443505461882629343753401351038971468669213233418690824159419655919695956510962755163176589841436537491693514910441815766354457245951221792525389671608517093435642936337433146160811248632385446154182378022592427261667738464185639989736780444214612841995398597919344610073834675633517202821980432631995548641004031174805911000949622972467708839145499409466772107686836110487990710413276959647544985231258675442177759808041225116384953879004244820833219297832414064092225256081745569108882428423043823897497339935316104130264615465870285899548152608872191227969717154211066672161845028415141334381185081730641410034071452966817099063228478848935783107655311942826182788773661064209276494150864084961180383247487617569247925986645773622471202303675197206884962290509058693951145935303925948392998411358618807805203298841716517634635174321531098418578787238001241181254341885762688745816231343941087347617778939621105346651204762983237127209144740640363679481527858541015614951357179499985152436156680283512404249704606903017909558627900945857402570228840657809072859613089992696980879881660017020892294856542858218157991206617229752715197003881361595105981169368074920086005949944522520157018075270687367678356447263971269703317899791498051880987664996277001093624769874003995729604290185751789286839156478351178836642115643043824656943297082309814929090561077934711149385411758235081593826898223414816588801775945478461109666607991591967565315816612811795622404231243136385806405144347232219262527555847636418231344119173188672230327305448854998854714560967822842846413430094194031250406714850548118737748737382032130259264378254641336453902220875097737519202853401287966087720067222398216707225701938845382297459873732452546240820702187182757634456128916813423992899327591333180237772764884340389593498561788680517545788488701390086004215322194521414667476770896297060810858818999895201255076745681517912408730486910147519815276168991170087461675593300816203801624418799863980940626469979054336913160048488536028479758564501156407468890880968721659983541395647429310116303819167766184441587474701185435875757925898592802296924042831631226465275082546860743130209499058772274579022729699057778984438840788535128121868638175491537015131997400006089729741884846806973426092987646659491889567482504125836610522302596184858805291853900913700131840338517634027400286937098363891457228422851347564751555975945471400489267625656285512016225318446149443955505783365512663868922802304113595168629445199984298583255829085450269687941567645075157268024274841751807117910929093180542814427640973595144028245129373362096406256038205936103563149919274031439834972774043680951243962779130177247387826966606567270741354616906678127334895760588887353153140724768924242438355401032598406855804385301740995129038421443300398525580050573783459728389841244728564382264709364756873412905328232310159865405188301490871630576116161138545079334733955129982396124333462117616079585842796228151420999260033577346816212398563563359412850471572477334682296956810765325457692958594380391594979463928905170641778159589776900108610978951893099768896397811242073911222086015360145504822173562332351206074728351912156874598959170663498566006846041250577554479766053271364233403782653424430561735396408933316789554235620206351368604502228375869179662223437461264684913924545339605102847867223542095109123735840344570970099124370600902174787683372415999041421413427606871717802670653781935311109906201578577627256720323813554007932983043035516022305375384702499878309052196657846550414091179107793679634454815465866471179682933443308021749196824860112860846541205166939876625168982719581140496573998228179557597231765182762014986137922382060085659052310050973386159702541979714511339064352691941516035884532996434031254225781988715716271166403046555311003487294032003900500904316680810024002299221349304409726399200098500867122099845438524801343247159313639544361332792620376597930450070804735929002930895259137993457095989800675144253586595879298943528061700995193803546261246435696082215367456309829030123126393762493467143427211212578293947433386507437778430903898284874862227714736473555223373129587247860512092829968196646014885426588153049374761876563529235334955359249909742314290196475261388556505315636985833017407634759383853648651236665097744828580089538222941735395100341837272133960739407636240257334766003481533410453691831517942918114151925705886450558787309000689491076217991377312090729628682855914578395540328398973676791577562956809100585032431245089782242362333696934820300317745903859368500806720500121115561095463720355627212145513157130512444956141060993066865733480460307701997231242481085284240915824068331237281242752610197085853212951176404852761169825949987192901257106059054250164522793890854148059952274160574943421487159701001335904599708345531691422536507508950315426086967893094756908922570143772541884098508626653546112112499382623649333228508258745443316923319323156792089245733520561308434368492342488926070020182661154805464540017279151949831441219697358082800837864498823813192956064849209165921478222135766663100816473693087354281980215273158182090073396687577210029013320369217238062942542941516766554656179502286106576665242869125984973301265558723278521522709230839401473147422801456183468995022444422718517117126284330484237343110649148754655731008449943228919623649567289251756891425838855678074907181286743762087117481290908112672014219040492879299120300311277145739808561339378772190303092546984979657959685898966853281712440640000389535090779244732740802138166356172168634705608410504703140479916298657896106462443202582045110394399385131508266435881183841960953545888921775209851897069012254875580276903582435221707364285465860865336585561888908945698566912086563321785226435532870083297504551554272180687701494671642422377288816986468867819523419382274260704897276460090511554064584017445245816827493761972025613059717555066542299290803627440301074738155680745569285097197019552308054467570642504977827753371344637352131084534788141364468002466996651877624071026319883434184108264012825068887570810299975427704781629949515646604335595566497768201115028508080272340314121851557877116020181449185386929834623897502687865582638146621555496182196499637275719155984400055393003367521536663614313679814781021069507945491849075813378662484667402734677475033929608973491907895955958185983436835670885756095319974775536976350419563175504748366960231505714253718451921137861653632818872868288664716236341967498340519409784932463419794214534698217420183288042146929450629518503647390921787630800754875388540980967051667384631480486090567646161079524407524501470813822437846035555055431676731815595028389902361685229451843091432140153929201028466491385815589969202795389751293205457346528175814088390763006839615890738663862047902373183909731058812250467048066798035086187750504593358027585256945759818056545530202412737263879245967447329999399745261913038964270152892517110606471722237522099883352268943607173370582980383541511521951315261114184994651989016489645665857669576041648220912097781560507779470868516722824667154811391767409287020362803177646120647875266894805614703086209015876563831862424451586007998064193887778608467395887409271551776164319567001093529922765016210578945919218415424534752290061985615134128665058343210025126485303424164786172896494736165881339897140098957052800101705878537344501525831034924588865675672249132823275205091205735703170607687797071294858166324657977621393024384760037207298261326140138152614786424358488048756491843306235478685559320503307001965533778388685515246835792443704965075146714107139802979896691496386853803588605927914287713453399992577879228229491418803971773327344620992001871043005967125941739128674183586009052443301377595335215507900597007827885535691001280850841878761967448643458461113112269782076902173409388727842689620124771715645794453734217237226775159001146068645483615489619341585109435321282160510977785794752348092617380977361820137503742624972802626817946162637938149404260274043090664057197305832268808597625708595556050767104331133661576767178931075069432621483648463191374109368205777332177936606100837654448040404506845996195921039111249877827583256705663922658790184396485755132614253846494640818996300306295622730500175636473280558754509489941090482445993025583492316047842100952853225084766711669643757423975866968300060550877470723079292795768638122918558125143908884785876075639743994924134828043398620994725738097708701270880455364833698515553688554803985814612617354569737314119524696054415676208237377638233445828489089083203802838671606847910172279521145826393436128153843692595659984996747697601714129416025733542110117765537944650620279925082286572961504614950741360173927687418625852239928946223429933659354161117085929285046176960235445649918949096332936385264624439205574076811578184792202530361259217924885374448675010122090136679554026144793212059727269628690620339428547790350052320130073834201415856068112659889612486870423742205647228541243078061275650188770523050639880424472767970409771943969329789830807713700923230732115024175977184901623024153381008863067662203306845158786121124979316877069803053596973059552941538073019772144585408323743082849908902084971402264058172469494234314339097130046319785058360182196080874494391556425335952221012104706466355001200388483293266790673290608660761326502846021148178271707622779679562369197745291237216633781529756210070535396400140359744844408211078200711618344262826627652284242091297422023405221292288405928007315135980499711120221242279572551667290537970001585697245317054757972807994720827904360635814800651640610744952641392300772056560141059228452328904968906846506261763529204080531978224008947482882784812986580119837020596703056410672712863329999355404116983388345347316871135579178263684762196528293907000868996157942868764018030894862620568482305364988297623858601513730868643915181605859301878489925097100776843355775649656369247698489807236493632272141052823006226106007252500995719125762041791119128506591985068682484232904860150669112838197356219796970331138066376166499809288768642378050518520315617664316570470296302067263238176180903919646663912210028887244355889524568350152678317763963117503435030603249656031220567415821475700801805423728866066308524846008873423066738885149567437532225618426890641635404739658140068341863701099360801251537456412629002994984908034949188559649119430137852440009021688630366258732163486575640100475477361381236129727846313530512987039763824129397520341481817130652099791417312136074179877562710445534165976161878309572241531561184216244434841503872302078455425471571737348219677435075670585095006286232779074545590290720188437597791928166422315084011029118629596380282882725845929817966434032533295965337470913232532694143603462458503402008836258522732005774039122036624081304352828115517479701651326261065199300125865275828252919405716819681048161443944837597469277181992372536548860035668661717565492696453436215231406223327214906693809861990084991861954371289788818268649805905005918790173146257195023795842930806199185868202220169206886071839295147334094920871748886163215033979670502323639491678412533908269468377908778069914895397149932571331133202752774738498724618478330384153796435984203533389683360946597284007866173052169219416873769126121436029636240712445024780382867406974082792720399686803704176710921563983689328644048946114654774565329803562970988106645651818114413819388222366804795665423388332926925603977824342819010633368316334480940261660533839828792583527912107790153644584200708791203931295775635234881028588210835108072848703871258402430569897480642333486430212902730007284090514852301793562492211309786538352562955797528071062885026550988372911841035925132669591890721450575441553926817603249982685609303142629229525518954952994779898453765597381312241167407074294774148141679612950363137592443733245136518142650797910852906095095666876987832371999760017876316711951759826891849970681831895715672247942729639836679948814188105412525940393101168842301229932919870302024297574075750497807515485407396271412427649316816223153027899008842745769170552675171789342576162349722260936959938514636610075021601361065470705457600996337526563008068601572503380222103807702431345158893984543112228331960226261963916272983522060530019471924621602535071876036535603185313592462037542193259134004329477007727347572778319999668691658178897471224478944292550952834622115836570490744485215791943461157587783053437862146980941502475645084351192264052053779342961916165568265478110273958109947401146478038210852107368759235064943767982034707183658428967722428385077180113386047628140099863812967514820257170456939183418148129953160842048438956121163453518899410241472596254203829418118138512611930048070302934009021690031383935081311822128960612217233488941440929664881003861567810670337519388536002596397613297854948409599740492246567059836874316932025573267437689559894720695737367288874172550766105424118487852515400592757765945341665993412127199571329941119949308123692208330694957431000615327731815481363389102216314435049394909103542868109194258399245248807525916213561892117405507003617418233706735120004634392485976139463245402238809581281986354455373941702851221218559674455411564647664828215319884994799198878346629809608753640459929598018515780147680731183202224269463552271023099764642413594865802082150940336533911727381690959259941939787474022632823950007221934562359761927137377173920018855881917546141144256581406509389654407787733368924478402908172494039987564522961957928221633937194364400923943642257953926609366628423105012057743614466284219268367812002009232034809030858466273198270410223699312505032177870070430272891641524444888328553341177278370014726815915928163087476887756124626284749254808421773572577363660923765639850656029367054874765704334787142463171934235163757264010312949806505717485892766959685885691700171949158847122463577299532842467978737955243911732877425034850443397110984070240755290984412160594081682063370712928301005940927547476861648532867639231982993900426888420103474681505752565036053918399334273048590210200727511609132993852063221105961031755057478025834783540983434085027477217393013502997321650816998318683580188060699093130392916158565816086249939923315847536898305292151214471490675248311911855193115335591351223872818878363930027806930034967736042235605896400104850276665567712885307901717989326229245391342647470846641911360917725339540760552742381473969582814797720602515519201954749183625389873440661351157654457320285717206247634327631927933863671814400367731750288864384678998759020171107500567182930047219653320463768254243480397429178759279932123055887625113696079708663793769234511004384359862249262486032760670369839602856989247342365736029757338327991738646446238657838615251313840412945566725144134415679316520447209171236233871163809510202073395482399341367294706411944216210799586603357760626843424381870375711076521840197842019839065389702199373483192459788269116990219299436271792582507353973337682027694843531451936815695538156381512985840884463668815277446272710415842048845681668735402287449329889101191742958952100624266826985464350268601856380860209093134022219078676301506927885993540817738945039940597283590452684331143041139186728188581212909134720262900561044934188505822673633507847297174261000301090317581099123358725318687551993107420237350798467838042030607867831157261239549830762130304864518023187597433594469624977339787381045227929421796081197524546556025452934146623550721650499476792362384232545543898441016953994037642258610515017254035697983811283843692149700106758824412349756547967068960757306632420616204552721778448534248459396812217514921695525329582483339767013813117260629207366947550245223353509115656149953335293365946808583933212628566507121649193880279026750488377613088773073117375891962527596873427006291233899805658573897973441832877321840142820951772294058412941298161983063797891879067753850613893644150171493490388845506280938537819553180131898468755536023950708948100459512503550573574118535703308233064550184251469713353201549808775198280553426258021889919936451398963094848164002143891989560019313807640155520611314340906179679723806683324564724370731395794494362271045386735982920822738668624218768336381920046790579969070086681603816914882306367002288274795879435362064773970671483463969208147229234013824006383968964509634057027961094823124098335216233288238070784193902833184077416499853801118939329235682246581617030220669701744370878853132749393917551493244080886458028924244265297346353510859038905435228467785388562888170873247000971173601814067782324829448534267054923574225651993857682170314224359023714384410051436388775779989022704191088288479313259783316979931443526854305439729229326997535156799231367363961358728707511483550059136421707416321762006921285829847888461009158298307577493272239395283561126498906528110589309906191173636844014018123850780991069176968814110034521526627773623933368661690469455637244849160696642818372970849607438207610317494769829557535426293006491708972426524070506129582228820389595925109307675679315445605664411172346365344471419002022243085522301893004807813108214594832138838381749673946123792504167626417915631982509020981044528232773608589632708721816093273555748858641052589238873489957125279136802390424279373454199940070803684131479779339089133143066508624214314986986382225499586132058168066804756611195772521779105504766319560539994829945296764384468802338546260831870070320366606792187847922012708245409359720167552484516847046647413391308690799378266877347299395491417919808251075281681034372556789614679911283714311058879118690176561516864818671628157881906006026398128752523264310432386199565458819207375768716099032535815350890856960406403467174737181029716765304305359048644720481409833232121962810608137696684054488316918421195399406435020833455553392633557858849492359389788976537977587447064156463439118706896126474451743765692761687193374521539948252795779164343562636196512791653077019748917184790412056145036481473164173502804477181175640128285015768546709395928875291116297964254740577734265882241376175468016420227104555959666012149501142389976335737013445497411167893281715812078175441089372003928904460039557880526776634799522972922378735375328851612803672263579640276188070378059567344877081712471310665445919463468319102073780577131820344024607540793875511419531133571312693937708515524440168281624533531602756505936457705830930771840143538328381282538669937060025055406811309055298787673783630137164226200587776230379054643358320957754692666074098151176849919928729837227328471414498093244670673367605961951256828181414649310115232805518775493441464426089022007536227437746519009704981114261594036207270921856401201805291657018084165834083450360814298248901774883835318990238584586526304836097880152328645590098383902845200539852147309384209803356877354409423720706420512014797941015230616546520222009014927045839848329062996368121759235276789316024790151626897496210931557757037612772087733719285456714238971993991973530760324775238594716010876024109092401511201306962281627106842235017963596343881118456170451390350918152340972583789881526967445607280873773005036534130077676617163296246895106945893618123502598375118041893836589567990338875806596336153233144487860841731737801046728107629436082393211192160237034862543285980386371779088651530280697600459785972553477492994102368080503901253848825462134548315069443516265530516149131128003418787550250606068050041765390760669402484769195468874742276667373433595145134486023869543136667343073005083296517448461589660945848366926683714355566127138778234143425174663663159448330067827168877240783013604369942413352285040968765904705849295126758795753937832991355029169646082124050135252026653783595156146789992292066557334816676663395860183479968712569910860687101497860344205110225558008990617089295787227666845044585848906873274671573426405974809361470199665052593241763538853588709750003150264897949946879042699813307729146212034261112834173937734278230817730348327838848866453039962741869999994720470776901211191190925976026132770249992525618523377336902787201713303865080445685598879839959474903177390023627744618750967582451559412324020334966317885022098582967355954999539852429283576630984787299647632490994944363033566996710842303267731643272264648488522910545346319781326380132992163350750647034200123216692330829359538590638291741911427417411699933687410597534435934472099738861219464033910631044386012296644853566108995153740103962195311546718825607384766737080181896097533791112165698133352306192281286351519714558610181531545272480148041545717967692984019641683041061391619309574702723341397240554657883078746653692222259197360629535625093957314647420561139444981330157910976876226366681616606889578002744380976608994854774657031559740156843918308380534098872267788449384382970954077188580931692715895434265578290086560975376126251700341654964697588513981029311650380135268027306263679708267475501180987372695086104864932706680921321910784441429681910440358725769335342038603884472918777262056762801902703601640750288476661753081023207204948596173934154104617832005488045170575355517252875072585124128143940124722678870792282270505725746103110925790452598918283741299802957155326299324552626076352641165363010916639100466488830254857939376919476636934354442691946886761056426512063117047334400196043595994497600915488050857921782767267453878531924924074773490502085524574983504157939082968553144788643703155160764978504678927885443243071028455202787004757424548610373721123915375231502735348000062191064497782119183455741014218640709573514916040498117329831766357143634007507045254350437441547541393215977288282128014696524354300926994497822715155219411579951864638523252808821184050703204388474078316968766882058231101864615141156950478142653202372245988793584372586515336784731171731003810555906836270654347426557172580712141484129886918179955685606042069177942133153129522560107351972895610628871185577052969916055268674640855508477146913366348010544606697462842812396115167610509351218016845810776294372351745878605298676555386122432007046985798755462559241545745087821100642718850125411111846827306159094004296301389629585926524777866121856799297327113602887377763479258487058691686571873295454515314913227313745624207253292897819531384277419370878079104772038759752511109220774132846710679159907092698741963650413644145045783613411599278772280374874518244770494900265959935550776260275155562327753241432267499826876951846076893061593002520157592650575416669126730607035763960386299751542285276330638221767476305399101559166056476854854021108857484788696096094164164498320520335846730405857353167946485698400214180191652863785980697361386068892630086511712208696344770337048617038143321758324461861859910801894990843961831810497897691107269088209105609919268775698428561189722364935979568063690260754905345235085824288043187206680902927000993008535790959981947776525270135385016772930630359774243753848730775401268172773682961870876645492776875500829475778876443359166417355613794698727799905328756999447777342198348848342232028212304717669260923550266094445078004813544358332683772333172030912125039063514578691687993327240467276575496496087651581023515494619034987492603267026886508329988037011939436452145817073125293340431204271472986159778561667842738765603704406641669323973766401283331809375294576524160274033091322204534336790308013436122880126166402418392065170618346846914941086906103137741089953802531212383448840521972633812674445474889453342146541230101435657115453469966150030094345668796708981097206353996272125228661831823015298103536553265236815507424676314393054722954617523082146846700559370308341531614794786637946061262454538230092979359226787433406283656315901141258349745594790965150872660574358725934296783073815156366379989640014245903927115570383796547113141797966914306631937064428630631695357409831975362522142667734266841642858637506658952903574619700148788364599334884689700552634838307052557771663969744212039953829024822695749991387195520064858621065914976107529448730843743686406180532149980060402187867696695983419862913310925160606232849378655795340641148688907535483310963620916226862347938618714797739375642861869768436519947515422507973431172011935092415446780071541877194941422797095821656882500267012578397013761792511440516125540918727070714234279225985544144646824191341922005399599130571834495471827379513090163713667310085456486817772363027703432904830695524292137676667032496108084082242949344167382637871384103126739040179221742217898082075813126802895980792807121146345482662738302767833490789500511371066531789311490072203927304524803926650567866279759906156368602389138044352620303192497160455268101947792337411826554911782361853154696445701533703484818617059078928348059249244107423680236822703205498586511985519431980204768968768601613542442664415791808056440546415367006844362592652684990800148137521343713557698876746211493788266367181995134239292677804803397918900700875240421522787362831744169970828777433143161902518672571424836267549155758815329418573038439413796337387498162229706316234069116923643343318537946940374826425922751034622496201780119170437897904510722156514147497770721958491524035175378374468690146884360408223986109725012633356377316421009349200631589828722505987530857916590289765509179106132101798697006492462375070323362765149583157957197200147856911127285513169636089362690882151232237760160316458577261671943560586963610961768181264066470070751759525156729083526654143078478125234105119548819966968424242459318227892312073219683187863253339973639211414671378261943012221939556985171404867962358035243005403160566654328340644386537965691093703356947413740209047045921657339561343904337899175082964697124819304661391415557804677302799845725983397227787869896406670509514302306993552117383928209753495721177500107733849655158574872543588073308568182342912828252417435689962832778318540726655940802031721603334800687500830911841683413263176541976942079408280389651309403515478839346075322722928605753338174404823752257044234242189051455492705488005611904981284372238306823023255366972521442212313313656192565671121073463782296428813887015855320185819505304999654446129770980727733751300319349850866835882613545975996562919483882558229605208179339896292598582988672300858853294049886073179766649113638093099172462728242161336104798830621128585058857202550856114788225127035399160000744589431951205450376182887295066885062684754438352790261352019162233613403880162102535196459748577498399046653105280188415234038486014571881889548940053408277325609707568508533743471403811104625191899927277191018437412651481847870732464262894285495878557419477517811238138396653239939287641249585066164145768835351057355377290035545592235009559209806997576434961383052706814882131676503081543745082192594766707517405050138673414990737221092102321093937608167755196397277254468416637731965610377959941823105009308374415853489469857718333281354911834895077267399408136991317867297851886766437167802801207606476368442213079952133270871164735563319780277270731568642174920306691813898220982905711488997203136322315623677574576377821838715842802465975382597252871052905474464875448218021150199253956263760178421053557742276846434408136938116968431126520225178752984685061023842403351341494363284105106758100540153053674936166847772840538806035290866249154005092640217558492684915639485046287568658148064242023859973924164688460376232886732762558372078382937966176085193915909550678438723685976868627046972875441610617970783676778228375668575403307122503445851546006519791824012423504202555123247429682196365669080706891899294796187234337709880389725782605512016123880566064517517281580268122296049405995740783662649439445639103644245744649804310397055216075228084726747142060562469810788319082953874523712981071477900615510939688814079268363523304779608358788201722381116946713402241289199957716805420876787710124625405097415316956866499864485575582419384679416501060985267421527642734045137028582138312250475334890401549644076120636387408822520744009573271038737474481363161435402914815666863744587374282052773666777328090985484333098972711518137613916065272667362862095881983714914418937017512551096963166950025347606087343036079546172478139169187524889556465643860945440227709405364784931754871444631699799866885846600382772802328959598691373802310607567601320405587189917677894278102285385528240380692278118431614037957714600364527078927136837763505631519801273051318420323362567764085299417528795301103098170085741488739912757458389762560773759101723419264999498781129092644485408297619505526877545950194254595755560682948367648998463631758849867512860109692316451253246733597196242727684387405545181962425280169516204922138884515467890261141466341337269366129939400490050230178441638257401968404177253534441851921062233945445634904202928414402347243216241168128821370765973960228156813308930714312160394350477018378968811928886082089589037457801022334926426569325290828209071074229870575552977017904103081425812208726509225414834294896585572438064058072565289717564691410125402957342239226544198334081538519476782870996407146347601019794305547511440755829051166274505058612669233027810117284475104164884846350809215080471157589662742920990184891590311872322286233821140369624984069361155760303850922981858753847924623680949874896602198582634754296509235958621296187456468707751581478667979971076655352776994244958232393875808069795916490177435317955014359718366848492043270909081143141936659746244538309376161023998798468910875109930586380126119374396698455834017311760969050335191121342248563329230863853798380567696178431768723712893991490780380862837956554680702950938916947203319456887556155567374271486988499688239560470295413032424225643898674347727512786818531263297980390393179347425615675909641567531455897016346623746510603990943900975323561092912599925638780042740782777898057100957579143557955583466308491189147637217970281658988598437964450204898898425088351205613256541536818760542071568030052305015542766435498597822282006777518456631550614013880218660303700522124147244433088665986869854695967085792480908273490591704922054086148057923985463368250819966854355831051485175750662154125514594312934829407990936242025156356008368195257111106165923770936178494929108863567420253416991177662715294930582238203733560824727018533187000690012591517570598259717143929082387118888028800418651833096073568371261749536258242828423539171346330899171362205429794711033495159882724529338506190824729484785954239481177244703764281988002068837462665492740074414304210144425674281322685745260792600126511215767507411619672038284552936726066931161408430866786120377036365055776505292658744447924317333669661899685522580099660142805720343784161407195699435835837626553292798329911845026528107551041745582085622516809831271212076265861482710467801189800495579051164348997926572405713492401306005506391857812289129088077054536304807652667447568129758604933944747821003161684876309674769961301850966981893929791101944045573574833436559386621673289275202136153894615337384902669746329325845874409152217006699734995285734588215093192958946854530443289720265878044877430276948687339720502100589953995927164963839447306583440474343268780654061189722485862685651136472507820284895780822869775483227048557690298377262675894661809616873635930312290266019286517179014039841049340085387018087310283534379425285182847725139298982266771274037471377427058339714107553583443353344356539110884985141569673704589189385370599239085086699952560533928513766764297803401024776290154359458524462767291668768862323990779495740951469023031955282879070989896876146686783846283946663502270541825567915581552560262594634252070170869982168019289812451768491869702535453622780336759082483147354437763838664206956772910131734509757362736321020627647308542066029697447155779687841284703515554206973831542974128874367991757534487723305407670454071564910229263334129661774445601026014699571052670425115222784813624835558562561370805373522449252707561440809067217306139123720812250390341034916239585113207660715546645755764193524563923257284358818460207781576165683044365845473898141916124304512505340119038530424958518458102752791344537774292951987407720608698702261751353298394669251469220398010344709386308384441071997749935695527276440261240155134159795527457151947319645798708594031824213892632909241686693340628316079513227187626033050757518636482258864714259231035683584755847895047812916889197441353297006001065265403709474856899708562771354825601013555606359760469439035106060446006772300468621414674695328221287403321055716567919777837448650177709934951915466100702373591455294337633818185437514759849054388748754703395737297194540756018733636150113042195245471898083806599221927585607136741567653636545729718765706642819411946014061146259914399674147939455260699620876373930492731269878477869256458904154313006812902330293364856818359596596357778588534953827952951676703654742625111650752446155763628970916634455955144075623831952705758104698087247086178385459422071373358897669285725584843323633800175567604085312570551962538064782909845911058121428607759759830271874799711116407443444434195767808541121656280674366305638235227091445489407095506487790386662707066179167083754630778711127170574174710313499693696425512659862336215177215216617450487949777623283968709067483031274827508115104851437634865999607908090438093800144323756134958748355091299772292444278744905179894184903777997435953551353981278650392988383963772841923380465465913610355533179110738583690768923785555746820075776126114346065502564688584283018579148390208472810299912225382745181441522735647234371677332577516479619911976312786239793932540440029962738443277482536257497087293951594472902930814836034262947712185733359008496169274347479514310008364370544136665532396143723163095997370153516312452483571625521879950908739050622821274694600171116265327803875835737145605288727104672550152013522645541341836739746638900149798712052835833775721176008834090326354212645317033709261181116198861374954946009331293998520159329357482278227492519487074016461450915779010965636490956744492045628054329801837012188858164693153764842761108198293143168584193352670100959222976540009565210644105857782901349333939407441646645239476443949070169224504656477724694208569294525391860237817982959676141487191395955705245128359754110430187161195170860048782011691355712696344432299183562298296394878829182403817220492025170963398671899457080589998335760139660615405002357397863446681554615819480479910014541182386568403330924024452887073396753766325402587316273058398625879559511622537957480549872778118864286459745986466817181513908671248496640556904020062871611165344791053973514477931250413306557643170156112173717403329418285131092778312388655630154099608881599386273139844049241809694243994350182429348526917072954879850102949456492261441806974998356685666105644768574574130681541002866849398318180902067893927713926237602561629110214622182492739698372759354315797781288917493743770690646095034720174038299229954174607857111605218939535734678729589733480889575903480833788980671582852809144559772108016446394511068794294512971544425427701996204131162548200047796116639824816214175104860438727836857914985071828654056436285155994973050642085607042706193834373298815205893918560315184496974238521396288907392554116311036925611616487417036069156634016508348726847879963901281997441895983133574452295593887948285557332761171015267764583894130182675556945813848703117662446668999592163542404091838097565282510392212232818524322926978166520487203353898438162612848772182139769126528915679754315625521750063291833008082580805919803538573043413744272567890821215032671276849620580557205344161710411923265135663873513784017516062801209458826070218803920487249337114803801232051840864385064057965201635318960140356528715379488781611499561130182917893546917220478278703537185173902105905223730192029507206948756993149196673553748853487771073678953364028970842135757261162949628639119359548819488557581605628923056377998097917138672270453812093553920334542487279704533710356054411509396779283799114666213597558685344937778781448914898326731060920937441661252821395121548236440238470081111848061429227256167224352870838235265804209969020994317001219631959160281910023393738205834374176901929086700295731856786333019399603059934157261575377207402296329189910203006083385370221181965774504017101461968546738642643884953693638319934114786575862520643569076275240703647996622368754219124474387058027422660566494488051586195969175465007324306620455173822055783790861805772221948003989985851542585643349041682262892776103801400577794696386608671081174539724198623712564632139768521929346077605711635425196347814166725557359955354525743605024580898221845012611029158176390294473205256156370626855227747334859456610420937896965482006298798489760097975484511779232691589251056747258899878279625215900318797816548828953896794590123177425612031964095197125178277404523229748390395862035642671501200040999040699964112811540889515231890112144147061462924769232540113571634083741756149547732469865286102969031512248994712030582498124231715175968600494757489644312161228962661543188456725488645609080221475264444403850622193932190017623465162708334732177202286367035822170616092045647264913796529209143707429939969941370047399587012814998048797972096254424031788695641111403925267724661367150250918410627200574734413620372157572424238406198370905188535633754500730239753980837458181884470687766795433224322679606877696359391734729440192425936169713635635755827842480719374439161463409774658196291515718794292716706333347073637028315260312171089326331855716196391609628399364925539052816758999270807834871320075187803520218272552396237731484701603767631331287594602998605728196981645285944238462880054446746306493383186896700921065725753749791417050605769925804330426090291639422156696983163789715647945222770190581168641089909284341812754526982751836970827677438252286218902467956576508568612449962972584137446837397255425162576515246182173647027571393936864389265535420620197531730707091694898418573736851927726870566627262748037421994198524462246150921309438328346770706936659200053190350159686661043170888035687895180204810406683096530337937745726383110104556117339616971903373381753596988626871236022612690290382531959704261362757284413970020084520792747362840358209778998319186531837489150685114262584422885715681045404725120964599909369549020985342974504133192778985264165069603381848792846722059674273605128150483271464685810674512197087562233187106334376197929506792424515557495473660917986476825894065783316482734212978429463918443371596537331940437779502785859306214051106935048854330225297792874007679978115019026502558280514516289215013520020537847305810715829436322329909216109463297635994370072498133082322982112739589575503278740940514013794128254128882816384928241551694201571652121262246302402245034770368224638457292071529226414802770502745873903821852602042360083168264354405130120494634350957115310667191863315132414500472556402921883399471785038138371039523496818170357943450276727219166533881385691394374987073824377566058601916742395564033500389904439996400956806423066080088000639187313937712335068763128340067210642778631193797708841631202915254513865335155961084311702788835822788849035958328981654923505849803755070037867306988489568132384176314562579203136279932339194794555111508436102056213639900732593720171090687157944532161230648280861514919630283957665208813063687498710574538531972204576427457835705607511684270699266894403726348152635951324004539850622138928184197692670429961890898863292194981861339471732155915575367795504571908544754587858796570526573612327290204226366512508548827732141177919013759291767421987714503168950470539610346409164995211809081895672784374933078337577932256247987948394063095695020091067166483848834194116473524192050299131832497388977484578526874478753533761216743888745910931655292420087428439248717433269712114112199798031918165632737450141006207899768202187453567999707140522758320309458204682293899870077361118409603487414170396671829258013765207991914474455160444318690567559371283845544156195985337556026623805207574282543441907203740813061029415658384839844228026247579626676134266114234784678245630762680518275488016840601241381437013924456001229739933290031068902766369676627649334399547435545419819533061399163701126575023296513499221271147238538731702684638895468287362365585186182506305197071310281203435443774185850695389113237258005069228227386728633107382332941351452575358020550324156844314112726387536679553307000684969029077084072223775126478270200955073070724037082325966153645414947884044984860805538635393860000552934718294317033490786056150236093320687238076863176088316704219250636356927022129540622657821449573268778563854007781631865829062960528868449971365113783056763984868888448321800571967961453534248430498907868869245543950318912968469255697169939661664327152750998795702394839982248718397429358289826611272785011002034821163014628274582964724618895263432174905680171985219187997157300828440732845036916448910665500129194618145665190286021978327009913145236934139172282112000129458204922942533626375382007005323051990619349315382945298374705005365730880735423165718353857813396659167879593647495192002704837594219441046725291286294353333234495770240185510463663212985496154503353554300489425061202530051276477633163228680197761466680553645278632791230900824338914726443287315514567513382648752208888295652066469656329211931435808132768474098881433208653041825714782945657877657859232461102260417647609778415751956235142290306664485349319112270344373503263915885838285892300180906742907784793567399047871885537712863838496493243129970246324726003121272286261442216521884902842372587860220603265894202466875587215111294529779750714008692507394633082178668179423092050073024344007554641887974715168948025347691999443541730472688401300118900933158810476660978437194293873893904186618553678682693371147014385935129035958812710177451681006697460521231339633745618934248666492546526839695635181087201012075103855663672285589458477090867648205072544275227813772453327021009467552315026753810912735340626749667218847994454135859760063927039551127810270340172776226507153090894902779928892560126703655225173204765209960133133975611464465303413494436345187448249532470509190422052092674353190175092335383459025724779818058538442047657737610872356177374014166019177076654568127258933886647828820098739762508510348580714040211156078074916970098665358102990901291138804574141425794196154892881462702355598976379599582128015455211282162921085792529466431396012616657054011875583617560723156877584755776945539443627357622975814279161827715613570579071911972414164487054524397359052619213342507028026316906107613792439429489230862489793241177113901937154205138994448423667866350466070266608744621550799637756768192134713455055295444738559356086406504184349418152649558709361890844209124395082096263009468328418093723122537381941790005671611486713733517541687210891635669810359285996817328527415888868961719967276252254013077534900409088166102885626906728879655282191260822859201028997290362622710203715887853425228052447076509942773103297952119351830265307597000741322861536605577559306331227045034960498641692556820894749594695974393472242651428925313678104042833104756605879562514379391230852663925728627827888000064393186159727416654890884278364997195101481603561988528389629115105306345874881688670856023202626394045475196291005491118727130281504831255492902575325973692296503116804203067454417354774748563360873283429066794243559319222975186450197866750770377597266671817234062145267023803321123643417646538367754978793350747744711016694524527806969072251763206193723922086589823789937007429541630292476759372132191506365494816118120753431830165436434532834273907310826824710765231627290828180520679562189822418537303716600028132581211441670244910049216746622522638180374596579695860343567654928744387033053500615340234438575418886898135558891808653928939029455123358796506848444851517572861522033956316291323381774503762083646962945398704564235342924699433441746420088220669867216666163851756120116775789387414516856540351619795885207933815480712824732001504263483031811089905733183626242770983029728677951185648226143534256524551209464230431205069598304859593982166749888120514842390459013847990987625492753387186288032893207510980393772288649329865350819336799229582231691213613484439165148868957459214394926185775544893399192977869449443768354245506187081050269695377070234550275706655455828023181172352536202989588955733438909575617030003649577718329873887090456620542863032976468176668044379825989658372002223242398066392594009908823969697671675768669470593178956591557538898203432041365443002228993736486408593703743734402153240040101796600626850768926358241754420278722156703272660413746001447814575122960189527784352500302013270710812925988545310772733923827885702001695299834613171610222112101123268979882339150749819334627384781816843900881444292572059230654113272368169203240271080914159815760894068083724870548229712357516803030415566752715079556377195302615070092945071632586854155523151148632794009428656462927974340923601769935422296434256397500111781869207512659828309251912006332544644022303511948422190204419354414910620125620445969631616590855519897621437901513476541682528397401220465192476221733662290433946579014819611028731606338239720538904938701090323972921626507278665745395508005804118506699897246086529485949541224155167391532754033015495737066562625826860924957384903865970660838691308832356502691079371472738127938780974783693937380296343940645528284498884366934823847710319297744308792389218186291694519951411161138387151796285032363537038844200790915045696750386722459599601199644358450021556822194461205922164304659539968558504913729684600566789077009179107871783407893678044556233198198935598774456698033729508852250509568030708442926253503092999980499937192242148980882543615082826191755743798061040628197639170124535843140062865618626341615422952644853586125998939279225064147245743988588185892512490748868932312811290753078342457324141869823002538277364754590364992507901930645866899648767555711492687518838045941915974550120941612466560840825770991266134390483278378637294297843582412843826107398010210239102748981607612510659026455461985875774740840486893263450812019809413601187567249238045871599290928259437460359888012437459729907980973506565459840531723724917470934488474881406334357580263143584637400465798653850898029403267169679913378028253017202284754060261760713852246493346981656084967169517676433381395519251596685212426887407442629636511736058926688628376486252809951904598456446453307945171518138915776274718088166533589772475939517733802141532519474806952935800211904705261748196924019644048865733002429135295300824621179511444043150266759319860707806719016857518110250898722724797157469305155950154044031322639092665026427460528211119704740906652518343022952791848861571141204210013506868964586373970688251262594303933833837020689760008236557391174129669245579136701389569443884218758062004471691012945240924111812619864960481301645594587294345279681729693834801488190868329734028330489567040090636914842851781992286029257434810985737505988942359422278667719653530113487675023739197814876337620384668392281065814767067907449670545107429593154281270822417526152160952767558044718483911114141755770969222245471652675641867401820091311867884683006787797315812059107389863926306275662233674378470479971210969258955604586634262155195411799716376096105535184327205436209549684578107577496934623726048250934451044346260727559351160278322396897641547025034533855414879376302412455735668957534614622539222389276504630996266355479814703036319251801742853592205161003336285712835870328725330341110344214458142645361752539264022779392125492593179600032429301246196995588679753620811505694824129875249292276728749214076049678234054449356014923179695832361486402766737440654708002768226475675638125306584102925597172853374603687448689922184263830083987083001014573727833000737862002103032136156778868823217702669446484971528109389493422652165493572325028180262658991207737989722253988331177560179269049471095531489949057387897955639701665145269913926491654571104428971688746958970464003012900901995080800712950818446972486986252337926752948522508263431140808937864410206625365749410814468596766521583777528260765630680264793067959268967146836540809193969286909671676713042818817195022492439522379922192136036065657354593606574039261459168669761135526330391334056181692586623808860769617974173003683537210359201488588299232556103531597922701322009282240075445614625083013512818780125396187424617797839252236500452200961250317842845385860115153528940852914787160982961077404914547029108564289374972274753886150602972608348935081511400772384868415087528111906891073223131536819303015577175905063869037703265202118932737526471915748125512469494426054009333430722755723123954832635301036308665312548528967137465334461992897591223169514134158739383228665273288515376162697369745323576188998237806924511514844831023713872539782401928497251039176728393873269535044966164338105438403620921809159391297682253969754040694419769956001080610557987544888829500106184412802017637290165706238523081404423848345900272417095937683733549718058658008672648036629044401775545587915333593321146598195792293462825942076184862805129041410421152540034079651124947832446623208161741707381769248190417531985618896105298010186884946369076070269921927095944941610980295473290736411420110897361647566282123235190536026935523603598652809155696573998281478460379229543366897249495137189373703812669677239718971587978301500131069589405829950131288138245478109377565448261034583970746250036250979621245421665560335242570153124230924791379102895782936256437447760242997606597142663213813735226425339857455226207376812702436293445858223320633023211915943634217577460006268989490934197760372924541247532835746434047349093348678621752952890261174993468711168287603989290056002412736204340628797641883291830261699395205519728120394473894104215210723059336018281923315178885226050217696180976989616368020512523462807078749135286972643656077831401960900646707938949032173037368476839899056130822062123563070576001595229780761864988356492752459921358130975034670049305089981394668563996450405328507903965738908749425710616358497461890168730866715774653723604500604618894407616380550248085412867126191482094341288416596877717024131686438545903464384807622219210609335986200298710128278267756744263229745344804654427051456170586881434759845360555423811260372445040141887797709114518644160061168756952469487085330413825068441060573651399942281772974297016409929671374839546202039198962970050093762216494750531244217807855884827834027048898321163421518300246647449350566607345684979945789959663402822567549814056850096188304614954966224979346231157929787874761323313340200678398155431610649135988754768905436547788805169445858362473530430709693585052169531320874316010673671092485297664860667107369506761087696172213369865654316652199896444401241076870336800409353551342189420366895827956724052699385408640138460138790259793702306299389640027905088262598929762364690634646353687363803640696264802661498393385182321018007969067973569510696692895550660224335976654412346591816188202616681648811887196765834605039081818622834498984442635300977578240972039237234183151301735092005036737521409172667139199958978160147041665630067771625499860542964860852187431750690002550035291229700799305954992687793211912840432923605261411074751211103656789520061406438493476820897945910248312817596248951225870817799701254626062983229967154900114691486622146064031013991317168498252055473413815380960067321626170012921449905517058569606847737165472653246356104703544365697733707388201542806402125085395245827925795908924400727241397539031586886753266108969859259639020962701752867373998644752536663495351676935202273830012901627290113675291906150888398741291606669479974475845247346950647459204892758206082370688281454217924198763747381379262920624864404179273965776027934947843965039176762626962691464774908500294846370255348654697684060007509803985344120672939105770089373706594683009636670864374297727859135532913184975517022488642429901221119780828566844609065863270849194577181803499830386649472685391964982095140560563444923224064201640887315998528255321844815048708684819620954567059766526236355744669751082294846253197255935152090854428474633344230590944097491616245085191072945182349963563276136398990974450558156410639214021142618852986653846753418228989805951919342529395836068939330543186580703856434825302553590219091786651019131440662007761077947816059055580291991980500566613006608035668490895514954743773955380566627546070554661927069941785210327516546654254651221617832958838117366970803584612279917830575615933369454566205081920437623765681547800065845217985411502864657010823149943938426927071182020062791583348844676616765899692435256166771983174038558622374575129295046148279372445094851980692728962471106521335800996249908340082611131057126278726795739002617185550268054268964394614415378514515463312785620482650503224817193951185611383536460844516893296774282719634682032217399780041011952483117738847984567566116999872652579081272600550780442042156269692306696941975472214068609192038449433885632641295971143252161805072533614141880927411516228947210951444094072754413333245748045883742619775409539325379628913128855921092371392093380030602447467429183682757320755723741836858109699575746717061526795252499965311906738430798194616739513455265762765842798119390728952627096187433285260073893389414251404428016364915951235018167317425748838832607994308120898362320408664193223487338945723635836459025319616323414688108345182348157753917062997926721437205593674441318647801846535376342008617849648127441645198973654464426028371860147853180888531336150422541038255380823800397890281593698194563906947652567823750086996650199932658420200481297505642326352379278797453661535346037242734435804434023176950440402051460200941875071398291756350266910001253198560842116960299660295955197029806287151873149173426376321722698485394312395185453506550615472515958911378059057547213445645112019102081508116400808514602480389792011189207261973980517344863327840721091783232591783788841510359931148230499781367420221659328112604395326971336716622956663251294270621833810065216474791629646265254058112909307245530811392748792420966586916627929067691497352678212360853605632214341720227514756975007415290756781661233989634445099280450667122110803523366119490546050826449923065436625389269216364738407549476597479140057992642416170325308080634903368449087864265368670144783062534428920946145147354840772565126998885478129003385230189436882076685389183236261338796928931284453416073036937974519138067351645203538482461787002686823706977871991920149723813859074535022889383897530677950847328566640868481888723497584781855504020389605904090623389672372693542479570380640141995271051203864603687439743105046122430232802134189307853007074756811702736201420243055611598249795647688751428960275055492065087267736200651480056513354623084520193039101893997912380955794243697030332359231880435028887324828794723300703693309691894470891191561898797117901923141039732786049467401943059019565787932859118977061966977822100478373269764174099700871557293451013998749711544325321489884466748611718478342116546335212766094285122424967274249964886694298791787234141155237767772395206015586309190448212865471624694898869090648614221372491795736903479021672041925058623204631011673940137522049603939149749456109804135944521128223980150557057778164468521477718817369334080304188481995711775880887484590210499345363152478566857660721062834898835512513835194719217630710852997918601197785142003657660469573818006166214293479976193440755480959982057110935895648101595883687720327111670184239415561069190613567877422388834823152767559281069158402020226205396485767266955059654832530549307620103696327808130631194484797008458625691275041589802763422040898554721004377602698763308872250222846410866622312925668237609651158828751511042708810887257871411303106976469947229292480202117583461982689608129258029412103249390591653711204749990611559935681789979444419595242402673619869119434984956830604179767486074870010843231680989683413176709927539149813215284956947157714558410205362889999116988377700148317788824677247094673913589058840763368541907945489252915628487102988825178087415899558077026376302555898692844287573115493967102940672269978940982035807187627082366423886279672400637081290677613788084589190849345776362235854939826445303519428139181893457592686759124594196055842423160889174271048639407003095002776693551756291169777654863880088938182678360193550285390885675580614043873983989965387966011031158144919664534491629042108547319730058873080710953693182438759567023237662533851462477829435961862113825205655865702168125069936059354756861784183392113038058509736919013154312026645568082077044091257791807630177390080667826822015513902568981196177562200942295806178294671282187748883835835132677692331608664996930878885425160141328775596187395565596581802532869539024408517948511963155917678974879336008572974548804165924261565646551103872295084234838830432472766128438503962794139904680114984338411265034646757616339921501240379176389967504841401575546419311371348105808622977009491984116553067462614291977830061410382583161440750603877989647462093343406983303209591272142621853014110188534307336194091676192070934532962245805977772024770837937923142698796246312098739037075942043302367585655067677832980628181977899093242846309838935286123195023031843403337467384247050351949279568388242765177345465534939335997419143317758366288602609250747349161960775565719179657124650441020293078099384793150347092348501132399495359529490603325851160596595488978894051380197136359503668480466760271051301760633906131660126726908824023448785854384681543587173683862529921682817581977093252374829026804956383364817020868408293678783961512617989358038549505606458839000504673187353754408600448612320420008657117508410371521602320903148615295783346909600369169768899267237148157567451543883016403437012189830370579961814433809564941433737066491847931662214612988081371355255684699818562498148464559057105028230051935649161507123991746363971225490632803687243870323671367574912136019209162761975905386170187813680166372026022025173730298543399332454460844405818915343525410422480323399053266702614221153404865727853083871389317409218774791054446211093378897787084231799591869385615567259024708266551504997023140613914513752618580812605869201904341625265811379431436040492952114801855211408084611537738831450575745194831436937884563273651668798111058371644220001172884398058547187770577884127332608842900326807723302497560544166866878330750663587457269047881870580960381957298368145758162393027076451115253675996167826458212950311782321174856281574106958554367855184897879873842570640056710273806067579000551203929357205518841105345277784236410804915544416499060944710810496677078778726282644803756624640839259370945525305818748949840544743733582051097009731373175661075077223094525653499164677211420321928719069536467738530791358783806994042665984088661151534342112862864224359776343640403163675707376117675355496721876872346229026820906509474296340026478498128210631585489312879646056277387088259428637500521299909951666280449675888452089670180426385197308419402065228574202335973664076123910201322272231241120597352142101683473237916082780190768609425824924467177727248053050201229062607384990852287825947646018221856011580310081911010837396277105717108251571463527929647253895582803339104229506273096633675177633802687950930183911888353556382848154593413450231229083593598248666102871774896061520098607504129174826462887054055266657871772519181613311587900330348592627440492899484166232021685577367249376927282378633523069222712446246989173793064277682064027596313898940805771972961970561055302382313998074673015525965835585920215051019260708018427910598973084489723088382019689154612395973769733947129340973846174779395925961959503445244902180833293775096858838441198937920743224169087302131316696945993506055829882975016131270076930305969837299238548567269461087047500682022700860088097383565897248684116537659439556936034711824253052004143843292091089784344654955943881495980350195833655136443743912338126181308481608437512760123357862067870510176223252290734403614540140731577407339234334191507669840995291790183321183412744570095362050277807714218412178578219891141728630393065769246662959876172631040641737660341619949024520136003173509163078269193108829824011417942278593000460845745962538769013992595361847469188087119353045395679633394502056603207512657708670651745622570932217996114741620231868540020842592572566082207713146132515769326344651902538594443752624362353351223157466207811316992617417868089783321486999406553537564108572228804324797901092251458431597417469875854805931557305408510816096957257188418130233290862656875608967874461793438602862305449816290032555271115527517068863705853596821472375400207316127657703872214020225008767635946053770838039249651632621995472962010879241703512152836356800090547706031031363806726268994126606400439827999673018719463998628837142669972713499279632474853161664785304808041505319241251390334771313005808635785238114846843991354612768546761908337613777829369767453978384758129706540613254996641022665233280815432104601253662148353740812213563159325533677924465380528406300832332039981276548036893125044474665193513087036203034422672784909579503294284307771222306818220798449963263724222054704564415570811554743992018935549157501632379863976593923216519409472201358078480067317357551204942987907600880773436012362197746149001426215580996491330338458451997366726489190554484375431520993109023316501571804994640920076206163213980032514952858503894346926077593716248158034542368095203021096470890001596261307569912162045763266304394276249453787489393137273291644307952156035734946557586651105492213932742114089218843516600453675523873103233126807605019325556707819629621036359148338133853887817390187493357330171274598906638534978304673648249236033173450545142486066666116047842329970475660165011944960086680629857897898574128206326671258747305478308713686599307819038425513005196426478857045858208190734721270373797835471397660441385396177821584269930329998377045031772601659917659269712133407909153681956975639930260602980502875060173025414550948420662997045502295282499786097864951401435148606867877605962261560751897254312429507741442619347988318734075535557517289517609820278002805346979745250783603647231147838599573556804422305015626063370455802393049745039063765988355365808254780765181186611884994688974172902474631548627232125787760675680728831986062933057622093900832483287645805128413743546865859721585816141907179179918708523301415844768421330703341092164675304995566359466973832790946252029851015559257270115493091885653873927517007403275753881392377740487679706771631148939135544082724220216225644848917682416751111962242756049212481749235951599030010544341113232608335273158312380368805137424198554630981574070056629832102012044620062950188884708788593683918869970457523589410027838484698762156846731544624914228396924818318569199643359589078891664855791845373972268172077663784136806323874431297578937142862609159595664042520491956150386868833287334480869936712516769326698831257004703209844785469788318946079087519605451872659632701499980766854977462944925117808972006159772018653919220124825771797149689928362739501355366224768509979208718840843023306669419633052326743581560613307033795934540756201411361215510703189259720228977351610864788562512952468199792089693966362965878098179538638615578620596176912582807392131428393570340779183981846960003328919262153007014812157328818396580519813225790107878077959934351399560156191731398003364769091439372966343926902725096199329950849553632349696102744993450315016642058989394430067020411926031050884327269901246266012141561913551264298424373296787714362212279828114529391660635567497599604916962329282056187317746682809398455967132285607427302738713440854144517833252614592427688153804529311218066033692213786702229192019048256925670952234839002117384182234890844655870251831124795825926432111188432557997563254654889140851295473096314991927300992460637807550465605149363666353362380059144938457854758221063832909944475423410768509066323168219253795011628706596281884995714159479046213288508485723513796506009667673283533918124948847321128619430553306215681318753100093559311288515075304320335209418613843209419254338217526995351744395080305377332327724477544598660499260871887118698152418157037816415083656674518192939391199099472381595755861488974344462929431154245727881754512123726696056846370203324220139354189663844701689634050251401300765438067577864055369190917159842902823912005668193319746055324269978072431274263724941896792689475255057187968859273451934681656402325737535748764551388854643103654997877224577396886829673996123847887861614136818578872995480596585446181647765642449550593129499025727661834736272310194402274520403790952424914531698431600681548795334033683298205481799520305314583366054531660177330200209968101851033859879212079399254513583293069548358248111028669969343276994260204173622398171247130453045085400288173699012191093075166934985024769241175274668639046189063835867517992251043919361235712704869869211496144894504102174260492219597079289204119319343025456769310868878421364336693203530419153555696466765170707145799644417826008390963073848358706617191675323675394942238770264704487003848892939677049496951917318125884533175400354911502994466018980810179114528595275728392422970630200015436651890057172099813758848176917895312797274456157493069449165610129526836417589404474834991908956065621109542260798565881560301837943686307260409169586525595656970024759476551533962032874890505667870357692471761068900734737612322465046533328357171119889276552122909779662524912629127498753168317983806789553230723336106129307500728450257715214703773192261058789156847732335644210067969961384334161603980110641347402455970189183895583515934534378093935716729338906376409396441178408920089690426457522403834989087678587939555969709479983757328254965093789133589569808883165981572420185370813482909381681326812602807953576505989377885527363195795935687869874176106847378756523514355198615573095199936374434592460146609600894912760345391022675034681492368635019848287764746693436141477556816949110244204136330765376202709647938616511821342167324038064714173998620442392966918164084115731325241480926268627865871847123619295825095636237517192743983020140996062886291720343724783319572137718517474866176748815838727696875036300230348825745836525170209430492020254251545439957579215658313737926951228175211262450710076264294754084714442139217370642902259127176121797779822945020422978637826785981342356353990479044021353494890751903238939987423489748214773577872509496994162393983424704372809321437543745245788642705646474500593204697995376747171152707008607107141069141721804400698312064430626667760002522585941034704386063232324057992897920913105058312650668469454765275500606061095935865725936250544098783563979152627183886233349166008220362431294244668448075349988504274223011052140079147332699178588204405716952716328590295549023947788319214704293759228121967220514152383209043261089171168017375349270937259862455208944493122607227347427293803610372200749838009749634293608307762823234244002960938610918509800062298138888404379117422552113951083960383231435591591362104191954665432358966668216112506202937733196823016675841282884216093309420555356432584990547580845327918689454440524023950201242206340678165271423975364812750156017728702382945073189848407915930749737250486536067509697133928441443626432213628684937541536733811721397835233748904032567688704145880578857748736016186925243409513677677156958987791471555347813383580343310370798248245659046162966389251390846788095290525210078835810153907039375878994467513246977107012702654877904834604117893172858775562940707558055050216420521413832542973314697980634911266096143458606400571777137853635076307924564996138222673064212302647766101125824981778446562261893501812787159078102200411667504612521937426452975138115123958757745420338636943270040250268570521376572685281821070074969691185783151486283102201248480233903928283194406009905186830418957596783453073827545451292837186936479951750240378184639623896374332592037848278600712168247714172960732375543239339234113650034153441710763127399265763242511542385008683003565362560870060747071545114338780004221470711444017288562589612376796537794311148081082201981386217234946722093929559394941929808539341246443405038257463152009669636911183633434386114017351889686772179740517128063381728802980239248258884196539517348220446436610993900217960311086709563767930974333403852642074913563970939846341183341299279838024560437519725199357158154266053651722708152297716083067824462519305766812081819811595333609331667013286057811910350542040825031805524663153425851291930698052052844700562713400180927933796867535458150212401148288132787626831343883739598386760874830069672558978871193589617334268226797126001527683168064228284931158363227312262206076986202425377889984116159654870846210715511545349953779554152320308380598234230072331869554436809255692117191835547936865700098790498957498966852034437054683488759495188603066292075663251140815854858345829166575596574361058228091778023917919034335943423817733722878093442289106541864230857369851225610378734201494052661836206241355918742843278728861064851450821491182450312164794744773514516369118089158062119472921927448492118958694321811588091114465906023390237791714053501835529382987871489869662684356307889873478560461155922553495530228818026363543807630497160230839083911202817012861776050091365531680520773908313407158477462142154807696952589289222503878934333443210971946359193630177030364653510703958209377628661836843587043062901181390115147144266928151511339649991280120265184837217814226214154943575476182426433933249073941252070485440576874242810811641897634419888964226142724146847164015607029431553853004019788469372832397727096602939686500223456446240894854270489444508867302231354170750998920303762413721196666291616379816706272738958582254203003732038424359452452881412246906980326313624581659710153900976533548845002229933488823181923598313487998250080130280031118776312430228189898185347335877748729933599722274556022149626187601199788956599341208372008691925968814381471351412318390859445559397807728918004117313250792480362699423526242712106091514911142475445375445927528350020016917297218999516038699354698210716049987023990782651659903056686706035978029370816637213525262409348266598680697245526417006818729550644983102745594938794185246881936245510915362896154741637361678433020166562478171533053637487700373485581249861348378962372165668057618873753299758774959082340823850962028979949206094318324512509144385022739151094501050107309426838491988150812382286273054445399453995176851892948488822950294419918559152583243008505447292663204311945931634158703405289970931775505939081267960501282566824488974088419952247706644906290837884124901474539667538281599871061209674290346276546183468796426183235122772305995111166161594578091403354131231571065970441706388928661487224815676445606259148074238292811103243969672499180072578501757525915736506070823356670149603398197849411585981999510436717238836035104582813901400350160681252496227805923511199601906492249494478395134547743598826795330684221486244832012675853501853277393669549911987243866855114937711545957935868435717793455997791342459543374447571586959690079408272677023756667090042521140689927661300440057296349345663933115839700260805393963089833937895420482881873925619759777951953608308882983814940017284976437442398957103267719443411393414760538381213425464303937295742590504692753885892977028024776317933922057734948130886200958532983736465234723817749600252411826105976484151397684123449007474919096361682826227849289286252002527919286541681258852776060103120573346613889741411180584831566072780997437247367410563651382782698049939092261550009964926670767397013991423179559586498037237757876295034638187585806968760014354847284067418951420445819180619774169105223481310239271882013429279230581202454418645463963971248876248146299019442495385324085810689477254667360687906282766764934523395587716751986240362058181404058930166943485538393748129543304975812690569305312100996609249764828086127382380062078569758456572764320029731850115576358427237237630423052363874979757054574825115224554466734215297676623031427621969629688675275567266288568176807424672502884619354353900985338508233324189104846983533359735330737679319097234506060222270247904315204556936690087284443043133122552566969585320911867369538763241447122999964970343720858387871482884719727658908004541822621233982935132699084150727713320827053694471727988938994729263301774791448447262508929139197090309771103647009364087462131524143537110343709166971714041256033034090410609582241559912939184604844779774094146649758842219515030513899163373059935496109325851814161549203666939652525318497719001853669818808872824161741315324802343306172652997463202770924559807253621638295425490405677187793796013586365015623311357460743063154278875577290411816450439759427286697145624541248760637249856856695070957181824739385369830040828376084146779655561131392552105443237898301157149166683628029154290838591544103201589437998685659007991766626429705863256970508370130508553329554572407537498817358816072440166215305273247655974502552502465235363987013450401365971866490981504679189887300034909524933159366229008103021047053912077930661184615135996510094058511177385986291607088289273376940224262118624219006244925479355247071307281508413145930054995855600863545882016739510613179771960727392906057737078257906585760811866202472735320936784033813986247435718342960823944750550093063986554652068218137922945092234065886281193026093628845019931172466158407990451330578724425841606519626487220440655192102618320795444209229976181425772165192914921754530815404146378567902864152837089914143626757671445391538814271778440727529898662011389735408125242220188898405306296847105763161926694728932612038931418786128320560269503305133176360729869078786055562997660755906454834348808590278552711874201248528328913915382536510445066370263982243497189329839953814605789266492621885369664668929716951361172383370614578073849722606028730415382691702058880810763884501558754797414452138408133976598445142568062387579202047120981507036413544247318772595741642349376774218721156876364383275021206261276928028240597349875428080021215703430239105371219012485844682744244309330699701820578627925686516378477469057890715836171344756232848542291060523080361196656530211012024229768715281237161265294193100015639741438465171252406633033030288229274877699673988582742386476137980744695023015124687621630846122744256432323387415942862432018005598917734929658310531373477881702581360148794966557007867120557577705346824263616511977282121524355384739757107948527623564284915838802665756307914449099973771469192023746226547154055111965805428006381090999237178057559630363673859191057088933053861717619063921301585981254089833692337564406609370167118315991146660363669095788946825929411546044414316991173921773436227573050100109853570280120864218267579604252936906848776437824210988595929712723767095289635311376408094885219963181675105750075439956523169167215920033791943615395208807278907180787825149466321988653099598319903925106976305721373907291315327552854166639502150949583943164665014259595961520113863224303616534189344773533151047901928461623353384254939892511010202406252897631463211689822297344951576736867299073856081740454668353645298385758607188268690455714263920919398267367955682348348960021174662927518783956514529368541450619824372836755200935755043139561808061865230155973052328990441761056718106791990609163879527811927011536717264867081630458201152361546435164209179853833198203729479511364389907693868807303137594700614520963069447025266422325718574638262380860987652418855131120283769615030966559711754260148293764325090612701759486500356386983965066295915778560198647655923444604911568995938673421350561989403646253577160802023988357939564572416214660050569526350801835992185324671347945721841113504515264437464587253313673237583664544570865164497656539551324446570413397128924366768359378977184679210783685649688064220753882109754960348816142367296209234461837907653452444650144414003276612955599177171553417478490991657673510097061202805261765094932481562049134997740374663575397611690767902205699271893808560440510654547294138496571392089369899649817430396829986264692583701591689718274189926451564180932623637481084965753862965789309266374623523231330343182161052437834080200139519890829400704304222633981591450929285666174634182727297633515926542276306567908488491424083953238910879042951876328034313867799441750028426099391548960854710314625360353905363357682095956880522512215424659645705007266100472951670705364835104374496267517457212387190996315785191610710182196950293851087303194793140937434776814194660228131466382327896788153258702918237750942476509587952318662631374625975000343672030639220116505518069410946701835308753734606561190680368114808862715378784509861305024878693472591004045216437523103122585120573696421654258355696929969870512663342336952869648159186612663319728826233899937058608434343012313981843084718535233327270055531502684000260215186806509744156566067941432367803891304035555181591512878691706862360550709848062885324845303786480439062676465038856325803505002397286465213930038881214461419461602906045024853070282856852850629428598072604624820720853139719037511784525495372209598138021655797289948457558732358238589895798761092093505598204208194740632430600389106325268923989230845540859240338094067947431338847176797258542028978515403999187271642692939525732383981619316734578869309760305935867017987365003105263446831341380740747103267407065572390571559505546584115195486417954660435439154641441349092882624980161861811146834632179878590321422366155918253753660689617745112677437755547138986931097640433089545478358389898248863261139476526194815381478324680454470171994644966405261579209309101414214574448288134166035771277605585507488704005275461802382207769326881775479902650026921003547385274275562480000026447972476101373959152284668878744152248266327577794843126882192464811201184330067277156943066905351679039753992296419200560747976984047932874982603701872410913527213407311424853771510907960930792520652234761095893857008956951135271661605741434154340035402884629259841378375227511207587954818079736362067245050973556773354416797815156667674145007714369265643935122670532506209634464997152875879100545144534561901898341177550905978927332011933853727835335367861672623292809328647473468025232297471907510223743697630439897548869851366020024873650395872704661040127992907599549202362308108021587945695679242430903803597376241202684303553787999281924121474047047372437471067648390909944620678685661446718959132010267271404764944877079129542587591070202798440114383334586465219998128339967566536370970888850871597149590087357167922956648334742156561855847452012292229071960577276278592360904253656213341394919195247347308454898438641831632158842357217892342527164233779705864939435201446260961908495248046821432123318064421912882020211699922912064313985734849909841099720352405075146409250552994142373135276976914370810762391275406062651742671168622015560633017085503346314992730248071007116109426927400193357047143392898314201621718478014462904711693933169503559593740411777477065121851481322849105257236884107141489677309422829851781161393934891980631015268102639850683132784678933265092938721419307243623899153378517228438567114332274861663499154034706686390929843373643005174228187595909340200147149686649065943950676316908401145726320571299897347857553812581691578899788910953861968925097754906667326435738940400078461663577159363811811302777249530349338685798455133315001275072373085971620295316730817894136595525565703639493153581432220930798122112734641293254650372160602149192281683967712856359923381238084163475100353488619434405888405916213296462154700428412590665325996234763943693576983541048875378782966495805775131056421955760268013278584436212194752819811868549271115012563924821308341590203070011566567385036801292404043610998502958404639962480987709171741153135871773152666371457835525763298429614424563698044694637054160433833037343610467830464196353835337088480121917558626638106303233731562694081669416249959701213707940913805492747133135578976021972686758775792412707175168414108151805571520370199544706043204002131444485548681100452181357080834845443731324344452911440350794784923736555166621627485603748488070985303609123277339292064884521257889164199616693228608317907260604640124901917728050348545321259743991793900969543618192618423120958361095357249183955043070575808504924852536753185106330076739028990218757482027917828297833299672615994890509227225270316645425566834522549379707230349887301006258473228758128903351115019956545584961144192145046401727487404463949669880181759488656106922127219158640254703659296845377120764615557800641019983065584846726569354435820969574981116609913130432807389159725917930483581733149886339182158664341655211138048234834782860657740125172095443104983136146909836819565421522560063095121281164416789880395048450961988742631896332081531007610217249890452186833714980512634435996820239846631741075255797839935805281583911873587556574613369502778759789138161671146151921472663579063287382056892270231090904603027328237534511344071197128337256086066577754089352475462675443730558044594000901867120255900214802668193092397450487057262389255870480051646568790072840133616710195826803244396034547832974616318886019028825416925331533400857537719774604865313942670118975983719455504958176609141089232966669667290562004777203816316609597126480324324151465857530949324266781950705072732373946008524339720634719362626951101834552591047903922572923327224481434149654548154528906145985249587196107433587866684727185143134865079756157104268014617657929642578088550202828799936608387908400673714225989868975747527665104635325437722279712230953193473933653730716089383355644619888853430501020802661029472248635992813051068259404118867112652681364150119865142347268930425224519153579819714630856289268886716836662164616755982923042180608299143638308220586992389237322359510545175251240444141854575734778502852659138160632473332543074397757828533757403299845622818754468870843275397042267170384369018330273148903979359207593460365588785428712378171334422018562708981337574131813497991777592678378735215251971354865388346765923065995323208364477600420728420398757127937927436524189916653425690147580402611118300082260735786029778455182711327490046712881888940302695605341992623806562667264982326950975244244925331042322089158949594124471394600309562052379534480095431751850210492717866105936713495335573679164444237321636728935627122431591014145380838969822657767091168013710780205120264501442923229034140858693216879721753575420120740562602561407475420423908714405638505223976075152957327809523255550217697631937736764199907108342872953328883375567634580914184589968594774766275971165729151346643725755667424671026334744618618577643126846972047352683275358250749280796722306618332092337907836952474020448157375156501538646484117728007593152274650147018673723080534529967941553303920985067360316902386370291008043077251201772868887128693072264874111774331641358409316831749624786346790247415172752648737659707604326875934246736331926360971108657006835792373127780314191982548678251733045645536829908129387935617448942386369075481256865546350173685312365707928374637565984474831769436070049539907606719794914192774191582754971052814616724419211777876162856353278149873637627183556498186035491340496582373123817028388335738576723472665122598298708793879566907489295931927996554346718282481918277378483790174748215493681338888983787919742424124597217028286315532110588004548593641364287291479185178620066634682704363606851334745703943985448564180810980961270076489693191289733334491413596552308317945596168209964964349834031483152417610617966254062288209086620480214352081352704038184743879489393308160038905796142244584765561142323200939046343658330026003230888089692722283408487320181689984104927762768202245193033837276506236962159712062990518758762465799998121013922701638000805654488300831904415169147200965502919094497408124216719979059862744544207847394409335048206038479222949601265240408923809864815140824954851856401356681159583140639957541328508444703987065224314021167463784091305044048130017051561744264046417582009185776254637460598323101744170500441629141943286062025514982591193754906861371610968300840920671570394045802172468313371887036716571275612021513842281514003295164408307524806022866252897556388271005232198053451007362287647206414801635908824823992127514363958163964876202185194477276470701888081015534997688884890684081540994519674262886543892337524366965971354587520760675594972046403921902720888022182520465598394368126573357344936087965776958362695298744984239652645037349071267849281550181066970250309801941888745848296966017562464736060346741302698565355023312259321984208169583669185298190110563957126460870697462531224146542020119342429682413144388747672935707532064372053764307685384588906507385179118955157880715184459767121355062246359877781090853591308188254906954662921907966562475569759024141499930317508326077071979881502544274767511220428005033627960051140967860660755709426019871782882091565102701789378359004278500370888267922750548590187771989467716953284120727669438044149544656476981750896259468102190052881019566258189028297776950497382099311523111009892880392803526439291740066221634933952155813799182345890747451685189731332942118516839893101373264849416428443550985920350801153382587295426919231511711575100427233892252660166084326759002321263648356035892221351957629792796914673718708783805776476820997350961322093103503396656830961864429157465796035347647046668000673838019751666211440544925899997348533641964719958945641560957576056392356358843320542988699310184785166921509506241303401939066494625944516000033353314547844272697465631306569308733793149568302144320771613774006190964639382436155560589288947900973529566303803248063727589150788997775311085625103338478544438403964538321299785066832867262514589770554672331090735742602961366030191288815509253289758452534958298653980771711496462078739354303632450013162684623804170623022297771427283937990886025481866726178972056058213322482964333058133364267103469351740461897626550490396575527153480078588712361203418410585400901566446181141851319451605670624577299606056278678882604793391372812647203687613347436321579476814590372668159562565703290211750603458644238365826176145713970555275856828615756627694838496166675906190592520810612762952085494844206349365250580105118744816805749788803690482343918331023312510404177211666268399663483567319227787458708355898855896608253638027070717043032833011984171459720382158796272118742514839062271725712087460373836854062619851831383254640051137673162484174999660809516492559403953224562503183709361696388474666402324016930165788257367172608110156723668966322724164315101253244631032452157410484658178624353433050423415405255057011798203737804265055047774442832456364166922232474810228043241413025951793388525637860352698006383547743164271133456174465349616978526278797926370323135283817041207467129824387484410946536601519990932804936333076991115582919458976454754318657789876138012701579134138135227015531656567349651729139926582263719942688281392706777804154425476044275048372832098647794052933903960206461795422461511790029415924920109772728711329667225011496055955170686683268900924015082548173243490026881099390194083679757881798056809184763635503201015586112757664965114943237779189134067136979378377924850768093711356433003508408818322192585933289565211304581243517058363816807477966219787575951264996527574433302167574651365307433298273906773926229761336881342740164676107372238525745090836960354257230960862348496683025812467833566136689237754165577484997551520715882499047703175808203406189066746599627921284881389152012189337234964270622479079635588742393499137604637118087606636701750103458767486847973578114011344060150184683856893632755703935492943019765129712875658587327208296853047722967063485142057013117638898271806160027944568525636066768042343179273536218335124868285028211389587414700211899014374294577526992885761132183381374712832183738905389956812167235502314508993545133464373683753410035269045637930631427244358807265525075214010649162887524098002973632159592763894249616329909576848947988836198371578812114003234294686014477507771396068346961070243232298055145921943411181291720807600466447300973004459900085238384538821106271474063835499698413293453528732210878692261647019351086164795508663956086190710782808923050140481047407577257186834868890037001972388645932279383212451725370202659327174664241492354749826595819668190246352355217521237388809682139818596112091987800822563038746434711288894610639331943788805684765178141880541808573933308488036442431433486496733248680466562272514967424870525868985998053169719290616537636584444882145136037593324742786390575468059181083008610401211109253183424813091604046511598075334910565845383488297650434688790015509458004637770957089085766171067668450747898866488117677908290536634307863896763530976523596780217256013009693269732157610548778522540102519235313969998324598094463282614230820059672652255235551541649188432460359158191478786363236752011269095064538909981362929413426339578662325874541815836393245794300339364610075548249777870844704556772662632085533130433919216292437026440996915127922435577926207551367426599138510082577803614684684632632614089874743375743748991396449549497640125865117198175112166627835043684297928096376418139793072507839570247982076204773046621166385507183627273967485538101415800021593206951890980278025236410800438967457357916545357657590997912954656743439589146018755550898527458879032141332854959324367058694664170593425348637744279264307539987852069616045777204800501452885567293382662801318861302046468222313633649225854144753161335423975611706523694561727296874137035859778771788074955338439605860730722008674515250092845686078887965736709963947448181954398203491551117073171329735736750638910165821026288592320025232589466508543989478783274522713071049140476810007357744918956487814889158174776726618783878312976618114629428342896205607834894008160555925584282262644627234639493607598131946736576691291658034345679960349595108894831363710092239186662385184606773145051705822872378506118403634242734186109754228700610553896939681127847214762674599848321812636810498865201076553343242084388858300092989058367970934498104894225439368512684854758209075343756341253552077119941849794492696295764970171744332492026733524585927313881093404053064603849713688522037868971682144048182626654385167809604166442732791345902110639241725073721425796776762525839641861713078958036101371408380226402889797888278704190884537827242010384747774721399723229519290172291888026583756713660979347823566493750302233009059695282035382295983204813014358272558417565900572877344492017362874306707989796356880313008213233694683444934396055716520716166303554959444759882098963384380050918739896605784431112708164956525733850660910170222392422985695426467516293945220365710367043965355342313841842629836729895198293288718804898191773411942459915310034998363976527526464791824168569109996887291499714174657574352458430707965114010787429494645263276687445450526385610258072420525157220513688701080274814323487101233307750000308490826199132969555103441360155407235672356316458032673240284617285209359014368083709043445010852486007475375830799073240263896295203114413112207553049459492868062097664264367564981299615387274528362990121092772544110124940603681210318291114994841867277075452496129660740876707309016847265727319601049480339014287770166027777061843985856201588381846146021961426055055150201482652847982919609826072959804586102619978917211340929495124154101538583261554803062344723875888164128338499393627175128675438387373259799850959158563690858686910449511423001327243041041078819476258499145002750060997628550107110316245351048627351501947000426168327857550967938198573287271553046281402063391132593057719129839234723193737251299111852657535850665254454031828579386152463364626975710085069709749953301316968016664984695394584977917721067618673878763701957513768973730194685022676442569844963912542583355141161040553078367427804001521084625527438280289938869139031032781851431694937621540864514199147579325535337463420927458744910135581653847341419642341858101592785205879934155861883688962899745408807347271871350676559072909105239077839974869035058010433710531555540215088989299367102869984403873949846312938203204382241081271181225436157921724311093207293695914567964701495703441909995604151422022038255209960389739918669067357303694008473095469355233421772470086488201422443430803174453892631557700133984595800139585032273209850665669312292475516407740522411999896074019875150924234122683807915191476334711651280169108874074831153256890876702125291110489820888552501260866718494270633763504732364407449715238440144277921984455375889524259300398680448635764148345937033674787829685504609114201098273258130346895499796686865921985718148971658552361122125350132538571987407105188044933728679011582046052421330589664857300295718740003647417426437334043244319483378050073033955507366064525838863013965078721529508973416113108683306428328594188424604199871856598105379701146940389641628849703094141764619739763742063218863801059554896828648738425053488988465507782993919131845159301418839062933523468427883080324226904898737452864184711936966156370384048538978591239259091310419151282762314521596096402216540887429216909561154417342649363404927914321528021882867719278941061569916302628927995380359184434681899616411217714477855512154878604003990394459703910065767951378091314917348376961875926024989802920499603806329211627857513047896452374824244890200024411893963343528608868045420013195903821582755677451381840297015837039013299857168167663022184980103827803319704818399266917322349532143387353999918528220840391677394529773080337983357109346302123232721044985128333804178789798765728697466572463676668716143216857095546756893957966792076669464904642629370397537128537661188189898666289079516774811397314328459230433118479261699280239827456956288910363989820208667343610384430841081405440939675619347456670581308303630910654846340797027079959968252669754417531575369814468353123760477192373256384470776028534407465697713918671541750182357001746031228653955810145382098329886389565081951320377245375345477563025365341206546914306745788720381972582982661316230291628837825428032428710442132427539166884436206381330513379952891065748287003365506538846129125312567949462115800811102783350492983165825577426224417186644341588522556869141875729241013717664031239823512263032215278136621127833397346145333374483763076993071692539863991439085229005948833309077659788656586378458847375822467845907951796236243959072495712643796575469958907946665093143338291898965013981409109063603086089627791794371387878446866937053107281252788970575052779347959736489257628432397029965475953244182189878157199337387829684227129932199237864413499076673133885118585104480261972166118845026548861229824641706598339008784616365200849646166741553438091334254999176945943706366008765239499536866829772794575057130808326229831438206725981567708900037249676927191419979671729019484396178253777987190577831607948267707619837798502636437301107376524093370113756888319027941296956513857753311090356823698846924085018775109645148087268731014833894125396593697278785137823670440543991658711036639547155874664388215835252506380658539754454517297297104907991881356125208944708945760773799724536728676032797195348430516266040759732874047883873097082096202178084390086515056208035515875831675954271436120193979759321506349820236779376338061416023795237271723653665551622349740922099864997836535125205122094468492689205051908462594853652477356205439621871482292603248100829684282609849073959134351044691434531520735629674615002236344582620054509173762207106487587298043019433290908632658549492197395187917912249469036217991979590563212696650826016542005933905222121271927398094383271958512714920852161617377046406217498999033631386559884295829819108420600798810436287735084778842439298292376150367121358249809472040347908963024100967425027002446630927914348569642464666378868103061814799850390543382082715561498632030059973163337149616466147465055055471840191346272819624374210601180872005375451773462758846989983122344515445976383616631362845123592553348274218216944086445248095038031168587140726602703626599979206678342646198949656339833613368796771650638859246589822354923438308726110531471408912500995154790254697178410194927310516822319937551464431129117765614516523122263497052239638972954765640432117761535743129224004897260536256777628603399754858881650415475052204822527885777522786547882676644490588094836584477225965460322472846014910212499641639939611858953319346798186464189922892958608794854744349454013214617125555312420837670439815683906225984635951308288577543766255462902712656258619801821693696603766809390325419618194973308127323837826371461595954998716043117235459382964528497616447501982682568620388502857549056084538649210094207204718424643107134111312929435158352264118927208806655441117627675835750982244802354435725572783427810057409518709613647858777083963423026810356305095345330512977719702696351501982406311410205105537187394127460778077372712860370584298665986128177126684095894502614988155352002567632220885157982308004780615403055972050622241253833729080543969111554511773641198984712815045841524972558481303018841338708988241615827202785323958608323532715403882688729691649812777579099054411321560646545141010963110430459240656745897919889217608387899189322115004939061473389307073076901290940521263032695720180835322726103665193104364503153913158733581848531215048760369630760273171909921419210568282193369361495997126289885506322259691705196497596060279820443777571715413261018306705254196581491185208518718253860946126634477651528101337237655831272861384615496322819312345530153524272829208464520579832174901302239619680874244485926050070291675483890749383453109596296344285953147791442981578747768667834093876768801617633613174899169875342875558408679498756753949566420432676579813316376193522388287274143899844560905342297003937889036565114749117203823594696892152416080933449882908166244538413808184619838484328950371024216000838338173898099492625850800678192560905285692889954431979112150823760179110223649423017220267068434638294282245821013766850446947764495238514412665492781994171096985078089483249659378624233176674641684454730213638441249957447814211830702019536695312203716864265635543212015133371093137487169726008880469139131380675227596734308469611169466676235022136494038773706133567346059685699896579218253277645161563279275044408384657956481195975078324993597426252975032166201104809486447655713177961444288446286581318878225379876901464207724947349280033770785755381739415189046075825757315795371452623145283340673369427410890929687943872762976767788313758461191440998463409026527736041283636827025406523709829404334876959267294052672056572701763555682721586849505899172397834210791990875998655183338416413011004466602223135027281721274266016386524928925121725425856797054923277700549260800780695225342723970429332443951076710939501295659756251047448383770540152915213392589653457219497629901725297879476391050593618519096202673768761651147409766195415511242706373996087069355259512764081173097531293734467528056861184859323414070626065225950700196090925610441070681837516003539349388366894224013383188073796152558971176506776597086207653990943738360674954125072817811212615269226336791825942507735350868808783402786043363063268556669325778479456860291837156682607060938173828736618606477414520250526135341095506952767291632545087491469239917402492741963238655815349493033543930005251695436711529072183676851274755632922384731333909376170073844661327020835339698935310264971544477427441801005789105793944758364176127300416188171257461202369740738104227614725662072420973641603919194498526993101808387123150976525858267775294619482332396891079347877866096660923059608566175295790911628588700493424145332866182003763923926613268511143658844610519335411982018444477366892052613264065500868443855131184598733657945173942053884288653458688977625942979737692408093125055160348886806420040166513899051734874592188603732877255459630654178084569450210153561909800659240222782110905083989893561745656779046909157912906909950611953401116343575951289294523375252158989056499326654151720356084249964898609883797226390499434822484813262179272590734439262103717316341660890855828222039042318166459339596381280203451110012845759443897544398092845490790991528540926346727818301767956660273484890702522973211986272792901810543340203357378847586687531530280513217636322855599214550924521938705071049870763967028279314295826138722194365136855579260300747349337728846874708703875563202663389391239673905182521627727304183362957581248747310667312837182621725236416335733699825886056471641619525128264394255086451444731245787703039957220654727666669182583120230664241223524845336064804700389303616381278365953803273008928437287164922727942346749475306423664188769091171446004496290720260492587007057096798635215673632669749233401430684490737069296628879897511788006744878189011678022687167274795389939464983109875555987674735210379194400500742392772751673748664723773946599025433534552043484621045970848754632381455995735516948945757092248923613459685776711419933526605820888038450682252050333622873860999433400325313294934630940316881529008363098871329464454017611069591718482316231363564414551894440601755180434599455953531152736921197589045175024029608764518643134677483223892167482066510885485198783608632589105666531952648643610963816239007065831715755801152455925391557824552704074227063225824914488433262235119407933689810807190457990003327250978622991007791642336157491745586751856806076401459086514644368726366767937334120666656361267438608726018594907472052904707256277875060147279279873775676038544277081867333334369461358461589368015975814132737131145623073343490534461102545376683237890514656258258341699936377439910467380599892026019462032984034783110685085913915097557399703822353093485408951591043582576576849914513182823195557890587028881451442125078594431311481649762237476657201350814261884567344314851925283435015429499884220575791316062094734491603778787194595308992470494027613786924931108178194064782250921262200069672432300400657014032870315467306272611056097448126663694013636168007785670545118362363777991554443073081471126238307573059212827328214153785683917313122353864689590797318552189435572071369641088645038627102764135091971887005732102538004921389500863781198450808304777259013641338562616438650258213479549922168191272346918994260517782220963923948261371794168153100973103166913266145157707716534083113299360137830064454169901166075612865833326895502792168534435386049099970852240158642548790663750212188806060554148865679446510922160411162709096614023426067202880229035428524608647026939011557735036145927263449465646137091900480892204084962491123562288300011936813722528963397851723828486578064274469692568063259076203888781393503048280722402402666260584962785429886279663910646052642921762427010127235861608397929464445215458313169568066448786884695087689299507494884711764617867292241409919646047330547041423677935170841577208835801174340965560301839407053661906624866419570456455971773015166368884723417961195726800522136914458967262574722029736706553712385576129990115228441215415562270267608790177523853094278298880626644242937987702326957368870251893176010683796972770089800654683768039348404044728384796842411030310169445911690691438934769389212588024420241235707226878409126302408472681418904644370656663384958300043006061527461279099859635036440217454694049966857681604836963465061569953024512338565686368993475362404163268414989087437411819079445098154043543641115380017933306205382846384466793055043732145407168856433104686903816566317769669286057456819154960440529669732871723936122013690954381821464021819342482064305328454265842884717448058291144805927664491521057033810903985155595003940651782717177404728615527150547441443931201953466437685591095824366479657742756075246501842553197620889767459551686370350860025921729956014939253011863784062801087631572496084353842732271184506425290337113654272867263480872289040597999991882749249243790361790478257393264189008388657715990952964934614568476065900125030312995767945139828923743216298106402644254300875834406013774485497429559516262586473321001333464138314623202059482118747123684384134598250430907464365911973905322508921235502038238752877775799927968977201715851622989100309108283768862127661196175482736357618810390966191047109999961117219950954079661262211690756970724765592969199349734700484929899585634894415826262415029018090380674369203128748777715719851477404606716945517656106062040189757965006259528091435142465201892366062166173871761703799259567982594251303995978837654678102532826251646176765094993949546251249037600750519458889205216444004993281758482195253496848015320673245741022812145225352991056773736441665081061493827915921263376581813048938841828116141505263820490786877393564914765543286327189062501438086208847009105872632732804252484320568955650827827424958467477607631851449244564706307841368057027174963422687536188781513601168042207987970736079342662764837733553762536869311330184685980606819004903410593335708950250092725812991040585920675317233564752827687387885215038535663805172217144148936482326810738368200428933995006917886413361179465094932391191280575091479604177534457401627385130152067270017182686048740813067154019735497581687578572118026674400777900674995402576680317934141760667878923016984309266191765014518095726175567737969603998569031039298110522119809084122304096517107045237680229157688887106949804377278158809594644056387094059836015517064492538114052634808206522521183890657759589499347903501489653267566244038198236935825399499534031586102981751265612270891093945328874598391035412216546047897329695910681841533850311481492561650710837346113875116875334016423711100181925155762575973312899098972026624902333231491674311388673748202228460785116832771590593908175505910646872773626285109890478215283291917113037900355095947443241976678886543874246829237627691382222570524861883137349202846426792316077582083166743994010208568074912954037676846504455557763758389380276954616887717678847939422773810107407664850132931437285658500320831833119779487637791308372315448274417616824365704021812233487791403952331298530476686499180433304504175587161777199653921416702177520321872426968316034674300719534190066302166736225217068204962090060067184560953212057771795535374125970259631547862434783859130293357012771896726878251222097162305518039813108703933113649700632497439919805744220287124012990427148525938762277659264199184363293181376401817317172237511891393560554660194084856006263133686459094937589386431363869718800511980899401564774496675836299796501562557830636757629439411765260800570243751371770113270189822060769852242339100112377114933563979925496399501306469868246367244287552336917241694035567034307661066049873079428871080010905807452420681609486960465143889220364736015282864359827440964241005994734855546961268081892991149135073441802749355170489045489935661736154801281218955496661117588773280865706610956214191031311373201629353824562517788912763641273484937168968041608732632565999826360081740571190747160217908684296064970672039410733152268639024296988303639400311230772277699658175785632991554017549084700838356093839238481606726460659916772444398603896989475885588817962241663903816471860497516770004089965444582174090304206315381484183245488290858621665194626899810084261973120617613373199509562033669556667950124625589721780723869657367297172898911313846497995785353673975462935043944019190240169799725192040926218425176356153959700865278841163161529470215723942909530950828782195988574354371491418215220783405014985524887945557916113129280802758405880539449872398142181963460628052244463264262614641296594320250210368094492828165974256646535863510593491491577955191800818123257905905204587659359582095261969322460439321111749621316889964979166219855592498944528422691837865581956002928004220241424924017277576470571491835630942880098034855932759213648360042503248554012272661367153057225399665135266546708546202171613236941662878608308400710698652308418363360378822073356390457068704653835738445014450764103340434861326837129721548534710077972469563850798497113039813965036357577520619555439560984339416124783262242057537849848380468751918399665351437370569436486404720409299514539026931301021416963050425672875662910878125246983232243089601391993830645820996810604688700361433374345381657375426740507865631561201370431696218410980333294871530722642520918258565072254216078454321957811455998050024375009932656657248908519269962153445566644323526960915606070568848356730068775607006411063680023315699728556959384930739245997718749123418401329992961208905315041131780516160991651867477612957565017466491435131166275413587781461230665695654495406472598975963053114074588459957956522439568349285984692429937737280760229112349361518022930540606247052747696696030332388844923147920425252632292997075094224010309293411280718714987477567169118233868841402921182619028683028132388855224097059824971818756182003807996660060574642257419443638854374399090877807834597066493581803729599446195518987781023353992807226365439897829982626116701370583876326646815099439405442031708341791871205736943621969872050424120326030755944496497154124144203340535202415511733731054313517849937989270469412273066505012401490087940593501663462381733287049796218121121308549900848337401665921280857866987433789349002389424516409953425152342191969266392215187292978375292379441853896337317736447936211454988487974341341595599511234174649579447597220600061961701964550941947553029487840055527249873485190700725028225978884876768061540327450129800893571319208984852077438709218380950870964881371912051230299355028448551706973300122302183217106440872769117789634363376080422575722827613583673946825650123853074790576977577150474186168912110204058613170850019776504753472875418836240165380802303578154499107009115502974492582135033439978202862196889229246761565595957947073570386516631447762197132691729211430736033876272261664761932302038873739342729271089479187795234894513765137311399035064879483864532693495903413407207449357501026269859366419275122574390768205972512234618990384767926083539887919972332150818350160358606225185649463879476372706522587732291882659947346751618555490458976688176629473584879927322926851365444082481113304712778418928846790906622395461322419964674678401026246456541892122321157728295270770203347583499303334993561051124696724225468524095914949770396246861118624667066066269359520142466134665640098466841241416746827600506657609130452159716154889043645443384483676729479860135374170130017315444056011307790949217894643645741358196843089636967944837585484705255385571861478107003168100044048320559239140798856952334693994135779946559888409997063836238740344919258517583398950039401064544354216871132670548330081468782789181652126164623672833264814775178504512563341241027305222651461130793341437244345342143633926565748924374669977540084561171818667691065993591111716574228270348568308979740403707301245656303377917572211363789058606946960246862125525751137964914835096073806775475889359900641680219570498258039608169414077007656674383815341006961148427374087999018365790905709107696424879034408932669179381745992465064159428336084054885103160725464041137268529050725050917725374957437592182550740394601755228223274764705192742585602877822505278524597529749495336464379067772321919006363175406318557238309223074898372000037657786131778420301189712402344608137385216047210314771016573157279521098233569585241058954594932691351058922253004579889817151569824548115890494331172342553370287071328557244800318176720405372378373922670838458767317487815939119930306222675116030916987922196603466304036175132297087247505138659679581717284837662472005559035695601608424295896152822928727101627294514578065330196407128138851448642432837631618473775756775541327593803160470491049450241135455654411983802612230833932029313337448969623719454838707242101128437310262225010400321304457961145342156441064583505922302142934960926550225794412903613551346745544975881513164484853385449885296810771524265241358385742577220729843161729138428795495399957875765621048945652275306766202244226016624484810456516328890938189861610891830457050332547632549464695702654134473203475607877495112953578088469911066833400440055980513815984944080619407211234232747477810322250821680941729421344881263319628070540642555315741369372663038938634163880735730680996920700660330233856765589219756176631294008622034442202417793570932650239906618375398256567748764829230308463980091958508446132468572810376109668909204799381369744337853728303044667454318388499452059751387304939836800008109261381257700960401194538653468135965656971411920165063457028308909780686828511002036809746229702904843261595628592597819706469016922865280733818241641514842024528216139925580126733537155221107488249155953736298387279889496707914196477837557767585142658943024880530348822249455721262238485233590872093657799191254702429227847994831255495847407173395836293673032090545976145888999922132820479423721055777339952523039144652236554561778101049474855571956506512047883487668015964576203491393500662878410447750772220295727119017685941638591679698119416816861721937162691338930215833749903205707228230043111202917784092941132809328190023486501967446686115657326041193904232065004322697743683465662370079341776305156659554441739955956536632895928256177062169224762595606903420023259291687010774911686838152511664901724975750175772889492671698820049594102313825465318761971766834047569423659143029823930007376283873876459489568254247561372070130320924064785961542472435074864203922564684611977990281574450102033242669062309952382702238970192980054505769121952335663009055211238417607854763275613707003853246917168258128365558875712058724669248481147678609889355904949352221478534298345391446293072577412381167817822192877645838689385853243410320103858016536415249242622095230291801331843028922623465391359322082348117981677720239478174102613734908204318114923547654003175648001736389513923931858814997917068645405615827709734202529796159814715275301928814187476139687830534313153473740540965913292230818739850475900025791022975837658639831775582905564148813661885183668896929138287883633311625164404360948235215230943991825173828870273714441990931146700987428633109818257179517063736013902871565984164925495822322466494849031122904211392706772912949363036240847126248185449039342781271146151719370598490649162465425920779403578831337865747188318787983256981896721393320504828140127331430344671906959565557939033738332178681604469312190421268574716485779593553111251078883556705327896474691886307136227925167711129219046320776803879301892374771362006266844688941759212033036599277440961484141611575117656977269195575548456880870274332191779467722697846099982131856971884165081558692700082740805288283119411428970504539920366471476855710016554586565942574086931342142208401291858420939504899899403443466889812843953586844389497567874870055325140984217432649359488100096958836589869261087353167200166217337615319455054614919156590565847934840587635465249669973549797618299591398118131942649360077349939747701317494412445246658477861774130375146670892816337736963196168787943684326346373858483330700577098539050113687867855299034652941823059279234947766439019612081894690415985523424174553665116900129525902279784200107916817102069262378381496125665413925758392849964052026003606305205070006643593417706984406922284679009494960304490976868003513514678459261351608143520500546360536514261600264522592745580690838721388151882477944779375388536207112018165898256846259533325405866117043031310338794147820509212860672981552527337093690784229521161852003440772531400237500489777532949161488610186079725879810895446733118740603038503607352579293822119017458769577545824493605169360521997047747128142526204907280003900714549489283751528439906419697821716549190687025218433412796768525275112936230980634586179329049932026259003482267858194763512319521863174886738395780797082544776290032044542988007266202825686534154900628673408060481404986039061444720197373080876142912518372256146744211864421037010543557434683166445629729299351346067509329710903623765003208568052633194041578750118979429150834952687936726393606856176802314676585634474728774620976996387406172625391827586198555797133985302412382719185429128308455111931724431082366813318053141889668431531557342960643560964444798333451375760632854048106967225436789388357215399259656306131419751161546404159076701521968546866471005145065469582410970064449047038000506409613179035099729646398986570656436166966608049308433668294934171749286071507932790814694306084777608038017911711861526760380041045372457874508450717946344923613080458696914154444691182602569654865586384349094696331270486445240981079397057202883977924912938754126248727782459942339964570856096107409054989002885781705384541880495720769276657580580891242189309642257683263432487203805206130328561523640128956368929685614938728610783291398249257514222718545661478160034224334630236578684981628971236762197297783777487367450743175443498476971595814633477048231236173406248686960681237245039731659982423182606301939322823358483894862972326797593780388508579206805649583305054580371488640625175954128691723622449643412090809208735581778567056209148724906570386517096255888741256622380159954388020952346922684251040587534677477379043129880586359537422077231333293792844062410288925876813674710510467709161848645336090469680008593495350221649420225631419814912297123038717025328349028322650036745529046484219393482511193524830025378369430401718566548497605887031317020209008663705322419194139540582473191476241926637970367450289231771972867917032848613044402984059006355913470237837179972037386268629942517843768415951390160252647293457933677080699569058874606683809337268938124796735829745980011420318838732343629631600738407380384334678573606787353113689704201523142335790409706670204340889856577029914005101110740318768244026308753058007236571223096039378333692518548521647790600282381848227290205674205698674032358886153130743329270370444225517099917089890694664172771007592577489780631664840218108035826401970614440553566673625490538580714631181936762434633777833112840884870048580195015566471927199849007622237091954805679024631455395422231334751357145471606797821684207752882578666148522401564378732255303964434108203746584625811797429452550221383981002643168931871482948679331599525573136547519229418095032087863373966500587054175732398622280164540590840194571449662517076999443558420246180247380016315624381277513599869811218376261936046991203359444973289805624359030147886344024402966847939619326596841373345059324280128630487294879398081720643939718078051607653943917166233642432788290861154863108322997151415360636984824358085908136236206997198154422489506982403598208153511601180902112887225483626716248154410794623020301180834242408080722537264374479456419345802005486579872762056935835436001648316395933589645706242950508719884171050152072984524993078390471312498529828749098427401610768052036374892878172548400533002254295672326699269684580736861589494824427257699008011944194769410870115553720345142257661223093568736945618540790429459624777090164953941395191442327151183489443460000657521838486030195774596725053840236997265530001147262167260751870265703969570517232074765579907744845552387988378853866128888949831756589698030785846524418909786142230613287048917203198024041807440465537495588122949642643420906154986701845466421621944470296238268054196884701607007618480982697335045097599496019779477857555859075758480399379939702740435276847683243714451303039547815555273902749487069386510353630780935125182208239258139628192097305642535263542553421349372181452599560704812398721281785700236348402990383953243897507790221478894401477749105843142516792156681099272188429519457925804661583469352433338883799787457209235374049406321502614528369454525136370603111928875093894163957059170986230955527411248006455405257000638410317386269656728260379041078110475606935893449713669484076583644313981312181980611283005534796084526025229908640585653810083561970489871465843697830564669102902301567966507527617743060963903799242120170327132432598759689644706793272616408008184497923250971920864330943426861148609845076498604204922675164208118081036992632433501203503930602823173836238042712519372516037287693259898342093769069604518080789440622885657732776561403944870224768768234355118876796267162474207012393082852210161598224945084953518195441464346323029802340242174162895963627351464900644096257101531263630577208530814688509190968472361320852361081929241699191925634277861327316773268635632987450908230872382661121835350206746389953210962038698924554760144868819913744327133086531840093283726576802409178988361020278281239205220731221677297936375509619655817122906091661045532136816296685225641237367817658633954352553254049208873125049752986308573362595966788958491094868167052031367184198160596791581168508871166256799133577074753313676103295781030886527452465330279677786858454860756830080936721962697249837025690271592361081083309910267211024814654226097207271373334731614802488469747212812248286267782581547353192007241081101154841775129818190441739631226903778761797538324390675577278663117661008019112009576186302897819102727359968635488615275987832138012968757898253092429114178992262068831004366118902842193786663254664505056090317126954873966944129302508177790533038227763929989452042231650287813683907974051925244465665669668325655782275786027200443766497235088640159875129000887035123897052830165495990762002358687983984127359780497159981390547457098711493818397491024220556298428928211220804294968672332667170977082813179027747857184322995150107136792333092295152504534080137507037694723608175126626868741507601912094135369766473810078158669903020919155751765258782091030816595011157973561713731125818407586180997609098789750367850408579058947310721063043845932862516546767460150178529961279538970032938865502867270049395128678363234191981663842230986414896883226402478117945370220225709113512042898165664484231102262388690493988829094475631828347527266929939190349155236085191342567162835497255285301828092663750216561878555200278735198772285915078616797319729395620329938111808920440672513165538411265914868329504548846062244719906115513761749484867690686558512760940226443784209438607396823575886164380112067625960648208767675234227432190498132016633348646190477418108644090874246685236205369302290076589106816236648423422834499732189434613082851851246710885010482311552230876274514613359831262164138067606654467813126481477280231995572053299382515391008511937003164426658616966125998269548826382679657859751923299213132013858620662481977100063508094911776817899845176835442257909920931312021644864046818644547400122043197045900717109661182649357330566425157422302459181555531162319202967660182155785269145550191242516926083283099988852133740990275555094419245496252945238325213895857330252596309689609769849726538910329843543313374920363104052962530058548441541322188971102549943447805973916202866561340563853487224659371408481723905960752697691870063720344016407532298959195634627522758840612739173311918565921884822947461348195278848639561288357139545812035499537468672672241668886352718148671499752994313930133585465452122424285905068303212690942679311889343771423131171566654945770110007676391003394601532940757756790269605473555603306988662851540962149671412501165756392013659611119846756141227002026838283973935961935929601223587617358557001094316200450080210903647689685652506860646375049202965502589363972909865103260369763618742874513752921517263042794758995631662822025460833051305507630158733219682354969826711383794771321384952325723782218582640745638932139845819315039202777257114292372849903987088200906376895727608574040223840906868689874585948131416270259992964752187952300251072116505145279466354329256668218645285113237752908634218878036468939620029041284010048525422677781671911904346880064653143441895932951056133673353561050715540065276299946313447619896410734166239515378251151500076424367330274345083621832503019086454710207056576892806534259913231994242820842266051252944512676602116008337505726182503425106555036044642606580602236635716324436887211884318615310155986663041619509107756000136706323104759839342582553435472660358150118817562387870869959531868313129243899101458878725610006438811038333427000355485944294610058179839771147699435744924928844824850686954472634739737362271462417785853804147798506462213536282799307709611788251391121225981713182239006387116941823621699079896328194609581876888952461085563558484033515353217920332492266534306539076510509030031659112182218214785948099120330466846460833135981614763483357975583961137950189278776266147624291180658462944600006983862366130965468419479611298546263960732346026037628559685140544864596562151095240306017651463052956041659895104713690321756680567651618451187469577061089460492595744657270646336990418335820370198299476752490358651343863045384531854708032024510410184212690007003401373022640922939631053876902437375614617460255593198868519038514785327724452915056827773752234633327821837987028381580787764796043370686518550179846686862638412062282305776106381842397886984045872721474014745405938888297250898655977265542532313234684326912290406616448415787149965168531595893113930515570754145270633426029851623972871263483147562096138449428585476972308584848754779498635032773459437463530371015590091330821767914506670929964011545045284886448583904919943872947880798127346547820516646412872723072869951558949871112677146583235861986975976917972935820801089806716538305302159894868042805600939732359133173893132535198504896607182339957990317084399782129868013277285965129902723554807919725677073283994806932872578611762222630585115129590403768972380523854932397079262625715787526647063488922984092580041564402429462045186471803155405506152646121649716055429751697567755563989908958644585147281595393945905928327647425819412212690589100467878711112006101223873028898391062301492844222431816440337671269996413276894413703296215710269322866402497905107656477717967458911479596696011814232277292964979756500944842969754030741125794292773102830396688081041794941373287532059118235863269034506656971567678800756671710741611713746763900834117461669898672435215111556777260989472410939407361233991087014108005273751640128420239588945179885943526594007827729201662541024741635537249164329187178225778830571781299614256964190600106464785206135379849752109188588396121651044288497915779532748319286431849336380304843391792533268411039970829119449158329034745348163258031659757336724868950656998910519336064197465211859778537223485682840098835400356022212021675539374861020775706022064633673434646671182583983850528440380767646938543389966632706084674846350385932657528851007091654775039733256871322709521839157415809296617412515222358712519151601015548858744742703791164132654633127428645731870478647554206952365311789999231557361170593795581195683416147983875483855620595503867216041521128338531865075812333039275207260067684302331437937569129718686126583847940613516531540063708462776783182759416444389897778659767244724370600948668529379294460780590908576208381220205503334318666544141250323831222814527811271450123084946758279290113393696339541205146053987714363211363452040183664819988627747333550157798871648007838962364514415947052912867634610081230655661716237513723953681141457047482076692074783260076507312781269425349595986622431381408255368991788514032470945568139182951995783072474330714938351071698759994663995131522911452196466171423812181260445114542165284496316656614160236656685112784993903179067136349574533302504594151330099513596409483173755395701725635203165915432666458345987165774836740335749152688423096476700458830141028415688938914136513143907850888805371087806944859493893861495768291029253597649067608033187283347155780278046044930614962356635870962670872905763702441609036542398550223040940155090783077888355346900834107203570535827443929577856659014074651199080213010253813044960446203811173591409031146245286578186442318579578547028774776471338758947441234965132060178920072687389846321191046377959517152136994459592828844849892645354764665831771535274200076629706180165970931931167885552858689305282461718988813830713224551645534818906020910277941876251816362762675558008290813848898332431968079050509862986137039294988464243813901376039647498710342308705465449495596843360049554840762041161504330690878453577191787088482088289833961571815898537332465812896153235529099484930509840410919360223108158071097314778603732009052394301364395386727043885732963092114067067794064460736687674550116716565456749674794998100988976586269653833348499293086740158723212119278215708537837853993869865820955332737583137164974068093979245642758778593932155964762268849276456367010832130440497490545621603457691697099814182069307551098595962740458111133981047585610243084422097738232180423217129205324127401206327559119034517220691195313806581216966807904651920793811288889781063504847496257760365628881644979801401661438597296954541616143469349684201027540621899513911457856254648278125160182042933763560781729605236568437462518670964270261944095187952525494356197879581509440954979132353059961244902107902408226444317068625711889683532073044584992219614478656099441426587094989264223491586165523326973150207206695848890328665009974318315348316250385654265417381559450695306798490218301087776547358686938362882219747372441238713546558685140065817387270629096711815557429083112884441327880772236277389378777970777277265183130861334960774313942223095031044194113227494690932250030690174222694678627956236703661517178154371134593430107830567567187724362383722991911401773987360158740541051342992348408418823185379074746079815785035348473652026241970350332823178806097022268645842091109733052096956196176413251583925909208142837559232462847310217885158372517121538865343629990825670048074391901165129416309259643657530778610472787154634078471489219657591169286220275376781198687012203208308040692759444243665823129229893865804069657761858693175210906571800291383894965404500798883113915626785427055979785227408155155443735856510448784060601497986170631491026370728747261106333299471842856221045114241670900395225756155239004372768902267167497117369350459965192526181834606094573577313570817458507001345061714082543098361254790167805767820291048620713221896495821598574889831347443487127525369948386734459282969970268629639502085335129455158146960156593186130588813094506706667473183602955846040251758800469348928016756123003290662810392360454859731078781625961595370401358371650466672148524266912367295356723512786125181307434903915210109597256144669485749904592265830876085346735839467470840076987913142444357086832173847133591667723940164955232731296990583381593444090882929792157377077516059516522958494362170914171434899237039603301907772040045546710298624876343451591633113562403878900030161029352506172706440714629717454789349019669489668863125338293152250346837940923003152934037249272660053226865270473198144944908834355929234585044350841755486882611267059300811950591573527188913486125752356517502775798511798551839215570797299076115394200558070137607220570665276749397537091105324879792148600488055512274239364791210335740388599173529706711471108856024204018857910610460581469852556903497942067366242359988566794828744926011615266262011201092872129961897337421806381869708529210977301060021325720422862718093962417448966677004360611153646898656546956356208438146727799603592813408097477631709045796850948642233760057483274079440699687726058868427770231415495660996175757765785335159736386945416629382629748378432327380813132581604701977473760339075990941243404463129109666256327261976819585649093421721255843597783369952770991207466954184016292490559177826586536133137352727507678620796096071715755590337037134466069365162671207639334375235103770447500765683572144535846452062961165875064947199637575172507193754366469269610637475649718061394175399511883375871748427134995859334203507471555593413588534906641809974962769369581485184659538895944352245807085091398489229288028800139732706336503929158583774181439581029452329089001509533663606277423142870135418417074264955813199450593884647380091457996983453415710585659454153026727547319461572519547193791817608180504249885985566058457837521090235351810456807720508507777069185024498964081603603853058218084966134590230598981525286793442173747150360122797658840673317302771923994774967285015132057501302439297284446201947189266208974868779068900667419102204728305796043816875648017116308472278996817155642700148143716512360433722893163645128555127717984227261741871340283174855700314208064733913781521510864778975374584460592648245427249974039207430717159681186679319229501229761650632455411420532122816751199297018979217293613302481417125456173322466723171147036231295068483818665598500071219978496427893962647770943679526141325217855493869164348768082972799498175712923168063135482639763104489507171643071831257105829737882844530678141252690044910668052705498304636063624656928780698285621269665398939138124674234513640023667445631575380588461707402138896865966577961597140807175959051038415145707123646888468418060409040919527940431069771329470964749907195994613467225211507216385632158771323783639372081341887155090101241291936964205990495074534748045733542059391059288813341938444958318507775615956437459977761628620326045408398576175605225098635340315812884160540051166240445966092797939880407533259589926462747606645695229306589231839174921614973299062770323535245568729486156460139299926591789914615135099554753015422806012791316449110218506181080061508881731869035221011397713240781614720762992255491858779672577805456723827347667554857333888230635962184767090500298074505046834584482852885250882388542473408298147234050155702271311950782268855389996568225756798887773384272093968799539128246170586387027203451292005521142978692283065284622373216421342016241438177796290664271886678154130290210181490400418296201931272360808749202692949813899863004975471957050519496440917519298320168422158180752455012209551286679081082469262145437663140349408611889816559249959405123397062940083400014647967875526733219946878004960744799557554995388028744437525087350507178841492298615040476188555730510985993332720118940940791284033037185940816376240810940973538783794439357634140218288273215896120120296048923187688056346433760041722040542348850113345259822784401033169661227058516570516490015263940154766016541981983438954921055938430628049293708869814509384135408569283966426345798179650776366662995623785108115249899648132034014396781243962688248798344987704955430671126861596050553964488606686799186957165880291464520950696607955367278275967729655404260857137078197703737122998810031290268226952539188221341775153390144850039628225768159355179042565251771447119799909105090059498452992419111986088196905398356425766892363219157874356382668528230746037325416291746271409325265897856643539517129752222329008275745277755584499031832830380116262786634254733989873643282396200611649052778055850967123476363126353703372545410115130251290154173836849616687908762280926805962895155075280380472720958154397847084970229276701894961752814099756804106296842787525810605353741762878762909259024886713681096549564126196085490465894175622517196549274194099052108139631278716459453168937107649918537283936619397742700023786406815158032562697807589732628466964531271784361524630455494504975907664358592132945283632718105073679628730508441779083955659797337343809413659889027378717648341242054757625992681487436467153234470546318149006768314115854009867814591602936765544030939445267796136880327655080229940170248150962966850325396120864583097977018697201853992419418208697274746717421780305012303446023850715009724661821544867777276350649910739225595310477440884782192298274306473223817973893936227654287631218039013356000087598884522174489588891447463490532264876859042288851596645145887376068248540197786941610201560444849835679120951691895994584665063868303471871716474764630953828275890337004426484077213909252493328498044563534253282901649657429011571320110783003324847645274950402507544738612582880975227702011386513197106631100281263405566022036004259515700375166086787274275567030814835187040312287954438646767566868547696999586522770934152128072407878657659092810238148472731638223142177535601233887265172824909050504970637488311438901238694992197755919413464285088394582471558924288159045628436134442380174846400731948070532861579926336634816466449748655150196869165020328358718410223989535221675472284951077293556548230744066997260112393999405724369262499803850525262242879791253064934141094699412369770936898773934232919927014355620187836940600904218162644241613943708126741400199671108522620299542358306904438874353604140899133692434337518283516391303627104395861589884822801021139295153423845889980849949122731848181467178574959152960111032271998043240301638094716801894448766677043416346496128607013914688612799050919345578757601940798359552479822464242603297100209174137738428090322023934685746180494641274903165277931164691221655730295258873376440684677912288816768769016930516650106463082402043684221194874812853298120614867986283418109678950827299323242950661799491036164442752216079676358487111242373626398877869058209499427765425605372299772652978362129215142898064811259109876659814799604612709561170203452746445794693435199428732586070194024647573604917506868637770994490505717733278216138218844126433002803355995475612059576797341942407880632767758024736346693633977006005785949962398403656778976971042717790198054394987582654806750370294261915401299428786580248768100189397395011301982126685527582344980308209367128562463804328526398918946730171186237510309990099925685443315528859527646831849115461514854704955947663393900102639691462719936026261440672100862671394145732325629054210178958932639650975753449296586476433355000457821638890432195021704943606715363056555151610825495499790380519009545302681973362373176841493986009529411311121749933180719744125155340210170241124684933274917120597115184729730028413816755064335425197961891166179336264763229798804369712090729399071696448439862135779058816146023094475427169224706115005630190201496526891379450464157785751809410267314934544064195490154396049642431497198568739782384980879222389560203720148840828796072338391292173779961857822011227421600983162380640561221028640617647684328392834066249456883188100968666486257429335239871322429934767090459056261409676668572717258423315946633404911247024622538481815704427819841683607110723947602303235634664777156059815936477530242128322944916358932997406075621283602613752344986899000667657968514203458257409260389935144628770477498726535541721753974356910236239579403368596418243294013507140493880027821499711888839030075553652444746199191363399407066453028952800936679058032906829077315518175222931681189809351137152992781235223502598728652424808612450331171924741777414909968932463246677226856292966572396221227545503392796963719231862263400897114130619307077455744197532562593706424128778925841293328706389862663222533551884692303861626411837424165483050908812284439818181466168253104765772906484696069788976118652009429555635722414390234530641365884726654525399073979787715568365092852799584459389042854228940451724876858443043262063054213239337874111400074747937319087155821097291739620347859602947265955879999771521324059563902437237707725738941073308177943981585247433358492603925500937802688413058047900117948049965178363691993846947417867673954035300042643417423598134379412685897411458602592236867407814833022241538481590617251829465638561178881635821431672389124375585553430938505901326730929063694172210810710099625803142428091125731159487155456653603719478008201095577369211037721133936969186663740118475495294058422954777348307717281137804171415169547197743745557148470445092469651572796920805330952640758582929601244675849622386872955210202105266494683008958749423409381887605356636392668527036892981073153985911961970602553496422485118441421627463811390814762814613831803486465983744196534976018256868756277270617831717621539193512268623835428385824941149085574522680425766831425203858936000104847699585205246486234615792328347524806601606294065870505771906374996397316352122837170397931181546136723715329393055175805280960232440837187200466699685256955828526664610679906657355553766784979839265618244876732691154286160191235108945659786939543636585780395241790099782850457215537051711671452026937639058500000624298935756598096742138155945469541227853913942733190855987192878922206961451092649420538490237838980521194118442929538440777035125788302545247641872196795600845023104345436453612301960336877220628985203338626866944873611953459587790676306552522172024487179523331064461619589354138014863438055769238030206126850117913781814207688575710560092280429046209699546918452147299362387468866737019637558560604609875789455279736348440516721216360720372280949655000358396661296711226137752278128592733480337763087708262612268903570918472611468859539879560471894330155558459988462472925707524108432740812521909663037973768960962346971316388360306481326717410523468724765858209481155658556119940644154202804744004731394334628622524700631830031681930861585053420498598745242187634310126560683180518802765562229057155457214215375483172692185761535002899483500924234966315681951513582564348815640332582008871430461426305094902259558881789070082105476155191049778277300527318862934479990129975352094523409712129117539571760749561691661725397743196284904462891104469158523093639430332960232468575111308061195523107598189339450447829010820292562316521825427802443252195594633372328893896448971541270757329790920751115975972395442140333994264452913177952121552508448966502108787678823021052769063676959628432561927474450344236029903282658250632906967367470274632148433355440568408837736154162106230234531224869762909499914331443499725282309893186824221432012982999737118625393629094993334869425325793684335846466666884182212201201431238307964702701408192722993892793551261535922626949629666574227230632298005619614046735022531540701458750891393227532885339758238649261299625084352132905399695430938781684319015729150108383842110325267120376452782779521373739509841349602559111590883611705184466821741226976834567838701487470637732505047762548978624726993355172976775755025753136705374955605882687778317640294873376143111552465577328701453716800504421237744738750529187493796451975267605174879397961657693169215675256929571865826575651805813851159071280831787025682027698762430481150339427201846431586353095890864737962498281334769832507086163450127406706943975951856660798800783400823445639562099610613978992255902222960062651843529761565156910332038544512419053096996970745684370409818615474201558563320713516377378335137740855455267402587153743779034936705192078759331390651222919074622617075109314715123173160480721616995175846271184579095825789145679312969583210974741456685350299565820630213463985206114344341198092636332786355746741846054010902672469777844255780567752566550459404242762076582949603365692072379707763194566122888297930065308799776442696841374250222000682092283004406421200933270043777472723855598183478564739084096243625458258984693294620851663771656718569132701364941583947257310633099143718980814735662688867861393382461110994159758614296557070113763986087574841528054353075539359353849518444735368181037983708252863599303028105847057523798543804393822973774163217781212235234763994376669777175291878028319350519337767083892443144023636536885641933253732298838449712205889216270154744182936122960744399806924170610916180860560441306781276667202229841033095153366055288218196726231397136694264152850800222473048699120327732490378530908369906522117785717165561791895116820456031589760188428979112944318562301505495770915095035897011618085507873189163484649979242807826544619841162253682613549594786195501612451826044851083366354644550916925711427392900597295440973729197147478002273905141073714132118331702807004708258017061917694936287442471032649638466487123981286371779807360044608650053901623625559535983607751902579359296114631059651725430016937738458934132745659651049420785615719598246326227341855658182656608535673187031310640902014600521705317442702900832644081329544786060172346721301858695238236823232656786453265639831177063424216239840153275121505276858684046499775255345995907126156599348789188951862734039927562273500814027593372566574362296517650883397500589173521181279829016017482380698954882509540414605192037229168047277442349692844038652110130050858319852673784960180969462226426389854830450056616910251152886713427694123903556939210832317807755934683512428336356751539884795942875732992844576252941891505442615112951423659501230402699484210644252057281074821127957729504179965194884867972979862092574355436235830009183476961849814882417111025043540625801276098979904317581614834402481347117281734311046394010065156397760949617113911983757350056715341709313393230028115517141311830435680586781694838308920375110393876167938193826418220447695737931006540964737703217518269444480697087678274025036178203982917502873623180289891598197104302690802588360956882119871156145429825340667106318866764563055996475213378875914359830324655311296256429172112379515009771605059530528892646946118677402968212517520957259178686536440983714809576109055419890144761990463303975396444192234567363996801862070840739954729619348397732319488894696758171148673919745298988184203974489613363950823081379179380943769553744086313789861409381740895307168325588968837360219432452464463291652615336039259429054062784777760312436034751292566144159411805744111197516262020702188635156197323991437097383421431643949168724839498717039077820207309380758145560678187008612511155041158293876217270951435338172652374086519378835322718516129716842722801076439879319757364060884663204067942390728173270643446145208106500264894420939630695861715834684743525139471780833591432144119590532640531611853322839128594289220995509164254640470091297981222260762539991723105747865964106030797263390515294904110535808236409147064449856306296099589148484926629816043161906774549270510957397124307031015037148193212974026682833058032866982002785789343345562941518802615704346956201566045688732673193960124390531522337293222651118567857241576740287321198450732947737318853324672532468005498141655413699769323055227365093117945256938198823977839991560727920899858246028229597469387521383368678176205722533450449737346402451740722068753793044103186082860692908917049535274986848784198239250364808707038327787137442851467910079677171151118151108936268326444752433247166867475228401175108902289034426461778849768405917716576858183064134716554468280233475273481826043809682429533638287293586286487058595915357788322845009094780701680931788824636337385547779334646618208543956754442452047232089779164944890394157419147782215292237972828855534315231608887865344260057842620979668333416725733537693147034691381750258263348086871812908854318089781783601742872898908634292334568087212219366466656889379481777385485238958138781988791499170353187475944846205725822127688988626407502458976179969384365231561741611718874424870676048849031875208603784840997461466472436590042357006515889384693014960731759313837846246573464780134260158589773836299712209013373809093209055959336884332981262480134959001829538409010648496285800053394696710815180590096907728382902437063335535239157822338067514477954292854770936605349429873002709201604322758067641296077217780178153198361681363360045394525671226252306160979286037407849060428325455280257426054487381610391370101935281644276160165239801698814419187107837713266260174613234685060543976326237876504324092300275303445707780655515780747990737791605249232611644402203667045404176041470307445191119464024938186312167567793285394093692208414914148255919547523187642414721899941421084382122626389329037141400768817236514742233384200888250917554556283866728314518334053639972642089618944268295784682853458595827432057224143398732887615580795359308020866805850030739429805500750690134870258023967667767296682854120181855232037818388919362178281476052902992590205141073723150303735802634738741927375827567298560826714259214297765974462966418635190185473301894611077944597473537740854521504357430127419051190444254838228055622486774107122886574756122094116051848788555215224830586228313870355168325422949265520087410046137249980272687610952085693036890887687761537216498591892640944927454721840712742630701291743662284826628517714284322251488925527156723278217612636693149840478692583739178473465997087284388094205837057447717008644606771184290555177672963978198555627300484881350315618960719670166481858732213214870466871098113667478061050314618446038357461375639407244045855029674679994118832473227613177243813873193893068890487521086076492094543098790176540520732284775765124255686574850591830785478286978584815120506045817400611799556562415249426540190258045069944955038322337279535602913098269486535446242620745131789197204467141294172514867502242271246339987558476632378757069073340292367391846299634067990577087244228105687468980914672260605612990214743881497604627153876242137092618960721485313571376570948430494210371121142312888067363140085775032435670104622277357429117162786709394926696543626525315814817369465584835647713875408744525162174171548842816271410100027433293831110054209356530337675451634924669038193701996240796841809836707026941692058101727028058053776243855481177360488606867620546404933395276144157041512849752406659558778435748627009720057340062769976219043014682080208798031594600181626809160251777060796311161777989453784694257966818763547664318860494654302867128246960087089371359665393311800718549578041522504922437520836596898945817302730929727643614218719943877877868291937387697435003882320642951195281160029847436027256869256528766529011018559220567951878909951588958441349052690291542677381380545077413238610741839990123870077129430786108418591638223091975010568356049257581567637856696034221701234298628363671955786712344494613704415237642055379643107963339753877206571756536688161528709236786907856230174312626441055125770112048691370359896926390387303571034959393245274944758336596014866151907399371754476446363591167098957984608192147908805763970556153731815873245048876467970958391273236634659871341554218735439659135464408934855558625768204127871998031800076632372459899732131794456644075293613175633073225442061483199476659572339751210586795724686056834618234193907878361085413541971595072678743658929579820172776008911641735426747165824365166522661902872640396362001716282656130116188606482171761401679784094399552337593448222948024943760621457802759590675965547190675243060571846184393824461640484904827435403067355501215319048378756993082955569819996652608849334518417426374955878515382505446064635138078446953816481672132324112520284908159668553537545287888902879573616751344951824127562910419334365319919352723695896421430512436179137111760508202865291974781354989818363422378405591920234803390501158688800716719440519707193653229529455635172042433174564194354692945234668607073129486689956289295125547118230096053241361296612850222759127393764152376934381621855742105375623740639042264427692843052039304711671814103600653453969483478339115450123426776402937488847923349748749911284003941074393783757750672060349775298596222769515475510136965045367900632501442241382979796317603577016055950252892672797640890768437640827603845697761025890018067774674952986813705581237485532082817959205926887174413566831510671458129224075781165213069319012685550044404000509558259975940135633255266540858902345753509124093279907741666631581221467822029700823385326928265769224393723699137372742741121284726725358346043578038110573520985965317040108568757481026732942687598744404904190335687024258568421579133983802026326353591960561875180837969551471492823786452032087366278460890802285123291164170103662369852187928277286931050524447008367702459012538174309278162028906565134162756808229827472774001982517427454630583317707767276277826687259319875689634630756230208195011180998948155234226865888173905623088875789480178107878859030425994502440709023965752656983380429290019059238570247857841522502903165594386066512620045801414539784863484295976873767131542208249822157098266271140390808156105388965021086332651383590124315190320843103899010139661564593363404961190493807262445540981400247814453166173870258473010691998050152643777232327768645140868443706033288906583487059078134656012058675734693383099370255175140222473672291594959307147131512084085133973844564621859467448678284668470275733175794041175636153663483749225032641847152368694640264840934973345958360815305032141935424463664133350967187594263605326758895744133116037912090639435067366567044068590390472107738643117280157793874927347876026673209927234107524346220806016795788088468245875539707174276333791892644160763787325243522730635087236916699318645272501095409153836477759115778800152424633282899889857428966866717016936580256316490331046994409199251225632798691565351858305912748909921080434943061074680268437224400618992060283053583052166270917080643509704969625107036875720619971159853243706153489314998288384868789448297259448398395079071996747447186206765972351016988334731651305428109306647199839560632361606069618843318722639566613974764227619607648521242453798209455641564177583260405398554355861319521944166468310265811052663739997100366776270017460547039962758723827368789494501567714092153849678684441828916452781052161833633246018743123823028768483996883206352332765770220548483018648269257626113937731914471776296656248603441793141207074216484056658735190711817165447388437777682660508892771261681934785694796978892805933119216639424837805326381631572450941382661849479598470599849163374980502167483367719736101132026293918134745162202810420355345700633571592918398429444409233542143026064398754875422962979724155232851658858230782278744803123405405991699692131806739862675029036297354274728985790191787073560910386424402262191075699762411469730446761771901540713542562680370381045876438355422569466009957755293234738008148784551525273813398156531820814549945654046401498824277487984155543439300728133170340188211878253239541872692327600223052087449626685445838654182810801880272034697354951497359096703842936628305005174476062301082714590344956600867527117715308793363734891729329822964058232892177297228684870176239511411885440683293530285065401751400939971727076638481450903722878572316935627183538353732581673784152453429625448594433192725465994608560542000628143953109527331376779040820569954109708332798248583722008500498109445569102989688078862926366765595922150413125026096270542038978020178027096381918289445963183254931851189239339939669225214471207459928817780109329690159445982893545562044745451891721453551137815095380503761045668221253366290206004378299566091544881646950118784164438097498235903415065547003634249357361997503188393281804805004042288759066403375995758433588529824185116774400787940439728392256780801626287070058528188215144111453339866977995846419237213548440148554503242532812002800780583324574138916806945000635296562399161710582951914717720643583815885453172399303138281946001331446953925193889246859471163191382386744724164051490479940728675187409401414006471005358533381436682862850983422891930669156151523824955636908808893566255849785205619524110038377546656073478326677881766711034935429144317897241369114734788873715939519569928996725350242772987116130103611378413791264354963017961093137131764544729055039420197177692694327596020824255660338121798968716564605123570740897627315172836003102749434062084559430403100914184694725656399418814311598718815360286834064341288384227405825137218465018967219007717745761233182488659053781660193889620242102433992257078197153526526781626883550166363425087600653552705983678613571971795988454932128530752390555440110879380608189015878918772644610805279947296451789444872546840630331909143960762744103034788741224891396623899094514870834316320883622478192327859107447373535831625690826380263890562890766151652234609724458243472065081804398407637911375744861034892062021370642399490025021790291718142807961055202647056368701446383396542597316736791834637053626798121911917601515812032089134687147599101348914112001955569660804226485311459716571089612794044059031199222629605665246083611709746790983602855446748589457184499107798511044940139284567656209253220815219921772976441266828208425286530136580207640470965646470396028711632929226005605886406547235828200387115997250530909652460612733012441494951148111031569887872686469675456326923014667150874621432207760829498385554046838801014827625813659892385746576732802693562946047120315618723405654154219337983392019306529595286066707925101926371811636729975876558592021733570588832305143388660322422530207357016241248803301607050159398480852027565247620034509460184747643858595281620968049038965869935136760695072328098424433706879815416228982615874433369440163910735597248516836277294189754866152826055630484941945484140475619204572952634821890940737585297377622568779877029398608401612080667493409530457989077139879929725973914286037489242270998295636341460084173702224897872475794103869467293614840026874031252992797779050491796335222130298403577491135374967857383392984633590473436015877627860644573388511473461939612467113433353501785984097241738647017122500819791022053201788768033612235258809235918193297019044744063423791567630905304167702228884738312306639072666048338864284811541295529324140214310052287115520308374599590708839301755479238098106338439966461524072723746645122611381854706477057243374011823799269725748589703826705191694698861262259718679187876074933791606797160503198157396249748022999416621767901699382820839254743522784678425692884428920838428628997606464597857788061280749745467138888144504814498092795458887161548809780219432789254100811646424167315722518360453099195196762639410738797217715312840011342089423223149868109951416694572006811218380794115318069956028073688694604342156701559162859756066783109584185525627547652927627272928159351323852036415744724509609462665217314816375512515465809559200585934379311156417712600416828173297593481893848092044698441030552702406810625345745472949990119381413381302179310610687832402103750121986114989969160332988868529526638199506495037751615548657521372479384413086520750236412175051358965803439787468120108277132974898358692667092900700200268471798152278175606126060859407590587003765948533467276725806349711570048492868034991283419334943221550944655882098740695966228931907759260621157166704599175010331802415212298209029113012562900786648769414131296845788724722181880128691820115940305440059102064226760678938440518992038331179420026835212784173438461717426704672963012142173556184729144815459821856414291469262264139642014299926081250116811539900832433276331870204886548786110180000087766059541385695098404427687062737782020926020876322152076930649540809431827871849076598525314701743433663597585813956503756980493837144580531471594419765481223143698026878444733976870917322949751662453703927148802182851483069936571144985980901534458537772469156015301421908630674324948784033723394777036368558661151575468088839552928207720928419078387345008932887840483848131053607524721016780193258742137393302169318554738595964292576336975092923883864376192083559313954441087378203163435616356982899099782203352840828390730547283175154820565933854860786434275872487925360454571036410332713066491594428137570868155124669132685958139121254859583376161247589363431941837084050900525270753395074305454111179342566314673239560663055616838230516735988916409206773652690561344664057876998768246326704436427330634237186260674200141706342757373733131019112925910583934005849706928833626243854871997521386448390647409996487505856299047171241607803012333530824987742385599410921729862191300446710057868937221108283636327283650686905096081428232457144562244431875858436296843037615580696877068410997638900638102135964326117669555889479119239151997859842057144372875165009528745974097224747150344384287004613702604681568676304001565347132697723524898163529666690255890363604755761421322753781748009182760089987244834583087372456182859984265840481171243662434062944836865454445808892636835012576950759004722687110348199653808466960880212320900698631106615371148236037507399535623201833777746080043305855296206227932468008361877485250438648493608792632264915026981334512049581064860281866235628541463387634409873311033319185786993698030756897833255310378920560796095837016078783648424549801471786531267507044929499991309026239589341665407509735643017251388007189341893532219661921652011865905963250490737091526415132591928601658816747578566696036628130481522615885586665689179791241282804129569146252908999470034451332717910427393163061978392234266986857632990281093271072498390061057128544658464248394434539949794224819820927259067680622845425588088306937435959249298430542320280128628040545539322184645100415471432218769049742810160140682435300835011307285054548553328459025310727770798248148216243803632829725705101725840346594105571444659351872501474052264534502990002380751130701199355687488866790604198914765893984237565070007044517785346324691970455238219356092264095950662570988009902349557571965713813782421947992433698852427876068774929593601995510289552416074406449524612235260540471394159686659800155900822034970395608122138319127495665317364959662825510866722453036170801818128538927198074914117465822377849303962224356127438083285117803646589959236009692866013789357481615410378566255221210078205289847589203381067285828986134389378856427282896569714255593115298171864985846186054128910726063848909220506394027903316404700870205930812462329488490838407046655345413697996737686939857848738578339821471743866126215596226975841221571360382942014462371090296178598868373761542627113140106761789580964898671051074136128941040991580658925538809017159802042782231141176204981702042142712759463200831575319425873216600329061292579733520313778931582007543770514757959444567541706226811319720533593820473482834025829716550263370024984507312048140902004497850351838601642894461420158506927671596330278477339226248271180909052685501069476333364817152156805749798842045307978891815686942844528226138002283824189766170015099560060316298508868741396635574716307400816265534090669068016570785613903212884169740482864019477307318317502637836330986434931387294641889040953853994743086938297916275985840864358515943023618449573062744679959701348981594640881084077310281531714819703482057771573052174074958700231703689241854618842483816541615566559068505017364714860893041175178522338464001603917984839927606961937912399983032142081072027693554040746013640974729543090060894953240806489967539095250367687834057259838441679993713379684632195542808394848804847724782932687722764259067118833358734193854029891850823713055916496359103579688521325544648932320010369637443007619448515667560033774032574998775387240681984452884480871141170943035393853353551851351668191872854920700852744459814765268674590454106494513771458898486883222633235084398040092860139650349467081627761533100654558704951266121791909285768809897068493918985178090055081414697853383886833726460761682114515420367215439849825971745842517902259964951599575480684046749154405339697129744459186449103561484405634296627569415641456076694827305061079610998139553049286907256711453028951015907600347667777561665534297317100543121743492287226928183664601592058411383443383779476705913371027604006657970021850029855294115491315046711184131524769038016069331574047218001930422042387238856724738308606713849341295115063242210980424176205880459610445188430247438119598299775014388615229238228676770038606856790695496423720786798849908671402382207392727133359961033105384244474385878009316990780264767514974941877688507567798142624273601083223558633402651205724610316212747851123127854108575008957427340414058716203092617740590991630927873873976238232240340746150464446227726931504361594549498449891388824664754623524684741161390895259198561914502958141145930943942785533176533816056854581228931251328929993919490792103096852109184134880359107624561626567031437289061572018484412460560543015357879362362479944446778206729005591212546637072077516784546552443420158699025193275134557257042433211268954643017381828395409410221520415672825072958216624214852288546159625307610138302281909675733562005937899985560727302388948310489675993186568614704848162749310837751988756943254582957559673232630851625242182535513497518648854846585397824039309264844849711702664967723063342415857747878872324169134790860820688548903907485070296043040553867204986669219807229603050079783377351719705216699965802934955411530216313329077118863054216200130291397203938976735529070604578114152431580560609353876890649964295289325080263053736028146095479405011249128611291993102289603252657714066411976151345400098086219673225655663931591031715095013613857233309626431135348577453264406172426973708543017339132067136515774524689873386138379599338841331616594545321124405146627530460714496889226684572515456511038661406950058799792819493619155156197903997175128967309583776461076703426209384890865929884697161191656838384786006414933222539173716550369678654229528647124711798019927192223630004084981574200910908197447258194223560432194251374359552673625032858132065913919865018598927436257846372930465470487540645958678995748237067700403807501604450727813422533786628698506751149963096418955495335472332688107803173696584260747115167076775413183286433231506082261444431412566901883880648735858404077141402824283390281873621008475100900707914192056321009744815574910183979550470333239924693954796578697584906713989862186150772495467419308622831869006684576328951543160898746840000980509757126224748678022260256587014112376446350838659876569166607929862588654626376021153499833978760398353277631147571795220547704142534088536334955479288397219865772650459269015162803681842665461050132612876936259296015986515327391993735399749474150492402054575772555480405877172785834405569260516296341584415658711662380136081161449934348444563838659162370531170592240586544973878440339947953533741496713603588181947694719098324897033084411331416373210854693887892676295244983396699799957349621404295973918830284647300846045468276179903162346405270267746741943335410231346344743745670698026573837323158258426186114428369257997878396002735763021664358371643550079129303831968945788999873268215516007462056325316853223911172367740714896318023535146444862768989472557374837765936853685775242268303475716841367230457576962613014905730713100165981253656679553835052647776417216607332372000593733983306504176684131898087470924230524817966300655876818928511215183216798426773180461216693200189103066262352690015311112434281404662258352017082199230873844959119488690377176744574841981385030718347726347870558054990648409902745012495395649930250746938603733196734140256079755946917085797445873179989377582679931644704454376222033969236376191334008662527765435289004672075428154015425296411143196765026698937727149358091742598862121295795853148032160672488421332256909902356054404126421855046884217833634860047613815081786308909938304545794676337942167726286527024465997719611650143478814232048480513505731735930802039769452762107756993491945036776876405867796676864828234054154669972178005414818221271747939902347419267995475637100754303162117449423037554250228268607334672977733181484569359492322286666599980777033294047491056243839378412562427561271563097586026559282896231656201096953232573268914466802377466151531396924130419619698765468157888027863933695150540954634292859402162826904483030177174055035894858638972947341994864551777362743452420725781139387686064960768705779345213012795306187214828904997705593945975404430576800103994846464882823148703173748054256650957774508378706653782478367280906702356233224041651731720906519059796730601955893102573210542914107831091862972399940703830015971700874987931700340441971613863090258070594477433290327307081018392412869349674338554763477219078677964629450349409925339317068752818450501093429490237452208893548531111110168726903668338448390598583619815758941676995915821065030982517978635830114372513401267658579481405768094688011576808480569431705071336438831825988155355654216858366618193553172011387590320257176758958430509797460076626718514539554870474319476969076499641239020293427559646381161391189320011350306360126391071614993573405547005206574048914622094209596201489973939554366099899966043994074201335280524313090127863777877975027004687938155561379505167408270402434779670090910969396919985009923663239157622886622703295387877823359904063826613012588366008461605340234625634324470971519881341478289968958055307571398358115536683597758734098576478535722407305181433734834103072446809281820986380101081410465917217882190683225771657418939127138861856371732670542642755642368037190216914297842617935845391095976318956962217981990855359597872833600162570257970276431309469356547702497296927087458025060267232419155159275141077575436493266623527462431917487308750067376371302592341636964178424133977288304296862686642730936804411136849596253307333647645595946761402525985226065519334416647442082258290884250563599771763188938760767777307576275243750434778594148163347679766590118718503002913826494886345625848453043452068070056974101156922901352732765796313036535710116365747595897335965645780807831115598924150780288036190678008403866594931243208682899387420304758452916655450413956595887694589911964887870854678321177298799964598142596162018696028325575068978189876017276238117734330811312579431709384094368831266395556266533139884100655133356800903950459923093361262608539509554983266000818290931448233589722005554839274559600298953277086392720828583982882848495458638434393968094719597526136133919310300370717976501353044234463251290302034644587916566566427870519368201493901256351907814582037661016590561046889006258477178979113250062001038202770711321712965175345896859353563091707194756822157314878701965191890787221803831032216008672794014355154352751169906266115393958210626279846213433086176672941220790560460529477473323878993011801997146387631818833528031217913998742914421727320049179183089490670117056082628978904276237700276659893307216108142186738426977874401386073019093535771676079227618236806391007165923142895850490353107636866814412152782399648321141811146439832138228617265938472418387577513888200754063427425023183566598591817531473042110144080410243804144017307282487361987914645632669169481467461073754729823254185963573226272539656231972262680688756654986642522554436197479050156847203548663162181538673775701210297727851029228784297005367794873536479589695108786539466053315132530376431432519443712691488106954836997073543519315336858264265331017959321204265813734564686792761637916391847580152234395251040562927842781482328947894514442047030904004697256901742212917935316817938543876607142782046176212476444600255085008181085814673185524213679032742801353783349729496440543384018051723469647599259266780946507037443357376063467580256224504215797424190033267432930656102586059359046864882344122897657335969531077343825561443488317174882346822663241317990910214075480178701156384155571775316304876172346592854256943474446222521694390872229823624344475717336202043236807990183079531861207405227886665881441372007387135299395801687761517180720901838531453714712862776236833012223343258632764970871599729097760659547496684916498849947887250285831615879906523948872958901323505617322110821614750404175895164509104911363672694808449967808223705145406693121558001524570340156060121576817974537729271770473494975148685489401104889023520834930100934485773332905774195715426076378332945882497915478388911040507546115391688966256258017400819044488627916046617825434128006859338399136194044055936393024616646275880682668213178321667563223858773600072723195459811395939497347575673031754212863857562814436417095712170034803684355077695697407815793469618730095733355674023940425393835790645181143457076253934928801067635322383217915694930084674574794232395481196245129977405218092600680494391859929790785353045386576018943479972675078361740739429135191097124068496602995084802966219018386483495509647865201889357225441435236268174323069396659874423327086502572438058360350746176303952100414365201914351416066783408501447521936371164275095882526257557588216102900264577791857690073793981142427004576343276260897781364424806279958408575627136523854301367724720681958574342564486566944916061976606267032296478509753824627881104834536739054902496590230452973972398109272294365665786475169893981696547753685885069605642152653099706222717273038570873481339554758715352309326117328872131593250039831478359116332017665858136269707131332355399755512951934686486895816540289510630322019253589832938828447605555268969459930170151627631392796165034434868565451590997818011856924967194862294311344687269748439023095518650374780927756802177640656543840286110175875301813225698732766636979922959333325938119186084860384480249852103764876253761214839997923209294719112310419832257807402303752726040586996477779640346090233237480137510600649256000629014924592196083233886573669951167154576823809772702401133974547526588720520774389229056346136377258784169809955240090712453955363862463869048880611961727240328660742812144467155845817323691067538650296536300674228986218952189855137413943525167294548793748167641005722194851801384112483963864856324482190907562949420056435974535698499653400126790146139783658479249900606116214855909878542487969585809418860104476171535485142659139663782172731507466838901786224616089478527662020081444889137605678212899836298327485619496244468911903975115905583856141046618671190625080486075891668695458026334085119956304576588612121190051065959092453706338323239528970110375325843844025716627265732373934796328927856859795904476471317195638201135869393542971873163989730802588265450681308656622193696950887998329753870339983702365219757050676510670190545702989232318171575611431023091556080994105072933273543160930741917469764472971843385179341748977389567171303160615804071120908271610320250775451306670573257229962971638528959995333348293939726028159179542581973693135586641110374117382271241705154412787748159591384223819692157171733474619009032870027140732065522874955994638050368451935258724971340620539625295007334978114037454209711617982990817720321150277161088275143887357395418384174968593233549364404053335623832271241330845728015746097497712595400729385840334012798440648850493485730188653822437383182059135061606238024885000511515839942506404518219398662801332573980342435862186790607168388081243664833019195392310227713533095762204329406738420581586328319858114786695125138926291174932466867620229112705531580856292967342635746138136356568276047381453719126815774153479898296558503170366033706636573653890726717769653270296841164384847491099219483959382759648031215678938978426774824371389169089940082083665316488187100791595187501745950397301666104686340634768344791426048818309694691924811938034790473184493210686968037004427233029794471156238837144701143267805071022486380345916355148227834663285787134722416377398567767596462547922334750442496432803597247475543980795823921384661657362307233060616911504329929249210603516920886361501756753186771902041383961027097053945486461697579519196563832443527989444927671104805683483511164507220834695410218757527672794591234718333605115410960753948596907306092921793802796142150046201365837753175413398154290138566784796908232181375321620987184573583914771404383950455530848528511309888790767977056970388493820033281050296129499962491919336269638832221057952457202102952565760373170959819747157345429905699052822588405471478229211468657365262864219742599156011668643574211140620500354590598181140500025057938539448895509185764372832040785156786520414548343492832616720921339173093271683410955938610102838241824507354845358131870038758706248479530595265236251207814546912158818910786282616397346976670992476044540716596783252659497556033843276650069145559166296197675078646880037219403382538003679445471631794366853657528425768204714069278464565285076006830921966184472545049361728228491897105691495041043344837185409298616281020448968372310033614406587219352921764154955765681152302537092537372737012132751274329067870491119393880635412704788502084128587343473164006232885646996626884455112158230575513303534947683796154776414048851770442016788429031127033044287045333164015108411802011066531914217853776436019914693495110533086272632747112578129073139548899206704090037060335093717085714387136628281134714514496240834364477851277765066815616835074395770068847091787169316858048270258272117314909881330871632505066033433411794938203738266937570588687319674529279177548820214818559247205784535585948785151702370570386915241376902606536768256106527209283650250322805279832612281801955802582369793303281725331780535179258886601873012193955540403559707944584110366237496319408626955145415428008513123739946365041172891089042302054927030271463567367413223671669146472508138761909529891748029452217020024412516299464394667918268998966563102665031789704189161108677854442304660880204329864177234199943319554133918195628776984672470996092951544388258954880328102956019537355336416449035482467298447499329089554179992255904512649544483545215263987762459915265813223182127182193648116770562403351369652224744964213883727439497476014965751765459738417887159319525706400121168507783468483606790341494932455348636928516414708016129727210709564920803386227661006445513384868563573311107577328202301727176527258323368666624896605389888864939775324782087776785428312881210197943815011099967579289173052696893325168176326073959215747055262058457757066304433400541245419783655309644090419358944449957599750922158716942197607400591315489236764766782655813078872445320352530579075244246619247941034861545184363479782981885236400138772220014717011850136144191720379836191276764476819252699095487263143647058816673014942791477313780052537436112228804546726589671548294245630705961028345548595676493310435711827562529050678331601156311990765927966532457354390346695959115659841912790785787197050197682645768915183672921026991004065156541897540530829146586528586272814844245739088843250465334345571181388260916542502962177295780355038807535646253902070346225772934318849668338407732043634154426728737773199268587073899286634024586672718794949824709508749209002712360181901552786656940623944161256876049584016082173117072742528038741786519429810840374131642527123892360218499142991281646125933712383332406799857943343938640115203306266142677603146167712395022832132258605466605063853837288769481716183754598466472100985258605540031662835458991893294264696420453097974291337344470765236674018949687950746923780236063211110966615652026104290960047054023111039399731982049025215968127741582237262782534389594729400122574831188412695570850506881632557622294378329185126546776670573942083829561215866806583664827182297325942213211530984296687670396911920091394606845077212715933466850745358276262208725404254896277024167999340125176510342786601502055543824215064734747595405546876070840845359155437224439741861534013837625293865355553967958978029567119457241115339054059306548009729957726962312727241587162049167184879707471698776866246996613581871518782346465417850524798194804521626471010110283298945820557678115852620054806545796187868798393139002580820610630729827308562216089217639472420347796454584500407821289762467287806181492714322614138248586731215872558673912426121026608705450922669202767351925174530633024847303774227816928493719357250377925100474858348864668673582594460532851765202271044860924257825024633919229831771608508326472748985939951283465266639417089841081483579223025695497198809137312451493786096357903821256923091894473944664666828526215910542667738666770968788247602994519637926715625522060291305878646135590462789336395574479536249628268891131484192718422679038966653080550297169149813382143925931031152001784251244533362366921160498903445532475113031807266342764746302977387617812631442331839331136469766295591122296962386584043553827904379501987586598371618181259136521274303434836949757691134366730699693663104199125261029686149553715291322498537971859623934128241342142448403108409039538185887807683444434367784211620746029695469276362181345572526856514672306184168906965584867790767513316802666867815563806259307608370141835679053652176740485924433470289034656606902773328785936139903873062820118796219986187218713924502867212812133578094067160298672777343236743278442013537790419510537936295619759342089207451927651414648836563550877377533164159517329728475259996003921460831711950689368490228729942358562284942995161429751672197707782407432986186419276182492020039981532796045849854646109847475126989462045282651860143443862685679663245533683312148117475651823345824446735106210571924692354446340774043036757998598106542781378812691236626571889496581420414747319701292992008022017131265971202143376306250231705809096231094656357790769074824479753647482215859288098735182299068519387603776588981218949428787543877545158553058229184745167755747231192915334302444218190514984453374462278398310843577724528447124868132865247709753542470875868933530650106459212260709238751102542643277474182797210309975522793983166548432301350435309839082712892978359431257301920144027174900263626785065853334981982637827943090389961765465042051191579805607215413490887942172907387353376372078249006978469313311316123831301493704606059598546748640138917857872725883603319659250243781401445638654746653261711902787299587136727288778155441250166688711265929712425578628771086967556909488915502984191865039770147370009496530680158157989000444237793811584633714781340083206226139512799549212704705367155697973106714146287667206226988296930300631467807566644959996182876114247719571245802241364961595966969680661299095945558793170620243052540562074377177662766874011536697434488252158985349187405160350911187028453573356205897904999324369095669424081720804124658816989970083399046933905030577333823086156516955166332260721555225449661546512562227095867040173955300275546414226629643369861133754088764262235859713021484403187235095447910359630343746464555855478013563331000345846368411695955842661146481703568165537902727374207812948365897563965961731346814803912876671988565634958468370211235510430950481078221693669568664178837024968788225575269573070683058279130796721068275137098021662470872608294709012060128812791224371260882575081617387812397569859639182981434132075664552489387923108322544475764493358061698798387757613819332073453514021097691896559511089409950309270639013029454251936899218844618987265485921224655485519799166196636698327774047901030055109375000154957444918544098256085929791574182777114427279256963458090024794505988026916573950656790009058828658227584713474121411480572472349393839929595909101695376821248995706091869460155526188100084768044600006006074864067877659814963259640458359844967557305360117883102752117524529575049624446218992435044051460135336692050125609013083864828332082053136807135207494475760094845246335051917363423590553153094891785503872044616374931301126710561191001651900280096766121414071644498302088332378455463335733275128771875427717504508900387872733822101475788515096623316867503926296157680585497103989012191907958902502882759742122304968176447895712601349745672143643378623496084245110810927635816878674014451428398558858816495631777638269599314590671128463369395956880689969887380743822006342719700336321087802828902147278559459306119770537332792875224617679006354817810728574803120482574055564659836499882977185650338421283379731529376776849039839708936634516177230563187235813024404860878293522023655087662071287190190993325715448009412034537954761691946457564299228943449718572070033398324299173062613941282038872917528079043852038559435729744835566468903313731114737649548668661319404209339772664251357575450413731203551595506282579590291101636606953126580280453827864329675826436760684956504962523387513785297509053546974945189112584956282583736807332972443008158957728006156828413669847826561783931387977753026288827937618848706591905014338272359349487154880167430780531981780708655104439319290656109140618014366024626057487516900740580538379349533536805831237288604342628551452949831539667986789063926798452514624990297217610889420139255008861413056322674178685142939223725592880614908774620944675994494468047012588130073289228153600206002812872992520603011210753306343210430037198217087273067083310927794531909230240444169372639112825592411197003147316078998797321299690555591664342196153704980548395945791559634474438277191079867688760837182608437112236547342004122202126334248218425150710326693627431724051123774491498703845692377942598577670716223929689864434873660026312688444981723607088921816524429116158588786490099509421434726844389559558304912083836842829487024803738797379009945971121532881746233955444682717252565606205019942799328612956821395779473386396642841864166381614356897050917447969497416200509582325155957460709446495491355239799327395781977921356198590624715890820720811222849620863847541859248485909989071294177349491546310116003339226622196082884962390548953636677571186839766783024562593171696167391366976695375540765959052178515019097048495820571312477121021785278319872526977226967968579647495101449662158934481322650164155927187587743925155299415539680148545692235949864792801801077205891696145389948577769334766836075358237961632700559180296171204261067312830296207362552089143044928267748881670017291001892845048649052566941486838169388062006380433190239175194186216164530761089612758250004944416318521206087831611673544399761628772256879466916801829012581097469871506314937417283350612758008078299193459520423111495867861584109313990358044574292876790821260766943730122607217590830164798594178338131071168985813883029271525384148372328447714947204900095171101580354580638681427257222911862537952568139490496910595015334048467923085520320696961488826316165996351498574071391379018785152325869062248291950138628420958584996053833656305393198655241611364054418170332763047827804148143591007800080596708133318460735915132436716474552575378280501259932276822326524465889788870677635906300881762327156154609714593403862655034932347195651276161600394738892071139376844545589196865664660272342875197998979668931023782354336323629719147127169992425684039420544494448918776851146648833322099718705509950119643520539278874577253443227422760935979337062952739798485479810165192221934896485821969824986927863389162597844997820622357106648680790847385431459623353354946506627769465123050000641938111443181500201315297720952902800612843400182181425457892463529560149995812311091827137075952604981480679840338604857977366130334783147640596377537549200430465766154448079276918001843161941036461953643938575609180455218076473940070420895798755603220306397442392545177788313137408828688379793714632422906411678973753895869919860555550380161686498286326771004146475991466177901776312271444544707970924066211225054665751583432896516368770948046607080960465780828175377166240832631449304651362364133956820905679733986206619494159899378041922594745955621169405624000739923580379277504047056191836309216063677236251950420569950900715583156447324797176598778989069155684801877880255032669559455439485729433941741285563014471163329348672895257390363898039995991854870571675731145831002550988871044485811387910758284639867610821972986533544255989434157215213407484391286082509545375754609568512800240996147952174905905668272281242830151816225508339099579706134943370970268009655863439180982026169840090444144971431663929653350001138900791203150029556762887647941814555101895394194183493299863968404295023314648004591969763996459248500380233776083403683640476158613858159560726574582768979881756687161523575930159605240185877443917358579298835019576621681149984961748190924001028050568055850593385997878621360909592908708545641686588004834830448245146796440225914580723374892745438054621670492098290639920182364935292217083581977106651948570454957149543587014170650994817612323114902297698972279750607484710770807336563014808336525240835657252036997031643524705030020732448715455174706851578739543444413091259532255245251053508063722872707389386916087722909709855142540536594886921563087250511199723036354483214970355505792982558431909237316806241449679547252870351628364861087260544102373139540294428081440038127623812693185329810741079458963039723957465563690814271644857906572390663669695872756391784133887673709273226300338915011977866944621930657475537366238408164590471033377386132413558249787062412850579390562481867819870314131553319912557544629855330825334285266924041563445492176035213193782891576882375072174578574493556268602234302220873430934981555793970885228439148673696413592443353709565677553630286119686237871615566952453812835959628571828784357947269576258520739958302935557525091620143067737079088992395724045543561800158807715671913672500276035771999859285329067699544005693326729224835123377252118130194227087190530345828197895280544523509638018104780923334863916289426953022020337873400919947600385411407465826948226549248976556759309778790573804489799962230268413091013334435295327367684383082990736539500431287925631807794488755774902226976960715408583122070411398920286341849509863131118633650092448923494962168922989644739523174973614678128181827486549953794130974612133090177200545121964761554811303730075084393214283191084996618401243176789606798900286612875379271188534214428214270654428956538873553466734378921720537912911638423133649358548027645831394552305600349510618712445426032700814838403295860622315683600199466196420208181148716687614603089507603395309052659998794976197199500717944866986554419481733115056281617235393843034770598203779792928164832520113366610197913470028174354784282415299204671717276440990964901619720669015410249585997833111203681874426098623620879898857313960493008239352261391559341197744929311770089549269602216206231685392590438741894961217761825723707269818043026245567856806193823634040149239231368304685088202454007616152811815473450271245039554614770615572929485568657111181129531649000599778940535688620719107258353994718885812168708761655763593004148296718351663965651892700658026947947729731791647998420757507669428727273997428939692463352247871229910818121941865305735792374580756712728392164792714150844408929656195939094262829307979719545145559890489207321009366499115468638990075602394947326430171886348307719236908114932814285667834981994087492415023010240882684943521264020028953257954007290943824847180942078569646989353496131736911244565097233555603367754320523008708158609684606814334724417860797783869057584469163539173620842414168794601931374981655869335429128226315309254999190086835471974614086963500298125091944527304464668518376961242871369251055386870182517704059200010824758548645332643284973958012922961724560981944190367819198405551495773532210396178132981925958673189471529302350879931523871501589084356922368748014320942008492530775695906635979729040098328330573172898802963068729550995178107734971688442608066659798575683475315387687778649634820410963563180850706159913495958382932864405776867804251537699095002350984056289521052073102493800838117661102319374404600535578247421785288886199140085325532834328699132750384503692518931912111049889610709994884834783981862322910147043277422012407649432020917900187645954791565819761711739184931605028072329433887570624175206037326768597970475633436516210987928451567006423708619694763661542665135855799324643712546801186966078560767683990532974205396745663908950184319687324776604420866196522309005599472776193204838211644677666129028251629103158081772015139563839630209381656629254400671008100563497284910514666047938485808084083723083935970907241497253008301668186636600215227699546917377031513108532440707751781549788149893948437315433535080423376857266635940291584499204082487854502273524065103626481490503710093670587204850360191946543486685211465210608516204798949576734451033474823721272664428694050370330230697782391590381124894501295050363488147148590943921349110878969005583697734015762537687980891695929147844904790262392502573686425353747918368895779732377304888086116296239697352330073147461497817262149184735032929850966786106152441739627017128933987005130740762802884447344798043993399555811446103348776385154840279972106329801815750332343990237699077865763348079580049291122876479706829050574556695638426177933474390921444470647248429767396715034313725058868621797136767063505389488017597276399047533830316267371660996076081510817858548375265734955138860832768774205441056002989634623500571187975542945824326794001754960647211966254426282141582660055250938066152347702586039169862645938798969963873870590263766741821812984099399012712168516820476876811513493574870396963118187230397165629904944822315817626231952992177314967241831855245460193983745235967848774176845563930127358645825394793347826942412861497132929233121491112940233949818884134636325656849182425212192346260538524630494409318615249284220806701318228368491988771774701397735017751746715447144492863077109393648299501782806809662215106991451833586868099893381647071850414534315319173164840699634065276293335707673488506484930231431096618371768376050944303876739723573925591743542243842722464496133329364229887047150174615833667173184257953881409569479213242179159539317842663604269072568616375689816369853326898214721597640701912454062126807806262873575037777177632877035007861253649015826756790740125195281071437636819800149405962093576348469065938935245449545776949749888566045126920606084963159246974767541752033600874144065620472701221329673715402085235637995331012924748846687756069152202303285982174636692755322957073768120267358846733430232756192387448841918921361128348493504154249892538417277806072123336883547721156513112810720935745309884774161109043718562001182324426008204333153013158543336085091134411389231180459969743034772424013180470299908264246645898868891695267475797057331559696211098890738710649531243206391504662148108149451126581166575503819341214146178922279512074465338362709791421115338194148760659870010356736910293691420812098328027986270030813963812022843853131185021879252014883814321520530256869643471245724339187821815342739505171006113066829168005361719996328535655409061945997911729707188586287602968818670415041339145475767615261487548620234730383997616692608911182635140119362381196961933975138234823743801271223518893738392666677703368765350254440671827927709749373397118976018979316347983056444365213532805943146758663187334467810757538255652194312758340277993926045848568329166055150126108255461171098837082380369903977643748585477590138050586136849129807087513328943833555760229568707742784347336432636520068752675714236684175818238049356738249510930657753155441757886132910144815118220707633354608857488836685796005263709346712466594915715719981649742674838735098169494468385988678841030653572063156183423324955928417359659747433986552660749092921350652227765312424594232740454110383476719049769489881945676948367394352913353169879855999410578042028852951128340437487406389192498285818923596248029995587976048934957168718446003487018273383019521486377638484345598110311716513788692107622842557639618103750304318710323141778736625369973273731442866300226400538302375673128620405764306700488606122984322159318055114910097442476419592679464057715831532421986602382658023005978830809136410015886559529329728686523303154358628484485684806802545632029039117271535175647409160300452641921984689277444607903393585159595260907930646708267846256464115372145324895797816014504608013400432298145410485381698777746755590589288524175990912331219055589447545440912579575911975272780367082194163465022791418433975036790484479217953192701396733214244241499969207242784472491099541729999436806492020037444064004961322204360279060890122685541903084913821028285598942828535879677360022726374079372587017489173020131741483395665478673612575402549687300309412477704892274548227123360275555688300511319837440713606896919551536065033484603725869174837510714078831424944545446751526668747468512323919101983814970183462105120886373896950044362226237638761153392264029361431945985308028417574564839728290645411254882631498059901169592633942486519131494119828254952252102148178965398300420824658531373089152724581860075819004124460048354521588010533707611161480912832745854934331850822381586607654197657683080575311383796787185433808458229660920250352658278509720110187878204659058526051171624589459264323124109956295919773479854250391519668868267060392004272208003822115780098848344401577319342937585518309373254466411735986488215747198591571955936449755259973333596295444507504399547337324289540055479737500926321526838612185062947824832993499924218417674022936614930962200701711920846394303545772934606484296879450096777666624291153519501353383920882042971016709425422491184656936687422960175055575870752843654041045932765076026596219019909266709060753353974244212926398946096124367770308100039755462935600804618412576274831229366244349144959033378948871750316269901583247816416984238650123504228694062825991028509977206602526790668653652058145989339567818795981850457569610673489633959109599888524942485076940765621334403672291426655312118431944139090419512516304917980231423022255013577931997133410446857914510830868487099858163531598121272802154807780371937048989290104181412548041750389109543630333263907265165653222512373911934810782103590928131670477462898204766302595263045126817682267422191907232275701918318006826855495516887226492824622402814393731168130804072540629486063378925289825726512230192063338594879103759338738926434274557177382951580817568500223678635303570604839637140517615358754912712111460760008913833112741999086962875678672307341609717092257051426306975138737493788378575926920661777761825432962385911689560258009986799816367075350390597668847048337952101355979155937525756944679691350255758208604056008869506844698222704891846973087886716560556771694166420250957057019327410753385824112451504519707199636957818831873037998607001420570391312970283259684809089995921083146854971627830775966833972405476931984912524794744213036337459883678520918168592315837565265735225408915185816256928885007390572904443877443326710193497530252497820917082773702588673063281618147069480592752911343614915420283622933045264364870204446922549197262579317104654043131853362338235580611962595460113362476682525464209968600361014391210290104189809313096133190635715239201641497216331711133708700548349099423318692360707428071608588602003704572038564678273547740778632806123118220026359126835810858344277133301734266786927406506008584950603723801855316672665827163989611451457641974020029156957776818125756575752336670031229830564951096362517003197334810714951995709386793290336309958728070593581978782577978424817957077050625199484305837506260290828831486590522336160088075262063688201562961530277702750920286914049185718631242366452040150499816594928813398009094979166920646395354779306575797074043126352409720814877315576716170379497845873887979808049085939455413713146376999382207995665600813807119049989952877759994385865836959257109901561438114755771869261377327382717530500753068230725292573785294507464043062973098973559512649072090508718583408982524981195643814263271391988397287968401411949852118203630683371943015053972350032194000740759123306713872874738861268857453348937666086061324102860359923342776380132823454967540560785199175424547047583184202826141276893570507273503071389323884373258444292951866055887300714541157546759931472052768172855981135600318389842263459234632263592334490726747502842194032455292481871588138688072511957858591649259273422481859267463377560670262107763821088823256560267261177483169139634560475374037966271195935501292062968355445899122308116149191904069351610554592119817649200156716734533436103947313021561752520856465612280453113781374395089015612576174309529694925641112508357065212553916233846315940832292673357417312569890446610535180114196786785136675175037201397431651961213268038814396842672867596882879960865728248250171288211058039797706800016085041361163983271303843267363810433334804585911256988983868063737044270962321916076656207889704967174827896562818585315606359394795542321029108987067607180916259887260197858205066979757364212368947906056164336960589488783422454792698657227896882626184092253430062145463959017692094022564311178782264147752579883565368238604979830929058734320063043083980808298122833905389129856591584581172944343305664442620476068342459456283033650029428326155976010009912316836963822734579224726045994314483114250533537000399860158400871222156370189151670104812024639618686893143035702003132129236527565610701174831503469689728491121121238216753927029109832799638085976520261622513607132905414149606805464200643859517907961999376075728632910348472481242433762129339920694709088182208103402832176898184159207662901834571142128654371548231073838060453160513188390892242091052518036573132353541453375967317322828509140878585671636532434613352086247933926985365029724245144325482341937833499313317263641932825416925171083447367421073100269172132224138532677352212930448725118301732373304752796328921488411217612777959432822640711971036359608915625806857993551304579381191076632102060498785098382929504011185940574417598462195354463184728062231980108747262023791710628191925100075657311549103354406076672903378273498359107058437581124277668711467851339659427926108873822279127683548895358592214709021092483292111614413156622650983875027661489906538102078441087849723368741540418344371338312346833028309665367455178664423500263125300957630735071469542715814090529918426050295012540052897031747673290216418799303717216193780764447470244184271992704737744092736249100764278814675992874379609185504231634031828415199850964319210710301146044112654673760842317585640871340035597873393209152651065536294772043192786629633598041745078853342548677544509358725869317411989508142911149049107332405215035063901122189373706981927473954534470928526119116719841485534509236107584305645648240960956267595537649785785093953141988195416184269811930369669455960960318178152739542400238057688566381670319041788316119467596707548260912630868280059018820022455312975157270375040903541149245121016977723943558347681644273060688032319642872242917687258004033327473936504365577844807545109306655012612977273100251156951713209173161098096470391806445965004848081339431270812809668366600985671036679182950494817647388444263888722724503990119102605713561453219080402568953116124717112965902573944542608325507163933395017127856298732964250274575707274295520996660079794897238417300810511294152608520604797963906039106743242517296075347824615613634751418282625860265998836180667261963741773753190266458768315933128605552626859849576992899948857280213570121837088663451423590145046804610729073712029087739355879035714142872763131305110586569485121513192646079028953261310685263870601970800267121097953272481410716350532216771350023587509334497872041291453138761206015126912906600176771278238520306164501218736226915090854387079359475092713522237066220710068436094013826033606651728260434436824007351928445205898784303360863451688015507005311522768527326218122025763304256630342827851605046472726962564533172443688948754066478863098758340898344416677724792649851737190682454801177071263769942712772616368253747435351929782403219712560097041160674410899952697809220615571683957428498514426181858864882449757754413584625165260205310408482520404056040642445016664869549695640408356650487805340095521039618504181235818964407696656770621639012607652460501941856075258409417945510591589085728802405645978458272598377512901915558181480688281603789071305178088871643984787693931852625891977289582955913961112730199511177263776721473045907095294704357748046359930721653079934707339887181292682405731020095708537216098658189928327071452786030279692720671597058212128188084660360667509665521592116711449049721971515329218896141471734202852702461903401436983228667115617426290229448042600605405444713476653764786915272339086688791180852700494905502301197998778578195174591987946491086571649887084667316630478352971070171184887060897479153184880761930219867085406782577277575114746442788151855552659336387701682879549588230725811787521896490032750171770431452134147451942774896225412020093630486188997446003132696235167936031857988366743587902036345944742025958997547279448399354976983024404351099743270389940141141633707568506473238344288792587352217141564421766962757550402590764060997363605538868493257244538608196523535354695479993404881668977155297053438209185628888638874787836754855534019215403717800628538323096738527288360062724111189901011073170851698069148800344621066429985384840818549406137967205407875381143425440388099694843302343569452542776454604253524579798986011285448388015148306699953901237253627496667726232639246099691024872933054055700117621829482461035475354007134479469831882559950614826614086206481943848854281014492028714621637533519237761929249709688451076297300944363311971560467804849633109536245407707175797403820615915237646136368083866806893679299877553014839606061447473850589267532645205093921031888327906737551758964105650832271934113645300905308144803565180810625094655024750019183670697267414241452457561618513763234281704490329233786571456763953624621270229448937224577318585425811865107330674854262201480663698867900903167297704887771625443236331419950676568729485029381028369942730486875016735022085205298244324568778728357679314677413950346211098135513201892663881394359143092127370165581842886131512704109416065665455853290067608824561044662739981863372770126768689891984276373683446933688962486026326495203046865849024438842111668383525946120669762106056065217160666486712098198153810589970667892415973179987980651007423939741403166768190264926624505063713362423055191503201420391946326243275347922811142197491099550362502032097368197304779793516607415590039097137266761680250320599578647149031760237380324422476310634474648965675566173173460163717940210064683381242337812680835824093649936457669809587810632111534570621278163711231767729857783080769647932255113652771222108045366999367366207179310052077363848631064984220061589524756407179887060352064948607267500119587024297415073302443199956510412703390407022066574504421478558614225778318003221057824206059182095132426062652197220377200212031634215834467616782635140907127968454115306854580897190949507399277122153366856051417996195945874759871046488289230859282170694419309294822465535315329798773583956136743881153658542927688922029358803868436360757725964546789412519746210766426222755973415057991870848408563412310783306134696198179443360400020571114490420645202401252811345589713002964238989801409887781974672278212848124067695665525363906479885705751261759689450296064030212292929965743180806746285036174104400133998823623841202795857641653488504174225569052355482535254371954934544725792489665943562662055610781765477855252052212710518242244561672750579692078737145590960407699651411697771153515374192899329217847303794746080116699208040660499318387341930934694557820076314370836212193130515873991026244831711180206048362378237271243533095739281941925872042386209857741328651740262875039926105135374063899794528253205498251259345455414475872916578155656398437646908630886591568369231913430841274445263920126421435902642210818263134571136556445541352108242159958503300878865363333753619533978041084292697790641225200961932380469160313340878642700272995450536317216880726870991567507903785059128727525207952828708739636740291375342063664832038164019354445813703838193521657227181387987927782598168800653860248857005529498669762995760335050232127129786905788665109295114804281810485082022316336873767956505269787709974156762294893469310430367067156702098121657882523486206611148691858736734100907487860448146013287137704141281436197016366279317913424902350878740728798377433456132947046307399639529391954669293015682649159738561596605263985631861884375806439274166780169963468396271836358390719432526579561739603219382112082605347320279615662703480261853505650249400877508503665685876809083139668698719319646744373176906406692424712694876625020212647685277682942315099903508468048713700011684412227243017272313853199521392645335874547567985132721532167301527653296943119459605665476931771958536021551332979106226751914063843683608489425686137770690670000792052314566430598841265137204567804086936781016056171107514467373240933362044245628020504886945978144930010955501737907765469771158649573256011793982198815250763192033166416199604888346715582596123338767178219152907855331070618078102003737906022576541152028604702006216201411516057799068190867080858460115758985088787276119845168773457446157856730831433243691280869371629149438559423775748862269489616227265013402922483335634823741803031214104668846323412130966120416252618986409994274822844287081465959547188450585891314384529964521923618582611732944701428603230785617485019278042092628625793919350077806575511930120637031381305882924882923486169503976745012686775376326249894759794426379520389515257604872792061454612128853119649316768408938608524940941072072993293287766876340608912008856995961241632573709316293337919097880232588879865770105463669960940797924713924608975001182983451878868319937712889517111426230546557790440438205904366953887613329862705118852893969735229127272643592927415371950309710483649951296693114304834761981538495542255251551707804415193245305115439599414333648173576503688710857492128300152333952280962614102831162792815146435521761299798524041456323934826808189929950845639728612799731854533970497063960655674142500406451094771368024789454411890693540759821345804727585261480024124896774695712372732779428334095414098182528498165240556968799344478186374176432934097392196294715209676898579462592666834945574039725341772402936651622064228150911005000463007217803312697149128028772655927636355732694141476124333632445078623952564250897780818022529222316335584670276823550231143793742070906177791092986262645529104993803651461402391852387939712635099601803803218886645817658202081306194835151289933490238746761149994822601754787939723744092107013586585085661663660208086541110914325533951831568224724775976787492446719540153071723516744597304588634295004885582673646699476926635894711637458277842553092886637311687195802985414400409687669668779901078751763980836841070416015964011533436976656805317922391977562186202631799169676103674201400809341750168103495923863177992624391796448679987952782035454039208384813270122860507268749191334526609537797702058486905968664856836753338097721408871050253116299291515711331353415577643296308434336637473221249189880056932288544420858800672231022190183309576703140078768400036139829011516737134114958060218281939162986780145019900893028562788488531848715187246199935306256215504242151288073963598408728593855401541757631914689155383403454921063285377775605003394559237649337487045205098428369010277564601977168498521566669263847854025994113101962249053911764766346434698276273038942519714126459659121420247982030521978109814042330526881913352657559069491171703035047838680491160256243811993169664920275150200556191193907400527454847115288518007858959041550482711741572533847366322667622461307084400040000125627821721305806376823845990816011900788036345062962573963067657251136481517237582810160781382886506755062294228383817887957079637901016413415898036203450746206216615845965802454674188681049177963421954481475151635271542303973152640676872758759159512415360210427452323655015663717106532653114949046735407454203003177823205444021851067319187589881944842606676412801541246130673167821339349175947373079838158431510409664629414542219867604094317415396895667875027711951547950598156755145559546721770958835013957289477728731466949138873016422883460557847068938793607449479697828664307172119389773022339876216933553675729924550146303301196842350912304601477016715625548885782045676173916683785444986014555375035343525684328829548212005396608573236640594413687101181181148160940508139681882022875878827551048077128682175103792691750381560575513147183788022267498941289515046399519021254843028280379891646198671166723135952964220569426135743284812675356922736186270777186859774480688559176839229800895742729615013220565706238527193092853934362068386468485465930801609992369776189226529165002779902927009517454276097575072352879984557479756220407457371986733338537451960917050327029977745280395913850082675270431021743460415451700558871538188009026532989097258298491763125880310856573746502524770957230176167584698487943286900860930535615986861640658407629287122601820173267647166419736187024896518521659315801618859925096057188951903105443619904787883096303519618628677568419181539685899090734159097183057249119103801820861130167421253472861906636034683417139444478708017925780206339958413112600597092843641223763728938587680241402817364509055331968363922683957234080187171978785107014334034026636144099347137016178476344381562508662685683706847337857786167770449385617495969098958502909095160942343885545412145941698689151354139465108288757464401116425095195226312713307333906640120821991992852976113284761902376759438498928395504260295202788292840698446371711036381826057883411753418670686662550517422520291927679164699553465316117958371090705593178977241016494928926327813191965400963466472470639616909873358121589912018722529957109987621342853218194372422788964991129656519901978202074666133861420667393871849909006888647880465645648373644038000208726852612599141667576274346603389409247569352519611077983670818453668050777409334956352454822500881786916168843474083408058098269593295657641895986816622031885103077505937281397443433378922371444783383937428774699963334809415340733426338664253539704431395264000580189135457422018839171295987644214925338525299497819857577622827134219820972571607226684744721022212685309455555330828198838765379664445438520986635541408289189766989166133558803131292504978490589124634791889512353472870904474080413723036014453242748080159446037454031617074985136664931162940314425294805138172499718841415389735765312008473102207949063194288231309353453206149362627176552310715657227988699242011730534979623408870572005240278923896461442794153562721126935846889231758553516864512775010267508708490044166515457196052229289450269728094343281561715347606405802422009332720107128459105981568549707970712726075360460788946251786589425838749714740004520165143744470322141151653781774286744608973141774593170018047127935650747880913740745471938987700446329277392950328927350039603599543067762168314224906954991396949095254749517514603898184870735862371988191609142132490463594545966491886436444492048322454674723132265647439508053329606169560204174812137999497104846539047680255958744442843863341446081884041156478146796632736688376113989022730203810919272807034827663915023669596514339238149416504727324184598976805085850107915117806736982705233773568790945628675771784954867125616275249882684689970650711827950968457980961804053911251621366667077824673531184442388015128711991801948444392121976719462315700873141034877301212880451955884758189627245744060750418225902282939540586739453638171694126278136287557678458153969173096768896492186087565460772421917135469991506422618038834880229587405482966567817673619102770936469429060176440804982261180643387791149731960706917449703750479087595744558467951752519250610047418642479301385383144702889150353124253306851068869467738467046534542831375143755870129131366850708093766673238077429102135542189260911703630818526705626204276999565719112350113625728152719510688521753613408447234894346710551914514319462920090063174535097156737937973320014494701745533626445095202460652628924784456254934122063070715548525339762843815204648768880220233957315358472922643428477328717352857094004913955884883797152884497055549919000358675024839449816372363180266799828724923561988030207129665319663452407150498587266904425018730268660616856910647000789674022268223384728098596128359357238939337999567641977267424314054249228780271759157786850360962591089518864486101549152710271667952388038920126257187840733793458851909635649613845277495192034597411083664786450299656272809933527015634092972754370658748744696963540716825797844967032303218986062607511618845888625505379830369211569895494249888069063371532133796231774984781300621482882165542154620751598535387740103010357494566939597006342069619391991721995278147893436082902832929941889854841161666042492127353096281424801094794163840930717396911951923508563764417225066020763388178640425500697893154845813274253928561459816475354759329184880233667394217138890627074812405845152530296737385944665134241840216395718615258563837725362786908512996010307514030829393289217400205354443059263078528236162559925194981359081015204487393941800717794830424356416793302139584436098910616917664983574515573882961236723464167929341739537956780055472890727783076581750432607892379764988504928515680950532370240478467166331507226754390413078269866862015166666276127064010496633144177048910275764294101650622008433740186200218032795155108343543824721728588444274308018839134091692996155687668542328885404966705806847227621490091828915273354401557948068320230243692817165202717722337111765731543505925453280062584830874169934777528602128770121602664236723766088264666530704027018674923177187239041211547782521605300042977902293320972788010449912021327732306880237154682888927066313653682234456619674653257666302700118284880315590270585352115373503395345317680328068850770465423279389396936960609008949413854113156002367713535588830146466094644320343231036993697291909107117765093552054355675826213809961877937864466700813248783531717128943185668615428437465074169456607650991840786192516706697395363548978835816128267794429930014484936242106764798146618967163980928113936773037859377318469504324503689070552273450367818543984281391369695271353499478088915444675056692769837692373272214560369290936398569219990103576082397743024440794240998035562540972633106916304093031196636442029337810751987590203525905907140610033198360192469893206263670355958073815048742443618844277041762944745255881814855684987723610351543536146197674841273551564320247906802650079823894224903332604141531803282149017311650002519759451161681682323267783283023487034061843476373294901419161406923022248468991358200399145097646690881140466849481246435598434956480294910385883095703903392457871859699691582272895679378708767749069428950419165115534166375384366779331317439928138590053987185836432624790191035161268839933462528618381493527297381487335343279949225178195357606074086870659896197939765450096481128921077784022494463528260073408031171584929820290019089522864329828710044025634044967183804742417435399353538304534147749221772056466456670471656843307338564594051209271668457963406455307938516347384735254378920863260332268937665286429352290501706571872650278603916438213745003220193972674471461571639262140767397146123082027490296075872306111548493712103018115816008599424044290404340956449502923380045480482597695820344125526309274433455063758264608577618073257477703406594255001652210894880750553066259371142265556559264328591742091250285889074098205847258507304036728727564225416097734001621136585063784022634479621689468486968753256039199199275660391229524991054360210090244158425507292633870730729931209171637518635326230999700775484806010835123089104612009366962438792588206577745436188384889583810673184037966593568436300618942778892639739367989748954441067573442758490186381256601830101239189825110119461601584264067496086783293142822353105301740761684688393303062482847856992705135011539978353007320254508772706731399261032618687949167094988756450496265110523330796082646179299605824138290065178455142186154940643874100676146943602106962318989252639028826177991201539205599875364763029143691574535601986345421058544964008571004640512494052490267921210665517904545312372998360138847938620014555742824317417361356799626076167579831458761944387849666605437416095114030060760010979067146490842699318657378986006054185488697978939363386388433100267463482282209887609858480155387359427182632440678193464492050668493770707528975989822837083762153630487859271311901321761946109679168522811965017353899317665722647115862484701046750894023257954665658728768171743540505779281296536893858997770818925014503355918178995421631138634895316162288999188094178414026091373155649233557166342442454293879367126313598370546309332027700217009262826342907740718369072153146418988882956138652565989646714084908136380196588965541947266571372087509645243113248768856294031164634095500266641887073379177145631439200761355856992689829350188758827151479020356425952561616419652273979676726386254156611370030846362524236473025311503570607540187916858786591267973125925916080022209552928027346142123801662309256706923761753309634211394573569817554509520989695907068538581917084414938311411682897119679068769212625178472130503542131719326898132794937990462750725941089658682497039153358756368819264260269443033710505345477208553187117665973499268628233898949714421881306773116381243002343724513631410036750614309063572004022546010027540502523043841278756350386181186913153307325608361450782099258604343529908501224910108207312752425035660651361192079049712031118819304399612520514646766747706074656838355430531594682671391996982404004667744366040243509105509126192606565635123516434492522787108176601390259052757733820485503499931431309442262962010006338034448729132523910589170255467497034697466475594185292049081608481981832219481996956448033497928882713133532142217847604186087612212271355668072646161946213799790401166628525248730254917702353481825445973432360570615709645926587333429640374162064363699246740811252552364105519601667247916323224026391027775195248859453814441488705839448434781978643493175723813736067694037159682791747475500935161327416512063273778450587059618422277815136874093129693751256017086445377113567113273016308625333188051074982011190566506859734797893314448560435222846754667280513206377616258215399109476089398077209829985934377700413613812003260809002242602577658470232583896843057698271995148668671990342387594504554307319283747976520002890559717904519973842754551598465800845545823276379269060194929562752477986569733113252426703973322688258815512067642375953264796322831084133561090367519341368634209133806140133694887914755113799233168924990946637439084769100480141389304541039294203556343395658578624975339917291482589930352069584636637804067003338212667258272919989073410669875140811821948187175499780408245323272764560011727063695608890210094152653632285249663047859502156832358112396157320676810741551759158558429036699045626344217835118836686868311055056850434282692853609949163119870243499236969830165144234379111640376674142258497444859924259494032215544180670327371590211304584375713870168594154285035084446985503343734052537606639219737100233965966830972691016140369553499428133406173155740472762080216028478515113304698452637221528290032850001053275767071178835738919237182371994522474583218196103617723932289280963167923683845163126724404811215018818033895521150881095650856140142278074936037994196206276740762648903301086403677974211034348578636136990448273189587917223065464238555500096317744152460938992592402270597826918432779691447355850353307406085014676752820186349200607868019345680096521238603368065377481612092974468391541423850104175871791756761022750137026443566871909997791832975627531370253155250356048511520004466133448823303397207349297456627841698159223709780940399318910750865811438074244296958960440943795263231609464690125066592120574078093262450076930320284402719225391573898449454714657066184973528567895235763129239285761082294977704186292666905971729787402631458885695196227488779859528131274841498758783076894253471590728810495080393603422371900768781905155274631559950344169885578337571256304351767843228642021321276452982722326574415380714545444521972718322099657743838467124471361322966764160307119892063103919040454330821643327510310257413791065702559071185983649946179319211262723325799410839102059714996347263048061070216370758480017068235295869523059312453616165859319995496071063032614753112393620311776526985698820813860040332366686158262378388808601522751743319492658770638291788384054856141682553904712130185643313219790942073294069565357201406997263895857474055280824348567736989082680320508256221637988416804707560707914652525682779351312045930481756515270098853243367109320429883898025028109549732374008847545100758449112432320720623803433506817934099819841156986604501099435615281313060642870021306132383626691086071865241164445705124875160487316740915810213253806150105905429455282427377718269571263989345436789608342307119290958818817808265752491975666593873564993042038284782983377858260402486611744009483073793636357551093191715860714078562443272290011275713622056032827300859409639718958244806229085121050936618332389353972928834803195629630105263420569180241248901506733511129919435136305260957941717474519216762557326304182894837517460280957687694856840740790315204453305988307568721093499959948662915904987180937897422608853506991313358412018688197151887233836118694089385428345907035037885937520745975682282646224941670083907894720296467821119252077338483012941669477150519088905215643947973928853917904176530629150300983818107321044721512934090771773990898411573282749614579297148656786108922076736761645258727406897837950343884057744673107161167650422565082603140032969561610183115575482131252899757770537614305775845125080458066341019846093645459084576800507485609814247218048901830755419732819450807582540258019545819435523161052273704110366766715764297822224462585613216851508121256065700588877600835031485299556537645043790511672026824045483427328941986769515755594576283998493179714578158700396874999967144258604990755356053676418580485228488795927058447324048445303650802389172151731993682446905125722918286824777103166664741104192906991983783771806043650933050282660978980014182589048861546248928779329693558882328630064042577484335403136247789971683681044189553542172585356820858946959538976760592575504876537491837238490813493835580785606165009190322505118579000714454839975327387651727874123677566372139667534778730549452472590205656063316626522083943730910105595120339415797990386930096974034484269711310381761619231127016936044049141834636655093818089276761837348590030931314342546302501420718057891559193292188854731007441987639018318559353780434414826278012361185316115513656717439762415801640877685046674430519635031110782702636486573873616463539026458140611324145931748618591758030433902799163083086687422911248555428107480514795625181976820589232965336481101878809428939595632707051629274548161242611349302455877794544129225173949242875741395570444538731717610111435751474096282097032407070754785876708462830973281522095815686797878075220523017531597581953686690730041674911707752369975216277425216971147756788122357548063337863376766589041087442513570434635542881745387602517589100804212957398916381520615084797939947646561527126484112855571886772421447759755065386500829465120539548122024940945620302526571086072720584122519558984368711844021745758436539213020577057856744878500021817422267858358587284846656105182835906203265978307256118766919034854579781773858162349298142382934959587356575620954410072201946758937171348095503907452254369439341593342823232238446602343342260967560332257444967487800765913924382792071611973722237913486098464503360952725888012939594628651507560772200511796360212100026105341618071175895630597968093408247098838998431716036721707919105019755497313500039313401697575142895010522175832202187299127587466187489390439013774385842652948508841398233274804100657456110684309571979779765907904214729087033455522242848207431927284222645055125000823464243904043558577392140830161150382949710442684762048644245166219294334008725758731657524503324347849899469884968973422500210854403379629028542109360668883833836965268757294371572549383897372628619709269629363124383801226452090448752976345470680046079569006208461011299190675316737986216612989251448384370757210368972917557128141545076658796550774471494751854132661402937946661158750086382451704871987267860388789403855000118977300453107350421089472259385455573846406296515035517539262484230964867773955731717937784646725622309605954336182106730663894974032043388369652401221493528222931946109109906116816443422889590738008170556442775584310185417015244990339556224444802167694013122916061487606676067926392707203932865442005805469595637331154081281364253488244143175969986928134398571524566797939025435402333932469410970659391060960152153388391208891043146743022543869103035158945784924814422961295934551016802745521875020458950596713503964530744103423636205221097035831419227856337060246639247385240540267517307392430165961006113601795477214600077159042671496992887872159750307867356787696627770225334727165671621492630862809553221717997845167433717525405958771407438460576782677170225078897523925644224766968171476527405942827909648989369101208625778987586840828435296474110261819281041776805736291348434468519460935274184924687589172276914682745760508759403567281467285817519938531146720940997190570382803657525215628049419808519246599211797008837478033669639981881895201010907036192193026286491689806364210992177828442883101562396581844830676828503126487220080297711349858412514953549295154818991900059572053410556042467002641103010914382781855004496894579618690331439894409331262686574208422629172737307570020552253487664706076471646182466649625716826378777746934630977560995348417681979376309527511501200522118732904055376860531718464534460044789173154258976110855762725682073148766501353010210941052666112623703740163627812324949886976241188929782299286460881348848683756862467531067915730138444565377350274431011980025506592973298427423560748645170124361207407909273463440311604307593949585328836120587120589587938481054994595534246949761807304400648940573400821886814317903016186901844397961795198378785352437707354020889836915502486193003955565668450012267615361347161142755214959210226100601241514775249575808251214842155210767248974250414292104455649965290170933797391406959508419367142995843686852059035034868160280893955157486154230521313521766374762943493567712038651483850161912943109417240071017701277348454094269609238749165114372584552902893555152368379603167131067779638076069311764912579771991441629738577650843149453149385369694925686675090085647696602180846989927186709272332227516646671986933671903932228919696898465538365069874674428715024259279667399450281256124040156385478659355198311146449726121145011160213760204931858415900230179000414394798958099369127630141395288037871856573475611987357861765595663364262743746133693895943524347049120110380025838397233958142176628863971265382581121551128640998038872299219826596009238319629293453229563438009595041214250113205753582453976048911865501146838020148575643556297439132154741349659630852023164700612225465926788643758196719540367567339401810412501046031442429240897677586708452020538275511663299790281215171504990850694146098461700676316487492776133576710859414298350564283756901108544600404673848023631452526068994947692645410016493750645642196795773194922427474816593603956723624636014195163593403244224321936563491633313537949409887995040013889420533493780374059852865972833148177092050780716655584629771396789312530400343275547012612707490332837283749898763875190022015578750358718627515176572665804600631556157471632376159187186427742107358830253232940910555453197158654863786481213291528093462051147173987314798234307740237804729797688356207978137535689871792833279780719902694045006216648332441743974889854172969757802982045337980243476456198302556460519370077760574225308271102551746021899730960531275983299955697744008658294851539071426083908818506520678654300737099527344242222939891550752876059646769990989534766675497604789466376023918637665951562352881095637695697473846500102984463255570917365105876618135548892600851207510959439643710459651459580562121320370221917815458708582669039509293773937342653483623778012258783130577398437154832591634231036846142945025510973301656406950306147209701959645586649908220086966761895706644588868933012743910217346665282288856028656608522602448153350076400940965289713885286631084196059793155829551735833606502594504486460272101518717789009689816021651048115653155798993480276171784972072553806903723052661227581931310868892155109659491285066573680659057710097522154890518080638476700663751569228248145960390824456953422474510547091547335010193486199121976538705581379180643027746673075199886931806561548379569783734182618802935706773917609450254931987639668456027890246580274738614291440424899571639253658628004646700277498188526705231601262260846104557690372214216582226643703761808754395645830320907955184584967775706410748825171355396495274028346247085179261643190250581986341723566632268265893783748973785096877050160656690212194555167390214614430112293548104797777705266025020515624289113201443036419008927258794267717889261754397454109072263544106685180700152477442715529719386213137921920675597277915997727422007061789581654007198076353183026167528591946311937357640104141051880187411946338625062011375202769751353595326567945523746532809378348477140786500438524219491430226923607438031523365513031075499247904634627078143822021031766272023567240888143646544636489708288464982835421433508083856914580450226129138279901732372702217927045744314774787524544139361900894011346503665264769537430927680464970750961725209170173154114154121612562350074163240992355290020628760546431291481662970182046223053010854133413166418096506841172916386916560986809199163718385418189375014108165231300066899151317199620464513473389607262843204800948081834286246575039488775247188287768969050125974343442715373661508311043166072444385791207054114037421676633680291763562239282776803204193469272578859105729786427471904417879955449069152241378959353405193834369292550210139836453963560951947099835260748584973267700938852929628155782395967035564163332950630477780427572423139270949993814756930912665519297587318231127924469460048358470069577705929954996659145810368038226352410289132799389638470758375638026618789851474689653871689670774935184694275537991790779686951119663290154380751222495484966490667842151649383224931257408122907033353823092241627723547023522218559787332368305938812645754988826206057020572754215996592495018102830596479924528308409249124690707821663892006424505268574063485919285637220888573677936010061196585285454743442979529009157768732758879978928153460557717299409339381340169167017351327259229978384270169930007505592859294725042161124367906274656339491581810507198074679644511242355694196622623150863571307923815028496250282564184840469513234002910208466062815402478142657392963437126846387251296645038702765272205216346381145139498094574706965898900645186171494397975554065848079860171023356502998575058498178611728090140010383961548020418983536914650077348280439515572003180965429585310825628458774564972937637125718025796852516000619060217960989611683720248317805234292749493184019387620482660449687110978825952471166229227492137772555963431267506655888053779979711789432451665959734557613529339915280609581273665631036726528104010556062719028522754998743631965477539076107415050764865687942271910350662649232523762328889447765491431321496368833646488017390099003345145691786364716615203372281867525802750249273903386297003281398310477484908129753798626275522011970603514648510277053983483436891895746760012981886453608748431417494960132365597259468397158265366682724535386803366224850734850774632561010902445957470640349534191409710331520406320714897850823850751129307135351548880282089364006456588997250897887104887390392214495823999397545203691822199799446853654122568090157433740839649797920122490251619512876937017684209655064334501852882641513445211313552866445351209365909321077594595503659670578111309199530877611298861079235859931066411456579564919262952367471591518787142361566365830127438601469517201978222828864799165650420300810427899764147878708426620642505108419224673246353585281463674139093228166908618254238407442947314662749665175707014191548007290163221638854832965311399690121103929085577209993546913822751701616137513844018500617950604832136909933086948768992728456817840115220715383556030647209947868859070849689058379092376777244840200302671478895231185207088994033794789656532686914143661485157394473300780924270504688477264990546705445844785810052685962851362213907048238893109846137247160421267558094762486973916780827308957812155415180537564922802233998492457107832327286320636541774906672262572872169856153754328469854953896503084964325209599170114398118658746943704138406329424215837223412582775676215445303827552538442776743895261695151091660790543634281794387918644340310873740398263382766485920569023730757200431130054259366105473269331614217266088164279524065120724120882971394509254264365048721777030266050428932355333453076518257053854125147092284819063958378700875458781385009932877624772521851048337541613554942526188770402840208135786569938869922021992089423283042823424145578588365013381192003520235991736340378546032864316472524602946155429605382152041436324297265976411862115710440999266780597199071167020443025219757910191015074475175932272840413191991380765155844451904985478359092273458292461575837568976791807658561007884255190222606138061709785602666030090080865352758302475236431149658372143844367488245941135134236753333427865462221611567492768451675649317016885228811845897108835366899481769905503246869079185602270769492624260330248591298715021271346542455175322149956815308004749629497993414843257478289501425189647319963517671615650732317183158819005980453350349700038081273144371890642622871790399820154074246316509591980494773456413563802295877772557900923354757545863820886747507559833969531512796109863851158476125038427628356123103541669938028182384346449752687035758980386813651414599700398652358956995734126192333072514569521336003710615972525658863002132542728595328040667468459577701832020532417736560328612883344748221803449564156358681274335936091076831107295988375998420471796049457004813338089589423789963214874287276967035583309748627400068383353646277864712613857524261340445015921421869644836225795947418815532562897325220084301024683635958665642099598303117324637215149216279187293828546097273746723735989370776806120384950099580856003521181545632435534120772465695727036440800189462281199139705857922750767021262039905119818932406563421102658804902804243503325766249737634871783977520009772425362692539917981858801599272402387194790618077727876335953521117988564279198421253043750901110204518176164806151657797046907488132152366140639705991064309944858445228740235063387113416575576141646708064262786513690353257433218704239902055809210737197056258969865771299215586559282373503781268911565186785597523770805492570508092851851225823270496213793472679030819793048880053053967288590592155948612716020853917079083482234636934043017436947329118356930871389486638162922481702663096912073728709994486596469905645303975595199669493954402115127939128648410957405303270815819154867916451776177163654359846318833866324267236035533268287899933822927683957142196025289684100884126548722012069940000679382187755893578668981251161047124800676038026473584132788377066500179980290598899562635710125816627715705057521648968953422232844446655504982590850894702029831064089188658562705483884571080187025437644119443138053351996985172818468808923556309982713742098301668806105478662180921948161757378900126421343144773708962732498767162954348037097151447496016425212446951760376653013485925927353276890793969763384060341265308738692143401456263151877029345083039207947430616658556007162341492909656626170417880013195059590492713360312568570261124952556772730915074918120841644823449873914998283874032916460941463746975773984134656630363478208485292524004052303089567912067634770867243349417080397609750624174207997384257364433522061636331822901596520614376578353178796210930589371668065876550994543478491435422939004069593285746695248077926036778773091540180989044085936836576589484642141083276058454764485285206654418163363915542573315774750598986822655009424360049230382142123951908195739750867216426115382416032207121473811769345127855319634477161738906629351274426329974329687711552074402503955441351945998779275067160366200231373351065336943015522839485015617030355228744806137003978790604540902386843517881536979481139663128560186158424436126055021789539663211611948405919532189495980672719216970958988204780210952367957768828286712123086586923019873163507262041915580486036070260490647616357370776901965645565711908549107381660543346692789489711261180752039313187654057797976719719604380794411486395777079552885094797738730524362810720823382161142300840340413549263663688858440471588730236511161857806939183956604028072860817567776793815532461192946326703876581434019988554248821867806569281934218430338988154349304981120039009394368450285487874008443584654898432133032230651220653259264251492175474273291985022542799362905333237755247320108968329642844824420600655272245040494805757417448694472829805999359121726799029657283671874054738800820204862520061696773541148372945360395401390350166731626045831747972720409550927426428593706824762673570553274601046782988153614109469856544912016262164292700312571378885846239512579129951994341273236006663333723628933785979679919640347071256274281125391029770383711832583856644502429040653020340843016584667562929584979273401142853561570358039379300980143072132412743025781803836082978174795882992086431097241874831028349567300556562763086201542695548583785991057351659238087557397556078060356996193651327741771274471635938337247677393096484923775210879850420525764347496412786618096012996956710488175565857086302835297220929646053632018666862012331549850812451129533628168469370416806662311459191276026097743891286927073520984117668504006165071836764610448360177174782045362802602010206002489709026461244536444332842855114400160341605662371856802271735728580243233015733693392246713088074237558611894525252980565107286544670254357303360087107496094158323338494575422192358185922494402414220443538777577218329777613158562063147617081135254153664973656325591144037503749283060373106084184048335557955415404249903470408448148593798002098266852499811197977572673764338464547546115008178825780387920042176355503158121960804598538775632428919166804067903015588413979643670755572444888630036242857228247077351873018954431816384398050839663566228243317762563705243852528379934877189610821877746969642771032697501743538709011700781080457028319727683507936097096009884648386137036405926942619447191562531943910905267993266316669111551090635636117672613669892349845895579041295362525384498698881861999192529148064875617706347534131134836212172943982538339200644000878364445990877297832764931310841762824772150583782457868129315026502819328897970804242004625966372039404489767119281512303677611349113016332394966231635519057335307593304025728381037491515689261943330345475707923387995430815190671179080307879380222495433347413729862196898506947163638903670721736683223964405302049127362353231120672977949849230978451505579150031153244563807585449970604450000176024956135534515355943709681953276485354092173901081969025268464200288452190312167604385536396840551143045009200379529893124287958537721985303059841166545676504477198070819409303890985401936048874203467568353448573412422100105007815330094186053006960534459260259189384990371748991142174573092688253221389022976209509144443958034164366110122128991666779914626273986610070646790546064138117279919547269793514032014593233560598001457117851516320438746785912228357088214089900528700784762738073510492084233320955236004576865544621307548557030772955069347352971741128770243467888478594200952237556340897778237626710334114219240191054271680366704344054925978143626447928456274102391564269020036154103959417657026444849458988727141258399207722505270825985432386100453134965525569152070709947878828536585933307693095713582023105182874307682756140673367252211755708296096835108895943434035218566772204170121007763548002490041516997941538495870376130817925126021829305776526950445966200018688372964291442110309554837931972212492042550790934375479742228387714560432766765287423138332070144906013848595614884044563667181106829317845330201046250856546159318745730230323833389720575167218769195872963825234658826779717096981568307303259816698315727837070614404735871776093363235360053780972361873511976583898533918748465373810089701291218556403879532170603827394062536810647693562493097561420170518991437584423627648433150198056518760801233300289588836877774144715514416308689113290247613749571630416541527639574554936624565568183780711842284105258102024687626747464109277226185685686552905952073217930275869439718653843980589580004623710487567677251433906553176466568672441377003199496167986519306733688109729293507424052532368499067293195727034131049836438943016604982976360900489160233857252515500666483267000549423532609571588276188044738717393007967761984239709286015019749458041900479702538040138350585649209232524057399247044757883419271384961849708913755505450133504928481178588643144623172457212766813739047175002456234249994918630577995733365321485848023332512903825915815633760180599245355340459264540455562026449937910279083936161521280420320967137126511539619019205480644061961140319877205367891944306968457233206477195570843211437900672538398116927504491555922293978805844152646335822104165957971284625625034301175073060767480399126711113770664127743720924145090706636482029034993139746171558064214630311936020754431594256884384477714801671903203578187617223243339140806548863544939367650776021940657467459689061968661867656962363470673046291566260218596104912453021431454427041985213975456037915614447003293743034289557015704931382665357000118515233173511215206352378710509656788560908109530680293007889822583949370805802662263249946988220137445974360032325230909920729881670995447634946483278840534259938365431657765909222131880741373451240058905113161889616477518215301784866633713070768001657257480634851695771123319122399623279686979391512914451983688022624053145610480888414230179943868715418590881371482539735954524683348534891704735621472808724262191679288017753469182957994925100047524579732298084484234881462841587802855033317125104320702215884442711984172329348612843362570788029108299987518791918869245270007229633527562697412617848651922865540117950507425898419886303045311591302461034843944133293586716433624917842091312510904126929468564639327021109974461646746295543925323067075330363812243379322325146060710755041301783882594797581710406985683015366573530879839140490603503100632744652714673041703125590934235390327522800977424729662013532130656871663267769818372810434759762760371236722324281385223579349490719151673282162867528493504641505810850861915195052021218212477310312640818071385776117271139739345459269046224621038785659309118224535525116718673492396109755582903238917197178700402584292868022387850944277398280134554144016826373197547258247155228417939889903346099803788540531633321576105846109500568824102835228232889778526075294812780349780679954931502516020611247103867362133700519627532673791139130989882138555524110869186101154306050572178643526359563615949125188313091424116687181246829561815668646939330067144516407462302405201518208439957566006854017969160079215150186870091012122200394096848162800173488263700481215829785189485034604479614543896952300082849077939661548434477753924689831260961824894537455049823149074869697317181470431667891773109058270477379822828887106971173415083947973347650356869213195181863328618533843297528337276178251250430942769818156246700693582687677950653127886381390692707640385118534517716324508241903645112050507860956103399614858616709825065799692653292832558540031361445335746633450555138017311723882442300479321898235070624421235455305078449038675625752870085389515635553157565089695226863624769022137562789761025835009342308199207188802975277960116249372366123068908393495458545764536637899121235725279688783463987855765292260449396751864995911913053924623197315613224592118968311040685164377539074487727003277136937111646344825582813862187186347102479981132122082905525754526542880430637274026086399413872981087225694026949612171490848048058715119281694380126009246912485410461573800915657979071376145870597569659676683248969731282955445607247465126794860456701217070375553571749145957441219927691853160403652126729159957453127708911566051179700714594995224376744967806493927191159240391029569398824456101557586221986961575960478167293770455712876378945040113427975058860871937396985775957809715781041050673370226055513464292656665093726738033174981533604342232345560751857444392534859244620939405282174498632184233720460050106789944074640085704370393193140037062916091477883833090149954795810080539021049453156212360859596961507451873233711836713222565166356813601374306429058799026498884288587795911602407374451682552739086259185947492088306795587267696410038724336896672688140020727041442169244325134325359410760494391076715858121604923144653339826951511733828830288780320706026960874267270669227753838770726611891298946181516191063127760185918194233272746228327040637006419742006938798783867167815511382336807335180644861175928056220332565796414639555958101671603690394649430298926782369417101393755901926431802365489049200285485440499179120283877990482780720629726465011153879026823966142466888271357739556030414224363844549122923408740709557528437754887904361427655339044020481063509185657231068271926982631070821914898196584553991922919499488867450189204372351482780971360017605279996313991034012886882043807812103383204152802918075258230813061348767474032183583774438981229052569471127786113317466173441633377628790181943339333890719591318501458355362664071124014367679759749386038991694369879470656361349505124605042444144930606474408113580839406815380120103087632673964432738796707095199219434441672491214827431972089712870919061232419663095464326387106125619171709038190063940959449910085486163456472250371964802975259876871213980142732323879679021710782782274311279353324485502640277280466778522494616751119891412685927986502291878225224886321101819355735854813492140467202361475683136896635901125618412856814742092748559817073054511302677708890985756559593807270480794552521275489481307549607549534504051299320503326485024035223141179957483478606235111401555991411831988800440941921473589602157875567700872407155613175677765526025264974219931640772290963171051537928793447416941242937108098732392654150262540700902631686556344028182893564761231121490920118288857758742641994796448617191345823703673360250816365785569680913656500490903123861722517675150254008785712805311819144223403779489336426889115377548714098444396872283952628497860949163592620366610173239911491682364266175556627608482026672849866396959883926111805887472712038024558850873812277700195466532838119112438680957308692471476988329708702456570838778047572868017036546788632416288575199205490873735199310110262071797531085357444661350986491834684238096695718771898106750469647075543359267758457419920636508561369068924184146880831588771360482468642760343748348633610534144048512840140072929763869717992706802077763058628053803770070889349844907590447258553485721760638841217665941313678020116314911736081631675073051552448050317392558099629593845661570563301802126130364729793860979207387422921668523754331461313879571938685146487414080954699066312991693823786978621063764487991870189798263764649352984006598707087056764188371735244399982190757396795407254336976980932359316763442532446054655897640550190961327504200850106392022204845334341307903705300632579318448908515542807846879519180338475444814316261511090969606174876345788615549501173306331977300326187741938075858269916086250874889558122109430130066429544028471023772335286359382533726890727489262487842789330858701134363663524268961695678998240414179557915031535543360125948313469269612428032272695314269782674703234958543074009411316153362308035966905588067696260443305729830266162081033129041527521062541905594936765950266032845633210456537834354671077898546852469529955610925955828930219610115381188184515569020739183260020103515560416901114414190136716408873367968766555929037431520205148404207290732228245346567197916248108459769656295772059079388058624224221687263541262037907511247051006743995747661768069366988810762434689107895947681030900381040933127590726526480097508294285439355414821616930899783634455770035251612525120416140024411106751830451522354687489404284052396046003314497653208461626325757759222715521954543923757188494539032351655582523235770519923867933002214821567481474971045325371850307711513301006156498273554882449469352668884018289178318191289566869425889085142998977384494282576445856273419397984528372582420251527476385311435068442529470523732118158041957905438827232388647241408508981014862692488670801625450745387233183656994283721539308211231444038349636838482527226316082337151552897695060316328707730037783560196292908856367654924466212800177303736743586842055261472919976538740497921874875441190830131359412481126028855014226049299543790105605017592009217393387880849989673967240939595613843729801009139655550676469050750429565967087141517909629425425501182043308823365828074092304117407479646796658946616032167637200395885329830942963826637341546839468765882280434322271776503809347032555709980794604049108502500859701692748247454360464293079905502250535199788012495128762239004767943374368027015728512270213532940942930346427904200054375635469239957760024076430155709512012681158394244012599380803042029659789289892262200112495195517260496783254923444368541221796882194822337635989136268145302163451982875831490074560468777270107467436682411687931201582000359997496538648967822999312808968570825199969203074648076190562965553155765729561016589326779168510005230020910883759950666974003252692215112868847344149133808840945275137296429912143615032159446581355318290240326692494165990045271703930086600587520938322815579516374376783522737122852580875614814548978861625464787421801520708950659328672336593829473558756589935645781372934796046748447855947217113609814559857301596432428855154940634781467488317958252434892699604208297794630252179286404168675025478673030025861356917795429771927373140181075493720997561705204511981993013195649035400974856010084682254351145085953808219207109801606203067097029958685121408852727998884106094798466931116301054352506341554919170834908295794130887700517971464992555596956729667801111494588753406060102961345379146931153540628004511688847835452317410058261761409300549835595313583357008759339047001144367608542319841641847364721788978576353753575017492781365458903735003550171828503689801976591013170428037591461896547699720895810390922448005284766149261390551777725452970879340137715850044272813076862774179809282073432731703086867484012533209942568672309735388810492526131569840913966570516755721394140133535674842225827606891015725952686904378559429918272845024673984313017870658859513567665580764912711299907560170453181872015718679204977803138192896092445511856820393822303525917045189011760821755049743194523346365686057630246423877973733405681737950929301607623843271448355385806664896501481815820925848179792725602032939632402312736990196756654859172947481955344785265180674316598324997169604014323029973917138773075258825475646868058595312313383807996091058806444977673128650661208616701895390426689038272032542467222008338959788119081776350748686194870121826292800662416321759543125712629590885588089944214401982019237161265393420583632024261936757265348409943543714602388070059665419265265887423964774462519664046417925227396531285146326686336669517946505308501634388252960278776191820085777598187402123931634272987543077632885757247960479172195718509618913516982441806058363404113659563332249258355419929951591953585677966176181131931285446787034454735485925048161247662830935243236168768188670752297301047445057155111651124986235809312728911686771332832983612535457412942596824687981785937371900808854984956460886618812550819410841273219652241569349907976550877585752010539345888806313676018376523775206440153586840913975459667051522199586872502364346907364610843818541848286870730035337368973638863916991996334915041036060793941998180782136692999915271385691509619755161267581928122241281921938119490458828588140581351991464801831280706493625359183890999369731331696705706545551754378596417739078774058809541185450095425256018718579641773607155692049552017121405786410516131768166761641183397243954958490590127482619416189362365116712921992590682583885816926875766564209474912686557085870996498557453510316680734322434110342974832598673510507200100585824402790182047743947461963728391950877519559661154715609197499180254266198057863788386437696707964243816130180273974273250018008862593496049979707254629757334300583635990454674350457793763521460491891672101008602285207366992530363020414669746695709630215356937127359858124248019263742452599537827828901091844984431251554830744595530645562010559873794245754756404674128146230865343804689484442206358698336120666424022826757487596457339464643773893008413190035511845306858205402025015681749333246773199079345603952154363383589792805184983099861896307719898204238995234583682722427851442331791073511049988980754718668709224262854005363876311763041537473830060134365003758753057465504800470989348025857077117655248246845872641029021848547942876255844414531116049157948027937043365228327608500602098071827511359985135807865554149085841378144798330589821800453389070395413964861563863542875569182130242637931112063164952294089472589664896647524619546683587442874826518599840880653136481241009957833912498359169874491023188660840594664232775566304219178312885590417346671436589510186722682994441290164683429256577809276023420527037104692556068175886594813615100525672248304348826530437371922830463572617129854359190983547268758191330323012141682306436818466527792861553130157912256630065088968709519212688090251209193538812586483258117540052577171879914189705445868291086969936362478006466763441148334125471704176620135627573760367924542546209577563598405196979458779066966876325053171795386180609752035128862137430068675189332959046816112654036065618282288130094921327552119546366662369333636682193670271586361505353478990294158605017434431635395083844091996406584263322844235886762043997469044456352233300224109229346300728121549333750553557434548883936683287275897010427534843108158055054052436840370802550074869352053858816805825774527067447206025074023223279557341724372750196418529038341584744033915822050029740331097523189819113320603845150272563826925543293324926686632853679344607007475203061149707847743773703860488541930996708438160348790589362411283731261933442878124048969988837305404765847453068743255295887407028385080496175257073741447122513806362158930003339378911291787123779722199549879980835697047293842198488657936562959351729486050423905506870903312829839642119313369961145065972234903978495326920641758630186472869545209646528438763111072599579118874943789589840925809782303739488646272800535768873224910640787808672381040737438637322256818478534805460938581149493988703351034622448193896436717679884277369221330728709208845637743703071837514326331214624328609256088413365844511014635772000846702428422927823063369065160507147715002460567418352126553242973498605915033303316497560320913761866985140334136445498505491179820486417427922137180205274452719009723191596791185872128494764801017242349433527593503724492045284304944661597968435240764909151028750589603239690660841922523748010086316578657822406814062582742715226361095311826023688306750605275454963141127464034298657229592916418478420215949505539070952537654799190547377895389157599157269104786236452227766600958298799185118571544318418364586531496938315583730594357459948195162744911465413870599921092321285567859033262716548386853444584674274623781398436709600090239406595203304556374891574756008753399103135495907003097343289050319126593578029357065581859080950192766661524154848971107678918883400759354149978273494185523594507976702495038946796612255498378742166509025876353597068792108688799484444203886171585080758966189638472599617294276369489301331788364481518484343400500081082275327672474732440853899988928942276030014176967398018335674602076014369823582571864592945963606539643737578134887703855355244426561330186519626754132868617994378720139346325713858929487759071550302154895212635632183685224057876250922628845385407676778221577469366664529940253908319262706981817307849830685596001703226695258836295311302818395917460833165822607221866537965184644528546407568810586923626373407248517990634385677668005844025588154483173119183037263441285678758274030358036318538902667715832129411298761708870462234128380550862290756564219189668720097938938366031669693790262918699596546560893741346591901858675574438703050356903113982106359255185928002668429416527005491739655167373308852388997231067921794273548698076291381817630460834413442666053864938496569571585697392291497458073304758411571386556976739389078358976838914059404201315059125896273149488679443087365403471324548468350491343361198488918385814838799301372111528177365284752723139687074698307154215788842046556489148021182987802245866015340209408319792797643961111201502101048700441331828815906832212283519612061361564753682157940587248279925835855608314504427426468521340832755043883874413038935054077019889997639881832465537111274428105774124971423333486099839408218091437873942437020401452134686603164577304753489037095926205651420330374325295521137039493715426304263302221413776049587312569060669218982273347977470890587320967921525547086329528127869944309752021581236370635435122990203479861394409751807405592204488832285946117590000123552757047126622766364963423915726518254325522437963549067247663605205570627465868299988220991806854629007510865373843178323359765737614510271809671500001756266237018845409586494514835626171650019488924382685371674954851273568666543373994602445781800288477046854536841967647309711068356410387387753835620821783719464832727216144793317236612209284475292796995063031430114736208801016528965026731808888679337031155730040109084559495471907672569133294083675744273724253651834624341937864111405699880459508233004191879847887600459840153425053881496653506799270171716763304574007250496043480834518364358402247545060149018645667889037392208094831830280278417563485267795925375914998996646060134154826847200209220759981830408749272718542053519207098233019478139931221138619262220215408761988622483413846153413910568059274376093514599502260460517008592853365942239175816980625712272438677751339731387122691316753239562434516630679232738123946228883576803889815071768199284426787764328777667542343601879938123568051412651493888769749008788556452396808537976099389697870523581911576330620413701009114803826784461914186254175961445285638360203823638630179320430453526566968724930378319337113955936365501614230331039006830300601296373681865142272708178996664994702168473707031234961152262975500466598819178093523241504447243369731102666511481214758207687577231961646332085989983106130581221999260849117126576035825861081675261779545157521981289792025930520408271791024427857843670188418698128096525789879001439485855135204000085467903131924178514693664644217745254079679418502951633292467372508691794191201886946612466196767291345302906435998580196635575137779008054348198439624656303065628622032782945535829947086114909256834058298354526658601407399639427432178612244381044009366888738475751204601860972022128602320648682167079460505195766419367324232806334763038123602546877248019025708247574748994014517764526133590807505260408055825456976921151415279905773000945102009433429713336652950586482029114691549558764023059886217947389800475147073088103768325447500945703167147717378603499437550585298175768386523385625781450219211222128513096920966506366407870158819575046636253289887784138195663141716754329079111737216180323149493089261492020857702122486213648614670938838767757633862421111972663554694799075167013085740688749982659933217888950439486491631149145070517360351909565616470085373274369772933044624196273471826328679842068381825787858586663988490575896661690356056253301185292655530758984215918289728052654711044295614607598829079189217004546833168182742144718497905141434180562483495531564887899675060317767153615389281787163468969161016083990847317692644302197073200657115537628224766313552572372204517256808825633197934946872239799644828880565122297313329779315584361313556375723094927784534264000378151226437858605212207454188780054983085885355974291751625048417660699894849413110989208518822234754052164987966707959769525593638833342004327556559677135369924931562913565851281055200126166914921618625700659978310472517755902075450381547363879391870359229916065921732776296262947042752587230212908288340848103425590313072773487778321321519119886059517507414453372615581793126407944445806244913686642458938996705785331803455076331122259680127209233323734698889804196005832919963364928749214318576417399518297251525754423042938128442860904379081754510999204402304184337051478135087098702193597316608765495098244409392343644516738588387741378352505802680702777411285807051530814226404656346980312490514809227514117801964968457105159845303585748970403509766398642018247528479388171494380989497536885959974485365936164475277627614727638109758109085552613201147498441114530913698320260547639501379052072470346855078288359801251016989447506089384548360695428991835671263203294315070247224847947136917371882915685556398670583138026240889542284385619028485914944737490806397865349594168189047072318451992713106968692004235901190263605628201973650814862684580708619187139336846261416742780817101892449401841241103736022072372412084243046344786064375409235623003146713518847623690554285863404733954178778808506839770699730671010690502463429054177121965628485583311553908417328750362369635916348084677601054083237890619456722779781591482253998905018313827589162800412610376608942772640175525843266193557842468885536769877110036535693459558529436059870209158821326229836115968094568764423227893247373194289250539641468662893433884486720746648353208521142584302070917382141232620376326584568625203074279307787597868329714415965796935162523295510679540569162525594752856569868871712628596136219704090048568949299573288306871599236856989641240403238245818431998753459839019343985861642574346376210394325877968883799072656586898139712128352832294550171365707074528321571875104074519416030738305987716004234852786547031707868921157279612649283534655186933193105773611756976580407311617125313146237455633850403858067591230126144535529376490889089850741439245293417351600597122622510589990178687867641111819847124050806991861584416437492805246222849670669578756091220501254531482414240784311171829198944683769985062559593020789011414537478490125843520784085025502503739691431779420449070963503555828811491822674103887334762018711121093386208368339544992667953287164822070560825028669975667863373111791294130025712542166786790131677685598299936686241035215558265013134029520524931133888518781770430536420711485808826682558632506808236214292835342344859335418375614031104898812913773222047161717974530866648785401491507939782037623608925383178648931530379389593774679907980644762861441044714878999359969896827639638955118671458201170468430899525250443247363134911353379985561915924136419552276590494139451099221583443125932540609945455670117165338335756265412400696248074016721295896656662460678241102591214913424847759273485298285280135387890903279916287031790068715245171278293673747942334808820804418468700282761431733188212935719963050400748302503748488791570505426906169466767406804014415465117148931878392307479611337498170596340612255561696737287882968212290934181695534794715078209568534626050766407875253295773859050412923987793039452415316974023203998465957798742838042481373672838411249028732487048522593720217846878932655646864602772629199371046979245075778790105912989421275236591803280202244767866460767021962629075890992837464818595315699681697739803051686603637853248571791859227228703518925698259000870058666008683201654263847614959870895933335675871690538490824932539803258127741655374281155618814791341027712876253551738323664152929486319226723160040357336395963882473026238475592816188233436732808038161786458390185249729865947743919746501407869691533523140532428602272446535815754944530297566074421937567601191591384786470573735713556189137633766259737662371626576485485123657029551768416188188137828163694426855823185001369379889862113152399008093022940214700720788965363825228897243695573442241242456554766281560956164725597760407690600053096741990543607077131443447224411068154942372102666805657770183198687733646684158662038655281147818240442559550322703441932094354009914776482684082037074329056405970652951691844231482382284517828586441019287980469861509862774999129624875184747847229668728197357765818608695360324023853486854667374400690297098795720839971931585399672355792965630900811344411889653882750547276399594109028554414495556526179661751243056165245767240707172832352922327464752776577556746686698832186195241386589422609013088172432707249379397786686383443566853932150204563060142916733329763738758782591536369293525286931471467734820523813243727004989980750382990553023922379872865964583651790550500878045320838956071971140433881356553560773162921599658192966367975898771786164207603587394449674844125661395744706135535178716141429940708360739664517382226246703089668315494882913579739520720275166047988627315862837699334837925675499724379346146123466106137443115159653650050254083738764985341434335889445922196130654750023940253888329638909667241033041576270987450368450030130757704790511910868814122119415428554707856770198882824874129920776903810129731881703117881648818373395782916299535394794020239394497380106940018365953440756091979621440838924130976096548174694535251231703036265868213822700302470382557776855482347695784333719981299754877671791397783195576417839230238413466593553321987178901055665003372223670041032495419372447176603509755141085982698556671652369671799957073337629097035853043338828580164815475642345025458667045926003163100054234559304079023712755104884329376822604580365944469060819015424745476178214561781714236558489393799965059970624027581161018041198461163877764753831379020506165994600275215448247949419057359196535319377074391680918510393782134290930354550966029855839821173331573715228325019882442844356155413882743353209207642076949464872132713243183827172751192828885797495384710940030041852319189542503977826211289346605980320411072850390455822057238859560561113907121856111738039201952555224799711965595164584932744080496653310971358618427539667918239745591009357766928607242866937370003053762065681393001595747668122094798266072906270687388329009779435639020171992682215496195353078951457551369900151078478224090828532337306470256864141459211178025838301842813521923577356360020469316563095581815780380641936036873253714498385813597351951447779761821337811208019317518354107890771501598977385243239794415211663204411374202177394475765192122204139538775737186970566909709569668788311457512567700329436223785736126717486374477213112195395750118417152207912629809906999783904002013019946577259871662059745477387803032292470377075097617271052962786149855950506027445456672179260538496476347383939945403085003510145963092236859349258931682721352462315808406730056572368707800513443000298011354433607646814064009887499768098462944804461154750436738883643612081338433297704950459412905444564646809959964099042369155399884462207115043808192740498667935131594891815576140574213448869002065939697863013337478157772340523352117193346218704317709616384896617607260672935639878459034937177344929755671599046327584314085084582649269068049833131899609867530035782199133244353347929401234379840406171304146884990150160869184151950849891462817808324458952996039718850683482429003596832342629945489398699920413254877075317853295378830930636094656381188179764678710048964772287395246958203118316460682653593208430948953974600060988616523324096392756872359621145215156933237928645789417785619434499754062689173939092040393739775572009072077629879712842340347694107384832579908273710836469377683798690550654344395800548761582697260044916780371279912355992785078860881294545721306003138078117211693954185822574295834246205907295486625701971267696555347250462674753743094160822826690414177299941401152927064313417246995313462466366550831298091006221621970374604669461189061138131336795348099971956920717164952787493885096115750029496668544805961188844112712636076646612962265083602137131193608147707088279777263314866704569319514861762968443736552847111460853410195800795186270476894572825637944372437488541678824298227118819675726787973294195271486017119916413761104093885966968938636703556746784840554501593475860951326787377997683323516439699489333200002535563035631455379004526208470007752263113543779634870698151101055747568282026889586339466326784630307147078232514671787636555012411525914511273340095301503394743565746043349014275244115242464618400307628021483551836633472445641032480149028855090662808836486870578257161399063447399846878620116922695748681927465673748321765835347078473527881549612934805402112774844172390804568149827848169438966246573184495771070854021601524496642379268827254655156691308136236281245399756490538334015288332788380307797178936451893321125830102865526767056682073632188194872660883084749855695829984054203249645532418227138788280094482181090711212175923909554687017823583675565348454999791852926222739788729266140509734579760470854001866412859463164990286967838677392873260583116490163750046000235626758392773721381785021938838699215967090101149078359117286690650604523556126496309511920493911618990241253643648571286661183018256358740397094325271653428073066348335176983979376484498670931541348055045450658637976794038377857063352578277704137005701478090283255795908878583034618950708356992030839751813096420632454190406067820254887824210614716559575886583724495544668705770997573188353097120836582478786823201061154261739388786564475571326143146921455202024192271226022224686733863654107253655383325004395991144765238882808430288834947533264093839416826235958750174917357447169931714566541246803368253271963015164024573551885761457033541256074506456398783093189242083043060110425200042014562421850569757847839495831143674411074645712314881248689028280268101896436809441144293132714599831553514819915521907259590957147064833745860842534787822701486753888373883965027809494378201517661240968161663874924708387723216281853664732286784109586425718570682917658801162952141101575264882880959329559836018820522239800029296605182967189224060691493107927229683415683469405977926258627109764739424180613369979958840181630486664189598457632211323161566606035929764118777204282726344239281161479880057380737198284977139355863115046474911084651912641947246824094935546297117806779724498622975771356872571574435058772437284152170811608689432983593846222841127905432898630080396875142891037723930013997010227843652036940759156232168486295812427826154920441748151016272696918200748927444052287523587577646980622284154668565810580481842203275748354888610048557436922354061939772083696255217432857424909183788505127657853214811208191438180552341845252569922498897698155986180556123102731098090444554562690866198499723474037857511666440038523225340735056924240761567812549910480750214130133965570619472006689127169436591598718391058102626395525440216770454449891303413650436818105247781846365914456286879058643639221526251405405961405248664263064497385331402187863017511166556315762387998126863217150639092991519719718450169533005732822610150360545116013675788821787341199542714360219336872593253353125194407017239831265692434466440147746447343893050965763977980681309733928407098468516208999337060179325159569077921211248186318231042330882734698260569733097538215152269322280076699494453280317019737236094337294685898743136516412130564419219846546705667251939286617858227683347862315504660873774280456693835408424922581007926874136559949688989177783508709362931758317726476749549028003466022046718611060199766680297769891783840143203499899726513339281786265686807339205352499339533660076350545940025066017731431579213240590671074051036974510569007433087941286159879695169654381101013350692480809670557259823648572445388085658606347601940405801254962919539577318266659224215725061464857617660551649551261551018612716825461590484493919056719689536856487404487331085666098967088376130169705996798579927109313766479925724783846958957588320860956767103530443016696927957164473024064712172796031305057690143620880805336237120649476149222382148974060509835170715640125865495087275475825040794463203286489778855805502543863504124155497795759259668949960747833867989322948771235030151507256718099254371446134965947454799523096547479527806059201602802764988871768950900682575085416405207130192105960002624525610977662019951435890536368807888160137575242338235637781426630833481011099428363114777136563740628766950464746040518717725340121924984344888380899561098771235085961188590799756261831817231781151952588774243917602934786978315729971533196115723752727255164703709158975761242094882011050390715580578594008742375657436657631127114569849962117219912781859225850574310198354412266281752447392772762436598402556091723728464980272056494762678137335364244519945490651573909395299546015846358853884534447959121365174344729746151082574610842702828889573916733835361253960802011397114880972205319903253746481070190151574196182631859033087702948089554726041793471178085296614617089442498104901252874190954618257484085716820787851590909855962655453452974191222174320856615729456811141853755482151013740930108677988883877462335010353828748761945802329590813489377804489538680479810137372819565205251682982002359566362914629193210608928091279586929544592507876758897939937383419006811174750690839596488586039989037079576722867140748820445283672806492839543472338009972318637710213059639335018147553147011415379946391057654719750272557601121394681635349911290746070763394987716201540610883240545368123377144489478417037087212894868522568945033185144852349304590521474377177310572702733115754560240811662483108167910937881516077674924676583003472109919610784861745006999773904212002623327494870055853739811577089264767904115927097367988797230372551643834186649870766037157796402282492018628708872723141084182845614789730087803314488224287595859709246276119997633624205966593383309056905890560395157392778037086020436967879073423419009694468695242788692376309110062329101673705375823912379558738804069098232409094283314410069842237342329060927887423711240076204703755452894996685109644698744931625915518969595180706062934961653211279521144021867531939594549670681902080677300226876376269697096663840310936673375427467876990885169052579242323240017016147428035742861035914520086434618690493080343293330553676831702981204631142033846537847870658123923857334261277704889939387896653092236451957568007787338043432102823720861972755283585427471389772958000344346512612936177350803298885452283998148144530691358628599872754043786094988339608526744932848106339834532052103771897566630865683123700606080458660612119229396617671520794926468441694282329516011843085404042090264979801604143455762135970468158064257474494067218322795477064562474255421042701203496073298389227038198488295331678139789530394009119668842297911998626694857005523415519183466363229144920072665953825932291637668509605132924037645955497148888079351248256163300490277718148187802103147652324877704324137308503384305328898602623870779162851587158895278544118728352194272763086754279933992861005029078119119176062928426854002458809039342349639728250124836736773666353524963209548503104325876941046851877682438988373610620214686706632192951607215091574173500138180586054985277845469209071681209361336001908874768291845612066424858591304224013271695831286596870289010697545207700305283542041499030327280131021579346945121542885262149671117248891065436421271429535768018884182418560214901137681685991800884062642754787102329045822743868071102954658219295401547419252178569317264132004788916060719875305981971736508544123781421188248842322129173393985814549248024211851427793238886992034318616228579081528244878494173304871626354741911982935008265185096301471501972944753568971242138984707293502108524739908900857475891305915938386739353107888569071467164198735152778399470767032640120351705264004513362570188300213218717136740189474216306282153000469285245173274146933673303165202861161788408633242090303358342353611935305150361368200059437060340671444901058976642326428097380758637336893901842824124283331436297863361675517037708655099750252885233382961357110688058736800132793675376063514088966850510847688933250833642506760151574092740930643011660665784290182801210624321793030025250954532581895620360043483887212452968858588833593612519638656842523085530666268911341382674611653361326626357170100058569642914026586732348000177333891602914048929123688531300060626869824980618917419148491081740222110726058695052612351630745341124070846139871666989292512804981015092271938407134332471464757894915759723344218474725610902307993908786565273871212774118954496693678119041118782221672896297556646503342272516945357123431089656226492255748056067570297899471202966384817497195341609703825587361228426278830114840084368669938433264774943282284025385246379758870541357845305112741507519591952040890277748406394051869225048287880804731897468361412524081095313905500277311212239879054555225961308656023815109788955523136732132010955571175799515024528275661571631734287187446711313951705927132222896435486238220198010493905411737182687600465266514376242478120208342623695968186071970756921497237798226928009393604219799975170136319060046141287318159887424866616109817835925327437822149171585454829181342161511265105168461637681520081448826954356584367920071311909125798999273560194243034754896917751830242886788100106865832635410208180318720440912259426126939386326676677487880316881841622696160451311662101683529248055902851015792091944233960396695947697316304560305907164009356751886320321498292218214543782404511162256556152668050481837165754331371794355254924877994262940681181624391770720243406533370947511146843173131605044969157358652160665102122103349504616117671384821896919980856439511619610711719610313798906218908141300223241938016485007145090325882298303476477496512167454145899415890503682635456924752415534807635664355306310264589581357072364379030357739035714328520192542200230256073048509920743833872405491567636424810584419711868580350673034213637579118195786337990047425479914429213111031284080160072831869139587874309734215403290865739325423911817252852617790046193214705452063788791204949724060853730097310513345817525159072472176099535890313992508339373631655109779508955224474125484801016558507159825528930046989572609149501473850602611811793730650604556746723540860040299146583502520345090908609923745292622483093718159941635523970280312897438734054715705114255587362454417637297658757837721360227174766252103638927614385860794442146873708288317663778374957713527787813737412115680227943818977603157993165623103125257469351315685325844646723007258029491041228286597524672078290405810068516046358388693474365036668932866827543267728026908796515118848904686105676936412771590869486796034542090314586979716761248719684428768325724076072262587042413965177781443044367302227467248649920798850379136991330471595650381234486671629441061874353012418399357765698995263584188699286688211125117689641556565839904688919552937920854954593294496668604213856657504774228661942805400713418282595273860938863931573002190054490536988903245197337874333031050762303762562104929047104436755616175768074825573394721418968481305152441146999296739928405776677789042768379075186072841535054509085848554889200849326896852995468652813671016124705421401937758845943810441570340486536731480126737119948435403612838489390600287470800876593293373781725483005613933435748948646364613453064091275227117529822400210286363109986002144827103860978261229525809059019015088110622216136494105897501525316525119059674672954438438239672172711900131135763887498245911434709796729864218140756423967916386435235073586877297258975544107940679892677859739394811849880314191735569595294372455661588129875162370848391222781139871265570455426903171385656254417001989859854120601443997675064012384076122689416927549202839790967257423257876565651692048964240571743907774440026627978798074999079682552611357858557748081031547083429119607614698255170384870813367378158040845428897560723926872182430930588269510633988368996519392189380728962524360788668074798596217940582358162566880531971154882530134876629481745526576358108158564628749623263352576707622242065361575444618648927867634695585202147288778692200864172483772482328924094720254670195816835399054046742026022586414944353241099447206728211643493589202941021478265945390299711228318260738082636567333711091141812810324194905113691925724440110666175523085244399325606530799106292021632584841727626756987971010766683630057601339709914827860546048102112514378252102291917987648820418543830699393668963053359833491492966591388693905835966875286980550095285702903612413065932773815325884598129503478536333197108849996019704806130059782485843156203792268980214790588511771959459778297027423217526427394991801250665119840327229820572612298161571692226386208637464334052034402789755236846824573489755787183229208895300405477534078903890863986080561946488475396852195955303233362498198408289047643038533816664311977840028563057200660892972437272576828181159818274036247411492484580204285494419147822304261372642168502473231806146303127940486592066681529582975144189863304965412644005689931444879735393308833335894202557864912575464773081069763039440175659503639929112880654025936484827343421042580290503987249709150633174139638425770606290501833871896037006785035841181781760559680402554114258343903123668428630662588037080078437216746858173737157203296779729237034761161467989909023964454729725818905545448398004857032943833697097171095452782271993141276710274460703973328806127026425453191645950666932407822377253074163694514752501472917058592976415589406961984854854448361932503621793991148526910378347320968441081863040095569305615409805889518615257780481935676258105177124859475049225224344088075960340831848192933719039149896329390023861571475831097494904006221445047857003551604580858700410673863420165388133068958873149324557905450859810172306707201850203198517610046878897695308651033000664639633694090359600999724091104577218767396295494131546979891287357177162146229124836768519034804101490245624804556373196924803187408559538416374966820195538032807702170448286042097288241221977574025364879021892606276279173685051313333764873156436838375961033211060426559726507800381599788774564244501614294038401675926824458470791743696109830536970896623641531037461281268634845561931740588204668460123127369928105408597116676319103184920999698222243997768127017183316707994854280574861980407125713899399401377814889767418248733325867887688482273095741209427263811645246982228957425110538298060480168996127411601942515876823779032585258955710827989386947193702917793640772623729503615854722418477381066301495092323402309600569309779307568071860747159928658380924768485375977219724182317452773206957011047418504295283653784012915243951514120333117871512146565402943868201708623377341907636246587982341948236285374889746576173736876440363851818466961068759208482469556486781861580204463919995650575138112973049591386086531112375006191158109849705938162660531486806516637993493099796053951671786023566729580344407122562814141682617212098806957046663642937260758287054078354660970245723687296461485039707817114023042719466449517507152021966172735649940178260058978796431871665271331488550920542179190471693861825833053142083260555682592199432838510458954785857518982347992014333038918039806970472373753470797888624889834482813976448236999533090825141943133297449493191470600092600857042927791630520360546817739227341730394063082169722364158076300086434196027420234064940962037699179591726446872014171576952841358883053853808177563747659890338852458714833807752142897972895125181702182644066079248599366349751827679131541583487033882360302600826224172272732337317412287586442619543542919532738962496265000119913719333806162878978478232436373305366666169101867474783184345104656001511531886446169054395108898147562899095187914480040815194766080386573571573511549009912017694042908806752767052751365869632886703683602801045991115335345987280027825005906510093990725479364123242207178422281242670654454093489402970376969775739631727588259746753363361916635172387112794729543085738188570742503360438277934879363047020412677172283544319120268570021408355643696410264064238273423389880667569369147889883413196622518922271560006971805226849372636606363847161117841000143488113352286997208075678214373123208512181345121247101024090685452089690649834392900093877065983820304840116682167054168287688016442049674587382774171133717306894698835906773597672827983435920082281320492523705189241082243724269836920203082529066786797184952154304926275816911449520679554464065411846586644686134333409634575408539188914450629281367711919603448629173264057080514057594549031848929454220395078828293795055467349569606437548322017140011234989819568624742413686270820388559859313741230718510142593789798537844992752146737213573981372383833223005665044221630242255510903696272871920325521530957764309276587138814263528195276405894173917642026611226142221310944477634313263704780679819091049656284482815618802731002521428704397340457863044682220332630350313737317859197400344860234948701011362277724421475625898481253004681666347259509046671236398700263239661603592245249728804731543335978541943230897606910065382058052226432256135620253682912918045785874777006960761286127446981378279376971851356735304838445443064246811720042135885316005405953236887434824337309821116586602251812066558253905233355183639318617083482481659551381719725859623166597578480525385351152623720504499033576587322110199931268217443930361726885980936916139448511357264421537620306458429700719769688803599917969338381472709962851922246521954298551746845157492032511951641214999890183069749649911328007603931205214800964963675761527386044959362505808638760963131478715899500209917495050548773963271722653636953549116398929471927609166829095439214501069574452528305714299422375864176687785844398958648852270520314070407057019319682698700183436892224551021940534394005195449589133473862800427810440300952045481871233810756732191061879717364520433544576282182058999886534624037106597437710540784278665624031655666502341127529896584431347338320918667516076907381259615509432863384750730480643474326770143539337946536816546208394139357811855942857560060904369244394619681728349805695073408257574911797853509790775645039659081173016507665885215459475795036487438760829575408737726310559277712299129583212813959012196670516703275510397396936038687224683656643128374431211772761462117148543879165011865454016971504437174073912369712424152312575556489771547331426781419438820345802003416821320381091670610547759940541426004414218960451264352975933516632875365995155595163986310299499652143955039556206249048639566134947469135391627948584122660526131025032400708619972726673661549679858109909498410367207528178608055138041785253482532361184614577598134520263499188964505316288834015225750081433401580231358293459516997916734606573018716885842733636452688718119430095871998069090723701963948230131189818321634294390442366986175697137273784401335905694933085759813342704552516561610108529777964302164822817457387278342896047210057829821196894461935785755419992553225258690681636366950722708239583553520052628354406897802544701894962683529649207648831779625069952576531184597249059258781278729818048011239830056113747036802880997004551580150615527073471106639810048360123263885754632369483141435980302850888365202677783035219360025938023087902023415097826981146760933839216309599196564122051378504898381115511103973098789387509465862138711422153742537225685742624856130631891463093241356023572599194171448706165792213193998180220726349641000585791720339658186393906987507091609254421747145280187014372381192443333078541292428899302788120061730236707269621154438221945626527512649432225272902281809756875044884987816083795301916517820268990264043065955659385112568245362403216403266611414187599301085136118328567849320992768184197114059962050870089764035219531373329799619293772587686612322852435286318170489338711908081796055669727791642447384195475803713914105814114655441853689578267222932437670310174107099909089267229831288481845959369153729186631809085614709787961652812762318325070851368433448455788863783083684695612013319366663528687928367786724903076211158227852299983603183546233864623848273817763965700092722498904155029657521046163869830213818530147329394607745425577039160340153286922729157406151899191810906609377552191129650786166157703334430964557500445365879389666060987890904217711772019655423303031361700468664816460142483020195757883039139850105300844116181878972646590392977556382928235152188657333003125146645233966028333285671577537209745667624349234873708909064270318401334717193365137702333186746322072949562582571846337985258061831685924710103679568317953382637727422157350675949343381106844990862750517236224596927628995807781578808214111423479704029726385220406950786439125793973409353576445588699983180803707475452066490580263848099107301318932676163120215514344185473865985455924690699357202772845859133206313346987625264893075311167543178090511349430996203425541238869492284816139896924082974795922649760286409002314371475686257201591179708168167076476040603156350942564000450551218814396543699216914411643994706136500966748707700881953044959454087360831943784119274655091790028031818235019689293619901026001089688590880420241626519962122158921061666068919391825212839332008840071607509524546546345011143820554397296406302583213816112587543274088793086148818058009577792456970830787846438252136836376890295697966913483100635426263169676411313470969807021848845645658809904657171236338603842019633599804286072966883715702863685327181549532029337943549252972543445077949988229842419850047023744691345483363198360766528612673152228811477645160896319123636193020080305312642140911246044942271573450686702995407411375323654646559645336029607437113731751525904339136554707935720581118517863201462470111389636329408210103383402392924178394666325274324448977102821190215207330023766585911200762083482471850701881821300966915396922219339379271286844379078867315380910038399228305568778559558447037016541810060089349744662843290011511804058662738142877538890256675766847652411248234665165619636769893468643859970321863602960798067818342785481177065294976483869324934208981878241403710461698330687621530911505849220417075089800554163247713316775372458130840676439773288481176032689293916964090207955942159012954813951324954263214147316866763647622641765303436116681094245299606698933606506734018723759201913253491561745795242818571478421865071676370424745782147964706000518325675867282228458626133501043721448359705595835883458969773571980865559139236156354723487918383524928486549913593525203565257318864248913334523104520855115245603802076876354763803895683782231164408521978152348183700864244194437214743217130762763777117899948520024855220579329684967384935174383487171821213348865721757323221565817193460575493135049189744425317188182934215000915759804167194777175615924381669883682637798591680693608919757502765345277847471752982487787370668603524011371629909584039980628394728265875364388854409405371526201782976504738717385275447769243716054482635470854236112418483431338376884865383743272621367161629878874968179361404442390789337818342318621035751666833007075380285105608709882053826024746853237703379288208446877990846227286323681470124408062351422137487100317048012017777937340144342048534564499411171137538433383807500491846923232121533897998696258394349125178439425957378589970544569051896002155243832233057062488935023851057467767984261853338514882583511304696923018913496853136775448413084777429916283523893474108271223821044086033724803438014093951495503141517617314744002246140432723689182537575375846388257691109520954503343300497342439473812992585828711652806652070823165501633418518682290626278121648643952903117913023131615476019694097162494082784138020106257184162088537052109922105855427478639768195557452037789840884895515757588836233549224188755043313674105133521032008341357404964520624923412769214259089704748567361438611662883317271468174377901646323056175529001420133056007500810659524932935530350115265083351701529748384381641037188045560065539338854081775541174389301900473993714558904388874149653280064463574661015296005256350901710493620171314106850017361041975363837443961049082861463299040350948298065536027758946564541409047258834216337862383373244283343728451247751894307628622709369243638053668283132890030175428165866391353903101425469656853243449379146009995978400958583664078489001445923262930852076603801250039650586144517904067756983397884833370163107723987104166714723408863931000985029875125062409678702237987700412265702808626328306058842871479742545505384710838150571055830139739308564913713612030335813158785916420869704828396559367529920964863226309792820139625231439411432036917799808961377490556677448938524814779382448662794341943830058280537030523075860297290511455111763411384203781674155793566645351933202235074800365545494750725014978166060921534550226337566116645696199502173263383176019496010294365722141743216533733397564357833766641783012235206111500125367704336424928193479489809738977017404011979427276262005947942532404341031026941054636247256078880260944765488290936886568302607527753562681913408387384207437919880084077459984522322734857270045849091338667882829932446246444833104292529923679600974616255368516462600071011494266854324096866193885973208506979138306550381890771753118169693348010588331935103377631870118807154406674491948452131265584254157596638594463563360644688581255079574000065875856452123806277869963158104316256605575613633066908097544282334721792242444933049002459394390117997773756297179539112698841377172693893962085148260922998698685887985197239863020565344036394755408044479561178094371947236582685466669534290167191376161233525189906202673817197891971016258537048971565376448861116833489878434656081813971290620103029786547711306301710405665457401424050186456888989682086602572526828043979117890738667906772239160459583482826168341483996856503738298253847705878257477426690030445168829560060383070371663147118017304167792042588474130829415168595596754887065753670155982337101602424643237535831484939849805532563777944365104695950076575260927613543128550984914397642436454079790376646253064475270394455929664210648280371278418762670895619670564753985605322090162122921343059347448747432879903964308396140740969562546397213788815818917959938755741374447743625195283765221848364779466481484416278957029453174662097745845986836915302558642719925434082250127565546314065155190703048783548588167129837792706683364211028032116528612967463293647712436511875395251730438958673952417969270682176549315648310647694079326625521948622694509410934174248771482836791260639355522206852553839126898988759026387346274719943078658777672583278944891221680432133104059937295854723675667649142602236513812935158805118841931704787226269445515493121930055783091025211322784566404905092874167194260577029223200202902891399300634785421134785837947055409175813365790608434892544996718141097712093795592747865302850788970300663883485679635152619400798979653359434559497805967848032032567115584843349355277876564225968371933142876615288959351043489488710138526730220561363608412006128968986497549926873121216429187487919862509024164158168952658704621830866869806479826389187476570988864889928149095438611481270212265188943475829088210877218039583979822526891644306810257959178352164379728317156537771840840024124514276096225166386513007739614764554054280512495713551054253875562158790683804673114377413956266962007057776492270880959695828439995951798166823164133740081850684715187412102982226566871807504519250724584528830232329637282252887487072483241138632809579381956054214172915763994797906525810246231150363431431900803133790815858121060169419819946660946119227840613883058460435348136325013165630473303116182504233800817056499513329379948058168557898953970476905174660520196710060984522442992720981126516805594298415469795533379239836497256272500318513028623711672623761253911038421702740688115017063492124650292930071027661622946105857794444890843212762126718858395669271634861790249145053715827082058258527197552167079354700665869242987741564786044449936149029701638870453076083835016443640698625376857350352320468995018050801888486077882373611074680315780508382685549939725786294609211492141792426169524531513357658127619224438839076327703695815658755735003491976298529373956319313697572417738282292146532181475926807249205127321406966570514534392486373614767042241965632048041079117357302253433448084525851094294867975299381878392543911585402772062295083602548450694997884652166487220375696858081753983161776445268030843862378805146561784421054043532180971923396460989248707709388102912274115354370354289437579608315393133411664662198248674389843091312465849966614285086042856069134713332988447734088011698761381190082058347753478703323404716864328255246049149066757720270666529686175585421155771573051992063276234855068914391118757026838947887611277317673686835947603382613532222433376978433453281578500349603257628591556048376912177901989564297862472183863285329457000067407991518763020780466243694916317636664840870827167688786452265413690260584789878340038152126147374922880612195996903222908909052857182133506843218186414227026493284680099876097669850510215157091247450037535319587554958801800216216142543181980552057404613271817943162512979578733608420478232294453907200864720439895984245906507250866953192616831536032744503964891569201822937970240279028482591995759688328386975720960376253547491898945364958113831883889301114223546394716651107070624519276089127863370090053641552092405775910513832367389194525419867465741136784644443693541346317734494706778039363368351541516361924368870783241863034500897678298294955307394652374256068401938834219262749525126115217308523076989187929630922080890912675592830478544348492655570871283250306818218200342297806398059771315856665253736914258495670414628869622193689728446733312203483042423855947796350637889659907049724761118422855741795337181966750233204491008494450386533999432974690314504535794401193636337285655267706995799891160030739827606460117413941971025548660958996754581369066307754771003075670722602849234581518094358432176467049963436683476819350378201259705927262224667695726598197314599909588248417735182126451416761766359637666249358538665225060792372007355676625634835418642012502842795358010041487264214763530350819095105281476131213494401221668800341789059922407185887633361871553231501422370964934538432007120252299989998131152960343916035817569152575672448305551456442286017586879478296188934754983616736741146045038098909647165759612261541313896590860680762534891543475165963703340329321996583774903299789537688099999306869275719181361325051700636606383570950238622881559488864301462649688456786631683785864425022388683354814893460221645841066319045302412808187105134439196600529036347285074621905262583958604445492835990982450467282293138143194199900025839432048824662358798532416881913961707255686462617743180227662528328220467512310132726593601550098702254274358160834323308060796065566362150721292076742112118342638987370892222849920847494989703166075598100092061152837253693380015867275656910754164637079260980388310306073853752761748246101458561038478212864738920317110586506567179834324188407093080208821189642033832344230966903293635855648619321364880126165124517948394751513090096113708335202558052107654574713523750578793791881754434112405800407554594648406715669653542733257823938049314388151108232954515792057725288750136432301436904494237209528960296908743881411676193667709141770006356634371775436654807337620792048790010131570700063002645619510422516687229497350930652174695751286588070369936342773433202955267670143679410692462728097748798913064856108773190622848901475435975731347101527882893514646361708822767796107824746694690471916012737164932315103933084341850635589885320746731582146938175505211806682360479634605232882981102003413846959148725157449001757851342230384939077481124172168843427976801980776763632964007229233764786527124348134265485072175053696249315317099317727150408423777553716081643342712938775690060947929449568206222892607445971165967769757297310462441844959946449530713959847346161929400235734690374949483400091694289778584437524216611351429356372533032703801461152848272100749232017308253423710753272180171523288642055086656404857353723211697134022418208847324169687950449372355169888187004527947224988437649943209813126555261666290459076807761413149901508189803395507210809327327406688004207236343413671285627772582291820930957016856928387597506454055253649565503472335212974604999324621221356036508610254307555150032841158887432442761912542902153858576738946425921712883214742711500549548928017670128312759944107899485292115921278492298540884826105461762365168755885771001649972253800225035879480919458728844483822381779287862493862915795632795494640304653953025050444602700025750997597133180010979634917122332073739641137616569725672253913487364390463325065845970127059813928794391440611404092215556280539423800777645377428467519648388231159683944935838510578875208975716360680740185999780554404020116555879535414173191636339140387005629257742764396048232719150750681872510258926450891916322400519377072864477341814639332387707365484515096440787147065971065178326914342262082829252957410599518318703796257158660848338237440226717586340746152205413101590778812466413211426091739101600267145094541916325475852140530780821706329330949499854925291339431688807637388836900976239957289472814453624223521017106026604668149271131466192578036249379936640797842081604159961135097333527967173671524780634878807375906367731906072756362239183329504802232820449269035610373534317206641606431591287985669727543128182696955375878200543619880762246927297505578024874758292422857336819915807674567321391891916773456752092568782483332926484081551157064409485145639091309505618189228197073398527994187288964101553901949545742203065838341804120819989999540416377695582392981466631993493409495470766709659779820518728952583629992992082815254192504341871017192364873891494273713094485935798083698161280165485046272068677569124620145141949686421236074048458989522342536548962405601153755597153531368507748080793237337562903882600345094923856839872360137832926610201966066003203989781922309142292856682408600587008289776440030554751303957637847237307000348238598313067551048457459103129372316958157150063970828298913345320539820448978364560333976235705997136578139614349244147930339916813703205824867286544738552976248747679329939209324070667981586785527750415337596140468353911431025780805964688062584373817412772254247988478053122495056134167132102293530421821437578626677025648732968931996412142132408366682293555154084945731597886556130665358872398714398018546963172770558763180783239285064112770195085377389823787403227018444244716535467832939964030845384624076796012674122658547180359567905866746406467256927987855769811913525645480304517280339757359204702188311004585410074481978289496640671761704520639438735541271772826156503800281733230014925447593392070428592313249078448981606517189272297525732157761553725050157934319724956957087302564735364128628213837233954317089878995766965041128227969072484834807367689408035588351572606977233347945762055647948078091885565786682911786473767783920868184052131910068967099926106496262464628368262446453927450857012576286998429368378151384867555649162601750931715926911161958733559063666410319281468789481193851623788270317961617215932988372451570857033249433014522929068485864148222457336907937242361683633553188159261678441264573080935242259409985902458983479332767671161659253476305738877247088341701377548273255941731438206909857790566027958893336508752040914400738102252184797878954654787281758407519890361790824194654248150618265177077131338496760745445356775932764774379098356829808990713989421145612116507575640723188996016127513399245414725577469343329204155746559465993904983128543530489520850837506486363462522058212798443387773916884624434585991439414617970214975902741790798247059583485614220633059289744571743722188411661042368315697743003364119306992475293190483595358650704403437441080782816389767138545030556779735293057961034744389032246959288960675839132835105306313545873957968744952270142351663677547821135309747765799073246950051896130358315043645653884966389200915719399235151036971514157676643266500418012294376076041941159924136224699559050093518456768770440995731924830677805058804437047601468917325008548995450158263857153667253773469479167993173643858922662688064793795156610133248037698954952823400358595814263322956754937492016336110065809755571644200057814424566134981457230217460171950576279825581621727016980714613764850300246528395830805913153720980000755402737940671814431230898813614206687148368915608945918016489263183085648983246606673544793278168697812700283137077539006295056218476594043490430242342185496772313175920857323249430099073614223367879615376565293914273229799868869945419567543493358589615569762130379607991473232515521146140657613921145215902165565634692698770303829757249151100418448893307462842955685600406905444409327771021554470415805648039904005574911300715092320873894572942627404771940039192609973589478393178708147945403542905406904968432371160605596963289016380693609304520412545139455940656072935329231953934011231131128862769973785201051534081993473472340398165477030123506810145878198712286295387825164796474389241689916063336292919500156307964406213106052293612529159367202924210523974570795009106796147490110662043357790618429900432096837225184164975488417207547401653018021593430799958151732429171981727984849353503086547053463250814784015574896221883760572714716608618810431995278845462625678410068008004966034732355693354447600707692174720390739693113513070136967182162821721405346731947106619959669605605637768654831335660572455762344926273027444688082391961433968722166086875139430447665250223681172942883237064884540723057513466745603984609363803497453380944683084516393857271806213276815375389960903876010253197335897153936879479349647932686324484450715290851592456099679970931930293683871569235582933515907244402264970430205215944068031391691888625780439712164187621661965671147876988300702093699991499071352053807472445557570790923106264186177961054364632094991030817144337216351362523794459793164934581331375495099665243628701549644978954989474100918247021129764100135937627437089999397630983733487076694482734068496908729366329800635670165153090446994335295330778612812970742284731059287162714900792204025354392290756767605605227541163122758599938904705263176066986770625111792570097429521547503260200500946331430916424177998274525903360364135540673138752615175832649189326667739075295762778070889178143653712154764453690790861155892371323709692306122224400319932080170783512941165393686403812450351717887115883533856732768075236822427241349231484513381802859895175897101982590169848593785113340274874195223829833329514149837716681105215071786967056683265999123556451040265891546105723897856618810361810999823664096206442948782954695070032808869118768758512591175633307893754078024601551320067478955837222478384049679654130207770312307717237048734097241776055423835518536509628314570825223521341145598150014121859153860329054422845859596285416617894865807725207003428442192730974742848360996007540689537758445793929676538263083197825275707361978450647914784001594326682957856337217538650090900261613172927698773708484756344511388713698054279562410447920615978600678964596880710784814303751893665047601856196462604700398861769996737521723527995990176444721989716826551834711995957783468764588339964336663054274298961625519775269613729378664922786068490067532594658659646223271707202087134977700157781655116023775157514746889273952394781926848958903378681543567637787221248599128915225728781642684125423686909436707008221951670921250149924257996129704876960104406899247222298370725602454498932692255379396091016620156562966601840921871774668517989975405526360202011741344399685047161276470166973018672579972095217479995864344412250315844509440789835616677288691859493781136186095485236394846377223820648211232579959201850720449268292558050735157769717263180234487289238088173879305979236262286108245279569382037905758265237292055166696954784971422211547070275686576251605284071977306706256919120155956908133349150991166051274751196840672670737312917276089629970289100422029718133826821792424561358592218343143698784951229683656872530634007030072622471992162939335689962653203718892745015766875998180615757156308502378064985287906095955330052525017678340208550104439459440175397835331795414376213098894524355037559317687449524954677373966096586448361147835557830853034812279954799854937931352623567163463428245699137133373602883028588382431048956674756593638584691560286762244671366467565999630899328855448073633665036561922384355048477460826952112944818306720196350318040247783040393464809339064290423008384043121072204112904521876845093810609329592036719902993614943177619536330225016411048297967819345490264809871348142751419095089381455994331383291243375433473125473753126026041630484943616872654511016763525929037727476210970973546574286383336893405766424318580507968069740143769734865494984690113927470313390532827046147720108286551847443369599052397308230559414015423051245347237501973752737709921573731852220632816927376737940395747218795473719546943316952314069410346656078978248680606882246993526254046473225862586837562673863553511709835684885776012017914315790815962642583522143994296270149500236619185327313922478164069783462879071841931808894996867392878388746468518549181486631797822024976355741783267520529081258266823011178451458303664647750851947442954768199860581621140302291959937139187671701652693238028924444657826454372881122407816432816153400628453636383559071465976366867926972214330500490914463715186174506634232932959525765394676589806623168760084834816407344595329176103892997902001975928111388753964008414557456115754847202289704201894318376622175606091705380570083138762792942522533056413226640721446184143796660016333515131955688905973322366159109178195034968537853505823656982375463226138285025882967788958973864131795579267842690037860515985608985691175971467617183619090971242909305907053079816544606072726862491665476000430843870377900036702094967997354675391820691428121833371712877483418220170481366625881513801368249759150813473153704768564777359762573755090720844884914016835435180185796094838485101596342526844242919033692155108130483395928569527795679096721889498558961501849303878350803506435652484002859733643212858506212460120781718409978526656300679796592066681719575710337456852255921296487258857379860907925562752571899488216338048666493341862738144218083645604502020076409906765457770856622083359585218743569869379786130872942726372465615224675525142738473885420258207661257162786923673187282926139718007768137439620775259908479089064382416488233889830711713534142832521187574766351272078245367871724211963973483069107246491181452242626388598090467570180946766296218330434676765505643429319487796176865000426616142395742340303472907210989231260348917337911893016733148457030113791681355066510661977956188840451924031179098360670979230208308621941471037149143934898374779506324002291320914488293653232871566431064158057814863894672738512658605714696007624226951659133958911326211593908718013637843982626747697142865174420710964136278103887486864609822941850439280214299920461775043720498104401564703956858815462794966808063427479361861323740435770346010672969419199437459875971925032108608714503514993926273786395294074408619993215749857004737592674013253099359983242785696940426776637929599583196405311942985208076203819818579684003527284484164784273041593434098607958532943364815941186370122413410217644710492071262201407550463419083338136939227215260287121205893212414173331823257742248523938689883155499877710084223167106405303682868935103149941301363342001645563303095928208624052012927916706150991453270140835611841905535433857912938167427887600975962367508165248073635578796649017129713641969738420951645310437398134104233092356391797159237868086503976989210961372922036471929052881448237140226911686506151410853997975631478478306794271347593946246044203548420885759515810410565544574295177675226323624883051908496306127024383774188974596221061864052462453150230047010173396228104703307215905162443191754486574993257388254125224368358016472206729947624493375937988617726036914878015059884231110889968360694325366516881871277643860917100600077634395277810878239603000148413971997080077336084373610743905851601818665599557531284426803710618870017151201173859105926647195474736521273447958639195209012757413793223359287812698803818639882144466192005087764355415741164086815887493230431016353876404357823067903942610306847076228142832010960868752823228599147849475128487425893418773347582424405605386793299812821621622571201046414630097038834006563853668948624754591198091253651581789099782915533123464858385669797134168963416811366320833993968235124447265584528480881806281885322923746512545289154224362469711864905581287198751264586159458563259358957090248216149844116637066326481614748371939430752093158239154415554589869706453165132844824368500177418109360513508034093693208915599391586992226459759905690449439869846123124870811323485064629308181323572492816556851653919836679933878107509104103629426307989208705878774345178373794109941907768364956752515225628590077508767004809856601589394177500064683969191450631181938962306752753156621189881491432179412387958752739664976932694990883080858916381344321903658645581258310194476799674570808224332458695474117315620755662667129479549559932242450318417991546634828194554737593227033595455673998124000716966617993061511758097234815081559046758213228837765233718989633020926327056410114488732641716893091769660648567390128670867865771217566814633751982046062086641637273295898555392935099759166654942079338885059685399588864174690558861685311759120394926169969934834097965191695318195105566888463530060342470628907341127161747577797202988504703010757843692255966792590385969562860673644716294339661205772328779658978567468194658625966449986373421993582412925271838088811657524740216677207688528822799936836061860085116026423717491141344167441324395279315698259994553552551220399563320659032367281667767061455789244094285963812024972484271964462935858199322242390241054061325878205519857866612426640800487656421062085746505149493122319758110990846185850415188628510729128102392542792764801557548444278744777020748290103009680030767771655382302050977919756151681861896174394651672411238434482285535708356383060373506693790085083984271255519168080424025668178628125713793158795283458050961300827473867761267276291353379840328755951415376615928599959462119908727614333940450928156378969188056490937083575706408565367989130323704143144427553904637347150769242356529333470146857307874549319968500917096673761310229179645345176297422538463534506596086190785627041561889972554770826579259896271746782035009347959671725516051066817481472084356010919802134129131236104049484005407830342106465538114260905083510389936766580678431454099810852441049348980532486534256097968836891636021296251409061306099520227395185051796049807259629605651930097173335139154512125805081919408120727076530019959194040222286971438771961725076243003086675690518408801299471158756354465129726206573188559525481616095321583549601030440122868703774047653007464927059043367875330194863533692409637000574004967557494814925079966142697607977970005191674850907656496075480346651533084861082120951690148272438299420013315049417795237146346494732568891613137600721798746124086155330345353756216349237773956675097037313623953367557695102112988776440313649932422675986407357185899445346466277092131887784469791746519406275981321180281673602779490183897815803608365818350677594538723168362020742045949410348757783464387371031227890444965327678298517929992689713856936448883003792668043162176463722197844081083103254316151561786935570322449894960528528172039135925405133738091629788040549824895117413728141644424727194486747399164949708278525732085452478991959682016146610181717918792411583689064783991290889243039179494667666659171311534262042150879844893924526732050702592791685838999738123212460752901302940841373722918030046206184716987817607613350385996392521548933736447652305902133637949908788475796667599933160246992471302818639638796238615443584171914415218393856141074509099368564806474911861441182656951610028655905840350635730900504077876556453271449660191273874837077621217724062492814238808033110811960175160978531630215013453601629607504142883766649163659601990258323861824832301004022232849316185928896548101607181757456049791957362815329563529027432102885169849428190947156577924597704986696035736043389104671069136280221834584139937278587469782837663764335860752258209178644765309472226391412466701926132234422817289514735070395160736864473773790361409188811780991256008083546559330115961647303092453092929071535370825823110672165176156690375644382853330836559307617857786040457481594174856471831833225905474892444638431568907487721456865729069780623913352897784720371630027271627160161279951974225008203232646786990269721996664924615405955659100869889552838072316913255117365494296087982912482272694068233140853836719667598308720850380713713672204793162673675105790510195148820332698891657865709018827251274132516803576419248061223385706175506489957058219678414289541967511662659832333995793103658054538545476539998674456816916588133057587630662468602232086095155291124754344255058900324772336036732711580296591994292755080422783486563441500783571513575894833896320951357387112104745194439007264856722882563983683397568746176433200085477079986518451922067832681896608071095342829776586578641032951485880015483539222028488295493283084026988395057086240307307698036553235783412900955072738371675297760170410308574887588237455832380367536760955458870381014726941220141381922369101981881682347286436480052164129450203238173756244747830190710502898648469707200943805443020355736498864036260790921711177401042039916850405664177315170236658937928314155732321035234100987420992286401904589389824587623751374973736729578855078018464767071964873211222085023763399055445044190890968303666275440141540012739701421086705026743490710726441824320754981502455069137242592753392677226057769212321534630707712157778768821613691853585742843129149666354272626279508998445076718006934071225098957130240514008489948553966010136263229241695995454232392908523835553090789833454698894124704063851492523478139605581095986459535642275342385455887468570752910356451216364666209143498066425715538685391195819025221853462747008930617605293220041244440726917490542545038530156628762078924282753930337476719453687400754395007247015338270812759913124250207489430572101640511310186813015831136618444891185512563291279957252287107362638109132530400016298457921331338328993522439755243660505109373629886123801171241769248054203340173404727331696362180526395920993156468634379481748551875941596283912860136865688993655120784099943807178584082652805078265631571420223557284093439439786924657742655413609434721514292387189729628472672317876580467993121597425867072544987164736690803124458871911600264467521152205030978291761332217866913532589650601845950703454077879842663210490775846148202999864251356738565452491295835377932740656489536364392084704507605205375695471469204438880569481840927495051401188355672251257409593520424752606831779965235717712339512601704737133704441158434379522859935689561214863580461164364162554536448183110245211013644476333418391312791223752697902850824484312409871014763676511673444067218648343502357035935352909804126211760437404314095318120805335376344518485861319472895364092682199899823316930568141563042156362447897291093057590806296648106501823045160439945627678429704541620045172647244423037351867383797829233751728816164619819018898275395385956633372182613782197124153460751316828482831042608673124518549205324855599172646441386083624752232655068916479264286063768646903057711923504993052596029021312840559410888688044595421231026236225653791436199405559866643513547249537838372367000317417293024502661939029583955832994398382483800988437224254919153607748491253361645208512222313805900602109458509100865405037113589073767124139002653740164916653515187742452326042622763485560665028315412404295115397967946426222139192830043167578336071201360204682929324858979144997135136888913266576021967024555407316587458619503414118509920004651257624943973629606391539724736181711106136439501157546382707970340791303418187782595660704860273321453628952318540356261011818664076906299325543013567947780761832831270336882262337764032454883034825394078336535245118380115521305959943313173870603294093893927197317205506539457930178586239154222411188925659977980504561612257990095041097183504604925520419319980733486400120740298265099264833411452516241147788726343091713380281192040486322782306832930579192663935284400941582206995160667777171831327112763475110284613362145458462835871322049868588732659405823957000512971154996853042355811804846142597673884513897903867038296255948199893624397818160343074493507242664748475177553564828904373326550454598573646849936693795544824092374571946090905755090042938089316945136381127392073992273611813819929762577215079750553543956402304658087770588262626902467375804054990315364375518951052215045342447238549562934191324540424369002644504964703075635890338754384327557388858987487279299191473237988143503033606330328281088771755216291420640947562885048617465741036997192690819027444697236861428980060039303312379203310466784723862433823646093684975032351914989582723013588442920232588097244874133074258740396441430079739849095622768810804866426071670760758812386074458475061912090198503514711324150577683416843360545220222205685871083757918641115059277145967294190080202956202655015381533257400464190320671031979032295190796488513637148039238451760732518705831454764125321951947201138210662427538264689855124718393357394787569065622510890528502294068583586667971231673650111804472233936945450922644535223257886807532605263158155120389620184635899823887183164552959412766333554553844607855046290738760151418153372428351938114088314810080234608245080172385811577578166976552337656478093335267929445291339856597009820856526519804219635866225637682245747267375852339958199876447742790940075395248700863870396747996489990642764722212581287797995433628869467165718195860931399317130724823753929890280899409621614473323658333612547479264212351604445608924325961275799135290786144856999929935641648161115982021624766008817391685183793560448939636685503406599244093765134021146935323078417846050091539451585388792050236406439597497370393425175150378816019106677876488545888088065503811305037674431067410505593715808794495641945662819253278720188853732549805338395166091436189250514733517980447063569441237463748797112441852253857900790188044040909974351569639284345378575389056626204402818879617349864786520005357749331849982467292829850516117182366787520956119762169311280462466060738842053627355357560218524736564006099419962734571557188890596317577451480189630382292903322938187694992552542220338121238638393064457711997292986392281305136658720697452988900311415395522457983630926656074453282809219666055477477581720744034876549397386384559720022840380460908122965212785405749095591071151739161118034782134967376491535883792314091984511276275388220644406491082696380123788925302858320699993381557451872544854816105722315540367298204374631386328821998434851325999101285394040542838514550658190200074756333353831064071386696471215487119602964689963469349835796376131166068214625001323331434046439500813487222865562675082717516418564868450811424631930069230563177354153380128887893217365258611231786896938194079688794092867808435305682107519872389689430553784219360889952967096891529735569529521303126090802454736541169445631401632178050504955964155115548694160507437742935463086249794338146540969584869953824341905673526038123772902892404559830873733780259427326266706666669329660045143466094190964798116921989498551403926575646325780597833809611936272203607814770914423272028402924826031995648670133748007951052042405355241927156030815696656251590452275159160018270782299282007738445259118769042096064051926135774244583969065055208560095451690281908639296434681158008160929775435134975339762810261871798277866726985440116520627798955111106215123949943881744461932203538768667080500028019054734812158678479640308833963216929938655007994313448098256032554702700256717084239297934199448619107456644658656296483367978668616971739898653504648200481363215401610944089126777143832942793965516028867593982785499172536536850453769862224748837163239425922083169760221999607428072783448586742277436363737442481782746302019257519825505874192894028895652759915170051046006286289077308753476427703563262797761403545853526731581639686214498936839061581443293231328012918565977191097752172158629729058787696407363646985318513044644056159396949635656073096275833020717415223986071106548100290246066883957617634414657132578129056164992211822167502934412724940034153519079105590407694541652240107301844056227115422320807298950633456400386516233978585434121702936139299018464987332613111888418973780248462058629153957095502555856821289550923348106977288707104341061407058820825258797685960657621493200621646623313777810008315072050709429690303099999876497308919316967822572630766579758867711991888280344088436060987778254735445295942472176671194756708366466299420861088258931442725230019441977462077434056606973527069753598925410111013517534290012349149903848387074227092819252060150654641473913918420306278592407116170520333677818309316727153987291582775794174278980528263182304213574960564947550682372772831022061347117070876623786461828786335640464143439292080507341878526821129541716463126532991837564963763483956018581116585915951575572998689250537887609711814197238513031649462333761737260363309876633864929648666845830453385212753203118350845594910353962715660092774805790931633793800709549819139538335309802156624006627358847316261548128369358643483208213833294555223362484196537370648520909204743797217236554320655953186977149454690178384976823372518780956894079293735867495963920157557575212712357484417446723517497434523282665076108531436654186914088219916097947783943867318447362292217930013160690283710697763338683381123503908848672982343266559792070988784370170448763726595583284946291715326658398663291225373391235975142144332747747750704648923760700852079934916340007097553341425299819739448996231855411663646154432455738038247861490061158520220947869890219600243514344855751702689576289169224776489802630806291981382720702292664593957674304312934451592331468725492129203711705597960821633320186147057921443477956662590840992446588363275131027936133154547095824279439820024680429153307930843054908614776099242190626327501507873290536681567496228529348024871478926475199586312359996559329150972126956618604279444772450935470908776303366886259046172668308521525193329260580731476451775777401659359730226062929500516153959586053567315685858982511272842432398690168566801144970253455087836614242974245856864145707225227235716674461745992152715135376326053477271573552467392067942610945504486346477346990252699864827750398257007715120300225982638216081798970270247835473208896871165382297091942074732970464307842811451525609676282377996416516010517144684116619643822859391827396593751563003095108151458172128251170060581902792734507500478683691500902428973164093268013511299243396045431271350386163417322409707659254168018955290923148960734368610936646634367280276012653601761049070858662094961342306945170823853675584189316730905987326921445244675328428347518078951943438301635065619656253003780327156850802876310336797947900030426734844385472970217116601132828758931975153811542268547644680069346690112323994837031552418733026014853782084770098264546066635195085831266661663949471322375557528974238028467595239385962953039418121178157568141214322234042546430087118116804803643126133931290650754880772504587300635277116179198728333298634587431095903376603960209614462296291463564399485935101935800028613334953268331590487865765017786041899936189067161385977030138581937148464595344540091049474811474996732154726341988286896466294464261908424852561417032623863804835281784561271137495251750120712122757148178873455196503189321398981866296740372625075517658034860556920844873325835355886883651511945041614186092982798173378631148253707550980978720747506925049793581916183741892066202161683511887607902198563225881752954277699517693471819162286145539615170646994213090268126430795756101801400512424327304498679376730882576460728976837353244357443458304668884144204593434197550670927749097218892974197729378051849815539058464889525152006871036275375067896431556813625064089688087211972098796629014284274760712291235571234835947184907381284430612231214455409977785808563003098074698175331605996428408998549280672711669684008901277876966750090829095376364880593847515459708680486065921576128757439412999781705501809273309142158403641145356373581150800299212948845910506323888581343049361901985774659095223396101779488217349929213778278066800444479494961413582577780293705594001880024221514234530925526163187244144717367800930248773076259473775462328468406299452224286637397857822877437877099172503029764789876369277168307075898777017525703434853134299039211783671321489997500208575071535997819374853709587247305296961581454010548839750307796289171084197264603504124369092072116057597851028146708856640688201131191095041094547281142810091877267381378266003184879481609148632601770705761293496632741008818550125097071025274906521246201468792905645850759705121927370013988184926749678290644146380600272531221494626802140295712709490086757980957880141506816709175993972396088797281410462618663286054748150075895508161700842799785387598108226786682144939484331406299688639259730544591333456177232145755214788125773868717750476252578653639320757755942981007164349343661771128378880106934399971990297940203358081820922711208747994511551139351405788173770803909314753102036798164659492486180271826993282783612672855654186084695265034863488313777061650516890663113588008576075988246871463380490376157477863279518681285367398776398632400055290474853660578509389482199575278454746414333972098852031879783890516287773944300347395310383935121084545366226089131734653814908852848996637797035747823895085401126196746718517865915268613159545407918770363279357254344684324708637272783155049983127236262301732392850891596893763801551390678184286258737347312314348926421219966663355014220449522528939200943526312913799522926819543020444052583312213366864977370891921404199757999266963280177958938764096905891128123932301394254488551123015619528545359024380245742620084189186621860336244896383007710228496313026101491225038854155889580211062930071534432329596263851268996223938741445664173223264649838757307957792669131635366430499557233670228539972122372817121766862605090832435797968221881752985906959491512633843681240724076730704479879368423963415028143881736397133658788588690288261693307365219132141872940578743700863182795149311451064702269061968710070321609161863577530614381251761905317650511416267484633816681463004052355911792004284463070367274207437804730259696770694324423139717754731541847877210619891766778239513211428768134997829970587106338776995644991049268785286296118280970612417264213415073259175866440026138216032774564142194382932145519892073391835854671566460291337012268605455593750383716501412048883920031484773032016794548234167715182834204878555379032734996120652926553596182207304689503031375714721445678262375148763136512184457729333374302381913282971460261463751356812258910319712282993596199827896186488261803296931963420075911173992608458241215887087966422436641683945465718197360291436907349346801716135452838491997580843029478316057353136556650487496587456391813254607370771978742134425466355832426629587415683218095897995932599470441244869328011886773190003943872406987705263540795720353944282267633276464953364766445876369627279185895249428409721726500883398498912593168731409164421918914919597591231593602720721167300261270105800587584010565209181993658583286480245647931295227565521146521660854525253362331267625214973236988021590733222369075599053392664517347162031798564215567362139494065127040509534597996883717939921991132865455141072046116700029205715339039422398685464363595071033770537565384765113682410584918166622079944043497880118536068294715928385337053616390131635107936325981204779914462026028484579666560180255973543296583456874634945309141251610622611682996747891447895744394739645298220010365619553951889572543763155311309834191607591652788757513049989694317754535230494737653675435698907333019019093916148554022057098120310613704669877969009114020245463906608510808787520784786356044906146770055812458001405777658661530525315209399502380805854867253502318638141840944499555848337923730521422280000464545977961712739095604468635623065956599214210234942564336228925999961765263532234827229875055290715951059620853484883084913311647268998471906226699413212632782186252297542172880593628600105988628165050639792685524729744263037055320838393067996182876627323442432414954521292781979244380716519567488279468524313763118897588219361789298119372535247941302673186940506691096683129947287135445557643350536196720909377485348917328724422935791116186461555961303591405459841610028444873295521108954996023157429944881393132100892305496381108913738857895533617395766744198292382659489530897173208182640308772378338183827907430961978054560627107130753892676645300819747126358935515064049229290395091613663674891543508328303643260002230262904803741884124681582714698604944672610213876254402570104737600485758003759807884844344503389948632744629835285675410966376467969978315807897066560198501215746408811038993388449271350779390041869824253120418843831618276604137222816980500065874321262938815951834876063167929409817779554191955474498610597482291592985305215714382775258244310033183932309536384341545815114396540948718547538612856405648845115573934400313182355676680516425328182916093860757143019873398129567127182762107708274735113505992789932918395541827798426572141669228750377708858579592344722920074838584481950462514251967104367443580299113181081831383345440067783147502113602635714287149329025330265116489094524380341669770035165602127450548127536295226020518931811025834917948856598263174028339787189901238807630611170738622727686168838888453418129644678506582465532175057168737725476069167095568946658818124046517859223592358897172444596321691262492217793225457733290258429570585349616802500308317660727494678703588291524303524735976651310955968960663578157784194824320163709056557853509596304674685861977281996126267147725658198028717124759230121725027343330594167150774343658777262317128663727120266008528229818205613437232566859720375062625950503112599573328652052299959509046725845003130555575915623212444493818781851587444206107243307943219344938249117666412013963900826871539959694500595425357113329843143438758440808265180499348123039673595239499593643536024113428379974757439831385768633402815849025384359991594148662818453164814538311621250943840020765988494157570899207751043493144340059940343917113869713890028926653558968862007969875846535515752431643689376563754371465036971949564628467084194946609782279696578479496074546742338309006770104521079209966415468189054108537054744627033484319291242497050761436404420377080586576955676183236984066457350294188726912204736048601114300213535810911281198536510189179696705436795370739114620167899451247917716150651396783073144283315889352452045935759515689376167678846349763464262652455987166672599199721330817060888712570824028439183288084674470808140111996712308523506240498253000945536155313797640952563352088897306064706333240358881697571208568115717338718018637897305952573474623312752545531479113819429873373221907534685643598082853993180270719912137108674741746761056216092285110140261542291959627895228980743682799804122185723060544507017409594544968863297075025139972766255139966272098940447147969116967154494466138640759820875686658024342680491839029320172875623874342938451592049531105070106386256565917244961594956866971372728166159891123348722982087848930906962997375696869156308238931521862907392885644337537277868183170709752416340274431487818148714822737543240220377153104194323130639390619538050957257097234948624013459566257156663416420737864548439545742874954921360140088342186691055146370049682700890325803807055187739030381247477537431885503282977360895354919346926204311540770943188182931735723367476375174198408264873186212605883346714506415781648662094167170761602914665021433529293751150472767963409098581492440216300713160023034139922843653412351618803464774356459361429308539568259666071797485664226615386768924021579780985518577575870131314902469510684031178702440230455038571425979749608025285107131287859101718805942828611498661526823590694558033002148829794682521956100850790443547821229904125595627568058352108005567530482210284326156950426762216387693688528889824922619895416198865687363891417855907470040900176836139827915150360934540841092447031040667447697447452242106020967368135972485300606124391340813333184101106829809632522398592594105364020645383042277552172364957027466064197030021196579550023249925989619158338512780087991348787346029892570445707931571486277325151903018801826901407018700833292800082623436819121159081490885838108847144675214591368894541677887565883822201650846568747033105244063412728755392473648252125808757724929936320233176788244162696456218016751356927813116373426260744925129417183876893479446812804630278175285333120093084602699907591344134782314281789439866862058095245470158644768676475008608046147352254663528364850188265915199311305205470143709059294385846297244799593461356440326248209946973453779661562432506016226830248331186198671643782498859855708977900992287372721982249726491926335032999928915242571653697538839554336224415213060010705037174858831257212611644358062263558001393439726281599429076335860503042405033640068257679105663151418836153677907663259621506604101034394427591914693665862577618424965902796818930043444410557906648564758419354707967610103009344008433182697238684604580017382133287797259496692913827207894885380714481413257431980057100988111444318907965090011518212288062559268944174055332675123379086815412974077104371975644051796809770170743621965284068652171683642685958559033483000961843624642187712321225462474949585862885135071800006420718441445883022385037171193062288693411621502060622268367285620602090622612742234141180818407466485350794581390060952337918373382691781375209209211960718672720984092918287749080195167527136315658601478589380676822135504894789087545217948156643362436570637361734342414730660656378438350221297811892632588008988174455941818437295419449853943743749368834937452527421454860692147286632324564308595788759851859112654481248195708573393010918632763522386527234776978954377106594201391964081514160635484935297164328795292380337167162083498881861583444354736928913310267315157050007119174695463016120627911093747113042318100148756192718703726280239935183815455244256448155999588978276829657809571655097918237385429824649841557435716171653435042616563377784646941905226603017590500507729409442179460904951186436619857225770269126131424721346142268999858102207365509553378541315694712209341357457728661238190572182722752515132565333858503695510369390623638598757005140532092933264583950627705042497955008323131175519386892775129337002711868756704844622494865772690485229132195952221719124219602883065715547320752410238821488141858466842469135780413907518744821984709237368936906878791491335962995696300829756670392321878667848252000165587141713184350206686462000921133792751149795606337764345679041005139911629187396348415886424271834767650328566995687340229616150776457606954765498221946826204657196351229727254829364900477591822189128732273165098494475217828698398872026121738225181508372762271774234032653761823418664710101023747640533435201371110066578814748928651415919120792439415330474778619524247270417984813401055439289168269819556024204988005534332499039451804738071389614251570284754023770702483794577498116231925025538881546302450877437142049193232693800352362181793960583319746482145136258443633135085393267230241247222097301595695583408472308371758157455797176271403860402396542673965685453858334146461499396678670312527510870836237606387444503150362830818698458632545459319099102940230194623346854186181847958090586786472973549739265186961674118973374549605102818346903409526097172863363593984322802258955076506346018804578694927854908508789657786145580230631412421535204728767600972916884778483405992116058245050438752950570386611949993261768745030970657332706575878457669172489129944897347119235021351871172891396055761565653927010150094540497807332373107842825387951263619230693326065403458700877074948854183116689596934574440206420841655846688008377006402683728808621886168312732848921042510343723114574849646702831710435294632618249784508691716608623974034589745773861654597173378720006325460179690611257336292446804275419541164011967694129193748976583359661915046188681605554626938090266301891271733827777114684705448820275476494755253393015015992866164868607989073881975678803382011668631889590665645404384656015546263671163131822472356613136535997553057438827809925711060876364656386883756525218832650230439008161990150075775784690993821090719988857989651156707988705604478261999589866395494532493065896542945540709547622447604430801481474125515574886882472888772733473477800026165475550222267945313681111863104178085401744792966133126999059463308519851975764363102054864147920747785155882353907106798842568742943461769703234939922653913243006477352850265032445122827182399023698301200451100886999537161585066126268976372312736918388560880178207153795594578126430912151085231319907052632326191726241620849615625580542589833864193478993924409454200589684976348413301396479750555953198914915981494725353505591037533356270838691697378100759606526229393147469056668020010797482858140140595047716544850073338739532748543344358246149838671179992250615483084277407213363095808108697484476884987902610819611422712435965366257572817795711172866815416183291530610386273913659517113786962590724587162227875616643604847790334526905076736650400813949600635569366695183444347677579364496233914730917478952220701979317960382631537452995387819685128903778579303399885516898646480664130591760698433268212563027054807802550537000524198063999428789018264858190484411618149026535740126847955474496277607437418863295674919321231546270293699255976493324310937154284689012993127600971049826074471838515819906123374927430085323735442981447099934756382914394917650671694130082050317479829268502134328043611629293679466975571244178130840761941686432783031606334984444886211990997473168487626867813007859172708847897361344590022654024215671702489419752360008120397960280655142324143505371798107344452389089594695257519339063123039139955067969231424205926585236683507598447190700970615680113284023212937837910774406347883910538233298517595719061111357096951561909666311846730686267228570775595483626765905639472241504532335870727456409889644709061308948273763835300745087937959106833595916795105720768304676142914381469249276127943927332088637772725328194579858543412701403172501349119497717986377162578937505554939371456042964839682422063990349635303101431408237012542702415042380029669548085706089462431083159643225182169669485233191512015595674942718502841787215838146558964817350586511510080505216467487977059647183926438188155077484947513363550305786441999891310833407915332924420291694791007311376185649257373587435981289323460486996453686989543185819687280975842496716807822386190357158955910484436408673140306617618185192625867959830825507361764378318289079100457450079859571408463870077807508228999688008794659984493246008316929366889839326082800653781933804341504235315209290189459556633355236644905839862702312500224037871064076617395993969862889617690546863061259216636453152593747055342955807603443043411473658258728365982675096512016582711645896029897480000058132757119266512349926123222496057457843013546492691685405008949014353838055835408777828008433682479483643596743952162695207191696061214836169159597826326000637070033929336585779483941510020855736020388301013048032393058016342925847760664987704688725179409562129908426187278454758649438730943781656648286287585204702804682291542091930242896485717953315166862635060066494515783128362429615502800230896562540530022904924130048552544181710596656924419465011551309074903320555641985970419109577186880034110197727662263824104202456554913534723693644808524264646731382796606524985052204512072466153750523551350882310584570064698079358532078020417844039012749428191905052468301473478846690420333625763240364020041941182015720862124656989354283792413693649062135041464448878200583301138395922391346695496710924489544046389448768612560484982368282372882297601529412808899752551460039803224715863710874915119001231564557887165812394304378266221682430355529967237615422104297574473578391586847243180124172630215967525819052821051190540399402750701313039427439904246385347403253932010542885682142538596992112252181748738354275196146509656571757487153007726241880403209221871869222421071148234860267303277940711029436849786656539267381148672551698706352902008533279465010339805458104928059549926652619945355479596235268852619235160597857383233038591688704736917324141261029346870825059287696027552759396956662754191714783265629755027808751436391096139407566073720050364261233579289766428799928245921225591325978662927965022713650454225130247101024152595823597657690822311878353171506865207355528737099915945222229078896733057922921740041195591214018346388103321157734637353575143418693738884302633650333185557183748396770126715080003895916386389213128106240665979957179331872101927382400682113488648758213977189951784374051232830196767270401688671874890306924154214643524889201390238447582071836049908327075089737374291592635567450141078606230254769087154325393830827693026588572103889775984685683568502967513859993924428484645128309869158524001357218506194647474138091033427800273606268004541298465757810149889486144268918749240627096447021191158787061972132366453755893722608686304779144125478088897237576558671951251230219513532230241260243034976636312575860220807907440854452508794846594427510722312354045251460992435774473388980962819543669047452034293156383819980437964101570521150663019215902505684264773791245124681506549058632829906361977390897587895801931414584526345321369101450693432026554716922104192763925679372808432322900948260900390684908874032849067816640087763501193509228835167493662445234009608485539069229398547689442444047120956543597182330753876050578385049349706350644053358509997349834803157893697040853092807669260270892952295204412007081422707907867925742712933628006565408468598216645385403960191607458386563662063518287957624062386297666632485507165102406029745796317994483551478257672487508590877152027752756046265412493066919862733036860678412219855990507416501770705392268634531249391060386978997405028000893200973519669443689981230128813504294170823745691281354521754931149648972899275916552076843612446796788388870375138769523570499603826648793809411235260159430665065335019644377063999458662125541890901172912721838347529406252646516046056339839585393453538085001941378796912701298497052424781123170144101472944326113822259854868620292615786721847272444665429033272057385451033967762769443141569941219259949807963620107172285067069544016905466988226249355032693738729262028915745948975200976762305249940737274963603540269515836327970816386914043780334805877597555555380097490521489512963341145363512126376043465463649362798785450693802772293092251512321904296438039860624724286387348729960607540404162270366615947510303159133186746205699952036398134513890848951372293193317676775169308618193670261477180869905755351714716984959389910177558101090757646337450898309396815270484520902474796030273181891647238492610282887586495864999276861808804021077553815717853398308136468866861835623559571135987392635410667183884522312641853935168583136895620419814404227782323605173015396944219632786266694121496650925844546035687200944792663433811590477125068985533801386901806050282678329701863528613153210163171625035448660751926179666076232447730027963271269425995273101759655224337201888594060922705608977326304748410816096582646621820260383048778127689346601482578721609933119810185245173400217467002419339546415162753786810720957717903527461744821613406059754047858040375811153956625876714374507012173438940409857549379110954573074556716184640498155957119274010362077270707714846031679238314850659601955666778166216074254046427054131039997129101676258760320236351657191615391090567456793095930626670852734955194455447424092690485874063645509731745397712965602378627012330844412124979107231429648526412575784189991917209963368413163880675408975929950075960031688047617337460245225494007123033820675897199388549373312707720831348074457907532362659923745940503157121566091739192601502493265574614744051136064336008257151703244334930907835968800987252048515257256536995840535356034310117259251077019562476913043820254213066078607809762529482459011723322276403380797580818564499360815802756433912195265050175200162724264505077304135860536363648212399402759940030341899708555482832681418189093133556717674116256311378285488501098361432501295189892201524256096668409471322553815929814957608055336786318093093086069757907555129928928257401490710220450493895794934452466384672946768022446852914860496716425314087322005210446311251331413259085224672213691070117595346681885048312618006345194500201008552773485104072316983913800832956072759259880032967837796760858266144464339160591101458509205643785577868464997259774883468363241638075390538439047290534380729111492809528365450004283540029913083796102022629253798284243880717907808125744845626024044515539951333648042248598017770759389676885596645054861604149886492090690894698466273937075500916562336299639134626869514671070532830326441537697077555641226779137367796427420407677061409675979271612997140678438661722198539416993400802790334016581866521568556667964664166881724484288118675071564634857578565846370644701051178591165919477585498159527870970833129536671062034848643515616168393282650502522375472688254238757642424666035076567960584226132990282433378572632725720165123334899956939121891441081519855126696519979761899625125088675957411905584753698271246103599789859212937128808858219365548769460947079360640103614625389756693887774033151633028171265864146478349262388588960501186118932433292545938139818468845077558967352479353699851836064965454809552439498114001620404735822568511741468669280218465167115301296856983398995161722365116210783213540570959361666810091228847926336676610359139825292046565039288817107135238156298712538274820683243510239793127655358347711963086007251565349340291036004721873408466491678091208471107836343981571385363967190860978946505012921870924663664333895512561638483332544839895946729630902464571950880328577808311177194741467093447621697988240161681721274576610068687734848067290772330082801683637675371910249951913166969180019168621654585397965559890959372063396606961083608626800444898764767921327121600074516769030610857834854604925394162975850378686387070153260892140913094699429823797434827963451542869092025218024071250431214352500932515495052585964194248917193710358915480442849756753498974004228058901852037196084102314822451478325719072969104477101785116589360560352455445537515058832968311316487208558102994845402448786883051956011307003046899333386187957578979412485413879176773905976533593021904466772716090314630846322668068369610501401748040734192404449293837855031100892090055372407138937446685613144136529269483996167433936729323840702912295263801021195916426242322869778008797610279839807371502211813647532494402308398839534493571676525566341997945881891101328909222951260333205841919081211832934921467110892601608619507900495327374404656853081208915317906965710707643816711484146631930862562188158625013892661307881207187079322844352418732514729194154685610654789794959879707351908078559271421724264306929375822595528393427455357188905954728726425521050232480884869804295264223107167627506794509685895782969807995459502249112853746290430808014878839694052493503751643038700991661583874370630193819100405082546298279817648576095418119517368320401941134345113502565572235314485592849712262509871208266423965527532938316763626979162639588706363012667054223335446235578846065986368954933032695933079155129532387652946558955683735029464865777736417311711605306690959404102805434030151140737388046025895760885181544999286459058012061472965744837036235333054711488119364721765630345204640491764455402849410233873893602400014965756308017329960157963442583454249330486597422499059937800838675154350802782959273782822813083635008623144511367679313932199374472013042785923831410882638964942862593101772530285941338175688161784198880873631184426804749010148170985430040192136891698634050030062187983427487543785290243132610243711081528177428947244909017116096795969663986794210043801197587240022735994438649150459198851168737845473613358133878870475163154771215773166673891152047433185361900478413106376812123714255989128331890532383619493957816902837220094811373625958836540155157270569626029664145307422979313925431846850462117992550035891265969907009926294039629322325587301015648375734872884076137900798439167363274820069078749081462085156315454461679668611406945032776536406726571692300018985798687197284225306362810395707284054541334062044003612972800724177761622661018230649304801417662629924866093567195561976347595809809946108109614217272776605591185118670773467374962448944096147023362621971310804885187644664634633425884285516563128272418243109233418183700300313529147912392962289320393308523854926377407874650257006416685386140636789507282383294019079607748035212596032264581659599721673859206000495149989425383405492349932386991470558965787786086525113245674440230960521394836238516046640753859668643477633072367504415294140670293243613544492900100984305486443287656932291307913256443013510853150375520994476913343706826156043564290587639347329731040826877265091126186891045645315669819140783834359646493153029596084558663565927111345664413499202106742262622111144409250214458510018656563234214339621492345268867329021363416304483513754191644877688012250815037073061983984091459683890802032515523259541585106368032591693598115654753150915303601048177553126383806940891119509226883967055777878077372228047951080994793774236455629883658607149969230940175081093157922488361430405113545095444960524350253164377984929092386595615773072891785537721204346168513004410835351246275029236905967537841862008501378232094361591970314518931774578707552873190509915682181912494754190472312281446065521089263047216707750796472627290185463421428494845966560811957305778407266319677437060273612428073689442317411888886686887835237758619398511567734031399965444990035748811790694073048465137709864396475444986949961990510933412318170717938533090660861330292381376942470626706593565847985858010388450451249670495102673858035846517185411314555099275310530009862011947210917763669942750195829219539165570922213825595043383349775371755019356899885974927522452283081717001916546789788344124431244135236104283194242215397758815510596845408993981492096383482053629076394197205847506662276953246899491393361717883887434934507938060890946780402021368045702605794345443358483682913306530886360495646046296145431040408435788675100690079767882504452935717923866527028089031128509942301308933724803700211515149502797981191636301477784617760979666183929140575144036731538233483240438064489771324787934905482552605084827341737658670992895778956093514995651869006699506497659319616491437248102104167547084691842927674001948098722958956514458088595602964785221076066551807443883550970000430715571230814973334635498242858760616791820640575103596688348500930835982272546464225323442393377374441946063401574214841063317683230957102291636994979299320030751406337610019687674807655272116505332098215307058455740887179518358495301651440922206363462495769902207848437477869754951351615532764969147390398494783568523458208260970580122901332189981330353063158461961514765934175733129970265992993628136814169081480545705088830227107788441437763745072528576271969821548980738846347363179393548442627740006730685986917964349714933403705030679869738912041313518399735455045043301815719507467460387417153855598849873865415662833533233221225875463406905138004362396390691237323160628557161341678309929169513945537903397396341440159044094714044684021868745446047896393433473998798713983036877011647699968817664763725668590749826388554622232186058282336666596454887347475151314712851764876894690219001276887440354502360254716741618606621872805150753110354553172713323157931595901456735921387099361344989896096825487511720720410607707812109973155697708158930283118841188011626983098366401440783900648864311831638926056039022484563430326006803889485144111456262189778004799828362909791670376659566703630901884964189783168953215112727794304949112423022296535582814882320299276161389226802187927174755391649689165451876612926162764764138143927578662070343472214135731346364905114915545002292402114479698224393937509703514140813258890192774307329937889619344579443093998210493447201785659774195746198268349816001579358619727958223008007756608929719931122601490753077055676700274070687144573945843735074961887890000559641076662401004657157850568608819505137325697045420723342988620257357306566656735949791693644187884759988847606294968578760344792524951793714441860856087084542787555046445117252991011311185210811989407148088217369844801181012282828807661963619878741150830574262158893047619809759930752622580388544572906418805252778686564973885336732146961511871168837109394877329267845501956522591549801427637870879861664280817481865758011737781658203885279490633505753307245511555958513609168244322239474320780467367273834534536041954433536886657930342732013125816838763300832219980931309521371462906512850341207384915723034141187930328397936021108949980025194200521191761100961129593549576294188021691215497689491434820467124984086098110689823657760950536312498113348990327283444102158160658548459425195241780368644994194784345629098678961234606093678848510640196127737198298189383476889088398413112872454938177064284600248725130748413470462853070243758555917397281800242478206538251296901224492326224729916610962098250090246179303511833582108979784675215122613353112771961538412809632687631919711368659295554957461817934465598963890109505898247468525180431679127906299469864500113122783271714391026294762704433913274170181795146230547163353470439615967890329186283687450428112254873982549191628270818582225560836166286225401005464798476661148793747404541853724945662063529069792545584084973348018814593427661811419445640016220109938532883615050175829585869984556377485151456623440104538414157446619737909368199727567306491653137155788569945374482031923640973608834411168636335139407182110604685866393502393741883767160968549007713796045394767002926662342103621152049507918739364320212274858756210543997360768490215405033836325122846418907613974472056775257043705993276197210925294881096544526280492281058107764044539919877652278202287555251126921434346538440196834432029357067485193440787199926557348036669125906828972121189008685881396453456836463704789891787632891014554030529915627945907827109517245548540125911500709435385014780803065990883325377611566680519143750346324980776751826449584314787368650633775701774660670297896450133415498268532701796015105353869960869026189737432481381553373792698601983878572643575256939470774923953662119054431851421350418732799213988120305919481323190967998781315125077856857481861256686160054067889244722346696516222042178954479154840345636267655150272509489585218523153725665830350183811552666655775430910537658519165255107270938208287006929890407071603928826408934233927508423318072675301360898419958984024371235618907513529481338768311663143041139127665188864922246200490337068746967031488011282041744480284927013298437507773138770244432470437077184519806053542104294224607534215488111148628444619017439467891191167315855238781226361908892198707023749848814249083074622320994804335448050517196153493322362693276860785093426645476277019139780680197966034126452787025583106615948084193680021011037457534928050538805671762246561327134320006805283412160264083361921186213835563964244040202418300487352367026985671552340370639615145772163895570569808747911204017819252464920862112282160877931182261942390975245872863326630036261586434159189032798794799963567813623207302455480322900278688159721738667803702854206909468886183000394725089232285932073338506224618176767649534183538776728055141798176872644526767901075065062146603575672277437830237856473846223311439803858193310562608077061450045292188031365770736125411545709780064584797026778307909044944372588110849581394919904360209012027203562219405244771457879874218724848592601781932623149104132119899810631030516467267335354511591609215744906933896606084342898004090810940703395430795295334090975779650103963198244090412765159301029702054195391833110023521506606313195869064792757579135525032818822103253001809100012818141031198934872605016318821664556799662007526852126245159889504867703657296307385035274555746772879880506660434915687233350476061798604879142564907988261336682243667542735166384747512444894540093242554428127559432438716950530497684680671088892893707985106769558063652034450330997825098131681146826131464371399846771105295295299893164530422782805674939635135641534275491344646225546860815557520699051173236408431902666911066844431079066070219770706684980704386165547166131343275772100892406705801550096481300915191308747944736477655507781317116157885503961112418294995907055217438018967688280170667446707627149543742918404662531256847928077318843239648481539712768310748102905677097701118951331642817416377015034755526763218559759367908121629199733505548447906654358127411190174304131752159429361733774532904815651732485498928077368997761654469001686568063122669535467842403816271933529362709669898792127128064194666171077720688655588692003898193132543579678066389155399735663207781774635761078150303072487428189523383460068255916292552934034098485816904715549900520180881954996767782548277557316909873333276787894145942961192366420099176988795903236036093931005789830717276825539539453786633482050516806331392035385023279187652479944406242062297247050935533395882679035549425516047470174108955259190193924900193512488465228292001233583847643521033837753344267264177645359995946987422520797248718603850000143821668207704508134929476612861868237770756097162771173702816707782667431492940466008271638163221645172943699171467774954071134731367521560182354386659075319290601772124941003804242160821996872111510528784668014110435731425994849038433725291580295730114804325574233358172201680394292281257357794093759782665466424704647852389049545099334714424257150549164896349981003582425924736206396139542052670048678811550282491870780451685099470359877966601817122510524576668312296487654714762281721925062110584145231486491407999823861642578593094659193761518760070392353473929048499761524321477421466773353596824104334037678112953560922934436626455677606727564258362703357111101746578012117983418324673492258607929633281451722876505915106832923302248865454363031394528598471129588251566272197979582060463040974144486793217277748671875998306828283019064432171198569903322040953046982383707500856907698939007465344805731335427206474318405234878329672540862614672758137595151763914361661613518448464969071433081705921721567571368437909102706036278304599677370391664610949405016655598776758945370797035078176861370036961658026912455818813089403820050164069738815317985157333491384323199407580121800707092238327148115730387750469704550026547052495995887065284980927571568036423398389422291664198555840909115827268334545766677825673872198960107601369097317930140808410123694044905738219773688723034493875465066162569078781528403375634892693244995156834447125906985520966848576691586930217492657868740333587721362934755844018190203463398828996007062639280849054854151834831231815112238649062086324235952444985578645478311135742880301753656947247846206737818572972186536019254293517480591766226224244541918264265581044679770662132121773385900305298487477612143565535319911244927789601124810702694418650964662062883741916712386970843810564489601894701336246887217472093500491618936095387092352467351584947779983695413417314612527388241570507086390332936149182883064296585112300934155314557963567898358054389483277305220111965656291428475838411255689468303125862474729655234411713697453799852737620781515400057428122203576902292181417268440804798658054874965756318109112767309015670071644273314562653454593655653543346547195000315058261438254344490022138455048349585081775957795945737993781781295234444383572345513733641493046855929420229312216231263494085343124131685018775809966173598022648578337234154492459156858907427323865649365774600965965085171259048309698502722139614623049859110894804385500221949548773264885359057981162483990596256812808912020979746147096375588838060813577058081217191638927652118646269003853334655362695818126633580735641489284549635863461412156124238398439005473218424349641324577908834347409131923487371533659509664979020999017274058117599428387596788338771659066207481009189418032755546956997433696622330776921993307277882703648835257535699970468625637443390431534023099494663854346462410776309948404947611958030642487088984330707168900243528751647930665804417387750622100336917952585323645341089274897809292881179819297155688066229163101620420054844885686697458559369777291284329530835027316858253732341887618154811955128445884324423813883122487966293547326133987499002472584437946885171509287063443445341726436957517253929395988657462786757682626300329940581700386256975006859743000035963645333231227883442253086604154922056554432327838048443237215995585192189768422811852042201843087445847531890571726371732465926753702133903295227686627142973326899336190971250865645455061839686674756394062104555025424532818128624419355191816639660060033029419937474505935187362603360348353787438169973032562166149535417818179908351750363070211324666158849534280802467877380875749509977315532283553415755733171005190607412857851254036122744267339142759540794443456399540450725771915908608196207127865909561966950281002513030162783002721980282723201965329665457061876639169032307010952356055690889840614442815322318807447455935011300774978721263153846815304072263531313990738840183752883600194004512974054048186760363432514202913280951723281263399364839645308647829081767772516774919226306129132232350425751596514944538455160885397006728445620803813495887957775154322941283727301104437571305915900964649729974786702436041196628737770288282625026803898333306025934534850486013138674852818095699227925659426348101102616875836147517313618461982387573054009432830325206995728918192915255388231546222789053435647090298443522975838510068821331567996368463052278888879658633036037329039907862186968066963491668056983794921455597580317227244463368539371496589779861408787213422283911655464675394190613688052195889769090896327838788608404644334237354613267082854351385801906277948985678430239764330156390438164459287522907455047168233042356124795066126118883176427267865391029205923862263440032077699183173843897783018769746792468044243975283581944680152148376870700547165465874115248568875129612602462667852569401181175505214936846948951387909037301993711404303882112363567814514087303140702842282595284264843646262772124023988212660265656759321640035155820098829923612029297276315215713204121092685596040299572123472206985549642202501232327473185527848114729186433553385626964038715578647876110292563863627024162717331971633146799298640249071594270251467229035483777381250353329661996136800022701706754263946967661939674415156209253528187100989727922129795064845325689944327524097559390683004605248810271066845463110871006464035598321479336485790193470118333440521594156377316018574957314369932631893511544313885642501393847557896423412209466946297393143663705594699056179963060399149385934361169415916597406254069178075722645913401640735324474090395573236116030641625614659146015787929053435772177187253784528959313916767243600807425122384519612351362929190082493639833275886258740027458654857038271837352109225197229633831167330910972608736745118087492851084070146507756914590232768733955988914117338986453315792161696119651652181269115175199543761874771798317210692955519135600078191357047785482646509638100971481369312325218959432587484887149270568323126081063844830465414956711996151140201180536253215212824994656964261877195985273171131162615345378900656743386530225890844891825054714865031874183454555952640372704203056240594975727057889995071658317783352041254594812301421537328563734028043163425975321611989667335888645153382033673460017290324228951109936217132650294983129434308995392392640382386423332897505436851391128101311205803015853063209305915590804783168438331177579384272682114039768771963577921644626991089293862335627958491569130123938891021678503391520212195370012511629941853716979960246264458502490098772861508966489018757342782243867444251076392759797934138111432776429272587166351453519332336619084916862629111425437725759950922470224661654721148103479287984631761207046949531167747514263375339808678422954090445002262058954634299547719469840378072209582364626197255331959240775731727618060505342949531000218964946922175379953878772006774841540360563464185395125488558219544259356105920892414115839990980803191903329507524557817905489951970066219264543698316160069348096755808786601622475314153993961006020972773741401791617280882232415612340030965625753983003221103280598927393747472145367701985114217896664891017242312494501423787227324327831786925313966819015273062700752547871155501691930518094491900575533331546975513189731015899708431827973001667501097933123027958041336608279715007334220359397330917781048735703950002405515929097234833907792067648502907222634724768437650881259315747961028602343397095558381519949308932464809167171947811132415741709021026720034283823644598845464961868153800702927313029686659153944673673616689118733437811286797379062321105883263362167195292139810682790852104701087689066574941924335513393348741313415545442255573460807499151543203927445919441450753342633915987240563686026493656176572609998511781057157428368326954303617447593856276361758208643500150214587670922564162882027235596513258362401398985428959163131532597351777828676968830523740852979744733649887732590601831282487773032362570095590296314622841675123119393665365348062040928042502984530154806922003330492844450941175572107182042735836101368255076984481624541871039465719604237163978235799396501812545932993206126482589452637947536037789597030072999660342113645777085092265255250217994789494812542824282772146097551440887708548052421694568480210520641471803145713499249038313544153879851009779380016646178604732548556636398708367496051321051140749924118041487502120477949014747954649916348755086116967585612205715524978404184164342554104139431781846207045971470415985569920757057339561111884151699073130576263110621196487129011331260109077904573436677335172677742394022586293278472927752425937754732964218975992383492109200502632347340702972171760165283882329928350447370231008119797101574717582135270125701641593709928433772493872573900254835935443240759060995271835202999438911449961095342097460301855408420876329100956379372197807876331830844576633164191191383887577364771696680497820086176998791240332242477944900219855337257315702559882744167136011876261465581395880996981789207046637126665593295907956956632376732858354726396278680503486071303156137530897876238559251963711135545161019405703122511557160258041976913584757113036293181889550041096800576093896108845204861075855066863235407664011326893873501174370895883735007684865290928841857686343360747256280563025217077611809544589240864938612689175187251062412489270315562434688314540008003046972039100639976698092637514971320305858324026654824198027538558165773470800733842301819972195220294050186477181268252232630802479123221554510914691401642935993583879325747590792660591592004890952979782841069427311511196771121534256707383116748797194547334387257724513002784721432795190944090611142296642803183009127858148476777172269824052345060030639499176280821189665180641509253327391593794559107274533072277259409132368538485536737562117400766505713529209939943295442640058247621938530427539680468237854910492463449411771534488044460741768702755083818644441065532026691295595983974308681980989839250046495570771300054201059695404581629389030579938718812723074338640116790154193613453073817120591724404045802274200872622393339776499555737824670926322963571575299724477932679737078179821220796890891600760402468589012219065220150288087741682986237609097122042053304791507372023697207347715925442344251885605762473317045231177692756876899331439470695773431162303118320669543359788904789288693766299112831798098653186140215521410857148311135205935074374250353003614489262301160309190208955793452043969959348056374100444557607980220017480188296501800575647138395016938954152603454764783412235914503101501459830185089884449739384212227392005558755321065201551486516698304317998358873025140089014614533602755156583353802568751130946818151451472459482815857212199787099045861424876825995940301603721870511276845584444960897781623283159085750267541598747690017169054527191252391242979113908427520856528588137172415828330090183458658994721451636001279342040196455863568538064678235695209052431043139135563304425153924177009318789818748550266962250786046761183398209706132864492958783608161562563004941079538914210981580101432268422628353024904276353337295551804802813471959886557551782229962025338297845448656275948780434371613130577991455237987557360514060615487300740869405006122499879055828046514700924889536167412013555971044530436010953843823765332093785168110260418856126087433025511911463508954666942776763608421567102438376655431469663327660098059229834836212024004370288474929008440319748087941906727199522548987282779493110605938138626671343022208572376893710464829134739537400428188088562299329695563069743520183022837438192548050521959049087480700149833852550488954153317746119061321923686001777151426724176671726914006882275960393924752611974308194137047548854849466708338854604367030704303656471228361109543629673992566789186393931390335959754864228965738554277423790190435946650567494196462069817664552932456369533688665615102837321529361478028640664636246693867442888871000856102300320202423201123198141982982400648574136194890314261273300691921966385403352373844524080921823961138862553821425822728101550660169483051144573204840507426957691353854401569562819848413529754434454869546448453346586237712485598860413933778800671847372616204043857123501201741897483741849096659539464526814697678567348902123573502060485368890495679055708292998522322923884760532403623952330639332192168015683312072214004018181186433874192215654758205723880028779593936212578186066482213028960718347751069788250217499310119012115207739406914256795458888241223560683186949513394608863107283943726228255035226203523125509850319777783440685816134850003405298508884687884004800474490693457897493817188446542555659787915098803936303841221266271417215755590453496579190629903748343879814335898810762967400029348871484167962310053191106801668377723237076220862101042016606669085992144269065552808450493865862708071957571676288974450984727707232477963570365177139532228932753985210647976923908588967277988494019216052541239566238167013919953574675628170648652723097875482172344300944374253890295465580662146975049505634652554352099798123603775582003485639063921780885133896245831004635249858062564296031763875827244183887283059413847161061454172646642157543203051819112405369850078554188730806356330067779828650853998304066628076791966018206194959255158771299040731606321941037674427561861414644754019015564508795970473063476994474017876297891889451808516946614980585864338772790247104065633127357151562175454049114858197090464611964635531808505102398395012680176946009385764283202063771308564242978448775258558530195338282382802502934198885184157316101783159745280493817998089395719894339917143020771524262359404288411859433142203634339938586237327946616908308357110218781941423777163627012976582327780591758621232164366355647851427147997672507364512574367437681097622105811820089996371207163856334866996762150176970846939545047845702433208102527183043617510188759133383116220226245638920148136888971555611277370323243845256947168200492256677512030195957163437970519142679421188173709059057163876123457015126348603862926232172561561996758202365993537757565191576212890525602982031176399597475290229860765371976930460406744715756088193291221755679777563273171793008624074943090470560129754266478692095223329785031164221049901147854583191665899685715285565337114031485710488540474697037490227673284183657159182929810097314971272936601283506963382533097221284181186143586595706535086639723798204365367968354948281629469838320411982346846191391948117219795621338712962441848946653384410979605226730077363995687014814272600407291509651869679826472438035534791275046284386954850265458449230237316061013935887561090799829104635784816340201700025915841994905128864586153514569922912421234154227207058261282755410183700362996283783229504482744109762003089748488040294504432987656136686972305017371893646177955598396547359861411478822809936068120976658660913077055040731086922607224884008724859190256659849815190877354095608366954134460578916652196359781393172410256043770207792870061060405752115651115340333265954754375367619857652302011945764536015328367465129855171774753391507529304758522066591384178011925258712798639695304762613354066259672547632073781684265686199274223134701647757549872484065365772163096545515413816168721058980821858748417976905730777123549436209502611575303507787460723233454379196023000896328906661579895356933685087613590407454271502158335594804221669761923207104426028338285845058026677440100705245340936505258802088727291206726633310228747432860043407395279772377460640942130960915904176611393421705661076394197150971025351867680406108519203873027566271834215713512890052925094678157625256522268413246603603204641597309535078328404460645395567609124404649352490302319597165937526264438608698963270147057456011826340396294347565337689318714628742521077191734046688739859555023132557958943181257542753055077784912743729632104745526617832763804717598932450531537927349252754558534833419476684792916882303746659638297826162791653650962013510355025834779075597483311202526263845914978406196048803972292326593400435669214501536353901010167704560359722627923751355259278710254097538197596979174632488423094489491767783048141676087217919621860555275905951236434747269916048778500100825197886045465414672571038976137190606086186006706431776039663595497357892244307939565235042638096238245217615209643496493697131411543899196049068991629791179761381836382216168665646861655530673904965012577785129055794065480752531116723995991527492056695571627332898362258923981693089652171266083613654003093881394468888642196970747162331236224051333641211853957292689761752329283355622214947388663876762485767636373511570369117717257841095761725961162041592822903026610401292803390116890112270772131342774047991833391967267366379158524080553613107878396580837200555006563034333279417829114530434219358630129867599711323667692471954744343173328228221063478603089572048043347856969095355910025175635484564706408888029809318385088724494794880646240907898966696879794410089447282306325248609395603617355444955853254595849096255642290650687748043290750207364032834163845577198121611864298743220322153079655398244178513762741363505397714503450168476138168702144722529544039690399013545522000204991656559605349522999997309418995939924811119912046984157746284284952482615702019034020009736078087048840263799158694457465047379972264887515743981401224506110969198284246561847813612107670197957707259902463741340174442283747064908181503291246164551591957963094959120283533599832909081433411577413915938171608978136787202607093734633034078479034213005996740768548934613625804924101352551931001620462382924851949759681178061877415794840304559735481801347570727949326947481626556898585630059488534787714292736813795794387832727522375970869791184854950473166475211916682422395383349694820412133007499785835881331463354439331576088854702458228379506350384123943623622203850293890271421949435566865609380104689782073469036067779956841625624879262292379254964451193808804160808702121317440234230864787998449816328946656390582560489469698433680529918058871851237993671247694840423694878592794384747457163404107078463837739111152944387461507686815986831033331134354758545297278967577201883789544312007064745257904524137678160458673078362598906918708926162980997776677155813023643653422366756713829857213772189345394776035759872902628173737199005959518150783961546711487846933974776692110566283858206734046764887367200686881665449539731807805734667941472635196739142125653582299868850114164252216927274384894592011196471026366632080867380379026866627578811007308452379934339672742150426387926478819160119372271605861564604909594377114826245926522208896959827383452905970980171109786326938706157482585793777016707475093952508312543225970457233323186726341213951936452641435785449387075844597679905457202075038473358876739560260777657836317448897221527926361035152524038665695097270448861544477016352329526976811688433850733753067793210982004433440954795058270135686578677092383997165815765181767106113983786732074202525559667585357789813814238418136740047189882945064635359955353763599450139723343275871917404128531245867285553446825096658005363357378660852550923926037021473099541760476138939550273196306629301056799441953330233199778695914523172603853535417694890132566050505712905700580935438058113183992804303233294584088548534226613213533048531743692964387122628309980024830039154760956846547094274088949156877915637148653977550539984155689799281262479076175932215729881786374593598956087161964684936229356486063610024636267227084114005791128109478392049923337621945462889194382653912196576960456080464778755752378695399154531566407661113591173625295689899484178023826366166190453948416556143696191394375561468406037241432323013910484810536217895230345191979692599380913406794972506193553497968751159905286564097252348485574802764889505695857896800415961078991660207140149755397714249593294025610553511403845374180686942092208436383919130169179110642376436066162824890174916755626518169894999486288228926343484903099247627724006068693834799220900627040008318355066356065259442052241643634188507686241445968166025624718851781890352220595701778256986159895967946459444860368971657963894384385474995380526972839688210235900673431167515478736567721768663538707726296410250805312987772395500894780344990013176969258528471949322383777242916722314316389293892838656085011583051055443379498092303188905267784126153066485519527102507217076744416068220576880134326845162117113189596860951255803203811746598541381841768501968315767384951330451404527164368873083301066445413724378551055533858341379657064465605443272682804068259057949024091463624970812907005378851935685567758671061538198763080173196317338238700079235733759505408746566204796308827306758965481583004600292855239205499209444645296153440071039936576923004713538946679187396063197765434253522220752360404437937037809262088705984136237634145049361856297956419351017321765547553180213266709190592280714867156692006899134034800688261809471887829320835576074809339153953919069751549572171751857908947482034196385622413184934040394430140539946054815486083913126107805868663814993622974964656318929766000824715574570663490905989421664811695031834108859841465267622500531450726708573072658521951671278820608287858971595982426289721577201627405130144607249270368087242161022343070589414798180932935572161916995541234155948558905331149718500843188158564589013893091324099112992967318428864906461420831682760187564837839188736279255277792298149639585195575903336597479918760373869924138000734071424636088786406244864706830454163202677970014306026922715537333587450972782743610339976105007859075441812536465332770927039722466510485460505933337780255237014516958495258048432013770629378726196741134041950602185390308970756614273679217063538311550909162266650446922033671013484521436306107753001111898507935810769374241634893380250241319324264007227081642990589599584448185373260943217106001841380128659247065014866879144796476766128817025640177328197413899893301681340775698598741787655739220278024752306779653733500059075451042438587081479151153099749161953182598270750113675020933387851280841753739301280073130194422842704858075566880445369280835061378797071552463331667879693264385071809349939021776770189204179723311552648339774338020513347574462406818709630474903284370217090741444986141595229976690949212594672840720910694398135884177521877612632835841905839363242342562534720005159824927224129331843058396505305653647465204821936570738109086187587594584750987878603582017428098029764777261234888852592008666820760975319944908685182836469996573575179969663912904524791397821904637269763650147897479122773450206020000493200373229965567232114715645263969435338157965415854812528652905729770463154820644789421867209141362287821403509169848558841812503576954658268025181944042034832172591911784478732260601485415133240860060601172764525206536493601223691285774022116818982546240875092454327023303443255348624519556012142174314890357086386623769807237791006632800055075850152475085162162778436049184920556632694144010680123654484169744112663016483074202428432684698672618125751384166970834732329502076241762822235188301246322631719396209102428612273750756967655067211196235615821580968934617324874936422985701782540795733919216767428579188338831714576325120604535074260235911001118409037824614169994202711944248691160907401481820295711682458655609346596499351186798864983272328779179632774509696493532852734737398016065584763829432557945853683375729746687923209863475227573942570514734063845460186678071413540882561472840913308542870384145669940952994494468434962561688074102011660802462619088297982892011078044358145076731469697170040559902504237114012054624802712083286833914735523211199878559861765502860221733173864771569510135424753304612566740019174152018127143446240074847149450673890397744812081320574871591054621564441026361374560194008305129940989257233880958230086401219990728268501831930006688141931656714501906569964556928145160603679700560940700581698903703984831214434618638501317386758193899551044744888303603018077774366150900247290313717453724176366929039689786720205232707404508004984532285913829721650861029883625075270233616861230637338127947633451862479980960595251935352749367025742642950648094988742980057210214532336668541448762981743288429433672035187402447668130069188515928961996695129295864722446178871491985977355485273149305159792501552149263665347244129023626011743939784268544755371551504434462106718970937501047257996565855654617246479076700303452928581581550536193100016534326671788730121282211612866608031222180849073927410530136938720328741409431003771604526193263881768180263343045807827924892839118557220936336203324792109397056718123558510760587380232599623189724906786965118212388376412412122920811260326973381808465614399276847611830446342921572288195273445222742198059199881950511556411876257122432763987501429164017828704584453030033959008175077208779647017849608372306566666821092242349376213240960491614589017740829535928089298460897516126646420505882968513226728758378222464749612974639458414498526544425896453192759755739795065303453409886164340130458459830735375236398195184710856353619157013609608350579947656492674903198894369320319008119503984076323730265974242147244396061400675918834220683719229244552738439385776245687033528788568161369382451785947181994288832782491865997423742917200834616288450335284964455742547112286381038265288555845110317100350070404648466640862464350824224705962476100949290109799167181179518654509622498967520677299456862813283550789806277483366251718450809671897538808411504952464552116366733006713906688888858729135295386454655847057653396800999578939261897026576166812848812668082256468141754038753597250933586548482199017000925333855667155520356911648103315183168878626226568080220204766986378700164800361530601811643642251887179933440012385512999153005118342298562869711197450843063842436703766515452097251303401888013588374476908897523378403435466067910880126090614898235655615432475048791579738968065448787208930889053235685465152107169296089448549355232518221234162589623877025047132811175357235974510605387228648966779122058475114110978493589124132239488246971687035273719713493323322346937360459948048539384713182910842581594363960024600908654384365043625704836654395603786938916555164888607890409589171027739422880774625062660122150941050336483863260803266897423747005922608965635271930370733237132960198008715761915836088172637923027738835706045013615669482107601673666570962213473905997785799394096027525643874309164063941317563501565985116058344607616496487421958707175876353976655985888823388297638421628397428775644685744032768108736361230667233719957081559323831415291862816077819580930015607045111359661555705144479942986273582893466921474247017877248246841819911186378264930415483364079545561589624634133535205497478639690258926010366259895637960646146227793228924274785686508423623137663319763614635847650771261588382213528084865004145090731998346734008967930723059309319662384402394398305965494139422623992275708069906128752769492308346034693124300132645118354773042029712446338805403472735875977607015708449466016120134927646614309188890681153622290675592283595906649254221982664839774002781202699156046274001736849731237098759649681311269948696851596334578765625420050603630485427201574869245190119839597580585651434359990612898408960635855927677716202196149594170234945159309621313777151234435453843976996735611402842226761549925373415030240892004826545272784244389578040484879980796150877472263786018362978344587839112222646330012094130995949127829980514701237908913993880250047949250839140018580523025594244735217925659571406307033595335339285203442278107676267103560502153470513834309182533803656911598886571864313264602288777570561235131264949322207734429101305872544006170704946537641842191526423737096306967858747667353043371095818106548957622817649887429543101321939572244614861012040273426819337228961176497829641030037835280053238140041675146277053057366441180015976246934984038292532776406713814517781935682214949021945189463741476160328236905886390913763706658914094020813924097349309024856880706388342629575502887161005807951862897722018812452912853617918725620709699522517330724971120754819267803107735592163677205269127434613765115035858579712965351133402944918237891615417063508208103054500100863707285344844898819696414010892378835333620638586537534255552942292386028599997259015890309643776658666382367034581866181914118223031967542669070200707002451273061637423534357706974159461548077873101124000389176168392506646426396570598125160507193786925683780361848535417712641364379563663173628284854746399347847050551171923907587486815319427289507179564727360748674490575878236081890931595392170735732644800634294860613419135486117319916032402627983931463064528099960216107935064214326165113923829414614562070600279348179375702069319444706682331431522977531471401673574735696702984533718330664581785784971247518183859023267819450376867054025228880407315274996974621789389274906524664530728441017578060079926196287456545034298670836229504717189761877978653105950109839565012697828835256418514137998175063916720419902920636377618429619278949947755931563716132412682730098348708124251851364790546698162028323123786701811300460169028451282526705378759197861989171434009990153874673891134276023882537839027214418984046872577791153770543755623391684205982718767765704968259222529433255957671270553367723991327614357890047519817777167109642264720628128719723735933830864259034967784622176540841532071559531235473913567963224960509980740733049099907900419116822039659403621956306673112382373936900719959146459009554542427842335341238693702317481193950428632545204803594208110471080389354207536997064625761628905116979664813525836207451480558645619407959908678502082437378335933220266142910931370190839923543510668004725574382908644354245207251752433621438068229934689235968938382490043151386769913748519262829007147200041044345013399914606304080777067507332897421568022335518001022621817654562258662921714696174186974223571628704178173603734426094241909799424081755355087798456365379195718245279456209800114419190100800190787124928560590691157827795327745157491773162990257664392895530369152270404011976215442861368226604130226535735330785949975593665862404227918779009474962319617069879999429103405087338973030720860148395242214287027907979319974094623898617959011684653200276250883758031489206701838446154990432498797545153613311549427583165302047478493518251683410920184365694865586872531538439550497554296359029646902824705836829237097409996546737529774166997882506217620177021696887659843385463816286313578437151528292404830131874855454571953670823561496122709907693883705532017595358318629474256598360692378936827892855911665771710193097262860267148663258063417192307052635467778724051260901110565233486130078947633565203077421203574067760423498759889667854856789033770366632652237124269402409109615708773398275716011715996104495007298028490622986955855179983935604638591441541765629618553313173862752613778619555367813355411307927767020518671580003253436533684580136804376135144132022219250686534407344026793405899045382969105670514959511110556159084528246211491577758305056651897952965110766562599265287298427169325076884426678641843482431543292047217384819470784528077114219543984667016652842729634302318329189009192317218440757407057689657697574117810961523811796856465806854621900971045685630446174775681439939892828309935868699089486222519610679591144352449119984659271303138385187030601717574787014753261576867879242035705445663638847584535298561461034273256329962821777712170548993676646793820516671635537583700503561774218061818033756794167241190496979221190442772704788544070660657408558628989616489596028269930436142386379589817239687361620988380650359377401981978038975378087543762592434133991401613478994573217242838925652351543328980308120380623499647949003196264376941815784566831556199148015682611702916301672273448708894219876272458359670027688156603884141231344632651510482689953769551604423830479216249813274191572415648821817559609883041505570571497931529977027309889549866663385919813592583535924374731052758945624904171832143373531744259741694789069214156894749336691687516510348654904742983849903303920006561440263512667803025361501159144446190773508162406830268066785808195915574358672359782932909995344244367828661206631635291841085876687074657015017978764310100110498877034083509954195669632321882192047239703742408511078316467453237359262798578335300656314983142116708639200197859453911436135791393414322533890671976019838664829993839737968663342366086072431402196799865506089019440993480102705792562546563984406629527720984432835939845012722078372125870328184944037579353545472476650239188459283333806972318908295168676715510039223390930181700657393966709057268529957645255200500905131861237405171044484314812852180536378407247188605738904364013022392794762366293196643649232113093834755808871754757560726292554380861210135084411826079927428567429420832695536915915734058353188649440377139381127283845167650993562353788734460096843644812917029717992679556354004436190508380510152293875817085641745607305999470629463245190067771723294012113096110153187213828441356794761892170834335588444112184532144400626697876997067107140256834250805341676496237603738720720220479933185280704665672850891306166081414863468624093587034404202897240514336517543992088488006466818521169944964394560398240295688386316754159118312434378212328109225292990242556211414890621769780743802374534595490159861936810571517690377465166307230050022984464692755335466925149042854742438617017795528142848821221331121452004721539327417084746907461725164583211970242301042581079038005004531644271002458570745505474085239335325406105728275077153373481293213200977468723217621674929712542285795342359638774447952529158197924948780413014086334733268994427083641576812700445466626483102257492126219273125363583728728486424494697824555619602758359916630822904825986048170482456551263459979559815786560285551650725619263959753197819975936087313252440556911339905555844599964740441960156662011310012712693803433014484832603774678350807606290021498865261248693426968841606904208860226825078676759354582704234475727882617449102324954114728589806373413907878902510064814364096918210968530414305774811604350429672526935549236710475869417440068856632736912403401035222848170640219408671760160328201047144760760337218746942601883761121258819941501783791597800251443765076974015629580536172559092443774595027054288891452875436895520098872231456605195588178236099088101029202716128514241763801031098575254388904657948128868162058224364706071518587508550351751310423216532924026265782121784215561327534416121527693460314666510021398987109751555465548459592633251717460252440600481329568917889632274198264647269247493867539206858528180084380434890431240051261763989260239636882361706407559774199764385024636864635721455977341622390484648805633197982054511061481093600852662231828849514896053257585865619735359178477131358413522693111427434662842635400824578513584097950660522835963124104504516737264764980903299163916656008019189742991023016757542390837316745756074870026866435395870303506166742669376306198003885473593489298516319696928235161536553721454597733602225350944481697753145135977651005711177767950527034834630782225914222154970664944202125291433794185306372694138834342039964317122203987186568595736366728482961767006204599991658521560943768122501500376721720089648602585886395860410713693869995447726845671526646354372590535716471788764274664677547512485239339468542027388860144001085747586209674050766177828479363525863931002641398360319154598411982085147666889031897126086524357205826374726672995571856151616782884004951460512392520027678238416810557721531356703725147533743535381312441359685433092252446822409034442203552936221608327371333343105776638837331171254662850809427887792082443936874789024060532119760409939011293158784911626579705453831492075430839237771948104862595225098656164367125297230601915054411766488850927718063522873938133076503300681939326802260602615138635308460059892133498472796527923832349699969684849835728087001916316435241760967811218186017137970194906130043647260940640724589878051319380597584539508584511552840529932913983583563127383175518795293326495280575489057654471396788796155939368462921368017424008277354187061251217809510629643234751001457020805709553242212527968984499072871512902123445931854698346289901205535507845875785880252100112972475838920315418619192944499269511529463206309000745511607212007609655561997612040190294646961182430853753410887840153366830500968461309691913309015952821969473637171559910889533754891282855255140092709287711755417986178942148152553111410540716205426432725274465352846183025437669727149983160401577264107760306040404674904301992569123428359154051763426629468190988330186453475919941020918425348147259971548797443165369641949119634383972007730732631433508530630611441039272783553187048179706337778079897232100393674368204764181016845600794040839565907385149385862543783444850688139108648293642990833461538549135673626058333184073057223721585589225002315200065909719898402666765784700027622792166774691326532542734610172932692807877524948802803823847601348764856329240142231253105319319070188237088102068789558644646451296334727510630778002973787419339550328392000828281280754791653938655103873116132149701824051712828101148420841305149922377495623219215821343046481357549838127885946514567942585201201247264630050595267156522428032007399122568585444707043046934210807933438112463403833181952584413722764278259632922334725211101632553043057320015980686519840252127703478734761812820706463800855814475204624244924250612360246614305296577344151148222543141296091423424002264069198482505882359756522786647202492199702681147608678830103543924948338336196484646413145330438861874039051975898941700778684909823167950347042165889255659879391723207764206729648997630136562866074422293749946301195862741081098998425182711538916321481355683966781284877188127867131651993004490873155056943408839076516086149744149516570459636525816754732844000435439591239440033360458093944406814150176565897147020516170122723489095277946081992071313375970934081343126578661440011447077005919090194382734141983346407097077947441564037430490333986509440503096306791611388044313477900765446404170300532467728686486068799868383677569746592697988746927719498968916812694084755945172019379894999595665620939123817291376154932176745024521867848619986393628996618315806833510598945533900494669880548150439927646941362281637298700761562629039861700098321719015010236462784880347336468739982867545000815355527843817881092760416848536179234607904967454581846038165628187626578540022607587789875320937928637448597662655230658639573301979388371914106750193581911928324601038416007454678305867199697208808088577801044805758030662175995853985922913857514839046091974293145150762558889397844383805525335254534014048400657178552165001359277615250732248383991793631698377101646951030368153102611580727453073919623079262073106688889869184610534640956348979672450582672929923989249139311506297029412550918843849158155063754620038199472977124078810470859106428520154963895187074654623187013983212913416436233706810099317332717389971152250964331376195913144865943270162065824687321358300003214934983864361807806819118671756773460775206016335590535970466597398454507243378267607382917529197220857266252531015286395345272534135022225584275200964217851796244867529077513633121306994254540575505124852691160671253501404418428708146419006684518015987701326389142918787463595840292276963882412098595151853601729520845622576710406486183430726868093526302656580276499941796222825012437042378308228515956778994179004628106155897917504736936172044752438898808546151934792229110172396984112994967528393926224365237363140884372696856030286571341416257762501084450769159582124931590065304107218691468569966715594029104399654229921074232974069671141818103644797779210107013970894574075092473946906244837872388686926094377382305918273986894555709295363833966805494315056053371066500507098439935180171404439323571075336656058763985559901055908896886194543365230669081394359044833840428245081574097627401834937703362084122764787684333373556492356734724156529833833873346407329120328871359910031419639558079916754169875828090086534289921823426384970971883586241010914776446330442585325516817278930737137835707175362446443820320143986900516522171243958002300111120206244177629852164288521978803359194982910290102472802685440579634309859797156268611459878366652955204011413461197849169739743719602682983964906151536191067910139638820973726028530288259020708245361734254032149561130479803898851577410466140638311668520453860828163273305650781489891681518682124190347945829126774240929957431176020609263153670225675872840683960783081103535024723578783681885494382920895416355827883894283213699875817589597157342859062679577320271910392256159749583723368339426359661551220303104455740692475192288053094352007354882015194903945952103359899597159793945909318064794732610797057164481987396375701899874523578234399863944600244186393524071879955191845852340386522685637584273799204841184041953928505415831552827244695413171310275770330958609700695376957069799369240360643508398504387678103541255672671411658073502465503730409609671947275521373646553940660620623737684030540226727090127659972096846413928601798498850706758741033841602202115780979215272045437343433221625465964932600975231305902718574703659706338276659742405640036390913016465206484336991231644579372595300644936562406567531695691454900738359223061474185174080658688644417507478322210365127063677830788338596613283115210706280098098561221035548357495459021894615649503496273883300371482457844653983377922004989766316817329335276552221793559026799665452574055930351211954704690506358993489664400920281759139897590874140707541216219194925956731598448739207767093693032452726999468573016781525905606838040781234227099217970598948955227623665409789765260994503360756158772496892932188781320897146820692711181818475480978986089825024624358468705422951625016454585947850319991211552853576751591303347789841830888094737620104803584172838989928266198417621739344020001611432359545686243958450315375358033721718127546204162450940540572273657322953570809300214382454123085996988596978017740599619701654361479611969076460010955569903350874391058509223339000647550563880164659308222278462526670612756658496647723499127030441152833171270494295418705633083200810271739537483327504036264390774147532164434703123074483967173166121005843899374444104511148591556970011051014240913199605673601518052417476886016941391923404084596809587476850130936553401181476830736528572256875008445345114211802759330226955093513215600861740988709564324176384180689875232831226404028949511843676970085316794507325128284820750319523038971437009561860466177015398567947204758706171450917006294497366646104161683991220765203292709332093004712723960337981832721732111100021519744704626812254545069630831624456748876519373683541265022193538368871070243975852138300348696755026567870210212465028024060903155594054168274499165240675954807612424398755902411319991340605015881369978289160491195801783507961816718882118832304273543094139798844605199322347873567009993882148644065633921255986678621495776921964123203306991847078919794745279369067566132406477645363554085838908372886135911027316142680500867892644233577544220982514787961178750291966105993772577833973992345264108708454889210272281318823835883335109342437832318458328591188792457750552950616598037132337347194162284482565231756067966175803072799312707193010212919483650906639305647346577962647433518721347860969967503543709064605403509343482797732729557291673669409536145620824938337669238520331187559799035649970338039944479160003782513197681351546801046183688840338401835604573751117893543845832593988627091569404790225044528070220545463038680183930699824234046181614115833413258018598976948634316723582966445770598426734478244477847473474715737552937617281369361645390698170439228942033339141507108162696185228199763628437366609186890062547773582176609239368348338814663470639957375332916314135120125479539075862452289401335577105804189619033609753615663623011869045980566205587545210303185562069337098892441108377939310791827413083625763628725271223412087239891266857834411097720289446483556159076990639646190892987051680601276926236088758160471596307748633953249202655967684406837563770827184577340254919736698558680705840883794166904717694909546552208739012284252336709725582937754644178104982556846025763793964517911595727925882947487237167231290260490160794513362707945764892230596960248566397664465678529553617339164616805323131741433499030660745333107379035621130319765591201640817271933707527081658129582297299164847384104142949238434707407359899551560170195174595235716272215593114297351917427679143443513828657596869446472769227609717562344714639626537353479169512398690924132924316704905478203427495192806603149388444253524052516651525307693070220309563144828632565716537735096423974460671611978980000442291701806959241068548795971772203172734027703948022399071878549002026498473704335634449456221351198071383315691987838366608470752996794943686188767938602937454181004160047954316820315696100573202399345754636720474748006913280091683793510560838239897153592252760292713496107429571133423794357203668944652068482525989127288464107987708730658712388465282034557530534542237887411603143891750891464862079801602814633442091273369317536579616080328431951155535665781981297304429006730281172687113192821504455822734173646204576427057823359730312606900800888129843070139719954039113535564702174555047794868642767965185584953439471363685632900826876464071652464170694759555454913604600846238163058470645786631672836746113307434166007514834290354040519391725871899387606267395474919058868653433843830971401904557194139149736424551676601207279891304828409387524562566351251290599404093056504269315963055949131864598516684961413234619838590343992367611503111707139572441199695591508344340812344650232113550730600577759397014473009973098344457183525321167496206166548562940671231812851221218621940185982579749547739384167849516553126457609232743870815133764198322379938028614792535565768919187327410890334183363180145757178606151837482036864748316264177679698703238120566988509442527527053886574216346073887946604958108823077908147120697662270844963342196596213917563543457415864983475104247106657508825500358004561555391304763940572864520759305186213196727931490010996301696898901073663624722493833320028444941274388178248171251012179497949816264732130511218414646842512825403949421505444823937619839336803752466283812563909498783994898699299938111979212438713265977885549158875880460302338317337984033369427086057239562067471997578937102862241726284956788648897037241701864492425686291438854993700022968419622650488486584286368515806917137200193749909475247321522627303913077024996472549595356632592412771703574005196285997896545365553788096952636769263533813576524614398824060656293254104197246518733287937175265386280872108820541957257508804157918548149435519146841528896438319903398902864522790252840350673404669051727574465042635432685626042737381374011308271964177814768108146954585060027633725572188446538557779058113281240119986586006325905702325645667044967119201497834214693183087661539679959282723071514993566886075026665387618963192682170616710106910722753805159806405685797073026631658553969924615336642104527686946491381465149015185104107213812542907566301659974656269300109961262079973356176500094386980568472691377318313031898018252701655353896337447743534508362685089851185153217384796658695750414715209770049704582835983132166896726770665205996826137127399579915532347200337512262401683587258414940025296899489248222696596322365310319161357850217913890988468971547540741440609518674659263626645101353775438684640457309559388506894921256061437737578073420628444275597676040024372821362299533459992341646585795076266785509067450625331749204826395828015901440382937568025530186596158042665429387257501744582272523347926226429354064215270604853723078444532702450660348780616038444855727428816580731517737581963177359487758124623361289668523755273483626049445320320184941534430263598226440661793537329382931966326016438728387072556869910698761205804374293923227474606504257975017856014373766091112490425751168178538634452942671175829504036941581126915418001576815399728524155060440122738968733142943994177711367667134157112502536823727145095954885676731348720776466270991494023303185274194646030516718831062511517326894076432482800275947836978099578560457411073829033907714265087440651335120749363217547755573063316242461181354887724966136013482949540996001228345732563116977405934400829319395841936492447359186950723354035789533389330213244007603707418198700772203920575218999658139038661949519403219210040835192780201581578897388474678743190876118430959804740962028786891994606180522236682180028700461701910241412760672910400329261099226469280620953889186637242392581864175379242628876264356394576120621130217191579155979789552661084769712927424699410062363357523730081793639727431875720818850826035001944388538830352084501882842648810012112793124454466184292479417073204082212724939001103514801870230740218853098157633435518207341916141305570217772624375666366445523071450513741033839378588220272726048447574733379804776759175364581697949246861930109588791810059514616183942664625966826962941213248236724192336462909547744476293942346453262879534024465398348612024666494288828104780731555368593463895065158756197662206878906704929637683819936875513451894503689456907004595320727747077480259195164728360906444683281489979678198226368997488510682828193073272210605616024529982250369903004659112739695511253519401356957315332434958062651691137825194775866032025942468363550729932869620177721325498878828472464328611502730798666675528617324473298715217805551340905602755049871649759169098360685207881014973492592699572842797767307894203581544656661168526926757724870529836273397628778158491608611407788084177319093172974954048794634445231828212764846574391760755455854246547759858241222531612436383910435437277812566356688736351997421460861906119539800361313453135592341080743599846242149572713228591341134304535148798631686907779010411125524202988187367266969288194617721773082488203727221098121588184369652427425291890424753980051659215614764938440294048167448179779790064061422321673246997366485565517969685832973995156595791705980623793772677291553472137618580945326967217813386824676353941844792529252627948185031287392436892827944658925011569304300371781168813331333395485373871945542526458731986038171551451459088569264021832735807850994574683172551896766917015512541464514403820570690120403548897370535573962923619827947975433911912276346374585328041100532536482775459744173455159197837659278709346369343391160182137482778612389480121224807486064706439538749689410985704346684945286144305434798284234975135076950869170725616308398254243514631317525563534814066592863151652106149107101209843152286812347290746490407198923426997979462418420721970537377714555744585651895210854421856722595992397324915305586520012859337417020857725110614734417534114285990393360809998333320622813245073376084408687443280464020959964162517521230271800444975298672397265686184907430056190093647523873606253154942950927134070531678127129849658553750123994658979811383917605079734299388700323762417695780772947803535211683480145489210668551659609524754342852155808630692323488574520595693390473469832138067011850357507555715194523837337710015484957145553371401315505017012105309155291738541213162483426151730960037100909427157612125392860724560421552176109120762173096699331382922765699342920891153311039843675258849544477236362751894008569442021554266166061338510039707098687783270803126352350280764739885054086749262600984227440289076970466197466079208535679152060614312413521205457764708298232740733377412253092887194515507432940562217425793677374657154179619590302109149392009281331616494306213313791043332834161270864301664812583012661236140957764812351371573084826296937940995823925254179320288809285050294262542490333982454076831873244486152190609350887506764214471896799925648732030259959959873618988866235722917722777420815724507110594267942811959360603505435013555415575487617459694850249357348976245942145632892645081771922169411632044186423334763919431387834127346530037191034644906804234144002246089750368234379282240891662330014294141435451615052491988068238955281047815526132998352268341598641492851047455018997290732507775527756518228363694984381368379901308808954381352272834764429837915776679945301069787090909749720903175315532613292266428484449904478653314248787076493171554802792796755577011885513421169342353384482815325925138382148490094894846643689623684825927924445630755008837463855197543869200177362641463613050123696293357383263108670946134403966229023601301776125616004496548911330863694882569998533490998476140886057116451646539188255924954144242165313260389532772153313356901323899440791012048032376575768590884154360170684099743136610938379915375779158042763540283807753314621610236811015053039759151970409212356668948993212419929521574914055960526793413339844199102276932923191902971677354566456030562417600003818402414922157558650972064075997784078714567544325058347803002121491408615497111795364840084441271141760045535973953588491610314779027830654485438907361317202660685057628126120305849305908294724240395234417067816361028951121723295696644566010341545892008891421244013189167840119810832943643919507840253013892206161989658212637859552820895794449252436450101732431882129268328155059421626826821468125776676307995345089495796754351466254157332189346659286502847529325807969560780152404380771076784982814032805146874329029343635473415230516262986875946464103325039332291795800366587984689372620078808473289525693286131450209774863014678971881127145903872798565183678309623058124914690868614686611997651993676483179778798093548730545050261629906835348110906806555485230279569140378352597106054183110994094168048478675654306922487209038905799959169819635962297654247896665987291503704147334508074342516475808204923182993322015594025573399071823210634426006072389242012653435570121371108010620715840876333910556863791230242208752195094467880022371451609591130935793172759562331106783096784604334089352785306896614194376302121607272512402465280651185092426000095792093665781014514063936831912975692261990921329710695616909292857549795910232734340828281826390830445607868935061509667162864527755872949773476879306552448325371399143877321996921622578859580660765571706107121447299718867059926724664156676185491460452752475113888727347327806925051466358359282745800242045102691977615047896863618324673892813797038849128928533329428721415237427954881384543670801226457016585092686837008097750910573182226005942938933325664618833387349297778222850138581659632464987235163331100539085040245619476565148285923360938939542436433813076237306406612764402720111280105251550482364391919561718376847570952185780251906972934366763496245428837205632305844669122608351489345949587053201825369786441919636896811494485410813267788964850830648026871887259750974879614036649223272524022756696844640390581872874280747273333084572962226306593652604368292921831272075675936060608702211435237642122799107621503399614419835341722291677765518872494874694465973020863576422584033570957817086891015872560528332271129538203940645240512721224051396149366640532827812419981985118097247345264932956066563794758652866674300235233649965290789411501863896787258622120261721586508762873362675593179059149178783032520129043018118336241696783343583507636277510761802658220802568009965641074731823978916613106816548065258865009105528804615623118099849204353960150579093616160703672416822812608834184562019972725484277018750195745227856143680045873438248379732553359301879156702237507678899456454396411265362488342425262278792738808932859638363860654254761148960654783189897219930931605530142851003262669644342594962507328440506465524366838234079431032821194742077919483675974041329167996581810057977115697479669576254614118869866416804031995287819961730332065428266170122695492236599428197575173493399469344380580682038649749632014342286533139455042743563388870022335347936103736555785492207504264683047722806409237715490559103249366724483074084815586301094235639440143779281751904061650630553789979060247170823633860110165656742848482704451302168849426642703651970619559728881760623815801322104782110640431613140250017062569100851928232292272571522178527939660047367774683117333849644311537431324842162257018455601920526438076099645918356071126964598398566310183137931289580704001524353709813510900305295113871623598662978371368036916323796803041015227189359678451609480247587560159690558131972549435690863735713127993205169853613288467611890180388828507430934707683763707832626280042442996199772721363073016441287469251695300731544666755876321298506468311042685039338562451481069046489006173028991185971643964672588067835180962536465140182230108642492954151981275347240383801415419581052399712171550503024152472289337226810198113977508999777928968551935406897323114530836297707629143366915622223915502211765430150849084700290864553912962580361930876560348917622241565228130414035033464722383972836917563893934316649682524577396592600551157235703638190145354882447449904983657761448709322316247895470867119144258176067933707084624728820504260439795351976765162529300296038994669940155208349069737463376185539057357496941023940457476940806161678998182012603082435796144734377307092268018232338458806700496386808746307717876630098486133296956708978311692621504713056676037608434854460027081601238023089895902707775021135749736609880778244747658477446742930225379555644164438858629908637888271449046072893615517386455294680145611507692504304177130848489644322494982109061355012639151289218137608891866542705384869834150381267715494320535573964801356578009960105637703609553755689919977798665876043070075714910275461212742798106185779604221487207251411927882858943785077990486417159723530545784471487665648549494519686235611428993737231051959847404045799926268675112495398594440234197192241185112361394046867418565387590597100712459801585427924496317872622362196615266897862164371582991822028762070137587375640823453532927005944286533003941508584439037712870732734492369641742813700442353118327836674211405676770082256304495720662780339135249088747095603642430241413593383091487135864290047190204303436005479519447391552875672820438776642656618081629768215410912375227669096442753913648090595623318369600537242280840658146197806395078908344156152923651031635639922747100005706531271523401014046174063605719796265371172433576737336016854808509395919759744020905538064470982623955573000831822108186146296729479482351783963750238396452482663886820763468446625853611896312984120592894877609937679448436815403566656012152993886117898638394418125745005977343606426830478199925986304540117969420796443973809160062028143642128955844399194936447776141260123136097612668100870115075734523370744814290267985953792834419717698058125460465317364985634551065849398492887407277856068402920432386998314707716099528453011803517870608491061946769957791850994396719630836111829152948606541081369404121999611598441210023282019240075301675013851898509601701362299448225480585044618314242345842158638126848667053259427601232220289101774449968067234640920486476957197841828037581297760416732597077162458593352198574897784815251795132992162007250471384673646844322881718043773027175879520168443591502431905401380641013794770414284648175573235278041544220042531767429425271679084242171355632721783179303468488530231372374924636019896560666574822082800948107978370307162676765608376008337444948601336440809397591824062209709886269730011173129831249036817654035577757588616791453083150169011289439428964721905900595299035648188135057848858082721026400920391764503335580054051287442353085930915202005251610985787961876787603188383582061855743394387680636714712594685295565660349562164724746866784615799609179706567067753483762128446147899573799518959181838113632341513747696746474918739006340395045404528008981684032682607356053935505417274536720887311463252422571478391198127887117125595137819614588317797857264019609798022220955797741169998562942855438175103324494557601171840454850425114839242146494411510444639307801915907227008493227844341531049205281546734943774882113178399160573638721513438448364066743671151758237469461411961119398280285776136467909225082852301092260800719419084320587240667301208771778575044053488882128252244867314855475159982171110211130181921196928726002516306771517871000123135285018596041916946883509423553899939854408943501047035244411889200399362684850224410914806575823208549454459942856402882250472272820455495396720908399992932001994854513789613793933193165368540877047956476394556265308452228902699882216099507271369051206608552845273327265573953441814473670477333262984343419786657431222368537685175581518892869161656710277497096626732945408207149572194087991655483023211535447562379597895656655641538151418812285719067711477312487096749175072570201643187329219365872754931243206266771739641834625439510859608013532980482348845504212527341101966934459123467193528760484352673059154577743275200052065661575005961499229223516329079596786310472445079422216229689912512843682311457750996425174185410407934545940665563716949283154004678857061053398265511787750765826868534899610727076206258124718995200423207019188966331425222472904580295752915298502955372350517031032116733456810810925393897068280259887312828561230560780990080005519382338331915427200740970504019521975946412056555424968052448078306355804262700168607423454877910357622364950101259452168809630678758838679529676843461442242448496752808354451368655066046485093094909014399534401707843533099200612010089757025261247991665393898665477229575282132867027305029589192643948524587081876403075811602446682762958118472913249451668755667460369856175934984667734219151369257628608968372031341537717066956951203210960180596292253820795650413154485941243555986989476400729354299517239497384882541402432432651081628158226460111351936567727297993850854905852061212847368842415161686860657385595582722688463820043462980319290057982861058070114541953757405741146054440869828771161593834583413415940143614060039685873733079703809864276802876191913894334527856053863283058070915436890144914470503561305937080056515378929163634929063908193989824181058447847916772871297036637531678860863230775475343689571069750090460195483315029008727273083407133258173777102317256780133940384339853104553071144915621782072872008285466612448045443166567431887685769990421584583699894054189274169485120098521604062834946308583435800867764619097386114615302902919973779315408613180398604308986731350276176942868112123411426155727830162561777991323436886235971120055403450365402802670035465550930741399185380326438707816031704354955795580318815962818963790897155727217402505900248056235682745062531912717347145729744480669577341353248983879369842055087581375268890622877930631267436195154413254982754995522990317071978970952119955642612957973258037858758635281880161815947918622687425730868857498223821441981995714894564154636877162812085075618982215096390777714872033543489489770092929270875272999875285191174178853085770740418902066768563290972505031648152233392265993117889170567083228320086480223000894152756317026495673223769067768564497027126199857546640366189722877452286967776007789376566424147084317186293049108520173225953078771287842774247203989078194388818354224531389107081867635005530788128869221053974397018640388470434902060187877646459564804227920520425376190377682811475189859850545975615015453641722612188320051560148090857378509306725201759595175670396820632223328192127704975858180880016643399538817145713987023774157860236397251621957691173418773536141709542419045321682023176422117451366756571331700312544770387726547041101208714667591158599402079107394118275963845837653157960156782765697837524423973337812882956557743780354280129526474343445403540875987380004755093733014147307220748864240571269074319005125015890560925080953524587694146133916244149956951128124886482020556720489980512996919241273776511001595895456390126192752611432104543148301254198572526672475778433684040026479614022927488325559873681678960686183891030054740009695579831158327010103777052832066574912611778775576283972834911816121804120926032254308834334693564589558200984608340815650984890231179767690264316396637099298533969437301567806696252214511206417634444778748053929920501227563743064053262829292897971887688538970174790633856240698634440986232674756704930728487682845375756215598195028732261601609413964482522173691578748067921338068939128954918764763597522596647306867369252493612711614408796156694208588404852821511845164984541276784485817280014971715546438657760514579459632496720120074042531921519096809435412461501579155353202878764910397104747251750266046358891004055159121526981783051620577361629797868202632839411206536840644751759956416262995529900246375548069505880163367393756152213853055128179139880792789162531761962118895413319392398922294240430498142722533682234383176463137247350648541307021246869891226851787760142643718772197974639813545389136464077586754440277602193670816892767907612042036231908983274292741824180174249093526154491482719945947004348942994268374089660938150425742988622852857757256540091928045679756446772248135247482613311527678021595958967800274497942965108478261735706219041262590479583140608673781696989434755615768195411135882438120886248294622086735290534449859900521276626910801467897505735670897510430896986856691650107361195287929595212934812119603185293903841405375048542176601189805600655103771456562218863998083252305614020119280172759005662654926032483882520213596249769052780063171092118947876168148519364912828599605818171154206202333389437747390249231349614008020566818961848717475746804227460159371324326948523747303790664991058799695502221900888549159163016900803703096594147636199384043607172989000299328027881544974886223208946378231357517953741635854908472691073228227644820444819525853283064634249337101453986115934397153386008870440804152324523559172481673443440044799235517974308239022950417324846016993165996494930242478892884679119574187848466582088471840311451093281316238378707841602731194586536510560854067073740663695423563646833567644876379869817995707926790413140685073039738592734043283200986744383655029537390413383762407408180739267942696195686623877077605819364506038309666043281838405696224549965692340043944795419376759244523292955343735395307668255821318555629165642442018916218384706378230215636400182456397331597600285545037942484516282783527522967541885187745643988302378395655147673919401947316638292547495632366469795757921185607841243810125958905087318376343321432210856733018507431775069857175946030114947893679672923505350646484978352526649533032348770836197716238474484207969403670221362807182938979571837114750506237221761671441271745847450550962579814953002050909600227135498905481491251372332240922691121468464592909375267916767554370823226966101817644320153722042086002761281002945041309915406487887865885792801689218058625095151283667874766755659014476178658009233299557161003283839099950107954857222689656992187711869262073149468633027438003815485175439962811869513462580162976057545948601143263520408879321561318446857699644961345135305050402542889260010141257884270898466729690600053339017181631895697557247280393761758223658941541458128154228514299333329215304842441268408152617307710609181491380994587728777526492447944264287176723924714759887069925136692314738988601282501116026868940629451296317806523275834690792339515549202640275071456504505497708460862918918818124034465303685549079531510531574776422774914816710797592512704217322700596210288909317666363956920471169288316602391153311292200352980353263566834254127940254277642552142651288813185040562250432697189480491226820219578763496333685913338245744493485010459617268041944689970773233547032444952732703395978855361001376809924904683973443067707112233206641104970695206793267165330833796784562098469159278651161019466019649550031939127096531999925677523902681597290734019702172638000660070378484406638682995992571990778269403926570260588268487077682263430673317638461818293418425906367795203976218871580275391509229710701149428510927971363735814880533396959908266953290231619949317760085032199902314977928729387412778685004458100731338066471301734121482295543065405868528776001271903464674587342119810669801760708794705801328234893724841787965337392575106011192933292717011570878330369152174650209062222342475972967902268219748342701342738107639172446301328448808105807527089552927296792337204066086586367759936742608880344098291940242011875616826793100074712157883001010087596333947236473359868033421731134802563024711760268799680403819160153426616270966302339308144537842723689801197345043435081029851337150036968471188384550325687908981436868429237926559572742448310740504234895796932628473389968444161662956724219295205905357414752039717765187596900079082511554863127442598051399598161571544728639455405994313005716795252548412366964923057760047877379014978132700126718805957440434750776232166107810784177990435142861883067766452137695033119154644623108478257760583566800637609945980724359505758214540107531246753383384879971834644776603477675205251256228222576467105924784022796380900728670125608101077766580421871677670586742899292582451355238747782941087280685802741248953300388797467712485977317922286157017528788562484393433515143189891454138892304341050745239796020210824583929718705339372622059793586230446737313147790339932185391284520418177646753426550593657238900355077498010283668414641547414545728570040027083885349113298627747488757332387539426604688532054069971083560386422433079861341621135281686898436056198296695716015121375997707306140043826553012584655214541519221453527589967438445586037289065492309526197791068869267231935371342755384299018274338849055028936546285290540819995211500108314574702365260927786193827179547883420218133508641553140709593638777010058471244198111808465888707260404336372589316702096440045903165599137747273629407061636017806509741030081082534059454053018036258471777228447913033059178605813266656256013493195731428287470288372123151968703369373463184232543596529032271223248006169407338418543452960188056008215248821771578427246123583251507449310813745242654269609846543592272458485968023388151004430496668310809993105650252981536472284311028652334366004227894746479693461182912899803144789321676671270117930662914199949508189840060056394891342716370632943629334703737186426206583160182583285581337940604082763453883523113937156453026632651780699688356851416648027257246106567498006715091451597674028825649998140880470624696456671380219154816870620973630998505460067803127929285374261131890883881980657190571062958053716092431906739094256172563433782057030555321098297685126008635908133416554121694543932997211994175554924060231410912113157402567010983638896584308594007174165324497772792558747471129015053594637080008423174715614299675567398587481484114109112942505687514850666720538882222024409900873657783646891492685539607127694665867804517943735613032245251893226602096033969702978791501146508276669844801237475404130278715767405070969680344267414034016935807185597785392904761692270127778702938446334308131786409595503588621682081668515911153037548392732245920380441319282536691748741134925816782758734103573493062577494483491312579276158573402437810808590716820419308938154088864093471811364784419024725147421680594472635586925527423366072559283262370958884563646147431645905397866455750436677411773408367288485291271312522698291448855116962899054548795362557630818628389600910624229116628362319070773371131584502848401070407036504720675359166341158666602704290945835433193037960050348102954007184521980063829539518370287291950828230986430907992259879760428774223495052064363097869284484530578768952623361090254136833960349279670465856242727302814833149218485883315234159515664492110044002413841896819843556832124683563019483816060829051232376442847953409301454643991892187956008486766535097775261772053784749116551374102621152549606954777725567982770151991522719106866053809163533000510606311178818773582972802499143292175206112274903882154128267550694268050639956695329175146132964724344672719532588610311159202194576843020164677784346082417146694216389922046065333831526232910203440021704988454038114394019087901170105419871389628807527786533713742558202239972516040964167216352625907802492323289429243873282461824702936152827807191111362709353355352437323053642109250052048260942138495529330519289969317586854989248186246550488777672029478760936844445312776697468543222415723412406188037780312859044284776805022163281640123097096620555697717914933478854697412501289983781296482182275395011117517268551445639743366698261698204880115519487817689794008442324877080074578588921188270130091377406690299316391928593783338138815684945628005659213958553744069274486901738882369969955091208140125806696645007604443139076735419928485560253059402165306173933944558657074250639748120675310685718110430635718455620387794054087150353876944794059518528598474034112777096723966579897169064393071092816187898392788266064883938887319837183846542167986402284645467660762614347122051010817810650473660885824608447458535735451445513964730106527257460907237167793889277299224056259998874274238715265987127879381414970484503353288034393535821953997639666598131656507533201866003611200564765707540700397457370921605981082201489659461810582427145206297113749404661276934273788383450853778900440526009152087516951594286289288760141690053480950951796230525664281145072401431233124074955073460447267800150492462443015216003796494858414796943291641620493492430855971292517173478611169704947881545112878019833044034967901286822630454991991547787289234529598539721222529455604922133301922815671651467084268656995350656245075949005741337765530159359570444722603990439862269337847431912942518522043609676295155861986417280578630449701212152453734727429703483780443081959459250939569262725737057327408939647888090035855759948447766230534433912290498676450592262451505186634728456419043812880357377452073829921032303689733658481193883732185025571511720649479835392891407791465196285161813538583872364439990876945396387806551986534610334379349935637915794293040447642770537169446572471421041764375324200230452644731754345627635281393078368404325475570251738802830059167545767849902699662938115088159553412815319695689769811687052143448362542633037702845763848475966853492712719216073967648526023483075094592474683348902893638965481331628187314421909003526952771482713090034405367035308481729409789046527228708525238765770057087130827832478330955092075397276701968894788722644655012588061771390342789671817329887938877729360686271503096776361130265763392741883377045573247457535260123051602395109144303823941922392200079520617941125529117766707985820948152149506775663069378496135056708486918383953053306362771389583568650376420202235202286992978584083103847776659049962599464966705028501798320254384206729043813065414463060995435879225639890191424564242494749097711191738902241447802202522305733284831878125536695224526564560175664789136552892852140196517040626017876416607389477477739917771734420970277620257078219909308370510671457381120668209750103516039399307403597215347000194039079340612344113511731227078102486554461123654650185517813658381876478148163898342732020857809176034450979356943870743080741661016875729403309906252790226910615176443704733679488633259519689818581280970392900977725466174102656825786084231482712212166705253400232121861595648709004849902182815613757212150062451919326467586632325625353353416325987425846701296418569592391450670243832022742691071052602167375527041043142764600075104310883667654702381530772291237161388678034980915048061645839029687876235158032111689525309241715149233605661195685947468980249721309204475865822409695631594657724733862579993637513741171763144618932888684263961413948776193516420423658001565823660837717675691123589190809981379112470241772184076244751790842335507804935431192540948271231544120727298451637241523437264788121826423750569973869860428785562304540282327655742441805192365923695445312827354853208941623702256847374542472150879001537331412636061084831172043832267998007698469036462848825752667271174418936415736876640186273893194164942731240542477417078212744580756323596628548015125031134509551232889272565329403165053917322765261929607337827972666679606518373149068314619781300013474397633016536832313846339272425357701002473109615069778496509271216832190511929181386911059881185836697027378786773153482425610762399357786466520439372314012119182342113665067231413310650559706955548474466198757694495777574419054684951150080721081793923853748157285807474630547500199512015807991009595186930840810102365567770524731140242266892504411007911111068014306161233689622253339254587757627249486865870709952198092336042186413679917362091956902806812836960699363547698064255042701019366501917396019664500190623774774737559715153097487548746657418963955411723290866600661269257947723517953902151689413160182800117005495720855483045815066062766001810887123069497595088248645602572755198422637119279934719221633720985464701513758431787868015100198782311575068608868973153581625937688358106218614230284105108008117597729130328042149915152458446945974630781305793237173494304607402852592728192310077281454855887183354560171349102611792757992022755306663914390063858422025066299009491024212650708283760079024872209693081841544502125095746289917776136640355637873658764425607340982096998428052756334965482378783928870930144110760905608032383328438884429530172554341331260983059915917213026780814540785912923876814633114645481436992684765045279627177599007899591886985720786706235283334040830572345811039018534514764450195272798545220759005928056733578985184343052977544560594853817832404704472153181863377604429659529102429373103826976907655472590652088854124994830464961537708017250667270946768621330372318552662753217706196293502165832641296827552449693464292440279475344694662298059129749649330297540925062710334899720870245169813833946908541266557003684787848090500408930317896162912278800296052291743471619212850227866118921461020618681418981814115579487856576763631734180952840890567698271960788723067404320557922367363772835729056120783573062689379824858781867744689994205794427530245348584968849807449749409324895467278027060573517839733241554052390556947201307928009112330693149477025315288135253213308419876647254667999047602608119792544324957381730071415968240744681849782293722024036871698088271072984212107195519547829168647287709011001588151890752800390098616929717884061902379106973549083026584307554098917718993251181490542088600127089979303400175292571764381408182529518725967039272483740049931302613164201194309038292780676529643485287343652602043135279430294480941672745752350391989703054130947486769921798986884001514139313301133073370694090858741965433593806431472311082888001446853232203638996655739915533668563388790907766907716207806210951123744428789960042751483753686154865662599286644993440185481902309252029971654807173381635752311764064040001745218925086838507159890734303948342982120335390728507435415972666502184179864782959004085390039139046377748063705226790059995754623186888535153669803790984510301398902040405299813868925568804703242725697696944726966743261692482936107878342193366100408004297179519851413893685755217580722614508712512871251571995338539748515860266152970661957067960944923334688487482371537305518747986211728954660834187358045606067385778779290364347800014256349148299526225064667462458805337535329051616112287786345524185417101067890950685209424953788306276959455196554884728322399504623868113795989266467663482995265289483285545741688971777667761925049399824410376289374378440906815319304894347876192456772426104878278289170935128562728829212040905400209598126490009324153217699845380915890689002073458467703219549396860476638960407580358019155923885111323787494218309154446866139796910518154215771225726350118531957459157729410678868927157715214318820765397102223716743111209702026760762316124841824047318996321118052332991078918036267931766170028436739219877182659021338120516442860512225691256146800522177016430696718946671592880229919346982839507113576597544145743697626334497701391682396830329297824874404532518341941770872411300408297170540810763667142413233346548578634107970873496055563892753020729351438111398196080619072052174029784442250146778404977590933093784951448734400472235707980929249098832826919596448780566658555877131387496745690921844472002936493647035375873079242978821402809958449592332215706894075052686654778188403076722561467255639789832654040921753676630825260835615029003686678687986521231160674753319427674293488400509336444792999087983979982676265490648308563782082014336323035147849434689280584192294594665303726463680839925471670578678823901371024400561726817438142454222392991729928749481886256552345071127827784946860160984794817109229223681180271912428444574874014668455591542368357642853084649598937916863844635239975604301258842988259683659492009617863351917635776679169912898424454713817615915599320501246037660783653097100658819550014636169601288688705246169658280411425046301991763968070354990616239511523782825867494378128159004406532018714428520168053170110628620130754292785015591509883619120409889981802420881337263771288447983865164901954395076044782524166261254025433188545514584324913255560591417878557201859582782861056832567604507291090566125888516485061337366092089050778807724426004812462046809496323410518342473855313895500596112724865733680161179079924284642631128385297017569839423208057759434147358969185457000846546342894004388266196695177764367346899023324374103913878069377856752122804182897444830561556585522200332278033383377243537810527213414730530622169188675786422960711855431286686226024464025092265593589674961857411732560680505402316322743849421488920542134577729986865801935572320338008820532252556602793628922674455221492375597331677440658677516806767287731523627114673705827686420541560822912391883608090258952642422777712114707645313305660294703360614669885807285091919261453913123840362248835956506092484153967440043135884152930228506904536153632275252780434449777518903821870078327847416391423140143357268253934700070477433512986012518751381404205781150046803989501935005490350748952513397639483990275752037767479117317342578253369478829623887489737148262321803148331074082560866029315186012575112535371836451610687581173708812938337556705631915745591123538993415959898190687411389569906941086504698516137803066556403512967491144191200306731882248901594760214631686871999733269552143634870851686151166333450042421086686528575129632534084869829357769343836353732833401166270341345839400328830871286522613374245063494831430286424511810604661852852267776870350196240516877361099897259118293336428569630030551084617288886546707803979041136319757774620523751793171986796166614929434883543566344698227566179175622332327838221157371530140855589004971280192891636458811146080477969347234645636793620426786697683636447886419391850396350608704405198678393269894591287568364948008068858372369794819607993350743906536368738587471236009951997964419039904299695373669033871967986282744151009691811465884634479569979137127950523621588088151416021572029440246847171985459903771517656172961528112269183048101874915076642998278508487368250005026345289836636105087660855541028852134076127298455132122096812818035305151295477779226074524673296498145952562745815491273040658528191497744583824125943501619265361339785848287881008084987364235586903560746855710271158458968764156172275523354056287158818336768161079891588721275582371720757738811990872837361157144179273110891060182588226303917638534813270086318267699128157418614649938139956202883852979179931442157224084630915333376185670529777447297082819452546082969991094186047750959363955025969366821966648881933030357185454671549520545376293739210304355954720043002940794763414523934390556161337013588255668333152267035264806694487529856902374417799463869451398127229521209834673693245106674595258479717469570419624488987261162621920130955067238959371217310448216863900727895782317677272336955097393867805531589763578265145672893150324618217978049179754000410513591129532435071256391475030426894293006627611373346390954857518807715871979161822111923379197311973475741561187524758584181942833642250571631588084192929936428621152934403881001037169079825377589876727088516163040360113928478377129050056883016974514292939531030540819729029730425326498906102819651786459807924517735798431375143988704977856800239180611571163040867254598927792061032318282796303648171791764130032435373173989931486802469074812611453367695052792984401277608115217729391137426998892882335382798909290772419107512059135904448008584415718341207597999260731029245774270010936727262072218182128034741705728808184935936614333783006736574913815761734778066304810423292979478774581803733361886828183642511080992341978210667754258204461116022074677783967522800581597212337177535108156342363983468742097742375800385113789414692459698731927550852507587236826122443011107262091197223264291100268758543372889489894982796732896350821229394728178963615137952999798929980199023262850520925411653145181872535010643075381326948591317576105121489878411635435275493283542859870569762465274611099888505120365784590042659815029711395570714369517003613434146796859375107119473621421340771927911262750441390042251288279119103952802733834352517479135403268773444364814566700714308369205338338530402481629935163465731889591183973410572668267510093297046837628984988149662281179140584739587442877333140016496661818603432771621164288372512889283762406736216894454607866241241628766926822746505977855759078821005731848766803456488422553033566707190215766725620920601272416469716354855152782127245040091711847548152457040773525548951278628294024055456061766409448342490631311538059829363228759730028410624454888927246329169786929423121886008818727938460317577398644680924022438349298932349487892098256403700232435293675409995839180098457522233600795882220843934916696326105495514919129505623561167780452223009269916212776297021727722597258472962350241868479072344933973353525984699086577176400408542657358399802458330999533004950076796352731682781619832084080331379959683812966242968419946347465361083617459778896701405194258049006593447660376414096784719546331383600086603516936999262969754282471098958773672560354917971438177181125038686067912621524711128171115264141959891388764251890377990177208516048861491102111181435383057882214591131076122177830568066843789064915500977378990071179005796882536369999191302955101034205269121081003856486118809543616118855778002910758584646232527176835897351833313472298377945733590466347933185294953876447058865553071295009534056738226806406459899704406762480704697595281160562723470423736509867387361962667003239831543451533396260848628314871620080941814842003192234574716375174251524429537365166376727039449146444131179202793160995917036654637127769279816984411412040538373263969655910195420622932592689315724800307759552238640532626796517467405978111315991268396619775521687662757281244634036955314472009024115275892854571746296914247832692912052942435841404458508851290930738596277179142067119923965456329517360454887301709835668396211805520512599455789829928330989018695731313575414432746916449075284060670248942326460391383361240905029511665598633584345832101850981353914656379860598111879457750098791114840780028053946882700979284508012137918713498935942697448240286733998015504082222604034635495954846155535228564711297853212547047379065361508915637770449685275790692502133765932707790218476604113014251793058304795694901604213825424799288902800910828488658905811204872501319632852768562141487655938048276471289895630720268852769822950193041276176276243101672914821632334860979489284389114466095683345711290304080853472500409668526987197757087484803649403016411157188907842792779644508135294434368595407350423086808510268228215570052412976133660131672570386023621488469685381033069286707357529809907236925262813748144300784680207011615394201039266480718730323143981512653412645177539054048588261868528588119928524500468568722164149365278374441465220792538093236532789827816440167101181589499956335858025694528332029398595458893288912479686952489574049035260993583658479671324838752749232166413886457017159560790658520473885001876467329509579393161087905785440439034921643960324687781066445612942171861825093739275998890767663257399817817756141833832645011113440070260413807616703754622945755745225636858496511279567547052536642734779188062137256013961226521416430707072553507281254615366128015328888519235091844636392427232373848281042792486396492959865040775620223459858533310780834782889549805171014353838159613656568361031425325007604657331018974321725581368042207745688107424849271749302029137031852012232138489493384330450004569879106493906721805689178001310849973094604823517703704550219390390016817555447074659655567217762192575894042968101782636422608431806245979267722312856723966793578600283473652038983466005516229696425645412996512121342054503602036184405325594159795737960566676633887888410686694533704564735518554085603537384354700715356180465676390754064103731329102905564049402513730688889003957600838071202326474830705790025961578839208872785037705028976813280647074807374977421095291862981449159641850153559679584838565905809032600029349392942253786137959879452005963241933643416757859979892288917999984304030498948865440758094970444986895276785167112907723559672706753658918369119190801069163858705272685201844353998754158769735531162605491873643734662003339870260671920657830702577638697531689554284526053405294814048216358357516497377085734607140839151961841341570035111733284209619033297187278325408186936522039436399878850109867279738648065139159877653339792253329477694390998215219707389587262727710726973828647495639021966289096734871455949337326933219745854720252351925833698277627027770389429065469474775932994272312604076290679120998425996265510264736557557281849025788583755680289999233345872238161357526032272537257303876093675054242353237177217270806933857831564097466368780862963695969958143611489861424069717852574205824081739566095182698567963106876198304453730282119409441338947050020601836177732092600343145875820411138471059913273241689998598304146250373315331758614522025930487527485365992192062223373610511086875832875372077321354371603184528077981737951701027304857440972539917709963117567687523674566439336825900570842716054198391867286191945497781795499916712991471605751933850657341411573906981758915135782318360999850824285785299882772450256542048592339104043797027667668343360624846479800044765869933942349186900917222091530375466370467656846730388323135227381904892606580673662670771811513615588093633870678733363960064322616709558950398299203582961248668049414196376149896293465109716966119028271604783470969937484401252467917699727471915659294768627615163937191735578055242751254210598567511481807262395056254576105782968691173946245471571545397734038045350794090411873214004204383655363059596771952591469405288982491593840507066222427234898934600910960456583193734288979346202658174008858007603950544991702104987157810651263974375448590826836287553858554285596701395483411579074517211346489723789590592306821369296983384201980596381997760945058694322640600601805938008042325049263655522573229613913681564774129833896106981654010488037248604280506039821395923276456327630570781279792001119529822482317422333692123346045278342783951504273608730141429424619488580006919195678226830853873138299526908145684042624199523662087146517422814811662214762620150142349563211611623856792737303083487288962566125663353627365957942328760467144202888054546355828744709796977261021686202425817846691450589163874072892940135312050659800117280009807274860977802019312449308125978570483323669553816264821143721866093548848614222940544002647304358766461085829601309356457310393909387951551242186614697337132299445591338049318367942929736522978229471072180107844515248489341277627616225451607460403900336809178350430162828893944701887833336965545113972992153860030919904913940969123319670642335590771181019762476627633769370546561822069863433534299775199798788822688490863040754209753705928822626608444955716923928632073492696186967674554740177919389490895354579596671650998140267737553145637792323546106216367807384792636750206796803993278580688215590095933089835884699039632124963481426759662240788885277274848300382873453847821183581349375830447854155139832377940409807160855928385995206114042201326435101594598617683082683209069524087131039051700097013479333909672043458892630553573655943699815302656035093577517278054859065075443917226856008506194978921923663653873549832210285670194389617825859309273504961504316560545485850645044455033558671198536568169053437792118042902723883157321599599172316333991629668018797419132431336266797893472182798111750270022431961464309777094171266563724968117460043689716722879024075113909828402152804313098554980109282883213142123542278159967182314876563079519437744716377335722391796124191040270540958397669887458695681340044278937269425453840051197195135781391546184128386414010469604526953677346169536669466860744725351526435155979988751514702564220298348866846454839900795488375225306873850351602094138553260116246564478002786368996402036388554802057044469821538588757684981435170098812755149110231411950825071537953074159379935216366548309979828497573366282038765739815672980700277320208935454237177874922089601814576298497657277828811887322571958229753295140730942302552488065011080898417943879703667732505151970627624763112309727999081469170186262082277940314310884572022117600893848547274946060142205111270490337788101844285997633106974063446982658877769537090055042394222604762028703704052024583651340107878783670283169637699975418552545294247343302399053105651610343229362721634310009907900966926016114014896493486061227964685759094372466877733069937592843184361392400790628791033597968284190280478144744789445034375406600520891210449001669767246530843659065905030523998766799570785270020960813816548125236022315341320520598228688730075846727127484186893502727075261610502115538708207775631067132568414574695123758983057970263346575188710066665772637291203395254587771940990349106890159037000204150740755029947367958665699437221542593334545294116594499166591140828155225115116283704359460186585888950710922012395099586905797495595628577120771767950504104612185346888731061916761408600421980346627713326831523074356426654737854094758338267933661177883643375115065395173728670143290740900897226159353920642005079026397399158054137626647890778039653035514113240472910818201052809642319900769240709392362339798224150289417958781613213373306877337881293793141248794341850295669511932227949289475300269742535298422026094497171798663392370489628082984348534073827653420876116450207860810573297022941817244458357723888730131838499832397409871008295092764733520010726458178263180532951085130910275965807912593981325118520368862270718541378002626201439187265130142077538246359477598789505720582828277074560885987274077906068223841441765586945947864092111811415466587320750553330734682742191279962072504005731653708565906207708521118851590892895210872542857010016287703771037516224647625553397891897072219814576387100335790545674568412243642509459253317371612118978890896363017364786505708709032385167365935231204420287623995022685930155049955840220476367184733912103477575415820116085120204048593512366452743982267783435688589063805718886334621840481530976955953385343201440827834911719130550340084653447415709879519445385896244696376070897516331077856638574264147775890008552713998645496894431092169994262811342807403902565808004899548889874800797137978065802134988042152374657619506664485226781866772843178099192709113568875074999410484339801878632836070102163939035305971879444101871848130761661441214604028662443802609327259084403302639465935711306774507615166175043960806552873216643589987120784570547050986180222041776765021547332659400350763862556407484608225514311078722522674176400598909871469361713307596331795357522735814546676912112974330342798180342052504494674668502813048178856535685685523530306675164009406626117386545810400056125830380064621100545429971099728883021671532615006247508804204153146872263253452622936677588435107444286137096617684594827796283029326524860781880678831881260473721117335519830209635986372312498980839055577663381410430803903789668461021589277663191869243220410797976038995902134346598614570831164030610045667369405978363623506835362472716772682529939629526099271311583639592143475271558457136670578970667766340531916328502260885798515439895347220539692865574052006191313692558005444226313942623992220540273737348542264726690391204918332696875188316041118073644509543201449407020218933434179875696717590576814071889236385471772626127581133586029401569330882364292695809739428687786133944239609097522922623977076044959836472638457948113011654375551734641685479747065896105841276228841545367122285538425537370569084000955721656191769782130497911572642739087703646991447887435423320816695677808897159167155195316155270751534301909962362116958485346505697593682641081924861797125035282373635933464672220166660447511327536839170155458421733017900839460640179051332662223553674556961703494228811310324778750666416640681837185204041749422737758703365409414693022808485516043061707241612549349440906410251094086186124105229299066947917156749220794913937466504183367339003053501974804179866815020338550989170349221485480487512025451585645529413490407946167344110766540475732328386821126511224494467275144261572782584809740490201366156630476560932461643204216764423480198442235378626707783922268455275717965688840545584303869757030880237878865975553597514308444743666302785679004939890321095063317783024107266447264862064569841212941192360864509299426901861792380381865721774908413637124653452592632986959362377648782897362756375557455890743141732195775326524818662480353113263664515636626980175049919668281562035076121776651177723607074899758395220428350889729914583037648249794380152191093816469034393967472840201411985928409744159895621575417921352149204626729852735879950929660405647842785696173981635064299821921051436025454698757115888356690104265379868796021679149298226657239048524562431004193064456244839068323353027299796236724060588045637100770554755003570881520729672981304758389120376486870511639320271864567210288953119172903133704097623693273762624502830381993560363159445349433672055517393349047219610172354918379146672374944152047691265026350602507777708634437995053024495710448603457027124515771775828802453079989447127512247792741303144580304505504809229205184355493478260863786969246284490321587900533928966649842520795045159265627921915553658200118621958045831572916034961414535091036261884341689568169474774445507637084082549997475041403815954497758190678930365435028899135642368706472579648829126566587037133261061605416044263658286836380707120130544336272612945399938114823635470450440997838072700127250357014022158308828467792420321193615762709531359747491887505116981193766397223440435864055375458749954776598906231742256368769504355869087661222634760906173317170277020089890556524482913517203034447931125463057255088275084968007234464932234023025782068352197866503477671556771004308499937173850666196343560992098885542162561420767014222238747580485292144803627917000145461751510314313267277447855229650835254081039610304837465796647935040749471146382234329656952865175844772386334889188711088151760958840942637615220228429529526491960893595673921436737146298088210645635406841128212784387814163521320215423947525121514099694238636889386300225554355510118860297951110005364236165500683045537079631509449176212901961769368015858427801722628589029923211367622793413442179281658359887854703458085806059679749461756214328882535225320021171711539918966544181985437155740367145344423155339538438828272474704511011291583494030698520536202812698844453106808063360335161335099040537779133158985791676950458646618356365551835474941728779227130501976272140890969123123525747263703268233470122143944851030490817035558188454083328762035868098769624963664834748545696958876472159034121163933593481994953600372852897890238816695781795869041258357346870808916096398731241008909674875752478992254720947934268842755767190370203294031675578811601689053208619772969545181687945515873830779681549430905443119867316486858416984948513861753582035610323752478975211697555106626753635541741875710631153551097087360143686659139754170439885769492008565801093475010182121041986460479473350044095385755694922370106599873451863579733040582168412972460231385796567332456043775946135085703821334515423035761003069678937084918165428784454183992321710513691444829386958800277093817413617149109833726599193370397021885151905522141556287527598104049052229344605811586293446293216948392817608392244315165398278349562695967040311119322527503766126790556400064273855638938547530679453883864305189016568797438481973496468049469745734762219922038682765984224440218798819847638310533556222715074606757613582794083458718750085838322644492399185210851352228818406449771844369558430574156725049272131796182331100158595211360829959908481459128371232430734257020056243390176338893893646975110079542004434653481699080576361224387559177730098384885111991154933511031562819124373972694630041169933564342010586475985393124012742986972302274235130783532143137647710559750712351985571809341927238376349970152222033682952419945993817424347190631339193520355778351380072225569920406119131399044121303221057765075634992641858884987186959562700039999238234551813837120174553187976278702821281951600936760855628383434687405407950928270990292314100156404156044291426674725871696289867503189877519755220183187484821263782169627423917487968124419309462987856849609449188073470670122075998698947711856885346112800504839088525465297181422383505362262964594534512929893186997584450589478110637903225668268898302098029961438085845843005128568953091546160419737037263995880079101238077094848292972788530635499892279523033659122828660518311430439349327632219032559703186101610807889753331104016688906881137751835680611938203206614345086901854744520891314039876529475161352770836560827765185191218906097993003212981147571124409911312703281839983620724468429466852912984563986279810937314195530495679195607464447189881713302111836912388304528520013624920369480013342509309974416851147903369770654347244470732716370365745106596753684910943069595826472321362185329781906651077370796541526565234033179162213143576189217082138585954373090374830517726324985189773340948866040818178371930267097673639696051655760903655820635703574397929505658139128232698131638925815409341915011106792267021459674347745886184373458757360489117775706391443514127665877382241136455927645624628244581053248334458882889802060051983056027295026087043931600705480291781943401742177257418949439666109941044743884566217683367527649157508519340035568025613275591410111555675425395720634546527415748860970487401520879637853126152490259830106198740652681808466557923017041461703660215928440810570633133859676081010075046692804345205169609262525450094806115831511103722596018662971269171812604813609020049856806719464020609515885744015762270256204366362155274658274546290839344662586105257466190669839724920856889292267478612415869157343718407511026570268443298186789566001102187622195146293852017393987555222337080607660876906702057441007528939618225954701274618848033949283822893781280011532065786320320141711491954038742653050709861958640657205837516986364132170656091858257697762056479249976318522799481093803039703437666842444537206599244597909634218371769593121271375712261262047159333373988935491953135612618423295042800386253035000521080211772058471125093815702213847457440190386679810505483945785751563161527053619328502192270961557800091831333251731594722181897379790209462260643698618276920600455249065629284734021856646812549773450918761050032490094435812098504357649116437271049300460277168596299338371661046645962471999352726608602375255106408792498256808565660997923130647473504115760738308149928822704254078352928797951859527011435619282912724446462435500282813869791398430121496137275065924495384804891222288271790250904384142367763639021380179418617050024053479594942172621425406629740525980161693725561943451323579537852485423909949360123030597974506043789324429742155799054132259300704581290918929159455928701882922749644110374392564064533040008754207687613508727312643859482552381080373141008089754755968362453687453297887346537967509434340394092264962933463025924997172200391852526023672837040981246370363859459829955662818415318931529246702423939066813333107322843124342078535316154672887516357338059751763562509931268205454584591180677204468392979289513506078367619453536057054697237668991959217685950131985920790926785960478457192712804395136339559269923381747558033011381433266221318002879581403084143819001361882260565124578674984301971713948462390661890289819506783719640337374729083464094089486377609795806753681523648355273644988992434263034657743808266502517391057331203339703352479176918198769972572321263748685201598701304911288130061528943988550571333615195962614250196509861779319227216483349442705315786586886047093214485918047888189913360898197026551747126392840348968366896398269021166851557582298770345699030397723703704636970498463103013145088941155454455639813523250519562679925487550931127856937131283000040958864485364934177526901232649465289428529292525044051005188536091018102401083394875299183832000012400123892174927526780037311542860015472146602368964684528130206252677233576445400461044404985096924230571809345585501694962662036214500046164542276564565020675728485487585878471944522477072242102717005037436017432521392623391020677076238069884406518646391125237001189276709019080434310453257696727361273292586335368736576767167552461145274062599400903829739247929509737044825076196842999260523012824955679773692824425353027290830032944315726851578889689503662383168472299785756528372575920025859312869012765757104918057426430702722147652803617274159815835035359848230524734505960045860295051243169105142770318460594806579010253370539357827132616980979879526088863406644875121106149155237985626220853710514406801178268138465647302620206261801148460066047687254066620705971100100506141671338017620179184325698056256528343154729296976364048928693315041148524138953119476555171468821709925559926585054145354299244139922418221283769945284168261164234398914504920629992052512548314072666350388738032082030269628141708047793304587212782428033427929552905441434306369071095358526931568746658235618311855899149731640972740623946527480954226888326726138637831215860170530460207381596124539490019780419788885032014679384834191142105561982929607562424134616430335584820918366083159339511656413376442163515922005887829405814448651456109108762733835074582760217665960095387833049590715713293485804110431023704800626239348035804064294970102092617850182085989954519636085116804173443477238298837451791673683609341043441084414825126112773130090448566847344160301383210467191420961081961015604249766408682002098877496150974849052709658428975682346257358367712035753559904346066473716414035253681113736269476690438665156486327438298899568696290109044444181886613271247521754974036658502189059623476391580746635269834557279638178545691647017651182344053722472674776352254805373361032571345411492036599068253455011049442821103278349172871836750806120884278497809703581850900624828070014912798100594100013418490668886422089800996532762664919089168087467871592266675501346016178707883312987577403892165261381449957374197517751494004989564469458942235218069142808895434068697403881234496010957487838429090692248795054807537932765561176201587093358384824222244830083010795636221622279900513522753922082200738777725169687098557042478699599003465004971046379943170401282929283125523200211547828903007218919246907258198604402767817939786199414327723493088767117674566498088284538646362363364140928437742777714825390983508947504629219749914453415966187084333674899422557691812835676325154156728255035062118118530049264694992314083913193052816705557879893646204854679195143308496762208519349343952841919839753299836432418165145301254752728535740122603868086622374238482482703127439309352556922073626652277670441885771570231977352265612133915393062457812973754070291676035048795001111576315762579518164181603278432573772763463385115371764739321823929019964893359146664435304137536033413863290287434275699992324022694488083715140980302724165571842856852818214712878651032708856995248798935102916309736484919753082495951900329690422461622652688211609420706192084014383978026614694642975563840349071703720886039670424138771663020683849447241926978120688979741309352336597633961575022515101312746811786758620721626667427082951508014197394655425991366488197476273056578326164487286170975472945931755831448588166654140861414707494395412465391964467673110695685783565622061381423950870273114997579302636766821522743207126906911764428224434533505009861447693629032561795693420749490690879421834637409807997863492143900053358556683922542347732774223766878929729941872553131389821951670752812164695720685741507241718691370995882184339060370267017847188174079375500046088941032412772721315059322795628354068225726391265316346131199361822533653871503329137999199227237376729247847659901503130503371316283472543876870974942107792055403882916112483540288641631372927030568843877918136949176639986725592652155742336546543125654004784862641414824351499175116423151270317221870885369679619548397344669053361106727009502584199703440947224300384097535220919864659148385784594910426640457709226755457531466887337706128211280842601997731071131551154465268671847246312014405072707899109440118793340562800201123378080475059492249945717729092130462036006481268454279525993290965002010198819083399266058136194504085852219446809982578523302151412688096737085756405140411857191198775911046013006342228010125589959837967783133924460737323905812582856582335965945484684466047088856947207641870828282070612464433815051006071932761371322063969152331251090471693795830849595582677467686687284892418160758591002794109724505847807742190642333989848806208364664058202146896197153201946490692361141878721258972103711684859329327411753227648135782965613948425783548037784614803785311122427833066077249567255378671324366551517702112644584028219617510929885101516211266399802697836709911835668112056804656163246673912943086497810549023946995689748677243387895563811485043018428786892775346279438084981786046938417188918970297125822194833290533277085159155835415891035924254492172766518485335416272511911457980115953802633793407057851577412771061465300831925977308295457576561299630772462945568961887648816483214425716852539444425413286905726890543205500053968502889333509130720810254724938735381485371953832609709572770564801139980969259097143365769010759767119523759986149927344765385486377137353049069798641206953262033256384953507488813593376561506641169357896820168922297017423462372157264017869004471177334190159317482469868151886436998788371840496656672299105772967353287631488620318018646056413453089923547434742992945888170767621327482321940010161240773818101234265831475256518689751932065370194236637480047169755658302243641076065027154601880777437599563564807504834867374032984371331386099671803012814851155077041800701305846659816410085514994750123685368494059038908267479771067214483713951131518213963969259464634214753980387799055989646695479865119551972084312442023948865537295891399126480908267745863148955841005202073439932092317715938081072519814676656086266602195904459142065872796004939377826542355181048517302834722206328086729050570009289510391517692126671601202411203578163228930558952841791709662026195708926592344955127098928290416787342732439551755648217271627311131713167317605107683445504403385358103593480638493057326434794319376154168528421048673882130761067879442223258336793538548152886484123798018226374804997989099861709941334409124209341047808027129560635758546114414078707161842094184144153794487687516123357323281806836427775963937219456310327671872283627742554026301207906732237950137450394184768316906684506957525245599755196769393860253565672226841946157384466822591693418068199909745213216370071860469698979096864291658802443721934839399921730471021014244378723753265723408758296664082987633829255043770512410290576370648665938214960057099856918592992105479753712710009523117751605070316352717877424241476577132343457702629391363917290816882447132465994608762615370833402612539627807987462473632175091603145909832148487158425515734169114000484639873411064798221956053717983146371900450001177814056885415640241997834018617345914619159764961737302974943721871821137473322259064873734183098412674958535752537505941417362327053974221056117753220603101964944883202879518614645396228729765560968828463086929926889756826315887514200229545425348155838591046900738579544167900088246519260532832379227654752811215502708064173252399995336767020304815950303008924952190021372189507006034546699335111938838472440809897483044775640498715431122116390188975233338329584386060943054250189171610496136753361067234359455485343542985696110045281692551401043371752978933526533462713410457548610389462708917329058296305604932933633953866940058290957078363753884909612822521102123435330021240454231371532102277664431933968350588157008742027960679986815708798486579423265853817946468341526644309593975533411227080711223643082828591004439941110686120075957429078453405186829586140833908445610510534751085028982222813738673710178579578318429998595852542302634507177146470571748484468193862634127446842327545264225898592429488498697866025273254931283426678389221614173635221635962494383162822053991448325528273726978555132219974870628225451543920735130629523388003195908308107468308380618823819880408574282439373968552805981616813583985441099715773574827222191881117879782827533647572701582707103299143810371225627441356602727879350248502815595975934045489610360267189139095355484817622877982644475987986557923269076798344047576447645308020858619296797187254253067521785720873037747968108113723775585078915408572414246548898390335266825049238911582748438401919537281874153595231721759808760133625524930903328092535651673807795133708052729090790170110572304515606877083407135974798241301037426693606713126706066152815972178459317664471745925819036239755429093756849430800715104559056761380185905355452672173060176402808679591539426137231207658170817417798891249016408413966409649230036676618399172856507898711431331935512921766899403096572309703320186722666870450354658529690888824408690906032891222202763367786825004946638915894786097645664027180838479842163284879861038346345462144739944784170165764317348242650655493928352168415906013801425387324091559477284775350270648045853940915703999785502352120633116789602868636043996100289879910781746388086493342507624033732720669989466197983006075690680865340788728433062800638695529916117491423549729744796436001861316264777554609847926342323688187821555624612140132243297121672417176567539521800342827271503968201592673042893202824132677114187472134279750861650528562021302624286527778432680894114490744919165968329912884389310199651562814080087215321482274539958985957880315505163396927356678217061330591777800736126106616788960294230687021832121323465289840836760774873681560372279015894994611514702662746384958869067545125820475150209271918348189968285213999660629756495947485021872734483832639632546017049553035515332014316414984461423582927575530258789081448769389783234264339352782857740294434664784205814486716524387139759981754597094744938138160409155123239185684131989435468589834807915849275626532892474657579174311031607928108922174469418311036514020429263042705768472677877070030785923634849742925212976443541420010775903390484944809968717895636916927965277843006788675737218299190272412646695774739021317981457051668375216866053685832441960671545254228619878217072031956670809329339257564784432326537382703170327934106028350154076599213762672416222998598390941951543892154758267129161633185841047044992343296687054600122361833538194469412221347951682877819574898970746101588988188415054610550955480996160309332302585469079884962686852634487329376539442465052918819506197594015345386532992385687208836919135862093979316813776226865941122018826072916908136751257509147836688033193458245831275282981303867656387768265304064670152617716354756113731195048667277239437916821250803280147965631235421905150211109833396903551708225517544037557815470701396429019087470503164692242504467832307035556706740041653578353795874630871987283149137137908638800681740327462926447393140753676322005662715247410793797403794341685747213076286992369599606513075347444261254982846782657948497339557621855388670379293924498715104106543957651214164663412058734262574896902979409305332302011600106468555495693680104840607896241069061144041202087392629311228645841263397009113080789394027248947351480227537290916920403848692932351571212081956953602353818416155956033338709735616734380920013702268041548362935439584700453556321376607609171566982663428194320119584283053445544150677027415634515966331837326241264650467847918441873971023599337526187801234267050790367149300779509123282672088931434783243458741181378727252111732258918194167987364692333777435676081391081516570305028806965915624881884621473418780879603107416275254446799662686393167499086005742843278323264705284908736852935544573120098075827954160099883926234518151185296873493333008384804682358109350235477044785820169665655672946168663391058046223632241665508821423521545171233688466470566370859644309149945455170492001416081410625944654543132176482511764411794587828902310848753353510189113465161855922562494883332812039431176939500713328415754748123197311819228492851058277278733962425722023908437393794312679341575380357948714368644933772146487436753519016481784330603053415312904764457952540644830354775896918470901758871300479959367782734683038459399992549937589086406000007529108657842541103301710695795290097064687628320634471103372369056451766920698770571839364290308368236363704032881268615657569869960261475633775063812077390193077195125847873558797208109615913760719484104597166719373374888308671205934827986269340669461932183630055597755477597377656178944995680557786286424694806809659349823199000813316161806609090679527469715386069750375215034035234336714281005542957426609558044588396422773700921980075838465662455947383986906465461878655221069192342570408147133334240925907273378501021254969045093305675133258664776674913695387475155035329934759082646338464669521578840835567231470136207605216049085345625070537057756413651121970864317834170873174340866434025770674503635743403031660042315538137471554665146107393958313287029524052168318424818735312422368020369872282741891199077996752178822048264850839969979681311743581076469950365149734528742818850713997006762095644681136720903528171168504986815026273103121750579361976304724129044484478501815708872106410433682836961714687601934676983040912764437790897817123075679391046766614938666377169607863770693831449354699886541871479455749688284455535734596038300839700042274996366302778178783203409637960148263998973098552012254533279825427239131177560127106484244573717203394715022227080841248969164055083992340586682259675024132931964957367167379496619421464689396364413225170089310691603462353815155127156365618486069210138076510361298149885306741804179142079853274332624701404792051903583887769810907895680129485503399708960420835966262098820250568214178882472684963242905220349057963282884026917146270220679980486354192591205327535719450858351081328442578390939035945492739221568594626808920611842892852016985536650968633928321359597014087398122563594643639362079037844120595879421968630334978291318755561299120174264593087867451884433074613472904037233533520140917437055394403163545055157544497499679410184091227831630677702453770326379010760657845311862019590490083645388855365952477715111227663630886616538871849242472607730261943579479290222735117608985228997480718126247985633579328867332901262017351220239049128787233089829575474635765836671523010823814697276495826965812512596930987417148783754160949509621419447550410333266936611631859957923557607372392732980131001531894324444252374289850933950523425499409156671144723358258399950015928309285205108968803868937611425510014315217646570870047004618662100979772223819766276444544183721516293377779176086142013020590709866150661056765368945604969817555141713650790611291594188714228812887744098389348793823278656317163018908860618377985930390720159877622633680030123554124334381720605146776726144340597147756109648365463439086015505561688477641232975922931734258625025629335550340473128338985690444753448692224796086878051612520996042812190495674808832254295707698278136774145979546201231358052483026361091947796934692090393857901088091051740706574510098590269789632943286571054990654989868416124604340786596056142618180587653129099213750800783294021044302705319845427845565506468265060848302880929594160004562859333616450425661865178688304097508908429063627229734319941988176794212094079966625723159795659220552336795277550667966355605874761023763294010278615959094271150425873235974401659672652576093813562178763641863656429891216036884037761870770873124262947370931923571445203007787514893450170339957768457612931361021831356184355541357570437418508504660991320831336908054333620044720147725101371742805260278770599310446496424572208966087843293038217822908995199503726212602082267325509737806737580931405754153333309939399045707484535609561410205819183615328806742645147642264155953020640684976355036435813592545368560970688418002976938209877740039990114145342434077862988859116473965854141419713143745937062730513033775677659882788473698380257133742550767067163366346192215290466467711256287488031166957656082404720538802498878408656106177171604005090536241611764794933216258405690016992485695368149396047138887154961997464130016647906930126757112881307631094015121539217542697681985117900504929844541716583692448937783792265718274561453555736312110337244672683036803265923350414162391847105775174684064608716208599067743729401412840959379562916672557844447027611776662346179650107156030235833953879102264999991112738734902044311203151101578224589988884443913527431120825019340944495075714421643147941643201739999765179132636374114608810722622693866656990001173002660758806659212338573029003839965924185953028242772104930126741371775176759021576363367129144161335706102985107493104215765557482656787165964792553968146811730583987714658224224862153273363337769795863172834731412393319656613068440418954778877179598656762779610428914377467477374213328680526799227813921877510499222847788432548538581441943349705477657895263897568530387307530938812964141473319362919044046348334793885254241800898641948706322269501236670747469259890287974936589787152866986390418154352138868755640286940041375510090373102444650158052931353696340346863562965352811784194960285543270453753203847468527017817451593112035448294328698224700659665444171914669020375669712053094345364883955332176780920372116018577698676857538639873545184102669665660206266427142459424023528893918527501372548633407661897110265213183748082693115037616412756843986667787873930576397329965311630830893042042534380678903474178376515393609153542392645725563455843322373156644221766569515506588547081439675892479064259585717163757657444111294858135818864614343010520074220644507807251162902448622038204357076721204076367357515373757820180242828827201460814165253294196240731210451168204065256813437546480852489988433077534597343490941067334783377592574029002645903580627470647680740782718146865584585849904141106923139280519235045615239219424160172870448007611091009795034023610649579207959968432283862235419311197626526669522167919239349227335901172798513009484846393956192116924142624084292106034596072448638091208442246082090973644229761369823661083685464567981737172950773741704539120984366197744798740445231651294358460146930883067732876760429596968662352441163773705486071267605884953076645972766393627647307461330142382946445569566410485971682945294287671412206528899686248126125920043113040160651114323852272956420621496236588126898657254446171142717001837893713817303869716516628854820676537120827544275399380077911801245129870895679233885297163736856331705485845397732452437393320417021026757782395222136110654706775265624019272436914115181440913864150713388452366407781071554470420509682121378860344357285667217386632361692065800532356516880098994133383538726493862717027268927170914250336776326703764226501076087403332462386058757638117429493754206934513067977837945300870621477853537278984512228543327592338310004623756900327897050070431735823638248638048056556961794224796418636019788808067913073225101130869118953360177164963512917397367019037963229207082527426042836417761889577321259502536900225956874996326398987863899162626476560759104235140719356834477632022646641624722977377230175310442208441621672322989739687171695381538117524643458407027040052405109866357597851451591537478253519901660166912416214671401289792323297289762119022044245187688147099891223942050672712276282789561081400969775136981557793539612045833233747106926077596809953217639145568223252082934098974379411477200833715058247142202367422873259876603200545104188911167497258057374424415824412683126091632074163755317535276286708042942967748913326365735275918868201601553650752337207441003192509198329310942248628126033793212726922825742711436298096665017993550554456246236264317299326092950990351515965620422984083371153473609792896214238196326904344249723271975369687264176912083856648725887613933617210143597404141112912658860261681269969692667412679651556693157902007552566953412434439548029305696297805262709607048693908550870801070747460345472763545192797144493087991296237708575212889771509872600801938364338781023554904440401926018956763864287997390501465584577529149119332532752486896547505722107489903988635855490420191964867526004055970921680521121756583759528051029246464033042824132011990187043491395398632851677755012057603965518462260724806128924338513644529078117980362084035540416872775748616909154292249217427986722834009554815188289502011634725389384364440298881006292108987547372801739081375470294429035061339348558937925799386834227485118072155437740630229622363117116116363610270728433945050572496697861432189301060951449757302974816403355189906755939185405791083751419039339713556120678187272678298999209649092500890021194613847326103391705555429078650791101608709557742345360522919373942447227308462030741502820275621515787364732608847445210321163152648307551193912731166419233669928927345523423031341273645595006793050648640051136210798261988772783439121103664003156626261668115986297307413209237019389077414662139293692336398551609619631042841355936874814334580136072802258666461890367006699398861296729300340899784428508483801944564045756362617536571409948269605862955778281698305186707298104114728067940269565486099034410513216756682308338016981595367943792010852572530111864210313871372330306696472399511714558627780661906057392183741324863111439187340386653216971727591682634944601408256219250485117110937500551130648695849283601812838168754808478010154413956922240177947787370716262068226598804638003781120740064223604088994034029770351562893781787060379148063617833095582900732669795905222974854536200870207704107803611643241565510889926942710988913149282425343519154679665699072915887646436507166718353508524963586539882100065064702554284680382131614283921922857506932071617339852746245395606325528066746983714162638866735562607656030641491335065291689540499380386886454627963454414879572489770749774820923202935231537668485396969024551777998171811315527174317825719642416399816234507945508754490215154318521714377541043549702635715433010250376326004682249367223059533443700550037621244870411132011984257850079099684539929762138539260174828657843090073674589971434567574719282640669853348536593122638679545512938842071262541865018057436208949120142915129085290535099954745683821145590797680769460597368380583710900833268109729917415075638899824153619237303348974588241216580099916303024665090031417647137448190064773733330634115427735146315186020798976345910961771777812858233695105327480600256502020720541629448754744785340118211474837832153390988682209109713073234062031120129832101524904509390006163032588059040364512360441603568192178118696027940203040916393108515492631561165325624299458171456088525032763859401905449619301844447724447136119672124516690212314452371719064718709034629086809531710587826220484932316957162511137449931642726217766570197163489560565371682889371375255813503734857209997305274170982936829947921771645024109669963562530477035292475774487386649716554184449831090985517101883029478141208684599982423475815733579401679163194229591623130353366343281490100739612448751031905651987356751618877926351410121582906824678841317018193637536852903749810455969516523121753728691336698782915438248249703083485292253498111301726705929469327822939286610294654735746327027701880022255418742644499496689126278635300968223326627369140382115240884390728690193872370713422736354761254145697183157616396764009838977403969286515706404751255352004161370717547496750844200034765372801904466881832395586440373794468127691931978236657710478652328404818774730220897579375735537128662326113652239879038937589261055620800278982459880469484269807878275013571346666309027528119567168097434086635516572709515883350653309537894871840712741221393574659094752648417305489228256106207412749421707914786602572535702844465885185387814771069595592919850538744327195942323449480020276099751093957830573929262753608816917928189198168310818235087365862380176586123198099636254955769755783693930671929819246814733356561678725285174142458113640663894236569480481552245776092048038175746253072164820156287994833887982670336807383478205921687612511934513491707845776067321092576326465063271361012333992844941821448909240434846162009602605635480523922398986988269696851318724044927733165310882584719744565574778485185057685715745831187227046944263621885745965220507044913965277361189677699725282068832171810513232292279998561776294858181156323021377018684639308860072698710375613978080085180750168312440482690458842377940705003321528549344105092543331398535421369746259770126679057994013407035849732561978606312318788380034080711750628066659967792882710752077004822336120386680166295484318407020417327582884079819094345470838255898937580824691766014110036954717216814730775906949495055557862358744487839730344899280142650867060887331057483863870057480938083164351590640833962368775394620086298501816539505782156991156019245107474661750510069604595509998300029616864777883830345381988740955062223438789949420008223950510883642264478393518138331762755448686736416620593472320373077605724062902187710835106247797092420761341416675241207996728998849836395843920281538342835360388121712713571530015225432553319826445020974239368320412263445664421858387197477285611490477209001804072190162837825780520642750721467752148272120068042869343690252692758767664599935389229822550349897721484000032332924180730031018930514971174600891737674326429450492644703244329766807866438273531590252666053785960967683047928513775111722829917688564595622310225564342080893170127528240192122045886946376501248533639395190532424848318158041021585764958629872086506221159734024426895532687676173122470180925526233681051556154803806580538546364253437417266209416985480800652799034520497675820446034166619886994946964384165188770590572596195161088294747053472816046684741168248589528727047185599481344570677080579460399505202703074775478868864534864257469056361733958029326024498386103435155899319766989270470064054387089294949889513126876465391232275991946215439361147480553154959753341353835867366208431901965467367038956215950003112434347855947146548102320147422885811799845696672230563689425638911722241740345207530121532658321815185386580771044879892239710303442493770380833453614550394519234237339549002288998707159394898339708620534107043348664902367487587345482347589246097899487340937399513071556768326338511374474930985047015814437668568806847563681109264946684063336860940395598155409883117810372439154209836249964719914440659059453131922558771071258921511885639725871758755136102535497622271974152680783213810027374495898099767515981080685002802093424924416184701389079405491019545413025003019993320883538725094725636260869908415634047547530731623038161807940972701038463783831103975993842779901657794190824765173615009836728413135137703712034439520504319146247556303798308959319786600537407622351196629007462081700218721549978771473197990929320812321449262006071019418035637948931603297345452328949025054179610229530997830604914571708930113072439659272406491831960880391585216963842324511782945902586755243590111447600263553509008352882603471973277695254380488096427660932679398138341974075260339300334036880087585604702281700046079625111193311069881336612558917750622310324120542140469713198631315054445700846228674239632038454965515432724101495955150862029893998978419910404941254275175336423089773992762871978276310630753299149436210062264490008816528106147140374916770045135217820230515925381558896825232856531095294482638377327941521755482949646329784523132842968512803932371957609293929636265428010425052120644525248630950688602107461670499042579996815073175490750674387570759354112900774125007728710270559638970991676856546672940558976786604474030540643608651971432380229090913069286116255520948721672314861876405253634578244051893094498348933936577877047634322033167054408989227798855889908928441174239278922582322534531089729219186674979310761221356609520257178186805735485816721630029561232700754797261809922085389252652649864368136347156511199118236371858559386990824385441036580630850683933446438360807941642808380194440959275322354771429737725608888294916077888526586073141535990039279601133179559421288988607785230712042068164666094762084659273968743008813887728380343595742203897099187535243401079372548735947711695391694717715872069192849568020120934238039190047475157039597424773437365542315935428497026753910940811231153934316040908099309957015885971372115188460150495427977457864112055480264794690580596447160302697202574039565492543346027151573206332612813720739805982771097931911064232970859365397485314941834609024115347742698147905880830131650193612291852464193910308029039320843945947725884626105015841620540300665949058219055123093831840030123705226663274422640567641860127949130938102941961273518699789362785533660437404496311554896919455780380082639081383364801218530486087642290408930910698221625240013980205936545781117592911677587900197138869210742470183995972116022546976216991917426396217628905853551997460741096190847044295900293258972222997962887013561912604561787843225084694230159438695446296989800888649397322142246686972983554394914669413558469580443096936674819089011758984362056047961197216660350689925727894556027149747177590048762153951827988981147503578605529563091901035312930496681027701128823271037398091667680100158048674304444158430341433500709301525643010793270665266862432437421221101703838375563206897003847481069583398433164016319308334859193185696405798033983466599951557438390970095156213883941756748859784828260807306397526917162813688331106291375547482539113844054688253204831153110362710853944911064240451478527734848702517925553497414032803479817962985411493773427106493499131520984706726170375473680636190149876598623870187396081567421407836061751459326259964067326314663436257709455691964951888888234900259956516889245969072943150449357663960509007705801108149717884524633033139148945184804789176688454654409144375672731179921878064975779522089135935310530408508787497468735453353039141972377293743650088909049086425708553821942375759148062098040992494116663622110158808985722599678600411553993873157398668128604772751475008148259423606773758927798432444589633884407655817583786714583040166565413538434365121161287704317861710894987278221658627749850625056259661747367592397325480427264824456200902613217402630816991636873095849919898279122991184665626893332023481065820264686040477629747527569841020327560258618935182554700651423776043761678665282906871612829030034928778987895567284591689393891768304655019009377004245462261556376314904548118628629165488194020916985796155381173756421317955182851645738904695882188322595111096433231475773142546530761960710086794046832667941592960647775208264217018256888125286586591976192593290224738902679588419490994853771515635854534121341895544639092222840955387202585629477657677984708375323841345919803072096199797351594522201865245257948959550255997807734947262253412473302805555146699704416523278744041032311452660656112604142211076722692331741323037206259899272549245316694780470743198448752050143388138265633543029590824462260820143791050257507843485427381098392296933563987926694717971806477800752681042463526201360314657994460906130962054844248075417347517440138072611010762733922561007406431985566303748082953650993849933853337322661624000970321349566850553553602525341019267137195174456562225023720970111142917312727783581081126650841570547112458782176611561186866272178082978793544666128873693917232014098620354309426610855975004527418762330685661164098811205219731480879059092851474523305705935741345403829017674536030905190633080607629454470943056232914606261054454040588913605844071665799562546884292241345078834658002409260259656823434070106761423201501104442317921426800967586463139448829465954965105411316652801911325387417769237193058601368441668841090592551095482696572467872783421771095367089181756734501374377752047492803002905096679322453684086233038840807961431939968439761953957164577796536297924708627040421192725958478785841078910987463083377098363868290824871904721073965165242317013289241387622419108103659537549708101457459306382167662030157714546883391420866414984152752791047682357183297253836741816624450937297826473996599699487380761796923574752328982315026151620400497029599680070466336114189238298866006974282686024230271875128983967069677684110537605790256049919457814330996160421060829224868844066146784554714420583861905813239058158899923411629821453016303734070079548664385384205293282818802046625085843624006134219555051963302202463259374057412583972879171512757569167242729599581286776095218221113582829117291418684428986944701452787121978984294337128859806359693270883518801031335489188911777234094197616858247420566747835973641312122370159292505920252166340258041840908486729249783480176219414608699953992153071450186506655194213708914157987811698275505488353112904261652878537150876475989604398256540447108594907380778082608894607806574808676767061155880507849433788545317485703017109196818910791317331395115923091893910618795919302568395303007110265604925644789423473435076949354789489407425157439089689539658544292620264856271966780761973430177053137941312371547911943884786721992885222678664655357757231487240567866416836012966962463546483602953372739055917457854091840779526783352351376497212128609608462698954858628994362302902923381316667524039504254871662617219573855998954801244616161436788700303059007513824748554670948478197077220702034339186362275072211216908591491400541033169615835555312924288452223103467153619920259950420718942438125967874230293172912839964992827559249771557397341754692525275053179086203174722488016467803575694352728814675590738675275719212542266854105522300888816943918475294012912010521300942470001229876462812169096743925451734196051905670372762135944363922422758040381008009151430616004709059817694421098517095770290692532107927355371369121586290956315591975842513249515401873537820954385177085629552002170277069458957983618034124099000400767838950567447038694099907535702247401946534686100221001300767150129703037863140115986786185127193479862490975880857307502719106339921323090577531977190459097684815047211960395300592046912631216116626485981542409366204415175420630261179637802598889284937952384494117513702686726375207335870465994479385193913976563048777182560673438743705602325419814831773211670363950271533960890577202462770103443793330508906208660526111449520931870138099226272867760122597504175029111574353940625274621354830393781124763718729596169361996752472867388517626848829011093382139047064975408676771894593246048124802384581828970744071000188521996410370277981754892956848572567909606173457128087766824954222297184152815481359538995300058146057906197522631255584512136841760103341896841487602201025400557540489980592903630792925380563878064849959487720082498043327810474706647571568955021876153673982820080482858659488665165286195554622523604439237194521886243263485343468535422187250330973609412661801632225540462768572232558666442005998749434489867346548264828842117498873167667710716663020467585275897692190693676027035682066342667940356415736935957128089586884957674977298762663298005051177071809296958536305410983665464209803831566790643641042299778922816191674231242957811121548382768008873165312461125926178143014943999898616072005739218096745391999517950413214515040852855267846127708227311258469138822880078350001456053326582431639099113516500872183605252674944565904101521002121467905321532221709094162777994680464249286690688244979018234705370143623079462139826135370866399511481621765716840860008054637217993636290275970103438613754551591939822581449338481215492069672786735991816195744309335312062995990512059734648497837091191041600924302921001153179078871577910995825477524754358356673654261854360637589173801709256258330935124168067037806940504742294654851489692392310438143986539174394666853487512147347340663910991220190205146995161381927106110124939878548511889707584313851314162645997250495861370257266870488931568850577730702797824628048315244143914239725196022481045415927320225174155805846079015630945973796447805461388119528847033976571548386841986453376254221898717256602942031032328147513313349411374212317812171592135151882267747452041184553265791774294128855758779813613637795359212156414764658734654220487391361424198329641476341053013702034740343471093858636181026849511740436633528468412935727990634924818936078148906285736201185787595810593563306849543439572140319564203553515935798014224219231519017329768908310396913330278613965692891209309642139733079955449192198424375908102615698677263156337885210908590742232104247223136171334002806389047421353599293950603529148506717338196266228873762822494345032853874583669980970861934169443932190449964121618156457424342384241298526040048574229036043163930962497443593059315297215359834857853628620900537564665537644235186917658739604704447818180423076152226310372241832804558964248953142168741611435711106088917597093652343994152443187064490894364225326134282800182365201306805036571391409565983298464663715695140341389643880021162379078776127733970352765689105624719562695337394248134023458624181829320127195737432559734539240845701226496718569966454832106021329955629154595604666048853711304710290693034880624202801238354464201514353693131313800802310346870292839695641096390523749579044819095269260703395552590171163285444110953657597381555834362888395431831480465285898491688939898503455901763623553841046787131109432308491999176917979294656078002762880250222454107456902625966888253507133340874104371539420857991561237487108077084778501149351379790869912329573960206505370076018654974835110553427482521773139710076533423909325794390721145011170885224457687650457329838009531488812255512993454585795518451126820965264064018941849015035958853335278394987251232611933062108602555115194256679656004323473888921044477751736231845511159679581329260321047898654027719909002379074826089438171192366805472975698161296542417487962826546259004188833896859015494848891524611905117830401038073704810763388252964956985651196101071444508163623979920258120534601393899146755813283579822468003906721547398287356646660792455426658276021423082879999277189612818599509241805514538895014275487557123049036324814353916839367280339796360116576571294430338395667363135732368631977942704295256076117882927088320918975696137270163430576620365704471665572794700469106024915665484855679082319865653967837412386932712264947431076839099506195502465118350620979228083060363799728128046335798764839124562350771964744834638724575923120645789418561322588111726362539728346459470585936048716163499707192477992465564090772027129849046014749836201026815245805113842165968376869959614432673014726580946653581230953774582099853259907489890563857081238178461490900899994953417860168786786600371549035436991301274427887046726156909813999964430444087594773793461412940197332720383024545334034811762603438640508046825294351564734102278385881810906727858536540404955436591796111422864109961420973846986607865675499811315880003803112034964451897313762695882231311309975284564656946562889475776125318938151402633900389657223855127366448995170044131555720534577519804201145292464486408836174141812550640318828638400753258497129325568943884389165500678660319092884057711850908673235283123221879648025949570569516790426626933207367144044841563953621515785712392398403339381537240389694654375225519379400350511397889141049749245778952318839777344004171744327445799983065464234048498684610941813162059178312589006795029688665044762316457713835381984498204407278065593733906066418052683654482979041379460073442208331008416617190171467779718886193500443952015405030843960449867667000814368717628410679967468662846543756516124907951376289685689482174323098147095630384711041552938638343279817986560118809502230216191776520625817350504029879726874172653131184582536359845838503506408061944655968078870046418572160041160091184941758442013357506826579349505366112522311499532393919222637644903816347039148449577218082655192138206176857287877735293364522735749974341168545236112983980541744615694019260081682881920393172319045222096602884242550565079430255006782512119838905604847389533267722249859138253735089978502552866133205641819206394630123032832195159256248783066193963882336231992132117400650145600728031088730612411291983576768911829190137867792791431413808923645377980136222985278212578353611869968880925524500964154145653299257517955435115283420693847780927420761483314385308605502275876738517454519817082869718467445392353873709729571976511057407142161865773469270992283127542771279929873022425648740903773934892963928152610117266364152698687347402785746126399336290077175247930116520833937880601150820721132172907130957883212402672729732235066848399459023723584050316420220262261423288059138228539146876202400789817720145074276175712785673767924791096115848108074797875700233858218762046211987144866305375491603885615646407311233701981953372478683868790323715470537784266185421661230864669094054721781404960202517120480359451890839273439311683693568582720906867600637753634993299233290295300656573458351706819091097486281550827406232038321848753495708425897962767131021201429804903384714812118291229379331064912060759274052634377464064439738516077331243353639690756281156665961593931349307445011079329987537436974443747628431086431252808536314956474789461668943975447455006369513989013903087040182904041476287990868190661816262256148765628665597882430075694660229763237044734851527713250750039467717238021732719652250674247382475660517382269845289041617656376149057577675134843781426550154752731041573760380085520674816895274935938088212765201945187471979493238399507089756704513842393517213020605519368084438943944657245545758841087327893654513294989367319376140594943867120159226000727074841727067188192590084173130924366086990606178678909241912250151686263950605720120002485284892125902223949088489297057382972223128643077287892180253353730799489256001000944830753028661338083052559716213050512567910911885011017948845530906098205149800761081848667381159771411829750445771732309792984003535009955565986424342075263599358511182197098320167653676833199202762904678114609117824132688917552938609389225326873827774516849767077642036675082658887236339832292472943754178687556988260705360472981872782803790655366603070373358079063441363440153586111123047071412585401621032189714072963520269727327753024604235782707483342130384271182155992935745237403719549907152020871880312177345655447273973399006581565693880919612591389687933729621557478664765239520077365956487231766469348906741395471780768606308933105765107303112134257587981206078044069600719434378562579185243293295117621494652841838653548759724802018306339106372990076872474574781232553913614498203839808193533586131488763709393562826896605003297477021601463302318327867683569004654265076324604357469423446193813216959762972675291863725529377197900755631082081680736849337568491073150232930435434026604827286593407597989746290019295908605054907849952170416899287415701788065353026508101066456723546053683186191722118692477105977326413313883879363011268218685751573836759445706810277531540073345610803877866467280815187790181273411363275841544771182946062599439839230915348780209513546382519054743604514646131165233420010855765998042968134667912775918946545265540133812359584423051733324887861569977054524289896957116738145994649277463658536100103356480775371454342364067696722947165310715851945623563070900506433172532648977947169817574976522022858360344930667189563013061072462320102033323929631900652908321128594986059103341868582158966414123057315395424789759505099998741258496677178107985710466427224792630726028033109076109558411794431965617109927848536463420022980395963959883104524441109547346249200605248212860406089589989537718938776028502680089401757409795395716567787382412986670044502411969301165726968861159132034804965645458644301178192729464276886243157655656539284894486408980593571301010599117411057942535269042120743236970136209861158643350412836247667122920749616305153783741948530632851858884113590968590456859601535527594400326839760594001808202696755239975986362124772902142079156821044040565622204029983714537237258767218041405435216811987756098535142990703760327499888628866089117601208794699901537720870529270043791668258692055385593431119847610325779939073696893226421264897560311169451288123613330748970271585772541577625329308125263590576951499255268454414800566619992953384300753109420725431272935931495878764718410259625175872862558559935302572459210586575735043208455697657827412298945312383720306410263319005497181779393116340244676889943191482633849577772417860115442708162635826451357164783995836514110215716128883097239601710472421624927386214534529379156127097226506136132098575667781500327840806629106142684347746005545834575228095605979243354188095691928044794698755276113380287094337312617304400489967913150106721386260691451009459014689672243070161104339342969187442862704725644207980593050650298618059451464395008388239221110913094809545315979176459380834486706211843473117592304676530635812712862946048858806159413101354804812607390334621735598242356882294238675859152595800815892710442051594862073075520375938397555057503994064219822346078727184696598981285519698678424243886076447334439196651778457985027450773944902465078673687651048596171987474731119226185077352887043715033806438499883584271945240797347884484914532548259001868121509406135788066298553213381953279388451826862115683197958128623819547043578710463721335539169557757696401058860612251985396326022013143016238535662666626801788846264257685532061927947948959048533135125145507768901590812999585449692767282629559655554158735096302736195387097084519191618114255756351806034242440357791826022551537022739805126165046328848834351334663478376450259948950851928672155906375526794046803707913380266582506968768821794178171606405260836738509038825999934303103026669834153771531216543163241374316963588076403466399463917586785171810857596812827034530354351281388095783085749705034422268308131014761390854382608189684974358036548865398164240503268369132732438669474047711426163524492282858063670896040145458084805894258682702331205152389060706417892261882681560311549920242787455592066104937351311915392987229495336979049948760171791454977782269071743986336040015722835031139115036386883604429204939960100436229662090222384404895862002922033261932255383203869046569965409023265577259826790199538528168102074778064602989483480563251204343881674744318959233761961218140690546492333119179934333353377174308719544754228639382343287539821685759602022224553937059514701411055896399174168827798520764076750701786412126147662587742881057168691191589197550370120644238444263785221339023710407349053757303213510718862943438169547079429979140885523683314943784547549866870402852370128169167598876747213734095610018985954209130418195993239606697591644864696796120971096199892944498511584822562401622497909502904924424569202603785234971616658343759056190891968398425233493601529363515842702607268896692328960064342974605858591928280907109180977515799744898659697361402272823080634486468956252546424417567284697859624230869912248098646234379910457844951328003743424095141061088941729626205414447801158793029235589722485828352247725754315430664135789298681152345099663722207412205452817188364818208281580578708483266609675892876115959229608558260910176349976895794456117158280253688788302738342534973615717572434663014527117865075572009671049916551892149187045517436100173182061230618853841196351507531827401042363386782685544144705741050054719814127990753705431167544381848407784868846489856019540393921626477301712148301215958662102908635571683702977355074890190533790730237504494655285791846063544360326210594826664750604532064482074437269248986984363571656827295253755313178945274933539107197804749099344389136641289751210169091101781040363316841643428528852997369861013478255748272997829034323552236005743294106370969463872823584359599873179673720353661400933460400902424565921175292329096575137066663321254824129915852257315556218513904677610587551500055516065090181440632896974408960777639591574615634220078644358820864611914455350208859312144515797239790558620621085367192328000264325567395395637628030460690371027273106344930437076121529530209037529442613435319965431233108157451930456250073339641265642031243227063793574135574108547973726667907543176469486539589931836427614149703758796359665346478659194159134276309770801306579004115292717511143812916257773715800600996339793003399800005996970452740982121377009180707716293708953898875540763989000403686374180091107691317673100527912137038963458052914115979487989793529735803048387794068450212030106090284891386822195573598529395373264325287959783857276981468339621799750383132391683036640786352218325614803062209188418401928344897221613121434886022550630437148302386425875245151801456128585550946477224849091922402905301974853536031753299859089419818163561639328384506874628015511317231090035847343871413594247209619859430504028507218425655092983576207049729136785291498860809937542019092536744296348720057465465096936262849883438270849311982893204763371799454223956847248596069330109157497986657022523707071911511178306209786597028598932310644110964793146239570671704534371863944532910391660324716957672852707557438407182687489571808569269581095226639684820873002112131884152838253274767068745504302785193826741334076790818384567165616667006720480491903568428007951126362481984968698647956143699448887704883984100078530639890200154422464552743605985745801894706345265571711588177767277216812353923290894881805828129986815633950649862500120901159319099471115525502431022801403700709441082830188527357066245838087661662954898349707135431496142398756924229296286445862791565105519678253624454329416374795958898827888637711177937804168454647058762154234940520160741634292414824331096127986306602073473654800209692095243324700829988743931789476838304701009782968493660700621043307280095817210701174213569166716057181159005061694704429237708118715118772158908811504117518474875185854632119082996237665657298623930408300658325687476428317267351248439256842160937196521744905926474110083371040742650178397177144347539168660612147945360676405155735466229209054395816996437783334116960726987370560221205131072602243971443892051096055264825943326479346817797050665575400679493837501355631829089190521740145488877186995564753886956257129089399277899385609028302959090163106689117398101454310678595095273395852509236896926410043687106554777154280818404221279805581983900495685161015899550206806526745439694497042270683975631645326148071572300951250888204169394388766441266914780073410451039291029494054185926726542746909866879879249352376577274671592503908921141186407023456464158586137866818245614847998955749173536334398891938140884960429731327399470844121331085260144604422254892368755505774520542477454163965975357546816409336603095817819443941366906769299104069445747452684806891187846442008807964982676097541046049233052824353743535481829699275039037340228645927516405495252342404464472197097876917323046077862488758355511080206342780977702083122504124935349260842491660263805799740925195908862274876343347318686881358744527900354614717228925462089350931275315845813864446892014449270698517133505321288606173851580989808406729154476078309656913270694827473621730000262856747850283040487960259644286930468592568240143634402649706008100359263483264737733839169257360833197301845772791351629674418056637497609498089202579468059585785436848146223475302961921885703499858523227817576987756623936390547044969680497635756470460103321262115254575824447131176961635211288021089112791496082484698088827105606833614626344171720511121809660921861145047688461290447033080985897126872544029951882905221781472844654920979538328447775477915432974814253550271715729096412923555013203157526244111059839268597749384018911618247231817881217974974162446281180544638606394343128289648299720089630168549395748376268772097549176651306693489806911869082091287998561143349372022850737674714857046018754334341969660757395950330090636396243686705311230479013036087491893724990484276007943392487222007186968979645407120360365396579902537070783389200602579062696434974192731516494560085372528824283112160445427156058337274392113133492057993390371741478512994307567752080621267607528424163870488313384292535096018838782519355439997789319193423597818863709330038470029872979748305014171329072602004891878569201580012728955027550937395369938294165539261195142907287124863887955641526582261677156736349696967964237103463358576688880919678347833090536928972719540193023935198299773832047458072895941651401361794686417374979506002083510905338372776922230378943501975524002088095614626537918521056926663978787739221951001422926091414369982710919882442429961241386165402513048731369833126418906597487897315482924069860741347416477894907182788127661021316878016416872512549891077620297848837867914866189417390056547248993441567207330794919223601352511326022349025323536136777703162384950847272321980616096000377979156656353006452562909494119231464439856924155305137957989604876954358237939668168965319400228561025104972021173040619940759234725698197941660185050556385239039468191040118423582538194554566631507535908765469356739780822541781957477056570980065504793654061642566065947011550888490467252521059390088901442445686634172092909377531707816290502228604818417444164967395421319466232157971412315721703599595577409884230050231300643343602545833481614078173641588744554107590474249260675644774720788954780627377553771918906158687879063429179657626870958319105943145696768059091996630150712165489848860271117490764368469853076351124706232799287516460247590452715173472029139044950555233949867943781980199627981072753072578713749257421474089659909404464653826238680113290145783999823944156007025790013298949774541160182106821613210392250049327192477006093876570858541528547534319748026704092603437608875249805435626449041266021827270746952026878372410791648595699290757064462275013175957652035838579011426590550025368249411735552975937101182838457993953295983450835490645582450336089684843342142659455812798711054899925711435653458838278886699284373885091772533613086448787503290992711638039922547644192441841384622270694412374757720885701252127204390596375037884485979515697577636470871148992751757245197166171638287282365786628790141112952291547936878449896411744585626002291406163020885908097478829408927647676669166562856040150178015440163802691502738088714847864781281923412942921017939996866595793306427742607909342572490721166006678401502570811536792841576139549507876734576735411233112797745713744705154079239238514075267207517734868725735787346843881034046624616916592047160931560337103845425568688362852251384918966659431383138985140450665073967237289392565111025838612189997758863479031700749706296803122090712808450059080057374295402723961512851261564489727074656494543764814339545309392933093590906117165725448861316346002546095044175468448733214274259864492208251309659987910131866030305765351431026292485708465697114363059135259212308139566397947631854078041749365404430415341153157610392783441786490530890238938719591214817589422499312939665584129940743960972228266614939271389633055977842831639789911662077961290326350645035808792301575785563523486588394317450509362917881601710854435687545715835634573580371678778790206974641709066683147430780031749378130182817381033096243642530716203737138623389866522197165407849668765844793039103631655090027900662208404768369050843739458612747148319299410567073330938762691941840608103968648775726399121791159748743328356572235586121267937850450584942491681108838220780592720345616046893377019113314292781008315699147774349649778278323819022964796099381364136801161227649221756178104020573290833847808864195208230889152617809893349178452328769710975000364782716456131735417549179428496316036153471995629245074797256316792159431112305576375442296954761121923735369339690627556552462271378020132412335916031298042039526474709023724549190332827218011754105043264090382086521334648736530697615012272465317826441361685690161642098444385613678617941875338105501048369597040450489072222316187374996902125017126567324724355087359413365103214553788743039642299552947765941169255786398401222120304413102212790284128641467076601093120158971142842482070760118013584897398783917102926387891062469779100427909381826049983416851860175570560836592967579252447135216841133135685577477923367296784060350887994283456028993831774208353919449488910598218673048546044313163917702892737453678705118709237588428015263676141405563227997476424433015200723587740122542801575340548811473012885280689059681771342223628765814258618244893711321805364144163120734129990396019414361424746007175779492087864482948346825706988880523278571716469829665452589700110181380474991112672286662642876334257976803655841135521329339050478472019958137987051461565647303257861316154359857967779969284555611337645751013750493227784186653479838824593067415788811555263927783243529693083076121429261095204926175037657529616614659014999741843053752938553058155671277380863520225937543655405548099991163611987812902842113010219252536754178723816384872759853865399312972040763820177507422809157389482492604782721855871363592346472778153643566022289516208998504201978592123858439443231706699155065607195372614490780781898047042939661775965344683521474446723116610671227164048415851675589294744860976188074977020892271782354603235344240827629333757597146145820710088805860229117279517831798001048946269807758204958414287793666981151604665291023102738392699694326976256543105995317575928100920160171076398703228945019383493536906120014778372049240644714997419565478206511501394131626707606251440117009145536433861082028328634779180580067327754953050637992047394521756980365537350616930409993311942096462462150686638669309285300513524469850556616573075834981139674010109629301100312408375778783314222774677821424391318411545548962044309338868513710177355480287245898607445417291762879484253139681787707435645755760200958177402509871438043421907942468764448446355192022771932806624776301744802775338067890421703287088417888788999082482195267304176062524274172147479453622002024465425658433740029909909898370759762093479729205721370367087553058625773629198520910681601871840083487519985223092575910379820657738375702566375773062106817072323959398164789201859494985250134667102333773665160421912225572632335530441384453557284043499123897041049243166398295182052868752017434907579757570677906871635916267902808752454587713539044853123664434219369844689011606815791289592927630074683794466586582175192138763967256694723091535461801769159621072097431830072796954385568278573319676514545578121638424528919616947335974430459813655606384358304397753260248231422062375158339416747945744273255325680762297490699311573888980398943687521684596413723953181050013156592998431616038947633288917287309234984383597412501706635398117536555545230118031058293951846413895790152777085232398218405578543636638623768391498009357583185551373467272742906903650995121328706568348416847589181772747470110770988468039749837839606014841366513754334937511349656197536570992813658361582293734893709100640043513431890814359800387379735779341603048628264688440356227381214542465972867744721654966560391766110881654707972441573296212325775388796262125525229677591649627364607159744952289119351951646674822696127857625332827943791834194058196775091154262627307044391502813530469899767191869047244200509273508219060941453425183297060359450455990816407095882247810473277378575226056513575580246530646165664255233086452076400750755920633159796550168983883654310432330921801418597278242218009536048720121984413930102444487987403922932367541610653270649065833533912871434038415421868066648947994138910972810189051430675133059262007884129858399437805430085889433607009623180763831145004684680697677545867718815522979176757248620615549212543302442976548316333450540685746382531118875129412147868976276481546033594196587249478103740423459896839039575550973071812772121452050902443922631950426984880098260525322527345516658402191658061763320771323323043030305150390191456273707994493470443797082596473969269277645450139947232341889027787908396233569171029739763445059175091239852434450814422004154406253222415355818839518738350205129424471572663358816241547087612909470400155014599378041898897712325993869861187904030291462034081479496701196636666288015225767587927260629782860267136008660736497395373377496417004793919785249699991848352088560509570014514599198062055839454962193765985234025504631136182421081009866881105988278662161950273798460100254733988194765361110729282190886545376706250930607872202455508765923875818867482357858745175268725472617633732702650544736490983820982655730317509695335281538069208893784254347187695596608194884480018921481581197859183226304425929204793443366253767727180683344278805176543514817001514493560127459533252283332314797902714568889589892025485286906765936633228075595292957944138964291025145254256363263634261129528393207630775573691840318387008542557093337483553994965955089892959807333878276517646211032814573744567453686026407788285123267273156699733085021407235251297513799895322444197967420893684887127253000643840942205962599115171017237910316088299744307767988470937298250615737945145706559423309390746430258773395604602435403503982724620305650737863941285129899710401873337369685487179906841923334696557732495591951737736891684131235592578736750242830839446170910463316279322636300041420955271688348840186893083778558902735604999352179557870295700322769080718390740347509543212945992857432563759042295595218320741222765738814520243670813047074191601086738949569919287166946426922620502271318901678873317576811874615748712018377184522834177212782762390009882395564678689888796631278589299970557229871610809791648735744576108394767035810143907635527558577608053856312999944679297648863518750929986547721808627362982911964430943985180000437785578254861366096123330451471959035004938777532306275933133000789889053412837154922372989562530806029220274640019027644247758817576577149438304303949644907949726265642904704562442080823090992585797714486050340607169121697846199097872446385209717738861930329775272259610121911266226520240981585322733195196393491098496530968404619476276307642240451375509093948015842378535259716895027886170858122886265516817534048628551565938764450152206963138907173501897197696258786928455110376590674044554876162984903217801202285443636551343296383161296943316778942944204999052453552112004462997778285830917607513262804417720649740686353590690635576791413923355281202881294764354318663098776897363272012398116102017540567662811806488808272955955048999200374313347707165018726899139088781191870425457192390977858235265454114131028122343163024933526075382113425906273308801811395823966426527136353159909934855594791684043351040509404763676583469702968210685448066078391572483608688370985217337538240290669139937264748543888590720382916966452891864750044070008753792717410593991639882357732297889363981545865250830573258282768580809427983958131567754244418393846813571413257118567265066648801655176890145784109795819039144324930127449992294312084672758990814366821110214116316886906359386603774790536045513831853820946099759011373571949365538251576780372110658304202890317944602138208228126693879336504510329399206914169719703045628780831658846259286180987571386583016074419971529771450966090659882951654617495854884119744034315420804694744981493688774733784322400762872519398999097710302127619460126427340930271891691243690242423430991493113063705295670330518011545135678129585054707631856111999110126274824222141927839539220412815833724362747265220393029024979660353984392672101006827631834128993643657230603337432383829672714987148363663768819645659488128284462069353061737980489436898390773577056428312487010621506028953546127794227698175113094861118873374294607499987012373734266779675108352977470781670490172486502265229990496076417047046856691559744266837006918850857584183399460994899228844465835530436760186230905521370051131519447036778370690052973127967910221798576164314716450245285886995602131904509816767768692662559845128270547325147272027679366943637166085203722651784377059352444733524959660989149193453249893021658213636980093314605795961863824417268812811865118093057035987825892728268619987180108458291370152223698445207059148572908092098398014822876985745292791186121076354331264637505870116015776967475767097258836602665656794806525688277002973862993447262002143327505806703054264069688951340695121896846548038586833419807923846761033413106314879292239337892099121960086001418568972796800888193540259881496413225624019847443255916349229481317645942579540214438168362100426342469038706203572224520314127254306369173544134384846550377599522059019477720139020935676050709893583320691759354357601565327920320005762309306725198599635637610231902809171971198950686781617874743693656732981330699015557016159339156350288146037170350319739057461607811096703138407935312482518733213775941581297638555863565223013480086051220298611682430048658679704280698697189478245211200923940714256238069829055762900122777519496548983457524062154081022115165030149229351342570029661585602428153133262305993850498201401410653580341303712810447373601091903269180260567781851784412106135988297876552086298128169087329213051241814860995179130733480158271551497230445037610641069487788485242864099571966473897225906313838261247639209061843919982772130061580406844113279512000404560541171390755340069488114660923898118030768066045030741418368571749032672345094603677901999083292797259152721300411328884741838297000172360583654076258678861520328184166994872624836550967047224127182092130912647226951292151679584073829409392675921442030905361609303016308630055694288135384248615752792482366255417179073121378309250067525426058502232326544417631246298479875580586264769281919423565284593184744457185865344062565972614543995795003946521344291702581525194516121554346968464195690323192618496587191548890681149823996560897618158517678933479848749559776269013234544708622790716621502001353826406057187132695165180493278170800505478173823599209419936857655126598721386400940448926032760492261978794273894876300066633907504106387975562603626606668195203446720585511695680711211368627906985605003701070809915076070149389621235911541617031064091041182240633773201994507232171504325180646669611008828419691955081300293146965222265902885541398155325401583429231096287623570723379030161138862827648014642095065141832462098994025360005888078908280461112601166578069654382633097662301326541359805844594389015052901833317795777143568869434411131855104121452094998800753828931500051992949225854265675981270175289170977616880654275539075423177419911122039118371189382950801127839178017473248490098157294180760679907020677923458730469571219719889220888016961189739725376597412724358534466999219331619303898081077367682484012071879281861256771827406155449432439022935591933304483083822949025235597862379549089756251186123164077322166226671181550651304923519416469788417540677219996976864113414372042071747881425391208231507225778498208582472860875461204993465552760389394571162984063239654679491827786977987939904182937169050602664585484151105377843540842716828402166668188334680071322350210146120292039418065537826196927316265719074142360159245102779636327258423798224275949307504286570852645288286038097884838719405482464330900141496410295589889766011328964431812561174356893754518518860736944560725044745497124470514042799599948252955402732399022382472976402441263488908210958072471157651343220695020405330300531652523343367400196487673054712016294432820709545713726951398843076116742841096320609659720026996934067587941679448217838461836330072470184793379912701995270280931010467258367596628686938537749368140603600579145197481911913571562980459980215667986806069028976989436965504746519332596096857455661355158813778981025517687040141360795172922433650338681002249261034550195245929349265459070284279612595396518723835750291964678651735658674506530843192089781206466697572441661664490210220596809990625203468403406419959416970938376480000278175955380030145305963590146488117350915106098122885446638119250816850637642268332846958551327675576338429735901362999227515845614020409715975136457668087628223406305472639941123736484051121334005452426235620418910828687728282101929441973370671168072927480207604987930989239482010889156560407460298067988050968313654390568353396947244144475608518398624511002015465591373849338555740382458713497413226628499047900670123459424188852340995198108380851121832152999651586796393052619286902036771571598656895117481700183335554195342425480648716319211476400388538348521065628465862976608456600328335301910804124447338721277511686944866579633131935684137306465119854970445580532092813758190826580258339232902076079919708188912988811247784978353162391117968160737726310845902115829981031629098680450699911962833068933596812566212420582319558490540496889104714562235881428570841513814149158503008953884970304239514543407016599783776516506498445910980048737114881649676838534574048736627192291236377136691420087732727604278435249486483062957219830185067869411386044658411982358080754422601204178706429289879796830305839222521825033608786415760809310530013099488243874900145680944090248731807899930745544054196420496174998543291123970479912599891582619181944884094153097958402893704687755567268027659712069263151905644277770947538857175574184140535667022321032123480142390556034978818961420417699889490690894900969349910151501255466182248250586359092491057497133406086957386946275025871795528659449455413154195137019118933520166293446223869049463000973528769843582655915432445405748913700479095388050511809138605642520932818926598993391190898556961244672632110219664567842040065334129026138714025925142512422207628566234573601538600891799733644645069804379779475894226857745666333874743810865658773070422459519174494524145335923203706833985249007850098049938945735323216702320146685439802990514180697127956768813212095419697008548025253876803879046803385411986742616893417980808104431533776058749237347825325824063206361680990768125692860052472060227514912030479790341096963854408283788606160699012714011852452816247776461877235007498220873967144800200523521522807308405802597405568241298777642637572933978517033924996277348074845492852746295806161171789926792918026749131049955310080218065295039798315808402397890436394027005172779474759529842532079266176008230499084918302531864824021826721657496289212716995131324787766726330637757455423324361045260377943709915233665249506841980919963371475362780281998487757215016736806166612249739435712789046944114932844172270801053184395281788812871744295698165046998744790298500707301188986520134921512393138049557432898895931802933355159098172721831732670128459603881608546744095379629966166177748312384713218099838638678784352595887736128520337584925709113704445899295176618355348599265764010289319335925395829557024000292693648758361941505082015946058553514850112816496438537009805501683757529146711335516141260643794371631356247182349436849926546477984214478014740648183312727396246907117596646154012555160178479247425028003341238515714860744712598617916574547557262949147877517453256778172360360202484747649249931109474785837177944975878727381158039115290529751317210150606185665396934326162758804266951950748079434936394449850189083876317764717157781900009610433099092615292789808769470251893684170159435249537819256039547001461566906527092080382363981211477864002913348278407594863760035605597026734410830848450170307175852620585660484548607059475038971596815101389979184481108109985533826285880568193983940423467994213000474549617099466257763333014191987738169674354712923568760517830036024824104673934077338542985982553212974278309092555577349916097146976783423991018107404622625345594820189545491695032987599858119193815898041930416365035293018724601816805478854831011323311661164696844760632894289361103889643779575474055545169906660736001105258318581391800253730387038371973024758055351724873062891827194966660485233980220754603638538129481518684142640689773799422271702086395458102491682776347092305515629631035575678294305977184243476625720402171931888228367800258887071686734738212536841879873094922910154420459842082503339365649635645816285142812443842249879741478970000908909262900717220456784005130831440083602172795521998422357476897163573640067905511645948870594126504433053071317504160334603597697883324200231578910225518671795640123171567701636060152541889202789563377451485719545685653451666147620569886644254513358317599493357326871811829500860678898007655502955736548054867937054109613334726252935033331382129311668156834235412333931768089630651754831593518780246520041477641291620204318337597066836455645753910901423735910545525614939317310307669658164960377383136355142542527415399412506724495692648847708048265268797949892524253610081891129663387994429647872685821858433979752015995302023597386397892844934369224493821443043033638000909787953621620386931978597176260045486590040382901250366793516485133564070567582060410143369693497648043997859506962855963898190356007890691792003148986258620874247323880948654570594733614794802873495385559407423792414226823853870276764130444234772672557926460932022306744219611148158423531519488348368988280714461716616981383308854310222395946565048796519640776884128318697600899968393838875541279335445854225330410574107450500942992762500990590973005657331557023121416600290452033569256558192675068235859714464002905011754094849281552547112756106889966955780998401922713704719403048943163440771678207930973792303710137591924876680437431926644339474398590491749954229351617309606180070461204910699515732826231648284843937304347446891847923571859182188133559343516977745307759749857807813652568462079494292654696602257184625082683348525839318538746295901693784045237787527635559294210391398927282067410655749706398969921590436744990248128912502353011050353929683954568534607180107391504279233409600826481850942520611049742817201082221036082091514409079651129096402913022266669615726112362344641293137492413660497763447478917679371509939033335956221350560352279320532055098804219021922092773914021570170284567932411672605960779345493451240103432506574436691406912129717242694985263010544127204311142050540201946112977734121996070155090298106538893941430397267614971492584947034349527718072919346021753758781681537713413273380407989259075964042631600445748678531608930197167592747522203758824769583516212329712259252131511729795347312412508177494515007053439990391103617177285033217934027441654687112776082485202825670253312048063772401543430179947684232393893522874300132519673526582188079139084007894646418361537264813876116400818160737694896663570368851250634600173409906792186649784002397454111360163522984268566198967765761719444168962450876495907363641494983548861614059719099494892423103630652100536295840471270435978192717417513344746299202421637791484804062841488326307948747781829719035726041379747316417167989177651226275919436224155644949384137878163384404354840515899100350440218580770057816228527355502112379237217980660115373635360541962739164285517245969069586129043224535034228432375066403392832585181160791104179141895166994301054431602377775413429516270124645906576972420280826791330528029806947956772620694616409662166922027338117769721060776200661772853878095083878228532350605143784849921105371655503223645374302630946895648712024845904782298972668907282783713845215645781115737197205361541112882815064563061182755768552409715743339775556418293613073016895215394471458028679364304590120627306549513746640548451278254495637482459268735366861893022472580890821307736421528152119761095329910634747908438548069336787948034747641157006006086156760341470321289272996412621290154709859967434185071035322786335220908815340971282247253594920482032919566846054779518386649950039160871454979290216647814848180112519080116169327154661696305749990567598685078600862538885993032798038689733205501228748493535580489579507325081769047075897060085594490611884768615259243264570340439923826822075471404001233858838805295176990440192807418069680435291375387130401900202510895262594590872700662290479220743820298468273834466976403967874609325656308726640206449543845822464345528338213365991639615213866058385226420911651392457051178239004835489790027784586790621052729997557228463242720038203483573677677103375802829497484158423422313643586367215261313879253728663315290555658829054512723427381050513222611060411990130959364195087567054111376071879220928243259103066994889272403452325279592441636970778024575052865092609438936087276183228740765126949391447534137463070963725924328933470382327340902114769017346140571419110712339081552155979496864809930222272912626055764625649955801067721994425749768444525639951972092705196038158733731779597300109026519154497214940836261559809883497794992107059063899349584282104181884724699227579847151430301777049353123145960707520127972657803133737129294304939066233716319155933648168015902917116827315583560394704134177365264289045024422103867984277115770187417723162541087490171897690941699139105344933514157545047315092110726240718220008535346335020972664359345642384833018004135275959936899497861915477616886371508253399442945528937265060381643275131127766018267891808966342921911150256709310788811067754936210761477206492894869543634229863197691669917148892758622937628437616895744076018911719538283520115005858676565921960726405844833511168033386941309918452073404121028392417013564539720604843501799436438563855952695252694819573355674235620971224083643797327900362011604283710229083873120583159636370665576201447758326096859237812422525613481869387048863146799799261462685218037673355336373739674987190110745322065265839854081747388069040428564034145500291434633307890665175318882147990318349333502452712534665128270547520448325450249566618110915277997074125376764056011862246855018998925403424448594204708933823709275247726749330878891943579578936406256351269053238563845009241370281440689184452125194096415189913497877448864297764320592858177276561968704500784444043631526437842999699655499099039611056667150415959418745361352494216360747659805880966387332794821025405576890734807450828617463097555328795051578536828565442183964692054961385220531745397015460483817835493743644110101211531308163336204782472955019923567121551184366625215577275133671288888019076370290649455377707775410645664244751074135857153518534016309098971848768676491377140965608445141825011297636819070508496713392995154888089290001475186186832517584687692397513534515661650296058200615333076755880890488456027271933164816190206155435524037129531325421668988635955619590342808497995557551197733718940766652317359641115508230589974367780156439195301480354874031596573420368165006287974306644082685552003198957193685407257457143117310875519242629991082569981665257966218465392417855694526795811496520614000285162540627547529643702819639380790071878178809334830537367343285350653147299358159033084067284577276901957327628945360578192783192686518497775162490550906699824233951257583251730150760022706081851066411555232730950818130371286641419920904442474710586217203068017134989495036371627393084207437149126587127278330717914033438132306996868551231200840972306057364335793042828139306695365089308563491343347439815020086332762707893722226274858988341591465945463003168141000328050742740783276754171295240858205996927253222200944166009019979372715847406698876487211483313896799704890017293165114545904918237816601435553628384752257333122523222581793163804254436115138042075921756301822340957502836597639813762211731768873079215055410460103790024083720549227580266897459724034723701530487960652249151393857057686086903182572795460710346451214150485973766054644167264460017512458859283473073216835127323114915413279486046520668039240658808801101477846549372832182201071359042699252180586076151619508808368832288812712179441710283147107420243273171955799491049213890882927733563464223185028961502513538393072510399871158614165197300509468668735024886144485951042868939238509146848655905933435304140413655276286029310984607932862336993598599909717287109475913176958839745229178703825229482096061101384525518832845520146185174621789835376340799610537459172163017007066218527595249154024526640162419457733939701572759458627312190624458858975403709714061479193801366854251721436150663427748734778836522722868196874552235504016464337632840838105134116227304674537009756837870956175689848013296030080775324439916765346435664896858676653460963176643033875653886410962636819396196641518657056944735034263357358257369645037537961676067974525597188105472135378780440419500332704948431283035028262154949165036426686009266082934265232056927140390667068639489125213098826867078488226140993944813074632393840257060843344075177484509334718593220035738689204130643057685804371249749563291684371917258371777549349890725828041593485018902253712375928596838227393285885517599478595710449056080456174351020377821019742183095182146961578227902220830132842575756834039507083125206417357825415114244465381861623171800925610270201429538902988749775492531483241951375938869520004180123993529616368027311018584327454515017676179148194709519573590238704860822508185444335922061589343396514749984160208653686799207866071313897053117394744076924600647036735728165412086294890620935959821523800102126875836207164715220923285238884864757022067368320886924160066243258121491353939001109028841287727685777793576696485203337545270279010027246495575303824141399326054355379496922903049137995755167520426466988416028187545546365389314349338855148723746515884494786357012332620071616145152786116335205889444346799163221598546652109778053831951670309473999625749620982813663227286440198523048472884055790696730810288410552794769205864795012481914592649397207085393640093427345535184398156546126139987224873560080173060103756710745495627886043196318320586446530913178495640082978954091859075961635213718156439841952443899073390665555334082901545723529397002129261187064668250008418706101093793377157030002383515407675397234914739209671837896830389093600340754809342063889536446165729390512560602193312371673226728059611782839088223665107685428207683426214928955391935750062422497552837042399134562562627802865631035599904116351562085919253347120605451370856288369497243694064344675230849834783810630806887103122250036044899015605672823686748305961493170641263705112880565101141783460241756415633410291115775506179699324217599562384584498303536326882450108042329024286339952872856372448342828962780889131523466790177990471131489576787694285552989402275367942562713382619915773549404855877064401657351571561864541133129930362712180495421054504534071057950647681128695593415269299246253215844590533232572934084641059129096813893377181423833237532165130594387312044433287619634053090375311180780669042441408960887033431572966651618970262546787940317453990909834821039625880694613695737947404170763664327564045310963475177002182476498506188087013640025770223392662725803608553633678841092738397803272500829361662333529246041723540186433240406023413744522076111781058679865719862968495147139043392210465517401809530545132520273002800414823633870726597512289315789851279156690183406038514533779204709442797376842205520613113300739378090642725532026524685129359647896316348746151533965090726556080568747813667118649032744302503081390601104288728136059691271388175067905680190671239590691260387322540666662994446582196587568832481010894188862911995244229561219933530483737487051080539774388610095435063045427755440521725884868285501024932802818729296443628089710274686675158205420094754476107483407525563972661303766723098919172052803908870058302101202536273848517818448524063261648922995659114258734439587229438712852370577098773952493030804966538031311228871589021158747251740926217379932571938803720762449469343175122547886849861897875363283300545926626810743968591218866977439068965411173221197802575856332952641164007510478611335543865298423062844565372509365124909093676610337900686608701451084827279224742337703094461063133403866595923906436510880941148226398405194103007836443890120549886953127314106271983823636660949067710946237311801051652412194163567261530445305813119174110717641736418748987067772725675785292059301629313477398260992422889704548917175417623746080086033355726059894869803324736043054144059936015561515755176391217883328689772931185352385308680946823825291376142086548106216289079049223065351747312221787494364763630817761135828260174902052814759874090245620628393633371205996993973488867609676812493522354076164489690460272456627652306565186674360539076779304309409764571256648329584014120851679757641305255898725932507250918196343383803206813112010050124114923628024483240617738405747825758569866428151892279595572179010441386267085418487614700511446265290875748339101658030826687952186653781141716174762223446407124492892082382427086194221902944855093111144832501808465144347777240738039040088640521625616681102371752977977733555995831237805026744514426080010537190214609261198736813088105300187529520425966115954604627209999994074650837040835731366863406668124981675616249398328583594564789814950422961209500068678944308063429827471329364216310534252447969765916364975371656131272807621376810494208174035480661748590134006634039134604185594305385596470307327715989185457553902615365453328666841645976802588366573798438566481699853261412326738803874693718973145791766065823480383341785266295683833792383241632212332980559275944747089128818307712025928116739148199782458332612205573849992248210998911408417859969419719591728698644685336095650118751667809674147759888409815530178593223652218791760910806673853599387833666434864811488684211850536920422196418401906925229262011878875019311648593737187738168121001097930015002544421748180791318462606359994076602365921603100122534839359764256193432332564369324861539217488507580853544570507453636231284775306702308752566727805060441629191709295629853656066534418990279104058853946576150247752889375483602981030485255212908312912684189900785309117422378577486444519684097083418192376461197394715773701102555997424228283175708913837154510590770696094179112223161845809023427461416065523190664594707056710819460666358167024509990774608469350979517130508512993120725090161839889019707343502860216427936828925550979472088982683062645606618074960607290931365325158559609482914797728685401048460044144674567252204421084368685591065624446970394927001297529984517353072642719121624566461332674734818890807374889779676569182737688039263627957839513598407450503609654019641490420519176285975052595922310406890759409239984306644754317221740586705106654935113231195782290850275874209222891104790676973051420455153388578022126854852803590600327489993262844177463099344301303433505379189548251683568809476825419942699668618848201069047576743357409614196243597063025963187576915041839772357334633818637843837986638664927367776880299442282929879163954046062973588883049527385256605035056579133740423049746917237175685405041087761400051730097032198379047854619802507815456901759312348346290708801156776413272705439261806865540077687545442067607972681872843717302635463174769696344114852292324435189869845921567888910396336209387944717636789296005770880118833346079423705165755801596387635796203654087991030038845392227646448862943574488105766859211560016056829975878071262434733660889385499389556167218207008018850304066148517445488039884433887805911026929911124090472368016784421187242953044171161795075666325087506631157309404789843553541133788036702124883931507104884599144839767903577927535608353888748779690822136766327095512709039078642691364740777336525687659562046883202324383237217141597323786639275468831127911559352840658365759700173872066138966946183996161475192691891409779165759673191840186943387409727418715633782222418734922553705363743574927978411835290943920382476177494668983523821852439100902258908569468381484094826186269876692602393112447507377136092980209098047835373299568539300683214232926034978762647670036570876164928703372772950495666551385628746396225009116987654992438713147901078980580111300544165176742619859269719007729117299335138210352500117447402855304282037186652330444996556309338207862077377225061159194425087351796409797996388363040961763755342737062476057877029751673666521939539007183057413870285594138512979264410397371782584663533584346618410155672711774388851688725003479299177072734586030446159181916247995101680016131350918749497317040709121539816408667511008441825566734643258045871518485963666039570934322092034840970160928676220900429066795615473892897109339275789815943729853120296035996395853689479118065613750504748407509077097063429211191489530763394085138673757519815384650807443455167627796202469873274439535019009672799640282567881799577700398945634178537258946062716722022712754855883853155738996601400890949501850090282695966581546460586576978932354990171318988026273364438464773879648385325371457417249019512945052690231769945918668696808710801105581463376779806859647749219620177212076007597612607986480035261006138247346845358425884528093383680635853420489663527433125709225818402618851099743298069686949639699192227581099957727866317704145943600447067295795753457636720240583887529491990724412308152198067495078842908644066216924458024701504662172519483522461505826932932965296501069842789121042753926907264184194492780944546470539279087739950051963803070508057004501029357278709667217190871680798834181321907837587988809822825141050768746680462220869503366296919755201951911033419541795086747622248026497231348947078762991402234549014821671804684699044709442611266710587176181218925392937857641458611448933187548021977043367647951860488392964150990699076160600549633916242691673434695663610019019207563810109180797495889869363474940669511150642495279497288526706358156393196902707555685756331761202217046675133620893230726175536465751842388709439740509239792536168876431193243886400864528608867704367775501438959816513227607825031971980199728049908111552890504181319813543271379643363546651370906641820413436135787269720038268466975460814788620364131919532027680828169809688457900109208751486616762419862666316880460305933405848821789963456651726858477201720589799486619693738605570697274551539962673956482862422479328479710386048428448666720038351038994054878805347961864712788610676358795946460462202897466855392493389638023324290157260226686988865717283410576746701550630453187260745423632480892436729386945389458323173817080327582979247955978656435497137793107655436459489161197565529429899830607790185600448106796220818053426224330254357139753300182773051746199760717833250213021985150641868805990093938341345794940756812833192158821725621928822229555097156792455523020045914174196776773758041487281455855314948794878324692418766424776150912053198723605080162362705871296137413419642174650066453368561347092942698123018613509281609108173092843971369778683238771588046128385756486021873953389174208420953793532912396526849393548705565303312456255191935864303102250881644358529760447754027612163993552379229144604215416052460135174565940377383709403379301564985163624912716285946197136669748094053712894559199632998965650103515745219967028842903937059735613230871331932555881233944452232619738937798055369010046156690137537258792127381441828715015401035101948175927338078717612819953690224402873688470842205635842341461359138941620854971905662897267278443106313643895136761789997421574195692440775736433768876351344386241906007734752526414405301238217130660207332146501030101053343418651460480909537052783042578195192373925626141524130856538800896518833083645776994536581166948047421727897600523444032897739147626687959743048434446649822092133400479197594832669648408879922777196066551896513287969083179212675772725324933734647405578688101573938826775085277514699234441175512300737970204009116063294232078224026486343955838551306909596484975547661903356800306626651121357066792197848964765700669650280006390124123524192303283147504445069477330901134684971055718070725233777475203506612805955301169125134229384575005934024253506452270378009212407149726108403336207135129267554994474173302707010103609237148098040359486198957967982966065769072813513074482582348249593752575136364956191535396589175660932193171176096330943977366723168609503844554195063559764556220791374007970885555681462817732593280814587835395593101278921811811822652898954993778793825923550126973115082436443008319841715183712309109459421796117130320007664022322334273615744742689195671308119828103529727725523648401567129236341472895873808077340671622953539896926706012015072240203156677855423003632392353262381250678897332109978187549894534188397999014631739468954650682153717965737723270162252490742248910547037018543655522783812715866134976842156012759068927514281696925069021538391172361573687724325568140398078488442927688983875901382201299863280285377129055771038038508472335525991532459778862740443119568546474459731381594702994827213109867330761337559185763749955450596098862430083942409221100197376036857333379106137744527483524843636613161590922505799119318399524870344429954715144275735998340785411301405763957151390794102937392395447129062325963482157833017030091800673897992496087645672562777927715112994990587753890635074669399705921061248290958971778656239768265917031840868263772668688643160942645511255217395932413794430528928391917935592961175782569062461078756721906482692466170248795352886868739733373239492210341301172254131170077401927603668592939232530102246120987655340680666137565862875303608436673077693109903856213160445941649865355621627860701206061176438741398335260070354492653215326128975244811778867724634289935432570304908087921787996275194273504913533131772642126731870114616710300166205416681372155177500415120051118855827932605987348021150142693165608574675193593766216192520249213814394565597543373020919802617015981541747940249243380186846243883576891598766271533133747404865492372405281993659259039054260206858943362890397077195915247150916867916621243644318436403956872566485778325354126767426999411559059491694399834397442788969222431456784393148971857603560078273632545218353608194197557762942740183063580656998996845026358713157631585594763578726287065679687163442836715755234500224037817955156800309147291404693859523429489751648615942553778052718271255610596889042614419968595166716665090563465417865279393950312251266124276267416998784948982427684472628841710447346485180429997569074235966401428736692273022491270610701459140276399628406051837949154260389712080018333736070658969976406356665409923272256612987681794609916907582143737566941437689741541016679503988380768441060556621177821777756089153159424367627383228712569735268230761682321908430482962117515984576741318606783031033561062658467551257199213037574517992663045144911708655728672442895215952033613512883723648373069558561622161639261822935528476054903463192920637818886101962493155261096068596808816173891878614084547628708307971999512507200305495626201152852712085213817101438499620894658518397317085181407083273428776986541253906136152400943311091090698903343462568727873342097173256541520429555265313969844310460674067023073538264089629836308130580440057277658783886276203635818647342446779021523812889338689354636155830189890447588103651742081944452350018785717180872326919368806307331842479569611112023684962453611003132580961263056539599481040742773005790306792003185146474173800400662290783524839673130215643960705641524588636766033572330385595284395487831366306916458743491709363057853765598595503659678211089161446331372011270037776063667509200068599737673942619312008088801997750220228627091704155804852764343033237914632396982577654818504470003659707751946790815593117419756481298734378459452000275969613187759984197043455419888737314722123392925854149272734571006749872697980014423844433650012740378985015917167000716094538101691046817569099513527777853184949239976123754580538118412728156680193695624516004188368610142396111753593044097262012964956758149865502513461839746276058711709174599831991354673166092357166321337863657156863533658322036019799591328499801519722057732421434491505695220845225967899691470329275503227866820345164778722653754685440643854439062653787128703676190803156042660910572387367463139823163604165014825371651100879766228116581169497698038219510301606058844920916608268955114500461957349284650329337142680654562225309780326898300351857289974548100572326540153105593212738666607542023530993015885928634284970270812558521243303363036816828996077485192663945999536097503936314579115266824031851292217467155540094069082836940867109344614043234435159745490186574474124519897024965999016780486504105811061450909379608625412247883401285313659531741954557886888290814130769658609059911565808521664609990269435123707606607241443952807152396013775086960446663864381042458564898046345082058973188430964585982088885665877764030097006993486404999478147831034027637022625776887469269807226878512599811606974639206469723940103665222516367801248291659522916512380905852340543479720017105791857527594553250232420930474726386580347495970236577542613170958213918494193507859823860626302007492565819211685403939317818472888069891550313903811903762030180581291676099453518920470348038403060082868499094938378816021764478787707568557685597974156490286975818643568233594203169327322797576649735701642328112448724681545054735442399243296954537698930082334434391884983029919520717366180868606428703681088054271380859498954798563466907621652553342181121572838929552448766886382456627957459117168517162367586272394237979651087595263232157895500288439527358923046582455454273221929876290168775899979958886584785019958628960420725409254283199449989636296174059427263391727410374533197351808281073270483537416683335704269688518907300406698306678843689868245149071779903011272734322480289614197596705788647678160038826019563586964028995996197453251944808075080740551163655824844073897195068073506140967636139516085471786208925241295309620777057392365917072760119249768130522268483662315858153056238457237690013919067308660158544629402760950073257805607916515259324868818639053760173804794562693741159230597102764303061113296174393915646819773375710599377947814776573104103914740453987427361364252934667391859618953032690061025713526640629940843525888875998133694192667171407047445729952618285754499193136433854983344160003592337117556762460512852012002542131177348045735873058349204917626122557578823340627730907273901923313937201154496345105615518648144587604002948582958302325369554962666327116440557540371869189853332322633337725487778552781093743866541326362805485204538677876240728382604485372993527865122363527062866485653317095465411295873808764944520455922855360205968742419724581275465306673982814976797835418665849304201648691332772406217636980382077754189024613142292116821403274791633731454789423835604650751870756998052076598755742758225840350193494322881704178461655621138843069092837326903023143193590192712896569432283547941647569539978312471957862302076899872116610286461271844645990465258285702703685235818343147431082119352723231809383604383223107940215104106159617712543553113532092250916818079436838745779186621786979757507009261211078612308120968547372023476601110549757166531071328760107707354037756637522171816816008387641541784158322689037715259014730103587313477691374373674784127407800713569362249739034916408111037988367773023303529217022561126446733253579426997433191422778556668385980733729270258108517588738090087337696676365354540769325395674814422342816641386382467628950969104078843756766171576218548506815964626165641393689733118811513154628581976037536580281913321959299151289000020200394924481048136128786517200513282109483463589570950194939272706808293514868440730342981470912352987935647648639220652725925024400838975325596149026274323193253243046034797493483322590970043671833518194832347305431966579556948641869222840251550407356966852425379466086844378959887535847595117495029363593204712654283314089558165959041627582162384653521509195957666550274618151718735169317880507032402600144819006237547225133314558126465163424626605753055791787155939929222066400561093043560917059296675473555615533104681915866929230754527829323915203955025160645047252077226037970239417428438972550820666225447636308569300739069673550982714953605977196216264152725920260682893720694542228976308311103887982096320257010005035513415352506870260033343540176909237719530279661651745188592803910898212449683810953525048440894734045452488071342715689407301184629469427192423144425333685766999858066975332042063828675104532614726826323200380723798912182570894536299736900166928237541055158666199824248273627189341368027984178244365735256243061215183467730973013447909369676262530246070238743260090996201268189203372976572801171729412814036510930247729486202981503664160812054493655511952541072277672677692894817544935118608081651175812264310265708693670251148414470477622497760251492229781261696939253982310152558590770800815373909332826693560716961364154836829478999553214717380335830228683644821310592408867434529979008785713455934781582501019714162666959964349839708171716586899986924276582347562123610623789440711775037422124458679125906080213184944295999069036120813842327780878866146302067425629293571859706246138644847920333513295490973349510719011285094693349514464416008338558190913635832580707336176104927961788294380010010012772109514307667940538594383026612190141543344974640797788355216056488124993265933097386748775627869764428279285810598715804335800526346059680620000882772896139783305708203800003894609313304534662024365927667324254084755707443687618151301195917821087447056565192743003809213873819024150315097281726229869715660241905524837837121600000558586722247379893346927093694279295272972547555306854044786952184425691825643662263233858904058260065450240149481591364739353443865756668793214007148969155039166470096544606464301116224268897757693224520254006933646435198779891426399959997687737492567438795858181115213758252575506207737893901568156949702882093403937439222447640172665063863508077432569779037123961766465810430029094283935840428980802855920935789524432426028135432481802950639340886413165390573832302292116150263785691313521385661146206717176951040468162823036692474224585660860556771713898306245616327855152246270492064293513595749287007565654209242429268744814147543862085037298707710896437118170983292421041509104895735880636060416069483640945409249868929698903432355168513891723602520439701808562265720392443678190993633520726470918488377416318186018764354872732268286211840940105927440445611801675437393123588186955204846387103594281523697606806872065344928556901469194730158939095346619545810877599548222734861377532653076927735428009870653613508778315736567149069995774455328510876422033439586738172948379810707985614109630625525940943687120500446813904963746948528512114204413611076882115259018523789828187905025464810901445396638795256632421882093096621088255999492015692508718353148887787556484892599035730809741761467694602653411739725513159709073897612586212040445909996828150672609543508482868435083961820610158328142363484007154112980439369570373128247662349258478505560629130064086198248651312856154542417988029610480766873466841132590859642883070787704237869322572306895494317111176383238294208534599584424460976158468506318277578463475097436298501522666628426672098175716627339432526997964135852818214962026971258520125528749912920486335673652303755451138845343766006664006128079587812650583816231567936277454950355587473366989914231063897754479935043793357179517970124258358000959819069843899563845175979400404716220190678242606163021965167055920961384740483645469285052027986655951013169556768358209498616605339977282964806172294672738915367375514356497296990820629188341860557554928876000049775293676586345665122477152111036819084182440754025470286512242205999592368065993809315583783896420222446205079192753290085847232939617607125515861159233857270754709658749831080955609634915897176824997665232536798711674098017472717157248198723890649623184717228467840278093177663515484705912901771753690875771521695481528699278930519187211359718711739138904144058005819427418387727162360014733723443673794485696692663321688718682754077644628754536687297025104181985811358164314652130764493128506446474659307702261774609225002465941207958508748327365188000068807449595507752959302706304366821288800487809036045583312217147606922369210290739900868786331211017939247985718911743306312216643840651642398121227793086453485563128486876638149503468717901068136753970952245284051427411461343402080325188285232338245922248608225860825491349878570212793951146278648596356096752909723695987686681108936280240188975372328629612765067724583835191868737457128212084362023128042884148422494186901182310014258477601599418546600419579167710165378749969775971478333610297800173651140915682716384036386857668222412840967839025993276519882343987047081610673806750614435999213668586001044120996257513005610868331837487856334843145186140407263827554204721615930858813835778975826123429516524876603022223377142813920235175247724829390920421552258844897553596887443674831037392233063756733610688031149903480822173914602522810553825448159704967762592961111422681585721068845116274056529766325557374426655160728603078134166951189324728854651293500896226843266481174427269602723695757517178492195160381969341327540029505707360155490561998434334665783903348570996233919083359062624415406687876393453026991072511167305937945016879262497313488138259178059429812441081336855119503850212539054188249729898079843873946488507724290991188420285347664288808255766729539296027982984145609165854927807065009580411391843341794957594143763408176360769989702241267235249614689685773721757911273558169706703304291748174118698053174003484837467546283390044030648700265998763362248551765918562693443087522304458268525339416153641200680106532046006017543124313101356977955549044167434732323971516487782626672664586328013695329072435234368501845651759440272224605534531845423450662150694774405493472174152650825646970395567780400949497477012914658477954616631266874874681958326866988836160212526323442600348724287321575708584217637132323687283635188431840211316173973400484699486526491463049404637460932155094222154671608451781227158498742631906696959837290971092894711716464031423270487054636050409702756027391350866165230544227077677540831926593044306561353230518841142186610990937284011216068528013386250661260976877211889245174089674648257596655479245344228370879062161812996010597862819812376934332055899074320612401978614242554534502737109628402618084760813091124662213135656069580418951245335947022181645190695105914248533209713848045131363883803931250918627570144454035596235840306663474817090719812045249453095064080149095753605640156276901376770734634712259958376469106888943567425771686900823867409258541872039009627461820720602958359665078837770133454144849513474936081479086922975376541010871757219350141464393004225159313650391803672178608902565015639100464930380593554108942512293658814574986847298660916698748909730289091736892434562841774319403959789717812585666766520988588307161534673391424859397808252668075039243118702669896562076742351846289330803572768927750775340493482320982384316642928097009578996768341309426558959551767650519050854263843415529193474179996120902706618930302960502548684601516168929292909897956645690410592388534332285524739702237817711895887244831496309628717957801750512129691450873853815024587722166724737821115449207561352865089960986952349548876022612732730317692296583547784193130995018400874369116420357878703641939509513779721266709041588290385438373389714834549935660155772531670337553479767691421480820576184978131061752309364391634944728541167494689740378591779561432861973345071831207269813581497064330261670668854506740724628749934938942756747890239545439569843925907081565646788142194939645550420787410255173467893533166635502956679900492368004848722020642387156381035365406577908638290608712177900661358093958546385777896062549599937139321426620850460989341618795052335392953946858697891919552919218134884026020852093431364844453124496231623109160520346866166551509026019290836214376565322366767538140944672512311053353284440522496247522132794676484563678951306882397553925987620610197927901803919123138671169139803446826807200092059362942470356366049241361960928689509803210493159515660912182087022803859212447723751570547437685416729300815892680230147424517943469812892561933002316604340011798624275686639426498889853912128333547580854919757494576480963233032457389190466688546735049111522330173203836616606336872908802653365775617403314760933946909789163748181326414996455710135661058453499349873688443549363280707389808764817042571680551574109019683470342928544770621770161773632917196759452557403831863750778651595271908897669047416850580052420805212079731248160912741646705452596326517902688529789814723361925771327921522857104596935083314183898093331520010805724416209851135862919297932037919509227066909687726148526833798501631625398902021883858702927368001003569486232006988137927368360761375650443088252943600736579373308025891010233208240334399195439248848013222522411553881427902468360707891624135461141601715331879258725289728005751598937664591160105993370648604962839287559551656499613701453056830628975194012628564329144186993972281367164841641664562408826045580513992448737346040234080055922129356030819803476113005442721150719247264268358056888740043240554748928972243366388852167067182861119165838536115854949678024562037468254893939273007438452165873337366891102361411177683695740423976858281586655423874832932413300516979091951060701780225563424076043295406477070940740222544434131569065627975070724604129083660190620268493787839577027368477342852531895994604594333863383256758863181716932686419328735670229952932731599748010614016388809685078375905592667697340696412472022590433636488105881699404585735105199048893844730875074551889189066993875319860442827898984757196488822873173666164449430383755991202659447849986814790721806198017700245930849037480680113779972834602180226512895239934951605042059261844300434133432991317600751587595978092691630203694251453513793076885339403318929446130881951666814485842695336666676740950290032717286803015114182567707842279988674414704746820849486994689779038206788649747976524783500522126749716697135337870226852818776543587020084121395836420248013870002496661229012475350113710238909535138520939927476658589835131364537763198175833864176746237781251155718663225877693871076704942405469703748247419806656459359682782968096638723896450855607819167538690220403297654754018866876718654668151605284821018462883250739877513428682140532070722089977248098778541441778282522613009227970103953820562308706089861669324561776139786107217061093719459806841567693761934816960744182755946626071617251004799430521116947033684719650404448464677862471701272961575434182940279759656907506347102692306425722204456475700558862250860125883956610250900184811979078178218506061092056058743744343107174741535525198413102531649733172254279648968831978590392187899527325647572359070599515211224391526380537987982327486262581770629925771872684474114768473163054258743455771944501999291573419230673781438461091789431225245821690481321440592129108869555316376090201558276620033585512587889069842571979229747740777975700909605704118949947913661184001526471119697101061331509018418914225678844625782652466911355929857431935570100637378184475656076024525125892393679289846573977154829336882505769168331978465787837072886288111289838631247640767966646523622883121523983775767389971116962752453596860574449463503724375776464044708836367862183580543041377673054602408976509958530124888567637381599371649239117944649732347652147888280973143228448619991103230558574345757515739409441798122699336199224771910197324033642981499343101278998193204397510941545787428618393062073521282982669079600678837296574223866213280543230936545059220966807592807895603264859815580113900977596930685570895276086924152649961670738858471724512422792193187822617152338081959089064591297287079963834579460598837225335534318428366023292797946176128385806574953312674529664130087932638439669421452651936655176332898253697509710196758304898826264217004256377753086627939656769918482709760236742005392916128362048438486654288061926278083199508132600559872744832552877038170919603269165763274612575717662623402268230267499711206313105829644901119470079560535697951728517463620414736308084946664177411861408404670357414677420911246715353523014876973918225607919305088026634814944149708366760994723960816737394726382112476597067511037867937388421370475083700729819126781748640042818258880414693181196375938151360762810049961834177971624739863039591252897829720541304586243833237683666678645442295621543428106881115950299446217863495734951861306300927371293684546738254827003652741474530006458411231184647799003708955925490522362892782193792344231282720335620207085829359131703661447157726546309128684033021766644805722686622983834431804412838738529230315768540964839115437585634233736455863752935978763766023448105198614010067922319274646194092699381296437843660584563605259448096320853263340316855486431688816455128346411791737291610896872388947087681885583924410772527349529743547464990856856555105348696095447396533959311238495684842241277378735293334311717487448662290241835045158132394445215901038026523046988644386737830960445725178811548184140092004559448340877948684187699865391649222250188936874328794796700944505231739408475940550775248284956032203886829727262264667102829228564019087749067651162450543669514320765815366356632923543050846474771414029870052813268157485399454475950765700863201477627952676682072030363109057058843430882571704200328531195916602811439942955367250946768685307013232797807585153559622260480502095416531315633883750128783183900990108972290024071463861794424024236915788258812987896022613217905886076608435416032286345622696948824305382675659765816227637416094503627752776168283242875963915928622054000684856277920311949146980030854267037362068963367159519947077452165938886856959141410133663401572564770643038324707267518035358957089800951499386853348514183880350875409397187506740501819824574573824766434335188192377852846197806766784232594979845492852586218578177817384408775958416885907170924295935344899849541196463375194561725785607266155062769668475763002862364846995839065879995836870776471347272735015521927011362983322354611577291816174986489652651862755467774827409413789458053289834289619833760998948241050252779082746189967362655656966430416291883823625181642967519411083093093012131230999794129762090632401917208534831651777397114746337113102625612878919998278209134525346411018754271495011068583805738044274946248849938286542521819266913286220683326184006144799968210246958785935803658605334821175473011796844441416947643486897201219092857853379651063600062855936098685675034449712468573187653472375996508508958434752298134014517469733549248646398581451209795308094317561028455406419411348805784678970291251317592168662444703164740176459481678664582947094723543756912743897009277075439548206632414454828889482378855552626068234402164654944477168423628137067000184349492880921288894273749232647364800385357888889578571929283710319762385285217227032809924500411235408743716005401408222784659862460325549137688018126683427578682097575255415284459902549469338813835986357288923112564563256267985163027173886246396523598435052749755088784708038840335785990130508141497501580142360408016994436610078995329484111329080763635041697147213608518634024791043269567197796377307024879175246513735592895750065477109554332068376104037781680730577321500316719565390042814057270072867962791848286509626510842845740757749714728350552381548860483376929520348773159777494446735413554506624451224278257186631723913607088917064300383747417033010293711015226245687242660108407505192586997109547373966619415600123033678409244563982746646132498396430090694650043705148363815615960007224895297303955411885971649905297261959897811221056653546376297609890018266332219522770975177871712905724264327034007395194984940101785835264527339775661371082624228918810213839605598144812979734951768673457272331720049568959848367923291326524480844237050498544996464123721494661153347403150366568576211454576216224327719050624800385297292564478841501165758454963027538072768321357284813558557009421139161830919263981489676457511581061701461573309571711639999834818323155862210963265700178007923390563281663493932233322354880085795330642590521707429756326548928443937967472104608072549656352494057641553964592276632907614879568923311811174371952982333370019232475891085117308182469224508182099268618929884007543669782596747096394536353450949363134613397848608561923170128366133002570142667151680169669135573572420699952441605566268348332424931622944035268469010020045163495326497731985967612331619655227460356083501819307030851345618402395379633286705272900887691635764876959551750529648438691183288910258795469303912912213059944382733283664902613429644820269859770980088985315160865939537927552579514962654419917595837167234183009864575843679257286821008413888755361132086174895788907794938422759450041509394604171830742844111445880408919583332278660869516473148431894164189893250908062625541421022841419244619514789858319005494191395981282518350699411137015834150445967009520108132601256972249249113857374321045766044086731765313110820738767702807010378397079868748527892226288075122352552353586930185099741157978761212403925251764412044674191073909454068201392954966453984667898975798237202060665486552689991385075168985324165659245397579752531554352282604904279988612730588142780088751324456207523426557550480869701522559334357141258746067050729048195391934651548151756593509858713459491238739356364280013341558561909961405503551463639331031704141764121441656587260710859106144957307550549249884541259803832862013515762387274622532647105763689651224925545164328997557085196909500959928995651949055278692439572055994793252003274175061244721121687205221923070408709336773381539599067652830314355722656037353194463403419895233208174736443121723645960200279988048873572164491114485865456593114675163138710167210017618701973681587253650802376331271021191306372966473377031589308157093314303519529187284836906417709274495845976105567293266744763186690934923796846452743855560005479068136192709287745980238408991643946195954246884526671968560699765856263367651528343806619282124484911630039013218517936850021639324970994743480436675538675850249714041058362162118839959167025746827486360715498887739765966496577866911378475712344252691390493889338419625022320500967999201349453631356934494637614480958822405682147566463079941775888370802050172394246960575702405577307823531075799231300985439740479110718537132662793264043390259009762443908117298241245772214782530700973224491143354410637668838565825532983072510546244795746028768021077869950566242404366295359767000279896396514522695834144762574554128898190368468935852335620282378380421064639904372317566912424022254289908844015757109837551632206562305671991376195977849464714397801685529267678319394712853692360887885153953287586904599617034362726937907633179462464092474603420844667039163019101484441477389784416228199513077588646137032996355621909772777331828973607268797258110088245868172744352221152059129157702160678279210202021709058506200947327285986917301730230157879465703240748392491824662667668531819746294722423810038519786247251843833144462720902594817810552464743865385282399228039273963746722005146474992465845033034653794633898393930709417328933052895586460209001025670939565355568056719962151615506992224018728811705667010185789994197165504239040649377222860634016691448297209929487080412631582439284109916230362266188178873637526568963866823720476568841367883395162548940431954775593440984406392231985887557083245065186875241663665270842322756742380270332009353966922747460274634523192196756337253519978645314672836376206380808375334595970370420882329591681090207270360366986946454186913511885390836992232590889088306054678089121714503760161579730865607972609656051189014818077225307293256337278289353857869001675642655006011611266062518188076355513100806855435910653185685044622492402557267070102292284907138748813622592782795788367419816348926614698663963283148502884970614728805605400154999227308648969129788505456613871129333960262939058771549348942397249182330647589805338609962225710861162884425074389744174762933259588748255878958167923236823669070549351522463078233886417117518211753823925036334637656289593559860528830018445898428725920084033502007556433558503115365298097333365698003771963620818631342961096835640975503351247287502103476363710178614396010157507535186843842808510220799592925130708253652067940261810866513949394037983655116981149476429068009308018621477559949783452703939035452677671006159506888144265635729150915838467422442881695030145160426248817398116281804424977495766282950575180985653986118203368140588672798548376132007614413102281262978361422993891914138781678521533014517361886617710660292534609241846508770435973617806400962685510125150244150623057147285651566282639192176320746116026327263350759307395413073289443910236499223048635736260206673943435416461644462721323354963455011936980740208613595550750697606339430248327643140186713186810297213095647257558856459208647782727278163458316579417072813534727150092554130756453081098727594511231390193181568501636030631454501144775634791169361794695761277939672808901125644893130101659314598795477055591538762584136801221862998634685493545983284975352463910102813956266221965116801931719849242664415959443693954254054300649923091758684297559870536773124533270652064084901958736710810347025121857621184003732280300603750897062626794310811428220131222828073066627164656107645165863437867736522734100851739327681305765800847682585608715954691385070713593771777625696117942544968896594918999827323356213973087230801802488192287739741592905156491140884448719378730137034680420812726503071825095003870615242864866619612421637711948117768485976137123113204645379908313374224249187074415395638396972121517760469954087335710683384935083279859449024863942290160539126283198272348395888495144598572890871371296851750152219087055742223482348987926594546743825173404365709671254582476115672703398352586614329868747060191607361924971354602573345084542640178650946808400402355635955755243787014522451394691924538547190226560567996164331582190575308361378586339572825079346923585541124087718943469330651532461420224794044733106462100903837141060240664750388610581428583980597756291101099810470588683350026591753622654979271486412730967865655874042726191883621430144881070751143204740025788716263007011959283491066762369473267381745473281604809312684388673531542095912255639236042328064541242801941124858123216994095823667487952002652168487905567744285957535350759448492352961768400067856666137126575673177275885553093696907125140262307105657479944487282681357881423014370300988237900911151468357575287698462918643850837184394049625386974308589067880629296787326678242385245595117510567689580353612003729122122897271613716221031085897697338091477823466747169580808165184894092606419095147383632283056744276663954888696852996969890789809023855218235967376414792800281856012016176534929376913973407537268740589462257429484426389883228179752920503101603491335162080097700843230757493029817607604656006360255219465314207563965824392291596463619548780718644475138108529828382980908376151145320886852605864790612290817129994024243148237007401178135073794767414329825004224048510463585406747473314591651335221992407757223076878766037136459601032762676129917486732010203852651870991277142486377487586515027480669162565665085248783932881674603533925008887840801903755298488812238438336710473275602175461568201513976973088792582984216304973216182541411612478531916405827011852325819875770597256193116979014952762259397605383327002016907232625243543610977827332878491822599415866735990006727774263551511541433851921332098515304243242211239193405750520034491404408532389495322955651378513710095786215834812830714844451246275062707436067583901059758098173669720880063207944926689643699153694805539336236894730090004162159006937470992192689423713645243042085987897168587132400031723666810796980215351855685607971017205025122088385560764748707885897057024702955547142439410881977024080756843644561785049463588528561068922335113281427218315021816096281584008328821345372673211671430533449614430102421494578162304048512357504662670904134385828419960143309363351770947719976640240652353621524454010853265922286192060508736652739688177301662931954615269047103221917912848839827194383034985328905385052926722254488611793653488620055703694988912979258010684863939361336191190290554526073841496269969844912685829022573932659541522130450699986121765239786849786773731292284200309538352309999396410648806967285908309998575623509309083474561623958795112754826338260357150423711581795667890892896500438352242563349216165565215122294258731971277706115825260705578694871784353174267950594191064087854067066609443034046559251193961863157220550804347632217047621874688619042084839217899157219995799784523682543552468329565686034255290991731262032321412423662851488071475106850215659166456020442454603449136159278619298726548758821614060018227045328087562811092262982618494323652736852586396895993194859934738811999380958630644800536799891343862678503527531611219967618220525802410934699360560418414033967754845405259209514681861794930386498997821451540729828912274041392673703291236647456080035778590413991690577607190755867003486905681203853517629322004876582026627304774302044811417572731383438202020250892589484516629813895803341452652094039968935121632132280171230590667476595772420768695926048456536456767891967660456806426210713199297812905218407011541734868361084101949038572277308981787343608206097185610818831943522128137620446162447194214036506202927533621770103024547253970025848928068318107928080069184977181370788535239568033066064595245309466627020860708241214554230951075760445045302924674388212826669233498542965713699161918441740845679332514443993383180302376333729859183106483073483889103315152143780635382569057999497786859744777695973107653157263635714352133643064719147749410407084949473610050044005174452563397771981414540901686311132433978403240948494350394066610256083638817092604555216440648479010564343064881043400337469796792078746525474212471514540874318494898220917214852626498906790220847602597015687737348751992133521894403974621788822658188602791494165859415331950807250609525998556839665214194315106236797790075773803429517335878711913008424799918429190797025229982868496151194906181582357380693150318851055434901073296199636875440761527225274087814333691259803893977980361862116401290975306036824254009038006690253280019519729451353353293338954102751256502711064615193303031574300303408611255376233251849188122532342790073173136680226427079516121504845277047671221798203178769709643604439638566938889649601514746823334631675620983152652103429704899891629586653859743847880115661564858833536053260511315658535869576771172730618662255594228700005683246895063967975326754078761058028837566028836779786902294302808921666645492869847479319186334904444893289772831718769883245665261882488405625167575304723008665606202331319857026007528723254735948584035746122749895981390268591538769241064372066058592417666787128617042236896656926047363679033403080543400387861038349485399723790505439037093886394820714933669155922444628614792317058805778947048333726439006724780031240223750896989955441142801834013657194539220275973065504431488454193875220978836812959821152114344028157893223336744698395460229106331996849070808860783325738527387516003448488593936063344003956677694149696305844343014022605078824589399234155491612196992941655004886691257136608299241170651083923501841288134585017858184617456085782039194322776043827744299560258225700219820366336464171203120119122684255652021647752345125721803906458374987434178867225587614149512675824215494741939908800313491076365110267207877118778071258273937020536232608648175490875411086818681842614703088398919100265884792038046388455719384628635785223367621902547107467861482875276726374834370153678169255082518474596136740527800866190762624390374007961089554188789742174673777514271533645385749410163782361338531176791713127107267841925837005950224995116308073488746804028611139015504703839579937651575677712528798495405561808634523175630722847270350282703789078076095504053131915584422912050664947439320548971259681203623499598010930814012666504581483099349210066783873883626903456960627098728312665951686993457739906534611864762028815473189212207958488391542370896829837596228343163922674268846877818910237022108376990754036678195031593153129243138785643234753625429307866098695264735786513513430221571075517051664820150118263596695795625028898739367163295502673752371134685290362782034087092204292218425547832964549248125842858850423816819561691104085051888599873500817212092496612085193283824740685272578175412817663831349605750627980546940071074847528891712515595179626756192333878862136101983561054981031207594636017774191313060646160427041119306836533170530234359837174130163216268352699497638600159019117064211000203174159147727667495394706011355761404751214202435393269281351250263590215262587020622540988154984599885727540925021643926251284307985793960315002196607102299623039882421063562654138253528221785236814487965558808294918077003228954425425901570307096468657599543807294639480072552877905025139388872359266203041276918107417374587092493162078533328657799838950199569883675426393785370103486941397507428939426824726565684478821954789926323611966970364451047675340065433450882604356055869481004596545221553849911145767301557761487109098166175289868041557115062422149047580762825585422275573228545269704218508098845268829644861684979597430307806468495944463085818571176003882272053835942509077984533330160201559412963041486448567162974821025600087224076040010893606664988384425907546872370650646598217731638782361398166624893815855184151001177775304810402128380364028217339389537568967032876717515489696133422447357184367050929054377311032995346025070487879174109424341989154445215502660368749962045715643846908983870028300591528179875843943038491309603470607644340071834671718591057097461713985082578706804063969664199067887393082553725358330913138307887214381184715618826194724415248678040749542778691165820117542290774537369432914076300614910654678666839120520458538470585915906814219446295129680921282484985969568792584296838151522854050607906429403577158570449157079312643745606528178700214240656550611266469077752736877407366453791342411006859636175450728011124484872388802759328180310546873731566981580695328849613844189581232723414792932256238999689530349419463342877316376975369693316084865060965351439311984900023335619294515632616135273822931003536325048851183748393169297153530826965610196494393545741499873188650279426640959056174934876394436270780876405094973093250066450891070179929830235133484625512144236782782659515523987061008482729928662674789890989105161122571013869677215892544010530814560921531004816882384415867073564677365842546366551718001479392465070981392348499749259993675463997545442913160893935970662177202643646052417912273340855992927032522300103873973801991596058340542965953710340107324001963008197185891023896380857461164520182940285326480588306891804291216147054041593075447266671249744590620090013061372642158363382166008509808720158634173719121453125762521521867814905235431231410553190047696624699985630224609476332376471033505736926006527882662568261932333868035086723254634602147256870793622322138279911284079087341683305825852001328965992266361842436589689946778914819312003607956531995020508979718415010971158436621718435867530245999160039382533907921399292690814282412927827110331292633129998812340201484373723001024638593422281535714304083947849182075864013600938322428160602824032901409171673593473800839343104237555221650639463683188396567160625826250463059609935884213966005973469475139409560773636467107378766104632675162410523286171612913846014207534515457027290334489725670880774835486336061932525176144746677164033297858175606697335343570225215880007426657124479160716267392098833999814012180788984659601294871570203769815736893668883920927015062352260712970024257330995105207883589062823086717108787473671555275611098477088336953595027773667430446901591622490222550966972016562229537570252629759586732604544816439314358900766461664192370059005366007963403593075835878396863548643925438447586370082100574314841590182060365572865799773043787748038505482255922504330949639873612843273830370319106578665904527718024490435795202172304740875381006096569927712856964319250580238747151027285797768207651713012584799407782061961004027177195983038391283042783585305247419329813008351937808985674408074819543383180833961267022550289795267722234770975485693094738289248303351041085887630102266881608812571118897099875994236795879330036782089240777611673547390052309120114930733722016357735098849522860416196481148870767149953032873481415376108193439033204567773332263007443782126466339460403942513700478639569467094684709687274066194156950505025349972787212412614746614262286370334529574233626453696770696609206931357300170433715197150598311208531619261800234048746641236532795129270865132480541785416825989874036091750023196718607488706196540426962989109108120206925395916484733844157969046317564312985633183347232148796152492242271648887477439477963199885367367894040452707303572361715419231679626191321680813434645597432991640044669537654164769166471514037135617562097981809543681068151408998464659864484154246003720705004547105482801849531598185062095660921153806246671990369776232246059580577723597896175919194189386455141030050173081891691471190147648561226469053670879647709566670434207357508072899698975804924974371334021414568328284293858324452963478975844802738143226405044607002231100847531774709480130938246241685173383158421305976250628082334130165154479863658780349873886835386315881849058581185548488879599105607329387648498145790869338445583606995138291185090540409324410625096584604713430275922156238199888436723067903904508793140384400869845486986217756151967565003351247177514722301244815148751830194515077068795678929474840449032496293372898080786972702074554714225822233074439769585607063244714837028436424572462461285080661853332548770794085757507505709770548117254793467140539043563562039428542936666296376547154010917226598251522470197965921583685349910023692768333803747725889939190619517448051481383065162796428800292536704977451143807233963442539776345904331514975391493676803187634744131224998831739991990310007089608630713999682193428263524394740451503708568093079198635245860027847433522401584729213944328732612928543601230487360187835335544170634713545005324480762156799706772801953118706795928158451824548777599715180025365341227103535002151942294205761429562538389589364390605335921373832413607017907379472769351914266583565860381064602591087661679155546598747192245085973646802989415025743539349256416458967319022404166882162992468023354927841577084422844290341031833244052708957768754598711842046856188581251325872838026856417073256622037858212946905936246209744328650687070535678350380001213110288076569836162220238606352576167038621206349395385625085409033677054389778969568985060933065151697098915786204034382293608250609306948896066430008641806084535297797031003694365730309302203836467628255402416366099234177716954506231503751579440887520092297376482583513521533763834412890334114999594826640290186713397015522238365635558380426090923742065783913121899732877508530321014666247517229129979250674862368796697753783368931795825251735190741331351625949596595191366993387170029748098468025268454862494753238776861818746034816166047003704953850118554900084340759293950061250766762776870412497429356195997821329783801543487904533577849866241175300609849302513697498129243431281083212992408379110030112953189623334672094245044949938847510419330010097914896634606972124643201353100332038901228766699196115124930235180987120783862241186829040576379079073301897120224051187118068538219052587201493753497836515596976049173858744485325999496390999550534455071715217713857347945339178754199069451618575572657503067122667753126219768699696628669329008775034666839148595616172109482418344600262763399712070068574460143366287327972003953109571932545838347566114081958935227679610679377189923777919602401739004354117131153169804858962965821392232746397420445634121374957822386908350383109141137950324245016277722562795771783810576135671856608817083198296487546291595777947314401192939823528037739506956093293778584920577187816645834046244419759253224738648183385821057170610462640799986204142174159344680777526019979710054796446833349087109029686814697826244394679956912047716820256837426832554177340750324452495507603979778309372917621721524529984067818003996744267181972247207584453200906243223761053032436638928069096732832769019907003156820152556622483596404157020501545110442335128606651938011752443910709928201602418238079714398783259608745389979585292936377477719226741758297558297174823111191625724692909559385764925155489693843557208602349616999328887800411817919505068286376178815421898972981614744502273452219602645731194413471444768520639530354630430558849613369097945962008209984993686695679494542976630972398850598451276368284620877892288367894510586751430140250100791148347156061737398243739912712132741546603404625568657365440593641656192900926488982684177479436646125555900191831519806026152162892909072774118589241752077554120109314640848193399165864449381368536437262467065355320021134555418003332740647005536672747324244868330718028017574833205376039352010762938393685967901525232846226883555932763348543007313695532056142713077846281866016883810081328920340226519839386183969148439408275871354285638508706517964113263924458170884709892092600066244005580536636167122548583861445592509256961682082077094376755013161287670845965230127122669875413464944234413399682150802005440480715711760304138842923759414572920324490525655297843925560919848674584947352290815503356867590370652526471093343046349219576969113748718426287798338035488230417546846723112598533222219704237117568602941480944136771394246405788329968960041574129307989279610739774661105735637360712876675244300400327853652685808480543448260546461252555312279218894460404544082995442607668983992169026579062604539978219682829819355576091311284106801250302348213172148541673217492512415534873031146839834861512542410819834139548071731255361091530678025767294720490972603040115292734946265084946393710979628853594250469477356410766589850461236287278288755065448775294260199639601929823505533465423644622209761077345727937209188708773544178752009826460488848369563831502268232759272614881619253640400483660059385728600233435365092717848140833625922515815208734049494398477944497377315349042341111847166715223293313465094677716485580719609910366530231546505624430065225892756548163883997948428108828397527152725386072519084553260864785913265254797116141508482513057441646186083570107935585166216637428600190465658101099109029144736961137081461702930552806695259633824142148736352986963088867993091803944606445046215116183115833330317965659936384400478834292495080378133335054891550789900917038037917452345694742651018391965084873249087360926094770594936228369701283740399082687827076811346327586594389367219949954998599329950813800589989375015017951660463809671851578361317475654114736324731450204257502481805709659839337775717311962370248829553223474559453512137673771753130498649217810289872112973988290205080189548777507936144703681943727884539157650020911521425941496246239443657405355180984723737776247321448996697545053412224414343546882523435767205060881619418009384865980042197461851922951991957215284507137917825131814038925922899777648784945589182737973000537442917425907660548179440096320831583077994738785397243446457787828635532356255150421526478542316329583326946314175557288432963428141803878687720775998308973267603079085091301957945289219595665423125615578817257054070736444791327051164200737392308105683458144824178434628892052109314681149921814196858850133716258937385734890382949576756987937704031847573970378480627330617059898599156427774271320854863714666438118498475252229442537627645738105740375932846015026809870645087333963117630600106683873983498383074813266624643273164900161714423255917133383497921326485281990510776406895106206856336165863568352652007088832525930432086044315118756852087437473940573515359821771780184397409249322545368901464133546146366898531232978013818863502415231057678582702327332222598734257968440288546274680683851469696878942081292809613531855216247319691869228531162603473647653653471984713544524951764679398641517120397047980558633537611799509257239954141581012845432020570215703272276578396559516465014604644800583358347443269842542648451595452125510562687880719644401875314587135535880360509917666395430712081935861930695082636415619468277904900060248629856658883104052749317076930007813374748598300539086539983803413009561776104849397391882212425440282372755758031906228667820713052089087254862926533489757193862834688420276886685586940373785920672741240436209508649437389749518574363968743069682723356149114923887036757844605775591392352388601550419215488205262018826168596806989487093877937667204615218431630494931276738907514076167512226014373186837324554131932570509948813676144214507966667113639077865228703316605745210883601102313229395023331755122223442320166120464863479539780334843102028118591322113870745559488057178505039103154585600431182638133771090196087254474693978180815921213297753953976826852896055558007520025509428174713421391900945040169618047088191829145160600545266844695312865260470806841090068848356047721543932877884085410861121800219284564527367579188085397328928994592880854975506059328559728629055120236720009417202530164881455636941444238300020415151030371745807714578815578201387137954311010051356506763056809552731170826564573787047045175320723579149984100331197618707913882806805427611392213913553604485451514416554019245445360290353953543337406700591388855642831908197190080652037699869405551409036320776649422575995223476608165658057566563464241333491715113528321853034128582712056569481689720453636876887844822170455719494438562349945336520544503567604657203846848744255584507858314594478647734714609433841730186591845929880711319899540742185309940468788262081941993444590035353932031323180001082956504224671942341138218404795385487641722195866964086954845241023855429474495165661883169543367094138336675284893240753532826740874642427959766306020729720137634526042935533369590206243975914887408532385039590191183037440070742595996491784835614143923939496533564741839712842792228444042427680643907984942033868164099091415886465919154435249801188570567017201330524107009165713265565061741357573764583608951223301933071369866348764096072870626864997173100425025672722280748962283836722243353797580807784077192117714897992929091445108702534715540714970461911178331203806626337844989816726819825264413264676984723583972369467186582383673771383293055788030740920576449107180329065228690123077430282531739351464237657271849956036606004786410417323871635617061953766485118639297325349913280169903014306273924398681757111448432416102374626591309197783885333459373126961405069176482197132118710933766837148971884287503171383688144909159765891016441097933349077637088035588949962271171897290295341944057359604980230172505795766121497254694226599328503160637046877732911986486441004783192991258596226201361636200095465013706872779500818253227424423134044992032216240648218418117546464648582060054797090722502814740189466249172833704506735162592481427325814155471114295597267718750177117572546668403459848867124834344322125538042417732329042783968390565733523009274154097588617218662474922722892531486624264569954881414695544741621361597683188023775877400851374811057243176690645395431965571684373071034510241442950292844669283569345840460655544620120679822249434794633457763035344936854932124725068334909146415148385038361592969111494290876495111089540189363475097048668572359604544086739221859919484644262090837940033734911814304549473237759148837091521689984364530799368094271085041543208755702860521374242626807112412173906559975333244654451853263535467875239741717591162973051531126156858709480319998774066419330900279574189256179588181647467330630721655840746529419334311054627790659451551783057789583967375356954454175050120370254406115233307005925220654666092136805662207011771689110904051366654427404333213531002878259992565048525977431508309023244017501240085348276457042214681302378841793716582263519951631658768546737811157983508887866790763642701680985761040353924421815505375198116197953548798471948182258271074159393930829090399684648748830350331436600603082077529065363221798375916460891287008721122616057847156157784310967455197094258893572883996213012352038416263476222605984932735115625074700304073085622000489884668252621821160669158305322384967014306832700811505965168219332235326137370778023565576758733666217708045676327172555871737934468035461795114994126216686411049435853172505923794150380160530005138214364102283734233026085519149391666563282679575558477623606613799560855666367240294781105000811597657995609824060485360508591325923279582799409210276400025240074326229500211155208226397388105931606186482949424028928752566432517440029639027015546103142796038095308248217863722674448629918249397538187292971964192721072569180009728130370219103669219771316197891945290719263661050830821281252250629787680822803224431383010809911226734235979182158780860328296255368406967232473679424295360963036205759238722373470204310954607100899300998159877851992658124185189089370440552054167663119048234332802131464791245680122457487990187729006408655377464504549277791684228090249087970995905730558093760235883827179696450572806906361075370318359621898668178709369179122508239112899437696883450182053918124389495326367076895616805909247520184414829708664333990294641468247212446232812165280486964813165721416719716976101416606391092077078270292601658053150355700968068259477154627265089379955437684145849727494226997195411977536735470740943267829030470966156701236751751228184118318153681829358953941428735644197271615630100805746904189734001033827480971268782511660955726722288846772646427796638300605120464901172916605464372516417516034105131158415576518315724375744499435389013096225812459123873158366609596760714582975485875268256247685190538657143485392928093389705342250963825060440319025739108372515273619807161897737882689242990622805431856613061726528453986493437769299160808848227587404246156243111541691571986657928532463939647045122925609051414484840594437237150958822773744753440539959171447451092128706333369923445555749864103265883784298651681134389656453655382861409569033834889176288604445719756935901791817145865002303809529342336226850460496740011341783335232068986876648514560289610327876175945629573282759683648314780835675014231023308748716071599137412735844146148475168253250116487822412291873056788688537634711367785854536482538519316688182237086260705572892309316498822422105984237507706169333665233707106457282633724977862082832692522384314516700534880539411721965556266814214427358566322786674526726757008443845915467632449977610808457913771250924200855186701137429552254307836326587480654760455901575779582146694837333835219166380700572698203674363184722169119382915788712220866117967742173968479469692921377218991668022028001396892318846467996515867211481034603104067745633414169276377756834351793466856113660334200936717593518645579787403805592163670398220068293016516768481989801078641028610078340418264742154820539308661231520988149692804571763141334891986185445697341433524956207093292203046388083151004776771349033965450638147200791085636222349654105498996133040914488617259256444066483740509524556661090446376454497929051571110428827814386419863194366423715178312391655824137748805455746430474219005242721466316060823963150478855316241936355149530197665960873725563488352112268972250206449224261309772372166179942260292176330324009380157845258551036790984238163497284308022596877618846539983172973927003066400185899087047238661909929486930821239016399249419626732050509391391149475869726569629990322603162015320482574836882154338488436403958930977116341285048867841456744877638477922059687566441706614581666596965235370905448421669344491916983205569578082828164528543427403227386658381192669455271185227314352808298452027456771289342223973450536563736875311478438684496623713817156930855627036596603053908493826180024195680971623382163077997345801324895535556297160973950692751034911183233580870832437517205439459630383236906586435913887792723350728403609721094951368255666263147386648648335117794077027826357068077218928161862399120973823705818246147271551415684637304121998734500650144555522683065205326871399598085458385458558955747190776776080788654169766714103042185416896903984071647107442904100403057331068138842752981438079955697533494892854823068238785321307581958749051279386984724947895841262405740188878371571603366730697827896221533639160053601354458855554910915714751963616288907782295582127534489111844546440467385883737678433459471254004539908026473457161093255362658401845294075341842592960933716277564413474351042733705687207997184453217284073958318246799738925765586900775090058436735375100645385528605959655166740320277237871847950370486732916731992341525746672475869200005757851411884669988405603473214992427467917136596469937674614285692639302720665293534296382832453841294200574858879545670679052118855903097311478536711699091068358606126431419934208431685955399106973670648137631952296041610394187849995282266380268427532123040971994082983848425779561290051909404032358340994719315439961869247661791327319485207754145797867337230207039843681885258104074867849196870202371560768245238437925960579167513035533174779379146358572079412199869325225373351337252400278583960472148538292841297993193171663836767916408645141384091248226602897186023244110355556383061991336654388297055293781454694050294417272814584438969783588446809670823310830952878038357468189661264575586801971924307510852284523341947446048822106905903865709097210052006251711468395719523418489330159198074783344662717793338265324957802504290830877081175820105513360633865448355914803930822207299571561794899575041860087938460582226516397216574259532183331320924544448362627866487088470806801524262066743496558697798013750162245030814621517702462092439296844065418340240680046067079668008186431278731237500027757963204735973646127054941600784773930682454983180921003459329970943985634337756817789968226673687432950974725986930771041340990142316578869628310245415624369416730292586972750775180125817872334104710540237268086309627406742663654156511175059288827249620354741613428230783880467284569793320367969650700439644273684873265941637099254374031554780274016963492392352177496834948393433579337592888437467344361017583269477004095106769957085281098313442879735903630847252335457632240581998063466589089836225980443689922289272835670523334907747530868747425467504422870108332513624605275889125178764298939695335111939963707440562430814190871434577359237036698223212313997975424217655598875438445782067823533661029842657607640674843251354993671229026525412483279122146181081748142089915389400176436504558768285174413600198313966448023689876733007513388353237468829044248340822101711592888223161089492232317112813704991088024833079836991904366273159765888278479768891763685764704755526695692149915113483501124255999421054405441120149971405719532934927789282309426631492137852314586265261482778083118829938087176647683090087821074258678059476811324657361874712176077279078656721060563533361657629506707924249720082092475859970300358379144553871736475629740777907853481087564192293978950940814822652227343227777705951929753126193548006738999900540105894739906226336363572662184000163804333940247780239685371364799331374950505444224955346979127558833275071131040612456847471918902609038993404577628537606235121351193736074838933377311297414120489359656179414497274931820748864085385376653527585782280373980111486498062856889522720883588460716016671252102389082528715498636767982128625130188561727127050221256203430938858641618505767656074769205916472278857797651037827161942105539993066888099700592045652040568985785945086796131100358833412489586906740202266012270850174096193761900853245074279583467466917637819309656663007248720409838602645341727946204645567161726617883990249430940591313672368420472008589757838280492368001306712081339274376527676266683009327206139273500274202579115901484358483887248035042872313969120717253408817918518605516767343188638613439962681341649276404089446583404412055334288329744953889900675696349348576212459234411894473067592590451854498405405825405469153368797284458412825955471685661848283486202931145167451128261585131867287143498966440022051736306778606770639469589644684776281552722649070130211028444278127826787030137031418343145525422700694930508908703416402176758886449054320088070445987762499598490382780497021799393416225873221330913090243166133400636278256227860684092579107377597397527346194567084844370566997733278518260635568812679763813917417575110386302452303669162424568507089558239582276067267813438673726166543046899976089484355309029563925267962102666201240904283763308431556589182292523382736920989882397228604141271219800136037706768628457098683883881269412399734561369356509502017261420425309689191632113381140713752653298557860437321356251279078546096278784159196101685172950302104652182320967301697992919441023941538793749761984874194309210747187469088066301111398243719072449241410156465544238985223698395533277527532275200862698320182809842466137490505127236228168639783028136103682550015391621041112524203003933736757565777961342747121294324301623655566271868132529690036100833143383321617874029697569386774285467261682308074851224959028954634094106214695330753370715137601336223848793707573057642672272662706320776078442702693211141472737874976591916611822073679504560207483398998548419134842165650040204423500500699918281552108008641889073652661737906541826016851931233410719689211681647657851885742517541307969746310413509364917634869195808441746874021134727471979855402982409804322276264287647816636116009619716097515667012415718850550115373518403444931507772452215635163754467914973641006583263829041905303176177662226564647083158778060199551237065693101542702486705814525508131067048719760647474946123308271050723740426305895798900093960983153239745025825210699558115386748480933642041587546221337682456562591738772786888906235336886863359860594024992938300717865504356110908356567463247095259265967180964779412751362998945930806983441920781283186030802798175489012458196647381951220877033593504736828958546491346462684430065748986145261783244957503919191646357337542259860560808919590066809875933623179170740109045299088431816071416412527089331007957883130628767092694678336138036335152701250099491898505452436528220972350910658348466204827954641277835047958734859926970380437277803854382932902357640362842432286654683288505106417457177789748973025421518426484539030407211383347530479949285267702661488393687787545235287196354921804287074655359148418418622672944067594504000541663377479118856185628434579099671362068474860809128937787522033047586770718631107766764263837193812296717885343985379942438262712879655408587808490184078327724416187756375815399797206008909966563370971230515449937540353610995148905434716175831078240063845019799820309862111202950349761144683225542039547097124612954779311784286885194253821527417034254654595434556592215026923702048081101425952603388789732171477234599211905884198426167516929805161594276542565851066056263261976129786751524264194660183977569658195855652271365463055823297964425226663085253591191055212014254926088310510119051898598516411866217970138361974287421937427006615786709984633276710499142339360231454443910661641963853414720710162645227081067631876058581632751025010456297010083293022211497340869562432357914863442023285275719853541721622841116455219217786330196962314113821231516321651180544071987978856590648376548095382559234541237306529827356042570485220745727924209410801864994432622384042963939200838075333809893764344232339861820979187948055831547932553529035964858500674329620104308150282072377385616229369141907897100515589454905320494115396725116929566438436693007539151904309124018564541684352379505744494390902579071262425433776995900131179249855544730025196083247546061960291764036755248073091021072891451463788440625777435859544615239499720514623228010243632627219804822139486087823998041299928768187094512806272076854470907617562033248044383993660075477663581213156836249239050523052143764565057138737802561866457575454678056687965554327148317968568038157819090706417176129949142887289466199454598909727772235882972285792607929295871378134066861840656767701851688878717722325122157792857562010835012300004683423811968609231153785389963516864496619913291311192258719948963178674181584586903144606614226410361477439452045235788846688092602356294223675204384952375251880318039908197677088981586873144665838625904980947147758623867493012133102524025481083039253423846266646282701912913087918357976852734368076241053307508816157675966603332388066387427217287458514023159225342476915829541676661193822639993146255175582271575135778064112072399540147328226292609571979629988803195479054157555829086639880624671737094149247007117359933532515564133803949557028755534676974297264028559720846341853008428199477732673874314114398902512113370223732637151257527948767054151196929843381542455881874485990419739572931426032238528144051578941506810725461750165984501874946391806896076055755358662903968027538489748914379257918313341397810138942290370576771892767637895433830198715238971557190461899468042688161807009527544710423842614323915502799850274620656485753901085201525344518034595099298222257258571654274333666177799836175845578518333978843552417728367652534056909378410081161261967667524194782008337621856890046386707101952033541394733107462396567603313700135038401704080360255203655196867337543802937114398414539837373343410238611637225126670946172818713893327507523172552071767516944741293234644104956807350644553515706044989460379199968791729438741973349764370333555134005655144461060882663199144149735976889741695602572207661184831667482888850849436579647208662982126408111258199292008579946765798279377251761227462999082393230680816614918544628317614845887969194868849284238614407965896266340956149548573768268756905572253874269628974630917005061570585811699571502624486481311640407016055185218996883569637067461882387794630898118090888515645596728980796548304703092358312982080684106415775457652266521460281525324069087542281770697288324708507736396517836449159144487020227466213252849665047849615898766244559825210657911444570488554121780180725051737538908774423930537500759350295987152773651452441794168067574299438914149829122055510230901707672628794982139700253945612500923486663420739216663330726076839297988623503949044885095095624144225395896776498816664567686423150701529019777314464403817660742985021672472168781446047890557250330169171896149419144804806918671522519277244845615829106111105380832347821189973128079710270810815976841382255654234881515971568471571123242471962608614200425886328003565047042987924933985139815336946673258712097607198495221695525452112206273504246821098693080374329418505987414915229802613611639622040311188685724986822471988704594248736249260242901658952154858074385974971655135153563778252165602956468184015599261484788264384024996889277968926805276842171340644246321385939343496265508651737049155089036246403684112632318984193832353609163714211419435250026568549154726315755823541409479013232211412292742211026004176045978508020451432157242337962493619663720622502859583353447278755765260978758647186330842470751260476070219266573254677337364797897715478820565910304469229069055090365241142327994408673880374331384841167843844119765000027861321861467516959078819346077619894063254195845744771184741529329470548363188559331238723848573506374988264709327949847030365526541373287353497740040060925148309522685807606679386101934354631737619808862793992506758179355572749107801230859984430724713457719351933871034589614143648013121436292369843460120651892734351958659997198014877744422783954751812305130209414726330415093921418282299077686830566526217059348448556690549288294891609257907493299744448196525623869540506621094256441569571863214949999678920717816603547351781180850123677316169798006543911134972998290051416128228080240434377698041914155398256110240735116691878969389600441001549345162369319247121820203685938982996639847830100925040916827495200249348004883917915188248321912729754885809976683652725159149909136505948273818533556750967274706113258932492967716813358960388052112392124063001973972669386794149196995830915096302058883798885656448040949044434466898240837099084478272258018462438915515967362509812637286343139441583012391120557810792104762016785955510560985320788981080199377090206081169223236234740109997270914034664436074437653872285341826528007741153552160011249908603974381140770218508511550759305966117408998437637158727197657756508793253601055655453855846865870382263496973774642958910268165163482240446895984657257195344350345899857784290703302538875469578250289285735448207619666667316801908887038569087447569618786150475871881978847019497582411169719397121364623743763726772105641164598547675861940099362728989511364448067805635307606675288274972852774049450446233572357269943690977319899681469079483713545885399250925376166915314970053803628407769344667439182151120843212329918763291648205507648794584129639286293581446350011695577818383223626979304379565347343101548066630997151175555611342417057559330107709522168390957455941395802399939383081999739778834339816934425403210472751255599504813712976940674351014153909529315967257826152074238590689002414271800408536912029037544957464420907337462696905457385289363825613989311656421290515648628307887933889063005088532372658501309562131126800781931970105090344798768857947256244904249907096947057272755890569293476907933438177053111266947849814743585523772014612843607958081833985230813050583606651271365636521110301631345939392500377369200830229955687815150579852845877854979178754713123780906701420385778415964740043391512667144187395895635372181366146200855706250300446110653661114039804860552206303992277588915547382684328417103486187860125583944170997327188484025356932522918704879851976550801575136578679133946701292053452990841653360445798436013661230004658994515878401186784473121788108450134826055889996082116748164516158923787566362163335191737158877984820435877570563643594598361567935278102653771793460249035587229359532292784585533759608761013406157005033798032510658324986879211942026065714374645901689955985272024009748429622987542449917600367644848683557540996288974698953246628297106237217412346962080898104781879281202580620782870835243894678562733970278293703485663003259237432887402530606990803106893254072589512140762802407311154114037669015812523453088463253472298384570864604544346350198175747548595593301509654256335333771455065121758475677692051286712333019165391432185692860762869930680691297816379528496091569003619298775993205258420498242484843834440450164862017751306852096760070878340620566057265505839305552157827669220403735672379868483258967843762997492349413934205155987722575497135675815571884261448798022250980493513597922654566003461440994755756207409443741539993649300144505973226411798592468783714974025562532793125192942787269769192677541142697705256082748484715375661313379533551071643064729225856669263685845995336777333533321136090958290742508802363213990506069991122473732105710144713186014295369323033505646352480767348909229918493279827893990702914364375195873991268670934590566011420490226422293540329321313047433113692690494853263748404380557512222437351461988354539379618286472049331809565646706884639538372765572606534555526848657494110896145251458956748319266845373970229273619189295869189656328232215769374054607668951350317450523220341095399154342195819479760533951299275851155507444868977351886098156478488201470285120239051830336827632284333789843122926844903193577440291488970906437910191715976404104088389906930584010430770257935797967346036837664365078133602259553366712818903960999284383986907268070123147373177405901842934779951731421892052224347032688239994622837488028940131693128466746290872956717746103944609516899928195531319671953844162011130189346557074712930260818888006871547908031111060602369540930338461013893345840675874336708832624887180517358388796656960700459377008331540715769841907289989248334048071618215617149799057552653906391230565587371009467262973308535398311249655804567382422671793592626324474130205339856842403044159318471231992472451547647877038326097205092721689273468238630523540008456218581591688535296848674307304237790297607554875512352147436024456316551876257514955489431007040590158970716449083640923081929595666710632105726959135733738346426082107125988056893416909673465858535951279513589768239502728851861501961448357487309220732501127900458856223544220042137870642523123436443808615840140720465191152006119129426399246076832049296507728123385821544324458751028976955258595006386133968704456003570191807251110438480627572660873998770284785865404209346563756451398382446886663024902320101011225860386423042641341313328548263996265655419037972194776680569662646193175712831445466338224621086625819101110398387483246964835201698593212344642427218800450531166022638704755048517126149291938797170786565980364156810721237380920496733153059991045521195998472190806157891303785919617491605713463537231168300330980583155876762928217264967255838360695435960151959485912150464662604118446401903304756583063983544819066430550464667444614005868534027840948138714966338295089048753620145361136605080376462794627436617970223624370528693696662684452538382232940217173594142540658069660535442188373763526138052224666995123531577447563115429674018726874037628498217399193488028525012202842989234116307059188825806742173408334880564824197531033839459388852533335323930208219208954960132695556010797330564203785848504607992232906837524482259143760945332164836061449914105755036773418291891211287389480101358622302455474231830502800925927913220189504067365159276157216440168245848600560506986138823460600209315589699978232281714615802176784862616671361275212942713493508480858260583338545214885237602739160190557592285570945172981288275384834302565416766935096353846358657907435798866523554021152756534393183063720701325089155936908864151755337661521757513209108422676715656529394019845945770577616753800829117184010690485516879382410389647600540122489280467023514347966030653228816805483340121111981642850024187482683722020330049757168961209234021934785992123512051750565119904391846131348200490683998926908505296189021076349893897943572100416426372124795262910354566147997920979010763273731514795685897645990301394763881693962629316828758242465608828301993554625372106736979792384328897979722294034016010569116806800287813591310493328359417640960545080472401757897196944982086542797763204582732585011232009545066354793123233086384965891332420137420913959047758140761454364381727501110119018704469055967028906760977973589405933275322138903282709479104060661797087208278261285917215103091623645169180213189925693268564935681097548579810045552850249372084865867982271894021284296337912742326998293834226960057611963424061054636745125677099752977781947680739983965390480562047492410780798265952626674133454218448515950129242663668403092316459089268911724263246110715599115328447190512024488568274068926846159586182916652519264840205723752701749345917044677195769289556798954323748432070575146046571706072341304543990269654052010606767894655593121887717342675391996919569381112008141569369394791595913356147791018330793204152661409612973714149151854589443449152550184991555925935135183749151459984170054278378905814987185611264118516777638274548625601504167191365673490464607168701499159597390963365008570115542687073484008367309021935766669060634427585327301615940184272147168014121041040483293570610380292276375038463400503303789780285609115634034462014170305160995590304319442153137175419112383689540930570524172245804523308417493896879189532807503615455565194986194841710401529918072849401659078139598619733443027433086310064807566984334424752555727276934214972085591898165122165334945638099099508821779983789889034124945684825525712950432324471495355957831617865451138939505406695109992408976016702473071730464331273825785395840926649238312367600447248354426757987748098361331702371559266828928511879440247810592912688548555084631815472408275081172110480486562013591676102758240689933610336746648530383848520337377934635475356487814544670060437276248731366857978003845978243576866316811606702444151326127916615783387323681879596369620842021230504829724760461465821449205855196109743632338526220771345921124696807181918381186644413722575992772310558958124978615628446154248362053234485316058965198531800331417558010093148504859924293389638725474045981981912509330861663723392150438178682701468046281387427239428324638558094368651241156353278666691047329193006188210341084242190944608122226567947673763599992310735589843110600217274121183976770435066718405694309365439784836539597751500405789034059550093002005991810904075325547998922394439376268023400355664394304246557583637927838708021227651465961873501404305877366686037032136352363194726604196362577932068910929396812064910839747198018343427816614299506638261909743987818485787764461705193655182857252477816017959440013030321257463330310060369988567118661924074062929503223477692115361357013030541960873475233779881146709282587199650867695884052898350908248796225659127773399304427732798089888807792605488606575668726727027551635494134648365748625772444054072650965166044394469971590096522601853225767784720025812438406553719798297877398678747910727735110373561501140266212324219532688413731183335697502648849806831582487707516752975957960348362024248318615522690769803033034540638499200869115752841859523830496904454962385581017809175518213187772873294975713195818774352466713685548328147346958452626204479453563898050113819961978356521001798137750170358976454649342056753742591875586611745278265053274242951073158029732388275833205705750286142730192773099234586323909153893951593677285954973186918808836240644507164123619521770130273836836593916488873273628194991298139776759285345241785408202232689762286670316694476522472381959940673372668034065663047957880081790771065399274216031713514936836901262220498462943971662778037255556290228216071030183206072180184771753032309596451854217522150016850495110847245114115151505090653978281363373297338720213806281991452384168560891598877148081098627239617092456543611983023289434103967909198716149866212230322591378485196986075770704354590063858397235618164160151354282649001997585381105588337963488790120155622581878014399127217166091238662990104898378620487302436908983508158808715865008915504461310585926039606000754752905827128139559889983285093803947607829696586842180044052663051058360910936059034531458663062693688825933392045368015502143835833749023167820659331738536270618670528307375208597362377938574357199014925618213111246617884835987507477564681160250555545483543073394222651278351277324947930985844500957575420043036451565978034738487243186565712302899697116859437257177668482386284500469019666186630029187840944519148202578955543145731984243032807288338533544871348324756883190627894580250995324189714804270041494823488365929962143172556633161795983984519580595711748778278568203634077366724640954850393317517677997074620781680972442498246223541133564662227667858824437755027032249077054201551893092221390544571462696292976965327917071512519299666068810495474571337562438858009296799210515539479414498206825133380264348657000611061403935428667123097213529351574236906224068450714266233100264377867447477400438005589518895072724082768130897625733159218248136972110775503206648666688465729544992668316560247891221899060297837609042056878525379290102767293626895524303608032409742341505689385947100173079727703569717544501248398960720462276730147106089031227883583989886628972717514803240859218646135564974310908891127171925127523714685238461076538160942701046909931391627546213183057932259070859236014642061246125747998387603422798526920521525660332827516830994714865119785233871006907171761200722853689628204025387838998013945020555475487075760885282246490847768325579198275189212620119871160140299797257654106869296561008157926109896699465719859888356546035895118427738071794589713854517807513232964699526399070266905709001361082809233207342358874355107430154572694538730695985868508080873100766992096543489045506178128280648738293655467333301707263833123896754347325947950143139127642187072317834499081154691497314046037032095246774402654612096703298126648205128597604747254745713044266338604722545045704415186797554394668069468335619298862458470295765989586273157110425813249708731813218683835215529947063191351853662578345502128572282252408022952557825829799353384266271534043327502406406219247876120190924971919584054997020291271149470110031580503122166560637606866401991435369364572943362656619443980472708397736647447255223608647500937167659763647288344113013189478901460924513526541663798666281077639441697593563571065965975059892107053039256223199769003153252359919538524039496761680338955116081347605001814775126402690579578710736775330395011693543297320350933307200877501111655803820706091383946490352302949118150144559241336764096420688998272427284088721945809936045273635665494764187186299731985662057550168580839928527675716436091022888239258894427412486083907216585188722129577851701122504459047293126927407498617480541118841409587248265573708200696865095174014024052693688085410795327100898221355913347133533585318175434734248749964298851479259164723979280364263259993837490649418548432963046080203832545537793847051465790113006797241308972809283119532353303347412733816833631562350521266786784296538380090223179174440664977855041056378763166801138421024701476036811992912822063149859892825024419115367982628984999068493046854935571958023253520314933484124846482700635068150365769966348110360435388284714718570951596727515824189377924686362388296520242565944823305335127059014514017436423378859537239374456081754117688022646371019220568174071747737916829991370165862025148162233588734420274858605371724334293124583334893328260105588189237718566312567144672190274555139169051848682120900723718498118015584874895061412104810560923803732570357265482586244332663005577308036450725846978764281478063815622019618814730337138868640020646962900423414731529904986346018308050235194682127971310628849483922546361563094702303067711705429205028908650663931942544044349167229508293042728316570379694848434124165895288716008695250382988744708996821514527463338482169551340400557296750243595932932309419131519240890070523029384509354361547233143918256757824713628397371076148611502894381019094425224035510151982759259680621961813514684790798315954373385072701094023872824415462494338022891577399702293824629787336561687807587112567660044032858361094932094458117648137184300230976008067896264696910798283523738593928518838495033306373718090886991294229790285684861304319489295754259071608628410924823294240812507130983686306200490230819817106014291755157214233890866123885780471892907103863630052207801066800702169687600637436113786598891314388050996420030966871123998635616986802270864804992744275209393223918169778165990386912521513208058729833901581806339074834177016168306945821406706797966882035275738564518327362566485875260695218920718155848296978387557983547488349171216543283560613686933342955618358101978915389973013243391235260017705391048622399770259957968804038768738886336946527311658712626195853157280602110600079244553201069891640788006998057403546792818625238680111235339656788134773333647606053315285691817357806950208975398516654895987369002623409663578544061502050241679183588796644353374300542891297168580498687467496952014173278207908501397463166350192103348857471907823218776700250291703781178699652138955170888712935641271472045797711292464580908153729214874806952768257014044337170647435112884163424923322523051247216079775877858656925714837302189830114882601466668509303162236697440969469398072932266503822485218439194993931426446967000170493594154652940191579128989514868573063633870492639014705962401659230610571946934084063787275557942433794617288948438851919365899739348296269267497078927850245830035389688515081419086247238802828189764333634819473629330317128585331282289089610517451201008528674453402006779124803881564147643557632579941538523379905496645254678951187375063007790395975101985281373141214778105551156614157811193026872287158840806763839033935706647987309477467921322277185225830266968276302857492828184321576490773260969472814921308756067877210657299622958094045221095596879143749288937441884335364011387006130359735446747320329149195531284313417429225452536307763410947921326631097121218226005281810964634702728781954713258213271767299837791055687451580737948397920272074444512226948846526780854698196569206346812688406265675129266261964859738008233390232714130222037384897739664361219765325151176378995486952504890119245640887759105979911183559189676215124606947375294176746406219204216111044487925122573281889255666914216409996390874663675792352618029397650278343284471962532860646400921462504897560578594936842159880216525878102218694793157151289342642844560059631724587116923223365668682475685489035625841911537844060527043521397254524782197149854121876625183493078993621463495749717450802287140913783196225892459361646686460557433372339613995717093231017422675640409007278197663095160599493088456936462118566909062662738917644619652345208357133484437517034702685198296337688917873132708465236027399259413692529114888731928146292734275793474094952331319923932944642070932351304627388310525316546820280837990374472376843104276101871101613889447486062494090681494639928086285191522898993238816369522942678798274444933104444389991891982093573589140479286867812074378640507439474596360882523222007223080795852889096547028077024028242346868147766366019327154829062661861310687408565239965954097494646030983807613719310369126346767409914637072423011670606080800355490800342973891912020467014515201478569040441133330171266511858187588114442355462521253973231551521158347800140358472419917679189250052523611293905068300217852750053267557373586112093785748920734719083350288313153476696312368464847332458735573998129641162528787210173667213571522502489838159656565125458541910002152834188411118895272396996992514983745925690629714273593211350672921195304832678264846617283461285003024986437289500376015354652939426966175031090949915241839968340768500796816398718288609682605334310841648656505053086668336323977948122215927840249276146339976357976166757983919946649255909226203976288185785143381091772429765326780815926589436448113058318457001014156639146807015578763407435033400903697346129342483952605306765768268104387794791133784924984177637856596159247628553785588481354108329572761014877054852388558591387312991175220756532370576505735192999251162475155388679237792611317234241053245317268051853045135659538726602160370526918833637284981331230728327142988637213942442210401288854389491297567523287743822030503026319612636444938998129622305967740977905174346987115442981319646826106181610694461052194515452312998649890352325589990385598048420595832486554227530189910660759558828163844216088901226255243093329929367575053033283994260058854474814058099786050768491401034862645657740946761760241813344872998590954123995277101729558136524429956308690852280790426332643098478780605886192041603275770459388265831376258127860579854914113488346107564850832165305955754140763069270408732737094801229536304362161724915344400822514095873548385844041727700045073722269450544627978248683155433961759021051940315161080117011751815776336960961845255507350187187410281107674014991632954901356013040196074434158244030954706571266962910055197271357991386604897033112027749261718670643861829878933932510190318135661128717149712290419090669121124300165472695812625105765524102642476777619150044271330499471404877692724664549460278338458885552879549124340589535531126037200459878067898243284348574111297287296731888954103898184279893658064831833750305262491530850618772810972197336921040952644431300240730267390654275865191726385394853608625994106053796875448102032306873427918222351586694491283478551810828554239841499722146504625567480973552614500245923688250961302759137179764257831201302637253027108127003250701383095062930611555160225688681796490209056853728896140362692081745971298280478533477427820397476004832533412220118965604852873322724581486021143861759897941956033529824266670572159189041540666930441396623217535054866360487012023283290604689157925201066432245450548634550872356793293469703903264434344671998826417688525626949053866868198938799269444200555075517989784427356273973724754260282642398906050658318926114827600772081254757560968690477834044440191447418137248714574420327438967662180595557885071561143719697691645597392742940992093928992185684258014764596495345690135374734604001421110407356745960739701818878430308881893359018858706226687165369677024928410719088469242713531834756000400054496871164995850844287457758007676042433762523511882340416161652259735655968997524782966998982500877485160870034721915652150356162369038542546302604842923118335632497436724722674217431271160233425449662628254795721044799958665087497841405090915526567097557614664940144395696066701458786099349515750884439212425812876999449503579241736707187124230644258199395749392867657030981154563715527624968229182061402364868233272110370879548936958865191288610616387262764317337827269053072328663642633157510220193204382427478468861266782863442272010980382300454146304834136255975558099524607992378742875529173921186850756688131482360069859473794031092173824689723736862444431269435789190537077559146640705266680168639660645394137974224896611194277547287429417051204506466364481744942556124943594909670459190228848196361274389856083426799881115014659599906404169595742285166165300395441067136825415373743671965425276625197609521225382944578404823853516900057442446772871800222801540154904570772571892512749677139396499425167239393038689095589956876698962073514187199543091338425428693465505049527767508188656055094428262948912468369936980211861989957507859367313428776800786837116813600069199091808074270166759034560749635350054750845081730603343948984216224134716674727187425086862382010556184549957341174239260569550710249902181441436552808279548567904603640213862228410175624265201491692994032611815227966268935897528504315743924776888497232871337949665338455122977566990732036235008346571728609830793633375218958908204265403905980901760800224866638153272460641054894487046305220880637918015459275815326291591205505795139210151239691197870930017604251459490405378214439172387515710472074581903424423248092124047169322272117969014430780613965573060570836212064377658921140515643413064174547823331189793567178835778185987393020352884295756109051559789389602074382738740839062411500545185565634228614810381208386223373942087854227096920922106212844581760552262017457669679967339573246482217830751496565120067172663802552578774385953005287776656011176749552160515320330552402032272921084842314404976116069134922783311573700786105152079664123036428313136074447091948161535444887052841571630132035951134107467481775963779760271345557810478053471547580208248600000367501870204569149731690567691889222652171643997436210308219691072903362666761487000638801636612646765231683816991206642359779710406813402638729284911536297737659089660604141602746391802238693778190370579287815599078202594650317578960356753128816984399046390535249967327178212104562875710448533642916490855385649165960359816680122815201838997585964254335497641035045461563183323661174221753402735928987502488456136035083973779871219464452603171031207155486280715605969852665228874967886008063197018389056584765959880086400940052427412080947477989197465859913609681787078399513020212568556449704608533309482056649386992796780958633183302838800400366920254166969772620986606606607418990891938846030528860018928757201349931960555129228924442184421025303227785571946188314121519414240653654236151302459725473026751551662520913015069460281915106799319516641975228717637810927415993413619778928179132536219491757060342329179175369281307057888388370411761635253316050304079788959306462342462726055179979881673608337834875337267588286785799626840655655174908487008132454594379609435108614313550183288034532825361055048382469211455968238380775909065218897084594155009450575808278718078530582667794057219662912141239869877953021873653518767501235434282971204624374986313801412278033674561611559380611289492457809092475940884551631433943291722480355814945398255620468250619085544561992466434522735324249710619529385378511064004100089402487132222482704051790376236347741637106837784964757800222493656242111953366339769525238786341938489049660778719625209453903599467231415949868733040310089891481755330737615776481669146190182805418616503343921612940872118376389412575630057361906554859826962126032964678956034743788741317032031392527099732507654944812404186853801358144091485209720648594039776979960644627945660311845380873217323429557812991455495506016262592724605735698183462523937407740610935683954138115886169400339994176677066616564238701791776429690786647996228091299983292222111839021842297149549263320520111840381371900007637492240409810694887743973261349610166956392845899112573129230277523653580933155225977542008232038003221255143192613387270428754057327371082015915866775530563910096666976444205184789199147252995579467741222604814624891634626129871570220201147466882469896270214573311098022397318205058847777467933383275057627093952706500028615808873402213841445492995790753830945043952404707537728316050012206470292411324653027175091567129144096089668266606183599722377557139021908836002415871974571078729666860011409733089643522390212601810334090521161962051112892617671039679650219745614932924110012470223411120560977040512212764946018413894829277082634401267351753316824790808973524293000686325125850616955063559097140350263094425183960133449620905288154494679190316772531532535506362269911566022590212311465355733240052966190269334703450193398192818231246215954767394159593028826623635579531923182484348442888950231285930734891357787213606427729107455058489737879612809389175372503028537975335867262868143143590180489507155632751230271577940809389169659740295512797882527139980207285361368056249701809422324866979584485905815079100388160261576646983249986091937373899378874621826895056742043973824477963584042842506435111018908059960751292873415234518268902450119999180644049065909191360779554371967232884152821381975710622192390594845760788987238273192616900812766589280424776415484638989886973695456669969906287906532703547269831586015091643214065253353464601350831076299982267064148286172737740830097857727287681129629725709493450230203679375384200953197770672714826529673680073097328869458292096752897667314184830646397761059091512192287064333238095512908701971166814779168518707248399675305678191543241027159213205507205607410314332789262523589064850789865104742638660284812868964333522014909632189697845395603881886963094512059988974431213143118185850772337761554796574254196090533960414448898749671755568928812861142478103267576346378240532753045019121426030546053393858516976405719469357173490612323084068424992663873777127542666197177355311869222436472911580663019183126858732971158679076075839236912415833568343780711080062034159639962485914674423603659165289690620902721069865866237780974628237924157924129294502499757171719575304447966347176733488006637865316239429116213632898184318416430766692073137080021233935461567607415533035483070506706024894435582175813994854736397199754849099528132678074685054393631288368562051754455408949771772312521000453975338300484392004392901425752523396172606225149455585170389995575638025189103931298192026320673298647122575318564883576575640740505333322568836784285110916806198469252463443293975525466012966621322243905989236721743064174319971940849555265720217169834321507837450688020440103761675694899726497339466677227236682850278204710014806860193018930481513772683059345378354238872758528341184414203201823785083619413814202950064449435822267337884342563163109487123313769234786002752400963523749878473715826943287571965294806032510762583617147675851655731599772092575975912362356877649299067144720471197558415322550196852018193802716697019080894761023252577468622086953838531951660383833509615262535486030721913563140435266426894805147817711842953693264073890278251642632324703639791881085571732435607537805362976646101053204628413819481865545804432109845843322997100311980706063436089739137311275258512431253532895549386655240898137337661421037197180372833292975668292168533166637985625145767540037017689692613112440695022450765098768933776906271422321638907766532643734598877703677265237962608018963781429119775257421726408186366737236204780895538876266603404425107313437780982917222064411910301067299466110155611876741151180201806863463930539115482118405472648175247393889662186199930695102717811495174147616311377635652402607079989577077973571487020173768453562095445422236063769527622901515564085280275057316118886222693430501755762764697086066268740030413792588671764963626649795387973267624108191416203587011829324694116737335209155363563501793755839320356991592363481819397227723419424537274347568480231038304584268421190546858704432272069380180737880483115599775091434535071850498309715849046490616504389596890061882534348748417283837605550165998070851485112630451128670644537330722765208951267273422155053369777974684705823111621599370854139863405812321463056137436594329444252527352441150476327128594800527774470018162729600658099198904858808334323679965626227894413614610719912630466015415827825451366366173911611073933191024199415802451477275149798723820286666421499378813940123291413779525560538913113348348460539348274420573361329613783898996790465588988968552092732449707966717183767665069975116058400606792212420237229972376253435375574956267151359603406562253803315179702248589867944063588180451010669417929910569087765912795392454260846457149996769441603153824435589147552306769015199623674041891428377732460943425523918145448553711254427755569611333964053467276534203265336491245337085726872760091572466502400611835526390503053013494475373842818077810507780776991933563743741870260655033655168829414353277077100079532804961968362362041984115619576251430202918263019886190531745313468192321593016010005787850828720232668724483455891919606382555043314410884472641018063773163587446628042232954984617886993549214110570106241727538495145798275901013658946172255867438717035741327285149296173181920610277068316973797460846666354212210064107074149555888153897457567470827708136298068857803604581170227576475004724736712534231017620909714145770799743973857538030237400802427996369480759624480979525709413820594878187381629780157454366010326796152798327238882031162009037941689642306901622975451725417377957174993272156682949547106408435399389189197876380153372930776024790871476066943379912914886286425637946490690092139509666529545504980064925796427052306605241488683738888497790129230707554998515323545628586064506022728174732909867547291332633370414891780221347924135458098390045797616823694156922973902743934141976326707390767151969975513439407616046221074760385127502461784505851693043857900413320282096879553350707509251219366084710399222338953842889140039546945059685863406915799530426828235252956626663697955680412669370842749007948779817741111154469786611001925746313237394510888946852519267160302236672300061006389566641738544178813459961469641005910975867903709020689941807188007545517195522655194673210575551595037097888847508030776873854679658844883196908235048586565843879891240962167561326565136211231509423574792253650496929313133765979331122484417174706620825906522855060874760329626483480445393882100399495238425488625329607252081578094049044621663918379605859656056893545565088346298647309766773082720582344436415723212950987384121498328265827768045230504881322716903809766005838942732195120014310451140960711459996707183184871683330981745360746286669255969704221661955040840062782354173216050491719291557064560914215070399609926603480786784613176750894802663895568595890808430882345399858820626619150154218552298201411853561459413344632684727841952526675401150650187806717649040642828456568454100768463797824938802786055544299962209534049866463658840385650760572215388752077043938249750934925731826978437046942994091089345742364144967288670312059165235727597113098342462950704981753475565080648529073918740400371459865093715429407142218877795415921319439055587185917615829193394794497932915324647652513914945082949221947517330505180893952504875898841888348699623530632883684573212192444868753901520238958154637977055168668208849640421860216843988863525390048111101563889563302403116482748627964180457547702947678958833482534524860930240239664105544774572121697927461467722204247150062314780725081232323092080397218057742498285255330137791765191129890552305477751791400048638232704945418830771276513886017340114783415201428008366768782661764860845989038023103788334443742010843921618143675143744395230241139142811369470942739617028408651153319096498485784130302243321008227360012147744827814033852901406707130478462102288904035320289904031347166474268651172260794930223379541662386610141894557637512596522215762145954321896336274474119264736052788413315648229762948724025393818817426600706790269182052528283499270088954316578832799534902110726000621772289270710513524770617638605332615885188449557331231019075107886688174939846962282821840196978807981945919890419726766634814985079233961055548622587449706481026107526317566849503864356040662050912769466198510455159191273438317019552738667937896580032291390302226986862467515183118749447134780151588858601325578920441297467986835492487500543623881383503626342851444309342283064205298402549734511635920873379706036748114726298218703999471668058345722994689208596901472152245174621831850843211190231911516956467779911750811287935729083551251077128951190817094479289284243799413438950289289840664058706404671261233360657953764051806409818365760955323031318359268842323495781716184105719494037801447734155548552050475482006627934956737566968086642036654332767272892222782183514626982273065567270175529444531449527467969630982817357749854454792165360634321227468086015986593377993334740488034368137574514763523293099342909111297781313589438618822396572730103778843186510987602136742483651539072614503611729934495975154411931998605771844839892159573215026767893717235653440380120630937493892587946987083247423167120323891014019718976745815092244667553205546018060752202007464032943111233893469015405384499481064890142997498854594452859617272530258887718762285163626681710827113005703936059545939120589144147078311515398087151871090639351115205365124494451965413710346011101307057693700661337597287907839422038237244324373776156871980590903025781893838717245702386475132941661205047190974713446380319854828250227639036682585323541963086246579194924424501433848612751331367173324106369889773440012859626967104717487484125638283005478560751802740304446405588020613761036987063440537391544171282054784126291736141145441454056955408589521485081965769899098833979374239241250840521321227927743813879062178444490387438556900954285612053797459832393578070969623305799569352497708716337522816973197511520522370989810726945209854296451064845196771795978955211369064061890196426438808490305883877256622446631160918457672322675805997575715295625757109147406745911410186402230348795172235579898209728738138219351686382983758583645010968845462857811808213940044010347788834696096989392537861826630577233462246097259775801860278983821394771640529465316615890928999499379881002807964534167780973358575094568153864364849939373410407235345095099449473931137091692802405538678458800621237553688380643661829988765786375523179179514486033943339305315945291985809034419372773509070158300967264872313379314110290219809231203725221330558319061231319988043927729482093296073938741802778337086818085593685099140133069385167198466597222548937924869604782656113475026450819683762065007493511573993067999187539252649542545298020668511598885649978037294904998884622941877241929660423411862117174057778439097752900327312091397068590486675156466495591816873365448210070191742520156403134220209125306455600773699769293997330759008996992698691160351569055825335667518572826504790001623001955973911203902450833997598731737068349077933223564185127937924224704084279265678880162015834583357808139672525281708619554592193436701073522869313411712546474470836392309259485435561544450766210182667937437199594030374279315787637999179126658648436554603380792326095940826526984749832057168439977540139832787592869201513008091677144229658222081508571762875401487255811003859579899650286372453235510114570412853866789198631687639357794592715191169410808402162950974770220914228081294744383222972750462646716438392990360900509319353780192885721115159778115591799891580300200031346699124555440657795173314438000549566700106518609039152602224397473746731127395056164230764551114523049882136801376296159737789189283070361258843142335275563820585812841378420709783322296728470792358044115450503711303052724144011653319127155316404859136774124137872987644063800293293316393963781324087798251321732382528962436985380047572779954338344551367573661322058086659457511899211683817721190652950067603340954903616205793599202563372816977930350252128426560703703452592291992985025509017837747884026905059759529684395516643790941233594702283232567678979185892571356646115280366637826004399673880484246877012912441902612497398042785769717097374849498106727086476775136913239321687483952122115402804551728112549282338147308947663184206350446423790108808602610004433561468797127011184951572857832044444442989472629224797623931623963253516961381675265928289723092698423003527011157004143427175267390392262534222107239051612021026137468554204220883097158221643992781006346418882145535033729386703105793750917094878259580940095442085956140618576436882051695154961590888746151127522056741292229806677195637751205111751574296901346478344298349608611421912137863596598534856504066333767516056580491224373381281864885356334402950170759569894539570851517919443817681597179416664378390494814089335535172579321049796650378616643138837469976088434108919359997202879097346650222737676085946176433021103857982991794306119586638842686690454204427178687791639098636278110274212214778119583478164760406753892055047612082678590176042523548755065391765848223638741704195956956225940779028211771338806787107012051119942391465559406959642836503010575195542344922171409135908031962393150435801782945969854660952419990326182227962402423875312371267869980153537776981286556100849544246912604335838385900584982904939700368928314129778626949288091152164012777794400355785501468113534950740178663638462168133898531571090684901136612111120022810414136955320428118438285834925472954509957967586507446976805527935959784713759742443222567520400665789551116321775599654011990944059777778728741333867453423242750978641018325633251766109491569772622682461000354304236081037828263155018132845636844712374374968640698209744548355324749441634989344531106358313217031803234125678729826132002052114734844039131062401435592201487222973460587710643601916244733103081543240126735305505121362536716995845781553091610881369208439576455445484692520978498420522868049885152376723857934993474851170073714497083900237018963427008466052168437125933319930235975755735291305900087681066087794019890700323481455949535364921366360027040898449444726573541208337338551973837969199702588420106211466635853620095970519664999744390900648928628244478511644654471927313825183972979256743821393032240237364519080239977776339251816399227399898992997044019283322966899483298351411790961800380480512775051305146256125364935438716158379076879679176322296678966343182932648309623521571531679466903124011773946672735849737956916811750935031695059696271789928658109998738435325060628034788437999500342405868565273570529865822365690647026933277836343251219428342808428184379810943146008249763250764894587928943058381318488804984706243330107192040271730893007895972068857010831433779314303960039333471951707232681230892844210453975092125863723530747921771392051587085864723445895018841684173187435738071371057325344131029276337312459449172446754815979422379616367435492470084431640053372323643726099503257136092087853967706081977198887318625284952800832932909566704338686692104693476995064560832797397807899120016339379285006070857432142990592707232583422926578483050994236352229541890422170394493912111566396390256869353861070557627993355630794536885497289488450908108406136225892435911777406301470616170439672345771905591908991189827730142690653209207364175064074906003435566506601430197602287187795188995758569282976941235737328022502712866483914281984663455459157151158601392632068430590945450985257109532194857927163687829419997626208021105752635520530571103714755669100730781074989468965082708611418813713022808292133434151602483251047571941065213537776466995679766763833157878837386900110411581709842897551180296269018199193365861526768921983715775187056404042726625291458630061008360323357873839112295662690808572275375462728849768089233699068137213052365372844317197110435646499919531464549210370552756847237029231644267269927092156740150432539691254435935550829799622779557868796585139502256653384588188202729060532853050729881241517723766049869121604441376894654140432567143987469690162264540776894898768203215891428652995405844141274517179763576663892353488322717039315076722459657308880452085804620820392986042080632257162762668563801700531004250145900310365497782214653776585372984769215159514734578882882914710167313638153922460534331680594756937788523776389002365169581188720383282709501167568591351952170253251053343105447549717128363124025515023800911646617657398494314426525867557358475103887480926837663985991318576079182549077537850047939153698367132421884883906168542632858653008782909831244852712060333780521850690734655481117486617265004048884084669388789184635388556599890349833196225716858347660574624774524310988157164952955150596569873368215083711229376596013086406525630567988240815130197940739989349156059144124683494089713612957025210079871284152507005597988713065259463953422051409950649821646254391019512109241325445134607509648281572827485788297981683560826351764835654924807641961650016719749499986378354164942508142067394907216045990628881082011064613326192660698688640206012962750434050333130766431212913670598098461012091029000560459092604529082758823607360053120007822574476867494961348732087026087728642071422865519361675824928940029536573070086999485779640008420911269856216995195402050403911259624774497794905994855930898742710308737971826011693108137994817666484326161399715623102360122511816209347330179340490523180981894626237688415929093666781354730221621614849023044657045182442790600079972998269970301220618442892052212748400397347610122361046662440499785046748048402424403654581946292949538081926646000536332852912795465851611842681194925652734130863087211455525588686462335919742459461949501752075977410063727850169610326707647816143585940261988980065373024116253368265059248022621776114300719626317028723153461224409727452384197938412115180394228479696202074984114336816953114084890853941868718527726051318704073681696728196878739258237204654945218070986847962658225301673129929449648072609086493011131975466116473675026460542328004689262770403825802820955403665572068166537230779598908775765318698511981605717208400611140944494911058533058310689819593175947606806908174509114847565556343503973962902923462663657835430995904232455946916753884302736771049625882310145755949401247613540058495108161532056749845072712901012504449691314793732143767945275538753896411462128496290524497124827465109600988535489030665661530072632483149145780465839348330163123186371189557472873950781332486582221617771150763217326889366996475188357063097083818699385762880570375530719473355143411994894056035088420522372929912289801711458860941187237919136218158058255980596872144238783874731079658511722392270600798257427811174820790804575151731800834624930577746280815950173172987389146772514406560187633064500856588545021113205656251449471250416513303607152016567817872342265202122582062142217795167074340038083891173466657398970630968252846411460344481419973476768433677545152042049735224837650957788073471243103366940905059143156615248077789656933900408169523832856688483174987566783190782004200664981318480883651589060185848995902387628994831612236877653632472485956437573972372856739611149155301695645776738536788215049554635319329272932172972904116072077003580239489263626038209869338795690523348289200805626489165919888583657218515420901150919992904592113921905691635312233735249507857908180991924757334945893141332084226006161908387706972663416644420456713925272403603615889831138522662375725809421762580246461415613779722505304576340133445032098759866813273197193328368333724813354287940365709258475600736651428327742942879506650756997290927518116949956159870091150251724138527642973079906578174988248490054859245245765724824204029035799769816746280545593515974921785382129906806248031163637846424966877013846626164191152557061923687397427034834340029370179890369218055830704956672348772395609674127205977440385634295477566427882582728388937920543316415343780836778552732952224582630569256099001113403209850733407012693654269205063971711250689030509955523704952223028766400637055736573466740276047416977749342185885473372147931481720963791293916573499246686552014465762602967762708750843103556166334707442917047604637188969864835456870632717670008870036218595005587423324194836568772545062989348426276951535344258040803937714548585062097989552174445208031111678217595645387065475449602372819595026999303232156721759951619680350414897746570808199877804419308609408703689443170736059469617332752133893928114124235593882997859496276301204036881530611548978174302672945892041739810589244824879922164107005495954546568534707567686673438638642303815569456671743836807693002018141985221770033031818868617784769942727321212160872964024521385766964401371257468893177942844858175834403357984057610458306459718105873060336215415502025833840827023907625488871769272396012100841230759571275293629103808848038597916357090800531720117140537471791447791542264924448780674355870569276665868450893559533131193249178763083499591839777737947068187454375113859306186063375949011415355870145231421974808518077236698134055029079622930279187806028293227207355697506763417436054114153293628920518467017357959977703365140612355626264123295101931226763744150715403478668597450438723224303638060422557215165929638827420379539396582918194030174913628198720278056903587773295821365113438836933232556573742639210922886867185569841267320290153230864273550042103164126819617217309659346600970096362282349791724960522951173083721606030773570154607865980114558554777882502257407177156598544861512518379025994644502560455575922876083058320532035252834809374068707763331634224235938680392250909193459689910400915537991864848333634142615366513018035042232284874612354452789812774540429233517090608550737639232345711919713763592269716308740734455826767805395037511984309733849991553089825350297846580479417437948512606153412062789695708515859035514691451771598794988604954486759228007125982082423135443756863553103736182338833913665726538042967889730506889800863358464800547301722744478345052317197465459323222897688225065273816806866343984228511897015751112300050542321337041695815673350636693359377348555271937120902720136950959430217286944003264545699074604256062308381631521991735963514175680677506882370242540240943804807726848438939763291132312842616388579123154077767082556338142470666648875975568569021488607505722416767098487589588381702028902380539963570227598966672396300070467177753187229482987976109812850330358288185417127255790395772154230896152807197442456319256102569709357272605703833048190689670169142233178504493914025017888188325337863639690625988077422045745533314931365773120727847027978001083890055508442702520888221765403331702335851480547113451695232081915209421658576236946177369904397431847814804584192402707547506231211796647142614311872598536563369053714851580613026843322643943492352725627043626835113149576074627572639979217919875684660159576891711777804955029411786705851366718970810649505569337249182773349654960512635872518925301422793757734466517211287965132682817198811252039025494170202877835578364626844493352144653454559769939416653017602702850111535447042537658588983342110662397754283549422958736452983261910378684008922681624534220654678726705593973532347339459639130528220218040322056369310206981513123260856272785166477279728906464573496291752974172110906902898224030915158014796773035318122088369208381118846269475743057272799369226865441114606598564173862548207434741594569721204351902355463316620572898389642106090314370545253167242575302212252425743519131039207537567638105332888411115416669254150461445460595933171341685189467336912661898711246443124954859504485873063440738054889655141130641378554569271552104483066985045130993531222377531818583949436418938144199049927630397890822415465276671143152909431077567298319970936170981446536484494636741671486229140630149648215702475090027889912652927731642651929006555170009664487144579864354264486196969503950744734541008612663279007082625275486861431138518382179745662888751602653391313914852483388513076125175934111407512455312558626530138370674845399179537709976394031444747906779186800000728715565151212991921207957418009987194295453023607593072476809423417633789453310862766277992496424716360811508730584263265752734585336637720782102347702519500008240385346901615493131366236649581417693263398505080093801863449977800519797317019248180422595186107706961014928615285478270556910864282276577821505578669142013649419041933716075493267804821748459761160447828989473035793337222977148221229985405702831130678574522960563009682973812675999440642664983792563415070070900051704588217118162082457611028845900144913474451556425574475020855699140818986608531958960680431397365313758161731842988633682292560123158217821544298758757950526563749540659867688356212372208612179501125111068074955630915234480680853639900846568012280607905468846238645879972188200401895422258258015418740170298564185007656111826940744147023648930781912892395648788585717185480597357931021531788296871815698997170853861492933871998823063179458109532730682151655251889548482568232488791902012461748552750036076460930408373428712182396377899376595542117287563919644885190526984103407475229327219743663752023405315417293065587998966086894488650775819512635209599434154436146143024429070656294432674186276878972735101061481028173600962132536632679085692827188686491054540065958096641722217064306592229858590328012958904152016432712311465998607551761943345848114978205225870071765775063092707356263430362093527380382942042644202572889274764389647097290582914038015266135022392950121146581132993880299471430881715451969822294927686037097234813646648250483640270309676750423149435712251979624030003451025022884289943967021895636885975050551494292220236055795439389671359533413971695970543564400064783752158290245392340531036094465988566163576866659232760769244637856396816768791088924360098002944001829513392911628152374283561594357797021421290568380345272895641364267745399512026304863840223450386642911465883528140696192752058590281367801170783143334190865648530396085583081789804784306594982892200362978959788033621180111486770176228796652839927460656462693602698234777948952079187757196434558431262566630417017252469064314532945699948919742249680552459536308980936190302491983142531549553544903991346763848621765058667653885063545388301415004216986003241848689988723992454528551593578091128229878508130558893849217957198268825425570557434820298029680079446557052229560120009521855210972359727976649589071308711410459024359835661063758512093354041507828843363095707449263627435075631496393332791751689321647295426176935321956834255623220889399932088227755448834700626201125279636119023962879063464986645720952463589250773077428562282943632956072446870763910618513599552798110871947761481104178099946830799746564102946817429294404467293137846613714691474466973733478488429223623353181332590288851959178660796365660263701778870572422074704670430088618134529754576980259643631300907231943567155708068069113010362406226291228045006725375484029642299812848808913784006934526949451948157999978227582092135091118297223633349580977783310662609032935091041839571307188956701161587101789089975846616190386997044093199420246691767299030957191278156338403223430904650003291923069391537908699535554997338102102308745067413078962640527335610209420673999686876118669194592173080458213673578411860835384576258036926038009728463311590544765932085763020878387151181573717884017585073193686871605050588866249142502461918048780090684997284606383434595510468488262508821932988700958108702099645942578218685005573480988005151760711212193696505214266863094671763173453559211585117493338004731745342827949764792932890377924258233068372882076390322703322077614822510199279628525644813948615677891375584432465985371497930204333299960099643450987995455253313940057909201900803870223396041578576920474856553472298157686567343664818755413794953657448838836527534621751506301939468691213913472256967625817428867683950324747739350797423996914751633784681768752935605542122125289433743526866569757892921156900642935644033983283510574454000133632670984850757005035719721627404018022506266959289606770009847148570663253332670277282829080660363905422775318735520439770307554335088683350410121059720428897059105740489029611458687415993714738277132240560824169475511907465862247401451908394197901206594602281759237380257324015893719426742424302900900066132442823694751943359139477223610473830722888485119002454837046738862478550760577778977201670534877197467575689246158480894155623865905781644358971521588581806017928311892586758817490809038461367938692104324221749702097191168749538869208489817709928649335432570301511764187061534143459420201228090365381539354742554814329679279139503039555486833503350828167034953529420118399214173033526521023180001429646479194747083702761888915177164075523949528999542220528126775695035288536124732593382665689535335459608432743419110977330655658339071022003419478810984201545130843658478405797174527959216243672646039311023050945147503748353411885473699255967334531139342633112901002081321450260505617903818268789567239908887313183972636524341553413105131698426540036314657571475059469952470784729878183954032924863123131399025117826855420805029283108708117153890788230536223745164875816429255756262198118198127925971979746709236685642292174253488261417248703874726307353667823367726858608858427986423947476941278214675979071537241150620798157881588818771659480594217626579298802221736268168752844168641949018429817655756830578720370786083909312260199258793042400916872237312396910522823089818908896462043253492895769879506189160536570015077319543863058911945211337473049076429695620857531742129597683889798929905232396749480043648811538207577050378479934826429696358297215674086989761832593822883294730876736154868935183878869437634115543913331056027970000370282296851047600498046089558461214067865263326789134090667967537942165638374018250263295789337767570294254944848389148554250615528030537527348706574226719887338291568810694860838565460506276925621125785473742021708787797490839139201278706949948468685256674633611874367668735532653164179659410726286066532659196179568719589410437275800741018713135889138726421409269986381653354619174035894730697640355509590765458714320887100474604972917946835441898829415667087233906032339075475180763319957213443105846737702643321657982007477805264664251956222933767661603760133956116199244429840510103921198730256210243448375613645043073704746374391171440016314965233917566289639807463404538953580719335089601678324789802228316847571879036361643115682074010752030390332419764126324951274281024504817523513840020757660906372469852719296455474200758277844198377737427655351604457368881704513868887613065542680708039541429559540344392630807945092915704030553444151057243230012133781258759066182919458426203722350232552220182045162300729633876860904750752991427724183441775206330735940922938390463892865137114096939341366294464918759570561364290792114123360993482217986082009039569118897587182078321079828381809935553271320693413934929141239642451974759649835847134671160644463200745151338251513182300456736670484912020648515082127544134172774284224122754440446401675264922886591399295739974148639084237648174540801376389763101945588925745665064827332790744640101939654846473304463300487203694929698852472378029574561567277841129243216946830858220225371279754291547240795172062865351064139622554436367667601914211145468569885468713704649927499696201454220124502979839095606384576716104287987937060478002374997338238381898738755834661516446304037655190511734174353071793982642625901174101016599090116283659184936444314821184067631716491858256814573975883786085319896212648364997135908260591308454541826034527757276953346514708068185803896895681899315129607214852679801518969283465404133284315800128521167355169955367418768350181530833542247849494830259673004327839860527700695714579306434939115084175526485378713415994131254706968489541487825868010246094873697247894996982384687538040509889796806481513036304357465840421514649210757842011852694610088414718037011655361509169276831696829848239842048414111509339956518733909410184716853271262982831015998445749606536565144493041443650788627931210375626943341294775055800037290522478951011631766971251204288633997977242192255161580966148856270089636717364827595844692757942617362516607000953555763533737465852368358273754153108186740623417528265195329577974706297461571271011650420996534461234890402582322277073089503738758983366233732586249257209910637954846134006310483770422062429626051065226117763231718953549935456268581499842465988980458313206360439116139925191083937962584127128076485817426751531946881949196685226527200919963252260942648409724058631685998275618475173362894558255377296872699879708243590478388069865839911219431124857049052613178529129551336012246249248926336641672731911860499714285410139608487106513368199745902944967508711593831516336907406087859291591967155255065951712230029531712809595979480283439937473555875833251030722272903865024989900617402101014814652213363901338982316838682559940104385960693800718146542325567345507291803601029168191468622179893354121932559881850614975422399591778711749041949328408904199369538998551672223060974979100437359698714230415267030620697186780181486667109437924991094039579861546993819168936653408995533838713989686766312833544518383197648114452109275069479522806270347154818455698846012755169642874591783727676932155877329969354928877859991697861599546173698932977809972842221626585419583831264068775757824537154407992713345625289849756830136237188906715217610166931288953941343449467931764540570931946799622981811049041815803363354448546294913675291768601600990180798570082561093099085715692912252006092183513441207145918868398820432921144834950847413223540930784649238825652424018713562962611354351337768175888602266985343697679980348580011023116531895985156259714083010827651110912198585044818450875856321681585359199796654330122404385492086382002472019535677631997801784282728047749806431835353252827773278778354132154630862137347446450262710993338137023549245410325011249830299142582937955652899317114812458853319719962967462220134870569997696430564463286716628038755070388549538913845487447496636076134216582903977830078780985851737383227011504139247868508778730835853505317260700318060025370216025386887114236067825790599136581959868128392525326973348373892701478672751114614430227936029881182398472133220190283927759931384151520348275933805646258257356238150029109518591264251681224151512188610393260897486115402279995084110470958534801240333377942436645417995782973729195593754617447646021364692677247628620510408471329217698576870970932973091743662540118039598415571535139377476141062327490230300997893183758249587090466532891290460268696101216934699940600821904872729876241303838170249656599844142625754300564839995263327845019852961595714444929037843998795068293632368379504283934996764454292106964136866713384162505708586070472137277448456407503470881214155748970297936256871397573461835405617491181974018431149836810878506055998853595254452703225352819715854760404035819325527695290433246282509708801946858467505504260853263764196588459750213315672525065436312282971285250390994035757912529787928067106564570738151181288567106865863291984776165589193582261738400190934091633395430502067164376213319273295050860804653051460452623862525424502447332806418357895874071052117522617705268604123775454461195240241966948356565897325655335448420309671858477988964096659443011823325145311379380689408371042696244139321181025978900904467726032501842496683050852098439207605198440113821035022861227525628494797983235253228141210071141411374782495195984399709558878510253066854804168977087177598963588023667569787551750454359739545283164970649398188290605299144588493279130715789096254060906429453247678140611420672946754909142439982776597102830326033876269459171664129347874761523728266391617346892534467850942228594839246561185326590819356221473406816508705536851178791295005237192075748407156590371675995801910062243272803290002933680405522782698334062616188447947719103768070101122345114765609317499782751390989352015793410839048436582421067771084205508802608105436271449357154874117223590555764275522706525168548662142940454736579341217725958105500724821066403093643389684011752465356989480448861449050655312950376042967661943712027394885759830084282962665082943981392096008104280142370675086767664796999718098757961211993675618580340391423678141660852288652053024310566182166541578756013433457672124326418738567807638890340712792785735289912661491733821669920538782920758755542868801442212419023542517063066487568930856470880075597052402745901749859299572423477326974148227289891289133893588264609542717674628641320718132892755007791717111629197585408743741282176793438600288706314317896320630905135658200434304135429649739757263006982777637945125898368263574593518243057368985799210947198081355358485729427356659752276737960963008458538845804776303818312655319844584901111304236868642624144435129365393112714487739291429437830338470240400044933631041687551302902268784316717031332282036292077493386443636008543000722546328754425813187795292433821032560932688126524368595034352893104244998137681096798441304904872101688946797715249450378956278884258080538130232824716484330580891235612263237107739541527891707599878749956343183158042205189630341635242557752763689751924382304720056628747909316042133058148405560386051281720915153575178799850100056351780329347377841301383635885757695598121444974374539270930550294598719152664891376975398418565489029513220959504532101161761296368513840607323278347080993400105801414787685147986087255715314779373951905107923113276310262214256735965108483061429888170744576479552381416077922675908487468480087500844139726403186954919364995932971698917152192691987499779019753175529388320124687822623884624715409590946594561881409862739448488508298431476814980701200446343435435515921678543280167527121946638849582001274448475256801081098321353762183987512667105755392420831065521011056894712802134699318163589143702653415820928963485975590753063738339754084791365422946425974042261301081859645810951228107572484412582003234380617803654148400147031156463845421291572734453691810925717253834075761921267365895205542620297312066849167907415452022136929302507961142332277391608246826041577643884697961501431738540604379030574497152047552076306085123458783255928669212942717739340142234184413106310944485188135090921592975662649767202147489223737531919334011791435224537882475161200553315548518853964072942867191810897297448830316258031227044836083488518455374934729547293285151251485827006632314639756196913934720175940359057323298868606068881290781392079874745461873153262517841231608395708260430670871141266029524886747765394087269908132960541862292956455469472914739727718555382555471576154787630942667141856107018913193025922508158286065613465159035823481918682723977229395395372219966566114242068410430570855001393411148745998957680857782256625239319700889672457446107033155357747616326611757616274485961531617828050235669413047901640579170328738310825452598504081787054574959790420344601701399683238026480178873441418565353173321406505926544168747069571936729134926765569716323471892458735918116398592953493221581404468902809783502941483820116262980462241519133530588772322608611387355264004425962995173398051769317563166760346512483062129165447980205276987234756170821374845880541927379167349090869982404051440472789382097979947718824557416112843810225830562501034989871421962152201434894261963117900373882563523674441244090155346906289130622965903386944287917496284661032225849807407391385607652418370713741564998172167274983019886052334854242999327153892531161049312096910686501634242820611082957159751248302472214949271753787978569375873420659401758348194797831861888041470709130062610841614834202213292166022653994511580571386192322857804422602675470435778487353518298769010932194274818401904811183375351471967453113356479347411844688701118229407300487873035317773439152227072909514959213710377016332435931801385162088859770275186802047220349580772447122733799311108143865707927735137219757323352984749484739763405978805284166789212007662018037335975351258413698138481538583143174230740680481057235504747573479268821877706740614016884035697884072386528810686679702241435502145428750176633121953725157650085397798947712596090977098448999737933851597505368123427743445039275776102361758272652997558692497218737325025786656551009916313615027343960670789853603390635003339965106786194154872404195269347213335522551243266703886176336471350498818914466287666960162544858143836674364228924905578745056639716315248434882034244143937260975168227224328448057572582115157214933411944034768330811714726512748295093249512646260492807094922124674392733197971698149838779398519307031857959224653225926421490598849032620747097011682768426542150641164855437811882938527474588615774785299015428155722543221013494087748393583114502654151672447792080235644372348834223346867546670752052476482019598123274973871251730639419612228755038367975918195260027689687168869657860813987198780618495972703963124656895667731739543141849329513919549612540168256441008160527892499927805607994124746202106397488504501693516831375320922812300091180849455826717677905923296012883288237163995132619417082952916585278000381447233657416486317233737102864794076631047353314736347750560484856889076642194710586269112968108595963744764740116922355783842449293698868563896078214633605011996820508737572485615354737462130994212059013482760139570850279942230756483620870200344344660747017048659670374622237661536681705211727331245016129915647309117439852821885197895906488111502174518241009492381419263056035411718876587910689873508970220435166518835932045314876603056686147552728284023177796067534145929756176171178391537799792386159861813800096940188129889575114505164156150811144436120429801649709610216049869637572593227042734490416885276697057418504459277816398025993069652915362690293043758008838367656465112298838201970295202906103741018598096066734610790162179047032704377972147495265087457592043099960314592719248637400101349622162541444120636950487748754230836260704700915463357506879650478047823830472620569112698869869868550139695632923515518658909715581688865327210137315229941404312741280621455006522545923159214790338824722627139870461147685567575593746208815005611508083019129479077876802189167054747172054732600582070409805027416132040385636471685581030824789863065857169115182517404114263763437839437437191878892729361182746987964114707274115479702995888674405983857914670990080010768174236560457277303271706939513959831771475722135808757594831742336640119859304020788673744254949307281834086840075556984138932767316363450994848121860246337432395415563771755743019805915669566189125785856048474761404358575425656099333424390214696815519418105615155500248198621176910714601415420881835177114668598730049668276908433674483153149998031549168413979372729019007857064851448923484514922803481413198601174324364393578562219661486136285404329876685381397177766096638086787349167041547714094422999881156591670746935448905958561925056919884358499080978425502961836197420022282248960844520962731221921109173707114061247766155369532396629597827943083939408503408615460592635025001166102265869091570535717010260039669423476134251760202301243456876904624401386251638386440036848456344067218079105297446186832554568796761488000533214539113917375850195286564079207435527857840084488667110591165286423475088244715155237020348401479157729530460757767345347093032708989384535508996908418418552988520413795314075573309156955720578866269110975977335445463716719533875577160975678691657122822134999459127834543788139791776612788902031122434943650359813946639304341051227198477681870011582019168046865777872505398689706332561644000017561003086550818492318038320149882760994464202880714826698323060252895592775873900429387560202744244024743672093431073260974167651056439759613384928874520039788369735654039710456119773757923087526510726996072256721421162309381202818221161392804441148553844883472097586162514909006340897069493035097145093147558071460964122936715288779551674493712880027923057210265370794262162884762035865330502482020158548760601793780498544774883399053705625430264435806212761352805798918227101161804755352081689143809564894940796167941896553140304355332914114951012109073092815126055232219624855353200865969652351591402683540391178865916100336020361807484766114560014698094530757241110616338577785830368143876116109586577034515661702034896956867537695476777183562438333626096272616758478339691246167619498010140607950331135444433758539427937403643270738250300500334947453077569338297095769163330831186704242462799425469921243082210365523456425578221055025624547654346742543902717140206207132645095165641288794615612137780783770771691268084374423484392242230808140142126298643247322395486932810675586277415329546644852446061514036819968746405380583578559121995565646319142575067116693917681670199546285795408608425614742894050950189110502737212490436227372941003878080769298067468673656629132908340754960236156144366452802696942470974006927122870088602075239468867169867972852002334070742957105387785636162146569471334270697528456455409301419833820936879306980810710931784470725143191441562432688182708376321366198965845948118299323559680092336091859764032771842303034097660468630997159023481134418585662011499237386027812916247132780899234021886823994330366092241802267500073838447239605206596013787434466611563636884839410407050239784798262344463913090745788420314415036193401006630838684383174485351711463361065797136402327364465364222593934656895769838293157681823243303407953845687880952279905654519419424825874095487312943473565228568315098857446762162522245748800293798473667019060008254821328127487397762392068187227328178796388262850852909218796200377478401888898411718578416471260855128845119830522706833703313611034485382604475775770293237532225336654307291258760932843065878551297980729551674937379070368861784714087632776495566368612839237438125923216955031827679854124815900655095451829343098929040798450521481561699633431425760891962651157983495351627956481785010659258553833222535122730754164249892787998478347545129694584276029418185620810996479130836065636923034296624562403395980205490067505057751324495379723092396053481618858839648137458259465203161024743794229971394625560610376782478037937097465558711046832006249738609545752753231253472689010721765541902579554909370687026553450544353784458913879782174968187324482942586987428282354262418231689299299546074372690488680077274748253867077275925056452240368538870905611625312036141720731988385882521327289595161105470159218425756899155942663084664279016074250590290796767642126721392618704330795290373353072009707285677302887454041129352932992634405942138962513195138790674490338171113755543683219812765754411138945411762937112914687170026912006834382547837482176406308586711241229483264610460594831475025237815238673176227907392004011610755694670655557958049739550737156794225614430640275167986183305862182508285051032136369119079787462755908194495296499762188409245267999172757680287226779310659049206552571172356486346781425459080724142330878630382023754174427602434153670362846677813772083801266464894668698517372812183688248450207960117150357858439856394757445949477818139576140062621507221691385318062113782247763589740255936987673696832204904161569981161711216629311493568701922926550648402169984594043565938062699135294626966979779940650454392057795196609503821339097996268221288850653218190054083947634496893551212474997476233540625432170128976403158556446884423735333512587515024297884887370193192419685146997273426343324406110421396289022988175227356915795770418738044544912074564836489989978159801550159662601713328814260902805390761732666024253562360402762450834548997091413679615565948799803741292279651646857603081833465822048169055182966550434352182876373689628183865614594652956454086488205581309200303314782528669517095367238900631560181918195298466712150313319840624810821339177473960195921290549280746561584487816569842616276017297083834859478036256270461965698936514539410919659418645285855079082479504202833653187589064920781777643265506036703352602786402793521295678881888703497963298572872080705546463359621872497268586893087417863596631018622631162011260862294467055344303814646281726057904133174433040325916435265852013494083147825081105509338233537222678652772047261015721682063380801318550470086551343666836465253788684935751193377572826237109145300547130593453479179758275987001981471963150660115519907293575534271875991333414438759790964082263465600041320239051039393524452689083237912649439832411230052568795392516663034248717795107661462636938294314191943136569475990758101530930504600204125097316182692471108523885812805845626473054844930836149170025663989304019782368034041470286061040829950988882467226108093011314816450741169438231050967449915167535827527932382524619065391313537572070509545502820724355014621345626208270545344180557388696955469934381807700500077451792005843843498117634043177223156916959586652344614234595961001503157802030988075305611349620421506100757795883093924362776113310038501443705782032232577276165400537153915736665763244868457182228868753809726868079650099308735021294974263200064670348857939964430266923935131213416997128611166263837624172145477967200486313123970049493068138748557795054788260003380645581679970993623519729314601831793006368148402004181068651391135666330672520938112066962541401534251572988849512776055638475613092023377363904732465772591042634364933942636898959549836650746733492577315419270212191019450095367217618675275823246191890002490625522520364932372666901959756873672888526106955156644282147714266463169574798256702606029090444978642850647054669491739234287277260790844258072184394963605100816523395020954257689193258302050337878714007690226244245879524839977775577945277973540047632218487620936710407021002410174072586641105967883454731949369274332189247061819868101519430014733932440790170128852977830880749890123890625854747854085402766869561177207150110369045311923643634166226450550038087762512778131715861979595833890055552982795210985458703325018618062247550676080613868527473121078417789168011680695517975107493737098459773140121666605106295408001431973040158514383275042347051267666260500313755379722622362884489622482749964285857788788757231364723069505397281984466019533495833317016995687073432174571662326986690569929825278748437786561413853510690588545548244235782613309687264764145419786794924776106892735121973513107858159476215105513240473309256411835718729884259809451674433034115138930725417442834188289797306022988112061557291191914188338062999069487372373966541880263936517128724775474387898060082470462149741220708187047816319174478822032547340591057321040826308206677756643696429855047728256597014862890910667539579448860282496320433995896408481900634306197226374703907932508929219506371271277070622285643217423237282653531210252284261677043457917151588795169842579217480878747179798915461134061701553587443368419553201258980438616339526844502396217120768863606018271264199462774995885538310342110123926750322478080467706387189432551016309495393660396951721520129501066691912125150386758175508518658444947713320434287445136794675189231165117806555925872370663173987462572475083347326031543812765772942991868442556937578069306292346950089492031880266082471561405534906956578915114873769507935569070386023028235532641148611899006172099582289461780230345101375511791758967115802832207894018639031226973415939685976017018682313204028532307284701574948430692961093045246668867297339243041440104553629662715849239746128224336176948909023711284112231710461696569719585554768938713887793815256083122322747333853574202421330841807632375227968180263025955232307900211031389136595701633494324273971066256790052733575821361782955011106175198935413952921862009793853983451162902190287570834658257132555633087609798534420754430122072257114919347207324322911924770159392929028415719473952674427958834868432177583374946308856383285371695061470410050545995663257220789511906488775139612774150269481633836757667072838957225236960215200568025663786404023015633163592103036225450285414249556514136462054928876626755118244935871463953281547368512587344096609931390120142183944222015128497784745837091878787496186481644640734407658565590243438518730475171972671989018771620163799502475046096887586933332410784571795160252671815394501973568481168210774625372572135050498033000439533637871160147479757065584911192903930001523266763408949377146402813034597491326507504915980083824212565365587300471402927685815294352563687937261726873934114248557085899885062537405661075553280476530112181395553566467355852895259847125715619511928437665991400593908193857864698310185475786323025153582796786840681615760021588593971261248388629783209927271898828204246039087425103206428689086272290661838596695739235937868019488228090132125595810768092337514461452359470276982172813725509524495682086008104990701345460367810911455977481693770023531735345757647308203709124992109710773471383816190990230823137132271823952909509956551887497521059370716288888547551898558295464920418701447703009574523598271097337095715387569282743211884900429704982143284439105013968104677034708916810027021123481304351225382927762824542562827927796592933316041251707435519089808795987835853160436335808903498294215929125480298812469539322548703555209787760593585230395657171885851186618692788377368051880847429948233254972331926025643749304704158894648524786031842899695299727050553980456963384527749403562684939281514571593988838734404066858615138766944399419800117919560256054296253560113338315548502160984148700788858597506862443801082619208926519172296711621895811473302839149572125544596025125873789312292473833821991260130602057809448282822238632858421546824147799258858406802414877284366770570677696626424514692556675977137648584340361308132001719954260198013464291302419049925491804333824304410676265600400776690259889860521950779596103544991620275808473425266218863198360175573180316301733206692501011329886841070475352230535786411513892785391029396160829086692726265088356357148376135428594738076992552942528677804665346657670857486275929298184854216856696810958576185064371037209278150600786132648821412988474501700668061470673838734803392833966179295905898950808212297625863427184137201298734814373115132735773271946453466025466542645456335832809723028014410334972550548712198862036350250250246089033113516872594304695879198226651565634849401118786257005648090130493943892819372518105361099505613324984245645289797316595394448636865017981282424003835708027192296535296722020032636831278680530010119649275317113234800834443043106269478721172706801574483736497056707281601480712708794153310238193551587250294019034784025134999076929147339096816253463566890835600103673693734752278364213000158171319920063114251311284969079157286834451835390857933084817346844313570777823638871361040090886882632359708188966684091753863767532140382600518258300909000134459027433062432025199370683572369956927619388194099344395526912401803659709761928765865872179125411074408786246633035755714402882021087509482705966890982245213350966379897678817141682025042612806164981221812713077790595951660560894039937815857461402920345721075926848749993166069788785246300697350186064841471427433675581659698358606556750531399530807644639988052095270024712045807608330695484720353786980560808107981988917117868287531709249034958892639866540202716069208149234060842523181392978590739347523858597435417140057795344053311490267703712496945333229658192288079628260774607710756355936683487343521470081965074534354048531514297815898285472798788633684496762107163023965220553375726683755443032036537174958963884042217253414891960245814203104340297433746902340019287171349677121372987118884760638531161724045058423468213902818098433032321213468286667704378635307436879238587046335720868996748839882001329151070358588696847587740820281629073674626086331889429208937053374692550614607130839526913645093267163604561496161019242564004478449157811832775050711259517026093537222247382769020655805304123710949002322454177784191691832178213108957016755656798838058156506598059572956989271739499602793057182706627351278792785995864368343678023418650840910834456547646817127185370233733420158086967786353824526811142056135101915500029855006942827903069270177651628005668426447945985501574348285787365148979452885432747409779613680874904917297123362103457506433666736910545730213750086727926229061739473292268534575400623246370240709248359175306762029111702930238943212077839227838574581582447228602437134929440388189837593618309099279307984369681958844588442594502554852681446134994945048791584306981126044706647251708160414894820083920526280481187436552473305613113591685227984046706323740406579896288916004940146952205305587670228741081945541146631313236766486152692186657106697720526765564730655425933200102414055819709676477651828111689742278399503876120579133013036326184355195438236645520568104963460460332136948425609349664753858752385079778794271835373216666254852065410996997264278915405213327537207955854164225155935050698255276353500238128883838085961052852461415064388682034238482578634598373802317966137466127000221110326441314691407974252536738476549462779874636967064996462646906156172809016153892575520080965075086195772577483564819734457120986098308917692845166196377216557411081620239290358921406010377340526718234918981218199388139311270756703659465929619836730264614835191709180625116770464296096716470502551399332738418136199341139721614934438060488654329970883930804309021473360796816245811400727398132738058448111265748006101269832714803264522359451143097587822297597934297728335742115775626491726443715917308931805329226670465849739099348548525982804433784206541564062831117570148709736063377755847184519574956155362421317495509106893413777770205224501445904289866078296154279743525598797046404582964464205358895716846311456925974486272747657929107700318274504199032265336509758111268524730230840364171831177525212022587960409423186531515090623640053706469584834432746256913328173100903000556652009664015686548099552781659123197678902575565669100439936700693904894574172181823309637594277857670983511861564890838273642848004794643266798538612352129503191408142884350983454490995136985727463949626046662580744684890250565018302054520164242722675117394881594347324184664613713454981072300837923964478634309055370093470959881930915733149044426812158907030184400814653534580673161864007419032517866629334723114954462520371343037899132904339805669793612667430216945339791021168801905652051778836665123103556808276037496304744804382642245749274559829528327235105500932662159118792934830171127737169240256228915293467731938856632315002243707985117327967005560591826795843269223062505063794512393686519259131845147362588551660508770240613830041148473898318871447475318373226119449754057897371046179574167213787455596022878037427134506243588053024976580852377283746790669268836358411185086810746085279387522821724836309557996727349506000374855657205609589760657489894362028509282533143269685248814391347999281062335555063907123346247489331403445662319834798315990595299530380333252763824163075785298348704470290029278855308071626145105960113282839603918042540237374967089859304128562547814802589042840030714019343824131749263734453093947062990461286595798812755614049995496533011352890334054993880013981369798681776722709026798909127525590630762298420401928539761244754703732648989230623350524451456542853909855934349851946710521951948643076141507153255197917333829507638352632149370898601618999815638646088998345415645852749592781223096332933915098425273344528426703828527031825304105213762406227288095876836351682529940531316221151076225334587623421834311952489545772362368489918445212376415633397080279541960445458598485761976110913933402524515343918998244738681645014875634562484968365416785040670707583718151379785163881670310031545792266288692392430957162125889232854112832944464258035810538147168319252111222257557974743251060305630646675278638453729741141620985935994211975238594288223366002908099357471114998422844737978214971033397042748487867173685672314653052699071703797542928507085662804453217523462279625589838978220183875765357168485391382167454903931387250600952792685269168864706687244608841248191526542315350610791704645116750489144742450177301419997780953599740813330364209925842312873124337085339449729649284236219499836808949968453408054694523542537127922676263588077239946454357401459601570834061533193660080972433681981300124908768071625008035956486286938010295238710209973565403375486878853555096921908613569157697842723533381500005027127694609985036633315082212333590722405811587490924516848623094762979162525887505471304458762290918844135678256470590783448528838384006140224478291302797606118979759463212912854739913761267577576292115870931677714377524428308760310357021221140936234777938562999557998523508421367007373228648615450149840878725847653035960790179823321581051218501551348076862395452905707284864960800113695866740211164785848782153431214599805299106530738473767081578327362857248218878707603093172405797393324959080174841921649530460816701248965858507322394206197014112694101934100918689360810446127716595898469932925522096383274269949231695148755090773908677795030330415483379982297697738783341830423147750341461281479166206288892218491349874409616145660564849791881029112710344443769305427122609330658397951396032778521520663612630399736077031151174307717731462865951510463766562935762552853653745945097235233451941208803351866672564855869226422589716351866291383293065794517130595003765471082706741478641685813279346857723885171860410516910836597962199958983512464314892141345851483878628535543738031683534531217420234010163905700776726588121318068413235583412969695015239950788645831010374240137606561054679673889703758701110025810605872878772885711330330604543352027737802656189533046031072295436785191639136073533059253168208841807799404885767839693876315607468964897626916795225297570762108197806076755010069692801919300219744514729054351776707358494873994619456177905045435395137952003486009710086295896425844362780094430180702093522845465873128090506258938213855494218533692448118903408232667374776214291042789335081179038507052693130877823540597041501666733923929341867547797432352149889353863175261893454732979851663814764139273737050195216396524178015908659050308714347548901689501051993241432232880951223369958413058347910969376201156135066387706725441547608524985171228764748716622459503121229408362377687477229694949844729968326472161638130401964729323538597346620835923050817217668894386600272440865662219221478680438302452363683523604361223756236844369660671446200829009295764239936883576159042957558834511419627769384045133363529347452956099486450442783904469865642180302974193367739478137478545274423194556689390492472235229146718484021139822081851566413012800440717817137082039629917788656027873032204611334149152160848485395293365933314831808190921143090893801679745118525254949650937574331090907397038095024426296274146868346509247661512678064229249504296847204231238353765012333580377520963161826658436104752461848741686939883409217799008516398683295743063107586913824122535065982001493481132693343205395081536782926902027324605251212000594629036545342222316394716040256379825151808650355857194087539687049073508804193967246456148388919683092027940677424833813048262232968242444368552717195140275195791662015472530686781737217686371878683175193391172136935781914549936261879852028972870190585891311578903501504390848286349667468125286906268471545462650174289891787585448059209530738042122174056823285604868486983779872703608444400856699324326335966003671635608931353761704871509527437279401462253431178999205145771623021199445950505508128770156916737601467787194800278299317250927689731853829655527246478424574468821924782939574254058545260766744640202018831159047109167823587814044514662417608833205169191088969081554159312424556204332851620205351093508032374758330781305954063337918866327261785178084020939980998422269710276575263197763635832907923289642078274473708396444706284921718458877040882250083954146250682818143891619121631505848168145915385018538165407534598612824913915368706009536463911016206621492805155781709878604955004993999390004775238159516296543081193605890787432537269953405835896366687077969352077182435169212335642356739639546078579754357371267465724824870254323258473707971428917817717936006306710711817242331618972368332467517610515359032904854690296071570924146649606773675165592950888099496606019782426956039751748100350534998035734723909821194880671902427193749328287019243803006041550798095593794149733587396654858109136907572107897169875447341821671268225912941736984208889325314175938645909460315599882838443587068158620131412699870497480313530773149285100935222237292955800098973283237313376643708127788685553281373251965511859859710531059986780736833076017877680132473847906349931646797702762634461569970903776172934351124425946134190122953129021714025169356153447826386886099099984303975049788822443147584616165007849660593217685559050452210462590959046879681550391207943063542230415725525967734749661268513085782282542440036400144059328039723815403060055545480005414149579571215574583125981611371755816357455109133903751883853121151256298477232347205463267342531945618866337301099301923187452543567690927407828772111621592349285664227038098122938408235808903044785074762893534546444510368571191502593022003961243804256859455355367035851074179986838163850248289328695715862999894427951054158321283300794468400579281105737079931911509210855058449118648652159668912367485804667303525072802443224087142746695684216622074394068592076891365855198460082780139085204128265519486705351580446327916330498716493785741810867801987014667948658529323604794810272423189047893511226093911936370871774443638789076627258253131510408766551591978018092240008455051313160395857162595248198877881433981420927817268405639828818548169703903469433301333141163270332878425366608132735880622620497478714769029679295515263154783289809336323910678871311182046093151286066763647775862722734877861570709419548014591312645671428163975901551034144180043947635762864455345032335324499307680213769556673909859955982107969859832119030881785188408954629444002613295612153425026180719947457983581124449433644942253178764285305365490075836909460491166518694482041887276806737627355220531050695416601832822456766096751425304708606782583824870246439508821384737133711497886421912614102438332290243371950973961689225520937977258191869605194482915220889429976040378468099758455797953800389388920362745630250559071028634260093237535969632840784362821835374987844974921157335794968343654760781858242194879235863221848908088557625160728411188940268675424440092328587763945424230596739763174854242549476422701437827801587406728231333188741584157405005779084967364767545353668745340654882410626067071294135177422574006768327062784260907087944438535104787171856340262566908314059871309930254940831292493730007009787342915266441086205985901720025718175471052164138027909149738416874454052364943979219104172440064559149943505472245660753509516847798859186579954420655966427918251328637573786658628399714606624489711178064986964281025257426913394969607085813842983577816432888609648956166692273795474701015272956681370182467001594008165067479684589433390596487467196875145245336457573737013471705606541420043678741029304895844371187443643336983076795474972782123160717873738904508260048890748534078685025006937569717205329768109508873291656782170312755080250811953927064861941032655934647941657683051400342972598703606256957524852643298490912914817029758987151438033423638834239289250352956875917852921712521618558240353077778865278480578796499484479077832889270829528993946132101569211194581289817058155034668150954840986485458416636135748907568248698850875743576996857400734769159536604439256246797764454070772326382099349720808591168806485571027714545278376943763779099939869022122385404527839826550396392245446609468175681535221289465064099136040674276414189058705546972191679815270758490320547042274965533995672232658447271014523368500967163088286169331993580637909608444962870894776006764837986973963008490906492333388064666991334210690363761248197735242268625827583318484548415633889491918705187552802905817743473006797534485616172393878280423436007760507956871676953272619830824801722396266207599808910556462539041901772209804575655419649726692919919660779205496324671767626164825186481198099516931773398598262737460592733062753472030993339409476689522725032589972831991772605330326257020983020181029464519511486094568397962677562099208271247036904382077644968154263609027510107094257855459764544368527680387146656218788005540304347333927068695648706985100781834118125475944108182084781145915833053712304165467818388847406665377739439646762324253021071482758839808008349928307387322911808619343655201628616552158246151694175298618420568381992600315309280040942288404616909648901296812421778203287315690855694226437471941672468542801994591276302704453281403832066338145742805068263041432664902084618776567183246460775686219519204310510329498465457492912821621429782797925519668895720778440053701754629463470090886082828324188307602476545218805903599998330577549106636023120539749807604851233708398006147543381640499174935788611024373438317022160836643882983198591477284149499608119131480852933808692973072480318137677000344804407382377161267964490208258587336013377749514677363194698713562532605065352976890352542438411476458365986257340527344288808865433030203517851390033833190203273765440507100033573728928389764544230656473643339690959932837708768136306585904355840914213700885191327487034437057057070746155537680038871512173754918084032347726437930206767242152018282149059311239905426256953065021963539060737479258596773895612936837862695334096103888382644735049758096702367437992793415498987691579016378757061521496391981835545422088747751382724277611822093140496870640764741038758335373191324485633451095615211871199846395468522373637443594710134298785185747517968956906580081993121216565971142439231468458203687589370480056400983459717496680395313499944584179763286164837631673375857522940756792859945553439769968148084853285045045009485160682858086609896806237820938112199344451212745507330442680909344396676773334032335967804760675808400328585126525858341942927215693162436730297535620073602409745329760044024797870959448843543376129525705378506679984792085099882137417432164182112455051708425248345179690136539860276511861021430183217761866642529029310346296352519030470792966378823155456113734500583210907482848147174938270078176774976643836805154155631645105271283479814881674083742275826788955536389981752658707273470326457058149808165342886523048723244627663107642040912721563886661129636210681323735524531368035575074593351481249702576027589308634129053192498908742757314798295430918700669442437115742751655457039338360323612930776051896844708799065999943325917570232274149935672153896582300331953076830445826853210529020109028801192320185229706144107546250804578283088040661743517589445316832359265692862284492066460948546751372347940009417914055831769130842365205646826525786580859760414991368967796711916293686576858195642853058824759791963992724463084861950549814746936290965552188510452152177313966876327768783271326386025687076598422819097591941340312768275754722915109405090461281036269903895020066436544043414016336329539357017577579064978273365942971872699555803558411029524522109294511329531564270049113524310724215881578269935737156303999505815581656326940167145718282296545432765462023499760907526987530579994164424963875779562660962024097695350431072148579530421146339839024074638574311169519916488412045677540677997670360425916228718879858409228195398632114070037487377764490017088881687241135891376527431717606415581585946858804059726216376524408642566468923219754542259134323374959554674464779921189108997740954133540811761212751414713885999226756678390075048037504123946052156372965208680796069640990736836238634299260907250405739850781001783059413595870002988986667749905776008446852844836430491285401126908447325063505327830418339699177374155153863670976748000314573334184247914548125260867700250507067140393194480798048653769798108347142518792408464248473298456833408316225684406535645478225296455921881653845390218538533161711680875685434949497069946657990847544673423856552175137261541997709760408902473676830637084968809454942508872709305066966261774399925872161417900062722164444287387582795306873560677222928702520112751122219975092923455677592885490704439069004679635374756560663090401485673729431415953030287862473177507675749655059421604714078830564197811202622318474672774731028361669118624731969149069722092300336295924724507768771819884899913440222525459741417920751094447993258358376949976468658547836516866937781700077280112837159625176664338636310587680990371310966822980387450669496347493088734897023618777000464714154961064987478488158193769234668297367908447137855089458599386776261186643015768389051923100419861582308684312718638933942064030907511721117954868211407937032981222094286017594969264892569499869741199319832563189856465550092339026646039612690527509424131395192651252009973359909051402204362298799511160669394552680632351767530895805576208412473380072614926974161604926617917571360572370385359046068005960363798190740089182957936241788508358532413959232722356085918112993155580938413817180586296788288787710443914463603662129203893294949399537363581515644976520486876297080905676596672135323732838024246636879835408520728933706329302435730335189039312147113198369015004687815903143424127608801163675085444900517202863146127646155262975774483459500393106808252394387527745580055252803342263137883527541788398782834715295098647438696212577533250393612359526145710190335767295837197657640053366487452221398148861292154744312422715390199930009913460092577286250286408989617322303575825801166037971861321158442836200750810694098203648789723294048480644907707570109222815396893958143023608779539999907366710512187605450672104279319547454635936982564112725335982531565951450079628739966548736655726567623085777238695439523087051942486567195431120361349726319817521321157731235291864812555774735195991098147565346944754474335712872652155406787640154870690719409555017488527618729131743506219387400237818203862505956933529056517130263721799041670098619560857947796764271822516178357509044012439352285923373189576323059860495880345436654745542127821533199544934353373177036545945438326678351486667654581709434534951605165473914911189426724032266722994592736446975133393491975004457050744363006054121441736256656335659324157625736205331820289230653833645359861637822495345514951523974545850991355081238528265923103704405806417900688014112497623281130032642606606291819853763082761470147984650469399146893112010311092762785094343690846405702863366152291359257491865888541634976511968929961679916325845661406770080213719349714030746601182054364751176142237300099945041699993258813901976327090702419476738498747323044419416867187894433373701684568111230730107116379931146220297526613107134606584514020371595494349812398573661065330516758072962143662063875313092566429676558037017141832654968976421401409507549657684433892846337356044749722466832909998356285744196755509568784501445267822174638134488495956108626499200144360004445537586488645838488574097549877793825463501003401489876359772959375591395707355378271173793786105300698332920677530572794593855639998368669292197071971409570053774593793095526632789211936927866055927338783290216790576369128760877144334680086050548823754129362442147750271396372411477031124121313853707043735956758019828336474701070961225411817520888963278018566394626566285999142844820322903485607113687143723498461493391784105338588123313803005803594828212613371224377690773570625341358091491070707589703221821186658414549578173061370639054917471087946804530534270337281732319638595337119226293748401505712596366893513959027073838491535154652022222563383455925501482342565244002637659698393904415255876631096337148281108332522453272931251916707236663643023413414204336327814026542337333992983809877973793665592307775818187952720546563172507158591850083070258464333963848592075263171647170604207969425168922772158080688362256445021163206409481144674555873669607939668983135813487617862119026964599423494571668960484716941015875642121404362441914495864498618147905796959441587224631402244299816252291784418930097890221793289381511887900188300326140089209103548104364087750384813670488764686344904283862366677668429985203828472026540301430253366203171534369825468964536736955690344935115166384573244334163894606316613637754255101531233362807032344243674559143157928233522938331692045335967803197242851280867088633348684674098367136792623294697804859149113413897826874949566781766864674715360909243526299872435998585210772422033453545849490526269582844551013407885317676603093705051174657575828046069510691490288219920825358149843492615147027446566631143311774851161279845683867409059971962182215124804356138860537815804387876693133592180762234834498515030721785773446289733322021434270621081338146467911762804589337549431697764251099215706427458014349098742845244802145302091115733501336724546143226410644459900863527576208151178726071812578186429182969416266400491729321998553978068454433064366761243595336106317798701898122360568370971080868279184658775326933901470543833073144154664610917200815585164854573674118573454756589677715050720841806532982733061326381467085259142629082567744482445569436797636622739994214095493683810833129594534702459827555224080269795534698554524308482651525260368037454292804449206745270281028973537647689060560077808792174469597180855919566743353685778378851851592776876393134935570113797955744363312344948846732600638044648070267680098515334189790129525353663149885413524253369687086250891853432893088634460404961322639031026703987249489240634806924853188654241310036517714485610223917827179645289260890591390748370124885531369278528146052483783825897041307811741160415180983661682130673145659221159529777971522624391593766082130906905065785436532908066985753728490233802737503635285474467921908651052414677356316191439961032631622621764680387078451992068769669798541920012890513959555933152403485579602827515549805719980972217778372905243731868336242837462507925005186344920595486443457137384620265087878968775472342774468639541434995670204213323157185217350489034165089450426277650118450609315356882174333834819103607507733863934886673304960686110303448301697066880165553234407174094695668996215071157326172875623284807595224187400296235294122889979081686100989902223945859850792604440775557283553480284818320573919243189029246776837580409591134714918226721437679169023454329795789464416231653934559391413504636919584445524095840283881670233263047695069027052546195398002627376293447218322300495030123877458340360834718623811295611521760456499342338547788481122699280381108569580557721245537938048014884401056134261074397141953735398596034459483716778923917336701554214731480889235775350385791925935415269769137849161398497956715322441642754795056268163857692190101909721421786843606052207546611652103545948932245101784439757259666294882218830258780704879257376243187663722320493221039762411106453060647661473221527759528861110240202917184301617702974477443930316384030524973806009632333964556284813801196366633354060896945347304413138421470969403262651524669537880955499995252237377680151543795931183474206425305450941466314649877501760510058809153980800174152045381130383153004302231569013445992324759236847126232316657272441675446272274271718212647364451977849774936739917124344689079545647331420422469266859872606465331466203988667891065630731021580131545024872978953981908108908857450431318166869964785325011240745104223331179579596141851083414803120469492639440279792925665548800748576412006027939863888419173972656562791007383324931358161439490889701879135233125761858657594204332630255267747454329510676102607789384736105656193168692492282066333809813224594882439237842759448584810982341455292456215028605870730095539374800755387707622097667423378911932246518292292292164204974683721787191591115852120460653860858678644966277742358937291818072488900755941010791756921025284790798377711872073016904351776963348319084679486440825557896712176195487819442459625588578348419816233540105809728833813732409448477556393906682868477795067008651926728729400435070598224658275914982307395548895667665182903998095376695409237714420569336535783104964240979095441212164108003302111723090613229975486864855634452620307215500086865072514200249615013777550466967127630739040452946472777264416521206023480947937716799433533848385348946391125051706146511677937276099469638053968025903465407933434063362725519499672943715893059476772053978994318804360634131009969703829073904256487089555739196976041922157941882551192468929806852686875623994147269497768321195677274702159399635512082495543581580729129198989303289214472510934149019403212178067860102908726539249107734545636672753822606074506313231101026437388341335481185977558627401107565216830069997580582491873563080816641915830094803916816080313912879861577164723283254749589003848518494801671884424730888362750639087983236569362995176081795371459520197024694005478211771478214360341587604611732135198946076465123688079796407551300156340080548908958609017628705258496537415056581513434785258905149205638460230790773424691173249676279835701756315009211026448797603120010529216441970049053083206998745803791685278598268935700923812337356445991547568832833228809441237084357955397797145218149042413184065822015194367802494357508654295435790273413009147786344036892191536682317750585868480668579801117186408012513430433927183020852991568559871309492592944981562958440728460709858880165529512972678922151977198050511524331868149980224053356617990254679615601821244910552321267844029837419321890208995610727964318472674540109722094835212941817049479975309388359204327034980469782513495268195953549700860933820352759009731431868613993185861257324280008129480210138579550239027724525110468896352483721591932797072288838751542257219822195342081363892497663266032521384356360980459711409357427598522774661874431842580128737735765870031106265445863925802417156721307739614186660053194504018837757301785439523445454737257127510029028869476315811379200800494696352128421595609640116438100470220760611698761010400260105255399856386067574283753152826407831984972172446199269882099762756678013848380333035888826450426323128361584049035085924187188367863835719631446970503518466753857461460241579255269537259140598610366915577881598635833063206899154745225948153941776309885270501914708225057645292093251675025576729618123780199864232809821986208602778123786685085964432170419167151383038809018099813223665384166389057162256352547944617656439607374032319199046073795008445825728521595106304098582935709982515894980577456396793474193520756505566568138536075263856557127975479523880675591309297444446466219651497503267477746276753592779820822279654478674140324639573376064941921021004780906911047496362732901012261836835794254769667512842450743010021601874125147370106210064082808978706115914241895711589445555398155641179095931066748361980732084744412903507449271649664626613747702381879489552013450437535467308622975190976313983980588404804278205355067061851424145073148839602694423433529452419592469490480754417053745376037622505025224188773315125407926647472518718416099130855780132733948205322579238883542820757824458743346734979484765615696659755445240387698845270239429607861559424568036572147139586738478995828063999775271929058846185749858074465106330894618614719121931334191343900695165231925809972762376520542553070564778180982675180445845519809100636552396811051191029242604112895255459491443398894373663129552827082378011693866160629974561937995927832714807844073844352795040629784211976757894065853378015139458695713078916556036032220829801760401152804537092201387265586186097592968168823580093904090386378857791562731700422775973252114567423044047056651720097355775225942333643232732444972523782975107938128163346128503080580078820123670543597206082979199231836416384492402168150712999520334850725015098209803389975013695380773970538929370422352756563959394651424551981221413732877326010229491767220749755918816953223800585337001721373754301111601804541445733454349311461059703578067529117640129203925225758908308777224604459402390381185221625988665974315165994999891038053858037232636371654635094468196954768073979143993617063070536665999080954336995601739441079978761318070716347318756020541744830690918296683469664547912824962349534857906808714778548303286593788174567672293503177737519291287938481181655266197926368565602702754204994993953893422251107905163634344541225423150499231824481751407398450937811725637955441424756417882374804586793818918012667475610220164040219535933881329288489691885537677904681476110080611746015353244351972704367140682259372125801453402008943536036830201179903056418320915061348600395724354719930259754715140644696704745352342407715008571920740389399402347345879352648205521589164451576087900327620452273803684529512376938293932446066228987210726935265534949564239520882460750732369332164691538109443555561122754175262459743537748464015905944785182335218501410939786634684116910690609705194637157587137867758607630894728705435725818700906528756314388107938455580676232957658271779652950659908777390701792914883216767401590025455423606187077243477333542970964484206311780336734997231379047151265783904785690096470958138437959521016053595669482069988560805659341503787242198896507645664970185687492976938746709785886122870987011686447885898179356496311349852508285727615510302475858164976289820239607743385019253176946550501911863410008232506448539351005321045550207325749507478045058620070185912009728156722288016879362675355480914275798915128572664000792345557672488299282178375782301401823569643332406584441586495580460723068126823028567601597487462661793532302057467173499001352363556738562605214968463144585793166175228784847321685743970991255375863295961636320824843500718260415995785535421573380281618348978924019485070288262660053564763413715907477256197589656277740604074195524297693240406860518093636150731762200924035392495232867263566654911899600757614831612407727413969246884313966317660747860391994163648520462327075655350258723248041945787752927288682835454127220303642627169219283827443823039763721990878335232329663124611316990271299942602080138362073326551033005318587103722511594396789905163193190211173841826509998900345870495021390645868591720713610998132355961450593032269625876153098123421176814516565647066092533343365564598151939031268395426293265134817346586622438968033522168521367557895615506644250384719680083936238720608372728783289364127252902753480574921723898766921423080746497938104818062348811512938388193876454890347597614853874207695332110574787526018589165536128004837232815772939282239256840144604216127192019849300095838814839469179502829001117988143760312614138003220427785369344490815707183949518791652031385386156860074927163891287112594694840327419798563278423120403331052648180917784687094459393878335963687934941116120393922411392119348997946557667522802696333528415123996067794687988915003314552676768807374607857626835034866908397348285699248360197541848510658976126565602890559789690939911801900797990161853279800190519898698731603350600884283216932091565832362431349559427886377677744022537125106678623375428754464252065643890878088032973697571085772815437544898813519795039418706413167186873887399962751358494395195164839237854769317576139510767183489139740840819992063594051037685089894133009759349282682686771246851548359381801342289721505195180288958262795503534755267480731231846221518483172090278566747771878550257521301493870491939743555618427891260852134852173800845441936012637346075103240755104135786798502925091643178651635062248808623469989572724011486440331212727704313695467789078934296519154711938393442907519725046533436914327091918547393559525170648622154029534722934180517515785333259321448092103376606085900610423982578789670200109908905046023188743027827511712219876633466705641926049567361978660955334867220538236830341938664644297355095771787846013968287893722241325769330572350770400265739454513817791230333824383759674816623464580226481891574515433824769111212416395408184552905984403817537255485810210975424436713533738989787996426082029469723067665739192953330755960959869030660106927729731611436735973437095185496802759556387456449740760052340530195740633031211392057346527022778366074637512858502678952755931767310136313582041927646283919253646207840702780641446682020138798965468814672667507634585188370749664805027693522472885158676569654466955184868209541495087617329349963275328701488129314142266607490933226644984609847346341265730594633126334846426334587293101630775359761199174656392903472585216954927133133495270305027274784980597343583535003724315099460951460489250680090413215091920304403174940725905765624537445866848292744328801110087944854785682249865420598226356259799125707017085626159701822542194236720863969250029221799011307328677441957241845507982271116769770768619167983430473798298637715511579775558704102071435736478877665575763750384028801930985077875711147010764270593749120357548411925910111920517352462973275071557589246733638366380579162565725822444386395361994578242752532015517584074731625805901645721698157142740744842383398871404305028154460593128267143273469498374634878959849589853589241580801559375749457398277447817305334336267341529231831956003382706457594317935839524300266792186267881439144079999722557917403867125041839664410786547422596926963969740793766944830041201997143382452189170476137646600702895179334680079999157211976160986292957655969498436477853094722951461422658147549346947956980535287263073122113041577255320589226728820389423256995118893939505370241536718918002088355057301148171395395942777133543460168371710406935588508845388867974256195234230589927324301488879254760654476897883633058148172742864228619694745117072383839551667667142696214728660821353412196411416683803740045443598749411322299252033120887531118770075054486994449993442043021119157405521353520046434276651099684758041378987291944727022575409126878169554871800783835267020409159956065676580163450199315075459219358389216619138300888090661977935034369610888344991366912367769161542299063174003891028625752138807001799072454597514239119591804563266774994639850580793366181141161346034069855601058247576454703986089944351673457713270380562906788845844642535028366065614815507939269851620068613586502317869692292587904357944154643134071519724550454768157692746044456386044981165910685910692406865454401761399925226767448741072208171014488586366963942734054610358160524781913584485931905807062406675248824123796405990471437814484395066052370722884480887944931690053469055622885535554731348491867442335253839986783615438391347968166038577273167028928116290370244247380812285155071813204077046931349330525974002220921964390526007792761937264926197488224575227636414491388362982161287341833488104470338769773128695667966054591372068052128058782191220284097565822761223490575181590095053932194026936415257374536751739984022271184582411928346804838502475940033640599894526327518571000592975168784839918675974210257649826782531971843495203814725065156783668421411378482096444897183880241375430983348046293123045843446466268539894462402408045364527751940352418801664213916241462509580960447780942459445853528125158808249460677400091021084965127224878338648526870054941316435880856381857656593036641186448085588112763074140005676617134869953258926567662094151540317330095283582489687095589719323470613046597980663596938815875184874637888574555831768694597567511589797032646682085433571895497484717184789599129721573265359015026701825471117706598858809282579688920174237724355593945393532669456955191035541686852585626857262074868903217537192037460898035735337206447108867587715036675256325787061234739995052948266691919918554165522708583572426010093640483430714213559268076583761545029844740839988658760885045040695394497323856733271183460458849673225076476722695091996592615641882676896939571929697212866591127331221388503024818820849914739527819229638161993581707801918966609014893079581433925932148021790055147867261286694608227707595514998450055848749330712670490875703795177967381086008365892790368497791644364333929875008354320115552488447560196269571335811749377367076670482673596087231000019738391024517833664083623232848894760039756560517535831629531758863431756287967362023153742906527035728322723065320807014388178377593548727848395856110005106790728846450381770328326257657250931583477051615926868152746847759948329698556986004459033476584113041834659002763555536867972675596607524123319931665190081971727647611912253842092288108890956905592609379838762619146495657452784301302823978436690520335060279767638761978938177842739788983695272884573883875646026544404225378749233875283172936706474528752754598897641787860159708872500796551357925754860793157538376453519840976641940012547315307664832085816028717365078607825257687356101219393296679027709155475273184681218431748113269103278060474876001197816695092332794598481149131860184888903966016005686724696910535921334689100696812081313823944271536882230648652518215203387146990005728694966500189472908945657748165005117262833925271478724186618942655050564346901124905231516759733667640144387145669584500590540419086877878473601213174911325644925267464826339860948299739441937510051956394670538596026622196049443853252228303309423380660942745368050063466538144926506524396889366400009432460310739816203115293912866798323543260633821264322541059886127874069611331341891758013362776357385378809781583244406055960084651115692707280785679910986734446359202249465855604836327204144729699103504236113733337226301085047029261677786445061030350912232843872522291637174834568896813077194734026137295822621931355954071568043035861013331625505741525604201845060958278044534905065244053825278027183226632863574285240455761820909305866879938457570243143388527844765410556169819465926016689125099481630341759977109231823790413516560786743328481033537635887468227754346008014118064014636400803591337993252881048827583568936647719684722186822519003153349138864440990591651433575787319039547757627285845475919440418229812962868461443301454893181571914331101842026479219823027243182430730911316038691131128906150131049350023571943461173057595440815510262706549831792844634338492341134202305537266734607540754887207388562547688295624205644281669142728282552913342402304509815171045539647754425887186772507206864835625400446797923284534035552140786452595053817998823518804007201804225971374032843097428635071649543261463369800494444630199843008868853441205014419349143627064857470069562419428863986047106347907190436018167113501410594323370151082080260027324142759668574840905975879708982720380670794475537619365270063366942766599176638983006837148307750655654490549310980921729688763440088676073965229317321396811777500125629694768733093884862775083972158900399692617135564638538938795529016422658165117199835573081721705818807797655374056349532290662081658459848091705914425101415092213786413374562278075607646596387173714278645365367887321211736692562603640701055974578672219930693452019959470626961418938223337879198254572112777905777059190757989018264381734043914260551022115807886631149873695807408669790465972923865303147569838323062019854925978024075723625263407714979403817806759164434724441350868949301486979874369701532461946484339029896859227420193476120355451444109632107260891760109579748136741134477670906542818241050184087133326016491142938187591987028765803623581305257746278308403883053779575165204849244085494799404830854544893050450675078945318411115195546446045932515662939074638653161599585424003323339368390611553611529989736115822435533680723349045171401457147264841337491726342675872313376306097438005355652700117363084259660792089778665839164172376635774123988932264901591061989530992584012132893051695427409353881781894439751282058885103127527056936048414081061815941753388166481648131473332574913486443264620032662464729434439165684491340444257015538040844410009646200467985480224788848973093415132667752638805439623840017545209793388228902141288493094089373000610369788047344418983708214761204166130902884243959667570323717566651537885811069350776619946557039248041128731324932342268494101690535920300444888657076922718786653356158059708098943383280808278157684562599705429554804910332021748276039758204274338556709239342665839346783129688238466198961936431819730630633062550762114245084530076827671594219683429622481073161094488986348142577922941235746018612052422436526003854135467011831869438898910541555645238866199954275555887461399576306154975381970078577785917883511946129239203727656160496641332554317541892651636550014186444001825006791243633555328637007032596999053685065923634632530128780668633273479454853090307062107126453172437294296341867146104394361342983688006959841252737482241000150905159862997690076045433389862403832602552161570643796804076079127611931436279335443222109492014651676415220279872117357811010257436652120741066101733010344378111310302784942961020257446221760467788453488953151761631515521198105915088152104897246716257012147367610266779804837083127795500059569926131295600107168712166854260289421292925815611979155241012449907706530935672390830177375859301002865482350182753897700332599602849510725543095492090103463080714823564400978726712322293971445990039130965090268044706039629084364549752562735014400245387488672686631552474019584072998361362704782386610672570505171589710347325751291183678507692213466933776360606097982633813457292224264823514502943307407777979232778814400163891771410941125753714764315119026142830276296812167939312498648246691384911080458295741815139431420003581828755416974353517647848770496753505737761888478106268830972120983896727073471624843298709778463103009911463421215665882949091873740419782897015330085512660752114724143932638980473092733046714729815825556577643966870740508957447254129427743629106414065670607604003896088888166369149535894111828635595385235849379409148099865192850737260717202569112309211284658720608678649598851339713801433535018862510729642619576124067732157997857018808918724606540626570301827335576247919099242306368284064839458805464382244655947439241097043185990899866893748822088460022811551765113936879638520606525708476150840573005253983408524587956314926012737643968410032273195482099469011781195797966670681815239783293887638074407203356204177188752244300957556042323041137319759920744221885993191871936294851398748105291745256140214511739853671538551939588494944579890406051080075928372156103994215707042702627806050130045581896315358460227452077221317360666958151406468530852926994284174802155701635595657843963580957649669921745968615602135588208573964562752250248664575293409774915524577801095452885878189870306486725616752690384244960434742956268187014463626969635138923719002908608643260443242573771343966728360115112054534159791404316420403178284835044886894144782168872869960676652874801027302648007531003685060883604391662932322632430763508724660701988887968841222352334726118894988808006582536418447276644427586131438619258859971603870059047884073975023765762731801024221153103698332734463209071281855772238654096688481354758932432838166316238960613074301393095171338324233976938503212478669890090183190044727059379054887378296547650514592648049995231741671619240603670340958166949080114703622507246239728994718480896834294338705490678771976895633538892125342532586637246209594044827575939870790896765544923671704426214338063851477301558464130786174439668966114958738718894990467509014483609353561564344368083305862082190891045358300365488882801719242424838470060141173056048278391946732927542051578500983342667502383639914037680830017893009773013648766499587698662139593901399875892395846203959053233441207434018330099887732727386511399127283703029507423466660947075481399450532006829038163350491545952309604685351811801016074451626353565119284114481894072574094238033223461115909622640705074518189950371296916158686097263749850715859973026185164495456010286364567506553217761925924685186812879719762401191842789171567488918438802040037980094443149919612308070372108556663825721683560357070729685386897153370541423213596750664486970223156086933284108933858390946023791256187626803020413673345962371612298541335096611102473033703821297874179762978412665784342893834483716793356207422860181684150758278710329824581762896334236804520804475309698825381984643779006751169548027903670548268896708473690638232178074281825967397903904741525661201794606710545374324529705005323985497501831074620183679298644854763229559882277301950350338549111888145916290164708896971996667227224355846398869475702262018240868654147190793135836205715069667577753353957646167837578019912776997518962798896714606161068474537824897727430982545860056507743450697922345980453678633615720394142935669963164793779483354539705134373368542005326157720296081181526320427180918734743157613097149132268092985204592795380939191859603552873570654030389727538489412833769786731673415477798734495491745980831062612229358611980922688782445184143222240279419407404807100217898878921247996641281929903786885674990738209624937301988260228153585278808295236678364423267895667104723069863399036343125092843861169915004284821719942584113519470108343947301703334176231971548371037392064304790745453858969905070817568500957812626372401931392307891264469265564145985378993325189445924769210946529938747504737813450803448352589055228111279931572452450305079259425581015964848063316459185147755297815195455638861952198987863133404877986629996259553059154643452365042887097115485584006470767669264419964413354508875312691881497588694459461646919108802633356213893133026486010386224640201717249252403632639022525431124968472249727122396291109256878142333478971471182542887823870972164193629448216420262333530405998717540499934958290279540295276886987252321509075001402639064917531165440003646541962930335945922319866939075242638348163325530365564669345072058436870455741214328998772961811467487762900376168902273293947084411895114140691639259868956497021119177629516466249334996954731032948816037133035922830443899278743262222154335968571577957871107004489130407185292768138996002690929996827971643342510241775771281851084080376251077882823111304825159445731782262636529075541775282061285445091810895662281028675577773910738119276626101678507759557804511993375710902653699398902157771633316294017420828693199002793276742347682824409567271704624170630831949427724407382277224367462393831663404378887105713179337738716810216630199899879312782555207646413410336940089694002060050286077493453238908010223967013779768818743430028528892463040495053657482231790114025906447095659612592266214207578316561636828597879102709962696948447601733398503893872412620336397254978629070941835535393446033361245973307292607492487876084477062661136432949111690788803820290403030665288309662862572170233189826362650671729881099238740580616493331243029423609631258958879047673558625462009240608139268312904577040607463517681785515756700921568727352432845595944636540460267268100242881545076586008978236662452266648090405480132882080195491848378347214523645381393375749816000340669121421093661670327732924915531975499383860132243988086844443342263278576406821888817967856280514404356217449955428264656160282969746773884901620944840266849722881007623913404407317268465670573058796260950100558265064446820184207340577031340375024656157036265685915536610697673805837374051962210330741719524028020700498221072607129637894799050339401945206137830247587940584476235973218203670187590225860383559040431064574271479418573990024128820921381998824391346950944279827806376780233867856125798264990051900908936117029480244800153882784026855570613570098778771528569351735722221435376847297429170818054759090670702496461194134714198266686024619711466016083950685042720511329544456331095202879398362785391591666725028852312538108887441687060552709440023494349295275484198658561015062460419316004755262819543497096370528919931563177046610178373914293396822558901114049525072134550509894321977821395426480913327921181893326087399630123587645064657640047461067927078029257383380967582431152624766224388424064610303590672724251990854213286812202673883473273264751027660693469983146702840991923529057374288409096195694947663533839929717448574064762724889833651732132378312497974528862205977346430014428684379994536676877386332452562248342320101715864722832870982082303840792356558515604139127477260980602061121875935487741920304595082050236122405330792747057266485763998026743589340252577486573324936530591589854172723938330268382907858632282011489580023718147196993415280027136864117303395806666104226154402723199085824747046785674303935316270201690128732730949608528081990736165276207506555817484348012072538396437451274364782479354130892764910466131869620547635673349134321312882098451343908181702924519076127184821999229603931450467160709049502755485666555684934541303003971060487811330346979626927293618761573639124067138343525409530181491003099127286854896738948548534407777852882707602544775344512725165570525242430996533760271490572078670369168180576873075252985021834734125778195197926672390211965823145388332516355788511748774402512354508423760234301411796927999539489192376877904916600468905025287339567097271582576095069350550759152949953904433369354285386027306995809195989513264689813957475651848118531325799769465756727276396052656092837727362890623737650844188152840984802431790601091787724457864375553271499043181476137698305421849203923312457317372108593962349891663300333195481658034693681072786711027425390412345126769620401308572499395249232537209551909465267983092288814829363134599928115400935656833461152031825131436196307938603525255857275214603600859046202371849742807767472514614359806665963200534631788033291854151230251439253524227460136244423878506468796579139388969236923195703260152860288034693461726735867350881474808476958430540742101175629934662251588337599640926368289572295741654771431919021409786376939898705570700884158409927392713254501059706635041047384037169999771158565179672753779654407470030734262988481607843795246786078083162393370720746811535387160511107585097538462012236763213778997083234870582551406826837562144455092669098321575981606480930320738234335087518025245172775534753850694569186057405638265354830784218619630450258194561288170937225300801285282983557223316102058709676119098712311563507300618185735142595504661514403871547025998201563933173812631566563098440748215851187415664692178361694093820224862862220635566772177731707459219706210937833518602188375160718678415294595401263602610591946623975771704334178031000022788754530900405861441906479512183833079387588717355017753143230642896820937244069676907576407381337804106599958580611140574793349563903370552256398880057501459330870847746428532162704400336986638807815713405176402515607615140166125373557261044993465473419560950842796279631962747908121287630657718764953988113613336664972354959123677397010701684769905399330201594974675281254966756449380284887364657489800526492019422219977132607795295646955485943892980733422473366792056353330369549882396387907193836985592430741573958152317972222622370944701719299799803994743107266392798024143021093227998256142193008591612107076177977581785792456193594708029906304756053568646966309623858334142693024687446373404025308584543585376376170628019740555505300133225107102480014673115046705988537955211705152438069739600376768278143940183966456102150238095655616227667936690591551248431136383369578328800972840843174819370332129439562538372800292307340881395723372227710422138655004019202364592203342769233040669875343782192328185692961745169285786592755633885755859727817749780584435980574839838508212145724667764052480830976581209667114057477230865621777282898980961293713204285650289087027021977053238190639140029949834040723420575041374971701522744788211330380248470314940876742950999587818151085768851857863374393431892002075301763234709575724581319320517728542468236541306950161758558438445493310117340378517503107603125605883594484946871278366384830684010261082736613010717991796903696832263670460504667270514577196014492168250099306726558335044626315730558174546716414376323836690348215711142389367586487269265982555961278308809002880972896718953200151466593917252190774883180454672986316098433496635819902381168106733131281216319853543525931971393460900078472300027951035722845847860743704379980714974430838812890896583234434676436176806662024734494814806011462019944964812875864218334031349401511022388626847667528479394990663742229996506022330687359679975198241813228522848096344939333344893992312203417379041658112489357889240282925811034342462842203847022873740070322941399413369504488781147463328170422504692555444116825008088298208567381350204661728363469481301118210651786437775077043148566555554872176234648807768138536034744569478920143226579284590498016270546310203860752335282724990256322679956563263763486024690302588779120660576008784754312360607259531806838877811553880424531251897623587225035379857775166874595388429897863342242707423621031266489990373063853977504599353247357299773529401992306644936309535301089492401462468451053258218965890800802568283656438054131577740467572283806237087616867808797573766513104728671907134102190114570636570206894609212678290755980885065356168571525506719802771071147553345842646571819002495350874325606029629903468432323487741334303584592659968198378501873335195677090520203887243815149061820637850966315165154328208922784837720224083308134350027825844073841771818100020661159783477976560351418676120013821779555180427386461176386302917684550101469352470482094425343646859756673923010416482626889130171218902027813450947513736174367946232559038743357217352346203188894827339594816199826821229457232520842552945577465809497138415047805908696158028063972492208723873150873682879926131624647951704032446506175617681890118820310354744128594683011291824179635470574069587347892951940794921389675615336438662049693997877088513687851164231807536107222762044843562130896873392243856172671241411351552320752690852795875134950833681645811006684944912293271317125151307395593897516512812169523759417829385428316801141530057380318739939534105163225595906765211229673580623038512925886871517381688482991536805739438533813858467321479098540807327492240643109976304260103640654324175342655337515214549442791691021562686354453180121352696657951011278095674461105480891538600243184564263353261403679815141947083598377257665093688918180406914697139222971870079431418140700934836834841055092223217433446591650811531259358823050516219046218582290260419005389510293553968710629698765959793947490483040470524892823909905308536099339763646031982908071372982007368041052123442360894786098985085143282845034663714722073965949310524827523230368287694250863113508499891362561675436680853212254434056856592242591319822557925330815783880443805125873031155365375402581368038038006794903905434301350428122540766376651867676252774957226037558136554845071719889704715043346167061032121518289013867426119025636997419339412609560299396408169652917474988321386872418085132768480137507292532331324599873314283557094705834504757196829102176708806665666740135028451818850937849927171500783001464747079025353687946016367267758997787343752847402549099590809655006394844057229244434016497584516314048255055250828540030161723701636828880930612056165824467512213008439711341371843913880118643304394134260552272367113721484073845946766078119814858748163337162510115881887270938575546859708978647852790955337523289978563684706376755269290307299589566038632054867255549056609709344632527400971528735336572639302168184491726596088865870178148945528181723968061237246292440331975858080097577015563443495474653489246961431318406281203858926374470041035213337190232729107404548650918908581111994977427509763755543898997562437061178136137198451608731344865054362490700817695713282221335262512048767172136642594501776194240136545443338343088963033739749880442113900941634974807756158384284866719694845133424901875394854223972373073400866261016694387912789504340491529698766350332005388027023885270755563628879788068391437903224214743943106403490582606615784825841776038506494021748725426345148318736350484007114372675275579613649334776399977160014964604570049055847831210584003441326230489959954216345149035511615375909840119494423607182694639964567418341948243158641468899502165607818281150021466114433628825680099247024075701689099906137172605996310650173075312154966034412132176623232865656033896084421562260800786984495412247403018471849422797537457702635987756630802493291409744331794687244898746425042428756575062733532345087827678671880947065943472563207276643181521834703571098965439648751724793313921848186142031623918214906927209590196913632744995746951283275100732248910784066570940842508115599356298796969827381293310934103601094664347034084833261113441459706780953280885358095732874178728348833882430647540533956403393563531724269257422662192102747017471469550277946197792181140555374308122456610715705290004766451744644210528325917212650369510939131737439757474370386418411482891893134601936865560031779880188390492149081964886550368506424570862124704092132539986042075293217804408565464403516033821539467016970654470939303310041247586039772538587270972228718778390122494417991222864654154672529517001521726362790668304217813694892107850519800971815724268870778568651439934939755080828479235923777553063124591201157992647732079437760787418032592383869590322166249276268054638615111759572487403576176083701022412510211771397425456650143829333348770289235323753934414989819461575358139764959550867136242291251145929731031831753213328217215779503733063589092651580499357054726144929010129607562566685917984460577225459155034537578221672444327493362838985736909835055395697765106173976277996049667235982699399905209100038817079286061980067715178062017125184427905945336451197515558408799292597660570658280823502521178164444440845621330679880542220575464537244833515563754147248612788888055802157574095886051015176068021749522643559663175162397802436558920255706029068405532003776541364835248947865844022529419633788137945281246436179073821151659611677476183975507252040448584021280973969695252111595931976738059860203333763537672542534535738976801987432959045827983568084189530909383381265033313717560693588377707239556292053248642329070850232922000731826477585591529860702069343701970867166589296195562895257056752165546926576182191765730325681358254011498119054314125803608144068526368657462441109082115790709515232073191169100331279563102075344169237258383544124145982349226399322884215521722657623372062651133794986160994677754152326387399520838920774599811111139088563921547922727298658625999618033612303505589377409381469573004302547504877208221578814421471834556050989318336543460979454168221398621566188312549589228333342164605818523549433530251724047777072471572127132579048189599108628457866735388927568307852659172868328993530569409965316079500039519805853694273964694587409427537593714115347886959583336064763586481863174496440548594655477887948276043708932296483450119178928018323392408786979718599482780513256584626376804541866020087662281861036324099677402634472807523475402266974534731408601838254802926670272643308076328568360595943964844413913410194373596088308861156761867020498315954589365889929866674729352355502189456498864010945475148736339795412583022395384339994198940134419495668962451379231698476205494025902534017410636238272885755429016590363375884538827201117378135678297435250278677913135749653820225067868296855294464954215187595921765327353920346515316643639564453294799573427790232428185917242121098062834683540598192323721971000418775567133322420971238614147036583623617555162140814212466811745249430424037464506478803815427264746485808334689924053745244720789992345130035204376292926170316054285097061845441178539776309589722452099431959696219683318741069597773131596875568131289635258394649357011120779530911217222420775094760438093637661519797768777171140438972555686610230863731390870196203018363757004156440714814588261609663374846848629806921421707126151950567332691643623438394614305743247883688058855267622944413637351501663643962292172260196826451029922131417798070852084461421060940055956542609511118405688120127765020613073265777367401684428480220288759195386955263951570060184800209456917955715949336406738586285089109433933016414638507103096120031779086719797205771858298866512811267195864423349420478286352250701332817075690003798442037748539835429034468156616216659937441832525118176397179228301855121533325806594910363551154002125761911828056313002342892121628251091944205484046662985188138547741424438973862661262394051104294479738172095752695196313494774825421609781290418457595705345957189519362809496282378137571254895018998951632404250261236402775360024232895503707790229568163512982664242802476127445317411117631271072551808356274091192898463166921195221101951903298573803562674656811077474438366913973314966683781840754909447011526259169460591119006689438643185236139843536728501606260475396935825964248776185083471271079929200761255761933489234438791839625326668556848651408821650799816426028900024635166029808773153084559249707120973645376762930311261502599710392866916029035094371250736438906203028257710541896046250398224866650383002174191962197016034824378485433339928815217030861211725011473374281844500857330765211859963202312815592289539296724311969023892894254774737307537327083182708308023882879552202606314606814388870307006413415120134970997483308972357661521887573224721908971998534543755574382647943445258853591991541363471350401704606431972887548512392781454797666593945923632115214485818405890261041760711175958848732793795054231677140120539562262572230986997928217830989558508180129248092158977017476967483704308847618519835851524283920928428190388568031441456061268602912986806444623191683793414452615164522515669591223179890145744993970384869867321782518154562857678888788461001542173736556656458939706299841280003298396426344453701699582843337423561884127978594972548312923398102625281535603323465173218885463906232866166177714912595952949214313732168716973909101018210700879106273137195848119013012778786575207136549430272060517261956214057054947688191004670461110917530529594313582031672407871379840180509424490681894244762088163752807617932932594998055879015842818644892894115300617810318285282429071161088893529922137049386903753256697197369339149671516931980821901354968199434308815705698143907695392098056472546749493093669123299346225398262195750356475551645373722909524491150898715727214857970490045250662153731708902006280596824969791357013305126229355701122281234073313622722345680149631233736437711541414951119714558930356064183503820444022147513953848516804436965100567433686957912500216247064993336990400058001197355182342757202912469204331537284644275619369469279700159871523119999326182566529677159303613824358512137685249115757660306590362978365003577316001434519335458179363390091368891406032123147611272916647303409028679310031809033265762989515814118677901371524793912073464595863394134895465773718145131113134033014231019842043976274719267765798344596678372228105794835238849816645115123273040440118976420269216500683077957182910545273150288247278307555359787885047692916127999333570666797874704510098581004564404327050941174451728761190452157891774401624779607589109059233850876234516865917025964880381791086439753257023173903083425383590239033764571383799280194104047897870812138630974887013626321467995532561523029954942464102234549910791444719678823115530990575660240116503295839566369893657871017610788465694853452348377600453220087437358338073225703814499074572998671341632713421434430733991528827813995091755426958734709099484337297843593517612376241113449135629100514554749579785319330196619668904239075084549892243721839227256390197693865822810844561616012028667261919729659534006131015846854724041376535379615366675901766827398653738851689458532107129016297496305873999015341276872674345092889359015689268619504547628762993836972488846259169221882946363417419508337701245260695665181339294211190888247595958626730109457989571242288214022514018242416845938471108490187749946975276831129008617668619736765632856697799740374780169070348550357422304863486320302045892762892931752652852263884422591837142257695572563949745641302974414371388783104537663904532278066787392416902103917547825779345416424682383444929129071658128850285588333006405196339097336202669801364369010251111303240234638160355453688975537752183931566315543968739939556032990002342992684629825644787361441122357756682960498824578977764439258571629939882290234878043152464545848882695935343464257846961813886745638749274075165206677775024058034822135242164973994232586366500554523436788863725120136918008166038064963119123896177438485630543581995834933043299577028222960562809469552042594636754469088633000876122804257708517452472457126329003304880940429157890000690609991625225872155981078718671123770832350902044516186400338021438334685945065951206210648863909832793444810328270209424968508002049397394054638131623643394095172965448613830788884881928200048599592736848656374241364237541639428503966399977923558316699308301789697033969754408209362466372116280809655676841438613231337837947994538431874426469049150325821378291455363501584447520526744239174036646206702422500327046723611966307719773287288938417647863000224365408183363847231500435006655904101689146637469065495982474672476609989874990650599970375145863039371583936162578766192930275016555212226757907818308008536166731745848492582206650801585478334862942005561994743776810673024544441074335560349856335859482575291388300980991256886323956056387030299085015326725675692120073139554435141871006922643083870048903222919440360389338044114076735063230083263192179585809560083132462946225865162620261818457867738419346648687647794907456025750759286228291800308112408484612300236820253322616553330386452868482925851788499548574611698866177136901399631904521601921791476119868010464518288073122846319590962319507063810533539496818349023448067287482434403297940213713208722788831916717910534923769051618674076448848361944596378995767209984731644123157160662068249981262370751638893349634549053719340728296302984038219615854551270733795360482304179549211784999479225922927067429626383140533091698967122419576303011005184237085715433368585027145077076814806633439006395689960453034692970681355893827254498964583322952791029520422448061693072227766057459013116471471476180639364325277315819746289001344602626790931091968855036299478929752970593056220703592107394314977645205228612115564817907357271799719350636720854732003562604475142357638500851607740767427689648803044071527534543139595279515716051619338076176392028121904338979850918187101568617057115544351239453782554942898030984023970719687018715933721909402040071962104945545432178105176089584881977529944226915292329486144931269065250023760766634823810980769113060389426943695848871023335520274939178340029954006833842768237462495212663380536402755036540255121367054551038541398401796905143610235247134724401504654529069118504656450640931463682625530796155844135069987424403620099996198590640167213552889137087383250562847119321242762731259704165784594889764590149110773467115236375591457119714686802765690065099228850449156437005360085105817151660236301053108213701760970942803858675443483251708418794678942497919397555787791195499874383025118433186151169453528321584938082662798201230889338477510004017929750539978487438561527974561394544212746662280499308301104636753171726007924025526623294351382133673913306752490009045758362136358632863525900210213462596300072829428250792624676317066192056457654177653947214242151525760351884338362988529638130346138129578734875932488955428928901032424480491228546398397651647851930887086310009932100121183205734614717033665126748127469272673897627484134343961389643940669846495488022698825156278746995533021385936129902010158949554732765052799620066756227286001046126355162119954452198877011554657405860765598477480926738234810696435629605681336176231723430396373627263446016257113765438257517722220339003128243237735649630945092496604875310622430377110628570166930155687166131434839933951936427985007388693328385106811591268470608221136465111081354920107001970517073802593773362539709465156707750019759158446110539605856678452694407820452263920701375243011227475992541956861150971316257108095681570731879645895580887775593215918515481870537268727140371073850916735772764099179424043687811390519402040163735908297260478124905485226768853164280468111599024164362850981277970127290784285351573414411118370621882978080139982429527310161357346684407854120095330608355118160838748410355604792900885128421646278072901965854920713543345425184709411135757425074418862081248048320333405571225346914907841641805901722087002755788016840941529871951515777628094348835122248567006172313967140314681330202004798240728693830812174095206728988411544753525256649112713182093080468711480611111018079699683278521200808195378562617269504070577770135461995244347466985101503048526725338681030783497927251980339404132627076195952493254932321169273902413328951330198530615632529245231315609176672519398933509674601774035295914219576279483555891404247302021496969115017771369961738808201946686126661204403672388199984777853772718661815775523477879864362809906165185861050176440033654259443328233003669283558114583664876796107353079862878406448479790222179794060323313935251885321153325237392979466879684269402592192051117059579819117186362615358683629027985425572666160952275625023231880889770535646607123506364579957001672110421395365167654464887676904243530989484512048706691814687314694388127757104390710040311182113705967555522218177265089251820320981550200204260265181034248720963355921795201782496861279167999075121304881601249525444239865493439802267992765540660003589565242445517102874710050521801062186604528206467064652200044193750783349816319628215346154820902783125871447487650538545199719950379404461875291285091860804144793882817662699094478517822883843700860359083114768022719164859334585941429696694346743267879199239062236747963707713846275955311715498262012058614929895267658722862467573022718394057947713548701992706382061705997000984745545848648206290056466878553679137824322870462229234566913678767500865994217592287023626540790517339811902241663630406911704920340365076632022440097816239413608602066765855216960895455301617782903140586891806992161029943088912268227158226392164464792472595056141605549939376486033276630969563590264213663622437397508606667094596085410288703105208450480361089356465241951452502839711383526733939426498627377403719331694883849099259538778494085182565059849415967475669448044430830620757638730271753472791863194818077507227924464795395767972389480215572935771464509831309434872864879252691057748716499708763297691097051247084596748158168842918596640550219583700715085886325313155533911661610340254080036661392238493318901692970635827591926680257497339007092268939508155792281368421766714571033395486085403602033207242303278991570050163064682390827615192836805633280453521252549514047379566184791315215875558755726722114571414770889105350966155598137541762800296522661669755783475985778511313383343939267791595421443966987796657181335799350942339362188389146109274737168228664091316828465783024848521251556163562813253799226442576060849309478423044088312150175848905902861674481945602247856595188048446131203702267098183170606599175808525821695674746156191881058085076173562961884068066193599873090138325755786475207012596812502615835567763811810539646220908073495419885328510087301605039832971333130076125234155168131723526172504892181296526641833881768385030650809690267722998204292938299376519587046499316934703505781021184725627223338892009814027493700714925414380516959769109657326919282901155430605187420710049164568158700830707451407401588374029775323521933413410587102118124672942780002373511788513575112659681541100555412687717050170019027167762539904308363044770117075883816054217986348645341974908926183166760407754506083903890993535801079236470233969010657169857072097303801618355201611628247713651063680322919811670634143883928312919909599215417797045288386302562679511278306561196191262499714463049484251506762016795461798679376944856173282814930805476787015131459586981253262424723668469678154323500514200068233953182584673807020438817520508477263010637750934373604794524604390755534180504252574593171522375766640528107827828023057112479325886817163202847289268171924959389929323897125983119457095029634574432302907511265867311046524403371271190723077695855331028307658376649441942652611591969798141076582302204151205287355526993239180950274733697123438761161808391983185454505644775895830028047634003596522604456977508478559161038871307250917911938330554665531911357339595835862788329505761004309170877218358826488397540957912756650737300754778277395363399061574613987239513199108096461024004852951780446555571130681379189431406045356528114098331172547572760555913583203037507170613179839408152392447305464474879410987045995489952499821697524828208146928674820054846243093938039569732301026790257775983589024705822148407429835097695887950219791970446942712926667042225379296085553507450683449720907180012180632497665126289208345032006924820783432530748843630555875810696936773139158165504547753894499004475980946236242581076031764821176777555302781353811323396412104168254379855848303745032639195462898735917322128205386538346516953367865762872161918973243953991506504983175773743119925445504040470816574776842165631478694478013571151627393324846383629746608972604460175802099856214138904720329625714398653018185144236020174242179638671779679886391110569448715730382885881472711650209415418554380045480933753046544627989831913781827745559709700800102301121418468264481618477191179996398696568862900198698635348990181703226561029214483819382055393581308990098962064422895785479092626023196047332046760446888615834558177816317342974264118092383833182357126560222232248748514681884450461117066192268525622610405192668578556223977851827950012964163304669435781260010336372529445792886859072529049432552624334972902034337305978337795355799596974278156197284611267450955769863153960405825604374284106849257432814493259801132773508120561808879691677705325631393054324502016189391829411282447122834279924546585036717769104209291439770640531666463706967227331158753746804608407761086411934499990574480872040799456164396081634171847852667414899009066483439542486437270321952978102629546374873822074539986973580170327189795235470423473874541915309230094484879534059647650789910381809766631113906506983061653110898017994972132399776383409869813037948735209684034560972830681256009595997972496869503507676889434609079497164504070715159087493425830876133620291920902453405110075048431053095184147813946809659141744366292282535978616706939698623311096562646936004842842938576722317210347155129423733666434269303321960631261019434340032855253331701538101066631677217267991169914875864136473173400744556997548496492747734268667594403028003224933643115005616146773313765481373788090996464133934409538261797266623681495445831229995707808966145431519710209552210968795914696437257131549060937037023649208437521053662683270308258222218011982146690095280391791993311982490147474046593633122972916952063904607192373942439508937826902736178321218441837330153069240478165216360118274424765780847625246520920793356151553174189381893724269409550039813148158265614369659128068401094249551516985649635826338385676337683100511680277112269947214400890313609474983370418225791243741944743475631806050136153270254369244211868242883377423390273600379662966980719757321695063566220282089008556209175407940956844548901090457134653109979260939192602548856628504288218951336152970588790088333684428103020130024335143498118612735642309012282714769462730883814998981088103805891289316199025132734726375138684461874721716507677668586032912825803350974748989089586476632984812718275930185892107937131299736355814085120767771656717429786369465859723390714283018310704456673661998788606017802178824919905608840122369731482699185151121605061863150687243959155733178940964609435372214489692196079597917818083997738971916695100605442011650197931268025007675766003259946255088821908439824643753449815302282786369694686433382809718388301434282694916696781131156225968911716955453530529870916184992332417435027086355609785118294721195789196834615597794994482199909654756262550138987985301431644646408764827584915799717252787360972577063443053505457403314480316186329792983742849733638327719643638641939627988003599710118793494591316128226970071289200724791860138381089573342269553777492636151261662398724862551037396036002257545378688003012066976294374755888670450837523180346489421835309220899372568788808066732299037763439632023240843476609390858024857051517072226219407663289074287807803407181741907943472944960646915045889508258303400109383922033582120545723836375141870941809685314107925255417787218110199013316112561806183167033781953161167895344162398109746829789660835559060301281094436579667626236505679758789487785515022958911913585831126436877271016056104623615653700142215901665238520066853092190192589626725550341235900484105446720315440611630346023280826983148879058760879827708600877644591290294908454634558469770557168311684318183078925293785711768158167476220497507636358537168559631863322176601897762792041189216649048270711872940523051208557501656782386747205095573220308153643795317440249341454398901724410732481585435005229526965187082333656745866427007863605403404372484349420218789424552172622397114723917910643565840564863778151288474059396602278091427229836580116420500079034603493636496480075194991459812699892541011863014485219723919260847006252550633372076117140244120768725245166510943903004686705040154427393608474090831873121300854385816015031174633502077945977237862560356299000525633442152123120943047492527953198208125277494284449500179488007571882261451535018289628495232060278913263607581389009806620929341163158227333480746198102398704385874640084762643372449786659879312217313609339044811832457048607050957235078085620133268618280506702258825793731413311612007540075092829299781569079993560568439923227520451190988601967819124088131378826559541967284269792491187970574662218814144896018074831989168226053639089099771858507770131955276210950905699262491853277924167443063659423034277498025453815982263937325207813915934961188835433001219581233060553322285444505864228021209152564318029752245868086192353279229180123586946078842020021420639758563887682386400743286160087395249151499663221091342257199298942760101476648775538126998683362145788003041122504233319839228152936445558291622830846694343693326295487747714624263298508037199880605375572524750817010493296692988878159738998551740036941487040908917415714894592324606184824899732286828801042642836811777165626891595293518660415454055718706889897021981843725429795119768570602733196134175613718825375508696298194024427717082861488652542701663329301894838613751151412879695332281936672627021960353813178730951183347583119789418765242682741863301885900759470147431858425379547835948294158220295862618262941643544833811622361324485527110765273998577587703283819945254698804267918127065305995342645322560065659476650719712764590444753197722275118554681361963939502050303465326737567525078675347558787004087848354614322720613408364707861598130276075067217125329575004859444967163668213938517899410799309888502765282529743384634005948958454164496302747834392478631131034437505888054426463170494121210687389583766035721663561160477877587351400846704197392239282440989402072375697499091908461455669651263030787116357600937513462975959134204774030492950958619716030752470588498928901268671713701155434409078211901154980499242519042742572092986899985842748184703654418583303941090689844485591349780548549100542748145874086605224175384999612575012464758145788758549203800314462267395099018490065786327981423378015490643897588057827466069038674471332395743352174776212258966397260810479330386847655902551914446344690556367422354860139217198206408076951720395074809195025381015820899459826135203942676500552699543161320220433955433776999565211686575528650144607460922112253101604817735061473717280046762556809243749577982578279948034936141679842913023853951581501353162028638242706426485933199877066565660564396492135775406280478357459153753635309999166819963145275279490317692918473178529965346788628379970584333835423052670247683868148074758352440922885870188906131673007585829773971752728299703197955995172267470263713778348967241333191553715782067306226391615777593711261348234462454945597374125324236105400465700342635120737810502320005776958923025199127333370759140139706405596299671414822600748043238918328210406857993511945589135019698095627207781321935062995461637323812340474841043614207057608609826368652913195499245111386901037994577824021359845334007386026578432171733600364179560316846422370854705370027059884714158735731580713600111443936395561751225880747319094201113751266642376782614754240364987539508494190368153027507160454170971369577567554972766959643636017692683815704937848876101839389541225673057261748310476536927548014510261822796524068453374095730083143428500535561444160620372305127679731374450382370281913083851930944458707033749975498896499106426255469071010687822186263592620924429747028010502881764115131108223542938667538872577275759637935393499145476793984722844057516170639670057604757577769762940596585818277165911363770848878259323845836821810121025530275295743371602133308876283327150701690118386467628779448552056054070233361709444758663160791413119634551241972949596189504646345920547984546899809507476176794461397527265232578200378107383859702743005136339663782913117851807744951373954712128069137806594238720805453006983690112506538222031831439483344673322642532899858551067040436189203355576952349977041886620285547452286245176927413823130023889754200661589095898452576778203693460545967539803708442501933498659843387160531268095547729816807190830600873081694184680424312954760956224308249643718677718400111250656241132896774490248657946464936716406397962214765113053457546474934276747645224845213504682185703889720793473930111751712742729023331844894755028594094510949709449766117792885183627492091695441587301487499071944074250519926365237617050831549666670340790093369812697468099520299967542390133059228525548632909147183791125788204578592843921099890260911706034550283241535797089035551605907748081163867535528221823479393909775897433787066906288827158651717530147166838775645198729134471480318580351399605307753940980171522116394009069642583053014793793534186678676429191456635969614998375440819282367926937449780057138596213158942418287129791182732701435699355374727830909432971987793412439343266216166982973582366309154749845904571101687015333638269857647386806858365646969647800595358643854847860566517857665110303224138726824982147752471950878880956430256645666728059366563948603940661976191278030801985891932448409358419817116631387294817793916772890350994516040137824766218280046127478418837001627176351629457196605908136036740478650470855759418204586046700221753765400602668553302119034246039694601512924734227119481318433788814043371625469075857630564395548619901232671959698834759441479717541864737890842245680600716251510038519207612102690914014463653666082012916481946592578001129995145299342943839508845421293746936660682887629151424811234318568820880613915248876235781393575930396792869588227864164878188273677744300150917155422963196772040248799225151728762381567902761064603950309573256093892948311799142145604979551495222590828485356668671188174889723253953741398243987475051788772562493378946116150460074355253426186834537166583436395588904407816375308319178420490204954283570524540497719519269009625097903186443981712613411088898239093642893813777086508261501681723301003083030158763597440923803975778696192780596645255481563030038160322025822085454100244206308279031664349827611331530960504026966603365299081614764905960199395056087804606934721041645346036356637716864230233022785932590924147872043069297729278651145498993364148434674708319004684940143425298132314017456394781465205714017351397672496987865084830496412796981392422544489656191049718780798490214104433845434556049504125082901888579291135424245495235089426423311233658194312803560151396557936603064579157000559128606704030586108911461316796948013077381893363245119430649921849775086870030229775680233487196609045665217993393269514445672581362512728226913212306612751585744269665417860131935027504691417643413444099230515701689632358864353815620161030848378845757979093787019909192243206421349155267738472064452929157548889296656218598869124067649850063535912178600840676158990014660113667375691306767820580208676656953325142958822645047705271965949701467237586947116154557268668263534128358352875211051110719110880420267543133396383646586201764883072186942002577797291642666731742998702002523803981482191056534009342751593839226479993796707585120066543074806686638271511370768380555097070798678282664081145756707915363274485507959905330155087957000282058333639052497184404204880509857180974833784165683620983428107794127773918040409489805049256768111525749773241982170465950127108447299789810874610742347098840691992170688053885632424202306498096501703075395088491840925391328533127298401516306002765842016262167755981572555368411780457916945296619136139794798230598863932116022977568495420981245360847791881114488227081900436947083043469907759827029589077835834543411380910408864686359200895573137798433115614705544125950833717013228136269331143880921361612833653984004287263547032422545709857715623313671576577171401288166241840747461056832677927782790379128065673310964608090459326618450815410413253300823630673137416793901575782251279382330211124288109419928377629164830907658248539387428775371824275100082775425826038343740644425133956305262982609457180364354112574497433371558910191559810690257525194928488130809222957137413257709682428525550412275126698963854543712829967920673270076424757778757297320385269001074068835365004807529400051184748206225433716120456142492304805199617828838329955383458341605856738628259233019016822326340843042962948796626180684522850410035094831651892335103073378568059866784985617338004064788809380256200008163643522094091218785361234676026442899172009951321887283676544787822205879905217125063710655079580077905384210633923001784158338840829357245753464893386898793816958442334086839343558308580286451064711825354313544538172603074896034226334145442694499217447695963949254903831358416959994473227776382448069888505418455421126344630230498248849488748404520925799345082316565483415635322679625558742643987929599550689527215085201374092205474687779740003535485166518694148760990436376155201406591134767353232631847110095845161670990664501063324708922662817020772748328787951291452344703457751887012821316897664061173133055633327157512263304077623014012111185006194518327592085655430458198402202628451084195404307006013448901168636550516246301963893323326542437619901174389580574261063113119873012307394671134901042577373987994419133036839245624979535044899917944080665547186203981507323920917649149320185087956956488617795244201330133702665418740640816991240396558055513122966101404718186444863956831211324637831040163625245483577586963112724628692082912946573005420032149076788825184173963645364805968234141768713893529941486969131866020692027361913217664319737903487037846445795518292153799193510119864402697952071740909115278073054454838398178352327992375596949403275139555765218425946395110184939309285956672573291270525125387930574468379793375100570151045643774777415367424973547791499315766534040369607686802805727825932948754940586883541450792973095081215853027452190143728764602580970818620833902772969477275942016491111056010444529540474822788482936867633307651952661372532873305739796707741688920901627846613023381609236448259215416875859599480232342069863821081258812952616324872715141091053506213801916366296753446033093289306471660612087699337784863123495160642367077441358704821940911832825122473269579543282673986816431976182545364209713540381128463699267315537271721837474283673864312775214405637726253210645272592139703054983935128324017923005889078799567064685533692257343967396425792254985536991806919916829243346901817453434502748132548695359202345773447028231216411782957901642851060379095774662280062957527348084951546256986040666051438010917786300358170297269565850532333385543240136139879528438222093726294499578242125430458935033329308694181148847705608259268395015802796647765135150391872507194803108801233209997348337112052431885228831670442366118001099982106453536347609712594124930978617335771417841524440208973772336489784230477429115241762986847871599809509831638209621952517363596422089955406474692548530536126339019248063092835016511279978979060947182469879713320292348689815449580515441568364866585145219713548526597688046511167152403307750486467842631922309375907002405328973132515186184774474355927621340593377196228050845793845143388663845833363689793881887461134870574626804022329479887374614698519610902586292870064347746690146403257796100092730530101211401337682857548267309272636087992072613029601453125979500904757683311149893485386553736646538609066643773645005649377024589000288945681705506906181193167356609686431403225584508270144183520274371423682810909152188839839801541112912106338823856100701403902841907262043128515075935357293470065589818443349794619318684995288019473006896188022614958758067099851615101928739169239969057835872521845182041790088881206039886717290139256449610044668030986560995925395621254943908890503637106059133007377953982120607821392126371896433552447467454221690452759759742162555700852352384121762678427179460607212389933120402600248069190852854941873336714773108922878069893639057477661900262913609382055438180082992266559771138884608072764821463599771466016907280371343934110398018181496804612134427124096640224108384560122648992894905408589011905724169632070772518901347963745154808960267044328489030572462285752295569462536158928372351881496069879685838551306193675348669163788139746212719724131517221472071738379755143757388348132834059293199966081511565351971599051347614113879290807084887383547184231916490183484209271789096428941292364482176527912899226907443785708597665572045424152647316866383595336494367604536752634399774748012710029505704198788411292944935318818140927164959906163748727771714323505886161685994223879117991904486056535243152784003902258642090775576783582481677344964755994124897224399366412408508970690453691704473763742188931692297957184532627134975108842758861346563082792673624488357106587599662781197792736326546904002223849524858267474449079481463227015917298849159435437101468179592530373564649133587765292864061528560958703611303696360233062000563154906992339129165709000071339933967785110760128300230459571761497038758183522286858376456280868111130467689042442047865952800695785615750068097408470704444319230302020831580823230886342013205721467587039059094262956321776680699163897671808765501163233355482053743849320910725616358705955879591440740997795958536295543606726814796028491615163083774498072666388335959351960655482029733026316644713828143680601691090700898532187318091882535258272454915533249609445178598991429489524403527671299666373742450393972984503444920308418153982974879984859105553889837908380778329565895972172273604770819194048906289351693675726218119510003322787605022699592402957464455180183020729286853849345062028440373212918855191711735538540127520355060722701501247822333945086628379956784962755289750735710099757100291184017286439410090353059679804325392950451839684808777525779364506095384803752026658635210623283228186424656831121966115127090202367122642924756788509858299302067090499037059846797702111953964456520527246574574851889233984465863183062596902630425516873118134889829833832817017800720719273949890876173875484600254558174263679027319750007822251902171944272521364404948171389462945817641330636770355092509852133201297128711301638283765176496489373536291717808216638224655617492966106909986232003480843865433254885741810161755677957815244002692158525039615803780140346764777559022799447094435847062221578374671228179824482034176631322721044730458015416737223043987248894557936277750154208185033004629672922751000763596406610273417535081978945108398425132624493071828227459589778178738762073359729527394627911467359709827412254056221843252743997775327902481182122734093756513307260577579721780974341125348184924981182595955018895274427357946994275543809271713590129568003071505396219191636180316894563337383132610382266449781074105765955078868204648887674560348642856030251043949655869472129643791877100125216336333105364699486440109471769077095311565743144914903401451209913114876595874740444711582889914307274403151440303706972387727060070779375779440068101357730247657125773476629234839288055758356761267152537864370560443112067834866312079281288285361376895587823265332695180097275520897637755037673823422669597690866400718542913334887118279128893231310429713424101973792695872310371696503436579068518812015042527696237476759699801802884252051727848692734340431717972300915004204611409144802765009150196277631400373477768616143473464049509650942222029379678507294640192972179784462756420580267071818527433908266271127883374973505350456226140498380159639330282869336483407933497255074555904227470090393270055603957098197403741816299531452367677736957507268480400225267155087779778096406029849271874322112331360948054773963968618204334117283913097727381398370909975203365350891351882575360412753551230176534231676388789614284116739521926847925050895236622430886216727075193163681397631302691338700426329061775660593593596972064438582018007537953408813188264716719076536766273697272147338016356728962408515925377644125343820153098964803398480932052777660436637844043347590864437072341552098957609893132162732714094637378693614361185310540290798160847331691523734552531638729018226087881689041112736229132272388007110373288259011336732046436694416848051555213136144564761895752057486880943732322015785322403011903442866764784118942158974263309643893885679772709046158196404189172074328319824892702139652706602184549279820759137673992023100870834284615964976522536142944916185442814567827899917371158638553157259182649174481086395341139126374798301257026907085300244278698128580058942594850451622247121332874511933611928114839283964367642184033106645206778809067018019097612277779790992627622898462891157561726834521180889572100701185789667657509130577735403141368650979461172406722685086793371353532504624431224955878407245291785348781155401072148917665984465862420049396673441356280575072428194419276347131262140174404406784859678292720137163728367073221097318500429846866723664327464772344143688240642526445111366540019080929759691761221756830402161156544840110118540580060462952802171798393498723722654616354120953518094774453460894782497274973392797533851171495036237644644190506051728433459983235611685210204770692239218109444129344775385790479793111876408345909861871246653435721616457363720517190554198628294674275400062822975701480290008600438775577260413274800405733251737082475239628665498340172477758782389119210386260416535013639196733146722915915953880748761047493755993491009686575517982395661516456528868109774047298962586847888150919716941636853487334701942829973264501647477402318048838510939799749184125717658894298229753955319654632912528407069214352263472063192520550107318711607091552783583525046045482354759094604832885025734606255613966675448457704537336366696490771607093273306203171225214435249078529927872160786135984771517679265117711730293162294735966815073827229555308866753081982961252712017862278743893401880267014591690940995606091242537465767300451755872796607391472123746434722630898658266435153072753847241999126777687750564752854052791127992971323881867445810757598299246068938499259675396252016938619247995629949394214425228705533374335795808478781991889822889360681672168984215103878957219812657572545200064525383182084207366626615114389479718088035410526141363783282294232235170549256034357099883984820572521220824614763404451111365160606406292582412591923626723658865736891166376974416056259385902462762140735720913178066618189121698179987286866593382361341072942360815214891784990802693777771993259756104369179020507393797970668996869384081800325572447866761296760425770850847898973619254329231854555431469607340716733890447936482481706978511709586281365513565518395909819136291214432891428723142662590309284470718156142351927800517218634094334356774970358180399666419540642409292646855300242045903717631402265632755134627280617577593935063671594629884073467999758382721124689501667237860084913599802611756565996623642700562564812753703269661947196805863107602949178507966877203460532268001400853561972624394801728341739935516530126625277081493891270984353642587815667083538754298400519805697008870462266627313924017405260915908047023795066592147549332106778337868211365225173040482333182380026563666852119944448217436063000174684634514408768305970468730221563534049341035479560372408036907842808335658825938865969851865857914450007438810126651380032522006173430175910700448490297875281214326690085362401440782755491331483792401789119329383154074634158981077847546769903251785783926555282636185691784577606902404625013581834271586605660258547441518538288823252319904103108377952961108498835457776158851197731495281294737051018687946727468624189302993506521860563337495300563081945213379645182024344772122865819425632959445447530865604495498904750034503267984092176333749024445854893703422773634752925606805541683352855450717928316397596137018956527059812914715357783261059075436571953008680911589935968170840926241394324894443804057065126786654754330176337582691194169041506193887766790900629725928365079892311543231664718589742667512025246178123953108227252239650402428387531232098039093549523156921926734621398468567735771481630484893608659119747383909667728781271869179952456174309141272124900531966254950225512245471556563383708956604918223152545211751177406306593587316874116733448576035203842472225513304401963840730714380556114822296695123778227593988703947104397760528643923721539386159594098370997219037298145702569395427589124918278104447582805530050052787043441450618939327760943156226820997036307367023127272337792392237515278707709360327573032070665482908801826222852678454448323283226045196515774297438778938133693812536196364410661447255756007442171447903405919461027311755704114271594434543574230411125846589009499872256110684662571070193943501046378655760944633738299653617561405069832821828130419121006396499032847379288411360072617006564960555761675411213421597497100557708608322752309932209790184287938709197743922284220174009371995665744666682160814841511698385055777201650890457177179322576892502089301036226633087351434636579064115989402226627120004234820301698741722048396400067696683889733374413688922758566753505916515330180218645574655024338801039092176443023929301892871882634710241331139728515663139242239485204910000123888929711053633380365959743425166282789920493363123532312490359201424548959629703877426434592258659455334995514025806569937032372908454917561418474616576810899932216747950499393869364595275637873127355962751917769865847370556146536257870829260185045701779653673754356475262783637069504873723102674530236423055070638377713932845197062028755247236302854508605263492395997914476772459715090132573180881787963226674028130187162032035704779661638313811274153556493634753705186153788398436559211437831745975557486178719957918204796763642219721015711045286778952908088318191443312371582561495830618632486903046158922500586515488903617486856630501042370080988979630498305080817606783177837808211328359824667324696361541948226653152213257740130104275230888924632051971842405899092013162769963911671736079203426532116041047070062450811676236748810758202665183012213514702524325759324417156602707927727536016899466767754131601670910192860017296375102951196033928096923849139157475170520177592029392157388773398218195902610755516977471526400059722080850780647188073819855048972328932640841325077644918099093449757424604484173875940358378630505899107149945993214385965289222667418775251660926518919606036968605295803827532390401035589395964360454246146592926442520530072402247047644586068448717659501057161090402954436920532438831645771177783171796912936195147606030183031617428107714298253007166340350557647606815688047298525987707461276762228900233663929607843130158074025859922319549966806048435927619461374145422101069934619185056894650401962791532577179795754367844523317572972978486352665216596386496642088823513664532583989471567590837899710123359693930269302556117362697745102656002831259733681596421928796787841723943315387508701237294289877231123847581855716402252366921028514254971608134822091710139320758745374194401875581725607594267994323546898418216044568744844746192347785902428865776302221244519794140664246362283348018537975767852784401470507296049918659632575871282733193131927661518769138191890174368551775572542341570543895595966486014175788927823968382736242803534736905729911801051800992407971432895854447618119245703380278794597060632406298426368058607088725941237642102112015941443762298387482715961315573060723950845386639610344398703450087702298730085988670636164400248584197912066811863836777550632163682660390043312589050101321191532262962727307167245598175403252062733279810858999159312342131006657967693213279421016273071455625914860071986411190946666488114032020094863302120625340937027520001312065821791913792785928111826478365682679648206884471683415252615807851928147877803240108660511435336643787333083199869312804401655673932964172892943951651295927806103895879954905114717809600273204221318178122802136144668586279139087131436909344539103567230589134490139944919573566197422383217318044054549145218717715765195231888029649978117214880183505032880385540976822008238160085819933325301092782370419509061563838876384363955157541920879986327992236615776022192855977029797564143751665861208582372149209081620134578766546368879627802725010842773450512949194049570773004683760162658283570403961547220275624688763395610105084403709259886537302348461494923127514491804409087574140981810507385245861438143903460738532439418390061217051692113297609080947842987782398795642957523780036505620791234660883133039186453042825781244269294348969531076104634112200715127988267354871430193498075361599701153171342576493857217088717159545373121954137489189854201433189885664049884615164434168687318195503118251714867441703248188704190311269214228631889009092481775938718116136945055546842120065353547280521617656518876903982833794051649064454173186882152884468291534036883933985457257648682081656320273821185142562993989434628031687703333397540947455662888008575268866255556820875905386713270563411025773424290170614421624062494535791275960329265028894221933679623076658548225188587687788156387105532560388341324703575095815296437196129831464772050567730603469536753841827452602628121457286515318506850290078080363495753628033428146777065578845214199532589435795352243196484242460683112711169953168647422311438967643583085552521512368222716615743722626821775569804182989692114307214419323204919101817487136416502271487421750122742427361224288320583650333481044530803852660542313649645013959387338248330277085320754477599474067064925992507611674507429293280762816309317668588820346399804846843876510953518244454421843712878267964406132815910911160616719025050516761473618254995070386280091985839497064988194383722043793092973948947975139201443193461471556155409012658923513214920639885341551211196494780575188794551270574114157704952561964521757908468095283033139699810252121918676373718028937258008238385326847594888196884967526477900643774838091470924044979980217046016595237924864992490668525289466493646012063378951417041941188581950976799321056501545219352524992197404323741036122557733327672129525153439943855463087431920639928621884078570099829534684479435547552305491566501955244756055288232440345497732725858365724618070224579766551116187077068474173047134310496078941245612442541473468619386018430225916568764118722837332991228952970043473758084092432073691498571338306777866562308555542773039241890148177754736381746402256326368305916805263326654947400894563255289122652539086813728241335266520065340305572967576447035825745191313510282994004353686948606944623242262405263412000678525746616864455641912546668561879723718145822762358333626843498394499907508176877904124326322240110364644708623651664840257193460427721833246635482002409044243555533766915544611577556071167228010404716008349256676129444559358889875813920442329851259132663811685571808304388275154464573399604727019529657847190419138924609011281023345574536620663346031019333086234300091319421760889443699647899323241242378574060238513392662161594062104682845014914143291007710463604787779017332628318578352237033210456652421826376220679352281207536970032035149176596342010876303054371094361384257875719789955511922774350926869215013130023325245785138031207587871707648524122309970873039503783760288495920789882021439883368264623438697337054961878763158631901786024764752777679110849422209738166217355864820460084175395564094605829161334591706647884962794078939523166044654366295070247916639157490362638425070519381969445001472202116877167609050833352217279492778526114267502978678248752260858052048809111788300908118681510707491318010532263056434334689139550599105450483174296549653984036129021053516502406146785429148054176157947246006584937724025221666626459423225528554842548564698325025736314859139741431088730641899863835844112920002291459907807449467817623259729346396729341024771910578874561517198371068414878412444869332421145221652011475280220820413578964679266761054521392755096704857325852973296493348526501266318668491605772614270189976460658873242987027707383988566508435315878965731051697338626226107081423766565340816077960940687352186437764765884553416814789243863515733667240558005347831518808808393573121019191211525329816512188645299660454967343110200698105789044118417401816148600328356478193830843219957210728845731436474186199473747714106865449885507375703010065602646291337528165821443882867794595902603979652910853964647975796915895889527689980796548010415254489558705808490268614369209259319314772756561398030574373165439913954874098418974177844611693943609808322771073877810497722965629484164438983945981449618255132723676300512363521074504672816809391820395226836090923845127078563895172393701819007246237833755752889563837861572335388633542131023612770859894719192230798282544304693453211245692159991555061082691979219897625631240609701865893593334978624839376213060254458245103506606456809050699143278031282774186547418878117417231797141962175167590422698407754861062296978587487634234767437123221763285230809634622085782492192767862900980714724178409935963866146563969839180043747240283101069672513389890117967681954669660299551116330585517065479031086901951523127245380460430395475082273609960275723481768120640347487291310169857300095927893008275441086392888590248548570947693992346584159052608647077908662582858825392236483153547848886235291603647605555709129385750791873482346925404840156324324912112422657593481650207394049758654231219080329276922810426202801248318454993120060946774095259845928614619368464084349738951159970916861642542840513821075471153562095527876109437597366080648897722720704940445610064680942207730723188885343212882136366194226116040416521949871672617898642275659771894329624296518970982224973034093804683742577404600453957899271672016766745028120803988776511325678678759375625698436909434711999498399141246213433135336466516562911149311531428098818596675898896940806763381276984189301988767230792966668197090163824624878033610422778504220093934911281538801185878888266946155729032276415242753115317968942995762099533855871114447574772209324371327245362885495621552107519127372467066783951792998653137997149233708876792398998578811770564932879769187052122215817808265375718154754656957740097657914285067349447629677903669767135707603121877248904678761518153173872637210946643062698764759392667769954868308527988710706286136273998875358418383822263788924744157988352436232323886697317050582226706434964339603528143476644561977098984311979325760521967868687123435283250761493083883657193744834683593910129068273766961365723672936285444235245167883395802011537506763636478186744771516424744403657057721451603711618874397507465674376066559508823983178313249415260797057769732499228500817154446185911600544907392459410190047318103549179600736643765023675513118144102121597608173679019526049981713985471590391989996171322875544622595922014537335446819272705428432858815885181289234840484309377809309910872764431596265205002544250175751438630909252107430445395234015570648690134573919476999945464429634886294367738116478012949690959748804529997173506152624424691903205390105105809314929654697598910461968595143952076661147971514560981366487391831557275375895014882155676889403635347151433227716247995048315979721726466227671982206714705039678372257895154906484029901745131744811150501160084763856245097953860331606595765634241389861197950592688622100416537905802181091499183065667038197421637932991379577480970459087288428791136582483782232128057092127654837898204333450935298654931617679778562446162733063320677466872506766794524108198491349912754741904224802120241197972853653555333096778357793454651626602116203622655244947721031098566671083059971076695171863381793877473803646333971282210390493480984787470779628558302713968286234450711468234306351752236639573894764851486448601887019327621770786409709363847246326185530993747937060091106879735731601616400637346343189405167955813331310990513362511947773947219966669809327947536064457137705469245728766247312102106729866983690305654387904770310612990692145894474787838449052562980024242332761899703640143977282389220809676513594202742622475833316368093430381712812537301024543291693328376731767552333730110371077658584120848923313695044336328842921437918542873299304111553525563799805702965167467714274382638057719839479716571722270056070302841786125516528462422210579630348738164180201239965961685599447975076526591017233495610553279583716488062995870603561745262345165164073626435266915918663796988393323040692799928251867526395174915887803612480071279950462424434542640489812877670666437645244248174166324135273954795970565231020436497937409805215038369444624474866926891306862440880763894967548407496341232661796682846215985266398381159083758481626577426826047477684581105684221487110531071954403492899718648410491744896030850627453364979076891830806271177874836755387027420220028152133653627476531519246381316219562014172488181014168887811847714632189008315801526390669989857583636064156876384942614942907405543477479255470616861740965882105165233651157392122099131741774926107025045446368695606308047985607378337554121747246495957522530112716062285513562235655469614338872332119748501397121444418963288763454558411470049263549880060788481509728498826097738976868415738798432340226939195590017624491046489593653051043579164629331602327881014271780686949458951136265311476290088687420551126335150150635837725173950283005370774485244126031579492988372689141349046555718966269984467483199473173800115947861555042671729643843885142857583607969724005261407705821295297123173290877759033957731137060645274101917091761538174864741822763873861215762229603774726107927707003641814602055272577712295643639365208720224412367353903451955915232244529486703936743595698025735382930773120065981527709623781913715337634971511352144227360564205406993653485571048786603559012943370266080303713001072274906333340919564386697557906738798746217894620782948335804675363228935917098584674045437663667936030270870654250160375846949948558633032301137286324668555056304692321885642997487137385918926130291876342846327186774665429462358403374946979483909960393660679253687800224559995065207919021334536105990214317724671642372603032223622534340045963280011988671534338714210618325743910666585668650504131575266299143380976578931192497527753958888502926174216891073336751896750078602446322064750960511346381484723043185947576038848988613145198577398873027650058841249242917869907986900353406383385531982389022168265942183013223956629224469033455549788274166034679109764336269677330417519832330977563746962936763202107767060965305217635245506805283159687521817440718558046961139054802013412602598098931560795089730211326429212759544597186496857527922146925041593229396331110336147365322933592049017820510583156334502687854147885731763481748627929964375071630208824945078633898469620990150720384714866703236056222083876865470122909334563043297709136991612904892186562511564363000527501893018279359378057276644697935244469214958754650295908612201807111825657214659238269592882656342965843211085419838815141928690353561028083235656022344522978893912947178540196136230296422985617307658736480555347132242924280747829030277991797559034205878570713736144585379460868270285790506604233038303031076405578175292783316877033518109099862093129548554785900280206569245166319975067115525267774379025831329541471081584707390916811344126463125202653547435000430867046079506003409196252251178030936506433501604403151947759460701010157206258348820519545612232027158795415327470979389935051264517817303935395840952591277862195731231995481854428876234792193773917202044099285205434286572476300894693186801473092475920850892294915991419256268812900781965517179943274281682293559457855488916525279389841767946095279022264553681580267244275863234548755120319839346895235663267676377867935214403937280387262234581191332685909687983109187430486739200836751794070664916697152406354459822883036597425561784239902386467844646478524620719164355691304098188832439192648880926515793647210059464339820777464184251890113877267328378791814134421652950285414563502867787594128450036602243721082787919533130089506880101646863914434137647095591803405596215103938570666989001017283785625728471861428460643543582604090591626578325669687787149202132506271018946727946950150269967225060570883040726984621166529077214226280113646114531784107033353228459302825701468785231617090396963291664631876396502116025900207633019832183218101155580212809198335727712246109262580078159992574228014920259673092393574480828882978345579567053837849245215807578839916063616346592742583258807406423797617728696080732340731536189668396601233842945286656267363451932397213889011618668459122323671086707324204039540416075534547397910458333549317087170420844348218170164472766200653867619138867733478435216622482141569464507496695375927537424732999667927334090002336302138800041684408235634192664157024325766598887542686509057046535561800316167376348117583999883934894615189363632033519193195060231683722200874181421121494744091750948668619098025328187128736787741628688594255433757031953301523931296209373498669346052670631887328670103488679992236564222637969696100789408314230357290752337009858129820548039801330998622325213322508412023605369257121171315246361416429678473912510917639514694763999484712469485173002453584679974604080669331390274701869942727526244285434175661746230787435143930425559895994864181785995342842049617871664338081118026200034031965442620999210499891055219799644094922651927636312927437004432295727455686850534449925392478612975650010076659106809323160253586690470457308763684483665080860632246218547208927777403494018618748386821515363619669181644562100425326552436177461524635662307440693120015880104218829040693783565634484624825858582329820191163448330014215137368187653350242175475584543256604356477354947150589451413977564018846541491486093304796265581521075758672181875988279884208321214553310898628842085790534297243741871929298339581294740902509527339915223538790379396895956356176940967279368654738883972625632095638479612072511714854598639348393458723030129996517763242972045980083813102699590451359259529658401766022173220079495254342061122167689661725411473286729880370016440523839668805868383041841220918450026007964395440937413375308968991269341283912426035288023279309988890667692553020660090578936306513856690925060027298768359787725658530503102424986790339720473163008420554732355501193450753802732408309742374365904970800349704467169809164696923059853755008455610849755178118737219800051096371620777559450003612220237416680799024823176682282932897556759895487738313907490418688200758300866023688829159584164329830023794898615659147589947422800844513989488546818527758676002347654293470778961344630211387906951594970726662442819394858892894182201475306893626762899858394769233272953412385350958335164339240611212629228140718979272899895011684507162888103143479211812881311808333087290847684719378492206511879713882180774494742935051652589649005297832946133067932193579693878284459249506394462597928042236388533833230453614972497859921165089026375213473160644333890663420835755808640883466666786912561981157537119730925063063990169350470372831966496645380016648704238657822809283883629820384433320551125936662962067584416915657578905273056545020566217533576895147287842025890080918797851474031174593251595247365418131632811261491056123933291839696688796594214428444324123051778529517457236339331187618153807193233444464604160180585748314205016873151330103752179504663966605033234193967622489492421507862946443639773665156729374133946809858225762574092798700692738498138170477028244134769008646442418311700200370266112125117087853800143298472193682061012174581863532424212734840621010773811141204822682465351477917021779363224231918092523281400445177958059815632107230789231013614930724648150162428423088940885647567420966577196914297814643747367761015943236574862135212352115757157498418676287236907441240649087387568020964049887583238604616778690719128834673903186855963978966116185269015705957603813490971714648468411151773994627652189710493941132007253584236865084743833574800712235150730159450562103293724526691828680255421332982513491231626759172131743944272232933449426709527092995160792705276306672546748734660561673201041960781142829406399696116985951910326791584205149634091805057148033957692114885683230990112230670229153038750974783143722559301303428041870755061324351483166719968701839016188713567229629947622059633020085871963645809890899016507176947648440266291879501595129207408468640507109504555701716991216763789781320285363678842059932325918222475483574363316752739012143003679218638145833237457751753977374606848296018318479735898447066389044198761216933699301194343470342915291205597730709041717724721067085366916685576978345316908614149204361620081884770698322615529808908101745154992764492407174375937201730211791691821455557815209361584935261810327527687543059823380911934635487362667804155578576196370301095893739887724812992554124586794662894175181589286572587194367893632988486100559728817717472206487535419870508359962020517578302191545336568691268026207027940506597136425076491494621003915329102325689698854840685525253751275150604426339593678921354390696475625936252251590718230633395377948904684460629639723238552097461853793641835747945734950302098452340287908550807054120140530880127816980593591208141964494508418152345006828688445831645902305869888505523618474758498024317620853279517114524974148311461695998045140773909078012365611548832216247845650496579333635680301491291848664797268537471540553420120864386137545015876904228359967649279364448797121174389697498203483817006441857786330136033779939647998034149926671140883388289456151728367980182908014711745490022472379769566928338697841191717849742644135790681832929726096945635547197373178171748231204409553451410779215148282038543766935170648627466804351857692102002865426875730979771041173990599774297313549106893314167732297586223735709508300361758082918658334942492580766238393172820402853209684302207748031811186572440378065896790918530846689176545944617094281121263348705464109456722359732868675816221383501992781105155682701395576141995243565893827701266869732157861682378987160074673222904762456092504197079879917712015142820556868690675063982004787353237398680005397943686468341724140416312330085406951572157770538869604939338048533703292256253196946390663855346872572647895720985549780193831293434609387174427266246005688041562590862662328156830541880522985146179604159200864359258449131714070031300966559704744707163392798765398514460196161515528859294578342877604390921901288223849910279431655203117526664312355819582667308877252993065993719333710845975703279423197709574383369438952527400616054119152880115604510694199022857675201967122216362899076275985065568513861218774655840892378792153048269392117821803751980971838875191239106583225863185061890542227956035357593060794776982142221970764234075755327952213348857198814515699949645849818081141849077564205186024510600012567280695845226660083991318108050772124364217975744272986082716975673244587510691334906234544436479680609450082305538061441327866151079122190139694707061160969643146541704556826061757796958405453007368725799292862116878166379096235132615712804757961506929842910523382245666351616889068023900129185554945575119876942063840382003987252513286464033663311291499857781498397425581209682498722658495245730411170186368842204872288370230960169781574843232248603795161456626682189584360465425440835824205654683841717586324371368559052531343147737543947239105591562163536415713519242928519443504677966808640023392260797896785337900340575725225078228349396465731977539832712044246281437155164389379117310339742158878632356722482269949708207178032465679915321562998522159292915751905379105363631924070762089241281055185662983752613457838687398042546044276122664807070957030062739425739906825653196932470227339973116281932062301783988706855039658168562217662003430708586001056566139782481424978019941978366593581038729721348921015921884379854446323458171382974151223243168487807124182981730086320282164939807354763251216881228447909078858941252847881981173375308307167749136506302548516389767669142177307182384788033342758837561905837229798790989108061022206036226917972768335535809669479190067984346864323019026279188649733413322859146759147682108499688314492914462346922837677735671112914689802033673267900336421136667004352887950035931783335835015992046257066697628831024605893481682731041947234962134697852557699682134046236188899414209552377937103740203968437804882948693685136751757664920681384497580245524883335903965700762650628914413725299449599991398876759068507495074152976237495616093035833901122595577842660240096383375106948161638910002607344644486520059983591939630285844917351186383080272561078559499340488279126684710747718467269736801750637880737073342615548411449684708393132255075516642915590123397374579564758820769033761610249052187979407260880938459197690332679936516708679619013747346099702041542792407483457078989088898085372536009042245019599627484017546427069410394380452927576081446854084140599511826969345955113517125624932938056075524966762547744442859979392599815255982424040970485451142865510542833495289953711213199089113719802025540240427764986092562218072141565061128149450385193150140763232647552572418842047279997957735808396543823259726191571467102882979587236808519743809354034902088631883312027354454882217540567238800057832720136639551808717044093106808957030419701318675672249256269532082183432003722883025044283729485927873686115817731452008280132984489542210208276436612699282704717941941820939283385113089276210088334069651434061830676160028032207655785655368802874576099402559351631944588910361204895951396848284945496334352975421793257428717588327383216157236482460001700007877285204713190226465800592742130472791350328517909398502177201667819718721829930156557613158268032239610257644625072684751717245805236851090330330505362821539546782136826209582240825415379339249360307064475228835880165427330750579862833585171005551603964183360802557608030215250731400284064374384091810958110412364670255207626237632436672602555913882698541313479568022096480153668624775476047940019642838495415720904826258812937354638725768350656331463568224101100243319730247159994360226098658470020088802210033114266602695709915374841376526158868760581085376923082628805402312051845968082384295015251623374419893876185459724291967439140748801664269422463814815656667866110517314212486490958439698796262898245708797255799358634362433327072128745067141216444211589145335186293098632229114032252914596745413753688595067768081303739709820263033600609976425388013626884351230116998130729979218999763656403729264412462951633344369157606818602643082027640851137572034523320562856380184629810780024009789443809563111923012047828601936379680960755915067189627941643697395202489927285345054805106042952390119234906944414125711727151636323916262524004098135524290500078613977669497661770234549433917990245550889807347524289167311204687849320114928624011778523953975763852147034243023938239818514770484202482349307050255903685245864645662833674133565063797147010098971539346826690850686034348929627256773004492823686113953118071424586132025996382841116289071687066927829353404812717881534836990047859740990327292680838073728981654066413569212304113245049783245059617153996637545934389935163241211215082928102315436999584540771896899683818487408393524511509935410522155807649563420928841134867389474121365807426624689414416400310897517755709842454484491620459883140845531944576898284284905392462844870038153295794036907371205253887578269384649727345473043902508546034720881082449773131084366080492629961634255153840620319663104690562718972326001138293024863284124117187745516428455035356577946985869972170478031257994894462987749474725460043492550773167577826691044521444584131309684571313258319364520692958407358388508457117265796020821381174943976544580178324594823980732956240561214710217215914293279708628599297936527193372223081187250495824475183241719140299001291887322850073568192720053447524703798118004330909880710296922279147118087675481408060287053314399574559190968862449453410355482176044763303202499527586105146454562129301967416039178857810259748931928124181760191337054026633325899663435045949930313095748647744120557812981146883417104125146084692581932340694759867593763113117973303821017868171459759567528140345021838051507053562441005088771672914437489819650071118509735392083411872086874824112447623535654752037635234563810878400627167327665864669204195476422199403062154757944112667957152005133443442277581763878239621703444002001638379868427002626033441957476773872304220276188052803732786440862498019353567257054654940756274107620733655654047173186250876215267996871678222595914644453124729878354173810781555430778047061698430355527923797288798161871517772349810188814544950300115112417044639683262065629184835907359182326072907201569733282225144151388482790462988312845612360445389099425599821612864205916291723318485619565176490852508912091309687866267435333672244415198527624055084940791839272711577580539559405580419987851494054489958215431907840303826849327062619944693710110038093900330579453375945285634371847003341508491869914526476330609346309355256876479040888332606961765318806614182826558947894164216619681973384438236995197043261108243589541735558027321788603916740861783351314768849780726104501396954030378768085477969314408417130774069288132643916219365012195521499283131108196614381717636086512165849965003951282397222585996685144042009550753916185982154480696081032005761978447264984155855563177092388915640660414381262338965798352108045977653030663605916770058634244604336407184480271117839029639447528904751736370657105614927501961391122128122331221102560085162405208012304162074831530005172975530701128235180706455287436148345089779063373756322305193749719389565324690637632768846001787206356785152255070305327248810641749524279707383197096149042967716096806249005526960511831708461384645237043766793071809947804039679037685078088260095277233068765173763583012466994865023849967614946798139249960963761690585960512448672208164067264779591308628157609775281059998103284868960750297250665571172083588271210508299060557346457276753722394730594653152324288343974428448001744152273654760437473571845958003795367592465022670847543689249016109181864742774627181534705016284532355257979261458265432826710510676396671448728369550103963558806336469895531445248018952380630554756406310642068913515768916855197297373025929316657950409183630626771011033555994245777385764884300366472602925871775885222415947514855065002262778161863804869335139950198494757227512588654245193533097636350006506154693535018845390438134172841206708621331374393759424443041410751662688048241429486012947284963987750514237481923327300014675051087539210645494027212548950297650055585616245866282448926473935175015547963376102379084815415141545053265876480422009173837702815204268389280534941878250320524030927717939351131235729547130856317051488031843532413864426813457365020802149316803301925481629433984249280638832779806198050753294832713263534576957043192910536707423911761009727186906272319301484264576578155369354488721372615639983631469839224691601787080600240701091346080464695361036476460881590153223520341040129428705315073064117808490558317634207347447186037674743644852052908844608289649238594948403515501505607126759631026394021703782881074756423865319250374213702013839655059121744466199345942319843189281253474213814605672484406956679181935858171650923924296693465560754914097460042312498746312649328618328743173670269970445913888249169794077100311625183590580422603795836911588595247111035381490769487647223621212966419414303670225913078368646912958911519405898089983721325652666165351286916413276572982061782743124297296025306821292466621390009828865051350286003250025865878113928651035638484653295338107513199601346199535047800737359593639683944090343242124939698753709233115308530614692982536887568727714748315074886729163348413335400126070334004586819498815090561656772316867479325136256206854100016412340514263142300633862406959041852843911368252722367260647464764505820973761616332389819684353140501454484443418461110283700587309910198281685083026443471726131817502512233995875693859849942928558249220559881680220390589689098559016991017424946081020560303080968178589335256022725032693414364418002769003910158056111208688836355498710496344887133147645022741809274673541517794580706565197510521439579834765105029369033169157471738215202777905058039481612136843228341385209025676979357862283714849191908790237910954213219020802968811825247501161544517913034965722780741451079733283480442594741717213797618518657299833175047700050880439032971249049900417086489935657640653047207492807730103559490555260110640736118004965974678985739619074573173631392751794286572073866961713486199143322800800839006218772543254196551533158512489975865206521183856961145423411819222123126238802655910530610662333037390971455688869904140932626480505869680754267682434542291953086981067460565480609408597331317039255402843920498445910531897653802727691834736963183416241419267257638367953956167268373066472911093607306229780896555418714522290228657584649084510319107911219499693048800278792161380021918806398908267632061155559700884242386200005282804471102811360291326323905471542600436977788985221728606438063951247249585467278528772279589934189795563909766251935277641071295681761870222136957090107388632565640655696638669631074377547833476366542234722894382211028588713671070131859892274248947501746566527639868330855652498223616127905309708748390871738298052872186982275672339706088198940385502477711717081598575635661882608693885407698866730006538144242820455319231388910104650601041525467298159163329139249900804087939616169146217555244574678284468716014240391204165762177842758174248531455528877380978476301510518860428280243999680202752426047220711324938907422867483251234973163987094096495890841313298379525649544164399969791225470957518113584088101171165826441899684952527965561234644738334578055533503212597898124222318927624739839271186319367859033582334461906926329607926266771696724063938254830785592566998490789202796951588953254202352884685877123426000746519792788964313785890790466162993074595672306224579351887039514321299692074745988467955864541785793183749405188050224696375775748368693807077856928378259300846015472822820047036177461288461844082975509998504690810201058689222026972444954233266246874976808150731055008942562353937092851760663626177075135917427433003099882404579127948877765843913111591813350458018272773745454006034168499717883059542321493746008285800479269520716812495327155987294680543426356294526988827696371199509521079652068581899160000927631362310650242458486193632875374943192886224780814456526456592555902150695550208739946340284535390656690699549638036806200867840519822690161419574278836375327004586456667380230451532360372967174118668167192853117621891406492045765359168524699448569581232700131744628720677869424932847476493175271591323317137586496810817183942199219933389997811814737718034165519954173892198354507773340373071257317461963824911726599159816668616017051597770796676519381801713983093453877542662988217245600594771966968820018072590963847267634804067286481382384487244979869981655309691918070678913978553321831895145732699614728574890364772153609488987585120832296275535818485267010198357184208447677955080445623023965322180929250193344817665351522824317505548431141222323595324051034497663032619391353180362850917121631997985025627601437973358486747619538392501284319520600333661126705629645283986824285620198373440548438570185703667310787431915761258482724171786203828541795804040369712004217708162635639207211289859947450524570336380957367589498446727147977836749431294168882324517245212111948977591716135959411668773558400155063399223607959385359751814073139721492603938170127894406643904389583207218949843725888364877147840011032198850878817577941110006349744953296080864948958749941280789788244124533271484042617801178505433482411824256588221248394635577845800305751049060510097012186333421346442655548629869335816010601200355531637579431471575668317223691595009798877541953858089950921675735328424063732059202544854233222384051164325948769926947125362088615139859593035928264502646026474931094183069182205918115025105050825707564247050640013880040669432831694481569675078299818302215564930435323438398871512270113504169106723238447623097217489812185411872900466858108361643872615290946949393904530041864978470625104904285037224514963342567839781154894579618342567778290951547289398581325484466224123236599385476542582069649566367025782935843930062643189114559445070514358546795113251331543961581843628911156590875694240403066400184331400635486594226342865760359841878167928642789971665214181699048294139373014286099599259680965781109105554566111181073601130795222799229205855107895232822614879389423087645819431449541940051167156367432251945514935086905853338328516256552098835556224472446719678931310509258461402950145543887572167708969138359306950724801944612124745609668167591592213143218610771576408513859517869582758496562118530105045747980470553116906959886776314481184093408159140476246509799349935207938598717106406275482152788660528980673910540450514741552536809657566974984406305846631942194274591596869057533128095430879373323531507137865024826332574344029281107144834643817853317268270211019778568319828865837510873960098120800674422587502876805644086178989936583075979527665613406761801851495029167924347690138258292973380762885067547942439963140959209626178828821372702766856800304606688034387865517679905168697642820933242339122226216883233321675786176657104083498021175525246470084601758908382906179250537425403870100148827143722975184085805633310676181293551150520721777061295210065486059431612443726733649612985661307465193476223262787698884159283432747253856191930767653317559865414618970503273219222857079203721359604941353665670913552088137966610046246053189121780265099167264796509957513931703209777493581745739605172632032729551941736196727069561398490709049541658848068933792804419720965863458987122433216476526234507539488426316867836991144315902416542144038100153671441802056990093277110157288728295496567021113496453353696580844225266159563288087236747377242136062781527397453241422832794473470903589321003106808002772593402297608993713825333267941898806661825683780760584343726286816889882213818341235380876806426975232987825260874882022281039298361534212116975392183303819879866105589026061345668812840232491116395479685752586309809558685979658162593898486191476292227396865149839596982805404927042330763604557007535486544549442466943602977867769822689907291125125081281277356882504057041303725903908242732440756458681661454833175716369760224448812586050216212587926203791047652565422027991674428760594904650801808574643049414308448983960485180221285774976839239475121874704234970332797432383368616460460740330709875382916617285507538600454234055253779610985509037091978039698175767217264754272283064507304840746042707236420135326847565299903286928782858445826944820931327476840735121597566864163096719290245001088846050761490766631686764741827215817161725667150833562741622720294277960050188739765961619436711143846243891438267905684267273130317088186508292058734145359652242632576517079840060405617952640189206687710778512684848986079122148190646910607144758051612278821792027640814434714011091689216483204655894141703778570114741555597785627663835270106188513059343555810743961347886876331235223091157001169056045203288401160949035078867482164105305349651905307207356007138932033414023912542441962063480678710869531933490240429654207847580397532642014323018106593610680957000218514843526107056573176766552870143385552842803809298502956878057853699702873114020185327560089230980554844679654015291821122679712091186358921102150219196195518761809635248750245139798827883735288578539111930071664256511150380855749442695667619613678373180493529536283891313367940879867855515707173621726825310203854970189264297402300330052494149144473727835929294421394540570835462443536195239052092528394086045168436447102963074096713096926330380010773090429733854181486857287905100428517816900351200700065990905533997183955047469926826665672351957420919594574810572639943880035531542548515624005688578057372341296375134140407300676671885005571353324632411793661619485075057066875591558465410777094586337797657027252606043222763760475906981865280063387162953652010922190118452301810544483870920479102797339824359795453850386952094687922033015042630731675391090970029778750903440494785668853615036770960735213308037396079501031795034338522019929325977824207785479460163039424941165688402763764922586598946022166955773883072938552267609961284338855112167745402690740803474514679947798967806021256490748296940160208111135697063847501215052515928843479741478121649146066054286764713200976756370396590041102853846490587882040746929447564449719080321701726764477670966557320778073767764260912842968220398274824258891425201041061698916017109967227327178430432314479503360684650948408987045359296434488050198302728814178714271483577262804010139929924241460354608391352989181468834229070601921595067452908758740643937555444163400392992848679181629300833414360562909060694750149045073044793773199056495492019673113681367917776006551829772835445870435025342673534328331522447866290756403879914202389440734113670000726104350171379225338126041024344156349607012796009287067860899024504789567623314335412238324669265084768751421769770065685550663865341042171604396371104892389448497913173361394037722295002497373933003533303677956864261035252909969136272334564623245757636235498225945490917934818450589887627180147607411746663989481484106242888619339256910462121463936585064265099800843349304893400400233289991819262960664503035579922802540679783553931919836929148338741869096056909929865772158171688308365843180046754450324456876661918275892682039271136574848445029162983804039266008694660867108753979532081849227899132029195497221440685572011653074004256788011158237802590733493025235998927385350040879287335228396423191016552710828783743819368126257568950529004343941172641097971727829985252055966217924411506075451162923946108240907786781353252680505518338124794340720648963133548376322928418914405477686603707783438879049713567745363516231398209178553836922273814131990797460357236318359065150619140339380207161808899494661128357447468697282491494252887617450064898205409249238620391315616859633665460426045775408482100720690674616792390466159875457554547692233346759679566381325863081556048031417331317656297615693722944028211315464612786478477541486307948377939490886892298270157865225068197988851356652518796173376727028446448231995490626143866717478089169331215541029487348131709345211514649779604271211245124719595121067054130219722389077412317799119541076287045475626704466366029894231862729231221350909039310029008426858282218522174169249736858445301966357784713057345557853950335863620650220742570640071228917990080271330823760021439619663265962418413201790559870620538340199746131012820727914672445274483494738541000254039082558601807837783849155380645810754748151083597411560991050891458547186831696293803100552642185639764203479711268153530020807567654356898274473222872295682996574750906737552564621250842700017617332321544576523525141377992052770821425404476391659508016801118886094738018275936188488685613448532135879483969521115397581759133138416058649184612059094091302490796909384102188696647672769633925204971953468850276889560670497579134237583164315430307125899502475443168109260203296906740210313275423541189601229081037478169922300081460585977384693029468954309640745477426130113109993209441079475254014427891446482420199348254396151543727204831613411310946754938469558799057894924546340393420442940372976506825786767106299365766543272679932221642508618975891213592127448692092389169029349522123493920987345824273620982316575279998738083759281915970930048590055188435534721193352734657361322660597909869707623272954664736080305521472781528566252540130189094538958830499871017246477772566070275051253944179784754444978966142618619594393334797088837327962162020155788321461463294757510062003294235193850355165271146675643878619815470007011761462947658994041653031083385982928601550102640639993789306167755482548941803559191924201639815782178953377004182257468798837740636371278304132600740571827414483695153970702583037699986229009903643861200303748364793642979508471352818974369389770422638727795813935514425173480299653307597467214765992278792914377505406530833227112083831313472851829128218323797045214474021385528303894293725644102713869066424048061490241783460594435230993853561944085795148103999576140090040319890850763000454841825215029799130730349173670499842693403769328784225271863592630802272867808002952760662885045752688777233384073774249257774938191789094509215559747804325806692486582124424144453710057765548044699930932178573118244773844014884288455583980713542395311689580119173669649862189802896049311264531901848496507981185790699925237210050194844756513137481507613251684132903617651007360045179151371440340996625910819954414050246747713973645956847695086121011044876733438826372708416436372264211862813738978582714293466707114318297527958576134025284022978348995592774192119031076198547465402707149680608869848860099047330066699454145628510350895640995426692102293299076392585434273329257155929474173286204325798640554950109233000244965484546875433597999844953142021264053945944534671995763440110055208312835201533669061742454244019438595565622828109891810881555319292364285611431878079939175311325569529724378412571086479380398199297025835983994850394142937203946087468539087843945961360101708378767915795298711596005920122381650657586367235013575075756371481410944763222276691508490517966372280837271088277605879843348380450759490100877761839642862777013659641611053190208940514411611014917304845929501291996744314667792556063167745323533873356977544740203103714817238450858905078283613762128926918667843732367182674154753404998278828877906915425754684224526827953258254801590025835906174884427166332457724570839995384890513439025896651181659057504829404918335187260974128454724447239064760093395991985984422362122676184478975198076244087712932434547317038589945649887174790132524450739260556413309772399125404457074007778189497858506464415331521619947430216128272240899257210832800165785674752866267157437551490452590438462303401749325522747421719969959814665401289259233029970464322053820545063483583436198048544761928125332791052278102626447113297512338127831520861043573170561247642514814461883985325171392210645557683348555061919560351161605335396545407077814631856368633471333526860361810546653778409576169301591454926664691142228630546671403222809772720920313452964699120230465944114742741670019072769497915602185437022183177498215882602659482566758346190234378048830358531065933639760194934039542082859278934923095971144032482867903208381963393111321228051056678395786353365509162034572753025636643351019037807685734662767755484122850922477286264777709486591469148277479667169816032491987810138165621093919086116437254307694361401389056685090767271708602202390394727830129343657115898868899487968874603462720803657768978942158255926181253733335740841972185101979495640538849065177164296314614073874885983446511556554688010479091103440513474581042680453116720548183329929406378732096525646943699174792592776761036784576595445995287731450442873085599163306383524626344889492628489911273320680084422668718915422693078387074124621078394119307952791263297224289401867014738115626805865439928395408941089681870966706514532728981159509115121397484256988432048982522256006795320866004728823462854424284410269163379425296554661363267126644107636580287977644410610964021408931667333884870083430777704467123117276843710959273931644187079567200032951966299697153668680396149384147513151065192535990979147853634765279399959838233132348042028632380435974598340413164583965626685652097939255839957203752307455246767745068001409220690944216040641874326117227758614111886560777511361236861304354170570866548644787171798965784255023364583480255825435883255490306397397109421476866337175099883536334556587716734171398676372764648269563564354954442388984359609070623222692267271992865871849561794610122944216302330387546302631143459146895864799488105182119096904461466127896628174171595285232446541018860726832017575632922926622464647898370175627719350952525440584834675954084492142266481336402464041495377388371227628676714911875353900280125883642500933985807646156013178855225430392320270206162601116141412956917172508651584757971885071693341707673912843178394336498989650097397546942294672919569951152581370576425448264333008460001681360558295367402991477541802181876312061632227816747538509935501027082782044649220347456737938323902687407458264727724733914425520184533444261123595403132651163737675990345870913562447638876708714419827240862331585883197724096718760547009355278831149978572549995465133347749572270182202360880386810600073245225867474145178605576151582456727182976796402011814414640834646513445599602929049838928542837115505800383761999083162890649514567786787204987890639839297821874748383848869042204391054549672390993051595566213294863469399522530305324138447950867255364594777420347145695643041308120045670787631393993117793470671602379285124583852427002935727302868508283957927202810743526630641316270197790864311983191375729119988427939491794975855413322108468583801174221086155059769116013464062433593045033946312884499214092191313159802583494699641266561536083611447781461191912072764075206498825536724192371581272426108163302705563279722057685008158348968541986060550210168355726453360500971051887665429775454530273839641301149375578077452144325359039583855391928870412241704069799538366005888315979203717711150061838567109931964097090347153382743923241478586719211365980541482978239045998771839483828378718315346825829127514576045902760338904961099794089492995652147019973448257796946968908505572709346147469661124169524935289560229294362928010265949144195817272555053205342535048395405511310131509802611738284554020733112652696185388321040247859448633551754062198207304650574244751292393187547493033219106177011060649479969210057450584582406862895311697225772592616047245702697843336370317866829727395916749763298830646731577007982420971823081171174224602087214868325833296811483928474517744911924548355849084242387115963700586036025286514462581423303779379912282446987240354342692711628245131592247443350077522163792407676868894119023599886775331333837076070453392515373761995447738105639385679803672758982384691670420164959999217911773956377630968402976164598666505435912723207141115621460553692549915250762331104316880124336885873363697571564242268803233321044950809247518386784594892371319251094797182251742958156980364899365881363543996915968138409592922686880869138561530572567373813435357852313644089322939427782101114994181158314179420894832713776249014961374256041784946452837452304483976644538631771104491230385917680684838660740818947214433909447213143603049587898595499785494403266077002517425369727272110036751954407514294586149262605021902046111113058908665631497432196872711192396884355484575534279334408009054211891578442618074757914197481862704051765362666879953221068421738832597447457675148396508005833146364117750738449284702648657424487444642468561986066466104235595834969646343234496792211066451241113234914903435124658769612269767615066618340667148402261120871528301270280131242197794419375982402233057066242416796717873141740422649284647184295795432927510408455352543978229199900137818908505747553217965030906631950930162822791969462035555777324837861749579895643354308155852682023094597468438660645173061729688263186192522935457432661215982040357749329101498246502093074020022352192241869058796756856328047230731925001276938714301083925162911977961460708998570582510355230534276025401760194916922265893023923766986463860275128716652630110847744505113554555839431935789181142038890883197954253277359461657419922342704859032047584745824173938005719962759962019562042900138915955587091851918676711866919191984942745976200872680578684712651353198372845619145688689099586696800301979378774461025202828109181216887871201688405825238350844062303503621573594706138069601291246545201605818985695640663807173305925039067536769551975672820114970547137891927842925938913244783844743527603833304980557891444389398828842371322053929491104476843148165035863267383881052361150655584339590399232638146835971622010088217001585701979643632519864147708524286995992209440434258018309973224190545273287284418261325422989583111399491688574901114424315447822822453010724520526758179814335447916426981419595259595144654389202658540122625214890388072602611284512755547129091252185023029154508640270256251098809257832706876723209012622645080055714119613888602252246586170676697718342574935440937615907296158302246147814386272640532722929605118741729586184607933291476923773733543571934060853770867307924610851606551760754593090942259111394064432715562638927340599789478668719022257461197284641340843179640762715421937568944968755034839364277924995158540170980451453363996421027161282459991495551852001131329965669840206492985985743613183090046998416741984776566866629969576218893887468406072224770331033217628863463851756720716225653879748496016017551794687300748318464919932428567903189189552657609725098475121645293346347413120725529233078185559203958855721455190758206016964887727347443856066807276135699538791798204648531061548574831314681997117131178492152651681996532195074699245129451712906128111824607452708042506748817823082682046511385949701435670613190010884291974529114804425256683130533242201320107635668996435242814813867600538406027729815127289887998622704511270853425970703843255641096950636430251126644305558093403971186705924226987368842347514611058041595266489585562752477125447564702610830969825586411625763013661418819212996945191686530995682208108484517343524621057463783673819705782073732103099987235687168707009118494401575927246605074741163932511076765251102046476878327799759621618961185151294699424447538719993223644090811317804060382191372224565624918001989870563979006125372514628704937540405754419092723530624178381065975269333303673385162242142944590395097990411527537231717186111066150388093369120180650246545619114929487906504364481611690428930746353592925951907210051690404636286133409961387578563468412276265615646202985819467963668695612396231214031857599937639471425864730660323522236965723421964966129063058768690887061724147863037305639722333174552154295946174618140920932144185313087472730201497080470217996481959008663056525122854499738585986585068551392918016082399885635128138158402452720855385208819709944633621124285766145468657964774716603632282770444419305970114206399121026487973301252258292209488337682455226216373468474950490340078061862043980783009314514687597966771455328868940563078493947337418976614869362930888487622245952315393391009306954829070924451477201303801011546028248223895810795855529509912754909621952969028951797381697003920352400169397176191097847073580183740935794161195317947590047289567985551016975000113788229653562632095322622290650434829898052805049941192336809565404502722634257878126913032396926317717616486375645629334638110557226599368235320843942792322125742750544659669096932821624058894851218674860057478636063565283933578306037024054676435406965597197805353552771021027891313723833093382217810252073371150891462987796814068109267946675706682339365848833986377766688387450724885436857383164156820458146827549474201437696602155612341578826668267862298525696172404784260729000457013457758460053217955154643115854949503987481762851323691753723975391612056186336022686247801819189723406618352049384187559366126412445650387148150710131721434417796566404634322799377150102762684271022498412194704240103653993020171954715777118613619679037575882537019893375194573479485254346232708509584237596026587878204971205456334556050254966976554520752254967888449196753912929577764318773630239221762777959996036288648640880398519979018965994196021256334052478936252481858109941487896739826317375594084031947094899251711144631881768003208507230313992728967933562312405345901924625943368466788551858113447100655246620452579416635030268466920490404147217160150922537254031571563236558437748975360020550161278340708917427754771717869608072074537511584430393458752432708373910700796713111511335393373349678795255676955257197336368488923054986605885433625897869729497825006738602073295491953841598130245575909830519344874241950046518108305314232583642786521991747598216868191069672044363729577462424272483541136955823668761773057205185611883885702489895924858483968555342181346475339901418542742708678282142067813665051988869638830249554394584491535351551597888730617000667639342636495033673911721792050314837917856822844589887760276731222189022096067599524756063971433886468793172247252583169037688845209643395941801376114991723650997240024626697939588791044600179487195073875378769088939130187601499943983128415300568187912063550737084394073355947802381561339758113427433502392396951049834369322869360669355634952809238169778216176405590385216189837318226807121284396387562067677213538318736411331992268780351673542859780228391817266767542528820500623185848471016960342387356813681873496929067245834598102247493855183631357780966725600359705508124316793557285485909501306396805664291142352146767136892771194016436959030657625290506293197758619107572950444183411267420681269339082410298113950555483338967219486119230242633989472353896225918674723156032417130675906993182340052896193883357217389739564990578464152167074960220993180218008391041304013232268994745645104738255464231809006152976821161341869365392433722957704751030382734491304969336269030440185887228479378615258329037164759052700638994662011737162218464997830285027923331050451044381557971400650753290584065864047022277067144473275650856490060579522863902921280083602065686737968098766500300615819375109998539556040507633163511178841734125824462134818718366346994824542019939399671743497407229776351562580061038263294901759807971015295742143726872986507868101181849991925901499419567863295689662035651453516021110201533448499052993805021374466434235832770960867209558631472860788659039458737484534062064029872260069070635236708852759283328135800035416283790572544612735669494364258053284739353235690901751129860716023831208852621239744744708106804017187144842303391712415917969081200075994794749972379555984086761617961135385664905037778384602941816399430166664315327244057972222998092306149043235331167521333844106934370072994239851541370337460327213831823086998457959071534967501424281423466972481562525786015396796911916446912260002323749591056216099247125446154362914248755154691998781919664862772308372120843038695847767363676431500829836926839477965349470096718662790936835433455374623562428006021972545852138065156437109398734989660793792067135163596048548643967257108321228822813198788793368225170718767165994572294048904727640215983179909371073055727271884194070727614604681495247079085379441968232939938271417938871931626050487962035780475195449414880515742223624209435936520073513601220479199664432622724384666932521369145496036583717349090501557277080786097881071968990447337866352457283085706952354981053767656280982988093605852897911415944888567223875939693054920142071327545159732032419034357356547567475062176218521992135317152038094270189617173278286586736101715613578781563545281330081442017783230468850043021191681450905742297459150219923676355649890876822502053011688760116519364251329778211594949224502353186225642041147516365884297844397434083708428420880894307059767385154313201045758774762598453184786003284001104951411565888193829203680533801187413030225672890098251192787365607191513157834457323653118672784908782708234855808526506886191056692877014156473336739636209424216241165439015239238665247779029354628793282066526268037199938982782467601877160889724226218131535392902497493823882260579889651863027604368491303163949164477369998384439653950764295029307956534324054955866039223287894916696317799093796955418768214744791675237190461096301494382734260103977677793790748502781223937589081973952757199434484407493874957094213907096968108553713537399922428711641970893632901758601287154644947178413004799059277407822554092943247438045697119426538798989444595809899843472544295980321759436465222417322745264091131894435901534928032449553202535743033390712461697400214319131671264227640279295298501147539043886133399246944851909330487081301651483817874063598019140125551275562777482500893836260743354452839636465116850485551030101823157588874812633081167019939948478595055727298639113165881539575541289789941936963341444636179569650684663006762627572600661886133995772691286378661403780078307216789219718554715719211159254763299727893102270712994964982081731456843258302908125759208758412660620725380278168448638517235985994476100537238912505663833575982886633261848888511505655955193408532556810192156910429601202397527062337371601823251842327565924190429526702914475538688306402393262706220888416083434512248150297852991453103138913161573185491937952042542525257667062848521359014435359852826977916027040025505549107385758119683670124811073347049094127530451396435832172057099185344055260917585521287006125536916275060706630675776581799306750434393728258015592861890845689588865149052273464655910902716402229681135763032432440100336696995108702542126969890883813321989247659562141268958374129531894080790607878252548049044257242181556970526885634798527350588504883510003868668872013208903568979310214945946298873211481653207899300255870947502474793165705190161168811451888706482273761221672608425863761993558916028532664719201799868287954819247384538636818789136675741300502857743864127780712488333381146027359516889041106587911971018102328430920335312815433609878375229280064848923443164057837806277004865273193811816673311561922196639982647025821012674804631036325900039321665383230805510369105149653810379669506644451197423944755470810298749927722835946708094399589110807689196392245221746822658095567685334981581640455810843357059655812806915771081566913762403107771515734942519950480352081944213905227268384290109117778656428522136459895233868023195502400889237482069527182529672711028757408405506514758015358114845014711288801646145883805092935618217374715111243342508656766237674517823594175191937208283284045390380908120761703527096527480218942615514477589903843616670990072318211798422276556643798991921130648239382321345520101463715143181736771523229324539250165000617588923682388760051304404342463009475460983728835005801446008649637215581818661692101461280284126090777128828322540605355837956857269575335884328404539071993603998055768234589815466168651518509194951388553305453449203046292367119321407981170803396585099100817438854088882722870877531491253071343093724808741265374907335646950983604038848674976828132272197335459339590818122984542537226345054881644801259390730831361144847064105879968559792461517912002024770969125771966846167050733696095064097216881241951150680377524389490054911898896730630387978303330070620276513491143719867687409080637528881646190022274867131774535190841627106772176153108324020070617512212705966741102079831051913976687666023526702099260582318139032726398509690180140456020624405608497719377034101952918611354660768108052944097254075883798142959308600945108596226043877805507521382564558353540944297089006801343433757672814589795282737974762232629735514846495432698987625194816590649910663511256725866546835510077310961303545304630022037676047622067468614298792067711395759553198030860693858546736914290831341192139081341788512749360267276159580299571329552628193237013082767876164524143437341770511431158346554165566112965035506048199801939910547373626531939515951895269211980642625513118701964938967830146365534895060250238384381626561675577216601373093731954721059425648710747018971774503181447480061242250384594473874802603826866161464903038414223787523917827784825525518321326865757412217910162022712185791880261823290827286456495739451423531013613874570188300689438803162339613055440177738181469070551350487573053006486579962968155668168840710077114424570735550909272593481404552547299040017468881159899342949628494436401140677427028248423502431473506577569065982297604523036973550438658742676579579714134355389129878129257445220918502140649389961799948579557558793822397867595234171796712469337721949055051700154407584562772316809709168146583272526421897890243375039711051292112134233982461375799822884022287974597271651335826451394697011698665008372581514024220202021072202981749514137048193373228817535655075652439469882869274912628268978194846001838360505837168107944252466656139082690292825070292482186330243914558515929563607216101851663803391585454580563075998588963797366523194160215514848312048704723570044931170148618751114893304433254771979638740825009307261616567086310815900759902263911370682053092473342417064536204405619462497302612591672768553652303908224881330788312680131988694625589752469469737969635728450222446136009258349930347968640461316818811344663340972062910371471163687065250347903308331127809730227213259095295128681631930286822502011969449606117777969868524068390625791087840988558515322786250027628370337120941575497915748946502824177933743965896245651855535440113438592182115110374444623214657598393136404221220475840009715383701559039685131697606465081350755901240174297463756466799489156194943208526222225350223909432116731039008859018981499784493254391631949644905211837689185755337560187011705877440026575053377838285093088222229509526291963516556687636835439591748966393013512887087307003948327975601916642852977182922699668458826224706122482806693385027113209692605842665983707331132403998725844459717228382836083667960689422438347803142286988054824726177346001402922648838590710225927981982204560816806053910570683724280115665713202695587259354206512320323954768283008321410234506525865513952423665204574010982325341044633553332684128177249372360233722645482407854531028028393992386420110225873566441403778892802220751896525356962822964812758576848347106130290446399889367576411124057507487695652841682711863717239635280819585321334757159109902923144251269142359298042634224790214803212418478734142131923722227093974980308535033023983459576853006353301700130469594333655344152235739650429158288872166921782390166788676270115737761083782790075828935423392919399048100712959612884234551416303561764331450706056233054827840539823840600385354203041578639306020638379185053038598087804481602935599943596243966311019409809375250411358123570106809129137197795588201209450718084796142053108677001097447709677751806175352588556914398142276901814385037250038670904313264740601763813186783094680851044501666081973610140081063346074028690653351519539505297975775295259526586237115541937034935101036316661950688811125508183517410738806848823604436281760504169795598547643294448996245045621002111684612213727099859536106717287464725078762912220567293065771287542939233583117889443248467523975329592641519455440115235148138143621420053789185337431436121528569122560844830476264192362553805709277625425283053835283377245796731636199545637347091318985659601386232656372847039907001728658583329698976345288830438331560595342712153530642047365065625940447091091430014878477341930246601647148050511408026273616381275858180326134087455449267976292383931171359874806071662395052197592092694979504098757938686058788436255733822943561470507898108648127362187538810057007639287311641910048682145526866042910351951502641895429585200673685756113175822452319228525503759004670730580839340453875300041641559137286090718401352701649709549969416328368711061401388051054257795001493808175898057025915672168990190721426295100736818326449580772209777674525503812964566547957377473996252071516269304197020804427641967699496232910373688646836076781606077058352952891148992699512109883247228970461294724473948217993005021817623099489396857751486347670141127880809946285492025489450588392039117041503189287907255150487591287868686741104199650380422763631617986738967305910668075388086382083696247116241502539491231494265215769540757160864482828801371561942612750688284218302764516236805337120753706226384713274819222420329391890718817152367410391128663177597030209264111231981199368219731778516451124986237325387846810028293284334603363166588917848535398149049632105956485110441643749274265810554160538821122419815506226233718962693268135535340235756435611093258078260226970817471511519421191557355067145839930024721164421803509753475870954524782598284618524432894817472765908483780225507332488110267743553842919893419635882118442266828921046049579884644936545490332495141978034960925052834300027512544928143637544667927076944908756102738591621093081318378571293066280463540462565883249744629005504091988636553874642465015115603235921432214527550168348002058924412357711339069476036842667588579099364408643375768477861926088008546140870490420537248577691816793033470999057602823526686565316149164057249811556528105268951708136981942433166163052371690639787817415554958462788082340654467131368072578036931976957358728378158294594784960010627480375763466477804228923463759046080411097943385691935998839318022300418451396522390766306180072173451896812919541337064413240366877405837258640885013817387873536283076427081255244117210682222322709536935207544172885522322389251993673855945997575140946569284835948899320095299982346558981842408774860043904648679179166931244279597853370616823403888452077662968464966171846884448202487724789543871736756881304042439816224261870772978144224138614429308881065101083230694241025747660796614011760567196278015957419566923649004261669482127655667984678294374318653026969505768418078940023290954475340395727335548220940604668841150566547225825284918689167995752879371209145653961067328693753186742012403142616992286245136814834528262801968194079718722931000159596293833644228468696311993670844527021040912105175407821134135219974971567750365410558395446693478362590718358068414226736297702586342806432008930605056543657533995614943625170504132755528830411768778065804418154663999973737908345433038422015197187397407572377848024557286150250731114778223238622873059170432691418644311212175778852808343322386080573556163724273924000132358908052088428125861788254764544829797031361025292968790668926770551649381644771248965886533114218760880349064493061010944761354683113334111348789288860038403365247074477217120962813854831259692493433592716031728106477972728865543482339432490578928639935105501460502105334479489127569326411397739174032614496668907159100799136307112623849064493349955729921727114938607779868197220340208713257657106255348437651945676151569224459741508151593507222824711553420948315601069011135652789944349605338769885094914392420581308251690831593411890176049363908627859139505045396373783456997932925880089725360208552893199818143270230159362773598736350691468524707782482305155795906902666079123268200332134975299044164305468662404321788870680014534952350730847719453772453110100930912573013231307489278541526840948088158116224332518623373400978696469871109540351379581805108221719336001298709351299115744952638642014964914946656433632649356821893603033182870243893382596226016370250759206747122919120067083986399626557501642549774850695199905423505949980608551946227222800712384311033658786736922024393677456410918713603740888600849407901824828878494773974535570358999532328513975291378081205042618800190402409947037407615643589324036283638683117262479310964927523889020261935107945454554342220238010296795441043941214979464165970851572957138488717676756750353888926781945184286711945273350476588713926249850010106715781099745579684655585658132092826226036310301809219230389420481123209579338035977579084825295076283789240331620634375968260860518819621491109566657984976671138386085925965413844358223551843256220826547196647906229956093123068358751246366012433307869428397270213793793299613053183393525029972097315724579418151004804793860014211043168269015135701570368284774735232532535257914653495892288618021617966601381957733120397791399991859554493421363924672356060104986996021934479531223939070444899887038581810579948772710702141614749878101129336241835671375191676392274775051259644216820618565886729284360987880751697799689133839119911072105474097486367129168492998959915511897220667161022853697982346200645114873751531795193853313086360334956827995032324978005730887948959375949261570490947451833449871463114352828740693183138167763674775452013625281057905838611432658673576177743536032854219381498533659167368260886002368814002235670130682189899052209581634625887020456570905608066624416223073522105810896096243560791161526153999999397399964898155435083201393279133888826118213806555156356682793269381699189402674762218427718285839449246621569158948451769528376437349725569338458333529939947645069360835460149756476760452970122945645006403165954913813943406084567146352157515805973818481976154941441901924849389280969803283497346200184621896124722800231558087715855414021847965600418874011915721475487133565942546794819025038874905729552967475144123887316844323439007180907842461866901721919031551477602818837027473368866575864932586283687742503153910577425940463568938520792201979110934496433141440804711343822381267068026300132527051881490143067823917575632167268835736145823973876168697311018897905423003955089932773328470722881379996735474620125429991818319849132566896126669209051496306497596352364199144935782350338207726896995699406752913942092482274855133665893014403598977674984353665215312891105072154292742168370489541354351179704707775185269576923708635973375250782855527861575307843942918551717160204644548762111511498089387707345176580140861642600611872530208325296379998501970304190001633181334844266752670326399795852279005502716213018435297603688149513132933394886604042942518510748098543174518888694321496142429652127453473422550214771328665893856081423678697636631321565899382367282830625648589666125707091569919757511906734698017573737372970262062538394683736865395645684943241993731502764292059383009418341130244819585238611466870979136897200512930246783468185304478388589328478312351314674135428609343191036742956307783595972409443780136009420937582833672546098595973174917177456333859139433769406118049006378454427578603388305750961043493127915968719574367562622627040781188371739257855774734371630967999101832200599058907175342285658128308265945237616952935840753818258703000828168105563522138257751553729828954332900143734756127143750285985270924901418138923800798630496023905315817077115327634114207687111194598480214766369829130682791856605315602260288806556333838154985055215813885983183626601173056017015009443512003686472406305990647796713850826792628681504771645939164847764983104808385198908040848314289456544706113354453302392456495516960497864627859459933036465054750515253763172301044241346110712120221482064882152696415992561546158204250845170941752243213728364047772696027452277262333449077482797553199661124958028745619445322361640832008175083738420719776152799535513505273473305383789436797796025205658837933492618002488756605824924899621899738056596365851149251149007544612265093299887135282553915297734340483678641004098825341974153563728018536135771809371409273093745553779147402069944843681053588043633035404592222896078397463688597778960225222763016624840913085057022609031524946424307413710237403010017316205066600233907151006335299828684886556066768574872386318521042002026072769986874173972940498642303901942198789838513935011610290945611540100296050595622242763714168417159241547696660939106564224602296301880170183193252959717108314988476056100030794214294460152709300734715325844074461367974470610245069313481802571166540074343084578334219838661738239507038983003952568125918999144429785836612649987005795145821472509566916357235375591077709920243506162468048861464744548217647950509460659207209123897500454524052086567402099760024702947846671993283521169314689529355182627531941277697650887985270555359917461430726836587164176898357501394271410759206085788638686330548236522190898499881599186403446510592296975356093485573623210705518737592360828639439175054501024392883358285182759342600187851502386229409405267330133784187143378860183707257590125958565459918479075740799269271419614780697866819861294651464272915784218691090848888161589793366848520979083284103772915423079356366525495252031920850021491070088344722686153090695796154329958164727373822974142973035981114672215005937764611369802616856105161165129685270562416287235768824206030446078120192533155014657735961474608356662780674093110137502717893022452136377822896902926149999318714711612414879808382910657129107878500156700763083379690162429930417439981532557014141192654802753764288482858734481979205206332715066059800224319070522814036035475399481653669037411007390236008836234887181788249600814723375649150647470945804493880926728333719073581288222865193886837569574970657493710400839282134471192650666406974711268912701411479118241183314594190061667877584889062909102334753986311193153321645433825348308697444468215496040255558285240017665551346903054875625594246683237953447356774154969601421863028098410650741061319789682641404917209643789226560432506157378065634924023417061798739716785178466208966556323281296357320964916169986900727255216222847956088974929864521917539979218976566212438707544198095268502645646520863042378465365055620702329976822646606695982787871370064504978079058794726553900130331399134641483041896485624356023960772356302745338367905146656843552983069404081509554646480579356873698470888418021889653323015364594470698366145340045209544175055318705837739070377749327137281373222484504731984624253154562166826725654038610175509905366264461575388824470923544924597873488761079374957050248532479499153726055985466622579707666425403867035657720754014432775509415016020369687264580168501993946612743960273534978415884449008078438592174766568013203020766235165266549160068794601998756773592160421322623467031287964769983528233900672193827417809619496764301526713491636955695054697002758590071389028201976621291382705080508041379988872992998884767699807496238658685387478938318649998329272094497441929513406592780998231762805809023693684807483877925424479342479307743453665023607398075737716876583488645838403910054132706702104438089562637893189838023584766433598681669343598429065182939130973479468557319778997947638673870664316847716801424701656329755395869138366460959882144400667989167168237400258080489155927721148163594153961348345315520762378200742034741093990549661616425240745743259057993166023501093265037270642563498888611993283312413743019093284603769845064133230778979185307017286554447514391006794821477842729407057832208629893973597493478020931987245894816797666106824685626921639199388002786455731682448189916140589142885962782799767527766252528736621100086993008701138530237746319379546028754878380210464664034969027487061747415484581171217962500056701525849643712639537830255894703043681551065406803069215800088488248701217960527452271175217808553332545707822409031462564930367978882452890119905663356570539083976208188152238082312764296049992301448580544548288925125249840359762667135367719335275338516281526964891884475009396832541667445637312579267306470031727363458351535242645448226003358714576768877402552038489030788698588468260467403072503880366662280046217910735316765184050393690165882218998158749684463343488875258080707237152177764330898178820850382045214592675072086713724833884455761062337247712136292395979416573163197748611593779909013419725240879322540414988814405120615247895915903192187825921331029593397187900404529120431704701158572075153413201569575006345583013610291729918358033587257107157372581059518753745359482191896201883473183347738657588013777719192842539525429521016572119424674216918149201533558952571016754601410029974920356597771574165696579197876092691156823524251381019783932324019604454467578355142163672616785232620611447323312713060399095712934638128892051649695102139153275255732206344571391183190936167678095575235108507612805416043138264814118674282352702677593820921378352194417215504402741230262279697370194587031504609597905815902435118058501353011156127753383058303161108915500409906873046850679688417442403105875810736429455418833164149186844576431905178434178395057191479704248648515148514555068622336659164823107664927529201590502014927502284471979301077962945731519376128202694074704463409330891350203503916768798200943815704106544353513153429443163266470174818631176320838221464302056050099929479563231395882443649836508100943033449137175237366898508300873443144585153450172794791104949436173687359958300467088524389199277839941268160861504704881665423478811130743336499866259094279393752512848294118544413574299169039390165357324951954153862442237750634315744888463566461199445314145523626275371507914467953336970559527263395394593572738523997770741387443263960024322974723448476330537762029746044047110717229137880276158964847864881198652017321316412496920538432065231387859380074943744675572746167590212231364043661328979527380472340272530875963893834973310735697331947521466532752676818966786410839845481667769945936255018486590088097264985031330498528210333704412744464479038581176189377409348609405435213309825067478930726037742370830501548094161284098693314558275971028760326191419328982777833411326657767897994327305227458346024251999668787750851851863257734034696359831163814952848409610654747446029670837085055789531454177920793358976579866492037838673797589858933907425443802480810142245841635635078720750588899983175005182574042238323382972368777862240904441413848348250638814870876601334554829636042016918251995235579115940390861190418494416077307469917651742983906011602196368374459604061925845852473958112671350394477534745186727241840763017955964238994694855390142074373260125669182777099521963236560987199882012148030358884186695553764732042079007284546446304683537945088088047017176894112519745759571919328756001102777544567480041159749663840937572906563464844719082754040885315665901132771730457519266320002979158425665672890264178709277966856209714320541252622312007599833321633272895333132985905750462380182469196557384409946310457347490031024189741849157866978959857237148376354209247052813361516128588398642676597635389767120043771607313239195132902243644822862601170958674085161466722831927195067823295148229429323334750644864007587963298368738988079126499106351874347958329306414823298202140400789607045893224231887762135599682033884838930319979621161344054858225813770699207494653958891762583083546841317360788196270691635294793375294556796364748080168819395822862204608777218111484269198234449854630152740104057150155134791607517717929656377039418966872593937399748304659492802855689564827417726971910137930751410149525504196730922762597505847382284105136257832682161376215420240331141083447375837708857164476915474515916171181350703419731273173767259864218973102271416989721670780508403458374284081862994063619094375800228436700244178489789095959130981297548571420019690276656527385853388846714286030807201938824571468785077808051288140922000879722316611872059891034971751340300230808234325522426422783884108154823903202117528637227345576323741746662935349310356832375363808799184760244176426082081033578155848390240045791626088511040867096892437972483691407408347731877711723184243289125036775480763174346253446489586228834160633284171023599075154825256945398291815556149825758769748381133568440705880355633041266373227792138740162880678161458595225021924877323827597801373991784052908016962063123740790880715553206011016686204588118449159184460271052228693174622923472465501080591584596165430597333440975402441425281148681745643717294581045872004435554850143887449276495613070676849363693669373257618778286709449124512907666045909959189532092798883393312792234294927803981757557344053255301023968912383458006256955482319215612924385636748124350665334001917925879790579729061817020262973697197974482367736571400583030729011384925135689205728175004582229327494520084990251806045555278622093486683175137531933389442309292873302823374283097441285249712643643146724815010291658375612340206957975266302774617386582689077469387278218712717269331182108160902127454841635146116584577991226894917879687196384882374178624059482265063558960361430462786719710572338359413305095332654900370107663047623439968864021660804743497312477373262529931873750309119602508149638300047274783072669854978261351050337148215411177014144144981146242026684097192247389968349140826732528168685241864926557510859918457274433133565930854265484903786228122421143500905297536431319656790197561232731213163704891362105289952314366705146680249984432976414566488047231371596434812060322213343754085273333305973791673214421675908484059834425599274714563861808220305545669042058235044043551179240876567559587317826301785991416296782793698465673958389558179930589530982986278677872064327731008966923599178757418973585229416104374704597046030004130238697038195055929169989994332453552871252637356093307476636510186338018204692730736177922644617471626941570118177872691493782743844203603157344980837271466056412292289787546929623084958223992070390782314521963867821271710526935148210738845896063279431124794947325990452106616596448634253363631583397846146101944185365150865831617098828703650061572288077456522932465528561390295859185371590257139188619944884184130500850583423673197282994395214759439938091446843635198079740151761190778849226028028286138802958068750022431516106387194325397815136242136672116560952945553108552357504605792816830989615383227785382967192557305380536584679888074894814573372320374018399758409672219782080983337145529225888004364687660146002079785258767033274781702077579496493805325096169382465220963497819719165390452904659158038443235841277483247901284708539974762117842926560397398149433995942467600716459200775483144860337411487998854614078112522761384209662107985119874094723646174559435832166936200036420158632386201542831959182525692791114164899085761312324423412693513477430040770691039169837328069791002239850049041799613600859016787259366463134955215264808505192387188975337945469406367744691875790676223173229511516592113212527967126607225241659654443423674684414361784236232025507151804183359151325252958451381569707516685736747087576315236594925119973925698285775290884660109332595384307263006830451662320544166298831050998252763240227588873372227890169380626491441426329584710124994339735597213433097964617321034101307042012266451416953569817411330344193197925175040170201289890043996857391055596810807244029115229758749723969928419160665931314617038237754425800348397373198513785407795691298016568580282685723754702348508389544195963776360541226446296129782895535166283863158922619572140236260205488526744554653388063527251245416102502614581861937820418530977036997748120172845428090776540367728623283798615243613727757269222963771231367552591415560039132810187001350196436843081901661597156809168400277513679478095302854859372089483042287222438301103637486292567794588682365455259001044390857945957720020857065582284214964322286720168390320887249126567810840554224584878137116177287143537561063445634792661625206867344270925819844311557066017775615404035463595068698760460633064968927511148397128084214769122754950853540420310481057290777821908383786003134697511260847687021410473807140019851031408569925394037709977477624318264298713543837159739518610336736660940756258885777155127620827021000915385937954762597020184855997276658456435807002475642898991942417001926817806898785455076216408428428684736669252223010632366752875807978631530668843503536603180802147706742992942585696576869839580493781908520744521680370017975979588776197569604873917432755442215434220959839951586645940461823630679705676782233895367174091390968686759487991594251043965772295173783391087516227044503591652891639678979534029916453980455880684798196789440166912714724745713264934704574150222525884811614961254518339646751772032864160915739940287155831643474263730069612377927946576713635831197307855124104254664976287407580918688050052058048504105172492215063230808590916053864352635884167335413265152464314703466171038328047325325226732725371413909582396756317325532164293797463033724292111268153047684731097009393293660254894054069561521786654779377111269300509268347398568033754820149737559205775961902464651531902195308038291294503126366230858522701839822518632936980629519627684727687988080949397788278467012142116938144751918284700031897457299804254676636482366366294895209319046291201066283057692918218555706415007019357200146328703404895638230718989867271156000450144206340142541821119150621618222727987325564094499082556646187318873051145214707454488986319830027177704817517964915391402130736708004470360607209139382620669211330017107069943697510880253404357142298568872611066031194185448264044420734046446491525510978113305856715520878617347954313235143867718216553797970996241139897117940763729701504911292060647701482339674417796934926242800872601018601863941198202589285383273901884714889302090438712305361935789397971180042780111736693246921291971510503081150284123906309724538574336083868068842882072547100263471821316433986123419788603383355636381921811670675505178984334061748913189957341382377214360359719978187160346595069622298419942494241413866803043861447011539747941023877068648464799393460344457250989211648867357323059089498309916213353489079462414310717228532525713389670957740906603905182816030553667336409413285716139784748422039345166173114932894111908139855521786034565462995290200621752163213967621017624984295138488059926241000150268668926988827090870867502557231968521091117736437358287561890820221253319309118617644040481716499505200313076299642308974119174509319095589670337136001495872904457215357632616030303825024357956756974230883118315436859032587736558261023536496249589786608535546908415426070616162971913466019155643059950764775465323644680139412340105565939260662766160750285339200707336696594767637754015826559706936631471779005520491962260204224351366024923033488654540166356778302705200047348706221415647759363964796438748894035105475368777367560022808784331074053921034539357749058733305352150009221818908085267264186879846947866668456333024994908972821886485526496877549699799090342147606325821261249774528367046377161931170451083168839836261986992869139542063659368836845317004959976851664355992906959011953667510153846068395392081846411177277896630752165065863538222281690545342486724522284573291336320064026291986351299121150205573600613084984858946572634938853461005798616100405616695476119138055521058900678192073631663475100280939363377371489370462873560739502187084550182159890957635013175833037375533395796864350456645790640412237283204469039405579843961167546890287525472872860580007235542782953869883553197861091958393265338512713580489954175893783149865127252777806547969376798825335045855157631480421926724012595635489973810506674161082507301125426079893466488717584326356406018847280297850700735107039234070801720226527563173203175959440698773653663867855047580357098715153198055839701747893711624864477011500786760716385544896802480162377037678209995248109991217694135425936349359923312424846596604064411015649372288262035354213139634815970538063895297747056373155694299718884694230435577799651016782082113797910929910962248425114640409394137155936992431483713148009970453962024490979067381237577017939948558793053366989521223857856700142493761209326651799980870253266865325821662413693047003481994129377139441011898347062465623284353428843562970610184102870082681135263996262778399164088666240683882004282994166262324356307291216582618465311516669925909099387858699149595732537659140038283982713899557950405081461495772674478742548469325578772612379207176049568701410638295353919191891544368613408139518375700787348663239697192225600686748603999752705582798159567865692278369195739362139148159309246171788250203878131803889670319908450576306232837911297731746054749149875913473514368688315335189882937320458902005545733565168517816454197930666253114595260301021179030286536370364141481730418881724172386415167020499888945829680789180599850264872294416318935859010494231536058881996295878971245642763775762432711737006295604592962190518846151877683057895778148406689393682511503548783494810960218625319872652837569417661028082603681197328480830933533853337236453355511541665849715010158243025617828989235752314337672296826060256553255385688031315098061000354590759372403549231833773157866065718630978110367037551226074739391323433213224460888109928674337022598954375030957593041129839208289932790249920487353310878563717099929591819856325349883158568958731219846246006164757397734315137608227637934522024530987968916816562199062224452982956639494691696074120812354698159149149199003450490823398923721757229190776353254263931083114064535158028123805077102465063451787300326906772376753832157011303794072859847009166944304630959833074419244189223880370328789508373006297427317291493015864614647727860922295644498831877925176390937009150681174751462774289028370800950346858197838943398809257687651744950687455569652879526731425973012319088752451057302812892206300119985099401772599414395919603404303881420647059641585956051181515800070663629374814062978734174005357428206872019531343553585284846686310433343989256987429521623957112493868812230481951632026736178334453983943317220165565388654898938195006536727826665644476780205399072402914161003767932358247964893953856712942700019690592495850379013193805713715527102712759196180716581110828812590427673525425386710135930562313583471477478307381354994049455113559384766090775757341764029200323523715127390136486183717493077607244516018894862002170988451358228388119887255937331539961371806390175750775153133462635171377058370796169435734470055683241551048511849339520830578423020503597443535028419344677485427113388441650242633981729755017847507238704897347774559417842889449069410211440084748187565924467996761866273626092681183357614535115863578910581130188123472631327597448121943914371535376784460007501789521993592941747881213444561530238318486445108603193657120948581227817629097547863124491211426825243603111746610137740624952275145103670962520053651269638131811676776940795632133530775901135455026626318594810120914891770606149252966024136242905717881697940539502174251835576061089466591047000528261437450891506156457718014715092550199294701728608760952757063115485161029289943115914989618422558933729912347534719762187951076413421251274596113492643631469802273783387034748754239114318074447354430858025786975490485872293240533470003449620282486212757793530017810660197035260344742264325107574374963661256270603203541331456587216508610599736630568118907356069056471917367846286533387284503887398644690964708402191449035680611687032444343244682970584032339873678371398999828621197052322693733697732979064095656929409779206538861232044719767652160094035089284373859462947144609295425469725685795381698465122632904552313109417810139335402013766919789391383816536790409968724347595530877894957220965960444566765651976337632919893277816960676676442318979678135720270407918553838661123318882450178769518146752125592151279370247080694833239283215953151215205154455488899641843706557446586863798326470354100388074863073971232973755914394989415460649604032939199236047321456170390862750951330484667672106759884530328533795993194628209818228830752641629149119218913626859599139109948865650263134579270015552549336917859304390724666801106343138205489543278538581796484828591804385305116990078365823422901479303804392971867910062705931525496655248502696215012805082224676202862680886747223962650673237057122700213783696539021610644482747499315068285166576823509660414414120961972267626897742232031669680901038698191671683972721134396447313365605420681825906633768622841223170132467407147820984742348797270909477756603187887830065875843790880179154643882271839911352718621476341477360555090269887025890146790963053935302927465191632095799154695669939955787233103662635626696522520186528487785452158938917334856409785842025349898190221140453809300235272589179942985899337044203557998029735642952090929602490553431294906853113513768373137289021526741126754751877151360118733632421564616578903085080790379583242240919569023706619691676005699594702102009746539921592975182130567578674246092344659853167223797518928447589883388229634946992083343504756080840657195061594153303923514535120210625743826883162187253519055396140382821100664762223094320990799905348089559414384429847144536578405896631892769483254064421492674400122298381266050765107952945980289630808624540380542714229537309968489500114654125877064385053064750104453308641411407001289836470527859101190348141728666706716987270221658200827920939284676197093318689969323846717026590288307078621403367875000205191419924931501489486416684512110874451009693546443615522849280162358261053627539105484374772773942728720023331626833432595195924438108066362796749565211549070926270489196067171675807897033101587364007384937351975939092764052679953096212096034938966006512914870175973849414939261104493486900118463105638682374604259547664468787483125856632871918669960078400011044155100222904510633477093287560205835772866125723258871189883669619565088317396393359693480240388542612722034262949400655764841269728409781608722946524496615278930313152369154994215918322199828378346280843524049535244579327809814898080311301666017062386352540411564669709278782866233982644667494760466178793452497007523964361449373340811810732725552088727295059844492788487466225893909800495668108608515972745683164470903994515236879176524837085224224888432917962576227555104529961988323935787248730092128374529267940482769348313985643303396125331341512791506324220566091238053438885379527083704202496514585370149562381710912590661452200330137939583756148908821891839024964307455346450774039653744896391414612307028189170873058441316543243144006910581235991802296123488623792805241957880482738681565540740561345562213542331537870274168793798164777304385497821426117460993480265758981399889709298091277469907148895984144597705595156720259178398337936953972483437381281838013925253936181777857877465629498925136916740909152184965800407655362329493877758717972683750632256882924170022781463956722499844170803028750009277849318344390073527562864714188891009924655887596210508827992364975104295772043611769059957372800233552113277924998488219592968242223439021653940579419317116936231817086295424284153926965677366139207627095803699229028189321158006753021384399471380467046528318615732573034091319274876108327050157045104277297249341224159446659625214793181512092870092018973376955997083277170205384393719460786647925445837148797819347131344968099445925592320546659200120101606339104035033451051153083088208655262755832881753587129371751452288887136477677481580070591183101981020667164491381294419734544858151303652509882359253190689427923163340813572481981127542025661911294950550681377677247142287960931236806230606067716579118428716167319826809993652962574208051558044758966665652296444872418142856054338484021323390621599935213718022409744871657334455258430762131959211904312810018819649127077543368615227718849575499759059438646839597062783436376913389068440544421514257692814576887045651741914894133702232612785210032477266628569905000898669333439861034574596140220827148352846056312821742691988289336857304550684432746277906194597273368031732842693416065790701552655531247730216487347939891323881070002234534530567644690983413900131003723838901216610969374089538847766453145304970559000070269181858536921659708678392837592013730172730287346368188517935970220470283149508450893034352841749081161304673200198489979715883943906993127364683562555646807787499642661205811818563510797533020381013581333052581403056724263101122404837806331805074961908274026085391083948050647756646695254760515253967532058815921796797759705906528960656550374978700331479952103502528970431724174720826465934727431189263292202963632256839425965277731533148754852961056986447238810919877702528627500060641374521469907730172199532929920876426128094598774469025253561526594487141217751876444257782777132308577306802007600984018175516591085022568051562938730803381121742618446856543857736026243326694575752814786740976576999351086606393734168118975770685304173987709520152754038045767008213369598856169697011022400142023050873367666432143644024828973806022323124675180161061471562983538879434531905156869495242171023242837452756372065083201028429793739560146513286868793368410976216553769800444847242790032081431141822371844979704939213511882567093677413476911356220039290017375210753567146451392275800366054886116086163641318604777490291557011045350563480956978738030885068058117533595984643666477626274247511845250977298092104602906779367910127284446631200313858830134482333807359725157942186436849967250282411186762436412138996700520816682655677334306941589244982619812952897055141348656161651458906743236015531327374922250303430903459024904239538146069414113684268432966429157897473770263877626026442952670322280704770477470996032649943774976161635436040406896980980039595577368795634762049143226837147320561078673165308862321497512850698629484553162666665024751503905209287585172439811300667794020445856289941253231697863195383429445955187716374426785503229499232661221350768828913029449288682358392299079848745906317108407586903230905686438716598915063205519098460349181358523171212972500212337341929328249875017272998508341583367713686601132725503259475425557076691411876407106705054024794691153408128782527287885522642599230072620153248568062402336074773373209050627641957712934750998437439887181828631734181951793571143214975531762979213405562974643970675424394891868277480500676569452455500774602151150108709981611670700434280832897203528619372242605696717926453209413152268740008252768550040549561247586126706566244762610990727449340886802101390328034122273259944357681045822671425187684154016407071891045214704791660120766619431908954497512664398223591289986966534454339056805586362593478563241793868554923590941022955391808958578857986499609849218480487922466755339374925320849620963226751654786958522034848413198705361666022412633351143334915631212717491685389625620929273393616828586368472096252888097085380948240580032513740502731773872897244645697057804033267987124604814907256859100086218578644046403267636910084211583170530422896957480727683270890231292404534109232228941426876077823126357651918443523773849922585588667818885246751852569028259886892549464382689629428517845437425217502625862571303787874881274996302752571581938032148799927485457143061413197772291849588538989131035743878539554266887295717569938420332819922295141101633921960754337330268684251705823336352871939658855939859367453439382909346504048947635053820685662585559430802912378913142682994922645856069204401953781844255930842888793469462596702860979892378926959116809160114579356842426850212791482026733805620461639282288211355590615903156133715673281933411898038761452627589350210562227848474987397606107356626471314720599771925867488660582521108790851582588059801137103721159085500221694455636261420548467286311300459483660701660882805824312890964791122656117316851307665398973112712745017326521279480344548019075875530191357087785262105018881654410197535665307673336860873117974309944253567863550312264244326182637161485710627170110094519508753715642289169807209127042032240113805213781662348763711800412270933761777051423312964404192040712012452439829835052959768060247540638698255048902150594451874414277256915823562835896583460957335655851071485997179840183599448600127907984210442231046245415214521382483574928311229952018120425149644235246796574075893254112858082462827742274404283019076505120820453671336867862520407720014319327804886167356338421211226304582418741523699230245933775723322292210990438628968029727287643722329536707537179502686691071547789239448232067604815192171614386926357166059354609864025528929724036933323994718225634672522537679079824221957683871624923646236543579394482291696239574325100180980277042341101509670633617819790801551713689371437952805086763223833731432057660915905390368237529471089549245269983981835576357075101705471505649679760774724593125415463730027558231791673777705699899782214988464617447736578164318792974112162317502645811079724810758546437470836324831576780837788276694365235480591976379300048417311316915185382323039474290610623166685580462060986046862223519694795135526164506741037350039195566733460500222015865548737471099088069746494227930972719760526250868877642976808542623349855028762434738848710249644250548775027246497002272466895483694406558594954066257466562065869671795142169037005155604551862784901239206473431642206992273604619343745767245945418447770827860473612938990040744111917438324611395643343423741638827626933628662255635462460106615599319567632709956022179741052232112083972007816530854293715853507157990766994105155396865369856624542134461045710685823252474328083426275361982974683183981143447238972543158942395136837302275921975741227646057832486017534855839133003985148265395078967255372042420967456796362352519336833786369902559937741046816773097092085491105838147566346805331878665637738269967290228636862567002815331876010284280042886153893396979029355175341724058928189698649055404986483345832742387503329253038046509050744187575751424209117919000681414888122007870872836786186959525049971514781913922883653627243879450686434252294998010336053123355018108585821197257476265159321853434526737737461612205069172191714959383148462070814838464247232966122646142352563703232208330332222815681484851904582308466984505677989387396109132063147664577630119216175399858638155244931611131254755136222269916981634478067972985824667396047765493104675335113137298835373895497609285324460809932525108071578672442781470920099717157914051965452404430475502383550236877048126802093541674742126422906649140576397470371080278149587515222536275655375582741191166830380748238247253569909976766087152350901757641795977143308327223708031963995110737536499363803442671637759222592286410372511033470699222420902512934864009116027134687469637613293628290426107913629453688603760546400161198394682057519834010126257060460161691923413585185814117428986123698377132948157859359569584217492016018045311646157935643424556663545362667767380318389178895494304281577492708907406251266870612485355495386077280325567900548736847096166741048359278207204018345437720633550377866494240397041377334354304406279714035655814507050582169913726300932490510111074649873875870586185291859742004095466857845375906893784791304152377333870795787227762046493696407890390861696666668322968549746295679286160189653407955027525967571844587983745338450261698458129151875777355870463149865801206469577839984745149454737211350113820446181788311042357385635401146825388771728039196560642094243347311397822439201016284141267172864211489070326515547846221484867972340193621822329839197968484554859562453003576217069243006173558097748954645230588599952138662913606161535542799333717441696466404128796714498322237544363183483822403018343895556533306026799648233821124314705328600147107973302075503330646618252137628503197379732350464457162038838396356646355891211144382310121405241057891546293729762885840692599778992537424184935827626331359320202422796193961652174656097769120495323842445926812661125987263872511865202150980371110386995457352919087163599292738333580500229072408125120964895239116490774804401209526318865028655291959267464749850750127663490545186523603818776176064888135511467445044737637118372496955118083788711642230345606091131584927323695886727634736597559056094887671187988381177425588219291929566440564700208491908474269632131358216091346113317467988260451261440520951266923010444920525486675121729134371411316072485091616225185472456155677560934421915222016915612576534410071905156917880789091425459744369652295786088533450521642718702199403119097735770440677946077869657057129499819828291328475051028402262247688997929714748073893240756955663581022532459190052401497237679130644781937779072280339604154143720856046026052657172106859656115896388251727657531811077344724630973623745822352817345042021533687270139538163242078573852172878726794870253575397314667484017268557407547758889381431410425857457254629410155896247355403130027637206598090624708775734897480093415560592581566253845306846665706929786425073942592659581388283865460080204083832843328683049369605411647449997999596579940724940169845160209579102369905968311345825383001715739288629824416339267325221378426181858842239268540890808063169419508272198768230499652895322362525846891586842155952420837754621872094769866908346162623833042736974698304118575854975842209299625150002224686512350787671428739692860395198565019426588371227662856153141228855230880305620378627418541897380645096051999863664086195088140598580831089274045794613248198602735244099195110135086069292601365960342719079186181461590171146684320492115264718881657928927828593875603433374306060353951011278539304806567883386245493917039227552525827345667881701893878809630737756725008838735175353000071011571804664983175105511819248486804615892675143946932571882528731720271962408540359404044657467343141067239481927995088538101577454833393345369678882548148003688900961451491756645582689449226643727220916140771754140160917008021740931971450508387300730461930041141989813658572499024816771185719819684973868563980209277301250500378412737516303173970477137513044902764440580778637151445163935084006436207377319989960389938239384474560568850105482211313607971515573327362389499651809538549369184948495854958689918801326118932134309502276367033018765967370867492165552857701902642674262523576346749045320929520500186616488932021717901105392237389389883723316344775756325381395945679524406420667889987508557820324706670547484191025801040108359013553616487273775093066395399935222671004268380969209852979743146081807896514919570541243388892155045096177749813419963037945136697268623794249223649989911668258687105460540277175555633670831282330262649423154104004621692057011954653179607452049829567470636624064903442691586197058060742814685025456147411203205830222660230242780351472776380454725192720515282754695922939315985155938044829230142591722458496130165783752893299385387349609234833928283906304963789061840767356368305214892301631174229644024898926574811490156285424930839514506136528506405911764503300120202398549975090474407559320052096694516790972683745360913143012873170618684432818115266969359866708212591559009837150929436104646956466650422437727666727088062670776973141763871133048254504592629832247097637952895499277410528198668810842801627150736942887776258054942415727937789795617547601911063715532788398923422684274932868888344368448681498725489235195145271924278322644403587037179096739029074415425390081653938973039385278496297924123695945585168917502135928780015761224318778461538387474785848439280317372031833756029606478100503065889648170769894839095329021400383612436775790304092629519018510474096937154926542247807983419638118466038896400709734302805706336211175739873013700100872806520617503785755096572249500201638939202452639171778973860926867106192412889952110005656093340399783761641726537618000831167140932143330015949110474327351600520025318124329538796916923499663636440849036487089151769351028531255176618168347251018877946644919127750784826292773841818659763409157172779623639024856464944201653715493392089008032304546419379233145782507224360817062535328881380632195592295727208190943759265243650690502669957574424142927904247479358529671406222852018867353925499033818908989393023588824523068931927523005904934800903163602716004803493867279976243916071483457659900166586113538616179254504117271178114025083803852365864082931100321147643668837894082048997078640116755549668319558932685564831090023015618357051896826479512229524983889977337218200657994633155213733708731801887726736657898352394445250138161565710429495623363915667162075602970409710208285074367155181036637899921292971704186292470731326085113648644609223498187746049249587958629515731362195537092567574073961463519696560592924439030890858790793381289006063578013133060768292729822140109931463006028636803580947476357274723255006707128275319196858908205393472771814575571280592292157644548781094232521467010215535864965987350236198774671407465338620363317108290710351805587977461000852449934748536624120232906709871973034722304830731141842154443426546742392931484947426760024286347953042402260063841532927132562997161741250062775346533762363707594559838970066597672005093044084843569921869492489664749556748047733327016844485573083699250983387915984151675451618375041910186937197680845125977205611260639362039807554674288989451660422904232718709890588196187644596973664939971331172714550812089203713735213507340328115608523251622798231878875473317409602275720103332803176980238103496541303494502719844444705099940750615739611313797578471904200523123045269241467585998979511712551676991180326019918329489189532285356052555099668640144031365810686574132695623949556055954889104005733860941959656997080607511163860325840868532357572328982116711193484485986931669302939698341706030978177914994633416130998751843071342410100263379811070030295570023779656689637119365547968881158146616975758706220575078551944946117551373873211364984851812149647462388596457290686994477346525096429000757205083042003545363767556505956164570723546535204033394227235341388300369439831178895255418718532963374505881153279435541497480515431942670748448069849610016704618489238042646940363965734640173536838578821151226897624731655502712273989384223787688968714229872824880474425231115926308979024932384957649899890229276440060729288543932312326958348761069197434977630169967222260352929864191327806352730634852155245960232838987657032981127750793153437611180475463935857633935309841828123396623051542886540888486648695865169230677896183654161225882783710053872313948125197306287237828038937506435611083479070733134678597678039959590713963894502203752977297774323572014876002380668106899209602740401855219300335973408364207780396568141527243761250522131617982780971456515237833141166139585424953757170453397259648721490551730972966036442695856002959985145447502820475675285213626152117180786846815352174613131910431877284423506698445746570935461268016543020733087537810831044845017277682173760073410245024973327522531894708451470611248033521591737636812483110000985080294927877970848977749909561927817811443283335317240940206754561234025315878370305670740116149796154870208100543395499283823812672319706410787863499586218281085343095514675579678653199700787975482475863147505514943488124228240753701226806216357988104986759070249102604754857878090336989811941591627113852699777026637279931961736987675478039526230703617287414278213582736758878350342472561258286054553030151160547084967363046370939722428474925873841052779131818843759303821686772357724563314328726630485358592958646615186384887373978857190111696454791526653401824377496468929558849364354018464400363288751806856091682710024131491401423273848563337512205773315117924477601617135094520921199063098810865332133755652221353182646840417206138640387049869873867702475217678367551948647147400550191578109834906587458427240706472485842140774603155221001449821590695415273252342070025444453956392573003885444622977181553245781943189044127641407792866068279804672540523734982454563793288026344126922330444329801966932196820084111189533542588008743865942776627142742716253445232014466528458029893315079669663430970631063345943318553262221993394192495709259489636008779646350548832293310475950098149150372699411623969671760570698609798909683151487639962319043755932128885784413979508513737663108815698173801361775920722430047766783144453797907510064040874352452760315682288347677510774052323117621590131919473458397107692141818937726917364124750964742267015232536645721586400982133895887523576684501273846912085388498414777585460456809368862073974203212936091968861583908618388963155778347907536473248816789596715959911876242821226667199616759608990430950196957880548200650065622255124798034739762207076136692861641732225112279402845346016783948741469441487894968440035130071986616513862263521326688262893495652687857275409936913482143571306038195151484173695962265849600514725557933082422356144531178075326853922699127241197864190719598450553423025809199219645555573786118155368954610404050275020109313629242160183043500232197826039093614930781211405587514676476002266713283113856938424817445014529387792138874893866995767417674247980590231724040291213068365945102316611926535853560280364107552473067926808634276071678497131210448519917398469257079105066978686402520704518008988745230047743052100055981323858727622651134365461558851205492331392330411266820866773300907443512390744499014675980449291671887102405119163159252516299175203563554485675318571525668101510178902810145294526916252414428237635505168693111366643734567319811459032480639961825924093845803131433178665890356572404727225995265190972135775085815550036179810755818150181388846048481241384873685950741421547359608043541757923740647978003441167169411194864076298994834688034242025814018932384584844762075811781023611743203526281791189035506517803680224257165487978720076760769147500856459605682397229343514874038826998673070554413628843491272706020887844810860534005137878759400345221307655326393444694658169087170739551625865738665050313660852161602339683956568731256347556839432772780849353004194720852036354552944161709580562134952536620888721083692537000216667246351088771507840383714448861823571738397051273367343641212445439437677994319565142350483036620766943771917492009940754695060818580054295187902876093050000767375899543925296866175410998214667748472992301364540001723707066836935807576585934477503546823929473660203425293492784773977710870811513456303064622332591857331842895686809970918960674183223968575439198128245654910527575802232723147476347505183846928706675828356531737597843252425371674497163958843283818352199705529654415670219104713613315247521008763022885278658703500879648505881083658377010567383205438624071100350775463686344451415720008735058993000268069155789059313729398503758204860234097208322782439538706198713656643608283081967364885402942853120387314413896964503627519792620993972924992933026394179451564474384277372985089492053352682904760696612875368881344001921850028741367990183963508313448499093652751615401905386437736477161439598735098072820281211776815503358303008555694054242411896612554793473261239827860105939314055751179056044219519359562522617495577330411916134900722705347429180131535933053134065891159018369651459611746312621290613672312063282970378862454362618333041289015960995335910502513115564387416289060448506323256764488088839367738478594430758933533824410554054889534242808013546694050415276250975899806113109347038289277571660630333102706171930017649736135373963277686444042394400442907011444185587446417438578325927118045981603942701369879733826575765850348837920360123836670043636821048595514485906303743011686218789987239258330313662430413365781188107501102678002899032661459410192382228695599179633178770073982647967874695356670988037436800045784739459326800445454430386324403447130601698624640555183849325272370049811513275261309725855677669394099799469565510395197333072631474825781608071481229414526047433727236751601001740579645600406925550940006362818116718176612374381319398752664113230070009432902578826882735126757543975502383993596932303424918699152715585111273193765276777321719091368453873170848466444587235053649899460893205511523112604172723448921104187343115106148511792114718478752002765930318844782984436059291863367102614836836155464543681180209198346747379918141737837382707503663411727133136673187773298233053481905983048094532457579041875378075944095377247892470543065202918430389086863036395387907970415460503317009163337252293249368988757937163072678413241799271406767366248956181945788494202117242712071054889341055731716848642552515513075280766739054056987228654709922327764847406685149288637737339881831358385473510239696518091744690362073864856604967959559582956922658740810523600191366743719652160226912584964002811601083967794736235182030071683487178652136770164717258879645070901801602262389460548180271520485503799367522510491944312028376117147680821709000164510547288927460300719438920506707866985624444958232606850268149253787110153679264360346485052437076241304445312797694894282457887314915132016376801745967209468526065268411812600315931130768341412388064620447721087023525934977321980765209599176169064511600752313004689679004405443772981392155216381456480487134910247322414960627994216066426326965168206281365801059855875835242426182521638705596436423860345534486734995393238356014309198710833297343768791961944650503248293609469396085971089653490405566567126300143124166732375970229556948941557067141426423983960947725502928896638194716625788034972361462773905102008855209022664995321068769585031967879332938201498849757928676333387663533467131043532413250057979604503320272799915171526984486383149556644726487347321062696572945733038828992815137321054358907106275778836215834390744670387930535023670134537009095581816266557870336086882097666490540833313672119027967069045325889665108108210229155568079107693952754560931506293207759388739045210071205689794412425680837105704495720872966893702986868458570575552649697312627988989300348434964299234435104554768203542522301126666086613569006632514113369564852777086768539253869198985345945141457471524016049654105351020731193253873949933960626009024461124106533666568590383544151983598034571997582188552038818553344767529425738773535760092527726610613595698244054564495454656619189231677603925015651345309040152501622375531502348762451051860500807822457149279795158139009086697846125050248514230236121929161273211538443246189597116470089823284100871581306162332956467642551535363844733915578773704656132315969356054528815637340209013679847005841548069184942471898963799628994298205289027956383534186797117439367273021392680707601043872177403126092160868963140763030876859285848436956571482611723056530226319127845598794869610649353199485797366751863160695023167439885446661593276461761703970068406081296535670239371717495420077532550914604245628718906737598462600515893324708892314764967962256424693426404325966832285992254929461687897756886726861655621374544843811932821180969055018986873332336541373253532442994287761547807095864071871442755187173201632875971586185684714983671488168903666884860736721681679316505425026603155970253262806045697995675854885629633046903766320775018123570214158854024766465876614274530730649736651300953443970820999536066235051166506906632391296664352801579669285266386178317855622632471167784359470142783639307148559838244785466698291395128712163777402004387467690209983401758567234112843822967523215259983202282058180257380611233592490032246896615505846343297070006654718404346159136610376626548478666094950173240148844787575779791563743291828237584133972696371973079463079026568245233474949901829982032952037366011625661297888676949003245794229270999882620174717401201935341832701574702534355536899834999902712864372923435717669774458725879395234165065190924751284087187076908826528702958433022533456499529364259484129123369429137469172051938339863210943468213096295305904322498659431480295789572801436318637238855183778210924682920052131731606038420661068065328994855059004768868252098077215178767452145803533923877041232636556402340892672035356889596580345760799524733080317921802656189631363439718143991253213892737927269574362493805779323692078658483114540941173352097423354407727884719609037235002259293898167130288418850410016972271878270116027415204801632035363315189767495140005449709398653934634729881600714684059212188345048941179584525077153661108571083730963976187045720822257341970607335712004486975421993053848966420698660674924053156498760430703167133231668138885770391256912012818963012982836909059518390769620959956403654552578308356317522378842426980609975186775949235141806486671961809575284996200587984150881326475320554301097167252788761240067319037666533640282393158834754106478189249120863734937986122031476846797315335726777647035860478255845087586108961021202494482420377410517660426456865306157923660216095475437017349952278602422689377779376164769473613945558237256083546694194714983542770252010854819798491256690621705660437475481320954422822680144543747496605107960838012460151423580689498463210037119713575473254251231139156641277986617206888630703785455694175892982243085247227756826775439261737527808451262473522543148283719505544744103137481503878586109391258599009816895684294548381225296297355282427974079042060531228682947712065910790340438561429800586247156731401286965387765417910065097740645539080795346379354130146575826076277184258434666006499981539991811406882937389024396072279081956635549107760893688011638828763490044946227638349955477657740652823439002207221484570614246854108855652389471773822161993996547614399022727897575721437904810552497114024640635417910707211540345069251120908154632981869257488342131918511357182470324017436646571293949921168825265092463218161645834324437617629731957582217833041232355235102332688358023460628217766029726389948520953705982368117001181444807228949922770883793417645277187419041914040812445597446009792096834036857267052762116770373764410285465042209470241197447107485104813651388604767185013580153297671593497155689140233726737888024894937506409431504094710348680247249070265491870464531814676511900481218792063562821774970338492230721612567038321342350101043582195943998209716429164075173325613952078943478623925867075465571617551436647037142810273292559734039373028960942697767868302765424573433832529195904119173023900138685885356415295262752182610021670788429749431135337757151171660024727530862628057964865621506779903489703367615844678946955241801097979124688314129894782422807918762351817817414603282645913987612555322418970166047296002785742032797389107294392578855987893544995066114633851155697314632187550375384037113202941413783987070331123453010168682030474222323849285038531062628857825142118361822427921190093999414095776243854169470538527403366077658386854784487616637112651463970034449003497464757755687522390036740316676143995243067193683707648719010479595183911725949109980462120104337554085447993292068199683669558984258559294773477016666844881891512939942719435400711908196997144009542799917478512989815709615908251225602269552295413956684849894367168870341597501432532102449567682548139630325166386209344065214919885239453460557115204530199291263402718606292344996538141816612012759066590240550051264716951167414613788322713434283149238180192844761182992693992879489184997114284992913921518796025873968098056677906477470538413196273394738838089237116375432660018926237849843538224985210244538574060824646640151731724326006923489076807603154539830456215709338209858961878835962176053339014032105209110030488677062310817159447350926663230411584816565640922508398199482134324579721365556174133231334021352814706724202620277285951893446413837910395328447543487209715199178200223266012001741956933873466016516404653824848271353304121407964002644347101689971578450984817225696415670207472776323451916179384193291585500251157232013444222714509135266195674226578713591503216859589811306165643118328531566664452405295228139827309079059519570707218138926397188198434197652673223290419957710195586405094082696678138229997654010244066669569169608685994545074678394085516357006957166503127431385655213999808322985208202964035937541123478989822716160526580878204838367712505246151537467008071219663754558683164546681924526314565908703340439092815172487528718002282195035374846255369551156349477957556437100772163700470949418444151181137224331286107026671506402135665287904049507593239529143792589948434692978222814027049751136320935387988929799489546750137883238349350619272949110641441605863029595644954988439345583086754690977637970283161954030307308091341034825682650516513650275864506477520330404816795964665964637232755123524514150758123818337176712909341808881759531855288415260998931105461125414963940917871204982890101016863288485795088586517606353023217681469613729979253662361863156623301134122750884692207298419392976950690448546641079417561347135742887395318194229690667471490633997097570744458982973266624688929800725799708068588198220820604765316470219540070385132974917916409390108415734372103963637711334350324105321444388892562663946020885135671415942930992117319195230413982587344902325323537522912689211334052011467502521099895019792531340917130322738990023865564485480956015438103447448560929742693222635614070951147979580284031704683145906919558389884910512554704160272198726702241808301693117842908567398979518972951829298451075475671093642664523000382030494395081389575086105363216577382639439413885743925799647942101916284298236018262878557982151906508830425293805961357622141677706045349099270138915968804489381885104000182183069844341320518921733175525865847949836529212615743841006644547643590106590406943016730461996006354801329033374268569493013423616474799392419019536877422900916415961607882334554463538327532937316061881769969051194722765831682625217665238625600351992364160992793716600282209429004833189256948056308363544475361225095794331314081923118950494722158524264124228343685172811360651519454022581402244003086520581308348982835935576932580310432856216133018314457150680869679097727950997323005211143290747072770932399238813681911426618885050197905772833595093459250854489204640413355365436887392977544572745808533915345190239350955970897175084358748215651866683150040755803856932450585285718295518644211857302548423174930333337471618981804219770374024102421952373224393692833577097200103557892826227456836451696937154468288042785060206103348784083165228746321347089228000143334537046725688678441461262093585071998350143044719283132784933747065950825406105568836836363260887906544456830473597781913036862629939000231082667744633617935128059991238334315739946752275430903848410901948789894936117610891406153036169942420603832142216772535160716747771019250701004266359461260331656205403123719988507044463268855350059229238218910034272296048397994129873409779721515093269801157401566989897096590740613803223157670110438699100215655063361419994118799074545422566999113551487179986283838416726890935627600626703592138645738585615306174441018221131762517571785458508861984524848783890413415429884736978440389076519221988011145696377906553269319315300572609382987638099997206945086206174327078944290121074835667058716562870928746922638187882841592879163042290693266874778640380096332816765405037888161492790350247775908172127203705010995172664133657393890550302857567283246938913345080661781014732042320143374706586594514201555084224222758137406621767737028190126914064060327219256021951461604429086053736137920849937442566533193031843947744297529565669329794699100356245582053312784276239474497814112904135141690992646877874654705689648196193305030904330749482320015936396618789700481989757365554314312617062671632189229863739381603017082021631587748633264207901411771749577060544197346822527801518422757219111667375834851424641825001990862064872628396241498897057204021116844662043425456778446357891540483506039578896617062606172722056907748261050682372476163161634297242152585411948952439995357509478108180159622081573746895865857515085226350132625865608262733636484836178782124134423220952654101126160681804580062203772595177044447174050284071758806313543524889578366123914777744383591636821480986153068733638982346157146487270179861697304982086811984067370625354889929643373982115404066245348776132945562167224001454099145845461071342996735101580775023571074617619707675874194669718721073415945027806680492595817011759608857392114888344916349031132993673486104086441280066525491932006104772034804845161516053340849538318229134488795743794187254038283685206493387739544868880829748885852376473593772716920898959923212236971634842983352992065447980930570083933806006940912741736650827684501710195009203921330414642282627727985097976187842874336316057331243333062006522996732119972199938799719149648455933152421028297484021563501168610554768389640347070758220974024812718999411899972649908144548375406996911519989204059666505959782550888068875314420980810189862559449565349589187586575433796469686527389187681566184023562658650352177638987680972974073641796323427628664041339258752419134499982073303653543238260050847960099793144078886273234661462422912151345219781819404466774982093041524785831261683527197336654244834781407358975160318831625069295566809827087291500399273910201114712884606237885839045669439602548999890339478404750142996983570195476228093284888097611907374096078379814851038853344163515800729576194380816744337428518956728495218047971423164920478026391890784539163656016437589505828656211395513129977740240310773015360029755268845185311907000184400843888761507547979315665857101514976379288978075774339100434505179722031364771922957110029013461312821395225434201425973760447348099321212173365532301408266891555793027377348614275018075981347080935852443626124123629904383045455448898955263833944970447989344609508470263273977100521607082339653362515564192974772375473618236044634821452239707991284061746203817579175564097831137308056170293100243002249507426710823570595824154269073666641458081855920143474311178932346138910376900671217475802724616547282620840941276915440772542353364782429512495165456506456518113598999993944370670455179098871680783868851611076784234450736102088300775306670557081448287207741763694197042413478034084645360819516046465328048692691403911430897148839518591161852626042782900738057545534252441869046033825860601341658674628145899140094770130375062101255771638966908492496951335641109234350786474557423392147954260226083777752034688856724644366411563435617099785199902043514619902522369043334225284686275848163189033181270266570594193329618090998826572345531683885190304295087182668169418440314985946276777384770043127621579927714282945386985833969054690536968145013071957337528857216791879349131264528730308992764677807090308391577832838845584536003373268544520757882745560506351250425947045048971577583483559774786450187308770675471915929106655679601288681952521051331134873676046889298093765530907087971988025591717235840932789929707937183144058894310218786001381819580824902625248364388902276722880522122781437131592201240249947506153046051846858297214311980245090632823658290064183931883428677763935190053384937781500563035892667347685705207546154488691090582533387969919582652034224080700450254536702604686995261899633887590809258892388699326986152814691252124011905149646914514908740897908801860486001687549766305453098942622041283575669888809599476089293911459049801332646398338765779797011219324646277911176621303191906857186567240655115276312519938119297101366800284713151529276121377821157860216526319847076892200815413856370981596476179184882063609891696708548756972052155059941539979228426412246051675807724064006101927937934109992473284299411736829697817838049925743477475977026695552801955517079985545647698402241392399075222998568406820412253751226147808580165223426921680847356220456837559775795969954370405908873756446379550805285719824349228619755328066568912485276950327361821615420097828987544415567762533369576401442203880297816615875696970685950779575096976862711038091041364217364653942357351843640255099127155056188759087172821840930256352646455066540153941823811497622090864956290857149376528430666675652574886937294985074218373752201024339021891276026444854823901338876932895466614426403395990458906282174384475661013920524560715738606384905437975613732219315342188980156295835840837125858184062866177589695830928203882976176614029953399364757994775810912355537417163311905575502784476072601634001757279161078908379777659370594182142993019896256512457677557840809431576491717107243850112117677985103115305945006721760011398961058585210745386193853402285964528155192976105284067039919603160565521748891446133919579443735348002993321752075008507935838115520489099910745977940403295908598031826356726092617672018581135395769477879206523591168583837754721735237012469004127155233878182905064552909939426022684566204342759411173488566180357955481208185558243735921935101691153736187947875136066098339701327883778377982701895758889867655614678431610256347738255039899185877570470621438475916468671763567809931754995736592668661939435160723681607474982145274227687176873244382854045424081683368894842657131698194449776372492718429784560352615790607519293752368476798970626815603688536736627666272769864613208458101662733181089551825533527198350710548295115160769364131631224526371243171647762474692731671173841391968133978469624194229668664511448492134950218193295200756147857829916063188917332269709550643695097332767871699427698627457603720874961374162511542076235884632341379916277826131472493531593336123083071261022165009221604815577614806329534990491004045546624565006178224527013526921404981906944396939262704657396566461473418690945304103309448064852944370993832609041520725683323853292516992836125533438248623781894162868475741901187921288134803405589975751100935961487733701930763908591885764476104188189107587613565983870109288592278487941189208340290933732426280396922947384148026558134548134889901847632941175246759264031598001162770588866629630189009431935245137830009003619661571917012102855672136460019729906989024584043887812398259254988473201481145543330495509285866696062825047549466089126688426606394492581566059580829619026741443757037998357657867798878539811276857564393221393099734521253031620190145518601386262071208821130138081369575315304118253341719251553845760008404086511730774422568641873563362447894261689700261744847250815048742891654508913836392377745985244568579483218849087310767312632972682420012550285105723097966110595154990929625975239751062683289725531956462302076881690501607425421319717170420304011152992097429031472081983332626701335926374489069345438538266134223263886433632646171373823034154352124243695988992987886018875988908684084027724501584749245682257099670359043433302560869014598237528593988965746927309297905726757455554995720860836938251849780141614288110993309354115794248184206741136188771139698894228985561178098898458340787611218620499319945102169157609314279395659453519457532055061136806224984419548218332871397371065799750827769741818974873992492332174841810513781868321149963232633293385082587090706026585706912210003505396887524645401246128598057788780160352679897858714685561527328251388070826444771086104382815148880649442169074778503654662520160750556482460612148467250616189413852604841311220744259996854852346911536981409471137213471313783372601529854822007085063501593679104341013044692377859835211296158066224979951113072084679297663488627433189200383186809551602958705679033027292218575727152886636117567533600149713118804886717190271317423320047791569714732889717558007022558994835342383135765534735058040877636133719413429497018439312382382231208030163822520027944261797387002210392667323371646078183855766270920327571401409334852351301503027535106625068851768939070281454806900406882387975779231836432270864287561695064885996052296885112618204465580675786059906403174226470636931902416715028972169000781566288068272452393855339537959096295588912255599876415331989201333479539036583614183559454934525210497949867200571538974923162387900194542898120229062389752675599014990009942598365002056347425987372401623227668390305192889359997110963834953394473483213413361016824392212319046730353418838384586299857368793550111756428769358675364724552803631316002975087962056139306755401938725175249099124265721369140907176850691001747637506035043183075473048471827557578698402273295456196869736163334833454928562229081408962934301271544109333347969142700566937580483466127208490909238198032658010643951850932621430945545010864462158032586028112181701491712024309102904505204489388321213637137607991812880062896653691248133597527519437141972949876105632135443552511992094087947527219075181643914715185232427311177714646423680389470373285725146829265440823589678410875839148977059184149921330280737290995602523518439961855321767755518214123010400841574548328812363162336965532387955036884215161353785212081543567995751222004420823511204956883515880452308536182593697003274120678650756322829563605840868183642983933418690418394942254612992970865174898914480952001453053968945960906942422277575804367323371915337978811907548477970196206289872406314768380341156983947238364400790308422795404083723159335330832680975089841178357601378804174175772545753566720644691211764189962808364188137331102021339788852005423670344799866932707935201562731034012557431752378196680455801544637513769523517569026060057203015409871497903326467360540417424876472174988218478775706077587272505217051588964238857450624448834055774341495076385796365533871764162451060200204280611591118924952109314813196891970712481675935269357641855916846339866558056302042038864191674429150086638132273620247180252616521624258583435004148886084633234067666751184981727662367177076783718593354850355534584286810072120935749970996893444793176326674133219651755055890484217161138863305000655301342809280465038952195624676808554302735381614453425511020474858132548105459875364782769611349247104591646264992889383190403998048095393607240379899554089997307746405849414911468456162559534917467892569760009050602195197498963734825362277145026605161612939461614164400064302945480748765996818078840952823675158855804236591956193051493766190302249922474913393799137509921938747657934500023355213592518970131369333718842859565267618991525933282954716493239339722335609134743879198862932974966273923871935720149592791860601504626281668495328680396504220266070843807274572126186742270427670207795210287792167340738448717193297727433703819000867458656454482263438364815004805792922829777542148648745328945327101061437915828407421840602378488398900591347012420933481026721370563847718163455822358674510223842114113920449793139067375056892422573195044727725744981332118548532625604158799766736982201006538212856850916781228773194006144258258322575782721789915785260564007805342965938342939270132952353659192327322970866697834051071667356746836294850079649841244261654476637329843781464877667604410825316376221614195715072347379768625425437242468889310341243947521843658738382398089958252034581679393260628653343998612604827737240275232316547193120859583993680053224806288567229809079951974173448712393320966533678238598306244555269967053090524337755202244870801453272424016289337815965901084666151262882169183517011705971988172266648535379899440526664354083535311596439915098085161804219747067468563334432572636298358769140306797599042801767118973844438525558586983358292284545092439149558340787990886564473283518260108392682874006417960329076588190788564934619447276369199095751717391701508040854133087046794169395114271127721203051560675629582785006228426658819393996388853057926316273099838999882215674963807955269651105815784999182938991347743409812648686222723575919829513308803347472635277011650163955064422452425912656830328313967983352431667149422544799769012600892702135896829724999915789165306390792182341584250742442013860027154145459120475501318264342540875996677644217288849603886094950953417985544468666272246671127900706285446734668091061103844502727405474852745284752286327744281634031206672387672096002107234286535607097678446460024703606288184298459173492746070705866385109790453688536903480344896518545715514922103975187550372162212253410091514186332334777631234837098734050718870493524392210545935234587475519340089473682894558243154420328864154156603874433126986377113664934298463397188879795329895919333848920272521768550327005271494709110545067573284442055147531805684607157393035348162265283402652803106409858887187252798391498956823318601295246243489577212805292658341011836416098100301702237479382869209194811330666365848232154915323591564208727049605501968798258325457500959426804756041393459292551795817289427855521253365192499738425428623126594932147907540482640568938992124827067073525506943080089417545826559249871746285152189654380272143267810146641790335836135063656930076590804362674668123667148048924790963331089497053438702621380506402664961027710999947517422032094690253375051209287220408026010950428289097661155970145445057619510239213291567623584893969302319151386373370523934100817181846459401562816715091304972667594388188332294878775406294755812489749975093657729372723687810698294827998782087087862926733579556744895796361584782400154935663833285506706612414765731730938597202348539471087228375836645063311713762106900540097251299927499493256359799672990661943332494983455710226484647227154670608061018895808881054129998295562986620281148430128135664650457048799017702174558362289526965579163034630900695364822155127422972099716253245238057280280721795542144903006796042493380490378565220394768299132239675259565552970561000206808205023959124363063515518730013482431658072639025255322537205041623595924628698113481425516370695639669980212287807767644268438184039270460307963784444802302956109035255360228444708494046473212091364814219483493377049725437510990173902387802251116618528620445361138309247227487984996574731327254640490544245580320382793607986065161389097673050583318998457418121435380674002955001738946031187126895886450810010615675230615460480824313197195115383357757171663523358537740479248191724694651631066460332047598366862467271893790232395427423251268256645316982453473928648640390998355772694249982065795703850666780416235911638509487327996760436487539813383952331307920755037153795006639052905048615117269617063806466175833871930388667683904300367690015524002337496131722884732967424106375381570361554792635576517555656668800094921659907718120208152357983546567375388164260254709330823696976473308852196355031778072257596615669812634187135283352900955195171440599141624391514006826620796403351694095800384746744558216199379771277883106157656167532145033516515123647713841034584011748130332766154752951974590924613960331261862988102811324751110214173733388865126799086169402798083020354076206226323437131607616857767321582670760946662515901419202688008623498081825051636490955544467588068085719532704465342963005978272933208869941879083745045737216560934318290373818204064949727164653622926102282413965749120716232240628461650155168336451610559486532828733701286970721823488080285972797850945184838690296211711051697523548457445362084082073581374710846084374252274239437206905752480920513465411587959887220687494397703957359134791505661538293068934099911903286461252106300103636058500738633123122979999992962343432375910534273537306145532493891314739213592043115864326319407045865057134258151347071721626451219866538795653178499985142949111864217425687278128016458016652469009866329353166912327002535638045981096040984836130452750128548999708866166582758031792494407913265122821925749132956714491377557458501523439358409761222963136508815024173684284841960989686260368858007905105224387678815433690054420859032750314940893640510137412103631741922866287860091904352683725673493617419934956142694164883195023092846257072720890005720127306444032728558407239741941655499882298013441756837488684220455609421120467594716278472140830010353568222471362417220599826755014341696882113640663061191566729053744434748195330295766411088291477122527272714383455100194817109616761958255195696577622267947672328720736411582032210875267105497820248977887580811624403057234055349019065236898477367029639767228432917995735929506843206593359976839923677781033699992453214671294080056490473020800031836910512778973626035324330518038653669868912385024080594752313969078324430128367055443453351359317371080118909645189581960024431300813090756534717874711453344329532461518744844808769090786400157262500772206795865758392494627227238122456149002719831828113008951711268676589018609737351961183811630284081765535028985126454765411069748367072281097029096341393165862940588269283261268119475958909525002124485966706518578945755752364662158796319320774208825350305151051285604176785398749319359412592456455624807502447327969202315660061819710522596920520154822041584511083821046181469008392359056924104408697352530853434452406720553518857585464336386135036781994654246562811947261517293388748691340909246589163878547288376741562864210769823405126417947660781351075336894283051812414734750743341501783895482449455991962497642922692559617711545432654387494989356950017611159131602115401361678170987048562121189814649685428092362321793388220376925864482697244963261656178225726179296143958502970518660421665052796838239623726670497398313484993699479126247715678292646057721635828250662747999986695281397632508555402292763933225341648128419988849058473540831791206046886412206744080915527218116613918155792128866177278164263278973589778344904246883280774247348825977362621662891993045679975502248378006785892737168698612173451658820018461433260229770027976263785993961437030604745587671328351710612094132216628304616946095400022387132415158553145543942029562190564847907930571141951842665305485980434211883963420270934840827996792861688071650763363418394219634846534149091251364721492143702671543483899194271941698123919364515656887217805007111579251556639319426542955000177969502563227588981043203800102880841922283084425859230689198445272081768731685282174197378426273420391852247561361960782086488964464554766368825745931561484888375212268622609521754399381212980076430710365681063607122215917624101143186349375221614144252432273380940304043030203404643659526585645124915011275394641260844393407498184036152308647903411116481429366556257875263690692844800307685192652465964951335730508262463443073347790173988867047049260585454521074082687175506629153265187230378077116615736053380116370240251412662784798270363405648493807930001979086338643617883805363809181206327820900285916463452715532144408329657162941866914810057926247627105483725364013409787675402960313258415874995082265650949399992866443530937779409660747444389572505023174596131273081417001040722300090629758310533000202478253588243815650541396458118536204487318742536057505090383425725543440393778791565953209242130273749893705503519617893747755081269241524432845445970123524703491857524467723471233911101030253859520521766548708191695054724004778061889264458730733768247553040048491526714916502519059976843904392126401406645597825744287114999616379628290494655608610987776041135297393999515105641053764570764102712644226988493296663914319279976748642020160149907336965164023574068110256932971072906649550502373903253541945968487844376409908406283345518868166859090250506703126441894335839991181228498430453523340141531505811591497184726920069290774615869325840130551863843438823701501979393766313117667642236685008155831787905226502197524884832188715432517411494414729618070163391614084450938781852515819773506368599708935486554796566742442243868981357045136437477744346904422890903426820980117840644541929793861896676957774696058478018930045056416771105055559482295805784868485927035891503503971388153307264898614253190002537397597064708024837471967021215598599943429660536376732962059953582811220110866763393056798360803723004836168750500240442317973546068024630123714176038155164986864989673104523076808176452960656444187795220184558989116554703568292593881759638829787814067609236365388505344447238371077439808496038362314614802173057035856350885116408636730854156570534151972527302063005070316169694185016899538646697523619767962637284228207914767996511072135581597287360668578623856939569645758835914132702596065928473262074155253768824958552464662649616081526716333017461143539995693081252181205241505032028528274133833770281818378030042215202648707724273031754805746644699436484110664062378214387541071930616833831318684193461136153575821071280196848933620605233235421749456335179772224271308165819386664140173011403795997402618586960833467099501088277850544742485847089502301021184956227099060044510360394717340048954109668803192216007301425594577460797806201355546956708187776735014087971197088456494316562267420870673493063752428830949393355800162003912163920910396053122814247075209068116582466044220424789382969523970422993048010914112646548006708455140352411217153341395718904946954344478632060572687797410548123632122548125025444417822302962125687367073279112138024763259499566536652047604287532998543096144778269758010469837550500789573120141496607077264077564649639245926687923360666665592288554154999643471814143195326313433948197072046647128414690011422192315771643604736439533947932905579191345810020282480112335345804437214734051723028143097196657921676897751399849629952809232216585011919338452973274919913998843725282399355043997050057206258854439023988921271676400693812035382644864433862954437635619189453215429682532418112782017988202439826058996426672234195717900301810799933022627952173021985119185096466244152724209138327107560791330085245164528591220785696583690401380341334149515740239802314947703408371271560100982961191567514838161736120596865812115574131670356662951631137324788273365482378360539691443318553584830596567329530406583301349316864812544133611403535239585557002341943583969100679189943448408283939244772526062895226260883882752419101734326418527971876430641215226425739265037547925062244258621266760289692455184971313206788538070357099279378615423942704524314622518269981290748824368775371796541377058486449817634798803044697291263499624235800336591959250201499865568329633655302488068827129541176137155603590224362694318823623856257558168794453810470793512516090398310875214773519892598864052197200778942570042586941394850921628030125371102899337866475515553589905556310003390351052440946094796546149008896237259600863260212337839540072265508685175665197326521925783486515546779104199224093323125154613362811122646244196123751400479976927815690798965129018499946084990509780507618709603063691686642978346941229820785720300017069222995803772598035995288997042719344651226117774062238414684213702410337101635354095832304660495950914210817196630119765652666681378590448206230398923313872611775510624246403970087356668981723881771070870368455106655741901136756515984505962597190175005956801573137922928861666873280741719397568440343009032063713762503685349683205511492510183253461264339531996698510477846193016596970888939387391334818748672613269824818751153115758771641990373760715308125166897265726414167229051555840339355289332262549297612100976971858598127142995019897207662118231591200573719135096698965048595040972335446683812548298858108605583997300428057902873674670826577286645545914644955833639529283481828952907132906035716537013333835404232055913827035545366597348392328168157818253407341098872680003035396701892508298993160999345573461127062341222876394280696804688501140083258020864480861057235717079895798038875948353765217892351325329312916029175551869715760028880473626502493708142579642753949920256190667419019895467901643538474958015283326009555522008968117616772499433294888237821563345270103458328731828349934786309954421168433612097189799799538993815296737533257522640550897113718174661750343766473361866813460685518051365177979196896760833585922608155011204384638257303982902710250000312069527679038750940134743668045034862288063740121270196539442536837927359056660401983140233358142570368946972806483364896495975773175212931692435645774530183905889809194656332898419539642805042785879378718306980445861824441146677680167345593828574412146898541731210816984222624620232987959656345928257921359580131724077686158318927537409616483664742201516836873447097698102660982504219409833169506727543619271033949972680321450110979238503238425818150651245514728914201093254503780193860871357433016613301195309325034241957627809558748787439741862117293771298358107842183859389550687005776282705515896541815945204123422070141528755892158064635518318881009966589724617574447037789086796640520801272933006906558474630466208576210341893238556455420035610922282483720108351735462525821000287317714690059398880982356257702976802193433611776916334107840485808034939007711259880184450052073495494878591909788602162251354191725225978169983367030173159635469805184384883501898351339258984855966136882458830352502272649206432461563544272333844900245068079045879571638292027731251936899515166357698159357815519438490541192422592322216297913932969060096245577829438037484024561876764212002909099442876958211986150517419118487940464633716437129599419991796157399934204105810809581465797400222142415975214072529397303058225619079695379940781852678403076694094794317268742483818019074801644261420309007942124620816540502204238066866620116377637571578932398878666445322838849287496986443214291117980530854223325754024679319851784307067117950166946308876660390479431207918404700583209485261318388099980040736615197774695760126466418989018623977513386890321132019305703651478854627203353798718850179777321957347552946668975218645851890278375202762375653709458553926719812477136098221562517830670343241790469380205299479538245444631271379692484413252161356983696344707964855981918218952548331106137373912539325861119359156604688647837898960433851807460659695754904624121489636691699114653090299363085294272249775455538159408642878741224426157490139265363056516591573691916192712206352930803437279754562902109701512021358900616904654607169879241746345806676670655899587321789828325048894431362469358660284086098564085647835745562806050986887362442443371507936847599667090975841983717842417520255172584791561717879213125471145934718553506859140516789534884603251926978652923009441510109065917793074182344876975285753625968297687716089099530644352988617206368238597239162044372997826442057353867341577263297900107092590836556476628686998870475606011139467520785441801478829143368171898175226367125829474901460882905751938193439996754033300819327771374649538734281822942456004243901498150532819022661558621963194812282764892391275026308491468541546163464542376141435978350583135095186485547777914933655320279676182825846576222012206453901943734646407872171033582401593815349984888190695239897350774372423680697315561243249605725842699004925852423762431358649957497148066716611749041796740703836525275723191885498018074050442693684717581706589494349215023788993096060033216310871587377827536259163383261189464179935839694607908065232081130002398899055054989494403302677447704520228798193995610577489909450594882516025440631445318862940161197203059177566450591278530983376778132272407352036204791770846761658862150794642808498581233019213853288656775650551504590056622595533045654651819728919175664880288600308810899172099938317245644757370686695784954686350690257360593232984353390972853174441134417009871261208775225881545461535233280850612954690789184849827390121978989619394506597426979897760669874985664350461805606290165309483158855353266090217465274800902141146561480858377260325206836277660104427043119584886998806431254294621112165836113479137899078705905179684267388559995143792034002425114333066741282185051588085391061486399997383735844179139517137344920159126108492249072352476775368592203729364233805433526807909459216282490935609286322128503570336082093165129168433953350098889464071955807491064297647507520126817896172872045848798857595216336455305694669710463722577737471286578325867755075221585309138630275573831493902964210925386217639606291386111591908516670153783246563997526103005115091606671673667558030743133734299181403108729049724917675595383902676473856055362215554156632154130977113548152269184017947712674056411782147458482261891452476991567026206419436813587857623907706776377956218132952896336255619294873157799917304436550686741733073104532564114434119624018672001927535746754236833509909132893424080394746012270756202563968748191605448438759763057873962078562343420641203532518626441515575790098505063718370759791555347975354893612784270229077964683506990730060438102081912960354343282493765492981041347451484350136728891635737903625225221028181218772347822476145376567283603082771343047747023892912183720389628827610025346142884166219168951808705582538906921102306858670706531709748556633565213510426360409865603775984384035389502889307961167515097994183199422093265795832281517464597393576148889562671239841023151731067136963921335167509966663208626131337139089259501983783708536717596495584909981310730406267565179794141910839769120091473629331446078067734044600648911560054111324842887948797563438026731408268941250830436120623235812960243062090907790018174305675321014163713311070684809764687548397068439109473069863351739117186028969221843715438409385557599035297754597388738609240371962898401153480507784788996950287515903805973269152773797169256693267480358232795197960284870402983479486538791117337134390005153847142853248240525572302390547787418909825711700268771877939989674801825929456594706894772354669956596192088373854660947248576866880654956132468351563504442368571823165566449724218458276178263361047840221957729126768812653677033262748621479422689988370792230811247657933951739652040634358981751277334729974259883885570039081537081715652187016951234938475907331122020463325322452322617896536530533475835847229179713891129638566673498640918180566964945434781555803273728945677383703157910657753000723175177490632070284456152646664640168318515466635608259785591777337005150144467365472509881512599581507933544500132762266024047388082120429881734817679521863151768294711106315127839406873369051792835216661162186774448252639185001212095251933418947440707953900870040846309232672406875747897791321718198200878322494638203688341663883241484272785970892942658992654006031121633872854518049227554904346263646929880048381385061263798374522844418736001821657880649467687002370752973407438879039654411688913859796323685061264727287142723194869316276301986477169811147498290320340342802650853184327854550989111462862051686599940244220581790880885092585461011633935602779351200095226062610529555290715775522358637358620051783531494294604618777984890709968621982214858733866576452939284093212608733525117820235950871538426452230435497899600121154691435219638998108220072382827625238184174455326015764998646665054688854957393837585739510971838523246640631928400719523821357725330898646788904822336557899487035225226859853223725038750639142227494413515104729558584002401152591567525536665610320688120603433037302247766960104954294229918828914060395919085495288386967597062901710664708467032589973388989395319611535472291625145184275670929339512006798531474724879229076953984541395787796366152516675797024127207039939621349267431151241599362302168276594827974121838941933947295483036128180741982880028572903073638501848732184278533480919215485608861838317963903767534434866425308660003579002259918495464125237930638247145410647987700427422111841094841299888660165997119188435383806831717632580373017107637378620598352695537737496604206404665741450736668925695768892125075106276304432763786110174502168779868023018879610823664304426692767491174333187934623596065168899572704979731126256078391437359971686054429351522851216362898256399715395983840627250383588905797852827177263779909003043478505479837406935254045815635680699281226436536949290222069995891366557827907718277310752180153916858951760730385930530867362638455980614452783949233880485297883163135292194729847245323242453920680277765983542921178486091711989872379750845878470803496984576131527751227144252818751541422093023452159285593190854364585855992159935143336647687331560776770867660232419211360401156608215887598925525188354948106519619302500342002123371717940439926742724818275021740669401143725135350831269022930594092124115274580910681125295297624666114938405308320549484082658224053482202503499811466710249980249794958434447682570897184948789648296927160423407058980334944434113668589582261407418352112028998986907727173948039809562943805537904426105494927253242375400335244216806244778889153594795476015508720684440201052686360312713162697984380712504505546054332510946006278494403165183600362503643189748611042071707570042009153620842976431053244130430087720985648559915839248174243776937102022096720957299068807837283613968248966567866885683978955367369208234212894236280798050549297074294376641276371734587775162667161342873625940040441627738909389387558569662585550126466199428932631368669402093530653904231765022208510525725219532565190995515132254847894786663159763358734966089482291624904547772347767564036920158276776817959086814239171641140123466127528042235624318914807359228413410205791119379900642272457512328554110723630153972920020275726573704085198204330037877073970084342661754634800383798841017233394127564121613979369011906781854187838416826642426018568656229975199693428221532941549347310791645508033340289481074836552290249299551017353272582387765462008055178652834281124320743696840395365973936129589708264158565758695634398180528140533769526571496258185583398155622701464327746238867589416741179892815734903009924463790485096041747459203995969601849123231221338341286633679994041829472946883004431321364602906405169404520267271606055991582723968895147234357127973811352933911012695349178633754904454763854258116944307932589297730003912184231734153772197582082867296311715340445050010930526408447434610045306736856580527167746108335250994604114927467519127753331648263673582755347160324811358620187582106127077122475347389242576149762860370631342563244738174989983376178219645587151495556076552239428132121606315982769356794350049548741192450141491023492582263318396941900139941666968359227438238173598619193193860294873770750482925996212792843480038675916619802704439751043621389673614933160420056354484482300226619286367815798111170956730431604856341774104139810996552791104042702239376264050142619595541807364614430824694501552303691854718128433823624246470515143075720119235439019546968547153866389552505264369049722596693031174127281955799377855271655854530705567441441545464851171462298607737341417569140180748843283603300755288420286970059540279380599194359159764365325961308807865362997222598996032714195518074352933007915251318286612988493415020228633860860808236951734682782400985283028970087341137374322939720285124717511375434056019669609138470580906998845352857660407784736831985112528987699535483325434443106063917112513541352922189183147403905285254895839675553626369498952109902653069244915073039185618099158084636950725141724294807559111367926725723747042632344832462822513939696875415277296640777223602334318560135543605017687572923409974334140165698722895844150853490704593239035160132617756989345740020859727043060355503876988149552438682248372169023090470818480567099312083667433054427834866264356920010540208616411753543585433153651577118922046195037040118163154157903918628198194441149740524926969431560178265589812633614091757111172295226117183653749308273964703128832413620062262612965897896021472536479438355151266814554038988457078342469533419382131332081479341616672820121100670757301260055599716068975172309876747856906816298657969122422521567686996267016473714371302950145754168158299454767850579082731868329513247325848877114893806747045705586579064919948807452274280238724621575738355064590097390306966391863903216057625716037424427329268085838784831980959614017043530940550346349503893205166069411036139727859085574403774736495042090396979427378982883705441466908728860708136205464617739223751998350236388064579622163508330762978793549251978963315040023654946023543412641199391933016022948455058546534364237421578154492708686183322256995361842638294527104322984558526503906105364407191843221973591714833726639098244809810015016109542702766765402110379688387845279869608423881152108338680312432385502189690149763466241918766065662520946238904527102569119056669530532246849213033736535970918099016372556387444520240219260299244448960904435512483962989320964575004846588704941957929236432915622703961651457796689462948533070042166889256134821700442850488588709917977689849379669292289509938119544416231563317246096030253401805282907474606292937319669513408253462827807792398844551623194267837931210300474238264491695182180989021018215723022455884114584041223858892743379799386134256201431267081931655696777487561625865706733388706688662246109445772609340453254706263478365094671167117842873014562452614432451938743980169695245624823287655712208527712192486308549481008453221067085681092400697656519649610733888165567795954380124769976624446554544456929928944105875651893615020030449800949269559703830979418177549456020607804323929447077413697278669187128168845829227100416444706958330286511768478418545272550051807512003149041459561232337692791444631054797279716914038118447903197248481903112080088784612724014809297982415909062492893474026315329455068656504546218590575864981383109808019265132372359162082175261250023695778638949509697580320656381067905624886452634368589576079862181030060581957123028391859873846689999161725038693686639339789659853200477847465147864884489897015223657867795934214910366559407020736698652589484867774484321946360380467636161546030245506070950104335901625977892864148456429064970121261359571957819777143503994978695104547680883450994303552696990946328089462498110123626163818624505709304796735572455627718330850090471479287437943738143968114054441252434509670132102529871304350059072672120336404387104260721259561042526009893005584868789673818993864566178128655913947856075753000591556020569727116841877885015433110151356684754716721358746232820492313729413169478991953364549967930893265879861743729279463610112820210622169258148210785306327273968200326288492019053154881797972376790345558960404380475383795562123753543040987409445067776226196263005345673745391335111267420184536553007830662653181736226243368056992297565782784179886164208069059070550023026837879018053352223696757982517602791470581119599329942019912065739546301199496316520864014893020508857431478721469696836647446242162069345992832034307136332890111566427309101231292360405049850257298011254314038942382827208273237317019698791649242366209091221564074738813747309650705366263450678349275876891653647446163491889690906097720241550798955437246688845084786746409101342481990562435027126016245890094531000415593480226492484642444609594808212760770146072838127941056948427980569323646198697305918067178961530718271424309699157455092178584307803065121514580037616353366441289936145746632377264100609772215568627571759796763668269463354714625888256305594062140133023815004857526311005659069216778235368440116057966565849274124360042663839589364975053390990578148483160822547191716567038740301315846037854057513834594843194176263042869176293757882778222626704739175647326288905043326403693714286229692938337876341952909324617682360658451792558424304128360478128199601240929169114240014766705429157525634970728602399735808861992873312947045967720876633648336338519970887451610925704629624306157809595046490882387320857107982585143383158970109699766065376248030035013306436215294999784969899121711132971683746135598048013002970550430533847277957787263822675816346563805748359595382525357022596612919664254736047482782059640766157991122192237982753144907003552611155149633759413368379383202589222341846096001915003391953144403326214260299409422833550784945529042383981710291303102149600746240197675912958839737764866213002343558870886391379497269173355972533963664032117232861405271681620794154749368143418000485873058987850381544574478464428000992205315953151666001604797844495696152561973050308600032803614493547138844064426582400776181537008007558681015030628334309380006296377755579588971719339451705828000568569200419946682850358522774907640077018364067469169902590720461780845072121128635718314445855068787002783609206183620037223567835156386333219200638032460586878898130558600020533469153152089307378961610720366410632233530589790721252891404501045773867544565216625757685665600318025769668493852824358138742891853181201269944977652936170831415708431913872624600441956148084424896192740014846806346146413431749141857079228062386972155745083186927361729845218216279436773317980314525085327533756023938167603971749723651431567051513243937269188986187878609138884195987893087649569098697775880315574785463069281807249545189085400337659778503788525493622182131744371494260736976308386287549255235982997974584414003337639828018487688390838295221639747026272899641238062997533421549586773867202436540752620631749248274581114887000372001050478720025849582290375144931454016411310785422885457477064248297913164061099347197765886301664192995782475159205230635352564247077129925806457624530781201761791310729715703245953267378683877574254554660620098250363970782463847531749855841840170159795860775613387384818941436936478838293128345406351137502822535702075739739264747434080125061557049737510224054057230132000253344818491644406093820148579974949144095458333570019886419855697430609251369843689812624190789598117332197318842517836790172713840822216358999336369475142006843805548242926054564128281949542359563412519339047344179294444029923578727863664011512326345923626450283544033201869703419386813325021104615573871256692491302629590468134904238415023636379024322200129118653333615828168406202902655604742204731811448333705573917403011790488478980578873020548180113477700935587740754926660645319752771786725564152900572717423508164846519619895464468313290006324344685389496487871836311675501343781259649984327776943357419972019656856978756734761131907328095131825672752344923599210500568809709919809389749357855294660892331364717002489807147157808372787669461823502280672573798160239892076254336733519097957028892740018598252369128749410491597322314718454023849587346751483242435670861531157581919189709691663606578474356445774298525762188509158535332111686860773549771030805347653093175216947472352524237880340093269778165873882334933476100459845676136720610901963334329801707879629912636009189008289568287797761493942870685119562440687501872530628584885947910401917440713420061713738626355271484594205240749267481680248363078252183190146363804479313517122854335326783616829922507120623074084961269161383020400692250434272957967020975094970622129283830468644809300547530667976669730933162656186905559224929136286602467651566587825683304869190696266296100379465710255959764532421121618903875923018514377008418433368050332459166526889344373565936780122825059306441857155654099096778734416847168392906126695814963888715263736268849785718644944279454122860345893518495300136213036199081673947246044254995034405513451803660819622153023073103452638775124910928952233583260735864261192490530346375487216552436904469089644262312151849941971246448130704768019041723560757854989932522730661313045648614627040302398101475528736874715478511438983209886482030160001407138621759882709992595076222584462069733606433835885940965713879894211962124888524621020190211191323004823890525115294785809165345730727400399726090780434452274886449721745888853074246467714562641797828485494996943060834168905616478872344115842669434089574082317690782064747006252345413742852420621814060465234893375609842587330267571337082178045421728884135661042252858655694609591357119112879660039316061898039134713054720927122886083798001152395032095809995895059892151893453996191568924195760974431627048455264144493453674938825818332111616759091055062495741159154714293457095522084723987578247830477156017823345072937646217572768174014407422101836719255164903889485891267358704058114340080827892155088771902842999729034045320570233369299865463447750712978086755411135611530302954104177768608025487333997077363640464625037878987836302685614565928736881041159020292455407319101002195264187902146081182661692213300976236837650193050923726348494923787193717634196374802178073685020197550326351141333845974046244313882830773283813011344619216956057276773500426297680508621110977636059184374192559163225718522015703104210930892297412070651800050624349159721621365216914435731654186974971601991942153377471911081755239550288550983398199768733064678773307753280431604854619606852099405329532844922782601994155800744793307111767318353742263601743157186812719475320493643930254364508401482862622352287226351457414489260075831323871015790392978043617656366391794874632914736030441064100893117472266092412293189264776782752114584922479865731122182076937838215190736587563513436660925854961656448609916346702976432406294147262252290851640472470753593819707238465330423019834537274897551710358619823137361169096973109664976639038776305128584066760489250275373948823268477246816998668089742377369803993509701580929339821730659139654916368692430619554152942236643894543696432272238433889054838158533504347363778220997675612109725562160828409035692779309411994479953792631243366231343598244044821967734667952101469973413251955685222966265616778625105667113118996808869585109388856915449810622581048721389497921440169495754063972839414863853315513485121746078738787509781050172595515013112383122928106083170770913890397690640369082270608548634580115560053918641663426299742892284941428964582390326194911921754225377469457122564329818331781816015690227941631582498893408427359968873719401029645906711368373084655681286710104216650874426957340967391180759940458985946830396925086005105718146460804395343905036068552104653399097751843773159053267541824203435306731048935880457815545443053860201847454070083796268226753320491177950651249417786862118057494497907713542510423582093471455759404832158356911739263141060042018873886213544788780059088101894539751760609427558476091836395534521313809592544640020989892408724684375485187494003871738827613321264528232870435846256549654337758468157763656134682123644233426524697714275673265480988124537077739412586966042165537859903765008226356786053520258308445153110081830648968121456053475064791922046086156571130097975145414548187922702942445564995373871040149991167036968774450385157020359218922275426825898350793598108151572271689831963046328811496958703887544724442277619596992924768469901267400423706285126959926156895041805323640656813123086443985313220601316141354965602845815073632001176357468966313924260241917052430013013679566433082782783054593525528793386629747099978966747958656940503037779533859076226396327890195908916985907955369636437484736293819630066667042707701984740296969076518408046727867266823075065179603701117512247273343435967392325600048881994719047923234990188998394944529867443694139020330305645520438169019940356205065929039858796109710614463391355838688159858131903571828186373225227994978832281352812956407355598262292019270119790576878157712480499174815527547083863754477105844638090537004349766667243221996681713898073724198782034753449541432488848388925144874170894195857618641921000870335769727644327865845971124725434337689120828993097121902553223794527425032022341533597343906987063880018632063861014972039066707166261243945796597473333397566989529528763180570758401603559399418566061408577225614775688416182260773002026851824359664893099715893333604793672755532006235776178115434020731288828944051969236816017751114952910721831746149676669205635189150870377489925881698750858331235218579390776543650968674521389625073848051492861759623559126622810315798884276350250024040689764131961399926339326637170885146414368912251313910987971919530298569580465818400801543010915243541312195764406708881191015280958496116848679123921351083568069607494419776138964032866279812118301039558218559996402792579415853397807846282972906027815751852960613791231795295863117861753307041679821300040949330717201270422733625024495065720964071178038536440013551900363082447610393022335136091116469072231471156618949108899022818959816324556029560671856038696668033433035834957228347673565221787907532645203820083583840275407605606650865471804071854527132513326842255380896786152229671925770878231108493835859429768672102539035854883818203870394657082516118657335774423920631355112708553174418384192917433310024735488184578918193759684838154968971784811666164162560142291604844048366547984488534233729595341552552267166153271531236039734315465022576605855397154743631572938487794465590814891314800804002488323826059575783758979234851699536072464480260459571323185277798184041904700728925941190522546540130582926233326210240871448522864143534995973868034683956076105620201792992561932860160009331998332706774718716976349901250900130177337790083091671065033628436210944479322777732135381591475690575499122868620985559164863794308628816501734021653063595273928327636287504914308865138909018955959821621641134410263422527116343334779499068050240310406027699120848050873638072060574300736191237744738496125855966105817684565965360724659424620363588499205406147290124059493261122646530468532222814948936984678873097299846631123017492135880247168308550045782118715733804665235326952110710299654914809390445655477288009181939438125429864966786042221905631337705843182680163279533850499114427940838497501045318447266600200993634792801061992751078788608029017172036019577011562202153716069000828960450203683705130344920222006489218431447920950065077523622702797477853726741597745498422962045648535329625518546968270975291692595734710531104822246897861245021378061119422973436060505672628259625004231295437354128915649355389152283380259685075709731889514895164353628382961762684053941368850107490277900091099695528522092808568030843726860157641688469812324138834419569669589995105108908892055408262309161727012762975186559695947645309936600775655391558039333144314858135310649265989285172919468423809996998770664650378536650263300924596121427464908627178013354436092846583107466378224339517882365255606753832893176729928355244396528390043701200208571390411817112676319264038639576362986166296568456365601293564283718338383987849304438273448568522573389341687795330099124815888784140334217751444651948947984887775061296276044061695460423246238945350082238683384739612165582128723450588460994053520392327872412951125128523723228320446141660897871080044962113994707801800059810174298650100996889071268551918723013796989928815826239657191495133510511100882224305984016535921673759814930927557610300190585198524302364971396415491216029933068076101847003778797305565776554088211425114698508167089285404677080263726836329135940903827710070678626832822123196735711839669050226056668270127210284924213192964735943654426988031061584401230236945137211516526417906128093074918486297162294827894632479722417447712712543544113487625962057673013644798673915426147019089319679790497898575468814805970856772446339414457984618501080918594639426202305855934177519398831579453105846568530800412140193733615074426721332175606474240998746470883678872938520234328290149276465613229724959170832966338706467359795037314149598896682733796035752428777737401068001338674233429855945707144061786803847862918970706685011325023455921490758328900603252579696623064959941683381277614013967067971444387706446132879970950467928220970284770192083565884261139294506413553692697380720246992653999683555245951449381999968335446222227754173466294652371617976668331166244250283473417571014546184722752794490991968841491393582768149813102019897894671206051849679142367469952983338072116475797880178971397480548085676635913947188060919898467048672594148600261549803853954236779129774152073822836119955438119231668286766910567566307977528888378528491691017041148965650711765484276544834562725197050973942807852953720319237254325990936584460389011087994438264796090208695356579346110176819116290979763009556957557957941543241271703299717601087832015459666560516953206812400734219471317532641480203975777396686636331644726059735985999462546934952947068234128273709724605225898051426931839852627170606974634284519360337018078935892104500715575447733543520324893951538007373571358037460020170649427058561698201679975096336093794172361711931146903846673714640320590671918449581155581311310221039665109859658788854298675389863646093424526812949630760149936909656711273426190901253710988824734078497193181215756527699235329040731021248761244323066971575279799803329826775859913140375631242040023588784649057174016458779465396530732140826419856760808021374237656249399674087630213476306414690580127838513906228096939416946359732572194072318687432111710203138454299044353097564900801296050348855519076855133696376598586934502881001719480556325379484553677069676975320735660816447942616201534239782516219817635704359601833529178303978424313360447614915073483577438460946506148715268937492543333653491873548514110562367198546793211579835402328802876868569333349687075650100258321521549359721766357921181078652492723214127480029148242395568903013680336480806839211369011738802812157435786821872749586041552955927779527304652294011372611343895214010430028792553355825177003490347428061340987709319472269371370594636761808878299034947897795621467862311127478746013895100947891349022011693166729839800351568403163834930991187051588258209189377532251311850486822284583732449452065718762923909803674518215643956310739754643208519071521504882105558883572496969435290118917023271047663114199957050126843489995878289650433013490548947740481312931722219112443451181683073219573317185722858609480581433022727414864567193250042756708697353156531986641338996910376774407582121402805252503877773671639808384461462416583771296105684740992780718056086212853405058476816499032645734303193738043017700372207388260966833960101362574024040147415220516200131209325887477526528934618881121188960325952075371313678435637712807817308670989027609083966797723633121288387048642700337081124713695511569589087049337486383711893094180287354472177942887052987200066260735462357100501924421385663376175729122219713507807243077270330491631085337192918631206966031538118438462958552939954952111774096102333659910729252937841918122707722075191796263296697044124688273992149206620590932777046224090442237041907284941593379088157285234285974021209381561510477062856571820886401217931060463586308404858184996496530211216131923735079604582485349672618854168396915122929597560583914148848460921755842091933998941921580496119235495676435058719771835915047772428327914045049524858607589860193445023111690681034154560729862532433453975221614647594614114363015310224410001023231111729542117808891695323700281914011436832262706181138955788227015823824593363833377192178416708024777301776516759118474544334878301250899630427525273382889028156787530591847516690919111712464157003921250584025024668018685068290378311963611223693509180438783110567718951612317650076601655203935176202166173288010864564684532003009224293529033961041741508934280662496238299085914674768969564986185211988985240405724654287328079896814546707759411589033871715884258702878834229963940601040873761981993668768870535652217301573899352538598190865927140004492332960536044808505948145837520453930621970950733645288802991523189340039134613454721390475627982734263366412072194555130018982536623108356487358634206725275401901261543185181659475349459494475942680215317466867412637469823562595760071389473479499904714116011367487320495960235288662769376393510664342422774822527631634440677983937267569806443503096618486309993597813777513159354889043259594029175465270968376613127342635451700855129821460740528296208424513592755351688561486855693302984183799429159159574899485195525066612203449783425718878773519310497136866263122468051232561122410363672388014630234263016074168784742353550070094339738403280013006982647113689977718736794592586230025260835290517027655762265579866938452700493654935286062771957129395768449125374626511910314880875791001636193046450747023202117452825630695097094399551638963567085442185027365478084186594466108377144825606630021603914079611998757958739432679942045892733675404545458688042354760877717533055258872088500796547356857833336269506895140265271350033902775595940395284299671840416559493307212787022392829220566448881983021699833320326003996793215546595461117547013749717552484623740752600806858844706822565311095649786158627646462926056250799517134545774849531535132520232744986622741105614974390767605362912799230608338375143536374128995391915572975790214688541364470379083630286599518097090070060463698167544823709189330888483089769958616163589422390992059755220490789731088645819018981251338114410545301500451034978968095201725638328769117309905161648944190078104532031996367881492702163221142630460105787047805587553827055241190293102985829134655889388333176760135682359333439236252006673842137329084946302582778041033360716116233568819024932841134050652262975881039103875160588862281234054010917087177233678378168382698506583479794698953983585177202408845089814274072964630476034509611364723386891802686630329796412759770866462133496980898541206297517576348676209277495940666326507328918775002776355607296596940010508895581094503473060963272642355813433885597066601439381164077133929001260558356202739507671727489375249519267195170794816454719258319436030202883813660724219161755853190138733162610455538072042459390908569656455975728326633988576517436286694672763590436464293949547866593093242370032425169593853924775816016895865253445803772213923029889199927168645747790962645932586228429444580973356476282537815259659598269505873564100601986445863582597863911083872841003199679414218165421645880711447955634273406546728726710533976111088295319994836485382620169491638341315445286420987992462386272467955832951744524948304654839257997523721460090022379698539726138776276637062116453658146596126477839654996820259338884403860980938334629501496699371013443506116198363675838213243984657881180814019018005878001935205394374307622912617950168364603072311601863720693920048700515604809506207592436565260062024704592408315544991221426457642139730008975549026320350553547011516401740035883245585400685842154078544900808973648534343652631475946689256340431676271950625354682388588702324954347347901180822383400743471315611164801652472688939244273424732304333528344728769603748691531582418506288893306884015472980402971864418826753640109804838304526215462299297695299968243257154007892065272647384780876987970904668429308203585982986575194285771441614038570327283945955035771409144956655435060503910695411735318590739973928397777781171107320131891072509458661120732008367307379647653036713190881304563753216994462904446733020373747345859595947664660372053983679173069684267928709024997286357105742656842192157963399480717397319111125953326425536666454411269101165423576228081408612005032081864258970084552516840577580206238353846284450988142487936315842291398854836434145775836657533920798946086960039420092810183494301123371337203567571956951409866130528791251902995861197376807681363134735690394977644170409544094814554717487650703653321947579626936340674305513190006283642624613867061116028520334517051509538139654226699224669478298014002167245270638694220240004479647725056942421452729637668491308396688006669414985614503827158978637358902389002214156547139187395624936415171402427590472228551793969506269662560206716790935738887890369334470862257447868289183385942344215463498526651012264384218182031193822453484198270768643210028148648988992277404123543504232837685548544305914510907166889901750874466225961184442599895001414496247821833817602648220251145802657633776080856318324642899118011482276958782909790878981965592526886768290067927410533261494487819639441789969931041111540140035922116266276630762151602842947277380799651676722357544306013672765095829611516593096823527419269353574577888959079692877522750812624596335450370308898459378957016568612091274964563466331550870691422679140767901927546048080929341932541148513208384138710385292814855349660799821808773313894588600436579073726461833993875416325344860261474755168505322204982770291594494799950827947922031560101072863709000241403660793799518111465012720671028633617790427545909129552712957308981705208776808134729023830044994859726901823407002848282484496546171109699520451446211955641539537073572279109661630698466487574744000832355393647930358999963751279294205278517709491220370911251839545774900520009578441797448633251201947179010247609593884802518613263825702379067317817532884787321583748054582340045970800531160556077854319453538553649171312390503500602399481644987089227951528459849033140998856106502470065476047795812156161221094531984209117887930675790474333621673625391142296425057051646882771704177359832382207609438475754735747803706790721601027886777959606527405069328784114819691027676350863380508340520099952413866306577968797757036757972746567543014736497085400319273104596717232883186158642802432585728074804822982123225379960000987709829539449720039808935872576264257684050647506643503177133233332003654089520126428522990901260832390928041553070687632302071952696578082222165551123414919779895134094896133794235361446332177257519801030128512622954400114234059521913068355913070072416873786112113010673828276460818994265243786007677129395388445699395673537928517995348222122821246586230415506950160317654934224096964143903002942008164249237927551306609790863106670599893215744999821103986237308363199793592649884232375032546593356951028042363823640238434614982497686780459393310428824319817123171785931083256153447525997211769132031349153772477897065123255218542676140865101445560627345043709045450341671723153004032210157724191031995918259512894781950027088029909448713033848557218915866108820553506406582650236323752834899576161046911622372156680097046184725631612087299365184321901497440749612585812244813244901401810045797639859540338202949909765272091191824346992120812680998433580153049076752132148148725955673152506155726530301086710000071390981436928722103662977825376350734544043121892545007903810112170387970532145705515750041986021681073115422167496331162994701657797312638208784601634084972741749060799431076487564423782850658325154828466033072522666204159059181079081457318599154654914887637685778388576353755940107795928804643309757769240278680151720885700940556952237319507660565668865403717668602116983710613545124151999761250198081659656637491333250437629666632107177306578355968554097208891143028306127375123531614148106233453365050313490717540191520335545291606817699149479835203620640034409991991987395510336991907936423830633716132884055013684400422596211160348707618711181408199541084524188329285608845369244875669185438848937718544226087367175815775754774318812288081121036149815664513999435182837106899378091349621340620413556525341266468243463053660632818344402732684390808318213135913169113644890163219244544591198319129776612581915620692753784936417485052299466242925192564842557367541137005249176602066324186774112265974594258706998178628393450335885686837449963873519417725456727057419608516051284294125672137828284054190261035880312178959908366045348502673829311138558283364526322467693780082107132047359726709748449419818455864199328553139426801020549487457539312422634096405950352153772886279623614636512335933150858440994390335202109094510099507637156262403038250019294130677256513933535771619973628911560858640368338581464914296123699417326655435642799992224857695751679095565858620835812060618586654691105586330739023522389182374032657807592650253440611434588773523343663733795607402223422055178260776844107399271022910454848359124938425305420755106634791503402553602210528732672128309043744396162107636102873823913202862465553845307171551798165050722650262275272060271960343360108492866410363708073399717209895375571377314998296134588975970014884152558141242810285927374084606960819956987920828121499627816452509127061422210228157518842473897433624996883084943237549364116197644155688334941149117827224361773621519517794471670022941657936674928028932861294675162763666730271196229804574076372644623034390705308961004684350756356569127059277686701910406933293359444120456538063846409987177559481113112057814510921203406234933968814677506224809425349353332073328480732753652668304894908908528378228679442768036649390267607923675501594708243252542154118284762704278563386704456896258957670164076131147467335818852847888803509001431802614932411572267165169315460123258917434127166051512430956938500611578798008073268780796827806274278732216209434554592840550294485879553240317666549170955015338299671701767798472236158280989522225061152987823893666946061336206585353558771970039673710698573337613951982285755971190191154930644594627166278128435311764502888287525322780882309458590953372232559600729564902478934504137841479890618861328296998356999656113235488313852320175183599046439784301132392782268466979456503262761886894175041126306730656404878271507182042799810622766122093381810253267130006281095153614614176778423966711652104779175351876603923478172506933473604766564699776141613198119696426332168187199403258423169617987993683315073844711405411162326713194500406481368593508699564321266047976999465553579947312346676433778614892619003561529357924286242300791001894993158894293685095789580351122709809290493304521419936474159079892637288160706758835450194706066907095521784480015515055170696748102703277572551794286334820686749801577684324254094694524260314653983739154400117610671028765817735994074313362705414644778876491611134485467537750972753778277475682379261900426086837525455366259453150329568493970851859665778311581118376920200414755409430808934347794561434191410203953032374890456593602577373993556466592178797701876706451287671764385082295423097935342984932914498222906669266448755905952580010993826689809052572398203100000396923693490139258627973024971111625635250559880719438512762419486857683664354491986720659300218633806225967554309365117637032432669479136152067279789902875657369469472786359738334586855836108647854805489267810450612545356816973294182184591865909593013417831071429976511429335176085117723672201044062325562507965897109489691406669985240945930141518318654911880570835467544963770735694883797342052403621999555935358606093431091561590881978971769101000267839909041887165348780590094189109733979340808749652696648732083036844728728703350034086661334242453945306990575836822856268756529859981676134940849801939749673171595693930722846962387710075799758537077539009166838096813199182919352521264784180311000110047764911782883430945930321002712002384506069809079620874031033336206598690145637401334050990182107954397966843436855203869962288011999127353509744792207014735762578387757814504800498642319513420175216983036752562224292938013798732797732819836430588048678868154714911250187159400953092758414516858960033058333354021903782915514633459550239224112923340284540056352446777819250106545954434044376480346801498174228836103822851033722803531848244992612182661837670614956251232122857588265886759610355415643388791682483776751230967318978274634497493527856134618194003125835503988279757902426756004898285360757603722900080873089505811406779833074597713004138233625026020740075230238382412200255939980893728570827670486153696717088987477095100835499269930237360463214393342145067228733071021885443828999674791480257262844319765115668760154670823270077225431026824836658802153096459111447256029069711364991814299907347515432518455767984362552565229926773007913161947184158641624002591652166308857690264015135530743153974364493274334497444968466978976521978082670634243283823247877088192411911852986300675555006314374798213671974096812389583848889855364256818324052651050272060096638917181038740818114408001789143604716325741910800207460828239071068143635760108440255755070920288869128489067110216663839713099034707034298378728426550470379084319957670387893122036929610738233320588921472724853545050180274434405877868976084407298876574268122661891953569488761941428414870082057107765825090157753522811391958174638402502188209403747263176741661585683434116276695861219102870632515218935254597246680269962416767610522886921133364507885307860291937434064368172856166971894200539735333272762302584410013014368195574377881863346668127355289937716244695455821302388891715056243358667913097429169434184288347091582028949970817301856885546321702470672063129845728793830432758736163659536951167742170731688940082958650449112314960033943962005510174998864380888372586953680999370547386093684327953816304268028369620513432508627195405029583328868730354623399318028373786133271273741823063639355385045463362699601642853975258085090377690542314139448676651369489461787676253335030623323879185746905487880772254204826893283469530734816069978209359009700939358422369660554108966176310368216984559858819309352548304093164843704378773091228775800626659564906152605628260119902494304400084332482069361687786128188390983009831657418129182079914394017559818256984104155610355905267905999828570063813429416432445151890296574449537588843653603808766128045270372127766693646718775995426942913957210088676427997948631027794185209339332732617708066495622290662535664499892058624924039968565270969976767920507445727930832430490999678230465547472689309158013818220942606758622598160092876790187937851835239055179170549857403128866283529027730240138014318328567994852763909908543900415737889093326459402085090805475497453197068206252499332670181723927722342483427899669385964578514144838349139341469420427285195560321835849337064881667985379319902288233371964287753881877837341392156407746374288475321453586068437486944258974925156723577421215410825858157855593703532362449684467538929191183829839453909631868653595144411391809903881087973995888372951910618151857286722099698288015526276062009261535092321181739803748096027429083107296277263033602030370036507687298219992326614034450442765915882062316873318607892043267137378614050535716811934276828567625329884987795897912312768117193775188517690738421500593620254946765868383986013766176322284903763851048574618820071859076143926394003686500697487542937546934505782403436553979189849510947055068171934230554681325244100209538474169547058829389958907609248094892556424505417064909133513544555188939478837235104125299940034429454724325018738515079828237325121779268902232622215947929032529568854858408434046543000869927415852902841832056640436410490702048266463887440315982297634853390321930849762082143767282797760793580740204272370736880059523220201708115310192805678034426317019420870669159826259851340048064016636556140851805340787894582093603725497117012660562252185610198794764726228344045912093963236961047375756678344458813461201009941356345999845557797812275378608855108971333051667857894870116832549583575190915737104881311863580074404290348625677616673743895864954523816311108672927668675709669345965302034891339972077056108964340194895632133003403733225337033086551709814247000273711410633194759245317623615797236659347379323699149661278294303440856578042899473059608630260216638287634940118949554859066336906676610352526650285862485623167512379467519930803927518776691192013323690283848246930023707522173603966856859641860335414761769210724982213880821071008290393866707117400998474258413775842444581079026856464815846063988551074044442713741939604343001236289770723239900124033259663243605927298173769518005963301697715003533297694830405002158422595232341614347688391788835275975433325145349672449274215336836441547818381036889229124661078381511663490617031050027482448092907513904306702603039064112624707465449935469819506073962867195890597629579419276707962236194123486833016607617610886513805957671673275915487786827066240750487001854938205004507638251441195578201726163966895251179811968961225184813016106192799458843459134889140418789982893836092592265209997031676135428361224269128676294699447462588049947049589615366930548622776861819102864417030665710961366460788353280074311791054574517602155373610834655589979405106175535076671794935827273089089489394146392374491681756780658153338570622368375094386892921972109059584458581826297214696325633632360301377959562184391878622759121701499612661639374009295578585079355777149294497381564775674330185640011556458593091814568346405914331435912532481270930836338000711817898025033337427368112495682355307753478897193475417335804555004291044264179344862601908457050938454886467792136365436395622579903706644518277291767158328517556192482021282664864132108488948026692703278324618572060353896727037327003164290095094616809662117093650846090056983646368982273051756809124530801489200979249441414706099981317667734975811103673607464528380717120826940801586366040787178042463946203736524378922378472767604628478477373861828526402639941086146544657287944333412476559223254590947091901807289513979290788194525802753321757568582172827568490021797607030301869277054815475378158470085063693191550023840980467080880911016466845227873639827464064470582783667846428479677125308248781324178578126097168530046092591570568218459453443233400364485082021480889573287077123858091437211964345131025555479370480698065986093749646934935364384198150884696774585509002111701249664596266234053931042370991124253948541361142469952837388070476707875601279432488781526166439060311695019628918884802145542993982510816633809485583162693859912076182996223557485527340868816860793996795527629153468660731171732771041141624697675198416693274836754397984964476966867630131063845125683140874827807580050391620769947045406035472076748694510426192800763537508216260564931939567185485146297447566550739361559044054686902964540621081823608928456768209179415779907274171086428712142856283690297824965651805072385968012183868429184270345835534324416579047707749127218545750209399621007409596532564183504744088410446672530156672494126564572336893143525509275983668028557016882231764485275885309335427295963842169741500521876418746773506887674020979758224861906311354155574547060336242912814589661677362864585902472857438567774843883784994842825965185403398193137301016076207746420600398073394358836621888937820449512705620624956308642129722010065124430141919441291592008567865295950828951317455665038884543416199919080543641205141260558300086089103952627883168978836004040369679836281212616205662504408911251952659622182230771851143519250353718825962466843855783204500978392884290281864639009426781097797422037188840206686714355374891696406999093478414143441033515068904136057242364546986694848802222183472277671415189912619770877513578703559759639198813162893294535918329559144243341793258477506987928629066044227817069686623408037261219736476567823716418898396300847611713663152382657552350403784925879179978345802017058675778733004851426685868178662040624795895502625465107356870398514004923332790171056763532479095431855013444408290459384903298905601077157414724086710962208155397661219286097322760303621199459372465233417708046909037122657815199222750144110046536412021621734888913228684247437032172828489101564784213042106888376296122331841895976579443678614393310891258927725797231114014953576528596305388422304868198407853224609901424815058735903354462517605963605397314849595098031585410113115470054499993211600663211060256060940883033493385756874388114988024979128248617156292712156991801209471380475791354532847993622076086262471904459376327464119345379837828341533734325398750839370200232883248919432137532563693635727124185249404659219983544301544785823862884276682368600459968090120789156952410177085421105560087433087280506309736568216505854518888537610042307845638160147256034336152780907323333521110435800245273955585415694669882419126767058549260238927722078202649765696035523260946578169923330417505450278555239004573501266223853942831024974938201268914261632275393698274505643547148977610937528453330868283032413513945900531517756330146202158128248881720440019815273576756779511277619232634376669742432774670709380871232401082693048306751675367631569238320535606003098149674781867713548739907612953603797945573038044759199971089066320623116989996053915902562042900281069931763026240289179169974172961017989294932391305363641625680030833562627624966391100137236502679207659208365688393474721045087094362278212354060366865086795851081516530589187888861554674711345148694599088859657484013550681957081864182436235253140255972256521312186193813749383156784723691524719008742290718407352159451100351414752635455620534982004702732947569089331212937230039819321146886855965962093216008169504932309612696129118493256262522197976468416335750166281299934564380092522571782097902549730128285106282970264359017510286136114127317976611298932494583116241875956068020163344215009925739019001812599043729578661316726144082718583427264784089943086816066742227469478465033570199062795854772219508072507382776110476420784735146507247554993526389939319328040025411130624853017185621994085242752842564225189473908703088935203399421825275628377438961182703461018523343916211061179823171191291576248353343716798208207044372234649135088569553667388047471238804476124795833834036249670253589702330452013361134878788730790909215551612476315163687587683558091384172901271555445770119819770951568634115432922158457662465472760229553015809477749794492793057291785796310727058792011018162374972742266966625068274289004630912496007797861572724391294728643339377554355208513470188716113805762132604289465088396962218534181927967199022929287600543722338329382807958308377517846907800281145795203049877009283354119990982016065807173300435125482045427865385274556018439948129692594780076036608445369499709556444971957564176360418180204731504443193364434907574017569639144405197037884229161238603734940464202447964150164695164710099185335495275557045133550523809603573703373835165924344617298381406264704198144093327223265942080474864350147585962532032899948246941010867076527889944484530107181551642381838596326260207577990162446549667860917463358204019316875404835409124152701558795526787031780264228054797050066561061418119928091193265631016704483224517834616972239199881792492460551395358087950904175906630768538044070816093830585219599602040826436231915877683947192764946223022486672248429692063042231783887585532373465896380007171930168550866357690830108112698252805202577012955041522813554974265985263990824590421080925635699079405576123584239682111123329742279077999165429978450409741255993785018998342092701848212345091793922602630440669630799231955508163682439259852482503631515218685102958858835551502080456266057944973212670495558198960496027120170505133782718156338220106011618848458074401831256195506059493707878846756004875589159946930891657360078394055465267159774122234406754480583400687698013716942885042879752382727110429441770707223214476552190308613056888127973085492400309334453294262316196390326499050697068700150487914071861643477004861191790927899828130947720991249893046476559206218074345207355824245826273720307924137985884829589108336283504395933809830277777807182388814167401354149618325415143382017874407790945948846460045051090212879810858912489293318578638361427283219666143589473238483939894964839009230113072941358993998108837396092710950763575143409832173158969909646680132064957313870165973692295955905332925104305436023080982207530832312135883877874989705114573252454479424971841141707183044648777887817131736649966035983835619636924369992137453385367127237189144173977349492507463508301695122368337108356134836617739374952958180847231915110913444941061470213350797637363845013166682902430257100035272696168378646846799687040359078774995926120977195809781949512526082970605897961255128566593575279758795807855728437152057476746481119651639281146785118963762201138697594522445294897552258006418639567289673528770685079711695471574713956370531415193906258116617320781187195826766039602137374155968579567403869857282638089875492582392667094174152730176079020027365703640160930905118141385325841724376998398907746106292403131069695089489313725123013378349574581144110360076820911139427674015859725693640383385865708340006066880236826599915241241755555724838895998576595811707068136568399556555641937196738809104319585988184785566869726196862456242292669967397520709073090037544379486437888443604054112493155620803816817184140906004503368659968818967284942430371699982510691164806292796094986683759502219453267297183435091267395968158906017686411126194224855289453227055307134748484466531899952258586470201759972107913133641324570969930033187634089736195143121272592825968389208788338902347124294310839558912794073268288530899524048602121145603133115020731251841542657263127149805276372902296116852763373249775611985683448580715805897199471984610663882941764455359824935100926927305228663102121462862447563433998333541951940814117606883843047883153201790512765090532687657763908101467075351993338384290693959592058560079655183297298469744189933702389035118715943631291892752678767437539916295640592884243381038807489251441662632849635166009907499703975258690253537883365890636550132628932099363215651662001587399770678828339173960907328474032194747232451128873995203165987164636019397092017841134180505369881974022436776071969591563536459543536923722514825308901941098428064056203434632578323701816257137477535558442427566420580604390998749926914443325407770011152764132362558719653180051660901011543271363853152150658243281953218201154067570327257189471290659768486800160953096052525392697317142134637338444106018243435358977088247308881287234298940313406526579792952814857874383587010400380702277081693148325946158848681478837991116690132548683368394101359888992400769496418622216002078272412027434388415663951871254588071445116157532956984230986664971181046574899505168305310108365717499092698752761298639796965512979205331516824394399797042905645263560509100861816011371649845077866570589609356290690198908833792716703090887550806167039082740074433004586953642221565620142322389211611336707510323839952925196154595565588006211114039563777566630417401225250055191393375884950113005165864500134355906211742343473897088694123478061526708407472068024726498783592943000101754482074990188678145156408582983287348670419421198566871469598127436156519650693633948939414863876793464526896684387770699679695384694280405331560869131819809489402046710271641501585437090642552533770195393882352798952000625789537966027499043823424576236851218182065994914549001957151920669022391659607232468847253420812587510039102721548575454555092075363462024477684249233116793383727669458655137029671093889936704488096222865939017323525059992068210343129876899434464732408869692884405020804039161372360764183747299724831274438769015197830028812263246949182771273742167163685360228684676282066464389049067873977693428299235691475593605419844256301216590558283903422130092782475981332945575221514711813338602045718947748416184029938277533384589962466678098351037045771031726413598458005569783329908123912791765799767798787324089363248786383323752309041674132022252917009818281437539497273517556703865735216429707433426321383487815718948935613562485544912858495791359141292016557198640493660046768603637453132111903907462009125586545151984183911205818816428463426675227929125977391426092104174673803805811163336513832638904218092917868394410526086541824138290884637038695888429056013530816663580129011850303681363172134165373689555909880015939505476332314134581788522538072833493581407382132330637873239657616167464565314620614350317021058252854573752729422142943955033787879646704965151234300498218045708272121998101556143677934350748109839492886756577312755088427828883900570679666145953309039367999948619910580904250152878391418388716791963939903902757544770630827229847916933437624070322018762504200187128575334307080713600494196913294843852582800774669583038734144703072670653744053814034663443482370454614773481888075554621341111031933386394761084422003960504195233580058900595699823124288669952353120965307565532242885223402156028963887874383410588192334519351897827041640752739192267864939750955075730330658682561094450228482358210346079758325471258342336957306684062020625381805126939911331911714550505280931059392138304116735255043812127645422135628071895603531071579277107597312374201277029844688240839765525690023540575036655183838659119445357624954316490829845647586695864725485752298477921124914345420107154170468060493543216644900972225024449987601574041219082042042322493402128621719018159776685745998562132116998046761775369759167789720402532308295445069819945873533021856035100124162726942931119846779506046469310808268827318606914452062870583327421839334141981806227855533923649524757528430657531470092671191812345245107216968475243824226249163728707528252773780925482000906341909127674848336579278889335255166636121810113957956925233307810208198764762181423872915198816461137710260363526771059250452130474358616742820742840560821031182596471080553843937603298352712631362046965247290750554547854986362129829650231545524720389744099181181779441715548332590403245086186367984335556445280512335088376671232527683941164069034050083597502249114574365666816652020845805285404452328213252284735702260549836526538622524208950183475723982636684975567176767219085924527570234050862434815271531546041017195226314324067288969213255636202086568935023089825857532825614906531785856870152427537961935014632018213354250261523559880525870761925374237183609241272513884814192279368781558542532716260834812315588473333742366828560031198433136432818819032400277861319296557155915414532961591902631987941278917838565365683705332339087487943171485372169021743858706720373616868777061123017618190544301963021413932014651141204953031828026369654655930280656398649854423834992118470783726912715271465771251273538485339812467986300073296939386412164320383215186537209674146995393450375455840864513143940649122062661884216206810248454745072593656005291918205883387230293820044625526929977339689697691790886369135293323797447898022114504836494124903205388255865793428464810731120147356727615965574581612424199907681980792853815099196507182554645263582712598718540033261771433073470470264486082481522984399544889969536702702028278754409163270234095817084200619994683596550522791571134534482432697966088624479865085161003815496795534891572887827734136018866837478361872489260435344996260349550130588892368865384631156488981759951945205006241693638426350089078342301125173633651444465423165500349052716431501896789346784201895162176082857684249292179728539196031487299305064665725482382771879009888713816704262950219867114616569616704661063518351487283539474487309578202615427999508617128061201054728968334729792645573992974914548545144331141154290657545826887432701696942573604123921727552779753482350975414963878979825930385110174549913767745242411676213011534821417108657001888336196635591211363583289493448205186910990123362976879947511785984378283343311656276789837778558453464524345574364332087389964259666854795119501379470322113914363313949513258456201790780058070498981559368023312369728013174034137816600200786561166403243777619841122339413798072361583571815588399023523697508853659232835297765970268174127916015654181969078111863781440084484550308484912206570196194255117061641927798221646627326000487205399083338868250500477791664101189268227077172642790506228340361715256358262200533536117661077899220080278619359221672042621971885848896695859663935030973315746410524512095356664333457081090401959717909633769424727122162114670712338510685779753624837503586026136478151419740038441203989013979899987045665802081426852744519769463350710729021110966841966266753476223844332897657288437828931636123857845694086059303470369530186897946955091833125145306292331387898596117857409307184809844860512331276421067901824392202595647135356312848347540485936714871251476599931408453487406028507867212963103101781211579361272920981292624999545383673256019540423529065025082821285042134029590151769923126856163372185486338520360756113418860561611080281240434459093110495427230638075229196505451553301379622800751330006975534171556192950326025351960350503571000061378492642977811129988146887083093057953323757214367925010284998031335497561156687927106831455610159418594525541653091066279600895134896705746052040147622212645273510812275561092667805317824575285920624988103664721163292513236184244068241534664005716070338476175322936251583554782377000021860465475103066039371965592608928912364596472249196328833634736825783860394918538522579138991536155804673898443871475430161750402675973904739412938344902642475289842595086297970239590157386626079059945453768069001321753149303815129077742296432136420789448508945981135105840310148059893967578747087280901383447460077605066461000170025866798566320382016452596790367937865789268405764223418866318773814809208396139854099851815236166801577296094902362564001686764084932483131528860004074557418825764789812272405557512529387199529633709724892440377409250164264767991667024245575366292741731226370729539908740733686897460146651568763783028619489304707867000993430582289085686502922133555006389765117140138910739157602270478820975305221879093177294764469380506809707891740393465778400188537119241516568502532409786853097946177721783075240890897148328736313139749908113469165463447715610799515254542019812604546384746742669605287428832163702887867193376983534223168615471230924720209526669425818554442135925291375036561468962783951653230400531024987656182793774313074979532088362790463812185952268708840917060723332140870005828157889227098228663898936095076957859916273231737737288995498719041842949211074482887371159283708354952786357222085337645823133633493978867756453484818373839830532094323256042727153785483531271654399797992423682797783841392908130318367620653641319278626073444231115912012561399552992694449455130547867778438317181666692746109094482011030362159035487537744854269708883864068457985528384356037051164278653044408630144269121251013850239281016079903534158037756041651467120910589741807269739040376361308307834985667741029392116126300572539232524548248742912557098345974655027863730830640593541066278472973923151904045688547593888854135320044441654794894145490365767642713532694306292123785505667451465854531039416815668629586003163462442350437539636668565247500854198497451110039103464873433965145408361204499625692559654486639730727870344606711665863371917664651664560680738854367182039058901665177507800639473586253273569000338151527410263567174416546825105152221112858480660939015364247168564941925718346875846736141488988705909880958155250682300273808292981651969803209244695421643226614271046494796728743570661144730801656036374196854790808005633857443436802453293762054783159151755245321234860192384036185064691252667896382174148476417526596128909777283130599952458048957823526416554292122001844997837981150552186674623660978247104218430185106516869919987301828893696195475187846305206705042528170119800768591113164644722252447967912002235083408027753263462335475268471383275363769987845107457082702825591656548598906527301379507836498818689098784458115457247504677192479065312725651061370821268046095019142482155527797775087018717561019598542430826469602688636910826701650999767044143815754952212533149085185723079449816543358201110422352761701239010158950167445389927259823821513497180683544246819375157318356034800706667973436596962151803487145428152673883149921226922930912433170962092074308120241428484489782920867673084709379708708624358739215233126717430831955755258008242749786954135813739588347873019706716026719746704145526730111395820352265115298827070052552496762411798256354835641312965405892578991065219621504244790729087266747649978228370941536778928238481464941956178965960085491269411139600822176550988572922430453992537835527819719639869050984579833611179203855265528220687814210987516446017388525006250800292320292346347602136029954612350781238738072524085589985564767510662555896738908540542076341519058552827750889759095146083315416124528898145715403352057232112000971426285048077809996979726130130940047242047039556179373044808061554165908046609569748585551531706352094146791658106892229780776386556392546319083844882988516900934500292114982594158155455417173153880126148880099403457941188094629305339317465662895595942014846275715229039596015369952416286203631216483886831013113166446226044503877047438252714955572776438806228412773968219341012792542754934979559412047226646151939331592302638014723598898766667495948322868144435821216808564275486156364655254583464072378580353419164277266073588041362966440288096991432246267462965241372368328807364061334365171660121539342093395053529625464740997895365519960282940436238820675936660502673013761059915841508286199329752796170341516367463284670815060156040068912190787354184009635857715934349057756870555648319532548278752362008753586716129394119769053708131259982498402352155329728076829329633634774949512123556703375842839679851367963135032646023135771823211650553629705220668533850308792505531752278722232681795522080007285722753290554879833202852043969983885256055569415020330217397239321406168243875178851936314447678829412524518928367556774646077844871262293448311019510757233119908924870474394606051564201569649781769228724228651478060124945271430361530059378367347614205379577733441888226350896729716924672837720161578332951520366648496617916675040919451828025692529644949812818819494555101230818466935198949498050561546788316542322372314790555474354040526738377535959581409662149579936933490966447865051521526810763084999393366592130455051041914457755448867234579101708890072102187547993819615933002240011442021325833490186623884959830660790630882053765073748156633392599426474734412346676867051379873714557954061240190415916955083889901216554171357371952160825826756246736836491547248405032973318727483237444899089873430011484923554111340210699738891662185443888372031414473540781143193437459674116811957744601763028757435047609804764031750671560750931995579268382065553495098824202745601599224849713609698156319708826813229145356528078715226482906474583005281528618061602010913324125974736693129717082552712551358567875882861240730956320924018172508984452857165452083456071312618216080715196941581232582071544864094024581823912603241209951817966353359337958806583196567099603745050952269039662077117176543240320454539258193621108539264900390019755170938712212776909459298230729462286175571666190959547376248732973678226073353684989493551383748806749460822247090817920014370137347748037966477171836013644366260838516864038707689982877264900682978708600508510551988200360343452175825113376141112101281758859430297527367148670325268509540755771120472987617234098596479044430362093676541453783055275018758428816439752439809903141613700684127186711231550082089924696075370584469645058754041151954617135083334297152589959008080643152585789960087809803371671714919002414536366378443944994399756079794181314042981870767884343331993931988496090798865505352993862296487232997588403116951651887898045282022137712355303107526355442998746089522497930473618094175251517180057676437312458768903238574703689383922107630622625315543531308239660630399555490504421832924399813523210837282494628108179038425416112858004263324337236416972476146170654329807145576611785347338826718736859442672689462614560495585971939817743535327992115341425085601094817706030572361392588874308211471307470832551698382160651669258087007871649019946020707185790275802942899433746544032968307292114737988257098710181292167582834380484517180409725814254618754624074801776292601165402795857785329490977279828703130387849009892696371456467352278902121905788304646305656898314118590328101799918941494899537672300650142180906312946596055398282890176498975578754545976370989530668231267163126807844522897060109144056531245006985467153081744111924634666845500673331353947857195873605984216354116953048508085690027978379683563872312375509092799638253206940763541605198510721729382127482705078785529939417771879246412189200824170551508155591802803488922945741162924909342843456385255983582443106413128759467954332105746136659322233417668813048446733898948750070082038210911762766240914181900963437640421352881467507597987219446298220421644719913414895395134957213416799926132043121293790174207645990342125674420624237178346483191909980883305857914387866860507162236118981154083050689604497130830401762705381437698719658259101298723044966168437084793598575278243122542441785475351349743497747209331469353768925300281409779813107591160881861171555285041154929316691236668672923268145552138772781676943350559766203440086518007447718208414811638446434642773932939209128747489574162991579005598119484422415827282270711209243082744154882733180292038130714041123265689563323794014834007296437756925538826602771939250799443327184208943527154187652068511896488458122289850894875128442554288503993513983772913038338454921465370503972346972295150698275250942710855218556129960699124137856571572966517803925308709468835131519529839683849318316449480081996464081307454336439905539229157147637123439281017010194626907633130296540510729395599962908053385111065320029682874467461371016448160222786419817392018530362540914929096256604833887989325065224445531823310681618398739687328664518453312331309763298894635783154952350999509435960423374466773631190195760557857133576256927744107836324741326594946660762819762233430098078598142797776921533092766330124232905167609677198218758792389891956001841847908117766556510051357143127231104053053606213934185935630223958453035163606851780212543278465732404181214442072963249393771027155547210402573592194591732145082076423136767899921933092957152582733382064832261288468771514871941838415520795556202902211771617723917395872280929788309286158977960714561746521980621367810291983363558793390499991928366541906250391387363233688676376706559469211539972291795905196665466667432082920821805150396662199030340520494630699236888300916352410794084049605898396564507235956204179057881353609034597686756338332091287740788583862669533058405001197109940990090757197538673440040926808901492942869938291376592361797438051735884484095394705786584310959866864922133915947838580714945260028509175336240860661193837036776919540660903309124440601981243773487713974075626577681714100644524076736840330612108742433636171891718453172673912382027601389347570757333829870389000953285141499151751174207322936802071649049616099667864504011603195871291930606599689600321781934547299034673806558513671090997762866567354936311386411284535497191102616805005213233170788910120406232452204680651259809518977167834691839911170607249381632918259708175963311019199675320377838743804700378378915225249301758718851880294652337717982129400288332487694051926706708160475322868409001217435921328675958775239847647450100915063438895418019304526767893286835845048653185144488650838870595021952384506003770295149554981750230545735694611190545909479394288781974532803816355413808230453385686523966586971050048934210900964564607573901258938803183117711820422524161653331973988036636965362711295729968598613662701608442674044165065331656644372889565790701544675517336151289000707879035253869609515015331640812560139163518020633476380870226469296141193270238092457769196183404355193785339809973893209742310910472374939620214249077028360566295687292212007757016511162266011153456953133223158535542022446518657265393168774662482980894990226975708572856652614236876263233868035778699140779761031108074761929073664620995628000433836787384419580627331757758047021706289397378966986540126431873725133841914490995511818897724110243667174444466790623725622885443852405437811022909231855806259637278053136865791176022338283193242513287120456708890379740858207752099677023071298262528185114152960131978027126255051347385041259832034138326214258672569608470567189515037398757311929211632978314699206351386749698147327059364066202517556491619055565220619331826458155701279234384166017312514818521053979603334723391422574171350412524645019509670711736201743479826134181682130061354649270968922556056658290695810830105652529211196560905459938400936675879719079671932973026427289512321381588158322462220899029368194251325171811947180111182460820259423914063479373821058574908013969958668402458354965938321672459229532980749758736842199973195639478629589782735410259476325070333733695764805169674005725802996089428797366669376964617781591052423842498938242274976862331008163146545208231303769547094309991824139393314903922500805814423330132066792377269831275680325347944179294651594654259285865336567540148209023077978726185713341400547811796288115466606962248591255000468195165597253114888663272056511533024024348582913207354222535542953160567447047017301565082223543531933068647571880001480275663771867025322794208332196797764998582950777755207917415790562304234129406715792082820135657652575097252022499566873463512161560454452112779496415553003280921378515686140312309941030696698471981890012437650363967558827189313081508896586639566067504290000318202502524492743311693436652749656759890296477163952817360610207700671201488742860192669309857288186432741380593366786777201210482578126040725265878175500692114090375480315428607268409223110896162274475491793269039841250359165169254575738303259785572207652196302131191221026089337964311095013829746995208981312605089923301467074108089451551861303252222102377902576868570983446661262144634492892351291033767165385192679505347263518238264053156164617555885905755856132052802262391190319473261378711052975318173481774565926824169985466112405567682864260904336013499022320261628388519418665233969730652729724809422320453648820513266864945422176466958097065039914183109537138710648863172939734715330510860784975774586966652352558055965799702461228458651781676500998923216808754370906120296226455999501239374091947342353669469038053378795266213013564167508354245280859112486850022448545576148076767559087317422711517424851130606216864093667478885975686996219410071725549282764466500831213053926530810094203691082402625845342558945470724829498984187934116268473289741755590507068858841833635532947823734047293087732574912121912292948314214057301853492272932352881518544295327665145451568508165019913096259845479491876811329348676878021565318336391195081038804958618770399723371660960776557532922916603202707109017780819498952016832269344696144149190864482779373245164686881840255833507070512004576958787326775705196949314198954847853042016673451599056351968739709328484886799575882333347892033910531173192108146841714907747091203190511926636638637289142345698780825564313288404367019875545811734139069508246724757994890165524232532236330682989142493133327867286106370595648619203880311894769258404334151046570244647705111344441041363184995307171734292938973045085775891801530932808354696003357484776609471975658684265990186972249406807073169772630650129097112113778609767708540560152127931220752564881694478561706455283196590948539659880207023054660784156877174991697801888284378505392714822249197984730862672426397730043458800202283289977183618083380181897237372560275817784476576449881959548577547076742644714451663162239909932249313089506323113247505182811320048787392153353779192457661534542812043544649622206147095356924229644607049490864252336420474954666413703301021634206361282312330229220060765709385759831711272259272222820659410410124450585367520218440358758852868697937354206918914420770621214198739075743091285916747349455094005057524681791787646630901607660042726506882320928640687690952629111024583902652010891042133879707409681655629427101789154604393308352368927415156396267828315603314654700111814506988341501476624661092302926351593638194748205186120083587534920408471782387194102587910733844030606079943041843647398662621608568274767245212737005069022921838400608630775735596447374167162976299270772090754765095177654695198352138733129100015104666438458419078977748161713167880794316334080905902389931882092690844041393259537054362696199538288731331080865540021587895775133344562766986556022773679865218312299791584441071724956510077966174245749031913728450582228202798146888041189998491724231045209281461782050223558907058964428746615400843228081734650817982440912624034890925733164565960469896234807921395469597079116903084932971052489915330700903851472698765601429214252118505429999178391603463535652874853480174255232980897168137679941060777448305281404103285454367999947466052298402242668053382944745272435180391634971027606840212236426222585237096850669384394021528610443461148056548175348148479026903006324637069798952224187107918049904709706242232332830163704881938219595032417749165315731983087715457992544970021402693164019955426739323575029329849188176332685341941748944832073021952416506653013061381666381628212849070559537628689378271174644324325565241970549357418290120733053671062016862742316153735570506290133513132912794407884437837251890500119639802877466446347984832775924049680696310799878503906095134781800561954104580356889921159709659735386866566779213283408382201918398691044939324079988798077048173669728293849107722697920071486276695526847924621305849637486347752917971857698870930621223540980172841511986567384769065324460826008807341836184706063803533579387993080995244011412649095924986421363152715035733048695815236739046175541618442896504973796986816478141820982640027777966984110984210313998211138769581455176807738588225185624676972310657230529629585483495371622952930551751221118598958455440597583339781772228923598915968623508923357627046640086609504447003877894809434496295721135430168051854405198734371518826410028038809254233835072403149255317681406004905935463892823858331592203348350651410891751056252686618266669435718487779569601948235019352601843889509561314465201423763911426096297949227277768115665868747021541185585165272549546098118113742825453203193086334002082658480856735564468987306619751686375908666066466236236390801519478858414553061309630852282528249506227422575133445923624488680484362736691749836756136022408989977405047163186314651103982372948836411011459849335689856519045780642733995089696699800431244159291446610287304010797591158330376920598206586830780423712510410944212733473582762033381418091512785767627108198910100682807092723487215248677039415917307417164133540723393159534881859644115231843769997436048046521890496974934005009725485391423029613357812205283416945516193787826397431522636696953998990311280575492742055539612245912559755584897599502137045122586986455699937950210447623622587122685708106484940089097531687424611401451603953835837480479628782373019474884210841455955768400965045091217799665948689907478113119336560190702572969004134119850806332076211271161159019637590424207102501350688598370088374742951481279682544221561480443018065706069874554889324317078253621347191034162332127290109230858607503742111700347321357240993387123582952050851588105255177429486770891827562362666681223869660422122477988659282954106699387175725338469131880768324994363485729600998436601087869725979213599270993058388475048366970177648074748214420313633147603454660114670108825068512457849640808760080897736790889106689901789477703004788402154742137267686440438160947838633626922339580476260751972634928520487408063406177926722505799359068010647416808245833465586147932504177872171458288661961354307750065857767398579726375240282865273004573857672634402461269050480709301329475973311278752948306135102305442838206084185947192449462517548097429416075369312560045410143755794663315360155178593971704091807696818264351402955021045792127602716772922633459184326910017869961128610468051146147255651627197880748695547063774766142188151264404753223787521103529825943303679844546579244276139204937859080244710523714382357509331454041456834860418795985119875326533909383241055014334809761394454973473018079920544361906189247101002783494930244831315772915574898835168348989013761137779534456114108535112398670050321545347573131028276731397599533240582085756404021080252321936396500500857436452722470813371992419197566773100658335430872895668303026821254461763567871391834724731581575313725619907699495270073372768920601370628694847919830540937972082408525045813334863542884839792170869030482082252847410063263626101260291035271980886587888660057548165887711311581235527803520516206231726179910909276846212498424373148807640102343483963868421351124747295395558954742896896085882786465771860687002531734770031479138868488536632634230541924559795241416450644667402735844734268885480303226360365125499843241605347721152960897892498939390478175806425309374987407652001690405917756573016242982126428518726194719604730053325680899197464886058255909819640080234134073381701652228293533963410290479882036690716250494038175479329703959308704462577353488327568060549637190821982543937729213349187759216129503169793331655402092643250446872517620133850990781530937455476572114517504203366345144550930389524232926271963158341409928362612505396501232523160170003975234708788031562077688462593546938766859421266813614739142387693383472127748188380761453847483634757141657678397273257992967763984521308989585528557581025598483607286752374036971806859022819825587186143500891213894923111277440745764087598621841531524530687321559607910030816691722174942254437738090918908419543142561293930936543005319458705356890398545728100987408557097697759536188945045771018829197146091352371937111482785199052714380392003024545390605906556022164382122041369402463560522793218064599508849331861788118049094260266817715679993907434450746824263869299584915862053966080092194735315165935328439936089972131697266933924860241930071515406945646230145586449843946625183063340233185510219340000577495489304073687259506183679202931345663329667508020691528279273792627274790296795533325110114470624606625300418753596333998291019104836689315007904873155472654514520832075419443871983576960365094076058488546143019245194229875588736143128178663025386288147552119590013565524996398655474418176215555155395228373866955845849893321436304305637021783616110673680755466085866545425640822143734238707752034045994414775779982169695238208153704116831355565015867057792775501678807023901098037576724448306771805314805240039372748795040881799812613753509911919322790681607505646573387069313543758023973974511527856203555248483759267976912909723771268937233579360930592734487881512104385466821698766369291433484420576182477587627927706470754507786332271353010168762566807852353989934877082199420219836062825866836325434060351284926743665896153047201596342905848584120960348721717228426154569515394625964030596508976803156364631680955657424288102917564358958708031046276190405947538256993465087663495488367290831005390800993710179196887903169359397681083703054053070763193438323612233206467556716607471998661236244497853381846511994213655743884342664620587492990770940556958804027966281547707083551590696979690237720363142983123575613725229673399893762738653454833834253301003533978930617377096199554744786815563868472401574661775999376320518539766939937844591495493894630030563525765168363840204808893425018121825483635466475860294291158670120205071472687204044352354417427523503113482021604938113800805623127428601997200238902837400086534687988086125191155772411976159844764678193432506455469278463073917983947059803157554137071381634547721970539541525780886071687151946758758863625924821835479771717825469667456717965006427636939287719480277859947722210735726643829016277393591029568548657114448627640389514508160893750178337480758586830757161608936110328389755690698729566915855334329449525456950572823070752651081128572643503471907607478803338899226164306963035262090541823551301679263049498398431343878326692332251731773010066623966759645349817571925340302221101268591936725771734019920360278004747587871400618048562129372939714638511595633858043204706768811225597952739727846087895191082887980630597651135047705273400088678856501155128359419299831965236795791552458115671501197459940601924464955336526559832451414852750441970534900329769898617091542384279480506138024447140821357403549807836309132835328950280288574342533967467563093636956278142662017040389682439175230940389867516779707658682735284000723472996869955165368838506101309288962152630808154334994722497822394243375072619492000685025602512058205231280465020188943982412526629343223957371933423866789253973420989754507551946744332751150122844043569805464291250258717372754964861084878699329024734952948395180122181286296756698848856090859490236581021245785438458489733280115633097705197012920378476619003269803195052149859631193063110756414980595942712309884754676518775167396261502843682006058105775798114081821107724518778714105128433653602826795415189445293915227624088700333782397782191965261565030709274836165618456719551504396609224884846292726589809424196346999586109177887444904783366583942247111438500829675190941823234608230250389670990706697226338743512545778172483683867335813552150023370668892479509089931868805417497161660487728706279643217956562822127622851395151697549115129812252464327852703494911963607184514230506650789330374502012526916841067413559438909253551141521414439340875569429524310723605164504899989677342960447861555016014773894983030438445793023070909327885659086889335961872407432274473251764579045629433279115060798625760200692716031157431680464428141545025488855411448722495294478241798349880103105835196608831176112514842785942162393805189977941564674300642453803454775116650396383609893513208418283923087589256819527451752406745163605416868483322586192793802233108678574827914340989503757573339568997783812684651901351860567657861353299913751474443549899803523061623468890157856049281395305515898869902715004872370129657607050795403706567097736506398605174745012485228469251449540723129879743320763519093814849137333057870474343443336202774719126807439935539370934924043507477295514525572398819520366618491101756244906069415171786582520530604768574202554790749322218200073471879992805423951071505420866060666381183254290808203009000656252704457651479750938141934446828622016551706892577073358883077183193184247616095733539690079307355241632247557890696370331627048164350669089743892167474232032316045364012499368858919434597056256759615927259743072223845643333908842445966820212287561034626975227483438303564728830050581051876576406998428525494515343978818558427339980877256300432074281905140899033702371055609064020989149773223127627628216333644152594401356405857673828681609656038452558305548287077663442766910994333390432865583368239597426846917992001479419734116503229286966757669476799351606831989608126194882583431554095084160179068962369164950774981706603961892661916960002877396485015337903389203513977816645601326942681557986263727708940811570805367764631173590035583203980695025532173786429850166469845211207697419416075788764006313168177855528363503396110359211073595747324764118483321467838944063773867236533176672612311394950266044300764623338975991886921583401611184920542945909241962849609275194227135964656029604582095529377653126151531384924792606657361194506159496881626053778436664432046971076326902018962988806391210040563245873477653922786285292940440043100763155206695174855477682857458715383846367630539950735549152450685873288831541035913136545934917839824783141735288577488257735960918637515903530077082155538057893267293560281087243907685884872648540542098297540242511517872444690602434480468085644903105628639688948563175737403492326298382312048980382656874448208524839942774918822152514026131965080222116698940645798465531924352986113737136835919890798235307077868036323246278883034172182498105756326124809248027603858640845715135258027523670116416731263420894076071257778759697513686134579591423546193999617856780304170128623657601756934351154786947857416921430986755574872008137434698073607684351562755284922525866229525974238580666739408807715896687233878358911240228287900152118413960425562769816747896586944266230328820834611310420261106092830517411567367292626476516230311661334806629987081672959825122314244432423621518749414978504133044804476450008494540215250608311826537327206752310051527604973688013147265484511344737292749235180907274180686859623957466054798525637633246516852823208129795157729849904993414267669066105684607602988720394575818869918877556102405082066659104327879167698921990400119793959618955626670185755026434017260167210915920023409442685534476936324584054431770910836240276825990458875898430634225498148421900752439536285069532920411850619381158380690142540197597981253806617847534268206887309985421348081641044296609679181146393692694884620055975614151049650292423658798428915180114393471588650536813644870924096722197131594301686654124971718460499914628152100553875697608362791111556891710309426725257163289280680369416425934113836003830000725561575890391183556128405861148287337443697547920951868509985055712597768802566736583823522188433345948170356265592645065741494231900218437972676985767962827098598980887381537492372127281734307581399695150489770878652497719141185162700651576872605993906372543900907723223229790611649142495199562518195135938000625473939972981291902152834129841147107854665492636561339711751284776859721640974534868966077619449695558281043148085432020468713568455047917398753312780132372124781945262814516705017868880323872118098453995737401077660948418660375766968705505356899814715176496001519848669955621397639540154016028078640066482520341277802734202328536161001487833426943848928268941030435810010817600318345109285445244112676472867243927509130195920396979724058703081753116869823878732597039198849605702391903546251038634530927435308657400924038114272817028745777778054849554923109092138821306359951826707444763057471539866960897934592140537176031042002994979305132498266988902405147276502903545594306818825039799854124891689129076594204766760040072964965548435420208126095882583064421770180995795325679954001350193024243081745124324882366247727855288767869922746465589483272766664441523684735402255658658835284531310322405312568252470553060066148660247193381958567617902257262722725406326323425457874324975751197249776249439999388508062831275898872350417129098912610991707736133366275858786559909976820505669992145717460211893640622300781809635096409194488145155949373432491241767726822555366200426553750251473010878394310831874014462482029143234762338221438510985449214202447382544437607261464422419400391420483834180569567885887719954902004732059668405073401819340135931475459223052818382397424979711110510952658821479753810891481077209357393756249216265737010825581063856870171533541921962730883135728836396490788968684619379122839183070762881034098333461906085710239769789390755361139420113123312438179269251795702125168961429200849427162863284052347023784112178531314332308967767925356789972548954597733545418270946012036068738982125279173427645722233749900594369330900707106891470747770461220080426728061472907452482429758470863799498405821724675802222824399489506282927549732085449183604701949840730268537306370428431926952802192152660263885042290761863219049833700084790016462589822388226562330615069046056079167607456339874607864446558472782602261929235711024577832775451940951915057998704900651551606577867958823842167366026622727585666309650565120189886635076121647630315271911116575902219749152843352021993316174182294020269385800025825458620284809405896111972550389405506566983059307708974871694565467856907515522745282228931707296250815131442912631119737349238017779742658548987358537872039108272090923654276254042763919332369915095388872667732822829286049411273761202795634540444312852329374285523940211108767820944969288631566650736730326224297989534877151419648677253290084210440794701656230846403831509350125361456404720745383508121854968352090667852953608730421278387032109383755133727012120835932851595205274223816432624113594660269830815797256779038617098981308647438255317303807905651956668070277654400430797451860298735948120839008091385424683009560737037420778233946351665148154010357742584436583683487467394915919507717318655998977863354563343852144688474490082193375545714964054054608320203051076962308065784236040016721423288875062602289478003297469865055946424903713321409153714660644987103066885494483171513166660325677896142102302048229948323555760253932390159589547577473211582170729981550107341836746428672348477339260325603308359288295406401248542116368573931955051780319536059876918501591289479746814640876540525684733190146240282984452135336641743450752609421999315014610157181925195822359136987832966099413116129723821183045789291010504776988129352008758586138266271391666199181557040684449452008189898860878916123562953885564983358815133216144357646693467363890157807331318426080310532636469458409535400526072275589278040290057952904578418858567414024910049063006918321686419316797073173123263934023741076704486006470238542857949630064425363473670270150825535545451764517271502031761889414638419753547869207852056305911274478504562752338072965860147704923018928771575205893049669543534020682478757818336980076256645621086168471623882888151914933852441031744770013145048622017444429633867052495451685276062715436076578450089624675899720183595474236940481403227437638544096247403233979335183942454701682088632666660038916108950543367208484116903701384856642167423383022297385807536472363559706188709525707087770152505661048041483365834781573545702275167631483452337762526694713765424012327697310558843618791116276808600712026843097932219000399130671923198013198344941504382741376931565716148777005325964947687964916209504458358930980260537872515263097136075180459661630517171466762336026488875919735054399786673087002470417214707273697065119625410950737345882092934453359869981595346661904044051449972021720088835404305801189065186018222499350515632625448130031812707523203422430963211420248697570904644557930490219102926414450870387386758119619162888400138806059742539114287759422197260955473602926658094499061678306917511963394353352553111975906469377020158723551291502690863922161162977613695478922945835264040410414863550206340171851133523986789849900838662617001201204506001866972727829015696783096708870249065922327822205628841006194339833524546614319139163427820475502295230323198484008869893705007337973493162544515260078066863847098814064275390766128636727223127831639646781215791889319512285096515735942682952147438843613886388856603424909600593929966941293432654992285381189962280633819451773855005403382772775259791549475668407040525159663738175986125645724920860324594246167270543520199411603617450553047393148934302517684126429711254231205029026290768391730424469660983250322298517909452948264594937458225930087864472460029336033676816076647529073802819789148835646092317511553063127388505591944949125794046718636577425100695875607807786311664236546813032264675875899760407830933988952391891987792021167491449877803055235155179699051999458633771473087385754551896273956586605630767758396299052228064903805552005253555989768872617779688274996788307233125443095818404287653475643936214845008259253040831562329413681267513400555123471226024769280709289611933127409811981162257336636997708358002566489845163153473758518463808787889075798981997992752340977258698966035147590544286784868485639040518433586054923777845363784900762971565610831842756056295301404520248990607022189197371359699467729917754511184968083756239570615326504960076586528568939019236316541265972953358947167130133589051313947096864147042652177612314792575888484068912349881334667387828864743556215209939514463858785987700892896591773222646333703686898084758026075258362387328919650081374777646834889389860931211894587629248761846180258581410944810069026446558745122295217293592145105651331339158850124515543747761354358775932043214474811092283418204704080654712858068012791060510328380771899434423539843518828600693712529438244870832311277179771343253843826441039622061826595460970948775465535640951866382069248048676953061561980977025828465435690800651873535389586208237891997198477629745964564734965306082879350072762135803821571662135120186090490203836009981480205097389298430416458887764309690023798953031186934462939158626590133870881390097782903862463970521740011865128152967532401013830348664217927602919893520847485949925743515818657690732921812570949064562469362886317239924319085354306286811086509020862679609283189201123109106562439839116222347520444109755319858021872370771241756748123386943537279262290728190518783375804655125350405196892168697345594152044828400781645029332421884102665911171699356857154507678336091441141055582443493349019224876583844918317768422196689764203766181977060116361982710474137002648789243690240803956717715206064212805140106578404964971237120104336295414600431025303346810564771384166313152823226296038254302465498956290813003861319131401245530251169137192474194904655979847598364346355771179613358006633497515114315902677315181938414291006228314801862928681181738962448356969266024069866282666753730826720743339283508966586404150353320295281998121089945771298002395717576223853650631006530763510885884256261837567233853115466788321841507480376061670893437990113452725438400673087512746176636639039882752339821020558014758533250755949593887385403650735335231583877090718054802806305304480903564157161759820319238010135829148148584142803818383068388872208628492745537843688698613490475274316819937224154461737130306320582061837934753248164844072160979015480319575143085355660049043994691436708880954180072273118815538476269060977727038173845659685102975208944761620285771278804891836824247301547213190590139206802135763523446626826046654072196172435193946703414740466975138170605271779751298845522587018877822274992434516247658743030934235218196078600925818441234630131959529617926719997069472548226180876766050760635369348143183976588384864267998026515609162021870122745487764561915347281576288389425525696475594934334390382929220824790630679419321062787104402591720830819428000956731898327054811020429726850989162005970883980324575402708376280662240270157859568474782649142061726954475969379377116353308115743549931509525076940662938414303984847601301472358257172645510262670708771907058493497199281634208454976656520629337073468069158697345111601277564125953487438286851795842972846690991743864074846912437268887100052588631384409104518065885198184726806785248172558119254465644224235319145722020485853836056677848290018434927877884447457937815401021717477592066028786574523980677345188865323055327771535955656117464854474280829290615154441903725024188862751076487860328456120607012973485829195612156209920967435722150140571379950313221003935435641135210057945188113593489129294711841806052539976974625211145753623397850726710284303231026203195248538747299966745524601023354907887991554008300804086675389440399396651974575472268879173683866156057126259305020761924042006796576822280548097943516359638544071113903797240546494633056597263563539677060128972585553339770826516735685295722374080856675086915545643379690556280299283928553489141645691347692087484542965479355843015911781577424490427167563572609696962229145680650742518363399445595549575274894817524337615470305851320733844495466421837502399107361416134932743508074471524724939891559954113034400040839788470690923355873766297978245617649292828852393639577613860752454331135083400698435193312845475111500321339282056187258441008959998967586943355541432973829095386647841094790433970835523146216637313707929432993945120661069309368722450834354144956528752411896072661593415220104602928277891707691085858780480535445114024155579233450812413148499279790132273065611476347634907075182328645376524670599439838364225904839790597181494393578275230094075131310732469094293298056939719759967503567213635907749190067860122822358315071837626666401301551588342290238628123077036415690255850796130212164264659087627448388774636991724571438582437668826909766026629528533719969264981289147062880153472162909168640060823892189144082614101121101213255163887858755852443263090846649764217280578172641390915735203883450014534118305040910142416244671935146487955299272351497533056006548430027015530027147176335797011273814832925122276587386398877113158292445945316540898709083461234548892190774305604225702154892869089565415604190717801196294885880600865965200091048711583972371706640615371211170727082996267059234980599082180708873424926908229456946153298776013702795873149892009456829532361813116089425974329906175959973706402219209759941824281175854123377276794344328873748876483979403719749135278910497189678192025523821772629763987444306761532879320056306039176883577025141701793857103131117114281615549891145402888263403218136692664658990304454588045275458398727377724527417924950313083370446546157545692455294616180754051921165648024841833272709829834383273050431921296942150645760132848965493901862683545856447058496807904139397270611841670316936466942585780399389228424574441614725000853250501065778125483585164166649028148911769972587654358669612267521068535484441118362859267454593989211243123515968297729774925996174747082209968868252006724930312315531563170703206411075938086408611782670930984982011742569964066347746571874224902356406221515060048528457194988808905454237581821982140776947621721514425530836661279020248391386529959514222401817494341851240779867322465344854837620568948438532528403089508527163112059252293495261057162994639943675860523195712334464297868397276590737281301659050315421807890276775566307205833694420745266991810177294881565647225195160046288051426728490957517359371958237327368819321023693061492805819092779142627857431764172956405301121668557423451631776725195809609510148162287083306638691340684651170322887377482570652061151384894570371435547586200638343527404023875736720469137233482314138722072865166549054987462004893402142371677448506315284516094904333652018141864985827933313584844379703096921239207390130899213295319142658878705703170749000553618917260909463557823762643741253756948921415782839074681957390579450954952269960825441204095002894954453050690572754117531389389491316787523664765146522036810037755301785583031677999681160355148141533528945366422515040157089666456894224486809388318577417238353986760090021092409891385876701239507577480128637722865783862150311487742434641879676783201280573843340468036636207496491047714310589377496549684260615540387334876679254045177031067489234998521075274084714656971370666383432350156439805762506821526999233645934966838136392050971070455746104353314050865425958750316755997927572227220888244175020507099745995927669290817549548351233444875002686415835908297451379558415021555152113716754529667852204641578720372524783925365545381334641487562081848795131643135596123293559903497082009031414075684721784217377079687076749783836959954078199245607145895668910971129795791757489010277598224780903979901386653405041508179245943384257011295733371284387930669022570813543407706218577878969056544260420078422645819573039269238157291033853608700013636583588929363646438349975618544797963391779879794336459974825005383886868671308235793967266781438865089086303613006884775890963047561284915634791442688029349895169112285491517961210779074119191663675709569254973896473378169611251363130885189340090169683929388585934621962854017680255862684543661890271596635418476692935761259518796159745234175814198303947099696271913955513840765789502938972849241531524853506308051203909614839163889133087851685906973622050289225606054050026351887576850237479518541511072554636665726868783381830757719288258936694011530300053264546935138882623300505879952660622441857892476260506221285936664358485994295094965695084966234752718646040234604635742410896629958298593151335476414655140663300487317308383228960221572279331326690398272374658309663266171150142053181516190318519175506188998208040118460926404817407525163102786161071239427479947542432814189036069847653042563248607339371048663679072758754493670978241916104872846607929441484646757220980160662376126759128175418263223264636619671360219268003882760190963563357159437520203403955169487573504415368048713685307814870556564845121358877952780375374672135374041781687619712383448907087882893020089936899578109347709644688188768516513658560680374172494445926478929116043750891661164661501540019215897559409166237042154395864477128318252396614400581832483468459864555984727521796178743735017753063346500879945114014630924059364954203773530776564041329720748124339813151338876059661610068692919847087017894982317021728132597880342111321851466549652622492211515436936493592989810752353032830462089942535870534933743612450948554344195672769774723997599499357854946418416310682834978790906620580684690657838316684977279908015988594615814133464533859066787116401689850354360239521113635974632846339992661525316430441017112605358443441036558069285390121350149342327509367829296961316146287504837432064276383638895330373209811790640569205934330284752626866150387988244805552604902737582353798418327432239797556431128137647051504630665103784223684417609251770417992839120792770750645826540285536538589131363415969946425760993373126267433700635411193818906701063902114567518787087389371601108400590049805119805754046340718587089822682145263786488108826193569252370615630723255756317337588398667398671996331828390085657493830894778101560885808933759015618421020251192124153194934537510103685965006757427522828359469010144245332251797587758445489472265398264244153323492365643244403874032512132132471965506434190339101168012662920603960283517930288522926475831228327868270739596310807338602685752322160406884703813200288812498824653186357855269003989421383347288246385305991461869803993005288411417037703942702307810381167481557515447413952771505296504650626539322654892310079291503674600631699810445221907472128106726231101051323858353215178338898587937913687399637683756725701048879607951895513718759965382385941675609551905271017227502509824039514308151081447415140551692023565485187750644575119914643818964993168577921085390254181266695660977338181769536259813341830381851531050476383063567117943667792122742303647964802187416874118732457760373569318531964311240192364229448938222117670536243884397542741054574326853094266414799060064086566274477873727926268642809024293158645933211393512879657477590255606165209820132165719892730052442062331213569310137524126651819001783998839292434298923016212216636549128555145571987881555775730952887315329307525826274833234660667318440816525200453778042507493025055228821231744704920990078754333914669321633791986671653057441874949158732000489572472534257907491824008674129159042509013952944231367536666754289724641959017906808011693013883502958820209861023971928562356471968133684465249575670333510796529508190771184218500222821925237130965256005659908951772138014972755882884305454935357155186367131903752767336815931446410971915355398446435841154751971113096434416520683081261997981038140305120427557825014599127952630719113627742735219801048338279600020221110371068942810433856023876247040742230047597696938216696481938588354878784591592868890547234812533164138955774519580894721683254768208654078421897578314812185081361976774463055913643435720692669092702972155891261046005748195684508130033650678363917432301748658375621900003466700075114439774477420409639981658384722458980876094738122126193790218389629012636194095096506792044177593324453634332924823557052307503710646896849447779180595426540042831407037758683871506672797021525872039676635751292493576211662401546624203338117909205526141816911489479989347631138380054483438613915409617774176864066060973287161214741194424476716516738387399394886878694072299330691583570939836841496476535361398457005028602537791604235034058528122906571175208361238438410299058125767957180228216343822228306763568975506611008684669702222665480599570385319475289035244984305169575813702666014063603607209364515834727873872601878533777997009444394776958334801640743508277625063212097065325223984080094615480535211064265154158602792760269919594556184521427072693546138546518109854625516076778980432515192509189123405863232153862717733890794750858744575109370759630618639534347347008052220962040960270938078226579550763364644058146454235973928357341121708306523243337208054102956953776947407941797853840252785881846220647521460813229808594883415998830148411765499907901284243635181315887422742955895995108723116149936955572225600302009742271412927513086265671700050169857369149068200537483988048598522684017797710769390471060864559382717921968555449197746577126079497524684451211243418848419000842923684819548576299900023855224124604140226640536991928759138825876672770605771189487689377949964089624365380226167066939564531689684509630733048882863728360305174874917812833557592825739978185252382975871447146779049528188156391398873133636124617539976538866439474382068736993345174884533341048639922996492310761033662981716806552849723390656633345802694227385489284788518254477040427238848725502879301378196153700305926394359235288259159474544691020166734824693749995154508720461366842841113601004836752811504044517152083943290655760626910501710337710456187887145412446174223732255084689568159759234489510512440821705122813527375887183786416859469005987732197109728892492904146258737134774978868013380337069550762751420678240218469398007673951729855654918753713331992825433747155301256229607988843362796469519843172926137207848110417491170572715954569858322194340223094828061113327398071683192840716935328631380550990486650453871318157569840191584766010401472664765857471273273719645313261853010604306938224088682244459294702690615927088168044125034052274693909203579017204911750601769778971022783485303090257757786830599687252187425064116059170243784885707152383511994482836054287033810796188138022911214324483764866817682484722467684455458580435148625613341361519425169289729115691142020589446468488446917483987660862350591500016106952611990871427621104845027370277104935112397377323697799596637273167071676747124730557265794944245688662247360665001732216064117141703688360562352792175002635453344951162744443877061587205489158648388218288213508741273786670211577359446299238832554643231239715259942076701803766191189010027534565327722111779330651182848711576010289510844602368373770078211526926754140360406960384673796822672234027138854923715544401187711543986741554228918574133347399829284072594672116715803724155783433056131161707716747342852436976835681295534589543684194086001184013961112814504158860877054762853886711781828200494305360586455745954803887421261591294481545407264627488738373098323196143589415187263762008848097713436606183133053329348071705747255450327080344168796849018548766050283427797088112396804902182556676688138608563925428186091456639593259588107406519106053161353757318008597211635441198493005175908126522862801998027588593257860431744923819073228911309349329130020608710613301894890922667136491162602635274064743774101088916035190941347706040514413709075415890627042170975574529502002454988310421362438620163272287712895792443085088298741825108725815900997797450284000362515398232553740900525903165763236859066124228685458970504892588960134038794306030786750266069209365237278588722378449713648023605723741160872108375270967569614870413943009346806019946639510438712163594875414683641901823655812345434468955361100030083649966746956270063680857230689758089474739364985654719288953702433924805452723266396201545236860427351892274462390168241975357232532627842346501003355352282578592732089890320924036504585527066484242587685520913859474995688429062981223708359526514388098298812954469078280783679881019348444261421779018503617375683413024430620974660948024819958621167575529842979596623343189541157378794550114354842110033392850722011410929565786584731425236682524496961803856161248978704012333631288086006449763792255722168298294159258219995575867168685020324214927416396753491535816532990212343538491402350775517476551440616033216358067735448344773029057119410664535048806802491201273244658398306044145565204232640882671915362031417301251600454489926610960915288550591486209579277064648129675487009196172787597727807756057685026960846356911862716024100154896898867128884841039369105937637875844762261239161483053703974410832683747259413329399493174676298595071251988418255811325249977593600389664669232425316689112298414919323370826038366343916541986098249977275287549270616835551975001927142863210385818385391221613488581774419144952736806621499314406907873240341950587408403249030382742669076047107277140799878081794370990089773005687959746744531588972953570982296781957274239210624934840947878423984593514061124027721295537899133673981387000775712416725215603534488199715651937988297566848638051887260520374491633039147649684718600833856958757108137935953051666450899815047757316570762522288383907932343112165106337194258620169723478910063789344621678964614065818799555089574818862553093615540187378608391196196790267799496511086345576032861463596781203263367218054401504534082103735959803249381310320475962772042009422367802561620031590222871238451615182936627623422252356284708830595413135727337660717619565025219710289299128598895413100692726388556347580581996150772496698073523494114248127650757719192288335277761292192702196164911984481459729773970835768585494737119475308686830119432612634012114398153080454393832524171011882568500777263038096460644727773409782349203487471827874844102854938932584019773910987732103335348084528720324239235356799479241064324927845767436167832171909744598221659588170233993910415913860388051660361446000116149598071543742600588653272276194237638296059401077246245363554650833763210434111783663844477955232933251768108125015562322124365314040747451394458842804269522447380498339508797305526681631638191793363972748573169163140196414405267392252298135181484229305632071958105914282478167741381247461713188306202959994087375380941066067547640135034372283985275243932424969465374430916528179335050179245253812080996397594339155067714702814422739252897683905058603615321714286856313957705655971781231595732313215221393999106665214625207972052409266921069226774248545507911577486444399412179153072854477961183330627627461333855728270238422963487685681095334565407847737912769739466456063855754020380748074190241054429509190155096748580637054357558557927192177156476077025289638283660908753721654212602185206901850214326665635975481066008142860158995592801282402745404495373942397619478878702231384310577873454822747386970476188176320787193764471352058840959467553459574850285475541435406221165412379563838178247211350008024412516505281342991023735233728809502238407192640271531122393922764524209118824022536929120522269817515029721630521184021310532437313726048500938746094784152326530316967317305954492719477503181501206573457397883032700046420204088500111387753149442799454830971766691280379197245023271646431942769930425170387574309658981358423483284388796651152779730076481825746553472442770893989076903922593536007181237300208496425666490268434833393088471363997337915211416930785427909810568511267857164233198509667150524711169253141086202735611952848197523476850643374232030873651373090278625574428000305756363228971011672797598934029934511126189940811787020581570313190218982000892803394453342790299682626662464416774899629689260346213518592288703282362455705639428277559728807694268458477058871925790447633723337562046962617552705532374350637176490126182436665395788741027042586736252471674722671787622179761510064451940702357858637476231540566113041589769865164883395930111178232595951778455096446501453934877008630444443781069075701939691619826269089486816862552255102534084862242212048748981009732099746710286438151793280885730595490850725076903670306158081654671320389293955837223277904220743674189375117006266588303225005941671884214946311655551284768217815640789562408134333540374472710251593643608299437584141351483704763868997840653150231464853611771552544089047366496322062491236657872489751946091858013892213209974057807037208088146641309564735617427093854876542577540061907256994161526987446161851362591031500185226004018404881802362977788863123639813290134101302154910420674961707600730233800723605548815516137900966567230183892946133612217178458306293049725941749897062364081980701194159066384592437556089118953726140378018607394498373796499840572367740893742674396343379346298439975885827128362871269219052437480448391587562504098041030586334442396041833825486877807273561402053925777619720859846544259302844601779272860486192000204136116119996379486629243756816176289587197694198103389567323523229027131066417865654133454753079722207032189516266052169074048931398384520829884240530568784605562309817634451324284117465400123704761970847765213006208446783433277071425245422498662178171871697462654358690877571702314599801730995558030095595021341269044702297667878632016040632711488622260626311450058386971046762200375596368344217116352569196225626291347692699154945715394971363136985570365563927951087150024426019098853381211418743119670442640898594367510799974420610785038502790386593892072341073177550026073026082659269926074099684070216445642835109260325416328284621247631925878647531902200579123239303356254278520498060192274154878231934173043133843871028286911737867965148327388018979469586222594687635997946529169681756710637486226421047136351475057293970711807769892798600527067103450148882984361446936956207953400463980397941609971782409071816895987164761378141043301925511139234072874001716065324426399939503502721846813836563558466231547499125981918298096861575125192457162215710259372209176719837086645789698948333055245191851656052505341654617471869371424273693770810042164217827949570980281904001988175121454733702147512689176587229288037462406264772159083333862155507041492335452113043123096562790088941007555208433294265830121889246463867634717566034596034593873233831333889975636421530074360811272838822351277627859168653984519338378281778050715627055641606183084856926302274423313347168205604040390488966186324190030936148939190294357619044997123742746424519964004264451689594433110560544000201699609093922567162582445310043201270875850756435978121342670255225910877682992773428493102558491235638844376964138902221521802944830294964332855279855076592638694153545871273835678680781019279499136338362054987304202800201057946935375368245511686199278408757115126272218073503113794455089838934698935128776237523678640249053454845051735362897327876698627241588632759053608014624034272032122177356139040114878036629429506122999528556185994493873428545413426321740304870397649300887684463637895701214721364970840058300237142975344602435849416674870434484544275250981969926910579312945298619908398369920240048145660382177904589936085394225591807172299628195980286991640994338181868510041619389369975152559305314355562122169669508671487841133090121803170294353796556610223742464972216955983178802653107835592270885975193401028100328320114761157693266187955021661066637867823033762581550235027465628777184441801647680843615574218402704380498803172927837274635239875825234538267071266726678882582430774653740051975810994224386296640115995313899879399380942268336285425731040385670231123636249021056848316635800468973455723729866958564623771443225960261578629528094255531832636060161062126381953551878370315592243184881553283438904124719710334298551869487153639707083911330614391143873766049696792359599198287679681097638207624159399525185597088150892745917732716059638500618739027178410488834629191789831657564488333310247715437178156254247054861990119158766726906703601638227600397117475831399308352441680916004173658754033621760970497055206656614218087801723879384246118606765089891949954268188007656603881650095720774927548830745642782167374466651048602406200436558587485835474326838069903410346837273911349576076846758416604195357898322559553137407727780727960655517804328940090649674065144601042904472099945958592210945184890689195464824886426050388885701794850687610362938752327707296967201702607040905417587508386478623256145148540857659974715843609733569773125548367930502871008316239412087854041332860621766399959455795627203541354533472638534222361129041453951083919738861115203357619487924230549787019144826620924416207511676307855576969190924566057580807952314442730028159359411179139160847929747621709129239238539459471193388243274941929392554898282192205149500365492097029734036688868824947064970246561136136922909877901704091599931624410416852280542686713730370243975273867360172341949478644118386156555728353724217972355499915386708464446172384811576136983050518186073016720807932137748110475684159103266573442693516952409640355614031449490900379466168116022980114613925318174586548301924563317016449077338644341145091928806759798859128111697692472522900360339997934071618891240125209011499409633384876522069242545274414728260564298374569095062435801418823581043554613708857384757741080379931491336485323995360098374463073896226862965967630030892854171442208617687154850907552814609519992558325604137145366677263757268272659663893794864558461353521369523389130752295931183025262155725856124071320226081938952441219913452801470162392340086074522811984347166706811958144849454431787271110650806116693642036622948079754036178679976724103935556774305907848121106951913460637982558135322105431606563746786299777483441130491537715953721617691462679461965198441056168830435491231644732055816036813079252506212031647278326385936856674407503287814310627958831161240382257014280612540693721824167823171092976356781218236476850259151157076154652056132852923164355146772007306037582895887383932370190460835788846439268755059237120711903674828284479929909782682547519364460873405214823734039974855715703481846707338602153836626173601011790636348801491015648596263753314327779966023034980805814381103862435658313181560114069656559155403799282434090248927142045189791749068681389767613463278549497978845133533503641311126879648505530260725955247391639633733587397589453318093297145408338197025473426219540849528873982040059674614779201831383011972836224521640117186238089440753148944531221399355528469909967561009831489720754452891708478112530503499407172375046752812369850551988115388101420401192442114650859209378679400420606999835955913075273611440262318561308621305929023632815603553572140638773753012388913732271214630326859184687435548742101616442205495848146400923963958666111095239960113489416290383096705268261551370997160970334831257555407185808773618877298832936486963061471937798564375232668022669670816498882461096014553051896159464430814965644816053894355162789083454337728772916707511904023481259678847610102511643352279911993341208797958491636554672348636239465665534913561508809963755061602719437480463740977911088737151872799724655805847128186920096443032878081115267305280583331846892673687172071673912355834505315250935618482614694972344788036685563029357972078376114295154770501084433185337877604244989434854324954685769723900125652801935167188194501332917237767941916859277255762159896249035702711133501339632279107806445108141788259439008313612130341976746381147074105498678955806224610324159957255725939525483769686972722372548206627629764289370809002349601982612215434630509561583683039166658017332282743233339903230160339552871907831611593632067312009706824457487266371385788376424427353552439815062477865885233552934675621577058155768047554208830428497922965950738059049761827341141484682423903371046080411693035289937000339768471299276954493091235475070836983823711820325668118952272829803199661735150788523635216144524351567440086778909790975000379516717095967773866276654643260643328958324514088852954991612755152401417911221027700897453860502375704753221160892825572612132661374467631438340538278435799967627431532007212543346739541076780486480929504320292387030896703125002191640062178725160420379428205621394921807595244006298036395117989759117846843130703566093596336007473740918897129677829210350447230243448699095289035020734425679510426971579795423375917586160481882912134809090130256456786863910671901543773085065281361199002741612405005418397079276753141312364914437509538111853316940157833055828068108352194860080789439255564538227767373058986743745721246198969589983798088985898923836181630146282834686160554908987394553437475349978915393280640234794151539057271820167463242331777129966626513242095330512667527631323807641301231170322262294795518721831172756981702250267952397385615270142892596256355581815110893490535916551822384732973391320529678997769105279175333873015746575766388537963503260365659792066963279103700034361757233809952272136775139137611859129550262813694710192750698147361070619459853952220581185700641516884648355148083247090532012553622671729884756960019500921381133053111987532724100933681593125349763387943524626003174389978184278772577345992254652952024727554325956359980981318116062841787851672235756712078900399541300824716762966733308048303784451436299122795055806937483269158488067587039913440409240762296889625841755091895577105605144492555938533986477583348857088153567228034356729107076056941161721865413908559667831033906976636787569108831397656352742283079315689556210921726318329914061458481385370985412851637531394534099591618526027821446304058226206084884399979759806407568412746774379924383869699357205259450801037607274331332773583137615990768852805240246202063062207087297558804265635957538422427334412410348760924127190379071157442351103897360481488225279359992667372817488691971559551302108389755634698577604819294490499382557706133342175003314534833248179877846374845048558484731985963211467384434257249514687905794200385936860058415826344555547864942114771751503609421621011151259875211933630597300070528207002018191017214711030002527372099787622777347683290018015312854427341179934403644713388270785445999574898293941594347620029880690000786603024924449331237652860423425543553483346350190228448623891055528531979616561078689277938704972545170038911089811633636123657521686103473540230470259184531065274775601841524913721283620390973823524336595638638497897493338537775383980054471009449413632792025445722200989507064576243576036450133026342696802882060223193351291228477141793217138671567983269734355856462746182004229535540694545862383851838024529377565163817411490878867898593554286035168960104667825383651697878950757665683515039675168908394003281775490511567522091592744254005389176165453977473103587895829777543514450502357932111177599481485199326157501499395930698928448691228407541236028747704995510624888902377604286149934136506547725748487798666176964631641127637148337564139916513782940301009510181528293885643070827546046668845580219354426962105948402536643350311393284323304986528897515833990689679640486088374775833926316350798541490732528480169414439005205408532191241038784114593740453538000915909301614808116317773441182423060323005638725485610175018111021577806001734000722546822455505307860888685909650256798621089155638560146608945729845933633174854182190858046720928591151620705228941095637830723735865209851380151502555121368309229469677745241888667556101792847561787345580187014801994047779623205989018897106290095958546630325379182623651500975820507439158070661799956418352537910707150243650063973709148653246368132653872179458862506273961445346041745437905734004504151215041170330887365492470833773038332081173943541991342297100404603911254439815396932674633212472680845553958047635432746498855799697357270030118001217342871365703779281049362944023741953754220526130235253679672171029897126771890206517169103509264634157184007198448524010379305899044705284688324373601668136171946977394379143305365933208078915779947447480468855230534889512447921891479562028462286881834999358904332030513677598890391390127795394110364418285276854494537362205368396294017475505620070216793742214497737280630968810800562342824514989286544826057829841429128032528761796947951513944275791496874408788543511387628478652949772734035528945106777772670248527043390528036861223110195894551905057351926394198882822486514118015774419330916927971995425756380493178607347846419299991258571983713418895630635939477804221186153364175317286979732293739077368188982040288113253806094788304067442860649106071141229727534081560525313395509774812760458070908142199850837104635853463312943986180693120086865018585665593025937806845252953243592891378467609438818563089209180759464556037978031473987280424246045624019679739365149073471238581802884490131197031090970514473732826815262478519413212130590198870080215434829692937948505060188309012723503603570860798140806289047307836611600806348822053588962210305645541151871386871815665444947394979633304904594631770384238424847632571614532421972289088777582477607674260490713251722100679383377054766260780495329966852574103527623972427630899580586328510267796914662630970909125342149421656485299798528059800040047402911178015784540536284063461639946728806318862327642389632381001494362720275761590706547001393490099148873237808723674720829362337488305832482754590972986244382607465821662007616439712499262357850418303849688943939414731937314391989282645614755556340855333311445484681525957885506299809416496711467953008061848230091451704133647729497581296173046842480277890584700894765197988372951353590481509341844687509752117465493156933137516377325566484029271869789074556109486522612370714588440604664368717533663588499357652923121909595255811548912019656352360251455922853680307183444434657652844750091637972161962654294394148072464865128736674913479453146502231753401012444787465702035470681094002560879247674834276224510123245911996336939679874554608153856642977188904430251547229232624871181196174903178248339842903221040370787883981322018315367857480471278750684256892012525558922573328491194781811659710715856782019947029029514218388290239703430478403465779311262970774117439312931904401878311410364120671107454340081239619543282221098141595279920111074811978339462811405527924334087435670956925970225261753213279894346954953224968844433899165935687440805876546319421695285474239681878609751636001115217440653816078644982168515345090655141901966884834731664574846876715305035435144221121352526840095761265107877559411910196752051001969661496022667917103156168611219841472519755731961456164581104412500741113677711573421391850402184216249307037431079404746538028575029779729813949076747321362959570472323336478830677821054152430620930421336896521164656275394408038263916347007324261094962535893702760214216023660053331129902011995872527694767846772763445527877544795475945998267812952743216579680314973995730657379394684718927468767764142062232387865749854900838076104727203114318692326507585182550749305146334175352259146285548001320843597292264654189718687194990455478176735851000148026070913483250881757220348188018350430845391060886886648571423314402510670752203769792859938390586446629476577831635561434471176223154162022035336354472526073859014172699907519336171511869061092603388453555689159542128083063814920275645612474165952515808840823102252598812755462598650680309469801372292997478138643064793522840858398609467947115991381697680883498834672567353198987963693617908705198846459833388473579386196970220290628089922956896014699250218405012760479846544822235801097503232928927051166254148557321283385105926396704757030524367773826547371978115225183783195699276773938545437067009098295166398129227918767715591189038029491155393254220019572861792895801770981564711117550158442553286416023975344305966572839323608251187273857760688182641548558830028729092955143347726454351226774723493174140481041338003007821197873504112438173245281562313468039570503461053704037058603586009268373686475948061622190545532507732337010169448528717577263904369477848108353975016389047974969800321461898003826012889313091129803537959430877908935086589072603028141059856927262735027522008081776417599464371400383604380149811298651769944532888429693363179247983395932030222178917489653092561360648123152711092382169789661792733290308385186643477014613012921286831756104708896464441512344824081703993792108538654861522105676174169324916848347165881620492793950798702595742280105408737555128634899860052608145351554340054134976676506339358035392281236058752165991063055091823853083440642024945768040626942147195956080026543793460237181018303942493619590019741913458818779433162102862094485997955651129040701449615062245098856808138688475177254504704991070732143064107866952027627771359887863455221973260068138149399535822926603552284939031014700159110398673414107727219803650560596338770453575066558415326199878921442697391499160399621473279513176863731739351729731227434897703792421765764929741250449779226929911733169547332486561833835271669576867764802485329444295620349562341144930892001351572426311997322789808052800224419482867203166772566598014120650119546906898713952562398433211017301441969961087721845234072261911541932912050882313615208868563706302279330586773141376302740023463576576829686399442949023338411692577879629734490392206702157434907571894333034394481439270267424824791523489340576715837272102355966529760340166940809322285876421314070499531890869908959918445279986826561705461040785702351802810768392449736255004701990597674174123481638434945958899058520161057003071279676660106269627592879884429408300471736832136472658721657080607586477500965005423187397394218220473740393401973167174492678002312176631462354008753484539089457763311218991663687238776364860701907383387007104047077421207682046191969571727794137636915422094834058715978053461599354503962364563601885054661515525190656441474293892346124887806739744998417291530679284744415549590489512221678218503340021699029372807598253177307356061732156225795632999969584227003851295242193476585805690671376575411665943455178160488450962064529938338562658670570559810829287196957581797471734717511049242992198299605620453509680050007237866145999133460690139523457466397907285762162136731966997607789943151151684559256298333587653097641362444860308988079698845199844038862713736194707142226898157497864088293910624883712816448117190790642151283287416849925248568096111333159697546135134614562865429509014623694200790040528379358279699959800528017089578883120123496924854202150680143299619803687329943349751677394882598891387163153067889375857835738282522730016574865847597119368231510852196518668712342953543468325754048522784908736432067878230809489036882676315492764790937861091531419731141041677845880714348593600484010379677529281258093058072612443530331226157486153326182210091432030100069470579570768896680677645337933167568802092696043428283877310816145856401430255310214864884103343997684230018548150276551431236843342228327499967678023647610366872896926719828774420599237984633648327293916883990932148115917102271649249603487609981780119968063803285067440686572770819407188606436688377410227318374133600042606950826715432423691617522920855462332069271632836309787423891093480993231451433743065089138130368512330327201439583010497595512012527239985435596185511922899923691465555909551173723101659463833463470649490016615449206284685051665866397430412376596525463412516033222339277694911528564906821349436311895508792930333290039032081528913048909412580150462951212690132548138481127568880301308185023194574351348587206507861424870402274588260832605662369916850704490784641696924959439422761566761178251263623428162244929625004120040243465175401619701695618268152671116073920115869550230029531734314601481137137314977709361209395932144943086885594735120682403733268057703880238276291458579327349444075156208073747575388786333892859548850742044449164943201941580359142567890605718656986749941584379836828217601349110019067548664125971478909151657437693091772445579949559402170080764671495980827030197025484582023690150830953980045233563336004013812602299125369285995807837357227083450396118992848949408841925508514416835512359194528283629688018557496587557019519441985492132634866871217520099052849157782309516668240756674321676642781344177139415519957336357096655397056666214439552379258353306742273653789026331133781713452867224814585458679333860714488225371194832495182097860825886317871489267173382231521956853620579836538012262511600940723610435154599501520508467175502686186589608502644475628176031424211870030255251844098430167665451576308195660346472611140605179120626668923920679946701149715455199097057938496171493419438815294182593846392815654596423842971733694355543211160887513880876232037262653171679497353830954429539338675233918929650697660916817654880899764248189455206052908652153381412475216018250342373397807297565990313086502446761137336470179291745519061311546333717455426485780436256676588596189180526916824390229406838312372746024524487004061500509668240107691709886076820829218110725346961897356421011317209586841851188639050044876798014043685605987017986110883498657423376039856886007326113795199608267691781905148608242286167034648724362668215008418833150773031538507294889683933938552055605864880714597238177834274697793384278806286253947914842461122397040988708276808066224343146314898729293222782605022454264601756916810578173667794400827430163209030105117838500162194647968131029314305667434302734432047296683814160408780863247426376465824400645460006132604438555130036365204346115329374029142952910013654864463137364749970583260708066804383424243380973565893014784525303283917537400580817203055447376060829595136496259269206063213759347649651293143762987772509473527055808542105371873679126063056001316928093062610562959287043173197387786425410518817719399760451136780604754593478522410439947027570773898642921697524583486578980358571089416279918295776272441797945340264306583225076338696532349988008673304262782553553446487628330268293771074821798038587156433548381900508285876275636290210898647380914079515777539869175888773401982490565466481911361932895229442441684813061102831397770069539002121238549270178682140569704793003258795031889402724317129922448527326147953124652739843809821337543611331776859217065505024745060783583841077141650897889673607763584136671557776851561072096019793635436798285788357545600064160774001415187695631552283182825069029196945972833042153003751937811784117335695371755402796507477008717181970487219588903693736993690412425180834887501281201509445452841095115337269241556299860199101581816826955858620160975217305011825293915817648301569797835776305116964983783340955156202922212552143426550357316507267143425249578747373458676180508693078888747335116448135837607993617204359696875894214026737064447520451107496218864653559905831899880529002533735678012827845172178323124970876011839435784395105894322925787264778984677492139660116995066902629156280969711028947951019681783460483297784185428504422504830041719821817942771327519014023150816531960544480174423292777595646763966420159861591003817982310626919851485453071220181769148735349316670522648061953120172961741486504843816077867413125008275270517543921175718726748840575657213425687114681970283851134436312763333285959214498079921583827901761699828011699665518110673884976727225513819476101901481888622172762128315691996941900117923442792320324034769177287074830748658964412985763831064348195048195843044444487672817490221274910204288674916065383987736858134867622292694306141271394051679417863605015429418856299771758739602628999805298387652324819611031624285463371040985234418675738990665403906441737268757865471500649776529293415569111272159420731546160260384682813357959192277020667315198974294698232375909880478155473586501330869177278996420544650610501836469616872915918978060471437232656191044706754715014148490436838223151749236994783268098619153813623286560360219425389292045657156559967187826718323228362638286369439632093416330547265143379968975104074935029053511406931219289321420937107183311100925323194426039956086545407085992713409522553611079252588828240332769007834841073734583460400122277039653241536684279978021796531797102654291630913560546564357916071300434352457973394369104239973577354392245658175653304407626953679207884217561082071119638271206332131199650899791599479975709248213375355994605667701760009468701911813166632327110030126390679129801761879748474548850313607013282123597623654569024022035837385887132601373280761913452716748694751757222984100645319265435106124234029294663673522856972230169467404754263819342369827218352092961681582523868053556438291922665561680833366225497059363858413895529172590372571671555611227699519828367267874652628369878912897461484811480705932787727364658375127052675014689694904148627232105393779373444493236186134047882941294684939273244423335370058093128059478872046064549973892221042038774103654736102460264230582596541476498548735827675259616642779539389041126816850957671374570108466159350068164655309887404727435605849628604462164513997844149690162142329902894010830052271049809494879404757200980322865540678765903962060744559433971678236595666515825667318800819950216577652723545390391227238080523761837654742362402544072414944083683629013641095534900710428812951024598728581293513465775732431898003140874714247396012542722367457753467562320670876511978078816144372190626245810793438551746523759537094662243276815493070779317516338286620473838049661413931865401980106520434348894862497664378443729166883610877086404150164816291886578910631984896477660906826464860843190918570627056938339931699964142649314443319320219718581061296807289730555374608477608770449958680975560746159353705380863802768498800554593221171670353770081263309035890824192253736151312247903503041092540722226702089067305747272664156624571446389323310149691293456189340067210327093077840324500660439268691807057765743873270434659027953658724413184866820026004696838849635338648690240435173981099000887173739224677583029257746950080487604977279882928330832873034135070012488642176648295106124935860105816170284633276740902685630146630922581772371756047753581189306565025636234383274677704401539152529905626243215748791627369638353931125648345981828595238912264205250910005087172838830292401451576544195092545538732584014767596334534520965157639281344292551044131060710898865598108470448795584667383047633623727137792087079024471664475671281643558267067224281794425866601598771130623561061503519009223663693462316928081612167312534885862258087893648580249348231745965584483072587034481241469353161664053569105874181524117694516642342696773680524834289324796111897666556534250398517868529075713381059853857607738879486089165497859959231629655487803114405940998257086510665835900238013698230275418868170532715759675403915210084468982020159803380065240984268883876232297412266041090994569404771487258022088451616717191200569528439746120935447456953911355663441416682619020341189186507898272188777672386312848765190207995547845883294434378206908516880341424610525127178683892758072489884284699660419624644696589282112298339036654346730681705029535425158095711794760409267988558454323046545077181686116267672486149915217244381225934670898440615357469194565466865872387364862646748279670993253598716341772289468906065241793210570362820123617913216661817771326574621971893380181038820383941199451531879986443659010944167814105138881192872966820201722719609401826952917789053464686537824887572004582546983984335837548986275185046403010496964669620801314861185161174387742077970146808250570157174927473302451929042341976512802739295379163755053510319588326973734883614421876674601473841130349871175712748294035759110410526392597771813710655807307092547260662476171790099564100266033856060660818732937658308563744922754908678910855562021430876361386673758392850197219942840649814647501638361231304143576283792063133420051134133996532366026528172879573273628700997166742794302350396838408888060474910369700857405302770493735640809148330502665554273848748175057365968572033382532595795996754178937586839780284310078035350352739097247686562725765316565571368088196664586599054649711077201643172278381239522165263346517880990667649512568968226378939604519689125994494777744352099541701150246644042820141357685587805723869756391265812145004386796264427953446475427553847837821521192564378548839014672762721464393538156833328926558338620907047689113726134699934964715512447215088153533318936847261051206236164733539210016240648722353860594994340555150036130593752588577074368367463282737050424800456314369316470812400154949933729793978928385903675584877510002910682339746293115861365478991470093082643044755945555982235052892468063602306826757431058559076531996617444216625646229532441319733570750232781504737435294889553147203923199778336529294437608645063468512397123080695350434770663403396061524404759672527365733854896022267860440340142400520263569696127726048277651829063237510072740627992333852775202139479912056544317114420429429493581483952173201812911623419142081559777376900604136200267447110547558313018362654782547613723041388503678780265583531132648678597864105659102186067837957934907111450832681791916811843617916811220381980078456804685025934905768866648313165435133548035045419174148810900015133623359738970399902118203265714878319594342491296093803064142449501516216469156862983382395680550381964279759449618610752160645055659221321036437216018663471192734631045055960177236268145582318287552348674162435613893347549762976652958167297942281965420738829892499007265790438864103897456933770372562775045956695928529648772046169406530814907245111206665558760223685122500103598611501183667855221701050871262399184137920869375299759170576027091118425173354749518314488786708640799414556279468356488940996536162491350653920484339163987378083399360023309861908932890722364018838777573270607551614667061864021513188028710483975782236755347608950575846505457728606840678549953712738611403621886595210051760189569630159330694097996090300934177716342901639529651024619181417344596586533209668433461613952247457366863061293487276546260522094958452036072436299373559342620114258778254340453591297928782281421096014646381771180041579352843985276643008765506485230069902572918351258530939387392778367973628272176647177624779508545151521575786240200447258334689246756476241621748037311206055172152874022836634138806444864447812472015092016379849251699918334518044278953641219732911751642436842885549297219672027589211361555315147874987173533605152836722016794851665717637726727871970249799018895764506866440259005691446479395788059607885501963261304998117279445324607625374837162714066539398369595745311901345261856434381069167552234295691437770103030336917938661780044021963863596923463813936213751516232050581927636981316052262223776647475841481551749967153513828888407557127152156345566753347176039350284139262509161434948469836742597643404775537160993680754170386913771744549368997595905468610351802229047959796807772613491975454340278063919834794725216578251467432888574351716441972063174049218687082118041798907008004889949834671865188576678921221808886768017950185928602053411725905202356901790078408475742734512456373838061487936579369282313777107223006583723288926467791157846194090731671988728867201807508718589578822626185559383746803785552341830806999169716416652845272158434598694487154527517781136023300848356252038693385004284179160216222608809612112211782252160977600630345960759902525618950756621590963628967530014051119272377073528708113412953670620590361740858341202931046845379262545738615527898476501813014379709454559365786807914404047315243950968489664502681121352798820470580357567231563539636992039076804027516395306166756225019014995862522749573386445051292496756713147624913483284534907036941008887280911236859701505436698732473675522356242730556894684175257588617904818118779288090684341626369185688303552429477882475443188993362076109273499031414151432786172999627307455859760113534356688818731552707102746944201222710854725748099140790469693353231423860627649455963828422721787457244136208421556692125261878726637348457203226329459829077444706931681765081141928967116350498668103947446085469237375566577639293895247050767357191423453393706678663903821730379534353155068292652727152107958700159141103694773934652039548947843156228257268813606942456140279351943652254008381493586113339393993929142628747548261428848631631401890725801713869105538295141462573071916450298214406067476362801093129760493230907933187920610726034666755269195059520984093712074796359581709070458578903517413334758676620681915047597300047957049824098640471776493509861232416413933624564426556689245853516119450818310724542052269224898245055511483419464385745517563308231765798450116865905700259659384071487528853081210817416129590734370695786168399194007875925389469105081574431438235178814415104828149705697488634996209473749248140890717799332193060043378355038254398027489223932976191719144069768233411260952132249477408548989666171982078186894011617054265180212155319053374067858266642936613614551518079096318052454517568855658210669449156650771140320465868082273898752901260813027558229106417425688155932255160364530791689159313946339633662439337967507568549760339363944438644871272416669229975043258777423963642487654031354651222251361509606855024478627568162513114848976540088198013708785415876903758246896125466268759005078859504656586897822596635885598275000607825517849813424356134003812756110653623482870339684070680780302631114503769199339893681124636304895835954506957989894406189632597907625548528692125113048041209760944934025089611955916711067062024682889008884214005082976269914585789766138434086163962951445889770469734704945349567116734364250311683106388743922277659409209332647236061541219307689464970077361376656879670188622536596655451684928253159840064883367307410681997710601645646571643151899067373799908213641556344236980466008588118211737231965470126840733916594828429800289602999569386160008561228095044883989859052369769373418836653300715336501319777809341603441018775328174878853128608284680550566547206404982749788550077738372420291592335017533107025848006790952719364341380981225376714679837995204568034214797669948048360714596869980920474251202845097661471399883228301584613211850593667391640264554294577067855197055673905652383239582745894876720407430124767531018525118176717858826666760127462178903412176799766035963367588676438606249841600040819258770491186173404072504799700342353686779725741090129861166561095819221763217703763788128185540382574587757501298397644038332917645977286387445703311536108174936797703679620088650511390512226300563657296476329547486310913932828493450395026309512625890544342540318024145183395417879621239343214359880436059415177395621485994067156991115464376474416104605262610426443193339218434762249446971116432055676615197299857093253589012133801939983603713052229833677691532811386355471155439005291482684271030564848135067977528410134890325855585690598229780669427754196590689957391972143071864215111087660451724615586896302504432453455671818013432529819585246164773803310239153236338755187173040498034069409036716527273536590603298869039275814781316933862755924189914032765714716216755564227253701242438272641541679318191798235288527306363563950546319847334760226148053250395675869406743315618072677194975492514128428105276054672490376576767315494035444614385171592157944114561613866671188242686128553716546284587271691665849475747165115356165699100330594592932965588166359220741379482937547711656056889235869008116022765859288879628739158484090132437061377041011278344932389361177629424534787513293680311888128545787434156313320629619014038193059608201523467106457620956210008362386977891817686277846766938095298748791724244204317581294469333582663763065720639543594218569078787143547720986774662022557550173416297353196704166847378872002291499540139481570698540920222276130829348376951329692132227643216637001351891322611709985220515776695479348885158611452972983565888759662313458890525150809851374424726876583724281728847321225787634107949183332877092707112071410718756814169378298466636557013551917585706785059092293650034670231533244269876094387333308551789005364956163431837551432685877030117871716438118379535123412688446465016758684610426669966867776204224467803696841072479265559291547062776469026165047395753333901281406548893315253417284453846294992277323165838274566047388932408979103141916532056381821482477832962885541416045420489296376970651398567247755279985129379600415289329423064236859444308465424080726495002948902487377315890773941605857603745061609509042794146831746331843077399340728538763833914994489776148539566619857515290763746039758426958888607992069182071926530152789800240155116518553382714762957625424763901153502518457617725781201882402695217894975213441304508485439704641794023053165718004806133337294294539701288964935448996064414094676543648980265018735066327002886092758322487763628635795199536180050779202151064612038996690209147232461049260982061386668114854876449919320613528012016377218215100320661116171205318010882004330657707382647073697935071601599985740721939417470368500392495148278264601320830216997923200845295860772831652617746095460101828883175083316021385701248518699405772430736905248499887015550423046090661486382305536646131885142630277261223581610322927892556649030761311899342027273536232547654376181358431505480168334115889137590437448564629940925557098886870399971641212965436691927928906076155526107287878044699130445937447238891269463509534270318607333262349775269755800844080527551691794711766304609391352268964047113338542019409125676655729420865765480277082065604950146653155697453834997208214078012229153745952492491642784541011644373722150275677025618636835778686314361178058307773497927722740032967899993337833549815173193293459081472091406104589119815080378557187066148158929753144090902123249568871174403876239491033822688192637639571267942906717389119621901912101827419800344450726797610569867058122609740464930082045955133507624781020391326842308292168074808050550107792518750078384085545349148533084365480630148340626099543214848910298777579191230659357763099072566225787461602645137270455474074001097114165766050878413996865511535923687759542566490524741240506514434879603519947039044458417923242348899887193318928172866503384363613289229815645338446802813980209837765640048567659692689030244158998998014558546688966124450905635875723997589239219874753450828368781060850697915742527155531069868301315479421684281655877239738248507618938511683615569795713053365803679792005405768066597549405882342744475721541745257091350943666096744959939300703067541773772465547465488863756798193433408408350089993251844828518430887910082991942068468878367513456881735836451061423990131004154897373529178499711922168248103090515703971390987314026598402000266878449961422253222906966640763148024957141033798778919154519358928729344893706209857385895276255214630050483480496279751111786413124642570435400153589276034276874729312894148950732126074555980976232802619438828480092011199054160953636093439999923875716649498590894515903372605070038468720326931225972435855685859809439139746240318998768352335714388999834906077385849997549442790337284628971892732015330031320600498722329731828290320449410656549553904405907778813264998192916257715229358106072495302731941747126850688251136187367925288365063573829346496628245575828201177681035390792100417464538104620704943194740758352273297854351589206218506272357485281869522990025349962512686012401469789566490462217325002211834048260264809281800736367368309095222851971674390060198371057979470440522810457433918550419626798072560056192326182292032827827212252885531656282351357019215082213523981751866842471274419861336145879862547439897432485971279391735594084386419591760305092226780807112536936444317214483003480389030254960747355564024371403694104115079619077655460104763278656025539690629308823987756627273213469268794912656246326152830562389270946629951491864133874479808412692953588004127590457663122033672157431605869516220597023954917989497208181182531803078527865511153084370505399487357732197637604461450182468359738980831879374294682993812762321390778184163273229919754544288755334731850832062918456137120001038577629339680086648351129185880884254827834910869733148916034857588384474169215676268899470064835021531056711021615536705343238636975930550315111173099197277103221427092146256448342055479062069741235933558086420714877133468157544034530669770668750818362669574592441908980954135745523958126214468188165397085180158544809556206215320404467828192769542528074761755676069057841125348914504805319442669670813503424439187717226241716312036951893585971052255217768112696098670681318258389700862450585941223709664173713498349384105489629239428265829601901648137697186953999966741078919862521229845518686186985079280647202506834309952045341314197529352773973072245536341938820040496066441683225901400316332361046793340933815372759972688841386741116434701257695061052203531462399177255266482824071941582340725917288619006331831016500274217610511608821563160995181384629740243800353597736021753891026884187780740493621394581030029682181510758825512307503627495736070815484837180105068039979955040391188248519787870581585408754804047486569347679046777453464504487582914184531419322822928238917342723168912630084676690785376343000929570191635340017403196632061044943705498301029278669716029233096788823854874034556662006474422787887327265078468674418499659626017067859393968032798895696433914154552307486515039932065922750628477510971248634632742422436210482207854326673031986749643020092899831129465321993133372884642153681457276648659483337392443509281486091933568480063695761884177810785044354048640118000958354648939026139665773711308834758255661597847894844573891225009189551747894008903762223165558600214865023605066492609186290718454905800222325194191521108379654203396734027376498542108094233834305437295584725232091921089099267004461966218969061831678059291730021345621774487465378756053210727030964911951416719990025265468480636656770500537810349630785841366894769585363578853472974348120076478844849958605583190641600088600036317924054962044472677213636003809678453513865958110886924567340000356742044469777309551179066760511112398972534878699684305042332352940534811622082655095670235592108157882785311216875092182884147691088790974015231637872135652123019136521300326633551049274986050500837788624067404973567050432216358787288292982787519176100668579884761055049511612412365972290971026737140756251668975535390029887949001311114892288398935642226729278908089630982981961813416086800330705767994928813291099119438375887323458038851779454886834058968503836670843659013211429728491132973791629044022645178882719334049126283306225020220073178226315740584838113727311277714457146187078286631356617541133715609303627292100933514558402377706275386008484969397172605108856943013758953809028634758220288357648107001428469520893798660428747056678854774232500321461148458715954887816803140595442509152996537217333248947281999155521040596159116596761436791942685812527164426317792865074146068083654988295201650906330947692878165582097421437531593152371942969494979784940719891719466621503676233774168488665497667051159205192163463491191402751608821628776470020441340312815626121667988813368362147765772836324040077568269530791763184195138406815957834125811179737471092557966573128511786752923517345148335425419417931169069938141593831862693219055957413187755539486779438824357577113563129738138407915038807124792582021141444522421267166735620582477355039846996448298172484421991544550814394637717191968256771569995171697309483610731347428771269660999567326064506672656030290592910380544456384225759806190778685513771435135952562887246986082223843510061003125783185841284624065574648632776868380561539215256369786277175124432211106259629040542747332138097599504389094113901989443167359553186375071896894348132939573881045936077269647857460123020811646453488924150306342601224273290636976374132311886049290809875403909275252418687170295635888447591215347290118570353752520714185946745964318633050424168498633365519522330074672522985818336655219191902732044326707989182357931366675913032786798730457195189784956997732183468554458124846367327293046290823141986984479066292419413001450149572338813094411753007382765479776590065837689004354264440088388259468483599927402606900283231731455238140920247771642087068866934022798433140978133697781243522483576278143481393446199670218827303834169998893018924653262822778159361056358442772220944248453215773183285887791848396516664829465277534306370188264182062031134096436071655063779204901978292155391740813872665463281128774366351352882929903919343719611073541510855623860726808827116222275198753836631307545447300037275735712455626776513639209797894856821556884008661622172171124300500068505941884598688196209498338165227416897613797823195210062933500824136216316087125535289849282221843715346708724664463527006360724699240188990920909758190404221928296542077999398749552632067791585352506177502999736625461394932724862638094378170026275043205342694300649591726429922322008345200852103045835499969357941083009043534616381829867970106530109332601224563173290013099394826222531511207351145886309401897903244362187220842508094044491421795476420944673978010055680768830430222172486373576050840991735978397795384360533320012868756795991785158211805395346066360997072447293378867244628251982203010636372981489965485656553850345320747524226791043485813636452607104683208531352202883715843006876199113208828477099743092095349946752070245430708892285626142826525410384175436733848325083860591594501630383887146398578197436664309289926219124338816368534419587945116754959967531737924482732963193004274932958747900866048041898382399305173816550909652359413313785215247632881646156919153946601095693662333770562018084311108399573938759987498365563775280187462827472882351791775981021125547696957625180345691505247643214784042440801899352205944591474594703138659464469681826510231284288063736913732167378541810198722415479191629949003670755094011480230702436378485240308288204715043569696081398315949160116530201370470654213263270774640204636368577283398729023307252189060667287238839103359211628565324611004704892840375917051816505389588069592992657143897495410458007342280551275839184019956829136293133201402244487709036499600122926104228169081806672326849374625295091286029077747017311335924193450725640004509675429880879611337105096859567150561485473994608663296770108789901476579169875443405701484693162667006325261374257701682540099728014384714712692935193642813476759866788970735316296382676492672168100499459052064473096185804125305463494706631847504193784078063503118359840477603406842861752245752686535112296757599251738365727014922155554511457282576089369628416546990847833447818085678558901103357291835728694669271191924242671377641289581309632855721341329993401432563990717688078735826881774837402159420916217031793227897555149176310370583249212547069588350412946940037368977266741674861652743191895593388253592924226600707774894354512422227205760390732276811580731224144684677611378396186273444814237620454485574446912411400472195427342699833280376649918190647108700220951921194822005455698212416272829909497075370747138534203107733936402806952725709640970477683677756183121346858705070485211971345048312514791881011041063590053806893607998217260382562525046445002093048473989763860380055033931399870479754558788612116122272242896368773268508050245083480951933906348742806121343924587458171652114823779293708628409295759581959333002167159117670073296200397519089020914066338725355135430320867942567799437745946908033687990948453029172090240453967693208553209064688489845083896170442754149361939990242235300066834025534296570783331568833074257920079177355867155700954764820523139169115957719021277229555160070500224862488149809130110219914718563471033553698421772523510292752573375476079786344186773086397346514623969909041111015004915238595383718209904417431182355904594867070939437860589624748675875277174947723013235830007287015368021828761759778850545479888458255685320623459196719140158769671060967701795664212352954023594058435354624567156690398232727975555584970769091610208458540705417420764503443473422873339405488632810248451547029324915877527815433923122494951921687622308688470918321102524215039282536519691208757762766749296403501301210172095578660827942496291621092577640250503145889411686810220455946212360737592956659025087263638331094415786338311964329966478885432579363385472342399171951221138300815973325613579543787302029205333624062650348193166531517783808472426828626882705571658744598638883374649995804434297000466192140060691375986354022398542079474863470637941085040422011031179288294263724209472022420223242935662720754266866554945635608939240038279113370000493764975555820851231458114169121782804193793320356804794665913665177171858315962362015815218721328058020532942442271831939839860691703340420120443064305590868535775942651310461164247059698843702993215982280229201887437615199778249411739078576864761925706585491033329167380796293590024538658812428170248732140959883198124599852580759530186758266235310537813345938185145420987816807427931345817667754832527256319212482390901170878408426942838355100527078374121568435458885114020148668558938374897316092891337821797634143221212639973748254604273084180622645075158962668703854273643532390340175291099982059059198787149976564211444439417112405292688684997798099637100686412919951206914947073905777269571191142781595203565581184741404035296735863059670228008397588967043564669549839949713885738157436719880143149935957897363775761822458873721267992320353925951081010899360022210532275522001382649020432208121462605444727091994369877013109788080145167216628503904925507721531810475012364007345174247961400721090011881047916385161420095096134409585963626725946737632233333945883797776565970833071216356887929381072327540208422509137492098370425770230201249896317595584585737019745756624268615201604903284100157305799195540199188783601685025264800776600707949225255566541360580238614214406304794067623629965624466574570601220518491015667361501579253316907016504328589709116968088598681733614624809160294521310316820872953151193653000678143611122496082544131528394855520119567485777427428913230864866628554257165366516269801965844712662322711260937300464938484961825281148286545264981370416639798175252788348307606102323526140477760513746531096651436530073819713048796953197360735767331013910074748476259866775988926926276645036809277755458276862166267756550217812603913349110297549470159200026801167063870831290639283777215494400665528848050871660893406758040153997104547522988052532053653390241770833554448011230407252962127471367774171869021383692331855964681999853702535452830584364820714972301609848647940679306944139291294486131466858074834260004582171218425741235894812477942928219803668903000743506703430201330536091990696928032813413929271543351798281111170754569782610479481320214671221713686888273504348402751589101097734374211924676020900329481734672234065518826772433509230303125655045365263344439883656850123885863195135341447856341596386299077280509124725343343409196566250472444899135287908005148561322348256164573343001072416317641164888793002590330876921697972843395166321414963341501929915340787389638809223816633223813413929659710931382371144484619427622695540394929690082216775076031908856355653475014743029370771035183005883493419359352173011571148578003238485719980747452517672748937160557422983083271100717609898357594880860707481435669943482027776614608321559596569243121553056399644739188516230264874938951198204546789833070322570307350040609805890343712939924075372859464991949127187850321370996771557314622355266937892984226488258335702200337786654123895210297703688777656072106766457252488837638352902437702944423706776130588259473815255523377680397808343050207272382073118323488160724217584085315334627237518263142022379915584062450389012896160912168102411119259925837783587564458820901794238813337417241977972666621931042084077231361647210773772280645405024380457698073472629707038986870273403939567626735895131486068645627805397679575561393619092002756155384894554849574005189458186670188909569257315048629631836542528728408669770576594916108826103561509387167838693122100490069738922414853193996342821350499153583767505361148771205362249692124405581193762317275351564082369903366667112992711494036730775044642510598553090873308236716186562178632084730105520950569004348445593605116529618709006757038582546335694696306153613074146495101991625005781219808982522289042627958353053518845450535963136671601202282875590246301919650007368982284579136473374691139435224554474038004799613276366619154143830248323895014887756958952069844633381184786316689277758477002789398263841299630744702791843937204362496989921482401132581983298845178326980394218230865875400316288220712967727422152273224421008468428880978397148592304543457098348299197243729956545183569795158527107785884245343225864601884157838392426340811990600979409559186899917243921550508624685062184435514480530752453078102186652119635194771531377649101825804365514329336927918109231302667213549263231319225737774116572471445987012774502987622488585832457889016925345436615648838761294373275925327194491644420862913489517272363107020861125617332030031475076191506806345438934297858899766713152959095163678667145882945337219964347319925910863718778469376364668603602949342515749297747450513890416071391871614666986500727292130952039919589259531435556024693698044002632277173686720065471050229673826978301062138481223030030422247785831938312767724760262366915806756476396555977567179413218803279808442065130228170100313718757817677793557099488508912684805726509747639177178773158486332662775071427770944615560510669003989781294624783407811957661797974132881514953759351033136275626095683118732092713971502408349814400146799455567507194947740360966138248147338216531710015279147437510119832935085047365831325607329678997864463939650729138167406078806153260119691648525005482206210483536506426666646919943375501221135516791958303637609912356210686448747468784957988751656787294702509271556072986492427700096504816624780545191832355259598297409926239228045324277710114156887055676957731378301457898339954632223398904401469930205496712169110484677045857863554088599902727922446682977982036196577010678451085444179577273693709138698537624257140290345879588354810386010906007539338745618663555880548824772579711980123564639889867384944108718704650668660459188893403861590817428544874235030778462486761355111847395182616546746082653051992359919532380519865343444485278262363628793764790825447582457930331018954576638673711253506782570906158387769976911846236360354280006892237807096936906276325927450199172069743923192154937638155240256025181732582299346072284929124347528714669593440795943619229177537672338530486259491685936580002784002658889207608724152672114906581504162214372839023270148320918330982151654051748727248492236422599018916854907696001396427782025899652884648544243131625106710503424263646093232930712587290814877593538660224745941956943725523024550054643507964007445722809122848219935521028063897867945259903416528912824172144584161040115406881077654601067002745567482426911514447304190865592883198065632316912550263752244022479980388338445052137944330920966119232402810231145817388755747338508640110193694752408243790671368598116825622718418715811585039627435541827459217403470599401499456823691195168597879210899758393179949975039435032147492860073948069030552527741499892942705892325089676937177024234574354945849530145367605728616015749217537537961241530572829512616508703673341916587304181439890001454664606654497371808184994425615530539477487626135005379026385236396876526848222337769338540043659739371916656733565685375389432063723228372880514560898342306643440734401886411208933143095584712258039816543640648086321916851187873338894847867841531650223765711530219177150247358294142254342774757335069126945677677534479538652810397880831427890131011671239759184014321796451413741133527786177907962805245935790267425202866486219453191316608314622887946450745970624822550600184819925790160741328034411125868719135152373077391248182420194571147131231158104038899846955722731075273746596652032800074943981637212523717103964187545841523154245839900468268221793350563836909248324071055125174515898245659949509828316432232446143793990256910884325945901114665470119564404925572705893496809145961093616592226263943346004182827958811815049344026332170147232734353855888755798522612669869213770106513270705121945859122446793990129808290325447001805074468501211450125475174997962136665536980225771253098426354892742117358071705016775468843447404939755842027496987497041720094162774225936556130513863100722178045127436725760821880223918125741763542249911721900425797077267145445317453490166597370827470388610402384043104296215514573514635444803648173228862708151196347396753150584448255524974074603569370450543529840135257801673806218639156680900962482383704008631925792294273537567175068960175826371580377748077552686946200997745957696060003392835231160064316800705195951396956454856037201619554259668373860289818705684261083893015862519281049846126759264584863987773601894933992830518559481931801724981652382580659864273120916069275115284640605191341997305600494185114548132659671157250947465210168856330337890200910381392071329205658169534951264600474492665148497159831061554557700998331705282716527548151234083685857418624738186046266782559838809574341893944035888551629530517088907740711897131850787660575240159723465104492722419959603608425022143059277671118974257044833423456679576063384608090016999611175612531857592305312615554317737350364631196948690098736309191201067398848427100405751512561430446122031583392163102495531236257762563016223186223204341649123261258453102147537128614152482370465777569250279040815299631442074488150521688254694678405596673508322017228492397126188833908906092528382524650687936893449546409442472379605415456837184065241899715638275333334144726059266088885506551541446528170018109838655186565698419102717851398166396615968884895317927720410656518594821903098160899129394603017352569365690920265710926653747205223554008549712860584014013292532414963427845339887082525994559934431360300549422423008917255442192894490220006825772802315714773632138656230746240928353798362481922822958364075188102916695743334879714904517729529317029588462182773535255333257667246316419737306107328804585180006773071144609537146368359115428287761142523624368019728027212446326706331604300066450327402233427367546299787805374079474596229188437715799127562548264155687637600212565696035202905227201391915452710509766683043580212283933024977855330693347441002718358776447034775723321791736016676014197035985676843933591624842162051629132733718167452482276587194104647734494299036134401097231945386688137126592047717511725420206039429008221204941703141956737048791989158545918513931673290435838904357658506519426059884920097103141247017091651786582148601064655180719486408818267326978907402471073725095584252987808859459797701452732794000667696369811198781217340518092283426849205725386457499999500148054017226937583471821701304539405399646628451732736522864389549872731765427432709567291791118692244263992554173394771491932705322446437556382152380121580845550864985836419281292190233270166224340766349281617457614791190271491919415981269210465143684854112500845250533413557245735318943236845358232709129554378096031257110822316185706626459669159976710136783271995883092666079671602832545835969433735884501956352851235528308012009353127322471120685030614845412645567345782418099821851735820760328375539904183321623773791151191090468366534913297321947189993862470241392067834617620935735264845904656243271781873359328389240276271984299841931550305313848517177490917097131457827039069218137365102298460356398462138247070782650263774807210127963660464734829683695883461958534479034894416061332981168844529404653091507014981602109711497924953437828002210881999529133486833724866749728560708856256347123328942271800206630577232545947728910257060696318537429023830035860172041371492199315192487317494261401142095431397820320500439662325135574977004901907196507266328390764824980045843386442873403361354449561046765534484707296810478650020300393924630711936532270631665141472900638215608874408044783758201481277917253033142829370111614042911941324252733464331078786799543358425383974336052338081940060006298528910287472786653785075734808116543247938184565147329290791469247390694670118834972366636606007944427798561317400417359696670907883111935932513726528898536704833952714109251723694259207793979149683196994746479516348691039766116831634176363904023398347449965751999861897609108419957683703706626675791135414831796406619431884348180497524019105402348644190465176242748157617757971703652308762233253224722782063966899993826806073295726622196060402609099641787815116487960235381715230149424323461541471666251225176214227304598517579239895717535895809403646781181076103087580334076754851343548946248422058748244197825457746137082820080183656529786928147207915859651675776044236362297016382987371621138531642566124447703571491515650640979745467442727784329494565881461253117894749134287541394425039423889716696743758335418764672847980930722213623437517583209379131269275169423539423863195853805386451120425250968446096980012266587267258941549765110368973318913437401655285126507548123317557751436515517219579342641047446174328136683702123495307399667682748501875756600220946484781021291114394849313906838792904630993999178105393715694554152957896254423056632568455974244557540066116809276792301666921507502031580429937040158442127176570692064576388997756073120337879407937403813396166952645677462664091097905727129305997120329360629399010801274864505380695978972317527429562665745536239196721574993775733450737762901876048672266222863319988600064253889670550182561667566312819487962820014372351410857913731056737425514800239186707667524481322510857285608638213595459874129463368219525197138291164901621056257893039520705900009619490716912074036073291603061802740512032039124972604065070357930685439059231091968863433053104300189563773623086163043198796474080483367106509804880603089737508159686680331086302617723378866457258396023356630598942854216624969276455658821928351482449124944662108059131340195687551476070226660982847657988510152386512109692301921471435183811242405285552283174995579488926972011328773571253341773187833625458308844231072789096650164554359220727042250381447740373164555228471445472269163958438210893913310440014344835632587235509354170999300559564679365026108852290252825268628006594885115141847512029111573211728985596335182564163712885645653329554150755882085017286863150072623321875290957129223281225347877980395746192835160507030827967166472936568058480771325952112491308334401209157774265462448144489053556029466557121484687021772816430117924420386430897960443516961531525594617950132758671812871937355932044440326881230837591772085658234570842363688563316341183394516995751541663139099386047006981676602059541059968815950917518775124281352604674243622203021767866579523886024205482696883160769533042426595484502953064003956752814967002651380516112109274407915911497608305048813026714459812903405244900221144372989943703608474579132691799147836568775529292602028845292488953769026096640959789311189366328303599529942215877505195775438768748647260487964615116777162909553553721656184311557363246285662881529758226119826612638955019056279721035057680012909933846824117787767411889302908820912295996385702946098921949505707278760454220390869598487432241781440484251640322752846252909334122840986487113446982077921712040744658349319616800218732486826304426947333739033296347841260371469266650105176244502854629897068833361004221297926090542540236789430597340118156690617820160769598983561458976471596371258290034404701946093587637982535071884668211180414685510629997795413017074855536832715634903053042547426048445016520006751630667775679168298239378571873868183255431610544288672281458019997324436309951993973537514743638704652251364119125243939031899108775540655903800038247937146760549306024394901649218677763030914730223429592776474138669128393858482078326289268785176718974547511305643270332040821402489405267757728978544007195103249890961311705748972037760693906376736352852598441148780515119597403097594042602969522110401879071428694585970629546496443857899032020642751832815044673717038126353415658021342207165926536162412312439330312771917451864191301002343747415961507557372259113179883506629633397283248344919026599996223555155254383653719951697643223693925890664349993105360555073671839616616213670768220517540040644917461786690731164993405225804043190351391929847963051296371528554946848965001817576523683733861745401624897158743767620960029851306457318104107182466663295148230031375544789261861711182882592298007541779073645262325448380216212389490162474527369704797277083122228468318440404291035910338209728943604770285814975159114715451516070960237616405150083783530345221429296056033045621229266217811684837966927184029764721144609919269977299045537130962116797097633659260524189095314051075380650647322585520024460988364469357370310482357493345379354415658061653000440725483405952082080396996222526306605891372120933395924792068495300031136163933030984647529528455624153234647229492263391640572715725291475425567971704331224129330086400920607199787602720206131525367792830909702417758507823577898059383836600932783718325775545715203928936372046877660550463983407111377349906998773743495106177289763232206132680266524232029790184940734759161273867423967126627545012169087282567660967532114330346461793454403101064161104847141541594196857035669815171521408009067411486687077019302192922878229360698800568152988090869273643772013282600239456056471099190292277410130420647100903752418039880719644036927162098278019561856198665069877914036224755904865820077659646126696567756191095366922518052091863854415416319546002408019110654010453563865479474643770326529781089304422169030764702787140895331714085522335540385328127752960646495285881798301628083399854863623961027110754943850172152529646558246126313126487475727419687382354705163835589314026098307790194550261346372526530430212654611413258806390632379890609022761765328166901667898937408834597405657221420925061818798883372094734310041433512251989980731349321882410014042560121275867628046419106127299660696679940244357872292439176421791437287541443215347311069752066157911063199843105661592473469077725184843899391594127790973051990628073860781712576300136013241115128924493912918724969225073799084608353327982590831036330771599344656194645499795304168550207367414412384107118881175713110977742837884667640131056322654857139109366077577340045514411322421292549796014890694051412072714549436716469707633799023226323670463846235559930155101703546231667173311950519321752175599189492731180355974590269239222286821178353756183351983227211686714864085822566396997751763186364679192048155254800596600696889183576417743509091010132638948137644212782620473416633366138834184248941024864483630187611889787166335055976235689239166838261509004465828408821016737810542897215781686083974397600269834121931057609491564080585403378046838981339198875839181357792742265349417801248471083695774381778413145934418999654016659135259886302443538086983495681291424663099842380733205895271073937550270398046697568276084736104096958350998736526575645476696135889311026458705693970024036153602269769785472493667903169491489675632570792350546642614515989632379090572321183650688370951771913594713171028775057914756153858932922172503809364907893622823714746897320636654025950543648541498065243367126935035646232745124432873462075857777705208681133762734037439799889079330448151697195527288850433214592267197759675308894703154936162923052037532080627808033338528425959004497128451277331863974355280162201008328819525269427842625477297563964530870363939736904794752460737967656240206854913730014374204230053958246497427099813522852556162601536905572422559679872290825094842292418805311505487167933748309329605060267262768958124590800044339863620467656095534104551802404739584629472784840946588700267803896320174079680206482655068981829223112142287320610329682049999612866058643918524254430454789366347062975544910587393705468109944932871190151708018594596000052931951585479091500458101067536482871132782867579130881802452934771728515099425085961045807211914209885413766525882142475438301337019714808380278636629117562201719526045415389504730496190108115089734984142799258514471928280723221391147430997356519595777737271291344673485090699108256372332226138357483147595452012091257097657266543097604590050652047555153572304198648383619289574834575042993298850620293679653068269742349908777178096674479542657802312870919943481970618172454367058960611198286287225335925322047238275646820688011647184555751249631931845992797286559965210439554204877001910092904155169999523422182508296827149808034633035510488862266421651948794186873052472748560879160840752568946803090744396601548420599799680862424809792644490608423998632557190549162718154287808668739851729074613921458938233854598778045803143147108887354847348010714862701915668501307377949745191769327691706011532570426876211048084320721012723744910355805786639952697930376838305768385449407772980163407616205537597793975938199957781765790606835678454672022134888189507356921452682818266540108378124348928187405548984694041552834295501169858023716702852412946912068838556391511263258810921673659874867056345835663598874896918443690287851966925693161571234968127547306684211692884656559299290753114866167850517779111938588578048795688194193848469336485737068955691683179649271927692487901945071504480255599835962120351845608085433458051248330788542253574848846072467468043832197596775630945192168426761661776246673360875272384844546829512989723286427731188924279027396093532999421476654987648857483681580498141408430988573288481052077312911637867589151173121264196677089907689875340002169436319570615275088982533248811545167466233012936449575739834054455581733826984347642460690377827877206722288898759738078642267027952387025067366356953439167647225807349086406959586672396425842458497201478842937216176214365152600455987794356215992081658284830248969925803051085355508526945293228007390410633575703952375963738333324089119985878714991268652101233664281649119062921309415140427097481755414060019497333583380350133975820253686220178217427777454094590331502090649331716761172876441264486487426571405488508766151437059372130516238665340879843898033398534485647245952363083375550786478203036720870897090614158495015675238360866504665512870855633315490408666583871855146469366987521772552187910941601322314674182410860840414849184507117109402508647806086375732907517346252843981380507914393284326572226872862910952174974132959693358114715639077289213819947793598832337210252964372316266165755661480350258944951631611684883330311564903427106702931876986643142221052805545567237158591479018046522927240465200556808778732555798294371888771715877048744042942899579877675376671559304279946088185773520687353164740632573336946661987459507142228013157078564192349580674620735911129999934016556346622762751872937246297281599295744944872961703062525786313199279628378226240027250845589809171396188626643368498232320259907476454396396134103617194699815363814236771784885425455941454562496084801248376718695526826072035992841313529444384012778625526404073564324340532586920369657745699156093883616643799649934579803253432216178190195630044241270609850675868130866302361880872281133017060751301563362107766354455109064494928442374720546604882192660112867388876007812178970317439378941461360145653935948804280323258835847515001151969118089164564072963180947115031810742939080031479438554573954277629065120466226434176125981217519291296541914210172224697126981771917443478246022324726497995543870372512518638459336400224924494070822851653933305781224813130325386248068978125876180680080502112732407593678495306459084141948690462198982347843212408107926215583882377816090696365009746105892326425604498957014840652452765387265792355584561173759624403088986981123488023579207565912381123462305159815713789439591117300010813169843079912256176873430268720130450959537722126581710298796967741791276290131481622855458296472900528181835484068473249391357148767868477025276761554831826337810339772427352274535177414790102835232242613098244016288149356199483588300150115738641912248439807118255895337155229253873502710846792396384398311191479511202831738339459352380838215867348980470946620474366003924650656154815954304389292662944035317021275149048339466949719814863189848305251437832270018465545745433005784966288060525621390661073939716268032380329796730708666910229640071677750982436567375084275279166521462327375205195593805637641965809414219611117561060451096804550874458096850907027361484982375552750757568168220523279197771172943785322854972334496230446468350715942753762205358248910435703417779765309081212288619165888026757201766835903076731842471984663832817324611290966445687085070877727268666958424598445439608078388949378652583025968957876233784090158476599824534752860998920291886614640300252082965359041411429841082743142742459824079578910001874324446805089487196282427536500480899885530988886699405855959968887127341385769726681779833234011831552742337100986961904461987984465321695581613297175544073011200454333202638694330993853831534968731828973181029616489796561595574717070995957189589487879733159486722962070854995346242689365055432796623912785798046073878706350351364723436845674191068429182755520273352815964569236922029674342117942834896198567948008926198046681362194845098729865862461749062199468132218767709551250879438812525851536516547861938088191535881616232228044575255507071124570995980617148501044449461328874985085978078782000506534319087843850881126839272390262117517213626658104375522350628055756444039115548374305212398666658783718921347333617962942505123071373329188979102623724923991839375355010671125609765799508357993007889534464621056317738009543458487552020899889015864416653487670715341915105380644563629789430597565525850921646073470910762150678952886236208267587759631101732955133956851521658370290990326003111790163507055798147467518416757339379311091014116809894796833425947670159098007881276730415676157094029185176491656113862248184249754273177662353316499552808090157058826699271277041192067423065474566239584415481127910031405605505002792609422871811866038016171956336835028866600078334634139253248353208341210969536822552606906882239853804959501598641881091617656377776010292236749094949452951876063577912698831026588005768488059251046225563496707691174308403774103399432070974664332001251334756840665936032140302447866402836315592521964718317879005616329999609354245975875429396037439653925471701119049212901516562728424281323987901886694224744319185947219540609112461365421960156837627699199093916299233795898734444722384081520785916411787195277990913215640281984927615787851934603783778821203875737409735257708302424538687363598588632134293229846161142542921395438257172206054155929162515421821667266472623029643912627756896480152439274566524501328940734364468268524326848341418539261912871937329764688666131501724171542939048181730640751866967227581420832036637311814542241105598672162754541404419446579061941769540880809920469351920936127038422364307295928643428706943324638597851589932298096481639740399951710716608189705692350512993799465890217464453540122549170982711242816015720922178883021508323599724519168193505197879170249605796375359594233039114962602147088282691453528733326973767494335908813948373661989616009876908643177069883031989532459410793049420285070586786016544617603264657594833434057300416542630910990886128469226830575698602427019565980690893401664543228172729134828349204277541232409300872807708542496754193784676686600101650080104155789620520269087037950115416097317560283879990833280894580399525175011158993465642271370400922262214312216850202852443352231779182546385126062942972883142702590954010884319316118793357030197235665958796487055017626925934710054567179313697830041505792311807143792662674172974139449362891988993608852316200488114401949990744533266300942178623173460179916221568429266367366475498279264585677899952740207884511645413018368994319827783496828021091991771984217014814707472875887574307505765740216872591341882471798192042411867588573023144256200397871636705136896871770224583573807139239484771753985960280919461908103613339737658240044874129680356060462655092039147426398657033523961667916099330088837946968652845812331530309332744568298188060488807028981143883823563837971750393552750883602506193907283373966634770263259720163424559619671022528572317744365960151040369324567797073523639765399476751115538297353154289023429703809557409217738611011522286908047364292981527199190048143677234978989720923010386332871883869130312071370409959897449389329258053661129134502092669974577148356013080761605200160245054612586443415419246616936945722521655836109199188046916016667477818206788236902823262139343255010752604209228984295106276460928771142153465272253023909751197140780817333572390355684995725853826499645506101116318420964013280430617053218602972483539220861173942497896583267118761973607254588602266513484431788895221238664168863702374498642147574574770737954582638720633639447695524678489072683313790313186681655179830066443039354447294964443791615741383760476568618128091328615656636743213138748953672625499445253554719291262561702930793888707110520416267892603606072625480945855442660056622827262929933368389035482830409197566160146561210641348095240715331743809542776202442106678151783209272051537477476568068655083733821263440160271057824706742319602527429143866139852665650698894342023632642482844865585423155524065666213174845427380797202631210841081308996679444062035791998785703783219122551296979422423222512971484620811289674467838864015460074047006616851639130724557809549617777545275259370126321897394286869408443211431550440488311466157235572143479074785623764001733752811588383696278360062083921862554958305304917247181877829502081972457810494450307080146219115555667275401045481680095618733613616723487339928380036229194508037828800732218767128577159007114800447456705300685987950909744082754122319331774196002159237694043663461137687345806413871606739753084015560229366794783122384468400848929580810167897020501446961118065906241182375977756701514703817576706368972456294061132300755379013034543162961431791601560238351725910806692761370555464237951293353928888699836164959023698022068579432185815560932107794150830256032304693697010755891404714559679617971479286712660486675599123641645514410167080812571460419042547300029149230452229580801666237106555799138295877580164603236376164363156650434522184201759955993292715713240178630096867235943532311221085029989888939467443229778740628748116213891190847774989046411669520920479455846757953271378966688585017010164985082114441141676617995214971627065924133698930658670513568812059315113102169702079671769594661092361717142286803358089943665178012249098316750850669324391166507876875718766184832169118371006289350838110469405508663209227662840508392272077272111417038463670152736579471118196124299393761770298239432953527519324648368069383232768263642882127544608630939852578867013242277131155192767748083502127993421986586892173140656718718138897833634182972681153276365411634901691420200185332891896936662055887388364806751230445302107319623322736507835720293929157265319390020900202618105165947541206941893074751227574586773496568162828774044108444771529547308246466486954767380496953815616133462714791289544916027121255120494976968565108827546296927876799796885139069761742174465922861291811316180445373201764322455888576002829186422616944018339340914633298958170895714557520416261162908957445892593126294636156131018594501590735785428604107064721265848306866745700035461828283333082908533150387320435962105870697709590067147015470556087508858578140722483376954221412761644125443308867933071457627109100049873501120502796276473221386900383175118400731857804680135399645185961381392363740941769029445828346329373952880437610842206218288951000902495515024500362900769118910227376407309676375886941364372652766488695406873208703189458302972548866786860297320163588675743412032067572002401714505358598492118824713227513312430325983133541634663993747828537824841060484878229086802210750166995678605866892428288055608798860142481271970878772134032161419875341850754682917686663491391548355155030031311890896977710485868633345745061123886797006010236322456761675036677528643730876845468860322278919052766686483991472199133287178968755587466000189776288190267824014297871195580945636838076020341843470539527409140599654674643207183241769552212743941999296435836715880593839315145132111644392999732308558022569551990784737641940589156057104332902353569676724763336385157400320811058032022601451889323313634553729940088980681787506291839190694618392332102638139290547424942577597663516740678826833510569753021950927850237981325927322658384947887352586935306772521770188308515738491245366345269061259419533193927234268199158821590299275410388776449239551239291188147530275757570934832368526679751759627082945066078897502776892981448423725738492415260947300642565973663139289290251395345260989674910762158537713112621721176241950508726957288435909311262310721990542690697153204617058636509005559653565491290527068402237940977981161092823087448529644570762869163836898826685626189801887314439107297862869398866788111321482298641732641229241073144970808983494420695193131358394058724129329668673293670874016338241684637312140482804715774116795243734482893127114669801000861041078260322821442310160853909558985714897324856253226476884750259703414223545205247999530387942197139463043952442440575114355028555529907590676774347172387150228881499816069308414120070644128024276408672984454750286586790760012057397965188009988522000521703042640169875207583285167874866555437948923530556633889838142613029166323745803479978051300862947753718926280624614428631552739636862782742594878725077819657588296121162404135577692838920174158465051658913997542591721533441400183699582558171015580169859104982069592979921713289790731711255871476574952851363622413198534894704854770782618745230278403197877297742160517600258265082090422007602565591470344875902095403843443748862381900458246513389664854349469409097013942555318199855025435305992190558674028530136676441085859351305764296689474137062462289813459924983046512827546602574208716368093878328660430876220498312462414494606929782599086186085745004023759465585409437982260914221077257162405927507331757478906837039678505893103806244396773089436239187821096674706985280880639209922720649630149886454665279643227549246268823093609811174941685406134382634988728687373561777366308344794982738996504447531209712661004814913437561954998474072318993296126563376494476801850481798690473929553978528656531472798370316728821227245233489284126837308481183781168803070656534680765400457854348944550672066197812168028509955072177104929454081080287570915545164859844399362794519136666194708101995924397697889274629643429022535110161882873299225486324164095965840570985016632569140553554657456246503311989185707322289483966197206735675819955246000665482404070373408048253564411680098095075787170231387014972348814377170288863313774178029357828030847225289713495609995171137179904292379699368767646481586091239448389139837941314277372188694101680930960153357058919712460435220156446012857214091645062151118821472056331575762977816044034664311207622474132006982318444997670392975410661521753204615964646465814215608423367171644842167568772924799024865965123637993445031532363270195139331315992014700033866318353788531446500910618732636362400701020429233837393717612135468421223356539272086983104885605974686038672763999733973828077351242155217203423568921779792381389777233190128525955743608351165049168454874685177204478523584794730371664582527802191264007125534006928817485714140072919003178910394129474533910745828828144721604655153289910983609617337811443301839630414592859987137131882004756244946973430938492387718272071609605172862224499965607576255212175395201379925865282287443651101838792532830978927550262422109501417975204923668729656030295973615070338521046949950372660541536093109647005986663421951406869883857162293318148686403878116815314366216797466925598265133164158489051590860250249889616307946390136525312293497476872229327580348651767750592606991929355559765213285589968423711069837926752174738146252219437495575882148308016702544096548565527526803426995802302098875708899209456004939402396506794215258855854193864549814942145249978501765914015377154596941516920415825460281428896249861315475684255055584508478852973352621613300581044990977780793614781766511929158024622094322884990054574441207125992201512157449237594922125974680785335324081796409742813710616659086969681702230913758420517752752778995014822123992501373996284507749061793502040902709436417284553210533156398567707477122058823689205629493824113428074736626802447973639685603930766117998948667270383237139722933483958603708139842229723893807682340916156019539258687366515170848221412291733416388373962399515485249227788092678861399800819043467606794810510282532780518574057217065613197958438148737425100776590183579655158330339550920086967362067798115463813625081517126413532305794143101944709159147790068925803261109821109549827553676654108471438777256021990671720441230297616654649148522230039485608010605384299954014647434602619467374757252287215667528783369047387693496083271323062800177192949437354888425275224315865004961553317481849624175054988986755732555421870308156490559260393568886363213116431260969344725432989065345217855279822902669750960186872863313024991187525134570345944254407547196222120643828030300339094960327077962691003538469731710472158514756925366203680045656930358117745224669520234122084857737432685006063810046267057683339731421867866014223002364783924615065501471959578737235612738360285361295532561578805378929274637567214117705984737175248821567685278265302742448252975949664812962050466018692620296851179903447987930215884339206939812017857780412625794306914865481496541361461453945805635192763168703439696410028382257618696699473388084994187930507157054833138719103572983719697293448604179199423416083604666378342272586383516867798093149361526622013539702414883854401835848200200567412084809607369374075257961081803896016286194082325315821818774083760559728157208352533892925022807086917944950976560178463937264051145052959818654952016027611558022623368947453780077360587886216114979028743454005538665057809625791870034779766322033238720064526397610253130199053031506133764082414748307961788023435444603886720942421133689303854063319137290119147236585590309060035788883217252016981862054123285302618963984225148886189186210490191447257191088490298147796582815467812453379953567760560313431922976682149445721254509704181454353609038779266348198925121966468597319314863072579181892086574768822398783033998818959724206035084721518134674626801954522734965969079805658479980224374112416725481193984606576102305810076888697566207077498530649360874251472571944605275810659136733972723984569702400209480054489506831916796445412614629594256333568160595760393818116251329190777066653963986484951183047106505048514716492957031638297629938608300052327972422863322850514088067459152399707785494837864644176884018768934755426423893783431251075948297927853771238101986801067703956635305155878775213144530461728945995968208823616833555072467287141566890214054497092987491527183618369951289724130355275120370399984488600954132581698321948216095381302464658571386880348559090895709243768652412909600151221204178243555232956271062737852448024527608295117693336351946664381269573900118511840532911142665720761491080794916218414351915392676153125917626697825072692376948613711286609811470192469006357460747857059808234873891749626730644016445051894277861161126250859065779929372364678596278237714572525432270642868018814736487824772799428824007037808967351561974446677337648392808942658810630996495003947533214300283381847552746558339449091376328041434296937580568632703449423463710396549333129455283383398454384543629589439104297939034814409107346234857360744885040330330843129651242900917470184684177033151078313449959940382594976754284241275986342052479594797105735784406466897000007559726467173937925165088389507917203256958431559305454888919173202700396163954893001248823549676389406144197321856487823882571397224319858869666267162033847040264698983464850146182890862985720553598282605871553794071824531942520659920428299655693562859779521848937092788559705849261850342866560634666206839173576945384213171469470822352081798445020220221391861201658769644964844970319392892679043685725492487367423201871182428224129423720836731771652731080385117645750730586747913847109461387707861580946337084096063428491530294065575203224685275565462442001521990192371482767695367163942204616652755860074612632859141353259729724190791107560919707883839134905841585862990251369298634603336633115870050117435685720967139314755690912427304850921532731534934972978959077162644942485665213090130602388879417677897845392132086964873172817663737055791544007141061968847485598793312510940917913936288424858230971230807604830216767494642555095973964715877534830898947644014065811585058022713498806136628042011968225550256894382793569884489796652466546458406181591435941815528002148576840526428181074596009593129355657619573843180775825302533382369490243545427202299647701489541161199193818554863259801901862417424955991621202370804128117962616152474057033644873034482698356508588382578470096070383128549908398165508551002869600532417849722970212372424236027750503462163382491236570890518391899025796558002389240667206298742503707848849375556263830290624489064327092686021330238230913803041741718886484848581859002032775411132850958696688700756237542776554048877004901934557299242168051627951327189934600780792649859027179490268374857266594665901463844171138276580541759940695056903730047755535228650894929887587401628814930154737694367882136342479700008420180707459789956762549219285169687094620046456646526457456106389961174477436175569961900543741012259694152011788064638258913237637788246985172657820295161287943509701746027056720934979112535592271019499118781786630299439367321933966821207636418961810734299647842098875619730591962139909160665560889108016294492364471226511538679663269529368246293990115161825142218333638470895501482421072351829984951503295132649967517638821078740561469817080403190032196396720045018563949872962455728711163695299634158253069760490881852568170353829726565150716317939073333966294033354642622852267331405691414320922912784483164465827145307273101927631638471320055435198928096475739832384288479074268343847413761968445350619465857714866732663753158750117026790350516665859363005061532812818651002904880352073550756730720242620801683858429622489394789030443079307141882643183142345967162477607822530494935803232879934535697233778292072323859978173846714357478421143064493997855430771608357477165848987960558102404084379798818061126450373727881940785656177111602318725295598807597509173563165893866701611951858358255664363758160937416935951709673266654462202750335271284049041570572618287625424437417748552644009618999842149724817628248692504719773087170761190353902588180948132707436653235336359166870621436542120347071010713626227558205905604033578284891947314428829332087599361838314515311326231578994153688665242590318286691975568835244059377662934948905056849613653431554954209890363305828889651956072937638818622367497864783168320335176876155698798740714290415962450841699434614097062912332490332012526093819481716633839770605185525329141029409942352604040832385190999935675195604959114107502709021750929665830637124230368042714496285052822754178674403844225286517216120732834907347387552891152200846305449262946464745449365918578538266863235318789931049558120398280118227928832341208542819257280822516614682085817481639087526065220272065984177142945534494484103410931791431942986589400353765361108218027785790451513003408341241647153603462911961271252054180956276610261833197464943355275658530127527498023933163135806121676136672659256089899406141966193533744349325677719633632007296003926895457079407546393847829359943013301445664637699314983684453702027743456170707371585017859133738182860401604598575339513399797334502648885205613098333092574850556362205295805150912122753932739664916831845118793617350176574936310019892187376851960507438061187895336215070546515564259834517591368492896071481068686899435489122091032357238298858314937247961682076634941281218169868390605531716127530708082836691876981692320999207015411745925167986113375289798489718801504337365292832424001990899120523856862695915051387449012278257913618009784463481184947130703138252695186842975380187027195173694935622521038348610469697294500698029706804403024314564854777750053754596914188089784963811633509978219432487191123615382637915057231015781794963645036879203978714208959556234290835052239820414654504215727728674671318169078095921884620091220111478192048169471971505551587533953665454719846466918140609806715991737233604269359109572748222509359296430247525764655852625616253397018632228598232882724990569130869301721083694699696977279447629280578192090130374875002253995605495999093887446890479393214483403170508337534797213056211920248958359215984255728736080989616110559312174987423698560867985942319884377322815593426210308677740190277065764977885445044451987521689098291198631231269439206390739712864130061827922552361498748455325077509845798092705248957000743017092015943582654735423723627423810077498848153032304057536721406530534977689952066655526906371803010934690995599547663888469738322091897687561857240728420413868946520083003704110997161103813641004695556564954260019708126573120839518197271236457962074282666810133966464429230729697014165003407348136521378683242992303698647407150275865589495849731282109651119011466646962513069995154250586575072337194089426800531538380434032045516664707011160362227265310307794046290328989560537391265395403918323279200592444136608966175512208124230991212350886231643125886430957972203441292350635653804709579582757957658261655590089711250885692730404879500573471978361578433922984910502458223639521908945762008971710967039331740384065107783482441801813863829256509832931393881345370339925788206029971068343254542609071279712628154479043367747199172964566424534678071953223529326640016991907281583052157494242779535199407978473193482298076802380880501774783558949161678788668879998720590292846821969234409669114377008588764747661009113346743148249729067830150274479147725333732691769216925948947358602101781273711798726523238952536758910501336536417010600644096733266508554821343434764980828640128924346826636930645417993991612650383871350025411449131441268785296018922329530239857269122698912321917155052656966347110167425041962418957790785842317752952353396847865029593050409284149943400030668456726395378988295108304177489912297859735968630090131652288925022260312766850347798288569138550411238201910723173123295277180684335781081247259457623218641764013008844204652503298485429430356950515329287654555065764056145774046608991064456351192640248804473853132224134987227761941420996395150791003932525454452304737127501526722339752350333323101433982367655434717756186206042902523781667515755922544687973566378997685592537804020446180516524322559532011592671374761017214340095092404628888064374927903350039098799470903414967532014211979413909295492548520895567699963009729728399767658958546128153263039557086947007330944418335912099739082868854918380973293467222016381912058339582814474852348417457050824676719918846904113399364694497768469034841358133040513011948741737425003013080322281701363953978383036711777544201058877077830794497421156203156382983803919361841690535319369754849437229055428183411816113707643278686658513219569329072367763599293623521175665907968184393801236947349129681777745016132210581188937869674450563188583293186374227968174922310512441250965067209151462849769493253293411731030134336312369354342457133552592129855751181220754095393631416688702500839677791828809309213078532956781509796600345386970382515652347805587225621035238923147445348891312881879129626836521203415781575112376150662703944708239535051513094814531291977893494957844575865709250440709386856289005340147239994223207661456545878173672780687059166028053442447021471557323377193802919265023448417316148563443389757355984758777885295820786177800483752469926466582740898521259070953091976377113626454445614582082139100780966971097614155001195335836853345197440728233840768829051312135780973249554586403074891715451939222333545890334588870127096607480737975018208047140209281247359317891803229872541348726452799365583036414747872447493569467099765234869417390072727548002565202241323542869755895553944912152464533522462726841309452651884359888957690996880258886658759244046195568602547838129149293714979197623750880387806762750899111979786625122401635880503694934600812358848115164257848663304765339618895380645559638566751127698042021514843552525524235029696928888413138553667103027525880643056756789197605600553614239821927113885379566482613070914631962238365400657342053061734588691032595588158455916166535491631054124462701955727349946046087282631732767742699082160909095565863122938551164643226260376193442271307425543251829597757264051090953608886654928809669530953046731082697860832580881553908690326101095861150085458006542017143567824361429493679288476987288647223780134384900171980348389335323675660518160581539604534015702749814200385509375249932346483757877120540384910298534048059647075544057949093460212169531971292421234220174980011079427643223204527996059281158415740905844303483543247165663194470311994869850606005953212091440127675597736044304949695819439641273914895591304911731564972918643860976328263273576234387895827507174392884098203917707349993819738611083463305759545138263603051230853013138754539566027606980632879444741589186431739405798694025391676734463163010740780991137196359460370718806634827619248812487460236253726818685212418642957800364602746625860954448536774435193958985782447086328606006097825930905459380649839125923102536444805239104745677059045630352708620136833459554465825813005997123144461605498415254128272688405350676159210058518831711159789532149990539609006796971818988421895285774076725778167416732236884613378871060065070910664384790595648252537033061505668934972490801635494720876593656033541960300534063588408284020477460286718589062522233513815651938316806135836700491247343696675122027703755636534258710463715078128750806100326600005927862510883622277033952710501751027083155735896498276889050069588966055949104837746472180351976632420846906832548732014297800750681445768288413875786816384457578487508539521290806330641200355783057446296018384736832276291001343623507365144465885936505737111714086932012192675678057673683826171446852640870268669085873540225039371850685939448434801487445615646645114554383164146913045535835869429475159581976795091248576102664035109711695080501525909666247656692551499771311583004239232331684671621572501730581520062584806566619977087440390506266419247521667462077310090445508990612489144468061149207269451464368785545827426733699809194767295666728517419096292115461225008766493932252065751221397012316978216417950237167494252293743490383560581397086919531548434839019860669329128332272376550558735752513410665357910453583951462603382232824609072297338220521976801915153560439514088836428317835038314306179152459725012157659391056423913212738436259768268892774216774912572019309374299801495205177492450615010645865966032018643051262559290151523171731529969729139549448841643188500067458495624193796379052092525083415645686023903142962381521969490095434631775152829422748658911850322549236488101721152180598254504813975399306708373400232185375682344377528333328290982045586538672796282959536318505253659633930495037455174823767860681746139991039655466037381176904910285306535666967270500453927535194827512623185750372556308662174104006039596017020257687629748324056277059689974209413593011526406831041115348288014715759851787831742574798482548045889526100228587727466486067947305170170539895573095970993989532740778101130935239655682770405782441207573619589785880138415599474257925812072356238564783172241528091517478842857536703252469667366144807813533725102466335122443366983290016360688571983544224278405636241605146767344676628742258804169674571933620986316759679588815185937163868537036073872366494021592405848297512895428004482851047096061323069742711341100017368349782576600387541073496966621892276740342143096099842819615665726300588828631025978093985167639265942047285516027126069416891805065171683072911738491888117428659949951137025306901934387290957140920500290435098834217970044932876791799755893146427817913732738449141825618557286299791698679838210749344568775456487773962311194880763962302431759356302470643186866152264457972946543630410027429549338774687438064962058164612137820168275072160167556893105717427493218297428305922170576420080676298534487088475626919753622089981802763489404684307180568212883535147496985595792715111166027863630155470988439479615536033611177432044974074822678679183726511892115201064721719692779386378428821485473435568320927640964029069456540678923039415698391877257189012249543848505372337469443146365340227185292901000816906536939697912559195515474055140357192741259624031449254714750196030702373735966175879690081786512963395975695656860506927264222506545639311983316942668173798014773818361143834734823118802745322218851450896216117871267096048954351383618728383096811821841839384355347966154642192509790060200960601765805426087301219110847992560723198076357985190289437623618603003166822967095502764587931028182646792370310864277642464946419949829518533811099053404082840007282509260915093949949465652066130441031461202794389191367173563644913107375111640669171270324809621617244660201531284880181638734172901152415038636292218806340309396710658018328251172471856892000923587169614279476604805317520036358101358554127163206579631967661343094578304326486513180213307406067669949164019922642014405809751995823572691837328945137666881386557831205205550999239472170095905383873194771372129112742409402663949647034507312107889154310820421658935215233763504658632067649323166587814855856114428770078242525883283494282695976605760717365423429499880592634028635984641616101804534691085232045418801305936013119792821514235342290154505899851543526820847491043161011807233570036013092920440724568707596884660799113266108607542160532288938535517489191057493090984176821891229607897934591929651295718120608809017504421377921063988274263117970105276068493196661572183432726939926745409597702110516729846521213708101471603909395748616541123799878191094181001537816398739955490826762020088809585834464491703985019104645494261787960642050558224051643779644159139160157239212555485675960144827399716272573868062932238935541378233875867660768909013770806511525117909747575823567029339386220445007835684470834969028646400442883271706237112580990651745028317821727174761610972838204518806334494025026651754794385560190966376138967117948063932962697178756566556669937693749809869197944966697594764494499926273274619766876115272333885318350261680278494508277397145211260897533418920153299819658348487117425736809672116290136713727859401964988446378076827355695611062939656289988205940588954846703370415067515669235782236755753339701359927137246286582256350487094310876481065388559322111510606164383957481366098802880011253744029881303556831236084659755186517092118614230479149451170419285473998068915178694441347945390805548629307398480637333190780024145880878501678167962259904388858968759875936491249508969257188077461996659755459688249598520654398396992719175935620088467010843442693545923634483440888541548856163099117787264228396033842998684816995760678476615829920439259113754486269561958478044410705000934536326087773972684574127681236585427393018922589377267336834948157671779017703669757578047001368189315534379708449035314959544286445602146797748306630138425725660192983180391330821124735232291774800714324061204985143816356180625501706956332553302055818467033671718779762758118563508239435486608978549088349989670882318161357470574730655159525792197512492798737547325067746851394885099730024358367260571475313135400028300332366393873940827977835328413950877838132132643147516035271888567681985928868791395008095046626650999917197624205090157404764158711913588833885119087475572878363886241548180553425699546759386841310943474626544503714724732577040431978513144064673365674879572154596127039709789743190767075423217654845302750159526193679728834942998331107566536145832282102414898782525182771005138992592887756210436223258809895400183840238600543795215832676036896937720943860955005442415572552953883910569925842436388353578692516996462202077335807497014473104010403591489853594997272984636322195250144865494171421856540865941044453527011786880815046054533508709886964128043965026686789243405291546040009138021022717302028750929640810442955515809118332108611498737249220805877758741656393407756255065103965782697297717751514135177661803244374526485666883206641269545445032820583583321693701451279446932665701791130872626962323354370600835292992767064160045082683616039754152359630984448217002991459521229568587395918095131027329072299288028648337641352848402996390765302275933574761352432681644691815001531342387241209935294559235937643536515579347313502315444654742989402585695687582156853798787991489700937940910665133817694981290159919824012377993216005979464192614390290134879327124741850382461024134769487430457009890508060836941383486937296979721774235650387098284269257350459157998810540764148089049502533416238751959704711726486164971309943787417349324345153371109781196757606758715495462848779638013589235176727529744454513497845801377264986540843959913850735502414683877400692421308592015992659628099284068813134603393414628955629446875093172740763894202470305236969960323588444797690125206494909838760944215189969408686587558771469538342588398513735192225129564208108802055704804743003054310543106131079947790176602102072542112710213147807604419131469334034880156806219910850006774154607321254331824711145279230123268252062754264294669762022010826058186526403904525371301009984426578173553712255973320615455935932666837550047720470073971180944267326475912869233576290290959334885690966915887260059774144781038660665348459869986299615753702359096836803449846260855604759473579185124386635419966086337446683157970246267235603734518222506242651692714216648324193207732549910561882064399870214039171096257814732282123847120197271187410402528867407318061083895732136536730972110498343474166602706858433116748854332484799703453940864705177880955264345940238844941976975774185875065495230110544772155679717123880446439026046677150506688700379726719251246755215640887128820956974142601366742050589245424762568317558237121393470000766847274569608814586951432520276797088785131516502698758847736066454527392238364190422362281483607138376687141480022537730901493851872428736675910294421451125186531845101208873729530577549772160043359464541085688933811560354831299008882065555068882624618603896961691731995870300019743804856851579439862782870807341104042210695548549826600547956186691462232480264867025472911426249724852492200852394260711441216159157920352331445973428971381418063640827744547902011826586082028720391452255694602951964065995819396644786643996896736646356036148858196431709868672595370073988685631073162962574781044398627957510871421979087067714707894640525892117681682383290351285831876367932519594307544089894334509898655843553967555907248172278849399230828801011372046937086409857777089356082052872930624015393432264032037099433512044849622682896514145672706312783199207988011092955713257564907560422678517107512987422694346649465126040405419243810194329606912216173280065383331198337237954556752383186201078208393222009067997167008393939939046241761118376101181510614026551170137521762258985595079225514845262515412143922123590575032058716076827958433708564500729519739469523723607193615174337737471198134629999840835797554690983059100030594825055723754402523509237654990421131224835140224274244437041340590315849095020522146818660241844536484127031766916703805711370422683487258811677718008158262354805322209247587545760709308802850366833147632647927060248569606226713017251126339028470441068704105530568970507136599980828747396711741813946807164162982545320576790431830723234250850024055915351402221795113800711931838480141981137876571229241160900181413955429780182660761418806212803031367509328315611995112901715640897122810506861157020714466979310276887490321744936602379203621211495450577278821720642401900913470240146546620410338722087962815403117991492055880870266348610511369627069011690794583897765291901205449664474161125236554069969442454155926190347192185225884390301441997476672476842030952451069530788291298464036673490829477493104364794671218935541318220100678965501880219965706643879342476771083099013187820613449441306355911833977550294179841937315842357973432194265037438893091280077714348751555004816702931380480061916865959288969711208094812236764586443629668124848058811939689149386018319556533362153511654909419328569236088940022747822996235345659303562421247545607917231341695951652278899838872770608607628011049968830284941172831621657595103159859105613723973851522022190642109138390859649331687624890272533196081994650362636432910893161986323857918884403305706760886923706182954538728437767756388819090214357545801747333630372088917029728203201689564495459832996458456085804863805150708717829537198917147086325729359566884711979096128855635533360221636199158791548778824416476391672743601182587364731482345579969947205979305960019989102002087559002002842585421802710018518640683100572278183447706520229830254782102071078424532901124139080276302137631833287876529386848117731268413119352197541797056823735770698103886060200193092536342773955766985616902429203763677462392452829220851450529729712194821485570413132364263322566507000404448931390490951734389230704185792683725600901602048532903511233877897229464292349849104567807514217227080567518297577015727720446828980202921275935757196026478298498196507005402991856425127616731397530327489022046806055010904685307158462947296891463482596294159811974070702063298421316580283581003040278985182453415932444647794155246967690568070818575771415289371332317280889875788997513523459481817461119509742778555529125401287873384037395855520910347018543059401330225178655625579774238975512095800782823294150078859152352093452955128101710031906458268316435211363287083763880452671024049058634466041042400414621445641142394295639659576933506176455075856124460423433031184657535149414387219347753052044093198655045267425631579948110955261059210295672375976146451499256915749400848062473608087412794377434844448878659645056803823091093859308944827958825354879244890885276084071521943331856732928416903793752164028194563487210073302539586084798007652541230115411735183102255354395027084262901142304631670597895416236906019734415264622459871060223237250427456719605840896031306545486423058117154365683384758846297288463249358313458433557444922265374771392438478833097884734002582299209097638504543622258019298039840817240387234779380097133675633863098413476850756899624773779544666319575955905137837074945143364856890714876448367974062053653563956670207639188200707374312796596526567194458751981434157529742708399488526350882741466814272430742869677355442327425333128469161590245627595752291379851435270724865569342685663620653956128370864858057901236817033927892186699636750858729583813129366654322306882342788480142766702309832664621054836251103915350113939793424127227787711315668368199671850217346906453013940137898629563970206099939566472932630666319872952106583566419595824413496151390341802208467525550733641324035310767519648528987460954518934660528748942443898208512049430704061168748157261443214498865109947365304470869082460364102549026244945734580126626749584482069428000901019727307306590919691795052390031580996243541381634019602564574465321849008910425878449699745592784103410848185603549379267825441769335356516284467885534879322837689702832960174267542081371637627454604190446940500525485722317643122086772948612499886283099607999709096072164551208045039499556496403440093041735538250119708818345595468886460324456834402529754167999630992036025679299081421939321253956671182223255150490268300950354768156304262367093184672176829949000558869620542826594286979428168536358965223388749621298955955961373329011125467228328840330276325792343166406585326769752577658538463614070459243617369328343102226620188630078274279532990381107611868830459955309173852844353200645612239515701246159747546596383075056687240438818710367666457293137092346603295358982287907244311688551130094905468950255248894490545020535081201801367792726759378613181554152375580268021322568495247901840886804377178613066392668148391674764812980559023172641418927254377182973325730421655823969902176417122028012470677177700586650986874687628690813648351220978267113855258457898494280434166590890166836338039044235760964565711354405372840837495814572285870134634602854327756138780411220952854287335854343502660865188785194502912057558668646231734152183505379229219103649600146156442947757324601526794108783847417573850181773895552476687244438699893795609805815271190449290193310445779630460938272859987071757348861344224416500038141045520243241710875434589982161807889060012393798363610614175187858103757706633537344021051217746066805590124564546617513057828801967339043057813364102342027225546855596347039536983572402738007431104969777160082916628503073516597200384076904045102272374021033823424021336625620904940574902737667220294963061631790736763386136013566747364913837513015213482422356874761377424925305956935291897211863789466541504260658854695529912734795245876093552067448060008906703320901355259049274402351742218534368791678929155273513344063471805749974703184778117665193821155663417196550185058894700282065066084064878322156785707302474273478434100287095095894825460263937234038651399512846089299238640276169236404750959810907893132111173623706461420180113352354157383850282447743321874385260848605666215957069871096923339280352590362045239310633031199781709512920159011214173002569779636525674354385095203277688602966229637227727701424048897733719794099842305178463634115898134724692451976014590589228372790169457906005766728627829880563261814814965411801485403344326465335005208238220901751146099989815116986112366149263566801917320456486652781998438055362984361378630415149736589522667756834052521638657503927998423621935183031566835196412511818948061382377780420445337595453286043355323505174769180714402864383155578335550175969952677591689246620793055723241369136428299173897860612512098747354894830735012814003416935638808673100063794903539710506946109256647905672038803919359819411337708602293765101591717642914308589529629696836519561190361000807778167519377791177165319777215198036951999025736838186975419563765201895544613885644831073148163357355854918167215906293106368714220295975866214791952172018589739440196267694641978606886022718290521333556723328103330605535364433642493490748501634768680547766802395119846212953438142046694140349710428079936398496692915638280865910122555553609693785472943235724406829299048378411815139040586075625030410978177246901275056688358050282210158043345970647620737769291718040707695351428191271015400256414359821908828397604505959768065948788897787886917067393595425465369721044550081729038037559484313493692810960936817671164099414072480810985594134204743875320700837056231912667620469295857665813159182628715371993701283057638136848252220775761812932224180323047223272431980205985992633988964225310546354184054080805334537884575310225739594684451374430435841596065199172041701598114650663800490561950836249163816634207374715063735820930655761623528221772854588175014985644471167974311947003115023417737099004654040531536203795198212309537235322614609860148589949772564370079962227980446543552017134057035736143994680780985158782437498162023528270201630670185626545583187767839017701502335609027747603907674650225712601922008607912810934424830294186939403683290144733630441377504069722546581256976021474275017692240160993827900473792127718266951189546459978278079328944855488068234266959109955862939721588805370660234312274438520161229056636803656947928775326342893418489681581215198723602176270083155993940687588580391325105051936033918682117028335094631755896164461639850970938903051356832596569109307608311435732160127083423381366840621470678154167180639193829219435284982599972484439890894900462308880630410726833825695940326709503153556446179137824004887033167685970480042968229688444393420569508887797417297335224607021785614752178300813760071817247586644016626686374145589464544466110916150205901165874944113506343938359754797388210503801192412632718280567148956289478583829287422178024308385292769112578519610350556341188043522126302089249804766173005998562360828295325462746694269099115196052054136976315283048754004392348565430382257193562118787919448161160314887998587649885448990215051957085731501564520176244007024961205344151279355173825115859329985186741080974757264771093155150119533130762950506061533153766995173423028506703699740716612044135665287902836508466424943848505664618799476058282818337780789210018013589449102301053471854318625583912317786017266328934492202852729207403566779476187058962558314735456221302591895209238786776293096411986369534113838593767199182091712632466214515590090645541839960016076257808166125954331133296442822264567683196370080015540663777826461509968794488040485295464156163252587922199043939664123043015358181724839387340932836754360736238756706913878008447524312650417317533910054437092530581866994439570008021945493641612203002514522689082988202193546988472476659133144859492592756648004521362538655250047920357952200317743206478411300507159022483971341976255278980758519855406571462470306732841876971919967517925334803881757111540340669358551963717331142208696814715323223454017158332579532577357590194983258977923938150087566839312491242068657065745535791867554232540478802086178276982760733654982539230457846347826992889231675600104900403314752829430319971568293858405260463219533826562974585312559753065737644550028087133807122096289476895408497951029202531537882884877620440765301134810005552460909672680772164078842447241961394955492562554590885116570388216729996489282766434779710898223707309883537821819482820385209300892927553100003023023804403599220103590056352848468040228849124242779724682401117921965803156165000232480869331712201601882836540755709424765711723489460830056191094257843106740851013417213581113690961445257840615018629585856751857490887186871971860078979139105866642414418347474753786175553669362735514926735607821144683656449404749833567054036473242217917597908161681042062771685085497745183335558890446000422163733641190020055633563899534826863244066864849123473420480304706703794639588046138579376176360117871302744920811960004810225490734334487649644045667083365927574728917640247348087256191610073290581081308623323096190667481650826463452974929377850972346393858659576558058013323061858796203010834012219397583860279598819843425833737942278578730789496384316186741429257553230615215254298866259994780724952754978923092242896365116154468270712276640157438213190334681515283464374997391034669826622284885091699915100798462149086084970216403854857114740310371437581606748601470484931451383764338552498773507120811268504144858254399226887936654407817545149569516659160487249009148523356880574006908478288368953391735917005067101808002453067534161221127824701646736728698109132997407485446818950497538762947456834079930112783609711480625902258335766472125635124375933869906901156702358859602132612807314105164234301845130961079208933249589245965800564249114090588098778353946980314948352595495826512618340705773038437880013453189105882344638830491751813877569823613963245156417845178175346614318801897232924455756742825370963541342906053840124944759475018613624060684474899180719079778880607700685326314958155695582986921396294387727385835360816623815367568358890032804134846252435581492785614677541993581691857792003074070503991436700814049663497981335313774429473090470536026976088082412139265125681458644343375801978552236305853578060886453685796012907786660524769259521732637285595369452642378490309129478877192272684690908304039818331202809796329567374272476145258701061990089671745855156081840262560950707956872646996650764329159756355427429467588852715235346499141488105182002506002396061514669983917503526899473026393244172385196551708248605370227847879343701349085725942019378992610039795361386984993912848171443737613527599965523302753890179830783831704097904650370471340837541399119094396279460446076002022165492109802778393514519407336238244441217947830148801563462309903527090337565061902385111787369432730482450789155848184790434173628826697994042367409332065658769667132575494911630347315008453388240520938220702959402845046248335394411597365179420268921260701006514634784203817894643492552369316216907331926755766085340425059995948609682331417912593813497473227159803638344266203647847047376679731241353965562288637015495476584244542993200741735524356180775692929905346700367640235900301735998407280460895401110544526889812502826884185587208717366018501936498929691981548328667644294773402013988517907436387929494205010665370677072269956526191172945242221701064781283868656885623817826341513076504283423881059783882969049564954600010994106369173206452278148812160405136830349519466256762059037546305209437402532487411861697666022248526610175396829001542935970239422929010283958554993941988344987151071534710931977276219973754912310508050401139553058427327592994885550628092075418493331091903524761958882806887824061893600975880430902014223451939740466253048771701672450279392858507427430254063727521585217635244011465011028559444635260058890861142083887325124952188482117886443394446820703968611326706423858282557347524135288198022836895466352070398736167444439665738028545670651926188827051230851100492959829223802626156008349358910408461229894796671546356647490460765802270751381874637153446804815061315675782569464211183849024721174017641736869758954755884026558141587997366513308853589286586207162555269472788849729882826189917568710573575438047610046192577682123311179843994932849193433464784735521000942288617504407457146189819618627639669253091027088492804250582490954407059803755717352550307902957876201344437263989897632977396656643686851381959735431801272617834927157593988022512874618055911366194459324979474608575671901000099854353428083454135138725326850558339054556922833105151182587053217045741752816545275228678783865055942769221502710852803313087748511608970316734206089458501051191378202685691781545568551200494924746607538322780639306686842025818067759791694776005954535524784510079260811066445277845633743073068177308722659408682172434506346141270997570622485274001798223758640959398293859790120767677640464361131601078027438289988777631231341858525373765361800179523774463125779795887573788061073963277904389855416298721284466324477097516140241836571794951340206968972481941022269351650624453551277276407080027528799824497591623181743428672459848316918744645584044629737501870301611603937752824686013054008199335762847726934318476672524279717110787282946536230975608006382754927553288027041454368591844208759606813950672843341415159164510644496349212574205597560833719086301591970167952394615586438173127976291623546815484039376316568702464555772735301700892202658353891453782254554614977410240913331030650413844809950560717944878929597214759934998090972077327194885006022320282516567481760231224229373607828300687241173181896724702982888012214571665557804768256598359444569514613593562409696148585388241933221830434026739444470954894715696319836458972894403368606304073504596161438624904669100997593923044395424994301920978680979623003299788976691082847427137999918473083129084138587467337732190738210951791750787858786845608998812085878462937589040795058682542638604506218994791582298810151495130445103131474017676344585738472026324818652217050644260214125573714951395405265212153640154846043417474309221262000743139199832248554486186155773341807603902358301497966162817236516206978436926311306664983507548315101118385734769170458425557979833988634414376829763888063509395938274119780868984281579665790305412509310630165183887478277579863640729889950764314235228624157727911996981964843609857531188264609405568769319509906591879718930373035393785939076767864862664715416471640008105412188510747734533581426676632067491733065923919472855596103480394775379346992276753379658327027360363056552992505650515771182633356164305296205587173433157989522874672985486085503729319530320220925775438606371452736804262477010020718862856361047971903918633919463032179808390959365738896348158450988975395129408841690155112016544088058792108026999135484299548611143743913703448416649007092184153565247456342875357262818070356590196595742404475685443012265900212194600594683243671065480783040616845458351518042924709775198054534439491971451190853319550369604544945483471630362696145044825445768912338452209750063342213830183051844986519013916588895829591165717841370268054713300110139351359144610023746929306066007730679184349086419469296389790557192044827595683620806546241085733915996773264952641578247823542505924958633427575537085772111853421861044464327967464068554227225319819259041509812034639903807999729442202039264171336020839285030278269145730675306191991455671956463449978799340069455294768551868872649642761200995508390136018933526649478199263372832993357421724504017665208967919786138887281946021428837503709720256727611333132598220937835030841549420837540718976546836139391847438447007066552831655646355211242698351980791175971527858501930920082909250586850420160427235542042706153887909434623012372992959775580047848203663777376249913329310093505017447159878900345231933500657538351259135373511427576140583760231751388024620902975582495382783357461844313864419292118080705484110023833388529538081665821944411700803254986537952043831617477198133858432690055856656150201536486339008035991385190722892722414439528345955614909141549650670128153487417933388377947947537112185104679098725036972837918307359503727531339129684113263003285097778073951910924601458985902921984754941972150616825341920941664542906326113891900215066506389522771578942704514873627454491987424708645061613202555994183157811694256111154814514868768293543057616229410283179095752753982817400278281194383383255069903519844754569514241826648223303739421156677320855024368861557529897736317895657456191104389345846917054010711904612521305892136245089228339714661075443362749704872374294661960336679473607891426120525755893518820328878155956766790701500120570188311956825326682576445759242798004368149417713929376843044624263990179161876311547632198212526616717141118228593158645569478130510527000612779057194636856108837543559807401543001704054268540371622409997416566922521183950929019922752896978329514480044132730812250262250862452418116134929829183300294820009934355201772690099489437983818406288333557327302023944584281470373779070990086337442918486671840706533004266609242146262222687551120800825994508897957857520551187005893466502839552971972290998383945323112534955766021618110562440092717838114497825842055330678630195250401612646563528271424400214034079555080464322886101882600632455275173772191563150807197831516729128077082225622188265355068669765121638296953320471955633794139520817521031233621023902288650082935876304492666914891007141426391434826236905468329346935006071820043278192538545826547605488279382351882048658564275295736563358548201397729151389798955465506393946853313917284371684295982050170867298560183035052716288000912664117877985753418433135308635252219537556929839434058834911591616987838266410719816199851122487260800189924508308782924274303970780963074774335239619913891807785430839737256303396815928851503112645326564232236020199368888995146253652385530682436039203305785283519683476727482727655003840561689654512629007065269863028476542884654225048325799325759189806866141043667126938106856453416709971857575208922476558138680252223712201018535615767833735684144293949070692634847352467160840033808951500732837485250840617506407638312848364718940129135370696060255413621131102003200540210253342715684316174176352217470361036781231824759369395036806441591046186577006621416716319709136451707779064425406687289574854686685176406340280238457260155122376180328927300500760118469671283941339774026194142321742716381018266836709608328617955693008791940126984003579772139713065125691438373973673243748873089092855662338561466431175394982929564563688904082885741136302492770829572204843489571261263749709169489100799997181448282117664059849659664886218297825612967168326622203053476671413116642254542666076957786584239411525417381456539775645047624145430589186497674521834956850205033748364787469462021152183599215918485416534181156964862498283601432172099295461559777378911736675178751086081659592684829863525779092119656898574323782242268334678339038229566638928473290981932255687879272786387121401333739101731911511148946308773925446871299922270702767146448931602161210615734312355646005557722869384685096613866888794235432284916973983844890633559183000509805054354400718053635309748910888348858340202874059559119646459166158006635330334869935580255454832787693789491324547010553389602564020501904651145497564666024315371583397355455048503265497287275409197581587660927393665431218228029347566430030781258513205673979284570811927598158298314175892017183163051017586138165074077231581920360279449634252747086557678455486188675792181611938361000140129349928285685227225888837665690118909321837378781444151052953725906041799680572229811182109160811408671202258502927915688282669204398503646171708142696270983419294614356251051538302271804774872529206285327702283464670327543736741884918407615647250986975487269499590811282693901175694879245538191741461580284172275804104519150192071319088659572157276274101123575073991903277471398155285064548280073857564217573693045888021246562651957836233822457182080594251829534536437020993072642138317568657967516039317820596044260078758252113084072398331112148057428180421721960831069019527282706402227856445028978261408265050149536782481820333082427391133174965766322273656467551100955125010666028202522312834936752410290595470685141633292888495907317377378555314562656187965049760818225760349811752917748940259837346368656202225752923074730038612273694671537216296404044751027891255016341765820801653937445591779393060333662359352392210822585044189175208649240414236252952467926367521181467883944026764726897451585610460377276067213394371940861477712450926459691747470170004810165630668295532434408809227644379230204603905279612937106593537031049037968486897642584469697036266767817489257912804906971807389815737791243738626815722428783421754480441978009248032366770584657336459082659650712442884329331783619896703212185223082125177812376245389997419917918465011346235681754865890392458882974396153031412824741412054305941810953140063795499476061897598750808841532849485009099503601986165119511851417193642615019647059698289801872872521016054328105687679275570531966418599500922790366123815170311274713957719525895309413727334236677055251375072744630885299167255397120266183678238252475028070982817569047447561369703220524758006771150715793962186642200909804686051769638245546065665126242641165067769741085430784067519320487016773738885961155228359671739980303947883314349001746049502833743335459722918896777205251934771226320451886028559541225545687441748808236026996093377751880100080141989905760704694593420472182622210107468491084279306451885772515275957507668050386066522823613607418317492852127599265037333449791133673599997914561571993942550343621107239610819807953380474180699293032612750756873923759501447155306150587217879351738161522482887814570121789558789176921794719558219585452918430270725355494453080761241622095910402158305760291551067099796192269199342630016779069760438646912781794260462928190682966981105436353181642911538451387334530763550422592415578110848446338552987083073811819383116895991910096803691441001071097740922107146314385360010109003950078119556897519056792377457208162407309191942444430748225686260785390915984576614961402421596503487782715171264718067651235828757352001794221003623310751631710150211894389265728535310260782346208456033443721031233429204960994790469894277909883223863025070168090227224923271130201689652571379648077000482503134575589007873090052546554847528972551490113405763370972136980032890748290908174179048458809495428720157814079822194161705541612597921174447853609092746428569537514705739741131974077558024628779212434504924395342087662659037633702872593626621131510952929408334609307607364708325265904125551452329280130371144466045350899170971635041056547674506397080558778719914618779638037812402967208214093431207024821882145363793210245559620638220820658691384735184178123431245279219935367079508634750953511619021682109771460334403245457672682113496362621290593559982099106655336768297800089875749563664810905455258420961422223719294358486306789647415329285257656244340839055764805349918098963761031459683311321136367737592459793203373139626055071271570209255448136493749711576572332690245711646457453734126894519420344469254898325119655169794519297675305793474310628358724316334756881957962382771876025350821982412261043656016251447145377614781758911515915079397675431497446213253989791187408674019446391081808957502678222614791953335082201119717596007890449390781365065502357884937527016068225686099484229431230955030158054590259679897456764975632953325362809582323246898094667470898904381776195336488359034619836527946686757454377527754943250914150537292978626382068038558434139934513731296564707171533422098285527590591181656765978029955778741645179414540011065593424751847584087254159127834773615814157264664224327309254667341840348997450632266426660718718521679204932308947328194320245318402631100260593384367731575314821927183483754975957170681942757928722002454646962323362319194820803330667868841432781680267294316001207969398713829789490591053050974885376518036101439652725566574132011475559226513445939084019572440858991072889262067047860382454083603563741101093763758764258410115145085749220074893912279024960020038173543878616050793816707484270437173803295772128973760328259017906824765605340891171801173645973300501242224302003172367485001690148486924291643037231481562355064920055584134509780181148947420087001717542896000355868438910753541470119894461639736547232936257787213608856072488801018908299853548266187354440796069604292960902267350470568441010229923075595204204239362438704116277631410945242972338898325473910436162482221476507086653246382069466830814238820726197087904653492218184199565158370350660110552948969421559157977124918941469232176740562626356703427792516268326460541567925070343325690728709430802654823866163290214655004045408187703108382485890662291577631435365611191833730631317814701957573273092081939265246716356564558481792686934755875021685224322635851094794323928592077214184073129940922364623583019657119878851521217768230271358414999081545520406440678514058730484108152347301289672394975970268520477216837972753841089400411670127248017296852205514336018353566393558082866484550920068999568338528419284572777559101596374914286675790653561537355021661115452168430137228363825960266829131331332674393361914912910014092667530866681520982505554237828004045993391249351449015116123549757634675231901954339975413875637489795138461318365383895020409102917369064148979688040861546503021746864502977706031958556433422700529828100902956293638825388816274794982710897638593897301906432812679760360224654353074893300776064084151997342818876144644595644527157236259596848351557632890847657414780529133310183227534442234669039693045976880680200386725826466482795309204429517685035854719441664705541677566934828302074478627472866263370276814662918035530078498544669584619989829727795125243037117981315473030839620528187293437912771325902962765665274536368639787596918984131903511749358729294090715209524129633536110528563940667492074385074266171707161595652808600035615169540121030966112928830050444509639249465160419286881500739756423226289124657962701779013649972357069017111024878935348948019706677585870321184122895313225874576843544845152048338605889401514424254612538366416487080900134688766839475568791285124844165303196023024124908412712246778550989943188794375271789725796566940503700377483638483042359455823976003667129407261230303215707637476507880938523539478470353962809937843567411041181829961025039176141367650347374558665298778044411015105737692423871054924643672135993169088956623708919392311310384577286044492775072774718978268287889343660973107999754060118156132183263666386942633649559296940211978718657185785770362578326797767118312601936477810415983780183345213613305539430935672248846634922855897007502843132545842122532241649819486933495951655967424355424319205332532023311477825124489802383047201344179402927706206139984702709934373624513667987275234923700199099619517081333770118023436117196729139240356968373861167544648596553863507993885529565771368739647756776510860351135489468156998345861695365919773013051097346689861237979715199089159334898660366253144325279665182194204223245876695047632858568046297850324378948299314625237995182811959429853386636333590664635081550146248752935836153212915159495485410545457202619012429892925731186558250300825461737408977131925814194751510142379636120958904372963042452982255516734908199338772315684099642758078095761978439447070576558117506634087693039700920290214227479933243770777084262432161605838300194771679705014513381575153007855762579445743756581337016396725084767312588701194751131746631637239961567479438447610961052975514831708978985432856519616579173902059077678133598171203567919778248685604494749514429297550815423120417461215670058993561785604356018724002365535239392609537677576296474831655893259110761215129460809524162667882480394564350928542695497890090393418618873029832049265822252267189529615863902956348453058537906568938038851402308447846568806902911414816423580861891029765304554139503965271986932087703662109964483688554245948154969782847426902704806224009099069527844134858479509727678896431520069209505838565591710057514340246903182759967100117714982455453797717202166138734833723630671300293040524250599721611786193043922182033674118151913200277197766982016641894893659639018406696856423727081842077705939579249244503424827262005821732379627475321390624217617268712353870120648575313843526270485555046031462824751438490972410462028158380159978878646425033212364164518255317402832171464988379074749624275766493835208532498860802860336978911204443797145489020463025943481915840550791298074793220231235395844552839893685217805581810156858333847286303864635340470045626538450577629782416602677088218624523381137680883163633135606158195115521137440080376649210350874652057661472717020668844787674966000747486242846879588833291393245299249879376111929739731463344612801243889798674919512578931979813089591476800279447001468171209392903053750698824828962034739153107188425589910725762836140479782857728916977980785416365254164357880926886845728572745456196561809408021909931516348615931144157109745385859710236083586814220353440022596070542116198133939022946866077146886300543565537543823501475339247403835468525107054176342356862399465071776271410188412027012596876947909414790003229616391787468340837530092294125639298616504352226216261388494955277820749778113725369517642535138571600411871299714785377683982846968284615477233445778386318077937781448661040216699505384641356064194518480457152200571806376447214555047856440400337281607149383884186161761723917574283128803378441474350134378949153501554221444086515125427236421570520344308746918605672877735549064297094133065575165741520509753515990821322971448317178779222240576035127740903085321332540126198043440748703135527532588506477451888331313636115671616435719528957107706379322494778782254706611296331912203543262967381560390402157617103163606117505714720900469079464155106508111802447828588729472527176338745990628308878323970691111126376242941645355337971976122373093536960893195381926224412644124310348682569871228274091647968790759855483789970205045586396780058915188030101032545748055274185555614173352470272221476228048423328459260635849422708312719115214011580886630451587132559292960709932519251641545033312706006454533468140837929290723329182812040643934338577574126509389533384086371537504846687629605979864390372140301532242853496678412132025930959039626066307446652067098245318540478092650242102316660627093594484635285948522866090827508096692732128730161575527842803361469350006458144971568711026567037924038595430571248663477971977931797551580757597369160826364855691040128594595646855115096957088694204804206600914483971361924547543291584393816915481714373832718901963130602810139537745531179936213869913282616062978941300256861899653415699448793308271884304176476426720362730052229951429648336315895782828649575206005831973675633882031078049008485774938923576822734290171326751919914295223408935169007926631746883678332113566761186252161200174799371434356034536101658902709483098023184177522865508110289884268340500544354214786404934787370284426012293803399589943265122204000022343208131223269191661110151287575572122265663962242440533605018245184583637367272572985349870533503935390502383571193557394127977298548554574276932503208421710698166049793988815908354488521011422604951251048352283626127964882684038684611237969471002310249826885476656720158039828301872899663162259988236540430010013428345679767974681392603564642423904842244474868644187662980763683133392999583835776169918749367788786385271516791625501152205728404783769056228155067830163980282093660985309804615808673093233148285380191054441990919892502463155732409472149434852978641496291769080218308964007799913253824461530450238642194426638394641427612827888221159307247345132571427719737098321439742782199194847640615302623116917300597499350572195281640000289282857378313369784078058345871238401594401490446430423458551752995822444917367843239116455455394762163475629014865584185714540116005260300415775636096262270086567010507220407673518139120518486146539031709386388888548698684993904071566099909457818784381426052828416872597112247002653924765778232149245390725054973361363795228137482298898401692215289570054056832679884905178532362129634254477761129821033005663858441107175177402362074724735084158503380995484358167346907170015292500893495461032237509759545335253977882213940028522521876563464008284805798586369962918595098513665078489339305001671085153407852380912561365192440957661300368223105771712025927560535706759412862490319862566668330816877122118525899922101394366620049268902083999078961125883551219581434593792108249043586363561993482597796632219314254031279948013143897457798473347651422926232020664748696643138437310713764706611021407977234644603005070069224294943681887190607712710546746125247269324334429579412069402532820654961114158400366795078395653973987639659047342868984516606444590693853870320756438090016118309701292148612942228516410929783731398884710269531929580509444852166056706307401348631493828756059433181496633626220951952628888494668062425385632717964371912613561885475716152441576644971934135554437003995324774552489868988716863878442383241945383058611549488965485121038798724486620576749192503431455485788544061439606570472090718167683724392141791068927639745218321479084501375937446989955580447625865189136772330678840446056463450809268258752026202527153483272962231373875377683921986396196637417457303239887860423077657103159807561467206004897129228773397040293624335104998113776416094053299181542756776694208487315500997189754256302880187918111166709875001475616032204411315213183080444362481356736700263276371110447079492764098232873446049319624795322335366820006806003167893408781793614628905968383654021228277658914708403336832530369232545340258798834010688340984293775872868676405042016506696159721762982592250785621568423020209050258177847446856832777749544957765806083777484956589815976682016695165769883303890370018222150697462001559568142513794123846099657090319336171972890173333595675682528610620471166649752077662067173031295697771230409208987410370704485914654704866168785325451993440972824266697312878551950030434723777404490770648672289591747081438505874637422042990030585246689067493491304321839851989551635125645955901191069507257599369277303216745010496887988681222363497692925163043967291001984827331684184362478472619393089374294725359301981986438229284722802946188104734854150426844827982983456270408535690317394374578242379074287506283875507884005695672604396188825744184227409666934170895994327315760566611231759992505687701926853017585384707182031425896864730982950440555146764963645587025186532238629161084387969269397555065777926761997079680252740885109136284332206948663100150395495999829141019815122323130243946506608828890192933018529589127025439148355254601458731258248351711346849445093920583233802931137182398256399888194405358532606170404401996532865361423915553097042084348259070861647733839201418091981635247697324003254162286990705962648491598322247274358872573468007674590089280412271007842015582649650797988981226679971206354365101895733341484966013241200243199902355304824638220915057595444084889106756093283289495081223995569195702980654869849072852595937339555068429488301168111962973681806346063373756200474306560716909336406999893346190564350994191569547337788036058150210367422809471991103178777856218100506907085592775568050838701099788310278687647505989119417179035926258361869917429337728552178237129649256008863580279861458829785611380088225396361918973558312951933883055302793064038290625864943521441798196721640468143334271978915094606228924070773138549841073829049027052216410481821252432056877802477849686080659166156641302494629970012539246510569788653840124006033916814618273731256881417132645041877920738145643092553646631240879816037584891952975513813553613713264276609662847973554431042233569553279616177680844839355816008828952698560137001191131441942040141063370225989453266087564864228079789110388193628647187543447998442167185587832821630461343332541464671317414598635984707343421279967614587517312154253235239676857743316513841667053466073657047791032238745583912946743703698118745106230959563598258548373469754704016305551916759501444298649449672026720399383568166504292383046648335137362787585435994965754611488674804997120393627331193510106984484873937898593203259501208150702404023491669903963877130116343075594343911067611778685274360787051971438699247978892538284347778597200301017261714595810524485379693931960468202649329915867964783702665668497201362881160420124609205310750955654678461047131024590549612678632898177627123194067232895583521942376643854309453475066004217289880885592951241005946626825194897914636992421098757189681648482778425136393335076972082565197899415080629101786139028698251597504841136363671958955618670342307784364959014358868103786173254354561083891328819832549812025156357413930879994930609619434067230210351927381964414455600527614856954627441826466091513863930481298612581313598122883546096157702855972178514272092610159555315618662195995909675556841757789414296460721241371572901389600159321542845426378031039753849849422808205067868518194864924234302762861592158091962608195492435055455234573391315465219156453196041900902803349955913560984843071626812315600991354749034125590028414709197972066190501439827888748839235978325177028225840120060414701836909231948238505697084138238859489221796395287378133611354696595454315302370470263066239810127510469402866324274917001583754247222235691320644895023636504933293802150509140633583426010447475050423652889917767036621476954776881273257635891158980652265726074125174660269936888842709249644724004851248924764776409195470483132180607481098380773840233123531987767036527699421199784608892675654398502441508775042570813812899923307075310942841937943888759309536268809707777666901345375522863771125726744907270106503536676439071782108148939596559455316697577123393238477891663748086308409923066107011751389767630954331066152501702011189888183752222962267738145472044920233315678864026896304613280232274776147476023384705859797749346507797767108894089449140986161444008513422830652680366622769107331280610262854976167602827084599140303371311837921173044420231473399681882539411753540006421329849913466435151422370928125380065800004996756786887980809796823008680264117045466086871837166958454488471283398621737268497984648185453181908167887462280703872482317450804111420786525640088610330915110640033021120152985852167516410781057275720438326166514514950433966608630683353124083188473600162513873376631026919614176364030527490119988992839114458677853365531143732956843894156237437457565065483972600566561959529276739996923567692462647386192190036255294086197012511660519097369905541196835244167063852135307618931315671650095518057819874897727084100212813237513851671893414026511110638442998935718045191069987163292060495648062464008440046801433747853006811433947984986576235797634294259743518134303600889996044210342886416556106697355045675184160896903934809275503039740606109371170735984530263212312677689347573425009228116878551252814467677648435916704531656725190466347633471919101759689440649977430131400082851681615948668446373294291048143584955358727210029936006376027679634692668326289014581173125706250780576932159316737516332194381064376113271326530509079529061669054777751185600597331895792186971349974473854556257252280923696155194905959589928148738367734740666985924301501061686968533545436360494267434299479850618688264174081760355962220399853703055603301722748959283393573243615680492004577428190691037714691297649342594222112073992260217563328852871357792679286196243317318401305481185364383436796189132973818990877400068305985844713439473793873688388333682873048591325132843489854390454622045873785102268169379673498577703664182096364773422827680222934120437072031976481297120763537656237731271154657954477889806584107154983370877644552047250567310939396005515836925471330178577234946722205172194908639818582649178733149818212036290347969806886923100282165131563888081212884221835256190868696913932674765812878200169469175773208769526717387238754981105004025205754038195909912042529589086590830776015754644644268864412108162680907945282797746394999581824402992209982669126056941628292414367006123092600852298294644496497261410197663157553694031038547917615616680794813359928295810714825552382415626185570531634337852228547799452195622953613398298420819281999893308915790515060574910764625288250111964037824485842264697181681236048125523102587681600266052092485421279834727403986231688450410377464461222230115574741383555754707100184144328416135208871350001815469335332071323650329140003720954012690582693676358906218823846568550667078778074239244923891894160581495329802839918813725362105052833706794071040741343408869285523273223115794413479924410219708602507586526072156596850166681274855989821347093886716908136842289774737862206150178790870761479222578102412912710318597333533314767924969921022054042548756967195494537404503911541822979920354401188005627281660024295246892737291668714228468408411347809788216370664108563459854750652304267410858817309210778052530913034251784995065085223120872492008533125009905122308775965874748128807269762730499064840261526500467514892184162711961140724157088263115703245894117224216391038057446166265809865827865497429070225317063976867506293492837967811181600906411005735786614807805238487401814717042718033280783552211969646674995060603371561243588703681588903247185098909911138361127017359380478687875264194480158536489983112004964804883720385456236357398667776128177806347392527379504482044252831690213062192577132346014075730289495038935770615380190464522935949121202447047861410952241127657613982207817324232470809211109724256523904617609024060533110214257783439665028877713040667964325669127039305601334124225651078005671297998193057323645411231692677640027805485606520222342009631070390204380076127970589659625951275724949295461551400931172978923519452766130591018943927799649426590090198955063500328671153825074619175380721503921915705484256785108279282419547668099536150708561619339078297854957068210390341337339147873235808473863196392117964047177106845706619563207585243700970162580305573961184962416599230485712427268813234662642177184338235822583829700088265771937511838329891253094411670948457440822646525071752049792630930831954509305899601479615625548723178369492187155827339078924765945432838847678518589167722162429492260793655046911850997964461206790664159678714288668147994673222457601264267901311019225325520841715140220104406620029558646070969622673308006075520287603340027490763563940564753286129790609106905842338017723982150260879190916729638196298246803340159252259492606308754176952516159551825160774332151291947707997524838306249775559715939601107562487489748416077906897055837060314419873015823279314242441909298844921009417880950921199646020100297111248854149115821268694575324352352878052701688343262723938040227471679738101172960320192573249998644794428007115250935785718297549343255935878172348945538608908841985452738929729325475033689547416174400166265866114360572693456861296818417047073284959265694559910007443110086006363403043296237304267547823174611121331726141142983462281078161499055532284199385785374430155487529362976289599862716150769467244613850331722140545585233020921698119291713962310741055224999082868817037863603401985979756364476791107219100142419594941536392195294978522823750394666084427589205305548519220565750303584988789952220617488072848878423458228649606431034941761360388544291752127023843874299487607459649374937033079137683455046465811810334543040490700183528324147553686877976664992107844920809376172318250370629335436738035966404448009663962786175715005257851797161515452028843244427363178635256118052933249465240333152874039868281479591585293282480671977643734577487467244754779974527940464049233757869772827550412856777197365544175477323311418222060976526875818577104819646554255414615920902887250554645955287708545259932466082819141853300426073423542513316669943883383068134527360492746873459605849334922997505209218591129981187349008586136549305655392689862619191082251013546944320667162824673244199644883615693609153439303385131866811243920361324147821981602657187446507628525841185444259416566847760948402307748688099464325354011716810133767932649444654259038360964618715326232315814456913046618202759436873386927570073423375756466066715456620701804499560462535748063702488709223273497314116700598401900432289609269696556812820274021056946769252336638662324860251400751877664423689657045466262485214745041563829218419671996542657646218355299573569897021750324259325698176900176667203772734190640235996896682087164204407119231681188054292604441388949754994455408507316586162666768929560916692035969303797639465694149097179065334107079762954342847371785539670598606637077359726851910115018167480810657279573010968372637107629311160377051908064231710911877473846295240494994559655400308884587767025281054707441439446943123145091122540726608162164172984748775885776834056524815963820428541801338975555176296947735978411831938687838260405431604779512420000063662316231701260887016884501946612123866526089861744411396618804749191428284090031466134063380282337254683193628764725181821320582057041031318499360427013629138287559739178179725195480100438599778208298799374611166131970237932835683499293468267121610207599770307080833793442532448555435290814572576084720176710149376993114735839694964726808630190571191506100405448509013787883436328197202521400053773408246399085287892979353161357825755281725020389677949962629066458731124398672322993291981493172480401483330824794768061425365381101215262026113991494732115680334044777318589708562353103425783168595086195710402960320650065147038733710578023791181599894158995383083955541083004547932853284025015446378532685122716902890161945374307214464955827385004504487339337152734999651456044286576906423965070604845267136495636505150677995095983147692643422414179921972578233509305639457202936488638791309487378077640203074220938580380850227750246619327172027976760205827427974343068582763688643052979997135425981754911704848138924201413169040029681749460821185099761331223459708743747459107021649751218338265266052975848539183107993352027168739064464515768711059024368663789403444231715209728817229982715565248463036484157596356116806112571079918357047261890740475477061559857876296007555479690848049003248475766137679177081673754498252515257299262310552331004572296607513401582228357276872888010148158284654556848101265817642288014799728568573294228968296039075029590143058714821151503377469774388600098070572890292464473918097120764328263079360972214843932149304779676150774954657370755484142099919126310980893692479820843827079527407104559629198637335314695056357089285599689117437165867707428729757729452919031423621025159945496344109028406331274925018479605738178300665796924548366451582263532678248372855384615361042956103369156858692222935721547532116817087123501255185064811389491258743937386151559393482094259293680546162398090180203792227080116401631942318577896663949651468281179819274730540854123662246421748901080069323708723009377315804811971226024408080897769974652942714490805305938964611223004312576037379302808244618066825227021945565826167644654602245214376929203346431211281096346583626090117907005397269350790550572091692516913104803558530716756407837488628303636672290311884616762413618193308725779788757928797135648639252109098183995216347614032292149661282715649976334155335853626506588423499052610155474318574894626656875923176727367522898838826359980669890418040603144558450018506321951622941582156478556505710970186210175814768716035382904495026331407571228753587068842326726150697540086964347876717484134641873333663646836490460259962983033885740883899944301768053693572231613131984675324271541327494108441603042572821689350889686081489791609734463398956028452556367184456538387255866217159638043238054413031601599229249351769739386322028720527180982618492164683681563980233343065489138437457036995468068043914029212530493431555033342806703501533194828063680064103560887678032413363654381334807694796494790666377764350466236662251721623789112097952390038403311175335889161871892564821664193745158140810650222089361457522218039103828629526145895993442252630557605155957905548767518456943752097843190108939033671791431774196077034382477332120051285569111836139270542904316056995235175742438431352837994293300711812197766190508439111218578841417125536924035588322048431626095425756631481900726542446726457235511771856387776703309988758828542326094397085437640602067303269615822907533361455135199202114234969826561240411283216894211067511343332998881697232009901691970990965183746643535953549527729569494963273692349751395605954071163093232359631596876614333904530846563637940570767302443438076150052246625628421947093619397699604820607041387072590032703821760677262258516943610093691047868739426271159742577312104139828117462070837079490118238127198538184396937548707948499895161993796777803555154794025713914123768667165682683157289731208184572717586382118637411146012324801215564572151313476593021043761921600355576321610049775340550934531172756680640435982221761323936730821036488617052575726778571839671394178520966635960129816711685165338093670133112810476614768464374165115421460264292818120515447847282458386441438908935245044535997762570895563638245151348699454997313130408012729447642608905226355532026616202232750638447571163657114136522895588900524175915359776065833803911329990335149066412685883789790672290759058009587869824442174027059961042079078811700545224422230642369888886633280909306433427419522889408195303571622019252163213116977043332826245370533122353094504287266499470367246806588363429012725980285964223988678551165065199948271569155053479730192666727481397443378828573566148355450669847038332327037114885231821827700243675673824201753740473355244495155158587378256669803627971177122060653552086126014012706976026897653107089082391467277505212127761412400831571303466891303220087974261956746584674034250603313201541482107444147556706697095194526482210909011715926218479892921539008001104830074188374257795663448605756425723643869506729792072985513399326760795401594957105901607945559848527161546211839537253763879133483979750536499280401413187652456056948708723749829535329871299051764478787399035739053263836266568254325221740553166028375502541964078278679261915185330765606013976841246040955404905906646927827596778646386986445293859035063664808433574154866759330834760874413444904364950717651544039814689298289335059139814345612561515467576100375546353816324100003740287907039296087470179444215025309649505593744627310404426307109971321640735407718518930906800730533555670452317854048797887359043355101419171961554269002413011869446227863311557583585348398493399880441853689689698132242667009012840074774191812817698480746823942652382776287924042301247346579326871522966447875196984877406033789722152664015135734438865682914530260476922205249266279898313230039531710420068233434759690048535264157097763544854752605146854407362750400692931731379936437016627123015660530152413638449224016116229212388148065520341943676582136960218403500791094145513769232737477253030216615156650426792402988938247866030138149869329763981744354121348317453585576781463467593504018272277778078366647215111406660148665465520560440250938576031968520200828498047233482818266101281248220507543161279636412568701500876396691683599414269924032166751259472467655768252843722065941769897715989639649497713892023980224734127607681336756131192493774388585836311894165443061155441767817314349288469956515367390880893378028766741001525248156301151089653785843356155606295985078127150797060194526685363872685385194598105778152175530850227593626248246363133023889126027614131417254933918025122700895016442055286284711430682276965598097771505557625016936523779381378800191616711564520112484707821812539008772051351999077498423602643199167166720833088770341121105713734465052049900111779216005235411817222256563656409722892865975840134228182462239800884625426290683843827759477304337410001215538043131611724413558992226109107809432098103134525816857439513675768998084428235308809337712449978977527858995147059768019427447222418914893362331901047580523127044003927605224536533338024086212732352390631843525913322167612006024949714071157899692301630068563402397999376382534997330078189402089543469044177424767072401110284230008396008003551489114385919032193180260300431790106106296712453178289084478326448540008112617996018389964998018054296807986346453511035107765880190605563664916420190566865316937691162943239220967452236461381667452455250344895207882115619353041069759802895431670585457479026322827675602357030853825033116916333974897964647897907563087190640586915430485725078603562216388451233179358677786661568252970218373057616924013033389322667015016393882435443682947429121070761012219452738688214939667671371538622763790047794868567613688647292941677184829678779619779691192167186668554339850005505762502763163083596833173925620285408328304084145326536058618420277123969183594935485221246445687014861975181011646021076842159754414892623015508272394634176839203966145261749273322871129210446940934723166567085092990497338121507537440652334263989241208606562618715764861864107983915294865492611874076341693078288058436890718282905659072347363463333439298248352030649647356817317268366191703695756002703618341263783537078182107694720706054464380056577821125656268088198851873184655688022730294255380018033802069879468039961804693952459953408450003074016901722900520686015692110382521149055384790809180463540718334345008228363789648832373941981932573591342196205176636392243282903119586898227822967661589742818721699430622358588497259017738499254805782897620251701414809523933864886606861867693898683802447446161786190790020792982731027013964161740896775520216854453126537944746603726861294442972207233407175431868663063893759510092796801023047283305090765608805279705677465790725777931358170511691315479024402869748131735579222494804683408909179355218142799545141319072483929185102029820138508568743130225306826765998435915841557610054334743936342756347057094148574662504914908864686338774981867287969370298439017147969809142975319104766314846196191554423817706404557090944585602041577074538875424558161445347777403029228579983958938971243797346561844967516465325184582937686782380312190230137663043448858105315726408797377728997473501373894406392951997806813799912616946441841934565844435968988647044814006570343804456029889892822205664370232747462162704752389460413699353830890237671644825521366672416429343942163423713530228969361630515761391170574127846990126466872510925058770030659652193520513093286250331885841888315754503819238252933699863132985938978717084805641035720192425097306118551804465315555864843917836686712172147086972156742372270140494962033037716395464040882178200394661161936284933187296917468447602556121649378306608042953730655625642274507185195580532660855730194239231564634942509626300788384447625190004172118189625931599131793907207147834684284423041910774512069712018470139861228919848326617098272619943457045908706947540862717454489371749695575691330670078147960473960451944086205949555477005635461711148247628502945667320333993739306697960857559213240118518145647296656662254351225911298394851424029057220448613589489588185859506920863791227938672352022437430329665548612052434983550213020846536870191664267096598874759818976894569265492290940044190154285749562369537646198374533079987764644758217762213902061632896380515981463867536281740130501503007684114755753146254208062431471802347178441945160378983892720667818089712921669564986353134585521553855891181292893550616943400983693854475749208901925385378998505540858541600714216834401370164665316779100505751548612852704183702325737162036352683188948929396283886327018001050021642509149117295486236105165582555944263208128370644977666312927431017830190869802143075840412288153885882654182827637013744166274030676432660503983366092593166928951872342776330532502158981588662950062742488202553656726038666329332583318562369530795859763671937614175077615437445162538219315490011989824847468466328315587473180041404395711493158017940867375610709808823275847113075742565798405025916079760722360977725610650138287178167980583309566095441386007672146226466794136537767814110709750786514025859655373637834075703261804670172536988032257688034476263630196868354661348558206052993486618602730092711143690989101404841110723543220769867851822214825448457773278099596754586637968165330548298736216201688013408744528308238909373405735425345110441535195048819370477872487322484092769521583144858286245183338821665792031207608708204948349226013152320917595854731515076757028412004762234787366301709259224531907832470474622785058882695728013414225932507438099720359841028126660322563103339823733040742900274596930093314790958714118393403424608541092999100737801011832484761491112283423073571264055956199434741251415093677442061341863129571164597224595228607773589471140237582685654246891428364166263343923227004846064726779897406193962871227062534443041310319075311766670606889454297106632167134200649603636992024347739935497066944805288730355704255423816707212592285502972931652073968716140657121605049857794868541614977843955895913833833488434451450328382561454531731743147950757451459844733031413474495976393082694160379583869892321808755746600071112332309572069342408691945725675188058604631396942691336678073279043762583099191040076128896964060482599935516269892888120719482140670240696505028764883317765231436629983450078628619541752131032313995750372847281103369323025364546577100914967243909272552910064325193209975970116408270644397015361374265492565470686650034880995928580847092794632133497105397282068161692279241820209712052397290003780568150819309081863744676568580988901403275434583756955744553136192408372982962256868456403680690001356108726621432068934891783750613694226378636511812143275313690037330722643313737796518904254080176809050630696032324020976976210262610569330973767754715967410709462968311573194838152412465492231355503331615309388443591930948876450571088137622026994014487512356607681513368943769219489297073339911069096452700653673125943447249447917563420041873919629463776376870601201462891284488094896634878424306415987865048367176550667121922056340041422022575681054788255158898278571434878446418642570542008665127443945637184411334079883800226357198385581057192182160235603528190196516791940986296868332213110871997317050757454802606032942786685355831288553920336434160559312546173199673812888070192082459401526209018251392500611887256550014078644455580426801375708499049588049059012980838128402645997234435971619897241557040411926614789863817043935447592097365229771159894972095417265322326758208990364931996934727121988409664705675428442289806265716708110853073831971942349921529483966404265099891711712274965619844745967107535308677508894584268229519834665597460412880756798964564835829531795908461680550720128864589710019887971603512310799649228235760110099382552267576163352623775285402798496458059523790769084495718371978121133808605675302555261865660146398823968497936094638127782331687385403327559448638336834032898942704924301785258102677709669160712408022424186800113697177377262439302050367521924975414184353022582329530272267994336686231240542922206348861031474615370338941131891243133708489238835031134817354146093925685763823510457068026820610624013932640302019916739836766300746043556403125036952324776283580455226654563342746842292532757447795118740925999321423915214802133661581198988896761006145390970186908389463117942668941617019894389611000064315387093035581298135367914503978658523291457261470078726905488071705222755712936656190110252408328332942818273554845925160885875767862871838058642998778048281475622304343166955561649395042382101008800705376036473291974524070206970389841187289819668779876831254693653871703728869860333823018225997425374198689955676563505026599320329763671684988220514961565237842062779019740158102795670776885672863582618817975557778142226625350250265856840706340551195284513967929730318368053935439600840371369249346781965631467776473817911541383453385527995398226701466142118793763796757695929115801539929997882817854685362774105891585343428001815798780482010109001103186594857066601948404540815549018523767559492346405916577653019952609272145304987734970013270072413339272818788262969675847086163388352179544771948019330331878497611957415423147265164350441054972157793016966876496754751820997270797300284311326943368215198149234534698717723733489207428901658112973387159555528807479773241348589708956747942585705112089393021370371807504846135949496168014840359412406477238950342166739704399453400153411907985159926010133192890050222713854778192357923552179883712786986732045684628401582764489526899944186653556557612386893897155664592518972952914143293415067643607507342001907793342432224926249201770563330637194558359433991619755238450303739050236369153324190548898692672244173870305671347879842484840573258996457475645970100722105458036115272938896891794141599943865530819464359880425189831059048877592512230849499253828469710575958256708955009340307432436090567116808398586199552595486327122001542045490172759758822228423025419398991899517128461735641531508982267070077993529284773071362744815174866268750642658294403916273648842410080917474040646006313039811391005506626526707931710636485365184287127206615808172285741651819308855945165186182238112499987013752599759447090703608371731280640722347553600918582535811399907124862676277739239105733250595084697357255746867868717810964856574333929776646596509289128721112353639387738175636117171951730818616643591171646727273036195578075354555147476092448758177585612032263203880218094769258393918539660287901783463909510840882525775499143077726398542308687529850548194247725990699162692133448120692566908098277610645080271427140819494315620566336837698162484286221933206118131642674917865415744267366623787711550286276628051251849773212836006964922722611923184574564715134969380226245188682333134481950143007430645144144821017548481457346396664886660891924472439553327033545105426376927293246043388344073159310750356054468168504849135561594928446423564426977849698095208839956943478013888580534533070821322185534054856429358301662397293514421374778869062289511942931257302463641351518076042754581632499127152452383340940936615310489368407733933111945536705401506325389949530222236212716766708216949293771741261146445765658240184351634016778114065345421446299316367233980271334141927367706983511999791769595169271792209580808171352326937142531039111452637127721199995587000107979134062642188325594158886746711907422421686588992090544027438511795670571522029229287421014513734623919396859683942882802987413836236693780424336423987305967911070785097872095964541886990883344711947143241447797397593637581282021638765343514602428199144571964177522038057195217602603057091739675745631035107809295130013943526200405327037019506164076488245522658810469967741052722882516276413040435937699289499858798539413683770459794668406510757719011854890128491031488397594415266271750710743079740323053532292774504501656946689593495798459747970631962853068463738225094806136544557662584807435897041545154948347451588640958914891983617279741027839258409729895510597456310081326035539531735234509354416545249000146835264256927847526065502204877664500951030146287654649683706755689102408069280260396630914687488754495935698458935982157311151149782153383870729411775964737212849554325542381557787333636016057218850297011055254582163820136345273786074857519243626017317764686620807618698363263868594160590046300778808498207171911451977510620289452669651162321543904125061292483618471530812458441036548873951756386458547532469204449178982916907816158950182123028887505974465142503018619198124323963282481611542240460361852372715316584319568157612276420368158486877523942688719301504192821339566297315813009502030376693783299346366082305704774037549095956423480078181048935034114215860468429707123894051487361999657513446759088348720876404231375870603774577757111921910786756057767222428415880204690898694447911288763432327992088411512566364201660041432573931082667669271003925400006523319353747530883329906543585244874759281450895394793451661931701241643141826311375317284235568572394040377329993204713729507102648507151867727461614633805283411505114601481083434548147345242795936313424676782890389892216237288861684661500446439781090485628815218108561652326289064715940231785810719424186302098137902218903173421433577899091379874516411396824162468280783366911687455507615118383518383593257181956301155456698228456977085880762965886086848475530202845678498489513352361591903048289067941762226902540634468592672638428958387264087939013163613269383778052530771908413492949446519329495405495239704991561868385672509249293335069137134239321692038412155815755276575503716339393226826808956519370744734317877184816112304210575183577691044985603087327785617150882713242611696928584719600086243749444209717304737901384380817054867190880434387003811454791609443711742696970421575150073835663921052922834656242370145586071306072727003085597341833734473713817766732997169526791834832580469618511776046010840312500572933794057200232022308191323557902254399022505489996848980808307459566056550564387354864325782453517549026408097130873019752822402625010067700176971193194210309058293970364608823459893936007575893452721172294656032304937054797947854872033053742775457437731646728501243662735879126092048504234801423188262372874503737517923605073714910994843316396500760716176254635026792286309283747568045354065541650571017733505862388740571239896264607777015675504083450718562785377929290689772754026445962873333662603577192897052756926172760953180564093711947175034538343727732354305208799092882091285048348099620471236170569113539273878354249997704376533374275687051652500966999350542019606389748733776518768090196008688970486624334328267153182313792328871655118777706601346775025693275839717935751174722954700467842798488199426607422135456483566925888624364322179130815677554024148325159023438466708718482150850162309248222075278553059405623950733959787129333364841479366941184447435898255638049457897293053536941041442367312475811360943751087593126985786589303789128407398834935298412821355724803801936438329256927554294367709650727938063364919238246487584767266185319289036921278923292461775204908771459223233776020580957138478070662450683507245498696193847827178742504294440483785253251857620292915923965887636652814573799694211008853078676458576202997775308860842292254502406310539712757408075406867063285486683112887706020254140955199075103865597981602021747451011285815830825745131464028147192641419695673973546156452916253292101890380222434497291177352130739932327652022559079870849092491967031917424160609478469138305586403807116619062936331178786365788278141195510432227457305321689983200551156976589803197261319503247934558732481847805723095983702840425072831592720299470561231192002172082614303247398273367637489563261379532367623433407661042559262838672143746362676083411183080224562435195633153661685803238819901160479138257507432923444554448427790764645241377277988139643620824688764567003754860370628719815197204464063294419225089561150415896746763235752558428859883803936689987421962564090545856399120569936243567709375119060332190006169337154538931566846997229844781614109138832215843852744629738071622216464078116842544299712498522723238404223148658052414213420350795787508140954283284465285316602665881809395502514305762431516830860084873230608381420081527574857934640670067279151636851643996404573584107252386386101391500868549210902862694638904425199048208951472472082667379661376188939348265863131994941960569726097062051015180228842889653355087502382927271843074690997250531095280144868047559433427043398517446314991063784638512718871159203555485915928041868965523208978196532395109344835979235944666804852118056370260093222946881679185067963653651704519468934833846721468841352879222623178838806979454092216465935245331334090048787302524322728165711842298154817295701258588859535882913001724759766510473321474167263488485159365881193838095177188322392633361909706541831153730498281585961197266579946384426222119829365289455831783587363561741693141962544079825877866495204855981601405319426831285943922443571197438659908498550403856862565049480671468518322614382340997235577848394561039559730612408885952305251400145941507467056113532000356490898829216060613617549100880979872117017559001559000060043245386085788663134191403461179936201660421138276358104249250712365212048682042135068441950260877783360040567140688085033791507144673623154379736547832267651521678236382927876461573906218548619505723026825458933324382477590774308979710480319985299102034308851794624385679195444855692126337561669696265670035396495163134335513735067591258000658627303768712719715713920264613280834727145246426828230066161939993180956174765506626436858994219127540299441184020060660253515946742219518637597342423030915855087514018186974314453315726442238806840892454664203758750066247452610787752128615680962613761918667661498076942864559971058936878177032339146316673483606416395435612357660251847223185045626183245800123281936844022352825042471595868316327275777897980091096814559775149795665883161440474948520818657109623170341180570725345968006417275056478491668364623914429611662833314701936384257544675207894535070798657880579467431964423721175767475656095857911677118338520710562486536807298706511168400441480873287237671491753921613827975186753857853318087284965671052796538741353916290922281388379655764928452766661002563759636845936799364777286395193211581894009122333285641258830891040233584149214552697584099139275510442956160002495562886508736673610878478171961009798611245273124253070500880778320114080188744035983399655937772233976014136950793853637168635837287703285971482471947279039337867558461957438471407244539972318789776798243452343213206118857009990691851269719032359031631373764697368405399091879272694734857589280861137706102925009140521042821889449530754357737805895512238813177589874189689224832191450222289491821885726246642231338701814755535812002534561176261666814805402921800443307287647625746435885689248572843121369410423395612630702474214206699228975443690869576383496168832385148350099263928826253824002110926263260549058958205932721140775037467824443415431609880643029077337912405851480180691903908052596612615660381984063823954258457538150298375832216283639675720469299324089712992740862644805671730718335990924995135795564569328464520409426373339049404940526537225345123636683777603859665356587453061135183598175467368195207842518902775668636725971750730464505979984082842862353693994574741987023495311739927631605990591506446517306096313251546651419269431163592008242222490739746439497526379631059238759280641542447977680237473603637521622341705741200455560844457344016974186395632523300397507738501710685680680664132898985247443571535538469410030532358162838063734651858885983587749527774782575529789211781969606964103981848241698927378433576148993483928077113215881065694865045240525778204841263114831965873069067223681438175121008442721088388690355832561543493210776618227045688696541601256591800292692723637087007129117395800427988046331176050191709037452686704684002497409956169473079533936990776430355595810083362227805327866541175426410112681381971866150198649238015403519424857907143023282168816747297714482135937990569231887696906128528086383283609314828569338491300204582707571781554758960325496632558395708801369754098209880972377117012787629313071850756561949257083826050681594332636109181968162449657909641204262557370441879767136729794026291134298255998095477373324362389993782981976022168892549175143559279577494171915615750802857035301588382964605183320282930748509797777945816737347631846393076119277713325766929142620900935378606987105919418115133899141030347744140933082539331575160758364837756484497440248573587648075894993464731294190650089571132923649055854823456700155394744507212190403722161907725763208055822968251922364245779896833526606892317463406687620757973176927647768392964601192485091963542164254385474375194991233048729363724960406325480425371718933849129612778177335138354396819180719881340626046146152610685086373763227100554897457772890323807452760655613110040874943393908892121763777147990856699833171056588540951511773142837258098154161573368865937102559618567088993769898226587145509033329120949977550199950749499311708776627813181845263918323644228341348356965991967981700881375786863103985318015377293773757052329874182007529233237839765931459138151576018858086517659586998694514270591846997878742392742730926285979977984765385007738092855165937734212859429119089000748187697608518696043482177525317336826282560970793070173251716680182655768346862072361770362452058400898863981272248292708980553883289501029905129594597292587196071873744964724718059147269072762314803067249291092785487021596585184628763758092319766405746515652572358235393290840278595547795166184163429174070495821148876591221293919916168494092197041275889046801177762951344819617493294308164295063979914809503148810715185866100767287398649950843071335481969179906099910651608125502291021231821776523895053040847383970453661491220900740582073114601618208233542689408694703517651416252711638726441561437429250578189160791755106068232416460673936072620640491004041545383067383181045242564644180502132201728991622853265862340276342972051943449420952052166818166483703523414487606227517672641838292527002453307673688314924874230961126382958624857927569567147074764421144715001611237563926375724096434716748951087020048655870022014469739159975748964884776573058007100467955668592252593948734690630652760493912179772336579218106568319719458929641366155012028561170106613573557121177432379087213350616272543921023619304619723895668764928908240263817694546177947307205895375601834391219035184622124988728091609794666220205175649853638439631636007256969478170219115482030753370153221681192022332725459146481440956627155903080440602614151068132608348823217594031145683200147523223134514910962752066233809909430041800824722490785052875749659272278175604905936102642043403305752944444149271623455890543249369723563746725894629383213468552152488868139747648891310912249958542319459397925109281608001983712153595249730770631531632468719951489225041207943335577068056192923337862099843354715441436947899608855754883494295361939437667729143576968185332667278924827058086786299694453808182257817153741244040451820695017010315650942058520718714488413560920225578325869003441563312940943890890290179605645206264909906215038966808833530814562677131221148142170481235224432569127617337656528774482878904898961468206544813552288260736020314523090773426271844754868020940172394372991435075341203952731696914540188190825694448797597919392767164816278959606123627733911470913531961886669227734355606619143140408362702912592733788683943865583895631121789174427755573097453215153941948852242828158426592512423380924912310428449291959999279497347082058799533120095290276401185779251099417381393287664070987491638424230310992405386268276559742434086324063898955729262295238721247130903150580648244256420523545211489496892562742512068310352597347457037517562054940351856226854698067353689140991706762213555500693869810114603729473511434475568443348615715181120048540534451736975347756397852906919295094389761094953750670498363061140439531595733116129780030652138406810609848252138931252974078291895280004876624724301727288465326190721747855756855433345104256004054061835678909239609449537292947307367614857167090072047723338087377329982348329739934308862994107726556138783059826496119799955400586152638360852610504644582470764230507132600928139046859878073552307199669286819985078475477544573262354566630523707553368017413156951947652538302729459432655522673041824701043179038455026602690146036747048865894262673989579612953225912417321307632407359355624203429447961327420499113176755525828645134406406044208788205171176309968927280002503666802650564397372965261885584313746176331530852938334078904929529991345186700268745570867456283702353523073144107321030518215258657286614235831547689069998742660012344607219310400807245279662162271980041925548770355025942115333636890532468497426054526017930340598932588744261500295548713212554486659500041834537735626656574472349472686003329967111631836819144393188059877170119278014565543490085366126629524657450933669863671737094481970116043940680911629869501959596126035263598065890441702353699811600019543742051564879044548945975722382758075339189632479456272023817440579607534941191230919987886207388247042220308166676429510361425775966545804537617382980495752622859323348254404706227573296368534896239690949885419360652091756388781680183176734646534956464511988117842440859994844717811117351569361887205512692953651088968712984939325354773613799971463177443721313610855208137218446298965474825009896829926728707748124377328266450087098951050179929561034020706009318870326369301304845374458463269023421571007041585735112522849844202269867405190278130914803142735988074064353344789193509703497805312114099986260111731042124175151308919252450169559489115028924032107633893251021255855023098177945688068303783253861437894415948275877011945366548330341081727690332865205202935519599957435032652221904326513072329491562255015320502420652721811274260625886848061349998573414219375942849516977389565179647483733404505467992556437660922198978904533200702938573991293377292467400247661482709349362893573979978960725274239136556520753498287391420796130785086839048075746763636580556200641163250100989985311149491290546321233956827844382637004052560970862685271548903340775769908502374573203131137661292906813007177759250421746731011005616518529001992610668657506376714858694439336814350999553839146538923181249979022538265619978419257711973534168218311900724355256268015831908996893899885422906572932134580365628240225804140252364581097322380711000520793382768383455751095078175732657969402490974326304432421935835137303689722788699398036879123255804188799159757883612393935565895688054602112671038836282042230895120205935787115767720060142815277193974286963733728397290540788223014073447311905155138127328428419224770096795814243613256280752600123953166014133001887759160147834446692147687608372071806021561392500020329407923162694410242086481251834205343643315209265146921899177242334450242042895364498066690078784202090979399203255002247691828783263302467854954636608756477985048085486584093636066409308473546379732802711952859816899635385045522138076889721386005594059413560931895668441551326791528643797024457026252741583052069900953453444178379901537505141231853819551015101830615884946434964326255700210230705437362949858398063246865763706942973857896054524867970964660871370051695256007520851488221362806349144305559858983348444522736602355033473671256181627695638007973580849393402265541522042622886513049592886012317345039777435114605276835368757871330298839757578669298405371998913011078059601031141181358275298968482052334077421499963820719936395855628965413179648785250105660744945602282929408676759591249364993782752317511300676016721258553615322355046576663774628740770958711849057115374342299663523812141787076998232149208836031856790931129544286500820294768414923156954597363784416441330810657062739193673633088679285388368132665277613709297436435473199143835050438546173860817088473657744225452559468019474751028841644257155605631405148806997608432028660694863220977636263137859923782357291502832663030087861114756293845039852099761034450264177534425057080200545816157732885552260271000514112425539776631668037031302172248044111270439410996040940242291648620272401608299364196408170653211997615151517818958166481629032322981866993429405215924209806439303122679268192466928414569476999083257266773040009674134553886339482050942189964478526820611300552834655550398324390207374909596291152542297462448326054849735117490561926271965659787239300157693762403878014605560625055555223650383312246367833067975072630310303794467583157638229368914464456614423107462547348296598455249889115828384602485930357395359210277241420824472013887525175473074616733172870950977005890106226362168805975267037613674360224303907327691176278853322300732029533086662496229404104864140612637823437255098075565155213117918803433980681895970361099712157229287182482062541574248174443336231108053280431027408063319559338478097784965183712555624330991646048169346367432579946606131937684391421659755931131270521742832221385282454182513030746012022505809091878748827541885779787100776607183568674950666172993531775582744655397108662471097617948570081352791159791921103066149462703793121283800198252589981226166875965174993794361332222331895662391487872864289988774878215278099958968166864969780581617086548547020072216151080202464322106264739414375590370205590701132243513393267761547977333933755202734894983477125325325787094729369426743529848692607517411717966003318987363714689229528911847417482116101694402709485691616639338809778823623707919996118077817095573408871242273691624519694163456948312485104522168080130396846052067980779297015521839294199654597009467757919289554221984978342845071654354449206761977993285199760973021662654535590238134760814755210066998342835802095482524130320939029355736261183442119127299619342010710748198033985268848602493237799736177513838148445548856859997140927524337008557724873631852902929240953163263532052243840768936992064281751746686618968435533815676546346333673479242110652183550346768000552240133790117755212850408946555029367464698934096839695626281931719247686716736384753394653931975772518908890652277191690295792253361337256972447876222753033844894737341597171517338770611985898036764143730139743347492066951830847190765240219039938428349578197421424293390150936083259299675853558513956240125714246083369078980265783364477440272147340505932506009665729392055875211241919111920654663322655773684053909959494678040736912692341380473637442910041052916017276871929618071831370933409835762744045434108427722609497450364471043086875015314314943810319695410907092896661002334660354258808377645544343107317062853498269489422315830131450917568849753141413010193678275785494426862385485317073620741005027690067399902579378446065761707534407304243214649870788620423268011191888156624980480501281856703971248622254432726008052046733309129729098443951395847126596683126482638324783751957586089535617490073455661572287639140242870739387033951687698622721336092215483143162420516614632952780849159469841085771743674499965924231445480453281822267189543421791234010477590772040751481514935943202593537323863747893258733617520768530891820464215928768361531229894224490865369046561440953590985325054486987075731267292821204215288091614648535099031914718928371276019382686791885737766852508803609823557531077806809081527852940785138314277109509241522641626612952402315828532104697047187865631120869470486174591384262474525630458396905714807105969466115696590983093878029032970550276387091853933965931703780056526550183675294031061084960012209402312975033418385573659929494016038480548336954993841374190884747984721389935361363732865742046578905098710955040786945698686368379209816346135045404590235931406989770007330792689093300673186482034117320122195204841844837691438655586307490938608943852853887511207227743702482666334276415756181334168442968841137375375142048080338330096948879988991293063157645015597589315646239236256596783990990958952521970409224954220026659913672242612654929502537540285770391126282360470744758254068323131096483933215723530832441336153683737356652272986641953223041676619145544623549522072227245594706533044453758315325532688591152275336645277268390141064376789022615007721364867425341825325457687691524721930377728680410064730324806837342451979895712085743661540917142505980698962166592792364273781755104206088578310004940037580939571584678024597307359993226182565735213876008338350726471405505978108642625951748957513393916413460075920600341215940517715141990564498108959793240052702580881873475014741656051674932726829834087180660030182158239999466298442694431427817104174934371055367310871834329814286012556816469576815969074332426778168018849081554569381154154417997233864353004156628296681143189063067111573124545046039618505358537856420022129897083324394151287063854345086260046510125602895194900096392551645371705968830643410741469266946974519669346094579276755994731819419910363547072346306028154188329589892518447972568703357083171453611150745515823513258930988541943390228207579425565298301528414973914679423820450305330387686848047775120142923618369102954716882346439157818911433617429739316504417754534920495387206266829274956528147248301078840033423916554847538077964709191807223752784585341214907430056788795122024865977877677223432675217274967753313264264182681825388915889284002303706465319573568401219908639564117156366324008111436708364485831869789112697872730686852345185198165427236817602448661563753085033290496514384855775204183431289891621460942127794141516789843273894711183193261425678265088011677667812108550810151268010602093576047998019673597386980566963834244780629546710577107870409476802049844341128618418583353575659289527244597296534499093773386914502407395931121437069780079928583316795445688009319554063397865793863254275946761811553744213976084581789103857607148279519731754860492783544877827639347327432861163459761922113866303403916620844002808518776270388738548210590191181723834395604354409743991621513921088766877787321489228479169324725712744765853106752642394777482060725191771173209735868497456482622565577877656122866409715386913662234870951353988925360716033071801270280588959970319369269428397153984183333875475914880038699079718804669975149326074139781539198811629711989676574395161904114590692238169272155445533177923361020671956180590293508719439172615391253088460571534453061379638673118869574824387029911141163051530821737848602624294226278153934626053156466742861979724676967017214538365423295423824193587102860122118273305820824180348467953422646357799590846940242488308757202578515823499919617542969216094289056431053661554032898173633695029727285376516700309929053244786710287348418001310110551531212515012466625670504054130732672371381449968806921466714008263140920461528768463434784669442841029045488758013993432685830602702984495812112069912730425435497657607736975038145010629098301983039243653187226766457090688042805498691268103102434766934280963208359466755974491393474742374197674901938805026093670335899229612444551900508121103215311782740149523653265461329878039696849103147964298140244544349398365505603325064402059457255253637422958780053180720548379143960257386740255841805901888495679660029946513123061460741225562381030543134374584454351632358801498263250116595002169537983365557944511521454382028987057649784651100985368205413996642521625507241781312111122449200861826868911612111160998203522541140302315140770514561238351486296870246475359838884828480528639844404485639549290041992666879657990321321919764785749734527553399987403912858558635730776396022047972165543700103256860628507550852349754063715111804437268841412860892534513404178689651349900450888098693825326480668405102155190888185579904017893897381567477269772139113984744051587314671042808218456827468916056995126451624421724574344483138511011170934350255709289332814678402217360789311137197391453815552818898543809761294900214433628349613463554003068432080276526442466403804477410537482768507065580265242906984889975997733400860391432294533753862571774036537990879168814529374883213902055633696307959219301569644132052162509944007978556167787284676600917535312916013980072691944548307275998119772713957363226751956747878902737830807127715475976132011913424676962112784483989114785995842264959812383568385754449277752546810681698921578446524645998706917248671896478263851756996179872994691708864520407008559314314289886157056148953246828784280094703892465482321474093905050251659519072297299750539423337680859356913899827402930937720549649052154392680611770856355261719107702199752812471024714375174502932058596342568804459002762937663781966447778546191623579516497246358434981075954486518616965376830846345526752014023070109438987578191625558084179114546310374013133092432538625386017304923217208800711848328544537904241182643258002846202481224452871988015730552957368787284570825719742315662071295934658319706320442017050383355963551594692342668895456317046761930265433521834716346090365052422838071760070673096158968008545986025959188126209254789243575142587419060969955641620154775824865849403804282764099843449731940077170343622766132166960463769313269563765265812277244091479542526244874978071735908909369305344886517156900691299621731577733842351120374361900715777597975054097669087492921452780753963270150820795119287668089175644579518100013089227300847581038887758120512452356146480621525604738411643940259856815953667035369321913673529350638748404431087609169856571943932653212255246733380967001461437062531171640742751856528211917893526650176739297729344924991046973729497160470334302944759886758443785841606500342141418152194911591157706493828262325717028614461483893151979106397233472628529348115572474516643264130393389606994693017702271129053462884530499147299629390703391072526533990829171350738738387989857970279409860169474125397694219611536657598530804805420740246533034108052072688213987913342276332333484867928446170947333273470674269246499532882298002710695454617576867434685020310087955638530791939588239554421665421110332788150043718973093511631059542293462401137566305278736534411884741900154344056391313356488388444068155366339273460546942454166537809774084091705419045648826710524657096300110823821914763433941208429005875957237652841418270674172799286438741019248583395209964738896731134637143779854371487135747421210311459235504894302804220792906235637686788054844949742851732097848782292038843312377673215326246996921543286318546616217514914746663077941950385970344179966674046054889625055120564843234566369306634468167195756919351512551622635058623585430913981318198171492701240331242839700242263991702720510273324598657347392453782644531919162716127393310307001580903141315399385501777570555331110423793728656717967686576106561089204200509848264061230055136410789781382339974453633865310541553916738947319168731640842470723550908550920864473003103761477308150814418302629034003431889536217196090812908211198073904882371687719769643634489668278753335740449265892310476434580160508932917897740826473878103258905819157677007098307677267961964260384854010464541676281018393828127868952231316990196805015976971177040754291571203547187189179564839850223087989314836606117294664913782555545861253278764478695329725188470194274040803862389098110659421454580799489703317624445591611196639543977872298731394494785255400909633503176604588193139747021947392119628698820495762026842228943399649022598892075991431785002559437221980326277288334888054214643273433437877042974061721785599997934257617865799672260752142847334202963639009554463004089131445942329012531638070382879924055681161319182480699563245838337943578958971044809089122084149947280965057034718857651900039156953052534804105945198174854660116359897984488933385232849831601846018594916454312583592905705756562514221580929017997820317382659588553784799416394216007408815918312252442982274651273711382415703888634151303865196043699201567521249295019150779165727512964512461682938431378306830957479421846551609530495298301233396117070202376825222372155730583019383046137190068461656114646339091567440843697748244040365567034867021213337823476476671081592592302555620846347430082729954673931944904966831839302568918627264305252669355199515103665385372522114190681496655732993931221954626669715736739662106596821609769628747167150174140299158722876554207275517448781813804536892745639128070739370204678133735611947068317306941352517091413176173714426952666156717402514457307156379494920156701761262980408264086067234185051941778435535588058694441198903702512571161068191056822046432308302127748241006507705116923224415194048965597656612711721975768032052733747524464509114481458827500131175923936253056560392754791187463637380667788484913375299945239061288375630491998751474621946136568377666855595255232677430243887040904681237637703183553442879838896331142924784296210588590559100391072200133846319490365899734514585359360134872787330289160375374840330157916851623173218844388000081677837889985869488948381192180277825820929642503925198465361099235106989221266574455896913523342886362682592441612477609907486239077612035698553186872213460308868818578758292838892144878358937334269427657054290907080904641699426845716758515715716708709558047217921624163221510296887689384946635669170194578974725020649130884293553509006667110225563136398788133227564329436611736661275408453561292634502043233236487841460468772482761260382474516282004670137472498997974980568977739298789206021812958813561544091569964343135414458414180734646423501098045655835361621084332209642288314855835548116721863634312549896244471392185179668487432713068694588659816933515614557977873880384410227136753649220823165616452458208325512013134997927797385918997233695689495232003127671429349469412896709017268875428029515780913877067504541303736333368676275102197069862605078344342749775691012641081440804357611760797388044075237366664962452564084524271723414512860685049700927043788620816218980492039294725232415929113406246930364762579947308736567323393169885118020219282758345535346814105921019359243200532728653858540789546089450678416173151280635446124841681725071800708342640137491282935697727948680515908608592374299975715640711530380407386510117745832516271276530617066578617053210775054931057311048289118241118047194808948879137241542850636915444790856462710834114382365666085898073364919273308992959620240020510725145605720551165085299290648650168728230088290877725951783348571949546534051101995220299261757546457731374532488771946512463026169836710387406038475081076550236363333907623857677870286655892529544112395189239548525597761023330073559396463205779207252559028841489184491471750761707938793880062995335746300233773178636094513511791494580922371536863791205797531662375840310672487864912351321209893903347448088023498419731256326547779780835748248966444956141454244496217375994101896867806578998277262283714917594471541927264820378904987518653502082662221403433705435803642790417322749785857651903619961810017045599998304778914918084288313626652279110559045604512281430603243486914585784613557589292193315402750425102582295891248119963374907062103191936995351470047925657039599809623869729973957921318388564519769483395527055015254296059699147751275494860447099855225697927965461424131452997541507731976986172206644539628971588105105487471513290271107060852465246260497009259935868258064540471695670899094287804869612191791635573101635889291581178596917355448149302889372854414454961936878200862455572421597890664309098328387166747999774615282241567930097878957325997076453075775574184754473421937796368960086494789655007636927166802735139932624939817658551371995934709802079227270228767320358335840531093813854640583109858465121131843585995912015957078673679143351187650303056915197581480476115536076942614657532247266140719663619657243131065184802633082240652683327557847884915584091488689093691506285336231147198848222160690920194516657630002404069174667216734633555245436264892298288214812608204151107815925826581068191134667330368190581863002556226083254018739562113228604199771629254526236601061272201014559719791234353982845541415822722491745225629265106161098465397724414758246169169553826772599624002590478972023246594231171428235289063975945561483136351944934417630369980342270517869163145875266463806944976977237406293673090653382870222106052416492058277383541653617229327494402032163907005463183110101500556949477192755061444131142554602466256268849654681681021696722754286697353017454773303083532117211340927950851387229608360363923417205082200949083067431528206848291678762581520758617982128579669900769066108378244978909988024359104141495248726008971585694313180639110021213040701160370026103313855289968981410786860886407820963122453793846249422804055164156922144561063248496906963987916055021488194373073504116765322744623498793450092001378557018135753209896056632509029341742360966342161951779370940176406069499305002497376282375256021843125959165394673256247787755710086120754397953357129584836998965104456599042448516914404121299333744514458577934308107824163631950427362594884029939426562708631841114274379906302028614073207076164409864118350407765619811715474438728089521393710575325929032150796251260014310921722083259261049238556729213646424235804605816060136561212904230831328714606729703149035014298013425754886052086096268646461020824421103284685439278923627403116665054544135222324372993705303757022948291564177141106137144304328031547921038691662193770634713904353929242602773713876796428241092576910521689740857399283403221175991239167451520737104029196971946372971841441166250536834752706766966491993939088198786848103175334442353140914282730790108014860770997583826193967466281736442171220873042481700066473309572716267311499819574127631185887684265804758847981416074709626504835905382794094461007820421610407515208529862684617375859562629755267354989610501907223420833860162526871133257001202928919544084708448120811341211790120667710520774167399652811779998823385002097084868408481733785744907357642693129073947082115826667579900136172621160867853348106839616641679962377234546964590241282321788071329513728601940840803377206578041014505755422895406273495936924005133629960230351892835315194785250245358199914925250299167512007869496835631187285320389309246223551019714762643534910166047880166410712583339399776666895933314991178510921140131993916593283202233602954698600271981542947369927284163613716689282141693424957546594568836780627252870080584934148056422659343998260918143788842588919093310160116016045111744926647650183878707082280264171255782359824883414875553946437481333792466399442933212013033962787159860312495935504270191737851624577279173257230973778257626655653771994808508675359616870031489403624890114254961687030056086780422379381421562485245027770281849527829381587720674467874887923367689710077125408036687047022385709861118333320659749693679287938175470883632721188743545774322983601704930449121550305687410405835448357343668307869448062411515032731563794221154268853956157832050923835171858378649113261956782126828719068905915764466912678995997139599861026915599668655108730907612656601473968792466485395254086006825938043262898167155275085170930339395996189254048650853667032386819019749356923331767220953450186009490742545661903041889860145770744422132134276588624105186201107495980600232620534667637252812027879719107693650690031169039982973433531720959599801799388217476313997802709202125506748782138013909665677053551080802057344587158872492453386319987550318445519029530180170381314950951156040167820660288534664070949634586870170352888843713249247615522325847684990818124578983808174627034158106447930205593769144100745041218749684120620188466124526985058131469686310217788886489040327910240104975299495213302728130539430308143179106055039886098844670787359633248416520323356159382036197158999465187855115464687532345986954225535857361803918780419377975641796905026522033707585762826979858866542693813225804068986669556452804758710815363969194063440233397770944666528297120899506164599952301634539317572203441048012130602988965838847916006941349324854117978916553251659684372202325292938028494283929245797105568647723247624298799922698389888422233222095932580880436450537166446745118477036608578531337204255541841641576181643149284950675452650542067713310768419506586752071046568348942311742946148155695812387692972191026683243639962762148156281521536187936713415277000548276316383693621683438972806315865364812994503508308201014302674332075039634187690659747635908220959216212069829082964149133386829708942789361637854788470991708037304636229677919496510044956673334593068337785065565993038998510227824421284256664693532305671016967218941699968963551292909851015979094204542774053598559091771708668812475768110805007611809453771386627899449922842917475680296256758436584808263005928708569141963141229074442655411740626680558257735179332046663457508254118640551513852735894541658621167128686661098467746677067176324355807829916028482517418778245664838553973153613894831466509807297215846472236477757848355134253144920725452393636317134283553411712319749848694212887277998310055154696641942903403214906045685316149439727218837082699457855574421175004074231520559674336397475307310328447613645369325646919316752116287087757273751867100957701043114097317117885639062703551583770065625416813528970359281588815085887001611183908313353524939491855852668555867760266627044894632502665887074477149482447122359174190020199934284848137128953067658737307313276888169477352075911042868715428969914270663370811421179221388234092320536703272928115953838626853448072020665929673355349944381515103307081317322755491357208950906424271265664038484721986529814295209432412950219827810095690546881012366527526449775972305740257992954818540818832907357724078283550123346323951128526159874160467611433763487396781140157802637532852785478326033435069311553816135562531200653498080238063827946149986153877026618821667247845976290456263839085576176177203083642348046846554254958690433695304996078592961567215046238443728422684210839989981474646947743348494916259992345069065811806421943921250241528705653450260356443977204796705565567329618070012821536308131021909631862551210830802057412141512645576880900505972552069866952552520116102799458117445373638076801406710168745864380018226274436375094351865495145496516627755918188066018822145854926070756938621820041189674771768622664085205343659279310193903709902267631447095544953758726999576462786307982748379145285797595461092373101583148483466396112158442452825858383973682093811955465495186061295627678046687804050986256698712713496951938225200266687660130611499006039815869973975431989304098168986037970286306417798524412479904481670530684597361729986616424933961398467196721100011918129391186777083749033980729072145614626552374489337625812253710209180601071591365333598576979365992938324967862628535151024557124304489063266168175593210940095095993700625973728132819585251135524282285415598080025760140218271455277126980069884939198385117765158045701512515122314146763886031698321786057021592028162381759410822512422364384858342565019988528663198149637026146231428650959325492281068957799121349451749199490964211150210633258488401653444108051854910857032465146445400105275220516770507962534492513806366873413402559820289593813884822648780045593748114972337409101115920307604143992595980988801549905583200364632294851782853757236183141868673199439639163111349091903838680535718493369956731171812202513352100209558256461388766017623853782608744383027866655261955249242924621498481617560219598684440298539688398139441342751227235032468337792005204810616789045852376488578537073244661527388214539027880511754772865710295028094433332177865239655528998181814418731118512462503832619296348137760124892888161727909604417943410577108684972665035903660428335681137941766238989688441838356823724642430152542318840735195106969455324616991169905777682887477390705503486082250010817677262209001011073190416069612002704461667040876584234452142892569427386946515042627050630624059354125487666212187976210913600307418127141811562283877601817099161556588139288720392866492903189038577830149813744905589175232951268656616789927647814686462017487880495918993942041005355916633012076171891059119932266783567183858195615023548662706709907746659789794059262863442348197527367311902472509063402470367710925524887712075333570306114008258151832426020810123501630952833663129272209565664745182786748975621092724598902514151261362614234527909063073976597763681485220239376084687862558443473645569920096667232549918602501136075245201546282773834245101012710679776100398550382961179196794087956439003498161145114236270072529968006285777929175189061412581389733392902334651709121374237393093108639982719367576960731145169687463526913754939092127409706522262603844022484370335897941205249786441873907761460444113923149019232937056830447788666065490786989005613812552198258270980855274957073487051349975874317520056230809011175306100750684663508670511773558637530223141820505532917551218744035738510571896892954791755508317941269775858870122680099856747769948595822341565109226634970880926329503140736772750110430933279273311227020082220275619790249685897473677185366259940790577150337709131097749956050442312498391083590665370837280878091000207429368534897432886286047412017992086380884152958987206448923714585794085601863070336788741130018850551716604007325245825663164940215210282971040180412716055175098724990963708048175765287751924119501409166412903954503246452651207967070989896112911119744865599338831959015651840221156727734989930740652829418744843473314098872232307702026274450533915128062850275387242199508475390641557913099103882448348928590831118644292851057132896472431242164466122964991596860431283656722210282328101121344355180740624864769611975149786394391142304315115980889746392508602395639632796853553346671828914244500835632495437299455143154468774539141675629481503806785536654260559834057805228946959389631202615703785648644659532567538174727667772250841562200533307339184999469576694127530245815421744354533748793208639975873339224375070897472018779855195995756053005423102609305801394609252541015560356535847173932827034422664486180051654011004205950881700938103568524236506475154878274766087989757591833016854389786842286957648917816188956909916226831509539077206835683630629421843331857036239988105927008296617649398833048014550989056261842200706728484636780621376855078790135876171630868281034813337828751668260207536378191065378114085894001832498449045022724321555608884091388183787015797555223484135334677818272701474111995460446846123168627668759682403825582109743981472890489110004317779907216006938997342132394880071501752008604477109612989805092222363817734451681358768873309900677812229506206029818240003286485243785302081413259186746212462902773795966262871664398203462900493130558237722655019967708346028419609130309632762259862519313766046397265541303088772522964958773872059754647363085681727643383460081145183167031054202790725135345687177679168759331171584500109576942805482034612087144250827792743173405733354570217381737617289051048471643754955112087304558504721693102075442471722970867815765083588302599103805881869281055528472688883482140823116503064962050046453415076178295506215832954888040818742230714452262626864274467444535125905446561468456345467202893648771336954375738328980824735277261064573587109040715655436451432749140194745073174997722392007264237282118789056344859798961080403776963875853865598568806350809148726930682162683332558444446168215297105060024789223638491975797665576265819544892698354875763760571503612840665896090420153879878106540304255153049289992433604431861688766543088410735655706851265484038850631587692251859047127770228467747408422190254669781425310237186436004414125159717133653871849937875515543674720130407883723243265667591960596018610884897346792608485511648274800397299156538957402710252697400584910322583729565957712607868621494477710571812616886231213486242339314914311600726868780541417696495543360815080273226172324553771407373796136691990497321635006252588196069171531330548934613246415759987322596264401172404236842141375585419803659181989705846063079880839928485406962243256641579486202491300806560359777603220284909290584961689565858144595702201389564736998723137214015900912876072910410426914311527976333913597188481222290195838359843688799449127831802804915715121841257324790099989288373191864419802176681297648194008149647643296185466804855224891432451604461694111407920618912016510543842483818247163059663691655429829326941500938666871498909068918165365397799270319469096357745276306142444547662598627660257943418148683829679992050075390957494200695005291738762869726462838963681378483522944352235972821843575481045634811402684539488933395672209968219327725796036013223911845253597036603396347701167097460565400796958286279789779278494115421341520497481927862417205583918090340331309031716362409807954617989149425723297551929697092083950631804927998361430082643843812932427483159587328953714358324593760718732244101302605579439480248112161893759797172202309099921188041933569485120929624573132855795556857965243800147384549359821788785588626388426335755361721780610748748048658044267192499158167613671060594760822625836698498127666218809877493985557158614394583452692900107820635889784165624292559396357227769379586261306641549294026431502668729198358579965859204978629891582780771633437749976762783372830640130014314777064830040335773159821010655089209512798651214872819277028627960971219615542903156604374967631639227383978001562407040393347665067473350943529389730457317929415154822470675361983900520048069339111229747258193061191049383590987723517365668817375358468387902051194401698040361717079861078194459548905679625712784619155783916918525222501873875347435924938854124599407808860713267835879289919395337767446002274687895328522248435660220274306091059216998146212147133183233065224645172065159505948296643304628008715823056186685159753920040406962074851463214582592883749487713369505125916501244164089186816489288968967695934970937563379475920151177143288087634570831987479867976710900300406745102093930953979117365374711477319376769362530015452211175863618278420259654233470756188974615847988153028189464107762646283187061179793833681910759868360557963788604443691745665746034666876552262718301218081269119063405911654295611530935537275168111423958336161879273668274920371174926124939727820611444789410045911707177340427362085130393767657727721536784941244280811095274481870758843943302577416436825879097672373199748739459606838964309297051119413419973659534863836157079660855385434873901313873441833392861420234318357408504885855752719210622237138219987419033015765487115843650381089876789257161925811539602803644787849724809154523271264620328938756488698741966703063504674362520503623211712068253505569492497459717653655501807028872159182248202833753075283867518665677485256911593093027048884466724860376734873017884255424775015641768176587133080980319411953611109563668842745393145357190666104484853079899732024635744591364283732151566950971418033087658285696880940379310284523100886857836878036216574568533254272207656372213176721255877687357392563163643869910852571249026020774694104806281894622123355003911901428531295999347830076448566630510965330963394892438490159381564005740705819393350264292335353223634911966686010403536341790749334860667475430115466240944629771502383188891087907606826778787222514295859015641549084335594390970240709221522890312778099252606392410812540313146073111370461259939329203331837772703985292395557244005020309600411446457236087708648580590569049655585653347982267103281432253776973820407336856130850981774553129153009245312288559918853775597476791574316315635326092515133823113122748263894768984051437891863697875986878767022528168412903681671722007221335094025843772128090976611233718887048293937480556431914573949091800425481423630229351979985154472350648534491845469587698446794897263644278329070672370995240694756547820016961032319819480129055550538661106383490233585332505653311321526907573657512821440175643610868647948185009525053568901902667782313104660186616773806256572172936860894101672006299040952786123758188125537299989543917532112710520116395169315504954364057605142719687728249383716844915364579564388967602657721200142809069572446757081981064191654733043090943026951266036418503052150333744751102277538603690584429498169477985821171146534295110654651601810164246842825119147845218614494821836779554120193049047030425103221322565478347542509959738201057143366172598476514276250692260240543333288540416875784773597277800787860554697691596047614758402047040347309576781298171272062315561589250338479186278320604126361054101477541899061069007789272623199482301558297251727522645393278035662059132012241448695728446224549321558299528424719190222782064594404625368524760934211765665380728483640053698885308477100045097627051813132375712576184786481831183394098756706292613739701017813123181439371366948014418653834218951647691185265124664402931644148978983858621301544844151150692446406939079313807855600637300458992527138442175911253536010670017328265835561867717411878773616325830807827442668117955033759297813732639692689570698293408684989139003338258645051736785689635915692776834949252179571219272452900134811056555911614168511188642049261676814655907201173290684494619613762600381529982941685687442218061349753590822321303665771137466589490765695134243166419439576266210756259745639031929120075978938905914059293616320053730090994651462895522784463958183883994298609448528981544376259616934808178268646147296947177208778241912422827060814823144856761865191381393043428613063042227730707712452519676864125622647399662705859645865804933733991044136712018663459176088627841150748445077192408761482571032243456680270519728634499991913389135963425393948872801946495287206295097376370694307266024760166438566508069962652249328285596287584136325501025526380624633958217048218931606334429825048675089650143939980903462955651346095729794846181200125662631028740307416043226111315194496546068589734728528829971963843127658173895174776999095084677626035282797563445458634137414186590891594795960863060007477750280909319898653714194379848547735825978444574126021581428678448874132963002480979349910329355871301441621799640801254197406012690218342125957018043863887004570840880582229548968388581119433147116448761333003133600882037143880508821631267468559881446011234070768543762454308888765839254580363241182623113960885386527191923464711296444732709965118254045286588095666581691337470580954127379552289640098405842334917089852807377576575651306377047308314923383345822669922962226509122689089538639552742535926052837886370907412869200238091392200672881827718508645619713690620477721011550516459378870455762373325652690114714531760729800428849757508331384750063825936443202124894908918106269821446435115989199218367814307013985534516809210758833983611716506124131167424148463321388079708858126122863187431407325906137389856863763892665491832136523923737018217623959875824067592107361464675425969302428908485548328024011015871419589004367778886755531946107403586112919221285464231858842073429780542161095065545087020477830065576140389631646333803621536226526671084179711168835730195399796199369317399298139963857010144510359636780717175490612822561202818320423925702488688541679320998438060405098436693499980017065547913486280389337626530928679934156547078088597777566016232804883318791349753367510566776735051249227329556745228844220005127865704521776295033560417429983607804853933183230044819165020497723311177913474641871745662533396531011499881761882719557548498782165845075196985902219535908014739890505338306476703939310501238736552450103054866392345646196271155073226876434029218607428239694319972282257976192016811578650391779113767591798599443692771928230955010070277397173025859966686546618072057462834861263446641825509203604050518030390210331847507217161349920058340565618816797585285554721546781545944018142239541670281654981189153084598010094671925722804118129983105826129745344501246929998804067647130158189990310741402823729252077928271339536896409161385334529975616127697454690467628010471236550555768294954392342751978183989514907012327381199672167844902665316893948055873749344685823046037975576387767807641275703535018425368149975464148347450472617125815698787688701683307936970468871416652185325905659606446655764335047417179776245289368943357140073061384511093168168847768319526712399863317374319099489815638503200422831428581385637262287611650974951506156191964331267529341473176418554242034123127773764315383930432598194424272537837407297811061334781874680902149233191623755046011212484936550389441410211508141371211796546088413570710109857876335394427726491987277045120999153046254699041248296575802572784026259523490918296261450516539651705102221997545733453288056732076400091412075333123983561351132611680437885838936731677452534951623084788746958940053352846077652167940779425922451801186244874816855419294178412744825274332447153353751500312735486368354339976028163904470083822754550983504408179647158728990698384585003684157110378764919999394231959201836864403619204784530892984239907509240132227311294236982969388856325813444452822250602153386584811422813840646180081811126873840651689350430387476269146739984004861983299911205842084533216267938028504450682615396686660288318079126572848641971907462461065222814899088798744851753626285999674965180596889282828457348705759556573538295991509560347518658396651780385323453944735117111101403069002827192784012111459926873016037873483679216050040554730966471278836434376209601618580862471550762139875534389548810017640358444886628141862195795198067984419448441408779559551350528247217779250449888779781346265945875278302053919675775519189003435818703768210101687362702814885870174550781989335405712416346485936494068405189464096514313037514327463588326820482162936953204484037660214010797331923111793656406685168595914926110558285556057888985826571440598169677534762417066142494751810854378150187494218017953502787982079275091253303999442075221908807106516992003647066713977544933214458688503474345488986183489323993713481917922977672291936178605656372728607471861921516945563587261653762247827446838072467494648470526812338969123110483982700970647087355646460301789022237544914624889798250985677030939393037618431912442496872106737967235906980673260498726175926191223423475772774670560392849098509171619360255796853805881419843382802810381198461416569715849098503842619560047379219090959509199771113017771126871180164751501224021349057434034566099268681992403940806698543600816258225553569805076641884774486779737361395635501409491997960235470173357793411115569757753966769461238398386503005983993708795303838920542875752664057496244322712095937560716949582884951703275729013675539599472017712284096667165608223726406723345961770391552400040942519001267600616960021270073684381475891115527055279769625541501336049175855772594639273054496240400905452176116859217903000070607952895334247578961233666568732965138830024954711492414615242373646041018209818803841633539808158812793229968699241227819837134308615398901025607546137982553283699073000946675952565970976116405454426938463980705692915021432229664920862997507692309699178480340999500488630105353019936495422730575431934510310744166152933905617808189917975722466341162914898217686688704960168885978170655860709246301742935091542777978219060307615767427636762484061412952769138825629441934192084319296968724468769223198946747588974997855442313014240172065260638894468552919970806224525922827826117274923274674559459135504377756119981128175614486363560105922435316958615278202833985395446990452033109143772801753839838787357429615292513083543818750559253181189464981177669809869173380013796176529186002568524994111840455229526080150556023884811742359948059192443102953414375133243171279532031481510956939315770633297348915574883625149707720106414006367638700251489752294299532112052232141573295949881713349102098475381439082809635229534100285417958637442680792304307099275502162410905791760706991761742215161995827670380294590420896964275212669137665695793726290952395926590784922257160678695511260131456536428206640997674535100444313970598702743255479175450877292268540849785016154048094153419607759662053636893265147884529570222558863440147898771502763672890711403246543554405685071466723290198876486731663753775813274277494947487906199622829278902172953552472635608545067154589962159833152580077297083531849603321980752188571161447679714698614338807430792050485574836074312405633512005022666819710345303092367543465942855734504746410947977025073423373321215813627467648673788810017900945457959607652091496676334648089609350074061748787612835371739688967176275596377734919638849037351061800172664936727434046454133843790420880097161111829833244648292197972443438344962702387903637864060898708730059551070659739805582982859556483700240866197869900268802094827491560153640484484112044338253951967241231677118385989670457458229445193369004843898531519714037697988714368104146332220916901159023672528983140364831861078295098442207721250713080162283786525884480030136571964499924289247906821728207071544082274507198729289916213787186183423716907301969400239209821294903628135872257181034367162757778072018031155405608279272500153569811496505769854365098422261034375029689895872128846009755313890831406923152169980282223310680173789027171841675479134179944302788682417772788990138862757324776738068627489733657828547136621468451211771624081078146037092682099837833591283118704292852020180299638329236164305461197306385508125526827471641355091942305197440178466206104287628395852373007890668965167522139149722032160976976455432854408452378716003533460329506265357098762505594482319349596504601786789581317752847083784261232667979585754233115675557831585110022650480861238956892857483560192437484220825967136290004220684692940091328657443872177968437677847586031377148964647582052650885322516120666260918917700229266509694752756029588969978433735010512249351210669710665872060621905646168423167037053637040659768654289376974597632711902054278403924489251181992195461156795622472490420371195044016409293564377123740086624315120727759633428829816773188089862373511645789088093619456695298206190271714292634348883581589159984466407857252203801668053136186134580090723394307963466119861520054805877542596705025095160748325159024501122123389379094934093989466697807932791635684976876294768723262742208194393101385338729162489363225771416282876911263180361402948636614951148476628537527476126082267738790239455929457715698585275890978036085882386704678584989781030144509216908339421382367000035751284812573155847484159278417171321691351999936642788198401328248693155046360250875722386564204624739229587254666617408256869546842323394461852421556500539177112931183563614649510088566106953501335621563679098412139615462212978287050044425464247914584298657095035917473121923330507677988120545165860737614847300515966793374625292932663017132163428453604617047979563272046567046176113744965808340848811343237900758003000013013655004818080119135592628733805034425445450406561644528713098491784745914970622696552484056406800006188478114206899493638455455987134560191863294260686644992199489724008029764025544773385637489484078967671525196570068918122176478385925175354694868808087936259739408987938386866299748826357556062738964818042835163847008047551266830428433851489837005726140866279213777002691112014953219158873079886923732669588854546549092433879477789647311004618820564333678507288824521663942479360848657092797733571437321056018473809413175631141540721881844026715857347752239456648962309035518143945655611133588121021728768557181669384109918003020922967237923353170091469440980539303650526551324639039724740516662108530162409054732232490547284081281946239925477930809287053443402620947822280266935975784491741151363359540896335627177162257054825800624144445360556744089577048455121068389738037732872693446113650198979134141114278429629827852242639621005190849066443789831882076584977689121535230117385717797356120936054731380856523508379946422526536698702017182499043983691798273688139359517956949909458989478309159926770827725721259469280644518262276901903715221820536046617267917623433008216161069706117424533931175727630852472342669126636438473903864702575522706089089281406186362791455070053135827106080957028739208896696630454306953415021326066477741150227029074212442546294310571472942534177924123802487394920868793276242301992311576213842280941552931524939300616318223725715033484543257614449831867431663033494739897385730154020365690864201763087474517950406484294721663177257595725880959036249205436796515580412107866672257528994806274494441568468535858537843280550014008299483786532303954083542637367377811770291783399905456475530323614430833908505847924090791973427544890470393450807349350766924477837192997016046661779651992117233742189544882923118808965061018754327363004788058447393585285862286832959306393167982235753678253063615658697870790802574453348825571744556307789567582866590285715923650431996839035457513665791808280979020830184578124363090352765493514775935738027896459148635574997481000186584937968266599919333430578916805320779100306117471045573805909967995973316767669569791991008261398990448981148967421936585804583909192995892058784177846256824379377226172836179668573619537429285279141606333816502193711837802130214509398579683678589660450172089397766587450074659668723419132402745480429009360895964021176830295909098180586988069347863138800017293997371576721276430384674711339564778048568118275553092968281364899938741874161009585417323477376936234768438815407389831018699860354097944655831792441690139606157911838808928645145936489999911472768645634997107532175190647082500304567123817185204341624390783864153957040302946724370376367372910488922697076347497491234853601021212693516695557316599633540095020557310762937950419852462446434025242432735594883410066030151275893419724076505049468414697203087628095196438013779523252726623159129173800305081248975347576711337676072454877952834065189266387233459333937301412236369239116110396582626769553427099477997082208020821890088945414843682862697207409314710815598133017592531442832117152982918120557766528031933869627106007289231468709210693511775933731355845062906205010175984860416530318666807735447119542063396052503095242528637017400204553170105595335856895691674940966800058413028771481066456439258251162874444880104888949532752395279780130789245501087580943175050608028321434885138264376946665368136622645411839861732734959122101344067412894008667269826294962612959202392374654489906707882208046187118682936546200571606019384562199833230579204816695448488305424730611335911392405625391082433852333070834449757935003287673997607827989595279936944465091984726079036831924791954443909575154946684079874727845435831518714508304825362131328569673502860252613040918296688202447789119409980571900213223521859886959099999077545014745084168524974733894136514829165324534309632616563358858419135429415471384054062276716926724468618668881135063052354913542632962107079066312312892091844466409535900333754755834190863645891412981701292216556282505995688780290272235029604810763091333219195924879048029163783037733651588019260096526092391576824717564585123245950087973066439037852446423637649176267247455476252581557249963109424579316694940612572418879252037106689041523973892296193701909147848400247230008895204753478431674236842927517346808429634615259888897300469448932944348028027889038316253785862205997270477143195992246945340539510021366980551720995688440357220767544396586186153133449247359289468141038776548180932160751536115863682456586139829032336048318837830221576424809336725209564267873206453641063134045733819937883798344242300750935531096437722526477049676127712089565975393655855847903909918086250803444518963049600235356799084343786135325305014168082722123332640267175678672571042837733549211111086533406689604061283215503779757995435457962434069074591187410149017784801108828551805603457667777127220507180662294585276128056023030791625254183780564245923569038232939081271683070181999767473491521177579012384250739970314797828679601272085092278255866085661833926247787384940357181818913164303634020387222620176733240282603903865289894602079373797595014821161267649198804340882497825556672129821530783317770532414930131722827450565385087727316609984786723233108811652918197072803663107657370033632094048125353406779949166056188227478357658039157959366892692590043213414127212759235525603833820784994614171114481859587671560471165397819459500799868775738276510756037819243903522926694384841090713470186310039965217967385033204367493078566501561468468919489930165677197170071413547193419581387671202632072326114759291980068028711788712940819876845243696182933898479809130922066928557182761505676893409665105569582427906029370631737561670300718178151974909694879947569119722500249051891766884481315493470719882874300668395538313085016391974689082822629115494135507764789298046816276814917776528188349752379545002684273395005938080806822034393130882554496840421366196341837535331474883381252743828570130881780879105729906188227921694068128638027150005223302316150653266847006274899695180613471923277345243067613779926984194635533958094903061023096849154630980139839384204322265720124412672985813505926638234754589522176730326309112820987833095627451192180367847636795753721780220344745333896874925424169367370697448510860549439988378752315571060979869851061105681760439808405161185096134932467058240999492707711109403586550834248526806183965864647719038641988240785842992184158362718157904459753350852386535872023209930703063875970549001107368634265153723116313598270042437471588018217373275244442142221234694215753753177676631853679135354646424670463579168085876426964477924373549264264544994924159512330431357542309357420913454885522865919785659015070182605813199372328084076699832495683318213649234148289403266216861677598803521096759773946918508575488922586731459368934574900254796827820938943072072616223639424255485906499432575134728414881889349052030190769357824596990257455358444658391691224252230734672793721384466711316917040199242776098782782067168684266655697395833475025521186039920071597984934079078531389960450821190784894458608994786040877546725634513619711715547219137731699034365098151472967468038305151807166188829030646996342734026167543911604642226416447888505757388383643114681938648141211267582294571224174214092246584821338031199532232415494395334452117575522634912678158234949439814794349153603671299474240187230376209375114844329564657084061126770693532341552893842076802389725894665377553827954596970568246001704154114172191082538705656800579360659471214137517370125607184013018524613063615968993345079283665831965583267747140768468110113426421458220362011669972605694929586427112448194405308537125494280462574198970113299630886968683083524509539310826299454411773995718678763457977572414847945147093518819948239833908830765151528537488876762342377010248646720804240198954872890868039580597965340386697376318274692919804172664837562831864471470091478727988072341317925538542394620414898315640288884824029917385290024347635499316549322249719487483584497896956647968192063625252930283904663507550977695460739758103105231260316049315736504544639015770600341337527474150676422170606537837423373529262303753305299416241066045873464892545932836835612855524122831534635153848658080118171277455533482161460874256749658182437140427167933297693397400532770734269667506001814307164503499010882170051311469255982584740174832019053916191666772390344212625468202252688755389230188966758066509119210868667935052116869662563226300912976204113176537349209617579037062488765115149538029127718861025790099967605507426354222196608431207432070055772717190341790810972329398668244658329504370798709784039574289228889730020498240233233076481101299315890049825156734481494839836816971791004945978278204294977174447155205705495534288860435878174810344555418013977986842384597204795116861907353409449135801191147911875566324426060903096931245941552122560225381783419525444383284904701704153504884351756726803803322936373690092036372131863248056585627357250056280819374720066610592780152230934959452290473534324435408891177374050082539274740550091753611927061970160184646716563291586460952340347054579837245596898461809011986317502246260153375615284310375247026771021064388185367856350935449555785807901542690806874220366572671240545184578796877270041081104220370902837213861400562177241548518798774448677315772002088487877417257142956665613794836026974468609813828982920407003926959858268838484907600119966180204549421290864814861079239676938398301218247740412686016108889939931857572305566399928387198960953355975760843249299964214988733017474098822678971109115813610356813137013044543778030962097271032903274161324600463494859063989819191745576480389933221453591348075156967055255940217023194819712012422592500208146019271042943758025722533774329239287183791009825681240188271490744814749036316131023381363913377738656553421350404307909799149938627075640416605646460959414787116250148848629372086620049145255985714522616991661188141138252013655856784977383685792018787958577851659074216820280999527091526353823090615116982687202094153195998417941743135770301078213922223628573642638983982648217467719018739819183318306458580237798559550318134247632183484979683562283319861302992184723260665594917657601696108219478481345714274036455992283717393985916331362546272009345332033710435971315859782266070628065319599395506086095432672049437737901393424263354123198131715375388216924259699031560014229855420005269335609919100756051693856674408631458972456335644293206863224764071006839511379144842653815650565055054843440109817598436363450833073754695006586656145603526376160051006698270903985775851665261931185243412400013027507950331713080164537445148394256237593867942998133266295270387302535424085387761323910662152197903062302888068358393829097858031784314104585608295101039536983002251299699536143179353793645196493620072260834743586321507877247319701948839645972518205146729110478934203282950280784514843940516565735389254868389509074623215706240817833049813734703937231587961588989955606296699262965512791689627445364389393000321285865456600450303981821305915869405690430007323093812207613072194731862046890312653756546401527118778350250456343678494064369641339770737136464466878977846005284954908217247739049793322027213051039356100780477147389522020625561796600701716974121755303275710359750821393283349080663473128272329621385506232615768181859805375856109312561415916773897755801926176929717407195435612361717556964847571977373736925701338060595571852039220796879237518255609120942552896067516442399233859401258441387298881623338044057328264096584891307517047790924024194573285839916748760198623946254022182592438177595019362392156018422078874767968721740994990076955498509026977429975593287599666167392750360956567661916971311705978037245456895816649128321708039952996476861457657424809417938839035069068484340592970034496234916478529507894085889150643936535674095173687086386560116612700292469756383981402683261394906672165159281124886385332218172513754223126111677785794779848635869721586694405007818385029065097860300410640519071631741841089396403094100363891037454095868090091019499143591361783511863112654117433898115186755051286305960348777743770543718422303725956805901763350795118580804878319670201808051892551708251625902560119589554243264882599763185985593930054630589842384961804983403851367680456479603815200024457342506133988129612597258186901271580672575281405891925113575888593723219207389725496735190758091918790791340792456197919533798517412837089981337031197214112148426340281202198789870719313558375471176096910430933898473544257605676218213827426932290894526658042193768435197683898495043282826580985103285703161359812136005195114524004417483057067808812361445426364031626899275875828493675324715850648506137200646513295886103377447015378243435627299289647029214315867876725360853860307109122134812228584912097906675659599207279164986792502311800328778780722105895752295196048186806261503152102959699977646644004252300272767646917351599941674325081271962298497626352571439628375717389767117023617440785483807654723085752938974257469827063402979417124861831117428614799370772405763041202902686508634802337063690872884891060456417192632137161122537165529503114862633090570681352532905494721280191646128525317669888505805364496425212679431636790390680722798696592864625414455906616048377230145493430600139270800375454399923900892341169161505791526124427813613195429246474977984294023014419589606534560838160364769006735671752586835546453692772598378027788962887634099744632361717654355324298090792743104680828676815428794322703250023718570757383688401976764627601376843052023115955632317514726053688457623921704658351459590361606377068638049894421045032232146259188735041645165027432667041562739315309505873182160847670664889735217764114311364998676740026157899110651497188961070199360103892431507174324747192228615774114473794819710254869681952986773608398099468741374905332911332022431807597795662270470081051369329918505568975265587467211151613379129685285569628325648420918907603418405349733011045574354808904384536509107013935507118593716980219992062132623870965290140342631131334871180858301491105311973435678370702036543093093187291798877391011833483737587409888734030855568649816056013567873356734255144113730526099520065829652978971988652213019302781274360036862029559283669584761941293141438063530912514023101786466094099285174334545173407650788570750371240365974742514513308606943176401245725264427483739673931352030499213977903337798374252199798212910131318334650427193758044930606912396301142152300984094053963511059936059054674713015224537745755187923003811760173072525353078307241269266750759739895504358522962137531936317092570737632539194715364519199697376864038921910343076010041530897315078079493342026824616051722930573328970137564945664064200299763901926150164966121884613321904886390886722064839572692635293096614286452046233164094430276557230631266439603788345049904275183273221386149064466213752598530221150543896125481738184889035127172089176980930192123918333655309084008770781842050728620178549262578021210335791639879502278884613666238387927073993087046233514133140082346139060997535699612999811710800269397803137518035070579999919874246934192878420937140351283589123692394005446268874689415451830078984127061054813605823824216851179608517128606156595974104337274246473689428892343590963917836032089383808295617556398197817693449543189068847239395126046088275922672642197068443182728591048076433470170423619282272110612827559306932291549136272346881334827304335956215873294141088852990431189558023779917867284470287177801452745878159375396107176185290494914689620709639279639583696324038281556899697431847965436632370989266950924279638010958698069476808088049651058640903825880687101648065793309836810131854329027821325712586998590239971797814928204813878365727559827424485769821506380208351691775680526886078772908621174810137746872541285802625287845347862271878247673227193244264156139765776427753911772253368859164381269281554034767762211774856296191151282193602882075803543791642388628669339557491538163676893232617207811433582720064811349510592524977362278704424786101757474535231147085975758184363489740815764207564201627546116216535055358343957780520647473386137031330114367055339712467732862657321130362450956789563926236163990967496644143159922451865419062259932006466619420678857151536628415932422452507818177573367460113651252060392801647128215273718425393885484352470639239651387037008759925013576131610793281769533938463506382226604786872351498820077089707270697995477149360278973113348913822721677298978251121945257325444910456658129852754221392162773110196373938995248432264943181531717951911663339948637733078403885528425299021952471983885033649543451818974646474363488909212611983254509341217084206944251527818502374045181106643078705792126944312074563740399092192840427178686369059019545646440689318037279571355883124276032868799639997901190495374466341265865457600278336427967739985751585864323640934077907914543190191859295909389179847226102398965355574770347506977756929427294661962719299078282998985825620607408285877239998554212752669140611919719881873488169995838903679895163132414063447242872048374686073946138342753090593421758824966658611971764120663415796618576330352800698068305361491976440585908233156322694879538991187742878119667585540897035449800648066874936902787357165788006690126698150915260359641821071663977582305827291591035803778348253133287259595200918383086773367884332691238910395713044025550685634541675273330279744069333013550978122061442731595507819567163207563697606471289825880039882110288908996320606212146152544262586450583764072013732431138756841998059085240325819921427761984631831969864177933278429214219363714761245236929382208171980826452705387736013968765182699110494986473183898220386465606739989129420219953856081785026613037522052208637095595981600675079269760947841663222162950566957132250235416533408274926590413540936567486053755333748762544733628542817759767344260935434528504490068325902149030370409449831438629127434364644126270818653724814067393375992634334705594487970563997913905863489575575285197631450415565166639892895330494970233909314003369213454484890930967067832565558141670788158228895545623440753530525154409690534281414154806637511539043475720810734051075341182476642944843590469800914358288153619643821638344330434320526004057692148134994430968245433490610899641071331625941956696984844960080012892518852754079418741093866674359544718876510426757930137423846044884238091512253945766653411850518347286559450182954258032883075729689484910630101331376442840752678754961367597726960830850819930029028517384073418411387154938992832491263376175045788255925387485614535551252592393029813680599806204143040489472694127246319779862688351322143277526648590040707829119781700267142693523963713101999294960786630502673072035574114136802697355428439272148352409919009471345465041050171867072624953593002956100202096921263592766752665927912004667621551263006616862613619491764289343650641368132928299416280934635391888949818872088159691907635289003475926052768539457750483191445223205123193528625017122109105459967574778690980177109022906489457013605743128207877817292616038829961034443880081047046970134337273316217350218214258252888175490796138116425653507575238819250689153084891632486574393332710779442104750619790190758556749653501866435403723517354629447790997157091456500038066081997420309924056122648655901428495011873862147740246610409034576157791836709868768139888822091342251415676952985192127431614548014306600328949781529206002441663045511695416148212972911675925478857365067001987110240456999973378998758711536577606942135360148968467163047337188075539781845906531779922091031729834904223249925450567779261730211277294033934317304650163643180650540299746243494529028551035196007466330017341256629136003285238162591232044572274440242385995153417411431172239012564102876979826913674834252655102214306696257833147001005582882475427233049243336882205964005144039455936726113854971373361623171578421404818069297973810626439028028590656900285910663281087938059565785754115429028225728143301908859996116680726208631959860511257415840900795994304667686103707692902058273893659427552236104734811349484148195304870399689376391309477686844786438496767209907875383272275920006836156829796490901878293664859902094816127829864359640810485973236916841904757305189960526236051838030346094539256278019024132655852407020749540186575173085534852963081032688321382593740829354383370077400764430031341217922310427512175988180181745169587268922835512417057985379615737438966734580709436196892742466988075961676289879069195028924587657740384032827636751159238119691014695791143224671314764760828820333759154608911217236061473390233275524262810199580674677935113544671949189381342148288736970709835978369153264707043082108085035966502714217427539971397411121828103927275308842968033708724687810289018710364556953968701879972698895350152915614093893926479981984882717116591940893240691187209459868926504058142678671311376405257963779219028563495194922039146590036616343343727685160616607122631914809742178141720337384520902351396400650942683916262839899851214116961616045533494005349183744164669843169120029145518060467015062981500150916781453458469831122869072666299755086192629360316934257882104095638937848605892945182976354565642150649459023433602463876279880564023492028367535834649478688337074945539841164012609123264303524090702182313262566642103054413588737499340818173902169918272602669721303154257907635442869743364830911401653848511537243136601297594937288049238518816819275141546068783679690627560010558148640056970092097131676796671101094025478800100829435997866201921650553723250809990345691817351841292622280450679584748462772246487220390164820744464883904428857094073971325753610327082629118184583302617606587530462305819952653842629365021696124151994564138185273736974176455825996981988876923700924518028932070474271878292148252862952196903499672570203528154764902301337533002871501872170432658026059833047760939592021787918465148632802875567173486382152467313180746845995778997486903390023189324169848413623214686727858254590572298347008363317748156919271670969075707383083697449838235701058985177717888983394263809314140273954241414257617907458751649053843506891813831402063131322148305888709835215914611558881862877549392407871891062644238129662234472447151462188087221688759432811053500997447094829996063236931916274607759521306966200469190466147653482958700280356503827317549028028577280660115660019494979424233254279308897577227213647447170370562824252938706140169326016570301042025040104624185522619531319193321095119752189888826744198409245960689951992795860373930060368696296664818357736282606522382153617007112294012808056755099761454552688235905514235351347380805670075576231360866740473534013064692409821258765785923210322990176768705983428684422952688454867313156907118862974533485825130249019168814334729632444442524104861014423996825824438627925367063089923943612629347910695403068356524888790209628146196517662689834822710184797347849647774506006302207492359118702490599621815244727964298760550741580489377414302719261413012359378027021815584084235873493108928587513169139118045902254558563197138921235699187353835478114630330193566446768499885230375797162781962199848853136064289322938908959208498830232200223723096536255933324744700745639420650128092810866159870862973474100353383668282947011173534636182415896724980823555120499878705988759074428118735838781998426067285494466574062199972948508969588009778462221120335742752565005363655097754056027705958190838169121362042052426016338711610856836726102932773782699891112364257970088620721362597499102915359471721638157083501410129429946938617515331615670512926600522428087808706282339407310096796624048285892324794224027726030270992696001343884866089734465978984136783822801360635421805899318123564654354563443854747066123472219182336719455790671895159005975548377906909106056829663740979255641965808511299978497151322983275172120680256421339822667329940980049321566719113065029381408616225759074146758903064748421052597525123512351242601849108890923895756941115353895849760182864514144065397808068821488083300787716128899794456997723933578693930729394985449295461153321226560854741769264948246149741239601085639885175922353510738149774170483057578622795367686738014616786851037856225692578580033153914844807639126466444936701801936053932630799875266267922265688281859653414933519095636132523985230916299428359956471285573348795766000780169600610548993981240882179960583528261466062442794518341999546045156422713731082387534643840775590093602478513936598269127230831149772442156297142726548714669320470888209689419618577367620938507758603741787123283085775218557302870734420980890618401964201081614055282756920303158792487793015121702279896991958480914825491308234643061228584712949164438904737266748138312993515328661152576032264194215654540356116458837242437994170710029229805883389276799531705838234090415846389794273655929661279002964077134284522087199756359650893122023738090191511155648810361651059999472195176252711069562348721074674055137546603635811801903727403882657589394875816688009838409340995104427417962876057267212931222587514534191771704860950614333618653491819895912302143487616120766366567076421204947988431444937312751622018158976995296595470434838365444242210148092806183053284215311248047010444130697622659060645766483688004802185875646687912737462432473846673431849625433183670961945810774967098573850023329274104322464451521384610873795996824928062708244086271226870016312850618800652866447654081832017832502282231837219225134859522893462714389909198166950296449579643359465619161715897489099932197154239950512508486050906843230021158659369100282112180179174900147826895784209965787100333733263936364603865082239459389727193256391013495560749713626244160959293433635438000589494100477769859527856284280329668549667957251725513907621008874251767458256306356583450453601076242919825991262344963569468667954977989617829347766287130402961649814084730664238287542419383500759044193996921282849286072963204251639626174630306855220142265160776885109937811313792933585683271976370840709783095554740547184693166651628319251631723965262900357427307113815003117528985187499785731138149119016436377272312768145081503567778467319448186588333809351556263184245835470800887633109343525045817028098843233103012263788189970370308024508948961021993504838818760735716801441025050902614069017646745854955889614995384037794988010242018144960220251593182082239702683172894836480249330704116145311014561766444695319727248693268962442337939808557353719284815130946976360264009771153888367544326610549956052885222558411279312164261265907510937578931629876103805993469752095538163591220334785568948448301675317603635285756858093412264882361164403756721429187305599252111965759933074068875814561091361645793393772222673768600106574097216811525483196449039539362177034449979439499413502929512229875457360830082605013860320441386911624091993321950849408566962948349714381752414876409064227083990915241241368270923654232796683855632509503599918763844577875057748014229039532520845349019006511705341502026293790841979257702805093078438641000163160022435364542846381193411949558186085330070635719405131440277148455766645649395917237002728958211200266265564830368037319223580744080986674790365359469499629092388782728635287753436886746783763977247128265343179958776416727754145852524670332529491845172800291523429767798936766940794923176061347541644501880008923233931275160202550839497598038445027075707949264132882342380469328882904854502234878741855295121933328564341750117808208954936991185852373841114485496483507595943971171190687618959260351401979534143065325335325689424295135770487615019545875947947934842722446982484761227369616527635707858160289398474935603600442595143535066234609242705312459763518016961289374281005870947149762204309246171960884053858413794088833224571285331714641736698451378996538960278468822388176379197633465463609577581653478219813626953477363655094500231737121655069441323381397403217047488683749301382240807692378755942328467503807326528652501560614479252451081360487439891636873257766194483862807375521101618786075627214449854874466948733383314335662120959900205581820298278705726168910626099089652106908281659839054810863403269551695525709284378501355808116288812025429558635529906061219910661710096806561070251961752984305444580058343032046008304418418870854540929734258965490026297285879294137978715646954229793626622194732729493198966954856325456780569959383034244280067834622698942269885496886343081855016742748278992013879226367030015517888587328122158864674719782401612820855774443887543739393866595271193739605376156476100013506542808712471762398790897813021036607416250737558445460251567149617887350544078234776173932179183077546568645349338470730279205286364472002175355782160405645655441857352665023329041384576991173803687329767967270872944666720740388109195385163336555955079549163228111175983088370249903529909680013510376336182965122144365735493010001190856430546247411476251454848742597344535274307904886406322016224650586553859983359544731909099411487134800342647995463909218160735182998664426065094499618407255306714635384629674778481698399066078009083836489542006232446667190649547917909788077522621886231924137009333139323417836314721412683532894004906288565707847937391170553479727313719013456876016643647937653881417213369323946472263942804657025619686735292199027888743339313539406120724233505527522460774740555449092502319025676268528156581366707418444313582178139559447283067289496308993633119909010492639935996606212110758680848614902433022661029567785374263860977024017901827647178384000444288638813981955405854575837294808560372856198865797757399519949754345615675241219094776949017688482091262690102130446563898818924216076960797350413571764482021830611161670382958620139992583376664637816390897394855172409644706118913689295954528837515888221930520213735200951083310682361382430277428873485529043525047532369026559131278183231164154605235364715393169274527244122847515954646405144009884236566238536480907344529255581115705143966345743020118759810740705664638253914866424401277580570893317886230610854674971190883620572973807955431090991057010656374140717685182319685027970051033236808583742763783823974156051749364961254568359694429947861335599250300806223716317577637184277436414629539387467267744441053083538532871806201618244468171289201538668770172666666852006966397464498669664076995976366626579248326882818504088025483732259653855883716773741935061342822191708292268042229842149934836487593300886081911706322530031802691537038716404199861422970656258776625563752584695812904993443417616125106561226801631319907895253656497003470122169977681073885258134244107093156868692054522777634471794661262514001233921951318730061340544272825198513359692285910036505302051972749140786632140343864080678732586228002435850376243240640090470565070079976010915574800443332814853692033112300713692717165581168050058721362033581378727461934920010694953472671118286994091736810233232254427569333957194093425631556669315094783713304895109989361920233851153416032234608209680229585008158070271369449626247287490079491767133065079900920599659980658918672308253569428868428581831163506386129182921923438751067145483557082388539659518154106687615749351847370460745263461634190293649789212842159494064751176800452951585999220264939365483150899448199482721787352974087183958892771268623157814768285555252703088326767988678673053654701867778585321072228330039487313326115898352099966369521934614190630132454284764704811043426401653323051655532985654354807866647725001200134460834974812903457599618156724355872708365564565747802663035045637737806355273333791684117756457864203861828118109899590879758927538251018685514306436282981136136173382027955671360943459254072465164745282147933087544818834366876783094212976791150190027016593045423146942420757488808031394107319845872962993226915165717500158010866721785209899494087672598070303086325746370078504397631714560492951998208596343148065364114489888829061394622977273799796935565092097450427757934390719011400637169436206870530824661539921020443338344509826320068908786314211176134975388498095292681134482997476323265333037491219058430219792554427481381323288088228461426692105004437789577308503779676615090812265122822127294982218656817800762899172471422650134545499318876657485601705107774377594793940135988703416326074439694961012660371557175983609377668391680814618320378977311761521067505253612317476226841351818214899229864706171958242362375925596906485685322865771423675375762312677941063999748665700315927913183807176168287382009829890624205263196309128552126324571786452231978373537912274387389935457360652080323367205845116063380941597918629376429825070847721515900300809765822559367224119526916051272431355342856443457206459349856892624275845800446370776676861377945488394356797074013608331119605641540462703904236036791043798006853520423797543430855782809944810124458360289812941809091318721775261976704252930649304149513296082991572047287968467135606086920282431212745185442647187728616728708116675155601453661043785621842551550638471328876095479337104115412334558623645145902741961726232269936574555562539899105096007524054881990988639283386037197918443480688330609516108178087024198362614120281699797037601863975954931025721028858747592132030763515233262445230259526621461632130772304896030954974151055429518294367171132398847215295232967568438618208855272165570937255867274301518229837093895413059520033680136339691839691767176561044129983349849830421719239492703268370817064150147894463590119589169088080410869388342666424466715573186557891957227015036842772410347715918467075380438988866471030891389965032325063544356688423802644666558055639269298684394307627373543237700964663170943966625138927715673389492091968547942842567313969993976986648265561848303333064141406478059627815651618950595466804952138737741450762740356332160513145943495254408806848308230403281128288770427618396916069671885665587889917771007655575901135039320148877354508421565840176552475710262319924534319017910545521631648003791416969548108137703941893284770168732580472228073804247875348206798563365686738553534444350845078690683363615918622302319073334702615679799712171126842430298496207878483884682480249294951820326549205243068437954112938020253776162466902567322940346259800339702915767292312657548429737742919906633363835654183504086202656209032080222727252935708370361256053448249603099094694278240542633948488471425207525812537101722827518500013296489591332645750680675658147170149650037173868661265216851325202521088524854708048431215904107910371160384461113898020194491326519141414154164655593120270433523969030459710465871736882693994599161167148265730373582465264059501243688983571587706470504405164737434219144617171258044599665398508910515263186266864550942841516790634571651805255097623359507753985573316629589695698604561123222184309215650433345168035304559597579508053135015929122109007074676196601913972981750864781126153883577659542414711986411469944577324805961640615964448189383097020331183533921475222476136227638876390557333053801474821407265146024861946175190277832455409879185974403401315955283534049630255895649557581345104046985394899540419956910903892842247363532841278940853583672446234081156783541115730390186357326629438238285138562535111374791994234869735870406516440779411907488320773335934399405364592332801183366429599074550822090585289772584532020847003059778745401473929448839885764181029558671940809394087992239442480829132198731030837822313939142994194611611684790995220803955107998567174694598695836026680712090420890558546698320925008448774343445287940770410454726166871301185574170969924239206319884382310614494557951240948923931865038784183727289636034395035978556277578874848013796213824450077910511607618218529761183217085445427218960087022897404869389933466802362015149154071241331909779741897439884924336380855025811595917171828680026079150304610700399299963167687548199099436757396048991824791841617343878895039307614804965682691632349071978702907047041805138237500516679030374727901878893629070709319896296458579147867813512815901451591328701831595191335724381714236487888017161718405516497762133474938360567568700254735385565533873244299896400101574132963334121271729225175816422939673730003782979988556189809111751626734560820189150397962704371038272638997086844508247310252151247260929409738105087903877414791314938891350265380184770650212795440394782908514578363680061958209827305035832954790260179835021759445985624725725059433571275183711609227240502818629777553802091063614822614172020894450095365317698152758820583905928376499925695648988332577143287655325445665210868947930664625084809033715300804402904650857519575013198032540979940712488683606021305620658891210012440782311561897189081146344495587096319525685681615239229937360339113886762305583458085766500156375187212443269630022928195391768613463011568979917928755542361226609928524794732211810753774912454099380204059036242834113976098656655227220536170361666045231325922448954872043826669605677869361688370875298246322400626396709115230063430388260701505787186084909589014925215049187122816124753413866802073234846120618810059728933973105478916991961492726292455004180887172932387367505982646629945724915246479362948796814217202951720679693646600294141161149293274701282926427365984189821404672279280975183253477296551589522355990328915947525877909771114692321406557659953577157212330808794288739735695537051766036627444951459518536674786222624960896041597348910730584543631646222512793925884742248426612022264821928432155818716354622984552146664019695332691553157842697692861170643989754271004554428549479990012146033900913303247511458616961458773919174791527102347443355918099307142576363130259364338598462225147245238025337892018730843335952222931253306873026791348002151517214434645598397299735858927061121830392843221555358488466487446728232079635316023002821325177719197945451595897663210134696564508318585200018739738598257561443319547635156761404435759897006267967377338742163629138869448840048234489394043130012619744033135146810099633009537917204901734252367617053848393791000640693030392283341459819262118595717190270882398132234676338453818076642700292249658566721023879753231440394270540771797442432577054435748108187587329930367294867508156511788363062978866859341963343411322041633091151888277010435173382375836266771248784064362247642037400046218191904701180841817040124859595962039895533505992656649637309561553706198484216123599444230827883825564862238085673313900699296757268881916859638346819341772369516588191266123885487953791889845946569670269951795122614111392902070445591248396219283907438217554393703493716000267991165042730646653590873500985153903646687084793394969556831200644049761866262924949503297495127940825044582099492722532495539450954561328427919949526158135819851189961333923991444298724096925993538917263775627170729887829684712863540725302764792607683040253118060101770866500870251088218536836396628686157381110554581259086311619299201516880187620236306725424070988406591146985810285603282145616233222718411196804456843660870347794003571939485729331477503698612715163672142429687458557783510069121081822003548668837284424512610473944951100895920791798070364819043534305323754134699627323741251295317148103130176284347036611672686096612591538697167955068988364898644125786352517547898129904283845948361666833246626283710515740658042634435893820104681768450872469066397607659704679903532954000455529153968334861361701890861907268301800974938333711259990101402130097803618973579042914493835397696124702714916081869888492386392665684465840391190303332822082541740421900921295769210709833515843442681835617482151094958940480264555932953439222676237784466302974221224557932778912061443707177171100835707192563649900112692804670501989099329108669278371685230119733677666509703768124861292869021447636173133738577989499829014478693178644948583061807849428781436406073137320135535084777806460535392334077357489196968483784483906511684157533328016042068855881324772980315259114113483049403156680424574604687367169901069403151622965966980023229416128298538374808708148603743306018214602095923239462621974979129657872863891641388276584496851369689166040599689579335542871313838181577344414585436649212615328748150654954541784282486521771252927060940994395683693096448039433920537936241370645079211825583607724157868952946819074271127228098508011619670176757971430102119556224033390708618539150232333752723698025195711831300555137943444404575821434921346903499693387743554690454125731735696429036671831571749710493759325217613288579145302490798540560144166341995585701244946341152050886934736648752798989271881333836588018125506552779932287026246605792461681876745985357907536757427548577040138443610667076282605792624496868603097243662893445573601812096358152671010976979912949868382697112300620598737568979060258467319424425125231122814741686989554467807103708102040309641749499701087430648479607511341096869091324505260049070930112359730547771553550712530429948158587676711335073855392257421086140326802627346697690519063224510470807394048186102869858472775893485573609991278128120394169527320279024027074543181112635040849638609908357978035495043926021392791759471790223945675644129233399541503415066832580284350614798816548283334957089466257874657951638642754981213119560739499635812080892325517246339864270341115502260277465089307413428776687238121616527519075914311325372185054193462683265460096683717700519326226141964439854304093691002665581682499334638320111100542729822527285734680520424423875432534344813409818364975044252957188239989975960772126015031338107665823992887144769429571933829179653327597070641463746050514969056639120164301651280701030828838453877077623155153063772576317954241094437911001398016729038823353129184522775926181448230444250465889051936369472775879663928363857832317808969523641767880900537619092499588419943794503985877713271728291277828790624584530225736503508676116400824006201929764156945666042514727210522619356298790913448413388308143821370362005653772440905749180709971138469829543700814796399486656472723952899801786430279456824915933722372880035608158864109425257045703757313873948596215384917952763149358579549509570435631238091817258956646223252602820222987621019907946723927697928425805040044366976095526786483288170282954901623607308950349205149412862338563835708999491814190990501807853051455737603208070795233541861621125265785432514707230498835141150624715732310870638546815925664692337125682573233117034504515939533303053509188613954698760648221770280428685585682162175121584029802497412115108746274653078431056462618543437178656824894675423357777875745368189225259666729444477889049389649843622976392113620394681666677271534776388202682045607628430187050483968333570303203673323293807248175096869584090598201184740964275178286296602772560962084606766853529920291521764818988562868854412228115975599609237162874653994405273646882747685625597693693673715475970693484663528352701914809760617364562602532993048018701366684460676462160480141901181829394217337557159252019768873916070093957410458778918069506025500876164779017515543065641239302156535377866970921873787085231910873484651824939952880807250365474486831445494546192482063073004811514733044872068561405724659385592995774251085539398295618352590822482996800368611223224212036171622450300772659893453541523937852850946034224395173198254459972779676472925297877594706913791386410777597914440906888268629732886371947255603562547800792895307990629956790452860847124334233504340068596983817727282753042906067642187635747554950995487214688601731299275394288880829574477065915491425256680016790978109569927063206266105608161172974174907946927820310307449020961116369773180171215841573476403664519856002328300228691153401150941976744214389214847835342391649238352460051438497732144961595491812925827061100327124519462914517303504796021899408856007683699008090391355196064185115347248560122750112586756546837393547927624745336522665723757572993413267629482108374986015334494675866283985493067625383540979375852398547548343173243532693346256512540292803430962764139353175227695479929493796652314586815822237507394907395799754356201593177491045324814148500693350866773561852115765514241755934736009891209756087614504628148020534958170517598014693933930897684478498514232973886769338244712095854611583471511098333897791489852895934207425113287487390662407766188136512270250322152941323445839320788377578550771697305601817092086237305162410161785579505247181603623340233927359111480454548708759370212191088754588217569710298011618070925101573311364450063362869914738573049034305765773069711937663951639414788896420782323793760591910779403823728396158772095186588969894187896643245113867716723302461758807180256553727326025898246163888158818723590987444455663618081335397533634312940533431500139701586036541064130282592443388087209481989833686005874379644335972929078702562497453234552726863621133723374430548937924661349151590879188380039761525164965150678461596058050943388557515220266167887311095923171111503081251115830293428069877723495860308195047610241251200685759275892410458476062872616773010666813132135442510999318398797232959248968664466712889937053856720192642120830644863343496317189886139202678972637508193654121510582051323246021421629759818929569360845989782847771313634091693879153842635381577933325285485477762353119568521344689181747497852650414524065149212299733775707787787545919388141600392496420188410970279569149574957344415066341729789219931862045777792933297553878997909108975579719379510245889542906504052735777538616320941363836143405447342372129585832637931270504948274859228676019139378371465610154676543254315575054692726596169415410347190883150990545150548417767029221549560536169701989971820762781259463324947162563878087474007590583986574055651632011164755099754052489155421772261259228894259050885542697768252730494545349830753021220625333819530945400534562977125160318987078318624327541090988263124810772998922109126774341247431499858416746817998850225369628202624985427865921180826383386700684704970705855853782899637946488198128413619964956388880588842083159162627675535379054757901465355296565338580882624909263050134046674205822128358194437227081975598852486323469766675558003461576524932353864527312501387894961625689119893167648538724302636637591839538603141186717772917778014051240069282024280912841087715284258055997292328337555708078032790865955282126200478007134448687210530203346793563339072745210063287928917535016830202535346121066244759731195543944149111697138562025623897368473068369226281057878174486506184715022762253572463029656619980895623673561073278278817877976088533247435769869700570220264389031866863662435581765489992873970750168080026722008697457861809765822851007505368566217079656328525698788434254327656934170062630323351314644773804308034078039632925278105873417263422136604105559837435512108260787088015418778538323740081202169909778112729075942297665473616698400161551793205141688504965959239691701733014708277319438891329727395669853820785427560718619144349339568189553108117693157584557108713422853546266292234939344666076060523136444033897777986357870016950303548825272392842384728307511217159460052866309226516657127634147012513705243068427728249738915581838287105859404646883973049645496503158162167481301251364566994147175500757996187113032887682605748874523743654162218934064946802155205209196020682675747140080203197972400569812675019296551644241184813138952025928521325228976814171079958447343779134930878490927145278624555571756661200961709333346517000258019019486433394648802158352499208447254872171770028724588143841851154142403669231579569260224438586805948759908643989962310291081798037881856568761284889831246841954488993222527181086745122819833656123720378143427390285695647820495682817113878464054963452919702992026223104597776902548154751571274019541041500215739382933292423392014490294038470139934268985703120077994625022914228702569773514939471881450037932895360213920256723877050638550029376455879497733205232199580938021592092320902119784962143389083928473814098954532973110435340602989597578825380124822510121604104826964201774707866799026864694216308828781158475527936988671548369644643351348614945882199142684995762081638562036181627362877033190772332032727062506527025902134653047755389209108430171077534817135684664608946434299880235543220571776383587362807463107654539320309542945011245192045851076896957434802993038421506989087954616404678641854282542030291447986092575696294436658944312775727292984193608019490023932982568794100425306608857422278673182504962335211560317539440825618979029167842393010389456270695465160007440422057562787372262186910779494061359007244654461677959435080403374741989375833675411771284173545184742896281447899924585172084374399611195570081874569162871845350447719115219697231453063882946784717157569247077127841226116691102665564934129496655998139256839405286875742568939186910223286771027246934383794083182958458612283631888837218755333022233446771120879234682751728710045947733405900950223184085252394150784395816569397925783123119056841770037289587594010459954414151881497208381040467098416348984481613344161997336029929100016157569578012049184279510033500278318063887013447317395587372228205210055732590186875484027612041026937427358252236872831332665285349918634275873771013837635984264434155004118072788444911546640009833111156399413130213791077430254220674468771358114751774452789535593601777197734377491152611337040554010228185128321972340050846700213263514436521475697901329956303217672840125243762063758192137853090159014066309341748432860003489280253875725822150922906630214601050159300302271992868498347727950367939383234947004944541052142897156995000770424464608414641917960782777151828906244245268531741331267560087803478960798372722915495101562752841787867174796053850794209986498642664351416260947592753407094727677709734143084546045560416178888934227148849193937801478215319016006448437716208246099447406857770802852627394566163729452704875450301134774336123325592359139049552603964947655593938097792476135737283255129060978784910531062221920604047765047910725223477154221928686701604871380130921628909335383159816455640981292878224687332891657144483186979334672952216822882832504296005777831282810527317928802969823773068170619571092488170788841799864291676751147477369377114142147483543304255704506183426323908550294399627207121695029960052001485181241698778523158685327548527644234729474336401624179367336397176780884368339995971979876032909733736868830999017568151162503543484435300375038943689247194263743169438271567679000091875540361014948169144348289114262742191670881995572859879629396559176134706547164102669166910565626532786705664623573194194479787298964943375267079310314711561761930136457139952535528030075412518836503956530116901873095635203423823329856052116628637577988711112774841593215580049277982066847027632700185360630357451857594452838312745992231130234322984896558232447438304934859863143775600897736290955387709031600680677515783474125096560545007125878375617373476355455917423401468730152239723148964803991799461032416970697155338891807576025215994418678443356632745360773142575296077654624825436811311176239521551748586842061007106617812794880651304596776475124016651210284638665046113401172952651429690027416381546187829591427570315064602556690632510614433075708930439110267961510283757779026365860483054918353932927642294000717406487986183363782058014419258862000092974906162135365118862242721494948154455176509938627832928322039001846807753222472141960647413172959915901783415304533952090678857965482863137488358147248986768537577286655736419730802793282818201881899073459752738881099873720040331413524109219560141414381230806314196951228529302068688265749007838311711189047501391564200298190842932024246103455640224596379888264182215112130875338156710656778613448479147348309130375884845005135446391649768667976624415361943206368082802791242906478068507329686222240233886292046548122023590402218710703073465082554388328363660014651213019821527007247991575270542628549464329588856671541900723265608583852312606265473900328476892916530634974247950299892215742078885051537417608592484607219408339243598234557931109399209865000190418768669021451952898594749020337430814104083831146845670807469697542533299885384733691776971248727107092938203327630764118761894818445152831010506516995354155438563880829101045345944778967832922539808253259972527430667991317755092213733457787786009327554022503287803276277549436928649884850596305367899626162337785581779051870172982123006308455429252799459636312953417545952251317046124102409307149258630369249768608615847902163017065220892113323828820298520178796823305056709098800829666268358833625320524161082270172133149146770873259134630719159295669867870409265172518334784521688857136813136245079091963176821968117085768384669707424548686669719225097389353028899889420683129747269892405702003509921236719596750236342341960206890206005079760318705687662604790090582464055566276301917783087938515831466104791727389107664544618747519365918669122194178272719904635770264726247838745096210251338170862852072674875480934430392213116669288994063504282367385340049178934711036915327676571320937830094855150235330063142011359445081301739432484792232884633823574081635240345970018257650470898185305694283905384791565204501197774090836723207009434444809980219947818146086687177544143275415621295347611337687009373718373270807530556637056031286890793448059225722963679658096721082053466803814879243594968405465646109223506512005263986383168325200316421249594630916532403295137809105233873073041708063592382783390928660907592985811905122017849338550623978694297231037190581085742853069728238743786903120440244441584856974050316687255724573337641886518737671621332291053861788655855304045292517155410163951393617912600055376881789827265572499504657886956555577871984759285853844360347056498020183095703167481154710244175084585067795103589083838426004543228966229393205129581292827972346176761911092015030370618273524795161844968537955751095385214400976118529291530623253163029345064411256196283534538092063582936610108369932557671815693273468678285081959082862993592922504695974779814934385681524998275283258716135737141710839831896672477535144598199859143225868230724096656644508447488831321793892405083779521181422293947905670659270345714230054713378863372778730275558438768263890131548547292835038384788018938936029556827056880882273964728848183629681742282230314893641248925934289338822382055332616361029671659305687592376409312461215792191352947793252214480486266064496556799508945892548120176305819918021312256626095898938863772784437723651041840486800071045017191243380565698625473548305889713031487786244500766432049713418397997452135469172964362261684262105334614518326428320844277925576033650720312337142336654829886915553014238298903617973994342009667158355285724586744626454785775192228447172737220674207021713221026646200528214777898834287794842834263326892491042317272591560154752921221109857044952450372749700523259251085244973696918279985203712937069669312211157190616525523805132481448542253896242382562448125631140823059324740180306530324817236034688118206501373840018084963183929859318027682221925513112870554108849718941944451006507503609991644346581082981894494179606911700599486183871340746912323917501550941670802904345275157227426662777662109174419958025331399802261897814650406644416977207714189855597439724746995333768312527767250239850575428591324270704423192891580204050887053248090765970409967700105540279735311263452896873169146114479152129028618620766159599133289931228162610915734172121854655037843950159919541871495527366687552985573031355870756594205120154883217765842736489592584907994062982501224556668720515990942230167896542938785478398002391699700380108267069111324300844553852574296719710959442993014286435825189496633539994470770547042100219440491078016450263474121135643188913000106828380803211224402567063794383033215737855769407632199067942402590557930462051885229578000446386484317942509913539989458132681696303885237321825461569654869987273902560517146964806125509375610022945745992765864452144570213613023247350213231107587711876818533144085982261174716952936370756074006824802769606241537842926034058855148180831393283978176800022485815189699159001482172868622441048981476304224796542782154798776102252220202317130718094960019163591843975804379905607079649071972714000966328342176063359772820561118394753010917874958670795364086602492744482212314157026815031740453193260736145036066287412876260481349509004866854844986068246216199218295369485787538308957515853977027750940242924005687196930427794896963444260878862530056757467896016188804608592351748443030735999384450494444448827105192270317127106923262371194750225773917997097788979905061053667418679760396759596799033535968841456973678905586085942828631753572476733813477642544592429659223625064874546341636369181697635635346271142519543219272803187107258943848337120183738174968390833822152520366075127600596746164625668369947746230761574293785977620926881613079561377481801157141335661243746619321438468721038461701569982606042429121623019726191611746527625316853228893572691625279136309227443538543658176164851659103189731225334143651497926284438075840821747541097911575274262115507745507559009767441671555202042845133427847764992558288862600866187048703248991049225040306220046433190625983377358961442043623465074016327330625615542039842875348177357618705819456838346828646797295672316841915505511985831113341727601455122482403397534739586660369048604956798943216168703927763220032676747636166828418423151706669427053708839007487652747877799918091894043123626030700059707124106393895944576882059034688282742258001191559288241718728948043277762819110097163162548747268660177266966540666658243496264671947066289293023635733764586639487850105482798351863490434193756383002032289266232565175183280081710407773037370264810015193697657412962447493117844396978299122317577260438962393017804412020807772061175602382997010983384581368370045244962738183356513076770927511784805345731307799500422981752370891982413986915082368822000499484079277205332356690690436701852013104502983641629416782361977473075363653495619175603237594869187831705405157619827121344147036195003858043580274622482186385010890700734337367760656935841737809496189100584594283065050192980121517897105678444145988238548445078585222321441620592641893207079055857359056931283875078033292396571811256220686720912798861299548593616805138825737930040500025844378813071244354106580686105950514069750854637569707436842363262512717412695745118177630279731789278086025257612237943549972374009509791399140073456280610706778731037921468456226461159975229299613517979617203896800596517847515696305817801811578596754446634976032619245481042959438767805618466010122360995251033685370751846925202044505660300051821897441787889602846560427146567621966719040546001527525961765210287673379066736582379805668097157750029995012562715641162116825019055713606388093453920521879147073487001420826196631327428364201348373465913526919744498144928488207007166734189740400063056097600342132341370852620749241176436310786988445349878705460799818004136119425135803912996184183143370928469619517176793598694592989869728748525798949711312690687036711232065230742409644415176053228014193823581109844855323731084263675506217838894688686190611270062133116667389920705109789277900258454882366001874836903940397456298687666002203293512488295907796928570897280849028210538988391891149593972036275925670199824738316355053821023323519142077598618331830894680777730089147755245854052004115629293833781805687025178517456609518471882781678969364799714753065244582156874636622291719638350488646286430525846874334539502812449922058131120668208248288941544950672080319742652545238735050323025389188889302246660447847644530445290605754135231553129347129591132489450085873372715406071541673637457649026305673668767042999854763895258549956096327041632900411692960272989111033663816762549824756826278862392878278832225480056971041829613398660231855319892881716449095500747899057497471131195662108968545077554666845444677695331705208759446278358191357295784305541122797527787354927611876358683629805342827210542478373868223195270907538712624794495457292511135124117418483558394908243168018303938003280092819281667542657393943527390109630853948521869569271708712222677697828142536892764351223198668879228796523333344910868420056139323914247020354368728315155223844076223614253133292971407715094915419608611014272069001243378014484228034426207191877942314891081885880928712506053727756047851106590287328959566122569499051110623717209400039953810559506580085589075499270784465254786003777143131501984748178028156492573904897659760229681371340032645535197316199432415236844633376480421661355547241804533246804636742335730867832328486118617609188084527330903955170437958002196126613005262611348838430040434646718372538552132086472789134332772653022943571626588565733335636179627680673970343979280758998901742383367317832963237787118334026867203773088958657937098383114436390733626029165185947013309314191900604574285697095148318315000356676379329520917417164787360483534096099303436012181841242680319752668360626605605048479986718886676484216740468698540010748091257749643436134045710693332782703749573692873968456452703534624614301769367137328266715335831554352485015555655275056729308629821799946328699654802857599552321685614972113297292697076852467118201044063376716341287438265761445589984977842050536963557978296408359749537840276921822091905549172012507058165975734397750833684357452743616207149145706127420250835080861238863064211049527971281935846476496309624083737445786114395210335294936837848444713526592914984224190117891167173905054082265622037091269474477157833643952620326123927431006032619141024868567008919884356071154598528060476943969724447523186363994051173666230914845163572483216119923487950416110936669932062574185956231565721325485157398427763463235029615088902733658530581336288780243059280738960882452846029417509946956951225175876906016657675489790582927959716864321289132821835625476133263424977930659224970280807738020487742706725172414080997303641175338945696627981318056880939100623988069580674354245781500907838209456291368857676152487376795527492028610292018292730829179531273531721238512229845336452865887747645333469808286309997012948955726443064225484596075414472678804502332105971270669782707580676196597637006118190828140640251817304203368668742691001994128480079231728930555782909993022564811241571378540821165711425125308220114840789344964922779294533178846408561713001127122893848258809250823752225749394397400609543577814679035837438340553958847145607465599605117877114126703096399645362560117271897102020424531060013935347592561991074156393581432471262850408893625966685435591279256106007416002484878938519428906007624789924568462352118406386629658848048058884817296556719313888182542399462783663997244571581564185045470568436676819791346896656912476531198396828346113191310648933699384497845371770773332705035137398574432555886478394050611242657046319373367426046879120183083955566457029906318460013482398544423218929752156002874696536438089263646406780297828429936778622847589847192588373588869481605011344458518232635920829827483406005988513755201223588515866303903868613359116761179800563501145496720496568275997386182295881667183693401789650261757156447430885317760837241556165166545485519988234992514811455314152540572211601665961273219053780893407278077547773515322366165787004788810937064976435072290697887992097541060768151384068861755447008352364572239717577791782499868357783177652903336583113338902339291679073220846292741680230155347074231398032290080330116293930534355474710167989180524546492448724649516681068715367920169012978497645412740020664745682887729719276847290266317164857614771873346561057358693465787298062410472433814561522499336997157539012213211972278289644694519138110275246556975044065955959541024525522028814278493905611479768266162819725552246161308329947233342088352722611748047342732583956259835121628087694503863053591274738285951910432117990114673006983899767402324948608303466292916992354844479476598207713624061018264928557286718367390584768785744787666476075980172825030452394378420386339898945872092018939556297884547686569022046156532653419489710411062010098409086167087332561973780867749697718663391129255813928028370069281349008594083256702625303867526854968627905428012366324685976231090548987181423729410578678112281594482443915474588131770240625319104399858641284950532461878806822542474027409246845215971093693191442084326916415940653805081776956694881387145054182353664259230534889292336683152998488350144397969419267996081434313914598011936669430477945679663728356509527030278161329018621063219266812916801136687085138805995370473932621933149780435267065145247196006578629156284756325718823991924376309165412947564338148670262698805270027815759750526723515994849794833767949725168006413865214936994263162922607762303847770083321034371738997691870847461069588844393833930685165818040434010330371447969648270118618335481511724845360287196184458853445507008512342733525417927528765077766353186611267179591338816790591280415984825853116909616683102454750216809867107776966081679010714497099660379867019192741148489707161764578920254036537759817117175292830250878930960619013650872933619202357992305621790356354904746295695430898146898973712135285741127968384047512330422753527537106503347334853986830963869945296816519246481741839543812829210130516652753313217895836188974582216464174420640355183662552272126995837950440818741132778161688187704830476777739284478846284296526371065711612171824859806554506656635460573381220450440453689381990115363628886991695389527940926354985179508233155350062263836300065575069051047121914110536655543594299437854145342656298216771469460268043363100727809972972780204287392489890164674503682171603391280290114651277990458751576213867242036073024077884631757733496479377399121959669325573477133302548032563100753524056771190387477658099501870899236194063000252956269035505365047684143331201095431454999219248080681527321294248737050497333438014684361688820015273850216231381436361664320444259128344223473160046131100602913882515948867706499993413510496670061029926986596174281541947319344099270687427044181921925132440083981152360396523355069678017115451899244755323850701990407622845913255496642360360283645898926056947141797449446671272435444462576799705955598591528810961190262421310873889921376900875199553331123394959950682970948736402116625884095118422764692350928794602973366821657517320526186227871461035393264635977531122305998823285226657736963398386988317494742755409348049337436908886687701985432618335850811306778057699960894548775855075378548210148038707060948515650131408461546581019631658822892381618415107964798176322069349027737470053576264543709262123829411271787033082353724861876402326964245063114381253219867996129588745146408884092006787997142021106909938272387987799002664019935729800888624512757897286443937655173076382589895341672099255658000001263017550211963922594984440028058918967063997470272434642954017819416868676370671297387657643848665142958331064661830034355982044449599459766898590241063913659612929142554492738679485873822590696619500551059710656083542216426849755348207749966465074915061078900626830404224960298493454894338258445001838467086945516490536368848472316599952610014345860544929983794499720120825844613616200350807135008387993016080311797599452453850489133564250353475481144453010441476110588524829200081446058299884544107079856574215292049227166541785848400023509442081452570001245615362953599690003248984567704260486768406579932889290404480820615598691977342927799666485701689489465321267593724893506378327008514800537850940757596985797821508646703095640167218594491391703673994711947064134094857441508747040486280411911062042689089322158885303743822733392518594948145525875976575517217952881981204908335666532453603326500094487973119858043809761721431947810779412335099264091969930634504273528269465609888601485686740077087252689472632494601272037286242446906198225843252497743667290058594305199171204850072926810183481296103288755702444019401039072802932134636191245107819770125030035819969851349725818697157568747375856689762007973800719744822194919673364517468524333550866158626923830635456118942612518928112786793651292625147777038168049296337336904982268155631329146959470707115014168699569307667164390446795545597166304523277057333228406466399881689514238798939434241414518889354931822919255251183814350493271777447629321709350710218022375838733381673481506394506029316284493439180921529237393902409845926233782998818526810276495264497517097621250921684327667597358894127213205466965011045757833307254655270998197961069287641297783933861459192315367709113924596563302074147433397168267345332240573015751265355245382818009024601047926990374323938254931313071997368401841470094316615890885393908127171422016965247090015345183539981707903923692491912437975966491322665408815308195305656780791435672802762981773154833282173044707036357025516744094205662146970169383788611093439479506766872230397795198947488088398425809224732922115891512694255001888032201310278314915889282079309176873990097510585142286994674594098665221858927060498054006901207226190746691599981832230741587756975077890814241778957791140673562881504200044450626641679883655073197437804305872935519763952956697972264679070967327415945749215339562437062472559442593574958503445219354915575969818600642783273425824449927797553615635527864369729003204908132353900981472025066817530708347068775991474209055335463555699792568074045543698901730484532077758025292574621102979509430892887505459905026745107383392685453937092545446176310021576737632481503853087574872930255053625196229359516611398651828537506926450258245768842739507268016767588912195575031319244304688444970632187661252605308218195727951423830745277480658652412850274019192154974925521118363691761213618495034508085005750007868687540476225243824730396753181449841775731956227128465401792986893895046767273018033552563866470400667451884419159877461070845276714600773633982577065759164394983136693700412406345805124436451302593087285781656873982606097028765610568042736109164352273356993237670905345304317679529219991550974737454328669485592496790630492515906250408443242848555027860841618637249967752483346930115528530654061532381125765676728259877141986629524270417168431891402824060393106069441410459228877692829758829591034841680071391613898979066705067429052007448301031368122419313371737297033478845104160015522532349250671428759947379086976641150895615049554380668913656816652990967235711293124990309643442113421165856916262292218339083803397196036696328238439849418356142912437574462417325881062690638633477758067595826826737481078829415502663498907944577341366367491945283423474402380369031749906468405380390026441867185003189418829652003246478623575270636071281938806542323284746207965982726171616500545444403500953513905675066397742084927725303402246045501098171594406670686974506427905440147438083087177798205638827306036364624541919164307057940303350188940060708573668023638900918299130624499525215500364330992638908130178470553175148316569642651488100520647175279708558592655909260180038782143829880200053539070345877239986993071286698552557977822640076382666901026967211818249370657109687799766918689138350797414987957807746808241331577686638791949269230649767643167185735132141305470684960814089790087246296332187815605049335812677179982293903269586074261936978652961210362014029297513945065934187269214643787069570017449355387592528344655815568530202690160013397065024617677623627757446006075576202344434312784446812853004389762908284029044415433970326239544873048893317953740823432028039663498317116061637779520354787756515958561688066173505298808338064707388497495923213325393571280558218845094899296347000212469766132854518169767634355813805752335387232955396366378530473137355905010995157150904071219728553977333982125260353821511384677861253171174798506352462314544118859169656409715694238643897675218710851973851543549536076822915379187695896810698875504566895718451025325272534217440154238964427374802294223058089267404671663402844246984356524235500044010845617449067202274909151949483366218452968411557363280785299256545838243950695516471135769984370180685628432733604173408843391866583715124179330660211803816954949321257151110616937429589353136940316385263357940807816496488094681113488166069713961447401723463200721991868485829346881638884175812759861444716940609337168284817069146760082098480767649880376850171901849209835234585955802352757118407370177378671462780310786094886982200842145953155448845139803630467104683864757834096857549341975582065013785326760707606557211902043221624045196393951510352955910701054276392656753710172350840699176039632215584962881753169210134422796459385838437998213675392450036407740688288158677336326326105105644835342317757205385554191579788608952261414033664188601932160576379733508829993778711816557591029695447489555001338052692184494351336185793113639918311755702361402158128105912188737461216666462841873259785635617918337717512497863387525783671960912988947074618729430436913715734900412036066693273245431887284231165895190107647305603332408438868126365199654496555256908307284489924184749087904435696339735210439169092779860813933392406217400349705713311876929962096657529577431697219218659426764930751051045538756047697391737688608404414107433267447106486527033684332847391784178080213949956365383096151263887497200341375493436101357291910632455634128780181360339129697553842430019070006351356969647124075627217652460994363292247049993264733513936395876261539293872382311075756947561478906598892512307862279404241529689150558150101905033245288753240073483894892983161699057939755186886057670616719336975753348585358827590489926393711334796651109824658743611817420106975683885537570376056794093717694054194636720606916846028932761845915859104428223705041867590927070748413906275272077533373403747509043260580643901547232712536251542467614454723520723198755610213549227441125584070412848264821539129477629651159474748644419474699445290887407157078409960412150888601034790720724025686879326138291713051308832442255206020198337024779774512616903784975844877235877388470843082235521111354889157956291266418310162111273009254952071207677967398456300812384959859263827148455193447335916858510166216468076419559747289758628526422896789310523721902151468590418267207717758888969682471475611726542932354868821277967041836342047788599109690110035961183326254613124141943758697357075199316433298052267173034411415520575785913286878633067139161737091907090217892347374488386818950789487522126127512468354383488802811101251396953706206317319715811070235970233437206509364857536492788413826555114622397984443950103850894841043953508849056152231712992899351810191114016052493688687452434138129331935161701894821702269299421004105390293503973559908656809790342090264229743013989411679783080164574375500635274951899853925073329335919326966473973073491837773245045998718791248219968174759158680220094645279557718001101742301596266748561619809174905396193446033868363918658901182794779004732111737242548951761884737584088334786249260271606154291001642356508714700010740873576813738423237739538912038335365348377310109582809910808892421395890508868869235212878826084107591238410635880081779270690085220832057261803219978657152356431180773369785258294558338058451093326591650100359318511777683673685943382290187588899504309409578797680112245258490744554819522394757524201556551464166866572370378563471535246160966654827814995418995999342190876931252986204355970188001578538583958092989560727962451312155448055586191987065181344873799026199592268682298274744901319391741874703157209709797656146554614913929855335272535144308525037679655809159886890756667452972432327312336142727901437700175684778895930942351600531364750953644280591027324904579348865798987758482222549298606282650069311672317421232121386925146766968533425999842031962752359863043252557113750611281398200490277812469630338238050343467359066748661875076484155715486646330476458218052063916033062597251950254335714216660218439865345123568038672484363637089864631318782022974680367083898625991001754970616425491664138356437517797881559175551675222258144144283251377646932472793351446501392668653703815087742264437053273386569868941424075702721897506635815625640238093991253064017056917638456060762480214532039107193234990221372249926288556972116322451776040803889340464808214691982679156082836762893531240781161445934342062531926594221770745415495172739673741107904505185299087798241610332992631150982691066100633102899244991976773533165872658412644774976155119107080033499339682870713036246933656910603783847189812376202886663368730908231144866782995958973671887211419016266136645531755426066978857598298962915384678563826512741452569088619413592114654665317883921930014932132701435316568849983631739381489481613788468223513825780496694885135665822422416494264352978863899767641796415563465721042516837264742757669665710617148916886719903241393925132386318494095103897157204599111790777270180183090866272316152846234906427303251153820682000292912922191271367824968432463889981034283644781447207557775821074208513411197525211991090390898669022123333242378953335422123917977909667645228131403971653219482625684255789874224738591966507479114479524837610147478114315635974010518108688476820445229805438693512371437902231947850239773428732863699718120737215036199208850955578845077694229122478258613218838439446331912647633589150415563102639752710014582909101822892513852344179419949477652806553961386111183113360996477202319839619626490645524423615931185202602369321756170730538861793588322131914587812600881947244748231143215771387650237055115085586048219916614088546128981887389628747753029701615150171624382328989764698838870166439248417225243633822730850312552907370160905221875243271491495191142887098430271178267462457349124531302118363877407973109305020186148824024599641839724936777631072876138940007177539105457850841245261798181589732425604752859602652055545464481505106378186534768670022390831052750721525315126644538499325899160683770072410084752930280317076946426403760585531113173540200539690698863778697465044354166468133947734248779104980491044965462994554138906714533695066157692206620708708987423818177174059385736445025948448681056014642830748930943012376459372902681665913609360925031711136477551516788878141901237768871211723112317041533242669209533709847136185491994774053661229329908664647841247417577919085096424174768955428681251832073357250755418675301398506499827888595394779416432821195883369926789694459220055392008759571071059922564533120868290104655775839970588144590311113672098749978540769450242982475779936159726819839913312660449192015889316425873943685488467975156898616457515623324216657438259174084634420368717447651475809442142064190558878095669202169666956533089996594523575428001687848509887736782335990062163668570785956008147277433316577285031880697093019415649814719440834091590113444123139140441054105183079032492788608305848528581632450410299935733031629711050305507142527225973870977037440113801519576775896669106752007537922226497343931165062118367500879990366297314554996194300692164117142311630894661416697385914258217643921924238577688161346210646844508921182150984289175408363957469221942023618887529956451558413601071969603587119477772522591491876507042848072909836033148776416822750837505860216218819787601368675521121546337611453783380162236289222724753436073872466605250729261666322882165362168825093788769911513877821092144043518102587844872873333197559721348584195289185008642115402173224222980020983254977285904871454576678469617416146904733866689293868733051244100681512408691464419873529978386839047048538268653779269900119503068737254172857514876741319899175826600433736574113986483835134386130152771383497113876243496518682449646441408965090170310011854470334094703982000585209739841849751728556261821420547126478731551049329649601920246044042492205232776010157410856951592831764690913565279894913836793406910590118602578613659466054926266253411545256273993440458570854343599503745379753038722838158471525081945928502427285307696978982663929013880339539282064811850908777552763452500208545982604516799206171347526910659973654934420941748688996038910085741532931221721972152286125953569124542087224468033060708259134932627291223037192256308523719600967606796172424680736584463977132153758081704990491876648892453795005657880849699961775288226065788407300326227905910632411345812540595431262252090630199065357919571898599835323446009507910365532038901543033960554127090116736381192044397124626798612524901976959461191508853549362336741982228655448047949969494073863478327769933588652105959939021340822191941719900924346970915197160770625842255491271126951674574433585219453611381419444938611687806941255898796638600374208010751205845600923272170468627802709990760626959407601593574870183345482088978573425970587059054188283843031363919115139078304719220696519251188910473225657251225789243445941680866451893909223952076240646517170072367213584889027297033804025731080044475983118526062923524449248551312813293465193414894406179086517271134799153399240509222921120633599717302460677076281714333171589838742243735554399552551020722053362177477107727188050217127938989156988341300615738381890332408817826255672360740815837106464213640243590869431900552523479941328868428446287663872065907674431726405778326503558482626919308176189351702528224323900828555841007315836497903535443135551635553320943876940459088829905836877492592358321347762514845698004395110693843358152432124976038651091052382880636857551312906842817232535334565841160260974016374860477052353759153964789226972294826738932309423607976144648580664695495364167866647036399495607885370810056162683062287206794891442574176715749265427432813464486461833250557519771920703668779703891922631621904992485570511403106390374598403082265916801771809620548216327655001526050716083666308043565976612493067338932186938644551166122336928526960061586429619974644529393278304192563053882207978071900394095748906659643110578957189191802346806958242517872108142560801573610023139885637498773280239469999140307134996025470747591587340038462230039015357567814130963051413821029532710755560239963223757386470435517205739277382790174439333186268419893494047401355360408591220294251901946296014165558682920197761141945745492530047702239193006286352848363148092609756540215025930953887706115682788702796925390153979236003211719378891114466000999812944422890800757089106062560070035419357160216559985317098296943534213752212847377408071308543019523001976926185392361440416960926005413916494566297747893059841000553997027629466583346005417752307580739650930590049051617295907122835286764607707270293341378902867055985197982933002295263256921950929991695388541912297651796592265454181195613001381137002692155312168949493079425594600460731902633858263479893244590952673620533051083165948429228624984462745351815293727751409714214300008978096294592012485434088787966383882059866249287020748207870868862172178688156758410860040443737358915717612717778936737113406713101202475427482183306146832225031504570808732605771944496153507743643652638111736137108800794044445576573834265849222045326294414836956304223218192955571013668307026742246056158384571229405711521696109481382374574312197080876761526674088073977925599302154018755425922991235890842501140676547710843253621538359612509355803439615972798460650103027863465775872323913300300097226632500701187496579659911459443349615576313536321359286658294790804649417295683636037312795469211410660843017595558086898409684073169753274991250219295103892379537646497163810012657878998795278390268921476425727696445565974800310912348004170919233942422295595395722240121279636592267593035357562333454160649296788874882627508383667462943138640453092757781929462899524741710530176105931730007253781233031273141869599627132226891804549965691446668168231457105189860459840620694071337025556462520960301774308498063288754666772061345810908406818028195269774177786336192830040734624453083104180382958788059473964966474454707397337584052391169463841475333393157220854512011997347177449196919063561387801747009414535283195171054542764184637588098052097985718848272347413933263827199211886662845604440961922983004424407042270325293017884761663382096569303358757709286357400500321671031745091099727464873733968691056658229505461204308272324710252926181133204133025774789873880243916991526027174993086354861041254672194446144091634694389427582280654382793223137734411673732656954626155049624586693752328887752722179746578775899848010147812093638014536043158146647267483820298481168861748930663273083567626491139675324376801400403536041655637764601496646738469597077656849661708291778487239677399267159352132255595156483394163325874076452574871987683889865778566573396059285289782466522217312662568082389206946393419065371491607510223671244051117604922164225728328689801677582104685578562328911801413820553206383814369774816799918642152245466928481474751281510972987285453473418398581278436268511819906724191023539771729906816778546474752246162798153246317142866366809242130368672295674348332064328215975093026383119950730368263780424766898449770697094857922219610075877547104887169245131735877700740262569617546114558713384904821218468526248391582913821776965877768799669941609894783071865015182162465955792634984765408668336889408071760703365939395431879080157284961640447095839191090312553811771351671613792923819188714187752680732825933596734277236287964686706575166135675416946651147381911060509182038637093607388933808969797414703447976408832503324382747293275127792474785003516678086219983449783875392120921702682082522454160769690204444461412651933958042733679279920340355554856787291151590233125995304757893483911422080532950643001936522562016763432637129661146392586496628338586405485208946467910491994142048201929368723024056502231606510827911016573593153651384683581092750666271072261909322645773339591684381445879065986987580926595540533019131107934260315569819750442296531157883015834499808282629111190348968051534984040281761816592434198501476023786954700497660354327966633527241164466558013990572527953263768500387786799076717761517598388747037914879704335877191059855200001292260380971792058081686364455256375665780552281289881561916052534209271313448856614146124348231796169934708455947095232950469809940909849540429950618910912115310157251346998125025853327870194437891993704340703621203340969446853318173641004741357170203827602450264757962987196490354862029139881490562560240268980618136558060103602819312660429884272739034051232134886432961651745201213938062304286633261814463436459830822983551711676729157513602322058360094241781865368101891333118149483935286504837421154227438127698292366243617484266697178083663619160303075907618296130506460460223956496858093797367591597781123267941312515186795839427205101631267891637881870087864769863774261134746977035890099587560611844920023072971740341080368276602845975797800278957443996480798116635180590719108067666895743213607718516221570917697269595098250185892503736976112898954498255680112521343371871477763261906040667958023932877185818265371756195646939725838378556049558947303541399186916737055919927007798352069677186325401355730307928800520287439605754444436946476903632365497779575674995365998159462411529310470263626227208671518612183771562428556702210099124419188859022232488931696815450436429223711002382946608193105052057898524457010363700704596061062872740929090519303739715567567983941083546793597524473661890958403221657035032541884040341403220626289329018961634509214252822154241086209327369247680245956201722239669268127308651787067256466433998717498550108250401097702696438602479104505274469970439840167405366989844854850977822788406665665702363961073682322259095595669417366028322321594831627908528094608055810240024426002936082824159151149557954128989293219953927922406729661339911048826133448072680252672509827091320802704255488659070443575233711527539009999568205983123947082888262263876898277693453454053049894697859083655893874216163222747751859323522688124284197925203013080619338510203519284209251284959853750503773981100899901510909451263226206272692776193394254483477364077037320016619263663845578762361000279797202891929012230842519961044576220172455469591199635049960768745248605628225397937227103841939244295133187485657044297852259166710812791852315810632414906753672504753136429620412154441959225188085500120461524091425749758524160619361898390682709421807267720470047240236842067910684069873750245304816225929513346224700968991977519285184932405350689470252242637881354958457568922429297546935334595265571875429466394198303137059554990275817069196336300125031899026682208649549686906411922861958118527917752684671101677968690128700621458495868941498361086213692589001095319382691502366826838017728125074634634968843000285412620958643070462712261358646560621413552067567353092976057520869595550007009335730995489187224777745404024631525412136207943269473766095376332350471162453316294695941518270742959675798380073865179980587790880677379911128732869696461028259212482993893877431851814173343360867044183969970557182726510395200052943937879353063090404185624006821668238473827812599099612889310047560151527956514654232571041060019252072073294581066807858826304825792196091376706580818879319399320409916172100866301906983476457419778600050356554868775045075647646909529303400048058216871262260756406116087620107165216969839938765498364218010133129464380076120158676114305997414750431085495317530032811550182926079507684599731192860538240066811619945246486127972601257816069268166501558672652160864107464221655290708773841489703488332121966820015082158248716342089046902666697866666551027556168095246113432283979802315531211247806604960120224004409096826791232125347564735138248289461456556215201864464632874948417911726525467640225831599045623923829117350812761689222200188566293089594774430690621948681100593843051946065241609366144882060920242402612109434326004578234601672207993038822544299389728495561811341010005680237317481877045103430841701993257746763572389187798173208508895118176507689458655671119965148333037198801112357276808308933685664688779146079770879967110192531317243649842644985526215807125697032369108783574461915684937996120443407427765496489419214132550465311528214644425520805712952339764831760361103734011446536076332845450017730960919641119433109320449234696384307374148235525292021205350072314658411701996363883370679894200761007312483901880892593624115003642043178620152448371592063072363346779449933649611102842059191593465443354570732986257063146111352142977909925166358797855520490302357204622254727369765258387632323505463193640286793733365216652671744639904983142296616353192783060165214372320418229026797339243314745775138995739967352767720024413179577790317109403079868443890516251015596189923841441813386479408074554764855515790255339784540908934528393375054842966056013848147772933304449807551413412439726097544801603578938078327240675114931849892962641951695205326865237912849274628864547364512401672419967831390115726377928364421839230690796035612146229438712870921404540310791487382817327097254496542704435211485110285242554729521570587951569011786384101587785206151939417253634505487608171279966122577313168191907536542048183112981640704002821035218213559037309841163410861011642300194707239927215493832948052543440077669264038412875115694127456080429871452345507679794564484981612485052545362017362518851424275886696364119907675648400766117720494653855597473100660090726831250811397531604945053151475639879362090395488371529819963840239871544792948026031659853405030503256823511479679257021665824516808078936911169316760044552701421459819319933057600571032529872641854935225737129401591322318741379221623461621933271129339932407384231596215724244289304481556151999393627012080855652025434965042616514366847615009485925540334851198129688348526705750700193421865223235308197647590943976679858667084167981909510615164907621364764349954121649173957422781317500491526866228845883892457790619390718979206443230731706582109075243647035702624240293969662635106981959225659417048747891722862416997587720644633172792919808325636446584458520698813423111138193535626578868956839190892904545804934577513469315205214651326250114152894119944743631047604000772605113768198290569333056994328850891030608883917021288001312075949082427741253528364564207567350689865636915534200283593130191922395951724321790574318360167660144766029274794556800154711503837675406801939774141256374862956575084940250169087683464317495454941368804423446536685270690145816390064433516664565229893996774786922473077717654559200057613331686495514120753341200705041334446639567481077258363967917665061736573142691591079787570037241014674981168953888194080003771136351789001646285028251708682636664932597633008318803789909895541644264631797065857570475367752360480847138188820143505618971742423526277718746943098956000694915364481593337965949317093768363671589217426988816698061559902105905324864860419571070711627467955524686514031920106730407668434962095307325783995398455972713455341674760337723363955688781668271729532666975425735298127231370041029416559238905041793029641641714693224207383933646968311795869008999890807605202252414210112021717472314872326235327449195844204151918323878649601067440662641127447734654140000452109555179839520159401658459040862783580826491533541975556340012600834970338472678404870352697364068340295439076333046663427011215752685749181543536316524995452088621776448769152640768835390213470006838531022288238745160554460029789034912005371948609759344067702961904823495105365390612728418684386440733437039795300477657451205969528772983832550092802055601960519191064267430968668337800045891128471576637613982735991565134578324583524936448263455094706692402688616390956472257562734843407510086710224976846645247796478938401626877587456183990694324687192996857800190125121420398888226212168904561599989992110574409277834701507275083852706230453761208072971648132025881596491209574351229068465861055769261059374771574075710974753521435466329539083135719574282395450572645445224594207738721601437506629367576847818073576483264776054055351573770573414951219761647374449915831258929111480201276096139561815805351875177302345285662838463875407915486978221821731282703693452671011497705943734609592089159187409437789131342246186636373487406531653066944501219990371749496754549433270359278911756139947161534243448933170819477266730216956423432937357207644292803412904803204666661207278980693725123153932366481012118867106541318338524929894189479892860770221310826985530247014107071243211757641733083630392027712408097755500465804957375668110544533163160041159964083449528726900023890582656108893292509479270217743184491417375142354365657775957808351872840253446575855741428159565499645263819543083330102280040073636089389344347042359804350988641135015880853152001364858407935465036205953008637249703301400644005300546028718911914538053256909258322001016454383155844220992349467568684419669812970239173146034007255420484704926811863045864126723925766265736984067540285992383243193783283122044535718864134142974669844572801401915573792793279395187744008896141540935800986206235070913188117224434100786554614638025295376435887051658414347216070380792222374335337765352720210043996142452959080089891141794881880345479288109232376116600356290149399987074407566702428468769414383259880764113578075560518106790815360195338907883873430693705307086399860848065465786429998615798725002113699693631079159247456128438727714629501802094080609894895163279758686151963082298222292056031980214668123570523322915079300056563021544120531250724075882566982287159770065914856554471610793033611880803386572071211575650690240016517019436200313000094379039737900441731972556691688051308287710322991116490620652255048879866649920744814498437259949104336870227248087597068186216153670554756579974003231940942908922619282185923189556862709807684071965834116862547102700688638384512242466382336391489913038611711476635128666597473568479845690866975365699073582794503197432593020237715102568619199290088932924553051209457886480663157532957508842162066301149878216485378237785258166813236858612673479388088721593725272088914975877304595662377191426177166712042641649110660563849281397638114425434981078510078491709399134017719128320782307838484554359878953569698011030188315214155303589979645203370367939466486223978797707716754936073053517650829105602098327917775207356173648075927272798503190325213190718801991032981664713786993653281806663659485940212675942175734532112305263765833223328272569735607475620227671446856505040343430164308580715778573524794521538525396560972556058714048077781522275122034225553098134468503779741775403845301689526161593072444827296344030337606597521644239385093453100804826318377807640433251990573279707264695490291169955113011686711052114796881713512672822993362712224821137742341470204592928220897153046810987811028572055180210089625474885455340250173956371679622542413715805962388800994878263282112281258639051113555507650511063708800436107206897358799674513348686517978265946109990687192910417120218895539993733870525468799998940732131010286054327228875289371734114729220332411168280976252075156395184262219686594890810163047476951649660376639483747375992647175627036154904120709092540809522691846101142415609354968544680249458250492001523733794818751989698621650941016134269240585502707033114439740365264425735807031966836022511071341488016206142274437011170771676082975445909364049344505597689428343037141503075867849690301860710124361108895332763234042186879231654989273508256405547692588032343257357909694450075633055762941286610848198288405776513485780793845279467686084221293087432161332215898549844835907012075316701350924981357834397134290832222509697270538893943829198367656588182274272292806562509425948070653766785429069645806935874253996499855293642915295649306352266011262626217466738240485303721396441425294049767495412962833831998871227241189541617490031586619077735563404233069121228928676203629336523992520311735947264981714776687147379629288375684264849313960964418398544362161069339295015171377211992288783675443911892943051424098547033275913540543686036081536879365753490693060094740980731139014980071282221685152103449557976789597387432052318009738294535248968227341300639773053346351837530935343734385383563431756532321448422333640276841519472828356885515022738440526613406203271273737409677310725825865516196504593295349716300581653651283039211299482659004592378502903373087350313553019016311648516095221204854788326130461242277492033490380595245650461415259677766373889735702798964349951346993616105953386914748740088369788057360261943074940031155708760949186813284974261466964023546474161414100430196561232028520229813875278405464404570653577066404613706812147910270815867648185052631642910261458770257858510727267267682683777814411187828981758657212590887586354332626593830733563523288761397285315751140748402842510904022627833691678539375869157957241433138284990171638651855892793166699679965335640951721336093141020824621262551211989128107430675695616384045629403573364784740230639397562002625670666684530491640231269643688812111820107869075029931634790453317939681001880807209258505990811283881816314143551918907102449055429442124641172624255311352501623764575649882915349457016369440209604550524836530377300960707416107634571419047100650921054563984117963797816640989286975426467588370070161683134304721051955676773485342446148157425509226854582312358689604706681696539183835610479766389419947506528823285820740400251952685497801940096799048350911620787131698604469762873344320870736269120908378557947366140554293030803733026788294139701120026993225194437738472114876607403346149069315758302399457175813605447140975989516315311473846937736737835441775956226129694351974862097406640516329433193690270633173590749467898640969897161222404553155618649221451796981278844942012185283488716338893137006112055763209992802085378297486518337879196436834853618705612823121771224369575664082554671298366500634354543609725560193967513347095753827053423408609923554033158923084786585857102429019852927305432850014143364193049719228041561510462982772186716857573576535921873456498913524864356223977705298542065053879037489759376998217975874456722732357911658137342940673567518734269860276520945887632441528827468249741442412022777424821146796893207682151414133001940405448133191260559477152106494768169023262239580152023447592488743445771352427278802213284864085377793831395489506509947326836810978172443037807374383748912406395818209520189698543446143510596135496573039660812658096819732851341130539097939483812571089615700263921512293010575627485601816271281736344125815120223675809959473754757361366448168597927014224005119092120421921305914086907600947559805640246773104275767451646366445829729624699986690361853162862068182134762991540760455220765316236439149199342103311014045957869080975308845555193057852487102001723565914051646995431846918014166353994980389193298231676151793021015932325452799967934257458601418126155409075112918002959545065309936349213796968208680445459730316749288292822109726881027041483309714614639508277196296939008660349686457613751743039452630762320040684473184990042067857744228927885195003680722196460018413823108371256833576450184796361191457407736739659433375806562560761352705027677658811358086912035061584399095263724911020285581166734479673511510373586663159729295509777544466264420903233958516612515170811357062360178571876717222419373910446478421762997749804280983118994335062106373373135933089281720371422183912209659086359766188199930121929831716385288504333761753339733699413398226269124010277635441436247794711007325429083978575857862010693956084783236841274565199689521879211628189059812567670874339803282876050687388522767694667830763370502447049911219241957860137017012528335633250733604104542314370141703665024086839142289116601026368958287115973959926022468546562657427428802942549688935146695520606382769806203158005585505118603688979904668627909534310305333011791009296284918983955819108145165034522809030130436125773522108389463441618218779330379616022817181422947278415749995143240457815156829012254651788782407568564491551485063141921722544065435155855113987266628633598875810437151031622155561021735900909536437404132873770462271934558792780352451174696539932437255440968791458301582459502577298380662309805550314661915159649744486460942221430893135945232191696154933749789024369548809973909385125996093123229575243803747126631169710931345264846911513697109963043098703829032697994535271992281266305643841976964122371702973117702967213082304595903792540026997738778336098783680891655106007696747997671100019271137279549219935340994462345246235429692562348778768061846960308077108931912036583953426174367236005387104176219877327534665823113671194388347430694403774457184804138495190787469681397627971825097740549856556787587040782838707238679684026084148217140139555454028812490847543368848639131656849635378000116904213902113955078407209356546684242736693293211215326093626917278190367302803833590947437118880580599215075201673663329454235497195020586223835424335118470254668971672076278888058120996732326731550760342812249744078536042045563761092444436816716959804403579468706681707652474739107715031758980022384065596107259695525342037269594812825389683170069173674823286444853832748488060990906686178793388044158348796818342159794396671636001863461071461877271503284626963800262528549615686332186172544394869899614745817559150630307851379122099308309361610069897638603449230226305318066857283470036461159955506176313266541161561397472062210885013594052623253379299773209052542468421646741529162388644075949569356256029935421345592153553863443737909004577301974203672995102399681047224146396650556321905662342495884745788458094855992960210006677041322924753542193547755516162643347158659584216241009035034580661268603066195651348280828100630007794912308167713275155710800010526075110579043182908552010079798454928829645682918923509764788626138482562804090998762923912193849957121353924645886483240264814372849932908464680390882456855595001101780809009271498935037463295380724668325375980152565615828880927825470632472938624142846615397920955399373076160668357124718511232995721941025800301941386046775161913416435921756049857873650030493116770667900074942693592909202469657250494159039690270821674767915175315150967098460469782820350265674483889495641497637204774761299164190727483264548359451312892783424898239369621162229168818743525233447888419151808145904048519608549386367593369267100726427995966184748574962354361725394440270974120487734255246597406148665245394585314850000871867413094958821789695131670803902662147553221150592804450201118274352495888431987789308713673835467484333765776135597030290644429711848897013076951112460570345517994337531921942152343671412414513640109501581008625146871076708560589513919389170405796433293749961839341956581327409255965549451985043014580024113980229724329624202332330101400344160389217566170380485871162042706434918529851677719358469759638352214963398376077260791021633836238166922633937915726853285392419519305178325459277408786062591189972042998343943468244226043005632826568602046058746357424787177329039846483500727690172536132111555877116032107376648551693250953930044356932570473869379288998517526228684592197637717442394348116760390698533812719167725209127490668616349419262679493658847598709364733123443070318323635642733566710573951374455035190794076026344270721074553276071863171076543841911914970997149688897717913791763377408443494395823922287030795838486012272508697435073938722997276239346990371936449456172787165899582064970541007504470114059368155358307180149965231499681216261764340416455065828975612124305877583533224919764603991519185062106919581762404965481889214460988960891211247703307364450277771709026852959233919406397315715735760055252992573966750649216940272652165955935730163368183899136796027471961885405000117493728036486998054510667907662415487940653358738843426530170896363382906392471096239802369183260047499117437261788274754704815835250434756367417412577974527172516715180845666839021033921516251944158096658551811552979442467628165344563551705751929840677043514844629531603075112724714532673713565781995451415859488193464585255531100646350090521336800430826617517312449620675460451830916315460833248656470345744718939857481929776971644961479177457221637984873569415214678221189967385740438490387888985921059920053124555672234424271007590115673691656022998922505532947060092480785940029372657584707230616688282110569624997624666102917342927298536847935595481643982193515776331572169276124124504953251945523463893576330209699603180439487114587490213165226366035259877981123790680101379846712937453445295311178912427616203681665371255028508777204145752264491650729763507525161710685944517905230626026613072598308491094486824181144891612239677077257868363401953686322414408217830656963039314016570781714885104365896049150580379365930891703043115606050488891718002481082055509156548287611786622940784932531666804063105822768496205647525977628004233109095468145149467283303081409961567600448099556368429823429761753962916972282365525904761584838589133437442876574726362924723304142660094832458956070999872335060263502216773612639945195405252133410853160303365794948557787217848478869353140794166429054378023399007245545407691083625603693388108798103206251639130132509991026600257906067710923405199141341973891022545114140604239473358101790034519875563319113615516422432431017026852996996449162676184455751121805012043668845460589132017446907326205234690758044087011158305178407296829748888692921105700014681064811280672408124584084955241370929854967935641374135878738141649052817020644660424455157184459506833572746990647224176441599124689088674766012052221792420627409044811456462131427076830305195944314279094513502125097216654622983305502318304531757204531109386060760675730276902538210845208891532037948264012016554364101048203824209485522398552557279992738981833081240564059124174988215658594838189921818104117258672990045201226828147547684096048232153908710594691157617904472013726945591576594518529052669017362564250281686127758500687563419592259164493949494296204574447397201814606063950180206790448637133199204368371921778890139709650864395181134316834561515449885909702488252877399314949500515162763952138351257828690723495374134157652598067210183629285525906474159784884652042400917318939985306720526623170669525327956473300572092953478459190373709348226985020323805899006056113829568552339540837092367206760565857820591510400244036967838620499616494707984068288270502355973171413038702797061724146085440791750429889977090186166748737965079590431565215783090403857406403822255216039536767046425603444938321920563781638383754156271975259665730160276011892675612632695337085202821492971990468718505378071507425979448531514477390260713785632962109251164757369125883189218726319258486548526288247199894179448561547658651263509962468542420670687219487643948353046782379298109280611049909883194467577788843955924710515547780017501876858295126815437775430590835460500520415927099556413031903580802113982747312981820946428771511192245930084407462579675018746893167892839373123637751905127533704334405252438308868075249565205546145751865182948127131671876047130266623024949747100138052087857371435101680119325721459346764750197334947442525145990429826062760050974063420655954108654226866296340894065046458916267554471051302540330372944735942139937936181143363723313731837496616316522982858746981946802670206444201013952805130764558253180494306456865501154781204412862454447993339596032999806628686254886636764517487427869222620596058346354968613385007137480044992856170826511948882754467968369352838211052997799136072368082208950905883499951664243445758984268249287760254491086228358643300018539954743254538758975273694578075817708299734308226527298254802324356420950221293308215802584027025051005239407288144264708367386411722829516333277426297592904955486836665643312969158646813696356095410526279002374364369456763091404810774502500800711273777020413025485325373915595493664336942401084451441534527852865690588818297230854185173807855905758437048014383672239613727689745653961579744421746717172812848402814792003391360289414296574064527204685487877079686749080809655910299871157963294408381789981835081153833229212567180443272601676906853377652300843109515986244495161018300326944475010535754384940917195170995211539348121408548902871816029472764319162164442744497340614914404598574556012853663825783485256357523525960409325396837487275232978634649482440193760067000967730880571173308023131719641184595637509126858480612624089562525459612310287179082476563126319521522951117841075998201929372392849831809300343524996899261893809097361092094294785539629774443123409988712572272713978904257144546702159380079763882460276531031340426751019510341358978168184912440950468407212182656884033307993839550832919516322027804007154001577000526371577666915062918731852418935165949152397823408913865461091121103000791078776781771060010589312126235169159189011009137957915424051775265919190875322419912953064057288462332089305617016367790613824307153672418417206078107041067100786832853316106735960812664887238393641457419584124568644554268728209400670067530203144113075720667264393070480405445246280470035965834740052735084018708500432575756955594970641525833091764738955979485584832872714218433751314679220410748745502571291025278295034873412723123442758790891831133050748477314077946254666933231287628074547699061467820617271850225612877199638865062439061129192952445272416139363988806505703662948173093461632385476129705928382009774510234696822641984797245248068443472227454492078335659166903269531273836077086198588684696669985096384449252354764873990930155653559232824356745430733968267597726872162574591913898795354729457445666055961323627656259538370938151932350366359642111482923069563768245425107706063971871327262529292135049924125105180630663616440013839673524316263803618428051357707450715386823888226717415713323140590237046528884357789981914937970505836568110781400364963102554612262917655448098074372258698613238045338174369784903076362464025303990834858242663474952087417853354386180739037300371009491041242004142067942561086716477620371252577357573770428900845688572049110887415340279638607146175369674226706987760233916897709933230046382322232383668251760492047884120940359270775937417469035511930705090091282295856738311108124631548239441599311798725013141528881266407763013029243188609152937926052985525237757448616359261734515211961579664001383257522373064599074581845020033804415435722998864732228810462981934975505403830789272831616987347056749871804075228202933812818088077025423956305936838635118990572927843796727422610958463344411297246761247106508495922696865505986514078330268172356166244170962734456671514286725937609603606869509654057769324673170206879536694917431634946922750446014785949579824584166839778779658160730080744021901816788605495393238560745203663347420414025731067636142282213693445148935686119389996970106187574322787889960866466768612186162895540472886390031262955845796191202662332353656952314024236008152210091469201806115210469244645422766562176772955689127377684994059106458610980573455001105422310551528070522623987907079386744232941614666000254079635167103594706533367065300629022214996147941296832219687441976333462354308112915784498474112358402670244811031736706487649601122137713016879660171061373742603767295283791735007030022294314111106423335345461613463562241723694160797768542065482980368995698834352289249736643293118188763372168308459129768812019141376829316185250905175039101694755851811066058290887893810262604576286294777933892030084420288856421713942736340679419599336593577801866725467095046530325171397460484182042590026373358924588007146295650443014456329463990416342823034767628531306159758072118972659994871142685611590611657281049737348665970464915935631255860754019515058891313014054168942370013540206001044113013910448233556267272085652309076329510897607376245213887627706958771899528325711274894046598611819444268385380428416451308986208119876665091335157580652169307329845521900910842783126629331583550524374122430869874868109835374544337436496774481239927465856602033096223299775005809255716882853961141565164162007292609449509337663318087752332537643209629261704847774194295606619746744114582064838804967891152032239371865610872417833831839419153539720885220579315048132269163976349952007740086758944588256537963802350898872499893768798537000075513591122545937262179112946444216210949907251098356559915457842197018865993324175044238156967340694994622790904288872394305196895788349237511331512058692251362908346489256374111573093024574885914246816689513539176789762080881297660228655051911967421639289398530533606917898708201683247494672993351229261047668058671966789466549311180583180647509787002782706050312928243769661290940718159567317178777443949230189213218553333637228236492285657119398296206347543851430481599867426045403702788417603929603629797090116088126951864752810521680145918824629403539400639721817239236486104746844206267658812424821510882648377377272447526006909098705802201666161760975513446212973940354245802327014467323543698589220980915279934432495813553819124049998017216040871912314862787984341483589318653327164310247680905854628361639646349414666427786326594416353015163265992743905771443856041867408525658396416944265299538563661028995677499005171296664565851106315382903437667554416021155191572948292888382894355372102193873323873484907066564079611879008673753787326753637424989403294004556876717838383395290452412737229285716095427514353320570600782433243367597365876180895761949828015502828128808100561243512321364312247570596151650452589375390168395996648399486297143414368151336924358701365404193884619249318340713929262106480498917489402956890496592323641152366536945771277367005527593503050350014461752142138012655279202197644575671688707268031881327773092604755936861543117509655202032108905899320305626771312227657489876213849977887834297559379707245518786549083159830992186002020415961192143642941959056725048687863077431162081555086014693696047829865400827059026415183432461670575881819279850922476419736235938528257825479395112230805805697356271730612769798570044883128590072471882959431795946442727549583557972784570483613434598057082283925352230983210776694222056413911558592268867015319616613772383521078829974340368257635769844112894295633900965628250177462744020784647951826419134020306894891667793298338435669755924416856892022329047003948738127144086062881413211736810922027492835682137691581035855277721354430312157731386096882942930998973133391163805131270376312863876125608301896223627024479620488432418846091569841526163187712705646521557498383605045360286097807283735798641337840637601782525702361073102991032628485351325551502818991070507088080470307096769575659224767202245378553606403267547788924156194601262003649874019625329939653237558130210925676633487623115165146120108474777927195916651120053040185418249938474319707146423672751964305795412727054238981463371418613758887828970783697534265440773431366404478731552083760537623435630746379347732481929757348415241843091878449013440299246581436190783350495621759873123165516824354940086914758409561374495360848731174768995633690786745081284563508730576806607542856927195536993375530437648745203931993690822620259865918678962005334228155688660712104615695834670535316711878693069533050431190494481523549308158183307230348690416202126232521124169038236243019613099279519231851714679956146071887640493480496743076406145720317700194603064131278331473210128762488258118281856446475019562594270719209804475659006343275055815983404666714039371583500465469176918422061372099038371627920980417188344591698796600090689609042135669727581780529085270655174146857438638623320436770424153365316174177081579842094844380883258147325365317086514336922019938810561512820913898759121539300287573549268501340771275546356861395158464009283059678492414835188175512432239405235134659053109360303572748481409745581289768932195088890941403393359189101675068420908562155125616617837519318508321605821240408688222208151772664156175520736097872819816769382408452821009066664000395924185657848282320325960606815640894866640261209537327296024949743497636094090002153914291656516816078728306815302131209946780848590745072342568517953906854428400405384184638641931369314370818833357959038968065584289610369126127136030375805709019295033195611540507381298688980741684799198985937456257656573480384310740568175357626194077405677706408518283624287599270608099702086352709834888227401785796301139853822466621080785301577231518179925809373173985314675173373144415467463916749252409167669091429009177312385120716656406223173591203050767299646545258903485517812184327007415844099379215585891567852742154792294397398802104938164000190697734686304718135316699504724050982095772554436167966360131190830377042931944732853961268528481939476284852110438442386262211152687500897235062200970511984382501435040585498513358303088645365583668907531699962926726974790954106440956912100160481001074527779331507717813674714372805349683184607708946145625824772120800971151978768682068679033445074784675439394531640812187579927432208972715520094458086243957278617844006517261773470725830373721527216459998009387406210296366971317869970727873350949261866974769498666467791769382934577856099819630369239813813053980254583093248166510735237976228074996252517452038431063053356597935165119211198844314263290469791150116295526039273645597202498125714570903291260401745682953885665729133412414535925483879878267903072563664822888640213473811883086007855626545742284065870582970191376973946375897442672129975426206161515290964193568117122133664326523542713720836014914140374688557425512494213833733619632387363573068064182411272606362939497934640131556054713919083304247055103158734479058666435906726521733472224043476355641270995911063547108668507311605894544599315932374368805582291208499488245199930287728749846996986252369835983493538161805537531403662061052095363129184127398524304479958153482217741806790102413634328364205805980428584478659725159333441388829839053776917790353809465586248356285346388136280356284981017336625410282953830470119301754550218840099911683356356235960370986226482794891807220860185074839212256264629585501017379924103417203160746539512540110985140334552760823324155160301592048742928213732694350901595491747525129447449370958032376905737420531909220837650289323126618416990563835442060348969983131515209158859187483078441129769973310757189028862805280025788465887951069398634383877394050849757924963122580948091975029117321820308741731327283723509263937006730818759648571899215974221129874319778335660661242778672286418362421247969923926283773850542222286905490597671988949678279120457715725369890130803904205773993625389246425032046057588690507230358529295050782556432862174185460826333848895465676481015455511060795246125235731816452040911569146165938596584758438415805164691799858706691297784432955527888814740162560415718287950101417080161479602834712109345304258926420813359444573130162818264484748866322533651845714186542971365745596189208793100552861182078074277425112579661449398479573094047934576549228435440771691267487426467433118302382282160320402312412577658577637979729566863900178454776041065877649961249219314635878372716422811064977119939293772555145154188326420071307043660491290806418762015703928828809972795091551445057664870892114354632753277604627947710099251535043799568550967330368623349828652349047620436615619064952102677638057039423396763892273678438967937017719921989668828930144853262134776208088628425769004901325032504761391569315439528787227552000441086540379453434933534063019268853808363994318227986078874049068313634166187287860462773233128290043120864355167028493972142696828716117962796658014789948736130510868821220467329726005113393281179764932631717444211772809071331711918424211160266172431900078012899614781656848985258626860398461173013541497177411895059408015402235773886798624238897376375211068163544503519380847622129027229188684211886001998554507386845462006018634449002699633498673765938038056396187048080086264391216265950816075350495471808859137009739717877313289168660320303995130152158380888494630430896461252152128512125040086854493363781241287060497735441051978425080759787859941953809405175535993480318237634328369845934923805918118889151116441804427625251985516151685654689121968608503492572046991279252226209702333653537484964767730359593290383577118633231001470683784973049283440552720320073146782993013657351431446032577238147408670418340743356457847777092237462906373448337703047671898617227067785052757251857622287223721710797438952567569397221984733078266300355466500237749835611454453476039073778545856764387225469862497196162961584716084708872822526516000269573603838458376334141722168193355034490999228416506671560292413553267107593306383991894337765403872917946391430785602292533461824413466674453545058578197066513687528208504022048346114496177430537611550879531185531787413844955224231941185389796089676521644361545083673806973180462362377069778272961860592296430314409853899784798084820677329778675950870209364219170674034033665269582511428862359327261328988634505904012347194567586800158968812134347099577335945131906951523762383852279782423935093578915945388791787473609301503168820222083775314391138406567219256572143777240323881551775061299930486723774138804320838193337344449814073500331108309730922558547169681914965059873448518314065182576956789045357101387725053979715315972616368922225784508975620620257863021512548879227861516365488247318001319547609248313336857502988667982930185966568380573769015439055587401691718198174206299603568524771935772621187175072300805632145967023625887879873741020672073020043428575947826458028356048624401784241699367355853923488426829332823905243352260742961840364230377280065453885103893059600775651191002941939245809520522821254362752463133005222799813006423183397412835150754681116605397564299793432737751828036697482105084219557447154874784336478806762527326635219646726933848324095976983804912356836503268979847975034002587109791962961096772628696704425528058843616571097203946088364877294505684096731806141576866474921922654140942774436016095729936903764894036649523394338259421755195641025706602390781141419989013164914836498317092957599807577025779255290836057108650209544545199156214738322175909915608624799497016432985788005979288397841095460032999632927603025263134318394114530313831166976897600069054455763198458429198719053889153099091316350427580073365053846494905875795347690062206861769702457335242300165182519871465899877408473839360434986365968882327232274054223123995357652313760377433655092775545498052297973470990817540283114596087074777097636489541401597152047084621210221208654015760861733593810027680193691415676715880683727092765528383964940503105782280988744572784708938723259667592088077095812211078636697740034961390073259081218426480628834056516573514102098774588170941912629803759276390603357020198688432243798158528740536798627110992570965532177508211297275231836201396627966640356987169831578656882835217353485783611251221527814203936630208793468497374568879566212420954563085111948032223006775269707854237302674085092380063502805833800587012647082622171755151262860423863971163738094574399687386460356564478855169461602978269305270842346934437992076405033805645456676742419558992678210709264303936951680011043249940355635463081066945170196285388059394233925614953720475124648442999870274989647214595300649746952731828422418253847472751431123026660314984534164307908649563163363801899981381843865717167424192835204389268877866920668815009140525578632718891473476945383479855188101541955344430773114004242153261978433734464703119759846811590446246058154333498591481631064025356121002817309141341811195688954998940320091248835259884097251515135968108647609000686359541533178277951473715815534118012664222006285718003683558622043124636371161214795885929810751568208392310740778059269670893774826475436444829977354876169335469819152260318450280067819563815406754798166776268933954882339086219604544285553315071201434131373121310160847493093958886343712220181062282172980608416182060364979565712040298043126015333686574006378310558204973408473261719934119853438166252812332240530293027146971043347033219055217134555109239170366634369465986466256588768543062319902536551287956857921466836412992887913167361572420767399803141439706494669032420277118849247680102380994858846674707769434582655415784227897966107103717701984520654989900366987593037669628199681594726621221602242090212944687701247572919445775336873081340989970740280583927476215266727100062067448272075005076345869138979577044668290830183151978474141139716733462742642382880032407865677774218467450886409558516974392405719452547320899977521701326008299743878050969130221048086249143136415285398843640354767751949208224394897926286398916017770077161476439334682468232065569780621676559796774648378591527142093341713244354063992259925715084950422395615628033954004260152157423488945866057550612026359743044941695493092162459108320164351932054951175308867785811160691801288905146893315176755248702158866828183058977860254945137330227912302464155279440857509311333735297241310278635710876849987810109942902567250618346319215049925687657409579771170392588680763556795806222688683910550237882111204717283165816940378030728275914322812289796838568686740189594263471320893463130786593503512704525611258761325123812336410447699394153051049898052526441533020770586541826542946197770425590290313030951146093618238251061193191189125239028822515696162207511180004125523049131508367734476264077250871880678004382824787397169100278413822273107168815939764253238837996250721886117982689454630907349272065204782635998840161605445728271065689480018039232477656999392844825906245319708815737165087114966136368644634546681498190084235915786980417259487245645077139589540778399596354979086362875601267116678071347322531092697817858493065522888089762761511241813653434298813247643752954033574344729460499621336600972186970524499858322407565128949429373665372862327541871496523807042817963309061754486138161560395563238079214220525699205277552720973843371902290694204912493041309961967519950352742999123761310402714269626551052485382318463074180060897174557585193133141365995594900620370563175320795947066601926686018720461401503045121894777046778655390642085733080338818525395750345638082070961560842206062142822660072114962421755788530383322581522725580630654875792321655208909770321804762037054987960031236211432775868538886696185304597212966857849722145155113253597539173120102264382053084912146989866825028814506965064044705306202186331598417319762371458128712460447963713884425573249169742688198304980820911859813251713216203650784731215170522991166919511764681012500951942540674445304569399455171179997214252510226167948085601011207515939110605522072150152775646946477330914051038771453031585140741240292377389590984007021428917689036216022567487786947709634998119278366058428940450051300908876224324416870833468716170346511254304288923386523319680561600597591179877757185139389660366537604143993157429757837389712168285916075215470132657648888704057636714203418012975267200539460080124919877909901820354708976706089651312086336898311496703714862714148809831840995083396693799739318621604329194995275231079126287752299606858518279414917925178414012953927913798529786749064398870333795273541006911019498378242102172116428576324959209770500216717059601817129104637193158372137489688053621379190793250153011958655544067200601841523121207870752886103908594630547104472165197701179646424598758939668009008853813628808639320615976897696796406470889403995110961686478590801833920821907524969862734621107055288025054349546742673712153222836504523541225218714841408462045790601738740197513375714034979258646076835555745638002432720301428441726913380029362309852581806033749304646312539761942176140274625051083103684023638704939955287249600411298049519462054011841103116957032340121623817888158840055079446200887529616599724390491587662603296094648391914596772310817117629233339015901060250261165800274982704614053637283895087036753923467698742836513303978465510554708078670247279959647990004011735793645593736451818028034388074966543714360154251028681420276255883099034093230920419823519761204901867365487588852480193614198985580155812239514956236267526201504072865965808541080482137831909653916165785276946080707975469105162239224144964536501233969137889437902884132636970299685227742537349245954807401463513690024921581388550030793364881187042025570520014701903211041090020769669767076443963703909661316183358560698027448266106952196789323265931180135049535032728767111696069805259608017821197213216130983665604944468798399125338310815640098192798831314813538531582669130625430784482218390993289042180009410225764324670798901892186867057266389260183196383536706424030147494218986239836449704713970073969247539358095005593326445838320372928959184698741279624474634284159362946762065581985693107731675544594598902690838661199862873391759915487706250107176984332239737591070448862906466354746290378740218395754723566366092234271490590449535586369818586416640381546412796425162440637146525833603104363718295052417576418252723564683343352562506974457624863806618646638742452197702559634939440004883309840225663148308957270634826508655253168684022526219816102295089864871128814968560670449309856445411996503744396966022603736400496027951850954971913179079165109003731142341510182710307368394946901809148627223765776166263761688851499054869753437053387014963466715385305563726034684460040450578818969329636151466411865097734313987361421200966065241617456875582594347652459963892613655848969847295012550304869172197106680482369227911289400399333870933825730875165187612125005849847823027457811091467256616954368288521403269298833015438443193859136500467726573227951142447273289094776846832847087886245168836961443313946634715961516185640984428544173851019602112713411988752305359625492312217719484033754180264083504040668667327938510441703433913169001198407507965654953912991285452891428957081177254294183443111785720945277034842014038273505782859043624114749438313149180812717858476155780751920250488857898014060709781609613910220579809995942646544126128349306245764714400102839597948149888777935386707594425045098575570408331648141378616454002744992756718981221322714452665446681361033660520503241929511938648787836002489097581167923785712430274693118944913511043675443259498576890779680973890206355755874320183879465802039716113195909164405553734613197066996732294297074279774519389496040983059845589297085013447506137034589697485585839527165290763788988136294699424975363805480323350854054906254913415602422559961064750289525358114565348899647700858832515587225720184412822513884501551614794273771904375642990824512466379684110082604152027562073353288564343274524875432471038720327903325128311948171493831910556445893426323423348802700057234109700149879913240746335074731659317900340384142098061704454305465362283915854900313393476496931671088288995047584548168809177251605774854015314706425536902782834872090566785170667327769665400437411241696326804517395357657265835247716423257318871102766787659671252671778079523590453219853429423427645692014203114964175639945361956254242509591073279989528198431525746268787049111579105528302752815382129440901728032371362099158843840218085932184872868356781013181962329637129484490615468680406822540884936455231027163039491789776978818686582317905710701580107288539105167778566258783704384479122990513056809522163665617251158463093402525080225905500460863205964791398451274389471592267375125866819192596449604321119520982764570965616046569250429387353863428395477209666438124107785070028831931235322882159914306774261097966798952072380474030952424946863572900360527677080300837441523663847301050764043773212090887356499916412076699249702308929987211705001561520409955184551599244708584547770710685326419561240211462439539286511645209636590807271317557013338915727929180658954724409590323832701116585082017838857643225963760196680568437178848148015926904711403986444249771063426625245059184842776492860450660671464505805890202508878107122331545858596162940249318853001784980097241110741611433880566074348836619508586702070993131830920549927403619375643468570467801756192326557879956613047564886668153724827244820255370410103002332699590221749905639466394168877917961900055675001473644751232131841448242388684183819822663675845336283359667276739900971786750730721782135384957166593267918929866033380608843278610789563591001400780746000491064090796086061866572394450067177040471177654530766711235234334794853081972824112476370971749094015959453751814119562932740317465385886186827079965173867101916098999233473028524623180474010989212553393974957043423667791231551887513473546613276265028469751625503047493149189969921116990540398433866071407174657314621822894416830126727243044915679342208689406955177497317200748891427593499971595591390498425202707390447162230904342290471763035543432287107873314736079841342565883282509652665353426809627354091646879587285151950540900513083206803047173392143961200211771855799360477554039853035668960010461874517639441554053276893097774970043746556045076530913451971703074324234201474595363932532900868096483110903431150987928745906749206744884029361064684897426657279366660355365951089328678823200501007718239174281043811755328348633439300021093587164145060892241366560220974949012748575487939936609159191103726562984761466237166482608359358906580549846596308166198145657562984560891692365302702424487613508663303900937782945664626748374943296889665936671066741304817031614124191578559754672267141859718127790307528417419167458231359740510339083713852043169114795766540373104699805560995143306719773686324941533081944159057484811783259190392902317286426417732092176006268672082429345657505396150437017245814011151391740834686339570521211953136060519794888866889941882503001641111917793449835200388945261794645414780747864788916950942190886968836733111532518804963578416582193082536084342097569566640490642577906209388367397997951253485238687639915035386908177446767281844258770531597208477519799475648739581654770558222268485035112378523760827354677883075391847305014074158674584304532394565058860211456593829537658524504565282121036391978941741121631654758433759724044741964080862549763080657668115220225091489527390707998673284312826192652352892084906359451609899958467237375796718288309222451709314836104059545551541314505305567066785872585652275175764525548193682058415477607551667923212047911972134807406472830373962740694283344456969860107499718862201682956636887570487028182124534876070931971776536914475833965331951725421477475667405730197309186529406057156188314132820484088977667801840616419398765185779342341584066914560011371249545232015985357452772579868015973996508621114864609373836475417497378162061368476519613718460697232980279637826284785774428738761093172142059998363679947808275900170737719386520721713255367286635734216643259675752859811691579758799538749309245349456599534946016148443219827619810875423837864217426269870518574359061809219076394771343122173565090116276430991735000407735002656819629225816008637933640758065313688450176337400093589208796202292608974102361534215697150813724260616041308815064570441448925116336324295875932007920176164903882117059427182151588985536891814657569055448426374827600311858335383433175686015559764800488535841518080211768924872212059811808044831551060455116398184344320577281916875810545404212284755141481599776541886800058361707858958288780994061871418757747047044341299710339553734324265617584178585046977738006085192341861616712335401117013443210013721886621107296588814913080346254946808530590385250258718199219856308311394456460922848065270163319751241042316687250169075209088928034298932927131947286288305510121736983246863267309925640729697838364555503873499496990302388813834490220934548459432497727567735583574154910820644817905109373229122289834696634360323867859917305348762680280749926785957616305247104171585365863575911970585356154572509242398095878567636473370421410237061512566353271361614925987937536762398611307409299006786968047884124615382342168456648880046219842432700763629595759826738740172533073461222833330934415467655786744088872873837248382225329191598178198012430938970169937257198279510295685893673872893028552525462793180233793848432396650861802798412697332044606364116304307361326456570685514349346052516314418000640422230608844499943330809023765885980967419634440103586001896416590881839577682452009325386216293136035013155487688370336712693585153570874415127773571086381487151269514554996251298821204279236927197210723211689419285772013978268071947381107741523472577912649267897747750024462200073113882364743011927739298187724184591062325504229198359089124077958870834172075919011408325703815769271068080107439723893011857207556375400728818109268273860487450513743376345143202126258084519072993282245095091031974940648976059249670176447850951018444393464507540543010700893393646397020543801055383807973111988129668430879616784048221783576937789815319043377419500383697896537963050262854875009373076436893812513510128247371020762221587408269682916353669477165913769268098929839361113202153388760529778817655766944390009959171985141955546580162468507314403039439228692411716916060994518755075126886447175606337534200006520091530319280659987327132326295427394475191916781165953331819596956131607650365423002793006125883447829876713414659975853157736991463709062532273189986278353124859688383556986981387443169606660432444340270025442288662858972643327024518081234047558583413875749842424156949938012151075753288790948195055261430228957332238530170891727498943602055361249322425762467161096462248596676929821979673939332916316130172407355637455719185311048075332163649008642942716505795597905338225295993916191955990203665229164867084177009214079740028832812097226933915011224616273395406626155873318889606422232862581885869892308799882195434339951225664523997602723411624799556406607776470998244499473167783589473840496966168086861068616782875120628867219330015328605259733472694072038054203205429985915119648950663846045032847386061398712094249382434490722461476032553446749586656437987483687816701395326754046843577120078117882491660119863885407721929412371674142612778940765890562564116826480035570473324565659928817968028165806245020658537745127192055113990384247871994930103140374968476753664673501026198083143387217605610281918189108852663962389221218356288637898999013974591889756672724379422316723741961681830470573335975856689861448912369493009385969802219654037598661978157934158791766576945457167461908496258804579505888625410962571525729702318708791573950753123823812387826133527070951609404816568436113393345708329979657141371187053219271776217334058334813269768753809665978063750483982507503998634265371238718856427355542730569256825915290380504693079330383869027752750210277574311422735445839575689366145242474473691640516158838606566591757246642848346615040040710441251352613295191421854910542793815663309345060257395885613842408701057139288974216954241002651851349811754729148703523829725924781178317702468938274020483829260906988038419027654343418762522628468701895286574299070964146748642591304927555843585984415568149663763565237778284275653320490528979774041617906698294821653904679038173059558885294878445204884696380478266795766372314027068525110471454028358800355899165347164030653843043322117423414097539334447012327132285396854108357508424167478862801846128600333957542360398755523922254477317291881823426131256106498492750693483903778977983509857263808500363933982773414360466001094842431957219719961630648535505725655009170232513696101380806478194800809491019960787831541540246834543702082863269112155857521896759532650519808310505622539544330400622602697072554719817303782475829302280785461974123154398356557663822193801652021240394601380552936181734690405604398354782696579246032928644480270011888235247684674057957451483692196094909954849844815965468642327298923985922307467884381535238151700351410917331171895685623002420442129264740447234717676144053386115543398800710589360194905917554511104888775447737271467611899731017211754085337212545949975667863581676425457025458144673797148350008386554279546298995341434470510634975696957478595584880271111506981517033036912749413333830183899943899295767626603510003446101141264588221007864931106744058472938745216666193240010261124224063080113147640279245211817727453910870138801645489098736958818171835196541822189123272759470408608323467333568755510964860828401455201320679787095393143886245828107957362954250647437381252231273811181326332933623019349107719780504637085308746492150531493578371802017447234481853190584422785926893756707240499926316126367198819576949658886382554915044617761529083124722477137177866322837453174916407728555174100056912407561060775001223851947766653571999437021848497642729071804154577475993711675220795595025165844109303933647769129302342782208867176027654034637976358647391297230085606193882787679823637503051147506431289170650474375527648598760619546789149040492414046141534225387244955973273748684114871498173510466829989594889627061576142205669384278300863126201591815242260146224219798601415287863560341731049091359053662234603955827135088348730425857267497976748696430849891389914242871904138607654970717695458164576681833803876622165324078478293634389761233378349938191690689034889090247191531347865448368897829744112792492084996257557734156939933941533457637329099782109673090506645965041375458904706280679017109185706168358660439051535139162465370133050348960062590374826057158023123373008569425902699529123162444702326955535278076502202352361002482423451878953557395647179586115300868060444855895202692597315380127965896898841229046792465341494038729508518948940479461245806165084624024370418974193039495526818588562117130885364105867356801819754617121216724333507378325694197918649920829335273453831173995788870293957354138321705311050628482518658480127679431748232470135964253873812164240999937668583824836226763915666996270231200190348587218846735995513782830560219697729311728747636401501505194959449067887815183042218451082753645179763191889120953080426725627073074779248988940090726094825718117921749938330900324743582088115324613441085683984822499714613497243367838163557600030747445735166372111795892596998627403534854067895341755549610604943975129907058195359761955227337598385849049202674100145106690964202361298795020743804435499707094159155252276110726701202249621778474319714243779738347256207951200710418534542615269366136478034554720608595437529671076535887363167336041227890511807266714604563988017373001366113377200873511097138508719039479235233658170510954331907038555002967161130806749041980517955923247962046729916598774052911868443265860079766040305079304587462380016220327178744635478099997597894981358102706578768438020541595969801576872038982361428146676457530604409477209829763314883163972161886834361692994745995594491989208142247365378871916037226589414931223701417438199021223570531987594478131683875567620251880336925879955048398799733581357941597069940741433811591306548381371622219397537127163116023272852749894821848957291528086276313051852321708308638791710965009882357098034334366979855242467576318364008976764722275446396875363986601573056804277922105006414921628139583367902209175531768649544437970922086671913021143130098357072634684489480856730352061913296465575595557392197532132233344343537242381039570784847710899456741903421354022674342239654657287600322046624181735265246565087548377200167363508017029880655904319496282323416608104460309215108820702291678614024317887386682051870189788693877692857663027718396132599476217399937358553163507122357023480808404645807030400986020593109005157322382472559263116032474143631953033863953874067320509350991912707440781074530046437193731192457837979906146986381594862730363371954756175293812318644059377054221126605483317381889419241037253928678290029751599688530305572201641269659933140249167562601120826825168459710503197955998043098688487550687051161154362984374888770603115460429869043015340081728551247036356608657398444646868757828236661260525391421391355321389633943986417227000708043991672397752164984664281145263382683822904276917379699776417626449442005918429521318686439656241235478366644769028574751121710849436349215807901176599334135165542128489302210846157054016411058128650818125458238612562620694329067232987519953347685954134116009217239364648060296803144973195552352125672529215187849166740591444106383435703055629601462364554231232760990089925591167724360481832604403934468891111218472339939449180067689265084150467250751190021793305230402023611338747369290254701308684599723392946991423826847317294962901145566924506264111289410284705579917061435504379233418374993597807344593559475044397818238053004740563660456511062473882634348606324366017421614686988249439653777821309294605727899912094725578050816576573069593856314887296598863016787614133285652355735813264083667094030199809793754635796379341556851925519526856396154766763834638350915883556269873239547639095297997244809781249221377243156891742016893201674130290928770716192516015530798531675333068388223870462214952824125325185692297674661435314412464281817046933244503852301345489838897676905678376599913005468257750584017598212727611336055878427073046588339652636630986888245099172152555848674530084933434198729284987781509589273379110041639634494501469285682990887993948562967912700142417936280195520287778792288048684442881192785217738884926891173302620522664262341369782580987205154976872454116643029849326430177522947840213231792405917790525844535516561438631538784356092725055912641206811073202260878737004050299820951704055903031035702303491809082322255942593870739093539857656097978192875628691873127622095911338512221266830429127067109697607973655043271889469388392531173693706937611324836072899327783517087915289479593463958523410537822222338644710286086445972550711275766427542457082802574078104389921443613776716456846338292753233307635989855709511310340817219581391078256057740273256830814498743104778949408891103981235874909546474997668521865755218888307744194163475587603073026221028755989618318905294286592414901095148996295333517985962856268040147189760965269727891627205581770384517759488747605750675397576721140784901889231810882795324789371294803488160010435837143327080629078233639365235642478335484468454394473373037217637024989567167319916308399570784930515850311786818077756114769619811582530873417952091593409038632179521825404587759744268689108911847890395075815300659177096638025999032482228925778437326301820417246821381376597139757035595987831565047192578341445396521114891639669884132532819697547143573710696615866280199010943931880162840819891933597382597963598429145175880221581586511557541895532024483273742936680286710119726942696941461518165159120440247845266064732734605275471853988696091124730894964248933773255206723399583764006294392736792144744615436993007888481229443611516564210062592643807044981007313452681353668240274115106144202296424600746802755341952592076633760113067922906549552420775493724441954719728363349233428586262489275314869267540659372837437166380762980482844651109236402345262828606604613836643268634203689510005516795529418713661226484871072976266598728255843141972915337461723135540791900426305320288665291618548300360766719247349143474304524403512170383429855372557005899889963760320640386783334186021948260649006487583143360496935838712028394250337980996114227654289578076898972670245003611524546104987396293006505955179982512721155727061598415241823716256214415088625219885262412053640699884335232957313222041167733984120775631830194273512049810026425964072198237986528498407364878221723458459839324752390607787278306338082979268891073728243259074150275895243418027335324792110019365174748905434691430807296880655651145987402887499387053629211849184435874492887013530796220937799455274383946478119008230912432646974929206295214702621492515916608075147004352844208783338095626727942214145939838582754494759528755876655875039084480270558837302024556689777857651785226854565421452372501201268217201872179539563229078212655369700931730199710399514079231716471465939898102427301415868658575007915816245600052522096357053396231482255420098076021804460431779379964824074027836159711966785137014379669076673906203974435280417253801569240523400873100025443443730807113782252782395204500098675440188439379491655315032503314695048756042386042562479403835185311901928482945423223150207419673835348999762059647620761289145836194215653826447373027844506066233694781037951655656843003595804789166892250499417185565364504738099738395269916665809289042459765439277985582088626590875617640614395218274436404336060538722406374222322187653267818391205852852450877905031467871010965300651596913024368618446560415873379257542442822289040584633189157018582331696858380970057756855669227262618105744263266290880319590412617989646886150967936870369786305941931943460391521857008736385257068649373819875381233641277850728946351954878320985415753523368954216617860550867991692066492655801791802556457120079709985635789433726120180286299438803237189805186615114908604244457332187027651304400303007342491770349995217052966745849294430336788906510565846791073902228647671854734233177571231979194118035927174566967447026316002418859583855160049199659735685450356512512936459741030199692113737784950116325854869888806827726049353155508449745412012926497491477689037528143005757351114109258521892563965641010557724349466746432078799178130331302795610078251594486977208855362501806473897777089145963540365076409914088637110389383897016322248842749049033484020381299566933166967096763259032835305711792722391927356286470851692367746398072641658930731003784943635989707941640303817472061518540519516351934922363839834308876716685173991935677840747013836888957980345944281085363404993848684299043427374583383481209947781332976448462616884616264524112089294156911579014038338671352366147536372012470526873063548200560589507890838808334762684297682222674270926487343042734899925117156278667565014437775492126521577041860931637314637143769170210559643891903586141080227191777464509555586237366540086558889630883649280239036476203157018328066654824251043469564474406759248462889336669558876530258826580377028700267233730068920153211461154890821098984014043267391095753283436217228681900485458271143878003166709810981789831081282413696580208358533904818298429050723520950105394943408574838386183299703495917999267942002537852799612300517813643694141340973856662856398542085824160230863898827020419807599769457263643397381245893847214545982313791302249852845266129441864419063246259977677146831266958238992998755211483894485751913960304421646068202498294126062570862209285114577817555268881101129319451857651244403831979281493880902706240023440100112087857643233436237665737869413303436955195190090246685287108635286659450716497761403764928857572483893116747021999385532023401923248344359260096762814759091086244525386430632392089522225969851694959416804827263974753132703211266601847537192535624824463979148479192039916846989987535589075952005929993668609760924004827472123328646339488987382647363979027741621788311085299248877624319394330121500737875742611528034997032211598855428376449288022984763652967199991315798712954084863730210052941371486258226922452342942807066683259919161578722360517713164405983987043097340970519867469670085374869697900017637940060685156276090054965394077108558251224381580970573826207794493984759461794353189266817764154625171220097241855614308152380677093160765074938535278967936649862212963181492979171028365507494776411857936309839689002488946805522244793179581317773719210533025101237290120839159423775069621443339095568646860665040024500414983905496828399698624875827047886842093787246010064906067776324374664828138050616407997826111046400581929551335828707767972634563331338811616651629186679262687005981374664659231342924623441006848398633002939480537931742120949829052968469208125271282143355437343663128056926658384750906007237028940762027341835765198027989082026082867203423259808082943772514044054084324641641851560072564030964258547525783450648881169593894841038169901887748320104484622843444168760903258119636614466534085437863278140085087361901862251069344256257790420475260968964661422652321906411864113714548929342458262516717844613432034253652637795218293616061317696449946472265304609149583101117973901021685547921354703417614882935930316430328838155629832088280993135492036369462030562050385799203066066364287697661178985502219608208588103192233124554920382389371922033790570520514565374984397577287291195746212064910934331153846957261621288414916976532056067595987707809632318407789396322059052628727323532899474735393525993358512832833213947805395022654011163340251990797420805713644171438515014290901683137152923517417068380514735170146032226748430019207353456495906391667365144365349562390085463742614205989174103455775580023620763415189179493430377349843463868530946186349603554809749733187482964735234267478036673351575514138204470984935400928081569548368459657445059540653664023803380736941469177882569978150593411276466336328546017918020590175633457184190318084100096303178652575637452378932056484289017807360792154162093713432582467663248917992823923260289143493078688406774177106134176819334226764896701845246532793226426007581661455302411135173454514249789751175984938688466080959738316243923118539584039580653018070979601519945736249250771029165739142508306645466836744239356059880091866270803518721801326689956023668074823298889151753735346506337783548287700486666213653014397769688914079432742251338544253856377332203076417258786851883095441977720139813788226959592385474541619991022183587647600602721003694032069313296162225296171300058579753773488984855343288024254969582554344408168022917005258085996861838740167468699926887187552712942757375189247777902958012064193547730650394918124629226920204412057652411817458581387197284826242578932179243477454655302458500193159731918679874424451224773048085742499689518930863214474723896556413737362539528043604616323512759545178052411724333776023530273614374336344054908336541918952252669422779499752069264367914576167827695086356041941677409330216604556874320421375992256467137476587655275665674856393597283819083980213960985652712041760272522540321875601880650240324659523735553739493158321490587676537678612008857660119160807588223299292679349432818355017926783368937118535219930957963561300737815248133886741295286996359658185903153659230227509833056333517242308003821255672437458928720433788429016077393479818528807897308689276230666304035266043092518664355885416244826179195640812932015060587049798615147708628773290905486724161611476298822853479989900843013623719279371858528235549106499079069695322137485122718128110229239842539013662675803722394190638535511261687519977238689515120417868557257712008500212013998240766861856344106153079730106012423639192737671007494389787278293637032797765163025907183028199587491518189987512714644608298616246949157603020638796036174461248483125858345667410052192011505490691926617274990714671456512122119027934629015349714710769959431166018953236544641381088077720109892271450124043514501966305303802081998402935046325750639010064727122673633973412256327981746649858053924525573305402869760042776283174484151262523729904726934274254132632416240623891417824687342196217720210804729180030817179521022612874049185824953063562733141904488078066914539965790094022794629904421470201861575217631484033436637195326841870061237068623346008067318561160201623247566146400616129034448992394227921027435861135041847139112223321851113159314022630510772609038316040794498608252535138184879453310418265893405173120176503261065509397828528116371214057646019253083910646310067378859820489604092567338023216924722428223952495758551269542973427516065799424303294104658791922393945857363554775298313128309938959855558895481812401243477586194745523029914962939845156595776258182908259372874531820889468275472391509712920612299169373947738197647911841661004780965907910500732764740026752300379131959585271186491159883457303175497726391629181925800676684777043396816936395941454804391051730323346615441594964740466630210745144300995685881965563665747147000811334844554275132682614251591566661605732320414154200413420086700088407418011907968091562298608663630525125306167409481024380773534186417098585914373029520284717990000775465668620566285650090389910993845928245537761465241534932072054327333905833952449348886511140193410078539875594300674957816408386754653588014443928142270527930724899552884946052610366265205592239251368847925416527672167769316380578681965625497351607108515425562003290337039672671503982857329840783557797105536857496624199702419410578385838877725541061115409196671150003617840126539100200928195224739235613243675301214286837808714114834415419241887764724996612104411698554666689809654142530218856556187579579326332633010094482131404437464780020144441353402215461060014278194666378654608617857484130508597163075351147081996528522414593636584679761359297139550339086693776792460931002120953470867842266676422771418785841943987571091416539953927281155630010148495536107694402009792410470344459655792847527200533023157046369380920410340979600355595365563052912478951225628244149192881682855647143014765211223716241636911865052204039847672997473463353471278138174052446076127064055853725905010819053572664334288597550217021237340684436831813806236568596901121030494298473551908680903424050339533420739990244080414602071448533638943644885896064102258484007608231404185043699863281633954231933830540821021267394451460746291886991372743755861853165910809131144195136807140264134403422527515831467171086176013393286230788794338819489751904590521621767250021077703676709990377880087148703920766956558687194888048846855388235850259359332772359844281785355386986257411291550879232387289218152906245022882313021907423415400749897086450900683948992562840087045299510555807830963164821177638675737004735643871681247411454558719744848313938870298613867811914225997886185996841188873523022849326209071476830845315742360746309864677212467626730407783250983600825174259572622329821744777311810965652263612541526176244553280767970512490395341748140747185488617767893535224056399754545999473519923173429696196832175143365930035206828578989870854058919840526861953948736567704848111309127987748233463770429902829126237556162191669865367574753982883099904660254885467005938782236235663750999715445731863044435251626798342897093740101006820331172712569021580787705533771635626416705768561969649044372031381973103269734246187657544484629626892407477635110894802947478966518815626906563277084114505181486313635782852041814311991986517674910550978183387366569427574443798645248446434858973323678240871093761675673228829945022423410139323735265697884645853246941313338438055647955695839850448674908504219501875100700676757263876173866887923420438069108302859891368667559631770424561324541476760780214594653961916076740049530007293044223938125089827723406993972576504858137735142331356820911966641390330761741126604557529582928902412328631318043453341786873216145219513039741103994631655731729202937800182870817983545780885172738102612034837775979534283166030115840060251735118709882418117102680916680703196535304323605025929958048689451173837791048364859207014783853800472398697389937450550427783206884953955654213126096431071685927900336928325250976124694006654864593809876527512886519621713213490310938423919025058373303624269652135832470808890424515346195497216731442347426368343163485240238963620989543891526642158270680129257156990378874728754501360634055246170493451058714053613737902970075291914481542178226272934418987076357114877246762851084190335514885518132253463809722130988187363169778193372150015857851539785091950070703241497477553454954181496900264910848661111197468627825431715021325734196860728092555413266946347495332300515748865168755372183220627132114110416699816922267866241755239857711187940678291428635343756772500139219988208708902161644679045086772484460079462003373668404760092334124450503579155061947068761482644660218519116454148140910670919184227313308130845257955734143504798913344231661082453166286544976704814873480451975158099269025294282144860976684619618351496352379814614004345354475874537445739606425568701458121421402707774907300680316656975873598955514422270192337802655273838868154999746033049014998237076896479939854949927717885632998546389264898200252379791745517688480279281660849995531772389955065892904620971279404819649203461883228751145957209845348383376023931720189224225619686662762679054984988051544489618859536412107323764804911310001707608380846295603170655397531049292733230351242682587451629579987433312421900181285826474183104194293332295396035980632547185742402674656329139520766844452717694036190863669190918112366434889464535045544559062123747838606778615104058165013088121872635615102234931093922720761278716582060749376410174056819105574167684726811586573565371604273495943619589647862365568412598987444244243663509122006426039871848100335236344588326974043237400704290158071728918263850821519303455156120054459918726410814197525921841308449248635089479286210962728652994426023298047213017039723016988349994132488872841059813072463821300620993870438969215349478792528307285262603678187995308129286125693777603120581569430168276191360227328965260507725901745108800077377867089304244368994933509723214329118650326118688312352221421258043253991479570977802842886412419209231661304572078543797556841219795153763913114755659818136954567088472579093264630436233617624837297579848766877064778757954981417036795824299990769548985477014132422292639735348300878908252431541870236470502795217831750395745157539154595945458318292090289345938171632147435568677779862552362049412081813023385048459923284431440499236027171988849786582713588494530438687910842412627698683739491191174736041088917465868402650764163026407551678292683766743665551253950812950982031959752118166827457703764144992273275918265734101401475770117400747462921394201861643653276485254121734925868855177637538504785022357756075764362169290351774366263045770820797757470389963981318575909844835492852262672390074925911806553367408445275098300630400050994792277216517258271429842523840527633600520832490638672331346509908703977652416505363009294632020872007155154652714362461813112678104832194969455509270314427829728270801053490751901857854504364837679305866968219483557410467467390277535420454372985448079541560492441667050279412288784717991711826308414711083974204585857343162508275135443617509608310231859166951810815888311732686424387664727927820629179696008088973833742485919818146671767057610660169436661441151186110597363462575798083594559043854272657492019207469035590474899045738570241883454097439996491787201319753117223621462939110805045062539138376658649341571710406362470663163101980320605471671602768299396102140541814033613146037454046775224464923990147564654008069116923487745074308293367995199863285417713505222819527772508752531357571586604047346615216715719182274598404574369650448847035954547063373919871055945821566555308179639334276739455134247603096784891040815798884886295472992521774435109362171406851271686131216515087155707307633308142635824013927064298014120602029224473241374088992758022214331364973957180718037663636758970542619877406827295619143739533265055872293599801125090659860752134470522943133052707925370706321466684499662957389655701339711602481936326405068609844244334288538173270921883686801812766436918629797320807528924382721034767689977333883239452596554514915275758875417261486011070890252985400571252642128663459151897731495111570215710299418882918060513358068380688640419817734948360474482777739001095184481367258079223517798437347910528162933255798748380670442887486256697375913504565094486084726672039931378147050612501593343755217372231715557017098558428050771384250424073331271614120186284325569018754827012817726065010033315550205645773807213431313392509185467734916825919089137285534567612284016563928986170630356307404097512550164089227582778171155910540173936874931688593216781955580401557290992799669118238859937306194516661271317340289811838752104290431073095783509691200960457022577446719919423435384269113665766871207942608330163582425675377976975017676496217496641040526476983402683273436417109129745116629243737201522719524841627328396612921755590841210402421098003364798283800733465713697069449160858723507482044553968862965643526526423298478028878221354249601377062446841890810421577138585235367630236410612961621362665577611280305006778940462426425662702687594272552180080367511381031243117832820065175987971956971862273863170506018714865074682142363779744436394268571420620035747891682150213061257322241455679319930752812516818991763752282142168001401570338632028396282424252671916270751772383346189979513622645447001765928902534007752692503065558473094965304004665808877856302767804140376728466699606442925685512969405931805201359022431013815156351882258463896421952016145084000753030219777888210406007614368492791073708256922539918750256679044504001940029690816304319260773381235819596192787741060025363866766318123874253582093585957341910754122703793820821967192810708034244586621984600114831044096252456197951086462641322089255428119271971509392727219521162697025325373317589464063996915369712092479002801037133557052890442497145428686821975344294000657504788916026793173529292375063061744157078707246628881756085619400474781019130385699699141827248202533865458787705330822817933732821525280335083587891421176558098618999203235482365433582293964445297133948952627364156856225319771881018505847759223837074245450143023011980732148770607371511505970092633364012445165416435802269428436686484483965198482808961847168730859345411466901302766336943766374662130880282921249913876019192047421670529006473423255805074699833669210933436443196784015624916831836756831780327156084056942082717025783700017138788420092962408353881051260313356655372513477158642436606047568121749222372499376985969836438324831904734531051868697902225326378147582653703244600532284871298053981572400012930314123325998694334809533302255357416077771269709079169705995892977577092815008483866993327203200029757566640918461313602271235549749723368947228518367613532252588121171162622146467323053549805788589329969533062018975469978247788214719452674320889820581109207343250992415972928852240704277069728317201759291460563669843721627677737964707561627699023892961211281909524235965102365761992726814934927124485785354695189338268525332199359163746377364804422737155230869238455590398718785259771485622280836114397239142179516819503356220469057961599468751232336103997789643646513893971349267795807196679335115058581049175852225076072193465341358077934754305480170343797243631343061119373293062293334275606541563731405478145383385589059811918101090281111261599559300651222332115158679565473946976812069778708122032866518061766418337891306058452648463905882399571455158207865558124403613868202766721830459622552296796318429087014666109632053861742221523165022595189883839326149012951343512176650349650210375864224885323229923023999663729223699727142313497653221046955111555405677679000343660138533073075764801283146360761593667308489824469187206087242724726655684778080824951162125056382903705116507632323364450298615706045044437549598801118377192669537743507618585777310413775566141199427235957837982773177859084095971783610925416868515927011671490837961154471407409555939067097590107224146729228495842879968590290677365336541931216412274168579976752430183448227531068291215525867686749452423612084977781054413958680409065139152755249145231421080029704558781305136083892139282407579097777830318756944009790879930143233921356691700476252473754116515300604696191775953689578632128038583067938288893390120996635731797582897083991192436337426232317382982101636328324365592151461148308301430537712936522716732817763044713359413254415025677158113583566326375709214510974556763723297743870750219740169758989345497759843445462208281336071505874696093473505066638081272663782401400705447411200342244625907750696209544983711942665097498945282415537824374031704510710733953834802146034136008981000062616630410952091815473378409424051075178839621581930818286349223842165794847881515194938635383462525956024228103632838333899113776930085473543396673512937989980140308848523175572976432136157680350901381159466994461578810362429499728194491622796469595144449675690988499937820582917259831247490866535131619833595297062908675203986749458451796735049326163389319564958588163139067449406834346728325392776094414588847937936780921941464081072844915287598618136608849542195607129682055674001218313080933446586678746656119931341830498627734770975965222620636248869445442135516005247047541027984392691735203765897809998753872912633187488301332331292700095391447889039927469404420783036325447894934460849730485220482964757084682433702723448985223677367321346704490269544090784120888530369250962432305985716017142786412263162509939028578253874424605605318278915336637911302768982440937355173152599387390268810729992418244722560197417621992683498405608661926308641738744254162632368595717977165354356674648465738064081864734033951989392003037318409869949768757514505237515455482517957032008521261453361500154712085597010854767870788225743142229628292747729139884468958368463770296523671891279242016494510192754954223774684466339629488484720823668458423876692141661876930367956231579076300764586984103718173720258906229034487300982533860890548509861055728511446990508023904930427121856856727067940812595846400440875528917140811101879160823968864516146155297077457558480952554782126104766864201300240462181406898134604472448899812097392825467306388416308224623945984443791660073240704514443623267046155385558540140797428761355509013092531990141183389576080538829941726322562220315767909086020456341025105101830529666480238770305650962317230196821743017772719570584198957190357103276444638440011302108572556308532878346165951973245490084737481745651681788896396742442756277575311254723777115779150761992991415687120326781989441029275883094201154995402502171540359514761370060777002401781001349763528432161506767586767086359734286428913403025662200110658298322664191114070651094017497315847362615685710185249519834087122288593876254516047245012319178935629267000726311436707582968091610432792768495054569797476075678669481180275231103008193183754484195752004043082300699397302370698869125959040968152192298594359851939582562829592780587223164745791892319665516227144212089023272865710137319299976023025191273700428229336301451987007198078053406081100434523150994748166964831803846034979079571639651613783244537812452104155517191989508060079939423453927713630862689867863977012010751062711650391766656526974345591422343943470404088468714398105761362138470999273054277749836320896874318010366197766193656184678556409665677582360106936571830603754725203628706616257948733047416686973280407018802284385811503898650771991340319365210958907239911800282700766579761264482939270822480250245998657644985811881117672394353824278962037591308103541223093836311927629472412045045967775317116791328987614008257632646599707861816282438609798680428351983760812451971472696030043012407957661842106354540151345017236507412159350214704324293143715943911764423980307648950903647304832792447921844193641500265458917442562705162881594988808414864179631098088038290072945316201177058327996009809128689857990700249168174636735268036306391749145155503417058832071351685593696352003449079459476818143909609598570256776766869829336171929370474614815424614377799849998938730910873679395778419837276894677833206393210812343854015051709278488447793525628759907989988466115764776564770824325958073310346559690891167200352498334270926875437920916135177707996279991889488967494602977540783686223237678721393393764683037682911159370810608174557758226750342893061452263428492940247284690553765166499238927881058575144175532882999191278293129517698951684820944444143527637314255899835101329315187010486572974359369194301639413749994978090534179991500890246185054909144019247232139379208042060789247519550510961988943127439546895923756060350163459572742466911898814806109029528978690936432125116651979952326614577661549126541166229792086238478230029117786885967713840063891557136713580210130060678060369572027956627044100865768471844227078876844026111644118108427819140868851056873177721952363266166872657014885688567626704265202752565819792867499588720436731717974859902492721004475295100555497888436671410496703695549655424560017979289632477907561461584447874032939761681268559615160857143754245647723856836013663475539600105570840042896911303069406525943099311274094265803717408372825864782841104995501766155367668290027373906028193616337741528274206574253135131270263647275598005341164298998906655156209971656718309883580062991886513269745563171669441199707508723087163862239710476772546789832480737800109408415711090756829203804704452659682226771342786230526059712743134138490465688611546219785147196346937251778903221091737082681857227182812695430828105336042047910964562553417254754666611569504704641725271418904304854283369293497980075718581368116938241116963973009873902566415611764062644959965576447946678430512929845466769629154073352662862152542234073134195110637585883782831380294151913048979529589490504628884012055214858672044564344222319801210447410706002228576539984039911704282778262288753873234985179428089475124050275410281041717423084044174188437559102575195742181388040582595648248178839701104611533223782534689859071123851975881749019989245139867716733762826547597785626485279025582822912787468841743952481328232470746763008358842252332242467530187261724026033830131994634454161760157808113578610806275864172731746569387763210243746641867692771204128701034904935489395250564511818183451115161825069496324340821167363404685817396561850012790669134145273445952851238198070613427482426679603645378048681921450918089786944643211978104642717970860308643041272604553354161200918824521475320064186788054663801758612618387996603068009921426143846050801486241012403335056819084578860577868860313845696522732070671747918546951930489422288519422223300039266361784016352846642606413844308449331305628166828167057222862900772150174562184362099595370934558521334412819004056573500567372435264794549771658737173506623377014594088377100883024866115980089965858117538407509452852292825452171568317135228012379284314812191987156660270831975596897841171459685404556174137563420624958641366603616237097270491253310655888581650759893850342026342535671787496882335800050199526957309353327141347190916592074302035067508727436764067659509053082814088277981635849716145116203631416743281750577880371554867143102147429728951911963547118204712993892416196729962558877571662476659868811942565613343077167935920745261855229111618504875459654014825971908695287785074310296128223811520708303381836507738496934647898211270325240526169161188099929102850678915817564393121894862731272092949513978352065653401177466852490939453300098039736724295076110463044319439154639776123741434010945965311464136143945357391432285576172076428159370165497299481477039836689096178633685697418859852812131413567608818508017754468550253927504889726178543725277726844960545632319913231920251971877605135299768723271878938866601939783233966496565756018992968379363652742788510953645888986707271251381417318394310887483807310479996080770030731852500365828457547010760251463287099512725355713594880373131136553501951065127341103897901325478283760164934086394994868650780622755214253180878623098909922044237646010374480527759596008296025388085485732336518333418055018430259729596177913725600937073079020571129077054992660333704071102801272964158378297350012212970583662274518113564465915283087228581969667062201402592202571069229438549359526054404888496152259228744792001069504097984123118344477216763670145308483712618611243758260375337077606065501852357688476763031670140468192150600287981421495367644605192595318202174389825309725500198491348034998363402465916107094795018838262731714409789912867525774608135477206101479787785745165991863665613066757429344179338666832054283870929020283709510212998287648515538102154215467904739628800398871501524872317400416178083849584191835075310832537310765822652250703171737672813389787119715210341341504337809631730086983925675433147068207607639904564702897984659724010378798590569533347695876371559339131314001689088322975543828694424584426438676658637194174470182238623445110270314396711489391678378495070540930551104518282860681335876182319838317332618703953956249018409401900930382236029910052286830306588090465848916119401301440617499474358541240817550717469432371792861045465276083528743376031567900468549908807426103131336847944073589443156459935625565000961108985984938464387061124768641304515642231371936749446518402408591282305988907742699297377266695299783402713691047430676880901993868241121199640141760856558455531828478034257852404525564305202725694983300821431782304348035673485683586654525249763409196500714626391677271605396085925811031341627125589566403863101767602558103375131527636543500632714183780315852185908187911008002246213240040255192908927234983260111102630167401414526379127813890543658298738302187308511192885079575635952794734976953460221862151981014581204781761259216528784138701649560857034782400392536000779300782467583561633137381867344513298809429254014745410730538670307535892495536687885002499638534232313446851439246618126279384977374277251953685500797640002172719565691029779230989137965555162823636163631115518297784079224863624711542068130741836003338283551070689138777016797724206389321794962195232087568627075040287664792986438463390302952600290295913816769330081746473242124776718667186413437086367161584831671672403466087031540024183692040714238203702429963175948810087965041493841029741007701378576047552321335944898143269242067119616977104115176330305425481652950468002434601315875222265008051670930304697740558974736655444658086094329040233750505564710305579047731680984007576618792709575561481026294764468363242561039552307917679125147515168113520327674402905729495375983568629142005949217327774593933778531431574542946090550807608128490086982128501949142169189501968822450218784845017096282152664089298026924007558879614214254650476264483624423309462310430557256383255257267530893868697981600381699816881127877931141815848750125776965481013084643942270721609004884795271958328255190072450508990606709030319660841463446180867656089572009563190851149092061369829335014208278188239062025869510627008482212639476999900992407300652293165274785747270277668237664481928569099741184259192764206633948518850109378296782036232594049510502944887385782727175816208550993876465159735895611562931879895442344366680066709555834319744855515735265456000033730105544742591863769744415749457663647023384103900171671071618217485185156215230649066135187900559847216005590783450520119850700088915687342829612320741654052568048613200244825963336845977033081035490090828266294678806559293463301749975253597478099480212860305084907261286847302553018299302979097812769786991882245463456190365994625443945761955717655163720613676709088582224910309098522373112464752199496096659046335237964470211878785520641522307332143309961798158780798799747410735302818765009460618300206074183619982562500203281180361823959406176122469353009747074276490250605682356694454136476134295811241102564414293781313444053745433457050798263472420480484311717192361800305873427013413053460044667529289494285952023834869420253555353958776665126711976487569327370294298685978390801455413750712154728376212620321869517239912471274003022051504661359297998430402110260598738396524254784185236246262992661032688436667734722315299912467521123190616181549403664334540945760694667774694428888981750423611203797251568416459686463709594334952514579596225123961436746264900145294601142353125043886821806965366216020588944494495607414960193142697234021685743643067870617641505779151375699676833819306451674834729351712768079684367876752705993352515717760140639347840575896311751389220097595613790753496824949703683965741891527841671085578851787985552244507294948063128243289625579421079340729041972849024344741216608088047893001450842647549923884327521226429915412979845322203690652126015512084435703348477187176331326915786650338379404318350833807451703105851828951408165509817122373935561546556037331532160422235813461691395083742856505971098999718679081642881437763311576244539252213066785935306159618555957378236395935901085451966813342939432275982348364693443039281959399302916687984558871715007490361210310618803588549950679576553011390346133707182918824822576587210710646134376082085680557981554143952969609172958185927273905517927967289367610695343203941120945468237169915571490793604892180063566514567463739462800874718693228213423124732774048170669062441559275843379870225246254554064140959392037703460212824785832019834212422456766697555740383024010008162281712788093862209472191840106944275438341437813949588115243894924617012109094769508573062349741947225452778146682921323870189689750345003487327882182442177688006615383166824002086411791280723174030899644886889715337896235507898000770704868800951166644709637934114617707294274112112504877262360438566139570303257101118445178478051262938385326831741070135294954666931513844630034702599547167669737150634722339615460036692742760081988314118786540789969828477936756639043138097702746276366991683868719547995296084272588117708308824415396323221711989346990088196747399709730723822045551164292030975956335941767228797682052006997938224168817941893047040002604060520967792313231435641671233588719607178191477321309443054067332304108874177885709458163130817623510663240274782473824213371103132607274407797720718616895894837577263948223365670097523071415696413696003774472992301089088868373395343269483659882466849306219927908674473015440680720278981943877729627385209595019649246603033523776400077629396614804494252827377229866513233942630279663091402142550691538738366383146633511860178513627451619345070786489488731100742897206999072320137868263760457768399707085356398836194365021231286901000731640001890061137540622806392975911882044292119292565405991219222325591792381601046872912905124825034215453750585519229881781345516332941941128137365957680439813198655301103441622379411597493144314765900272320280652440464757887410263194967274976076296889853894930882174789424684842148796382004108496100078111305138702633796657231953153785850202900909684220152911898322319962829157271274328061236067651323958913738615764052335932394368722768685592416089003385867173660136279403546472712971704180722440662364949830721303966276031701105169636681195671230972553798766767564899503454714685594789866842682628542800166982567963157419352374232437375282138857627621642236864848012205904634216137018723969482661972641691125550434029097446897139778686082904570071378794184222486970565497112507582195573833320468649026277213186053617107821617219890824010598864404921972686147126967575860900170609853553319866295285958600548870568136781386606898802764821190566671054177846391118115098397554616483130137570049515729002143666586106253804983499817162916111319446147401733373900503036971431246602132376777742858338332861417977669957350441341878307219071659873571608291145760003614658254971857493195586793395403750403586860957103170449201458531129731609402720881659277903301976567507629973273737828696852756578363397077037020611622723128060707834714278082220014570047614130472000158171087531420808744036416444673819926970312042334744646264931239558010575927464834027948105594453588608523839001376794760878016979374942321021215361719795676942954543017187074529968764686954839785315401647242241462214558222751493560503951531909107855815405637434649037493700292231687500197526520867135472612933550281875987919971182829603534230342142435498560905634285587705921515275165602433010290790543780857061298121980921444305699612370498781738405753319826397186132643696799241136723972049643581411738442309450884839913271413706630600847350552176730976186333628284147922856668068048118847784786643722657683620501438529035879022890128979612389816531721908900405178013389455232802296477239817578514264025681909337794426395899565610850049900356501459239460386326908122508430636768668567672259345704480192582127021568276997076215845800151171185727728395761759744999170888239906994992080164612541311011840897288611522088541015870666778390186758854802734859704364023219204027222256638492569626826941045999131923971515155576991989458125031950384942377439027435582908275797079573138961906685224403719462487123034929471400166076209582292639029409223282299797404065181067959326501640147328070126201681318709249827151686441312336106027426573832032407754851996198124764243987934548785642344509511796581951011206418408531384558523796966323202369130632955135944065277050081425958209258788575581069878226725034040987713669701255263496565006977958005007239850899482498920541890262040391441423642618156463579748886282219124065898112044620994429348950202248389078086728950469348618756406248108644200651805771477190797378219124993476965501904349807346910733534533831385711283626959180645125741735027899459537363424672910650960604335463497993260159023989123811162512563852699338547953080798226072122186219267301295707355219943781011035880238514009084698399889684228768905958643791148074352222725262002317571033261196957300433376308469789552110539493604030017808680243954989497357940848308883478351042394416394137533905677505863817550893737249410801849398400317908463894085857700455195578241878907107450031810146354521069831507839249580799423589879698320440273608953446028033665919860967623783521414509303469479511669886723217646207649091070249950576335820800931792788209307425410859753499557143320803907153211574819599013648587575873524875285240495265680052153616675261419283865259386313236323742774814749596531363656276629148958126830387489909951802575585720322226409041968029094497936164605119460661647718481294999448002951808912086427579802898739556458535346708939325464584399808711702502129417325700247850791059619262087119427317407819836951456971588717231275720072822663234575318244024756113982254396798706200735693846094513815298942221467722239135768899517279140174791886298916295001062434844564860323070933191301513989035688269765829709859913116374327343914712559745756310890060153383932446667882002050691968201704548854277532033153906710365369071261153026073674471404798575735023344854487213343796729084814221875476916186081657561123581892047922608693286077959828230977708836534125775311727038573197135758549003349400009000483479059126666475372586555626310134124267452744219848212035827669524762848785410287008137178806605012282942630823872040399869547182675887510629217838513614543395711180280432796558725349813957962534928760675781739850483914229136960433535584083222469983995738514652984074983506156336523487060887764057880619878134341692864434971625529157711447703823227045410013556019137630147002833318712775000633853773786497700492620434710260475766350268343482304372823956959208974459444322127436077680970188568744713612857763241934129256572063748030486631498237886765178248185476011324243697217253379222100410744232329678175200083543756189360659228615578373653409098409267714185129084574250924885973122986288146879486636679137910893301869465167241869147458414914777737525126523134279291635704039504396342061995957344966775652773362126180269241365293973922097931236085747475854983318598308502215863148819397427347618810046790365244564349885742544388502428988458627178744319386910070083006320208578235932852546734128331579359748711668751842903530796417458790531228003662066093406473550286563536559905123957162977315782880940554486147100616629636380308490406562342245299656947326086720317944945657160281995185578824439898626996904382013171450979460909223809525615136678717637122972831448730608664602657259293851823244882258767661825684111568974177925838941647943521290091234127113210313323667718624346607993643679530731995953813010264935553154115619914855426308030270649625697479968128806709821984355635770644574613708989869349841368815513116543704066985138767369519123608224641902254240367224947226367338853407728245373268342695477121188561007702195725722722979805325062829555538180396754945789532893045878941271087170796958495045000896980064081633061313020949031202564454361540040412890551338449644554897093319625644177969313494662931952859774069043430991567201214983591961296226291647686056311712594829477258730214919393075844516665992582435316101748490722329389854105702612837335484819484233264139766908991958127608677458235903942224418311470134852680143975357343985236975880026578620462695137534760565157071103628739900798858895495346797179483628163662661490337321317761429139958328979948372866703758174654569361830930296533886461171748704165504679393755486412206142931066227126643560739938751491542587911689359185262459478317405961910356382193996999687714208581932055177260757490929600861653408166935798773760209390467173552610470435575168566189565451107083457843789898326625493761944400668629769193929894345074703075264078969942135338688766199825656393655999223430978420730114044966063208651641783649356160086701137083449177954711455914836427393586250246628602399357581932560745232929993720319491125114952041828926217676211769791068368277752240858027280932817727310594006100009761886926939697425223224518709804923099134626032927837912628298465045929311033975333364358864974098836367326811769741711426806281487279136496880877718046072625484909749742902901273501253313408636220247009501312720981887171125874904852962918188733014328616662627166292857606029490559211181697825221307293290911897353734109615393534052776500992917331115562374158483850142712046557064099996287629468408945316131106100260666121591624466937032177471685025236781254986452865425134563372749999915486053936276506976157190004472930685271567026990375064601273136565112915807566555712417099660883683132375842082317087693686427374518901469557960403708052011096911772775266988985801742003836604831909351667907681579664817721269151043019063240495090569833247220419518430084519927051981553733181378160409033789266250774322749152544829695021665573532003057539517638456116804925690976986576386473652534377002162816422636126148917264663446503247194236604985976283647906975418654378206467232061839207429293137523178079116729976487134376904191810834155532281798693212255611949906897030890873055048341460247318863260837678062122653293863377760491346401332470165845285310054253759800434292030385723565674466430676026175412546785530229173925878684827752502396994093671045370368693336505555864252034413789594859499552527048952938362066956196806997459002309018040393291567587689064277891409733608854342677214861324697745779338821578479453488037303017638351101147451699833327192049593337198669204973192073521327644229732197802249521249133958893843338038235648938176416231606029985327277224693242537887825678857327271550320760287573377700687113235160294713104010957523039638498978469038844878826449683853151709062331537257735300545516030950301640604790164387973079760314327294980193000241588901135659766937220593119774526201033524036566783683151037509300502722807454766679375605825591250053342316739258323195740788968708939890575004068309637438821677594791111234822637139131163217548787092168807434968378199961423533138265225139402432240629434386799529891211660629635512486487360548983737054329079050098527655869741591444475412476024270608731454595589259292664029800551770868538498141880900512370312365539598549293643422063057534055269474068661951240125402922767252847257287313334429498907175340464675366804708013057689157449320087396471527076614797605555317213711975423591170936594190419013842272483096064203568085112298866213012300077047228176706474897104287596193403965577043110196200577458425213124315025513545893268628541464890567532642454889514775387553979285302858465409569213914362239541875062203215599932130115947716293440682852630766976285151825417522269301838877198168816831141004400373088858440770480495329456456000390210850883311242578730116744218781620401048704154022650903969073166659772660320859655413672016384855900668515298984274424088188788151323860965087309472690200637034574952296675904354341752104173441567490834788736625889621106588483974526979259424478855661306235075118800055989475543978728315400673089789477493631550011024988457301619593294441718597643519204212589450851482511275596493047960792911594137306627802005046468285953294277061341167123591750243371807532317955995031239045973173580962974371296680165017914650443246591363403594068405025169291545618641069945058621292030702066294466215652051435326607862140727129488659609661855109692958531642941902698446008891580510432008946355794713890134390041572124134780364606370448815004493155740277746141854823749704766360520324301489302040580536549583642469981844234284192256057798605383797918787036424501931077768042410138425166606011238316033415780898235594700892801408017336583585806939973183806741619699395969882551773534253372799879605064454904509247531491253766359972870456708152666055164276281895810886407117069161122099426816056486560309428514200271422769801727449537086646307784332143558147742595595862313121186327581602329423590679523770388985107874342100835160584921420023360055949669026115664050483302157065240532056529827058606216888278536223446558556818480442121928536154227053607242015796234446777015959192494285542688146032537879342367722924009940280387124721436295169256198230172993781182318660158077286536771638924168648465898943580661512123653236118708576037194422566062350477537200458158942063187807506626688005025151305984437526350193658907885995169769311374997108606731007431802839563156050652542844658356142803268246624239111832075382617052491684415336400387545249655481715486774906113905050954101869571306498325911244078327271032501876323395657777180754083429433460318882574126252146638440627573272238539793441393204528698979765725667744383513919219655402328891016306848036380776597483634398459524474678017384342782048669856598328795705676356043411137637589628184225549323677056473944344760028323212902726759108462410289141383332319939598882190435059883073705086813787100390030709914866788018628962144897018825817125908731331934063249380127259274864665754630137612357264836668280640844179550827815862329801764937118751899309904474566758796027400768165069220510787045589826125413481704271540682754731275931023166718992475378191719758926638160530136808728870893137293802206724652566145462713361846906523246849974723447871991650828483864084596557193975119381423459159952470507747424453596539323835512706349587899722199543360265963797948527476435224255302044325673523820424515809222722845596843248821685263373603623476067758397820287485999471890041243842650089028431989083663810832452940434034321265415256036873900827210051623617944041068396911272953598579482018983659978091093886602577420418302574028408546169510577341002201693648562500592488846215559327688097352556270560940801169373520224243123315358357873847859814223173487845263653744801657541098578473107974479093819206618523492295971353585693670825263122187764371571886527182519057722771648186438934712419049237869998329521511079767948556070019479338074025036434830500040559624003487229851639122720429010197233832674950154741146923797454069825993048580565621896867381651029505309373831619399272135531811094874480277912455114450570999253625329205014744058042034200607675868058979019489156912866104107862658854257783148517519014090721250358948333969824423159517202724455531909030394037123040678438382811955211019592321679186373901129989048224381256252936236009504594342947318933442910537736748176925396471020443293599131807887637639793522841497521702730831700075084053428833542721002966000925443249304149032299836602153850896581936484926952990838387591274620576082015087002859281331169740310060478921254089584270396977561023309293456952474864095301315775922731584995343296230869221206725800658013465657216212991207345251137280499514901633134804270129722042036493874299604548191498582708335195853491365744922754102065516607112124419245370256986403448490437259134883167239645683563483031660451486958739084171291590753345118238723403097388917468909017871622782373635557900125382903262013609558946801577877661290556969743599670893688559714490502338024703248138372700219226592692919519494378623398725692160329327219759326881747679364477026802368197749852838075808002178320872112995365930139071147900902372270360134363474265305995591513259293997543223213899198307494211098714784212031150904775218729519525776952119797795849970097008236229501599469923131730910513472915070080996881795814761207153684975042359487896969738937144477070501688504253490892184682270756576082495611866762922466154798879127957228709337227457693709221043320154136273598963620087872440744732365710630665018984042715716537899749999357037085482721715287891067381955409938627748427728862414254163912907520201242483681957394278484352195184799679618959357868638753449603190668739903693261579203759217803083072491135521402114088268721797005227292991970089079345439380815995615304619116808386183639418101380675572420952734131615329990865471968793102285237828219038004014988829860137174237478586041637118974340543587615943355039062717839535211954874901546046317404902059351187874188400629078451028418040898134261669823957248907610679905259356333091150233983756144149953705276974514153164053578530751830063305290598543432331104468765464923569071920821375412204263221481066624631165894231382070340175874036255515538820477889032388737862137637382296632299481995757580222015589494559817733393776131647030563257626341310704146646304555789248248509632117974278648309668762370255908606863604727533043067319795323996392735764155998224508394241535709275010131525452486899907147695692021806348070716137553016514701959553580740459834314182569276197567929165737960431334420330479013612695122266601981129214119748173759510236013873709486430455982730077438352535234557118513358988743796592163421389465599268058484880879010970908407115931740895786776115263987980795565811861700759674848629298385751606106763472787887082674580453834328799249539087429676089840160420485733882168428875277354071055601670336516809464879619709051092943864583237642779676622138603784999354661874472749584828670332955248540797585680484570218653874198408950143584699884447320460273572875985176372764895450594441649458207142310803148262967841997616192139729495289359131536799328960543845898682861402425987586993149600147065670526705331971697661891702801360244283933273309657036223492438456425814469831499274659797143741628871110879798541812574078060476290708424321601489295488136831608331395614302870761362382600081650775457065128480230515841938010681258823573575065112134701271534390626765693239188237848408413324943015391505789696270779059877209195463055981910333614023379838689400474860517842228937516211962744167634959681599217840414721977237090612907229526938524595666753346429700348524385318773851268549770636777076508510290705382013603864515078880773521059843768983731619630257208018104563276698598460298888132916972948547632527632942081548569657117072685092548829945333496969828171923097412289983147695988604138003368666885696986702751313738960715482568064712011605810251590210331605980036440698919599491045244032779800583813189930067844674893921401467872658426078704282286261015442336239400337960238861738499248658564121385755241144701816594428133937720324559724024481906974666881571782361181093794827571317786037141727205423597229875424975395828037744621086816317996940740049562123498190608398496356755416495536333096489421824881509271616050628778979935350186108651897560736816609808819456693721384866049684601072304812967939674519086398542527266924780704536852632733099663936344807487099855725808603836658707214733375811663114382779165412468368505195726923471233175143226334095150059854118184804037772760847433305223894915116319908656534640072182930353023696088467783029473604505204521856414802731483186456914573634721237113818400169229430098740709254767509662854918334230914719099469637999588129597181353878184170083542078641551635020278099074463399916076737146019291559506693537672710604046380679945931986173264553402233896778350410299923722442110817897594364568436059460266113614087254152179321924537501638223120607995463575819002890001118295977466798673642732247281881094645586513138036479411147005157796454496404630373870413427198255609816891651854782103528860445785804078843326057925413214454928096051811011472166539926836916669770206230361504855982913047615890055342527202744570446532167906237494431173791608673567963884917440989983271821774195601200965246182615728103558885414844369161843293872602324459585295291184406404919778481396514498245478377610952442558970325832150595522980980479043983070252358992365737397960984717375930083707360006218430215357852091046664523432773295667162700862267512989498458231206346479472050798850983521954553886290928386086278232595741337349935787194038113844787679064960987792353951007293355993816472994477987079854307434131682552029762580844735618318195380824093121767070316058519388021889408751584877997395285008200536679443674964738387206547365051117492633120598669493449405451146079514784876975355583665364736354029978738322514056128557855385384751067133689361124614930104615847262369945039124746272817809445338516939979824184467893274322714073252435669441422429514837200735493953273566862520450486463568094334496513648676117079356530802909051021606980470866133003033570099131068663365690965091262050694687147931196322196677023467529592320815620169070440846364281226991819661532425558543851493327205438093626432199264181890980781588196513084966188196229521736521122564254922022589912667803185481048579747164252500947061543498573730776773703362854507475653176694713001591761180567535775842803661349978695783847597748134963298400781381326205020941782626513265262054732117259102551641168053325261853318408561231339720249115590511063490105276768983426723904181847908851276062266949800040363171532659189865070409617450819891663769025511293244997006566395441898657083809017926500646569727727782124163358062635792848590774658534564347264148493948110797437344509738048973170520310254937010283848505802338092154663514967582721261388436569434631840203030866153003807554664449882674866600032868566669665831377932939394151062735038382772948229823411484294038963903549263241662175672149268741318700927233589981699335746358295661880476749547198075161294323699549656763759113144580335199027714957905801940062660695170992585692974247494064621289156579795930668959612382248004868743030895918446235775987977998811500380541838249939210319989103887030472734637586909609949299087204437128354539108961517189209829793620945609469436487598349196807273837807169239173757975009655664704269375954545877216172074359367511241534999822334192333128768775225653597932868314429674993039132466760464764008977801801490142489499280730449054550750012055266624048517348375462010732446217532946085429889794822684223711462858046348422119905288539333886513731807000998747925392819812235042992300888956910422885962275097171372446769982921745356846502525057052644140817564917834230640386093312714938898094482724972464358109785215018130558385220432706762645721039283853151974524227123676384772230269081178449519862064061182129287747340157371624797239853635920857900580485782519078180486692423253608991629532782995488113047533115318323913410217000601600129537007609956961817261383747125949894212405627111720563454251764669399971597039003825260266199641076694245315966372488488988354076443732938224853604225737739987985132600112753703437722907235428987230496197537954978311752286477830878664266006329874587112811190462706161105343482297924272640033068347747592992052219294862847331927145843740016181381440833519512234007701295646576414657664183740691852125698445624178684101234210570866392000879247754682485452233614189600971669426599235012818166901110018962294172060544651038672965767336138502439619579783333836251054564007612013757937403031363871128000041520531488920053585661590276483156082092862534202085630079711437316210861142586259570185701021285433969228296029918152961142157632033048830103661846544166271658748232694376278917500856510155602756893659004609603672722762213424852288922741031646735667361998473462248964777537186605672474896009345036579448747826535952640478495483383284266261270223952598463226406693691522153646710151895708710019134031548100988525986208883041139945550010987074921423729235047316166556139870957469733103328475375569117785698180271627850623379017156692827308563148689746773906684021896826975873404300318110439691507759826416498651661818423459663528527970959896308738146439919096944917444606037673057331983702119941519447808529120566726906376218952278023952145166399210310164482234229853665461964887411949334304906072587224185217547397500201340621236962364506395826361916934262757687823031010458281326214580152745649667543705370269432082270007344165163186250585602676497792819100447835962746373675089166188747799695293547693575981217548475627956302464637765072231422588278514101518326595245489086881397919108374883868725876257605171680965673259038081138379361943917532902452085496461543039220813734953148680680407220147915884639779816308354152748836980418464010209874508957788503502406903119388530172408729769593839800829917798204561591159981914138485139553085117175108930929356914150790639548554202242994455315597546161860956989853799357434417658061022487242141260038291801117927770808934052268970721145472170995360558982904992611427530967562725662112216548292788018379602353242839150819146672921486545403197544700591451060403918596093469819819959365896367239546750738422927050569993766149679017544619661316131585048105341046618251275442864572720810824386733974446779205400372762086107721580922103707593785575320159831397640248250788846416566336532312710725896838938966735477065520934165159399728050393314193808684392105979448886300071452767180324237463947385714261041298256193836172128093969190018796916983278058351839627589115253740683249494071156316980624388520615051845167920607774794974328283670400308449502248507598321212383757412026828178162225711506561679565726337433407747766594015247693540968821811468602290610108121154622923440383928387201114801806282624079748998377167029917868947818935147181022792440061748674759810898372810044067560903862991073787263361393184177418237385538839104043063208736981373986284543289810107398191881715305174676296934106526318319489697685219661276483957520093170307507995424207023661083914706464734156438618436279699633765894577337331126184073679005739924199196578350749175070586882829724704458701058906341356469455926029265098565383454190852310335626431406357522094393400531576723993280411219487268021183822739416373495137845991981342864331013156271792120258316653595130555112628341753760210039633193632384146027338059396631158615102683498305759911719067575982619914699287988512071328773606757565067866061066909938572003681880662930894649978692940888473724280695908584566391951511802924853273826752268451980012155624636920684608485683705846843095928951839812027886280937802922953866907929248657722990100604365349779136502160567640540387469826603523604345694788355014321429760548556538031165985644389756902869853689702173970929696757842759636379892881039411111958499056990633414734727411850165386252869108200050971994812147069078713203331557393536573067501197950586349271461876931481373247441225373445473200280378448962547689744766694867480967114885173949166096148093674754001213109314329230971635163011490589354258014961663955670880088826436059101623135813935248958551429538705406676980331808981679905807043608786181016305094886760149125277175665508887730455088513744183464234569341186195336456203047052114439306746077022153793900112671474249203603380745437029171964839593212617590300440074343066869183446850986260621608219049009183837567956315098043182924998241810150885481121986672101930432281408809569402677585896945362743923672849469862506903327424236680805519134521325826771476551646178648119507379406576357227313509028773837510800245737917834234863714242293081320166404888248028018683191030280237393603504335419421332758932843736287903704579994687834221448518879852516912884123868326916393517150772462890957977030032893534955341346143771722610343829981550738912797554538952163298730587573414301957134833647743048759678235742359941405346854313323975577022072392928536811598587746176261132332007401387971744723959251996340439079128164840764906306530528951115487710644270910533480427598866357163950089550493293002073135647643583637759593673188753110201667688012747256617697849050590707838514008475081139135078521337522494760578346089755839098925007258412661264226846959017823194530411199252825011371627612642815155132659220392927264961769692278328281269821305979391903218686769363388962616662150258324595271993759204624646342438666631783766228380062482957898163974670303470313266502654584653120695679497383316015301671150325917691579247958484530989211941320599039642300351031079831125749405940832777074766640975589541968170362867039470182220542557848800020226421410591444311343604645881998807453748898175107019610604906091786373923479157417414260628771905342204442064005754520516814294137626002734457562253118041792779831368337040555445924153805235985237997045986380126085301037801561995309435064329497127662988056772325709606592560781883879357976889621872038861712403155416908463504747823606786449087139509960665608928606714901732169581069711207697973685971173753845248603262641972712900635656399593727205040419383827210037080430688959824848850982536219264590210734912476310880234368986067860548525057299441329188989109235522342549279669666049144706571182408528289404426502520901148274573205979579043620043401358675164352220294795598411294756948459685724139567839102760656163186679070508695161921930286541936719210557920528144669034625907384199421620940993425701492443003283399970062209555884884854243726511520641219459715922328625257841337664271568470733155022259152404286111528174458519143621831324387404537540245406356142150699606566133093852469011039492786933651093676349614831405790234927000265748596911232776834748811232421089607403839508032523682616108112629759818422094843101629087687662741365168299243469682131464412586331717003790594732692593685840068647643332198944062002014604792714847603910334942353456507763906035503919427910192920192530999216129586793762438626123678341523200412394865976762956161974091025239820430652565855270930796477728794679033315014327219811324289385767535719735659118464282636554725687183210962739348767952788132204700742854485629445881406764940121968158675764404743608723777525668521332961176307706458749100868497595894818399616660128703543712431778650574205738681430821647468659294460926558305568294197061881025554620662440641511772107924067134194099876816958611406440065122231859796010705268543847095182049878808448642185832407479186157499387713788028616785136226838699873697338752607676993281835976554908053418686077295382812676687159123917439074880032016010525239680555206639666615892457577638712467170585988674994741782670689371884340693736692689260141029025711607995447666260610611363501541868051046581066864700419684984573180070674643136254419929848555247540620838096592451512630007702682835487633043625609684003215011686406742850139944718761510920765121849793526674177864412759416011984341264587215837454379359898794698186039042495821232184663656210883489594734802753780308809206900091576230250284437743405907282173794844393109859394239899185179725849642118532063050462941494885128559529806117468511864037282960378582342397115204726373289589478837520058238858200066501896142803506075836396168145681894511349111079363346974029763490356185972773243787049227604556016124892801404439045705326491736906466789104349229118700741820037444023084635026079246603528303646020285778182619973766416622936795651390842848421475130985887085308678961048234924172354818953617713035727645434685137993610386379058288203355771788568431600762830459994732701641033000503611033288607198723054356994975896912391503293183896146718959996859571745525249671900410926130794342678534286010758202307624414645734570102488097200257982035761525788632524959390259789929572386806579068554676484450498052733115723830686537969030365054742617501250637983681497191442243670260302221226900367422837690296705904176538933720218648256497516966959134919791526779599207380408021112724328407532073387858935871671543909215664109509948118781022104007893308599507597459116641536354409576083527596634538808619265013263435796896017249526609381735746884380297026410916160178444859054727924227323125955206166330198921933513328973751733356581459320467800484147192307415715840547404979706850382501688387521754720096319941290135650040433990575126099821370625401331310537523362910505126006996036469846385434125552029922148935096136821047015987498246934024123160137303039086753515988790274948649272237585559980460411749561636435684658387226874049649085781498604948192756826025384853296302786990173504664526990924218125162933035170428914194718486158548233833467236401240952291098396270419286019170401709301562965797956155275036470120503012134113758421138778445001345526833539711991719084867477283347692131290499337205223305712993618875263565775252411818091843178435144287271011928965614551745637309779119715637051458248658167788600573405384114807587264870691634189153898746475851031069506760022706080308922833945907236749921101763168032926643073464256113390774889209820672114934761812959275768705177657095394299860104578459215707721832563777291968719455040658855587879230871537643079710691305067719189839321936853956243028414727944180371003474181614429502749828988115734678280627386625405117971472980299901324442642502442766214979166171396543355423218527632089696967280833909766301590772366093208217713729541203531868371728451707180728628445465081618500277475215506302589664611844705441552284949862167056332054642902308307302194115761412476652900310972824457427940474506545989930606280805619553028232836852198529322247145765728297484698344266435762800961047707846718053597856678725735712479030686002712325465103993685819306573253189487797853474594791264535185882519651584486735364168881835699494033613118060408909787302499705698313954997343112396267089143283732131860216365278158847566883715094288086064875235143879413531133975518378410762593750542777850416333444570133167921985809410806995770006626478213016683687601571584230687346024969606702322336679972327618935247515377865294934346433666851307044058605213754485527681189625611731730502490179643990858293180721257892305602034089183571703708864637699321871934087556332357407434218133905102095281687491190199517095013689544319637299982904128928718805353649326938503621587605407990369974239253233160469087670266833580968413239459191587679747562128794826795599739778173559784860728639359987259901964438720666978786475418676817996040639869664067951082066672400150121530726435753057908991442544719611153012610882650658143325729739073113163983131272926222921754256425381653195951059709732950558506474631072475467734090125364220612520265989426446332120408072205621807882183051506726634073648792619098789826242895128409791834409346683265059962890768363523697991320578781135174632299823043943351548921807900649045616716473134670220379554980281039746669870013150560772527736185373790248299063759027589865775417305197579018723400716470067782003593796825148595203805173618946328788977436540470651681770146396426515193403905005287116556894707038726872348337720883921480954130317747532579636256008091612298948983400442373604202823798007135261529590603247323151820279342302314870254007724964034275611466345901020959161528483302092942882154290591368379824521878644246615262603512960769750350024124355458579851780582225513625461397044130495334014305264021981822256163162788419053634164061059812554458466204723027704665468930048236004049216465950060909169309397768689084998418643784206919359312223167628380639806614597171419740451561577474506738164443588349547890648576651693374570030097980296918261700555603947793495491117766902925948735037364575251038396137465051124051665178486043059595359615440360229008747813367175502295204188575719403993340809357719137363842775292672756028632993023571724946588047063535864907335720598086936715055463131690032782308004491855687796704264739657638091830697285169173112596735293739222025330421235906723493182535365424392734734526066670136307926235236740971377812858079396441803416567519332197607777258739055768287208323503911802467327249711881130629232197511019797540334461830100333697879398712807452221904928374972989647144587301062286808038407746589608600796493163828567504416655906555603566689539406128939578887275603256686216124619763629025562243446726845566568014003458350194256504081027211989383452577695632718036502905027518777409428052303777440293305747038360835389443423917472525802175503225711114679413245613851523120370744699235734783890240147475297613830365169767799878701129262588097366940898724381930136463131446470839694469369901153310277598420175047597422820942645950392150581886524831978932506077000566964972643425034493863990115382558992565929395778679466372268029853199114703196147783651943022089685167423266362846091155096669426648681444368973785701671089955985932364526921327153853147540679408802963465161810789624085058779015691418934163198315101568192901800344948644547245704057651613942154734507151736629674287478864222454988478213646171446595642224368072604153998159036093055025496700322402139309959116843044792674186479960476135767438327105188244862223257946167998668767809844242270526666991240815092906152255891567683550810284222301936172461998462723159742982623713142769467006192470683568049761926603530596052840352677717375887010865412562612226572211818715481764085235717085991232549882530589721554928686769195333945331719446135628956754609481709948126908797129628417687404981204500583004139464682823982823704650998210892510582579420019953619978893731610331477906717136066138228461452749477195521594063519513063165912551720945162924293880664804263573899163828227165271693533147654247993089196368645749045233784598171365962405589862005746184501331186824169997160560708978273341064800039757237573162981664231557717530965039603260301260984064799076856119197822200030492089911877142594829388784674576272936009625067917236476787259321971559707891251548907451918647962999317657033870157847691743260139742702844927855610839142210609012440094442358191045091019887764025584953485237496329781985273689831268761187799501711999616126786583020950665720205831282556350189527615873052137454609917121653176344316424390190726112266601431205573126917664258023584773799551285875190286476846186080520268910303005610095542588725969985209323180377294242492020050297050171435562493251823748907371746580038345256527472660745969608252773973501934756744349348654014548494776719874889343617127517506245254001877488580109524864715091766154586778027473266568956503136554756679065110112352572021556373825327502677475228912476174253623078983266670166735565495699506701671797357482747452697179822689010258412022322944165994420941343550585916383259489964653230197801752148728646180656610054341117568444538519719258768441628470167219527882619078608665530438118283884379154976153175618057306045703320294647388339003060154799030889496881497778782952370543117178798906617057895445141646867734731763262845557689131553849970765084917176133575788945908663395301321384338392509997392204789284448143806774044295289819876106133692605455599912310144114433366060680676418922929337691852549461834528276549843740468831417313874736446068936676508619453992517807297973491681152176504366487061745175601638764983162194129909964644237150486479309897285468943272960701121807627353300607832002665693370212040297259426295269373930083312735978455032511836229613086369600567228506463435584141636581270569505268971308686315451456652469452333717639755687181447131805522726838626416799504044175235326445999992643319067191997588233749063656156252507563510827298998208160225023210820321139996335496171620878123029148791318182486002005120615466803266617730113760716526393815793609837952210674404952358780499746712560147957479626342248782809885841163803573104857598763672830506336767812691390747555580802731275734928275439245865144222675434701375986475769841874416711187325075953120873345452093207923253956222257608311871833537999322010285975717933125845269792431765874258775570578455704119995333091130593204891050660997233519391680868411239473752860686051006177064131598417759989650534448753281782561775031589086210392197945304117329046105712527058032402325666903653177269701570445218053421548104047466383445871506201324771163284211860963617888191280687997837668643617036336723639283801882297818844067161871802668717718240361992519526399975607459005406267984347839174297456311078242269158887705573362627351616953574363973002161869369419719493840357059410168101515211296173547969144094715344376065430240683231036605617119861166272287090131264715039524383736033149712401399341918114568775891567117290965887589844056741912321377141230103831807557858953077401219032038249674882321285046668138357664223260905612355626470390889447085875134252450145926859669765356437378551077330934411459869214440218624799555999753964885258402217954717812084929137609157305971160392346999504791486240589917285892696249221736607668793373429230624170117819574928122411582029713768353989237408429131593390243403365146310251392276226396320559268445400308281196888515140485990150873675116886425789288849371756302153047636088925352392791217528054902424748615218184540235379301749389725930657744015044898506164159939523050711843495149429040592619199795790747686570467592552894742722700437926711101182448168578487704746595302870497181577435687236220098282894822137208995912179421900958450745974378537668418258689442258784900666458932652463543559715754494264262818813811596783878300408826821304231514122385401589569943374003441001799505923853428690447118274133697896738397132197491394401416652724522918148052460589765076452223295517620981689725336912951295190188950737365328703850875282774435514019371952880688248086587618118033058320669711911215133405760189854141269785678608819595495993019587185720469057431925728062598930030430333765571109148254127200169499084799130998694680523742789891779262467970817568908949937092110826135883727390867566873558296714856323333687795593306343937334515352151514475960474277050646490086100235049192237719251086318492318292147049358318068223806097713813350949622667599988282799451902991131575237443447945332681770796064778926070198364544259767192155789061404665745706128624963584626499093221924852103920874660448960258413589716196469814076292704810493499601570477710693123443376989761597182861705560463525341165946092002642081335541972359184434768672637649372372081928153904968777901034238511509643238191933896921541982613963233849528172341648630607575229186392728441592619137610508680098384131737729195880568909323263409165151208939002989204533434953567292465252066688243971793610769717615234314549207814240766103575065132685030383233488866150550098695133663205192384184036925973273558639383872702796827542999897518915261262905547966428161210143764468695624698079789274515071592824233036995312026983459027803889612848879106903586460692850701507276609988941135259305189690924623901594878659321111466529689857106274186798317499873681931625514974391483548388320532766996038570441398786491964260745104519870723998576843571560303273874791608682269578412702467192966676254714457643613523911866155182953848006488895322269760383692605513832296174295727843498085364231790050022225309182558502342810669671340229480698210343498242397298514642736701829764742933289267703542633001664231185717725004059946099153714347675743858109098993608318233315443916841507671935552123845358636645714685989661746412352977514112444358346679121134999736450712040189633915541337453314961378212290764454836291911721317660559818840681316024359320335934890985692288605180371891169283649231556296463619158345722737648093663025245346660116912203206609823445236843177312986571150313516535550394582185388973254242211090441320481019522354303682329654214075729846463235429684490832167752396503486851185203849268815050660465114198320091531019491710138787230389155696568350541730997069726402271708213942719647110928636440335589808274421203689516643964623778735209969850362495379193301206448517003854695524024777289077461989322354855561507131353889402649218916671850795899712738239134521593540689885835795959288487412129580581843367157592117470147019566969064751282910887162265734445114800455782942070095781201837112874662342800402916058143976632405331622237542226228789581275645131104718700624115523272089748501921586291922711150408420761876297646532136597999406830664620109451876992107029721081946649471682218456956518327834393534488247947797145239454712652459563956698431196283791326444136850838685826996329406787618037723008675919527684167455185343139716354532295129347661899341985112262591685413719043904883109439489375905355060908157377001304668850214927805429608139944354549820618158365740370508556949993103250302467958221176665670169419804544044172238476569640119547097362870586346087869991147446018435576091462927291099850486835964205429921220279413257602451827519602635735208116973208722155797473317318442213977626932364813847807416766521219566120328899508192725110180134119329209301130871369932595392139958430317328435189430843211491107317989612206455556400490823711331566201638017730771134952575261570853500885765825476604394369236062118015909107999134398859176332656585549386708010688230624815586259314574855953660892946546708459342740665405185252598602417504619266005489517784159244658270723014843519125520608397333919101149909245752359327116434418408829172602609775585703116803021548172201854595261124678390376657710068083464358452305595269652519125919586861258661281755255920544891594426994302828579717454857963206205543112476468896106961295544267647105743385111552106714497247483938363381125243208165569714184316769474560360190178267246427423926169808834571463848586217716184763559575820499677595316010785933881750307580582946119500479725643476504763189220668332510868911187949442718045999699083641970872791587026911323272928236844411766450082341693468445909603936828583684625114150287083039372362769311081218735054128728056096600230719831438326911091212407728816795403639156853461352162462210995126950898234947012383390073357628547294762134847532544924931718778085394410819071390892591281097010358383977634895757336317803581600557784139155370554222595461197518875585231005225268641977314244136837388346040418958347712377054101538397279369695582045032085736805165282080393506328894282800602552442465841078173363285644296205944615564906025998133945705239687574063743839957470558150412657449750801131334130953633975459700436324556071852398565829103704583966207102852826927740952266123281608968403144845967565652112419154999501805838814711610514052820967056709435581573386514453920542043964301731001081696630394414616517568192750492528930540059801059276111912143181218767675312730821310073400033933757423783748349145917573006891948710990406706389870421044250767664811066727203273334968632206910216508078217043228017630028408757309209722793361541136533811268668317427988035257335827683171537094886550051489360404965331986072269045513770033682025988758117841955825510411691207955054135752627456457216880495998497020281321513074085696617997692432432608767883695117262443644551272337549592628234094024716717270972945590920118067701804047383729242209214006682190324254346209998197706968890340923771551820077388889881052761207286471359703237439993801616206632845036616458790948884704224820979365243482775887777553129673071503087227767878224071128867329460289708597165956119997683615440155295304239840788611927650491476396774087287933993545884739387579657118648084125641172606775266901509198277538219927990586971718851273523681802970680670837058837372232738742195486191317848740718336970012446478022245552918901755347795203331435770108552809679642422017154266370751511452763230446115250413592890658383191544757668710819514817452935598809225337735184770822810660721566637153377879682056893534799415932615899473818473329578389446372946836447845879193151381071618570982426269796656644482301519901593552797030099198113463602349106762830603818099542560344353922482077942839450296789253545849746405291190778840081833848194584966418926910811715832677758129379633230887331426424640710440689855533154146546001681500441529552616316587177609112944792303659713872233362058743651415649491700524053730982876698052844458491107532364009934174997343893307822064122823048710177638229844980137503736207845358981912026193919610943137124974956790154243277328054194940605774810240387604050663690582797771804880005427316619582709300027015141841598019020093864754228666144758690873448851879514221570155472774585370087512860370138944808770849841354115903359549279168953383524971613205217458175633412136150171761190641883656619285686663574644008409688509793765439340439403564714697490361330114062162437237259256613927078704863460905889025955659520860329336360967157628467174741216722682996555270899854093871996784575004197700787042794385444372268877738491520766944259685328272740179648038306744703909307078211808466721871173035303841537282938248335806958296949980594345151408248517521534317038038889256576383822464097512829673906809238491010338075256094935772171003706985426508686795556351606680278070905149245915627993216488203470386994083384843204314317810630075936198174725287941483087681099416639290775769440506091813717355233846231595717801847298138553267358026535187518932050006816947131819311670453143878759707255309697025562800638274821014908050946613661230745901758933984387774849974206747387740368682841746912113751790961508196860664185715855747303508717235821784714339851057646302765385744084549448782707563515639242726163714440156408098867777054320320310971841093312672716194770877873440699840027492405456014468802922497459751856755651739638651485679537897076308771756958820044796986082805033219548468579424858860944826676951473450338639150166901198827845062966239006163458584736587950269637120692238420345281447491388539464913817576379417512170842770175559665049433038633926236120437665503421562913125272480716685338182267427632785946129313681458913294081720382088771776232583377613552595904725669764104635476346366768680073326601680610356065343129774258876226049089093376523086695303837566500402512734930702462122381275339718615077376559341432652894223820144145439116141168316781509767910713506313026339807022949180200181349558260874327200087826749613251502747506993226166898748848991805424345231009873859274343900658922396578267810586614154681137760671246978952921314609543598109124558528693912811493013598558466959436973948672231410415529581176955760090770009659855723398659842316197150492228221409697130588769866095521631953224655486228310120102636928198652062962870839905753610252328134500767609606417142884145423247098880166285174706838012572634803568587659749030645160472796387923477699306314366012734494169164987640293057665171858722480805790653547796952510323984001559618194346485514311359027175659711728360946328850355467477391609066874311687613105195771749873416043834300453215307527202232246067059169281186065297806208735514013596994522631960396646693076817448186244671580666470619313076182055111549809028457140880623371596799325183911355934463817050275628383793473803172256019748501921354372628191708845358937938427250928456674368135242174825877202642354394878928198702229987527941593757507039699609384595842556808456929997888529940566648824083808549165480441477460509919691650408896556213917391647486647153349406177094838765468169139443933741381562469577460547139414852404927276714022006273355870498923093253749412240864068255588904031480985752772462809354303698476938030876103569351104716389275804949837938153419387926489481089040958142744701995740984009119077246602744636642704985117517943327148873879546634620603631786029446262306144167546295023397482692759591191928687769286759984489525996493105309711141045980910558346352791884595067479276591976740116743565478283029060583904004728106703556088051632392526839948991146296142651343697902559784798724796149288908159853658510188547173202179137220429901327312558538594717352082604156896851229315272355870483328985524445131590799849705806597648735977735393486127961594750761833503137412977118907282546030656779175722549785514478353202710119768474233772644526724995448978990976969039768886014527427527483192867048557185077271215661922304590910016560839252092993485950188003439890290706662401994419046377547129301472784271464363580549501913652941933733404303375892399733085052264830038690013884647123173960210068917694648687132437487554222480219950215516375901170272428059097655002256605290644433097256067738990626857883744576179131685930038375759169110397791323617519977661319379763212154447038671533640335624508634177728827960624556661665370824351124723496607193214248299495242860435110405541654024673547272054101307733434069544406966568086957611405862781273359831103929138481319120562407330938715693535901017392572464055863256060727857097973548090693205278389373364116822724896464086365432020298634423381622209262840330871674739127723961840141531502065678116315714548365802853188836107368407817921086897257363147470888209319841418531028371571911529180200758587285268238270236299990034244330862739837583111658538548054580052073373699920029838310801952195690867094601791589813873554511595203614511025533721980264741378797094582966766368654908182282622392598962654759436880870498534187127138478517735869480671135600546826634699216062128354704289907146658346582253807241462218512137120511468313088498169556293825272978012562097445377850905645200560831422852782480674435645585005096332628580291667467058631432151826283538010681896706323640952809180967572895751614173276393049706986539939810601782053899260040875468861245525428271177886256150343017745408467231892095781338327285113696562987870918266667520505410336278645030547959891655624174902157340890219966117174591885444130240500809265880367049462459875708510193253726184431067475796388776513440341194116393953629947122364833021351095550371659778481742543265918947968700910142592793224891045965334897198638437091631749956911107538967077855756922862226689594677295524855490817857919864623646219173438450287190190788382860279075403387501088367520932820473911284573430740795048280246179423348579138302642081303678785496186514824027915821904873853797555256986319194723720317282888956221465278469365312343172982944716449766172071866860432375708293829468618326883739919584874154484041481491626857325312512129850523867876349018761824198378583009724245132477741236013866278148951596990962278327962194825586737425986441391269763153567178289603028295576831419870274852419766519033623364205755588750171011817603969834281882934082930576833255444373142979338335494958618471278929960557265796397558777042401726197270341328885257232588569770090196786995562552213929399660134583756519508843740148842634919332963565471216575519106565077537410522528957420874929268170278407785653749174866894916447349770612431088997332424460917869878273409644624857832995123324588664414147842663925777907417154118952389560443267037796383046770012926766204371967374656248518322441043819153778865283773502082866357418095215341175289974595504025376919292649993618854261298561250990070078526751729005631268989308211507279652798390822123417410647919200408097502258897628577059298053067501859611782660431972029321069552486862349075477021301243293656658140860964538125799726886949409880304234290464972458745431760769489625953591329257822278724709648358872733549575681805154639276896794200947084205503389799786542525539895373568937809376986073023001541591486209275589463101586042057215363304519213171678122135910278192174873611690054109174523540358144042304583768663913585027385065731402239662280822772223803673829586225049225741480194430526616894431266089636897462189676044745316361450902603928436720999454734245100912820562646864641496403123131045429177604737744965585813447979698980785320567913901233547173731896065672225227212528365282153447982981927423778683267240429339794682413622364177965873470998523747489418808777619235907662770246143825240093470451772193326685106322801976648464034752188048873299393288396837400615333087143590093347753007175790675126026698131395977792414109160982579064901590976387279703883334990207085224358518380193806963345679394752103146250172626649823345604644564753104233668178059235768794643500847069136705615162804000127461766782399076809264907264436623363287342900235459071150353292358278309705341628286583141253238933723007213831450480563267252512350938287689510840194219002059501784698181507836494942134038100932156438773608119203356317688458965716983827811307619947797489528712637794572727642587477548517718719822164872244691373945735286581970840388791008077736468413291166900422867134998036066119236048469397775126817298362583825770132305245023862716949183666884975244926499340662996179278786877943819177423104587228568405035965552191102105106944120824460250757852229085766693125536804374101462132611034343867733728902104986151201727797958733568437274214863392513569222582849856112482414533055537697701424636964931100169472251675562286935277590336322090935976494783027405038884398763098074591504885977093550638515237709062824116860257572424700254547145796590170742445468432784920819099487911863067983936251490244184979230080791965321990982546339829084256945016365799716651241846357910336402483809411937684757844769063057061524919163189411217916266842878701964761562136728866384252148789569797657397824256739134476436503557567664944447080470162970662474627032294085096509921976867606688795319131577393651914414736756463649921718354657702262113472058090540116706805589675731360354352284463090371868853419844332147572851383849534260200409065441051423198757047607696369777165811036528652812591525958793059827956353605271854471502219180187404468920155348776801012876765733740235461176408675586539055391328275708460223113519786288129074836448442106325258532315845905480205549473334876058688405455195717480912462608777897079940142162341664759729287283096883953527757007573357520074962485223872150225258720842044578805428529619438273821015925704380503595909284163896107791849955199650522176840251251301624160631330071893767444995223516126502856032674019984834484501017822795403249001110142714788558810256725115367602561893616803684246667472532842869796900582173236769793038755492005077560712218745774089816254456254166928050117790231202265013390152084256432042802005888961597135479170352958951005423470596672248463411537297549335612316746244635247514785932095375224896679417945672558382501103018333215483721716524725598968036365930684003022902519356652110629734189561997216170262361946637170244475906537165163405872888708132599174222412688101312056986907753609361433742350826487941000281441801516184945379547507201277732215277931891211859184597595840208735138139775059425648516490596423425324839540196312875200939301092931219648094673148774388886654628295155371048589975374396394583970547995469182183024974644121526648978928680332886504455929761966335820038766025707631664051949551602642117723737419630926933776530810077866151662311460304956622349042726321975310751373694624210224153313845148977205840643912223012121028046919916762626058528275806935721328390855498138421812647013035248794830215864640991260021421467704639781701615223243601384643829618840160789373240955626153232661874700421777465082184772098617743152258173381492601175213883147307898241113387540531881863665072723249859453958539477324459654220477156740793151170467708197718063745986568997815391078604388360714607722875107003462418727687645993139948147932851522764100840630770029010268392396572364470159848506688702060320522572133795880103394620991730425088836303797274845304973319819964279810240706893553748777841213320372434288537462865357271426064240004805247050795150849998126266312767308168231464254414661078374770321366560500485566702923692933334346782726014783551063100030928625002979655245887869877497583230299234537448627849392465502286300838246955205438205133543924059104944904702958103039949819161176884958052461388944541716300606575147919019711672442032743655565131769999053776430958367442412830296082309617054236377924613007608034872805212200739190207888048300665022339065232673901447869179089490171693407619708972356656489158528339348357099825917874899325874814470012580236084657682482550768537898574378243831415300313581700269016741968452221061569739829405226938380964857100037099896961666405049439714940280810013744205356270880760058802553340849294628290775537192284012334936578897496736582742160947453326713334069773784342356060843522813453239670249192548950119453611717288751051044812810495925075020616489985932407850786748759993445528501533213705341544423510528788466003426376575325438323904115680725041627677671677284628036660529349847595962517964855498118917858888737541305283735904128640395017047997272843920279503180071786639266191841586958461436814445523847594977945149161370911153829953395041482231142475744868171561990662608334739010832922389673698402138018345958478842747656974233922726221209170520223116228686492101159798773811732544234801165613891686766968265195417783907076410530356511305136220313098997531168499744776950753806606751784258966210097666042294132658899521925251650493678268673451839840059108404509143034180922640137687560527408899173114691724765014244045360502584954697593818394739289140640287063923795082921746104479234442009451172388255812219105541920570294770861611285141287774766382564944721490919836624287252667613105058182917225679392010698336618981177593170346927613416019191280132127580760966174227857896560646514845600832003160332262146180485199168552495016681300273104171567972769247883831997379195283348527007052562852986106360090676909287185746386860188162918345716147263191369415674085654415266019268178900737185908411239172217105584098781512261243005085375093183546600700581912113415251644148606737830853713400033842020147421740101108782379874044453853746325956402923571388801182582395970652551307260898118129702765050058329261215964735569557041292398941610828651468480733948288921711937867846136287424398474090241875271846343490858138983954907075096092043301947060104559382111376343283526722960873888222047418276018919628884097937222824250193704471297130479179832490380578498627696133751082840708325841859013242561026074254579074147413461390508005053734352188631205576634629597475315367008098899620762381847772661034474890518835237661990284906979189669940817982248526196637054269768894730391709248922593524694561419365797379183194641958249156393700520578954431492198839472826470078918983365690174871690945749512808580046683688546357945937043373007676167297786333622826480322629434479680524217491806935585017791874651586817494727318766035258128015003095659139673913889100324505641127043314239662186294844838308080789376401481279975894066495824956558325774330329602280319509714538417000799946290275461785467246651692063140538878010392483282717386686693080257025693716240691174146799243413321268077862985562421150308942896348236429775518676422245098611427820875030778579838508059965756112834866931433014690151765521118763616362939316519327949532109747759245613230892533632095950030146054318155707919725473549825564709177104395166846096765344905689922553805705701953812607263867069458327755394849442759254967879668349292465081731999086442978590180270638063522825644362056258843009173312507410110556810748179145507835023537640381974554097013225987222264347834944245569439399086707907550839104509728742386003672190786206363796501510568144687231349384348984406052874685558810678556869757308096699218109299141135534601566265131339625691035011257728566080933508883177006521277904998492142744604327719753660050301756234658813943206990844442541265065184916199413970614956462613123974165972823205488964731716482241802896147345729635507371448907735442034296982753663211661282789297573391916445841363073294641302175861117032273001752306867370119423003576787305607280412951577158471179160120070347779164307066195792966538216887857371145381977325846501960391093445372666200158782569183627494386062906310776873413971079903521482485848016175764896689210164235714353265898576578802806326998401700346828841921731913313208921103172304576525754246093275617470636656002929564933927393726393188946080447642380048653789383283693180187366994062318065890780537133667666801268933949693093454078708909223684619217624635682684510562862206624024891823171800462338527886001075680189097717953363849376790265177386515343662909119972725339065070545800546692069344991344029613557099618471180759614319169137264374064561829778415872321271720676958372222745984682065393623210939732508519000974205887793069519184767791820287418237206265928671810714567010114079435170972544369842656742572093581699593270260300516453475239369654881307854945480805445632547519524216198646670476097040689768761536721063437627293688071345319608237229707935250616732931766229338711268669686609349830877940465747918157936497823462758610331887778975306961098025902617944893329316774768815234545683695155996614070589078517277430233971671152669555166668330522165672458238294805158307974834022862668406527117383719334101076053141444276997774224768514376205364508382560700193878727388165234362337576605369125352477593535327712480343683227228700185966976405639604727250863860418911939655962208876789123084611013075634766579591801082175430067977647251389643499435691619073284596653163013174711281333868650243204013004924425790705144811883656478409167283032886401356564419920463953364070354430793582121499999885295838339993552712074044604660327884991882995853920550377679519167640842364952022856487955240163790059346924108607329170045142926339109294627598599983449957922801707322758282337153595965727944813572876988203829568837910167979858619444935993262705670931035980393242871072352837747280659344581241499357465173800350268659508182037398219035639875584286756917585883882090813538190120629074431088935159095515507925206644260538692509018853588871274373726842187250681239503639422457330396981942559661913794787674785626700965512983966120514670891240285775810688844729971866144413649917336801336652641163919742196396236044496312193699290379457457225470400690011278940029166919012950885813840107708235987229086971926254544415509466869386685337802514185212043587954187469347615251969539053559226940036612046479805441408495366567811060509988938367639230304203830623372922622157288115783367049473737455984665190816474697438617117297509883398117339296603220219017878402431441319277483102506414937350111913601342330978869835052654164904166829176190432913372130417489358666704740921695190882049118261124052587975754899112024159386759917583469079441654673570335840995635253600980312335158488455697453788896232879998074201626821519483481574922293635805676424086034227688083881319338303303905643501837591908343033470770187701566355227177317714738906098675439822079960573691559387485882649136287404385875917987412600578095471719355657053700445064795754715625959355737750490394503926912610391873491285949287484120814291190733955014572358148513623920131550258587269141464482746814223171949734622886060241733768650585353790936562811711133585256081560551003432605977892523561189411368748508474435029033737123529824231251163790641386457426112294289961149414970691791922548867693318712248201252233343196177250060506240417259819681645019807742927812049660312791560491865819377585833434489154205987232568551905019412004546649216678799718633043841319723571784343591301916059006485946005683803805045121201428295718950176563405600601680266830932209353028192332754406736502069534598454505217988191688189658526778502046779635243496466751776194711261684558312912594791969937291336721978366521289921336012627124773978864528056695059869253103574524118334848193180380238358676350138955502241710370146343664178995521157321422655152934921866418327860470109216950123905691306874579954375611638813740884868518205796078224173744821994463631888673574968067034565173245512720140826000787691754272423329609882697895994730383226584660111900690086127436827201959829032123467549863140725183759728486360473620380544214163161952438021644012382712356125183236788289425710537617039662080124177709308371293671803745065116401924044368047093689213825824982903343613301056434317312533102759121437917676870982746875631609814855149157186259319447365567978477171970617119816237280950799974451242677416013113155967172583981940186936739502173826986627905882306626638149403466384038060754220695216964252777647555221303391438205561485146486865047235415059553647983443554836037856014215684912918624476433293241476760781390355627493416458233138454258679915038933480517623285920334814193048513591803469296967180887932934249647431350541789260672156322413639906286124695701171314887283762381261796592893327558164027408331559059022527257303188836736869115026338311476642892677201138115849564697076099296565782800428162116534182577142463211612201903643342784920800132035575056025993074874601844817581926406178820693374337101349339950830120223674814621721945242225682404131866783840546693736777122698441870063321469832153769667933656457224401647841611672075368089155688898566817901820512038659431350278071531045407530738236422576537598798064001507154414695224036340005785359932440204174858941045957808016147404249942091359715584766141745053702265766305570963969213372024261808459602012834666094328298905263968353336158364128717502600703994974436468371503412992727218686494950249170121574184384668546948854301195872966470095568035756268404977667041865772687839672416895561610752668095537652658416844300589914932710337422468015293850483669977943324657155572322297458307828628130683256734427062034239915946115536660413926364159249302822802650236439510175098037948264974176755479040318071646460059416717485406193228849589545743031672589992892254517259310607834146695981608756812096794735686830773896228884315076222593656717282146347771603532575966332006632446963359468155811317716764103442748326381300559139508882133477146937303196737364345756990874617090298859955879865368799122352397466053540290610746587641199771752555776062625396026491159856866693067755313033468886403527545833947098748114297101657227536887403943258061545522665544762131782009256154127379736617511127235477142557768611540559852636841432357628490142340734837026399346959610262349927763754167368451740478779142868125979545429121898872230555523541053306413971506228611920016113934382757034692860221111809303828491052161727606625712525272465254251956520351016972531972671236658910931090826995394789491131316050162204294457657513093921316615842513082911853746352183032909092519566726485085456421110870159191361724200480923452768473958399769410150966606725253341328213842386882116478240503667952595628608385574601174908567913180487741761097385177504951410463228540850806940883515175415450268491527045451883231866358897067935883956817806920474421076276595582807160305712376445293143799832462006274353197920908376991546086908623278250023577982666643252512656724574550035241477007240020355171135554144002305003376218388611447418075139292109851665248757251721181726343042694014899841394513934788402726359605062000001983172326368933917571079557329751852314757323132821738727073320846712691465385464942626800031697479462748814523454422884683030238669577883916326078242855103917485864031686396406760277231951071502054728533234204864652915987245941261196092430285790993914319706076606588204834382020485553728095669050725496196665847478798958150897509089236831765582792232388534734266832359780735872590113527881667645893370751286572534312837035807261740158963999052602119916587562484334091174595840866856474637385561692946235355609190684087476683706706897720036809294752708843845096556345301636768933292533563715874747689181874987777284123321345497712919367825435242618652134670588295288683788742775688186879198988699966078448533181998434852640250749983260441818797387802514341605807856788486158383287626765707699745537637088680000603617484665887124507658426378089017233294186144289390811361680170339813498783460430001871428156284106142462797615167513507552703843464362345001208487785998859575034838326131951044581381120885221275944406130200504317763567460063171757750806227467539866141994499764982441048607087751752662674499261746952883972230239261274128802299084088165262131450647139438790331026929507935117727506311680763698623964221229862128105912584919190763385438664498153131846824546049709836573579388013733172159409553587220520914352618248963547865345510330458844901596781519956108231151457568936005626178135516077661252528461645321067700453486048816722250234836103612628734167352715850267918942543896529266262738590898213988741665707617052309706709449818159838704117508660730856720107517007881327269255728170089860724862308659458137858378154594322257511076525193869589761129829624525785315000640272900961546385654161864852529762904320593755987649181314571944624510334423803826564166559765532918654756806738757727992583490319106978606947972652503544699164738066470804996513873196127536044817789047617021143074688432148676758532782042765474156731547352973013437440800956649345244071151456851432040684605770092855284086884720368292414131350199260306655338603250595988122323388796514166242965101578476321929265394735278599902642963077628169536989840132370661496741780666297765545837677160799896418293441356884077088385572892340643528979216556739489010581986086367497230682573153099714877202578691738124384027444861775168986925618523844280342469476539977207664545138705281079096786534073671153981142246491269334793231876750355756094268460207892980331100501872452422435349285378640393636398556784595518966609431968361646191926496590830879394058183954320500381381847061381780262097924108496402919245950891292653410588519585286759407361062218136651887255365006089539175390502554020106149074138718816234363033294364559365035948482243288644648054934246763968821636505977759989274117438712021381073308836161318975202554678084263405234973689001691106165714113268702931328955243093049603082149643231253916680306571676261248134935785329063979386918591104322534471358256561524686930869199082030894594544930205217106774391476074056267452350692438211177253768523260210292522960135258884150488996520224399305569926633510458125095121133002589275901838476308119251341937379244255489780959352926303062690707244059459151194127801423610055422233290796574256185968125411374102898790443895511124367926779463760256571929340137229147672677412421729375252715761486109720621227397971587149155846254203088620229282206536537410519666035616799130983630652083075924678916214230527020663243961510768318346460249655323395024764272843868576081896283641163096686955343077606517166436176892009580631928411627282558519861897348697352984167545098250592180757307454795999661876770361290756137766023691212505253041052077758683248013828366780930508646373118441057791689498203771800665069019678787612986604042999949549587098059306997846909065487443152714442101755986761633734736209155404973336709080745652824392101159100614171898327623785531520270532312489799206599278753151296750743358914904294559234229501079207422085395162234388685168217666377468004076838786141168185984981572215869573293169188149130008920992302081417495763813511566899981508772397225093573316757585018273579199053616974975718073225479916559712464654750295623766452531680982316203110722437032321443047142211239837177199429334747303972714313323708036872038618599919020637625771660525233999363478085001242978619006561014656645564499394763142051785058163716922318352281297964720360832838874787432308375442535156900256664419285731940879979703487486673147244386892356017184019579660508055572236235460259509710457870282716188406674006146584203602489166138060532482014376690892294273859133334192931420898614089985910313661193844116806084264498543132358706362566443275362689559446572333244066183083029341286684954494403373271563776379441008504253051434977026089417123878344240467912020014328142644655132246654029002293583097208093234925226849986226401559835204795554027479267542222121650682523068340083590606313037820007441127418008300363875611437202361454604519007376661922861236963154144516401227001870667628082892833646459629783950838099477779123073454868597449148874298094304597596031714243331061153770431861828819907053759387160218148043970293039611918795372307896334701611357704838023117558090188024263164852468923617734896166854852703038156790680463954391940931974363345823037679240814875005207860592041647717363780562849458170750400610754420659450762885603928159299430494280524208051234101346149056509606353338831888790122708779158028583468979238958320701516021748686102131968763871586473950249479597046322061311671913016869223835268416192083666389566946395445076251470535251586818056092346884499102356587354030562274865304625677519132325606146911268934504355027601933963048051675121779523488523143930858760896662800434008102995839334547783691593992630928809360650300187082711517435680579033631546013391292686871801591034988924680112249400454816647310869875904076925523291020300878089067026528625569001963900012859050605058928638388243672306087551397106982833133078903496777617808963940227041487798414452706908821561150188546005114452123022326468998544626744275422094170181052637828619100555726959291936610397315782546501898448479625914591942700555921876111611535494105487461808733632248398336725394731167899217215851195873697380179438461877504976762420276790652234459561247987011370427051644252518661098512131937247942770677347459677941103954934724135387740174120557606852481046106770919266788774835829956982811234536876815075847950175343459965014055378928137950789360441716451735140688569587440053603391532188760670410277868045173445879603777838930092962106435115490848689110560984574475527044987253028285944671315734859828155591599980827734062245152378470613081539078643967697363578008907814210216294555630057374850271678566937346962402225512385596403432706383725929690134256754090656574173751606038592785351709706754981456868754853939988474196726918067053096398346839434207730621694915612859870286424769785089181570667608073797623197417448512847420365093825052379286708390782810181388681133794902877765273324391540083903232518948282085790808930472156063628619026959020243677727500703248365435366044940247454899066782536101635566058819101075734479905042800072813259098217728801261006325340769139582714270974345963327698642703047509688064806566763980068968935198675063684215591644160273512212971341000099351285307192520373535826620933131598312390389784161417852691654693630513899324163045759165091185231685558743411276668988245951522608868013657969685402249957180899619545331460053022399299034810227993629743010933437658137929914731265088707802914020809488224720603229807684549131095381857238248169634647440832331567839777053407577205919749355101556514435845415157607312520399641242783627056208048103597028385059638339059833334598614864868397840852740474767898974324339004437553682053539596498485379017299271080221145708114138082424553813084489633317851300446314601763642328645528668475767219786028440833038334252461649500651452936799036871551389267108014819260834037465651233891032498952859235162392986332425435519941432949194401760347225008052141029333421427769569440670750766541930006092694129684319768258585974895989332825856318904262117580349730692060172085785725228413008974906715751881295845117621105358469609160067147807604292531496647985829235893863318333325561490483778209150083845285343058452920755668785698328393205545664605029049058818195418884898548468091278249514413378371063459681878014845559583700284741149990854624160465544335344405041992740583626540701621619383470422851916276022104996477157858985431313415847593065739724414785561983062996808979443997941120217351857788414116314125321329048224218957604948632892724863884733075475815130739618666068531002114754500595404770965968594801775452777150906680958673734230360238426885196747451858239561930617561718356660538412162797290205872203822169620107818722033370857641815637770832834414132572456297752815296157504436018626807622447400900206257136202439598123912535013179127040827316811202343832263838973031154919199974157817531250118009893206919488561328420261661648629391011944538468655375242929069363761642024414262165870369419404738256619597936400524784184019387663589760086529112846697171910550698744376217338449161118313128966303525596318337616075812038893112745825505274241910862593013360322246013863491610013933847038549678617150908757090455425433297789075150555820649993706111635208197640456683559957750079646503575406751922609854936358778654921059982307418850689598609853924913618579213659641913019154282430548858566864893966077815873916775256192291357600277309554945253269104026887552434231601162634982056863569977116462704791659670521119596784961017869535024410397647144401280099356298416068237021529763217167494018004273857706792390667984574887246718884925272887328628164271232521100605294445311024946338868191539604795864188753867305153566560697855290521758427527509386237673074716004418538905673165398162571388936007203945189308246789271025359792530953948732082506979897833034111621676354993636117794774982434454669346108488622749351168509072910891063541215784585694883318936355778456281073816796826322892864488649634354378612776831688018433966128299802112627057866501937499876020961149085528240789554388926928451170044368236355031655358700345084354125673491311490092400873141565687693278001942669074969733324340507858150896886303015330571263642584019845616662797755054712107187528923950683688484237663573576644878212440026658318973975264194173486638060636504739937585194868440629235950565845501959087832082829766151050221355106458987012504204137278668658391940307756108977316361780771757150112235383288581992721174000039457853744229694240999421776290344221801359406676666215884785852218389163389735047602298479020561856561549685412954477266285394476865492734336556475945488900281917186804281991121973755400620571141681070408130349515402448156419225125638060124847204824078564605339730892122634539237457112313239592287122647332991491207382179875199961189971195285451101858645957034507542693599736068980443282839825372197017589202062526870053943404829732291166649225631642852536548406427917624385103093550966674016950618971193099330467558744001422445955788351696267011759257502931166168630983965125625579553353839297252417375142601902012712264167406424610044245741105371904017192879388899786561995807831081273460187796186224944164049183103502298438892403649343899787494800798360010231826546745246683422608014106581312778348476233975485973125709352572706233397732190936736268236694991199948236656841851544039041517710767720754430398499907936688155226702572192593277089561791066958063193770742460400799428916588367691240649794244725920204166898865329298431718171465720783282125832035504305466359377072127801516168622148474872294190056314311442697961220766062048488738247431408506656188860055228463542171638976406779728580524333565796149426722555381687383472225450046855580143229805561859714722671987283043581761195278821417476596721587772290021731668901946033645628419253579404605516983158554666378811598830773820235496389619983210926628769079483696967949603596754920045386370228846497390544219227146439711543628987615212490126632511624339789458915792284371946047045900247271242012499737761040410682879811807559213459620934834859238432091719597333808628374340115320647237685315252051820998703314886499106459533029354589526005164759215657868078762775238628297115162918736948504311247486838000034655083665987280099979356459700509269332236841065103978216886328915015337342085888067912913637533138469384194404643972056460266350688446025034722830930373908135548705869927275179789359174979877790942183713275678488349898176313568378857651672323959560688907656367971483261725098460508473647606395614462090293628206214804135686030717687071700995470227698767858291993814076255665314101929448377237535426135421519334018517793695927348596679000591986958246375276611794015197810870554653628936679165538418246384468015562422153058899474114976415046782168987329314807686778397918464624343275566219700528738574446948044748528943487485267293732549287364997824041939895023573781129067775827170421448131870624739975854404962222751100155105040571775670082071296207752594228751060603799024514165475987578753292097156315808355455006332186197151206569883041963694156568480757605822686176126328745743950343035909262829483159737904832847535697956651190519795872443296284446749850291060257200558191786254508725595309678365490457225630008874787547959587074990453429562136877219090547698785199771359460078218388188319277629416707859721839573698561232058619325402687939626831751663372573147533666963705643844791237780266133658812028165326276327574609602740166802783553102379791697829281915721637415133313581545668445732105296323332993749314838154952018282848433569910324073027784165397150906573296627733442590511865871712142240395880244748269579175201225608581067563549493861637362991911183299324470532970648945457238611161748107070147464386304183428755386851528324787995376513865989346075253103463852746924569696209622130648570223756013973009430430214082413308660321606843782983610988971059020976208569932792809819024287114507419597473827102809581482706916779856523446329232539357906321503041009522120192010272123371977993874784458980987811901582851411118659761941461436271330085792332806922753558585409945034163779288000458839504358547690009958659234762422307049221043221154844994681519591016518163513376705687261345691012520548741983173295695909315901412049586332213501235072560010575285810802262933307554454530290875898140016990488566374924657910762707509847528418908212526376592804670802603606961903692742741615391702390213115300131367036002198042644513490247259440858039458185492493250519720460801035477010611671414468164301184672329169037624857532147498600301779332490126536150820149592219829727654369793387171706841041627114831729761675643528336457807973012680918418563258233293590883344654635661947489462667664541184186018970173259396834538123860616177210712454793970322721528759165272480790465301065400725218754622715484313842152726351605268354174194148579506806100271381242101865071693054843186331975710564411905619708753497964732490049047946979798712697399303448263077875267034807404716648405617969161122359327528653726002866317129529804971467133012972574073359564462218212394036941727532626657261657096386304512096450443681171695480739063948636735114103145608125608450089111676615222874834654507098576691051036112323314928369573109785465932041108232047853078101979347671960885246611562808294833378431630627997181822548284138026002532513442323852890924148837075845481429488458116070046753719665122115356776480366665417088734329733549674678736074787044388642880347033726408027856980729768880258525257623618472821077217634210315085990821809313292321288161718012539973424467382888051690473114374207274488570643538654578301072198246774044664472836909543638773574556821657209491184892657826911037791051286833683429505509010565327357777552010253581058439771129976142108558312797564845296737406393468620056555364616408581592336965646414615220432187722495536538747493924880933999069382199411086567483250751851559956334369524242543045395977198426020450656870097150432892214690147993666263267999698351707599435655554388850638472016336597189833294510972823971497430315095323428837027048775542575164126463895700835047405842246718215882220814817013515390766449578957087054183155948706512825541686246645787675292799570868014849946539558170231706793064803744953161615800501490067423474628721470065869972454896835634507468924045237141641351243506699745547241022776070266497353455751582662820667211625282408740620314593034779784825306440545906014303072415118067676990923498328828877558868750056228528355427278408730905415897450747898057558766023368452044788626694496816736739009064527353754255946563936978677097610984237864446117283720722756356235726862769430731203561234009527138894782337523916887688098051202704058936903064655887729708917299019352884912786720552476310684057563582748220866067655097901269982680715212230874600886581122020867539262429282619340909645644622737164172402317458928297950317385388550079511020639562546653863220215021510835538136497276132252832456219617240272000702277586058089976257824859589733112069744652189097578235457055410785644308559158840401807203120311096672101922564935153154248405776654265414015657112851140557203312556023828288086990143639879196834604084040475027484490705748352054898513110187329124821724306237973834402100654970934952382080209996499560439303932814586769752747596037044538372557194823771520432447613778737499158537179310071015405506415722138948194551024278021066447932608644523578975921191628705816402525639393554620477473848499345762696666733761559459179036935750855573116482115467767261805103958533549285152375942606566567945685301589795980167044700134617432066410518421700955882341401496492259876415252341785998661498800325230322366863652306915504406158108539407574298408154291695480934909836810627383693238302080921790707859270841608895329427049080072520621234672310885814721403454909134018610381731484168335960485907975654764125107231819836462638821224235418546542271440901340822156846627881632131205158486643506697102910043903315303529552638164591001190238662669562430063923241986011403409463640292695300251971191336784584285723996036968278297314677075415377691032533917639465557444967876757883111730256727395807044656354643709413455502488462919576821724651805964403852003208411119423978264044404120497314209711938353516107994674582853779168329206440378651522574215125490113900522791905653034887900096724346623207362836498513960826484775008026018221803074536665745533105307069924125311733441916071472590729239966637628783369941941514216904210611066203071588443316184619892654697655031414395401079724832874603564998086798149861182207169323994665716908088502168055049959083032669377535619742723940139156082061747999078368761305554020767542806352634837816183361406328582312456659141350607281632260552468168883519437375886802068024045375289992665801872972428161592289317145765927822350422769322914078251169848946333670868521608327305010063278783603087332369364403476060087528220889780747687676651116567362564476340980681624400120964241798540084011936023725308274693791909824346362182971543070246676631331179144218545013876064360929132767841048411384144205963780498003871649597560642919249338741395609493431014792147308305170429834345526259170180155470487103140931739563445821675592580963176149296778749436717456150048220582294984497095619032495365898756253412262335202630907239922419461384215188464476320371051889111967964702662370106930231434747358257772251389404964744354048604229496211931775861645764733366868530232235640898281642403853622414453149494446373228276693774107531673090416790569131409116506881413521473804929263514895940706334949878069952468756941025651426898991155886294277752805291915221111369067639545519352434291813100649116867234161476991412311909827270140919910576521683087027669067176343311932481163679027867255704864010269539471949189859169200830542489077337243056506818779172136417264300385608590492939600718820200036870129491016796721628192796081798675129904389394161112983895902246159942343543825338419486662377543859338094561865948014440236368683335074527151754393529117901626790600628073612564695188757000718315011806595248562908469665541428783204167844136412012965031427890083551891576692769492144553501211931208406672507177762591375796586991783498357138924261980154392522553675322935503122859984937360642807820789655779226365676865584277892066095793200001637767154847207943607225811541611572537167281231477190823037843266723551903805628789998076326501600503871344761359931481345202665883014179391841751624337287645100016860085454279363705780007153898714934196426694608136141759745676644914532719609454338568642541856461725079789894543141115710060803484321839169102961369402137598247742392420959641229499649191835448217496663097656231998603830056674143949924639800071242455163253231093454212756673934094318829884513273318385445610517945969779841074800714586671615652000530083578654270221185445003009031046724377857407203083236490915526771934269296105063073194065449900017143377415281425071321320992613115637660836630837909746769135817930517925045440473588012784484267126166011974559395684288296659242404832934366518999860433387889988469355244855058364167952702324787179797613686555338268313709212346769475242508095268844129401850088924828672158000473379179444250557810094868923704626199301728711362263110926548388912991586924756931862184475541038354068106518317128633882118411701837091064111298511805716683512137071144190243645814647540102654486629270800561557700614465334677232365817136876442385222413621528458713203135913877385324824845033882372947971023416555154351403290856602529738030802740962521826018354181432821395453713321892580095696903732083499304250403958649997689729686029676710819583718638811691404605034218089962860163487681346994969328162273595476748534810338196475792979353990457977098454958606253613222425467156337521526504791588556653870107865466899700200685371603092918213940921154198175153694899527840618069297261360251834529441972842118804368347121129240035669451973796011909309417409485404962569021020059470604053110740571454847955429194650640945938439882964117638552723020349384766742370286007358811378929900738200017468249235623439013181840066363596674615500516305788287609885561940819445567438923448804256916895244864571970645533279272763916778078812563523769672176278843686579382261400563323173250535685407846761709543575258646546762088172305238875577928529231974236054061619767606707904893493457382981331853238886459774139122489335874693150927098285204287425205199578326991209759738406266481544986201584840443469302188275878982488863482533314214982769087283484977455028282718200060657910488659066186359507065500780344588328866123288479914141423634202062505633455481119440579208606736881838584199713199586484619074281543250797153934771994609189069339539821582494564086749091832482109093419249319832560618529972161223063197725907630911809675978845111084373987616116364118272518693235491399394347403357389183442493225955646399065022983715311925396324679228032317221286285005898193881759827174854925990922607426905453442458676387793807323513954971207581435479823626930504265222559382178935305107979210307610483537116320417640617106857172312559237241856738765570102294779559402465502309364623416330862128306041344764659461409368152961218244855582317535448359675548091613076424949393166922736503490745753072739630978876161706740514581977679791182544228845863920939202414949801410297422472857432987823394509003548709678882046357699143526376763782150815888811899458925730648757754084000097903031150393998916206022564617108153903956395464037152274722197244459768717880909278209511234118748542453938133813768444566962366492183336940467780522611071827174567829437727589364373208920939855522201158814649159389858327494332317582271964247539817589238707002203695327965691331498743673037331609124156300633615326618579820618496135079213218308001072733827047698738435314023235272140876963587880916408443389790576803498300683269553768467633203454592313813297842704334580452956718281609571473169823469697945069644100354104067920679314240023804338533810887988421959040765718750543817440322109088437590530467229157356486802536354462076239878534162196645396541442734564725079627325608172228466371862291552631458472220776669115735566776733818424525338094399490994804353021678819315137000511601359592034238802181259833525156401925529651755375937822714184202959257347613711843704597935212519453378502575650997775777119157399161311539726298329154581477458014194688459139405967278875324561086975282040727396394729779888867971316776845315021667804612409797276676169219578906100439445990726379720847941370288112571819542871681180005472857193402954937883838424232687080916800730267997826899962327639601890432060976942969907174449767316743315818513670288841130611545340144801667999351997350991302674780744150800416477822957368699437401748276721598787903152313923530876286250244944801331874045766134657183822387283967813855303107393754279033161369784827399297231942419917423665471032076442853685785190886358424911498107555051816442434687317380850835311487146241841161992535953763957454346271221659529254423821646984137925130491799337850647520619717191119963636734135414181539973546877515811363463029647396958383408589426803895856118030207548547173966445552904031801612015827275183145014553627467318266246338696243015476561964799556303063957002150317445467188971017133773014223586902371880216409097210687965157807429299850201900149714153621099926873598661126761527358974311563898034293607031716201952010898084454244255633332566439571425852644410781145025767929638509256934966261504375282337754578095357570556072924187357247899713446000653996207558222220130627947631125093137263674937241949873058450319514661264254030607707068641866243357906944687900310806968778034926705675274973589767737983086463504142514873188140748700394684543954538858421325396926465952795697693327341268413904055569071351165387545594590743540792768055079529795979441229409485752365561148722193973805584353126447078629387562309605912200643550570722308052873397838844354271719216261037462543828607644221660715468606143343668240697949712251220046264411233424471825431625049065731733015489227926666462177304810940122337857873663177950430777171671113461661212012701945464515987306107861422225050522832503798169941436614084984485561041973337209681610898865828519162887236354941867583356034367945105097738649229822882539721253651020959355084519168277310185681728250915548533337178611223951139565085413548826084677529012457923018145595963769092002993375818610886337808003011880006972605172703185509489870897056769640440325996885266549577782872334584773375675200131070116454749450684919917580444407134712619157116563163212524565173314166560725634325484227414484601815036800614169670911017066233482151601995159879815301903180897033046383701682135431666824997337408609258304288225429415364836318479393861024974712348641931067483318369715451018019285601138371113868456773309531434116701499035275024335681023807576277477029054725047825443625510844951050541794185589694627965690477696318728978323957072627977563120536846475461054001458195657650716207473489049771676581371691250470362404537373487012931505362594664853254440761995377667742501319204933426400050929366195660462045061508886281266424473927729245644611927687383314674621138730734043119197125367949854530815322662491363958847544654738014745093549765115803144403739531318874831246703474789096760718596471717803524592813340592886406839182523487074274372142665072213278630841964533955132895618781313256722073147035973005339721797577778122172915774646246289912335966378417614168749424853844254112074602418910211925577352299279953474806584569767372459940550740228158089810228954740104569740043377946852783324963306194585132322198145026994401387262715289649760503718754187366624632042551167815944310382878961732847744193401312965162422203084574624819001054083278009875570287960371551630164052357765549805568477882803224523826192582276819178944508127495848192630410925146196879518495743796393965449547552508037913319222249484161177611083956235040099124281730580291653044631481851035752533816630121279773671842171849371672634733100051721123844606662798239878610068273954399899314407796301250545615650798092330260512057239180174557262651411237941136843204075747963299479224014207364365147442351209139911747062163717200212065043111402258163412043803306225999587787052353143910646720198567447573003993588972560150523567764207453252203889007753922909642210173415189208420994886249153617148587639845138457612215103706251660940611208280976127468463355989715953638213942869475776050710851260416354477693960672242464892841623048989391692855503509760343580909152609461914388402018138558239977480762158436034965702376967600232574128827896552440562068378676401562118645282698560600909589526601374547193051480745763422321715223075923284841121479925625321026129140815293979754497667542045239609411912381328960423076554411883819250629545340556507374361262010043502198280940875944045737455346704522160790617541029600853231280245505420249207763822077872600499664535311146869879802802049535858613365837675232755084903462985559628265568624542668757573419565550392564098059067620485939218222300448210859534628679135292280575753740651948715014221659866316601320219641239466484087920719982522263266660112331111764004538210732058565218465179702181706209392473483321828542445807673737107948274448383021408536489859153636686261834006075971795960736414216677038880807800188142494575117328765646468577790708357902435701369306443344978621748164487968546988619890549210779417665908277082228552726838041017785351726739238105981076637177589378718796955004159679037183468177551367924834938252325997023447145238676410584169314250054311031418220279292316504895861497116497831544371351841083813513840864069650276953802291814816692924622612639906748646397959873758161572642603270465353152800181763537848150622019411677843081253314200253093965925864867273887205151658591712484980627472444649403133330705273800934746895593160350260497098081330795484980650562673629586930376858921970388343680407098203167600067620170509455696578304961368498094535136375011553331384865724593427416132776856461294592046083902161654643415079175452030125966782538967400986753192326045331064033813181025601469528648063103166604345463957378800917348092719172441079557362526254119477294157329089723407083606243991904642243839857082229429536219115390686144311164297556308970403044246067308334942613871051826689771018765588436501338382603468359869396617456852032658630254703568366910146173495546355231570680666794374022108876204498899981446339322509238815730060861655504762468253339181911858223376811655616336799212938237068081787836738659545614059152333552176469177043501745267558790682411450188813806788320473389494998738143878809791688212030051017043742212715758199523658074539503532273098520622804161964209913866824364525850518175761749180302690088064259546039205495980491135052465893049965966437602434699004462542202324835937449051704982877155728027403180719612069530702678313201635029876493975770500755804867949888658412767482726885913572269514637578569923595968678058221472158061987846406780372654099421252182853374786033907469973675655150971029067486137614480356261500752475207991281107627112812978779693613354212053624297107897012036072232155552499839403493501611775918241376590094346734252715716229396095122088323863479660316602475395297020756291470508140052372795516249033599656167983694351369862441729923001825805874887282123094208470609834289174292589349738544911724231455403921455054825794053004111497077751630681439332807769251805831986107430554270976308683945432896926122016381132936614468609397318384852500021372900904723845596117548314443410332139471784278590285222615930099387366129860523732975305864858996302391546978119935112320661853215260105582457424158793601011820947948846988521207953086250494054888049525396544957360955850840547053794968863389166307159165440322299871486679702990247713630337954493395728515854976929007099538650991156476141077877314285298420689143023473769165668566370217801592399613988621754251350323575260548905404896623935779619951807481568730994252406335808899427669207968930532657281975646258517938154948227096844880586073172836869293017265635641123145414723690552121556571093592840755430441700403989759265636190002532067320616195681378014517713840255309449530384281710260805103158481033639514367051367410823324903392059503684249034582936747057156215729738008138365763035919755656847523462858837987030991084296905883632198744199152441085036762448064533517449247009581479309680370318444517743043850346978801460048672954562889430841567102717632922012286113920685657448037411170760315764192169540014365930868939746931273693542400030961310378520693533039519699870431672579787418483790869669238833201706891192536628097877701316247637445155724546991237398354775763170995910812897876102273733380111341968609771200731326954855259992098724844919110661523331797236327481247908148767806368524194182849939963900641373627371512537077183684374132946262533202739892800070999648011722538393043044524372073807594014088627524927547942004898931295790715344295758362570487068268575361701008201237279520608257839931104875920818403600172055929503301273982007875039485223109635158561080697904314579703057843556060934169899275266546076749749017317413082958732687092385618238158641878161488848697215263854615278205203791238741668523628562830645613482892338357618013345147978918545430564921289447997570782288985122567142654122769016918120290109636748607306711824835059234830900808928928291323327594193441674604654457454212886610668237965252922481319653840861566505511996742142149405627831521652796667376622704272043008342223841659313937152302116270315881189995900559890048668992268592011405181712646013468910666768357937189084344158239491268573080683297462631803345106940917831963217217965511408514598501631079085582658561880289717831548353299890930526036899088931107810795423731939797780543294010096384027310327096208503989411432720755463856949184785771603044705842337994308524594960446103639959066707679669064425881733901465340664503271123080207893438514433522116233116394772445506175422782100874668723159105805293220805859082023264171038109639731371220362201210477886207566079686365504875100411720014762656484602549491976724586323407328509078968386800943841033834469719171389930825184909670684790318947110076690671374797083408334105347877918112395684105715306082837811053679447781873276954570618493796921089715509081592933021084688566029669409812317664803164273347712839417044715707408818648193737208746378990046400108728902076106491235070826270201247514324428447543217387454945261451066757043529178654383475281132169887629457539717351238457003013606988045538598226333485620881625108362713652580265189478068491768222987455735788155655352139585263464306053855408754003898698272076515933300610760723079282207629389853224547708931447508471745541487193167519884109667281562908791500530010187824883444248536454251464639437985719650205969403953531885548892730658063650269689449839671669854970566731007566721756019801442045079775453631817803945217187723072282759359644750112504601982947992669582722489619082017877406753583123939900007787241619311042238378990867512610378447997830526092769538437900969960929607620182938181285305923804025420746638825731465408715110779227315914088088579815634937573099985344981398522007968764150087699859287502471025146848981790178885146557480137265132713529319419483902935973857510883040183752007152864826306072395707045105388512519662519405120023726544027251313396668389264964847663882623581126953147176867015641468819880589628691305292349044749225266543187012375268188938188073552922147419436868467372721359399278577429644070182397047036256366865717125615477345340627794131972876360065483937697845913474240904814063540417680281306750561118926463424766193106766333407029799768570508778582462636449089223334616148912906790594602465731999646017910547741887744460247626245343865647529536824896848056231704354914644057015859600093482737432132040570571851598491910162071990250774993349315651210366012594048087084745068983608097053052241668328942625783166873708284953628702303868511359000370079177817456353244345367326459713951510665689286469668623654527543146398999935831320008107532209090900322547931311191987261133045069310001033755578292820455102184600874329464033838962361383595210522666120641390866184358780633674200678169013651075169391814443613528863924202469903707632184342003238154208928886101062362039181163747049293907537473105936315236068671671043844182322179770621225596424604939555042039135034720137504235168969078473007938745445697720658371099867074779758057033976114101893487379009416468540153059866652955625424169302535257879271817397580211216248566029551948861085597906428361476340862559888471679470362764028181905222547880368583940922808569785568408306326194087965280612598867417906411509664412211287456291785443139612256862801470736892690779894782725005727591550207661489836780100362865789223894425688686532294885133191031916260728129891238996195836923987569864705652278108302438762722720775247765719652792659754222852745790064223690451442303542051539859750352928718091597638471053468478267160467115944898440199815346112247835331817521064220378462118872792168616343699496042791028841946240648728097800254626499798355399317541223767075285406795934325797659429628821115538568423180336831447111292881417358031848115027598698365177255569341290467414248170243805358758353329992814581098841273450602069074936819729410253282526393637572067027557892752878770256239897623228336763267502694785624129075174300359073618308542542055828036649709567738633223953036218280375169178246050132757866294788116765918615505086630035627689305402234245628519163353745692307187933709016581238578359495850867358710181249165128788529696940906845082484916232241679000990736667829325767357691113975220412635877250448839588814998119838355317298033010999519089870914988693934915987552351936671251701589751830540177867355915497647748592446128201122058810592371818989721395613995343880130321130351481638109854493661084609268409614641393945238908232119272264559911511853354770069110672956916440608318752528378548797622724468907350266684633718515591083360406761021569255870362608266253437668858679333078154403184499279011456730631122627830475073651949746559603460567927301546818515513152830809749057075444171728279355424697168069278846151724903383378413895980570425132944367105680798764229538414378953942580478028523563623414108621720049002339021418901887202317020130678624968094823615278847543425043204110820280163760119625338104851972564184722488026559795985717392877892668004150399004378641733276111531319040382096324726241336822274229194947313547240122288784400447839866628887289508980317606531642043788225406154610065900042871275636857513593785438363983561751978087042860984746955109807044526990590955990718541767753753981723507358012042677071618525906224843251708361633746748350904902871128290098035470818249986639564820557597168638530557780719308058874838579645230264318271300251408087763442628733457473548516776349641309905994827783044935215820336660340166287244510439351054057784096887467967043917907051952100820887346534820611462419294805683504163394568284940246624815393217391654708588595105407068661396277167683881363519940586123566152800218430888953272045010129949226753271854322676977300187985157634149355756141916143148583683520274819723393102583500683324355194377859961122164049011902822824255511431100396067296499325696921643501079146091759014597431740866422269342289486027294153689104633599678124484828445170356473563011471603572930218594031835426769193308829679117059535170004411765144550172935939459562041416267791321820780775677172696058315124576759529269602056530248694552788493510241367789506750166614906230393792614784290469534358644798215698715567939179969577643259410226674318975907784551245215682105880192141492513305021870597846082235512861047614674873015257808371762409617322163394402309409911905511959897285264649875870233694460699728972760948432327369423414882116155816433782350883759995546668852107529453549384448097139683111199490947942754518318830529449464894361210715238331647775988705197305634402907130017902824204885400030471045716435736536364016497268908109733210165360537241668569927691239493419221285121846365493024275590303980862303846208523317096334113888922525737617817403139623896514805529083059460148170037600438312192587121676298528117729902605856093691234523531712409808704849353192754918737074223338555748378760528178550641606890516691959554350200051091455451356442286476625806979769840007374737819128737927594196625959891598366746094581872048353192877716346629868189115977006452204622120253515384420888892859723047925027912719559399223467041557212031994864746179952885241654398601529147963286304603602687706322563880787353467143316415898240437169491644115914854557967307198467276966879088519879715553404617463980327913987511690963473215137041129497500401062800435637928220569536991194412279854492493965206202687059096297610915212368408102074039141343656473249749325964484386076512079905615189520839600855785565000485190341545194744636981762218611851964886796727543466020269771141702245726008094462843929778436861972035938762575317622451513934689202415559349955884570418040422074241147457513263658902363801202930771581313546465867382058855104741652987469652972231798762857919946845513554178861346348344728848487946851264427687962263193388883807124316435121505618284113204870133462744162277774686604250772674745402174004664789074269581308921953550701015955716968468969521089177920971989918178970333683234013345632382470433829167322552420587781488013753223576090572763798120340451531985622942782474966343544690051192799889443222071357062251935882866832481709727563264425620803116252359856219136180515020577152018237638859102277595587262829707022537765075354594501333052462882060252606177776667420123692170249793399873681048609627394975884997528986760563703450552545323513321117577263114435537540111582152025955780915933262589693377977967829105749588218017831951934541066200222493027751282444180663355919906086815736571907397863073487457144833438885564418685760760583912674211810734682115677037392611301721464606993884505973479268007634935942956822191809264172989693799573311471105694751737124207442927904957960222295173818416724544858205457600950485284065182979236543012410477111468950092265175621036067124967840827409359212676510025094339842338103811499019942259755053382352940945270324686691138992877921278744982171619135569937673795038072559190411537048271575676168754269207550135442803510024799777393619635989101780130498811603168587573495132407952502844633822326259674258718814837610230969815826196716972740450585791766945986754085200659817447334775724645346865356181864098732119707574433576405733555219230540089180191562995372703408731431041331937720373630139027337784100260213622230250285493385807662201645833084982215695598430432797966489967223246597603269131387215662896081326316249682952541169259739279157834796840792866421778301167231723800382290153756212738615769265448560667952779234035967757549532033072841301084524684743988208955908244129658132146296108526822493620066570984222037847970715258588516681054353264504870554143064400418749647220485854325371131090006270134137449715361839057177193548469998040650498142238190130928552605388566466889296848885231355441396789743393398937710145100716579662948027429645244730239702431621744065156611814485869176120416772235173390270628649878986649992135882432002167209615302802470859683006411791256960006102644351872195825967659426391059543901475567800106099413585297905029896489138799682541085342411072266396381737333385440350833246722522644958443686584477205780000827797214551743664297106379871255354991731313165743256483197273651577046499964682325655451595938540656155639089103553364098898989180843572951997783321506482510897050628819080633898852546665478430512307847457246340022755031097824170940816959881556486121917643920938486758287171222871314007915597925195675783544490971050895546143930210619901358199329117621805646403278772229042835254907183346448754907375029378752651225471126688429145090204108545742067079926501740068887879237335926818466854739511283093661750796605319051531535302042878725211024999263174684141374054585859706712105508274816253670957690445785007362576018608063049651644324393834366584972435791113361858656722893171515068501119340472894134510524963071992797816778348340094979954640861532540919943113034981352077400443419160392638793918896541947073405378287327940862816493032977365063192848616837852683746602664014731800932504541095881383548764886726373314123398597371122244044610832006304311171120523347475826668006559544190604330645225928041035212353592685529611688094177193803059420964268672148292862533996555884804058093122096951601979631760289237142612311224325985454373575051615924162801224987078873695443230539634837344785215102705307793913792582495614908667248301948501024505202144603832895557860639675242369371380351528201209062316344097130551499978855027987058582964503869487536368579614309557186027715354142372381179645859987474788018880439729555277251463040029088050267969220231204264889676643541360258238583126184548182807664312032288910302322400275361467485153428345143681011327814149470552887442998978834631572594532747821602408420234519887230339099517562351188210855089068534143422692754586273054009121368746966459339428710858217883440466811392506149291848742470082359529584522215452338970375785981067015303019452229029941202886579923576212888450967583136805954422049277437469597632018097629347779848993020749807489647505488411858882302824191979852734135250809818121150922747633965559736880735944161916376542749085999182894298386857898385952133944261313155820240486208542561671745805968827197285320634947888668546273197354874873648003133554437459101937155593695774935137422148863509870066640044279869361766337217981150236685005960350315900886739593071062796395019599537243612096617682164418388476949855334597703536865903903534312110844300339448518083940749715100879617715637068714562652871892961449019836435981453024278052684091976813161809448566008845410833471726773009590898349417618198551675447059496734494263991763000134209930465468298155320640491976424955816894359948798215800123528877895169151716626795085446163131860927068072568827058361630809887793111645649652692186988727519528269836394233784979993077677796730484997424350533505267036834246915425273667843101060900290312601480087257050266327132574425888071361141716514349308202463809206416222097498425103826316050925914669695498211718721708014875409452142648660943338288813758748265134156562226940646800980556181881696965661496631876550574869101376772165933724857462134636472975724633764812828000027362137417505472496120613914271874808780559533902668910833480976023386464678366663906467698158424063980024580178390663763816503023346598242261132851885232983328842439134126532573102823095579365908856559598695100741823879054506241302157337379447541390290315442318044379101910322888095159831840806285951791152672685873687436420516716991819205192409130479873684951881164193163804642991949595786918946461823720717724157121728968776944402968627063191835836845556237978088405218882514905300115471978322915263906755845116758881430928555336153655061125776944712229558370129355458015375589557567466094003400509226116678417980484163871422680176860785754610812188520528498662755820283075417856568929085657138202969861006269068976301074619067073889435357542359301954457828579306042805035474473506216398697516782561655998100434591802066738838774890452878782596111082926170405606329860363027209913655946687973955464447368358966769734732792057738073394576968829047412023303440816411193074953948921520650830412955178783742653183879067379381336801096816651279503606818986240031166660109203792646841428016457329406336235715467546735546814182068805355699150062337982649731064933124880118948975901376589457679633225390334196449538126174983061658302938252035976302403907079581930137240386220161244685298508408995311777282848619730130573486052585370923773995962735414180046202560011061780739380131158455155954122078300996982470829419270787743708211029415226583537323212619836165564610355739975696846496481320837409823888414172011627273217055898852052442781067664547249676957146997129163634627802232263392958558067831521321831923931297454430293557319175280564285462705694861734093445039575683023283942242584310673462616976706900228290692481547651986265130740849773003855162279449630842770107441820681180060331359360318254257645108258123509198674007477202665446596862797763485298749110263000611407783554900144864966449589607501286626295107269219967936617953194352629902976683862621609855721959630563569248250131992754212310154775015052518520721728310450243195234047155308949632138895439580452768429974372349646806312734022277525551059974982945347804661867671571341673402382165081886430951586606965192987574914553359409279880973691230672888946399781726186041701598408100048428414750728404456406662162446142686599581658813584375745090356966627289921444411170455093843475676382198476446312045994220754810337789229966674219565651302865711521442672515629717431812573537966403667935641475351651686094644697752280802362941994231602909481911883849174296686229056316018567368971183304083873017814512835188959029615674366863648475816609097406833249484963499403817292201681995498555481434447294798965323521051795399309533759819501609940900045994527097190958101562345724780308980100665901400313621742866172807093643856804968692633809936741525503617179709891033257854994887447862619251019337229586618803153291913906968834764828379997994916651826479574521247112218411155451904598719812124563076750321032186457533770186170756590454446066232821730612079285159378437044454855612563225672153956362177166772285720950053471275455669442094721806928605496221240938778491535991875190318577529246092390205107882469142378908285738815924903356384431010394210017590820075054984500506123350897688280575249700919651541273340590362846630975943424652056957806638849324498826440910763465761013219741925726924527239421147114765511208293005522236283418848164334094815241221955470230062572816509290042785220525600653130518053467360991164988635717897635317524904485770151396017350920366545658457703467991726296929300099093605053971798404039314973801821157939054620689465259656698020584437249054784631645155012790404799575872680588790568136598005399514500388072525337290531201263470118369447337427210313549842232759623524939163209190149559241336986984043063668774675632457418201307913334934912436738497021669149194522442374246425604055646213414439311931191777289267588980902621777969531180667259628182892045813946294024403188803848114843615325303442632546156838709675681200576189399188187124695886093336441478569595477161472284489303528997627882431660299716610545225548968624897900936893145427194009788991413590839092735427728319888571618837292098963745527944743743144924740998798815097393210529898932926426447420161815064398209424238753003836634927366944065108296034589136233620278434708949636779495095463889400903652356760648069714818683041735218819497824607884057093920360878137169796351784280191683066670497358524532908113534122402091082187120579322364177947192024631942199622982474051148564008579863713385304987086541349033948593765709332464603753645744774915224853732704330035862340300815412938692373526656813583644084252966845310805816257560531948000656393127977581085548608792008486066397958546791116403824547594642503400265926233828762498860480594073090364737970688317291631387874862789090817299850563548610663252297516907806296773519477849957966909423140185435863009805949701164128908509532062625167065844979934813759404732669356594749086943092481178334405436206492102760813092327098123883828931822281843527734165466103205030301844509924993049051167028275322866507871069734212664703145587998616515179546415575520903474863772926721379268772745843116894133863988098537685392763816842906238428804730865042344221839588370285735986952549091310748100662138486902053349976237347975494580590343176496052342410642401701974214668233693960258169444933649085491766937689174625555270668942532735115696212278475428929015733211625325090787308448599529270004913829867658966098331148768562322816407263628634676022152819907055792768390476430972207943895478028830795051680762569366321655140904867461944531860849941713453063182337514421440554816634241733273536836101924566352162740904105154847181758735605765139976999937813859022113775707572987322403040904623483131511085563244395740654290599534975827029799135761612224495299359057807255271400453769105656562295103773145400613679297193812159692080967138193779372902250945830005611441686519396827967629332826721379520279184342229799206100598930651631360835418745927334454625227727039269735966433323161269307184230200063229226149329625905756334360225714175654756934926029216226346371005796354446489133470897418844897877835588832352675001301095490851142262201910872578685170472650969425090254569855707605046348332795404923715391874595752760937973212289608217925269843548906233431809830577183051603263808574102082311641760461574124270733583714164364916011600186413564419356381348916764423614148907800133552153499975756527559496668698038404008202762780143108922493461678659182905777415235262936876228962842201492534152146091117546484513629022888426205301180064649975476662257976390198243851306279535230806112824530777121421899328313963211600651689619213092111414172916971620251539301004072744513599731228333299206924635173462080922041078742394965288065644144541779421267407106818207674479502666778325292904667701392620134441754305568998798812854352439334817796873283420052270317264994351797910155634676938777570318757701501018820256553667830422291991304078367071081238878672052350801596107094422482351971517390882041069205786435190903693436127015624769196455767890709005799228492084853813835472032827596236228393157933929522588165232860491192262565140584304600770978409162560588251061288433914026243926516050597433004792929254864335766669603833433472023090304550156333092376197036968844227711421161688522840620822866074969647831870821221604992307937106318572382210846724849728185718595615365918979234295277539238877533213660909869680598912199472018259963879698012092365974002297175859395211758271625352517670859625117579575550995010386109725528351221693040201762644578090433916958281233754969374996888495938883355998548166450805913533974443805175546223599071823240604499129529739455892466460271561135808069529790109125525962440125405582928142720078845878493187707735858876769454047562841444515846485658721589297940931327378110866232293700756933966747301570798044859661664429964784291997440535332242181053487202540052118988303433113429548926803049246501954067458049949927616539415985365614369241318211052462620146035474990813799329053483008565862342812540654246648445924274036803462102939539656532553174965175758930099428440396927383086985179356417435610862121967271277575443189035759521852912346586442695443690643744911639082250675970444812545782526474425606885822541556795086928874216786405979637971949003678682089324260764964507571442143615933587321007965075664680388271212075377215295214708905169618488095602692259625290107921068657609885466471071834777514422507824938318991758588067741717515630868322964312798534757677429260317327323405381227270012297508271608194778030056531347980594630585874693669753895668841517600363046922421307533150206483314695678865518059338394908705038315446251137406952273496739240014505395159228307576272820865373045530834731739420079710460845325571927836897093137014783649989995995215906527632224268248579786303381182588608513236938921061291615758243530728112846938199301647965879807624906141028302701992933269647819722817876044887602650549517889027800280326892677923596780076833851774892684459556590162313525042760435760322463090438384556098395079672796894073287416802675412289657139262603395029562924408878605093169485233759581440293375078413470495873587205208810047816657010042250515937031918887896147068360512349583712304487898233772944749280356453960769175981634895039070864869281942524616715976400822441102169470707372172926427979186838016703620554764876180866955488644490654249770763260115626321769063675136994193481828442735890368709144588708198442959613827962791459123370845500319499023191022461265399685924609615794817075858755099448099116052328412596238611704493240331449954327140498364740683312512634232511936897078079560596340881356679503902192084353895875094590223029878527333561605320893251057433572371802350838059538938466464812571268835131090375431214552739359721353244955362237022997052601758228599158606494795707104314803402239834702627775457338945669282410829934489755785879477162946114953854135589295815499200810129189261096863444488545295598178064423884635393491575491086502865765156145971267999655455842694406025098193687371408706593902586838033497680509865335574809877109459108815567139639356742370133653184146805480397543850854643654910356498073500357720012342324339025378559289543414663675256752266062720646347796563752867639755661251027989621423915937156347266873910803979926467740300256777283234051223009243738126083887133252053012410401816836607938127092508108739838892926507288581194627876532546090512515608035961814265228213476465244053477763178894348523741172337788551885485790815636650925681988747516244674161410291396619135246529836746460634735504747739768122099579659671021264656396041274966917682419167367815920207026264505934331296078056785943527329080019164917093464835654842087814294827939842799350114120097431410431721839318415172775206820519296329308937269709016454068346259029414301818130207525971743632642992249477597940269059412533467744913867356182868186879524566752446833516644439879604813720339127275226608172748222035069931134523810423834600841765481969466509332104991549850506794028157910914627422667507316588798012626338562933621766799903846966115613664560650481200793868884856298939975445694402786378818921901740241853503298710935838346849358600273240740459026699997790324358685359225118931797732354453189428617829268927547628578740036973146673766173978228352709709621684784608329200953346174476149622530084645279583977821512519300288059067192501852979403976812776048364043425803606762743694174239131377350245946724060226910406177857563214869932338996010521904720019627631554490323340082431003959002817027054102484426088567567775092641299228592474483305986435293189135657550141468625865995711761227075018469598606571737367772729200386140808973856907602559768472985482620506224901667704283051486638852749987958828236271234411719261955948982838503427231688436138383854414400591322712874888541773432583920181552895378210431490007816797319794892220570599610048149914359456547361601180862369298479190994353533240274026093065479149152096745289571272052075421489135777189597777130723200903440134860064560836952005784086333158733271531882458954618158499550835269556512798899181223130569421834108609620748159259075726148028357155906565054549410260554778011534727462785351447919327866865032612891416852003096705817873434997191329953387267118391658760926907057884380891909289037581063185317339314676579248868407868692649703925422533735171347902488363690420509794552940941862994054774516721673137070628582987062213584002474474437885014108268574817299302841760813070410297985257157857999764914624296349502049507167644467665872107332902744416545419342326498214659724600442454514471915585716032470805998764676807665762876058386860473726348898936682734369628964670592913029282425642015835330333405549764979692567491167638042556283482153286856643078068214623472873692223837647054333666498514495950771253605352930606167191893150261897019823260588840305524701238181818131643342052485905940737360764766190158122145756843988904043505850330268110460633667085169720586471382030477999137539891065675656264212598044676524640024639122397783564051865172754472439280512369139499437761145248663807485278199114506298734905016334294677597328732449347561230103644269946602432009752025899240281625165344129521046816296858008189932541248951623398635271749228833808255457115981721262373020499270384558150834762524939313850768155123519543267962663311201625972168194882068889398330234286854124929503433358324013467015615913197135103369473432423144265198301224800581713580451720014899998713743464243842759336542537068006712801844025111519037099977445878935618792868467248446683425045060460757366582000134587585986301605159945479960532371212890337352029860968964827214256700588069639827358763150052586680391305308112495370278033860062040554271149917102747389443930292522557706358245281274233833100763578345819446171666487211659847689025560330495663157525694179839319998683701169779863141302508070196875581150876143075059313815067434847665283545393503683032079860896554278076311986989395959676294819176897020225842050895216975054094645778658104008058958515136251453248301254079415967153996941198063640108906228242098113586219481460920258929912241240721546818717092008551756467465942164359676688192693968016991430452320931498671621005458582219373944370319026397622228826392933851500217981677229818028471518278912963090398408781891463700373374329579346556135120152322419822797530570233126551602037861288962365521145874612144119528557605942341592869996731122600914769087192772454825802924752818045002746508849780327762057749792355719076744341088142719141946135648389729690611966383845798622513191777075624877671942833950281971020145213898052084475014241303138827244001439923497846691888744172448252301511890654048795953031794774402234574134498807173245575629509134297861939926845414063580575233216212298967845106106631022565826237126835025006198904867654214334593858081741878524781745533936573591974420245184749118302385946165415168571716815562158551215592607936836594273543177734876081877944228823084935551196876026370730835672275962497928339450857192985101411394426390894489442705018146440885297382623395452195241923089623396085164473372060149563192038778272915655731582360580425610581727352103013614929328997671505409402295124931700618109185109837544488942249040439232993689311093158159643949828112459209404236667710556249394213235845412143010091196223388292047753329352343324724415055475186679726843957963987372261152966692124395890247833745742227212882944631634544140958067365992524896580811755235228245140437563184049947248604940001037717830500155261542375038314765283781565673159933158225648454351534889884905296200047847309506491100306713105677495745480810228165255932286184986799892121211782894830270775717970777741526073638697777192370014970516888879939883834842776953317263054621077651215087787406442612388087322075399929757247899906854149241809730507363278127820482627758697088209873112407880978183617790474317078078947863193411751085536662355718899357791308894757506282426004798794820123238007790092743944337356537139332557510234527011502597719356181520797553669619126451650571044419864129441258846805492901734286576740231156220849476289039079198331828934595901364186525293415624018118777721304726107888264899172921173025610281639800461929534075966711437875663365645287403511840226104656626944930612715345511289464554985245722372993098796475760134556073114440485522282606088586368377739603713008293840594230479173166297080256542986650312100675026720463202929858581741382303186701092000785946050770084335363046508214782380322453340610503656627230223732660774892893951518108558248332833775877559349757358005663629047952059508496607718867126741066998948701780592738893601166571489206292570008587108360925265528125508328709687313518268296523854562802869207131226043477976273816049290532322905752841504108478806641588265969171966470493855683992591302674537471221192002389190711042173149776522864200669960491005204651471496383554255575179233542513953751715762979593675444961842985763938047471294740697502994698885278292108644932399078378338129927166676750681283220863938059284617526994443838467339238503983649865807855621340246080676813568816724420872043960502105460325464537328489367061674160211710052268089974682144150289375766923095661366271093478409593809370238380741307143609831417179614992668082403020588878981829347670671652780416870777444085021381435270403508811629409366614172637634213420636260085011950174969433339966266432378032260434530613695879216872820959936162521717070526937423183591258520505252365757224294599745134714415506080368323124000148430475718612240960749139155115376469199809232571862245090719863458871818547985996532527715224226605298099734986664868087324794460262292836515875878623475516473794645286294679390274360525078795616716777674635899800166230384793814333357898563075645429988094620661497010438981937347611118822683596947324585860627434914232911280531882987545180620753481260887102942949642913650405644309885034422351028208422427157534510984886167600532218715572053671661808346192589100589976577810897139691093594576361509411821604276752795502323324228343679834090821158579377283732846166837769486087391488272153953019510601375702922373433064937233111428803535104860243647044485334167565066728613084396169540830376508728853164064208605946897423536400342747584383637079970913454480876677820538365353997523504851847245276818072221889989360517329890800696045611065975172004029563688775923901139052461192482607975557460508757329980772969936856084576940964419217223075120656690033277855292952937660870807341411861204481418101250688618136460113282149119064157008290240155017896887303495993709684592850969591448357255878466928358758104924613054483502099647352168773849788785257124248816063874716298418845965846165249469462620356673307066619062953617786531360507322758737495559273337100147199171574242541927912661433236322431911442723617419414073696761857553060749870056835961723666615502031890684974093539482720046423570876604606876901888782899090929667664615774424825199401340338724973379337083626677210236470140439041019049162774825089447928788962949971641388588823536681530533215651749899680024485390784738701565075854173475891276954808896270910520431546856884935451152967245826443092812187564788831474129875638318830542041231113448829326104207796823845242382281336582435021822963123221235467178335087535395970801510895879580758245263874629349592278800260621868094486241577427594029477580665126061696189691662100623715930962249937646445245505328044499570158658173064921764200701897937659039840046838324637168138778733907664956510067895372756065859879907788964535445558259630927773932812629899099020833673726638558247134816124162813045085441061238180005266473636409503999513408293319421436014506561622318100500414952627179882077280294491126463419293971332815941258738027121637265885597704595942186197390933544521016848713918006733808263506499755636452400001665532403996368942121269006689435250155316140081773235396352825330493386414168169493010073785807921656527042877523871056417816978860911378007021150316588308729123513132591574276036042604437291509894620158482481211882277420538815873684126633702264651847274077237098324033268939628478758359083658022201840218022756373623797093198640573998617405192005003912841074756688534229039501123329584053292091971780696507336861881112778115163172886095253314358920907300143970820653449917791629298539408152203003995790075844065587513030299328738739140898018492628455873596543221703835777161797317460682132470835460418233466779028384209973648797053328008913840912691589347291555603144175660484227538126873716807791729232497832612382148260499148493044048231331578380381090726747690092611723116334836391433855116955658178692814656870172118504147297265456582941640411214396753761614219025936557273958914891531956348918893082214819962548986609225971232859559537087032144410456014972334111291740865124187468229890457877777389151334924019889093143951906975453815963070305147577831084785165365725603390355836860327519780541148463796233919877598359942179198223114877038028613470115882825615276365889764023355080788031899172879416654362727613174390050794021084191420664653711881544196235527191075553633791458132517795471929139580709474914557679778404174956747677113184100739517317454240164148327538339855518139776916259281327414427547580214990487247295247975995108046334654112549585298496536864537762697616249130247283820875255248295271196620909157371948616254726634740815645055738848177980494243302576646615728374067917160863883853554919578355471745871331355880163489928069466638272801740848945394505052039739596209206116865895580726318275759559791386389904344159881639065278969882381260340168167006019586264563871991445856196577929104174895998128199943374083418104027205759672245483893130745375122100184448584238511689620641074931297550916584432973456328935404164910258143744800969551934186307854990864484871301660193180905715966259264382862044669749798143484655749107857186856291012520799028513923380791061329704164648241561658393760177853816675312248088244675378398258950856669479851786046144934689676001947690617069365622433616815113465805759452936031607644187179379150095751793981534806256306227059239414761638467104057145547182372212462690160775702564201931020954412882727076602170730657885513100073762014201544990764959311034013666493667774826933337676331674258982944032104479909755754925461357036001531722989011680428197772696540602104593863642658260691412257174678143226885578078977492118454367968109118914471094489513496604939366742626838161781644449208521767296299709410539841270275469742204133803691887448095066605246669952280039575345676579721955442426479200926533250059221907929025081374959205569076138211694709184201301122610940431927890424784875234556562839033622751105587998936992743485714376577266449077843502862621099421336688339392653730098273078936904812009204787101620309502584528917708517589685494684426549749295469367165659005881475532853234300193720109584825179924106890908346293372683964202333940372420535695743710043269797348226963466528647222419884454473884495491758274110889410059098670431773485343238313658033909394056482270773271476034162022915848087501784123410035550904817375371806397566763752086797173596466545391282540027112402389059490747774591714135898446245210966710372682828403583846598897735653696528951857075812342596837288264000624584789054359092811224354322075691112310496530322665605290475912166582235862346064874586147726930068563086898181185111318490054732089957032865344463070258322327279516242206253215535743088596342213425915528840565082559328102432191263224225970559292557883787513249947426123859827263731818167146823676286378515588216772459561427455537169974361428184525998222260053293585976389200935107123370325247664621458938422696499225872874892844404656295855148302308799099591334523603984810160268686586255539866178086221760970153326578523277534612817496055833673883810906359484668920105001802418591906509624166358181746531361695453520651866175278133011822124763167206814443990339209567962239171603046974743192262590783065437352155263937903981524263201627988301630604009162043525249184975972299013994853115121604861203085732318384053387508761387004155148994494924767560349057060473832955166457414185231404862297888033073957053537127193838234565976035119783297901924939986910711247804218640284262425804918963637148478034892119561771756772542011321992783339116493553961163373204074490428448299305481104291966077556145594796572966396929805964871885347020871595823303744038032961150961037199447555286684288141992380807472937921880136902123697335288141201756206807603941515356000802956821557670770861691495436407178754931299027635891805197343476475555791364867606459639232137539016109163724513103809234412076103268853012346203393227742890424664814774423066526804582254191766864703065128106016641796870536062210809067611765373995290213631897515352635701271026521435065531287330819640186874735043663814624738731693939955754479725432353019843213553627212039007152719382969777772506741834807441775182802744079545630418587416518847596598026395624959136602310788982883045189206090364114087118372724721897870654752269492756564789032701848781644375941000432512021189791698052834295440416792362449528127515367431522503397318853574005904560030223853495231247440273327668191206445222211026879875925009004602173378899401704778716267044511305745395974570897539248026484079365361108577052126741460965758985968901712740596897344660276291644110655475475530648455646577954187450251341149652627173625104612657958502735809606115990718652656856809832566950973537377008788883462615006773138117656040772424031294482136207853362064807977912105134844601263242772626174642697140552731410902479319696438138906174692196246757009522072942687439124579344586893348250848499390045209625569551526207181724261434885581874080770146591216737100007404905238822181490358025916898304776812931260979956904752363878672061053447321855746378925904387024818897302234856539772687965602048627677501329806535975745286911116825117304731062983319123828571206937754817999363011448524937533949933826313808573056693978956673208174774207074209596662308201627550894762300951624711194629343761920256821347934344339680916530524992695880132385321289579086617855264053639924014750574442404682900336734441644761177160100928134295628424791712274222860182846209750367713209269950601792902484336727852561366566681192749909003537360294835524791951593891941462733392782013823921526481937248601690920525746831157152819816148765474533668723267358201145654262615728693097021719536998688534185342451870466528808172729466532757174951386440734027392026992980332913184555938104035712823966099416306186008969522477233345666411475772423953766761229885652255902607954106178796890536197119183995347573456551868853203661628900617635318191567833214871170748767686962293382400046564907762063039948751901711066495432320078319019413432482327317178005717155034911177091329398387506520516066363300458344291929270605106171670748837980485240940705161690420579754164150352704713375675679211607359082917530630610100428686334560403192876501614167807259337596321628083749010044281294023900527416496796140929158101105754197022769152491108803758187445665904851355089229703278941558625391116395499345214259326798119812761784775768419706944037317464948641443448331876837859641100866576436848773525226693896470362594753661745035620032429794107676766600572473355806113355069386652962575426339731515953716795100076184502160251497874626086814167562935369698932701254570267029271990464303398107800688682428198237019365835777035869294790611452783961386419899177219416773723890754258187386607105460930143802975965145739010605114708937525287512495405103400584798160915472760333298522790484684257696187456639879540278537477827315084155059303797464714269512704352426070213390117869052943614806870975514750366297183560497918697471557323331261556698913797067793203101214897813203444185652650726332740426936644801802237961272239568510007379734680827660590799637173247697531949736226496710218351526897150181121239822748680289849178039160801144176739116322016628814300340921886922557173209818643539536987563017252089526154324104089740907085477129058138395406154765339918145840252635994837097235387894515425751655439411498280648062773791870053457098231681235191799011551121830729128204495032848947667666613678388249470373835277621201536026320696906780019030708033851146183623047504026267452315857790265281431316297461356122276218973280913942686241498893561548279085688517704387083314065922670726118894491730612467829741521628663543024095503092908420939197330279491996244893238685653920855878709255760873695245471130406908511046968091519702006909471692814856024913840406733124045685666157698000316037965792877921091790678576366339529997749987974079828114603540708876930270135485932037396568237472782376389501697528937542417883271714624313476367842290573223154947818275024027570266085750737203887168798167751868756252630089825840378578967976742396193381192867086485129106486116189848556532772905093356947977310397223038025118272435039689723346810757343965157255504237485016712038296942684866896152918746134993181688668873323831098652706608666075260774925668040214647536561301675394625557260674853975734590029988565838075553357710798057726684437457036510326053808120221435257667109094049510795437609732126159226317050611310497127178390330098499261582838974411659946939002547461706795213227720675592675410939917551284188827833364258656903734957069872308798308397308378100092091298451988542528092211057156204498710879588348827446094620543358375479753298549275286242309595005375122964530010841417582434528066035969112425771788559015965020674602849912988425270103625427607286198918173008491488798001762111486928169677760332478221431657489388587713457203851290248421714327640049202995425402745511906653141661613318592549613822401655687414340935354895490156157216397005873588837824185049577689837452619769479051768237553946604125821091076912396363781023517556943745284142824751646814082781923670046388271137526401375920007691768595031857992546866014972707782360652884468726198775234040800059661870804398549378172677126937227981055717939892683676035094548062245276354172576158402257732102587617450287309381111608073415945027317765352908600633590829031750050776720838961249357422508524877696849061805812315696718936295221656561087007674188126258105187838389976443257555480128730017704234925764904757374217284488699769617956509148394338130527317971728010926693049322976741900387827077343646343647075510083440139757681430944967581630526773641154532939922832899613017191301198947933299173994763068135522976796716530919126967889830130228452454591679224666486722544849375818008250581789258052153661933520020866552491377575836469968897729666114987896629296208829887739118635602152750474249735052650611400482188616293437492412521668791301715691816848528061365485268738880547509101705000876760551586986399854888222420167575900528928584646534241849679930473885305321281323318010701164955333234133676889147011718930532205704816322640835961171642753094485089740168377353790109587829183591618960399714908662265127080305994047942118001619800269159131966232746602642483456471109000757203100126424632034800501362896941267266906788679348613548142143582725937241984666095631484531541676829081389649027088153892202626040977745365920778783728092197320075477255827115925174746832081554420157673475385061192224891065173237610616204393644084111003446774353075237948115587314587232600803521788413759273111493624070356111132598688876375640484528487469844644496618105962089785197459162571641563427953869832120188469907669579722437758253360169558773753655988761515354300907360211760616977439430011665795115656533756648121102857873648931584445567345215259863990990918349123495626355998167888073712673998363478267730540196629382946742250601928094738343494361133286454520340751137061803682863647416847075568363975099364625890427608629742158713379982768159307253285833137814897525376348662169330524834567957281709961078010909442819180549512790172596495990110442870628988984242473906791998323997082665081694311866095872368704815347165217189336255852199565246977101242550957962062425058035550488201913270719470902717045590853040653674535662895306589034824178614158832346777907397849010315534468295617317849093687436825866638884686924149062026453623686644383340535625705605108537317637657326019524619543734910010832280137921239297918826150175193196232227048427477496921383074511675790851339680954095334214975198280857570957225372455803647112517059561713840680051102380833435079447045742908531860802409285151239420578183646964242234332607855676330004728574762139257339183809104551003210589721005719588704371793661068590806709402583193102665341894617472568761858846940603517229001563598806271278212359448191397480216157085975357311720962659680257031983711823506723857256100870079944431243818198484704952533173662937837620895654591355475172706641316724123512575519082222646383607100925078877389929742179530958374088652481150626564703835728257032516547689970958852280309454922119400310855890235364453597043614514102892370193725118363171430468222263516963638414783629304005008459597577841823744288830074652493980738910728528595446424687324462042948758845197087671953880036259802242645379146058969757327492351237608900398049588651362143760361299036759509835519426949491097512500714905942537224670062337686444217269342549167571776415587238117546011168520945512899593594238810287369357254431402727223252226696379674986274313084743029487478395995448623765582692688195231914001327324990728185538006026334822062183619822775351191164538538856525867254661899801430722284833485429100104310331209467577018007040434270508577429448587690407009545563666369562582426197716564886472975683924509206478601744851387369609444642264934585454477345480012620911935911556192207563716389242916917715306326968246900393545943199843867958016060891814988713051233205367950112505594844915934189450570366806612469222425887904701891430540496284508214277544596663155893419078823021045531158938324738453645997025471387072521361351909263616814410706524977678578416597640086500644112840344395150296664197040441585207576667103189039828697228157887692927549393857651490347299814643254546795678277163824294662184486637876513179436884117107028590628944310956506066349418477153328301788910340739637358682441718803146857471802442313794240569406512803601354788565577759125014945833288161927515201404392407023511676579163822940505490556586771300548096107960666693844154317498999771697098037666939973961739598677942957375769626802953937254698838748108165464338473831231194599313988182463764513440067586307779244042793126123173805676322628292042649469041880397632895332091858963025470913949273898646364537235199573665397628929199267422367191006339768565655155476476068168864787496507217666029111648843124797941952119387147912515770715081705110245304359953931992517154399813463695733784561938193320959752047191890965950678670479962315392598361938869626303688622881609888696452708032068483453107440849809176517923704300500231835156393195002812797296679341334226223401856164975134175141559244337784789193801999601937555177818024330361149603246312825998815525403266160628867837163540176012986496572183132998148689698381682354373319460829701596083716108541398530324674673393503794688408490913429963203932507962338716930948169096457655256674547477671683734328871828715999002458464915545601924900803262426840979204534672757414535476801191308911806589430988390310094142736531595446019929940488924259566383409904674237464241266790935088872668766170995871491710793340035824303567878684087499563211592911579090603868118402355457580352469418744235672811211520521137431052411113361510106478829322284012503107519018443636001227407202679727745728441964879026701076476991003817075659985206422756382674900572222031976570215961164114122015876481393847521606361116415775882867544035308016593106928730934521675580002895262298547560458394013447632917545141211033225617921294828756952002401543469855274919278513389322649501580325482080028604624296733156346950104049310111186735731927219487060434589148967256542804544233360493799045028428283606314030709353730452618520231338938173321212741733331834326958191666398777215157150999163093335312411539276471627474882886580107746494124088233713593340748041605582601536683935674601185395948408152839308210156465572338483044385185170050501686406844473342489268834484064138423263627507899933509185547794615471900029045172246816199896672120771852986025947675205216783912444403358480431402655444816557228517253377952382410481577752983295084988661526816807780161293027373943287429190237624210369935483379133079629389776735216600931170161430056952970048695893128111985908704711872060761216037454345113525825600341254887618081823948973112695932641244201022880120550615841612082242854671918461785672271875571785240097493934019343394280111290426769633529647207144430743734821000988566046236255479084572789119461200991219451324031493252377346726061346499377772074602006534760043724325540906821367248169693965489988506681379045747761741508521316749651204445213356823496699756134263650420178000132735115500774805454775694283388998431138095769543202112597015379189192922852643409322120782054392537772602415550124255397784657352740138670913153128113284338550565123363921112497237032507271333089169547577687570583833492422858939356451302602318098341915275398204318581692947845901006053621342753738985389319052080065552881295443474546669322902793821267350931736459701192857135574061274714619833550171574555843150165646031050472595529187391871236157912387414370902027084463709444286504904689171745779773401487427445328348287649435073356630992308407504412945093420597067358360686145130750374259994581766812524466965182007481614122839371424167161587865261553487011841154953507217017097540721946929928919484545244670777822655943107948095153774230558093568830690947461054299729151825879077765796554061479614634321247288590326762532737111166991590538385621998219126891578763223884292466877632726833388486763728425708847941836515908739160577565474119474385327848387533805502093612340773887969924836264805402144078581646740161449649110264027421429557922246667583557429827212270448654938289416972880026322595174091310185501302733428488333492110686483536129021460590848346243401626565090281505211148682468894342008345543873975378991811869508944667371341135764550797215271017314418186659720583019176506160345579742032433393231428823363403717294345907860208800234477117691952143949169628897924938303863927260562047899559846229249616894318688766900439736301969807797670594842986984425711598679903602229788702471953034126257607098118420975786490870335199270985684774888138970204114913092828561419101992672179002701820907195703730686407177394010000180297352884762912243582215612270758916642577746318995137537990895604285829928416581053029516081444040498257612037981368526091918274255422413980211544113370806953390867256531484043775477981214427457229971350265038122364177300921906834387905945114468124929480119384941566007940885108422157371227972007528069640728942848211755958991307811124299848817371771571975497188615759028979018394332783733167909458072255669266560031986804559140214508114226121164702458374919755084174532204812688426549102620092193259652219616286024504459017177972188850709487462147051907884955980400202018339554337378240097966899529164275296186210420078548895478300320047457693247284152533992506941166368260039104996274922661617066117803056184018615011077601282727929455399934350367326188282927523956254165875970206314615588984098318422795941107876992201721992551760852959319800857337937482225318784485785512953162202797368410306565509477789694315309871172225983933076280814584455756286959749606428397145129455579781532601218323047915475200251007105869724014996869619345626570602118734604922299785605756290933954741718819432351982778115393696051973489636393525684025729569563467461081833380361592345957202019965156856680854412426040709001077746725926874837875273576550003417302872718331590953700331836445878617944369812174587032146881539425834477099818961135476561871438217448656948409489692870579259376844091522403614403133515794851986994449259162988013249551830945782143844814436851473649666854676526518827287100783652630414407116936669422164022948721181872784594468287058244344872099633996570578373025889211166272791148049692991721946260894890893013022965463487610954856406206677506078091546430932238777214028981689468188216277566079314682220324169267002917808720102727468836533654695020936224464417837157966518168978967266030586713397264903635786409557473202216735074453683181013145600522581233244180418065302099079045053348956805653829351089021184272434803609792524912731003904633673944784980816240478795296118533211795705015049163978551983287266340296383102228008798616402017604312383634709942983478055177400832565879240669869664020332446389337675871329095700740869678558533795372080972502557141362101676307011539303404196313978663688106056272957842125174128360600058852814821199472288105050114274781625223212164174661823408124896538974245383189890715681747668732199925721241138764061576065022190436099150770096005797735618058040467519575571791591942763880021673381748629693671581879082897451359808953270692681312615291019947197702632052150880823128410960559140421571463270662248141841187951961010815612625417434100021394716924683659335551348281728673819101408961568742538778511786188996154495800076837956853043233183052623999162163107089542131783036062378534002697141441824882316484088086922440942848475991448219716132110806744850285661488132612476963911259164551444881428985421371633284744501786669210315054508615493574128125281901200156510855307339880917034334101379950004697642660376855450579669341724131654801274270170714631945011860942102499723115819062828486126480833313735836390533242473018389917413097830862352809318807764343056449198294262874716804133583008111820933890098111144189056855104460646909098839846198043729744157772063939012408780917998428656035408763369477362559698459285771284080363598763640419849695471530783039670107132917825873057252424152906457863752054766457285040833032016511649210662335580424937707370002968659198421362019641964076518667156548920579151622683365805657350677439244546012157298946837895637537702188654214731437383948261121448511191938639039455575287158736503394101482895410352845943430390000217952609347841098520458779342135067734244076276040771358134417682644536154310816849450715003635512922566659755654776305565591226446443248679618354271529371386184056609113605345369444700219367790769622524335433851638270980145281839939260667022404974229693153791495259864715665236719120638269055374897328991608867839187194221429547711827504040693666124667088282901625411484100344667550920429460530967606252903842482537179750399687372367390497614473128364368802670936462943512888133636247835609524430868851987338452059997795323667646335060877628012604488003266467348422008596116430178711702731921363414262982727201734994693345334419449404689982725578520962764195282532149975689557020026609980218194119658324225177009679829997433008786367011523928236465311868457510653746663661328943419653106948462666571743734815202758056825561713370729200142629031194041509661246516737050097278651583505332887051473042118078587961742099596677189917472468448951931822548635849471563131752196712889433070027749498240627596655566052909103374460123727270529823698449802423670238143030515524367502128074850145763828186590604664135761902984969627258677885066777144875937206867669389277023249262843011049990698110905830950748618860710607757436126613458423401087508686117829042375843490369236106303587403179937369767765489493987726496755977995279340713020087527252488435480859701571134400953557393474072454417270401095694635498996667316249711883617163704899972322183824821044254357425851057842386172076087435988003000780381880196085261488617401851568658342103750655434353896035184845416090520095308389894655797245022796487318828703131870676847302141745887774383796053211778393373071489140772708701003136232285502959191955867506981256319597955854931143432363064000187900576740180253557556925092322065497318414483096861536983461031572148465104268978725956125182574044037881197271729686000195228835129624228496075410098659081310066012663937711599825928084468036581005339838077792670524570125166416421560577005876050632527091979169385538411507338185709610568951957645525002112898033304547812548981739598717164905034283103707036975742740955765110432144817445079281909256642292063666681355210123337412288096284819795425385721857383095893040021320943524993062194645966744837254744193099759155324921241438732790460274731779622040450297654079756929983212981029070579763031150980591319275885378366864438156019032331172508051303197318279504078671617664322218870102166862634201925681322906811162295693073208169239605498732481635085736418885324362331836478737678499144176082014842586827108641233767924366243710103463745769030273987782642856474881200814954706512998040181290270413522271192734601498455932568973727103162522892299113322443211075190626681576092576969090552162849369279198788613310342587370067572873905927037371479509745141809796921134186327348649982649107891987888860510817946444119806014847832745737750904118272734031211877118130077377988483809355730049406142959144327788038647459018338099986771329740937161164126374077811517395790660785632750643824842623152549174513705763838459641469417116264603372075464811661411822957831390896327098278861593909255910911406516778692832110605479459137042884344781272850677481380028100131484799507482826567329951005369221993610652190384330262787801752450268946696475556536798061804144040730797164774761506070368345023812777771970339597479634940363087213567898238826366883391496041305356608395864973528308877596137282275546026818471827391120700784301716911493134930946173915834314891598847948862167691782964039101088947485971871293617448811314009900804785499983151277924894941588764549986216387078222835039806853308938454416209138902480730309925698711912174792604302029695809565604090004641733792973567284248891731727000528679094581376138739975661036927851457433961827625147680927119191294441798372290111286700390626115539656895605466032319550172394874613961495518812439956909324961419078316058240944016477909411855653886418127244837606279029475705205676211018025864026450105704274658996006365964909995712468334795256434140273809421330900534060586267229891334201924846186135790891239888130975027849209458388221155365555834838156561698323299455711660252070778690805067551962158142931198709633279612286731697077128422665815344112042960078065417477930082240910818976456511192107166478149394315662840448114144746634078739832266571110068146963034849183896068233424678345628486363495518760374185252426857596488379867153024921892348331010589186647182362522544425673064734951247697235806592964747370118906208612891112724176508512943481060795621669555820475005066560051870283521525787904024539785316491652183984378751503856111097101084951098637845273599731496266302151045803780987878369113198413067692908133239704592220650478518844104264568988672006214782447960256146126301141059451009826356652074465592036433682149406631216743614441846402377375382105611918324882695796119479034554332481718647644150718997519041993268725174757927191642525610496249877588452496861742608058217205685803531746197110012775419263534024361283183070397072452753931506728745176511580979025384940303592090767679897542922791102048245726224293782908398250028503974228201865083141391692431100392764679498855653393169714827495117234089464215576924201225361796135551615520188567264101784148012496474982268110465133888850065530210460448754824271543955693142248119984012137513812783741121356550575448763156383604745430556514537799406324104028594785782946581654285453973066286562612669423490316229968723192254678370901392615875139697728796619794878678912491640668080232672763965989956335300506090986892832310148832066665932456881132133330278582197755518778985662206579877319994471853861261112618248317934380831917304048728939007143203475226712343722743408500214666824584841755305166883117331497054801381834061886905989767246601625589755974956225235352249337725246826743565302700447681892666536927956054835692433412299936299793601529043013406336489525224314260686370916146317761406396457280935435305225602622916466492083877859777714978079380637093483208547366795646170346250811909816902789921087249352570512847610882492623481718335839776600506062331019198255516985481576876086604029231669638298961966580220421719288727662740089610579969051393342298279779025582358927212324337508825082232209588079955053630556984007044470253419893555252978186731309954709212541820060694556100908906902393820545967207561281345813927223725567069156028990110643497346223150724281857474512897254577728734825694422179070751883027333562433476292533842365139758057802330172295541655546239388858711741416153289827472229508494397442605356782893628776776471922943839475074868219556652472557634213648022133373330349334123610057383267659995332868735047736296203002298447362482824792176078842210389163807072635825545771480106031314249347770532745798293068595081305112536693252708052471889411545068000266432064607550776819973527072011248082525095617738605668971863000527686224778218325772825661054158611315294675179107785227789471835711364746306725295121123423340065767866503440460692990994661293929795186893539302642388132642566911805970534151476067720639563086276102797360495379924080199014162228637852192015736246325782476519482533801986773484467348890414804855271485650664417553598354949727730223966035670043639690892485572789994042804772411101663408776200714648944291890316812594959621049300775826216609164390825531484812372831142624436117938025928481128318064516563906227830732408757417461267935389849268628165321204414046311913513022679024273144391924944125144630049971387599911954327176676321101762877456965196798113464466759619084253922194148936272392743999619501070978050237929274175685737465680255769766881409456856536119650906206479078924499408058879404959063482881478291701991932491654380516172563753266748920523791102302669188309440666442670311041034343473457246078270007713098118144405252171557199161842169522311000574072205809033643454655840405855188129435929245803344530694384644478816590262197988190636678359827428179756567930552765039168440732718688127635256593403346004530436789794747168361406617242478447641779536695734174436125681402453809311665909441966711968728446665423295434539757970006694235473873366548046481370471117470820660783150218812688359268735047434904040793021603720495425864486531902818150311095551886321710644473737097006491521039224666122798266911947666882307074959244541526300304557831594438269431693845926295092395169642634334206538569180631661173570543269581777327180618477351711002130211219530618073097723790802065848299993523094781321724853634435116610654263331232125062263576884248907464700309754605537137596919153077824915605903779571144938587085714755131500052044882185542286317908456032516504662977656429169153323884372523968814841814414624308407205355651762015927527653533605740659029180111178044155105497010970988630748952699984211935502428428421880362488466573571256350321585079307073716905621779966200517227650468263342604547544133155170703767562829833762235096078145705487813892093251509706016698980604741945282402503086765958912750802421261333687497187126325134551285074888982607173564937803361405760339015091772739324806642605664720328849974675858057637020771341252037143850363254825008910089883759770593893450986798182490456364648929289471901289988502786245381473005117496849838629950809851914217883497207174880195103362670925513436431902609073060300780131012926613963168023491932299991596092787756304120694302319023114566097633767390926988531620924190112866881350107356120950859752948951415589627536860383901813087297673164005040156615859696297953557298185410213526002627430671468270392158506572098692931330939874767864536352453878591501859407114130248399112494406996917795967130048928092594090028377211134548634454003819362398653515551230478378720298234633008340156675008440737804310643293059463068863264951587932333121099630463883478150281576284586793762589725808705078612966216488960365430320616816968619964586413283816805116378804763187591700130299793508517432625111273220797707571925930956159204284453085734360145254831243579345434301132788125834209108651589799209701131291139540986728612527135080437285696344392113380929039939716072539247030992909018366171316492520454467300304511976861384420583097538074060168188403960396673724909549298257806661001553954648696103401673977101240681157658079467603277175841606312468679139308798955410841913525034537193083004579893008529659952198761304188831884309545021476033922552108882656949485139752009263449827556251817711154906641089338840510391490826797162359768645949178252839468000408406639570819449133672435494211573160274661216482938690442970449516778128137481033269158136476438739697190696123848829648991601423763695514186114702780483015610266626217510246605802141591478241029619301244060976835271296090609712467329139344061646966125327237870055539511508486340928043153087865960430148408452218939408584768160662559704344546099286508616255225711259671221502959222960080517139561169312065648882632219940623405510705790057949241704445128128305243159649313703467000402990075181605956765270799071118325808779397234409460153743006878593920878711832170042837708416293568103887753724236682048735283096066840025073509541511834521211208624200507581674242130908260297122259335601687844782377665437473001934575441226786339820638775978848322822606494297423251439113562834178183578457047285872629685718021728550764842604604555956153358150897778979911014899808816984070268848513564708043325727504110431156527377615688275703763751986542962964256128362682936056562874867145027988456066243765180565643010079626327516994539413391676977042901656796720372691599259991758194291517777793679436925554232905544196339456007164459540158400125118092136220460658757213556451398026736701592127965177677196515296038386146463747268737015159121287440426419670058919390665628487570776444783582500668096717867689869612236099194684933208994405570871690805573654791106782800564089966331961875922080359749485654280409158560998559253348683828444171998373461783825355272752423937920166916160432456831623845542431703209718420325210411768533488446607616208793491713831412540288008946177544221568694464397381666249305942476498437226701704786385698391061545421882056529158497883552990017851026540640427537232760654694125070510333820897655227003671794621901137996838278096728156392671847135547759565516347984558474970213759922900273563666245558411290058313410120459672875757864990385950684657332202524105441775583627848913321154273677042876835244383853230161536860178375888124213811146052439162061080878603663335597724686595618238047187835213224829867798438724857407331466713776572023805746085220715710156188411914166797797649822510658298025745125928323725813560753462203652454280620179401438142593663126909617316329516860138586135961616381744018842446295977393949289732893372751072671114558198168563754482825620106249099782677837331094791862317856613459510621194707670961257735547400443731922341709705297153283907477549739921030558838030316584793446404107420393263800761577679336483308032799336431094946161466434672907688585982762562892798416861726376783900378954001973583038074452471457598687020240505976481090218158787800279067782985028326278982633844200305676516312356908296317297182475999302794597461023988282064118430505818779733668032964396069658360159578295037277275257225478343388950605214622255720840179418345577743896174626020455722833220284338965414385539925443328870131424944437560208858792194723992165282466648849063987214751281450445731563815775606972044926686424432474568645323298509503868879280417557835666282756794483852687110500317157143110116141500107202433741642387420874580844547815594420620202627796198344191970894350941129421640183720565326855666864874732992996887116093559192675000370577518187686243726501632137269865584785014700095889702096692641213770002651222745342241460587888019778332146147871044878899537990793142009312133102248758480313827900702309048274300930514211490054575230881004235711054376062289211765212070893985377148141699236670587688323305029682138981080861547410702075636596481447974209867189322630672276035522676701403672010972818650220675486848100591515595559245177646268950088897576514478235600643070916259687343580502507386569003592194264056584928328128644751752198503572389613628692927401109240675904291980593190861011178501810877139456350189220231819453581241173246268839475821128617715098615032973196327839221160558996298867405731287308814549896867310006404110087393034388508103518928002954871848268399586677386613458709514813219450275017041047894686620326243881642135958754620885894822612258492246867162417398490762677117009053291859883699260281068772069430428943250980463306273576341401501507462584710782063932361867866317799657865761230236729663715152163641937058656739968920866339358324836669445673211823767547632828552994903888780864288866634287695105576443874781533970085920640645427481686401828730452483146374295398495664165111194287267468530841407843257753139065618238961834788259128981355416809657376601987712289624726993032991614500654861427213226016228823280758179918638451733681095066307412309127640939724979708658699992194537528981937947940401670174170757140248395658434423198334659692113737841150839698006362371500436876100094668284443116510664688290236998006094347683289707036680008753994242812384792109212724002430879562469946785798674048692886708317875401094416459208713384603736439998262691628225096180848701496921502807598087828289446771508395253989513442239779338017081786253344162054311225277028291630873850939294098041366874789823120829642494933028270955626969813014986073030051662894978351651611273639006348467736215177811264386304724145309691326201174153506432946438276870066997394210054977549694233324216276628769980762089617735049624206517537456248002474398814032340096849122133838614141363495964982658531359888112726560928816700652938394182250526261333934752220844195120223514193856778787943435410994317225939488407291568371215386422979396046732941555073910589793027587243225876421919464664048078177528736526406046587902080491426024424871397098941713074181843287453970861386681813543394072326127747276839690253964479832681662705782148513945076506019351154378303534413870538296742274568772628006907633592075990412227427041715029955503789388534782219350280135359162250024919948712979422734362785653808660209115300101042992016174835558629943668618874911888543778441474490578396883501823540255223473374204783695791104725591956409820706576473119866368873364490431379389986301073487951301762913992589026820937128437696086078226827373456726245704373048158122348960086215733557715876247556625450117196058440297320771247861671404779459504001109488047898843830739262325792747813553640415171635599366626911327137442041210577973005651468302641507097505078365694009113411060759445288814469104991359828416400351515369311971690706539557918016609644178110470465693983181448707435898791021707577281762412193211345698053050569110714629567355911283021763333002362667633787472454133642177642800953149004791988618702379238824320474332404508948773127407212316830895710575847864546185078644593733675473771394912777616972224762518811006085986987337375784394438218875713591569100710393763028430052936054056552831881092019947073796273098693634336083119461062772219563787761027396233792639816279149022411593664312670511320460672527324061511776859270624026682315175765399011070363301760882543252004191884540683202203368685471782402732690395844218147210897022815656142986604933409569531705222451133541403627215955985367658697965761040271400781013030799429822378205401787194454233072247011832775079530177006390976010180698850951058949770735962585811801268737124884351807574259005357199699156715316691455010779260870839737582782295549000214738605370010568245997496807836281221492264232122329722741953266843393903163107807787029021015996335205157945030910224448678655753412111209293180432542933371317410321427384185853959034024344842526208803823527035161964211729082166105554403082348402300439138570593439814393260503920905458924629610407272542243795289422230173918821833722539054767159064520048171160005595495315257961266710169480512131025720430780181456221046397973485488909125746580748893014943354038189352981408271759098881064319451671957100270830000383415113855249653985995866361130571275350685332834157660530927560080771088046928977241913903466741136659904684133126289208847602242577197208135531999743703864389889468002030214426074042771964807298568298426874772419212732026053815604187971778280673251808984406446169181288025808344646384821049042067357150133160510352925369510545659384846359925612549324677176688495337730659544021266571115764851214104105880154137563575116744037782805311760512213933960478631534662786359098275668750621345880888777079851460634263495176489075306152729363150713588120166430103539109590914121822006328446537531562992255542809283999302772309894388349533869238927630584567199793802410607827856163050433611471926677121721873949724238136480493877914180575798939925317435049833888247871462335169137905594686087844677924680631398515791261287040525927984243291496445008407597408135365882584609567267668722152993659524011597118683953824647951477597124042780922473620130753993869714742038118614367224633539888321053168128256660808114595235519548433457109476177221605281867807940126585438195659195903494509084617761243197602709760150470904318948342558171130147725364009099041395265433835141721879129708851061284767203302802028885539644505065242600821757906924927600544742524099758974041927749703943382935484094041404807471146861162103413153664465990419455905226269679450909028954316113264407201323446760789235927781923561208950763474502514341402540957452807034369021496822092551641910350540104549513929698168914428479816767275565485599848175519660874163954062844422986557031064786468056782507720319198270870199240915746268601906671345497433448408275052930016723643159714472324806247019414659822757799237357660076506334230911888893480107153911326710838798719248710887026079848660553367730535836959696117827844083621116426831992543916320553213762288155817114134053662058424715228386685576344703279294604122788554169217693107611003855455385097074680495571532952085037523835879054924774756814715688876660230704711505013600752667962614037054917276598965490757291131524908101576050018753295241305956772472509099442571493526520771005774237419850667222849860032510600478738577125979004194692367198333340174779888901022490173508560953120304801628304208453916545133557783093744466477309993573201572208222746040947319000453602179303708378112607118436423461291384758662496713408463694423663459257027798805457465271449179645657908702576894527827947070613443521913657614915568953795314345489873219728253147286938143655609807958224521979583024339789346623168690113568771834700677004446035840139509789455336808806211689331499485258218992936147479898810826169151626955904338547959716614443440082011393899041719900557834701883274905119874096696360606910505911527587834960255181291548277351989286240590820092369135254168585209846434840210365896209947522278617710531724048694137191452251021743062660971408079500409229083764588251789082263516499368760269749420663993332484416823169748552354085267462572200194489743732638725552847898133389151136651066726517297577576459660345801466855113423040079269208314193356107428331506102923544958247956541660921554707899959732769282443581658365820041055642576550458011891344439836295357577960000599826032583693791388381793387798382556505950779718176155473341386559230203649428199075735514460566472383872495835835192600002934841895714044078118305451911572039651092868860734197415100412146035723696660735432222454812046344742530502978123263695344798375875722909508754998927904184915691707114302997389228065717613811075022821883911675277378657922751160912607824193900342413243047775566939259635852402324756047565593503052231951978629441248983102152447978201373875713896197175836603459940696892907722539399392288555511992862440386337713944295423046171090263394669583426109484947396713069661332679113487631042033933410647420661998751151384971003975841052071645924313070680886698352112083714213685017408903100758807327211120687263282957560448128571105915464017032985462657376479171681937390223408890352235492924576704096584996366758919170273202096341143916518809248438351094875818701006445329373704167625080958285622105446743581445807364623731497926660846956462723154274027108843132986916460465513552539786406696984285929303423401416111574095774713972610090636835893102110037473310048364275216650187948837858551274718974881449276040160846572264504796716136500792250192324207145933454978050121009163121843317586275815598248523852242116594758511398227043337042322353351125161974614069960520976631347736738801711615058374251858310357579701326810367772651532899530701872076418839576039178344919104570133788621884937409600075929337791875073350779595913320361451540325654650561893311822890775710036682887412271479014140252949449857013605129297622702190610858508561647597411851881792771106241257512738912696194983875890095463946004797737607180315468338411058156210960298381676450344017913653940361606003191371943003580667824115909605821780841096947819256136246707766849518795181598073737027825653164576581734884946158740751272342322554307723001109185900796975476450415095281746803217741413234853644696723663193444763866458197720418456558604460296285362684388311693142528738093766456344007262035808357464787390407700060736120021767281783440834335893725473917221016149381805503912236986605039953247701156631226422384276438830181957618811610331182388278536396558657873888728475304342795439500735808136515738867534706989328655925642099768101640901284053706319354020655363119993240805807240616667906539710187879161029877307874650761554609051119621553412665018274835867904131829532622055991515884210705914505426883273244755111910144254919815697589932118769204796078166177241141096634105375475672203173626213671124716933242829187472463149257460674543712411125415739841233511050805574045931266592084059876795497407863558626009091341249456596710591256977814544171981618892390143195379242455682488963351724591454796956658243705260155611883106586192914603607997213796770571650675366868857901895426649790334968252073653034917753504154946739604679440849630040148430121693492411484731339104167767144759614105665154302298111920905689751135194010541150119909877269555096862446867632890853981414619159413194341288446543663488804613841650209144611328600494065618533819993195334417385288848140805133613972580997724803381606252729442306532658214230941157475723498781692794807428874701269861854460415378253518621165385166154314104303343915488843534995808428366681800154654769914331227695925912321477714933137569238773216649054178893778767063139634923325335622692542225634219981406551534234838188640363544547307260301967624544637859893836089886012779327558495137633604028064170759233753249828536398878059916888550516078183592686634942309011845706368760035756425927016200139945486809943524361565629162931186711054557311161322872877891052263659549146169049440889451165682742817942838285075237917044198737326962955888755168662739570941795188338874824872565521724371319885313395484010687488358586334953189012996687135778435708831849139053572690757901089417512458844688034100600341270620455989990850388813330211454521178115446457806365027027092772567128679613338596202358772468653569321973553198030836243390472007157086505396830343198978604167217104635490278990197020283654920504537263593156719711269155967170938580520473860381086371485750712962634780216922956710538592421776944851392916022687954772565725170415621226599629684734670629913046709647934267065351428825562853199830838448484053163445058609087119646817078932498770062102641905082995557402991505677584925757094011042743477785710798362803416038011330737062035571050569029355254091049760093279532662661574933469359345352263885797423901588662390372379802516586629392031933742260541289871116990042497971143653983684822723731124250841238016572429482145643764912343062294636797975290757422588089607486988035506894714273013314777013721072907916334552531253207620524636030542286629384732919770086916523981990238006241538285085301671273806503147839005819815773960089849742278470330879910380646238247142061629577195314724635691453657728642559484807913561546470989804298888600810768696198000904534851325532905376987404357647207887390342920980115552154081381721160579160901481298434446800362957366593098015130723911633390636496685432585590121264035251783584147144089409189211431464233180065727719148716750427814347690904482144436723903168834809378750977346625374818093334696210581638329794884249489038776901711145930389594392572873194695882983725554592747915945945652313269256858354832001514069891164239248727859016053636873772571033110790130054013569630347193726350528344879631613730059064548210442060647994824755768998934155730292804213018186406230890900723935258024132832167734201794992695116217917600828382173979691485687585917278707200588324554486122790000362634057575349713426201615613491570074147487711668231291918460836150653668785668517138581751674487928415140068243812468398357544058557327723365798811831860660096830174668057545776807257812382356004053970997931179806377499415394305652084745576046150251975998788097574083110160111308021747953628889922311281085372598659513498735635223751433703860544564547960845618495054087324611784570024774458070877157161583642506378815382523659783338470172514445353988748738868319561882922804318210150639237626945618372765941774231600646076255784176575056369516278103041907359694438377845772733013251635049586542208052911403424221724614561841918935544599448354437222173263359485967443576466974794643391883178132541522983370147661303768787011260220025178526734777579087296158704370409184479419376385967369960471638377369755345411760610870774538872194342739591966666983371330908776463450073940433932605080313197920066368099398242708894454224674871098608420867901713078654246423595306614885006614488067488258614148130420779362307273474364804267919410337562786523520355161858331940876152863410686213108364428494575007644431160158606698309586292218966800247703587810003003959187160347594246686926226289590186689165473129472974199418647502408498059386048297409732437781878615249309055210872548795410099664184516719782495577743141044205843382720681319366460804537494655683060967848963739946452858209317449188323723748564817712476294143198059753897957802510140007325599514225474696717378831282696490715669684898579230729469251665795106000839890405824304546938953579557839291478531193225886109847456568455297390585418762925045908336535994980423547602870702368911909282110011039872986726969243566592522735565585537202799337841524090631346605805956944388690830017636376469399586361640450643713071152851781721468358218052641173261650170163188021088601128068302776636659001408327491095537749808198751071752516323390373367745455840778772752144300005412185295154174625326450700428525914936949219178693127927710402342211848226976638805067414418211416424869356362189363341303853143466032530742309257725092389331731102784540248126780644614808144836148595827014900313523321330097239711901873810532117357151336021005079993710357309447042281412342629306657493204126738410894150878955814939797426651772211326218736241073520648135692465883789501611402890509411356638210799610194622311688158554898051639456832055562351644772197842578912993309360997228160944312334379664038109200256559794759365755165236125938024693075515072903570358873492096829103158366944791223579280510313163373630828751960000636186466213857751258612375575343335365180529449733712378375515550539412736984492079102326611467855800125224540637443231400211964992396770130839645791874613864941453648433145947803314305796631276015271146308469088626975397875287954209784422681090922205386340974912773723575860177903521529824928475440213582398501701540535962870087902937873662243254060729972987161783773591019292663493210510379991135009907899463736118285431098535158738912982611983919778808268299784648539192701093537014375111061348156921244746258725307639270503404612326648893120252272938500275711500357783036975938077691056113010167853301585392025507897632601601335192687821563113957941953951774211927526678199460997775414938242349322170605673930102188340812946635324084054479887203839401014666320722935979101386027120802782969617784927008053612101044913005351706143413138014209955470547179712555463462504974674160719405169729228260118002766204973650615255357959957509182359735841312818979262929810178557916553011277190368715192287575514849096721671814404272768474405636092219796858848338208453459311346979251007900173271574472734799576303837311108770951079283397157669492744012030425526438492861753631935790952191939709197302251027604794811370344985483527353159070232166733451013966373023142499876125238602465756015379776337841273555632364773426544306796390477453331435628798512523749975401937389803658282545326739135297723655172214735817642782574513069291606485731495443259100108793155435417604624588903292561424207424871898466804637417014280670136536561116921500503141556247462258625450432870243292980755979234552916581904475672327253037324018518298299261831862096252076198528978899828998682721728547037167329308490697422275888269876071871864268521467611823784539814190034484955112022601521919695637942670921516073885050762247575218930832879908209422517064816432226093416740361191717856836615130633034806905512646430780728043507329358207792087135882132116044531277170872895529648232524993552128109245631577055683992235333791883101142911879542637779047593823857691123973476633867837011883927314959308284031525393803462688514301506593604935327961431751710743609293210182948204442685394780857073597386146306916940365219515923698105202479575927756430901297605928110699733668050471722533235054530646060492048298667119484611946646506648737486461019166068886551268496998551961174267251234715097617609679747712368102541268880507685099429289485514898220756069538190104851169608706938654593116606414359981392837244380779002636866474566775038066936572885877494612961881502317741032185634291261339328956569007504222210058566980360062563615860818665606417107379786938210917608034772757048443363571854097677291512378693062423792608621437967988836221059090965896624278043295629149375779072122044608336442271585899989338803086294162502856279971467291481937605380252363861953380263272205862376505451066019937639419020232687218103703232594329335390030457783916247455121930689498366400510622978775227129012565080946140615670627390466915218207712807639290313690901191763016420957136534214441910834064902889757509014539466103730603470558643368090281921938931051583813586302462118457032604852393869501433954198656822880540165897190473191691946002974100239187527533364919992802260965579751099432797420507240959420146798300364799305089238621432975820060504702740644640863568900042696955362314599425024731697841931710240281404633011231916903228084854038995694936546398215618013476791610073170317437356531589511415587960161018264817535399163470978143856652326921355804466605102334771409585872124186386526130683539246261036870043052138542674372004040814252538397344836595443202970462762088661547016732080587582789883635185165633038502274911922257563933807426691408653251442139153888696500380135351376569290931587625366506316555493557542288236775167140511235715764945630221961975617145572051100911573853573023273902407952454246058592649086828380152677964425180932380959422517394736840293075682040734179725367896522538567295342320011087362876551898679349859534062658844639870684237668337388196129756359798443388138739571258009944250456885179153269522385838233350655199304245998568264997141045368382428824027867582906214940268168782049357039575772115320382802672653627027532263914191303485136285473902705405287673690933940150854090428289805166927548588636573800301825592244952883529929575722013988596847563242167897374961987347487362461428093153037118231964629221498491319705294456728749802409921976214614754062371966114336915876249904354143893028757112334914229764658892471117777696549235734479627797868011349662246764916911812273063758383236829472473141848121950557915782839117487535927434817404665283446151443024315791575355531132416855658688163225257932375720967693988636818438111833228478965741025939727202560805463869297978637071009068648742437933983638312244250605970112397280257976415235352211391610263504267685329631742591844156357523695938973007496364416491097735249078310516342193113260563862317611106129843647475162901258248841353616068657102003302230517332614528313754068889550086310986466260646318099260168930690511201025505256441709123581806770331707849253898608577620398625593721761063681343906400946728845996430964815064243911432121058680308287468806009137235616813721277254093744950736326118949052624788334424485461372451159453239258429394650589358618496427878406285429755444087500580295475372859239413422855322466379008109222645242943245841167911434834621892228225066555619835574301924666341851296373871013167911251263417307831612475307968698005218488797418386378713068234310814121655579497089789509477292374980307405231090058426464094540888408988337512013007823116313729822872292980712279613528520350149180992486449607687543535852814603584134069983236495352933747977565523953220865960584032741451844752797481514680389442557108399483524624854559763556613945458214704655311162136049286660259873486823000260573664355515078236874436845812986662362389295753456667337914599307955340470417003407638908777739909827214014091720180246264607571140428222431638787975687958428436733848735394743414865515163356787210158437244665083564085396068020747298470522755844473220160813436286034745031788701670491902734187640299846634844773372847096467514506566972641878508250015809734236623993873184055300272199095678685310744071255958240781793362501662502075687514406165570830435304446740469524582091751268131043133567430642145786077084298868912061615109982217962493977078008227062959324728694823242044763437245881154714906722693724043698019017553173518019363152218691682142193107978441462884771548268371317524593437469963364240844452609156695832497204284385302490137599560113115066744471591111605831850965576699872482633014234765466633296483257644781275759517017623227593586890270580367103213585243860432249009183155084299150817768546813362490615047797403220162275949849526896208072032757971918209663907646900043550487373862614458324357510458518225297390607687122305064117039235732152399448211285016911683369605111605125674249366515030115809012583589163909542676388052843605282681943394859904419643234164081194452883556583307698899911544490443088025836280272003367007126530814700367413105865509999403442216575372829434430066400054264241620780908114641754959029409681443317921601098973415909499575551361652679313321071236936413392995201384386999027917290492081493541268941027396691471616592140395925480451443980975649245095916669543808569153915350528669515661328082669919214974208448552297189885030763197071600648268653212944848194436188438603503038747707403959805050639825676036136328116574998666997000178163453068740599796705831621055440780576846728692609780940101974673140202254746817376881945740224388714182300678304244349089279329818960836389422337411766794846289296918983851611778884618244054266010919135636259243682053709593307612900224717299343149644877769760108077817990986016745103030275550732010676188188375759223172681681597835514561951229793089628222055163915797509402253073438353329114408154007790883987024811743349157983048580576062988041986290569383660596745171895323365889278796393602466545019846641915860219442735843199612968954075009197786929891655438654084827180570776355422055566677777948208115317914716201210608705645865800548081708286267439997937083644032561671284533842989120482823487208341867842701026061815670547211043544855471119518443331834949574338458394521659437636162038354820636097806789297036286396648630242244353279737556131761038640307285087115754998539215004268380206803618840727777653423431564374415581750253035556542017666044099929165059080996252492205076143198656863006284474302103948976706705574313674901340757452039513823869691569389559093539183111061581562730746398114196691541777459249321081583608841784637524258336319002927519105952239843263533601686463644112355407438339486211826240533413384504915517685938059146687780557143461471407182022570314748889953996625984146322241100556236703928817915129559170003296868368391745626753313451096918927935154842535367972696387763555740985630008994965774112491200695227313131230633377404571976244603245738693606544516267091866040476996720254455916742165516062770754149252422674342444170674194011490173908291653471667743433809498641033594782729399551893279739952504120529214791572761064861255260412174404716723510631685386433323231511518795567460925075387613501658919293047478960595709377767818651330176469971199951520549416371917667789521207694435208390659153316318916821948886814057028114194268780262990800758114694453642051789732943988557620620600256263579020063166018753688711888150825119818428343351657264391907445134883572955751487842336878569638019513502195308243969675708936801375294542539683058085879583990917457673218676697731930157603174795769113380140364969869863577825292857299864155589512807306435295418159836650038141104530980413170501100029666367777528707175299488049201119788743680632969595855447630248558187038480992193175088161446106554664641556473890022356049555749781845126524900654853256641018720711828452459693218831890079338232289910409524464569363981739052922058694474525349003807186654879039847573018924922478692244495837010131594132315210138096929359513266005525257667446785384926648643391386024924473676394230124243403908857839930988174737239451000637986107689574953312777694526624273612712552708202114071906131289278128443379796191369879225080602963776564291126507527141332149593706885307130963373434367567661964260474468900047437013788302610247150425389942706517364100812326845780846770654355151960548047005013971030469455538825713530113208600930587504664368933617862397216345122325115946923225181713521432386647950544151184670345211947918138153165541206784396762804222430403374088591589196734062746465574878749892000439956448719962506013839322634011034996646227154179019019219341668084995493189394157668147587527423488655169321336239347525262051299254279700273007422180672128513649213358648833210074377935332221394400740383712075274169220420863909815436488919964691700899366284001841904008818582653868715504431275316294992742886827870920863538062136719851877925569865751455241471465615723858227767722119176950338627078699505350745612384663586177602449425014426646354981630245770375359152539148236426376294754716498717440495029999165205749974840688586721401458023578302917758627238400388065463539324045746023216645162254094665239511998166212188503594186907760660709058693536550527746625447493872074903780112008360282718535289724306609955647019750030208040903034769320094968896917463648865628378287658357854162117643747533303073425340221812444256161544720623048118782324633848000255294118199857891243626842073063101043284887492030831249992166286412107342232854181880621673186293979881015180580966660690760497008366737763249411204941576838519489853930186491455700400418256399846367923838825854770218610965119514219407093915334838904648556231776098116612733321171401742593810259945451776472929521858708654588797295773906753815688680877012965284037381218036459389872720451027794153110918590266162015716853719052095173691040079436243923393910355708067590341123626220122163826236458616541083390712605893561547407210110450989466903261726059094570209152966804141333219882581410884387422115061436528378428084423939446989817289497314214635390652792891702873334113221170732907563009925807237792723442451709128771692009786563926135476808420653578131481039523951048553884565443162202642460108910502346418152644169011951396191779572251376816125180396460995454743252090221005076408818113356337783660046884127845506527640581121401563912965910909433497375806845682166196724123117814130339500593776367761870427441774651623119445487405678075719277089937921372843452992309658893738292190781834793981576116941282537029251457135952402178187669840036003539493339642540527349615320535037190268014572489329110818340744704619226071346846263842837211644414017389616900722260771639552256759259028186162464673751974325116406629410081798313785505754041563629956368783502945525602361079649165695466523513058636153542288687961936724682327411714270310869437662298966258096760424549035889646422637475205595272902092540144474840376881203353219342536877001887851957538121687861114965930303991839063457340408561742529962729763066846592275657320278295330644765527124234080095802706539793465775518749553042512766836931357351136995439143135186077468639740529402459230760620694040902980966439338605794022938691000179776593193158252721306864966718987378726117604509317575145829621483667151473720107632760547077382922436946631581030746574193513247032288998565884246981375973194877002622788137881434867366389298575781201440914773202721052731955073308646487648966747935771833600639126152632215246401608936844697503022552844364113924862965286991227309235119682910362748005351451433742825285542319517757999815011468041503696899049565647611380293879230304470755056402835973921707730822637450223939513632156568142868873522221674807606407317402610779162664461018323161565916845843703358070328933640897699553651500037322129135925471459246606294350996376189178781617065694854806931814660617723499383149612652123849063886319331603059752623968681673664190896845699442250120905685715628093922550038290054726023337668797312553118536489023818602168262118706126074718651101219041552455611627780088290745121631540229632512064579402632097607341796737548622049099697924874906204219191791306399902740258932854463823216879569562464934299102414272507899562312441663227385495185748316897401770887839647675687728987393016320958943061850532974128178390869932064736298922357728716744044090118381073182210890423595816067142951666855427392377456964500176201782399977861127031380571746736074096704132968870403552604263396202173123312836572614918052061363618352418610102589077532835415483356564887204032514986270469001299925376897520425977427607653331478302645612450215812766616542981614128626974916189118284279530805417577815748046426946280915601760695608285711960295182480600765879033894977594799489931283797031371868520136921318475039715876053324367123011440161058222891236474788323242198408238889358644494100061568363745527473934010797120668913171619517862621624674494889239231529423207537837335990588057287824685391735870235760998933557061776736675909506655951781997421776967780449822965880809460970981402719309033407696455094441186783314377295679973979013219086918155056733681832592530946892659532891924695633172829884390779390756794407672671021400142865065443873737585664759587705165850911803779574286513729787533640603702879240752614530470307434907776356063411223483071699130588860811885171111592005112237657063787374669354102885506049926298117800474399226732696105190358480045316982487156318862160122678383920967321164707325867874071230293739305794698731423623135717261973489853907622737855352717233693385665807374632574828500417930050373207676061152271826576277134848198873565045567342310849977422154226327529944728330525962228974682973245931157784660382846313895898154391603189874885463640445603664884619363326559315839075330222719443378229845058057599355713249399649702804328474701768914620145956270071561658597441581391477582571155472004603851158544019378816760750710036533812316007262450099438964027667500931409329699237871889557592525246737579354081808025634893791162349058966876050488975621105375346328995019310207337198715434276896966372623202558537165652614183779611430227819890679208495683604607107907309274566541990238793461577679636169777153342513740435462101953302235993614969685197209977396287498000658804733290526750838269852428049832403184802539945114012376240263887729994889466979583291135173723122628417200084481721701278599307378805762024565023768489355745435511010119975867890526985141151658911088983025625786013873203392492070624902420654800045856670334638892348627748282945998924190571068829095963666645454872753292116525395922094028678473107692210645978259058622422524699252725976347317882180490685991317498953903476973225138611398911935046578111985297203919244433376401154393346076732400993395055089242870224682200994154170486692430732756800276949872864730981042215307435915582612743452558775747677028434313433587160666892566742487068665110618517622132623212611487074152694781743824323920554462861571511933077291543171377128107741505619341740026821156955563697218061831566569799738565062009404974849374387595401931810080801774087115135982885664313467686878241340690928839112855767732104080050650672197234366171170183155931013768475827056878842365132240025472708537960160404346373812270405899550807505319409713148815675137323934742045706069766857924536109941060017162052371806105895224525939690423907168197676734994090871167262968465645870765080079132735848272013347851793936685946271231280754677882117915593969616837201860427271004077037018932033703095406915312493910109169208663477609632789534607417950355043736789181260537949406441315732387564705984790079079857885158951851325082397102154497174337710669641136792832097794683216523862985899794201262696973817742991755407844182043247791257443246280556039110076191581848829568746047744611365109800026445231595718740645625849963533953123166833646251658715809204609627435288686676823644925601629554314226775126927213861969739612399838952109431982238531953895107443716831961873027114802989571991679880221129253254936767649471507648427113412560469641153231418472017676511596865677080612165512066313302968816139393614088559879194200528880471702076751950711095519859822234326383500647138866671605305057854737568417697117964730395984803893342340220800983260207552821202985706430586741949254042019588136466732689402571011610735149163080996466866543272141443649725490560716272692809420450674139011972889510805872414827808920592317760295798466170894012553612115950195823635650458841465639615808048067721241048022424946309464484130357134656604937479595102373936547800307118270084254371055991413210175799767058160725421170267687535848972081998720708049726865134357636700736659961503959155196130111119509093679183199602735520372474534338321881393253864257828584016237929735654419537317234133909416001135974498137606419061815826954171088203758584483927387314461865011433731714454185333852079788085022177013375227654711030934674070380946988573734697973710154621984688097640950983244714427182743130864458679918418659540804970681229756226212296769866512406680323290059708581426101898712501373610814930788088655281713417369422057367863054538955130407130957454499709446314727704060419895188157138996092042094834859266779505664385287012879549854537044219615899745513650392736082350450384869116054462075097643161779097734106234943156200163517944003914150826675870437677907833998125950158551009050876965893960106568163172045033004078694267430999792807041000909407503072614876528684985827787927217125002558003403486617083469826085075804371201797899151251253217332860118047914967218442759159721379458218104027091202146541012059930568364872657779250150166489250410298337631681789182738674767314705249036854269036591788665232840661705673013164565395162629925474268280579698721634339477846895347132278618621801093842250508172806627136019761582234436969252664070433645706793194632022887818835108719591765789371957766696621258503316809676743341227702727973894798041503617387539395242197752690930684022381797046016699839897719737826018778027032647680867523343195103781173848880038112932326090848786447398038160586420234998704769827631820141724627351904979425868449394468443583874157448521352228197291181901637422276808735190606453535244901169376680244201065792453836967502216379284686073720250742353705652560884491230664580498089406502386018326984603535037253551586462971147368890487943116868063514562806206370353182519168161830183895341726279664770380824066985098459460995737676361908146773697275762423636838551162505169290723496699120628032649684584042448209326393795993223960970826063857755831786112804793966863033991752032091020535600288471864002030896241636818064463827171618950998330049440618642187355982772293528790505366071211151298551604667201164622965192728508140183646928503893792282994601347538244164753191456212603861822513974874419005690670595782764364354251110060150702911822785741888268682785312036444057287431497891010097558183668481861750720283282550612469943042337068642123792879706187346406438348834442808476914480191004016411610143902991881282062346708020582528568627973253695573028170223473339566065292557130147385568138489912529835952932088222749588113744005356699260646487004918803957258890428736232645069275988153905124727918536427501475380602799704077107751068214716436238338976308706108917516705942277806332954005963506632786199389558882362639473699682793352109601650338005018047963434221510269840495789518013357560359978945143252490135822140405870666190390641638335584621263104338549222321943353481882213225878016894701366648347630738140920053918698390300519898214948209990120578792947042946535074534300034883239708573875865433427920010945597258263987507378846077855960880846570594966899064069522477764677311426924802266535908059833623812386750112574871512776418276395348800084423135338710330249890945993220307008165611966576692793642356627570140936147739541170276328049298708801814460386035777624354688816843204735435797799839375905732304555661073681991744379661376709108116675291870943176173251730159761952303844156646083990270905418810562781904133259780834399597526011308567784561987347929017508861245019778970526783120295137122577474681619861788530064732765039427897847516355546546099131174468144290858907080892604973940669490152719125362216347981553939655178021021339773527355874564912316055621712074959443497288800798984676210235875737462462064003647163852491699662110153746357454568549668346010624685205860931394196254263172092741949162718895962207916117303789562786285215187822571637415019887691649719746142499735837279874885776685451972739035364110696046581084865317667317562443030840882265215196978523505276424196169230837835941905794343550209873762208661191107512483290550821502508074846734147867549570157559292515919890937165571956270941040053465991259767881431622911414878497372297944379741548856589738049060856094836495924006982665262128837307406046901698728061430152339047788160788401787604094608693664533218248158982674042564421910848040953661328114551330240334568777396304934036322601136387889489311782629403091568322483441486926803639275404585261176961280666054071427015975784352940194137288224098452638651349710643367008553723079609003144611604029730469689677209914287929314765532354478512525543379571129784434792727550838368993562413376049887340178216292488713037129157820410489897344994544285987525345348043665169077124477928236464689197887479671778496177811003704374073433844063299553641702596854034168284011152352905462379215381930394912163451719248332615861714473856948472918829580596626917728053813719092475534587443617675634569282521203064063797150361693781454379786115520996464562569976687903637176775848188061843298464674061657079954618166891249990014877108727790794114035978732103345046409037200185733375897315184911189569274618172124310955777621472611874155526046461386667647771014129087200986146438598784710099522589123502111405429098562022504501860248596165819448907972159203867854694138104548452898696750952660874779733257007237286512559494416802937759054833320669297301153708030047909493635138823296805614187681399308914928759322810617878373291039779491953739376625711033254888518375914307737112110581324498004089906270695800768964603250768117609696825606463896217649588095760545373338436309854393624219767544737819865688566157123771974229568860565697217031693266247508814899975644720680301189306024880058872468913296111093759886850485900427730585109930840559633599052699549836228226455553926453372467422355452114275867069303563198921830946999482311792678627281209810371671412651327839113521550804520530137040595512867220332282957224732505956695460816645310561647489892651838239131763018885774957470200562671328472460880587911351900861309831056288973516043544051889330911341256378539245001435072573498904917290653968558724379057430880732049027798478130059405039799837788334452397456230365372786150518867813292490294032508018077265774407111812883300859927648582579899546808639804594524739167817244251914700097339490224791987174416200788054107531473800474045802728214189407623746778067067628486923397317700134519379376824082914288789494944265410897492941783918827637259830919780992249707948416953862672893812224270854916831206143570757665571738784092332724349025908444607551743107758797347739007866104341868527255650916984112082461468163109905059660270565704808572893988409926146467576466373419153235865359849691291005435638916551916346511195203387417171283072424306101431297764150004561848696575537236675616826996311084478283503292299536919939646999851940730301019605024051343541034947762749137092731839871467243176121033286547120520044080766501600561785412851464079186301514588605987596245916509143221875246053403280188715135776786653582314573188206794102621833802009099019475742615441167340534190945056375045907470671253230460067024759161171798938395358047294338536696852014742300098709594621760232456567160369923782749683529695828792378118355550833883544120541913112959496393977004165466998163934223277821382154732353422661008673432756635605995302467616135501556425899361081256321463752269731397043159469257943529672468965925204238833027586803973562007913348095646218397413709411332371374063822400260489466928603029952804401904199185029817770594797347037432117006838102476443937519751551392709092037708692483478661314353627769046057552950189429980658795444050190499862687456918604174990793622871715298251777898482445713564344604452652269084458330646670324384929739195575273359655595221892700626087027840907912833448351271877789303252418347171687144952389891897328044861279899610638367643774840602939090588783625524829666084259332588170879387599235931585894774400849810384328363230883649502529115591864153517791633973322222887812401920286486660455969545375583393253528921999979910250914986121625885802275366628253471056102930226104995210813259497779513458737259076287690679028251287291419221338015502925885343135550128147200212074615263918970295758683572146125131755350826639825405227136817419838932902877921549577322248716523274941098488529271711515105300161860686391508653173051459019557454545608656682693358963154469743202146867343561368147357721595713863446076804040016829736155284913622920096929886367487674635536975085383524996140740294334490355300420950332646131981033392132325911348742572290115047260843331322561899307533418700660106796468940033173772262912572435093245163334075463067513036543909260981366768769047034714472474481318683830544267085874411552617800082397516736132409915454571366659574640331809231008455779019311582573589623425091160431969881403879610030343342156759172671761430117930321730637927428702257211580587165185582612751875994659898990825880063537490860861965103562194701334589899134296957443357632356898298858404841031713311243470823074302866433441753463867556519878156768385961037091769730324729843521717128790932950330110054552145528630722012370555227064441451778706350224934562351132655737769641679798207654628313745738916022597994343208856447564062039659074786263118865320243058188914120744418116986843672677305882406518291626665119249941614223974615861289451490427827689410768494464159429586577920779182636179381204622747836243598455054408549608408510961863678862030041554208251975511286000864962853946571121045077063245961833094639212309067654266029486060049452645422476195808215869321312334238929214321832878233455268952016208367919066323304583001390444487575429185993061623196041794414738207462640304594144746658264690651454471768257153363846836247410856575336868187631238789705332275068825171103865142050350554579079439053998435090246035665843166232840172278353278091546574876714012659739259532303366095573180750591702892544428112290099349066160131836467942215794598541245797986110940289680661391621641430131315448956316976966991445664129442093743306022783397665036859858423284454854662268718738615405253010208103771027195283383112489764081289036374497767339321544332547743590340444338071147002630498108263205466765756881668280223790435011616258873541077836019845985491842667862712789591721362859872081636424376020555747926974370777874231892469835217077119063938775835559008503205799565286308126151531590672264467082665425841927254607332096449309607472176493365686143807621725181190581987317383311984608553322309873446374970319510767053537727999163003973946913745573633428525855671104785857578452045744253672382422065624965297741617051233433394230856751424951676656453628841223490709663096930672306548126698526501724967672002219300863431902580076833041417953984839256481308177074398231752705354154413160038169040626085903862497026344267574164622805920457073709265328650969877822946111523907583699941923118955482607891068331836314243301649383923729849123429506084811948178014964541790704436928748672728397835908805420041579315749159472696227899827959716477739674057618014905452512028974222158170495074349799046327230689122606967352464890294512788443650148370878048320154090456486138029756934256391509015821797399669722750054907288675951843890992079720863130220807415152172029711306022658446919842525292828457462545757541011638408627780116801249739343291796790730287677649111737669178873611989217490407561383884078570713566843905522330563584325643701268123126763566571323209301694993933361247908172871864372263058238086964699698356474379706876858701018126523467667957107349780446991312525149156353918201961196892412848669299789075351566304469386942386885327836332895129662862505541642936784506129099949248564063081707906778439001856758280124065040457848775762063061654064392419814534405922010006709861315165013914820630807211857552962079694569347875789915859790006095221704070978218176253016390740464986390879085151998139041200520267233106683561821145898467480970698924213074467680476470592863738401953222810911962286055549288579672208732334917043415149535601904562693253523573935230152620360277490692346527044418718669014159040566366547108567089955611214852295457968341635154639385983841669834942988838263951164924682513377474667663270888998358836902108766081737823695437574917569767332538718711518893293702619455449732721279760638294999816048840001802503801568145286359122548485676859390796845345722072770201938323669778435408048429543412788950384784807095552207387325885637243865358469303220182978313369764282434022903459653035476795455313824953225579192074164390927938375096846648640185145640193785201913384123830350325784059778309520960516033968394672964454383623451344960412501644332940829385380366621182795747764279326681524216066731278599355142620197392879096323430392250819453224089512340949987163350332757251995282698109234373986316902798663071433381752340523145578467596006354499393930964889162052911284920382637573384620436315726704511647613611271682084748387421513644060757678590336129546936152145089181010037397293403511499017425625625487839590017651676460572955058871435854984631253058115378009150371765732966404889447811068982450023892726488484862047143873291326546990196683976999995448431622316371199129291535996424164858517397804445016458935879995927823768297180804293503270758310515963714153896845825568946664890748582934597032022462898718397635746850623849943893061646252223346000593705962412314505288425959937596710285459247531154479319480367816876864442733138387549546213517270097975591209306256324750168722745956328157635714133030392588896404542456289678574654971090788617538137425722442263441383890382679220538460036534775342443681615998962090771238423521008686643923784811803761892526051873362623177891055172075249331799719363155168310119021392293176349992718636343404440827124131614123323920273454696366937718027094342208069242276762724469186907207341382471419073679553677379656556650726660358490719322788369088479132813012071036471487054858940031035844593946267796020505201255101982749002174387551411952008904974615221041481752047407680524409957847554530491506370521123921064123265307199751883803098887479414819696416203148451480483987434437477579586660020201794275123184162506233819072009679868120516879492932566043819952051165037694689904835807712834545752166669870740226428116984602760748904108945022794719954808395426327326194392292592354767896851911909024645519497498699465831321985138029677034295343948702276413336046634309649839689265429564703398015505769663222514754988800492775440744615540877491289873177587286010617849913754798116442165593417638603216650494733543065026030359415991707270917195090040001517959074505830616678439051199591354633686413070373805004614010241033548191480518952869947546677248789093647512088661963320754481640366926532429101311456410631743074762266822369530902283377260019266470537462989222220710882133189840248930726314348888993872450211340520921704151496282834146850380911115790036263383430108238359462529788714778949677891919676819293894286598789818140008682954998947366116565916432599904834600657363976764498944905506620281263882792751687901333781296303683325792882682940101484708933596405598411700707321989946919803989953574865574414459487718236159344919237014291158437003504182170287682999652372823469366447313611392800824910226824981372070500616334931634534485940581557000276963864525327116716783334452631812740629546384107700349702608502574470710304843017628383431757347579738035598623180522729094788792882505694384404824814730006198782424660379829528178881719284875720795365319499317519675494835448413100703702576729243584533397248987508640417435703005945687019337621947091350089545484403028915157778166635050798090026094475369264278849852627141620345133456286320993674002739134517199832461234738859342421960586585993893777773295585342475795259353793568350932046837964625768845790655757045904776664509405295549206726509011759071155227870220932629268004038618963134432309381277344676186271721256745613214692583793710688245140921075263207779169545961904564034131130226171689546952351412393582199595249217952158096142369889775967827526325614899288743144515530442946690443626024551402749980918343911207054940029003648150711704310444472142263211198713385134698719399415520360771727502243221730698759930442972515957398865575887025126007846317719798385123651870049048472568620543588282010308527398199493861390190226759707824510447484403191022967187638437392884034718632157309731757480815989912805506686110624886458128741020231462436016463177348964502244231060130782147345896806080743884138548069393634948412207710186692746497435318224081780675884451432630643512765133888701163318809267223041481618273588759119157881195474036087723751620390485827244030955714299362435775736544515461184572646795150102461256340812123911774099461627588724129646647051875175820066152626712530742832853196574660410494353318270977587627661186175499686597313899605565791077802077557360595073712736582492391098888381769024698887846089386437145846948991238146702677692507030802706455541356011822530976530108059076723528827098167056117035762216844136793489723047346572744699725831729974736652947095127959737494753173811213467695125323091350331497451421312761680223735655036971933580464107032705963454085560226941007067360331531328409501535178452496601094537590342413893706098941237636647638416890438889421957150611187157566174313609995154985687778737922232055560443279850822175682934189048222333543798044279702708872165568271049113573143475649167006362307478444201792519258990322165615325938715663376144805440879139186528220614140561375378440915030800586276689910364299933020072657512266258695273698826966404880450930932721155477434840546731799711838149417080180446812059072230019403956314650295674826227566162437380179090067153138333881798980606968532820430553151606324757779196616737007501138557957029578038246995630579221550222204458785125671897825699782657927639378660002201093651055882980535652726027331229585274707632106984518241985543676043929963831460712715150007634218171414150684349506646815518413313459314052669007401722839910471296986299890159360641298720580171343113859229664189071284154956279023386570748022581402161107621861429101434903766443440371243804358108388946015672895507125278586476430899516168588838276036573334358221500554734877603936226014610093736224335845824420054597776755049844334412336523493068628437375508211528731715593769788050098040101314998631504580684654961596677201244962000030805093121324804055755811570153900426574960377666069148091889198238241659677088533831376803909436084337721050177096381754230198590827956489934224449390235705113849031805403112536525919307722050960749597938425461758962634744314859737347200727092736201172753251043335306419334032124829480671481526012488499303684821453047936537045402776069506125932969965512249714582129141894698285800775334929601304332999122254899660813634628945374506800097607726778727165478184335873711778100352954448687208160344850519105368766247733704173650415585081239583957514099323110040725512318044609223811769537650930049580228447729665572214338910197496644292950307160287243999884305325550019402962472044263280131145204358981915572254413589668165423389545366882724530182731590649109205048926191878900787912576400335096589888419320823512367690673084230307807543062001922396696572526285819994064764429154003252860204260080996044525383969609937031902307610125141999327131109412849307576912956238176980089941117360895258954395078149378422330017164641805680841563489609247184381321703809765948126626659755428036570965633865339796182045132990104941916107123686647439181614761874398128684043499237500570012828113093838708024940852357224207543801047302433112767179455052583598312077342811357388129534134760358128486807393518765529993868122454320312950884873021969213837435085101857178400749243157083004805857468678017067800387843250303797077267037180726819484707973859901370348269376854410554331591569608135200368965632951977046343419436109741952295865482351651335948700371617096155900321958400104267240738140177089095323120045161587496901018431949007361705727953648483139650065722194657814031697563589668080261565208385955501055413479013833201970557282033762920681029723537313839955476818688160917925129305903022120030446115126999865125767670562363212420943630501051573006723936546246519824984419160849097060989130176021243950070744777362826198357724691724467886423013330361283952830426704205024214617007691616938435675475182751656104884760124491721925578697771986108652655773397016932411784498620900544999597934154646089100390690715979290614962268637233184865928279901052940491607965639616352864100090370386781880064342175828697809158315025428918946139011184736942040260350902044793164226183040330843374329744138490415411742816410324210791285211454990793815445544154036052446217579903043423213567641312115539660084466921220702247235402775950157657720246750363868154925874431224683583194943746438995380081014196606035127026275428155459288598331098497605307134461130574140373049135958681782567282641026566960240969717572820063164025562268690208499668976127356213741063977493962600557312353393665764055964696422734881785320951869497198312699718474321409711980512981565995337504906900358609420558602113780003997106262079965251663944142778802455318707177181438711312857511668795333171606116816038762745737933400734790023331310424124944429810211814184327932521988285605390109740483891374082850517184742875278697553106291281962117721092705666969100319487773012972769110625480017558935736277026305761082359577702136454357815292630043919521662299005421108377253009223613010803760857805174591310413819627708992743221474480612614223978570081854682387252780770199615933360204747960463529168957360651180359638255731141778385540367958916094666571180317478370463419397463998957317567282230239025890529382109328453610462689671201743536665420195653745353132159894233601529339138966179713585642843795341610520911981129608203962379003807113198068290447385174186355059805501934754593144530332591628936285723113920983393945462765677765456827412190918124115628820877321616346905243388147320071006128591926375648262324932912064821153526660885662268100627839046260552669859620835129012230768258859011230257590610915578394155054531261485707975025697628491754772071740340984536089791614827657326624859116315630518819070367236614533020639649759410701027647695563864120830338852080056392067724075869545542590308996639648848925789339369219072555705990572566964545345230387324810750427518278564785473667192493059720036937662641319470164266796722701930786002961470517330912916236661357964370850240877870414789887196790584323706629785253542569275390164656094323784841098134736109027260153780802122826648454930840228479321430554910917634819768077555201095330859845763645882825638336685319894323318878661996693417741376521404639002483881588982248074806732378965442054494515126437181357482247329896952553357939352993221535226969816433192277025086740667670718479349179212285699768334226912147724844044167722208212783553464801189191488175998293435840130000819824477668835231694052571040712512757056165202155173627245313212560147763909937981651915142168962492547776090060508592280417838525753602058525514836955991289941488330752615391190981685263330478484876217178228271378705062521488344011177942587722755632657080114870165280503712442301678884065814135017479309216907514076088238111515584325030066854377953574189750253983816906037067868627999598615476074174317733071369499046674222443913184323622508382370599413512754044573782417678538932232315136876367799719737963034590437321190898589983039242296314556122264017152579765561278381309517020304738487097168119787291193851732934650539880591002238498300039951988710466620526645330376899093229119707526222876510658957098363473257726560031921852312320746298122751460454927394130725850530549836277675171590583405167787779206346326671297947216043534278860431307135751734270854988645978133931719342205781970253941556110021765430679297304219266138068075578337160064968044587715327014600373946624354292858661047070954781219704608100571185425370033379064855191207088662694619385603666800779904231073404577042391333968949236732841719316347102882732813478510729988598526949454099409746501882578553187057750153462791134254008146774544241083395544666642500588154982930964209121190353400185487707067167477709944193989575580597262408453679878700682322186569341884795996345529655320169925437677545243543176559849570189111940453129230717597176516588021442895865640281587195632309167434253852542658306281858078585847492572108808921698990327889802412410006844426039763655510702658008346628087894877100695190992205949686516402647881015115534278762523015809616533439413540626684901062596730949979403371154438859411041810529349354430554638383406524131970643476050014406146035972730089364071877456114574770666893446237199928557705111856660713185838362127979900060467471254624615014951707742987252660186604371026175692840000721643476955090299721720644758936430952217869524549927793107990919344767686396543995712066200023389431836727972565668979113439236567479348235437020778195659869817609067720034099458559331232074910603493376112116482146767484905172923760245781828384204600435166808932187631541222682647753011685330187482334778778985726606257335676444848839593144227157666414143148250673266386137255135726113121476234003631255174778066544315577353208120102101596292178157760326120322452314971755049185782601975792919419363692308198845455671347874011903154390632974506812620207071798985121363285659360343171936728763104536169862915126909831427747633808906117273215925095015642721020773816455245254710959199395821240781349981725842015873453261871160050084622919607962865427527130430096085313125577371016725409889418581970156928716152128738441378743364968634635336677710322457519535599521094736755645102223250354736822520210505466776308464324926489094801340249443879957176863451422510095974491068595777341814688763039288200867871725240311589227880613245535666071589277730182734309132189464342045681445608635468526288790847286553460165324220320575058253846952281407563246994489401241255734315289546936578982740650831103374964497914742703135724696887208887370084576058376269395438268752879374581636687230825447748328221614393554764116242937929871229176135530896431795160778184380954526229956842338028358520669757675660508384069898651724858484953973844783221580644313707269680257232903336872922912884646090044965126690559648735212065457261610492200733602824486499949505338686213043062778910211744071686802548686247446097076462120022059517202959737135562392156644582595676719955972254313078643445280729752564963281939033661219303331446663623421754142637317237106405264181248609476491218276717835684084763454447744053733177006357764426900712454408414511320885505568640179581745552984041631401285885513501482809672719986420640474282573764571456262944567721907230770232332981935102224022134231721282706443268954938081247481220613271283352625384660106425879054696858755866170364139913393116381837541948663358821745448525035366371020008326193809202396292284671821059358184084823209731526652729631768156905452327863959330504078846997307187676701055897612710162476694511338055757434173205310435841111063388963376321840057048866246340287841832207643303806298937994918019337156361122869508988397203708152954393043789519721212248165969102840372666028898205271736250542940648392093389931958900223537799785923940285323982073723225968248795753938808535694578317281272072667908599094683613210456163678473290770723166486625812723937262266915457355823575375504929880730381924454242288478951810886109781457844366338212491390424472023509220607627333218311021339383362386861967725679746648492182056695604345124844695177361265842574676700758072992400879946459598243785491757687606588761873011021532106816274775481764856282256441423246943348602979509413517076954276230705221041619991126861137871633937543166173974434995010655254373120839331603569901332485791601120701656487268880225372690858859537657498483402849765569202758472081215603093182330999350984482358883675877576111052238281191630587534268650182191790678835222941807861585030522649737818034432463151731170600761109907113053126732408931132243660751957642290438236437037022330903077920500645744025839200046800161001135503207312561703775278592451922949508895122744807025795464329478952572838655928838694704025522195463277020063807858464077713647536849444841561452448060486562479015582207402866913684980338314456685624998364855447480853063543141477259044973587180010809496012870902676322790482886322863952710143706570763048607901646214482664732662304399416865041388351034064690675116754797619491638612132980765670665350941641544326997403875242067593514736974640382774078597391263224902825859938208291876791545675877785536787110981169198066551670771768752859863271135951399136097516793430427884278821808305308999250720346564829144635346713606078743485767058525823411087502412998833785595791420559149714306017658453522733553993807378606920924615691796947445128644950499936697687048781835026366560479168776029498185425745476385841694283157254863658750491631048066599975402084329404078975001225427015534182451624569137220436716576462416087425662948210763866291436563268150869208122442783596867513426624877096173279617968821774616288278240032829106105739251536899823399786913212322491914605374216596957983106417367282919153997429537064015056134688265078463674517810652400353184454894884037333841208148434230620412642901576942806294779637462721629336097680085141023630991529994883171863707270054455598116819267547395739829164366240325091981225946390811140327803322568203122493717432322263250714545941089772425293994074574658057503662284794900270506528884929985102437916479531998488459898110136682262659759129032447479744341407931138112635231662981681798473661898188103101563174577813220488755673788799517712947102466872661736299672519699756122114244613559028989781071174701207879531906298300508572644268212357110366627649947218778183263035263170375227899811018600869962925631792443991086595400778574295515441734282840115161271231530372096823632243875184708080395755225334492370336600962531848881944350389642952448531450289168161326069909673462962653939546171567028101268825165124182972454092184424222581531930500156212446542758745089401408218646476990753717462798436307774786560663020610468818745502617063686855981675986704370996592715926885279526624038946623985387617183210107666400104995668909227953182454391214264368906073435885909041331097988081721881194013208383510502299389614542017407095446069994690359257752407684196139829541162964101218902338985675215481354829603800340918044241038689289468366823281618436564936620756274565817175573871529629009246861201977015082174375494001907633858065004847327904962737298654958036591656274583137479764341934419035151555775983925643880831940535412390907940406371053523598025233242596307154933813931375692593203277674759050160530590606349052803932933955947558040492535837525216945360142899454917722917162834360356600445381269110770403640058445961728995671312719607089066932311893306527908058329358870372012264828040198187447667807693709008974758116598810888831596560768851136307131563408720098694062334247722218389138036090842236545276074338975157914007933110704035310985126458448689855624071662380963784921507596608033438537993847314868603647695887570836174314955931836655562933897810579066165717526638338832735480121459413032872456452769615335258796559830126239630922598541207968736920781744150059849158530751403560700319969109367828027335994991299127859438232794399666103058546154830782084282192775509007682345580151276840820518069419256407997920536026435217302238189255295895089866516805602236487874199297420331073854418049682038389295887741936598713269266586039670492961959123130665200042560222164757394283475429189836104943161649583774537297948743469362236998134415085767142099012460812546305212158569709237080455065217725799232434858669992163421540016882274927907940797100727249627631378687910217658736879181947961800544155496411361578194588113971249363124858859889811408376782715798929134251995853531825337698363445433036046624291774931076341979589807665985816900350968294293317528151016794092144436667952511584032639437384902197292535684141027199400282866660019317902779884029572933083761154100652678687568945806005786273045296678809383999046837981099740334804516698782503503372219867347234640809690416323776696533559999809745901213166375320205381952547929039607437725139747130524515674295974237454653726339874637491676183319848554013564002948540362872474831712871127723569118553795306796123075645975805510482011322770228409058144250823061885114123985492541487786728319932971409261175150256077495392461458741057919289433385798636793451326779976081952083872664667963163582559473753125281566034161095787296846787646392272907973521582861278171026522757448566018649503131320109549826819834273656148068480310118657566731894418654803381437189918688183449143655902895501635842882183872031186610053167624137453978704875812415507420592601634886681151424401195425780380697782712058848515105296269767316632117358024575956471988322373995297543079768605657332654845329470795684279870469669620325048601069063095503360283566127732789010043657980361874192391503581466946787298757263438084331304686196734403658083269489452063394506344664154299023132253441984474715031647573539352470345060332049008520975276382021204474221531677845057398188224557351243095649965811383735023407745198853354816736372384950584211656967790157925210253013789920963944949995537505768492752509277594205885250908448017148926369035983686226445099809896287793252511915529981435219799368593197855356262952685159183889437282822747782728151322450518661744803589456412303108726866758626395897551151260139352064786601339951271716533895089382451840743240799456957659401703147209681483265807013580677299462762582884886662776139305419413586223645481606337828864091450504087427227662909212670047355011748154266969426363755669452850356781950187361230168085591791122614619048339122422587707009388689300349164066604075035293184008799992650118913705081174028343240633617283030013404274724261556467242242889809826375357124392499830533930095145821675393013696408261674065649380823721890074916787970827603392693192243866716781033377830998535705235622543189571068963047995261266433544990685388346365769175805158907719835671778278452215728023096896372276590781890842397583896243628809955853914155497036841195101992940794614751769261607395210886622986969612392736308457076854150145007708040952348655074243986700123352369941032160547072406510914614945130480977124061500032381777361739413640908197490395583266035747795355049346688293794277201915934959194441845016932994676658115784262577407417711660374637191725289010022434635267453896737378198945529664195687044799920885797198969190757166760403911140248325659767756885757303400251816217397204414969503749926962921054905751062508742489041388402901542540545244970699999099749096946251624353118888833935671263553626260385667526775755904538177447445543832607480653726936477178992213224659439846752655521355985831534180669248891675068538609345753924352805647026797663319722545017698530939919029307454567814877842840140304285215364439349699207290089673107449705832285377278839093339058806892378304513112215668953106417650559670416182249873136124848185935655992078556993806970999493573357108803402467779412405619154605646286437094833097993455038781369802704317025266230071753725809134133824172332049408837599375048096272881447493272522762596980254430065095655151163923518726176802398796577683250992226683738378201404550954342935725331955628724588698068758375745955444888379220521925705474099553932368875880626087349869481752196209781036192872305321518787100804768226865054322411809508824108664890917480900997946845710077452424490112536929441603213407618276488327673900680487448922349154953429890533544739189572773485467830493558205633794650872518138819388541744548860160628440108426622576651184252835643001555646475590329950916094925355321872588908254630929766301335788937382103736708327072594275016959601136582497997950575080715353923193065286023858855887543207272616341092477237829423273623999850363379898911037547127925372860951903546113839353037032057321189462431756828039539079594054874197926678890724037671047856420462773365405596060382732185886069622810290214264565309297159958514000454992417514693460554113831706073639712936312895912750670815838320300051518048270178046142859534569020245708178292280586713874601584201789736212359914491593066873678556480210609276452172725292128149669585381531255865294740819346095537886974631825132307866875670276028894414990757477173542691869563938414954757076596860527160805332065067111627104006245172123566318597235841120736275597343187015769297921712402562324300327068848710611135766850453359125529437942683302609108032859057491721196009803431056874479361574405556727500938313580014878012369490590772401694258475363646733829138277443015546785114703168917369819088265392150590190582115088588106406959562228210260853613295393211037760434555918370797952441203675604350553640815703695643556181064459986664306342669882075298914337261290314742557316010163787347073481062509146802831538423512394255120562843464595275129424453081699322589719668880547658294393327298262325206207818997859387818568540007842643221691474571068696242819259488333487949649916235504318367888517423907001291366965935687280612094434188838365508448300564093767457155399955478578394501645726421438733514682178675242292129473023009703537740892038038248547951862132587234439782751787596725352189275844841300845045003944970179961686477706991347830540185124707291020630814816323725640945761831260717895769199055804330524030192714052026669317096416980988452804045415704060640471526109866287601045819911678735043847342818759434014155717447482268738018695181091363296308440588495477982812026770667543406997798227256169976842994791093960952885011359409761339131352896629297648323831341490120321161473433116806893800120343928460132313466179087075559623821402916635845642985949885103511548434975138162497220962472524549158698513940063939624868411449684708706861866091292377117072252363451480219442006602793452672220715431988537378001297988665204673006128121742719523715493505760173910787818739841378044126266828423302469607335707075202740802557410045984878135940348028642911451598565284593171107487170914985790588277181665921533070374458760216196563934361438798165173706514742217978544456973982245005040850641072176787427322613906363484467994280481354764769799265547443095961113669468501334338902507012415851692114888767277359735665156350047917073393603640144679584848531602074461360137002603047269706744858331179393141647791138816963500359033581665855705093052795459872761896183991965277414492809840073206799056520681784159134130741288284442687327231886114243687448882613274560303445410481567157515446536767891943915457115926329568288015386331789927128833932013857884667638223426590284531934079203001310900158581310128739727524283132103794776614547524191372392163140776967352011383729368976628531683794615557090163555217600947990171419778313962385100997992582362315173401531211885421544488505647121467391308582897709688714266452933366956851625206348901820841103761444541140770385182999197557863277092909523542605628657865011825788886778734344106293774075730706786345828542805866730285788647729028138014786366510277849062186236922413609638994874579722570625283804579490528105442557301662776099757626665188863872257868066359614853295298145873808876686896267925430005625920279692770800062181032976968917599293595561243456695105526085104891733392047956617004076923918527143974668145957750430363965026856653653820417600132811540794716429316818961310262849799746895387068902162706890371394265946428376573922668224108153387030094916736750936587762518469668423489108561900967327850960400129879504329206749843576869603236210415587949119712330054781711000032056435167814005439102194071523716052054946886960471791212202419987193160367244811962049028630636760831196193800768670061169195741065323816766023182017212178693656163336878736120877411470029354700110016068907829430248921594866727505253640542839623203334965719149473321688673083689928289411490873448891531346874984940309080430129902151146890027584296050736096593993360588591423513695423361669182621860430738845719353713853401967870826078014401970097508185128933336091613286744811174219818349198751396764285119846731703604927414093179694169650826590604138902047329405879072290455463241323053882798133456872291324197274980440472376963783941848262976309307282296806158549666700681438897107426334903836762843909993279221894022196101722204783211437434970635177427082413057518497864350650900239730781164251302356513168825781198864138713501834892321829093698829233018177163737806108505949047938167538419367318090204656993038896667751732522414275205244424262016117529581472491852786747428340850854340458822267761651966924556443497967219156782709498208640098172762980960546319523929495618273928108802529651486166563024595167168939615766019983708918879482907647801767544235706838317686119246493917729752159455569183747302906562699423332325466018754032789749470341299590317260232109948987102540810114950347019304946790772726391287435670474367124998678460513388998235339231134177419475489098199325767990531524889403783630895847265020496031948127522352895004076633956013353819957675957396013241615959164560729723769909114590967693289644878053403444914805880571480600172662702057112202333392007966818174655584866623403857585927861338707111628645486835316456240948941015592090636135085668462605386736867921458906431037994113200306465737504963264601682266547868559960277131083192451835595213777235312796793127252420923161087325070699771863186971552289603178214807217283720079907471000095719050037778636199603803855511215738697808589989618017298323983354903582458473233543009419133085506008129868899629452564189561916801926689338855388391726591527367724633175347208543703037440630731734554418246969615041908561414402864765905083075536362118555585877170901050219032110391342372850959524244652814511402150276070543387631231600479125524118480063974841499205267732413184743699747727324975980445916787642987288515560953314273131875366321340383361483101916482702768657065806896006226875985593464061203527888363781746888799209701525964592095444145366516448162218682505521982137927018810459583915511483875948758806725100954325792525098077969034751965472527351152135969554513240153795578352405709084154602278742854559020011666910643956068644965973117692328220068001294755592635200299907463587328503832477519359719725712295851388868251006097592633443218978076997925898000741614076103920170763919700794815768746242561188732423958189207569063636599550364557998188918879766028378819210424295685423442364755056110052507649685654971955559368002966427109951037551906571143370915641937005201704239915399077147750271585545704036241062787128673802278679246040461188115586952629897408681650038835548785243656998599066611152925226129218705861106482816108623002835405457209680548439567816715460980369593665968802660605448192697523162826096784105125605463441389362694367516607855788336665336687221112948760065219617432621344171565792766898260425239205596161086023383655167355988762701872305689795151310809951802005401557602545048926893634395111209062035798681196193318807335073638579200382091972798534287931794314718179031516616622563983332978541401959225198219339548958134057381862833304720858289259660124900821230586002168336475272698582048254473873204936672650506190756133220038369022393077417306437132783382082997120653041214612216575976510891144544060967109612229327034702510324805642553100783075778582371620594826359886837222571964624695944026970386677806361024478864817037228244202009907449103424243292306065937803695176023682713258186457663400891527778588361543947720504367186777029574979179768260258331243826506786739665499959110341868767912117438822718113568742169771785672754141020732207121983889361378272187730319182336937139918995998885974003483583881518819052835744939823230115511269438019960432443768274442023001523416897814118780996931871043671169664715065627334841977312385504017415227845832558817560521280161116694509961608178330195354037713267220586892398576057767268666530102246346006964238272735544162562175316101865617194335534037597760768990353173126698331257465596339070510807753729349137328556055451303212983878856643136690909145901054380810020375721572007396469486084200036450256845495902550483265942847051776803033516199667139477516961676833678593873028754395655981031950704084820999307015064157401273979157506366337937680550957946409589731915713442080499468366219161440700876656394873413471599962804563430876423749412225486597568842002610241047000229961785061281557231380350567202952045721319106488543978754562005477574315918034957068811193704916634523041040912753712950747149683865825700873171661641874540918664524454692496548563444448957347309507184434547890459456352158650484857564159322061040414299136726274441101616393186904392046673407752793781215338305452241796086677367235111928825852770008960854830761173455672226169794651734376908189961143527499078723421666441947682706963118830147138428104803362868014018622517032850956849066461860106934652917552051000820341455990823431882784575725329121707945415680516010972976060219833124867506627096355345518910019191364769743347037100855821472266591564718621611863053925806783265498605895702300129482804802970043464115672819572903507587488860313519937483925241641136298701460853384526918304851097614190039972661900589458392184959167806954403451396223063759437126335100895592485840733424531208151533431803427688671875299435600318381944255315493960096174117355595029424470244380598636899213839395111283347027703129790513139808542193428324111826006852628649009116552240680826610115102513700842596400727703875007253670245395584547133615801257335558878708579047049031374602873749032342540344094926670568771403089525674220131394637636896235100252955234472104101983545683095018233043321934449583696279976977465352752632829377046394701855814773854988164859058065051161131361856884058489625022727848448341347300088673262579712483484167714207551267219325034112587906453473786431138282787639870393635417227008597820512973037558039933977254779742947520365573904085414038737717530849457756744678592937491632362971403202334334127199177413954348612318189825512984517029202045504804197871077618407431282019322689783709422141577815782322547091264416554601194108874807581772792264664864257553126917316623275342712337380827145947482007077525964936010827821364329506197018072811626630504866674405648868825038993861689159200874056203215557680241597022694415859846404569282953880262533751308686722633375860470477683073943867467343354896940169957113719991569348950737069155284985316771595774571455862459834885417850605345665220640418393893508454792138961800303656971221029921854052169155401605043656811867345341086244439975048042232110534374872484704531433403997856306204091396311420584154241742153379625249882480043468337701188142307814349586743420004779121848701007648696580457042864671382855930655216650309563519334425731420425204004820591705120774786025389248424686952863954506363869927308916818241667094881812388373783986204062489693422280628105355214089507714152473556184537312446533889680701387380167977097570949293411997279136225783049242200806727664734370218205788562518689907452629772748997815883442757951956263313380848820173075443559059856452915282136045821758995784388898545592714248020547413083158623560272148010188851906025944401893662317152654270775842454714437660139031779061296024581724961300026075357513356243683714499400697282261400715467089434098032267173110525432038369085272342800281643864067025247895954521867133319084752425929107705503026108877679514616041258764255652772819167706042551865148686016497314786544032721821589884901278654905676400196117581271721701924461544678129179009269125936656763821729489766947497547887298645270549002512300107565020006563592305955705097117937359621457642690156358697610137579492695958340711390319321932217631950880684594537547019706670975087330642663187525595644842507690199850160758822157164088287659667329510249291474438583182199961446453429507854358674992377528472744482807375432502848549849967804689759615214794062404188345600755930000646671142268423285997567705002210131859782609950872566544937080766040577210960337155535008017139592960086033439502247270915656584062027421233630102951302038510348439758423937468728733175039281700289303978145156744040296137652320871025738404257077847780560364664319523897653103731218593731273468815745134874802259704561368037595138056061686578592775828610373456899541632757838789426662380000462618343200794075731639846330580449431389250451081072517488083816982053267508769231414024739832743603321296557366224395487774975994038977069271509165193646732433581397503169938407797455029204706833626219997919858389139617873187982353688637178116580158294757965914188903486067732270282291221616844536609938576162426985151792928226624789549951484414163587206392668470253374163182793930188262756134204420955129601375754603974835775030824218344105663108120681518542055847329353444411467992385512298101628658805465229607299465627902088180588985679214897822484848548660882308919703932640565899415195485519958044526357671416562962753687278271515536415340795947425876373777856377887610503819393971330971123342294907470264067751345097547944159514826833702720041273400088196071021783386144659285923551956362229606177490617906180457329970583640321590150341412089946161467054056393201233912477314584541691556904678150680749927193495211512482613380828709948148719780252389706005493228417775015396673986156981904359261673402539037766422762020532064018668850446507313201710200460225916941741494172607330575767863295521345982063851171277006460216487775871818561261408015995275702705928298024638394091281822183869100035925037364647944839742493673265823514369375768033943079592924004831406840521828396912621082319715473788452264144279422860593594780916774182964634497303374561943036527230606709746432964317647734925466907491813180392807831596065572397423818527030851336166044470755376603780847346706234016534705896225408924082290260524729216461250831229858032633919637470990892893135083377957654284695418716979708719605654198655423681843611422237132572178686353866473111432006740362566117108120252199872202222225041570279496601395084519168893763454836611109367772123294945265460250841964842413794587982713642440431512321110081806029373965894169468626355512397625185558633460747648425700792472835325070525110664021629708748933683869959428113042527954103483592032873614618748905366870173184958396845243268332486736737153182639646270534855599038909361693032283228809613892965141288007818404464609640099496699489717254969114991263148336997924502992932759458332243641959664516100742951209015984962647311831824595626931385611616134357839690262668254880558193435014345122853583693126899038958293296140714420439836588489757470240454419946207987132284117682579845592929491125452723413213928018235266790634617302289686217950029820221645340978035530953050905531458316725715318007055181227078296121199805221984500413717756782634172648784938254926183023768796476253226678840802560329031597465642556172941203529322951682437126962483488964315186818023596399866526213831757869085185416638969217033003995368677482498297803443636850252303983409973351492293992201552528840877204914880954683890368295042888249137010431340722306774836907643364625586919983328431607477885703335462010791906800784591334971591553662239282931287172039682041518114646712429857760799501083952485578260859380523356189945046862628126172425849826578793129050120599911807125646029574191729704729515031841455737021853244012089183228237435675468301610738567591193447489293796923318200615774830645669185071546553585703713954954765063557602500703024485637675523633433517735614598986915330888271764962108708175343060380984975492636306835496185368599170584978722044340178029098895551531552476759998666998443976008082257654048872830009814337640230174773835234835625454813829104558476468270336746862715270313927571402336269986471939518015328322799649640687336832538564087290706133930190677453139779269110818512916359405135497370494468641710846316029749466919972429895277792834251272121457403503511991780602768023636085613553709230022850320383177676164391443268069528577588361644645208559224104136151236041444135048193152000575857501189376101041853312516591347033677713918089008865215256291774063174022214792504492503979553778411611007142402071487150921453142694469946548468811075902335073427999011668334379750774169916791730962881323290681624817965331798207830815065534598556338390725886368769137304602313465855588306945587409718818317104439087483732087067719877513915469768643240910080272379574660124527246097727659217304538724839155591769207857944910631948717867740580260954799357478676992087864235721184931642251486978142744672444752380723354714006588661255602828451901140206146373486238769073630334902973695747105858926122164050796179654431614875559842029169501263976630834754204985484090300015680067697357250535910618384901538806650355699777682608832594981172653256253908684386841975829332920626609994309726833088511144421810728393247388835272121398298087642680031054698003327673983512669492622668265148558244005416874812106882154375688786245859881648160995965117209721593716385350062884222016166478464315058830446107173845647628390198541647943212684912667800358132274420954790351175803225429325872669777870390720295729836024753333827485883288955483804127433084139006041322475448914397498395177093005629689597363983062036482083749057648225181942050123754927317310623236076679294831744077324979599429160313980267189124351010869600093822682701760441652989133875525749826640600293788196818427258103110013603880913043319683311326737622349713114407389936720028083929981805778578803357662465004055702352317034870864554741360892840725811001743633236772413393860716555252467096297140806599922977132041473475965614854753759548319981885356732341955049305399046406266301853635523895770097048424513090709065374101600732449532427674934268518849312736483408348432491597617979485270664963013253846590083457594500350533501165121316693977545233049065340343167487704307746365989721044328841414529440382109647938292005269078108066639962462767052994465397808998654588183902256355111705646677191519097002412213293271908452227136987469002393280165385932072735526088008098945029375738784302558121863457475017745832072390988951441915306386176241587362670278377295835174499640054623449305721764021852760927847822178257760869513761037516073472347804718736066966510551119034433280353382607064052390549623202925669717890702882467727160416905324330411684168370549948316523228323885177769687445950879709084575924688681662022331960826436887225751501372856993936818557872744090524247208835276684663220577911768771101128170579478637968916752147770397444281141754035958709108845244580888421666086518534591486727580090638994794259690605833693971230301977484911146667712953447161597700107011752243227473313863316390044567471376515771326568825909336896370588633525698260683953430978129839769547082252078262034376665992111538431653114544365480229920652068638325759938391084276180264384983653167418469062323796908244511040462729275630742031569627380421746557585159988764318026188639074186648800577240536733948550028552427785751308837682179133099843759821568560076201708590992806416249674983989796921087164884106332568628029578410722740303547786787474615207148570076338174060200729241082599339463925247457047494134113554141578720408500057314795996285548502417440709922779323778917801789493874878048436694707759092056802503802146297401401563254711635385327776038329160091082255425400107468218758821637839625701782395337749771353433169634820705931654451997576615346320167512439698756536932511455080901123388981072066612823351805329807336401541575395650591856781144628528706363180660191729016445252928804116079980113276155574451912619451963725403657812087484117227358373472447346107447518175783045007389687457722424632509595502728947468367890696899783744820558189026286255892821249430348132791961910851441213089721688843169041087332197970709083570520804964329217535769119463996313363636039261383049027574982556486065695690907269979347547037571618312046905290820687220005068832189792046846959535695893499626544059470043610444146031049842573783452433366482888427637330721074587959363247657285747750640601980309093234005694814820143997539258668873587534757319227975343657221144228801247129337585495796481894116774478816292163281012378340159993328374030041880663694235811024330762875886131642134614274160990760154507214636400325654553771280227211516305661040577554360205401337422552668434890463942911997595651052919686480110271576495809082692308335622625468503872712622204278825610085148061650401911165331998409538719891665455381501512539157234299811334241135430771090783534892220409611861922931035077948714175496720058839646899804274751574798385150964538418592358713518708990224797395604974152836815932553619084579744664373201157467129767356675486911765595173868622087692947390360131554018172638651356315796236269884710350402763604165591025984723906550720451437623578092714918639377412834869719245872676446444383733250460077194303933200044968884640688809646633543506364174850238413986741536855948062161588032037514291056072353249069126984981791387334885559883545857795363473863293846647582171535588773135292546542751661688688434599165171654639973353312868258959658973486262128158619030418809649950164884303916392877865993088898080127411001349301627144915469888295906577845834521705027161966687970289772550536505090460017574853100721966940284817807703088789199269843113682744938530129764041006212769466454345830401842595280463283710014812408369182945805332916146698658293780433661418335388029642619062457501742494860857986747532182913238035818577064517094140428780296376892059856908222125435078645089870574026185699969360381300215238638954922366655628947595060655278955954940139869586149636999131890211368926926916731107777451930119045615407498750051103249550747569778678965204742314702366506851458497166203812144202234058676674902071706188197386609788224758070168428666457800610347616954056161627313734761138256855562027115347110570761578616658202647709445151894345243069651171889753141351030886064038799631781200989981549114317358914866865121689850918802402393657285100880398909456563807195366644038037776194806930731956307063411662805727285560216449309941631642571630306300331649267629750567580430909876476975195598988666827560125933940581348386090908333147397513109240154853774631166473272633547331040974289505362053835682516161298784443781913917615213327843373476211600779115516789074784303309255821470564570887991180368610530464941937122185591725200581104281750696868434297697431838567999140859010880680364733098457195414265318423841132142089763664813109973449478798844035627370406619599598667059424189561284145919329911790232921319893920997771595321706896756332224935287340279792593963288197184906502124910572353874999035145959658378806556892530767812589322068796488077415900541022562489542057926546072092464501989630583697923291796965409006590009387546703222013961674167376324412743111834031694011946395057955999032796600696392790754515002717042822069279875518626728272402184917101564794080147289549318183506548209945091120747381281109107889054463452163395558520811962096383434280791912128486681836466594591038062739809091171063858156417059247419692930957982839113941280450845770546918947658894590123507423749092617243932829779039411652210527907233628982625589295827308279229183747990802277442485544573622512662510151973766380364417868446169243208724270986482710547735250646031923257753806052680632073605689429675187482157485729207598343991681983414281063487478473152684204695119501761102596513885562403585920977053243789826109345984738644783414849942999224823305166353754869410696739862665261958510936495742117316633923502808779206125376343987731965246596987822678859132753543941594678901349288170099897222476602254408615140703068500641779780288070159864188244894766405784482822435054628288377519543640020190186434306980968531355880529546834553306914938604548896532954087324878265430865386336918902065225269876759853756751668622364824408655699588691112820366944110212857932251580860144915919098175543333960139140347403991658144021399957028983595930791225538012230582228823733431575554778935000260028472212839679091564267071590930979829851402758590298996824001801992486776490048333136538385254010862829256751957477588462371935645277568710245503092249097099499904231936097106898059796891771278658777156982706713902286089065603952958104858889940201510742501625466529820680058678058482970643781652830230945744987902811278006153749971951278243936861747940511028844902589070184776194347305538274690960748861346303624260417957312229175500919865654432865261203646875835509996829653094665104654074322675146362383067631412218721448742266973180581922330828488965920380257604451143120850906090848972246062355196192129856866410606535561322353294756324184494143309240827143219368019702659268109101254686182335779446083917364132605159913617025732472462684732239378371946629764411976483447140248393799945770402281798617520407905460967257133680018944297338954323432887150910084946500058755457572192413816022864955750815094229028328376672770195755881292188898617013603045521264854735811675470257916634883606270095648271182114789359788669165077358858438803974185240100607390226559756580483535715942758510254759711507982868218267181274076250813483589779972266182802138046473214864731413607167240096291315370032449776563146577237996575378614762521909420047373565024674978284745854949290878435642478482129759839394199113903110905223364704090335851629865516977785697695685010371388122127619831998226401596433955315725636929604649930412850830443015168346654695824967568472165320682486745099128138496999544461523551970775079033379833345040195065473881054524209135624630699113268869244109030396844740150433129561215165656755574645483232149146266743601159816368979599223435085704700446993747282161765096735099241617247764514286827292644429224600057499700274302497417815591507870845320689522096082723764558250169387739678133692710725977112818128337480399259611453856119274236950156466028256506709377658674817034903425104579885007935772182487588615752573927662337730278283447140237496770989604665078716752450816207020981633049340169133384185075513676575144572129397980073814021836374338807629437701587298669351483045337082333304556809047048578110567758934267707750056771907136920985155492968415934102941956173734511774238543726285720950478940854241513825966741343534136233298663959054026456213261950706416671126124990415367399143916094717994377426056512094629287783131450596466745051920294232874473961594976189368509845705693214218064154057983932573776637272198321094453903968829141308760652590508274856887705667889657713564951150121592996581783378759838213115292243155628914165648560648165091069228765054038460377013746341899827879076249356544321715172432827830670000605093539391591365150836945272035928743007805163770669423249118256413233928009799881598665866609741103536730366965747961907080164793363645058506657028432769224946067907451994111704042191527550019616346886998656025445306312264192127353500005003317222768558621787278872002434245625282885559143451473392266207081397358436596938144551665546954336951156480948992079716080042136919346308410192112523834757566957633055892231081611554869810242718862216551149475955617195091532008248696081201838915097862864776795435218865938345866812019915698277167887831437167597932080155235484053290113404570604334032326087900075397304394114444875579346316346615499000342024783008654015676556103852325693342875546691418763927015876041869730542570156685733551740458482128463631621870124454085007854632473029678937264767122436524161350631162770162686403792123015999017664985747784711090096675799549268022507742182408851784042462981982343562684823431192984448857757130485371496190138271320461540972281669615138610231709410831287825412360757280938956797125881712862716410797895186487195953717790786685116078738549764497934935974481049371127938486550102489918518744090221816232580915821416344043966216718014102766404800264012019315176931859896436871156076247165251756005861521014386581863298061347303200802601095532837545089782977818251859629642802822324561747012407984721723134528311648033373275259965747416417603382481205987154555888868214921192335329385718641135982913878046493945193380953660628874309786042790740227436506488683118872326575931154338602993201951987904314887207690128337888402861981002837227447672466283113923521949433269370880937352298175686977044723375156362427387947067299962449493819835658879417460409778352461124489094249558839114131257319652941902356671676120701323605569399917661004066015492504137168261575714403701427284291329917615312280193248538069094951610219120517516112859333916113978990318599199343147439389916542179495884391001456865744656350287647915567355622357605251174193991161622878860306781918009154630930914037581282960518646265665721311742338351097858365381523744145379927661147119966031423275130810068412245638260445307395829112347859216182728898327580668946146804621547493360535188399402926114658723921656768504471805630641185753303897475046741784444814215115919172855016849989804178353592204161988313429440770782909847059347275380573960297875976889566837166511576315967360953158706322699364251259982790832145370978406731302743640522266423536163925485716131091809830668150828118883218672221485739856321085911186546261823293165706902631502968611316084219207365951742193503356372986582889168265571857450123925845759773540490767121343259640043518735144045240850865046939036943417445933298145288685963470751680215439661489721541692965676907904506852276162997454434178811003775621374567883546178821358859446047841104549880249745725528022506419555011644255596176061322618104138718594014535822276208200849852666883321997944871152258488954129122757387617174771067108145375009831239222151564357327821864238565882032272450779135388336821120145699398722951444774750603090560318073422004627537370419397693576902634586645444304178606551526122982669522893782844701533055273050762195253915488076902445625309751401298473908635659149192284016828964022959747262365402682654635348186745537699441451359361110209078652165369730671567146369577769408998311622238345199680137122780230663054916169271248696130711669008664720438739232110791597643915907884117684166154682036477508039551489699116848148368816005539096727453662947843873820064182299424416365076919609863933871644792873214963395222819871809098877017522896964244802050970940097522641430291210266137495410293596876327063211635026844328711944625734942392551746205135615433382152352980124022238734681676038384591944979672472015880268355763928785154350617341877826393945583213035147091973295893896470238355212509102315407176432797109019885795640701643011177737461397269977910490420700396193219824284158116689927474881087071486178672195322549467478292453285001421452058046919775542753589257449417208809153411707113966351563708419146394983910993861593038222442684743772791362248135815993706690187213384118807587486223775075145003141054037683000070136053167830104818301628174276218189524896414814692491873382324791138050282449207873593177852155940710635724147900314363439130543289884626902271094191083720112993914876759002894844425403985200556759215134007321709571620195324249096812220925020618932051094213906245346767629203280010101925050025449537338293885980485933228299957760319739833926130871329500009313569243965222959439716075093784375724176031300231715295236683744828378529207049130427643250770601037264672249848800860542435231399944102843382076025470171868178219494748591478172699942378686919354218387856192644872479687928079850931213411389299129167108153449823906139433423432944057452168175180248274651551891377166367540323805678741202386769698265580119394164708260494339378269487096282638351479489561639550653922637396090302534066698126596482176833605788804596477781340048826041598851881895237331128079509825896731806415353978121442832853774121509184462895626784217134278072689803160687268991099868017779718790964387023617699747594969528947576218307376941874010363252572610316371036029818597924288737138578395480780501313206905036168730709130750953719393076673230148178246917853465860820124241743650207632792617697237753756825675648988586335672317565262247075804892817926803246500909869813348796511904130394543493097988825095723363059724564267577828103160653819313650623434093704937567683237273013690126155782572931363370563224944728258249804471794767946882833541300709297030482414924095233629834895449255406964932358210179558257959896663544077331349548422254158657373846586960237310274184425698984117374913725891815055947390838934917197342390269869865877486878234561793599570130367090301634155344645227815059874429902767852813073876201925700803014259243925096314330411238579709621288990229903363912985779146923406755944656177774614621486023572199972576128825710585441009621742698984919785011146918149802531390822705484170489355593504024306423928535402528769703067375730942859431294796376299401027054539958020610869546132563781640343181255082000556835041983906651346609011769379255468351066814544956416510814508291684692819657112536796328532825498326659280771741493132298783428957762462215136349806215499694539285149948162660014812045119790762601934739195879667859552523766655857014082495684756609442728477437979266929136827395645136502520022540858312440707812796530598887921720387033197302799982679736466490863008601919919246763686998587759355154175309697336051664416803928144712304550080898787747487265364265936577650069011188000420501629316507564426162884632143352789520974352275018653194203840016626427457180881770127423894440671609892598221799564866844026715255815096805229362108863550811485070752117401394716152488120733646757053267371395610884884219857964436036032168571198310991500469574746970951047218848244229016665810891830948778364558669650926288133385038036900221263351548854730700341705528515570250208249078457177479378220716322994612250707792099670830701034054629214498611475229084802818806533749128207961940547982106950447563234719223466730404851091137725412594657820960674477819180552028588829540270463083867690624006822117527324058064758842389783885363433394292308225929336340518744204641441031574746046625663424946650678080225445954469555980754837597322444943222085666607332314540536949879728690780402582424383894343589105185366236401657500507534510421982568836906616652407001446827906596457926460500970709907229733609271980071531906509954894096405475786856055768125957358508246043169105464129729240152340745743053282190055648607608880543096270257082531824199944262483465737446190256423046241762633947631998363392089679108453355478222534148227772635478347955874657560259101212470844945263649842898784037613484943319980263868080872516906287642888321615780583227329731912395104457957128409611947017391547150497958747682660745920352154262127116792467867460970616549049307476529526928763701720480575239703967839779152391226618786927584195734656436401005203483869959708782935541291364213442745315902946021727930989130038147473416807377916760802641084082060102114312129898137711548591459632422222108904801594076815269495904805062234127742992527397759829044972516783009512521246362307840437743362563402909546632906680681117169976581570605712439202885924963529813989645560591838870923928395764272871616841266129814356108874238044366268085938952914154317779172668381814081808246641619058495975964646442054092530975392939317467751525424643451182224267274677280255948004928285306623314445442340641575250897949923575603934309060462557184584985914543917710901459353245926035136144573403618407852972057194914298550706985681120010020229422526580978423710455129667140033287936803788297666875502704269135518586565027577683088948877512585484278804072353313175536511676683694167577038298172464512823783605019674313065593543024741573121444274886473737089853645130491233025715951507341433627235244640868769956898636630640564957936394430568845925517220782272819114278115146049493594840124773036915288950185869392247843047211440386506642364160351446885386501823206295354801105874308726622038327448767283905572300285649745096450311877439287562258609500246959136273923503911745527962687382124681421922004542540817025343483936757773090424169056968011104440173614355399371762961311935391407640006527445514439374695445640021590779934850277405130178515499481203026271372986561781954351205636509393159781290819677357723262925927987656724155044663037908781252780129546157268985983535617203976122106913128913821424106891391003458512130691942025136770944247099107717964964603007062891980861660335810787315931752244065739612269409007580540008764883548995017583084459933900082207010824622997771977767307180821535405696614158090834185695763876137977716225816940114880182981706852321962943550531071942412821099532073132298542586202799111194510065852179018785384204879500229052553694896004025125195577555853748986600888316108144731270132084471798169754530907498147161666047653498576665527858736941766679012244792955524460678357491358290187344874671105783898654915816996031159180625044859500211697118368893887757041670314322996472208230377066855722811625110845733320373243579853852229722645546871885838551192181181772148279335750599100339913202762718384966706880220283989070643006635501882315478107096693295997625330596797671131504416266927619694414177392914363369463834339321670124603050441182670015225471153982563680742025106521932554099887619633891164917040396611442664302869320433658261147513222750120730674570149753460101324527343346777615258196297156316110921567589731159955315787244922367032748892199973738691045460651088985099036702244100298810520344523658965376350211146834746785411561870358654497198621115693232969603391773410975581875877819710823649587398252945579750416057675318853355622820034187091095797213947877354673914944608339960924515858540240137974602834771847310425908401745956726003295798629324190741837772385838025667540324111548248249253364311780481926351406191666525106986595242754952613141841128968399378565398261883121784064773384905455621198242621882363916862087230839241945381620294746959328988717186037966446826964434158754644316464569217035165382423406846158322861784902182434602276512206131670005049367599234823309208924734852164116654366779844675821939996742615985831809561195945328869785327002022832295405463578881494663236802954350742159504954716533958084257245563312175934054637899698444512137073558006580475414389966606549444282628263656006498104427708221268344119891012692238583632189712373520994273310910972322037189043507091102919979493100258858232542541736954708774744460587636603399414940244682968579119517679928626444112927234403083111981827860717106715486780549233865648395347117286504544660598005222516369194967889299464929963262294098431229656917789686417747812070277967902690776293082990485756034304569772773533696758701376438428300099995626275335478084765787959503408166826291687798152080099210419583272313605876604566235133688631541587754542392467962480313838289399236871033734342219438482945693555798564552344520974310075868436079582133696445536802898560327813450145019487894119640684049413940003848478293409994674058166043403484147587248860574711274504296951552309505024660644938954155520369439319992637780238908111962222651325170813769420465699841492084220213695646374659921938388715545454364113465762131519164160005643224082674122346909914386592755382982362035587251458692864940987121235377715621442932011493286067343326476455458255071294230224358183460830590367448472665215551075343947057389503633231384741823384763647921446045787013916691977973005610034748571495655388076222524444803730951326180681349128838232453134460307173126671907701967280694489781857153517810215981408002960938208113920597587336804978760099237077321728213098191648598537490111397611265350186524980581764339336203671233031901117843031207354804213878350297791034366248956032168580390830874721047894046298220044372829920458453357176392909999717835756710856795454724655232174468850212352461563317598191595743248973638880095998308816760903371804887282338562117099651960241611834768517529680949607606951347971477522572084440468200077590681488938126051410684455800639747061359731727858360558426951785213739010742938346633043775095599374476967486000006177585979238121052049233145249813355582644492996473702536267832629267055328144661489222116740338135638667445342026619772074584258012306325545134897386562419330066741544198823665731504103497121121753679052348477644153469777985195217696456080084903915734624970038559199546799192672611581526500208173661309581518135230120885254272738902974444038864155215224194798811016037924228613858671549322405797499480965923995020836443891242529998982782396878052551102826929555516645607787062399250996590006509388079868373530157990826447995209827474073229155737245193145953903493857710370964998592161564539703196999495619147527409219275365024732085127532634130388375671441566217287134765783852989520319636939635945875575058765013087835390850069726265472793147932837426329306716286353559705788551621549087404285006734091894845854941407182046458338701956530642890910541522809065797536881020447572513167393965875700201094003761720412043786235929931481852439501076401377307869979421239294236886299564011194275436585428249792092023246666283904168981126383299379781118599683534054925958480036638826139468890773225195998794791069508550110837846080471082776603640453701141610159723470077596349627081187583716435854800159574847047010115392684868799322003560090236882376291718521838363413758822074567344468628461371935603273614630121752974590017912790335682213418677588538069884814200915147675141347770183772347613158906363346469659146605898332976544836655586864311659571995446126374928932815887902910085212444319767736660665503847603797339256396162148049906289098628846910899413748743545278500468110033461931185687732228287260726131651498901861062590838469931703569660377135117614040023311282720177760625456616691434232750802321900677604168645128004290807557297349372906281116175215794480568610474590368033343765082929645501906284550662161081050256405840584560766186141328845802078552843431668697488736505059569410299463093698766580867492744888774945354934958707108937450791478011776949034805099967020603972367438448622320926723304529559216064032374955609136999815076977088453374138411636775964744053084097770198068670226640212478625430160367359201210485524983592359581684439848500517598051736701220981192839095722189753399073034951330756043205598940031570260326545460667607055195901546340096281256549568910530910236344847162862033236539228670217039744987470055676841404453286008661972396117246528973602224884309655977197107780659318678144322091232779675942267534823752403992103395540000554273611644115955334137715378129186202176304692115820367692319066228417460107467645508611488877773074536504634334894838034678265258763789244575541077322371987830103395784497084296322967874599903860568718554238034036300129850175500442126685446171452050914670009242750802711086309789714286736132958537416582883273364665640825728734893504616069223527852433905593406354174506044665005115176424888719800633361264003387990214718566815922497458890419295061607497159837708676093127715160188305618502740621102339806120576418609446661745240883162956274655712797893921952360818554770711145858666409458335353167973631534174707591643535857031420085220394298065415108421734947738174282515034074619609855386061325038203266264298465057160499472168238830804384881012855601078055905602315465769913756565091385473095125167013683011503632294424443742452395393480443137779126295889356196470160884976352309515243023905128987955010183942696842308870403755970310685398151503659754382280234621727254585723323622240299744254004509919097650024538728299044803251215893878259180903048057798555641888040668925994761395502986684001587609864981381329059317873671729172413428994330766130057075935289537265970852843938986520771277741103811625634868338768160522634251473816465572336928247993791928814711571405395483867288687111428869222218754553763453037669062869817225988180267529023823569908615784527521545208899933027877934262721147467688320666319108110744516222331982815629672459967475775354748062133375585918776368326786062108043524345985843000682996077159207274943828233462605745101955326575406881443137978865267834344429684723492953697512223698931862939897423482598598305218733147055238758197775287538961206208547330094179953105008363647166541786227820430398051025528199423820974647910713939483422807993416685924671537909315605298002643073185649116435453732698353928306626182466334336671177590688952582312509071917361373383159378579160892158948983147036051218057214862979825677037839124936270568879972052239697275758134150931318169862965698147426932977728317460687063033368962654988028273961323239981672152676578767363811604682388588782900443123967029174672312149430501442008742053042594823456776901749052863391363732133647015297602673836207899031114500432763785355184372949120296353774897116446066530926164026778392980896795234420165517456249363999274889425595045643742051710681090603041848764411167834399692722329337578684927203627255880523578397819221307824403427909916571253873617888443727153109187079292933030490496470383035091872895418486450387164682016291117674948082098728328219839112087866435961320613878512657668715258561183255115084203240152045839746930424609026347162883088653737349277247481998555447267328028939067841164009713822255807205448216967818198108159838185235248665372202202913150283075433206475028146765445471674066420127321197482051836282892510483337867020123796641181897801094286855668122088331194976575160047587641090794733614930061457830290132924034406357844821014786570119235360735101517908646780976032618677445592529850845528648157429666501700924471325133605268007352403545943108842970183096664658455255759235377521046389087144098302443972179483887748012703751005045557050942485760677626278629252228009166709414294542360079608709480481502293180692775939384085031278494838292536876245424211039054689173791191550737398497087702922771454373590337371411600492173367836722752315815665057725223983120795987112048262473192507018888445233419864715321583595861864105353247555107296662300127968120328804985919912492936110999506870457045841426887937536597052622015327724761974818200423869778130142334610052080911856769373399254837479710487025169512236779120009229427768271826654994111247178018970849630054689769895949790313800897149922004355617640166674629355546769609090261542008226747695310382903070503425624204126925140347047742950863611287592035863061644438002868540248935700577380468739299721389810450659242372987821071000270266620427536354320555789438004484241389598224479732516708033539975477142732577959711189468625074072106642020731909916004871748808130198207603171359533416853378274277411346402108142284617638292482062014757583939415098714480273987321687155657943311788896310682686881419351322636326489571199003336545122113240203926715385839866481370165497962004398701989762482421942038440357336731909957318331140095009220396454550521574748401675021078536552013640718292667869745861750810482539053704733236384033586794682060176629771442495935019655290911450884379451150610702223214122284916838653061298167256316167280781422044780645921199540097547878711914961841876682115773212538535556408093916255759410166566896374618539287855281910092761357105670519914317464224249621444623690475547772612580792069720082351320216149098980349613572227959986209549257161038238409051062619054600126073576698038494529786975177989841877949500262379232653243919568410410241795343547726873600609967902996960902355833522859302346025323787036975132178885240482558760428827507757187610622213852542530539752546617929925670107721885576576243048296427966869360694176693127807186707371599688101257004713647478854474790319543945139092529715943117899662049877951509454610419955321808902059379613497569829158267123615269286356365682760247559452746847692574590041107306295441035412279279313383366992972341253000818003608916411008162664620683526152688910140283120345229603133978415247412476123296231106009475110579568872815578918338692966655210701399399523081377962591173815610853264764214953508491158867414568158339178841430097666956047044675646898796226650092602417331523790081718817469650062142950144467817675563033771837976975120234492042310853659600512707715888992250389040096555436126987365966312874973815745764300543423997772776797617512224833153737881694563761321784787532295077468300985823962899066126171606095890755065540129390483928429351517108548067277881234901627921798711785805094872175727155084505691257871247907785821211447077595854820041600404482178652929686831798922814856344077387591526483305263134377984026033844191767187965676645838383844932295451687163330473364868510076283551897732849923398122407790536176076442479723958895308307876273034434351454276169631820384408991106356626283775510336799650438728177455445368647872886126851070497576429314162391861352388597440246831249660382069304530884060954044370515549650616253170600347878707338932814390505267486462151102944118695519309827969100864438684802918477806928305681380000256644221673676429702502952986706316569080076447108237348368217255702503744945059540850889372121885359574933337809482375164207858252421345306637325576967351356372571384785082937084168444405428527285960130503573850182208771258482451721123204553166277694210816341881604538123518915629608093786282381855405752130513245259697080645633152652156174165171423610838777041882881017393179416678944891908410761271401043417735592235742868658782256299085553036480820868165410207336390363229882556581837696518351973627892905458353160099539676404065136890625612186671356594182076678439003361185325588147108639193418601901774112306371012869843059847614577471283106632848652926839225209894436456935383002378931617486646384560578696943141140865926985984300736330637315851906988409700220152095562066400629321986086532699962477613656452331918522696891694659979387441694382387353319155041821107556868290858684595723467475391642938126382656810150113007198901448614172431454531951582040958301367960593396212194230831586013283203450810973024747167963694466558306875163086574192620477799643555342942908767878180695726114937839187578337552810209146521470868557499455089233905766577948612611751278826853281720488631394124976941040431159350195316241386153566976912224569752288221662561277044793337023086802984106159357828478466671178788040981418402790936597653634167777006336543233993949860894951733609530287056093097373925456527192819677902554899883527057127024256405490183724050393731499669371050510356764614133240255706148945386460604596469439481508652548235673490083069181584872743643544171049577663169918979257355039339931455614244214405094450877989086568145206235231620601411311414326852087378020463934337195705196169671450984433872842028264209435077429687802715415649537439120771060532665292585012011227788043630307066554541582372446129368043372713143367468033889927419881879765502529275014444672357270451567854005132077952881500640244267514415840613571223035187569916559617844694004809408330137468275761848598859013108373424826128052687092141679052780898554222728096146805053793125122071955878752018183454445085523063279685627687691331657047075989545614236247661949627074165433672859211629627593064594783118399032921434285781860692459988877774229308319377065656820759707388213454955440317481852556183029882185115861909444565908393478056190435137030005423660091461830967190235467498404212313987514857353456958246157750099276937444397682197951418433658034730155483734063449549007542467723886123328431794151820376247803218987264981024825776068372629650101137025465401273060949875982848852274725541706425856321819683380804655224460751084072884277939631747556732456861675022041924482052348665348609646189605643241294836282939838844880357650454724620598625945828193135836833687784464411988054547820970840208160831823647163953219937074941965910601085115427039502134832516010651259399586837540298198730293430905765026978458235069851813938898818131077649273124547015282651440939244097736880154503299160490635641529768322134823669149822892119457910734295386070895566929879923884554862183315029203761427360379726581643919685927524516101875596461025365070931174951695256295964981517915553678260001294717716453370461364998097330449979177382647347080889618172594345815384369214516150111309085091615896986598799175242013990225073320620741939099532691984952212475287310212942242352616967374511715427476183330065254189814051342579249222241269922978546605349806670572917395320489079940613586153957935310350141054843215996284294905787582837316271867723403412037475326586035703248797630003275701808324132617999157318128988270572659957084392325301005231680426265775899963195784621776129867423376108780166131686351139401880246048633802613849301685801277530664731987065508585724197564530153309544241642757242574986215961250167682591416584692783714447099839991782405897151931693045333534316419772237427173876513325791188559567132030676413299413968800284332236538783007191201798456513585571889188646724731508103095255785399618290397419874133942810049652066758030390659431800666357615934311706722951259457376885120147044040346092651180718575091126754155228571845456050923542283374067202566377637196196189948514447869365448994175207493701758917348290404129390725232790432246758921052562502014433622736169999266553545885873088760329919475714959427056213594747199537449943182545253257586078551891306330062330642994943127188105902014618578790401609268277989078535677011362215912485326646563052514003562428824754422038752597264914387489862064111109513958829666563755115605356423525097602848329903131720224632317862630121731494618619656299472404305213487171883444798924146088972853749467949365810018577485602935297064248766640267616630047767656439422007294945461761334289625029037795162064845839950094995099292525475850158107614213153425965237311903474185452081177621896577835310262210822623162268964743640229648456266159623157649612416022329753118299225326265353449160325885243869874647312148571643508987815676381498785328110116389640103051093444544424297416692152170686503568761131164509371456365279322863621187160746854002721475139225708842206107305148534777456404835893174272055843295298450179524480140997260024482049951233817091896568372311149203107642590655004502234118129499644101584920324851112506691683384072492811231062152040750523686646097318817523206367281273472276701347740399547469686705640449536291447092444880641478538503877724338495221085318033299517760417767958225260212402881867229354373670548303258151805884239839006041650848596941145832091830812778058905889761730660956784598444684243134604864240319390165300718482124892419913909491181338405638994827070409017260950058142372386420922149110565197401499389281638444460123974419680753293774673115843035386779742790960426239189401590983646956567682193083408945707559363574115029989414122573807492072259421899880101996437923794120431540086830200574607410354075054398690484373531163551658175997100653545051036624295102249391937815338086524338155975047111417459826680946947073878411162195805432022785606454323668864521321799583161668617914816318789733521132311174974304147456515428986816678302849910676534993308525044838177447553306304263746074581803574391444004176929779974607946187238616564771065844371335119670781209547160904441651076621720229633578974829366418736754349924506275458682445683034215627331082925702563318435633078654959505947423700132240187524166913182495768863552267164061744669296749000059579845942939855876799252705729852941403425673100770451173510888044986955419096603224378324480501925917440944290094376684694168524245110390150596704336877557334860702606242038603242941159210979630044105681471774132512370454297845383281322962033601679740157998463896055969887443528795131134602947414298722452248164534836303076888524168775995157390818845333343552612766658941118652513700927677374243058635544796176755137817701573868399452367676208623281720476858050796026462222246601922891076130941233686391376523077242048542444208331077052430355110569614576805788989950302598693133354875534942672139531357307181532870842051052326558691934729987368720153278531725799611713341325446352553698056448764264274363353968363709085693254122146299316660632003042254330085151489657543650118148222007593313738244420372558819389946056520821773363290081645997494722765664854561678997721760890157067382750094193904207208923242488484811795346412084757922206763205825182115769841966093372741403393171649079862527817160003575276544087655204998212576581330398546637179342903655071479393954572193924721849515021379134029330431301998885435061623545301252547048080813579557657052606911801736515047320098493413816525321577019551287182478720726283410453519237102476622702030497986688770234737440732796132780319849090937135112528263971450281332432259843043703116629198821944062263044284811018730695377568407132134063679664859261771218822770166220785088404591271128046713070279660780635976714062136042618664949335112954437952803610530771215902324041139725964110019391991916980625611274953928687020951969801053934295418550725557479183533001136860778253725890406298090675100503067600806200073507746209546029177154653454384167903418428857204213059672174911888102857670875764950698049510521955525191128670717975425838359590048052303346313586112190642509031351615358822184516159032967901983113847606112307050582670181319115798828508791428238591152048144919164882779285371011578073187555485146719084209335440667665611212351698802993240742801062929970795670948955925797328623934681471589831864704108475768321186416216083547918952899052827368140332148106088786199495560858088515226830409462805547694450575044045633455587116118751808138620978470136514325609153726664584513789099898519111194430634974782343151101083473289808497056656005615957618997013193682725893327419842822951072386464525962477289305495016587131779025040218257498534226916978341908429105672016207144017027515728925422287924109573101991728488141197999168710304061868829269705951845493197374545117444855813087756424443237180274705281256340056333802104668713842857604296573146556844516104698907252594613703259266695053929827194596807784536433847032711764115349005609806641756243507198012791880221073610337474210682557984768727244098040814251147260149553744781976189041035570753527468884105448318799723944022360986207735844384676362041090494261794071692933024017701341944233382197044399949649183475066879059844205583401991940992936403925815218792581651135790468224632395011034981715466599789699122543357275095538227487780017870026566925318863568171082833354936170783161674734440236473965653907361139126272489500749979732759506996004245148612815698184869787481933746923759948486642192501799567778176777382446027012760192806049024384484542080561041646448691583587968626318352567698778227501113419291185473135932246448089327286321598163261359889991490855979521222171150025248654835272535665010627855894536839410691355220909815318468025352707424106763816483731095637937886765943594869660094944364525835802926509368661502424132706812021543764893006226347316357013521184765493776199094911951241387844933847084123252060073543507321121420624645459174878916412855088087149222072668727010987852962359886214999583372047538467421563822311661017496363137515663810708641738230222873271521074755487308607501737062817714357662332968916322017511529086100547026606035459066170017835265186991336776507773182428237271233817451400589045087803354105396810497182746336826643893926579254174976284301607887630872318751443418726922690211945888813916618914037797280016349451929727195675865490713600584428407429434049833569074366948171698681735916658578035119196173777819423609063626717103986146768012040973342073793861644594838656160018416034557533513022789749117266404632162920222196121560379358273129507954463782625524554003708029128246343401835869154804399509508912572145268051696802802184222829892668079269770860897202031991650678337722726726376687162711591580591439522460568222856790042657163586140061530180220508100541936418546403180880302100725406204701560667148672636361687402452956242098028964918763615111166637815051255482495195073643670625274025350991817411672433850142986161186430580160193056817130343512714356459404763377536433420911785586522608579257041046658196985394858546745029562177213171164330242489730238458509423257303765559578506171277038956103516949123482613049347214755813688276475860666331190724877482648524289468345499253633148865570737689592584118270501298116859411014803528402346487337556505681232738587117315823118851513765192904794033759446317965499259905102364136751741586939598902119139605305407971878027604976426448795843032057264796271521285800703633977091712873854648878075569206665859473977864362333073683170196221137864133130553687460687891072932422403066813764256453333195977728451275090806448031163582193329987625184584368760084227999144152275879168211975879009617601243367854049602414706080129799399227089014968184667718425370484866931160099485429463183802478154988513903955474799312890975687746813682043650282788139683807680813579084992070294277157527625256459995606688483779117595140638091308640546602108734351764482281764783501373602297924092110569199742901472951917952707206506251973127625804187731865660278931742487436917622214210816460153689045791117239261849627978615975175866551535167847550209108041800124042051958758289767966540773508760946757706054270587048997082947497503887451998776111513043327749337560940738795798406998355057009293422718077474508770078283633197274649289118147923687735836328020982924831431773111339396334771961799082641205550514627640313447577231689009149240703375168638338525878591820646603499059342363231935317021677659671227920779943998413997520561074469886495360015748069935702016196378587772114005390463345548314516546843063575138527988532827381417034520825934716142414796687341938122568829103766462404626004103558085570422159018383116474090901085506382725494580977302712441274793423327868375417190084884576220060993785935580409799314320141245323185081911565899712124686974341156815760714715706874112715814466821730594378035178904006250049641350640959289498063680175569833761564423182257403076843675855649619780361897073722801075489218778325344795787762513266560018665728115409885318355755101833615199360036841753047440674162345356438005533139425558596208363203633676460224565694336607208571053147775994722845853674349024293652713183962525739638535793839516491370521107743392181722398409224376642627399212668748974309365984780694094483128923865432342753795459576592310247151393333020522241918358925173451621664359153970369511456306851065491038601806574966560831885677674037110586402336490492014522732628198216358434979391580011173413706659736073024887663443955507402375504489543222879897370989001137769429616315606322191753440249944017082377816727238528206672032344013131444472559574563035343718367052034091592499552380396325218134854779579060759961349064106862342127176826829739737736903678332871865048739175461621721648119516717481950057563496842457610868400122025753098150328268837351627739304706844601803651141246695655704989681821048556906479254783825430753209124519470014141841578579373162339647300377400591346484034347250329818924441204247460366648534543591086220484585535380667862248203845609567055296698263406490274200626362354481152761231404427088461568073217334461622152588576665051788293893641534912997273820455359640157582036492494287171177641283626236987113051415258740239055091428787040289901177162667611347221485382398790239093579788226026539796807684620460170138584115362794636593188441581509433272910345681491297565465403211921908012208821729574371036173566458531447092672325796153786606908838364733603059571369440338070969127413069630004818263688838786260068939000659468682606182425025395601734905600548392294586446540678904382667998577966312399901445758449780535691514291108206644922365479768874056917511940387068538505171728092530943251245180905175153334750217956586742896882585967122592319344591808731480548336882825986769675500696990349260777472865536406903985273228275634858935608892217270943382779782820855447798305657016761788858398591852907543147108004732483722965632962764364991730788107615852428205837437517111186660550667717635435406569256681741731199578306544372182493236211234306371374505480792513987469808953812638466219479659681098575932705552105457387332395533746639102309625525683108512366615857524207953721003489653012148371242917332134502646965759595739218556021996625329395381153573757514002372214035971249362458364686587309958356377797641359598881398385524532581476860468899302563555245037775352991571647590615170496749168502529234088484795865126248483924127532404710832616697022192504631416710195082321087911828511652488277753308844872299701189763443389493682569144272959965647142872631124056036053079626158224945292455857422713647817759611792209797515113106340239413620153956599825749505135864551511947297325841403845704788596560607822133590960868221213510637628096252812945783327196948652994946501957957389148121303981004802601654772962319807618019807837920482033353328059419688845938635123989345752548077111260032819984198030755746836065196163361965583010574515730306447755275636555565439578085098635913230604392968720136210521862377480776095193776719089615896934029561052877366213237911251035338212547919788329866283636165099142402892856758000972026092449384953064275863131829061963758029738092087073717715893004864449068669611737967041860799032960986975742431319726797298117836690557100091122042893864529861862609619295076634427076503646781365279783668908673512083370045490738059061879401085796973551895634294169349583001478120152130718482219411453440842767707126232849157919005512333517996000483412358912127556813781761694339696216241840474329613316133095951991226474333638627333799855653937106981971157007789759621988747016753148836917746128923607269575069152561622039215957916411171267057660185497145387838621454181538642566854528741645431356878342974429178144872784700802943916741953225740559884415976742487752698803531494929622418018919227031237045027980790245686720744610790491635973644300615305764962550468246267971527210645131223352341695148792494254350706114067491040770224512084831255007614863514616166840153438264209907875498812331697876671579690044783697633541066408438752242712036747781474471942992312458443656773563772605144076949696547121531584624010913677007202441975506938557182309740797560295088395025952141689107525091434914517672108500323086304440885011246415893026274936196658619394311537508543075817187085868412440410935751941766145922648037346585145396397523143488945880431857268164651229083854862725879396627249287710260908467731809535632049908403300873171918057807593671823900504385851307693400199103104639239453394277484580302364503207543744042077095677540542406971702945876989422495233482960599643589286616166449781634434583617195523001513239760252195932055856162323623066823590575040710422329743398528828362570459916318351969338534679840860281700269526095802647704793494948251028809391924005871353478202013920009535907209478687878710290431458804950347998161612566234443983757401689464137918831935606435732576995555271443418359282781255806382206718634967928401719713105595762454034382993722893372273851629831629384548819657800332316049927952430880215817479615992711971074740151855420338170052849329342718961565885621874335373487394319947784425409204140349770369578062470684233068727376076656625329985425453310516176429797490289872262109101262753780954869186643747039335139545679963198675076829075554445739789613114240640127271170981412943761576258698686708428090747726416768929722410860455473725031583021010590233043965995386252756323350732582708737454520268822492861151984904240519360959196361047168593154923348850936262299869416575305639245682312760024351330040768507293097526704306779090364842319270771780682516321185784733949892558513043357347760029548770902001149949055301807292594871589432047320625088125342551787389751225275110046914218064912478969673906562980162369545234956176964673112047840303237398028771431594124115825584978639400756354271886487482274001471541583384766329200381866319574172789881144054416983084888600351548455895938323561840071202541871570815475824765355483629517550813487869687085257131147525901878473584700767974262212958661296197821686758226243498783517848577906926007215980897786404012384187642577400505479986550660826199386491540983174346667870477565990850531687088105033569059320850215070999452423335280078560183125791246489499502834905702104814836166338278374996596598886558661681814376349031094477173064842990160236046924028881784943282486770469986301815234793384874560262231162652656874489729224396754035048389226905647989993464496294256559310024303239791540073573003435345975661003200367125988781212140933511084029395307436547274604076390184930555549997017958710993910164184641182973029494111201149785632946639854861313881488431685224760296844659438598720029435686226523081893524500487621658160910522416817087923484988145067284760824145202290686881060302305029285545597307241437557358608262877950163776033359745045972919297361066200669630765491304982906969462852658686480775523471938603235097987412203822324772517719082812733688578959206464072676556230384864467985210743541027641680993458448030447464378803953381433719560680828541102600295460573167248186108764500863046511770173187615005124058151848534460960163568890686433749476013996997672926793196820680488206483107939729785366198044907058118006050866115066412132673176334894956178207299498084487750624846410746995832592833011251672099781821250218905684170237697471181022928121926495599823142787434741499026943933793738907997661566048143818767428132249634517971245917393345909373179635008754934286362607149166630284797422427153632774092890799254136041908453532308006004761428333567301110815655606533566855647900689960132790124992333491596326003620752882918281701179526982759662239666872238785819016841475296899890534497857170665626208662870733820823976473078659736246318866466020757381804243608532633035527735552330984899463789139524735169092040417284205697500142197003008232767870108919831968090164602137129100672187676567232325138617897409018653738243588286881690265380653898142630150984954529882676099402892119201902053324015774685968048175868070786147396678365190806667487020145596264709348260425791853731745256182806369758127588072087696260407271995419091720533043092114955602257635123301268948001683907942372804462941239343282196849221051774348684621513104545130992955218996694402388231935320935116546236571964518111261942379810986975990567951306578313640318408923514167799958683718372011903239579395427714746814211910986949012169618893180709522648922419589859732563599460948468619877793279893226273821267614887772514971070400444614555346490465997113173697867287914310411801986461360456061060464495497841009487456249572579709553713426371808690661669972624762649420822362223395442162143546132546143735530871016757383975750482842278635501524123063885180492370982292833287364413033615417271199072725506098434178187778579204509267778093616367667255238506301518365946176315481762543627415046724385342646768753310042857912663702054598737808882130177756968796242496542055960664254177049194430569586108803617928744485730873962161715537313436432449564269909910124777650177299353411357475871924059239354026006192606752515836262769206165080433483595879211190851293240545650894042704542288162949033044986356991946784741663079373140999283839809855189681209885939887866467688440956838829573580617850804455883079725596416183058106771811275177472951306316412796715162957094243979977361234425180352868617485081014096069166700172385695524480974732742589545648621395045478823599652351179423407800214282554508737053490358207880733195083686967008606668698509187189387733739374430541181987135830864214863037052392674322978253456179228457537031560796846741771439706531089005974244054616988041313074024437358158342676609353473918654063461621514844094240251724026640869485161486321509626233508094816365390604717557896048900396740279351818110926283336481834484742001611837087599109948736880480123615614772876781263676726817693487509174904247444119419067930297812721549389322221721596162889414192869972917872085801981485636997092968323663220850687375589913374450344290963573249580137595775479761378787229073029609962501170898868753853548339246618315656036493839051773661360456639242979054844891957122922742189493539653548983278841039500788213277900366478066527837145640408582968715060405441755415308132011312161202221669900519304505834056124475003097738079287010799909111856359925825395759139228046885790226583092447486149167055053425883967731241886958439871173674011490130103162991943527891234263836354032660648109332743464281574110891906542610639552758457006210438003452216505250925912102677330296634391740412373987192321444694892962788200871922855268142331287954076452139491656131145463571823475421626218937464791802896035465541553696801454325750706627412506499971443449797679706045037722125021380900216975351925380745563543409187337119078289813708269928119170112291763088701930850096961396781543203441899361848660021509166187119512828348661621980312292734839042632496482763619098596028397572586074203194414202897151106423361624282901820733190522060026762937039570561610340471152506106572563829886261698155819908427177759526373594996814746615243467210412777736862817350544274379525718956346123636051217050523780181698860212499382164864323140071370414146238686916224897036005723928295970186577505687100772106073677518292514762311842901027376633360485924100843421874957882754681881310134659805612781166544408623494016624647681880064079415792106767695829560578604574220977986092354949827442436543583313113731904619751663936740604490329075952790717834333567572375109546776455268462835952353180588258453203897764153942553625487298911556308408859702668877111614265407844061204523269954578045050052749334804825594854424466905012584798507892055817032346025650448321354614517781091936958074574351498238143241814008097683779409962346968929153496626411451783227238636026351756314401729461223362084913712529367710791924944393003418401367797393576198588485013191066045706669899350293509978959447533771806299008486036669715325808998386868348078338043501677466593741105339926792570059919221583280215056124053624631159162985447521113684081773379450698306301714520478099706289668192509235370106669116033465787119024542925139315158696087858005624457909789115851494721214633460528837238170090628495630239468644128662354627683421804720775133714332820911997680274635638239123375634982179084521672730432632417653697470341726536266661865106493860673416461904509080565198580204374782602121162841391053889057025929674931773514536941510227128027559107521311014268553866149150547296467387355780042090719750039030307159134052388689697453613839562105397862771150587969610315965174891191705912954266851242294077865253967543301188327078667445485967499164670104585148207361908134803909488599804711862461517751785133532184025619626597533205008968313777444461323912210338154400952377987753557383059067992162365963196715216274242689593018315941399428992554180522250844602166364884041699321771901380409825294146313502148744037728674809855669066849180925192612631609741732904024520309331241244764363232718657739134099403553150525541573537405446719387730674192083221239806491348825563163833887018109242758351917976478466073776462608266234250238376623688609524139394009040369343219956443117907222395656613065989437982018343420366125709401170653170065233888014874467236471446547253076098228495594397379822411466561578799847757900641146521754132802986559110174413157597035788863072718846765528015561737020377475134512406572289214611393471699718083536180144121298165250718100883442883284179320583228192259545268744615996899125596543748474886093666359476905642220869557607709612578199084838257254331000989308963704531705963959471165663576985366486599667111271520009404814939263563293294026479344769703515217974767440240418915238281250930723237006034926294755183737995407526620617261060204123847969104481991759719676158039840025308587692988662975382131818547506948421950155600947362317286886732160443996551014721180785882439159259738745245383530351821318768445008216214260140536115060411659770835562702641292936214027247014121079804772978366127236534305557163145363769876995327928949005264093136508268772116876169654144552160050289281240246531985654948010987272490277712912806092852230217327639114935824851951575889367810801735384112357975637174898484913152238697196800079684506772093404975232706484011483886137292929565608486435534223632334817736398936123174858976583355309504267384090688250429367135432420025637220599609479614938331905736252884946130458999841005417175084115550075007958631913040410195987256574566611755746752398129306573295826895948771993022548658392623266345556112425288383351934474747792817745699747462884214125205807558845713118088969562060603655922568542595279213987603761115451427344902654274418904163063746574480030760158746540378473807778381952630564829716897159146250140313696708034369741979845842912324568661924511438445554884484957338995814585877505255348211089963139288189445679431871726127090909070872016887729527431031544520187720812603083557692286487016033755419772619436763918440552725431422796813775048391800549075703586231249838090639745970673065270216007638035692311205254557902570856763046484074861324532422901069536777954968258736267598785411979283496874783460655325854943243124826953948942341441120760389386372870999658448877244786283959648214225888944346527946489581512931093215003415762309642738850613780117584366862208270592223603782263816535624571228084549882692753633068145785637811953803523090131618513717106372902886000507889645253279448240129617978832056811323127554067253020053051994973327007402156397803359502939167020952798359309850827656385585163503197837631668218903671211467558824357137949713307307062371049044401641952469819337381489143902944672077255382813407298840541085974846014459524892648869096921717581821336180140323572009210496892429109449199966414875248910097651509082573003745950128296399841101823017283527442571704388580094266745234360044625109254398372309759447654010648571549528671718716569076443410984399519928495831517496744439867955791454392566101410494853026893307524397180210211459657803972381104569464901762516660084036891125602067606232612841896733473385839386756524937546926728101939083914009268668173040517247289601496337819434643981843528226641341821468320536017194394861507762355349353951703430350204751941897313278751709920458062028072670372539667718588865872423225396834348755270176037057156100744111777528378003819822912144822109466656022880604807784235557313156594237631841938817168983092164158555924350830459149124848201944157404011511944678078845693388957986568299637113434163472195922942483441029429368504049206773585433462760965711851346020759178051410177812845388099646622782884061322354082680351848218592441021030256426127726549306185923004409082821605370936946828953451655477623361836307405144283035707868790969607107359231545295435364929735347245322974461015299593245991033742297622236245926114499255869315159152384783182161715034454308478104983398479271731036690052211138874088385819370253392097285432159113478498553781042600993860935444365977649968029814186211631141337123805677084930345532186893595830505480515495681638193736316632655208745601511730006339751581123369152513754986407083881572767302913870211311112333211014734065385256643496407826119830307169160415311900025005610499218487629002442806238410065705455630925559879614686684896400872211971182008220251381657565598606590247342121049359338138136084908668783959368397741807558187131772452068142961544051770868863522248495635247712765459401107532768609368067391075058160534086314627332762995097058996737936542071600519175870116518175393609261216878776609765722030016505687507567717668581450279869810403616976295765295252189062668317096983009504146227924199887987297639660341207995326487391924550999107296309318726584367958207852616192469851433229141257640886758181245408777335653224725637223817402690968326658548706661821625766593635997963117367052007214380229254107737903503404372596008429296259958342298641018026625000032408324012070165276512668429912164821765473704230176497842023614984171474912327928016535524498486410006272241381779266290646661448428443347301118382290715677506298372663555255635824644099241014340788679037127992767079725181042412344127948670682356907644347724209782612851192770314264999642676555834719436182609704882380808787273738804606151230478638225564973900480288902595585179843271820388846701496296573341064979424785345241474553102856121712822326596122578600129817919418171042016080140844000517389752612041548421816659210999645866008493708027375378879681060567110397546277858110251933301460770528332232208052521793454558303998433558127264690742176355345079804302136748403425833966019301756376321689247190397693222253742930755349647073761487140450090510309156753062102378035380986066163688816288318775193741691222560435362985854101551225233324030942281109262556557868004548303313023867000646488051315271831071369291742296911059576926898923279813901650375841533985651070338119883435315339223639757803830742008993993974902653260900049062957994444110592707390056118621163528424587422767831746907871716938043656140851278789178525797225910189278977789216461037338004058105135574799366181217631595461323171877705246678848676274125481087834534060502438261841072685605430473502161674013121965021304629378396784949007056062765898287780014861249495848735211971566145654252361161822949762684241003858966950473797723504861551987573039536123952611672454025560040462948111640488874320987732224551236727065405018128056175785357389267858045139399292456795741946689776034686476552791801477061573158312142230645206045590757563732971254275568122503036328562234983931631624981103233629152531496417811419594290585177924061875328202577998237852302766764714017657321406579848840532790851263285111848039274492545745803610298814986237339152879502777675308022202634009973229817741249025354825730600448750710712596599783665111171868259247446180995842975892789657100449795843651249996095083813447034356783098952292359065811075516551900132048032538073256209633408143196350756656620689539312856889692753082105498217821857072499123084269256988547051789837113019195082799749278515727705178817729047831917814378732720682742892616929869361301136026948298977418850238344940013401562012887593457003772356333243964250736351767052208172340387050532449744409458476535196567135027527113968592358662322795686080690150569760192208677910934096354737300762555392183579713113925355746279665442313853947145496529162978706641098936570014832917389667135726269121200275420718331962299160425563495318569063586888995213837580139107252310361687679194895915825999644049185730977407595285918279109894000662736357100244038724014759569260542880761853853866525207195980518565123963856708354963505000724152649720036449311743381210772013582362009642015965766936385422454751524078368233838412914563753214167894731778352481074516136269782063954569486879922759041380330394674195709385393251615373122402312641052156624915377743338463042157350789560289986400788824283702826216375493830490208723023736622253103272433368890382260825904091449232740059752005078099439488448396780940718907759960140514075656040277725024304134526627638464361708019368849742389104038385493196823863844933974955707573439988937363579526428076044938857273956699220319207179299142849797728052721794123229078404422991323324975020189894080929859311560045377018109068487271145096982183655595252694517340924421681712228504537324232495264323515820433728090151519203851327204295847224163927032078242448971175973962800746089867484014313098538786735987738215233196108506298951223880067051486829236204770363019451569676322675903712978146101447023808788095741728162870270031101702083166052147194836835180467329311628270238469868145780663947878157203267256560999394692437745907750429756189581872004588555666079166674870103665357940030207613317288454475110392365395104486929448762561832790355946907118918037211610524099843818121411380378288437008084722739889192776553342801002348999526338106517059814694934344103244206512461587715019980691835512759213259407291876372730262812951711521318690253050643806664139501503390759492605343605283731627387917333065921980644248616782387418197917771591692418409364294054028771847041883571593432853625523774681943190243175495533191820766254345291675756035955172274209840159952836536748239111086925870159003657674049488511547387498838754517209085236992183001962908379028928238758762496474564843963484545312160996279245419702016768887674093180321590562452728028002582750248142373434290452418693782381727550814795935249536106537657033942803031690041360038412975548980209227999724774748960222543563586061989042902929255525678073041195099559935175581923235576263883278652377402924793015464535541396623275218549443561343978333823470630200692252649384710811699877466587658479691062210616189301774097613701307698120994558869190282299921949193882194631646262389643698619909792283688094589127882888692844286871732377833599796733773679150580271681386518865810356910334095284317201174986561971307239080371750550343357980000446808799315554528062809646613140026211396499001855896889160383870387839776708679004450897433555592595737128482815832909295510312515339540735545744755948675575355512339223635107215641933084733639908214209056614886115963996347126788442826186645400016137855353131365467868854998495717538587169791455758666588593943307818758186744001219563788612216861603213181719181951776691764357717488869222455836613752836410518277278300830009695902075944331223442612552149250912704041209936550250483582775994020751062183400622316482156301631443416664756466404029336120416540008481837741103824608166950925717042589643364524247403981855923851002291650616960863600876086840031018885267306193108185054917445727436523305015314118669012770822447921803399539550520716572605017146082098388674383331759555331816889872288023221386854008389820390815327390542282262985523851474163792409483520402364960178303375361908798759816754219709127669428817843802119924155467335099349590641911856957122169037283989147994814755383961081636561623869711250963797676899261773775408645531976864173510201389492565373547290125089844106496023482988584289505517215659477920215823991047120389442957946328029373941896939831659164432895139213570614524826451733463211184330520544276742455794454446655673458185181996882491033795789965594124519773844054022072247121966066585177979506023313085418501948624897004269415457806589565334978276005632679885949548203211197963040670604385583007951589154003590530820568524514233392481785286616290708891427382562325913119231326080464169501243888538793020278505157054749479421407629040582204535121750568987025904231027201410015884204496789259767226945672100338335191526918801633441851787462249721918313766160431628762872196354123108196288185341429203581028555848515129377768401578610596554958724115556754736315051065610649401520411232361144584284025102669519210610355380847401571766839755166465169205711121515597214644460108844443377472044074123913460607861254944760057955791696424451678183148867539573212224840224741331130721341129593503786200130465616274135460226911970238275507766449950680236758346100434819957127258048392353644251255599521090587070278029431560525844023241114312530310465193999992896484971260760438367724675234915332158813554453589287611881466411692899149324951704749397385298529441575599658718431748068323039733340336880001995842314568522160649981923680666025981303999637468346382646765406888420949487048119060916140388653463820118887621514798238486193763869343397409901149290833708765524881397058101434923304322532676637293866373261117978978332343025990398422501975252990870085113029414315855639497155508740102560494479595021971532501254124881806537486991568910435177724914390851243426992216345801751566398199657599872034944506301833624241978738165742205382906960836798272710838961565047594019015392639502503956410788955192064272532652555598934390240448978491937305833843651663534006578909865729547776341636688159968055187049719024133631734367281824683784985994590150569200806442105266240147755179917611211469493888750266654369451565397770185574754076799242785613002388155137311326070209149377833209273700525379377291677438035254682223826021080256787545646527710993155377386208349878642409249727204508146788039388297407935308262631955527468307134616971149268862606338455992765167575629477105260954273917771693344089285734143294349693526911585683237249015520793081905545656786205092793706360379166573547197533656389299716349460346740314221232933911263939382460421545728345109217354677044061632906021409683360628098477994288158070397915387142372800662756304482970768667630452279282151763761562809541322852694679947980660004090901741868288477144334841103751564880261486016496045399827624975641441536477567361913858453661485733635635064270885987747876047060166952403475942468850385991277634604872999412128512315538311660803816623237915225815544110630089393967574049748333696408439276777437684130219348817752544676499339427040896065196051275694982636362732383953727715494107967113625673197345284556805136637578367169590519416538522848341681605471967422663447677772665092626566026250324088205492208509508592965988059211757672170278744081152390569032206884255960925748033063800367379268097667979787674264989255120050035035396338412850254214739245342669447834375758692068258195906054264213305534626996101488682514140358185755562969161333653111877707322301350276999420323824043616126255567877597054672682880815876015378292573788404020364216260935193978198210629235307872503266804831662033278105193632643922783782894680074823210739517682389761400909191387807116993487746082426486526682635281516871192289608566207204451249846561989524033568132722364960981168786380385511818451424741594253312297760114787275393180876202129621818195159276936793736957768307566943371876604313353232552928402302549303588058010717563261108003624344790402212072537565334618628279077136979763020365614917502719184538808966340999953688416633699894454627323908843063267112027640738927922121008109523641014570108852817912388374069817334357195944764569217740604612508389375683718303121456492295349642100102861543572520753428396219752646755402467878085717304291769296222224593614830619006422443245360072587607820061271076138268780713464121355560782277121227276358218873442225137911298984995555422601305440935997273740011541493924125838653297713622979283232146586445464727157686727735541416145366041411592747562027272472006601526881052452900402239371504667080799547763450916419152425197455631533099919232613094601497137616434714154037511691922140932530384336064594948548680984302590317981673242137574078522202917160432865514501512212405000996689725406890619848742137453106206624672118832661655327529139896186368470208959556812976442239733716028429565143566619286476054578162343560453070346135092264962504648924653448732790964494965284949917872846932271343766618534175946099547213899824625449885683132850217055353631324442896687688831199177303352811655903249062902211888125466709957225471089904544262688562241115444974686892830491944544354262195969327301256707447051506854526886353963943285459819641695351387252034708867535772979475753689353347006081012566319930089355799980061569854635813381976751522013837541162048820070284598217422180643078846204357696752904432875935561382603957377034514510660634605736425002176275247637338813816577243681459292114367454041471886270591943772317574854825824411562740065920339069101297989510093596542077783234432843617477941187105420962476172803454974968049926267404491075528985169565541174188969030970290874507421830215596640705267627578458439171673403403862872540790550497887897090368287158829846234818647450108107957258226930788238229058417733787476915802715053235439713240907590340992817190539425349151320342856535284080010414962185896615500251215089749457137254280917162674691780674892090103883446491079430253747159335298831351882919335264384531375686570880849131912104874038545450959334424670479327969437127903914668529435792482595221591281623671422644688134754862941220621994520274919616695461357647690039029546775408961697920597237794028688251525451000451104373008146806350667809319074030749580077304732534048204802930030332459400507165493529791923133671322939247422874276065137572903658203232423341767566941741835493182920133155527915043478150192017654764983289524004360495234639838489743159492078649805530315930424351535955846623180397137881240216922400975757093555314347912390437975412488467835486821135028724537164937198370577027285910511654094380405590010223891006623790182518938267339510496223742489692443956093747205054788626216590491107231739518344997773466989794286603073604966429287968975081310952617306479483510232000842169715751233438591148237190267180737213277503823510137255019678175697475284866636534966217141352346411182150001810260381098316744398827565457584132103176431327362348425714157670807252245844340641927364598587950034389808844782903066948703464238627842759095674673890819866430072414063516993188805137941241195442668826152460615183011188792373132253186336795749344460903501746572193394267715555880470226380308567226547073435824733157608889626041451132845159559057776506094358157280881279498602885807878186287848133755808607521632401374159525938379582325473964230380615602233107067415341257977106596731330510857762323963434205870479116532341529168571052985456406574447095834593136767324040453048725102077867692004053950026052088702768546503789278319723602463287671457621894046655972276948626050648920595322878234419841535824293630403281798353659373871471734137225963667843488108985137373677917536647996638528512926499533129876727826438158000675136840017109647722247197096786084589750812477851706901587024563277544248326220800623908095677448405565324502392447968157715105287318599841029503942352830763653621220637488589386806642634162497413682581416481664492081047239050846977397823309607647425241406566664835883544669642990118474086348173570197649026782274848900970381640443847718610094348195405017126159035707324785518211609614273568370893695224352094737657786040554230623251761578464109501395053170795625312236140068452070397804460433402625970343336799081181120467449932607166957563117745472065382928335775017570578342119311849853880479196409311672508734746767665682453073605810101829759723082025062471821652892868948972451616071444162007482702019680939209205906496386934833510818305656975432078368028294060689671147442859118647572203843939862055167024600830683290422459134620862622407339111866350270939906518408351314281893414780396193168807478957364801605234464851038613781907064886710254275789078257792825107901622310735690246303684897972397915868731841617404004024073256183565386669332376385272117000386834582877320454434928493310888948312327289571269398020528828666577212545188458433438131405150794997879622480088979160162382249253704688899157385591359853526429193461259325233055795938715271684489692575474307357200048133228428111548943905357173993011807082902812728552391080529887102738563020474368366731319395055764423898810223482063128943579652862740512934502013138156768489128654732100123951311580088497845755738627825373583619946052198480348306728593122677100328462107315916680053991639399719543029868764500951050039976896630847811516570852593481714953973676459488630579332576209626540869011368794380972571628718494549854764870841305270137136127828628311969524187369472492985282168373819448625784302569897971258412271102747689972261367372863864507814379508127097687868571760529664942732233282338785121120918553005810535807509408656924842557687864160262577796016196139327674815786881535429548540164242093733920189786363883244867557191706117445361515424242720128299098378827957593862968487437912881120641371240523259876420728724154163063631996258146232441607829923946496190495383777055429716405099495677415907415989663900652651309725020914836009025755849426086744881991605013026610616041493403043771132460822342565298877864818334156832883655641988118579475059202643612147663846254245924598167360846675525179648749864343220257300037622917873047693523683798409540862760819165563396563177404220452211220839831733477680737642172195919846302858898929210303436952535237081212306822236205809312480502686729250582259021996170657061224392220839842644847821558728599437169740687719100719546193679757953558492444416352760146562882117334417783178777266105351334658682151587952586516291372320628492980176910466915393282524722601701731854320192917216524694463752606816277002784111248574759764254107484831318723535460391848708075190782562332253855037803760500596688816372294335960670209687946292566347678371737909089342230302852363532722110166028177075827980963581023493882820373124790735565489270893125226879361193688413365420519990722297640830747529139073778652907663131384642083758476970647124221606881611881283912846416208906211442885329024024211598768564806986142574427706444126293357782644162547265655267540887251043273116675430049765543106588410175241979269063132157067893864900165369971560939589562143348829238203441036103020975938956303298274206351523806411310299646396832248484928367152314813713507868093212952158931147572774311953249196497987622373784248125397942159675443925647613816819047591141677015565246724768850883064827725754742036989331021857312835724767517339447608307323861024932406606926308669131848856694133315129477850067381284241368064966471730587274141928221081535631107543616485043173705666748236190752302108413636680555447541575317664739706604684470169123141473820642577979957743713724072540705365477606846013671609614928230596348824907834070145218569561033435269134404231910941468331333851309756001708592818242174224356332506916718616658920426747026986831486689015769051236182834923506883073370596683665938497786129583955566781343513689662837637710075931311367945831117166913095593009303336693458804457182590074983436353788423093432343148973863636157563865194045088819675438949553707247308262343109545761233005101186724339352737279684381419423723039955476623869992080530552352726616850653044152853910043217205116501081523262230968798797386469397436047196560276375753398614192614808997048472579089200732295778638207055502631269532619896525059180113483077388478872251514849394030061177510416982331053846549163828110077611464258794444428418853679539945103641019799355081153283455809100505125725627582751592323857276816409059267095986746216317058063131938510856752943051693027208229874285763366642331679704496914916347344329644674219078689894055342615868843754929177750129279262738485572955703549826808008603158839464014292701807701132449039008517937954999088589683367048617102447168474089812982294084784700186907196372565883286584090150687891965221020455889372175554140439907302506574930459546597100138703739726284375670421504502253614905960796868142631409021786490995866995342977513285078898003225604680772367655868894810579217858333872920085774083747307587247672482383562857825417757251518283316542671339726338169675174499335657544419427781050469341591126181369310894619029478888279168693947372195678389999810652685206621784632471986919307852681276336332989688311548185483677178019382142034714611611826523245905814736329218820702287246734028462617865244240127212249330114934565275580419930633114808522552168621109645373159258867665961408155621630822947374132092265969070545017899506927961514165872378952360577609014346025001262248395118662761822824918998354171480119673126921743991211064771427301389315218387828438199173260652410321401954052924908749141588661775253482995068064232005576623636389538970327053084396413879411153862941986615709650713663703824856315854854518950948423884626597867088123315902359947759862919447904067296243802542429365970587561079852969955290437991782638722140223902569571191630825276744823334370920489712188880717473791357983536440488006711992275301051159336095209345068228860101386804290546244626912507020675567862168735254451795748127901729490635189572880626748853178495381434304752498015664987158250795903374893914729423620543139385945409204744701064850454558808345927948814674283656073212369987270766937979156341684498033640558605751303837864941518263207263077261165626822589606245890017395498795864850328687444579661959327947965367701301945716972177528153668818435040095981260548876650258983504671886974888082584386559395971516609581340361567094325771176516715682251720275308370339504562582320285676037966489959515507627695236994314096859050362070353584333163550984371857772512123430446356423553066531023941424321925352348481779018819240546453096174172512545167386811846335678159136947458083339232560086150180716575925283691164477908920054343145349784435844108785687702907315593187855561425231738078047190870337345214463886642863975674424823865825090088673816455727383265529069843389064994752408177937845430513275244762512943117750643640715039692440173662610236200377320371960425019232746158815308147177318786801892755535360387392359267873770964175614847595542640471581142693921676192388866727471764300962725637851370685537027381232766960105949532883585784645680735148464339096382722574892684460418410899739884097174395205148514668279850546741035369466479079845531344388305388236739216632691860264432324170639292389414599615057529892094940349443107981223006083904422374014059654664164326741240477140237747455112041500015450702316395615436052690042924034949846141828685341906724458833351916983703866155290208176205853894667174569795686961561496572278069173875861973560793102724441903066480306025126766805172868110462950707954627430596014106756923963306691261206643789265798884344173710933191886488134202211949306027712647242263551818483341637661720755957390370702964054114829055851732043914952800820589856332644430348135322050163615871252799750121884977623135627649684893766266218164542950258002800798113792936450008669324131395646591880058709498866002795214309402817318095033497870999557101353220757047005949068209269629385067983148424972111499213866105904012349946662487340722534471786126508576723706932268073584662135211352664254095970966728004558470020725362423501835644099361676489523645412406046211421349934448767017156795630439723376454592641276576198420376600880149916375415103505734425157575868320811566885722496731571275114880535525422985076105616905322248960874318816471335996337007459135527806326217724983109030113711331698843046679863926079162840798565675173728244556136603544850247912072501297726880112417597260633291316483357780068684416686707956853484082657342143304650790027200688673832836426046939778236967542664659032475318337119377968752712275667262568846024113618753848200521124194653264273365638097986120052037742535746302422038047261866217999617773782837910874618502205905319801648292136893635912212688973444474392407991827924828839011298372615096781386410707759616432357070237035700468361076781916242245723763976249673729516194009794455263159423763598355258927665119712396415136059575701657093047168151034355261784352835980366453021692812079912070665997719370782014358815650834461122977073164877696833741116483939552188129763966083816422732927283126657671003485481260103452613170811360228935622317458428665347081585093095939725459669862793888417783952458306438322709224578805012338061040562657138795539118699878453030015591500590072959351624768692945624015562917083300688253036830982628887640297072288281410636246231081538170032672379360979195704023506853971382357308281313763399209903030993529590601015662533384045298285746828191480666166931187318832289607277345047976513283446986680928995896738946673768991422494409613875475425486545443390951782650454420262861461779898037664235674771296631640173876387951552570084776163168430865159941838953518306725370064074657182036317350393729439430906832359970340149361957747723583355092309217191033427311609157778213365887461986640319818767995400258218103292858689578785856839770697664631075097056774855644042849583526399824249008242695471886654094309412284828394384763884001517787027808267115712747166109165878414132138725815957652987594770750765355261022928288285500770698167214713441650975693147165043876975782657429293936170312459932057488205779996366618180407571457064732773637789609358753664591620613940897597364370727851086658720252940790523682448598465046694293828646739247984674444203366882025577300568300414816908499468667389397472483634085266769376171882639595584605778431682909116140678865999093266136580727426015466987602486102593734430379396375038767771650139266340300550849123303289696509979272575811195498697226156276131107556042682665414224782868241550856637529345849812902350338723649598596458700124027719035564543622043282369666183501348541062591339810247476118074443805000742889317071111743136937223939130547539844669489814210368419880068778474434547149725695030036116305894029577542246024009523493302164003411087670002633748435603425457463996106807157704315261098793969718528507468931954527851950068319711590860435340665282795902734162244434078110051602719799395788904145604051946308164678487786823769493913401340423168032763998024007912527666448523848639732750755913343029809572382047680601280220688302872947509304702391689222591111723694847055260216133999137652863058435074151860083067356920475453149687064520907750801808753461015155205739959948831828583887131674539958422867823994238530147424207381741682439491098655873990860596421145410278115753347732209329592957340102905282043802101457871359609659440998195206663524471122744244943666206179149320614967055542582261992429471739388507955866667486593765429619426685659709400111978437217043185029744865711145740680585113161151262476641453293884344486974776824769379210932056133637427870550226439515289617055582847826841485342665089771144053145467028270413669206025010649039351593236153524949053942995110816557899862182025499192814068399666976067476901106010050556762410959791614488697091084079542574549450592974824830932224946373861442384829502064404378982157087338923345799358345320437244875768053862832408548685670438807150978609940188800546061489447653990540227368974766368840767466556924443291387618532970149383112729445514168105859194618340943728375969799941640589612015780740375820274936512494847080011202186407197915958228091974355126455863754798373880219455368083272613599409066480620939711883962749156935418644990426307342722751287617929636825259601542670094115114222767895520746823938841525785964688486892719813892688443672572241297095929474656407368977819260174643521759462047539987351870042244281055340995143193542804557913115231561091331092503119507394299786861785011848950825555837267503241617799805743674290118371373215625500704678783546368864142963786973711363223464213318922067525369936867275253708823078369778516899718712124990147800521357065634976404956460179520558290604812162830319870979738861680321484885631032524468143357621647201048057103629064477426649012835618893493216407375961485945883968540872429315452753903547283458226379473813459274371270971431625047963426657989801122731878914406616825600961666479365202840261595888686145879880704689809432582372436435882904245518627709037183470289251975819620311387504859964821744716111932075864412614079016855411324517855755711851641551284796959724667012265330656214605139020454017714946761839934566336403548795831203070772300216090423893340298188249595473514496390588925238127984668196218586655506749643175771025120791209936124064492398851761925197928342917166675741709699899421558181695231465439708248790946863395464838508719096014888726180897408864069735060519220528961990759663054359065118641316305272955409549373835835212011203577355388629185465307933811413870018849175245259882403337118530565413175873997930607630663373065625347153757727595590254718420309790250375426511584525625573923877393034795773020803554399895675030083681045641259991621101667610243615925349615772494978916945787383856184463723219730305703774204752086481086144513549949203137114946424367438463541534781155068655130549388104316720557321693469659971504759527448980281487623243607055201118952278256123653285054163541653782024051699619560225759245796504399289684200871039997818067377593904482061729304890930527836983355530446499355799249397734710759928069176485599811775612550938916445126943829675226595666862327464164362392987560428797490441349139175445615997265096147137571132002600506757497240756384353646313846979219143354103743034804474336334137572556854683186462558746663923061736639685918035610529207687472909523229364728110358837440620100540182625151086977428897954174575256453158647483586144535556101174389079037706266880629884659218317449919578663444663528949953218055059146857298171444436855922310471954393410701107700752252264548842931568402700482738764046371463208527182199740078920175719451341095630553406999800195575586604091683020229459692622684569092613838094964768439277474105475953519470004250130136529331727342001165483786993182371017007704278710640158370394561563587657249845543835262811437636283907025252317067496180151070889870576225580949894497373975684898725178369792890080889937604586318257348187564471501311137163018047980466354488498196608307616974585861391642893351423843388521273536932082980230332290540470235151143426048216228079673556659035124032614788751733496534852595651928200497688268655854255718932263069790746947044327787832487178857541237113844778611665545275261358298074105478798396485505452387590353740156226325514306937638480167924449691143624415490762546772047417485717454249227326431590786461362019878037632322625941727675272294686362992211223370451625285957469194865362517728037135281084972671911993646999304789388233451844862789080139687299395747990333863611567222956705359265807863080514754989863619522359882867825673474203578376648380438629733311739997253289274173962851622424599464401050437795487519437528900030022321557858122486735791454111420991481479383708302571003040829315837135471715310148166674123930904603184758455004721276923938931882824832282213628237514672470398661106941350789981980670049937869855633617300752502700526232786437035519622993088641455990822464365690624448761123064043057132412479863460821724056259106217542834028691445623917008762994818363911253454472327402790910126404137220315766026657994184623520351654808938584703119691924650760534914597808955884558451554686348906169901602941927499149418776339531187609777656428310393150166915977378018995175433138680299029930605028582995062749788959823394784870214292480329259348270416835667777095581211352721004136421661340101414264660264021104326293862471654109584752133022884007560791643481983428226898297588649549944977840518364559809304990658741027694020725106100619698409847146121758702683895275047898427599482038008736718295018188882662423006658419483592930224725456822587180024900875130630236721350282285427259221557285823153221055448771258209072856952112180171767583607964387955192306661283074439727123356566207028363664110200178535475542077511183707889008236751435482416192598953189941586646605384830179809122366700051880521653327399416815412729797847685126364501396034985714923558878937726419510237002994524426657672213513308462630942166924142260009637783217376687249208410048186529890783122478913216579421870204033461130450227159209708931326289769200792799711706331489857285299734049861032151103910598896210639951959085218950322654519729330061548157296161858211122410704299712490919554430556165121985205303787950227240140013811197324036821145266079101954186337529076341553459152207040702419248256121540679167877299111996035362404710858512673609368280926429964334137603105442062839538661971773266508469287988067813485689339756200351347527412487635888667799247988520206653993156977181221411788378164051038788281796633458851895706914154822447212994601701964258766937920381784718741381727529052321098178338440893107474771106754969194260122021847677511654075810847060051944602540271420265188223949461533207657704536559494058973679888397557575869149969639141566746069960973640203476335932236909038118367843636350305578012738815479898708755633539629974540834998110954424097902407394813397717138814272250520985456620516805726431897604918143536078542415774497611828657064538013599208995899388362905716267692519417128325360965851927301225338626235674800450529982953464948408667630670566064692829495747033160255334022432016445100209704625066424693112989356405925713643259727821212315909352881328314433560482532831453771220966673999571276427706112256815025187081351172744206269571514222781384441385028869532282408503923303384079236087639876538080576033186202335143848055269155288174498043135071735253506898438944729366798393034009821819022478353336274861434822447974202164092396561273812047019957937051708856410339556704630976813672937986857011395267581874243171771916925878189335103883360672979364735998533829054547854795882866973133786918209980889220729547895000384028214405561072718706883315707377070503016871040544950616834878763235726001828091021000042365166715088021601011635851466199494300426158282060711065113311021358719527916540412445281968173606716613907090823131552609373598119229918315948948262634416670768459385069857179793485939299360941168696416053045431597088462993499319154028775752425649616536705297701058482752399154942711534922242145482169961403945886155823978586120921636944538212855901852042668598127451973094090336198008302082647296391129071417132651097441598471233265971511485060217519000768169047601699124575046413460903555269804437262273379266652642351068384884710249308734305619446937927003326850400469769505714362365529565864015074113197910479698220875028754464478230811018798103921966848794086702534029966593113892051684422908556951361673986050935042244279966511335678224007212259058408435655284386407168935489450107412624405843070361823211082265483841147742608976750791478291969521989924241908151995832678676286491654196360449462699628167604673846988457965048616399376422828077953392119997082140402225430526607934645560593764450254440351030194438521063524773851120912900672735113401822562232235517733590867298065960889508585393461300061320388016676849569322734981931596596998454795747460114968567850145568489079288285677005218936178205676342865097680414813487212680809329477029943747232525027306439285195085426801386373105656272376667041070512046777044539580011449913850877964072386296356655137488530713089052170052918290369501499265595372193888043064954300878665670388308849910972418838494842979190811936061467503023657823333213987646853570788519674725379703852765823987451255521763904487494016814297265087321454495707693094603283782553078085460283833954214264641244612633257767613056461063481100659159253302298514836871697517856474528497306102636553102493981344976149135348569170703878420839313557760975198323862566995476414636184767742246805650114872457220123040709150506565959502500889660496411324355382238139747664222724710237166789007312149493414106070468380941881013905793354813461452041855562105074854814088572239046779857435323415193536780341416093842386048980278276448837204685373476541505219450954228158619102952906130798005507376021226447753369761112748173504859123320916038136144501162274399177084951651323378655846644244263745093689634927637563206474460203346766244628103741119362323174637164539386877500289380050982216545985418978457923528582319027868506694343308038273907360782541669576632275708830290966224601513076671386138213532971709579225899509597157000950316377726245015143612692634675672793864934164354093432516496766920615078236205086869761023488276954432333094332996841695138691626918746043244749419413868846446854765666681493407169951020952932973134852584850556986873251488878632198300718838915021383183855703683218164608154465436908606034773983852194066558444096263581960700716160825673356924267574691745397287250618838919400386563074660261295245317461293261923548320372692157215097561928845764183053951120878470998756113659208303246460160612054659152349673011730441896043140371126117613522826928112793479652061565885221764443101417584672345939573907825116294787604527910407098327150598098402416352758460402513494225769171393906241660271521042421194775564280723668100353558237457803860421024877455684823602834564557544471873255320710861590611114335892464352035581451462194933843906646287926079773086768995977976286733365565819454422114076312879034461656564474189507272513933167205840237893586460803847261558315125255890999341156189259420183714906730970469303579921031213170496025974933113434702281902240894522741171470710172293894615545001141649089176706737007087826546665891523053489916191657167747339626190851197310766177810889237358484128236742664570336813873568755231397854964517954721089247950658768388757730980926078621232533212750618284224960530926257055668370671793292980643475560931921060318024870185076868901747783163764037463236103669577065237132243809712763075265515666092281295088464171859165879475041213235269485499291858904759000660826133181618933290248647527387657228485469853566811600041650325789891619923275666405280366746611819449969649620322862345609362038475797199074934503204657734866861448622376288662095037004571575662262153102394220440557851395215487732440439798925028454710811330627189640937485250642618904844664059475598427448685018952507914482267124240555704984067970434258836923692203324550346661318877345033063625917550814388310565788215134284484749183664870577078082538044600342290472769324926556593159135971781239880772347764287367294685504250116356204814690331862006631145371085691513385581162223039180976804325243357238437022946336623964937757656178922413782981376795614999695361757567856454037531361533090906051540537388616150928754043999410106085332872657543039259183295602051212519283318194470305705056602501202756934981516017411153080218898847543667379498221475944921295358306231082368601718513361783067933459226479899867892574756096317652578364744051168263712799515200380094064694706633834814721496193310031914479810555736744187218235207626601992068711049223466058989208444870678905234812903780719540282396279057176646141442790218728163192687574992344373621877381157672848422844639486684829410603650645163637760330504170261841284243417785254737072564883560489309342203782555389490146328184942060499308075321674940736808333582821600298745534474007305848768641403171038934933163857199582532429472150898254324027232177194061211238339297903901034728452745137740203032394641325135369537906320664399942973963648845992160089644460907249322470166048086891338401936835201593308209460505093758429239398378316683206162025116144102911838155895512464053866359894217756754060868822799111256736128949763178598958015488763290768241021714891734362553343179713764466311957309629626281111981648917580982004777887192292817490365933290970875306252080759673729603969413158293397575732154369664828370975611157309797812969322887075111728886068427394268548425914904939500548651136650910018356592859143101086366040533297992996079648404463031699723848001631226716720773558724491406941747703522645882947538319714211205442217250774856462782040787518578932638866677623488600645394345861481522013286342199632819030531689334411228615402466497835533748843221530214329983769260660349662142812664592179069236489912829626663292195283606160570001421184794284969852164705194132393635167018610375814084344211308345562734654433062053171788812768671470288083001306420825940839681101018257002049838542733855739880180190884709670340664859948897786781386704760747481418734552997659546192775660455575878412668084673383868450596730663725352642834068921733008503263919963688271613282466689801520683564705584607301870991218473449797656744674156327558538495056029561877107136461463827786172008434915152775117421372334738432807156971898197582309574401346356886192246048260866943615986016191445618462287110674154924566244087042545441005084564686877372259190583459476967862103859661019492831298017111386253810016812958138093969458810338923339210237631543657145429009105892072730948149543055314622324487124001217507356537663366307459329621683748825954808832085284384550959728931247814181595573304239900865585842255440285461930681247776133875344338666027097404019410434402622850885618285801948150541624773527123227868662968873531247512102301051216349743742350236503060499914465589786874618042769820531604209511726981112525015594355679176350371251158793667923644866130201275396343383868890529529511195379583341588766030737051256120640176029889533025862625172537873683596986467995942479935195560326351016334373052300146696643031557057961312729407620347240287026978723851750672646788087594865251054532716500932454249313114453618386459357525385781115573282386152827685014620817521959297829927258384309756190571515263026196801204784407561654523947898259146300558202000308799907998601534555767141966348748418528787005050015497660856231998531958918568110385373437900853081238251757571675824563477175628845477639370303341150966376429353104628168818505499256618974958427005575190912163708048504769922945755006950061264874044434992032986677666996326630519440378922346125168501248078814722681965977604268469133530931908235330240005601058784796103925161862285681248024441162990114175887886643152675343632646859273910317618553339040268113369295720860648988844820596026406973186182605210928044250854553582418667751662778390391416288221248974783629240204675812649126446286652980116854098242965587605467694786801172908777039010495573816625693520039947028199623573916560248204630303613930165111708686166255201415394698902984874019843480606752867484091285189126289460702938953952848168769544431366404504756584553499090981271883732459533685664782300133280680485284111665903967884532890699295518656653299678906040767931172664287504734903076261162134511764582056429192582222546950211428421758052677924845393940147654164582464070626724636894422698005990299322131453681722719580544411780883031559155855323813037285224764409435834984511615164038272916164896855453169361106127106483994792973185790918041901475702522158527476186315455143168957449105997908896970468518125752478178002836238637303470977932167084206866667925867606221936576826760313416925413292415560716193803448699805951206537536523827643960955377270073475248473637646910677526022926915406631478081025242741306139439553024201212611977681956603596046659676892968303668745507765576817638117404638165821753694881196530959896386321312587568204575108467437055893833555873441324147388718860642221709323203633203873839266256163558478204539730309778357872493960384905555340686092137153815265296333816011982874392637570589214107134733277543221836558032244355905210636393473776137902997136165283389983205615359883366171132973358176902325509303748228196970138848073502227284576640822008871332877079927989241845035878638498702810078500706468196425569579114196958037386182526885985446851076589186381001304046415946704877657892335162378511853669428009050180857506315260159419820519397754357823882104431769066369850615123545771418013413869611374192478731020572910340853937304271371712659776371434383712777966787928791580981983665794196807034165772774599667127694422237458212554906033333012295709552642944277846471998868301146014765480305118179657254508902865381033371262571754957006973887712907707337390109565624260794196016124174749603090635125585942537774200676264395306299238150701615015523714443269799311266797639842064724054254509743656030404077476759294291148064120625677132589953232989399356239315410864626841493593796166873368915295169721909318503395713091558099952423390648851707271101378911407093234657438805753932031057390660968802710933620428029630640494022423110700891492396214869891551617166058744212294734597129154988697221093094474548372193323093589420101192442828808283588522413486327073100041007219582972848628641040663695327091368336177664591797055648591908474005607431118755813739265357615711517141263521200272193753806126893053105568662528053338926719299848026925341412769829739140202951573209439749921757475640536039284036465489721497950383463432156063093580148241488679081183303518899447707132092091875300971874239292610729670570509713310974536663484008117456114656836321602870282881480565058192423206469257045281287788351827197831191150570001727212342132958892695754586810234548566048363207862935666929446406356310890749306193066923497094808672477514050963764627837494444238727067142017431027067399487188261836811700833209813432205304030312396350830038891189159639722979769482121135396899698710326777884627453670931519178042318028853133523299365150916288075790033853394940921414697452700559600156173203487253506914033421149948887594724533358464547012443974494551612646660717072381586030467123422797892041664897001907017363988612821309456439530195095826445301568843742802486763580678620268238115048797556227478559707313682158606450066190367540281925760096000313338865766606330669742811275206598948378452430548527659777373391701338944211918834132376061048756354311959649424144197413638339264999512067772811350978492849517645047726148159956390146119998304581671770107838492039600621808936474466266443494204170295804609494162894729004024086316834839486538470410844883626662786765323281134288177331955266836279356920488046550322091085969710738542143567642774823375129905279716060529741953010658663603525782996101558272097788323333607844963388516527224782519294472758469017235727581779943994139355756510326187792070769790443183209732415013173215738078627359418872284691711228212465551447910243918572908377600551887348723121396162303674778659618154518016647370675406382795032192925416843516059878262134009875471093673264415983279989045987616474951056203418134388060276071583168969891156916075885085953527418508715630457802928230690724846034048012526574715017166587699075441587229918866223663800705713388852542537003246434048882055307917395521855112781700501970644078119826214737567050578977384432764140831458659555873892812174541271912751402637037395638957574311054654029422446001940651733820061245407514036768686863161715339595293379034270974942862219100993926171064125745575325254879765908254362634570282550913613561726771937972213513376813407688045803655567027019204668163555041198898258128360845161242128672737772688874213876860148804345091937458366010640597526731197678619123167911796531845492607784138671107172999216670618352678578880150021239818984132770179031249104617900874129810688208045259279287803970104908934373210170926633773284067411285635479067030075517888691142420480082039733089239382098331678164872921701902062865892697258461847696302498406985007994579995387970441960580727730656447133012581984709948616563192991732669724681887827681571586756944307279209744228277866270283167989602600313998975521983370809594968376537636581725713315271191931949349007925421959545831399735170428920329126732012811376839962155392295671213006646499909248319935647381758863305201782099737603362004143968905630179623278020253862239441080858796435327107675746764478567792367029482520128764206989758713142851124594952285785226408502081264675122243273472734332958059910876640205241370424877068015092741683758457713916924397721540822494203843263296820685752485225590851468279078606596419829878820336240937835532667715647709502871897922894044398649531229540149574365820950385302131334830777214654599432424675102384333934845099636689865592668404634494137133327381305494535871697391257222550913740224791520729986065376590772073085847131524427047081622453387780263706512513253882231746449208391202228071030450606208180136736807385146422158018492255396770031071053230158482521758009884223054395761534608126317924030855132133396603417885501591222004417953660028738948748589829091365287667782974413560399373679821259680023059150154418812111157186579880439792111406991237194593418666663179660570703133710031614016424686010706457607214587048166798807100833255785479272162387177506609358695875868196356373867301757677700557744299909057063869272394713743711046493855480542317366041677104326481897836461692192605583544117876835770963245267514380473552295120191244681640402561877749589480143462601241833837108168825816670991944664015355572402068803339047841349699725193036028585489199684010701312525873932647651071568303445813985887448040618876086604299308912347921563937583846797465673189023375458110995625528821076013275339148464479467337693515555745639768621236210329667435227443767392074204103893154805550439065543776364100465303464625372746634259183146579741068098863061938502858030798327949036288360804178457954803761952351253227015618335120096639363859311938150202612075201783287758554608362677596368322257839977258976245459309097901432112024376305350894325864827222144120799191977441975611095736983413140251790115343329286585319228787811622141913823561450931583593566742467853776378404647221899254153571257589145557761688637488581160407934775870006747252864910338129596444229677902279871725265186434493239892905070705433230649909045624367352966474936991600227974850967648466246020217942547533558172533859013908058375564694724096487176695843931597230680384913414349367921989650066489264629441368301482683679261752308695098881205762321936941665101488055910670722555281115369415768415532591870368424399443113439272000485855848201872829882886865540922983014311130547420562182801632237716110674244717948832604822051233795608575074548766262312631942922656388253330937258782861223727744336521721068467118887305567760827492181296149293147848780541852253134605591737490456281898144511416394726741288858143487874289597288572544730398337139612645978919204885819099796721501427654919613290127236204071678009953276836272107082752340344655487704708524836746065172752543639856611041352544417645566554944195392431683145209686526080000514834622729093172377715959444074444254195631827944243988219724005872696762715023702047393089109186071770661477409335485490125918690460420985041570628070244883581031787538002273235496673903321825672103318710189160846708071292910194530453877380026083104693962793745599439678071963050257878915816466697575241099422149569296371398474435393016523477552152736862469356819843328111814616281845735189238845004300045083363837412444710528777463907344731291643172177133076779443964825032292080002353143322587809417037020404923930722344903171654788557842284412939743498566805647487192099843735947073053314463021194141855167961366092498569596526720382307123125347168681620952493431234371770772249486318111538081878802898225346227042457288978545470047204180221727835016593983389727766379041691179736332371167246176554460015988989714712209325526033218989293991921861281082632025975661663802466035123801152897699342493347891131434800634254605923089182293900546344240705313458572952397981854407843202473240051707613611649236199479677627998115745797552118324808988498649409992112246469764456689409370808626122238183868780812005669010847505700273138562851053181390876136252937411468075797139776450679191736882396276266266820664291612949767332033977690066517286363308012058378312799535566119524600136936436093866182877038585960145249054732969136327634657862419389740338863905863600348886389456409975135617332356381911618745584801204914697085820674921200665069351883086631694762433249668906489576675436164079127783334277935610868485195910014179712479590517034439843330638601233674241068699413080096230790236484350916183406032693017786150801631125298137615673494312365405937999837220608339307716596596875360878071727509568023244218830571110401515916397494146096035266715438050996083249905891370565617132605995819958758495285889323310485265382416621605852406039605205414395224209300590537010839820217123788748206223418500449901399157182866195876906263184312542554666092100010989200480573735871504920687176623659900937212020636038703095520791299425291822396393505093220018183753770940437510667223111602678293324677769360897189739207591307359271302657953067339304759926060774939648948589102391869102180942339291735470529752063026767047127474036735987575760384912452404514131433368191625583467583146433217336874278532045074039274983236527129407999503670612414347430923930886366329143461521863314048979964696642797241620638117759286511727430948420360008542351144322339237797085300653437973748151680010481081427561570752364706588694935535013272084352465787781647077500682810969302114281187878068207370729607457791889313131257014148699051545584325556434239132723224304742209879924898815179653951275830443314212685666656448522687973905718734468784339349193953237730854852018851188832613823282690257583738475795181632805613130251854987520674321748616247009873678301225413520263429079036250492705512362502437247977250754561047218052713398559052028020411404770036313895772912428341747837434178030697797487115665068787049987600005484167678152048592926387997236760533769281616049808567320036871839410444704654979722202413297754485486893743667057761784465602999767118269187925952359615418451597174516134359000824326139822873605793321701210315779534912651912728704676652730327083227835021822140799247965544315168945122047004134567420292055224697039936896215007175541636387267065881778107374024535113600890960978767630062995067684673041136847266561485148246251095101394924984881374989700185293744336897454687873671850959737957803864502250502163646996951812393969019205518026031008923749834042205604450419603113841551165489188686149317268512329715466790906128754018045844992789051979028955339541486199187376453511122414276708619459082787617181648442085586978034494670317656318547012053940986534535912513437053976859320876502813876331943398446651411604968669207028102536967232149272022414392679752858224208826038543684116945257200898228657481229861175599648332786327448260869177987347489612785391874533537442343108037390959556073465013840659100740003329796494373799195296948093375722088183190094509817304717999100163223415876069953710683177236402393519099493975104725029932188990448769750150718309783762592313750570326214837768981814553837610414096633800989837667402618268263952594810975269347198622884304705389618741710069734948450781731131846096732929218864539360396550119923319477209666533512079311081428823109920989576820066515727598504866507002036828864405230025490537901903555129888231312616255839052507241014353432204806977777182645851026918826678188825744980015496587247368939751252785205288850195006713169919889856635691577792267491205700825644641470350691536847470688904749214238652623117211408770360825382556681650714020659720130223074795852143375350050052090825651183183045957241569763242759713244304131224754233469041735210635286035497753898927383721247963041407753301267623023522372236853723746381893662957401911092967519560226557705927167738710551333461346200789014563437567706621928840261653419856406556582299765077537465227639303292470574806790368101510090962297100730585849822145865436286100321092283902055943508960962830572361745063608397237886458981220969756751378325528061708481382234773490197061280504450160543933196235953184906728404968073940574689023523504075005165547028906429946340502282519756130645304056600834894627656406965255323675357053717387590797414481493712359052749493025092566182904600975049877398662343214916230434642902636126844827570006731809084737704296290295092241111903965594724983170023803583035765033081686790821369289671371565816904796931847487278644635585929588225961826391877455297901911623677653768000322926334090199482085487489136070542324248929209518850550593640252067227721970359098372468443159190627303901466749799393361832849709636445800335294779746283125484045217927713795145029082717231669401287873702148785473396712536804538922953321019172314233754557150953850515674162079920128948451948286928885995834167492139663790685594337456218029986610892709078602003200858681814594312940020941355286784759098223125892275470684571033772620908774641743390222068526797673700790568333158022539032424350707637056657352543946614845265001339680566834970053472145773977463582709515694533149129622701229319481923877888035940045642438471323333099424516154746932011302316230453757698750330749246990255791462477507369907169747061822392718837030273262213012104191532710302995829479536150359565125523962579255257587702494019976973848944073328768527212576104793828884068823721159422930768991779427561824349772627646628120232054196098037375200576139537219551370965915667687425140729996657554585857143329886685948092651113179384717359995470358719704384268615461195360872615143890106767726194065459862697967855442220792081160657325542346132292796597674495406552274245723839448752817048560373435763655418241477451657669695859293809506765686445034770590254772543278119332434321369088030637485449837349648697331144806190189137987811954442729748022172633007342029636690576840880366962641416801906849109691102789900838305856842037360876576590643343025520194575542996410805097131828282841481591818419031161493262793103330313388756357318511382028281603429308035285208315488039017195754091209897124014643701907259667686221286383832341037276536350391940168169512995466915617052883873783869062652202752310870068337495467756947185620879795641752276341900267782630177530065416408733191066304812329461342111355680335928486390692781278936689835421259175684586877213758508366153070278767849522167678333930019367984835713997884246533476593222311374781475703349331630459112120366792368991082421219317731379495755938340213831955119167229810072445769124790832885639358278448364214200193577220317496002152648684555238872636816680753597952760543956534482505511553756218872408194133748281340743941875514282052284124140797107888543322824437501369702597970927444662061439692035150706968875008767916546142495211370582428521460904999054492376742936008282884615492031385232490765632640914426127814259332313240418725196103659283866527495724357373457090511337890048714266905244097792225658361564037583013365778881820733683986033525063369725268466080683532339823867576642161937469562177006246792111074061785059889281668275345945738591662106889428451145172270963085865944965095598689103617968958972970891742435687864108724280032464563573792146248046167394858529763202937942206185287644407622453605584995008564748598546196442994165626282897669262586110103043450267137570982960657500028921876851808240663461165245876271519092150487857199731294663093095690798239868722957166374728626530485619778093284772667369655724151240352774525004579562415453627196290568905624380946409814555492739901696964757181983496343492713239793057000482882759065494432207829488742886840683392640598094275307046719615976532925618295441727585291246133199826849467070470625345054593262416338290051625691755996429993910065249148781422343199878157299492007728989796004333607062496654131536207457224885409457840679986520048897883027380192349178313152887808561601810501750591066906136634862226413303416621844242947270397082729587500296252257623307381844004142884712674402570149060261798977956081503146472104634201921797787006533670453314792397055920422379283056407423654100989076455381800658024123247887264274771653301724211044949556644081724684055049994942935144566509366853086054243601495447603757514716713515049461431327060738815065838818750934258482083888554915994361249231269765703261790871243781085423844399157570155875012442693490659154605678179954370645890407317909212696441940216698801820142459736441969206902010135575809049785069683870884355570428499639621809737204982013603737860434322601617391598591843599335933035408823441201366359342204939845738241627540211293798817692751510136909148647769599102542814050665257951995151759227450478339105410493267656841343718877322868393570216954661970545553384844372141171479776641275872881322324160142505567424051187696361943822878713588894069223076798274030328268424220555446991131757686877940300595000124344617265285560903802694572998897960744975673783674206665262045178286429378800338771819745639494334044927067671182573100838288153087733466907954705951863895097560949720688564568895502440230162507333239045837190743530963917865721117422937010168380122659877190588897585371322038446584718439723995618742017308725312479042805100651484455877959700323541564078084443543106444783169870321000797511085105135664894369161320684941905376239223379993577453901977314672607291299120374666725154107762941322491483774628743441133107634373539408723247269717574176389193394344028765499537472099076569358300554614757524682891837374570627409898053291929459296827719585968638134281245666488440598513203926402466132162341891006267718098014800798449183208828783848896954174577224632267736553616716370164551755672530029305538787020069097079547088523590307219419329447305133201705927064151765222146048889897571623944687414025483594996713590824012513307870692038756939250256897741122691708622624171691256081119734567544462486142462078715971160844258764761708328606619175989384996557628835216087346581773544619418328916748364728959994235254117065015966023328772608523800722471850300814064036929081931185316695561446493877171817789010361351825941214830927671873347309699634938704876621801993000199721847916822439063498009014159606405678289300282009484519468839923941506153505946673940162642171295094825191362092418914132594494322446220212845188000678601134312999858340958341845732046782401523914506117328912759734801548582202814188528599503150661113306677980153206308102600042193016963387332197145821849287868863083496380370596408414661305480102567549593191861195858297040185383004017795314874182215333287099762941808150435144172294383577574089488521314236070219897290452920628498106497619255478185596485739491485677588705199700055345186833994234797137115452673566936653464369376254454607613892799691516078714899894836941909960479722836040682279374991321175563149402899140607137547561470169971314421175242778733901731402670792313720445784570297280639248249968144900724575727920220670353883989709302990493543359399429316551409085567072767813951537232115308507801078283764821326716449088434949668558542233650146250348743166954173246375956070980096620103615432626870961908237901934056696729660057422010890007064014861442121642135880900489627682203562248709879558120571700377507881684375223277347231922760456461750851767715977160021960163950089424816195971967109282089418607615444284732528902981372679996347187660788166172221952807384636080912617672274271824942844018475521394209350905312177826567172223212028800117401350875483627945363709877210790211598576437294062880984851485726401042752267402245900391228461532349682163383721682544874861696871350117187681658521680677187352968604513423662525150395255928364458211452400668597301555510555307583928069222607461700322312703604813109380712570346842762677917966842871425538043993242836277102927783578878119825774376941286607405706782982441220558334225908195705797793386266392326092457383814757063969267706534963878912025623707368790376124906845483582455774137925730562571759030017003769667798304012499005293394421565529248222998517125882750352274443982015746027518559034735003989892712089477366767509455149596409466041112636088977780111402906237933011752114864229484651132623073468207204948775521680235777758708999312910991737375310245095641161972167662044666026245250956155013522407572488444043651754927129648003257855184092018307194354039975278458653992465935949575498257344721374060683658187773545817885852403881389429752773027718882741234082256154031516636095350643167771581600406666395845182552027384911568203832407470755897416947835348175284744697140389594702248142899524589059518922801019804585152302483055063777452799730577040791071620519617900981666137274310741365706574229675680973868348592622445816095335524127352918856849917004385622671420190397991212381385185472638668269220124976496127615141518268538445869428009482809858500024777935766242184661306192567405652220744197269896230739918663491252193732827306468369985828168688596622974890552464097280563679886035066608430149241850800503746327245705317729884192260710490811141571278509842827893527179660325137128396733305044308110551538208558192676673992372671600429082527080622757158678749308164062605428201673213729892795530078452868323870898358054789343193869161992083388351492457732576303911133917222267832842180289760452792480438022670207190605210617374651997084594783016128737481957881291753136782680460503798295156330662529792398823204726170166327647307485793686129629645758022846325102867384612434774859505731856144805491460206541434889425143263794365478954006444328192435309837584357434144492604154115810881541673738138989193571741411857375382589810998786794834683454818733704589200673717781114624291464203963265531127497572445601731921793063508556635817811645090347900467233928499296101742515783569606739332571933799230061325401924466145857506226312266811035593294977325811084756825590550655194429344334304162409339606766371384090495936866435578076506664453748823633317029920673056772472449183948989823453176426122245249224773776851237859866485495545666079897015063592551898080178298794491417376623383497451274077962419194231044696586271070420553701123866530143726513872855945436211443647900885373154583761480388437223986955811990856114469039134729092700623250123465399357385086626008035841937672483928168955887781482229133599750646122232430894227301755441856606981152769152405899234069087798626418973694740322890882568153814044422791789691012810659970317753286649005320939343012674748332664204613129169261582338162344446561682535337160683287262926119139136744011776685089849326769730746477774620988381158733744409655899097529958950908505826867938656433117464587583618846598591486454061361317140191224192050171195074626038756051194889932366207314634798130478198268590022594775155749085619210503114731611438274503674093247588518782495061182789043314039467746047557463051299959849317682375560581979547726733838241440287872843815682538438944775674985930813503652882075882235353415346711174020009003521794641639045300345558453169854984297550537950533161308611031721338489697237503384801378924807209587700043879321332100845168799297634099403660626940537643742754674112814036872060409260514983725214137334573094383313745500454011813922855261126903424782376581980815003777411315594773791438838632278565156316256821065962621021352431314563940890725986111190840270149801466035054356846213897558543462280139251675773072889865952178309760656451983219376485122595793705931869398910132351908601081168523783044670356340174733701067936890262983171606901768589198518895239595702141102973813722624781555042749830645231151154662513606952562987571459024273959723206274228962756857559806168105960744670309306580488058237003001784386153158665661885696901554911779234965096238166455705240824759918388624980540656576442327208714557992712174486028873049366203859375066351349085652205453459505756297374875858545520768755944956450921311161154608739538260525729097289325966933704007095284020502084480554674181011113108499187652149209644303529972433041736467365319548355781715831611988099616757684993053542551154338010847581756368210685507207178744829132543332270725662328086988428629835286614614001719757831042824677470436626463374125957049448149208790215161923368250859608945688996907810768490549398448457961769616693442835310218729718126707234637712517729455197084872477978980832721240076148504679750931635178119953272016271770635150338612784660086319343018971851087174899540926393490185485138255370213635409341447858363039799153995127482819305691929826869849115650622156431974029470074312111416310261664508540619784017386264241990036665988794406249004805548160855177021713822166419804344386058167940728744888988314756309590069176671921210056369556955910766129390263949421330913772232266381431591546118359189691008687705114960954267880184174528849398286195773078663367619684369500174405424534881982822375603853707777767554516017796600375687327979050692598392646443747140986638066800866719399022282573471659412043924997485742108614823736045380594935234479389390965941122047938504046397591229139730835016719714889644049171566900311946163415617421625399401631351210700917047943232605961144855339228562033380216708838666570523242751568616902808313208912406314097255034223002073642059044069777793303663316289979274379351190539635431707174333295905716011129016066442029096327803183748078041302428526055690414014449454564580729732920275003364846475409398138675800469908725955197066630582954692574752784262702689003405468246730965031209758525545257024809398491655926407396702212814038704440072805427027905562989373004114157806695481922506756013830267468930661387319666438034008186858487875559201375325928762870812401379377250833439772682967689363119167049452724379044165216371750725103551536330224800005094463699065589314267425562862540568738197367665657291383937589434494283351099059264056778000183931320324914356251244329983635301118371982485793607531952815992577944127873552233829087353896589461192361889548915232428921367670609048313901248820629724939722435149828650583369670372614120388157985347522966077162295535508274522710987085239312052960602336935798810432855432075361426041341021971085724525255809914985331979500718349655412649245877283087715011726194058341313682271568856649002750047266786791761590999610271140556154661929146322127274827699574787477730724447576895960602015914493881380305592438953667162370292070191858315094112729114166031641980221042887904445645193177869411742972298947315062216062867676465885184249414434593936848656538419811352850760158980972398240434651766941739336686404122461856282969634404528591692106595541069425379944366438551706984467719588346268158688550214374581816762981646450805114266936835158350729355900878081930927134312454048775106423771785395024303358612525037314809238696775885358566298552123442221999706319451217347416064675362511748028685836820607087301651891687688363773240210857087941771290022972584184638252292738462338865451408253414567335718097412337169082336793499058113784394111381095214685974306422389870413542560774271518580036129774685583921300286150702730192612612076832955348271352852039251505095438218115144185683558910393380170673939007207409648352391558820512353301962828145503677736256028283781331556945950654255909733233568963066418942708145754015007844915134009177697727756962129133313408765729751019535248358000610383433213289678846388312130690355697213554237462553615179823077692820943713793625450979167637832216507132277710035708549045003378843816932021746762951610395323386524631817789372195775884305354089395694027412499803963887253650084719208845180536357466683641856592949059944547044209099476056086854143341627679468381859964732921396443182576743173402001117553034256340936507437547751388173962432133481953378212219477568324408744858141743131154715017651268317738511533244864668477109046223376074823496565458008406809139210285565288172024416218761249658189103610875698018804493902902435815989787475639568706582818554302085325128120733664979066189865356565593731447449108989212647141096034386981064207093328154759300175359167240401228339513479580252610712344572740830623942089570363032395440510839532112604698695106672321711175694642503758816845661673558504774166744234235069282751406035750996942992568860126193341499659197723587301160731961379563805948550763638074449109292937709239522733589532384068642712765242634865474134676685360689682310041864408646066666624311336065441868453791723231192026186273636152773002630908871121292365953282361620537484390287519843714001967139603046038715500593221943603939248218340442554116921237064866619738412703899347095780386672127767246883082553530986626588358301517726631509154954960491301628258087472060027422494284648054517057445548250792062849301187752519402615448323232112624638968078715579173034169421033114767248999969889810867302185067371351604852224236073792204670141449275053590571009176423624930284047585201081441019771844240172524384272245615750247391856916045325492763741818487004764529604186141455839588952084930896700606895690805308176364283528001326927868190523661029342458145298199274065681224977371079017158505903792129417562435042848664306423557522413398931720608212986927296869204749321052120988984569597527140488410559735528881134103106537153230613714757087353733983550274730605442642794411429814037612650981088686970455479145815855799030309499363009416000591330656400375062330230319243880997637678509245719294340074546229827017427735207550057804334902874864856938629636818078697021818146126564274039260679083734421267805708877115937069365987836746745094370077648747324446646344137219720999244729831426197024789549097115444158555994731010912389866578293694126706526831461695091862726899373949688707299632373441675888675729442220373032876697704613935520528660277558774344829811085474989379148374413971175820770690931159554539714054433050011242223100866450485463455088395485262816402010434201396181207140873668242547663354268735638107593473007304688458876576121392040251431843902369129527395218035922336737860763971895784759819071671144125568526613813083136100077547265659910752640867162206601098591777401490636294519915466542936584149860646958998414628015231748840140464063025985158260820846252953882866982661224747178200697191112349811564433529657545781732301222515357361863205084475791317805253939759465874351254062287927532200803476352788521140985061466149432628872384649903096244530471785170764367634297480075184488974152948766424817694323346809685939265434150373117270630492604603046665425401445685722328327139079037605209800359109663165383681015233105620459497849036950571084807307047178649425229272042038781737523307605564612521873730512810887593765566270093323524438792822833357113398162601743844886209222073357959488724026577316929794175660238768037578896118467570738371528656027768018590814857250211108556135061587728699360937770726896010359075624021501373266965597030935946241336974463908053417763876944679187209801559315713707361623777094848941967458265995244695940626558495957596267575155705300144517343747223128400286279991908129409826050241496952472710319686507463499494754525280989938715689045711596135279580898199988173384061345229568925835542930349764747525530798562983075856744229347802629570322524243062198208192601740784218887504686307343354719900776829107236024904067234050042945414480421730462432531640593774451152108542263308162784882313902311590148028623180881029880534900036846779349646526631942800041982588256258865489385429164470545906218796063594406429116137802856464367848706649367225422898422173210731510869013247669057692633036586761624855976500393569051127618540068276140128565265605184344276117210058159823468120138342038267135401138072415263434869336913437229245772253473343952129598571920250689200347163763139767036808159865712691147638377518112475519738967596658851318200234465020571424389754021592104380481012597523688118621024780597551466460453697375045221270663954149901731445919600547922777522345081155728496078427745629873201349135236919437322483299023863661117283968237082347659910214664827716723398310575331999682920734860044655567319657081708756373798186308741516568494624967145108732829831875839997186607924007769278464940511793191184214986994595445411911195630022501151876011552914251617060888996586117521066075538346186710456359808007062198597666369267698477170229857238794337690607303121379650577244604431213677622194507508446388560670722061945201301672064214379478048903509311941241949613248524956476459011347788956898258085250723727255107090512936374914844674368272650845094606123657972734030789943512331177231155886035289812396134224069411480914980738381735341703539779098635130132815324439458215496632366568376312719495644316519080274241211694588285685169893510049216168928207449030346563864660584285295549306442934598356218705887501349768294915617080576618081854190394429362698392338629817671170938779906556178973202558180005183640762004733176675843903091008851989211019909964802277680767235238438467597593496290965125218966351821629710571486274872403466292894034046523264883662018688239679214723613770664140409258192558118976639659374213905969301566106563869305038107492466992263527920082488578035639876979373985577302735303726267612641020776982709124534252896949784587158336313188036670001059081640835174067691112003684830584749731516280812699804331138875779428432738169279737153949304462970167904750469882228825107519623016473233308009784446066916022748007279825169225242517809718057211706961426874835881647174201535828504209697863129211041723666042564365336669673207703705058565785522051139293650553827539137033042213424674720853816044816491453366507810096437851604420664131482355563246449810738524550617718101910436491612077612443004938406707330433323768499095459241646320121879672102256798092933351446829072062395277936959492787409502292488377023164281409566967129242470670158453882243085289742746825524048226354863752457239095598922718379931271388111783508697423761754703502763489902822710604378436864554502811041193926651974119449215857707020646584270967185989271341475621404009647341982623262529389833374019242986884335201759067424658380195196929958002332305405358119369923890590879227722592027225453670131575421205505614254818297083327338149221723383338203407821846008817933652388739933631135348697185583982875066413100126926092936767881324374487934449045270150513824925139901637313181865050926544181493839484545582137070607917064328874809208648242245880089139466388725497660565093810976270742628054505082109188021737297570760594756102418421923221481059104590222801497813804606684341746245131656286548164565920664428680864219895684812233346241253243473936629384585492685733633628542291778441677992077105156546135488709817979886399992354908848959545583706439683199388202474022164369265551359741622488664935259439666410045979879428094420223265372934305375437667769666204664365811825536676458941911132655392186541992504494634164229533039890256085222411175086231861914063180538989162997411580678771148790059353454929210237098909229617155007181106683165904162603380007510142081120961997079112964778932444103429328650770539475180726043893935797588959645869400793524121955108537229761062252547358951388445374603632403248127122144491856804351473961357639197604613158795068667804035626044275684801138089907278775417243651273811856738801995150271356386103879915017245445761034320479091249212610687522484958130448136810192121693137348450911436587727837492783749291336171092834816331716646237698567099584105845737729410601963434836806464299667851183051747911242485826434345198004620211686295233001966524737475160498493755105214484911928690101379842483154218158649939376532767779617581325075296155874741910253287836486858066509978165586529241624000145083662015874089540321411353234927904779609138009766259126104091263375709633510081828518898109986472777214045940591153852534155493252203970669155987347533219841577122732581657847984624449867655220555916879140263424897261418325558171604272381109339752906833265244033107489237363317641071998645581390279490660570968297020112506195846533422424784947446646888515974812096551941604124761984811213723132051418528684849230988751897955131567129880206181843769392678588322242619693851422859259744463408143225787234631601739647494304643637035269186753443656383560686575616765212868854198725664769345416057367358663244627918082354795003214318435279563718920936893328684154720933659583762110153822705066309873174376712990207153332389630568358337222275088515489817379747206876308497001474209857822591137009684856338298728156375461434112657335136729247677960083245309114802772866758281385218995758967353958790332725543230623176221213241729151829102804407387933958468565013990360745722539744187389274903438707993460178504128247167124013448721468401571480458259102375533570022197250616200783099187973282931998665307554764816112096424371184568845375962721715369014783894244491530131278089319224582010275509382418292252526648255783124642681407956135205486847336564435754247833019031443109778010255766669383100188873985951067652969551265229737686689297226717909715887389455664646314454610152840479084243851951547589982230964832600136009497877462388147366966144846334155578894825975388652322044377627636419523949544699305553661100122739979583385284609526442632067567122120695008660286169168909311520554445110699608875436904786736734655626093597706058561549902408867626082499496337337235040226373893987511625386078626004470354557269758102119798764614134730917765499602910705453688151555823525677311070176676733653120089990799998132566070583743697075750810704255134084618209630060821854302310019365351300169997742903857238644831491673953690426944622259584488779740341931342860209271720613057374592265415982580952671884481169210940866290647311046695266582618398082891252943455636157849168930427971930616799837441915015980663404789960133879653237126144852319194768032932445276768330570610799044441123741630995954255359193473278636143672479882845172454088088596763501717277301519797175257361609456810811909501080126742921139567762375711616721371983686333199202668668928768867661561758221388180402849379518418998982621565361657882493326235860000031177431455234037358779107425432432590652326065252099957627890091294200136654629174865177709583131033206143541771379104788947311235532616716260603971524857549620374882510097707247200378185043016747513825488945419202849673978025232040652263553180738826123251601353686071186736954967318639070237766236830501436339339546981236465034601341824814146932321806021313864891766040929312183104386634673075574501305053019289410596417319230836787017650499956155793840115042881222179060129248999156923077901054316014156681506131457894779785614157343438394845146133611382523428151153521195169064747788522225222354817359283677533171013008116981564567487355209117905097910661102531187209718547229519378277135924668406545234343869268041748921775597441327846289471993230684626283216402768231340193608231731889117160112376580670609243317789840164697626488127311785012503944655643352392429437437406685619225853881623595906373408920445431111850897460835642313979041702952406766788844141065787419671316839465448121966737304285384126476313605357752677789439829515413541206702223511967312174063714909232923400264793694654684403581478196596510359620873358577989079783706886639073003267335312086461990279513017978131870492546258974400469906098962619275088656220944274162594244243813997025717241625012881162595896635422927093710305032094201228827329856286878597386123278440252239278066385535646002522718069818529075189544033625274565591330244861731128253401951225154258703546941797799123866435660495630787357642488646271098924193635901733448975925369526041068857526233716186391847103529729690445201603072934163938568714246780308081672629727390501649867811707514320723412793039814825476094932782899065079857244981890856192605829433556572976057090936952047253334780345283718751834707341248270943283069158100827075990167174783707251253501347087180635451025864600466524978065663523941833018280879262190784268879087513831714607895303250181705808899395921954616629551841632097252090703313877011418645528904628876964679126241594647528650433005230200375537863584924613152415602154005916646256554823247996620392336402326415535499064037079092035654017170696059411652486725357048531945270536896174748792218660043731506909458303933821206888933508701022149787148371428775868026765199433445679397833910552139267850636813841517779015216430632536942796927156416006910446352518724417101233468895736037418456692076779967120528439543605360242507199881588913686091128811395414587277532184447639415960911091854109807243699056436206974603170541021100909630390468821689004164379340444588457414334501351492190186857307274720857521771901089838215759176131198973921218339763806203728672873961303812120544735848642738660739091941738414854114172728506743257097347896908311987234133354903608967343848368058138200751163120403263758583745781362060044117145911466634325818813379360043009446456035675672852990976107224225349705360776003465671477615878696870159587856323861961422432922024392799857217766265454673092656451895590863908395155062243988745271172553052031556189044641743931768523630317406470647687884220866946145126412715799583119748420089966318222904644603229261587730675385103803102378223750640968008109989509529483507230382580381109748837978426538937545725947571673332265914486318502988068984779257154796797143450563567990579247411512632360913107025880118168161029786324748781257084935828156082310808302158737772706610355838323667317573905076728773375174233509599994664278616764480200036679342043586937891792534569885711368876330728420898206315584960470902140629797377135231910824679906324514806968726619776300380091160515213649520484901697201333179123447014941804043640700199245990789836002412907200545512307501407192186100729150170736528931805513019245037801283513060130717790941049192988533645661377871582652301881165204858530852926302726686568247671853190905031837270845704943623884443339240062388375188861786125013845834351360253849305129756526906696055952650639585708376478009704170596514442044587887135155502921661284928452425542606622792540155863225534988439385212991801417830434489979070127406649301605846160563065464996083120240387932825132895259756580157759123274597704010491550837212247584197589882588996885857926560736998878674725627953958232239065238912097214558231718631200798267689115908458808963750885240482786977208302433275619410324823247181913320032880791032750477529799401409336604056841310520382684734455420377852881953156030707363617705699662550322378854375005661373856918378987623220253528564492102614808183806543729654946888329062953102267126428478861421684404328760115681047832674345987332431899974975295448035862151935396097907889454719706601363688819621356583620609388957397179008397265025401712182515783160382833821359148909495315023256230749920404904508063187322684494379654830111928374665266938208803448600495941740834578404605187846156166865880762851440127467088314052512004665106367857257740218556073999536311078339628948746096982103160553606139615112673787208931408230952110995886566508046815096681159168992394838246922363299830752582204090347341098228225824207600735396425399359106641065075026604145653784417499999774218140749132413089066089582878004958567222529246055342461748304831268823587707857071922000808865068417451446260330595874183999794555613097641643062459867708662554112511405693568217827904752320387966123543375298261617060588638073721998140421094552159474289690143381989185960153646035797361778584188432036972985460949928062333539997720101383543423117686503044026322650957749635694296161870483656209544936760878570592064201512711326892566007697825041280894056506806341689848002904686120992457121155962690895360062412442435086194968039186323232816061692328055355908659863745280549618532416867215266203933998166963135338571163634886208312455703931364193754678971360575777159612628500236016378968237142134293477389311200204331697503393315398440419034048145028722940349050958876134157719563613721497665590027837172070620975477499707413802758648028043691082751574140152123570948597181575770281145930541976452029037206606666422534489073654174302666160389448795019778972031272474350043440976139528015841672960592109983406107904241010179778439821396563248829766237098686736302842742677996407181050917172629430091110336789712461153108406339083012351093406489088037942216478193328609345566570818785667335507130525260322718847664264794506987604302239972996785793821792644329260177896898947163856452832696221816632646525690901981698126742725439333620436851585609292711141047551505256003086758303737097192276772843765723136576285861328897293782035625674347653883777052708541119152987887137976842488850741918874662120635223464245611238659184521108049048632626623647815480228646753422644474224408482231828275891483842767624043352813290063599839279675717081355749338348147845156598255509837990518258632945028675370729669877039186340392412619782637458180674898800190849794499839749313985023680580357243216846216796151700368703617833733128419742410652811758465310044418349856405337874062562147959605064590025007479166358623920985821836409557144614864173768462914427363863013088173268980157501917880811527622249734949934746396163300366812344031560130688704712942784567783407624344920848104734430095045760988066599025132138301625501288083136487257833104401543796310436412614865997439965087275535663437418756464396056367879448901619817854895057756244829409538237018308816605692884135173530994512685060536447162386159557584714734203507102072692351791282302138987844192741031713955037187070338255465408123104308254355173495895416856230986166293486300026263104502653424287759901807302538786699568525971907784746562815085006912917481332762549521622784763074060424879403595734042904368381096767654453722527255384473330711296017960758961256779498263371920110055822802530117137321365981631214841405157358460786275590626069346760483138787332313975128442526946198894700837345321277992220570122847196502804099560205351628284602681301144321997725576844660983268784225536372145271201982745192631100676017917192728666909880980868508321193507651429698728973497047889425711266816922940043615748231774677988750529503355687676262704692628421147007186509736165796041602276474296563082274978676583763123187931106853112436540377292377231992217813626433711263514201503907180852766917913394617283327490996121821037644456211704459228266616890279486908102454502089806794922732947374986664927403842992147618442753300416033295169326306855514546020825000123350817588307493221813586856673859325397828259918493882975687059444781063643799874177049591822029320905024273235735975777798566369252319386750255126904831555343024725083778871680539930846292163013560419233854700301016019114647665885771043169400328101206370037809423830565688222963691619031021692975493603360726676687500478792062938230919548833365440337406285342679778159959969783711138287236655599799557276214977309911990019399154994103327840935833075700257701028444104087652356367944188096961227887083035216537321079884481412070209094844126489154437146768183770079109706422011347738169216474106864797328876767177997154278011720997301596685712177280923523779172742331386429835832005455424985660088316313291428161518888279379625804720935271194094284719308086371494984665320562553261413427796158685469187108101047276570204904897167380149984239040200796465675953064123099800901136597987919046950102949121887022335167578229442991007885654703228164561110165430694313894718512180477206294113165260468809134642230305396475456257763038410345325731908395043015038173416923305425568091960244178808072140597655335415840404302717247219632895463579125600399523146197782778931956530791685416070494857585195557962635848918605847822575106550032686985708804811497090277312162024068433348463768459377580064041528423987871784224752101151398833598202630150075757648893611370373199575879477864988272657760244665161410604368750814017929136396286146962936333080564480324637653140643838534553289826405390727881427336542577492712989945486646252763985032187074134901305087345483734426842583068404545091516295733302824993620997647227175310551145912433357159436106568191162170254678276899761950051195352933788606594072485468450467065814437983993793931863590005177241465999579805071178002349987259262405392050323090298802740228514678768109037201569370637986978414028749184233758378858212630261016673346699215212152783054033260863452505752464638118393717909133897883342356141100131231544777730183037848600527258381568278383067053824904054787795146066303404257117775963488153072006632370183569568843826847831297069818754231086749353433604734286887890193690712579187095956749603512112483815657560599679383626882913917615354227447075854192174634647649243056404292035932832585929863436025695874663370206138462897498223498947475073576333297161812192929328416356511978885640928761865160733914527139356044476262141111353826317813804880513763604412557305804990940429367806559035897823565508711171554076660258295408244562969795486466646130400135510707744805248653726007739638167113146232218643512836941461216234001493283660709401315795905522396431268560149502280911208793631928897222894882310463626422166098516625409770991921213378906713171278643581055985302007303378006831490627698618932312948836616127349374628100692507704043369704483534099012369369290429555543265414096145358490636776994967807516985887336409307685914710765767299656884217224050447078239530669029039578231779377826383095159566494975518940742192031601689058302596155531909587149571207765510729872557706566101340797490943702856866539138010949707937847624771657751284022691462505788814958966703153015820054346173257901797266792313974075080877653602344956454311206300946123159908030914172321560832001539986357540335175304649003038081048904186825507833791142984480394027807261379696285685231838569210063511279824794467517122321705229866105784937677509572048758413765266554300539596002056559373627962186365943489652472514878783888884212486178091016644203722629205051290401499785169768419865785507351486293075197508271982666871869459078266077565167380815919991187351400480138497690537606456128545804196682571367571098578027463216462930034014041509376843180140143385096683487454332243298861869259468684576987691011154454795178855089628990604408846682134622201383419434441441120061613682299259708494720193371718662406412693089926693756710526369839786143155440461596704840565906242128394793403445612923438512563736915632203737766906797114114779189553579133156772948347489085367098214736161511806935711496388513595432162039641416506234595432378778192982923933005501521212087616223092767725749049852309686247823274020695786648560197649349260720681654941897412968634224877219545303562938166797436341028067095881785385351681564987262424632505338674048671096413602123767002482494336536620713851681562210513686332617509119278577159150350422876023212605853838869998208035611237439297365731583002600687882297928141863479499971657239665257461776697490436626813999059675377426879928550888088385260052764414507859205026982147388817580204737976122713041974046617760562957723172292934363409535163983658776305069293976812100813107879395173894993830992917618638532092605783862806777563127610959649661146549999218721827147051688570508883825090111572244312741033327516984332954913749359262328146272198612652616669423918670159564724474224119277324486613812938232041832207434173960930107273138386184706909599336176029591404830466146231665920425025664501488276053357570899240203381674565061729571082402146617811733742057439215706395695315084575404393979438102310153115234785207277470496676093306528531761571570744938812700987137035124460252806492302547396199811748337602586500573645670848597939594989341261065548437757746781149627648632403577748494702927400863013877007490615537663261098825981015813706547809424260797427983757939739018410975500672156757079852885902337063135819710357178918040389211680039782382313530730060673281462882236993831755335493869841756845017048158947936004377253727465128624747473847844082656388971437092373176223329868003918021605383163933674351891421113774787724209879800911076525323830312078620553704554775268873865167483198462992463399450486589586071990936171002199306084104673902595129445634094530413860262125844091950508183727930540133966635158990621856658476486405250966041345528140263752977441631909410805671253845915246630578776133513553825109129549196142306356124981306206691496086285780159063923401083120846901202594831530734380469469641907182362278350783740247230435566511559764946163563956974931074044993871681545698782527340271024117469816969845092984418319371362762619943381956332522949570083003459547857021684915543895584600694573046287863904138076109362212449893214626068852082499167587791182876160607784363753591630270820744598450933991652056255220210298760257612541254813769850593641231957986094734892422901746332148318707619491500759787765579290151136101968773982331927724674190803718225230176373658538538843480279917813350307111645838223187377947596158546304917519961183798455942988474591482756811296673379390228950403991323769348460098356856299217810546658035495009712852676025198675165859070094688880643662820138392211749837933731257539655323819922373434218435740173722843739737438405060063575543246969731947820270826551664152726196623462807350093528066563137787067131981044469166471134770893894775850795663872080157964331437784577683970895222703348519485986825139297601885441443940274983750452471314119581133412889982241446069392970233428319734998553124634633856303679332337376687703980390634881769144159350408961626582453558765613974752747519415132318239649817486578861883126362251686807611718832785308658496511579329415747788230378722076510305064901216328907370530971236245043320187895060445606336789025733656014743137247502029726441707847289113095903265696282122132864806974044355786354524762111584257677114298772189484610523628371521740417196110928765534807850103648276986397107263168638934880378107777457920709764577548096030496651455254687263108896788935751021078543868612416042338832218416837805087348734109436014314712050382941864927618646591251099656827589558294179608142122434383964549033546254956987966322303599944382086411972452997007739493400253668520833877762182987734239606016156444220921866622579519796735156056848767613457380531463241406282582926379884747434345843649582125742441161560262040767291574060317415843276063068754736274194680373445597880958200369894508366901133076332593107714738129480881491114750211188362396842305801777082307465948992532399334511187470683623258317497957234843053847335025668220893799525585741899901646539639061047554448113246607890118492046064380920676985861466831118308536728424049947978864382870056001196771876416265133438549637040925532824528640400940181742364530476299079262462542214509954230906119342663537495548332643028297560663210766976112366899450214484857892463749420578225684925682508823120452103177688517395211495585840698365620537541794063026279273104708527371240974075688045061828164077243268733761436085426813520075070572406195884208914743378419265191650290297606785668299399583162199182800245334144312742006386102775798976308313250474368640566308577541179022727511510376285689414962246647050553296831807520244993413260776895665557419045112605399675244446802708122992002661979346037807323739079680522270010390818204464499606930562521865692209670276603084396463965006584726088021506164335558042277058789582988082963261159021312594412960362086544923747547286371428768046837497480037095012373775286992621881973736882087827888014581898944907803343533361969221207219508641499744075544397128234145999586847976993822959598506620776569064576552983803147737087574091463908234116338395183757901984191283152828238056210889344424971331255330990188799130228505985424098448773514229823038833328009305849686834599049972866246976453453794170569643374862945099739514099978795454736212258499523513310859610147878859249896703139575722144476279402773420747728922735352834803069899676425523662964046123036542058502316235773947267185179875186150923654006589352444459738949849121736473702391561423887845483206104944003318223609999725627061752307319413376625552219467352492810928506362279213166795590684571071898926113314320553144388225992009370166769413879395635055483561708562676274582959887927164982912383378199007722089398906122527810573453024383854802696623672067697405763268976337649444279501377337896195715323776989681323014088769492920068733931402369252021871554962625172243585305507058114595911030609358121521853001689123971219357743241413483958832266537744659223049993424084285113729282855415158132779110692367515587803482818117460004867850915791011764653885185772353522221984657504910775912886990797200753262363323558304499246355513457762561708936542690131251039794336403916650676051704423039636262028179155367902073535597598437935222910319203240640499677472961335203096403399484778576281746756246949109103231853121880587883039228467125147577430990740871453634909553012282049402904912260621203251860853131419072628817074108744284621624674507180049021085229088293659307257733224412742186404723107564967654904265469186181487945070648318116295035665797491077700511240741227693219988165910152213338564830940553422017037190647908149369718936742509611160022624832816518785000201173000595489277273768758020901748374820911185784077802200326178056534632426595139310859824646286009957369367874752819506177559779348158766368465120760974642777368049177638008772727385001484898312657290864224565980469051766753015108098001768056454799029195288789358448653949937127310795869847615048840987316999065666686484667024323637057985863766390872866181660485569107234961835927660738624929890419411343338797079712720156910385896928249667331091584519725676811166948891934677589654153221621311414021115745029640305259966654496992372343381728365367453999635089737801703627015805427265764606968262934757386139944477954211761519482609688811659705954376606365913921580612206581200414049258130352565803383674395940127041604486167270553929793420383989735888515552756212718464638362206361600770553723830527144687857659476347616710159576167382429683700608712045620277148336222323249996015131358977038123142495272016682502094371981963381515098758995190237174611984537277510224940338920879240034877651471425044736590919615913167020943112052957477496928367955923669055168634951815238065474090550884810442819227240833391889261265293875184610605817268965117903281092371687139755322208732262629611088143811063668272747286302017685652536972315747244800725216157566169392895237758883764808713913128919148335270048029089847620270235423141403614966337649125676123274935648822239932755317722577986889519467152953837801397741939426861654078679107856809715395353201419382621908508216927504381066058969167171077998519056654048560432027508597206391597950771413060860656512488766291719752397174480486834953637060478390071600191602215598200676255623236529292724057877477231056990129058343805836235539940827394339323817382463662429197330278714729568459222488893697975814595183776175148737638454286245007472976038088850769339223395551643648364092213717441515953065725627074881140304709599248705471488987341230010878478125743078919643382102949439078568669406955129319539135984333702468962751164713065023957253304948366445769557177687259575922696715409905049047072172452288150021077724947242399456874765209221566427710066150983765841551014954762772779684007514479850611623595224971346646301604352212722919913586081028457178014585219297457503925648029223036597399896077746108478000787780271254366574483484998629865814443846459855773757064013526736467861358416756733740424591931035191303789229936565485488208899666941837962458863272168451576127930995313176570595077754949196919358908698200217155017644592736476229821964820563672062326338872976402241017046001963547065993454872785027464724296810487934043023091270584870757466579632335142920172861453637840219621313523405974435607915183430180766299294441209856186994516887871714738720797066282823894946042112371106722005467977302737229606354782323210200656811177295928937846220241880939376797227528817241647371624450716486161233439084061308019809325017010955225261947921128776555459949738024146792558353012963492353652743076110445290249164947108803900201771975804866860596039051953522496419387913752403744373081335925203730620679020299271809285100280971300908361822329335153209542933299436273437327237194459246093978062897720986611756058229239836734829612510293023455433420425801087548816201524028427791734689315400294000752532456981528388093062711899927000473929988827678031426684813247852257209246232800071950764721727650576738174257624891481463080490222502147551987505197860347968233066816926048455133710656112050504879642966081535746819650101390025570498966179162178265643877851087137798993412433588898407768897139896535317037917319243613099081336080532029832704470505786072674100661867178460160875752146343008337186931190289432471941007862867119883275244444090116822711390907810893867120015947558777128697146024952869490212465441284158909242354353376135329420865101281390834279543204700448321855750054806049066467595008596211722833096406312923928624043290714501805078189220347550571431085625054054265964484225806950802655509019609005640921193598431653928404177440143877937219432632775652583449416861686535146004495571064399179232897809855182776002893294349174216394563541289057677957907961763217666915155421094912368479733878959851279122969781461889101735700288783044973722649939408774393463017111349186036604138564486333328086708561346571691030899449035221104353702178509649670233044130653015702525309796603965492987194799802240355049302329061606589630999300325101584732066393778799007057569697933775560139132877237882620831248983309772163679014181675593175712230415344816224229178316924748776733002924047863506305083543653734662186629589510358990360809943148947889531627555913265144636021013125656816211523681907104322230956773003310985397170044517425380334475027869818350750988264797080055617724012040430449783397468397910212358697272883760422193085619676675923716144303254641342896586464516695643363885359195703343226297704789448043485564947814717590109860187043465460553183927019136483436177863614833250390044207563228152203686659790767055961861148545297320590809339416668000418012070412696940491248935962564614198867781390493990280465955299771954437870229753153771732137724411973336388884563384777626724382748116912634241729367181577265641940707487185177692443091644777322974009677153484536802635210096406373352369610788775514260898718328509660311715634664872143536416656351123008294011536453574261304397873580142207998924044819011799613824199868881798693325161706131007280923407934830799107629004666952070793428827443736413222535066848851574064099141619890948860424572355708370264603632187461841390226975317986148118603729647594330472131308485313751606022342024571604025843434803031713349466188303677001083966985266960172409373982564098609980431491379111531690648524768394175960449297753627665886216760044600564822715765375976026059368396739186217921631783296145884838880832186101228922419541196100910528066826502583250566707270079974427639595691693240510877451000293768265932023366523953853430537665374497062762224797627762249611831130239534421854278240091496675809930989291234314800546581964113191705885542979820194150391575300399602989854054127246713952036431814567123224016652099827906248971844079894641479482804345380066407805056470040891039075340382160801672409941630191917867761625332914985901640786988372702868388806440484963289765423254455147038664890176489836111055123550960098303569651460907056225590318442256688077805261573752654820764209550822947599430766627228293993891695461612989303674154201057090827494454442746687916745880851646821486250631548661955050447164274615320561869009796031396717782960865768929293586150015428551785174222038417588707202049523891650120101522844892859721449931322451845246337612211096503832428479960474020527192584519336050123130589512361372377543203108209307123983513916973390254996931316844685148433976946466059939482406318850199313552756563320233566239624907837743655471886916693259436709665417930907829338217095425261040877336193931347171912598188438452920146388151445424522065956529257561822676614685758475346082014662020891997106189757423752818926696414067510842463638300134023220260799549461093702860137082736732135854110612129013912113027235476318265943711233860133440363976499562539746256928204237024691060898432967316493130522455459170399187993494970006513993709592279661181376581580355912515356963851022019293362028532589349894342952306398841370478256106724939207069224939271821145900571820549013378884739269660295556476013649730966143137855290406704930963966809480191097919838539293139850233411464877845144864511853298687011375896155935251457757383249387723084949675027232622928446644575695897613074055419542413752730257741135396943665290431676314420882317051716662786980593288481431779915221016079618956995359335692350495030061681523672137852913892918554049367994631843215483097365799848784941110606936458515207995521986067448519336880756389757514128932928526661553042944976073013165681208813355889640296378305772851551792548201637504379989237903091051276703937121140019804819291586536370237676840660469429712345542492302808453019529914852561499562855737099629707805574806072789812764014143072812774037491143359929341498754539366784403949467648494747934746127320799750479533558151302645724442649530454372047903657920914072550556182848273415685706098854592128132984701107470432690375371319535656414215016140913461069117905202434534765227518888177893898931858872019608122397265997112314908559281813615967434100636828985651604016891394644163039726772000819494233795096973789198587810678096664139826533357160355198155821720849323294518332217161531571534902947249346414077239929781585915710511835880579024669499955225691946863386493316396199131572946898574052600542629504982716923313171261996459119596243104162787283081419423655817832335111407155191158982105240148764269466492709738723200737141067092541228809106893073308276958944911821191783673859149962558768667693411537362833134145486390437846364470983987097633227772498670976703007604833204136649546892240404724817039166478820705579515936126576173747839946804898544471719362938456276251925830827341094708389409264545333314560651605923955784928621570950574548071317870273068574111680504364281686074093601892109728048546538459524919997791994194412709553211892449482973664772640557993019570280923727784782870220288879796705938101796589649489738526020276235762223727700342674206823669513550804334835543640683754987625475361424335831558445631269459950171101167670593066966705555494177510861197047950159985394453810955443181869560220528380586917216008113388261230595963316690301023519818499530741087210568745845867039325799809463383614967989044226475311447387313279410968004555724487769395183003798082175473796804105476063530431859971694160490692928343161273832669616917576308561920733330308113851555420068375636720485940633153189871134089837685039641475220322743256145498392213402919623456276072824535173369228244974125498712091677609651757889087844308311981928652132408425834334057981785313653230397668648671657239767850624915463673097044841481135416102699013607766155396851046951964183654143410945232990542494556359549624529287572789666288477992154599840519930535040283166509128300951488548213812823189176005138879871079488949515400546410044184203184009503782643884705352181721413847220736001386428437110872825377171571694133704935064837585830126144201477279717296648908581811984509907045032554216135120906538817544686296624287109336395970004175280176350307475099076529446710483876713065031615237264085483634247615265385522101189212867877684295278741838176757516356976992856132928328221385564452080877975512198275246763613146257436952491727452551023154174486743016040733393484842358914555570284264063856519614324972029510110253485949906677898453006740183188713977420913749267116095855973855150199255545984943259679098078069535790517543612479672708324836766649975567577971723431288796525420480627534782232511582928105713992744637315015317539399141645025981391889972011374205751846667021736682170707560861991976747889905984240454555073769570008524694732932064143687052874023505916428109498457586689979237972934098265477883235501883167446973120995944225036416350614003855696035375041508320987188771166197992192926964571249169777862840602494087555399798142568673363084690980129849166748477656402186663375450142246314757142350462243885736359476554275539105750673905337780780906916315677898046210198433173620563431396417768836635702897365418757430651225168519529928028506362231835109576908076866948689112104268944609022670773854476836850207449911780097561962862479095366367629367859731912391181430263303104222563174505227975286794823619106342068382737485887014527736213297382940622324372306249000389037200952784598873576376637311209326210412740614837147264595589344891487329216519335091399005191412772954858018014098487977019485277784583662670683807716040187034157075720112562073792790953235161313759666446269573648238327286672144815657949116473119674713560816415769189732402054838346456828714121339884468455935608619687956263297383062681150330073518876942786022477831436501514527081043622444812439648011756188763511860394704002803356197758388684039109414532783417358180965573555718125288826459607408718270692106319943914336444980617370998433342106421403581060747815644477013215718448692263728973238142665546960577742557903452755795040133278754048570661394032670229852640086346175893674105602487605043005198287542777406902543948942022451206142708928625305613682147556994237505825124380169303814471637156661049280894719429286278484140338693445483893026458368404065897890337395866500821541218009754328450155943158416785196033169729098773791477458955831934636683479230248024025138611415898044402728849957275410318128809973737481870341694133880176602943654866114426252503887042431941422495313901967669760968381731732518381599074524683425764508210960049520042246903179182507554245793876017859281494493630928251496059654899010684097429269550021285798877056627867641357673359008938540629582891288292502584772752449582363126431705732310415833695252643546492119121964001493679315684479070950484470617697453836932032543797300893053776712666433091844911847675027300186743238824294363051344581952840040083511880818873234267854538811475351423254650672821441502915118405398112777300746250189015728642062906019662829475550161953778752896895390370108433248296837451719324900912709409420738457248104474898134223647934563581646848060192266767080102614693437876530516998386345131418880266602773325223451657576369397737561959543681141365833425509857145214603621439199869011654224630981150686843141345638594876142881037989700523468935862835776543883088296472508388863938577543349005944566739372018309696278065295031217084682953729888856562893548213206195982122566290553430288231921007873710649518905669843396262549818145415402756086465039463237615977866743199005839277482015353127196548359868201520887571023740724096907251753324866601987837068127757398832511725180109268589986718757420168659276210770337353356706649254900855949001983682772204386859046156458069785542021707647018307701910538013291476449324088844106511908422164653448092237808609112695113483394755574781612882756568398629465261096459087764071925427798557011463102872234193046526542227083092096699447583247111712703505195640981527718845738293675516550839069516555038141315301494979522010921139303594468916425242533330100055410442418117092350386219069335421606611299853656799257294824699170785488728379347007315260516148956134014916347743400838504368265901712831380326937073333682950126957986807559961113685052369696534708105154219004300698775485408960341190798346836016616271487858390051284748911117148207994367956182179362190474755284629265397003173156366365506935170418407706641321495936820484369361899503100670430717796646570898383393017177861918892174707726003659784002874429617617554188876599912859216370030879346891031452855850702472121769403118912069143115245823974375934956167903600448493459298868457212687198085896639267549725348656629421801234269594403384450590404277509840615885974578334010078678212677920619939137529814164976036008423879149347756134598777214321473025402454949177189035441461718215206147093701211349644044220233283139873992343824199375212901898609548534231259112137015162018123139230897748634541771196460409259658532800626389576592345818022544500329146538634485299706816737134699589758607071318596260505659845564051923791503170356334791739340576626961228841940610298410234458456786056997879649243863659127710200137143487855478467444312272791806584050273652449920026655256971220841102336391572187653467293003572534083604852850874423178504658000754527534484569269847456365318850350610768475943539762650807083308962340026561713770820273777232633089901731035615018508434257254856433006397605766829392344682629331922211040038322620636634745994581257245275821898690224142009941832473025419677410267417908942534458039806742669167149767852719116169297204940689952445530735738423699151819232657586538900270849813100670043313476723852581891720068312637713348336663804588690698768674325040859009057576543729838730747369604742286972243222879468297145740203370400558351658873143285845696741231705173578165422632411020933028896917670670116635492375612897551912962105247270671197038050007776431456930496665413828044769908622609921316781657316406069260068484143066714069195046777722299468070569623570357920962141250765077328056001573423092704400999203402245323011198785585022488496298317312020277964929376968204071681798607140621014910302813583273794946663821833819535148251965543032088420554856363644879901482037854250372563452068795688018204891743035829233072834289238533024917352703927173198800441128357851874081973854669683979007520114813027752111611533121473545655551247883417526688423727512929710735077266509625400359497947704857968401874840521120251969893992141424626349101454023288107372058773246340996997845955811024473609665878204791303529864944769402226744357752288750772704413749612621304503516974167905062068680998132604934085220766187957169680416728151619135802378380874709934819176350871746476841391402679822992173537770864451190849533584679434890174251972852759075095091885412776832864866436968961066404801648570629381665893557726192955145863871153614755749945152203013407847304453746097837949982358140994616624971794446506131317904366866083610533336559829733463650342720535570063105420276479862754032323219630081042279060620355066761031039520436934138154405142682956819032687380013730859714455657328665636391980830028911769220146633285391115206589371068499938390654882535501119718211831558842639133285178711156853661204677409524074347987702262068595281945828002870330743485847861961072896412341590806518736154635075343606791326918307483738239397269832042525410587090069472984761597236602278988607248049238609665871902039888693658211514567015930181034507024193149310758827500834757339587111831603664060409906754824966028628811138225769392806973234149642064878578550626309287785268526356914687599163830853158341976916171217014048546114359562789851204580357886961253436321774203621930261327579570641962135771708810623220911507853823548684260950889758199245257017957436396310145085244467882540587072379808153710110368773123838303050796416383019583051508412057992435838012202443824982912841306828527800930561369788867863563120477458911315599225164221991692689096823272769467964798171111649464161861285629436759237500720491601948488433554816688199629991079873388118333067554025741292641019328039016993006552341173161100867041755137690855462202590590511813449501654628219456825251315231001731362128589407477039011331104980480496268089531971971973436832031176667160191848913013402013141302144433747228329931722597877007349082337717352943192187120583744957404865409640085297615047085232624697541108307140664592633563211857886066175183171370037365296699879112876630600130108847677685627475521590671860628131457433140003221103995583465586494942437688195683991039384684065067236021182674427391899492771493869944859728323365856965763760831330073962807867048259352589880137644158355004870633790000387155435364407329390801773669521388099885876915153904842790780179902373402794353215434524534057858682264932374378105624355114950164148915279140202809516064139991819234429755289280100723779890523181498227925780766291739417714078191304144115433522847357047855563315676181740059263578677554496671794392636170561694925163168103558742107014061508183306209614552607477939266495810344380638570928994869169782402945587764607186250263421158942297908103483123561901510022849390958721798996466292048747342192832734416008764241071948803901795822001282239011984888803444050614353472705301249442126957102448997765393781659180829369432315436593267747278167140007714294674543461836512598571705575689881932789388867029623439107040368319474614266890841839754223787754886526879179936352172308362291642699665290416794705877724916327718777683447730285362781635704307385121645340301433086349657167595241842651149423196604552286382587863317807554739976658031191197862396813054426520084962514462678658892097176813352478869801648121542956939928282547960561522247043801885596729009835077804752751114546715876841332334831012036773266864579394460896852165890379958387544297112478807834488534939192414400515138151382731007278071169662159744195044713641751233801005375655710749974932597496118048629848440661637166361416323417679573012026342658834020099861174379251270285201468220511749450110641893551393125376360903157502855578501500696993375089006575734896235040593354446991761060747209997428747783788285709727461694275676710285573071359813602782596332179946156482329312975481546697700249333610337401430400478953321703419974482570818724382210268061606741997733843307363191554592929700806730393185872481162112460742369330176543292844724384135230362423508368887008842053224750195313526906028988415681407403725277726827461392001949540525294001700466115631408336257914570771383273648992952315019301503512807888975125220377043215272744171917271099225459972836864704628680238086831494789175636529295574524089191038578502615835936837111796363414988276962010125447658947141559278558677375651927350252172067949658505295776986331360760571493058104647021334785869591931086687324922073967630759884479864848454206826480172633190476171632051717847886008027863894613911304704418500719283696173285836078389033553484592075026716070058159094546599414513604916579888320707682946675705199255755328858860613641076294753447523963826569007802157218673059008587719680079351968866944808066748226289432456618399171883066997371498641198395910896633344165345218219368321041193046481282644208814627062367711946697401285597693584572263739286983091885093616161975050479781413320409464502923404274992895213936585864089362260704529687893524352065696317354721943683089057389113217050579336394067669038176620337740292264161322314265912412140313669021943210477823761984774709984296745955345367363363391806689901698999462815768542815168901669045910510832576370342467720151336497646504831165724382406132757252860735980083411327395945311958028639013967610254383579789548729842408857614081533588132335501612360825315293832632139797263623832080140057762443318451793306715809232245624491669039920384943855359088309050395015913781106593278552213507192681169584366311985917534163503582501837667172444409434405935264954390603729828010502774044892802482951050183966601732650568099470879001641471000845490021464564318156798685853434939095593900292085730432242218381761711318912894379288336890635211846625784832308350912699056109059022029839791628933172943186671734671194118913825295452328980967825980877397343757223297756913018638974649973729372886414761063167051145353685599369948793277415141974944522936878672569113115605033784035772311406129029654073301903919861270426370563505721227565034574653280482699214027617359762330566863336397860022076270726332356573865697105030259661898455522289891855941242866341932110878014832243066269713777091013119719915468633753499648129675095983561930684555781480654000367766901996516882210948272110028457827055200701287752261995869219595601836163811298573093409217544850046653468934848485694832708670378236400036452920102069135209804557548186924725580347607198499611429326837741508797658194327667685716322641605885835318850926420911753573241884092207478227031627824391516124189992468686232090220637170481062303827005221753525947293405403006761538762750298146925729337242567279605565474914322443671339538429651292263487954347136389332602404126123195844604272215139203544277907170435498919068113173043266292381569189578519432454371986185849736069994356463664870085738831239515492313785594099381480292145126926691683723872957899101865768348568116147406999901894469374825239122584468232576316569570055172110557945389773401917838355346189301922233466426522464723904072296072187967897218676680069498762827144213063055017490412969760062163637477273270684669949486835896630344653383654227090086970051801598517318397371702987048932324695472881610461445062853222098372775280783681354640789544304579088911059678677063626293941760385440327513644674611908122919210582482217215282401019398285139796984201588005536006735602066282009277611773223051268558256848006844763016488225532993013022800394335800048710505449605406793407938511622616315815351947662649139447064779564224436378426167426563899638775239849514671381277334153852763684668255419043267211379964984848839009273324549571521904975639423946092672542145513386213025514704755980633685346283322433737326762448463185692101830145956310736161494029204522752954093059516845853502051181791146488966389007899587046825366635636234777539617161875362714122836854528285053925038917390301490603755443769298785095702300054359551894788393018431107691677609154138314114062341234511221391678208307166830706389959796317683536882917523687189084467846086367875380626630263895432371040184959380225297157998342038414907822358979527508783980500603369195677297542455695304329080821321591498560312784680754410117946894858865923088644577981304324213978961705119957468369784611653836288998594335636105336737906088063711982053868210502572112640139340969631648333837645566099631182967724237317776667958625455068022759064664808331885580067089375639135328936025126456977766061362267891753428231417432523094396386463915598704190575359409971506272332462232125473502858222306266018352753153311684067394266083220128713197900610422019055825196891733077872985403522045273426405196814975832526478107646371069777973537286413723215795380409676557436287745044338562614463255586653091140721989066062313473116578201227153681030821670932249701996593806237228026368149423378818317569440211575806266092442459973088452934711970539936751630438280800079989721961869999271310708648503175961741617617028437041387993624886814084236748387114204537014632512337288350635458691122982151166815548341946357182246067869219317225767246092336404457578327408749477039155247227201360332526045413880025709735714481502909118257226674883063100649279887927968514892953261100655868560528289923128200578051008627663382343901225633565316811615139346698103551671211694549149227476299715879858631433202050341664308724874534567886250050835935596274865122742937580775099667100073253777436457322549629655656955309585972796103586220257919897338023272417572796648852472976677768955078091129588709370111152071426153066610210120173082546165312484910058535467252694430579150188536383000141762840904298145389380157485137799028092680871612019800527418261773344950044964493880574618044081772023090802672978429705452940676188496503698619728651517865124666282989904397877286979982083406575260316726854482658144126625461405781609409850792609165105056646717613729968758368838506145828745744958313154887294568491092052171753480904588647769493236464387158924627394164423481362830127061387715774243455031645849891121167556475047383157684061332126883270529806995051985658948052586533833871829562602755566863830472240019079910707798792394798847707881560047245686654547240512362321282656013121205722392681917690265959716747613977679356524380342577627283011828576634740571875411522779424456963072369717989131501858546928257893624198549441567985010406541749951696601012956732515484144349547970550973745623340058328442349914365227130711233804932094227429924192585070054437745597259571442162047572853681946096937974347308204870637037680471001811151714968428807502269500802375474277510398406994518585914624383603142295763537228274597239618934098156858319353043733799290783498563975400923948271490677214455019165972000061122996561261514397791697053943902604699443453477410195536150755975649968177935510203737295383199071491984657307755975294827102788644179983685031234381257419555178956345227624513681388432000411994868105073790123490005688037694192008333925451288146250456114601291883259154445540228235606143637243836420843659571900324767846021173492934732084800702030451625463596813165151722039758062387389450083667067812334439302437368149191130400861737325392123181527900519728891479395047153475547820224106572137674734223094158038114119596917806365820091368897765142558412432121576574615405348530320115750765490314953078013817525054547298121549679768511209723061262549479922972308520823268860820009313609824263700076629320720343102310814944584215163794063024850412543402080856021119499422773504549237263704382043840916008475195773959529407434957952152810414746312643042043791458661093554485952230487024166631561064373800215731555454872659447740177061852489925737499627805433968182481689439573232246290451546774324591024325301264087720206658470215947041479599093143642925732849235348637796378838711088358725621225523161911917273186779006830126561967401148917469390432146589263162399044792308291547013183022919895918519238243421057993395859488814704117602380132177742423514588615017898250925765159107152574772545026778456739195160959405637618765524654848440775066367931511324832839613853678048705616340093537378785594273322830727300314909151306808133882879550770605508311328085074728297418852192210917682572712605708391780037443171608414630452419583073325589111728660908845156440115603348667729741102757793376591266161455776226624691092870127410156217310506989034137835307921574921013616654384151687777454624559782084399048165666545810124225261111692266909238139585133623779337147522250710564871417637046346188409552472481562726842816708813323154521937262365220232851592556886634027396427594636668175821942384880544302108703369897202520930016026021927470911593137462340199293312379393192110686310560453439002590938826093221985875764810972595693955693686214733128240300450593181560621062358485481760881767902139849535804508824334320676030576839488391435906689796233271077619033169085981197435348033411340474978373070452757755767570106188343362414865675501575564906170221781718148937537357447890685764843690149266501630684664132239000013601625459136054420065733876745292409418059988274322684983045012405852563144372538987164590085816177163917900056612376062141959834381715914455288430686437931322381748302621653058572707680448476014854920170671362602620370521511455907060727675180586042364749893031418730522948559284566894000867746598153862280188876631372027316904499535075421644044122642053483897114281498118178389458830376561474865781668236678771318210647580491266866366321973419704871081152036799620572635606772803257286541679674986447205885916610456312598045397763496288749682676926253788793238539031023783139147958394418477355566917450904393794926101071830275230087365263989575843500593152942039099787548370939548912958866469877472364079674945478815440053137104375799919588856846034346000260749781147721067531643567125873543414932804022273039313745358752254534243991757767210854537550958781444545814774448860046959840745142654160047302139765527024473333446338685953683303559504636106110123506291701266549487286907439492102957355818027634109013903584836633766037974739448479934269122310179090350624239921062169229406710120231169094801716204025016625976701567186233892979388175469332927186655558011477947294707619956557549148038405476705244449950254112387887297001368761925335848272970134474855598045765474043445002468721386831471179187910827788031961351290735551982261699342627858035077551100190527667232844142794423843747695005779391723818564376738605894831977665996004252133369781337840033056530705322077095670454913167989430628319413415062497388255256919787406881337312349182179526234542391172233349586937633203760335742567853174706507270648132847413406816452069467809045793976082968517396253912116951929955235295424526809890665202696438400622542900914798581154827093964485094303101654411132739977451788778135942836940800943498267057199506061081516515852363385427307997371411947174214544718396124286120625121603464889124902655783003160625842303799957475189213256855203946805026662959299236064507671936909714086787271489451881966765822980405908735471646714837169445641055127030732710860689407791619957497127529736649987187366826750607942266183015131654109418893837883451217414529786729648103523861183025124911804604073703791810328941557888159627613121931500520008091793224770711418077477098302495910438232254478357528877005805281016779785570455753872457458451993937058132442623811900400277476208775546308939378971201659700396152427114228277593341718406271845629066835538208219162206218125669297750865451133514582276675904112743169797498610871599625303994643202993787794916781970332432867906790541094105630104761763188344727036274295036752052204084917132205503824962050890170401564568040570037489685249589088804404895017024350758340214612427647137288818311911552666952686429257984143183449492277799299924430725682655440471212942024628788303233199103682206362065374470119186832086217818867745624351946208646266466746771643976568792602717372381496159535731230353040859486991872488490199120743408163789868778705086591646917122167926616125708671917141870769064426640517094333231259195600136352387361483546912954405981373950945978901123022750494372542420279003436073942220383045872958520605763654611651267524296329621165881460829854907150155002002036311147301923130782216812647117927627387812635836207894200729083559083926831664588260531040835412872912271861113623376152447499408889164312147805419533812494562773042788747245267967447429523459380021019586395740119776312189081394593285880567568054395836576095783475079671996007976646590034617573397534698479556218346339219240039643444301980664931626443654994619373338994539034032637793411277325483410765524097046243531569886400725347000648534281001361314389299758964558513790241438795691383675943938349124397231824035647100598987672237905353899365048182939335702738171453272181600480045785229363519393869976192103503529658276627802020633840588770566827925821795300595574184350770989773351661512425354407991659862920716492741656218131892892921940598326930836509758285183090874448871542039819503147375472071292428072906578421204940265931613812075381854760883151654887502050113427285022809374186397339025421196145783481001189048569900160708403746400190888385000248625676105706857402559352019480455181927806534540906440063410732451554808295111670794483579130425507029975014688451915460807812948772144875310855830419891403371952563085823720705749601509526069048097683775286116244047057398213207518666770179623588670585281498231734050685001892377033683667307165094833544015823744039443551059499173236711218572728512410055142534645151851710579802374329404338286765949997469500625725525719217848491027181162638602571417634840831998527659247987088208315776707053081725816808256076424833673301293476181710443708648132326445778881102217483619831286911231001416143295357302780980432095379632612364934682971225346205416302781617800453780984944298133457878831495001076835568617357120516439406523463641712589133129056537412414697895085433775587452597509877588506038559450413043104372712815790729027060685842881902193537848302532697530436345505995062085553100688691714504605064634745149665516462278920831697672670922028869808407206320605077270118031213701587238136041821108363252743541270797896308102367406989665099368597168453916423650699435190991509304115555554988336113837996910009845934557112510974736212966389675036141847306209716187157010140977193800279751371632318040584980511642636380542924127146867026007601282909974466369267667419965250712227337948712931739071466175000044430212862011376328848921488901299427179239584735534602833758484425927463044505567058071522622419639643792888593748461463589203330090309219150556569261572206405121668967288664579438553338515470530701136448192103498881248702216816826163632654992770974988929224981853063599933590235033455088123490596186101326515319556056403719442341895380631182328623421329896180646662541258599921256382553440803912291191669124978776931931775864272804662807759517409673863127853548738422303025169373248607073105712238092061351533774646965642413458886256679420334531300373902401042020617149487382678993940511246822040173976442266742275910263950421685176644179020323604113815243591618554750686977726733821557614588425951528441969185701964669593544120598231356687266388671095883489717321442118966029632661786642858575241910868295188029658677774888508030635185166025757916243798425704189516373749012248262609509292190124829135261933867952049257563212925546102973859494487404187626077515882964638760161881130492637056019331691603196405941136956664417134474580724323619463375572026075907311857865578427413348759617040107152730712226673115794013534887397044861319820771444725999226189661002837198966191303952841456218371795673744221887774339311105394568758902218798660829789377694281297815922915154147825813411685404810099311645278188586743089916183503505323435619392964552359893099496580316915849549918774955887512270427312078311044516767898362052380199663895605991120926940141588366573731301693100082221890834387496692980086267273974895367035503951937921324100956137262507488847117939845423649055281957040145892356183899735949113828836659404621913570908959100457387802192963633708315855768005072440357446392365870867983373809949684514285957609439532385250503046261349855028498913785408233511406702230618810347353772124301623414186994452209148018038400938054998984675120090548467469478112912639560628014555921003683819143296804487556644921884509799176980488488040599830391717130693487735485018029119593962492259222450046788275863806880828418337996827878295165633031735138114175020678454067431100693831761232896256503809812857968608165923748344822071593187592568979492491974175781557329212338817859189220002414260463868904481999251225264292617777005438034623696454851199468611752227097416481702775290048508566086070681667938323357794201586471489396817176113310685105646105804306817353110837259691372378796356619104350911857400834250024209750157969183404946996129176264094860857044472182661354241475278142330345636371202164418933020259114245894712662888178796235241663176312162162795565427104203378119034652391009639584628778299731656590240699785917273311815961529565178224469271417074234359207043775710393532245763179124042032440840444680958810609931288115407835398270416788505138460071176309165546717851919649856772898212872906821857875071852649300205296566913314858349188803152132544739319322824252961213780036820471735073121286476582703124612724124726817770943291314636312864458975755965977384707217581137719155827757807827553812028670351582644564139132334643803496276643273725484564547156188167768223741322972501236255057792870344057383150700743652598481011423770588360674345568250204410333846322783331713306552976114972220338191997167922209002741132448144408678044781396840924979868282451930163586019825007059451715849748102516379866244933250355662051793828386121677485044129505855654900524437742565412014445002048577544536907039590511160271080179477399870191403769770563892098780285840469684867978561835111971127068981853861053653311651773001434209504342292991701692392973062816283534775452208591781278816312558905967158126913787155568436032939413499390250675467358363758604756060870176105739305848008752019101954271678860582880439142350938247051793963642404917425672888635288468552784865073870978361275526065616153988797408124323493113026152111985372156386990046487113266744282052116264125900888423451860207110971643171685880070861171467307035906988056638037188485899350277527915580095404187436410871519138104112937827311125034280070816107586335015161918716801018545239350191046049944500091658646708682323136887227126357543929025710763841581957731726866346979306914170110079287408224090041407651583341263840614714571376350840766054335529112095357990724979970882910758162181343032001669648802779851923554951402900240479054451339708935969268403372112053478333643208592750496647870269883412925436401251035194161261502826766723804822634659034318163751486633334186298293894927480218084239907777834579311491621069508501862161734794878713510284233489121593309762160185919935383058276523982687100819844666380322929326439821276496069315978550651605473276469293278097569207970256676640990689976762093910893229342131572481312955307429551098006711163814723456173837444520643455320789174914125427702237977913741426030846775161625647511242051381904427922261178423594323963397711235593759707406428203150188143930870970484774434519316545731054850617807308513724336252630325159356626886760024771211082361032252468215713877796470682447500127046504299336991081222916377238728675147384084167345571477467387813249825525542746982602092658905562090481157466413434073099081555451697472427924119880395849460752047665222272935918355334794641177113697233938689545254418036377572474484271878117464711487651598845610388944284332806949946088067025349496022078493174242404574255006810958478448658286039324930704204841459065895630673641893169706679163152398060271141130982279015310393914402701210042421522376401776599621937396160294840537313658665832227534089904832209574011653970496595024181225559028662341675983653552462820222678046223582144792451983891257314915186888676485465132412764041701766517899900652528824330949507382135942480875330331255889246390097150159602034709985165754722293211500436981227091834711978081048816711786570291771352360959237106292232793713578646092206773089165508415297086953659089082946995690674096530755506535642292378278441983483075799054509270074688194796520789213307586992366204388184338235528025980830298564328422577558344097550399117100137127311320592242950749637330422016834777722787899348422416864029970362047882515412816360307838928724819728935247498637392663610089348507172292031424645370012653585833161767416204795274479853479622527646570208990271390596158033868230605622659295152619431105883127242067016687442596573925272798143398265740474031873691622928809191211144796774617214551325615593476787436491948758648791013597896084150641435593137519160569487578307003296138604365307728812395892282949337466464005616983157783832392749469047582366392952985334205508818024045833305252852193865076595737754571943464268307073175191817383696505898263269169248949655592562894461527239089032290043826311564324339451358278877233689757130589965086456265104563997644364380449877258939045242066363126870649321595407347646553115054638301546887031561671209952640298919413328765695314445655249347712984562835407036750484149784749862696917408268445350551728056440385173580676853112703162141801369850577872413572774548751056560515078961366204058785608837633024493576005296112858841247578914757025633673522720551905889715692774081758041492580290708966645050327396292501119821205955171115441549101882909615780259609407586095653955685732060652534942341673980982664770581685019174429578665390538150130763378233710033009149095767862936510866695329121425455253242984804875453847167020185776958560667280663518443857712843222024753957369648855828446205707333146560623619198053197661563506832552479814433138354162457437718123787589440418631432358531783130304692988828132127312356273041646911371035016539901768119943781945574297784224989592398436466643783617906155378330114635152605711524990902733331931979487407829069460715880294492749332392186094359322538925066052737248176343920995660999950760740503498001690946397844945054063728199282917484189878513700257163982874247567055753042804000913963849991464404827021719972556731161704816658494116729615962544273983019259098596854478861338713013442677005354403440977171461655431671545486969539749159815561070431353532962055180680287250501583887692225414461019979432864410191564619289018692574563208619379339311337046262904959578803673554891838840717690429989038755650414711493131429102083990578614564945579967526198968223933579762781711528479457687422996743412851661259992905140112465539201709749973402447332885980705798899250766507010417477538174804229888866491243634297780314516190643547687102649326336598735133560259922829661879932378794313383293449044646466721503886272607304822540139418151980351576681697539341167852763852096087456271811557343847487926569791551277325324399702496789516123535288592386600106151481454426636390964716218563789354179113451130544651680081059477610578348200955589232126961152496822910453519722470960547383467205297181536386932461972117918612989611111510155971022922852483112190874956971265583087389529922966675650877749449096381979785199855242150008447732601057842858122467067316481124182355812802757910214067992157412665482366067516430549467390673772762670326674662850405922609853098144153636746126219223997706765604558963525521139987811243170733592421895964075854985187493888220296434528342968260194929363886002163048612716256660785013671341645741295429579791257042905813503081286842220985080175306726835230024628557367562590059616929666118730106226789796314847086268233061120323997564972699048888882780591948728567626971241924902355393641308783970407181826553512480670174255922703599512347124288601295834902390334514289131708471628389078756772999476407970914417615085083908973248017138246244055041194127198024236871798886343345136982010651753066878835642402232981529984777020206064105950543672974421233614660059134894565658192493986062679291160979242557901007047726544256012473653030013966559723356627112640224452580511691986483975421536804742811855012306007163916394595149589929420683139353886257638097254898837590181666962421278701434611559337137393505678600286327334258890732784520657022718280290092745374501411741641484391426812596429213170358168579868254928457004994451858358977532128828740258263643778737498855870628622580933142168156717968508616509008178623033520076139809686189579990630439970978933351493643948156838998118010449450271770144246446107227955716768226321045132497233834722947255400584604916480746266470586754435120242103487032477243606186834024406940613837436227587801670511103295679644807511207456285595297017452446430250839514299330562518181501387034059349108448142980304231704810265200309134898394046127732995806406505446034684649318080067448119148600857051291743545619447568401617995539420630450156719417202051465047103614435152551434101871696901186790032770321591805240104870782917573766196411523200343962692808834184055177147756897239965182726368228387385420180358619756372778217601494647537340491318550124820066722836112502015400863176706375815777163753294825773106850937786875647565348816731202345540797818770734504945505147373503506171960297435477281674013562046421163013819542089480954641329164584059289618538667545332571671707203532515279999733046715244485853807806625822454447987709778466212095802324918052013471613869902760449019189962505615786522768131767773277653013074034210461210424350788033407412222724041700271540270573770678733983068538296263054310194055431727686552424603110317989679653839847882271534653988534645252836056638972029079299688742485976303339727702146306153794111468259046639119913316076744779345727766902874411262538964363250058351442774888297296797468601888474158347954831531583068713464775417474877469821334098820942934205609786999717298203011039691351993969722275131953527732333371674453106404237342161234154301003294140698648882753507513815330495311371518859242261882541665026319443820501990290499644496840259527749563858185019960584832561341808750839938737327898658934667775780500562340002642701660129810402506584215441053735650308460824754032992351982512234818098347826403100018366541769471759092861490456701548573995983057641722596498364900411838303957179056043859762891593039984049044333695323775041893404624765840590906178069790249520717358946777434905429581756225393503594698490091596435663361295673411844299537205790817544314388436911676101307902222172318752130888434488855609197687555401067781735123460072085840206657130094163504498237132430371278807581404605874081878345260300527586116491125341456637617925729940513826441030291592816313601390268185175406069263177120428759439144636233480064473730940330049994583178691890960134891589114131774260529912608896171706140358379183501436837600681235571493503538741177736236318329792267303270451406750783723174121807954353566211279285618954434123463363452244721347346266360788641009408570241163008426221769273428420707388885114176706032943846240442113615909103568794012329087725707532603843412629384540867859307805843830381800988083716793314597872229270493397558633087909647631680794658654263766150241206723279535874933923587585767127231766528514284977157999008770407989521098614552050434027150374038295368959555243596718369553111168032407921270393541377574110299710582156306115166502975734784053622711555760232167551061095773396507199700412712211997811788053135882552925863144227198347242374759297948285482567448712872585719410610092538337753288755696002358164495170841322744596322137952109086541039441977412851985924931570677055160983967468660506249074120916609930836172635592353058400544218447195663978732132814834724617506487939369179829835300239168337905365704334236601924320308427186505511655779485330887430119690335436440916711972835227436832415162832491451699688530487597538123572396036018292666316526169897823155932222338901936560072412328310765410376673278963355853671648680283494439116634727240625769679087778875717331697902099454234195456311045945409038209674108109493450030108543308608441316007205725677732984163752474701379564109087220167828051659232596396427327649516590387370875371417976457941704714054545841166567876506766788129107640229110375777728867917688591617642339703196051495996778630133264808423481229266508680581412083529857118543757180773751876688576545497694584949727129583235945057766034938075155225674184516821257937367815813086347183028242096888274630527730703417892188340659101021162057005564338651732865002537318309800792324567477440289308765556820112280646245061566455885034211814434481611017986851389144741839925754886952635497518806084678625261579304637121749437065882350830068194928858904796659738590840447226226996182016447365428303569815294819750805317507033157123576914614717930923978846066299233106673500661931525240007785165932504573937310542973606230550987389971776839363172772537641742520980704704520080538997953029358272994195049407070682542642933900204317404601384912015440077509531286031334177125849327538527534490145677978211152393775422364710041781213962583648670388617323783716175977948195487036713452810110838886191296143986074966823889467633178772634361442684756815684311942712448366051449426029983793213721722601986346191106935785109339286185088734668641813435158387059417967963449223922007907428153626408741441915335540543591104264888724597157620137878661035344457805772707268022551445474091272921690784329330771411262572153098103157182482324373009653591453919741204980967219844829131771800262494580865265488803829395150825959726853272844531553239421077244412033630987773823362261749558425817153909255478637110353241126478828744823459109161062522992218367660853398658880188307230575237961999683252677946235592619878470862618365864039295158980792719783718823327735898615132573942781845458644407311157843059064375995082584773885577320910148161625414748178970406123823838882777047168771136057809789234152139604147225632284593949488801957824701464023003621438265104076805065605379877732004574733188293721451992821966895205231068180652339665884651347984008891576469554867299741552030305534796883067699126614008335829710921360301866134888932957501432723411947562252407574140927224082160493427344589150490469047863720137139601931708922327031073788852202996946219220920384305885296645666837070556699567789390954414038143177240623213347301740157851862273204461085478177719527224190583689068333456985129836127362481064719515717401998376981935980797100386820265726970791844892454501746559449662857292833973424568789814740425532738425859624676992607711391619914528155769652132454022652928126564732184704944720838565154908674525562560800874520094665715463273665409142561042299436802366569094232660732828451962431735251439803762182089588716542975589693135609823326791384194295969253680182332304601437689284614597404292339578924221601937481157372917057907364245120694315570704150079895278557764736475120718029708507412652498597535809053744352382656299145359142748433755901515118614766111189688504415127517102145423937664703111487457981968292113030898009800946442112492022678671000719404603687293409564105821790094467897132168915974546084143858490538401272305446287414865990333911090290106605985168343754453025758911046539012881482996820378811772186739512224520326820192255796196022737735575803992608591645301493771264665973602054285945069225309519026789815937798759002352828969006794123216065439043765368853412748577946957949106911621250369578105491350083553734584739197499983011020130992767376539560904454204882099035241141491352648233629917457737769643745409743511193266695431389237370008071125672339591409345806777321136101813987991113440502489341418364483976422574323319984698469592279261254537785631804710947467465061948031912281225923921100981749368940269976640173933644881918864252675407295406490397973748230088727221207847515292979328355277717497586071487992431745069517944327663621530192988135209573440088676665641391068767765436824065143328591484448603603738624204630825475399982331374632776756341692400912195059965553129844160757760281778946351387456224796006063328238552881432893943934655328304290647549787413331806186216604086295168002791014793984574259772514988554269447782859856551409986647019735988084551376714730664357332386990125786774793514449780884271792499134812692039518084128837065855691287001657655926915046836783702802907285691169033372722314477088448555305022611344380095786666282837804286952606931163446096915368946497476093631401596827246141642869467646821413901511041899364860881547240705288544107875767192734871655716419809720374579703515690423052837663265031886461605948666356967175063943946168131188824918477846916685035552195468879046732253216494652536304170819963586335980079302123780695790143384247752333453338751836628807582524465402445870510112583264401272328325311617152034065396521585718412598835397921475421857975895676694110363193724799421811595795255079870395087859354597837615501773437004892851984571604468917962287755705602029887534740219960368332111663155768305436080840736664254812332862514023035106624110889569913646283263605415982922927559995309665600009291116664353550346529552174141430294520800546422975414179569139937451941322085976273266574265496687955972042751793900613717821290472289270149932536803551651381345131078383134645925790992732613906948048049869260988947382819684676646388528426068429529429154616709512175950524547164114656506855619711070125697748985801159859137574807255910834274274606899744568559613886311021706719486082930596494765419060595551201580130659874752792905564553234923281191625026603768280918020425218547642155295329434819496373475523088682409260394132263718857805306027965974466625687930395864354326051071270576886172637492202966435895433072020802435453102087277794312087757358740643443393559870762564027416080250783474652106300383168652018301104529873180927255044205759427807227513718956114344522847715750779705879467677485495338901179196173558442944516589638857860009195575977479703122537528958082129166234951607833818000946727615361514894175967634962295747628318772182595523342358550656636209657321905004093481717936894035241594099436818617346546012700651489821033368878239093985299558227900548167286781158308211900185699945949090940561846593174114242098214255436022242732926231335548431914537621591448217510549978870679947404831139634340489155302413693452963730783368104074678593872655172118142799274293948820327011014316276665820440311509318852378864018735527954171336538732464036874124308705837790453418514972319798617428095100848288095636715690583796244021385915002432678513844218381881849906195547983997068310110780758737011607552191986579043306234417357510869414148864834228768311542125588932645824844098340231216330188200490832537485389508662977742319264921693623884740225246138764604136876625286904432434779399969629109145774542695852620791788889246460916108289734114015967968275929518224357619638982353642749518965770448076289391073560863990041552986185497384774234880721448390137985970109658311242118813439288932436212512656911750258956780735487310910028227226424317315121138095317746310507744195780085892852135565255372342937072840104050202742077056057247660587122641185853572931803818526379872140305813631723170033197435004431480923663187328944618417908133878930779430872896152105176607048356706622083748962932727206727598493354156430497676762160111548418609957982420229082564261804639326716265508076649366777647295167065060474172236597783483453179604496093184122062668780269308672349606419239267108261886506734647775291439076999570779125212168041360438736713259496972969179110776383386804510126961755474924422961214643831000209864436340080498604098251954139390021718782450993176447893710937326538806073015402863716726077149260726107102316439739289260588022017585128834598222604427148909761772125574863562521778603359749060892871034057475419083791840855948056076058004529516974964578212473206532289453014469406181350359114327383489070406946624679841718432653141516655731629633911487618270735436865647885955949589884839469247677406830853888005291962655995938216749522418344634197627039101127689359809848431950895006848207503977146286328581462856156587349618969576545331144824345851703913029698716129811302739262884693096413805587338549808567026814041543082162021108052697593885233205252527556008959688748325696976481686706336804494684735229421551450246260595862144375871053034114179601689100467944247146442674649928440633346155518247066819920191066253798979336368729729083463337953138070138714872686092069548568774500245835995918923212260088004004652814003864517910924249967379701380104718653199114453760093864823476570889730858802992336681995859920082397297901065698569218407833585602687106919362326500411579262226810275896571406937902966027124329587447035603079155217071101447264983522722922587414087846644549841017151023822905352281727868565222445126121835547523659425968385754693094858901131631430222893178971967904237837548183991911978465331594329037926769676650913904913619071870522985337222632244634644076411342423151891857252907777961407359830161327872674049364589164146756516505519365782086290540535526282909586214489447870992035636109513054748937923424495156041865046620972612206847296392467995854427426755151141650090301923649172179761307509355179147341994597349312193045152009005103562664572507975298449892794901448654524092083637428585118307149143887187491504345827939780566270261013450441045008126842136316447214471729645099501866787551890215413800382136623610602629630448150743269817922574779147995410868456795092263678247273368565397047406328807501289389708896990822229443924639830850789797402154369690837676277297604677537172820610300723199880493523737762134637479847292620200660684467752140468019368045598573786379488037569489457514710835372392289933363731690810067813662169332402458196876025139722429335330321129912435145639322233612828083395367174509507025569340971135831103855630420697827013741404483190260458226698943392831983501348860196631248230718730450276735611253187329700532429998185956495734158403566474539790761252577260942276981151580896108462217889396761193631350504291343332663692846770354579170609734812059934853716544851573587449321656757211987959362944095993154385528841047330378592524917160354604210492434992793444958544194256708805134046178102532208926036894048813283758429283291026836269565338754681592024954527312256311064095791200263734460669308716329004351245560816827934735299126333749932505927827100979719879258271182355231555460317569933143944166843412066809765211339301278957251189690661249472978967757272179230506749324361687774428307084551648216836809931029463724742170805789077924531981505777351951189685141777073378232861700348602223730840328129033404766527231088949555911274789300935143679133810094805346285719345219391045414584417411907867825253953278280849904772429064621635910423556433340792053273797667701772458592590843019215981476517077479168349295715644367373502811361976422170895174759737032535922620930851621201898770565918161787262670203889739217927438459495977816660490930106393050736723462650940499891111676654437015227198498502220210395943999237676927637596702440439596058983745226213823529687221260476060296233815933934102870552146616015785255507918629749041411581120409346909444405913705230028855647707233854056803702178857706291103104138829442017241361043895087322187079382534615944955218464534320073652455366827077913551521861602794920759149023485447356108953844443437241950558269936600244489569804350712781835265891762718806136286713523213268605434512991963865345908916749286252711995932831740833822867021396575258945451172245103442596636405036313112138226731567458446809687995109533036308826599245161094129381982687198361500705439588084715254853610213212344175032201263230368880066050688878332564390919835096902582401548779095916140872949767337374299653182440140454477966943219107309362629962909452521318814290586314661350394169311820727856735758315484983483970424459871013398808345936514224866358532666008361318783946049076941887094886130976257394292544642837543671744058724368307184351479653692701560180587549095714784910803280825200434750817843908540714227936123024664846425884149270199669622550922159004192177489034764716612052974080312748675125042532141451463412545708667273539080821418445104195949231117235597689109143252136021373864404942662186802634433046101656998697267226408667506276020982979720421264970497015034853653061818557661844811338547136222875800339973623123176084364189853264846315313628446314826190934327794691053535810130420804339705241104183156001669043342693459362527786045592619360272387727791794835706699862725847579232921164700350710638241511858063036313674078162313584592061308245872752909188663421215090195489515627887904916739512690847968080326038520413778950507029838310772495574955606538735783261639941814888802888971907668373428110089687533733751090681452163070900220560557953303604158125523665965501255278527130754613885976070176021326679674638365397404382109330651975142043985772285111191977501358007021246193234889933823583371868250525246733178439963324084182215466360377101953249344157486552190189977332914627166356370992748057360676336121783854507394613604614378186644010224719780193661246003297459023952463863670993854564552146521758674552543039097635089971712351268144503319502940843003220450891392309513419010020542068773256374467806671483924737280667016441047722592299206153530196595948835941480825341411431753094793819672767694607265784378007904915655421207400826652719311512540127250141728081334784784676563383836257835786881300801521398925138929549428563305687269768081657729033187597122980434508324529669732346909335269590503552720264157390028451530108031473032461544941442567698349278052098801444596096525969283367831445340838670775580970774743397941669203353055336822907574635310658377317168712661336498894375238086819235954094914639733100767955308687143520675104443045722304543523596031411671431389172355070095206083766828088418621110502174436515002565635077498452462673583253855816844479828572967864373965629908511189380170892376958265902454850391275233395256498447722581802325926324388308128411064065200100508458400115567658826007376159684039684524800515668825942008205979010805831879884416084257227497415250762180053513049074339131216307481090212850594710080857508724889965581506936142018642908897353752498842847960364204384991417357903772377083067051185175567943579142569907512952228668379549374954583006639698420578738306092495772981445726830626732926639462865642108161494954580565330044998510113471736175689732437099993612401514583590671947529387287025285628573578941944060313565760300112368645728737451011184390340071209833301258011837859749554773354838456865454441761893344081653752194080003725652432538089593710299237399303717453485334140858945455406865233676366865843121719916904615577816517525812761754571748395131491341449091717629406771506186946493499693186868631514381097683559905208955655616413989300339041096123766551194224547405622496071013212328991044119730360825081299387024274663406995480747801413946335899067855264221858259375323655260452770295241099601979996017662313724857177554337972220986834066014243460538196999939282887856245297191357248794423136985423002871649536444364958242242299824292279362042287834898671953796065274819442075465478348404923525528694824595223832618579799545404482461537573707992095501632702104334249446481753508215529100600397491804620713223546627219173255214173768887596422765506643636912991965226003838116749895893421608382904772020104575329087513629896163846572542130329724005103761058220492613844109227829822797329151504591742154861701103974557314745973981970457463544581008794965363104605753352579771650659703199547076517614288669265979158411932986522667044845077308701566987011175003227981649835159379046349354773263136981552869638931379872861753256294910378279713674178857088100103641393094671327134655070324312412400273046600769510351759291851489313905324526602269081075461255845289539513594852955007722681762985394570908926415160110130559634763372266977375726736478389395170617798278748041915333286173314109808348984816752238461419051186637463493190945733945584207637399848723851765149711939434920892341694005896326692928721133275132927467938439676331791830453988793023807289534493434552346913505518917764459096022383705812034998498089097808384697220780318667464448503394075254883200376369774488954816342571697517769742988747048806402643334861353702630458722414989269932211688503996351680521659009551578043259153551717540335931288368634899495827996416364794998610017072970166756050862023041596370905817208153682390773564643538386618581017153272695344003084298128344923315676486095595939437805575923157586634799070377356012460910394661049029656611621575700331812550822574139802428162840317397461671388670527762304130104530209106750123758193430902191860469206322838734284171617146210340347703367310736411641592213078719592638289934362984992261843471256091479009639484699718134422736207940019104831320282138300408973553190873677029414527300511961089127998432310335313928698663759601267797224319775643106937588584011961943508704562628611462336246612812001994168931972270964936199416479997943143885276942379361864344077611360994177294249649144584629537476252467484300674797977437661031538379646407503611246812844969614583373431317315563633563789847787465165690993729320907783892025394409979481510642745023632285965716442074834433787071565504429303865170594726929118267617526792485114786717031060670145703004301628768212000046439021700158276214900766020525360818026178208230700435310358496812421414271822289513104751556084971489137779074175130608367197296856172164646874342656520760944713869969111213478399004948519942927704403063018056647700669598949446179175546006347824702410891114468727358935127143071602917258603943717631852176447379337840915618475963546791229388157577790221045007803004877444119375904977612686442757644360660515966560837451877209854685552175996106738005478484913094421514641165454081366614181297201361850664089044816788394203402589432545060238423523605546639515435144336575690686470247434084672495090584838055385889215269750702951523415833832835004068357133950018790266570876908905507495032467299693358341418983102591024231118519409606872423598091712866604768845381480534873238172469072492211196384915644464641928808198091227025426081986935419060009087786525584687398682549651690824356013866050517165334005272918616685682568833207479938241272465139666783618697419217223344138960217031557232854665379005979108462632485747678017102178162207351389867439221168428727965341119331959493318192579776673597614209495914121866971502804987529412430476022751490400626432843322241057985186982985124354118353549417227336749811164075075615544617389840297642287212358202811542644400447075768596533485411331712874209443130095267671006159149138442947746663418597984524950763613307743549564897804042085572306442308529687707277348763536790358699283657693900293128751820233636350384022958064268976342968047895432132206944805227885300684410629782161814481583166083658961133495929339435683377540402804658772119234146232042812550972119036968667076433607408318341240341459641177320736842913022703926810953268940385092795070039076159886773728094215823508794652544410250129843518375348999789706145922092349301874637730850260471417553858058502606134037159045027483844034946549715126042185322820693494823864034701155226495960878064045922212895019352159676012428674313687838812098394564111354580236735111201012102159252235480439866144213787777122016422680265473038041733032090238092183417687581774617859067997880410754236140247314468915838840540703189086499603467858499179219671059307200354548569517146249599727358341055318443796406986665898709562492889088181860820378942674063984836122718416950459753619447708866429059179094479963126967560778678952388358136658426423208901791073533867551874453510287509847884535378914322039035830439266091281306235949443279939294985166229689385008911934860803841924691934842250304196936204666334729471582451372539956405849505979972286722335298061784927192184180745028469000316727221628131833731544608508208377985514554214482530495318124265967850444683556201327643406369123011906596612556226843445396914964574756480625285092855489056790385785476530031294230910741714046463929642518082896000011886947793268129634602673560912746859575386427639493208511689826901723686916782765139124933016420714072202796706305986798061200945421372864712077481493715906149273419325378602459642904718841200633450409376189216518392963199337697328909291339833487773964774283465512110369898448915503920671979876156602234642964382366262637608896502480319738317832167681244465832541369320641618672205248841334928761111220520593003776843557156758842747393734327813277666805170009328791045322041049158954256947881110319723867693577095974568963133611477669471468764405391390151090094794999811648403605935614603976675907948333203075416664146029559691889539340806478233355783929049713219556551183934205387723782595178999472798762611377311267259731847393172018553024232764161116049214398374437008524568857670996014929220231799841402339069608777874184204835992582207863793392420948485167127415304349372457528147862716074390052403606583753035342852679607230028531839262795545204199745913756281232777362190122765525531851234686465000321936072784466018779277253683293486155987573520553072301407669416838113228193310586788855712222395769622385893490237300786109719985154901243425521223514569536479775442823173033094776079855165184672555933378137181998311020403431123245035700379913017835646304613970175482639547218987454496161446896898846113059652917089989158630264519425457206783256075016903493060506717602172651927039583557110779454623441620302269782250708389219773865178556306765938290129956347297487284073559365799140507488697277337959093292552549033825328929906676859372061516293477474563498928543831399611857862623642777739762159066247578481554163270558658800732842277856731582442700758311144193440130611147978612370522851813512001598740033379216392406101482271414013153172657532610086801725177519435915784245993369900957742458062209002748636755621592989693581389482903383722569918810238196658695872995045954966695136691956781818269235762900668564115456582874971563893241091402384865307927278870660064306373593833580773283300159279686384865584099548174032175143311399351676704958720606391007371108127949364835596760997767371601537465237204333206556389724934783894815166796900744249681979887467472538434956103900420026142213930531006158931824118520246083836330120884722908084141339523677439971308995731315343320979616284057723936274765546496744212201023131790000591154866955071696614000304928618978976700345250528094925036104348389129291225759220940709214201945982954251091913944308877108827370304142430546125799959681199717472653090732199300888551260840397583029177127624777297375480599238163264319032199403062673827174692382388488027146426378876050639003313845803805334906799277276962958782506092216090558545939461623892157224486065237451815441982068312730732956093623681365779621157535977542969613231473491315959707445392433520525814602060177950870801377176779092722841292029019080601838840281032245908978144173796737054583695054200821622407718371441210248661778954722703052354850383855501796070407760989755795994266405624658265563483191719301043260916360399697917179016349867466721286278031564256292903257394861050627966407960528152285546002384780926530188573760612511536126719692222454662077860508066528650988443334929543967413601894462642645367979310913108161853586008020287571521294661615510256911185589214754617098166052253111421267862151757827889121282847123235350124291210013382838960971871006532745071231462380319908959156948401782186644505084209664164705663688812035968989222233976302986855802044543609819513577404855498876979813582453026915348762925633903603411286603497622786259435805171543198532095992727289443554942248690104697668454588695719184138754070564644687860546410676066003691441042934708606336827597153946653879936812947079522177444867434679528356152714091993318660559933155909658509181695722315026706531132459825801545676293273941284306079147192928634621618568583645882910634464673989235389423545129481337539282852863849857867701157899600753024758191330069498394006902009945889526797757258918268583148786981392143288454780249458087967016771986716403905205182986595349698679436094677067775314005946067705362560331067201653950746114361683778668665368600722298786383241952010430486689834368822622295613617943639410118008394593113078054235392679003158549054845643305752386574666517124048201500972541528037968214480705058097331705120497231262559814106557660272877501953552443821991600729148211477682191535699465733856370188101253479884611983238263345576667576247368535254705600368705704175525865996428243962850772797555797216949260224073603304243318993446113468300670071375194519422592287254535078270854610211536378662554336379948116481476248685188543336078833436415140224014289587343919851807490937658407166516884176080622696426791819288493604378752084019999752552724190546276264408214871943388192217098520252196084159751405220279143374914868991408961534536085277441423215873434667141398734151919805579610117659780584959007485491472457329412555852706499852296042028174993085815839918420822004800392086113764077509616995151608883587663565146860655132051558992442500973411612820013308934531775712016838330695088529060472857317718563386185208082356583258535783290542161156407042085059611477985275778000873877262406975559044226512154526503188039106456953078470422775447605892079357227052485047251271081008149979708021663110697944215577058279142003851441874765553818882966374769404060346473439254467137971436653477530594107445795879673019309966821155972117902628859949548006613830312598530737485603223909267466103428498168598447451791843566299489610877562582649567880301808619348598012098925736935212195967446469395934342917344659925702309139951354314104372162677185806704351477723691327360204960575996328121101027209705569959450446884877033982411610158545103078965534146414059295895623557754145406647722904314468226157661446090253254687559289718692188171387340693801513413796753352010165243170331070614770987207790181956184872712504738713188415991104472022230442910742598526672079140360879321432229580842745876587098261034239633315386188167969613763721327473252754748502196458469047529765837446040653916586340416277863489837895170972518836020748268991490683510865125102969878245753488596768493221489460803832674664095454044377626092600255654250065199650295867605267075717378686647315045231189559904898008400856424437266931283161219808924917692069181697226096800024511191027692756567154290476880057182108775209904896707243193977422172550156511679628153623582566656717616142122484532127438479062984003599162253280527239400340373617025558255520829532115940074021780653702313255502053264070837250353517869438502252270963510622161491126097196133785770050789896645370319293056167740254425118782362975399302118508465482286399551450061574801151910751911164647642610897363909280215484420240913733982994665564434657809438310834767870863813915369002409350557665479803804856561597012401302727318321814061384365371573748088815734580601124134368021803830622143588401234372773860683776401801947144287315190913536978967856156541850733750943391549836902175280305094397117091136185625579336019584581166958178207165260323189699832979863185809767630407803930608122936523193139210923523514314932789210861156646727290377192980265636710094008694573511575961941481895094416317747293046706120915003546074987998272015783920751206328312059000773026847123662433161784296279889027535668922874566964927399226506168279655320577606530694640369636266381347559663896342570529911208648262991148380297396966348774807178916179843838346341623563962761082439070788837602565727999336531445939534164508613694912140651419115589744570618902808080610263287318772864582757246745277129915396566341971914188921027690148238677274013960187866634812865039601920746367017638491864377553950559015528961583246425674534055943406488024846211276793074469941105437536514685346000151260954790750874214053439245558079037065569483263726940217557704595938128895667548966687442089371449661557613320605231146279404946228798460813212253427359624595772721523943049314482469375088167756326646350246297879755670132447642216832070061641592236677441910155893314692489063940452319793404205568348730297044962900571660663720442358961974538079542197316500426775753266016576689384830483329847806483716846759980559946660434363697820205733022480700538892518639546147419988761128251844816966917513832694529027840240365820363669520239020942328016744101079786650433943378135338478089306297456472396894086527171745833555398741522645504658140656346509784207775319924225059085661297723155036306381966310115886867897882573456769318704557635713768157754829097012592113910013613254614154683850653120485363314359658595141383222618113471973350245627341904767464475836808537367722281089822468238149102711155527444700335546546176436291275509845515986367447308223505417210376290329688023653941037918194268483615063371503798204688227125976120827172580325470078217879455138690993887830210431790421716774019347626141556355788922478285093714649103549849626446702788318830283024428597929975238744569704354412073631816667504367152159947744030081183110848796398709276080261881630414235556608432497031229406996621844798455548783747249782404049243152514571042188199922630868163708226552395409976150663726116841306531395376802282288337402660232205603885789323382820345493392766685642343439797590892631411304645160627373656006163619823385679139619760916648105164874768446119451492197151530028680693376227632158791656718666631183119804659212250432147461997799148923385401098539654235347932407672647174974071215785646967863094228914860576172350409654834989176397870581984816114891929866291533752762594529533269628002900504622383280299639468550962080634468765783799481265206629080036141885799287396095187166401379463217251032859236774122806923549292600497097511371245852045941969092948197606885163179699530989286270854210979455658510021034963315825946843426568338231504027335254659179363908814185229271235697708646860289149614963980225554273320382965888868465020535751772924083275808654483590485897308261703072459959019223656705400828641681742672732206515834401039742987109548269784026918314177083092062959183398140812528178452196328153624633751393393327631077334066522926836619866435479290081516530238535088172582756014055173972693483609844196882432380548310775052485829701578937281142610799945165347927477068882911289692430774031548019409771948449766959409945264067903251612565386698985389614731405191609695289771064732040647030810475543777926802816466686394547052170411411530656773984190110712263682783811730854777075778296819216573602703492674295642254302716865900894403346204339732697398293140216831547314658875578144947068104383214027597326482412249232448318521780929430362293636307169336746200887187051094732096540563914160720521094539352365387622104851894178641248768176651625462176872575049179251078653067843027219574162459563491441530750453550415621667676787091467761698349525366306448730938269368926046239562111835981953445261038639389600041519696876719815303134859842293665014412758046148001085133021483802356825716004053621625294266206118290944509230236183142775962363597367229789578325804205947683018977403442565814709541432955723165957832047878989014381046761584833440493389685667578948252694492540915638541377213449935025413938449251970087928919195432303442683853722038856948188204846624295044535261940794795990777951199350221878998681074012256603734872569398756806082698283265224252717936004292704372088794988076817291662826158135105009339906540451737077515500635713779872590050193182247873733299411097428017469711859957893080165066651203756114655169681998064812295274996486239035364910941559309331746929447538427951668091051864322417714586476580049526200657938439346906162102145324087624390461102107020682774791985360700853140738815039047597485482290883093704241602428983558083619702293824278529764751833631038165378301040936442166878745295175920736726900194980267942535627008165334553435713952045981913217526548517218603372492067141017791604818918496095864916606306257493828763364456643976794931690450212407550223100176647809502179210955603799430980459036475762659275432292909140955278145753464004570108749013210695663013785099855964837910874219195100397045679023682803253727168069783263889396025044437355805661676070186114884096539922856065179461285620887792863786791119090356798648991582920303529909057513228439315875659923994963595378085227855072910202229550017682915941472447772046380885556994986191650151872126403948216522731305862748887762175715500731626423432430644365489010413771406473772851179534549254120400409532647425179287843129001536193433981416301026745168199173831918083821887585329003234210267759317057910695801495459666501269375301594080479320008227928053205321916002524625512864667337506646078013788263167339604411354717775236294906201874240464793575154668077864226532092551916332617913420346046672192761982557091811066444194350910902152563130521150880160461594563374442406140305609991070651241698971681826833942359884849182378692571358031917101611934230912362041185491142552238321187397292878129598232311487283626604212125915629500250105077488962838975246041315586536383044084930027211032893204111805934797909266685757107604895271822163267332247781903704355185161474769487378701348827848347814450348374742676191228306656247108499526267105458557913637008464832463858245146193003659133533956158070564573459100915112852783813328327949119492326599884285411566031005763209105509754670934513570527125624148347778106847045491419710517069767365512795380446682703120788185036923868543649144716136611710074467396566783248109228779276703719830459450177067720769721357894504618603409192317508500312173758507786948963826554629031115242235495850934609952639467152896856809330595586664707823384532986478917339268171302821864634999624313934947044342040694183965871974897831386727147670751481951453455375562932515248419926983848257779762692845613766873272312361245724797184084321994739842910025132794279629260217398677574150785203650176310887014830017765284040937700479763149586124989971411525972492975425074221388994335095685805183290363384801195144206712179072302078872974102912265920193784546956315382526076667852498948417879308286885491660099761625353888597723988834606370375448061484856562108667532026070500756826832346725266523515254761057536113464132515906781628363983634996711213005700269640796119897171106170765819841047521131273095940429966710936013850534877876298136186262209118147586108827573341851425446270680083943021623910677546998629444837943721937153473707493309600273053795404813059564554326471764056926498550601152493920148731987312885892530528961786887568101410698312523248243289228555055606635756596417469698457187162792930168839589731007871935259312667196801134175758828638951221110730621845685629826891204720165054985929361082749711328597091193181148563539648097235293052268276363092752245369197855684316118950247820269891883429855094980025739734010429042332951013550355762399113579715490034331854983609188574152061160461609464126281307613293580441151358167262741103013667048562206588056075988284043104599838649632874543945334938828241692042801035705875037026477849782032902039112401415217753543678196241924002994039534155647279479656106113984656818155165880892365510608888283003090817602921775648272814809318964011394102926790795054139846110903786033546815295910398438518872167490434393168907892503146142022645317513201542936511633128954802392989996334999525796465463103496325088451911835865548828104121144286772711387696095948055165112759328561912156311993341808694702463068045744038741400443323399942034517703052075160723834425393535746462884372052882468320548757895646630592909838867796846736678176790760059615120178961752413701945066954696147738802911622369809458525771220943193770986665635419973258563883658931186376789898782159396960600499326889114616053405061079757889278271578480933727221552418404448288909886845947877986403951235267790921633781587099982329727503515156296373350233730509294515801103764193856342781628956335212158189030662616955541639785439366949435876533993232125661179231104472588669984347307714255304701080681082166413636278517636717439313256728021106090762647550019340068212683378932823026956111043638167925010996548281981530706634703781782518835894905088957161595994083002364724573239945924287061317591093993209957924175502830010011757417383749184696232547776172065721295267481083070411995713843199555927881126841455241341652904503461562552545748160024712554794735089314854247210346227251296911685704472737961556292875544031989960328177808789934743302313275201001244424777938170963028938718793540088794927209296667925728345647008318159355425187782677386713315040485666674994167986161047087883025509637826172641536136932919669145193621847099584522039210088324670790145469974446120057718609605988135663423510413393842075758629724707001179364661907504562930816336472814174126329371967546197891241403769727123642128407913396024476877242630060700591638913385042821639725247267669965889443953841169214683684701703689557859518542436119677220748861206061607203490067201496833938114806671314582907707195457232286466327482394140350537442846040125085291952197094026842672633104115987407929627759873898485694295805594107655878548898891304073471731800396440993825381725085733299030313584426492768825725725139505443782682278853526410463473264152772848419364287859052922376522796335260917641939605500263454419376950857661652400296194079207153114127648448125343155246884924364252818719570630834643558040715852263474807331735147693272968415821781940473241315865315875381263874847300815496616886083157898147430583198429155276623618915611549344916089286880816536794286111623657652152956164145965088421972749003543408003119162207656917776092617250897743217041177613302580858796991920399325506277476641880304570272406385672283218547674384283359896100116409618914669773692067049265781172265885704758429199432270415312283346708118961979317519838031665436020209011556862938070183350972691254664925527447323074512445864646579295898743121435701965359424243613099570360616960264996008759313692655023813287679352360249556947943354258284927662276670485853849509484350057438952207301921709555590024926447962103268405224716898293331496920664019221879508175089387774287423857467383040590992605092200123181551024379983008079343080111974328624049122463981339916248166744113097459601121801618904638476725407829575831173867593639212490110214020607808752747654734636629946926948996022210202490033331659207313412964538374282605848332747746585942033572167505616077840406031536794932648364863732022266112669139970666968245260133492946090372167194995807358917862601473776524402556647740524175866343156506075203926990748351854111267191198413365707917466862257050652979462752297588694115519032038261444578056876270748196900142429905110379986003416888543727119407383614840950039692275399939440179280989521060584709519227992312038080920988401165751650735301046070165099345814221962529941577823175974354913454694262371084719087601832011916446406150998761434928180510471752481099749964295262545367733688988847632271781095525354907443593501089572378579892839309727385915355191542143106101131458733699688324281712223294870067071731277987442119042259226011587060978842874273962436406009009736630884783704489269948827476688902095626357215072050719944616522235988667703728039662310070134201322995236183187650232375174806061572612718693405268752060988912012184184274116195723122770983899044852330411793786576252575656764154467195010382991455754652506529634629572610609700059831608013379902725375657773833712442881634748318203841887412152233948230881139760098038773415526336102822896595124280020588036915560440305590922416345277330614314530379503351490764611930715532483965547157242534392148277287064120825471066382370925286477307390606155754609894293678462872715108478685879028426208248587086735208963249254235352130565044981749230993952242902120387728004174775924851431517984934000188162277805561390261764144194219549205407657902991305278943209950500177185066908617026800628722144336219870656510495722386745792366211985821985912138966135182574573142881063753288601448085700289552767531255731747644944422021551971751746899619586399591253842672144050461803075736773733015080851186323660435225987659970191515464311162513841725436727645354144098830737925187079580164476067019958131972394447575780409173172043251217344423621253230729964095016990127394459303765109671341389714593395546370890266048972768035320584943232078745594312294850253879082923201124519748417471153098736646569154818858603226837220805035724296865636935589630097659124543085361130018056465488418265236010394982951024600953278071032830098812993584974351357665205063705342115665845366132161598931797894753077343276265554435686418325308910707760123015737108667915579850376125480542712818517513388327457738705057696571006462376763998863983965904239811024800931804077205166786704278012656751785695910250814353620484532630596613535177526826675847634570779190900457341848674033878265238521573500208009305459778852773564507707710629982189106605782317088649399451760577053579825156206166663078012995805911456443600449781121530597286238710494261967018941399493276305070740796413175576964993954710335771275371574581620886117819442478989653961026609013174615404049807080875824901315964725123271375283010127499061001235867085898518926132985684561289344689455085389997313662705781727867497563915153993344859800172222533849708665561081572654778452591036967199015066603337935548066059310381775209637965553565680174095765272147649654973400965306730641768707881914648609330996538936510221942047135394953782253289300834010680013207064917001487747776100641062971493933001911860468952145489606059333960758329873791720038560910334755205880061993248566437859225234909055990898776543388963398569011578903957346795562034762799965970133735274324988882789900897081687094882089048419427054700664610409539318390487491607949788645461496210872988307804508627790977628500180587479795645531887516625024410605574544318440872787757651591631280976080423749321425019963056416873534743959649087585147353827689172783493331483022187093317176393080075537496022208050474678172736766424163160174759628587684854577982126403452876867732540054927172956863203288024752524316494063541053194381395366443111624617287053097711801736735877108574650724787588074185693833458753446183408919144493351639625117334094356900899928770377441232591610985976208443608086868934950320874264044691684795107622632565020358873860199490114330606538905077952145516881391010321838037805594833912686123967197920659571398106711327263100364699554399369152702071197984381316495674004770977941725738062613678461852521264104140422059775372787115550366088711714270491700298299697432203588459958108040596237556567087206036961011161788423754696153451436468733424517884731160356888262107569498436828705054818060306956667134074385483972119903329272199772886199086601243979385981216761179436548375296980000486375837167085568839323612257491457587889693024885148823961974031010902913644912211973035794944656325543128883474264121088554946941647656356541017904509925847658638058861017700787594841711883336892290638408165727745625395707393872420743999236657799914924785562492590844429799868564626930529339700889361045883894290914938481160150122747840862959170141252023844302898963550904018719541928695131201040781236070693357738177180686886183729905147522442838481863610358828922035305761773592525937187254681959606765625402366110870584515724971980484744113901317946348612179415610215459958466439885545902370196118334689752795511364964774791376049314205127210115884621537697058068957633401797976420446192721716391827425569828236700744403123699037990394732012894966558564270542006149265209724992714362943721858562296976260046728879712773879207167172750844715506144444889603459811556064779333193561786210485743222735779499575392853819832141066626378800876228548033528704247113463923287732725996657111080907018801319130365615168291361894556979674860185447989746336171961192818595045251937606969728712505749079949329654125164859054932062622667865174700752355381045260951235941176395196174211159648924968657403301441851590400737626321614370123351660287237565493863994420950662064546709525671059936882030923874438959717495237537348635397022319870359801848276107850525835542366628554833960846981810269285435474995073055851467648486394749122389465495334494827856643104446857530234424826181192731623385885194989158668588366992666283534041236001185172570322541230576755991174918494778453818836333778001154085475073389011761651678160592790902220513169859254433448970361141591772649188346469989298377919329729592031572021816708557549451587463801889255802254181312440147511162673168786298349867965327742135709174495827064721125826910970902828868815002225111616721273938355961860413709925397062206843264683446502917788574519711661319835190495033988042911008023928655882872330831897580200056652348103322346032192759413732288752871784177833245188164056967823033059587859293774919768095688403881707183773667808166227927007638890297291651272648417466397584960448191583022210168672227244311707734395045998024499012107982830720543341526531934021864481288324926438615452226458485865599837733089097732294718503208143679967227979580664614103432943535225565897901240645073109501101608051223217559176654109159143927397348167365218864199866694322515242043297212598850607934489440579956518219858387404502087863782122716191325088774016695867633864279337775305169416812671984362391697859032202480292540619141568663961328753384554608404992514647619712253465694158735567274776168353545510647296038881690651183629425229217177418251665658107476958848789849846377011505987125359254925667195508524875656046293752746179643499388495891428706768598229446963349497119593838992946365559055555522675732922689345385429567775936687560284945975230830921900053900101516645816872902883357867565136035858779783819133799277555169502870330596746133133459382381359720849703513923370950484337331352207521051915469425604872024377156722100544789501358057988812661263066930467001905429218777670950201201874221843696599522736179138170924672184845842375376770051986062345290587832961446455886568105415498499811503999138548055345455858532958809793803812765635552835249705021629916981856918449737165793763308751676100472631785726857612014578871052564739428743926077604395596522707067876901578053432453772179109407139459206242611097955857979041417222289277845573082941509706621965361785002366624624517831889841004882759232345352914802613507459899857054090991282428343115965381490561050093922416215013397002794762005636799535537512328674458952002716698255442475037886542948726463879574024035066118589715660951362988383718185749754455773756115351088718672107898592907868652133175313889514570810097315554339681233376372285916493103448754244642094704070924689002951717679632688374298178095676343290630919005849551358537746574665776409414207590624369397912671887079565318333418103014543979340583446699629384497616152739491950839277586201850062946054777656452403848781003735432284112038170290802395899440351882930652191812250304195568600063500968039163898476485738259563903655743117266884602826313179934306140510239898263433862816667493271475098616164129296718393420701209292211627970871903809757865169324217153800432962327890541651762301472862387854247488527750995930777890353241768132689491001005291560881895170638687841331501976527523284230230414099277684724324891127260429046530064269134717304817812367291756719572763332035502975200989412395712096470606018058749921702115072997461346987111129967660378494837271322955433542767582551917757295127815153838469819209050591586386398521370201772167002707849146120853398305169316121184334712636506095876613255386489952903424581010826181897692445617304897687881686102450095127124835447505993508109488290771022218282399334873685093221800988724378187304618587453337606414945433359538752638810071756691274521156834808275531044196830253418973809580891636857044985747756249251412388659422074102861827809998467979476444449803006993156452175111098269325581462501110647961219114301299132460553961135865177624593753754469112902887941409636310086625250845670540706590962700587240433649091148961102282237572053184304856460159691573466409377432597362266453107916739590417408745814596788424662951530219288496164680347114695986535778392994114737373212779534831852342150837132752755939198575991978266201568314949951107579953778656443244133114858696923693798143284757939385243521235339253482639808018315066677294313075098583521735466829075168300722670151259431187817970172309469354078269621992662534735348889217473742595860974397954227652394763825784204391975356277781486089706782541714273400056619805665395803225608935745161404949105670909724769732665586024589178479285107104147122436164887285392167390077167876249164451470139605218718156041854303823180332314677265322355410569853730975722928342191605200611341810754003053037700022337949387747644668140185263212914726614288915444955599338110435147906814994399976292889360551941689734336302685310037752652350274142062276519763159641814040773003974233912692957365560543860118973973096162117015976044247875686091110144344960757470711957885116167424967272392689546676007180800814174169904941128147197935024989154536735449748886569998067220691457414105696967672359533851468090236478288481662901684459263857112514847949797751865630683984821952403438558395784106471974686728398181200102499712154581715057453366366889534625245318503796548254261917133954331800489931417299312892333242100801051762939325568930176395692945580518317464533686212559909033882908370249691689563245308791550213315110253232684156922300669447824286311899707204617073127842187027544739203918861353595390839929055046541830027771671094741760206599117962939855778254006474085644113739663758543120159507621156103757544747962277388564414739215118361271344106774332303920893067919573122736584307851922486622108761189479167031990653263601755969136648580655107449865101539502889698460014094330603420336432846708495281346281842124494729227190697904731568810130926784967364631882195575563931299195964858241828509923165113164633188420987255867671728622319364438841129074029076717083188150349118219005197543551551397460700961100324855489833977554674629192326473910887175936142536818989762680162663112544989402938868153849844480143495599917542348399716189268354586777535561279531636506191617690325085546985026260837239248094083694290864968890624785177567666056617592622398448113211041292884062202064306681283158869632533860338874449257662964116973562490581696873065764297137292236373381263583452460113371412711409378183783629883409076490757772420005334082610619470526409703092247479519599712712620217223425776588545222350561312803422803583467886624066072158367470945688385400443409617357067715297276952907448847311737477470845151047022891452946713454408223767447683137360609388754404454802153172976206907366209303475594535011822664844433617856593822095888469350558600534640701629290699288508059443348798386657728780721316323728821824246515362677081319431665508986339762185019433298106011262737653443504908413964174442991442324185665581953735676582873718253221091590485421054250638667197325901538404425988384326386291527499752303476816750205959143099728794263302150575253793691777794314711546652866601803624790813678908588271145750457563695459296688560774847066843750180140306927468694739308602124408722799576417170998143510877872527565236473444595403325663414875032048231287253074777827212859024149474092178875248514474897252978051950946291452866574276116128328115729826223407945980939740453215239667531519368558389727929202019246517613520415998640408761084931974404368670546260500997294051254917913963429023649000366514816744202913699313349844616948216643905852962105362562472857653741368398753199366167438815111608615534626363924774950418692106206815286358721358119596152847670279005063623482310443626573279231913596127784712116879240895191646219125102188339079144803926513425336694364757319568023292833491383491253838564866782194014593910166639974074483033498193609869970706029318359582177150087396338974912800966844372344278805573925152516533812264031571280694375966003611829324319253070076582877786107713223761398300757955313104902131797742290437869463840341275328593590406785562369608743908228527850411436761121280487333975854192966967761761459819444511696192277413178926831610794103495978593504322045941178929556859972263085314139737261808496550099188763238057508582283937071456615844289737184384920848011855900085901397626371928062592767126990432005329010954570992535579522563912797553040272456413774928961259265334552953550063170236113099272960546729306470931830778469420805812552861572253447317630373773611129689152044275049983101031902400332739397889528804559112745338303842156905599456028360753988029132997310525747349294921563968175385156861693546809010180214735724107683823182018968652291795239714377883154148810764046384492555954545500406768127241463446475166107333116860246217038442532311056434420339546439967471874867780655739152723576105742547638671226727097349983091562434907393815552918551701763366123279290485485124304108951111395385034365670024389789322271261323598873340405670573935415671850774547947572384801313636520197238666837698968654092085669565881870252594677472647305714356287494262654647205091786929377184611205398357050659127948123622462941304902050361461258172151185642561886078227648860887347766717356947355811783117334178406146921520329518310682555572478294830903530410972387719306408504889656027596663001305556009747169053904359800782180418162672610742846709794734882111560088406845086684948505066278323428536424136700092794909807311551073408112303014472790541893065052258858800757494174592154194892629565000686311912287856103255850122181839320301742774398614081423085461588628332452441670367883443298149429586435579114257315190781236400258448244200373715144371565095952567373592553654565005451333539983331620944333100372215705312916960856386195057800170675742329028071151634580391656065473556165333595064199763810870118360286290646916864495444420343375638993802176152716325235502597938332573584235387448991197115141777384327626127410572960213542045587056683246001419615895613854320766243819280171312171739103548700313084257274509360807835756831949559531802894210240407365703848719621492340775003155784699968109385755766771539487600484110691153370454936226809364792481436876342394905882223387137536345482629031383070300765203013996285197321599030438325240603233280548426386023543608339493421000739256584629984483392037618891397000054314016419682309845201627999838001154838803933734932445269595760038745547460233765585025062448138518211231812621507279092430488025356206128098118768898930967260630863021773755666624400396547838941816461883997064471621728542593887404365727906519385418349346147124865755444981284555774543652992953105384633530884088904159056217216307987320278234548815761140871929298459683154763219483666084815927098428215611569151637775728750782090431612930230966551954598020232539287647238461736783511553889237071958098974473599962872233457762422466806881441365262688832461727303822010634073553022325879531727462157698427803088647500949704464106332157938923452112046845575806177129102001453709607841633274201174648512461455715745415117326054850396641134879186682696482924971336251174849193444473622165465369417630759936928701159606868751827366885505154474204848675332251669786012488018965887909539993119850697094424079789743571450601167068009146995459736549644953919247893390172455226366184111761935212349450131140490664448445418351290914548492646585259310254906630801842981107869518673384469983755028569748110360106888101030484443694727500625238285033677221346929646445938428437916084583208478370402263499313840578620379718092631957320373624613382813753952849527054196165836974515441414327323642743389531470875809330779522530103056378673404071734160063368102775978718097760725089038216461793486539025899108498470491999509104624077194275725290457961897317019736300448666584748993252337995311086805500960543583923741607833055692360760742888170981028493888231979714145571990339859850765535093389051057233796292812857626886083582393353510467236741409274385387667026625257754575405689451377895726303042734460408673015196673488163657324652392842372150973445872458825190002970998459453749027802728158201188645760977369713830154426665505214724600909977486179744180940242395168246466849640033187956513543627752632094066565756542534548887596460019237180073479336914242014999684798165835950889896153007405233610933483796880835014450618180770698324249109679378526018957496217431768733224673625664599180227540770337109597864948430379409427871728957398240529307721764602110598865618957060592505630431775243858062314714286639358948328679713804504246043035656370970104729807363880743147251760776424338293161854854932598237164997609877587344832176908211535825087609005014076654236380347903494187823460737757567512428591043845625819083374977980555663938135967766055985202106844788106888245260348738976526740730639421414939993188593219295443980702813228499610296157019961385490730599066497861166067055413426389577434599166480454363120048635366423369620645448276442019979116606369913575757686755883157693312171715852664718023182849410306984805896418511654157623206526740971763003839788185611161002705238372206741132489539545286728884542788958622913078616980117156635130132839147643177887416150526614893116224257833616827927998151702649261894741927685207293575011091413638251085930614194757026603195216371228298966654778722657340203656512480643335003399846762285355001971314239091868975934685307181835429602445850737108379124037906010366331015917894956033754196860621195899200211041525215974119588317332053014936677114141097687918843238809974479133409630791149077535657457950296938113644534180827560814614796066143447852650729135442289509532858488586101171130102087883582173642292654838058617433429038373967064675371505564502703288121064846881380587723609571757097356703373060514408547557987094831103096426994269827916603140144830009315611014913704753172279168443109018383871549956770270514274917594421447285017989795843947389201697466436082702110896232182450285976866921021921310827365676351537638514988999956595060972065768344966564430300430868586952917266648340192145233686278082939918337211442946054057813022411891196312813779788578518179260228148308068966191622349860072439374471623145423947479469342055729687191603759003048114629586913634823308602754045408466140645891052979580181929560408742431075790747968118916261495828618783019346602724468413994930626910169603563189886644035901718099523546246305331875268584556833679890010693406716745047626590124638603495910355451888014248471191920138198363626105911310332494433115766395065025955128004054996428251806471827990527943289313782485970184814974689096566948914925354697525312829003069645209048980472485308564187130301524434980405497371262640384710105882744005431679206712206060422247606054798719518393866161294114901221067245630391620896847833475148241943483049301547850041017671713459242483213052629770583569339541664276476097815161379800833171106997886376886560876859524623152193894335160720376397040072163092112102186608770625676814158518649417652236785729994897211973268738697037977790469429850046676043601384221287454579129500010009105709977062320566650809918352386109523641376997445036033521279773317164730610805238743163720154760438617278075118595035048012559615566044378306098102162150677472242220088388939331316936099379768001397999659409765529734349125792957635148762503900330688798030240483365358202628854299958058834706005977651251019744830716486270413168604022327446575537962511758886832905554288769125002053644276503779696609908001886188375416280876367234412468893472623520594867290568594082077590430678221940950622064944796319597939947304135226413098433643858515883809408869814549645041238329827125161566648724796018456527471538536411186380334971045305970393803554220247385673593514155688466718750680935466961295258349073710177952287526138957202158652536224201946518771349536506349334711372355953980550124456612911373671590708858973692994326662346610736742711917464174120883822145866000980679475254576298030632557298036545090503790311070107615809498928925684416698098889642217512203783532699472244469301578172155823689366344508788416534999042314080605607184259864357988103022319727985094118238336958888173919169756743266032368437534102255269525350317425817556002309334552025675475801329700655786875423007887473400002415568379731187881971316651124849526480897432552293518590849184298164029863350292550009936097970588340808694414814740989940677971387946728221021968271962226238332201560370367254721183249476299097802697223767188345465058662609236477350442448157288849222575196535346467604176654869990054128219352215454856446232574595960498357450315358678526416817754622087142942360537587875375693697654203532510176169888204652408452048259254692287807800430313093645962832844677177224226994291261573302818503380652231634742452503161117826451842967428477761968387950339765898911903353153360074432112704135864685463693326705310970735870262543946937731959873335924008476242020686181457241659927570283580293027968440492766531106292029109309134266776542836065129991323586763265121086712705510228971034569804905037630244312103998987443256542870889233793543981677758262942885958260523970715382192419602611147259584958585577422922435773654102704034031334773990224923999475327339481932903547140809643437379079491857240122874816752572310327494505474698175070588831615077236138946097643242094841915590860578942439867942042351361538758547331261075166599579750629014720835592682603160281888738419182981148000142948150944163388075013031245224907950580346065388401755585147499205138776956651980926035460342569659347390613062634936785460216943278283259726321233446814344521776778059242279717257689779080760831803664326555244917404339244788176777531568260275298653478436984356308150370351304741891780876780249735622822111981734014812600850545056659843197131415948874607016997402521931409593880911843539540875526448573694423993033819216357775240820055903764649180459842043224298817003951767507722796417192891607424623768691590857702565685901845275026723048846177246750046489117024601779428427256292990248089185536068042979400484969831651430734517129030134494565979236388543021980224148309717067962370255097171129369768388657241159505456650950223971655550743839989231224472947325295422127618647702104336373283743682332468551659604669588362659195225661095307049436836236372775193564120732461622166942659662404875899032739729596850942487611482818873740150205545833340528017555665007570776127013694798776253739551973213476532657738519258071603948699003736721480428452722926872744105466817114944829881849801071260803345475154115065335760170618475528268428093432023260519038934183560510360632457581948146604677899887749165790938519394815622294303383654982583794952821692800738701883460797777819173763124819215888544305698882396229723056274454263621490964814243476408776838304043117495914099908692143704301375252536056642008497239690454480963183279133212560618747768653558927032793974530137496047715855028050223917529092971830943732776277594100606944250232795378985415505903051974334540299961349875566964733208135550464834575307977236789903611496863866964406338008216441853399489961511265701838451920901427733784847271498990890138043915000399481360541495581015085857527098480208848479730217609987030392943152042167576888220875327495605229260351042231469821526055444364878911876882929163919809463694280164184314572761046103927671010337532279163911452173382631835100481615823124720378830487540933928875506514371236018474134714370611445371238240538850643751144831473724712908188459322885277459983837731800022181511870785573080562537338687698445570315829001751605355782251297749303896912258175815835881211632990592848797601042073921345564619967128252593770028239761278862263078035154403232028185363217524311097464913890509933107272921537627822629271148850369222917207751678882339053527730935429390467751318767578083026076983029000754828522328816202923819457607733064184829455514350396888591547551546614078456897264738796659143252643277794180940979531384064696861438624737015101209759942930354876705886928434004808848047561376377712690612642222894678650498811344434561268559837725823437528185615064466792154734668786703076475778444667450617443500903691500433787743591787766557101738532103347264235932021294600768857908646022854539092769087086605530294419556720618637253210891477024776914699648511265501119835516071899875646298442108837250538495289304907972885527602704061189794442141082748635733100505457279677344657866141231268479130956783240307210529269713682423322780306982622030545078789804778150938284996604182738928122029363640639656941418350082097712947968986978764597408351989370250962536461450990073510205610010222209627678866504375963676004084376442491387026104340410494583707425723252783101993181377995246737297124530650929627739340131024923117702134792628468201426652909210526086492103911815714079000774904378812360179374458453858701123365578715735951460943442026758169052662834061835379215052133097007039973545457063312569245201278996982302329695602677094915220230903605411923719353722000663546393644540680211233365520298509012445393639254570212891689041010461153669032902054878541865557978373546951524486285166349522311721765700675650429841778823608308446561478601943175355689091313356348778611577012519559159218393600661214343920500958473420711691714356564163442482370157396003717962427922721490360899040798980489553023823776814379793215151663362550495537789514520563879912339348353849209262110348725373152690413741304838129131461891630067266595226508132346974477647754663311628487000206335526231994347031506378024542596132636894084077622715095324193519841314548775480227274870089267349344570251766723345095564029082639581594384859064020192640489284281416057291882636463147057596761309501042012010831601988144938737480236086349523062132813767528686777745320284676338640653091892286152101942226989103416727864470674591375517982403485739177826882549795108279192578663431429442469359328222025210973992408089563735447652261681151572908416074525635516322103299758006688644371435700224686070190323540074184221777035914079687802335607518143502710002979252866614921576206914777540827701765335134134202185509415691652896254183055294500310299848152018957745102099285787144902774673462519128645246030060434809706617664674182299635480900428316969228273220880311580575185564754815314305140261616004155774909477996461891765460024940603440274632214736844354233115717819597135288731223976210018803257009747472704673441637529480985091784937509232286763687372367202944198504122936925160412484475895805736737865144788572328164127458913390162799614266934593017061871901548585947049436122803570677766123787094047979333506151846393361842210153087545846076758199023735115485304770999728430314819436768019088872578058680267328900383868253346479910782071752070093904669597760449053350431224767362988603142643109160362616673151460742164113471765994133117316389424892001213706237937333063278402405182701776550781495576227061642033918855164390962256903692349603249535653715263132023339641892011040356983928673848707558095954281367517023651847405027529812715115130733398900996398695643957148915773068807805749944797212569520532841261189426309326513031650383682872693254276301403430368583986914306383895563608936682588601119048308115270677427013717916854418910030176636436459703747734581043206596188159597834371884975897149932108394899871764422558005953506346129849573817063667609448812465075066955190231131125701104156237350729043506705908638665348715673581117581875952848673051130517768387748517190189280421529984061864277028312026821001701917874826017739083425112597843988490563653904256227344427985624514361065953041380363629343905271769048115475769022692816131777886109909564017960021591128347432686692257251150980429771131749726614697883410950881725297780389600040832524475510712611499970130003590363981193494254425311303631725338089670253940069885706296401562604574442957486177082103502493541103211932534476801102235161150457819527910755392352802760499077570124174599599366815781319957059677030328987073608173517604847352765019647926826470196036906232696647838204972017810554248477785844594245543934059903035225542936979642698028263127354241162033560713221633261058318072143436591386163611181137482998982564364517016108430457559400846477781956049146752229675070242072682796049490885849588567046041619481929348855489693165362732694144939127838479357742434336439969642033701931173804661972018230353428130399810988884206102983343977414849234933614590582668706577371960694097940342072527007608364906708120899430206339446250477121687125191794309467773832676838823059768952124186476956916464722935154970158903819708776440723931573443713063076040601220526050966466834992429809268596432857570492227355045658342024256726848262772770323325838119596676930388557967337206780475162700600697963602918292316975196355378666133348904129233760132456289800875352989515465105712191913408828624547772337290568852005804433538728639945870309597300178792553766536845198116085865460522633014307166497658669558019206184608255783947517689896413216838980126435811506296041081062577481069185173713797784009857102404242940149964517233612961689761018253933149036856625985917009548768070726643929799576417122231276448180792208570783544577845792877965977636271088713974560589743938487700067824727166877771525470536799097147315195893185150442005524593394699031979133923908687896079155117275800341857032357931154089172565629353205885794777726790111013661021082555217077357343416121321344014145171610175843971195724694759958820488970196675743349607300747933772212478476444412648408326489300333542634969306261625355730158792890270223879759980150319990376795189320161835604343898953024307140879378269768645634922054507718095617558183816269688226352899370629956947796728677645004388903484059496127963161917896415395695258219995601172331195671458024091754234741253694147502304743613619580848797680334459978976291284852705794263360449777119068073224434016068063052865155084492601491026532434848624227501921210882527479042546482741653821989471280497683267462074478254614583592642195406416488720035026365055057090993229788973341080224678934615954966657790520645624307441182165316841535804459110594181417252978246176317430061693922943785415919679561986009840066340226448617682631471064554950143749207889948566467713773100066601470586892516690073936262275963419515365116770738084566068639580993564590998681475390862182906164518067079589875944631773693177069411756739181798773424022508008381513647830134430781991558204938001170529528644541177717463048483347423553946894742965865863444441487194934602601774021854691508238646830915801540231163159281077962495037229677784872884539351430593238099967315327328099751185453556786799565215289077648166445288556672469883804815645231388770125338830262130906208153721138994435817027690469123677749616999455506267618925148047667976448991609759708191377240651003038334969057314610245749985858696833219589302759743133394143760669412866956301725205948345871789430427833456492915737544836258275933764758498036345403907393658826222738926271489356750768920739508049530260776609429964803625470746856007459552345165552925919586122014915475320891025163629789234000695910408420506634419807812387991669890731687108933236585984218196604249738054707005493929102904506444012251326427508045593386514313223671998045424875554366827205431183537384117925616444689090809644355679881452805283303638719915780042621429539602510260782685297180595570850183889307197464758205471532776575849030806325734130880870149621730334818357004626389338741857655669699285530014842202740867068899652511076551219775827239067300171081385533605014317934326965810011589484771231301557001955309198334802661774561750815783216622140230542166931625383257959447020376366375937421724369891890391787527724813828643325534398757608482504762688477453351208705221963288646011534917479826281500367979692506108732590853122300235394767845861213276807462822370070141983460826599106261112452420582737716242770789445797464850508262419112041305780269939107733903633349956820038124947349123909391818724495324663945988635464875313279266836983416786463229024095891207465421038261492712944337300654636489684856345665593381890809011864014418504302715207293813839526367290570057843570307645310145890749170874780238885450351889006650006887831478987691627899220228677512549677140050536017421965768758646299689980088011960489401300343918306667975011488791665521778148839832509768448918210428039015898760623918028126693083260848374624730542173146671239868868550395215674241294390109479553177183379756340793752219596491700112168851480513722786287191747800822535713380567115117325630114902223791269690795376427451189278587239042008045493829053562145015638411050189886354241395505050018071914982685453370375890865380321280054600934449007075374562291703370016970682419194456175766575555792544850398884010571316508447758416614116302395785081432504695361989292614882262775222971749667674024847231334661868148235630079603784324283079721441007266637028459045669032094702042660136737942442624354905725013449501335666296515553101816339511127091251314691996178244106584939139521954390383234747279114608663993102132380724541733771713320497215586126371384577001628968717846514590351007141649902952829311217047724491104988744670837312366617037825793484517804363258243697644520709901689636732634257301911115502099674427565625315155386691560583966019690880026107629635575155386915336379915305698991400384126196814911975084587046146720952523189023577713220603903178409423266597812075900747781602486806177907563590222304111829755087160160324481195800368477406745586434156107380789769059007827153331635451613599418418315805962589645706793966921721015492057406945159531757763552478295434010372679319276285729256248736970329027372496927144152911151536056848766514405882981110229992506364675088806354674381631119773930172201501846643288698166992878704432588098968073851289938389246308357747922528249988581223342572542331062751578436746415661852964104542729773862349378355383332425802076827635510036601618384695134559843434375709061937132159392476516142285247445188798990533890034557806095771605355099772905155962912124422405611942020440600131310349642033842201612812961838966724639559937979908304465857767492694370702469697221883090312013328285629390502815945474913212702736921196433893287677166826028139730072189525002346414327718811035745018760305241084944371091230840157897914792155855618964668874942991271162162562300390855704706783384862887011091121067113510862945405928068224411645293902746353099441981629431491695820860147244816886741118758336812554617528613620575697230152067641521166125925135139176255333033096284754334605945453308400850761223706719280162127719679624520338553469787915180313364395481165886567345453473910830616051695457973528267460122109087049533507906092716356298072057737019296233874531289710696532148974716462395467483715721410918570369333027012000468768074801452733212205026503288466511986434744224808508867129581879054509673377299861357454051201812922215923012722502321712935798353432045634134882233643620578266223483407624402353275991289688406190262168529834668683745597826607304354472613406283500124980142369658801287191604780761533308997204450804889184439259694215187931315159160217670517490843102428205194847122369652028454659183952277770072482015088836003421462358178131802336789096130930767440711492723045398619044933272885601612741417207046381939166811062527838677704186305076633065803561095896532749834055170801492038623925003604688234357256802864588834069319134704374038139720247912781500883459987329075594003028130233741928137884857232107771444310703685450969323187172591711538595025175223090737590621078417092120454779681867254513439986825260580189220595806895539907575508820603303157339388494207623126614276833567278102402316232666518229803811577346221493012060878600257496545146358237150507042205577501338607241383879327424029574391125418980598975233699978870298789376808504330300993510358248898116169953778576230318791463459349051842950752046745638908222761200504249485260214516980273325327783012062061436537921290447097512519888522247990530420569440902149457812950506237413388767361027133624205932811893093732299059615135822955406484287882483060861253580105349812390098752295841048443851709230827459612621840248659373039429782883626190622068483374315371364094770097923416393203683758679351105542540388182053153749654602625532401005709223086521297985910649338680103285241528076327949816668207335630829463255758446235851595147708452283943613126021946898414199171106971415094708244321551593790052344565272743155892995294931658248932519803574970702780377664854388738696665140974375421992567861527062752964877253548258273256894556907081540458691908469269854841375083688584662808004806586073358431276974717952557149203391780175131894259452196694462205422969836523920217401276517857040294858237636519561912039725660447481494954875977001437167572575053057864907393588666266686144015552820814399926032550170751359733880954127041394819343221095034282118600139430253756151385176848130096950257532712351946285655983336629484611210369869971254711408051512198408129851786547487005019504869024642124264116696004715583618601923808382874336657290680814805784100802445094384515829344354885358820469882030940474279225489328293403845201066399729117405722902992456955231601862315553769243321562023483458898223527460992844618833689613366537857517048899247112505322145057960922322424794086939672775171364895699443458464063292820663841119954752626981361587743572370391684990455967170299295477248638032295666620883079682722176414239534161637782566753722009968999950681067020740362765309278657382671401783777615370195914030824320412206878129439307458562821412057861418068578464209297195769469693318343109937197289075520340474505998051394582509200823681964886664429753957119729394288318412823484006160992544105562495729355075104700885377429021243128450316079279773045161321277820967259316883407107850095429384971374323867197639289492561669966255031746920506356452860487490769427137637407036250428262541363283005959111602950919506559098286880233692808104720723160296588937409693620269726426088855956780652491803400424176189336492517318874698095648136319319093058581945584633432246955834274121839109578197833928581718453368966286818390873400104802081324287056050250432518818489474467803874454526066712018553663557561557025609801078952903139771021675208242198149584694471585250669683780316652857005984173775097636191018628848943676178743718709709580218993853736251617406224858187169903696678325425270475063655498032396895008094779988948356622063245318398838758160667538387239994554734501532906168071156534953688647889713290127232182252748545063539696499598925717408277759237773792853304629036548425252080267736638068853808298789630465383669292969259585863412973485802986265293462851256157065229911590440296074162173788040057706293612765320332818915691686082710656641800992383266379474283764074758041379036052991913253786891532813351825790711419846700555895080876739337007608296776909631283862264755816648468319932321604793020336889454858875482885947542481736366734847553257708560825351764638388822256442694412562091365164339631424652136737008503507816264335413066658065562616309269122017969303147263482698857023355229805048828751069971694334714084588773549263292992648846298687470767236309306132270564850300494540879682359615109204994167078035929805082954194786326920544070705505719112478298574770583359323917663102549474531786889215617723804066970573330567905376548686357549846675356527183780436047720013510966697636093516977949199943233239772639849571660640230875146012035561752306423575637071435747657580196246701279070425949719769861222875298424473204751955823315867795742978907499143079702813606467656507942517194570510828395179709615320856044457986952829606635105064709819652952689521045194075306953698541943712862975778859021353383837095967591946855830575805129356701255073472299740089568409865634140857303566799029988916426001800518956719397331128933458569561149160197529335016788473099831870973620865388104358416155520147240316038156154397554864501098969354731053544365609054544079607509900847476770037228983127863631362296812638821237373440379185270108616732666091805677901611161046134365459352787751055745622546109401465123658932336557363176219366165249110827178945282976303646955647822913689510343221419062660210269171622542592550825884789622936648086251929025836098790187436248615775973911305408953254287574322391273838198416560741690585973732923862257313089728576365678200780515438814839688322726033330036043433545250164861776192339577402761522447883090950010119392298858942237625656514166550232296154353072849695138103361910057182984925233998904228002270129086306135370790478997860529306631353063283661322287770063867471122188221693511815431032895086629065839572781375159909788681410716029454941919957591858505721019157090287101283951983233262305356604488024989277025525404779834057216660474179775678690191939623646889464855491890142107444931903885853860346952960487725755580626400608517641153613100112975165847343663495214737516454370401731047358696724926121807953314618533493914795166411673883602408139598949609196380915214801190515059304616051895165066250573830399993087171954229225012797744406875716272737434440183721045956807960127878304849246493892654024929163762947884816424160602892043183262171058901581699366661837679455641461887514389753207294928617722812002131876653294922351771449717747605126836093114994488594654579211181969715929004359624479433155142460253442502041792019623169948212846526171629297668168498629436755042084981587943659215228851457320187710725499760653865552621470914896558575943854740277503903778799038434406446376768492888631219642834735376664731086691282230357148574611377176075800554309725664576535883592658078531114937078533087212178614303569452705339934631876023861428233006022915053019525198975231600116717877561898305479688010231603592153335489964334168438922421939746114478271419639770388760041259843548255595752742022593389768301813293674979469890851460563835947182366888002276920075125319519300156075289305615427739813363416410044584192542971100779314739614305233017265987662666581593669510742797794094814922988157270610837031687291187075312557331014155632331410753232194657534853591129752547545209787366832615983051533983875986970875311062435384890258711778552418528229644600281774977258999848791782166512255462233548481357691412765328455371512763760515574579300815921768293406304256040805419456686181274352661765576175326850288963115397532298847354689484812895179354168101429909881275915166337106737663394527737338814626697926453690396967153338232776499181688948303077866631162985191457723163501146535494392637608494937490492839274925537610055672460631692994025732217488529819001037931295630711840525230162512526306709129353265350512288474512973234418505171376965649875593386715172961307459429083127139857194109779446855249004834629393390445213751592675854342542469658372362266931387766626484114048994317072018652574224854049398612565653531141241117705894831113992521010710933441535196081535078069136532402134030035398357471266383428395599542079989408385565534607687119872133328037518606974887235016734891079613923960409865813121247442523751805276310199561790759946556395978538374691349827592524436729548269376338054556542085201010395676667215289581266202263750762311261940769089784231330554648951969098900587783760245463693115442362356331633577282339833860099371288679931735934568889515441009654327908030279614366996056839412457556735937040028080572882083860370021679192137267177489056516897192733139122610813343546792414400919043612043549543710798157154036447001838555038036101545318832153168041274308710851570159033374411323070571909713008745102636840844061423957315175356554810106627863244497831837806907822585470528856217034984522221812179366399601789513687271683356138366557684373176486023388776821453337834166510259253538878273011715308125720911272569190706746626171160583229232068027386122558893490277846471985499491967884619609253087886594548321120168286849767655918206824208939396231712615622928489672069133855668389644056437217684345756233451849911578386978237554547821193080107137405696290722820679001837539248090023005702272109215178134449295997812662038566107476783977734494953447611168183888578137530989916383516703550720934282771042402378650730910535887522630075133737824639008553471734273936836609871547040403976852721235759514967099085966165782635236528922089930049086996485346472089974925018835850883193968454672609433305108458051033481730541892226154262957006618507930093433240730056091029557463598379698193721940919026696517387637963483746961647018672251495836402759830951613918115552381527839022138541139916932743977971102172711645707726082213544906227558846527694905522511997812875180315122994555872829821610258135256565405116146822029809817602664515049340992555336121356549887244313510014601171324887314012242012929409713231147031701545540971059960289315225405063489527239056388297671237738203760742831170071201509861208501802101147547489256530716332505326433612755621600559435897275634213239272323694397648593021405393397811423992085093659434387565704222333518757316846866809706675874346288195151631016067314152842312104191616505965701879133396814510284475937730207738380557039174578111504500973243765190500210873595292390724166778138435732106149478523794758008070740907700557992790612208555099813201613431280341418717451467380089529514526495186196615069471256120009635922221806813270893058393554788037886642273117650652706401226169852092295649211503261634753657023275632968748976219764733248630217278841224177491228979871467200179850606585289071930958262971642890756839650873724707501257596796379167418221146946217420460413811685380304816856837097488349461798259852648257115459105671116876814548111639049283325415138553056567882733792299226446566567350876266613048740232393061243536672343343894943974348544005482031534447406149239036517820631797557516487536674639384696028020141620367369977814539585194587639009373386184208787376673752829028523820215011498475302485170337653074918745900509138865952431143015542613255449062932813175009099399219950850257881488507775549379799135351401253520082807177210501286942554321409557551497544435254206855580708284312466158629240773142132078260933138806706876137550473558659947370018411338097082720692602267803501623157027378086901777184061982455644245824729374460172329087952722025656843025873074277515504866456826280034783921351918514939337746574014084908218358222527586135026266038867488316285667938680940216356132151101791570776136117689742077394860980850715306957810091894902260665984365263066947784559694122683666107167610983467300149645703215414971294543235027046546489435806112086620051084496421489131172981084320794866875030399347310470575285626367022785023246700170115408696485504120457009447683647998950599488013280896725887593400541233357593104794260811929102230762910079913080098909506447485821928390854239936144749528934293783582805994912018685106441487167179703963904299781047541104832501970955643123063924218067227487930971352564592530868148397603235310339795638878857713108987147954156399360348926325439025362833192820382384432690408163719573242470590494383474542290537904759159759963349444994066325227300446445044111289940526228790387573244176476162438161729194794089624091185576925959644141024048571614403832963958874661482842538126701249449162958737562908448648979244775248690852124594600452635821238367451125274134032036653132352726878306259662355023979401402425599132470082063044574685543551730872217987988982733470728967409834813213220542736631915699052044079508910748385329537147683938177060365759744039895036591652502238317818918178191541987872378089973124993484390407023384172524181855361046497084193088526189032358255976558318464651263031610572576015572726728496638108669919291043352983604586347091494542417956809035850037473613357382622019862399868294490159080806465879195658760013206226600224078365794196365765767953540498763431076202416629042579861027312442890377101030152471018307551079551652674502329083886704745733514009235898434975372483305115771557956907349780590795318323448164620831283725330477074105822257759660628685507182295857473212566871812070089387579359618765280412829851105461497446800852598087463068437834377487690276547373224763871413591341078401780670214369960324012317072599804546276630324575063650156162430211902197986712782867642720977979189252568626053531098645315999813950310390395213949601405958667523640395279967812782387188898485348304292168456198819840181691873504178240108920675739134785072523353754732794366194213178751772465745678638920798985104160632605293158999318960667937740321820919432456605710753829068321529801063633729241746947407090205921131440900932763678741366596809649037728514059950539476873677877222610566939489303391076662801122647443995268272929377303130257887354829906290812471094889734493099850006890155974795022012164105309813779821837607430239623037555174594970985607125213933360872165078543998293860468934059601060301603404472403363597897419530181389510311613783726541808156982272675341171886825758010410365406868797616435543328595139772656539865420281062367368603075667053250740154581697576382813136155046787305044831869469635684170162423002028287105653702067938633919484595818134621004534139613808486573017332402431258336623400926075927846435249497438990859254394708009257880472461236197978073530816524008622495731613005113243206844948494809369723617487886760449561869525125068766681508733770702302698184622651281816824980379811792445718115946523020284665318853058795239278605395161348360552172956789569944044247278062464702131048588311247130546510396569446261378309606901107275989721880899211529968335249141796674881729370926408572900702614749616858679410528126520324182235469643958056966561252192174371040029726250946838780416505676822966588681830110716343754711500895767534298605150644229964298951911950859130739924385117528954565911959045645838188922548743467822488903405471838284400552264279358672945882664627460568270661712991180823160709608590391934751291881741949812188802447937746478934457150588071010260625290177495665236178934324499323828812151683276487579594546143719433167647510934768947105541765561734356230643727465201566337238112931412038778009140100766074879575891496466444160063912475085245839482792915028198822169387978149756096699340499873426858751687139673526144843414664911939448687231122979026465947044941841498116349239011801136721383801765815405364963829069283057120182624680781469543817113525621407153851971577961366002798683303409050049356532196800734809715096660691731732456953877075185669108002176330415956385004061016855230565040982771741530563594161558955672620371928261759168643284424284803684440035427119113463247796906591024846286178540308571597815268027454852719440169118207783772465422952627463598407897749712427150893886815842120063920792924695237936029342603797720606510212994995778377874636996106660098925638684033455419138146160058679523795361146381427401831188131379718028759783195980969493794033255214259395720137446135822966781235649463056717891442553989739687638194133265776268801647332029819008316043389254842558505175578867412773889730597373098833659603474646591843914453309877512604847422639139086899074196501277783263030125219549607268544092854344424555328706856781739077184906711986124929633729126206019296961795302180631838977617581049350428777463355992177250106329319914837365923284385075874796149554684412822949356423974010510891648977282831742091441663360119378536235036260648769743166897614276813715326467558861617323120504100523444123365414000773484957482095980922938072037558690147172017747438174876895305206288768200184591641078126400899738459816988665649645813162151486002850998690068457658373515933527183363314505041781594796029994122660519829979843685987331729530381672943344191606941828586729636132041013618306491072238607416303619981830136490049745969693449683127231971540327516323717972530459193708639861213034967616971346393651176085090701371184212071757888996204472138814524687593790786023214638120951376746005009244587158122228678409656998382332767951548416831790508884526756950010217684997063331274525269990140290772318160453778192957928337824383784163953990422107212224948549406649296609600211683620297692939078278263776687164678299466879468719358558386481748791846204902828491560056924818812831258203439978514222215139798977894959230478721050887723738981334885596766637344567962122493224771816482511782774826034092724089369941413966438129389298416442398198591730640073945719004043002578611815584749326917012007467942169633785118421030743271639756728521663057602915206974598901422379325522740604925719013579922849075330239058869908415629408143499535182546658341366135695071675996767886046076877569608349472192855036888628172468152019211621732423071454826675976747743355876287853171541674214005929175583552455287407623753618907607338988189073863583871905394974642618823020345901865636105418563501380737602836660805597757247443077121007236598660438146473705101839757123663702121203674102100818828018356020419828733992694793929584375197290468577401228433396350904086884077919731733900003822979830116256429865891843307797153962915715638519609222681471844196066157187267409471664911175175898075684465278539728162668010400899568441673329444214603117896753913821041235753678835465596233305395219269520746566628475235646506369686562967450832722594052548705356709847707704237757758253661615740721339358691206367366921973610434508385300602601538700802520879867241903186921853028256613731737930393271583399951797565342789321804257315825268126158807017975597188806940980957353426824247948040662914048430639917399574053943821926856048429992930267945939040959828214881583037125552314933752242027384952125452900705954569718089331815528649147707522127816317616386060786658651682414741197669186312894760557380689203309563264979361198047722755273720256536651117401806969184909187611757837492324502454076906186991167250146901814188406470963162698888036918202721204189904178992248029319247845549711201668489296033243144860802025846351897197074627329122092493931079428157794514258407486695280954122962531623415822849555508494911020527843801266617015921333122045345901343060297822997348094328286119092390012028227639990041487170291431249269023966020902709013783490627873489340449760151879006640975891137197421889768800305924409354090706388173021769664538626044723199537527280234912320636914633549788998683730109097398277434909743683995478896709381399975920508819562030353616251720056692858350854958920562226642900975112208326956714132120874815946056495774801830028184693806574363591604988286389377245404158959672630944179320153460956535205062553871863415881856860519934387758167758948121755512169695062230597489503729863115880721687946357842364648075847043697582593913492297945124270402064032854610132868684197584002840741260506119199729493641409105324333938734066882922549213732531439649952873176939958625525310437652863339600224923404789787163395002486703145232789680390549174995411874665841214008814437429631619683285203982460636098214659067862424960535635009833482308643882914748361325015385048756577465328486133981279894997133307287624576371006891703623208421385391826721121270478836477679975948541454309713311244134716735132872441480108241682479951837202322738604251191443979620520652984870837019768478371467875524308398236527671177043033279719488079437920322917232683034015691450466695560495224896453250105160916600646810599464003682745249798995341254658161904630666128597911375082720839217915453497917113172145864955753258656974528858164095475162103860492578500604940295381273522381251489619662637345132351839514236782629338564287763484647769260238142611388171778296192354846055533218273857424607792081360228954884906655130992099882605310621888296325607257706485427424165629163600697434678658981569048525328017085894110616539921925442032071804659501118206519391934600283532724790582470272885989767138446205129721002363316778695728523761836952900759722738850158482884135487324097285486566759563287777020131760717299135649663158884711961125406347725571554864677547600764155349344638405928966191146920264196345449988268259670776544467250581821892589503642739206906030675938811844026179996761309271760210674846027124233121766347536822312021835405636354322709355838491596739659819474228827303306012622948547166076871054736922605250966411566483327754129591749644819179579898921325462984624331317234068542046713448868349882288061853220734847712431392048750494630976413997407834948047151829610289452432102524637996466835563540592565820386496853862919266902499185569127534734474888260444030083831183672582338483899520580917046032435429363649650832277459957743391297444144849966028461203060863814362634568753174240426670015582435022382219434036152491872000762609483196037590119971502022223891489876901222842352867420997363592885196294037853253913079607469039019819187560286105495960205604410902239612373263054957010911913670295722940638310279724981008387498598873085392131285884790847850993853918361983288841672179315839220513168254785619074317381765753766042779394622580549517322309106840997242088363339377273281653123856313398414007872392557329843183223968505422420317051338089610472013852288602095290923806924581487976420372982515742557735946080820022352670818925560976339198875687553126034034443534166225208047764673780826594297499271651998287549497769174553218670490817697776812562516391297489878379554422268005404602292001098219155539324495073630394710537583235209905282730222206395707221865170553640675951653597022315348850883177723111641323626282821451320377642040122771762434062658430205355978310238616959346077298904918894451717022232212527457051570095150845900729155516081249902597582650924330664186765779032727984820166951899047799421711049281938619732525441640490209350588883313824216205735568099507464089266976390720901279027020904777559810401706102215344641109464729662803823024048891582286922158714364785633026214600417277769534585776345546970485196195049124451085608636900106907538382269087254829204935073075817656518244851347007101601618617458823414386900451316686415514344367397005704840624922063672047300748674547798995684322878274819557041218356975728474064645007182628423190552653148958976175541639781093974278596481545349907422089493491372993906056323021319193448997277153944996668376983623135550008059286135657475056273099556271197412764540624999116620807532152662983817593520654106847429348048479467780635331973648660792437967558138210156872244803430256295215540907822234594246387853389752223261635610388656697877899707520416363418848324297338324129034875610522402920093797226051190053697300019328067235314000576653726097320608785323800001772993278725493766888643193436579096313618205884863966972304901281876551888985014278455224786341303608610038469276239022548875338899460333889755435248567767907424916548943928429483693784938087951521384117314691239052035462935108368099671520919555183785293926504484904792348455261852651390138205018891773265455257227485573594136450252329886952766444239282502331481655062291307822506370493772459903894034669576658677719637811996090921510669740262842630630848287046018240524258904876704307720040967621515536452867395345413144751158456003246149562087047470401746919357442950574813227161716384773869027232913355188686109740648549518538288047836416814544667762715122525480477190437794733462827787469093907666635591244384195483449752817803942969296009712006008429835253680760477653434815859592680956488382001422511283648115537823050670299599190945051762074331043637842827140981528691768242360913839773781896984072324402897893296241223083469999307404886448382780284964158685749060442832843496783028435628693522964971425540930963764777123648434750016396773108950818095114402682743327266953823419064691858243529387587894892264239558520496821604870808574827988930403495023937828147395534748140610787992712612261602709758404690769636554054214519933032543957876760678423250659524367834626846409426913025162812837838880070539626451805742621800310962533087639889896040867976038065836388436182263235982935955936229395077320804064101428223907767356477776048159618063987342830845929813305203994333165431324512782676581403303058093525373557267192051028463082654822227873482355027049949745994410485958385307490187674274716666094822125743459844393114554253704319964550806246718087414860808783182969341746444424560941207990931075725411793600154255061116507790216834114997705448600268618415956266320239476197230324276432441684932714721321656064110574924119087826610162636705292940462456264358672060223212721585147995326806635520992037349547591793197299027387185655286417624540054367242152286804655210388530671019545851747570045339159246130361904911655351577193321199170250308359622036944468633590346574135601031390103874693292430484062956947869012356124725036872557039715941363059657226836643517120224304062367708011133637829916096927526237674623696230376465322216176437136781990944783735303838559173389902245670513234412185620836493218604257716449681233148038609969508158093804408400523512246599122577861163142323708307780415244082698547640859908385110055136329341530196932136707800510984676967155351644385723643040292036502624125883577765259679634170299346069536636075280908505115693004875879464929820694035228818957351990674782329701645923710686596562155442150335765560138071231102291069461058787440288927656509494540959093750769004783549939357758784948271072466117463780829233415654659257474675808672024622072803856995138721103938508815860172805653570125051411716730350790938506110153932800551995722449063144892919576157951557647539446043618644477429546862337359953395232335692933709158562833360078938541560490120785863212215527812825822814412913360470980359346318026567067802530420758641812776342265101801483758907780525649462830968582323597449502499585816403742093832641250749487182249525311782720678178261538296161797397835349390704582083987761740998688017685591661434626884859470838374294737739420014255960875274298702964047746919209148581625118193237198180071928982800152353029234287213186138530972263472449650843844532272416732374563485438787046589822133112177250791886349260289587709508946147823752221200454131798103485199702419021524039801331926053277348133809732864611068040418100019030578510883870261643549767023610550083935648239027153256234869035671760281028497136048899152415461095834223224793001115003269270801785229877467789940642194386809781168547030939954886945004864342102539737030026684668304545131835056553929544977527036416210367967329155352351127558409513434214381466381596959075747835588575389033463273554196770605390015920249563124501849670711547348196924839154992859950893125029806245567782415282925359174850355648399648638260854806016658714183844990476654909008352577257986729491203562060715861304146373587366921574525250815117717997995933541684123318406779207927417382603056898241696036864483227359601065859202830014562622320053733082405546124345213262082318502001984829234498636553168674505033606438121567113509307573662423489097620398414764349759711052174670804352189218700696915930918373296582730733304423219051809238956802845833170232259190004921791524597830752670740099587710370239028840141377448823676396658767785829128131211636220338623010864410319851627740982752177168252801232158944909138550232742506723224426601673615918910437874339753032822804343023453794500285327645967611456317189942907415825854716879930707496964381651415223892096638886035785493414240666421453420719113244793640047548329775258393938633391646357963335502859082606316004647580481004103262791088181048494768007112285207885514165559871159469013663697493250057709515726076209815473495658857000934139216086133364108843043482149976763429593345265104989803931685511760215373199039047375053528220259879708229480316710383561403177119111329269266700314667981181267136918454966964296674376753540496126541416610509954225620003946302753452049304473817371694001077500194605612261110936969166089864343828346029760349941722824541995520912245999718068434027030126655792682915655465206396306602227659091559714845092592385913407017809656705045217499428694376725385673430207145584552463034294778138031338889125202956164546615108495836888168351358321865254761002098905918130532677274880562153741040865113510433580250617783740325393743366305495205438100129872633104864430796391323141000957259777222902193486474689752251813098835751261303369168548566833596520701001778518731115332131454929665054770875444218906099353563913114127730909545959505257659232397129655109675028056062645084597618626753260384033018844948010782992825844214457657785390447653735089909446219621607871712952607835704593436013970706704265452945959583152814026738940265130738483296433102723301012613881909222660223409502133401524217574716062144085874024535047144098034761399181653544829707351477490510663874284887971790593846324819606291882718721316547631064598263141758371995984586913953675792880452585754755161506253395447160584957975563577935604193217214267106928127028424420737053003648346260615279563938902792393508026886100512707299001615456951914656500192509330894916559245674802501215157685469746890375446712651457983031258891524571842419395075664305648006522996651522508912679988080268360610827739764382175333048726772598223110128498185301507111493783269250761285672370446117480712763471422075440062965492044279462953645699204899043652581060101451405122867726366919414920734253968137477532838594141258836594580611115407209840809526167344728291556568602257444926950883552864579360769194609726938479543068107213491327232870056437713472340737826507578819745893276967542252941439778305570436388518535029077560967901884841544223755805881563014235114927753593177353159308279077920005893863466244534417332168015151374725784896737879459995236291931436826925446769670060659245451012314702527888945364337135717483825018560968851602153131740655329259894937780654256147784875483277541528238092605876314321242738550588411205711334548246366301275728474548421726436627796077294802719046747816273849994552655414264787875446859298978076282617304483963547747230734442095256909113254040458555716006905191722460539652931015627458665245941545325895151339086603365223902668117727501263287541147506501321271274130143879638563406246158416561235372550021361135783063423399691771042482049533844013373473522840114791111373901928434417112820362134019565529141721584255062057898370707573005289937565627047973407171628777217337507988879477831431770677092626069806793157368498678214268665151036098130997777531152843352254658664641943602793369268852376810483977913186276497089037023196603258109741582347100298269847287640002152240683239006218012397554009698489975218947795851217980459828253217404224533614646383427730961440914015936939336218196937202629374665968740527742745543733569363605536958397339069613553694396602617436054555875245193256296142064354731724067582368260496415320343109362224306020758092032180887302429274428401676270286120795580686013700783875066483718393937348669210114814145458222583423000064340381117610951021991746116720031621485861671771046570657433221608364481183039381247511417387944218918701457883916379038692229293679092936922064958771847139620378169036554654793545357109022410967915911939690220718291090477127880907121274603669360146621858469694569911156778060357320858170853147016566448298383664394076484896966248601271530482438592729557774277753852813804960378943465808942265456306820422592334539995742652440507940289060345813871818848573187949642598602752497410971541952724451833629612719258074778579107426960350372759610591156951072376036379877474731207144842488509546479004485819241807983384187002530957118065302017846513698189569356653145467227809886851955360664519993690420371370978802073267365475205459299199339203942143965489320014410711700783848071089302589085248477250184330507292098544494413779471780540859960649247033403411315392902103472792268470174987473834343500092977157847452244379925800746389915134162117034633853333056480590242257518028044446191126231838569299874095414164832080093209095736510377016297345560389921407134952116072265270833710350511720000479481700377027518327951063747106177191007657562647101663508307319263704865711122470873025536457654006706142361639077937109686668477015863332101599881881768056890433313264088296663078524432462444686957364408680308990537887592809217353893320317241581500596076593183961590470747080855971005755226277890191959895379021878491244268134780291224159065992843608649209811013976406240914540260385566759585740150891676088629639664830459161704570993626465315361207476015097612734197980696937860596291593602169652385200339770828836926391335676627661134300173350672035982177748007300782962030159054452007729708194078922616949702410784249304731284105783915319257587484481736913209471199358813437494652879058731341940185390181129463191468942296552480527563498226814365693133352227002705876090817393178194018906911733450244835801382324565084673344433898042711401235765182139484485767552080928382144350756030495245867005737548589818402134786729511988307517815780957524570763877355069171857324999954067431740573446774064607187270268419351556774277704079485531616280743727308576936015373893192388124809053098956264992043887281284950342202435613791333589142551597600386188184324469669572828414554551806797918369417782046028670101158318490366209727340155996909772630152373374511297072814187146257667800413260105871558756863002656298158757195553416004582906512748046699779446651025713544334532854875990354723954946456780128160902965827516218099219030908024455206715650465276786743825315809423014555879995527811369972863006026622734175137311302158600485563268914055158840224860021443065700737436878615286980350323285174075247849940806684146790638415503554728933973619431608695385658923168269251624068692092859091098224994137590380267971355596619016617055845873152427218144579711274352640776999966915649920263369998975594336090995155443112623309500000265799350473288651573796144877273381073412609922032626577897930182327512869559665821372212957941470548767175869475626737743212769621810532788500144999055883631780183496711544002668638559528503089152939380358297612744843445410561912769153959760650958099589984567096733439299441205328738608328924596122967583775553790641118732731211299418434207368682324481618031279926680106299947840446628400273101546043514107263874862947174127797865229124645442073880251306105796931556363794776492101326969096290450479924417829198789653495843297463350069400248113290919346083163988502060665550479593680892414725793938978670439805869450893186084894109671913220980750247659954809261211852994077408236269657554343411771456768773780171166358753738376763741364504971859995691191251553690835399927829803245068246303430319078526378814468583161216396125911575440677342632957333540704327629102598216839232455084384694908448060646262058397051393515906143616152789117322883866986104796012038486836101964244477568973830230767912080592573267731484736277964966887156966332436466421919166016200947620613852437970802185660750765113127717625565768973203960747655893754143326338004052211560689939731895497015894444891076132027455949334825685796420924784932488778711332482705257777310218880048954780474998040067507940018443762374244900178839083496525134436145601694045790339309754331384649419446680571275858457434818089503699077922883490675107448676794083024411345251565771563173242400702061046077614978716563405666416482665491083233005418482196599724078987725525148227156652180792688022115617536875855421097006524666309292869017284214254815588726396491257591014248726132393855708339263725226590468185189054730312076366149295372207531775935716832607106684583391647376681094037898998770362843954453179193377967206593394222189579332453841436241026161524146344062484956178960434183805643006271304949837410922817955482528713058590359118433104153111780803337933645186240074031777328583679203175230905135990460837402108251630041541314645208761740000178984822778298864879145924404000430812996241539415227914504392403487875508497505084215264495249031417446784220324994893384882944434491520100281751502267159758381342168749437360640895517783524959938630344730876485099374834171821280560659710629272011406040062176650863899935876596850130021403238755379894060424238642517388128884308753451372867669061332175360227652930243067488226539496775758021831504790476877692419707626597662013678256979834374761807961171933421478499996693465271139881926366066022490121909092090355134592799961216281132136442496328671058149718950575448716635975879087990724678562789043994663436620735039776677679620591668330052402313891718965399119046262841533127736074407638098920620249225831281812711954370660280565164807494555830299499158423366947818377984364929316909529527187020685811877114438769301069442501484732008558626290390126965506175639183551357010791925513541390649376280116660137918141091044080997682175556060298539010063193484317160950219454108246270992166027018453569153769349603893203553127638202409778301363161995074776995121727189808086133613125729540322746620632961261020881061438698085390760396483531757803592107978181652204518329141945560778538030037932969521314625971599621042725167492186565147132578754143093984846069436836083830367020796456354900427992159618997278837943328002973069296379808924526369266624958847917999730625431161649590452026391757844026725545393269705354394801228485189115278597688854659613929035289404384020201331878724193565649715311106498147353324512276760829683563712358528206882432603701347976122434438183556409330491232450274681557747583734878714783814537423055324636144689192314939127861368626038635524025975090193935583488309823892468429857511231941471930591120738942976293933578922000610596475194766379086670248531612732491750605296101453892101427257576807594153574464040724039281509601136539089401266512785143090704873798514880426184301274492163279152905617958092004096422124597761777932841675381565244792656057358769952789331041939670697932128913096948157717905338182121000686871604376882695448118707005089948790411012654111880078944878359233329924502268791818361710814830836540745939613520048270845946398183858677322278803583536016921176476669658620495780705657640050212753972438659539082518978594951776600002999354452318103104549946471108471894131755741296623478356529450813874815439765227465772148871383411554146336668895791928443788853952063359711214919058316531342187582398426245986935435231932333084336419126887750725924679896077961175785050804449299190929745311808106586446037673969553971942258555313585965875910451476398298368478454634942856624165212551173905246594641618613417170877236822910982270638734035889901453155381618244031237123691813252304497119784208103720059174809785225094797035935190365266088465109918945780628385688257748987780738736851521025660022002749844547215520816735647762424220724090976219798969758446141457887507073151404341293942784115284345373215878199904568914254193946455027206355180606369909120238266430433063349708443130411993075703241176120687383594041068850322311542794232618413916804894841782321539315661536686266900949525251028356504002286268543689565112569070229268714050266694337530425297396046211289147775212023339181220000283443683179193601137611766985172347286821930087129954098668712281474062594743541702934059328582711716775383226952164345074987563571237858873591454033575351330153665360114006105886990383419151005391810155179946118956296859122278921061499122968263674166731860436461083383407425777046252121091176368200001737702298438575902641858673650484598452613552629427952278748645462653578767594807375546861364451734516443803400952876037743711292435052708206319941193640280486697507499620765932571370912618900831092455603338511131544721432697510866161930270467556662396999454588408598935149655832285436004278830249164705650375949588564959794781851031547717344647843838384968402639911081077470067449333562323420794994634151906389248887640876737603003119319230557610735849789025184746466423941730381042687879627710903793527165271768650739063004005141728477178157953347779870604449608974986647683985247265742749242827418378636286061342914242857690357633443727606318303611864361548362365561990404278756625182959077529987705454726346577134719147096571612532067674408757403780121472361642761757274686357854000538868827656390500833869192229670344720918834573734004180364205216103533828412609196085147443395526894292521902341940114040879665737166704295310930690600385910824480689500499324332566247702105064244673096365331261479220244214476465595883559472407493652922704312122241170843982848955449362164637674638768158775757618881029385307025053714371672114627611248030903423499186622327291354404209186672258773637547735664112308347999422541938770395966718463886479832671068093859347814705974300611527225389948746483638895243856883270556188374657432674600349822968704259399492902362531978045360358980998145469950134641247575502780035351258495693629817883748755972254677744585324262824879053843731586983688370919175447439755511745031134171085096605237369150825348102903827444301289599733763281308682639138566247261971431766627895097555942231030335112517444676455497368732113808844658908132956063148583397535698351874631714663085946649856467377264595508033471662982411075932719385798798855442333669817832364678186570524912741614988751332047039663311953095800379989446554728666236840263792835178151397670000787574222964929551743827875974491221105499974798801459482606923281984287320966239245398036623374174893137379187605139657515990775072484352201884176681704020532674265995181872963417242028608532187144069453280729734037366946303891371694322874740432474974936215623046011447574626163016450051762635079418555935044834790795109119848616375120340437593330109732648507886691897838262004399375033704334858582348757140283156228964237476003636517102433437759294648547146150834311113213741494763338925302866667297616666962828499752174571389954525828400818046262075227083437444002379647423447736382866265521361889264897626469081107838849520113206122748732305714101193202404162153148389247552441380490139587925169327088174042353121348375837961263178897254409189894088804516279908556795015185216874714978148954551095407101334706641455447055890787249314134072885198958182603967524654579828023427461767186989699445392180644404018824280557592087286665382728892815508417485242276078256553023322281116674655952592255707597624129333694229079910315071449655658470138790010130419614115168374098272505946691827270623427026111166677030678105746106021296314084104726381889013443302026513359350085675803415467189910107789542083243820779002785214428334420212379289205967922561889025328736825860105599456018483393542821507328992415791634853801855105665100054719418465736196142499258793374018244501419171463916864931339006990415812020066749720306478628975945275787474433962078894330869472774999807591962589986432825504520094401719285604417902611772680304998979616200252143392388643934085053751333338066370802387271730937117927515765310318703012408982721339197452062247977148118997844381165948572905562794920015867479231268676267996394481939652104795498607876766150562888072344605832183343237611165764856738935048201107648858519167580288768775983552564715010697385454242577635350175908418056179426724379141924988539176702403072569493949576610210356894776548361127810809857071069005636375427076798935877689373385734473977957798432251656377340630134972859529317530904307700038148829034128630044211517374386010162075009161713299815879746509132892183343851041388226503417423968353157588157836091951737534068993983233965133713827962821693882214085360542629855834289614669479852213822053736964396549687021505213035075492212912307465158235802327609209033523086525912376222654362536744063872833951897473028626543922429100808845815399917378688943904496880049826070744659117372731597542896649292896819442550329888033539561616443048819345961474349449789886722921155611639582481362384497795437671291971553960802812679659814084869467434434707125157604757878850880660882110810632394786917597631956585815066403186400004574943834367477257315165575152353232384691578527094810176785712867428110529361333930265050883889123927365602152516531111563047494696116619636300844206044058100678196088470011111441196581900618725919784799505620803780082305204423197919137420323542146891418747185629353773206622955628434788132386548418531330958777504404628402324243745463574257296716904183949019309071162259188039310645132797847094055104972167745057592800040056194093876297731003051544643438690719428755844693719950544944150903613151327229449638075217315070172828653444981011786466110912987589181973866250327668735156984409142933136661055653800978274180237827334753337251552964952586076827579526268613885927175281569272866009574906877456519583944709118213828078830744546581028006130069479774675577361330727564038150781073686318405511409858576218237172253105462449174559357915121138474589284275104073800990674296729647345369148262476569024552043259530956403314255113207756446960297546402439757592379185105449953905743282797353810997873378057974939385694510303411757825691922642823909850328147540255744672090465862555173580867231194421923052307519315198592066683181990551611252599783735593053106830447609370882123802182808647496415701961258704209673293247941185423421304796042272977985911055455154491437443253704231563845155641589126815933496212471925034285206561747384687477275842236305953406458480561235122990640585840103922920729870672806801931902423778953778992374946165644976780616006044869134074316662877447867849391633327843197029555934155115985354105632441131755580433348537410163107366087796668147381487240119816595860039278990650308437512292748543935573639738415778580659124444192971582403429396921675255899926809310398689510174111801221791134899361497580920814013437714287855048234489897050923160376630289620819744814548186105359904082635016230931306753595751167619350802878306793143730134217352069468360623949411145461216711421698575310178875214434018025066756581032308363436187666771733680168427771505465364862642225366038390202044137258599942941450051146447639468799401068909470701401233024050292001571328349240617273841857096500850312362127909334472320256465855624609242701636969532053373508077609620590791387590699727518492593859649400297381085619427905405567860734590747868191283363373979868113058297530611295386853384116305451113420638020573246429238772031731443743701056621573754798014267240244199761522913848813303965257055281730751708224064546452534401524098785331301347007262613666534234302841762871681622214780853335366429634876867925803561483603854906851989567841572226363450031054131027551173862845675826806390072145774533625948873180648389486000619230888705669073704909813704054059884079350500617730049205940523520205040221656637803584327548685507177513767646998652780308958552137546767176534600795016188102708504415611980300201059848024121262510023148058279629391622421703357859185781859584031964912735980910657131753777950622137451522379205974904202465419439456218820943621479737352844808294643795944808005500591219115619056048917946760368003411233589167483421975884389088902617222080588993712094737474333681829736501123704656738468685532562580620689424729405083690590780999064037178995255558798801862991735539471185930237160216723709655445513014827927207420564483462664617877753370448095675102799054646271083561700414948637179858927481637467064670314912324070927767239838053529325415978854306052158304871039675133873520176249215316929945443323617228555226918437688864582475437057890905661846299170543416739987583900723462379730317446904577181577090997636225988366622622961615294322414514100028922667202500961007511494452843315787880133019681980174038000458281936843015648254469613307456645416379624430051477485638878594687203288418986486418376459879993762142811527908505618824645180551448431396265308513554972241118467106656858237130832622923259333426001384250195913521398169529003027844313198564946570819819035303589998636772245800734858199393091016789330307098602198608222782206329478255454601753373531087469096863446018058840908943061684178778493822487182671791054773381223658786715925389620462349471238269897502758057716876589243569510650076530558382814925120019728301033188457183839666872423111812968832709729941756081270295391954744646359989220561214933157190929509879910662904920777782694897142959096675510636801195002141177520696542195664589904978818783077022345090480496759983637607119775425277105881432425961899271415658477491011545566105930756456140432916612914766958487472786477787983143031132983981515979693266400927398066066237882917576330700945547321918983877254776159231398177242404860886859378233927591138771604126955697877925371618147360055492560091164755541207186792094073848044176032321455109365689995769873974034409010498628587486439764049529162038771756704543694012992863817873189807125858865712447114265914106490720148736294258524860983483708171439033726046679677590503998069313342591082888789554841283035258316026348164451299385892071190613682724355203983977297998690619476565107394039253140936562030499841627428644856375310747737832914406312900716383774041650629079144455076079649783562605416799952774888980153692461474663372506113753198635142312573153569079351963858127426527537053728420251615278579273416767161284591765021519015013596134189033465576433285720725049629049958466773002228463498403472237933810630248372202452018106910015039121555189222937357590408890897466024215524914852230361893376436419871242222724358011622920588022783030701887740961855745764073416218177057271026145418540074098259156583890671750680496397150121813751635138167300290088807451600492539217819948525603871675860349651704999895487863759836193336554247647222733190057861188201861797668590166809687509471686474372396473461041693882980108527379420781195653201975304096707571139913767586969808979355818641968100898955199354861865680833458382985826920402889105944754689036995019649337221758093089407054711205932416081725972620627869146921254813770831460941961603687363971453974765798860262568560821742817487680388152482888073692522293459543818197161222978160073792937309160022572599193985548339334558955855757458570708858236643886588804612431058518334379265594944131723107858859360887434350054626339522050700573258466511834173418638752141830450699486548862131035241802487465371934695078896486069504777466543149080275393909745655496198819263241791966589384778742351981773328321745836928838173459277367704224305199027001124226256467427953213512771075958281330486069326506339275911630661399834178366500685023379668727207189455838805564785452746207279868064389196189455769565923146707350953973989893452283615152264387496341599791257399916136154189108882330131333829071849269275593743402439409682313130138899656584105244694690582014436872250916979346535746563560067027377261623673465133951533901873588901798947806347634481631415823761075326066996795125115532240645549194702194890584376922177050319631529584108918736484477693879780968640393903784286347456049474951579919839131646685347031458484873274219886071336811929731943849842888421552958547570296151585002869735806291141284634693869729117254990919668818891294027138272179362545150087568842419386086681172054032806137176601542409104066007251317771929759270839996738355004394067176358636130389586895839097166363505629250037700107966338467937520554597137020614403665452165212236080880657751919977249878321130160161513274333562476152176745338202785105375464263518395200371863396818456077491411462800547608836410447040075172922759249575903395331571473569543140547093921884034028093160691513992369072994137131847760129583644316484919653735298678620923528043006830261534673609848259100931545807161274535611964530931506614113486038857064522680804229766513435296468506274054978637826789325010095337644421644886763257528748307915294081800196539354661995984076673856009733381743448453695678430196610886376763487227646606794662273353900917933865471249689523672347253331841745467845837387758543732519044393110392938487447119193533617970280571087732275357411831022991243103133851374294289209642660973231221404102505282528733822892799243339244546594833474593285601788728012756451035502752198045143998938573689972290929500820720916619055133756290185845157925052789855091956685840080973242035368548559157499584210883114127017466624899275744315680081995987581731083013511375246393123052651485965587115366257650650568364252782735310691064267298470219933932865875850805833522526911947060288149105266422306335380781789110269512888640070525373025590291390128003778999991039854953005492873001977528606421421575137287001774408890518760012702286877430823609398953395123739540948869768560707239123930934872787047354739013161025022768394875598430549878758316859277683883875921555845405032027544384009284878195858202752902595740259266458335134004624580134326763999138681420627733092629463574137967851186391765801707419312134363976822314199509280086792388100995746127080840610940248246681722480625700262505125772819423059406869217568945586583851746657941225395212652057019892596968535074241172805050158635100705594555653626418559522456921765809154737427707066277664145260256995278624203361235207369751751193075409149804929081092692896122653758489473869199090141912120843172651656079242860570604445469443318864974433043641032378741855520183022496441701748718671356701253411111213346609746949172191224230590314280711339816327177680457032571606808857957436674970057012389842214822297809573410765171875787887263271444279003417217793269992040236929750490519009960953443259238268742415858669894171815934842040765142083753459129092521166350564619650077738272930116621360817610798056276791581315330419145623381362002357835490828763924465645491294483283323504149494211262440155186338535761763195330181133687259514554333866625558975876808494263525114663856210794546799447317340076984147635915427286496384475951284779997861484812841388104588461149553844400476946645235997228557579089442199811409526146721248655284436960247243299766235595451059490003668127980345548821930014941502549348904505716669560892386172153609279419941970709306360662905572392861380484601727668846332579235814239652727174264481083482055051017958362454684902105009071708046022276131813540414458941273032963868612054536352157763369000540981082843285413352754759109040558733263510149962139413015019151416789234681995795357524760477945333895357506817444430060023222556537221416585812290488282976070528918778122858527497767575441682571148552597620940434339526930840703312106233385001855837596689628370219985158886260048212870538344168628605143405477100838878092647918375355578790279846983050267721014349021026830564401723327421187065726945833422375454793299880654847250980187779298705051027948084131917882927863328580988787517052652836301646122747258122955683008621268580968768017275909044830289124118863838683587576538150754105465501114638495912702828183763670664501769044730340946492615991945266748790311695232955173559052221437743432256330945645121693668273602022024397410835029413495516628044758977134331426976677341754031227941441226812888948860157999054239067844733636362873506235031482825957503200596205827794294202350712501325176213032695126595290823534088289210946526760989528009411611848376673273270030665608139392049009269593293234640438606708131589802726435108018399133950136705092899544553754725419615920269944264549131002008664961762800970744722061079880442739833400579767759616318920996851685498040741917474599856225946991201111558343649699267572099092567689587805532069158337977802506040446258208356007697795204850559271590620513440408382179493959018577433997251274064607557561378859591128596651572188973128282163717660783530024878620190099863706458074130684922072934611558782137275191879602355090161066667117768060900681691223205071058860602574999292600572786917369608113117965033070346717651569340020595216210767218886425203736670268060122302506383217008865769965041530856624550525129893615969146168821156552635830023676005603935997294808119867338163138702813353092813494178835438880221375227219645082586630796677531913094338231856400158713861875155239323490457036753071435544669418113190916315110273144819397558580177214429191689389980342346211215314703260691944542609792489485868580076141650383061986402505435457419530846941611284198306357274910197563779255782760472552642827003935774528728133657555731007808539959555560612841196433592644043278241415903801912739114333882893039333414764282441650973087127874693143442325873697260085737408426308966597507147297749900596660534003924511579159912839054232522663521875730018276423404235830077639720674950208099887632753373375216589767077080612028897717320565449570189661241616211986924574234068069794341778149425267848842437449078975193473132891484342812307291141425455909904316054627169287507216718741994934747147873137237728936980851708301857613412081573686049150438828890384578739021541197170056522587076497112205288141662717858617983223908357929503784231764510971183692509222890310901543989670733913438518377280977659385163767447910242928575158098798557972923359401642640124588238892719410724916869672263294963165831611842530722210975790014554585545473262786274682451610328715917404080735655780944779207208561329815135361261706908070155882277294552728522257575552744717099030771190130751996236040039869515388591129429263584743537252449074563821606882314144034734366163073672769096942905641392520757602467742979562077746474419280573661631070575790771719864559100047191362729703223508183641360708939499805604754956224192387341699152162247845139829015322668333352280805937355499463904481699946450985708547245625775173444138763974039603476614416803721139806385177579168809327783226467832081346622103662731044076470781423811138672131236485469470425567378897854504861519248731478683843947488355705554455020916911381631657491239565250186545613479684139485098417244570879889737766883342086556515107597439493650811700955650312118938769018841717048940329536768759111835598075618345789729711124315905332642304810794440938298400046218031361408419997062435918379957527988786068474761351799803236733690671940054674450802359810408693362847139224813967197942411183364069233388564137998280814950522926165919016004695203747320066754694286593651979327505909173727217468232542602238983369394861991856337198303592453321256223653202711585182807277445205579089459051452501925073346354446656873245533231965648000744774184458248707445965970850076795640058637238052451628072479031163346780090019520839191203339847881426829229588181998445881585270156402893857259219384252692581139991761193397370694398887306925993272860340625541336766474095364101880570245319112741009203149856181119540200584960092172201184540297983600122702542106198485745518460330689667041157692822483155685528132710037459030886722547001351563650152005264198231807061285821034335541110309535457150448508654719596501537310570841682695100443453982773825183553354745805302275185918754195172788844019666916633533293878322881183344621910779689444594325784393718370976263708299744599131176314865101614223394831759262251390291794347957924149919637318002031780101594602300838638704052303102850374394069872594851189916547532037415355927409096436764894017036535380190024426513601508949086906174294752124481739596260593020329111581757359998187392483851939310123330185867712151571457353570658549193130663333204599180883295323494043615840977998995234318668423590810505453613956554426925904379706196130677810231229133966268258528317720119531160856539347053976975465100663111030230818018394239937876949767501848722171853170051941214979906228911189936611972735929890559677329064836382676708416352954286860107399888010778033292908846607857170232404360993652880510539805736329136969878210201854959798241673602738628312475884639838458801847383578495589125462976192158062677543837288658626040413828946661055832682280005605420984802548605847502342671927719577751218540119991709426630158279426190821625960798882043905207874428929781485912590137842403144973562979152309522655911207271655381041996408848273661066147591938272799692846589005202381872169892356569050232460151188877761563900002337816916847565940185597555185312205591024412096025571922082262353936806513519626373542095652947415520909755472020815243974231509339228858394260802824187369907405727994682126794983737775309397413995041290264797926740938065975264357008504630252743519255974762492249715667619255684057426329344318230587860059770581706299535420615732493717777381392804138203419588131305557930571055321723189027740006483776611313478373948150324356116822200465702896564004955191243115477082479428127530357846772691130736405332257347478183062858422873119407611974253488025767142135850479604445515031453844104913605661888106476294569087769538660498280625874553211062111884401146906529448333125437688710871545851566102150419095306143595674288266836186272029630732447885530532478851004220164862304731694429889922217882586290313301211511838978564894157701191819396592529815211950284498122629696538406022508438763885045718770430978319568998650276749314649934643217203715739638611302200984445639199351558082334538042167163654785846251903713513233530910865828388592476484761683080520056440402040415819342792052773644838755031819858685523103574781926184312954930988016762664253898712168703353191103165298621921792538277118089298066766288363569082599902618623399043436632986249793271061537132903699017782852182718748054658766354622602466815588524844038867873688279115780836270310846365046435947507453476309901928566641515428013371631884696646031950229974802435742107526249213218130108080392104757602650371429474514884588705475082553176778258508306321654505777446625726851314557920749207003700832282396564174683768143382509321228812549149700975661458683398601237560693028792597203781901926435045838118109494271503162328825795844699244143785653075603570015504508732052530516379162491461052399711841308410794348994538810652885901146250498625461904292604011485522410891516826211471734371580705825735342349077916371133928123337878078648813564464222071313238877580604832488641719275837447785154143909001551068525229598517531644382380126171987908874335772268926173163318327412642927406005420645090824513899338168737781198391602947767909605120030016821941740578744797573724702201468045921982872576495669020062977585131381320746187846269579004138332804357781399861428836170130504879008720592021470815614465245558147148000088211910136868759418835935294013092068340014828999302382243273784332381769891759394367893880139371188137623071153158651622652550048095631975496995221164219520424045074765351665878866843410075173896322068396619102083224351157846555825941751491522410073560928068506819544027559102372966777252070219716061328515682439363657614724575665686806704239213305538756051794967702350844227380899968744062473238385941944396317518885968624360626101122757883937704516991792023427180868105934285654487235008830530626812852032172794081821758024794719031676752993378826269281471879829161583680837466943318877544193515270262501100376983911581719771239769586964291168854596366233827052156563376544597285505514150980039430595887022872042194795811930046882047452557938907955439566719241618912936708371136787815746273089080096527899985748447021209042581337921057994130662565708469767587305244192872518678816760864645790392326279616866541996845375433818608796548675550996163757857695979463226298504050870847146606363660899307383562880078751630748432234846341743686772322636343082946797900849945961282300030863119637097181351354810387190096874407857828729284442465803291053844452492075127756938490160906803098619240266840903895304975803646887649830580193609845631328398358601618821166598920516359392916998702630416387882784003381481658038926894020686946787656442269880083152061111345034825109622213715662222346985395168280004002449829326847992869831491502534860627434945185085052414331615979560496597006841090879062829965572035232245193808355814338994576026446074044687457678438507604449843920384690182531043416660443403011539396786073640546229587209537695973520422438114237191390345547116389974646181544883738811167820918728761901611518110106967406452045541781012743681190011087209705343770768055967505732824553759355980785370846933747519363785925469208527629213960854869667169748159574070023172759170223316098607543267663827835511294228103319844281685240066380889577612145575134982105283434720918174142147202828980030064010234133910992068962439282867262853218109902175274506787513866300837440743348830054395899013771061808284744365092331919742779825531370928077927662116231335387776146932069663812750444350667753115866162910607296951863307031915742505966920332966245398501467242181525015708718257889799895180410775378585855179622709877448644344428172551566848066260766084735537425408723990823131487523105816714565315389523881848964433307328392286860209687754076531227293051756424789650572989415036984753972520198970898612722041816119232244154700883517282519623630178335276661895799699363618420692012897417590629031929958384330093300399502434583456156972326739449345742773577939632251503449130521642385129275197369581034097057498148390358934342063975937995310517462842064730218456765146233091709730601107957293849009650463977287984127663751998929864197873732000338193760025797111527624499298578222445270994745732579582419282865438732887647201870082662777784020285891285319234247290152426176606054658694540548312071764741858292154683375604056023706999147713002331903487704994082368591192875301587398811221403623601133327623786946894439278945150354573470336859547553439665187139116420500212660867006737372947137304402368031067924426208429280516023364421768908417999533254845028283157948198177004917385710837098422250905565583393285701330316252537604780723776344014940947440142469232200401574268800295888384291931307765538107014908836489117755149911544126996589520690508421824485329646760241036500496571369388009005240756720835277413590587009188415951687863063538666217618742240148449440645145663865825228829766641498478016825007502635821356621826009608873741560058887741053800012299372931768270316137744358532043232081898831302077836872044077830215813697524264189891356549340254545273452671281240628345252598957196386753150020025560661001899705941468657259541681753847050215262275401646622709162429071054007221584131258265604725998170120272427420179636987820111284956846435483831264459107216190495269584950593180676564446764673390356911195155450712500528724231850950132566531015783192549830238040985723377355076170529958011227162379342352868012402831441650685572739438683058746006461480059691506063316776877788992458378591963089627377823787807607068315307706458078920077623056606570789766551143150366227756581593422640541021750961593941520760954471151538734918826456767062104522446642098251612327910867794285022724752234386925146537475968161810440450182486663594294265258418270472574065868429743450167608221958325199962321560136075024259711482984868408726045276964290567573257267947012175225378569660019531101269589738214360562805817442850118014443429013195959867834704942611687446800968997809390432429233153305701073323940139746928825832337459481581357275265286649921643465356722787970518001848621367013572765124771507563960879336397757514360722830979124832822581528798349182493136821440104925192567224819731024322781400748224136215598646607889444734597483790707187514565683699011054611946222944115484468083632276341852539179395280750329816248337889267530904654462245267127820868622295375219289967983106205261465367852028914301412532999422593502813169194546831690381186191168363866873144083172052532622809024493417066683848698289286463655680642493456166980058143350301499452972299188065777938418864945881312230734064455728662615655403979193690914002591625731546748747491395356370769119678346852668551912277151949711157044391991753883711252100456929788297421188096834859400625575081906575494201915624291018140560554337015634124407543926553783069535829313498402744428488615071256898272045907604077972665816548842578355985874059449428014474863554058293507480221386881055065082531731897380499042962879723239299497597215999917537157941076183987382913387259392584365723352862553582580594480818686149646555641326589883635649545700483949946067523380828492502097558498387034409879108423200526866887930129254816606239388936390791500060433815296475561278368843861591045956803069906616160630163931469842685617333406105688063323691816080827223054083609939976205414544450021363555844176610439128443471074684388510562019181252023699039137574382337476674067657415840646294496257305896605198619322269416329273890135501726112831070913687675500016383215751615930998752371963978065413505526767119912298229883314583041441757373624333793674862401620919838786902031970076827137719917946006335223944580275419344855414558476556275449397429029452894509711646374439476310847051602740105503719511425890088973185412420857377570296598026891791995117395646367938889679421625665156113641588937145367116751750349877698905489355319887867135817314668994976305898388534493540587963358989593874863751573541394690586571791959714714394042977964610261231221252740083198748235317851625666257672456752732971809095581660663107046340068863577437093411007134583031823659659003555180316179795796118131692048164641451005799343082011587314617681034139658754741312719026387539467414600550855394085411643014546094423105082280684695072143821804649682842781522374293460293596002933724741085863987852502786136814036406516327999446143330995862207348058302020832024700306000833742973478531192525812499261441689596581164483117898825558555259614726674058363160931496183884980794958836314936188790361323588945230203318930552005871261798967233199857284035813704301627085025984884205052875109900662037536549972351181256189573420536606250335222956013350369019151046523620274706187587803819291641245990594191747401949119001330832548443643407034318599774051300118913887690005458973043213669902239324230483012530528588938632512274074610832909283281518531151695529439963414547547859168992758598310250760118029018678382149965187226534535707472814473869978494212933042206212068167585908894855289495893662973633357100148804663261584975480219403985442366388532089552024874419175360857504206097938031920549765569188730887487322796297941409137667152201856991652396278862100638392720448986032396647249682608371590247912801579726904546047604850220453294095660133922872386338207640678452010383672451204093613066608121943245256894911226604092187745694772685105978863231920780297321302862116347950109222906354678328367857106144373963123309504967941760286723052304934014029396961088726251442173938434183479457612487639538284406157358654242924175634737234338917349837765205842497089833795256205464851206378087703936626633219083034950783865848810809877292768730710710242593543811069504873304328197800998789029321235232166779065745590563582759479456318665046829488807910442270725668256813744113860106720959334907866448866524527346480273535866668072529243085497691682519940899577715733189229288704116051210836623692141164808148678005880828488310468833751363179914393024510567022161046954887464681166876920546559185965256398584494352088508606837163134193977259097689095674292434830325078734281090527774956149462093244533116059519468590540597786007945257274283076292873060165688282166274008745349618099780310112598073646275312808817799078331104741981544406687063833723720791580893245505303877713320805797152558154204696850583044414638416424378345419686002947791609924493933862812195984270614031923651078739369833661930278872096662092731310506347857091752999413431550510346685147261089992308777054024878446962507863484257741462621123518264318926702770573444865204692913393039452417567052021900741507864070839582415232039055275538661925118321427406066579232001293509936675190787415782915865849195918360929206550894537847136698485805881303473108172142869770198492958026676782611144715958521303239699201092880577762035996738010834447141141587750773008743395545593390054500497414417901149367428818629974650992411600727651246037589542966609539411431199436447722304097528808399683554865262343273325454014940679579579631799838070317984791466972829640438924687574790280497918083258982778746548812123271511914841724487818230443354361382393004376682697073228506712611905838393134971252498123962407490046637552305634179268211949513585520295184921458047625870779444881760897757247501554957091511641760257610432504028867777009095184687472705429613915561309473438844964130849498164103997372802307093628115672270074327406523092280661607113317715761188885696862336047811371904928380268048937574504141777743751052693929100790597674148603050250780268400703601249130261672670642132966916897373127950398036944691920513273410991556578394838490732712788916964004643261691546201446128429658440036740340988265615268417589757744264300976136963977552980635144173380112897205640952212095907760001168487452329432664728116677377642859104614007556007385389152578456989802348866688454160646611875849586130874757460863306613842945440488733890631508022950885552816738644519934859936081409377600775241264019952465433199561330771483070189594910198933076182710456240030345607439117349291675413401955050800345804247917600594529522831797606240609346151085489113736666585783418359544712725326912828959221546406219404152145874138955476386906039189701180556129189231284909923875116548172960217003397106604950096864448226191327701424606795766784920661483816429776272307281893611430867804198603648064787744684096684805459606218611735112576166639398358868280079262039087978505391741590185206046182917814467147647163297505944524288561410859118134854886355435694258668811820774830031980808827861099295666535346976375486172053739720405979806185518234977197833818962263464973403609888444794217726677987293961456976037013962021238856633900276927141930576776871133815577985295112177178902773343785194542374325531356776385000641957384740897726362100907415033899569278457241948524522520571569068915788250303645672860191893554826503460948300063300450563882963196293525739657526956798351401672623816316971930346113183133237170440755831940301507653889435446946855306376642004578901389329563852012262028582703397750094483675877495400992435541007047687556450176612235226697540732379319798735019431002034077375389013214532030995885410454855831904846517567335566198955993961873690815928878783316749105190987777208955199602114609697654824792950710312555848509829858973014227564058566675406740670065949022240632967409491811463514863484004093980652809522408432590602673263024446546586910041078072473663058992060612149016972172353455921459426890683962836301507961479981720917399089650071037870385190246772297871238285253241032027580709827337392868303171560461133186559202041908311978698576312936386428933101579593554582520853864678930983421194750311261453590802120756571091187088859560590352643626143281445270194472130376370273157228912988645902706273077395290471656968928343372807357153097331984627087337966288231131913051844830028413270144353308032242334433137422329082275474456882558959410566061130832801926780294282346066783031138344227885182705859187507935195467675416129664696573520432963969495994401094050912066503122032908388297643693113978100680556655677686373786907477414783218441920297751664979765137892723222104566783453947280190077203248627129777079210403785374344198493530834609747798261331376378027741472657212115782402828131988417375240680480931882017081810362746815871002267919944220716722099685360816707354456874025155282994317037398588298673247208153145388066761750445552937946338023269366643819677361769944661877268532477204729083581915049682939449546603268754579426459420339016641582061209715899789436068663346674837365156583147447418930664420347177807298547599299878165893875009557152344643486291294275209942154649144952320046370352966827718808145694049879507064648324221164190514963692536223417852973398322457064125558317914887437589578518625581528489152890576173541702850464007351338555567742069963628581305407808311321065096005201046023850454758983223685573596121708674081034211173004999672752929766132092729389331894515313048035664776280153778184244163455643657773726143169015602232722514506206005787600286704489594943420489306269630636362680130062253131309645667419257103416361666492439815045589375689662806247033378628703181310546300586541132898624689938944078418031806468791602135139325876293486487580302138147387513925683657238008337955692504955283780986871465919454006537310295421228522666592877382419591471303378741161912593699901314956219831823790597984673026702072199538543829390590721462399657336055231658274742935553735065505384193753783533813747149643678476275265081222563401384415497857678282494605674169254842037777611430466407451992234354547127425960293676718306391029353574382953576584103089509930302363280027468410850506495795016298389106846479682867778798354709149483025940956923815489824159483442389371968917976082793355230153490744298880436158374498900259518611567187626850245496906689983068697445893624717016775944859566969477724752227268135902628925582410764944902089521914480281366940680825878334011518135077345107714877668461309123487369686847126524105767512570206870377650304875859628273446699943331052182942703062346489925580243163066046118520560546184259809354679107831634231627448291011882570572059800203212816297473614035573443635147714255994243472146956754724157403597310262679239250317943847686764182083246914086238921957359340084998468509143839381554624085329245091436141230937413746129944998151947197541184681880978266035603379325742389916177916223170420332966495454127489891238447223328966477216600024369902484271323731319507932663568832447297792495670538653986857730798151038478475873560752243054806569619539799143068153493375772003251463040818007796613870444401612887315201826460545865582719837164047676533414499414344985275628770025304849075135528234301114543775301373520769985669198516824789811360478624997213447270838862777529038156192363534710074154443270511469178006289487815694345943491783474882106217258156677596195064339588261129987976748242192178050111606369006761254658193862693766404823240231083893434283978720259106896133323014998818369083889480922449449190599906049901297929108295817368644942113798079158267652299953955994086372917815641503393514634562310435314522284874454326099473321877183295510351602465129222041723145081560375993205706976718157698130288676858471055657233718144362175328344246434664085543006503263508497797535394129536705035150096135386901484965813031307316449578465429220829106848642660847685253501920610566037256922204433093582566920923184624438823181664326120782015547365559753728759150630650942514141221786564900317273572041434122099738248112353496268950373531194296759977839724347758004755240620916987946157713440750768839523021047177185769728788937126441863518260002471454074873455275627212842222812784671842402842294196257801411205057865137796099168906711444793567833175826289657609299709723394001254281124881278380459290930055466591351703951261509290909655435923018733019482806124724415734460860905682757045141078041835830665305153122034296808127947180696902584219297920574717429747365209409548596455598486967179667020412532276216958088240316677479649826458254390892357907747449214116719064906082850712168949122329826754408575595587524957394080009329533853306450792025136106583069462362747274327759688219729979259571090461397299363271517035080316169577526242770554835057030914332288534892831944322341632775446449759675032936669002799319953762270728987174531333642129751160478090617374700571859105293142701840915625575617861811974387484769579667399634274915087097239500479284896547768123477284778017017268897808651766303785976487827255654384095427155048408596910467217474754483820470580013595122208260209035715976406258247800060269957715706078509924843862944321906299106149664662516766580201639851003225310983259126532664851067146699307808070421468508761387872216424845735947397017121310061673896434276423274629104083150876938661712076547701733171110604435421583523965942699961650910506769542613402415874400077719428554397092173373372343512247044301325872621223098681432039837280582282061158691066065235682564175890730615593625392357005835924333514403807877457240479647683584939665736608427844237295698617199410169186712440621669215611506260289739220146925304946454756022548687631570375341588619438950683039346496885280288337491991910292716114618538454229934664313675164678288502259103530237182363228720741231561542227781928427027736883906755302319171423623612547029051505425778091116138730661062623919639165220543992532728050749393645562324167734416802964754612074856796411544361215618221282513023389377423470397620621195009102477078332616036469480742587111400264212588743079530761093345545128198570806943785581355662519801276066448701099848107671630269907512679357580151699753565716062236356006183191785535214173437674477266159701264632147855266938119179050407604090313207174299867460517802214757040867846481120886476206039051607006390702095821524378415469189326484959438494395360399865551702351380651602202930853967904660062755777813254507659858547690605971277874247329962562321664485046966048638212779983499219460693992113974238536847182967833233731904112592024750238604152898921189555388218220308671737050074712401238531969626339321157990792854595002832985793038879806641471203781992187406644744756475034780295655472417441722483839224521491649489297706813044650002620692164384901063243684161066492600827533082374528804175131792258550464747012563616311914697428575620353345076810041406374160791318457370500309018912020490895487301860380071943902382998577650751762336775065690660040151991469623454993185823030375395888741744804649212771632871762375114830342525085700141421459602044660510633617981434054058187432832291699243921273478727359380447775450197864541478555080631025261136014331151911406703345145722804124594112197589882960906094901953238863130542229570391749815660371242517548280133554691505081280633432655716099507366722339522429714968091562626244338311380704996121174903430516621285467829521311242900485567315730466717908964184566276281760813694410780781656977391703035979145004830395415436968212191301978462253924135473199716758179221076092492844426850284185254234115879870855468677584318497935916662207641524000979051671388079078131300075502865752553699969392942048561687962426502895378367193356691458243361002786164547483093070106433188946590982770162403615043054523367689564483635239659164770125783487863984846161636269945881227362258914051778209896163514435334210290437140025481222562711955553246257196223975039375855376551742469433576545418765305312037443554558081972647424499126916093965341666407748636935663407277824378258538011289659358101702690807073400869025015237557345484349696093363555533470344439973408678288766688351681671076351763528198461391085823846346517665032081370685577007589380381791322535565717627649869344100421389136286048776221432123087142783574335812319216575861126430231453450877463906071267033137295542004735237162748917693969323783222942596617762696198217385265639317322144070087618817199851146253611003053683723889050291871822179055279227771251431519853069273769984877445293289700293505454952819757815062651848524210523372685350580235273238664697546597471383808593096735198481713717580848470308427942413828423368258126714593625149153797197857501715514996874765212197386149950469949988524582631708096237182691779791222139676180119396798000041809855799401410651773229790771943651941193253892388259414668141225396131589786958458830994757403968466641110273817555090325594357403489510480973012093581411232762494500178502101996496299390629104641646656034328048246572994068747474731740364798003895109425082405161389448242499327947899317550326304750933191789788494789811369127375430882056973562721098517162626857320356671557564110138471248921927144929278822478101079477379504472915067879447065109265762094571978381080454702565180007572792640939601800618197430177557667362360915162259296131105841339069798711002305077095536902012530220446560251324313842024709596976707633737280049571323181264579122666926286492440532206579014074110020317972130737339622644019555096174884697244068389131813963575305333894383995523377588488370773906414080469855045914603956847828177498216585152151490361075985245704069813860393932995527832446416225294922167412602705323768913961754001839607685761260476428981014658778709582032919236643592898367672765688270722788584459110325655002440424846194806741339512747983601699033749075813679615641789497963497212112953773727450234924914392559873852766749170886345680107968441250157354631178116791293756225573295108979875554840791519886649997978424587309146145675408317504054544053590629584915449298306944065778030092938812970586517791210289342432595728662834870390971188620078141369324028277887372484574486259054704176479120896179549012567348581567909445443136628442755340821661490236533882577022006489625860043692064705845770637714668276625212764061750704811858456225798667279549172524389787777930639742710207077323373220884059545008067779044602006410457783721146082763932027114471997014410906196877161365890397292669888845592894994028392187456704321388603585112895365208241560956537878020436873691685184366322350974563727611709328026681120683232921398137452816016146929930246458574091753721818825238923334128694127780367634502253254449953113692284624765760166064075742155768800482707280200817347783652781563885815428832846397983879120530495924136255751227951718525462151231227852822385240557260494021488020580908790999787109329382009801988304337701767610042669121864483346237855666094223313149416800581185942988358933876868085229771114600386905320592258289893628903470608316154263057931906703382131657778875679309152730830313016245161193148020217753333912161105105396926127248722150897901371071570871252243600363953251742143565418175964442304085453143475024827949464501765522118194447025936044395680880725777946589155004873594536250920049463162987518494156612434407108976367274890303906380764479845453917353102535855207915905277387546288166963818554512887320994676273567080058175767606112983228023909992403270614356128828691121129416255401822380853044578389607854286250045449744324884977008534032614628767390295826473701124718736607486592913410370762443003037180709830332627528980919625992202261648505922169982115835924163251005794857346007467957293820010849136123186245770613260162765935617083106429428619112790606883250447087237183342437733430549233187443311426888399899391833946005889388917288577495405105234518296634292447559418450629423974821553163341718652758576426710318671935843321887386578684389646240138388514811783055798307886011433147080569070532928973763273406675207404655474792395614437210450645459531816444734516479331516314300934979382893141094954111576892387176383975827780167930752916690291617026667416163152211572931836937255141582185112522533424654845900093405836759119265892457565608988429936901971260556806804816826691930602757678769977350030738584816575474284146947017960454453291162179849981760204138095750497646857147644669909530663745362363366051692554325315223983228856882656856126509388602972692699027403455138303212689668595663441633929170595529261940028675486936024521020760795454417282890358517306057062016998460703683378272977289252235351244967971820621742292249644246604847425684087124217114126862418871857944081102511724934840768626023012821908506923783568797086997086644739137949743101572935696269886020413618822820606029353932942015707876836288018737950332667836661670428029651240983521832166155295047257176668853406363462350917427919683904786124500782529785128311658328407115126731692998586634013349519355476521646993485644733283207921596548934897596196623809145658351067972159979067719825356734891625608255682014189310551404248847091733335841554794171687630513986583290507496001101695284858312417233061114592265214849250266716310510420829567991158175731744698960741802682584778167790079146294959555721457119166981671243018407563014474950022060886846071200093106495781361097128887777077565541593877203643434574606210995437155987048277751741601716367083867014022769470626953230090815677960884329880391360293703118447993079976148211596041003285714947962738346958099604887467739210129485524926408601673591569626991113289789938265120446078273067823767342894039725505246542596452280768175036801683279388966847702577277900878415465690349392628522957880797716803984355810306288295126656987147092060844225712034678743014641085557048127776620177899736862627192957938518309499897496135251654628890454214951414583664973426890547612156450201408118285563200767528591056325278973975913255314451029508299123185099027514381670071224579457203837781658301913159288434341172975200795643098955977960879966725823072284050246994681984836667688246940909817154791914439684310238901618035436608187568997084734847085005763321758419092889000100450253135878265358822308551207752434928038570215253108073981289671906322099707517070552597205681802607103179420101529042674337794448607784909626259754767194458079445051038306383118903528360450285016368717513679034542497238944325747950261666542727669976567713290805591967266936094328548533666384733028096658352659451161970421653857830633913246942944799891220736014737433541446855036279811941409242912425174498147326222158508130731144566704065550503261719005821942698463936283159142861831835499250543780916461926051647390041227517977837233491932146153148337747391929553581360727373258767012260655916143471745513168515015154223172574914979191934758378314957686238387350384716455107745204620253304942684283561261906006493971799843563893295668658468570380430228937712823828673302341441426793549446313263495280970154914917208003315028872052804744525656289609074627197569825304422761048661953334821938009254590223278041960389182579333172647108982498864730966856737522481898575539032031609599601334538640924859467132111710082755663299911015515957825594959277994431768911738090516957049861631448206314385199662552881734884702355337029727639414059187455133984471395447853733054001680268588925175512390741626444210523541983961004357472589625624450683615074333464531576377667719372555459557665544911390253797298758078440494142275679057929795969558333207897470884938887825290665208357767117183235142518319278408134546114943912522010493527996722516581917236270662638912263786312005678646367568749494089159979623814140876302855948635400849473228010602026542852396920642003896700326271581421569742159070807926914707985666220294784739094621208365462787994882526467770753221880994655866610470683348568316108388319170636529861645363287271585168539808394395313364891175322376233765490574836982804017572113618913441822378170330259048228394471539350615087902078879610948059510354638509111390853704088041593193412226033408196756396244104198466975070184947951745415131305843328235333201282185431413239088359389497042734348586665534932911675215818330051795667870938995991947683423281667968418276614702120749686963360440171792656353811202374103565891924916146511787019244264793851461774945966935148269386404402409985527040357865047408253384392651569334737561679192366215180897445090814207246610660347835301021206511964189453457215106412601090233674279613919049196669958218036790223200484838630187711167782546587878099602321240405425758150878544144086544953683505998377380736618840623735534623762478665296865051137032187081848053340893816344385809797042284539589749253016005622249411483234119452444455059748997377163623245130807470567272225125851766078075476584232953925123918021979640088676906254011050948065694465600515442146709709425349310904768236653405868085619576102691698056197507347355557941775440185742602679617179345573336002063313785812883178070552538155077102175844196680121834392582073664002566099844042181907400313358156917556687734266575325413113959122105718540153436477855308138279549423350679437565278486492147978309243020525336751905270208697091582093743079339709827915122510531631675679748212486167540843663020981638260610649516045096520079883799501798442981407505901274005952604625611919470950374771732665902185953701076131334072096801472012632270455419610392957687470061719447949198564773074394357128529191325544951954647375362689716335770366151724740060896110035701558190283680293893297663914180457076683697234703198310195986152188156191294622464727617084265886154689184773179168916176385303972500155684267508561315090660404013323418241307452317376936679875567299875138614825624897640942386674308752291825865197925113755769373984115129903001883603164721690052346184586804210649636645898512419259973644938763950559344002053143381603203884334706748372804489717545265939834004265280165554595301913668846879305473962083508323755432595843685235672215719329844046202158345815618078715839878596410641913536657164523935462426035113815575959170126017980703574296164203386997484700607605837204156947715782762885012451361144236060421851368197629235120317648966931349992141848220740323040988282091378149416295971570234931734683250210539355168604984841714695401665713016976415493987123560133327396665907514334255514535608077314981316579222876232876451268258029169005652953040512800321855079605092556077585436251907306074659080258183964610127935334640131971537347416485998974340893541851044844063633007996209509664191893207030185493036696730696405394883924516061316790149695378152469046016252916723787744301966406632992172384855113020720710540297435875684958587092996145503231639283744460180251238639090061826718308284272618937620318484107135673746686036060287115693350602800983721341477164380106306264579537016815872794770192844411881180206971599125956524031545220484792784237748227403032299134077569946466764413777042054201764107883171447188655364090399958926155799674907507739583555274020983533225760932532372314212359374746250435033385471026843719981492860879881519097462807205584807462107460946626927828056614297754835413452395096433740628233254514446385041268714751290468027579220708047601484624202798795305163082193841771051233647998726995033140594817238060712241052078575086050459921637144718329320090961229017945011406157287428510092965180276571738875244165148736143190022646097388322310162810902045937787334386949621715626348180563446377660162561423450945209898619109303941712238403193478837477373176481826678659854838223655672697934432504594270573956985775771347228608127222520700572316752952398537632956618798441094340710430684033759767987778992275209584894339386683752384442152983300349877567995257202704837070877288102868774742247200642028338995055733437413475049205279868884271143155648363421161249315464199099992944652891033933236976592800894499491938294631840886827174101840926938854035125851965767147835428679134908806567080845376122037593061820300239373978181336143849885984789319708801018191298561421314294856748153539458833543104565777477911078491810746772151875244040725030328885712183619331146338464927460301535416638490525711151025484036965153024410693274519301394890004907009164057736147459142258652847400295665024442981859879521108681248175046214023407156858595726234706899436587580389985846048378783560399379616786604934553851702768987480322477129644107540985443922438609836548086570909196644135018262666143958745428527840607827918407879578780081761434294273905980667643497751994470116954029012956448331388816663757841185141691597487536336182522699949313232830722901586964047070029412644268661440118055710915698947431784607694117425639660554278304000877466237181727334939645154633355991307455320271600196091817201888479512627646705956494663824829801780347577748093407385514982935397967316929380575018058846676073043064699833412067708139094610766049912972824389866077876219742510914279858242168773973121021183667945079032157386634149790381248372304806306262516009666282716033759521337359496324622087289471580612887328958107928232980843545955154321297465460030520807094761590578018687825557635924876476519975961765842403120259100163889675785495497492771668299624136164143797996097997764389567195649093979665353705732759607635965174652034197782551429076669298449357093068370241096019712856668769173219002832898830003381663148570549670503046365785483926958489213210563645129285304529753057152327964623367986044333075345619185621652538950625837001191078970687816800544686287385044175255195410192647344601004605378691021372302900044283758492462304813218235800923482307400907417089062462153142756783735976323838980997809701753244674779320208712909573671823839924698013232761075186252670183773503440742555367315179189808192585773059666886518616630480556917681439252721943099825312116185966641946419668815480081674860660985048228853438692510109644888198215228950175965428290707725306262881686205864758410584638759811554641381359513270570398516784688604612432152106276395484467851867876810046215162410391556117803547175018538048252481470579039785174916269830745239352117176451526780732202496332825952774201958576654374844092083050168596248849106542000204378203649149874351826147057760923968886926730849071722361702566376681698598388763950214501178400627152875631335762615095204470490981829543708052308430367146829219481481284369309419672154846127258114696999123619694330937172032536386145687593721868144744551815752882475953805156131024109360232647326974765566790578668058049112540013724646200896130775809262464588366375846914873975840063654660361922598208895522054165608188832742420372548510480487483987529542313923990825830554759949084096160522744320134691695892128175190646382047485969313256523112258816219639891363231259003765602880547912291660718416810307865421137509351667045364293009362587921229340249208803363811266081576582454737994120718643549673689831219835554547900157364759193103162372321586914844358834911293940656506036390651720130352508119067634465973702255034111543751102821254200453757143050516227967116266591366971624491995933040695141502544153514838794599439559320813885865257113215975793588815205178891334472961610608010985008756688874424595262026584071302188193781835021768045098094859726482473092692386091250229831930275360147198635785187539680346290143603996700124192209959243448968567765262295615148496304718967386565249900704607610284522341484925531495676290377523098667535092665099062631971635168481652567250832427480286187377856352267520942910324444843252111745076843710277255410151837866856769809851564142477268100924300236472144220366580306063583942085416204416143728184080801719832600878898859728151884315471193648557810625825072430740426373688863682924015281724176153173074789997803645635796382127195649941319026107008402057331471119806265041359695257255149071827705984191676290606955492824419981604015689129830278120505887704689544996374372423149498912810136131358046640274914842531063550581652651206716493597943259968083535890782928862709560277322337506316167724197443636715479812916585894592925236230564321600116195861818586419014543452563138714891713802142116235700282763239809851107938522300835636689678250105891710342925770616784313320271087424861232420478497253901553139274460713552420646988846796538721361056758957403279267370424648117335752143025816499573737476180715648390253593345893314604401574714411569181939883228434640350959534690342877419639326895803230214462054269195450922505649550187139451334765566883806690633620084036039754025695755255648698063342245300238954822556295861012262482471979527076325559033670691705913850970802987856466903740199203775635784628106733802052165667879875839790656035370441268848647831872899306577441828733977543054551282993663257282433963008489638073780900636617730994028703164525473509504864742910148874519809321958685007994454251901233974820656904388025695254881333235180431234353169195881669721397739328679575396451878820854833732837731200712179197710529480576063320261054361037686700087369084821247755100803796055674596472309528216550897301791803063875170839395183544187549496360399355005821054505095193151477563023693902703590975545595292859056254430825983066592245424033865320714523291636697634237363579600100908246454883992057515558229637910676729029751409626436605185385479412273891579281622733235595705235127941476716364878554606380398641181937053126500051951723659432209203530698659692317958474709422841174638721889517190126373444844648019962966394349795885321074078468173844077758791103432973702190039725409652809827686470824320677428363179347147228020437868195298162788478093684022237631969633507145928204746393297665335257920845158272207412251625266791131144355545879330950292300331587790152745789725972274610782054795156126064008988208700757605075789033464090946011084926445609847915583830450334138926861563433672966413635370146671847122392139764513020131317952019483220997497723550973056905876573502147097986750449077112316445462872336988558931273997414135147409414184347788340703766953233404917213911251266828997610697439132922164290299490753669003627326608040847420844897778606209762162048987137618301369127753660613196140644567865582815126902304344287808481309590718459640688838988579600820794367775371026243120844984775573895389412297765170488286322626619648797827194718158793693365956665229526125187435657680038245186000734957497349191696848080052247363303217155516638694941669594973894088790576659882812522522590315163371188549299965070805230162367430765702722187017212464645104619090384615875555131176834957413463620720765654135494978707237728635544328796210185602757254147697250057227212615790483054548396988461198590201682153628174037899790084422894810301292693683859001220874335884854505435675941894250405435238786498711067035097802941906257194778853767596109353443670574879238678525619470236057924263164569187958449874684509927121041224780812903693134538831158633028375082054532234017265500948908649540938680824561897256630635809431812155866049836272248379316881911238752140023471297657943018765476567584313931808893293064060091141460566659405679369773656233117171415947948437503823110291351038852994435412701255921474482679106680156379214179863977422299404526523654193000640306217396575090075224021903648804196849661333625771232137212082715854786023748656189330212315406069067411504193075842591670772643837036876690358348983599006016877286439866686266026968185581137554706893021559792375832102472968611423638069129626025654757683729881602092837842892359659196151722824984818216972632513351770455698859007701251148503971896745685958110458667630095567100738344651352557313601316411939284139291403904592877707236941043006451373857722788420823628063974870956974628267757647774472360847229890287540895252860783978678246693944070696373771692729671757824591772434861285455256938652178570530141269751076454828830501898885128999803547065900784968502778610840376777647836726012397080694678497081866656822270955739965914771015340409976026355869841343302772759333334712798647307971398374020093490590033077094884173469790887467680446945686163272784289080334690220551397303898872861863070536853230818293828729504638305873417782584709221172376224301046984080544163578945224323349149428141391053547584769819290460014862784069566721843660394125532793364900485773252999521808810276834750414337506902584279330807651942867862294750241638962379814043527672141284449734529948013201814448529773613029156292265498620525784480635398401927251212612555455562878759718690468275334157810680265335545608462941186938228915614512399837469489421391419834981660404231471231549450629153040894350696690439937788226104800768623949706109327301863684203739703408829818672318499044670788372255291849750902167755598862583601802269170335372495519427747794077223075611143671140649365523569874801379376391844425822454741957004757925532508092612420342450266410606998607123715097710814699061115623898451527301760280466524941903743938555656505501224315642276827784713826534889296433222682290591453988914593126373433760518858473758606571581488804735143872196900444509038172956091200631454919192713777810217865961197181176535541387817056973878936640315893591747002512277760756540555345078106912654275336199294493315179359942849630017875250308149274675686599740369584929895885268012155890873323538116213063461202952172231486990515130186354238352174509074427358053251903349257576739276193374408113486766865660657017383478193173728239496659518739564188534538295951213177266014362912364759052012257434529404754922445118297883697672403658469451200657116026053393409855779375525976323004490226403739815107374890007642533774529012661727430750186770203753359362049929922982355554211167342384375606036678774234535641233647687502902869186479661921678852083273525526803400299639464996558113984522172529501478268020955922036361268440591600908420921030699323316602366468509361921010118666792129754307980194161199884045481959627031041697029996949973577025755392359950640499254465397062105960177530024597843294353482355599385272333824915053472326361844567474584677871985330193678832080787219510261839117191069676837058776460448060908410793205334096590999286094537139585811760534834812542391784422849025113899941353959888802788614674072116167902376110679853009168064047776823161238195121761564747925160960902034854585755404195967591780696578281505196337384194785584079641793424081874122410857454795447110273013145568479680454442942919645493306796721138297211445662331102993779302265534553895840403560207589155354314857625742488701706497333451301795530071851560777778356152930630028275436144631376705348444973743717273771682545649936518513075288750274695010985519176596269334094712925065977650358682068336063404766195048735555198201480027946157933650313355328752699660309961216059849185810161964720595185740655136453630633509522888478246109583587023657353250016800592010671789947420671893470471485786756828857101459567380913539788144698316528913967454590879773614773403317649822519355488026273282801933796086565271142652005771681461733838974868349818605082966134672110561611511859315814733789737608115706391136057210038120928604284510204476162643379809492912964649453760256928380113575633029617483550754319343734881108512402031843102287310893929124540080165610862417707530541984168244048818058910513431406058755718447147934958617124911677974175569327911051310475696038835009543157500051653482868287055262489192836796756966711227722849515292500070741826616564736059890406206986843399144926557080625784053968011993874932750354825090794186028024154274313580917152482812795163581788045210191301440614016045697265076623000509362309652630370550952686380012360762524499468772475604294060429059408873876235715705001067190737930939227415287209766675375321483712241144456412542665203424853608259484648258588634420095598567549714774611609429479324922977809035848196466752493686242438719039150424359852725489310443729356281434451751369684263559874632548752069548357310534500420363634496168654735085697140516834887058740624312794183735668825373995033057080565714527637945111916090340572286615082868182865056013549124856283116123884727128131351009140453701131275998707077706824272248130983910146699164577477684670129687480303454309106354682722403197269485246174154614902252638632515228290434479669325777893009246581522772512559124102466512265177622828164238761255940484348959659507218991418289307719287125725278683926515306359087955337014477865285151146210178749055533371802411350407121728267338548448669230405652772186209470803854959778723583187991180083703845596925641504480706293953958433365989138602643620822524771122154823240584305121704916270196537864321244205884833770323875637172226203560164828888035502535794476705494007551725788285533104045174693831273225434296520381014815487853559261098137170160630066087536761009488303366440448811882948453754352361149069855402685098217868401156454237723369345520351349425860126416612125784971364134080671435075066806658991021581417667070983319097440337012321621209734408289975272933769182855889102461497736159203508246625075470608927997359203756024485250607506313209245748955473427293671137189462692811614199565656208600378451545960649973180423644444507042456775534158988606027857026961738391313472049628769575637895626498437805138622788360415822280910601106606600347931376874882511813350559779958629234487998832608300988887219982023690385776202270154398254802152435320358001221102085063159470465388100478714264521130798446350850933407685491154043112369790965692487151167597894935853645272292707591125942444392982677781702955899807053732304578202156850001691269174145296678400841013286614777311157288980016723891533922994545002681842032364644371841593272969010608818002462893573069337091827887598133960500738835109703511944837068246106141405141172566349551307176780416409449705991223066593992913843901965073844696199424717275482947162331762007893879347935790739209801779659218142063333153295815633281404922918968826214174821603757539624966840613069759689843742887317302307049144095508005895419397100933402288332498824409439732419524498482067589907084859985883259649795085494730690601036764885087365507029204603053176865914376778329641089105361954253348917872378047111514889366380292439387942208875103138781880311585685072509748234345348720398613058615232984982884133566643461088531782051978722228447979285122517013591095545279952234512490108660393483300091850384254728950936287251589249200063027460045371702106629032902723693237771323362789769558009133310120055496646018473454232487866564396239250776694973347322108696241298884641195040380144882316018678813854129457228375510119349965265805563207272187670132400633323173743372830225889324468715906545632897371264090794115816527237700750253859263350901600677587014210369736970086374075513822591048385172599446276097013587637767079689625035511024356664976266439896888822084139840861618626121811903477890540834678727370428448727439574938275912179442788316955276615959908904873000753212529149976869802273703990105244727192873147979689970176362572925011194030792338906797473449590993368357475984308420604526474923296013360301586847223714778275761501157381323837003123814998124842014211491637218732512628832507805869089215811022403190927087582495990365240816359175528924832789067990639112241716196279933145020346075295202053409678494809876448456827197647825003726255787790839382168275220179281224574459874326589973565295026101135410749365504657158585325234852444049923339552418670231882304028414698118341334822485955940248916462257184452481549834007823614320556672893844693833170394117449563852349875740872691316044376512679295917026000059357467024506285134247568284768935781141049677149555099844372777924376889189025184867752819135003703516606008625125219258222636981982915661580864503339247597326021811307023777979973203298708197222656564535166270935903531912781847913267482403156944432521341773126190509255879520993975356368364161864001781027195621386624411338893793720536484874106482371331319335471700353915434068796257003596388296068067597502010729078291367176299432522647116688654955143390435793297386797296817439300068132164319377250610531652796309458474440845308779278051083841651066274254258447775786464903807758831693730750477592032314511616053649871472019552237923110848833143733678487191084995710779625734197896621749871116359221288184208404061165000146968964061290649742526370862743873211350888451080758336829573368127846512956086080711499979765408997618750759311237349269264236292342453556196588348769669673384648328625608370357743439621019789759950675910553534759126550634312804472289353180071296143225933151703793008376796129893644437678800632557727339101805817551028098451728784275216454234808596825652529540481161610513885610078000296882518027764452202385104901679282043918911577446225308523170899777670951208707127852376371181184983126489277749421322527614172751518168797402337941224243477842141398069163614922063852670365408538408459892800589747172327682619706169519619029277228082754197960245220289966723775605269012790391798001576773568148172908638905066727937524039121473334857328531349905690424198649541554825437718795640490406096603528242695409540619094349675582762778731104744780293688788892928683659195088956163261083840625092301873239931353231948501193510320900889803421922191374500426422703057122673626427228963801253129404155923219663089490215333186668129225677303543268028721715534125168437534856776017461798674262984870037952726179530900013770725979302366184956255760091450222154933503690748707558919499174248839336795422719370368259531820855971961801589855365413305609800560524488007224529737535398443288703958604112359182873136286941474889571534876655095560216799141379697854253052391849669526580900683171869762219541281666398193250155364614620500923373835399916920778817835173329328658535180814822575142914863475180552040018923089682471185620236721532643148863512733302574053344191111766027203286432404394401815477767217372745042441881089020102673297645774354961174428906706599531742060836111809602114734177599180023482132743149597943491201367177240444140793439985611688513519749664366303350732913597242120072976282692299351815662465879141489266804910478076186971490353514388674169041304431676669144408795964845538335700006023350211806111029572064734033153089240430053484421219833753214921334020787431197672643917424239974526962019456385959578972486880568717062432061183619564587814594581503171298771565743114921208011436896791856054333530710670047370603683043116754268043627751204121935555407029618220979391270550830597048128075417866059258113292721656976752639117320027770170108341008826459200233546278707503625652905066573592115925506477688587867978187134475909131420702575675797898691082060539208255196155648415483669038802768084976021363187706942042837277481242232626369527140254454296748900697122928761389333670320632034344719494093028314740190085790060382946198226374184761241094974487597411211697159677430797100293334546366872206210419147564119446131993876509043765561470649481368683799542399140420257190894309936405056551572959754993647865759785870395878569719351556212151426290461180313898516054284984151372809312172088045142153069654541325362022123214352978302659637795650553478462543712596198660139839671981750567154079470780559571118036853298440607311217188485736533511627617190893088550742319699429365358427080853952013941231411850778938496516946019109779606645669789908089286929686745850251139383616151484633074778954331603806057694639904421768813906332248653857040978491528529259038283656555135814292857876738952854398511660058413900073971054194354833101683907882766240945606439496457534189212281573487813156138846504972685779077997604571986179638034649435443820699523597045154995472077724594650086169150719431076219300348242928218590860367937831090902220326410992215983358111707488837563343839066249207937756049077676858246241851078216098291247749573617451358884744339545231278306925885664288559751158564689681238276458034268563811814082859993726918353651719463601192800173989923491732700489505033582629181844893319662576448528985283721861930623748184586512477794315666968483762229108395239423403006343998163467480652082119296557855314673605179532115978766066566556090071509335960046508508061293058577988984558561749391346837934649166976590642087225105208150187418136817567332691518325411129614521285871430549312292016531033327939779978522979727952474226141876234567165925109521034727058500497147710450925738292501174056832353296124587747699592470474855010595885904801665550049079766825660152907835674428042761430763712885824434841249373552107469134111393480469110773884659027170560507871103365826962744390548126247811645811249205608575021870199231506458205091499786086319850005115323900583714521918222113901302712307276779123926806709411365681942031973932419106541380325525757844285043967855280502471589580820438790296320908350844812600428072139950223870286774254083968131121410889008157087796770001148570768708432966182946041293786568765923576609505817422633123563175931688254022742814285974083025561382912835466229163062056392834524007238616384847346020785052815854560115339663431179616104800640989181628508109216305570133620272551305474861464516708612999037538682130536121981495603263042001113889792437526296468264466917554863895017414714758263077407676492394902462261875218367564173614526705135052797526365546283725134165308925290557574158357151902311967508615793853978033457620194166817436926728076407477630601081146245840593483053517172492071860309007302810570732018973198049317723838155187027173396098998926274259280778932865651885942402886215391329829609676120999636099487437627110354380671027077097675056551264665162033378839863610815493440547931743059213275925486311377040485024113232648918287345161462336340114822396366160908869107306956110409010377168938240029112937042368736319842787167581196667654192333566812090066784909498451080090754110959756852548096973526737160239097174355027144666891034837340484576946675978723483785743733708947826491592618444806031962430392709019072610857762697810482612553540703572072127025959967054892841439270517152325375594955908396295771613892146903673187325861041810193100086502647276329757321532471635703682356552564478293111524073905736745930399251429702003403085909743010988195741900065208614375061102793011277428322187474338480336326587399308599680306698942002794382862062412239302043594291864072960392929932526679701083109315708754043760138518939638223754724105028549818824113571745542084774595483302608493100358690101345744026157047936572933536996736275136667768636279701972988318784718606704214241489140216781374263859778016800695234645341926468554234861530767239687814148612339836622928096607694475817500758812143995801763414852443785418600744110665261164292184576446390764474771866642197453890881439177053046662835617171802273613661549030148737194783945093512755776958816117635356049045406607493514476949000033979340956248300078347710572579584331561063333538815463354260371771255407228506140663892076486538314299710733399418049148017371261988360620915727833297302281848310116708470111919163202720168976506002263642952337801349520918979582965162537087989337833559056339336187123961444785612139323207478999747296078649658543599895798810859423395024847296915129840153833926996811667338290056643985912890886942622347821752092102881762830014741297709800417258202102110773092496343155334390244707585901894389591274886598682371247824491176431067804484667181466646742564206208971231127223718444723789404831852686992578453731337841859723310966139417311134530345857215943215910803650036730122303386778306325428370345381487949266859678628999640329938830282182375327789352065633325562623089996974930824008760576812504453567799490764553862208482176422020264593915113846250836634348575265918917012310290609811909655279318899743709526017100679814919197560038594496024985791553168316352639072185920437785722366074960129882380620078934348009178340938676287046639314010677138541173187064390056730970127092784423843337272132759699923069250103333895168005685032141574614718566225822249358292366056574290480032024921416674840419921479037975062154952885900423305297651707147186570226433538432239546985403113852184963948868704739489206484146514666801676188963005407666240350634755486256783921872671967339227572295100149051277674321724700122234977899956741606307690759436060678334490278651122829348761058892845332450818541443441867126646064487414898478272804110782333001628186712369803035839839084253802489083570800345105667480458700187441652046549876381867605601024519600586509329333450711303056317763382747593426244160978020449354970074398724657042218234873425177691106540079071935407415652258899832901480215902630049746393245162440115215175377421251705840504478628675628209318957034752916516469295160203488184146550247937436138392290054176745141058501442938935175302314541401310340491190493500862145425569719238849749235954059641994171293337205027243074390391972598617264121024833523703058972940227399180870762305041136130259464911909975942883689760928128996593249832427780853985859772454568159292237239105618321109135811543162138302940045180303649138463517783932439630765736846489461775519598331301658475312564965071066788307164148853127214020164135217278306126882711013673714580793865131297561230300438180554714764755114603262935927539250969948702549152124162295294507635182058803832576787750653167935417811196741071771635320389333995853441907947918628470529734356698640317892919239850560717209319200247518467094249490694484297885452218619613088880003204804446580030948638156554133451058081703045164499922357030884326833392299603885079706566005786408374771303842246619431701743091916567945002414672427744175655425914781839399316105266401090892300633721429089798818550753094841017427214709654661041472127929948855075284331735246764379019202822572931843902041217922759503017466435256449659812115349725977927875237062495832058797142970055254896308387749179708634152140132357033583034008491950476376348847008487830329701672052578703174766711717278930151509112473402785101431149251679851511555596705941724404074638581233772423466284834256247959098291119951711135560640139578097577856979774960123276123365616698576742358087548971658885275336022626885586358383822867167547702650254284581440653221093184419615743779082406727671902716276269800614235685272871650211792643457438786894489924342526408321910792360090210463184106060540387843752420252202038550996842093247204790698482584500237060563004964767712509362183825878266334350737195989833808618935337996840577028412606281755108246827846249714403094825010086760236363928135825631715789631877763249158317603784941297512436920382624004175267239821405532585715042216724431547936666700742922873024240594325737200908571515223662302352740881483793838322538882490639408973543078503730145321894953131393969491434079970665380312665062832899369741315652338402793558243660886548281763259300821074857661602787621506193973362146705236656308077444791333521096046384462630361720247114965413332909475343889976335835369909949332544181982906338900537141155296435518826861952936075464689057748715532781493429859464150145277092316736313171354941842531919827219693608931593907063623559335115291614752477255679752317875495213514125214572898489269243171953301013837736719428084216331095883433807522824872887426033441556253324017521187634574592758563363253192532292086858654964477567505538386101267003720706347830978914660604864226453425966917654513803868145573495440364433536244740656280084666859936563297544277573933111945238021563520999773428621319343227830842799880556091683809012361058266998458004015738868038989141502765837561397939218763724421677033792089038421277797333864699381673566165060657849726003408692093715752083002600754886931429082127674729027894637014575808727857048860217523422901255337667581748253039676559863255441085735809207892415824176835095543494519583995417064411908219314083489751964157993277257305062472648960343258238180721534951575156776109531163600201159086253652203748050349801314004804177375893865829509130451812338267478472206735038860646693301636922851663039614135401985129322536144058662150167122878264276974838896052746772729181191271316633752034346574699546864752045228351075819867099497573472917931914757854085963873744406872676613648452574162016197129268513293678404248245792961098800271549387037896529388193199051535590195171786449140289006757382275254004474893541245407420313749158019071454184197341195134387531693443906166932322730625403349153355194555823863403385187425604238073257281835667955590577117034051436751236847910366640539567579520556996672606069444636067198190148372570166724395965555750127552706512536427274700897188034006319219561612400719221748419911018273342529530003473777767230215799773015698057639401829484469436352339173138279718256429702366584407329689340150117599505586623857097742474855888696932222552738341635130517123115139387169435133469731608151686635506427186863011232823441602191443985449831371146572295316840288762500799632502891883924581219798046160197273952743447268309935506399106499378621944951820710116608804890864680245387122555905790100935498305950991892075500900836006768913059618249773126985962615631593629106976527071314461986432774594087669764241060928632746665542137252123811696644262072826061868387350731993509333478298860715610925220202208603617670202271091031521665955827824415057991231925669577942258548008192561851391912744880511684006877839519004045468209663018763207611143819107970105554207397352379504891495712309848843905404862901778856594097243919450072246355993055605514706090536637718446850153050121559812025066263398578676013165495339709703983248293813573848773075601530791322310853836425282625193776119547937546722538448357569895519196866638703782689037206679047878883586506062719784377148252922292967825561500829994302412781162420101417994087050166665932573716311099934781011159534116586660038459979092174121572279615625157060805432981472152862676719691808716553886814621590003158737878406033457118610708116979730553011447968808731865414389732750006487462057387635497187468599055279277982822127120319202808613107836202460259294575104978592532575708054668881956432916998564847587388346343983273491699885672733477850828965244922874179222711820887160052016244324079458659263871302184853819064826306120010832756276838649702795882120185429671695169300169987325658100470682432933685802683118229747448446821916490008765819327243837421264383717125254462996333799580482109012916496990305501222850550963305687631921515557670249927882827775930982533846045491091517929697348124620885257437221985641642291536412302774517651692686894065787814849720975512878681938922827077338718180062121945993209330966407394128689582716610581570501403226503863632910322157380468785305900605198544691853074697179316055422314549743756312126230563322396371912656007557096738109332911111728220703134859382055611104764527026554563675579609706813816356010260102500380927737838397549073787973302379828680228254135960115147008310742400948594020524031420730211964184655255144962149141535105720995388275502801423286482672850418079814503225629181504275190632775032890109947121012279654691181882443223441907618233312456238197425651089169204834814660722277018189238099610797721346227898596263643109335144361698098179801134564181982956295141869421728021624381162574959078168803096498753079761463555187512715420066588217591216019987485730990340568375603572005540535984176783023621882462563890142521704652075374110361929322301777685878640529267044686024308484221751279773983846180303438659171137581946424147475338916040087205953808028563724660738087631827943562911562116917689591303623044913944253601609084058298300205283888699938749234629642860761203231802191356196796978489754212917208368266341223059799006638429380481333286970979640926114470716683154786158685411820254465633053558464756484187538105644811415319070897387526452388310852443044160241279067342063567774290278724005640296665916355299422388920994470628232238302947339203620453289703786102219924870341689236003396827937379271004539818803041539085101899152147356439787147613074609966103619076072521835291587982374738300376456594246684790431259924428601429666783602397208754601652989346734606660940989844915636276451062947830081234791426398847022186748745581874005811209756332513622235257262158739599503842415260109999575857984556381563967824608923305428993299545987955539981284659015829220531692886214560270153986722036776980242039363936123648192959407512994039775647509977155553710675262333241035783584167402953335855389671706506307574206679978001760533489326333848338294877487543276879274072409277322639525884891530545230423912537305667203103500372000756217224732688742851044550867690779154428804589665196306542979475693421947474395973242660995012825325567074848764892085318689863778086515036820868710699480146355932024432147528209240453634327464765106947883645759989547955149170358487344938293951572330505341963494163074874940548716004632632016321582148912921396939586309060115581875838251385470769903490066887750889759066663639650939833900452404681565089016350989552993269627383750713905035629601629742178172538214662468256643931308272678010281752774908597203708083298009921354967781321486158991297859039699324696113913919934301675596944785274551582421324449616534297315295198087035426491401717081325759206619893030914487846254517576060408710475950425398382200583108318600531509172583505013652790605637354065478640049162240448895845266734301637474806494116438795679566182696058428769702007416715750200588382888093504044401887536553944768324246587212733330742688369778411433656453725980932826531192817260129646941397204615632472642656909230045531042814739042546984809704517997813355607100155415710396149891319829330677956570234040295883842949412863263241264690571885571887468755048565338132397950641840015905252697639048672411252556559145848505311635970095156389731797163564673944200435452240317771656287311885290419569077181158744142990917639293697666440877053925523235021777819200456596188728704722806080648287996845139270135790873523852611066220598586782894145902165522754180856357754196169436945565677254062513228712790331122591834778196092889274207399818771621273066139532857319668961409780744119144875844273303336055109218786380494444975058594571935885581762003192644394802272141268706314316347227208979192992822421455902923251891476403073822778832819183425093247204773156018834384909581998211296612215719353065718042854465703352042415963143618163168353403966855304136119339239375592056948551571942293792662253548303810592367485578226218530523048823289279205831479274070316488120790463032913361771705346833720297047115905420062058707348213411832079374182775499978889813790729351324755957892680383026295406918540207159368988468564665725471459519133859903051321188341638770716981164377131718759279226582312155329957081302572118077610191282056674884908811960033899638546733872337676143879561011808771675698272829140191044758430449635541522286242070862061104604787050686855786541602994375787810048546220144291577536694182382785504631675638506541112865922455247307354163369761610342357934253608460279284634900436570368910540854548999123403434701248898843616823033714429756785561215231766582843525272675602554989366796660004446342840093760224777514135159036848596739850061229188218725322306324333339706091709471342407015591069582277661304752642609394465966464344823965375955528198838821102703509631549953566502718913740430236470417063383640563843112789739163918000910163978366939790953582758874753967688770421200293272544452980042915706986068650615861066221078315565317178974113731611994150252616328498144733312925635633379161839860261703213827986729119613998419730185837199359878525326055177378535186011656444501297795004434520228970867337697161569200901188853767738978756683187488184025615047830989036060966133792868898005570814320609612639368494156683285759307193135213238388790322180179943243999985966966463546666915224289398866127651349903072046714263547599149201467700116430616577887987004651527686089023759694563504425843956547905676070148067115829999054998989580770568843689567321789564188871335719642988895030021895938176371106797384806390640044024747348346899531490951652179060881822787400067044085304111742856507551212164620711584802550582020789128556327995306360998940276278279230894857277690414100901638643355055877386374895338157298270268851456361135038613905769667384299757901806092475708624755369473022542659560366372431089426162175811221466609830492321645346005598609181276732254737919166922820561155369393305812628435071971363047783587644282249104473627889778972899282271339961197457142348447128104110275490364760180325688953091833423650345889034189407763217969683576687650549320034158808676883219490724341844331281804184507932640549709804341977102161402887780267499654896586454410761289919207744780613536132002639655737122409742781982808813883539039104170565631310533140671161585931737330795343418495282374618495876997044739025692420157587150284771417840167011549824580938538105868533952802637164628342798695091368793843138351199066777889527560587787875987850153448131563746050490793146463417328045247747259863702723798724147012315066337509128211269607263739309161987478870199183563241622313588310220173939567143585352119988609069359634463369721350989653760326123882409381344629328080763501689962252073537568169749139334529290425535640181258175884124071532050035789557564968847504985561938279579566823550032363761558836963796715445770783619532920631663464461766096406793870688875471058009492901091227197839145244417142299735987711205676331714180154199691512991443389398417206119575844055945253280532412058274954082113039654627929166166308736547972027171933481002024243973477604474102584773291821648970928089118946067169428602032828332194233534195386924820908800469703515239484154458015826905669874777487700717472790915005551061534225045594043398263226302880530470296058376204816833980855762940038619097536505628357683838503073281297076063323510423090058201580007738263386904023742083710950993841687844887793194991298124064917333291938668388470918772673159688075288721198252497201563446470773682856449531949434539707371764331103026294650455058339314529605719101292224470609275175710920699066744887402190733311258978814659568509422582541522825452866774877256187796108947947660921854656528323437845213242076905551190321678351397949323772889016505741053954263779841826051487161838318331279391453012300018262010078320535914450438854390232183613160605598939625754831138391816352672622961243769752124440199164733571997743868087515494271815064797323034246662280174119415711962771334261024903630192698612886823666163990556742236200645817347793533597131116339566263930614778451133452771563231507927217827501748107723329311255819426683875963098215428031313112224178259147236074201863515705947439686121313885022553210027735750510762831355011179398889487317059662825859456917741897066447002293989946298794888721404886699564836427730246255617542591410758572103764053413112091742812800783038603325775071577970397650222406533442174244028608304981299464318341691915682528916678299974411076726461976285614760549349049079570849517178736920776180327956513676087165029639217438540087569661940556983600889047994939784285320513990787609328312870764614576128561745098665412442752290282100017540432585152694436823020748027443972973319133964213173927785057090220255357005984158469404587313225379491547429355194380338301613811823480594287479420945855659833072453873404305534964519867577966541718889336679960303639414222575585829509214771496038146655699482607124501733375926031868018630050212934563498351743133032391152121335416823786748886544109356070416551840823473855259391355476695645284197659658324957432049599270385839877362322715322079993363111619390081052803246703847579897595688978221169455910056476708999111166022253587288008177153078825382165771065428208508921184772491918748275444395048576006728776531812345078497845481816127923040420695668544129610576975945723993305512737547916801426188812000724833265571179942038163792180724795114993213941233092928873288177714591426830976396545299760879321087639467577088875301800546861535627688254720922082065084332297343019103687566757265221315780829824679648730226539991130283296440231888625694558881751982555491931253857041798545597018633581636322779689859015191937997506229104641826131945671855799478317162600032981306004785231454911262549795487024116651987416310459205934115640071883896513983464761222112475198431434205782289773130631308626289618738141869042636738474225769054170116615209047042647274758253722354138414669657151840586204106025590505759741543021046271428684541511647015647922492877122107186726467732424142198148821669964227111570976745566793951015831835344529202292012424203304590181145923672328272420674621553447952070061586007855310205368058767706620580541444809677950505018743760076519953453554348376811775537720661628559996852343077020158560146973818814188296091270912393143188393982347493668250775156972475497517533819083943112122846214194655035431177167847572343854934386419985926035545915777992000011168059616712288327787945940242824026922336907574974799557497883750653656590498870571752627902289191845329846101821889951814693007869145737570090825461438491152120608565334220908092424359104648128169385519526552877390514185412806618188698936102852993812722081911371006148439078952321264717823127318513335278385739620019489445775431386561983202310269846458543938094428262366461188410428559977522329312084869035529343182510566526977407294913954783903653571030411150470148113168312589408813406536726703663941965218228261127565547080412517779885140373656883002850122453147368979173749718212241022224694673205734485994153399596726908496192624774995065051319421457713851842038751698212162264651888667827552558730966887778703409775834996463281175242728308789119982928716535228664621149102695770146656912476840083383132628200742842658339700534268364023206680482719419506513199215751573117763774983375907700254887335588600739610508437124126427265167147544618571872879125586564060926073580097256387553706385627727354508800602617846926967239723040901466977998977433826198168538547292195934127576796574032207558802911304988090837222322509343959831144244227703798092022058030314013524668114598873661334694901460962515599202651582817980303517452055318349653650846049608143138662173180229489073088538441215738360067355958335412724204941639175805695863624100303375464634282437634909026434449940912484788327547256834094332872340406362999810242198898701619479243242889223275941894344346593836179068305329403477709370015618791736023306876975251350538747220461594276202968857402363236296216108213453881982604575532648167069906950972710486689559071648990631165113033543621813317005631996958071927160333185870352240499376808026008696595373932701732947820411314466181158171552652152933211535591198461228599641909132050708294113358405276502470092265736371601098571236723664544167826580623645971117283068925040764088508255711742624564398800774310396060532583154810899344448119961380621633114178938065188945191374717550398837995008118933569190768039075242997520434948720397437090799508160864011977650299791482053832942488888680939498741589067075473737637519064663076395429780340997260551909578560759794174244185264484675854445472133489763069794873088210845882603086588557819443808108077670330946747932334122215676804670481001107892851133922651568941670790649107898114092862330593491902065894137862563681555020934245980605881140615320979570670081785546236333349336114284397444462221921204771979413366143746582904119040461912350711223517839024991001497336131928565931189734875794866288271527049624705402497710716320009048149582206261156510677606957223459768667633569108198124550480615165305198028741122986816059351664767635389398735317189046725272685970951557653768582475839001969971601041764037193896512789369784128655453770056929320351183006974920022007822201755954040702179370117700440503043010552027139722656853347974811195417167021639422837890287089604942132439131829487877307522181946571436359831785625472691564087338594456287892573907938430457056869456236220212509985685095211713069490857668572690782454160814594035899152287126089292560044139760898241228935456877874949461811838716809849249212304891502584810895899301075206200460964274256572644738005741058010742117176226092132022116553766347720786956318440032887583542041209172440537187766377237381859927291318437800371425024556336147545624230732773882064826558764825085638105632366595418626229068239843188941303066912920378539366213031925334754115147896498702880319382894401469193533539511275751534634778063652287244269722916819211481940967493528780415703876460711364560416057812204918282536419257051828507976234800183489420823265574901256780556197374584312741633521052714340510919712517494584664274549021205031940566920245568775594766083164846406928526767460241779177537293990902200273165183763983621514169189685514846962666811153968839726810665351953232421786001892276705255376803053238557932813334312455563376831518006684956525086136774665581067951269785875650418634667232439683568235010753874811648601402955408857731630245463104559056639024995571037062564987377839392497649685522052842242732721251274119876638404293062834166761087403265786043894487121422033303881009204449364507527151704598847174903100171021895570411659211068691690581799870645716315526135565835932525037397855016583036521291711776810842504760281498687553904357007645055286487545650837955198510329386505708861048770380975757292964388716756787063595248008570746325510172710179272115323370194686969238327685871898797086175972035395423919467156988169790553599511256453561807804768927659948124654722746375618597354785448378979173810634867366234056082921382955777653775501540053831828338194798145903501552836796056178637952506325094131867036019213074940717199994224446934389900474677183259231167907468753278469711369016542627067770462660686365012994382599642182174694080030501614954243989650822103710987031305761416955084170449899615231582613439252167397730588638847349489958187176947577732595961773927462998663525037637420186710901528197757534485276758774884614708190879354354303880235770362387794325556066380338895121532159508350215972507596934940021597622973245622405434658883737654455745889140419459157208844836672228443184654983567126333016089313387715342780695687760449599809197226389338114223812209354520275853690227189038682108729089941028501617501760936640221446125339287760436436417177853366583839698693748964758678688115408808409207929377131926705535244181239618334524792168218366091543161061279558678140023235687278072995634012558489805922712974527510851084149278965503431179485915168084275893338461308526914700769918400663155229664326185117309072968102931305204569855662437226810945861852481602140379340836199963519978687778328706569014507496556524958135179539931505033793789446806439144205478856503285606274952103121475511571618110072753520348307453178473727156962264173515706558730270955254563692099455770984079906123354690164192077405431326396312035206513632240277443936439597439228246275452134839289032441612826313468931264358695459579575886974699301827646305274297280032761811005378382269909727115804660391923759298322293905250904176105727673303858292539230559092612416679802262831306196692014809514751862857273970213916343055401508788343985078904498903853486063020320141532442113258739942293421608262286475257099318494145922471949585833856736290240117049104241747551624037129494792870551340320029168180354247580351044867963501685455450142667182388444101071169017518965999897299461767359117179186956941290331689374123324231945064028229845835549779163497896348493719086406749906883113103215156058120947845006159677719615419220161633807039070849866821057892973801934640829061671218299532815597825923704598808266307627922043432810929723167763954943386521827740594441918113382854466291384068670452884475980591985423299735997457636879119502061113916283295147555894131488697250993383045919145768331578870690920427953979385787673034407156539425873379229121201190770772607727839642657118508481874642455723297226128137943811304469793889343760844938385104497854685792400215482803264691424797589228125529402446120519412396996449622652852757518284262449277803284232717451859666607860792701117445662301375983834922356463945490713044987953830522418248619400573403299358414292005707303047826664745701929981725154028031505978539084477719005722074868899037181662451110827431980779967495926901480035118113502927089265236950917220153569817280841167297723255513834488602983406891275797111709310172528112104050796438861884830853609870057545085202295694275214722709917540523337063981406241808050807924815956775625818649898523125859877556879100562391722484494996222892890610723866757479439703564982321884070084264129196891985680059433107096260778090531796759982888394869396827342741433234494360842007243588508406194937362371614864675309630279002927239432692253891136046500631083249274022967317693867721974731779657887754859801093536171912111933014328534364954665640462703362605072163982092600909577065709708832707487828373725786957982660578099143609966986447943298167327059664013162934073077607123263034072035532101933524177345215531501355459562258800132918278265530989067895724162158438946856049752702741016148880617676483566639470973819080840591688977244283926104797916610814588628160095618797315962144327218841322870294113721583023964686687435828409123953287365360540307884745899772094905334559075443719768447119496759694541805322810128493987756813495380408495665480394520848543498849420147764563442948828185811285343145771386412846898840364567169328752146547060368787628687122470641426578251122801612442338334014271993727009180700257547333326434914302667340281491856544507510515152368873863676344647985439770516674400959076434981723455096474349790411793115883090155102677426758248057840888417360718204327658777903342886957344594538528989751466950895490555046622709322663615972644171448512294536344464171704498427489037946808744497340501671246521788915062438765224719094213164186242629721792365818582910615243001210615608098361707364826569722785474114299393688876214567605792352300985974819399285517706567038483043629184014143771147134237990939308691189929032759836709130563097377427843823356614423399512072886378306111429557538152145682343752451200954319665671413405744197139710906753126951126817188572899446919342873874611131217091001305348387258797594842960058238162695425346810697251306338146205480455006147081854867028973445559518388476896261927484626304825694235201683708788939562918405102027766682623013918660777745550988570114826876042556869803801347314638352574994184677421107320323437111070261397437562345776335061338580623903019821197349060639496308281917174298105822736372577288128837605070358378556514339005277865028132177162873203152677933701793583617223026252755414646615445393323020099380787153183946604402784046000286078707510612782437217642146299217494958557208897798261023777505667141812063073619415866900189674676392891080783781339909779408763379184189559169270788035069739480371089770707484869068103702214565542167778790030275176793462526353434997288084626211080826312746882088935670924243228748374463796581492567016140494206439327222546323954539676571737772139910701423219224829165926055986827671908519263020396575191664320747949188424784007493765423355087359076074612207822729594395020656688446281782043651197220605037590048821909792465457658501138979334580245141872142443999149383111275441339047064436222230690123740241310634248410703929295481316710331311959827734869258764432688425443886993391248770057123069791604445458642515034624679791824422042750506569830320269261093003014041096924701536331941810352154699301171240575876096633839429875337661214253249271808562410730456316937755172817788883694266587231416604084803798545976268829801822684428402356427349997450401274015590831769848636384438299494677835239579451789076577822659543845888199816900917207083434208866369919228899812509462279798019274881120356257374417790632503648907716122826785811866261934318274558971657521375739149100152873806975945246799272063786668372378807114586759171319622426407398991719914502605494198834698711967838155348767966778610152344145747041373125213773461622496357716302196456076602626487361776774627830770493554283417176991749754112058006447720669599384433920115752952031581976612047496606389704709649714612840932716993658342982488779003213214370156340444768060738040345025685628804117174301324125607489967058175814176525465683422078637669774610491470896482534694338632091139888025128042966860744026772575705533459245469166253588201730130092729224741968576577672058235315867415884393189832993135812982298199211139200009374715798690845549017808377158142848467992844614652942051214493830106679755104184730616082607250144071249023455158181167116223567922395827168337435040052962644303963332647614730107974611453807384404647449811589358730057339295930213224293276330317348752045652151907363909112245912951170749669319986127782928362215706454660511956205659236851000213403286981569954707366762479390235950292980199871715892767009527065452129318451773269325508365088123812702957075794012373731938423827441341093150012160631097618945424183010240234882707388394959119382841263017857091612016475349129673595812996394747001713153325460659188698767039978568032784001396889794836711350011239281521295556828553150264260119470445024691387163010445776143428294764194979665045377473027910852368258355180754376935558597594599981791602568512135109248263464382334044087010433502183648419276357645951228014683325226215113736436100098477290344300292304559661066183687226221291142545605550921073389461720318308755177293659147457020343467085897793894054053125679300187944147677550247417393003722481951413414969731962064520321293518383645151418732429930045577526755082935942129999616153578387271212121532485516727686876502151272963083151490186661510584195344064855059944765705848412515654715489569324914803709616565442332187330425492759419879607812329516641197358206839242620093190523859507886856571190323562909306266199116964979546293596198318635375611210157754923557182360529644909921128420056573730461777090295673850909411916634545667248109123422032345031742615060255790941765440311081225094425630072824894530720840176460803939103631312422516672093104817055221808683269177027296448728972937609874908452253870254914465418048246883431474592522173528915749925608061109348538949590261547005937684006283484272680574000228655041571022969040561032708666615972137993409724275352192532604561886303318668556670649041141041448313124093880549227924499997385141779416052348389806758848416410205151438375741142838044928030901057798149026193431914614460759411089771912676014683743060466637444043884926374663240360188874167224960328524328575389232460157844523720108646643762194703032722459463850396945857526133174606693251362946109659384745994019096017456489351563850598964120191137059195239227972287496228191141052123565427508340451551527104251386956299805637843965544033720582584608198206465372068199692848411338231209966244584648622615156412279214768214419683090660335376861386494915261702747595554054406026982938203202766239497501041872651545407683059333504031598374586210914050447981729920267390144687204972309076627916332221158926763167174614017389968041805256782235872158356933400003364113682507133918316416990101391136202670172937270036844649412408447025827047618129031379941784474038331469917372064447577319962057918857272881830509733698474812948139881111911894642148456128195831971972187190897687970878507594287599298732183012586132311406875117488754088668638815312969747822499989356783770895289696203373771963058722765898787804966091844336132845939351272496221092228129059173227731867290766667913107993944504197569411054104095297785096066593703318123004338498203370434964613966013761697682881508308718915586067854481946101916022938164417444375820500831134948533214876926492811498350158559628339029168123056794597675069711038170859396364827142843537202017653349932015745512774617151933147220699596926171574870062110207189607040277356862254026443515104871918961443817679004089981561711835378851745479956446363624400077623506289664602919416039942347918453161073871927671113621055292067779227297108187701087490172107863860138547380524047233429497769054194162935581412742275580966487296759778203995226170246898130564129271118131463018114252249865898950326588662039059481611840106128266226305588700798386371230291233539464740115023457606656722367781594560672513726749634874768433832295546367751783940148702065979001306721640016622023173795361786391032145604002082364954812956368156435386561665689266777686169598378174143766233633276110253751118083329840475055823392759369041629798089178475676020133003800965677281920041325933226180201534009449460315924947957426435933532170051678531593426961468362863141415036246460754817683277216899002706136083430163116355341396998434033172316217857522918827724651709918993851370327920746045188064228890586544944851562180206066547379711796175403371843693704751178615962951348479757489097287480016300964679892066858420042123004084287177117015328078113053572811720774983592574613728022153691276679547964028312200079355254328379065269824685494709447084103377212585610031762779042659072499694504055900651385399754762045677711438463981796810724063026221356656302575454764619080284820445046777819480791650131859462842839413464200889343255024092072010322054440493436309166813178961341973625649404476212760021517756413254703557092912587207117608072767928785956926520164845973615107528201202605735267711918231755815338699154579179808755859643102409466330304208188663358599263261818670125508815526053970038808450845922078350380074047199035026653778991028325560968037540792025040957278495803443599406919235629535335814949774585574774212786629289174769969585436562156731624666142710314946313266038544183409839997281202726880440903529737965674177213454130187254011318255094617665778339895879673661254413957797609405682241190712125553199469124718965881505967081406554965488128892344964618782395431087574084733103942727006770807553328102333670179488605510014046742749668443556004952793893974120764517269455377037750054793027859658054476957601742042494683803337974632169120207564613692454772380337047370039727135663921636090516858218881920711609269286491863601007764305258243397623841491526972162293247715906742636920530339942679890929315944128877453411892049770677017564092088064367543504730752502112221004831618411653456718726469306677052250053630111406862475214310700922897659766931444861080706794507955027602221601461471995271486730709661621797519132527901918447861858838732246756104338436384989617117978996874873395846401160666787604170328355677210618532168361469951288802660898743389992658964922245625336091187843576038676489641494908646431886739079211098501075961191793103291234579704496993514741742366194262107354310018439902378403054676363197611727839209557853822008002980955412673266039264768469730234444491196624272682946951989579592082941199778848306412963199886523983781506781409753739735752215407598034270429593078022185213745225285888633493411926562337740155971871221705106326097686469338942717222751816370962409739970531185933963340534454433601059321040752116142848732505999143208440387178654557103509925856499489942004125364418895092987883632529225731188504838494212356400121544214786397414692506316121016330068297287181944685164075407214723601236146320100576814568496360877289780744137680081212872802651141326169535050177310970549531225604121336126088394038776703455425504644531927783310445690347357569005791402377231856590295994838920793748613834942354355170721219837906325107878495553272860918770135423145223004547911951089893750616781739181353646943618110242265690912189633085458165648697172797453030088847324196394360714970063470349594103585207176727765088327926749953097395230406577286661546175948127718884754778504393713479679504412567991777771448376494600416070694577786215111055163105060528767253952123410152727231330185986544050195813613425191706875630340304015093273364613346056768938549017749627033378602128258938498064973042616247235153081236332781533856803662576155592204073734922104709343786410783875887423350961474158818159293992022031688113277230554065203289707279363192938470446666270691805065109199940341579853103660478801078848624096320391552210474409732705307195328915584690326407139225262265626491812603864988588616670285172530008819480904475976297830732353988492995408888089300817474372395170514859233305004221150240165734943236268640550679438717500793058463807639343351404785693976125886241434617207479473421405685879884290304588242020448051954567869583075585012815394192372642349555999880739388689988884694715178447066014032032672805292699155946943597301720055038894601911684771708175897257105276308733926821562382109390388459766571376368271869059391864722084387022305911418996426730248484945977835308201480356506835764198314977870272567183079301941693080748918321051383115039803970139398615659008569434155072810715698119191545258172002120702695380570366742375811597313748169658081324136572750292413048600039919130480322536753360861254021973690308310042976151382281742558861577831422763102492818424557239309378228975308124263363141162814252904745445830503058617174073529097638015820838218110961272157293594623271389174740235146415823422916824644274050713299723484644075747940313630808799434324490993934678449312755719858592669600447177217426575122482394044162231003915073163764552849119073881160367948181176142309495455296832170867840852248832020947247792077032500345770513641989270342191440804374293636465770920003714483346039845613813725058963503889556927809913526245995059094989076968486790586873458596389532814134856944880889187435311034599298774768746378686675177689259718630820705849898101537715511261817149813996367810813790143505589589147180591479857737346361656442429549610581715643956701382806565596765605596659990480231268368923799344013930678325213314513884576303362493654337703918559275298880921471927688817218763715296246169897565108513740691262758876586334845362482950234270487476867980691407781239238938646579703850866250079849686581053940121950355105827198366010098624718098549911802551102049577094829617465359297932879962122019888113074494326534129377568849085278618463435833139362961535011004497401124552650140260585988201924432024369387022302056106183238054461790889739417959309737419718124961182291173984695449334419678474539149339745810348393541956447167709709747878860248817909395762253399603866968626267483280103412001652494193355244924819112099967627343075694580009158300763940890893812718094530643713208989183600716490002564957890687693522161144398547675967478384492246446729441237413106366051124481148676343176011795413663299477522063878549770691359103803732820587825497379456901517324105915252318190295085474740097073448117248652869881641852943586095949412879028687746805484028551190474604335042007754943595658959684104654807746180108159083865122180330173148030217276611028750684932871179232208515019574412739132352907192964865548124380108955517446512627303948384020921125238800296432659364816521693092603649609871727668110981568852648794658276216267575965268378697654318469847481333690064276608949547211740285026761842784704194186389614754189872584430018084985428622563619707726713467305380733853794925317063699170812864680860228232351974352218929305321195264584864091144007510660567190137858479506522598165439279672662239125533572635532154477092160873909315464644571996058269571436984743926247461561377022246403844152262370946760956872570196714031791341611008838341444038717424774240090199928262305953257666733298259408973673121074748782317811874656897167820498451896544357853064490684437044314958953286539275580137784715363897495299859278036428556576113942104142662929438935241858389770474554212406852964870785434180705240221387571587133038924986234633667287253437250795857045507628035130834857205838154078103304516772003516239737494043605985124188898253602699287913958505172009812487144035608985271912619610182576636785802464176714024298560962909434125059455230765971237361399417839225089648953365602182252386656334871330844317126098550184897765847211067126992919128425783665087774728025337390896689852181785342892750277826619574961749073329983621071570770902027245102080404609942340179997562239125137587883718811664408840487030733936780754505837451450916421748322661838084901515611029412331227669757541592969211399354855075692621424961423710306951165529274325950777514354300520897179102780747038263267759723574319014613200760563193614339316659969343597196954383612133291372436193742749558069752154420052323190019796456206697573278842326512673636055874748753508268269528012712402972510466875473914367534057827062848847255148047861079678208290103404659683173663324357938137361320620422395345563793701941734137450352864872396506277456013431103702016657590575939664173444609657079874444630977702911938045505048493557636289658477493328827291968991386411786332383826039540493124795595617784805572503211561574612634772648792753214401348517035616023859115032665540613573695671035144529968315485500858425282123426736667503034782493458029337515154208785777818588204518159561397826614612507869498166836785264520714213901317700724482568713539362910529547246059364331138019130686573313328336503045000717529680430339109900364726434587468361830586774193535911575246167803617538364391266751237234822834056296354225744309994776538829651776802084120994649357441612500982585296336568119975771631959703926226056378962989895451245074680975761689840664436051986392004776890263992388613639606768303359128307560106974334825745712618878939899342850857196340956793657218268912521576335374391717889170653416133034753264339403822117699221166660853500688346008436577270172561754158175174045075504634301446906963690728070480569401712677232880226863837185573416232923331198410585639444751959051801898265225826852432986435136554667381175540057572253502630209488633854045311004265241494626868107031604296167983214024551802502410284099034748597956660296293223167043750121727259788347157671799262732062516196567896058354225277119472002654844863284345270271907586312431534976444285637878279895030787080253582915388805201465790277394348048630323811174736669555163213322242522206441249054090630717719748395629320219536847397653812819593641986784235055284028794396937623763874370157227927372332238529719182573874699282155672784570072293123396905970447772380756912113718248614079156715981954062352368647657150963400544514788033687580348781874584355671710616597092340630389952653119508491745280973005807577491923241503525655151631039375210131766394407216972073530339881883839127713117857370359208347767930202994849745088088256177110820879843079119395109089831963588274303256275001142872468992457696115082656491028424824808910285026518830683640955217706582530417070501537751932101951784045256845544744803259901213079712061659515918366591098371039155210358275647317236336449778988174958375524747917147411646190313076137940751613710862047007463676144679309262074541566269662836326629834994335163139260559962720280805672673376311465629257473293689620933867643582629076869636883324941830743325511208480505643954369590818088912176699500590148669118529433302339232475110970835143650909503247856146747420837107060387391765945766968541270600633483822438344048476415153149652776380466327410803515877731823639598624402292920606622090387949690693152861039125070394772600476681204186881664164338253417735662630919834055284523025060925577373453569735641699387671225695475390208187227758795333833440275335384297250900736415848151428385716265859725354616388147683056046159236068288651370430279617511064081403425016996162060892716661944522497319521118160814814802711455769883392687928236555699811737852228449059511864805107332333828561691357710532829282463378848966628691306501799888282311970227792277119252408594952125117788439444858200659975628828637941566213103256081343218594111129488495644502590218645762467788862878738266295515897128603424752177057633743598218294010008559203111442440470632311485284255645656582863307430495378429805105356299367263752763687072181463683807831726716993525473170148283680027218857308154275680048303658168209420923272192775965443259668936161531375303948014459465662863939539440229619642608022408873206375797768588415677041621512147026866580116470971957371874475627075731517602847841702099026489615564595901582751199101716525843234897742783895592582631204226642101730459767698699681738363191404163520597056011136836217148614970378809846844253958050528999358269910320831270585585717511578705916167240459027143439125322134488791079279294859204751750802840635658397941746832218154100650877546134307594001343357982667640882269000422000204136830393045464051623749829618587498894601022859278310618642917333980387728688152245886470554336211337372028907138401175287091515623592850981553840121033693897710823367422216652262981539717441079489237159894453794885956100158589099378718241477302383114893998637451592975294287394153811768382968684407929946449266907524848583091259377998115855982383702810032614974371776702113451562038333450858540961467224739448539477649713080308601172595916656353424124431159377325102766162717540392294029108058309728372246976444467863993351728425231636506552411151520934173152505067742416427055691413671997811064126068585851083484439660963211755772614410878572693608178104521282786272758445021125399937950952971712298997436908609107688616938202457957584904104088300536363902921566583424714836615127037185953359890157669548880372534924194730004367925509357226231850679366812228995474807270108024156164617735093979849091235426235936706776378995771414720348820592182554888701390811283516357390661511507579801171659539823909359105655994749144473570348561874361260680213429210405950877360574214879498091546440255268703351973617232036182198927619842549140756964152862194986890869990065808528912431692142496234576473299974259506053438186878492790308270077346315380667503422699210288163368068724407862112719056048441650423691402781081156816974863774973900899396641462922903776922384954385250313015507085958277076887183192970287509743657850739255533770247029909044536625852235942866775199319709164633160574065959995359719608867886053197229668127910925548278696455482836077424692095119735202355740132556292088408740934285817114365187673566986034274972376483176211838910924391887156261082046278196300387195339113336649186191320940620301947561903077913311211550051695206320533132327259359593032708040563960982473414480279853899535747294523391505318739318005060177055617652487703944496551479140839511311089384761069846917148354350674490794411862272713712876006201902967080837537116176893311263590420999267195695483847381743632512797250007515464482118494881450699913520434161156949811047392416655590172427211167892814437333465050424924582588214341336114705188259548514193222743076785046248706005617685672524361912040616225675685569122339455594351435097137997550127223572695461362107577021876531070451836502719194866770261072754723156070413803271120371279793327804218669839622985887804392949275009615221227431926648352869793314770024728580576893232208943856777100932135777983491675758408345129171895996232999818640749515019715380843702322695042042854128546595844864632066811742248939161825278276875019682747218539022616348521471832025743155944861782679045189311174253194577177162468386283689909637604643901341664180380943503517681978954731861204275683957055572568830120524976614778342777112095742436561633491360766337748826155648000334653372971168631644057943642309599662325244704462412526575559459224047533773132012401141114000909560161974039820836922578964654671921948506123204859135557931894783852707220850387014786181448526598476691227054646159457852329814207972003639667843436512106044810245648702329587294195786783044528150954625246472773232163308325918932397236981372640024534931477490086164077661063600781457406525772748356303422036435924908408490821169281289859997275303036207639847799610228617278074995056845827557872485882796190759724706599059256585106145868671393712229979289381556121385987465420827462295416538873773868859462974802577934582471625345996206966364334402161505258729523861429295629574699200282891736333919585903137219905400213796972867222757720413762305894373880970839256777029795963988548800255179858059332866626994236181663776581585564666839842409833668800152014177459759469014389906579292520977478625216027347343082531300216761160614871568542863892818099860106390491492101688865100972019968334568987771096842264536142671454606642781570930214658312970154039196878427710032538555581862491125649125002048090036203188975079594761104045209964300927234457632588587012849995300088195724160266186388742389071024730927122371053094707817570783515902945064800116560758331994579283585171777208017936103499652335761293338864280106405850350442202945964492922025358756727076785282503142147896996914077278379192080976604896176078753504695022612579443094050742973351231059175783198024657463897523483440365778126718725674550270876878518353250545238991030048120967342025759722926439690347634092156886667299658923307059672075269446048606752332295107504713456680419945224625265836581080879261394192522871380836013697368131934035097610993350292726187231383315431944250849298682325995862273535083341616368533239881175551018560233096266202591086257010506222803909199256188466187280048281644136349059912198877808609959495630581133327593537922318784701890394583291326724866606183766313823707600214732993820615788201685959777691670930409820182558063350491097238388003336430468009268652812403120502271938175892609050457370470620867920188532819993191017534351214692692271720336044181229878908006411109332029857788326198313561792714248589911329195923687262042099077344482806880993112809222075039403265197037970697826736612498544675234717418310815982348392319477586053353402613775512009692683059720244912152930311676202494982895602645890010393856393995890176006400318778404769210810590554354406028007753060903961081007366437375925956605443283832540392793134778251642942033781426630134482080748953465933021329422972164238518749611959164042882415348448993917075447757507666108346103083351266751305678904364879724137142058521358221456063095620691657901957232453345717719585499989809327825527916633698915009516334148231503166534911875742096410647281093419379866121794804082327486043904665887576758790044972349650662218559059050953485456525447750272545165244198779739407545503320566929305028437076442924308674357827234931034256075313872773887676109459741999979974668605711412889172602287087743059094333222581334338536554093329442793146102534901809320398128480230055423549391431929354845046958329405746410474250369620500858435974695602202817498698953931916052813955298770840550432503862580637502119549864045424005484954188947283575548384017770582404123283245847086974314726087499404999745944231009144275584125521510436981196232504222529910496691978779814936780915883884351586197001163622737354738596825987509825226641439342072503066474232952560114362557663923051990741632566916161135870474618593557322655577187294388521850747190486389629233390934280507790797547610066603308241131601535134050664915848599164974922726510717428976831486657584620603824568617198118701141731728333892235493341415474690468920943870909220270674374477642689533708894864789508760631601922225954858852959095383339377606050301114313780397695058017313902019332115838063683000610841704657679514656153078356907438533750343653774880702653043706298678171226037424285639283202455116901350763793820491414061605737966647504406328725089126404744706304346120794461443320207585896544221148440491705744274376340438973564460644989744354887893544236513546239424784724549104667794225344777698743681493893050713000147629851615886530200641296937780861530141141327722902371380254341637377707556074672965069512320031199304976957260403163062944207355122180334770434765637457309185346556086924845850653048880826345911049162574409508479771971276209161136684498316166487762197621123948559790069323132065336121081569969045169717394921649055605992660990136751125562043527466315476882739522427442944310003015931369938514421211041620490506090434264702239687449416983135824780085862718232437276830887050016482536131352093154984770808132695911741590650739767451399834177976464875842913334971533288523780282974905052862485356909145980137771622115014288116437571639641946317032907594926296826462080671705799074171175137234746772276375221604241069619162619916458532547154045112132565448238571216803618762545917139819720170110391793107039945603293389545606423371982050614508960662439161414842877545712191777434335196979994408274683617884650512145547283786784353905490764783785459620742185144633210580300469733862836417586601068094183733473114938963664960181448536888209688257667566004059749521744593806887916994121965926397532867326254802544712659723129525710916927045092356723863111534548687845791540035583027769076811621809049412678689358298722246708097463668343664183639528007975537432231996068859307234440466265397256630997149469048852675466538960096082924846710622539159289700008179532576696396307902583402265676280771878834007563460554763473547825666272616705935533556765580140396425908472497597621317055793331703845274993032135387077804910374936740758735190586505747614216282005215549789823710573821820987070116925768268637649770444488486762428537507721734665318354495721246300967276825148276835689160869039248274678465762424820572644387335549478749674325840638828613231296157169018785388095439537957073034195162399880378941733463135679232773447943131717332317378452532023701569511092108043828827484025654148813159361177577144941783512471276341438864681426755155787493822961426640153058985101970704393150783931233299205844220717577163493747492691098439437063502822279449254248000870883136854099337329330560651517481326124842642625644901619896039054392775332436638579684989208841806466940793972348941990883200851512466401390557453278774472056538832582700369731255202906847076945195074483950274955014253638122573621168497096398607270616347495278772815406433413318187067900086886957374051260113262537650533467038477967159994598234672155843771276340206191724933550789364666162011729093593745502699029375721636027205327521732044757101096416485283247657615585081216473856645004372634555606409219820338499947180222732813276324709180183243188351310732005026863719727950567123793187846233010003512492227903600019954277710479791099833159668773020327265383168400393558860462342078629463357659171172333010988957827758562287564212738180980533526431446737361302133160187572214372560442538719170135693603847146427068714259644708870110758460937007248990722164832801921780983025529480993959727835517994430394759731973727941854397041040771283041243905842584668309513087965525147670269057520289531958435393553554958947467644395623707720426959204037875803786981247110596562021233319127333159252875460824732257590878215701704257743057187889986348963209572644782613360867151285073452632605670167670199786768890875212332416876369608536645327814330502276177379787876189795139678533658246707638966235567404971944119419417271388933591815443025152046639348625137132422997813153168239281849827171520066026566672743902934917131870242774034377563174691791649249102935890179093410166036406988862802713755108593846100207996137254793080254166969672225337048550802731839319199756683906754144289575661171769237102630394660910151329405602603776861708684769687683607086432652353079111013674379813857996722274558135375187849427918135838888132262469935175867643717697295328116559183529429230506699448651491235061167314485321340847293124186375442405863542341883311300847604299087412470569484536413330472548382690930846055074318756020500709366605906824899812498079048264834338646309393197907427508981608134440933413669138521244184216211685645976189358192039177446383540668647490103544157492488100024281414835974969666507645230016048904142572954414909230680171953273487888546269767064791280043064305518933382689541773122943894367485532205982627948013505795225168621603461171392500101803548564323978274260950246970292382710302827313300253167966416615459082941788523457641975917311201668698657293687784680230844779249025078906520221985876916234449848405965596688733562173941256265970623604518838538549574979737595668885194067160549850517772426501500676080822357788670552039448442125818825463825091267540313901655396884940433669509923189694380392458153170995765623577628920780409681812559716350280548962158144918097673383643212002550426843710487900751294762128493757159423384612610158932408578554799256505218583387006873695111066491568020745641804672724027982384246620076556147342538873863417535717877240383067850163249096972181628268312822669633034164569168928009628914923993745977776676296242514059169983610097327467135498153036649404984598442732907745250560458147742699291368005472515477906280199013681891066370542385284973278516197748748821047853367241624412533110109491321384363504414433478441254672473383132923831041614100479505726946948282743729360276914339088025361738942190749608398995201008906869268600139939405995979891993234185608130538401083815154609656743552779077078922973080005090287951984920483711434332735862283282168043816789588343391872604033641916110191267030240316327780779023148941197960496408366298419912165679592984387073284753547876803433751594968227697115767737753703606233216861863535794415368190921197083912513127061169494695392103862130440818235659815641571851187095169630093050386199488444362750260677159162831316295658549671325831309072211142554572207569018476480250424444294566369166334084070654981715241090822704591565569329199937821099181370390862238031465723001458941764347643971038767642083124214251127301314966000074941150126567353306825056857227650776150911608211485176437921266790758210508707300035815937437814889484094704700537844423261423236272362798500784037292372043512025676457036295031841226596812768660254359706526509155853584569855201214703282479065820629113883606975376983155974657689510648272916458942214767134164674235568023299402464068603103375133316170378823872992876097759315475191430534529932548631149549394884663508919085469056661198074183055672456407994383074564054628731615112032766213870244522220600675814884499491558447581156599708893092008764011816972703994326332990881991084927699333617150020393960188962069709558816209755293229356575669273976214082736304675532706115771859827549114114657429974912720251865793478410731436487441332284055755647403535575834567457062281212494854017293588030068766560443185360428150119316752196043048978962790726184921953523633991171612611814192540735973308031087448487086362167179354695864268755256288523565501164411776278718412339293883533182879707480707150840772698678088713779020506148281588774430582862150759127869890878200353936142671348481836914706204402175350944684266285025386426390917804080898379919187317807676100634068535779759706422978459216604906181412918568797799249044465324782356966373179874884740484531712932063837331075458696907807800129845199222962841276674257658166486545268659293777271934442463343244753854942957716996088625864312795072666812554943931740503342066675288036888046114604034337408332164876084074135752468233983292186868513713443546324595623788476014869094038732911214336795892908758046984341084718765303075827386220975263789680993041180583326045661588177238421175194419985390544044537939879205621026771284581892152198432502872799443803393297810417716885392350090479790310199825781479059736468916142791856411103524737977690958778488718941787017986286748134702831994823961685019340488606628190981425495823289359464690668906746529580674903810281790162103421263544059204573680126513494315825871783313698038187622548154267530172513706137564977153234737383311707620297404453677275168692863173781162195684097896655510277008054745004760114689846790316884335943280526547803925974956114431347150539949439812184443088430316495421570050469373826381600902006505129237953872387981665180275189185614598077541704927440330811214736864884796398848696659541717929466878168046255532082867335920256802723713440453116896947630026742086598634333731846280279733458682136167360414343722293484885526715044963809345552091004385515927780130080291445190479588869835561063670750823946295484687538155480479850139008775717362466092102071673919817450811403531832597930825600673861906264858641491418127353246524343668772844038415488376791376395181456947911283598672681072884807342616347043715477027733854885836357838567425539486956426033481320541633654792125940763734417069377196193857105910290932802387243082778538591519294644412709415036421607152682503822302854937101967346465716344490578135394526659060833553088192102129689555575173396722324051111333045963701754814475687152416322374824475482084202584984048373716706417980442882906130897430655689343882070142501063947544293467793253463420905632712061619158305526196832031303599041550191102739490936699417369989209763976066596417106383705733329473896685077631133408226948227654653254448280919222978680280038249173372399969042313948210285141571055986627292239520771050792980615546926588030811122975439536933101321196024638836809006763656042012457525947525599897397610022426682736819140282261341002894991332430368137493249166699044684466587742781124722125527046111049940878220871270938306542720617781963131967721185050957666145446890699590598499901424420838360181807224007995210477770972289524196162206107081225174562897256802915804943020756877042111752428301695905901296029555011394358811196994008590781378049924269250910861141335947370473188640468485380801742415257091133854252361002450754279445301264816707380682688755189499530108695148066673955044091877926920223642475039756727920704563436317479296503208249230524795971067717695627412626477159473175107796306690379152672962479865749210113070107872585515975293551517469884039385059789612695265943896493330272827077677209494519626221346939612290114299303397489358758481730203157040833796719318824231152657059362849636133853109089046695782144738668497604988642507174474848815273436041458403544209125788710098621731319521180770493707173860364805220580265006169445385132397762055143135152818452427325569215324600762126982439065762129170123072379736274181380203770546525122180760400974994142038676725233287873077494017145222374256338235610815492394940533829426994869485651783912607587449909022898306296138029409373343541641726361665053114746836186059468238909741467181034344356598926482817335223026138011740447791335398785822792455333278850295130421840727771005738033570931664844482451943953616032855427886883257591925273478823576203951616703554929606124211993475861940491974540727556114826501425222558919880201318669073489179413871550244601536880790082608984483218210823038777809943100924305500255226192298668103503360320162677689653513711221133509476144336970573445527817959294695406701993942836834446562959347270514509046461765387508506605682551532728194227630378584565633129847323042930618066943349509053805833962319211587352414487997988980675827020281230912368057910627753499008501494606448451416610907651503068286385878461906668111263624726571824348021824111391419910808217029089023492709306190406532929845913307497566743123473022149282277258421219616980503973080766978047411786727627530630037937168576066179441542452001925865641589499816805720156687308884982977387942439019956919129758109365226909745571076201265741206972046865985255543550464342294925471588643886273075468502073554587941408553106971777208452816404761256371609297376052287613003692059018945112670696603181162637465965455434384946256874968193533978683838675939342821269123877822223727509610159272053302726638135013126862277408509974820442251103313628920334305232193867406369896964942107853421741967539798949780622837451031215050375942519697416266676312828395842989517300058896215684127794229628599061013838564922208417912869403168695407636734473668147444140457011240576064107858875863792018072789483430577503620492083475069751467815034748412998384881894040250844119063602483934606773761824748135841667674067886215704780280777641283370865795000479296010957129680901898731738966180017155336645124789321616621416391414126260220319551294265414869820529157329553180874942868871373843436061100910380935120628290359160877452033822959926897426325590853240217937809554893058550427501002098412659381207195636754384707045393994492146818980030923585391258336421823775436695671633881933166250170478924249144387723076433977026128139740172079606928920745366735674583326913623911984069679347529365783573657059244350812169819404985176440567990422516970639805782368484412464541445078485586627447709821833725222405634145007801939220916609341106455880230528616418518594286054146541465261498303890788138229997657367518564226888857387146643080009257560021696456328634214067067922563934436549620195144685782335819702450001166704413730110092657721182041147876991088464181303507489503367223468004465237071939691304111709003912697206805385040024892815460884857733962674096591991240504172939063790610990919389080796010136627245339015576545905667318215732444480720444960912525448897264990162770184924450611014811885990113542718580120982930830825774251718086846027000014896424286091804853475211526066914746205648528276490177507321647228861930238186359239783832863056107179828626662136336878400783268726148959412889229427986129233961158783347839424833141733986734646733163455748468937999621662086798932388884725382960661037977349799906313263351935787977124064551449616778349561045681442408955016132886077761443334099965082586036882726864817245369740814278822114417100031686604575359738875564104215420673432179187011377699959122692976241861452283954951363465769968282163438990067053248616384288200131388684943076423564131485660634188554865050028421941556940380461229699001562817535648611830898342832468292212830857603571372623442029811757562684434860889917193624127717883642121702160128496068565173525329925079465148272644888990482535772620548874814416638958218123338574435129609704494791241114486262024065065870460842597152113762862105336988139886293113913671172676022114874930749639359126819354688321638372777823184940223979105719097146473393821135800400850177035845778940890484900415268459811000123261498442273702478467020156277221465398755655054362528735239377153547206619408350359329003418298425846662179014503391252346869964808368410036480100305409455665443601820598270155099865703792622264422251230275076099137188084215223708797244516955019937098361564784523415194438691578715000197610206240077079799447597542531698612400325783565666703109236054385482421751604168303416906750760381999533550465914872299328775885311090064790853259475230914062495244993787073587267923556532897255099332248439020840070856907954307700263358566061177786313915165790666128170407014276031961107872957399828561090305798543325630979297436503951503628357046749332008795265292577162008850509694898903121324421567378697942708857018614688864616886848120183490154037774704721641995630799887389428001866568509900937051200014299552401285322405864059478702865664280793903383384470896274050985502384472418415999292743028329860005437968101100247601205227310280381118254323058599388091554522109509757817151492862559590382539309607302304885251439632814963929322981650964502542325041672818788957307321095125268817546695264389160188120719855310119674655671406909302919190752067534772247653786726714354170441519058050353759917299373176121690413410820441673118235925609754060354129172519550369263545993800968170655479571001500673862799759374118163346649044679038421518432387721962935034617451379692747226591663851129050856876983393048684007201352999331906040495588879923774018220566011739060730216558045777200443898437517767154996374880889165818854127415961553268645156158169596410026776247844252631748848652192653303271447813243681912902961406170094834925732633627267295036993118918163724877800285063298624615622395481969725938746718003178228686877011684919998743455152254594797145002085122322925546722194423601054178285219241414668740343918241088277129287055395131325239219036573229632515964375295856179055798428979790373606548150536842747082642352755956806390652364109747387427412704463794341174753545423051303821346542391745496189835837262561351784477731595548430271103970394687180013869714012915173107313109836553621937319212426192579486511522021116965432102346444835339752367790278571662017405888607299521868569406841345169863512956675990011624791855601712347293873635574165351810999159733389744986927981719195189710236921301827892556806454760901834663903453465851489987423421488112078688328544948442032603567494846480090586116156300565526900473281044981094433156649920871334313454071833663177968739243022426662838246950336455142238094071201769956159540065442476297026380093674714294407220656048359693274652124885934546459566312565021910523277301001969223601938549079873167764986998166803239742365539308141226987710992201334373064912761258946801193083016504096818341714784305524023016754005135223238724312005784941998281751384809891146823040318765836224259176257550815308983366937332437114973281262443233780695016335897550078643165217009046943438420672075721936347757939818642431485741590567497725891454969078904803463606461764740078948411246457384931436913118367055745346409028277914297513412378984797439522436818118407734342684168910829738942053249456917778326437787842838110029980084542717632448232793441151026239639712706762541990423211525161105666990493928995929044026374623667314680154853971351689360404869345423475780320499517896766315246179560380716804404552413783235888335610035499595407196228458358425604076797511099368745662309042287863614387143197386528440151066396582324274803745135186333567762752349279606583752157502918813900992550133322995570026163621583092653151780977653998324593720891388646357992405852774769640406296342972943182385685321565811055950070034112342755657977270004265404905423477948332930792287135254384141102377441367404176662058773714355957613957005344672139099752853682261071181912413865353851758189963109562021210764623986933242472289072446409824252229494433885604789957352339517962483221841285379815995037599822723949613977923915540312142637389562565107368315470647768831356651113170453977805636907758937746546294542215251185534591912972682218339969316684100928034746285393369733583661546282852733473128734705810406834370958105056337317446174712404096845917335538319933487846864748501713484592428880896926199450127688884432816588507152175502543651857377563748063894552254076781026300149250543206276924236611162278940550634156893006652272035176583768308908090332121025168153545978664786443278587420065675085727035040112875448562402925702353485652799425561005224867343195208972817986003808337100385240563568481989679978227333524601617958352639577332915483793376240208635973300402050019885169803092743170777392176316416894486529796441955914714077065661945424188097162060649533964376609028276734054084218064798020118077813240366494290281126818632997121124810302794565742946237638601233401985360857476073398709642621100211725081089305658254307391308766261932990393205163383672496175993152373549279030133834204135816824098571955497559390403341455560975185761823931875373180592933691749631128483619639335244181986588493277256779369951077924595078672643528231260698703467372325125018745979886776695907375158313560779188768203667716971523150738468390259022153565236260523752186057802502267027428732759388913690022504149110950515169952366308460532896802131873271874753632295877566738674794325191510420705323877159517023170512313914814154303910375858796861176253514240411217032726933564470720998862321909871516277489711293015878862994101446968974465817205160451380844534823404744997726807725162604837996172834127315643121442961306893839827395817227643803826765484615346594735350800916498161143499500037328482308818763917539157590433940546493488418147441826246194054169873595766943848686835019867601414503452918022548636698859141113360844692169454871231005948498514330230079193324990765950842567798806758939464720410554091329079720521723158474729083548772701032581885008468581458796032445063741414505473886571784510797126035790726357630363787643836664334621763286169209895591882184676502170875983109160726270103844403997669878745942627041264683792278651181943380423884970857746794517597702618472133009035990971745229990411222717843806466935488201245320040840440239298615583939145684071186811209547358954652786834623907634216840429337215697820383549377459103839725250479441395646316541606511031701549173436859428580079721573792983822066572695163016190052543037018669851709824685463163014568798423547967599698629203908964365767491978743093611225205783646299212273941814677233348568193597933028445777501654464978719833992791613596282769929898516468135794609576091437961078671164203353430710545829531547138361345541826976763577870635465421483202555824489169256954982656696550304249258596979458196895279406684467142912065264686933551062862651016711150265242154184818957647572324160291928831389578250774340646046066083355532874132681753302179547617607274488447676209375932574690506024930215613959945016712123801173942532956173985172099186961670889608233633758773066461090051217618177363272568722380130506592240954254793111326197255886177155816161798097686225533662042700209452675572704941486216483725213551262884450976377597911005607723898393845663659137225830244223826215620943090069063304564378196752978539192311974428096041859060876482070150008395677239900408837085160555871084232454732642055787629983938937684433958983417757342450764390583299974481806275753999457478923596266859618423213966269289255658928174156457511513185494338070856520971690609932740753817198937765145550538196402370987811316760577667924385629574442831654784366838148472277661761982773946432228200779881175639968978917467085555694065470769889242042042807845978855470599038979560808093197984554608784157602350202152812747773080175570483276942921754040562747036624893972186065938392407974759540819806839912909964510224496621107799869727209792994510817014340487344000496330936365093819397148668103106475285455444928437517009168268733939732934695834570075711529346776383855940802764413967129311892279560185387804443984002988418629188224206789331471183782895522762884676202124854819642058101026844518178366002585241399216245837212539161744789098073743164722346872903236636051004593883253086585281909950482198666350651277395380570087429588498225343280815525263955413246696998877362973874194345631594453429736144721624258826405940318417576412281100248977645442157056374818233308640264822074269729228781396485735356129053730385267410681669888598996652142538195715331922161289583136043446691524899719646150471834452921096805584549032950239630784686780434244019815875606411316180886968363724783915473643610377940647681222700318690953270335828686324013698389654260776836784413226043500558943053117998354022622121241338939908334828252251582093462531469385991325958397630842230132368253867867585834104637157177940856407232723322268326083417950193992602923966330661645229374824927139227921898091495245506074357318317799590408605340468355344684351610567498786776511338775655886631910217956501617580088092437681407218999134680259428717800309541561242077649496851470640811465225034057291028367466127685768924746463962200448937322795984751004411096103428572035518561192131350371168889833703335581346725632466219063851617748445773660621808110242182765835324415784495456816838427032351252605816076524911641268796674042776177017187093964296308601573973704414074560336822584200994044129863754257835106404105035785509672749438246980141050430605827676999985623106639448215327516892851562457917209491610042164031736520936210592783325642265349641501485994437455988545436456304936930061130264155507704642054313201382671474650597882487720162681477080730268150440060890514663411107292037999557221507966465567243305760473806498915956666255868554581443635585214718633413005716396985895170204329314812353353771101832346054693701091674291228551666794875472820858741574284176721924281829329739916972867134361120340795523733213560009595032413278381106023138146109498714774857146066932799472621394125656797629989523058271078194975719450302060044071381840485214761555947989187607102939444465992016555574782374043658521236612142799209681215855793860652970684159828526295290387055438564054195312897824691496659606712973077217824794213376123509933837146248374455616194982381487447269383937281249134890889914831800433740443559046092067817643651638525631218004489465373598637103029221839633282251657003687092951038768163140019904575130562443808092957950774931077900790839186280594035275022172929229163517547565061781896633512016820862261167119604829540724962505769566032473750668600699271772562448713525664300715235808466730544724212105641975518052483569111103721749627119332520764468555592181431406871264613937597014401071659105822219055938658042517346188492525247887825138526788627551155322994162505808278109446283707575037108560509538879025784306299413740422441787897204055825619972491901280137466640759841391404296177411681886412264471711496328984274664181618093481910367811184034838804792853683340441922730889106118905808194777549400791910985987862791686325498189047927074536749402760276411719859006729709330648852067654624806255761200396588928354067377646138636331517666535740655136940955947212716476754157909817028092778187212619618984819278050715316772135400598854440908340078308216632721060673507681955010512854562006119726235699300355744823204131009536131303335444946687553039727534934208248526589496537021233007932402815826962072432430349733251368737835729885860815665348878052415189977886750012935281191185147751110643537560358149906324144052647415668418333420840235102727737669672237841421470735488669722852908333505153444674021324451820521324349924478141063369160879415860954409612991379405619693603409629702653939368807821149910963767798411724852493202999588876817769005456661355755663227249812170908009556965635087070633622886922663113130018190941706396897310143285067912003804423643318620243978981542649237074716313058728270412274811289591246994741984574960874934430287520516499654848154365397184525934801051019948862323316174067680753804716804830966764047732642942306411627070785541345814793159330900935502818495190997618420119551654070754457978020361725571760335538665432767437152532879555477960428946607493508019155817688561168226251380134690684768024879539544157952614325251442199010272188390714449630803659379081238782394272912851680863064966191528457650126291884165450480773874698775019572021722886887423425929521202949191427048804736889394682141551615896742718508471695013333341047197043650417195085605693724102461507035895804041280430294979161011470563592759635549607642114759643634963718805654677227432767875441069245376221637065046279976618098490444037779948305859527091153646575936499919328214538869435787272569879259335058212480903297154364229205731932328049043345554705427124518009941688596691974383743865366764625666229394996525355492388411680366455564267641718802384497676609314651344570430333907291352502466355172784774028999801980608792311560814850522880615465245890025995519418483757509138264576222274234904589935773856881158971483459389448628126470808131409340154040070677653523560305575315735510925397728265844538271554076803296818409475282265392537501892697088723123834374056753322640581116245718734581837495528963089517115815578193476214446573924038766224968873937388466007386380032373878257800687710436201137105060006160817728592450682995898186821319521290833141787745245759988344760937873455742652199842255448578308895232587678092204367920369819385820900907390371593844030355032527361360677790336378945273901880960042589769326540162316365515264660059980312027230783352412979178650059801096505295898055747552746399267477531091833397538116010887689364011239830412192056556592735900939851409515573454653553974888549341056194812472123793201763719419126470187367506366797801582002302164652138421007982415591898160569267710350397364825530233613152673154305956932554317787742189759261710311119245237542208689324104068813575626518065010302010663268272497789255699406197693436528671383871000575285173623003760022595525994153975223866819139440643129332660449537576420536005070506524187676323686005827986899607226654409944059694432627487225349228904107683943145803450204159472122537694028916739195387125433025293736907513164657697934623103535252417388202635802474692767736771596904095469717341047952236953039982552086703417661746306746845626639917480977209337086399489766522344681569813758862240844467048350558483287392104154621746977622672612210932000944640685952300027447494792267074215979541722411076958482919884130319660114066609869817427561597764842298678002476183802512955361138464510878388670342933311837861743569590273451039480145553523415621205158146250875215860112850654704576450442766342102581531245157198243544502040612975158182362979821846597616434624772510680835981080883961046715819734313059108055815497443020868062471689735340147124026528568802877177128413197795860701914146134782415580122520180046708209559140186695530274358530602127784586779235503303488896005910182466365268109704228199650207777763452936970403389174874488266453032054222242337251218287072488195787063578952619526287019267004030428925747797374974998947473586425881624157083880440484713316194822326722248474358812535582387072338122763646314273283030420252562611963379084929839400860726833102197654233086845851108544749436925103406352986361810566745578560581571276395717590234088363929356626836545473190817338551575227671973939693745853005971717842293229296314520373400593458332533650013694838468326276354766817816668605552459111007496775778299187631043172588793588544824258787970665470247106434767117794146800114119981364938625502248129846731564024239989854533397298587679447574213969001030391554314215735616487435652106951177643727861920145018289784241558842258240355774576016513032738850837092102793324353003024101482512554805579001139122355682984657487226027402363770727898591996514098922181294873170377151761309587735863902296945259284508635928927915947687703239055638305334473603847646472408504313264700175505815521840201752536521250732093345724692997098889986701461836585221488735607039190035178414903642603531418871532136426299997812687227778548028731892866806882098578727236629237865969800955045185352700302305608500991924452481126601107517485248778831081303866781576498774985146340273165850131266086144134368955938110400123176483547476687947830610298671311542191499232112525953114863612052774547528340563596538482541067723891395550877254989785618422925782440780494555870686761828941944205841488389732922595803806649681114097880527278476176990661162173675014953467341300968060517997830436201113904407545459833969725639490147469082443123179107333867913237215322082752251989163701350679050186506116900552737517205219698002390613535545807840118776003690586187234123364741866693763763743066886274084359280852844758605374086029764672666182912266736511226947202718149456790216023579643010014044601077392668894368310696819853958342273139894694419356101391942381350051439157454676351456081219695742894467480191228496362926265991699627200046653103557972325836860460601952556911467538994820096230412028783950067374539415487773575058178486781777765167390410876720273151562747736050252340334387029128955311888452637893709310593888626756264511636713167663240420349261996513912742103461880075242543802801087117089999550132746061013476299464947921021295671532152210634561536936823762883242768258941676147154155319855880505092346367872092442268893380616792436320689248576011929267284212278190594239235603089561405580522857782379681594371224219438315423869093767144484633511811933827844794061896748414069380267029473292011404059204560742411882923303049182433791901293510061974098042064769116746881685308098450057669356287147061824807389548883826188822275369340122796027193879641629368894835600220924125278643045902991653186583865460626537548035497404824965274687773982578582923665960513654359257278189477273820015157141675030392571928240746201353901981414611280975766159170874483111797286164813825547257556148514178115341161386957812844222780447589277443798643716646943351729561304676891129110339775400758161027819036836867961870412344535911013019827445612468839466818679871414971438073856907113370673492033798910081584399693105717768502308902456053328908463267310011619814339442981072171369260948022209118781760448220600123597361245033580450142930630792861560573841624193736763746811021994930730371003363571546036004675136675112203084905805503564806381938310868032798950720608878805171437512740066641797252183844197597372855544153391821620944384492436617731562459443100602926955821545514801254010724963057832612688076924507223551421331962340183556500595988960042129437416547104788406795525056608548417096343304159733681831181758885422430808339164388243931808288810936481619090063273668499996967842187523888708144806274806688340405935399200624522946518854005202146856264756290628470446534795160187033155412642947360681469478335282190776224996783919538022124305785368621877634850480379183889030050517773311627060446958552167530369630426786244353496319107439046105638533015201121755483755507207007011732442264578234872385429251692136562533418610964425851778203581705509578518967580393344692109877186916891913542098614665279293245848569432711189848184008704060403997243531000728803586839028776436539935297050327376070438478301839164552466149303810718960520915972038508420359827943373439803594431536083953313568279352377947549204134244175119102426130043123076332125940447322130315184402092617858813073846313165922773669948190705808225111355929167384820467671836870825524042969916190000883850989336380495646446281886914534939190479485126406812240633610900712119280346945592391415175981203311295742433583045900997504118464989161240138355260587343789421912246729855718348276172134958685093906477428106107766202753851410358632022898364641907014535712453887093631300250299707428221866590722400328589663497843355705753979801889784857435594680829456691583815574045293246184900366415909372905739106050515715795190595262530217300124169071604451736142216760108223442367862029685613780901755174311859748542250891859376580747405385339761729653627642932785275868273575802005864777965381253619581643222287748768429881012559677838114114357176193717152909802136251312244220944124861637193213206951448784978153279942296741126998676706059245916678909003230833528838708914580243177382306695867923340607590207501192863333132502287164085429304875175076246108575982682376948316693147091579669478899322016673074398830733151969111661482194419537087556490048121173089638426712094800966206636010729849995535509598919348785506587177774214332889471571303443463831096546783986429405242788101887432167997968950940194617119017598936135802801318435634705369719728774977597014174880908083135016577315970590340994025234738116119666709916888523342941415740338085833965702447665773758157659650794429211434757326024581422405086783070477642117853007788355860711568393844133025831859690645033946658894042482127220785741650826244934231044804623011107691943481544347850431068286267762057831918390726971508796116251448835678427311752989198118850763817509642444193366485726298446436347407853746663571168726902409373874232768101284209222342717590941103095515562677758437168786241461994688499725760998686906985244760585795630605248126888575843685467252789394899079365411889779877748032781736810634561153453834157037219185192248364306174842427587814676469040354808296425075134383345849327023708517739988393590040566916183847444778824024059344281067275253598184582649005159368937239380972918915944692260979696166212610788808652058612415592713611327056542404084300650631525738127252692658803419667208422118086680215338933908490217038215573489347089215461327041795312778124493782501893953711428888135035155900112649517182091149782843883559365208673226317865589591506327331686362567113337225724236073887640037100400251657864752167989107461302540051311160884605481903298512534073285073858764219756236446694355567968673976169338561794352637468247399460648527067354702177559195921521860690299482186759187786076772626258729112457604221881667317152847472454510661046580163393467502761490020375968648474875335834668767618380102275683343485772561901816344009781882306578532673433620772698125256774642043345087234757482806787773790878040587322031743755296434380445967457093982023871680769306953494268014103597948820709481623726759339681001112328329928415076307969120135734435963286655468182824191366982516958503134679263744563203299490928472093439357821370923679580846464617207849377190180554208547205682242047210393160236437130083814827446566999336408852303642366810851189774360250623856901469307806706752954866629648046124989086300985888490594109043566679540623469215832241825753528359481065553985569668948303008668915795148349574767916635532562725490962676278054653387923095464644180922251876499207535637933512098710282020827145206048499544307745461034823985243032273543455050900548181284718206687421625074248772481330810162140934681000450352058463327486315456812222543952078147375182397699112544053882621082436798639164558482443622474933348637076700056311936962371638215345891449427276725599855719296110821640713039659626240731292124448282633323383256360233103443356220503976633498314401253289197336474226657017067319564774236729319284075887826165534415588832950960885117496009031450565664376511894903910288496438997484757422472554694375931816724794709590209903971453876574546628504401197216729823826229096676697836078205462778474856592331046203218329137580258722261781595518436078967962421985111777128905502360511361439715134013657295422446481292072930131334984049615560518493473492140644018167426026909818459752669949351807222164392598849574918911093808203402773727785896946780319953395451255633081679041147245911378613116239636843517972270213874234045578505197871360698405516602182300749448682734777147190648896581602478922169854594770403969496483639757346420218562682449895197750569622330134147743675706433896973633106878336992782567710283252205854379562578808606557589870709271973878893759964805817641023782469547956987764343305439773255976949833021382244394477804227862532294571390019438594083785042619232702349987585810774644093081012913271266873422437269611961429475500746258614358994059859798164216635203189517660391350773954465915829948701151353330698442842395729879785242529652798925794917947497530628397760967631127242088079776908028868626091321761334042761543070916619322108622868832970648995229003587426338124413813320926039640084873709967962384795397992526466775357601413289741072974314233525812301480803991329338517789559130876310777929658372763815620947055273011095435209335935864219072137607322600959195127727892401281433569422255633535390788551936424513421743551707783543312807766091189583070571457188042225819766916163061724049599314248238986637133703016957211210483055296757762052815427731057578606114859529309327168583692650877659393367298840572220814195820588265834819911738950441402433820780741928946830794037887817905188921032884584419552308481338039455973524419987229893927223623121192068474268551377180278416910405143665360780466345029294586302295527535116998128872729975242734958005240968032845019270940320514512882706573006709348369567208806556874760416071285832268486017874285085643514509698737119346633952618959728577277307459615395722462749064639136272482028244800160702678033897598516824784596920759394178897797919372600513412041007537205078007926157933659984242642274314464436464329009192181344383114462943508416898988663963903710764881959516323007174360037524421646361935392273485315286374018275783658933743061040078500442857281211432751959609495509347470208233366608194603103555978597489760294982269431272137376198201557289200638392361972250584856926904723145273676476960560016941054988695254495402067593238710685417663851140588146608420323968866933250604635114223125168971379154744465446712546913769348219223520954413769736132382000423165709787918419322410358928858154407307107193781383076835118910460093525425559622931443819158968323418427218130215903386793166083161361013085880915751107647962459275870219933817591764683811640936532888727464898773754848534113695323315056649681714415006648901373441925953013751776377969656381154237182625912325846852664764459109414646087856988016944139020455037638267030499034840623731300977001151255946995487043097511338647890515148037495227019099620828688067574651514027897235378934513828515310036386192417078582546976418845112791146275194830045285707423652013199081217065430351776582095225766335835175744665724817255964131830534463727850997799174687798788184370077881686601948562214008093275886617634507874778886096157580402530005923556999590930005690364984554657588252483216188185134556605569163269175758176391116559296659780705859037373106252129921940646786064950550083973700571153787366275539381692412688388571038243094635133205333542098705909134767365447041188940910151946871107708998879770527479900864584819805554068513885015388912398510981808655710171418840367601476817585359546817854836399788255038688607151332383977146474713359695020617776655957200148798157889154839806589668292667499320480087960085983177902712241658146825312572551531179585938717430960172288961318200609378843761236865277590742967793512064244996365922438568345773278637397896770781888176565442295524399280258572064432695313780513527870593634981050086497694267888661006740227457569465563293547263526626945851512981282364724493980513943233582145369232820289116343499074156868564650029873454131301098270813651436141430142528402276962536538900800918922991377452722974599108189101353003518936022947233169000372917006128882014179161825801112571497566051167425937555458106804586982183300981173253040935124020112239243509001663938522167949523551220550059430642113110966713251807724973187685752196365953774949830385760126205650199413910913623011556140996801758421312774021211676055222848049448405796149126926135916944577642452356681007521296116809423645245080835361935194178318709239112142082724764101893437568800393408864572487999521719336083222716165891941189019890080373173416863127164105219928939743197941035282406808689099049395644704596131315185391848982904461020548779252449413484716499417951062134796647236303550589266981465779402329565690382644123483501276574802168157582371108226401572997051570389821979542693383505027495218041404623834818148973745792053747859274737602224445908125891061764914458629344171399157524347616688604612813086571491036355168562679741471618510794940906495991220718648598361227844874812667478519207050247583028012993094963857021153358628267839726576000971215134868283846131693331226004166814685327592066980318909204580499261299166392837828978741008794719081181233062982927679651362962163614726493674334448639098722981187017396421194590689294673602688194318105900740594715373310579607298904420139831018327656009316756581382354677010065539624761922141702424900459012444382463282452331456036754118518341838505077679725820224809764217845330529123416595316196976260182054640409243654814174779284760325339168661943660347742150081726771588438032732171452847370789755584248607680778453436294896356390109999654057017233136166789278279914916814171335034958777197561602144002466772163228996659152926322637163749840519947389681769512699499085961661194812120330550317568026143588800216991367318397775923416098312934768744621382676641920231664337502428023284685304918912703561410864200460510701134873918418537585430197319107356094355602897844191130274033977475877534970618820492877502545980561506683383184816867084027293119607296292564386303408079685595275166002160484317516399460914158008609569603965528471912103544659616326577924611370099060335149027695990898729093559781379696257868945407740668852100738418037636131460090995915487004043395024302222305377109111321456293586982359409760768635143220917506638474396282631534091764868855416583611803961103038891470623332222331874828120761151629976264821899012986512405196065826529811294623771263251821251011950296678827749458537334695221501020250710585075047489317887369245401786579942696035299325932742491085187753246245267525929543917002039740606678564410573482924653641615603758037929074702674082291044713709741800955914393275958899994419070660087001394994664924192016985485402336662048399233115148664466036892783026118756031613624924783388746853311139479187984864393930037576340217457206081212515841038696131547162922518616127394389442819821854011331260903591617783001088097186387825136588228037175984469735961063779282213423735365000097059496204864476683315624795355625268680000950643447483550941696493026997912311291383479100993366103450529184495924890646695547115458610093752051698866553779168734512331223315545762029392574617801937500084880436261554269712220674463535369369031945198669306557569391308860692175153068214925536504309954138081910487570475438543019120241565041688311861141013612541335940484157170384808901942172691371621550928722435948712877689668296662295264380312633610232435360436055916826509562221347602835751635579528421082383454379586863469681112479645603572492334377945271353902941801638987542337056250983998363513036886001265897582645148663867813464287105437324742415685380897996042468696822007335875898466103161492277655354387376511045318261211783909805306071444520144015346439943461821803512725463798032909394726790067305582664639143712955134126683563933192335364729919752857758175442974255996622247004135652614413888710392451831652213088903347378712657091947823786350672136765559178432499173353676265138252508552016587471720029587095828112757506513042207556546783512864270182932172430857267289733633015652125190317612226860105889036485615286213522496812534971485455916119292552996206650177479650689227004396398101250592265368341954843771922126962954836441837313064315617968873396117289118307481855981273071966545300653401814106595062988112161009348299079154824513530809186933177815123115496973374614744446141639266428500907591234678026938382757632936620551682448722126431768725050748859946998167335729684433028475846424992973912127249350682488492177815919177993765877549143151496194844364224383693520612422515962367061948175980787496718922841255776928938654920568117883844224485969655324454301379525398848115023358411378107220755640160285792861204610022905207931470834224005082516224240069096547310369990557486992529787946316664361232475554460322767343707981362294089135233437742719912589645900491337384665705953196429726061438011066665547998420435332039631243477925025911077257868943700985104023481290801024554387711667373568603927961452423648075542304748580949221731963365956224259902242441436784473200374077730361302589388913352884885574006473792266440423311491046799837941073896031420474136574687292249216820754155185542129798221286363406541604959021606441048570447760181390575858696626574819883715672104516050713268321898556858397219872952607055566819940899890691469660937143754346545381711568769467281049694718506340163768123229438723569099942906319938773905287450895179770480138031205823397055804916021720770614869700241701914706358470226322819608523109745715739590709779939940406390826161737224428559994837508536106739745257853576284923772958889762266853594304761005017020501489835882458880834648480751230489437096113712860155409152037987048692949260956678813639007605358454049742762647203063772108601715465052482099796064577181853720208537336385182708089970075048032544073239697551146908205506926500954052411517334579378828466530327788917727503497210696463378587992512976248115154458308533927985039695356049914628367286902000444035442151046802983879884441622494833987936734998361658022413189318438708706169200526840111629620490751405631195666814449830011566592352619322913768577356189969475805546639312203510201703344538365215627820325130960901908248098414645006025556598252248573246889240460285068721923422848130061725836850223341341685557525685373482975899417499565527428707775270677661493829277837706502437456238409022193949362088946062042663745595956559038983333903218677200610665565099679848026342094259426185820223568722220156787637638157186479133160060249436554216440814761643696218603721869097886158080695164759906374684852167822081158488714177863208484928028817566766313358465297962488849049659207620039250883036679891079632456329578243393381199014521727674940573353182319864597684509873349465945078683775141864221214304491286680138597311285893197178318566618744897601388226002738950168937681840745543022269849235205497459318656407888957950691348848919069321898319132731280180883443210428487465761651203114265937459503451336514215565142531526504251105621082325946812603477774549407998758174120588111945045513837343586258899318167280760006546668853628672099992007800375081046803616445566130880902564366577171889523961576647472365120691169342017965534463053700815379666752340903127954733787665796059717635721959088112283939297182637437518435014565254857651871548290966422952990098176786623784114000485108037632798704156157025967381357577347108706243786073909558461248923607741496431970297996619565135179019679117493846995844234659059695386480407040659566043671833312486972939456632586130763178021708017914364723040740348578954848570142965185353910532391520717542884435917956567517122898828140383065313121949689073212019269867802689392208822538217104169009703054649531743455545818780454074498129837343666260475569879390122268012940804331248372080278248033686297543348085335484397536762276656247275554149496701135023566117147053931938429217213769652578468949152625501587377016837167261160447362543984568846591043175233027306558633554739063323106932540892563716113865092191119729488946437419582806134934931825444619012037815101890956021513124237554906508719186037919401090420572233679411677601334367782727666142283959412009305245410715113443292959008776316900370852256652694332380242305344876619986496131111857149439815412522459730326887090629836628063646006140551776800307117135276768398493555982782824336659758648489609033160800967089146052578334228520360781337084540650057093786656845930679378715411140923447429227164226582962406105024126317959743482514818695997114378379579485660056555810099784047948151203372885647417345300510201210733258513062058653202983860941614472718347798981349808122141930395088247131047297262555898487471809171065374030487776854857912930847775314056638276589809829338501483810585032263949301839474817679548348044751503511617136931037816885971125292616610393152232660507947603135320606222883701178751702911713426583040674701532708780559367704311145448205860484674413689829612681716781318794186559958064290710961536920103975536705037566316040489522375316484754422360325924514697432477230882210055485604414473850007252783398687184908565505575197286047732756470130589875698697673277098953929279064197254960601721067311594681695738509220339321893501979272813916013470332921240483924886778123698254146978307110924336237507655724067526519884131912697530113451881024087818534181396833215113465752381957967855159825664668810248493327943956814617625278091420449900754778407751843213821956174027460520390134570784756736095388972688564075502700973898972293197966424665906410545661665690821323259218282614291488305328861215280927172461812418721422771310319254572268727359156930776620037968923667087532477828479428749231971221047714091843330424301066243797917374229056617404263070849083699516961033209305118362768062057297570094287088309486238523086228216825632635006309415806339217117214727420553761249928504600994909339139776381926379628225474435608445717528511449973118801893692955578390484911317480866919472490460544038647489163582827669816238829871908467686623715663718256477209242631050226198608353552569846629112925378082806172869989412821473506769471573636184105010220674187012026493874099827126235291525559210112706189655217358474074618802318046918442096028309082859430351938040998598074803052645691272469186954598750282991443268944149278961901515496126052402309033810255303049419014360474372439612147337937301664352653864576907972534020596411741807964618749982234720162226098010545855528210970329347042428403988210534449617297458451698912082453523134355227843258260367369320023912445688029731330116276175984575839365721782010768564327473169806075975823762189984627875881638518291237667530980055923246385304701476401316581980720413722694907571652390207194854845127156449253710956146786434653404931704168638699138871367172109962830347310410367111053975033011379023533907484762533089192880994977356621725261088190397048428418234329501320060378254486572060278690697997214871828518609213721549829873747640269704074298426142705563807998342532383715994915296156234432078729954813023784484695437260690205829977541916283102558931802193131937320266463538350106041089115426350208594954940062477371527185172730163934942136862658707546528379220299685815223617997392234945251345760408979504831098011342790048628612911631292160047925148851242282069198402022018377992838048851595018624298900474086854942975703515274270970162428646548394925947579491014612853218662603988947366325938825818429388708303544423849779516215118312225742850168517542711659813777353464100883890565243179868903788358348468964431035044537362593994788378675296822908131673124774954296233575478475385317000458132653924535603323909739840575001371235267741953188216351181643111743542992193940591921988416685274767257999424332402939011720543759394260889013797708744028388234458448850057006952269831203112532175176979034546779182193146157955580981807811738000388289227152773094018099750344830637151736458948434233089518213418947699159460705358671620733026802557357716776026874870539022965332955780944308417540054414479010590962230348658364603441426931359624881204315792220626379539389738003524576069051292567793332699311888528058244425401874863763321432441628452294827623361934323240920656967887229054250963799647368199422788229936572076600841848624784105166298570378790881717391728973892078529050835137316982599429324108264833622114641946766636231744700635477885441316004780641039724173000083375297261999889780184036853145927367533305418345120792585134387456075799227487496219949775685679501168161650689056561627224808853734782053298781701098796469232791106453132680034973205715068431274564965886680066346926635248053261367162171280432973659409064043942377692768251516951169187338715098827536581817945278962393215768397905777097716646049151269679541956324237317555593269785705993242456730447628756143133288095436204843370366982095111209344888025312746607196654908890389791256958344852133484527642389541232787147425545215432574891412210841446657681596986437370399531382144555691181281420746887836753025975185770511236216057812583174706851123876698871255199583848588651476176142889324221777033705820541628982298260708744258284283947520092773690824105278196208688257923642771822843621546726943942525752210968331798552884992551424251066870346776315053183905130749459046373487788237241404697695196221949712032900743658952535302278865926247130292233160222373309322339991272935968664116973697262566581121587871250818186224456062225542448275539116466602083026601135144583474585628174619040842350801010062090101668810209682300178073131178213696084067551987593188929394449024983450396352004630066078948552683181587941816382395046970052011890832844829064287675095780248618252388853982736022508404431245470932101726075850030002281768340784590772815591460451368737247577184468231823101433058259579698967144548603701758393160306213364610836039843413860445421082802074275825855178212464413399109185732228005907827163220816493052843612258241137547425401146148102110859478885103964742173773862550504085557918018989175207858145682063098165454061502762385701599310948059665526699095219027908263096267545338714679400529185672545390513159498949543776934330076823210198542216351281371143202210495611191588309279587155692214101945725289991096195134900491337018488422725630242370545131843083302679410280575139474864229531371914885812229271376778441291626396186870441358560370561592679271014843771250812466359989920643111090690647531480916549419778262340355975571835956379207494152915125924948644130791123912071283151675695254723778224908113118879814532592846967215713724392309568725648865991267157167397730884005501787147244818463284781721582952038512437668580946531233459779118702349045513039201021602061938262545746887619630122077357234837041794465874355892235576084585184547357513056711579361935047008247282156190032422581870044458471285566262906332853695666332540696627865124414540373031586495439993662058072300962245572850333854381794331807840077643034256587880096191986456348302028500601730562417393155762837917058198889228813635840446417457617737197931337250923344276917515619366821552715644377786422883565128467316483889639550230223040294389964519886019575485740327146186007240582110483339461604494184067389671474749213193023041075151690391359896244819189189814952388957065298294292683575043521266349272823516885740291745902560153127116260663825814807399332771201548599732642986947031880680425945860682860199272409375368575673419125579455553734225899617509167337973220714116409888960085697225164763389638730489962868744181775848751079681449597378469302785284083148396845564806046407944905786139798203466142612816874058061803167673531772084885792135492244805123470994294907288076684534880809159282937641312607315336474519660073735354656926490872379750449507464208475759643336772648102334679070081698971320074847833982083503411205611460109050905100246675501320284856651909371328389838158130674833663671414322360451126703267729277779511734630523734326744396920891470632623135367683123187004672994660896797770909006096588378774782627253426465227605902130547908667291387884667345962802361770561067744171730112075910572674869094082906038985291613004498634344082340975958430860340309840877687517225700210751491227549881055806876635413443203805506188128117465455595006073399835970019333890366377064907480509415705185975367259250919377912939966505717334095189941627396953538176715028231625630915733785725107575001949258965056885404689592113575889892261385160706421652666225212107063966493135315323914647948273427115789004812983266546666312997995018179350109282602024234937759790200231262742235901453561725642553565198372442377138727791451046317582797035819584413616751885512012374277185254498652473439585014377790091062360465022724118643220595311639100071518169992934101761248950916944472463087584029127388768055708471243161213235565467848122367267791540494509485751255907897051592786159577733175025857680469205334673448654095183079265173862582605910709902303548971339014659516634673275136027169950205295372017786325209510408311833374256325208094161496697423223655828690372295906375027005355231026410643445671644470589006259098385686631643706083524798480130735898927871730381000301239349868843355386836612111755591216042646740525054257748750495365893014788994149066432325325488743777813894909030847843979166295443900226031633701161067022998270105960249728750074837706255454696214210009708752483988364242154610097453220937371418141231307214447860707076991383991016421942342057523923595379454589427585518198084674877743591591758259484644104801488043515298045131455381628224091631607692566898893101215287248404855911417449838898533345435750504840707756538608679828125188730595919933554690755580946384129358134238782667697328467657342487673969894897053700512983542389577160681291500325929330344151291634969922821883891961263243036920820363573868122226736073707621794299390699024482860999890504142965881881392900065129480307759457528540342594022148496822914865615358510497293867636855233806358004039620542554104834494946468072278000601632980594552918938941997371505864543331197534642010501703082062946261950946875808951159335539413423061831094237327000951252853584746076961995380694833388587422184953953416612048901927447704130429255720223249107223260353139633876549275557005068626909036260480210411976372518724010855326575878017981418098500385380419505007318575649761654960967702826306681016504918401469099069791426138508266895838092244520416607081165033434839933914318575173960256734736315230254040850531234830826053926671962503661760155400107441088230952413451390817567163113197187342390354897330961535116206876155528036191363655222167134593028596772175540971868820277987074382850181933779226458177867771030379892156005672109570174287247571529454682194431056837117376379674542680376919506993904297744416711031429861168177650057808739015425150407243691045238169378321554346135854401270422838612328034951712866201581450924666882604941218455627452184224080962925109832717030767732726070242206689001583165954953767390358598980979323503852903131814172538439749487188827169082022671307736703482857617818878893971594628104336776312880993255338425373798914098601890604379634592538419912334570624305247453909130175523438385126538082527603431236418188369121476196379313707537273937670271813963696572428136079168455921293669774760717475490435762821587424385297944234629010943694872563939159450638993740354610039147526768003254246346010971203892812333871657674381542269436017545354957129616288093605255014659703559552508725194540508725910296184546453390921007309879241367720101034984083779020362808749650898117523697370667255628752852113545331561160280770510226475646973257258204547266749044233171774631328466866762877960488517321938911152860922997548101632566730566192545542624025475364689450708142123811581693396056838119468938170175636797530350522321515536324604667422625845030049856169820038526388875469839301196064177487445721918474160300346447295660952531705637167041630307043125629845548405811714390513272005183365340775518080215324129615041009916274818256895810381411936574217397859935816904314629444518254711468797848432641267110371050615139891803122221827939572032771985172762102602107876581516792163055567337581460196205285951061179381259536074942234924697002751902722110593119066876210564656771989169811036806454247447614130436311765125462951615935251215567156766436227961648164698085504249839605128018278106377809237169667070977182363479427865042450881449697371684767474920760673576527712772750098661980256010421068829200020967362050128324496580375309970731885900961762666861573696016450146416575959962095957092506772658993951481624937042940610673317384303864816763423197247569660954328503678090800549081731640016478296355349322551244371899390123109568191794312315251450778100606875958804920480930673516936282834936848923104701860368976095093951103195318942219444336204617607039553472742694069158506297231832873670470384113568847261507902652784725732943596285208939934089948195621602684412817209425848678365812444182070426241258155640759944882608569965587838484311796720775468927621994626916258829699295861884109121725848204868541659454656487736164341393038540304285996692441953433928229213334475063359308435520852003400639879490888908117932000632274716611374397446387785182630752722154352702079686889904011945236080460711491548594990395439526171148174819810181076154267876149696846360706573768513977394827000804882286332084479117410703017722510355649302194567940368865862944384029653556685809283063653701253904754048856507624130782478310864921456219172367866075393278621255604728975196212187899146181736290782902225774983577703926105448862476286319101482294969398709351341719982299531472396323640234203494253045686774372867884159733208671450379917431274878751621798600678155718990242643521019844745106754884731498412199404373163382503486901785569023650570696209542468997824411583429948071438759728495014986604003749854589736037725202256193285246280980854648518601672546036815053978516640362544850554984921468985862675968987624353749589568229186456110013618985930623659711876379861841465182321370266737361860328888420095921817078783949790612031887971405595211897603929125405884797497733951127593959760663149957687206901586753752928505763687512941598267729018753356692896295407787395171319958273364897553561298929549571446005152722720023534385725643359627324273933095155118234938443585142567667557189570061328620932414946492365478809176093424403736561005060116679547187128858714135421751680831401690913455283914559950822832908536068596426343722887872654639751519315679767975957465176735650856925498638540786759265882932296083729196353206065991268223010530442973447285866435623000199714784716380368144371604657037951081133000365649667618198875505342750782682957672172967318503318641222420025748717427101619100339091149411304886381478343916653486515577182402831931351581617413389339601606807214110789916389284241242988885670723527218486985975909689294738579055985098154034806287647631205480287495498537183276188508815764070912116168847640381821766937784616714365357420541276042187746277287057918894099510709457168823085636128488815109214783663872153453827032684694351288134895509065883583447990973010116638239014375148787082783930261163713773662722497233505650934623661914843454548564635638732570686281316957069378542245157126528523759782744472168851890411671652036971439042126280625015940492266382311277234491893866428552302079007627259185147308695075910848858651622411098985755979659798458553637429018888416881252472173210960053124078113673698978723426383242153005856757466794626954757354154943974998266067854796014888869719232240049126125002013003000687151070085773090556649291570952924185453616250402569683889875613271611968590952622042031267212810719517102059687717322220424527494687998064081143044603449338849378303743878574733511578546684664160246050553034793267537329571883826246953792203147199489107350484229778625173405257847259112232950553240807586731581707727825761026345636355670306722874162968471543127600509254839924846713190853963638797146093788201887026994475841272829150606828807269040589285008224058015682734728740117951597832625891517232789811258635005400873071242602934234320715467227302050258423945928622456213318077564853234688413751528188748998522579029855182490922711323853300510876125369807575036901121860115809446412146050742023902020089034801649272474685918552373237130774820004153199401430234730854785971088834474750061360255722560194056230084773739365723319867192571397188623772417120760886654247088985426409312020726344634973851777482528082663328644755824424174025842704897459647186050938323604459411035384475258604157450031263042852571231655605249829082583947005793845118047124181543665837589032506259657763655251293477090962236975508568390749688864886141266674520166347351279068627904567899477687311518122365625268910456059048808876812800831410359962628810156243778404752758841188809018585990577608050168945900683410715807939847019514531067361741877925021682773609787108016908660315911349108476620385712021604978172580370572432044204550505979619940600689100282727339500460110596663005093674515129976245066801445917468034245909080770687678484305202368453766775501464261479508163348557743816708501760709970102620502913206008734024523747504332773970177573979213270730796988637047893015605436420189157485865986047576991140327462384098364021828698008063438115527597577562482814445552318730589071757821069111619461632062411232960358138411208817387298834459599114301208668902253122235564858261315805780097721953361932069867969467220450132161620565056158328599403794033436994659017662125290584294103617791617449252006106596978961655804083975686670188870623424355618820780319532424470976481343319590997470975757073526897418908113860850706753013057044041878801843114890742936159622665664125001311637935245714038772636206598567207974384266079647543207554032988265080504092412179149948138676635343861314785485160692007303028835646072990532636273958023062648383742781290822463324389114130554725322586982575840920520591096871091178279574485752405183160982392873076907465413294488695296991271224348890412869187301423612934793743378805023628442015754164968420033653064389394955791465217374731838681219073814588671226719493771386013381184663105158950088396156443973634148953492492152526663521568457314936990040337107296588976722239677512383111098872597392854858929838538660644593739292142339307745604071744729683446975433622531384633617344399489367445982532872533996589040813629890816551732329021502759834131426023135705421646254676324152107897977993480117732258435427592500080058368234463788702510286208482915931954938781868675582110320329182487839132375925417080821988391388762548239559515487520354890993881609100409608674762894984267784083267935619808865804909279965199294672594078227569105020997609133799729341539397215009074995492515147733864612664830976002618618710144733393127828493576646768561989019065864181867396132795771192144301732603990186284574447714773323788061250576581171504969470901695331702964333039732081195487807934110669473749897555147410798808085566755343039835326173715522987365931539416582945911483355796613528340019333944694912136903198876656319111413493255075100173510711657236836630337926111513302342308289795912484605026314355471606887580455160505077705317133941384110612229484139100093835779083669446090602818139613586271040254172206667014176105652795603150520329685393542934191309272689775179607454852579270414883962189122508040884556332872248593228922317146378008859164414058314603344649572403406550561604816823110256618895673738989973628959638094903728549215225804646686698990394845222270590623388191560436444789879603710134418518340299754125602079727342577880390690733801709647477797255117813938593345375281309333455864967805179271779209305581340229679076167961548616155410542034257670135445399038950747622357574487846640545145967311215694677272948107104348576779227646931352364601962795471135181811861772015834917978677696538476785030770627823799961717052752721445242564561531567224099788522482114236762490377149991909524562372924467055634274480174449923552565277150185805801346743145978089912558160689429210710566315478222916635661525066174570607808537519901916588575857551038461725717938355183411967656822122839307986044909838452346814196963515205136524144300400379700502647411595439145643759092894575074980423247893059215567763265262910039559501038549886819662171084133218164226836589752150727149468034305322070916022389577110810767555476611173958917249331938123217683613730718363665590493668854165431586212202284283010102623296163199992887938534442642092628438005526044980675667909487570608267539588738367379298912393000276751090687139179689068519181647773514856467649525519888581952908853968410474624516410253736987961614392824005097612740935732090385815508526618012686776448694626881355381558408422757661841110747391626075034707406657888189677429096232024222981610874382662408843623629139497397798849947085840769372850300681399572320668379367399792352435857882811462584741280976897022501746945185094044455227492791566555739510181737722188185793420501755140968821968729058079057810815231882492188834420853290285141439595589761180201865248334128187036942137745362721693928247620915976813027432530641555741206582876875642386838939690176067076717342971185777680796146275776473212108567629513038836099358446285473207842652062224967327058017877740811268458821398957082364007402476629310590565474602459538165132207354579764738906796201138474681021450176931347544421089554778571247932025020523210381329078616228565828554513407919631259080558878269981129120340918623089101192077464452596681123689060640959924355027652148697796254200630313958654713263224503700117392529329955540238198925618249346320516791765273003303215332920693483557703133969042502456469346726482746446589246715980253064905308406265675650714170835714009025182574345545163269750495874558794692750460538933081562158593911750919709440401621335682575158767830066481569095721803485416327762016249182484644786902002655168200421453610856642214122345224409340416617348476509579387510241638254119302524908901814099802372775084613723959952912347153778139477133201782636170136675142916180593087795820580361888117560714571791948322423595356208371756700794084966582473875697500622887691813829392014414602688839529893898724514696119009552091926510208367246987905931399687861704057186848255341869483252187206129693776308906064752055269760074373593817529847533769633490131439292497543236229898652037934330190506377151282772441201238325449434025103575082193798025432055130188982928335806434362672015806955803708971616973385505236779370586698759449809298640507382708628620718894120101113332141862780216696583263837828481651575694330235256471272000059634823582592242144667017105718056478730185238834095825218780247634846013635570038028450954173808717260966756144406137753287081651501389467387889504963612493580375155614149365234846410341761491970446695385217157783229199279983131586346435181454276534209532985475884435035435764089132685296016765511210946885659572474554611502683010914877734953218841284658225306198310545638287098740980467720416383408651264769793495765492119074575584843806706593339988753217599265661956308629681067966729182747211085035555173982641381159267718591443170892120485468502699832758697817465068918019847387438357286400208522220750749630615281425151248469649832720323608365886994803067838729795557601546172268514712594846633400545340411970335642477242364933552036727298319541981216840127673172350798757388633326766758703472376018959916638486107024011543888762643327062490616722604307730931400330037582011672105244264483201852397821356777675618460274898022677306149088246092329529952123029223509013714164078965566928045162605915446048401203963565821682902249583862558745143757212828361564798133487017760235621619187480397705238206317999061810804415890472404667765540282446092977182397973863244060960480653351740954863902524026184451932683594783862824203374341593923119836483278043969211478437399490629534686597794022562762503562328575424546793601355482413553208476841777532681977622268795894549735985874725978948939418447990985136796210855617496755479762344014980960725221233308300255111418964232759106341331916898737978964133530864981378961680945795222665608632965024455141281650350191674384056257728158619839221440163469419640668826884777572737310578224183902950084052036669637799954282243165464544730271539501239679871851573677028117279920361074488514271670829764767436584711405388188101990598963945830509001479971110653814772111617331474368307677276756636547278313127365849436995087424429840823960697040371125193405583407464870265758998353625856493297395685849585422380672452841627399788073345660114107721013489270940444281014150880246837298705826466976436949454136929738630623980632071365432307904623143722877988495139779466253862406046519460233200010304405986737915393195169906780971384715596882672039965079233930586007075652171544318503836589981662485695770499586804278554026883238825511431537378896423612342725715511659411677454767693454616417778466606961690119589141539545902677543269258512013296998000068845964440824158136852841073085674852494721771552461608718307125016406223282659579504448613917209032361236174756341574610533148302155616500239430667025350329451122613559472020267694885876093685001850988120262791667056792280350815624264899459071521461418888478453805282919204242225106809198115366714462854471269139554093258702680183073579840083423846855906134271945467896812172499773083494250497183925688265927617501736785693378194918662407841748547606511535576871712328632707598532602728498415363792167613644075191360717391478944661090999204226250935532055918043220746318029608045061637406834726910477907396720913004089989092865729799240168684242014955554597610004865699051648608779920546029355595093015096354632533615397948668015675588061814488666074279144670224446625082561367040269061629319133460527883459988120872273294701352618253312452655758796373587132281052866975435337076752680587451956279204489007961024753497836300179633638012581271168887819118713500564459366433422540918380369418710838081067416815074502278988229878825788811314956685634959902842847990652555948451025709187039127743971443655413718103642794787090109480681840469511834293625683202613531657259496285057051115452305999393503483581971397937307520273368105896574769254696736638239359716836331656898397082832621684627500190525971168917808031566392012155910440217886893903862715901279728661836543853176279556258764699680011137629080814888819250512091663959569061348332292343318553340491467900409488515427343147041237836625464539480474925795582070563760849963558408325626368965112846720341164114070269166641773641181686798274027608355442263767010698017080181764243518037411006247632270906482422275492918861467481491077419788201707624196365150021738125565887091503892994143449814146208749859090130146235880733451161786710823986717814581965066657209000101374329656738929425495588144432748672055543486334716504313022545105003463022030760295063760256003926692076573893269472471293382508800564677018733532967200177968983177089314499700538000086304095876294202495894758263574491158029537078226279809202833831991351876095283871147896662918870618537034316763432962099815641926360829780781311206669729464096725565419066975348276280057275917004516615618903645962952444267212354854470057006487930995516908111213810992214622779758857817298363929950397440695070318432265663289182783256451942613239406865709766036721744049601647675470998061302488928134903848367608687231499555830698504102541531884460909275158030869888452531044752823099078148020102443930501116149727713233373794694276600344465661966596294356045222687618495280024003958706041153736599357623055335420773705272370194341935884668694485032166087050882312006310838826639787245512909988168745756795681642453047745587485117250538784348202113339373772645506373909053571031347319432511889203567468067686931809224912585523349898782011661630722870899956012258133020075177687179086068945031072268714918776789672876217047634240170895524324630747752280155353631252111175279606587730905660517413528800118912017596560895399526042056718988704019234855763285704663162980602564982771471303746113070694200719841246505711395912256685037091796620994192040176405431870274047718664526170063570452164147520441625724551784069599760727932931009932536121125289979292765774836810794832989537228893984300800298501435056541405819878311933969450487834490697856918694274804691863055258846990212923201852119624280362695217904754434527684576268714008093179997435470793388128652991408690315811960126331127716485387505565155425832067387994828399385909773525979329039438427325050787912993141464479882699966911027544369706653581423811228576138394849971261326016194771035484154354804897166783992565975873462490886772444587234494072170680375286494052188502576994565569760578186494457796042594321072849797079743183501621587805568112027264903207795052403729223130873447435115998797539046561254691488006532724350437303394256436582269622356101300166028195061275063988559995958441833899706001464367928082711343168202222967773529480424536860912798046650742298675680497412407948884829310790047971270434994271626562679090007933105082920863316020647163928374667193561914406302590863791586437988706990179584518147878161026850683004165159582691956944935697367120075278922123497823117435817884715064459011237317002784012296709888204516512779452027207948092619934216203785937684425299941140194975548100368863530068795729807645905546037967276878456460415492975645546043385059774039360630017741284366863709453523301610070508722333842141647416743082589136398987757487534066379783622061197112573264629035376608149100717999319938142188925928688941147615871585996531935200367846079856180870570538073810178245340995675453641146480645218205722962004022973357221984301426178612881261099442562851438932374646736434982145246301058779022804641525202672789069499968927083169024339483425594886648459138339559241403728655096904703490269376078280525687356811063242684357247941968741722877775424735545290347476571630740983414378296087135589525458482045264562935850273464551320362819218813123747953451828135305688245142899984945907428872616188487209531804233966140182608608123026382884659477091251743776983911009278140143665022515762107503887201443112402571022161635117421618224832716503801354526413530165710436749686304589650895411235717049620983365930384785208505052665192656936850304033348270965372081962497087140827781944908378788033892466681143125216535379253370137525073361670148950530417951468029770236162197144845620070824840039972755910314485204709803179535401575801445210751692993954033090842398188302223290178773169214089505979026591695298897858363888047835985131231934026849221346890846265437206671088533885542950344412954030902216590353037942121573633878172240602924559834467492339965658142938835729183194086179983029424586404086239386467207726893419472224176401113014902836538460599088372341718379243986738887491005720655388829423920391710962915945522007318641726668018987681252341919639105212057964752458760397101762538430922360875207935283252072126573702608745736722484708531781873258221237253143800422305596041907623012595429450705286503224234569408967823412508909949532745073215804707187534864122642101475620477129078453073513811990159285550353601240625434691526249058291645932434568561295184673532418027975460747992768254263833701983414348761117894674787163366518993689842066086647963946937279807967674043287216013429959511492277768707199763641973184101636697264898754612165440438474132741272374123996958732342902582332910299164674819557418784310508446612306592323339008274321470237436871910318328790043002464270073033202124627932770333755436419484417539165323957371634311662276435931369079899032906393264110682711166660892305900335380261917013157206471702149857243505838859635812192770830639866872857834812501174912779417017566141130215878510713873140187637775411015740009068864171118044322243541054937047505980788052198186753551493033965066994543022401561290728128583019142377865997591763200592779148608662895315850152084302960621384586316975727454986062506428648654728928243927581527699073413144011507913126977250876252903226376324971974101671217381084897332655262650323666661978685365836286490534094389255133900981640784352927150035381033001369461297414659466431229553037369853518910269546126919361505480437638937616810593854922965751170321327973292417893888959508277210021017692334878029407455157761138958789044413692364280521442692967491076937128359244933460605769895050346039366825402581750330548827249272483424486642406654006036590277100823532891842669227248547521674517206773332697544359727426151513787274185315101549655411418194400045323194240215050476733179176814361550104205807285493513060438717630617776415358800215928949671221626520446252584921905071895979054581079764099925358263780864587831821411963073385158725569226629873566642326526524137904428630585853251900955550854109366022155826429955155352853879483988376072131445753892997219840348608922224617159391189537532119587468344426148187237757521970358325270002019514216448842466173269058755707738332885905210781344267245611233730350939765126930772294408447917297647390348691799285579053136425402692294581453283683144514744608565474362428807168014752153971603514096568351305466878607534171085128634359880903497037804170911363633279507763964928567780442331838575466732798190590737570146081415434195622380293110709855926728747344300054419709016016033227362793281324907032314164519174523258019645396467470227969085920226318179253179600608774801980634544899141948271629355444406110855489615248857008465504773741116109747858548114349189231245599894156034910392542729483107051912086878779158462115780658782324561809955010591381531924162337014906274566509548977011687434854116430197548052808645718881522829715232262908611169394060235304343175039769187108037897115983833191717041363537459805048096463462265049200737671533096594580684864816825497641636222461704786636960751546981159412731128450402957788667243890840395333408637162847546827868484589897719261444730123850870197458564180710808700353545857897707774420844120906791101896670677368934729705158853929296370911485751575001961618362172205391814622081690216834595879991000127031793109524531125058611367010875157209139885628632265505522243697582832003031658097722877877458689577201032661609712427141043374289739879781438885025797083342934527686721641449365577184106001708522552015489086350937414709226179457040217613421477633385887068058941642512963152886325863948093910973089094663088481797266830851440315540674109875125615025104135302642853232231276868848030976473422782595863172888849556920077693675615969138912736540974262700389719756824728223458716977464579646273362303222416816978801921799811727770523305614990488718157791837364743311773312361798004513774889810274796064170590081901497464292394514204892688352387647058171498598806130949287844640113094998259326987548441802602731385434462060163527671963258581542878650076659930709761580751744210716495493565400451247119113987315294229854218970467043877329020342585026026256117120882781235556842163368236675985268103603472717858709887208781218910604800969987172876047931592230347221805336649409511060732700374195070592816493844233976977965162963334951553740601720204328951028394070767153048009801044331680755337226389506719260203569257430936847694555259965139197924358564021423650163715760776103875933890534027895746053725434110594028918035562362389754631962766720672038531460582582540305189214992644809102399628870922559789607172017486575244973498840592269961446937093180684829445539759204264433091736556519122733673047858022688450581139731949295750784978124624173973693123361259415231987658387720776179495272450571008344583344780396672441631245314134651317339863777558342149637229425988903757117347779685673905086270340149568203953664763856557564466641104560028890738201397179033673136837813580911917282914310994315617019489951682787011082971501806906498899259458206943071588461420544518632292681919789053147863093697440386238547711937157131673649188692736461639009127423879542385653115876079299578671609958703834132417102485717227858254906468382246691291372393012245343416291219913814934283803087152727407447624961560078726783399281430128636957731033805818859524884010410679052192701879012759574860717271223193453599367296180054095615391497625211014018209141534713721867091418680691345106294652894473591215653458027982670785869237648777262785190277246193126667479185700854500190111192240535438795650883165677250108793140332619280966808817098726831977779921153341872840886181430056883114797991780285797559166427574302024888578781227167168009388379750037703209013806337834483535737136706255838563083776553004227583717745837276277023098559963974750468377162943484614635106392194515324540061888469299660350937663708882601122248902138791268655308576339372568595877447841405907593481415950449335356661636288638579036849933564099941751480656303405872470238468663715662127450963118125841088067161277608994759377978605147086784612434669601138348971568718630399506013152896802237647899336063274611922753763401171797516132765438678143788722655412149785911399497997919435577081888686520074422025211254051933143841205497374605968219477043505407533150124854566408365349289139349213188005822648417589791304966845013532045194027540598358834293046645287937064588924930323549940312907169245428108336035462551366032617906182533937544680281904948532354382284341768922853659293949354603236264234764275683100108204382775761071248176590739385771917477548251903765195667666454750449244130517010542276639362167831101498694687154580924636360544828425193933854715609485262549998170876972373218340052856198812810144100954498972946572757531439551449538795909107574572584625159366151985342603729019075512797039110735668497247722636719183774036955307468789348252394116048219716036252775190943366442333735871210484338643086149950326432452068501540700404147764954420413256811303484365573536703228861102336728704192460266770840894760604284023297226029402595599011178763756903368523690448532483921701686805537845540156462496135647573868772948492920389873135330525081139966248826344205386386600767002022457134485312313505832815811812741690595600915899108217125919287438948083626690513999003745064279258517714417614853185757484792462140756616435859482638445132474918944828308158597387700192190572230113108544394838914766709769264498425145549760427596259503788015651869440822274868765148301191578779609704328621829062570287746830539890512488009148885422589756894748949524209601972558717038036939793602844361579124403410314477688992969556392119184022551124353241809220329568192179270490577799960679025312759558991657607551360476097569123681265893590499698151313268777496448712511064254611982555143416929217891485887631116250575976750988437258910587885513301516855891787071910490536570451266678510039569836737422487976136462339090873786987710197182960194189209114009584968939481297283701964693321359632465640289103316901298426964863956311766246525243388235416848065916651783966358638960777055215426455585590504463189496571157807305090397504492240184467396079723768007262618040315014594115070358165261148466835497093336236557954083823407136735465925788353592852563407722501077838992179942851359603716384965790606815074283950604920526382084612197809223152546512155202482728702884563209966113221953136757409124723694512968690496762102392810369785673424510762595796359256086787815945518519591410464303742614448160556355709514480565782056932582749387750774223601123796996400782828250089110380837250533982892051372266242461899722966547180786501305471714963632608572117646377935679753429669805912639648304971092117210072225511670527410245353851292236260944272076534498811063831119559016865286631168691011733667549350712503395511814936056231237310332254871135012744023048037427468794049160776073302174405381930434578965680339027787563461022410040018918420310701050451709462671433164888906469659796176934075620693408001296456496315405262603073410152462431548421353914838183927513476572401311781274653432813983477863584723813017888326523082679558406021205105119998216971093419224291682258952143042418372180644001437206149611274541100071176977533550833888296574154903751402778281959275191272054769755891178517022988828434261072618395017769314626594230414568918499623186460455729278067226807786616074888936273726688505515800667336751835914469599620063414698813620033148529955895202775581211598697174663995906784600284636991471072169826724171049365605521384264032111392147128789745024450266964822877840589391139186411467722505566073588532453232855200250623070994111002224597460001559573047213180807465629449784796889478325323620022930624475143815978422494693219492371552470200268077091905645531397857397679273110586567066362308961215789453923957472956489793720482775103044729562162610791657940949495231142539078950037495152475281901405150340012587016273439885324008577303605639341822784506935214517160964630010485528939043601178607068135276737432552224511094243779254141545253589595762065726974447921153779849470175661033750219521741598560538393887842212155186888514804621678260880607228359740862818421669648442261606578170400069472339607344316058725048870422956889921807404640461660119183951527869119148744024477012144131615109783310476929312355238522519814564872632465634784249913447888226448556021692509331768495868187912075888626684827923403949634105613112136625707324300798319880755534738152114756506980086088018476652388878008114085722323018225141985842654218933396748441647692063991817867135680704138504374443294035529255416516467305169249853338968893790160716189854215041569842505152690066637385369924291311418939446598931751697952067844228002485082764935859165739952540425564786382482125315925315156722215644187821570891762060267117397659579712875243955612489138885704447425236813051358677352092833882268971257717316898222451458902363669763956107449986113776886386829446953872948568882384942605586013737535596644883559833853870966752815647878241652273528030164524997153227443978867255404783156054034734229245342428778318454592155119677174547415020874684337506250964121538521485745841446248029955727559439551676371981374556044996476102605859319977415343193288760509951169918097192448081364419888074788204151844286528137782159918024979009209966866564122822993010145571409803782723436982044013800320639630286554575612208907151269491717977215663860909578292802144786349534864753829224141812500638774918888517363767281613370595261980932938496454646170889747102508374650732624267909650258843311322265235152694583532029522500017797635560404509064325023866991745883392142665486722636224834455083512803931566499714648411477656644706753379405416443822191526842369252123151636107095603035223379004577459756942074930510464106307138315477186240454178682342876882051020700455175036575830336170481270717610425049470563496428619649190449229140130356982204554753533190575950854820873324235987758798524974673095460421168141254551658221741132824732021491466904924856310137732875089652305480686131123190455867679263887773032268324008691407543105902037966409040011639290617833485871816530849095127081969005545244872472916370470715360854401449309918509610973622358733759184662393540223043581654124037368606511193685246066235592515538737549360523778200565027243887669354916006526810710177539869755103562581130136270548502334366670074902238168317263619818070717220931613540016393776430955312279946291909092026695214336877844776338101553017172416905951294780534410321577719496669839538858208815495551279367965048665684213366550369839744340369876464232359634907836683617769546251241872553439986133269094290088785472628845298253967419901576469504401090228362203744337679732177599416405166258938138482667789019271554016385553099374743390213979642493817468860563913618150540125439679287690952072545775099777065114238580337945703538494112749740446707467062416746395755890594831765179961238509084642563942535083331383529716035006551801915253355619055270657098944837341322390680176242696438088443855951390227480202925357969566868382775742990982420647611601542110453651760778702220287979702187823161232816474015508160666939460781238773326165354700987074918582690889230118685163203387566530084147505643195533469573345707822274956745836188447391732525144875543051968655038487237440009578592841386289016639183091565482550230140587390751429068566518034483730015553645876260829563747722678025755680024480484232061194161869038500778298355856047284445808824992931015414693753461366792182151812959590963385822356150189463615530436784925533331743514198125256495706852946357630541771766662764088189701314569219778662853613284327323219113992884049321108106527506128187112563587502517344483388123709456038576133956736406326622148822217984063591355587477078374938272051632302152348379603821524042836328039406967888299008766020062818229003382871670830745836050181599876942277139666787789862640442630626127569304537142792298949206666101110956171804529302745348948716196496816820290184118560954986211360163354979932074659837386004873313542643705372146460079148820294475440786676541683163558897933614299850151329053405309834268077129950319396376022269487753308955516024400198146647027554862087649280326321709054793507760565160712643126956326195492505772035702515707162941043211776448461689094169950138853383986685525345183639866024153655716310680849652120824254937758767538736943125044657668185813612663757780211636104508347200915224871915999850653024104127747972021688438013391140147310514181104091527047564852680014623005192135983216960261181779387260235201679539969493458508032840568708492152743217713884069736119581439793800857015645764610943150624633875264523883160928355900374971623279006090099417529055661100792279239924185181716649034242196206485543134324698024199141042730265316066323186517547236260413192489355403963105561870604143538413965504750797555314282187805862555774117876323190242248008093315214042753633368036778305655951763796379953465989785753646639310555037957562039502994655109640370083839240460686562977925625846693801015573822940309887568888046369969936676773637927308630357274240195391598794225669677892593834836183079218050602656833634287425308771010709803614670929875571398724057206708524481164509172645984122753932052327872368197899584128538945518424020531267393067894957570137298194359748724004013894614051058628619334339232912013064536197636661034589276709962941530150822375595680383976302220930923683806378796686185303654681840565389833170588020068315906580511112872608864394709306279724338299770060790219258018174680425360360496818456856205165977387514220269339741705794372839788852821325308831544432900523322684604658581240162849710656588169873734836221825303333351035240417810668494084844376834052076313858085816060402909693436581742781155558681729875371612673970785619229077027559908154902107330582149470664156876036514401109325894914036802262009453645702493973904301779075493087665342892243950182505033540202776378466509390430088113690888356420828137885967954820394075072471386932392617419026721666881509023541627973988547367245103260579820850540930047194581311991431108369850520395109420799374274836826743185436965933740134311983352806478163107639135972682375696631702181728727637111275287321362025924527346104295389824606241243270797144383254700327899487801315547731288834879321614588790256923623498607916620413727784777644635903007610015255456689811111203932679509592914178538015755858136821198577515414500190379319765389948404461951028890268095767394238749283486733486382476598766566945609308495240856379551470474200389221094728275698846984986930697428036978689316357638091168230096158167824939106246555722878315416176016085600438644329235358384595427235876125385485692237872504239492457430158283992661547028638713369807368024169932868006642919869503165664994584208891314256404360605160120042334528050408336288347186129034564878357462596733520268340936439421883972298341542151246323382854162043076997760801449744614015956020011213113137683402134751500298171980049841221634625966273334718873503958486914155141205723882116893917709363080355894825320001923965437814599193957670173333440018770969834433915676007045466347283540975546012646449169932232926321787622289767525414437951881094241621036392782586604990811701646597600976726818588004700154963526540225619620947847679743948034916628602559053942695736573551289609698494567368861907526920028651203798962737482726104926789443107268497278766457714877555100782317980533800477555250763173573314403826259550470353349077661022182206629351588993965566871008829817953835295697203689533216159836662003797036635356164271724947348266857570438125312540833631160021405945554425120490490160979040270538827050049106912251805009123029176278185983841476029395802393502756820198671911857854011767075935550718802027997946894007990710795398628859271497385519660404167359241806466477776620370162728950872879419635965137012157047841927137777938226636337042332281172242727652229486795995146596043757171934525806918127707328753199705145266499923821418976201350067740174663869317286588855523703085406563949641685835943824626689980323233537482904204911462813345916158004247271374038049500643771359227099831470843013823094225684229279895803254396274358961006071475101808175554623880757158448583877449336358970637674984976970344553149180799232966429781029264845067367825863995537927954648214519471799246291224264029467349117950541149133143857998830401738853636434867666421793778364878834768330029215165970459731058509536174212563519506890443400269512362655235836790096138053647177269304258737230653282263734452816412651964186664405636878547080379449453842731998156554638473714804775591810379357945621802147647831987268093584976695286543016390127341357098044937166055652410785920741319923569133223663922210457126622066518072987838718501673968594464580589034389485881877327015594527521313711838498980687527184982136799481450366643320520779502855380445195649391213148159427547515028418538199501024135433462204538331541916048630228703905293668322659361701374307576944418664216550253315708453868192273176078477610995600151236496364457115769613333414589776939311689402437596109471924297995578846390455010443364438076329741455774886750244607313495686545133380133176862290092205914488688539327390203264600996716753585283391902141720313030898444737182941052118239284541645387297221720804164430011140921768257266190501501601410522682060206519644902087113024028440127439662841257529425488238496150150480794670481570639069000207420076392398322145155212386884577549468140195267691664264789298705446177889182125536792212633000092265071977203486220815354067564964300118168651810749225088187200619498885142346358706774497870721239541576306772559449591141594706720478361493763950903811698633781906835617529278727885660141288620595344834744891746624196888202710909238325531521750301287660583033188016512618450388593300537760306145525324757740706491263649995402484445023191731091709215872915592692836236740358549108867469316460635995798471471066617811172711359927604414195581757663219597618009448933790104353279462071977184798650147649022654663084660322522890206184977501068545820596856256921248771405832604000596023941733605631156525250903338635493444728320851770950013177180784014523803195837072414054269308260958418432417812007772761299633102224922895350699545022748948287327726068900300128487213318375693760487753345931396539004383369532674151020771972118143994449180308505401059183734970651739753432669387460279475181080490184010342921623208813605555769488704437639934387736620474687744155292954009860491457286992171377939674473782514256215601443924182900160341215396019988466898891741882235601946234555693289480736219534352728140669293537118985876584654932605899649703173785035601873552099107977573262903687919113822800485438567084870499837712670015650330798308281101126282463636143359230597591378188159556423819032632445747154957156740770013797703491700427377801340930936273419372418348839384188916873162488800259485720112997943921417034797484898540138357854515828982776541051547164023414051124893189329016616329261386619352760911090015873036665635363546201356291799473952134872620224861693137112822138938746946881882947502884493283361450498845694544300144116229250707024253116425825506507205730993762945277802864493794772575774210654300229192034473828293726014408977662516174082104467998491208761269661157496855567379582273021668023810176592783972353905764888120544047633096044454616494681440332952733308378051364574450348941577903645285239793827056276612040312732682415770529594009002577643688037035752272668305270414030749723915968487727207951457053415142823552023111155237728769319867066433248875506326855935309933615409674519343002603434379285883359819643470234354773920090511644764490044059619856671624014729232184179805156299605572879753859867281229279986507478597750610284940815416862222961304011085843374086132345202440068225932300945502809280188956629746196241244868251276530154522274393630564427932888309321993301583573900299074339222684186367060349937649211933649940569025870672337003619523834754952116273706501943316719286348931689077727694934778111969554820884203894656558109098360349110096399569574514985663649436389236001036600885073414784270475753931240593419774721115331047206621353448064478147765645217549983742865253681036833600777898067581481724168111366675095551990548787335107174359068549571827274546742588915653486658959566775300749421713436627407629356290700306954996725737831569793662740518337787700575993722582654097610979161606825843070904638287684026916409713862947333419669416720306971035684456872470643254434803269033753462577109116780346152487881567202313414487081519245544212817184951792457164316560114302040027900300997371035073394993992179349169549356340568816520041691380166584251371683765366513832404484778052699428786106973265661639467021837568753065426351961412699683366567355498630985266958653353586094789285842405519268517568009364581342566054318847787342167351320401397567326112060083763024836121567710404520285513086138703371934196907057514384359027092932405698494735115804677768044934140894887313396684995719778967903765272102939286361363129696048214528869958488049230888802926400410454185640729640955032654704160241937965494240393599065664364770993444363060250802780360579174175453790347342137412774207127847287078355631565634520241605941619446801009004733583236353632431377261578473807659473813660913045110356608508545045710130551946736115148948476978673744607650254199823542991353601091116044149308593288464946762771746886997859066920179296058611418321956365214033536351008638582935271506660975555220893862679788463452913409421569090189711821778154553629508922089082280390646876972053703265836009964332136990467593533597039651135126590504481586424543043842208615332682779964365782247569699427713724215953831932303967312513597812152807532618394177805317858874288300050242027635200114409568829485378787772164544590282418943604712863964548142693573784615102562846987839670909364201856360209978368288276390344349813844962179878754181382093836177818690959953516463305374329555798291793916235545506286291287401471238850342438701864270008483467968377874312135338815026878753128048134147667525556966524850891766613214603469487598125045966637282562519455359176693457049316679815847797718996057225488793839717208855841059659774638384237440793705995650232260406520706238348496856232747237801784579089511279243898215529251906525628282589691520762779128960569695753263128912542311858451864988810213409764591647886074011340333200540330920239104554078299419304695610033976660489708684224592510066619994623110209149918706546422644680266391302219950814060913598362141565497747234378342215113290186746643180432461395576011088959973620017729022255330827497195639821511407140194798249610758966534557958451788267833184863158487782046319364863584449344759691831396114734934062217260016384557899675380657947217107258126517915047424763791724918194609235851879750806416752336841880893326380801398063062987436002501484321155745537223797152387725140643133580944505847994706181573425975605723313967991216565913453101903391602349510800634697557539488731444239532219302621460860609988188289395944031408935212107240765162631042276529570630822781689791033077532268246254546496118853061625508747078779266775798468150952050712427210182227770151995396094570009384626559543504856362651918426181572163244946470646171153953580336879902178503389328873628383181242771486616397257920113217662693706815063668523982986790599242925190934701095723410205495361743071064085555027345592395771898360837794527279496486808290334053700953911779962335573010758894793084599074437632866325437556795702636074530849192042316227704715295999618753677053602881640198815404151496900469346926173933086483089779812659141537008820763104995691559289616826329609655759562402058654628053847414988137567222273057612754619590127739372349539739653074318492807852839001428495798886887784927168949897773162060099448887672311987069277528469711602345034155271214236129284528223376858279889148729868720050500548600293992597347503421536439643850956732809067396073975854475755649243663243575932042260374058557129468895028975441720389189095598620397608555704759435219485264903687676729708639542409073920997904861826784043176602319218268410644240087660978569582288500559798631705220888326781527119840796139688256324571245033221687206519744458114110672572161046618971159621093846190906440841287047104156150906235878367351767781119665536975959992478616182536983806864012345312500350109558890263699911401984047277457131466405391245904367462390243211072633466675010198563660709170937826245602627137476016785631051773827662164247984270218485847916575923881514703683147388671532195216617304693343199958771765348340211008847669506506860001889390273121662214509882241482504654146633145235182494083575733319126430105695920653966456532077782636930980961932922684092848374318981286193007876423538790042200643845461422899039871943490904002730838464738544314360237790828056902242035027912998905451225141574387932804577853138926701057001319906734969036835542346590564060073377134191659745903847067457207404805232500073196811270994327466919461829669613654030503083808513621995497272462737471073235979458206010701435091052441006522895170141406982991455643544924686091291783585979683019679627411783203903380419491400810520987488002229481153086718218375324609554102088883274228671269053927135680674716753236818813542810269504899561801828168754083191358101329149922486703312458538370719815911879339048816080175822192426289443866575601470846725267113036769926043506752825163297300729166126165318849888958498299936867141696129723424624160383795491840969130328916888786261031557082588221735464087324944072622450848105878949578422225542877425709048828186696956619256626130656903513200827305362990771376925760030118969484988368700386116632244343808119787907082487423453469679199009931368000667454536010415399143733861639446464847891500860595166886294189206474139762514157065242716174523780773480625978293364341130042896017818469361052049802682318060648462308897795002799714828725510470720105795283612387170704030404506592092198196700506265302808055114743570047300739776815299635433599550076620707080042043414590014964593003388553619127113731820235498889805343329263105793486968170973828056882331497641242152382702011414853543745057333141714178875280259383487212771527681474098580311848561210880860589971408006692498125465154003211650449666261982230306703687902813612203768524409841898294912242074426583131022729194547691196403129745358504083311164525428247984009224114694987987383300411543690430536347881258348246724613537993783730568238394786006858088097815183106181412803505132875956057175280380670022482195675285695304403543046757701311016894411126642493961098229163516519987812037729745175099551216894204762076133063961883765408374861247702494286171486513546079720664629329068220463843448656512801419328880491229265466950798039571519467841535779938797891543741883099322904494395347903053334685316442621931829206756631651427551718990857456459827315186485150562467370305272501104269503120237362015002943189487118381318497658127665290644939824935620182367791183993122782489369267268806958443066309284607143921171722959823128405721789690945100485750972534311175890549086551223949863816498981907156077890967735328257888623942898973108483948646794688530406647287575272458984145931811476569511380289905716256296640658612568171945136455666008641820928343011421769609480660894983752444039798761212388677873814756316645458845869375784153038606763955182807528277030074890009385597304381340270347328342667150796977946230277339807513942572356134135651639009354137910575112509468869000963730421028478661099747742944064251249587165323531365207386561598566408114350397885024073793700225496367022420931613089708395731308543422846498048087316570762625219878250898264541559644452953730248537384254234836640871261413829926100802238179947091993804856290067584196625397891050980415258905780854164079138072345517717191088590560284826138161890097298268630824702864749056845632032989768736464237006439901370098140010579021040837310640876315226992948034715239842333674157189557066943340707809472892864650836490266846115000814847355579745483368611036711176124622496537629341534876252225172760427592806758440837666113829295906113356495160304326003242206190728118665232958894893354708674280736137536883493570311544471006603324623789846396464652889060227691242468001228237923986256971528575346770626436245209449742677647318726250265481511895713516383413206237285856748926123233498711466727273940802110864511588340743063037963036933396866896861071635569033224315980804377379666229564305397907409068951940087553590653440404448620932517816338658377978025870174257431635623152298436553588855116658102595220679206434519865332483202649585631887514420347599222870082050337972119731578984979526373523988427311269901859584096825958189839980396333549477265351671184976156270301650333181872395005157007234402747746110214621762233354377332677136903408535304805328934056516191325344834067637595130256944645382528836589871323488163134636772413479427044997058473288078050501038126019102774754308083521739717219450496815195062933740258700555008051041944829349529645676113006484926689681021515684764767696775814736833429979819100685245923725388381848507255772213129519500568955582228964774090407348470779263880828840651842868772981997235979391756613550126791626435642141039174797188106286677626372023897156482391560736200042573228461382092621247678164722440365611156050348356536918512480931274575616480115718695575906090542506407780299324549819105622911805904714196456985017006765922539608570509410568674891361029261840341369340646188792889346261007021465985221691183456501180089716954685777040097109114053634933104766583479707445702196121446908567801335952252387999781369752751506184689400301862055508135805027591531787050755562838716219948819482822414164143552545173765168151097702965644833197852068725228596348336943980816740037919147027334489766978042071893600744240435003855000546255196576484542662370514401934535515847370625070202878977592484425136090116171192574916832552204408174764381773739038187563825959016108664740875648382802344140432295804248704671474840651620533158499133541366042257917433666115827003989438260692461647544748627328728228047017214981568986126220280984154009109261857246749737893686004097342809344149511697101670134234099907648330662844530106427471925479717453896521257091062882566191664350212272905314838099877570260282766490446706089266939426570260043008757269249582596202226952155066771072204378142349397872916493868642000825481351050260903439531198545723376227130576259151366199059065380026811275041656266103912400642621139803410919023697597789184549204598133088568795916662913450968071516242216565968992059080136362406687527184859294914223603182899367271721481612974649975067870463103483886736021135700994301151545715021416411500892343987943783775469098951527324386279803217621217215073864903177691571039053453550642929013480852801505711806620401579543413020380147436219024296912195700980540956364278283619618154303089215159273008555027381167753430598256288128073959954055126235077866817429429424388567334913248147164555099834971529591181157612111786292776916336026813593166087730096028422131597657586968933456627782658701393332366872503536128471091927445428374283764439364098189686258595436007756830500109937315479858406718338619001701684635530533530744202922873008173734964822767512655031197078337172394005203149399241204648621981162791767770801727994964909890781305389087954618857468932050606549079748265745499295824772824945517062118303620831834765295806858962980785459361378538036174007386358434593029562929368996527821980630759016600238131504314284981065335392703787343337818269762956956546635848473943747162944391733530510166674876767883980020327574776785993591060938663019954111586377093593224386967384355190987974846790649693131088253642070754242904351645725318359630182634655721394094386083037532254522345209645037161747445859924641437697846690162992822705029501658133661150818518026998816520762873381682930304315787582717188036358996400795364649464973744193291259925424101603007888498362543453630005942422382133327006645972610373260030796930776373598301922863775514166907526868547845342055579907985728636856799562347076018227530649736706267781106853445124012099025593750778484794017396558141687055637283722023572450331810202481086785006854949219175880584246560445415586681146113562882007710636005298455753076072074617180353586159434790852935748793095608085104584555610736365307650138214072065172593891277305255009896600339741732079777691150944958498033300492372446100641862581650319754762931987925573323146699537222618617454958760369903172540664531911457613317998835711554718731032226935732217331773137245784991659193007664074315656830663386817584682987448529868204100018021615687531352056058737949917109356722022249433697863616935233738751857833638476808398902488462178164496591852298883363930879046061701399782990996029560170199041350162542921885456931658539118666715952709987832777784718288316736643019001755252432462387649235322490595626904342610488649862073013819586522740628021690680041877688218692243216724880639419984968662318170696436028839447990782782929183489640677390140397635242211278080000633563525367661036034908310688917600196560984045410950641974616830345011608636744740985729827766549270574944619895289151535745094604913684530130039889358165614803351184714938469336584137440620898587097456384627767067295962835986378117677814129918817154824503551376150824511733969215436281378742638184570218885525808644198431636556760434861426146026864419335134107979573401661188617353061093494230961314787513774539888949731332218843175600528473908569946687743226405676992040518373055419772178057427845359278258358935802842939927762238273341907214810922700753314014797808522929970980909017996431851774600368655694209788602812289158481260105620590418377244728683901416579890676279038521897317665792598502842134299754534655800213803549504787090746252066369807788509520501740635128917985054213845244546196142982010610600866928277220220452800646292301111946333423730812395441748487030256934172044993156413400585671411391199717266558353325574809630510347692916985590422130821893772066910469042024574037966213703469529545374743259405547654364477443912468430030831308099010372466350438623950432956106901183278550188824600412861767080926790256497378178240401210691603766937415019854070366029745074478551082365204455366974179094972938378540281279846024393011777954555627719971013698490668749689738479649456712227272161540847590789609685262544570489990932537600203503154970284346511888080467031057730223007984669635420401034938909485823235209750605781526930912427892719026920464505458390815628886986549936692460935651043999486920671744835793395217341443714714602371391133159613459955516451945783015601845109896643280716283342994173561154640758425119176334480321729194905673492556072215187247915887810511220007648249750886156734375395322009323812322048522081004458188917208667708537865785106026096779601704779173733764587144997012696456871698066741797280737671110433320477901326101601385307643243780277027735436935841172936636374389595471748165091951291526857175396553362247547636604778612157350695542046068963810160798507614822983342013737254247549186428883042598586805036627504482923498239442655696051814637875710562823031840428433944140222301953606099636008728316473154574138282055970598733839095019280278201631731928319427358599597485109418936504827494164333768038263660633235146730064768539363958074042972806091223654658829130526604188142703311562776019831013174174295563171854730149107658068955084465098786942569969347166226660328774326400024481939367201867975227838321666523299706040806445246694310100672702254578349521738529379483349947774737329080728717746893405087539847239539313304480485561307562731814633333973386139690411866118204919988615033337173697518594861957619352528295010417915466250242559809887960339907830832827461214947795401535043282496367693937203732907584358684808086647835378122845380587035790207912305217853689496426195777107809365023367786307419238417383182141004154336621139644805927028307071264205487076453831472138063808391327950857585732254643179462697035721211926631122606628428301457864462717686580712769210615302262594002345371609255679234078577185386561637408326838199493062882140170961939707296003696809399147337429760076254411455760013634726218349309050686772326853121105916903204381239435341147912926294957180104851329116583741382772652688999727816088394603027229917276595063473851309889333554107007765082233426736201676182779196013542103189928388348814417004798172040332369465989424286388768318338029988931757099473239645440149723808670249622552895933701596185992026546253726643951234626283100235597084428849064555700682181328210909644436790881534330865104144699655943828319646023877021044148114498654315660929652822597906897716791366454642596906622109252892181027746009068676979180812550240165131509227484743096049303747831869028714960029263231872456478448013841738165963990027276940896786753664863825674597565746667250731196210237450386397760132483198410511785275836848931035802774017157685892268832371958237375124474293830956766157848798620114900237150432469556290858981015477701344037234691216938054628917103050977256898586138963287614961229237060518798659962018337815585888213923046700647151085541672298282973861151221315588368128187304448703042711507898020483338565552247517756065232203324294915923760558688011916363531745348236314058086331383547332312728374726597666892464599702128705918101180134350966383726616798385108476718627958303866640686870349049057390952290093223997690127701989444590243921600447108586849068426597911214569374548806646542782252919632365112933770417841647303826405373025946548942598200790273004002175671032492016565120148583430708166119885718462800718502839343460224697873614324876104262701696500288055650760359588819383105447246096626335694107295543935803391127720068167768121919646317486858685142477032326038185323990128072825391834033026348361629373423674869320711003099028751983424146568072917468803208637584209077395832438762324119151056936317464025593093706497706488264894342874642166620420481132700740302021449219238080908232268302064188164774129662157076904547582281758649382392921295532642939904782657066362771085479350187463681707672691497039313306086488940002679154832337463964637390129685687081335492621042000963314613558362182879715103465397798367189815474855288994490502823389438649037142031573723738418487676610511504514267602995525109777172020357075035058840058848247041064564258182619501621297284720928302473595334619460483079136574111027785604964311209923122333380310018473366636138041774958766858016488974594832081550240599987711879590168659715524969242155770680918209886504016383194544352074056853380701564319540678379006938290131661609227892379755813219548848533847450291580832501611988065111545447747434854960610340527221600521335506481396170777872697470529982450754027912616525919232178893620766032032840874651570042440299165850784366309558942747125855281875858109888758016680364027589185212127167679007247270774484075384691138204191929750547389810246905701757155642493375588214528760592522648620720975680851918794904076425656102291929022444540432732861560641830594261643895642693286537803640309198604555748969708463425517321380132855823216737093222116319091531350124339055592190226291633686325994143522864996866963275830681676112756974397727423030444563820166824589510927889858146417652855628036628837867594779783800377587287092156486441683933209155076819221240367323870559978407606278344419091341736402036639496308917397657859571504121727154159219460515619602302372185040869364552968980478621139596079522225489336065270985549937614269918674245391868062109360544106551885521695942379167707602438542063143521413954630138610781504103302974345550905020410387854052132405912067873507557501121947172352573969117120305676122375177862773317443860905014181119468093856708143039890260960802778237365413931591472030694499727662030967223050970145405459369922983343080338014090180434101285191972458523797865915746686831917351354033782945982699973417710394055302413889950558298693870356027344171031820198562976089526314963419818502176917176118189163706809233403456836330664049563193783624588834318642333555735356860935508673128962037440452326318237938138582804329554979887716838393362592134136776000309556247881075696151373280898886731203224118825413408766074330076108310061926430815508714500841325844585359742658379041359196318345064366296200388796107217901382461224062353765513135969147784973651287475541091862025807862910222819066652167483998939367056962698752955850541468450795309645058272455426284116869570216092138750335128887954885306635953359897495604752556990878235404697419170247773565938452864010165967925273130900453075184034121950355582863472760129380152151073005391717069201130925303559747937452026694271824146665350604507261952260944497166841807990962846937710437264412409731845193399530665432949859923065740192288770158678790678323023275863952103635312806369991923696935598902925891711648379220107240822585382258616937450398046586510881862963393116448113207210219775934212220542745218054380799269637515706243312421117368891446775367667412848683899138174263029891660583426849901987565338429627248289330489764593160038690231929538095097744204119120768193316658378722249207901620944090654669457147962416408587324322235544553045452559967014742998426831507522147243758845920089115017698776065023859778636713031868604681037146177448214512080623618072213021585260064717701525026342494622513731036322933158940976564835348975820644521716247163535805224538433775908674518053006661117121517106342077414502748320800188486806028470905351435661854092967422854984475575846975237319339927950002357533200763796488512975527092266045184484168444203185405717508307465199063565921360422818989853503314747995614637004537264063457935053216720118220400403974381594830831779633812767970589753874425015560840588985968104758588875315612994711546982038031455797192261736364116596722014125863148371302716732855600021893786316385266912509159753102167010430049403315158248942354799602501724215411002539924747132535726279038924977901432976239926991060201169255651144597551292538934887109272353585322618342179290068797237918743815945566922580031960540735987928330727310804452494642533851765195276752276997193821586496713141966511418120683199227812768914789344851025184027542785456960575783298955482861279485054008586714312497234847147412378424827712733821853648752562443866934571475086737355283797239329864215262106018166031707011477514205260039508055486680808773696337746932609722703172584376972320798391368763144036579919778852808083130298135526712004500267895194492928804488925436694012869945069275897813740174759990739240332011431199323678439352200143962876394623065855651621446853900944718473012658564427062869075679887680523157933337077119980213300735823194114580331598873828897007175571929422046370990818399992110307227836588992884901787095647282758319636293242622005556212006782562063506744526554445092072084795592320761063654068764875284741858483006483350071352535692250057961695157555504306631641956942798459981636506717914645168663035619381222598587574245208534280080376136732844016405223748902910430812539776443510696012422841821589190427287068710415221596626631530308533490771270870193331760492755362038215381098435057623170728201324251077103289125458898702280556521671848075558442990539075764815315446834304766104487301432057763917265800527507686311790736656234564901784208556663820148575519707034485902292831769548341039591628932006066018076437018432488571088303710731179080970889305991882697424072193238089843691164089410978226556078827563460026650749235657710397812387770949178672466601722769040534836440190462331924812450251292214435313115152124155532894491134935711757714430170680207022992202293665138803666361203332701651010786439132555307194532519709463331643863869359413203729967975417360638382408012824377062143755238299881231708662517550937476873793487924767081581697373524719667217986833389499868956104481465289324578482944254146305111683946841189945340738929322957706508399847189177606628015309752543027137718830042977667157636290272623872375657602531080550982372605698374824839848665056166807690533367792784758364154741758232783038758848877642010894037978810020078603502173352930815237571563226755538019887014655087454656950467334779458891125184478268030959291221745634891254899335057083356668637720084153820360282183676492023671800732977578154443933125470563453104057514049878821698842967403031206516283999113810344457989237512392724571595481457369951145516776388993875643848516869497646679461890945433673120086245787803394274707040036361062111949316155345914593854897611556847686799956352694628086801427556494866159498751999066134518330327402661984174989869223411153409787019282737192593011700048455151462566216642414244665512159666677813115320749128805509377682140231265628705012018518378732851512342760669521625810198001574814718391927409077357687550994704436694046324814025977665679662993362897139776389217228201641984283828766185341868103126552105811577092576017284402436571508093019370215906588782629269260898235968823370734902640370823237971774904449937675240514975894694391224241054256660624739063717404846940772076291297747418838831472610122938597315866510847679030252377114297829104244981880328350028299905325994419776747630636024944108283794412230179680966175935731629583308377992417693504074955807065498851945073822577386666994337653093832853032973482375997044066114725645424110941756261262028796684244545679117314813765280921383533915429890311019563933574106070245684482964732478204382578854075125519911556668246768534006057749466903094352576893812848610080690000613404317221020662618903072089800900569153768802718417057071767048142625635756301435886690098814365472411487995473545748063012485939748400666027576843299570375534736082326517804589911158322581344735932792996579589216514221859805610247379136953870489027055238435650590398562862728716406197061060014049292298561211085768148992253304317540146937316384563233507889435894060999611604168537915321694450092854482531966681553159148337813257023851508175879558366145032324049094604288446564469471496748465055134793497434859239359677017699937112688489663604844053919527217908377374222451821484536107094676896938767802218768497787521991953479588905883384848571758397999447344352945021496350350339230986192323119013790600345825381239168373681424857151929185231635871564789000571953396511854413867372392021373609877035678387360983878794623657908973268218805110087452200361553543358874521696026189360778713553262532694242768302687846801522220010046942717685796846352183216283556320146337433095236378739415552191044747283908363665845457356705672289817388770075845987107482082373811023220953029859962237346420368386933555177555592190131483179086985824556506546192930625893579211224362233907832394624545130215271806175911502690296206115466239156021732920770549743693665467182627358273614746169410300051424881792616816529752590242116239175078300724187424796937814596084106741120146952460925275501482183635605078331892941906420930342475637866778067313355187582231438590819042660835692829515163023184236967352149628032186243148574835727438720555197886227464252658293419787689741975536093888379932768783548554030616623375089869832958531432120330744411216830266187064458060400816113635255630348174690681408616000842365776755917796802472883427099561493581366053056037769239691281268966236577926588349977429457618998310791437261826162494322472443043356473686231684245390249786358735422064129354290653182600627714294286176866218749747655236373023579301842421796270558900375063393750579892782124377217877597217591961464971563073294648664825278514330197903121451756238272454679026975040617745548814084093965703872120174238768809253305053483539615336803007285721661349654479857424601865036536696875358800454180219401408059184028100717996465256514757498842922071959639597398987604541494581230568059401330445038343427052248675979189998510246734778565441210866513562616552390998577235629738335632968566206168417409661970057797470343669465269332962340995692494062897762044808694505986015082229001378866672784977387936215866071912651926233690495371205847465741144060780920503618396099621626672851047428116307728227407715804669060732366226413515289061708816675077600457846926066383392307720820661385280882712304431920191385264308106936320077422342478202389474045821924586695054700408549999721358586802713792008576323717247547561513947422390615147583277127243832057929950013136879558932247654688640129351360152092226438615776480669005282571743159387185957424548628953070967175858854604184016250798348843273859914890597434768214305984255898450149313936284361328771639148191727345322668275042705098344914818435364049097378865221528137698725903188432622258954445435700557868738773873030913305169375062227465978049823952672229213477483789783082992001960791632794986475105564176532945581294659973778861972247215765763645540715862765652321836483037393713776330971779268962449472405888771130689639784703582412588086665724496250051198532375868711052519428212230312915105335161141953077479193871504623217481988296738223654717196931712172052053250205033587311116812136385832921161015284846503470637364898805596219809721632092565888055364021503367311032705148409451044058365279099849647331541418945412564072956614344556196288254078422215937810382963956815036634105329619764434939571173762228562605286596702417993368892333342993286834718385354980259087610214765511889729422813154354618327634396005354950386239915570852655675485351499446778056040739276578750851148224393977124251846742684348242834719122651406401292659405925440434350312809093240699414971454983591377240681080286594962047658148143537186553394788020046532157645993792880261657750337705587349397166674816506310787996361362966735788810656095572044634042819293687318300365825181178008870704926776060353485200008438721387010767195860199835693268029879241050866942528692877126494447412666346583343012982876888525010202051966918185952279792351148318477094765853590359059267843660968572180411975651238446963868206577738151491188395829877852227855604101402048274305720186972969189152156764401734443685476609435439913607435564751620122373142206536407119326916429742354264627907819882543340418936011843499786600775211416211432468073696245489504649129844226580872187768347484495160112094243198093922725196253044659420232958284448927461328653607372991203324337731312531220210480134202890501839529192538618727392181682628731683321215332277871920759486269324865197732940967426694309005922594333521768347083924721793585642192332273143603710273885107871999744525924966351354219602187793423646688495521861728150779981773427034629636385595048252565565799966956742453309513934131158540856989907235046464819149175134753647702920526874234115514299652274933161818086497727752904538087438752190580853298447068438858897203822216641544976983524465123095817155077870628067173362746627070580419780953065685286255344324633967441402750661197026632984700777589024310715938292531087875447705447624000179371335994225143192608443648952358341597770004560178865353616879893910842716438263834896023056915028905699889420700403862233816583499531919261052400288434090467771600938405742150025087103042704339542378012830854442104656357249081552546081482395106707554114985740504099657138086775614566911027532452496920188381689952547928606435919905489133554485632755388599265235293879709958766011016926554317641503482275525248619534251403419082839907475955962913952921974390507730519434711138169741113924990496405269910617648500279305046042863348721088138395643195968632418185265029354182303733337004619059009970213268184477858403572375446425255146740768594590940789982696639699642010591901969570248226585783424129124118074303840927139180086727982420041165372765725228373755491709161431815985352947213485592799512071123815442705930293468309242032793151103163486141710704789708619151579639998452771706641130049482406009114857634361999558618336316429282105750502746924783722899376863442553124623330910576564390730045887295478456826522995529833690714564926616327526294571457850501512570685688526350403183796687827202185119821294539827597375355320129851442421948647080466740369600991134109228386621102223182246827120525090560730760624517353814342728779598598096787662431479518283397057286642364930765232173289129828887011171781723204017880205141494599974211885310422763840183347525193452465663796137834769728046070628527246496122528060746706184690377967844754745261629115191913632923718846556553942122770674668924132674883616390164067360876312905668538066367603401699891524176925228492015670619258051592259972551190137601149303507445446328371400275191899846589195835041220628103738829810230010508984667471222469896276192199136014965579419317479588190058730501785312602645359955693863906758906271063855715754385020531523045927003253539072316628366079221632281135596820867480674896931407997141918845945802159689627679760679857121761574346837963080719392299204430603557032866373131817862530494427125097742306043529115577190443807443093862049665533431959396942305343509154945584214279143839621424864461124064080722142409637754772783894764973146156555912592153290718571806355071263878312174765747685407727442575721170265951942197729868602603935835484829287325664949477207478011778909678634056793613452137816284258969521365938618239598709223473305971535294929800355704307908560579429209228836640183141639262415177207718093708947048815025930679057070836388882510894391293155592845488782938438886643490404045454141379438960431562671102035505103696306194957355719299058661685921523688028318859557981132067872787839214132319704034663886227559169057581872807741158851442844964107973984179116244946274117031022837616646732712424186519035162915647369320859797707489668269759133279434249255480254023693557329402877540073345167478135736227508882596354980689492294040034653157217493648304157652035873738511804395202140392919380307203494069451411133506529170390328222374713141997472097903238288724965901603227300918606556232695649563805569198522053723414318064409812062063209599100559115294308789996042917348970296280067993167409204997360347217436488410080575077490407158176043371005552307536617612270780616093603828403314504905747887245442287861755375710698632876222792805500242624950572654031763592230358636945778835914813646634826985901696139804665809366180655387009006144221433514805553861425345363918774352980571766417070661244068033525119262460133380487439156633216976803579688942703835154403124961576711574620341184951471071911738363104875340932415652460998820447088832508860712541282886937794826460617447879592236056856500884015127810995781833016257824414824600140852417409688589701400575278060279648279120020517140005880198213340499744205846861680905674241628784612505379159351060443064011193684464593341518736853977056729996297901190521698821477697556475237688349691671624404682886132621667558500434406351953943974567432094938515331861120284977276287400294707557008976654444885768400251209845252976668654628180848472393441092485917402340561246572220016816362979890160250807901160843192254861616615492676769699785918347961376341581248835591162630295631196301455458607846205772486552538682816516691669719299898470867802339507283905787542856620430687074234011541121657306163226236809425723042231890866050524545272405593431526969038676059212031785264216955744797287568722006776188036501681783349563625439442637686109310049060384525108385765520032169915658478533782178259579688437090438038236237225338861770849963495965789661778568074671512762392841626403359737694491147412937470088287387679767915658983598239058693596251342306886017023459127487858283524140926011077741124194664503714281433747166620078114766616637519932378087795311958443759341294398158077125819849207748517670248440007960991824641434545685163653575083484526557198229372644546639242447316154004570774486115927447956711144151202899513889239179215478305868076407682432030647374055720424675498434033572885199309730743395011958762368276239635441881483679407629544858334681126305166210185083584598961236857413622902489705274320097677629694151946300866072260359673551385330379899580772708722264813195324328317727097361348677746310334854759273233194034623864131411650057772409512724833809078062151962821152908922389512894442878376755112737528747197378494166012563795826519444425933830537267708027882837273559432489199042387217055455972032416942668801235268076579087003471236990615121497932698061492351492484345276776156320185468435521675937650315922970225149765211490534313215421307973977536502328373682567169278238148207820771311784833787239878602135268155344078234112392534583780588312785528452565750030466144489724594425770143076987722298117822208986957206528543949835750095249792538893066375099914729912792001413305733505870078433115137575751975539832932723221349498086763775760497217034324777398855282367444686601778193742835802476895818615903033625233259690248455041212424390343190925761909030365476952771036891895297842747579947879238100292331896714552885842675938051803670482722790589940637037087529258488599853228341064644157014607916137777541612665558132628476013469102021111594208923681198096821412076599930881288420837338758829920555595744179829751098604213317567428670300997565508408501725673323251538041280934230972601229767570515066045835140679146311592800733963292900672591825858992111656667959929485152363943476365375531540408987288119008337397564291900164200446335454355009856755629237905173180516365349803517345783238814422291295237278011760069069283736167196956922310863297833998947231360171527886041347446654585103730590782681843593315371165572608237500711279789245088258519941476593857648358183902454659572427073903589493366180642379699225560096759990474063427281164188372518765343384993271137579309148662660677592530373154577187947289497471447360440288687947088071972890495625335591700359083875440521064343225696563475254076724270196636236912805084937524881789233530323040130689551621439375640826248803333700784235459689562805227713727850511065110217409539601971236106412681198497047021382918992528159123857820185727118055755873788517050969722458258768940072928263525653109686231104856143672090571854215570223630654992240470364224115675255380972289116465125114353865176842296771144122791461393277993581907896944557827240261526877061894790484756932851628260012352478261970811029081246055200647984742538852403573337569564094408832947563604141596066681172578519245793773172081426965421143237282021303228349040751675545974597225080353571616687960697960317497824867722105234142271475030822578247786459464825705020383029599157266447994602816180425878802637426314224861822334435250049801215682518438478202014402402888302555110783773267983140890593083773538983213621963613958394037946511118528015835604680462618690865042573135596143287372823680824088498429343367698745087716373545541999221073156860496534580144977125356714617674353219353574068784920682084324962287804610730211776662635696926253516713522621566522609956347843845856160685956057778553057502679575276480912799885642987795295242286928591758603495792156512893336137877280003126546450973635731018495548942994429654696719542545465058941543875089392382870729658832392252798996454499395089168766628056073171009492974837627137203829000155333506644057643170867680573521372161394380189625590984503082230422927187530443941589221162153281690607997161619470062919664712189613527687107214937300595821374681205429026601721400436223683983603805166886791510330315108708296965968810695301213107838260890687736065931593885076561926344160544112733290787736811449800722316577519555156417646056437819220177065055441393766589500833116306396860712921458769379656109227371904460631121653272172698090026325911298410391047274030304710677930493027693854534957687528731547094869192998086021686637555076385678884825242364325454823432672349859816615650341222618435176463585851247446488716083955239204227263994313577720504001717016474128273043634585030262051302466842007636649953978911769005736254804022974560134146552336325741405894601641934288890429668682613304777958958064004215953617456586955472820446006584543000275803940308154494988769086378134282902426113798055333403661219714338456051260861663356054471147936071090249472630911611618028380232581475894986349127679156352475727945555412669471169030697116791227928214601436440138977100711038401372584654291561062884653823397756951719793525406922209938216369535880161979803358309985701652193878575145136142122796488091396748309789395112922210962151995387201834777671815643484230356343725938811423474103856121384480349736783989166328627076436776686193343571500150931918899047932152565974404833505982776878048796989020826438196253199662010280282438604512539303330779570816529553909779734572713741753240487998551839413510968944786733079916946031968840600408557959144037500588851637809370225913924506957769762578426984190968568093290257367823131670455364555276823650280054316967058577327412846559550011962095467556541632472494089340665119113841130184024894320646105888517722841963104964858187178665060314262313307558214257884855988704522901267034635882954488748109151157084094143519285807133634283999521880306469584731309641740168436429229033961401523581676600612800109211432522596696281809774294856308253964554334641503486842787311367443041448764525863814916289622934050586926607173115092574213991257938831711240709454609705922341641700759262247365262218735839796242150858428131643251910171147385038339393180271595498657476107686011327416072692644530286240501628145621674954349848831552758711001151303935819584915084038856967944364514505381972423475126472860245274519559230781352972408646664577477619176210474949033094867773141687956281998896303563188480173090026744114069232828911373666655993401013484012345956373434527005532848135629834839072197067862454373808345268549848227598293134582486510551115559272183516261029728051770362142135783504008210163039273221248875109235595962260238436651103136422598423534613081957827082095859581382718266090783608179881709636639558864317452810931300038374456054314870991273871173619797516951353725216485554666218415518321897419821928602393585453107845535071377441854129237367364926461947294166688259392193175746276188896738710210467604580526865917178415676961221171023181618193297083329668855670973027719327357592907550156191848459544735510122797935864797956259721014632610597164564985288820332935001982299052477745702337074010113794383109855301914253573629547772124496540563576370934860630291208677101362736866704674374947752128252184192346919831956714087195531106814396806540601760199496455199321618664881085497756953133402768907816405661061251078501591044364065380083781801926326089830745863679283149509374188821127229668172606939977804664005899986641009123138804146136040818084205427520466458605457505736157700815771916399908166322500018061864557160118054787881464774165875181869592980415992363645886762729462247436260785478422748282951038688115194008858350420946941580323416729270787951195632598833208650708382161936491390185581793592221781324561291465298368402939190934203636865810253392927001820402355090192397543180438483947158554871152789694824277445073201342619287494786373101542575801189568895419199451392757207515685974094177624503277678571603994092052683727899393406705911845239009528941400218442128989056291056884591879963314481603364897424213079119214060103256775827035145747357622759803745067960501410746964744137634580325007272654348813560962605993666974939336011279429910161561254274062327967240212774823848635709886213518008451832905843022904709876850044415184574469373390543911879898202844226505825956071093793225935057419919160791660684838552053837402371925081815901919338703839601792527083783419238259139963159183162376221212816771094830428383083773715626737861534373941872550047522129986751507493085277397410559009400235709153114161122438881731365061108605450421960046625125357090516773737759342007043423683383119908100697855433589465882464268211382108886180463711319604548402764632483789179690109919774067950550791074389717724602788821768584774704584089779680858665743575944875633510171415003835013143437633882130873873323822288879485700124724038184477899675762244913932190472794171972446749628960547174026122066480658014515846976829739631277712522930386708776712335955990094237680827237717244490937449829264461670880371178942126803235081890339997526901455481639427415755387367599562387495148563510756149333570823397879584354424099258050854290759497414718900695061148432209849736146387773615391322473479770190029617354363276970771255441642197194417662959729197775365197202838905351885893387966324617015148794418844331187170866249625436236578781266961177698762636851783439553420271020237332189696916826151244243448254558038077319925150032186668649884625109122900395172629870341788908103730460617192435788430814803888959327149348213522507096915609530814300078491024349157579184949394797502880834834782073819917237840508153172715663328104462090320076441605220501121199996239780886513731889197680808247615747808013133275240721504439850296427014929833783536795371707234391488318753091047543970147357928235628238846523358079767462522467979564608903451598387959245996800765597371323526507786524945478037295804510978623379116010264812891731375135393495270388185404500343741133479278346642166892687588475342156921493371730599001879637011695050528741002139303533564521243209581907216644596267336150833257953923466192230102570220073304740397229579331835774274756171143473895898121625742070029266669938161059802648957314550733245428405639408548897960043323939668697759563632766898494573083512674670357734456785895782130422383007009831235786807711771665011207098676726303925483340617108320624683142642630904941065724828408236136769093341671953460784468868700094239080261860133968499300394613719061857737455507494345480180543192504225317057800992953761202860033928937286541610068419289692006438772574774774305677930269029656497142307210558193362909708560967150319611915744437876437281173314804306814724029366662546878114880804924719864125736397439777343082580905826525141723918612183734058087826791756382251187799821380830262209059842779479958630609049968409880446103089088493875680666518331853602919108864153477056446357005846253653211796186015236209853168235173663436095060416514373040269581820960202612231000663624329464655731084698443181365609774556486474375383334758014714411474426559133339040187896103332682977451025255535737823659711647189832629549264587537242230763795264188085151718031609811481009723972747803403036304918189860924959250450894178368722105374660183134090565759783933757268155669826092757082890294212441694427893155228081133387059448466210428997289683478230102984806755600848579541647859969313855445961523363665623268250083210202950852463823111372061894636700894933277116914696443818303253620948040989041277013955386958504884432665841302288664456100269345791613867934769997462314826383972033851754536488830439842602699355353156445497376590174085049692811873603486784082222049736107573710839488008449171635309693767147176790847279403656975817169437571469537121690089239360032252947263309453325022878275102015590562602753338086436539612877873387949690176154650194249610373121929421806496085297893867081290131247665464391454979722926971526082676967137600010672847723505138364927092202691650590111214402766504517855063282546919251740425080479992573730723783329094891194805698751504786189042971686582019821008939687388948900089839011671872229351408955954212426781131502400685066602394419728797256842473916055844390191131734386332131253021900028679492330856517124116126297180293710810728459079887321034088264378933341537456639991893099705382279757244201608855701476750984151321268091889745402249202874875274111574054888852855798039574069107124931288237038987129945365007680553422157986994102032827781266485152801776212636107538386470015691955303537321874326476456780919557607245936347610392074453706977698705236073165712740522459784291503557112142512443672538742611551179274501610827339767981057019541432837506311287991077446185220729380632037788868326732220163787840397913687243436293245769313693283685714636383760386466249063424151757311518726905873226398684967745320586099842603141824349501095327452417136635760375063113502709020432765053037088774692907971042994742939499628778372400884692934692421604712150459903225340741150033606162616239440026449625328419914486296470403699134564688565338684527742979229980716626324006505066874327078471588390155287206889581948408671265534711890016343572909320991360290226852835428925750007170237845002231293801526000976506776721393197656428938749932557093107257690169989703037264870292628527990605263271828139701020346954157447221688261807619247584169912258866918270338063921669987718449873219973984032223288878928374732842651259068563266378531347630379479851620874209060429009868788518504203438502618675303691138575507672846225355083443889118995819400328360261413716503391756513199061674575045142717204607273285729291071966602438220141469802054073699615381463217507660701661097466667428797011076537152903387213350371349967395765613409024019604723851073344768721959396250535597329328512800482637967142563351871658581041090451462302364245078119184098864515741134301434206554651448116825651051371984266810935728970663679996630306801268115035810127911811373769389817530454926369580220179165700676934172385637378333754847858375219641033538797079444016203210383100751591689887266805641214957231091212521567704112588779632672615900835291961119892761036756814005235856356859793282455198473863961524733559063186232652003100756315158270918060093202617871096640123130208027063829273752555008129220203404961732671167732202404184571160969399616978156436031142698467643626553453984813129418337066661757829331446776368781008428136555054194476862698461501415058368307117955586395990944545259600743800328256007473662368584981091060931258436083989968304456488394336124320336983962439883895120094461793563112670642838655751939604872165071511054781921536513280925877049412380374056365969195524543339316892812692798053019474241360253947935779321139827561450796191747890287210061050138900721264707993683712619784936439645375163323359753143171991922891801824776914257703987895028946521889497676803879050046483531325857736114173989847888258191298910032046188521834440675018635659403390134399291147190297798620917278328333500565483369894619058842006398420579940925871137876112812544883287852095445084687828120357749422003198194347268539304203234529333474672566217714780615535320730023544614884601114723349867634978523888852730544967411030304565956579393269229539405460789682866833343678060580202754827942289042508734122582697234369790459707888390867783661868538439633544087132959518299748529042392864950600981556837051659666619220121190448223628132326267202754759830480317811900635350635806968056281393531878449848004154646776980185676460055190680426547696970699795137821435614005074968048266189670797767728631226772523840014524344060411579009945129720748853311132581832487985686916606027313034731167928623892704315702734721598440288859602338569424382895504393978916234361990357872736043506946095326553344763087369393633498997815669980950561508766264266005251913777975330394162332521095620119275572412096615275285721589173466701689984196315552483790989347998204006796577421403286949661419491677874785997784987639924598584711263145721037935272215141352390840196291238794947299776575840828124630150957400209341219855382506973180965500707322353636421659148944285487329984324320424824158276149169646838069202541622862382277865991828036308830503314234911050276789159507113318193350495954616818267347370618460170000218317057894389249033722452750476745631560922290448811943486368737652066415875618008685268444791369157681448355595325712236356230208012720692538690413647408034810412925208833791172872186989508643311693117857433606341599643472697783289859293790239353162658697032971444383682495018238193737961884566983668642726172626093891320143699454893793589981447264504464942000465002115130554376157669183094857520388553715248997822115259812609035444893925491917992611179058946530995270762222185147501621954781745746216915922275657904317861406689401797410688875910532609277150842476183859349081030079673036414195460624165720913136561109653083058194021481360490903793634412317795178140923918838767316876415709609913777794397035352232511752750359603101112641620414807393337140505985330075865393677009751004396396566803190299690620862209522723306593318418185639895787982837454994380872496666564534105066509216407181115109265147803404806205401877909319446753882427414392866399890279813638480498462389846942688402063553473516735347987891325924825572109352871270225096058564396135766865777134372398068564122352687530178352129241947749291097974513582160804275242922518616026396792141032977718092228537301390392979617180621927957329549479375974888250811922458106775913745194698671418577703343053523830213667716181780221675865850192453570710240572612378233439710705652494563619866511166141763880432836079416123936451524065644871118826136014274406439180681359385480528903045526982957188906361570994457476484372268505504586233917964793842166367940606215651599294297707003463329788335189370522346492131570904334204485700116977475753829614235978056134095593533723947150285470655150778366981081692363096848962570161317019267656028826531964809521908788284456414705616700859486839009557628981697607182249410407904729928373720158615723629137944497677621358575522847312923326497061468492422099042281232801843722800545301607474405651748863819944475431901973012221267603124910267178084739309910144987422585954649276548766918411796155147000963271392222527047766201066249960470995436469385352754002533954428224668782403161563590341989944893801686178432082103600786800086080738522847634414419107704405355793547584237377215215207327098580011765458626728386670605682494792287980307293558601429420155411539551160293857822836165805730782301247439570786736673575579156140086104711632961609668853443872481469384121677002895723812832301529462320004995737699270000981641796673787337689558506300327343678650428508470555669970780202257791549685278323888663676877483407648637532414586006815324999376237773797508518113376141168078661498591812515068208342042225199079302690517961201415379906292963982045633147163108111392391896113626392412037937891452955387297383242559350200422235673821425213329351648604921038852210574650616465988038194927367308869950369267761426410962693707352705405353073864116564542653304909139957640867487951521700968641217406762727774341153546496335701119672934254855913009434345531639765969819243340940446786764120963077956471698749999018995808299345854105395944494711902200645916006586697700120351527043057851206952768809925475628096983746516746782505208528337536388571872354604707761017743027258314077999835400186803697938777013470859917627112353992993906102147558742669529170195828447351830187008805617743688280012629967403770146379188585031607922267835636517938492058654408991036102870407317492700429830379523150668325615887970451814991085768497206163499075725461569395303592816955950738097976134882946411672844901013472918239111137536113843368337292837417879165621584976296818290359999564999899222437377623957826104201779104798027793614922171281328261537186869560616121790211612606300062870671530254880317502105493473766459045218439689746535402665512334964692523722084443669976071404266972331756369358343795673609318985415629974475757405770900745424662529740999321023364322712539851875979811752407751883864472695934234824357436398893905396761125866703132022942023491336762171072149710478624200682923721304440799984533696128891720953611672720148237191954450516771312631042434172706459112624987028127604995100757093592999618260082281489152813182261392282645007995445739603420684093015406444379933306291592475411456105083896115418320507193585741526056428769132583261157703535597075751753303580810730003843099533419772108084500078997981912826268346461219894688846643377617418304923506004846566519648995964706946715063411897955254726045648932430378793302397421220326895211856983927557131968966093683968043336340387835044166984492449126839457645432514703318108875510538465755493303225552506717517625881658361267041748284621305369929090536148846230571014111082395981012526844415773864988138281758720094507152061478580099320606154456457849873869259708847697731926135551755146972957396409503491701784668441236320965386908180807660132024575624629276168426259093730409840896670100236422808899690651721292580959154363872126559334705420286851244191798184196699615335352263749540711023932887030463952621727008452922945855485860737971571836905308572591098662489914294306506083642997608318119235664362896883595996934276295003693798065366397052411618234743392075075498302784507102901329770438521892940552254926819017910914047360436094197374857081504909351250431473031355631577499072132584513293999199967849299531077890789025654309394528780630925235231146553545672011741789173514507499872717092287540693027874337008726236693478026332394951117877356894313091462344021592435200115593502443253924523096919293770429406239682510693740637157513066160181659690748289740354845284754981997142820322804440093677377962828159080182500189058919044523634617000072726201899137249620267020760512067598470235739260756557445096718246507459299762293141329887758929881077052985443841206799235559847731717207838159634417066002347358490809208998749357861424141708444261434160589738385794807060839162481571606551759818022318897997018746776622272376427825989274417993062403358079399514174284409181232792985112026678217404353758749524505361157655157206919307160548898122573754420671366001322303265773117917775527336380809291185518512139242764075915520282887163948589642085361848662162895665969298855499592594097360727122878703427720957443837910066313709897033072098668787714264791301773513789738027225431166730037780787834774281297589741811088950557244472977903763432712993904362654743182073923286432780598099225241095975409863389413424604386933069435306379620057040423333610966577766322367339469445882568569991440071339423423956332950549346031009540882393839319578234292221645277019190271583442924533423858644429415209621803987464274315488592325342515476746272977401500549344167377623266860778920825762571074644645825411935786626137882509776807249043109419532112535754363017879197306187676529506410704056208258014675559585571489545184257178566645795710482344994494940904048378754054787449357798861582025290097239887234300206210690567019192566547046968282919397016350417402229807873164680886758620342575954541609442854524425495343633570747060023734316734089962309328950474646696398511643770106722546660676990732567281596714896340154247861984267463300847581160102006060704678640536621021226883198797793093337966121036424306318782843086016120510479319009472208263714388939731910946297285059268771824611858370654625084313025374058631649044982969023432144298270413525017596464346841289304405841859838892058295308468203905512241299466956942145959732130204455351030279128656365426993178094702478659093509606031968828429181808565746715824020577171488050240005339615925423484807434003633854157517417899964215894674918908489950278599600875170514214967193262159268721632717494784737548038240037433865779144284990498379333623644934681215936214128465932346585873842008107753317303353855502451308016053995094225279326584800193814298272045417389229024503445652150080821044918915401921790236349657076339745763466397319808307052407644893563306350829628137472940475201334921890382063030796092976874143095288097676975534920983548523729119221213287743455343163517186960630636309616914606267223535927531818648748644629767249403998519922584545122759547246176769176041680587603640236873265637222635635457156360295384693241306980769735253610209665423308478934304433914377922518610306049570560843284903467845386672729070144353168219547016378599666573341541824311949421221056178265619254360966286422347338268852320758609988082423116558185199539132155834804518279036457979681628103932414405753042124250984050959581477845626852047106607142908014674354779181636919259844577034029055923053005948952230378426187787485487446427043001714470578493236825340414338765794135492778013380335767221135411910271762510423630506513486229234521803880116795450360944562039882705809179259545757675775261900204605503205395037012640044245906922057380864610979856865267860604640385833902093211813614620373702616034256832601430692678542216790774871988478477630671595141295615645974887491225179450644986609590824862154765374234542792978345441980514196568701335161985346206118385700634407859328701473200153875366009095148060318197110271260693430263329659862844992287189803780251521262098579267318379704081052173071726133761941561033163784245914416397474618407937723573043586511369712083447845121645314942556791653135226687838123997529494615897260972948149746288962385425356951791983782972097926195073633445533754325404395956248028355337866330166094199766901953805546678883181799618700992678337410737424665785680032306419107674227243853297575773255395589792614125110743012474540833284013992448739652281658711799804233516466467292257801864667919186135918044103894228266241167326580400499636926103455113124112045771963183747321745930361068901712493827191682579975613516536182588998963180432200340532894522579864544622887206937432908380994687098805750211537594907665921210132942209306427048099353801181963366101202014075604273316680783193645736110017273156846725694910459741569992772383678915669447513963645648271402449643289421418936816314120793704083091216617144528717210717053976151523133753930635286579583591907357842705424173419529522378035534677225593513853787605136951728759009110318361613785405669809494070104232436383575727941527459611333908835913280505996791632268636613353759017642275561076504975055474267701610929785872865025632523298810402188090835590643018849495579831289214300451659940506324471434152397784232632127671848503703471241399392836955121607729192941876850648870812433966984837816897668844341173195441542368720081063874732864564964744054076367736337032451578886279104246868043755577948644391869080415548706712428110634608628960955563303488937229057622603731176471591264036461957918522614909015175708732903072398532025576666888810751588959016816881789651143727685576363193445101547577272327572842055502156639298702702693175922172675352745793833742270515195308049547560678814208121109577810178668506704701092385442801591449530823830111059874395723874539261479549596150230164518750198963638762014149054505269347212152083449722926763237313278055024483808956962603936875692665209672801394905805573074556254812269549765248413818378224599451564892892919885762358215984700058685337381683119340373439618445688288211581864600514010409837734847792711747574398617719600713558565497753772603250641766261499506580778633705872866385406067149784433343331846555021297280572454027407689776222578034261463397738444638956566453770028824448633885009623700728356707906043884848709022558112530239623057259955782879428075604065882480115643313582583265278078834186323306036926098831710791580538160142592871613371478613522856647631214074323626055374512504281875059299641021429586751290207950879841273457627977752539920589902179299777903304365856085534235582926939375305078336980593338118461578368979317926127462178474770202455885093915580832082654757315615924624796716407251814600276948412034816948773159750830751849247550534200081519766797506629174526793706327152413048544959817000298116200652185244246134067711531891343696515634445990090155505301258385088547986141357613390435913444361417625533770773586057977497003390644990611245799271165852522647021655120295683590199502280880061841684603827234952283714298488070097965614936017564900028023365257273515816356109949234124461555311748396395352637328347582362103503412158691991987673813538319583751729352678550021812570140881637031422809837612096841542395903702271461663332491675050835308217061945058496094420460017056070001597148334767992311687733485852143803676222873880378975880570749825771302680779296161425470163538379149107606518247743607198092312507145529725954388936229904073346424668551393313874126537890059284840345266896318391105721792429675458757285640556984576377711946963586908799575975024491412131664496718266932224375009717198737241523958291016513654928157854901085436094545457369703001637784799262986799675444173453940171116565291289692263328010849672051751561523517318510896128171196228244976398686235749188591665786162098603424733587717349012967677082691291412051035894850522437052950629496129144841862445315037298706301914094543876055105643793337797543337103115681581543537948854553557658017142932870028663266676887694686207602339546363690401265958156959742031427785480273132719706449894227950200652607997054225362038403164001934458109961165859627433385865646387529709025646132590016886915443305573707322321013084522778072744358810722875566909436887699342663824444186787318581234372573043553636285512990985503547410047177161094459853621840434292062642699889817330516207201189496327092218407594776417890421667065669658934288066116096930406981044110313180911606371006285836574741537643297085282655232846342618091650303878223255712108668113215462237758257499587888941349715025920984337727644247450061076598621948967165288221457500165916612550452183581991232574973505551441099923598545505118542212230298585621910472767671675384350555790927745724398404164007871380244454834886344326900670390925341614523195905594413008657025252057887044777538807503966097586185046546534226205857827930438695305359668857840801888408001904624687846653469151703587624585988290661512314120559457615961975283048806597985348771263677651649878895451689875770043233908094340058118240976379692641114065440626509436095094031313384581695884467388506372554796247488569642608133311389916528008728683943717853915390427566381364683611521320094174241717655009721712481823551073542545042917916576783230029807755148388598032499528285060255565879754684519307474740877070684741883345169188953375030213658575408440625522689522342234317833610908358444757634350268704133825423634391205506607017880021164688798371710478796298345056889567469699758489575554962922521094550604332021062228169269904318190361507305597553415864666599707402420137212834456743554771325283681259248883514309490050382644187006477688362146952539479079919087930686094704352104794234603815642752231566604335727135575135059757450366377215159136374167066808624836330783790784529104702097034609261031397355267253050224612615615717679987664074048490832863486429287833707100196707088152059366774924043263800495374690192132201228973751536214802863041758190504497373492492960009313659565904699807752685846993044232425033818261233079821127211822319428465784069198598417769203491625882030547384936223756414783202867751416420236318598756377568032162018974214393818649161154850823077553725549320202104186272840943905288712784571298328674320833860332560173584481511024311964760756718420363075178473892333155059986098811554402911967808439106255276593856601211589460224441099261420149929788987741076861188233673198786577975788807997053170610869179265573357855817473830355920723279022436390338582300815754341976460995693605246847721048428785049410824097080578921045233011853705887302005332622425914876754060316274066036746506457530911987253005412350081175616867423170502416972290355423538025142773385943886905548275137687765988653302887819061103636096698716891094863927038592049828903507303761852806211065678958457165762913604070506773654791995773918190308620242324379507614376032859063017269192380756613260410663061835181208103723529239925690546201869292273682602116041111722512070625226386212953403584371049872649200800454501837669448935087786702731452043275088300308926800344685994881401483055540784748588620938109951414976082493895948517134800999438991695507576188474830843247472343693098061161635075542687968683992396497672563859864817718471915387644188080561462163232911230396810641999553963760243003428879413547241621889396091005038679518178474155075251564895886379759889518394881294438721309526973769189527065290732588184215176647683307316556049562130240413370398959492035634444372042872243399313402796274579749610572867584283817642019913607047604130021573525291716429239562837018756183180902079441709381807673225613648894769679578205840711117366784950333079102228713344819755496740022976292994406946267434777451606004750684244141316817365557203014525215049524249471385927253095016751746989434172419201388016739382805231976168963124586893516923394195648054317515853775416742593570920561621329659744404174939303248400694304143697401676008820325818521594625213489468507506287930107304924518479617532467645732989703675709797144725568755271100525928933616924141801200595510413961223759805140445061067834795555320075116287893474506789496595532659817533349357829281630998554146062816680920524356797882280041083650471626799658985070446693386932328975471896237497374761607391575080882273902833172481450950636386311831440743972498147892578903874156410246540136283520502606118036549041293807252760296927235828717554162003290710634885987074511348739485357869706508785354056923488080333858261524663987170223130819375006887666795642807330645240437192280222860463454742368097201181631830760349769590429785441272715597625429572596620857351459078475718640747390243211035841664327598265306980133235824526569497711152121708285056224887176728268597036151721117833408895284953592639442163840111139811174814640523348002951462385218108833368484104878925032162996497290636317845949129950392923112871783337625934447654593344871225849143636599317789301855985181294786377955880294689225089505784831664145823163894806046182166175003662176519946968723523879850378576913695409067787729971660315039192571677369641157613694484125809118290025837590456791909614458290112482778589517690100244245470901153284666276069449798100632492352629317194957692742945023845961646794812387259676578374687918032793768613688184807233143726727358102289247650887799753245176663642885671185924000334622220674909629192113761957581791975421373551112858243880531215494739898076562969286420467175993362128355549679994250074832385173018903174498074672293018714865731730334731110631353714225474486156190550198979084947475384247352191234316143935550959341104320166425740294445731575496559647260205008282472567704143006206643027838020117407634538802541411397866882264516279240483722215350879119174540608230261056574067891489171713838932751253534814992867962422438198220499618238789449691336422893511265961284193443767034577489855803361766915757236743168453776633064373031790331240439518732317393163181020197032799881367617808769597735583366721800056175866320464659306709822382564232320349043946365867867874027305843156921367874597529505252400449887288320526222516108620521717176175057337092803288489582878266955560692386060578118308173224137488216145872551800195171544094172045186559066632492603826028941686969744673104675950220783390374134719822210498822151183439877250558144418876889363673495588166624516655271564445347015700339611652624801764072233866243584719552244681360362074488440479315665687585787386564575882434449958636592735874354568309271725680598890460375663865199312895424554667190008242301874524252087752767601962939905641093077260545407698057975309344997016923384567028379494354728331944288646772746267134605825509126052535142878709805733206610979424380874723045860826469131391962787474447099624388217754307658259864151497952663092247978381276488169476328557572448939699386939293705930759975446379910386871907018022379689352400623837892394849233021237465522647845157939062524069514627297295525980236146737251868663387647857926237758446165594641588658051080930454136487351066106852127953283446237625164617907576798467840049536332565391332557244457524942923313335009423614743717064453431305587282415758226629609577274340043244499183516413709709092070775217179569289055434638620460294219919085217135122303410709274602946662925579105527295329936370164725739452759028020328390432854298538804863471652785898982293984974295590339795044370342259714329035495121193173673946133207815758615407221051786280270777550706676871073970625120679534961213392857376994944731973691791728718478625367521736053453039897000639675210845048032914968662925897524353096858874507078483241177505228868105180400322599090567411467295560735720883967106804239062464796133713031559991220264852882407898536305007093621723287367080344244269219087862376891109226948221105645597085913008839916208827057270225145569779141007399009942745195399501103479997481671053298650724512816639979904576788764226787312447677448942633107152387311252135407628715993341316117320353919501688691039236848995862672399595212517198441993524710613405348264004197986231228683785698174869635457490608037544583445691875155949559871805965125537911729166840132669589416226532177769184412460525351730748668046165714542379761120235695518949867215762308339390688280102581340711638279554460027628080936375859810541559252702765847096319277143187945507533744347110380842899435492693787766699078239019780607128436823940792191671728647325615757546104697864241760181462697729136519836638524713350051700690152240550742022976881003235616084913973052840634360893893612209219180394898144057316771182430741715692116242049872147512468076717976772553924782584893887142337443461611125024911836137983505461655370794452309197599845269142046279244479998318805055888309569627348357152103463762926665982531477848520204585349015139409951798456393929293259898829422871968385645778083226050700363860944047220707300235024625950105518249923573231541161941542821172399874954329186393350989760993824140085171915068387199633102923989203849105706415200066421454596856228945265986988194125780866190032456238070627254979275621383214793179282186190967808344252525461726455146228500752601042400159919048228202769499110219127119928911843978731472628698081278216120301169150213458314787845973628632454601937949064512727078530228513424906049278256350348065197849493255455469034961006757500485456149078801809905831772624299035310213085945725019067498521460291997675866556786897274621492508250991957129317234031934570654199691758338695447825277661971121414445186671280830564995387060896912253638520840781580349038483871828217940099412916842457651676899568346544142160067882895537301950927516681372293457795954849054490905489891671191358936460573001443719326508278490152565840979465162421427510781349637894974277466706021881656192282734252222680720344562307460317281586749622402990319166938582135998088109276581426056890654429103705241102466934621216200135518848271141552128703742190987656180856940656728010146033697183502078008321304265733404205647672042404272570058282360535196745820706646794527118091269051832199120166188620376435022167551841290792937353503260753764232611883958467814260574905395227857785039980839741130335946429890499220856893182038439357958101638197122388843994862782743501235937863435455152035093415720330272064654777310693609553643321858597660023411888919921030430449914990433387988219157768200870634236446963722757313890607939123508970731093928454234998596106329117757889662142476548526927206093542973380325080909596901238941754058407922257410449578404881062035861909145274687981928882715580941516089625588450824361479913285339260704485667417490083320527421009784629664353823501270383280213009132723453575383407812176585658813055510284876619778788316266538716123656461990370557485704693940817537706605399214399310240843690306826989132817484588469196099485006469059635843650927714134307246870934124288782794192288260125601864697711646864388569389613930453696158961336661487493752902529749878302035854702872026835625514336175348242772398528226007551360248782155642424136099178323276454023820591749701623425383853749256931224661958772773123689195056045313348778259294062183411705049603315927757963074868535237720832943295689711360600042301609578395383664548287365749121172434793614753476664571498531376579527939126935590892498749054621285585325481315222142008566693873739708717055685527266806545005747098899499933930761291946133432738409591431452899879641280523261967908495674045641285784381759820042668447576355732596036195383538211778800917644630021113799603058421852488492583392840154310949915460993476104056949425396912366754360316644006045177266206186652473287974885461570001216931624676032723160769376875613226355187247840712061094697320414252415357439823920674078292163348148815083815436828123225990493906334025287208108910094277516574288717275608094262846715888414798329807901924115070390933289324899770264117636103252775089646060518560243171648975935141516269833253727287258716438320650513192474302042832365540061513103799889177466183379238000440443266027710955024420090662921547521924827693123310669502568718140276930416560311095139830091742972815332265222734603634929189240435679312269542630371887368333212200795590599158460909849513037031724437398592796936077103239856160381675443869069420142928768714868179743368706656538880211978522228826383198171921678028489767233993428993545000549281096220994184393479805589340396065120825930791439375445663474656786675848868910452505680814783608249340571582568146102093112445682706822129295901407483535633074722778718556889714890800807149860089723207306446330712685558855206234804167628251457570034469109211323291383985486486360127145960067065472104295424838173020509910936645542974851757803212355745952277622611431245891853698270481923343208079151040596314905783263804033427364879746569511621900622102364247939887747538783528746935185788602620309817738981618535866450010683994782349200833456615472746494050684014518934560240186501871560970037284322152905466038917147414018782509243211887999445783326184283303530311764455315368236490521476398241038399545659027684864468052656477628635463684946578763666029245340138042365924440491621914801528936092360409666877555792970876702800688655695828757298179029415869568118502114354389377206580339591627225938474662832986373500308008238437614570173542419826331987922168920966943867080535520600895244628216838146277670062062445095769559052046497514537050281786958385925535119070626781775463521392726036145042216540322502264428455475994937323777512858894500075884305698432145882897101381446730288686594903945003859578876116817894256512892828388030514075051195747971069986548593580301847391493371209001172508396896541715527998567597085288354766602496133041093645545303698827658576240745201736177178745265706942434910531477806793803677617897032613613530274422657834121467236932990312182988881081812642149770069015823193216428034078612181909054363393961846311051813559280953386420503309157022014006111872188270850308793862615249274198619129499670011881656967040062465886611868159982534367284134380660977948463694545288304798774172087562311891111195098243249665706231269617177569414821627539973346996946307104454235453569689393104403094626823906278041342415572239207384202354139773277561819149647969966361371071284195180299679074946784890296268615574836341834954276105229933439799631215484414985097068871267109783286090390061857230429462808249683268048570820500577287825947264423857994471250261336155972951159934214680435587446620673968187298046923769192886586379466252922788613303490355530916188344084735779734410955073496495859905951721895906282372232608265200380925143688683744793610393274235165959244555071014210510031306196910839398700040517055517315559032288619827071780794762480667886935583952769367762355899088743552773060715721464524977589801035407509566311765310619625028550271489282369663808394161781637843577445885843538335829759281174462499627113492371483854913840455924056891782023000051219611933828921720544545901543662172154173284251408090503850962817977777498616749576174504081137222878905204352895455238923086582081320674080177254943234228203198148815213130153606519254777657181690526359035914800067306161124541012317496941801464489835582228885709628740750569877983788733725459163472274654599362484365568266081585533577733239095261841733551765836809793128292260605687325438932687822228589577963718061596435214784827496844660613365635456841179023160763707152352435186359133875212856999373995808467567751940409722756847644806713051338032860876840127524172813842336858627171586652879733265545390909715440705410524693139170887746760133175837059057227787454488532452923775359591431863827988928372209033416914886112365909085085255620542190813271225230973338538259788426183749830811273687978785842188094601178038989038331017938146509020027490163469961609932708008229666531819270282176857835828000198555876785372388686359336566396300847367741113144994648443753225194372977942535082859634649601077917185690949254410149288350907595776728376520080687939866429885996147807060325614821500630109048804569539663449207809817108504262997584761573987023364781715780827320870720369033906848568502862362204445517726160680977887189205285706338856386800219231691651305040791997030667412565750761232974898287681935980273871851323093625987243044388068989032339740048290739282232030328891324886040588236667929886909045417811572160359973078638476927480986571562450862829545495218444377997012429645049658458352609236630657298566784998016946571504356999535246493721895268897398058756398707427204277353906172410862977123195428207928765303339465127186946786691040783453231074029997071413370102428094305644983606225651328825864049934179014535577030913663884425802216037342066941166311841515012795475051790905949157743883646293758017549780845868576740163748768055550057216781891461943364918848779755422207495644188871539756083457287798280042354569502187427257313701388738169928731788845653817069802973180342768948302733249318136674041214694177654816581448430497634038047903628473795883577423802593072149429234450838715000936500776363231386368133418930297734434887991043780305821958076544315036123848352962544781999627946418863342625766180319337430197963058654580561901080116125645734628386490568793578874885239684833695180748811468019433396012029961956608541989817666241570641188387858074503037759029164338533234308191995968423547110087314389412676132255799941095813125178233421004052459973219674411464814396731269395231596449715260090404603389507133678134397318641550616997893131471849936241765749060326560430537620991683504459160112462924224037811242510291383749867107677713816546424973224186149466474788514037694922659468814904818877038973187203153020975720548105916952115729843369175142148088893070929758941487014551901747691394775295464762836840161890389299893640395890532378834558011239329380251775281447683154586159603028687199211305722312147776609574100314139859381441013655272539941734004766796592258779049224214804930075592095947041685495982237816184390108131556019307245135801291230457545155014480027577088616990009930273788646940497257070870027996135904273785812761289761617613865053058169633226082124617034274578344092623858194867495132056288265367917144966599101575456167866673075492662371906773274275281190387897082121027475388633549429562318942115992151335638361783563500960942735363524820434961565218272833866597368510238488052611195099085916673814216466282564427655693670931689347415088260383457578645117301291791837965021558680440535744928424691339493637593445954821311365680425656938458971223032890455931041244716069414520113365423457792577343636996065833425856227014417921582266758866913488787860228723502569382634347975266476174843556537056809782538588594724930141149577659701928546792957929222077528097051942597791916754180389292158127759027314992203854507522025722519035564223515743154775229980341437592704711213999649779256054558719055301059344865676380724777218930001305016700861437902549704656321833560004560750742896820289173342345487758850682621489468113503661902709751322368759231658298107336101760266639541529899334862617758639774187877596613795933975356153251947695308640495835840562663443127768104799214882795142031614354752267773796682139452454026120376043196664272922318523516893935029854309497111982340579963169366148278425195610426326713946116365985987047026575898472959982885502279821808027420078046389385986226775046620086807118287049085351257002168405427893558612092778816137087038077034159474337132795539117842864615726920341636846710462103505380738791626747931551244358332826684559005805188333940193764212983642152121464700461524866211963399714980026858774040676903703775516058973288046518373818986470848268614137042334104566206835089124137816810241395383226473801592574116958191382645849745597104021328797612112232390634212363857492487580614700951960466166167098947684421895489398337674449457366891546687656157904951442146814512704581487752866050608822321287676514594257497012773860611990203132155054952503615668805593134102124325379819288131269665497841463614814815423431148139449546853478424787690560925658872859168844315913525948247375879298183104199180713372650727027611713641145491929689239110666976179320127945768864120995890260318680140154381785177281649081517707039158486993114054860596967689142245457933539420694211421228899538270759303646273840667005006147161552336471950802074763294137754575797187396443276479414655237799557642641421674410881943281891857427117592941185544824626126698773696819342919121274117580820875527388433787047571349457938596394118451697010546470556735712863088018230636131407066572682311007960390835617569473652847386488387422258608790995223988266455927893120720786486553410897548901106409520789415677084252518841295884367585304811869547905403863518769853248578155337806130166438189607407120793705854316275709150171455221666157209679544408684676113376135481277623058861753919944549252428173465878978843074809662359766957349272099109793551737279403395795588157117335685757349286730033721818792814892889404862053091027723712822381492798705269155763520197418220107049821046632893605315474347265303189262780145616259973983863639467913935981217944638856062697768408282474936739338376490707424359369931789033082825084976969455417984895575101167082958142091032577139330609163207321707893022543499992936234369777390251644012282978946122437210460689450082898078321253133032061952555476630824169661949173261488033128878478234491348663108217937501094676682532795999051062257392072650969908236439933243156031009593911732729299353878893744327069980221476387694306319126232864088613394678153443053056105348252549277217108902241977377047170480493826719290770169823777283903551978788689867617650961258054197695722305873695611125616121424990599760222299805619037431032249921009195395510906467841214416130257827695911111624841714535242099576868093239002234873837370424691816661999302985530027592879593104821734777618502375133068311758394971058947416241728341289923167482026076840214038925400817123666020668965608340827021472967108131875400079617556994864675531748208257519472921702446796478782491721591366346956147265052274040846614627223405447434442546664982779551378219280371457456434177289763397387761233957791560107353662685489514949759083936875705219963535489087955583985816361616292797868251721575291129166004999829521095600222368611350227010064906102814952332964321229465116214352490712977119943819218088015180353719057885610271197078765006720786856590706311260529061910982232373613416031074545698328170322225469618870230709014080205653661790958950281593402095755072419399666534638933467704360651286699705169536876819764104127447695245555555467817938904000282177911442850111920682328471655297689776114522505131364676965263534449051513850255215867832590034717736092949716595062069533795550379717467238967382161867361843299157883759592405143181258190022854803312815623675299177930148511268916750081023761543231855217329227524349201156548162433261094151237130900013979240591151671556387655627195143606458377373100818514130462892729538296138495391474205759658193914704172742375851454344397614636911763871305672656290608851135508068789135379860336260172270268441289822565826267027538988148038946872535199854813409720757054159604450635082256979295343415165367687266193753056828601096069109421103389174277517139236094348317800113303437037515301021371182828071471267868252563106785202328474540335021478313148574894381611071790394931392915817161331478895226831519057143749845763989152609855505730327373925390865674735408415221975422027062895745526770086447839752490019064375638512461489129444618555815996919085825510614303024021704934707492572810200953596860520725055044247841442286882200259445804065092153426479573522380904375200457776966229369168337919636841417026282467528105393337498900121681054843505421560921970485998260810549647890770589974702427475262076591984595868445712331491225483251543768072125346026491577159009990272804537694405855846247180210507718406213552019469880692515219356350764710312889338972593538426929947084390990727455386446297810372901872425872800912374006283069753202369959934160970042769652588438912699819502000144504643044499080710168940027166231136561575373869179815208190300431705432365247597948967421179222835966901694260495986811369795435409514931024597387450868060598354945806513568340563882753097905819707991909278571033669616065478554414476427043792611797149561008939373354185919129097617134014026593312097740035167269525214857956777184289122740658432202059640240861674386890695425101222702424308561967208235660228211795480953225343263802535538600839010923205762517702149302020843421572951868349669152681054283230460964323266163297775270394794754796600068565363416284537674989565552618513256717128707080564799910279103342064303891907517651077753052736306429013751214517437602286494992785204108738839321160529634632564205980287656775710348641635503404459400519126819439319269423548962301066320183977737630792653174654550183864812781122266799068056578061330646658856071456192145137318273279402399508346955469440123524568647493585413225174646070399541573164791296284548106471672267539904699207360412483122784006159428494365676286943477269106134183829413986676769019696563301142831140305143538211542479831359499995878197487188723774175152537288744258006510877321473768887061916668800982136436554413972016043821669501673099790528179981961464817538888995456955358096229059283898999089879926031161463103545853261435306168960781358806029659880654291098314906221373313383943990658329759666780992857471048302713305448542571676249432918257484047601991715293385678098683725193191714736797865516563522178828533350863882600452077259026486280273335701957061838000763334508436234737598403469014603522649928609326170432247174460758610984370387300861199906438734219030545271476134938840164597972501814290028879224099955287349093086778716566145364140495799455375695758947834586238917163537393900943826601086385286944378466865395416540769796707216494435911268847352343699454153735634880137515756752216481090852017803461047446121173737109968975648522602914100423679594677693753574096515584591412634474901745042207341637341440122976705614180782817328000436669071070243298102941134784897948495242159559315796810422698024070385534859766799405048268968159857582687388705433146690666028272856527116409997898427712888799631357349260771286895065724448286758376825494738705906243665538141688355993100940843775509611563643928270702992788661812408371036411918030184256097148055755742653908572375289755753940876208566864711115633002847822202381253759091947000396060697133109317798516609144698052879970350824730917749489359777791540012365637394992200709724963861237302826653597679919817371477291220196915371710634661151912430786965461860839444126529264761440172144507402946265870931589036856858429731943084626491026664883536677391282551457423275787808944131825239867263864499982669116599834589927717427242240475738614775749448015637370352905773459158165201726611005879225157237639038221525290288025901762333538934204600195683753414788587319300575415206214676504254718341408504775454378744509755094744199559930776236161775280645844273114886381028863638190819164895869625498768308626224015027757606813917631308914960978574172937393332621094012290760004581343247611159186201829701564162354604893876485997480570436505781432980445549855050558416874589644296418016526544492235471463421900917953245877211719137107403023642049074317353077046181766205636511405263640589345036928364562157259623857427313984565248534023065972222562642274830347097342418569486662858586190397520578647007503487146669456240328117266380673666820529519858257124075759891706923138750349678710740791927462283473631285265470169892369297179962685321833292112771072150266966554445390346055596790624055627612005218323629689934334282836347956322817376715586315484654073684911933924466525645301866176457791154490484312849993856486871687242113882885546997759987534707321680969563418419614705080730474977143539369888278097981747897449360803596134276740848844429880065804380847757929111920675403572667713154059352621002495963292360744656172572484531479373092243339595807989918475188571398544514975408180938220124209847314521639756491446562860875366494959420395225866572640179664266244024932738510339845626720594657830672556300559795579957026487467303135494267935933758973815079401759773754022324403605225692709962320419101833760226961469079821993016998920120770096928157729576777868526784721098998143940111138794852433801964815475870642170820157101909303576424998866081314062626485528556218187232168120037719740828995248497977130804398645717679903726773065255605758256048553503056968886267046222810638658484632713346576866827811035298563067195152833586956562874557921332372134812916586832010726846090710666480830261308761933305084626330726697353435150560220404718134688065227605503413271478309497427128649369244910152478640753904360191790314485298891059171665311995552268843988720870280942893601366416451384544621494081100312854468668946463232977985640292024900482971037037504897838105157654426065377261700174976687509143182060841682798802147464782515626024540003847320693070567531704366151164793196863427436364877125425218317387052558325596598473936475061623752297353568544444683022780401990671179799184857443945293646683660481474193463875171490001610376063625132640056189153256424760614362971755216143936306697264815875977218718024236368114669429521101225862310506012861861469317259310751103092996896355797609445064867410490797461972665096153026119238955562018986758847241977796530096298178430016393997116305015293739895955465960576990448255443984357089135454047494273623452788644775816345048377085517912264332590408391688298331475238040961468921534962898652195843140135365367953662640811829485886950311193766787615019468395765981875004494273712078456130697011174507893025872501777826355685199856549449051176434064174196427371545193934235966061403252484404746787052824438667077127283656526825267704184924404723128191846113217887226668560997791726386645675009003672428306063314342934902704586547165516003984008668335038352634617500491782275758147103395059362141951084086383452146232536962515957360127608910258495811586215217953449061187035741262189026674924140608297350521040368995561721426244619110322053505460723261522612633123492029156166012695338725363216166890663225747679524502282308860172570138376475229806453434065266616076292741795216336919119787428439519920085930705776815486899718664162059274300598387267978100794313717253097949685351595979374762953562094897478209749802096540183337722420736812001032270254814198234805936944266683429415372480379272518410875184473072634557278418571683637116701368298905870564176233263606653390336918518121747293530530977800990127098884602738457997413202934385222085972997846118676271810164893815696634232629269301177627855015835012419244201879217561966179716852446315278616127368166895746679889848949318343922106503901487674123335858199476913580358998367602395798613468618760469579979252339678301591004888638715626756633414921599063517270595779709753796769258406053025891929847421718623405915716282183032230610449353144414888944975983356240728793481930566052816706219374323231213892832785539959984957207902048551932380226369412678370468620387360636203367836990804778631903215145731981530190971634434586404277136289040454137141503038563062851907237922770494523970380672681589899728128800252485675792178103817139813448026892095345126692471292964191678990570292234893551144070958313161752516211062713811916081916652184788818298728968922708398334489881231197003853482300483179800107075972639982057022541005141939511858634545779491173657742665870947645739767686589206237935158590308421420163255815406179772781286876093972146597279057960662076314720254218528825717681820268726816544059012335172843393300782487441545867605008732220259192197213588847076778596560505511325698608169354360144410535512974630502059655607683906241639557610292245599375622744482875791649915796161882416664749467307212853090937099285787444740011065007564362874306000251623800327695074124667680310925828558982234213506189118449975963520932068786023028093155797945910292609291078320193040247439426457809023682291138067574418033777918396833313578606614017440616859346441501848578164370706977339177846860513301052108146578540257093488188066610756872312607080983224813729842600350972768919206163377659005368887519809723657885916951528032130455846689862535292557561714088760555769283631525976008840068411724191854532245774520596400101133721070507116962709234838995656328378248853205559681301890586135024042025600281220718972220201249087123660155421341773488123553398821711906220537167534210878473637271532068910553948752772144426636667989374173314250176585792443036626441195668543875348472750214374063740566793698402530105651934729753343084602284745417205884809730214199779426082984160575440153126298891731598401388935358823451410388017095633769939664478372192243316307645193371629457349287599901515784693222430273518980119045672696433530859452265043214824402939459810505512426812848565514631544791036468076113139648087654150662134892993303002844052093740396056032265253547961602942960122848080172001759894880714690161991028886569659481354132897569339332269246435635631892691859163445547180011793052768104861175124911004219050474588074542240665430875644102897252961087517639364374034190922060971871553220326893051593827293461076037328803620149444548552546511439212372540669034641166844088599350947232641960951360509598054791632417027630774349574471863347028787566287324388770922874536559492561311413977888162071783869704208835542277695371875891123123736655642144046648713365850874162418565371926536974817579226989685486630974764272400936705408939712112531412083641429578644344827870720829591577346879272262222392489163502906599854669822496519185477490120054434578625197718085755515101125242431563542548582932097962630037471583031601792401678463092511670825194734326938569532290759150964121879978593509665951331060922200040510829155703942356126993587169130873008486658719878004122319272429083235285175097840592300899646867398612446350668628592146250078987388845478359269714747509635211936067679808685016776068920706996524839526560364646170776639073643585223828502459251851681125268587338203939252407650818778876554159107361962759696782152124324662335728477754740938556864142303540103589165634160405859797645108862244556499309637157541306696326291161149375045966484534227903855417868413932084426142458305768931974379117457768379727498311461703940925836318142277689236723448925415744599510695163058860943581332543946253739301006761055427740183922339429413310516140289287874031946742583787233673398799225317281951763561367830991498735725179834483831514837366215510504510444753076806657312940583696185356911350971425554878992900516990798916587137435390724123707144246974084802319519259625928993691872057469497109995150279770745443550363245600420966764729954758396399745530673677413127693325103249890305147213127310923350114260013878007581885543761196355690170198512431376548748632662319523388411525910599696571463292231070510718191599195835795843827929353109122204272395245964501840531818256123237533759789548624320211794445111106099919263240649362352161256345542750380439844525955565850364397219646695641124248612186100493093879624017356973905161000543547850089501728526966001998036641932554601680904570986132314843799255374728225088615174084386509357290810209195186863843567739171977850766991393657142925269543405867861163484484827416830255513957129897153260539539110922042273284365028548609779581440208079656485133724912358876680235479043782658492250940796241914493298840366718362012706620015356343415014973029499537279988618291817778412138924250136702782058789353635297634184108124599817800066393465811849257903699421970581153604726010831126862575389445458146706680228196603924075116699573685659702250836279201806564984306494756447922297703884703449069703077457851597145450717918890912356195136672127691084530567729802644137699310821393170461688498627035899033121671898782573698530707566003460423958486617864073785032697740606431493113107460654179390896218059726608225927264583008322211709090649859938386389622455519553348702497991523952585447060042061186250639734509100559964962621886261972910187811253710896159756632018885163256558180931461674222759832544307424485092690842226420911699339984196722054307678126482347786910935607392370032340465506495586718114860796295720614455894939929076934521981220338089218214738303357013939582863302603418179053940831797875789065812158691587991995945628458801711609150644893529153898419706404792599920305910767253457340000608818737717811606185704422284350454617150974258029188509990960986545984005254726380561235720632623598308494939240944475744035680837894960785177059878417038758025442809085012797082355077495010696232595252811832773725339168272417297294955390771168110587699026872680417008327051307687970483644903109539369709089534899935157852003883479840036670447689895491777148077155565535669491837219426449751884247017708141403586336467897012579211189405978771454247656587091071140880551287737687253895152131592450496572509149032279843692374366388107387396281333625427684048327516710553554799967575036083150875393644489203434444412344272085386341475028961717829582611963913001012272568245464547037067218768320527213570745513320092714206783415815135230039490590095298222198952420761826036897972993747775652041299458854318864891989174167318511882315523417370237350830138440992216454101744724332929584031322525043699320140870335868614190182714827922887101270871683005365647928124559706702497556538082767465347816107190133992758998445265824391245921060489983042663882427927826352995126439239709407543173541999247881258043984703499834502937096969890061545362494314464919627295657921603574895307494796853417189873625300769877898370669989289533145569082662847161553205556407954440474047227236903969245684411848276766266706804835301314829292134558186310465270472424823545501771868769738437880086333670695398887015643971450918448372050547497226942968835316840152400683702640844542465692380574922936332163940510313139017360779528088324510687327073772358413019090081614836557446190632930196783116163274605345537579304838616550505094572074193079608141319226301939198923451003022230136576243824090987484603751124260371838221840188148261219873021862385147448354085344760885227324314464281326469718162913042372710653461005865050565224423736453701727899423428833226692490911233543740454535270095477007723317855006455235783703642586517011142728253346757429758687411044026676223773884643645837221572436403474116349267487102612281853280834098788304900481606408467827951761425980356526197624044113836556057545642641977057392046265916580054812165830564953770217236924480778615493479465341872511372728582094806580700069784329437485522356826641088324890686300027142880431690397234101742050828407840879645557191216102823704272273451966565348739241706918766936209005602082658533731867567541347689197470736358926576539759273604396661627132412564496856311285011994307341746913146499626087426632733285347682538974292828201338922148148005775649212004092459756311374881999815448935087493543114607052847609461094298052773290134657222356040294069070445874911988631356617356656058365415764217797054985496012483499350726016751251812732330176148325495730439204256929737499350821126040374870275576999520962866977039704464061275564076357361813920138949062748131682797996709546433728148415510561019166328746713780811560476387095926220099810105670461862590492178514325919019454596645349497820953936158885309337286958761877723675280463509916134437933396570065283530805079881515646099033628752606538432220539138999141971863134394547958206259714248146739160959188250984189060346868302373718462406088940572040632185912001505831247228193310201043339551297615194381174795809509402826060556726901622429298705463309906205125226599126590394096996971176223595136335986709187453160181814155173278339229399942800580903327487849598531070488194558792616646660032832915239129139214147902577012590723661636329652297985795446440554639127874724430670468611543444706493556942742871830053624846958389116386881546800158584814512727358705595523634721803348344311099039078744398636204209262972343134231367112653710905872699147964629832787395894492009697678481657425339850496660704140848863819395158052579758554037820262537911292235127645827690310734472767193215640374366635008952731372269829151830461034135887843630748237344017382518369436432532020198449505102794924896529851380695601303796861668516786191875333606642228883554172718406236694265807117098371196571856762087363306466980820503369753161507146056982390475639449494165293548939328078298971377229611323933655481389468703483386096832354230410856795197603313980515787633413093503448199822105850089482675421319969085271159081691335395182590731298103528441316557683147142509640775574418472674255446432452580314090356900294053151923199407973429338171743330371216862573229326246089010235495056141787788374749547097358957229398017702246188356609004305573668709568604752700006475286856579086110944126095561954129490871634351929217386074960573108807697994258718243722507607482552783150122996110626545412567755445588045973429291811469434508623451501297893596290316656202508209426532108369210846457544381074232254376576760548057312835424598087751281330793737143631473412676909792915937831574854371457973205638974029774740076148360538211405436856541265246355183012897259895815891533124514073938772431045471353361008597854012056475932711675545006879480252539490717269929594128585739341745967745045599378351273511522742535418516155526877433976041037748523693970659694618862176433590333852504503510329563775652058529423814569361739436967000288810134667927451459864620931838319089351620930336052316496931908145179085779839151853446555556935799486462126673446695924591319755686940890069788993913618254268692012660165862383331877877701767212874327707789340139915204348151646805975564091390711121483840326484876690060696732988767528445783354235959575267478705170790000023142014948123794515254203478193584524178781693749392978555216891464094774624432474152188967140105824155479419429768122300588792654116731782311542925893041255945591704125454420521552654311955649177046408294813126117670818326014697721317416526422640065262206860071583913109447191892978854763644365668411874827269225317136058587624533576395698019279755625160728025914411358416349444926939146921403005659179758388771949779797765290498395284539822923287016162689203653506448223780662042547142667786114003215862865793218310057055616972825194680435632431889650336870208088924231126149105462141510651588673032200029199258489171291633385196433758103479173717622464416752790779679493261645732419419007264855065093328250088405885927906595735878368812659688782396132097724694509062593134456082037864860754959815612644031733897401673145180021645947159249224716674875239023197210371257145580643370938355955085514379914851631056436079433190549392422171010039304466777564498085600380322394207186670773970676177920507307847584163257636611216503686665698306638455592620332651294139574909268732747283337522588758718528304386088469064072172003374110478081895851881995976560961709091625007402047591726988515856392426504429365170658942366941411937529995089595272959824087908233924520273998142142825313279229569060872086637932582585591815141627780254101075188610920198597083846689614733807942068726488475348635165252651019677710277498990640095373023689454786259113872358204513937982228229875117112590824786134338076161486460210426380480231988986315476124565414791492364447957726420369079098518188824894663149317726357000815759074281690079403537880229871226116432433120502253464897274165231872607698102256639518480134646915499236608954422116746327555781499430842368499238182549308130900323877862510571054883173288880452805488386832412881620414352870476958549511641387305775495580301589115991718068453375239689741026069917068214976049034350006100021530476402938783390767963274553651255404873860970910639422008364843431585905629523650085966374911410278746742244911544015912006559231025228473332119042812923135825149556240007469277049980961460635653192163619312826015519900009461893452104396062970271915473992410318357279950748317738508625387495222580858782553934619759189249917811098642285460395358591478711087839606084736695595199164047887149212746902880546940003473048321352954043140328790738948488950419958755464270339382808174924801357192698470241333058957670557574571011972403645558194965925459648033598485652746541779959866578129614756519681099238838639768053654787852094792681830334134500221542503837291076960244024644878364319893714008763741792922017281015064029497011589618373823692317230315750121028861008201015994255471828888669378529384987365440995965964557844041025867601652937251005278862064881770553353819135558876088786139182186616550593865762037967184192210353792964995267095981700421122324474270855134119393666044649914209300351621691375950689727280619069489764497681388247886551589724534254046193564945892856291686148116781077467718411120508663971102454155953809280878811488253234653685140165165901031703156592979011229725650790179306267731479964065360615794155210624552383462404784127517587255040338268700157891840044981290766781985843030613704973218627714628731430187829789999518188231019559372927614793101634000370571540840074086072661533354932534051251840889500367769749609422735378975361684352240844116709001312924251758992006288612813276732951043733649919722914827927754473233564755386308659767151754453691106391167551448271552709364386891117094286942728215565548948608043634318742420006495774532797289763357057139879973065154528123810555692854009464576438397696856079086044105965707818555339239650832131376217129734781131682868973412221081524040354261230042019428564938215076338120403382508554264465101837582251357555064042392258609459264694648457846593198442916787251411314007786812051096820775763994640878290160778849151824412159767160845256592362081983510632225810782973820202197202724127770859796101280290190948982797701954484073741910674656608295300568808607314576163375374113573821023269179544283502484825692035022392872498054066112804183732296385763832754930998773245351762731741692090177793705761395790741276008836185677886569422976952020288044554888963888910153262830052077875180066171404968420383380793464002687302579595944124226554006210921399786469971581920088767213616647681330079271990869846285244892697710691514862701184846416010952332201123864474499660948930583397764291065810457113378640100813692069741221256626222959619174140726106644896524179378826460455452157383515010969486875961824974055625777455071497708443457180094772516247630990177736134737068517815286084873345646465906688824224236158758938919172294653710627404689571476952592497162054511513910423909828215849731990060720584928367848513166719744845407888459357384906957821164075830587526782290513679963662886073929050472748080308275270654900599778235012862712310080558267212312225252404339018655704865094622191731465965513782033029478730184575817780262354682721386035936771048808145094868980640843742319824010740250218899525698167515320656077621460004802443802401787102171349054353164147874521230607946653076009550894361464013845121425809272443909066799726835618138180671857053820302582522450932532496737527378008803235388182026413149161439747566443329128213553636661034442622806887983370094807740371673606579589183034464449245530096554609781901443516227533501166087311370138026022970785534320747124643738383312214708553975283492844982714549925227623688554068385695690357718302816208127395632113616161574533658688370584492731139434813801534425521978439256936964535762395113378819564554705962932552506693314528152471494644624140419723682346449727891481384583673250700718984659058174658246697848698662709052503733923228804621122693434300123685799809169452660058277579859387570919276333572251390927460413720108750418606718668429140145093919504830878192914034248732085473615266982886184495524806501693118242476906503875278157206967542116817081670869965608275922532143530581241572395626453669279578794254082754823209243087795080723702875199944244627110232244924470082041095220112253889621651917139824113228365216030662492142574879172512021432980797239444487439570139036854990555511294598096061932794921158544280042433936745766083724267168036655412992332815220790767197987001834752447377857358438409788545781342118832189454415818123668461336506422826284921308383885006219032096955078859974744338314926940569926827635699746631097573350753822365744897511749929388534144991829895472849201575418885370489193177283218583919528985383474828673795641360266309589455315742871544938944465910357125450760582431153413397028368484293825367882089698043637606755317426629000279313352354290615404041547274579435088651372242407673420371308655092506218371597106745776886351215809303710270719565610655847477002161002557157072137531829021203805704639694988287060579461901080475761228371381153483711991564247139561302157637418277739652926112065048492615243540732869199502958335944144779451898766162414764001663235620953122893565502325612553677580559153086841796024913725970006899923455210133181622830470526255848322850385839939939876854665242421134216058970445609034560420660020469966604073513164235322378642593594585968524176524998578730705953620301102313600331562177822440004001702877268914817649829761112476954757614705299922419808886220688282843973870196021840693017259394374390079006011642052577870815826696904272154855939136648554379702811286062734755552507372129686473730493069834392873666485644421836935672618830114429560047890867160373267377444154927648023271230194692652640193527117903494113788139506411745217144133023209479267758325682215899213392183665716109346412468053800221892440725537437601559496508098093808262402248124874028897548190550232986894713572246246022071542452983457005986540639388353136894227107377031576376132220569769736629496928427649539216060835637929728336129869357762720685354568246369836086082036254727209144474937532063391608414861820977923526325908484780272524816965130640977113784578814905697640673928423877561461783918115875555813311526265834358976097228801740628960702610211537932525937973823869971243589059575860852186197027461057033122623290272833973616634761633983929482892235554050459285715244157091999359495385313296042827100466293034810380722502277029591913819843122444550100853337035393904136253349970041283885856273648113793250507504077735324465210755326925355199355102479919587926442407950298789270836338025264642805469409706045011748196238307680302934703437443663495064665299130535817745905747931265207080588833729472777595632479818803494264993888639177097262381757161574275070521513993368951683338354049995296063915893963612991020248221352515965557989646388257084735207526532729673337357755765001460388108553154147955016222714383537496350956983106269698679696888442037146102961079836050793497684868576090774892197604371480809027930356243921013084099214045164441428706465544898226192765020352292502025600689407802215835316791699298174483648308266934540168862042163327280468623535278121641819690801628090894664724799309809363834458405729795339776798583466285460455313130494053830200610848133695662355345334042134767544573347404752166354246538789281132710410963397775577080415919323725593629632719588650880667391982984232634981495988742859181899300919601732028930412827147121836874252195933625313249094472958481491955181878453317099807895096148075029222109260236250060595892423774698652785484773931302910399645905568954586997484334646601813369417101154588338951583534366390146559620262245822936554556645710377449567301534947542699043356691641742239705933823950378907746523974709689091829074868414124361474364548724170064142262762557279313210778534971714864261582590464962664235163850589287994969141454466010511460824158004617430449390122141781471717364593407335112824260409726584256316187149796127614934388980507608495972400644157368158074248309307515313768502667253961608486249772599736373011416670316182580135746361436084039672723647147870290959546737592451377374993202174227955809703131553727903584400645165816627677190532047005463020121482091766108616189075752217485864323082256873266358244328264531290135237103224600636316037339489691054219431211541174818984998935496936682351285980506582214511628661988234406833353020892031907239624716830349972198556118807117756902882808841207525066346611859833518094593414264700939071861201648490680449247426527048718657472070450371119663288669589065609320697055126221611874933053670137142654475031410289863384216118561276538839193771080669055312166220782273246530101971055339834361214539509061897612401017167984109535956581381380813489355313553365037446947444654792016245059316851572026407389453610238351067441417850632743514959655542867831712715689963509976439718559836757341794793846811498048310507761899829016568323689523668642094424579850288653636131234996222746674267676922078601563903345617983564477996142784050917736175591765715354977800749719722322045097033702730789057315734763066021870060901039492528734861200699542081970618862628722244597221071955551781877298240989616688878020055403071561965995564901270215048771780341129320266346864086665145249871994080993884190002513747030965419348017298073771891284844804962377132070061371769824269490734999894677998445083445436414412041181060895827658910675706087197431804289658726003036918327017087594667867252271230486568918173066541334134795223614419514358954966392424729339020717091476152796555632866244046881742470760833517010813435512013062940071509571324092729478132049930120009930027441020156928543278149512361052210144982016154145740235122134436586591835408762151254488181861486789440928428413730091830210915665703351561852975267384034484862704431402419180366328482082444481823484882063009085753605328670716065125280918490072125513719025324072431221110234406809890876176916323238651838154579865153464506016933669570293408015462470072259020519531966201420534254414617741729234511088366956360862081367838888905105033869145303931376971173569771709498259419212390987582420201918160869650610159943429309736481274359966719287655256633648398808680963969469009978181307310634961004024756230967098412113917168612228514312152005481040083838532145331183164802737443255175975050082030513002677619417219726106094821334709092274354762487726707687979645032654091388114010816856061546192139110100214355359946752353009016497588236496428191467873198572078386206269093394541199742829952520884583081209398127449117146488289521792833627469935170580197971095209334822976550651240681604487459224838765450011767541023882234719477437613584423397740226254416952588673088825014536879998613765919106889758833133964953349847860935573681836241446261161936437456286649582564269692760121806985038306666228202057861231922577585563043898766405348911486955005515720296676971642305445893127268409394661368048377375880353933031553195036151463740926382232262154896034634652475604035365216831393947709224274306496611139921709075667636166066500702062491578231360466173054670940232805370097740521410325815534870498561149714664824587030242523343868741682613269024264631318914838070844937508540058235573951960428853028417838576577509971927696470624037369086457084958349454930718096866932892208473232480280955398424865645014215732189164450368548451755449649111163648399301796362277574536735224743569071577296409029836478100796696656402057617347049904781836414227460724815414398471679399537993235213250406862574311288259322823943805812308722227566203756897308074401733426102300753077546214793897686018367361592199285632929370866305773944746242807343980832192448068282961627043845146072078191293806648971673900821358502501136939926239449684491176282084225113636811508223692878321056668790531738646387952754932698455769150465772378406451274923338777639807642796052431605563047239782167612694343024902674010617617819699982627824355556494576362946012587735103940528932103551295547565555638463961721503676263311369416612704765769665375502005644960801983554242380708119649068920686071069144030020037644866217560389169312736773721335906546737211945494442496941194146870673564188545292866414800383573807291141614149607746136946433662868565979537156592209818040540899133426439560622780973888662845991716917385113450727644319891445840031478464666290530490975520671415201217082334087531611855528840842026958885429486744878820296526458747328673698145665273595503471701105413863664226913288169750710867341766378025099013672310883669310116645466787982107780073670297799041616078098893682535430706894635997067468645660923224567638502336695819697999841077115670806134474431148723760480617465530135070760000455116654123672365499851910691344586767580048971398078560118182918049102957882004780974485297090067498420746161459873697142689639098725368308931374315883854904708505290914326321577468236524564832441729497776915960433673154467955176618843911794600224894179723625906983873190071885821685114470795371995546783211085008289192063386033229548545144754003254082349502812380912030578048646605832047107085478063734708606050802563762269143592642353895620362871212351229180121581368169374090161203979321756733776657074758118960814134889899930215298216986741529311976432590692616935807238117304477139582762004654784958060599340759512916395235677964464050218998241206296761549630048572057762891644558869075967024605343747109053395409621418382222500734883758778541273498929835789540707181771015616024386404872192839873198523235802930227861829792811175140000805399810608184135682026815610986818149056319130947104632675882302355234817779368355104989459780870184222760763438043358196092432678307343259496616229907892762332148041102394495740348373759040016791744354852127360323150705587351080509817535474942850612440059274541199783070885814280034425801213505020030333953896588658223700130277851075630383857044473416174701086202672481165166257900531246420868616757991936244110900478040902187444995246161670178595360392777851947917096086012629108703264809722874318860009410581044637889086213916521294169196811398039555798338756568841091821950845283359867343049736105300861006358474550237036106054448156181850581025209724797455189736389223665823522134364114533584071800936029735882445421999966919848707531679453751901082849739552624817054172129605308071922897915733060061868185192018366960717756811160892809828323264628267025369463457219610270411055458367506680801371766796945006235861178068713473961388574340948038367769660698394425235179416465588214404505631740986294680083340492704757993748250367679006029667804232639094889020036689882765368569989998410276403265004688133546355770862740572994188147773958264120645466956320722614396582892242746414422453741494291358866335232245413014377133404931336498808079706099594836545021219945888811516012494154300766010497224789033773174972024592989345724467092977775041227225061158051524273297937602447905701556036185131865258051552245838550832834654373988651066391363827046809256218299104448484220442719310228751366998603162068599539235991690493442797665696642312470284165689336928768461469257910238450868860664271635187187002240785251831385912993275193973653742574026758059396103906598574361697073878592280116603484470116524206046215277508098992023632600940099803991417800834535734717265994700193619059348691609635450607328534095708428766052600970352442915728335782528931429525656600001282096496588998341978658780106309004436395529710588099850643471379315767667037691182191321442210885205144293868892996569538804075290967964990993176048087761779899641083233021615761834555371815569308906429587575139677806809517816687501449664273353213258649883942533001398162542513041319863007325542885976265802096001363343446155912233575298693011897699937743646735773161665131359893857355176849831784436574065518998655755244413832789207924675038834823357659980647992610577150721820910063024136439220995492619597591523228492029379470855607108132081470225499235671730014615277491423950573728432209107131582700957538654831823226662473257763567765862200139288110745409809691913512539495977408778123244183165686114674499721789454520536048566816878551068139380543225331100770692894648131330092395009324565899516635854085229809008143191621920440186881734529904787106768735945659813681020344077955052735428941881566900274782320162022425404326730607291564004550517804727947187794900476271043768991300636418961135330706061837328999084515912935290100841573921153145640067550295790542662290202328568452811553646272372836861651245333022677970927106541246294795257365416504119041127119142473003944722530126006570964216429514745521532794166072721715680474828159463399854191125500448704536006630386970016347496001288070784916262687569546782867563309833742253995684822517451415161084478404640912425863276032640973934553136910138855123469513720029497187808629058558744383172410224557744217454592754257321764939876865908306924158713203271480253394960076845390942588038318541129692610606137896546303223261216937183477605925239571004798856638323889789394503335328285454567758486348988417869475842379717766903480688086501503289063324601947949679970770697067846534161997965157163427412603613309242473590136162907059493195564148962485892461720557318239759351300821520524999372515387112467862371457201734533222630063356857852605582769454666022811581085114562270696524375078986884592194697546701498998276873578445584416281380678904404589462690596112087999443927158100363160474610033445160317821007421780973514255190819200274949782349596835918425178288305055503965646892693041845503919701396533188627965195175413696511282656848930904445847876273855077161513417333627820827977687306750599088970544194492064773445080564330381001275828953840155427185386368562933208750377886053207311498712348876831757009458611715744463421633801148810399902187978938952338096986474195070010290637078344602880329186804421620029631037482727170921711110118087484334175308527679437137795666694154650881775350041111188436478431354685438357209808335203782463041754386245130273239381364850797135120608944520414529754059275956545803501571511709741224093246500713921739449715429167818911062722558065208216692411598775947727336127764487641120678550718688491473645482420565411892872516201780081269995723529584547845606144461276793561834130088812364444752524786756820986411864610392738619087669116498810574005978099529874324209637962544623486407400400294257380638572033202863563017239036962996943971763117275545971610455227785933967565086444550819607740534135318705209877415311489303700974627075942324506233561565131848956583279351454721907339722894612512412637322838873960506276433792133963757918059245112285784901610831827770115783332397470895593096653358779972231524768379935724020955097763787344464383860475268265016255227930845484025482251312306775679458185855575860594551963025918933896517582274082516931387769219573526868768720556938612309228462019389237305425854323660224958657669948849395761206386467240582859548998793928034009458229021347310528466270806125205706912456605860276452804793900676732747817491450271178410420029010194357052696751579320170602723925495903202194557585929363676009850540448043172725565238023324214917373651127336580444470734243447653800344754511528612279348613849844882525023631199413563178243693249186618482194640335169319406950513329278953808133106448396902625443672475866119082818057603330213828206021991286210555628305123044678194886027963230595625716499212309496965717532998204823754095793608925245108708810752427816401881161661551806576069487009500654422274248650091890805554383759800991214744960604589565390259305677669560830771075239349059073336349581451508724376690147460736445865224717163434608460065303043924324393436848863246502885272006780551316075458518408979576937015426035735381942217696653010128332861145172272074283254197748289302263847942821330964156742074032750696472614165321740619817106068230500550861212334951712845753869952264153557437527044638383491191247064248017920359254935963360726233950112039935904415052726277244483146535443138653733881413706070587134714252901954699433725711949238850484301211473255384505094791334180166876866441380106387348047916061767568410861069495812267466335974568889399909270390203169938682612287007890448133665637364287446415204345356801363878834757535513158891754783785444940950029250960906779348300542746363601031443228729926915927627966913524715280512640550342075896995592390881913810526351899309341503916921496033827654814717973697425140554545947970769498741306945900922168805207704884222296961832608439482160114119429507316499521611905833879615608605866865189403577345751160924663261976207651444009737788216956541089525864062264938677201819920452865453714609576530698442911359783644449918080799820196672152554187273268958589919960075318949051728690345882234213153918893906825338873747533162314300565740016276693724496324394853211226142964983481235051174899271182483253988179232181310231245498921270296714560774381205680316411159207814222207015580030495272209918097416198411587476025963792316463107407007467966988403805837436796780827880980022868601573049684463836648794281430368401460014069121525367230812142117024540424043069210339698897185611395698674115596296000107810794006096969488914201880327702167964741001307546337215215120338469396314613331032629202577759026616652476491830974346409201236368364314436005161691379984545294954984037046501639241847396207581690050201000469816084298293490850444762926402237645811237662931885241193448683211507245884250214362439703192086077906162994649432627207234459864714535859955079282444339852427052928341426128825107306828922428746743861776228342284306197162188798789018613553088152401789022782963015125009310669712519313426342841742682513852605400221469111142967549081669073118774920139278406701679443240303946396867333693192021514695993406225952177283451265671739437573295065061370928440812217840132461086571783147546075761628699814203976411000305163557093813402640617252390831434756853500386778213173591438645873802992929391482466786351346999775142078504220706811972885753945753526226475594304988666424959693676408456754169627645099045855322620334312574429331738565658977845908511203642871829453704773874783318542231576290401688602426781574734048972014970606489644515730557173122497290739581606832362112167908902405079819649400389056554432012284917673685144731355278470076591868427535612975831120111981959227829937308544664074060886145560228130003655349326736351051954794315177276360151584380929383870259312358303586715904379395892329879203514134800538898430388600790247273486560297093384532537424226401891032338230134542536613846207172268105318160412321908786053549799499722857673804420277559373431963440174529167860539649065261674360291916614634613401801259640218797954952719850096718555238903144364253210971323025768763922429463125699315027245742003139863285417241533763789790336538509960099113034568932849502805822268666461863647622250315651549566650862863398841230968023294689455859138206539568276644288161903230659995788896890294457507498980096648206220174503594926766943906839811746302703169320070278720255127272484076813513248598369620499775240620981693377042599745383104110773760148600827460045294127945845197625415239165443820065710721488275401918785407097937345856462097591827125295986058813321238197284457569807464160360449710323352459798519420650208336492749686576655755698189403718437717226076832645283347786066948930202634652333414925767929683700730907802273665383899386181717834794205889560963488516738006666848469403823451667267624331292847987661914746043498099593806130466624348798954927635420726037676503442747992331020109079438946002467425068948249165749823602614906938107561656778887419722649443335126504778573111903858176267117057267623691272649017644912939426629772495539658710096572681362691753972975835011314772026490724459130962405019370613351126103563813098976818784461277423983352324420993788611962421374358619085481174576895968614987306445678021672596285976169339618609469156232535643609963233536686421763362421747140367989582352452204343316162295445737267281365240412857509879753102749395075527329277410663847897270794959378010013235853580680696959551296812019179399367728113688866989100231255708798680935172725644822190260002842311646952329191933384536559777507796763998858930085629400205428623482646137104210018884121954436711161060504342710930530324652172131342615993610164746875362855449503472511891683888133867741460288656002842520901160248319146870126231223809980396369533869895528556755550109911660424996578959006003983960617941935529923582323573071100245636937525622830831839154763177926421059551612720139397511264150563491113729478536385933512328256813766868788596446593116838956357044802695772614057578592808048617660863589473289642075064665886983269013299963085605702649159627122863972780631078309676099368256525314115960004509760955385377527538000220573042399413919919203762270656739049422405885879069489993202969863460757857157800858350247067769575174292101887770686668639114246832432740869435143272839085155130845624543324770721606366966639204388586926223705232590447012910827734190372188786469350459724209958143029276253448765345178710315564475705644337522983443904391094319591646690941804651983519030762961873934429809249338066080377231891311043558678050626815014377009462917595128185265001820962698529710772516624673727023928541188752226260696348969507570552834845131597531902225411183311021805338975314173360265436727441043214451664392417239818529285148667247768322567915993188376791500746554592305100895610064769216379312408263406821897441884472221798446853785950056527417190904974005900171010186087157919955598354332272375932377171339439521422499016130100476733433018819083524172754420628959225277438879615783514807065411806545729383765390387473360078424180962325409081983495093568834072514985375446504234257516549572766482409756066456523021988397626540911236640497271810614649122344631079153241778108446640569824446281308670780351200196293149509209635905541071593951954056733824165421432622299620601823781469624583255350931824876467986022738917200329906375186291201352083350514784805039656135559921693748313698256430750378813946626752291678829965546338961460678221740206439999845145309077574377951933075553708842690413223408778387870486871937373164913403100061056634952614016220000486548408309990100566753664772077581740015491193449022636534416794720213804595768790124236364561705863959889614684122834449798144339909111587243361689964739434424915768866442040598908085106066938440420878174779050248785229575038082328466094337198613239377795397769854575233990426059418743667349446343169283337111585245070981541493766782523371170267635333477521950145411719139623242096525889092788791216363116021665905881900970281398219723245369294520180909020901957775413314426101064128142415716425735412966434560300420917636694418483287337307533493123820624644158080628456541230778040108545209630110745776286349504784125251679745775364830583256643410303684957629017232168905693425249492783826461750915165715910328785565420130028609585237610930017938842454115148636070870043324686540282810385633099380455371556509558998395602372673786114076435391493299833736949725298101075697295656800134407309310560542821855799643127639495174071509683110640577110938533260073303244503245568042082932231121550696295359042682254946857943734522371858963035089781785364135766591092107521669740933666749758287846280672225881581129052211626809764891023157782400083183881642885677438941035875230934733346560397565543792207540757151256346840149863943030406385499119288310491135973496825991018741068288510660316061233868727812537645379443825078456351177997298856582123247371910941330945715182775972396337094382181961829422513023493061809830421203873339470267364023646716136444393800866764073416739044622128322931625146974826204263044681806968217672480633720430802823496499009391371336405638429526377506677067737443833480664590489633024352131777961640746359474312340081672257796196556599242633283706905367948014597104286877065872534873941897314238775054257524734066361113648818625437805467005760878825785148275280670345881910169916095403926144742976703201674574219562083287427776984898412974678619589608781912158464805876567448317438339435080248062385097507201926701175016328009616316181640226850513987273439367899600281050021282462925282134946692721063632067727592405694452127329628599130604497589857912122431951528631853604245601992977857658325695799459892101881612391987939263240494346025297714695263820686748448946681230527498713112116981015111579495646475882766729955599386446241330905228136786929410767995746887893543344071604283748600739285182248800627784790547167487841161273534040615852945030045595015303389885292778246932135504351249365072385138472106040913323034827683805706308196064130169177699839037446117495863801397851488367335544450526709767124166152133317781496399328068281887796950722084902955589209850815405504956353802420481458191402008095513736524384150067970083729694186306965544617309933034539388194610876708498206994677142295134568939858652415183236343178219588608138136598210301375212841337630377437114146232746586718591568427872627331647000074462107420785236903270064427983217622708396719602849090466644502947856936722603074644895298630482436698653998339846804062332586821034232034026651121735597941415698837867871943900731157397982316038293014027712946509720230047210085907385430416585608137722079217287864304007354501450518268736761747064809476271467956292236106251946675278866145728035572448467049997266378253888465960718353097516045351898187431753699141095709784989343696882346982292391126946785519769147848895492725743032460917233172729010837898838069462009030440589383917729593838297254982501024078398311818590586788118052085870554169002709264392289284470437236738504771901122972668677274707167368754386147374987246731893708377439908974138877809636995928680390325060584380202584999323086146824822809005869210832668688911056316614862871484301490558268277317275867457759559078156448568346767651864470054635069502395353896579269730931822135532625955054921347746099394315221299472241888404739344124174719213200846556679843085137949069172028236438956967962791377521828639528872635703882467128046476769383776064644662971582251200784415388097860586065284397270216226710590318904662574997015244887633412724251430785249549492338290207592600239465397528751174246956244783495614131695619832426535156802763187627476828766869149535706574357203957628089411408982045743842694461162908376927645111952367930275358761540945812355938416675381828186473016747761263521119440149533625442209309693850700765075222284805987135822188403979242407883054546145800579624018424634943633639820672004145420242178577678114181111647255080361104165591776910276072856494160434973390753580043958930568218322605183571307350726066382764194251811543708340706208907173717028757641726647753081061167018009564154459920877473098442608524738380747332639581155713257969932217484996104955225208859227623485491553287421589437293512000377953297406587407980564409167475866425119472139688919096462274529054713367359661883106719660096526197838847922354358511873403986757294364469658543454351506108196385378221588080351734935833672077894603128050294263234106475848675402456813698475919941616446935063187615954425281903323869323509786631431953368688888797673462197274766923871436524804966742613976074562158781137148132318144091800575484246194931299075017138814270561671490082425298019775913375334256519150302021497955269447648860124531192701850553513931060288729511437700080910882260004331653443366861029614928335980623095516137931186092390903519178844157158873183829458999586657947610394509607216818637212340790812393681090061665036785212577206664750982841989738689863157914958337697240010290418269328250006505525162615788378287969970460459680070260902983706234127960592917347661231734594844788887532712017397997136174189988562797255399840955206644840593160474148007995960988596146271444941388424680575743687662483203181212226844352520062753540543243931027198183378381312447083802560936380544641584761145582678099126589675620157034908856231861199577489573637521226852282360611016586236243438524624695473966578756665063131757844011339061329135223186775239811996127685404199474913188713479573261241874045433140803908299664811876700821778134635205718870842023233587626662720381220643718385556940548936877470969283132665113053236138288499108444757168469858949373946303143598510273601696129189805886189541883455919426171843068690646982901181410475456366328129173811391755478079219936773434117640254823937956669488520458619835691488078908166959549842369513251053566655826421335656491407133430726279728628040936942224717582775756466738603947474362378758288268716247503595815451486803189316140691830877680871983817724552521477556978920345094715908465991356773388130762053285587184265348146414802580664360385620066444200030090892108047309219446232112881833680087548723604181523084952625164603691932346625112380853112139955754875662805132969419818543067029779276313642608499085805125165444707808285613847740155742374036014730504460936770730161214623006684442027985221440673973554650891813286692603953751108284802117916406519696329351405217132987451646914683371195308808912703567935926057624594783135617440762626398141170099224838737902039563255591803224127890839603663497295728377855944590446790803271477242777869339550783789857294936604947627029172104293762522017652142793504362730516092838567967152917373611181755834366453891750660999644198082894679220526939926586255505121052632058912446763755319658156513109771540697547985080261932938075086357562525790674631929035829178271689911978298240924790778241360688822279389731241786308490037453308887328811271833507782003531759576770946288266003864204118607553680807109559389885733383727996469317455680001699018926460651337207954540111042457774280457165723463806167741353892910501885184051588371998275817507542914530673993457659886940553095154794403280376637370354366727141002679914900131564095299197693975495464202027878828236840431768960723100581405168925960804460086706307667609708728326987930645222438531568577037041452930792214054443944304378763432301356479951795330043199287020221057467336689742820149936039203725304124267853281176119630809568813180538578708967928368975154449061891316448416905420566347928400118193968192128344394329531640499663969407144051361521446554242221843474197236144393756488039295429805218492126174162728717368844528272104830300217102662202542683469565004924695342648099820820833690407146382596947767573777552039198660427306367155836094135166347239739147324760483442426573804853972398175261603235239965184017552559149618263387445634953627962379980911454517707649491864268917695279038081375044132815574045752367546984372678236135403648693839517340336830382687958671902163007329517613890244117853965106399201848777721149942618601869310321209949915503037541420743198023040963498397380284177893733083211824804871483291345434261054435481134770180145401937045745365997476991475357128932576143741404104027627595426824297145099413291274117157745303871597859039238778385069579403014863528740249705162311269742829892004337608856899753442004592791724356372213552821033045459322807431530785077990519634985310878339370873465818549785200843959288773317177209698571498624299934833291054302583528370386871102072738709754102385944726120512474864085886801821686016786485816919570126781693523433200320269226156115542500735063788961723468888695117822884880143120629577239679985087318439518128127892862557436872824522644257162586559754146947361477979003374164166762922964465082916053876276011984477464664534844101471311101028778902211999116729348924978492923632153381577755783405194391292524160514784838438222111395570382103401712570002668160938764073595004024308421715472093377412878782379870471528380248756779570133303752949001165743516465074968139706105460192321137058133165241708006788695139962046045128324984189885156104106550052670638634468636970696920546222214146866988832502948805569265269984973923419900454257245728824901158012033862703107773313759356863301946981129817256662372893147103931066080457971150194399454292150944846926536715762406844549280139131829962669393639905130658514906898624087781803976223226636366502681089428163949178885300334252429353213768829950014090921475257125662128884466258523130880521730982190456906561903913092557174019172103792899651293075587668770904677624062342914715856064285096653542109866892908895417801549785348420667297871153137565068009205555865004688434284284581041428322407672100613655968079131416504596554077628507078483625435097433307774978406018137559728563597828401259889295607456715907316950446460402360894745211221831222733237337384636409105230097278690373511965516849828613618468346537291967066779953148891545753790104014224706763091034476316796480767682373485989854138689481104547782376946591984049146065787945695559670438430596715072518561446653031408171126974740506254070144279390917558584884629299175096975802411501905660372702039600789947318730001184549321163870685984035106096849700035553605137337420172972748240004011504486385077892082673544990877263632497499123084202934868437243372279415526285180052345845720852253872041386565505384511037506375527832895633322052148039992391252303448339839705324181703685978665604031190716486941539217896328754081104421896091640769980506122164049759903925989007225576022233520852751358007370992244247229588534622806436057276436543682457515701637722446156687992058364892503483349087453053721286870080060364485140150305565614476076069957654213831523878077404967245157854134161526185090345126308821818599623908626948100779616246648289975847361405723881585452359731447272557782662040656066077780000488460340970227825297063663624871733842661117220555417078669516686321422610025685225944335494976044434167978495245003322726215228515528785892717616216046442221443203503619341248993586121804391483439107665760947377358524734368915695075141307021676292735379858677389896388798132401004398550238788229366070871918670783617136621985229370287099264734405910808649981118603545688635320111028016065253924259645042972081766903275771291410738062616966927883139071471161899192161292949575343241661014625719273937509216942112951782184559168232863736833059665486579479757553210529964265463796164659488267906125390628444214848976357880663525601390834050545964415581315523895656323124271741429950484014256405874555736167359010223292044179787457837570602447984178134260919815977378317837455372747262444198763438797844912152399907932849192711377366183285970585326409436757980670651475506526278987055323566166870467282715252267360661910551354153558326966283720737473923336706595334637883069794875841275419816764407586803979687335720987422914126909702987614415592879193567893645744668906046742766023810716455342207107036531467554154918533316950474942424591949161099965666449221732631359210438497933772425362294913114573057094891517957090183584402954662035161104092613314179937436880273715228263997910529486008075609496696395114004906121994625295366254535057798271126144717036713962733849034313900562409328504851012471331685458306297251991539383309920345776478883578860997356822042487531129116190799652402636183630300496596244697257897800141708736153872662648821769427660858142610767335590330811373290383810555787920127345104813939689922337491055234212678085429126563075612020052278642921240073606934384119075801218603461619693766931207133459255393968094418840237735683448352573925877420869892111804038954889733840279566009404364562498658941032525709023844988213411088463345507658613791357496626410709639419664464248911285904933952352376088182851902878405492790687169848122974558112930552177527227228661861499035215602485711909884503027119430718515678945131019692716997596738552334872644796902670130789894130389374566313466580570732590550841748238909881281996658342634303254144976955586084846948147451011405189780626538228356557988074538565425303505137582199821946427952440527589497136585752810414090549203806152015023024411125651364731101811151977132848872820534821041882990746079045021415903488430931527354249620092191591994205758861285111654347579148419811942005948643609265291738879010107670954396900857359568325095030841428184698794518832028253737551074188197302343201630881265405525394282763933675877229740648295329571858559538399837282471439151909793187170195080592568979011102696578262713336789158060555155446361367721321454259244361205254630331841673379597350731019230819246581066569353696332318702372246658681109511147830136200851770310638310672715351383285344196486162386495461010245543349561388871711462706996088102930434579517403950285787448591677229552780956540343132721021982464638936813562035520458700305343361248397913704126807534498920612907163680847033640276941403423892624887909036876873223702295334882688167309418753787086720813981994695105919744593806291678252688977067154334724692894929394560907240193774386600307694689948993488068539814477250212828482399813089833443460588105348401114894142131591944171719136548462183427043634468589075309995389690647112057000477969274460848195164286655877156624030505362872771859731137745339115206328539774683894552242072195232085108546948280784359875073492413632732175663528882575635207700394930821412943251154096260242384486621360451406062635490381918699389922167105087420759542000193123196937319037569197085784837196105592868938315801850263625143349289249946302363350025351763541624168318764752612060352802206553818757090805086089444149825239268281816495511185344584077412568185446198212708279748267922752892079532508438548168721027424410608576378614249891640184360791134984220129714692474696463082586876706832549915524241390219396614904307012730639861813554478955205625817898534236433835975594832217561754472163056238391154488884180765421121822195171039934561412978785390551707961502117601776360029844417175582614144977747039104731056233805439972408107415347958114691732950192495198534186447357028463453700391843579020962995199278877669016731100729554769589455710270287056367588139960374969858388229230293689416667039629367839623944009179792615361360876242834889754169951951764470218690177131971084707224683454451948525539351494572620405400599464685492291140822403696547096651488360495091139208383713666855737996054191758022691477879863717811757273303864614896249741096380399659040831396740801283132768329698849493243819969336205016896191750367736480022899579845984775686280084778163463326355649056910062116214108305369842930130665563641652688454295565840883504759894695885625723118902634935984208717025739522836942030546669157954224892108715923672019294648427580796356103864782121890546312029025812593804085867401060563373679267942729114886206886554231958612804755242377135325626752380835290743921633120450245885326977257581390596242544943971500477499148718534689344727853851940651042125097306271862628429131984557482377393326357027824204384603755817320538619313167676599619902282613217980929595183086001299474270630999629642432020850761342868982683132683912451325352841692792159588292955523827341361649720733125703718166237584485287754741071405804017595687363757897699862607180217748012874860892987951372669738194422278592097979962786480975082924040545204287930497388585150360068536807123936136373136593322178525546293804919620393848849559516060227208015200606643673276908281344120139904048689864833069244969741702290437103805308633707817681866025216721441770471483487466834094649174166522411038694659939875649757955518824840159881916120390025813086318150098105080190284371522579211914091939485494319235984365305077035392067992748763864876748635408106442901184589381246504931109443789796423893585333428589742014340227147123514940579712541189068820947095467962880514614014500416801458159940568283905252394804808355965879395658536436222766558111501992110514116905612584484686003533652359988733898238459314204993791625795035696550115385090215176294723586348942725998251510708888298105792761420764678686456550767741103453696489794044799251437814738888587113608005558365424507057101923084070493446969088762145043724461683781599976589042143994538341068612427487079700684858419439412454739958800429870825847522870053588383404774726309249352377197098284183672768872938314659273673904633593482126363852318373974871092860410186272395328624611661560948641474946333318050240934832538994765692052954793010348412726948932536847276943118541425044288839924430507596805099054559006394464864118556483200870253315363140927027852571019778153568461325735974392226396538371597154214328506840175203994533086509630880506146630685733765607396068144303080791103078017399280417680379830622757744053138835154491528471296569619279086493328975647431772213533243925449928163205836250379188932543609182646557303082837120901580246434546319091802973854831493726968998043273737088625259613789436127925792110674367548362402971145486358076891682034861570143187399534534771167758932396757086095140123522338855129209991729277980487292410702698717740974609894440121423360423662748969921970831224050481135272860581728439986379493513835039022344675382212507886892194980008823576274335948064980025065938924759213488647443247442594316149740921249478296256611852703673656269650675258138846491507599655108338054698650535107955476678671796624511076101548181287771529253898695153098642006146278167006288340152567525364200484238311214246146234477164791878626281531341071205469254732608536197571477522084328385476754696798121460717300784008950675572964743714961689452110931324870996725941471107221725635120857092740185162598555081545397473852011227065747275123028065300176273836674860612550646479911825436913910804867997101330719780826199977378076816161114497715127837288850927520882913057857095683553504675059037387225131363800680299043524843137360187232283476138445714492448596023924772190200928619310449384579408527950047300738360564428941092838306106118340947576249513723370341817845482605871202805935301622845439451269669658620615665183126125080180112987995910606158516681822194324528452628998672306987400688585155728376652806448578995556625952315649444681658661480048671543418596807807902184721291357310744997267680471248365939305447157480498080267271091737642342422220775637331442065055579875226742968884732523360381295279087163816549938313018370013748059118999082926027449612392657079763429103771830562915152446521279563858625660911960655626027707549575113131054148984594562628750438881075533234997599757307093585932848385972751782087509334466692847568974661782566545471718656307637328863366157971560416897948345274644895137659681376799139914913114274382975038597757889174907658443871504428956457637605715777076901463794234233203129562605791678527229650338888783262791865920345617531290245729464507914823284254791285728951046348757135906081512321473657386395214844432280358664029749800826912115994143865777006047669328660889473570000411525178179507328526158165638894377839471595736135877741241416823693137834268805843362652634523908837047470405268809261189204575756458117191795944569828090089604583345450690802424729489442594559032300949465884338591801668438057990850793234235387476557194270849433332173960718728716297273211394403888506779860793821758267727916677175366508147535699884591918085415409027250432466763719668905383411304331001614551560435726753529183456885343911742456745303400437351438852310480356944137457962910978111292510184526001959820499940987810732514047205706280768758317419516018436452473746137816045164198685840945163748911740730389648460289310007059033790321890679013082739181206629594260827451644998367377250281086434312703794776466817143163185136127088078121893010964211976441582673193759050304848207009756073367368186085767202536929797455981414958755189523527885033626533694943797599875771831215786515472192105147948391950775261816714328151105333157820680777478496658635282952485810981476313667314962778040403311445795954492070667855515206848096998311035477667184328728133124771386875822601813344650668348777248090363062289858671986764830618991537003576578331219377249511439839378623128895732680914912365023453450255056531036269374845632343652709743273449921559196561722482785524214781855643742664856893173755741717566104981072847667424006386650622659405682955548436821168203828123431673536783634447290726198503229803534875897615811719568959348699557450505034288335584074992259186671329050767460532199128449154574142295401720706237939873129270745464827555823034678209234578714429366676073059923766184315110010917226835466012723938867389706706885526381680265232425594991485734523478590905956600420096454747740350750687668776376522033872486837148702535321839048911148252205757488426575233399623722677558554074326872818359701214821819853448831359660876933699572440198796681181434499142423416148915218735783205809114652897735432194536118722599844694528027742756873253467777614308911306526451268139421199400026926222476265734410134442452145853764634178540718586988638838930642976395824189678211872643835975750539482873966545890736873454493527572384456335270147790837838472190818697459675822909100258337859991323855374127982438967975849506263296475139795231761471037331635782602309991823134858344978914289839516264761868447467359584993016157641655587780142098848415765885099811015387249190487906130682485440407596748097963844996648815053718243069777942462090610810813879479408564534041769028932408668610802283499282334952585925097673932582530419845932789509843113359866914808651276678211300403916979192810821112621365708664878842597756528633192847533969717264371873430820258623857349897190795115973897004741087402726384123448424935450386130409791469483279747080519419800920730566867777722704165005848122776875041007673012178615539834927544188178361879280866880921853323298473856438353634216927546212263971848865946149766318095785710745598125815712755669616318687717261616543057667587929224490823540607987306455849343702554632577308023498927410097828756508057541325346662539869688899539171073857156827962529771804235424641207692472869175290480715816672842006847451037628779890442520543453620896019372824711099233235687206804492438333994207643048260975708116516439700110157457164710658138143697706016272931407038577222622869051918130425368823822910127183999174003024927224693747000019991076557889748372348334358400116595982118180286519801642655255156542086312622729208061494806115950011318419360201478503514103557167826670027698043332185615369170395613322025668668855498894151294172558194842524800932500948019726510825557502977326099698927568615109656969608768595129690564545423831040474913302295831618436922935147598472939183562766018021458931634232664411241896515667518570488348214594072310990478425101026542147521061596525470264592529427453748686747555982030067812432863744628402965802882748447330904813737300212907385209677073075423378234608931463293897138571433581179843686284400046201916849151091428632754069082939975485695658605667084383277117477386954990924659941621114327664427809115566226111658148865793243382170293391471813652817186088762952293348161497445363766066790954981732068662537593862404483012869954364425422471719025371059451309103382367453477964175909638463958820605885968606217277215934793656887203468206120843133891050191972603213308827377508340536764453188517238621109301972286428203276629155894515719410955228979730359604992183213468294653381188074851818960207212237460732605169601529765523711695931628024707961267062917037476441505895538184767448641001639191283717233432781369400904572445505148108019593965265634479843970614643643919387145017139633137745504649869611285212812468235382065253581327181412776696219276060188470711118295500150968124713790082847068110480908009976281965570487662126871817372057193606694047740147942675100714377578717737636099770268167192086523821164053858051970249887848352988041100817888491896153803581000290014603412531075498790503897527064477899367650311201264871861593981147233378687696967676790199798573491233800343285645968164891208526942514905684532145707174792675883319265504969355457304221407975826523838214686327295938096467760625499806227055803246325046733526165832427134621204424584709150356371656982872117446188963239320375939563412710620131176814466630610255485175175136192465259029700758291340818845281759422319094061716743372903029571675338416770264722405570083557995025129298811546216139070565524961392191266886089863339549826883369820259822271008655513087330565073101112566936828716951405400607627070695410006843298432025092038364234776714311988219671777699434427605145034760647619214768092728486650518952701931805479380177601363873514341082937297792423730445079929996165911634996629713952162576749251793920563207819861512340143945668514351703068316417634402051275948813359718785288072432903083788419873457314799633738552613801026462464019597495188906289485152935598268225013870055048863292026183452291581732777231393360842070421334782651034233920348497662605498413906063743513893708409002580657682675799115277772175814581360666124332711547498272180770209449121947227703323436047657537006494028577812054683092017735172771723758161185216156861120860457487571789636831317602125759687839665403410380061259565299907157013356813773132171497366431696636901368641620800151103606220969979065912363051711664209442096039703310033690716602648963343580933400706567235511411740301936605066690303286226941128384437347428484651732139552897813049894751530131548743856243006331136162448102153084592415754201949434331149362088307772952631102923791536960717315072020518035666037845486487285528706375860255725888021992135701907876273088497186869112560484161588216207243221368437725277450457757307553971586018521475852170454885021888773915859736937565234439093457419962370630331320320705757954424401608155224125559435570531263691759188211527468308039903811057492670489669855774184964807751435927577048012886332586934363975490270592560415121727923934124619969061625413053844387163316915861438062832961862624487677683136820892916154320100798385818641672314362987036791310482447555021497609263922657614214718957222553435509932074331548721949518110868258197337637942401687337630348567609938924887191384746021964878406338095431969243406839403226270950135722902622427821240806404452650095858848007658859411828211596200765917472990101907877292672567239297339029204354298725685469489173821802018082079628727456442044842519955272057686966239504193060030189342168212187153454412445208374856817490214273927701717469163444177412310652744091289023466498912596775244428180746494959654134507109784596728664619659544441345091709390281561651025895815383541218454556855668175146494436538818052726605688611551445105207844152130253427169632292750675247798312118313457201497845035989729204924151655535867957674105229176914471812033504523994775391209420238785533639795765962861241162126922383709753164290591683543517577592839857615335631215262852962143749256064760829715016346311731058770964689709952882430901259445306843541637383142806368978404855339822237462640069184884467739116362544320148878368083284478689538826790380720993223585748516122111896961465483021124404235589559293218669588404812016939034580617496729432076152126486169230288783966439244886197835089225117490629321172319062616117667141530017098758601013214485252936616513814629599428953697729406481430618656151551204535641700553913492929905297582912951555948692275057301991280246981473056841927605973360351237878646135315440319487051134378641860656299742715209229059118045455476544356929625612027094177994818639666455401191388017950747782894047985563154055139543142467727222215265672472869342996711031354050264966582168039186423138567016477573782418715229058365811723212964910348806135071613247131645649923452484244108565374336857445627898606709149991665277783501418230018131645639040483565540759029443783301371088815386814225181417485790403350100848174569942491536796412523621847986314937331842225457323571752260326627508529738152975528935776298135378241772193935455120902157768160921868079609832144329108129452702341956861953325550003965010574698238508426728501668650021803035471306477471552446082122879533017318304642555745245520506319413725693062775183601296574196275779681517331148023027818051523488067483717118445224166343915271798213180247453293391910663662179439470233697207014470465780925697811256923408024218880224491616445540678782665779667709930606367883754186394012333674806802860945151047019446035221396314879007181250252281651289285632908374733472758843544037826536601514147476045356563182454986308349280594914964890486871282333584721389471665308735503329077043271263476781300323338705643714978959008674388844865531488119786089039486220670239435542109447404693137816164000423792708131234371417158813509616147174734014699099083744680260985125766295266726465626149896582478875818039479085224185341407766190766764508476723056094156103004192055930778796485911559984639110212262127726238033440260093249451560918191546423893590694219642422548761017159687057300241670845829492654860267828607842537186113647465870082445266945359252718539782845203698471646694431587189593645672159366774744069016226200788473408826488778026843830474088542399297354944553943976376597627893625645518025810236963072260340265653501486390706589465812508935980695990279764894832641590165123299316480962426226540814885627356297581148981713996611732422215735261125609054748379889640845768238794516344957669448401526962360772287934409273656548842499420907185466482553412775643067182498619712341563558100344711853300711224348244752986332753090881769386944342776116200889323775156541980243670705010523209006344428950607803105690852388539847352063159021586186729231057404038972166526856923946093169675518569373593517108030732143454247069175311847367736563700848363826077200766279587017780911870344712188229592427414063056404346706315901658308524276219790473295869491167765986248879677943530348942711801665880998101912368725370318467616687856700209597714239062225201954275206178475664659164397588367391290728653340180205471343921009842859103064752668283627618132927780405562032621235366445954614221338137269533054602515911290817044134576558609428859010551877693631275903373957165239275300416843382201250929041547625435463453236313669648273094817420615092896105920847537269280592524031261686999109115310041638085453868940224361380975630960545824692499858134898361888768237342501674140640012412329070457143284955234048712498574453777782897766564002254176686939085657134759513375905523138633352523764168370469059867482373320516504480001568220243321467359149409558573594269084934367133805775582661549312822287359649002131171847249588783866986164587844333137060688769704520354661476990088909753647992959841039542230735033607238510599043986599124700764862895186420104072994553193060585718543912099880275395989125273824206084545651682143577062073102080754369967692936045204576576661575205245513903208340934373652945959035795799983398845478344889176832922210190238877494434026564469074572177582033402400498932295380233727035815571803209524473740711071946401968537201791619879554101807296637957731422882614322672766367459645393675241417618435169532630727217453619327601334594271875561650953237051858637236594331573756550367519551719754304311980614912840462793240097216984311992825478417983179843836619153726288280858960685438885872756085960677569258700361558982752599367039381062438386416769560501542122792749197261903300252914659726748670915493621484726413738061319586700717596432863480399894960603449384662432949980904157241639774144239489657169652652445476653616683572613782946032379315141092431143452343979764413534638157566037124694844103783627285414338385611758817417559700891134431551398771352029465251516088975659624150156760174332925447337757883006602898912448449660137568880550844644151396678364556313001755432138748936200535496841072005751723820029769156688007780269334314333748162961507824195923451625681253143373471954452728062365306212787124740985433631801617127386167272908305250670513725158985798651805478699781863783795012893546586980707415737077880749684730141844216248789874934768863855654885341091902185213839497470211074649839802831333765313751964121330792987508329995702434584508596436510013042282060140913220183627650759502255584496878239392102594400188453167207777964788413068207225444769985310650167884608360316331520606914080338367831189023700437649480030079935434632468090400881081263859765938847442580116578564758671883923747829056050919753308759201515998898502062743211429190250469457227606146722975556487251492490429359409889806857688186453555253927530908635713916653984766667074053432104737615584977176360678427616594510716128093006941429592405169479649476520043136451258117623053639019574788153192547513923567499421180257794586662936032183938527332863626384560124297708157623495287591469709156637264996069849596304372480998981112678074745281122586356232781999638623069607174318902088529438187899929528397813488642831418648300596334785674223908774828864593402032219156932324207783780626305586640719834268561680331814818674107559521809254126988573430459113561536246450115765085754923392147951251017917253884386425745715411356232193383083446704399214050570973321998707687785193801706390998252873634572263171223029459524888940586589771616926727947065901838804660843702227425980829657297212641887380907610050626235733955455173478187815751176307795950459114580355711958534924333614439709532238409467951159092768332479976267001257348468771645939254497084834668688283549827942060053112469532657044511953917983600954150387036499161924086744750298258890387414392276605494598293843387658531432859533082054457966400080182016924606341039527631158517993897300812215126957886000259885177438795872758194556211771200313849997344869283634299507089919569375426906210547567756374453362391780353799945591775538945300873384310638073895819948626638981998545750760473858490904099107813036554426900526555580550006610424231490560110650188831459652203804085572462611734919343545084513137630839808617476679272841422912625339360751386430204224219282192819059614539654913617755749901885568739848675625234572187646031337653529371000144657168408215327418080331844802104309439924186520219026841632593281136401754113885507488007300077779981580744293826302321546989820482881604132710232132032501974904771995559079856147716858030020632816840834232101667083459090382863155991769208531792114816512563600451959439529659878289520661291455672414442784435020899399050158336173735511432104567103925764238086589651168042242118164600749655149884970427904150304873515148343513397720896135887076900778472000824473046825225897268836393977355751083782266291546472876498257859497110014475818736350917828620949277300255284191367212914664018613370518906364858362788208628838603516638778997377215454076082562290168264654701279738772983132460126635166311343815532395846458990093194881512590721759811935352760063679907126027312958283882078709939821817418754271500432964143808592096299793756377756597469379143628895567622868172042142051266761662098852595076839842428342151284122358903884201012401716260312126476066485646620882068798970912117619337124295944222175408108168502542129843983813343546564645805791968431505295429678805823831040248825774584115545742736432754119109609400348059371037313810645994837459609172675454983258120503045684852108479139834180475136158849551394501280894723402820713910354292774745611550098917344056159930970081650921336488904381279539305915228287534147562075724213237200746780466439062503819431982445794892766227501507988604876366847739254357470075025827360168275877296944436967287283197854724665137222981341384964361378935939231324655880799036218211306490518530903341732925147630733087570653978134184779368320660408869671352442468747404256340404155602025200820156130098890148495508684259997871609727408327745364377034528143680471588546243331791754098918619704644048783625467606261783391133550173074691293462706193061522893369957281782160843296043349509695876863077572083831295195461233068238710702076040202004416621881510310450045733178598150882990414456480590368147399263617748365155203717049633592199434545121115943194151030620671517878463159847341533556672935665015744408678689477314223197602647044137407169417617672751265324104616785707115468001794384237401786203584054485341926606241132345081518375191085370971636025542425493622360546358937556084925518028847666333823705889572409238976205522827043159367995707163953866480238730751814001499213398671631304337805559610776763580105860522762429950799119055813649338700886406894176008678738765652213857109412645648233853002890575300190426002947878114669703175502623582612384959643532279318858354180304473757043853418907940404519245409489153917089372366246775493328213175281688458601393200080515541168516820604242368683282694908776817066309225695688388550191847262884062811840005326436723972801112924060706822773383914043274499120406797300821134138043373648465994935344368912686024216000984881180998876258342152745702570291091481371466202322180362288081207701952306233822157978161539868198239416132860700040060539358500788022299196453001265975736875408149863651023783850939440129106760525460715735913389016094933243695147513739976641652769449648450878530913704148104300749076549276885321694073515450174285721561379082440280171836992895784657908704269233762619196368592765509179012639583303166631691120198252901531662627407486485725684253058823132021396898317537957916065870636278707380263926842586472229481204318451751998848740677916445872575063408047771343369732567247682733422991754412900042807855533301431687203502729056170392933265745740184996238053628499199131407382147123271661540079587319252630111593902018929303262520657328907148771871508474001056776251446462929289117614637889084215723291042595589869587219065451993760746024920885761785754328765306007205959309344114967479583337253106034070897863061227782260682451434521853879636835543151934731325082131146447808035673037986903926723667684394013257911616118454178266132642996547796142521479039475531910381613745147142520232617457725986430482203073509336279021486955947854848642024256161223205603983742370883849950765919319402639156573176334175590050006727918193857558602515329949410900132782001448135620098708577812020873456056277393092437989407510160460951843513516132868490326238369816661614517558828470052538028084180260505896873628805365281527573602352927615800601171180927382359296727787638228631785722773758297264940588104730389073956560148082753613362758516357651557204557807564242277682668551953897620390110001971763364370786350594839533483025859256925562272070003861480344110757578174165267858019212777918790382165485670470881098592760184105741167743221632993411412038841071538106328872949048819461484111282335597826421268718245065188782314498314135108900828187169589251877556060850582042709490486898459422582852231851693861449574233029234584437102466844621677157770198593887983217591059926841952583173590982723481786259818530797589174209727567881876644421296615337733036760570925046267105650296337197832892192585792234490652486117454675672434444533560052476518335066440798393441710675971617561927712143928549936618665485986469868378591110707587971085815991646124485185056555816365558472107386145469312131508974883388094819173212007574674803556451312574618215599520969280679955107037367400776295540746633207044218793478421544520984964889365054013224721329371457221715910624111204865620554174989801733036751623761402007149061401292920423244434574748012771847577384099779614603845033019902656920873647139897644201124649378825555141195326495847428164256860101914738158081384957041090440501382495765180838291614820183564407615648965733746371030165172952540229282666689873176913087071847589849593103826592562829600711511194737814847692782314098438892623600277237391851863298437036540870145872331268992267601235097394120619084533027379076096775623294880070280564317569892958617876288110865649278025853234881319489039904357947232500177452365161248333599577575814090765921232327361424052845824803938192136376683088914309813444654269993401458750814208765412779179047964647380019131425350443101333368253328261016200252673940170028477921486364162010231882832112093159024718919775683864213046788533040371909563242420475508734336426243152223225827899180266444519841455776585332278558593555284666826094069005480789775348927517076791106079282876960461577978206325897697043420214264354630734516470518055944668838378622074078050929184646350046166988666364040238782796450229058770481262241458481827740031227716181856666468505385934273818043229004393658785677873411271713088530575847447791204551165209565918534390695653470110086491700600415842437449254999241578892818754800389392192107438171767009763446611521504339591340337041920452898368516648085363636009601689441051714170068754736863506892530764661386445271773338771036171337376195633687114789210653396325329863964436442804485350836122979323732292822624407949209537616355750865962576209685025184903869936402993867061148255268645312300623955150896533947262373910752537804537448972415313098071821153259208908747125024304037143759402370287991271674516542984644798608622601120747446001060345637753722031051726175048374158332183405425990331301888376032562101360563906300948406147902261849748816346328975212997952646728282451687883302914572223571621945600804790707537500075863504604313259056563127858060366671563599805729190124384633284449956047904671642947648660000824258189469603717259200321923145261079594424339593375814660254724240635807463491336144883472867747252820532708560958101394859862745160581318454188236696675982068834680163903268826481716943769314878438076264881569239627674686549008942026370259426744981939488651808398563233145483366916519978608258341572337142893789290159503316558438609259281404242427811267734332382022387241981183592208981136259391021738928480119006503866222381356739398558014559506114088610340553907293898314501989763344853164667584920541832352825789596293256035394154309689163951114009200093721555931218713620107112162548293437125451749068787112175776626079941478322860201358834991651964258997678167082225745709069359253754213192039416452391682196175176259874307276950687721572855195452089257777231255749309792580500048809028920500641896353201004446443978988659707751204714087501984884971424875215332339966062280922267323290091229698833806811863347099001314211180147510474695133512249237804495442109315503196790150635146461697762963493842455397881298386056437267317031224234918968228125691268525517615583528173810317468592601573075882235599017182845721065743362028922794393064812685812022730813569041296825280634560404193726555091826082775849321021704105442421894463742647367374823982432428373679151742677683792907779079009022540505105387405923267604083031282677208086157202373589958163654963836768679390464331688892462373554730594906164038420184932762030699889403199499566587974874514001326781144029113338963777781863435698553419832619793222256368552188966703066831854058437770091483269389537629728303292998219064321704621902944790797979348722433572105456979242596228531165629300211564833899319885328996739615633010990263955865851701463273273972723708770847531900041837557515952153626626331181115548493531264763658333409779525050110725493584811195755150360860678603907405496671624712378976388538674738708226687463728302311030743923034997448528177346379493597829654734494763188230469940471020847985096357602152824610148391681888110591875348451679743001440930643078101615022158506083565353600891745338156716847071090835096671793053762495968079988364408671206479952485956089321981699169837382550255093307872880199337515425969751044975096776788401826085800339634018788338259011598267419947290009089233825645790985118792447690380721169713159912525829199734835013007721368120242454067985390761909747939458403794282889731796040039596402583549532149856255673599062159410974877026398231044673039983768472576306723636756774288235432472597297013436449246664702568648625287025480250670692656013782330562666164848258816531226494833465444214495548497879229718983238528548466566536245014405768634418850356085288063649574781587612463806312725050371164663858263098137896320897851309186571879789616795807147145189682066518904062267481990658652704230434786801800368302427806022854678976771658332438794457339356910086894131548985466495809499700101709340810471817010517990174580938189011311891972438704776440809553247091756272397219943212929342536975443930315297620802715514604836885518846634110901438720806363394247755721043286575465497818263867218919212514220576068894600276564788931585521346192051443574142582091796079987404279232472573864559630701122012165276112803454086390217482021963797110668041024514620385689660205534395482581805019432667791054514530370376370665991486438023950121779726606035194671114858227930521855949017137631849726090674315529209648134081229084388880501175321915414963026943037829564794767970583708580918717595192587074124715399913333471984662312903924411464412981428290841090481111276558348077274779782968552136953841905322899109418425708840308380521871518874184394626611197474831872825385801605216115467195693479097313457351955226367321862652105391830948807588308124865524257959172542427872882691396567307072263137851344564963689011671898212431200917844712134572390368161841684610011343989661046021397621342489613989364964902188052494674386428472794391147731342301732795128071766841521749833054877606648527399878348937162490269702640467557349742387411013712106165435132051129523793743164853264892767043245375484611262155991545588861229138217178953346493189717604127141220474647201539469041206286423692539227653545711220394333797154860485609779509871399440712747702962780153570107674798565238927497867660404967172875323641664052546043973060971696498661941140101421942593699718051954983065034576975343913656544751564672140578805760407448367263381088378442287511999069050078422693585781856139587427192324528838938115631165975489283643950083448468984902900435219396912450196283470302778946233003412657924403358102539631698863699372232512112389847337265357953728884947461138445382714586328541287673897319750779386638030389365509125856848195569884652571410005485734279853777315462975825741360661160303434731151393604569884728822204374477018879157465617491162352964045600661755397132896998461420484985752680875445294275603933545691018748456244378313036136599796928157814349322391943634045864468789938129636985849522062551000447992403332152799167217252387745783041935628949934051523403252451419973562435836314842565719032131487623092343509993918130905080548489913495837507859690914644021984678149880780358183507670174722346481874148547665838090675803782957512230347607267982141046999218623301715209645569855494119177304258777649286345633951698460940033270339063562295711573201078131203620301971392203051910129054854156671710873223329395405927996105647179071219308677238928103554351766684783437731691051515132814974693117210365999858198665559534998352100824615983854101508625264852483662015038530400173445991043318277505682835746276012162493683094672858386267762046954623245194287646807136010169989687726417839891718719449595444821722746218932321808233663229745477614770414944085294773088075526933337390065639670727617179853056296847811571688718677133116505767900743327584499063929654574114040913926828224658990008382462499538686726716611782258725061980893423344067857464936010765518641857646386926393244068725557050599343416270651027019215045053358336128152050243243972250204300546336207723819407259689254069962405050515790615251512361474301637370650207347053278619356151438243578435945103886229186580903537179345582049906776023535393528593669213993983351050012557671739237806197331084785289579478732004073153734656457441267360125891742562167372127522729330424666049334346513115399069328322994912441063617624386368687141886233410225799184826627556140972158397192895115039079385385169618072371108061154309378386301596720555123764289354766620139617534718879079250387228050173591174749507219060585646349785078279345335053629073007337843336965378959370769959663967250988127244039696371024355155241678571007264745948293858065093942121536775854283963650392307406814767540582303523164357017476390042320479645532105125281767515008197731337421789509622540370800627826883653916562436140474519845559577103416265777376377591254874623024495988372066742338508976385326872723999488656354806892057646490367426222815449648354790690372166178221210732838473295249409450221181898536150570669923109218549245366591272660436178777701696886062196707717638364271035473415805627651165838174455466746333697044211212923822265427226383769437546913628924831758507642780234666255770003380517872685450464677776355369354324671684474457754109334195329422508764953067465342763419769773060165895485962145965081363495856002729585773999757024820601840482775376605506708477361407162034159366415864626393914587593208768114996488950781113624034326631524870454672005044589685687640680262385732934399728996931669463563883311984788983080100316113066799457386440542731347615557788213394730042362235287820476424426458373642794408283697963314158100732889727820030644133063960641164803211574242602157192115345758563363969129198805718109101773864985068943927237048653665418307253847978950950867749340477460620658992741184032139630008665467844237354283803297988691702006351659920272205423401967895605045096613119386918856189791408419588720135448021780059617470016975492205844083538071544853737203926924129664912132597774869054531355245081219029569435582438833016026989402690524530245296419086196825934619031592462249806736140299301757980290182616543761467021663643742863120009054256010978766002697921444626667797179815132623103642154878549505262686495748932314160232479118982772306245950968311815744587941526352085051749594733242512582917252399258084666584447672011296525085510464206399662510113302939291161271955172712393312864653837744596094297134391570150121423316732283755787875973021378957385109693774462874154221624119546293644746356767439983981737575507903101735150066920110759177477812186259000030445892500667543225483264221996383036873252002496442009825428180886663366074990958544030087103520308651042107771054121792840273940849965757059007409314937614788498991454577255087604135833735028234358788636729288425746295110189822803421791155799225585828167968510039792628033396565940352239489566124554582525583423737006632587831446382632846249504399223481968667364968934029192631286244612368399045625817048299823710643391015539738675980140245072302639151177579284051275465638902562277321581124704667651031366945132263039466277230210944233254712786694308528988184399284546413936579028192680684939519771642750871945408430874024215742159902638176529617580398290503012489354405110142312040205568676734580857729247569935258372996785369732761792852162015280378721485062641295046326310466585335257600603323787972106924734567632967628741772391846770709983260243310658796431555983453352104597983895276302085094488065427756046577853102121271573951043180141754309997640760269370636293807063301830119492376146891331013030242566658072951829396407777025261895217126653154774333747986655134466280809696256596844866103847425918308061693339308077692581174086737841015002249412540930263641080106248198767317255759501160700012746467036989056118287270163323190710215680254148979816316849912070839823022365997053708692883365025419592836342062423622983971991335177416310271309193463498942684132751000178855877614439634553815901856189510042886810200754494065080662574057634872015241330072247877588240074180914636623185073627563381133849476657250528586781342657337481605816077979114617147545373241213261397168635945617386333214133054493877541376362149599127947601913438989215514622495489310650996359841143311062408647276212608075195587584554888841973525797065843102622714758381646070162987272050564499383670215012219202298588803980115789568677622934068072825896233118990176135253024939563411255205735441017103019088813910195436912617796802576077445268363853931415220979059636756203346834921343319446933802486582693869799695883100675270305090526620922042684844909444219672246000305513611222531010140333360991382401358062001970814066966824205736252276074917690374186518540771910700854292855240070920663440520531044035119130942885670724920239850842999777609304555428386598033908734967744224894151780665286311633304767672239857327718917698882046029542828053274679754665348051908061224964418720750470281407113600082099350082275024227936442149205664589150776246126945178962789885216865885756630211633253712972973114405732039068798277853394849042560355232059831995105690960775565511056429258346050434358587032030444783510180989994764925053019748365343300369675982824988306066204246441522133514205413579609060500790089746406982696931389142123494426042505530736204959759480868381614931847203623755655081420487488543793825012912742924823799018975909545817671737376955121383356197013344740260513694282884602820531774359524778100100422710962310616586366110130432788402013188714132682928051847825189985689451612461958831455888711856087349592606858902564113681842790436825735016151965819006190371001045197061397692776476615379455903023961365892550527904946700434404124304658835431943827155633608747292774989837789624171887474003634050950035168546275548208247971117977495852117444127337458652351401419066474576417458216915549224700968455295227632597544260190807164363399882210687929748528448270882447467687671070644353549449470557433118553996442084194243297864060712295832161428172146157652039749896794838716096391978094632472633690895969714081661510498659588918545741219493214516357852284411446686449992543861920247924964736327234675379835056187455074624632901716879192277442440492330734019476598523211564418921204997689365913175097207307781846839503365383922998702371901947972759748512278935463470762385946830160761390583920689607755004557464586258333231621350506602999470909647779790602807477806760397500183804329690226533342247716008773650988588874324956375497982257960093853058421983477583462654298137106589351081842832659532950399314144045898853627192533233518384751882828896377843048739892499559239693734198492102592221234292514313175462784048252577580797734290027489456314496651304529563249822142728625222577161583135391368182352598412157558426358274198025613036307607660059146239384275377601463390794753054386796789614807676660056494654950903505069634015527203906656018148438622955405817464116324217500157120527810700029316639645573216029119663999288380803035225390672644446835600610917781054571706868566883275046942748766107499047832192610485551212215109784992326430197961701781287697173869067734841913877459681159526138007604109247756253940069620436538102000846105458284561913549971158256462989476624566841966216451546614965106550595640399380574624367329250093956020619789223315194429662067586805453162015389143393193024077041254849734648401666483089008136289323134823011023558296140531936311252999902396075886034357861976047273759180904769809997414135367060063178323939659577448438319517082545176589085949484225865762684633875527697179750146894952221505775939076571200780610422869376803026472810356951047578917916884302592488063105411701710390535635576602569561886785148708040175213411405589568761167302928959749350452105077132136158645827852043095089031274109257863566093781815151829380097885268805607720969018738115052702934611245699468633237103796652440384352016267864816792788378374020641333345738303459889112251793454396304515770370449240976645933025562214905746547817049106148149687348250201835926608127624821040760767380389208742897562615822945608299413114676359893236416286240957235625406191872842296185616246304241471909623798673328130359993053369178739540216359510553098774083466354472991917130484027372013319832399204601249758333696361752061032243086205750483852981633199042294733765640683355525324324538597439900437480734689994913923707946972594677492817686219578480436828691683396549275116412455757761728433268320860805306044903900113715511816450173761436761502982117779250968589592039078958872793791606224769972620813769325154868758440243678438621718163335393181914958773305868123235193160206708446005197448654237824276243233622290813705685677853869541749595632591893631081796058198222858143686123321536944116759732079820799805532321229609894828778993250189093539584993491067269504750306212742648779230903193734384891928793198852546472980101178114892091551646112791412243745319462856271667692754610842955229979174704060685747203382122260243299757892827703542998763777860953547453183026721845271606799725287880209804294909797539698633520002137650295992024699342957864251035556998422334483492174826608967356219902344484523812689348570032801572646290473079655799041126862824589205021534480939583810896880674633360666004919870275494063451819500355709034543660183716641053833595658782548948986223874009595231262599226035849247419824265315683332035760179969329822652029398542677316416869896321259729840210306333135682042759873347378988469700937013438662852813550565179044444979631986153511497186796851243787819886090814568039546854417057029537492559197761080216778986325289816556082581625994846769318951238234467120143447607504033087432680927517609876153592883313512506394340202076287983931256189537574473546378887294054925597744235301077435956959592960518551327972433313994082154699176899771518434130688147463835042769187558079225320550922344483281961491105544240195702923763836057257712991121224805922074611413247449661186708738206351563421051696256189798220476584915379994109398477250129061559545549793465414390057828924907687500715812676719240566400921980132256657492652431253104618992687536002569924576483557107762844642165689696738298729222338038328105012651163350843455096056286632517088224112174265732470953773029660636038630590409467401067856700678085881822114762513073288718685821695192814797331583817556205052090406147785967284900316023710090580073692679450636496576634889801298978868126546939528848966106633607842821749485916220784391532013387187633575990000496067648351731525571706472595558359072724274927518074112733723766639783766506025296511215722548777529456753961656990869646237882628673608862646508778962201667969699312154377675264340082123415816486909498018417865671155752956208031522820616194578235312388147001955840815367997299249898176684177494703356567888957473578913722315167532706619463585951878378694605365802695190871233714456819205031115974877880276553975942811052031738659690902583743674008114620482693338062492349263541055605158340858116501541853887075062696971281799363033645141560149049205978704594019798083942189976374365275028373968456000787869369249301054381592725557604801998612548677623664697263748551268393718954673037398136332796144053627108490438959115835735983384434185770362168902088972338347911713877878363561888972522032023411412818787447601377155887450406468549080803576649866436827832836237189430882219418629603073301878030339636302827029019435502977304510875070556183268318160635271115285432813617187779859346119979343463964084571788759873020529594630556990667537676086658669445044859926516820109295131282958842029456091735470874428309597103172158716967324527065305005595393317694187840163327779195908984783370327832044079189702169309179580436959056871159499652439721652393660978743209079765393683191628450716425530822799511251787452305378182009103861873422673864444636268088691026673405687924858359874193652128874925697801457656572933744057663619206705037426735283562405373069539083466021774546267625968042367275340518118633027475458641299805224368486455268643663561970523180261654871607715211053813751185615485015592527368490481553682788087078958300577621834198055065474351762867979251637706579161436039707122613712446577935746213985763978542485482437874610668773931720675667408744270474148026155154620089062484454848141407281199880193241669457248149808033955990961195458993058920864840208728378424491503426819360064000104065025624627918240264364657955500797639577045536380702386426521093413800473305642680184995151870815561804831267706662210310576041845276735696785918390267050541154536599066787110928007704416868480969470300081785013530882474817117249517049766412364306854079852784415362638366998911339997122396318218817306060293777890080924221473207670152519124292069483852806894856751246890668385620905016074473664079693650550931969449127893780105519407640538589685258852656577712719625784136966334186465233852315718779475766937707265343309483417700200460212812626501504546233467755163097667033005204824617491009773965732319051472963754839611033029172143005895954136810733598412929108744333791983588364212295379604992597425486429547846776024832173940965648934267578108023676193786006841757825421005408507619810593454891447127276555835379710221072018237372297570898939370511949418626791354560775133426265491004918127137283295151535607551114961150262794878513218641560845184164559036217221427443273449852270358892727643378220855367023223887351835227613068828648836413989069848719337643089383455654865258587283737514793570304594800631294533809683396138278389458505386061087405051894620724368847726543965800861665666177951375379290787047053475943906465859792050725990853360377310215351793095218433288623667642511475945785111449650787632838265626278889070346052788570376637617399949146294214472199900142873942281999841264857289985337000310992554151528399914357260746322641197999918768476308093569870975292543804699062012417463686687569799372267255622536461286495304744902413683014132254023176931006570783694869519604352844952102268853155521779960054499884721144233513884230762318010514444969709369801742573722631958063129427555398343217644262132005886693401350712067093090750259027537415436552339390476559667533318749617892307855823567050567437403796145254967793123417783172237798857145078296604571110020631826258269830850489860117482037701320203505062495211331847183020038360187148348560931403350876027878834479084378962028609878085542420930207538686308580707588548547414581430914085344443631310904627930828605623906786530462995500012573964996170649944015349035947751544224080600800412192095406587971693331007317114278494023571854121298583896323803258418067418532168160916935175199208378104883920187843388346422894160525640138174949080666126739553699718414899889085646832722018383799855237144398429580938009098824597144287170506717405307461747412693350698978583108337178062757212666147380496108064375608387394428270350225972306934108531529119546101470116215101986200965323326260294528209331466572671694216498408956755765270680072041145484696690470505330963660247161435695156786335439427889686516183616504934036687325251372766198064907616355485508573114693011705757506227527723824970953164300764313064071775455710331529307575681510027202619362129564614652931647188650622630769737695081588792121935733030442582145961934117982848588582163553428030813428883879473634472338915777786491924603570212017072077724021398187313447960473839044732572276878117042012850387853537029143152865566295789423250414650094638949257638258908751282955593332603547489569014762910515359830285647486066415485610097722894952861506594603589898206939546923247944296716202039875497609559750278633693072585210631051191114850485217517262152595025149300725128771782330745043157608743180991955697949520219743344864963476756921776357689148328458556269311751295874143368301203143491419344838503507438182356191192932213154311292088830643439539930583970013986859327329697376122625065151512842820146284632288020059958125229234464425456504323544801977388187123738164745773755231858304725540035351842608625032168389994355772656073611683965068804800991246084680311320325089588577988328503363459981265469658657773433782486844065687486583752082123688744749681598582041632151993894205068465423302160102851933933997650316993083285905420479205229363901265427341310906356506447310855024851687294422193873388115853490214535433305191773458779874296735590941847502059440907990627666201248163979923586252360270457354075657138522709373854797370167681882289072754802851173547628441088552695609130560418278065919055236037011293073408375430910703164460353377889798797216552612051526229089550399376338154933327852581779124019910385005101845080372584728302770840402977413069094082431077310813741544718540863805175085931542777024577332309551369684155912628921575409853141473550849338686708326957727967694353932868287519604273840721227185503137329785711238460477190576258518039288944260644577836663274557570835030961795705560205920050497982870485680148612384816243431791939552052553831199441333742002742181692537002353893511434269751578646912306454539811738081931759123872392211993619957293727453399675135686676408381000571251594262360295523063044343369411037092218193206847167353333548010502050138823961541768018730239858253735652252963797278161501415480860297853140372746977520291683338590102145545723873858876627881302847534407770608362588091517009202237159522553561719168229808180112246515122084416926765446009207871771168050723853214335321360426195606703991790151913369958971412541998050492555224517581621353556862381230564399873906107725304536540011689369700984289782391815469082741127103509781686695008157592637143826137468753634241385671690672817981426749726543426141145647434118644021809936725450356688065769602411350869635861203074815424492961754243619636109313500419778023085132005453562926021493501285117673519556032304940270596547956682976261439728283682376921495922641152550880168205000697908565638629895377171249398635511340795079679733820350964668083652680960969453953188985336415268538825621353453252022901171105502995096276911740995970307253235767565571147679094693206476517072234028550494043073130963647979542104002633297114815670915738519825659632010846601572090596064670016288612907104081574221764910002839393598561336517403564020582452313487801763146031758815595749884393656962566735234736917767741578741553019394417920416682611015214683397674241137462260183968008597363864418660030184566617293700757778546862885756497069548418212509425497244333346266820987992593023476429280832988609772611115785515832018370480995680741651794150149626095283379663194728936545976178997797619865965621184349837192903862181729296895044681741105535148214412925851186433464093397838120383277594007232000547391736545630258541150547684138530491422464103836505435328143178448429327470446419337824718330461673112954746676924470937822808464112938732390603246207046571189435820406366619232140399266822876145965397119777569712503679662450108438656559617851604943546870200553720462715389874035717266644807028625546455813783806465690139026968499402132682461045739453610361764525565839942251377515476469571984363138703189894952580796807572811985159301636500085840138880582665351983282801363898220087153128509127928817488163934372129731450774005558866428230429046437887074927861290117248005563565768162811501237904871901309675209522213964610934471670091243671538242440159235578062989827668830013472574624489973725559382587063420697286740792076219770315594927489059200130451135132700932794536284740829653390031392095181462728883078231243698749380913896661013849487500685146064011537407853945345718395717271604013622457076031919431375197330820802006344752350641234332833522549282701698781787606212767169573543066678155768622411936094388396353863539846043347767111324050316146482252698820902373754311011462467918252553069195134026339991784130867694291602432388437481033819841454702435766052331339045719363358364681202353259187922805773750365944595328386579923991142480169811116939856735496860510050622357738498086234252945692924647253545672171147162309594004535948232725253092447231342024755803657212492119298078914771494334845602357532686413361438332210351308096347082573419006277993356180709076069212914477677058795793386775646097070472377570937318944725668637907227432161247881886454349331214816275576574103809608533021797863901135721383359282031843423521703557257257827617362410279122191139596571960162570392520144600271204908805541823392193902060298823664798665701977528504779843652049187936786958402730979588642924730271075614136636871223422887760425668290150316983741113075078883358646243100816915525252775187794019912600721351867405530334798652919895721037357331499432825687651279897072381197322740407618723065486184748218946318011396494272831417840834570029422736876182563194964139580304338970345638350288451682315819323153578361887075225943338473996529388157571924248342244277182429904786490350958326558997698006760829889655758178810263205525534764196392045077201883956008529338330947607968626774445946534929599306076093114489455069143576305239667703326679073129703463843013631843396603173141895890550695951430767356967164829669140685309897377943772368680199722799942871347464877490511996579064859887761191631132282022827739487211360967083135387227582978990521709042649720388591817421998436210144306774126131999771314781225819395797724825890327831315354270167495134217301472180054453266480717972134219130922889309343916212767411126718748109858829229217167891918287026450239058832616955607102179585786837664506145922727345867577504882768148387994651522175919127468772880999236077132642649441524016519457859834364398443496375709433050399734028397077791985053499798379499997833913680640132074327328148689431687509841451929920569136000412636084344295140768737819319326123327804496355802097691094920767926023774692279491717594233454974501666145176797547247467831067018450192269795985409503527466718423805521691772634077507796664043801464568143168672911747517249294972825367167836521102996231992997295810021150738653172395052536056475772403838350666137550127436877153961852184039663408489641252277179189520895460112511118803023181053122179491550162812873844180245744745395211893572957066556224386679526260289329822082816098972924537446487583620119141675013832233972380155993601695293348052626172477988616940774369405290611685714040105625344075293581569725769662389282249629695811372864353049731522185806213410356815361842114885433684878379106344405970328225487081390282957548190323899628780226775234154522731903921718084964636121687657791147733242711614470811501647232274047821900862672209004998424553371825127446727887567297089163699128223495317921552444310090999911792249733076772101932498908726775412494410438590615579981628735135302788976403147783739592609387298543882090642192449884645903329006007354079098846529415110575515635615122674977536856138095127068894603981513103059989076354712580980040149382301718849896225228329756415307841966276178877057425953486780052000454038965595687812674006450958783371214871545299725503231884315958905438675745662559968805913622799979373753058285481944400744738520389930297880631400035776714249328655169397040991320819950599728058570507534063452944575636612829833481377846033428046913828625777819468403578460058842912910113584988692854369343719904750253704491004606914875947605058706377282390494750278038972144079488208906417001683188228554607776180350263026894217723609115922037288189093373876114523692135179641288819644670097478813390386881355913639481199677715581123596421732924983832831619000690027854333319131776356489293914089634993502578817105923351427488736735653066993457103881458416717141204814002618315510986261055136583508993720634451033696698848043726768554654389622864185868180877476833506638663865489887163910603020725886883374814743673870505101900727567605813214675967322369939645863822413090081222938124798228863558822493435490964751828489228171294461952240833125004954516206322484264969738869254497755195414676607128797513470904990981743443020655976254647628032886430579947989121250656417315055282426211451471265210423377282786966183268233995459504532739024176628497829819802971290494566329943397197025108204480047015449677627634361706299629589470530612246949434770734789128633188359815182531049274221396435213107996148460416033244887224672504138464405201986235356509254887508717400431288614089862281916156793431107657531590737308701299659899623377817863788755612883599990823264624528186447983643311330818351237419533845199110943172359933134391645804974687122451624937357189642921928112883157442680857491154075052188377944462187282003961332216066845658504926034688037367868681462175547634734425698953570827523843751749549607524728849141429169216198223306398476247612426352238799778816370755938144884128823790375104663725922126742420280196619877379182902838507498671166674534526591818318773538341725473438219327655915049685153120270812742811441316962011907604712228063304423936277580898717503881703269438968116886189991094395568949667062309895385281577784242442477514058768264849428546447847165310788997977061075250901484928541794749109404611008854673727021127138448158734853256361236259850237212092791818275316766905533597467794246472324306877750469751767203754871668198610167011796808216255391747807111929790339936603278906624957779460607234731450699799801400376028716282399823526822689326244480663571835493574963498027325563675547339140184187794823246419347875413840401323336159285688967399584542976411203125304317661147346121778890085465111828663455183570738891656043211266532957013814658863523914267315693392700155162701971361733897216255015169794887089582932591502183912966969020192678083151767279609047349182714006916609407811132295449963253372727130870544559949755344078460166174257991382918232071906341611280916796343467030239025339956068833618423587383229116738920529751620809005687197561376585291946177048310858760275124655885421216179225641452139981384551328649259845311463587877028762271001379207805114039938386567639126641415598566324113136862016305507755978375637905459151113079160976683408522669259976642781588070070973236586426749053244091764347716299144166357598011239870695525828400799418721060959840069688659279046434962172005541664214697901396652853645133855536659150883106014504747591609770711405310445202520441882687180267610403135553371061272021631523996944841035971380969366265544313944585175457462979205127287018561681443246897148527739648626111720668610680809475342820433769240301275023658616923259626113859599164293721429446762551364716332391062158421709314931395720052753965553110895455773213032543085293354093891684276071603892457691418381240606138092528292777554042934548097599408023376113559372924200255684098623557715751345487457910420936066485540468881888773633976483015174208218543040828260207698680109826614317575987802391660770745889164243274170755957370971739517340118003355101603646235117732851384172856810405692930655734251686471099955946512886515100556090795556648697631445392922996241497974656444967985511918929089180328189023818279519891450561931203023300710551390759383384584196637808961295838342513154613510021094696377813861982240094100575809349500112441011929133881845652797005701909617728273811924287546906395447909404329068357466062325703841158996173282048271860110173495108694582481422616723798992881507876401486336025449583802338817102834215205593324380642360093363121775507058439856722326584338189232676477329870843397970766285027067774932549932786734029012692467090753306494440666779252423259250412482336567302664410330971823864961923756581514803039626968280412790834764760845099928078753498948954026477349838096520971091366146456692460247644243060297448818600815195425816511389211492908670085194517914336250069121917520331208110845505157184487961139656391691566439382506014874388926900882101256859899600410683916849597450786678767878953866690724818541212399118183706651108214075956193806947656195607542659409659947889491624757648716763126974303900433895180822301183611990557861313505878424596743577457139035466345576248001998902313164392836951101211898137457470404197610815520768405223590643991324512248029419363630554608012858640854428255310604281583458492846801552822961723898069820673113641280962050159687349209895112525304853757517756879669393016556685516559825260880000088783676223410051657574066749070406118621372842525405946727017683502869635568955957193765994820150774228717377811404807724261389725781423753331923459453444488141699053336257372020101564861249230225809131300742390664156951006550029423407993827917439217567099134592946355866953787406370965565081316899964928217313527579633740234002923187465096531909064031796063008617290830403276522644325132584110252355029184786704468475054457246945668617888257958211168172578025888652716636672848868948438525761145368855534610953934058690382371057788418207773707120286305439483736215978301461927705483460423546575588237733644665210320044141670645243653646404228701453417327202723094341191835104797671758393700783862746854091491344504288491293392408256913691277847506611030962350614039247750238528480907336399777847169460985911258365974128217405688321287665552100493365343820549886268488714040299780031716266296637134342319600563666119742432443165081534180734244004131619766432710017482139850423681248144287135690110187978462116153783033081824648579530069383828087766465500352828275966598860391267970045757355146729530215137213535977471199240219141359820517545201059627606125988812586304040441547730113949973078454021067929674189053607772425292965680533879004120419330271402962755344543782950151183476392871811028878282429215768901811726523734884498920458240108130341235330124469422782566230398453965512973978498095442721816102800315297800463568544354054127532024672037142616207821207494066755051088996548297066323995860936643282347415312745678022117775771282547001721888690612695649392691840720535067881652442550920746182993553385368279690153259522992611571562775140850650805409824251286006396707512068321224853380783004743297463768997135209895812335991899745652284113336868185693220478120159964160010145258944756101189435558253883602157477001936841282849901080422771201367230249668432384822202992294044567506064104717235463102185593538294652386304864756529289500977990104982493021875792549348295811206270632395768864782915415000848590170279480544468278462275890975546690822441721851140592179806647193764928837401042268094194177514146576685248948570397082048058346887265480047327789215924204485623403643343731727041488995332151660183401339152769060713823835921830006487703434663016191784206400448755146961758799760547290364258838045080624020763821896833429505904805662280110073778042181856150776559398692733542066312195799885277062034065712083671506716588698636073162829800430502488376505891221754938988645399393439576162122876946801935755084571122628030973262171035332987706784819775686493530949395037793312127002582189986723739984887976087826394447547323519717792392216725147879486332550764359145453799934554965697910888360151028930429124039987425051405561223615686880994416259238913235850138624935956987202680033283866639151926973939241408932441458169548932513231536238349066757452571690363454203584730441316173049556551237850792237151218998365667639527125537866381394538215775650685797258750848868339274868315886708566593110670087498605714970047103045325490874204598916662986458011433794067384157834225932041334659652429796896647131138828401204883344140079875647068236445246879288743251350501335703243062513022384376604885829188659965412248509765577784400421497988816092220946783267248069441146438737081939390862192104632762537601738742327810745024388390442494759608238915571579786693475438419278369907011398790346870632934533368635148904611461182680056203118076131963004564567004997877005568952259932466633568328764894051137123106173633711069918518610535878149382754141902424048542144555727433762857478419017438977081062575320926871085233638292429933914474186016635709972099915482972660821281329033989640913997139047667944967528392153313982965732735703745692129091647688292151473711057385131538998391875394155078030584735334378736079751317056583364835120513930316057106389262282137131681447882251183359384438902699874931067030061025423371668081467617301829456426891071460300801299848957370255219787935648930727553274113019554295074538423120238838646789176002938968343306802419795102632199675224587584001694592889361204361877527286775710428023203372029532738758754324644623903267296709774733746103431896654348545687679311081872776419886966208127385722697315109103595057949432203181974581807698954673408540645500230818937593788239224265779344496407973704856749329765356505231751204619537733468470724347659938003031960058051686250427734637432571940915556432124402486823709592794832989744547665658321316997788333676941496698616012882459966378382410774769583449161255616593016996040017041781682832173593537027359430696341315097811073051675042087794256827979332972248299397427022875209386185084405967836515689000962374916096331566065451891174956153513126725558985972416859324839126782643357796938185391864420901908900533920675714011218376950442935265615791373699910333042005539554150666781254469122015618488943594105153029763558303650475474617837819042683712618990765762810868814401987650980380329957227052637197550545642649359326556353467059294382828385718884555073270444991682533745801665966018244614810275235224330128535091428709273446664132505133430573508836890236529977227041108229972695330926482332176370969776995088261988852564712325995945975499728363207663915106925862310189502093429553894231392838400196391283085947989271295341669079131434687782788517271294154279544422917078473911973876341706126447259450798854924517240855353439714842419514439686172770414045300726410511180218030261196254588085294854384060967421753266264618154217530744062944489171209133934537168721545394225219097079919480976214445017490585371753133833527021021540076955673682835081422121320634817208213047892814728745612517299562468807421667372500568306236560776695716747111410840480617630216450964803468851953157577356233612440214081212274068727234140293602622249071762904180684016365714678151597974893479611390335995243419963522748339336229383000074438281070813157457293597457915672249447009940616374434947836386930922015141087577565153909852196384237091250258266289434978371261681588384173505330966042529243628736174514409559934901311016958991338641032115879203346531301296782015296074580446115962313308115692147342919163170501235644871383442711257209035642629374573496449079091725236801792808307604803549897482348540291640702569831621880242096635577811732959691654722522145925275451873678234638051293615059142529457279874877129910757997867594180632239011850609536375429910377551676257246611924390480262972242619569767734601743122469885743331425171646724721562425868910675267650891258631642838688169385977434637750027934759528489586689192850438296402500695924207012206942363012516746996152864040464373241956145353550118713324970729627512873854829806928368577297869045503711851396721012542122470330794704838971877256665944381040206412501600439535862543532252540772106508649991187669216598341557264787462618568306266730288368092153434712042126636648021881174700026416708427721119177809658510434907378630058823418826009560850784841255442255896866861552306710698112744759934133427773456663098115885851706709619259927542641469717953164400555344389216051973130714867693186759430914320765248430339454739252495479408171352781139178711742393708923657538213166812529826989705412198688273182722374727530050869342096529995474821614737540671450169445588628171788078373014235436017573121665028749831594149624395318346598927372163961927412709285955196318820104989384482731656241680605832191101788170741793270115000724350098681895682566136361461003528302685314347546999533192445928349287768329687586543479317351874954614187236506351398818951710402540512541066393377466640230483911651865873006737193600795455442770680112791517710554425965376698192451667136119766522985385714516778755572658465230949313174649938276615915510416882410022753090466119029796684322196382253309204190732642963244839103811107110685212286740712524432041653883735133134160399430520148524834682551441838620026619929898996632632604852946915595026084510919265337448216363724358261428423361368617296639792527485560545252680845413301430742898863797689987375114860510735263929215758427981390547860307001808109340969632041220357578570233594191907425206110369055183382574104821160141019903422594774450678940469168010060912705740463902180344639597278644399404731712984476292942112628334594224656284589698690365837677027694066286247948752277320324825080428828723205132424620489692936767743400319550552993698385793786354126920493494926484231793577067493095924312783321186407838003253575797100328050405707476684203519514342910034111921007264847572435548298935496783274282470422703763513980335843415381594758053485829366516318092665003894151689873125462063679493373603599360122644796538607946526596779487643888901726555496492425151837263654459494723475702482447937324653799448156117856472899719362921774728892130465143991852128848357545891921008236524527857302359575859153491476321974317669331385234860590559758720508751904756645971960651607243518740370176117768044018251025421022584213289261825498644804464245929585747830225209413328854635407480912353241611337122760138157127137425602285279615431378026205353928540886799679258321463474225920927557307129919168206425315051488719584166713401713933609440777297118038385652682335346073718475464870027983504941540964409501917544582003461275185314355364973512168117983518958329853051529832671058550564201287503736719773068670133091039501835075272105121037428439351078086477965018405444754020256130425334522626827809474296623507957952644987063658959137567239077138494027444141690092686854707017284618327744961346830459980863073832257368815392813686675193437542504952688779345758798202057871846417995789593970197301412143980637014587532153549223400471612457724762420485012781903572973467312918240189009585262518316464098497353326445061559626348303521240378976167462099366547302066213052131591634434749617436944489510865518721802057224734650899890822284688083849807573923783196710900891417334879727266022240128486684130853802721064355805634601853390371586919974345638241822959595785381099223818360894075690680076654824076600263213125910916119597859725702222562902482618489029308910886892894189490909763325358144832250382129257711236376182678442227738805989716334031667507601560050538984297626258312984484784707126693024296437836583812086088107056266870122134077565323127869884471630264680472558561867458445989504765969619844718208563000142417502979715560830126400459479502062739952030665480861555038482941091411354317494522740741905359009640851072256423319836604739137579238996344801715552732586334190608360421609735598284605739901166345028168885663545712441499605580988365577246575928586156536715330377358526376480583431562375038301363405073520188159934197019013234918802921829159074487110283175167427098311867667110642034119016161318033148562000960428585002473121955332138999342134120638494178194350981757393275803041279599978801600659165355800023318890371680639545608670127662074017978522019222253153669276663032714969978140609705304253782790257500103020958272497551885661974694295853447809362327458243279461404266747824363948138784229072457310861767966280846791918769113081061778405562862653925524192726846864163867367539828648028495857938420863639235549551700848590168621060223354785187775899857978890922052348891573313379834163008322719917846005924730357550945416305381432344051228672969228984293803380357265505318435412736757341683010038488432283374491029332310067709513623905963421489232992162012514421436916539659274627374857122493812611117606043564651470032367275907291331745156644365144859623802467466320179525770387507198027606117755329296611321886813231132850461021063548832123154734129090708887301784073412870407175302346732259411018809421552251872354924650307220831011512976176210666447613765128538185230531455654506663143821055178562515387023298068909607170614546266981650641012562502761023442260774760190224060442495482405039081915170986501787710655150528756551253219273652108199441098853755652958113028775117861397239272123575867678057548004012617868562660889190543562139818896968585778270057800178456404520462448173436803867063408136757216536985386518215915092586080277437126078991466190978985556981778564792625928782340824459859270962576226215456936920038844923348939917179533185808273044899463460841358348410387263578782189487978179163348759693805713675113705166568401768627314216165223654453999580979296988113223936106567291922154940186349808045302550929261181738783511904127843158511910271041960636089030627810608824532036575013444876850871404540438642217266385930279760575906623853278401326458925410534853520260054386447165012938574717945822683774309037034282209474693963127995960889943619038694412315141569295521217288315490532131233578325982311992103302045614309712359238554497522274926538316387987656729242677644767125138903154982984255152420008707424229442009156876391312274965599251514751829246150160059686869293356975533070915730020855158613579400138291549699508329905688052916624431190537413220873573430484319638384367217371513125075546254546998193264246455281841875265774247074199799039222038691742235325425183539706531842803995766945204881067672416400690444623873467843727000657544123444693409347285582483846085296363875489765693873790555754985024315210362668343151389237124251845248697853880785951181185800774145249603525467125043846412238672386571822323497265374724198491717100691204818182656645672846026795110176412634164361870637751887846090591846634661653372561602942122522321963288995899223846135758782306356995788489464253474260433392948079315352745470937445877168101208076139353152881704203320754244995680451698988071116844912788183893651413804286826398928482302732438767037289276343532840576313173100531215318307907040311093610699134156226303612214804731718016094073755650173061344734801390537108979141115081854226591521098416866851122149120779382358095927253020844806608413304027922633793141220662509923868739152168737894971288272556502910212747833231776274927350769088279607869116206390726342918017194602442846558099196275863803772172408128043251728760870361078259607096453317870790455691994295911465884529433779493008902070379792754365512689616350995700244987437668983902305590945848388954253553716409679715851558090693045779554922885425452826966785057487980646566356549185484531912826715902941356592015186895289443220520844228326186757489538788198085432160832115775029146528788721841847138683325652296491519365203765670134051203439758429707621737957079335834839609166874584769730729936700459766387126250537978901123094808490988966485445106395081520533480024665725312932200791700862860520882021118358297941134459955701876947470035065211570823792132958966351126787207760546263352748763123229194657234577634548969979362911599821801766878067405606480978147901845976806431919341303119433936901254817237035073814626561313554762092320271721252093951944143770313988662298433589376850882567984771075550936747493967056717563186147975975067033487542738208648800505559486816859261597545271051771963967749132602625646098186506075466374141918955599877844798614958634706218874530862182246069982453567790029936698113259620861703569237795300590630460676813432815738183530777730370281435673525310965927017498158470812739861497927223342183694821204289336844590242825446858531170546179285046609996750918960288354532347847301844905111425496310904732544488575708638719788732947679270108192028060906248506492819211089280010027751555383262598630021205649317896275781509026338785528665845978457528357554563121461839123682705472836655018315807512314258090113316158108313380275501323484447067292603948136605982784102128562763291081569484560940821912356060315300498790129905224193526625396613677582131354720442733559302118557356837210075538236480432486752768159884284829511811698250711631490322107084197252242764121820052016703765281628339123260392378069351088861136210708646537381661912868629128318230317123668430639673980636954865129665089054091378600043325506754590259155782818850668028357387805843127070966226577838533225577247876165830657967330084895540887405539668432385975643959545896471738912964825021050974998572132969629403775992235582056582305954486554957640165812027332378119148604604739145355644453893964560030715113119264104363340672721502540186028061050123921825714992657024770722356530233864089333128133899731244448917354761251977786760546196866613362278718958035336984043597973956262220006307506952912415991592375254868873343317912751023690668085048116345686202210925872733307423268190722112457819401151186672999585671460275047597361064859959405936224027297856049528829793054621412073743772203512647231970391130769471443185492953160416156588829781261695647660636184684904544448809430928732191923681860709706664202132845458994206916620239244500588196229205308135445729644198153131271618891252783282948862401965324104034600084927916873249230478628781005759124076575758400687955744868865649470212127281890773291954518821814665904410147189445016877909457187709537524466555462366306263570403581169227824823608807300063665458486718412071929965181837624698020271732333173853574181060719141826630181815166382031238602060845117034532865513202947175776550293818030090467844626087764866545791634346542608335694194420296001617856406607562235609056116755054991043363655865800923755521727086096303660589311656698792671474955221613638648809197830155283150523448477265812647775055393249028689123268194992954187779831581909647422003863088720411374582118179533756759206084047242574191386569539996526441193402508864537859773063544754089947789310438578910584858864916381871274634903641814776556789727265922784550804131072479373780911416438434315467187230465469400712660289272989701303394040737763077241221908636184844174368816262020662264743736056595493908265060413799218149229949379548909162819890918685611665245340412845578686010574725696719627599190006576963527875808634071131272767344878894087865704805288829853361588137829069148408795169127107569071900235616596674376353424883270801235302365840157809424829278373394119158919682418578368175826856755571695244826198561164609929835398148081574918495013094015349079875205268442000205210513290324582427202063302719741126535726966382473034988336919047227244790422030493976723461397316272163437673577276821996501448233647068606046199581614730368608199392420179631727670761630794805864693376337775963981842756856167528875170086062366677328494509312552078136640743419034905005354494563453815741446100840206144233394437971293283017446965458345330183535779292345661239996542755746321265948053845265952359282048967874716999796595534742953209646165280787125680179019853151092896094843830931152458546784512508238296826772995121343944552108691378956264856840073339603640067481784902065358392599312297713731124559868673145642935252119544885049826566672007226076234209621478327488889725665283694673124309356994283480785593620689037924627938235785603901380485423281302464262989568667468470762426606659866178357777193021867737397279245163127122462482929416159147216150544207506264238775221409860836457735394762827015921731883078546888280188540902085112737943074620472333800418115739354053872290951442092220539261023028827737916250481430676584099577490776003035904256565918398704972908333471442786652077740689673391330236911660241724250550626128154610099042142284496851641909391026736331614003872130451704248920166405633822930355710882498678242330726977728886877763682264577817645931013514461253796654466756468466686744098927334351113203046653798928942354601864384384460186808467001678257805197514704991610152458000087065086875561277316486402402560793116718832601578751508304629991192202269051956639110557843232399490684105547169416193258802789364124431050507973539286818906059893604308542583700129098755141487736916682059495646357862700343106602005609112007079305073662143602662890947112443372421534531947872715758451454237376253464271927610068320225826688174359432320236869148939008727871280102053800590165143729548049426102662649514207658149838894989820186696825570360893509444102762449352325810093483739377046473814508915029577124280344084737815726002697155450216994880521879106861765604337687441320819712524748554383594492906010774940666805954760550072269522530291460976308478093665716858224187741449739165409399804062482618206004133109834501579952034579755906507407780954802857735097808589115906922580549034338758092330727905555349174588701035034606741250334587279518201830934658486914500329052805707673235075290609030447878785307647757151424875160875805849212140953640371187288147812309036353714381134850923328671918678618454418962299750634062701196596859108212379230171636252969406820886901823959624879815047075356782221613183016879667591475659700672182557313806390410812329197249803855538718715426406580812525139009149811256341366935788420396233550583911259652534594573437305321370829793824029132864581083223092433407601678141430593051210147460733166222260269941853717030492228668523004388952238982376940940505098772063522927807706428104672637825183850719175978461411164244097224978787266324663225866819097894223321668159240870768582260674069151175832367325133620146567372237874120776266085400949104948498862060127793284657602431214203313267542059208177069583841169026299457490197362739775112960090253675093780565884369970711499830249805458931427330256842867915954263740534451906981046518649284634286054297663116807240821122535816552752957582635983736448839242512428632631778786024782051299711886673636255016746752364273152294077279615475893900780728114814562751817485422737769004668223994431202838363668978737252406843312857617617779505219534713595000261739673715515559252153609183424175259892743875612828936390561697498926044273647153449235714510964457668123812541939579134314247886724071304293575316586274496351814300408063030758015974797331339022701641230294734443518431871981756069602252403374755168925074915667646405355782633360727827720833786161488232759958785813546347817291132202791116628065016997365404752001728999158770400915088351079637399732846241793505994655285432523691267389263241238377359191140087090169601513166937270675951205469710196145257239916290795984081567529606898180180225259266436572108552400303996029380764073594153082675740618762232538411848999490155613672656540313175010008806106503094991041675870356795246468577477578528858399453319417952027885539899836790696455974098785156284109939417655550663497763369594881103545562882673075928135051223300209301159085092398374483327380567576314962557284519092413594753795150912318731213275203553272760994540082620606307624469552766672964800857370867263423875642522796602743965230655859300733309627084221258688139598362493349872919523460010518546343292026852553128332445686592970885727567948941115473634135901022385284528089737432949232945294871296349977162586878213657356994114991101595079970673346818269021498439732839296051512680951189324626209187647806951661641697963425998346606526198595927016949437644234890026391436192772478397234715619131140638758914440753249524000753043036728887784387107441546797118118715536498451067168127580436403347715563873785031143057667426885780061978494047144566705980526136007712643020889878668544982441185910744947770481160227053748136710828209145872748549894998754273019340694600208357741336698588020307149898424468709467456494172662660960665252422460572652857327634722978563512319526280477761861486424334090843082800770340919506990872534280153275039772022081964613306874282417812846782803239644378318996004183100070053971249789459604056422159803089886999162377277858783449895394571722207190821050824647625303411452992760645009572497253419502887381135512406137219413090197845388922968715012851120545081187600195163539084473441457528216991001492515540844807435756212131330377438070265948484775700187343189761432754250485025679402267232297880650237266404164806753855181721547641596808373452859408177361891412697877485343335845648997848281944009802782656193428982842247008844874460596108538060371981975772258900591086328981210111888875202861498076132967577579322213750484811448125382857185045009712086860023627412662814853498438999570972208094359260245628577183460504593844481751237732247764253274035679057564907874903424980254864304402231523528563320178121016250169750821631404105341743771123052699756158961162249568105226981091021757893691011826029694377776944363212546408611016573025387076729004080790171814566572842999740224959406967381220159535190400722291960203421706645812569574048360234473950250725580100498242190002550357811245047107117375118861957568862955271891238355806638837625094476903259753896768192921720191047880226343336667720279853962581011261826818160333862241776620590228852285583609776887026434422865614487415797195986344310404413338072720604473465495235901037942597814977378732396392508404307726410510925752289889134318138200064932061439955937930674536095197400125316361634167032951083909875684390787642238089628829306025505739174149428762706443648016642016952113668732155879775194453451547877410471866019730579947948534527614859055096740745083916558871756488307386781705314924864281750442921481436445308949808469654092245027381549191319053128019349820413618425738205565778907577559723786461897969438565838511599912210986886268955722903022809823785104962304933005402747226832009634326020932564862752784092034299568219923668979548821112523143157923466889836051476906187524891436790101509770684694702312441698354730079011502662396895812844478997902080470739193422862285084970221530200429571469317313340939974463368284062773595999611547100292067784351394208913835472643314387053715332174637774996807198034752617578631054186829526882882974791374000389334104727826244137936995227556322916993986172131990912296558652209927254968461812282645425696427456814424141408481441725387471336255444281689892588487697979795403335481069939442690320935406261469108220407166127258198306110588696754285255145926560028337941604431076063621369324220968261225948076878194172278777699822323371607049792013920316389039847941549996492776112325830030962829194134043495316553982439891368415259518790218263701511514891637680652340418736667360906860894409754387746400911442192077128330570778511087179594948469297421977112118388592539616939192082230547478362952747142651310571663587194820702167676691760017986131502991953560708566474693773091024388515917338597865032060054023370379632029847946864854433832318856513722711904831438175930755473106257017194879334695935215068275168251386460121839344245441022145329200546478054765099648456282674413380472595297608912155195711404056161958917951737810546269003172912595879128103724687442613965742597105752771101715898901612770463013631722386719422685099519484578997552026335700245334705834261952592046533662396264248276674455333386212529043815081477656392069178631421348610201501302649235285408031245241146910064075665200432598125298982261549521757283783643337068304091983819234699145638921500316670254566434113539553651432835604478709071743776741493249780682416216900426431818840772065142681321556611517414359943888135869372562092849282134426160851792573092327870743620308324918610337634140875774231008230338121143555319402533521075383426687419543438332263146679736952154344222133077926600493956211407924353955807988093274202215745171722904551055335740902669234968950401298508838854077157841495784542748431379111757182171160647997625378809694201972483174467974447728165762157707327776697912520051078005497026758247248281085828625519243023616461718156613349998522385901632520042687361129296979090270745909140976986855159014847361521711744027093074955016663822774803105044937192905367711440116626801124106779210699822817488512510104183342203703604963642863874161353097734959801585412231100831050804429161374765824300066958682878372746039494820079502478948276913281854946519538476096923052643116898146941327727923420675042798705358421706093116994449723421099329571406345499068275059181139506633201257266959048497402547090374350273098543376649415107630524635577040874007734462054437495559596989077908443194689296671656685948836126330578939720888307531648194941945170363676825626415714752325689140281907325059278438589371364994314463996488143654412073561934359446755586108377676765353420870084642713901736858451200633175427363293045458179225361368080828655107065811623151745573442686744180726136026430574491035126575874992725489102404868472327075445346621188397162203827730146267511777861528608270667672759463497053277096502452186109885003895068056652491974549311120669629518970776493580769353499398288510788169195009417511433218269875917388775987452812905839490173770105893613697832275238080724395049392042843396809570906191150909006545846010274229712047856208512782567213502731798222195979466147825968708189943905714004849621184503233641586008958498160238510472986922203655407282285830980067148020290583259115919922857073684461709181634962409172708930643046109838116350036738870830397148673137971565596457647094334443877924712193172459782990632056632849142937767496055038744387570475914030478648001341569674289019909469657200495718645192851192827200567816239437319155936521260897657289898514423851177295364416181064338994519543226024618266705133106716697055449115413100215375526076710491668707439326047924211820228886363129960882456649076109330064741922359740631040843208430270915038193512879181209232583264816601804647103042991457460785252496277579239858549575452348479613432941836046686365247162475182764962599226070822346978230612273058026345946983072126295629877686585561245982701550224202502591846932276118607967009562750024224313859113004598075787271860026469113259529850121888043216181492122121115924882607394401133819600538107099105718450670958413004755941997254350701513254600379177507309705131850057435234039636241763319540229520081361960277393003319044606387138588356431871228358848144111830557705235326507277534933665708888150003006964453970172345047920372746490195393373267717150037482739697868491320877868763213811676265889714337414349480279631821751011411518754029276847874659394802495063128259675237439272063381466246917455595757339918551667578336173526899374934477597266470684714883505840783226733392217693756604560804239782375811762310350993206678459334315580780403751495414147347845866846572300020085165798298345032680326572807252611437570716944760966566457611407201331083204699551946958388691273728078545424958127547004630708155415540652368326744316293307388818105261163237449340029544866831751369425631194428263177602097297805465971115815249048959056653341303687303271195557994199231942798892243008890698712609641151814853702962964325670635427051601794108904596204853765963867205121052487998372225970906159049372043307652196491827131136702233537151091296571942005884946735390736018938443387876579756525847281019886496832599262926879909270764118225034095853821677772026888132566751980732103526227160369335262985478380262200385328288137325868638345185875341742199983044941899787989072053606420309954153958488722645058712294880608193469404846630855142373611806754273374811494189204172766910871479003808655623272110822155546918336633570021686824573865237235770218474010666427295562856512797423393503002698887360421006620169602265224834399455304015868511873986055238297824886804583937110483118316555288658753759803793069831154948893889895821511942507551334389357527241324428371850369038390065626260243783188269790400782562021155058620429575127537678243638390173928428704134611445810637361472348757849676023869436911597021050141381196178887459574393378492854961622688061851346298593967049793772331593507697740950032014072253079467804755879286346607148695708392957460817737814616510482506987475260983286780424610560795776367963207744580662783844163020110945547823910440937369384597838557508935795050317574824437869987271417474278204563886010583977576127196740358452302816247990297767672943087188556602669719093101545366482481615231547473811261369728234298497959985440948851211167146635865769408430319930460257781964028860469447112746480154108388208100340483128100581539824600344131049359117170144670027920013221971647117150467156269543870818944581122436167072862555701718848705043479923488405018594678528678592813062722476591756742729122469886153642439967675404170726688306408274918834647531135046476561235867936228862597623974409094903094645456946099636557353465748560984558901704420286521277000861976747336492895109532034926135918772884040593804931689446118471921251297437934245503055798839717143943936906186990439831626952544385426822293102280318644562766790231379776072191625553452664247219674209790409979199144544641817126363251264571651996813750661690438739163386127000497408914470334603811205039602182270459382718023821003734160146418341913277820592641919192257952965634487445876914765527424035456509667653929648384653145679460807089191314447325876489816958916208193690051603916647054752222836132270634933552746707854218127207289131241833719477896268763713769630491378720427440377714437947500273122287079489878374371503763350475817204881550010751092037907305506946515178446853007582412763997388670595072576247879729572521760174199175642269382025986405236185412916622920834064581338026076811071899368543022625954065191968599252833120975234391342317458770523740281945393277790352484541088224761023857890256948844749817507927812545067711142993375169591305651510421989159740061379634951155053243499121517241705991591276263594161150405646220909235128242508402144386334686987939068217925308764105424534911422234959603987611040797689937313454930191073687379810767021270539505911255973661702631299060494130992429055015513806623875249177559501849797614291286009039281094532330653462716456889755637584093211395652077721345185619843322897316182904364114739768389500024619436174732767066866704623177570163651252676075568619711731860856669113042643634820819827011327736883904374817070037043026304316238749116632238221804124720020366661935338373601115961631852569983452852507122752655491204717168540675573899575433212497865300763483028588985450416767178731743913198603460222364352232968128198958125982534304151206620019005255687585165386673202254529419036963512436522375576085064121173585814819280457214780144721185209041956486123943887659031143005319130492576007413280631056178160654792465803574429873185228548164573291239323189241637305435870983697759344053682488341956300241447155531537286280076447209830558411180059622307960292934530188090607843374953614587626487085180224922234158817659725432133615236086011782382140735391027963024399847277084820771426285989503545111520741908873663354859693093321894142407780233052077154074950292073144241688833166627425703877996198216869086426710615616450481560601887819640369182535055105333473170514689190224221868571030159506840041808485656768290764835073023063752077902055851330711305867230267048833760168554772740402866898715284837920380809070760677980933057189194367011535972334771931145082715832493701948511732977777394803446503527107484080748290029895056964212290150528727472163326778197867979838725482188046817732498038618726328884538219201862647840370614919768728765025010569434753080281952731340950368969270161639986565931878891887885837760332156815786985944824001886228451769492349451882833777273165744379467969727437892064159903218365556281635413316135951528344141936608402270656844642121160606678864251015968076514100076170013614632964185181320074396978157142996042701137894758712780032003563769181191157141455835346735111594443696932176792098533301603806634589135091467754042733926717737656303616767921815219142649782543770560639789137733757045787585876809505669690088112170739407874477336856249784023378774858162461495339680998067780802816983469156925519591207492306464613872180660596848986049034158834905369397396705174377767661902849864870700546927272133261512735813261015931153496168975911980280603046208536000920936831901329290402457873997991549302443789356248853401866388513186681100066901855268930955398955282952195312234199937499187305715580418748138394445993321714947195214463441687871550810327863962612512785538492480081960569907018597852505491886515673334432258574095653918626732876270684170694046908750951476355403736407334879930586336641075674544408987277085392823043869269369104635161223883480339314656258636293073494223333440019977231468084802971349570560567476863611768325189087372242899592231562536013255146015481753030752739545025516924328264462063140281163898783712544686000176482794369385870037672629717113989875050489070330193244974356786992916520940997761109659452344456749827741307203728418551248207900100431018218877302224603287246956660155606025942041568743548013056571562845577353534644158653317123939978992997826537656097937781958523156574840283088457895257139118394965671235983051178651279680639254810876949911832116072591469044331437888883794337614898778753006017915464095462075993165331724827834259359036057685062243847389618763207081427637698099534820660912086527428465095208309382513974936220070156909060222014492211198965954825483647258058587822220204723060054677631467394116666092171796610664107798643283498977096591957161793784299090919612823768059284979791191890214285228238975006397304093527528979702040900355377887033908914895097503208827398869539485972450625260068244155932313789922261442349881098281594206366234227917768159158476773101312739620265423908829302971952443511722947801841173331124153535808078977173088295465734632830352067126804388176306958681890684520094313643451352866080933088778361278978272266595849300189113577241024601481421204724143590184051686286177988110955660251440200106665609023521080731593770072855141707738855136468171202052978772151012855065641217096220172566043571369253877359521442983049437668851064255297951136623036527424009093186740223887273329259786797897027771024799011042536893566450822350566329058782764006849757045621149838234151532488057682011004048280459214761169305682889423446655174242818135469123216630900996877063328914262119308618496289445741565422213306016355754380008631628510128788188943477343595800746456379453722665938231643060177910368386220848095334748766103014783689285203598190584671659125845923050869318811861288066689711945743395033905133830067390977007104453886348161746964513618285696053111494787904596934975327244014485481848642398426955886339379662793184844658022836036886846987086728361330191448143015566680775889026998588105018655838166203741258043990191787903790159527577868464827212959873348890724357769939156024061287945400610042848075435218211787544497536598695635020223244790979092336847645480293508463229990005393281762396236053027810991160216629096523960996114861071402633737046320087589794615168312144305400840238836514417557544448451349353569492747606661117922835704614227407190423597800458875949902278963331637643675290219646577146457120726345927560659097935222573187185507402644422345882037355516137636498791667318000880862173963961109484818184608574023473850485074517083898342874537791932529896883565480435427680044736923821637321541192288047640165750740796760901191822769042180535329981985915974007194635410733415566959048885525828554103021011545231298309012985719772805513179403503565949949228951448054266101653128046100171166677339322228933482612473315492794633052264744615237781811529657023888066087227942680252648965807559991767987665327154946744259406357131351217916225755133118990836185802805915470620627719537495950893679479919515842793055186803569329465087089969028760465766962612978127479635730417077449760781380956202762766793975095225137832210768177741970087727860388521417341142447282524244827665691854216461249507279013803362325719645251082328711573648385467567854370087835228448638262270328294882090861148182753624867936610276693069652232936157605287671469341730066578776714243880583407833865615281525811659339620716305214364419879206680604435459795809340059860797473379167460330384303046368666976088924457852306136540014883220874285906410884432819456243349635168051042210659323545845240615448624320779207731562218840858045408161165723575792007645337486066745700667014605899175043546626084259093365952443835095242291037579820314486725594145049200314239828716110176263834722301212998556252465763835024391069010469629596046756179851961208382547359583863586280046875916930963774135257886807111204361049656471700517339792755688734018590002565609188458686964461089668896089487495326825687977344061885225637701324348144914560525081035381595688182959592509894550969468792067125286543481795561975294682664709533014864575269018157694468220371893588332993014366099812067591876193675989899668840576267494475573246471693168590470689016251006974074279115450440015474091464238621189408035019091166363309125639589643229131968513851225075584527460015743664875654708414547373190316953658032549065805777292348685647327540235027684372293168845709404244441170914862608782021093443973432742619406896981730151047735332117659492424180746576561218008761780874600189809900703953080207895816526738608555304614771583163427828612917282923377905979745234781930489478490637637161204200672056386783278538045019155003831041245425661564994713971296359362282328802782089851579775747739012148395051905081858614844087491214480480806996843711405987117597545633036167724828850547954190577134893281181676451487794596848301553879513742639897146974467294794517617164001358300208285555464779298186393669470884679758633215572679647465923402091747375626772792849050829422309906496162046982602240539471366904973481746092403337606865668483255261053963663416149362312006411253452865451697795024881871027189142050260509893450139858226169651841051083986527079919662848558060231959272066309446299944501033396147909533227471668309852638962367047889812729173292860370369788204101004893623991701993634952622337393588592746665844882203539557261873077319057102886452167221964062677050865500121723606888957636567325350658307258222202957167457381685773811191781543281740023579290567202981391904933601841707340600421034054064886021425307905965014667475714240227099529768146975799516835291688750832461289534203055060665546344192404383616880092208002286628360254734200436405590250976651013645918064793537067582091399197526215120861018393200358974193367150418660368063317942490692972650299204966868850260379372888916882853294985690600063247996779970899569762035251050117814054093114451420434993733972824707942437241992270971253110072832859620045328986642886943483613794760490505286245067072932236640971550427154710113148034089040729213282568419756044532492686019071223903050352117767936639398864631317915886481755326513714135822934185845738159415592284399503095247656382300222126560930151619631628090205818549476680733158943701746180339949163635810013500575297244804878663211739057829349601621933808185825853365844414981478549220833656325240478230223241817254675605854254627471958217419893652869341405767566379651187857004915724478743222224123022027740515609623424688600747077831711051100555306583956932633132500931860649277645549797455220639501062351119050922329346216373884502380112646904498415600511282751266596908936130079896937788121543211725138541161315763008698021458427903950633863889412646571122039112740329699744119359544042629316030954535126616282033283155819038787924107175285350598543898896960265992698290474331133688468892507510573844809392512388323030244927951275059197401383494545444967152150920594641937023495102621357435195420176067267122116762532668626274480450289683436022659122890856686514977346934061972757780791016835555996056147584977802956434658732019389212130936611220429320396682259196463516374583506197187017800177925243573498145776100997962996774382502669250099993384377632460663088804622334873016785705726182059518423554381160017488910129360820460491509959705533345200414369624857975014091626913210836406204686740926723203397879768358090712898918050915395343303698861130941621819893649284453291726663706998621351541716700535571372121506044283085036372398097849744870901513088899319835497917022404982286748454745405670220953945542987202038142832652923873289850227155355894332866863816709194701439436892816059858003459061041476648432657768090951248383073674508588193818883078740290830292495910070135144962377681014332685626852563101201363251063789882277267199879695229556397448011536760445676597920562435012480525367001788656639110673681003143314706382025630665597953564591032088253613838364801065789796951560580831442611226030714991742282278220323249614369763706932944966285195532613664272830828995810808845593178512699750952611348903780982294149830178831130780806856182061931606573280200767885039991434047932960084799409783921320369330178834502120159888991441757212227698962252458632078167759264789428663807078412936543636057469504502765460786160847437586475613944668261048535212657085149939952636249802018525357982910447405167742460669433577897348568105193616732284212412177812184959829717352304346400376681051499132828397812824274725861167498158724536028225114768156630081595357365850865267387843915295587064357893686430708859833747850516210369045542803229415358040013446517666175024802919484647328507422690506998534942070496738006909461813249087341106289242339822352493827505089579411409835765334362922009015565927209484372315799536685514408708109194557872337411304468393424683504312859985752003715789498477360458494891628292017038516426157708115938468878673111079478444552510706897703277021861658970702742641951610009542542234220990546177185786441762851995858175193282561953156455997089396055928500044809505771573971835930039145090691524122277720787534263772554525972419294819699671916566542153697882332273781389914611432445513522660337049917722943286219271289934698566603613521904032453269892880280617895970590007778898193527548531012247666872027548266571806228321593865738469514191821758509258611348049307061080565444078144881982601501044397841670462690734934009474639862040723578270516396655895219882104094428856772902580531722584845714053559159532783474162584652458089761927611597041313904607818113191857259161668797058885072634082704233766567838468601056595865593362244355946402755941783349742931334983957170915321313225091464424825712374108739531146865588351734261593358365550985169034427058364740739537086231894565628515973763000046329170949297679821813639708926127200840591991779983539527940056580540560025443812175988414672565584007471810243771442158521264798449525440725200888094619572466907289841448376841682829035670563924518474954203687821584962509327642883249438761584380576250656437117109211693437626255840533805534457299681364522359343049034894973996334421104259324793171833488400880201747052169440018425278323702216058215338596589516789161355840067785944063575440066584869250998493596081959119887528720463020247649574329466369494589798657014062923291211358929134358865801451061882844494762774334004725488116208335330325036910844601941193747721986390430731208278227806764264711353725876220162104290169692561619157904242669473940118504757517097662203573165918811686231153755798013297970012458248359291372093953966779082363208199949579021173105670074069804963376147056940938832269886157283311645120128900625958363521523329723884068688527414921126569769111023815921090139810985458655683483892789711152498313384368023869371530622134139205268011198014517849022244969167809900337180053147085851106175401061998167904123348791217465991264939560147027881180003820743894935530580429097947029281760276223199644729565418695959686283490168443061417505926405592590269154972303889327908725383131252105386233839178243704811972992072955753384234312964489064789878991234083273414680388458448435053627952848923248540951286201393204964876284843562281738439039334332448603146446646106802945400932595746463887462920804443645328758232225923173590807845452126266595824299880536465284006205441863006369805338002615685573292659622402915934560217135817874034806063075306442308121230345714673181694459674162783810825939716662095322820388022200684480287921429274074063603998222721359422866482547886922530788037997240254617517005878174321157116212051520032361533663773654210978383687804465951405751618217969273825955813940712467997100542684191247578111294899409886160349078639609446905379994869586704264276167175010792916324483033587901346803796228375485666204040603661475618754817705477409693425079491476430805549666380104783414619789140019871175844743099914194397518713055046447982595361958438666012102368663376329605015452106041263277107955329804516869297527709628110585331735418899862046596054876710280283064811987056648347413079681194709802049818861578337210952884960617995257405353917665570744010233539411694026835559725811140784955071892160143056271774531367506674475585079963435196609934289953208150789121898321870399723708686317616888679798419971508393157084373704858176129345833756224065491621391132156871201599637498391427530853255062337231156309090250608936897465484912079488506567280379145006772289768684333046539113613253709875877653338515806626030636946928484743535199709140408365851835123856529672139046414179817620556673939085067418150361488042318132697280309079390709619504947080389039546083676305741506864642666535840628145758429060777945348940164868608142063638634165164684421018561891512381695626938303267947606805313812880718657962338556241436805796163184429951550302742791279040589244189416553017617305216151146049885018887417609565513501682871187380753015907639957885536529724328747022943186782448628745037575005678884677659152562905327060124202570815883236195310114817668845346547175506277545916166636604681369780243838669177219509287135508009890617321554387511992772872565754101714811760301606375160594375714411972248818007669376052767589672696756278166694797368852695977130584700122407950816096861481840532901806491203016835541739720283503026187549283018433295987792880911837602818609010269824121949163890450818056690892959264599507473171831623238490618239208595767575069061891506631284833593686551067589143655368701575293187327601002493450088852846733764263801385210059438569363415871130778271075287085338710194717832982904038388925117231653489560849412835475796122867237947018795135092093873440955912449436647704183545848054254625847268901557569967658924569576484661397810159424358668319729506014434019440560104388613837158994945902699114814656005185192961517509620692457266627644893644843930494755612618264287384663091760752248153683322434150049378711265711884306159849466223100394756805162036985250674118824928092272837107503945355755366781919061589246665721848271052707144420961742997170551346741994173626464596428932439081480039953946665824228684334549261617476364745925310996378241508411243141325140010523740042953193835703708832404883761093236050025812381686117871454333133325842610537525281624015522582085690933307669371976209919746144423883918122719029087375332885945240660162040260851703970522590774282820982278441022673919336839188682514513435614085345746922556633594845129848653249932986604128584201666609701406372430280511775082916870250363147862277210474002717744471945359080330219224458258643777189334249111999976009533341031897396868781359806360826314801421542641128507405612766664324934172711426139074821491460942120435861678489351078421159137518688797563078869387943671559749292629507753028374731533172425461892086059934159595889619956844016432799454384929130209390981723718897354729108956131476504177091123841298299667811617742163073492126829021855693315000492777573516216816057877193231469772064481328615462778855122206996112405772124665021657911452800843938417589614819188392877448967270242974400656253583433954784854946050203296668951649680711230095910438238703891155845236927358938649031972694138038658423166647403100387679387759600252539540826444470712230702789780780690883812383416655455226205631011900948714913905560751185360523907120872192554298804614879703619462776551727340012791433337427426937054702188311710169056321509263841325996465175222192713896614057117789931093750751618671444322795279463142205649662528492660608867272590671516764041645649715387302741112109541030360139892711117799768939408587864767155829893366439644425152561723546875609231354913231565380784051859240672545917257981715356473544287122180229736804868922202038520790103085384613585122710521335143388655576310425256028562302448446669123173496998329607768779521213148254200398852703130567788202602371184880244906038032613215579213534293940584703082725320904699511301696760436462705627456301834278733227913720564719278626552933366640833100496825536806342502749864678480828636609473670836813687294550642329661147515560883530706457413422536715450176056287495437262890764575519064804108136531648243879111929358920898089341364163566735310710087944190623905089484532069001569580176226932127539072135754362029342459049657656668185342174377030559259247114870696003127503167185190940262625166434835266711855406168298639146296325150284180094234666459744870247643680463248967568114519087615534716387991300669592158542998720218209294436555533848210885400167178722574674886157973006075483426508574157361913347456415432713388690168708774710083925140332271528826008893085288556255989361935776016221400185260380047554133742919000302716311251906563988964718913343122381029631459521408262097366687096617779101217569831332415039610608809231995452253604941429781622069358649141337854977508884582421710274061708914200141899125824578831450921745281533700133860180322596676362844864954443548259965540206175699517840457027609909551317187316233812401251022029726652081200028914497678743077239951668170587774329329080400615002299238844924434321898168263594568200843572695639823521587682425443423321079559152001649075328154033214215673685435133694266078228075705333091759798037125821895399220138298879655013413204382243848187291596799166131785352015740748533809722849618230216020945232523029635466101835820172061278988906570905879781485044002971357240970718009797929424547775189379809859094643555732340065693908151068945095512309548035350554093672746927602130021757270418898120195764094733711179998913072564833303042337199286076636499553963673492979605777546098882002142635424843482197930234570930712710411029204251777108983037114574883808813747347334560366240447660618503187398104577477918589221949787450228402781282990602977030832700300979633533666038800633348129357633758568574740847851374915090466536370859692055353794916004605897035899771923869337820924341720156449873630883988573758742742502244736647856028289066214658542133136533527426820024522639030413209946241184714129938478072799028709628290761133953370530022469798241666695524788038102913351087035784002338558217126769579241233063519999549143911826454624836899307131509193474547526706425224044729963329908816550614823529022958765331321238901603565765781297697195251152879775894235395097845823050283660328863282716626941815530318750794548319504985838065564015097871052768271659236443989019903876154536592034056471740262014276808868910753489507865109916322061993411572391318439656230656607882173727736698248917081792328677692614237515669378445160349286925311427676234182168055418436684357244113278252621577044962252948324512635283665239022587318132563415615018520399218656381969772659414724178665151193842962457473980894174002839880837663235935371481225472582346947461695302867922005637123656899042125355598570342188673616183334547966644763366700339368020295429702936736992507955478779201370756584459710309196530256478302724366316497672363664568502775137281070710870640063677018022947357424690962060619289436370048020597102484488989760428581013789099537468895739915397931705581106947487907613022042344733747616063839104298036290450181104152120461318632088612150039250111252399917215297972129162847046678474909374744563378492438202222528124983209602345556816272656522308542178724206282859659099335289470167970421830417563953388276228546671077107167046058425213225793809088568278114609769561588888330056509191034256974231460812051324701727284751607531946745025734706801507888224086769676646115844762359357870750933468174306164131539575649218279488647719916962812948168937244400224271152418556625370086025286357664239316277465376646930715308613820980949645818861975682385842847254041416143097747611341204738745956522716977775863130635675657291337559742388143560186980996469207935219975529942786827819592053940923599815670482636862960844559653162725740633265987951421748159662232662832076301908759939205025076497464223285507300538998417065570318998672549215609067442485266374027792390446441335354581441899733694132142689724292913054355180374969709813847000840222677340279946613328482394575470541327197944314321004490368783111265705985683633518292408593711085143452146052567125222113299352694417249676553281334672082924972407827017861519617659922386974502881032168816426218022225189037820264884144934296014911624714669320501161285620930876396613313174003427248743832588951259235846566185076507332179530414990417550987670130677478630279196583807146248593947917921996388705092266518502548915724258835068282568417539170812369216455140928449019799034963033347367050234296634625135972508475994956544631005291029552862350970640967351354226533433779057906735624146844925137576907108902750886241559958453822598579440104393906599236981378806220152875072079501899099479072306548810590911369170851216648984086936373178159237042403923914422575480399774795723942437787900314125460349516854551507248844451962312848704908662164923006307984750958010601792300273154425115542295381048146949274833281023411201513889167027392171898829478766963556999003662088862151163239362382854146266695990149577607399902815813904610912236093751172333023145415487098315896925946628070682389527522075152322577583798436568336286272018461673170412687369902259611756190284782351549234736026225508372058580241458124474360086772343470780628004564712181335213951116476747107371589844900119172642042318573943932696235105379463842227803585996864059893472160975879165668598934943895216460576400717218307452353414642307833267891653814083341926416687395817203669623721613754353510718065612695571563179327715661262114821096821330952756102668772080246686743482314241628944349128729242078783158120012975830498029753038321523900746890473343064283804842325282552434262721516089269872583326038583853012673776403619732643829125103866168903633768401972562037115465687837662933770816600492098412804709195808359061298962198951492514605688991007974586434746457569651421935396962841161724784075402131799551859206979201026747565594392792990966167437223411726540549642202440870807140342036339211730239847819517407265408575830872426206213010263405037614044971825063232344625291553792665820058519064079657613209433580438261236871172524973583060053673489168638649928434205285821538815898622833991675364582968647344912299972057427327486653433521597317326771827924553768249206514417753496349703395457677116664240415467619155270958264648859818826047608504347534150412892359076893254341135101763861313465867107362393654385180488225164080056148600524640601041218903758992603401991063651115096793710919385307719806257718163723594525033279306197496006470080855465408205041148419983916174387581604314184830840379978565866652289523607823134194489361926960423457214399037179377975102479177240801191471758928012963308259846093526796943799650998080027813809212298038499381302383716104544862509493685209147948020941660315794954621410124745598582726276643614574197037965841626830124677359165659147680993693932808202455688919146353435873045757521114440174138583832845186493000607563142920764436131909696898891466799924838506733041982083505963221111207733117615169187214945751124289704740349448466830886219664746018432525317426571077356250448013170745863415047468040072393721393216933656207978110696889094601929863393462702875118895222819681058603633096776926878579872775976426337612818538992737084969228222282405752322301506527581787092519120085690563569634032341084939954317456415929892673121726449734741102137772221089948666178311275169443206930599145783384842489225076368385141445660769521990133727222341987577884063291892161181819629444119295165372391944190831406535563434838703506122037045847864409311052128362808006311860118919625023644460822123697831540356461666169520851257067110530100272259444987427054599574524929804071218066144968636026073381982713362508529885967794106497462014121031659170679561361853698104513231049325904441014641642114716732691245747273228199974770271503054057186910129522876633441930013953865025825384058163975303385900172065668480517014699299083238103718351567191484103768783415800063006512703705810556641225336772671050305646793999397582880638919727022842707880436391175364143011885960667291889947138706517939662783705216717259896930242871718437151380382536007188876107777296206860321543601632015580697654384632584690466723422842134743021683978508197633489042129690547761760500869823550386152980968748826360661746568499709356062864173808694463699427254839692576167167821535248041882639794995936068983880955863971654591049095987712655236901402903947861980117847155531800138125204280405554819192612317291642594161415099906032890347163851773463617390644290966468351244964599540439174784926173089681762800835929069276942555934632210544513482042262593359989661441611704980863108556620442011957872182210635955776548003445202174298001613809745272622815430178838195571308492018497852552061965971157913134557012297933790964343940950291699918119329157996652189037279855176892885166606907657139549485335539472605890304682382930778076654510404857596700067666585980280007430352659606405730656677530373399391715162237705692003686402065311229314310663214018295784031068056231737271067021807098843680820656064368285770655307287446671905529878410081516166515487168622939248691751403832962323091544882037879196506716912567323952507810865998401758724162973523720581273817970752451141711649747635311301303722650316443128893972761053196177917834245288794399089196275586315681356092828842125474836026448589143676022200950231617533879797600789519984637560419110790937436309919962311939469854351802440506850886546085048978620966734425245848802908217762316179798653546042740438752561146136447676445215664702509860420201293645769421186726295616470549390639061082716195585534857105587345356143287396661201178060953620125868366614651890239024997094207983084113724370929091567156751254902834516446745455272938877250937872016599399730780569489506718875661634016388934356431442043364023725289242558802993297974001400682749228082095568592690040923504348482404654350882852728756717655874020231113911181410954810354835377511771072716088829879678737141295660285945464675171092888460264469362838994324474660043540468006605827792295522744936167338216894074214761257409609350832060145903854902585486918591058297859590907816542548603727273186306263004100307735792614530919040167211007705629560484812296198756276091315966773652506871840350201132702206242681755215430209957913797143944041044258229025588176049814457013221802042872805027836191068196801749295651249646313645956358988689760912337752707215362233065125722347950617828826667048573512119905160309916066126001922298295687874154405499830277432502714597748130135963976178452285374290601381475810148487681621213191441818149928229769358141754976614468020268733301506248619416900692208701620186061142154919690299723688676704325653506089132560654127101630320388863962427703510628067322084578627000729268472940406768992955451823243586715147901334099962132826866486489159012812006697023929773250548709459573920398021889726292742039703729573608894194382644188263313702210706923454384332325437706913136411850993025671912804526513796618550953866883049100181524902549491804223938261710281151304605120545800143287469959410365025754103113511449874388177288840865809161437136891776964535003640487720705557229836541779373406753608351803319221376404234404168016256654936826941386977229121922408797459173731497461606873394275579596706931297545077202154368201454204740819444585975131891417996408703031553474511357900443886188865740330438641799799376192350612197712289308434667661733133480018063763425806741398017228677452534352399272891269762533677976490535064467732348878461707336907547435685827366156874089060312936853432318533099346840599170156059532866141100057422461431619297926230137171970342612152340070321786271656544788156029661919228309479532543821005567446101662837495219134129309314429231471768430619293501399076080742009047017935618805792568282142805445542616805096344007731428783095692022068345266960473061578938317706116538901921285349368138631782296907666180733498034381971755496099354189469202394075378525921785225365304038950432115292369704957584254210312612148552277801935691425760523997860321586341579287313260080206998185606559460676979113964429465030603837308206518136698393708056964403677442768356392833749449805909560666507452400562592374001710649270199079908603731567456107785311025391381778462694467697313194593987557084813808703150036818180246922898783052208555252437043306614014779453904879489642817099876285922513891808964358325637717477520117355360517950107689442581530837884682493325036978850551586388644763577648375538521969370003974524131950543963213221875986775741398517111430390766301628623618489316129634585192690336413098198829378163333737485059438548958968563874989673379720298386614834016945382505270486530616393559079732948249635536311739605806337054633476314400116037061175761390197635167699608170808185253574252451786865938914353633195347741557429041809260959684633258837363945786220594448436910642302484554438985935997380968438070165950528983818879690167973060563722997329457281150620581490213330494485982773183368430352853386130032686788173592206560838400033698550753223866896807501004124834365034984602481241523675943634597179911573263096755274932787940278240878960238860351146234304523468196005056630152316987116743474982893804523049665776338494440450662598226071397265091110002626388882104638311490878393742260205934135952130440965501925917101429791434536546210083043750725273002177966529381007489617726173674136726267228028870762040454616128392046947261621044062108765820671349209413722908349762744727305264468974840694255536667890093130167271554426602579754713101910202507146062477886751616652611170404739126620898474112400375196037687589248114232455505617624009687384731141021424984554891760937195009039675530579123461137805797493176593161757858137355042158052550235781711189744314092225505832874647454172923384586974952211687482941254607306752437242095354649968977863274344097817928130276173577862749960855525321075933352053007103010928356563681754125912968571563697518917492408942337792676393402487085827996760870328954663211220600255066960145945635891906710564685685547536692128399531779329638313766150680313083971885230845108040310876821824334624982696771303852859439006865419624027514308639119351935201320060025689435297607575874940040914884350149611653265129195783591268444159587316282604551695648013410704807064855719796007331374693317260764975725320745556410990766710601945208519246214886999635561420630352000758149533619077098964031632056395198447498026013720728663647609149159152617020119971902944312403646818274706288480657353649593624036689880488179108792924367608004754217419825729283939814135437383935522770361653714253153064700658134829098290514332360731609249870916511932515152013752065447623473941760711442819072289973631401805266407744980508248295174759706777202024722048402865545557626928641161111463106197847439977879553624719475768838716093611570827322615553766288465654037701737214021706701397182142632465684342327878675896458125392551831952293419939899066747356447500866971337941872292026281059681735596903918287099142958220734328458284439272043805359318353715559141979099978533326262939246940882461114610591017309763297656088275397994172524532441509495669395260795897870365940083595232581238561155026416566910653514355310379069838838481385106407691227101730088646188244596833643616446706557911191371305270464337759273393668073298487924605630524339864211794457445113076588044173552467843720850169029321323736342191591873531596951108515568866519263532610477120528503357116212214980454912963533095278682708026382380713461303680829677807009003517890650128533404094763027849075961172476942335125832678536003644809175943959048167169425592010616717564313030590108493669521733238823324539552036495029126705070704024872453321232785388329010878809807355901287249069965535179588822432879726696423595448095908992401475735376015314440501640540617833576908683164439725144394253760779176754714761778615945694360879207942649967104040606862324310102072096381309193121853762632281134625553780234265832102854339792747670954774906961008230702662572221600468955739457618430441787059570728839527106146596096512950063699800936719258104613633046886976118932191459816796030940669969854796161447263326385925880250273038807111428258994724166727942687634359028080379728090326336245498328171975013850965610430287777059591875002377877104201952970361319283975190218674339712957605353466504807134567814260484482879003231078389746814934136689428851704503795590712753240969320051801312888597715261663629808389990826064619293476028731050938134361284311554751151431820843785567406470724270262631080233094626518272148744079524806051322049639126251542707660947119688671962229258192172262105342439037743117842726215250917684875030399682050516085008473591625011138818440984659659808453637226649791711681135576832666962049236074593038409915126386497199939352784473668528952184750281569541740720864053869146264118194071332603798243076864761405902121150592120138168863645189714607325773566995681051392984274091052732465003163196679137214737377260226206911631383425233020874947612772472483774108836110375385886709671735839660172074729439667740199621170148128696738093199653888995975346336909254585403974619925062132627901710789452427228481907527998223513344522510521894000383972736632756460120039864042934404562881071738720678448230353602887853963936694718030315944605399081526283111302041883878839983785261769756792459016719652124592352305836085536908194124196732737823947829251218411618083187079798707504408709538072240606966198480611793718178082431963488464432718826012530995088565315433126154130052395815289511462120302997924810795712725233401973584253343400826689108852013655634106178717176748141351143283110680168158172983266028593424957408988472625856857200809575490278695449895092691251764951819917515132110289670079945189549159054252492527552082289794479977105563115435814496803486678416392486459789370315796989785265631166022895938263068845650783452430455103047534231096972283126165807001790100160479172005933176986172785839087831387134939897747149832311460146929846536081951076641377308240768901613842680562739114301636915482891567060306430329732943049923979308205349040446490049913658785221377249960462174547335028031070528877024751500240702216175474535520498306892675151297506940794932644951054307665448545603390230396874648821808367482288976955793450211054865846456304733505811973331528578135388410840265060783428729145285471119830499008572920295039052502940132067672567941892380643303796087180721214344971807729135664678952524941770339950330047055022623963427055720220834942126948341806303730848740998716775072494462550155943689762525419418242469471370914818015303120292638025497718289013482759849218257896121512919017699454512546655156018925821323334351550810086826968508053419896122265465560307440679981523132243643273490216791170083169977070789436579401688577179487761427672659922380944020978811442863974740190876683135891686607867818352763615643942427985613902924763393195013416990241994790274229028859257530939751125911276734163277151498914793320359353828164468166563647758544740704523539337983555149908321098087163216069363398376940884467935008992867118402216544957449541068993145423023217157510202575228823447469995708442709757864157753552447886663140376121816443067561608936978630027570164434340942907896388663244687948038189222914559137036743222092072097971169040736668050310483766365286577575581727190370227713785437481635537526300984899490739550395394889979887661760719332553306447574301066726655339846439771181244554477911623847437577828661894823571094216479543892576993181421295540122946503708463184252661176434837474416576967120882935463277581301052779820339299021797038174898346799270569510920219834679731438990133125916107959520023611022639120292774333743497465535142455561156785443522317966408121820719935301899163809268222619887838332927920804475342414225034249345071865309882607273619109933644878625066215023695581501856195231554239815586748135956206419260991434118445523902225584243252322868170510308287338498958025794418436259773195034098845785391366033026593259667305315119632683891592847268886433068044332179990037421020718839461342557968771222781117751652125835773520347922537684938186735102916444217448696007570537630197507613086760594151400335508421248339733801096110988965263221003850926443718191155382680368942731460416834473385248637422753163737876787118035098356530426531010776520420988460565400250848405480434173892390768309204723754535457207045632466840637093190732362187877878498789168829001293110215199804612637342559184947798345406185391200666414010891233480919901689753495836720962564944393046313626709942520540353966276053176704881835024939907578200459221549681828954607047505411721047877661323654831551593045524705412262384966063894173682553239350089421977934879100822645457936800186678066456804114410962983105636646303733551513653668592109698456779826539890542761784219435943491848790894774279759746966056082355579677413902054525488808174378300195634267468873349134974830732928452219809546400297561580105680335265586440076936399047451361306430837813872040269574567277466052081023823099264680202830948345275862708903547489249905747994385503775045492826292732654939458486873026636371887294750047266457690442028046716515287696103337613581547390934303837457698978670200073681942341644870426283713013502245476451630190319938870293086655187465902749101534623361711364259478185972244405449824430289190248699807742452113099457640280770432580529662020333835441055962933616425520930666494072706393166846167316993279774203561791328742651124894421138312511175641893410861458971011173454608349209440514413774799355957347909496443335654062340547011703165020821790227604675535511165312186809389159382950639333470189806387634316098160231859321523837507885167917994995136895514902674811026785442893806836009235509438627426723644730682671366215659343865318044101814360327209204803990483684212804549279058891690365592409365443592454064097130312657583838671954146919669952278164901970456957509718074499051368484632790038087202698083048394653413907830086452923056675303116507502322849710780230476696906972871855311683164422427982105820692198309570960852680642504626964670177820354855808295835981356096633319249454764177103303086668846843901452481038800433976647964520264315484096444847634921894741393446098722979644488644311926486145786591851819467960623937369286176685037504523489647520551281192858768351740670401896891952314118952481327144595649571347653615753117569417447381391072849438903426257763715117747297320918268425412723230964707371341995442589284477435194138119530087428873313484151293589738900641336831925490200090102660304059053519326266512818070555561814882857103322042939733372610195178513795812052723133108801204648094930291981621206632905224097420369946810952738028231454524474368880248097319100997846406672144831981989676445568294461062775255523653568053212539085319936224714279449083146443136642558604508898161451333217655652313342347908857888276082347618007938860062840732070315421744507901125442869417077980308792737311563242103893944590580069141934660715066110859739418473053420412139681961761353953386444026367938300284547152109595585285409840795478957804623417561991501289202481144210780343074350601481155039638546027119134012004124401025646007287385893285593534278704547183799491724602628389296408903040206096355829870379810543124163408491009744329573794780357777574124031985106120628453677978384975419242665295915668475704820200483358714489427073860526534567643474323619639990735222848100588138146372829575848591311273453119530104343412292946637809607672157219112306634094624115958760675106762064019419371496734398723092290559501340400534652589834022635661904704309815235041752527875276460843125230896153835732765052621325823290485902694450456365202575724692430807570687959991171729569810177736498269152506477062664294410669054977386935206629108252553021157675279340215507115193492158793971743202468382750398265592515032699512883764124843554688486103075322570215442145510352766218105101144004834491893966064915485019545961778082023519681641615183035288905289984389069265147167567154171698534484813457753321913092174490489958466603022470725417452540053663377385463091625542791160403604811892870839148221346117022221523664315654736522330571950914183815883069586861432174387249864306025059507986551126420635112500032905819450342650966620001396301010958449636882602360972067798582105871926258195919048472518049866401965918272201261494716131921277991529312305806859033213031810616444388245203973421916920885867260476651334729906565233376815825277620780870860641322797059448387360400006119565479009634379482185841292493565317981419472407762101560630665711549629983148680983627189822556799003194789718856558371993305585471110573672382628607339115172580301523097492152980122791457705737556379014067724575833333569110257558972236093062194398944891651988223501887216827578568909823253441852888774299759064189584630560542156982501972845447520119081010047120723213660056365462100217209488510664028794250300190218294483552587086741909199397435604843152598123161314740302952723066668670605311347159646221674433896951760223534939340692610795771677122989778518546661193304607254908572058231149297637311719183080231960625961326887774283206497706119775932028053232020833668702891168622609770849539511935501360164698895402231258768410438164820984908532686462305390505915895050819089697010115213111658187917672045864783167870309947604575123004259483540158277972009161753093077935030397917046553328904881295789795188878075117038533200870724764391747579836565195120809869409064281923727924548713203229198783607175012126420371408938900929065392767114143087278633907949336774010073402817768946531373118599469217218012441641011667197136212466460502110268900158038967098088391029112036456313566291843216705216264795208236829845408512625707112008299096027698884124766873565331147961375009886193930171630019488512974256202625143412175140093134401212396241398741244259429145310447464584870263772750937901754766171524625437821473831815815602709652834976909105413443509136652457990977098839210016876770589745512417121303893942253298289056554599027921464230643914275994880515212920205738299310980524953827694721565808692069716736487289167515944812623148989481162012417026501367663107751215956197614417707500541459890044890516048166020246164572260596267258896210538228768637883473783540667729354732861004841360853478975597955533426316406736991750785346614249258931757107720177885028348723008155928259371505959035133752121801918600917194602032818860642072755606035599986823390594413259396946353727289229247221403883973555210138759366378713721121756689425884182289401640282577905732350392208002924211552044495772833402930285661407344430407182706742805324932106197602644669817712533134473353543263996497792616744693934582854008268791868515812719591230541107359909016981591397752060080300078566675599186727011074902170781196425451563744908347152550464275953889344545727432760738272456347274673220702292888491728983127037181620466554775307091524828313830620740121015502432784494088529168474819761553797483774488908688707068906464914709504050370380716557177851915864743785765216372788285181773634331657629556869734027947712748833791952206646461187034050580771381240395458878820518760635480153670512186298226981567910314564544328850367434041746051300951418813369605009364602726420856732193632379377346398376056461459773083997361665048757861236505288755120566242271120850037617495006624502406501909800755200892958088462301619001746495675840436627911252955503853493200788540345668108174776696449094771946166896622904158248197290454089856032688617765307160803189840535029497088655260579997833419840469005232210316339748402124928878808092677724691603848584023100394755192025407726268694742279360359582217121781506272375165597254281709281998964628429274359289787914537113454837057834348216859747393973621836812437891963670427976879663519219179303900098830139291098985495645303829733196233398563809362876140186575506271087732153770166699310827405396078363485822896088236169590679802712291580604042956573103088837745024392370813833818381934976785918043795336582036884038586428103515307589078431408477774436212730633225893457592209543689403874757261176687647161420366081340492206838110333557984214779185072465679363126892762078183711348961880399292045973991666247646644290297984960118271815669202659411012223405858094039246872130068374569427184344723842590553176290658411182259922511293722374602072284384996967111126282450920467472139801326594407598114848578775065880687589284986803177804911040366611881755448654180221269130497484514328439972586481718392890909625770605316900253324539856402726721965872639828973405801276777220895639695286717914593486995956800259886140169389425269363500865329119212391791779900943383772079782077119871697699493908964669180789031048490038087554936409425087096431311722805956024524038932662580165899204181187689058040274808731168231056208775750935660378797623076158215398855993137362961758252287681448262269742944693909445202184183626587414107420881584481748560084331055782923516388665343571645911935394060989495948631828302792890076076877934632505786171175737914571289550184108083105071088706484053556169240884622559154642607380843105687683966083570345094719869864789333694596197650046319740176607619423446091749827429517120565340459136913485922311237341380393427227725654478638315755162837169395363895417171842933155761055124738548256858461894902028367293526556770202985441676508470926629000129307471369745862264867179440134504231482551891587075558548002571890474129826293167305322008847522905663152048880432216486528957273637413336892105867074105646160756110597747979739544042800523151307805195846053655203185257142958746007645186978491034630918895741879802093029630401550724216967564243467709126748489057339713630148301334430792709103641022040423575647838897246267492871597813895243935391408207478316049490379860350991801709497085464693164751563760714120433402931569384712969501218803615686692495884391492800869171960365109642948582931063947025684944900908168957062264088480695014821316886620135849068377596048129684756463633341860332068611537254919106961715981943998720735592931490959819646789040570792624099613723509481749151023391729039165948841786056051959888516601819369877623191726881370652903908818935566017542256196485859435219354769116573653356080079951985753955803784294144751697295703896681269886165156375167689920991774188619628356661871007061205303336637820533716510236916342813030515361222510171198903563645349647647172250726653311037106964076976680057095706373131465939210706961072133411061261998555141010297085241448557246767642114767049034817653224066131602895088774158778374247545333031962722258905903681161729233008221916771914355121807141223403676251595508427172386646650866507415746100187749860870224198579250238594818649813827348938033044298360692037853581707795405542142355730605648685230046033664386794423445669815232551903491107026247615159676190523910870365429307439875430666880557603300066029048512697568871640883860939186588922408650721893316031688284277499713897104689239359613951849389474846821222063644163725119171867759380552727788039490237305327918575490411400474651032445264578816321679596760411070790958586779347026106861823763379613717533049625746389974825147161178697268348959631634153171483126070795349090743546775082136878973418014156070553982151731396480324956475881656798759046712752368492895030608387699678175510109110377297116720248301219572559130351435689481015395673959762727322875268590151938867170535129248895879584225941014573834416004050732188907085047914665654230435850145433473390120536978754009205167231765173602155740967337497762928624797241577938014813767150648762905673929291105299347151461315174208989131458663906920189993399707679113000103067295229338820165306103327956941656691248221853537003089281756453843119885125195640528884550613373181675731054896803018366322204792139985413379166806298428626884812619808239631031651741084861834805055333100551503258776308378865405675019463456750179979018091829978841791068915489807700263736328428404776579532818906373927379270216037327221368230440572525150423676067870156947100729183113906655173349430452329450039514456766849393392443459136534835970465905377097008659247584222957147249477732757496275238315143355783746803853735176411765426893667381379793167926343968479017319587107216854388730794247166623262909266137020808780326294476707513723424217788499015613289857916697253221605632969071534821032368306981458970071313423349855654618608763247061826639901452152860721798329521630077167022202655218414356570136625942306196519168830562848417025346427097211041005577124299724762796429332428724148540392908779821481414657873717660005777835291186625805028745613833614953263209601171077202682869290313550446895110252285608432325922181254858252695972988051603673131281645547641963961506834635764108409923999605566648589281657806421916785055603936709328983798350536294774388082027005450071975233865388278255778934024114970061797447064798603302717925570688065667938487835767489720294715402677549351139747848530977894463463569730806552655997913476668402828290268362914394202171486503628961368551325920144891989467467898286068249144251587231914555218821560060672351495925991214928111410285016800793402884922794979945065348108426322848079405221221511913690867929415500354975132391942055427211170953605523249857490442401812689321585516069273656296287951931707265217373241138269084929487581290317401696159973393693839919465522059744077650857380686245402840420321385247302983761352850847401436831190557133838506908261934815929139401940679684322230282897298791594522813651142986656257240779499144934158408883363256965491614683741909019379353518929378834615607755986695265990918056638920668768644700273565983644816756340906348838640233390776202876121484081416573994321109168343906763918505783497377843728542085050312658908162626062389872416691668222871784852983269477319385538644443122154955458434175966786767720680418669216511403623307004883167026526637486335824067037689649470023596632690887002851409183034344516134882036732404782394793722822511856316316325126394091824512675559060383840864073210418679975071794641112465058222567063020390242689948006453168333286120176813591872668543470584328364808085590097209798835891917526765721754793764989795194265101873782763020733434916784750800717097954572750199085156339737971056918570889940456292376500949736184700060703048995061856521839111701115304042980170244222342123683880410090922207189496279597177622863364642951063801022401256230925404199905374651577755692257851344257476884834441572063461730011245636170967459902098285190660358860962047388578572579703975447374819973458235077647034015420197716956681549499693049030759341222706689231841890170580285146250159889148487941597446373925827030918579065565511357207261873464735482992406925828380850130343763606993312653519240555998859378199644074919788115125031600207064892454736148040793321751259217152959802895404261342249655079520113307740339230485833980140348845440643838033682147319517173401035879633366522988219156239056768136258395742742285896621239672139017567163727984058400591292269015971460274665456859898512535664149540786432955585205075196580839666480448427032104623339958251687651525805190432104529941176680268262494305450912179206728703848890841726481361809422546296635154836870833582244835317935813605728244677754200445131363362329086452246368156487350205996208253527300577848282852092643433260761295486996279951366303881472722440106709037704709620597400155486794875743969482247527877236920270039344560659112367240256035039827693908543610965399960174906117117643991829085215810708075742945755661783988566555313742829605606204083235667800056988829487246380734870053660278748231616935845184468413376638899906210566016997321346924279789717485259833204495466664239642934604436492932815820647027306259946439784379196470725824947445396879587495128231560876926361510678267800990197101524012226559016294961355253102353055980182714587251586888792290785129969298233365660318566642304568364964055693229150125453224241310818067969955509952092023978731827877057264048114418664575929821904770931851675491100265761935660143680980899080357641266830080388698663013994620493679166635721922083305099305414765750386408888579934332460749040608841140720669737212220495770935559424729526229343173624358113990111288114134061025248449810545419567351419667579390972892191112621446349651613309758849038119403681913562279414009690954743767153585358475290876346981662916546934784817103045892711492047646341880341259051156047215827018703350640196472157060659979694984107699822977154835022697749457969641953649417377532033881036728933783424510791898419463356819383484428581187886729029820223773868500558370993126649750797278659779381359824507173611939675754070029394194680565083716233927158884917312784215847074923496166932025163630807701823837615284653595691465144223989543577773388936124521870766298349814572839711568302480459239849874974869896162641032292384140799616005747776338893427219967511868976030062599392763986659718897953502783630598577873371978378874495901140884041294314678992407187586461699903145484756138073250653074947409187547472192488268590111374665252947159913539170855368979715025634531494451225337872372339636755192027311586272096291091083354090725668962946007846231676020831919398188138521063868306721970545199276504408827087800705621380869326399362027403828685910734066237794323421265691428264910909295915081692822680371419019888797609472882728607028793182471706769390684031012190860937121734403896237936411779878410682254463520691779976534223857939658350023035554470243321004034513501496900577013633697223828164454456621255834078828071061293365922046792623318600286235064251669008085235399008104218592940288344489711532863803258128742614513909089886087677776166830856252784774992993676318415644059808699436138126487627840704109640852221222192544351449660479516841477461842190064062103187448879251241484209527102219626967739281222917687341940090530434637826468324324705775032333783370111378269408365466031634562434359646391735092070617938672571275462375153911617458618343536319730086077483359834870025009945726320611419030709084253378759951210100036906315316956634983384559595823689873920241432366532257710250835975083065025568341014561151828421216036310165814257745136259296920156603189784244692883949125728191003460576288455474896592095564937564896105051483671147967202973758779368632893537962958154725491319760028371446009863946642085578941063112583227903628847035734735184903551994951653001900219358889540275147899659206902400415266283491348176388898582686213491194734352344653633431821695659836615232419946331572926749436100067408347872232847240916874261429130678675944912969611502724857952656953398955685269316768589539939509719215549179497002368870285289976943628433871507958126035393540770517686283548966816236977677868446719537557673553979578609138242844851829219023060669791911211149367130303035572059008259301234837212066383708365781470853459945321156684454574370892924730610992947841994152646455711041989259040126086322537764743776335576404991048029929208984849198491217863689243276494541751832666273500713020669900265542497401606407101224890921215452305612302716809359408196102599559937330273423999273697326128386508546275128975157662140962127199385834915456599894123741727073090357660296679132676518113035109588293830219086862339784511022102839067266387290705623230653650959807094257465669954323130280550568170510671630964531986631998781222862398918329476952169686078323699616064116812726306185765338788304795210805939402758087027541198114872854619211823936560173175660259074796008105966637923069582043032280318500095750763959033124452092421993759666186202107021025722793540977599475422653218323126525118807260560612750140749502533682214288412705122782543014457103450649206141804904278723020186121027636890937572364753483570025956994186330637972847633997371088476633988926025778492556808601780844761770347770094768389301183808459870599868960635670877772456796748613324103683977087044229041518432182186867163733995467866355120010994608693849367837814866094446231605752488491800181503817563651537558266670694072797063638191837943492408658821337343445291689192011550142368747885916711562600102937334159026806005965242274624191012933700670104408106470828729112995571075509132591249231725987828031483800871959513995272947803927106655558226247888570757232782251842266830758658055714490177467398105412931191122442006200474876443255361256072447059188016603263743649277846784556213211913442006298165493265244416263142473228815915147150895702369071696599234618928169716156896549183269116468320165044233109791609894253587803155539807900244529983751534389557355725547348678035912597823117316078959792073030671051959242205410256217581022025331177803799654888329510113976803468648472998344779785548281184774234304582580635896610028647589096478527780699848353200669907404483810522577918716857570112238066344327357634991448309837620892957785542482817843165706643953574322046278806923609270989281359945473117291925332042465436535900530794239919221583358279639044232919605832590487797673901645751225270320332486490940342152179163901214871842110820658344409809974871536285975307267887004010796996071176153822388167045285218028225157366198904152812779938291515887865552939200753815391680681594274203654833594175317727415276068722148158147848959874311943762136775487604336096929736509266305392485102029953450974158217890957200057845006623127165663928742079819920016176327249049029567200352887598201066189869219573418760461351085321667868429940355272071261697924093528760774664813012757073466248203494695131936505125068568550085268675713630906754600663662536876079559813157936204091399420309619092097653309960477697530857495796295297813643653707844524232948669107953560562261276216617747244498199364772071489854092578318607467608374100937507169259075064922077243118857033022702419869565808131792015099197669166469588080669717138185329426749233315084751167180363147169297757867377224480878023302861223881744523835100650745612086433889054168577587769831621141042704144932617062844757780459598282068336681531664323586735131784275910779534317458598884965739978300264848587251745813767427210825909628923677371365771934242195248879392208278452628172488257898705097231634936979481422666293233834638026367494666833502095074292171263775077909480375443703891734923268170180885691103925518817496012396637847117764614185428264746768121847524928088405490561560038466937805131723075256964915620311401261765759810464394173829569229750074905831311577941771603775832536609358077105246103139772042255022905696040943193293094921836799911629211391641767274694424264973708443301533140567258370665275743475218415432430966085379355000318941963243059283283172309874717841473221665375679593888450907603376292575331941605336712751618120025393401803543065071566082920437602096139913436466238418106336305090962881694540368632538189285523116532966096287398786178190025395461729966264387690715903583061182089730009652159088557317369587710582743073139558760905242705121184874526260885706954960259360846469626214614425875332386626792201989493794461929623981639029584810969980849985135095101178825714248235686206947964133510319767647298788094498577460716755844004663319612519105037486925459551383485682864952086990513364869112778571059691411174221513291244999439839614492091484123140483113948238587884002730263795999241626750588300786737748493831339047652241637342523710223771603056958777789425908323923040973559884409432841027924286581740289117567832924426700906927524777020958700457142569730559343742441116430864581718070303903386157507860339010504240606030168219159208937879289888647837132167816752468784874238917158517639820070916859504551433628594842544223349949240806690057374230021457539324202054745610140714947888275479698351465425508559641687898849563890241602134315269727662170731082301008390278879121007736262864017090035246468471847588355760075083248000850156697981816165427613012620859396312637988891929411827201299506884870953889606841636082670494781116665026144178087328932532468293670768116084487366506747062581692991633377194424700676711722903349162976408294040095543293993125327507353486241609299726213986428691244082284754659056563275999743971228881833478519886055590085398677376128154632118228675355130775731341435437817962196948793181500403260696018461930967739747349152391073354755095921263369690574357946547539504821788820041625526545449979359551998987588466377057807156501418443148777794412365742774431520506689815464610787906279845727712304878150923790332276964421185499020102131314666292060730504214963581965215891962049251123451917194589656659558222629497321089536512167297083407939426021577989396060427850748904886386015633559013651855676137972830138026499881973690484251140697029017009680327746331896591542371326988549896563315108115142020958721989782680935988125379972594650132524406964841317990885338596670514358963826344835519283266734772377691377661631343031107324224978416993236660547649925175951779736013664295442495479063822014783482761603374139690130136288185401549868950137109876145151716568281487414520257271852635368014413102717501374946394810914307963506754912380965830974450313583348730331245282708345224977807280126660298948131958682584100751578045738715697036613692786034246374249072485636856169116499745291308719108144171476185290369213113412094713790545100013933510114951764600708570144492155697278673738268661053930488746887821873229714850968287096814825300057879791121669671906775227014393164827802714042095723106976189774745278539308697222562815713377154185049232483556080727886612808554279821777711008673750167925070451007053122366613442917426652028098217129100868704984880057159254562593675538701151786486271540322733709565231353123235588404246952868339718673242593016636219877283565748508471729544747192287314710465044113248315167353634487616320678728389885431881647117448467845360979974872137235999712728724202059953782130606427332613435402533281286929722992697269371346460254821387464423365505104554962027215329900574653153705046031385645373915610272554147455691364015595354633212922088195975296982108931280094862267566843660280772833108424196267987235210266166233199717960901483820314397747938640806173892674448384992760846191361723649111572764605323285129274848956259167246534999611653935107033806035591639663285226208768681694752962057213010469583064235696609316078730274617070067227644780662339505845822603740303217434122809999942411912046843601369625217256803065700620768577991616218608089163970270174319817593718798912330635284536309512151732618408766528015396448418305119747059099903205940455541016565548436203340801209022913188753540934954720286960073532524393648777285294828850915508181681885166557499287424387798138097218815036367216226773696807732793140982986178358423209782032723097156773834757757018323551710970947759899807505690880632720458245187194624494692389656615884903039345079213586228311372720146870249007630538466336977004649353529916291673023186431742311764090117811403401422219520464073066033040203875691247362296683614281017527910095354223207599779388305789408761021136421712997055217526751132038279079631745031649353150891055165890431941676774808794082342727606594982510551784602324204044211866912550812849261333512952718960026422241748099810704981461519290557087237352802414040056271765767954730531967644656745100240889847631642917965048302333489112839452256287866821180068399693891844080049396685232829314870415924571042895778393328436555754409518862010601021663710782422951003007277711677636867252431029148137050973327367189121076439580208717973243447525576903285373167025807110627238882828027769545232494224470970535279842639163614574057858172889118040797924266559792966637798942712655882028067743778321938492585401422280454370696006653989881812666476924627016224783468477315245211895929240359748672536164534255948311833846402443733579932141462481100054822403644678203836416805601600967694634483158446678233705801983383808144392334344743356118858765140023282017692151148149875380221838214006109870699537682364969606413699380165789470015503791248768567675535636221141487523279975734865863809539157606803257265338549663799473930387061555318216373802380775164068927875051930229381658462119434893911280070546575502172332502620297828109066380684283289762703168457418157604609501854972571301764678843501463970926642432139643654451361800759630461126246519853309535105281379008194113369387965032360531376140708651612202574936545650721571406341927928925491708596378900101736465513985163801057318773009267115836430686739317825498790257299237294592935473708496845049915015546103642333648175407336380720441431527382703820976344756746335482966035080569126166607626549133863318109368626553700123307380475918202396286005427456685122752494713232162873650128808032535215355158544714602048237920618010905492105619957450548153753584794231569103420919391816656466073001123779806848247212344124272047699996399466599976954090780073046051874541394356224620015877319088009431255885229727422918672510994171183390775658263272515631773795858852933610574876297303500248796240711141478685118193410079846268388965458024986161645968532914023359012217228203294897695337615324278899057185635666956400577617751173331481980489211778299506877510344477519303717060707807684981254951627686951205175452624698675022326039052418327322830194801974555870634606470683543828231237103910655943823096389492876852095355287380474516414613978395549382334013015345736021511018933171333586482070203663826028081069763912198615330831637814365342777886707110258682211078334517937992593311034441235793641380092223587539548142992719645320643459736051212044622275685640133415247110844297463853651984485652665027348700353091044492546809574262359854676326410866222814526440134923487599401106510734664551192793566990615051939243032694006449219895992930151635200040042054892897373581041801199980216460650973710918296018447985345801166023669612772662886741828751262560275190091832892490081375015246843881686250990454730266784851563019956514890123391487522165036876766560354074521243172166987880118304611731138767418344184624311636185034457567248682718612370106910262503197240759074521709712876169704898567995889706295617901047739966936668300023773835418399324138099869425910859964843805767999832115090395277874355060941294647215261641642470573741174715557984252809497241351351371337105081254962607905321887216127950812399857891309118622852282311386952460215759339070121428312612684622640288091637668479841197622421874587382032445069403693376788607149311847172026419315197370685181650624663689004429759885709645973866375081752726103410005757011735124554047954850654562532993817028179911648095959629945911480519164685774755674721655904999366495214230936027394372304656470206682623305288081940402240268124683511658427964197350772624638756426318079111344553640650268825790126967172658514526130976949534682676017513611819515152122899912965823626285522324920422307912875831628500599904102108057321446863168216307057895751919907972944465280183900033910745038243132514262672684391938332723059312009451474756062625593776500236372429094110228296101205550457586481974439551640328219282837723378827237627762404333472686897670829818940188112803422822729956553547370986853119115867431800704304356186174907470930279239996076528419193147145925893351920514357750896976539985630280724622028480991033767629179742933367741392003556500537578232035644293685001749433637484616590093271766877258562977354846862863355146685957603793015622651191488513363725785311053897060306104391595451574129830441455489189031058108389772393993953011763640775787824622773740492495941870757871347411243326818562009168694584000355218275440622821856651318588113621763331796629619112426713990425060779423985482407085291337717270683446893031931017521124385317224960715184278947967330078552562610598224409726999435522681527832841402885061300816242418108203779848280985374999846148052861292287817178475795268832167414804621349256804176757461676674414872902925721046773162525115953959077004101846054270427201075863779450625640386699680491724246879311598277175730309641235361704052341219842494798969148129917293885233429178606464901981834105463912730042643697012771457436879524803720029423924475504513859917449449035543435674748661884724448936868791081362814447487088292976644740697301889196004516667423052826917759978092132950614298141317759661993223782274268625104049054557706774202408790798435989819724599716593583540521696176446579124845020180661660633454204864012841205284969140527824213640153918172300934516715950731592973479374543994586349877108867427097671820737392782286225426955260693194893112705909873757879122426975402969264279358584947660588235769697810186457763135623278786388568740152923068026181607526466195533598790285606192265459597192555018181987818256442638226297546761560631308337800020457308592978815483575383681842739704583682186054558187255172110629217722697427014068826445502100938787384782259437818488768022457679141343951968176496246324015573436252653992109167117274037615555047362228596027814611720767036935186266466549465802976591283254885034009892770251335133483700460245442055502868727054861185035826723462843510112702411855937408346479300861363114080257620297628613941621324818710376089607583824926596607125771588764281759723945851300076983045981783400496605895046856362074424111647501087322840987808265884955448291859124911278146373452297596080705828286804769086836087372459757344566333086373277562177304096717405763556428671660727616569422344516178500395311390140536545602971587687231671695417291009079972171460297528001980760910013459431995883434371507239588477125464708893931398300698448615160875866135786325059442153987987759683527551729924449554691659853803523174050508819162837351457403366568586020816305919084114947266242185162180313511472826008691053298237879609185578105983292185463725509161018706318002768197369787450185911557741297589129879124731426326042695499207576540902022710656051202382264974253857426332992640822624797705905287016309934323497967840063584093070491155374305351663061321635240633617901493386368829590876500514150238009608139351572051990746997098460447720715387662187964792224892167697260711817201946647866968586778532415547123520687600255372111327216811523107101434085736258650932854605610694105614091578578632299870915095429397851663939696972057371991486715058836211911071904434322851753445034145306536385781623682051624601011590398231560594429969985111833070121905620378755866567824186958367541604786852105352598455025050033267352801206727721434382942597950146027181922597688527920129221179705759148262938608009122488301279607544151920037157645902649249032572862472065718507184669425164754422912429407332334244236600950633602076167971900841343287694684890797493585566008933027292332944592520146700652875509019589167885759511498140247189947136038674938220963442272313954288069835868689252656460931150064805256871400172901422956597071406785859096940602933397130633523447152173852876588380360644622011144903918558279417510433144915550544390199786693931427643058228581532658969289111217869654519248953855901641097340021169799337797074558113014954075374249640116102824347560454880359114041569502849720583515798755956580931704446316101455605703851251594231038554803504434005353792863013708060085583187428858309048822942694502776349601836138734106769674774193919831712877572728722772573757594464875629232528727529908027198052018376125271477499849565651321294710297265231458451401291314114781280583766218965653894260081955138995438854570865605919841287737982607787064461178798233007222697869738861915978994763868652472629126971043050077427896923284627150247112406015605956743072809011732836492577092344102197281442682141421557255987431485747966004418853169904268684805802880156650059072793672180801122987538416296984224762366409207776636204151129054505610791911495237043393805435978096866766685467637483998603916028483413923358277592489767953920407138402795163403568400550464397645733304968094018390184735698740446929862675815250746544104422813863172505038784028525923617992666673799234893006327160975777875313674349769921188872948991016964838314287488885446088741863295663500182362681637359772898431105047908905482228078180672225215785510622891102487482613391767111052466266212275511242263493650723487222387218580289601511537114819097757891475784854998594754037887024432161415112698861951105792582924129974042381808211815925525240241550524515884714280155421983341464792296800010296090598845360958924386002984638291697733890403015976582801717955813876065362491373206929072058364269365333341250802693785591482322382568660795906117003506218369581238587617536770444846492370706063387799531123804620940964398959258043891784131325079107506928497227509037811843848026047442800361506244182618211944492546686875644876672390895463622572016470980846458358327424999260570400901100563689369738380449389781328145185594411835966267669927790082202193915292134935277532730327745045367354467763135341172044436173894605656640253669142190558141927232901432422283937578888007921741366016755647750457937691236287661896556082602622218426332154856760094622033220891011659543774972349289722381894561719174807865089185155801879042939728159121457071599869243090989310929338334062468416102419515668735060729561685764585408552869241490566861970187978780638705393238170450136611268140773688991625126335883445331011516702296750514475088687296773576515061816709935008883923221833372306985560074004165295983628006465242022169821721212034431036505088598125045760498916329906222237552980559170811879861684218588995812102266547300068336885761891260223266443558355386720954817620647681748006961181178433804698651294116529995509110681415822965102091818689769826865830141950730481438142773279212307085124281499198072919011137945919041835066233914011320587676933570489808348328371112760737833914454795395079333380972564262314135936878460654950501342257885861454938769934773211375561880393083327198307776142360918882550132776343791817600732509922558458358782338962464045024900730428650641916951912268471661560736525871320570794649146828438881790875060704938825550611290705269581824888127947036208387367211357983804583403312143300448429755494957795370352344086222970759128090218497931763273948843961164837309222235326770636943115030233233240769080723147474679088583186279101767148669858441796500068559796728129561715433194258748000218453782893574987076423910521813748328766998580457559147153686637554414718677770761592283329398756330843953047432395740488411732880673570536317145578023301099082365244523828472711696561570725694686008356274273559068923689053209576432778273199315760841151809079225696547627874555769940177588961057438585005991238208709558282483391806002450486353914010364232747899699679217201324810807488339061433787125933288842193836087620560414758409567820092082143889416405278864870986149334889097487506720788958932060099826121032677638910569776320594620511699519798862557927207161658064216061718856431248763184140185392480461090600199237598064345935648376177556849517267785152331628810483811066852442335659364528309547265140161702244620846432452263098476421041399292267147640213103896082696404202882090430337834974744302190248472870008481143185203162583009685996929547878247397791601794039469106740134156560932128461338399227536041307096854867386101133487717813396830236299681740777575489235225790645200394315853376978100821803296783963311637468568078588884400061673803201248706576910802715430728791015765721020337688050962884141836794915509594044475623082244000269936034457662785459645017190936775987985981556472985489224246027575567357191563713702337575929052892689899574345355240356446956238230188640833230390617791407680483975655878705432715222799057431583393703553140845427764599628825042942703717698425190752656943456487842825311411473644994920460518845890912903526438691739984599211726623994519551188994590011569299611006892204172462827613514246935053165724518598445500603014922034822564686045324572449150727289568967831048680882096144062427511243276052088776286616719717101028546992281880061749784776585589200516518448616300806636643724883526115003707679686147329117792342063105255131052918455271495561466336022168845209153199986497247301667759685000187560386146841463054238032993861371938191471846750025349972230072175389019863401284309341039696300467722047850112950703620663418553716036728202498554784404850670319611485848848568358625062723598789622161233822819689845288002739604974325243188402108552551226648090484013850736434698053024921151528754055860545863030853927264258670311456100174697310081772144342403436706570316075164361962822451366254452959043509234691576472828830097412996406745080889753804073426667060979847653034104035152841577805336024123517314295478917443528173079463765937118149649624284120401943561171892276170287649571448372079571262453733952054550183169523715913988437935099480374003019737068286329487956874675067915614119131698404212759177026637446403527761771102963898402838029270709274146441677878753474324819039518323992042166356972513347296611418376964641457296121136531485530001684125407303101326834288494216434845825774253599215868517271692377761646919179009377641830737037492661578189339104076752469629756817297476014539507306312114222108815779331184364844732613271465169852057510688146510483361012072501493756150014038502759436911779822584772102373758377488505434789068248085976581833905604923595417549717257674938921860210351883339871901391675905202044250453482364233099848084615270612369958974151021995478858331622492286481880560548002648313874395646614934887718222724285470966124549071720853784334072407799425505709561640123914951849693200697992276666845352893253739214191760721157795338717203381299943937931704464663999240238640778011914016318194064460666208605202688815193456968036454879786492256360103947065090962217841946146019789966282728738762145639104436801886167677663418284410339059469717126673470671828017376219570118523597697450363245000386308278179152500674717517754981116953862500683599121204120707314308207382510630646939514893636728180044180477220909633628128370946146905517489309083675441688172850510162457156346448104627990904124679221057852579748529954638286708824095438277619101986059213629688486906425855148575952188845193664842137749841438467540269972058079615711692052944618416539415201296699012459968064511099514736495930884913001113795904160554158861842809254199934676454517607120055564834257143385855089461322794770762033181889615116879352364834869967586026450647803761734207872993924360512963455595971015998214437686250525638629652591068614050370944211433658017082933505611227495998180553817745375357359058306871108832301457847284460851401425997020413735307353121007452343916235561947630795669347500689188856622087324020817048535633148890640135088264274810268638634527706706957677489906042388990611843519300914750550229659089827151099604251702795689109344418763673944983220377283288643132643146315080790565618617070310979821456252352095509335747321270744352103611386184820534677468706547545579777167742057074247000976483029790377624522167259813632201417718699194580319342219799692592031227728823840947502787448179043137880614156575017882150466612054087534504949392882987088343087223683722710977442607471831591769974453801569403248050324757547710765985231126399751580743370772997707108557920490682053259954096906993728727373646652201798930806260696655198034131239950495467768233805140235221032568292304945502804778913829813275693416763529412380672765072958364009667795799091401746325572929028829377948245495450879005633400952991326916097450278842978246233737410760968267215306429786770813746196786592843833841131057393532554394134592635423622154508635822920644068294431814568854856631523020491980534868761576750506727387958545480811062613752009319978072774226773278743082959525355522933890240936056872297819231399231914520465760260591273191458338971242013786609599963758873461403650612111593082086221414207398018865659366419646852252016758894414026189337216374415244131336173511589090269859173962553210398484605920133777627858863202534575004746968184808575789242423237910335722900747469288079610160909068861090644028161146363892378851776870971559141311331728061208483621590504181891174255027244754025174283011227124034066977208954437256581391126489109018753786653091057566619104171496152917474977425439408065387729156282209810887715686760864516112218546246887802293159513130098903514402857629983898137656236637164530917005602938747509015908318352632137496836246124019505255194952384649418321978367675473626405399078115043264847826023575944322554171769569963818873501849301759402188084149937853709822225319642311663268648672579304152584553266539222062317353544581782720547663324105698541666461074481784294994246191119333005480355850039713428261187153231984016250756095317524011046716034730852881753393624278599181851631952525143503026093724099155173192393289490425435667243838597304113359966596866295742842051118749362348489679182793761446684702049838337591841196684593004453651235351238651829647554975707948826033733306086434234526060813901477512155703904726849104559532251743016370705217855761288909283759160815314122026019024252626300398552019557042302158397733529354930230957197176845527660607836390920827776208525499611920069603340179078890767471955629541816806946054545965570829515643227431344275306782150640323967865849756116090789049257024187067138139906139081349261940643149738555763512613971041027588233945620277217888445251690447457459224768179886660017757298523204773972549165511849224039913086606958185845918703292238542751008372725556978483508486152009224976536850072464706341598005045235332704762830716953816279522583885535097657694425899835366708521649539765291451376070977443598563466214177366685422296427352016777135168598033043243373781560396082411816902629123126467666980192219165421481843445919585095461787249882881844213645563711907807079829759909709943360268346141113839236302633626881126122794353907953605929243902558444712012914434896950271607372985564672629546315784567621040498671833023587223693303405300261439891818164042255114389379930839767245492620235332187635566569148204971181249594171568111138141196724671358969567130241996176266696694714825794520220773751229151933797111732351735915620397199883345556912453221436727995044235875951570484178769539750129406407421794974156795254755048678824602385468583694468650943311903876834883053791784669801037639587598969844098577920905671911392597286195386995918710757265016948785671664720804926356845249908836576481503205388392833460003754094687159394462850951133567072689174647067824629879943579854062621673661871969157992746719956412870440931980036751356212736541897367185521113012674288745979036803244462567399880361323987437755700613951726043193416405624278160181535041034370810843859560837739936004273727505184895120409340056204892944263725791288430726469375790278468834097670985377800625214360983646005746963823956236392123936762880995124080431670911747372166213901502975496183415458694613764320967599992947935387984228570048739871305819100652491202515869674717847497908599669614474050275760536237542266212701067012437985916568474062669643898614322371823828877788526249077058698305547896170144507998830224128055491718736029284408545534146598942102754099533595172001955476709163474107165415238241578758377279178456215227646298668923870192403084857941169717516964527250496562476442786775976125977822391815861805451069907047375822504218675906119001691725763334360245384556276053075112900660414143700081495438757763559195264135993027116805671192469139006497202105927999343460362819525149548331065653104622596119903293135445295855091711040389996098838202462826323007450614236210869657661711406377637746469101396214908625175002123687843697261998747131959783240393133728250258964296864900834526919815769522185413626919965562997464110309101759388734360826884439394435133637855314168833369909940306970897012758847395073087389846328645791298023880880827564000588747674697118729635252307610033415886724962028873363540458776591646722260449898378497554644343056390011126778163521846249179880752075797068400433728116569653246832648906709004865451753887349349182586222653964997216719652736972914139035459583071348842947894347063207737601401299256439988721715350955157140794096674718873017867386454853749732372273644108890288853455936774442611654719763711511557448320344528948864005443582746234837813634585952619897264207417992327485492990466334807729993590167486344450223243698637382122388048045264181773288797060559857038186354734221353264196165075469075130697753282589864706546371518097337023697933357229075520056716477573589939907065164928854396877653431634875092569026685006541563527399923677860220234944635495472666673600804150419411695555534233998592154932740700594702458998492010367001715252959356109991654928470986420567213994537348277528378002479032994125093292467126073203645811099606027379237454877009667924402333132364345203248278434478401043384195390201152490765469589573649550996962515011890276975917117470976178182450176587478590569821605759845350405824834388910226587494557418672244653077820059456877875384179280713660393847509299796922279616337724980235301849417778618544318422733767851679042980639789238212957022554846808046562103211282788980244324588968913027553713215329150793736087000400620605512870462139839728151544139565389696589212798090081725466403828678959140004968571553365576590615171871496903518004359929080991602973440159521739469014237166822088849657950549832063192959317861876868556823758808793283805705295565764213220748900527802827461704414802297432770495808846591966689590588949901861454060443404972913787642596185225760023727393338541955084764566847444138207617329557040969977036774296654728969112629711624123009092036138350179342596582740491969117580014797832667612134968866729215528090736688882088919290581998646554428771011407718263858287692976777086675480179427440142110145210591866957505274555368639350772764928079942703409763590606945575681506304665859800082689907336959566757380528515578974634365586223053567665119205094665355192916581205481679661200128116953491018383931962207442247492627986070743505779485676584029029262296576034273170863116379965451810111579105171872362447118353726231757962464805718797823506571020097224037251559463182739182349709178489843875782010798104916837970304354076097175656258724582091810894896849004870143525309682068223741666549506838669453600905531917294579034932437858147448995057698027245198571089526287436197849616572645658982804751236350290078711332002589394454631739716442090141756425035627780367873226130081201560202396219418280628526979768603624269834987361906424143234385336265924290239902055875469140513754959013530271785298172090359251586417041955762357685959865985466273968389700522992067356223075219368012935945447851199144868379077719680133045493151861760701897816950524997188356374954337886651591939214941619080784461400455014774739885754533798152623571780873833560161290213083578854617752063760229137780248236163813912714362167248076987778448936480768640792505689245202240053614620672291659063202751190132195433723766188192970696480029585270767524881180360022703323141226888100046889651177115285160956230462878230995022374689048573780107906104476639014426599878728200718837699837241160579764565645561388582084235283776137254360427036838913703626273152987439783748052962603783008989184398377976742826705997690589594947217311610688959973579894556296754707699915149898588813658357229675082956254445595159758110633550806009639699798232506843467713690238985518229708262259850170693597439351400835055518987854380529500662347068144721033181128493876708450937625458094918801510222712923940091795749946983449402331257625373202755094708086323248351616326410416433595531585235186803596988334627516918241890554989213457387706154089094092085859954625113802647585836853199414191553164889194422164382766814419454822266747426667721649373422718236590062201589719614756842937675539688340607447857661882130419609200403183467947114695802105287767513324169725517001368350699711703713386471742905969706804363240403768680687147898166565567113091927817432842610554821064817075194269027223787989121016439995373362212225724466819125309806828441277604635782431640633657445508682499416674796247199797700712634345290811563587511758498999002333283495107853175967849496359236199603792890473895143025768527518016376551217714844055069271436825981292921631416656957621121101586087237326485419239318401508565644760954068030629197128487419766223936375461301330152968572017818904282730096629650391237512035479843851789482981472681575543189622507368191589746237143536633894825556717296143140107312881424114738073657122130831483831144849914576427199396403622309393072870983518299527149112948502395861177020726168964445571853886761901660205290688352416918375700015713294516542805996459464517776317377843058212977935465420442428314573630431893734765653539047562074189371609334040543971132175529927095521897834631507068394736509566286381949632528554169868703401616254412601612036178953929512698218639076983874220793969297070575798869172959183037541541658398770077396552292721030953814622309091875266367535669217547618655779850923020871141818782326355682772922486565873550533355562003263376915721598935341673083914508838718239296050459399386005988481976027840113749943139658307226123341948445127407559558615704921121052428468577675900783162258514383068953769556854831522498086603883720887112777198575085860387681879534183335411958122247528668922629000545987574029803097532502202507291184409504642714422397384415191800123034273223669278664052302166450328605412652661326070041063993265061795367088198801313083628032417693027979432221708559864201100053935865760334099002521634798495240843340842389667594664303622777009850282548996212208729053063289547955212000302387609996264808533466244964168093251459928508575290568860186454283470781201059518973722263397927824061841962857099247892060481321051119553509843994958496180042124572741387370426253652730044081548364375049627545581016527340717903446385141324704305932301795972301487590281746849209136106564676485142245228323236179597916233420515973117289656727144208991324712392339827315843293618274869857076473868457127680052043888806995100773938664600456517992928583428822640475203924702723980800762347701352248675739720521366055447181454423830362539348555073072356222715642747609814073893931776266848852431197102497284793763125132999019412683312234735937365466775786724178993029833098881850560905015638768889497828901824621632484813740652198848042873991849540927757803899480773621453179410910510638565728750829468214573976471524065216974219409534521305455508560902235068563027386823799619431054490525771829982388057342596727899957412990114639367085430672794820515333940204827346419742477412169464811201486662373593097912568355482899669120221866652416443817336324564973346347527810623620011172279032063388774876230683551687124411287707232000329986616663019027694124759135695761958554674703114394730806557410537712203931024348301086017529183373306311209165224573818220742573299968081762490823141097914960641429597876783940914347543952123457456668889529709531836515282910912125598838581054159258452089265442797722849881450433912219552525480985095111280271191869974308419972796543657925272956268750727261606385942358585642647187078000047062238467546727472960436533565293338370699950512566931407183507106413281662761496120054472839340194442856039664986113361350085882014262979212169782983792663389491531801399761384576264214236364585326648661645612909514244253380835757821440356721792090601764482941504079794660290733433469375462325117796355445202115735373461730691461228439643740434518630519548976898649069936571532619769456737641533606893522195770970734350873872093117743091037765260406078778917244270939114858262331316328858716982041954992955148986331463394742904291725395638080124256223259808903142992512212471522514642562613654802169836932199570195499262720889233867273157015094288532535428285991673052912690864540623194326495309438231072504668822738343288185083392922927252027165298582531936514937853183035133669559709426229528399054162444461252523520791360032460849181745194151802605424363208608396816220311981973181717425110551278508049767841299821035641087528402192581819204333176600807353148206993091296441316959112103781473587805122242995368368268877960504183047838354906113977864791909867897207202152789554585946122026438862031248517106820316448766006315850935876394209907449160784193815108726002877783442504364434358584552505324600598272088485094644407192803615965247724742965007302455157050888826000715760474202987897180925453479635681132558069624095232534975556217695324482869392501322084299806536090221130933192886204689306479214996791471229132483036828884324523027805142992693831878287221098827958442510732058916012617628288200633266360088811744773585399646468408062342644738677752922250844175775799401402863134712497716998166924160490783896556115569596452355729428528299583855349015505547633896747922771742909085560518615069441160633332247825075767236695325668553564541111318451987676099909872347189317977302461242403914122053272140125752971779161027266484442156916238662339105665292116601507783900123126361139652417201773325971632113829132672336113395259329034606793252342427991949835698566428940516915090220387920639237352495012343024229850631964887361277344083703389177519501920268732154194752546121762946768668994196169865893567865499159724240737635177402974071868914978830078305179282858505876737397535471648476093458468313660550352543171922574141080253476782769486419479668383457028084819693666711917101981030723284372053808581335590157242669578593630319482519009780034902443419892633119088277647406947296319146262237377161681309116566808578593081819245713666210799911246766048681969691040700583003094264752863032012078847512326403458233333607115618023146467501101771379584958525644521561062962813611440736269431131504186823635463250683329066364086265795560559063840883815767636500661337063015163074936314047581136765463079088033673658592974174172689004512865780795304932181804754602688610076754057936741911091217812805455766968852317447977284585606170806095085218324337591566090055579768347068346152154781723759808686535742223132173762234945077478310227301738090382228178314491455444666506505669212633206219068859952310322783464429398293202348822005302336493065781114931205356006152745797237816002993426930517166561175893297477889703074212786710763427522083024560628430499019780630774803573025107023692694024615889098383991301521035272396810212346529359187025443157495894784517287419922370303275183285325103307689429313245170625660602431369980510408004806693845943670502031946423822424304414833968015731889592988458571631893786370982350663073068206424673520405484717585229592262415360990353934508117787123107576277748057658037739812558555698234062688701156059765926952545161664561269270624763111113096099492807748131918442944218804976714799739767426790317982338987278975339643921516466173834148180843759177019338174897796946723737563483752885987004013363027667986387328651429790246481361401350909645608423120080513324767948385459231951199093754605134917870277952312757460533091412541483397531729860241146482986880548237017917832163037956187605277120922510780261004384379351651718856375975400417034482634425612310357248417372951537872013853506467049264709418588150123181020773928133089395888918288499203615664525388308248544830985447041825633274692592429674227393586470637851976564061877611320054336872144982259434498302884517718093486796652203452914828583728986457561710659194593851782835811747289628007824839387222751398203426787197487812748445833844321225577391660008983740269492585721703325804992505191707111829182499492318597282276949945691706886150787600099153139038822885643031462739244110699223728507316157297668534111817353027739163982222419928772972961092051996081096667820779174457517328909465440371816452543526007447739744353044249056393996270816677298256142332220958825336098400163158271881951638758553682630326046126069078837365694051717670328783362880131877656453364924372061094618669213956393289623689623229434719893001411439493156380602151227009757729481554517533242714926155659995212271865564938473912322590654593074385883368478101100122678330281153615021132333810338619619721887006019464388442624991940815002471548933497882574762299969660176683081076490495945806885365491089702844189766266487086159736833193054504139215771579481171174679004757531567102906930654519931810598369039715611959514165343602543856237465143513939100582274417121509502478017739566531548383008557218908103770732772113355943806679737600359591336169096196302562625659472618044423261981357190293838498464834517351522442202896114859862157596871938412031312768269246020802658502478809608457589945705585179751376406858421459984798976336828920111837168383592323682364422247719492256373828991458320314656346484461012195113773493478047413705411559934642558227435232237176426607697280308675297899464711407187013600521362827436700890944252916568869084926023183809750283716881271077407495786721888537529275049283372666193186405646893418598463245672395324005742929254879689018863437040343719541252604891483538194318834248204752543106913444792612868798515475703229307649029938475442193244930357339950395831418238447073879360229742200448894334699576401020272639686504988693791747460626785853165163545747076883577649545226314162985608151251723973282819048793036197753003682178092615330090170114796014900351811585933583485684839067845255973311327981147799268859377491400826587960651372459979110028371911039047195253038391583700385578958866955132294519470683425095345059069988419875346096740527451838265826233314770342695522278239361185562501225589599039477610253580994034094296442267348054304257935309404826620714475393975297722138241275527614903345908410129285024249060264543877869285885084229404606564628249681489124302720742582397084963671933733391744645539562373851692248715976683537919866893359554587651738703957203514605944731873352108665303019023849014854751592983443044684022100496316002793633444152458521268885814632830705374896389330074618699189597456734689367789849924698102673610638410371433797596045628161449445624907870414817854426168466662299879536801115033312232605509222781502384170303390175706218988911661922118899016773867383174379817153599606978299975422909377994889501116447940578956213012420859604664609253861769105589654167732615991310467154424086718034986748437173658640952530937879376470162134016226409631039947135214667802469728623396424260472988740468924964901201305312995332831301762919862649809671393067365259763938014104235017457115595902442024053263914140374672202287445959356755239792092079693287751259367610158283988484134015544655235084681941363795195252589462972130746123090158562965061598653401658845236845959984221681046257357954764671523610487996329469204092746224617591966315016075308401318091197449028114722096511582901543177209313962883813819369242648250025342257319335828608639403790964913343065989198184537454647063141754703211522344926968009406620083986734568649468630973480894876334049171958171419105280050490668535887232438199834074923538307712686952258365597923273872258146546943456634048446471167296158551934082010762324409684677819815385076285003621622011806586349332768692483841851048446792777506894167000130006476477516745271840425423790893641903550752894695610575100693476504850959737553236763824197608367415642588615096241058831030518077897507303297454682595219811250591413046389925395867628831806037969399218062467543879370019722114641416123147189282884619573023649164390483810079120200788763933837516403643675064965093342179183600729190996671779654311410872009322761941828754589107182528663897539788605672893229667547457147685716010642897658250053350363980792292632315793648255757348905381438133178153489622695981772725087782205931484947395459531349630542485969980142513063397690281546002093509725701017845979721403028880158071942130129359116979268778715886685109699378773083662002480326200983805900710041356849363583736182578126669355267245942284711480298897460269636863810616475881119444000774905190457412584477204681279199885570693066294886762422088755007283649416798893971506279812944199129273343054448690658646133942047679900760172930911370530213952779436981658774241415826341953747618772829185994565944190980693986948274197558293877385651283108377068251962742864971970819410331493540154396472484866750929364383570846963954410450555531772993709501206462924515751287504664177645758168852284885322570961482344934633921552914765963261545508599985011737846343987008678788110361914415300432652386653042154141212978774689704687989893735179585404192835457046171317320692266026953045068844412503129587429920989779905757886247826372621599434154455753211823477086413415555721838575438833964222592829048864514966994078218265763465054551967628673189990993504820948696126298927933055346960740356773459837297189228198076812823697096142823197545592750539227345104228057229735251968106288199590398288410165421210989723062491940903773767837542369638452055440407507705548509839792924947856465468562922028072127994395560959432662174053605453536122342439320214475822935382315486621488732823701235807849709708273975203317378454256397860378348396911451843211999287014918756358507743688807124260704528842159618559005770152212992341825589622537072826123329590090577295318804356326315756646105116387218808149786432117896463748915401302981123286383184788607260776121512396317738571318739473215901152269598993273750275518084646128086297896897411122686663121688843262985379887173954940645055453396018708683681684136500696917988981814136484379281883214189868507142801861659781125483008939153544767457150012031774859933425098201604541757853520782735270490110213472495392659737828801003151781685178971388975590702856757459746776206826491667963537230020628470102054994754348148253456905658571165620359481071143795339739568450694275061046553997035846570073943059057425405911373877207594255591122416466558513272352995416712123914729681886701232877461407389838762727519771591830156680426386768816617264383655211541729446748727486906333000089352375757236600396630511274632680301448902834138784544979584026824071974307050178212993723846478425008547932491212520717903439134274551085167068309233113842661804036978464612564798634562236895072099845573893806790535159173427625446540720004089324239178445757910222355185258955887086693543631276334754077958617837178768345531328997200603261489766896039316333477285735644891205312820405146653154050327051607452648430691370471663691829235685566346909798464938849356730482915340629326794133368203639030101560562483633498185028915802806719155762311467043028704099554109874988570478282606958002993828569514705346765859136194165373231146234348525745252501478491176706243286885474762864795856737699369581925528107194416141800248915601339129068321635329892780879006086507256249565549339048660474901126242511866946092189778463840139154191124563035890967072973730543153091464715740805316438343534163713122839323446839404801750001371814589002183493446587674093212824418565859063316270009768674183449297587491276192108872043370698410353485594737051652260319806419403036081276685546028240849754089278079704644975604764036731036571582798055088847706560944156126621545721558534531817935000206031196605752167842696321126177649006583752892555309089311418923757980497958418350072710376663377910559537347420859238014717195193362533130925120133451125852646681688110511129125355121211927305159275923007150914101875197841471851804385324022310733680591389375856236332333829569355061403280033997034843344998738547320821763424782111404493287132650346359013907622479752399330446637978002273022753365962791445042211446687582090334831538977453687799214274878101737224095327005245039178928289205328602683637265946773123086599199539378492210133519868689646926054865344184966807055204499324674865268737501892751139142379334420459182806885603748806624053885854189445467066401935853158809991862092882837733436307888332268026273287914464946485106367795665690264631746224928510322998462454265408901493432087582917129191349943286814081899173122517206435770100119222907739885685269341816498950051635062623001615250163485236531075220572003028384205706125122067566285535101531922479938016081795634903319322822546048326266568825682702155418961264677146035731560499465459994099755958569998964954365016789021267891940975928291053863648893570183472054065693637829394845515173024767594336085017147204953053210464295786434404118186768545618393172339991459436244173734681044963945770957534525686338966335963700272256598431012208974027696767540440764850404236390047942025402444934985050152339586172399979009908470047863503088176249242312534341997138036724121664424374889303846617924971150875645813477636056080267025926682068768846974132212101792739418493064316967780810586580087396151106388607473182782786590324188203861142308695117239404640137840203875305493012402760173219394692495117060703551385106684275931964460979093715854919367434224056287462319879462658159272271436694553625051164154552376749304687897210688519478215320963633462351847320204734493422418356189979271345716374788365597976205608836415257605725301317706268539171694002734519558226580841598905360932205236558554238325667805781058800051106497321702503324823660456146755109247370856328565973868429080046160432580034308589057134103212236526474909985499993457111144359041116839881786216767545231303798466142807397896150596968821815395684508384919087989833200915708442788788417159215852184341482137487598482852591546432103473413948432078072910589275406182847714294382133640261492884295039440924783816954256693109563728829988779098171401001199264082245220497568877168569267156941784950195808974215401115348268631368632886036343542179556304605572669667584958516426736590024546791996392960418849877256862978484690194901791485170864813509229314328082724365938544064378017059294682284365852128078512334313754232395710944254319067616029221712054841219491037718564482131620965224316935089528558934136925016344723239334215059796319192734247568380144985274875479826762275377127653693467690831815322161258856423599062133389814363299846226728788687670028389845964894262243418209757333539493343828746688825432819962574975183728484592772292376765648321367609307972451366325095811306788664591111226236483035204019433470692678856211380815160342915316079284928680726241999890161361260902173523425502230615825887173011783831383401150555652281506424785653856773689606414733206229669508556442290948437980031317143597854312650627139411030162633111789345164367325084164202803690471444060197591492190920391165106044060206792235059449970960645364101718231270994394540087009157280853078391216726958514275042112756269802972690831919598454985861135440844101310314486775428410885557329765575007630590670416738870553484863309689212027091052398517739557367825443241546687020600256763870452849282737230504422274815962723258307030339327326851375041271630872919715377210055053732895645499334743888194050725843851038359613161053069989922471369315597082106372475079733732563360046194450468865898396938795017426636748663841810811512783266745788472379939725040384136221587997633069278913573080982235348815666103414053593689881241702915874319388466805789512152480532202850091510087710770093597425519423060478351048478657373283963594480204623947896126799451800503858254554719333928735445564553486796879906461281962474613498772479130226290148170608161652614380520376657211353940757819836743381799364201793465818567971846656761050819753398670236663193663827072731698296929272489441550877342766476345225788691918846347433906867205034495393549450062912802724245464766126829377293875187060066832484407862033406060370310433967786130859424154620977705660644316685383869247319282519372297578375678541676907122454554386785845399801711690160367957415755444893693388218397902069380732466615156246351308712837436993936675810812427229781632404086135629220638221096050145964470113219559224567590818659765533890897469439392540729335279915045214166350081391158784135593622597125302208120067880843152355169594597591124875361254855171383419302577691630157924927779882136679818786379603780436411144727522375109065178429858673522124121445462929352090427650090792051880996864462774378399892460407537681689083989996645589178559171494039659583782844920247382143491077810762820124334004599038354568710875844403613374285558964388621872622823368533133783781164000202036907329071940008204534175920681206223620532238553750690537715719155029024762050129318483919599752536314701508755882101033844128079410144262419363672330042905458316392551742139748765497572353971596086159758860491034341054122243364021980638430919126946628591178775795162086454768289575546756690741420264925180288001940604099701613207999807273596689018145663733950288047672157942654174667319920047022778801588170109920583977946105891701488555688973652681094183405727079240462454939647218124988372668582578093596498054787578011605081525912774918728357311664776658742055969210733948388861436827742876286220733582260653372683760949513210181174232276457063282269169842325617431450713746130228896689311705169820718933313373852425345579474527024388472834768388169769143209267017643449775178470341050017295183314871593843980005084566803756824602458597136065692094200429239194806459562226538988161451119062875136124823074916003044699303714424775014100929241108079094442719602833310167771389430116054568529729690481524360029063290291480953079914069300393920230845137986278279450875581879618523021784477568337539862757638996829984603320129325017328732075217000585165603478968722024516145644053191841430930177878338040092130934036887531261322658487315621532695181862109010969668850937558295835608438396456401901468982558385474540464721688201624421719244261203092150475947709731504620868338709734235736759912301941571193473457383807338309846167007469124520626360967612480754044486387583230275152172427478061153950701268816978650701106246935880916888450333530234961095300110479581667072372273793173192077957646258920935608459295800886933229068699241223267149659111780394657472644742907069472145666432177135388437356030797976100472351744376011707313871468565946984848354066891656087504639465826899232538738675749659531931747345078045777453630559057488280157769450950290726080583953800720175860868318187077327521512520582159812849131438177953980261671318974216528958818913050033622064144967870025098339963550414623693407213282716996229203190594067189659282696346105894041972215207480430288173566550092479223371709419446301347328925343718716408684070357104504076947747490595923656716591210561272461638981827616241864787014958778089344560451617547783949941848761362645498038864113139230878125055297657556844978338074855815743115224773086402361032066565804456678699193064458880763749417037142339428314527804317219496507697421884344912764886153441395471290624917316153976490009669255347719834416885911437357853627469045056393886882829562236160690569492625718512415314264936418285970764836521941624501292564077687849993018331947576321667049565310535608283369449611790703295395598463877779074177807897184671132190727675605772825983832340132675522105145771843264625806351432533802840923185003391401109596697068757648075016136646904029170945176025963700438210825176287190064120517674596350136272102389689263099307297573301485009871688884716218477918177057081958634139956437734986295773252781076666075563789847935031423139423552367941421985962364833527837143059975899122060398409961211415961503502806297055385940649783553111454695543100007470966804327607870221122226844565942136634449556881265117234407089545115795556808393714547091780785591435444244665474765761562214455438608060775995919843135666268596732376038551805140521812655185358810388485178029782116706006135722618860868965227065054025192733400732051961516082540134805511679204622360297757339898987030554842321917463488018609713601485757575277888289040824928515667508895918630278114958878630152018732122705828045237685091605084250624239593971791660350221331560800640444111480084622913906712468280385366047563477686947472360143128053636901400375075356044996921609674404675542098292358262052371035551249662270932196966745966586430744327654785265218097915691428424248815459519444109066955033283591841447344827245650157401346008152122376703655490289439107408105812275070614836163669361086154575093755292529784293672709109691244719423627323456625787791809868831064159753155322390302531715176791444599874256180451390566755651588955649218434547596045302647014513273187306348522764733523913309591281147899658218957648956993356883016988920188635818818539807190113457947015350930709720118817542322609794105083593409482799915995730646518060782456853797688204197608519368813696134424061993581717475873530384232235794326607031556301205145588797093056722647741905322697636822113940640342006368300801434850406199588881224762306681452319291501000575313924608081455042458236115340672666122376566256179905573236505375445961188283104581864608343162539421879123131479752514041248636179274209038976397365773658438049718505909051367730634923427066243504283863688974672597068000423201412618960403356459136315838626126025595889385146237103814258270923896603278052778783169204573010443824663938908082167973663752703438004741507865233589738365246294413800903659160333857566166408623714185690233887003809198972063665270132604000919718469174189010403838147401617372537427542808180248562570334599035422105037725877634603682351074617218500103264763707416481748304221184949747308882267952975359541877518354474398246335411399357781896806384715321826391570093833498247953730268292757215713360812342825662117214327440363269098245589817894714151171471374429317368368499372247542570444418924127726515518892234704541179820202980913782658197705194554227118270889460270406234548214552265019250643596609804648626432483595087676106293592854295076218942123754724765104002591162716385421234714804220619595527188782039333469501446870249925140639453075423791608974189360684734260586903055465421198164117845771133341760313567991320769172316946132824457686750162690772261807619293593601433077408768798414797792979971176833355300459964863005651774357598449658536101816095379754438283437193902976667015911139696194094132573161786371480577699559686519859001119450879044199436271589166438788734506090876537661033301200894640726847830513163310034657993171763835802317227170104600734124546008382853617274872542210668847988804083900277116984953900570197803985779108041804699892254587711615134147587966412905241976943432147994833489980028660023079206967632531847092143408011001120909588348471360569472880157685775042304662814205524419954536411014676224612398109381292106115062049000677930067220593906011158753862099092360341002913270486863367275185236345112855119042574318391044165060957403399493981481858734043490272057679090459133055613855408295192094835619642726298041103851879232711338260435889335304577663811132116011877675216779060338347202031050780942866874988561068432151248726165470575533534373290748511211288898924086317633989710060579527090205099516772127374360386731121369683769820188536661696570072925674658507598371339881737778982559091646616622995082049844021878823135091443282332130038769770415246136492335587124425589872449823118700236367889158926560209905371346657513631995283684072325608129218740350953023198005508069628988868006811232880670589018012204492370571233414836985189752283929270716203627144381006236907508464707509054854604112214581832077841220257121681752771024805377929258069025193639822820002883543950835944767987265435694290894198018406829402248145744793873128834512150796709720317907507707282838958320514565652547700187348287810917028289582804622056046063837373599875155036012290603204164609628585378003718905259233683311808685057126117475647706541307874305620277671040994756341392645237592301368121842320151649899754247151353223492652477708359950188577036066171412520125657949029576385272835373390290422499163843309977423408770587902433461063664121954110023602156690093947128344209050390346229091548157931268910862436328567725543421919809768884165171500244998765510468104330511929371587540960318963675181800142989236897825708948973173179951046918540199910916406593094998669054501832903676024078694041034090861199708149318544865692825477532835025151781709655535001909789527603846894793440413612511326642222303331810973009332734416304138165649052423894831803438966749541720548178097613555411864886841789734575058945498131574431940144344071642806218026367578435119579137827834153862242521555833599690160347434922574343886583600625614502631543592963331862588361928502797613119303660432258511053269334460577021245852256848018412750337259420346808980631695516072286373258609428242343264892196263491483931826181067095321632319656592553797544161161382233525532292756867107110347896940241830503931134773161494318566385502991982396448094982061431598823187631144631746158128333038380537637376126212776194117036473057321686441039629000606027582639024686870969937469284822535371285458074193005997587178221338306300045965421134488669837923506540359413905114046989955127910105981658157595031381323738671631905377747417401164190491156147126288106652821994218697062487934243863566436662211773208474104247784661465136655428105292433109030515438640247096869928824138364625065897906480493922560162193944961398550474293943571736891775005764852434372689140145480307481714090051674773479403472449170156921735622729297642153995928328801760199877586767986317060563582812637903586100628440746739559687235357880729990129737733969847636375965047200505710526630870881888334022996936541676620855535146537667588392277198461562822155604201792025156135331149083715543119997348014512709083774052192480545227737372758260115312375462856059320830225456878319349359522954722954587188640154715008831258808812492717528097631818828741785020415965145553815817127984166206785497538588059504674250553467888440853891716000970871389808304440442432124848488305698721930821265978185059846580022524919187183177391700793159962073484660318298515393838197372706689302244514432079403536079986045890643845956612554825595828366246343669963832831447666204491200761237807462142265098840169731221709949416845137067157045666766089265409145675696143871201319230945871454717167363391905702230649649732942880800499027181084291450470800783015983986620353903056954880431445561078956333466485880022963212949949388975581427881678358746762947841475329883262671305894450551979659016488419716698247203645759744185145515556578704601708385315570107367253492293050377112028377705466170299877325617943759756875132451683431030105229996904633894269432880926925928429664299107882038367105546774415229682355642586165919675637655519261411780492143071983337633493101011442584906326673665805187095110010881165347953006582692468874991700559373655924916734501765653902611584261039650545300972404562870134713146574450717225406097914654695486354352391149812983501469791830848752293571382667007852056253259682607666723198971314865699648208045847558217686570371660523499893447119071546760013759635190814543348263409022895040651921291777098348275609131373938901289144926857784479594900206962623454767818150657314778864500929095037972788533511687213979854315963586294866552167893172354096478599607028303843710044829099626258491147347948173197429846596762104141270211662996305562394265153933387025070411872155038242230329303831481485684545658380283984912212797103135721780816274860431125997011283897140775089753294438345123707629945106403702749892919227619866603603840997559717586173926395085567136582229225973514306901908271613149759330741964769348511893461783853593813460179850675382044829612728753417495505219513117476552618517328331952153742533907321540465536353287669610598085398497292048653173117894421958741785125913267837200889657529307327459774736251776136238207996949249274067090909477020968317468069990085719861181283129386696997979828470661240369658311934024700104308605727276144871067647257296932460828007048858378919947467284294832160469830982005286044795891781671372999355436174896492300309835604268793830315129357754725132088938081553977641581330324015983633068225136179218516954402426669778091698847149172188541933196948589872683732645044289043460263950778828298024680219977221168974158450572366771274486236481539339746400626760874154090617886053409809376883693290538140886557388087555494024741626327615253989637007713283194999782512825359028771044078192435977041111336522942319393377328197044730634516444151327338242114065749743827683048642020165031609662075393616592064794056069091821855280970775903466728738769086038139043551198610421257857796456458076257920110769139950792094562028565297310203207558109386391932880500083845145750474539185338304123399115991602888631195092889992780956525263994667137119205889328447931357944867140741232744119870869768067532185489380494543099757430504177590696217167518849170653113499301583069107885879084273194772969595753141284114957758670725658053126021039223458742203515419933203338440374841444013873282406242668711948840536773087128003952917989634340257258836618694013974509339957860054294955448916412346304656696909248830385420635618366448929818248542798244116240849341442047198184073265453957995563019939820723646554976243797943828905710066179322844400459732000379829936881636633668716756111951587720476119598753593533858424309154080606152942909160109793918140795441885515003027060101367024806699071506263667789504140569250742248588035206406131527203970970476078405006595939954641149917034163117117386155988837918119580528950078460660531843763529648375861142648641489353867620069416687041665645144125033022689217882202806237473813620957541263608356618055181419851809837526219542123342180810461096503201661100303782731980056895027768894185878933766112564539544274444728179801541795715966087916547239083609871363144755520259237524941645680018912466160631364585151413938060019268284095583131688747670882308698005246473130171744871063523451502864953256305057608121364634361500035538565649054035889115356306829818483182593647156782171341073076271600097898256921688651588210341724481250195360526585501994506710471328243883950685460483672493129517089594158005661428097189415648800991944512833110974276650037524796655163718537261154999510488961649326973716209513343110549380220465022039357863455478112301569193240204119666447217192353229863137638095516445224603904263699583964507773645419788785607885942610159275487462094218262500926471544050372912064019947542985361314419221974383455198252157652292902863369067288944817133372312971074112585245030496542965427918004672891518156181739253548622673213726381126684711491171659799568963527972502748384254129446386304816852852473249323417966501174924550524104881010683227876287190407803531102677236630988746594982955342336544721756550906323103069848759299970563068911723977224150927363540297699913210394242631533919677138057723834152679124346667320535766956320156672359584238359366005431009301257493043504331781243773903638046867527436979729507591261782359067095682776529300036558193756647652790920450213744304757745826577193530500531396157573044676362256590816369160281984367657349926045548023844977139772973549965490137350069363793902407854814832054086857350673689200161146872726154267906231224464086647629416922580255610428662819122381613214070380649142528908260791270431134172794663221809861214279519487433687941407428139065393320192595767924964773427632149329779702337497528136426138568801756433504425494046575788238632983720890808668988890710480024096534112904735689109629822941101912848590418324619157297346604811878525751106574608245753302224601919353796989881591766524366505054884468032212871482235063547804955646712659352310970551496827856223700703903256548900193511621900568849639129644449554511218583431558010074782467073943966447060528823295453965799511385667827567787556340587520885350381614197130463349332309210998998686349275434944014566009168136828700997950128007058251270986374175150941891564645665536790319350709100716629638809737283147011773934387800780967275471098941276662438755072662447745416497284305763168649811113654707411529131898861685254585924028336003938773672127952712621432206266292430416261369462979588144674945863309653785845170584946442836702028179117701061624847188096065166439695713171449577849986453081743919526006538230479840288735277036714453169169180080285994014603069090568495947296663543893752636188489657095226581269289229190666512679914597284373954724861789129165357360238878437281435488379855938728320549002567895817500260205430428015079640194791911311005014508390552708246338910295635050336316495408321475242079564597982004934312373925208095895816567410293582119964521406162043475613658936480957484859718600539112394867075248877326132898820332203150869273293204703138651635688804323120871943472407806183810480250387123334171227218878729535886741269431935456538818517145676346113903125710372539807479317580700054286188020004189518724273548636261698181180842106962847225282178737923485378678244056067868385262197950329582199133165926553165457428905364740152258664220331649905820589754487459110780964037048265474739286482830984939820146654626863231217428843039893096509616607366592808754881453832105861882752128286148372527277446147258162020907040882194322420612121524582668429948740103292842632356077629772240231926492844636999183466852604313673279754480602319188306322010487830970314416759659115967998025522491499089846199502350374974965800956989905362707674120618652732167958204299798049198242268165100588182169144923158099951993304475909090851297273496447357004815884963837041183339487364860932145974515856992410543013222676165252075181713626834096179310190054265691400503528149208963854077663455443748340924598541165255005434203129696011086635728841852296228004019915863061581839352861396545388724959929651974376327599168260987766620543058261015575913455179394515505772149473960042882573379159135455786222484922177439751831908919841625248789110401417738732954166879239742209170171670682242175053696399524131133661818981923921887234150501905311881744049264526895054910733476657818510999254897622596072724018065883321585560856500667511770147155986402717156815300597038446408032317870538161566689197938549485812434098815550402123979222905869145893332915490444960543280789082517233813435805871363249644699892385984163527856772894632727547099812732977844855729431747236598710762381534107274180707709919076129104348549636918253723121189758044681523937507319214688437308896626230800915184295699073513110972421464573604800499270720946192905378910851403533642186970392180470613157734245445683242576253901896701881750633325252012085134459524249237260979515752719602827348711945167447812452035679155550696653898712565608428094596856988830630444528472582436163745689103659111295519433960977269888802057504384760471207659916341452732938212332247633749793684435989799683119239731823567054716959194805967829846833486121670036844266518957660275291667533256312971819856083012316160006828654466427051131940598457116601449031932383821799923634232145784625165279097814692957240272337407960455361631499302646651986931303452304879859630534709350932719183421116501586349358198841114370641807249418222700008453070909629325287580312422605597281776514973863463355113555202063591579702805216791349023975910170916026569233875297899626275987489548342916590514921144466400451013716552685389774191551508550800952912650406145739217971953884075466631959357716104105601956664957501225876628180594542432176835788109437201397373336266857885675150820903595324615912686447830772427012500020662306026318888240126156770665823399515932627954043124301891395125854363381481857787863756402795767534527730416564783232046350807168853994009894856247566061568928824607089734362666764997576672535338960033333334079901405708570830381594989164479989443738091965796075874972445965810999817072416858067008996474226021467982618654008935056954151932889288881995782391347286814571678143228671072651157294815923846061469995600523329707158050036259008732802087936599363036641823842844160512913596608615736584603659581813218689625950338179347974390838732473987069176695087915156504597412351924545878610530810676133100825640483339740100364942356229371510364143911984854045536942850377847712696710270530450260658591675781995917085072274752555284572514992153971823847318283354612764543013046034125742638714708771588729196394597996825824411775396989272491327671381635279837751380932022203690119660887652596978026206472543393087856585232738671153656316857019358980877266650209832343074499020311129875038568638218208193319581948204403010099373723155868203395334011614281783440453070983358024882769957510612552490614679935086057477046111819426088022975753670331714460524175258813477878607949272553777805820957421307577588033536540397888339568270194125902477377446852904993922651759280346599599455738444402250865857883063243937316999459349464663189320826760336027064071965306321188609749773605025025558280704527236548450202527042639445267429511770395412022541967671158100573455911508447526632320471705287266664550206077609984346748293573104329717310749927044323111021896333579204793215352551651504227880225773369706721917075559415998210759583594631800226155120473655429356783903264888863396664683544269690332913174743777133544727649364137871368587127801388649075657158273160422172830015655778194466343711231679078644777665562738430465341135523183958607707754629725063546173498891344633100331471537615133682525033414694705476392754657002374110973449570421150266316763051391904765796859233603085909363401591420709749316747401303064241388901239700734485357541107094205749214690251266142390407224564782370250570546682547776475119518263892739254976503079599766063680968383747261965870361532366216399624029966524199637318272374984356796986027726049793467890498524988090230082321181963774807154136019166484017384483510004652677994657298615061491378785001429325205507370650927725825135730064561393555007968826877439481028714157773420074047996141745807215939485221808408387725810404049743340156578868175036581118583215945894839952540834491429471115738099523666020519182650310414374765305161102824627668990965700555066062679883949459780331245159385181720965418812683159710793701188021143464470287858458334209655101759043161650221241984820882106354137786268086197643404200771500563466143369140270013481605250564221188812661419337073269802230547415645535979060767924537279585887521928936875567902115048710310387682736679314811812601249407451349659407628601061150551473111833093244960001279190684279945669983887453084836408442482189581088239052843251017938031738072608231845522301041378209122353300217065335488189828529802033844466589514078644033838110081943397304109319599563223887642159239340141086924877922152199388494078756558467724192891721831425741681094761193191887910973947357275404317133024413090970029921351357027130397243889326227624175530482258114110929368981011040135872485466691502791493937465076185704348086446582343628875608486141897594422540105103466177641667288448142287139158011199291558745494107038724671972123744144570722309497736020986168558957302743765622506414421864490239575339815071647696031759316959220331334387191238940631595367948339765850367056524853705255701259362944033274346640348883789189204038425763550443294187637070990432449458345340568719178696011851882587910599721549507219496488689904232978317410523921892390978808810178199428368962771383306192303355078088607591595123463431025833161550275834841623596954441908547495303276843884809217920333295809525467991116987223159364276204837400486798226165443903814112947787458841706399723295781121960535129317995646703127063457103315116670782738248878042478396630871554273346956074754540062997109129543122619013004248193169902357164299735395943208390584986154081306603191957110115180389738936117609178019141735265287774977841135543733825568223260406979051516509286820480557838860801597696457874838901924089296128344628099664221714852970881490384059182152323800843161878436719147639946029582505168216158550233779182028340949947482109130034229576391218089992717948376929325034569544576956505318442942618695978283340389713659727937655761305529199077026214233086956545913887322718361588092795830743395385013605101545140290034567260424694267686919708331681165270375329920338562184194345813720624209966135460258418305018746237199089489963126252489059788244069464607643428419172651601953247124304171735351005057526201596760682669720050627695894771608019183033222586231870845358537486379981118007208723085542095898513865464575624215159875245260107799630047406268376259574507286116775525226702437099071603906682504481945837425837675360156688351179496422785508554000683520046657290553359967562448291369399525256377662198781598496478524470287338852100738467712590345598354900360448059851418714731437323793877422157473853197458386123663847372179121888016482043577797140259443929233549352893727868181059791533214431800696510650609538802843470914963601220004292413434581019147841602272671415936972746218258735287403024702788340406258025872326242662027982850606566983731841606390131935059389514013028089616594858510476119059930009212884595269338979343817542214534914776201920907563170210308929433597788437403314844506602044368646238120373142209787269838060073099907672477855406510233786773058397509708391285213501744900298528193691013265602178569912813710101082705496070221132556867572592381236169063061947137929306504592971489123635650809197109372517774306690896720220601284440661646211876285222887730800391848505211639651121932868326982111065130107357424253093129773007136391685453119223425519682230444271699483761232300619134431777214890401405013650977803695242063314585741844899619545940951383047146389526334820366135285438363934004919455631915026847285983939827635585165430689933004353349411347208716232635874173460175576643131829641390679878414871698467829045308002950450029690992024483502065194816166335548590575899850371115034992815391948236576762653826149306377092174891281085139675418620341348930683381727990708389284853500147353517979996974632601001558026620640676235526236373995419835514117292568359705522539576753800994806488641433414112580083395834730029507967668465245213777630910067846381488894918459270375987351694338729992393603640806382718430832852244191148416167029422778415271024730582301069195764379795014279490524471413036513242482861301829115838450671803263311780138467020427424894436500468599106559958870077231729284535629693118856686947763313859425952977184208506719290262785439452709790057373560265382288055509178971946305282192096367672478740408193365666347807423262704068627379576880470083175992873148105031790728920269738292721033642603332605444822230897550112518401355779794138660872898958793608250058772563136124948063142519533888843162606123489417524512563636926673997356244383387819919857491441219961649199834562642105985503494575510730853587738275736907105843093275649766056145929274149084997111084964058664659639588915288320986095076727498381491768598172604012084447157396601305027971682607732978575091813218937654665641840136641764438557555582996118340080883578341936980576785858156992029586260497818163068682957212774269439860918287423921449773022336096202475213766982380349401508051937040671215252466579323512653323874940511396735716681410190996117411457229728245192202933953767329691032663688956090571908246296234098765599682076995522836808216179586186466997477905611315628761529446675019840993049643016294081100597649837238246518626657433112094083464893767441325538163178803013523559390760138595487320149115537931568754941396581374909325947903275005870486102521438753374738202282439633926631026675531637842800508715964621197639356365264348417255822881817205371148878775301634294519519362587102244792382092894381021888405586201571496229926506298182184513723438478128626719294205597333024785225087445098512256259466581488634556463061864827288123981751822411168038139467722314880580665548175508095719501123183307299169688902469862434572119909832663603547488910945500917534532603350728374192702009054679586380224242775326065130058444018751356654239911951322739510665873005180728367909193080818524506161159395665460076612176145567419155739328287556810187050412240286707765013942033298083702274355709034175084703076306131426996385403160611453566585934816449948857402908004697313456760996633782539901001186563616679426959347610604812671440111185038211194875149356252573838999488290118786820404808641221146507127664199899741638938501972806105112364723824665830887118325588389382791586747523944036965231263862684969392735672726164443375528175506913067405943130442576170548906131705357940991359413784318677658930270654650804818083606411094137594181586632411194284343777234876933798304032190029728020991471741478867878902093158190119893773350792533515130237321119796136861933802254139695489521467437663098460682890332849480751081824615793818378059662980956389071442215583278045740755808691325428160343585930553012402245110464843118055826271479648138918693216831518586368546300314729596279617819501098344072277555027544724574771393333325989159434625822871180528748536080570904358483470875479084284936298686697577246760238875772386925667734955588023725303192633515384994818412213034722463256134208894960523031589390922047713822729701895350405279425055342486338527514309475774066586673368759271764007144571165006541406496595662944334607170697849177053333304947525656960682910290676577990956841018905171613194440427668100820015511617361353277041099762634326385474104828998615683167523207729127568193508147363016494982547762993753411153905661512672524994588499237935471594088771413901098838684045980909114105617293165674235001882834376411883049646761426991186085081409393690269796210637877646983446180249100632141801804030702792735414419405404352036398533199708448176507015726346580031412324066552260592471796955583822243166684345449083758123900561705884338913922739227375694888225626802424470304662814386692262558026840361726119383564340642383005268117290759068136130329670394765103959144390176674229303437187378491974926244139581164185253043247475968041992522335000419887124280208167226127012353508445957460873639126651243223475054405910653720172125527685063173434367084389010618926267080432285484047456565627773780022537268108875096441351556269518828352339096781455677338932041770562946277947899167330061065420944067157520480898021743905091331794980914814373411313980402524095524106309724542173215652469527808931136473356207925369211104323113060701893328563867953278042609093725710985989976295073668571174188646446116342951671634858706731360120571491089571526784432716619618922630239233632434299144786514510777669854389745337886895208122072302083831199300827949737461269553875454893921021148243796413739626286908334490086266777296238833677653469559545350145061052585412055800211400847545744766984624590494414786991460208915840259048545360241880299552790101488645438303042996890756999014725153270522838453299853856060517580621051047374406216153367163477274415292346981867157391167656506526321033415665603932772106167249566665127480834647652449257461735510875022861177202311488486702074976799987797933573266444212639701030697266312850589386302072000495014647919150851207654842059453385129420734912433669318679431013483605170990791681187342334258320209701342639159421095289416225439042217654194671287584205350111869911855549904149567462494789907875758284320180105721903305878234634415723816664737017264236189931092108772748247904363830830179978086922490109806636122366490550338551368261978528939022730321220935955464694909107262500072688742168647185430781088259186183532998902842352806670998218296424620973497702897198732285288783409007036086200966618316675721326690943201454200392206628000784171974054358888430500908335134743962213832461739369246321740532449863940444314620556386037097032641563493029503263309685817680034957564054219696337820933996644936684541368595858044641693842346416667619881809876964944702422712769975257923085169230737963966662158631392587779262475848997549414277864682883640299710992479134107754507964449010543437448290184883766700495079259420136698196270671393182231494557884460351924885387896276080878697776428776198767019359852513334800118061544671472203354031035188908766155057087061837403076685466602716932526783713737405074507396122736243128890326556827523519447227269882815769922145794792695247334349146304950308766827391021790515179896729995292147695683272847290752208443322566070582737093150637660444906576676068336793508622710651631622184565030379438147662596216864311171477504291438774190112717046706745639054852311486349147003081174901373682847843371236631651751334852584055499519422955308595549036399543866779871297868400984561138673612272569741286508719135878697112792823261048186794808590864837090859042513677260344361270939373964909584488933557503137973826212991524278515267403849636578628082028063080822777811179269460781679833806972836248813614594989289298797357825909870975590894145152928391791744648628766703772286785793968958608666099414242221837500318035682253334888313592682397225604211622205836135799224567564443135410474010049011318758615060698687700173392040024530136144623850604938758960861543519027131686890934292116112604369644063164637940423360496475232292243429015830052551705899458484511161532965946768953046107278444674623651597716179261739204958681057628713827956014744530372516861868296059448307512966179720741171480079683052352433323439211094831274793604438868793969692019269581670275587041415899580947914165481287085427330800421561245737223917119320397491718750025283223912549791076275082882375760071052294112028802925609263768705581781943155852262154128263097821506321826390366545058493035849222069778703139975808728815750171134315509616860598462716705583398782455757820888488649784256491844176111425419215831062356808173927663163413249989116682806045237685113368592869949092903829357130848043954175358938527649552414827167812516019177376014928997116258907662107201909947433592430730283084420332382835929807887999431275929592082179719634944798163054337997193866567564586637271381712870665584720976104522316645720746478420868544554567664317232550702701669765147377178236626580351426342093350142483082656017935922436709225242524427854299252862405251210813702698074237368568030340026091547896011729253276445402352313092858969661347184907780118784473303748490863452243052533167567044173287360513229521322713438230384303712506688200448693154658541144875228440213196885590634417013574560254554702927652426878989177323914171561845704308419046502511468114364996874001446950058963114793360459343620075814053734384842162551737821974774475089576120667771694631294970802411628579914156189297589083921876260587243513228727871893444613293293912935343179358533009224453550763821610730044265767631279553847923966958338542805341053587025362285374265619626926452926278121275788653489276118716344280164822378033415882506676199294290983861282892913590404057502034666745750828359205714141324194436065626471919611674514555274247622978054597081304107397746783385500081778538579379129380953720587021989840766421158789339620459875713244072643357204883379032113545690521424242272980853261217702231749819961997688328265794981163789581440206340010772250775207197007621612857872783350687138469480655542756539478091929379264757027549353199188666311910652535202136182153050545870250455507643993746753511822380977855971559332978276652331869380544421991492759863232180185762501326005726763125663917480816109244285235835565723769316817398362765425193582477256341957000904115355609725570775016075124698675725867983321528891475339849651971164110312035613914410487828442734070807925873873153238007897175435166432115501793029503919876005941960140403728728172611248773865341972995923467778995742530885687451866194643624170288791338036135397746470696089144322013661178997720416477858465530214372957580024647702871269863482587227559009954920024433082579672904990487677984521249301382648411880074054438136549523091582856561890225064495113013994821260546563788026386064576970341240874819464750087671393365082167343006263933584810378303898897745767886281558141402107153623680435071106515729297681459194497896269891329646334607990089232429969279708049811397340839623542408225752035808059569400110109236217334013521805122340671796958479618542854652965465688962443456123147906510912166114192047134267933579658952685762295627102596284410463788290213014249760958450233736544046772444712073477881916879477095717502457742945738478328406983230696584290991815751930846542482272746295566376536448814958004032865383440505183983207632907803525222039759887210619301370438354309308202226179970996465982639562709663696886002690583475444922306925207553594810915210396735493461386115770187721854685484779025871592241649449757777992165079973432343392459365786792601636996979421893167292014243223209054460825887232005491375391284629345821937226842050568860301150247737239413086150716533361953059464338665619556251653968749522568713032029027759269567155321288838857243096208219404900443759117428324550216372185778364614500406885839445142731536222908683183268463544112727182608627098217288296633310062561843784389502421378621362406330339210121117369414629331229178965249757055751413740480355858439750653461624235039603212982963010621508803034534381996126835076761133711604269945205886856563298774399292172430525269418526136340184746547655630130063803596239666296921953898275151671794922071652843717872703634771982804948793763952244366099940582810391234693592858175328407273744168704102835475282361809296615645377792628192454333323687837122081988449835668948443569653177035267501300168420701706368701492721470765067265362470090963111711995137069338492478435908271553488731206062730673966760558677304482657544058124755804829968604986738257025099026704443892688903020896173464964353844004708183548633005763736180510109288037243712935286514712461528318565833709666067283733921361455396579408601463962787559265850769631411907050334252225546410585096098001721927655499418509316946450956409183967613790251204528145460353436707015438883807413372709803158928974630936147077896349980757856368256009179572894959155680663371635863436205690872680546873066421545192506992097171383588334038724085696732473592755996738577472951578636564410587331860263651708922583692877657821323818107524908711862466764528054385724156281509480127035426254041350555661546707905368317447648207572736730821423457639011449597737002310908276012072654182941972411549235336022804384282023961114193747533151052773186658181651582712501534519586973020075207134581317769143220429083538995722706983882333315881597833121868064520326008321328150273931001639035900302048884355219822996094505781307795003282630004134199758846719821916722310935848043217851777068393717775732339342735941873904537321577129038470751218217185190287762578154242615849084443265502685839427489472294464568693824661247279827130651191497001238800856894086559269975614986885562646273637516719192017893319810944095145519641484648565066510449751103059560030208958628176515663508834257744222588190750675862701805490700165902971209490606369500368797357390282506234528501796778796816628452026595602374689293394230090373910544141965571003717248565663878376851577306274527433864265235582317980455743526428243608271838705308969141969715021962459333067110009447247426292019286356993028493381389961539383307253973135060905765715591285643753240501775022884042123428722537453244166864843133464185272227018594667732725562651286331616690413002625705612251436124019822448249951391690674787376392590593891962499295426089632502230509255372361032855015947673786963443089286241551330629209339090936191981108853714925862317398245111888885658093314744212039290810349540632668534044626658776967166977258729325751407565890504543033941533393843133143816135739777125147098091746460786823782479693133168262140234692301747796308183998438826810692356178720450338981792378799266674377047239587890130700728987273877248631165655795999542991122422850201825014426575304024139267777320073757720939518748294606283250437084964932225319865893793687735141255588957612267847615797762420462201513112478658506499937285972313328850862607838434778732238842406870169932480148351150042730861809690519609494750325770529570245791755641400534820524075191842022830504346709115376487063052193681849563433668258944918511496918708638239814022732166650128633644064926122248259989514502496387625452931847647573972124330466917369547481217096662985223827550621872607531989039929599927018622754142991280239655081233684003187689600486103228033811341932689612728648021888012061760131762366788959913815508661852965368257306441816001389466994084085930006206856114560595455702539901278077062713596069286956601313572774991128031257779047672356307448396289094147299635081501690531228027095343373087846531836840557949335542452141742166835619114652373750775124195430382588736018808331712943758626342571414646564565674219282501144581631311880027889298452967860806868053536137403624621541005371299804391350915806824082818066714734591665646469772241909541954128977222199524267475924063042834502078039123000181744125210079707303738948136426637814520127446253590993383468310409918205945626248858604393268500580592199254832423949480733017641039338485222463580866547034649859744823813689420528444137193632492657853800101682902697472137195721016244068248325002203421717786321568273146052158266532265498014930407821352327341534632940380676819257292731210298154424986020823544435456587859254214788295950509410229390021082622066956783497367559724570012465963869884555172345314063458472563908222856760340921348765403225103092864163000705152420185153878010350051671879218594095960892300389062325512222069453346728034956091164388496980236943421011189780222250788082641316911123138573638928672069602716026148039670207434015983576437009759830217952582972177264476825804917955601362964487971563196731005817175089400013056885334704260572443874038655515568621497023374747511280260840039120231507264084382837467799435823818476405185139819056911805788782957976256878209012874827799456514092223082784766638504088925463003519592701809388839822268865547625258466509462337291102630645432346325676627674376671884868803634037921123400164157629467639127859238285199207692702679350530807043626907768240604935385091155600538928751172856872654385662287612008136662836615468552197808366609271629596156599729904856368667167306216905457171172739231238993728819943548850887209882833370341128717540163504233899779225962283874826901592937435297724344623532371192526582130716412943070993180900773365015882162017857944075330000691308605543078596978702874079299305480753236152647436095522639896395062250597533635434242448503064225695481052141130222652424028158891790906477725458737493665608473988191634976525738512769453467302318544760917550597332037687287391116964466474482708511936740644499118868050442398675569645198007758872919775187449722340093136984989881747990147639140810334538794589543658752295192976531765569638353039448800045454881535925297525478383821210263039976548649684857366846572059660960217160441110506757496284416607371979448924344174843158386212429564042734183806851829986975688131319904268109837044777621901894735916365739899902027197292454395763949082305104440358288323892895039884335893592373542447897849578612253682342827618643541480560861993796685188776959450601999846372728541319867700862298590093914121364723968218804226721336563065542635491883888262334885462345571419537436877574904442573326082265145662184763111590224111317507379524243955601817492171405973814293059367404000375029992578400929636607317302385574775452670306104880714104664405341810172063860017395505886193343346189432539965044523799967371908115465628045100970092322930917392520487558036779190888874046097238841983466005148824293141047670492458720638345104918311712394710437490538571700777340901944887062345744175287328720754195158720294193839480005512755574388993277709199234709156757092674800871623711666503354069994763655518883791665778470243383102476735671361548889166130052445042390279074282065860811886371038692137572832974376895439062502548506776746857996029097179891619094969626317762571317898762989058047555302921838519647565380699807583065821907670317762841658805294453046161307886899145446171409336555186568099613250410418378149623372937966736351562333928616839075884839220191606127050354316929481088441381075273922479883442513442553579853981625591680966695725136600326470048034234883801575028898881707412454703619280764996282184379622874613674805870228596987052031968596035503062169475785467525756937410023750147876266856754618350005989649437140377318534951272355682890549201599698928390301368863885717644450684468741184738915382896502343021085063563567418078518848388940030752358363438065634402399548246485734672759235939118221879791944762428835047381591345298734048084087199091317134380956153110069354838486017578262781099899681032306677208442037616822940935246843615134069727798572182634758992144738796425493723678852976014111743276085935047312036642333288790851094151464649755679103451289941674157897642366130236430375459774443328837790091209578771865111389500682414819294832922073907375134109937942741698573666677676228047918493200826252334144988638597214087292207693302066929104464122711042235852688100660705822887998817311100314467091524916904604420096983581373415982566709125753663348303503931523952984222103749530952591119458008085298031164248053087954205836945736543262531147628137249687666856703482369141171643825488042972434832089506445582589512481921797964894297591815201790456482253518066014199318880799582933377925283033972689241051701954550801410196144056110704143426074984999603588021330939795012579179600758611674425733062389548661275627877724511566943815415968270005803676330907964925821183174613279100689841890611724618877443307586169691637456865286155475056709594757204620092696752732651057621183189516237040230144293307595575932152560868993973395106334317359868345802435647377664904230022897784476532658255642468324548227216783732579440480494389848470117898849105414839109204746105147282041318260260351954169066775564696488148140452032052306521704629084144432873093134408139374634825202230698099618679021037376762321039812871980889606148705277702438224752985054032992762862055005072684932061742067914992556977688706064998526407587477713006919205084074737919443747100363225689713088135028804533666220798403773422035838867667465219257343183797967230634944511672773951946938933457836216048948722745945917739844670798810810190821115417821912438356514538852868369279047126839276993925449682390095617221252772039062163323646322949623754034295664824756847368355200784720394622939770418333263621551854163698385030611144654627866157689658221042477846020381896436976458646632637407878390376753215863810814251108482229888428745042179457283845020454140591328419783100282842637304519414546157300020295712819948207685499174450027502723701756145346407842233293391890569215727903674257089624079856481747224875209139178955794570506633685031976088370314741321015432554311823600960871877425747867231330313728526492823584854246160666572653286279016879946532115373399474011135910699771005844860266393635176727138967539838123847110532510726914058361641126251801199432606147130103432467015341407690132163832710891924430885963620932456635375055927152687922712258351098840327966181461222352979526076722665570310423043640615399965617801793047595707394922164341252520152640211425437452994151303642695485739565251595224402321306006283837591772861467283130035193132407282287445120404220104506271954512677839886329132762460089551001439747806264255661028597547570281325521872906095554009205240358498460407625742522256693699805671368859111497353814871413604910979265862507146294642848858968909018041412700043496057875387094780965009298690236453654526719819529186408182866557037293802367816764941195890174677262557072075695326579400579170097317893794204099902068849467112915947089473141440303473859486023895904771249560981340757148453497601140687846053421296790213189388972387441924896318127112649413940280145567642829005612373166156595802787118368592227633182533921355995897824248520304656587311798479696694963600881165500244590775894652814028262270342972323927793388688437958139547030606834457557877962218303736498379335593421227964241731285565652660879403072638393099816333417163062623641965068923623968240187383385457476935147631836248329792909507860795336792909006747952998097209999710879582499460341363558373978959662898699199581389355666922925941372085379424521034966666925085356726568412933100242471593977505521114346487668145336298601133778511780050942571645490153877597035460085625942827891121836546675595876162037696219893665000949936460173057157323315746556930712592400738715251617097171225598439148190030874842865176258207386808268246081929608400330486570098804054248431704186740626049793452720652755801160712246208137844011544907690983568622164190911138922123818975840975076264946521982423566335916307477448910439999762852570526765430039203958263337557281054341269730559455327612275268506303454330007411897915172534441947758760419322218432010902612175085829194172776636226360794005386895521124214668222721084874908495299441877845944865226819580188504655659971800073576996212189957203221818552209485341283890144427006250513750882153663105860450235131826964103026888071674571504862916923104777170572631522356387503837181788508947740019010693110967407516647517595354237064378243802888459212434585010586362326216335764044050819273154520317592287377390627787334347645480193319710933821435747123388458179304584492309624925612985724408989336400426101704636344120887727118527908108327613687179410091167523634984752742566274064606561834635636101247377635451615062748802584283477044626733031501299353434239561415451942652647903543262098616966347475390683460506464148695736512602088027448185947386583428479446381378409470046973286152162505409050396845990893236906517153347735223279522376612462747172262107823831883673665465322639659139554081641145776696110783918641588536553247710797594305134394007584744022454954513924473888166957003508948166268350715483715380017733015229646260619565583841550291375639854859672018124503601892420615235436962436853607638710281179883779437032644513989974406233963136710054186506778293286657641120136155034799040942938048403034755675857577762578813965545069822206814866353726207760881806601629872941304220280660183423655906365683135999714627890643204686958458361217581615434679050696187908706077390196661040622495634684021431347413964732675202413408548718645955686187851209061080864358466651118618179690891142146046992155006730308929156064062375790230108284658668206018051579999568920118964378762382948826758327800888983210080391569412939704316360788066176058540877748292157825258104569406624811662409738442425724849895373117826546030542316162223413952775002504402220820609066086210793004580403031465531555086441599948011134998226972022687683340031805830615041629210836894885139335423339377620363838519660220967947340195055077753839340934298127068504936826159825381904267477731283868752296399287759899870031115091087343742404003978998817419420203946130169859837581365109143966588633741465654939470871393326738170288668215369387138420896736016818808671165289164078400788023387851936355444083680374039670803159398286373341760855213921232536344470817246384842684049315792700003435765618955306767963358097064659036694222693390236161166775073743683928199601136988461943057790392683588103079789517606575099742144536425482101934557395142348941498595055936335815061144635837007633627765477696552387841173243761811949909470253798491000910267998196408916192783981431609494443068779184057385397422196825912003795319047793347765258514814331219390228101912043492557317879351988098876767247550091171810649825309216798621385802891758966943938542565644719032019032509996723544724987377234689765666372822828626065093695063892550721223292518618848789957622649916784128489726270998589572890794996156221507701458759208399147593308089026124707156955427697775630014923762693648807779028381396690878840361282167337295810858090179889430137359282160465174347397454750250353039101799816647499121084671803672990496250016277591847562028865953337220474241959285812843911351528916076504856127368728358387623389331633946462885902184529864592303283296605625353110286406925011217377307870575607114293502295630441812327705105542952762721784616380470470140504679638927628089119048181162627749118214973552679020176331672768806784848010139106830467556392656648991299231488286443416575701009177455460729944323748540621288117156962277664322642086838976451599257808385332971610941245124372940270483896730479609072676213457229446058175559783239094136220743731705314082645828726639634673795991429732362886840523084447735034971682534910765905030675164322729738154010165964199169730767846185271544765903043988194606037767344413803564233607523053700624497936013066967963879080252282297815436047357959040776466144856594168006927467721360041681360811412910553296219266758315492014715615301990345556112062098893134423948475505719136574590289166685252867252431782468299222385721057310238310985517966419660629958251643719576011186760872438666183811559028627654527051284234214380121290798416273495903008637072052503950727993875276326055722046460489788151532084999720838672186418211108297442356240714765662161390363749304277909369679592053778226684718656242923333535044587519791820425639617429035593114106747356828750441161790471312507434120432633582697339788704852954118737017158231642359860449489011622155769551870908927440450717623265582794362727235284093410969109820422009942966108253547261454762584730608040640778417863353855005467776761231710328108179714506417195488755202685982099975794001332415032129387011337385332553619660351282745232229762014090314860086827226916594067409089281409760678352067977262825268219125965350916895629093473327443357267592908641970414917473319034559266518088735568163939182388696305411381142507473339990898443442994792818067435623016412218188629147018853596532818835162893228619799801351106700077363964810885098421075459840525906135024203541709790771072063190839038642911766455146179071814375056574249028493154803488903300906461694505769515576615742545566483954429051752876916131063312669244897292328206191778637765772087741313614122434756063336182176942279197027540937990375008169664798673811636402486491458165038919441711921126986468580640737524045891799509321680465654554122338173638857327837057439636012906206336481810314146508839505280141694923701407051473205338378792140793142019495907770838243037401208863710871299721174612444102142070907765111521906688855883070467859156053945291795848731017448920976783202867103958258769565936736057691142064803404413551872512260268322181791090914687309594312502648155615211266220162636271048328397491823783711281771680590349867930542014242586461562725267531020095952610661835295661872815303420532202151692246278201389058105292857754964993291248770666022414154941104115740631393233185700548555452729100486370700287445407324195189994116368308279963650176973753105576149985392531153083164563884582775653621975018115825582213162045743136968057015372261136232391997725319333816561700699034571455811754115375180054882017735446908744739108828913357201110044796140869998609521480428861168383877671133356058140220035222170144953061931809788596672623799058284864082952792288980274982365187914054856467364060962762960532513714632415897635954431608791911582858771882216150390272357886783336492973438889919262840736107683967129700368548992640422362257619921086402607328088020927411285330879277379174302472667022905596934346197278638625757558294829847665540954123440422333627868462578860108298925933573376426269937166386245817490539161580715701992938932650097163180434088948314500980460219245876658998695754691349801456236747189401253439433548451982191835785815735205879078465389703795605827075489706730693657609785980744542105822084634303249312155877491922888289840949695640704550067290928645678482689907968855348974579236184591136398215177652419312777564041987992265329751387895065516023699784985986862948275232249119678450084152363823161118871404056634988779854160315009844863753851511328781380730720695218077407598383479681494054683935367965087514697343640305966194876237581218260185811550149272914436938737066180909951238475156699347141093809818145849681174186019819124333117875220781193501595992010531514714054577379345312564405469884269337116641191035044648051110668566869933008220138838558290860215067565327517260489864890459839085060151392717219495471237740246358484591822078650178266191644523576426316674156293328592353634648087172492223668440711133072377422683536360792732424260029865474550851731963730785321796461197165703823606420004963944578008065519728154280112227280393635709437232999505036806418977512232868616807775210332993992836239167929662894946010821154654083267704528108574184827773731840290457418149448888097627824243139814673164118049794886845383774407273320799879648570781931600815670928443330351220982696028600867619465214693105643995197489253960324412272232856214307270945437237906207714684536806158938878790531443109746739499646116753946375798681958507743557348236117775907366566639286650976611545995066727990938146554034859044941233554220352470458694359168700660107221896107820610028680200739224353591471200192922405114251601292804237289087640494119729760769978387297605398918197698770304740806579847374124596846625350348440125493672480071689623831561500758947567426958585465708303316719786365759901188632853959699262255798248749363084781829784491125281656165076286082894582264575764376217213283781080607113650427124203684195839004937494408557829100017402163033610148549139847967321862207981788345518532899873753647985774347759362496953150495364998856794300512073454971217869048287812075240534207936061647809959470376103124620535597152239008517716446219555039572109370315549633984940989967204556825794422626400665248607512192966509026664847064291643181633004294156315994872166378256149419900236231944425343079116703487496011311736877994383591594266108367739116607279811962798468796086799589970380656585879133243892065819975264058908762417589672783939030498299108324511673801519000025772907435658918449932513540924416419529397405446530131599955541077224508014500938809638230737913801855805471120520801726800318979899293922805305015083770225044954290344328900948663409463457767257929315340086218114496999326985825850974826647349138745862402576681623335926487523506457692615588415467313051559433119151024912056548545131154455464415927646292052651061996956217142562645638577777476181642815059164761455278393956385120434451034071023103215619883378656867055206086025778989271358316928234730551666995692239433136792898814514727817294062345859896653981511325320227997177340376823051376039401787812576551483836008810503011064026808679360731100811681363418832551196174679838708283398948567136903267870042391730084400207415946287014597863180340201733595354552773073190357305261433375187988469885420477798135293767609583397135533384388515561552636266947299128177484753207863022088193948319039185170572150096981114960919204580756223114946686123571856227510201965590152130272874607972842714885327014703908472193209326056684764678804934709915768943647984654102664245842658832198348401207129390159994614237012170617349692349144582961335985873825950955907239762746086192682357052523019745914125595635042653871896373096477969889911122627272711857686892041301195887059553605651412532385197182334546715645657816208121556163403024001125664197698744020666523493956440764666263025081796168379196573511819356496227317626942524074691733901755536253305113601924504907931124818565871412715751711898201209424674384390010943527230418617874269408163333176663192248732327919740594861190729112637236864847172314432114345487674399497877833907092366004101873547223049579016763198360199145546862809852579223130621929069102098289858582040710994221137612282482379559639612376320046399339402377711061532309385979121707973975502833764078493284167572733749080102460794128091290555269205834744561610976124307303534283546966682169890683483293368833111965543134924399517878606411286197579343123676831433815461305286072147737105122356258514501973624894589700576336473255591900373858931101677180058882989950181368290382503141688466532926775551888533408600429958534185413361916930653542784142935856957096439713603222171974833988147163403589795187406257760116428489851541345291048872003493335389697447751927968674792937534957063957629340833629538884216169378187828686992765526900939832039826255138798728639343788654986838943767272789894256311376576422493893421596901997952710952927817744616042733974405956131777700601000459593616710571676949998767763523446022586574380801452780178283414290533309868026934386803387391252518474760159094947696883508192339726778592306549255274728742884343640702402946120966960475415726163814697553541479940315263798812397288884901097997511378498276603700178800588916111125483163077998346780829852637965950012559023288452454907467976725714593010793598987975841251317861664033052425204636340590288924917580714792160182979249063629286183539583697573822667635478963545865521788786092769039875659366686955265243858995697924985258898082379758268240765620631631420160041781656123045630245355756574750204511052619150055413777011540253815081682201597345280019924577650321652233896575057132266443275114884155185302274139729206786297405627083471454010290149570982127115939550835568945765669374723699886684901612082084930139656399534984838130021506204956636750045059470884051672679694532886478171745332246426205559833559166398289238649697421472523942660064781257303561537765413485993148260895825310452312923858594593048877791294879401852401315609911766022876204499127011380844020924494661252017267495517531408918448202098568963006242897011172360696925280586497088046386547327010027754777602780624777219200886004189467153261568002385420543140273353780830915960771943840817434863103285817009043149121566730526948951193996247476933295086933298313224263185530357207771784297059280910332447908470967211801517578817550365673063427496430598617738489793242394932422453468520048510986822782579607909395456248602382499753998610058844472716451761324759833009789305284272121333007428022435412791049490883866946542206622914919375102843331139858623663998761855322674507448050062155083670742433345242334063315262306598872521550822255396651379542807668061784812378184196912401419673069038471226360511284153725686096680422414374184344980224916037899791609622775451659337166999393908304383593631171664524924833363675272912504988222292848326863767987165987954911660958020081955320301226370467811646987152512406188293553801960998049713885127790348909378684920425149510716458873175169893464625296339441582725351506178201490747392859474330152046501520554763205509885087565628085260932540060297854983023595503247907970348465135163118953020649800337749752808825883997761331114155529697295707791077722938826295200846035292635574748531311850957083080461779877693238444383120446390702498582990858164429152195661651550605685123122486200343348831943027678930977965379440333318130100302310153940243554734906828168541079934619371766905042126213056154253441357833802698618643318373369712900692159552784537639883558438213232832672347055238831793356921175862470433582659752850374853988157587542602730498882379731344822313183734280096658508366792062212901929106905983418042449020930271442359911805795230689184678859561538424571095059576867793381622752641970235089774412905064976456621483311188004471678426765302616351653377237342686569552656040630081924902357416939122271824636788470020558301439666193959332979064722626612941527028389049470395630686922569223530487728195961373504023539304149765336162842959863606937209743838215314793154535359950579238943075914694118709562807308710257360002564960395222153090490382386009694250208040715534841893309923288279105021079949599823818969170207654100741750184489961784067731040425342883490121894712571113683912488889854251629879462336172365970724432127866154649211588016548640190176574400180666412596539018337198868685573604080004548643718105956834831002551977848831710890911916128321083531231143391399705442653790291150472691602594402438483915047459034754783782510691067511139286374130731585346498927702758663815945908316233497353862180328706869357181990630024346734989443161554667164328075136986868165831095171668259656499615164112961379349003934936276720097767015407302394904558327088871667943440734487048144763184961453274508560409547284675771508289126431630431173236239241645619137567748619544867670622201562613809874600638917553374849146026274157962414119187657503085998155857362456055806790020726638049323503176704199726360461396876491846762988606354094672930845164951934797755403453603169955949568975883466816004887873760420166811429493064118580272015210344876414371030208334163717269268549291302395135192693751201090651761965396138556122514587987299732949789474800546476507528348398481568295376491564409830995571720463163028262530347681124598696216562696885655627324609145366000459886386526653353703761434620850450093370474303805033850275105171603649791193380225666402084414702974425090709276119479702142463886969627781764007236946821310989320570041437745719316711306519483688589366933039951973050963978013104257743702902404667877250039855460873043899904268750821811165045637827480156355606515939065792198031323878689003098455341018548162360134977344090266718911059166339884376287923360455602181095838522709559206477654238817495934899712349167530979798536041407189760044301778358672437823169726996686003099780375440477920815101533425089543799796469808287063886330562447809601366655659380707726844223334573677321564984409049110995106762301338665400806750302433939840473216231607134579972649090376336792317122893513078479530540867986548150452357385785548028897601930813931276585041450170974911055614562428246873345034575491090815599723096181817768942041674889227183417001873519497081706957043030163429060173489616265313831836959092264051392616377454858928492183753526026348488322011085098458574648334215591950257312409125834187382688923086693716178802337333766547643761582896324137355111508239580757933700522925750590977516721966217329593413122746676782807542653066847629449132050718797823608047281877829555582794099983730037262824978010080733146371450382216660785330635002700071184168589496107948459436788933540549338525530684609608492303169579179315579265993571443517862643351653170989393503829010815309150449138577971473896019790890154217352881087941426471406619436026509621761890295651421900216178256296825999516769021650325387750309333040051004916034143753594345369568485817082761254560888160471420852496528744892173877648335986840215303448333893347923059914079079853800645217454417158623262113509698766316290443694054071005819423714301360481796795133016041702967911917179776516168819626356112030846040234066761680038273631078773104634387604968306526279150824406577197369379568118267959009711695958733420370352453816176757695377209357965494436717641474057612666160979173727479676753494277293164657711210016000089110155315401189686284184585924915316276983427562247520731723365131262102898988296443073660996818810231742592424396544027523693582629036370425256846331996916711343150839657856461691981564761044309762841543201887020610082047316531135481649598042289206167976671159033998139497548888588876089687778896699671251761812242873814826838353728572134087224832775896655843800161137879795317264034165224471341720766988790500585180896843664117863043956302355619367121229821688259741362796750213707156327909485673975659960149526454435926289226152607235903682985897820378493951711039782633852835932926255988637876452333774027279048337985846035542119424469239451608848161157880894896505657543731251504147912925075219431286178248699111834794332415796357600104790824189663609094204476523286823272138049285972584022499837023915126294098174382283335444010082534693015056129165160304979501604933276881573475037448128711643892090205638321231362727895937485383351363604069302356449804051596217984861288050871327500396708676106283763739859667933586642876789950751049248174983477099722516360546398844675383744187796727776405014360943378879497329207836323538254166326405000993501943634146196745561582870646515244179901801374598079264924673502530737005336349837531897890260331672000800286138704112581930228956713795383633575649009208830897645919031182677613969675404446837567888822354094211238907822915279891224056379393945745085787779956537046982809230218124038771835786440061769545826926167467503015947649930202496762383653043934023499847134782453187791485231512404043596611302242224277455269988081595769067057124338915513496273183922358429531215569894933336877658964318466063088360107389280783605789723744500316838816196143416484697949749087189945780448552469477353402230652712254861595136776130811572571905694626128488264704796168488977069316134130224392635726252481592592491076308369663386967693324029423035886715571923333710539635149452862328931175456668230233243186231758608103181824634415636335759251339362174273013270924102824072352964568831095721470373222848256331618483254920874985669230627285417250634032868009817450635928143268540554643891020065284161728666587768419313387476665961065947326557658865481396674839263320664744158891213591389656473584105809339934715309334230790584581009860532599311512118992322922991083437929034016478380951177473914566954793436200873971982298594391895536118351640286020310541339427353992174623997036978755698428164189252151765539850564583935762770680130640921272440816253194085335905048941545770424936888142267718397811469128116976213355236274790400503382100098824463809425139865015381987405115336474932493474454783602972469293425981969707156718910495419529105961964730092286800194520435432912729818670868233187932382809381714496551903059858272494404736276353345362435769167278490475064813279644398669491659526468988023008139395200862997657477394075018209418742296602334366581590483417317021307660059846745384061692623818502004377891707227621226264292452967844757436258838445029126918508002177398659830943950644657381766301686422407173631111717626531907259840418858768005052219972982180110316315338650998117765496258631633164567921403342962134097247689591056795317489715611618318703662633982415197519850596508275506439081853579131272771928267720306319587978455796831292762320946829066785912723168785037854019468039769506316931194181962037444850164205237862559257831098697857739133110166826678618831744943834041582321891770516071543514190792101836837920446035871279331677078810328283777632372558983303692351290339914135359316119099620975827928113546088758935279771725714395023776833001253118057016630889973014132373950477901636660618579019504927213597214751506786222309096641373790840616812827883723263018896055794992226311442474507770037106232571163831912392888868403881401968482923255559628599912308094749370554640497497653647429715499338524921224856889937471605060943001362851641830027708616492471097323374084024065118477381545164623518592067245988506218576106472817212450789585996386923952021135610016018020458446984482907903800070746841483289135102680339644441116950361604486057947920238980242589348980163999288469535121945128161862129152739342929584816095359086452407829242620054518847610125022304697218406744081942611956366923216362672582528658285313280465472655108607678154110580892420376172509263409701193574001488287659607715613162182244208282981301799174750886817945036058413390890656497169599207574783207674113989679406623973546191738007944366161334086294008605137039957727477184129383798110128151596565902308062303718518305470581469500270942645805832841959932511327274876362181198937917858542687845576852456746374940800855577584291634396674374909237293532271063633037399794590551721300189117851344258688987863682750140907291024230561853281517559924081184671834332596833249124723909703050820372152233193965475627623666363445589329165075180800404794539345215067894791825315074182174723040579497364953316277347175640597677736157316994553963410880701471185915783549099625410785742561529114190065481619812665969187593837643211572930090046025081370269630578153309518399373352878508069463382940792225508963974730082814075008985135007217727451205855371697794482674439069167972720148242916130881714733805998559650680967219614483236758542434526892547432731277869690886391201866088550761083236905007579050710822282567744748271142191930706191637020672442180946625444554305163555718262784063037323593776440950462789054021118967085542160353710746731101019556811179757822861699487640150210553392266145210126273899323584091903332817016566705337798766486659754303304363326851193573574070719397551667183953412975623898842396051395026786738018619263414700188697498824727396723527708164715935607116352859374604035552834228913680046349576933844003400586711133494495805768354662238250456300674106763622147349926457697682647674640195304249584698633453929234441015495017009788592465376001458582490644968439877674548221978082203816922355700594561357590906621367705190132419295953201287911647467856724924953874682673921802219480054183836421556148226534919148192078890622904437852719716449175886471571194219807591968931907040543870415844489447608511936422989915550890704348047405149833251077127076706425853924333146168708675928510904883992903264744334923837717955097144477260731860071197245571256738659539133755015992468727956285544753330521999280418340134116803495320753731420505384461591150664391734379248579481034163847824914098852800709461392749432331255189769027324882347483740518426975451734625177574883835617516047007339113630224214545070155290706463144601737338745541626349813271991096069828817713694698255501864750399500427887137914057755782191418356063802907701150627286170600828565286024734553676883241935823052250972110150414718733815983978591454424852860023073487817335431892213682838663179363666054752199927079023344600202897185368119360752764284149024117329358995185911901095678219592509947621135999900869017510629072412984384591989627756873816043248694596570052540968349897265996697657121300332606457696041240428154675338216336912923672054988456082674344003622154907995348418606872375794502982148420162204716036421914461252602684096434934461942423690758052563948960922866666972184781042531152435189220823325249604031802559202456062501965996387261953106145600521130375278328175229166792495092543835840693250655089489636966610681797398769399870702747835911561982587949446028545190402309645171827850807156349255836721362868437302786404268904771596026530467806806467171781178025511918888330716830257014915551957484823682031836603391282393196443565677434233627016179754761208906825780477041460444392069249601606286968759269808461426235713448889418160276533813999070924554576168169985945298422705150344261817543041437790121023500281969416586725703846168292257263784420886881503471343105035159975106278853250751360406293863181245235993217282973569560642255494633906952615975609928382197396619836202749584129573622409237313557528093060442451893969579137672466792069987792024756406124376589522170899159136550080616533880059264295527550238295822146042294076112343739016155273374710267920663134508371342846082884083037738099130685436899073388921052680516978724424114908942487121390688880764305788958082722261074306883452248620902145832019611760163714884999084255850776933930099111984578213060365551414704227307567671658448837572860264831835628224283483109508682740702750305555092313128216722785172601939859514316800358361493136808662778757995868234975219294498731582961658878762044705194963587533970443761887925997692182203346342391932743083283674905834304431171616077702699669665454927628790485735224245885927116641528987904690248814057713490175364605410111735795172666216472965345060074036501058065302072903937426968806800407034912074404476726710232039890686597178196811903552033681713473606684139594976175930369118460133351299672794461553837392760985555619593513430286207172816673006902641443989082960885910862454434812705397633320123811485019382834091733037761799969088938181122170976628278742918763445579663158341998120329559006904028125236751173967438289332084653884797705783546909698722248827495297485688352486484287667547386100341690798730098449823315024229148958005351216994052945567848080921567633007519915931457838337439742994036436729255099757923107821458146553055398784698598835252927726858441092504200211218602047147944103051940086303243501544007452605866480562153537171296465159434997463928135191950466230272766852697882474554382485263917350287260029879978540547206833429051378044912173907663699543244617756345877766373049795603137343702664445570961011100772613032155427212588832690988042234634944290158563436725522593574602436544644306539234499961340354203103795647862739714763544247830215149805615542518449095635215390549173852462848295604482051800556819700800096703017436692145347892496832269972230371750728187075358118875767437815211466980023716699930612587362228237970258780746074428621439462482301184470313546140049751667801564615728333382214284940396386767788974135470842572362000859768959156027497119100422359746836663575646766445132801471190656413157683492272342245621621515312744033723067687327709814461643084298783372342722648605786448263713279032079592472016950328049793301491794743032785643436572712770519593702563410970287976063800230164888477858598398672944013842346896335194351023657173349350393025831285902505618648912635238644443459772950715255087453670123229336495709807232221094223536360335944979602977924917094954691329058749734115303905788732493467963583855477357166216698831710408010921717380801428329997046768636700429091962874196637565618768812904724987965491485650467662825189855215306813262370404123280422132213482282085012610022712909998483430648422474350940320976736777388889359320065090197782268581727822929873903609882442489682896440107895757742786722720547014320420146187841982708221200049092027872122752409173666714937917998917850276361425484963904295509714675409340606186014016882410620312530867336160041979557739135564520122171605049138372258393206415018223590547334418046984307613287131527714855303092181491856877027148518964779936764698144490041523974610475274345556945289156912290506609965930119982386413547675372009308859077815506076054701032101179409301017629016584500635063461172885135061853373887162114488313998958228910823908590076996876911321167378595477325513601898503054155634103348598599901095590021296837624203595016754125207042496500617650581887797890330577612478463638357863784429143321280187240597037544607292982125842852397757392916446530828743072764173827158464963487880634303285969508084327902202689175993685240600153502198327311780956965918786942797805128076072918116771746777629945383706457541568383997984986195427048741715578458339182074475681823336947258341645271052221434959756311259204657703066935571858655429939910832090249596264417344452854078293006187985075999603308270129737339299220429056151679640078353559203222823443849924335023618893661540519593239023452153073836607444318351310619304919661812946095959468692641615780318154599846827628778083109187327981311225452835210313642382710750613400206603393154529802630757858873400109155673925341181894280022687845869790411878433656482978505798018238173723430215848205702505484415021533572937263419820268178471079567097519246230740664486288752326671233508438819233735830153226165296448945094149087512891474053349073467490923181334486550162822670992020712813477149387351396823805748334857822934132336792708332883320777993905833569523383628600700844045426946282996255554798448648787380518204238952291533407647254144604664125967558630295148003420470719793898054915011435857487463665797327317032376914604605791999987458757355844431298458918224906957792406715184355214390834915124561051586073529991952313908524607652082355931248050575605218168067848913336638522942343579131159607054367072981642862666754497514916284459231254290257675013030943404053012965797944045265866426366822656560884539816352205657151581984219728200126284282453606780760943502322219035706984762549492234347419663907803184533759195334163322896276257769592103028221667159320851775791030677843006030533700416156240170839447752407816116731461380391955084613076564486479785916251095206843385949034109606863097955681593523522405009273280099088561721143871347233215383463911164722951005237835757670373009206290372449349882530566997608180826425503300998924201473579973159295643087917918145799400960692495063638630184640248867444631604028763922027927693668418152346984243398436835776836609325965939730551793542542623002295176918934549532647679848017661638123340046879910330199087056875924705203326393660421956071231013992892756798520049426864116546896914942112480267119107678556692131368043977464105455942574719978818991136638504102024367507213350051821853210402012569853812273339545509832726464224869152250590754250317336955333198163787420103197256074347399694789012970824876092017222692217298167100612593856411685743379788441983036674716711366471536367658973177079341537348337147936767812570451538313715621363867623573642053522524637568623405638160722504992151889087625376735126200537221675889283183812390165307128547214736182391630214873503644698411160803514786473024210475131113566938681733103101035822609277563089374283859305088581177125128244191134527948357729436472760614318922464526396956900832632911441036212407736786161642005380043716374035749793770804069152365151101335586573476699297634481610106568070113594802897087938871677998462326956033665194174998892532655009053477769691984963752749122178099521955489917156784487127013881474525724953188445210460173351109935445518630362391361268460359360171714249362898627361970788089453599192417961092793120604429594826318125538444724311611004805315762404306032744655544143212435889880856962739812993768530800418872598407428020446041712468116939081915405841058790630508852690511148229970687994919186385918590791937918201394290763392771448545482675036514391028885523753366300627797177405018422933664164356820878277083196498139355500698421934767867265483138169510559504159742010024248719688519784180945705200453204507492661602680038348799058104223211448199999733044744040531585791908607220539404598056903682380124307178593330314857482213861167647985589062482641336661963567333757101838575418298230755436423504629993068543877019113884174991864337776410254244591609924186484530712296975926506488898819570577737224538893271679522578002966399583145714879934208443396497684617611241403252368913243119510931467354141012144775394986920682018983496296968448724448656712279449453540246297526353349653097381711648687651180171290161327200012459700719997014562490820274353715237831065208003058089439614588828788637359399410275310864566471326331755506423238731476455591340394231618273631465173274236084744934129107176736940189127053581704829769934273599961921706726425120891749737561789443473607867607056919780748160513127636801435196574453937435564634260494779896581000630726878519064236523300583097557619118143640659516292212628953273457934778907668483246004952305496391485602500018927298115152250683286158047456172878966178547762944981279298599737414019304787758240404812715175228014676501880858045397722551231302052885853787035324054875689807962278354434938339657031931680847093314282662634834943257320873293073266896478431201558971090045733775712928411745601436859747779884326820424684953427160226657536536729833920803626893693771834258255357128664336074553838282676823347107113267834608226693833242460267155622898940286625773328604785965523926498488626114922970315791906856114396310977958447037054767048710299601412857195730119345029241790806982309648915408950184893064298768962119902128091279988305250244806584996094362156876237204033392635121569862452599681710844559605457643190326135614722793454121376306143470383355803923723610448738686682578090469313488458493046279859115856218048466407398516436463288367246404160752572956749952662922274993465137890564164669605796302939330496339114544591917602833591678234672052478000043060415741870363985385149643800137199555108175025222070832757597938464746478112919639793490356977061587412032521969099175141199428399949170343721490875692075116458796193132964545129894671496407344779489210041338704840012607107896828464151961790714392980400175487724758498740561188654867973060476126682862727865773458432564517414119740420517199970058875642037019687945861042157416283820729433442011000327373501430479276627731818479837136516177264481536908127523126459548485637792195998134861651542725113970424390156337589817409295807495174073440736589892575821517357539465839621258082762395869805447025681406189466527700547393741833082001522714038577941723964049291452375698747597123154571680549125712188842356932465573556027381298331095884971293836918768637041079116559860205080749086413343395926470110467323963293188374044529331290098192242482438136921074624273843711974885800234706614462698763922451450856881095056933192241336773752843600463719130366014211815244230810364648805713065109295552930251169289792615657755354922260105226838140496470134086420378070459695631572344485676355993123600644823339746623981872368467169212333020431334011015913763866556627076834717118698337719756807879500507363057610292726930222783878881567077867527510218743383605885625572912296398246363069181197995266899276513536478168250627008105997545984795357461042181320931180335432799698612243874063877681254449291620805362077362765580677150049194393550945081209291623352978937811835285981455232771018389805111862304400323401600032258187718258362777115853807194889320439882107708435751706913928127787079171924398303284524329985687872335727912274791652064157585374768075648068274660059268372130757853814686837333113183876153572486043345439601474984993047455126381254604974798125320681408699392401025537416176465889258482847631175669502868839885993600799650881757281238580489638705421184435959438879760263772769672111871894742358769885068392199889513440274652312929363495107769913683180873887199880790729784206002571190232856283598435432139060149706278596815696135650130645627640269534461872035199450980239250375660446081711902688925455953029390376616890499942153511081593501606710386559449422320069496696731034420656687887810512651064481789942822041745342257806881707539872531513566423105005047362541261546060620143795210685562520869088831300615174672547356838871631903987837794539380175694390974358396382279672604755825692322129231002581622575244847388990442318315030140757553315967664299837685444355482808647595051104243941486979666718099221577928341289146130278141980893965169929046226227071996323599432234853789321586626692488487887272397301893594598733634390074932683383974353443417509006028441359453170951917590357769934772526833239383935137299092502190595991878403290149648484012732754173208518053977369929144855454133671866137506835614906019580135150771444623588355142900386638079651330682151378903626874484579405646843312887030886057136082330751833860292079039949931033460456439148209787633515076446047474995906937766722769328336853168719622851814319625534090764718979293657961257980458543978656338988212701243408307859864806294617969168287147105651369813954393864737965492813737063026353268665693851526830098580074476537686494590952057721812231126110470590151858342497554610439289524512723215212105908376804758141790787539470850081380634059271727792736125930917855124411795661828366383910243222208845015371376708593529056865836573344578924810550562800622702879977288580374906477050454954288550700509067905187661468655882434771910348804297574593880348730543874722933044585449418598489183634308327025732851371552584855605515179969577388733574232096398906464474347985550379442121136859909048232725862258203631051160654239965037137811623572028215019001034984080636061264129653759886299052603322317397392942010473139739310161524970098909893766417532995225734712673904774388872857254596739933255677272838709841931691999115908703983047735628017805726060914528034286089590537793674827498099964712462286999164128494204886252572069337970610489965130480926279919535605049314080888033546514018819742769701155562295775701856151612412451328242120236064288919792559720921620510447158244820066959228569714213673683241741656013209150954348116929654165664389310916924497573261385837820283054811860454268331453948583250332591162823999129554478014956713099130573736320502830739262219841652975178500490341055564877856461628878419370847956357501886144805469588561480572154450611002128667336277588991473084024723464188660486837175472372244059657295094390352720866506704317912115677746447402059264047779816911621509451765122579818930508693255745235855044649986752883538487950825999859651926690384958239690965279409172748586268325034796141192947867086451443657926536652543151706228529238011923316150922484575299856182772505931105943860622757811455567516510225018474894810707981864144125205248610810617713466207790492431653027313178363468872860855238522277184577417251239343755292624163396857929578560123827121172086101787983588681115027776030356986616955336710791481546138481540138949641968921240743952430688583700398868645687214731560955004180346491512003141582539009847123372748440241503111449794410954267616023741308524170427357990878292942053910183617102221229336349967377559420924837691943657068669549802447505308575105065956927039187783915607563327031897141221531846449067167182009463422121899503458443751460772179745495377481691058921065938317758800135970016074627603959153284764939277105302639639906900516850521523615538491203404169782705430392962405513562470817756959912281899759263101262929502893257326373181603416678824061245204518978118736021874554869817860211166621571250622951650063011940694941554418008325345718557822230749698236402247442546239991027698710900407984690976014977267017724027796893471014606247501681488561895773087870841639388377400477923966026132762180480298990192284430979426985154785086660068251807263515947931896835581184209667119269248607026504732147670786008930764602269950507393664086110943734909718925673447040273374515494385134105212553684702854282980124993694206417906791760785345627213473715287025947541354676188620893981638151286092060660562083171691776814681063868085059689486960778078613623085103762987114486448202958791317869614922470337544426849751453945454888886182843684687722168176757166401437253545285289252952802137720147658017353802404056512937755292011799285908221129434509889538235631212083898719338446786900723954739463390925367001940146877615276150694190471445871563430417237365827079934353062465435362996667555459929985957297889903585191831017026862005111380472373010650290398665985108435813457756535225764851642731117132178413984566602323829261584292561131091397492648758213579273573222166231946209072419931996454389374518154219320758759581300247113903526391879281138681861003732119717447212788696913884403399153583709291017709881865535419468119648934909065551971309028379941196545204242892041015211427108432668795956899580873806499817785191350364167771599696402520565312051743210446474359756294771270658893407063897285317097129942937360651407091200380074268689746610919184829169939336889339733973724453975842872811063193413800598082748252777992752136036952459781181451371839395365233589510611464814971181783859136403909714400269896932239702599863968082045929317291623702928864466766716867611282075951602889125074537264782669138088743361642047229769842177880882175766482241241317439426125337351909580761913024975579109766791686083229721614788997208740334191659755896837946630814350669065148387698443550755180300402002375926212203919049695243643680401973620620882703524978747171576738393554631016664874208154544742992351140306703953051458137672866240144440276937174195316662021121962288820456970362454812974311277393846767996988926434839846863041493389064096550362578134757476710462510956789861589504293835071810117160077397741547255691217285021182608212910404937717803107993365753800151891194242415173311532568720717146084123675115574458672432246803657167009549039811494528118540864076257094640417741687642882951639059710447696879260540166744025250168797346103122402125925150628889954970556105814679102736389773230635397072702532631514893802443124294165841748200583289322401038922088638798871614215167447846251188825008775264526553153488190811343773563575979039645794211213204024103153793348678441019613150320345371152579513495631689505287145629349472861988451940613343878849543578271719503479296419180769023277967368723120589702330676867244024635778230089240136275786416845559806851226415291696292791930508434623488410155612459131020587483398099464189621838743398779677305630707109370545266327307487019809083263796235626474497140705185192086744565749626246867044737441962114264302343959280301062632524957265038154714683477577702132061068727919509677452455174908117806308202659512241310667567053339860727885039194229794829298768785723952627899209479817135980039880137742306023041230383409710724531872743749201977188503577168950595138717979087584952533502418806367183505153216352274533530443210860764697284968017266613279891593870449280487052799263481121707209892578390220350348666231858961474085650306392939907731808058230778280386427315572106369513824892185489321475629884284715280546967401094390226141781025826039859395264024214692290002889518426416917141536213809917191869000502465315263708450144641863200014946911208710086356936880649590562288654097310025246590595363026625578024636353619634522937777890687921129904797510654894647527188196165043526443211316426716295348174560310282231283043270759485281127411937143769470422341894177388424533290835881005913257161961201607733562123737713788524731060712757090890659204777087798666397772490708247864439428376503520050288036818404188159442269186440854119834664500198492485523333873424691993680130102814561554598331591915960429380327447227772715420085638664944197772929151072982576901693473203454785082866337489953180787290540949361094878362985957316193267903489452284009478256387046505074970648705048625663054549957995770320581066750746644707156678719228296593637623405370693322181407013800484260526774697368037497916621181202130258147816902541898825540648007562100293069285169077358457999632002152369075193713645713837763305309563795544676146266498226804635945823559550831911790718799160794723659052727772580370040878766138251359255090058700296712136807016273206698307844332407554827092345972652528259868358290275066481418809155721748009806810603847781334647036158523858324322961075699124127075843696650650061358700193984596104597569972671112090632431561681543737704646968079187795925489154720898606028432282719746637105295436788948646002055860365970633127259619609199243534901068922384555267716282257501025706361762583071458896531876835430252902051067190478086650758782567648174749784634835902723854655735756953550555840452746740433893125637122128768232345870337242423464786270634743707710222603860165339540147753878065589049973631686900561274670144947508552704219518297682127877925790473741042840083097139923523285985392164704611338597892811041145303805130370530589978522673618655459754944590954013599156325272696945927499146174957763684776283485022370936167056697652453919808684853527695435268046188352261086902700863615342643245806941888427807110114896536005915273078916136601381587681442535987872650661311341738363277882261407515515929583903383914412464255881142781298783116988964315601937144997393935333357626236912493748828461725429446467195126786110002269748832061081418051009549366375843131163134457447941754939392591570599836203666661033074558998726770571976472440917604688270161220560093798352622253496708074711888123708635465919866692714679805509518128767782764772359116508893090019551776446878221473180145600767743465907817958058946480247302434999828656699609323711005029272890391387283850381190859577543105222529301725174804579902994061240005508960950364650620902058417725657772962410632993168055884359005328842669248617177978186096712206996768976227383285769357825605554455326412282293234654702565866826377067829537891820051732667637425814882538883698778353182673461755947902474925436069933013259171532716593794977033733662517930002804472935861862862551688470964594027174168886234575122097150705584852295520891237852941391281941173692558930179267312058214421989667379998732541926570375166521809881736529427766045168031218793413248720125141708707383003944542235239369875103943986082289746050819815847038201787712947882925963863671083121778945868129051162921874037338132582184066453298301700465735646679375741298078341347742565217341389420085143458298645254271264404331440999937681166005748886290021096576778777993792976517512487355180665453436725134674888238307292948424659302028322822920725671610335686233524694635799233496095941720636886107866510454730950285977968843343448082080257829863890021964828438624350471328561026535098326891316560019076590409205417332575906250008714340609518727657484595012925089902992945316802874822354746953156255693654927821630224051042928612259999045391650298923191925353436023666237260129546358273775261589761938588147918802005282231181995789938018106166712215881525871993060584540035357266841424286726260593781956302623106260454873170030960980609137544058800211452027879728604450460814537132102693940894454208891960631123298347829062520832232295601331291250545295152697066736649665625081696058668635292984960005486100438451976978081836200505174404147289375719994778474354149750622488308383601434554952003603890816615037224729796310131284123384235848826670196839624159570472804116602320496750966336399283463836946092045303304472500386526448389517366689928295720460329320422666226836619583267761593566038010410982978824856707269186999459373780343460259484043793669351510133881639627860961607357685587704427502089847003433535205977157737363437934252025179040506208214030955014995237600493995479007959101084686668495223578862561994850088893421400286277936554474548760946341690845151194169089105593705544425127875208280347001486258558626917747822048348873451157332977890886075495307516601981788023641101716835339540246527613058532868914763690279266120366771066991862643932105512203439782066695777563170206672718219950358366284436158599951507506369557698397578768306416945864118564479014180755551563076869604781998970742062723879634655554008987605769039555044460237019330052976622251183185417800483614371582515605916786183918572070615341399038137045154534035120408916370650717541033470450540893212037423645567261127363605085491816987313381984356168584126568079513329744202047029069377363341772215782058251482434075503814986140437947354759701537925998495983344541848568567484259403856954126747171279931058424853610199310886329475152083151609161676482849203273793202048080551011958581689191154595088098155928910994375652336402353477560545339984522869316753083146275243758684700633410527276359423431344646133725805398401694212133504002063109768393721502860234004704344804345198747338132232036149861347704070772926677848148767549215696326001163757848852011353339064831756700794737148581769424666952816150426223687686169078921733201350493145994537282404894882319307942474441537876932243380867706728356066178168852734276220931062398527021370363258356184549097189566046827174767694831245590682849363502518215428226541831892572774915127653093190945242346506982846655669631938591495972618582252057814896466764506400828542648677843807284490102826439094303208930086233134796041797147226509846698331785499310243654338124742637319371532545767694378888910004143931108677835700063191913337085470092304299657881709339362428992861522912117800744033616491356633677414380812698182159506930238690372420678900519791692822052865058289671175365792522893197259061683834532106238537476472918867341989081321203226127945579858896319049736578826293397034702535623838170136190049760560783441035463744318317225463610812480988221021293240535001478496648486694698881991452161661872958563334861154280461254892880665100376634594401927697368835558583628267590523743168064576810484993953071713206518037791215997763876421848833473326223832489917052958885953552306076393854426514129519082835227930155297061456285860112609979541337135346660156494648949573541594281428436463000097207119969248307784746960145028617654089662078813579825745442046202221537166027690568358461507908427475064270750848712963325693661937599758797399773757426045699597855517828646385625226800926676261812308975296691127690785822742487041079962900371038194187784192160451680512193059008662091787612366049567742162519191229382523052051239144312275274758637030957564887471454509097911334500066485278987062349148876504146159949664400286471412842519458339800997259260050114843069578368629760762686764446727103128415150630424213807554056361929932577986179163668649819656585150719449631235192229377854982551448005321528254407723247594847274216633523707598412715833720853681199755531451612404828547066023387513620113778659356749386153979673383259755994253018038062553307738880043839480258489060641397443526480159455762446483361237078039372343092209654703164025559683912066792763368622707003298313416216478311965501870704596576417875508638510646143410035404143319075037604773859855392656382979558278946359244222208439897061514158772261314124726750000278505111252535707288584186320994359895570585973967051922082900099685995194773003828778396379099841021379450077702033220605546036575220032405805644351734630954167211198139273427486200175079892198644883549757248646964029871967182741220919064990761309981607294134433543680345835388278126501845895800323295034591420026732135612201836190732034814963446341843532505045234552935439642582511903052959523224325682931617545180623175164470407597961658998785841516474594664326449682484358034584195568734341759412710356258654327725854805872606722228417698218078554418374458567552079659887149698274436380020435400255190852678956864074563944765003713959899334356783769781767820788257792238169581771183270499146752158259596058471030567010763763611495581340454473867277818637715997437405632718420220054465274517143345459206306617567156811304533577053983416942308530982094062459777037825463414291929286442002321198516671765037538194457966238562537402104003754128225888440735695468050173734516801771713470930438349831512906872941433286645916081764113839742928355371925607973041583932624718590422579254058074309821627649880944295635798710534638549311414027309071978484188309553911936808209363221448270101326349003521052359904449919104450407621655669011654654233293484366992467468570821507541597619624264586762019205983187827653026564499102744907556637581831787699783519465631636334236179189228668989391496785605051712734369902401969976916724590641952635602819344722307652551843081401701676465012437995937478705047385435416894181493732732961607963454443202314494440147517237950508085020837521514329992004163845936884024452247604408350729497473960668764784048068859901142385032538836335279421039007512300140753789216235824019095195828121973270196245134768178702781406082914671050709632012649982278552668492347430265790976998462035318778450760044005208811976647795884754170854756999351725541715942877325183784317038280684906666364401788801257373423936887836133386100567269180899441251571808737372713836160140965990710579138869549004996582321583378270204797215990216183235125879414813738771265167015230626026503877608339641939607444935347660090003641609187673813466422458184094226761071580866920600919405177877022279702799688644657224954251364989233688270823752334525890654247270708294554280411697036919304668718129917515065314102571596143271687877221554403010362414783760201634414339848833184766404029658900075252857786576685974353119164635936926351605914534160009346090423880109866582888586935069817710238725071656788587783529348257245935689529423804599869370008703734401552028385324582434545547417225627587953372579391465546821027908652746223957853841741426726444119149434830893789167243908571213396265244101874774617920846344348410473931576019675075183286117640617215946597748679071267427963667347084297766400287333776380242228410251980596681560755348073793296840914467892473008352035084235870657605698417712238306129323936848311609010741101978142046773102556304348831558778601505603825253615812919223067719403456785192856163681054427315206904082859601696089376682181430200660951656323485942815604241104574213166557941893352860764912995977317913221448643692624472330233276942400665143049161599090328425392441080289384873899562631767045579150445416436051159189623447656561571864863246891051319905198030710060196745642012381414156264226946267872264191765394083768874582256537179469782566267518509978262308766421731910832563376047969638806798487836862877762107278322134109995725666354832160495905744486522133719809693871175218124119017914323444660597715886955761841310500436767232613050443951651048144565207249760695106533892605855137020504761312732177463773613145005975963157152277575861644982806609427791877531024346038194526934707145078833050864061529922447408568178609449287787657691807305307536719254222850386641031801448917494884572508185323511747901416788432697385599779897260934245787508182672290944291235727119571873155689340071965475829028725192632032210524006845556415067871989608435063933553546141224037161811179479015889021839849731116069315758783093260766803933136250644857326700011997986210850873325340152415207322513148651773344199554359614550630677148192073461617866325769592021508670096088616141659139529795805268730807373480425031891614592788255223794284742956546568764235408214585735785160068641776313408066483135035051023791916499470799691834788577252095362785120901982087307262800343536464546717005054084725765798380428743373740493266524185996599933008446486063536964087242692559150448823718163356487798389738643579191602283762119370827117721667799524228273156502501401975532697463051412569235679976770160580434077165331137591884607448451595594457094061073432355829723151884299419202544188520110356149874996895247208159061984595900832211264171963184844304157424183582642573425304867709725820453619377588039977190913699850504197313278979967266514534895416207803148545808175143461738837062105996174174709625216759189969410525361422113185504569318162827740339261347543218788318644258685199090647260463914908096916336441337757767255134359646185326000091325243095451505729234348823331517725713256768076713813004007922029131980974619303230027052539013234608367112947671777465374405754963315799616720387018700628528668643361310722042534925224842122187980836752246097457869751152012368964978271476393500746274752224396666534554542551634555379634401131328032542204672453887533571490650402764284823794037441500618749686375280169372265167534200977686495408783947384109290904036830056845507236053597997843163516941859543097352832270355336158146819898459971179281172671241051047214357500156629453644006037732627041152522222594359167965435589902769378108058608973144536812319005504413593037478880991872338642374973191684400804341341927527972452367195514201700561848602360004542111389046622549365799394476440807445727208716606509403092338269948393522469596552380895347853430803529638449429691206076877403687396634656482848473952267074360238398298797415591770969346761373710177717442701314810902968050774548814927539512092553217737913652874406334055737949669600014810908455851655527101023419900316861064320604085673828377577789556500062567821688652364472771849175284946097811180836443134152876258147067774780525402861432087376739393603588297450742972725733179991412226288703957494522019562589856933865865872884977777321810811681450023878239230007093509585757036685598499636836598344599706651985156850742846703060088024906632003380035283230815818753819359016946185784113573674340250345212828404516581976241330580546604959743936867963977236618255003939844794499363891096112244945664344677723851246030978234413122122555543714314212492066419047681106139383102580321330374251313415575730176664409017267628208076099462600182630568169531624555001350698509588621636635213730810662971952920639100100349803898719660592218531753460502800852339410879734901734587725914944743270931828604696535336566122715823786381514438472219416155688201756072887055065722809542872093428112544582359933508391396430505399728982710815691614509527129673755638247294769000431592536445738410885927231116575118233663702879351596261357096306505227872921942659328783715508667037457634975291932672578380854711520524015026285823531928653203946209495366651093459630713112604925615605845646706933063917615274420403589332117547713045624893780202547536134602415772046488741995003971300409871194357651023395579716593192675488543330446291970443694924422463354941790074024780127742667245434591484867662730785758858387760938277410278907153158460492100905533384153960855013157740302192717631943364340946955466707237311958930047660010222699679127243008912481110199038940102864777585065574115999251821860126503981582264706571556027993416646072810708522548229381608585369152455157667249795498513349817408899473108153600984324593795343619821073649333910820450512223382287813689805399012062067074169240031140050934558481763082667694777505067939762423074060238852479139979631483848079224880554383568538226043549972218754381092643654181694950726951130726074402978419600572872325763130243870236132538617774880797899119161476071173061033017174154046477621391191180338317586419200399699074580913362034262825435924481904194118369037252116852613708581531323910754222635489341905282848414655890986403021854865780211385631211433338789603197234564830989452849103327622805935140448774579684190338527918451703604252161554353617102134623916611040110070637381625513381973541950029293707812860421163346853489778742891094380918109061799834729156137481608845621056345080467385906880846200567550666168655441193445004770631476062407886590843662793013291587855645034781917038728617108774971258429492777519176013003195059119177124417890143465918137977916157623710159614160356369431579621624282310497567024353890454452499820415401280144715696923195048063405871331231668459357998614917598614584693680521791358041368397359602207589167659080415246155162431868617149002947049165868066307451451070960228017954805380343331845111408823296971297681857714306010709813729330909051080952351518127366227567334966379962736587566450646274559625643836314534076841183046995528535746153960705758472741344375951547666057864463136650824119080590693877474363595457948935893512223719275044547573393658865008083516521706211025767396780823122231092709010157895804657305036940912769545130942502732069664090441028417350482777245189133021956777081859767639442938246405513813988773007415247882446733280620303202566674651583985165992950242203023859986378845423647054114779353527246325164554186880986759375565387836544519544342215776653531342877038810195683908651001262257101586520035643408639850993561585909707898132194250083760194422415203889142569380121909932900886289206939384784252714242864118715586445326057083243475136475351500214454472369540881419820425046730784231479916270572825428693411193003171749759956177396592242636604799197893392093913631427913926798026385373163949949008537847182813667787913528514273764380647287968025833487562783177959301336659179604246338557880135362045669400307778031137028990802422387194320216209878846401722805630775606544306663962054567766562451203663892172210326366040520249272723014018690920324570367880281588275620362214423641483469764701496384394703239836099695085383072338514135843758745838187122212075305740666102359329877998581131039074905470173004110774189551584902332415158891430148377707229719357899624302516360829375212796439626411144720921449066704823317127222210535479346794570020979863823607680147063370532620706881991392127156380319284638730335161829087332813744575177019633535371445025632875622735318673806282897760429319599277072136632389736656896106592990724744748123416127245220644570197258173776313635508719331912232568568634837977387743638612329406349739868260834483753498395265924171961610068198891964559014681481074455415133561361733170766105289105730578912738553567616517704582021610340487370229906464000809674371206584648782675655691308749498981087985983615921776224815242814961662094025131801193847021720063436154051025281953633448655804506342333294203391533479285929794950137747780171124650279179642422775099545252881424520400610755775127496438239244639111182625055096899950175558585663452619989776700890949027765662692348160840552580644565645941291072219238674165573493484787926019940816805780481666928497632674495393420526258010377047106823815594120777739420555173948443565173159762585171257874926409107381086212979634541445852191695528283081407845197260524883147858955996806468226870179163084992974439708710581867664867631055973873880420946885234658827477652038361870956894046048821310697351612444777765433947161037612148390741970497716915415759976807232022743522916047214603892814319776177512375569072504332284652529782329635063978190761445433619794329427495911564670518384424507809842882919256849102791114584350722150317807351632204313714666523072139063914250623502976754905668353561326886685984736122513652299919002142394741512715990500254998807640509854488991576980409708097346485342333869499381368201859702406179292334613270026089029811347199065187948205691597934143509926289570249510363238169298925326838681398215764107587287967769826376366967385629129232377759195687334841925088335896890593579942221627939611448753961784794566099594390878269836242724658831301293885181832296882342778472722119553602542732002605760239274009792425924783248312149266394504425360463715807635883158879243698416072556047338918707240983514690711635774656217512477893639459695411374158183019363489043099290810571612137264180822942251620762657092067689801174053129414659337211702458386027940170093376667622763268488623031998973337420263809811473499153637898692499141846848405363015926908492142091318872079277330056915876824003749904772433757529198507154640475991131530781930332222676808624551920716085811917917884477115941055140256813814965347401710282956578754133644912433542290196606702070893782145009770537666330693007061109819837805995448947206791573882582978951467195297334273051983998093160011627551448037967431131083049902874489431608891686569620029877817259935632699479106689737083503811135209815232794622441128421552058214974032644137096864751772742834041103810094395518140294440585331351599080620179170487027888912812585359314960478777603503844918967825880405563287154745230833324410529128533249050294284235180396742884234548272638291144188115154359207779336893452494196729716552864504211267199397095163095656893394317968016547447225591968639352981480580943895627217887471438275222782763084905604363787428238751015976347581652529788881806788754090112238591690794519105934091787608668958008462249188840511462639994831346513311652031495616645459854631167434808939457584326761724322646053015228122450140407744262578617291155811655503634487439701055357537736197536436023359291134557862379359114018775544959922906591190549608854361325455220513884440564662785937279089349818490262844897882628509534470949640266078643988738047065866459587338995108907347097901196139309740369219653230087879126348664543319749282837548592638099048304896839536874703426190048749838735788220576230504069430774636900789722253899801916758953642427552695664962017513948586511433227205116127845760730117124542486809016351346786786522787103001893177994135793991308801430780085339309967922523316979015962638350243892966053387312695358833335894605775350375933095186901515467933354943620965424310316614278261455668201069093435377150848614294015341881317842909142516783554279051630534892612603148265934382228417495952979281285558077841359842817246727033890151470585803935425167177208769554312855451051800961607246238076088586443638650930150462008994576679439433606708599331574656520171239102522476583534258584340774653515657886706055269286167605767730597198222354193795852236359360864702810554457833565971480715514347168314601266727871969914940752747636823913798807034342331142614094761549966690374381808131332397530161844182361747491057481687359532062031151939326403614512133117507513038295072058037791865214139592750270142977851585959123726788868215642532768826467300807771069321445077519969778544274887151272135523293141638038365615005362523174810830538904195850508169001634895005614427271197472966921001371015995379563350564015992352957225371480949381347462991802538220766610370329226700289084324337033219623467172880499804712665283860451396046184602635871939562405138360937785763733422521794038036288263840521869304650180151748880260830576145858338555561371690847687896148107024905626729432525746306193553427311655972394330793484720355320787004933537190096487272838137595029747546094234616690292329066130865875347085716538436909988943675528784063916658011608933085900552329309070841001745088058045726391100208970313181108876170496368464206960694888369662844412286560690034266084912469407711080403917915359595764568811770227646731823226555943500309119287121779269675484128005199220252154462729772938222731521501961733661167418462202237847524350399366639147214632838825719659359882327980732794502005290188541474484331073102638351741706187965579629096391170228305148344082285425510862548571631469329135359073298436446588199775333167191032717976338347755154178120349216308436274218084107558627918424124928182496403483864982130781366614505540361466473963443343135644997194989107833831792018079046264935620675032570829017564152555407755574947510561540043955049043814956398740908833907052342448767141494054601425576255990582869638953971426297956730766568353864425424297524761855085058559085880057605143878717102602612221226268355946718289926229597868339953559729152320461182129847771495829891975936499363028627277436003377870972220283860504441900517410429806389543992306484282015139276880173293549858518435012868062065226633985456089155821460453848444104967412083552190006696969109200631653344375677517473993201838621509317736222407931147420990782154873581501878180459405759743642377136984268146509121907636867079405421988640050587837963055861520389133294390790440514469677906199550751647730195433794732490748572361341106050352356352098966143426608199633154325589251422296616819263908334857096791114228091857759996470576061629218327936910512554274754736674944933489006768120497581883131721947500813883647836036468036796862311204702035827314012387525805498095679631226042272470989214283002418594820719883901211316417937969976268631513032099926429529941444493028841538346176399929578231094019151220314846946148683603800332203015525531893402019797056130648001371660863893193265385535636363387749942845425505573276643241240817575632283545607405210346809865913899089119456034689401017215048034129017971724065967247537766204074878980814056790778021907920041688155812699418858863996950861497050644243723857463524882346874461697035892110712668552963233829508465195932770805159018624818331281261740804812141251782749244962100612899636128735736425169035286829197690951412244995543131319162333423271900816605750000610395870233850748017241658282965175286540563934895313733204798662047305355578129702556448847127117251407763535435045562077955693823714033132766654554551830131681351420889164658430087774091525848929171906328860171104685643490154398225835013307677532211164999586744876851138932674159143054094872945062542612567007655592787500432422546057110066791599356839192736949247635450198232538040067634991981866837202352689814501018948296707869942229555971887935311504814941778872700791587795242634529588040276667257064662646488339440893336166398957403624627572226366531676219914503154310477694490151772771096608968125516091496684059246614964003165642142933557404258549735372092610182668034298613226132897339948375514108267364574046052231432986296191929082925502192212956741367640428623262412779313564429541683169374349102512501367591338356302552029916742193218718512176781163055620345609167608364601101474858033056275476736063732192398409397988069559294530039043206620272518290741914451605751176622649881781297596670826186151068770864851109614317212735999376865360392861761484278024903155795344930292180967898089970754309693522000976177361088274659166960159035354423002674419223777882796738276977172897668553673732617068384733235728854812299572599652411203800003179673202202992014556987501986539174529926459047659742295262539919732929135146201270877350378819455873144439263337843265565545808730162340802170456921478419705032930252418490307678363412126811473529391328768435345243257134329718020454404329329820461495724438617961141275440902463230104020822289918365740455592293911687054702608047822842848103115204406086439662717759174315977816188585500172787217543817797641870452773561760618704389366420801586565568388006534127535646956690594804930591706512703113859208198436168076494068036122141723134737124514784276706240465351682853941918836588380412766138085901159018646650691001444774596451427661302071188780166654308236394866596050062909165444061073281006189300942366003924794326427734911811985717639010306710064584164858157929234511592040449860686685802130673961206835667278323895524407572644444365059234131141213940755950491241551929213469008879305498145918601091508139481422830632103834606821880526067485786180007572397292048379211954582616010830101655789697080249216815813327817041960352818522484305392273580959312752017853146198046839732787990256430856661319189669305743845688206212134244973422802968050951449202131100502932386914841898891630330118014135179605709134965457171106933724193934687319736597303037689002916199693740065550702265570508711103048161740298887024470699674132262061364152722612721675946100289039277079052538829677209069007554166066126403961670874654103126712957848692093891120656495186091394353238547036789127685921813889352543265595136817517152185928542847389466243214324794708034438438341786043133649879747136313130641440114245299022935556804178829935801954038252029256270575961965720719631144293492056220801671221582402211618011619045675550217521791336732119204258986822551116679755322511873593460481711303508650686605724259868330278630522515494157541630002088582448533432191512701789961533608369667435762374519937949229583005279832197957226423384900617662043796820620643151736864294235309016637134895130986446225684710938231567038773981173859518245561134830250962392852077587623087766520265742515620823947441530019157573206367497826404047448038413168989231918754965912483347111421009942723389831794569284119224847897373940996131174896536271436858570229662046267337453737092317411431107443145609004859868074399653256508765207128169006279696956992695838206388793635036927852624493383672204766790579463173558056243654000801205607007116458357489201955127823626488545987887689978511256638744281645267600641075392376218151524391810997677770767697510400026093459171107093914503837944468832288444653083518265892158919748624026801539332839983006689284727839601897433794381788662755318478453202958972969379501813796970076887969730646824555112654208348788173431998162713075670491258943369279550061183366251332176745999332013771441360895496283415071754980050991299217099264923960786118237721116094483244095700462040133829229066679023511125155414898618062450787896277180963724222657814100148320537745855410860209882067946838616864181191135701600183785406279230817157617761803649209519828810050107328431402270392061125314943612497122027824827339160753510811203473369277788213252092589808187299934859473389197188532463492131049697392470389512889765240551476036424747782916909946922566092307119329477099098436589676274320563878744517687917785210126006248216126694849077947448683837087787633942611086072516101500148458806820549742237629833363807554207191125761946043372318620203467551383576981630287785182471800591135791701596233164254440661427704373149207191214941879679412355387525752045938848126386311664550174951953439622614352801203675267311438790259997669186187240894031363406372950219130858415755607960650776546348827841768622498612256705822232921811684215065607563360564442506518707666032430153139976842411508778259868064422854622074759144364948554698393214959134721028873742187174625083448415539571809710124187285861223700965433919687522136907299839441119065987187807218550630386708585574273959765822565079136572502136720929301353262375547074298321887996033076540233181020961046922336784899577468603900362779255603350968964903326163549927268437936788050009343909582158534820089990956636092961769227352453870288144796995850860391385732245939222338304400181246766945204512532171422330024417711457625827979400327074964166654889063532378974580151916199410821592271655970875311204085364859730891781267564520388160063401729221974675863922972101334755489347106039947040039690351298235271371806697882198021493988490010749974089183457701409409104688924122683562925178998130684772523111531954306449966623085086379603218188191613812864781946173074486327880367871044764478644991218798964650377355119556004503835588224005567407037723700031394821687273647154817653256269024165085686944476857509189861300579306080893880356372358029397879186091588409411540034780282559051691694261808970806496259935840412589540935079193496644693418905373548766158928984028201511990389156201930468852960041018141855730338699839362762658929653532022865259808367403209664735299121304313100538051425969474508006212058461319500778735606587393494654991486728385865988315162643927432231606444907656308406884093722419624179495202557131215573979099951279385402893550982155852587723700609948514254942052298421256147320529251715341980436430188715210447393835066768186854173436735704796272854536775502327121190724867077604889288732820565461123176967508898990633234728934983794670356121329975125193773980344642778842387537534641715615807101024687038624731009237103113737441872559372898630656795194697637320740763842483036876465584942803440246592275126778958142756112823078442589045100565986402549789672453676077366715877943443030181880461184392408523422508094732276875255202383437526528603038590077464514619590114261457250196935252942592182023523571426730107242041119144263398602944440513369713609740501027460401636007209409369330442643502877631875335597905779539098572195391279974661985455891780833923514664113369423488957337968020717537609227869551037754239373217878905174639112275397307678886506062071969111860845489775174110520411642149557368910982617839155210373616624262235860243359317051589992689186991615885564792306420517090117639646759399825941501258488008582373546795418525021787232164209723454145502927623488199899166862432541214735336867848602704389860126417377747285144855422090145631788861081521625525581292902467828566289883936567307383987113559815300555903514231250118886969864811355241383837619429916155673361385527742629656318982030562723051717511019572603238022532676368518854339960495314959559311864143662563480190751319067020031183129902212123421506269104810565658361180912486638823378452800638061882357020174160333255957977741714507320355541142883923411943846322326484735761258345086070585822323756896156216683016075261768994336386765999221087226463765070571841712749565091962982528885191981783249251656190707640150347323277747164692895359262041872514298804226096465242629239043239172203238981607327454521185964083907409086009665714421839673633749762979393041636571995736895020940876972822578097304385623452762305299774336544762916012550833913196313823272005417291603781092533987354553246052818704963076959628001236925092404525761533691823805598355126602226641711675331545015296134524862027412013477835933692353950805929580180866965999699870905735547052828693281748677354173234654024657791622494618595952398332922096869230443961102961460326493806056739935996954128003949974646056483891288308635952584115700984616387724050541664085385886676853132214102696854716043090763261325732442281616551041792154204774568420243018286634801183525809420717401323048913485620966991406451183268620868136046758537042596975781330307739164345808037465987702205556222462920256428241781579675692200510453518400074545020799628052895741985977272124838370238244088296495624053503803933575942591994404441821308572512934871955828272620312873528203731487124253971808434746225028997383268073093061903513804402147583107328477860187643245626771916111215374174207818874263990934440184625218177890224081269244921472176105329287002765467645217237343958969170673619255007177771869796293594111082031423774518639267854635713795124935259385354526522049358327315728846619805898077927176597231774276771087385795673339421140756952548796224532855291433239702300022677850431744525664033662862303367800093467602632362464274197434907171712994872981637807991247274208842758871287578433464740596137866584805094863566257799402058580939803968289510822718247261808895755048514261966200824388768867047555753890712664913667030416847222378635370035897892715652854011544129937856951392325924361469844013784142523346641074852749999318444414692760404266092752467700958501954551133107794579903477265238655822666428751688995396910577466243366443209951667046635041495325530957593132600466225562520186098698570954142441324135119599652154728235309813584609615051147698068046804640980382852866068174754215495215220331939368093743054658784269263141915022941156657219755532134488057072350241442748149696892798978522893896807692362528894291608546485734423965369166416863340856039538940421715839169080551461786981181335255775151133005778322052371213665381612175480718135466529889318356781502740132090197367176614415030598599054782916471485107908838928584282866741759242309667391800352551129730902191783281713976665550002577102824662689375682317194195909539884180099936408617706479447363270155932367366770970783621987144817560740143135118096779497061688328414895907500920575925697644429061373700195953348122484377632631807184428636286129234339260048355831630615905367084879390601658625889893492709801055623224216939544114374795306543938506097197873714136349977616858115801362675863773242995388060045753305331137899308813947487680816406228929545636728630774690270076817372135226026254971076899723952981898894949874052035852722998184260808086956178103818431144237750566288273250439466848807783307661242768595843229611111222942236253263533274706712949418424981630488020971407984242442682409127438683512063636432241205696142115989389527649407553692860178007410979963854976255013719764514114219894588900315134343559279942898330250669722914738142289483187613869221616420285437114741805372885584848489808061761033443950622215358893913456110284072323739837994120844502607839040806878779448509454634819304827372496772849093133436997394164647121230912994938863991573265312540367722155479517032605686915217963275110411213410903870195980529099268963383738686990217221264570951740358287412477437531203217039069461195603951513929726324742746774115476156666653390894312136497824387777274048975672111371042401983822395925058705615767708759100086274438085660500692962750298656820911025592968766030233531755098973750717134256195708066854575057254871391129389821231803320768786747492423886126542028633263540536253009613543873362207238421355023411544958028885303767314219014729429127157533683212414749696437416160583232890071453940178511673976152252312943267982558573908433991057886578435987039969413215877115672954637715117538460565197125433977327042349836027643516319987004809417168352482177579001156650538053244684154387606004798596461658885803137423537320661458689878497477079985814623401588178519929433697251138737932953048458525185890021380816942091954893323700396664045305360321094478493155599369205748985106921396425621844731555361557232214266933497463075210847507452867577618420586375164541364028393861960434211416223176717696118671944362156932227964344287873700222503471401589486060330825137734177352241518039219554992231571007321633710870036485723932399003879884340569636011230287588175209754674004529419563987664685707750976570370760386922185677057352707679649164581365460021412718255409424016344025279537311940984197344648853433378455410688251665478332512469469078732909298965866608952564024539028237342006752355377970062399501761173455761640452704014277381798890685786577992098878119570811961777874661242728399873813543983109532973800949092257417865002680787008101520206143636811174146014884735037076474937125872970540327945759033489365355991431469897649064540420686328383594412565677195507480975305202967107404555641421888553998009145512997175093769303805057693371652948771765006276900995116812280936103780178556140512212879379593836860416811131649527115513326476091252455607765053563483154449277642952937028538781092802108311191040852751414364613449997407403333518477711583072401858599600507127282662007028287247563867638355893085174355561781668863985717931918290702358366456649197026010220911792892072493537660534779859777772953222461668432017391864043902683044884290804169383637270621571483056119000797619032155903044217444718935432294270801474471104599242810685877161551536658339611730601958462980969508019420241325383885554363806308180647309833667679197583455760102034400457722184415071460866313820077158967066324234453759559909242704243757434824587315928092032287668836913298111226108088129302622626404648106781937009249559032663074375893418769044394646696728260781438774876705040329525139551072668639073514178820045211647156048554696658171828538900766380890257466868128508439879886307277069372274174345228515116255436658869382771163623819379603768971736835509854480730709648353499276183939432134130142696624101391282522880425383942244313313407658544523188473761548096320857159382799096834836687688053815823812878477989425966295497682801918270437063245015327200305262485934632750940368091627896486454057251144259471138356108647422291735820298315025184474789036289645805463502773699095974739991381636441156524339309024757122352730855027815379199532639699942299657118081573265069910658334088922916196641604807976922042031757736686976776825614846436628242352961471510932419229530815796753892745054029466487623395714633006900272648083225200829858521485427243596974147978434294808000867551839108448746359093635649331948459643811092829520216995357632324281571827849026924499960234225414547282244052468625304793519418087744289389202397530818874433039440450598554840457409116259952178075580038151261629547626748625510240761861569910560658732852772768597731254792769340507555095840243579921830463544494639317162783268489256363206335095843869546141995023032358895993312380560612871920523947297344714950065831382541245388968413588465598534160229437404179717104555750773850862032382429653547619767962474734724209778667765016648683614839797923894767242945127317321909366159182836801390672969149598553431120968247298599430509874152538241244539695694158997147079577697943433299434363812508990007986309354584342451893817231123194023513398494260034447236853122099520591988110389647309977107958702583058908810870397207173953047674988384752102259552822829072119086800348869090774180055108310527662453836018658835927148588719201876964437816502498732285100902420153731870505579935022353555324140655782829881569215892606754235843433174986548960416476247337959588507372372007181602390951153715578648673331149680933039280587311684668182733619879528604159428873552201682263162411606648932000772548288873726462543071478416433811495947005514554501869204203619854301212401028545938145389068456176358737659522715474309880540091850245293622207990475002733341216567411861464523186345069652836961048965517595946771043762540667085635902426984973984579600536778490493263760139528317907277681785126961892504005616875921335027130429400413263771356575248411739344473223906450009783672073826124562101765474838468504175109437446730246302679633159767127693227937798075071927335630150097906357002227770920271046956690413219030504582807812629098168365219550797258935378209332112196589229154233184380465896426280377007427766500756539770448120170382243131237124638412340795695533763554866951274775232205166556629673327899681046522383032392461538951546691138426924068215523981078487714712928216247441401975424241826521453829979067818670153516438314076790745499320332963129183517165399196257516268610877285749159527219663508169082557573392570212772028496584678517218600768321909078665446664849312033217392572676593495714034919062989099935785914534786733101589335239086943016690356469556832799622225425019975807122160482956555201865491020211635414779004821814553436158062805985483822594187078772577503227324799601688971906495295142686556979346829629256536270671005207541565626117974506994006954312747679329905478078701776183606197116423028193229568887260766536973297985836821234090317899487052397231714365195621587470634848520134574110719676201734880690402729435152141233795752629993601351126614688167875187925325552672885502397824745664591744986790494725960131837856346742512143230386888596132754355592581098580444014195458502013740288354652677416923520394615974281983524232335273394057077985563392692775391612251690669782754236294966439676266515231645457326960485285961115909251280293452987353359751914353328655727067467025782382099523754921080118480929690281310715350930806596151667841952387760063001958427850875847846273868674345451010397310287782178301066388085989262152356467595818864869450046836594401959567549878922358218250875269034512925640964483418804366899118089722178251519162578108243167864492329560921073120015985918156467076512838124589394491610803149781784224160720920051176626382147614772680477927324002391765850463660833346305960812967905633499133726975494096447726790485533526393118807677314300708276450987624254499592992183088056194078773195018276843081355533419639142390740963946528441362525482487797170448022804900304481603688781743677748497004951369259198534418367700905890668064588413984381618452601744943884230776137369227467134651387960410725768072188365442395273252080586858545793750300764659742283479248064180557613385443151760544509740787851335624899150291320134014461469633705465792205738923899691060003828521112370332735672661813411039565419922919691305491048149152797926767287472439877621547091204290100923364669446941671197326670832729727331905098217150863094512505383033640911288582546436095814760386736719572413119811629211392583613107928560598182717444183778113144950032419217406254928444904517993929116601284943093623946779912813128216131544531692346757680359934225999951563243714176689980950550787517083982007164465233781199500762972465956626710139070679118650970212710937099430241677698922639663866503946364090596624484628633932132157437684688729335663393075609940580866097830350512484096145739998165603489191190999798727016161296917486422247584968347437085051077124894342340507348790054556629068522913764628476223038678423176023317817492407737941435815747040630308319122186349152386389291496738179439688381385816315819970029504887307280778273752241225981700231216136260844520612388023971009365301849895435345972818792299586238625590912942561527352587541099618513915823115544639968902984051930289547100309285302710312670097988187497592616466886247001438159762200007693034371980494467818991164366871069916616620882342712577094243945486086886281671990324765745331889668989709854997413942060584877312108264206288705402428785096226885913365304156132224556954336132408243624882308446692321893954748743564341873056664567831545063017072098471133645288354634185481943464028567491412343452110678969076233610642342432781484027372649909521107275405912976453007880521828435250171368000237247526030404320328275744031855141700229752687459980933168615505454805035247773849328273375739011658269408912069149934333472797766090333963857983780600695089566972009475018149202979558805920464800995253899384840229200601190217502521337728919613546096817861804872269549150331449807172348089702841926970171033179365950874348800522892367922997519329623904034843339373842107149325065712316203325103999398519675356469489217354484504370420200457537016999433452884974082055187274310454882419529284407981757346154638880506058369612405367119549223135352832624790411722273620124055294340857269110919203554036521480633282100830457524462899752715072929568665682245530082385445307194855077741454190865086254756836977246599634690642381531076139186391183303119564536462489693114366562252101576728842278174770772828810666417862818781023027273477589918415272206190861353339446366864764154792384246209245225044793997652048298588801941893306635399185088531631150510014869192324696171071097188109290115514293192928341352087653438844715138172461495280949754761987074595779122466155683273437412334673541216653677875715594397406053075283572201283665568036530342106256844755054042542478160478637102775215264206549131966950668988081054094201107951431875201248940414318511420650801293096159685456772716656167097819448911029813744774452145871100511023795035773533246598888367452816897492275694346998176090799998653237518594015197214465032611655441904092636122359899245696115690311871896769947110350992591126341632520781928421422358343013462921840521729376035574982634420886601550307488430987258806592065847493893212867114319576821084773897328355431711074962670675608597151703543282871935188632502969468462437859279289803424369550871403573636523588100156802301231596804823237040697356837002348849960740521772082260761377979689560939271865804781805452911928512217867390512455056148346925845984664688221257986508769981567493854682863480546903514229432116911762618554205034403624450756597029413809223703038224365694030838583321115178448593368896458077159938863132930841829302463436171038805988657384097687402441842931450791152910920258695479626021827120006928428760854903992307089126041999668043203151079475610147395121573184724342487470029673140568052119456217657321235378381063642339349403171348850742373500855272122800104266877922697518053636188804530246587352990763673639268744690149431654761057901444744441430409428215482958743840735538416800411954636315676784466915860049033712298278771119670208737574457006169766257052324614250319076680687320949822855534653281715986283289370535516692868976326994776310212886974590172221768463687308055577322981584859773394697668082610487589458593366395389039379167313412309390614300727598633992755148849174504217030055041831659498131146480939703877898266726177989574360707459657534061813375126129421583987857937737956679444926775565774523005485555413588947287671604466962706719252784041968750081726139323002843256578513215374964122408560157753361225028697208407026263043509091548363196976494997870003759880332770008218943509877189219898428436334903303218971475104083972555588789228536696925044919996491482339641472257723054903677945214456266832543366167644174298590980386219142193652895503221958630917224694171072200341542644762830544391490059533687258600372700084463649734935984212348066663000794747069108397140353336639322988807947567168346401472749400983459618608928770169442357899114857579912479689710842155801371789815171474752338189289901220976937922199888622622855154315639996672627876822196331472224204792772129987816206605336233469743735026883086462346127518642484913601439376277826909666901182288210121055020092151325843221013552559402247970374796905408829507372305767265676377404401655759233928545456994847242810709700581294865003302564127300364179555498867303000208000862856673427824559937897869895783720133485364925251870403343789090216851017565980674483102340192717994978969014887480243672889740832007207727530112370907472068438718239560879180353857329537243994375966340008964207856804142637848307964188516175179033131438896137425348870663952850458370142546150889789439045953858021126181830143573051175673813094536951836375106497425105046121418679356624637691362903551140895013125213863423599378921795266210602395844506635353189774653578742005157877039802324708203850677788503455756814025371332605460367013142602583884772981610468201236728102909024800131312137103120127924876389914810908912801901555594460666918641756690953654776009930196563354802632878792042882204973493337614130583310701252288155398502320832710717665100097794300653587621059886675296504563375838213869469279512386242212076223756495222199353386927212481242905272693611389503999775983771955466213184469510590030935886806777840219875233556154602849734846269910512812637335578299343497906863106153431776156071803308964578875461022307894337799075580032720702377876910321636437894787824713719464384511592754401904445479929946718317131494294505614383403779671612592383696672484194583833386315504773479673132320347188813982765764757389041563095240344466965468216133570510842648545955491133395032639060518804685668932414274513836351127815026928557087426964690835506797821644628822067624427221368867448515430625259668632282200367863319796484789303181273399136164212205455157334214372974691993446814388297956580875006327079263422763598224520663889940403956351257470630964141811243848815830960095011922669105851594179691690251930320630824250057136810210497551715667307359115882123538543758265799536681152273909310309855360873081099547834701646237616713247440719568562218124942071486322373550563116173755570239863801097220097915068668591275709538483226009528560135661622909542180227006307414565088804330366904239772023173860141558917821736971717381105643936389182364743727767675138542900786081779486540553741092205589432463001970721638629573520652275132776268526686911495905419563096389283980755087544662285739464872697536517615904470418679514618507339697753647329181501571316376008897228474369471905889518718584755068056798511830416189929148750692313582992953002524990055262274923486341375081483117321336705351317475718893696640291349445248161598026977644705150248279716340024355183439237084097723524278860730319568495599401872696929926410256378879257922602191526805216749419869762443500287379453340369872680463510451835445815582370533236063105586412798980308268043342624110378910307111145151083166887156411454917616069027563893406225050026921531164550901990522342197089074711704687208367246586004330056686689628722966095641298142965126030348712295326396735664912997047631058820698874455535146875560093507598598552493766201311473385728742104649915942043090988262865138786836716624448213300771578334554374284959555781934499540937010100290556827130282701814663753235923601395077486171396910080559194622725333470920547427357368064985120764172580183422110837045576026882383811138536432454588901496498606637230653594458189022163449145811373751257593092849498222032640989513570196362937172517192767257005621264510298831143045297932299844803350397831660386166569208147287903773348290788715798294648872263072839381858708222431181007310645212501838067574051832498084712118487674754492909282029785066920879865825275028134325398743786453286749659159889714968173382458061236667839975464047062658241416982910787132656356023749763809598444455882981774397809808107903089244038077695511446814499957939533141972829584622146194263340579357637096848203046622488746684589628340106436117221324696603136434817227703298166914727989845055466396902934427695638854063975761542423021922223952637588735088489898439329119427826427559804107425073001767202127426289414937743870879779911502828775015412014051102507937028463853688902009649576840177755187976758125787846098197894195033901159291239754041091927217259159006160217586147640041759491634613422692131140550108786760284880412099660703756544803310276441313931775790047823387065618557420849698684245334818090793764827954216024907491253380436136277282288147037340796137124185182053461888110095568419720542104593310237972503171593577715756602409195215521082150045482326319535558890545795058128147830978553409062416443835964601360016665575961082229707358283216338178493618629257729154429012787189218838352948377802212407710005602785401800308055100476145227273413836402947321722844678255232253621084613745792300801222143793001718590380494722167697366861011662338533093162282279214472344326842050074342875643632432469596272720694596942826083130828427680111789029611782746781884820302187837474535468761651232384269896404517266037366914111265059546773248519227929196575298791783987108040634815613748755897817796263899684707053587882224520957829258204675594313466562379651428188231131744855732189880455580359764767752594584575272291564376121749468727733366498494711033696361948468383425226252336703159249000357018160954309924325803312856058069224494950664732604302741787158786429607445989809382917174313681626766781512178649385601898509566194127724182223663136385425765907779071064171545686066344354468717039523305389820613754445848690346559776189560675518612799037734734214702375214225841985665791229212488971279113759295395934030415000712835022462028243357390069386955841616495289351248167129236832627613367134372328803430180259391789499771788668987710888453959226509755951532259457440026876823148407037464204621401532010101357173129232964750730837178222721384502943575712190333734979558491053348585120571496667015884704284337670572960515217670641692891839952367426514262775412893132692566246466490643004630279810308613826713678131242567986983929932816372136811290090029478360805097386100584496071064976926051622891330865792253000539831126501831676723350604263505799948509065624204993845519920534232974624758114991031636779342268513988308412098451870372221320856030433742832295022494528977791807532607599256839323794222890986188932640685736968495343056621904769835639529480649503071462191172486515153226520685770980717600501545970977779044942653253526313568931004574774121909583512900621127321169047043317543071453699039016159650236508840426905648162600515705904357751021554540178347106777855671280494686727044300964158921901469037730791387601207169914319667343984748817144750413638803716395775642048233293897627968264112293669090843076895430863842250243903281610239740926201434401786602710202442700593232581205762191645353790864010117549850809428718533815226917063247029747222993880459910498028947467226223047818294046475807459988238239546803844422795575176944024976192946262142518079464028267126528661591410546584499705075725251036176906039826634667116512763619378522101534837341268679189308667944658918650385896477484996871841626354732908499861367343101029436445025690253826240190169908011050682518699610041024393841729101815717466624527521780033474162059068531817105700398832225462822669699602444129909800514244982369646489587576992492279437783925358382043971894101265532684746642289212035175384284458886728081752487465418112408278154319945648106164026753579017064400751700569957887424369939747051576750160185404706676157791294765872649415051277127507346507733100214931462554247977159504095127741388549793987461995982018026446017249415512640518729414944883625226760909841438495158740269992651078019618613294868117438036384260741149339707064812228855804984443954424508147241069013359916838676336044632723759239485641667367008538888296864641828734498573611322188850719943344062301748861416888232145203186750135283820546995217460848395485377957875424006936178004217486100445152954102699810560354869840821746458462716436498041154273707244549045614614720157176741734547232725575601613116616046435043483118690262113478706577701633957461486349888492379706035512717980789559377051341755484300168291943270170191027063604464975350646160476002810880228003309362569385305684441991644988509012143784729941844065210068771412178204761828043252614980207435997555368870016169659500866570830486281238255124041735738196816262256929961400323751317972089153428846567484586211460381977713439141401764728062068026647149467326084541649707945724221336240933716787552281419422591240316578381587919108716830849470763910049988172583152478408646017015980416368764069353279045264903669166832850270170769112371250319846495011927876106927042159068414446450063592783332011190921335408900719889687343490634974651958936977810947233950644534388117094633645943476609963072341130234599332659298410528698751470513278280115876221632285334511659959377491778023751266760795667153640593162516595191310998019211420151470606770559452912096800034679496164620362149106084427381692081907037891025402790155547034513702031227066365142365655444122540040288602275902161821530853910196064380881223496055867342916227694827034745502475979894088127835141599771548872269891422284040702707704453336027281111190162971074448637580780503446964182176980377005894813465017333955996929166374841604612217759313610842298846675272008723558278717591332246204623557288230242155069964148956893360625047324068499397948565374088383590098424396315375607439373785539128023406174054939998087990121716412598466891559074461657954548650275618776693071200998046042223130340819791017421048817711932298073309604901390823973049353879922893373775713675687309786636877382676327741606597059509584282242661834375922315811799628033693256920923661657828838840105334918290177655110172761878041536977153437445414386684744045967592114212400194879479784091486754887214729113267355336011922060038523562374944639249196968507314781177851531588700086423661516025726115457778655506404650912584995835223682898728786395487215212718571599665260114886322657267994074075835553744970234795827703180138051683849114135804346914850839991105114272645118320584185554740966479054058092886091737002203506396501950571480102199052120219528985616288105047778170425528093038679189129645434067835846747656125159633318122289588420573401940254011213367334702255777131829100559247832167035793426364929038577223313478732283893166178243841010682320184806507627579341252676559254349816484074576425263834543427771375300492368294117598065363106327855800601673497783463066720559243176886764719734472499163880916780700249034167449170155959329291993028862559829787886582836889533194637392518348516123261936675972718094988731484623189838136617701593337967685982884979499264674853908199094442146279077759280196906827611818196918190212464613660065916746094135263764483734003279678905933143963175467474348719901731477195592862955884042276383977480975102809102992726158187216232661938555195991481697353022099685350694504579923125654735111326648804994683770612885604472707974240290105678851654156847272149382700767098910964579250152138725375048146885190360748312352752580986834207624468401267197813484168403413988284435814920946660781345233873864399646993552031316876317344160832141743429582113583661909362110842122964994989784892187129494244289004537956465092502267853901468530100885812781649764042935034802327099670603772002751352044248459718418425935980877621143281368581975871046604973603922979363922109520634606194412115626777744469491398769478133940352206045198697104964963968763508844777073513123935173785114243827633224629138960560288900261952782973756661355934157702595311120694897793216543588869597312496401920550269205859176557498631869893497594254956456308430241402632587549598332737391991629597950123727061812702077999627403760315392102488072621358320934195399414766075318308818309003539143240635270604470872306039409051391528325904572325150441779775505637509295529569382278390817364472609906873712735839911545194100837936979585566151238990539466034467205231307005062910163000178008196485099925471202446439114094931752562295458358006728315362548115583483991113281206314529277692348493621913423405584467095777908495368147797412619727345915826030775262424405827645886465030090773627594130043128552100514222142758192713553078460837341532409659078226002030309816842933760338620334074760165268676700378266810949057787942619928887728060299049886602014126091961789904418412763368299754328083843263937129310927707105718001720901867582828935673936179467826536629853985997185593377678926305370995422258709063089724658475775745879435177524195572962810093126724011950700985955255410902455168950893763743944608565305071018271134609526292599925004306966311352132481188037625218691970955017158519291495049329951171534240909597745869521200070722606615503553177923265672009683184896000936508039112211418415973066328594960376475667557068940335750029247125459903349104920184316998669783498118059841645857023783839711236065126013430502373229373130652452235600760651268364171384981132513281440064978790105812462735947199877672328190387505935031849156353593277431301835637646874098515498485396069105096367784152736206939602685992067212487450457012881074455591009047070427362167347315424521977463508672760048535918726183435124258158186472752946771161653876386287030432211859226675591808074276593274831238754405265644308965942521120131323343960631330269166554875127175732356485806504313789930369188863218923562170232469704884134695352162197413445209109339664938268989592357875534664375035192672757069311160981526509756624602751869679481033120695956149476565969191350109934994685863552188960571212762471576408896655094523341394771494142781026291375445308757515676589387779688277305338861927772429389726216378788356305219653220946117751844809388599754710252832237701095261493440372032378069173862787282542518625523898110516452731285228025356261331956915249558604949356232602738571166946273024892170657763371694918236025238434580100545570761518807632982341439097917922054368164332262296644811753798143222318921719687772288751295735817491274090180678334547465729646863065487858259510458935382439216246481729921735482673652085533238243978360489193933445585235751683761213860833292525865687416446486287132403482163138622817195998950303601943453084105821841615380043342878285619501723534100953657098615599860252399893877765968230381341488779569987298817326919280434820784219533380246493198990317510941033903121283576623588575607882694987185661096027549222085538986004858061260147756329915824112305151418760027911511812663959164021380740135551228351005649754116943276514012988006790502761335958578739691355070342630913032540481764511391547362652861051661708033213169022869320439377127391464478725326794021775417079660361437483046527431664175583247999126629538620485605311285964167562138034699243163181385543387554889859165895909004200866188559044824506167642356096878002349604849433723389162253513601761536105106118923557864131229205010718298652166081397150531847931937915041050985629199565170899322478652228308065967407044749534964241968960292402825918309501141198621196609341707176708023035544206456348016389875206505577406880330049830420425181494127975425278052629531996274698562332942368962966852427562336879048267099269382033567879555576411757507417845705268905432092378689234187093899034830648742500312348035035941284332377217505697122406699737609059287079158622253957632246984372582099465186676850472246170511114696438355221359617434801285927814038784496013809969525045556771390655802500733497866529489669928542848035252775903476581116269066055091103978419429631471590998130020457429467258023822524882875566238772524538904620627711202666272364403364808151977571761157281237874183534939012945950956785331143033778145546183018611911329896895183900800731293687351540966605708988875786275454475110786745802728759332785250571418931877476448296628936484154431014898304504202245892867486484267668024567696767322599888044608685671231983295854788404684169709497432443637520990907595145485770200382249612903429075562088271595166121934372380980471066022504447516868899200075992776265596969342738694944902034708444952590572922940842122780052464182915641636490393276798354086946706385159387250119615952515045200658499723258841864172620748382625095565014515218078213529327757821754114343754624903581305616756655201480206469520597522757161119970217943970111271144894832886851381283673081696529414209895674963638237291312683183656079503686068145311815720308083325415835853205527040909555617713604662389978670810066649802029517154169892552866916022280454311717117270488811369625839952611912066551542449460025528458573671890172358082043281441402648272299892737209700614883946779129477531445687942517772291179833040787800012886288180979182689361537336176772961811099420309990789453257473255641421595836431998148656929690973956601015950721256944364772948856850253528932585583097965474969153317794128053338121912238195764575377822963516332506272763447155069401095345680753417262017099239355332120588646961559514028119511102406454528632125191566857993868889132767322683782949372226180052252785596648998115206824344281069973034364048507493137745458861100455413574649425327699749012200005433212441970020851781823629493830362578885300886856908048723597004196811990977732166108453134053408935382216377691576607774253391543115601271224751522417176088371093935194791759424157166769966514325095187144210606838643909546282201348313594342034809345380570817146653785250069464929698873266290218026340940662532370534307461125392722605029871985076906465703003441878398229590022242197319403947871101356257814359839112870420286897616107992738879340519046544952519935503759963342274838748428634441691074943546783789940433752115676913372564992226942394893559519990483656260823035904084628185749120680182954831059167972416598323256704159835244297333851185155133992367613860257027730636420481149165438663246397181141956314403618092339416342152517070769728354961388920545689068895491492307654471821353330692796772127133713698451694929285307671532971550995757631062539338295923688564614126900632577543934779065142844431004398004494347251473995765001796496206507167408519645036602165292519947837764435830791982738588761926204964171406314278732678125860656518199068764590039813854192030880096793559617653261371306397184616538613670648743730996811706341600345761194239831907727210066906242141064106503338032480196070682921239870500566445248345306119121301793862562433584207581987342733073980792267117262768594153424688767891819838773694868548291170796315076582438446561669473448235709641996671384929619134035291484958094910368359417590157584384689273573962727412686714581228785623607046406630806869499213763233192663017059768710282146214747760752154933241882331796860204306395704467994804610459141154949332061029123223217479039478506760241124075376318184703458180950443802703627194424464851774618338550497085697591620927878013874626428904874684378613278335695021441050373413707948314456402984318449983350907540362037610832440159810846419235642121648065517837802130864638983926924885339817829701116984654790562052740646108235329368305623767697625086298654952465432387219796749132824482663777570226942851398813142661906972137967795448692168116614377310493291544481564281106150614970990043184514236353353443384761949368725800739421623363395006825390855441125651256723235225573576903469022796504631176066215723935490144269130768532101891550642186117640099008839222853742203081195082437025200377243120576019138499087953040939154434458154098337047738949870627109884255656755481736778881003378557952164875569380142066574223241800452175745044566642634699810907071121427846752767851023495625483449447408676761084153422847405252270982707353728876655787818587525304572716649196725559261545928143285919472299836928329607203624937184662554190798648372392327275842890149854953474859311895070929432082382279269781631597679826645700047816353082063793610457163248135135889872935617225640785890941268358043182167962866216953058703239289976556989257496468456804139090906750465208507256578732113952641198625032047989951297298315726873605222632371317371776257180730441287833502630349264656217087075266878839556236458410813232272580394632507883518310510920474052543883813774635364836803740164605655803493626578677798331749717993124769062090431992854487006159957981115103336005859439972723826020510526758283213967933641883053481583283842331656958550865164657678375542588398923538272895452249008616347930794973149743524158970043247963443072729315442254973616574389230125478751197148129373180254539318869101306374552168575720540424833124724694351786934421303263091134613255559557515475487327880472532847517945046141724145601656793099826681766834694390092780810815391360137913637431111125997901901847594758791961185594339501742381469573813279255293461267879328767894745104233041597298339467440768970262636139857116701373361558130285130509566887213372959646288923286625662061978425156007847573492232584675887947125110551431251440643310923267576391136993870356919666445089508813548319637763730751267729352882310849543651115697255273982625885942838150899780394210384241590836177707098075846184826887093956005132296335220703000849933088906434311016570746361100333276959612850415707720455466539282835736013915242570182775842037823339114121291257061465961289348552990215350569673364213627995586269654753859383579185375311465335374084463068655944017170630813656542256563188622666165432967948489609609115258017672000507828834840980405700710607833101210493016501199081629743310770301298865200424829617799162136568091427853905201277461875194174769541117951163486318807866157361196672270862172938871649180262639788063045843461176328564640454284202324949006372721378003228812610120767226285999119135682279389786346398096363151153157007740328338601218886824953914901267201900494564031884524643049306435243523804821412535288578528395726215061836618887226744594026247402336534795476773993995188335804104706758753379437591781749320626328503033822427084510996787462092044846803143429835618808414472149618951684262658518458910932789687275996970133972868768301617600210518185306576788562569063331315689074464525368122395742774338412965160111600447647068731033036603006838977984908146377572117817160638134540764683586754424960289481423280594989504368950029326980651008198219070918092103961576774824202020071201883713939955328795994098070818083159581831524255085958427020537480531109857299953454365158546896056553878790134279054446278599435962325515130604402300551841693271217069227985989770239352336891760683304587040725205286536415708230939741323520473162364566138851263770238925665488165699517288507878953677304575449341168826041761170574583460598593121937923458471016138802325300208639503713817972438374322204025844236197894626835717230738636209190345260619273871193524319301352377150538987077305225780743475196584097679646755544049692865511873551567772871015724772229474450408003037540936717955598657135185710856002843070069298145792813324308937571894302582118510629172413751213079639841582204907794304587209123084788337223818516575382347446968630895961127770941445570992835145413188396361976376172511013033350516116628718831382952232349158860944260349629323119023947995957525845120813692107460201254150543137604348566179133492592733029353425690430836198867970146627436699485692113088809579497431464093976658120308498230571639719063960548226773884497606722370223289399411387391778976641530859361486884774245247624835013140170940088280407017225105669279700285183393259518979180406234040029819503403629936186031532967727130102756618855920616787843264000896691627670606206432652218247591289355389189708440035669936899723213374817253228387738920148816227842795627342100491370134485488910608215779844739969540882153446623413230319693501797374334478948088836137136450240661497409856306179398261855315448462238656669747242620492103135983279226382550838724283098478425742186642473775932210448718683468074705377514100921023882295123944865326212720566500930773776488095577731839840963493243699567164877527321525589281258640996255415336895434310659750315496792524003693773473496067837005291264796107582700843750428737613944140487947989711111933402513289910209689887522747728573682087004401926802703132342762564301366277570353002285403344755211229512934406631180974330740609473140508100607212820039743864070044430798060706250157493762547541983502389296135261828838144385090225782765483351879580449064727476441691895254121243607431470106334608336244646399936472683689220796456005197729636061568828878981375955911498116164356471272392084940940011107431241392557913025409155336251129703220649641555271483180815996317214348327840094155344799307976400621538463927965509669481566838539478869948624549741512094244438171633813976433840247646195263478236861187688782561731550199308174146911324374423382411273677093061748516835321326752814735842118479810127729239613404178335876970315073486638324873553725152301515662447656665118411868066783917451004736766712635970683604843067817467522398247533878721451216252625435954636753471962678486878722021320916424830621233988399409956455698031971865822713334952602778531159127308636898891854228596046959023002563692335855219100720238334570669650734030058733441717067231709265677930600893215256155395445077829115275850249190606517738377693216751981731823623232999391580873754386417895993823968197357362905243745019639371469721464761944794312104317734843257317166851579079976236974420473539852343033943984129651309589952642015432877393794603728339706472736011073818040706724925677217376013163189565534675185483562853871002721859023224008854000493459523952585268513968896629214245570922459435215452205325461615151516035257186271181431457986881386663331663521720916297688775663181684859812059854204432963950967613218676363716753438528391088871876491698918243196349697329377168211052354606129542050619743125582292541073998666007004000096932015642190139282405069739102915865721686959425911290159589786252221713101459414877821029097002824536120772902595174692838553018602635294996808750971287716810922420730910455498683859058563545554489259219059902207183891660733778560528684579071450122466216655172572599300347484167296003256128739120841959414148503966043349341302305309931990341871246997597476624803531100970954608387350318322924362246879724002983152422187566146069525467793594754162262439345668296172269408559782993679464904199606405592955370165374391242861978305149728369895546407522442791685775865610988402512545574581080228801932207961980142482045743064626820095519404991663894425577513274242470449298979741350615675438670231150845876953325225275703571808775269890887771001849550664987646056908972395959372157933821658026211281730906614722041480297342140129699953493744757484678340444687632039438788184606152789822302960217411728336641094370455642574582681757261586728684659951271325847884432490201083140542676723659950046253340635493538590434040351981892755164053158589964220583415450284116927400853244810430903110634850929765974131872555023430761971617377390310963885337248048231785519811668029585083684656758049081806690501057805669834414798181506260568959532424636786681249235459552957312037498634705559727838159895424424344058472016963377779921284392413431128340739099749439381032932523994289203802572190633577122054213325981090361843423388068957036897998316908349652983192485862572440898078573782722208981287995584095045109465423094117172506823673745024494955945746969145328543500107944285667145348988615504438507674035973421616776368261141581488146567071550429644685586511705553278436170399908804642908059517680221665404291892680824867160748425773950796249132894795241888332146425825298007686959346535755257320456825920105743819901123297578004226234347612608114427910050968668417761084508382739309646412741503126906186155697315351038511320581641161984165163909503202409049811610156694184697246467623322077834745767276779903836903762356100588153505212217300070655503421357393875360052854811957104503574619923594806413896669022150627149715381410572209418562437240020611505709472336898086722489709100833384181678953184583774434259970811518276772917057818194647663603108593379412909427791761254958581921417227365071696608876299125118611315108207860657282065758787042063363643658795091919654547624574684020739228571432846794068006478113195356981818402767416438977159560029881052723487614792963382622683693564410312357117791756747952755210859154217242622609237079346764010174781113482315993977701809934705996395786657541369693183883018948872151278848819188587619107353531404282559002600141707712871202357001491977712190426992297953351793684876297781730631949147355378363727860376588570159143373968797805994838798098893901743111353479972403969296068810860237422738862960702953633724464208909773549227846114471542956101810033358236687363947272137506556456142472406300169752748602766467413841011911940464452559963444021682324191521784902209888482201749568010984672971204077919119760843408219297940395525895457169396167027940706164781018444864822091516801450695238125913241558865023080388811312331298149301789454082776850842060060160156315825336061533483190516707466001269901834638807852096899487645599282599052090301775444246808882710203258058614979488187777194291957482964830794061809263415823209661815102157725096914913169389051190782470903343486893253684570754078132234655608263935203987414927201495545278799989329721984780191537724821018740785894062731582426429960347419857245350221681700710727827174784337118893236076996411233266706646000399885513792377857702703839316346069059665339714032536217664412112710061038696936949627448642165579535275266881718004449350286325147766814334853199928645353075981127189641315926289535023183964834247277236028649536045328352683548894702992820780987126265634412096014018552201613549679604811365802896484157734001791337937136674461746292321773806191355732666524939149043641645822789479182466559670964952168474690519678101896463903757141068068568111127436420874817968823201805646370535809743098303379168832970109587858065091786175362002836063978596619219007334096650526519832260710739919553327546707199915980481978726543813174409472571022809810910012328529420817611940547386676958778686434312140420365108631471862014994644935734234332808594539052412333507309988610975112768236860844560176970563339077513342396756425557096785558872617008870550143798828357190273179027317404654922314887904846087153079306805297635804807764246464086607877569711391784776089705618197366365588473420231602389851898474451948410984258315441199245349658425275399169634911978295948632183918923682318804842583299307584040461931260026335651389144818922254060985496394921927426353769389241841386447806630149160645196972904780672625681002938087176224582927049764214517348004616627310621565714199958984802462541206412913988581009435161051171015914795766543042620733492640290221542813657076192284139152999189632507097152438035819870839104466791490732764609984787706193475446249358619221951211053044481549278546345381190724093156643891836639407417824395030030238547801021437985350659144456218509660937594361969921583204907173683705681622841822412417973878106932145634395922209420303950761579052277253629527778152091973299124683514407852484053312671018036117123644061415783990105551213592451786557582504950091878938810261460476847662423873699851868782820763779097062973140973684168876123797909109279072524602905349506896010353245136791755152202929871384244001663986731417184545222215409430280159671127615135081983807549598570445909601704920468416427601947755493907513517277887944175728082329759481940409458978930337442434002285294386485998705812794718208960327587324042971339363875959662659300709682439027060601299393589135438507658117464984696174509075820788337846108628221087145629931597157113375857836321780449263043919855168414754161898123077539523400810861319209846505629043106960884317240459045607935111865398169036570960493762854560653472461866056564932880208043889579212439579049235172363049277172148458616083645009312967069371104913625305036309490522727222858440044790255116556414519265576398667122235844127039400341067557250085821666600802869801338911376283670402283318967160395206335267737328337659171126537336615119754453463471935955720769872381003789608507413943154924418185119476216598137815857610033787866196115005266841528420771847661188627022935952192854281769717186441530402207061928932590652712353897776822834355738990370923241370794310600518230246422965835634851156268049615591620249253419334952849628242242838273820362288710822523889953368664824143651897432564034799396968770512447638875344597806860325130317726443543239928936011501078543452295572020409199512768372180695091924484217022897054412326889772986006918681525800888303713871846981425549970897191598827076124110066625283102522867155390385313289736224007949308047570221518238285935053771718380765230936084287259014698166471435867695074319770617423960061598896807076214626539588014708197218960297321246167173233931367781664869589348701999670067369868729403724072876290850767778137545783082837989826513635205706010483913407986404350840042948270338240544241767411738306399853060480154364142898115532516484331706853068449868571325393913456669929997415024420805167555436522991669758950016513506877384170934522359676759224513314049956440554734474807901662888040549510907175746925585042273985062381479071159038860175451927156697905031665232370105635195590263328493098222508658015234615127089786250601778271637089643905400230998347958746844124368456989454141547440545756860437698747214354109749143654429607915921915566293806566569852375700131581433059484018115447033032249035776531733460672647403185455077982941128846897835459860373269298839080923464184107539124184680438055219064052667965919356498836139855947663338086932708923101365038493752291448253415067273312942019086001734755935936077920220025898415103139377063455498267697185557893632998932562451795846543332491105247263243654262783307067807860834049544333926425644459868915436314197201705189048301211302324721263289653817577654910190901344143199300788419309979620465583459260283405748262557618332234744203116702571974892045873645739677747208863242255333134896138674712877270118681747852362930118399848471998349196065651465468166140121266811256792461127352315540363977954976440270343136299659734519894265894272141448323894159602058810683228567930742016034729646072976194455786651713407715879091722377891485243789788101634030265726930286020153655397008164765878112704540338087065441522138779309830405714350134049200682195123081404761110463319158412761604146015483189633462693782919496360220656393587470044972947648386793728303652861702332464238386264705311243098885261689875312610389769594781521016727942313010174914394299252321726254504645361719666528187885858442148672452660152283105885049969411895458318587434113337168595173838696768995321390670556838259846734652508848236524449187910138626166776493271064918806114790575371706461129371711192466282474225319923646923135105015022023676397798689416602039515533048890141507506550144437413954345353029084569424150992758141171252303684007545711228280671663073702916054265456376121917205506359744811707762772453893828305457241075050395621120312283257778995816334952636250806341895893163867936097847656922586520841298378406620829488033608447942835806517363903897214215743470573961581265618265412029239306389892646655664944858200398555785090687050464981686972205384437596771129133376891850543959246293952235614460118580450191333502289972265844767764232425666677221019495355167056570094660806848265477895622654883110227383314479279698815025061172947081742338397386358605693258410588876504487507167899207725050356015502024636950988252841746657206089380922129761709428699566242714241393084408392994355298937788695649954779746848328320559926116685990700884023088686969338630130305807383116272562854001761072193030093505604724802085561145837398832735301139356825491046742780329871121329801107839860771653880679539955999508053708732621605329649509015734397904278827439244083416450003493959184094100179858581192124388265725577932100369529691087738036050422832761507164132906712774210365599575561959944225256797707718822554259899482210756985512201673699964657565471265474228636784853306852980659524464739086380720153967092673106021859844446779557357245373293458006536269681407144327762101824287534435217730097038936215302113431918923477368132282540848029086786427692112264493728265217165842655323263464843768209728531995178782651356699682956765104803713268903235070826498651384592928495273026388388074126875382143334293016857083025578345452801066608052136029056158493387054867132239808467659416125408721252621352045182290002976019362475665131484418253197718718986972561233260478079805926373361550399838302325423726293641586293963168817944958268056870792081893527515730599394046187230629977992332434307431675081222476792307669049317293384555958962069682883837297412979925215380217015031404054441398145264250235740221725915001268686702962804584809331045603073089894641428716416878271316723559289927983686211244802632315244680115226937032134749669527251401042803118821187705209613066778273513282868562199693921005183328116881746946933906751248501506342431935096066545876634527985487819147273435598791426199824741573618721578827902309769881761653221196540903689263453444279072534200535039206946887837342162687891816547426993871312613030828312856247066292255656416544980501734128398234046748820403318986677998249447937615616282063453343265205373708117783983888581262580143643971889057584697051737876830982981091162956495122218262268000017822739760006338928002872210594100723571200919665936600955702354795820670607759495140902338553963354755459449837313808026364532103432460117367202031745632445501175510147482343249743687088333978184555160394832388776272858184815902968089253746165807904607346772134078761442793827332216033026283881354760782582535852255030438395893249189503952580009487922077993383540282186706858593610578704760046593726292159036537136730690070631575865895356182898083313586036967498258873778752063490772460257660122093906318365709158418966066166736570170080580182345161287672234044911818518848603482295435960139166685454070500893271276331316594051831948610915642858861325197876492663192661193034598324235853997820393658148243227437334668264579070537576330420320710481720499766479763481332480896966822943225321447110666446933644056965482298584564463691366639383063796058142349717638168110532486692975334707340398122308367199055439123304482843473722830323622261420722434730464604986287153104488618185943636429499565982139612052902029556379668617073423734707459816349222648147362801049765062487985906060372898503691933994293502109056568475859943698909581369662655946009085372710145208278334914461517148909731624458662394581184609593290279100494719148623085012483481346970990075442374726951572682546260459199213036524579184953439704054448203275605823516906571707999637944295796101220752617405125897355700987396329325384572999765484755311952019128296589645772054882258658847374680554317233842190606890984716749959967609966371591187127292788510912402836486681506858993462821164996392386392247971911917507580269701281320227137863628882955226782739128492744416973969995474641347087511868983949588111175697955830470708369406159549790823438048265914608918153115493965649121283523341902112873873403280096659266880399365447421006672158204251217075802396913574931032296114980363334732326109584670642334706275094262672785904005074867392316986444814087803293319146949172705008962188452911482942794785333489279784018858849753188260254570797554418418284443932109857235128666711113226342771977140991295796462355965999652668954314527773649139871572780361644015364104053555065232690323979750891180243474724069171013901299693473952839114910478808096292724650722524883317284047472645631249584834589113071301371692150192581855805527529448872479211225355943300180613808335427405423235018326823777242215552019904741366301578654345668626451401024587092402054885468202092724241354045706657143579248918333423482248166528426198427881054172560176788755994350498265105293049175060703679612251696670689786733113358439161296502526516912029982735956329800978494919432778761543376998879247114631087963533623357246970707120733542686110874227883789313622023145479949825789523049478510400931228385607897822201816272551646402622951912494110871716491540124534419136752006020520707572060878995968769097348368798186056121072189064151217854227292314613167469900898522867198583391391602977332413415959535524953469277459615805150859180820163365186712765420686216280601148644538169263838338328539432023164151834949297443759074922153797492326809001536115620502061635150909498442432138754583530053580918502857571135955032400737631386849218627815966884160258880864777484562174265717512226063447042902980563048538409525126609758957188301287593291998058819910302230504652431341151248531288082830640417997792569223503870013123420237209357014227447447402845407658558361755307238512900551828819476390368393998419722172217582584118006999827487473786491300470723149071518549709688135723894066136353047582615195213755970068032698381015398389190044029562443926631666993226485097661812284630289104719410304166676173284150725268415960009733025140709450492206834119838598365604545858177052164623613672570752812898990450342193563306118098719600145795325637466713880306773041620275834685389752561956442978450393392537354864083961238582013753941915142071235523221570160809166073803408748027299943495274498912633173550248271316960602600031748779325656591587617136956736234663164327396725111019149658999540999096690082117300342536200015612452107841578845114625607508678826571037664187101161090771208168179132591128621306781338728772392006443600506942337136689881933459117361648344766426135060250862757525893886840974183141405966956412853370530287934015615176750239226905431397308832117327294310795873707007249506261068194703550715503582158011494211940672636496494728931903239284202423481739878545661529004040466219600723803997887257176343774352338945033854988134901996015439253580081307804826647186639800729303339671438003857639264953553965939737746056552082567526180911005533475118841874629078983135297025295485536231343033871413705485478091304949988505407129712200401097568320416590418841237973368426762507392804016608672640408307684182460483760261920045368897125421316608802248379798699284140626367718251756857368395000416093021692293063498614491169376577930961964679542653232058819532101803831547647758800501962952464301377040077774620776005422378266953042121229166278970452963518021644253145580425459720000854570306308944087004244242040630669968437981469854137022217751930192145295756245835362619115107939390614150705906299589646093261946695838636084499994527038632399336581810585648754549924669937383774344594606467168192588291184737262687348194696665291130016863534738925400848842729537905385527491059660534879809605203296850779031745800636440594672576973681581702173004379289732076471123141590949510673859238662623850212842418851510932696787703487452270390576389813025821902605167737701212261857492467809043416036220670202423218450023531270241926537687453135050989665480707706220220013127251172981957575825274410924731360295429693189972186899584955607321913724428166351579797994905144259035214241005391826446692564552329659829270066447663645448465761905963585207027588897342847780486861117581823299822812273499859563478574301398494740080042992579555398775442439051699151194964455367961561146193543361296418884847405148212004776224652409553903759375618492953172177742089421565783247591866748900468537890315173833505852698790788871486939886101859380900668168378993301441271318666286390408950953496950234441921064488436913306282071858047694299908617105135533805970602151643966525950575241686853985568103543006304776311877361520505062213671916744482367889016947288360101939325539402867865098569691585734840306077039873717896545102041293069780423162813672291898440853720298329581880211673071788818837974608779645201232745589073511447034062150530303182455881545169450408457772183427720035984774721561317470405012724885188909844369764936858947235927430462876101639148682212382416620372207746370970651091301007894371958920208386731347766767366997687621751356380805669584477155877989251166046290652633242122840460176899704017341472752052567973196682049584371259132965472645578908388552857056405586814235727797835739012144205734433741510990258691971299233322933869632999990698172143331596308434682187473763624115616239382846239885681762704611464065727230156311223059313622673139697719952115373560233712977574418966350049396412053730622402055338681940479132441616030796396774855128638489881307694543893599045070058020370885823675605696229452281720586664731813480076711304533945392307005913479682567281983995174672325752529816572748256934795307776472071697987123538268535771573349961460907658428338326926942530940471619401825853966395289900176642700868076920693483246623178304310033039147337759299682957417939826075766357147254360784739317115647390734266048385121199058362860366413881633399248908618406720181740781447232395471024342643056979641997627112943573502026927088518149312364659832542763967326960818582150178751695627765538936340109304225845037096859258387791200653742676891152592075530295396980582141894722629874626551995189544727473482404799012222659802449066122834169713069820256937271606032211468997891662407812990116964797661599798317499197750567105278605736407266334356823675684008454888149305576798205946171354291810516104972444936148443823440852861149172975365037843317925788711013807096669491331017216354568532153252384036108676367572452616833132454911606357254891107731390457354209564410938543141321441531259849630573634391816794580506434230574435820221348957705413596689196677675066872781822850726702358408156102247181315517451123926748906378867031741180625050433773766081078965923321310608907988357916167759729715825456983203871383009266028568937930246852665950880943444510395275321981851350087937546683006161731830489115110539438880049513385063618976733296493097978384503488489982472286734098392004210486596489396257737535269063255127900559662542499434146605250011508081869643312907316427440019084278906887154761568047438663412791275352607517625089568548311580059052183395768353369624661802305177188944804965619459528174320675839637091046636973889265721439973880481624958947755990627963192321606790540295407540223295186451281672242731535588527757859578923576976665871830935230604008224548106089341096543934667405195416292950480001976857992099575480748978746703124366744058021328769448315038143702962228770776072824326377711011702458393312812577950642546874003596412307984330783626674994842458116149267512826657831591194133497889079701538349651755755383547145597653606015057406415036993713444134565634668784828397275574791747825093622694476114537025536620725328388706579380216306387420215271415548993913573225906166209650963831435779971184263487242169729821080787840820688155147766096471996970498565817255287615746699667618426771330213685737303342822949878704504473809949035337539264340938797977097593535723634641030617933129856897180172708751823754962567274382037821655452499381935893337221267551003389338369721602874223097014937589197728315313932354912404231798811652728244387809294301004768959727163146424998790621054883748224452273445687045071512769580378757229985650370474542599464390682392497505324080743250098194301525234431415240855048100424090498185521509569040926661654487306993610980634633581125797330755609970288972944192296439614677017094975195916293281979812111347950264643389735110294066228849061642997417483727678231841007998350753240294877359240698520578035198299481247661205654787135332709501399296746015668288547663320141413616293874978115904398355650785287768200294080773951520245955147722194738388929676344489899851872207207923703691066871467493350671736343466160351375465580826611696080613975945939613740505908176701948974431357201061940933031838055645100125069808849579319055181098808741674112217677765594796504418596670352838432144444633930706416071918300969207889270880558498363179816631992036535866784539252022610474046045273860166367046929124411663815175244971708561966641505311214636096606442870856893861254699128266166604191653942321603971866051581804645837913337881685435928204879883810032007288901736326996495346411620170681726161626821120141923150535789707074245792349378475294538832162487303344143509606783496335309088241120655721613730533756093240822342922128736942480025085106360094553110029302647441848074844541156447001019459752182202139234087672551404295328462006494265797656884838957142307935607532536459416856228804255919169799375160592136706237996950648730612625098935906748385269877806740726653440684829259623221176415907864409590275385333259704430313091337775824165239198229749957779800980556702570978183672074808869239501209548599460217767806882569072789750719192803151830646485307923634362332122550345366328589744572455062779307367718206764453553790874410670674111400547540127656165411076363317671642676580367502721579197442944369397972519170105159947257818513111926814510323541274037187983180658893059513614444554841109193330442551701273607228608535119985907851018649214194132338085555245763314280516082956770916289073087888168619617223882828593124372503733712484205146543972317526276158360890226475601913478396175624679828631040753256733843553291138358726005820202584921206111135609932402301095624906433804616658007560956384496558429325770168567834747353925862855839536054850076471413973950208059064734924996336219374795016290737881435186904083805790758792300026116730719217461034243605032966729045086142045564866384162361102009547890714644117473813358797014255198849258209724308277274902715898166444283483609689732507053141146299000111900926968404568210779091510691544954561703705425080495648073307149798242293771301918961686146667169091010391873316595313590180004970283391287826565125033947796432041672249946187899472234856542120096091909590243939448865848942049291919245999898525427714065389728375632859362917406200203472153815707129483697911185573320132473913887678430201772800087107563305778970366071664774436168197207312194555745173068854714764715179273605072721422055654798936410128341335638385104490269067145531493841113557010729839844816365053518497553878390588162011923810873885486624194326952590896567271689999051044995979323340797768244374192636191268376810276168782806864256201764686372530425785592824752284561734465851920424395650672939457325456676462090047032030665055684800693171081149615918257480709230973522600133807583259617296836213099131009364511314553073724478100085990897829306327070730014677902844565887149191786399228826940325583028575665599111174805956397488627465184574615722765815929741392756220221032391420619058511099576657922443901735673556086885591518937425340557363074137537153291776214564474907532925749124602405612696503145423761777674773386474977673005408035629469128291328738269333687939329295107630505522643418954628705011632171637161179015664806779511463909212456346883887630774735338729033287143306522422004061030818973331803984142097319048707630496375214536618452238085119615868347446260086383755192914170815989523412415601473678771365588524382330159130577512340779153818681989459096982347270901913932579197984797143095675257457985674639567507674533364085963852046142774380372290165605821294431008452890432463248381815949086778517835925446867508816188202465603606667309610289836553766401914481952744362159942997352743787816879341067419183544757401019168254685787586608309911488160016496876056909699335675929786066996798858066904732831337190237303539716354735479895970637496748468547939300615875414586319653285429727212290307069906062981441218419174713569535875141054542038044354876263943993882189801743658617705969349038992664548127692611461245381669259655448417851379252919405389892834686309525230018001922238797712738949558556807410945397600694966004552330184519685980034741878206169575266660221029215121724174029057240690630998335392782232047390354958135175314451135431140524371467823433716241396016051635224194150575734733438771576504272387505503230607132928858352864394848010752909600706690963159955545453202926382330259653264111028806864958398376457156682020711676226583008632603445430903946637354206794753104717523421455382407383319656721904356194976295633329766160939349792217011170583712920742881461930693902131430365559170447397800205233535533925401211839334503589675370885734872495101069343741415585498692380733667747390274753281470936673570821993829748725232771794411895145905619340721678028535728666471889177116573709037784105900943266791749694468202557136850217148958664969230043157030234566729972858016626711441216298056074267874352958847253317379055049573554509714327171634338221975357052265898077026281915758565681829054343543547070252206353574191671259251574419479925413298736451813151677715507425008712467982140058971223042291801259250133320013744305336953136710420289606976514492916341666579171071898454294397113880433409638315949998253566745778005055178581231106215817594050225409874289405250109183197205931799487256431679478846168440746745004795970789385217670398796846657567979264649613196724497621894247959776353508013306217189421258106622682077317020692933363189241441627361188065811911070723738255371070382453595471539441288153815608422239114950805723686432886125838501624055180785937081332582701401132483872008840866271943387966090695779465554652847099583217955933731641228346927742734528607414333661774741113584412975016674485474591171754117258010274565105661534890951515460490116214305106816785666539331667269211576403969839611003638639439822371806908066285819763498050131247250473035310992196347733742585257319169666668771022079319935296457208542572452879397136686406820498942402273303827684505175570961654484934256465669914402691158242901107503287595603912350110950648426020545655329794189047776767258578736505603389705607735827768982005459280414083072474164340211637051626440250088808967215074559215778468619109560494739880917867264043436015950218012691336405292763456240037941220153319834905876563372597319626197691741543533603832705546565547643702405706083584860694519484379873318662322196535102890260733585781456036147384658645106405358919107665681773891289195798477827520219213720627419624499508384769699928862199914308338901688689316235413201957678870618286228123848451528084234082460306979369863899252100823837616447269137312649232524928377768749684440867004601523451949630738060221647323609573107624074774790203948772283116316540840417169105502073837561645535538297678480928836803245278808729932924929334062036334721016738214575536791952227297572133833401734058737908074099846589278254723708705916240733595460837549060123533483209269806395619940088393090886112639797634473675823152838855099018175147568493831030124939877630405160252919859964607327168386151583533714568205973628536811092639838869335848009147613173397922568237449831371323117472539185207004920572167512304712838248819744761855249092115233128911229131324016621397994070473297460181729186748694145992433271333286778346861763482172645468971236420819394781011786188713515964079066748243434136432022344152177627461221419612595576657384987702394720227609427251157056234689369274139876553134490994342961205889744429532617970327677585902937145584372504663919511502939060400444734542910541688730014186049651438587513974548704985937548592850155722319622637248830892017833027064671713436883521210091119874664861665186896970994106971729116911820058497152642214522293141267490171590409995468008842590027919257859622248623209004054216696242307851177139759644297466670477141309347666184401306198977377833077467733055960019598828735093617819334150748485556558701655647268335702487125370143307692245738121988340213469277319295580665578991767297055520274060209800275302037695005471706039534452260598804745097161970191565499313081111117933012191641922715559349134184209488901517535206745391625227307959438972014154773046900125131455433495280441607316361277630549632679654222730416441286537983203373849626643683505448979971908417651711301129012363216569674831144240236636174819839001939478691560443172387604841225817988123664787502072938829312928062871845973604059257947880041139290750527883755581295193692319450463716654289377551388162332259067509364508346904731740544116002139994384088680294243691342308289701306216646139336245838827258196649105889411504487669281720143282157724734288477017744998556624468329689055533132978648517147580006595021409945312592612942667130029659275576324666440755884279965715689680108882216840186492690601092146892317875381947458651093770309373934540117815344952069664341293192599010383676577988670802606930320795955913122851408730957450053318229664073747140493114024744246309389432591933360854712408910388754534333238949502321851921692424990144385439602050416744300988006218642305011550310013396719763454698743940575628298805127308119851292045161248826854452500619350140068554929254730672520589776953695014593780167344435577305207893566925971299900419602968754405539692708814916979351588342547166253851949255586399392142525389372115719241749138603868907351467432560431967936155390784573036497271258411373193719024004259925552182105622587681467164837861870334718165816359250281936036088358546484324865434909452882004390866530322999330132283475059246851934448632780074942002671291547481445806624919573957096385774396004910833265480069648598825365194451966986681215679354665688586106032575942423545689448497366812902683814785135260520774104473328665382119221834104189052854867570370600630296479666649471912811876669894196374674713750331648345086671638037477958246038327285017424929517906375383698195325558967951446476296922299065583522580126969566693144526222326950290797674846909095762315878108588849586822023334884144716953007238232305761580909535523190851146027232342558435906469722946903159543739997343581651199375457182683777386382846020496282872858331910475736085777145699401038458911498530253495514387580318467038731167808478402644118405151653928211046114647517707449102567554014669188680958183139658509680317073001784631811189562968762608435782197982861976455815055050004617822857723596215840582909020800488682053043663460300669501764875327127262641410695998275816926889461955014365631048914445509029439674086196064274689320891915853615378394215943372418197876472503554787699178247328391527813582296029824949987376172444063566149516213544566464402860768616451314048265691717881604771970037545531865685783507912787736101973394407955084571761838957678836414229867542511098284811542086229274825778156844442575474079386157685592571136101827036498028262341369076652826957180640849328584082217271898767641960813288968765096256059126703035076708251591574704379601793494605469436138912331395374833870835535080597872493995338077576600756116192535901333186373057258667107863392477217931322211317093344064713743119039395028258771400576081145781198643269094956785290024969230418575004906365822822791724178436331763667878755132799678177122451147133132776704764386414771770519515860034781830834115826556174396237350777695862315799083188887549705707127954511533128231822160401489165403557661536535248277472559047568912092178744077647546359989352551685844300321418157393583487978177607287699757076628289209233395507050975874825678044721848085802786293585985562179728561240905581539612814353621073611288218098758557426605012758992840496937741038422356942348373030258745987494108765727441825744174014811665062262153017236273204263998939157713246960968678410070177030799357408888228161849101787626569867267146398704735180065903700890228455757741292158543305414117756245511882132597966618712909832569406817112699191034106856110139946749168616546965776788005508865954299185730817934949262663699899647785130859557375479957395412489123187490118407271073904284278464515957516981269446280837599728323459476679783606050879899601251033778776673313775748533014138461495640961291271506923696925716285496286552684817574613994870659490426702835679384117656457436165729468993423011096134915207501208474187937823869220166493758231370429340884943974066881016525077260958277925964082140525359566594639234975990446227931108315559486353996459506672118841538059076023151377216447991130456009677870056913490382955254604738366619535785257059235894191388241391858343795752216747537717031226351320402139697667392581013366945789039401623790892084243399963774335048426063568487456481769508123389677465784052929975920813598253962987113463094725432247696142946866565351826046571982196503039437632043591985430387345902181172762514936223347367516582361719472862661138267473124485317989380656674108155128154429502703377625113592912879285093217714667041686167339004830502832552471135871251062177291140302165490758819723011340177821846007381543626702970690526864451011512145569697240558866584415842425611583935998604158654192529536579766601369714661474784248582712360935261192366424373713609908906901072199627207297848833158822791921984057995406992430462431200286277633118866104050851218655932080925089257511883935564587756034605480027619398877634806453399131194487821141245985503409645031125380303212391285226383878713553743821889711580582320477432215962685015845828433734681337760788665206966546891936998997537114531961181677307687719726705583747831723683077308281403753441793084590160793111382407018857963120754157094327967956263177437794598183804003788851204877759864962130616938929111313414704246246886647818881451583231652932352550869980820952870657648360376445534497109868124115846346193394492908454719755767721604514580713431953716485744924602046030852199415000040438496880941123399805669336918369905863127550884645886866501387382837331551493291608171813800198092353801251424978536182634827640412628309454998307438379035138631838075610091155978594765207409256075792547765975968058998292443532342794190591679567722798968297176095605864849816377444345015930984038523195183229085737161113063352757705540305013243293813449467359428815304000996173214171494508407781633038341531895524881811569142233099328341895098647322374527801063466812974487742307903098350372297057349862880791396582106617424561139901601779350511884852773179623853744819311912600953923527742008403451707404336317871527748049484200019913210356374456383352416495038129847043177185025392764850253559235666789669356375463461945409699006705215508921588366297924109370868361801498160116831213647118155451378401725078304379849222274846453568114644299712931813588542754177291511200538890810309338796122623710298098389645550325761070579262664209706381631818318095795745771083390242828036083891091039211350345523603388082464485954720043880005439884525708932113132167278376677870831772996210939109324461361676511643763028118098599346009955493473384466626067382709960570133790216751562393089933715295619503616514929707142136842856538002989677719643244516910321559728382499341279080997169079103754239507999900777168324575427067097070021242229863759389130435755808900020646403764754912270015143780214143884141789737154681938017026187494350105034487646576842769050017611478881446702506113629323802700319939428130884874181546879456832879642440923692475239158483523576612308134383664364005257673080995924144799994752203602345032625520768526501503760020656745013974026541192376143661547093635967016837515661549732275649762305608473082431241356161533052391808162947656809777159208513463613121936393470990435546871415690951032275373509809779905904190573169999605811241874311735549346324076753909495238682436173319435354638169670886944414488656009471035049709883156791861506132584310275078081839833251489071538283435329885375601907695617900438297323372312721979165556266627633062080812473402399003992209857889883364216593041560436546383386812596871006722279813784645233015891440228838213951256856620473696555909450603405511823794104693441311195044164679477810901436504204076763204776445008915080218973184779907972827376480266579362467531166997963501833983528693464843261285568869161460626371396393667517060108886199181910065571858578432475995556663787021371934990497801996300410102235654005324233072659429059125966886167374051672623289236692751501573676361131169426947522848716475954581201863271893179039761646824652870692242214098135070501369347723464757381527559797137641763534491472893205782534184450396432628146914980755611322953755718022450359459546191757029235938293115879249154713741294006150123067893252469614643369231102529829623782597550798730031543323547462457841996165406748318531842337203883185680789141124273974199328451921107602559903086189182013982427500786493657727929639147205061934654302221779944858547313378817771686260561336891604916007891298066928422027526578095195843348165672729830353481036186504781507654112230530388040919033518383266729071511962867310500280871322681412706566762554729040829817411685441181684161041649336116232195908028724841957049739363523653319381810861938031145628664186095432699952679261071750292676692917454036321665121961539727455179156545662516800125193683679448170261150645863133424224206780956452044298684035647793571557522296017366564082512391572892354218989323290969444864299737060039796214179477985655671884031482230839194965152314644370150552162236905339930829579140832335174819608591359109236504631906389485084493756408738062485341069283393965736033325111910943472057394292802144243077625747845179940706930327301641427258969762534129213823029927186657215654172417589620553311121449208557640073018229175503510874009275039722701631191406790424853813089290466348961456438160030606329302249009942189755828011867034636215862247027031888716445976767669671109685224031007993291110826880220967495084594498999656272337573364909751769556381050541346285242805491845580940762732620453192709014223943680920554669079674556296411777079398069868868828417057785842350827628078435936056959369442898961688815927882848670509159440111762449359109155280888525689343849706904576240346552523972922561508048007892938170190298527342694349341224318432131874270943231823024478627834581923132943004322194084588090877448599679134500573871748412454656886433055646873864055383791826233977288928124696649135639364297617381435134736965035863302287372236729450606287359763395595689887816057940454372736882546578729949689962787258797329319596664069946071685059163552898491508142546472211127586854282334796575147522706994294450080807034130573546623944855141560511899417586622945280476169474305403266880758256401009725331453572856294873178522416878999273879312053557050330280729602837209776158219027591572558441509048585082293540883473829943614388039312858929400645700954518747642580390761779590613517333904240348105902425301600739863846264571397182463299093643514729444258989524289780362921575081566743893302610725362179231889697201154817861020458032732733683980296195337746736442740103047055907252381297542491964891458810978120535395744195466943053257332756696403709353518675096268309139916019823469723942714939234012830353592088771151839683518411638646630786833278801238048032630326808407226882840157128319948508330463738326606058510197762321353624651187127359136753195923594307328370016083172375204492793927231482564314697385537045631853219484938339667706512651118780524087495039361183056983387454536994565302152599851383041252756591167854427387523394877099292768362618769459186375878981344638779760578474390860271912470152412929522697981783611870950610502174573510826581390066475001403610681482403421449674744453541598114932393601150666676270250751734953260274238298127310471700466178891829134472511946432521998551803387624695346756275677906773066573435018856589455369322258712830805665113795103709244473180214136670309554496432190461976380201537892614588503061852028593363309074993783310142199414220348793931118297778977881230246826546735762454356397896342890740395822838581287793259241919039703803279506389814567842190649171455139310162626063707775689393462000314260981191744717232042591610000414135592562227952586572744275491571622868304274124905283389504238124482429031141836832042482005337018418762683559292453955587160801896998819123729690259716823478377978783621851175543323358340511960607944658234202619662815595651714037340212026434489243399384759521792006176225378447008370413984218825184677641434292442083105363262377990535410572894273836277576843968074110621889283198230576180272758135487958618879528732250930247522284483259584675369989091968976765450266097538910928716700222891448562396068623182875770550113621371441990448992751115987651610049137534624238305891437500981725310355452027006018094132597374128249067590776494084451757025134404997251462445702488490924792677539455622830439725741963322466131442442610708860322769311652295563782793218089710819212179939417612250574941412845712576637446697307141276906981634227903943948800503056577212398856979025121675999386821454564434679773404342377769920776146945900679627184346807020436604883058156475747676909821974428826397374465954190498569078566778895052364247146716487006609399680632756010460285692257442007425079017724333151766075511826463137125068494284621981159328068137738309555948907400588013632361135433113379803332218265784135100073588280412463990328404398280580527805071936436124841279057476215565391409933550649233371102253863241834589116109596308942982580430274852991016031812718114873859998486139873991299025501207897225189736349428310757093289646347979733452235237048446765013220317340396000004566736973879871769279457248846644235905474944864198037807172004208430560854660605753178580827891793211844377385704650714691771073846997360660731040840203097728391983367740342774599772859532487349235690407419156972283300786739073436054537464042888263110270573443886947571430740486760534812644202420427892145401742089976725202662767410382975264019696806903568263169315142885114716411627387907672131646293338950593973167589232838188023664029820350285431618319480675006914646468373955403140020890958455660020126390979834793138434434325991487718178111345996012498618104857588646241096627046312072107997590861207594100036350553210531721211635641569472131598642315575316308102385800284326060006775445758530222190218563693749104810842720217548487321368856740593131816182870597872364805060911945219307148212102832127068764903701930082510781390129491871691385761642001280013637593004811310653682757681293566962651068741231326672057827976645999665837846155998860468334982051142883213351003953957232589231527172418238212083006845546248060674332467607752233630259440982082446109426363376609964419143434295831632620244046286796893233323434608481733716809130119875872099816920518794395057590983837630660400025676117661644786931201033578166275212308101285867281729079074583056221990325576438512729979336802268723236363298013353523992832052081429809490706512127348185501373326122434261157345603687817515963494129535879936003295756636161573322267054276841459012477260369917601279670405283251810077784587836857113843708314639835520897544845791185782648946111200629441734844153416777600517858690395274110454360415911807361537218925749995969458495731394240090887855351389551309906819471912589221942114603456632657977452397782734395808264120929046565071044982846033138898199135799323154546739682579099088284496294383096475961777916476232211826603653085989145189108340757655996247595683809665836345187442772587325620403630444236191316633083586909273357077636417326060185668256452903481754475278903793538670356661517126202921109193706733935311107605455012346328704732832707055581318133944097126839758954035699161689313911677120979293334690834677753844816768514945767564413082883957513992476049190210000339564250896026523405525962253801792404746485613152171760532113041878244214183093306398459678118785736147998024748569051650922230605323367989488445740122756576516224704178502280695770976084121675128300326371389478820073227897527422120150308242281738366823405412019057613376674410299580671302558427106732443684879621547934693169023844096361976751383877580333137080640986026497949968183018543080941016524683697650651221689572264437560904992037109055743044073676018391646016139692844951127959540295036827755433924581462026960145186080973571011728520207370114241760664696661031773808562039034831456320616698670275842209322787628732060407608685968217392957955066214029750213988074599072064503259840131522857249005367293710012229610601197244967917027418979022107160920347390279446945865766403000313114675809042662349182096444432270920635387009186702284195316878560978748725037989208522633636395161686088178867728109297369328434243439907975170656613112069463978791307009770365301081095854842527522613215568026418344834780534017551933422316863565017666975661791896827203411697610493925372512207897909607218467995078573130419174893411634100943884875723543317310324026250065852196730742546232955474647101514750671763320663756031034963171676168678460938207312776402511952692019565877723469762687946094340844930785570240969329724769802931713731721083135248288060348339058880610798774659527863435272404220852853421112326219220471236412208357076528232005826641437800601335593736101356834910826673850187935553814757372094748472274120675507932040693531543477912436439190412674516493739799297000082617320473170509162676612221278367748202306295579131195963447133149155633514572348313774299793464074000706471869860613153251223799302580841278485026328830170093158245784338504247474470932441660939146193383183438269782964978156053192565173519266293046696359788938290101237542114054923336918515453905311574621726156020832941120438684295795321996679232926948248089091728884635005587843514218680394656773666584513936563210634717036860409039047812979434246855034039284699010181755880605526531915038860609039317558932437464514064004847785140150221736572887342901710028747316000606832804929577453133225144729397649149978137464844940036529903836949783504161898636854415724431108448493901319848820572318191310680695395484451394824103001831831262280382641406018240020444473686127736602437444172822041537185614857732933468351443899138428415809854472752454956218642682813039641702346334872116359827586422525362601019308848698327323457877746964066757017989404035671027275114951084929208235145246777877237422763617778994096364050998390355658173827089149602571833820866352419401596415485355538940318510065057321931162693100120182238177997911624051173704622276744134982810591286995834070646965420419312780428412538337621641001713613251514284119435730873113829067233512523887734463794360184433311972361170107600115087698786981363912998980846325618104401712430362124015586937033907504059266017627382749258317699443978976699721222773680147108560135993122541155353475659271034396486455298331991646003599202440114768590001943394256759585366376507326412504278065869667275759367765600104292156668421665161056283432059405862853413226969994644016096762993384786302835278500652032626555279834577458720626359292263896165097870468753596869973391679996681749559423122117660462275719805781986250996819927576095914977366246085728497421927668716870302624951696525642598828974577135824502999255916005768109796131734478571518250752221326438820046977912769835046549613709817781028325497007254331081270186158614175348713138463430410349431710125720193717049355422981389060717295996397662297916902890903125912934183664284925783249682670642996838729597414106953538343225820226464658385985589265489116421466905040393523699696526037569637307401825326938336998163112521719457459613716553688505690988488958840568238921643396754887866884613910536004730703168437484049652548330142733212269874737667516421140998520919177331829152572441537880633093168753813003882507039159073265769978304331836255070858394721128798812750992907784320364149434626976182990342376337842903761862325599882633075550355257894269110343469846344263623696250979873898224438578853347773993086826623201559755724292380844232610213862263631710319796066252331089895356209928240903206766843886508612875681827315384723692840546680829075853862969560219644213620900360097224874759066914863780855050946994929082886675968192402720292170263422302388381334369510126864603716179799806551265574793820397641784178405068119177984000822676276600591895238281442780861989331020711436540486885646974656611176772469203844137938528766920953588606670476805889205671533313373493221596299291869549058747779202124443225973405112080633352674269361283543110839572278751730732681302709960251806247961238419154307230776734315228972400450064045471548847854237283351234098517513374479749801201203586267767587313565883983377904526927425202449218693065789922243094850875384188652450987173049745905879044491918822606730384594205224606912826731505396191217198262698257837882124681380588780233169574956171617703898362047436058133729632033951926060371263232332053424749791805008979626458533499546176486323330181692289510205315713332636695589428279380725342279119286855610947736146270542860659926980481973485753320961147743063832585946733783017086779150365703648387082859536301832870026295441590486458462953346758597578634631291546308070098675192419959800199205316945812208468254232372682113224588232954030228174260140147292705537421107634272411241382866738678250885925245740221965334308696472463129468240701529270361241210962199351506009118765622846625622103983475831483591876150468797999983038348755944199381299587209026652943912259502943056384406689864484022099562536770536241356600031483418363286192972194624688073918173554603699802058686888982206998833739355736329244240573315883927136915144221436812940227263861323359032351918134464433359542375305103254225235850422221480610193366422136577887873683122449814411820298620943657096151609148812222027232124544980084737155594286683451918724234787226941412089942226553477082672411747307182728212337087862726454550863437482897873102497354528387219060459169321994783378947474086535499100428219309188532551496850560256537085362889520091252779873339187262887717271941121493367992423138480976721428285348883543401838823605609816299111745431487525218211716905111309586183505856498592725547048656854574936764486788703979714976385822377672757831688918293392306422098390310445341612100316224646749105498638171783653349324001747132729111353853651540728353279665812795975359802450854715319651710086351286367949979379717476275926048329380511926269002355797284126243958455779642412616966419900956946135888539249788761956678817862809366164464358891654022593815738363812489367481866089842737886023822401294677610008382988314231652247756041516907411712021227021206372615795566498150157653795298536642528289351240967988727448094291567170073799843231641701036521227633197217715011403952220384955048503103446344425377800097443230009139546230298557400447423470565140203779481921674506428045610228600746247883431382395502100026822722606875380299271370605251212852608711684538417620366222597479063242550853230734310549764796813127728995551014621649979712155892399440552382019981179972527918804945597494718600076905442993007540987960301451704041610965467808324508196538977720678013761972071773204102328861920392202228931671815094366296884134131434976805860858565492214311128035432345282494002901728712476182152970385122679316145855224344794741155265234178536548139535205960657260646915305862495437856102672183065917271028756718503452826113182852167459648977241609968052899001597236247972823541193507079860745934435419887859627951673349590463035146699920517241320645503479975061810891227758125357170215563978785250814244445776548532151020908758786582903707215408299846600252326771949005383016857430603546813709754204787761230127265631449782709444642407013381194482980264741245637619661159408725096295541568569061770070707287669201421039658728007675123483229583984010172584184283146361621918795508918375336062151506274264097301269758143769958930464577893599418475695051266963856300220686915281376220046943001204993479689125678547611884485884164145823404193120056745598400744591786377268222689353172436933608648188374453321944026423847729429763293690107884025470232854249942313233649274940946408823716536255742592635308152569058514091466455246801018048938552925194522959154595195558669126649960455565264314603441925455096102431392375528186077346600444912487443402212461418738618510999775964279195910362666598408300512832343095351902206060341087845108529526187831330356039470638883378437910445591260905685007476581794985826912608783954295941324060333510302562920638203167159391567201566327060080537865550903998158647649873757994416001819701117103821325915821004898338959379230056353649149519017120982136343211506465213570806785737178328327626008794701116206757847541063560461085651444659614534038346017091640135745274123540927987906395434866207339244363109256770316775038203847800609783617063687352703014148860705046664142895576978021291103079898678149776057054713980705220632453140570926070878216189044061774903371953139055024902359874958163438703790838225418784551034345893979197052717280025927841299602909103260812873369454691081267460358105764817312856312039806754286005492833732366409701999735761836118895584721109333020434313622339251005281452090231431741774858328414919654815547412409263423691570977246309168743865892184317085989931644485930787057153149554728740510146050598884676031550624422770308526719136376021207352919413748883646904020656095642659966142930367449835221219190583152328612457184408048383223777443807658737213002299926817367159207939409384534635043064132835869829346978464588381138298869105456746300245863846136850142122760533593849777336749992514838375771231903063075793640849469070229598280104606767322609417043957228652846860300184148496042832974204443740503247079791385359091791238927198127655705028214734957825152854361218260778487866713152568022069393764883073314600605788448468835239013291477594749125475372397403671264918502791355714382879163956403218989112224946532050618395696606588380801233926389174484509687349899149977907334130676087111039232280720472265022612689819461933926309828869872163419382374726876619918804475255454980936392723150002541465739804882775762264746024760873210738915958900509237341540304132537259928127461200266441862067172786323680530927954812075767629008640408439668514811492792066830482387362401814892476800463233779209999254485753945519454304844366651793056856017795193819194371941988209713546520323031362461193979108178037182347148791642592108173427583055780764289424539604156719808546562680816790301401977899142870095552039120110637091158076988662228040813287937735234376570627595201566147941811000455930030894573048354996557889367134704200679111258375147278574608077091085322137847491081585699176146633383019944733738833191193631697917112906742038781388974533732014660765704722896147542019411553417599674406974752418177626161400270723958391572554379711939078186412309055832279884678692047285168407419405513444471351948503993608155770313243523622355169502479274945792875020983448220117085811557862562264750020759490101042569722384826982312064791647229820366369163253522181045600426019568720663900682457910407403548015712150708054983213980331019510245974842964450755856410830740160279451736024379789923104523566079731242435084813924552141086992362278758617738954949940405833800606083987203400081124282875568683157970204277672207523615075176053573010630378327402480237099327368914129812128779797652783569984133431397545584902538905157600391350689774004269398771340149337210929966389788485622416961034087415221221422965837902095976495713221210416086845684027794905277543994411594295359614392839158130083242659484750817441009198117426275487051840190816077033860854725722527911104199442805413793837922613061123872958384765437076248574648571792965089870334380730851360764614695009849091931898153590592365561735927749564079251663368185359194805845834127598782687910515545983702247513561842429054590331671232743639779882686648975821614647249865119199828116129681291293556328533025498290992414896447580596013746695471604071791812628538625471286035071320920275388232466307297380645919080160874689730132810889440010104262967770221985236753511644929632738297911403112480902033970325020885510591924616381289254761837361664143382749976962054288596257831121496137661987842095606854450525450215864307195139655832340261574614340635214540338617133940781714817509030788152665909880831942820355522701434609711452671471110660499229283411310928100788492784142532094027760824872656913079645460852647718884642362760858861264868398372247197497592771094257788905743509363960561793816294921611895852453590346516896023400656779807281023383108651215286837101829421256966959983254503627765347446390597474855866776123918398387899373654094996090659717213975440727943110752660299308785451465171661691299789295541099617112911960559531311752992754496683126120674166458968707878592939970636781514485548506804386455993963872665683596210018133707524628663276125610735805811830847464181470081553954454133329437087252900123784062970449851640456150042081945873078529894672077164855982729924883349406067844117369456941971802057520822476534557437567353421886126136799208375522142792489125520394333159648965894629323253101490037461552675766016870398979948909235661124319111924998322022069980030470142658525591420848260035040355921416107128907544913334881439478001525479921067000852172077001724007381054414591093566745069479296146788760832702985798862387718154292979078581485297546387482658024963406502597708352187101654090264568853818502903358879894624174924586040067857019397105270650883156547679497768476304217737241735089495217908769753929779180149850096334680141129939016431455034439393101591284961508002869858330553570864157903102628955280921024740834773323307588132771550151910521328081660083150169872725103625107625785385425145649908159570721543591184199116346360966685860579657627178114892881024394704273826210660938840230379866093458091674791229038457840426537514091816561257660497552086159034544188878091407807210817009054392410869058168828871894150972816361309544818490698336402791567310763559766031913349770848120164306966902334548712292286397784744136791265607556751845505260387162389117816560212964874387918649284995204039051053948968615884644486889554800007719266508937088075013798321128922800104332450596921281035230274150961578567753502255446474729885130372550453212831314678067669605592819104851892684362217506025149694537510534406838926965129613573607025037240032083821503374480746739772095202254103522873021783762443978662466395295250146455500115725126147000638962521766291860199092141819659915475125726988662048355365892841900862628395946168850631640800197498476096600958551261888638008515040911830169626732078818267497999507764515020138027177224529062668910201749331143174419819166571725070266436363771110613689029560317795274163515547009654201153895285342055072307325500841020459108227188959616643341254268903461327833975205413936724162930899463805307749548212037816493948930435386523292452805706786576541619462285314692413261969400433307415400964822590455278905261207820595539880764501091329046721357167168578444036684989420920765209450317639822505085096311361561082326671265240322422826229265721356876804584744362016231215085294957814095282830470746810119251830524786124077075414679235347665894959061169339687540076089810132612440407907791947417657775331660637434935931216188227502443618216136337479219589528395941984260105161827519955035975919533722423024793949697966277689524521730574254170399811779348771729462238259145225768205099956605503337163447555757681989277098124753056500425983002143063193667562646183186630583120798919147439006612303449456907078230021218034347560673984758733401931416428639144040425597364180590907750874118158962572314229053887952824244823266285769768991211958056722035940256069457210471833818131535635259313411129217835570223733140325046836039682098631431347223396947024530113951260561831006563624477072629270309774057148421655819293762838393480607479721459927996000681137438078764047373426638094269743540473636916727485107325601427125136321183485522041251443960020542105748071086196905895635867443757598829468624652582566685172362455157860013584955989806522440741266065774290310471191113731889526383828948722931687545799158470101533380239403165779505582428695227391169861444768077154291308139285562688786592824521266839339610357227901650530165646389409590809917527092988092218928975219430105406484422883246515615561036770595610335877032678151465874852567843196104125072498619400555859319950651489837205904472617103381785575078542777715871541302840729153238500497978932086311396945554415090552765413903383508058570245126253950334207175976563442815632149420973857937545475718514835675207591053790744252805639014759526672360512243236949832921054700336115736500144191357210545458332829268250028904703113840568296107193642847957134402280235807168107230657126301330746421724409319776076083164643557937137483958799676508936118735469593227301404934698472432413068176687365072809145483373227251292178241929169191649008624973132709137390807585725495216732772071517235773725205802461522578351491262202484647317938181061521287826288008617905454553504055896979113998353088278979497494099826632868288471053287252695755732216525672595809937780148256065106593975835342598596649401228500148295194878506272917527056209030966067948074659200622474127643119917278106632517563929019678311455900877422896944101110017603190364318292835580824877403327578494526469852870326851300062797904715322915577866115646818061699416539491287236593818821609610427327445801469684214976640824429068546356772180576512285917720389171120239223364261923425351789981001788664576005738376570041254094233400246477635764416999631563971530392863176689301604416553401932790336977013996504031114949771998698259132040192276559167297870057075623676962536318803412620826206844127967323795597336413333936977838431751100336833714230097768692332813271683210152011296641108693906418418892199581015607099719131143438244916699766927262247886755599334352315128008975670963452780836710823971502290634767394732468715743170233645881643314082679086588891289966868540913827766511435692110068885172572689029599110976213033808145729047498673708255913726569090892254090148165063791221842350252925792317284293425027450078415443748573816062935997270794243888239201355097046886358915327625544083386542073587421879015875133117742324776966702648903329104333524239665575670517139820095143531797798321298989138578377970120447057031697346479330469202801352518623235771348399940159485891261857308521907938478618621721445689915303214029524689732234248835087525845253612591945219439456307638757238035741999252259771317512110650892282477348485189969970424186617162943308304671095817803098084830200200788426316162098953931497829004900560170266710234856023013883915179468095178582859523167834542058875729480645124992342232552196984491030339288670322975041702542307259108227084556650680570529881940540591891420477951990479803651770028124230496102182494024218395897248744350569691411533990015299734735214166037674228353686017270679285421797029326095792024052634781552274102705162257678267813077680852644660133511322061718470024729294625216140161349382966743889846082851161477421108031652148775355345133019948780146779781001625898884496714632399350212230280676476058416259118696287104228134218652121778089107386604393041721674488165687915251330549101557649961149472432264757329274602324241322570145870114366754432541275387480995133377302653392009669903025281702545334416230174766124511697658749925351219213725182119877463748631835187894173221972440257509834637836399970419424355378475384407660380936164075469110188818101793630531371656619895842234585913753048400820310411109092332520513926802518450105165042013718588681612288298879987617617981426052481786515915150046968905592688988093123724057995018779630639617247026721326735161991257166620524635668140156943115670277374055722853971408044745821273836563449254627835944194147335587615505506506008839558086337627658479276527424255740992255175031071218099332351598133081569030667913581644804510042715785536267943617051853756445715778623998759214031628963951704584655171619534582531074660248362398186600459726365286668525921521473518197174794350680810167008021888767981508755698830213167530619469975536858257626481723655169942521516198582879691439988960229897912759933449971666237674363714972546522657501484097428581590033002251871389198333126855715569753117669595005767542716522279081749884698135954696738728072029171155614235869998545551537310400133226327277775700597504806576530202226661524325484685180997016499666893345877281461072078055975958873941703497681807409440303778160463368315191867411847483178974662208231493627973085272177034058895291419793046915253424577736307193470538902614805688785054554685689851429711680989269984819488758932949220097659536048432246626717696758168478699067328456741636188464970236484856211904577626055135632697675012999147738815528697704706231511717213035457803090185599778142963994249619430378860376549762745946508503123267751759576027036265176012353429798009037775787158440577825826892150506025840540733567678560385424578478970307631750515828227124344109568774849319311011126369619562184455590533666805667610240125883631097594465533256342127648890436575153403392875984270739848785222606495958452367078030991038101707253497188589818395845000673707884121546132882730244611985697868979936196058727561592242757783681152613205146874667864089088770904705234287281245676406808890287167377354815700657971643082958887651735479525258485850921696478833691960579280750522041739245640498864199327415682393542734614050945484275192083753953324336009685947691152884663025975332143137040605585197282629945138976713930097561453290253833471252458748493408185082748558129604700433090622691320276424159577248254050851318908609112729201542773072738373490318886754379884020319795419644711531577419483027945742667275507618742395109877553718731426513583085820225753292192130570315210114601690883143212788927770029799904071732740197777813598615666050512186812889943186027375527691890756349279785084983972644753477672397101496403475474929049273521624813404198072784294498658210667848336869230906814631203635740309385827012817916815592651087646601742193220333352137195460078848942247611424065025609617275194968638498589693152063159855777832210963532593975131607309021629305892732587328703142455967758111278404305250885778356540328187159780808543232913822097788824415606326707575315243556164303756194868431864031191088237489896524460287772866701217500686671071112261528505405745041536075372265682763155314340156016997700058688708378994020966370595724806240147272231726886387431197087512937451610325728480547622616544290817227440581750407770966048203210082621553634320329305352074172631228972860889967260925202965174074655895072620942779451006914726581115842175749871651622897593960902563864160866472370436945653892129727566284563079402571821553744321031168066555274896696453008698677989348335555796918407253476427085262242803996516897307828638607130076467349723084924469529408791682066415486758185639111379276283372594019076577138636676420194252211047819881904101524486352698137775943201597016380325675578200330647447682111425095819409556246448979648188473163244411657736579603458190605793368741331600778488438219292242339013269783380380687479601591469851105678977775177841283738115645445489201250573601247785082690033110343815538980904582799607781198195405961822845828092091219375118856475924432521528097362499688792003261245951967190431303799968809153278042826837236270109333989617519793717734546288171565721279660625687076037712291702763219533527791600716450417405785754929750972503339107641189730166844256641695678903712379850913295444634095885400641880034765714044850573874787574722505307194885107013130673065065410852266132418455191390451307876206976890831909204639850515461871325434513791771479460989091276300128534890128221803897191961284477746815552485425674004550053110513139414053292691116721496976799670527201799446817219889213919368370594614601933250122574719169483118549324620412220357101851313023174779087355755836498928163423850099121519964114292646369486987564982526968149092658861461471737097404572418274691870267154486593584296020843128146754409024149672445762179676554639021412800111355871493920103497728995927209444990520801979765903171949330240910479974488111070178067371138705992896587251036423687391618240154622398806628991570102414782855911579611286570270285443874423590658572176102982537538584367021036515595840590343191184906778633823396515284896163658328602829462495803855215853788700213561257327465904720458912514699935236837898999142319256797177112018797911738238163597611556566248160746902649024639660922142544877892269835595619378431366344279562215758801966872029323892019501484532755579379056610350867267351178592931534647631649024216843023983694062979296721078954061364470666876623312557054225208913056034039371779401909757551350092234507405949464672158420249586661954136991026300696211899732373377955004738916398058807329735427032307386240551679153997805602294709252795684709813020641513094931896324375516025513991027687567607591803417059856993709290124913011011118740302487044328914144948479158267609157657194305636528945064115594589890041633884089682757365417886834331563495772508861449586132252719131453437619547147925143366625281048820776127455372506340297722901720243708682821573581226252202736587732898134559522914115082149693320364032847453317650601991734981580395850467536322531049348538347767385509502376990845062809414980944796601455631864247270078202830973627169900929752737673390773410908776930300175475337507914802416894473060345282954489946557531372166180520289005045204125899430713539124606083544993032236450029931966469468549159869851525724928144240715185958294709510847883878543052952355556388865120375728732378767324992038512197558155496587189455378674735614875824995885259682910043798396703492499379518416243065677196605113261867028688224713795351582322165291888913247590548852339996682342555277923703849878277942567102669485471682860128351421691978889521093677277276310469970344246637611210364839445328293212649452999926744412651320927001246856955938834360784519929251062783773062575940336432445397532617638676838300495153151499958554043597734231011225984918754980266258225754974136365698448399234393510779440051526950368515145567943341475779960283051609985211644036777837310852221374050549796111744280998868359674748271052520605922527706496160074000294076398374495283870931857417705460539751596797284520026168420798477472244953860022184278900598644625318114651414813932757705388018948018889152655768050396390860462225838929694947891342653136974513786401022090158213659669738943669898945419120191577065174916906829731591494324715669933082485827890149845143034374780687922746847120582681651210896764456861373648363686508025255131175560342026232330086138763381614714586852295331906853986666794341330988385923683853527296517045353760418345063712210644229834373344518871437694173295151440795841742747679607289229062257230258135429417264291841354961062461779827331667375345905453936127933179983469995648187252309339836462657381593654968445764602891374211318385298968390113474418913686511306151817234711790477292840010975219841312059641828069462508712432291292355109438501639231376752172583751853421284968566800787182883112540214975627296820348952291174522385956637295176015632341987741206219086586507652551314384494687376598240572175226158767313351471826925662179062678975172996672949593794214047070025421712591350614038623122266064704630673786575239380934692625741199032715781384684274646957285274092320380746695220985444056620339987925443022342161771304394802931964085375664353524772656949411231209375154422126188506760490066662170617438490381698903169172329027063054239024576858702365775809956006078518364774430070442932242508977123040181409512044868561219471854032732612004194870597076636026645680426755940778046633188545890744888776300733382764365461821626044379012007609434460319115838878254235341559289427078163963210415657275851173091229890379494774770190875105719349992534083037346320399096225036990924066605671523284091633240469943718643004597322144912708934678710725919604319282863688206761033209354692018717970633721163641900288160395422304130202300032783849224288423662114148130943187451643042166694875285176800503280252760644988352890322033981892401289827722313715191928353210068711476438465464931912425930187478026912857511556005183875646605383561321317040641309501673643633908530714847387893378006243918574685573879189625354859464687492036689926332785305843941449027381623454953344075339571579131213857542417580422148193760114352008665061000851202263566045603954070111001131822072635179877443358436379018512638676474704887431610349611753626186966135821542987336968319898643667284815409264121518618644939029724911091133736022194107944207672610905678722166844014011010282024280366072225873602161606732485196654210956695271249973599906150270298342027210768445445683938647541518908631886299115542287213929934768508725820564570300220726654613145149986498801789727353635185528012668289148036770277132511657918227582272374078101824541274697093737417956795320115516811145624612131247390405248260559751093185691490268958056166192765767955830041257780841229251135302727176280658237351056022960410370882423081231569848142019508325381518677054820132812703611046389971403673612686114504512397202725294050506625797452232096424397705458754212451615442198590023331197407999330733289198372701992206566484512924635691006507326385420411353689809500411974386228559432432250040282884408795073014598478143047477490543576588958274842683506116784401337506183244655207004610942682877216135778763825166570328997394053169347025879808617129464585097995694570010552590785151611281353717177544986687658905492482974722830532497914806062397965333754073695639946583535870211528427218048853892268222653117350658132034047053953595332650475484248049328069290184121677583604892651744369198826460598934046655485156527014876352288009109297708857695417273404743473665994546454236530988334698144372940029414371795446900143235947081903831905479798007132356190165490660671645544039373420459884396276332914338833750010184451540830437022108642545057092280398231094177872942780289688617292801240965877038570829694215218134642872831216226335762133442603769890014335933058947312320958774085361496668342771438789781511207405317545324948495124905592395550162063962553152979173272241328591034365546471103808917480962071102675022953054685284346641523146391245547957278534561479580117187923063205274007116352230771904284545843033247267837747590290529898246980876710880054089025864811523720840413964204393231194976155941381758015044312225663799836465199138096841329477166825580978698357888292924268003278218471282798299900710132474663000976142993501955921223031575885367497248035012066765686375763665388842743263334232735393533224363981013735070930106382801362493755233337212306678059707164262623696526335663919580826510355755363006527996830045631780915624852204660074387606599905388213598963558166629648361284993745582185532549902603928100495960571788600831837821251005287637553234309164665335964758593762657713130842876864150427251579723449648992371604621959844037372975352570650734281712349668731103231114131371211535575619096561216382314620706359766799020589867323500890571008506261748324041012669811117555826841327360314878236821605212699879922002581448783244135681460877741789708578074269759584788668009687914627108135662584698151572876743098214085665805216681058142964733723337313854079285051083049252988739287628748134141643042866667319721961115927440466305479192643201197542317558006346001077509374060769646670742436246301693075234636911342738019246282932558141318993996032870645590448825444572373534752182314419429259875944086153371943192587793747428792218787103920322586856882010378243758272352795263609584569079113630683007653155375510458822748944721052379854744868068848865565432005442297616433395790064389961766404591334923554960118409328069840512175273003380024424778712495556152065089393022076315871474516388789343927245810074602408658611955346997151988192470876049096871990124639134814852695417286105077057662069431157641080762231351301962250900939001044481474894879920170796255960863473200728053884471874632034952307885213601771996079543375995807097740067137596172096311335753466832110815177095366082767413343418607247674127868770784444735385263402081493431986860854365911771871819678021579577671553169369420577067704492565503472897862699780163253371896858778364353341233589137753680225165007493318088066852594436529607869960194251589323946819015440472493393725080359481177235905031251082735689243731398221648734202871008549962293926424158510706095500119977527911780720518150742520550366971933132957261067428275466918198851316847192020216215949448141330044656298685831937117587757299072891171786248165448601508345467857973532130730919929567855067320503307449859165923172828175323140203593037604987446317264190475359563981552005105788259811816306184318542529843327692384792938990607514805560941551290776172539279821694775787146084363252389730389785294308990016773300599799828083428520746425215895077893272159756493490580393278617674092748691935540581693316218038740934740045848480063945369815422585696840345486371991418936740712783748551250853335775068381286124794503632487009285490789567328485816813706495146283980430139303108993380549978690917277117993798592963960218550092669321594965471470737921222993113599992591653865497578940385249654209098563836586930629000375002325294188278283298297708453694638238810313790172833992569212366489315551456947609876755924148536247139960586985898578969276092965401660178643141693240407893851130104478950177354625410343381075491004595946876343928867388058298779529904971959909416844657918936742270987365720701348565858366383891847969442400193510710283845710460657298889141482811774507735432484406503710023073003764966721067258728127409979330893159500723314588184390572400690433463963159049881658045534402380315200469117908398237964130789009625350958837450330307879885199640684393427766239800227695351721332140734897326820632386580380757042942754302170023729605629362532437565823728479250210758872040387481900790797510864967835048890394116650600306916107093690195559920706842741952464405040413210966090027819549860575370493172311880199159388780973000128251056866371312967928268919877612937413926352836677800481214298479755046148224581076760819121493155816160100236505292096112502128834961834285181689411477689916208347710328933934450011431707430162860785342562692434246762684832197463800117535172640506618777284785093873042289328798745050560981988187961483779604561259206158304090398770069197087311357294615430329385170208707544777837437493683537577945008257488369181805552557863532629017913871704509902810153160867628104791164223853609438991246755177407024170303580745222026135251727709116350669111105185409705927625296662716166995880544624088994045384773225445855111390016572065776610324879106603414122823572347443181808923048784296174887532151643963536073350358440199320936011244716755546477162563744573056445402245157473381288579678398187236776140882307698924092512977849783708844063887547970417663238839671197842319214845159225079518171897173297667355221104164219503419541940505804873473612097092289678034205092548120773761068848635448025230195933055558927894084731973480159123869770900776512225833349464953681655707326292927245361239700130641132348631991846975052571712416975293168226662039500013335140712604164042758082458111903627533967433964952956902949000252248188954739553163894273573567507177756537802267687798595628148729176317676231642273402007516213590281602775298631529145808143767189188182706074245667904647511499346004588613231261612380302778849980642810005236463437536353875715775082682387154820549376137787682061323944033379983109440034020022384402857328261222976391151899404101834838161848928632484000256680747612468496265601672738034380802097180643170520596064257313899301120619795069329423704225855184721053974516131734122923481739410631717537070398694174000500120438685951442187001871853978492440811820692848186443338850458234873066335371695882721603854783911340633427990401423549667415964635239413290762510246063008651680262904716182375334062947461003427273790998532874055523069768851272194548812642926069468227631112255179484122359283930799137784290571002659834531840715637521679652690985503210242958086061688167468791022777882383511877121206656108810098738611640261950928921640629497421878070245421176312290750803951567999982159189886478145727140998838909649133425410189168910098527228305523257412885217562033572690792934711333954677678610552840262625555510815224335467553703093665967803340627869141168083230303543746247935730798842666105952172862908477446202170537808075958528335215413973087276504198554187769454621527846840794104616592936582660794345510463885703769750873200146904409046466127623938198947271544354227354051083194002780771970547958627307343132091251109146607451256860341212254385186179411754739884267439114733797130872246729013983217983410985120743353787919089967005935545747331375269133402214897880460138066555967113879448265755696595168037681130486100989829259641911663269247673280003106548627868983157215490792497745462054521900194485210739928367269462697401992640000803304109171118881052594173858307709673036750355411505810817525675716321198385883644326557612730210368929580708767956008648626796320028568755996253527974840587722510218272066101788585823729526615221770266118059893600733674773373434625117456695777500279536317139158951672716686431307755473670787478385509436990337154227981547571195504333085014967732992427727902698688020908628690773463693756391084638318874811005185182970135091606543852828686140981302668755700847439014884523669138991000914160467298367776866460383756174401018421641877415299013813424222963064433398065462511295163478678850355928576052384168350604153992479822713907572384225606552470537269207822927278310691484867400873921940713912684122929197449049937801701035165989745503497641905306703314031317128579325140717757827168212628150520429041688324222636081524960289645782344045694263082249459593183715598226951988863978325792398346703784752879301418324643092406167853106219170290851472700630968752091275920612150763348931684489392880881957449082412774905953739505596125753033683327126894716693631048849663840282109714682426015885269349751174672353627639417136771377464415095232627095967692068701037390941897241304192427464610041348229486493731955562812659056537678069717704110455826007666818451635415041856471232103800137252875246362004260898648191669602608527467042724381059810656978827363808735637013368496770020431078747393542954405768439382006121628935152934426772776288676473051999709873698832538525097106256637882193954956960425671147839469272447325514649204509786173619835439753072813792241970066522572054797602904768297906183531884568568310577082291685623954269951496420355342315334511848454436626848739374259283067234991010558919547403141795507624035366641797148586508222374767236196689016075075320318529664255982734902541856179008425634850651014352759199334087201703048411761069738724225870588412333079850689266811063896428518860874922916331693716823960644641767028765159159336574594759258028496181917429178079173301519053499229490022291814184092799717421162078718336546883815733217062646730923521490196221189884612487310539810341450928638409089575143243782978057797172542235851598011654752189745489193999311449804379893036274355984669751771089660708445879096031622068411949275882721906356003304157273011459662529246962847783619312640158666872953009715182772187602843511321978550930410111900127096683442375962222587729855308130020415518956054108890977781169556101282341291928522030526053637825472060544105922657603762429972924536102459814167115606125869926730243256370358604456548821432267598871149377943914996770938500549004372744762248249989513396033787573425757490228020856340531357727418730308514163428123945628206237562200956761229459434431492969986355146074881077934307956239368216115667465860096727508990753770969405643066352705615966137873181936220012157185590446516361768134841968493704273516244480923085416196409723654470239289309241965374263660146320854313166175558238943485999903769707933731334499714144143379896006303126852222733182033541131952535840942914523770259240594788078291619952836168211031149954559225414959460542770415232347401600323681627515964793153698519095185113666589264805225921663683738742733584630971822703878315424583895614388700791043521568824347561959674696157735994247152284817466635290152285081984578543606011696684405076070485687173588639907783412487374438111878011347623274277074466805112617100644622965673774690533366363516754326490637217330290461766843828475547010646123343621197807055949165760334333564995939417410208622983773078618455095950114352941066026750068952588753034918357671942554437498306992105147026055962086526683888658653557973055000106367127435533203730787594598990473287743741422398814780528867022093031481929556877180801556655287498442865902975531502706251287672595451461474477554884069526381324516163912478062792825633801525024838096454550846107886678679338715955045213083293594077112804396420863151566397312953092725500661665488368842644120277202262882952352592294261146948284138980967393046117615950733910215781192974469864747637627250403959998316241162183513348036285197624829648992137428474727127652313214084931876492286000831655416814466804051476453746385500182252302725834979668671210351378661011912934795997119074133218071330632678933574051363846244098558508544228551325284211864999766264273557383349948488712791707659324792851439946574560868072836013416394124675007331636128974379901080088117264589449782406427539493648233276175401011450271339528575008283192410187292608046080868382108032222723492945705099360809632513345287198938623989187871739974135255066128653277167417138301894264568601867499510874405265573306541494482023957258278565353261603245489162447079085562215959098662489214581618673287496937448738808059930803311271801644645649312561817132407972981368543559824293834619943015557752247487097687085064502473010087294440122531776205561734390305364630604396782308235781874531864510720891117157010600688976548048661617878282962401730791782821713970538362313214248402680063148380486226289247707086633106776602118211192345194344252025988388152836855401429162917929424212159805428191563630592591946118996979903628196799159269673711435035409466440182477272423736740105309577799923408508853109911744159021164547550543894070169377674871979148990008647334088943175949710959420589972684950207729374761957602842827858031518148095992047002719351508730111621391233774407684720676533239024658175857520945790213722274411849855339623560668588993291955020402673047287965907827134198120286783776231069753693719387741771767960181959400689117162322826062687300272407235352823599451502881389278348104544448294131025954364991945173734610354227237396820913072406593379856299578665528054982798079701299183840512837626446323460362872948541080712151619648369361502345935472154964849049798471476598861158334632165383919930879369873178190212458669474916749902875603267353502139243975254214373331658877449402181908070003519409403594049269921040638869066724087184978161283653601131654502851729564111032149566963266446309984849578922389283843133164930768368123666406522363986591458440946767477301273196270016832849235916535131381069109851306183421164011010401069913616692232927648539545942787424263821027361004135456364898631820886270679893970657863996172547170026994298203650828538174819869157180664835653832897185061306176750114159152850366150504900516402625713198958069115581996470202708721254199419351910835678416485991917415589548061007687444748987962960889896197340573453431419202875215692728991449056209790019534250552080053283259981679865745630525936954976392146554106947826140013788228294358712410765993602945010517521948257908593955348938679612125445332137871694872670075651535838750241370748452719077862079288359210407409321450708083407340288263052271199705322165180131268999250572617998218280605345943356274225908234007836215093194966743921194552329852935621245617912999352838808229061136955921035738587861044756234822659567304846567339333919942875538759695414229777091976282553831039259892424568049303157116606560497475955714147945847557090392035293604358419446591937449737842868606313647836355876093411799514546855459096780340477530106956451194187586633323092352445545965223780379918387424624641440727198460219410741943743201172143326029244582999278903346550870321130828437057868745955661081008054297990719325030412070285964944414760201518916847890887674713720633743122104365098612323842568468884325780949895874094127933958566588820746307852723502600696778835911663399463934375000149083470800999966788068933664101582170748957894316501418434729966354876081201129131441499678309974824200534638836547420148558256774240732136297947259141562824037733990875302512364524795607232281519760126469492927705031598592936536549040499433551909428272393477303373485731507224260725723951700319631585237002946049739789678660899896489557544063149254981971001432825730810250354807615375763990044865607781430269588176997420691288936994398216299297714525809547261494988407890598682348274104792799514803584966463797656293828962818900987514079085907835646795958917097746973596257816240789302074105407931221389725012923602734027723326090122078400947276559940988123276449879167975529031799102077636600320205900544735125156224435562125189557010738406369798566344910637897297180622899313051527800708269705620536451986060526671430318839878286842734205808492076861526809590376311170408541134644692836924954072407246006465687497075706736085181651198280490592467885360497270345299241718718595236224078691214916470349471783705504072127595851184997422621499878708641280666870981704337746304987988738123238020446361797105004841249357940047815912437890137960452831512746834088718277520697274870254782407110979651362440938914114742290094103279905546107465583142494910543337588972527466615222510144002818693240719055670750467020091062390414158226577810360905337907836489936352234707470014006970031884159763031311706222871185191247429323437862170718510962413002659592938406125490265656289030084346980488493609522738592385970092085804239251060811319920546325514014065649424578265294525981214194594927759126352334003932759525112886823903354639309010749204371929750724903117454830273783961207953284346038940446321387255068725114112316401189401681217893631049108748371618388577723629233461364484732142487646044750422538757973820975627008293616496798459079097907604116271612891729411172936501279447411161120028841297892750469291880092848151210474159258629578374924609812299339856319417307221681726584339376067468386829772450685609034851411211899719758846317518489724895746805816281877116643832522904303919507959988914196660077922238232085481736635378551202402578748738794520990721118818402666797159663502313824608191041200048841024244388077833571385393412739763307258261339610899266656767385143955652134897717266200728784040525700953075591784079454398873747936194209831121417412437088883943580657044287415880102662323513222719270021511106863603725307479854920815322795863711900070203426132775659195772432090607288482312252562293272312902525874726800991045869878024132894116850923503583558999966113215064987666253232160601716279951963090767694524261372038665064447468609777512221007671350980507794854076600189079132178088016815673917289267832838101385257257083328132501754204592775404837233726003020729084841412500220758581277678743371647992447897585278494314614632254999048504123879959035187393774328305022516707072941000617276400598305653942710171200376196211614051209471000521776115620762216376353385950079523419798536219261774819971515816296096550083718080369054313064673202094225647544433823450845338154896980729719762673248473985711602174551754432352458087130605761260616342522994331912512729833452952102604606728368973243217924333145037779134174026371933763073846014898673127311589175561598125460891796360126559584732319314650554771188789426883629427263752236774508560798877699010449177806822213227319139151325254154178837985472557055217109504685520200090319703809069281449644558347615451845710829077401740997126704702518268511455333440053089833417556836814961078417742146212444436929651299295270763619996076934445576355941070972766763789483663142289053496990648838463849672824593054685955150399171687588054058332145293146201378753671576882530124664444626109039458575027262504286289403338841744306804424452622108547711977526324872294054162114390839935905931539449036660381510665858841643419778634924759128016586588377896331057769419343216557539560763801437876102012164889814938110788148076523300333056417346696701645977786284218185272183996180376181270878671216594873749711932819220937412802846740017681565607328702354691496470462223367296458814609920086442631522164244081071516626006220695886219487490381118224684777121882602394695534876413861208715407975314091294555910801244764961810733558513348506600713492555505960871536687063360765328810114147116940708121224030634097628212687094941469239264218201417472736117750150221155631046334911791434364664864196944705396795848815322020520902048876408461866242095107955472457889882141614182873004270791222902357465780370445621010588441250445757393858088131684087055057727643678734002227621894204016646242704082893582837705234974277690050381640446179770097796442017010874296694649520094792432607007957128217199694060910253487472426992728975362237654741692064929039868989120613635830099506544724358352422811118657681703860812601911572406289870162640664911014784211052383543942295352883345721778757726359986249478871816981663764505484983215132247313760216142873385531254133700651490967194226841198267385040466609423052522549588516382594088454887809503417838741471426549054945171631006245049434904503345948246858895543216660513803759666207168861664925128429414940603581367193246247172019459363756314329013290399428118588136461152599750792121619107178703775351141293941892221233598517975630376708966867892952022984666178892951170346357476998739639334162403461864785387565625094408785482497058896925046562482159499862781735100896710952647295920987357171287017412112262058300304707188938647717362662147965755009191569239540213626402764885518462336423047732246851868257907189462960854686136724044735778184550912668986172926713040938555185883746207053983931334962087898303325640857699037406393146327617917520893852860732267950835188420499586609075953533509298892399759491478465527772982621900119444202252539277085756437593567464148877825952103908437743409258922900577243052080675149518694450982367990072092492472928953921282886653079472149206887068448467983041312240315013374312759913659307819899978538291852882586616292393570489074168049418467985456842794822698884571136961029136515693268698250257480867982040377922829434961640745649754413051752432354537448821798706078365355465461586635036844157571337344058171909653131305747982024770816745225419213604518140429280600022526696050525107831100100577399180149166340995942743792493817500614842890698479150379284557362717425321640811821231117071624218178728845543892334102941659000542257803309202029251683168380223322525072561751746966625465449806464809480538818795313239314127931069777840186667085556404783711837334367546366154322225082116297490944481450707110251563828980642904601155993207262108690506566804461048009286645249676927886580917167124537316257303453063253387736662440941975969824898171025196990981438698597761234314459033150537964691487550158391623812559966430133688097053555567276907339665886901048806362332021133855478406244165627857107812398471262849167005473723970887225216502435403519941967170411888139160211969421531223060478198203511743070120012059479890318420292894021449569245080373888791185400972263048577397292480329409428403302326346345106405468999267328725054814119421959697438612253574075113179519597962150051969490536173567534094592601948698090809933525364924856774934953931777569787821621545455519508645803663864242094215335749571963992662654643521477961717093559510196334344134445639437590614997191607960734167225724621011074019450685748276028419490949200884294707272597306986082006916437747927293362788199329164477655420321465384351424755434121252944517217420954757574113406729861868881508879589741198008376615237307730591518356047029466437859953102551409194560830330452999889428630337326445454884992378468671422468417597976302491147365096452205710017575246633437495061193151962855684014533462710997290920882242248279203214478392872825563931961719295829153232969839168364861952081271256190443708107007286234734391139974883495151702445322813195442740724765366635599470185303584580595066700939215191213730174600847338214893294761792084965801087580635971967121057392512500930536160174873995367332409937753417416735611751775190575616909886850330952919153666828742016052254329866978050243799604224687153203601493878503377905671322964423289340682334077309542452760324519875957349488829408507176812873089690005057765248618693195935188712685258284200786049395020536591468893937728716192974388870151152046988997651050133812182549990589706198194842846158725127367299626433752968921940838801131930891562818459542829415998160935127569516490478979803117001354446803506427169237584013879123891074637627095528615708382100024553683409941719059481165326801682958233468093010056270716270731673359167160851273642380013021259937857973311064665771472868610865191683255163503262415737068128671604345360198175505378853635543084147253630281541485889269255153790624555578532909634873030364529174106086393715666855116872613991581743744766351301581605227061203538408833513265182335459914251944246660746593303324709505035437568389720324783352065011141410407438070358675955733408742011870771167165006126223919434340972999123760494615564793922362529223787841759265510028770843161179962766305377670256361434028516887474251229946194359575445621130509545760115126527660124008321318460684666675804223586608154066262508197911370423574557045026170403816094143712511422149291003321222819992674914606401230725312730689473633243723375659456387818161664741017240787425413757495668105007720001638740420793853514171254045255521973988592851504073554831440356710610339807783862803687641775860058104313366060779438761598679855678088945298752761131066418744846830177718857755514598214236232505164870872278171879211485589665107323315840665506882523116360213261619805043931222906738726281072031532018791576294549027415462656212518354465846923718705937905612329461258064533652226427549508440685560837845302784556830043322352502202374235229405203247616427930605478283859438400727999468234018601226792208671481221353460320130399454890145440222475630767924332394046669943930766673194066618991089748464136185614707170928585407779021966316044809700904467117800105348998533284068209817927860975334461746285758108363035941186617589769062975100238005505277169267719099270663761794527093641002749527880750028255691525608125382948821355585992619136435561029366723192129675195347683497574601532235339576841934771615034569252539426255582809306144291415516016790112474606262535298883386788211584898732125123183402082141715724801573184256743102700717587802874978710244944403774836290670830865671226044243298653247296699093059749182437728091920210281670955701220408549722035197147782069838964215793428005054950071113353201047801806552878268874732782936886628857070602666671412915115534010608670977097955622163984729674069402011249033660443941335464127031665252752567080968486076425597640075188280400806365619644962480821829382331141382676234072203160745021051079422553877735193338253797038185314262623298815870733210449732536603599455311986905257169021280461195078916605937510242623644796896571882413906887563150998734234202817222648973507890641303227830233255272753312234213200807700844819786019214613169999853501820973467360680663046282354497172932793047906331834700090012434040334158938825127005736940857796667916362650719138757070924720832160437986692708131311040963009869890088307909584292022622825721118865722607910928065071976522896818267807045872000190906591997811374310832663116380467660830941171587155554169273422058238893268360649499068677722806555695533645592268975892763183126207916188452356667731005411978611642404152154017486664525892286775562619955986524710219137657047093258190467415198979730352431028675701604578514196951637429986699375510352421108803525938839217041166200127706890148254578307824610417561025951545968047519554927851446449518692247153095760380593215674415151751545736682211862146376232604433640284608689928114611760729767590850189873839264893131538598106046606792982786549383260238484453005056539054216572271245568671484169294677502940492408921151949691273377586100150079986344868081652376341241647620559726052487137694794142533438315394207149350612002992313216132218439098490454185252116418983876367902307611962049893777050956365007613469474537954516263012179307535129537397755525711592148793070204585989561920281807507648340782792352606731270886562421340848470914364465142638063936863550352343988245239423668745098833962058816966581554920419524333837398391575284959115212614776731157322946756313833490979728146261149665669400642792219388252242439866547581404434256913092929505056337364556178462208707486054125266498709086581256762509023484947441101262243177098794388801357643834287941993538759535524050999313787009918510798281408251229871852517596414960152738894216087583812590749111782505696567628051220970986822258943463537941028592435363236616966473371064651900019479834334156925803218862565932171642095600678286007992227081467076583562323962591419391742011628897836175941010920760929673465140302241868845040243704969940075701881266839872228177697065134715910588490840282994320951050321576650003601109707252089379295557402365231875413195010181956215996663898560833685364235405784650324690855398878441945399475228108692623798306614655588772875111099781730423674393803803331342540086901888505941468622057354596930308797187856398804079090541534266924952333738122026213637360774849699086566555328207887968530589607530098604797745970649528481213397569746933403189400776240851159971219050359595897152155573885513244447941082914620321481687909047753835625087164452887207578489934747826070760517816008872294888206412670850281231785985632445066469225090991897999864999919059963842481942922906726814697684821798833558766004214377614777257684696778815381384532144423181216193010872917159308805080164253561940680070698172200648072115586408152058335570958640081980044782889115623767018392555288741982723167114158405417838086428336410886905445662567541460566039108318842164692856459157729585356035945980755896736415266029161909283025341509374832862922216132041297707588073505172223090249425571024050954205805155501715578254779153355238684484744133135404453520652902892318339462176924931471284587429481857695813112661119642385733617977555578423801927272230687120210931663955394803771888478006409219096246028331014617116256713705831957121411887516027206145574222360380795726910672038141476488022968836950256942691254101127403021389224823026201018674283240569527738442025463966090628015227541444781937675651291799488812734002757514409938907186020424488834373005261883547994410980252762516419207936762437653893072519871698667316776789917933380274160783191249024054190679676242138394551792899767951309377861945435785466155342271903135992297830500762959149561220082452753859472221428552357685163069014468914052637594973597218847872352029588948391636351501167689960557243477863943945119328256399304897360465283342706553857773652410176478154176209366008237395313019354159540055674219818892691831648357855669123400311397319562674223892471039826515764378187027258534164117827157505227073684104351077387951026109611799304462649621720135716224366135134988496789012325460629268255143974382100245869898627367838410961150650408181997669307153238266254987167177191239509975512054928669885554009403555487796407567728132099880986356023394933380443588254326134104750243112799352663572260623404023024991518798694840337224372296758405226479511388955667358216182318667882379198756171158980690408140930702857243939163631194781729348434140589702380311466436643838445002152205734853313881354735791758738686035377777033348050885638929029935648647877983883573779204651761233654167249051789474034814644163883359123323541416582035541835868069825628178055235770388567141293713946935275731594405697006300214874776028983966929938612410481665856716818160737082023878135382569607936564762145579359364126824363606069965724922158430228678814379695367711931739178537450137317282924829766259499261851119586872825617321855511691044746942203857616555508551035020493461706025013936053799019736044304082221073177380186335691515928824660458479393869680456380710477837969786032195382334459560759345821097246504253028331009879507921898364430671552855973238186212592293441241043282136121087750502254298844196353171014541405088038492735859733516019498937271112170308046237215038961399419718806345494776584230994959681749497503786252924457106629978582952516951476887499839702641068072466708029232912331026729692142046791330981765881076457954020637538678099456232102932981859270838334301541705416058147876690394867921788605533690421406606793079684999060509295759819261262226613678628050649342412512536191456046815924317698055034425660796187887094076978070906573774886165561244615740019292104000787439176983657650040165119929386059687941967281767523019272015783733123034700869284208165424507776489915159439626326945535618693805530943254584774319989869372663592924459944861101930364898946699724595487107138398058279124244668113640788656591596602213508928404455819334966285683817952498334311747664129833639431694949138603324381102994683110933809255787607463889156928863757274616705336351168142823941570132433038598153990723159565186655350958713833187612573961937371089913486174055854882953602267658190399442040590162194924048914212809796375196176340933630382751160123533231327832769900699830619547242815376120361540444586427533711057228222297295813307213555301637187902423953103225413548065189660087289327729958873284322257369088389476101114355452931405331028530009748558760305342614943590627728763401157698522351098608446490760264589144227836489785852983859288842597823251520523232077652297680419361060952701606369106765116586817125316996902638540012770186062260600114144685085123924383672068128079827425423023917685425139407612079988196496681364293377258333776109511334750371986027751283963401686778630420833514831931670063191301810239675517776227086399326681486949237367936821308938020675636688534475412649207811230922939234917418236658960546003489408495303943784658285480152797718702696510069887086027002554121176890313939584075010631818865191126247321531554395463730522570772425798296693095155537921841990816450365318985135565258252521005508480173442149002809573152683104172120653410500276331268786305857151109429989289973652076044154223442475947005000910009601057500611749457883636162316713406749804035470937900484167841607198374880684399265220216608992667000256543663144831257933733470377365992814441353961229308269899497331520444716583936689469467140583485257392183214676463898754765198500954761275304250696466218979490063099420152353199638942515196017417392280579472808988692784159144127127598794695189087020342848756929053320867504628975427225474624374237211778140604921510767600694111252953284863480832856369359654121306233340296132658426543046272810765774639099444569086211099328277374416862599074233591948659717564623551235081987312076102936861746747603965152015936321768183053356964143472054020538066177367213158234705187558136461421473237425540104111636488777342943410955385415043159391100137701164461946182302773272076613340008684008317443465464532497596446004938422940495569150853634659080845203145283362755231527435521734653153055047848694692416592747149398832362877996639833757389129091386004724806568468079721933805052026947813643709214863149914729761587036472456849665399281691751975557226361799418539378607998766430724212832586618220456048063530774432304041119200466792643817740165223508500663134627802642932751424567656555546011928484953530372679610626918223479308047911500666258019478423968607931075871097823867970780374564907263653909037499000740892485849492645438677934440685448429210473035854657775315514821212412372268458627754819046629065726778374675842544575628472117145074251369629930567409866714866882071838209808485681025843984845894738535636051977477383825063534840409690987070077592440918192751781822645637383195415148552650220692312366102926647517419438478185926271445905896797379685021813753358928728960088274214503138159714829186016050964596491175739193755503931300956754855582203270660098656411024384146385060270694313849934942074401074488421445081915043305969681156054290321145154892148199926228826430800639406126359742671332445973673916400991497417242487331007911974626266184809579326758856277750298315170902051909032178292426304303758624735147665353692680986918315850790929309950884290365463752878554961067237279510359696309187108886230245157094386748287232009609029352135429204899190298501594448666677228163574776612228443996322441467909210146143624393515861135162882503401937680055467401068995010590088523386995046667010498295490175926900015941346866960351446612958040489633176010782579672599851556012211227202316637751642482850197746959900984446438116497763042113833506652724045623727180334493435240538231481150158268696214174853313597126472338136146018732014153973585492875779135450011087152939629786737489542728156730800113551639529527361905611905630129450731608662948944254674803198576715585633161422930619003125820956070307661880722131906516214187489306905910898290191660451588493764376396248869952910694458303505608221957296870293216318234908755245357504735906834496309447369298652275008883288565337102489267701562509774258571130364931639379528057080766793499723637236907101029959656163161109376453751015031986283189206555367320864514821515349712750870830886296681549395859341459320978771172990406646983517411688535622559439112914599211630665382890551595414137831791994573625009178177199962411268704259987286452777410343381219805667525494724918088416454113018946570708662824635508663377548267343951835615516645233565604820343967357588559044061190660830943994770967836306523416540363668651572008349382453140564387310900867461702537444333339711030022026470840692697312581295893637596249437169824454836513534207028336582522542484059113499791829334702640804982154096492707886078980354399690360718745957778658676992777791736810339295819767442080965818546546434646000457586971355517035469512677402911093582756303966127458223914403212809470997503966523432360861503333610227846509948016855263345010306191643711731816825787839740647734972362609935994552793264415592970613581549673323247054637450382202340473234828826131160760888119849565951455237576777345726934429770901161044583485934406161572355417323347512852464382958763085844575445294058849873527040559418567469575478573818845532957917734690383839379153034182026086125078050564700330352081039098354214931645891315552376368046343560322102196817853201507768965324258782108441709742557175732923703592748634293738248014151247314857479143771391502368731964729960707045811148338772606631628148107744328439318216525969524859966592846363226785213237396203141477261763770318629462584972029286740277788102178349371429847005978584988855428162878006056987286756372786281518958868853192055851759889497740263477030593318980526060711786828633344063327215726623668561167250355068760145292399999446525784614963673181996627756190617062078010342312691835800146973935295708443389582446226320071653977924170114887176405730498247461834176251625191360844463885247532109227460335747778860419609051206621698970971131432131094020694069310547502364919961924786883099087992171563576262626928172812002273487216881956789751990735179303447570137447193124066802007290882512223823030609398476903150081896443489124500141086510070615572089375694073399592556065327768681636607118779845934934680843805179047542496364922041128816624201818799502953658650932293244090654144840649991990167227512088495757144007876201876400813662643635980086160781858602870240706913241757795893850943573963190356993299301330668081422682326566502323410626648402406558000875291109449801101761752840959189484547526010282579172739515675113357565788726912296855874499974547298316338289978483591642027555483002580454608055230506558454140935780229216619836755141470488228793738219021509264030007665844770795540687044993991003573731390774463515217627706820081652228242927842978675900820591025175981259053206830405472802948589999968351260538050325694593542346579263093715478073282112821236670661976638225573863262343387170780753397941263094073826740135707403359506785705637483644229925718193775563244061202982415243986253604223835261117778875519307196863325189788127804901192575763281342298490175678628379543543723515194743542293361444147343515131560625328010991181877362933610848176342081713757035399315451186553544616570645900875976373830108172743292049669388419529821698855036093244750444425154940541028121236130248091503836843492497605912530968646829840708868878521264965293784757969197235904755551354090981243319112359252168336102759340911447157750963436004733623062216743501207294191739865486635404119323525079481731402817410345062168325017726632390743234641473196885514372042425685141038811425827847466776433759260281401271905137413383593651149657102958665021936152834870868668497984245244552842784362899392116469046455078073978369369133280056008388605353929052681692959254510510093036536934529808024610369229246590061171012839640675951695211161119622409421960090590928566251681461461367884399235782350079423177528919266079731868180124764210424846584593240312283008277329577962513765845500892540523129158322739686577674427925327409115438012638891118946974595804168576358344083758413449915959722388425832387650803462856266295526675060626799636445966749284998543539564742990292167043632893699551579445783047486904166372887232549474523244355534462448712865787626590555524553649440775755083752369991689840118667966809859019786750388978796106869144944748954805531398854511474698505191234457035612915733935220158974543138016555833401617764566170008976407047436903600906275907266943689246358286759124369957439823045697896305279691503375512725491493183847528432005194584394577090194213582019547047806420589001050441988718485101239708601702698907220740508733895397310666589801830448139672997111501832335986767201999787843199840037638767132029093015789424318427528291297829657105944761832868130919757549542814004195645581681994492210186995400895473189733617298557080831986346882845354599596332311259422724085317323056823226446977214235911339470611623876989450364459074647846760815563233246984731418260358286995385135735213482150745984256682235052453652422368970358389184309815604055411172899369358540632641952514942899428402732765111819671762187155623192594104341544658660859975711559681729119039552411256349988041058505205588100661559063106974755649887680327119078071163746494670336880365210394603068245415467499608966381337878237196094383381445490462512024036365631336219096755998534758244913771412999629574406393726285413577106818252759360852206768553079910538580252348758847792380280956669473418185451263237717382514302437645462169640488873037169727068667146718624868414444266412288405530902555492320003190073043382474853654948552069741270489709413828466981678048424100554260468420100813143791098169580146450550642756739520642732924456293750198000038703369472241832050661262577429688725811603187346022808983210652729006579828640940160945811377281975723409817456460102251263096798890480727577140947004727173836734896649670353710954056613141919974034748068499785735334392517112192147350961352714742659803929548930456840106083360275530647497841030120963070390531664427731331985674948242758442151156608312806529890581374333361804892405910984340428091853796339030107568726624648429304063237466074968930307378126628703619617811252683798239563361550658615780134164353101407291978470669572452030857475859600304403301118625942786160801315602991293121669165790958356509555156769327397172121858611865441043986383610955135415636721774126502190458287338195761408549486096554924636538863078649034466645667307042742459065857777241892805526427364076240946670950252686498052899331889331327728795040173892394548553052849847083736425329654755991535130737521874571758677449826684421081829300606796767946881075540632881960545052867631578624420871931229370234231248423117131792620776092563870490875275304112028700560922139819159312643372613822935038681090719485627908642488445166231363419549011348575658109232423230466548591816299718681092981936575569417208885135450392960851799965217762663365064274965177170493248858016552915437224189186245764184576945921546644101827920189761791062673301935755237826282537755199874466716523105831088425178051053982900345910487070808522437319636318859311553578397885640416160014029871324672882776274644298893024937417601410833599651116653251039097401270324268554808835998308809404435131337627461137469553653384033992472124928120985909486756121434779295387988551723585881665586690214172754473070101961737490030957319742295164504166856497752888107358124669529111306516384222741041996447820914981991545232122399136817754080961304949998503420454665507069396097681413916429480125830945361096727330621177477758023307803947386974234389464101382415540624306867953392750279406376244546704398563226678355721604542687098620369490771775403187629380758575161742960993272837939485288424839984423238962394749608581282629650449845631460264727361334687149983352476199968765267212073228377065293267884120444223148052278145203133686495406718715448118185987075383480004912159777992832344222535403806151999303789933258556493329830317147392140167333151294296827370830304008627865673891063487211198545664220294875573014611477406103017724575677474603460616104468382864671964860851711675413638159854702385713343116703904439516261173835170884455860846255413731667599462169292939978786445293709366316302220953339002686216253838634098212695287943485182851987292919166990960969648748771091881997424818799708090169224724483586806690695374536710692428069786119983572995307515854001520724898946310730597332842657098666573343788933646269385796197329032258118813610482768001075752257611667488178474738524789358631809838666585363146356245488747368527239601702203241124568264403484335124438667451336523352791445131918445187521454732511157317283236214575032116189529704163612413288836981392301508642296902729806880101428254120244636484847891567408270117063477334459372992104089555515443980387172979223353336542708947899026082727221675811916622364333019769355882257771560398321621617426763610937054386306400924695179752264631030297074181737156260703773568099832798050053417148171431906614447095329374247822553572550714041695775142821417989575074821703335344924361357562982126475486465658230113343017032804332971524636658431054265462936285975741667432483404037993457104280123809334052549850536794131543043290969729235501608299497003298104302621244817695368416579767475316425191944367660459995139835218402901920756633093013783492164647752553224841633235934840480996475227643795908783775617787340340996485165582236215873656361929309907124212917976780609324131460018956227514307655051652836787083119476385762418427725780486866101822429798843803101033863016387666943954518634158963806943563762229845702133236534397905078221335355757857574392391426636130098762127767253055384451913476792404634934644024952002050933669901570675594300485735521519689500321416512074910006636242817758990947577923654189985714875105185131444699938254170867832648302490002591396414967934485281799688608313261477374881804473459240432871935627310690328797769461324200597630877233361168047794868160108853945175833844120377743544959217352434090120967504274771588912274927354641806213912876216591731575927109946911588775717972210820683844697875359048746035272785397524232988459148454465730883422208691599869688737581076708308423994638891319530172912823739142613301226650682092494391760421570744947804535455112278458219129406904867635898873838594876124759910211261576594533180157512322952954918730502119405639942153395202406109892377156621674726933073956427395174353354524601124213998010350448129595537028730086890845976480708964227240867347355894560940334526590013743238651486616280974624688019229769144277067404536074491565561393544144580559330035001062725391062291789197516831579620938190021365549348852133254103042635734511854299387413297210876225969608646344041711710612694223943881467840059967068867144282482279780020862222097702247091512525359557807058660206913015536708371854078584028295866546569429398520568388327628187668751241759789841860977931209047701996932086275787681263323279380348846330774400060234001240382699091627344274602038127633556473956308159547423444630686905997861739907762358028312973024852306258828752182371359710437173806487111730895752964041731895264121136186681218128238746184912611980736792661081959564615375944002663088272581011659626711613428107603854771408302770109873702665633995334369624201710891818032138930543428501449453827778753390429103117731797213089206184335357824725713007047901131537421314878962036682043036689106054537106733752702029182534575454700374719871865516490830378954172973556814512292121944403630698041900515910327252253494462195817316819143534772674341840906246340615642224980974606802997684123850916092939566174571028787252980866131413261450838331332584857435199312056136409161122429759708549586547090970365736440019990269284113309035134243063109692207373598551461933821089193527255027591545772358247518786447532593053510487429320871298480837118623687523607987442891820766953938658213730736687961454284178298092326519912795588844299988779694763179135886650785066108694787228728602680838363027789048441392230087303137567153938567689145739921669637317920231861400966141725181045399129466278550980495742300141798661990762636126765204964828039602689437739088915639768339900673377026953404857733074408163437810416512714780295181117596488117863374578695241787512138288730338091596417515800500942228708778174403884522369848356699850346043611680049100971588104036141621178270224472485105407347254315498361405016908523352515152779630526085418378618815504460970222416135582133485727711894537627186957316147169556113294825231304597701020754870057133729150405955005943742928079945107388751847555388010078387869167438828013441339245689248749469483659129146154089020385066265485965082955739270942388143833833139997953207792447151553947581814489697166980466031974159719193780469496664123932930257466537870762441532159603374467325068404848556893717609993158949936139007391169698610330561599913858016701951023609369835225729334014450415172884051347043691906708070134147564210659017237494616313372244882528541110620599684884071898020438633599129734779919944273186338516054104371801111901456185825932009942722504173337959523509479302680255557748764443616468895927524659232285944430383636409424054769951951867011202263836683953676864928596939724742269121016168798299816518411432430066356457856415505257593338597087261688871915366222285864897219232739439404379108812019604671464697815095914088347787731722648931329192329948499306796313568056575154419855800417210128247232017764624035247196412936452915526601611406865717609687170924014350665468633394572244128593213598718949842434509381269307709800232768941180925455117741421932305659647570323931584286606114148821476102450802225664676175471278061617252489827115365082304356927703259422661981334898480179617834648401749372164136437758050091999570262234090472344050888970020716741528558767637943508930389869715806787118456351635230948153901212322693683540515331442025174537863266272880209742515543986477772314928904348266990449447181132813798968941312900624561494494422310869113934862564306495451446083179695621504437208902419241980222285296406352486998100774709981080468779905726584396911427588156574296029385845588655604117305563039594947070043810157930757055898181439134954945952837948462616993032718603744181652751747152985009176164363866090786630025781910751235874859715541429993117128372953718714706323492226849188841237897350933578299804054130053262978301773557623134553212198669331278041985030701804768617425915734551550193475417254693798704108965078026578607041635090374971397823271938345485703216657369341810256515271295670251643637187298725821502351402211779208545266216734063722255614504845606646244281845568262343775838422006533651279647679542145965339620095507522860382970697350010007620857902325905440627737452916175132252723314381798298410995839897818696686616441921968598972184592438637865614724340990536500153200785342374022789265149591709368746884781417288722553741917702012820967409575233539170683074825699776888893299258428340495073481530608437709534272861730935753554509631883743406724558345049984890956945013668009557754395596322723651350248727965041394405234887966293201282203421103502716440062078581926104617788768155311791895514220458423518655465652608084873709565072074809320485011035095573200155404879083408818736423907043271206156790092855433016207781720369885237022949866537101404826797705502162091011364250915422750718094190053245387304934514002030832797423757607962328771637328696577010282917844438259871736774367026196484233334326777668985074364779770160376324946150698094867669426252894027144414019438976237068983965096407877753424569584569103584900869069551073917890842934435210591096477880973664751853888897310610342551491172078632382727769515328177543386253573565877098020818430581559380934924473827421801890419639865831485521230342259672619844889092151711391964463135251325219381796797177618756046554443721041098908362951495362012779185112363168471018509456611489841227148586298159921313526521901564912215172493137664557805930434787083424175777743032497262912749239118687006274477565841129478503175354135452010137100603040350736809673281596473788016234978745256558220921799870834129753068411971409762068674151022601793265804214908264811861518696706801893698754229252011400758076297500497974563500316513401453348204886924457961637586615105723663140029831502506589188938920392600964365865454980140134131415454671496060622754050734041402357979101568039182701734241161733318875544344800129332355132569421495823859560744063981730820774381946627177249819447409385569580559923082494750449063143859900077167772994537628634204759212399602571385781913398366920759473442168868781797609007305792102325415721069744763642938695380533853686335410513607573636956934116170247615356631456034598073627565363713962894168113528032691430374216126035260083873631698815900733046305413954666498979733527505721631897372167753160603393748986835284714687630547849455549087810244767124421996892745284185172323175691793297677923135437286266146342755471487605343450396973213633450891937337766073521024992095638960914871620510010074182451435628740388218348849479873345112843222777062729969263219815790294387772195004590063212432279336168852355951551319902894922398189268851498005845754393620006970206507216705299394536030820110033613743926491580494998436122407414443544774417995242712937017515385659518111658896579503316596548149701019991132118231807931572993118162929920882447907791786729194993687259146813080362723319549343554708666112604051597090372996740690797414899893970292818186985697523452835124093275298601484157010472383527014516364602408963437919218301645345821913586191559573380471054702192861768563262379934716992859368798014935844116914948974454692979484749628451454493645498403424006869507115189448244085881429381768136975558961513845434639229979069651127958282085640732378204177982667754442117617281164305576655785105022651877666180273172303608030447084473864775555726287792897011194825102240071558068602203057930913697716421790000822577529047080571146421193533833780973035942522758104751311532108948804859945823099605151210605798939279359721806317880630969238713034794204033632112848921823832695091415250897496592054504571760214139991003162294898654748868355835590441071711290181314344755846093864888977313593035651659266883649389489043046875543314244290087655417193892736284113464514650498871979104422396921876871926210882599072388084983141712834133844589987727290867768654359513348017826408190984727834726188905777496582706361520980778558257855883986196468060074347379243318734683302198746815999484655573238321685896294823683567391010020303831437814279725991558220134768041803226402003447677377504454219567235475811945485368321103475507180723322142719548890463249681854036872515082011188851118607909254835951473349821776591543938048380444002795309660152586283965675214926040189927711442356937866882358271542457118109662699983586446137338557523772804141848776652257020527755923210234329373972711773766068849857300293786133313478645391924341322221313472439046198119348394440366138545311554176301188335392423576772936311443069800639621809975207376635556084432672831789072033052034505559240341902467937317581175653989150194908350807575471133391204937596821101081913388075420142889124546357769874640464545967120233698780948884745634441430554857988226617909552467878888812344956964454622435743753811414333626806639772565268424693993815213241484161331695407713182062188552726893277279631917159581073778132225886581737715456427269165263780001751894500993095619564526518645263400737660066544795817181386850196488891604756819183630836796345197394887674435949418651255732499758896182408736253832314350030817199159969708575666691854664816868095824705326238666653071463770201913807134132565002414300884112179521810990245825947107176577623775305587973184324644539042528941229790185920979404853577723929497269964310779391287134886809101749020887574645022601506493701569937724781175906264735981836815530881742958602988662611576142291399820073689997493517261179737186512817097321514392193804228787250026365735367053258933309347134475621244151643333462179475524673077648904760990343697846467338539583037427083723235780405016612848145257334257040476428304634449031423372819077234073418687125837836799840395601635877187157675070474801784785675078218315238094999816808027682613802595450644409030180114459159792717273007730746757481777732774256961646829256753255845481747561882866511471573705172566011568239712586482958106744087957846295679724491003484340452337267746720179828191830958822525647476683139449579324630268415495336074599924488286330114396704645689073959915508859705007381095062991855147419207923887025756194415690067145200725594349182188756229532184280841194379508774680246630909905629554772619797684364485455283328844080749115338813323193049140265056885663377844093507284740976569792519235211708206234851355053289675515757695627851920846513792068584142696190654294469752310827933433082538459401906226843246983181590984180788590459806593923982279266833212855818716373854894678204115462072500567378309941973640224076528902580026345324382920311386686605930913122710669840015222918661981024414012965621191164356971829477999342923851096522992892080307274184300450408674371768065253515868751556454627942864656348663198413075429057249172130284763760330603159989006892758837337753008151727804621157415691519772905251370748590220727479265816509060152471705482036814900614955247081483851106426665776576094241372192086763288702336573646169463044117153730742556378104955802061136212061162918288913548426336283732297262614900441922931580288261014808947780773178157437320976301128979362294803606732751684053663473648099667668426849750057686387258801665247069582895666658666574486477634798945160980299706883914707098705193055858956064346636318062212651138022944883742071814624601094931178389690763044216951309225667955943719263702802660115540595494275839606023150368273253732833243755060581288625449697151208567547365227995864680407829590741053158489544648494464285298903772434183380014275525870266240932298080335522925309580472117766061711173011407519974792282553927678924724957368257684746904886081841923135305923287780603146896973213084663576518649992598332108235941645482062490500935376131498028329492374266020299239828602781003698056205394326345394184764253993930594485189946062722310214162816084905089937950856262720060983439206103443179732809820785890793620696479650394951996636215438100108561926768336572030260550969347206037921034141301778048465825610428825768429560282907153607687371091952320841352887027259273171709098584936924712558614046607743582679446625901204063440348178292105847237761612208025291762689759404782532200751310972777746109542296826880400735814983566676839772893954269776509099846110619138721033940650662810446842246763316783553139633035771864012916550401988341080780980917467970704285113724096411645230443455198679278036302163260091016306559746355123611333323230434542645236456903857607815401374353475352271365857333424160537338659194861675834820264052538508376837092840379002346439118960260998928190588579573933495063713844471295138876212674699297141789170603764406294125267165474505039453538742568747626837167777986692053804965010170420854707498988632680751614604921325232562211459174117098582047465426214523732154861379995200074662599957664902297478273470678418062267404203377298198366472218228724269480357052422319500661924609118207938187725296988397822193217141622830873989608661822722196559402255602001961059966780833112689462480451857901992382012925259839937439114094492285308113238280908672135725733239798391598067829201276655778025560814129814805154358833780849908051976362772245799153029279941157915164176561518648437670900686340046105106671658189686038688522260118128872108561569241941910548242541856767860098619302519014236884774594053942085231641985582678565997254894594405309815820578348572773869379362331816614657179695593294669601149804527642217732814882223757788672716192328850886662688178786924804435799103231102001536833672468908439534576927210924542529889529359837051523850520034691183859263131328317293811701231301209657848397028220604103623466177577475455604008898853913196977321836401804702768536332215945373126948409243001511102632851903185310949322109225485412123162412553013274490397903910229773042370322621350338725416207681814835832484794947332794906773610053055635289119791769931092174721823648326047883952334683603290997995826114125772509230245103306744415777618798259400554697337719714890437067901444199325106997769447642884510138697465223765410303062378387255870011278958393335932929176267237793061903002564119549142378094857123166608931317001155824645635049817479176242556108435228681345441807316082193198564776367510306383968225390401336937508916870064320083463256743861024990355994494118520040745872903015683499475996691625103982623485818196660646713942011482067097480480995950276854850370726473970092351404093923535168552228642888371210985798778576320911428436893844438540911293391938539483481526091587343387335218052244942110592424420694058439023467199717576178359580199902169462338694093435287254339932957499873589934948219140683145739526437262558762570021772049070011740947319939466156254804350233198910883594399261748758292580709989800025557675715595693165535544410282867512440094387767852884254687125871417450494661850832875071671054487244511161347352338537154469670601732323152175198914187989326021826195324543287870549691205181392975787084032478202120822149218707491332066290320108092348723371845805303428631302085876082323377589938627397368127046879416701672246439107113786525304214740216047960199971621620039902081031097292050760639389474526522300359163933154910264673788474622505424547199692676295643932871979275988744038284368914062265552291490424319700258184051069613286194677899848347986303573057588024604072936332747085832628864861587796235746075061707470482853014678285200859280397395048033241230084536407550050117428473902257027468014155259303180351246950684133745080298047750889796802701007178523570193827076145648760043387932196992735884812577419345053844806559373013856046218693479363812564232213254383011750281326177383048651028231827232169915412173040691826375004537952581011819252113701160310504748570450814062158717745188954977479011137058914761997365898349723903329257704087213766974270037864981563873229356197217758934477884491993298127073397244045580730521326911143873781565799544903922992693785853909777486343840391201041311170417445514074189271840132029123204249620204833045847573151489225216070178836691643630538798446974510685844077620294472249129022879455947266488149786328630756885523260124086190323359039125667648534347549649457832172771763226185130767665291830186313093519795885832188921609191976386802048680563313093915716998702392532640710206633006763718124846783977895099468987882394323747823934628457217883738318376854652587607319820089533180006083329770226506225388824181046837507970621475518447770135042737047315242318090298860881061148187710161337644105301134226671033293259631443756622191342469609041413860787462879986167280511151471343633136894087382860571807699292960620326340677430788226996499661097397933086185936028403239703771279953953847727826271850660226230699658630117682505818430613643748495092575702276881409675586609082661160151442954516017681962305516264139292889246630236381984267441771143936114865434661175568863216763363244280714313896433507546924347533276455553072107617791502668354333062074083589062417370088175408346169263448435538345558372204232063748388017419744734799922357050051188912969778388160102025240081307876833294648342056950392599504764952906359010732606018779803348053680910752843440250840021856160067547855036708546216931734684764914022402906832298976254393318032889171024070346290974986655986587510083694832542858369789189551376991074344807383283852588099678521980424099857544878732696900742268494222512510677812565887371451590112290897783791660421440689987979688050450671590653649416885279514711270659218273039687270048416232175161832705758269328712864032801526423172473689950071045722683592028973236977774177706001276089843364119920673425811696276771328105058397089707268680416854416339879272306569159930089418452864237029215014196770303027294439587746498335470210329443266001744065518512818166205566591013115910059104302514479403704199473305702969861594966432577721307386461682336569226806682311041965546264582418517676735737114875684935122034054745827449991984366429283336996768258644724588905031434841185964013253627883655442141157448774960745701450705366026051685111180012150877854307412043001556340576262027111215879069866224299624930387949178778463724068541785058228940128504875377799173777238243434357792190914911643577358914404572686910004347885563531890698521675372864837804118765245426786654133397671062805407115444323140329927591878883092927682168621821875530238946007663281250121562818738699459757715564955829623818475469372877222363673136880304643923900212521235849368594938039350934214458549921281824093684992793519797775416187700272422867884943288544866550234721902241042728369582556246441599376476450312670046456984087102885159002350898269962406372078203548583495056303136826217388015323390653140831548310315607523963953292761239146971223808409513307950255928860309145630133444118107016390069673471545128723839004982617588582291294705360684390939465720570831935800644800298361091024534661232753024348744028189416544238073631334382293330419252751819081819426084611591181921283742483610134292532584915963418929844265594652660527147303987290466449022623340559524935794906165069013524931689860688196245482748068011484397342620002159185592878206381807189276406228416705593124488847700427097348179647369097955779108176184539785558660926611009419859728777347454997671899026037702123279075453774422793174944946343404430633704911417872526771366756393310785327105288025936291168948399420896533437544163577070684843866223094078807230311878063434321768413938433719393540416923794648232177257740571156223630166120898303714710779130668612066862806984629773639126716696440141477002389467701019694243761683894127076038928825388437317656378218823929962631835980510807822357263408197474447558942211929503856155213269044810304091673251024961524823107267251323861795021886782255039342398675988882163632464920524584014613693025502630797089563781426560014825880998631825449661937515872037311758020118031645676455929681401095114128299863298157756149710399086548596997467304781866863276652554549437798375614783895129647770610194981223638233423992362446825134067355690224947608133293787394208943684557534549858778031700886137236535637479428208381109720737051834842158761779263608101037187399494401487193773195438631704321825336518399551297736737160247321838205551354227421524695841395340515087242886641913652801571296448838469495442567192988612401266909242938396464906719213379262722485249582635221746397205036676061028961701778858130244440207313869093369812139930278093940667734494185239541028612059670816809312610844687220542210699503990458989353672824557360248890962210680844946027012849675707164420760603075603009151185738464543247317320955887237338175147385465052746981242327037479032377252964932148242046895198164303302747417967730790696529805212261651458448077165325864824814205529840375977126461929598861877933022212469212735582193859923040502655498825859036888730264915052344547887053481937369784355189444865125773240236870056775233660026405439393170993973280773453799480930438709957364108450157824958155870170713909234123218589967053716761219343868770699275273466224620610184047235929427319930210591689861351424778083954589650589812929386618479660893517266736946371279314549167912644675603778082807171069656461660252277657296715362906904261999271751568160841621348217734495724842351052937502941615105387078771010714821696558506691019291413232214005881819056787111411727657028283509446731594741575011187903020173583391535498181097197030849537274583390232602100246809352977941137896986944111047989693766113561612612804693613832580894652318753650971983071540307663861633890432773706392401690385353819074151835084757830024960752078006659799120469944988333941832782288299733285991028060678823712431183916181886574922144021332334554282324503377271277458755756983388353753205673344886072082303716492230664119616921418044393573771361088817000860867216646205758748037716408136153265803342396824816461422844405557516057831201763129012608924918267771462725825024218093173976819580818966526788440928435656316939652711649378366211745153802496855827571875876303365463868425745262414891139017992171723521410814697278218374042069983401160510251893283180763030534297426404811922187441395852933868689573459595961726635664169756100251331499841619745585159730942001041264412318343387400383570577527161569584682270299506984729656036760927522287444439453671403765938043587606942118846682616120905567213232614826448570815826334267743247155843031113223413775470697034442352166591122662892944431415193652156063857219163162147727901411757522274179671619859046756466965660483166294691314364577718370944967920610769139746223461101901014963806033516069048391474683516930227117282050631109685387537528601772472109570107584298105076315884091949544410717363417656146674256314267214101746082174224285009173824421322969924921686772668851698372024263381755834044974118198881024207744515732281055967077584143585362774769338422864622710693471957831200070095610732070545876048544669272989345553933444661232024830976530977847188896702546717470336072738896519980122080364467567308834691768717941669244934998622025921949014949660675027249655992522706738020234628388890734276664652739143141635423164024017323970538041930715970306373883876444200362424956029777317479707639333853574962195161531811657201280929122131390011764014567682368557164871202063117729403931798402484138536353900770434541332575867978105518731437104662058288178037959967335933294020747157140375218251815042188397038128913217309365218840879309906312928379001640666770999549675934745267167351286998663391657957187625118937562700842586436384776745222151615523943307764745907373826433355851034265133662069562947017530839701901322567206568466659917683595348378376761331340167955099774363425875133040776869164819806145023005235987783075759912245843489612887799795929002425241223586778951948584649323660347646938205044099354732690417928724410412606306862639318990860032264256123547400335190725101462582770780385339658160474264331288005748222855778856710857412777068150987880474074312280160557522943157873677338882865556151289309870018590094080177947656891562639922277947045801782633203638614217780140608926866340451234433735436148072896874349032675384818851285179711183192586062830202002005321943313382427934763507080265784057942430323362438619160414715244344180916376571704455759352993646721531487138401227528219061535174935228505283633310737576516137132227558864855006458565898972975026023287236498842831443373947082955614764161214527707093842061282365781170652796849572101810319817896663017768473969580786877398782251670387991103483415976556035628103814112828121780315920982033739779659474943263007488389884109696430151032017497447783556269580873833833166614366946393356406242251650948898944113345819188821583643723790983629754011592100549188359699081722757546439587751199605039238139609041513498631160215611684757089769204009973053961073877439184714031772637430001007886957232437878589366335816866784523323133999040330865478143760462755278347783048152731375908810593615727806613932730521609409549140306559324636774799053098273271625847069162863194078786257774801667936918351590156947372286927512292007110844954121737096835351060041184930170881374885666853268828347583688146819062986463700637773023437302762250491871312347392167854057247224643149827968699292390884316135894951275368365507887117412113293698162298368093224076716587660496019959085847885544429681792731062082073910162999775635776399439199753561473323546547933326267527657050444113357434333902917451244216554569637107606107911627547070721505798265617571468234941589111108014813450244306985051447830640495616309920280081882393056048999740889049573168163805721770338331658669098419505965761524991713726641905783697766138694259779223357801587495707834488442336193430291646830872271121283925973524693484348674059010825758115062275150848268097758841360603643438803917338856164398997266943191291572469625518572456133423962704533310098374386853453688730217226387503695213449395197234245283917515280984722231605899477018720764291294002521186742052521656292167637387003654285925966272065740008266573149920619805588423614617718673678599877499792646812859277628114974191747400945284017283421698280138799225399032040016378608807171882933249368960710888275776968869322142527349530332136277766603480162611647577890439777276806434092053876916835258844417440468846919383878696203329948732431720001992583064235833210743809614309841012264408807468814560939834935972817693394219509756877645178382808660639669080310646941677880446957940288822366630095652500498014052685222713486940971416718641107628193466931230302213412087521863552993340764482730190545993670201666618778854940673280587733001467741727378757527139248174870874886922448956241672473579088788359720098104090493629422599958793241235197826242967844977711417296290404436899165348761181574873982869987186661244004221055479474498428145114560614915108557455674275284609226228878219339659203129473434367283800592943239943902386849636144613868530468173436593885788333615415273757696229707401606964409125757577785702601697626959749646637989030927720952459075249797953794641248917789435504612774148447565221890182405484277352895540487691688405680566661478562668091957589591147055255661751642740113694772690846670376134509973689788620194972080661820795356039186446233613165549690245537881073440444734842200668515440166508726644320472233055887896871413335126552153548098499114423816257078707079533295562510815750440447954761808961716792390954590844022803428180244019181275973966588619814542135283796152785037849878174865618500420454548150447383394324157655468986728828681063239344413901976535361986018498275774676211774713586492812628025708917211050666034738317448868250872866186482636183471309101583014999141892133886023490313866878086433963427881843907077414014037957122899702850361253171149179606022890386737533544562072933998123384917489018268490206610425712410386244228190714061544673376359367114257148909515816852504720860525493251599491155077221008457803613768216409461965510503891694569606578223524414992540185071557429416738398211649414313135679656291119294566370469666883204722035750683846023605033102705442102962618011965690090880615990777851257714779657598114901047993150779890890960299618419486711293340785227895773600363535310165397108714747200552044092009043713602751367227236668634072248808137253477239058436118783991152808712281016394315989558345072190966551031077997692958314467683071100375746756962091972258304241354440462874792241129650077885892887873646916410365822259256415971049194669610418172611309007232610740806132736447343460815093563657428265281340166875158090042330880705577792453614408259521053929935202309425446979016967963904092318923966618966957799168828709185585215590158851525354376085198165999858217847179697307524734689167805745418253701722802455760273491489454252818425410909534648602561293719261450214429516282537237742462285760744772718933537519521038312340900988466281807818909478314523201562897204785695325783489509433247461539366129568735185163033942455295676981092329048180560132101606737844675184994839052458789174006884332858255534793825506065945081725134050863136762305866860535377073650423430980342058129612204432258521839028185119728952040851258852552185343730303231637347250357308552088239676218009103759990222528382910948599307996504498832939663930939482895789050479949497889967655143515162475763455460389436225053202286658107090297819495092911150178103830199892568069163907657547136768446142160045499697593969828994721555610286405726868644563025264321827459565813670446949834402997060646941710690798307467465982820524028429349782889723387092497739074572425399001143460809807063237641945352661216296390556314922640954618436513282787633549115976912553606402316268371930142253434875784041757321550929408332996619262691933003967191733934295079503288429707300976831428021473485299619219525996054144064033839709755808984316802166664799630412790921183410621405574470132593066865642024201692093852362095470044313858056877258515955234613315821370989830474991342811754663867236383644873876171640762393672291631884211726204954367234575714283068456284437911963298425384507413929636017108819644523980119341917786372655963414291926822658713432057855550797919680103356150229471927717644186237836394349843696625869667438978029529860096295296410037082583476794338541695560725299865941464947960638120986280733166913355762493631547604728231811130687781169765434177086403349480689769317563257281272600777118239213544019250315792347649961390204884990158005288891326292293705418913204269350154837453418382687897124095768867609769960452168438516446472496764890686810729094675133754151639760024182247627210501251891456407755036259185038879165153234054017205439059722378067343546427200828455290456345652895437649249560157381266589659203096007127404067853985142692970442550795782855612509876359310941323187774476240659002765884982648679246218196287512426185612656937459449326768726602839069479077891998300226228200246510742233251267431686503563081578552939592259691691753739346685670690816218683407626074215024238618199262126109235610875569787070417787117828616254264292407859280352906621904634153320949259915968427820050213185625559797925353118982176367851349138960444415863843606433738094624187939264279663674656308733254319000488603247373481840131950766752288744399499926102700829934477085204250051381210643669778231587510486808167650071990767417080909783122362445069995308525982575088558547987138459979000825313051198074030052203003252372421394409456279315060535289073463241244668047347612996683092072923280546476073861150647361400448724164252337688259353373855575833668415081496974247908489523221545349703998869349115989746351898742519031661419021530526949344817971918518163571038454904527739201274605706675693647934064160375547663270414032905012999743779674519290722162253336076721762449942583897302794943575905871487134114240126630524478644504242005157136220100570826516370388297436584467169869056933335358038206468624688039728052686246429669316495261675252082247133738577635416848232285651328822193856650957819790934710349866580879925740207360343322647288551470598358972942489839689020457146269660182302950907396015217601828015589840897572342600120383851224095913314694932998410031148284997130267065859877168471018498708464189983734146860141109385791261032940073518365201518512192610181963702371007807782428745886170479561116124456713535381630255066348076622820785434972506558177140495483348989480867357572807140022338594469319366723809543240801723299482010496663450335194936915981323760896364061114676840907884769932001977558149248133485935122903862735916516685971395843094045715259052061876122046368981092909566566084752697860740062092225029729565857774769601214862567101837153391709572725965049407087279524686427941944818826997781099797862502625976166752240924242745885041352682929454368048254046123005761970775721382336168069347418505862468800995723626977665649732888238046266816661130194052871131629283102067414798741076064417085526752899416664494528678891304607533803080700717508977348323899486495169693816626141882706942009624708011529467895820541031433446836950670584992689450908795587975122177065888808100887796872929997906264535401621298894108713011726375538868642363314282305577502612597557299319846877894333736830354681924609443741099699636929670052008887839123646053841179362179202704866745842513003924291302607039261354071908254656722501588986641928497096640896015469653657875955626464458845240377172863134059766401473913694208006828626084108711692512673379311670297827376666889258676367662398830715907337552998145949043919303617812291875506486151492015936946440463801620286109583817052348736360921022338829102266775188348424110112032203451048579911819066597033158566154934925320526034823105936347850368978572286789729874863263221279133389684620230297947764231358308897781181099478781597783735080030171749370717496165019852450433420452880568391150841641665598210856169342549669293925193196748706570956974468313308247519388923516739319778782303107470970196635617187437897794723601747836392913114295373651634377978265089549867387508416091252047692292159125324268269792702910836020336299440912205996397182458142542423807323373980902058106479538510182033567093032406183179102911972335641314388933180060989816643655282537536886914158146535297130559770713323754764311990785791857978817223617272606977201149381649033756158943188131264477428411099020919645904285718764702294600505166757698946325548961687111788569919626907948917099044030480918846030248409313551240770342752770616391880531576767461105489475746725815448898825472243481075601473769265994690277086780041437012467866271863222702288190857370064639670631238688372841323508416179271905854285585788013544590088346068307361477847286042389220015551958495353230863606392257942596491864060375558538449490748380805756652328657872097012835856155158096951291911140589481656513598862976754084648959616118462222970214511949541840128706641067704205292274437958843969606273371518542021931299554442396723626948752246011181784085481026765223993412897144940576543834053617370106703135609636673772114758640305686869671550572807063105307801429059384781786434864812613610628094516935840376726711067148274560914173108419100773836472181535560579487799168969216277638592400889313405520886612815015077635842039099881535261680107143145080144124959126394413335548244677875811196950508473375824228728645391230441865827212058854719072958605453094861447886787701045890204085363629292656326817560935392344420995194131014282706000453121048256841990520732983475723191653360444987209135178447405035827975752405726616333487216888889467527243650673760096254340674045315092856892143320769150091692078564324094600170595974308361515779882233812244771946664175336111974098985389923741454453980053366816903142469099739097758431392339304900126579100774306823869810489868770528932745609474115325704251526689087726998354408509856953233022697297532108195157058658966178833014007573983340673084174516343851871578064877850499977087479912111401330687391300709471491553509273338725652544030476654236997484831185352813919710325121944729925852958935748818589878794163011366993484528140802279240655420257813795531577569747152097505493414071413871485053450681685042616400761647195229120388155888155615473344518353395689414155288561811619993808903990123443469655273499560971901985858353443677915507467139847349263113653345800424757832212397953706010421533573710695867565451819488491542202966219861349006621023378946279899440397742014298608871408198387335502832075575931593387265112109967536909834276663524560572162737305503577415413300652194319259021406154575979800725975711337689004279410401643565767921091469641422889071512608202827641582540700099758061931392301188964182983861603297061807286496282544577892341913845175488496579160989466838048601727591983755257064161239992766403954009162932126359822852905890380179410586090017148394796885975402205734412107695423096664191880316161274401818476571594324738414292970997417803747311367394050799643746002469706543731118548921881536506275390073246534822684380675629276159083869698549411562553735810661332385650101314285731302401978756682679975592630633571191420606106620532505949951827178361800137449618331254690505748301292122081346706195428947668173265037735715176693436609260801121771560005061913043529256841823958231686983969650765590953159815534095837697151744364136495895820367697864082412077335463110979864953787974735631540066738103181122532083566778270612364237417009503822810508066664816037461561927197156907465990685977375131729653541954662119608406472168111267738506851937892298635188157401166223555400746529910272751827650793446477933277611553202869378471872948100995784003468451998171222976985679863593533681799134717060701292652472137657997694815931043302219926090049409568313704246874426758589662843215675932283025745587841530095716887849895194535664835615491363664517410368523163010351045056389707148873860801190897679100227626005130910931298056990369287527732854408322084524044113149821597970909200346085602469511917605644701032402238763612494306120496185054861771751546958113182575542157870638985019381034850642351376973618210526424608150289023820023969264674538583389179987203074310280174036796778392476709065665261198007669843412416494507105033287256327483332817782029334451792030915372123517531571219725281009390070830813320998827746473650805611139088037330037555933463569841746353303524548790631491470356658458423859265056185047375865146853201284519119641641863556294681195132892404653395794149200626957378978705875181999178674538312166509453485907428869915771401501256091794248395811809663373514038817458059957014879526962563516781044180026156625380705831366222230851859507444642458644618911252191063863942672937618980318711946406428964058721112216155147441067639830275773029806195378453968355367971997613453547179392705844778040390567598657314587001305773378324389929238409021679398225742368480098455184021351165809986847636493067008931756567970369890976810468483366512101653208891332239997227113350501321077620842762580054998502109527649237172287671098937181921914305703987467163526615654444284604102523992231166638492275916012604750002806950828112892129477266001815255716092045131505974063014701731245804923706325889101989028875540529717900451784297582875245450400443248804253278017789224931847779870769052366213669055233831384349270311883599623606603465018863833086745465023850618065122945717869026427449131408616604022563347796632083066792738513913135686808414710090800187471856683750038911317489072601237071029637556998591329230474926133051150011536770731920997369806457316598412515352511182128164349102375298889285157753830401049891901541569152827167879763562303232568694559689407622689278523731408142246575712795143265896169173983988741413975939202300668378816810013191875037247875591489074514708007466323256714065090650814928051606792614335025519818563806475218045860392953973539855196683524520988578117506550414630799350058697752785820124807927842083480359760848453670990312746626778923329432331356123035848998224347424245862312392500325427577409342639445919060928611346870293618737073491229362120409084274155288194719919017258494417852128792145990419556713614619222153402623356825102666288003117027650211558132438759648984434206434119281281457212806573384536135055487015006511841333124137903638472061980934920201888830767984332504742524549084416054635345118905017722634962680601293714180993418171962316058793425022799971831578296865388558101386098499177736651770235575056027656120291282234022803698658633318689771740132601812881407464151557336276673438709647946299769626031953236188855499423928180083329139359783684399286512915696660378874528519140747666517572154061610675264954215196030782742183483332290837366510461373869642670225358841032503333203007404561958573973733364664295012452241228999929441774667426981165613272232542962124143434663665170472519056588681950026363826390687153335569069587520582359317450709915670843455679189637430764586205241943328073248038299894715492756022512767460880806931050375253150944957447758774517485032944052672490786622343825960563130576194857010249382814984605069741800419918698516680247451772350336803295807321298205845475147883838488882986979248766692201978220260735208171927530073708608997769556615890072019262519139163476849824187506486121834242519717886632573890844782480929998976425280132187830442370898144538996193529188726144053936052685911418594620938524318696367431546107138551984443749047278546426719455645703654306316412481083725908928588306761724121566140585882461435279542756434551772803581202231051233126745714477530303798816542152112260891370595501173158950010647239599658185118798515480682437997878642399254736794704654840827926875951970169114713094819565414915252490192312497523132202487858949819176386015736605064048208988397010051041796695812087964742072733656386390008880806761502896840300664053954205481453757153970418946256617343009723147835492219726622322016057748907422453087226478427439888164048827337062002923534784965102837617203407691306451380179715517437925995930167656078240117805012598827859546357731158223028195186530993358430803344119605008513697066344560511504277622930776063750246331477613060625889074373808062912482623753439793845516196125708878934383937497073368915490257819089226961131532759128894344029955086701415732210583423006987277015561257608866235767770316103666392089133918768295595586753815776928699776860771878015778861730769649896168519450998250017186663518530750761306977495496855036314060687553220223159475081769743092157836508607542071776713529441658738862054117159557926780218175954820845543832914733666496668976647873096494929092786855670998067660961217666174016047919017754537013677465114022021131395860398065199064204746671060523659308754885293684846955503650080895834110353996621021481628383448532598493494880452548249438791909181134672029690687519063148525778871524343563374440174350111351869955747641290852268559602135346730136097718359394105425339127782188628102420878037834994962456852069954252413600642128842551457661267523568766526926693880458812810106135756438885866358715185532543059654974656698758967714884090423529939584533177568566134183550248509281875735934761459163534430673295953819812903681734967481325456255425153809978436687457703791343739551172616798182091073519542545700164951164225676427669383012231071542008046588424846673719516300052612710785428353542810718709214777487910677607648425101469928849106558503193424739211196422522504892315321579228176387729309144527096728682040578769819135753625247173815504364096855728030830943243132234458327498612822576529107111375620401765649825748122382201601112100652054488543986889831761106667534612890879174333908283368008312951018828993488783636159468372597361054198540093247733802288150700903307597893384583006925784900991759006766215239238181335432433647296975977184183500136795339684995260495134628403879214772875204680030457773973092859954453664072746193042081226259244469588796702776643740160489258798316662091538936852435604545491257597909455533220057377223188338480190722758195116713462082127359880177539756203995158638126587317823566352883893627384126646821458421443655859459118320249850240120115756440113962418209393430394866803025986620351843099803554663413523348939758411461547089483631518215746194381373275569119382453859032798599362871207198028253809597059991250712008194972074887582867600695164702240672305197608507511695918933258734100388581401097229712320978020230437156587038167355728792296780881522277062669834361499720110766918483977557443077841584628320511155856552922682759313233590338949716328088583859820682657135937837447699322621856248722739001266863445909388111716376968507283501730884978147992230776742196515329783043582073472121465786132191275002045672917573364732460199269820401623532983404924423381883253809493945134822561032455158579510442815399707819435184064087118160878293334459374261972945808350770954580866846945178196759577142713537080983247771251406643204964217653737747469979362494800408895241466858109055527578335595257456473088441081836620999101894036698554829302303520461868959842705962672320649720584945452222263633417824040142004330574707503984516891670465057524478279828800965679246160207521829310052508893996226602448201434050552853753159378511248421687584975834526931099365097430391923285222963636784790867406964285486928872814899124623760775266030949518776050896410455905411303839393196187012224740970048556676320373202043612806259417266662488157293240307754731592125128651557786492917581427539646943117366511060638441221768853159930733854712987888066507578677338455310134899088346954552066257738297006504693155290116838632525343165296369164149110456996468600557491863919927146446006897960329060159078033392466222483845518787726912507496888602197627865499382881841298842603182472047351736834585145833735123922536056500161633948469045762187327987319603663190150055639579971760511505725721156641869509182372405127463890481813801921208932528575653672277173343351966118427738530100379516642551836222078025012789726950275070294731202488266866142178626065981453710169101523584431103118977107503100157629735847944756396787141737446156711831995214511515594296635009673148152207094895391298882305959236970637737317390321807783530172314546037046839356885223982415164126312342671677214547065385643393107462152664287046034259670783229189739835139137574740236586375181720688673675039274797333137675558280613487607033243317598848468210685358760166957035455133726299571600606076653125048032382922466221841297839955616186006203166520561264188162307765565293546112912421168861159257262017598053277717347021282072117569082041842521231406760815920542448545968440534520008163181523091203996377173789257608591437160289473471346720172889346250082002635025200529949681699859881691852592560054277585745678198687983631966510550941298119782893238562641854511919931895072329168759768851933195325605174709503047875176474019835208896627663313499721252698670957040179891519268819760523072396718272055396421960633177697122395736598095820159731349736380140880747554559472581836440104642552783152498336025903716809795085393307535325920679032955851693291612489726692146003388469001629645708273994095960720513653956720651606430961352811078030593539849119689604461665827575225024874461130815813485063433805376631353699859824592206024527640626184661581741814237341554022942329465669177161711737581363481400239139689831478774578066454749798095571119049101018936641830965534553259203563657101351278587865262647936407249200508319320794526472880053476948838231403374977539195138884493576718785605439292912100845964785812512060650702048162185285584865641627904108837013458969989110261148666444710628667237620684665424882572269324054011417808189508031935228329234599323353204377397423505223609217105557335260099558090277638808551463876491476044837602825469909522196154916587752516222435066161330542693354277147426865536732565979188976044339713702208361936341459931202873396963144482124321167744793091611006425935682937499482146651298498429530691232441174072450803968470947731767696869613665828291082293686420912873426927267164171413332916991714523813880943671456504693872871544081837950326737865454087905241777096228689316997091662236853300932196519999779856306080190252512874555173674862948853270087282046946085829859484113245254552060914481949945384812510948551569550799566080696637922323016787977285767511005049551627200988387266049941731367968732673882962184272215489882690509745890389823722912304349976451153399651435130592149053815340572234323021574720453369328743658941980846428190144124361544463228923818073054417255960155156364374601078983642983678697085734740553056238136147675315003197360586877768976853189776118126340490036461470362124086556132982287801405856938150351197727611924595805051002578880276284004044413913812501577435334022182234578932968010578756906841037332674501529365515289633051374397799378304940227320457614787900574981766499117946002805589475276752275158880904875468625422364246122997220267221438267194450120921058208904586183289589388519058193834957978355078479281187634170276226748302647306792274962914362734985961353235896081910319660238368821657666909610982775641972254210716741186160954813629811356800969022191150639793415727882826902731187894014816125245253289441444248781591691945372131942465301668082058665553815045545375123209809664780741774729779463295043922770100979973627700442371784820969080714556658397495462951731903155100511754515081396858078759512908964496643826284992711820592855808912659396450658706971524910282564408036278476968452337838187875475556871773566200123422604255861443760160581639165318500092293368306271698197739785802308461646166661549731848820777882690050544634851125085652904532547561515661885016165182893794024814271862297898338262099992480750302241345699660939877042139462943502915415407109858688379094064813580112727272495904580727040426058006489148150316599525777353553190897102214753171344979350179553474368599711803999485304128221709180078305714119883155663469373909817392912926808321228767574071915745654027923674622756764577082137861171012046014632062572167346916275280823902635583140654821144133302295064435333761978184485929358128218905115878804194499154669560041966078126946373879553498990357091689260226427813525423268490191680417603461007295792292042028454159814451896899999792297104251698202085230338163124769722327560245757063905061980132568336056955717239880227047011266474975790444188959686665442990959020697688576706650878950876037495810685289871570969783579088216190130995706452251828409287799105697280355826456814845370670994032033931805112402357820677391188181899448516506537418211575900493452056485951764125063251033453835971688851354658398206779266618319968251961966243634816445550413230463491502115202768228036045946651660493387453883183553829362971902366320051219450197744622003619019805826150765473597839862731557581459751601039148000584186876548065509481379570527827573083713284394905963237032998124506556914712349008899395505076751972024915659447385678187510442259716326151672814712870646585805427272843012326512999900787814963385553972372165217239036543202867987126995411969654345890045802220115979550487852180735966541975915595902066255269647478384933763780531931943398218585032254852605404854638695073903827252325438075136030823230241714390905178671837507363571532327328443188484447977499083289251861540266872735790373791038015807720155422046312493150023035059372596678322254214104396794952718418386153892921519796501894489678814085634556373813142406974364369418327977438661343747264011524540065992755745507926283177206572168482955874794480269806707106205598107784886872012940761025657626005321156733397587215322473447066035616130163209687045832289120505971500505543980464092704835212800576046893570088050677976474792353760813763111131513086077816280144043811733687587667446503965047968312129384188885316805579637112902751290421310106498075429795356072468085606883380914135185087438723102931690351609853205082635488519042981990191895706724359657450553651441288346818057988404383442268024441182461886499857694647460800877228620286931934074856764140930114045206888929624027255552367450062358835080467330204742139256867499038334470496023533462073147607922982631105876512900412417562258604925018058348728871107056759947484262537568163914105621770494089308443093554866518501534012377952189179054151392565723543765353785204288453315044450807041353309473473965075067120587866445524930143700363186617095950993652373359002277810428093738697638791553999202533434155499984321906405644353475728037815705092827083749972524829628758805690722890124084023271624242226583978726281647301130129757337857376856030361753502154633842744228884563903033514291354341825085770041472072139849284676312894747798986985738214425640840812388718502435903340452349578342908865517540508292729157007958706491074668373221632151621741739476386425135288027761459125123782407629020912860141076798511079084007833355741005218543142091869462674474218828075459227182820581217940569538963579088433410392944996589711970633198409127628158476825849468316071803882866595231590141985587434552157313484017338313711787864287135891928060676299176314990465155692644373425626270455771983536744745144165652619295755927555304372511043079562488235476261645919578810417065559728696533019622737990118402330603288929755348384468958623074282756485278398752985449974091980879968877975652246815796064808303201126152184571553097669688855480714641625072762172028655464094088883507511515993038565966262213201062781248251441904029496274042252007401351618020437479531494698202052391291271369418140902619715467529433815641215726647129523302676158941861824267282233510599025127824304673553971245191133931132390332527023395882560263388656846421734223568471269418087727467200926562798368805469959795577484524203263048236159942177194250012875236875973149741185041137959215351040681252789890376661658983975933411359821468016260779312011381448889207471376843971443656374748064162817718698353992828747652810246780637613092457218617613047756426560756541678628975314549405574311145241272398997390787542530121022307505901309543713791845890280736858674427041623613590787356519730718713507126927708011176427085820902084404684451318836536982326795199873183428749672031549794827261875087174135083073618239957373627223652240116601686254563570681514068699892628035761815743119494369146546649799516595877005092438981810882648996657965654728562620829094263394954465324813333103030737727295590173781183869012823417278579670745157059946640389797220665983860450427385260327815120833503573389763489683122744740702314165340041351125095819633125112660942196058975820734141502428363203746912487683994260846799641000323910250529600529752555833367321389857157132470939293336279937711681182113552407624618516176249393577644367028448363828368873210896010732365868907408966166915383506851618009278902936108561275123731944143861836388049493374455407782441236609964952626719948076658491407051243590882421489604786222262552810134494285607585120710213652129860634245840745434698358227519995464383009267080950303670512498499101195106131851254007791764659098230271199792343355410805328711263259297852155103277455431868836505528770115508266377483973880970699530316001330298612949971564952463437499873600426731235907029608820496895352477516951480939196517415551750866824858309761202580218620571098634076351457677971718857636925644137690516886125127427997424647177283284159563356850744048915072577485624290444376737972802581401555794892325631431592957797742629949423058949650007749197366470163528113696603215828291213205802443445255279432080735561585758344982249159675491721765741231118375659375897654931716834377684760616731393988775200496390331181155153513740603288671865868136140722891894778674273933360205253940175639366178516491884492022057771490355548642685138581610428046413670716265437105903567786596403765147908993287187735033050625946001181367258423531416068296419171634982605716102899047481588004136408659567775642943137541398511534822254029749335334939569566673351738476350150705716654910245758483194858609970004938581154209323795656618091236251133296709882723510967044442664616997765101732452471058687565549715020560664135051236944777941036586919132682494873474191877833892169565834814562128660396757825326167118969171116805597606869883787996106558949522736676077900964774398861940238903511175613532590497019830164979066426157460760843361191986660791931264453876700821493595858432746584525180603991679110016545791752072746566889434438205547881752900245231542715635141778583016429538926940438859883164924968915223222608700520092892478690203642906125737844387542208796642386152731686121402669052215470676099500444822938700806829475954993650650897695791640140383593367993373689768548826470019214652816329351883214833461427511297625594313530380740994474504774376466625880838183331786700560441691034984595633705423151027959333293963422455911586399793022377703100366100936758127878785201858501853175257230992980673826986463405234729702141638682223325037160212192474964573462846250797627384104590492971930820670809927230365247975073995288832654243602258743590659461983905933500727214094346155302253898738068381430050076184324770173108135465174721665330160983721562116615992012142721056461378201173234947144303571601497266179932220021727753659557432288717593320958016376825867813092521501736004534035064131888354535313387510910865622810549645288766206294865186654544476311320437493954831130390713293712431614618656230503081146913038531244264242462910054247512800730824586762290971021243555483320497069986333674083115074121986121834707352796538206253619383623493253092074670780160256093391162190216151316858318183530230289173411221527614199212899931079859651356169746478587891652391317649719172799947365316242348302756649904257113156498179884901410519656887654170126750740602677221404198749308716788870103340387550189525246322016320411360580446827911998736782113525998440812616990698037045235933011211344147092203424512269539035439338767355848123576955186144484340718316414228296735270309724194898995743319312421776500317913341660726147812111758042315092666328936313340355820557126605957579915915964362165899145066571576449521984792555568739100517039707295025172948512969722279185610377799296324510439137100484896160331575841946418665427152054119465454037441255763093126517345928936862178714681523499407927827333844239619866920230168286472992482614931491082318703278172718538185384627521316050571302031941816622400376460434301719902734022749339001052197131206998360615306431909615235836774048637218913504297492003213411886727440208997196899030272727518978885083691762703312093274312748369848433332115872160174439319842430274012570993774321329444224223841395606619108296665211520806996659418016797503679595624254646123641399196726032170948880556674291847657620724953456227971845418358685462436932825238342476515818363906652407531166075851775243439601424535783255263921829386243916700128162527729445013937823555213918536703099761381964585499274006287125726353521174185667636463053681628673043761065619944827373910502434307784836772409772667245281272696348697096437961872016174283619836458319144421663037791068871536673903208327596622669547087894167447118889611542826682861418027204855279210848276511556933630942024266694904194535374678951382269281068276821446765581330491929652356709518588873828627436307266492758109759868986141153376102227466944624818229721387144106658263046721799248994465780551566901810642944028004993010610357488375975571395955957368968063149482079891180162783585275467298235421377610142403618661402378842936496752797290169101935342402370677326796575266430157268730447001497872471139805955976851921903916457361760048151215958255176612618944310454675545277729939094165651820834006531515857222525809499723636191598164036834817987099099628892870555678946653086716665618657908689252064226062386489480051948770576576278175225535552882501300914680916592824589881975342795474869008674695286602965695313593183260268637168130128762657576119380098882806983771648632318286135986966832721686660715244847711330630579238213361739670824363615551723724495950771662018891308799493692688669592822198611914567503671315536202989090569040908522600934481258103406787313918026003181551446337985211658666232983577233753144931427573081918996653228514452447303412726989461966891356556554191929523491549143888751569000807858852228862989293071827805665835586277500720511031701209821601476879155940361116461735403829344868565938826424504534161651934174659787931605905381408298497770708008638878171224343356429032653719971322523769566558952684987125938811684392753083187931401124035428014123582799832344022593550020885988990286209157733869847446037864771494987499210874190362611999095605930420485086272051371245380419544687993844930388994801882727420044805736057558933625913926959097434064828623166647827700181094063936551917278753204281554675050363798861422025327902350284106416998891553240331798936470770222765434240930708455838344319858267524588493031549896185101755639884890070090079248471766324682623572250757875291060335655266734336672852847144527225315669178593620128027932124903616698129375074813548324097686445681569574677912943035152924103675467109570324296657780276644642092037205029776246898279965341716467536904599421907860200680867522083179725700638216749016151740081183632357325698234837604750558753474527844127939416274131787816360735829453049642662178420889502704981620678426033656921145276969669385816622484996177296503247638236958234358302415041169035719191798209578660648854900116421481407901133619247158875475770179142626792634590499257846618883590912492387641689857314732842209292414665099846526619300966965806834201453607313735707403695666207855609429985692054907137434406092494328007695244900699180880865454244365577161388020728569893230634630746561794036663205443654554955303426869810214026825101369257784533445736076107378437945536507135533360440416751968847490720561284484003332590101770253046963143805032382933919351544754469381606153345748913507974449828893953920999265644998249619065513420320286871639246926517598280098812410374404953858031479386852279105245959323281882920726374666803887771616945337085134628549382974592060519940202847525024580210817453490584848789409881892083904849586836162834435233034214579826368981548258540395928095968110025469757471178360466720805615951884861760471797896998018020834608751001182441738570482233787602444819094733407783164128898973495049106796136936370224674100750342790927636377448246258577300372538960805629117326679973682686313588746546779812719910712878665154423975533763782955888443452119086378124671704568512618018504605120477129174106202992860751376240311046065313451352902745189895933596940340364832022590056991885604339509343355024332692826991186135686253731304566079129691288196713528642751180139365187890708946481116763147380273482577652276747628905385073422878628093923830937856207206445354709713611113564805107282768397372748834690531916206889553872386614477626407718623732318093266347300841387718879554344644101257031490180354932087341512606797242910511868238698920979911442156809680403791938531757057351540598084182407754309493438104709229307076126966712034315319447535887403921185432269362729643308507546105139925171633791259206779427413831871655837472355169263077590440066770605664283334650860082306688352654663098979024357745953997700832156575777811097493690299052167500591456993086793738713443692506991250235538473854109758647863900857003054862547339628280611764427649163663429579040169580454870471673626406129886923937825081126181727865291056333943172454372091239327001764831624362670554363909436868880342156068959330017245494691202660914560897975782341940055283881371486222150135137470809178335602628818295653967000685522210098085779569095327725880194464853993038215311806056561659250478486246225820796253051143402848084852314803564160377146974993530868002683935602794504586011524158060413439629925352395504969489133033647146601867469580059713614972228311534076994168849377254963691065086169524292917080708991691210709264142650641568889731014495494295871563794931018087919080549756733121894721620476798245042624168218053000542755084159286282276403178137801259788240061900731945766803219153827726852208446704435776715255199320530211542191173378472610021174208143420206863085503338594959592104042082258877480155541167294977646735964054400369828044083868767736431909826833818003967942037681767073795736383795188387576322084150913109215734541533682496180627263854802933198600162983945014135369999441702017756825059126453546794846013963178294579947766393871061450572383829936668573112037561161648264826591899145582998446485412800209754597379650882642091437315578487433789573578575157239823714375975651339455099664076001605211577774132459254397389515966308642196329653182169655494879862698508363866867092544772474445025476455205414169621830182403758035538847396867270681561698606371989240102206912251193053270279314266058293005903719491571438630341086682094547257362120115533626146695910406034891381691443736510992041861046947611994894917502772483602325238663212922685292812312757106290038526129265839858689540574042757137537447926000654927621821106294592414126543379014865949399988213865792585690209798849558528136193236063587784629390431654897315060093317662583137113098243807632769938844322821122388950588051645439613453429060050474272477782506742513767154835805551171291907416210489277808670268616265142738790884272784858236048883150095955544994814082200571940115865489251874576778608049408269149152121711720910568081015461599533421644452808807092681770646258976963937776248747372818844347381416692499496182610061403845798533246035664233451492468524940225399556292314592830281534985975507651455060275813962910771988704627658024289942289030405811215652262070568785003032294014221909460767387049531838156792161912285259304635926994449436256841068054159258618167993070428536083079899045837272957998411966997582842107749012769232444591979967540775623199575620140395840218542687231288458403171145957169181368548337746318270877338732775604789498447185743117353322232056314756357248454140745772428998361475029007014388423441987528220959618966385445280797397031971570908988422209099783947727447084846668665743058425062136148359538436494572156529103777873540543587720084168002928708644661334692787912851338423494424611694224366842481416881858586323982765364571802822035747038107714571797185341666500511944273618311953001775115352482511191928812092525426097301429407904422098782607717074578202251959365846871585970838848660481769672475914527834438423039871651761411519388380878301708379263693770400146786826077092298845042865902113319615435094535159087952915395614371078688695418987926896311945833314324436347140657927266067615657963787732099694943283428317036704433736216083227001318388293046239798893058635568031026564614113364401378485606827203944309210068488839230828131652902965463367116536218949376161482351535168563508161599080546032643524757892036657985949988922887403866512808391273525811768204478726923145863823274733021400993412732735599008684462468698667778669918945357580299883816698197081329550822237244809612919253945284111554711267537705968311185856999186308794120643543592010151830998451635624212123782589383879591433565869648621196887177879452295259775100461777841099660440745703568053925750354826650871885604556879213137121919518762419766094126162098276412002536085485199837528638148886032694893204930800110637395344041523559171715215823408431211578290550273967704544324800694707259588507483223451854584223202424510983001922727289288583978121200239425005809021568363355431236219586921454612698834549878412538587291812592481981483428271571505405310375246149225818605328134745264746286376050781695857593485006840842467179286512122399280991550058024703542819258500480224925607687405383343805764899812852556273459756992403254583029982330175357171936045353349604757530268747075059540824133530474573874043186675189240193181889577782868100303270590627048411894079769463004918733330111360185444943105614071488883516116175625500978331899777057196701143958954566977451914584034787751491119141093821103043879405567802764984423778976535000931340853498027769265999899773801310779065878718696675440213456621514992859682742365267034198533493210416052689328718493623702291182882745140381530530478606116467778570723245114995088788656668116223852618710069890214076789170579552736581706956688876104323851301741195182204460853518527685945295014907275919062038618986097120425971992810603616452316290806028383293506956456942093823628669114400116664020752357084542288114201436124450870983538891760951596329771216425808963533945241774163026156853554675793453218182097398635471666502629273797003839155699812373812484169315560812559518573937653375251685279460146907155579112895038643187643680481241594475659457850519372442082033123021900032804200558966510623140835145452306580953971298944432727820095598075046985264065852725026323721197093146431442767045242968979566948951358904930232526345958498295294663319769842832836337495714385800791230426134498184359220640534370430874624452869132779445801859664256785212005259163140390316337092807007791483390708581971869073308599787584830584243961453347261711667688571360892133340259926124518602679876408290235292099253422989601595476496165035561905905270472361411615217973175939207665140635104098520006674001981159788632561541550380961850734362255985836801682645732680835968164330091247801379054194414713861562684394002246117694476869155446890641151150639282696116513347096008205074431605132690631057144408758026794640005509487372429389605119392430047447904330808766203897566392205402103264368352027074845418514731721698297901811431261827657888578506860134764234786462325658376932757794209084729557039075689562418758649797938940225660916449654333978090453890550481429654827334624962272902806051521446801087075132151333100967829276017223889541993850822890087608584533148255350210844626772933897221450211072577788091640681899394437597318907411086182804732116992619215067549163124855780160417038279173224115524447682633041312899242451926957844514513341324816775128407181587129097991565204033689889350497120697235756832582643880766836839292518821482653384717807258514610840832761276824346195485993400794747660038518328315304358730727803944375033528080945981509815329580230608196778263466158002125109566010814625861665061411629184597031804623339548403452209324478378370746512256189347467693483987075564912488076017426113154241786101480494259761278421674572115445776201188292172625724238921265741910664974426701109301282257803892511987557279397272399000635606073209334839419239216514622110961684933567619752893764973080021596994286496816568435870027210883220651008597626017843446269519890784982109168695169425039969084199064810752655820049509891328576334285983599366820630598065894480876199166661939449114449616901806619027204123374746357656735664631955590286553654223298908037486274931837178000256315912305889861783061333292576411895886840536829024922707831631365903718373299499498647294122002639669226855510923553126751667345121768058019030305248562662726949806245904133742576801715565902953741438527620731902802849299825137147775318285518909554875155612931565893659395606849920515319179411654607286982379231033775689779778890295528619014752211428206385383327537652896771728311609762394773254747269470839995892272150694240908150469159486539533790014742248632460896480688488553157712423789009089143318131663280976472852337252727054694020067093414682078780665481025501702791565950091190039284958888227735966581866873528793338748289786169778767120365303694926783877738100916958723440324384264434431807217285074599755466484342592470766487339111825740075133374217261823488242527325818954271142908420671627734769934417772769914019599450010542721317269691128230004526043751866292598534242750550202752621413130912330809593561850800467654997580923400441102077392741911989127331428151714102598268930348631370431697252864092762026557507413491786825389047282247998614446873516525008724040546249278114940736249461876177633347649090066581752970772085310659914693023429569865860331782266592090418354048552000443916752456871111879567209631985534805157022749930892641702139775523927568698126457556797635816573221247086502540355239021144573808511363440578125041642466196032035188711993265083509975626049187960103468249674219878162995063671171790986742709220478206538013552132286344126305311883312405654133728547007288859932515916884874701228972977223224494612141575304171797437529260990069438975647334783547061223313636839484431850479263003540045053791401343949398633355091646114332881379844296559560130025992283027850024948014559016951478753425879312142858111482507341545337008178787523564587464657886043229459436502374508057655010202162973233905065702107643294883323259241437316930599262488241298104614320557953921653466351650312986765136600111895078176611486822663385622335105243463505170475469722941406441160309749564569361822167154831755184231045248819881657796533962453026851815944939047215208125924158913968205375463125384616635071282561877425340410564312327059816964041315697676053171745402684408231395959453568783541669071645995508791465806888727003275000749459150139923710068365984761808593275186749087830509807929745098842582876335470652503319803014035341025134346152909401107639620439551797781104793471588526944385249646361039353692620929347674177461856641954653528275309678383263267036738501329055477528102349146225803063640779602696222642320131089903900160800188835008791550998837966319160633056120112090199832179810142627197919023661473478121104143817375526499743032687916694011695284297193189858738384111989658928011237285946258365825063386313159796454052693757181446919684720773464080197500973023089545416131777760788909787653261364153553757192469841706848036915925228244942176514336098337588357673773023915234161844335377005221030010864389689487175239732199114531746665721211693972388996837400796440596779678993423236392611607846312399543923970388798955146589487432930220050734508576988969165123445697969440829432828811432162252449410628408434578618049684301086882809372493512409842749552783882524459473403825784334880041679904269967234496646995653060777074429963372319165841786938008938966314348285295822494577158613372649279114086900003051386558003433557701382047086805518330229439800721692115141757949583969970655260587646392429711635716582106893650422452569707729258173818484323466837804972367717461278354852961747015249084558931440892267755574696427927735797984453889773908358134144268535484487723120716082598379274869149983431280637361430566556924710136325766565750787650379086868796496270326941658395159172872652595965446883496567093546492110839387206874853823315818027792631157288816170839898809589032599952162270427973080739440904520202769295671379870539855698000893317224330821792032018291311998446948539861670709227438146718597701564118792317482705715394120219205333284755917475908299187955675156424843468180805096823869139235500807042949484147526695204954410454365028390003186330232210892439066535817261939551433143970433767512964638682610837980116119311888142758759763915280401708725920869246861098504439988301307824567213831077273737283189384845219700218712584192966888251147128882558911098813678597643006683130270018885992469847227772311734494675732662416962073897352249109745434166671549382906281605833906971955137451478909902084431557300535529384069331222080991980057651240155104238224067871788161213349778226622722714978960300727390048388376194783245710285432878562894145921032081502399120517285965906025302930284519213115026928846228266482562618716581619902259265894374738662912571193452297760102020223975887708631470590529762081344940248880543572383132484368714828981704157239630880586941327914054172543513871796231461510481471937875359977854025321381899465519252901506441928185887390073410368020875324036536918268258257961152810252839305635805858996579988078497811003545988216195732744989520874814265055685649568206233253258313365674640620391523004517997329419463412467351547707557385148065242673936757056015780719395909588944887405705023457212715721913013338598629302085500780655079307823034372983984823916078628198909644462363219479005490517568207992843006886269599307314609457453022406858562156956843492975993851705292423006805420109847780641091549499824216056422476893071506323411787613748967192890324879410941794438764197447093297232930563196113795282215462614737579146415407733215658790125129843262567427372263058921531683390060980417063125384153787045416076220585112840810245391602749917810580044963802485387598105903642875114990784334395321620722655479549130965613427511173131622377898807859079389225602833753159688425870218932139893811345507124078978391455839396846432708679351343261254599434628464983051525612832649376033590512908008516800700586466439612682689222814651837003874356386610755164482119717173622307285990962119906972211811626258784890115601703114223651462606138399222968563582208978062650535317171986981333505266610054137195262158315095878208554946522172622992526013006093270087012479796884018446134076662941275848388913227169113952222238743960886088654425638203789710182494425974844677362425108433819714931202576005857208333314236807004134797169015762570360344214333794779399442946575318115340301123350391763857606996992695150902501352778696862640993316070246292058335080591127542601701722948076424042002582326637744249210346611887898084352395879046021331230135394772081946091665755915801212035177733357357598589123260073722196908137661434001214831887910689388526040835378453656120467941135827366503422094338374474683541167005555227543300048044399814571794119774622585456288927429895328056075914158246538817538226329421095824859694951388200551627074912848406469184960592457470022382609239213397798283631184108519003856994274827719078101909774317978370615914404843275324315085815963638396105040396093430568875850495235012464883905023965108165135936785428287501939808174977509383394504701470456905056741666928512837413167346326960040232187198665314615951065108309526748513523765131127567273764908203714389643012807853728534635803245601866968523148653803356981705134463113380500105968591442714559083772274090197267422647131814753620909059097532800980798584206489209535129663197556322994357187548587316209585389457595898936598733894826136994313819351656177662549589305191599484796889088566204307419127815647738480494252892402178438140388286306198267025806421783713755374370632461902322689801959312943301077007600876720313043641732363222093047830655659273943832580391169726837826751444370780336362897295443417052090908346463741464750607475304300782460212811132995834310789182572703852939113198526752612949180652583325890573564208983548183025540590472372449054574370353728086239767117042978343487677280325427676714906542615227778767921863692526131254096496950862023371105154093754125157130378794449312671191824677666154034318031699722217565503601660342671707082979716575823271733433027717110105908230691269071225102867878208142133793633220308048878428604530916750343783394499548595210332553418168126320251718214494323139663233032361510610637326203499644009663193112310806954197015906464714892257957963347710896542695037240284968336225417429690477268439824679767963382717956847263100507587672179844274877386383947919605136947256298806007645644511546389484697635742078534872666402350911106291126764091262576764188384806700011737492391040131101828493141509290460234199577070265592885843178221980899715413624394724019219012266533397224945043488759163980079846690752685297933404229576841420306812941614244707601797713148170960744303133983921401878131918454807620404430966246575599217590111713248734144753654162642983207698849868734563212827804608729475824530847346133370941022469929966098587581093596280374181788520712781892514172151146289344479764682199747702643567345239872784983428054143977551083983493461408600781289134210442313836784317836944264192661636869299729424538420371867789274177081224934547105299146522553284363920168668866180827227978976846283233875586332004962007552298014575361789634242467248906763842228101068783115447529769280120935054442353871240382406061536433756806192847796713510274233199891831318514239785211855912678326242908365540966147230447252474959199640337442849561575321418581335094119367669697849714674803723171267016283272606056711548797898490936424270721490585462513216724577853351319434419891863739721255313427019322478326196639839853208699495782412144821612372980873672611990009140747529238281285170382799083924104345783423455781389018733776029500961212656387416678923739107328084997175847629563570806516469897059782048759470100278260182222487574270495756834759185794949038765422043246038043073187257851361417867171962895736183080986350003426602227294073979833868578885688796572489698025587643392568674084202615921065371326658342206552532628373956658565302120867158714270000225822110902215670993426871594658377848257672490273286473352742352497820925677622367046621670899511880659918460608278936559674632799997574085953821640579917895202858711945431067561929202571348707532902247107821878056432764084896348258929943086674143446388167513456906932592172203123393192513877590395840406638148300469563478530694170354894694498851854517053203775786567861024547283387942589230214005138057599007467375006697610255482218027465095358191511370462298520215247789382093463748821375636833978599416651328499588445037803201993807244823602465797690671381326392226639844970671106011331978914234210493954545452175993490052339987986312824905906516846888061112048639837851644025277836599267133675643656406433658749721078719354317952056897377235043370150514446833531838868738227559460752525559742410036106850350560126351202225948801742073058380574869834927096290027096964097803216228529041948706380558400225545778374658967102807908983889269027211296053281334177224951614042502757941681680249178503310395998804801605420566072280120987157920218385891202068193939685388272273847736719229800143658689063913694604294555582374620825577365695336374289010039928846807768023449805520183639444336344768790292269888018531613230621020535389597803476758563570530066518183998478834905340261976968863316839643888420371936461164735015274118462293591902933495061632579360471008138872643970608961986127299480779690346748333692862098863604608560887687112119485234094573864209755827352402716082271048561236224909097640253718210268514242362707848515139851621721319727801898483454475431766240297040764625707484843182405915400360506085177365666730196518973836076019136631075275081197799622289048139435136540797544594969876765980929167078015870077883841037813403990362435146611406091267174990754264124056861683098413075467561519959704670607047770463708689640369533826568705138509645362906068077746097217866887755714602797418164036990436439616481754319478439785140866249182407883085765303552666489441856331429261522311961225651157569370028943039104599379000270621793500256113633827982758866407167508628919960049764680399183859401417886484791895749554425476037008532024967672889855835156679829920363627845158184494926972361926664618031225191826948820029080299974262461109740873604652199460192130957407164800970491033936394403640262077744283921868517087591727533836483491324411345098047213245839111970770388940284919252239768939473522908124203582957330260471728637075274942158743496532286277566003503394311168360113507159057049654040450014109171504884193835833055892839202622349302493210943001988984615283477362548175279282955966169017166008760765556406997980341961435673580521712769395874842871684366091151176400844198589120376791651959280529356868923452013913284446647802668986257892095318416536117065003879011736889000791311770851489609266679896927736258195508871257786763706530816511305108937240346422399578259187490281984658845098402759256126095101679191649257547281085860589155066704840974058423495051508900623322395965494446697969176811044506173564987965872280630512451775746872291371848389895510767290593313364662930568844495614084172399433142794460422138708253746148606724885877095234797343879883812855411719049785494981425405440180756788124537134327511003584730033864414424424431778947813147134022004885193015247517371260058228511512168204238153747387469195354434877767381131628162500310629890288990574880399907839896618209236298114971625932016615865911998803907032465519129684793286437883017182823048985201234338144861246938600806912507313432925097266314077088968943957354669170387470843418780093205247446775001069611365844718494766569864854259524124021021868692453730514901440200631745075197465993560164621081648863181698803762140072734729412756975008123409570917915302517407991717402325282548717410916833780392443406878168298011348719249489845313517256069066257200488681526671941789276382937638767621800634450521536909470197482732777918585426408159733201936173210475665357285709274023346260502970923244885575700698372040431600595011347252112326277570439843788526101066237254555652072222502172408672228967719087891339129927835575528849042684666539410058518119346427692671059265497932641785449083640339707501128490298177846135050538377025086713374127186140352739324535681767642844831980189309506794004412640303311425550720967290685570358277162564157820077924951605116648968393762540102031674440022628157500565342284962467716442833427404989964814261017845521722608990615257619601674079814957539106896742767886634084368475900437383289897069234924082973317299027191320790056565516962966090799730174571599545126365437496246999109777533604678778475993711588558735995715845292286168509180317080398931566894750469275995937100727447757608305369023622272864723942840059469310221284819274608848369982236942053249360228285708872095075447768192385956620054933977901417476055962038518833600266461934970967239795614869241365134868787824756724629979427961845272677512867616675215875693748044627136809617083654820931466909826204224132511678674010939246811214024237430378173667638844477459287887574654530611382973397132853454266746408308263091697950358036714355942434721772122078289359010339717116809828727706437053368838983372490563029662082152980467619117778492298628401304258401855199035066406838577735773081667582121856003881171160949989906903272199886214302653426030414165121973385975353065444691006184959612541162905935988965591557997765984253838989906180890899495089712678247047383754833904136240800904041458575681010178859562977540608856984883350805778736452896120454807521676787304565771680610605544151204547711772269247856184107780676562032425759019638486835560290585717161500147533314473895514371005684216879956931035861371508807770491652776275575597978903680400088870469414437916718955413286561744771143462535048148535416100830105123283700027556960534486622458914516369916359437565342669864922887658657433595707790656465937793923361118830284092125119289331704647424965266179341455578012499728553371693840966067810846256974695123845858264227083249198044235488870853403801357645265794034758719503639179527589297386681040111984371782537043752512844428150341519058671660219475035576843414720061670038520231938353727073725144135117465870341829492268246667550570170769976793982158869096741668843291656307125730020676726644897949759387541071841621204476785433168203268941703165225208066156798960983288759666916349915285720001637471926458379877879532087707734415195327284738968545797823880720306885448840982016246347316976901926436818953918369866642569507948166007343297947792108242407056855188023630140156579204548783655534547410045652857218620348177181333266326807275484148466307367357195936805739471045146975036191280577729939322756037533490078822020584299195630298597008705419336688083781078923626075772424880094951761819348676955832486507737317044160077744313335141439243989855866835843993650244307368647505792879449612507472512990720555197463172218674642635234144245198106817173524015158283945292950568392088710394008183818840158255191249459195436242727321245471322000436487374619031048602794783912245743242773955964894642176714709820280587900319167273248869090549985157499444376527716531488127713555660479631880455762165311774276231451319743635013291108962038953554231926488257139676951444384582097581701241790719350345306214202370722630294735807565875265359615467999594366401711669534467389558144617289945988316511967214396315776073193876576290420574868678281332674833940073781537368164072613987671169464741781621282999945257517834881366641870270807652104477382402734898383640044191628181167493777546887655190091500227345439968378440036114172733997658826996595935958880568895958019901123481435402278918155395745034366736930784495978376940511527559514662268150545677733684539841139264175493585547269847003927638234352935418962543760687431897695079825222206294628646587218259455564861404057660664545100206455553010437600248642871325888363933347044074164149780482918965308841269499058075558627697776609477263409002330927381052778551990456172999492195827956718786221255650785480844303633504681468530882650381301693604005010058438957585270558766402922128011583682348557748615841591406506753118301155480385127308448409057251445885383926345101206896348200151066277114249815207132150970125523049090483657212810734441148215998768669941925945150413483174453261082584274216265513524109044097388161899140141821135668294965278107330625854782094468940534014618114353053282917637021418483032123148248899127946159747082015760784876008249231650764161395912351482078115071252289023959480598710715047864677123219489068395191433587765299019298622574467251757657639600205224714153334729299591974127998598176829992314278457560636691857996603391457082197058009991816047122017599052845671157869764364529373805976642023591854614978425782310552959503225543776895940976408098990809151392857828140552074502514850674199616399138237934776546269403035706952393972814906016394997159044111061394863620009696247390617824137856406523225857916381213712693744969477434516801122384675727434491832916796773776448707385858145210800856108977068561424010128872712962966229305981054860268381862666323256624120076930178872741306511448428754636425490557016506719249099502846387320032454366483349356250409577154766995621481186560280860764165048709041987779462910955842555658774731086006660620130816901254244993716443771082867589036769180379940988053308503150904550473641942497024193904092553465636912844874440306077024211661981901877574414688458361364802057828578926872202335666623849719278734079953555247588378081117832487606776319728095820075114587171573536485283516966749893775480318273112481228279995013808419739746828705210867913664631652786716583087876856388010377011243665131406011926508863820214504068277059342527626190973228651972318732324040143904478685845141081349522095082886593519279725793905041167158754227894259122337484287094098655110767712807887847897279763994201943333359756724096260825558940817331187464783871818067263630275253742290321782145028805577393042603558018390062388538249392885938834842517791915033869947463762775744055675021196623111064879026315783522174158913150874504104237634661287589653064470522264565808236478766259979177022195738052420601644715342356973599294973131610201910756682875206790835716974675800672949464305076017097393417775654713324229001138203899069503695116941606791228076407478123737502189695188013430565718976961750707409342088375859839841569117211586539747235786450307950158112415452587285970237355930215965897089982180166833304272984799374889085390323863083601652297043952417946923703768466910339916554539009986361942659137005285947229270956207718488310061046486691649328078028966721894610414979830886948800054806608480645212287646519112436196618102225532854513660530958031495149275351997566112690324273109635201463821290816958136414755970926967616669784042030139593977579093016373781088739118579595962915592784688117032591032395646712412549078748964634275824443231033188195889966606113596074706406244921425238191670041595758060441829476033013178762880255206341126630123854445219253828501091768185425826762097624253956408092752473249208320162082756425923469730594526484364757302023160722963377026681698665443074857553454056376218913417983704137585886768459918907160387889839266937202644146700189013058590491953154134458459765346317044968977275406399224259635471076006120917580462355702975968510406094930059838168920167912385855323994690777565961645504297218267151117477123647191378869718802622535683986024744837980295857205215828417784719461979072176377725178168004694422577003018461611256103845068053462226610910452580622841868846801257589707268741437414621562821199933483539229699060058448783543385689218842344303266749108020387352558981859751720379150342864759897061659492007912958170934076428865510235882693561854349464632080938087533952101115431309096642883629029228323027604625985663277892606625041728416821482148778203528544312497033310151319500104615117848093536379886128027294537655187244417255102585442966362777933219018597664621051221258948784176978021575549976650906643968283978544164446982061771475022540497589281404010501601590194297319566321978630478367790053234638029870090642060898198712580570629803833440271748077082117534629994944300886651832375823762755765390498249478331581081912549031648469508374309040052702962991323766902825690804962546629011917559946258243016618714036442828353673115714785174811150890357164919496136597203288138922870388285563929365128862688575259881580471243580584622152328503492642027097343849378380038042622640121839408331152547325978154417473262222654783766391742019664081371254587572043392608708389636258837059650595996316188127880541728265423875308272032672216546493560665746844335680442378589223340871484643117969575713674247546223958636601521831744855008694564192197665404258341148966615484027810891715150491630370443372290058620996534393576708159367278726772586070971075467559006165967186112981329036286886162147530875222355005053945154203116656264172903536327452134835773882825095423595711913350632537215795323990291385986092274802808340074180715427133141993814555918501564999195311409153575811448157306596152397882305422435721911603674877270014315265639617349531360335740013236142673206363111275909756679871387381962946863497946224415970479109076385360776332793252661922092949616046089586737862757763884596067541770692943572475485275226713655420399690326932470357253916575498657501680014414240848164681561070851518912842952409490493824757645378248490822159808385193403275951159409242857092840763336174733591950432739689043114495880721986997328347549467516164423865938356730682407344559997095089687590136890698912709241999575059359613265773060227608652526209646656700083323064075962013754332073976318931715336872661126664585650878454866222285448997886080112108082290133889982086225637624918677017024865527590178695374245868615645921536308716861887768080339042084595634261923855866505074468587559125445483403845180624673715672394881248862350360819010031907345516588062211279062931160189297320229634178525364481836789511220345702118916103007557476942486914927019837914641155125402625448262314858443632118911622984551653431724188270862849734134315672696887476805160968668064377706545615222672341254579052653624226348279555677293842387607949877065827281576565220995365799249861159618426222378104714556213525985754562748769693443975381285661092188922733113620712249397932955628475404024791239389430604463776335570918570201342414809961646680122636123867639342500508372149234832752779284126258457009204662409466325968327754561844916555121496631502042169505249360602246277590361192989189135064599414880570585352564806407689866605256154390047902482203510458022686979234777902464432967542953934564802148624669088337507047931177028387081762291448666091717571380677264993902464823974202369595214371380299196731541279209212123252351637865090696306091960364344067366575653421354905922708671946148640224535635688080652506379952214452515869308718025316797609971310644040056961175028445232819991455528000566313480683958603804713662790469296874068883317307958599168176467777987824564800226390894705933170179478021519200159124048482514361348557299100097989034253762153415712422767823502920155282264267580395415086672957683243617721128334588751229545337274872827544165007840581506921849025804243474380836340122718054784323119469194299464938013178395333998762660871046142090840898740506930464159210316172394091773349327241839937896636585686309152873099041507686926717855213968087004886644178282200591866080508608386238954394974336659712084050170913252074731680338784668668940079845552287229022296916123011384841188347810787690189176890427727062323743832057109483953916974745781689606248948480441517520158581271166055616021870682685715891051687414687401016888753722640819135409070561854350402010962635010301833839924763021061202630101767777036691250303429864293061158162342271010526344057856013267254802265856385963146972934735004658749305525734401069271770569534656188830274802832986153278701736138817046337577204941741816852111041930509782802522701594859444890132425900992837330379173912935819360248407184433498060675590372509083274640422547613733660340041719169975257377565036210183696480284543052683603749192535765181292260581539173491754578407974913064679163729546010519888680836520702633025037731057776092609537674618283791689047884329835489862288372257541414014738157325011581143323064120665047161579538505364716221448569495297101425262614392673848391570425777329659948609914976014003625280546006120294449843319042932767582762450773331018337900849393641274008658661897947769134149780925441654742549024900018749542147253814229804811656348048785647991238354450967816561810099149313308645418166504642544212045814954827059076490911009061843173376610438275191766083178020651301035188817802369523634310355523410785978859716773550098345171265619365595561022756503814803303955277995901103869383307056344663292691401079324566563168821651019069055274983667574271527733038558733529243939893407797768599843841123911685071224853896689955622058127402146118679972995452903596630153914978363734808812798732697648280386836273457219033924912835785238360452978375706631330456447995170158749388597890881541256490261307500471847980725560747353107494565689732252724583620377403914062926324923865023299046289117962193814711736626591060900610318040157411379149927059848446531459301696964417051298859218236590206227324693254363046529122964828274722718456748172485877795438790388538275351160800409945048890880963493515626120528786965519341376527871693628755217255386535656699988346741961523502407689837327245375101993466019193784357393636713479254232195587933227109804922100071084180848675632727605326176796626913663201707971780516302527040909199486240985284298036774923413778401759735979648297794652905115878332267035339760352701634176767479267063336902768741292005302389795853587080810108604031214298673188692363858181891965022480020547927380595013269194614341109896817562905588360154823905242364819307755759862014778469070396325714161586680523897828226295217341900732497604945920764266321145113521676355780854680205776609426999127094189351143854149926688861734402285374232119543873014704788701288236048373915577755762292806376500916502200552594642363601498594171147840600974686554846364577304096408775416636001423383945213098018962132229126567500224594238870724132425383996279272746671220922952058504368039759972724080303353954905080526336551222085711984308643548552166835580656919057211457991495237637545442534158079617207580229284272578811239096687901768444441288549993401420310527569654806025233846126807722085849918057045310239501802997703993767924602946495466766098323620127590515058675090255371273732502097895074984111292095802704827051370754845558154857350213236134363298917431607953351481914716875117299484964285451072003709079269897357827601113743748364867685990535960644260559948220294535998750381429068338801948354787257297521128501745618394108522395305576720790018143653149049337004837830694553038188760560298477839620318356117799741111350489602654286751793267096642589944041780723203582993053916176511292656741832522380956990605656304005244205968280419808823690007474623426905800108482075954587098649035904158016369789678201881246566244577838966589455869944099463208384305264210905291712817132148829224161368489744525834582638458673154562675480583575002682803632196854231621975601358654917068650089647425605584136087038661778284462902462517097494805919241648185316852774117852048974409219376877022553391431304955874695014589575429330511708712035212637371676828849645965374262754025033961225129916863901703267886088961640160836695689174580672973627259785001243018006897421396713764631701026783153992797756938016050623378845259568359280406372014509627816466180118704757227569561128508165689471522239595396996999824760989716254549057197127422382613250100610538749059382775210082129290739350520045258755891596391879299995928878335467346298554926707929338550052480223902028915796689155584800532415219723841323213201380552552726004857533808585606846798532626486313907531878611173848969517157802835712698385458755467195170933880671618318542480374838506623419642290674528006312482299114997279779355161053870875202143788777913535902323189606619490145880374422929275643343399294895050134897640714133628672568716173156157524472097406592829408423756734847127815411950633486156801034323828599131197151891388838501968432055772730790607460122923007648577836434554627849883189748295685724122906787001702063233597812662233802851771408857096169454584738268372771212702262681949703472563328304487360318828467858103816905724458346715212931526371767497761989213850029026076194774605352300661857755107623012419972816790711632984559844223661438273132705616858038490943920226125266904889682196932752764494047133844344650742216876602228501898553837768392075860507566313933695401275774729806476121425347801595737593672633024314584081189728069181994876972023413935312082313502119656992656369797098842150287201644025715212090499384045331732424339891708799068889595087658509372199154736063249642652696447451549469376570086602926816058973565799726582976393414213263729232594079960252398460139629312218385450738109229858039545434305073304193865910108377217678761574474057629862530286727502714425455238171467803927938003697122395921668883933723516835986586875270033624970341880952461817681668178794688108940511191625736873946387210278912217169798178386907816005657347993622559693775870515862713910121731049196311499629129132973309430613572080094956133984749915685926327566310901745799562215553137233065083916582772010183788647416742871937279571351358871848379699317767044126259937539118274660024351437909660354271537847566639621277328564067091761230158895506859749341218016823390732645055213504636584014743201525262169955010672533595839623956137031925448916069561330886671018170947633706209440755644337417525614013235521157215756327912956755487757112575689724818862302870902055097674978854388971198944669891082750533202565027150836752607419436778744287783953338630643717650633409668374831132070262380976073765813903283481206872036594730663193318997429908187158276118497248726746670267353338386078187595938382690905694774546656063287062330477545948803428764105965423830792407298746720173436312272295430323384964776695608944353558574503126819717522940488191915982434246890946267400593327361171083300741716032226744852001711895788145363506085230121418550039074608313600651572741043055961632346603197963049985168481568751671107496428768284964877639396612844963733472505281434509961880948351396289260007874374356738250608766400359709027050176298388312009525988767991627849304118623010105581873725723495610839383334864329711165291886739727699669911007129388746396244989041386000133191758980294817215627344322203033218586658520973384952514372341371466667375971105447236824489677847235468642137941017732052618888515675328953364833999765807695759316915633815895491521111397610127689381407599881704606863379479155696314199387821371702745085490796631321602367098070436692781588011822945875871902249280404881315823120461743613512646899031115187587790116581418861140795958743620643110785395564910635965620868421120071251667320314182073998980581586507637974470468828359166441024563474901210115218019016907312401278602094860118254152212834052852611180326082923989467716007807685993133762835787722224362556633712431011576671725209148545008645367568224664462570877308881876823891676800359807165261926969493192697328400275707014403048039105156461865800431919011389066380165057463952903793954191431392781600587843195951544083838028178876249014713190209363554098231587000391572973282876662468032327516739438944866491084863847383697565129449246615859311719455275709955096629515958918508874364199962564627365367397459698330118844709810016302193854989851883788849691486309146168495082714723042556312447132193142104282073147616969569110752929609224809073393245377611835736342343440276568203474592841415983654192755221717384181881845627981269445574206806835322382060074562062059566674091951958275497173753266536018534331446578981203855837797551425765469588066366402994419071472489065729770592071596862842317351063854446778921414000659823971810195575336613686085404828868656901167046649606900728092334730280422179847337386868634993068678581881641723181228903999864206370799230366805334220307163184697447674380510287041174863281483232060135192648104659273372374457583581107257270505572049274810162474632907180886198927325725608938930397867554436219334604064568970155525114252526792464412409919982592729395223638645226146956920744248640790180855200919015199255946947613091046553184198284576897159882908080900683407733332970551736668438227745548955925212386149584405185680895629895467324605511485864469470209211780779581738136589714452414579807021639240533818047768229321916655645890716184752368448376958166669492029855046494526116816629154887205502237898955444348561120565763563877636422574733706878401143866319087769467632362761310698938050350456673367354879928348858137768375363972305856123667438884204806271010325326743244255736629900227916232193645447413435574271975316906412517889633263136420941770754797218418107783957203066428635985996585845441950699819044672837055475704917402174341618006622512382734872630145052018971376685641979318351462764711812943102055302574513358863771369963596670273611371874562685666906444287617154135331755833378462861661519752455972695892524470233775578772501584509693159511844850161271734984676583416396728263672759436771913293001894018960470527056035170978442663840347843387260745644892572243430766089943522880766092157461329187100127038169136031002956413355813828410792725444690164328143457351489676010582360258903412056596937745057787786782833513107536941443621222968116083783587022838071414789909168459069927735665060997995233832141071833748013652433747983522158068223926616883378591738005024187494166373756820088601860032723771880812043326216133888594288300597127315815275516581511951129721730109712222923748857065140041238928798091361747933363737199260708152103138372092362106644816405281639805003767337541528744981157735816385403282973084233343142506394080215681825841015172744149841565056926427996076774790993996704708498042969599310169206459542939770009662925632429448508796815083089412874179749798144885137464541936389388569676561058281584807201901650333443714228932228491230098225403491441274064675396944523252255996513996079868657649509140550904266479474153055990136600047030169073768102318126786461483791383414259955377088957111047772406904489151704837014289525027453487001865472993183192762064761290888971483266056559867423559657237714739109500484223337857016257578086308706320512785993683999266977378715336470926860487934904764430228440184540702610944890593292377955914925260633080116478248599523409984380098766675711847856926120076485742957658600389630000490926361128056350783254529956685705925616819480212016516845425336808860097637866443896921670966887485793701241566672441613042921251091287092140698386042911574741742288325063317964639344209133802239846718691318544799809687101011237002352569461263105522851182814858444034127323470427127425188050213629349217962503573678818814640715996897219167094808646698501312610820161142636110546363961246957250789175127892779292220686151988901060414284673825177089863341460056822980743037387682148239291279551819415475078656861624029941234802896629607995121321479118329045194628216856643486638105765213600445966576350936004090039294003540080777458526830744528026931558097821137574131986365512764283788499037936865290044814063113766428101604151294179287239111458142637368963630541733707058506239482707829688480129108355680811831565232467516896561040376095673228918931517044917076077704927464102733161772195304075092453304183407901733746331773907151703310434168820984285964806483725624360367058058230595922102445276213841895878383623127201444890773894881960565124053605754862346211563861104360987140803148795501050703671785269181529421984245455670016326081867275250398085397473605168651616885047846482553822064826968437664780220312496408316795456535976366977022054934239836631624610277675550886880136170399658912815129589478223098214584717320829428389161176009541320486249955800055831336399816581758546239818204001684716321203863254597522523882984085043793603262175891791133246388601380499449606464285759663001133224433054105618575701652137099620005339748383867322855487769274446651370827900102542492722272634223565568947534437468530711977435057836143847916168115302766373437771535639798252964463861027737125378217491445008192516386081137819246429294277445976552490844960866763198997867401606550569346819830039764025306180948569742246811338813483200190255671387983198950192380288182488680867677190840230144721764049255230808948193452481320184538210338332485297910362734112211595621496413948509637906549716361659054906960274694251244096569903432757636706402164837719408116563370192061667896810113196453714363728735309202039196768515486751136341429110634348315668869218454206713547344808474249348470630963467714886367132854050576157908375558437563170633771654389097025722315319259992670171640413539512298778761819644759912687555888082000394916667596468323752635188386178321148843275830852780593928744705512298878856301401972967304030036772694275631897567412626074535777449091897432482371500956311700605229626779109871575848100258117443789583748439650987575093990201594605457650254652407011079522171044700047505861444309396161196243782243929371091020370094073059371091464016672701456054280779499829989599430986234168284397153749727842111502684091092283982258925665156796548176433064609867250833364845068698874495530247698885676658334849442026749491626973707815651378165254271911733107878839893540991978921896388961797250674310258673322349617322799756715267434525958111031871853865317453952881775156348161329777701355059129740910357155310670136386775213157008776552898049340045664490808227318603106205714357971148413460911723597310118874034818450591133057309044252359532506641577219741771291966991550633846927340135490907303368860418779298562199297546769594930236013538194991081144639163993034123466683384360244431923844781086056322989377760372798905698098964168313320928421391242463898634338081684552903239381213045662087719143386134040116782984599769349424429913319684087782447592058653701594688725141225083334936277495953152289867001337988938134588153695311844939419002248358226423351928569742821463151699117875992585920703315009053662942102921598174797619513271934349049137339691917789544589205015221483762156239527161830264494918775900992340226941650388104387937625207775083988909025119506003663122077831249283370381129391907848615335584954536860906209164948677223326969859766382438998116962487348991522360280864930770171982395527877302771231620689194889397301274977159866041706682141405593682168601348720303103790541501181100395253010474849761708894491269815599018992371927219802307422726382906158926057449874267831887631047532017986297186189848116494482792759853921048517835075513738916989070156697258449269336736831479558908924392006655981349715257241836986362816524247440070558909677972466955244798948831945563376618834074128844351659880741906541506508258512660855487417074815202193754108730243924519880961386098582108384660496358408650389940148954253748568133543404289926556344058239809309305297189400741802082699677781043903923345667427915468957848385741804755246288751127569803388567789225365965197886602418960316111647902831202569130530576101696932064947677514086420734289275644556554778799387217998201915240979296882002288716345345851566151383612194977806383095747357892296454535859502776131299311147247480355928836483532194918159690022520646520792412902256776539898347365755753447880599890771206794411350870925669564154934659582255443441214167469009550241787663535796122852337837060104202102073938260779137321958654990315111509699781475476310231107940286100229286013663673023211331399601169343806792368166862080856830552550688899881242218269829277846040485243494758058076687914166407957784347159207402862474241629269093474502263019799752528427725953485641952212401148361667266468286451607734661253720323289047501814569448342244319937153100442821279089234620473431544351673741568660245748375817255655772514720713051035995100416588013366449923104208412844873945794133485783691708557470401720296372949401875868424207444383904385936815153807290556520003132594414666727874583112611955797266226538979768520456367339328117946059024887513693808937453590415519814366480745570862383147080944774744416081506519379272185650187788751742886046845094296108887066271203000325654199689498522351960842656885840268402922418795215319010620665223807150104764654731655141863250986474546474344236403335328553363023771483699051683939108433511083871043063448420046023713923009285057358515747974072739955679516312757218903256950940486739330923673794184278000017352243906622426232270851372251607115220800377795903098913427714622965015834627238117917959856981085824976341297423839096872027547167361697274832934192237898104733913501597672967159535001868679648571330982029410020765458112302998222458548947019888867428097282468830671732984984072114452137381016654169504529053619177409100236284001525245295725544830695851679896422784257696440587023468873721742832721999204990211375556376492584199812119209150751219030654275264593997400584792726934145368619640172331859378064620178442655626735895098510595422908826487744767572808106762086113963505019746311885746834514275530174374258512626330488336548075889424537472987244562781166600343720951722657729108666285393672258353335912520811484233077133985788258702959662424513110526162185539693643853973576217389529241048520712257460049933786985730515713304485886538133083997065276292902227773152947678479191403536356114638323848600902606980141390483318361612786115128223536903804157570629110965516164581321172496578762816444858689188567099970181006039107541389880681009766046110573403463940314968509078895006899420720579860212331085005766362353671892968603467286166711668989407563134785574991603452580407392591493094676777137224771189490262767616711985183037582535623838757258858495495405331714868354811949191561177236479997946365741201417426957966654310124348137700443497996958353821059485240131168766721547219016222497715137878051007498297235556652321657977305085206117638295482781650960131685226044797626125911040105899942324631512194720143375359265748871157865331891243471940863326757471084569811627035100644368294836301614147344257594222659444390938231673472503230362078331144671725411070901838872855452430617086184231051098865668055287706910533945746909094914442074574514227242977705779467413387126639010032685486641795315298625603626936940016641041886459616084809297345436125296240626420782552425670726092956172891329904220445981298486346918027981813933736326010676152064979792916528892086792276751176966623839289770760509988412542681238029898200774925833944689352575164929885789363100550830687771375456316903579504571301881239487092274068687366008851773571924093394818395170191398854168122014386521729950101816956982415084747697271444993272415054859787906062218027244316304651641545391340397053952341479149486265195371918677131081443026746234784792961667811374150068336011329537360101882440911169763092192204092006856574920925075522884879808854358151329593299346191400830798342137538901462312084830078269808801768878630420505849157362495947269812009385062258621647095842420661814255213061726332936273348827941700076358768038170563554369781602132311068830816031272124892303589060429227970407173515900122130995054754953754496194105601772630429468887225771058338244333531353434314087033839702858905181077184448667181341481956153048116887199788995264287141041495525611312590842838762712880730267821007720020840166418490891864365076253249350119419953652663261828777616118731586257240519832383281832051360233891294981614101145833622241651688044472587570665483876423099325026818396783412109919355520403301312184386157193762053460193707033354589403402709995869658590480686834065596918915159453059075851020466287704414199572198922161459942795966089109362238178170558766478479189616907806057592843692631761338016513041261521207559296163762605730608602833274190674160145568332316797831180281442746883961418978541148104142716100421737605174914629404665376402477533523429873853198164160482954100490731586851174606614630829251353087309965810132737932055442597692164194313047286002618648112674019499375984391179777453007979582182395119711063911972083652260585659547992863406668274325576645146274151289822492920015924662933401943015098485430458898292162339407890546896261797538562057200687819045877719405804333359806794161866867075374904594178552113188064657371890528922396179027445857552986064852900235478024753864525170298928837109705764681940280033127393964082601769688514076388522641381532395545112299628199968886402623190008669313178131147536807075241531999721330329685106489727586423541396973782634841281372220999309691387948520229175332326245483189162230232835438091766552876167329111914714495696824384570768696881441175284785759010857221408176917858073915582458203974269324025114121512159405344059510464006063089839292687243484325339669306524331508512958859853047259282153193437593150033064256061589323449137970498550227609409176893262618647785294249439383200266996660761866521354553654961550033783798628200034318078270751617983313587594214069579504531552000972723063935369834322881022141343818421815424693538897328106791589247834146085336121063233413738341900799439524990596895726651678469719739642103782325813884494350020622688694533676906793586052254177548714227117632408499167751458807413579485239254288781541847217485332220648432805528652964008803964857495374493231431719222384975027636465892522519280332118228304057611966810545196024225926940505052078455690168183545986704539714007404002171293915188621787603288606535052518912931917039386119649067852015503141569139444602972286189435241394569893731123512149741678427444542050443016502686329245039458510662790456157981266563133477654005014144589102096186891390940665841640539654996084937445368932562783108093349343481754691384946011388640885395968969045416376582237266698751691725940175365826810633280964927175954938691358696277017520073838043057030943247578904891883941525514787747391751349682059500130464096180180513319273110712547495294889762215258097165317133143708384925169481699041331713153942422595739898970569545599789423139847814874385446984583991799651325023022826154255157176921541148749313766914403457589976728359368117145286300801390136548820843784342934810881773325680039762760193975824219636311414611587250523911581086784748859682039229169406008470316950506447276891406976988763430568500701970153940680336346817106494314332075461798923147123032952278309494117895180398227629055155419139960191063940940986292674487890672873949023680673274746649273390894979646164986796880501272999807436291166440649300139240055515492194946275292845053679694453529136775383798430122682280410303911187075938895088963952900979533538555848893474013709384986077027142581600116816274734123143843043833267400266176824050210577539899141625667640358201582053053651373612773623139325408934860296633105004629235551708072516567361218082384537294923918021165108065615456383584516933592448405281874513142871712241047208300045244430186508621863909744879709668352006258576627840909708448751684117589817185964960238235734117884507117330334363659245637648527772750610421738422034560702152548744414312708670736293339264807968355464612593365784421178998174301736036212017157683498939898263162771517737057419205768332984489623372447708957037269178078358369367056715920073787915794406327288706465529334530351929844103271910610650893519134075477859508491194301994477264122531041587514830270398233045566474348266501620049870908345104884102068534831522920769256458768083356715104329893745236979106316872923374081574501337438617562721016278316390991628221480062512332988242808225867053178193152571773677178746113062735080930930057276735573459810851171333540846005899668405388068955637841994828591903339616517683029456617987054788203131928396148111456772892552954938376077184710079736851373592857080702812123973623068991173892133701673168723799784399615856033696781353172976738749780811999394692438326800595547446908324591525874820407564716477120968598365383041044277054600220212320244489918255958666427486595550141411901946977862356423695031708417609267891345838502635657740416760716643260416029706647488867318271775535145197008549095405568821683355310021923421364631784896537209781088647261988587289531197746433962908815703696261496994375587270540720297279158299822327737116970286894630617529128674786540401190455773962324488114080953335172485040162964434596047102097274896817959954348332743058907931959059627679800131588049828068033472340496778188182919954465756248847171636246064232943834756054392661206895845242166320057193376784299478000090051993041085416952108632549456025369627746919499014072035147924087333555248598143861295399779537787862432358177373244668514199642235318736091029094792484852834114242169250324177346952451845234574917047139605195231581079838651902087974150687430537779235674062181241587731588223850820334010463865218072733610558248134857459151565712463881348550136124170455675201304600219746581724051104528895086857166737657529637818809194026699923727924519999149692840018149884146661029074040277977423695703019932460289584637550105533344067029627047769667916497223605066385260735040533788315207120895036026222947212255822554107319001190162149507951342433042564230530944726178084686339379979342316962119326861951214464895411652459731611091959515806876683430221114596478106721303169621796404071821357171005818333956994456923995894094158497350614227063170022343413479161723823119147954936853081046436447548388594610935678488240977409984158694199181191659902963413704183999393712632662113008774062502964310842359578733570015507748019351028497618184401955422676381085275445078823926462059036666056787822260635849781617195422117855928538907841599594982261682757985338770050477658787413792866353666898776937516900555389440080718279697866543880346060337597822591000209392301601970538985974571098044353013922734872878054609978166427535967902533051753862191704700544455195027895431986946047676579703533066768000931402019480721011504921138012617755740269134275997252909786252639548101391498562059797342421179823840007688836633755852447907092662266818595207381812461756199926679896106954161589749153411932851410017987703055378883271581318221200244308415582910556117819774702309665321715752363145959276858002985905482455030380966439012819105583916153377143613724452555478207373209860193354601441648131124347785518664582735426690029690901127901164487896089296684972273686922266757003126210524167933962689038098723958808065777275004668897005605853675859409077967728319159715735661392957060446344851132306486997826085170595577612912282998320850426101205356550530488313225322355926940502827687459482098747584667444105028677320546817190402714148740549209622809290367440883452307230306900141241100022951042890207009009077515353899489131279670677012876438728200130634344622729046512291437505078850285407421031138949309283983505246851841673805284951906779949148014364682064931475154012526768276531663167751752235398446609277285810790358089122038970122992078263376723413054347358362621717989459439845506553773683090690586182632676917882167337212478341605371610014600614088156076765576355691372912783254362966520514562026291008373948948145493963034769111791251494610949902938409913979059349034620170342981852403701447463676601728365258776424830072713932180757384702500720911386173897652181118829889748786525116196331704643681928657883550115573753923389694367766865578428688286939989045738285973608711013233083300903075522612323945932668930289038302154424701035824310396891625387300079745119813621069634373612786716214265253612739626054945638453038416775500591158366974885886886240326490681169080154784816851512478312671012619046717894127499128989347768806546453517302130165997946878347660842440640030118383988158202781014506927627899118157549338889448744702692637592367404592491201246543078884015074423565356019529256404708223998005518944316305117640994374416910603044142104875641777566503644791381368318173906188897125304276590797532278437971107527648109740337366797527912309890158602112012896701266872062167104721150052753282660606877618687990053858737250210380848554279986161637868552224679147731048770252536439482465502995052922744594403333684947897009964797709758198646911606197365320589416050121440955767868617467362211458161112369882582124144654168815642094767266377863650083644301252257385670812777043023270692293306269994227384755115053983110158687403297155717587073732947466865979334405084045126421739361298781693041660531184391672085111564412882687320495803919034276235062225062502149636448709777355302030677817310602974700156051462833734969893059787689976800182544269427535888321066516022156780876442645973804751761771100785817317738843451925935660854353818970960001354464936845654080948850930603125355922901764759241643289962667042502036864182191564653278934810171802087030345297643111040661312020497695211751553422096119375592801227931204166831563236398698644771010703556308250264036576908723170109922575089907376053760385497950827800504842005232384339757424683050665424559897970855349356832265901606456427803101535229517686084825806842226493613976319470925599904233560233294838286937813782085736192073887437725693559221981982273017248605566119347895901692997263317001233410622692995851129726285634443269429179645858945743710815882746232059016176453466826538126490796444658584363909720731998377473883057353672242745831799139504482683098484638294597153431357537901744770648608762315241679633640337480092088081758935093744494649052713153980824759093343354937719609427536422142467351370824344134631102749896019549189400857837443972785827373530562836746857601141361974986479226463805861946583462826261304271277015976403084073799401682690855363221412253232680539677628461787690046312091235691777162516471875871229666069388953394489134219777471848300718695326523296617277667242406300550638228978758927137402255219559573210764698994813922676487271961140717156825551588165877150533836065948080560377229994956703933241910884386241409186280107197484781928921227830745087870339601194407603733854238764982029353423077476328946719482136213533482500053648126740788890259110263434959904766072709981716683325787233129970163124544822091127740820207582951059617428189235025038387614822609933813955181455901310923709772603158932513023261718626183797290459386142621037055418478107821459211994220983436506922022366883611048068269639487047444158684471160505030579314724684875642837115929211772776566507730167478919079792160673735227652789765029238779190297295928613646683121080852987998194728742702225363074419127107968192196327011220763045205607684491747984133294981064796399326940798918881032326508350775734819239696600853637363086679875172568901129203242083329363627920000921560520601868672248827830738488649830608484613123152284163649298372125969398604116177182196977334542691733925456906627638953037984642011343058840713476562131498602468965267452505531409854786064885407364382591603184476195939184709815429495335587513815999386416359885545561381477877008220438029242954980163360637051223343845796118865127367002841763605174589345738021731464510964775854691947014935368156480850212469926698389799173400964160338387212005409285906172040422501147435940131405976105264929331796318069329894605590710049449896096364488273728104044204073965307871914610153862039149102965512128839735661355950787358800771662788473028137887794815284128057416359877062151742433153746457304342833430121907271802311556840876876646477425366850457686931660652738134974902612396584369099781709440892818956512290445210304516925639959561356032340421642940632298168591060771985646046290816659093243174605400441859770619387944533068113817410964396731702024187413047186198021925832419395032617846545564804805926082347349093841035695795134384592355639367597307936552364945323898639831852890872760696841473131749094835826747282500864490944268964708674142197205946676262757246746196430705244441363425696826919554961126135018676445298628836396083846590957985099334361298876409194032985852577180294913936704246699758889097185535358646454448215466798320433639676147200368005114777361337936283115506556547253181051410416805191082248260818088132815428775816495199636225925683726030279939555491252055624818460868572217962465153978883216352685127171578997158353564539091109099174510978949409472892527412025871654180616025980818606084991961214867166992194074174202391394635691061598114146446608631871856519123459980299283664737466272019488028891063578640297589682062630217359711738103837470984207357898157450897135831691896144532968413576772602930439287274782681399731086489729031114049978030507527701661109512514882643343741659074134592962151647735319915590015973930997942362269626026628077150053527345025471264016323873684593786353115373442716401868302549692001824601541395627280498116161921201842767923099512622828692422290258874502479515958864554880093337345677039705903700031037236058933602797957556322779193875219529074738405747594857801304163082989895227820493029542697570171893531900055463990213195270400782809065755898195647797109211703143376991887615332446670382952752458103387638823846810716524685695866088639438920276571899782218130295457949059041755675406850671971317052697978387829316383546735348271108221445994457967896065198090463701500456267648453435179590303166990267533397570521926008114727216687189327782669518938453265462091190425702187614411634402415618178555545079837123597836838285796798928743554463142452886229062577624947666097891487437965190667721582408227302105655525538593090038724020009712613009120486465086184189925479025533543075089593290405252643042787757066341388253505867093955157998882894925335029768858006044175535854880007932829021517665424860598292914503153091059628599487415075607665328964651364254865520113951967857678044278414010443730773289950600698257083474978690020757390477015036276146558728714456022190708100337589395249626786753045926626274271963352423152414821401232059290584159420283575829298615312652343816551967610509168651347084220829366601745928838907122884316617927468898494015828920131386861628323727822539409596720625888488048418935419333961925708473826899892730786762504330498606313348186547199380302615063803524553338263887836671160009531896781800191018270691090987968467307552903440582657414469711789699630816643086975010576646144004399267069435231848472242738113614561353891495812271130264158007331333143029252631324077722211540702457556499601425843412325643927905416959943567413574367374522050660057349717801905080516101179420968391737102945973423603218571250519979115269007243919751655040299985060981207543908453205362917249734664662301997164905597606087483774602652527880346265505461613267094141687686079239241483851232887491209728818036882388884042391895419328897028138675608384917048720352464873678940359930646028363924623734428439419199250028685608758015006687554218672611845911660986284843604846824273347667347479530245928909753714803812538427173037431178035911748160818588841885709395963465828090500691354484923555652408471265682833188813372095992735559886009455843650191484044270289864092446854620218269667967591121716533762302776803644327074750329846818564401881550884752988584416888994335047093760139425536604396310375689715890899883347000461263024716439629775270669974400021717008451683339148429802869805692353030299855880664122004764786736266698158284255950111763640266384886169414920748555980589553831879992939312039560662149032023101976315281752037401321837801930765558426582590999238404072405196769413419056515533238380132298618955893395469652882070335296193228290100615510931035372751837437486387727261643984317679149413785469800104274627175686383718092739132584505182845380846858938231637632992533741241099482629212543947048772020336937676156352587886177796753818704819772645105135450407895703824211840053713671699100781815163355292928933775070743589015259852086516233994509816979710664784464413885698278291390724029370471385600275226716865989114707425388500630307316133138084720209405690868153846740038042561686370747046198825350684512213003151790280281541307995452557893941707111291103429718405461812220843754117144491137357620890566532805283006916713271990680051263273566356028209226514796734769202639723858714761218545501585711070181378423493829044678263023029357253001860914049620896661111474725522150567192803632033369866460511596862112439599322937304453167858375404896860041917627378797028163093254897717329011035307076750471480328339461349945963752301002177402937503134557879334069972743650422173176804906711619373693066463913460244920347853143475680346455098566341746402927970380932499602537960055543777325159621197457987406433720865360280024344676004701672183867368968464151568634692111922979162124103330053202293907174232933074137072459893056320927824513068231003942109928194958147794268732629947960550655163600651570466974548328083938084079931559726347759171845933022690298712330894857309759933660755106135374609482150997365249278958485172275803982204990672603336331036036267437860448604103064738765496150297851010097787647534910078482400165694344029634411097727415728479768487341717159576910790670873603738511693987995174134946071977331900219117967774295273880087130218372208538187999316423886934687801813923659500285610545767092868835316043455238635187683393017525111333411647247823354752807711789320737651322439825734051285260564328638181803430232289163210539918642760613923155628121646572744055349287673343363357844307337628184610410038803154872575841180359974118417029311463303617457297148917500404964492600289716883284709726740270522050756947591103092638214030470820304529742969665419885731768256122598739923143983846484549855449231890595383136402489339464661477601420408309514579248016966174155134731890464649875429527364326403606717894712686708116581222788850299352654521848718900903548797502800865586404475390587703203968915797093232768628948044426847655384189517399059769924394147843125804311355154643616950282745142392439518937183219267708806021725284107431733430957696242889124324235620610397602894781794176047690825161317438542854055184939411920311391817641024319745176526393335995702084306421763186860052617350353052695059616457945167681764198236144270939797361766235543510958495946944346379641619387097718220624869334987569780920975904807270619965847251310720832929726671288723166495068348415489978063964280657595492254224143055124630622683369138135306446545302551083630172170221520475577285567908044785929353654814438662590912381788957052963671430326210777196711739398193916759992549717102021360763582759927042261124157865041581859460311846544809248194181637133222951162709693974746283532812110336198471375168004583539807598901959278500524259038116662729075611361389577922429605746396212732334112238599982378772553215207593066175561553188588716927059634446549062657528394735300620300699333545359121916417126934381384176620369707728953208430573221676028739350354289862741889044467199107296436954021027814343959384847281469127750044693134996185056497096604211185589263688038927638254136180986890938709118900040992149948896055797395861529290970531157089305618435893234345551029797933685162598592829377967559800779750529401583591066414022058220491648734956707448178145325050524066683715971085211520323712190409727843321089277146570171847156542177648160771929293590262460109542849492366218711147034377802461758283729743173098255021853370473311042814083119904656513104981575494059481468761976752597243685190966996318621018441103414136789911838436808923247163004156049601671681796215271780757627776837833387067775758099904165310015753927867145458538683073135609078791729578399692828400119971011427973592200290060700867119015009434336225284403318021974051472584962570072813765674844632629107442614720249707072532707626358441816656841349198384335387899170054301953149294577048493399490325032966227546253693689771365469120719463963984164551828020307056975560857529787699607077580950645211300644683706559739411276738623664044733543849251018419753325278941192913046826633325918300088591185373925362489235255434902725735534985472653096491365891044302434098229809172996622570887846481654534806157198522756897456440891014553462594051848413385872244219232106900982917622660800180000907630634950035967313924674349343941296338104108177070547735472376604712143575178580245825770055629786467879797270486800317445691108872285017212874128236406821119534083605930812246958102332511163049849838689802874364537913015402545481639647714863294369123469510626839354050723110158298604590008165649737442398933864824011594170137534125734799465844112356292496913028688436547626823594193635466240326449715517480549417976759056492735771702229350476055349305277573956828899098788131116406065664686989782324774781110569048346599414542878746025908877076215049349287705760932177511720583522395647566851736380317648092380771463112116660595280396357273160655527512376405063129873847608403268913768923967298845998578390783351772177234027858913879736645574773507754057416531465592454408288121344961226168139990752343631166030412226587251532087097180498693457212735982763223783659182590279087101893734341673049925936343916022214804520481480354318504436591088722749862258038371758186011511990710077449440194668148489189104365359146546926883954830670344064688869037020930632310906984501021946399915318755079146895739246295712921197159162529695935470004663623386743264265537569589915380703560205446938576886038226113012841734280240386860137817055344242058072354735304473127768250709241827344749946432052620691411709140769851840553448366829318458995900982366368410755717132608049818079959841128359611917923194710272804979896594377876596950880239433327247424384324418021823078350821484876044023348055712367331145638082890135029035044090367873741740897810482161402531646259845942583430505863199104950698936804999211462784123928050193720535865895471074090451767834747736389426850362823706456265181349993446200113738045962893495681018461899368833938193578774919955497093067752937424631608740919745759416003701261461505355336727455636783623703200905532957365919521491137917703650879900957452260691916522895121853083344796322963288602813039943705929903658684996650097791931974146904770122629271507369644526819919497484401099236185871995817814459428092626355138634345376803378426204153788989319054648882248384032142591396528765118458320754990255465497199745409077493131915810356811486082414593965048040607044807381414308420609148522694914679708653110761148985419629796823422824220934547338633257500965802001362602334179860503877654742374266461759110230746671990384600735259774884270217934467238626324889434310583087738326013314023098667539183998172272556331581363405710283504837448599938023195220427061432471292204821104168568523065413299519140491612910836349511874298234861314302324031459705362990181903135524217417038655280277935536851016724989013094260505189726630429394262126706580203705139607266782222547459946185155709479492012369883738866541578235242520980760680027174264497505041671852391766957833406737768787688589558012546926101491963161737375089886097516191734573209614411409253239031882872247002094680524633712745020242006106454519977920356409050624039806361513415731333784450162025396993854646253135128542673863662784065155220514908181661831977127697157065821074736378098627713671501212566359167923294647882621389057805618903150389276748596138179797611808743080204650889277508454754233187642637844500231314713068010836241883675627187529071531593283413277590622871214091863599747104530314333984149010595575174306854409969043714989226714873819912354546167004344355390235717678662151430981516844002552324277043199888255127168274209448833821045828354763135394053691332803697245616158092088263468739045791502081863671147595630739540574379003140720813691693717577352333277094718649468355790320750268241581251079182278869698645700561052095685270949123989660487560044265493793711752865121321985215819080469227160823643509282888507560988111196858683860743969810444875643579301156759132680808698848404610708200917733262521431270425727473442012105483452314182566343813329534284537479392413162160530869920528390916209203262094033348069342133059480592796444504721985554753196008382140473567973676871385796887369709999193203162181339252354227273270273239395351579008202157497125390440593495750451283516086751464658556708599613076135147525190105344458360323071336410307563757006169220829418016369196938121623423443213970730072504048224108299967101326383613495046695668500886946620983167053063605376604549794615927961602862425780272193151242711359124619128171981541660024243876981385904093860249890230300819696259348739937555442754043977597655897292772414241868036279861752622070460818021951620038747479483011440906102387602330513875064591791085445304689741239474686837948328791082149372422622951832852989554817896453462327662734609118501282231881951843529953462053756825365103527112142474327721178948480345964550016294617987390437743137869020186295580827099980019438477571407942743553937644235634922470845445354546595082076227732050845651027838192296284268076242581527035619649211222257873112566575718956041102907421876997666257150154125598726195376706837249419431271270737922923466980330127508237553969487773179517346422488426935870704158298307780942480792368155307033763607409293045588667637651180060717866813645306949016446769355835278878142556735435355884063946274565057727458330459655003235708523132819186723992524679399994961496207640520687736798652668708936675633109521277531668034323701508201862566234711595998336639971552367864804447188241597076419456110833689085736948615270246838663560565233418481514177702083478811311730872423569465857144230353832714691863335425655792584518794725433613236108822195840957168924367108205292370703286271211144008918102100826633929396347079634991491200393689363582323308150696597895829346108540706945266746176089690373714622839406345173200734712296866318914760267759816750841068358595418394084375843716174702791806817853633967582517799223270407172447701071196282453818208109611484897930329686732155213512200638748683145350432254500360637169757447127167442035522829538660639600438860754477616513760385465520278783112859646482524839559697296769633109463138387763301683176919715892051915083407995513129187329581363925226005079869581921025905815941839616907660744526419569106426913375846285373736317170731715738560774330186654222379830068145012254777106951235322035259785914300447874580059750586926260333093406934427429487112428628628778993729122426054435902019290114148630604764661209390898905420570566041922369628976819708487037062142824203317193090521655714262369869632707832771034480645875326006709452038311527580998919901197500529976560573706275413569976366923457588227485877735315322354615888847661975375578443520054531627947375670667480721542876374396242678899354370362988433168088757240919410303303295545905694687620016287345048637643375173684544616949396210583873161274673705801145149531029134784181573726320036086679984642622157272016490040222567629868036905110079748168497592200452033759616596947863603174281651266850799275535668470348184533842853825600017316091272401361773437333222775024329081064672127161805008658102853037910057780796870695149342331439920116207288688160219120529448745653312477446389379851436819633736620519827734218382935892447731712679905752603809564881981996572469762146396041487647764045243698869652289243830543754667393516566655933501482713097951017573588798148353309664037912546140897524069986044332453524585141629505391885987057772717627924129222986000693295562292161181196696955682388149111372323976606502453796742935732709472851789552843838786697624930138783322989642377476781610079899952141914332417198155668448754210109125786160940944730443611070366561616570081549548663798392175949452673098507790630359018669251992410941594312042556674967378928369042712112617080672355059158258201832754817432297320688099441335053581801884288677864250098261719321553497045228128229568363675368826581381055834568725629943464759086782159874306650699311753717539084337605063209626264609077419648720001257436042375614565002183575984169111764586129321038579800524205810208000497000919762182328726710478709939847118793284411641408747179535179088651096256353562106917197435977053330698942946779715792225136005766092652171523141960277386846129850804466897536727459240524177172339501516947349283263772475121087708478246367422397773104602017602348391820012145440029965233437442585848324571251875431193531931571152687229206017539991371442416801429573037585444036853808815754804598127976173830626189357344077715596881425182348930069388639947998666287962822315927642259941226190455329202694126668506038402053163919538050004119242263320044734479912961198554952033181237318952617387758913816714991052272548565554207457382256620724737310054053396279418484574973935267732744047258440817649121637226118277470589871075418666717775061145624379432012828375902021588250462157549514297831984738344655097109515587318636696544226330492049646776739695566701791580377399972768182906999826944005479443771392513729598084661361732314145533547746318237301345677853043164878500300407235406629057268361530163309975518259227498634727730492564701263064688039760045374153044608171706150805215336447837729652105737926956506919251218384565600373515386621360840372384453492292643434964528992559275049953173646805269251198817079309803740332622143029740609205998564474776092215012180819782991739331974745635358840013025609287266959298951844222228370480333043175131115009420220082885715031755713150773668762861893730123186139276557766584027314610003947216766438942221620445059866757501114029785721380178227624690020786506469486073262118596164889194955924411733087215080940734318936853274588837847584297060954068164918245216660525727377633922534981325837619587654366565520809075466043900334700961942540954223177894071164402768474448555740465537427078598253735009493617089001958967671171142604947343951670629133190661919291234379182789121814983996964016834389352349682643450343806471879054349348815316621452136073250750825917281455574916421140162912821833990019038568270931654523811424132862491292289907633019703534314933462119535267689238539744851480096869190963800293139570283853313087497947365839119602747049915568920806759203554890126606786298328394329211859427960520997102709528095280931958748963325445087350125116532302907691244376044565114776641664800951319410672948513167272602172495574761362240927554872692383700866629616954238534766797933740145957177567482267084142825956071334589583603932619645114821519942977514912540837288492450115863615356543323204714095756953882100218106685025826208810869079652632074030062272530548325180206387342900270317102443049414372703926504223012924245643451028209871116813033183440007242274887323849085839018729045547275750741984217877436966761089195068862523961678845548149305706294495332119828386563809855833982404522447574141772899461289810666334012037942362226710785094772339204011551593434953860623521266579074678184783296457625967236632308394143323084208231327809494474141278538106858275272048269088469937120494643700716144180381436277681733015919439096020792246016645733935170157057014972569216710749000285753442348704328556681044369200476445802608790363524852653393168489015576324494634027004976283813265080581573754239971685435949437853744210831133087865299325921476044241915111119597463984707343548794504448775238930586799173227319264566505526427688751710691514419425402140875138787609212238209650109594018926792035505380289200149445757844472220128542443063307135201358438883215187534982857560800716748083610114889103268963806027285735683566627248320943257462543801219337274284876650738978284910741389094742136218265170676803401802241978572747940387101843693086801927257956888365725987962135861729530711503238077595034645832549145156320807896907149513176570095473344842042503822008576040252860341737793859329794690873976823599910496196719155006483957213250959725766788187630801421201817116655085576911900771998808866140543887760894237832441702199862992585038562126759453104113747375456390799423564542715168103118487418838117345938139616803804649460955413140640605757571675765704830906152821017466971959006655960680740045132479269389480036429250907362245147276558360070288305139003715615804862685924359534842939781209493122020274741616815321360171751050673762444176862143275630617094623303655467404396513302272273452301987406581978015841262863487541144422069191385957345437479521661943253509129089166367021520651782371829970894977477394804210282761698735909358934625089250666700350145740441389748707019592704946911798588948014982692238686861668942429404151788753216020073148788751381809466812735756018688994434372571254015488601613735454800185778819376452498089846759540623201122451705281201104857595497433695157836740148958374615400548858120903756365824928376918396584152758585044433619571443837833297986039072529337753882093260058390357946215815652534517969796685572420829249163473941532571080854735220569733489692460551309296992706938820737484359857854651967154339495134371294978715291759929923175617553857924028240051804692025517358326975356817197120783560874886469157104245354063050729441652251560034980936393370987974425409021375354478609670080918522305012737333946683603349790377167872513194994746430625043055291399847182921524669026708986153759679078653279864015232056032944027376200828077163763792805956368322113984480507187103047915973074484142490844718031693612815946809868983578373320050896392155300182190063508487643806666341141739326882488470198638269277783725720690068080155448587201677987877007212216536473869233536824569892120440149410642150304157567213660614241819297883158605921182008687151318699993368822001243852269878584081995370031322748122327417236227961392794578220491590931930321111895414674491499815762484012903323549913680982737113244429174338757864567474798631564449986990902094593850417496866531486127800218346147942951167123144165340675184779191604317352644802684876480146188550327734621517056605527390355734020603523190005939892872618441052829491651909823326989199984488413690492683029117877561544712694875530381014293560769979492594977324862148371166018141085334252982094709196354931274005212077149464381083069266975687222183613394529465400300281050957081080647641184459566908213178439890275717394892579662558403076495121040780199773823826899965834410922052697384937435810199161701718924762599099852424047517278433837172766504539355416355503207678428698428013434823896723092511581897361285256193306206959490747935826936328899472855935173645920155776769114771116965938129626524422956950331136560473023955764454278669255416820471734458012988022144385223685854411013567802323674452549026657960350720977119863154242734927186744343448311836038863294848063605897826128422425952897402537758504291931863719940001883893429208406900466454533247404434943224181693592917219288770678458750288741144291406268667605701633262171010277090069323951232430212150672185800132991264208454793618387040673010204987460885105220039692754862943743369127737366871031278787719215712362548357822961480318872796020175510644721315032952585814650493575423676744122623519372290177051017904378530418052132530953701076010322675142445151093513014941535716064065545715644000291065467013274274659390591764172894777739103184218770148243409773612686325919916531924333730573782117181742661233842841758622128185501019990780225750162840568078227666390802923239490603016694840984788584677624378618915196848625732644976994702839879506128491956547588932679554983063975478826517450346021126368355135600996797479193698144806788563787028687672296580544741981221971873528668579112341794817472007836749975955445107933593030161669130059456878083525304755371711196903268066532449019178126001382552241500088864035120644320872623401487441158864363583630129726950804108839415353526230976228511498136885847621845641623029101426298438047495427643579360038249248618372376039619743930274783711011839930838363698652356792023503367751166396966991115246650680386969096909175414974251641902358929232709259203866595584354249214874952368882191525118498735645407029921846919294040225818286964502189081526014446655099415731746037598845669197603935837466049284978339977543128434225093087238506130649903431788004817220878941537730253928933991307093864898342221194394442346900572014581986086120062699796040913747836635619258930118476104853673804342350145024937663486596588412987935600348098240596941408121312390828424492752515804315109736028560687728029931514735344976911566855531804469122840602872284743327500624223270014206410302546291548549389955109689146073282553268872097939453493637056132589472644174553761803302700383671309866528743968329083558698930106996222722796743750081219659374308902101398039122704851132200853567931717188558011110960509699692459406984877120160409682740116766037318564846865361983851866787922573917495473642812535987356172052120009317525195378116656283012804164021243660366289475687016356253283800069858952354322788683125382500319930278188330891634674818956563160148065516621731738621791301528368267165280193559910286467010133210455174769461614632392720383547195632465928947325058625136844961096643526546800162722438446353145118829331218033766520436133207004078325708608527528295425366277594260557614948273445814807290234581478773864936521017358603694925728990474325430139306392737966661160580404903397414468349214791631140036433944407880791742486122721518147468546393405466895363645826058050341078651795264138764467116654474220592283293895726294479474679870425172790464430571619689796240579813146553301922951411819339808266978755371024087568173683989720796294252785944974128352552665326924495738855136899265465868985724341014198417092989197645366691743756278763662785718514531601729458134148566335838849498699766342897010342743105994505711160830487219530640487279228458963753188851893585793770284659873567543528700154154225027371731044736722044207533575701736915248640329519038667222572654138534386703567960573129162949801764085035226283963357413651814153966700410674809912820164876358295157323110233379132562201022863958854233296952211270398614684601697656399976719491977999497921296173747150699529795642650462130693717308346303923319150883120033551561975375373655677397222871868413062711126251752201929870920858635494411532400914378892052185224467827667844091025745721072226528929041727617865380612346854733190535506009786128014366135207441575592656921272255442165192738793927526748748914659980069181885838317852010234406482079032528877722235147437668081376980244260937733998307130441735779919256915955724194064504634379681479556907713187726988771535767032473175112302630331227283107931262685976475790011324992453680323721208534288998553155564452940548610455731205894703513070390043125487122673967046871144712006043448023500993893174883240451058976289515910019581880364349407489656925860699572324312815884061355821654892161157455148412591699725639285295786406126708465948478119552646548884610298117004497314462098638658567251188173200277846651931743613161704237711480330912710089348004493250657421431535418806911557963454943671467462520983288450964081539287617163659924204461114798748626665573388721588719992751165684043390083199853726787746637852403470354594424735099485645267242133559309550754493589388360451203317599058933191753746985625177844698291651178032382309029189901601693175706048669359124276962908386849419172064482701895535820312859994708908297466449946976928592524680013320444565599324730719309417601668652959812590014349305324751227916956598566496194704249421873428368726715243326454732136573203121423488602585174784707961747159996896065790291388527065362006978552313326997298384250895434445018124173630903773578787313644652514891694811308512869952486829702559678044457399199344460981815320641568905875220276519940921233521694532784523771148449831218920664018138168988152441713744480345634095399756860863170371847674692577192011886246703159604000664747535472322059051751459276831020199195892858019388016284163297432795505343789142551045494497477787317357773413600419180047368487569632793949608281851768500980934214833352555306184947751166466075206821404498171442619192285873117627199681406922826885820759580617841646091509377123849227616598396019224913691582104082911735262823922185595954687300373649985816567212586425991816992399829452958370011242291886331800127104027890781657571773871734702597147453969369657564606026209920859519616175262058953289603563519658632801215040090705110988080570570725536827837543440174196891336432725589486815025296144590309133956423267166386645518585621643500624853279235294348914760828018908766821533861597775853787798713523735602935548954196724322454550716532460085892653140475687627988168766447148670059614257974339179455740053028088680945916571336033096185068666389183724373913311688653980582080862099286477049669409963601020694859447466769749466223749653029200368717665659676304971512569097961620966286369042540277413684550930195865524093050640478695165483192745364255134117354634318567061362546399410875117899782298180382610734960037440248721501945849845984380060113619775063995873435336946812229947996644975527475526752565120640270113882087292455101424172157956765305577812452391374581337003239673928472695649410575769000989957749874253628341052133791839142740181560674048261113380738888758887184207051411599061973589782032786833970575287049289762157505682656294665512775051269275940045387903310909160820657789323797364989992822484413668469850870774101626977599375228143141429969561896998946417042824203341080482779024860520175026621553252568026529490022060298737262490615442841689642472660952392642923707957018984406839170223544936297807588273557710907648712518079547181928708988497278009905027852605649965689375571405949093570969106561368681670540410626676833225345370226053536288108819748690381747126250831382598020012812737120761308175683319879216267305653525311217625345857396181213129971951652734441098712744572667890483497183204862159543492983451669193180987386513974011594819402679335498947219127691844964025696173370042709584289853983733731442790509906639544793285404782310729172563664269121478365824634801113005942020290239154174094557518687751819627536348006715795138256873205260111410383855565418750734638299140392186491804345292716240590517410084713607315823073629431085119486646376822551577266131077404034203307313220611650675603926643753853092718707804850249108595998842329820026706012896548724703384190340282668401328005449262047580970582657742162101467391250162730554613044962235145718812362649242488496639991871112735439331783105481001935399563851649213408992565487533200480895114706877931120900651984920753386702320294793454239284600047926922762350216276093016531563542769737634036896981730707958890212304113612973999514961028613926204167727813252897709097358436901591688762269904776006199828650169755033249785521980171974918887364858518447677459494854905480374647519378098210782164769424364590627655917109020889346049055485070592427590330235492361271525967162236773834887340459983864243886772265687999040805763929508478910864137773696080368814463074134101165819099451982932833720127870602007864026909758219113380703171514004561241913081988467703000931303486895978607585632359200363544669734051436443833749327052489592428037361826199260819250673639841349856651149115054264911833003360784304206757869643093444133199779844748063501241902065542692839208862991290891847197974740004892131948351248772980964873046990500098899758177920528079781859682551318603862794452033517847017701489352197880579716882721406221737556606251107403356662385948053502368531186967852596449149396579501727276363987281831618347642865403893404406414037418205039411496860064523607364461325013633388753368081481108963749839113103212594859475719143236179925897435420269646817192185730655902954307718275983463066814153759390954443980338874342460414043123376791925843842104458758677085738811126935918809335989515473726968979442072611051165832817721758630906544987618436778755593061580158075946815871121490555357900353269324138430008077315885308230584460889060997750856137902287682918227916321138164548050953934618112315964197515969853513222923746555869298776057908734712052475343348081868246757971409955727952508436572186301338802927311702295230915263825067609820305446057735144745939199853935904188809725481561152676304031222532283585095164293240320533745098582054605991354932446594575111005472114932091871086674411884147405401768034962456753174808665162429846107689977241308829415453155268690925267970111060193154071414738907427599136477242494013921174787781680148779987826584758226779742546706198026922630745759850097591855060051504694635531969200319346008109790010340414480802669065808634714727167283267931427635599992766462413543326456049135671335711784762470906563257399370739484935634484960488918040433496603335379723278126039982705476900910834447986766527035035799634008205961037372825874930344630956395355286799107075787909397276182848049794133455577802736362088968582694809638701956740727923375448039080089643895398809390929575768464328477913182389542536414215853734338101995745879368562187722748511379844229937517232811882633632550990970830124819778900641886540845327106198319147311479052457986917791152080102073007661433314296471953337270173997262664397384890876175130733248546325892117867778638546101313117371178094071301763678617888851688028591119139022809206199622009498909814385498152811574981625401295776655350234984693081357907123515694261636357268129421581550264918361180404621566298617664076665904656498693854730571677555008795428835885315636279285955611491276684437360860790895293244171263200122385912404065519658109045449031745379989961578079451016287787049036340034801786774924986531191420330834263296627886130435934618727735226140693042925620982359238513388423787561116427972753816611931136036932587001126795415549125994880674550161915675878376381363429917268317323892785745561592060451728898762151407784269202730502826609781181095798132940767015071140703814128168959392121997386642209812022510633091494441971941811916146660022014438846586151507165045130280224198499623542183959021786940325501579883889744573181233673863331301743647761602934735462966637356946980148364037683554045384123540708071449266600779037972626163081044040373659972860927232565940991009920602229201284463764998416353432238275108413958222968459754918661068587987090231998403507204837427632019057095847112666329787481834208571659189973113742494587610068198182822031641695912138086083299432014832930092512146424179721013891505131681234743619260407818827831316775923031688777245859296653965474086970831595785424291974655777160739351312679450519708504453669399111583598018623369556518846987074855756219448369394200814163590791785876390104159223963821081601143290696365514501999994640210236492854669767928552638958891001367863588544761071774933359044879229819027401178687860417129879568145275466077963376419445681399984061128375095438335032229252533715879048276805599074777846574775442764362603508078105375381533208184002363027845001714830133989154882144331082197097855575251900826356974028837231249571068238823499211725518332344961737881294775019404490290977987960179924086331263491479490523966328620117794471665503231484009376208754579920314499010814485532839906236944896514366954807175598607996897099249663982446202153890404308149020697789615333592178152043875609521136460318029524343465990193441417090261472226100336670593647813803492252063352951709691968450551293071535803721511815232615828625987051886332258311731202704209780070785897262907663950709858683085625695458769463155247404955247837504842770542204412440076646130332630649297001952020045697676810993671961670216835194258220808439903327913708953534087326086153290695641618133125699452575891962029547769647517445482506173836993867192246068160284272925254264242210611580566353528287786926509933497136129945816566413869412166616827648521932744554493536559105213637316989719241353904603966232366460297578809517249194597992403929933770865266993488917531738249026438345172086554606081207527428571472266784246750545820370781966039820728950730825026397381659507889153720561719147018110178544976543246915870876778922951696577747093168515937962930771539822812592829367126502244005371550673346132411399585266216890194703170489278676337241771768434705705462061534146239185237120793881123772691732764333193247863628585023751980686429012212709433193113853840885307419997864448056509470602496643444317878771872306420887855350958389207020610165471112275717431102135821026810981441827671572352724905457507891895626494063329237107580780427434797133906436972933290073611856025369450922375117317758073138378699840086288337926265626308879118759671783145755445647880049910392166883755657664124632562609899710741877974422551396117060642978761716613104127515963183452868270799234167030633896057848623346611110422487491227584529781688410462965176954525392510209611258678171359506369297927848439117680856970719902825552530663826757737581074986729480945459188724981643382359904840759463095007732761273838463882061581673364445740933052205214220747353291331388185598231840698377093290633788563112519498839739792322104777446788821662090768906050444351535232703615789685133071127921367001844460184114962589520712157258499217667769328705919141534079344852704816554140259177991238197423824728146041492122465251379766275027738158839073900221237667153350965012504449081142100523697175611258890341679975274435255747597035455486309193190827129826603204560754007660084342365061290302213876210288618541853385853414971562317428091751373409245844585925727877481970283037814636071356678758810875967837353999501172035821138065512520460683022351173543883180138436978608651108751247814032018809911841081061965060837894796335181775251078619610500749323777302943185817569519532817187707073143049463869394548640146384367943848040249103274610642745187935399974624810945633588792828917663024943450411515193581372812998033383355988075501481507611408288847297724503357361333023719811625057129066227493222882599542228246454021806046553381740664364758405671532983318830629492149799890678374810671560547032253830792818403055280355761775950854610139941045013717108502195224505425918497413132966191710332583270284028039826415662031718014355180306251002225464175063694646781493148582358616580879573327033875168534216215233585542174385233313372829399985704567926822109059534847497696406232673302561056713378221543950252253014162627406670621294020083248332138105791830424140382694738420398407965872278749000328030799068071725943255230223066779778933546244166986381751476535154458259464026728108709936662035947681313918229630373178013108661622102081089750148685566351912004777861469656870074409004025542269712629340631002075246659562448632308303204551577583758849559764885978086695780949599327940005531102644656503204322317196750202876929456327084764183545496767653336646717578895062644213624667789963752159518950794554771494762877766411401493190873863999995489996287280309326791370424373418153764012674520827179333981682785767669878826569099874539934610735433302657114617966013476066055539373865070552598032527147352769651660128312261920999680923325042568812383462375916964257639818173892497618501367018724506795130882206140172480408875189190841682649561964054575497135384626292074600142345857557264250278012699077275828273141361112700625272933100575497874643903888781258847584002423113918176298697741808091677588561709468215204985878016127219056211896578456971859532491517752484220195714975262167698105813749889615734801555925885568637906438494459146145649475994160700819338302058490000156851444430018265742588004215941697377501963058335682471885054936591808043074018832673104948232453579221132946433173128371025875249560548688200895794087745592077287624106132593716119853317721680879834725958702140243661036174991942352789058367979548324649342815969822255741954859893508932051220530707246420153981199865897360998378991036101009977229626988730016026504022904841576132923858968316004389384080004568035085056764356172872267810212205453751601980545624747477829584649366492116456527384931819343820035478052665083443358446955587763703913832388710014767268871164571199767443180075852589046473539705957928553207678709733511482172374352639863520232541794076448418436496080028148514013765647280851991749289138893036523595975957119171972338489026469257399036700865879071316405771487125992196272089806371403419718240666448805208029084950410292453895360954542536103595483547517869696920544337855971116956281544498907835154166577351772740709152549301191596730737704352887327147907986886294914887577242520532877257894325922020244321293867344254700262785906410874034468905099140629267288787968235810303756913427252937045277546538876850505160382436244923165278585267628736610142150661895166611873948224726138669301608672816493871510665345981970997916898370886008584584075259864154796295945071008436021159614025670018070210205678467526933253145205390008517779806354603014717126515224124475878922131339165560126672949249539617757548939867256740776882019125734751877697427341201500792163633311996087475168103125731700952374625748815227105876250078144634078698954684838845662709077790257481045510801455178099777830030985915211799310979201685850722713358333565232011217909573359136880007905978659574916753279919934828434736845954891296804021118385264422602377467991526119579116910330353924094244641295488927662250306185775443412144153326889711113508299854235700461749611198046298774284020975196571267391403395499467916370642078783410675205512606658386191459573250660860859655139393144617894791270649420424732015030608308194158332597208131103054177775931024728535656818973116332436365832760320704909457028602143375546103895249056237485070834507550231079373151662278889766855571080766361205930286791285549880576917449541916060539617947189745146896013729842641218941647741678176911730688270559351552378250919119481726993135070379448385176390965483474479243765294122601417492309859441777744565706823161945191814640068362503184413820095851607167193155211770792511390880196621514745620197647706711287678829059624570039329388452257451767201376806735862713195782616498221585792087128981439003195174107253444848955131974991716635974387774983616567774675973248370755576460447807970559915472683770300916818638039833844613033707802352831817784726010883204201435884543661861983286341193864589062169591695468155853070509674862484582273873683880765042879308337576171421490521445753501560772419551910949433822140282892640942906742600360891082118346813062226878765572187917694159137434527942053753365601391456527572274917247044799083760069023070992336890640720290943308903799051647337587926308529938077253596139094496498688684835919898509488074547060075768039554589201164215080317679525839404573644981351965809061404169635750223176599942310881844452051464675957549678203530189723185985600626726477538909679188651238994672956403716709931757781493220159208837720078048524957154503032889712667708167410233259271516651412007156664284543592220738169995103516867969628578223414682358235300883252870313009832688416031743717426526996252516633865625697830610615877819468351495091103370362935644868738218703047072027504239614635535696914242716574684904177639182679904966700387023136307811161896650191426408473768323801915104117499527523796169823618871840724419383510920240214403973154089600508479521315512880552752602074197418151543605372917792663975796415176180355689731467199631036651666138086806002795246174819425786089474883215058342914241741318758732542997844287923361374491855795292135870368029303569064600846996454943990095170851869419623776253062857743874399060506789622287172083994725887401291686203595143748892545288048372537036640059770868860211797609965430805359629717065373005892301925730470162883252215047667757042372695537161964395048319391548770669279617204128882401373019727471930010007007547338521350392833034087509313376826687119839703934010772139506202889572826461517852093655279344393252857168773134117962043595012147764739252300551241797820859558482124362081265434118225295297129104517005936953616239921211231427111779054585201762820680143009192810226046209168078081403190962374445419689235941678296409289310984355967718653908243874490782401743830455821625284894008057333921713292984108093477814632554416123126447238196804867580472459927518954102650772845404867451993628064835122288690399584014022809458816473082085090390979246332064553079788159085440840808892937025360031680814455638252889998805757329279523409903456187581962192168647878383120826456767248561763447944492864824609485203520382050771231521862448067431166909840827452405459578477136674066689932240412950348458207812795340514080643986224479517608027661275832399742763478489608710807438083208743033396131212823576773038719243861298595287474312038443088576392580296199238088379152181665136671186811558014414753695554457379389206251854603687325725911879670520503209770667123422472791502997371706917194204061163977216904392743818916574580498513398530148365301897912368386675477957791852816503380654643984880254023896954076543574319240032365642356343529452969484107050612658727367458527458511188774058311872748740306599658306661096682747250485941642120895509786595153793734373395930063498200551734006735365177874955594412061321910465006308352690185679016948571662259706725157960386127216721348526336779155680027369912055673132047020114424957360264049385796889371892134902449948901556237046690169794595240644876267749443101995373406024810376121024833600245652473455139675701811732261315781940623443748704546948962199028089435652486227911551385523474356765320100905582655231541907206007701902684285870219547753092622577577063500113629332316378839337309970000731545338544194242536578471652875205484584341572404156126715686537968920007251799340466942212502805037554884696214046102685083953809341216908352913600585159589464292604240537867497902163651075269107600316806062606335407137049361017730877782414070883636674377366935728892042975207895074214381682611667844789844484695310314944944613230400248913018617392637937679333657488572548761964789200695225270525277299710094319603161864366611339655531797609169737778046484878218565253632054609652571637704933666700853615479082287803117429431875774435650070778268647356756391889449768932363725462804825940103129196720087420039498736537404488531397015976643418499976297214583591481593669951283642358348822360171329978013258380346370806299525643847116654341146695377166126182276656783361571245584768967151120820390496577398193350476872879170984729259864273824353523537279177528025684856283925653477048968376545484548533722478338057468183314063842410775879661611842693592054213597480185019756250799411023715774584441453084832312207993015106679730300668441753286199949165000202220222848648344262876839785879648748255379865618260144474073802027313166704856680326676534810019603390572124890828884133579995692105002361883021646152768879234770700468545417728795209664256318119661033651834902413309333557495315424429475800045041820009299342869899667224443672929070450727095944888184958715224872046094213881295551059104078332941171254390680266319965304896882465627961101128048768733842798807500696795207269763321132829340949487310810306196796733582186723086157149159146642771660453254970877275653405629532054347696261349232369378927457357292016218856442647352209714595229293191495843102128154800488121817883890283412477788269935066983305969861782290020149023743718954784018388153710046454583204387899904756153276378987944144541248736184061450198166655362687268676325768916428705032126659376839291925601924336719857115785939997352294292542180447116937512524035825920028792567481675100907656872921270513246872375946182883005857694499761814504353585279456511622358550325612278933126681896342668654660515737225249112719196494367049592455935856510275508580808512626403186329337777786722545619945344337618972029558641547372595596260674818580799554614759752125525385707912841041433070931338009664417859935756390079280245738917247915926832795871684414895429367172017048580234939327539228471839469332159528530144889366587050622362295128311168062067757805602143447449888714492936733254309789772926324749947161891422087463832562026208018083825409903050302982005563842627358528637460096942096937807318282596801478271447088187749120094798190582648742474635487899609821986821649985554938372897146888795895683115305584136855330518247945012082658058386537770297376155122493251767712316311860240879426634715238226559451848443471958068947040192750459211316343671842073260805770355930908414894427966969633902131504101379074834771045601976651666529019370004046872098593445731737204001642393465057111826951390313860472617241502060862107019467140863369888300125249174343671627694506059960769171456537730017697892643144782479723075581496874248271771944055696421753498412502285452156116949114930744849082035636629460570368770343426435496376982431506048726285428436845219375391762431461543993671012218719201996570670454979146545646349682122070481788643854314117646611922548316374511142145250634783780948928715186725268335904800460665916687033144518991586318497644120558594629257426542715803911221396582225850627373385485015688816104454699769491017089582134992446484917638739621899422023711037546521730215790557783029210040603979303035533145797569287929870012912273805839071258806517556402272167389291154650047158504859000720814872585824488639627529904243101097907131318088098243973316531579509780643099322107877470405516831691877553203183102488379442603528920675013172113648725843066810373719153708251723424216177668016442011378793579947547961524624187529853158707635513667769796100333587573641575977934796232624970351976619415353502940263695926938659467198459308592445002701841757082312034100376645790716567633143102388349365189683907248517867561538230962862977007199196474155008234599804903721128087667505485078662526952874439268964262777823313397711805517554294715259905776889053890365261061427434903294109433437830221003139741226435852175470385807437767578575185109669278702723048810074656310494351595605012062853096178371462697157824894715374022298944933586443987795662090619511074186102010220800873531830441376138285961756136971177252007693775528734331274842086095671507943192269694502428383139695605455564969090544810547307759104766479043379064301093924438034198225276703893007118381203548099867636297816963163727086373723057107768570570864637969953709048694736727770652020124745916462850456696472689869735014886207813172459143229899919684042666613399281502316877604677144884472203039094251983679891591437729553734429509716582901095080428780889976980586003886496469339807254500619146514667259359724214570953584488687902437385603907948595480923108424273718691581526642891278642956272699462582587048782269041265522261390638570500483603020101897394145727914894070708499216795206873801840269321784867741979534268569900800860195879648951592047019603950292136657103464729704884633840400644668915417847594438576511092196590396966565029546334689096650537437536203938926243314213525070636873673087064177715481730715916644141966817838886038855948817367581447049328791373314296048329038350772574856961627830907811770042664189494297931171724436835161816169381814473066120134256482631177360840145532975360761175780943096230287791421259564287853729301842951871214124091083158655805338998617717085575889039544142948331570329043268073247604248162601892109155069718357552105493872364697736761123942391910616942104933079781866646633604475631367457190968093702426810297671386603366691952840820497967373638241836995389884165518370042286669704329549699920542954565100056913211829514722585777012906860927012846236450846556226420391528819605999739050944985027489576923793386253397158355900680165010280851127814654738929877191816842854112927424316935267966289333968490931748744513204566163881870754160100816162700489279588269704333577028444560361438844635523256893471012681099332893010417842915998744015615181257421832885326909215644149748271581781975752878566120808481739207326734186382600845285694908101254612144044073509173326784088596076125186098836482577775169658109985493229006964566810362636988955078157709357835254625188356610429946180696552184164776429774121256380149159562089098930710818726298632568351839098419199167066942085259930596990410905934208890068992292691628394621378284462833900754401085121471611971538250071979867543276910156736959690188446311991964634702420547759582143712196835233731737259237657310373778586812717583444146971250144186459841726511069895755502266948067314517927003226428505458242636199356735085399178934137487142855975721782934501073841384238666439869294227732414206234402876241841316814405789698647872022258663700365927736363457856618070542161853833730498082419249858464353869409581289296872633017962000150056053541953239245090939165832404301526992723104599183606670035504930465235455390581289450270741630251635095391679895712748114855643644879457396171770906320832755150077544761662956066488747079567903308576634274593706910635450274605391017342421370309263773086101559917002426220398622439218859270441405634623267144680297597870024142904053451671841920367267339920363242810159248921034516970666214353708957184924622764970739228897688110886590538165841310566728285333042576950942178337826803332965385052609322125424852015977605737258900919518614686988798476575003010259946294411755896864471490854221696426938160439702560629212674103184572846012928250669646827572073750144050417598853978237531013484330494394026113797784088246024824489503762258941483783188581258045203838474803005966360187361130960743763871120324210657155533147846440600080398601866301408664394655810774333025129444784370282164310184202396471403302486682028276887498442838813489066037008583938877756962510216436761243783177636743542109857220884031679403017288512546067192964815670673029510058996513745085353167578199075448772406932420627903704398484514861594621851890309887795308794363825276762671493510944183986318625519556701759859247382850879700875390622277047841284506111794277328060083857679695780355976809954695712469289586624696853782042393666290652117486243704992583943672454387165228207522112445226043897280321213344361230920400819979147436766811934793943039831040756051904600631777502376914856075287310322887884859239154980402576178727974728300677819641198753919495772411653260840676459084136682449913456294727743664776025113326857269791930164474046723505027129023763895588728053520776609164842588266916471620732934083783450218293497270356823051837692636340722891590452689858863153697175022096784512324807041568114604840313799194692309975942796133003948461719379803417484617966211739120900107355621097529855144437578924000977977429775994269340259572871650994568344806309145477185612630941304576662958766286931859049458874766839098390383059830177910507216379259263804565861050717068894622753994549869972401046944009339356618658175721674414720476576187264568531762538428869248497488762788384205585357907480517233418948304070329003935785525305901057228051253355271616989393771477280272743388768709990058757817170532964550454574015900958117435286042991051134780643212541495066548417512234318185146378122989723393232255094432176355685504197090908993952841178682950799490925451054517418889506431103558397678337919589427092674261125791358296795996080889694804838420218390350988971496476172526584278667399482993419073283886573823844721847884150348308513520643879116929519469057560356004998427945440217677568221223184563139244463641586968736825293362649246488844916937890299372194996569279816777242790962517270689361093541459590555846712085559717616977615262657327873515334893005822242431858231910120036032675670228711839535161412559337101520491240707289905788570429991194290663040188996340928497508375440377807201842092508386127551020027881320588513868038917250713722158327836542927216687372357080518398529111840913589040518536839805937996674888290924646538057780576364617844396647289595190655944383915636970910235028248906860114736655395648675649914472989955874055940306720610945342111806872799127653144839347125660862921397164468453414865381921515951941316858787648963023414802319141096459477817528680054285190991318839204121050982446600845126442688824765088850627005871556943333706181500678831188147048551536886239510484995221608473764093860400254652213199463299108508252871802494517975556552753468256754263842508109482148630583788126948489448177494205983823210809748704783386674080795479029602522004139794033859282203997067995762022716985238367962619607042837680194935435163800577637620627143337262097940367955681802875688371207951305104463579971607975812223538529138363253913933648319963785724542496957985432664095437606544029443890234648562183778064661058706242044154015659056123576041147514657643549994471190420073244959039437550679249704120289609337526930560178556459266844136007059244868523202591726605997193248743980654359061280442223865546021354372068660503057397713377908598817887647702839952924063213867467694159348998241178911248006772799515404994625343433781979112352890292671781422245383657141337871415907292771979849836769429303176613600569997808290338314690616922733227509003785582413621562647602770994405890542381811842697360772168052477335077410449078014426168302467639683578009369475457449843232540121233113908844243646017272494544650296299843245260491532405906685716598322263995499929886886582230959900313309189393994017497143054017948005773230202305926923941847456010493760342343315136999099080379829045873678870586673397212111247507663104863465221355428026547955941525598291071988904010236719751452135256403367643787220452313776810254774692433306591804641350350199370799699863949605870900578957465361646362392468641409265349212136171818474400227682441413633931614796976770927876027303454711140384679593254163691657655639293964775905272119879286338213907794859777635486307437486369410628709332427111778250768041866190743613580494457784673684216051671194701764841101342349775634658777804650599878771741318691674265108018158390451885112903023061504234255633719946499817707401839820116246405819851327446284123231775608719153986292484598500541453278851943512481157152431327399287467494620805488816711911282154890401774161444157621952597640258080672129966336348728022979407318294596468631057667652113573007828631389343752451449399592878187998512736340567146831317986416431914395228156401905644464454575137320272999039380785451659625470962808860423218797587909574291404564937396731940504095278751792308142926717695961961777421646633714998404910930868122358113044992957521322239336530475802808415904777370394213557245676443575249508750737551796107467851507660811013191312079429900803684650536134171183669724504315342701019800861143663530092007808916582182101221464193726823866034124118001130657452579408189590725712814790059843551459818218059550972295667189658544695658681949282534715587926554696585649545318085906762968741630932869421807583821486440516137722093216193688174353427591783372788399882759625333184896529324698463779692388733738804596882538315947956338591600203124633916398145758821160680618647401209597567565600703859042664084202575892415817016964137847833699293898505062682136793243898747709941518314695277426459455283804561899972353286677320519802952204442828896885424373625520744381308126666468253619104680641854492493189521989608906494006136453867940118847599520071939881999035869735550926866173989192735257877583828958675311669706428252633893796768356928087680374361640362836615549693642342616405991140570702872686597189983774122033802177508759706655218061840676782455138210944506048844569519959861433783391578913818020189418217087364227201057681417176938646032721805990732403858133345110654396494697795044939937879951162617383984017705222392219148251201633969989349906006890990165205685620085806080798063978473645041675025991517682137713303891966829599166972532667464781501784281489550041204699436854560317499905704002594921156217570015670310162252802679692231439181708815262450315479679320707939193865064515340842010578890299077641531124697587492180611137487469385800369201875825734688325979346012847370942792424879528779957998258736210480636406569137947982705480632418692557425010507855223885485160189561445987917678112344267420568248488524714286195189341872187175762454297568934872270103094415544795752775910027206116964577862483601110163892811290986176359322936846107075064580072470582925550690873085217471318322102752441904121432272382119993441061067161656336071222627343299218637307113866656585440881686578445340291302061266912687530685298558014016564330146167452138503568151159336856740223975371397042746351214708497842534499496619920480966343269471707069265583106368578433408059160841976987585953762856377721540565030205464905882536333327633530962571014605236758094184496162434719597105453421873063183130405372978735481709458777727976464339407561256057379576909454518108172783051293125513087324780643947296001240870714897337634997017377134967550065450956961570044451369173072058161624459918263143091219242236035108506343636420446382884275775141924458895348338277418535408122669444094623868612978278253950866685277530949447203050943737272055276910785232791099710780119553562223890189034588461055684027966785608698841803393218901336140923579466329416450357976599006764923718860910039115735573081952306762268982987379534748094928655319251274978985223079288222779269729227711074508161514442131347070047842556365053153119192234029413233037315936374608443561414811852517998359407113956441246700372484306900367381728931675950357287131965367156137945450789677691121659972578084244795740051637722327616328076227072072181886660965081887858783388352458233670949309532587466766546826128009287225976643344026147506128583862860148914672056208128423824859973424378296880103888774728863347144211144797432932792838829092289687582639292673467617425573250801965532612999929760051319067388656762401055407267544136303530212276585655511647470622115692216335662989926600995097300684415332478012490462446543782101114046893281998431183350642133337248660779559870653043650696245947959501130543855050250876786134884185815419653932136707250593579341071824488099217365404823608448005645721214869361653843798935063222365387800920125225267778009271719174944716728844058880926549890285432313610093295758970233555984829277110205205579058257588403107323318575987357327076612715400657356341095315952507014644651762361132114350466498093830154942266734878316970698911986154811842492283840312108059548229285699291495834238922161448875521043685621274357478447000379896331067005814641752099283306302454921521830966946594927123390724196374888052685076989011711154808647246985717297690208181215698378972236731294527679405772874598575504126481952785923065525880996541025673739265258416277061299520181877097118821831672012145246792066851014892333145042976787891635290917463024575324478434703156098878927794646176984534986771363248366197828297143216430177822615032925131493081231315509423410557770872169356563347965430793542241293684209076627771466837702166942049560773556516418289300253426237730843601019033022458572298371514251352590992906065571311703916802150305970904885712187765996670378168457883838217497332734840256792120381910792000987806744575481791655076290001173598733967008827949699101331991020096046719507447993194538964277244301538875563134330289187203300086748029255188410600651843713131478229446273596166322139928135215349868842604670451994449584172656584674928181240855117165079794902518848554425356778882523248506417504103329845833458428076649026730605768424890344113215754354268024425212635226447980210076494988991767104254493926309702284524950950200679584412064111449657009657764379177643144435210144153783987439865601707207870137664335829788573726076635117923955306891255162982210525006224768359390005274755956995137815707510995243782550020154107919390737959852597205619901511501882825212634294429300783632438541438545806969925755662869226447131781620602603030037330924985020939108171306767085310954738522215702548662288979531935650621992229820736790526756367851876092902218341298712939607001108908159795633574291521114196945380632483986686767253774776871416938848145037125622536935780524263792284009382516674751985419105955037948339520238003559065510174857442221564732081804667428659204025950396427585924028775618109002063885560429247339044708519308118806887249243634974128107829065490192259162803176905826987208528606210758181657279734139757155237272811039588592833604743714208167239340847410254232728568331474350731099241364934922457557848433703919126086066773599854367353531574496262645614036268080202389944454595403088117893359732959410802829068174604578713217302147079379766235870112763697569548809400926545714958794941008540886941161818658971754280889105719490623461506910484913493070702253636309476764293423050805176773067033807765636251495136308472505936437868569330115447085074545091658129286906415443481868340767772687256800143680598607336224565347613899320601828173702801522286797735398529632441947019496479096761623445625201974004921192701125746957426409634137139258740013102396726447629553263828781070420498372250204146467539212213432848647780893117585604993626062232046078576073994786536902521123880210694883850270716622961746514995993721245526726194810745775233370204063848620073685973725775160984618139412157953941351191136475697293474450116492212572623578321895583848497510972980760677790719307124724780546518563979456334882725149750763128389533839763086512878365433068180767748431234805082312993013753471143516179999389493112257126358984118897273040763569883141343479316008708717131227837504917830555798096446298078477857042828982990243254169675078283826254886384087940478029711543623445652493696269160352547331925172106947402784485372080636257623142489000948403572397491401450129651342395076813910036914285504469501863524689534864053828066986822141341670400860932748943127868893244476299346893873000496784026162617094005285482619300139499913076088886431746025537706670141552395150216587049212058810683110177322660405067504613540485823009908517323473570232120110996962527982353587177318917663075353909719860209431661715707671042807143512791723284571276636381448640433661063862119216595653766533799158518516002358079964004298740810759508833375745448982583592016007385935725941918912804266805483044091788922607096144408223434410510244802472444531648292435957261272697941513969775764806050798941273857484014486354914747443425963145862713840485579476858524015501573729852337367487169262755037224872163207744679133137650728593890815474151887789335547948864527311263124566527451855317165799467944140048314443791055598330645673564275749022817314623672817248041277172318957290173373834159179165615495823431192464631155809938177453206832449716650537423045737252363561661678618179510753097689550493906444263576274896428210507070745189702914881419751722163672767270368551021908766325184808377844682222075113167768297354968669111552469568914822002766490084840971913382578542651446523634574906137422747609951513210541683073729961000893735412461729564129278532576605812095575051134283808561963896412794586390778132106930131939298029352419525594406715667090108251184939736089503427686273311333402063728798172961765240097123425821109273913982371981362770340122254008347784904563180383031396309543221220222667748283022167384265042321698092105701555158540482479010376729780194690924522975911039845853775963799224010800601620791279122392954696182903989029036818686230299244281722381321465915907611125992176611603647786710272590547784327652403271557816998893576012741668181355902847403538321785731037975508975528550271274516245021942680306133633658774135369124106035388673666957243362130268436080543320944554869505437915603391061075790102774590138784330826958137868029326723053326170166828521138435211555842872813095315590097867440924318585307578221517718143132314320732956895978939924752202551181940306087674750292411186564473105586108491897430479748311984226225068635792938483323680994975465763444171080437854282234334542587216035203254856126046743230244249608196668187028319318258998660789677111043000542052010965810218252853232277540797985620897794907052804732490982856016546472064044805767914655264442945518097194457979021028873033854515315974968431376057683531382498965147880952636634835227428911049159657943054675292768778183429502250096817076220188824163961487917707672534730092469547736244848777878130216624099089785878818762239048820994101812782778377963905831139274400835243445335444246983338984068487782334478896838570791654545556299575763357960018645676078110548129932910975079926161088720721259234061946709815808551384515110782438377380997235424250531325990529856938819861197781918317028327135306571225249761177925788903683281211615555439217900137963993850416999030609919528073767746856085539815155501149385033127034374978143794386545029984901587043603380910136706238910563242824765087066587604869324793767942419949075400901162348380990230588897438688024672112727485316876879643425359938770959734072345329616151079593075136683556541230396387552751141045951143327620829573178229742919655185945153076900116943115433266119398794695912163142579315746807646557127504676124613448246942500872228453345579416767654724680612032061805947640985214070666801141432177984055158434894184544978853834628021219184842893264541287963138856097955748127825075078765761395756478686103758593297931115063156400098490636816194818996803114762557000776285761177332370356954194918516402092642697229008753794692865723570171720416032144829935619221848723031525716513744939633289461963966028926284047483620359572619972414725194862456160647095363253874426579545417558213201089514515224895125926415651846884238761349649775169886144983609436897589408377745339408649735130308424240215715876502058341924702196420808638829743234558211980638788996734353041902104782422026542968774464878648540724610124640467532748730836701487065537391896908752373512089933310892073549977844116002997890418051614200561088105165718093775151112138519277691296095670956626055046810545511431159676422098820352245236353660381933846837353263628302053955819689211104754276175036065333997821794652804453330236152018776273172444159680251148058265464319171769034459172897052517348366837070008071485714801120975959352395545199257486400638083004298846298056708574100493337646511843060890185140939182068033884788428869425191709559193229026316331888923427316350299278957372504515762514095443134728688788841743617875787848340428677169590493728572191128673900111038272105473125061618063001657217695977078053531806633931718492142149318580487615802653706933111887392960702551377251551453903526961827851978388804149390128834574674052170206399456391710014375433526063654235936972629520436437882903386497175658471715115341520980320179149764289487728250942878131654747306739819131186321994557316545404960570190281192284242623564968827092544502327277491235824064634384934639968550933630157780019139341744776721910329874854061221483939000899794406904552858869908298525313047807311840338854189535870814118925106771381592894665217951785929883075001562916212662620130411981497041459882681726799789856982682110936428093524885873771643250040859550912255221266305825308503396005112391770955812709929634140878008204640636092039731123770685921715552502987602590298985637829099285207989153370540844887736149902996011161169300314746156505913021874075973482603693823740605076705038281200957898988751194364632543290611655031185061834369269003934357137418293751764959310662760885938607309412021672612422023555503561975217458335795461046221629426640550375814883158365218636064003781747145635086398125527237777969214702751720709983480525294771750960114001733187328557687564115933165555578122048769584579950811283649878286939017742076664238497528151818377219610939946647923205906208237909327839713898535768332635249305342972024759206282717998193985493007133220420634540650210277832361849376063557260803400470927374984521382635927176912093797386246392605073569687965148691637548411256474505279799219438403571338868529141699562872605093323161300091530112027726662644083209045049142629650834324327957003505326661392599500526041431972969429613824989203671069771087444887602155105114726824045274033500220593342151723658337564790051173472187385851468775235046741058648772715506547789885101603319417811183313618493667036830017338852617887060268984709693960016399196528500558081021521582755237867947139452026147522538970934493218183888423132683735979516890584382492177788246888175981280519879638591069503727208215370039293616007775746980607722366110936194027113948903102184392801750001031918914087194405255196367418290242323504479925105552589270953211644274986226644906823753304463609665604318274668257548936739059156279963992048242604774760311651031370464196440643966505463336933177765285115831257600246558850696239261461156587197050765488568199400914222289475188551665427789985731708461053743256175040448592188984046271446091246096468605320022104620448069616174312955194370421789084469456213800392700070667269921606742642771774967894836142211046446513689990698348387304454439817482672420594574597456351384982301598495399992473433294847019249982963325571695985081878265893495586382847634905289122459432490168955642351427931607826642490725701039166131466603721472517945458507564697488772953603855408818207380994077439090814949837647890024524081085929744386854510082773260100713513185236478884194046920478879808995877579790649832980155709789985187859681221799666298695737060109173783378184072236905857731168635604388892961310674169237913902712838957539946187160131175362520339835569457778693496707572724494178932612845291911660329247338209947230061305948976027743321939798733677803324127716552463203405195627888696573935273906614770775752370725767509682269444955641645136664836139591510806615580781393549036867316808676200589984111595514088291457073242557561226414768271681190071078238729270564898747038779988119163129844711724652302333868210094046454458653940479794930617237302237906051988476715753116943187227245491680693794770891304179277189682976513970725035452475308151706939099954823856239654760314403344870437882223182783538393944610104355619137068084279748386490324121547497892834081826748273568186871454016932647529763068068512929961170997591721682774582719040380899150862373130478066865961326146947898883411035317183971769506577031402012246794342609537412678985224089084332720291575056263003988120319470181758632606625599265955829404905624042342002384732924649558487213434466813811244081222137653444095315899438297675985723989526873240440849615187889966217542581617322949350067293663420283952944975065988348408887926884675486625197873526480738220245064692658848636100163035837204265385529699839527123014832624811546499275448455833379982695548043566773773476934151156141684782873529037670328215083728173097103232278121972976908648652595586087692506823809521576329889854283842684798475403694083295455680857616096994131611864991705123793427500964999267702120179394747045866831592387106124940437389727444692557406133503187499106778685841778299775910083613011729860208440732463234815560374341466959971839697395275125406617323893783922718347368897757177501915273590091189164247134039799929455954581344032834907263816489936150193724907981351035892716719815658896453161025936212870250291294525913168884692287816340332668738897135709476326276963975143495583724063769037642836811800184421731965958109017974814561154938532367923018898615512806723414265347466910666332850748644990234965053414727232713210351743137012713140837168253525282848992393644464462540331841820580936334858558235741833864247807422844623912261552972742295999307129728822993888870890357277210656248008558347778087676021174217975773910980173500279854196742522496254298240966210555812531420124954041504755099222871013722040529651152132844413375717927489503294371812083405961122406753519535079556871328427985592756461859711582399253855755525684219061221822352694775435879373304581667831674354593909741944748254922060489198110073026496474258948494701346308006234065160808563720556014971198788848813770589556574327006568197357634528040740071273616952012321467526451787841600573735242122521943024280342197194582960946313001437999940451438133850562861509328711172193739140019980091612544098932970598190988373271316949153130851826506652053957390717678599010698196689936066649189408094232444150112734712294437850305104790123078595616642197044305023628598119546365867347687521108543570360445251800452288387335526404450418614941988769612719675184564143429331532218795978266650654099846554685350159095650552686507417322438025930020924074689089723741184930725535442533504704661285215357110932264352351716168345448990581799197755659140518833682920437369248884428683357741884622399535223032863891223433135966608744100822923095476654017302067443253067792236614275217563847715459805411641800970286236953117513509792599428131093635167949424161839006414504270427252399537352129779895937536241527780152571982794556151144440683589524646049541644227691295101877519629753306424814466515039640179383877664266666954683160908807622793207995147419342328710067419909815679410818887197318791195895009458378261005882179202852288685668773483701672255292991418302811157988123850690636051949839832575133625151217066638819969969446739381495846906725374776586823589926309638819638370672487984518901165266326595071629061083552808819126071196042582027103222271462291951149950016542975536386473669449475927284327279210553912805767054578951502156329987730338830789756252892689431439957636125527199056226853197258603046480922499230980078549704287271009127398726290799883655639573922305514653420672899374702229078871190934865732316855668664792122370332353335654044299804546109103569694668601611003375949641299991188309257092488840934491643269126635750858666637324562183472878474182633837880668339580529789834456461761692308715432518345216047406012880253281850438378170616228559449533614095130303026586955139261392109711853989908073282667520908549111509473734745209511575312314030365939738406096052548976469566162923538324903694298856323552459348477601190458605641197963721869316193813089530902919932457019074321492961334074070750715281550033178259964592259537841371287879442756452464844336952412983637760445053936698357440000033763259358321770604807296943993016086598165795757621933406159673224350232067393815667945627443272426742942273872060956816736562862561949729001798179882223466411282119900313154133949917664656388799701730659282841458815856926988192098961135596272600364034285549063742108138092597686368404969692068079409681984200720846654420984177838724780259670198808930324781817359469381918014777060979003675598786782315249794720898679760568900406676692970818899049643939366598840260915172463954169300654504832465037905208103823951946254480140720824617787409947405425768930460271282141359825855421061408368215643113147510800720438482006652400104213891043653683485678204205106088871242269053345844579827344909874319029498466028733089570353875617691693077515513430708625774254461955471455537914918474073491327609557341187288899138561619766992492912448634625367765542445076244187465730000813416911192656283128046660012473126590517154951804679482601789507617655757974416528919603842368236263356544132797711106419657231924837055209359975686351421864453009914116569821490239077709051618977350357041801765935614797073725496278919752408837282383591475175956453942285843743614359447024878295016470768074703570151833285617982089751497556135611238914254279884609973879960346888816463676466323255693735205377257743987647383647668320274506577063404494339653068938377649901188683323600788999289965318963231717623516941703575309193745148731468957821987385456772418216669061320515092325949081742216381175764294522000297163103970472583864198636568368922134427671903436897384273328612955759437650272291787437757731453082278565258746393516607066941432139767653356153291390327827677530147184640267135778828092480418602791784706934031009624076561602617190855293649719034304476853175597943484208377209095981236029568529658329523964568000239352989066253181983668898681302601243814510030287941670155681561508389585261800619886190125376313495605913390489826186088413133211506942829915859745835743742985992523974370657132988679402406373903180995659782044946310357174198339689270887181216491774657382329437081477149623500997621257638864446572018525408035587029375126251547978135189581017552107850040164634848977357032935435318723817639645248296062043734776129856072169638514695175551439835625644576263933481217480452902099687525418176107474357305335371141922285961648989825625461188867060402738780660488566429943519322331283566206035467767072235152004482104152793058143074431292816611561177760856689353941312839941256547755713298441157085942551479564922408239635895935150416540775440824239825827702502149798040134761920374799567059520072732732453951036050316745556258195795420211892009393258358882541137362356701434384512006638795389022384506668700386975490266992386283816459254481872853699811060387071895416396250291098213020018735260135981033737663660683581074120856660911239389659516797847159594226504568664934991326867414224655533426841409220690942307913017234402687697316857986934655627381061491306433312093351465414273430243925753035308908392856807260052249489136018506002690357022100063831851699999085513902738291274555370638458702036085993213503600443093199072876540157934513549137836814544165184204093763011048277363444100853552126150114645011209829632688484922653142831251289295178106825652648785048834755536020946825907672693180528991932671889978980013982959570659239292873260488409673848706186983069144990435889442269240570817161775267722191219129735276857632456434925813267787293276237709199596322584325513210521178929838117976131860627070978206427833475140457036329415051992122929643809389674996434172613065713428043619714601170820603121028694336495426572524854523830725870638565844004433806559884026324417327259687473747133161065360996011941562203148211720695741531280724368484293386471528033945248734957293866912400099209415612799470765511041523496335840978842934957841127447022708420043306022510143877247013293886277242414088270058961610794328534734893676092401597986126077971464294841571854521686521487757422800583135583204805645180012626044230769525130645652546856471933751675946006300188285660251035514488480937261773689480349867388559015636743852947207600248166727874828368367814916981110131961504705606249233553079095505031495016798043978978244336173100543761367004912359149037482909761594486263146321805651130153505130925374557055746202336203037128308245458957485898427513931579248508220217136822088472247058337496523446151732202110315562941898531972713690116379304362371408704135115073179131950061065504911230151048253916606829109733939670791603026984300022265977995879244596605951435656229121660246880458166666365822015875561188383866117182135790022122218471878341692737545777502248467848940446489661933507379967988214897771136673750574696546009507641549495593640129789787935218024258434274840413688256268535561269902390788472700584717424324484483796684548043748339770058367788648306952500831826341387400903142936485308098420955846331276264854775819089987112986030903573482943064811704925102492175713102324703760021080806367318389212604633279845524666821691112107579316595267189633863642391833464300195248462138661439528164205638974656615531800387154026570632164352992710252426692398098568041769572319972893850615489657858355388973926051150358290824869016292246160567759185504726678006177203823415833942651824329934697961992329495755413452527438050773625286505817182166404276531144982591260092867340618765794767219132010420748671665693220938851401201713787246140184645748257577386558869112011006177814172392295938441872155057217576456779733804282429435165021125443115076575674316360388305987599654292800361706391665493902006881135507805627309577854727247737773410440755754471866890451885411622920713633959690949103827556912213381671059266537254717820159131731159879458128228882746839738763033533343757362373370309621546959640165803752742206171317120092213196514410138455140182805138250694763163846610562499067973331774144036343474367547020424574771897302227457248654296619174013131001540135193769211290111077873747482590023315119456318268895495593894377302023813872750487460100865382309356825904688115169411173701389748373251607964447578950635201671732415498495669965641085570955433273441858206127511346677786725464638394672887912845866020647415494170141638695622467751144358138366961412899729143096365436703213590634091630782196000018211526985814578911924394556057607722514495624353462000933812108167679473398613805070262640423374926720855136801049647679293456893634856954975914862825802673002147718987024522614199919865383121467631775818897859601594463810677290836260173280557761771459894748017492670096938780083321223217040247573132099695042507013179306577698314924259438718773774357036687647693200630660771063603559892531426410988088394690844192533202142300340018089416689684882344364879578515274695112343447266636857540874847336541342947071480267592262147213522350805358485393902913715261952610529105745417947659455670488781122371569968208548383664669422394494540532437068200023689392053539815653460930517404728744184375991240357953868381750765773609027551183916817208743103589299334125216387694718804645338814714755455736042897872851996522323411804796165792294161546496794028237138225965350734609993215096513663149818639132340311751834300378470729029089155843381781442750728856950871172118233761735934388118747392010901580053677394251941860077627087180960578836882566660296515870009647659666877074759012201773991192181386817506926169756220489874914171247252236098870553697748612113922083004616818935125077422404855647328381143171381675376776281684846311602496595024797168689449485789687940414300795099023907719152226432029354208206812918149608593416456254109470770012396375043021973270344462957335958996342015396694217723887274278341185328296331801037810796024106147390271189697231163817925072458471253484952939049216239912830843475316922997092126267150510291523250926632162739728509248641650700785759298788211001225839926058911722490657783067499411494367456229254108535459633307329833550716990786763802702746130893838482750298347684566982927058988129627580659053155923830057352629745478570761211163574100135690384859043403832077278175625918627630364270698061104261758925857173046136019727072781591731347263313641918892717101830280046960809819230985520485810006825339300374650979355944526752903040493610877544309861065872507288226804195574577797548774789873997796005021976640115926472101915998971300531067913994287082691091643939897361638631394129433529255650743303702802567971036220906667943264195390657679378995208722660856387034195012878842963716392828932906640372989070829794486419868359945332143932427810192872387370405090938095790637089206407562848056210104661413877467821195631769820518607378289836186471683860098824660708278425945777606067018266592301530747670988646392618604625204432878894837671785951506409194861640580153857944018792065092289269022081513204934772232293717796595657608556960256562344936650748301829338154229960926405816389843390313981767911015761803241506469298555940555045334801178193419206415924533665705788924344745959865729694450119814879346268555588673375661855171153857517792093600418803572323992693445740164736900965311729786602549492634906433328884389786614097220617027277882047623538965204222196484346599045857012855511920602118935726826751056562979801079011321676859325339233451360310612903253090311860587248079191324940570277698601844864074465802736681410106087294242219575884726792722528249974497499175803917361251513101122031387797524770782642468609235113141177143099312577854101169945886641928205887802449870099605802628767390785150152142374298041622916897805758876184788574163799363305289803972705460934895797162863532682191486322812492905651016052582996142007241534819592200602505507384837429235871075645020505996289908812156866198710126649821602896630746877499783688303104802860653929060070122997162268660355027431829493633287201928703968260858278302645136491933361986363089312159599570038113644059774907589561737104526779605407494570776718457343687680329924405793645033281507104427904947673195481540785746925911191378140387159503212827159499018922811599170567719330898567627485695213059691256403075662172884069909768749264933533517225870704998359698326143846054053177278757945098122649457709564346815830791054246175886759507875274888956186582751777021879103680248141766080250547578733683447632275134275042725827485977222758048338245727763315087674539942971248193499499065501738237601550543484357616554349176782276059160619582920010562767343065939675196289481205934667150192635618259338934071330247596068740907090002019443979421043486727774812554106312393208622347909778443271311775586401918870477218479747931828048155144299379644247626136420358743805793455733128345515236568644554008203537949867362922782652242209176377234549577029651657652318566498885079440782120538829284228957267284865328654170971237246990256706009973716712584204400742628143758565088219676914964244478152302817231030510909946803672446609458472212305915270078286137698531323393922612976242412896093434918013288422885362680522523894850356168877235281283794760571258960080632077349956667130788731507569797861776331765579716530482430641632178391561467628816517556690372438496212965632652854522754204288358281543558319436632364386484752340576644254554156553978232144078862844345069330089396621754946108335124194869217362977393294975210947925984452833496058435932142872298921098914267027106257785876047192458866303489529997606424330022610857418911149287379485964805038796219958607424642694240360171491462134752556178547603179108442832918093064039676327455103702319024322148684158726858111492923151719846610335044583055927331719679684391694781564029633944232054455390031507721216486686969481470633568911449629469437099387508544105481295804198615069779164693079834011674927500126790174440653469477236083535818460595304256681154941068825102836448291705838009214234345846796266485620834425936434483807311922544602156368438146420743230028345576638884424948770300819562896941946191604850354394162508950943957143193210760660645735278243302650139004566981943501809975113417038391956341972741837219506791533677952585790712768272625503829536330831824018190317571364278943901954331040969600211355622406810113350967550910907938817684761713146601016787662275211002233747309902064090343680665256006965374424359157209837140969690066808359258555539917243777792704262206487327046578323524934312161366677615448638948575517500606739464450901750611226698116310825072748350051330160171109665402813103078538568793899397580272520652326616657612744859819692779428153010869162120391337134173656753516283573882736751248590140676245923636600450295391066369456581828145817732663937983822136716245803065639432432612196769404896582726868983362575591132721795479951752767866274292524701561227110971956143814384033328931183340062549737372465827635711836403590389927231265614365084759717640721513351987845821179775240036014684040513476415520146119056865955982117471589004518397953210038789533013540238034905636585490346222844373040172003118379528327243071966623465346214767034797028752260343430714598257301646329759762153629613835962572124812117665598109930403598064237688757389494713572242310076116245623790015744383775278754164217141773869919630489947055389163199690012136262000492925645741824578388931953009548986942154763665532361972063355579038559981429963296343499095741302838214716578868696497042027074696827480889089757006259797499853538268892380308647180700480933568068619533672915336879821432819691535690148859521740950057167895648102786862208965407765764975140094828330862111881317377655756816152092230525800767243364578690672232239598136088707657876031809012282958942240601976221998570864876107760882153672232045225731988906325600167838683237558414240882037316959716951960178730087951551877049028597145769722686104379734431211142332512767222103813136781332988086151462139783582830350051123877021742968701278421522651890077001622238274197914392408784499301581235327759835550895781907114757151203276421382461096394505460346536827153050855092549682620119936735662816580243306281158054737004062121429653098574927325874979643717759308381709198658200557764753453926471621795224185345628483910115707599297492412389459364301689474246601667356461959062243741098765334485295765632334422881394180772562830405506692049994795961590992401208724753096568757463773273609486693547941892288209547088351648781189345767031830896994227186835793085400159587752718569210407767138007962121559334634675728149238190133272195871378825658883178850186651134589054819190740594106578500026527350575239694360502207853833569429227519439229391126933245336592251571784494661435947374276959630067749720548685801371223684247453003546204622213063941655225387957398608768214933039500265205476452583730073197876636622638932646697665198235367451653930289672807618308455088847289205924019310501430541280928199082263686806034952008526526388850936177563768819144822103689258902305774949889378844483769682973419052863745819500108413037774930829760945138330213948102869807408994294045479502818924497632977883364089803847300021588357107712909227071491942506991376315674497672829937258043468475485421263996823169016823964802777131291550192939611523280681412498015556822051700215837959616180328971664692594591996919731898438180753202851012266788535292823194516967214087978280832454428807126169578117454201371112231021237809079676583205220441411658077206486820253442405446722358838702234321727952750787868587146077109110736352185665426846311430130251606325477381874733194176382935030070062625414944943763212434513238306391148732456110612342703864508393487492180880267459648772495405169135708934821994961658964649700193979026862136651058068281147641008148379123022638448022188692117304354621151875450155849699213262179351971394401010696021781615642926718298090074997291471122051849256147793704702996888215834709216515185234145350682180679583030851930890264230139178761276378214610038020058821000075584269909756680590927041194694219438160166232952009224717909829649919030648674099092412157269871759966447192618566847741134482006336794823238103191835467342615599261725678478685205754745516964361828605345045445317461219821879723741558679096679117091456885533610696198254363510218262592962429914286205173794438922689341868084391751988452410077432201121003762366296633545934526728269538489161566682890061017551891613964927455394693843076834400873671861532595822760486446027019962429985262262577405582695420908518856921783466697902002757691139805768890877725537298463280823615449385509469133883578918221421489379738086787169465964232518642978134764251160365134655503276216782200027795822119087060615782333399273952318501141198232683769632998688084988222640796279110663891730263597051638361854541096683257793289309101574261052234313797923750508440126508335171801554137586939189049529251402189626254652259317260043960030444629305797817314790694652692733031993684144710968212871141839163329207842911577023384060912024127397996798044852529906572107541599573927265726819262801680387725492165948440162586282779134901112952215218373027360811093900589865961025615691362456924960104176405266567492189658502436268632114317765504777913115839025385922914526297586616771256078991180677233641289081686401506093380718896994657056233190689178932410010670199430604018336031705999820898458637677907803144414714405110514050329810134699894708520575074072063057116234022664023983890312987311713507074116006617026284445605774178323510828669519452525193427004597985463951788266588325095868445880341962408177076274075332890439521387838696492435726913053263843009627855603597173520955003056676521011775620183190501022004590174745213344626280547765427660653680169833892114913003832597839888119485415118986876896624021358137095010867677478289739300342352980129098399712120448736799575436668213831387338120811574556661389993287161687163197348608189926802352445131261083236774243775502836844738955114634161408383551891756014385490745114405069564981920922574710752435744707690722418249707376130535971892708337572009869313898909971342636193475339578626624192058798388616664640711425687274293519019360318154319144833953427931718006673414167411288745976871522370396451422879308116469455766663329834640969303607937520273830983788928387603046730555764379822093758502150094207458266653774237171325724305826990434075770411336086787175151249131599341088139925558662003181626678262755931166322385527767706667720270071745152419967876176762292792103941165682334409616738996161825378093921907089932815835096339394318409433899116178928168725843683439516143362181903599474548633743033278145019509378906529579633267874397672663107685961536241847759476902071810416806442820126651640785593487113889157716899330210693270861828059380723221659356601474732701967440077122943191315320043588620669994822040264854042443612948473918896631455052198741756140751285713418032997865676990387448630384541714242028581420088176502227126408088929437061493192314946961840187882513586258949584648327605783323027773866843669382100779725747542795473945339219907551691785808865324215273650629057539252678963489092588689060567381034427395421454853936012782705287326628629208283936158942310069584838141266096585958775682174684036073792156795519826731292845457465116642155063845710221378819259035383276599270486582050449514364377349146514069879121435007810980934763568395379671948171580845166361792943012167870308898264273039073349658767617873279652884588192064647129373216534482575925887951917117299492755609843037768428812492052675340746335932597665873147266918954637478216354187461160910058475449855427000419877413218421898597169788163189901830662221959817174759371891485109076707714295627977632018906305499649867759754431343795452185844530319733540771796814801334916834129391037949100629074484930677066095940508316613651950925479317945612669941856943829092056901298899330030179861573606157677562544205939059296312689723722015158939728493734818850062056955252745578556248252588583126020509089206867533380840168661266120187308804392314542533260053843626595198843852973865847618954585153048962764082648443718927045380178720255090704303510718532852876793781615214885202001796171295398528158347879564255788592328981037122876438936168691005164657791455677064124352679954717858938722704583187607502312289629651598128765378989266310513764987000547535586138235295643173731664335629864759224919727953017573113970948012711500504423113096024056501308142390592264124762651792201322612711392648625005208152154760004986684004100348139015949449355006902293891154702188700247013838916795326522844206780183689974697668513373934516381780102458620818036885113360602694812085970726516022614924617339241081688802092123343028639685780133399973091457601860268240540497457258075449182164363368324173898922270546710174713974302542037062811838833147965066226003462016644006273915807842188014175241464565997788232940174166783207644483214279682499277312398720343072082343742786097467014832624166890540245846132687943082118922935482291433980331106362249023084917762271485923304610727114068368726070935317167381232498936383838309227495979260596624512932804630986909572878610634464260089590156054179265257371322729031263357031023373835562356656964049719698317542359234435246862159619747567221555757482483530231812839547226103162451817229611897324480000782224271660903876824605657226563134736904908706287510442008506879554614862982884740541430091177973963004031691068424913163930638818643065678890379239204290702660435280706050613513102765258436367375540492746601078774293987703944251004470513020720851405874568571981331050995386560512258159157645555546351994528495093583554764674679311323663760824084604901251864303841101583489304627044629397722085575372990404952623726341720939824965345083925837773165466021265789034692122710302349229059061734094441093473717636876444998186127048547716511099731645732688835055382473970095743121899681859735620176567555783699661617068365848761622187702857036236483164155602097053874136047783948179487099800468169172372417858705479568090240893564585228793717097808970325515047904877778711997334102080377926566774690960328774067571138480141249368584230422639010424352779583950533636847809802396333164527835337203019863294134292803848852301390550864572866011957309914124153344338638562939294620483544385653887625901264776858383811188474386969361789610064924742634944446281681017568511799359801422223644119597024689879778795370991449502337996277485972766927546843744941280698147437536888323508528681440195828685567240312385879500163797314292686980332396778441368309494232357665515572700455929013013243095353889652064635808477386546603462545228400509212024579022900980169256631917455470831555877283968467744093562286489417156263925304659640706249582487390886753625564629882616354677000340074908799532200583733273640325021443470768426896172683786908480017234274942547448991733606103351567416376365037656619857396177108691339097831270806216755174479351719008509047653543176506106534090556845813189974900234753355183832908452653783617852434550965417601733616246713425223149150782620762287209443661764573167285895513767609100150884606083354635012573871782968412426811132940252017605261997734541244422539713450255777419616112946412656018947836690513045865152717441219931496221000359907319584546283651734895517329881705073519987267694805993473647530591906142472637402566257882534718946148038777644448954962879044402052492683269256337496468599692538089319586923788896904970841311780734152022624900353549948713520302949357356565867870548866294834369953317324210845302660042269125665675585289787873677672391186159783161547734665102319186873309192840966453814065981455733350079147168367194815094116043753385158994107820929511689357658545174424297528275398764314195645264134990013178975965433851281292967943780952225726799620757634635279346192458793361787872048633411719743413126725413619154802569366040182439593578776322444755909154759360679576601600774518456401391389070801059571715145863675658658905538746775888179743900605335569571731502375513642117285725946236793795007015381981082239161289127304991248289790279187914100453089031476412234389968013404430712549257729250901800887232119154164981415446499268408276033385854159677084722852646735967775700936364754752194382324833079301668097732135069674161059434271863141017537175925945532889522632105080340277424507083200150163417394884271862702505195176547191260599276233515861407047888536514420917232328996351552437493048634658284249433381360744017718056032691815390246359394840700625111556198609129163852366658714313835626279432926483742739818481839387973758386826449120245494198606176013830049710970178950713195630638043314291638381120777803149932567129310419621194346738093107454248676035691951001142890464988913780677737059129709624667964868655466886302700157559504223935454512493560632976110395603684881831632495646312560444194485387292473240636558987774186268362618404422059815496662236505204964095258252946608235214388217747865024297235990364038420231168529669755288548335211247369583642464453581408045170012120752265648121631124776457704126180312606876021271886740864297140945036800290832034632857824135749738524794211001763825543778132412626467928701024730800070297075392264741455176891992185661810161378855611840675097691640831292817034218686229756616193388252474675129655421540190036980193143809198599064616527560397894311530088485611149977651385216543402814634550432591170439764219578483166178522842136065607814287311768795745975480537039236106401201487969493004040547131242759166968892621604313127048979672198714930094848633963765161412076984696074978785871600335797607927958157884028126129025877036519481911682401402918337929486642894721474535050430659465899967575134046593040832301859866439525197339606156421119390055106114503965204030366978555964159881343504971791616665916327679973544981073904350062156360580736688649533620923712164804761209016807034087924040529937070107918895583621211690150753885171427666984049302093937014378818030349783362289314547813463406797571973781295806468721355390911084715151930731355605103508229091907586553799616787746276773807726388989175877082856508040801523373180447693222558595780528412998325851211683167740208082881806763748544425289600155831009173686144792329127204088654170142378918637678942558219922457629987566720938182380538951617664900351234569945707068818369494473931329394600287703739211117258107593917473304008357890422420307765540664385514806239378009782264983355474244404430032182144302827972992998041591214506588596434747762956216937197911606486733803490274000273709731902754590864930684330931422415551581298133136256403001138506308251017888193291176049951623976297664340123695702618789787938872392380995272701243754828441654985062104822889795522462737944572314841167380043135858184545318583053083296165781284881975222202495242378923929438346882881365683784566758387381587439043291698584136992909588262991182732508728770290134197278411450397048009521340403342418785383186039860781809336007873881096013521056903381917115988811603086873348428558711966471968353427673478537557429166286100967211784281492928237744250719817687428479036222225785925035841762202661025609047940709529483302584689824728741908828408888333773798447302497399643957496251879960757719355165414233531253650787771866746120514615028152191826467131765939685666066758840082697361216014404394609669293375227423494934715845947627893767443472661771932027991156772360581683288802651463316809749066992337317930900784893490333090524713736009711514871105259743058458464734343106350326786873241814700694377204094814407350560607341733901257771179558498741961499222019959590722727514509090721086008116011920416127663285034810478231842479622524216781265546571839534869332630433935347837570053068130005552143175747356925336697722577890587673180996089426203173509891022140039010585346259652395327529542470904395129925710350805197681211245905589080187139835877585854031179399248833169172624459930895584750012482031409365139958698759495954131356037669046614681561689787586585410677409264175595792424799824595441889465448513911852057169877212594073514112091600172711730481704721822783578650823262578481331686096000976850041337225394313306492668286547947808202107800434623980655990698993623119311980671861044658538274977585579409108747736576490038687008698776035192771821532047736927474720316996823315879683357887709396910442143173106521858617291213068556543910532231949412625362905736447914005781514659610008128479419726630698883788459259379074420839281921466517468253473841253723593222166033977900051233972864277395569771887117022186106177069638541649441150206939640894506762830435599773479041074981111946989049180791935153223079901755431076998660505280269654973776566552746475529522421657649908698201190636967306183661162564939322813667369881700276538477838590139991144424034530256374201737549168534659079666590915858462059458485069819576846879655464121647810639646452006202275620276047386650229447558668760551501180645338026986884868022410128963300976642568614301916084244639608264006258547657000939055414103746723652252721740801322906750644154618957825612415744286110580521034593583025615500714143805822904413885357282419036649081440559167222795427238728745369045988368984725159019397363795161343582515549533847760754389755695168039625070912132082398285274079212470713961205554543293900599332262147915779584212424292258653949687392714403492732201344341139283795899312506613704126361234028539057917507904310694478485652885448519755556899683690855098906289692328111389381083483080367612686233671986461045585011498906716603434804761731445121178629887455601157535670713529260272967924062987194271190464562035151591006766899843429038455316438367600988145126928421394403776209603532516362020091202171292145470739473746836798227206374654405893802444493878997706377956094624638356310777718691080481006597549434072181986995254550931675361273357655641631094665058771373871871775298630006943635950046590915709670972161865268810149448826542498911903918406795453849886245473869336518940907874419178318631442877208015602671504476150661995332891335050682834406341687117722711808511730096424250545487042262126631702483582504451215026204755705927340389666756071170526651020332090291646291683394050624695094590794359001157895920023963055148979457976078025709018930965448129393532553771841651808753102623075997598720078841013229207996576195081348516326975042521153047286395497738427294161593813520665958275407419780631316936702702936228787683211503820638046254884283268754560569027280938470999070190916628746392512157018679340948092954061951919804401721750146165116396399857894591332860334484416474414713922376698715536779789167028594344918915288059394005373874534712313190506963190124990402284984729931668754364233591193175683698367637902614445883696828670805728987397667361496667497886362520739816451126403779889100622802976388149553502345436943984970149084443594501998843668560837785554249066900391227885112334288503803613238624975715430074094472923234667692800448603244577372729005394101917176601356280344732425956943390237740317475493224656880931363052238747433552946079222881999854284773212294702891844580592492319194706195396896015297534574005443011631353659169694666999358240923250848873686650272190974587182190579156002145667567981799363568033573484955040972861740004525300270806853550987807925867467217835502276194911142064773251830260804711016314858446940979527072140282262493565082029450754541073618008137864288396704330514716584023844332381512205597268605212567258210787512529638357989895402772050580338304930651920600607767789006511875956304150776938592187396974150298553526964365386003645394881529617618872185824474682714617767760078845781927405851650840454101454008619593576168462743793573013252154747395917765881442162118965909684719821087419576894346798051906672551521781183351857909613856794380433075996782651728041246210837918540902161435277067366153098939853255289691045927662458584819909028197867043235291005928145059702773445695878964007422230245589972124426093965258866010755988584761341431167249318835888904486945829763542056753348687683857958392641720436188998429452048930423680978554415961362419973816141148302882215779600158377260884738543189170818633447190341418247912760460304458795747204062470529253377503155993792723212690857243689921328406502093826287063126383713334389329255376450286460859547672130217135925262009139545265654104131196536884813647522047430635510698355047004318726751898120743705744672279927871748418500951014973085533134864162333677763911318057629412726193218333698854606909895125952879383324846873495717191458261211510968960823875276097522686070316145671652124965141326927576224919257299699018842087585929689748741244924637625465645502455215900381823141434256206886064151574072457065893238876782813948031845148042633160386679584767690504208246639399287974361076499402996728112276558462545511422810503999931255391064959464036476433289702703263518234898464463460734373849488900024150856547196490958695207035752300350828283013725239489265397324465771480179569858676187374791033874518716385326161850399329868183841256340516439428796111553983163131135494335072760204843674077590378640165737397702272133054947095204251466431248992561995811992793597578707333884788113828599270875415780878786225980820362951901684345086389191198446476664290195014341436452434522023526665079582488162400506580452753781037783336667849751457737394734395209270579265739774581654926776199999707969300302662263849285701801054419623796794021770873320143964191324767206893938832172841191143116358931727515951552777106869364849692657034575038298858549920125259213705079083093866602956716626233197461881029788876298152719304285215398430073570162882429548309468770815152485533594942111954680832920764527714561932543056108861010683524694604421507876355858697251879011916614171576173082192703011657999086287793931562936700897547266183506023909252233215692116174206714804285664901694526822537471589690708271070740261915063407687100449372126230121078311282105161597176676264617542974972544739828082536385131564558323320760305499242168999526413101715493016076631862892430093778906899994705739728703914481626662842773614293975569733243113896328212336886560443265489078159392602936588817966991397662123786952395855128567514985436416248506755227341926749276230717332059214541928006674730290376278765725057423966948021235375613530510061873709070514702814716069505602451234059106791816350079914899224803940424901117847815627831100333410750975637219467742208642964956653769724377764877228619462393800857433224852602451723002257719664630162685706119828937274603175276194882423893936984180544739894519574423114167547260951331173456705053456730499919062506950022879351496821489652346057970072099574718980908265102064171751105125781712092273548877204571511725986245661128149395194403797551416966638712993413827079896271234969551237491079002626633983480543672356583973849174057814072767957989780193303333959760556294522323232307479196382349609659674223710830837736070552138886356735053493072540271345859890478616975677805916843359719558932200773898637282832550203792063389191804344501869400677140658454391197855476135679984419394592351099519742877247048385581291578026616290568447048658957086497049150701755095259390425712606666391854753524329241702833726193801766199667674048027606246915154494662377743176817581564617081199105947064768975108641687959872361961684171227627433413083574023191666996037029462984477169337043226505473756872198278113370249480168580939786457568837664885119314878537783419322860248949793422186378367793367830107163401551194734420814781124900199243715021839697575757454327577040274141058888190534850522941001302764683617882213193451235408943636894888059757072584931831102094134483337032649406181275294277304835235374296268067091028801221886642940189387522004285347346141628246677187980107361284611189714410580934850643500359172514819327523682223253959493177938332118039626504233525737903492983534849655709638398651495235247183446997997806992167992737946831479622106037620390734121376152289617107959082748320365139787533922323138359398328472171618070112368662302823868018245532991986389402974274228460190763629030284510694309040152828408515965551832181586600283460122667761796739712617345016496782892959545574793246461689941789539404988621171972733120848377125473959877331128394052310004794087573498004128950174832514679858925777000682084713495576835216885238205836457517621583158744019516311224597403141548289963568684611765557870869613000367764783263292707610796592001395913053074090406618860149647979993479370260446247358132283130667438204836036539198373408512441753306884344193589949679089789871393238133014993533727777523343695004809356038331272144150489962841210341570341693260735582066668002858015405100257620150899956210462630800851171372222351244004474494791860949001408161576823984024750072319723576695270104915324207229517767510729127561130499084900884566119293902223838350758128908526122314280417517342919799108434478393806608052471833907701712174420176300349977498504587925728403823001160763186071029428366972948188680994753214225496812285873858820089593132154244509355796635881983950043922316055308081696843051335111966056008307968586556480122316688532024575227517896773699562641660889919380595047083216167696029616042482904905058376157807612302680453225113680735818283320885765929378235915049167628158109479254883950007941160811412491288266587197783869594088518887752380340617193572115795588678602995853904234050631107673515193897970304470714114933539522451685929220425639147935966294030697793419791726339958723805442815839952523557869815823359715913941537431517795736923031873681377259428440061761478005692562781311485216031512658486294968509201508160754028273529429820972045305529340904244026062083012896694964822113725913277829637938573774055964565112254819552193871501759860894074540658908285712349394381414836928017338219158763061455877332006914748783157647324141985471806113295021628079430986567531222196747953277283329042546622374342838716913704524087026712775445007175608006428430202019656066234013262032963407047217501523046850698645594882091787787417526566254814855312298218987424492043413222041428226300557253108954958180648626494017365982114688167943166702923204884169182824421812401485307338563555057246891264000100671892856197354236348916005765895318443690406132428643640889440601869700984269023954134034868869518373869337154304764498171341467280206111333903988621915642138420936945024044117549670477606920622788491596350379600317671376797561576757448183611972943692649446718041315604121691451825606793849872529164180787180651991011729578268297501806953796236019539379252479318266654109122837397877064996615911777868426631043239947227958664880077261816425732084328445070466500208958795785250186761074052177213251567961666480114965316783118146084710588405106272032360509030233132129439579311578444515516798943856881893326949681129174154302882549366288017045484069194434600764840689918758941657480613057998800266991631370558931716443264332611714676943709778348855545879334971642693783422255556654144774132127288858769838792341858561252652690197641716871862338670271200606491214502567025497759242160437063928005883208620031545802124437328555395389337606807547938949150647005037105335695998793357148033365619143934154432483793355771893087157306237172815062556410490261321899521203843345438871934883211491625955174156067672433427647398089197337404674116921859910929662504307298959227033098985499326983061555717364387842298685442610014970865089203912258241161775938715221793651141104703248949609077197079379619403053017653447977918399787346381586919918048043829472924095613242463138294991971790966680565956850593141281035344760574727721415956278772872037297219143930324220889314701073104892506148795419110469179830519728758820044020880500410017969904494089689664855701456488574603954879805061946074208483794678278639166768324497380716121900338480240823329447005297107870732347060039119953662163137757731760314316393410402020354548511238895627203835086849849718440824254472309329686083784083689999227436838558268713027025486786584900059825922599027671075778314861870974774010380617569002340108271351583607100665769496681835179043332894965151631890607619058913135797342639200362236685957474084114350211772396876843323437684819684535947884510256212144254685365917054454316830106016386573102806422890934953280465470752415561502236386781927512602458756315970489900045997349644252034177409104340345982866650860632922519168514307768033576091083297909615538658615602560119685148518609610725627787361424609561267473363712804806860875168136032830006309702281349736002510995690600219683218024000778521029283090940842468320609766967082256901313001020167541288428640402076077316234412311825861946107885788608694877521749681731996239681835983249125964058642429078110053925155357255279220937299944785043283108660016869163019924307033529835873415781060948291518336041701070232553458428834687026173119763374042392676655751348073892309491943841679987656732758249071229144946919810461346254252196171458203110196898024894490342531571741247582976808679310657311678923046563012838546111251828182810576023152100468668769074513370069556248538826778254212021215328224460895742289324613723317724392775930701668328350995545056303762879278274479632089063733909232107353864992772723402128603231200174488781364748598972980477560362631254708477961838653491396646729251680684881966694180044747588967585194640249761050602452016462685939430974883353481023956781588072332398609727130274254451109492114125038136976391416733367583093271650370454731750580246336820331056445335117925453051496175467859188679422994780337248602413301954286795854742628072830137963316584248300571571862508086068448965244049042277581923700603153760938130948184410966226808352619437739860103681913523430608284560072005078551231019387053588094421326037478708153968624610848537883409393936012401413185035252748248331695018506435760372751837431681790583012356902819859032247989826552565299289574547979631268620713960410644338247251823180719615744420091633938608775285602727562078519894921858024919258095292843419627190377220970295205444812426625550283379784424639985789507666205422630972277732147225539644803593841666146440666858269989761254201739206721300233489926980763546248859945808928315027734702148976532955833569298684090730219649049222165590903305391533286626273399093336091377237478516137489622133124298051176675893703913469027724615865962403888019453144477322655300061448612912209046941143402259496619040011888986773210454254847666679308717400565138297936001450242024321410140119084072913328881360106482534429701063508995047326219897434318723595280509669973058179546514125503009950489204468647002072642170980324801423302365609804091302992142061580569377746888092814553792386442156428892223903893619697473899371283549877705916271093354356849139035687127450268058669653697232534844247448732123559467907783904364195366616076468083977724804354585055512267995304049484010739420371544028467630107201641611850611934432586504421509632451134825267253853325124675343173482106599328210832370505339759918630865350312590414571049077717069997721222662485920828771484416474250827255759491284178943093035004877561335342073109652671613447318795346015534021354953976968141579449037641369841689781721412345005919017418539227784949305519212850485307745206130436080167229412971888226086265114411926080818947013582758266345930848898242352307597243952486967064005207987654657966525253067955664101119646858000590699076679915787622914938916724179527014157486207359150094790958268710714016663977411040653482032455610519454322600898741439227917431745923816101147388122187435538388841979144005165660714853180794865750806393092482391816986815687377803112196319470404877507540269718930049257457047646098528031827307779508641924318145692869443955472361029041710801724667896542193838735870548175496781874382231884478215726670917643707532244329855619189093648520330849917714535540336534001310147739586947749126402950770825005555581885947505918665165689386681891660397688489226343051500453465049782896200417123488898808618755863267338506127770160835062951155785735821230222749686588774232854819745948308399883655590704608955989042317556407157560613710214124289328013220598201487088336910063403193201413838241903734491354105133841765364444920991771255064435126189466621763612127968943988447880321603499372252995783224853139576731524612998715979669645663070575642519676515866292998037426329825680240727538976163485616739747299356507779363088730253303495965818267675462943405020012619408711026674681338226678308065250196271725614679391222100414783261998031732275969320589580233973504356489870243191768572600227684351614489170260184313741289401699773045838488330566719299706296277373451106336536317796659352212060011444806113870590902250320562162156186090961460593074496986700822002479279267782519620626133969496960122106340564595854484375867160869407542742707330523795843171936529649730175326315495166648881825907242149268023536880402245564823883341305214992030629202470574486625607337101608679764648261098086436268531471589405895078410808487950824212253970081382249652832209839703727153249244392581627361125652684101495485755232474089628321754184295775531080500571824750681403970106717329289343293771778990591728539012204049937779273615832535215944565592880301928785330085058010092347726365541092473423175590944394838548312141529084812639489813478940003462141349620447243566991477915821861901411261399976642734991477716055116093978539861111283903793082152770855215955927197706002574196715229958936649524761272833634946716711106299835975221091360937671832041537297717167503832993926327970763213182937648606630156659660235413154690287532926585859022589757323491749153899964530390744413759251740503481440034941798580652482814727043589800512324872164572662739593706971331650735845347396961104642482247290537179189984642268201779624972387404000250121604424544772047376000495754441197508066271098622203764720441847096369497956138916578441205153064989340025911401470956728698734171336628162892127033122957078967967745988215525414757300034034251730059752821710020334084457111026188240192882708771610776630015116888103454687401611429500776399663982865106692519307673926782739501836523227958105877082694956748244448804672870784545896026543921476651144118342725093363264472575899407356933320131379714161447034156300308969304610524278225327756616294687578910321484655740830215031788756225956065995760913541643760463708208151335140817048759574423551625150133213252157328928774774396816294293847356526687796819372442768387998032956629462048662330628821040975240953598751871915783729044030681814347263338402926767198310947220125635993687729190575241593741108729433374595100180884791899757431299338861948228635589626586320276307265011825050485523635176312930345474537118942230932743968563834000377794818829489097991580504594690346691484773564889772775820237182219203910455781033946836742204245114710706802440205448406108188519065432662949697395788981484494181380551425547829590859030854201134095591326024620063053894613640967047197269825330573767655049018811555519444811575473738780051712770552277474936635739551213216368396664667141095565716689228807287413683339632685547795119599332836464666368334169422313363338943256626589913321691735188423234552240452975489097266907597430376282726846357728619536992233561494849388787195854546872521239709644149313823744953724187776031631215201707748118144689269901806950919062551600139200482645105813223243422419458286299093862077109860637536275296076154522473272419947752977697840445081433768865901353122352221817226709552412975861485923607700196989716128507462964253854281182788516790889501340898256603941917487034282354012264637641977033167149738211394732493748434917060503739880096475828785605444170868222241363966327933748654481901100929665243864381677145978608563523906920715863220054178400137051000383831394224319309024217828389338750948865032250075755193648436108032689498771159454224338555386079194014575711531327161866314477287808897020471438901909318055633342775725569440678501231914783336183525590739897744019705116569917583778792283921418686199927398012523791609661122517673810213665699581792329582161466072466482453733625302946023453100598778879328146571845071007185529076992385561048271275487539456537976148868650736052665266389656913338267058603541937205137072550961137324874445017477360419960874931120311567611719074363098624949102916218546883744369904560490064081377643045841817564950811972487328203762166862078279890785989345145428733681915647626434219010167020822402299252840873051478533979299367673160710240326479984493722401613653027530717396302856581745877960226547832252796544559370019029311857164253125181997784350131871540868529446198455800817687942554004178720668336354302806362300327104026785641956855935852200900454660417222075821755446768026215911536305109147315658694490885004169404916297943165339082769764802469284304761148257932824199139511573106698096440991194603547767933071278369133901478721198947838860059027104414740468814632451436928811262359216752101073246577604015744545040621417602728950814387805886832873387466446084129128562692343903044677985589961581072179246308523159072662216508293088231426577527453330435640451953305653802337717488469079855697782246036064836247641001933909302465854124622023684802517865494497428347372657834878754604958290178554193186047631460341757747614425763732843817164960231190701275218626857831689331643536167205761236049896990820646162852088039179835942757518791770460210917946403319286191695825968444647147533244234617449511239282421337611352926302472183526207776836974797075969054471137898822171237380748514572261957013889133980082134714139145893640437317950654477449503774305243737102030784298052502772529033841550502292330068727833706350911471953497420888737652584235203129225824624703879593887138488470349825255100723035614078115018742672807362546616020074018739939825115335510520002260834355838393219108894658681970934434653969095248725774641078655120165365279269761836394476066801244807922043640070536057096806097892257865357690026134092302011059192784918447546342118960701425359619539683231187812232430639757162277690025328799496439418596357517862872305562182988677199773915923457527467323484209162230210149279165139414309773594846929872154017297382441540256974211795343817323670452535325956487227980547236477034091544035069230930811081706827095342080127914550535818292430775465279646921371123816708493293812046253368439851119171423983459940943357925790853460758637058123255897549168158426620164861617974960231862502186183286464899599485478569055824405185673191925825047023096749339450725415217302113971705420914750725952404111365569443168237030935252075115126694731174938667844059600842606598189749093567902362728863386687051593529241209813578941873467028201600989295581247036320746122060178981751380281776410456858992502580225362895155591722417786133979500911159349145015835836029687930574860857320132094997024628925409097739417818006368748550965586153958784828417483009158291633490901875731243982203659897002857961701438885854149855836497712705585941039631739648635942948854310684525103374871354153867154133248486833132733154486831584716465756408772833773157830150488839336903763747914103492927228906210295211979598095274688160124869718344744302208331881655233908814391110918967509327624504757696322401176827501027432391591506429723838595434106606019575277852695522359765601389334344841178494973237711852068052819605163429544430570301543713304582173487811160144700660535193531529823256212439081288936604968924410854432683526733103456212374574961276956828677624797041054561337268816710193018534704433005935519449150698074884241635641394801030402693609287302248872593736656952121686826330351809616245753956158168174647523704351188238622385491074833781896057065257086575968496714267511805797002759924970423859443036927084464492255142881746931961768758712139543074470119344256687458840878459027649928480789041435824094092613902729072011023644102140972457384070979489355377709687276793223477881155312689088681130873799055137629743551674960424920957130213125826257530780430020007675313719623313154699927989473059617632486915873941802793438447318536672603642687387281739492881429686539392358372756284438037104542578148180292591872954209032796244878690967724216751814425396662738873847583836145568120130558827362741809185422920629783350496895406607450899581892441894030001635611832618727289538552205873778312116534884433574837325393831292548421565859786236312588627860499487377251361547254552668885206334837631229835260409508574157697589006522807241309062662574846196316696286480822617696384867638419924469543873859168976174858036407932559831681843671637448390648155185376810958485147244786093590304503340635135091835164383943051499607965275978959794398455068838102667225855795454196832048015576877687703147503029156641648822114728217433269281358717870094074688154481529307849619787068390928003353499756605027298658301803903060360105769967408547717063429450130149315347808555691603889894308339761493615482537784171789455280301069479183115159245885003040567790321333730282956531788637917489770890052355673417780700618132492145757406074262837165442125367259038857669539082063834848403107348711449985563096043421441467358838347658957334438456852412154953129611712518065418291111956982977349131148970530908669124213249358439138985418070964818226967163799644571779079250299674140695217822274451375025880320362725051393106314747631470249006362887403530847687393025951594136716774687476882461711330556063652364555006297682318582659337521402703628999176075130552788098099691006773316464002455325878273301480799258045920731740398717407757184174677147610065061951928453218191464047299265082024757586218928268799404126413591988362993771578866830629762999295814288166381641628537452178390279901678316403401707298848323105834777933050886380110925204015512679723830929787893688110270421854003542392040417549316842150044938513856071259104694592251784996738233077434425578699956018829060524382389616663247057433296347164591636709995275015735590013417120644890667231358475855229963620602055627280461111771000200731309955571528285344122520473669397692140038845843055049154061871405233511088410561904399656253411043720669837595821127730498444739375723703304499064424877507861204385442908718796289875142831187944851430712015873384001661560153612416741902441445651785046835305285970423139029959235217975005790699169871463731069813335131693233778832024776495964960821034390913183366849030296006778823839076711351690040901708426306463293442867393305929279206199561506367808537668294235239832465441649249608898629514739890221776672589536229748644450589541695594852568172818560370160501418725900530509208319199885684654471548811133445139580729947693269348161103295317567958751703800556130649971580617819330782331825998783656140105474839149883992988120874967824342024436982014690884942171998415184663841399596219373707555631922072022074899198848570035149292283620034456132365867821200782067021398044550158826073827917996720582365910254392229223885278021783955113981156411670857521233219825831989635504304023334871286586444173495758387874743201670584416558913940129763941937793784497569668061323999111711043190093593021632761621827645629329861151093416658782873668122122055912511646697574998275005341123471596383295907629960803023717018664015598880231853728413681875104174332318869048884997171788779171958618000315201047745617975109336339654497790819555455243505272948296720918767043738054188792874988834881279455727372216729440167083493832522669134788515927799519026746114322733705831653274855218711840374829803416049852108851912274054729702607780244220188796437128612564654894953907759517349550228692582480493044515689313058065145814912932897291008697261040572084149838190102869876716076722748626834565148827960421969153124920384393585802046607896891976192976486159977945441716583298773901649521715109166674417984710196557291697185410562261934548608002955248283487058329065427110949594692107612740033696436340647455143466686067701639197000314273491627099058655803389167614655597407417689207889929751122568136723825152669161917958308473787756778789672887171983478134530393922265184789399910421095694027914175534476442579536441063473406128399274751752762460247998810115338956593236627313215962134856806138617264703148402764197188542397498170780369391078116755777665740543781360040059023535014494970933847684291035265063786751486753579578228229590999510820018029596509137233035740449565515756852731014622631914863667529830788326211959409464792194907042900105595955041377504180941572897299274804476395538745900969175004415361669135539476833351144323077381008545593897104924371353619985867851177088713623257284309002888907205444066371286546213091461281983746971730255903364404586092740634015220113157466935482439419645850033925897077204913001860359261476621708815972066607575687898884183190787733130538585515485219853011799761726872533706862261904778113791241642561812292595839435239949174361763911453335684631310160493407774108412052344899226341773037667443690621802250537897347026525330693181541335247692669221969180211304558279082296064443407505349731442897480089119142805596894192047117284936472658757122449057370758412105086647573832383549458643327130642822970316439500794218612052543814836284395884407428371654250115464612067130714714702095707355147333657546145586167960538293947781901609275216671347211593274759294183077680673117705029935775915347031978153092492359629262852935128417691103875138345160854244651768739850869902712605171320502648788456560813153408363129077181090226376493344680823065651764975817031903980400833950972962506518655114260340175624860700098091018725935330610868430187543070139949705936768911722978334798335440504211542415002468242757854815808865063739027722173063581685609391918081863509391822030081877486218327976196880021154054575594310840440951692879719509012915840050635765643688287367551887601796215669527483762054185639550963759680167722524127544108855508361276876969030697854071787706690508817460374148705158697008976943877144828526916684453788133268182285945610911615940219820329492921228446421584095830401917414728033662762939231042502317289741418213490100699081648721691357069788797386732052841342449009122556069508102826160923601426349249211126573017090932057536608113058612307552896639014550087662052600874457936869871601875844227565397305969837626183236280515920221146707319042866160670249198662784394962004906911818771542996213874253999277063946987075813246623688352224008540946727045360414725020306650960765515515900186310145126455353246132923932756444155560882502542903570757777937976762554410729502054230198002997821734148424297003507469267269480657806227513647264085922238628193728425231768248542217116521213094053634517326295765848284851279832701393373736737972143646957578958587674008360166283519606996624961046267841331637365369461289050151824266149993223305877023171301061353417046126534521526250277966103601032089236071384315366508753369750830057029985097314824217039611522823598760857883058924418045752181540013124944855011420743691229719584598842714694394403525883634795667561933734133039612908421948367512065694849023094736467967351872014994222190940799418688202322224322336903264459878837991871203971660179414655400091020409597763298904148352018598257722804007334001072585879315226883540890523162384402535944614557392225189673917386279913773251657787814014972416097475825726664563993702596809866031816566327640914263041787514203898666237857511192358733991296006342647978803646609293303582303923332460159971645470796003716364338450886440453654000179644516458334709735215855628804613610537160057721551679322497435732458376587904167992345141826835127783813012518900422077355800097582365768173236133540539831832175936065449411499212639824636481016238024651350106986585674547380662572578305161601497964180119674681522114572245870969345024253419921772231615576730281006878207087231375860145966753693721800062594467807317724034788829000283013119480460374190299930685738105114168651692001960645874028385057311831206805045697618843741979594058340222928382383663381416034979621257302114012270110186519506145710908587780703587130127118249316841047884092972009124153545036484061212740855762337942989822842329045602059572595630735338500281090874655159111990147188024400370586559502899467993440690168511232212771262034131680296434170929616260517690470535860284420465966651952887881964152640091593947035288060645934371125628348540697121490978501333049393388223099238861431790397355881508425341338906075692965370374523061900385040722030218479427702886228970502251039332244063987984464635908833014869009457316146971240616855889987097668452789390289440220059005223251767634040041569687615089211226598446138212195773280923634329876137917877631153734945313646550664911735328000144038955924115731745045395263578747586362163481832696475667585314113381802559334442753858558214226157086324303561153756005230132490662499053388628177424624819747153388030236185387620205373804083427641864170316773766573390377241966709166736991521597903580913458790482789112206598212955672747833309546538687745085416401623636019249389703202721408739986034060085001318070690503632511177820461052212944390350957262076220742560588237498454009008886195857935958910250962910525925899342035394528164290899702438505310608691452345313130517823306321981500327605234044705495817904991721589673251504905420915775597876356902414154130868536965403768399117711443804818972117698272437843062305897057459264122653849437902712776520391453713851365909427681678868494636037550472206987991786581058696443855906949036245844734850862531952654556769460130183920362342859714843825627987894301053844309785973759091486059913741945116140831296284697685578144709773997709830474116544361061956918439305275576376844490171480049367688969625644641231291488739126637009811934130579835696377712242811157061720381897881280033572261070598189780701094544159283783521812046337212972993027268855947463884286701352492409410276000045068084434442169218698129714216996348886802373414352932491184566489997772594076089021529315804460420177617565468297498855808363640382645248473257405829976783309273077451706658444196165550274541836541308006452353724090119608574891451309574994572105247552734140026512311968216265725510300668084521579416795709884813229399069792026688682645812122911859755732135858071865317796373067469356332667433564268792953514308917816464224250545791828514053633489762189215106758273632998418956444023171180625080778873762843803890424157466809689850676762491501674375895704211179418253393088099378723207769559055418644669517411304787012531919611591951524816037826148242897167665399662868602570685887291752100409682204453731676641836170284116156046234272649146710987821897984498294793783623870237030072392806593253568202908125976319794282582706431092909913263547917544057986667301350654685499958149717201762119020053227481807541106457028860889785217788112985828544683874272598626696640150993891027904398679196171158820770014793246336343829611878451129563191730188642748390517253321838729931514594226807804352974997048964643187566197611794092569773578044451385082078412094836268869368847089018027417929590810813799441173480851629786701241111766603555106583576336343965382397630445255938132989776622972925448128761108932568632545291700083444415732378325722970454354628975062239216885710816963871656998355899028247348113121345890200476330490330239231932996606076919026401042764268867521886306257877276154952011629927188976725554918975507837302749442026513196503709513700958371750558333441087385054501823364304223710051956889261926000809119949300266674527772424336269999999976348073790656729672863107332324277666722698600087122259817234323330263462853116757528498647926514656659686995450809518658015798520441947776621053831132208761430423477110375413506080386581679843854567206413506466910205714637313111576351452167333643661359865528639967495808001262286128229819250287840229655960384095676368037675775294595184272708807176052001617186910971975739427025766072283789797880913653184610818024465660589490732582646561644692020290610051179483703267791309068089858226624557742837752138637198525624083219453314986971537310291356308437807096301413512863018688984313708607761596005103630055464285371622697570811190644157318469641699561358456838884997827371485781493114694157133428607873595946705290308663567968297910895846736182851732310401003025861768286322928444333554616943984136847261418837956679413600270145438108377927758225734325884938310046937609341623186359973790008880348782835594001310441839760658690250470311577744819733869294189060039682488405372482679998310133492125044052380593829941381076028451887476513572706735338027651436741275106977330025042322851969266343711367552179045904258391795909217671890380941572820206327848115315013211765359573712020544787975402844559656840169117221323352192710428978432655819218713919504494919940767948057958844940552521369989915456741126665771141511219575998047665694918840578625730763974879984945633095293188465117151815853643921405062518278590339314440641280462548270805095018698438936375551779508223530614140735226651341197114669605870769591651718181694822742192177439819845863254091473517553428598422749216314275686426285876935818017022605660982106937231553551612184899147049669095575629593669722839562207904958935142468591427947746669893259766646862495421673298403296834799174937623651838998905913229874017880907984802283348634146773832546186736571387162548335138805420840655117490222769439990241628713682333015751128763841857797449377248051872500668821406970094945683693720456125572565130212622081646646138388896522209928766003593994155278453449133625187999855310648976700134074808812036668163724740364773610074191037850576734465950052648924547321719183892607305359375875414544324062886482945652494052383320224692673057651632147366656131197208327951299543842878566460062570676562932325126927604675296555230363513775942218634883195491217846530897642408091005026617092766277705774103284995596230736504040395399394717602993617719844394890399834923408030017726949039620124484123909316918268006807195342397787441778498575536750199824980058148433010685445616661174761174940689342001685337275209354141712639862797272881630194019491897277672005939824034095254095506229858756618555031388133081210174228282170815999239928179531356933209594317190740191027591555578326207750819291066187248670284088361646141192515953004602235838415126850731296091330713310246437665100671198913599840010710957890770393671159065330243856874755086548309887679819994525574365677512120544312993224455675781272684022124085178212272108381013879858269382663022558379004822183537854137459951206761609631817307251972694884377035773307642896658145960244689372887411786069849733521753125434113316110006151089900816039324645131887028225692939330653959596196702690846111788701327805508502883463974700115051198337748983292766052483783729988639452476933064826343373138955290837726065640494734250996013226917268041440070316552259835970692774570013723436299939529724879012190125701009571916525366479934608987356055052645055281471279666510789381800705359976504876840489636399291642150300509914606028387212227850787251026835253705235726043801256755386999526544157796696578053955224313235153866502404925371747331716807558391393248458396552716075826369245054732170731611270486063974510167496983829207589346473129484219920172895647899959460454503289244529256958428214866569088444374647880453851113996837921739122306340411961684054470291036261936823753678630775173787436660727835543520525793511178772330401288059228724958603101422846315400805116787392218734875969967469942943009432455014686805184354145081787580581153284354118155561073714870044274534887192087050196435688162422129639470875788335669056064895227127060503342412497343135272027942251637319031678820318769144121807710737101428081009926800227104847010030996984457857157973958635464728485772870523992851349753538988857725083497851270585917471925120182832125784483138150223683663169421757309048426769685147259306027089523602744768187010305058912365512315471553078913660850214555283964587753137830265273968954616466428601640022472296054200213268147861008008964500017167089164630105623986350870861181416994103957908361819149358003858256153022072657967910191542664350789138972588038376048594943996686074320147123047062203667539193205812148571102996505164631475811811030114101851918832342793053866871839826877358572410266974282190289284161156244487338489343188546909068426431656439641165634001865755192424108379555897234213878884355805903602883544805737220582149845392211134074400634739648482281821059471525166460657875724581134249187331655076613079540771343296486758306314855894077549664241852330000450412107538898413482503978254106689764900325952998956954422063815027885046981174046090041800829666048934950511495986842145097337849862967990872576956845193483392915764772257027942924628338174609075488085047854454387205848328571982252455956170696187007841085494223441735605077554929577034994632071682898021062965008647582729089249322377190681817879965995338187724982707588173854380015277543880069581837292306495477928229051526446970007024892100839777199489273428812794421585997524803319840466422960946231372305872067999686118287632368509248202727812279766662818948147991729648253430107553704828415382664200773383882903673797639965272421560266282821116736647108346380380271560059379203852584072976635813699725473196659047055540296696023881983085620230654061045335923138775204300095145323320128718907545224860073270571088454948206672061143629768893195345811187572386741527342835107136696838693675589434620798178335807365789993354672630028736073553240969986220199024405855440163661801741582494288090996664302377191645829580578522031243331756482207546406472453332338272816456902552906906242916700067103125051933799280433570458810507846548704968511513992035460962995236831837002188641026538785218905218250019388101154856203886250417671675629776481639766821577170814206606876155048772130061181421064502015094241928640384268039333306352611948896961290577847141833115996205000295746327551940052512676885903797383972352438236605176716742017001416160616001432290182172186030440941624879652604143669964391007664779016770715053397413512070360087264487208313792748632003110161845541669567084411652593988934745391150172248261279537007641529020864466170414448393310963300616647734320486125489521413906754019105296659502858660866734648388363935804382949965797464641731600764539257967787088974960566773698465519263611681697153357261978489763573848784667554804566536533284345929766632888241362755065317678388729368439881145552104384223954976737200755618081800251944736550750089414190790940256026967438979388179278010115258857008269306766433821477317459142843144534320552794790826691986822905524400762398606432435770140264911005209366844042600575836744838889903187651984663821528293317867360287143463128491849462447710577232009784772201949715619746319065023186156228722552354125680670815561550686319794503164247831279763650644151853917583717327790347701682502858556841449038688826137547466253522308907339646219320185809709610808310789840359213319893589297391631065442698032629931321448395077337035096064162424289385602583420336885765022240788452421160652166994695862070600660007649834422285117739547827724732911899072659648524367898580475009441853241898156410755069203903155103716577573686161605283185414784769385812543586683998149493609079056325982372018667381469703249985988734340318476852082297821097795470058283976716090237280506136362286490453480535683415015839279632612982322600750024328717304137437237256000319896590860207284576915896195013095147006614984449637005545587266821726816512477422771760915678792200468546519114676918820048582161956859636665769101764605669775151213421597353237155081219442241327248582184573904855648146194023030708733298007551237217499533536872241218898558648744418368855730009639287292953352709565782736767909751374239261781988402838616821164376489402548412121721015557923714241856526530327860518853675113284590223106953281270676378196618632649244242880179588554857242551203224488233947742035802884161475424930149308845962500829834873876570016335788801938454250918049352102551868974021289413876218148064878711952621804524123280280190570655341930755329764635266629081757556248390077642754880889750921573735952000171380743445099401747387538838818464583008921487352526563918411924909519794969158579931017439586230542764073438627893960725314660854460220312875669558223167306095005297088889155565173471608447488439558470063578149476625810097237900114316622593320078861892788820138715880526141699163851567377272342825045354405354596273409996619748528587163207242278342950750413764343275101726595066762709652995742206407941661125390575031128623650357789641546823990844007746174561608792953110417612894305868715461941204014336365572552091179883921895978311116092072655994023590719205462877073172746250780170370259600500817559096211777280672433639787650354416738505343377903132756457035638697001276750729057399728340446177434937784305639915467849074954822806787726379583895022828461965619039670517223058448223989820569629405648640155605746404900923377687023418526110220136257320750402660277639230435217329581024347871646796098567464636230009866189965573602412141472382911242491793704397422320519919817385194513381561601359429964433971787375126818399564359825905395977431693735664137025659097734587777558838555378809884596134178902043621392211499477110884822014834598388541286734017663591588102889016094521246009203542012650573942974663191930065161678087976703959829321310420602555947004559419372933107543776699389891705011027381022567393683867680398929444657151166110779442431612556297350350703015156974889100882366810339452077410774524297112613749210861500930980050023915856953774601751047875979059997679087506189367866257300883461677474804534860483975766077352521942599865516731388426555278228748412567904592276286927476984933410111607567084720259910027790620354727315068735621683222690515170751251987311037857081499377136754308015085399191332337151750975007486475471493773401229584541992897200834474468747272309477898698219569981671252024605529677030980307892146493251117499694943324572160061878649368755472570304267456071270037139165290298517029460971067839054895230000729931809244880395072663201595863644877298600872530058014175780986348147107145334588354173604466846073757380361727163397416829631156828743057717878671679084632108631575778657279432578932299622360186800483088655100551082965092855019137389511981067616958193471785829462974642808199101971462117228201481901233884615019872385968824624995361944493520062371676698352737668551103941987259232068699338211257901833630222736838641786247944758698318414589458587609595963808822041706895011854527548016929674454098824401682499741195516478471799793197121083512527189581196242162887866373897288293825384919366368442651543007287360946793312412422827846809881413355446894635406880155661759760171797888606522600926450695802364207643900686740898026873855085729035019967116620774130278002752393492728839908702646431583960853543856652686617232989243642802374127846558756672639854876658251933593326961973659148673223093147039518439522250421728456046671606002783700778841238049620482667483045559869875905902607278298720232198405308410681106190014712079738254368616865184355821254714359380763369317849874239314874250789950980424112004565004741453601939863992006162332365090668171221579066952174834002521394839789815414765850297421616126062695428789091329731571758101127138341377794185866228262804101364408205849812014505523053663689079172786973565322993638621573764437648375403276028985580067582554295888291620305174343264211285444934043333646879457635917193312679922121455672030688205710819507379917816211909353867706209621413163071175157395162106513490105599447416843791138017241857573018905937802296469138929784226770018787558653077999963705023696606259588270824468465464036454028154323579656833054802907667086504125231906346691240131906214144285871208902640236294603116236879251863830592886600029494634544357753062941003473993890963341276508070332275091011314071651324258867867011856233624876565071009087657113647331811441225087942712812050171189740808576931671765361366046139048247327593284252479472836286988134617681015314165737253224197754256144581718282167773783275534381205764322953619514959636103229490512936237193869492015158475140337409277974345326816372005239047937215665674262139209458752726249764562746798027439918405165926906209790543985263978099462985630641812996714601581896268611251431105145310767644306125132092427616750250206017594089229051590223287129341295863998225061154274563599540042932674592969554218261995834153848683918398118081303071624285019661169207743305205056319293685098155599374195755798089426996616389783837590716119815623160689599779710162439749059399871769434661511663875688772347221414496061644961590659163349684640722432622077288656996190901008219862342637832147363552181433176904539891456743879767533097913435367128858805133804205939048916209837118621228878590418151613740657396765608576900406896686043940453436240695629596692149649428084981147524685484740799129720087729020790261308695538615879791303100678805697272031004381220625864504695008152414860867698340850176929352516724091041885776841601955722777212211078505535999969408956703848583054327066697115301015098436591288286935836174162976630950931520817117568244764120514786271057704978032022990282246482175681582300063763228877172895152465270409585072427946918830095189886495307520568213078816034454348917479968986124927385995090044720789605745916463709963738733073377985086988373674899347035955554737641001142875501729723249639123395782027633782767943461795759730921361477043330862629633462386169512462684113075398611023913292252100966920002815895824099567317133046644467624278396018431269095008017199943426717377157797362458666291120002737929993111025175159248092534581426081597968179956280270032445295232353285437852167922520467765588797833685665574077386196529576777914474142828736808765874004980698749660681405999865341356008614008978144409239870951989653004073835036054103776429923147138605252008081038544573055475497891977419843940231742573108638853283193592890307972250032524309852990760658311147677063597389266718788513438445769011852732877545794674384284333144379835538624518664154279666482960771436261534029484317803320013059609480249476105295256646326850277181494750834707425112991511416093519779078621923009513997755956613537936433786301506695871136269553124999192256652985875040482882142412316616642748786036839991112128512450719167685823583937499281524377989243882308997206942891305113287417522377611885036166406367231519434267807316601422215897246309910754111717552380899757055596142414816812942762595031926471944633550882986244869817994899583197966800619009313303008211973186887645282815741681507996111907702827026400875686843138698035990991760149876367799029994151596859045748023522320904784555371808515292812558617359859362975494599110549527647830829046859607046861332601817934713614110540240974716093414874077807512216890465193004533541076416478859256493503536808634404295463826315927264731970077627660179701167974102942928435695341372227410592509276181866481944320267981480136515117257169379869712288115360698968836758550431867634346169261439100378456225347641107627509735669666503166961389275623435995672277401084615493305179382525511208600036944588988043874737932985616674560659964951976365351721266695389481145922432345287013443243248277672794275509169727932036305145038064832789624473734579661618822416429136711695040453382158902035065632938132992572529437194160133407469299933406606929323302433091160831820615803269620994195041362262326894515081110933481792238303664319746095127540934716613138303641774435561399153746735688130134006967615072264269116127117902279625268529585177361438104070457408883094165203434031117212183292482734575976521011577840028904897336163559645608769117278354110391175071470535026196513973835992369004600484683573204454684768523401092085390441542001820918504855580837213332658222008821844374268342482254755112239237025571379110500059386541665226498604579979091532538481065042588898312526174771218808836932628987792008236298036236916256730811444631510233613373303892583691442615246448640186724895719579820640106731419462924537487078427449155251145329679779167285131589737258135373370556434900266540127779226518105165484819288527248449487690559173079044925201520715611330839638431608386165943647826054068734836707925691523189812535591149603524876242715654607053793185971159952901533441256041534082507425548055280236045687136987367298992434642831883010087585713554483507232567894793895462928982278530088282095727072101198335462885956978697166735567619302653916848143766840256755797337623781741774740690604551750969162881469915164938111066796270590448638389565555485436650164179300808263495721930374523549776685787821203988675854396066572517924671808846494521904217018596505480356017247274325525628833491155078770710945654425259986240014766385257183382369130197282742546197246506410609893941225402197896190058652986928435944667729937384207042390177528415309319759192190773456977209102237705393864662529711253750373377617698505263459113958842143577343230027140873296962062382118469391504414289740441791036692609073272964451696453398190690130623259524211565247205373721182325434433942791350162275838152529982968435908948648744259257762449054538527551153015345690117735932868675499163949911311258970780322939785960890052496705928615813678172416743907371318603087744375056943493608619688032676963919085809115280564581739240902207524257452396106273132943335311363037304945408112797439597055987933992894572652774338367048207101783250238505545674003941892418373919327744816489274790742906851864074540988760564333687900367756722439200495382681188776400943807112361806813552944290325544970756483995947886426701538374421674121112553400248616773773183466090423415891598907081289307667465989818174239895751967168825993688899881453288901502814644433423366140833819982111575634417704447503926092942326273876280468126112516880942062543099310026637118486421732231956172492408158425869534083368926841408725411965994846685332362271660846548436874167761001000549525516250952657598544442131863107928237526752971794200282384382897364430710769459944182778972480786751063573503948916678845586715292701861824959880942931677496639312651088414788555114855530635183879785946653551482742656805465626406714119282976301876371560427728611292398527809521109296196156118470364146567236321158593910806444224526206332195597077425157709533820312362791894281026627571528460850735906922382574154207955517994718107739344431872848718896390713433921616688986451783521116645815322944216752119337937568780844120405307112169185984887101231533974201716119793083757339446998947840898493115349063380690680988979448206310982184161912936340061792638635198558648964800814294551406751586773565007830481056021521856448155337344820780755060674736326579472293568936828587013599886410932759260832373787026732601238830701629134580883602987702641416049315366874640740086594250597637122769732419219289140960577737241251649421495801915048320829194708441596896606452369549518174424418950011269426546296717715109752294638081341615349174509951582752028741744097610891799135317825197354423921787235652205390786885224534026041536130451091659928947492975721677885210156363511277727264913661995370613630897183122468330020489973301979620795680201832044410505204431247824936573271540032875845160695360270101739006848659077159637370856746111720953145731608038242306519187975163511215791128637946195586900468312019651775992319702436565820752462845235554322180754730191071248964867421805886617674991538034890061681253172628924047283334133279562433242554094034208144934862966764876132681523411721229186875378051703084545885205311082171893237810011582508349648354545234815303456425857849427026589251953797498533122387462053840750379934568808119280321640014605100199410034978056790578256489569922535491658175126221511838154036783184821950713982984978641859093671817524618745308972118066302196416004956420626812854344294669611689406460995959060119903422356838110427779688920771912867358572412894115237336917084341239282014100225476867841935390570573128781503438604194409756088792691144518081864342171166655992344214381205735501576120695885003260419737264733152334201327449727949829889078764405419859607513990161209610028065112915743247095405259431683730080957457811983441404170369594832007640900316380577350737925143475526691510330861761058871552082374577838604542863728482743502172816946148143549304757283291937995826027769451199731314065884143066246359306085443857798932021348510327004448498537266984441534204253768718953266287165959936003770650626086475738414259140035091589067722980622574951896659831211201953384848179347723187911730370670243165920808989841608586005162728100305028699689648339663971645077898330460863327977834156783478624228321231329739481356248186881193660450572941258142892633217608377068844652560873920628901844760515789263877705193361711998066429006726438366146018358069307122265690106980654357389651748799030552614310973192080313228840648963032466153068720066690913600067063812717470566157672338775395588951988940297304459611129469581135103795039545482790724120164920817516679490272346365853205472131368736466418982293120203821262556564177389600262114466622354127767525432548947540752485755567519303280212006645439780631817063454520187406356466966874686634220781281437877071785861231990387890149037050528967668013908293202191989346606931381412787054439559412918554402844730247144139470545624376970706795539855751295203717598665565246165792688462290536072336574565601983483880717288703830031669590586823980834353682800960847089652020962806194718103203182402015454569137601148866715315013688105439647345963208226139099001228069489965640100977880290564596733314065479477287609173492182152303211347680989987811065004971242469695685562370318666447022054797159919140179989162300090789268763452595227713383939575454288086994911139351905779889898710802128308402896232291896219287325237425701043262885632221488247756266197577670513094965053339195697098039497953379534473734407474831590879080597542543627097165970407138682404802173451382984896237337882455455217634356646129579131058330585062889027058924532660074811785437585988441231134181091202876202045393004647591572795101985392659238307849225714153794610666719803336597317865520216789723349075941573195549655161709546190955109930559838626737865642769752472201038163926649600172807279157769112483182292619338470675932454042869745735405373153699214260127067602293413646864192588143442053359896823965384567553980028258515565212170383905209845585458455249195493546100455628879805877241475178609657293537396155526992974259264008031884536977107453809815744464391013274454571398431302732347541833497677852198954096622094105928312917788378494947734578408407197737964928899504792007300025248659544566273493852575377142008485917241115917195530763459948501037348180968397107092406004678012020072767979318825059248421236247828069300762665727340064184872954210519189553055428989476361530025640782350241234398815957728409605777152287361341384020626668715161627911910122323745883062036692953032156175371225191012024690882178882912643443871956666459615934037949991951370930819997240017035009402853519961429355473441134521451600359308335804265704636013322234353495436809188967538668327151676787521190021729383649126705284148850839904230901370065054147968596003253763068593222336451598688739899048009532495841799428615357997408368600198045668152946693883573455261970541010480213921313652251704293814383551199429457297438928477412958380188872356124292298867326566749418356896425855096072824174838629821381385666315882092006295832337504468351685707838439774500988772926937383133707469572282968027552972807968640103149952983224382960610540295955459819300096561528504312763180595426141813056269434615538671542850916652417707491817719255721165308719392317931833642843014917388886370597910573560082768527029257208475133196218236413992404995260727070083486030202401126283966516780857089098994450853598005335502759118364248747247891967649988247619760098996419917971056910022923534047367989024942570441261923278656298593769856979457976705393208780557592822912977570039341853528905361027483133475241324009655407275422156407306227295796535639337516110012277698005674943788417131968892550141529043673045343925228252553098875385237565390447453235682845251196456994026068031717935368875019145914516688921318571658529303398380804822412277268412413998113404546353651577949876343166980844083242148581535039602644535853390331178386365122222167702609200239697552198351898525827038768960574651208583977369437475197419285678888354501726242961890934163147428248600239756419393946485365155916090933113746832964577434329384153838311996790131083522927580079474610257279816941442024245090959970379377317932133122408058901019555871992109815655175813054774407081954487807180554582062269141813311833329374611132522289862956201617786073112809482060259572011033173095460096634356048265110931185287533702791797794761785018062254834395930665882841667174561628784178519947948546390766269990566415236175318937964785653037688363929292648487124315280266823747382342651908401303904759903672059542474776048302705241596726778698891891782862386012921097558688906653298644010209528384491105649191853144774379340839854209592954537732522618640557238888637390530383112029951256968556963362964595857631694338430179228096886277203416772457810808879410262704108537588931579670434427784726069938932760810794106742918179159509220912311456476503967463775078751343782889480919635482133187692337761720132876365580861717655037800700629630106242862507568040382519680043924682348861980261418992098357084698035626306422493217580210485621645213381956546212234433278807912956134019351454306131750076573757310336284818394304016444659972539077207385026570700508892483564320633323024409440448382382179580180570240913422377849427105064960313635674819649320456868265250573451385484840828320932189843765961670693107567278380638965709525513293964790439157853419539421155729002741886235014818460939581494584275866639472005520846543988335571880884908735779892530034676892010749871445257509880023508047379426297773276611181603858171986748457207856341228277915453689965013698706377937046185576577343402480409587152923366359170710623184444888538341900119896771838117589943593128311979116029711260703529770584626635663270334538446802091588788496765539912830695688755879952806724612883064185962588756768789946761294086124260216194716065761850050944051704553019578940311022109917078543526380095756780135065320168922823461688789900402522396517904358846799160090538856735831145403250525100331063923499826023198834060051377623822433306195544120187690590294760664951249347427826979420875008716039273755870035363000368154652447091737634141337182385208497027351171239564234290770580167058111785335124476235643947593693780536803058390234649196820785105284950556012307770779471467499358653493378599988052616767591443656983781823462506365772565915139218185098549433766954300718934553910016092035385929307671609444530842711934175261532027139670000912519906551557415414533150794563053765076056439386199122974503378859421403875975599025666545041864963327159432907155670466681568696948324451068985672827495064540831364416976861368843348566622503809756020581662133017995375370522491399965053836195700464318673277992481061284935658245125701997060877702875999142691666843269579477358006109288931491449313783838732582559987477817167833571928980150706924112806846278196817638322756420470826177968971462332717340474981642776083408686227135796153509231665602548125581066113182585515378315177020623045095699160995204788510135854125884018420022042290024711924718463540519312441623906332072111981041963494353123860110925329214525102725049488305140121540437801539323551254799960650891984223871121519312451251092818421924863921058093369794570080157093230820430447767305894801745354419432516174387956167576555508504967889988814509612245518895662581029347778539811023686862710612679419079816822719296343236498156575069778477388987813316610946037153253713147284965028712785802833466121864437993311724969144638054546706547447321238630750879682899129717383950186015220423067054087399143247420369451001329767688767522943565122532528919543735107329705439338503682215180995058427843830449625570512992710549636101839020358774131531968641197011553558381547917053942532386828611099166985891392973722506429796385885357668280507661191983112017059562953290762558079200608698703307930287113444014484010185567092511321517330563935306706244909452960062123828262850205583145832810142784241450549675760020235299373499273531212512216395630325410788838082759034224663641277750853340104328149361849121354390775940762884447902418820264234876470998624577975989616527339304040664408636820119764401021720669249841930715021379427563712809829119569069522287251054081297268529832543160955083861237140416203139157522571128924810070307097038033687162777343477496233188281019048042674360163024170849723692442505483974336408561618300679902441911835824995507117630268473544177467398897119817305253155561327272300877611396624203139621285882760817415868507450101000686436001026286077058407972267892102829574651152793037671519957238954948018082290257786329187849284767327425925608224157098307754305131468072138798404141582555710294800722540130113919853924547651044746283495481068720561542543513129131385882767817928415746600125929690170739247816498253596760901794700894047067370063325643933969543739529193448116230131719776572096544345619773873689427674853238785398986487307163915495018070724897044225840793583722243274329089320235480797067948728743777565338276735744311370839585168961605137869203234136630040413817148802829950642931022499658723054752883901872187664450021476090551522197265944758015623589812913007890950692647964612428779076454215892589323795773225351976736441673186417304939445019078408119960013338017488225818193635468241939024233221965523482185462655104939845627716173923105197006368367124264888000915260180918158523582479595759311982225743922504110357114966821278124465932854269475815767512453228983616925091659803152953204119084830877358305855362372135631805570723736654225622813036139353468300980604497872626383583080002412907132999488856674998540267012127296441367046411947495145331546397369629998644098325862437644422483674880663326198197257394707350299168969964492920500760287758380075259274910386958440371107944353101254095825922939446511897687215255361960132037679757059980084108658874669256429472983426483969345052798519781490657494961408806873666283669161602322060981099743281231950425581113658780137853752540316248072919811574372929030850955949154204800162551559503335555987632506192939996509028631312319866150937963972298546776187546431455039554538162244583136474693697012447621671698035798462820358727955991142180188187374513649353430899842204531928039482107614908158701058549156998974441870789135283749328246840319810381357009086256816523553220938908427548675208117333162028177736631210257550037157522858042758749024401025422257710736832313816416504370629799680064331023622802012424468189123530168439901202940175934505182811670377206869892168140718049756881619378543810798928902901002434319143115669349396263155103196456315568404193291824042496065669014393802031651352169006116725259138353470129485518681322599444876107017064465684355700751786109361727300800857885813902308832888050838943622058182320636982356473402605956699845982120018231719515717037627037055872452633538539355175290773194938311999503552014833635148541442932383221585580721298854236794747546619174979731483049380194696607925123076601197879745178610211044095503732522544013541495128167789132995408538960810625026016415233271914782252316224222650384029860147837729679099783066496403701961003722014105803401278610592483054034973602413945495774467161469225812501923424052071242648607496852573826302304795545908145357767180013895210665232465147583792700520524563651282567459139749073767146077639861388446901441336228331602400391130805979512492397652656325175550920780068267527270843528128147511180267624234112628062297563055011423631698418462142492655880108048991604495544014447121386811051080438564319212597509668674300177728488262459087773346157111427696096341663863348644496692951734414262203862812834863405843507919607053763429857621886637819854531621384165113759791206384915235649154508071827520295161402368285807678572707284161867793028412916372811226755710032388596073793144417745942167577854457487186071514699746090099085959536095706628157995156195844327429584105872393708654666769416939144137875338401447596474784641810286206842777023955154474521467746270706432719974801339821003209065250976637734734043333307873240110524199129847688346470141222598106458883132768664859422416546592215503662057190819930279981282417102786763483121205517057444446632983325051821835450941663516387454091786334742569819708225519773544999508874722583206326632230901657618347389495134374277980695570854074046452023419557802694666092507797301389236559130131129312032076268385038167961442704136951727286965022363724458506547639826699625263659017657469255142051814246506043988461176858185157185038343648283480730222774145772421639788937445152009250745927120778373283507206178117248066622660752914451163902840203798882787417976169832317894680429538488257755026558700262908436450039442688891406253150764876609881905504301821356958621464405864156879686369188303909731936404429502886783596422161906295300745220224290848746051850351800326277739867389327930577412604783751371297684955522762430295909151261798147940275740623467450614240109611175478754972630262047532171451546386950962106998814138930446390904288194331404704911721369485869454501569120155259404519847138286670716351242345525560415489636413063481874614105289230751770655817355766525134599844951973687973747185347873752378193317312241407899243289167198652192412539976334949618530373543223905331655597781282980008105104677331331039512882701906939962273653551747174813422502929619866607740080066675304945984971364414697572579264836445529535532873316258643375291897982638484114118608595525123184809298452432375038159400457189790846948000454821795316949277777790640780507991794539858042516495225903480978014294325545445249126453059568915587949624216877142759280062511870531434228788940786795885658871858545659308298817685497225249300909370850216066868600861413097048496601005986319672067733709875906915630588465215658831328649509036065543256033610072299625525322136837758443902337889776574931088224816740555432602541251404642628479754221112894447969912597544065553979849492260700908823650535478351315391874709536834380548722102546247052697756945874858410434656175252456934630358435132055215061838799765184317556749542877634731123722448668842953363978979934447090099198871375809082126826029195758909036062238208129909409682238562975064925844922869245963883238998003315585782313178224114135533667120055673426453162981850332420050348489275999718978877953960159282202358486523049280826145700576852633014002774822075562293464986543253284712480381252256104484498654310236701803594409092547843312293487381111020311037545649055637219704672962746447409481899660280977266939360486452768982553389936025814612522549296540256856149341677261802300745311997332541213364181994609190732308489148245530352914289859431303528375795697430390713903338881254626265167072125021352331113991111151561331413544233149904363369639954308498415030518796538957430464890733877010134866845981254700341562185626429473801159280272313019646932625886581419511361480000509988172948645783438222642017424652516695698254644986723920503546078907156133200474756978163500330520828159237043876860719529515603977679359782531373973612631021554432314541402167146430736218884583267877320327496595584634884998496299611659493689975769051034563167685410345730592601016464957001779423679084666752516707330565148500377960622111486046086639741637212106517565459231447482450736365380260291965635640790462865916675214253030028757593384137908475827340532717692738546239967610170503742400719095831886610499601024500822092494977798071113172890214893111115719654150250625763304231375525823540582752514169929825614828966169498748813731463828866372462017626249712133411666091098561929914668463732047280816460846154962344508947652552728237853413939743114996014352174672558075310500989259677719783460258471930473006860129940380570555021645914802324535061159033367580106688488011478222124523061232214197292297780250838347011087361174498838722927521415875258320058415149255585358988902800410930372382578344048120337672731512383230584808881271765479476491278514309759193116767781078039569408179033563937892515774002302371428036944620719094141323556187367000036003348560046773366851339298509122376889696364472367062775460274715206452860494176770004969296722053792264540745890302823705781255805931829314572824645007963243260394360134482777499306569298396576337573038675799789403410588871239410376192865573647522522358768542398134920175627207533863305071379917148113510962523813793157560263841882098842840017924646621678851415418142750267510140086221384912410055188453825647996054587507665301526965018685465123852960599987419625077803308877882997921314924242015700078340166297365057416486601921135216124757634427282657967213511524306519646711190140110421005903018757248345042818438134675462467540260893076013639811429653204790828782920298983140101846381700914037421435962161421992292664702545421558161626243788550802081425809309459788067343539991217275628430441233868775771939610822041032684940148526086593255680315058785871587723666009210235939106636320437627996181763682107237694633168621793438988132653055128819468923613998097314420176322486644861866525184997350125819372134747625724331280751985971595317891981736801957316455216958320301511360076170676595522945930641170412004576699313638249948429189896607808051079975325615868412729322747370115761029283289515337808050630932618529345969219986126500882963721161745149007447335166286883334062935027447381715370602265021347882336742656964126714871063477797508000511036861724141628431408579641292297900067264946940204145098842347627033403367577978414004995843025372438829202131275635466173821901874535279441309052230248809063779240251377516323159038280185071505858014286470699312688898371976164924680806704335842604174810225593315503066158181831940776178927074234270098653679032474694760200443215683869087303428371390241889981358756406777381947155231397844521755996139748243814610825911810240281977086394618939735538750706524221384151726218058175055696335489263157409285313609025469835668883379298402741607779299666658183700457492516790298813715208427119133214970454470279464555758779598425381605714999514610812287205779931814188914058032580688044545581447785106538808941829297079837056650088846920027435853694988427107887104176629987151907497094613619118993656438154217957680567169193389876292274037897586452443410047387763345389168008734906264015799325946880266465377244691279652277291926744791431142397050315215204512858612056012386867372335645785527838392433734766602803100804377857439671245775439506429042314729656921768463636084881358022572154066333428781987057831368343117300007157411391992405920363677431303885852636996379090330107751690893228097269777217638694629237671918771309727622755764909506816778922431072109737387630324908812836825986374829367859639691909421644937511421863443909716664944469569948959706618790875114345459558507017464085479229637006551631929029803126399330934381963819085999375271860865977544676654262928970161450329498998700139882645627356672289938071233684757078749662621927148105404387761812621968330442843507211807035087691155117852571965993766728056584881963634977725139078144787112457109945450072310033531668830172992074413206358185808837617074309142477907624777195841614706630615898839138938866480821422900226965246858709458859826465863449620108304171513346873292966424805929901052288452250339896485488685016432870724624532205246935629444207720883912026932278029871758392521127566207002868819579657548911057255108628655132401167291008423714062489689990119761708254135629678313826490061730012284163077181826536988816926474215208566041811598082428738386314129768768391914398439090485579583129083570028008900618271182239705302821375395151757611849967526193065075382616718829911395221815360800821134462593785856531098432316189921465674631540392077899188072723745103669049640367295827728445153095348912062610501336801934491082732413904358060928171477522644517700959222194460591475367746426984081579593118661060329064920563509630116656579939638466382253666731276467267255130564598972018345185114197876967420379589296891736419592192629586504112724407547811507557461494468883010757661994886518861802922774308522680430379469009058191424754154216717484432156894511033580760690391672333308447562586609280394024595273041027091206485996732502522132416276182463645614885443779471390279284570679377652292380656756391151088619684456659429632133182580811185602653825670821954311638533893638695480803312182281671161591344447145367935538339280201615146448479733346414053158516444490218560758545709829133314602036939823128310422499929311831126153429608428948813797021151155074549934402097613664006285208880091103264679136036449344443918989465956012754349607855546795487074487285633663248149418620456655365915401718053154834025120249102953483767521646000590802944206617082133268703535149001609708311265745119357997717136098897860885006772072029214762280203640995496187319057450996774298172088406943440900967666209388427198202205681569030512905915927582191508642238947609266092156848281075091910832885832405753439212700071798718490183567484887837926294920348120917366022235636907142021709714289100429668045607601084224112267348148548746514211018930401899516654680855277522761582430702933300549498780859270844713023559622609968242303577066912804733554397696618815576565183995705149586372224844962317561599593230736740433760454161188859890469941776440080490890468372337579405744284272636949793819474851400623252900047744277958857213016291682335929707378923767472601184804388561900528108581406243197758325715884563933355778879956819677282444239542560582973158916475325587236316386802701222395296854995565311660629994095034925119010719756957399013148487044170789996748942157100308853288866096766012509688101149748017829841815724368409921664955517356829671257522029306940971856493505112532229737295745772005008891983629547987646159611120255002977307063163631286902912033807559422182855288842278011411493713641036936646823819030869100136889397538898343123157537165438642371977653261537121860603581881566535190236590799553716501795152626543634905842879649181340959038157996504171695303642779620887379673750275766307334416006082787223481527057783407721755393630360017690909410968203187999618916378026867245789258380275027240432151844764120655673622940122437658975917131511987476820134955734007060208367695065459895749026511262124069142784428129632183325057413795712316169081761514070441540425823651640763139488418728048316917648752662878626839285162219857661059830753104784506604701776717176438355681536587457143222419092962833658579454739287568954898964144277649543786129150826802100960507617034888550024014954494920160683779100288911727641645375749079234820089063463486206618539462282152617851335035797399133514995254642639481524199741397706992097121630211022217705968759579775554016764210079742097244181265336468948372257592553562815842259364653430512114483630064852090307554241031472341508743783267404984930492375092054679101868191977705325619591006923817130682091243927734238196340069712885598743536300391756208746347988189259811330551222797861278359606649029029684256006924969221358103757009092809261187882914623456750603328320940240183614283242746617047692760828826685417159604465797706184902376346943469806262115251334561506328803185219023517571797679833964113545041027700461645456346142175387131934076985739414404984020986293187598241376283323788288585841708543518022897568003115860306374854948469078964843566407036931300980458715212336556295550403358968167119391637670236822010256860443543396670046420312981907964743681867410289323677455860377514631626893673957491424549223151785125564292291557306725855427478602377949194412600414682316249114765484203067142674692146346121510253977392003044849300678856065568064128343685265530338196566447309172289083953846904656425447299899959868246417927294468674367537986952931669043387485846630323452888859409077859191292590252127926812891730993486170060731425823540941657519041374565042945763885447662079350369874325395615816933045199771637594391610448100098941767185900095183046154334927665124811914901585414918934421046269748462241321234983671656904840860074503223585860049249229798934706592482651268485448775648292509425129910891827132813154506265089935078481526185385442290681563193684537267901557210619264657601490560799007443395341401682455537605893406766506200959696075716928683265382832699533939398135351126016043341650405067450210531909960301669924619377756077492334836537569191581213283285391945873990809469789269841868570542326135532316435473868118977491236962349249182657524245654511378452163284292399964461056942256744459413761396747040289290610433584804226723806042493374109028335650703943330660009189081002034368105506235406603643325824904038460326994362449970030415390051461594071701144559487113778242720866299709509416246138015937125401128751356275635131675485066766425255825391135862346513038952734294855074300197591342824438310415022599753388497298065213690907864662081089062996275264947432935099936669927195001435491728309420090003972762032163509287020563479459533341304828176602252138644791983896597018909712934444988819156570397000767399067521345743889113030763194828819311064469072373131432197403121605888801752571484763306916466333445195002549534573138002859847443715922080313042507662783653295505178630057021533361767729144532882851725463684161226377274999881399523407418869485245709760533077180983144013714102442975984532752902474864636069287545590729577467557253180804567541607896504515619612188224353686099727751068806189009213469568114346270697121413396078393021300493228180535839024193728715854892388884293267300632039926996963884406833961006477708766373974990000024088278181313124666801348985376146795614909853133407079045899470510165623757439482610661889746769825427545795361865055418305286265590343037905109688963549679498186059264909127928686887660650346363266158256926436272656356473009737160952553728452938752354045160292964774164808566613548713710680436458380204550094998735198471557642359602168088068644138327902306418418585800902458526119125429489605310845626422660207781917328910124953413188918716736749006963964332289905327959824142042320223451831001399495287043417728923135226868711487290839716472915484300078467163997900816119263352508437459783339250417738485832399173985726669482385922771735485453246072545649283103403679749006209650367786835253625992590243684808658429658070230572751080370650235055972989705216913268994770787835511824339612065188885507085186464675614701886885134818669337775563855885677796627431188419011664226738319312847624535894859499402858312403216286152103780851761389541846302594056977327037188777089913212263055730700982895038410002192040158022854433117900175726219147650838458176127706752336349843817448253447869956553122211924815914189095180831174043000805939305656103724889665681422026371529428027560956328201813904082319616050590277102204763516238846711492583166828941699935044472007145278085009461513631513597672982555453461216853303855515991974197849063997901413853029400916062033455411010574377808728074786496353212313008696172861606477564986139489298380654795254024980966047371060804019573318741648672492486935147024889134286665788577876756705858505363902513057643840497835473335749463263046946635450554317949973854488863740896897487506011588320924288630658147147696569505095885357772761734365773635104152337068116701166850537211292218915751188595308670615492661851910961992588907725061388280747249881394270920105607441143445673801002326315571466657452932145899435043187335982331911655779169315856392278355397014648130360258715222908471709485438722034281359143908740595852163173886081168344910702930784925932198715553858493744189371976591624226857723437834037006008309247318430805250884614920165841914455588536713241072979042541120897073710530094597746200981309306612216968738389425672756726267461070666082217021519884654196316574862107644069792979322975729037340011119681871902875206657916620915923774489845049029441375112400105576997184619203689961270001737149574034898109493101711281597396183972510940115638156304457691576134384026578220116936069747139213759553814212411144877030716902665778963062901797101650907731819915158413437359825163283644525333424092152024224741079816499322970264053669785913154437378535399376523246311828130531170960609302984016253997617624367901656795907031611141093090546673867115648901224770024082962394537903673506847308337002785541404632262818232767273145834674604750772118518301463527742811219565097341977097615126497970174821856843580883389262050275629817647297494889534109508398415782005840014776780638352143446036583330762560939075651019986454861250007866532103524117294813794512061248977830838147173331384861102205833301488141385099287477502051739715200432035684152339254964828062764943827170957213329652554301164568751426557110719866736754493354384991415853248656209651665279857425932347648206460383671768556292821927996280606637740763359829595942895416426489330257668689318781901753468120109440803395570791571845639465613942877911038325187094717373245188608045690142731335370266893281141702331156560195597420665636718614125975843879412665310202258044007720189349098105134532595306824084978911097269707380925159049080053530887373402335831621762102677481232727850778666108574851611881298824140242042358172721502684217969126576758044379618391613073243312172715268830278962709316111388009706172869214692356736011867295825365253918111479438018962492948835783773033583987442097623870836398294196099771813041259531605519203960976196885338326186122360432600343109183149317877974773844358421812082376893341315585786933297474595378374400848116196574689720650377499809729291991561301800498347064387285514075025015646436190998948959521644739298383585038130533538080360777716556463768411441924978434713991191561024380510042441871554344358549283144107914445837245305637881414745452082283208867652203288961709196711406820464801610933261757265261146178765157752772513177933528647876862364642493947527104399209463985108916161209227636344084385290749647145881909106412127748391882715768620822537053936055322959425335362416284135388522718086601561519640942499078721782630471222830636291336435594381976145196948273527038363449899474599485036032809612665559946503110659763191905789388260687575694214477841675171385993377475673281301756744399936196284370160222592280242278358232952238676719703530964702507225560284667290922392108075734016008264440377955187756062916261618808659447738877986722704899046226098958151267860191399220255421971826020531736851864064694085230153437749708430969158767818655157243621541576143878206689990203545806408193197892669746702178763216059532506965097394528287897440060783248007537639387606599220831826585180168246185072860981332934172310957572563545785100256332370400020317980781680889999397215887367996468196037774798768782812248514161181660748368510333367440820685552622875324722440333345049185478590907043960785973363026544739418744474271872649218123259602504377838367351989179785401462468969891227275007915223281523358222856180910162090775749875381797712854806948796537751564949094361901071996598895019172047640106412107384047055919050616530973056068007626979010983534256898924018732670558526074949854420391135819082561245747664141785922582682410485336179307353531833454509288577897054254365547266037569622696456039107543979296153806594188209893210643712789364132263555952370980708264306119968933312903346665255748039923839522296707392846676460491620285753295299480048225493594407801791806660893825646063175277599079309801311582209950137085315650537842246541716731445864408549881623680272502620548940596995664526433655181055134916017575240044745855228372934400899425901160793368917961521495210529346225282745479305085710671013623771822860328349057490986156851561064747648189780524104701226954437018755528113503545491591770216926652430334125519628561177139859791908006741139681808916339053800192615339783848163626589567777664953577455267014077798310478677421492620929325723110678847905089135416659938070584813572159401848137329199692897618109223738794900995041602641334010178428312266129140170628295435031112815835768102193464808852345804475382909730706077284886977136444219434906974743641308965922265447194901695401705611056527002216973444492552514956232717959718674439791065176822103460727989648608789425236736440813234400887182908854575278410264801895214527319773839487094662386732154873489152381552578250049997115233614156301866839725488784852676123801510220197372255492976357363629080112146746719803208272914706784350229356303410454293620629785555498284870505015653599453201785499783502171178226126432865739070534749494961482094070004101772559316763592134620209713745502482341847489399052916875656586777101108545838093338442877267480475421536959343586667999646869902031675900584961396607367869367115634841033374016085434346159781800373295607212822961474158821941589228929530740017505070246207601798615386989966887843831817315586558157781224845294581747143389994788210990851634495424742131044522674695831706803174840654713658348562695621002600127988944050661071680520978036376430053672314056126262770455510758090056053858032906710583216310016042880999563450601838868715744409274846634513367384271390647378283767299935065229470847118163225913504079777915836160054908252090176142850570118223404861053524426133578745842944124939018387020537779015995677152631192815453635389967099237761757368104389768881739995825732614329645895590274706562769217737134995133594331304447969815783310069510192015896029444627043476568440618757788427854748711417031174390556149395462154939525870322859611076186888359652581534744820982922729498853590266208445357463224324339116960583274650139564657657969181114030859580811226686819248987945743437325837783122334889159535891916361409487610635236321389228850577721792640832550485476001202728735010575746801457897610485032682761997250401712345172759687896769086039232855432781990497929860055279212990638711434346358070440225686589054031315343062777275492211401779020216245964658241814542915965578771207537934785739168396911869642857347726202564841651266525449739220993979374344888508918262263653028536252373960955888649073910679185355286603139288670795509318495567125480462222105023937284770060436228624746315553646810558028795772330079777391419819421904236605678889985318495678039255826234198752543388664639765759733672563549019900392757369799559388911750660412961863677247278466282774881315246973851053785856561058861001878310369532875231610489547184352338491013722460778934762679904175409726142418139287717406368287254864322115652858755423752788640115389968799834032688451685739206118404493687830459505528677237508976877624831332893772773999711094810272848049530832835812066641011172279875781066014400203794876312574221800705367897784236162348161262731282803950905056219375943280074536389068161032408736271266598784792227591916522234637543124641459854119494491853295977552201407562742415533511953112133078897282910246332695450859377327509627409404705784548802395566100058838876759963849575740727633039420902333971758019002298241964502090689209408246604473478692513804772607104761956428543956980079592202765327582907701820281600757173638868774964654875802546118474224055501939883554738459995579967066950814722994197450434111466456322367460180406625147214805630529089684802173377709174860409017360972799824456587191467762537923687755845227956055396461857738765339923808666621852381288537348822655690395019088128369699252097244191062398304214316752955734204911726929026964200579804062584313613798050206282169379995619239018960249502763432726453702333907592522906650668775900766530993508689553646136768487155162394363272534776657220240682728242268702823099630843079273416085199152517266873673264376722391951408753011884520576632262403699178301686180196349513259143464000792391169936549194386193500927630117636490709592286068126090329015540268793857357076627351463146193773983616107346325543078088036655651718882147359246498864022350354752333382113142887401264590372720702188431263943385811544762551134232935876223791787018756916685829128915582324782639119298597833237203117764426238643732400412545022895767080019030262441678924765842395709185136650144685344526395439275572740300669086180693830321469851900522574939172327168153530469411238347736338996525188619627625342002917737921794474769228892763263359973190165307890269686803672510729301777269319545865049511384852849542229434858839555071930131973524569571848507890172194284103052610650378335995931446660319915290510060895973781572978928704693617999744941772710477803673657822087078834889256696314786010220381802436730983458306717463243435358463993790198297264371164341152540706968408876054389491298581830528934783596365700142108027053056602172435204380696610927776085788565110039799110377058567942636917886705272110342186752255919957419603951990572180137131469056989181384036521721548805914587945380996779380137756526391899256063554292129566560892030278905032963133553859135098888611214175518366818360700844835624013917615868960766098517800580155555303437616818821144704558571244986693288447937940172420865166015624869741503260880928576769374846688253599045174601572913626281969007425847266731892794706783900826018682541029090956145403508537598826603179385579437179635648699441655321152537996035232696499419302981049146151719863370937320773479913297639575725005156889140676618944613790521045722659573773872599131031245150526539692788280165271268379043211634654210893601150178559503448952122894086631743948082574507197916544497022264125909867318939638241370570311103910669416858334131418775125576201877391813598538368755351603931624291861174720358207651774121313312116363823284875149638096007269199889003969122476835208885601303119603681896095143672575781602438520599003296565386780914628280641865737353480363451480020406524981508722639766369706326246536887254495237961691669371637185089273395090516309466596079532954845762042050608837770673705210075787545455163711608134526173095675426604809021732285398743021546358077582569957644185186862054465242922288798572403114105528002239590994436738807268711386974231316984575042613270733265287664678554695186929546177067274345147059048873998202881282516588882405681318970633277460727395710776671867854333408137092682884077610811946687755737348303003797704726887818398858138216063401338159177114450248320713192145103893359566062838938342896942409372196545008113452660961554448083107533646479768370112985999441173660108524430186405061068313394631315225998451244379422458182869966109764540161713719162137980054088655220444662758864472413243512123192026658992135316287867150386395638474786379835370150477810244308717147879809089520312698339019545112052159395059297747158870805539948768822271515739398781535280158207449638944504746303189768021828763017406352669193120558078956145235710012658701857767114723824461104610915780438243429313168319221162426147593189773324470901510922672826960070013931912988525397594661922798208863021177159502766241045846408413362308396492099609896522066095926972328848395513023764868470844316854789258464775915032506377264780661865431609455677584799696879634749631371807035188632823667018186668532670166251569652246438341463269481423280072343192911193441265444270238289551183897583553148223805754049800769885862221921557741932978908674562647773527696655337634048097446633513195877397486781822492950187043506866709319218180458260633619047924976476714989138617564097548927985482443647099597717911476335305424741521510333703988140252371746913393971124446464492335255431562030564536006252887790133865038331392702221386254400335866349594743998747045239297664122628721826429356728545608494142163376809563410614496922377554923951455576690593718852599426893258490902211010396118852850054339995447361612263295266566296389725257163558495911078337159888177498777960504197983955076616096291918945081549054265774743499623641276778948941191668009368402912518770691642162733762228173660132439782733343007684651289067990349540176026920904442751670907036930712779623097777380683819696326556881424707098102879370806735212010370171814647894682654131705061874000521673662037553401037324692694398725806378571855379705218485043578932791935540782448725077404911519211186900528050878236474747991373137208843218833625867349502976091064840621485639126793898176882084999022986013890785791236762654659353551961548443754897915153008731245297927504137439446253820217334320753154131978086830734559099585567644337922210471763581382273188361514507209884481907347245012084088117227663047948306868981901181140568041607368611462322267592452701466157266782458488897416551989488063831680717931916931284334136044491617183594608772150579824652141625747196120516867114440824123924038412910056334752796236920160443928302773457581398846831362948555420121398762369505636875607261917321808988408994615195633636835099284553066789795810009714263748137587315891774030493537936342167309879559325270340296833470170769351550202220163510162196631389545353880054854663110885861234490474762595345337958274308923170122487615425569848165391593855208610380884391048092386469018092024798766161152793175339717719199392586871367971163731050409133268459560864478533940993549575776150940124976517631603616581170661198419661693925716328823176470954426913331605310884382184988968369319120783532123690994668290473662795775652197358448882717113418171714236352400150382168024460573121206178890926578948528865673432484280959753714388086306752857855307086361832966642968187366500782327620153688625888649428849490078528136073851327338952697911043474198655500931800361381651404065130894275263335369835955400023303187147832987978582576761528173407079834659790638638371743260314341119119602036245064846746791657995706026896586565866338432660521603654378461755500831499279909787634548318212205143720181680517760912909996861567809371892333605772969002204674479937801649245410198941937967656490710209098645942641301970782122728093253922761552509484679937989836508834273968337161633489745461724945149239345939393022543659799050748916822007659426328394662892744359564425732313076370890616767820118244319545926902595869674453118410041714842592904400737277375052395996294496668625385214237753264062135768249793507561706913189689812499716740557121735556320189606588740243496163956889302731979837940457171063326100432270861363642003021651091184603644770788568555151092926768273416554916778805067271524259496431658515277741680809274952218536190138520793816855908457702513288544767908542034111924611849224173353936294192422145427383401841525529826218947722531165255101594027044387245965898852063471140958712800891384177617769368175227422337091006839471486986824759522050061907326092165564838443187521542355421062312265228563666726398171998043535630912566681689923290785456269306598179976284220918359879153046674963477340022802695492013717176095975854069341094155825557265677099937573644805736904683845392263986561663438378977260491001917707592094700964079622689099405785458248206369689042891516683672313079889624350809146854798623528470715147130687345789491602342838945093752180122317664745337109470598590609986091030421771017714296523014952964929943169610326162753663829086929879394784105476190595898266867364598056594626075043567845515773972848861049457904883078840013914001090961449944929883890335647432898893678632572868818077983109194282153189835073405113167839934997082705088357314219387285180092824827023733648730445098445331127066004876689876129445743687163291584989950925568149594035533744322063003623314899935741743283380088633960064046886085671839179344208372726011877732852525266323496680041581916468353739179129686754865438652567044860667458736245931080864573633022028782732238192210789889313976406734261047845463173980307839523101505432420414996977837956638684586828327267625039907963012404787921305904669899012829036174455015476540555022935420585970787173482255766944029386653131555727486414368386162099903655535805983905972969312187087392723571393807490867010413883058450917108140587189186404175862281980773005753768596617923781605468010258791629566467301685795986678822738068248209572900874398017073697536403586561381077557928708232306175287115065436548796352207767937076456319908900154187225708144300221154432726486695685035703237328022597991847627954362222291414265024522850694289540557117447331713882382285248994582309613504101288043756272553285405073255179249369032401233537571608555913427555820855099974008259014990568927715965271848907711174700196836767899647081166457100504032162954039476028852362257595661173331718630180332173109254963049237566042332599426432814120012477372903583996040955493949079078228076883208270259792298110417692876658503328954383430984239535381213408925634411914509291139011273912437630875774161123924012191859580917997727859596039230498129133643474288011851548766128889908149427995294330016355144855609106968270919940923241311786473649147075258993788315772345208286195713090586629976327412403592966158000621583798081495756798191048831723440325191792229714728207864817011071070586680327608556189484784009381409757301301931910056189937891848972695282796458414507810685393387801141139173377597729116787644933348087547072806838161893812721946628024933872849131558742168191486340022417522932482634604471661789267202482371111496492515591124325886232184800154596649272473182546783928519994403769431870243210355017252456556153567278296674549954311993865149458044057069875876584491652645118969868418540377864811195480095185979350657020268042811616908819649733071902147757498696182738602581903691283500784154259186724436139779710133110208918412376677740584896287851271277670226993774637951917033686758907921242035334713631895478516938956655103139901561115902798779440872644991216355506513775581087564115395279042054605148545184527266201281985266763928440318746754173328620738222726014586754810598207244573538164322632572533395328097485790095739258435415479981782437311715386021551882411951629025247734454801679017024214003424325603092306274475467473473325676389617718799051122859448820654311745879286625877993174406713368388718899313068827346922311479037745765085078191570600141307620437156535506566663736959968381633515713827102986351788361738241672268083581677212483167132881144862015157242366854095465199599479944479823819805009734861480441092711538073520633955359305917652028713804224606687744124664702867784650006035892288574659164905630443731992408076208823267801897634748240959438849418001073041327812433850755843501473883014580260785557191354955904669331639631238835540062982099549892746228129545588161753685606764080320707474729319423617748129640399108348125308978849136684783618784041995175339856788437420482173480863580308268391080134027850947823341683552710626792304931219895137522835403634430552300502309750332932931621139615967027187651811063941745719430748622352960236016973911623600751086333818258603586205344932735942910997536231153478619212398863381369515133922684043200679738818354521813458117086930178886991213102117288288548786550521392705728461785454947832475348162289781731466392191832819721085570979786264042814590676264031294210414298974260478187410633128083997153036288370095136478634109867331115292177582133170423133968405416513431194708842060519493993396670558366392796875234676057165794792760412556861895634912781412110530725752622866449720204023813498377775021500676977219813434465109803322393335693955622947482948709208947848822481241995464600544859170910132176679448369985307474603047441396885211034188522971465309351821051830998920659692582852531999473218182466573377943903030290594958506085722976633387040070579334497749768602979087913136601103301258599877147790369886017972013928085783445312101838016199647139872391518739764404680971039410039945448620216702193308223545791904354168378103663993340336879004556339771184940147300897738049780372976120491356346711051984419140907089085568353510391686495133013587719645258610305877108496786524161147498923932791855535443924432765302646887882589652400411676574585622324732901028247204930351829711828233373881931460844720472497587715824749542706426268575566137066750625073786826556654310114199280181472116725556061596638345345955595596168267496243706359599625060986919175950586225230749206814090691005309974484782038813703958111743054949014685733518354989446224342542487482880637490239312234451384735997004212071552008482884926131039113650054389926658908321473491583948045367790554419344071348097265088592344500320489887377267046740568337332818175818476999291901393844760084002300504783785848452023778046617509220873476813343887733666182101864321500957152443331587844937554722878979860647632560353762331831242465514697641763802278153172138634614874270006884133859174640118907836303663505317318205025251216924561161300320210707601582688990080087709289947462573742489833414205643597163987101382431569015021201513525955344943665161977293274714133686246882704687954193967816760639057273984678376644391965618902684762136839839935062284874341415725177814215812530092608483750927682044292950069044057485848385767363227625350701876534762749897758025708862708790584134325750595736426632323803154534983930484365383082022754874537426666429874615333663553784914741313313344824622870921667684716525844051542535202332120635137561485510702426824501903669804539645900182583426441048556517253631135325910338285105857331164911244878151115990152995226390587055438287537826608098548770920142727492528393547157894247000845471306822948049011175401753044833090194362721209884773824949566643115960147556543979758045277317515205385382629289587821620969833598527216818755838130114156336125657243700562844836402835669043250872766528000241153473007131250331717619161338101317370532488255734745276129651130383741606898880936249238461224894866052982717465768734471893423265311917884029334674333069616076337698473395953329767733931700657054235227905844749171974329152724781484453988066984217629337189589312892403642927070163997942371638899890183572142798190956228104889025427027204375698310171085913351624816222769447510709390014727855947215372652712979252775442458341512749182568767544994381767490524256434417254539580608572842277178861612964820902589003517248885183604842618378195841401282183003191901551469525919199248661215676159902890731721751085905395241617276416956319651883538530664435487481563282121326930212351302549009197782433112789037688937207297595104126817155471582401482284365468305135787989713079777645308557978001026190618888493689077070768011522430337781165072900889035114049418334442755246430592954289113797853601821612414857817602939524125012994367129947873197828509440109714305224666764095736585128974723481224741129829585355504003803608055353691042503077343426963872093608282939300745661438272523345011454924879512992002378719342223374649435562253937546047850189809794102781352422180525386202212395803834288622273133815233473082762916805376189825867233781145344627227367539268230645056607245440456132463694423925222674967873454623469693239353667404104681985108925953457288476886338389802281705316381592301995148908047418114653767239845881588948203899061731236407390143904586889694090003149066866829123921868457482918377542101307718396838359044375302112358727116715893864991175565078181934759078042503531567304200366734272006736530740432515490522597985723991940550307988280716342852799337594023627576980017194926903967905920526010372104504289377155169664773743986228983712388599391556711803158676035881422783068119840865411890382871272337191401780020697906294567316625453871097858661989288406649237135973365722929372376617368193768428709148086813493326528443332247676482843367410511840463440301342620112917537076294745643770916237145035738389488301727817693364601695537983628601496045282448363351264769471336571231238121170304602157258135750405352006219177475436562679106420994775124664140757511268666618555768088879061251503062953594401851536025282461147275202436239196436075399754107897144770836013204177318581787698891866605550402245377750804064463024640522149915722680267131029991220277959632223930972542012475734494976031965156918286263699073756093107679736704058445202283924074747829658770202928512092327692939212770824209131063464739127301510232146753129849531410038399698992891714341286843118370671437242187374019191629772689361068224638964066346239993880861737704171981366894192357552856982725192298475248555998995237835955930961591678191199677435101099165553475047564576212018756137803360222689565533557048236788408359309121613918477400336460873135059385196881449137309096965174446988828667446059337024116722929237858165111861849861767402301993685154769448279967876763150617737874855290244463274175773955971090598742335018116965745780081463305104772431859679229160734076790485519512664629370860223217052700838192928988287171874553078694648214401345008518443451954570765959028655148165713434981158515457638934546052821916859930975073125018459254884015454340691026317453916341299571598763660816233323929388956838784147660244336533629631153705689377758881880496961482886043523588224463474043870150763378686323450766580212520873817488332475218008331316274843564118545995430435876197288760074773458057085551886974338000178199100205913819326624667058146730164973825617617875995943245002742521436170498092846110366769133588637850015989034770854918080473400863637760438158073260059171238888008192357431462180738278625605343261674934513817865187888957955555124501415850487897178296998464716680760861342502711772138356297489956655291978535660795212851752002726799300117313060549163644194186620898736209523948368070632882560605948431219193745091608609716341034274938440917429860753665139920219551624521610326974644224295824481976469059152561667734250095334628956810214512259527444216107317786514835686131942978579487832945787431151387980387362106857331547360428141297593656406842925824687397867260661984265575548143984543699343134385932727216546117551027549556373620895308776352477060200088137176488526909316318888655338697487625258094701903195773717754711159728547189570197756821904108367343524699674379762881907806916792664802249980674520458392551076647517861751344502840453857698519459007279202577370774768911415974916021524663839012031234529246809768648065977121795652680778587558238054249140078838109625057860114809173435345331809657896021080697774501564362333988167590268937347245456543730986904471680801379014824794691313670064005322839157035375328990261465609081212652009600477166889084940511412856514300256453495355630295276838317123016010747057053601264848067476665639094356240404016308841363540876352950331433241402018144369955841880496689700344375603977586064159696429696775567644418505477867805633847530501217836292242532145057391101921356180299836612731014436099668986060435164420645170376998317224261618651832833005319400752298544088069886523542975171422963693218657786734959660670461295604779265163877800064190477294305479123468584180900767328205179060027261096218583578108015653022421176084107932065235174383129722087660109013818424719976045924333770021061000758526023106794103124852567184901821463588744245720438658142107025890002993651785977639616768769160987575484674471488972393902796481717975935082976523595974136212861575002185079632192506930182931002048101949322701933036965432162088248370695269306232635263363823505087682612862108847093136876270400986274533303544508576104064646093826573082793803687112028235369243818724941092808819496992069939797041855116646830966158924155691720395274800923674282189606297621591387853503226817858805224160389879858386230268023121115098809751733277248604721300845289778452249509615873944275170786293412677384925458636887761959267539274133152147443297446563928732763350312688407565770062899596297713867285381038145180561326578265253876165649273279790310655698657058613457886802342764183804940460215566559945870472390359638061891405706071685938385942890233964782341973617921178899233911842257012303672731095634181643104341721873830765364090255327052368572961971489735950176461451246083475067383840340796534343243525266665622125192374307321776681898908354030935097378706906623324001898495748992782632844159430005942124275499891484672080471103039480809734031349925767977265573093552811418798355057940594498272372321937447746342855657461133782724066963693824451125981304683830574356344169261189997920346705860984281442539719659031615602959971717465441505250339962268309499522412202280139608126991324374090462765696664979569926185735413707982510158461250113360121711095125822752520090133971163513539434447343200599821985819377815469363542181407560098849630406076022871420668278358477337807395597806997382837851900073450952793306080348260223767452386330269735431440631721468701902236487069794891985650651691493841904699351977121578752210021397879120089269458885154053654464190443717339185132972371729626366250855400939670490073256049063386941345177846949863173017215394308561168971445441944902689075870725015664725269746052388206567172870663061331800488197005076945204400922798311502553448081182686169241893913154550255803639822244153062201236158003672111416359259881497616151508491318254008615615053143241213710484355728643407075758821229533647829153149563156620475266337985500906622752598036714097590686253155799078515374490911184812871617678791782327936638859779384850705303941446092687285968640266859040815809519496681467247900772210800003116674990019145750202078691632446396257825169924786189771467017439834316826044262083636565782185763808941107497520472456219145911952607059911474096125561071009991315073293547810440882587187951894893698641079879577375726548914217877718513298645025649439146363728113059762544781166352100335681613767221918308537452417771141154700452036366095397789712929259899108171096625521798539650724032092560262336067079873743877119506308052607184417659239101421674396265116149778640874379081863288866087458619360236778907363771005140727199840593907510531892305312464149398818471187838212163136215075352625095954166618230013835389256846530788937195533311968574159966678930478491543297126542919303517679918256398218076542182671192730743531586881370669141428268517304771885044775756265040800460230447744977317480137770897803712389851360463660906293908527399739491479346044647475679161651160130197584858291893395938143163231504893609384641134822180289020572311231137027625682671911598963553708278369175599383506242017140645904696289775778366446887304567590508894266990418275685027007564708675335084748972151403078042905378885232885475561298302427734112661810200579568495250364231454665543221173154065906834506779993767345365673594544240132292798959343470655467717242046646738156393856118217266671127717777571273590635227426158252947104564660501717621753327850460757973106667175944888146995600837265433493819829152606102512173217486548410238851421820278690370949198786441920261877729259014242307781845184945272924263017484091790142158951465010885836936982869425943165632540285276649509721747502759902379938052626624883177692710451618320029071615435397742654302008837596215167854054611664778144326738094641797811088148572788539781175048134339999660972759386742936373296554648742461416849228259022102678461737817399996006327322593706922963925145415234632991931460121437082749905793646973060633917750468101707584722825456560735124590370006013513070155466291094235946628418342455616709506600893164316955622812431462368314257001580850275129530910988545121737675616559876657124965595610034811633168710077049454829064615781267187083668047798300958982429430443324832717454307359013258094078633764822595699790464747316218617670310365758475840315763931587119235380539684655357104987089559327261532737072494559075982846872129755729407734458596723818123863357339074923501226542641893386826267272460571021887391577407936801150780055019211248567967730885493168535519280259850369721034855915227863556761993339146011480826098048797849784564232537391837209661011167958164028044977189876053538700432175793796123986850054279131226346177033857939535025245994968997915393270464239608191187161195276571583432969529761059606066118550704363014723744731073296507134843273794471548141430327079740835039533746656004779257769226799064025681905166400578545828621048874467440127582361181636699272359159556942141405477511532997230518297291279603677969857867495655609234288593869674000553392567733062177682366088540685358532953296953946933617002496429852811785592979563363606407877490968819593452004850547440740068139631796658120678526407625503931892871327612603364659729181490637242546298707944230549583709707546894096040119767243485862261715993229156778265031799519135156670941069565055384117044325322876999748746836661360213221509943468041949232906062958888772689559451341419141700176676148636178132134792106238797210252731466439512015273045710700280303254676675742910076975659816780663957378182786123588966084947550863751419624503933864335656763544586880111197268396348467483921306469657107136972125503785871178464788696842688061531830639761921001603809304545380797599521114359569483412127448876544522577529016022516826135441652757405967899821099691301933275920321659970547227486893255868727539781595439696119644169687745680794525154417140110093620618400133697733120155952296689755502171910689007046761523197793164125461705379709715116976787429970049999032033497584246073986648600317738868491976164404223722040732269355979908401568562791868149499414122743990421528936392107149714211366673727239016223974771575150514910770440030210295756566288558514053670282870432276001845184700697437708026463099215966495038091263829014265070254260169236005650339738078743424979843054967552288100596710420694455619206201585642947183876419853043095044866531379426050899905792234325020137256757062582187647215788209290676526047841956690910338499885093446256965816550908762343728762913294723115887732248951789214676115645873081943712506491106444649924478927796606881383366482438971666940954539825257767992421759078328253003550656964654875723383396080588784252173123256594869122234609812674592877029062596450869082006109252418422224176113988037215894857833701071921224376049088183208070981681973423830084269879784548657500066488624473302216914034835113314255991068571949932812923977686628561673327456752508279700123587317298877415170336667930693099545548799482037748344328677746827202433944308209111582376675370017766875273748022638654171908875080527321454029616721324802414819061892777099203372032605620725664187883188630079377949570268045071357588849921855531022860330856593433755212869087391614963811667107459068089776573311969776538794369552619010306131384676030453460679495194883117268549188792631417590337586674500856323755980767348231562734540078272997402235741349003312916181875162178015232467898936411971532093099605269167305769211898396373450098239473121439839267036431065770234596588992874429295781876123153458438985219826027899630524517858665423214656578255671435335593823704725883299658578506935418848584241438065212569704716211755376074450886938763150209465933639079342212842430024140352285913342837117566320883148321799206010997783821992282842181587923438260357495004504197556697121507075889830988806784880478296984497023326371489729901813256907221899999392884273020264089442779717520491433193387296318661313489383703911145337454656219321221340406709238250554237220174860256986192332623008215992550030537808301379874311478515612285707023746580128833655740343232546841486221189280864760302455105782243764840605075987120697958028012070556902771008094416033961833535479741495663333896646619356037122807052961776006123721605242397894253495871931571070654585895942540246975646027387744182819710447916901962496045263160102825302766680736547116414185668447340283304320479432876968559481307906665683166443956896195966181102306622349439352315539361464466963719242241565088692358800674318951238236036274082142917010885923873947909670924642944794488872596660042705501781646344773947329591937030188341125747908041185864573621976849807287144871563951566143196460782946344850486879877613566006551009388790801629006667492859447539304934940864796029945427560749698541536337480677991571115176031005667003741854667384448850248468828368954310200087030685907588087187895157679166945117555396804327471933975345207676530081782647433441768221237891221944405180467501238612969606814044711353311241734341065528618483492724021839642656973141079119772284722815972068706102659296510493485538716541119758353593137473700912503355620336687904543318069879023701859334330503249069096015922548122076115603177148112228652621022034983182175624636756284525416537481496042700039020534549849668358743658316889410011676914881455251636017768604863748799952111369661797346676011819321890999494884762843404581053048443456771912552036505470027058962910439330980852735000464965278532883493386445408242805200525220267272329139797983018257969116015440243050708340845634392144318353868724317275427362548150353952020493995841154769687156957167922812875682153380988223010285429979616268560561141976794380401468715922572324417808023966819589851649513121854216324331674059687875410321522274471685425649529535732536180756138290879346990667057988977507265010212308881464603085274484405707784524472300673246120161430702573619172998173809462488399805494633233431669838619800086369597791240305699930926239465942150151564428084359945979798972910958909957513810414693611438149785469790018986491252466117029097403127485499033894120780021441240826179087145406699961904898378943247989452925749838471290843475568511468150785294057330577058275496870896026618927975143309166911132010187406237600617068378509333391284050539216297971691704833010804903896894621005169782150517706956078042615718155094635999199568298175198206108043230231607880335008653531844979466237577313179157521384663471113621918443388601209434432398361281158250578143417945482663247798673160329028222232099857070226878298843512979834963262455458581040978030547656816879909810752425540266125616432883872709167686261156330013602448954400387874867954110687279715634602991192782564658482105116629971346436047941300429878609896054771183536223100651263196421493552858576748772892682533624633823866458427744137994956364247245983933673037849128822568229753014552568364532742353364535977334871261288087797255052791922491482949329219523477205823527493800287524464710268550912703308490561663935624047730719020568796147659695130561579993481392438750709142618879593644307847161617484718655816552842158181233470851613344395250096064010491884929670228815514442886282548933351995871902605683363133052875830434884345723194843601746326638525586914071330396950463054569338576933755220599392054845904344718791268837624552987334944412228032011202399171206084199570313153629078043792841155322280341425286283015100088094947201757299265377150794196062998750492407145615470780726126580836729290119545423741098634893205757697979757620664662284991663665821974860555248115653571005030073219387272140153817594368150146347751480401600690146641684173108272335662606281343816256329917268451597538078159334042566229898911091465253844435934042373909041056243776815296430477266277163131561806667083093830759110249257338632462108027201325239733268566904533800596694533722826550552565331240407144387640323910644218095616056052219285263717413021059254971958237005165890607486223240803129428542670061912086738441960154361683773603340522052123071927918293488904368350848346490301865461748595137174630881848254222489909361060221426123905539321454956928681852375851649625096662155890946534132835693022511779447849320684969146261752192416890981189151694427550491706742709844298384104720565582349996212535627407941958704645365462109890316584652050402180274658254264735536636409071079998522723908873305961180919293367497851842780206900087647523593676975868999207104338986770746659326260136193252684810461645515621868951284512197767352677874639043751001546203808251697552781566346908601580644821965120342952345814753046035439154349363121384627146183689907177856791424214925173636554149248505161898585035304544748784287932092189159595651938581120685700426089109156303598820988561481283266722264643703049889821854172447579903925391111739655697530885124401041444085806510884410854972704750298932489974055641532224456528706003317719628223395809763510828684540449582332063265978233810343802438395776446662576193418120476632256130882573145635286836989488989450557113287458718844250949740729727003031265386732683474597075546380115988206392644013208611130013169372493595750071355710135300537648273465491763902738565685216293914102311470227933295851715630091143213130154276754912046139350217130557880876470674092157863709384222799046436317481525870746090332457664188861067059809142195178389773216135528259542329082314417577500457018761559220843867416138847634169711502276503593804513762935776873214962001117197610903793290323311490837063867517374715332743247787718078317642870744639907767536892659720390227563585403030139167530463012364478287006478843324791841412723129729888696950574818118478947845259844827369219773218889230992290982879741560611596548459895223600382573271476255676138733469911741565449890889813823522310220845181969637766520874737696427778039319057483141029778756324436871866368530103806197201894144397527846265668055490127249675523866593094551267630186843135219466261503418555941990263245793079486569898202185575064977984122300541376712098401747017974341968469876216651161622207480596334580725810968743745103522472636394909047275906595914232870528051148739648077420825066688597199238937355611744650908979251859059831917267225257576103563689493930383288709718800999236760555236117311022435658899765747287611241287514790881538087918583807163141124883429170158143960282004769537080348268448031676182322202440578319418858684181523695104735754588281716628058830443632284576653754340264078853926519223453912298696149446930895309687255697802468181387807400978087613834570232325993234358424211138800812557812713624125703320286126805605769551585945458551800490496305625793878266013327963770278401106687361801187468071246939168682481148196311571553093373446342066590811277412598308362401215021245183995340008178896490080878638360972904235373234594065879137216971961901716526134939908150431827983029717316863041300194051886660727611306441355643007394229843554925780287535035398706731168650450262946997571343775203015471845904805253478127909567515299213435890314035912971602047407872626482400435632048675358820544790338825436314589853188024041855649337553410190332083204311943329015754774208856178248040317715910581112837725972262226880868906015977626110652406682470263128329394550278031144022394645902748355553485876433353733514351206664676508915130006369144271771732563161900574573605408624264884750275544631561862371631578630469687596255198417148547269187668016915553735030834689361990918958459949097988232052984863028487882408328726620903258556652075931977803930949110564814670192875314184327982311851364323363278687832453398252010417769443525695686673447865492898168883902311864787724138411130371289811720143489258455925254179087362680557941279223904133621249193480475380353084821660840102047766127559351800622634430707387110619010369994608151575874233585668215579609952114235510820082351249436187224646199957895040744716758846450051883467300239779102997202161544814942195640478499822421123236445697618580927833112195946749607878845435357013016039197676441701663963394610572629964283577456466334261603645744557231854269452381705747286329256185021728871071229786129849797294643397148368979951382399965566266958487781409267870603897457304663707833246019548567359828495963844590749333430730774265904909377120788523162237589916721289358819950588713728797920334513908907427598059002211806271670433111215283170390325449529920198983165716366909602643263947322011864105945486829918912237631563824146896882737675084334070294860502336876028017902649735733371049249991285653715688265256886876361982779726526581696409368427877244372531395885410193548048265463258883609249312924411307714590985052604954519032017204175143082900062482172769293803959579806646260842482289650774588827517003100348082143835444511771957335054850467003675330743629437198603838375533453226208532496090656691041700043899437462197868735469177057972500892630465765401544818437772492953835617313213225570378452552348996535286969243593933787978006895437276983700869433043467556934048715644158349835568865859127316707838161906633785741690528932908796808400403977258653346845613596394462185401119768688919048167992166242582145021065714115194348030360702131518167275291539864788399082185426167494972755014637311788349299963189282225154587499340740867751347477973745265798002464872170795992106578140542240035646083424854231804013413865930220770159018845850674088184449258895270082592417491012523121445693938620712911619859917084060961346893929829897443286504469374681233964242230869960159732961625843424189309751018470726729179774036585997465905564105965974621893163395679648238476989527999058815824689240961278040600906181949945035989820091287808367642222274478667007253538746131799784276529486568657924696583171070831658574840521181629617304976499270383893246052038412599086973991266872169300290441488260786418211205512275519798185617218654401285291786867799974628465123953259939064853259797535068344496321734343800273981572189743460477502165850135313851647471820229358197273494003032298410098860818119178971830901404843828719822898048651166330358973047196293181626247913964519319329571434701934887493585260944109237215422282020313406701902325650458634169486831602821648090647572992222537789009084671814618493168927817619098926108830640818155444966590027870831632986918028285950114515559469838090610674753119967371614342722123336845707755707408133035098221676007332953652791816573241507586237042809208723980003372186578915551730559948097960443468297531462674291597968836087895426780963200439378391947620779949536437277893716302489201893980876415946818391683135827727327038122413378096705225824069285456530047828946301861692119796666981553799969994913734544601707746179183457939930915319036340471285251560239239470894402311920986547795712102160702524391268597199849884663715509916076770093274347545579762907173966519516459862638930644745785194831813449929380091808867029091749332588087566221757285153200540548284316725033658251506227188867362550540334762847340366205112765626538790003277767498473664101540356661266732955841696510603507665696592847016917729904532861026916541085745312397614499665826440646032180823207371345462865204154305616986308401307538458721463766162078518375975320502480542740117518834238743134115433825562637391266563230705244110865811467697751710302007222085234681370259356337989927698012295107699850629880482727363733886676480134890971539167240789744780583844575825567826627372051575900432499575531296168990603908404987937639877167177663684992032827755528927741748713702722841197011139997419000387407706215605693428767126515239874445523359492663194978031898852668564867525252049121001027901965041248486352423137719694170522118415698948929498357137753650603667986352219327040207442722180915260544027989085189234575624855560974855703691923321564188462082043562973396560800099933712280214917969407360317649246105695367107632679245751352361070886509483107197326270260779377579778489920676526075367091611071999408428699335175206912354954029847714557179370961800553308560888642445062034880890589089552363237117660403307653774739345488084512061391573853521995428797508864079891336725533864432892240457449866716326644891048795790929049012558144635222566339575922080197637355502643547540971870496290521667379968663965706256797157637870327707375220523039499217611931292661038551724972874957495325119495138757005633887802736049083616875755841644237997578931895678620294545518844078324513569101052081639096379821202225947301978726411356662587150742103602160245745067996300702821719036273324957071681825427905254827921695958953210337313199554953515419331245029167476538488093819983407044146077396384258961355772101651530362064416846801791214730290972626379287312032429185710388486234028964763474904406092615553315998609049899340049634764873080723903418590030772610217353322030994861528162966729947028146697703816925254581779921260988766320660673749493508376739990110976483936388200101388004343257756181158982000804804192354640362896614212330211701357870465736675609678966243603529183625471443245353002784312013453375083812428744705102412900225477225229075179376587069347718706492792937746073332072379433984049456035415402978294011683464983408992633871548876623436900569279148044889148595629796549723502857557287304978835520786943636695954805977162569274832390014925411933136493909530776244668231361332116935451097963682249644317053999981889766993847638706673005801545467723683816620443767294262299361934036889167624450764644034332639811503841908678785383224593980234963578052466578342933253465528965990340943332908114112224774575087874304202833496243451137693840571944798055025616079080690690492666212750390724696009326204159877890032058878056065833844989525098729533349634293986679535141662425738522959437600348391554304496061860418102197366377418218190515417790322392458730000049025183207224150685409415255051231852469633081985474809298475887129769582553377615454742408402977631100050733509751570434806149378633518020494105267456667643632120779344735919670461426423427628198052618557643703984412418437029468481038050574280890624844080097318730430314155637947293726085481781481837191511868923183100464274537236426999644424336613692761596967626191712595665331831356765513987363458739215292041935531526439715759146716827074058259241084579936333813497081397961679183119721928181208832547802932211140445696743771173877397268969808281345489902788990397879213015575005370175780618086256503017776768902721365394970538836083173661284473707242202239472001141580817052816616828850220725827553077332525703097231720139996230598482626920884965144903910351272858197115718416001932327089944122713870582832864152893962224886168584965791220645026439886397629650904431882344498300833894886925296059865252920440844832337878822267130968490602393042554524858554059045702895064079631651230386997052995304210998144488656296536612533986601699806566167346950226498995206903447721101582937581007420527639517322648961235345458565927683758432182262564154189390842306468592844412378193435068048022175398734673395145697868252028230415767263530271174015585380019931879598556942996742445476493582672081184174825937873053331123740241848187514449149918252806418130452889479866862409088783084030777669318557135183656929957336354354745726775356922900721550228033992161654123872575867929979697099808334990271390165656597799610178926124273463093242193907647765605475175326755609188377418366688367590430978781236436467848701033696285506157759243933012798859328932513741451331207567462089085204544740181137690321274888166540778274127718246821826206722283651709408299705708853706622542159447787037691023174047528177117059604109503255764603152760296762588237709799691872906174534205284853390217415162336857637070841754628384207910236068686644564335102546214267324170957365499558859582243582567474920794461095248095310316727833861993120843723590442993798353448470420243804044888471834242888205138560867695146793321429620354095231258103316347685023112916711475732844800012848143949447916638294620939657189297671398514130556663843050658091070127970230514160753192212373450358016551011622424440235129824991743773408193618721038498141930705833020412557584630017920450190839353677188044370855692240615825188291242448808385765252108795630912838363783604303120365576142813694036351210839782616014407315298548684252583129717121371774618620139475238036875695771968233189427689345707066567317312791548918241700021625223590057320969380322544617954374089882421870088430925951681707425097645490803425463177154712245213592999905935717456943181363323205681139932666944437894246070107351344230669492671768681696517250059264959576189424246371748693762424088320082892626997314579550841637494453200067951187775485504589330880472890588614388297613383177618989095156529512886441505911640342101557269634047041275283432461282385314630362994334002663662786019598183605340816971670572957629394246894254982491897141541399039880800633279007679831774400554103965554416339006620357701307060688076774971162379934726415994892562942410612756698724745195546114264143639444612035029502730274547232820270359163830887596746466713435213993922470170547666921799016848041258523817909536674793630668506616658289383563883464420322123705084381108765357821431042219230762359989434004713931427158523498576989888490618698460441100486449648361097755840313602834400374734209530011845060941242457620951395549552569447502724232976135557888703083534642135798878707273786591275914849732594338303425807677399103249652241123138550443877916422763934881114369705916231911924919241948160883675038170308004963861520807462805166821104250003159079788288771425435734234773489875192949835022800439829701193264075884515957511468763520901468537484561681753406608476911440177884363740274467911820509769480035460419448757601296013581030631056264962767650899134608265617278533887115654308008404361314401770208283951374757549500615612611778377894835064809109107728974037038408676047916436273051417783146604849008454167810161488335539783941301987614184120671949364312828768910273281758426595960310821441075099968676428581612926894246423100959257649771671216312749533918536815948165213011804940845426220845350603723328499484069348215999338882338184530775824671966180517721954380605076341958891362376508452816706310653958036900291398226165272391410841088633043466763581584059498508529075420927264330665443489480483320669444408126390213369213550371428220910076408548646731437695567241661330413294311252060519827513166504563612901929924678320723758415902883974960031918648988767241748850460908104284578113642705045896121023061040742878761383889144825778299622332182455696346363653798980171714488003850838611768868386183609422521260322844104177300900204676731297828312669287581246364520808006215384240609213195024546391493834327350025958792022050032984925528045569719271436946727963778239889421187248389760253090243423966064146564574720557574650103278875022592262487583307618223808479372516705883248058304292199689756829799879238923138181183942558626793622707712309240621875037609831692471751592096960107729640513016662142166734070028905026870092883518549092608533132141849471060861863811670435985831389170765791053205927284055588164002366659387380716663201085660728209807184032876218164540432408041145430562395975342955382627062980161550624310150263724921815815690821144142962430540685670484416972527940384938317316597134178978753808009816546641252298165044957044615537596994776795518159946973771770500307193796418120779092136037421053264121261491408234597024534461457509015735551097662710514061238794006052951690921717811992341664821608286725017274633302340500092017906192303582855230062139656048186575222783849832342411316340707555624388642563214816074291274355547759120739131143976488544369963497647665232896111532403447104120509349896731429040754608577117146207018625925773495674868994238539619935795221450924904531132278674057677681970146466852322035882689352051906448258220397493146578424994570720998992051511547600314642815264082553997391224574808254750958464500322224763405150118073391774197254462252152349741871585043957513758214470384057697996520432687516663188699045964277139513226462573130082470281130995777208801358597736303965254385337558838065198437749443276412380306457257867048326670436535290185537063535699046397989830356010389903482775572545463682164295551103923810141916359794092463182908313392628740232451376106304095055250480904283936252848289875961260772419367495668554359118045175959415730597751572792986488379731924858306645667137131218859152912794128389061212899840101461313383636780590655458664626626050272876372464864902081132074604047147331276796663946152295832248679185544409811727410195802691578384217655113908726187049899539103523118527843742367401743780224640072668056532312014089296708551518521668972204838549934502134735970334502273911321560151887678339204591146499350436328311703618399741656837186839442593257637936657884890665090603287298191507628348010960604246414828833476618959450751171310849843365286699060855825300026746021158832162291001749635593472571779601365034171132622443940599916392597344538491584138172947215912129889034119572470972560409107704941203923535662302463745528656618650107672214469671894310712433395888177593568308069608539397875507486130991859532763096868463958996449417897427325206252223828096588782753215965305166121648576410699515221750524118016202743037411321268371752594757255052719489774845230387063264628708549155370176470829377747470843939244124621870920139954795963694150152377824978087951464104599617395476184039348946846305853842402733494885255266904299738366092658191711333890109524873214194591304074624691893262340337504228392257759149621361847619943159264626549941768639615709639943483114864182387088721020554811426978031769424947945341442248525077444821612060547765169742037079631937574561482824601032198488278160502271710279528658319653756487750295326226000270887625031894998348036569754865709386608471052385254182338904785098544079393328309868580211236652193507016730967903014689721648627698976974931445457856632998427385963938323319274472472289673988826479297585640582724309539328631150595098354855813228718024983798183381954419721293272114340782461443619867391059178653957812449614937423309299243315234439788280218753921594579975123124920054255209404768593220603839173156804561797234343954816610795529864453817722572060139723307334582322268887823549517824652179222505116139775206196143275742748632569663973404151948121935382927663479396689479219225093471399974510640861120596958426461074534677292272469193832449971430759740490320135968306967736836681960248465419671521550064457007373984341638822420964312251557546536393768272947409358894169183907533288700256842384991979642322996440147172873131140022217813684140827234694504766901235251915023931583568686345984260602673057933458287919961688181286222853350337739729604313889442039078780269391721803126665601767774734193063741384895632503053308918570630250311420843427005218451560934953149458927404055454437449464447305836983828398205737043842195372213742548925532027106803842744771175451004678695312713132481333428381964424023600330649568689916739656338758003611985267775213184068527332322263919654294453221522030170061621895879703173337150598392174659488443492210878323810424741948088369032489893185581767000137879957990710271867892465362147406770612072909483763040568518199120530121143951603716877539624865749307711537519412559942926444588918069236171755936562709761405922818986796110296896858799080121334576832258636559049656572731906705853812770220325196654719849676387857511505993568092381175923339695291690856879367961182099012718734062546852789109619546834514710266406707131854229946554794411918488688126360499965402709254276638653814896151209860014323826158839846354752445467753639937159592323434591321856748885298331740401072410031794909917245471656767150576268053392770884422986068079322448412278012694415922781056797127891549238527226551610168728307965539020442098444466583680892156181941500795010331472729907655864368691599616384086817537367481219627273353639420461738799881779350767299666847924744021576881651932954179848695114235628233557035135034125432880518018178920307782355743054860099873404439340650845861267694155020375866076963831300174068350822991908787763964227647915503635750345158564329085074149402263569194609946460742754194687000461754246875910043472754156252428073752945615717566621750742222263978953148558970877458240147722647926597289617221755732528260805720886866089704369416717149247052489973889751390277730155958584133229963920350986237555647376056287805731297381747461979612523342411831677907164871672906678555495995694340121783094122646857799184104977281839643266473776399018767447646506111102461617334491549542903971116197480189458857630642934465249810679670993343720497089702055007465240394415009684755590795774615102020608063510279388831724785375783688743179892790310045519680009768724042181883153327277433411577833553599730907411031430527961454614650833836576588671796372286523385268006513546993624474109189314880446754513032741999970600461919017594046769784262401959953938815792247068956436977004456467487330452200291130316605008581555072025682161377559914051931448206902139317947256414703424014119308643827623195403334739441482605805455553992682675163030561194039989143331591157164180366764839329570993733560701921331883425214466225744184055051724266851954421653627755231665469251859827397159609706191313569508998146490108072663483765760353976277497367879443485892758034062960014897174996014298046940102857674656723106229531809907116927371598778018495879102789687378765186679755260200663574849403677051794413642747116752186572693455513699225603152532268607258785464271325233987951162922490832002610973920541565402193492490558703632105970164711749499751720759518564594074418386350583890966914451465086889923584489367496983584061301167094413384551618221128806059358929176142479452323775437032308981673586768749381030853778587665181432859174140989725415212297344003256979096381826817523173391554653644166771288622359553353990017545404343489801793329827107442840931121056033317300712141624896396027955919680749235893246130205573135686539516724021831904957910157650996287259327620363314535849653540551887679877865505006062054504012837855806131557561859838642414040882766907684349149960184221876357413386716311658868468393454736873910480402218769872911883761604972057287586717148604115768376564567566583045544775117475678555231541439220642243896578845282701514447590089362985474559434948170342780577522872423050749229336035993815103123870866863885028537891408162142242445549279073755646436837599408665388768012254114698202764473335660020898708140949222992864462003873804900031484391036067350133507035919917819982458530331079806319823713805397595774753744030870045645361490582883065514826957577317761901147739896207323004578559443949881612665506737133322738818349635423999190012423856318522317846274371711281953660224448758586966857859535764428440567322785121723131641684715716213797373901298278695505607786460212248783308089514683291190227777176110544949934852700237357140732180348001705148301788301074606181042862445474590540361922121067825774695463891153256271164940201986034178692393488860181939001309447963747639294352913759174714687600041964388211656765001871268659803001396827506277213867324987089282028128206717444253203937678336872044975933591894353494084823321747201215839282258818977324052663525536981695514521466235705608617016809645348266073835354795949630136579801885409905396218048990485420894445760139220310974704955390742391684569035218222941865333707703497151745261242055300191784706198746899678223409427145047596993227881048913993313974215236583200700931375729618505879417846953012239151558052062421066212926725283540468477574569409916096613873113670219883545003227847913104914428417546554204513761903746856120184384763918420132108286250046976712692412420219985607766894196412480464295254561692625955179628256517829492170487685743977597362803886514421656472860683246320599902437697593950114774796698714278983959662501628440139399463812526314333356366910310472961773138566355345856715040711541974867771323337728388247659578418482625423013526998861223501736195292795190832478763065543362226047510595900571169061321452536418458881805244700460880677892807007380718768439808948101175098392932698704953419202794056810843432633024860455854072349608005133322316414357259311555578605757991861056848091570076498291569893819425169008375891444338635971845474222249811855525640354025716500761924359995376573895359295856538003469187130354979258177806595613814389055460881820446963581511871548020595859288938443131376819284967762273154799212984140570655698497468134677768795516772868023833462507790230176537184382894855581272793433157419525948508905196658075585470978741978827405189105844799372417229932058040480871011536691660318020674444300565730094699614289895848128603231964790698483651006722335329157403819626568413582909810911673658360670538851492535652460156226994090267242963912851566766400148068903081295014714171268443193512136603711004280751564835298664362179548330387144097525769449777159652172879803274673763935029034788947051237290969564826393374794941861380058072407712489261187403023423794602099103139243217972176999793653001381443359472015865000624951515280744600157919756210005188443785489263153133003555367981915294641074345527623528187635089997157121641626610610629452008041668556828300269927398043380448910761330026423619734722863178181598309595808527151764667357753558305009650236928581307196055808689772310784681423957744869950974445604896655558869229040124208891456052651092065321674577516924925692228397126677046013031546970352095545440527643688162498701837544654188567682206314348675400142617773026904962620980849665860828275440817876993341427574967298620392148710488182275087636185670612757585975119006823842380303586402626148928787590107646457570847184841489131871339065758918780472155668038011090421242852798615868096498187385558366481947432098156565811211771628720175608030735684943416517396890941061517535933049883505241874805971664540017034828420181757301728147097065691589555875455936221304916330704065298576509640829014269425998550486330841859200522938741535530418416060440437866619360872107472234543920185729627239988742695597904135506127748444764356916149007307391925351559321553451404644052185838904880853753309269115016709295471292262577681624496357128282106067099134434159730073918694327045436654178321140877463357466503052768178592042562130321324650926009277804662078399418787553389842836709144553701716686758306389657640219204652783661507899885880451283982987724690099306265109862853664837224520854870565777293840289886343570387254041336187051474080437097923156520819334693985115524790066266737722399807593755665955962211141853461641619855289597829328847778268604379242164503389320171863010609583440996003739185211410575673702554601313954675851455462761899478253107687184781793480349073738735291111287684973098476237968696893127660879862517833633001073254342851504041351735950331338425754404370980815813488232040035021440065562020222432261693768274825789697685009663153312738864050422536981790046559598749664882217293826664015395979342552689387298373740436688052357806658967752501585523264995054277763207748760545717440972432203384287174077093176870746332833243467537289130714971068836409497732804891086228415787815660981288637400764064677889374275711506632192856873550930826440857393306273076258294933981035984706888102978816920184954127750250477356528441938535468069285565507027829919588518332275489693297122713536164257226828906170731315005225837123404145739036877411772483516286717383330776852054973906440177334763407263588071498515975371752657747359436933821279762410699467962047789854066387441285611300337230988281220231414553236680636869483972098266117022241535830663811800129221135303478905605051613612912561312526827548872005822085428061996458490996257106328852283414718809916094306359663575149769944438903993933587887444322185044381118695669935123187828362196651009356126306960368802289376636735716912328712931019590027168137433168878237780790159724373714120139891366393872002836264031509607843150481682145991897160456451634630422070018501494778689430474131605508897645730494319233262076738529770861355756786539885975994279281083730307177757113603789896676899668698422438098399450200221920677654682628606519364862263940831366748996809564174354835582783962924324937812837286788974404940503404141245135023937635506924460325735151454539458837125029421379661116356239209569989366198288112012706499590483908045875354225131727344807290039096201995213815450320260420264701750036291142065727581331307687890277158819177372978179972031504550437480288388883254020406308890614245606795477068121700364062839970709703917081965200657056897214419442722314760406502112026078425423261315689093514896642733613458610236182974712454343518781546882164065986284698206886516243417322835245550895422361222026458906149306975201324117143000050940340457286074277886576494315953730186341324845142712889852560551998458537870888923277635401306906891191995390828541837272265836909618126873162561009026567346297739898683837331194977250855430748864150439250482639600229205590973414427947630113745950994956500817381082053964751780439907705892074181886430589888720532766914812096174222472312077985165594762984931631162005009962857216179458074153749435945047133983779430639307903332966075365885097731762431760135502390229152647782769212002831811233799179765813470362876513032583646389776202551198333858989508433773947973807580532512858872433419759856734288167222790261390939196254998820689937757820815442201733923464741303181251057918062029131295638727129240493371240072561280773438271930293692448698269995856565714005423814988943437787164813749718817122765889256522686142069056394852682899901094120412745976518466700761655517591391307353114342671039264018367607612788993921745687108079693748190273903032395769279985383374247889510268293173984744746470019950399651182280965437819185650435181014041189548201098101209451411184518706697438642763425891044795430481818148014249021650508174836114463039719658817029181726196287710667746954888853229278368061973074247146028321195766748195378782174931964875794117470043083195952384244710110932684381607046052471386622802929406892281533007276846721762799303114236826083277736883264646305513438244498646689855144547131026795091760928494869028182304326130702498266992438828236964954950066527735253801956272156862900464036162158031705287169191910777794165407440574888119323275683814959104222234982355051958497938689161420724083025348693291335428163970775054432240916203787565973220095668156480969561969639335873917298931586564867829752777672826955105455616928228583434057327065190382965058540948999671564389916890172099142159133669004701790365792162316125378033107440084440219276406082244944153366046339659793630311806243798343056907472615847063305833721580431013985158634260078419954742622071826744672464305429041731967333608622651921627691980292455710592010787448184788916383755147184804252400970076504261758040552796198006238955612744585490575165035982300590335741132380001198904951113495109551861246074068839493878386879612835610506716190671481901696749476522594402898825232292968494768640916328227957070933420782068967692469761635880003236673209317898131774894122191617935687725696910757258061465598027397783147100396979124331029242363703724603822324504589993928167691883786559819372957339882896666102563633132531423080901510398728367847875998491340757217016420678315458976228411368228735431521631762364316709145369500998724742466349035516300630742086296891228370728179381768391141309007157509930102214924812418754369175168469500086996493664095669863968034040848693282425751459028467957722414952426984825405633253033880050525221474912108636046577788931145094017657714598807044791558804853742504079724303345958471861130740765716006480110863051494561756735742009700182986394706795288206507984252530809760335111529370750309079709342269439490230261828264368852746798831651029915394596821651377613352606566573283995887459419821373558229914544190379661398901521356727680668416967797363298486150634687376677047830419302880582351491483078481273671480592877406975294383810520683419680985798775735895424591488526670545864412542099881009095471165270513931271695689755674169694269362452777877233802688077040656871206249016187453628728000063732889579833662632497239041574056424292358955075719450336240457521249742289471135184020295891976437722640240940222371094888031270587090381360531215074524664065377711840709477095899884098164548830411684858983210950129279712570688762073175945537267258051339871834170311935653151284878744194356097312012209539235256223014983865333173150393932181133031333157529433774410527925276249012005623444568880524363967042924213007378295957343447365176689521907872256291226341278419189599276432687877734019767875044425334802825287289249684911101655710576309093927621747164459290446829004013316455959957912744921877208470046825829368126089483816509535710665321041845030672064336250102982515766428166439182284473055401868525195797089481210595345780271678593077567405993874176249615162355312978921784987707448401435353535266836371741620670042000730995068301098678096178151439457800774858058841622616937139203053912795184596172604633580054390510304754122952648182390873812322517762242979959890206810088472623034891419921575016799012725794800518302337508190435953664920138107652748117314983439680910806282485762920621617880422539886267051434534425038050067795424937804386934980337354339649855749077412075295624789639049734598251580234524798640418783657529130367620885686794929032352420295316491628812367488008884427304541693246688504391093544315802494730248808056906822447297603842703582186819222670350353886802544072527995913226545012674797976225714035608168736646777008546739149681379876346695428463853752189758559592847853190416496645496276377600236832388918427491490042620791943937300380793289365203595905136411914872540625570918934777106180794246448365711243372887446260291091087578051727620907260837751564793941555851535530054897201828804361457789545853220865618120623784626587860151250875239212492219660271231562367697709838746525967976836361695889122505684173290896484262705186021197475451510918220215493971698864043292342545024472049817718728427618098395192868350547878932840725012035867624558092559022182003219856963917197838258951434081519313488039395399358450712361928791812522893942119876080698415524297649715580501772492486955414387990354647820850141676302027407142067023277209956211460280932994245435591285837985450258117546318252201087881636157059660392096868671451397613549361233223855717076755142385933220546172719027117619146367314152900533114653737932174987565806907696068037192829843746839996263432011515017637203817037647401486748546332445960214468879314312978516725348247179466832706323792331622640531370323674535254747251558126123674287224624116430729425846144260118741599300446606671293409655728844768375431662186886856188537309392922712378110318554260862436701616818977266883702408803727297435834072244011008821932052063331682546816479122194844680977267895143654955893353403296694560322841279405334370070218407253102561010249208019899086818121846066940205586496248706072594903998865350132475387803687874343879644146538705175080484030982441647887193164722600359855528676784314626982191620156079754761164946099312522153706392929212025870608298791336568655461108174336289117169400200999004538762113176895134665138223277713616831028046676390683224258209477743785682371261086680440154994791346701518037890100459659529117984199553215890611021765924047425015036542157252410399490027854325067440329375383757062031671337225614903709471525867180611621560996465718359424946293827671080703026073848224317774066245346734832601639980224629685052627956227036149515914053698811337584456758637362014763099178238114368265451489496651072090011373779645000113155622519514003461862665170276346616576461291960395700227044557577707552045298612243018379494413918548980533109475141207560571098795718295950839424138895172328367249019770718708502997664233847897439995596362242076798961675261640860745128779081264945825450818013333974548356517296509021892661396040038069067475391105759191755948493486719909228507728660158997342449514654121696643817077220770322680343418898888824349396305240977593597803822081111814638384790089208856507272276296698143894745167146960288798352320109492276295073954954644182278712047667400814769092918312451108745193267162485926139355689070074994632321166656160737651962926219850266357362512328248428374613920251904456965603079294710884856639211583115656039546773107710610622549672350072159878058633142088121639892360572345387890256855218731540565360353362910767224643288443028122734843894583258440518615864967228982679098146124040879970148270549324431968970195460544747079878548282189933059734984001939884519249436602481032894458358803997267007741483153501890299763284595724498538581985076154867053940211365648048858815110289908583112361175213926511469718588695658250486238161672445487758910886011161788458861225699121141416410682843861223363391516497312778789095712660298808013327222921894606521414882217500259348675172188932418728136029017034779249575258915919783191730008182109010511775667462398303799382948888898286176846428462464645884965703386667494006281332512700154367233696634338197184888002915564890478895025541518563560830297207898989124669763538104893489925818132809645509868016480355805429411373461082015349929808377241020408064684471948234605864127589067245853705961113207455879866080817227591666449516557112502012708157156633898257420901218509557838192164248710293069735481704011693382243997612595418069689407179034258055455779952270463095642812054128845806391766285180114628524631981840856617652568307091479712532223451563843549763140902396165873090763642637010598938832599344953538182351036717470303886767362279597410845776031612727955678512875336672179303680181964296859908089586014659161196592979963196881038025994947053045470299485539534762535761821636381741182264070318789247816509900434165870061620892890380353576422879033737533312346708720333956630481963274749428882204824825396695931301985625400424003533775335655372308886807731454822562993378196632707965501639391395016561996056787076227492267215066973011973067552723541237471843623952826461148297013587089406647935580457966877677137960686108353586546062224349923301299724262405537624167785543656775466622778167357446370686461172172762516214676692450930930024865026852398208114956384084889717981949649253463150399519468192636552162403301747889757919711334633673085997019331928807417736345461383830630426448269401547593810587713422144325669280228024525153080842685878880865391777526040613713572838226060857592469741370218864775101142019195591550960390913182462354204965144875190272245866482708321516664112939310591960574925803143859628413223336876491085782732617659863676034712132377752050509031055067106567294353015292628911309460105808632544571436521246325177324694144236459638018658854881166548287092955040577643689688226302464444671775349502249245285735008925212543045890567651597008745935062644702704822867487573523345027354333418395721690286390724511518360470204469822697331800323737640815823053365537177282712982993377451203056719317530879417149694113959689354667535638497360729253462299241631050920862305171090580218863164181570620517226828285424822007415922017543682184884472111220426134825508769340825526239611821201575252684855937300177364680683578677323689432600572015918075014856931236725566973770567174574073466913649226276871555084824706029755162770833042622107731980831166568707644337555321200603863710005660402042370717871833868426474674709577469882113336459191955196754918257237961582181087915236635270875006368228173084667935834306076364991356306997257186835231472464510782328577460367961801710834200743240320040074547253814782318194610345274451688595370985021885707154212925297534995748541708732497879822726797372637302687814252981103577070916585798099047923494792123963242174574302917544624822260268314115336904807600667140335975477884170491515130145197813281675749734565563797914006554645342188566685748315622363990720157493261681986262929472957955833979905362074497374485794898785083393092384467966053760320773757594972388624599995111469165258446845740556919025403880788646770317907577657450617246916858871488244742232728111298110306228173082553146091374477748891266672683330673461637259467404745304493353404701564878100435005047753770684538966456793888109972891560521007373903351533621211763050155436281501791053925994022316800673700924407681704992913512711014578051538337691459746811674443498626703582245148678531206334841785754531337637328214558688146489690092989454012696889535580638516364757039195456982572728982517982127773218767974496026172736896952096033279666219396349671149845425359353368286290995721930659845804784947699859750831372052296860942308806510170934312680534921880622319493357581556241413359569043278464655027457869740682852982997753051743384782024409483023685237181294751250145098402775663305484548814730512377075810102440524396227399946181187660384467783950983241022165469361768389472077816461689155655634275821975534624145751015060562939388578710237786400639771399381539863568955737005005873364438345151248898578255843624519465575642487620116306103297711945096145576126044440202009808205289895991492931607301001969809416893817772276248742711499946808443184978595121113711539737257308423328894796121046377741463124037503435611086030345567520317222878640306215708286752184803801115202004573078179291623112137467008901232939913060667731802984781393030539767824830007837999337338382067628003017770873346582498296979174818047980068526846805711643184658135284283279576367278551797318772122875115357770891025520601621857114355370397579736745089738511161534987834057422110726167588032248662329230880073527854623696673659021358380397956015721195789776639805540392365750980942420899679834381738716805820217785904393164070127110519708736160262920158903261381444625316519167690397088179723918084858721106772479511564195759917350718810066470425880181322849186415321859391732681709135297023653201084038851486716470287450831674239637438927459877307748171002918166669070196378965360282322409592940561506836821382707414640441398723940896969140190683769354343826365005877825195974361545793918156485922001587607004304186790449533347988545233772327753287614177873333380080455056865524583704957067853523969525959919563702862962773391820194578858459650297147741868296816068985251323081815413367165809888998988140249408050956842464278563940586747561703885252467388493864827844287657168542041139989913342246474135722445838045215090317412805605028056745195453538721897704071624285211627009719926352885412571675287490198637230806168046281410495235254016632818005204991721309875274944775223305399497288082010188635720775876092997278501823799488654897070287466460474570292775806370380902193041794830866134868313177001312993996890743104816615779902397977363954446914593764582754338687576902330886051148618842962793966768876666346406559234777311855627469605010821673896752270591050044765419278762167980915560316185129190071049476335365721249243306554719603866228285523065703264083091666913065268959497655276594194452688472100565818435480479131310630443266297522117105052423387294284812724368052967100399744465860159093102722254129775083566380823152902098107078308582230980434290472871314174140012593777951704738798734786059345334614360710491145248814245181451091011795428628789115984209615190788886205287666490169738693496668532670382338721245248027270310784609896561942937941807185108379689483288173850513154995139531924765534800950114946711598203510297316038455627581716098367973010046374028209483090674982244395170263472902878371189908982587359662931869921473398560237644067167686701373260139649668565221812075790094772399044148842953403359307189335313176214025736690726707428653006416843815431202974997100008834298016242783273428346646802259713450202544185618202758671119039949646507858619799277971549971117123558719199307072631708943023897374221449958672276099422379484534323258267675925626409575442250343884220164179106407740293200235689758347099892437302232413479437613641240266122595092224703399802258502922588095265034334687096655201123765796184514345190721437724030021140099740699892534962766090816493655949691116942372129510539784866472217892755625346756257794877933366439323669591603284983686076671119426730256003629965445003160399972895161992586548191663584411947449116960373460502017266316019611653456928486728027041710429263957155609334668038814582082925842194353628711548458844346120701465472105399167293855449706565465397755902600569406172233482069530579096701893493459673776856950035147833549422587708471080418594986122101826122601806846384888329875522010858060437341332587929098916907789832472611105463045721654657170375503762445186744319296647266767813805964660055735548378494263562308068175453243539271832640901922403148181911105209218639597402236641415612363906709586635690454079468663680351924262553066103863302616709634791069331175406085058516344172612412080748360127921982429258998854406318931361427482529655201047334594303285568989888298651358575705673405258036646063443399868945050144784429048802557454226854684550189845493813669486505183137952694482991872931908390416611380185721720743620623976911648912303877937662584774043829484875821900893784779607077985912101340882850997879368247033470255693441073415036819906038606676504029318380080458209616755705632598612987640489134075498662956226831854079899859091467273278353351424866994633419541066017391069944757027627099652992611338792880063725258319034433557855713355067344214391790833869774106909384767033205507851882545923505081475532755708825509631295515474915795059789498139536040017957710460732829666883490252472274980610964833025222626441086059334119233236473385913128375447430153994063849259594983030665508159765522056170661886366659525035442561328609358440870072714471140444715035750782234516807996080479633860134674218608639547140045315975372898027225214522570190222401285354164729556664072857494725512776182919708957328032316026002285856869307328926755606240754929574992587792503776993713142873062675038770739621734767840083057590804040566288205207308368852332984647442735292859509486481957996317139793918661486950937178440250739252288375784756820935022436953197636028771832792271924999759870300671413403026344206790984084075506855055884237111242404121482598941119877811178159168766432659879738688222165295938570793294440487470514419251522392436851602493380322478661984882862860979910440646049280144632167705033756213650971224359876225552538612824646088187461247304873968988981530786280661721133233512396568458326250132311163597082892181390861961360737084074715704725716970198931511932728006068363399375707460239429496125283128918155209314866119482076453450211625054671126827858576278563065535577196587919350489948233441629380172742869937604082022228093197431058864013150982094908389411480770940148145638412490793025830568230684907561600749634162621375915946823103562859653577604719538501458619872697943911759686610901907980872325899423659247894934252501561796385071282949336450047971710093775240266666794177263156709918678442568526396655878175577388967269555943167089155328629183411333974170727971847924630845285881097883013692728499371816912927001658405274431888177031032640779262603259267244234044819553533304150832382956144544837861101459218622029681846394926560254450488606333310129053038967479469776248194027335264874202702496585971376772360566272856737680260807280643828229491967171665121708315710242529495471822986368339805778146744693491140131461678751821452984410685240630321202533114936996816835980484102054124304682465049908721336993121175773681738869563703131067245878282992761256389818285835416946309465921583698303558081096635596125394622022716135560438438448556314537127585642490437519246004145520790380706478153006672365274877417205292169902546218574508834116066355753950877217260117042447519409789795543159235560560229364200873144549817219483883576690679124542729219911169940066848268819602993786042749870003572567711720955022525395348550093179684584785009374480238611404021101215858870374415740781798491463226645542346411516814523898860507840948744308961892382083191981466269097660262412296892995131223130252741180861121008758761836355518123232443260012761154222932020772541398565777717274162129820035885140229030017411130666145359537569145996274732092288693720044914851522263496421707824123950740189147094698358315871392639881034254653848150179534129124309971293736805998470640070668912116311630209526478066590346932353070924234335171115582454625523087694528302531974966010668155469673800346388191018984929555524380989186553973049474805532756316001535201384898110605956284454849514524609055783609517811237921297431541069615548198280505696430116432281570757461325081396065019722289383345300432722017382742450041356990314392923530506945574819062471984625176627696114546702940840438795025011756088841764933593970965931525499109235609640165816744074308774802282501816126026474981767471327993554778322382750458918091922692281470899589243843865848620590236913372912960320756072695225406276301355483232475047714336570514849723896401072316816156729315894967720384348827444868758172021919351029778021136459213297530037591273665181589754455020923057179657384085303301045667131440705715137296977937005928547961224799480520530603290721925278004449294623352578211544949957907258648092775514879065991056151012308455665253424050928005590737792133792525730414815317395877131970666109864391402553240396398654763947034971134642852567650066539384275907116281339879771855907813253806422602719832280127525022930344222580332681597649413053347357987567483007541136382344855202349799604206425041638613066380650199077676656113165060152118516124241227993061078452483862908222971696310685300645015253534037884558269983603258699252154685934273348052890025835240898113018271388060571321186140042578948104221859862428696118161633739072315339339244077241091986673287239069867345847141678282585337811671797225059323721383932866190877807580532199728705181701795870780837933537182289706532271614679089175993091588111050657224230971483312737262420164769885745086285787587561620558029966047975948547805263470508231296009908944989085320593317283894615403505223448049359872965690073902300734031739480216966370644763337162297560521108173022966440965125961566614880372778091918299210252663500325281265898883555669275417574720263543825847857365973485555045951999586191150031540702615561299825448919956689128118316750745009501917347263859560532033286558960453986654153802588838353749963398057395393888852226003690612348450707432014771106736477866948863599588228539028382420864994766901768032787569835002719911994637958450372740555957507452400240034828588985001014083363862583554865303716570320460459691707364469518509983796989000786634528613611302376453284657584776138423219932067229247962246166910903842365440728252846220173281454860197821533171427171045935655657869248537048532700098376471295167364958673567344460461397844737345545075170521088180357119190117081939688280072109487070756951158883669976947287681403262457839787284443582501983616944616431489301014302768817506052241673421521968885727126233243516134300710384247909124192528011309480843891413677401543576349763187596424746731395031129604179716278689518338360271921890002175426212914988566096578941910643248530623519663061547782497229958339773901914703390692866120239236991711770046986719221844820837106529678133877888174273810527577086423573789748141297562446974491472675795477637883494732286605367067568430309881142589425329228344828470807245943211930236952694320866250559989582510825228479750769623090756397387992165111469334951521905959258462134348216193603365233615791984678822287234922524950569566764834428508650719234696080705888836865253577592963844825769217894463169995712866302880163050340545044716277795058458786967840450326212968730023640243889524320162151719758134589159915620669187675241468417921083412687191295738033153685954274451347230549089074733608542276615130521179932469694748860943742647845255335984255471920664928461467093294742328281858313656745979872260379128376055454828967788246515507996246841481920100365637032410454369923485249752555398284292000361199273973745419819720699412082969955379237131023078021713627387162142247880629593787924616333311637680771428838976873266914720250738832361946615327480029623953992404823204653558629119528682466842794056158818716554426683511147884768353178491600135953447499134360737910341849723563703036057407749468509540055986453703614898932983712667883342411438211853782598074886552907943173353911736798493073142805757081028402229995978638890063605283685981535091189000138609071619522024843058047515775405763086372803167121780383933703194249810283584373097944854365512961432480713182434456490941466558204151493286191123145867083616802069130733246952051314764626824633178283959539560732320210286582140742587110070134965861499235511631530303036278378438473143036669444918082241400736557821141470785521878894718155314513215117469548937529047480519969760589040603748361344033180938915352927833344669471431747022412192154256175978088283068072679572119019538370953089815039822338178485353820158096324343788267442516223842057990136990833695512164694579003917787159650553860907190327245166936028814972923225414175057224995906816996286655782104171409263014739614240497285170068949158706890995943393255914525719653033662342885640136414093428992730168582034236262945607111037176884737461138877363999527453457591050025111287152692724813987980590197442861446361998044765167823054727560984167673685435430013110333092655021889232968004502627183664345365089065215209830999617860863101016305175684874017758080943887645777828111638487367153666346090709455997383903850071230091048689831345303684007716354081748254103781555027528392345318491967434504561405885868965163293960280613346907328743798609922622139178067562492158794218328098661251259618639824043842555893738796482753096931440409290373256924847505508240844873895977831230741466996268604414425449104185058451096387635277557118583212605534839798994511904731019040987651045035029795474812219244403600044433904056229012783279691300151191969924429768463934233364365060039318183368564447952724452185819878431547385273357956353556889696763894156615072507432106431793969359463604347200492186866114647411497372726920992745360974200446612262560839977145036939879164819169370000372899292447022862245569091647730664540964294775566270318215925903994311649500624859042820814105943692907288765237495916335038991837549254266232626954251892670436055493556469164569705777269108128414607593275786519060388727534502757028291623258779908915722002096583362755110536071686646058304263550690628005296656955631661402250916929473935337240902211954361535701281290243962388711477086075706520934115254636234103816600885182543548283306512546137465856684150485071070174544531055492701844549216466155558890130772092273328241887046556606640605771978598537317663043714053007870242797745146332779061343299774887175551606142064971537910774396148380176800186116317927962475681906289355236402755174317498174792279358499047757067553575697298051762403205068257792690403567114241097218804432428938262433574920785835971889099005572201702117664174499334089211092874085998249079783277394353614683776899934874212407030273725163926496659908356157666243787838120421751128958061465850857534317110795698341318584924118857063955715839521450695301374920839419508114079155031816629238162994974734838081531877558290116301757496345556310356779898539143391622741977350623955256365736942485900928266283202963228252051675201401854104861483808300092186250704503864512382171724471513217627427393496855454082948483623795133891819170408007230882740231378917254920637098724207358622816680198220085130500764235134487896757885044953630881626981594432540431995533745935334423623978925618653331755802273355969847308301624941337887403290800379631158626459509815287926686628090250861261309338281959479343008703312571511444425797123853006729004353972959698166705557804030680695725974241153862517739217924202929509770326816907797657139195808585781802286367388551099152585745507945697576986076630412623371889202535213734416379396813992725619099759512980228223108173533415513101667885107352475122234097988102349874601369470479659810853888266387693267070525506193701910283377402635067416551337407090087046841720376170064115057524355438921041708652359855624220311093297651853058036193297718690785180397344824780441620188076123477392588098124269859981620028531295695731965689366876787527169055722427697122815802410715116718419950329161817312661381250733648997311851568042672982727439545399577692539045702390613659010164974049807985435211400453222481113916417500654780004292715039271953096989505304073312166745793984981419040453683083351054416198719151390734401545067631489965316137955868928942747369036686380856693444961367887130342510011272490544834031723285987136586271878202683517733893634016948511223880079014555166461046682457319941865808523084706066565976581229139656718364768832795182486044660523548446646100068195201302728908214391122126527430187790982524089689956246184349564229923485934650956273113102227340028678728887761045459186342178329352798657879386865422935419585095639057035404842893720086995209121149208873048938976706957845738819320872855937250318279977717888832720314385572932465056042256100137976366134493185836273665572644528047569339112244304466759662846114777981804217791929450162778387292999058280267872852686309943325106220125333597541621005365467750877686231940306706318560596420009895485159413058275188980143779588156287716470170543539298455559399930371849337997858425170200754386039375967176099232286535359215628474949205822444946670678773392740645998298641833217299963231430358606089074400958459633045732138506273335530972793527179532501876390677363786698086742478950005527622207402297552312012872124274543234221143936098654735414336577357980027792937948986662168343287929127112800209320897482655509451421947035907710646520456517695808115405890467817707685506020254800216230344540489036245291332706834756758989656755049817284161752894265027983460256348585488952315921312277648547735281355580705228360941159842221151082800804606664220609695138017248611697381120633470456154099883073472714445295257293416810049006101487253570982729918486867633842585787283733528639775875535767362913433803841335090298637566866632866932679981359014072593057950901880580751324348611809525855170079254302742904147065155420818933953670284036691076188002794105874632186673709430782992003250353528833028696637687289807039390849969650078835442970706022334953118951526992956399543488707606686987634129077501148841120007077003917078561389811681713633694408504633032543104949016530250021918473533907753791794564522971113371025141656030998966495108901665244406591980205969456607435053632253709504435425529166240237524907679383263258210477249515300431080419207647593647743085361837613582657777905374403310081169268144503544478566451579235261839241239438213881390240827974092506377779623524324808535820023754560357434860538951610212139569517135331064020966458970132310872478499467130947269513584603857663470840267086266529634045223661753532385606676473432665064216571425321708286250363427754233735887260645400860402451953864296504493750240798558746353390806633408104490007238888752114043840428045048354824851886885502964265469783304104493088315063705215094655728897025125581083966676976692264522519711236791215827416911831711088068248738441685036187661886069143668376380195295700180423704982090774290740049484563558855163095911646612724037295816285224978156900262412391436539710187933266298708494936192106807933275191373962198149367097853038199492122120034726143647397061590130334998933738381063180059004155227324024824508179861424210277743873260032822226339843923529684539215411146960255363611979111698565218931854311334992077994506163491970106930263961725689959777856139876290515269440501176671461238587338184260680676247335232688020774635407164772365705420115726003776959086385676704259281082331631546388202610914492059317373772157850735249183973049380178191046099332733643431486961490082381847659128541976007877507544297121889091221298725051476979220833056970693022816271003858698050805147869294326821196973000299725037331979893883273066468251218670537425890332623564636482148457165305684019261269199673837234796216856772182185290121337942670817044610259076797036117792089727764107737496444616767760192917039115777068762721715020096893046428801379927619238263134506225669791738495246133633408015034651046159174542965805693406719883714227270764131753860455987574084095700943876487479898512455087751885415611808197308817132161706039710194068197906460659631208623481368513412817411063210425355676206054609445514384618914586567845322970958949120359609322901747902951145520482244536093794691884312317340929031130035215694892191932433103588436053332536661038512486094203174953150811396585329140193067540974784705300285671818503820632805222660743820784388166374552201966221196917199234280186590841541580747860067108581899918091428004914273219809740004228860552948644771163068844319194420078028800696335722036611615927550201268732593133898849908375911716213529142801326376225582492125765476176426496894397687536492203406714197933250527003994212755467050946374099182526804240434301403696886872111252814861482915654351867018275049556348349221212132038947082872844735445773685712955149159262029327478280397433843937838631504384919729969293204707487263520082319231916170067277990185553724807557047467956962743032893344506458810756955317046670589353405415817903219367346431500168084681484600836685338022335370009340853755803598013550215240345077818418005921345584239015047099997623523121523639327670031528917208109269719994698646698526869267051090085965682409640123231725181877551527837559340438610249159918468017771360237069823382580381640737854209248970071263089112108457933126725017372513446587091154421563382878273606882541993396038754770535179060200329530876270697370701805574123144505868712732585325317842211973183456785012133063794472655650430689917309231190941072422340939548135944094481935774604194675235655028774022976944301967000992019983300712826409091784140369464854785562900650993213557089265706129952029419470428517476986058316586015910588034403129589682801646333303025516540715401372118876516528002337462342229671867833542474771176584326695133972071998932244001470758953837498453420850683172739894393939206426301896534162012857029480090330617673805775965412687612201260707150100801889360524865752811088626511918345580954733304059413265673145831308823594163773512397588360400065904526837804732174453908734324837558800246112866178081538770193816981564994323732101236099269695687894365201926566866723311265896694157072958492708008358615289414996576540588586722890350819535692472696951951967722495449278724023829131797766610089971928625611580047549411008429901732114196004612866487627413801491036604525170713111525116979393455624482801697396268277027913569799893958545468890905834801910998180736823965790272882585122164921452850119755387966362704026136434694341787018883471237922795884451812078223488226260305737715074691627141303938619220127283565957150389497906402757718156660336810556989642081038164000437333754965226508840507716419818381832997005819506017556257864605819528804823903946715824113092355323991237162122836157594274191344515408591351294706535497815173076551199535980937221023666655366752772914152603892250497078167622617374202638805235720346907613683819676884144762536899456472467765114391500818336381415828805503895567562052790069207698249405020511198703367016451931717443796802983833040708102050307484367987745235453104415396858707765464175560952453948454727099001606976828848328425319887008648886065488869213018169548636343964210413104440684504958638851926792668884799440415950575631048767489288451867326733975113070146659125430532291281221792087317342503579796621227842171249966111736443066088810260003920447760885868788776941989775742657309889866970131219367607947744049055291199246230220384295026826162548275719713732462137050278897316308455698575060657044597263808918404362920766334961407061696015038772828705755119247501286115195924814803799143067361371739240531883965963980207832197847898668437395380453601529840819310248796066997517008887265312928796565133309874595065075638249415618473993360571896719463510712408716635531709531330318572512040520768318790909314871740345295790352167006510483636554271397143644192687110739649422165413532926357590041645642544307771812281145570927470378327058505744428555850832321315748540839950047656219929011626067413662065892362478443003004211654632158687139988625086438488922437083475334950590210072669734819246244601088349490095001614738638890652710886883531987372348345029744763453533270006273650850474760067698756340468256351205148807411313992431439566348813543420197498747987782391353129397709297752100753446963242709432094473243492336044026959262338488239634494591744289163439751960754612828255432245754284054930412205479751912856337970265289522863850396341570965122989431163655439396211812188508419156125099500558518497731104813035503652709883735981995851853402745342283571713769166041851911306226045123130831367917597618639626188108928784310800853966660327659541423012922188191345811303999890267737126527943282143001717186876361037227902403734074423623126837908197989431970692161810898607237505532946647757138616689811397236858912443690907159713482757585104921420510744538982175928168770188053502895331001302644839631874032080540723802030883379035171115817824041446775905514033975857917367309105149430405971399529231364483811456324699758772112925999654019783395481250966336472594227756916778373336998883051848994873583522903825129267326772628689485124123268646145444293032758988342863439480767798318842894652813076621011549632380134986216597631712673660118805478939204592396335997469887342191372469688571063742321065720573842888098609853546418312909443847259003154537362981205353869200660497652493711048323374892983706070134126973933278475119058969457013535614518372138044561598851717759718366913597319125475170991439946942630891333116967391825609268992082264429629312045164561687286053932693651296765371718872891936258145018991758045692013944246912730717779009719706427851760970095669343261359447694636166084309824541176832219786974004273717915828591854306301113924960020642813739791887656689547988730007374248947852458643146588829846790871161007159070062682893350069234208165664248312795738405481929589224957522755265360669263765005138817414875234979308870563403635517065224550394451356273452626089630489243132972651750777288842956738656850191668154404205083921174876316504930909520489977237687328991240738499207807957372760120256256834728534448393239634461356439449532909245446833461203924096485161033858409282821783806989333222837159460413944521158466135664432511422010719621548271123826322289472930790096649330000854726041698013273912250944290849899941053788458565099992466323127039867345141665203989503798885497333339564224967938208618349280703928578470521307656438475929389832526808628146794082283381044705670844641119925671454330023409911877091503523265736239686403940498445832350744350438980139628807588039417088425270210155728285406775085910714186540200675472084669675469729321895370804504026997996875558024368938710935769547381885742573759373170393624462546267523597229614703494365636209988882169518355710423098419282377496309405346284882222271175395415684377244785433426461589771668841155418203585994143112684008409283675150918557468021551774711637340548005255970257953531910730481323231668520676579913700166983649665208977043672422317100244444905054588395634364158471854580815541252072243893536897646324713473690459279506770421322083423462966597616894263137008068363226153312042741119722825932042982592065829978310583203602232757554267871347983771148117241902525885159686371409937658990892495382283534037686791430022558221224860123424810372766552860789019954137087889580830118789282251513049972652237934399241906425213950519200468220848402530415782015342890342018043507925149856052005776200424920170692747069917675595398153006211164812054054956913251593274480595795993043480876036145396951047973566419328891788196776523640512140226960231815146932760500897043804446982430276022992017599834427149256226387008344346423227673192454302424063260631940449447657969660106736191190064030611101864056101461697743257753842674925488177268262032723446224393488062956920661392544273491122463776689551432291959430113224271136128092854898672622558892607004457222378310089922164207009363653354768427350334359613249848947112664457585407144652389662345232544556421942403455954539183843208153358943029009949690647792668690267509983478220187617685425380855808886984966178434223931024601828936400880274005636891416710677195783085220733498922306238357484673110176788516736196795610338055924865361168689791846676601895732014500654826305623302471413472714864395238891127737700542643321550271502204094158435595826540957499032362600514082668288126486150221493581487997445399851128588721379577631753089459029392273945256115092905332776772777640242906281013908375391839196708336431082824593534608396417373294193914367194961131924419401125898750935398562222375862991481206639215866747318416021133980778741808526492562213254339284731784932126698667617497215374810414101915772443286014947009717167033757303028341864635986814023885364154785179153754602116190001018304483553580601816928289062726732759006700676249039281483308409340327298769690231091336710179246947892120364830429362600178205018287285180368868919258350876783683621410278312708148728186324223653304094836381301342822287608865619353819702481563844281439096732082738638674649842247152765302542167467415520467173487081461549366474290466168773356008971033558505107171429051795536157226209028189515122209732486665818996692789981257456526729499386991740920377451465727054127614175395800890907253893178433313309238502691305645738827245382874349797025444312911470651139058453795210010458118838980877176692135762349250012962864491157451954725737408414296889454801099737909441399702022769451660876316961955415889257607727676466681051886568613413560629394940285944074947249578966234699210368959859099053371006247652846890215420427441710417916789740709105749862791514571798107718847853263119938669449255571290763434008717599244165841780068127151444087547395866486767359113480478897637019494861182943010256061942302845037485401370281646705343357404969717170766649286635273778171606672453275875539616473831583669907771000087650571296280214282633045464839142844318375169571831022575409235830121249760250076071682526069569162806990266921507036876901806241484433708934643150907363663820236728212112946145719605703324760682068061671464168660192449701530711880171524450454962138648564343938363748774788589906087468523543110675816629655894363032171791379275530546661090749171375773761172812853573012642070104007776708300677749716592452253897558779548877793759063651832141471399618448705659095633763976326327763985159573965996369224547767776163311063069861043177624902101624270803203364278181095593763908234890551125515410165039768296294468696748091680301943327735591134425029613107394170193949072032459286206064840276538941989025547527319363757940258424903470473745905682555842377236525765860677206811223429944326699773620016433886412163242313215614173716353660445136639185511312259483944441430192530695188901696433371612315411556397433213644375430306838612191127550876682498334435461931500359937766614801132505398131459748706424589950408838700652842130765410374777084011526329920425947502246729844113481643354030474061612703728714031849607508125749979753713164962265622207515855544082753316768407378378282306524089889683400160373711772847523003778769935660528754643716783837800217403532648230792664340649307512731066543423777283018004691854954210754232409110576860109423239745702464351245107561617094078385361598186314774791233018029592458746493139913012961927298144077184190926812989825743108738924786973133416970468990852395780742689148355509152479933013053797222148121817578458830693951746230390250330347526140007047392395402522614325742474678638129739952704619160149055902133794692572225847303993330690232723321403053343426455914842530121630008047912750034700977840475913587166922269651473701576041256581999372679097351098431151149548440960690324355082153063600990676187237251352179014267138412381377347969650849237969414074420758631214934392225594327969805570598849700207122499260737727318873114685401116896133439176111289188332387322966322218135175713836448800361881580403485596798209729567688761432839553420857090792069143502547982155689977125970285833683392994482729944991209608817219743109443454530095743302372124196074705654457500957015742905660156026777921855077024869026453878024573087205364468368792329979368046716698130840500426706632229548886009226776017781742125130465513969514536794856343969662641587913128647973047458054825414801662991364774264866740254921166199645611816389064072829795008770824148631030688424308753792323218968638910930890826709534963061150868874790631258618693044032098795466221313214320703385141769692042338015852020648454194121125593299705154956845964385457077434946069576993416735851574804129380269588708169980891146642075488066371190215625464651995568306082533457161224484246111829012449462057134026563857065589907729877364211772304678759210846818097333450298989168651706240425158090734572735111640619527367078262325295920621548501376549598737892247803065495585919369731889216245704089028807682552197399825473913825232451082175357703932088344691893815384916170446363832210993669679263489969213811009919837072188897195440965366048315667596039271759248240665981279925191515212123133785573340268053421444287564016464911765836683598230268881159177213380565865207490205275104684707584354403544358396081134338528942256773282270030059768608841327578312038459108884104244101064571167391870121785487833507581814474000209593887023467897034483880800298526860167449506504887726665712504429637393784088699148106111852381604154441970992929106396895937727270447390896187109310279398798569247165245241225495497169709170068974151199625854161705793510107905668941625560260873043957454361682546232450853391528448144800710990522481243078070937498013733820746280456360969281893423821638094061398026622466305970444299190559855126148359033353407124155199464152446540891383567982023750844094696817544219823412129256019660557589811137436941403936269763179594758733789927199475382500525171232767562003374584397055440657788202400676174641681951177375451905098793258166991580144063539695701843354362864834802547446917614962041359792319966653575027001369784041897999231719145123238298307763291774274165446296832851465869567897627520521915257086425376319945695776411016572352275699762971556875358595245736947215845692699797730649258727858784953200797959798139645262502116580518000871117665749813691917836535400937330437184885637337804200716216774625450158388844360473681667817370146163500441035505317070956196849333964034139195407252484573325751970994754051896549073050405056677559311416645159838183734920465500137594444932990075872579384195368814619479152184833444224377047802135909595962472861676632457470621106476256141762919133147639411382589476426069937337910410675450814503078516920365319913202162598429503664046478967483941644813648903808154686070903939771731594609555120862659584099127264397851991441022520415316699783440142845680947819861284995485755700122185966251133718047044597525346695173268662853192520651449757462881638180165407660473534811067951062937232473725336369353878909409579717472933548524925042212321516356352124162014350436684967316558192810024850313492982891607869893969617074368826609597952357515538304148727357264229035672385194580602775363362918033617941840361000492950837569231803471062209949532705757535301599138255378919147283386202634763171204503286666105185345332490454602243673007869999537762890509048653287417048379493858449429074085435817179947936105522099926857188101020453694664307009228212514084711603954295919496072068028722955202808792435207872990214102043093549341420797559403820365564226275960179696811083597084247782804484276354136878512150852495144309012550823205996225936731765663802712245294477304293818650638483671975727813536976373601440593889152034717127486297338755813908878665074763213596764302482034021350038992072614719932510269683889890123360810668223988539800895639837013266134758029671944306653830058598029906232000559761313634435189983518576158952948127839154160485396139380330999258684523041214478903273468388561926170503775317382727248861879801045009385643995861858461416239644847517115633385524787551924514629341752259638428866384455446816005471220742764720995435352180655290751605287708305788067950236646119097141351925429002090004442723198481542546049541326614478258313761872366144213968489687292109621519470278365617923979796242656610553096886999238366769440401400086534703775003458479856345810078906255444356597909561961211277143088164820340690871395879956621643932770020178420827220397459794200305569659583588245827634964394188042563250641251758764761372994409298669080194609455644933095533179671561894426445196399541261276755729838576527255501216452667767006401078423287336975473413929344688283197184473212062480872259765910997697463125525698574050099608439071594847679956208247486159826038896648053118022517093814418993465623910663949412234755582221012389622314328216416720694510903571116768090096210178978295303849796232732863997990550058107730734844241709788682739674555686882623627918130664842478208651862870573644179192980746587684155014155787133774780314007506314334988239539272922380996407573756727442869243192313375655315613323724330502190680628681461132278658758267390193313124034372928837043351908570008750972558758759966585361394270707006536711023471388267060152779352624373938298795647050709111289728319672544074418748808173466175580268514487014198234566320471292271672613952675433875638254407466349076610541024202020486740500820755400347646228152885109269425664137193934144594276364291715229970258590030593651928370582221713451483472656426963031715335812380310841536291870469540797100814555650299588198861729900308623002108964094554424148143166092823071567491475418618512780394505629893418214530295393740716327975668644375705846214599420805751289150208969313717681028485868708550601617073974352141458512798485054639471920671492510360649762573700675143482170868430274874757249609314809535583968147216089931239601305129085253740649991932529815281192256321256448167508818727590035867475107316377759486244423828649318522931798272743914032149114155373911461337159000600772388334527024604613312849169714889730451981006040141077429148957784041262740031645167259650866949582719768720102429062061648171684887483113483586465932705461995657624312259656756341966262911712056579526667746287217933821580740095494346345788239521981483588901971606624114836891645327230283148768177106873161678034135526020310434380725496649337032305334449341469636699305837774388709836514707340545747673297856893350887093106831007119906621900062138918212537571901123145606232818762888921331363025225087913648654082722609010241976805630424477369596192415202239522241321402144800788444986352520681111983384908210432503279126674045889900691442168123965666270219321796617816219848791050858483045626531248122447069145987283265799534983410366957748190879360068727591219685203647175162932974160219528933056575790798425845198482807625634890271646407353940315366655851650828532713780751835447768103906597174411467980027513181644542775360351840372967064720660365329732954247295438230648456159051490291630724008955306198731082887258046321113110503914791945225443214149865925614202045951364476357264064316409591338986350500072739760673861207002963467123632978893095466578754350758683654422119326010167329729312796899972092899899288516940875695735022873889593652215652195458441962496378844986277552698174055919235914561289258601174574280576251482471006464034144994476646682499610682955815969103855951829846531644911926537221909449903350894809094669512156611254686702781458969839723696650059781867254788023086754710273715989104710803836612149093838466401232934417410049747860935241193247602117615355899700552386484028587599298533265740967580097525516311378429201977007031101130199548730541877176196173104345040413020669555701296133593461576389383522972483694564047932626753331031150859577596412104474959879324392313933159081697506632526602791210273341242074342562613435899305507528124964580791788895303392088036400636068505236463955624318933124016637349397480456805423417025025509103920109154133277987230143909737886011563234710347347219782481093744657506920546979970760227923014254495534761859358579273692212851186598818272773444461318506821024860282782922557490488871658049538185064288007185811845921735821497822095886269287497180735994005881613094706746547552413525317041630889653314253908128102409037472522723441033875099076800480425143434031690195393290677161628386489268798515796078107404151805429394778508227442953056677526918145479882802239648056649439881762743263370279693680269538119027712670478041374372255648532005663159153353261100118141598883685157658318384280737166549014853450964825464413603427762761632319060145772998402399754762658159449394378169681270470892704225793735687387232381280687697195418647996139390356706681103247583219101295393910977246423745245880061307466317887842604139210938851635881129036204230245958539098652285351518648155677130737083481934574360291613032900141711958193271326635522125042803279609636961252749292291000194674747683126720823793626619267651778400591232900147351292254588762757370964445406274556513580858863468100348644558492513157396155185128548995161912112668626466661929791163730590592111787415724167713386215605695279507340227795572491584486834541099567380562169218989759975047809526805171039721490659907296446955701128808043547991112259644418877515961647901410155176653749094403403351316687107060058825045754339310836766954831601011160013580592833803494566041777061324499635653709220773152919446448830502178190749415331164232125553786331260262748800469180530669735577092450268665461125084010440001157144267400741469814273236131727866907228988860922496874072433549331640723268216448483777745397673852874984884936833261021017007275808805958787727187571119392627626940075961773856399707600782231935290086869275113357919362652841342477494060560306696339714509375338901397624925847354682495978015972247220013225698613089831394278069135015510547327384768616165993091564240392177365805664489969473159274624151644294786860767436128950754079810350434886804449171722258421389674956913000482347051364248870537537481474746549954980449265118983787338097765540291846996613260472374570388959878286532322791796822823116010478169261064473177824855987444074619120664767165007776010912836442599528600776183058622488727250985479504757599714906430987137538769732053295064872719477379291472064777245568832003532356221354294682674327138777884408800918851472734346053280128829185760344957272009340344595540012281602061948520216352749319357834704039212247799262880134463779574521327576819506833058221076970141331553135919464801684040332321774213663413115056892920377684068951544846203446884844580361584953936307029131710454794250578714047554382479248140483975744392563224298292731956428904063164346117745232954802032504792294105184677702346241986789646132683592707593934202155232560576363144477286227968940434977634983684562189556888439643972429335613207472998221931983895487392471434542074669626034986817687497290723690525082176453656277257369139091357171959271976510257622501093105519300875736412423491721001794520610231411980843070791313866616043770213323412535153580815150975112413659925501910709348273982731477551191754867870489073552776930136993285337368903366740870006340963307437490702458216704633518113336065818151605905276202735694362019600186284784225871232358393243261530612706234830194977617423601353155341983468810949417810507090291785899800844274847348090645831836121009573816507510596077682125737887041034857936625942080726483297568314305454524774063986592129836553031355548805763477845137420990682183774177312677506289365184907245430474517320549673527081467665819195261166956646599515227601740839894236138996965642498676344952683617124893983541654678543902493557476343477524700193069572909412007929767059252041340398064423252355852046099996807084721381070504784616429137244807828513104004158181167810657488366731857427274181533688222887389923789136520280786078810816928885331489723737058160918189857695719297439999355022234472728659545887793816265117503910719601169564095744805834418142159876282276043537620662654890616908660148763337367524339592122106408907132216815960470870276038854391181855305016781485638026603778830203178089595137282860983847949202862742246480919677795626409561512582070250248864035102450744289998491951226975141554050793857032480408849530162950167049802370285251018980439613477216174849394850000273083521365132134191417295595417613571020798616194746055057357616789979333072011413257193045420683474389952810839373474611711890797337669438785411977144620139175575047111377279257108090415029858299316036423507566853545062626690864858039058598413523373321265812936671538663934605357708898449400938066550295498204283692656776512561583328406077496892652801915051619091732021933107584699927998460270284905946972356311116277654878234527642344257331285744733042841753383476232045411787661744486804621719393675431763732741239519389288894265326667791478703062361517598393980825101790231286398793774525593286782891239952828739289985218439795996298728916979402356583815816814880336524485865722646196054153984700179646300452406079700485455626495005199855260999226058870585875537906095998115774661393159835743773542829593640790741573320130818356697310743925506912989586479696262468376575079903741997284433580845069289701299133446259952230180936097188119838668711568054808717872866902067409839695533346947838152511007252270370450915412502160263782677792174254400670817913051501486599287972240358029751446628516888763990937374044951275747995165825816111586257462712925526894701876352731363149425337133369388373062415002289748957149705295342159519699097689466241884952415744472377492094658506456014487589930129539210051289313708984082844535629006521640631068801609756714826517754101742105733572944940081187993529135858857415382398033236936937998206744940294611881760320306793568938669471058592584601299723598638192249866600077920022597567744766112322198223760838925807333026238586278908690739761685363596176082970854339976996713258006361262076000483196739100513358786663019770681756409025803839219900780256444940235375417525350241067265732909565622769811522389600566646983630559885125875078461127516501939098220483699837957097539962043856529702487841166175119078370487701347648667697781774076175230968063799564589422798309541714473491357334747236474036738640484810998886229279839717922406118522290067797984333892450299602137260905371753877782619471162059589488572427287931470108332589350878772587633056725748868900038814659253526433942856869366350548473600121938914139430667288791508115252136624232965173608707555143411451688346553515636768182674119922401979447215764704789936587554477386053969403431311949739101929603166774978048837508984100859074834217075513635652656885237988587398545807102400129950278639619279655306432693474642646776502794457042337086358849913787800020596993012865516339657487399615178302252155894895376454774914775230694028953318021920668401795393212227670202997888657953860994823677803511416375221295659518045724478583887197186041125135130621559888893193665132089431920800856583032056436006821714421563523604589339339638156073398942097619932290705005495671969389108815117330667842161009465646661486391832140436536741650667145706121393070421910577684633734306863630211689793002799920892261950944532296148990057470359977326203856980938018749138518454600052812135799142543850740837477004673092187343264621231577670735525050947255683768633145539661530880216841911906592844009884263933138992264617576274936718371501156727760830504279965228204916870716552046992184997621708764137671067126719630993568966112053708303627216546236151212101487133957733866491491958413024072507330232485419796501518679827881989752078513034697110035365339038466160533334568739094474305201033090736256673468735022682833223906317974888273418674690613245833252646202620602158548737746853968724323395350429377125279162333283441875180327709418205933455895630106300949805689902016002213274197114268504948765020125823554490158463209997437664811301992883407543310572619745920016618276865610971824904067337279206873688757418494096452790010671496168766157482556015798835677885339443862984232693899380696379674098214984290272178217823762323138281266171006477753835813366303986934712163459059254648119660517292283231432467488791737971599564272190515265293423604321693882632892835992883836543728083709086485854833315169433731197183992817453020644958587384603455996358545960996012084854023250794244659624698565874808584334984504710337016491907830615231486592222084983207421496719735600842201802865008269125224514668816878697677274587452233166083418788570193819417853187702082513758518064331916410371973684263678577506762506963267654711235692841815123756043678079650037077040971176014956022881984638495344032983146727626051476105477941922551496080037644058427031428232338708374316683069220354287390443064554097701159850380351072181442172854640374919923577172070596957100519818623631116522628129691654486000778027836045628118154573434043619010842679477848221014206453914383045181942049922720110279293990718356199145552815465446074524716306984312277415914673406689186038832156003837796525986311689290207034545263151012391753848331469490303079546627260778299956664805911428153724003554264035061152276030868806034460470252312170528643984480684548883128848945254700302074410623471246845145517420301228215882943770109220429833999702041441140956702099091416431896939815984970829141481541312583619726558633211906776516030989229808792552681940333967555145197238226278075719824373638153506100534793535174916350614932199579021269256569411511327660500006891682300300382542394898951443843216145287704675929247992524758556268418343847077106588866049616643533457001205056749782288469369078755867581426009591697612787142600810454733724747762267265059142976705320934777319609720070969220870338806558763675113705301893155949940458655769834560928379503257453060018255548171279675448274041586150036244702627911405455633822113231300725386109627154647541045577603383063318863981830846593923220053088926178059517867924448974707307622512284808568720800018584317745490913757900434832449171921896615924599911457207418756513059639746109744702380743971061917104337149477085721846764063698368038882287507432653958083764710645681075198894044195199467380857242398489244917554587004884365409363617166912628207717570398173686338932195601634440314809438410787648240165823295303142502792173197320691047986305210323631491177958732729073634301887712582569195852003612052633733868740877503576059405838405875370225006535201328669590405702559627810576421715055019347719733634852297994232503285894291551820527733375633931728338658330863761196768581459516660277860755687181498314214896234129326951872047610652708391782118304039247708817569078089861089660411038029720150651876602932190525888361556728904238637417989519711965156251149465414706354697366071625111588079702417236411950438478761450230112161046414696377647827588236572690098019080998639486669152475255292734412403042038186718160394576499251704393114708547329492957812081424911018718821866079328312466491098292073309139230900360319109874060987323478547820187820380036573486690351693800128722887554359527805728244297967754090632314053727258846117661454940547662628523271224413975624593369114024288996102359274553482015773990685752065910618604840123625588528567456298833348136546411143732369989820482916293119339448903726074327318986795705381014274566243821990100415416774006768529005200439719641366244169249325695453056758910248688348938225604087220719001846761797915764178688538730783838796076069019332345996557432019231414039875471573977910642165028957480348915337841263687832870018691975876479800198727350018481615585096068359767001514046327234317024765771684986762956187578609468403661160019774899715861189507703116219821613048055311777394298867134270731420034401767499466744648712535611171092935712358283468408873800227228514195154704054247579124061470231068527947142835154239151560855518701317103185449621651768529554627358811715586691081672684057182692244378747968049005830797534195891710800905306303818169925152702654208584283456371225015443292013443035207686048108780456792689750292574940396405816940995748523049815422920301528319348316552821265481762256068188117142162263226226127864030586762231870036648812554268586843308919725001599138880314880727467455590041776611557854097975298005092167291434021351667270546480151351720041289815494324693011600504384944916624577045774689452987596035802144484737390498377045485291207895791770571402916661547323344577865785695628495126777696094445312515205562655226178821464273014430985044222153050181093884547644236678450544106541000188577460021233349639823829379751141177414909451069282570247922189106426682999896200051804840819041436430305015017917780264535361369102691011679590621673166063162170570645668797977614939644923070068087634761604083954999778514776447374430031633563802288520214647635251709634693896992627898741580935885644616582775543144153246083491817210750924582983846429997112449757318415811318692738795166391575508314197313202451996402547604159891405897614145650744784239596075953365201175634577085011407508199600804698888757823170113446895112694761378412402652343305147307467391717137747921455328181817714679415812923227742008505907961273289910413564404746817186374594119652053999494047767286027410571115202290811247613065998459183221147120259581782095139022063052250543189546945994918554766393901475588403345488083440747322000838324923827529798195777348765490104842942923988757252915497963306040153989747505050035171945553032221685399664825915885235771809031171337155769437724457481041403699496770587742702745030116552267975460175422116569772401600556323648642247770321704235686780114067818754876561718506138066940850132530965142432563060854197267667338721508161555896098891394419289428133457106284941426898451709220777994252535115172761080966040764478279136232263334198171207399645587717440402217772710896968467418091137322333408953184677131821692570852583086478350950228857364021583775509477149411557820116432904025616385080899987670394596736042062285618402010779517153558783025638034145635692404904666248393469674723744403136691444841391594760786215820095212767435927824636579243447114714918802311740444893058147652722307267738457550166700412621604304600972186209125948278729411557574254635316262697205628187109439814569370524995725980510206686508473629664207806810411456360197509271841237042728630926493495926753743561231754068171887067279428744463987954520942014622603075007135292706195365391194358770543086842360722745095122089015433362358239802013554580283761224534154257231817344994109817046678482015227878412395508619083500562324901110936048872126914521546222060116592807208262006664803148459730764656348889154284697205444625820554804730904105700734209069999238995421917109936798927689416180484957128739941857951351886157925208954741132715433429341870164848160859376844943050234391629180740729022056340262940275393265488845011748065924324947660892873401227530904570529487370253313388771004330230043883374722806664134432351735740968997120346674710160587860014796180543425286731983261388438691263577274355523352650379584487682993656768631179546179614379648168647597681463926626951450098297292545936682200621694501515362227688974555262703851617678339410563559939384694285148685977053123763668868791395684108491746670121102058245605477429637076975703578943489303892214294269225464232057113510047082311273574699263492607875674509013564936125847743747596109483464527323716281905859632798770688877079268088757032788431597200720628597164438093374794280710395960479159777813226980908141273895987289454092024198216578364028431863013997231187315990327438081416814307622539189279481315560556919752599819568552770462510150648621619167427001685284958272336131124609653969928496645437516978053495464690822351105212791678077826372722395514889200892416938784315385022778131082083624183826535039911272352751599395529512681324421539711340146889921847949969788784243993826289347173142675820762540401960598244397614422470259954651385870305012841210884121492947926480337954596501026413737707901615748723329485564118800758472388967447551977655060512592322857461630674755343993930818940993925492996628669620899471498522139647886891460321422653800548335455231858959043666676164767468418838298911270092198519481326889350241479515375800543017462714229791945139359611551603157110111819744250213375877004190352397395060062450123237870137444254895630145353807585217095484456799113584057779534774671956339800116380801937356747040714492106745074172727836536492600093615446614427798996768991639880991047031551500315988695477293096093639500983597797436330097811192966678856300585768703793641618092261466661921502206533509559430530396517623284721200122519001670279881195643025148316907939510879143584503937117904346746491153925850638335696089098717432467127963989798492262850906890705602117679674550135191254360726889088742933451346767026656549066714921347509705263266870517177843711630861516210042816588768888309387054944209909256266546503202150111524572612926397875580427575650392276710913134268351622056572318192066429748497012627372975656509497114664848136636729889921491673000063710852940688457874271610405262382946675394070920830292676947169676580352084931023341685059863460845032004346871367473505406049477508507082312448212940668850758781122096853150081925658404054340458449193571992586306872531303922732627487206394980733467168942424032591388128109999417304834788105761154776018816702826545646130805556772079121721139806919770278879657951619948498742636736534803119203788686579724940376319978893525326429765003275977515894061009617336853861496691036388265080964326987236612897771618520281289815445098463506490190222938504618222852473504212529328356024445232891107605709509691053517307813384272423988043723009738639033710457889051307793859761110964862915925371190537485515930210451907403599577192418191851142461110057261145217517881314020689108556291699736414495987359868047132625625020422134129834908399505243719677779050098176984632107180653878431867621246251365619309891184122962049416182855068639376250509130253906438966096221439635746392260364008770497721860025084297418241244663746547021737259165573320327439358716411297164608409290046823969712852378224466431276848486729165178198298237215573801630805374221791108759923609765460746902029228527474894152881928329219493756313168705227492513668067007895594520535210989012411233951680055033051858512505067407796780870858137634682632424134484283553313010302563067502978686294124938155948820668062764886128241529844397986093851489066477962198972997954913666841865076947865949225986302650296479442971834972062295647098961569036031434646233973586122046180793311784700484853441183174961218033030073323197810493714737757342413118107625589125738904869271221703595065186951097825993340109077754877908783053807549291737799992309440506192067936449862763660449181305031003058406136076054925748745042161600287540847749510521713660461213853660419159470837184205404652103583123565964727052950141909522849200399547730862710958374861574346550678730341819881276649385400616968262807118269645838303237700767391126776462066025124412813377861096786221266508306265858131286354457259238922626424427410952411135260223590045957968475176155008842040442509868503852664996395195806750584978558581410542531816889105758385488826613445441523842268178884493553983831422294008293278118381638381954665075199807424064501166742670410876638160797287762772134783586479070711866513240941635641834487431025592619605709298640586225905299565606907659826623107960485112098217406943888518163384908005313460563211415736640478214280872989483852021251031413391523319154067647808410461823511399378288525527987615999127385988056692176242488805342618107609476008459719484132790565911693152585887864805697492409538918332285115200785055646981639040135834275958989413817143928827277458195835018641268102671376913739911829529607196492284430087053686691506994324652651187389265106429273677533976090347969514436428359812866644865971431888097015767357979195426369888470887568178011027484156968434923456017164303565274235235594385243197125918043883975649967569502415539015406746873513369047260490947359879295508479697333727723802397650121761029775484444972698321434035126215857174992752108162739234907082864770693778257588087429614628810409659848928320204829998132369298103442878631178779675187824172587338641079423149755887662890244062251546348216518301326111049471229638817397747110722018444498187851668604009534663250517166070121672412551534759652065883628672778630522513009756970991628995214731699539200588463248762874158095446727473897327896073225763223947492776184326344745333267581942836048573907639783860233737970624029411533021983208391850767191227695232945680722868466183151919769114368350254534990820697287209046506339830477417414186980386920783710948100588157741658761674996927318986313459617339694243567511986011741551396596478078885060584221461089182734081293440730769101341930364127186382885326024652432798646246235235020570157676625926767398762891816959341678849011317617829443439726618697065183859442405263108736855282039219178006341282462710093159416622591889807303270899061534789712930219180857861534871010882803611996778831590204572505897838696577686302954762987348584515929087957427492523211060195763013737437922521758212316763400581191314413394774526235173785860743815401520864747756045171214334570419117878606699192572035923178049994150184284427138973904859024489845052797037164002661184725467750212280176941315265795736472317013785367158612511736532454838573933177660160129999154392149727758311332270719568741293454815472159408586263683460990922012490111090341164318025990191574772306435706761968016610266235768191970350543233375039297362780527922992722308906870781171568298206587512805690147995940244082636910803833514740790596279113631779855184195669283173777406820612420355324767029085790767788332556865181477065484463213742173030190356991863916951018287967117486736443803017453549423720030775547903037911933497167866217056309133159826401833478042174134410273220492145689254940759496106463550758535531358131608320314695106458826248135817326377787318006278206961372543626062239641873014790207710307258315772876338727882835050260173195831994983994514805714470781457029433266821592123531707309761349753456525276100767276652135489943547226749050392940495380883816996345020002377238334336402512440656752969127470332065439763942851008318892825909087214071859974632884586024756550183125070149804581165393132227596241426412823918220597648754190292877748755356651990578977695202019861284803610889113856030688254333114249010082132788799065076404147491524716281073303263198265247066104209172728545748075563577483951263389951344712330901500147654789184586059210690498587180536628676001491923138243074222973979492731157058699204091482446548622955528448680652512741116338485846131666768125576498015154020131909269861220988287332429470139491872746224407838681866645561940103686760035540124816965057281891453847389328117564743286551050870719642483971391144967518077630949237916360585494972147784599878227548914359726241203980921776188870020399117909760346520033293682416415851849071418634940031899744654550874291417342106790859967803954241550160608385129210421348137696040397342096270175456838510859708582151008965704093201127036353673247533751901519787657936891084335380678969665278337814360417719569960408605150443035783727345120797057774854398540694207685803603707005015697070850701553184227690727108969393110211320416537015294986285422176101825008990392128721534387022167793500428675106149066863175723892433802123272108529325291208052858105670438392741646352508587419882443282604181630618884187884911533005420686687323525879430641608475017698084896775966007317874102598967004813553972190196884736995716150949808492587642426297324667053087861213042434831230214905100558933860241851808164816276904249658353877950208856697156692577696294230654604775206953943140184326506470594943100352898841399617963948994673204602133257674836367955483571311105582844950677696172494298701783205808215431949096126111159117061260934364662413752484223023483475920707927778703458842848127976879401313068923164784477216339871916508808402719154935403220351134473739437711828695099992192454630962131036260182308755714641633822457118420200094919873233819663592207453341661060727322522017015041259505882278690046260039002592560902896017198622349195541608826842017183061307175097844907537881204542385099175497424180825554992460565551194784896967751045857830242104320135435448843685209570108625993421851870162994706126664704107833094981363426931956444458433708176541119192462922183558662355301509354877528695646081545673481656097823281463098901231244563823535465955837831827730571433406810968409548726808245035893944270339054455984773225136977284481324597985801438054727411858578493442595444758055320808295301681049759841347957837394873813322976453677516924461886561256908077465830705189447051905052659861448485792405260026126838821989228682441166488473824603424546526501870707270858457268119431874647085110718022708284525684746394731822348552451370416438343944965468757717634268360556840013434211414306658309645330196215248514525367133863227791777086177542554598473729447393028910860285839665476628516676043717991809692496172772306387607329890900970616473875454932870241187857130310586354838128772366821522314037614745116915029585162954204685926598020351012383013303207393453238322864091992631279624404090700392869968743649030116890482672483458981279205875162050581752208297106640771585370498897309870245989647925099456368635150691777012353013862011976686428320841804053959975076025388039677298190954339557831244680382641793556823806670712320420331991349872632186651557199498554046454953312257100786057465680929250795451515641988790659492353660278591905458803762473530057491882059174423241024321663285344877478752293739770536243846440297117499809596087162115184216290127769979967576141438857192038450061686166853777782973030822835997094067231230833504364480869481920775570526360781700908764833413322684567431882207510453674505854784028186973851116033435626878448187956779116900233869856328980326593186302299308477808656884673247321811983041237387474713863728689512599046174145479202475704663961378226902248014879910172980900253689069210811245650119513393578623996826305943732895516930231457360218467181637591542024786059930402899616589821777405821116301571702864289561975654764825071508143646177349827105210274202016357700247481256413670969164878909626117619397776886168503091080501429325725564378933167510122838761966020299815255546062358652193958340202581958519179287671507500902014388934823769522770421717621832713226828315741535785888684044486367451068715561987515959688767338988409695914999234623674569563612156357654595492924496556080184034339285476007680767630820714245611941908602909475299477853589291386294077909931260624145462169512311649778370310004702549088696150773545220760445061350109290338104235493447209059908875287650572888609864230151585103189737249979532194556993719959091767543246432954819246296285170562372723888489139993748499872171737007719261364279396690260561331904373985442193454979009570496870189610143159073006965433125655091841540713754448762189274915686315800569144601154023792700483878441458025553744896931623940558138292354984974697787133147047372589505648916455234847379499462225275604715225478958489184181615712357864178764582363512679036846038525223848192286657350362113784837865524945362800881744913828122084456193019764920903904845076995031153025275262436400088604844212655165199548707915071889196560037456945395741025780444722173286320329658814841038635385098615418653645734516261746996907770216951004819044492275160017673621265149231141565546664633633065554620320904221076043874291164627545039973066642111175976701399270236744860623810230555157043214418799491153893554421775490486533767601753863019154963270060079318622964790729520564523880240678726645269988562989418039752233046737433504768089548755271790846846312586091591128839882998842489330978265434129055464524938507946926180490128654235722751416614463286862462725382097819389797118603364772732488383412332741118728252291773339653571686841515836863112356902387472982818559955254050270295233878089996477285182255960656954136551028334922768141985265677446727737097723933912983932786138017152659146172917760214900332286631900420790446653061689765675674543079994426443709070099058018161560920736488783632096897330590568854167972611827515895225606533867670369228197088099017531569074160547424148255547226017490917864868948593559574700901879415272446592469157287163496528108234473439683175605282952328302668903839316955361392221909078104635065977227136735939509955995332028063552929617829429155924195001847727321277363844854344532286748390201576321484633675177595238048831886547253854560166842670669797770735158309978379089866254624567517239692360372279075718256043723057429292737349500634176688478616078321242687922339249899129590519354341030521401998907972212060345262346714626092691124281440208320384845039480338921226263247798764956964408266550773259486873001078273842452561820664708689795085989729892061442963492104224825372081329166805740841718318724610839280614880028433491893671307727554762564669174201266567582745149931862510367853306277816884258954759382513852476309673447768100910236485161992481926054431924241934854621857398062047895556416509907560834907428191471392923822409554698915712125855497134770006700596007133629831636258613373696630325627235040297629622684077028378379818111891453208990502374407038258995644741373041850134643490492758869116491063451089340980428377431524278317883312202843033680007824446460987932965624827322149360052609246042032753834828925532920552386300331821247109414948176620877000486293139636875002950397293065731952794421079246264203653726818693095264753952049561202920895930796463502840571460278881480877414848840830377910487329571606927902974630758091553754313881808108615138001464205836196139040548378837586847628468944289099845643570049515188212863097082729164377538039342031310863093123897861939065032756484445663601674131566316907392092249624943585149946264915255487435232056687916311601534621780339724919738479222914351542942980049070542490989319410102970769672982885907278268381491586156585841763451245871091446770418963018913606682470228766843139506024464878075150823235223168333752602798432150504352301829711945418612747636657068789309758800161414980332226640147973249958564354324032714986858681979088000186288378670304098563603950699746795739137863645329617144768544679441241558652276955877872626181063379735227458388977232330626279996912676719797926624403039120613478852445137384603388973080679492811271441633858241094315366266061560593414403240058576155704278393497060022552600870743963879606323304699350398874953338530124003526883662514620758416998482428164923124088046619947836850072474810281201946123776778188239976703554920883765888234665531342361632458627662882651645790242254241526115140973107560948619452997564189822406153670752071016735556524357764115576484465217722714375781563792730133852386310717417100605019422750616257475888304805063688146913584096668520347717279714324894689053397525071630338582559282159171867306339515525955829687472477091297385406841846054492322975203705702877211459407567218777026778264824177095559934838582214179696713405076787131441154605977419201061978547360980813053985874362862939793907222120983955232849601928284034505831040091350998674913525787644213225985678422698387211387175010636274999715670035394641792131867769517405535468617997931354010131351250759060191319139946145510712261772702654994096298576929214163127304214707722600163698897832516828714025594572054459739539765756073855856091515810478341250916549080711622928665254314255520054074432952359919387032919020041806407352936112923100069269385353475235566821444508691180834119370952025922217425469809537680518497122864209020328682053477277581299833089780910469656320551362085638980890195871947998416395833266077139909442516730602958437209724034232737161567795627551154364474882995742273437361103084531797725029128604285418254314174531537111685447294319775967591401769530286558423177166235696693674868612363151835981353983771195062743279968530917862354245956697066469995253338604538578856939861532045444569184607731797051135365304226065840230607154536643667851735667170720471344882752199539827402466972331836384274085431984049495809611342997766980473632915947111195286588522503989041913251732019649673346695456725492250786077056985618075667782451167958538439928601935141316546775009260056987247554815570587264803065690490863258385090884310241465484668789009204626765284770958008590164155620766238545655822196103944644337044132815675710381540531672352794261965587399082139998651809426743313609564982799465089483890138845942329026727947987183273840390544600110520811319871189722497037442641977708973161325896482039387215885684541904323048903257018578517911301803970139640921456478329687178632121583906164752210733588393956171534326308033824117094101284744702437661600288884836597385813439644860745010428440751911081282497797476449366759533964729888100406971045743670742535340466467200520858546024615455890090703033283657800345574413177693292952953541970166455561925846630895654850221887861423777673950050896757493843799203205633790440207194104429993026940622687082501499388073098236461141912315019358972245268376674106797591315740960842579611283277266104408677100783510297003497796672621722760056996303700249468606762708689676688447066601378580393547238914382773326011175025582517964723534467093631860107015842404525212922633849365757995017335807470352449356411835806757715479178810363630188094242158229674177343182656735038861785636426350728767545240494135534617410812076787882962406605612011437508448536984308833134975669722899820168300955584755686395591049103606094077780841583694965803305143359083039047986850386975709003938610687754472535821181929897040373745358597861719250484269584638279364665826863777759940710893278139674513237712113983724722408604266034203657438079555160694490827625158542177690656378051059320561033749041816573320547939048051323293107060908735687808023759944150377748101819793726936751522443809900355510887133610681267310242891423510509448520420746003560157018673793363020553065705633840573351267759912387191541265620593844771845500453353970537354556153979705721642867215401817062119940002793213877786883630432384749258128067431442056619543799930330593732530282964719222516043085407021748099775903800524676956754220722001091540873905979833353054233051233944071203458871273539864338572779619210697291330017692686280055043969107523237473672227292767738311313437262585636576942395877503342518824000297970344287988850957456310045173626515493815781522691717843387033445801791132784380985892184707393724050876565508148188611606348884788295681887743270137303405157970930244184982107383435712698792286585272433952469664730991271148664072252693641486796720998443475792905808931779982250054086322346414044397679527827252102792363744344923271958320780028101552865383514653827321382589108864618836106361812876960034687812792487999337632897280880447052470803861687564991108438549104544947418863500279973984835658864703616962145159675566922557302978163543548712440910589295998139151892726522644419922411025394924426234131703119408091992637740690146657539222859669338834169553835632195783775725634486537990916327166556476413583533857968271638164969833680174505260212008704096981339515432147276302611449388293532924489400423958720598142155463827544891758756230454754734709788759816689919252083069776871765890113398351502079563363430804474104631474458969075536305294745935302491417929062420902837668382346957192371389790572292878660253234397393297144466529395021758337402083989369932737807152287586613644968331964597905918923263056078435434612114256310515547468391501301319502979746838121762422579827770301524126625727981639604820782344432619184929732799872778090942836521375623463992895725603373045341725222135600756054777655606878015715004247673721830449125290817026623374481585585786917050109186334212569727566360189027038963254964334275438128947031768733259079323524561961011225431115622346505363283583799794763831610801960591040741928328299147574293652909801996360418943695377747200064686837160031352540081294875961655336973516180728717717797917660978975269638367004306465759055111192776977979450200295343177938971417134686509172847947053325315521013645611874807085721405944493830625877852120623574702833402084079399269723227007138495977389648775615383602624676144318820213168458205898861605505723709074072900344254069707599012071770740085468684514118275067896565633339808194909773632938025399606815058558890476810073725561850928593935266156066910624789815610642776074108681260505384017296134133064561372929040370125109546957552670625039388142951456368396460798368204341283823382128570809088529077669201014960927979797582964639834323210028569543755031635698421468303100950748508284722684700294535864419244821657929130210398465528288228054948408194584979630841253062232648692068198431009744479726510431872935111909728240032141013275103154139618985533252316012390389360797829865693475236225091516357920966229248623672682249920995070437744493649954278188124908951789811699133542732704814359037493691587451955105078741747834139091420894929616486876486713065585216297165856802005634963117540825857044314513977651023760153334375296149851593490306481231085876995662516121978326344646981202276820657708662268932180800780326487053368834183809255327588337508759200178402558801610763070446281619610322467370361065241940162258374703498089789804082732831227320596864804412811829425849060631239084256135748984417587074869380285694110079222897918235815200454374684337154162826137537191174645266814544419956510212817011635817950838015262638199862769989794886477591737418341017810489458520568556821509134303263045873203672134791084071899195364151763304679133775364428102336879059920816915956841141740829036726036399235915940929115840577607085807788835520960007297998261272313292962569373409868745497093405600038481126438812713713220559751451009666388425956235803274705815825388753869677477349395454297212289554678406526602884922591719607609504976120071272362730128901976471247149576400835397025324219072628984322844822057077052120553943456272922935043982340491013583134802302461458486994150316348512236108492563051713404850814141668508099156929339119836109775253356254108339055182281412085696501691212515636736809347667988918516058252395906926673276973719881508915861961030596159507786185088223927459938220194538506191456031923749121632709410587382089540711476869876594217314492699480220217984067523843668828679917054194634828650669995401663654540291005640283354073144651363752681665032914517227004570277730731472938968759201906072947188417304657472168590826641420589131146129204673903491042986226800721071942022421278202288733777798540599164253509400464354075457417464553403896506752808202495259998723950505990284122350106224944959633032624453117418322273644208448791004945593290009938650519435025535924120512598996226919000123415713042175815054402405240077604096883768427577107364953211817403819591503981848048223457215598713916365844946795306493034048943411015527807682216463586065875799893670946710183405857863936386113514241099544534471023105658628996415036593365129310444517097047671965484342227361803695364200580984357119010972938540137805016985748062331474376822162486169535113250039772892752646973255812352932506804054459352908277883450976021663425243619364431699712176739725519585849033910642825347421169420535143109604416916638700461733438139738900069691906189980207216228324494391976434223298668341626557225185021722825340598636862374521607977007725356412993651961669535486231031270523066894206223532888430836197319993797170265975066645924390406702186067130240854730503747791147932073720725155027484481700524769383307530634351239640602146929157200075724516338206174158246913334754708635626571440910635660795441313360690325781808255124223397710686350568602656139641051796605598644268420347255543467018700671912084927232296028686419574962856487728144324109882551207520137853145183947218148480848558568689315459474544485334666549520941335586629526732266113480406353040570808573639263543830540821419623289532729343577913679218085298525947635742550486763102947370350392349516865558828633239047478332987273699554906883543241308174159193624229498853122374914944320132192708334436665477089851531461395344978941484761795155147677448003878805928701689403839592231295352397643310564400377140952870425257050424821147938403682968151419142962749485563544595810392748086577836759950928328498812968616221667101815701779166447499591158605774889304046505926243507452545054919651930938567148965579338910585732246043590437632774764015494568915264762039101232101114967783878731637617949805719767902097482250898719065129054190132587639677370680235197964759251981627607108014292063766930388986205414154369075610015031134713804539570080442921627276485632028061327179959262497923860378458977932905072718980903575214028248101279645210938031420238280032222286646346401180472273548830856329862405208862655433038595699186983636556021346558743027838668194857792643798498875288299127666846657459509947359361199294252740653914806521136277221781970509557191982685836864446748712442003281990961188248432014431122054847285099417354297259893671321887541342841861103277659621733872723946544488692083616610805640920015279795465709128973038955672507014058611957791984831759907466448655032626100044257825201408120309125823101730453238693968231473560260425663305526209160913059291599119409509653939332066570385393675822947505217767348023372690597710744845177340456226208093283725274774657185708388096822767619426350104302667176003304282333462101797293959700733914875360562771662679011187149615376647356123916331192846130060939142515649299505146482246842709071683313676509806477237449471013559350926971779523247045270070662949487552898156723643089079023152414037914517936854998767115411021392985152566019489037116464611108041438862612911699788317379077961315947405113776915421884257693699883299514347696863719989611647619040477074296451690223279957340716363443562905752930453495278419333844413234111432231284963073448104580734831945065552083943455613069457853948651144959183089600303452564549722695648071675225073338299876325858600284510118847792325143612162773704232932394658223081000393594591747978753956329384337047706292122757042738300231615973139225101095529902166690268243926871483419453458628789971705585286368108702144417481291780463783581089113789386247227579222612605749328321990531927139961309806805862673198311324236292508020672673345507662120576533030071876177518302984676237623667765544529455730125592296788629900375328829833669357958277946351205761193715352391961497196076303009511702277319819644782333534463060769187019818778733118530946639571355972118788588851160693149609970197123025202518142736525619001055686280039824723921635096132944250180660874422970510143674884378692744085783983964021165302614453518743339552634398660848615961888694596285738941337854914517730497138264222976340420242712373165216633260850838666495524386308391085363151406311103630314444206288031854701283001565463315637967267279028526834479888484004225961365021030178114926759733224683428750052534936335121669829155903802725716770475211902726323022728962149022694715419882340705341505195776800482066914920600960355880947847673841386953213721400728361899071432230204455939043058338703208909001949348281052763747504896997277727203801402867354838047422986097495489585185159358857118310220615801268973735945613838276555222064489699191308370408625152414790217948659807745677952734901271698328465148480490576982217889352208548795625264132250514020507436778707385698927073778746910037709153846375757803058290881582430872129328782983498196651712193617518197484046575936426673755733132064930024587279247397812460346192848366795539128959238041053480286208775049781009481174775023057829568640848127743285955044845303585827773511790705999712520901987084598238977552378140998330410761992183479886861601489015224303223241922336407949048047850890362624526576265638654094286427670692042564618737388529633388182673392648134316527852006628530572433149538303927534528677657679326938497030481714465086379482272660275878737843023336794783807664462645124465034882761898514433061248989305498199748649912088113269025019606461024890394152834747027047897484884617094638232637407819439910454981350443384065538325940593089981874734125572819986310079968779670959956200377415255832171047334368898713890450208674183544266047469893377314869671314431268555249248930903905945811068848561475106530964414273953651346435639109688157557442980598525543144882562895552025158889810495860540563792442535453685787460647827111688204443965943899177414615388204508532577767214753070430358744864876926907038057062568749393274749549379298181678158428117850046908533935079329749283925871148141339936878824172344250994923125632597276255924153872377424042695318428465593159446479553535560635970483165796730189403030617824488961699255832276235504062420326648203663305001404321324559017573820915538143890501116058858715541541308423663635577622515300422425398754979095158210994323475638796879513393665391213032318836306342622486560811182868747460503171395703329101500229871595038135029677320966085510731758434983305013618947513469997737280725804996103298393236411412211038581908640167398182631052300204638293408877126373381507055178466492553490396953675234349763305669946702050950509787639698143937758314544842413514272164192005640137036307806027871267232468889900138405388498410080210481550030775190473315397871991832846825687636959540099542449331689458366856036224477339167988373555087661499563753319957797196603680692837330731114312730151146963906441873092530886971154531796811326897995156691513757820091208345652085975002692586002718694933800851301026247818146821750183017708878726132411792205489344776638795960778641907145348072916381330444078127548229833545427141846669457290328691690919954244978720660041233127221944469142812269973560153383420759030804146341344236822346404280205486120472768771039364051173332068244116318520235873667821710596455171369432810785750026534338964744279499894133520750206005527559846517344149785196595243909213127628227463947651891656890183426656312567423556408589023824288730985329181261990752184464953612385594638206981345316793324788144843602234803009770271513797738621554658265737082199230244696420836213540999389204663753787392775107388819961144910252327061192877119227679931842981069774181756368523821879352063048812325769675392445777633919199949609219463977573031004030462393740786856863089728538666568789532447976692845864913443711578177709590072689041314131668926794126887126817844509884471212742877992702388636650014986869299057953011814322430617161745309681065031407998741664552331887191459705188050239307224307474084762686238000333497506255221683790886178134931416830084162261846633916134569698578255975446630203679287390972844960696097712129994243878448085913830678612301800963771025682909357022588622741838754550510474136817113175104014794106140830771630165907342280058197177009687866365789624538507868730031415178829659563877864076936901600598986239596823450803924515962613025389052565907450573827574082452873414708848524798155615638829928066448740091066832511739136599243429128520332510032866315698617707834493239455271641554869930542670736739938953983180504838740986715476042235556958117159155448595861732357420265426978528025033575730797228092500887865537595874889778207254544257597219294531830368525703592726808189733881377793693643520382931698618471773062677227795535133059383914868707939619455816845271889395023952952172322820522917466964688579226281680866087700650893752980326256065530247072875333401813428261316018888661268726541557932307989805822456328998996379479334918634696001122333278694276013697225162076528713841639772085504352572618879141701542994373910242334945951347650314588474411730817638271329203711910334062027533051160553490700342124799614601802849280330743113473263700972307352243964049944149963212436236642776020521336746408274449522160750598374378754676159597029639465231465650009994434393315514570075996470873694333691137329413477346253827979402019510518952563789129896571252658980751404330381554929591609968524491417902189894153088319660974153911918259382787138231788036147079425738686098876408017395750136676608558826002013409375500912519080319864968643244009083420834341453860737547418681743153248437300368070122742624015568784664276527794223039432472886004195456317887421117645361612121522495467255289678429276519072737679709448445018708240072864905448735807787329009300274535968922916320896059866595177182872619971614702801386371147337982468828143424493994424701068973719790166446386169202988570761488894687168562606847879584127674233859678054685213908160650416194651611684005083501254286464924768427044206563977239974097919199685808756195790978890355521015678840241875923248616148467785055313193018256094560635530045510769654464580824641546113459788503719077182937108595726313785072519898972806826125759734677692147316830706654242300491530794767281433918946067807716427449851252560807304032926115925430430454637933416991315300530702746771233589588334053731148016084364702283982211209414673954323282147792982044650287647399301184457097409265376159190580870936366167209232146048663678967552672166886424806643454171207904027693100753181145955652256655899113273696015006457279612024897262672508141527613139008855860904779993841036224545434268888249622368712005573458499029495330421965594339637676559880200894335037045835150218222273580785483328296276466699117874162177026727488494681891080674920945011389245190136533828707135364129791489410794846596266048607842635475410742195686782652667221273542506690371853496235770737146649949984610169967154339850591871811896357058560522078590918747642350075428314874297101917447658168123848138571796760945152414078436393313588097371119307358274814071760482829940691381133784534187543129685190647297630299475181952926437139020864020387469133352350082268453442262158568684784415670555833232909939916294087738147685789649518193210040983320422226013323322496206417149460717732158171181747072106739195218080592225681314349695038543456804861965018772237013187852962611504895491219389844859611788502844720129721785185974287655393255695246029386446050135743824723147410199912360041034860071151659629303483335989368940833816148527300894758058846112142195916213150614084945511139453761709811357127185919558894743869762414368398968726243947299984279263112952715494219004171332973254822753219413676537310303146485088681067817627835860828041909546867527749850031795607397176302375256081484570200408003409114731229284720747687102249715031418747329476125537340411977708169573840717141425234019103039276977544518688074917680111346341940576065180219797083503570036680992520778658637994257803490494834655375293507148456386209804798026659537981630120182408949133782990236999433992059722767166832797294757482156811407560364713963861864766779758187487296917862957279990651653896556630758932348906205783724610684785620572142869734437647129700647346437584485346989920961415718038239852218739568185859316930483656225164750285918778320950699208783776805867496210506771983487611897752384837701919838660840036930705674295238730553186114277387904591488645460315384889739101757856045241147276803274310633105986202166569472746542559360483003375957959971929727455026554548593409944357200082884005065769695178124152600288812438526443717254887445957530356848863398805061116864196565497185198498433021862746172486581613695998759240402037026889972150930000577493198603665497486315032943362903877318956835029365936450048637262219416821470297147748551861988193712831564694544914351522833476763034266581417758848635053144352175968150360963963391046419878074662522890919372500679284439394207069455005552203855132609886867048485693156635425601969430093089748062744220414766408454737535362292216113543479621313289028896584936437587220061126171106981254548796489062730042902840215000341098577389483450073160804184773765997438513136993991833489227719105504168767721269627088743990031576537989572634397367957297552977538554408218089799061904736891912085122635748315185848030118297318100670278830290859748346609382429485824275145152440640442794955574823403336114617232356476042964654368823177368537077823152790277214158805471461795855638324968996125863193373628858854493699097213741101714437309605793378233112746262745663303527068903277569673662039967816651472156438235368406035742397954540479893915064665998577850815897707352167231473448993309357728019746052310376702517857628441822403284096688008072948963583117348630243072190533526430028211311448373462180011465888355017715933091449097416588308160986287733279768073853805962696404917626480598338280966150837609566144537592293803333329409631640499900551000281911387034296592268927573981878119752994776380024288394668561377957889294511840592083237502628017432097895770323818683482290358031055054746718790836201298733769378904421212841113599937858604571106787789394292509798227251832161424723826772788700714655428499644294281460881595883603032304021940568136837021980212618082526690941981208283090187434658795866201114278217899048597432708953193686276089820487706217551744390787801088386006490144451813491740977838940045334481952857719798775618281719889534100274070456055728801059479209704873600432873458569506295217950928380754147713199749080501131562046350557241569862842064658254527771111875621465137281349456579573619012836911094131416719821403335322648051466404066540446361304021253919416513607923610951924858940876284811599421362572204775378513662625026301604804315194505698547108158265081361834731895842057741609534185408684133147020417906691838622724629685657059683230783880483395957442546567932347610289514684067583864085741343179888415729094187159678671579317173810854768510980249359794510892293903660947080182288904925082360434373480877895325322015983996258822023087079956653297956890844038706407318547086199562730804651980301825841275977282910660996076890240739328877562024935488873816198712071691727654275830271624771481038731926733676248819541409197919382084506363188569982352276155148482420358579203422543873680446757678748673012129305187284826752061975805138385924494551138649841121833595674402301103610586054486204945602557010782528789855532117952059326229917837963250961857186688871464073104900152974681691810981982587309045378019002913703813019490744296980511245840325272156805565305884176949006820065404802684402992563918130463583567493659997122475670212823898456389722997684271790038186335364295937830646891095676273953812136595044628822997193981211108275253737847752439437901672879254174221996320594982667621308858787019149051226610797066030063570709203046931773564943520002743533575957969687584725675338777246654944209782713968689656288678148925861152101083937325963836151495048608530080023454760180690463438171699423605657489663442470597492698312986214495912363680947457114865817254475433653032854721212513837598356034488834715853415602159472401067022443453174663180267882206226919064455481925711279188285433523564602578154782000804579287488559350686212805799751881223237206711558176701625927784733917654561316760300882134385605672866684858379817089681685167056707429600685990526156868294289492821492709168873910367298873172793026626838200910973008479057564997532857877944997418530775947279592908950615581119632964832417880683332245051708840770885812667106120592996092172937443663375999134292384897619350284902462305906886147716129579329848069967503112886246223389078239269375542795991757923285818020193742625842682286614769818497043613941207734123369107422819873518767937431929554921489833502266260927666958777229889463319524399280187699577915305757474988716086476826117068082662805932273332090202748536398065779529935832363267202511437571651827839331382992428512440939674391528985914027400125445097453458988490923132942570757269782345275601676671164093064964317243207805005225370555915007700424503200932222061921223551421793731133387482265360072046467416408762819197065692902409059047827638019041578062700475044377599492925116612659434144044211614663536133528656020860085747739409653396731090772837212059638942065478286066318462011643480445059432139933788407127193809883316465775552683536218222668854705271730360912652423228329333017224074304471227177783500490916916616095987420483629636827200937089027655016447526286872596986381955658941125813945232138293462260771353839862078721383397322460409438084407767807041744829603033688848957638344266781838290596163611917524079786239496493149849417346046205336848950054237559136366345292577607512027213563432446894003537553725288459858924231901740554146669356704841506933402933776461235966264786914762879909780832051816451668257845987787551479199420435342053844366495605186780857723992746256844113902895252800705312716869947240407909508303119718983971477259072219212105588432132218437911692699187622097219617883938243389423675688924180088392839770845161946976992151818521354937985847287262844849156925927568140343286362514576578686279682703813215808025835860318831351371050939021618230578107693120820109260599855756553301684956168665525522423668573546938392911013750546260759893215243459543362520855403774287574698451171093745582976468791324971141159508397711853072529359620389615907448671185664461444082412639445469897918763304797049638448559904043665076476690424230646146400736635782268221304751798374683955875028304871353421662735695181723490661843288884581302880484476891034063509949838488797547803229302619220358627868750393956546125573516050074642912313670160899291999594038304776550119467525762733299590159961673620955564489703721079937310479239566934771607570225285941149080831194360678034214074183362833803505728362350409487477885173241877217707041982885324375226268321968785556558645847265882339826153809121343041590177462818849667278393735592714174044186684246216442108090994782328319077869167531661047349570941092162700745927616586405453697098917663982394503898767670517251349871568248493337967029219333678975554214034424567645712081569883597099808018537596472604645509284257304808868280760373187020555008388348819757248490051010273484636383491281893670949544829723012325249775381428908771488018005272517995750144423434302239311736023105729618789695562240849133111928543324329471155194704212928338211639548232481385521890198856762443811857080569526319139410949601863963267077136606653385842001693973552241473656445553999763191468623895488078429088442378096691535124990260346234133400308633794186106223008483810468847153040936832161584138800755238214803200315210323870380381159548767623929008292824083138757458131587971697976321256776182728674953229877449052030828661333081800623186935625078408066655626408214618797154979409037250545986529788280838854898696066185629545133512182337109061890313912946087895448742070443966505248451822817848791255715840745414397445258106847338417709352955633555599217470774452608684499062831462336696671539564849158677500249391657144187038558616577359605096200894497038834263448804237247921206622501605288378922330676366784717522088226821711496841476240621688789231546328265892545026365537060947238532902910408592905144925100720567430962745156166250008700465568812229586389604907544734463812551499520291488091067177147140333783676570903411882225463836716643730671992745411571877206304063025972021563338794847151929734508718130904750411321055507299336756906169702856812350136339130628684503616605925803004675819146401806902490867819732426850353916307004082811159772709245088169652021207427162837446755463713490782043399142643087381504307483032274558727869995828332317256297019530479556846282524926872784725949732491520376884243031077468704412552701395233318900161299081816049690375815069586194880886450701995769717620955125342657401749226501131690666430998096539670162208444940106281015780599417544335411198804530601712772946428127689926478736185204356654795509726641777021516437395823273581672038935048017141499337399963262401961521585301003765153198790280796690986474981463764019978580398184144804283370465739125182876971986229315602928203765872092076524398270591452801255641326128717986692634291963527566142007587629016577648169469273072376919760075589011901357807476096288591745566219567114865283299940883073813465314163707485599306764831428835058025218402425286230997142474698428527002054421485933122479389425565568430738103633110885371132847742127637965556236193191363826158980519299751875294644775119864815704702545230998043952827726403454464717873636734776200878263645879872392039117625388178740319801639116864913391302197150637142290571122437863061239238092915924804748457116556485399283176221972923479026986213327942084796796108989281240275288380694063411785883280736510329829795240606751581199575201403893805007591066120054763007505508844427273754197673378783926281752832207974086127367238572902344876257177374936176415124843742505582976815082277550628576755506572219234383898353877724190499108437387378480732802453484182872374780948858287945887140927810016187735703657263509371057670787952608840462015813485941757635006309542363981068061957814656805794243946286324038511648861818621064915986145638743588205127844830988415412418944052390284053637341082839396820898867975931731746065102707444604578527267393029569476830943205241657136725625545679864798763055047622925959239181396610316867891632377036803645937343025268998385303302080002095443018475829282583193724184230731692739372251821754356856273379749454184430821089126033604540043092212721781708601089997279101042621996084404575152178794770353113545822970201629509487221500658324538268382099877860276442482146851397277157215061727807716678414101412597763031647277039599238311705080690823777861685066714039378658753150168048180320809764584852159792752607638604485053297796012988808920877946448501865694899307453121557938830292298696990116450634673894263871494103715259682558913547043237171676344594772489956229918177510096589318915154297571572431014009396601294660040137957707162255071882246074848512983226672488971195135510083102045508859748292718309465990312533710658979539015598328473615971008747521524982445867216112273493928066209821035570857958511506552102985153567475291777791918709758412128451545509882426903650053021931723539019109313894853841411302382714635476943775990873742972982172036551038496232388566679454982707389878912719448249063607890338435660500581764832042198883320294334926460217672058916502838195239112686186569711497970671115068771707997477845428348655812058946854496858356781419883949384714226058359620818945116847834414121293227906307137878884649418828749296189956185587548558505293699411240352900475952957817481693866448824295337159095787081644720947047953237442597804535956120394616249970829439936941071988986799430174462008232158647122740362231048383267869796869548294924558756512563714307529061507815114724768274646624359677121213966820570650398685611667578178052386373769118012344005723513616961893702718677441622415410879112178347711125593950480741380327783451958926762608321694398162244489874263035506074701915004438810322196039689583304166934677969612894621228955733986706794271659322624996901947102199047415507738382195787981621357864698073604312357848803932034996305578688953185747947061874624877267080362527447581355987419564116070995507111907393114253342519257566602588694129400606786641749672216443905600752147812635263047272233154367107111898528636926264715924396964961401150060462721314901365930283197935890473813713161312730533278588325416809580780818372073056428846887828493628146429094146159171205434063809182989544255732837607505682274614127737921286914269182860361126814968836802622053178632521393280939781221423585535622222796439807564593422789050713063510966980898921083308168994508328516193542460719554099658255758427985861445017121295025965266828722313060822601075265016909533183847166731043316103039332992053918050709444037007807653741179187016351849662412069442085294210397590608817497693918845262108580522472062331246222725007616772952430883940502387298364584001583658322065037226359929746044476808139380724191341775471037620187501616867402787165981922568843430014849195175420230870587449142915777699854311404483835186766424080049819745082501476162385598653949925366949986665690399245610034896282674201558545289597247906588561057824491849785540867556600211895829574016660468947877658960910645949602536087277207616389015108773006614466648374452538432471337416449710360009014319350478251503865444494875844223932868815351281286664338703865528384823393353232876565329826371435637575894089048660236786188097186029662409373864982474502962772438825040248880540655056191112373023020609749890655977428268133297594148400514609465486099253399268205800198762232880975511144785522421311950879223354970145162509352623344836228446243141130500155997515982960262455026043618507773293682142554003038073325253675104771481507812533523300045545089010671586329205555708772494651935758273860941888997853807399589885352409948338942437905139978932666982377905908234203222712752694558822445400869118437798934150491306068044478492850659024656747071050692555245859891533722281214153170820057879987998042755652357682957884594440585815628879196345019836648691985440682130034604657751529577538929611895803251065450517563430417657425709967022766832791988094318818348351639070581595028648383004457692516238791778937128762652940945344605362089625199402045712232982296656704512083377978455108119712033659406298979730364972007141765873497842475538925343579035402020840271449746847766421465611074404701996639981500285191294173963279888295795736053607879698627907269859862706758434916375266822371659949921343872551367735655550439086130509700951393095398809388982368510811635728961733895752810529858790889518273180036086399463948760832037766272961282127497358848150832900812867394869694959445195588846717909613669555972848320832820860414995019611194762558589106773019321966382521508180968125212278998203132224224665132303313505760901455694857823924651395126503370719710510813167738406257873480794079310837496514539837210229818665191939747603499125947964248394215070853388057233914099784616009114947373211064085702483091977870114582256058145546882766472336254540107571160221189412361051877767427477457660602762262960790456391026094741782474330170211967228312527521752390453909267629431515476010150840810659041054176213836179827607058831565649079188007923977313538439734602019780854234420193012651811326185164717235170404776051921864151859262194228492030600195621580509052804982683825124233959959994850970230086775775870263408133900928799683346820655118422144969011398283786387772894211258739257500339658102586229289665070882038691698880662279527686940180310372952998286448117383926713357482284767370863438196022437288533501704451633921194319512304740123235737788752213014025975158836091978218347467357767315540116891481246217516774802579922044060026201027710452029823232112952598314923826194040907111393127963265965577282330127544767779996583429535974462413882704626053510935048258683604345465391340640969971073891078181496964122920075197585471466682748935505860462574018563875993116920833986942897367520938419983552673141091060076750303521930357207958534597321225430799439841337830390937231522604210661747786584866909941228857330923435659146944081286611203189965948793370201762988605977364760814791552412812123738833111165693747866558501923982901055951843024850458839588009631726612294657901165277661785547363022212831115953908111191079939834045845984334673968285496580393020324142144493694537918117720862457962828173289273225023274329906854938836315344020090119296201431220066304984278375985728331417145210870734820631148190197326570141766617916276193824332514437056406643307316679613999143585181902513357215314498980397067042762171750830743582823445855604795799786478108351316277478930091279769308957857757521819552563920932058245196720908756961775189108896713985765428678065511578716437792063198148117346405415025538289018497835936948016412430131174436699672590231464143147101992392638758853529995018439046458017496674431625407495391286652737099323572354657790967177381508818492358507733828427541338171532006806008166014706232881295972150560401752762034821173266935917140848794722586791745011299486099628475106616083956021700132674218011010040840431088173284737173168594444804711113931469926295664665532829398622782802103165492304643165324008537394771568011547424973982967774504983796946213763110743146937116601155430398916338754571154216627627361692549499092725880370780716179980933810051013309858830601307934861387261626404834364931490721854367605890119799507499550057202027967959212662273344515048872310368674328288533239609473053655067335026777318760528671177580311945610871723409076780487039961146521046976563349913653648689027891647881713458956313285179234015793007898210126188746721857748018639445694778633950221188439477555094475536182256305680754870447869974484395347794330902203191896204763757991948096088183727835325875505142905545232543349363332894810037266065537261411159999986504983752819889759075499511057484954758252727554479930971024430973483498738778849470293568581469478456560151158177680347212420967408350016652362742942839028264405916888821092342770587992587565888256072113837793045347527849308419839911365744777243143189804264294075236235664713057866201145524746284070360981532721419607649357139578505498435411199027578508991323678149819501914767022768107206459340885133745206305049927989509438307274378159339711819594342766094094948078274275303388121038239461228021927109400937896731798711827695427805055840106981687551225065099072618818314790783752847505805564050611620199158005121485470532445417621534421514216672403924053523059815265682580025987658395769283723192106135876475765160120928508739140929374179398717388122240656095700197103830058456255040579028030910978305312801227070507911461960454708451703468017304813169199493030844362969915012209644791337866561207331652390601961653219704844830177764404489225123831237886902978226671414603513454638248710761392219477425483882477995705077493739109919408553071981666857062356803179786173473992949678187645288100142741451619756796792680115470299574352576491294878439183180122647019058939960151808983069976055280282238272361864240794642074655986785580883476673606877156565736734308106308498884385932402760620034465112217355562478129427767347628213398010925573293197265610981087930695324474966247507206858870724320116436646629024034046502854343739177207385173466825913071396792262689552641480811165905710194653504168781067731194165122346409581799587361411901707985684722633982866850117559990658593744731609630742481982225937142755779509059720261851976689740741536970043432370065322636406212142865258293294177729369119990102430384587328618362212023381606358280800924774293584774734652556209537796869852899087749504536584330390226405603349807695420038166059000906099900502643510002622058296085714119700369638077858758414481608080558158204556978551530046802102834325840284736446697365655359526269394107568914833798099179795634274077713435286915371148636370701474343826373891971040844916922036914514174665156926741452987896735674521051267657117088369186064349894613653474641683085973470078570940852107358481766309251644585490295642385597634518626425515998061574557858995415736819634556361793682041338450578948046128563028545480995949528993789163596620528176107492108941009103690767528931195640174995312179991072983168657503825398396865775164405752030963544454385744376641471998482104852635729820465928428895944623272466350267957644366107097055815581198901541336482671352230772984184363327168500763576473521640403532591926910234737186642527674271069952320709227834435403515434676793651605576379729931656648113813742157986556907241060465399598439195827837717190338213973861192930472746257759289878079326904665746142157087039325725380735750354258880489939406652846870875916441209826995195726512808516626699075924021128199218461188580462335020933868631417381300047176164080488955218571700983515334275531130426218047148383062919779283053106473299720464047348444915365199991981469269494145374799153899452579820378376318341299893921065523656261739235108073929106891332614829115273034904011975306453170842617482553282614728472261775284446739231134294185238299282693646110021424859721392764562955317730286083443502275402435659412074303246332554997103646364597046655785473648676290170115830908796458152482689557468684037807170970442569569267798207789027128299213624541164454810111826774789291900994193500506978661290113745407888752887085994777276129263068828043681020671916137990362511505783371758449901250606123556040796482324579465690629809751511575629809324605490181125175397873875800919808807827672026947592389970718483698576337203493563411778504175197298657158970120645325598160681437782802374773959319274101466586465419633736283461542832862133812506153778882917773375762365664921597574624103956964819857267167594072297838622152415273962404873066998597711117212453669395814215560406738147343387403994836589371523958731347284260833798292453486085500145689129780128039211483137623196411244599939898424143199932361765182411501116881948602309837789903440870390838592244419151815954419196006949721727720231217813810445478126654585890266866835320915619780479095156481942183398558746612804246190485082697568165106679535637788796813662434699571441057221508440542108202555965868432429467281779909724950717191380679297940807203691683775362320811143322247336708666176817539738061706799435177182626812879109224826641290276483212231189378914738440753054385000240990224544199690723605555300967119941380533753835680291140079465454338377353457828267972383926940913331511786695010773154206340513519949069984096349147885023675436717093934955580166150540499260693429632861473578341062577095904815885866231902703588226555884317190740941717379628012531763599817177236422683093007924441043170484027350717069986151385109256448942838696638829905775991055441716728507882364297904727264975106809220351163678055552945197420958068541021731759554969602130203322058588811236455217229173781669105818974781597146293395555568435764973125993802889691637940090939402901024106599622200557365422713385193545829139755577599483193747970041686719393985231830027891919795014118833218008917629764677601383468484251000438255500579344431742845400511582175695525148697281954118229825926984277550297556208736121275567562590996856123254815444941161208831524373660560933343068216814358741492931064842857243169216774716261558335803078146675489135013853974568304172168239720239552694114698736713014926341272318117331288915978960211648369890802819749576156822983169745014666085998715660015292432809646293671836817840081341932801356123202734269325908191825625956389534525914656621087363668663410344279377315550435295953374411654556311273308644473618497981843230194792142297546825631570491655941389260341491443262342891445991990275200884715317835122719785740268634081220680651364186891403920508726724329168568575066342683967354629734164988871732600084992784286713086491357016940901380976852701642624898915355453675361591611592388852460050078087749830702396713846307077308753246790654684894622216544808908390343468060229406079705391492163569417527679350313221880788801827898868684608432885586159653935295841762027040723165663102887529940070367182597595197559635751957783439818974200906464284233421369404336839386299152072371043103743039234446794933654858926783782682097744752702188830501132821609413372324168930341433891078921556244510787150427688086902617746262891221910174730905659911588720927554997457921640748342402434525746030330916637515395574203891571422368788793350906288621985245813288767090437504311799740533887588636753976213244324350710168221247082846356743500507078166403088516246095511217261259266008135782391709864673213863970547578501010625415863322554952257241232139864482530162597220731319911390078702070796778827125109482212533711660917048083139087430703502926524742279251825287370276112850066276828980218611343898732422158660213522781102617743438657598467573782118856098127054531495114640822618575150176636371932536767816739893628304922190218802606709272059116830217115063580719697930728678995073292957574109096745471219479205107456615056563558733551743862612952667528254620550864064300772646177383096806447056311099824537039761685791924245273389178404892047001522172361637671936803736126535160071881288375482033505303278905308907064727319860321895536765020521236399899148236466901972239438151976061039629469874500507079613904417387674164164057796263894778475052275587762415820426785673063865431088229370581134398035572590334632392303392052415424089923531304820299953400660015821585509069742780023208652448182407304415681695344143535651912452176858389215109915686702454565632616112169426806870439831524209762407734761664775829438398032147881782892443264554024451107558509505397422876836480990841858431150807476937735554258169786421208064790404650795668324399195783271688647634193938284297570115946102010167316705736967849402553421315663204772395247393404949075361147166270774469246217990280990565615020611691749252057989328465871418243036952581687399407142212230730190242616122619889413268744067643553436274070934757935789607189911634232955740896551566327592580129922568423746419028729772244391460956128076737272535733591425361591006307702424419799976905451946213501494087794500391466344375604437442928201700388240723688982175451433603002414381448109483139326538546936712004798396062961472927950859125250388934695951877869019741597548838044034979761130089181503221627424669611393766131656512373391158570718231663812392940547912416811239180569985568230032529614450882723025125557270204198120769828385811536804316915554118768853333118800929842950914017884288290205491380037286654589590671720727352332205041324246654922701296193223337776748050263314231256666337730668934454094409028143768829839893218734542012984877091903961351687040255702756775196604333246736813488425037869236645999644974769301707080872524519674371596508794480375730877318238322276422137616302268174991731364919262494769552571945193070400287415739300323226212188496426761336669402129732754715716340519228688250984774926121856614773959748276319425246718308243057893412047954081749226347066179337365455909389361720059745407517278596398923938348213863286432665487626529066458341248324409010733115506533826603866766343594275484796430981310835890742309477338334444408499966411150463973091003662122044135711232831523596375457243858438117310204993765302818335479165203577137532269501053748170639175974322768569863712786511159841422088117861482075774282240656735310507170884824552709786096237870023924166354158777275462170819124375514302521699550961880241829448618189764934778412817736259014346715224741277369550886885671508937937223642767873078347516693726599517221910710921585177906926340930697133928992368519329161807819579180864946123843444115466064686678389034622505672574801999526378770361977403896621682292198592335066300019958506396908898689442317834946085411411885047482189165983901245313935879653047290977157001144335848265838766774203214848942656043480348253902533803719456982853453430478363714165102864394776717967313591229338328321043109667377469511828569904668020603416986209966557334902881887430070553633922674370543051971502110210766611688164258441048083143332823715088540174818701683568776705776835426725480855724473336397790615233851225525550768133876503347268530212312821590261195287813051124686702742165157640843927689296901988062799040054819808306825166982748542638647598631206309678999653026759022038494158898191292617421585177770757290004512268319696927813882061604945756952948730006594982737330415937665393411414070154510529244557928780976370839205202945274675100599312968500380529148584715191034274180004750765011560539606069939901799862777844027436706910215090612971176436191722357920559986626663777050927564800179062433044054800191980814544155245690386756049471125497972468519563864626943318331841204344446685830098230626342881098689056800424978767127714781430701441113968753141984413143302718476913851965909269556820630499515797462291556092097858035114051303334145899409187643001794980461279704003867510375740533439420752989158652740483165902975745370242573413500079293850110539628436554657746365740297981714082105328578097046330848308530948667697297895914195853872791765310643041975487693798265340560938920927403366661388321904663810522101952052659850258750560596011162962394167572208192020382460811610246567201041660329479037241784811510473089899036908675394361064717523784061767365748734035934499843748351888194484997886697116233464416775060688363922224200568504728635779356425675625186334579320133394270802258646542868536931640187172094752897624323314834796841229010353115447316303778471226650370238977177396749838423170412140870822108475236075329389413967581085601983949901219025495694145257845141665882582696470950572647030194856895526421671256413124812412530877140664975344043281261926723719891084856695532637092057145942831417737916397752440138047078362864600623789619271698632250057879429778385786555460803085752362780146149572688088217773880998830455046406486778909832353692868127874623435065041764933823077680367350019188223296381041750150820038194004908385234903152973071590305169798140806924630697452793421446118843012289479892292675965126689752429365752110053692997510034277264978039191901669210289920813331996369316706467295661685532945555427155951018407929505186978015685852643412846817793857539348334690008627065390609057318977043428691308345448142794779707441533783538122726385404989914971716090067571521052603688481371535699420196285103179651307482027231071550043257337973318165098298123946756747483180875034142184779147596279535543757494544473233101194300000646241409024416517960147396011078265856913909162857293243169155748950147922852954927672197424716890780208052259201762818958389803489799177344740591518908903813146904826817405467592545185311777732854329780471518609420204756503810665181130937688922362340556892733388894138167064845214646535504066233904162021754916116331629765725073347293032882094936325113011631055077258822506493160984409611189784061908492115394389985196524760135218415253339530123902626680889006766339593435224597425972165471186165628293935314536612961480809183508438421415740559839134128962579666935877900661910720821171311086719012400953617806291985565629277478342660384128612712782144740323901918488359353930209516029356573041031575121344910783429101244683462261322271810312182792107284825403643074974251623633335646158217056971239010587404402269278256403209216409660037580789300585595408358023657166640109045660831965986814789104781213324696562435734135859068658505913974130141858302797467377112212508208407938560814153049190584813285659412449243200783321201251927820558088551984940337758564912624642246690262365170082805642686720953337486080489972932146771387388637668520901398500705120673191407384720982650222741280135020105489486090405344310080012900394075514610199472701992343544764112918863345636156615065682152018832902496794755864768257778970080404901014664917082157431953497281002756976728022007875056989723440419961284494503903815714276311099383450627998426772385128206772401823919807240462555916092184615518024040087150477176623666730891342386146636083243011287348754778022729446668326943387221162353132343690993553956166482513990079517863269415937074463937002107586767572065237539348917073306790103908755696860553700777953442678279335860012293127197966486016756645815669753505154637236736265920775250024466992557487293899752694001866526647758537843334892615879339975227253019895558223409698319765460201656693825206619268288282052980926508431607739174278456859034831338736207679287788176344962485985171581684342166646359373940032519389500333698183039394549858763933080596485226649809533869471243127956759284572675168690219663996887643199904526434620102683088460655774514983095560650149016473074326744220139031245368150754410168282934115255192884241576705695549040662055746889650678450836195411726920580866079493465557091131625002610311387205502833612444038504768558410537284134450542123275952856491281486182358383168488628619542840396212799688160318026315183249620503395433569316054669919960788177014185208061216185450050373697070321636911498893057801617050535283375600180535890815355606772024170028023458118629787447346793760901029009733732705952721159689651634621694157598364506088905119844265700757744701678065068319436906378927533460343917147866957158315564828542271915720580123992718368063589572496667308966041754734288902394676188180599704696119352894298688193438429389258272534270737744291668665609989836428031546907527056770489866234836253183052523780442114035301493396297332601725702463539339358514031784429947659515170385699605781851155990561945071365072038106893433841192073633487120015715766781602117572550065242856273430933428060881938412601454183606488066866774491932367267546667503010439081277087474950493890770720392588624755663822054486468905616674468985791836870481407716830434151674276583803071182920788067362880566208509156836297669597991227841870302211246155041889599800689730594112188530534197293535748512825826886850005931660900822672033425686842776536510994075152051134478691401930327077533057226814086922313313474828085574006990114831773893486419309670517144106662751196001768965149112617331852752641459003805137366247432091876627576527880658957219455678651448619592037133960284081100126472369646322725497309254773921513474633533720505499492575165169429093310167548248281933865931126200648461841740993123042831906668930967790489548529013467732538356775554441664540083584853567152064795409748741134534143685401660595514518934673115547308739569896912928589315608020398941770694613866211420150828831770727013016345419655495702424004731963681897651102722617805841482064371380071705707801723343629372390005624371005276107110874752832679507655589104094664031992244700104799741804895534348537005757622378503889951783144902409075989558222948886105742015351559787983272167464170254391292655189805849078873714886947490599561361941622100115044313514942934185710354233566551454024736626968391345369680884222325448626557079407083121660334071832090793761219015903124244094482950156809511660973539820075066417145743284266829570849000040095949747520193092083827936517053832283167562373335674363252427930253549870420729829468041368247629459244050182376138556386385862924100942190037963291684459949520877585220287908013893721326762206140334542120920155878278564549574273337473446795211395139365283044493842969280032750477630936303660027999760985424568845528848161573651484044735332031506645024295624074340089643574781089982845951276813642332978087240680519482993815724195004516399532810962743229137178864872170011937467353636857987779178182646455259894948072055867396124827961470799999101093163858563655257829223173419783892776273529055110193446417943009361740494339444213391262273480870797568879396214482107493053614443626272265676507444263683350394313342441320263222742073205815632476615296954842857392077533827895889526859039777665267277865671143663796037269463828927810063480515528546511106795047548393190059585071496931987283037096843684834072508639118434977046145191561127652184527160391439934802607587016334391424971748824523020181386986718406131009082236104584549553529683005711597963746381393363525752632977797495572207450142497316616875163901437506246716791978114711380814954549895560192322717477786695136514716145166581362977735363647549234317757930698612697697024175799477921334221766224501059233565816124130674292540100677405226825049263622475282807949855268404532262050502294111048240696751972297883216419291627750875919887725126772086595531051825207207955509917703617293170381524815110640638103162488163270798580731492965817539198638318700530308829953338746303376083474423549397226342552830281256030389993046577195780603297095913192626244781842095287774669606094719247966448031982236743572562380478777890197450833764992511532617384637381499750941341013813016022127685966626148563432055687225702592024963162152746489295516799418898420883508874561655655612134872539689528964289312682527290045355885384635020937069311040979195337948664816712801457580774036436398299787542704143985591298954342639494945166066637418631103049027191892542132152633360256069039404775850549855467287243898127940950100143822283977616871981892667545230828337703376542773577406629916678868792766426466180182717667263001426750317961222432897179465691991947585396130013759827497134403694722748946332669534075956454333662110823307588326999470193609586311417569485552350443490658051104308379505237911100443977271731198814044313857188286523512517526257585571800084531581890212789362691156432898228406626611169884642908963985499644970488947056290614031637090003089804745482399616336134982344356352372495751018217994286372771392513686981013870626896429235477058059156041303410490137421750293888158569830134861393005471354412608762285307362928213436745163257035656871830028123151016381193596033915777162331326903689414055084600451143458209897881399638946337497045680522392520312997703904931044032452763558282854668273367530669619455003884158834365951608116411678651703297939782459097545071713834659281927709212200739409938366102067762885966138256070068670234967731164644639224777642337468785526028680042081771786119450257532862267108991204635191373499310072092654759904587956355092082077142854942926398017408014333429929352937485717331329689152111523333379200094121789394316665602432341126235218503575484238546168764059666501806576685935470707926135571419294155675522418734262530077633153666664951041213113160167228685067827807306502360308954673624657969330882575200762917019892975482111059826154896395033340608765324549099555438591672070381716500249620855385928941602852722862956911568861646773746636786676613826785781200426596417934296164114044837563802609832568528983568309251263671330951064382386043457584502520565431994976690531521066994074506709210845510447667768727070257154728739892443563191258719755330766698420959267208921473305066257403126984924244105745454640863587204423518951769213911297018989974573394492528626190277472482391545714948191154989776998298723907874191672225377654061061768375157760087264636243906796919488585668965021531431980372983031663633532711823055901430462091654043121802017242196362448404087307885558183723431831009918477557341334538089373367962964559871836760999560386857872589459267721095262319166300872708390260342392775313843706906917904157620706824893039731450792731581600239315857384379802799984707331622453399406750374431458180599435212737782689309800290186214444742839749145498698848097587220098321132915754363299238041295919699388479927361578211067485666917553866642688657032462770930974424511064184010400845837604742448210898366760087137957116164197976376757201779437323461271799006073177153758226025138639312654359529088700756168133196604405371055077618798908443676631702660763738193686589103892777596332761247752331969431560515072876854009833358063683082628263182808416381921603259663444518260068918784671035106650814527932802850090992787774712125891090673277179880506164493742584341649466867566013542159438481456945730979493870238492652812480035470923067408909011792835362909298641156233537401843939626646514913931785918810645972813624572857355733459471888241339779552977286987383630598290229266144517255342111081140947576758109740060838073611573646235814739685802868139120199946781855222750707974854061121568573982845313142682552120055072686021913829336840976174122043149284761598682715959302526434964673855720245606955031137786609875676724961626122185715951482601684671213844902537016925706142384484443854387446923731360544708538399882867583686545899265849614361590527053827412067198572681604960080296400259995112755831277620860609385503708132681350061787288606339998664504747160833265190315751275251914053233684719637861049001454843631850937160336764853606547981259877499706068932012029761834617081128353830596279838737707058333363197887420810503948564649203967416205058162826191937575969820956051570483524311147478526842787476068215448077737941411856189184412671183707336768385470929482134683334328921680820382634148122594042460492327982892302127282105185651640022203786108399093889679742170815495452258669479786825032411642411408025746252428118122845313856538927445452429547347732486976650061960628514584015720853308763731433435183060140400352977895976892686658008284830562683033987637814659705920366392543350568084724997346832135686834640575207142341669632755543902455198796251633039692791509256276957681986441628703958809393528238834347416348526252700399379389772126706349098039303753501021065330983581634040699275296863707800308409710393247980261381337059983503959556630659968134302891795471721098756900037327030332010555934250161450111984117252727105059636714359220161544441907724409039523765569559339123744783005300826710594132440179205438005562667998915358663527771503119745997887473065584200935105726955323731255440152424880159693649122374341374083003055974964650683498445693994280143544306077433582931191295879803805197835004025779309541810536023540212357865708150450643343858639108016561211366038682144846778857095439829580644681815791695132808674496932315459941846224443596639145454779076483318897824246478152412720362663904514884211020403295894649715807046000626500746936700875704401024174005186157809596547340174840416278748847290791136159646811723036769079822980162477994537820249085439035731646982062144375230593474419818355390897431987056190010335942711853829227308720816028539050591500270654728954331651516520975508879986366948606941040744010619291468866287140516620822706108736879523543279181497529494025116231174348246664335389895380790840867231862257023060587427318045484016128519910111312751612138436764024593825929636425593894321661627156171708039693485815621900625549012772139174613416150369492331498646484012088152086046138626657203733837931928598487187191049088984351251922005564451620549924840345550186209727763462215057931723634119718367725908988643761710895481671475227389467971490465249408020192304655435782292038608717333527219353750742731273694310552330396181342143438227850136202850362574686311818034736074747530786712251405085329395729176504000558950185513515983773561960735944895780549461952750905220962414243335290890004328815548994941169720680867697941875462809347679356691655970668128633678573000871949099152842555144345434644565343158036572154282858823055229844266929051630839891931852178503403404151487014622550034745045473818528397641021635330365405785705500302183655051572046860542479226715219896777960882594414683597153753774724731305094069060598313847249070520722662050534769652819188291344044952835703499060956057679637409499526524200147982150856711979127928328322794405954984907428522339112508921424969291404793333596157049478983274111157059072111439983936753350926357249645448407382373126637224057085061224243197138199695078887466809294195826059525020778320824959548550976829125558794364630910769300026052300047095787779072499877828218387395884791985119291716458279270419511864163165164318484219802595524153329329134207178574189860002728351539141491868650898334119220993087224238566154750387608132816936596432549241212279783811293710746347055864078567137870800865216489934869450764456178899391112500967612243578398646518704630392292936664995391723488145207212547196913305970179583572275096611969076198557818695603039552238014533398873726533615027548810707355376148073582321341920745646103855118812668059919578426245043135058050007838487288537582676203166922598267840341502014344131541605114434676300394625479681344276213896977480337558012948812255916639640068020278654432615991941634334516936533953549852527457395246120426379910926504672248650404965807066426263611887321472647767710460802585034915431859357142301987682359372360221136868391615757600444853926166416176995601460233768031763847685739388462170489927629164519626797958298944914111441648071973503137028509270157041710791533638166088177805834840321667131282890632108496136628027947899935800177193112109077110939641997042597752728622041909154774769598860796668282950545335293428627842311980218625514522101177215183492311965439446325610804892354166612951369483194060477551597767016744529316691145075774039635463486835754934476164568149103567996616337504564390348420517946425224733122202189777626061365760380106542097284097044549014003862803610295001613824209856278140672634371231478450108539608213771550003802552265454533387844376539229696519924747981903883436325397314579936250711190633454039393352191661238097021168672989709824328538311348188408351205513699227716701214032211655686183843795760596771719225090789465331650165306154327877801604642893872843208400320322267206533023358604278254782194311976725271623739243512301135268574126066402545316807699018602259952354659472178771964430230329873386553655899942924312714677150866288738956595266427820881471626856339497895967961523889814256451944878618576565859943723941454152801903059764251434891587842963096458341138920955962056744464691967535138527290517175628200706095926128112249491858674381286837859361391453069012594229906319406336425870206118259644894146495353805047482123807062985811577284556825389870107804074591612859086877926930861308980218461109939717598538601033057932233196801913435695784159930614282019170875436292933099267065454131277839884274307765914043889267795497866660779936412969039054184638373935095136835600350446975169804204148933151242201136140978327652564764960481444363851819471820582969133062392414269462505460897198718155697286623448164545819812777008976579769416203869230755871565385277217135700403740222540852232211904682492967589996073547463788565705818274266989578549514453399104208684257176869890891817112976626478431938303296271898393760402884653949117655880418470335111884395948930877615343643426419782748450538857184552391101998033017167989821503075513562999237851027729993868000938485858194619610835871261107849878759588270174684558453399765105963916900622873566110249341981318242902239984292409291162012436733050886289773734419240357885555406274720521659373527383327468741468278859230327856340776942247761970721319945141796639692818619512727625054453361393724398899310599104659630582403946189615083677224652118342985758470829408868201434854111350508224783372418019423862271159059947177185633519934470236687568440486171062168256015576298824929019064705745966852564279259591035248860292769249973451659429543015907123575352662716655453015674445129822672360935756196636612247211098460253837386179984984353922127266144475480767206669127301000538474738431805241049650962914067709811320489699023249744954186632842014658230228826106331471417799162489152416085401506289403060432199167164259313001372584947644750100064449045085885107532629649652224518265805812421644881377958395712384557042787871453317713774439360885056264770050850565840940473891306847620964179849717359499360602501073834745457799690709631644325157846205363825178876267427797370747345902481436816722788514304552065032159747554603376029164373807319359613576469992056080730127931464675725587788863849780734048376478813337652527800199601643290421908781260268369347048349890815064589975497755622479314636497314684089116488286793848992273263954181677673809503909549022277504444907570119080677658560994745903615466548323351881428111718280894384767026383873879394320441105387557149580842109257609562577068878457021998405618006102442131349798783438315948173964893937869672150676383340379498271510000608639312475413301184080986469009912165246820926638783001388394896208728636878144734824547773196322087388336172407838118902392888114732136340225203068574311330092185385592361404966570912089941225891039248748393591038800877557606965211997797837424534055872175443281503299189874584442989134499690294687326210068280287123460299740558603821193647046473677516916058439712898680225348119941790375648607145663256576636019792880116091546140576845608320547262867841513231322738482205928137226980142703804094930432183982437453813878979578971468089560817485164986220151755216608043727418630989941429607223380529649008517119234868216220090878692942922868490605205962465229517872880616464471053589915104372688203122750035096549612983490932957138150804005910374163281611270043831858955047373097784789662882760152542752200388584947460708746400532259721371793383565164011133174242411290993163768959846306903588388783620297571114959920541530298302709372568535914902931284463776151684589546491356116309037223533737596804818685388036814449509455323309876141114259481348874852185341517447714020008071145162222240901033981622012289737170969256395008794124661092291166797149303191486147129645605449873741636407051420848858271701150567446059814520771830219809666118629734950902007948696957781967860074464636072805223407991874144524407900391497272728709476185581302714299503589723079683376091007814956021064624521216891562347711434148244508421501216593083564792751616518414281384719729937782777127363144924729009926924991968842051207658728491966505197371185235664169635820977114011650972200357996934791558080796340510361286494081556634657988511738037772373074171005850719809271000845696638660165250047704688665570463869745952209834190911102025890576329249032606596025152902545816320523191988104177048146084365479752210856740157317868077552728682718386338849589580645568642728629017035452930960858357351680127126331464134702220124141552410889006848852948859944858032004364941764671929593229996313921013399826115656567924334221611659879469165729269282209007386924431233767042092782761343953607076770139655323282885868338866481155640013487709366799268512249303794301021711597126921251291996115502994494153716414464344129454439824407114102284250685679501100653481239219607588339077662365242856321887655855519151625113893072323619644399592442359499799451428685985926151934230231272721570356040800964306695279700703707814949847143652010395291385186454952858571604927140232844779789433687163533873600648388538503252576150837135435159221896859445030545623019191808344927086460622828559913563552823673476258757908172994189061644662615317283514018722109317366052976860657107193140022217584929940340225070671014380724169478022622448344415257424911303683848191553181529766556391829774686714367965078288155403271361762558025712957198542627666842939216477679405989206253218514401349137770234714749962728817928161823103652051830974729842812134060146365826509490448640238756101820068582068360763348805606895988139682880059140070617647567986868261536596112745353296017823340718318001497826912691906145709901482738164111648565261173349676452010949825705018992984394427585579036726357672542912308155826533124478772878298757434305973376481808133456271880837829501890045126583559085733737704958166275057101436609500093011210633034824812166099904350652729524717273001743001985185922551226542649023909980065355960016036794038108056146554560258965630038165300595665320613738478798029432976009664508618190711778271873354079472941202155183019115486949310648479171155356197534134466578993738951761286283008299879645083476412652398363408325412194389356339245166892826505617832897581432642144964203600118324567219825568160575689120660778364737093143279937765945644342860807782929774718116136870874954441699154401806233076380603486298582112062596359100692277498703021788489600138418625566446564439427030359873716102485533791694382620702134203036589964529600809092405964333469321720731997514259619813903216664187889055889822634719936158199972576390974726637384578614757782144237055526869655444459460731361137609055166600672735525272884507778782574125780895832563578288232617372809034226145703123972641630585512944131106385608766856786457003745636433342923135214910211918036737930389866685391198399143666921803343986743283461676061680677494165327706411995820010151060109630347853393113605234953184556264845640136651290147778938610662118111742111416823336797320961796672591639391903404656712972874281855915489626490731493212343282851225496074308268567281310962841384417789338323806761076976872117153113034683710280828222518880536206556099974231756711505097323148466197002872420801663234918947671716847977402332371781635042197142302051085193989310634397439491123140120509174684908018314880063651537740729257467657800142756974348315168492995294335900482756522615879935575478338471456706754355805599226665680315201785079143970543090188764970084462200450503342649115259167101260085115940838455883444940271591531406835947371607406901432401142472307453621566793128444948967895150503852176851245057223054016150531827335422454961371683721705422221857783781647932506290891692155389743687975745309598982485173580841408851120825568381237786361314734748319499707569835410742614330421777579675713697610265448874238117499615165085634663924583016679684418882621723235882471795797620444612501116181710919900358603893519636554552470806040934819785508055623373227701481961806936962730755399541100954305529497009715590213555942614195747742173747956827304107075900663520807824621170313593149255465000729727836847359809033205073309069475131523244808696826683432741563526064073933270626713635872367281703890370640522885061456136020836094307273542134396793438906746259893014634135370378645794358906086612747321049941346907649477710992428725042664741315742026000886362180296412915239665720245888760685609712577950906291955973599636721199385335986414182578047475944214047523680832007144193370910544309455183365304471830691753276640591332780400415525595459511072199632684583196801723315891141913615801647018991077800342188857743973672920954766889662517529714205236249020663467101119161397631443898812823250539450410079940570411984804812364871728947193297745754833059588664612050277006163480247808904315816377524708949672676782093780033095675618560147320168074939637649059224681355529175683663300433871897658541821817856994628368915771505801789672004354270674369025448948052532281610963786234967697583119215723344058842982595933640672879180481850100957234383418327397144306312837941827054876156686661403662148463067038258221747066642982574991403545806032346787416324754772148080119207400280101441772708128243196968777585022496336199473839591072935459572822215218830813404426247235618627997106501213383515433724596680907564434409013886308131637310486117109843641257164748744869895440164736701383922641821165199669435848825686925193902574138556699371887183835043701451859023978256103732489160468077058467270404326971826120304119537340897167524240560727602209470272945596550629304375847907761544639910182352353722600749730421794100052171348535131223829529517385232586356210107755072550299416397650151698344023418231661425952652119292849911929914256335230275971334402966832635775254015192275203366174765569663088494413126227654858472481217217999446702615668227134736820804509157950667927881201158165986396440753064698538128883150947498276500939656299956720342710686970994183715374240185770039512844298383356034696962365974106648301035431133862979076305182556460160762188185392472608624931917708387336519906888860748003690147984844551831574281091759222439526098300752814835080829698008644977668884943342911559932863159859327630965862114712143831218375539946538355182933620951029508244400605834162339342512035503726427113658608263463795528670848964590187665048610049818866168212356549758027240893665471108422692848399525909838103435544965900831560775313010962021294610886770148882865367357695629453345251811192379167765939685315993401611124316708143719067004619156703639518423421177839671021765281182122027595033678109167563913674981012937710153682118546493299689348838097953115472729379520200894798490188225428970324162224848173139036034953775007651516901905524379696855003389334209524491094539455947085840570294474171445575347549479666912535540109036405862773831091575834423631827345669650112183044585639199245188195858828447070961662442395708518842970782691323549485392572836740756919257205350580779243933751632642516008131806767141142300405997342326069207311296442036971359250208043935089331218857560399301580339555362571241938543540854260615863493599688657330838657232731555576925964835210808804314854632295558855926523212930422340797910408179210688684968845738206596027367859926579796373370017028551809713489342125171685093799899164618172720999043699738456699737592442607107668811881185955161246414107073487231593610498170187487610938188830528953817582764448047192456976214284158510545225341891256157799634377057058006546190056537987947253379190529285328216841878620656894590332046825561018713230826958839282376950380177743112543401735745063546171595834121079698998771593334996903285380069031696749915722238279825155878207324601274058434328931209272998310789341249614134417197985947741138082680302325833945822741292713453450472288649640714571387721915056619844508961868862057503554812928309526049622868928523139139847984596262674960487547463216818419576145696740994238981001702372324110251894867584024380665290254627465614935058345345620546260730508435897974349444206618391701985608258342038079286192485539097196331457743336738795651655227247520278845234943088851955800156793865062310107338676809717209737712111020429464314760230156096233999051830810965194396075006386320371293270891346140074288898122115283916226878743087093370596128158782388565553417581093052391001954966468508911889461912783577840986616425268322077132080489647442500193728509942643218313463805656629197871340476699495847026195013012008473497698595905188289419106096296011970521575352814533001935759815430299735019361043039948268693465992878632616757648073770800355150692501499954657639753748660436446133638108386685789793319215142189537663021861056455965899274680689412008393740705447646714046308741994082743795505907744094289118764416245361402284774640338195075702335470573541725310053260819498218484797812881971500486522576010886546909618872868307001270440361407916087524558431999176835920270158907145835004307438127911911734701460157794528561843108896951152783204460035293792676329890107582989796713908308242037545604429893197918271647779951009826926507281692045245492049152420302636793956683893064574492090402162565893071383995211728908623416564638695502725847334225211586420612274473051943849112551854722834207122425249853933021127110001059725801613445362893069499022658028584717116203617726895880907216386703948842813881573193160762995959411415930532903697689671583482039367783422306129652326205100853904534047498865740075898426537353474994825959585440976806707536227654955170752741147778106818391530773788627254092074702384677029655259083726282118147271822730642041084060959027029726179717171703269387919725135621005427659473417570521545579155968271454440013051741990208164593205868256246935380746931988144064810824140230659882043301454835708314832841854106326591003626213800504636805490371030918309351852154124938890166284185045729995321269428347397759244166010392376783646570180952968803078365065871975155531713808178262461771991162403210363886543807219208107896838962393730960288634700504345011216463353885820576253265642272394723405772391426674191304842914603090255464460611693397941219658144511101116778998133420089554546978889692113022671322330438563856965067610742161714809018813056073961226599195602021863313962968208431981484526690105888335714754375612235176730833238522417333929991697648754822954663902259184617443499531245155404342222047323300650843182919906439349955949672362506400415728591570949370068194795431202273412283517678291145298170219975819324172983640333901393440017168619793839086719910962927205463420947428429741294499021170098011079206940645668685867911700900779135862057976610565075017135889830486419028278443039783086794323412717051440328901030401484790480210769304558140878469814227899813353022653284006545735618053747476749939812537572554279940412899064275469571377586981880810763955501977272528436338306668003648192323575263736323757776673936511386698031493168625150619079834209251164259342748606528797259152661571894917429854949088160703174312022391172684888603041608096448046864294895218367740824311072643542549146538173582509824430885839558703998686842233337194468740932872941740234243911932298523416851659201272563154934351409593874275661373777694065422237122613160309946015765828427954347103803970828014221860469359242848633414839129757849851035798837674214559794149035461812410237153309915866318321828346149442039976836304373865657423423117473949807998916450508202614547537796980595874871749038324019489428284893355988544513292755888571643659936712264962601392671473445930833624978715935039274086794802085136907885864346615748350930427466619036785314830810507443568728978104111714654810522613478383168150193444809535960288546128010217760419639667598044577414654306787830797154138516501693061401707984528422803782098597706005381404540907630710308483751797477733330913965030094968606742109681859047090805581240701721153598176179712115945987413562812577340440723931049340763177720369733632064202760449397978892951580944864470692716855769416233738613427790496566435910318030896013312622749064694338584434936674083721346183590501120436927133185795116780613219563477389093446712315005965767421005190457253630010953513692897554906605461852787563515972569648562745011195691656427011096121473983042468058090715263122432930993066282094922090116150669569525520702772432153869614344641344108046220711394159909237572434956563505434346432382854633851344852556595312959204840060969987303622579438518770487458300919262519352656352806978347918818382196873011977701012371168695185489046574584639123277821939679475155599830732137085843236249251953822361148832340748681993653716961514090236493972448212088992960647817416516893392663890211311187804457014699051760958472515200257736792724617836959474187780184892858446884613651952781317294892792390342894347344450224359228163944027498778572753357725903667778801578951542362376733533149051673255085836238553001655115468875158965201279106916992228446405136483547358040327492728875933131602034109592913279125092732133963661718429547568881907879831255947082316118501792846240882116574759478422880381766176858519769815485747566459660391921640816408712328048220947076476638761637758918845192246839777651910636521322963704371811387258430733895386648345434908032256691666920128158994427158016946451547082400041909340401888804933085558636348260637298897540298500395773959894264880038458340220867225331133690481783075548326695949789832078203041661019847940097075686518195318468007395110911769397712462782045053056275892180760500009874660093023962180171825436253585452081805776063090262907616519338768888866911816606976822779776217378234510828302276556984082898129647184972732582322488896420489477411922877012803799684216815232206683083586497598272164604469870524644618873598328815283930103856312828828018121259907032238818028753351054744895490989972509942633667464439766850419311049307313059163748602440225295649553762555563754026164898706399944708959809322429618782140381266648058537821433973359173096556520047685800911089529144870606847260527474928765861734137185568787979791716818588395796534483807962902394175119232947409002845000229338108258519697836287300877927920617805580681296860492562778041424084346808783264710336264609786863323655794979668425186217968211224784172201898486578657272727515270030971288072338085082188182913305461745659454818887395606905308604488421299778548669577306872350678613398583282939474756615885007025569272307298840449102747392902260415726181643518725328884714849759301716783274885953149714287879312116824851410177656994233634573248415504615924776172264801128531020498669843004329102152007592673475767928672671808047307368882373304004893500808083628089270822185290728017407256519413841011008963823966472756922950874655781415470887537575493236287993225246689363409657897112825380554446581298702896033330746601933549090511471190140598515823527186573010863619778738780767027436523333599607162171249521784915722920844645752893563094738293673214301368260800325926159749904249226285750013159919243551811804238545064654748457080384724076458175700009431921006124117085796708989644516429649869166832336787893291414552779093704016719302302325230281949486123747761484614253341115339745428197987399179674326973145400020596394894502732419507076130127660022144183646573097943349548250229710378772873608350859130233878798839787118115702727003580667188077058853336347902783887905051853592492958622659481825152959704227871945556852856456333132250196490891307685135426223981345964403879142542132717084829059403935280696184713940982587778177542919787616888836242713599479562747542332221623248596479147005629519141552226135203754853275616051225413714503625462026446656863606598095641623166628716116096938707683719228105520039467009195415095773506561650192697076698200374263369235001739174150323254345217058113483387968633728000418486958747642696782777130076995407777585468494745796157364751665243182486074260605278295827388098539581834129485538197378109677442666199453399346196133872396891462525557324319294021600944079610282699683334472587949738628340726037404957521763200413950715008457647192591438782983296609064666114263566991653351041653815045499978581579647295955442614946226466844122047561809540300417242173879003255382554454658161255537241528817918096372155235417752745174990101138563368738554350206083008358343078875745842782955827582061329122683705239857993736290673464498265689318456499153757329431145513095316684253406661679829153563487666243492714399583588776330194678623730663473438787480849607083607538253475277946855071694379328030979268714889447887826459016229994384929420207530317657461643227322479637385600423090178021087748350155368610829971616028173246285284793386565016644474394458001432846282769558527420145365604011603587985089490458317790333537829068932570585785347360737617706902744010609710574174987257152687266583063809403299855177628416674342575088147629408870492193548979420460142002980543571938114424685450834079867943105967403863990117365209746907338609828993524786657108483927517027330028026364135728185085897922871074790769091631965242108220840320629975894507093763277875462416023109864244060886999552646575646848201308804906772587258540296433061685124409191466447382158072121940218328763685419835855392296822258585240012937213366239818554482763061736470719314960693817479728283831548894077516738994915272340341050426495614266350342362630891458179454713024834122513506635075938195424527671825700208426274604978995446020363910233872418137127506939619577143137319871750169162740384490307219909327689895584632652829355487641691448465768721916100418470576982688940695029953078175673307128233444387683329934513391882188557026131471411438994824587688679310773567676036899995602352143597225072542462642270150749377301119399857723864590392713645628310533656362829978653311938152810780970176762474000419641007584276548608500966866311914412374145568350350120319009133715114638111363141157341075780688240393130061628500885156923922908381235026291589051152036284543411737058505861047980785393807694720933313612586612251130819136893186534451683917850217275735333150122208572627507659760602771198133259197399245270237303841754083843024342199754033871936685942902027259616726189371782205971928855236876352818946973976071020768172069378806516529731525836006484087840443472903215044068877302283449081818698000788127542178483380736230255715594417389503325129826774785462214064166022820787801903872933976310366671052204166458370158932769404289123085251555322201195379316160351252200708569740777259027776401186040265085899888428409918874212204180192726851323161900695617377672440225098298860474859014155031029800563753254820821036510648975008608531511517466348223149216446725024254807045968073332806503076367139851574580434432361921345700929008882980303375753695419423435217050626652150301312565300478405694489301673107873566099517475235057774477019100692493788652979679101989245222075516754546680209045626999489913141918358399106559762618776595957385797444295539666833468175752698128276045911904472634307599185563613943095139122097936406746925660025742046369989543613185238186732291122513722447135296172603939082635656236465376828671320147626192937513546628875117400656656952862114196646993991556015211025909866075582126699758121897111416685042137706218692027868371977161503712439650789850426664791789017471888217581975515237166917273936551357643250144238015297566837836514810526861244930521248660634137900297246309000848749773822500295005204305846316549397030603944267371117956185549440786228867080900636497126948144669079448517563996169665590956222638904890587790771248099609069334402555689648295347097061512532559030483841333097865898949542493218329756650591063605241717300592588704674474735231532666556850679893216207618436508165443021772506815626115091256742104828211878032523429772579707813936491160657232928712324207735641862572965655018564694742582394835257578762667524087399398686722062434757301991877016123395825613119132313725434675849926410644098506222874517796481042003705023122658626387356069492248444340853826835069686952332294672956760803436091786275981652903849069641013824640554543527873443287017704313114165733960914825680952424922670084552077109609823551840422539667106642738993482927402189745566863265061602837679145987617805579856779083917302196131389035309945122223466645259949933226522913600644500853049191926977202875517842882831165429718178803178318459840562765130613350072076554456859167021329417528844861836370573973737034883001984137294995513869496162431769504074982532193295761150176953821970025259521546064171713267927925562029969038519171805884881613359768832515121899840383239223958709779825217255840355111828671031906372749576050211710193426910882275194848757118245765983111660640236577412084627355767585100218734310035268027818206198354632586401024261511291499547383459336836019168438433510306605500275781988974324195698316671644729789063993880635989606962077008821353251772374686190664896725674324559879757385155375770292341559853721280150764904482497749008679413876989873278501789816415168188688475949113686938547079977067248518272950611179970348972642041231983438986514058497714368052278977213763828531224073266747033912416029508256107654980727227950044364802052112002787024455285913887692838470674260835576399255011206253204629590512370097101472557081491258219427625671825481235618870131456002974731556046211328776950499929947486867400738367890944967850391481319222520570440207434215380482146980016340161719443098320075038828089161005823538970590331956443928215515840673467135514340706383522109766750127152220272688307325950716647553277383475333369318427296275743581790847419419355770813545057070979764746681916555051020443409956200485082965008423655507049848707904021898440594321526857919555261515310623963082087900635064788217548133541305055008758464370706603758392093444800143492491037423812321105543938248701803228126342091955224647398217575161715616205445457705634622906771170174064251714073139509718571725594143773380081808291254584598284824224032101822298012085502291877585077571134466442358045947283452097802386870438438630376662667100790247293616020951081683249642687856816026986771512830112156557318675704367433457862022752432005333067836251460233992272353602788459225790469578304629290940848847824627327775595630647670203679183070506288184445108988460693426222421199901821833056367295803584885035854087207105948800667826524092276704919553688536637318222733575658557560243585248581333935013572054929873950738599127995541448091151850563283671393035580984526665040888192772456757230400127742794427278995375880413834654129570134160736035824100052208598970211284589013835302022990997844035718120409886935143540935188477870377587035853885896522284905499712215910475844376050253584832434460858870480225919479362389789814697253115511224669242145900331594402758350196344042277329282154177723846173164788505726587455149603920523488012985970368180210089407113288817341627759669094801042971563644829951858532906789624743226435426481825035137123335593116930039829372546171235083735172938986308441386916371145245591886324798894910740280275413510794268025117322528792860523066802089622877302183345816477272639055666397498555027475285170712724422756411464805831846368497823096146135495547705926991928508636446044562568132741944219724962125893825750914935112007399809854684749428851597150798537842033086106308943022221435224624773204405374015143944214555626188715979029210715607997417145424775854901447050289095524054293421073741903766395279716504399508383055552224603405944488705978155172729526453183513233069777800099151499630380847792902351419720899324800437007791383374973072154807274861709790304031459628932029263085691923459425311460400141426262399681425962348937668778931806307478795834818054387313225618829972946320033424847918588475887828180685153838167840853010797714604396781908754727086157497883379741736995787553376986367711424215386303982018939345626889474476434907275229385543678691136113928256774563872965421354865462731027943119533849983268429404927633928003778970657452192953393405284662620320359398682502129658862566748707772218501112311606636376104816225452529429014200038814717874155366860080756783853578097799346116417177226185405308573010919090172371625585370798077923009827907690299362599453167123333612621999110708021922959251210965308152730163753998502523442016022799926317319298522945959384070828588970821398635006097225702837355426926030227916503675068325597214462761053362492137634851125465804429733562873207077741146885487361005470691395851261166637374657012972683600142073450375799359475363374744096276270396345592251572043215519546728308443757247828035488973790307208119380239347179432510211611038380891224915172567792352807049153657064105027854233364272048585248545916250395202280610496755645969108371390307319510398933960872125835156770915962277509906101288520407130270384685949288099198592063511268181395302059587585899981447392105891536870417894127731954252089771574314094430992705344986851406265328093484828001477383130563285956486589523855649394399183720626746580063065077368961030412010219869166758231835913500662181590262545475262478459885576441340452041609043084713191942292269233848775519116053463956475223101795060327310560319634549031873386745049414220127896234635555024554541029042967250358216780296000830917285643640415664785055770109533951559516025983293311677650315842517609890138203009111899425032243032346324597963200663049390902598842327721698993100678791108064279738341833781917377506054964731421523708501679080140277812070645450589719280252840888982881533368403123871006276478201809916032432152590436628324798269403785553281341157890044226125896861021778749491671611851684383908127057028627516850636846695535036547507190426725395025764938640716266211542869809681657860995917701095050594140692640840671328280365518953109120571189541829259650114784748088292200294030298449631805817432770273209666528366867547071258347521710595920902789974510348785040621170385468319527236063220410429780176899840072639804184671993590213760513703344790331811997767542592287573645032303306382729404501508201263674129861227996787445120913814404913349769469694071269009519768006287097096922428342387229226269078742263435892830485841545907932931803431725976162872988817016881146315663891546932263019701869332983854695082111914338093355262937050285731760980870575077357145147045644739968116854485332099249619818052234145011960462690856058935830995074755657956170908474536659659255137694213407312145957418742168093029495720426712844045451625314652091910517233936084678244082039733563157031685631585706385183818919976349066476115970099410829999581803493441793602989238985464445149068661757687613452674664809081751055228425500312333318666722280993621318869699429976996674100540856544067028077658522863005979914432734717959193292749223995138722281885318663506558575787307723419394061842568909788578039669748273401274546617096437159045619197327519172688794536815576106006143734825271109110583094393942711943047473141520961958789363271428298581459881965296289354482158908628288340428154810196218444030854479250013742434490767500030064474844641452077406155395740437787159748001755502685907802093170210812172947063939378036306334022858651164762067967799416680854186662624883451054991313213821920454808702057193029174213393472490952457395066705712776117504261176786347374951913294849360235577044472256867073182441110365102227147207079276147758189230136224590204697055570824515370313362847908821483133014082476193713992717925179853736130902798334353894543132818675600249663838918135128192702175869285736664698680298836837751702788291564503331507437667602260770263520593167951936537374898004158395170790465392438852256554877995797410400443432040135812078306770863751099149131211934722206672970177993154570845447440394894801774127721820726884298403961605262161240383890185211411953457699115128893594812378992506301288537849750656928540709775183153751865373390743608608034332259063027264231247877089162100271620135932334023524374753117952741841786557581170378094900570310295765577976128250146487857621204162376723561097218937612451143688948241864255793165194554980302571571091219768101651193022102990059513173284062291485276761283042127960904253951033002244343005677322290432055997650538783916197167226024571029883985690900955381829880066129308171662501925215272753261315809090403469099471906966280860540127655499097096895771358775710399483044916648618447854859211912982696765048714005262792471487790772652094182763464854106681192799347832236060093578151615826616969832659511242202697959965216455700201759469537102835313223931984666007035496000806140517901334007083710137743233720994102130422013121511999048924954615869490583555445470306446865972376320454694419495419956404256729890746602678174471961342885264913114226928039736930665994003599446921681218431258128228428704716867441022981023421517386946662000660937107821236547986652336854684893282447788709313592062351393800482141037810353464029531168217844467718246170374733248463476001301510629672153613458806724633762978655124151133276851910291738439027362025156857508860683373175563482035361790949608021768773116194419298470801926479651880650641021098671753831663255720766793083115378403616546989009520394949186139538978194474367030627045972168321256607635872889660187778872202852521571299192385651445378752964638431681537753862619412364107850465487176834727268869816293736479591454740592251313462150340909092566203164243806751666066963473272338818937419380806163945881607187243240556740039551297485338194013145981703014153243831012902062583282996548891478004877075171272047549433387900261845556227561709578958170604996612813946952214439610150383232858975531423860224498804272961250513162301563009023132483931401638844388421889956264975944720495597202719638403177082096693743928415811727043775394201748822561719143242516680886992402197592929695266269505205516156445954773559829563704369712760954353374041413027924868429757425509977440271555654544071651822393582787538976175020483072621551010804942890192894681447679093476456545137227237409011808283733854874486904082107936916335547101856334568161841710556889831019126383575793666602028320431258307172588494830869350294019560460486507573743921757010669934473574661480265425822478401110693087681812646435608159616317335096449817563300520619719144181849096317211455708411536177591526057821401381095878081096288863725276488924313350129157633622734462044063918341247436530697801835974562973790404236198103852968316845954885750508251555631387091793580856616416385602782516958301897611939435710018326680236605641487523111667699820852349070072974796157140331609069500006681734438843347115889090207816107898524680200528064941248622386543479005007397543519354253665257285554603252124194041288865115281456584344100720568618995919741068423730610719131923006132470279116747272645967559781481617594414930314526678146775854504224304647443973191888110602597624992327433764515288642848920436896289490392212616371602906903537842128803153994776034575075690632773431219308108020710855823057061791032360811695815142100828206836978622480831877005904142729187989769768271877033468820702929796768660057802594865527170656604349614031743472233343981584477917409369323341576911627288076199372985306591532992234838792205126566094688476996640937599027376487053913864591295710372017364726242240952562331085132825051419858323058852605400773247014378281971023447347784897680372511119490354401902571846638180871133288212486007231902785174200364027231714287468138254643378412722332175877345014248779724061910839440434390209252784817388995054672551643469295133911059430524943412629105828659065045158292167716339139653123965365219351327452268351179270502447528716823711273836581883567906118294049552120250043614408144871644378015065545129499825542481489780759478899029032116880075577354640333887877870275911189752771236422291086805694057539426329982134153099567441153649315453808570240761716053990900881663240382127746144463936147075608924943838587502000279970665411384619329896515522252650316128307431328797685331321899725782980279734343791302820759108432937308818859188998074266946777988502442012253633499157641706510138466202481237518594757209236185288122036402615885976131282302824962856570963657585637852085795094135710127844974600809131564901343659194994561695456137894272898908346875381259429404642109796940641767499365045294764849327285329943118131598891116334050550061988493563549453780415644589790419944929118500181536702521768378969661597968549949235386543603859509383447286843735290072317391664582463382986105906888550718202337300056210272307857879162290101304383179535054736254469667851757214862645242232972015458530421571239903002196249577319639852312369494467887844805464216408712513372459660071157130524614805651799111663575354520554694126141131534613473937948700058429040261818776249402077890803593382254852611086292868815041979692777125114452649580705720091132532001674410171162594679550015643309854629773941205272552631686597467880725637824497496286469308673739631641215495772838973936468996233377697007986287498585919258241318708075016924919209917255709024869676766679996848536750972761776749943452267764131230007247696013485037098222938756451623630246903538703320894652896171669271304333977623995544472512904601880613097080816868449971504996610101845193542843226763510348662949191996992866314481715989527949992084787383942995012513659369093149059830370249804763051441762418597064164849566458918389439786295463799983272925339880511466776383403289440767866678917968907040388051629197632657475074849045919911589271171618077450679471855359001229774585748483346439195196664305594601300258134495527617195682571118076745053658879858992989562119478845620994374474411999437559704515445484482533900230842211251114520416727115167129882193667222152755072112138801272428722451688200806455291219996064601402862670271600926871263268546012021103885017360832536869190478493282890593156754537094747954201118470239153164966507305835312819585831345834554445889362749828269420181651506561021508062715601289914289385415000952268104967593163488300705331071444559030436284608995518949819604755639225486757811724451025572938060113711915485669638770503519828448565426023597256682432004393355037612104531127685796829031019459530184983305319423998838809824424712134791010755922353349468088376526260370220679901014365651057084176734646787495245308522540518010421972993365753377158943702332276752293076377071444896466148700955918270191900347718929834214793950310373400354535919802762375222526427968293858080186371145236303816840091550629708024251620473340498909267437076522028172687833398572775399320269239295712528507653021970036725645952706175376762016932207115760419918043326141283796586274742007687443761653136254246912669109401041800816848294548188561768771335099308854350712483196648633138210528681165545015011395108745001342085009441202123913029476986606103595203283919143449848233935676897333297183180100744199643547568241186357003954443195777108793826782853174134139486424105540127940717521292289130471786192965848347122549486367048571736174322807462546955387083571528124526384176639163303186629368918130228369418465974455879317151612732055022823653474761780331588800101586290448835069161803688168942117858297977757568684261580408965252303852277140251288206128078673210596518354389621202167987837243514137962102813457584429614046511304494399515659462935013399314977972299374278759434939236555748188922518468712603682971960144232139846683234963770491555561433550130753458931146397408451015195886917019306405592819686817589762172187329682688804602388558175365256841383403746714149669733453592655931051776685281484387089226402000073907328062236773165477538541143779702789595803700613777309511606957893490108610335448652085782321537372251029891704355175293500209416290506673760325025524693871941363834759862514093861039380587227793892105620759204097419469740593757153480886870163921953041695331640521454415563582333387678139557549893006955607326608941015096440591019103240735100185639824532328679204275821020571118964207084508205032386143051231130089602783787467437903024821274664548573079549663211474327787515907079609214315123540417675660386565751119226674360230614912335049221887198627678107752612980232850370693074461897676632620859678025537887658590566848771573975976946764851728523838426625291036650719451183787669654243044220486813244242135207822211410941873413369557293162943782181821365035414819031180879121171078388961368550159135085451330485186670996572760178319732548362319425818950153406210539698937828853968135837240534091090389696188841806623873492585060372289532985958660448825541752930530250553272774211637817107139547497867292999173631672451980681431418254431494118240946353613502126531324298820989361683892201062364666416159039282959787760541806943048388595641364787424329373536137660025217674613949447959663589724767573612073594667625796526769878511973620108854192662728482087804835944790053947857241133472885078519731395911395012946119316818300711718552971523114602463596313316016828340621792129651794756319824752732953371850762400768364329036910520750815458061797701526183174938470047538685026882596483497356180632537776401599574226927464341544635024759052661481859998617077755636509094468557731658749938757837607262092018330470171902517260237058902727598285347693795002838253298123827627677438851005198514811723615528071174517955929165497710218229207685787490781473229263565405198869632931819927058077286314518769447236056432745506933195730211648593446731058194355970265430246676582778405132727780258688186829205892403400850441595146668853190877856773593633559575444709589246958276770068479417453472402418357641437659459567191776844712562742629618086061096664124934039331652572720406171526844968043701949640430639536143718074816133850783756862690317652977911253806318994197358728825176196615260948272587410418736707925080764384136908379618846724416831274911582029351456008113639006523396673939894141501986160909846914316420274182101110472301142765418524628448279822716317433597705809721457923919833978302292772010200674000424336284126196239227610397953063984866610857609438159964127003497320259656771750448630116710000430541306220486450301657212351512861630278738908124407574895359386031427079447812988035396630168321971011412555975850428321362635169083215536303513309904232174710367135881648810816213832701267118174870616567330563862164880404223023564228696659369941938028837899476233746010037976672683752120752238620788226180219480174876461305055076120336322334374111087266589112737105236661780901602405344905044340752468636258169610644070953777552571616117919700755821791740447473276153998593237452487231296881676057110294305202363904417519602200089492997430304199608059369361015362779873835021450773015392573691339446889799989278496129350689923850024312019927080037345809156609786293813167913712897067035988899680187958503908449541377097192407860351189133813175561242174709376714731005916472639498594100407629352135155107853584801290663128671607478747164860353309653451086899697273836444248959559033015301286554927390032624127965867700156610970368576402741662767005154073574560144210821240696508072400648645217866919185549258675744647541299014426559707470674677683088005176691677783061831153712995987323273041449061327183306126560330569754403972166061099386825007302843358220624428806197570429800011589921914033813475613826022446821300538344745430692926430979297550943997937890829070231040245079436067910595363773765999530194836234813506137250088337550833180207736654906969939280966111933000445574686871238106172024323137471247989886322687130895473717459277960913055208987790603425177555248414876319453353443790115772689045559769853717264027487095519815382883037062913188504992213727523392001874576260919727248922495451306543764442975073957646755123112243349594591949547483465771236449496911089199632214588094098281679004872132228628332194269935810877934704984032765816331283854207744041104555228860906067967020502979359196132257999991555966605364961597010880060952090374956356048586184160071760663182442557454186734631455505057049463744920611675127290716930346698501360022679931833998331467632722972534452164049314241028264373703704747583290864862157125734828291312522044875319252727250878206310036378691576300412513959663218982237980094680545576731538700338742276281019943534779227512016937917347291743079721357404902546035616694137787319034193884802879821756208520675320238950915151218055480810337133116283985244318361165120994948083958477461663526559153509398630535751695536904156567094185649614622414626464614667630838439895918351842307026320513559064016078132148189089118987952762790278466563277440876517015331774761377410181996270523916568282626260542065224986855113301983058241803468728450222841083991961616408303431278257754412888829414391796778021671288333179156480327547354501173146032892795953556524204206106576337127044123545001657869065414842184327449016128022047456269645321047114073320919315664075215048347209642972431798040471383618854679550481366918260067770075749106800939711125878688408768518140762878518083981988288153822727220719107737845416425328837267783793863474470043193941915788877387758300917656416063317041538507630540214564586155993491627620189681624755384742099439751006688609939509948756238985608132031443503076144482844206442010562064421605230862398488126497850523638614747174756914303677622672435485452467401022139087289195421454864341566062699158580282505694094804079438626709784073294436965415923652011686412711045182948674149696414224256663185757439177938607503043314419326205639099506762190576366082354182908916251713634531962549166893072179790176768286282606175103063831200667138625316511771507686870539106968126612204005443723059448857514542734276901596829684964155552367648213711860424455698602988926944276522956861477296164754247328238423596644445383270473084606054192756261298465121341254663615309767764554944953793385371970595767891390845163237836782864479975115144532501197724104350800076689725006634208891492127586585765571218964664784605082188773732177940982466768877271888249293320660918856933282630271442137881640039290105029399460680813915639374064912933065637866478606297165919560580189752458208871318861363981270803810981688096863374135798194285907600081393904183164907954691258741636651580276907875071214492945154178475858671958663043987873717345674295071645609162604882751708432825658858961539309110992427451267284667176237817681693819714477022948404422340148689761521265327010620509479334282300853720120162071374494816378525717534374398679406474330885255397815561815135987010316272599332851543424298603029430639155691878789645033921455061665654875413852744142990662946235146162320618378413184967911964002242490207839906710340066049039807771170214565926032918574382608963920134876513334041000479886800100681200082401022674831774844224071707098117538113522375474688102912312932584981525175868578175366062837862513295295230007682452916117149339409709535320194956909089253437526798967894582676334835644315858063957930319144648182566805531550205604107342063536643776321935179241512226585153096040666404142390896388959860195490112442643248102847851918714655172659531994380740208320536675279346242979276304674935598831027206141193192413611114685403950884244838926299144251868735057969964151804784642804317716702921715723411616204872340462449351287080528758219814399427643463469865475884474441851062099251323311613150223492842769737332971685472909011435453589033243133598307884938053014624877098467631394509941654440578019787418016963215027474563738246939140971275394406047444746682392793376785166652517073542797084056030278487938001976338088766860616436642504554895131167912384318030178473326324940590267971954327862222447359307740333499802270987545524265445196704418987363249159356952368491180270270197099836617803717451984335138898393809671824897300896484428568487085304091030713591423793285100595660225013079957121349673021652930435308439819236055852786946084940105531023911552449668228938718279757738634589330639931504418311327432924242178336497489072406303872609296092500808541698668733771514318019237315009602765504727282875026088837815951004252005756551553309168720558415530094297438254052674409226509491379243856402263717989472834562408685809991154329606601747573546016955018125255424875363757107691492951862225903262348242191014503773746079879000295942916626199216872382074629861393665796651844900423407063614784961575474373326360436640483920485751720261135886042006690991363173526349381490147362038797082046081036353800787150149156205795658734521864804540588146548574073366213231601508303328226490316237600941667053913053218207009329807772932219567095865402865840078682097138334789973476245428752112659265080543476561468546675843721917287992748201288017784382847848200245436788811895061405877944648607207244656060433409002406267004823552980572506540338172254258472709850111069606937948622985769696382776232482122290083079446212792046667608856781029380762582762042200161302186444055461026806426366836090196109565280442831609176724741173139684902979632924242823849754316610881627259612599894591348232556658360221181921388549523729352464329377848673847488124279747482271974293269169641686198889892620810200922994864258323211878438314449366235008100642383503440232592588109624082822348811105447040466953897572156545754643757150051204816645373172741960686750354768170181280473523464806561664379611336121693978741959140488611747506039973190164176619664266350871209801508221797084559034086057711948105668746975074385313835817310034677513113052396322753989065508113051330850998941248535996296155270322948866364397249733852296873180868325717764797225101501864683840196474208568888975927515482725377287886885581296942534380784103854611148532967261806975823711159961301239778702845620396611105598675546819582177188694927476862959113810276951188377244450773088501767404582840168509307545577732461545536707883106243465463875172936885986164940978835571562214218655057627571531294974620879321808234058665505297194415966162915934125877004602648661812309820076840494498375532551648890104965196375695066152583954004344867373132370694724611128017620869939879945778244728900201802796614359826412493238743132631239667567319501908629848039665126461438858422821558329969815702237499733953633070993976636497756689895536229748228689265070950063945249328347707544922127012568406719872870353676811883888132589376578661662088013929095234615554133918140021026225617530105491790404811208187327542803273402610966866837095651025330498127144480482246336081160740710039999773983987079147922066456622098782934364230876092633120061653001176330378808106131753715404191232523935768040980334582770245222786343307392342384865479861726302495579866301018025419068524955359017507419565490401588751327259902231999015094538509923808280515229300509238098859858172622546736637579630278505324512963628865529800606260873544946505975857579768858953194506370165631711930958597794528007249231576020503243427193302175931309862634853663003837690364374236968831847562084128708532568936300131261906020116146424320882572772509727884564186165942533719462602474109397890697947627847175420609130895968366962554983084114200408046369463916255827495465881827439238849104271486814897521272486203712125023256474850968944164409034305879293118978386057852878131143473124849404724219891280924152205536338436563196670501374524907512264905452016216369567034449850112901198801075172971131929444491844770315872952737810549102337343559578921001731670354316986411374215419478040147042119860502022224294598007245696708101235163553475796899680173054519135017667303950235716038033342492128546105235605145107704498678957745694436047324864107107662594136328789191783292390992624489149738220878318794475695069447551180519405973998599188522192707015809703249626311028708838936132471904690745343897490637903912005556518524798250972184517154952444681165270081065178544936933766019672285641415427220005572133390628360986123179725050803076804624940681987099657582442533702887704363505350516671545701875694182955873768170305352751974855487009990901683539772168275804912707110487691692209925961843079567250638928172595333845396190098843780889745963197339562391132436571009465890815863189639651644460373916985146197332016044795670282933556310343094132948792769821049247987630828148096344038576550856643801562588877805194510649643757387039983231482825209874136861215138775556326011793838111412744100294127206436128437203847378476566641604270341130842947171813994216998628952320743265518285452474096555588037577195578928854454847788408387876814281632548161047366409923800348344486688313539659363363496381949995146043313532626528851543345863917523169313674236346020010913475062442145040377322514547310660567155666601589545022180970415694736556144260592555663897537321941162453411075037334079523674838955411022443059042412557760870566023762207423176742427624296298172532262686723406509287957568637393591129373006169761677225722397656400479778681601843757296893754337616026155812826483775032445384378771042061584738993439229148401884425782249333806500005607277393130616914064006079807375286965358330226802381716549821469532226281835579897947251013430452987728701655663113123816966813874574917482646717575268861219440313072923205149811070678612460796038711842920456255431752129156808425196735023856331972592196314126919703885798606099232598289636584011289797439088849095305992545429107997712501654539498926287462138246089114393175943279883750158471289011482799906763933618360962517343328731303828525576439934702878833211584600911747552956586240115618426481906232719391274029056670700145005026998522152912079119470942298290444567298258763344199315231244094562397374692677271809128878416892065857522780045207726118000882112581602027837177093882930729210843435398110538400656061237524181619756829638491299628798568453277181265969536649919568765244342081330060365357426659753492495569241471439206833624708802873846255835126987163748558363672859374633664340024538685052556402346035679387219362765127385840822644904727499800210324117703659213522985154644772017927534064807237717887317256994653939165227510637163265218016854799606686181580803008821263400029294853402814620275298742914841896579461366292108826457518995733581397970949281349299428705137769901287162160636522802930637647190658148763636938997992277136329499834974363208050222276228645488637900496810310023759169347034773860866955056715433519770841024520141687800381597423152445933567364187468277379286008602456799365936600366448567532400669138051908019782162830011184447951115683767741176832129327314236878118418219492750088224498473852086330945800068673365176791647873373133968621236634392954766257859335637934085480445577734786240754353278969369027319878776651273189983640233273359588879981981403197156297909505173609120790486138962432665242215088687127681647778482382810308769828278220074506387909343288832745983581548211281027612061880989380659556668774249668312935141393963588694432067473557763824025623249869346270799810650626261257739173108458067921841740461532782785672455196206823686150092334856269724515716333912713083096249990858056981117290859933286868029949980689803620282241169571144067414270641970050454799243676891891519281319233160791236334280941307948435396893722991384842813642369316439520873894452766236228328794944446879381126875436781794855136272347182541938372293986188007624187900774953561367779459151465300103410933424970241993524423917708158944780849826316979890740516186462630548731864061273518201410207066958489544157427527605415700855039232300266597509184724198945532006110540074680997985462077518902114023692802847985569110981026557551120111529117906719302431979399748992685157988881117112840467304471070539454292768893016346824750443139434311779392000295101557733113514130894012577535697238442219532844250192642641775232820031129993921137067039988203141140496880681675222824338070037796093342216790985418513066194735250836003706350679162578735253170929942511211929653867903112866591445782081270166822362091621158517595707985655621613002910825270368969688583365999187603548663215314515853635507285957080133172665975057387111199544464915331226632167234022868427402210887565341245458680513758020187298258804237869211733866526311087802085712372709217437874983117650211579960404173995810169678742608422734845842008887757273534956363614403911834590616839371640579190907656011704837484352080735245142820792024709409519007672171409515949631275811775285743776156232095799673621603532082349391885815505257546767807300734161754521942545321312247391805962894209749091999465789892187027628063433222607868832417195632517341698198239020530126077257611395404992716902549227926778777229744135992961879006618247620317001991694675452436894567453599049400013130564022082204271510428685185386343195194578179151485812445824508252088863503157802410173860405810636319925642370554354014455661835928529074223693852902048491741646441877480577517522847157909436596169477056601291819609706243305632167756504061498110160332597969135478122209218226503225837757030141271462131498358281005903549505724091545668907157295914629359335506075121203465549225685579660761631816590856736026976612161805373350011467051684918538588270018494600446033587624680970271316072881354817090765434462988746676027611391452291446548434370281738310068457334547654682721869539412742649468872292053829466886078588124042785597602167766164705046294390041479410564544380198074862209161925077896799642724943101424666038727586240839428358076246377931065998390775977139442566019056593493303210970767588934312788605478925371731613796163504696933096116175795160747365315803897913017261892273249365380030409444761131120330601985539434768332947385020814501731675842276575289882708574759399722310014729263207599119725670007008276513686250927560857817003924269997264265269830379465201933244502027485441360584954502026053784770976793339158301003782976653699206401983791833637764445929546831479537893897242609568567719805507872939537869118534985568674308293432481353224538194300076175850535342750324897916383756179146290088444781724048020483516914332410816673674489365221046297397649270442974040906429956661530083589592554061120370076157138695492940986060922088130257597918633913445196915280791899544432251412674936094168809519408917757221100214925180959397914168480734327592613499092438477909824988214932866720796354041262572199952143412261343234182238910905949580775148353313962219214852107404217398599150503481562613781392550078891422953858620314997780139702125019553838662629622174238879823784614252984744634130770670079049258491286634474560025541802897110364129440772483270247252952789088660928175041405651726563328181905099904458369275426288502208906864715794038521558322425222584168626336231807558564656733512949591351971845777712954757662934821202851916319748667022264548923646262584517971882755136779321330035324712814713342845972357007745931954760347810876655495684977623743410167878325192764682899993273956699391751374504820585234995954380328903085280355652938177129252857564860101738991809550015445145793245170260420785731179111957337165225796278539332368236389932382228973234409705598610357002478195611492442988988653004359831922733046014729781748941055992509813272004889299000891681934727674376885907806236932320700969890048578316997130129344755941105671831196564007039576455654830904837131923505785228894246741033771343588710465528757433857805185420833393933403989481889997580288584410856047762932779247946523259980834083002042703409664717368673232481134849121654841975516991612639095099948083875791677148110321680899723099066318798136408397634909932272065964772546957128151877374986762653236032656168553436238981362039097799309516677485126178782404766501820814115938616622716935449909541992855952800695968835642759763374917245220930066736317356660567512437388270112618508624353787259212797760277762526817878073326131398258052926329967131930961023148758776016147314286672280336536072873101612971650178080368221099297115770159201593436644189460665131492049028740629688516130545988436963910591116183164544229805088278999665564081473007630101188972399472409152176407159577682323375667543386195281867870539028284165724166610738288996622395238605088328304959246700289801516625056604635386893403803589929813525003002820991482397220420459959191507592909562136106736240806636151475185503391998765901804861206013759354851280607763974656122051804513219708734932357345584670130012262387041317178037308321623556554555050859641114316137161238566355162895183151025862641356191243558919371448610899557799719023229923494057692175082438742043628571214627901279540608338710934303451472527848754348050518554253834259383853712594161744442968326342603103435639606988020622360109578379618158485842313224002568925960643156599259983970492252975403744680999779451999110049727764944801524023624627541595816162500050798188962521896683245060419889536352041758259262637683293216201286762717851526678894174046627277004201735992279114794825001923266860311461102417393245859244219745554499226740043818930990572657212902320775021327584078023228310035155650949168508627574902042773298852723144294942555567049412712000044456952574219354869527959715641764013911535699521630951776430802222403382142418998070611419983012975680042715309984520706265092864573292323741267148775572743886924593978156839827156132842585416668919331107209214805883690961409833875224637343343602454422658037563574109645703484874133327276352066297962945621702333711662169847200517597036147191366472086219676531515736274565392301143135461677901624811065865268067754833191335474937156502678298438661274016728770528420272817227522256743978382267939241210333110391999961931643845487125945381914937015533975218897709366547079379927357525555533440101645129690438679974051995204369506933691493671275181795209300132784788845569027499156554958286836019034666823813537588425835693519675961175117855131349464123258050074965948187257052924523955143536965755992636946079344462100945804362180514060613591292642878624127068835561521077339813016525479183633937281866149781054035472950838031742624004720856776033623525975959833767018029084779905019941152831862611274259507047437338693612857367531561636321814302508045536859796937690722015780930742759008948587979752354137626365271841442069410869957492108149862770829329481835843412083850221347644676137614623839811444739837478560388788639621038140694626886214088373360498984262818420560166940158233051242587356258522800300362310700118064541435230545607984673506107619886820027655583002251332485497896928635879246596443148256325754090773614608864648865566528894172768269912596233927235670025469846687412439167292378475598416404534180589037041934044431505363197152335052372950276040678986458722969849865844429574416353609953684378315036782867199911488697097557507857668170327424818914003555315451007581188153101425495577424384533367403925282035046601900014272740009189631099613510077127122741206411256175118663236796220356542908170135775296215526823355627131145875159171429159185174026990962394333925519918915897255460891893260421723298944953838833406930087737291896304939142464977076781858063887032475542586745888147868327493427182269035983615705102921209194020368669477458223022687790051821168269537698667104020749020708159865148151369602677253425670585465076689676818215466684209050089565427986635531235256250400086701781065607183042257990472470575760997851431423753038387323851398683994384009325498833778456676203518949800241504999513923192937965149339828780736730004265694510791916259760749018725424589952316970209174940841849172352213304127759357871743319273494589901692374564641422133929812523299586006739549010511738358457252941247137145681174467662918121339333634556960040277766075101562474376387151973243856666903036329783346869157993141860641165562586818192756817521541563489390502322089239247442886553400102089899945706263519342627133957317621254426198873656225536739401757885186971828731422371259727494459122265057510203647675856522837745924956087204488973734948627348572795548697392737544268979400315313138012666597266625024789710546775309014744320255234272478963438751134878013436168905039816762957780742159890533317844847904537394107015604845024945674817834865619943438397879415789626841380309562183988679627334831031928754881960363523279624871695227477143936119887869263791614267892877798397551842338592904743963684780975166336521028595739473586038069946487248825244003346634070885782476224823790483556902428601883792821834301533181713485882678774059439613180114585724742399448305892941921335287604772302133698633033863839593301482492415767592048765713223595737213231797584438302504325319368441614375240253529743250010299227816394330880956882967313072428203509260197381862703892986424697795598810549095493849642243790744789877153983885957904540016700782178489272254502452260728757201652798032902939042082736164487615621111666676013999708345257179579840333268949632556132231837967108950635711184714601043241597171976899454308623681385466164024244142252699556373457017694465627021681250223836556480740769242554725538942029091824380056680363555115729199956402160716371552880245261209220787866456026371735430492756065486882939290530372955671818473414595410289721245518146193276009501007187084618498095009803379367671332490851506637494462778295062336056936220775093252000121089191333826741408546617845881440086124014580638607084279846123591518361272905813761654445489267893651754526988008267034767771622600926000227957738598775528165526511184297004363307365935077104953597079146179772208797586121100577879317314975997125821925099975335423836564979943263538492024762910664248523123899366886884138299052184478386670292685176730401585362722685371691896706344286109361635143935440254570851593694031618502695709829223509273717522879972509915914393692146152888584012964124585260673397490513082912860978086032839721298946473735063215782947412098190504787745495221052072046621387204275353451729635806783528584697139986934862473393929689347816747967322070675720061428206620317573858739765808587153092621167141516825643148681455526369791283215035648669499492046735369345137959366333390548292370043802888314067397281028596830376849647049118906493705006506741216253522452166857982915614718813529909318783394953248208363354848029234282912039193653805179672715376775740290904787405375832650197291630721263682587134634007359441441150978340930551948975904677117011967373520207527123529191536713798496422860010099400604425565506628486703214318689279602088159251569632197353079118445968140562624355747243849888689258590679906514699501579398548867563976325396102937314667043007880277770583384058508657225618306229317191041744865487481654190679372621381040905572763111909369775883855521385894670941109174922797040916624534001737287437599179113795436465459393534357182558570973042521955520831591949624010164143493516283645441068671373107550508779379050856922564682060984712057453864554038191089160594590324551062887955465911054162415843387542012757092780977022665965280161897491100498929699152305458917763865005409986895905987367096968581439907180298059417569535340047609457062301446510674613905927117539682581766019042791140382558912054484039869357895175016446282450560673704346779681991803212146714575715595616874982083392072683716315728148537771848928153577297434689512224086385581950955180900329920635591651798521472670185655331432250531708868138753166502964825347077610402331373029469732199467845441380222040871801027470832584800142291717658193976724651892050093934336419794149022440358459598596587957712496599393255791286323343026614678853661180522217423879963095798208469458932895573441229351232170332215401392722994574703605413758381036098892385797635322943203170240178656955034223456760457873262027573214498494662905652428058599116279559016402686662219345961227775285841750250604935690593861751497849354996322310774843579899756610817012953548847006921942060611781440009843499589098692523220887732498166826699361118031073013368480730001895928537120732310706628816713312869777034440851508563928052517763180455128658801924700627452078782838357135517397919764100140209777879054422898123357863942667139642501724441816830327568984424730199408568555538380268731464780820276997014231018309822819548198393103099908875644323767749420819642887096975720381457446485702272159863075098541385989497423299996206497564430229587338725483406923472424924027907381394914210462032682208672020775187138084356929126030817730670247564197490301858603605610382747885917064235895710226670761270770058296845989487291786188597845122597860020003629894901639535893679152874527480417902541790692044824748957527433162294759199330335326229289681727323925960315322145605796306494150807974924099156115320271212079957758767693820575277600968848972860117936374789118196014398569857211188835001054604989430263992447917719863663367084068240920146991487060021474552767002049462779078221877875044157668671719626896477867028302386699161683124347095224976176849827991099427540537452659298153842139824173254700360094498009731483105880748977237462916530134346094392124624151499287895123733397413450104987275504750189769953579755611361649934511269491809894264102516535021284103391482062951245504549261948591638284965759682792217645957399049830856829034166132090148407057216092229479809565095329853687426406267750684599089625050985097789193960223306583130872816426749680182619368948846229626187204711562783601327100119648508840185670612754263294867511444536824735706201779538032636648796542597954169859028620616897922677031049840567866554846819818240682605970603657888423093337202711803071405793881352486088715811632862749089208023587966997726766351439123588888829795149492855628568891493444013304456522774265218479008024016133651013535228067261752384586641283833397206242346838621991740290721412783514887724331190012255018562637744063785949045517720485294270182766656094399993511861654782330616002566258006909809719429930521649323879209612968214398461844888750949876213905342960343730260466958610258323862464810947450888926618765424327430244557850354827502102252648870646525237148862442655636561079753782154764295569362681319192175856392059351653036244522032210157925521337687350159499780517468256745067839174129024673597348887747683238894852175217873245906032621983292731348432672632255677306661848981694306774061215372137145019226343529068690687152764355305642011177683146582923843302810268088664519322763205377102385865408761648423530173049443953377821125173090719661437870529501424287432247978698144427390488204682067177703626105789007849392500236768873766426514906150803084630207547922752307964469143787437404061839837722690009782030491431889852117158144581137005053388191648070254498224242277058705993770594010663156812144969047322322958768889541798021760481492003714559776783693668437724361373876847519744492974210289709379270171187674114961857544420748739153915604168446144750334028755163184846918515283703737961662637373731887513751184058218767313722424099061438479630036717503118985699988911326831165475975598770314716564494230482708169296382148214581105424677557387608410768300041460112004500182196690519805844310915907549178670895372882999728933933736265909004001144232659693866337906192204716840651391077821066246562597499690033714767289618287739055684722912880914910797195940796186902316859297882324960832080254463794978707254706324796138776246568560060519391159713942991764651119805500884315004199177560175285505364950700475966261758915838584447873832154275540986292783280160908333301624749774307626938614023408542669434241781064182725594180831488601263646135330569663764701182963504064240176724341305596637722202372674337716802734883600174661565424220852786987529672856483700711248098617706819719222516911204623211411510720790848336533500608866597424812958316723075662138911505284222994601126327513299400980666745649142704904055506703521393542267910059159873629173956301514385967147472133320699266468957525245373909802132078011127404081287952913510647221609349318393796664487872149907441394113433455137594330371901881306757793386224413339935519390202982989681114688814014901143874157059521158064435986591155784655209202891576149982412447102648554337148709799963963806157020613134555401100219779736378152874231046924073217822371031560820654812418231270045575590068081676616698402278425420492814564969321639106084801201862300738527637271431860673314795601175076419873097195849966568150673667589042774626357811722768456467841277673885521411909519788787055585867593989753345147186148534253578226253230677950640147717109897917812671720778144351807223873079836845005243951201860895035507369449690949104477307869293305685322840787147085914931482115148314101306221676676891000149193847350154997917546070936399679205703378142560140483083812080650187842336741881886943269508080245124215539530671110807795069941511517546222489749879480866510708749053860676652421113288492377080821815521190951790629432471286097609569654954860804192785996350926720974002832062535211647282996367304147736869065030900424413495397639936698461494553949199973178855693027345059739566920281968006899317707963400850702437453346709657404030817709649044972416896634078014880842534511449688855720988183020902132469013418757953918339797380126551286729501316152803044800983281562831014985303465794752389029054148341165324150888709586130104887686039859808909263921418002562310141204844864038544339419600383835052167817628733562089123256558653419629536420163445947812757469900091647663190710362273584678439175875194688070997392907711283373240118859894493955038797846375801984015767872492873815833831425386906305834402283039989707307634956561813333204899737506376755296107988487037846403001687962455338083604816741288712037653050486480293300058168395144181968341668949116407218797195856230975015773998015324711383815112638563879968125451936823318597722173222676839140671429312226573594831555595394480408554710151434877198843392707510056474078145636807017877208123073196640771452711247355072488476005064259080487596390690835991388674821396379055528066480645756263947785454894368065890461161263500871566531985712171177361157787966764317692969198621898978362289396353567586080039541257604766652166675711116994368906209396431910282415637828803209932070703932288254067814851773775202163180909358071846231416799190530101867867242231328681127615827952212825442148765025940258386878846791186423042090637238730045992854241564122451733202707508407801858402350103514897874638525826622483256620054570774717367455941940372199181686984047706118415570024825016687751756218216113607088249337508081870203615164577602183244870972701057709286652546343654152174485169876939059725455005989127529378755485288361511623523509700474698294820227881755406505725384727675285281354916853017108764331653929422670702197159235095763727636255372632958676643518974211673590243438969903377501184084939183340748491887581914644217727113940704097240169393330741854173172037904510385191227652121365863327565440215594546413824455208623682530036116783898717645715735148814610947870777129534177451027988996483288537560173092825462560060741268167481892992931387950786448064423342998037550787390571764442078253202283670048591977935103854119491782693511032639673279187688316765133533521549518324482386780724484918075792127953722662740313157524927563270652959490873838913075139726057877100779740921883728424473779318957865139606788225812102976490074129130944762250079607495382079769903854156270488631472237822199595067105494964097233318515119760256206155583517436106368174230522681496977375403091300540618667255879433761542286648658901717363850260722290742961933854255558008057646181406572591202877937019438171726397620699550510046217294533297390243119931865741394073977044184889953355323945605035290585408594291618784835030684926123713148499809654866518780188954735132529495391817517736946218678958881475035501191665837995680968373805932932000681269673435293094942968063349388224348127717466693245747266551478716211860215768919650297273674540180353454030406436040480578622151708250762200502905560368480373727234411251328846060955350325360439324260891435498873602738501425388448513975186879580228110934752630193544692009547420302861629951830264809383878699321969848974515503629806131532491526216088879985554272935226251784896393346061116138360412956635440435876925928552520455764945873037108613924085022309675937841376830877799330823540990759759245828452487419818059735000091227653556797133596180937855219289387869840672387108139935797151725614043037634510925329943269392944716304129711195182691444539344426487399736738390053827903567218624096560372757941187435810471280685437777599590694323042323530229314760445005298748251049905236190974580871342415196460257511774938990438165513411238069951053148866116666653625132891569867136992220151596417647013312826345574933803885399694234380717862346404492828049255335562471880695183072166769801289551281482533368214016095127357660605754619006464388172122676807914561235049947587089977832700061069069503902434730936384133061956626723639690209792279404973247709492053592635890689623265426688959998495581945961250370132207610338667554409941272701371465635855023722422280620290793477605585390510205161805042526277473822268276330380419488661784162103304922707484907901254028999041762613370170524045684756391051187144343600090822171489024330754311214862752035771974637144460428272240629332260965464624824275036910819410486651908943924503041054235652020676786804833092326796987996619558537172241043280639484690165726343795265912140611779710236051136080751054384446228655711206235870773331900424334202578361003878932759886620326268331913657743617459573114068371693730261850854122898008251786780396927613210190862052532835175603380230413526870640815172514125822506532063942885223390421331385305356831176016643594678336466210157472585013679824224796776218423744220374527133418584355404641329250135239694062512398531907505257194406532638406881758988629661937487011375695307274860686968009904042138887054364980924027972156655768169118850475164469508555391293311095792436638621433322141835585135746036985848060064137335354557938016610214650319812613906375436738297284556530542046497400686073068512965329046424459647890166083352412115054122007528745196413183140021723383285767432265468426397799192713266441435708950341048254464293897682989129296500229203090512299065409946955474420954523607569448019052030206247837274625294745980895692342881283152853051583952767011253102866670419032870572962149862393933763311889946458162933120527712330153209081933471804050618953208204855063305280841816465459511678947622711824860845682933932932108060265192783385688967751592180940769441415902702083599727934796811472635182449840968783860174187247352580856677019507398333603177007354971630173027388081888228452160090858131379947638799240934711007657898534535200755757422156373824590358014063729899539976820740415602109205695897722756748837109220419776339010315304518142072463264609504541226460663221006180811391273946186496195040939750449945589529384913091770287278996814330677225414158299555319744147007850939208451587124398528750479220277754433001907668805149562311133413963015588097663438370958048451294713565591439714663952775858616652003130820997106214769803826706287938373516791830973718908883558603063428312359473871409398666526092989163154055976762988742656991602590130208679657475452087836117539718830858540997323037424590699659617156423444791426284810146422796681582970262126583383351698496225418312665371922037011442534027657438653425709291921544742783606654698589158835732658201232230892932686238193040582158223384617553243404222949996240230706828123345027183207935573164979003544629411809050275493734839885583249807121217092351845332129236750502242607164146020525026460554470465337158150205549777619045168541952245332543281998306423629181251073119084697621610719814383310836075178914311924400864034234542855928631953230683441482258719607469822753029218498406543412236212215646101063965835297604609152006108330559920102033730470683935311126511141756237893325126095036092726641925451057888037894421029564269401323080622279546511390059000601395629921481852800089460113073035516471901809095971162228155401800502601277870401541472363075370347291870927685034154274534762785050301179934599480842304143925225986801342191840049419136461120540744936151241841501774267232371048404023149861242905107168892211018336596005354520914448755172077096862351699264886514732846807511513698759169731226383452690310990227144963730194386388931465029035765463407307555208402357647223196685152873950616780063521485521068704341311507423945857733063642336430984977547204265917063395519846916307213696199714263833964212205366755409278160407442384723459777721550345547212408929931327335245912904583072489775443195962241178830951339842595290961747614114927709961752653138562647705267857225113896926313479486384823152005268633763263937834244290591615579231146303956302359467682520197965064087471370917770494499000431832495302954038368606398928875824935802274663506577990042743066040746177345917124147395716033415407508908885587592571482933562694784024263176114919570867735889375525306841962710255841857680554211501429803150439429563616356714448812863447582703529577232769613772474379596275029420966045048217670049776297653444099608772735638753434762066991645099615106603695299631132460139723998940272015980736124356170204184308067552682490223970107074202732640738019588137665148644573087196670636299118952474047851893001606435180608824882417782639986192101764394737292678900561103830438009598819135696191279533788504601813425601467475658687280571826700130136575276430022286501217053324130996616031265005912484651979864285732529016907967112048224335755694235570859071972036388718179908477988453608108091673429140555406686652046497739063115774383829295202547831618948513498201696970811089502343575941846189806276884515827373137129943508430158518370593852846002548308534895310466086515380712739893196076118262932866761928086809662330071295887365461455203164602237326686249230180897973419755522207438302517816885664919329705308065086979488610434554820888178946140050420121729969720553400014994202175982985587589017066589633670535104800578917729583586302384783616115581644419811570963063011249445575489705506201673854602597983992460146529396134947179350246864046630322804304817203024806191190124350407687215891129870451364684004843179199332778282971640646772361024933688531823328047387441302594968212483539476114988859133350469516959133377762440458605360254284500575736722567649214127105254698768714061200531416847743648207876165461387482333948066015865788656526071760185770633419183350405853860221355962996438940287323551388837711109065533275010552733968352020464964433626605661654440175181982011846820235051114315292329463714253884242595674240942086267372595841177140120982826614635417495415573431301778003893608388314605005117530667437985304600528619781863362747123493478676879245464916683812670652196477390576286564959310297686724464447898990575070207948594034557932986071314891318265337296867939246117053366536953487950656805170473309448770896419846794050767393883844576059466600116931381168144569952366396375174219120930495455117009088894183621653184318783464935825828016908395021853222921719868799810834129998103005895269893758531179853556667571032770313758879958814797461563251357747757214043350989159631716356022223730471892419513734553106463270422532294669695615092222536135383714754776856562474264313650012881169887621180613676519486636980015150865758950133611065902435929620448913771721083428925119843293499364349703487298329402055505540005876685179551363170673040807456015234882628821822664186486494358132927476407117698669134757214656009212794114626284345637335730357278256373228733597135481496773039081019705229772294311872284111223021683721611074088613509301731782785202703703061568661870738479809506602337961400229210114054648550105410720695247691239985802829936726419036307976501333097831290600466597292257223393153611620995199839528036585318317729280955096557770025906684776753767379301289303078793633455592220459472696689358537831081218649536071225374691285012882736743735683855905082244160305354204693224845440406607335118738981484946692509407758009625046538863396335461378612716832990479824076708796124886606561072480366659743514738016515986700874396511727860693653124407009229694150666908479202764914411446336059885049000460706644183549118785999637295581552450907476149722379300082264922337770016087304507168296310099585847213320063254336173487168345837823039499919250714888005967601271841205280814859734653967861059116414546021108384471308783379204567915146823077168926593592073816231389237382379071099656944545409614263507683065179804585127763096434409567252539080492767946331534115730442619245705514838620373554923891314198329607068147890083819416342796619722430010772848154987471253568205396268402866413242672357278528030595889640627435005276406636032886614142789621962720416551556399567366774638534090759630626337640975296778093686782881360486408275642827046008403367008806065759881569479857236322303927430213071598749662410097336897857636450201458838036309907393571664415825873316394519952848957986785206602299706529321197386226998339946301026707687378464040213329925323808226138012953513897561005688698259598052460579210648281121586291169203486081813936786428153770633480614554011375915897042658213514234201930687597611577606095003791226880820768259859354254598007937179352596033904806037970748514811020875032767620383312537904509229902641201572675463530042900411479907483097965996168156555811576962325068288868077156950210294585235468866546047851231978827007769377866407755652134232631166837563418232184417995724814304790519074633140532814741860713441771746394674838196481506813112434009979836285080553693468159740709313948655245326695502124829336117896197488898340231685733831071824082781990703292292123868270512658875153032794521288452778941662588096579800350731010652745334080542934826181734483719132680523131698748553143174633124985513912615845213134937485795848677172859858235048723560803092653967204976947336197005708975039012618999185400011986486447389968074230360377594687822490471522508033260351718184052519725253084649741003185682788774263274562860944466416571713938165406913291519742761806048228894859318689438390227855958697767666776779270317374245364591608768376752777508210916066631422089673298669790326192320013506447308327181751955779133368826408973964063632443638786638682706924411480931032090120039265563062883771941717313182637341621134314247337205512687732786753530615137732764979360407767422906177936115536970010968963344145465816603525478961309593049577457205434254394769883021446325808470102911758276412056183360398187454125566130900096778280223245349811934230539247942656699511642512136020643385891013962419690455360585312753169115360534023959497566209124723914158528875357646490478842259567203194371914669383264429446138508560347245354175485510803265328933388093931865407912181902949818770807130774686378593992913587605675220774975625279306295148181711365761134467446765966855273572696282171318185061601288575740655613091675785116150638080660487736842316036351097134647928465605660062045619408808555155260373381371962436289147830302017357061479319746033250347667382076831378971916905556574713240120266808852916182642733618051333563671677966834442907687763851659882015585306476671924475131966502859969334230629663794093568371467188989332847422478415778676444562418866517638384488749428040930506458796074800157109500319143056611966406205366073135735240090538137648893860817902744816759516969260463153905063154613820482030687786489448834781101800447897086058704976397516061871437859462133002407513466252362669177696554208588155860774567863691267310190956590968167286883357048680201957858037311926180726847736663026497947456600249789379548773784860796345903138043410558912359706611543557866818606288871907466857591491593315698409839104513224565901895595258238298989253195163892469940626950425118823530778490568095826506594177020170560529527306688898107466298757913204564001504688335026671545054600264458564649731502805261399579647704488254102688381218597080350728616172368377784403049305969677815994756309597546485371997518359438157522691393917616025673605401950984570282009790705738557851131213080322159856151779301484896526809948147949641121630334738462761464546988530497538428163450448213903298437175853624519098473607268305206413384187066364578646138794771533855444127962735505260786512069804479632557492205330949859864153752845807497001356824076416196171625624005167274668058942133651792257196365467466346985986033960226918102833684511287888909293410849224413535050097253976066987950944523718762474636989093457650056006910910759390662737756258218257278547034537133711908040571255244307073712512311300908222249567231610573300311630868568314525403085672018199939965780513411697646529510748722892275289863190835128252642523433841154746306851465166392618302843602305240628541363764967065329944184998671491085536268851419881678291264092676828113738398414953554305758106224807924073407921166570483988635079640108242942565503421259283902168552831926072618535107612781027618641137204860882151155018343789895430633661373879150212459932211167143848762931117407845072892788625508702858918177155908584518519978356258828910054056171445237782061118194975816884926794858578331250230692677550536006875585530368530030290708095784547516615333716794268432561687186709060609903994431980561460974155619422632544352653988834205781022852383921030804255678988871692692491809216361736671399485767812501213618938807863843695610230599133636704134343590094159416078822737675799065655215510050079635793822560748443008485039843956527504040786117978703644913141340260998780555120989793021924166680182568292646615242340753631309688919388062204967520799410604080333447625813573888060660324099991634945300134775886342662059866878435017705658548106009748820126640782646132426488486651715307772372333974997807543147640851668333495798764291131489489593027991040170258009538090749945709739766731008621554584481981673882018677467207404704975986271782534262534525661064271064192274211860100762723709424629360661811203463045286203928937566530066596991804957649823231644566670584471540417206933611694441029621056983758476991889773509521216494271095943815340692978452577075750623613631875844667441665812432009737556642793653632457559247069843539975530497182821948102141332422387027720086954174132206489775328451245043936165582050891841766231673859484636251466463940096913851026160133330088361269459565259861987300990838654845724006838934063761288865698859332175364842745043745048300730180977551585248964027482376195192128670182615336419920981390761259964277390894280910012145577022476577656658058516141610133183377032390659282602035511622149791995245103014323632611412865218735624632215325589669594431585438989577817564081732139614580993141893589707926997866508990776422456562711478405824233748623891908709525036983589888056581799625366427545946323911674342897442658234474742950341933628474111109584014474307623356557847501021573709997174325776366927636599707475783499047904177082359885048036545577131418709117038584522324894902031679595892311398399481164214396639177236851307665040293194057827620840715102197672648325090433329598432914898635018202085899738574469591843999748666999428046124312196870983812868131943851945696234577028787650553075209239109313988617531035088703295434359580266122775056951236128459382014381011467978582594883176828032322902337818078714010217049436260062544943344762500863788754751036080176218177152935926181422245146833413365181183394784531861513856921020654034247739766031518897962633892722068491865161215490374896048935147475152141543322872796499831872902222895891326201059146253612980486851550808231895397359070812533271280840208235845260219385406460756216802057109523679269953004187517723074275877625892406881542106103725068995718926160245857940388215731065560054354805603813514228069238222248851478518216257961065999241431937019315530612805135328138396064191356793432622385316042388540413890896822713151304087551878962363974999054943937449310060459647153561116369963110375752518990938379432819261060587612322462025728057090589094199248687059410227635428297365717187746037469280403417719303230537921725639482162438382526779080094865340110945384724095032677751038247377319503222754902206031580615308222619422618019642189457892974382492348195878976888481871985149791884550958674758425496689224137121593308974132696823399948873916165013980026240758089415972730048621602871417064334404551992203509969959069498988733187424198667021355707000568370343581577811443603300512757017173689911706223367253339289176162141611396872867053959900219117399382147624454497782612617157898418112201307431982395586828511809797990225150971437530958774909325681065112521250151750739205225874912843686988634244714677145167257696848466897184409751965252933173459735606699471943358439404586661366097926810587841634258540959022621592788236671653100084219324726729275011983415955559925210505109422820623519021682899300965262307088620049300725510106485191268669487234071794443449354899507320910514776058260121434059400728270443517639249929657597332788440521455149080429979596514717683832674603984763960846303796612169958497976041040450171943204271836327774018772046290261014316283718138252953656832614662382332230762346441065953080978181690489186722951293752104139690471488073569741551876537350961853372175560177227474327180428284015685465932968826819700538054415867393565899457608590180993039341049228838144160810431460239614613868339353093485432636000321932332906234371061848832157050420557698554362076658562291841841304407493041030259285583592491937467296481958568416905108294719601730941787783820688408766658000555701192798796373596543569267244425609936088775185795907594053327899957435549538231216825643596341034582787180955907925999088310551234470194148464289719433463142951111285323558368937797473321936166229462417488406190553491481398633477180540841814027745591312823538748173845154211938661900418306059374029348321949610241455922239851121082400427960809717935751003053607580613123631942010843199328072755791556888151966753821361503773369714563827121007779383610465005267136015767331993305505815959690729833450235710393713185709103725312654452285189970205450108772325839073608694667935350515020736898264018845971818439004001770765586401893717897380072113821226833516582411382732155099418212371927682630610527604922764932150631748613526618884115494621479040369070812830216977966023729772739480825489702994540064150180886795543593718356501104406367489084680131581932790165621771294130269370402719918695009689991041626332475354523026242351853045618026379005546271253097238199949976027956178376042979502282190494015036240181913085381140207094741488437183107356767631226254136817409845374997323626928673116017426894800107976420266181016791917882450793244475843517659724762111627847531480111568999059856984941967002070211792035983878012208124351034413120695562835481051412441683621254741863120586007490431918540812943924190144777718566072299891611641894442927445583299358157206785310794996397812914603782004135920656252939661096825545999152143335777951943387263862189431132103142468262395242371498902877239233118561222819222346882282388053574645848948179544629098935794422690860787859661595230222016533877958436979945405495266120049794370877949174596316611852518255006786738609753613180037715692921237072296853983820430809845593675136973430734451729421616799068400287918212044829338898611687896632327639272256582920138647087409350326995916400284984389209492347365655495380562461816261795639271920811771592576212962654572552417348501312843598625926150406127712121335371922526152633468256341805120583271380096698672058945502144408445898739343742324082241073324595167518638871764616080408736978872883205753779358668841337636627688517379706665084943498269570138335653834446239347424012262351383255502972272790701664896515803380376226317279823997533846906536212321261964527641725475353143925096051955792687344482701275753783985820928092476549331212668247655231361352614643084145774394231906426399425208703669634517386653294750450570002983859229409170501110399336635394630477283577978590182616158133915877809614043752025794211073464646537026794696566528842614681649853055300901579190150224711743109055685415618109198003280718709048801549512528050125644154723815345077312941121314989541579316971160703317531963991720955812702721290898054680231586943356007605561116231924429728429105413721335489941760820999879790323062647798772531610485487703533074817755429735406384157631433296815259857988112716019116763478928619426940019456174395951814610135045640183865895189088282545445792561407079011703798475388814602023763266471978506545026857463442407114666666486804653902995061449349427617915149962893372546943644551870418269965140668290784452612459284610467261726806180980419364236453225953423824220351872970053124922371573708773697428542327969338490595002470101344621572503350208267664134703334312449410800915316381063345104590368285976402234176176098335636320459926760845565843441449498835939587973124326974343015489373238358916520810790518758531698929691223185164342307986916243637751800484840980823285610212846387771946616025915214324619041589846207469371750313306674070978915805255085814896654801957751634495585735720936367393453123503508027155541372203768573632836950973904664377439090770867749306489285230836913314560724653907028259540056968641148920385377224252842721161042028499467676531453011736779181493366474480927343489046612837206220201645163919504164668554381349058821583091030018292457362442753693467891194607452630924910494579798907077981049049731579242470642450187651988623354238706504022541290031107923822998076817279193883635196338930879859262633850194565684011676881636462740918491596133882460453255034159939197695223336740635873085403302696281312875112549699081114129493528486599482177482700634391317908451031899869052227504823314570039461208811195046869951399890341185614672241014428253586186599571509404436058037176220736767296644833927751945581996477694325619826685057906476738292569150858448206370862795301037486185201310187516760151727305588411476926168533866367196723742563983091222124463151395667525330802702093708152025762250175858177112644230442499921321509117799199863096672073381442417483864029480418124138898050417445562087074926916455679744731545075866146151553907060336625256699851660569362310010119394887610742987060213374810293033685252908908558924704021503135130135896283771541906233866562256789618942983462261188039998167020423817764088787618691382267924500735389201608531443075344311404309302039536169565453650557398872126514335108056329373619002381632732703253805673667934981398779651839234784500646157902098481623078484452499123493016570331799591203403862912396597380576332381912602973153732638330166620089090203829145471781505212322368139831862962662281587541940390052993366344385478527312187252956832389704977440127402557014084042824136650759058309347290902909486335389838465730368031363270790786118688481711312361170199354055955668717617902152550181939074947710297316976601103406300397132813191797607160381292089720868207994772821344271547504529509889264539776669484350068524727311758519486510622953794394515443174523907397332913223591716166078968888323825034564749053032877135493812372420952394686881534752951591654213831464756258321676673794616166059556752546533432977542697883364612042379246274826901582522067016762568449542601923748611505652070033859165468335299998442922597319941294298856884689286367248179820201318464170656434323610262844951035579735352609588576357437728949650300037442148936091123375436747610943810623157804523364184733006632356689603020693848385935828712852838147236860210736473214046169764595500741025802204298751373424533869319133670497697534875009802504483950093967824770249992704996236122574326846094685907259638747600390440088864576312577371206142415669523526228889508319771677208301797383878945895991164767027754829906350614570347417514622388792500044517897833433818520397434101348921689620732818362320454505978404842455465231819122446353030276026745203260321597271339552287211148345946377296573440550149447456585181554147765421248328007567396513446938080385712367692871242035980270570067557975560889787571972170954095218897227344764504962528366971968784293196000985800958682927043298124566487329298017257104321408251444503089716774356756241934773599756103907766045603440960668728356749231410751462964507647669734583719784411692202452490796580413022184809112285397902164266201504119748244482320225480095096454204521536175004498715458731512352224987815741588282372298626689238096788048771211185813324247368521269339298991404844061819838223252492332246328573179381998722274580640633427632276659984066263675138859417065502381344065169472270756349408544874110690749039008798973620932720805416440243214404744835293116347705250265731127963647478698271681774566318609191802451025343484910086157570520280571234951487977419799776958193237313322300674689698191964044777826936809224582425383294097142418450515673301625844252597419198346237528532578238285627691127725725752900403928723483908191103580808714412141105332849135043446922951838456483728877198666554073327486208522794811654618943459522249519682911724802222825497742713835580890624388360049949497142064907971308166284270795686045219916673744727823399488316113532621805778869395762124683317941297038617901807899853551229742555908657099531898730718713106320131504549685329663470725198671418134092657870224526902028252872439109307132752973933675603159110104843030520968094119646317919783117008710271195116202131100094014152215211590133134671686622764197508190977438431327803057866290401421468991948685843532219309766092675826123894853346216523678846048662550695378470144540768994183246939359993644511238017411721446360304405097162521363825593166734287588123645144496900903608006727660484524043130029212730727381351009209434513534787882620208247183865662142952271172125627260777582710805285662388030028100616056226626915201783072993069345771540046582554176822384138017312382931981365929483358087160209072119906550857211760987108358611109906690130038158643811976295082868202247041571256263756099165949401606319352855814863850918766228841677100886340980859674865189744530371653610346657360278761772854305874246735354078343492908334632503334455379580670593911888597085802009269982025657893684629252139258015959719826962356265800875138143755537893445811099757903277614953293755793922872094203651716865905709060334321391699984314568402901455897879438661794418071149753330776547997309161345115477226302406684868112732527790369697465188781550551015202926119628953714107704491990522231729596288115846049800543763935441859991505978824601273340271564979738825063729494811603828104883246418932671052911715961464764575795781034875402128478730209216040347761361988606647453292948017207186798745070604345654200629531479925306688596215870017762086603227607250885167264816480592771606987061163395048693914154093430467313942167948908133966387330639887350212999537756632624094329641303768721763230873272431094105300059539595014050180361709909122344118502849005938673198570208760642979757245099083838232595768737308498928391644058009709787242649446440987145611479073587658663828919928093722031161619645211245965860516553842927677843782915424454297978140660056986137714911736700319184350999825595558246239253910918069278243726806067035099591031913660660475171021445258911367916478917746383047801651146958515805485799305647576191272794936573055208480258398249174425129472878202477183932096659716363317478564153963268457905166738784446017708586455126701571810343527596555737472438378450335673965317691811188064309128913716470400516480274153959155484491432959497983717999696941922475995584767192133324394585947245857731448149512794547190652280140096949499127342194550753364315206093137800940645014927936944439017122659476830820545252953825209075635748541479754583865072800285363824374023781630489240295368597374885776526857414227638808669297779996231961566161670337786054887724584128636993618068573750926531113832051052182235550407809577916115877944063131453539483703644448280120301503143756876978044183424050149215714320306162469542785132231889334830396184050809184676786355876733292255761739124733959189369263645484707250925167762119269883319672037484858243793754215497883701853323418310733629211217927805236445824385335429116103734274075129395343448893393375381577043244570598680835321967357786741334535737507721369792748915352753795123086784985565538645918690134964822507471756622263757054185015260276657637892717658663294686806541545448849772177889902643426945228853496392196518018985127576594825489546535430546175551358951359594167614494577679425264755219145630606679934869580083980007005968905892015839509231335287669375395517602436644113401920037127704994804481880237903516635276377099867362159181720710093552538222463409396248867744770779169617180441197019031351377694686761627372107771895632418033654071286843953033554016062531759929830719613149962442945313424840030680528295990361211400871228869885158758112032400174857327522186411552385372338486286123644441841843001650302824850650626799465465128730589061798656118809595324798839002926043411749506735491479362828135517855262804696528819152203104655433754836258809582342699510379466160954723465609950637953694639941788932312090307392605417065382751947288000846617551974634091041071886097374683593953190876589208454408517843969818027009737260722733359716989547900191019984189204838784809289312732974432279726806644604541281958430143553635291549266903111434152693134553643348946545915886752157272131210613947989094159636512854136127348118980441312918009956617398941858513441289925213674809562279723921487522470284613331586694826392558929456111514684282259178309716462564831591472252629282091910804979939649063150581735708838582419927860992418029852815057223772560705762392531214175890996515050492684668650483671097811244383429693863698932332543897886294007426195801365980129764319780328212542018423722090421723688711414049131616734586283543864168033685667556684965202094084206600937408680568474509057463765876561447953940454889392872027778485975425790983130169136597551935775524456485428134753523536501361238849915076717069683284707066855729399359917537724774932872909622244571099755984129072828532632446759365910977407958860569516876119525986925207461989613524884991477018179712214306654386349644597379360755720811889815251997670722663326102828398944879236366350685587384597135520020926925684779243680264732882141108882782019382431306253806691800210713381990226550698764577498330709153044990238692629104768025554324916900599229565692443830850079011300734431414757090321868589895001494467492376274800823165383941043618146417845314660106347996543608521767117242229347332168999588731094710066312696646214575267951653018911840106306729086156583343494385579410708311545974051716655523412255389773722881942526589877912050387075994737148346651985084007428424755432060549890623566226650552180267600761077874513632767416712573002659334551024859951413085273774714089516360304738226973093755697942196120821735897957323611080676073776193328911157633155799434235057874300925216288333982543569590481969678211088724724920815333047906837687551259342377304181218170363609008747442164264395940049207817202983762598569284064674155605800296496510081069022654554117500637206308112284098832918876312068304735868219254656039619975699531547956432085906741152976318542169707533135119216972988758289353830925525652490040842277912278031548588159330794920352883711052318275064623543458688583041155474954581018264197928106087842981093223255431304278750824286335279164437171930501056807374723563057471442679768025963119092541748208223899393675832317745095727438811476314796828514004073478721903811228970156799344898889357050311900879022280425487748078847876048720176568253302486328575500760865329986839361611178015596170567897954093388405925358406570409579550831273460644829389426319495679100388705108142335158067576896288923563202696910844548378357146895252775909694984949841285652397319311908313601022252550803971121257687731437777774380595882092020602489559143409502519918708380897629217835631290243832466605958658103792825942994714444537541500094397064444682331090875754458406622722170169676813085917463739914426440357501240292407020646962535603644841030693188291724606543600721779118242845420797395705692126233410247488543142213423822711327037528685599440227409142126079630565173554428493952944650100224932917980500978175584827663550864924756782852564058450870840133329111718365379341550944884564771149773224743756083732957883116584512704498698174459537119294214146484051980015524429346951196489811332492061531715146250544448674681645301101214554664235833186373503255969476617719761011027740798652116953113768243684507795096914697496403358893262820567028675222003227856841645661784373348653691111582171563840516138937716440122639154275867208296764402421759317893162758256461604267880184386464432571774337847280488896047435888051907685272319877094279419661134244572223013193548306685217597674352368149415555035885211365298753985119886995436682466839872981203526303527601281187896460235697179195011761967978258291778845104956571822363954298504812510568429507318637675779763796275668818235250773956415955425895520594019342091583007282943593346606536998619735901565446930471132506247588027486277623179022821327694146567750820218103668275560730358195269499224477939604690243519756896642166213444859256984075151063246456485630084648129630616449458876267740566453005363680711323402580832881580087681635976846468988085822208136307786566663691446721510309820995312172634384330250886593860135249239637421338289203922944351385485973767198432979217181925404363979813966864986154726250572748430424967081095977355254044608429652138926624401386250674985613715824681891155482601810638693035706528630758721963534714941556970072291912304584272372456464936861838852615850264994866624112483604081723205987173408780105115981335567214138066068744089040261399136685648437132498658909027838499607300204496824675632090973475615787906274105808554564862363502857323024474898192134175343828264116630560726729783534061795397447137251209363802512924403675897972699234479692199504437183233706612529689140357778319558222917430732255661437536012919340220605193194130925415258153761122269662436417424757552267142718309885719170740500221687554860162444089451485381160028007181799844781444616820379404303759488974333661660951409560804890129986520952143025758628374450382993300247670078104439405108820164839778170710323758784573241803693148785277894346347204787548137913836601735018884554403807388314892151131024620127886706405184996313950404753434590436772802683767453695600875365005326445907266083707971049379405133673819115262162177980275253113317639802697632386929453797607336499897979178858324089400278024915833583353410117932233932761555979571769297023634663671342961259403872571445919891358727762264965795438831552653188439399332808338528333321106092315668420457036011777429519560760318975358339280242554054996699859378670707391583586060447031664244300826723208492507313508930397274640004977058710146447639549079008194986598877440200145932774885411269383553380132386176309643413170215951825077378741478077033588069296176888951161339452543144725492469325393117991603002941543212621023885283051657693188502780991401844436834625770041199231223970157114853151425791311786316218968056439869736604394922916988645582403755031807774351589904033518844230398948969720620666768818646695092907422260340071046819078613438005966438756117755796405542852732758934059665871637359038549857176780763485554710181699670670075587440344391861676305608251710281829283555521055459348844522708617398992103806206716514688609540736158844324533061344856840796125051513286060661180167156252040658780301046388297591452085545891164526331353614030033881437385573013620860960135675599171793271016177785636737883669485782760766367670474422313392373660326224408109801099576965131661234354120259622797597041015852040146631945482395271153866344924178438815978920314318416027787211060149573000471999882047064434580079168444398832863245085426696668060845384328143539275526339047171938497211411111044062505698872070625292730870684385553631704902456218157760193753514647471219613208967487596478037495782706830801309189753738777187377406889022461967245670961823564713394316551151993357498315416002664124520775746194453660759517834892908353055219719515412827850589859480218739339168148124476165470169733744009866122737410242999650944590554320688142929036514821038383022273870278871407995269928467399682338195883086972642512164123816230309421392222605606331275303040061150539029319276844844612373126447292995400667235420705839180757833558987174473893643838739572853404056742367503049580951141241289912930777040849092748335804966450039505082966196341414319740463251588055490053723765903200205182698368075523994589209398616717019223989779169104738746674355402781872965831807723586914895672509021029078125737577967248188844931597908209244614649763145804531490361850092677507772636363236895159109999664856550370066030388134967888382409347571683621942561190444206520166051832712864421181073439366206566843647581172398257420392268853051343488530214427589488581261753114006183320478043790866372851428976407603701820119113833828817949471050082529419540478646432348140901522519033221791417058825136108055297027132406352967365445701946324322526155207345192804721774648253998679130540797596806906932363131108719197193959518031091579662978224146567689420575737649495593238254877675860670871368482344432014163545587983954237386486958029686658870801689701159358217134649933742958303379387665920832627502537967878855726149234701844235806720785146207144663287624752658524064506208804748768490095921804341298693177977377421384096625034465187164730002742440874471941311707671931560655936481456904029485001090985301392792793750906131927193764723443501460127926773990854431520546914408985667807638164588281495809896312900591444716081273356291460068018605138198393248577342147846731518457204829517798379720611474467437857680431619990436135040795178065919371097532162247341852794510687055227668867705863729228276295226999768833924224236528351095881625789049406469316464677674267624753764228676955166834655929405988120427548958672187493419810120072255781005551836459454068073128186562956338602793834914361303090578474818511008583711689731137497683252235694493154506132394389249283213195799849964247553011479528277974366553338243975234077970325844084540486349572053270360949817847036024809186124864246665381496705441975235689610795070754277345113787280095623984894940536034736030197824599096384438514201407826298119659595822591387823823424020857466456918287257217405049784266026384107416645473562630501963853882894985484655259966572613899381297626691844499524952033205240621847325995823197985047143742807730092037894140172096565957934171760179188218788218527878176571222088475063977233394726230589538743721260806632744467019375567143010593857742820056848682545833317510660923984651237920838774843253500025240996645310915849550305278552208647614573217532472060966865566593765367561549192991423098367919001295701979695032617288742582922886398085971805895865280423771894942918685197672734236420464629921780860136411633543306023664343324822970806316751715192828118370489219388758176825188919783322794834447759643689004747394149697311014359819988427782673746645290781934416717230728942451738994336347005888181153569217746617028338278197030285841660075803045789690677126675733588800499853557184108763578709107794731941273010193432446568784619958585026035022326856025553957141044935435627161219301740890670017082346843969876707085635817942574126785562729766788268870484367947214756919021270213378265656614879686988793366595226473923687574571369691639263979470799852160627608344506388259851704278347578125583895264456592953488557703082929801380329991089490643357795060941781129597968165005111212131555032307165416178262837440792328381939061148862095931519182958792646574033955744554846408145270515381906600765568500087696330957404068168373495090292705152189832112296675542143513233284670972119824086512063758428341685898136701703848920175011291326385797529733319162389715234479615018401982343247357251287300284166184789840715520932020036675680542688938677392838439873859222797380811570211248901131225701982158904416930084178598861912463138702404631426475422926733989728152483594503368696213215894000302758067831231915322852792652473947724400864049987527573742139187517634087738811597481035124222142593495282345816208745590718384875667355973272724225273139239048716208834750067230302289478460842541773212416412713538344819445508222738475013229894594896344551317991814151271461186880883907856175038775905658107178663428634778558941540327143569102083305418349473815333157480481399346535709781527971800999374894778944792801845469737321369811266455419150412135114879770059525609973292306128810939239679537303990896570830666007343095330645236649681781721060130415848455673439146645715423572575411568308857591122231122820736073758162651479339585025144690648425664468245467569502207395300108077725923349325116090626200976452413405069759500848938585955442981068677274803279405412558291911529899567941737017927789603727562305230988638300427141670033488152742335978675674003528810240822590765275253831881648191120515684968591313999999471836121186101350780994208750239589573324501527731427385924826017927046747916755136140453953745159021371013050300906333497518752109667148086434354754121593828286999547084040491942777733417667657611087727097816192203093973952445392358510417256556016749593053738222668096130587858980191889996106150242775757415614817272454254589212764681901491176036329448946224216072815719926822038037329969994826028500171973963823852208955422664849356722337425686973886275356367213047765593525404218551532381673908959203958621339121476969357630836344277549672861568877680409837834531012323735205747699676258243027749485495470679883667945262695237830540006679731310837775774052054488388408607009421836394237362021627680501929922721470292084024461538562467935430994651093732120517524190572554658997421280532886577222303972991876075214484250120012505746747176486300434850218229915737952300383106249004892398694889888893850439449326454164583293307747941232728334064510298116788738296867890784111579683916830365228068660182079357806727669147704368247704307376183152740933737302094435237343548321703315146819421929197524076480299854089713185362041264252263965072827745555261558452166916482745826881226042970721203805097964531851377442317639315677161364627451802476296934317871179166461046536805638162338597026003385630022554664718813644088752106641808622789629331759768015084540983685777371464303472306719886343831771318334261187125919722740528468442265013905938481131999157900843869799041068626233801119467147059162593280505260239546238998932871531056514136191353205861793294681314988650740787835575269370410783446809569893538023766650618429615785238261583799403630534529683278071805135221281200092055830426272116273641738688879414346670816187600812052487537457869185728551501245550881820222624597594310601482161926773950849706875499735547012266841759833060164884809245605646006786109933041866487444128186031300192940010104740990745174495066214485071349557312934782253794546132405480762175420495346807327423347299900226148549196728235296623033025695209483616971808043690092165281929501546213593038878002376980306757091857681024037051318275172741348997412307980702038617652614565460716302618410543633740143210803223934057036514126672103522068402247370996184301521358467089282340023701564042914706995452014677543441673850277061372167231324302998629446333543116389675178544394099880817623523733015597753177182673434004450271633076364202358710022952748463865478570560343017379308407682390051192612726635784963438372662436730367284888942768502874821905954700919792558203983819026910555473114060126898922285067162507011740952754072843316525666482440854362420790254482714957634090528384520625749976824013965630497995302853185576201457366543397443757048993801119822361552534144373996689284585012000072084157403445406322076992999999647914925801780949354238197659118346617688653719655286379534957509268814596675475892199075922815550210895175194273800235758023454049367714991337329984756568059848046875421391117296773782341418441758928584280933554898965967057958791345187404141487945404580175145108911290437362707305289271610232848609902871228465642186829624182441674080584378222964258721147318433703069361277812725940411652163818971733145448874914058592642532770998409918161879531331379206108918728308488522733297288273645745941384313546389390159592144379988808943011689349645535274516979174445137740310700135748818023650537211484713188040916336555492179425579038368175665684789637391578514530843548794516187199765084234535179292099838241407272902568448971551417167219376203597350521482894470314170388277166994327201198021866972273436536168970401357265843791613814452133158107504696829469503127109419619067678656135774657685135966827849051505188111034773659487865488922698186937577071403809693751803289851522506005721784190784954322254564482603027032242830179122816728731305530213321405177034365001562958394402715179673214237521556780663283109885142414654450077073502886436625669967116269598252508289618385442045173290337456653355270233175278318636937997890813312427593483199015907314713431342663106396507855873180379552599105697928444781208273394479156296494641307157468009067015220002952045248912211928586762699805830287545555649216835496268901923751918512055875139672298437431375848221059852012559341874615658627075503035185006887382794747866574398635559300202476805367313093378537280673326230068552712196663504100848309544642169344141909352264184124109582560194377965507034433194917895565152261087689378709039704142351347062841512283989805855230689717021898379265828163611179528473129892613042490597408800771037408029060722379642975865453755725535379009339480922240060538744139195069659548348344779159905483989979751229182544982752582492697415884074050829319826256743531118648658151922386800900163614754264286296567196325248976506972085636064049741758615964611466600425594913766326912105027949466454390555934697304877456110187647597442312993564412750620553691954985834736751810943759566257191079767747184231095043560812672326235595605830863324985095741848565879315836313272413970335830090631580503467021951744153837855340905380771503875339620657886123378483407039279445372419014787923700163873375301499616809420756020454778914845785513895189944080577212728879991712019258665124000819800857448026528382323296888391335936032807835347220817634215411220917702717141121845928550930563809284462159610216595283110327510688701460987479475141319507623653395092569447284769330900785972252045649150142961715564980894958170753488620551262662358269854526051307106425298754970753760243516324582237949717075395062715780239212892217755387151930839950967173228543935122681604796105878122024492892970836661713749278993600356286212299671217125550210320983484922344687944322738141649226560119679343662818327602827364967759602280003525470355573652532346471179707625311250452360500919221773222710498804107237505177202263653175069263054715259974252461480099856294412463287978832930391766599230584979866078526619144711850047046376982622313132792049593572289981178349168761647049510918548882159497044404991598583077322546007244172000610585812737411216723713207998461147784564615347985201788206714954208166591029110735237296333750886346720885933877144545342647185034053006755957916962143132551126495190806519956345549060939305976685798080463887961015773022329487061055876820616060653075943252146689259326305582392540194991536488134426014591498498025835739408091418500115094791748741831602229729103692082702822453707492871535041754591648719008551617852064394715018054231716349397173893606882163632558323742633393503439433596297797442682411849096287234240021349619529655070233581317910529608905743172854611498517425526085586809979549316496075762745019046538198463632949250132468128168373985982780356527383572069343470287086020670336620139456253838222554480987874672274044792689561079474203076273509221032246818390727510177268674993653830267931220775346935583675759893640387443842671354775319797121743077610517453883935504619298282050369590623626104738188511593795114808455188010511971166106657261493416016323440665939850686624688578972935560365507996471428074977060355058910315778756180736344329876511274896092594714496345912735773000918919976158368332685370338447180078158094004595066320156005660145080766866149708766323001627737360259629065896300569375705903732008526134181375271060239473456391174387590573012800729901338104560017474118127080923505281877390355989301203399626636110744228399368456874741477369797228268582552756043313979066179794380927391625356798894430178229712916189343863675282907505820033300599020700928790149826266064179530811192847259863410200987132280188428064885421829692641136981568661688299544255366260579151326065115781095810312437483284789323779901850388881027749205787443004842725069093037063783396162665810087245772179230443684614708144123218074782220427151869212422478572412086084090176998610441084922130535401070100978214034798789859560265140191024969900034129312103045596130534642670234183966583189296741844907240404421108093783331900540911973226816331169539474137692346338553243274961347206219373268533580840171448395610619710644128232933474809486245461918092578082790081790348442698701028292422900612058999797022263036415318921315040172462378753408380903226976102899565361560761563599355418645015466003464123633150217453401719670771100356104169496438835724597269814792667379987572090265115664248794480964087878784015567573134623083848344990551105426863064224683596588077964309897301071432596656929312042277071293078575860227402334188330679595902142186350191749871858501307335957607716200928513051738251169827128529426388510855304136781556968176908592969427835118117241228302484370550590773922748200596217773508662087785448529984718672857651637656670264222622582469156645229370922665329812214667566214007419271086372356930780794355783508371376151216248277579181072589475341969621572221256350187787219817075706721980138100914682282796982967612132811942355017926977014968446403551753513641271137851802960104858461520586142918701499052532958496460834435183369840998898228030876541163261798586654464060056090089397191981775280902751198740787629661270122030775112677331867750086603745763806154057108817159215639697019159948003707556154158814521122797184981037672318775326181168049371279273625253738965997893838181126648440335012761123282660868002641583241469895229863747473118209168097847275355570813930784017930235481896120147254334561894160595310450278984360832396615781200907562608706503256466308973417063257213347681738189186480721260172243711639926422369439001559439924802380904574048751248584677227202071282171634694126681946613269617848234823428221406348408992401724863592003448417064546674266394200358328321153184417101193139735806787879332419877752373804876463183461324894269079722877778480891948422338143362787513026025675677141898255644672324670225961621061221991509791807004349644914355557590654205687902434235881338244171565413293011256741348877572868716745495426187395818988155717001544408036027498102184531571493819174265737639400735360878070318316008184915709752122232820744155517701184793767607815039976240112721624600176209451513090729288807066681420858388076007592264348420500550902249097712981507922503846066322946238166034128252911911797188891575063577150519312723498060166819196953271559235299770234389515807533425593911782700924358780568031448408631950052204957933610508628739368171934523291968751141404730392650957327920732569372385862042900290553916617449624412999074650014198803367546123447832860357755170636030151498191994579691442621729345034308304239373467714113284253874169177589414632374125227524153712805519372066551853666703732140185079576788687065979840851430003866515717912831662630091835842667460351597060359786374826483578714498755435355407244610746127147872466087310805795749448796615299063830604168136877985412608242111246998898799901496141135710235487621262355667749354836803958923527566793855962117332987310248299116433192214187911258195135040052944406022667142934588242644993258009984226815763785258758442287834597432863761738162647548721561900069425556199543844954858220016100577722807520128382339945377161218293619921238183991262298135826742271475908538013499016583457143253520788414770257834647779315868747880338257097711950779249241487323125822037072059514483675516910731009503130855522089740589923773126069666129453879702126935619327605908744188698254304190041536577948935107015974148402425768549660895307309193281054643951586431364480764518858105155254240014468253916503575486712613306330842075906895481256929729939550587312871851733673335732916108917830434839051678261585849108916429173192342374102380879849318574517483399855627308430206659751663933430875546802591507053892565224082652616303996209931381414873415241736349507851443802519468976022840019562392393198000124677217747029057331656623991260859052483009616884910888713709949746564497858920225413392703497061192086711372903525997225411111990848460647506684431651794967473536180114602359735622264724437217722312870398059601811079949830106935123540070947163936240461021540437229344996387556849325163819918119165499853556019547536277877891565878700572929657496546773615235432060841825132164825485057348016955059341251517478220374128050331771082806178223767676766084103800774899024428922661806891304192698464362161886307749489276164320692288516178437299939026714187893031994545788136345137969511952362837615795862152355079079411219743444335179961973664802783188551206759844729495662081954627788989275336275653118929451490767270013430126332195305963937527434045840946751905286347022863992927522885972431467247066707456296212222713149698854433161123161746078050069257108375573822436903202518636609798554358052453802339015047974160666644644006400247447072379504304978597933973822074824744998717739622807933205225953951859322097650933219164864595697473122712973696999739791978967034344617359539690370238984713293376739624927946487979693737357796433332142807507162672139399564985624386265506519582943280701313448862790731935841185742828651117545575756237373121615843229130562591815552844033779540198818868079630256834836958129706708249065970841046536384547198321289575499256121722090062159255758913502986755295983479935368783909858997237842568858606545665024144450566175778992935409762236984751520084383204130677550338878595961776891641678833035683370063744643789469543057622963918930801579079779378751987998380662921879954903770515342673258874134517596018280478431183679111285734317097339890779725461304062966867775742868616380103774028537225433790590903766268198126054906315102948368302604141964371323095963775701690128877346538520263402324827831368458943909832683827179210196297424216173346231979162180596960136059635461469955473459630780104182723068000216769093792941353330758371268939178686065998574254141455408228443581931284002304867262246976165476165121509174364887370587254449445405697464267182638313326350447063716352439735068964011037105402993672678232086405957961906908258251305314144181189926404979948349260563188191229172699291193268970620505765529949021386256242132824464496996837788782305579330911179320150464321157679532608909491546997453385079454394999175749011052432327623122191347323294331157390025566331322483134154991972562117403462681506050172310706265592941177457192914121695828026652314241735547842186237047682458365690582924164638382208562568553253067167624082177063131595775314475043944928631374465043951753444976182406741204735222155084846889947278884126496780841473210347614042743749691952811257058600915146474670966749630293304059701334228398307486325797676868055217339890646349580521140191640772761944008073870571222358063210293689316395486788271486138069794098184929363303927618063851355372673102063507432523410829108903644793309215522853857412209674237394688201975716771662705931066508992366154758515364681346168178194377993138006930269327796740501792867646250520149426946585951336375963315105157642796822685965715910401560302301691952789923211744634731632545914857590264531888364522858967639980326033246667440557290980983014640949532069647137117836278565751138392792672665562551856886731289616772294002381236849150268945202527418363792654966289347903040687241154618977826307576490293129746171413463280211152997660876678058964195340755936523048531062339119782665618610242000842583781405400008138866080680480981116045043543897546136691501597742035605263438786272523991779895040316777659631647743894539485525521221059877749254486653583818127731213472659540171694698987634160590968038128392048088910425955306241662750665429218324712272055633983922782396636045200043138825288104706814461406215827244717817733572049761362960136105746724439943473940763347140604604219802257453134664203605563974884955588058599193201265231514544599866636355527053305332429361273622500462944371020081321636943477351826292771833491882975092269694473544863610359274128522241637413669728502055619503189085473618616590351460252382108910898619918022891662139987901617862395685703047225328101815563105817277655282867556899443598247341823103085557973329649530517364154124973355027728913954287740489101312575789269143591033885137464513520382641648621126227162313680346953914715477293224512136574599124381186613343135890030762191793367543277962778293017928704886118175686709053322500665310807640244206955632660910709535420019083576916768924433946918012515373330985013127243579302329479939713591776808605854492301006227466982056772988609136887260596265502057128422675310809574306474717857482089761218549024872221103917180227568798963644906629661981576736288496215278921178824696691500862640407933915331286655825319223278861232807857554205711871918773230419570896207975594585546676849268812131353249953116386789027579223465569434845692763981988544851463130183710744385087670364553736293490134924879594694200601389351077629390499059870147739350001002096025811099037062507912477378113255860084022653563147291050219936667679968863302006672195876998740637844832647093042171557514891128130436712100620340564029538572210114678104081851084211051378544964650700082376935272515162281914002275299814439962723017216540153999598289536491259010422900602522813346387068628275987181009812167707840472596742331864327026606274480326140861216244280836823163738203951822251513156904433997331621409436782131460806918131043145751797590398544816446359380112986517269627107449088215293332079475386005105339142515699740127769476003928573526070922622433740491730953993528088088708494587824871831817067649113784164216302909079533165770618978334585485520498509771736454163218108484841162483607844132438705421006484898269558365514985166853499546975150283778606540253726552963621015859895959388511546897930304056201339665013028745946160336664621400218376580128293897779245147711321006089399999945458718010249547218354781746887058638018253308432120889793358371454122859756451182985983257157457289098551265923113379739737557500488209217331002482015704371771282161142739845763909936644046546878997622233856789717336082477664838211524400775641127691803110896718387386043572695598094650802236492674131028931816475368749262745713546710565144194738223462865789075960266087891374923614655712767649280856709056777950620055988367951419851309230196691087445732469250308594413791009656704245139524852615666814141094265129245927925292327287080482666983837423073504172312164080419028828072149072577941492208036246441508638722645480587039877839761872674328561785810318739722620024665745866578377545405965830621822960389603411172732349249686864351003016646508528874009656323932419246831928264579337839230906889346744911166830162598245502014987000551263589857132657965347027175446813341573046602592427308786165668115998173019547131373896650388957801897850864648171781808946588873070960366990651911484697227694417994911269244695746723001973001107459174932825756742256331454595907174268144759900164032150892661937326462993489678113857019123298090488992513267820129956085927157222393510278658584010313465216844483879779619233018152677769878155609632194409898957294082486015999620064575462915207797026623314302401071069473603529076582202309365018576316596961120304021187014827258131437893425566713724246667424960793370430507537866820911803895152084054887491882787148912982289441563908064999610448112359967047732306550514610980058005584666765268297552438639359063084625707617499985758477212293834015300093811741175570844824626062555025408083773458610654959175458573981047274099242669785854847403221286608895638527982003964619031815936860502995401099758872304752889800138309582225886089296708809504310241244472003003384903826030925881588885862976128292048934226731375819766580087577098795106562183839603128235441576959517520144238019017247585158108191844935403325127606817093151675888603108248786652165931269052673069846941724353448701979944512006605317912345404405476868942827360240480619968871925138231914719221962125854703405731095822516581956381605360062324631980081643734266831299355500345429215167954486600197090693290459220202121625264876379598960603765919427883036280069485738451184913345645233391031335718881854556078131188295605705192652499176846736709288706239286244543808804738485213695934418274943398708041464543588618914889334627575054635192349583941125361686161835423523567485998934560270061515029522537872869893146589992776570157166160516757801596967789799024565682252225032503175553113638891260765725129274918397683182096452986556808184157287547561745284211156067143312603725190051990203489334265635932606284087178684108772289436797376406877917102785444553922081686926757589338818000491426075426415597427779090864110599622208534853550472032717439783116521935175469836936270224958276609148205753417103038558120733475719727639340920484426986460921829253892735154453937513954182244079250328735772913234554078470225459423263526217467881815652946817904677213622161892109273480547962388575867949042631505504181649769889354115032642310493854160463312602870808852986876204558757045605584964601921656964192349524809916964429363407177844196954243352216034726637771358391526329333607438261059301659842055259992128668488922915891015893011194028322395131980827877081273472747058346470531026981406455665828157143055746956855590466375440425439404205546835165139037725440252529114596197935000702872552154654124822118158177925839296245355474308330956581522561526898329138467557132646376705001151648175772179695083320325097102736496764681876517468505230168897859959176862002880574797232964785016711031926784844810637791124290783443384134774936111206824200694689852206247007801579723011459236006847858303922444599586458709167959141247643953139726799712728060672035379185046274784547155594656091240390209079727327484794638463470604302256501415834750213743514468522366622017846748213999520536610040905085581798275409445692414261325873105062190891737453237951065852247487686804159827607054772300607133308317299434963916188183858774129021340046718118953071953064718226942384095935308977659603592826127437162545310232659959865483896217025114521102560688909234175676126504563609239917871881378000293122109964920404115530377152731572829545105305255750394472414491399245519081663744153601644875574151324131558151961731289824937000903841014341404348961117617954113151747668819877351070058270852148507241546285643532936166808049080440825570437042418485010775014114100185034342330545108105708491832395091419207379110326694811214195666601031014339595187288241294178746064696081490429173104138278415722558625260141690636528186161186598843828248153937452961327106673167023118237650012290535320012448486263647665833456457463783551186744558613557346402385354033907357197875353610040679735037848828768918392936434574085987394449915002132016609671053855709276411279399911055590038043430584073209001844044031510129947312227355157112563361951850786703948285652369186704184446505176954487932377836963347650004245638228026577075756347813171513750253153839477790442638330589565524007201210185930585553618573791094354719646922844993496065453242744409897499669639222109878925330678320590045953448870311428766339935804885244325636437223453893350203111519380541188169198385974919749126450620908588963352609730446888116130793410360857363122708782437851150919390559739412996707497399222866803254692517083765982184046286861842375777769228671082998810073717397863120039175570786654265901518476334466602144310263264405865081660689049408369779699735357155661026234582713370850441805860423342098730929292417547931964612575055248290753970794489338608765800702423848427617301947871004771766102226272585421782243108661105022234829701527248851846881398609165662513927888440003690379488192286619191013650364263678133149341357397389204292889025078052304066169809475326296703937537798224475951553607979301124742185179669303979314355143192069470751365561149019640335433225158933989224367332828187177533169779172242297570792580935005393899597979326178536823725966043461487714758683628286049964893515775652962230978240954478142061025982543326946331216658039376165407123070754798575658789460094669249753160707004876097119802957019444763794925754626339623237555150754249523883425990221884200552447564303590311133785126281557649249519967844862089483572380884806764391134076112649485846911994455829080825150447248083067001895952370844897610330060158575346926310734180746313639558368794099017429927881216393032792956610298799847819135541374472072001810599023485456197895221033251964549924963064130555362507226795235669233942693032289644134438824091264584394803497850634070092840364173415353250296500630520120481697256695531217459338524172625767127392774464710017162907180664693944873753210029935677512329391374412662584304911030061413372776037110894192562006240227317406801518503668669636752394056482161267149904505267087697503237824959395875741866507432107959549818351680653768613906044005731973261645575457872237523622664730588365787656549204248716395977914974699901705896623119569129164318639665138107685022984169068542652094300772815952985469724516587473074954551523902425912375159093221248477222345193939304488785638970612699116218405245949867799887480656003693512841862076205565201955156756841036792067155518217538291333623748905538823979447313520700080693559867866766133185229203909430628899501590629313618430166288282000535094324583311810632483684797193314371217875255394052816809497151589512620307013535601828723158264393742559053830100695498320851201880917072460992139778908047021290690684224761175160319212371851704759869421802979716653506322071330808442646365824985287039179354018895312623732389886453369729141049792375352359038419133784049894654033339589491809726691923688765368583492195140377561873161683340958584960332337407529365187596616931466154452820183086984118657931028792884649007836817383579102617428606707396767107541765402420231588837592400307377268590019392542001467913430253331433275793201514852353913513636890785254676708575410539030222963756823376518666070885542479012352434814147083229448798022939855703228659108961776526143903354041444342598475762997780518236228424815089355027854727360745276738349747096122825574683959660278549770194626489235990600950426588183700698770062620388961761817878832115613996111280637019126995640628601961764248903317838487566807869163754742379556979453389262295304645413296727369594059457105417182526788081867955319251688627497811629401759138049280119249201774358650585945298399390141890426384165924239815113555296537579470857480202803064492262860104685271890264166543462745000547410746241176769105016488053931815515984109347114068833277571882324425633137513194787513939857745697655710366439596060187660912260292094445585758609713322736477462346124957460984871680355842770579619327795871795993459810634200316241321427284155936789416306782139869785374243835963310288406720552215673641860592259594503813287335518992994277310437768820022044108870157475967630445688850794494282674781484585162691800450075570208256115572197213145458763493834749009666410095619925899584467947784368705358181884844770056432781852982874398364016740124435331076750817466839027987291756126858517350035795623357175226415698944493719721417533070763508757669664139778368271070728572691948427166096398469442256137201342394724915171787733325974829000018970541551731112379819158681765066004410636488644343290661333765838937841550869052386551259933768532512164238957055137537302063753565886982104363403777531288430612415057360558683558163666276372325765977931757689331988785569496879599915632849526128064694887093003788807208714036154198065420307060150789226436360341905638268142568083981144865353738606689698550728400741057056150507293201194097799205637288388943666429824350663548334432939434657715503850161762008543611417815077375512638583390364280482690786833716529078617494931916721685511181257133570491552367295925002339774974698680805621220307378477491657101271583493767158071054210779666502971383020111329943950044325831967726094128755746416898758272170759090943843932317272092835567607770017688822806054621572842043349026584976528121612805386462774898460068359117832360665778345716818116972359956853113548618282796941144405787655349085983527417336063428029602207460285173991756742084404058953799516643119981196463222109195088617673172059564481217263546053051790409466176599471489013249633497596227980337287446245042190588770469966368175927374883123394338866995089289527883414084051005256994926241239141239861769981009907412739401781535393175940114738360256353421049638520295101292886314819726944071857840947066578964127342586634882096434725613263818450324719085983108292096295969261288919115155553979063784583963820070404948109832541625817078139139366964369497266033257912744639445597834589981934967787771774572331637671617963338501539028459984814762988720347779176369745886160243295949593986510818898368054126382922492019831932647142342100525752681740582933951437399514325195369735130336320842910983537751151242565751075278725481215922997786223297407784521447393377618367394050041130861549208822740979060261939607679686627169024233777932755690550833329683865728062949222596869427703273850282988639666490977946359471171728070162610073607799213395383563123856986281284053663512343261016170897284301377937842011763027706042624706205364039619297798787832460707385854659617240192161273606914976016114175075015103263741599648451382093710852183926272330188549172288585382151328036411131364802347973370529984648398293802960344526846541753089738842684964215779961473721667841089133580834547073655954247344666910817144789096534276835034086964160306751725180716481937332544195157024918354827869253515115929766527940220022935424620307415861841843845031572811200058000026882988435551180622774767876916732744717556771583902171595253228088225812310778271189318792986851070489601440983503759721491349443925836549659614608431744412713041917167727154092224940826260659846837752407888682060291455537727059035581678895399006714311561008114451356873137957634225735660528878582012853046558777622601884269686759254684795201359205998673446934720312864493947850964532847666991170936644673744288627170899246216194100968135189567466418255662052153178403021361168115906016140128109353018472111014118234428166107649882745553547948468943977462595596691926023171720970270764962503936399928691009255896998476531784688325173598500262836575633731516683581981672858630070767932279152989945613138440458545758773795438379078520052429573850394006637885098204433910472729169429796389706004742255198967319105913800320022002054069447721841542631151996380199813512559440138059625752304246826096711112607131332465853544064965588089814058189528789823723487288208187540546383094814992859909752880518007891444321567317157649254931482081054556129626789125759638880239666698027430500255756987741101917297531161453300599873857299910309053161850103976069961530693656016583105706417292552110936741723947169061373905079519093007566702134195921467826058612061201404476459396971532327342346199926790379722539709506362835548719037645555719074720269922660153049589874994381503723736072525636695771416635975933906957706640670087167533262111152763115926659976729123747458096628699952926063435075385429357523579051590276496605017960787491426889834305867647823786542535392078448196742148289753296938811835550805511164028476531533140476104033848610859415081518809423710276604584319364759161664773910586506486990924702800880089913874275909409155499553111081281058661138152783002646015865091320170836770880639464937324910085209589261210118731435107210439553298986911045644848540236580659790077111820649856460713263417724371924728653512507977305966422834726678643781879181923818594216099238371341511867803168112033809773044603483551097227655600135952983965470639019087930698674664564219057988153174435184284814025471064069234579159432777704773818984715167822523385591683558863557569670290047607903251009524575032552125370837047415660520384783596638633698424459396996257352279641361124941393374614215417641421849211728986248620770358678079214337218473516566391323099733322392504895093972583124089802251728826234627846175348151151945607724947919732120599565030803479243924169500807516233155389733829136806485198026919891326647747587158051873818892586063004273984553625315548779638602773533814714395237195435653184938913347516141935698136245375721144513762777961321613036297168983760575935025060746906053902066601312613999257264944837992063599638355695227129753783152492971046025230013277996134735819219022633219027417843804397357497445701345376158648176912559861283427747300319386293546463862270400181235222785053141322550416511259586011200104748645675156058448311387307630242440596691605478394159853990017739432544674771464121345299995239018825843845329459702372202526848856204864570012899874138185028317799229201972207171295641728829258659854095190085520128296813792572901915717093646793966832863245438822741463615785645044045447134341763372183096680040181661066832524044285499703828117084548122177975012477945633310304111205089632367661920229636205839226150134346498868917346662419836246736959477218930344428575009484368410802957912054489780435822626831413117129687712571142448130885677002110585702785849472659473499907449747519312804210396738710314991973974524227089851894171028844174788427480222907233878674072264971636159760325027904593429094791403945891166270159846716133916751837468574795214110223716548830710172892921868133733768602603774824622520964977781782790258131192601668680562200066860800197356395385333305230918422450232847156999384814257097849736618366565679923048732896977303507064699813929585787350642047211441040052887557694165436451234194284087593791734576705510435776817568020481982498956884934341404620994980811274783058588624996458323236576568330119570739373859670850165817728736225027660819828494481177235415814964175077793797473727281797422053472203129248645238022900514654849522633550042634170152387688041339184794861513850615912396446984371823969596579822788552850829320917057600702760126768895413364118538525804920500084380397821833828514156154890014964829557184832616260933873446227054476428863842405998126908262406392451180940677659955447831263585425538028970666303119339623765348943909095683498116535993197747183535901710374912125183413467166871608202722094921326016715446861709367445141053570066653316672984370674371707157038004966143232574097276770954154235791723799184211465199441433567858151239283839683166319484417982593859468357596315805383756474721438120987165676753079269153115149091510411113403779148432766714885659525584799019113938425975636189428233128043940674545698486327056037768562523076349974686785640237680853716860868886970075141421383776667993786075957077037632819266976703853202775240978796399830101508704679187141347949721145590307249183801819939921122665212982423824756923061569892923710462139147188668842226005392732823249828554271596757659942494320813342119856046786261797504351495801694210332857023976588314408229779115013318001049168331134081798238652564621202852523096560526818500840132000670521220320196558406082224209036294025973267163608525161840477146124616403471057369441821346733362605365375579670485389965986401699088506161588586852683716992063074531748178606645490072505060778407048258847219304463193287356656482815153754863291071366390473334571857620329990947273326473819749695900728452431376654718796309794255364202789039762785900761527691081680985719419071961109175809817355458530074265179742104438306949115048995927462956670469710175663472870400579083413998302041027666476687567509037317276613601075361091129129077156662224905570551876766104863940322133667163067211372528242095788648325172979998635162985927559572614057110244504485859506435680671553639644435162761538931118163747788376638540869027051634760448233088255877531476028795844934771698395363731612333125870315943397942371131527373089730284521238954360636618587085600843449678170970863636920488351515398654494546640334514818755808616366756938329972019449822775521214348604915762457672608536944221421219935578618898309188919061574370017491884284535180186308279638075650779044275586285279577292129798911260050286174018887757132121930687593275494629309890175805046222865872481490406180596523693424894881110520487699448281316090462952659713203546384783016548982360807401884029421475161279999476502929205806139569850324958486887347977364552541446723675298937742389424187936371717527046995964742417934340851680606616370349356608449104133950868291503315724813329038238482220678948614708177563909230885690630366360903714988400386295195072039731682167597580346061097677861155135844784672326655788730331233378828645336932948767409712683394753954397362116101302239254338366097104319519732433317415056275706370772119900631326977377848394201819365616210114886587784934068809811818560902587793985972638370717852460404185177019355410854004768148417171859849200503241229845325734265140476665147978803756036135859445661939665924762871439601915161738801799908461424603513524291255296857286281588993556091180665079857384095288371665695704732784093100724894283589852965442849555782607091733876623702313393638794970830846509269553125248774414405262231407047486852871024474738436863075875290272103675684597882876043813691695848293987551144699013951265309740542913682547324984872601388656832913602886117455150770415254257848002232167478301201239187689157513886470158245192882751408802999112835458926121430438500058087895451099794272268173904979094973004023602387065239638924649126669826606184946193938102699687389571531341135144921886462199332836283462119750507744703833680835182338634287699703206678632588869673453444676285443066081228978614010817054317277108596240479416535985116687451165212108030318703751742183370169087453136182096022566483256136990954041928555476398711506633992532810467633697443463301412403436257065503556358502531365216465605404379351378835825697272130718243745529777063209836869149386191968505582803802575828746768669522637236531553876752266784767975203235342846692044522548613230114337925304123990981029250731502560110536518224810533532521172351150974430902464836080465941026643875180129559751467912906457330717449307552495153495909840556881670178805256952152823556147995626705166018534672290634132137220544458201828959816145512397697944547536232168035861986707748639082323237370810202815206881808064845419713636614990111442974273831164702044713926873107916846755648377621421773970844561538426923463238667459699347472736771569699429406030907254527072510023532569329583570990887489129925721115829641975422883992822764344186130745525294981815941690098921617992116688494432549720707136728077491125703628050550700520689852766565641270153078966382822006310085752697981937591312400185465463179243946710437289681630638542193044392370644721663292273228335856670177745845777403128953782172880203407093436507727629531856564482571365099212433932932107448409684423336954574244963074647084510364713705951481196117419585670560292001727930745135626120345357337099168620070962846580358359537694912615798728952157111513477775242528416623797051096814334572301641100535828866241079197794979566457298573231686201818026423369265207945754733146685251529715567480471094809317182702476468622207198326569096326112780006053715015187587019678669195406478360639730144905918601478226164525344918564723086209673035349539577975040446395884511511975816694554069832676652719167194841417794773942015980317345792161168763480205431129179261440690229042275819629173308690440835921289406058951481707737453569493778120897159007177085875634350127675842658164655977762596110034954389367705700071415331169658136785053516588720143626610554019364000286617503240406431647288128353098975493731068718277686449222780061236358380277137862651582916094951567787604662910346953946992955970729211217724400108451410850601255107651133685561177188944454596751723482564272732022710675988338529752584309595871899421605265201233268704324443193292065146351529008683376236808805249594117207095207691296147450960242556359145325741982755057162415168585429364180237693519016134148692989214383319034666716452518082373141215812873692600065590462530163396612159238160463561432096064980879825215296512594718995979485481056146857966291346294351444958674641062408682839904193467594577004357074651794164653635995213120610929138171168279907731212414923729508193488578963209104600575243484793713109545345694350908549901282334038713660984040093244216867929435519902468932927781393928820136469825289103026355688249282012359801103085960938496929998367635926820958440508886404637188006259539960757037725161101833895576850772368928024795240512573023355917157201774778027412568635873192882581356372498288921293156805731787888456961482202489948840555418713507020264245611166167374207148072076122924535177592585891825145417567600875958506179203002445127889633502463886636484333724172629266628378158186535616476842755900251154009137081226574066133464424629255822269321899351296214100365747127352904013166236399979609114679323715260459208865994272319971013846589302864194458203242927559576894376302161222893820499961116523467921596097657007897444353632950562784349016178482124681987702327362470361048209709399406400704538216137033932938709974395881427708848957423614495686520160302510732023641069134393965799019180919571438615953624594886490878473557991355858651366125094438155893565237926062873607121465744060533580804691361688187381890705266248162819639830141590560207478737429218810223211956662621898734843161827961881351500773965234266568001412139673812820808322162769845804532374563796293801740728388363167556990034647040522503798072415100225390249781746396072858026716809274430605557239058103087171922735744807430935667554001578366029395977602155208155474063424135861624493880776920097060061882683170646087946383115482976142177080867423360182871987349231692382392179082292480485364507159057639730853501283969308929220749170983907897045984013800864796191090139225536901053760414236449005385058680751289548770095488827652810281274424301412880237810260049434827816623743913795131922592330002891173859867166035323513891248229198956589342675422020809283008347392068862725772557202123504239333750850874186436444958657736313313705618067273411029321998838036703309832667952083864281880254079799037990614431179028992705060022996684132261600133444131984869484537313943179814635665407629601417085431578423406873753604135605833840179649629898127343877724197965043964282172209815900142042639734546415751652136208298678246271366656724489915452487410274089699772390328352344021553463657644891759174604770163108851050274182172979499641865774440077171844667766732737085319592116252414283861621664462263213678011970200125495443850622543391877212305667116161344417440170611461592173588477041520304770683102507783754242320564978767234174729987356408728210281805210954223607517866467684162568454326300859692267246334297117409353845310206528854934023020716846414168421649515874533555487262936252700429673617913367522287240700538826428206017699845560851651765492408225965423676886038631093317655692488273706426653290789477901134399157602875752497074127127263250362271061670307718297915185249948229285108337473306638839372608633519284023602392691561038185531959575231084018615387572346082411704561251374750408875646856937979961599964589949988312465203647056546200004123751237747945880587764895867441550235505021372062138834253040060589188322370246204634826831000792444710302661403980072045963626143539442528263347135606587995600655823102030031233761234625192939788012029495297073867967591594496129304760575992727116693798245200709872849019822933040990690813775482229927541849429522924382792126120208754520391592684270808089588112854150402296743138673698961940287458392719133794204624010852796328039574026547725810599463915142795389724555179174261752926316160017212621450418528413546648017609975205048973498013303870329315157675566219223733880724066705782211957420275779439193062357154137666353831368914803034710366072555347148231571559979526533444693783947225968830084946869545109704725233117591489395987695725827847621487550709878931368035348031499097649599507182422900564182872839584927753534020524122552976333445865410500664624654067165705547268432148902778322065423992075852408561219244191768088323044563001122326655257994479696847951663372020812007819565613103077830486696823949656183430211477718902549810539737770321294757083568908306750288611514978190557424922779781603597230970165131847380678380945356998832211988144303353548317005266235538827912503482130295367032738539053195860856778157081393759609428473640256262651498445603121876618329538308363884611903919823158119489223613987760360649057106572599158770981685593697126815834410453312118446817310612994924612997525238666971163976051114857179881975140456892338607499138867107666693550937762228080296028873506468194330382578004418066578880032572416451763463788627043822111920009852440725882553623453504115386585377560375071447721958800372972167016656706025093006025693740125028309800700798596196408819965992384326477420861180470318887935124060540212492932034225767307058923862433552564743397101743289410801554170370660083809963749266866488219781218338160247613663152795632891187219934142483192089299754805795410834512780851999611888286170523935945272712846422678505198660939920036145631363064960929149925575008068485054033872207372349098051912140023733025568775930018697266417840876416911742786801179687182704812373695649678904541672989967455529252000322375192298679776461945308016182258939698805355614121064692375076761878886815884421956164597525319780753173695984150601439459455721549506628195564302397922268275757111638285150939038122935422149445290925979327761174652425181755700559572436828616554969552917823152448611551457678691787664800387836063311747890057833677669805599759016914855403166186376828026165014712640586809961426214371978509889928519451271641664904249881016886378261964160339669770197937564171499443879707106945116291341742663645248257301399420251010670132139665973964361172197818667566087324018672481380882248179129725029014102190981693467451769730862081631945122678891785805444082350865218966695264765850889764090109853961119810305754766242167123433919372749483763699194227027481184349119023689726357465183549178369122401839498049316501451992224560376926302287476739038426179702246031278554938988408467615649287871605665443426866334680102423694812747614728009914157531040593276483250397469192281502166260824814692024390719526221491065139866015760965969844451016100438180258866824010220679047540807907291737913211064099329848113130871030705853885284843865692283078203259195726883726705476410597623742219987481864229048742840304377999994248099555240635004909387853867390086827417731420440951573346335935764707593324574438962687976972085397374469385190167548748354868346482435126441998480660739672739241005315258385745053415862753097469310318775794660426960519250163163491044912891475615689897957097492836669147006714462301316648297108270879804804183268095796125043858697403182430980558941333499970865504191156214477584900957635842564209796460464124982262352905827573559076050277532040978150430944592217688709432836879231261398978306658838958729442666775765959062665095775655202111009947393158292770995555772931881639438016632611697140521359933850969177444769560101424265638470334119298679429908590930995699447206968912767290515169657254494293569245824713605774611914597171110350099342152357383311762962777268901166185795055734407255574203584402481854252129710191262035663193867306674690338286197233416978379734181323137814758747732136874756374403401387308927861014469599872621086443716103701356192599285472401076337949994770278393480451592204868755400139097553033985012814645896021063659434505333441886292079107390893941056437224083272953577014188869990557065082997900413679980359347286394196572808114134923867859940091161613024458689923275413536464243967688971196285029288548464338307094410062618250457650956766497169377055767407950706208190955069880340277595620564162985532422232380197732490234623897596673818513513953518359032830771580084687938134266802036275385290871948196218438866143384970206622554870940644528499246490071455287164326399506357415266662182954041076247026797962361894844572184130843599344728007607539074189145722504072572192026233296597214913217378573109639524793556985952087154617711142246916464793295420548325470470877219785559752218788964146842834105343275416869583468395039599776975580988082014290224557540142188854799409439425133818085984619055177279375579381057200697276068411631313144141694137450925233027057113908438356382071719360405385275703597071661410025609881005872872645437490700128744513926417651939932927407892673313860554227824056700395360579516923105709652207947478973247649981690708647625134870446225978049172537040844570741408146069821869630176828296309930915958277464769654004036659736917883736910259002924921060263542459985844604925240088381575257508843378440448278128671487824306197416895588514038312724481717854092538582908453852669561413970956002303686238114084258018514960768709831518621684238167020271561100959302870473689392403725860751982412104033007975055108515869288669461398554273882446011266799603732774769432908654370482878918801095574036521611101867357889446752015190293266561603202216599619017209819626302763133062551622402745836388589862990911712013437521108437189992674684410121223280872381712451452258294778697104197553926697246105135818316105249358868819679331430772753059329185604009230366342217118788933795590457750461430270911238729758539326007849866853761664977493439032621597302039874562529416719913236385520464960763618308919366151285674955029342402601579066644973084907989939889406352453819869046335166849086803494730079052712549235260142624233684364693974969432489593111339253011649942475023383274633727238801387037805512847307943667456022656871170083966965449680658325064960642846783036142455703648815887503258987101328097875265760990865725461896734766367805771435367409519545053096030528411125629190834824188095632736748320974381536432286524361430756183270978038962091050287622207729017115842813979705778122716577492849874163880910519489907441861468159241311634172864464826572855176415892534799425470591891367882963078672257244404922776078948842832049779007312220811185125037663873784549004367264268129545108608109652501171280485828149243177184289165654099148851816118093592634757908589215317804313148413910230162192774942396521124787133931705440339340059415929380139410393253476900537744296228643261406586571026010064335991284307382209614394574987287050358546111196119041156789387822303064634685192247644528271959688274759987163784994371441893517300708380135363855121584131534517482161122174259566677824511286741513890711988098966227583812972092203618850419101866833576481185550010792669032886282855441157873702914617411605776212754568342690594096246557022060803372360715876617915611112093751874884648646746077614363560767434260456984841825019403867529690065409901087784925829092320051581014270929189257561570367079048528873933255058216437208320116609105744192312764692750067647157315039028162763581801508390601381213955288060847706434567024569988053205074484934927949371104074205200279182038389189585960950511473971562145994507742112446336859777889871678621923396984517420502869781783925000720689277275224420782472248455425023219435419270884057454655258447244431034377223347614276396846679641639924562681722934623830547307089743315978276002801996421268751566424872230052367790412160481270318696388470988853375100547301636150517743187773258439216566271304909237339329110018966825445422512577872672819753860901324312782712251800218871049253268350750933256055688108144337899735069090978002349405557980049230052289998145469585777491800353723214271451884374806143253917559485044493193097002667829534327520091731988857879127797362901574958103731579287814977299039151939172128341050987355632499053679821057332520647472024125265360829923880936436016692412967723353093001763669470665454903078001105990347515616002415563325123362362959551742882964641047086461174466876810584715785304219803711534100676135680116236821711537082465631590289228088426601097237212005884609857284697341408059718540175795066767588972586745871666110840100972784654724997835033590040091269991140790185722457136442402306411464718288256533984963369686693684272216671539966792700559648622153403194248159770546552191999574160919938967763320283781242316361485444772612371386966070275187429565971874442950540353134431925913944529644163784738243749145010232675570784357093647645594816788171334025341248295985725603461971530659846426765639967166788440674516513424051581029062938155148708733063819017106014905844719753565538665987433893237223046979089235477885191741309261492841931604601805217380871691351454729087697475776840634498818115045880136207608828265116429228445006472936953478200931963219471451668345955668677482366818675179916947926666373635283485656900689889764655340841609528225755840470886653903369000842776134903000323610038805046567814063000773569991968476939195486305366438655477079244310822013668487037346933721904541475367603569181864837016252560527947750615457767851187947764490166428634339046699588166393818372819844752496258914293604824726211221046912570307548565812703907152799713296027481573303985842089059471930772695599864059058533867306682489289873017781397566460317127871442207264633943570475650088554308600248904930256324389590014487530345161549631030909245595303723741655764845334861410824428643186916976523869172960918495239134082080409093043755951866610506364448025062181332730172454336170821354810943492708616095707692749993340667676977289977080324221557301687683087234496673932143490687525449926247266172646241586912858793846637197267048052088001124805554988517575997364409766632093823412397981763221366782313347345711835098238960053833364848063379346658970726799692132307016104306929098494806855633600622591125069973885843613396783825377277690851608999202048048479093506126926650702600316643429829178319845980843146668868370776804886759911849234271172376148171906449664591720024745857701362837494943294643890151254666954137198845645281625873992428657106759252222536317487292748533521670290048995600966243969117128028589921331793539408175361268992913888773736104132869860396166456052668023824796753152097055516772989983449270599107335558881175695745207013642468974925119188534036215326345986556150719099461608901931071650913539495240974364064382175465680948547535050197656307575694639595982802674287624795956821466568614055496967474730062339479849108386627980496334906151291620634639772893554896255528519623559598489352335775465553296154540799553935462644085969065108262196928546609883910108579794543414727504964550758524002335072862890694702653863111261609778793772726276285157057981919264106958398147501477215922370523545365253350728248940284597217185418483781425882161877763045932158407837843441092613284123311623310381950215775619545992930609298754314481802044432572739093909906647740498760878194368324729219721043622895278675397276116152353178523292922734292420148036637261061649644041040162738447220227199407075584631486128049151342316296725194375428876798882140134017472729509137319823121669546300019764225080409971971318365441640188659799366555540850312113574767142466294636352491810335981033333025121622680643459868386100939639471799417969361498265099077056223543292163953222181132580214596203363129336365551045305598346904181909400527434324431662940728474223153676671713474784706392499347091677651972824424409620323495624062588129164755958976261105474257067046067231143729095893381260798422653532347747092376084968046078948520726050320836363354202699532146701148636744970258330798741044393525203982617343347499236216043669122022835820335243448784336370412756694243150291527847954380971563023071023171894769423286352441307454800073793823885223159172144123281963099775316584404103609170423767782577616245874615721753559775055351700772507070397655030466641577260079329906906484952491934802273060145213354684343332566769920404225998904899736934740757004355589503514549412316971424949809125588730961574418285466203782376102743520751763794525207146453080734663401129085173279174620855232107131631894620791636050305122670318007553134296029635707927218678210148103738035285698174806499038408011530426394563867777033664810997805010026183963604559055530112805670639814838752540252671755473665748174324386367398462527719336299944330459610590472257604906873257269432725483183252617263440305422188203959873189219280722136468459094081509899598326545459191643548664199300129161346861097337400224114682098075944668676784423237818044393444210300954214684040289621155726280458747128903782970231484470772662985452090362740552861122294962721541167406002623061119655791504481168229799231063084995411993271835440982487367275834362805493915719935172880397445020919487209652925959137017755941651084705859977680807782515727067297599375946096928621975454466596284740745674442158088123267948564573321552783146768783928737167928541729326753690725670343435276453295914428619042382931680937070749035545883856832940532677597830421276344371312303754087965769163429751766157760709541688510707731664143702078652419076328368314202660907495847471399441631566137284249855485706716073321153175712929831737367986107029073292869845885046598889816289449805124634785778342637820381570821825010880278666255225100941659094621468621214595842243843910294469025829730523200905277471425080503439428614849100825407434747124580032656875059230416701492997241601788958214915723819346713246212027631277509855342302297298075521646556073336203683499735073995885592110346998184192649457208934053961627501240381745655196919983803310907725572813241013008978134228712022827224068923978029119619939677080113580334123564071430390161112967508353159735577637934914708078195540928396963353981432985917949788686013455813841002467269322105877663368864079682011749442503594882619134193302925695394803301091155944551425361268503506629322549996236956676760703124527437779185332768982754941197498130059344544408244060780861455113580780131686710019006691860458198029372550816411377149671857347420192818062061213171784621870191591536175819553680767625897010020662928854410476075466142863138089588014214704300613501687166345680473072575913474147086443552976431846446650163283358569635879880370380699394485965178596311656718185460711241859177638731502044693229048192954374659105482582919135009304232274945387170911965861937787827965361761086199099566195967519962161580599166060124276411852589539502592332451628075675655927613196898181330697791703838891029841477346075224489755662417957385770376817459104345673227607141257542086115615935073157657698590587770746577950569975957666716866708176270687516180270156932850134579698161756288040944809849343396103099245992600409177240710051759038779495900004513477266256798277817324335663400737940199442325831512983720049448711818914236942413703040160537072107980574537139521766757462905592224004091993876727291861255205365711155436537474949635457265030239159207576145196585479364400358727216908456202347442486234516986580557653358345637199234338362553575303683764095787791633502982793042120132656746065579085000284208348064130126867938125286969085575825382447261666298742986938087828911176707876989120795626494401749967215544092982417178572658945483063585130055049556561148119130686679082692627696783354668208381125947460033994284613868374883987012406188455621913371644817351257537064967310344173409970076418224432668085699162485869553148105504076621746068232628609228486329317211233366005362584274214437040619491028780762336636920963950674788952129023139792017562102696349140783052938257041719201582969018220183111015668058730750829308434559142198782137277565049837064068592954106222001729512874779168084869754267765626198318619300509682764651646655364239505154054858701710459407983425087962896507306673212749132552733548777172617111639212928363078213759080012146260980838574102967599898401513639963424375472037986074500068580624813637387474828063898959735422934350211557885201028633795823792506489513196696300109697713405320076023827901480693702922599911529947620825301220118995200894016467502336278653781168946438394604729243564459262594525541561732073707005657282696603033715081848031476686235210183465098603728489212559336119168949205888436762294611931017101560271332934131274839930903559990665459848285129971123300186448232497651297172546734818930460476948997412844958019332589350183073708317089751049333158978817688076372796718818231594233711829690133507346420705556981730520373865168154204200184896644053988150572919098116495139309315568614224326855482437897010847758172935648323129830197997772159246302468764327229214466055717724207195729300838636720977267051905774824179916793860821147804789472262608670569982612298953198560664628932562189072310146055830988219322485949232315191184638933269929652338785869981871163461666771298800482637389895639725187013947284741845712942920289256712260330890062109040082607853622681754784476759256664434531903305782704566818072476118883085924110836972953470270267503014116641608010640291517375181634878468020065066431579696484184637253294196827607443583810433001375859501681071349455292199410555759588635140514722207048320107686408732958083805566289836355291107169052750322082091414780874650050222246722206261707736893193613616534412547207149180221703724833760396821601799087504543948496504058757502377445683563391286660002921066395525122692355725116794247275801584582985524951648800409749979435558476023098782922056031610206280280609388528015740319256614909828487857611377386022665005181425395788466377489344756906060548178069520072202585510666849341394006044881487464418696499748554122378436612656794194555457641768478874386511326690411613657005696538674722622000641812460489774933711633133721728467168050795359812939986143149303592885338605693665547991404725014331685162930524660917429991233209534342414232589620362778075763349426237328154203221779268480207475029111348722278146560867736963534742953938612358754078572199037184056109954622682692922476706837016775575120943304582482202896191646482790018276393888150402006390945964641069101271940694186314325438555420232983123333014590695278292014706787916228869106072716841132441346423790293270227226317187204190072418546897046499636983621933192918542431082668913747918385771907888839062255560038788783345644202756804796274926555440804865844018680739663315683980593810923828719492856724447258922164848859683126968537166461610658554226827993622563744791776016719036142316366699111967209958372724232813390225450935763677037163098210209981450112984429145049179610675490560218112411183739947960192382519788470224839182797189489987431807284715401532371451297491489968186941907769718820624814864440102115704923802375002142157239839202330210008989134050407906277071373841360858834839192654275792454348743481558176584814011155280371605023416319806265769876577505597399984179202709373583303663918985090067187805019866304456727680159650634993857204941166195002403914893799188800259361365933396889540904293881911294921906455335945994450345361917236456688004283780726968941970752100493620443508822380884621721339036548694482950108644704503345935235700757349392711142495550103747234180293367665453206937735411418448458564952738758111904871556052878268600571332816044524120941223897604333661969540290538352795566061511922583604121914934765811028661419578316675024012413421429712423568036590831155623226132343642437801779534217858465069094990621653858327757209015180890794644209144748337709434596837537487152360541296425983255540410136377208798456037145307099307121774129930129262364465465090869672065615760092574285385880139266787641624398211839673708509578609146767162255381096841190325908527972945443287891696103929614080374836057403388007640164668243744801127883139013283344555065415545011486577740753932570799371587577164429873956531445593515216135072136181144837492063626073755608410427507148793679602279308223427859371561378623006897094907424271507457846565670907687709910815312503867463585211746166646866026467450707770029487911747090524098986385181966432614366163437330508339749211148138599995682573070380374810578924484770831207274906838829439895055809925512559885298414799754699627746244306223376441390378956042006472775971347752009387550780264462510484714584148733557493391640226864001876884517366153649122945541761751432651969190059524840742988163289829296254294996896536284755288524022302498940275777334711071531339075405466177335783967559268142389149748630557065684358432198738451813539238417691075828126934198633725054721047832495641033476915033164748912063309318551081531157046161489548216473269108760129665091485301951428824496290220160513116226922546836606932394236575612728414700183575168084527263939297775326243189002039108798110361650609462924719398023085077969095597178021855137385478999516093242349021062588599245587500025599232285430619745275115711957251159213347127264204962552286356325547774006132450531811096587235705137481137689801886428314523159905752236755820904895541314074787779023481821377192780203923909566946236685336026574097500261129533125964910397805999175155616410610603992843272460907545887333149802345369310281889522032130887637899147797485864792196171796645684023389315506332766632010392810638392494630165034357356136538235001741608506673870361089378224650993279310198913324206482787194034529943506342465327002323506730873035269467348927027591760840877788004874486094962048325934722066447401941132350747209397855572313786200586619642724425772527403328892442252963697564588748505432345924630007481630045463121036295851491058323050192548734611485785513758893877679657589962251240978304897770501107980682409291777281697829177790637495002087545021347607406009484263868669374595194483005608272174925721559413520464182168182105777540378900584489930043613473766746153107170146773150080925724776367442214162218889331302533053251252428670407395325279960511688362115749677341911959050291769107699811714733144979945254149023092445417186246960987549842903918151596732409858494183054967190506028315048277600928579591073955709884147308808160978924959154052387351790032081637285630622574638862268484634991554009422819040394150103417685843048092377987094601211582427588457827126902578615853128887484508569267268935349925768687928531242202813297388423539052965360081268399448286165622123036034123960935755654364040389145620083461877786428163099155509427790780546588439764690388379147602850672372473999805382961756633199639460542441380762941928628884733042047881946887002104767977931280657442185031201010751826907441806299672742598195150565737477315134898103933931747280063976679609156080361518188901169265372638739818858042564118558405716153539634751585591697150634728717757517802216942938374457652185046727874582009755526312719925131655128155400862097211395385452287555067339601038034264425175177898368156643598628077420360952745474521389774064831805931251693306369222436957058114529779786000174960013979608064703470487292555416224342528281944300593854035301907812617007552067566168876599693430698331182792483527110903198195880933122186061586740875014112148352549532287869464442745276121410571573778932755752200985109851837608285412687627954185285866234440626839545877979840681489388625562479884376475431671871162234905066347704284250183947117232196106394753229786038695691726732331424839769144549121567604223486245238764225586957482166296017486843513220051029622673706569767618074921908401832000114486932525794196823489893112869695065146304638468119054239899217136687152242546096800529302018910889713014593802153636348794973294605854397711610094580913738752233369872150201162266900928306934258375107866453517845461810760890870707982347785945749763171666448107413475171100909702817072752745836612039846521403679907612270238671002510246712001007503885130504481129817133561281206993016507695429169401552733662251223269555159664050785396709512822040558430102722473568712642064706996076254457556824089142650923929997116862821584034055894872235292358188249493060730339914921890985347925730224339506152135746693949129721436811077075126914151373991088398988708908209490729538926120828239378940239720791878921631557775255846299415153297274801248366173334316397027425686874428220938371112889717133762517155379170694187330857149194813833269422983964913011573386800056002169839837080523688715396357761252566505394183692540463950902197259016236456483769481103197991228202693647788979542914952527353187254909553700799076031007911696640716081198291367991654580680902295806924630513922749488904870009171440045712567286229063210010952071782240922134035801167030251545787799760307154559277746256696835391759578321849035291469994411151606005584185368203415020356546253907637706255866082245063483426125616917103009219006796898040311395753244524376106674960496989510813907778223710554386814917798260420872369810175293539180939928793827977971626753022169673283256607987271204977951068265283982334001781918844709583656511778571363235989683197465201356676942108459423500755023615045021356128507012072996621875112807601394638864630023119874308782143631780663189031023481592905980677669410760101839141318609527880567574786148881102295390022696822174628124692810659903494456797377238074734935902263597988458846050593696794869544015979405645623607706007118277955644189017624373510933212850724842049597462182144955057434691463770051673865398774160566565251190136490435096100625749887799559889021943222367412739365566734625350399651308717819450362175937945591284695260730889565237028802971839041589885325816646882008091220169892454308109095903524132031750544750250196360919206709994313422826697065923047553961228418987267253055335173580975307764550160872339325242309988309451522216338628699960492988421015132517268403300753843558520691542822276561233080095758731361174893511304869098017417022892163066654945317703755237594545433093111989867141730583660413084323722502338293193730301011894115370812133715153934278241477413978636649343006049889025323550138612360505552323449725637902126703672813827395875619986519641591611749223565968770329127748197561447900121675164241204190546687805673504379525433568221390918229536396454536932876658681451266230998116308622064793442591810174096772023690627958118147464594457327431902419726506651602255789133207287964456767159311012250711048384756699546117254518749744480212128017582089495626897301851966026389485121105114429312582874653910717835064700544966270396412640155838682623864072000998411211666606111897070393642490767350330721347252824822350093670251834295040999999815514755826652057553958102248376913593112043732267328486939371412328280249968030804983830446966642367759185162317239876210130576927953612584146007128591734696276844996541714534088168339193805188189571736321766022677507733408219547811794865964758310751642817223353650021289590253797528383114541355251397382365137483812915388059853573849892264511624912878854533907265616538314694178241050669497102226020140538885052667621331311191870667719943385069637813230314345188242304867808612062923602283589243111687802563840291169746424712947640243156838697975983272981786941913703284599732536932750535927511864924372924225676125829287221209472057783353956275233105708113848901674540588230159122055649675728160299427680658055842220214723156053167313222262383037793004938378094657179140502434072950930360671618769249575840367360664360839741655501546798343482660949834590578707797156533159030033350168921355321030382247415118004700832382823266165373573783595404099302564980400409370879705212119306859330936807425324310849699251811969189048740271753278301275518022162289462835774938559310878730542652182893875193234241249656258509706054681657282945386765795626636051101001194940790668187042608839992337779979638482669813240555488136567098974296579073864864827990936535725133364975684029140678895091724074697384414576464773398665617049465834454015726751901194673979600829458581889866387895137474347755762695652064065096709500736117990010436570892141564673901908014873297075974088872368265554257328080091739754341377028457107675285046231671138145934775554703085869273794384839632066999864269718451182618751872152396044598302945210303157102293584825864159851252808720516874594113147015634227023004314361423027452234490411026106595892499739072899498683206463971485190451051592165344780565355420678962067002518523528955783506170257205471521022994559394068999501770541832394336796034615659584038152756329542991398649883874352917015421961634531831417365191083123376808495340080701344143240866937175927341708061947910063990151867110604773446267963581229889635090013569226251994113628277676026765064665703859006713354552810529118433414603815186058283009110849025913848295706365523420830744720535589491486561956834864566951562894530515723034233450362475956143091555761263897630999761625793309204748530413470892411524803928948162368332160353554023899970458362528917270475638184898844841811115477616621435511933734936191977828561442089084250918744290854993580678522653988707364981344708421166509561615627733149312586664738650087848826020465267748583206183834930057656211077187623474406062072470038357753951284220256203434438246519239033337476858535945587147369600461919843810857168679090419464459110768504886355110501829442773388283351560964099035040984162145028795929001485689528941473989555804374770003988089068277811138179692655219694418908500296730686478037247501570935038746232575918866682623218455794009797342976205235851033216769016491317945897672150052370186162372866509413062218133259992777087237288607749392427777751123141817331560804043355474399946260291826381237169810782583118746287152337330473846635715869023583117939454924327940507765547184925584009569240719096514809956603859975481231398018581461716331008028727856273711493831954595227303953912802837152256012843865064762577018086122778922337083039228037471151233039211807669277469965506178480649183932850291319750268879479772890816908717865154615569816752117059678128693761547784643576853201278635860295915617740437894466051203777079501476982160033734455732793995573502025990863437278534673303290563778812948140640830232816922226306170543993555482630953438867173281031850846519385459020422302018846148695668560969474143043464490357610835668793606096939806790845294018212633686775474989904507449517989465002312217243746611978668854809735771437021401344765283673998833143922558613513481036231443148406473793705651840005832143563174086383688303573569411786321605087538276084291785948576406861177158756471984347012787790868267472199080690457707604963445834943036718843961864703979860955767079503508463412101847673290542660696274845955095666611064292987371344511685429585468854666741105722565880302443595344562507854094444627553276585132675602855463772124961973694814579352761731147434657639574715965589232456069104241591687880370238902486329398389273661365659812535853274295634881211675619203192868699844491913152223999624821566728519854315571312382580674263448120862103075339620585854527338922216648770007362412637799259101120707810726221684593498461486865848745072042134398417471928808205860779649698766694613995317523685172152961070870499027809262151170762868497979565093414591474652368556252878199447735846083467444084853328423391715744502260459413164061814802924007869073982110078845214754744471285818234440770779673739102041592826279196205944402487689462870326769599777129838514253228369682859747877057821522879972100686160457273075122691389208211445398502491462102339711810396203364040335660550641446477833999679421157186440360920628760863633556528218129316284412657032911919662350570598542875036923349286251262014708808203728360342725888681829879763387347698594609109865774718271065027742847799532091537403854086583655745727541726617566977829696612420489979880851796737475786750945646879730258787244112884818117536037999215381779513859188330569591097843709831663077568656278733730750195328907382418355360710010433173865266914495835273971201480719602994668523644090752209871562963262277056324822483815930959158708917668624157513614081948330231941107118714742707639880903513033943294195034074616368269254846371438027303497492793781233279033626135165431993192654392453482404834200208761546700468079552259793366604551132809928104201207667855956191222875344668608935205340606444420772396330551863341464867803470890957441867532894852860139446097535098494812273156025509377292557115428108843251261480485189017800315093716365020978040615065139095929065830801958978652653355269410702559993849643351304612521318122841906773336349090300731996206875604262420556750944917098361789198067435138900138243559624432515151432331796086812878532086675283519879896977744907461648387445284588887519785845672249394366331634032702492835079606686005831401908522768041783614397512495730219358424099468513192707612890112335527261378518246331812883383034265195358397605684670307382299197930847671835100437259828601444241849536130412819182127702983582700640502346717708281963425425204901281382979174219727445937327889281461448575717313205089873879931318135326756089626485261736796088541204711293983247400357505194441543530237331861586133523642252899864462003188853796611855540902766566450000232986004428243494345021340816014644962420274260654397258717727609460670397454526708978462409106006792114092885542559271330054510609367691068037362686698393001014645959887720477346193599287605010673027797582952073157826301058630662938179701546049267496906208896957980092508879591255815567268322992773785641317553028258406712573917847985086702210325155865927981187863331705406324175519461938202673009437901344670726002132625428445193315353777438891399013946482101311071089617392883530660236723828868019008522293744887919849804774494857910718278331819948689433592639273813461657413395384062813519266425137432093194575467475825303229074352050806431179337867348796952879315565674342513358417238223708696626023587736223835352076791799033126958692402237493593779557171423486870109109033234923481509758371295992747337649020721749493198952229670487050079150418519263167363462130942106092822971922476466011235891228133586922739282392346074286927461122384963089364413355272477495319106689304735275622876200708918076757842618779211558729437569263720322809611255107688154774533313121675390446332890410214211263347579866944372678110282927735846217649336949156382901071435403672254830029365704474519443196492093635665679782642930444829612527781012104803564013855050301208115672383286383970145397832555592220152366481415464377241203232275813542326147264602679068126779654768023810366572477203695070057812403187087635184226346631791515042616186219705184761827308933821640059307841312846670770481792001884331893042082235167467195803436505151058153350929528574553078785419430885357797274017562227523925401014256695154291468892267396496988272629408028970716139993409925019789009662748811879638344019593061300715960490364760984054283255454721716945196501826449673970863197087517177583526477476300509011839726236437519354491182565798086658221458780747385566477964666738407464408285502393830902721190200522900470908379135510569208054342559891168338907643873456434336676550728580973844613246778203288155030258066658591321156044525052484016896700738517592593751342388231648963916120360833200778390358730606919619651730855522183600103656168183020407215460621889189096144534803976718733010153993667660851568076003010733157906148849350501857301824527045040241900044463811026349723523234783354394522313620676758091849519785289536807228473096817230253133783187421024699073791751982054317820472582859125036772282576207233706108953051574991579630301217949184694680699881135927230032849741149482120176899194321214186356106522917109689655927393098570893221576992145266664417745361342298234715282084110922102721918182666200334693222362091861609981847996960704419076020127958642350956633380443747220531044278841750455967382966468419697302332907104148663361346528640792928128918672530324050949261183248478394554941736933769105757612616540280240423434461663697861741359521284001740893326345700358167976578641991943115897990881506752852900319883337073715480204303069467298939569405081433746089067007816609650755686361232019036485708600804616630057401498698424008525493974752296354409588226430265472665016111739038346763995835186337444304690006497731912896679969711367610016716428758726347059476535810775929233783038398280327899673123630173749113664817113367375142544212897608131064404574151485403817154076680739432311272499175320435708885211720251836990186222928767504753693882740533310122163804419302448290414450290189944382113312688546996332638495946094495249411505784931417942956903684963731181296943806222002120016740558051932156105916284137885517525310685503852093413620560672128217845558996722548990345608637665835813151316614816749734585189384801601418155110715215880562172896087401073972502886660272125954101855312846359962666572247997718855255032214892863693560466917328394518637805033073560062484293095972919502201430691337246803334016329436217435949242420553520430771111824496405706115383146624885531118526571922321358183578650668595845878456311023999419743344854927742446395335056864276035967910243850174934951122315640793097176968196123599553268855333201649352622237931145987852564888036874712359007386480827163772830387088040421896012115857819933768995394641794687430311273488394280389624614038350570180489510247303633558681941570970589811748208404984514258829633147886676831559180500027872040317015963309098836656980295374788706002246067468675171608300796913497739850111480873742068996476020171186592135579443484770417695204315110772448877116228771496504761244847172353478274137863618136933037838457675101754385331125109744624435045333108155415739655869010782575908824322984501009908444275166473862954755336021630220329635579041156101953535821218807718675186614059375216786929194603715676303522421444175632823539864207450082389384249514249860434503611577153177147638903361931759099923132440277927953941811657814223256193889685530699982424584454627924513380713865005713923902501575776137870246510537310662442237915636917197117278140981633162241668115787032121531861571212738369865673701806340109885604198502459856957549361789002227324483583534158737068378034351213404762297829061882340571782708601698019518790865716754076473715910535334078278619151773707756802588853842641687041134390041695011635908732442746971795581780575990514938485158353706091229927972942148122713746450102391447866226625926292565081143619822740048409266623140750314371121882392943566398883117906411923244619750008781618368004218062564344046410844818626189736392385189122031221840664872401456913369650888243841290787983679987416980078860131223743975587690126727654318791060675211540415468058649335110287099322976061656351033854463389280802906314048951272383046627602522043396376054028525587341205185638082266174589284794081169849520843306937273926660294175787707853915655275813402013734487409489640832390217048070877620075692181098953342534246372902723583297553517306528615479974339423553035545124321933464396295609618432865132472459547978425754445474326227366697629769222086754073652175188348653097004537863083621584882553534785588052915844557896739290415632148516737569252383666381356518310464951129820784043332885635399605371381705770397532684983971051178005524859773966746021862112232601050679392010074863347136044865649738614054478940533132488287577873951434574671818978505746154184758694978509635207996797049726817264748427730175069902985532049025829231914999467194748735353887539684759276741227033042062560607947395768442114091962834030181702292337651753920738653508337991798271301930166673868897150057356515469767313831941592379541822205448505640952117631185911093957995003870128698412286250452736279511085876450483935271921880187748537109983730665406053415979898631801176829232508113629533529529114049222110539953357245696553798624030173599843584914409181575507724252606885627808343729767550700922435308718301160243929198787766350209090167805813825662399775668277352152369498573156274382283533212910587897219148137902787156740276119160351356722606736696570334002458142995987843795076112005122875270370758718521664778441555259367157425714252012447388448668444084172463212611900013098293470167007496640803817869351079428928622141443992621535425380177799413154653261232494742187326060211348502425124586506730795911857134305355652385138636136544633635682405069178802208506705337932930298580875433093826423272796633282176437590544308262629830494985228957299504893586728602443816515048927890962505159276311395858114161452286119154429145767219061797656904869257497301748218213758699215814629400988366567732728051701420368330819159228557177076551310883158294047609635154458888690816153060336351969920102426133570752126933349956099975614265847425014019204915774292446588307926091549656693352935281547937780169877850171840177207432476968765700543101534199144923977661883376990974981792141216182126431758333736439749281617387739767269485241602330743109985926990189431882516487249639803951822551137008593948049763487032730617738109721929619312123801247974802615559976112997544726182420486216871396908519035549122969487522703301282530411639232823658140593207267597871080274516965031012355235586044448433142015839680079240155197179454297998717631010555712352412560273269717234093249119233901514327335735217830426963818558825228862890348863641636988358987703963357001126462121071530504704837321436197688867390015971422880697151109168254992079842681175532095106710007273630444192047641407679665169359860484706798596452005184587546526513353509107957047996314646041024125798622450088608143123043263905986192646895507606811726509660956434690364891657470869364243817783824192495423739966729863361939812889980055603995643501947569405240058921214976032213823670840671464354154792771112754849728436824687319399166583926180103079939638674782149063798193515878254372814736836646993912232210017946386266816907832698474845478442873834056365875518389180647241728430930339296633320105538848166798074348177771479549897749988935135470876686532766185440500746055464450996809879451472345379499966254505104320107531846201637892565645675589750237051770420930402235674975008381126279479209320592134480976470709878219357260310321108580322877970354270662260175056508130814618694835486646010345420108402447944747387079284454224501711844931535414452041836740304622777447558623502808450230044150982421612580224773406119731055095577754991749539899147341510980160766136394998097266619060332990830440845888414259042066489577449186676423840030970945860798565008017833890598645971170299359518729424976682316597517894728629859818478415151412488100028111549481414318936879239563602470737319243649485250794971693232209557432470622275694348209710013340521856701004606912281007648849781218059373595843502240668773350870120731990191941818907958171233245947561604609208406747319106800860830911031048470865901867347127825381788212385625463006005978926127816245784056170607992598981723409067421860306832526430730882746169885705753881596541480602597235807039554939231310991563202571340727749630932490224700378888995305958516361499276230435229892681166826101317177831260316557141456252230840142828936466503117998207957735855752016346675536796257183123685165411110036796580095794556949369893383832079151804731227314113513544644448787425162993040651741788135632664518021401511881856993178483149995403217327614196746493806622093377311838973860151922508537370840442145426122114447890884503798444446540318273621032499691804097726183790273348984352123594514048653733783103562945979269331060663771608508255107615155763408664406522279506358546846868332421105644510219043666956975376409853442538775957854695641630635958981239575660926121959039100471933931851065106813783321215918859885837513130546991549662044844660516668443369144780937405539621159576214971882891865672509267888252714737574690520118977793191229201751525879905294866137045159162088649122523897947569480487791760277456166216271812858667524878449767680692439932212531318905240397390848274910538006865187716236750380222540221527857359755071163380667031653573695326042356657517395348626266002015134266748985781570735948815027664783499842287357762585435945718993710353852852816321596520057342078541530873572166111903272863569390750586849660532607802701826260169658183002765729093883382355021579846126385022246603010826218628740473208705582473018947351473522167706786710787597306069497851778025738047131082382174519121389483857297864720521428907518103027779659388628259150112202940123286127577151286537820886859160409757929506767087707279499083181013315144602476118678922942094290470384943034576138348412464950232767208564465950882042891413606476274090773541973366413607166153152236630001128081452254522959728569546030335704592273469336234991014301099385687133231544361605880140919075786707213289892346581512826226985634768338130437717094152509313809554697347219801080148545010027869808153846032084154103011151295510207960521400477453905757989647560046824259005937887079123760729590214237348686382561638325382289089268841808024452080328021910759287205084385373651433918200627775657363784922499694511050282208454913083643185312467602232085855136708928855248140125651855653576508572894524318036698774896944600738014547659825339193182550779444800412774223677417834521514642000900692943419509925442028935700732055639945147596223903716962317307846017732701426187309738699075486770241302609092583615986873585286168790836184914214576337531060021620600816917466771409945553583431463659804876720967966523213084617096980381924763432450015086877870349101871447089949693077121373110947993659423722443567506337524790854477065480050454571464465942460666040419095402386428184955878788110199852610187363601181276432057397389881917580800315099174913506502370901292966319444635432648442459696074751486031864992760968722459986663606634986482817133265337727267488404007958611128086227346640068651106654360466134940556326114573797547789818817823039470801598441067581777090043989617100196362623802010406714476216535756316952354251646548602574237868008841051297957086594631326996085797810332794982675581544292721069822150491933670501345468186499405506026367840877459267025247384920418677329326589933248422859297400620160890317926339816408346710436882843642415446261172917560355614943914109425822463572168184777459109293659471734046827449791532077936882872709997335557884901178791370124434511907291171149255219132617468910711017262363063402448464892560339866569949225107133957839295958069456002561319849549379115407030357640122180736079782077973664876847566203844791697896339680932956276381821433597256193468870864143246905426474977431304926883401977861192474767386621761859158640532133370280444214334139736425955146462260977352574522858966019809701483456006251779216816960219981914553258086747128532958436459868893675165391842091982364277233011669253329656571086646406873312353966810239016032490848776014617112921607777255105607294294003317222069707676210579861399158709845448948882100308832001149402756503319957603358672225677873466986206706383346617548618847647268194647471282948927410409288391434710523302522682998438757763061591187026760426433413447536919955819243753289503763565660853352296128303428223584559593793168320590863251847305127019168437248840146281585119478019561438327422183154037081376457441509244927762060638237714111809980027850860580594859533380156617992017290463732219088289158646413135532469826169088196043103005100926856719638369706311415509099764061175180327030229921594269271721167298969613925266809389163184932472613211839244619276818444957042555396320567269255879919904673057448927433963601032958484621753445794305478720052243355348657158317463075363605869239869850203420151800011271053347453083597273804878396518644347099690933189367052592995248025341319172943353457543403137416186900440713988892071439823971806604257181164208255647288454702830208743697935436459652520584814898938967449823553953797273597021433677663285122535820901495087256339061458900166651384843211730117723969068947510151842271244449413641781563572437873536309471526199506568574609033149834669473190340796880599228552710931114546051305258479798664164805027678004587343863122252198373690940322230441930178997619358128743947777357146979312294824846519539710759604018912280461792066520712580864782319866765548962149475746617546414825679524757188781256597465007200577977195395685545101931490911876711212341960618156641405073379642165874052168252316307116527633983639167385430212629143220865577292291622386396342883240772335380690595728082346670312655140459692279180486123195143432034031885934034375225232621208119985613648405194244892291097327641152780405064293464421717337887253727011924369793362663862873675484765006682218797428376323376142980418374233544676695759779998585863432189805837177451147514025271792325925040712506912352803727245068963409715597339872823378854791191475229065279719067167192216422267483773697285245651413107516762861379059658831121251828386923780524273941471469510586818017592256774818266075580209941106264274044824150878259124258629784883109005964938494120044370275063579044711079361631506708065479175887751605023359526385767663817252397085040960954071785588887970235277075648026591179953606422536737233225831076506289457567967645826299735760283306332452540074929754891075592984927414933681604332557655829760593682977459018150074598977004519210596383518825428534542763062759381361996800371074788317782873266533463049427096304311408839863825460763277367721136843744992304606147138724652682130198741412652408636996682559521937772233333616276287943067674986187243530604768037995814147173289446804200540883722015426498946288236713045609794404449196495155876244160735241547128214125596495246034581433183641258834515851360377240362291938965015311744208533007237201763990199844568321457489238861100567103907296857047976951558094707947019132581612536794641583895677444367274635531084149088373991525520771500205193666542043834043808110317553750936206429569387970033449051866234303243684281783905263462337895775919517224475212206263465259904651545481514566050064755997019371839812010136238316870645152221624824743155875106762327392258689070738567474890070636690832782881872377544192124659946434705364951384751265734987341665423500728649979740446724031227899138252632457395596959135098631085954644413741759952816511846044053180119643816898753976961970427049405739836471093533839890524139457388847110804291453943677394890677743951316192710332631841513978131779550356706745999756371178425216548101015447844090809071219388729956277698636897439510311105239067031960357192558756651036333341247814672210804924199855851466364182056263856451619174192461232944490855140682508764239603196454987491853739234263275425387006308949003363133028224245524531669309738410426171955396013513214847717948831601096730773369982887679560447373762120692274059968674602609762761811507772947937808743786911663315986540677618684941138909439724878278184376935671723261615861954084694851503005504181086615925337606526559587892946829119013380673550814581292030156644049810984380176760252272638604443805879825101665238108852133959936955454501138978698399425205495832271698724622859036130108739009594485403542903323003076301013539621248596523940133793025367308386715714908701699599593917627079695063559184952331762773407742516296027659996751755741619328084327740619373037399080830030509229149369044127702774139299993059091025202226012741778406427245961410228190157359513077805201407160995360128326499492794502683837404995640569643930532638249020233082174429861953474268548106514466358785245958418946834152794460749364348700529251840319224458187684103164361493204361463519399948093898414897146197791369933373899112228665158362880693618982297250916822446624354483169096537727371735890963420489923251592275822262126636465357231328758256617573990216649312154615629963221594365074795102709160151645850416489057576800356418305136064525376674560117308965599900207514185424192078441167026119467230336622494565171896999036048681476594138800118537627581516686189208780519501782039918136942769083717325963262042208017543065344486981787321875907898709067328430546513434953348307440226373244835739527044480791465098844265907936400969078145564154910042868957535231736435736579506379371898717277271761030578959012281671597321733466689429627845944984560217058884036095996639264609281528178295635645725230475585077550907607160691417444340426049484902988313049812963466039662416464844771397527681140517479607762373342952393176576132278438966219519999875128734789517687240860769748537194670930321354447711834145202510162737460293051331698634674072195270256812057786053138672618478134010973775037102636000083861400343061444021440499933837582131770692509213150122344076826880814252098607998877044128681415362581148905532328546313803632657826671241617562093323404237384089077795642339739324797445475251356725601558345605311947596601961916637720961330472762379262406522026834018785833401733363032310346054563839103920551891027041967763840527876100032987422448785141446252351872837867574517441523515300154806606786849512104967976406062810385676427446722126115302307432001463167766061899532323034578509732156937885713481793305974757004787769505779324449938405907341878858864521906369037803499481728141350777290201793231302653819992338342470898579047827768487770019260007665212465955261457739450630182789948088476421608466405006083655461878164443509098964635198870900574281601569924887489653989740279116550286393302947909172183085029270377752422586510622435434679039561794949950557219742668895801152051590466134048379487687082776522221899406785786886152881899007379765701997294011571460259391874231848465370616523710870346591168194101031309024805669645536510867104623708699257020768386962991758333794457327703459809495147162844238325136005380993586809278556180873832461264974463952782332670316464886278648722830961386533630462107234263238991966081135729615181954346570498277972980010705320838482814013293108695534845930523105725208388808646242422220311705140274344908905878395613899873843939930451093159901173622395902148862317523198612927174263846003363637567679062459564024732657844828170590853771130021042325640613382643339221083341203498419637031256079454372692393684049224996768173352132692139601131774194398921917961476635386239968197290895313527120663146519826729296302220175493029451347838667848158323668209514092795887080404105471960434812425498847938761938417762964455430657142232938796267510975368272086015731618126486479856566355689035337619078638740290795561180470481551920864360847892671157355657996826028195689496555362654817748071010208683153749890170268339493991456565574713432613140812353852973734539238690069521470051815541466865192372723620896380748643932245596972684716512962255927949605888445015196846035000191382534356249175824377595170849021612858518679085125968947970086014482457646902578498836294243431973162350759969347612973152544608748805672851494118038094345983079880546427344743747337268878696465712238031354896626148500885828976907534440026403906094775440693369684050208304432392065121876269696687455060052939278736885568859726807411203171523137388247898642516048613671976796118922333068321252715057124982919332646044004173020913999906173679369361185920183453715361989426853126066202665789380037481891797720087366568995299982140964412509075367875038486320387058122462059551858490174684633535063055160921975859458855899966027073386744259761971584781256756022268752978555242019148944663767560685183439813532433831785893694161755937314069381379538334842020071046984281954189298347594547361860296913401905310080923264992775379021270443262255480700418718207280714863339025411753032631746917393743461680899554292865005886259872522219844047694009971237769518741512003625851820160521734106744549566022799852595388484510012226325266825324967844549023226425727834422853892241534232655218926320982538779860501727083337683362233734244435728006454865415599504499846551294544008706607395256141294986520748269747783421103409801533130851620634249693065472254435328318952483962774597382757749138303169852675636773143442768507236589439336335048762816165230548538853216595179720921399528988530384145871544346487375196845772718062365553263456842040828002436970358385441035698769036499443000154504312702285168691545065915117227670946405794797130691498223760356965578126681844721681461671703564456025778685785848929137772452353375007885812844509112294013748876799118698726176545929556071660491789438428154376083590146832795541864642291344845463642660509525388566969515160960846304076350827542184738211859504900676138849280396328489331069239206460424389839118291484397903414897269368733404206175790645141172692462670720323385347537365986333965193726435276576547614035978155282537128912537109611743999061243731891008983938283319718118129916104559916239523256836926208706308448044842610839306313213581374580942547875767384512937029043439459056960830369748320653169906853080224035437025025945608924671005247287969609591845609113338101361647058955542038091006078602769373385419314001195809035166804329510867914232403453106798555034463558721674346366182373903025488117834042446888242944662863683995327682863113930567347800789636213737415653937720353403522203672495256352904349105497456194049808993881717324952943034660129603473255079459268918633820989931399794855192417635879604378310518673367887028489443288466389889243928753977408509530407887063351720071141815784882675961579368698564382607408716527040786422308539873401534350752814207112984323428239361590496663801051313526239073660970497018359319478326137344670120520055122882570056501197529291358316549482363794704552464790822613510177816933118952204170188542004463837042583519114514047385743570247717936665336296721471797802137886356305628088824694375413718517920647416921594732806453855516251728573043959010015572311194125570744641727031807885341446418446947865744596231711738359869953018705793217159486619093605163776799288597304973502612476545607448049561109882960128657150612189147498300754553254850415996920611801395998403872401456177375099565864863235924451074225095854657422695642252396019383682901385913252480542738825813611926802776024093766132791604050930616597582660449588710750163138892926535169681266580058636281873972570880305681486051504464732254196057356844774802445762902676158123510024311456755057233954873306674603542273335972832185643034977756115135859664310644679511722547309740543463809209526328744701644870101074580963723695273547674111642985477552756822882319002357543433911029739134349245499929225130954474127051703309233301254260646079270778224664499472337353124634771387743870750138692510265141225346956347451379506370241919578735566606690719920063267690551531401978165280520542587525408719508001248575697937277363042755542996344504996795040628455047573047450540217823177394376032272628577632558906158175102771334003954768059558081810574608870959893892218826461460579006851860747094438946506536421156782293227790279452842907240926315475827705900353892548315902146294183306735954160269609883873483433333953173992306500164210223069660665984937441350805434716583968366813930150982394937767524941225876944016683420945454556020034299080769253456132975682806341292957230630830825390607139260421103795322349193814412565793311651925939427401273193373507548744957690091998792987512859341559659982320367320746170976943172899014994127465523443534862779614922119664519371806128158343675648518958483650388823572290141829158466007247589656637049576180331218534981776384284853489400687314167643539437751150602692331397976254547797392303424230199753283061352963445117838525958909003619636149436878674772760101063825558258351648812002906526353002621987890960562938504035749128517333789162257245035018951186718225819952201954576355976581042385530543293654427317361785083721569322341410822487579367979874792267709338045380938608953714456426121443012279021679882620259204047918677671705666417418401239037421955571536930318951110483110651964132530045353012904053136868054382261086318876780750233122132229434631273229716768741610479601242373120641508351371098694511093628913098187376158869001426511717716816627036921912353468870079001732634515993545115792173639621494985745935109142297818593881987863152888908153068501344211591698139545468244298812444688536872463628638341799025784639627043538918505763751041589607936055563632941905227618579934306366091786580314303404923736830194650849969474706997156421865654745134678613868739019454618597364844341701932123293053396298468242862804225671617865285717917474431606249308813853172068477433771760202371533723361628948432440948236848865907646687761515248938528338910460073172388723836211036016990802346444792834628391979227565748982542096450750080721678587365875495296888416797973330311896579412687629187913451896302483994314263900843187753194704237280861353125999351942010376302550189378938585965378984084827997621254147945922760072747585435092190095735416990017702464143356435791848032183080090485089426264443182633562362000896974711861606016609522122418163801241111085640139273985823476373118684727204047157347762876664427033530766867772764631049506387698685919820677335848328091888007822303371459198984008753011876634313593644806097647039703499971037307445842442632589106440950947118353930140801976834632623808152409821211670195219973685190208585161554998302546408534972721445386989300589590231169206222778534451393829556136287305432811854501756500415770148143851393951397823908849901246019403984349670136781954427363210167546221599760716314215182700877459346087681061535020897548811551982636023269979074244085718413706445939162687083238828172534013932557443116013095385209704271758269864100155484619288655585630622989013499174069161694068577497347741871268717493312640235191821888153570947449094256943430733613184195353633366550175383306640841011057084101109374649600683191505133569571949768498238998385531126125161469754256217081392418845608926529384576310148270193544626295385453742122050924901522678534707274623908324460010479981471408229360734892342414766536115441511863279789623444748450365648637767567079664208954688692649929772231862325338325348195713146230454779815295898545032260799841522234532571336711320669253736708822234922111425503917157476299896909216040470780253171047578602733371880222483905376095092453921340232218052300905289807878884578718061199116914580334181860422195997101352887328642136697676904792168444862581269877306025716067451261852444411823439080049934414204141794238643957139185463885765754515859519215157457601428769378022351054340227082573490553694562895939638277195468844167435700866725758730732021427541761623453615724579622554408010273087273542699134418287305655918087571507471651652600336169819281353643355013208294965736619156869642025789610220348381713031005588682137863237039555098660367544066876382647436135466612425890227919291103623338723356418049033392217442028726098901373011541886517596426263993930469140769960505053650038764222176584133515856430169467022617141126610247057767777264461156314025701507440064424045527764679391839742577817974766082605557594841107274692707443626675606594214759381326393327658374879400285186772641846173189368463764380440983324745432311700712504696958167998455635482982015445329261369116327116287555078149214554851643269763242823987128364960437573522985507607824018378253041511165413070175445179134255242776384331211395242408973987863697809787681274766673397360188742723944910662615990371708752236175636522741828410180141929513961526178147075912587166486658440419949877779509241962849143397670282751077607898281238692044437217574041313719508311481115762128921719060255189176129842468815424164289960997796408858156439962334061185596860467414871486782814961651257309723913158800123556626557410155954767745759690871067687877923078694242464867366760784957977240528549504490555848268249684218976746581208134341071324874341901827640651184576644572880240472582300009802833326234206752029573589767289785825772209373934764761745584440569157327546688158485918599074774997046311966589835314853295555871828662973487975392501204557614017177778784342641106035225237678530353279906339237707168462225086020626603285935810069394951227947151610572658590469863910540930243783555564107691626386836449526686279583233400613894096064028348998815681190008349857589575338306325831954614863942909219290332204700984483604893726514083982571455834892976681414510113921623053437556381819575949965675454358931883908876307671377333830512388790831291783472672626776757617581713542058672927792220347776881897513906864731077619179411661338894062041729033111861466782288714014652036450042349423402079416671763511102064386919994858826937525547675568314310278928523443251570727491183012775378658031290649617335960893695752093859502375120878665904705245741985439457357904091170534709960504311694634141214088865697130218110870531123630877385065357841602424475128080766557568503841440106255586779145742152488269379492597568006937981935554022525939698008017685045238135624691403995608788074586177891931728234995561469556788227609411231407377238623269189749911786400914218213028565915299678831970136265141546703446315377919793498083921448553026019197164928506202175422454587618999269714959287793917345121931583842736634095220443385551693871690642365249724760766267482641683937059912409659835103196431064835494491520600732821470800781560262274219453031158118889718760269702122641714952433493024926524588312633102821979765224643597849092169468617152392055898910676311228936151336016009244460330059245818097081023400023394696559232659570588552399130118343751744098811573777797356329110567548604022113533130533226639660969846182576629722341538718100892216403337287532369664829236497122512725474056440913576557417156748742258005663807526489129128371000229959133756530085478379939340692583312297467540080244081882492368795269744505572676096218096078300268367867039827531542933952934570463758226637362284435715334311060203275931278595521349114568329128143348590645571698227931802698693622977535302975249939568884876701823063975458605541697309148713678425920011492890069810182711800054121584982145088952022448933392287503984712861304642300425679196205823090842341645272077405286043968108297122282854815172202598649608199370195072330207091820960114013790872674626656669611499460704126599934898373392930183769849131682092766385236358047944562544346044208743370333958330488635988186458499831799977734597858005548125976611138540594890678746533832390226702559356656718193153820564406187832307951537171921896935625068277228802837680046799571841833887308812496462166498676317848232238694480510673985118867449807220019848726935867004598136564577836140290159363011681226260397492589760817993417486695682684586449764189496705172376089387818194487200477684059778130902800565158321087680723629981428540480197559078595189776717320213534454468686580003984675802235816688590927652840444384329174498155835973640591553226850714684391157319014233360179111017922474187694570429855190069063416755802426411013222154350247468725273064531369039732520923540417764252339250235192511964283305559837718488388647043599485386655050475065044841380595369695315475225297940626341826487126201556303962410661010297078247490934091182668031720784577241884200184574131216799030844546297129872761863784607701143645680656916206072072071737700112942536733329098337445252991909207763057051848356414228332288081265600295511339758813666445223662623827300208071487513214345846507911796330556658404122044612868580831647697449113613480543819857262806967452407133839509375153866302359502602825353912778940382758904227651096456088593340529530696077912119077813182447089964254762652204986738256123549212952300015679465436087878540212315301758851409338427045476119078997703140681664308691589671837252428341029431583656232140918129013210458412654755843413528380435066706477385411053745563699503889007228934238877785619663845490450333402157590237728577158328497963785532761489380798115059508325016590708808369193128896819407084226775113008188500565670658877074643674521324694704858725980509264874194551796106108287608865101763676863197292173287557245016761207521054914724329829577574356627305159231193960400235446790904302661207479539630603741980159240125078185010094462513647871364497449348150226248060850223845701871225712728126157978452303499524755502752801169938229327352857659074461877183105716487537625587568830220909177882377275354592092753345590494580751963433413957866507230865847954932298979468473803235077769979770661082741556097489746640643816672784601658142339274474806608371924533461794659103677338820329564184385090945138151886013506522735597398770019124877607467259791571058974637703559916581748795476648363420851705727776495562829768560167170391264379892410977289065832153824613884489587587279913182088468383946814096064891817856561609123947256473123120842476707274633835314370801222801658949291742294078201199932734372536354893762483621400872176476387364468303888412526441859283825891567994324525594918082338811724741092024064256452628936488503779236753119130565867251102918113705453078585190531784172504741829531766987934772363161858162837625144212530542284620782292918251630174375539397670548525849035850036496220648464324087042688259950458387377775050142223307228112632176199269190756805005409317419859761477982450730467095433901104858458271425344317702789190863837820170179482435292906791449766221754893037745773730885606734586845225825040454336142443768054541711463838385041534445224166676091603728344707986093178018472888907644607257555786016955706109638894992863699594163734326733509437358352171720296655951036920720015555580947417177229981722052644575265332177320472149278089598593949434210844549962018832638597527659973708133545249442194290696387220045484148874961955729300972040622091133403141627923307444815843010065321153195720425859945722131360133923975025626167656137507506238697364193625816762001903814027805192670664980775441923074725945397774226085784614953397131537493944761160784454421471211075844684560436413869420649882910987928365615341361647562257447257650295827923318707982171661483936100003382597678065370047689239577543396124337007249315937256593552401779144837602082678045222472108618657332522248090047746821405994418786229811053063758310485616131421754882754751793045168587818433943647340551705389373888429415168003762633190571819489087847336118293601509772413777848534142582196213100099954360818917335966339777184254604736156486974494919744786544422006078328895970937248631107097958963476599945302256447827036928859725316254483965412123662472797716187279640403606486922952807726464481706652586008449434554742256770647466064955589062935839241662328786478251349685271370313657036375290548332144300369998162167828070680121985679958334055192825944702295590559272061576215937741267006884392001257437708456188845017470112280846397828196359697631570459395199159647418818605983212722194177111613375158522761140233308941770833712441938909204901960831489367013694693695698735189516112407203267632650511266286661243718699874273210261288854564157783010199857215062418622800542561614014287936790798037093900691010062419171886061461385721467794947794739347928123270178330508470566708718283065494858282135242353606389514595885451394742609373717242655269917072284172617371768859870468327408246845951651813447282727528397584174756722767198114631655531308119379326231677706593420406991934968236126563441340074669506039102729937773333638814468728720338026556858357519926171632340360707570575596958583513072738552337363505584041353299140103248626571435550892309355983346353362542714150677935002272420301151734997862071624527281139845039522518800330767826927082329453551954884007489913265077889560887740780500103894139309052047600202514139891620812240872700864082379631689918281555921802793641568389347556263462064149354944259547069778828439967580570143267328284391253218477929440335088459632225415357509414855815161211115563673710279768162844126361597251944382895155618646059598945917749199269436194467037476882603020071688861833016018359835838998534822719833613760908280467933217242264205582669079889993592326063260193187218348887784732959120670128134490399364799249619471363156320661873545201228421046619857028204618166446547871399977677716981503461112767831084974144855172205494819661790170695239503798429924743619443471794557810283272837197864711942123251643496517212852852431470784400717701986095387065472789114781816711293557842724468698566282226775818602624117734731511960784623526879169770241828543706704387964580500992104104032114369042036483120193788949751990917771508393915643437212921462880357564599846171672242879260687538347610988348214452882942648410186885513105797212677823698831317199666843861768787843073301049626691437407354101481218103827823136643663659144698794784697986617281373383647641914291312345721294279975282487408896718716854149519289350834749398782267683198568840580876528454870929960534664163773713486484544217893918674660482590052412405007616056060652125150535091482738352991786518659779549549849530462017707452623571030353477997886480928732103069142397997827322210142814493348811988083195587292440462964579948247977908883130576192808640427500213026724608644779900239530495958216167341660705376312063138144791514238690450164327731123269695225916802804801557657584675599152162022124675391043058126618496056267927462056430809282032653890950195148962319055518399115936162482372668155228622213929707191742927713838526316596653261022112512204818707023182296442039906655916117809138856604674919471908393947675247779464303873749941339487246953048775218665303610039836605100556929693191138856233358773971971618162094151667246437454988890867897978252345747124192777978479283090003768960004668903649576682610450523555694246053692138083894697373962385370368352112981794785518179015037232027566158974353717849756996259628455988615725444476971405679847134348827476717173935357225935231443827981911516986481779966812717866705851966704035791389193049246145811247612388376720987055697480179472792944483147486972967257550554913034267792026488414245460416083785301408092668646179789979052526964805239429096419955980363028235057760298507282540939666639981409295519763090444885651102558436412379351801132840831286333305357732654630832015181480955213890721801062410810859851716948454067599863167508905680851761468646436959229068967244180942725879995549575759073390126105320118692368660898220456088948851906557722807173968524285284368914913548892222363846870998639545124128904953637620280750338246051617853383261782444362581099675661005797141268669517069528518412140055750723688117477407666851820064447939601385746312300327610984525580622291838210845936738413824802178266619981635749854945486135105551579710732840809573941978797647111340908949041100760651977633353803550243755618892592284275054143194308526715862157229708544299484116916572644911033758332091049076172344299567422376365296837648771833996516516715423503848561982836502660628320114662260760397031195310834422837025631597692282573174502787626754867191410449355683108183348717360514820530002145734643408269140237235417109436870313769986920145462837124766980190330144923461633077397247968628802174882200248233138304408140799707473247521624671692412151308766076103860292664195010862056352162866541047059518690523236767353547034977220016172829803613964016791516312522752038808674774218515196160515496069942962154666682438694700952359427742276788451321021146495379843464227214486153897230111943690127658063769569003915833252108541666264991326591128694518555728831365283296575813194568973634099050991562933873883032929658212728955181281808256561456531736539857890508833364168196498455672046337485675818442881642083028313921308110556226233147837114260081330401584193585911971114551140250226800114382474658916380979787443248305115655586906717848439033922914478775488641248653210887974081742003828364528691808889146464721034857144199409254346198118043843697369122566025717702247914081640750399254920811927740321437373309702592897302478162165256275776318198798232020580472906369805365879242108580630089188297817953031648870377076378394650860488229526597951594935721252193366349366294596948126199544875484522207286004336956557531547189550019853297995930254746118541705606383877330544901649989568609085702060257683185871119517628302966651090930651660908184538204685385728911454867276157954310277258090944133480743485705878981462267562407865000761245422830917883511063185019347676298293595639000760596973226266305807327639517005124078189185128065236444544307035595161598917532306554846929108655479099118926042422014445450508867247021967432804161247062174912274280397454785527116323019765250042783196783410192946002939999748150994678038525801200725183753257739845769285452666096559965381624505265020694222091455681638057014573550179044930398827788536242317540453908769774338409586745927366322231905119340012620539281471025345558112361622445625873107192029638567611097633997888320062337979518279562406638261933092488859645937485095042739868249965393305162878744485922858818695311052249363811504256126429562299451339861186059182302443263956897243994563350463083949616795679359174415921750581987558464448089745586871581087813715162031658626811219721406407468115559634931151244923282398259777015984326882187782244636300313473007598250736632993013409022226452857983680945620058496742789247519111076453737587077382661900679680902741048672526810990232205901046760414431186789647090802676992882098106289120286112069172851413851692987525899899183349695709322448107944758898696007569214287144197961506224540428861829395215648441051011443792598128563157753884962790003798613678431919428585186792546554280388511507025593180896153270530049348459490429189564501464697406739899302183048521978327012835404233302378716742095089198660176539272405399795804550320434611139380666904315198650058411883964009201188349674358892600943676408742256433627789702444213861670557377743339173395290882320316488206859246763870514543937502145100687336213172925689685366383732622698622223871437007414141491665882187814268024336921666033432505752873903315107181788481870267350523441865665715075633928980968267925134738055758402855687773461076743914312273466472765949109834378597498660112532944976686366380984746501177884693856788306285434227501702387037123520712225110271957306084405005761712502676999076551592901369828550179196302427252028150130436134388998900017798863033451265537863987061071821298512164403888658798213464568247092509017352183482611779035907929351621397406452423661699997711298197708468310508256586758630602081495065587511961222313684914591246229432958922560437553258925813693481763748631987031230156406645795761023763072193895660519842532464936277893798716578889871257044104549209281096829217781356942279275265937291394735150024538035516113183710886376120697974122207058813654749918999081302522408657326574351331656237072045670336535021463563514247461306763305009099057670976902070812583412067974983045360203242325049093552583318924638813827209330265725879690530336911345451331568282894783006256235666959111812748781158007696206272257920460094099243234440544414715028040075366632236340544655395030178054337350204132836811580741247797037542655936043724508709470773061902527319462829223820329036383030088602299131995185624647550472497573627305321873368675782613658013656756277639953876982935007477676284401642285563153640469800137336522645326168177562614287603155011908945125581999429678318802201999948922139934432055286582006044254300481139160482897741925925334983123773206936916214184540405789162866186120805457785152172362998552610401702034211926780338166200196605534460167061616049524052605889986997017661220279094275873973812741943812061850068341814982976872064401213226516336771449617772393576479251360023621810109653492438363488428355099011526336881594494350028372026861003234448970551836214145214911890382625749347029182982018745014217690065754741203384603533545110126955049652492671306232428138969176881209620042953397266073593723265598766691893397551556081563172563325230016395595946615444479683564352370470142062788666046793557822097791065972731122920330734535005420345635091302706108675854047391991282415665526744616596822181178148642498512677833262055403462225215281663501006098422984917918713291134568844481377300862711422498494993461638303241213169854005915756924801022412302243454098777343271627272414987196890094995786739479811380600818809457331388934108212519991725193052196898205395884353386010782433093463380198008221462166508891113504066663032987848575292087907496794586025067456401053586351089545464356528223293534051191886350974310142276622431281492966670292270791623457573170480577572469555480074230922579326196363456530645706740578098950508110506143499588509752853520042833686963460004044097777790612050520487680073566387166294342275592224524194814544234528024231596428634990860493629733147675897066114566599274121073069936624210439397548920076958039241027471619632846999862015201766946106645220297865301369642474928557034162284274603024391351241208952644574877477274763677946762069611383738747851991582703874723211694173957700200461477396500237590332690788316230066234323922467550367561637561246588587461884961232381296017812753759497318432938045933212406567851855809154000652233990091432004952450990871934595366006725112846324969172421658061692974683509897724597194768746875992819439059467460524435964817168396384629246921764430394322425036219900762674213559801533838289817900981805044921658713997601586862518167386913717202230659632717864286733735279594937916891674135311538948082333767527826487830724157843198926227972857594343783429407520868529992312492949307156523616726713294853405588183624964845456813688714704454062608304386538422835711177236440462943479611423235206628334699386916846432414952661388143445351794246975195797945747316473970627503276970195721278229972890676327144137858579433198184192199915171322033212334130172324212247842179870996365741012118265859345854586723773470738936065217470930624546257104752202180265918949737503212073545355324624707492241448217028360835457905161013415924662968774470727392625977494458911618987379986398435876822654148355899427987504646517079543358668070837974611803371649660090752298535161829866910497879303881291861482019321882874129216222537848274212188291994565436001573049198650721829144988020867990293362859304278669872352427823411336346347392345341999607030401990387495778264626830617773186452611080166327059236592943358040728596283314584135179670064457094440168578201495966149562818264269652044997707670104988586355288307908273506146408673628361661487181057587559574540522009470935252671199813088367062105961126644102921188668324565188341117785544524483067522939340724783854298087481005733868952217830439345029673960988900063817233009172984955747312640797703525019561272772249499984301071411616181859823483049038091505883129136312909989113802554574163787728535642100441892822060373027548351015017163705029296419601613092828433932196185710776125337738652123204119579767637501218517645174893404660785034128269260951669493580552753437894383455589298851035000423328398732443632340037726833862835998449007218817871379266250657923110378162835256341304218704145813665307344993820443570988590981458203516045186235591832124030843621786880147727833049774769290914744552004752511317189512254583540038330989921856278364794002660598767409840069274374033857829726289733396536643192593606385210181025634828532620899089119471957943654276814870339972641302572867604648767182018349689061762995690407144299338817668100510688027420159050013562320940778332110259883410560077677650637519982843078422185614739625408026872237373321376895753297952883080221108704477635928266392748156815039430053655964318758401519715580502374470467239864804849343608853529384628499370018631016497941213287031171884131026949779234393363900091883964431264154500270409456163874231902443827323404925360874378641724135683133350096202560163089922017272804108903895260038825232482279582835267994281092852092433548905377523767842728873976408124615983427045589332850482585003446738140434849758883212384073232667643971599337637856784354855527596050880405888298783340024869551201453512231008112523960235267949858114052572559961458611788672901425782059918399986242206690094657762079169000703518796624002684522860381503134863735068138365665544668851467641431288203696140938991273176882454695510359238014022423201502435566549730545157765791127183297093893423792320388861099246231777895485533700095901919686968503574861039842139810863272558899697852242335074426460186715077683389904031160108992041886161065075316702709157728409514836437308097719291921397989906539300149245943731410639587315120535632448258452433415524368270221465627565090488517234229833954374150930291763853310339157165308679135265521850072052819867579215708908352426784001245830567510361453980489193392758125346983837544986591379987213660893820104860515686371402753918886025947414937816051849041143458888479757559768045519817737075947743360582241678136384543249763645554064505886967123243839019774741790374201935061518911337265158613800833926031715018780171876892600279311229563730418892042796489434312363186122438192774405604776159317809773685780233310284447065060172146475080718634134556892816891347655382233808314824431322461579602962504381152775005909089405171131727373841692180677728185865997900424436867751270401917762512344980362279656400944433169511352655058738145434241893144678591263300163652711175683571387599826203569073657039504303786941550845111449675694832886017653315712933510004123298686264603444617961825181198021992222614671708980128262795533853314423112943812159346705568499401854415718217957222210027568098479714956571726331648246408932247532549687371626397792693067435325550232792597065471516639643277018784115269834324589612197858644102623091268871387157128995546238785305793465395122081160528773655096816375772058063665548640843876704408236788415214908194343880214023352901657555029251518221872374212233686326618622128083302600906295816455351873660030707133411220193856322512699377875810771252566991771102612769313169880306124759443415607810091415743847316201665728000800520530797436538862352937394331784122841769677554241176830988516279976690101367999972482042683097331455460929253920744753895366451857350996311219348695339190768875114193190676646110374719838433156517700981750434490147176641429696198201163180171123627759300824222403671278451281555233024719674881297185773705459020412166536064763001333822023970259056362999962012658285372965211007423816446672991122095165691519970355567595710215556244105609776372194159139176536539867528617532237322709215788120951876637334844830606069770118970580665860151959546654834168513564681665719118020247585665526090124804940486607387002805352163783009057472241082928758307751501732448043904092101625801745922849257156294565392218715322458323923772148481816970373205777798041177767000334329796666265276790466829810131531521383692936162122146698719073253474979398091690629625072083827694824601708890364651342327139514892605153630161387280527959166769795027436972051132531419919118087933710405023100689560646945106878553600430969256014930100440657616949813963744685214019564259280585109104771570505736645997836985615055072444671300125235961439817141772195131467230462033105294368387404273784973739931391211568139000765329638569918496810274838616019076881992837350494492771813277173335392699864781797843709496945542935468792331281170968317475748022608575198526768866957027152829816140273440045582725679286182634952964026692349898043064654757310129109405724018414196489278204870586748145947006868288117163678208945579708715503764275115709071993972454698837120131277112892128952292219472363281988033069311581211824395107275573381680591990791362150722524760146561468626462490405371097271534692242643631350530746754566188798578807927396553712882797573850062411511467631862670728884638945587512574134984077401646972434424616712205046611326629925485902676545182508313192449618983307703903793501916394345832725450708371365304655135333830278914023699002360551165002184237997589159666681111553434262759852758808692710237347314198245120765355316081150119314932902354985350218420746912195686831446959346811948147227172159932006639609143133851877625446692969001984549779703035147057309500412366551967196349354447886956492399416187940911156172764991612067602021021815496226601900073990348634101884234172908342976765407954326877842053568387575443357685664100635126551559004822621199753441651484017486886121679386197060011433470214025280503367905693820610244140227709569102327475868005532134288406348024399191656389252960443545718094487540553757408388303977489156435521355440552390423132997036054796579138844013294083909029757404043304606892392871743976081051540968026103699726671223040184828904425930721587725015272187141285067410514290243493515965812861405888423800389530642430681963556334831619771943918719841089061864338878469894895488645952768985661159281572317422531505808405994047820955287402595993871137419374169239889419404861488693879216792169002449366354381809017166703189788350123651298019506957131862333540091562730742399978546322116764221634123153273223813252199536078812797190514282606393250823774090852139110924353767749127979773785219344214226045314498648087695759679324447547692957382353247337779484066046302519869531983209234812151646484452117108399951014782061314896295011627836031127508144139998053468368128939138030812327102908328676778624664896205457801663958725537743648123196551841557898271892137317692331455373615687755408314489044513029406871640844758370051173747854709435447254697291100270815770438401515430238216849236161910073809314759224869847911287783383693988458486493588920224043507718795094376126522970948935463171129173825414579248242568103180361007291734473511642391806882434064351498944754730475970170782802621129402619603546654147916031502495128248749937892799181307087742608079216647087659902175005745925877771561194787285279136323263542663341574285944873777393245192036875178506100283816741850056192707453499870649980205413849528246248817615533847843548912658123530853304954259696566975563958798843080932128253863715624368661810567894839470154784657383036882583989506932660652694086657182139866652340461968603922614538296241529033602374402718724268037672232540619994854594477685736054727258313214329754357940269739886785489487171546027638798810599164332613224205463824074089627516207692623785125978412308204406475805200301028843268037456352075691766715246052478358062729432016769411083483998453082782210698484615405219303183734746913419465164688293490391066182620970223126518135461012146540348121431086393872684102921797277106277873507334698151102844551351853105326084679938011153749233755095534362052593029104198237212359331700710234241847145578042993872082410489649653192878365541588427794340649247791271667604768854320113641037126674901058174733498210775389254378432708993642082148150510945885691995050221417589341412572056736244131165413995255060072838731474787267133913335068706518885653557240127855967134284504205460645956134265157313798393974947624192747438073533013241072127263455348532024203908131175377261024419596565504690895549264070192603939738706759036190216496585059058887094540156826292773856572504677974158920993977788971772907676062514376660931584705580062887630737969291367732128943930750525377729678613564585015987914267921385258986562778441124665259752870019154550754481245779114319956170659962622627796930150356721989796471565006135318895692877197999829707562596558141404811513932509820581959297287266757687951499402555546056734522619835866551272205322373788279811949124441350660447301015673443712585523298756018003063376882179679116762955926055727684753774215477679359954502405599923776061006050811597242916178382061097940175716006215431528076556103463612007012489341077650220105556691679128722875122644773673802386981013078588384541645514692444675266717609384832517700821774162296899137760473972097242684806909742998804504244608000033085009023924893300044386971224270602210284962793559200080794678204216233845166503417995722712711767722470285025230075255202148112113820816955298604515713110159446471760642764763826508706337125541376458674282537829577266477026953129931210353126435027214890630636422895576274687213484909882185032615691514672332114946054700918308843349529858134540406972318677352192670867739949468373508107916154304850760774387498952531135058826489782099754655428093494763804864734149730880054368232280852750728793090212904055253255493109512547568965454460885415908480364883861973802957086786101138329457777133876671142806319080963387649733406774581382516394086732833249400304247633616154165174035366159596126853900346763388976030981149385700834147166889863691129434728107415000257847555068997209387039339693047187664299499921685530263042212174380574897206394346934798885569922088265806445179246536871778994866866273667418233513789564306976613615925698954177487253512983395596960603849748311712385883818653470664722934143498444453501179486413070010990356149543401196023027278572424605781594736529133109494735035757208418170946982309397342515585780480735353358025167078251409250505355268174659359845140539164509577799292425627575709180662483203714238403876725352774613194793963217865187817506758857348134074787460476163845639123957310259481943608311016307530833782686162628644634124463071742497151281761638210050000632394347561748552592240829380595544048393842950417229238482569250929965920555480111601889579077164588541229386650275138554634325420814964906774295461052577555933525788834238205703644700878019223892966040905657711127357854028774185491660288002177935758765438706353393438016097095446781378653134855740434501822648461546566736142683801266432779869597642064075543756040932836315397691241385602906504422670802670861429960965950610855329080378319968962925882661443235852748024931355524671759547714894931139862804173963297791302467576019521939671113333685459526581546560005306078410836930806600761318465800265817879733089075640356923516421051626121484956417844199860675510384369165205759211323297480116328040849475619081904064598180525857805355144521982801255028399241653212950202782325285169288042330235578050695262654271366142939278648753981283237063111796514261178253288287371614305732769723952247869711879361341959257457195168764695839083743109084404365673194508436081877103490977700034688340214719193134017512360684484564536793024737304676908330262282882683546651718744671293388435906773680127427390941342369794299533042575595214086987100651816422941048050822415581985927197499164202958340705638177557592951201882752899893575987854536269113718211885763894469171394940180231709879010646121631908875193868870521884750083209844271010014072723512486766393077561672798917495538869330623626264203836401850724281265143337510777096263237567039172052568477192114834416196397493128877615668852735226202679904308681521115910553797412311764304508082393215175937596149068161261132196520564786534606192384151127516088808430645960938000564810540621735552802164357084626265233237014792915967442199695797303341641931788874591610395859729007109907081125564871390314348731263018821633795302905682684556655834137644436971643315475886555797270934388512023903730287663950765091885028815062081428514055769510638955423188179660611293833669555788751282398535657284683038254427067271511005478630823400589640522902649204121451712659070168476298199137450038378197969062368359008115005782906774685648464155254441350261448126000280255453253050231372283381683445770574632878950554300788773779852277321501752818085132489313029558428997124651638561207055381921298146348247488828672190232520964291488498326114519323769059552639712235714422532798714652367437743549669771371457872376939299179924581759301024377996237313758166310405577172000129315393494989320698609698475878832254854201055139079533120744949036003009087805866188949729087990507027778516128355618971419609064767929740758196139663871339811906470565567127853632587614867559137334083905556021339287088692069425508252035017818703644050600895022457924494967355026472487357028708881336033262501594468814462243105762678473936526427601796394314029229573259136989688947701267066127676547046839680740445463306368434968127119686349599773926987554568029925846045997252784272519638113354292990521314410373190271302042143269353103951925121392151761433383794533097632033294713497852920960138912718121365071610305857265057433465393952606805827692396827110287068355509089807405536435554984202587250717401135114000988511142323375399238702466527679778776780762610417384401246241988191478910442986881395691046637465646008883765580199761163621045990122897536280277230011462098690208264972341200673688160567928383440582784788191919650702498200596952234516957387306999228224270156243009314365642095642326958155832838781189922432277180449223176740693956034000520410375296995470477491068471189626121708564069660964725937629446931056270559567052627438978426289319179749395700518441681070812225625495377615143184489390907420029026052108053149510989944548458213462653620740640211833194143751329362758842680938036681315473253514741995108951170270520787210032687139836153484261981542607173300924102167781902466496824837937008066782173192527392516636461175361962567168549373564718295190124270609024064952718293702775628937134943757885808084917544125554374951705359459069177465905915046627058794148376861585749125867518099471299652266269151677705715480495562378333288141199287423979203736085476844565470687174586285666274194597515124278446417568701499054687122664402800434557238244354864640145739036305183511748844287426172882084037588018306571018471547183839110442265918020061020039236170741464551621276709920529695572576024149804846389755143491314244480872486988087671913787874642336568356161756449017508034678583501896221713565674749675751267104612807892205845710754548637678746514409859453117365114181632968968889655083345032772739496647796536508084573110729376209651082236078429590107495734844130178546055121060364819059119825834877314706281403839059097247945249591013767172665384318508392451459571466309908733547709017867083611477622896938619038914406912589127257787191895186424026346370243557465073741768180659213564689362700883498263993160327414260980311116473876324970781137439004598023521592022835227778220175739979393031616337752325703458127048969278457322510821349991975187237315742141229661025244871634656430301502492398432288421106539541063671959472209370716833601676405519672948084026502842123065332302217889148740448462358678799626189030613739144703040383705447819592155870587966083559404473673769163131642264899630558257237062639519302315046293971859431486894796058792574436858148101473643949170656695854888608962824901856231595121381877903431613202201792071994355660614942812194296535549963042969650551898830026476848683994834691989059843675921312518852039117605631689788496460839876941069705099167910679573045077947652075041911427466830728043660608746612246989020825057568163171198072691039403875705992553039882909086644610519941499130385327412717905194660866957328297639586682082890663603986352694620798123672569366713400164319009069157611615934667724076371126047489576701494258767529310292028541915402684577018485734417965074266394898192830091939360752574980718713170969992090537673839771790156435679632876005110885946113336845736726413452996111522125008142693928544517503067819936843689578873146916763501700379639467041382638481069134126111207912074074913912328884742159947640170949203636393125999444390658028718818862566035803360370579079070653729867552653076406044130831304277187198186746230173746883974792342984989536502739452587629090429629127495518522532006530386754364865138051307532062140000757766220921815302651178561682127936526269540795475458618875436913159183052729545854307369468815309327975766757004671651841089191067087098937041344345425568651886835764648413249870126725395234257467880806613178636271225642501440146171135034587457148247530619130267504668600632256250486103716182904589611394756168099255510537396229338585377501741685536253501838409465076307605281696529851167910118498353410651054756931847862278054629932456030982310576324262106108909965491580967902675193822747706182623801272250111339937495989806187897895445159056172762017808211253675630163709974260235202521352629092119256573432139672963318400864081500465327050643175844494977847233710741278174733978117667704580103102141913648906597457790680292322919965162931555074319419553581489415039712727942499184115199736046474866654419475982842763937224222858655259708360128899870330053784576963412914635226966541563603687891070217520710571077156373958976984455762972934089450727299577805145571169351679387583340273935686233049476577436406222920148047133886730716377084340513175460999360490928921761616022478531901755002699968792074902758227533112656917118445707341355720993253524849035494175905735289245893312417177346824067187850578265610001609467561809789303738699319633323810935425891823827061097874496169098985273497983893637936926822361386004336331350997509942240305754279590360954992745621629339516680427277537178722259946732278753232492875635091047897200573499283329698252379269296772564672601891219092638156163494534028832930367650715579021067202756534511310036390110237751435336096831979601131828899949015526455715953698478140306837772593980434212737887571901454144364084008678758351715771578965992893171838245092529457037950789707442482371935624100321713044215184330788642333843304015711157089808421822247784165924782364426962698752090472553495655927460067832914348551124293711350156418984363492386960117118814403816431587916229976018638866409635640058879709416884035485310624934254044655759888872814863000750121935779863511888265854322958435130932184139433476784367822272614500315032796980754981084949366190265590824887287803476119888040644717997933659461703681741509932400226045967627764018766453985883063010448505550669489070776048820029302129165684027432420925304024142926224238962648735017076490764609372535966357244682584036136604479851991731060686694447140830171689165254414962010739867999705371815220514232313504423595750504835457539130794098357986994955264253004042524073740400894441392417282586140669599576097363095887056402025088223103524515002171033272882199932683708792024501361978005950238747140526536447672745820582596555844385328429131447707725091880345587333707425792328017162706913306509228308523918169560705396012687687729739362194144238704724288362748541972537554638886403216768650374590754976836911591424290346083022082733067133871999699748402838152070140816043214181287075407815177861663783003054908254429926074929860780731281709258738134170040410095194435109659835455609101638511990687501141755401475506605332115178308233910778434050530627243663420651696122884242763571923078144333244372802343390989053779170679486910280790496132095398239754673774037468679841057381978798672548799371716629822503817194225191529168006860231265501956743739111681681024584473625934145710213547633027785023952722858873945622273011591911414224668954537122818288905140176876356503999371188322479267788989428686734879072150805990637346756603283094698906878965929101882802840015142484702972649118304052052552349372754690666671550461875337686244334118593560644613986325231692049978690546916662983071918182217294942489712430230099994174473492276096902190308311072907461544733379052332815565696661966987448289311063489794052419707624041525377755469222719549832278657410529052858152357012487674128228373367186601262051893965847232603212505927834348877700997318507412125384711839883601060895424345536706788024976399388969785163458255233071440612849003426934246132284185192860499316443024432609314800841680392189748391281712151526291552479288674012961383658335160747183976078288231061747493033414146910609060213811965727768312055954783071721308660184864723750216433929231094588743123492706181170715390730939108876804841220217744179333878438378048465830839915505644501576922838973198459076784265890890565159211781255901476364607087863082099147441012344128934405991547012416220655296898898116387865669670215237646174399174593499513683246851716944421883728968324826964225491342284848673989707480139322347693666006095723824016502115942015992090075058554089096413721487223777751631759529075234818163025753889111433139840389423695273067936503596410281534359663464414706138445870718379129758480040375209902542689484169752457816964420928555004558298693284197974582893943797462234132922461136097172980193999416758237024275911950978171127393446907145893469710216402443901298979889885162327034757111541913719806064082228604640981066333534967010790534446732475648574638587302422009735073238595052479749610249513579388506409280628748426385357920107085846464106982848637072867385854384144717964447991022825425077783513993837994170663757554991324876626071208741836840614418105365414304948085420276847162168253897875659957933512579540316838695799295192975532652315001758204395416596880624513656213537788794336374598867554227314673714029621419063913118133210202016690677315133736414794630421645914548752421900070868213293769694714104415562709247081493779472309389017939169724839932077314902100873793384404998939325733146895494630277007309961129774638329249616861697927401413251649684205765792166578022622507526942824530213539530012838402277226341760322906873158930541636834935338771155274202012523879523164431168085139165800779157459471628365589013153603107729289316410925606904063599376363910680086162107376879895539585179188859369674387719527632202924907749135918874422539735182209960069826003078369214872215509273536031859128235388670443232098627800051562603505749474199311399471600903823668166683508123758738764893304448620804243794240412247946859803774469091094427065700760283413096397612794627148752331984930814875449461117860751377508282448087172439797999723749192315123403716966965383620979198970145455547584713228238958850263425470007543980028923022457811035924572795494283235091163990650001954943681256531346281033582633760323492777244444708783726449176976939927944146507185700561289377056772799750448962562870085526255678127948347952918060165960888251867477183409166454513056401963705067783945856529684862318251170980273460846043830366003187574940240132646407385023929024211304067242877937287450746901986095593258350077069814853256455903098451922564794376239438084672900898000915563131793184300508408352721422399359507593858472043246663978302610556594632259101270557700030410776004860364395399164345322837107040890053820230635862821706805188951471282194913441237419645872653384824418251864092908858481703502618181543167256762797362743514538934339361013564547608423493739728589372432669549001366657078033931121958147663049023226007631708687879776698706469780910845286562045045477158821858629525848476399359904384799534780071840352500379842235725367210807062124328979222057645048801696798949194003311664625444203313890191087630833413878072876117003061343084450029642788673359036672584408565635306977422396507698348561739583047349712983926205898476745813783355233916944268067522241454626080961682480601333286700722318501235515530565738491968799511098211104837333611900462531631568248627175642505044141163821515531196465840517278193549543759348021595783170215178008819086366372404280725302966458445249203059991566623110690652116557620276162861411532297165706832058830112220828088810698060853522886324872425694571067281929543799674663088671160312580690458578209542565899531377190821438705611052968962882862416979915995329696962188406242707289673458237552084480769273888909873965266990067223129804143025726183727514885169293646364122559212188454862848848462220568096790251206694787820089482824136065817119852973364640144769711215450185470127020815418107685552607426376229731536944853858496217747692718625364087995319473616844056079267067704676847179268920212583560965603260451701109844214912197068615228623319107431072276616454741634497433210560736208227515114771880509334423672659203641293177143896407957544781886591007105796575098084568216816810584997366197150911845595103417501924935710624070881722115501941908766480588908085438318900635322707931363796818493863306643662197984315525371718409900124133546666213677635300371739304857641856240173483765565296572641878659478960751459385461769934209990555408780945920299076339230546151586700926568550789543004541145616390779048575485561765089013554183069604074220140087692653774560291133179241823934920827582437392490398750288941310311119416381061280233385314110580320456208986028330944581201732777518972867973170888756185312716871150422137940125289444147415481089961768114866256808190691519248265158171331220538444122020629276753285538309580576646169381923126185935303314990811950176992827723430152328614759517404422303701073750979923103860828763196347805382041445355484384753383066771293514822126311414943552369605783263290934786905918765486863273024482103909104058350696828885327628975232709753992779730482689243966947787990011261349139534020970042491628542688407681339447906127473379109066443739092027248959019360546551929414379941896684603640291927330116290826760093604141120178787894387400259051170199826061461415126813650918348629783531322508815338258883761194926130559720105084950749590612626034489275830322671196257998824056418021069645477252637916371098260697909165556522498583925927464944313479265882577488984110327966303656361894691407992546853261199806583375670980057299180084239956723326233854664067514672021909712537739156112634125480816312472486458743341624676372235989364608181789622279227594380296192683796246657294787842741309106406908707206579653050938414124824669079805047714653609918843341372229550547688012345340289863498034775926407507912091727676744969561116952488843365860761183754578986306032225335618231727693964252645984667735902447584831070035247065726968681200584832015720320537588094468544015998937509873930078852228876659057936521130819210629851706668590856956367689820916458183349252499024552233263340208851680142044950787911533487090187176116422741616473180726008135128672137726334523419807742727277523599581838918140566513149359062150048643530546530099520238653545831967886206698989780943688858452039779848739855383475460207184416250693653477198243826488936888934553537688591600498570999677443671808447086037664914548928215541775563512697465698481107010702994485291053281708551306057845654667297830007932734382934998312089227980936940497832219904902319898023631706352099516520182129792142580210149992237155813678546065361726838755796278524139790662421855825939121340463440316635121691981779283279014277756047194837984738986446144802251865978406930835572781636241709116278281109839400561401885677830162006012968662207366052451422858556853961014191364984740106750243548023960801928686071819476460459743569704263982979498387308892138445691931651482392153627491259072162635496701875025179937975188014067750264123556446318170114134781976949540954171419375514128505172362178399736728296509386928813869761790296821212812110209757064644733424076805899025292252837791788733930104127203695130658211169231628259942943180647254805120020078787777876456590166253795696497723592149497755272477165253042369447411764330597059027163418928358052418136834200959265923715173604406867777162249904631699041059591485978863272476890621760644422512413762644069471392738962006718176208697209275207423940664066122039725456999733433347605777507910419082409924359586084984781489696232700693991752128345998638728121723455503030755765208802122598547677525026763897590521161903279071694091565459849687268175663485593156757324759651406021118953144008843541164798002686765826603012471449817600083993968865231621581494725766419341279709992136294714323678829514916351864916436214917306513169384143761982354417980534850466256406896135642613950004715460925818403181848265630687905909599842823720288220796886060180015149328575919981294849076991178935667845205148459206170998649789978153976666858947188901698425322187999428136831492055916730321753808292578975432546046752080848639532632245166215946558710565265113392327375698701388221266145899462981227250669883369726815943582528051749834769824402923938703235872569853581513652631900435246730907983993491555754236343691973933665013953952360491691676096449796517588858372520689292993831708644897190739167210962204760797265567478323567082347558985255954165539625067567502670575542395053523393550736696712762189671633990673120682983391531833720324482843830462135973571313352150413606841282030906338716746208323088854378972551849345467240787588971576591858584573868525251949242051005166466131774250758228366431583056120434687455504480109488268316484934643855732388415356655577766664476383533608466300234796918025806378494445553646329176977082158659932802313204561696575614197004616572109973774622236675048029917590573778776097303081183299723259440257076950003095418721772615595781076751351685857233761140398320503943326933425740235706434763562110252844857786464012569704512307017793052971999338420738104224829777161730915375030388170239552790968502482447994961780199747802971661688060994437341314778701263388330219765150270804412904153357929284336604974096231317765911364134806116570848206024570933186359678120997480772929370553247115989191978843914846094328643453753607544473743801198612982855167700263292060037850133263219318232587829343948530977792518742195559765620628709303857990913013628537329489999853510274879541065999356965504088037979102617017711066960332943910647422931819007746617388751900492587646855612455013286079405202122216037233070461816048200483436827046630733350179817831302062220716677852406821886236024547906505024140904959917092346543811285852783827391698161508954663545113416950005389519664508968379996412873514526406875423897469531718744993601023362324966879351685052377261286328263992416866242315220458784882229242131215959426668228671158131810130750312257433019120297126229827804586173260365367846998025559723666232069232385490533325701595927379936743909870884282714536744740251892064666626260699200806916656186904530553601181683739001773546206156468723574669538636522644394720056763357370408210710211113501290992674856670753963152962368236122585159954732479980097360344396283277679371177940815510222010389587896758255785084191324171545325691395534932392298503009057123463123372077104896915197805365326534713523380373868909648734744450474348932200986396606467489971977622921026756595320481113603232376983700366304761014671530683680065184748996378258266353987809647015010629660857684084679349483589609795000415903977284638906993230109869189228997210383434561175271529509331327692096031361735175754362668884732819805156094693687452453508748198232506097455883421159067797602594000438571078306957762147147479049826057597052340787235993720183397380312377102862526671293455296317250639943066683029195555965162668355072279357240634886328702762219227268161785521909820008354974684707698088208535391938273846727208050050791516576901904072310426213932236986069223247803001709066398676227255851702900734417184314500425996835205094106572425103458740883693007260289288142901609676734748993580165371050771318072567128131225173620548666095028203660925467744166310494954128859247462972581007363105618943734068243444646411333046167721105882503809103442092448879893492608990213212815878245803343794777000715902954842740463523729254423301694924225559457890703828175734447218918945697297993504195341693203748611120442192626553900807232297324583147048790975579316361523661710709182952613284447456104007223537689045470761607404565569043078942970073240384916002286187543244041314521683401102420316371879710447206374870430295202593503698367797175915472565633332913173858975135791417529854571452939274242900082166062296407970341678721011371254242248110638346124662489640322972051749940876543720791714805613610056697154272999440777092439731095811645142562511885487962646284304906953212099246324943700185938545045929087192291940727648918290081216033200439114417997261565993258235876135833002820422837586900468085369689977556638526203915948441480626256965220385637308013514912394996108893663855514236508493364309271532747222131787860761673068564341692434320181289808407568136188301743296314009372438434227700538140940564079557495817762687737190987428819314002103255922886349828058335663227610564028985583981434527212946956007749005131331027617841411158079273550783649959330748218961081240743884031835582907785001261451313060599567946257673754669176451591952079552851767272381794620247210562410781879922803933304953173357306213090586012272618732099080684958504930722985523238487603848965634589679080393767684224504479158759324156305094134606793233179039458509909449088527087107609108522463973954791958647251595076902395604094994306992640273502226224843240934027282550969147398861450153747220980106824557650787452872227259224436199907720136370354308916821160631571924904765483058666093891976678094130224367199741543494929362379006069380857435022572252734456997706177447104135259678580170510569500197922690238486933079289657731037733201937768002400794860483650407311365151534323918791008402055663650922777263229349926276243645474723778926771094323494608671849696841549633102422473940935975413918711597455027255150547490643779243526960844178080374553014356365859633141404118176256529105817285056495269672140434771805911412142987149881133523319981323372914739833184297064090061179593306915759430336683097570070501586249736004924463752948800035466860543386930627552193371553456519170376660255496121298169255703742036521934585949618957652207419588013755272932273187704207936803701835190594931904389536357802429796642445147020244965821882496783619291995707778546111427192821096017918311492707477136984014448398002533248186000313555991923582079668539485543371170619180966227812157348030221493228583879758500733515446254270483065153349747135118255390496310132531901080396880075264725153177965597914081491405558325575816037628879352167643795336609859624894857058203919250867767736004777704897402668450636029345221425806133768299046793911838721462098584013909606272891207058342906765467544039716668077223569133985282041233555820409583127991000804221220509168580747903384138209675685309715890078946054012567750886490958059068323285482923781751485784934357019355449015832751631447639989628271142217959596859798976463979542705907306088295975068768605635503324405681325944712590554518073618488302717703757058333124442035547229415761277828550730424816183978981567006858129149061114663980666104399717932737623075366561950663921820098072797632772560986324138649573901070167387954055870857679822274115313786586948700402182953425845719958576835263947890395413836098322648217712045787043864772582082775145425029524303767240596331429021704824660008979741173793130476091298853941751429550880873022444196730768590295572133618795631952056084905657376594509122384750277683020345703355953253837516971669843793791683691986237838502842679230941806734369045063223321028029611003097644235161240744965912434118603287486727777694396328781392041507536903854586695826705912886203469499727770020336228015220132814714910106032358038908810120973866972860543070292744371787659373441561594237577166719372047879287641309819190981011678841368777057744802532107149256272826332761744273289413079775004324388578795369417064778894892213748337113960858102210514604037801029028602509979524273698595586912474136017443606698126788350594796726998578828496898612643333374221923500533010475741061322129061835506883124950639912572696434614573460600190584691493048586003065362277994451318555694307919884392615045706652746436776441267390327222279037138454489150858121938099034038682291986510581517436751351830529666971221930061554954371424717729142116100021883828547856317466615589961502938353926588550808676514652016512719193557486372359330601969032993383009666754805018408627058887809898350826122073453180093946867528627788141030399381251388465311713969951784265844073721070094083199349445972868130248549986464284048612925320347814209147045349092400315809980302811736214948824369920992916421235458301679929130300626311741161329239315941294340688061372418666693083452929797711434232477142424629032836427666452309144149430948118956864628596938624407005323312242316245569989930110063225436812289181508577428224981146280636878909411439489428949685776655354922597359791281454055981190499829735048350186210223926015401023325105344368331311883909563010672200963313722524634280720533949725745933847112696185661860134526335084087012692493030888079498076741827334665338104500040930454131948371663970446889405192260330998549831010348631486040316504581624202922764046423360975749180733608967698587556480924067235778111559060919539905354527037577126557826460881961414855930789404190828954333100584857919034517839340445378838111770031572092832821261183753094310957438455820651573686250909708006649601379932309114149564759902820673495326274501146281752311494427548470784058143945223909806564323405678032323034236450279511066741674719379982712118773059582139639587164094720381675049513791828835806596898017187182893649644439802035954534849365583882311459161446580221226214862926588080624340171773044030067193051091496090194008224475748865157279257370798301123561815661126146030779226861733378658009338044611470524351300838008381054840527446871831056885275898766594009129418168459433546285742994332855651559076777049092600304351764898516521728400863010771184692555528850999098097157660467558839759773209831960688299246748469322577187119868408632480163794768879011407383728166013559158678848667531672871144526040888427285024918867720166246549440977553171011877014831809437717680278963648593631956420191111301423951704200402743391993226657796151531840375915837118468656468481526688983122175474571915758032051721435790770040469178988891028843627797029277336216277654802079363756306726392309548847283481347241709814191194350617983295449933356595368050532577550367772188515190652853801784721965264511880459552321323238146681699384549225592099399514901458626172355489385244261979115534919804704284978980739300090875485045448042521079869246802432211737137462042997250149390346357265087176701949309715946503486645932338839834090823930679358247243053469095951519025192207549846826596327359820449428965630426972601975966798206634720794977345168537058100157199056193340730120669511252726751026860971008935012405391714236994994864802487971058158335636495672094659180933582661981534907186742131272167276125523839394124055851350642951415244063811151802246251326255122530347356660315368717147526870351000049643117421730214781828816653984849722435078716970668981889161485422894033481462910987091263876800877269367510862824366134624458318021891987593354603346138750107557206850700292626016981786532786682799795504738577492295990947758164701508715172758474001027690447829580234198077592701137685560341301591351527240596649035507487932415685687085120924311962839551779513841465913775316091219056379053909374791384183289099557439808423601416116285820317845316831125966251477762673273552504868716806239089564625123030091724799466503028649453450255812221703697042464554282272663823099616671248131073529012866397229169797157446786188854566667826210373733524900137562211539874789176370424272402860210322713118062246045979936080730923978069105360085203236097150233373479844900036455456699678233959190445299829298210259520720022487089023047372218155009996827235783944976456020893563437997254347844424569171100526144795941804885028250161339125504871370583948268739896033258899084113086486814243976338682233849490201678771217665289302457506323305582900768289020502894688389406018314863451692388669953238385753463936638957230319436163931440540209967786343591556368497234227451521192346225434842410548327835582427400684935048280542230113975303528851558637293430045911096432426376054457340131449013741723764971875155501778691794384837929991597236906763623444047090507469557459975284470333323136912555545524662404162334373168788278812395868475273344559085802069383422919081187602038246008981058994571021326042628472002335264507217731912582897212796369864882110724522771547819003043425486772584292564626841015352501189714353589637491892285663058766062812223441472717064544600955893630805235477009142426618677789866631018676180359996120123301407215963801655048024408885342247067287608358580208424384462327779557508112112220705035766359144789347491970292055132299297404848188474968903692019789150874956981037301274700137426580568106028562986967876522982839625736536378926336998326436254415872717196940011750045556009547987802153321687475631590960502229292033817184713504315844779871156584640430788788408654367521785107418904790917533642822062890038676726473280335969084191081405312269251834226603044066194738095871227044136830312713524387965720519316153111385688938926668363149689707721221801282058426122887622983435207306592756984764393458307105124999474734182859220539688456891300297402773724256775608889918823785709255598503619399207857589273196768843755643409808811961683334709355193232421372114365885465352401694667609457400172045442527611585645553108883083176231613303702082273626974586112226238419068734881976775617369490279184873531729509384124907409877449313818017442374857197518119051135535102440566675227580901490393354527456047997868455139288853483422576136905591797959212113948783143120173917949644806655222851052312286917999044912813700238057986058676985075770311201580689297124729273892954350791658195406056165335247336341967452775513552743886148612448401926078514587187713777520052163514830749920607457725914774052931209321246226253322363030820242283750202250581110641755356159658627970995420089618305537577953454913206105955074867298609280343648887348594749365759336677183117742221491363655980749394162407192167639350997702688383437475959320963868222673301403948651358984860361818265815963521818879043930642156039439707411449768221766311544962630647515633594660277063654693013084490091835347219134806740688432744199517690767069753309087372248790457073872644149724395466925560681480491738712213306299036333389896269178256232199426249429561008012753763451816122563474740104942754033251198419160482431093497140638074094672789719001248848177677171521805330523745688754159323902589343954069392226429921794999737376709246296262174527919223829788727667165151674615061841543899347039531217836921901276645695542094758984845685033802707352790393585523017863856895907666786397518436321156172472649200271958013378027246049383674430691357299340482053376436406386615218127315339277958489262900021143963191950956005895717429562493942592969892742622643560731642033726053012998413089949438358530694326058669658652076423185009475906317889978734542241360019185023589477795773838521418000825950559742323256442122809998860484132972455822663496862167470908737254287748564183983862106818203660600977617853684734298557967153702441042754112920862680745551849677437473217647023308626690130102905724842009540314066520853558535098968737406876239806172932543614528992055018775700765695463070982036505580385820510784859630709524264115216634244378292934719509666333804549197180002807029101151211755522821918638174896234352636471644608902280996425648731946942849619906388383510773694824853333146208038790528905007398845395641275586969707082777332147664708606035187405554546762289168848454170568518826671025880360789650799560466463342368606575477610053512774494788043888410273460556195337746220888071598914712535600390332380677811991423947368812349157513615738711322952869504889134124302279857929419781867059829897231371627598690355225991113653996755071258583014500724859055895606592894737065981186460409773081407397107175562898199825040282156782318062360040772580108328692557744727918702156936176518980262617473942275826762879715327430863220141217939669180856995750560779434126729484317705844316324915922494706333250464875845484514350826238625342969794061196343358975169298415445347180507756079512810194075274478818483004382566489885255031080791444422287350131988036751385358507856291773992841521304575674616756466531625142653582727993079734061748823082985880297544373151220685676858789073127240015398772473531710187104404762392557192449280150068713716030587911766960507371044056666573959874454847928270074368589950928809829391239329757141894530022182647674787860302984445563485034749228342497787110535137548461687704022963305550486759311096570055920794771717523929538505168351316191360791314637521510015479365838749163749131643101111302220018099297767649961561223654917773039718052849711998651998167624543638763492239547010397864627271728082407556331758218643098695748179953217048706361741726673342205709014878662277074399527147550793221812391296175039312603831815211715854937630617854343717972575878253072803780656216722207794382717384720913034646965400657648141200465245930808354346879983363910861686235522608271515279067178450855670674682246823861441905123484368449679801932613464994033330910724886419892350503881842359609609886183539189098424407662011122748038037781554925765434764591550029557348312732702339034237502257113406317545181971117959670585864556923886855329612887996458489662704725518577073349987626039298237144238721619428945684684523955185415499966287996557809573515373620030790553312806068265248264308486279913470956430676253741678250194925340820707076973185156292392086688773126760939543955526425289149924847142248589195504515800596140445877044463934698333443435493272672931726616755151786626698506407070707114496305452444195203937248823367918463271420707491857976372655786565996157820939789120593984926004544135810187398858062859140550561259455036569181632427728393005350839299617458561875642969151455625652511800603025308497960366850287494091706023091802104818542443002079802123403958415226645550654023071208374906464459000358637973642412128526598302359158524279480881843967932359871542753283740437472777547353843533609849956219055519312638801111642818623758571621480863426835617812276436625900345455137168030549569727750099459992537002447918805738851915238171275971912841530843066205064362780989770100847929952215676647083835087270709640488243320963847398431773461579572965213425272756233606228309543701150946532800465423774749475526260655353615735937444602603546944892386065463797703648409785674650455480860608121973123625674224432024719813111561745243962559602309326178521303672297393183457784798234149425452095894049555008692484530030842510332755428169209393908874672459269274221522011904255497268656584927498076830857526306663572673887775889564852284525297248700798977089474111061761562941174848617131034597413667162885194223075185318147521760590552058447726693876091043703049541119923910798718851554729396654198063223309285640984446439818847834583388482360272975697534224705879965390555000438840032216163556862218328091247203360090494331412512081330303062814553874487031238764452898832686256202232374392086842908716945792443754567817574469633894658144571570307177642772193820630145644743751500433758652664573250633718039334719642205507247683217205556449873034186191525084444200355595123746202663161255115445237475542751386782201130365123253056359248387970929518680650567343665957150561929904737798512997408628997745193379666754177563342712386842820287010543231227430903902217298977587583574738198365233811136044928356398490823346950165686968158953613100210937032810095189397700509355681267679364838630509513171426056334279220277998410404241218522586292978953695880534903675685501547351264211407733476843258422111881282306336091966019284282537291984200528463124088283470695733514432743814514113488829490021717320469384770910071657222314472623598028130175018972569839508284155296869865764126169081649619586053065047437456108118850782660956114407168899099256270914987400649120188540745300556316147348274221937187564302333003117134320627985378678096715770410170264151246361907803539608866869343800255328932999379844030737854728818433949503685913131452721962505268956115059520744145482258745774729248717471916111991457043122539182564771200219947936981060147585574784789588561225077079704938581368006713561869407266318969916186022762785478363187700241286503190225447819405900152022734076152387097487762833367631518574112907218548559968260219039129754739625581465648894132255796240226626343946836097180723213501851433382073244074989021088641797236572783213182557873529828557486915966752469747502422909055043518657419834292973474806403191441501605326962954754804250708757268772210494893441251497982869031588758622755668762324072078417654744307113537608932063483557419393710433587371690973891195070740700957353758219338381383885395629768139214825521235256833457555728041717462150861334004054067013483173091805884289464580977199357919025313516899009549673794416516190486952662478111161712847762226433922918841041854041974017575365829286173455296748944672134277016861828125376854815383257206991968672037037396263577971963761896921099397958665273145528611407927640946402408721101570974107938366478346890745627623461359718786096602603709258044353402372081995917242335973961196698080807237462223499210944173882488404282628846625452474067103616569447769352639909976271342164589945682255375809943883123147925907843238045105580473464341426995307505540116623244562533470305854307408170358667635519124411141275826386831873875191445663773336721761765576991108566222430327857076172346704632366448867156396585427958821984419158661468212320711374190239718086471867852113909339086101893759351047426932835556487759679140091438634527119121918757697552771314716682467889032695212973201041496319075609815912600906163458733408019497882591737916219932468087835512643743138843698984724046386431522140838481277183799322318672390921403995991750647852163760392896947619841454837391719618001920810364007906231891739605729905493929615429972791427970246492496130539188242442207094875458678777558701045635209002135096764992311847949310690834088680221910385394168195834851731233924424074028970277311519755069895289977753816960730910495995242664602520205650280849488348478439655504505361035713393688809012826896679229965838615150510170127674256232549628231319363925059292660920667659647818855082684866486648474514243277392625253155322921480204250798377124758018663433577137034908803104977801500857563558036817757174718646918166814076173408368708259526326134815595839473393777273974503758987090562677869380763054132561655719085240090743987220408938864419727598218407646969666809183434166260810523571063625837667486905532627153890691127535616970786588919720433666014404470259891932384298553288635769462503867810852078839113736717699007488365935258962199998209954311664816770874915653519576907224784643827248614130020084751943608753621273013721930340513927746501660657122878031164783037937349471721406433123432750736210339056202181460807917733273666736187245888206167610298138807121622331327440567243818137611839803949388238065652501355171270636621182911544219742091604838707227289404838036638392355641060340767737928681356118494892672595451775180788545217300973319951076361701150691388984947518063875846071211823888531405926550757450824337006820628566944319555855305583757060949550113093911776243990578033911732430302143106464274420025521254058314801704427546682790135251798987531955347997558415030819363085450043879585183745346675697692292113143073455396578341182755549931267526226198263936965388081872224320294127050198169679633742383365237883860619626628219631407115189635844634853685547087313106953807965369123983424757407030315999807435198476032875385161732455435346273429292278413257474095779786813144409454805639651256995825276302191597936158308257892394101813867193883155882524466314166717621982008917705537298881655691453899725004742173404674078887375386374773890232093820333252647060774997654338057844706984580507806651648482593727489634128416629180156539046951719803103498406534007868070670161882494045542599642162827151023779488166997499824655078682798364256934093237156272416650826963399656568316674510483664485786582290422863054707001373418494070193942179324533555141563893270073283965352402381448104185373818325270948884567048365773300354661660503947715742245154838319661776982238509348968198239149788608993788609670504040866908116003146133716001548377780246771748216757690902683768386175848425485677126312974490694263819937886600237508838981897782018921461703895413565904770322102770425285838996203972637000246468698561878150735765682165865970543187294480980157125768863046952239997860516967531756179416933418812847220443396406802409074341775517872872333947978227059063745959310917848694227045586843886242357843154064361101736034559873363377218198132393664628082361391800092491877919157918777320053738888955066899272159373502406036191570737437725145912265022749493043219177116167911069514925859414411595263913737806114081813859042844036490286940493190645816630867709460169450842682503069156388866117807658140693962097911352559293708963988667045128521171610219549935651354320681730607501537050505822002993400246501976114761651016511209430944361660376583726243916689041968022171812686814011432731145199774948503998673245648455174726804708116742407322573780675580786805522916397972715662060301637088008311257920071268180274963733591959896663694156840890134888086851967472588831259896926631973984317932238716523501632352826775260969908992582036266058808387256967537750861178489119906712629266031165846026092044624956702752618014467695531744926716511214805756652032450884684334102534487125624726291499306338616465454206242218150186401622973093553260707760381375974252949681063158198154296885211112104389769654747508193456263976844431668364573362680251554461274414016122232211506958547655064202183872907887526682610075378406872268081682768206415955620720804148780033290548666321986099770571098970077462408181373341113152386216710865158655930367146356677288773816456489018385752292152181620929107357536263203995443230040615177255564266564750709190716998925467118614369085439008957602239915797181157321375202613117399022894127761403683227536011634734534683494475179199658452684907159832419726173489521615213030452694947011667547354121160294389173753558072169020608017681526227336358176419560112890563469519919007507222541887831724399455263487884979491949060747313822725630455703056937095324598742134461427972930649858414114622692801255776962722128083618917179741399055189706580313845117326077692961247929593809098952847599761800908385537982529483715110582062311404860219224010288388747598309345649579528266565757284742770306438398266067089080233396369437001652867129461222836990575331530399760831688073861134818662463453851814428154611964398423536810219473868304882707062071554152963351381116704499504545736820506415295948793996889256614424534037514932296357681844711173767154583682423964579090443566573983732609944287039503375681956847315693531816402871873821104159354007056782209827142752985043584928907465531875084347536632920561014138577294214194145177500304951295152920644189356290521596046006035085248017280335018495530746929993431790176004359645033413854679244566764796520748991133886055786370000891837028418376160502005238842521453284612432616800717433871930629841841590169315497056768959049991684151036043942218994023919550732729035606580112877087848679420765568712777147843604000711471851206528958520217456037659505157336181728106675743576476975303984094723083519172639703363965737878932779891662593920861859643460986598306620767995396289635576351135573123763721782123340265082652343094915631948077428533827849919417652451761421953439033062389357632846427616930529855643290205018943481630999808160098080058600784512043243976974602017370914282561060553639582571117124695702809349962372002482727632623630520495374778641286987661666590130986358461833569787874037739901952692298150346049998838997182319268272947099261704847060736594255100967654800224675207953964090482251593944446611238270003672969769494125473136507492362910846980528697811801657899188860180508151368752239487004120770192617185444456420105206938612980783091228530490402183728335605899238174545584220885339710366985504596062503914097056509681198240326818938529495703921499365460787754707693579831549506055938857424457519287088203413414913036602122774082122582388835057831581609857438767660020632883797069274782145470795587121665839420039309406166427138728744984205963400998254177855203052985389276747467048099682416455109498844821660321263684577428451883521130207771349505522387371520897463991031793923294485816274821536050705550883212970738294461367001008060152228397289176441414162818916344785714665498035725133477491279100806375638053140154040528198220270024905375917175874113576620889012647115026022186615005530703464426427397369920040999099877048595176254864770256230967235989576582657152667627693813354062870663506481731684372609714314880683669274853108026121909761738766713935590707754223470326253945548950714803653962250476538817759349826608210081161970467592159439281961924712830778863629281070015091635998988444261386117774284094212749638083327973142525515631168515005537841594173833678681001974474129187264607608718839747059019356935733516290116560735628442440164341896492816116736525111774351282953232314499613197513676041448194288409490773513304326603432949780395018656757567450346643692699326054133729519474213316214865283791092748967642855370109098028511618328413412378000380451443525172333316961399768836361666856264226043223938744269494175007501411812154626360321658838871499092770688486866544610697798877706523492472146440494807435355207317956546602495267097522715181589115839291374033124889554142095747467608442878113173882250805247716545101955671277875522899609992304598484923099309480493531525150536947092463409449406927600378947094480294180726016498926762904386061333767333754564127021213134683416878769455964207060725431772140500636780373921075518475945292625031029744268115889644958055457671275969292478391894882066617957653797923959801662117583741993810809372764813249609152011561998649622010996357125365389751770034505685131045843402727533131812570019545849203571878345529953621761782393527492045308618259532041170106095191448864955204861314978333654672668418581260567898628547188831550225572305550670119549228930797995624749204527139927146573006493495922833757829260824162671858502637166766397716324951616803207074736141890126574492940848519519749945384167844395511235820373919299942266214686589777726090533114976123488736426637939686310359330485536579400575097528069012635213305759060053082871394703598910650389230179217580451865616208741811448123463979880992854376391420643469694838250563941639691679366931896564422644370246415202813152270988234173620924286411164175971457856695176203732071744879937090452699214877839704569599845645101118392563512988791274614446796119516182298796823131299240272866005424771881762744955241681346189955357330004197273564267923771944207675162868298281290764905101041681673623020579628902256988695809872161309396944530361671537582044770311903350507827520860188868606769076693194978575069107187967325289442111661805130797865533951293510042438928311797377906371657821739242522349118586128572229074811218790493760532819017241838220994066397332207202557817657989226034746222534141513844434417680073484093561497635961203703755023234652347491586142622524233913001880818472179422425959695145139889939909272676870774160088166838992344142085018421826314622536991506543893176904436660744256361895182834020450152670152058728309971480153683050073213030035742219965674202738823646318682268242821072033055631733090880496035800705473468246713037895268277644440582739979753750215131154107473232268340253174802395433913694811487533474685847717569827400410268081107253785199047081484355436360567119266894398878594278973226416902878883126328096335405828711735765568973038159798917611721773549302702956128663487176066159263250382232674005033773747876670297536556914934864362627732703604259424479859734835302788958581499692989863814245348466681081883729017777117291673180914120676850374433047245403065131126409569914809727958948101024697719596049113094096415199728475090786464793430120205136124894640686115868935732013540305935769181218021734390499232322656388509001604377376917334175647112028824444512725888866855080444592635534111336577659936044930908043831113169317532635631088515024778328554604757848732180269519203844089499640667268550369480903063866048799769719793750387825480197700745826188180770282953145985534173758152643385766890684592979535872873243437866354494256704160875454312106595934406779678909148731187934192995446975740123034408840415103767404708556005064380768844692976929436276019327944770418308696078686236127879479398602113112591688090346211731625972582411851701327564003387333662606390487925119748454411959425847378897118960709716738457937168122976190498687164672972668833828353906914703224069114604599194165813942621630696840703234126536145275708294960745908008415414077465433714402330687853652113202477632564872369087918130920490155962897181367762251900574579291464525961485499764091975360589017896000839798001377529481189177131186575502102760379358795062788460147443897456024667755029412794270196372461338173011421533313156698187440896078621564221038165177653300791876282945593696780777845995964846192292205954083273431961056609691514594642818994497315970402440688310252934828317328199141490940315183396437193793211944262352286444318127526040504720805686286148403856523557845627174425531856920148479445533229447342542594089602531450543485210679210244519900766487445345366287310328330425748738652602085636514636678768132369461246270443601588509028596682010712237652706258879242925809079328999116766174978683320209943787134417824611711379010533570119473631467930281689779858057989391043221305755679764241408043185742329203295074293795818619339419109096984928217661180122259035894528511933812260964899347449570641470944203326200768462276983652414568763424104216225382765254307606575287766997285118145317268792423159544731252312744827458862294366663937481947272108083003861180831773611587556942409159826922051355087543032441095385084770894283790457478128525527025392460008281850056633093753640778050340722799652149475072913106636880931447364997484094436360708114904948059302909802571185423236664557585890926994435884230216930189338905880443983171569777834022727949803876695351495618964053635660190068893716422323749369255446202100972760730983279091093321069345983522051396733267985248699084297741812856306891632260827002958778101992628982498375528112046775462901899517272166683470648771260134360005164322255079596555641321958762939290977786140640932707844312097755399387768287239991423400834526033820311836522615834767316533555697670119452917985818270421278362165229948406252640519029558371464267575218318432351206342897292297157238079119859160098434011659414621728048302721398952305222760860283791516922469188491633974705596443626309432300017104766115865380439465699153947583225179782817839336806105306282917267243089423696188876173346111788329066812546530063974810906985310457301901678706566111924759561896700572941109698847191653767559141893587854014173864207108277528545228415004901536170616538677228049861972864760607216619913455741380903783823444033715774331225514594400741128543989845181251181494829409940649597845025137308523875527374059015486771723670309125923529198676044619215168075761109721738784163843666589606119511876025933731084232059260657469094707774605458172002166474895565493311851166930480769816027501637811316992615604930636620886589947566743327839667955310614444019127928373364695415589049030073432548892506941847731675073539763030580654274465498426787027704492265790820569456649514021001412902268096795167008273056045847023608986726954871189852552230341371460902234661711533665526779954572956463269515453590868161062805002275430096401125961187081879410835176049336404222494698043563108082839310275711176015896730018370414655420513238614888454698088540830522769102018797431292859558250214218558179143191396807259382800566909429414384163205651512348096801746659203202559228603692975226978110882742138795984608069259317743596322481023267050502160315543866755668002624965115663140891678318520936065363288036937792133082472309320578134547634097398621238225006995586733412636407916922677603248436878561846193406454674715936483519790826286615660975805131952682464719386112444869572818418435631050773761326756786079751298105919293031952764028759603641583583334800564803882997025273517907947042119685268795584338461743332926272404054845367977110401042063533117766298865946914702603822483049869711900379174370202336296391247915793180618808469836573346645116844887811050144626286062754379491079461429340894674166672175399883834321684027717209220540073041889378936590038504605489664002383588220614056215153816211077410280508272125666728667288517653325205830696527116680198180286521347230248000649890762045896358866738100613651387767214964546609168680089383333961778554259910133988435416235426479174604470614370873388249450941445402299844985897691386619854943887361918644170213445101760143052521321820836084599059006972890146563010711373488459169531503189048036782529946040654195818827128578461530416787734143055395998632619981713391469622795039022367700976408494571338249965674355596262595144050317817999095715434835196774207106159613110902291554178277603588399938735139821953074015187507683778844335668653915189934051973394230512823004818844538351318546842666336286556411856561350596384885035790728846674392377142489723608374175877071487032527921335490418549731972473616094346053822128817559284062341649679829169835827274386126593857369999422289406736022903825218523973061206846641154582816799846289998679594787951724633706031351792269351304975557738142149001459206141829265681130041116574776170811515157885731197732379646632000869085764009694229686159447259544315987135329297131069890880114600567078954939167775929732521886181770773077721238855399574537534698460502484004491166759026945838640201642640097383615574297918289411336960267950789302683948665832262934610872218615820117824372763408690286225511510832147803450945162832309960943837568578599448393966851606614751376252576814280578240959549666814228879846380769652007529898405778156661926328208389570214730439439548237988834434621245224487058936155504782372975058014035654397592627502685763935880165067039119239856088229524171909691904381845445953942523730076758567605496982168488025701690767984355654573792166006094934524592381647673112926487774591574457732173092358267883951285743564530056533415656488844758933356404775398123394856785279013987852505054726259652056618671788301302827545303097414108178055818167166630183496588136420755578371023836495244069168219996061920892728352351600201172188982168178568509204816565761937017649747787429531986869470115350294917384313984363929434555397916452774057758342405606277390686272483495942698662354534986578604794166635828241581443813467394303273190036038185187389969590955158631475883491087827000420840297923067995572553585084725199642031236659503050416844556756215773040204395474865398982777313396608858977944673157829932248257722335846428092983919938642090610081967926295057622077516280893648463840474517763320931587158981760850774305223279225325985216540494756546119269894022098734414262528289404514824526067615585550352084287063083120809133986900789347186533049346597267906370631658480384095298186559532272670029571904664921535204369746132330085527930187975506546902839597519367571267154283928268744031724113430190240312465317625210187303675916432157032009069009141176985445013999583969207774553785673733846412659502031366917551965500534560857701424968815516705933043204454113449976680350029226198816539606730921944153346306004838121939146995776011285276234780705468198645546200338296562675572367548819797142033485241777964090301329829620941565001832516741491670038656428697597310183639650789979767773251537532077722269341155208545910021882083864984525845119524541113903943688905054044673219079677913102292440576520759536471131402437745843881101004702621730548671362549255713761991488697787562599996696529100780448043135740773561816540080937459344936376549033303107047159784068440001085038924209484448859246420181658100955986885240953494201678760315276548109429606928935954935134552204170643078106958107289546030978855552600272804629647822574619823904407722435067276686943908250421722466105727743844864929733907859236426220641253525374770380572772637254950217454493616273072067132610945014259178591607890790176262240546193425255642995813420869716852366407591267576357671257048277461201786985690313661245239092113299809940574035226315074720065925897482896522095537250757093137307508274644090742857101813879794107058220358273179708899731291458752763428466725141854296669169195511117509687727518164419213307724863776002840984985046137198653172696517184404818388131227223710575622435077998496261951927135699977705376259430209959077775653180332422244200869572979723595032407240733905518992685994870687981921864123514947317658627972565588091041336252051551110259622351944362240003428457714589172456749034490321480168221877144895073796828448056285674595203388488356896990104258514125196388266764798284464664452745103445424154683523529002876464069364532359896759036234711459182091193907347322523080570116141184771187101573862315764478564492792919949057383811090703883663130427394545264181901967715861425053332228359730782403373528050277131355932511737929631307018791422741267611023793663062176891490061829343332167264632526798325029539294313345958481406297421993543899414353145582671792203655055051953630634341621304178758201564054356958190714121302289482114534633882490604104048746464531517987551810570798160188056177581325107508134299158418018171301139708527995954167823050302806890161147114525766615986802406932875355084482954620221132033160872921555215967615725376207059079748899889020961845372105390316598815849113511667051579178482272923826898588772568138689564362869423282559827501801680939915035016813096696855987294764803434675840968253461423222748160769766388096361915094130916401059009869654993434086863686390469255451511646409314963056230240360068946794298655193383699735145541345715220338106467922464216705555460769050741373523694401166740785277420063603875524166142905914384946576090985785304553219413358521651150885420612210682390731585294129397544653992104732028249624652987599738277965261037985755589059126123106089733853824143469080913017608988296547636210362804199563074324706945111892522583848501466050987462539622459260984785210408768085702128857643072294500498737998707629761743828523238051183616226439759609918642768756372399703505410448152689489320917872775828493197161558462014606321171748057505975128896397622478466311019788042212546512698328383490331513481642006135582175203416641828282677124616714113337205702594475421687014315794723298899829231318267984363155057933134870157513107144104142734088616847588613385127875915980527813168428985265040670473827319057445600835633017971378946154315688586675768896247716619714118399657582504151792348051490790937076711008661709408898884843315820507978485819108380296644228143793836996864016082501921140982041058504979917586908139125463561426333143419097354887534615643067649325592989907019808282311956886881984791744593471167505530311973173254914540831505600281851638933752231637216946659324109977849846361403131733613205940186072943357090398020070160600900095257227156745874835779841086713774867286471120991520043509826311472190340320399802964549811787909006879633691124021013684899010121138759744249540283948176301231299795480945378614699150451880759556591838307531463772133282872410835607435169017522149403172333604126017168882021277040053363614810442231312586202020350451322465190523286036284625151337251267778585234773299871111289226846624552538499742973440716789028469174652885835668451945865302155876920342698173038799899489697879878068147416895317769932278035374770785216122095508460909373653728019142045729526568587244032975715705345731345931839717330172321836401958759249966003160647220024382897234539005708097419009200718488218823036089819507832597962594386067715501909848739732506371432718535638081614784988975717281261783319028200232408179089702774169141126316448550731746393887584057475204790349948165884338430097406042577724001189655639534950308853468224843028598816943242871473539248705036143115269499803036100301214806371715761724421578086607155907653198408818617318379595640462095502682052867810050813407185668537161822835191624661514855089586671105046041894538696417404884682733471209911924814554379828676901041461467579087574120311689438148637011146206315929681787223465609960803536683087626091385199220921786041529740620613130494964649065688099100525259608913051340822111526395898810126140683724255919176441830335969516979908087591217879188706343870584244149271533737034214734498988645173262692717738157721182945433267771982648746957355189201998200288841725714305075256330674712497994706334720819223257646641271836967226155014663694297638013721787891905295877828262253991049027549409746134946539210795014230668811081083312877828860325317105183599003873555804706948060986901341643724703764647188103023806027704655890028046277607057803499413080548988512834751408060157036449129419474909940406193201368621849698745605588602955009730511998915668436259710281387172672440671624781650352489164861261078036641133847988234500932514757139834284469856019816458138097573084076478208531743590102934374068585978388192867336822730773290841325977076012192920236342350119699843945066415545269364694300847712137389169892661891372534566426166441930513224535467831572081962500134313508064026331086869808109664612022892023252024688125698717250420368139217326474597006845525421987842532698211802430905564496297992571023907462729658145896920554434370609320065690258247452425326988321556668382043040825215138525524109511313134708887933547592354047854306804411817395198429468102905850843371553846672787932650293802678302510331730618171846325174214940074440867311822280985890070075170560758483992890481820821822544634328248717408204407067352407680565669461340248378764406954703099560502013293099755080964882742322498638396555770376697614053821141156265115280409013189209387430469928995351219291427307782269151223894541628311022300851024332396371942740832131470877819721311129733341805949493945296651973912193911288168930078331384574047964810384046628021618231001617125918350810177093173738640064664775328585789789943583172672797793562627394651671832701116223768589055206159752698388534054341933229380313067724746323193917114176081757416839953330602667413168303637361254497996303372660121999667517214456846024123201475073306940580043861038585907175788810750352452784971249532704992797475300941296304809501629214810934840065438272264498257069046832264400282534583288833815627873416518733400606359786310199089601756888205174385864346822660545928878393653779383654823440936627437527531454989434858554526373467672098576842444827145192952831865889330356630756774279999954630638443118547780495395944611769206828378334580654895895203524091549557410165128675503936172074243239650303794011514958130817831855100029420692619803939674551685442239935358360684700317514105357299446598475712658628035007943533701354998055199935428874317907242922017115169060876737489519134825552166433034546019057129752004876244946216176342752343370734854861632309868516840391762113135558614879508190649063882655185681845465097139510750675711079771112540869219411222042876209580666690487887490942584823547667752068678635857230169579638560187669907433331492510212001064123329508408299443599126918805479315765686355823535327365840261142459189736496946249872498524762540441358467914824476319518990787520228076044766815180220935296973071033689084261762512282246737661914457168762834284258332544181757503471224718712270894901196260384745313046641508164641987412333230073634198579378555533999227550451485831858745828625860586928716842198766109903143954322698223501573072880189823267090895022489843795172497436739600297768084972005668539693459443451355567072620433884539995013416262555517202702572531605897748179644784761636867060246009358112105664095523661336300762016848514959117989266672483915067258104687325809241829136904762172986609571602915535953073959957173925299983882321650801985591602860543468534081893930716528527364788769443532787680401987536743845866871901577485805322018391482723034289441206373856007345396544482781151767303536661450719723058229695532978106152805816396940889596652042885884230440781878446595878464500155976382332199040946056518139022072266588648986431967837641874771892652615348366662849987718652368474938975279763110283411804667112861500138740398664557367314274905974790360352647483115972749185787012394804107612484483672030458185312988816432880043779319913948666110537742027012574042656097338656782938319507194492830082025771817968953269431938592014632360243572048264419810246810370971471506139102698071825890950789702108481079580856753967452841336525101683158928637677793512973670278964468889236439236417617869104382343536317160896016177849080987554981478327242063007346277641159655115199284570723717918355428257204681183425816616189549884780565288277461403097486382293781608318786013274168943526734311012848908806569360648238863446521421874726683091968995280933381284744428441061090850720814201578298582628346628929344743613084535528036613501901832368578708720315018809345009608748054113175913376310806587989571486766956131927641429695117465589857861672152702183898331661099884878560349997832490200405910515345872624878467427219465721622743484921609464620715283210652221790924461854959678252111908717839000226338819221240027941641452855517694932256100291818931606450425630528713040186581532656637765341934084190747262369140032735033296271836904491828963008547559961500482600040255123290476016270868669140422190850468347690483060857362711399862285000017852228056028681914756582994117896315067347669534616297620865991881638551180434239600545253268344889914966111146407516052186673538985837789475371791122821798802463548925450247887736198916390536330172897709075729372343488766044411549664543550494896702449468961427758738757156936997148989126520338162162792651300024678963521346054284623112781964494420540009680592363810271586688174333477592067042594205642901290241408727067148212909773942138996032042435613106872396150338094620436396173483744271864194397705235104153012698127441556377519970306522431542315569114360627775949480150167289188546955646533456471267106648005515027113224183499356997837859347924449253386744561032312886299515399401833401480415685907528283480045228327508875708469120559065414059323487742107575973391086783639332130827208929754205143486241129832168861101764715071534879727164176018194724741621107037221439925145849771068533100761060283941077874032620571927464248858972412713321148536981892560788847900635293462577826460056530825524079042942925977176782881160548062254119893910625158095342680399087242223566134057124785360395581389793963533910992532587591821795342712919938126831083764408690979144905006546074150948443991735652364821772204447863711515230388173718892974943118604721563309050848824513012105215312853882865419670816635361641340093472330964157866424170170739365657498829822517022774434694339136865450601664233027094554717738375443416290575193197233256112359514635771027091518156828831199721710966427585577826174309603785920726990540146298457889573501819706822045250115149764217696611331919606086173007106901688891780108711209129233493225652238370772694486350278182709603784738713922355867618503514985834884523157136866941798051736290313451908463208250911998483608484605808003921748233743015420872302828426246598766745599224871860419258714832930842879830814684289026056179478585425115522160283627650206936393297414504102999483148789951903995542181312894707037890578463143449037095686464031009645735193389285731879391795235498968776873181133766957589668070526388560670621907542467147576905199808372589175154050980583022682084208458865007270128118522108452718484279128947984133098162014273562741652228319557184343038436783314367350604461413884244478863010551032548459783331487831728077916290082000175176371643155272597624425931977175161997425036684235013923926517105779966116618744326863819614690834167143840914354669342979623857154119054821611080303500617390232642198273637698808701292277746876647361386994609676515646861376327405274682291000729554861142131565907153480954212311009434288881618676617116872822878113740122336682729367250051616858919910375218669536643527932677461341012903829743527481261996998537505495933633005159804095832775670800162977171378317312443400006436545796470850007024170766219850420416338789779486931402134647708206470061686277227330641782819310947583708183039957076431006949534727767973215904045698858627821505963612160273104764744558232873010832212913241069050798173678163913876477989764680796043636157389279208972136664007268331689693909577433232103347463338903831010600399063954121122822684734390731190175329901813726077932514431713558972424868457446035262957359879166087083256015780559208184726304787451693908111700670610337209594128651568394733686048995874922449316473322717313909436020054093083681452345973226404340732537310491968956934389631387559528487244036541121470944193006209641944379801363214344903900948825725593152630561066882735277556315314505729151007430928925928178617240481260279757230299413168049153846181064409105767806830808801814571044357294737652269992990347216044189755641340949709270339065414948696273914543595396778947028730620630106807757712265164169653116341717503503875178663697477089780328799327141499003980723444237349149272828102503814526311271983204140371356768678088037707017234132359743769667203005059129059570052875117834559736357259949769442683336141385839065703216700588460683796430568746027996986217132936540880695060921253653861995243403343544262762739411135318179431028683209727136313521163584634393136199793755476251627038625881350273761214099549513109924839649785163100653005962872689908224849580513697127746402819319978904471772411964037724778607091074311073953074344293001190220487345945726706158317392077769992114656813681988670143705368367343321433402836201265386765092496744577824567979304157843677823192447395814050510139150662559443157911447436869606881494447237655661150108392551902751367278472598120151840518448859280689238557339408589856737070830440961114038882614242658845510999050355223404502762923422081653051290129310188442374142974762660105368481268982134937223121176945561524723442535307386408142570572220701152576858523978309311060769215015067566387743177585921204144631910812132210283871756825837170754257462622801443006033388676156796252967695103344758535431165318139598804854663874220518424117754901025775217892733921911871180385377576511424372893741287072493732934777875959654714328190629451239147333333468682848995222941591703396380169199815651018031021480780379783525797250176452612773259486317509366850097555336532728286134851773790608545433287864194816578090311809467694237559251088346502614972136154409833912781529932130247490691732671422264550619447690254578259671627940835992531786015220831587400409326218608465349965330067273998149260557302884658306831796000095198153890053132160055865049621124261796207730160734300013577602411328874419094096499469803598398772647942152613687785816441146881663719593350283571700076658594528728225177948196602502270638503224847230868112591284856350756500377347223571359494428196969722891669447501145120066863312582253820762756841444285279218764131373427674670110203113167181705402445395682247840997285090764364598267880438105473650160635845095731403515631380880071646435115380861153595068734600488412042028062524495467041345492627702115256759795727662545788645241325055946042000629187989523251892073227238309726789907658072631133176701757800185529760747005388770166894123854458352545602541598818031298867571534533522443337564642770572851514332204165355091941183958157574894656317099925157413289678031587051648755830833161370413360456417430872773483645627927596471338882655017844061124430220110004372860745648153084053739048111238113445084619402726116295176169030726181417367554729588310026830363694408701338500421710384127616616092552218309720192389109947988704270217057219605732999717572974210889731067265520186322301586444416076057230661332111832548561746786966153938767693462440794104095703475142019978960317141995955682822121584991422233747769747213575121989181458455854272722381253119466532594507390212672737013526522887409545600310178829909619455491729885993615837704795824062782440256496889315427242732510717318576348140583877116879765429756500504164994824193023804791793986109606330401799298118117758155345318008169444462444182859383796495959877851991417894626003905268936310118775387803223275524422475018516541906985324460377103668858441702775500549214207611194222235547597294445121089072734410704971036441273508632028621118536983573035323666369437726159776337364696369798540488795480032121866725054917208432510073426101305898428030156958809839226835176807995030888816813475366680752782863175420735677885862433643818846606140610121914664778710981547995249441308293399619611660547036795525267813764893340967380403671828304785043172542928344883643580604670553965024253199853783559917235805936758340313429176136619162803573379194721024797429776122003091414483431614018350458538126570043335231334592556057284400033771796703285261280982942857637389425506715835893574826395462043550797057306489470668234094052423516794586174381675874049304179531178179612693360756271533550608504105508880402222196518116860362482991758321072599811694294661857204581224778998971255766035155146215851615778226511692837169673548465255396736887772537379269031036627939230069519587781552635925142120245145798724096126585744184357447823416018137264449081468742983199159159510728793165573929698794664614135354070823904996944076607217196892875937839815732661478596517924810160686380742781014719879595699648389180473022342422211484690803800122172948987962674758512877617845895497097719598591272818435078712821471517641534797182023555827306756939284595956072619164951865227084779775005995138464200320115525988969426901391422871564093508062147480137398325949093718477911110393451614224322793024806348341308544320731410995981042554396990146407799630273789958461064002804763298307711942016878410492064666663153774881999870008991526069130535989316361207299432528481666362534172745459462289019553335476513421286030071475877295155023162652814504783747880293145426054275275574156136979842155622017976197637235100771288113729792223863012230493149267917270325069784564135938508752343680423196233646411394773090031047249668569068013103417811065877123506864574969579576864857952140308813914773180973301720602904233652451114366600845357636371459134664365522929970885683649617117447030781582265763568969647478541298918401972479277435283046437774353544060156165126826232680557208818949714420897872228183063479717112935255966696795426611083360348787302278529641049273391561574729890358896288125596251279164454202141973650141746360992604261039376606697997871170077591711857443157871766173021752221521529767324793618390269082976342992295494799364986610801479949325323827716726862061435647193815246337434563299580826377817248057764620665472003330870131670707836367368830172159778516856434781714964347756326468965367204584011095283787417108012353405630925340630772324359462016016822311904627776477599007359818880718437294873310623364280355563711682419202930114243659489482084752036035903162175354832553020859270837247954100957151513661805740163532963776978474216642818201643224716251676235859902672202366719786508840954192686941178690839603605677019263442696749945136382646227041089180061916699882470378364314248920845903914193897742994858626937327166664223406156817580344440610619403251623338363378095196015888042993382367062723558851390399237681156335162911951184373549146894640862659442400933589117148879525039776042801453387066473301631027086243960051479328510903461618060057884803126635597318322478805856721449466638830196612220805599567170013481882494490918156798222218041553358050667086178828948839411134008314391512688153237890581531069982348129837892137777440675576487457920404879658494293774905561320787689739118652091859995661700418449905909957986965468408677454430313168348683454484317318898201749652281314337924370968083994314538022237709307323842203408615305545397984219595208860182906991646942037835324584491845766417052981141762004485379324445171667462157046034298268401237754211609047585655548643141269343060808537993677425591851832032352493284174505406906728524380228844901760398692486079209226883726469755402692344881319839508173601486923720889544860104625873075255177716946513456419584296390765611429180174551637751757882803093530712119595477370615005673744085666185252674027558095527453955998207859813337164117686496344983367409492524173553696718722996012512463793041075120575760576938294383406313961227830610471508847134110871128664776118657462169664490624706462693829802614438088382676505826062973924514714481250215274621364852151652356178660930768212032531940590794299956003822429931490325074515374298069380428180233732948193081699657448750975040228515855241065327777553299183972465622921374303802289348675644750280455332140112609816608954883729445593846103438514879379967255445175330198924916954648815409965981377794449640536162302176259934303904410367439242194706570621796304345161409589207093619495166628142290452921081850939438619975792208237796014536990108110876954441258785414776403202032453838428008892616510492649494595486207870260536100545946577831875979754152771751300962150672754076227208016461464616027381934472573667252645212440012904863802092053248891328169784180082084842109702789019063402491100809136601895963430576320300353076191762161792518679959660616319519036992447678079957347218596837733973752859451849560543863478959848165927707391721821188592355685221705378795847950221869925493946721865830073503263680267302274716765603349721138134858598677957461767498107289680592924545537643294125590412670118795298679873690686915720628910612064830935851050552556465169245355033207004806953502133160713104463178527480830084752275610734409604221100650529177945960966691868695809510516695958355787171286932576048783382287377298060117095099443550663564407678085700359506341239194458201904714011403356939136792390184887549625414098178054887962012651018389332769595489704569216585301269483898985898905764271517683906242270340157460303455647425420933553131296549773341836515701713376090831150216791727052525401008672892422092117208855529493822185283960259443700439850224635616262490262318585469329729154476651297213503762870269356181756065525278808259753794109103675385702727617467290805810404486735298045830992543673130305973762342928750281339960706150408357756714763723136815724843933375557233753432376184271388945959629795520818828255728335149006234547712411544459901093319710544424747008682115485758967995406025090677127513664983906430586278982347933072798647362232619312442521652205785502045341479041986027801961175768681209592569458749626800977543213155892407107422839229244516040605665251768620226716436674212782073201862993525028256410076402607752947661504815084080370173645615851761895786555747871572971201518988588615941717577556185304638660036747575308775095818326563735176180642049039665717290382848013879571387608319543716898685406837623415735383873952084327699235384577158653612722897911393653581605968191445642206295683287410646459885274001050318544444942346627447722201552366801164273207348244174666755079957873189193874324890448061471212175879703741414312165467619129534806759978350263050028353661200049270353074273688935524615912121091337467245761027673950760613585717408263716110531708361542910071000982575814264879425637062965467922433886200914455690145969490537566700738553435116953499667565972483695625887894896527516960961072275037039297967437461481118353688813099473468420569124165540167511569214330944161073325014221304403189927225086272764459455418322367367344073090475842822262897544605567156610149800949302467587720125147758854985147600345890731339400497653090545607346586402155648535601258343224180162883146395068636026824711374706227498140706291996507992818843541644547790989243030843438889016961220559125914818466033244199726573444813106227573073348185236495259867505247452407585948353836079100238440501181906155962385092164808395841224606000175076510383771313322828129301956682268953765605519015376450970686139221113785873426382636081237758212484177727842904409892082358496628819960680211337672925588998300691208477822226370508981591698935067231077628578729287417703964145873954856637801330965563022840482696392581168987668562050626963490211449973804895192353654910859313669531073258618233263317958285595350714567939719387197799074281089456371611555655726955877969188650710435439578711049290101824417680903507935304301748266364944261702508741170222792025294019635350493741532752683380213189293172942959048022230444323486171783869502204576985766973744740332610673638329511755027518647995179005072814560495621649291583118597254257204650234345684608105311254576661423761448777567556975339267774602646524181017315074321901936115324041940694247096927480791113712530333224330507154785203071848017799974793879131755838492305901695828200092821631738149924735701381402359774965505010399465149427512781582369156392679644862913783117642637594689431760677574915095087355078712792985302166269995549106617599403346198196780156381852530960410879592520536382627010041360818291283838193186940827324577982948311085388325364791002004428577399138839631142751504995883997408867210816471045056394235809058344736757141291836858780526655748466107856912607994740501354398063136177389640294627204324883798530724026071423318960634330325634614321191409233378506601317030440576054736084267814235657219030170034137587678174819652313544235077585608901804425301922704345827996365721086750563277721198501680004841872973859382485405596419583534976351986366963652436379541735533133586201444147530026549201718954899198961902625116434948530938531236062263241165891169673922777340432235902482507824959038574120295520853226978082719394393111788184196343577638426783105343644529334032666499739314194853438289515076654894340142131245831816664392283567660180329974494044085406690351637026381002088394529876152851877150086525366390965949913142636392550126774830806706130824607993892412198446798496661250704418137296727858269349039875682017275020853268341592431721685613908823846636894312049337936869665486346353515534644156836690713420254498993673459161446702829100367065096589756955700845848147595074352915577669590536959693178828969875157663676543148058059257076522036408843561311279802297091666704837104528671877684596907500809019588240815833076243063048762217885179882953746851739055206764283666156278322733328630088400282686636321577852136270443106945890690555221608712548014588527710337069951317173061725328268982058937523539267451795272413805678894212671310218611467454589997714780854032810794267926176676770449170178292878318814142671851291787337470540387883823169467264208086618555137704564798630465734625474313076872022284289357545463334453390839164017296334448135341660178699157870058850351044721851529567708696988892125933330513418797733129411022440476143246036076284171717249266010570311631358527576157211918715771358405019444143557001363205815316682792594054172709905228986229335221565873097062905299426405713951396957255881075417738156960757765766491481057489049879702635112546897909685726660021457841759273425718505951078669676945373107127931565243353346348571396796719162769158768725287118696626087610552625859887553261102279446701683759104640103879263996844821061790413828473343041490846096659743064987745769858765379600493909908255787869151248626564627800985499109795333910982938022722403283552690285687616426172385266707810302355616422602809272259032487655419703208634489908763465432590219087156167448604309942420754851871061340940546169925559362642783644852142421653076946921820077815106907586292427760148959305849036269746679016143017897035691779884921286380845871145479818986345084987412042866223328204586665092449370692844166505092244605991231802591123733864415821559185002478164559108925113905103986300152872827044326963127320371755515861314400278974062626942648097330814216942327286959692090049854595113088449243117678521125326261699766749096046556720520475713947897457684252501274926285281547216416761466147792612000094029188149043748204112600396088423206080474321379553409641179575250120245253119497489405733569974373890004895465968704518169833712489088814952832348339464243717381375793006766408338260010382630772494183952229724197262265567100787462784489403269448324493385029830776422418493562106613600854737886113694405728201745162120221830046549161716071759265386758114688341638494821213721762724824301190945873666365373888564763352751234006117693431519984958805516845617265025555840845312396299469116953293750789048082198928445157371241682720971143068660955710967654911957465581226816067034475963371671587575064255910724385296662899329379654117365547253018012964188728738237520706305014091740593892721238551798728840596395156682958102336991180482077401118118512890558652633008716710934556557418453127758315695566822127500237230030604687760717234817849869954860578552953580972394944391791020047491733904807958710772073784871505478250481138697229146981628557242978554068486771914422753247103381175830165616577217482714387729504637626567037024607362685208795375017873476124609172357857762935436875322303256343910728346277413540954569760965465535821658413359836389169500146429513323228330556972985063834055202626259681322905769291167135206884855138406960035248489567130917219073341667005742518734321854629958823680262543433662404146626371431051851949809253542583881783728161162508029491857294264436632547073536992223665665838668269490451864306911038310029628955121633339940125363268883065500794454836278031679077865856590651460898588371368712856319019214280364425760275573612881492228790990187953749038702823549505647954683624587259802995255646057965627850296547000198595168321414165447393582535344969600085403028704987143451127327158346445335547874317078966952387436921465266926206060085819457254513913708375585005860785925764010889526392318785726140669726229994440227307462483247771512443533852722317107625747893818582684280693620349940491153429871837394683898806488148811068463991665115668722083909747437059913924388027054970553357837473719099621336322368876846138685284453615717407366613563904140130585631636116575291502885965831066453546280686734002320401547153873038439231569730785004367163245676931886727554474647940180499236025246920203081630835558830721221298569401537618008808230845136465685541440327442442046345305358455329850064820036927978100927535339275827358328840452559194046775004028888664697737233685477715491690819893374497053581743398563032762228973088833086014727721540429373192903615560380228332650296237093494304418101699108615773437751605319828218382136183072572571367468295414008145956655280917645466202278568784205502964322559394046338205133182840805672106368521921614587208199586501770406221764862821795182517791966956475973638333329602150686715845917570847890242229544224740671465717035526631930413392393465010863373783225155087945330530031684112403991494209672665677297815621521351339560072557920888341130379981547354487171245087293222636885979922401434284731179392728508963279000732322703155760504865152218432775299055036313546639072842292469033969768766106598428348040333933960224044864948138070837878821933961098599739144736646886352510394913327124342039304616820772622831792132316304547577499121222403068659822801978362551895823991885208555035138324058618517319053183515938768117417565888924262894381135936969539495768994061723459920329849888614400888093350915123005517130808517559149876931707785221698976673547206918507720865038564095884260614468760347403379389784061090239165479543070695518205761716844506996068670636958093170236546927885313255060337075225848832969654322214265789363546646016905907464066535059976486250171674676074734509165474482380948623835975518802340339682969126648734989944807084842211050349188686839080350033141300948826704856182034459470135259411092326170257140155655201736151238141809858429716468866160371550642579060437479306939368897091214390671668401608161120258013552242676437928819035401470742726891826700810937339068704280023257929902515495585581361672360351897711711221589922436243542107261167615766037161257108477784990454392354022774056366695835025548883559077816482956293570629751564092217999364454448400459376637002173593185502556291667140843344497531401534432295161303726145724648333919437726684396762731681205228044910416967471259556667715688145098120226395183676588578421121753969916618321938351669932753331267981575268186936531094561203871003341023071465633815525114750507841072557796381448429063303137373471449338248653390671194500040607790153132098847457827101375487954730700619059791092279009628854792212608539670903183946050203127871080805817635558032974423437909028803035607209451484333787841245650659100546015911225408421408686021070398926034532135414268806726283252203655581342006957062349868662619328357205647692663175967460331485408775548622007903236269840629475346251988178893953773624659124095541408679762028162329476282927175177085776347794804826700420386109477933665496001544791314390206636058807360757895322852280150984140860584069519898004934313256268627687786293894050635455554033765889873925692280041289083107382529327156790104811952609406286212915453866689307985968455009620708015295573393855449205581345083854231456921907661334382808664863008921575261852391942672524210058972837578062111236667827332572458618027973917227770461956533418054484157280022395521968470154907706708133024976335832810548528431939960337473663999877863034867775237870745784183656777575608646486681295006977710138148077162581412808384573555876943068047323770093544590992781805187723220852859284601617771210306734758400021976172843654905263138046312596797106356817516751984513363367650071431452760173580576775664792569431729897926208432945218728063432814162086655486706501867351055361664047749535771460572534411782754863392068942326112511378811413994455205784842965885930396120783968308329722553633236027870849214518875660668980909096640191865568198377542855546084915829109016881319041518135532985967396942056307283518470843628595950170632355093682365591958279093387474698545004543223617816538331140707059154848828640280418480547320977991196894327343442644373299183991650081322198377167145443926522229267666444020222416441003340604959507282860127987026679121827069239011796106820072447132684085351314604471172467146282706710217561745084265460839592459328150758578774593104924982613597367096790090115300091815514736580068772379254373273128836886538332755755412627686703826993697519658225575413667811977394717964432781212481561827267559569923773077008182497154412265322555659713041430076419714331858621076954636404855388411540771556586917915380927759115132457700606571942497700415487882315406430349376838561370996363587733606790431304382876463834401876383479120250836779109056771083754069965418164068781474057136637896808853250183860431564248658466787490206463338124176404942311465078572796837881797336051062382876806670379743401203640475219569958348293723259214155839116419534800219121380896250882801643547934418931554158133843581139273610276268236448339715092495147589235360799075657284916781133186519963350961360715203900210553802983453119928824281264823518261656649685380326000566454401952161941452892853124472876272948164263031232617209635215397506816563522120942175099103964512845027319562512730186409134024588709588034095960427522621172575783599948309299059370516345452617481299712071866505762053763099655710061401635491131339906967445539333558178552619412620810707722818635192260498614617039147399180863464324479227850283586387973917744237689892897752468591313520598473216124998528707126738832079729255379788130479689788631223547770334439070621431252210652074910344166172150856239280239979205974163271979479686196623149596251503073580211331494741408819668658461653453821791663975079486177937996709589329883290522081500932351963452949572909911062016475676602302003923240440136702532411288122431668356539266582389646216292628553089172423684918847493330510524482645671656686277657793654069136225054652512241372665214507263331747227704354424062517635505504177468118517810127334824202256558509665503369689272742268964997422141257000041955545299017617628304355891168141073309805630752445949275600863297188950729742688058129186035279193283827116876433699772140032239497127408912398947246057523430942187532200746360518186649874961426305541800324855625342410882612555155826412374017618586491492648022447712089844827349288642616602787899454020926020923598279763631272729767344699024536457051889003681572192654959465053226595121941422615166780326263699728845028499364440172747600024567942660348805369972981092884240209378355756614351865797713560993778673543086799964647527931697964322595994990487228697104426203274411208169927927641132184608068174779538720878057965524163711738540977234165149181717489082517782325077601320621145361078693070641418199150644159029306712726520240201477435414320088527236665052530668090310775715691813438931084227944215253975888620164157695546118695381026312040765748994339118734279815664405787548451219324983043240346081525486606748932591499266262099160646470082213705385086442255147082965251420036050718472493478940168442567358811416145105612859426211501768815637030846773822048719888932264115106560291367808581941361230917582604300614087935047471778876608912817144859796267543661163917668264410109755835686214701294557226519872104436338817626030287006888577208802899685461683938104053098626329326134699972612968207694654704491580462138795717727876021257764549567546784241162308210414083174303682081219631384922066736676844360201088855073243615373044260993843309607910755555538275122302501472670144577575359268347253472913112009134318480345032360915460896527111160776631609526077529283465004211039553225970839581211988119392320042041974158867699259792472091627372807046030580600700338726599122359859373216774776487413246398983049814063168276502833899669695399730866872863941187279999944678545763977894321477229425284714711346335175486079209146422635922890930410374933275601010097282674192209572691342285199866591265195721256680898466529745637825775698641296207347649388481622387061586094129028399903699096383263181562787327591246686161140046060169632037831713023848857536673221804416129471689067541131622790924365110605963489827814593893367046605018493173599685611965766273451423936078226857714972041327323215141659931105148987535340598649923948084855375290204822091229686526266957015899967052333113517979246033013825498734397859277283327567005404387856273123166020659442561934822164187693533077209872152789604712100507637828448064338812011333480466498519167326298115947892644711059912245983588058720418557892876170122433698947250622115418586819700242423297443262012894476280740002174488745788877066750901130742611243182826437785527016365731303810716108784481120400023645349647201620784717406286258833580344866309446509310989262364055976842378017211363969661913443838466471094193061931911142926106887539901650700375834880703380478902302672395738072806341449167852372284774150140270859239096628172905634853416009900940274517173054073090906017539473245690139317132177255141010026681306257832820355976969071792627111143202043207977292281603471889679259315203354616413920837384939188483368995788859799244552695907569001121756346944320061426190778617990288572560993113447894819144015690152864291394020809061398306194213198135750061304658963499002696347031838686676641239709603709314705417390459083923442438923300881900186256359076546281959801307379634715554788618913645954644859893969978833643843194601036143870333616889753640163044833106253225713020953560737801619409383502123971625517658839733341098806090475235982472031206699310342802761577345906521670226376255293809206021329597571299726034630829242321719467393537028032304161916498109947993035193726801486081981701258044375598644208515110364063411250783297387086861270235607094230994173491895171408292567639224481690682905193565406490639591359817391937684950396251719552619779268956274370762525440534762753557776785144972366634096904519859987870525672671037274092034142276953675585387335889928799822724230267672561649753350872247953346628480788544243882581524180283161305205883555047182338203995003647073394393680814260320099745949369849854713388986869395980276165881147475959655032987059147315975747110916312582949942197077658572385499212342574053828419591052578928706175365582140488959289107673804427880160250367163157322155483162923055008985391111966353839500334302738202064792916755849048942869716840820837311585024736406667797100494140299520865067608560039417245202192119860140934243461351913226157753307148979650626903198185665874342397546749188337332261422409988800596116015729880719476994452024852654910278782324615039851850208535608373023439683978715244542839177620989726336794117283623070267546150917863872780640291971099968652939216930241588211380587292365139362140777918454649805586697878781421938089793529764515583454520679637278030993696698775713591484903679630169896887845314049477579440639415095287724944280296746790840163133341891669345560727550179340795610180946212406275473221996264186343674066451174037729578728646023258780277113984296712527552742813537104493826952711974193506858630762220611034172923042188761317958102849628453404397474830288564425739377854081465387037398442889454497032705886181317656403930465648607236235334365434285160004084230301122880866557217997271424746694907920599945520965987507083072994772642563294409832406921957926132192218038696628971889417211791765096688564995676099474047023602314286334949671295258871801678681809865260404571648926748546438361533131184073761011633776884637563599817777401834784250355678111508833948854096348147670915705500962136400467751708121701095313299545036794470231996177677869871668391039124490185638467620484499695928077796014048852563757668770826756859070773465241401327726064101133328664304307488314267325895503131235329095867577986050491910159840620394150643266184850505638081513515005452311227868452309880142531327812029854298490837353053421474259360695785351389642340752642919077385731476463895013105076553778183466497354950753282360072679547929754333756423921905418726251223966222332887953034195867729568165612130141206675943457189333180262340647941060978495624854778074697355031598985152973019750456977371113216700899811093159832872026513888620364833407065000131842610512828209920838266111296900637113082342557959653183994113961749843595195646893015727325229793664652380533752484002605617235002566830033423707624321061852557712766418827663289633347054996734045356840698020509849438610930756990408480300901730556936342222722718741993114661125067374528325179811607678251942356653748844497146928162996102247088962969348492979768007162974318917963918417796143682059566876688776162066592091616182876062593367127191048284547140180080362302540496995645584750998035705332425690898472462724359508482021885197524873996670128712372138056044589054049355956871164277708757188140274879439571084048247778400874133096217455328279859939408412461602093943688907602054926575281635419034645085562930882087844913138498430725174960886101899123986919558693872027960885333352149028715798801786601520536096377867469248766783434531675024950862506638360332450882329274832148816270276614965921963157834184091615205145893348695447508319783887400650273480248261333123405983005797300500404250441068098702416291816776562664897751699634653902327838631277337519268773235512699382446835693723927935855645458515901874681597850669673476460109186318183564943264153559447221483507518529184076959771775092131822788291826740168293818031703455960981411692339139797440018486921308385954940360282126099041345093843009656563452050863989110135922571220625731420106124375275256247697050095115843790409017333049630582389619329888252494195826388580608080804100058732804727593599773877129628453142115391300251499430778111909311990102733464774721126846322432681669774839592724789316625592973696119801213929170224801865816227116476750517076436561245851344413729757203279307567397297647778011455081657243021878695147120505971746834234339614133806723329623066666400231664813432822427852903236433781775416172949766915793406429067023043526992391948999702085236984187648603884376641435618473005598104516407793036286522615952997921015244611581469864989585129215213560363347367306629996399802597048962983641179642134059992430162795966998846288273147947460850388857979180585134886641983057011653327603541324204231834605685293926400005062345685765113278891727888671504416530271431142870709769323937748205307015129839436845178025043741637712215508192318928522170594077497561035558759475822460559408397523431014175187361625078176312520293927438837094029352232502015417446051937079019437858774637293962755921540097484510262318333362085492583229995463563744744813723386908043854133106915702672213546760889105845946089848059907832230219786408508240869092024599991867079254099175903637160060176066282450911131556701099090098072893127020898596214529735435194259529495458039850823861523838814315355705610354938180335667418116256108934789151033375129747884143596252980125403176447496695405044858187072732186910428168335345414633198406183893554971463189990497564072064417833021121230535724553923149120421151318652610602963295020632869723864243378756916346151744336517620698953757331149802030223200121553726215504994202655594545688737799454570875171902297357642648504883215869165027070398486213059201018616004604216862728933087317575848849919272648991466263790782272537929458432519117174403614963136844003938911609028129235682188697440261330160002634070298572590265112324613433633620803912068322952550944910209203809667411101625295128062461909664366517212723337899775316364761005086421609830571587189991654746149218750348480552767740546922512082395538513706276601780226859768520627681823374476503556496725376098389289479988236910131817064878964497578270341873890327780799678329178453818117002347540523795505230200377731815605268210004803454940358253112470862061817249951838727783697535254174994130852013068980254465864468650952857030174602129444979686032649655981409589563906759261546010365930698189920455140296435853657029403990878305281104244586427770322407892845846706950285421183926836203994425751012956912318855466537394286864981757194341774015082903515717066344255996127671970149953996467491621341194440609008330452175814083789210866979468207486079852925878634432393248372140522393706841237165085922250026764642572329186713272675935777631803957045980573575692504143208485761118124441119205339430721783355976515437751086025912954260273592161682090439990289182686020395025013995409525519349333419633689510634101710726886949721188707436400763599360503094964351416813708659557592317154255794692788697209027404735736275575282179388858469986943806253356076548220247690303775732676779784478327187591140066293448579346878267985180293540840205288028417127094962891726961908649896145881936780284900402033555290033989833848595250966065289091020031118745478603601728883219369732647978110993871511398766057698728012758750071756428990611145505351429877476257056525889898160293537798446565083396992260253198655598467892023890556128316970507862721879496568003112005090325771090452736869523771195645873497238764948895560508055556504432757207261725657485588932746937313329973454974801902990670033428623825795011467068207327193702801614071240626111384944390267815124213049675738246426574406080655208205235834540986206307515460447009294961217086673806989794182730589547923580625701602538143538690204477245974279206718015618158452767333882336792261451313708476327840138453691353721016679744073217173724244790107907331521626513640655588769128378180008037363288791703389078732641081604653920154436837655136082732996176509789492920743507259004221781717481221769075275476990982885259107003194072231307501669233777480428514222179550099495865011396000875064258132932040397896587058138990394895847992624077083727468552181841611069677989663994900413181918001559879438078235726854494058713868787666981384346431859459714268551389136666795491063404297426396831989801332471201502926443557884426948823298463794113920079360852175903460295530348702477712504048370414202087274550947028776439387179504957024372381119581881204432793786448619560127803242632132941628647942432811661172997823464298594792679338251340907296401871984831898890276885901189901319784759536668993069565723141636133694173057788976623586334229160090162984122708717579174826791765209613521398126515297609582828326156203030658615846655610894606118038747228430783166394802307600167823530729989675011824238941333842160613896201968335518186691079256680501611288623912086586826329314090822308936387204676948922213299938700709640199292818869456242405436450687888364782298528987976850523326989002058466231135950187487126468934767894464466299721722940797059405443895302407611076584627382388730379085808786531356451290585952059469934601906661416810072841105757586621880377331132677828393442489419259120566356960658776248575764437823718510917417421947230519550856769341038393759063173940207473323639368782854281577008455154439545115726480962611137906221667673146090974623613392956062579941196373402269073800393910915978953939760269214594788271400644294395717258674420556473195145809476821622430941932117760089000016664903607205382490036833097828863432448117602886173520567703360497852977274017219229182936110142627195037501924294583196832572821054263147686780972146391008056465096746938724388402386718304374826542914214575344582301490698665507810648871670999148856580278113894837804617667654182430233617174964623997081694973088565905174755245809540403071592306616261947818621356632937394383944523550563641201340643112533816957267515274122767532587929474607095909417463857477398105854235913511591766639548923106479911722250020388959568907648511216725459870909519889846489935295760796096578276209833050153283377458881644472702545994484381845460094170957514838498339910901073327364679429419421193426255585283620409642655706392395463664876828288615340254900022721389710456075977395714048352426062534943251747486355288209640779817999169190992218234117821010478646901501003523890930900466065744205026495458409296075516979508936450425990206858472444289363038458175686531137010281370504959952601350896747020571689965777754572862279339860823590775832120666411325898647735674515295990850127539257774397458889948276009353237145736825887283898597566868231738040898701146643729738403249311833941493278133939453350869868004493846432526334323570719601317781611928673180534119461560211916923870674721597586199830814570997759729505741767658343101012950672112429807265835362907805773558800142768524924796138207395495124253191377064140727213599269937333975954453013554740701352465439369447528448077139809766450131332211508893731805099630682882115770089313182113671225636803386953945593264323232688331303528691397977890999770748708632819232209364743691904673370781893460164972417761583806270095731474319229888320282732030018554709851586662648579358582141453480566868744682047457410391010955313292265349025383455181982259876402162231372915778001875121966763980701934659429527220071679927837454768904435173885914790221157810391072085357137307384123105401533511862735586703724383182696372438970518601336231650781869789969140894638425177547987743187892639465180083851209235935379971481830071083234194334200207572044378283842184272439829167673116614166116565736878672121235491968594039322923367915780091160497848754477421038109684646175904419139090346892562908916431505906858975564199903041150204842967784948255473676726673555254984133700143024177800920231061628378365620168961578850964854206035979807830289297747601528863763718774448551596945363843705693689350557532146760118953542469258868037544760920190421659081421724282529739355825312774668665089426276695157558088955300738319060474453059423528917975413649727604429246576868186151927684314690721706478717085786695096213142137280124368074083402430041997765320110413007687424711318530114500039841202581607295206282254179600017551056972244309217514307006601125851999397947629398610928359789905079584833310202237477723585968118752542397715084355720198673757401884327865708434587026282106497591956410022521486197379239475975464692274516531676111914326252959286988842876102364542432892864347788871631807586147605211025886155761248211104920484430627098763366722964100219244092150794226781348001337814334544818786385045509389369997214244276584356001980994736972293133718760135776060038382059149650562061388196888479735018890556872912451594621797343569258988199317331858343683926511424137297846299899333695986443903309231896490446235552467772224232859062956076074528864432944347634187262200818204896095461782594545730502671146020983952772171257752810935954631015197332026798100344305717603356397521809468700673529545859605717020303632175051132258372501348917044121668766437997755246208483002540184529924236850070617550347652793534704419169932902726939702728915290219420619096460807267731075670700649663253705482148757601556608371699098634768570304117260493428109503464783297020805602732022739773765835959615160879028689845843667929791016417465423002035699426040068485404438241646368681724184869950657522294112942148398445092371988025021942275841328638135267178358349748313601059343101037734977010831821641556348166365774092217054189142274089394469977992521167601047782559266345942006302381265435312963393642674348585472669139132406130122445120394919515915586395842785007544747081446415552477875254548261819627410805129504246805299002014541101800098037919464277649337325455654010917844305993146093843413396701154983041535173280676953437426703779113133718920173044080538445554857694098993872417665035272992655845536146637186198050711280990729965955893136241936675463284553391662919869235286180477755657756079472188465952692385946872468117674574439113915460355069818154809424437428629689147283179743857741734409791934088866374924633516214430675765403383132217334626778176401046328983911318903918831210642329478472133166033347814561559845257728058561506456460098894656024603757894628686866456811219586921362741301941156926434360133907462177791197062140392634488887019194435542028696504606230482985101465262248734882000544437794393176564208781679432941685909635974372551705225819754422013366311132689862853730650276899167363513456313729921930557899251053782934476084967086378920453032877914776484590772694323907345404610116232981067460757402600936155990996974651945812547104538971039164954233091680548302919249022140747621787957066575416072971323729011151105000769400999716592824827846268079737684191840014295518812288593521307473610075887655986714104548073769542833611621777834272782459022363390454006734388454023463544856975797569886930792356287933034396103633142118326753454453227347895617067924162725827747926698664923734667011400288801029851884868177719413708483909724899869836477697983478409717493928935128004789982977725452033227970976814291513785579027443627335036131374915332463784846764553385844795871351191153499444493562544671714145976917140986534047424762210451659911446867373981509203257400230637728429210674488854105894636084044389248201802293327083287494414912807101603287799996727574433890588945006322387293804924102715891768896549254479368812359274553226471066494498426562267087060579605023225427684774856869878743150096318945880725985563862343828762072981424015819525231008199383985704798152306642849836671654243453077008204911466913348774240191364608240190609694476289097053047643450621844441652278696921036562914108698845841850680385141903264292785038680917364215491421354172936388678072014153076668167213314155951553783790100943813699388808644763224026493757381515941574367345796546189186755249817315763114013767530155536761487504917734195524947838029318603057233834676928362861256892239064180049028273649484594741605950471259483877712169404326270127300286225772921756113215464762265736100130634162523200094367461812798673852497909387207006990409629488516336933743703715643085886449155354800970469149697732907121348761426347217102026763495028722276125111302589356422144633401359308482001616229480509256266601269170398522604764034638153041188685784940174141505740816029674197303055999432100790803682172818119248766296381557415600520611734261878252212191589164995107644640536029356313566463053772382595533294921437937326027681107943212556287309931484364968408941694630903084945546036339795250887572454962897154626737338813001465989946626515003404353465337282089144062302006146048391957659043607118573538760053433984532336442596943968793988848410090038765416514193433973586162303453991771193502564732413767523011928244880524470523756077800402096582662969189555561957897383795353514653924024506401110328699981240573268152703184721013397987789994543656360492556440466738440724267227140107625173969918997827968244266773096899719263105197916789498693693779479144429752905346095041238832005271805891108853974588263100520297118385823694209729430204944412049077475041675696270953764889392114765271250812090833157423743978894309525735792252526039989610713921564765300241255078956409648737698967211564082539956354393441129696003538197399431534667758965428933531988957425780868648039306740905085953112989989608234478694050685585873174151764483885557228244633834136084842498011469203603172874233450738127959878585951652659070908611341225797084728965736979052732340990817408334237640192408249232326266241747213316240939323702850160478787413965598118268534681717823039638425370995345654287882271509276048638566388344373704416875010691789695591069276183988025083660625691931914587838921769086413166396850544951263712467910036308761455592516351368979039290016330929448257094661639592820540578777381027070189898274442111614747082521015291568208014600619146744473189904694727667550743472765182588701380873297866016597914443144390623409595337522914236451582424549933705170046354773762333793785087486010386326864517635434906209181691691691938466710013900624700131408420962032820323672580816465120143893862906248175289633632373048022982652204074025499308132069807152668444623731107855811883108673432066304347267224018894362198196688977794029805546780831098473548804119836808361777417290138546121818546148983062621640445416896751842222420290039088018326345137374317982061998299759587408863694413151252150117227705832879637128667012323383472849679952725630345903611972105192465109405820141856345485131109459638380485324211175319490675567224167133649716516064262852696259642523034181852549769542651909151211867020112417081544744101236386893773722515383051217515129722251989474997617242514869520655084255572939780518828874410738232441764847158331545881248501748425482341956215277867649301547782474563810436696162253109332046995021531308001255336255588237312894352517697446683735160560712793732721528931705984449762140908421684901622398984171587960648658172320288558248591568037307780847746762645291208878064640627300307674118245878670198729875300098432115178278777017897628443313076040856535747825484128580043035323814659042481833509196241414213427679323740963327779669666605547795461060964538049467845032161034671797892591096073967152627166115391818524669603296410905328830542240730074837112898940688561428106580281718404085521992406066728269094658412480942595539460692936252477714754109069468432719511104024664101304873442375597802872617404623431816946007474909491894129339437847697489585648698562755094819588411782398616795253755064136809273095109069898620089853633416429882901876935945214807080674995326698837945046104111920647859968183038842871987528056675330728613637894650803570725336054959824951198264268799203890979324281035404957457164710799571396431120743148861983200227827338031239482218754944888646830582664864646125938207198900180652297260227048729824714399694226100486070598079039587080925995501036043317418279916607225578037724243124721361061490549182027206551391212567265748451082049806648936841362236061872119641614911987810467158870653509116063519265736120072925460857417719513702247017600074252912772093292397395213900246009714783521734496178221988691873755394509411071592094825767197269302147464042309871532021611976721469850580719351189502248144731665853997483088502322951546956924966564803223951823590259744282522404559837542382087336630896879312051627661840385014885053289166333108039716094674576933838140462952483785342878506381028469816067716184013845565499834123356463066565090330496733501443498876156768278266233212130953279669308042572875821933572379702053251503572105216375068214625465489242235963609333164558022247515284240488727344857655950893285620491703312931425893488669877608689984944679849448424810340258580451185573834728904429981711448630613333845487617005523299676554196020063939384100289010580178109479780721929808465378038729522535735630505543680366001050515782122821841955944137148680918598305354082330568117059540805795510500352640464514574272640525498382192319399743095758603804649750572038850599139525453273668216623246105575879362521667289630994153165651251463850105984085040967179915908072094704281249946113498630663845187995392307463146183280547784864682620817261968492764764867256005582494622269582431927958577548214716407903986143010147169680387652379260991489385109580179364097780851205811991902750226255360696677397481451429839037572057838665070124181031027387279790642244903147835023112648268029881755655262758513754135352115007530160430298570880294729847865062536923620370052937639324348246013518452795331051469782405408223894919065162273804108794947549573191943205626723247478476190902323600870373547487789047028259529533801322250982824220604801332967138469681051695631550283368340641420272966473102593169806097650006410239606333781016226786700141557001558804094455177176086089670330519410046767894505200660447673770905220370915088813388146915142909177010153439022019911542885562454072987629860563896906900654990566106757734739786768339922750028067270418718097202569032040910891015799412542910145990789003187421951914224780001668856061586065658114918432303093489999015139414850617045598400241251448090108221485445831624769068952464525297040205737866395207821353077421494594492350769928638546997166839818098491828863263706075676190845781737521182280887453657344706285230899548452397174109856181543682154834682443927910209255036769570277447729773817149045659364158463738740424695829486883726707496177064365906226011879636301268886815371327996133306129690551795689005395113690918126944499353606492994293516161863998489686345992919275533648666222943309535204495515639794659056650757322712466680681669823324379873652623178258087944241944808833148592624072367230120691532649130972212699226986588408800567069229230299849039604521784774079099291163816239148677797631718138913368839995393126537611975968303389131083874562009281269240709854265274770550055183151183514020328369677004154683453659345110859037562854426382304297407444492029014616382641259261102133093503422960436140995847366873675359081328083670335056529861606928182968839741641072192543599102135542410637402529903025233192315360182518248966373008219369576925754523440993079375897304640053729944887472908565088058945530846031787515481934275146550760188744909733402485688997769423031168801059661055184264639407489988921013571795881884380686846183288140224749393458329938373490124581083821799696986711613730193954907704867716404350206377677750562602500120253338698168709373014387352781593170299502431676016527284002150798601211777810721077647336583307132823717220570491515338317357921796539317603085361872788016838290029916741117978165253601237883389861268703485042535589436889048362867466061057224780308549929176048146153417244319576197881323000220616662478536223989883424217415725708168821080246763590326553330353480885897993481481115320170075266063771619868109023403791397303797370512456036871178380503862910290669574434308873477538766305534610908952662188129951563167555999433857022712462864114919038146047710152730419606758509669900427189488036824729273251374367785833819162528221414206529665111834811801432177981752728122980477916281591033926454725445052902962141340546791058303051603125920572564038965093773669716618873271218615357372289373262569645916266919803113535632100759556375202361287637145322730178176375117341527748240654431802401164343341106249211661438752516692625357722732700933446934383606370998903720152297836375985415775543313164821491534032919906944620026666074404949539158902258413804427739111037752650264239283772661006982049589412057978416303822663782707492514487955048565920581571671654607812296275221383509398132077080842365838845623822276829165414125808544584644042665357930340121386431586243899016163616839194593578889071099506845410940815209017780080409448393685858693575128855358142202013947076169491749402312091820636352671425137432931895981040950933681004249825831850070135556414874742984087729987831917439204901987546010763186380702152633811447088170183029369288166495581608389982415422105500163435930568070181497785470704385186270346227771203885505214180404536456082010224373822162267233424764060451203696526184428301017636157606210990994788500360857167863015744677085525892709085055838624414933291816382116603856002177390258948889213211581812680427290262771232264692135988533815994796948852292086756666331875614036071242636926901765596871945881550954456614063484044609996829829421475470389657541010495557620473323340679756731995172320195477114432342158949405293191234167485027685420396568188536733658865161882899689760530978283620288201124083572106830411818642429171851046945176856217120064129852267301878166746680314383103876789858900970103969681729152815809771203805722858225322803514434667455924439067098442555098590868629370674950723561253016216512762308009350715091261339838394524291738648284701275119491181074343844575011671521049517992217117237873061894347524920680197857338507571521463927379240640968499127128007475938968860890603145836139828011464781317401688740985414095677109548263548761547639395841090191869151668300008558536377767569524883323117585302323521518571331958141433830957971724664886702363288375167702699041481360704378926754137633266399271602625244460523193330049282493484944026062997985243485960941465159003512538352361712758507515166808817272515046784931625271615786223156922213030127808797943438456176550017586864344934929903673962086810488355966690683889610671291700789830503715490219081970055467260568670783140287626735330203111000877251076132654275091902735052449752269429954600184672176578284126704545265396898367128586012322684712795521661201129744153122599065828438990724619655707372277311378663534233087995799427746635728672179326821922613892263162328018017911480971923302068816817261121152925502083708331888465186500527531673195671487553227797792806375197843183027133560906082123270204386880383986838570493267565502963912367658817605440477934749670947396028981530637722810502679330393644713117218158553897612443251507593587932074169116215254761275481642118004307168701743793832395501038276098719579748222574164323398560965574147526239915993126475318007246864250481209034904576709689584917332385209991884375912448509537684038145230167270000982253973748253021738030097134462263737181478178029119019322988959674122151174052102056518425427514603838464960874219229531087070382402765696590043553363020888376110905076446983916148104565303431342304517943301930415102698707834500228637635727355964394755537506499119617903583414651313723991538999256002497256115425861344634864098161096682609485889267977128845739529571034167002127831467229625407337719808261104230919170382651477856863017079050713683431339260204010910830267156648614098977584754938026382497957481366018719645139505229229361002597765149550732093200594873645607975155971576175814319855990283907427928986521328646387602712862860587951672984765608690702824201628059119488779359442696171303950564769554149039649192453093934777766299378657560127153179224616261249454278565515535654008442244240419140307441122244009193543401266625272876847119294432161398480030065903968814338684384615687418782317940934775735563502147974268615222950419476392732952562852070106932077011948114452898915438102291012553496280839984197951536887815139958517799556861058241012754340867450839221554394818594999569356667878454973199317014689745016158242914743522172848501257579667946873274466821724478095280190635112365614015771621150029219122269622703765416377828773446630429975681282545306500281832235768500210105401271881370015251605338379064431363448658335439344322910211837602981047480680759908554985382177991894126067578789456378875907949648556089748040856588935967651963619886993103837540362272124216574006302117567834215354134204702784279872166231047834350325673611465581834404684328774676872658644483552155267288620622121877386887560489680084158016445923140621215567714934256100241603042315322587679426985011195566549725831419673677267748408079547154122814851946498277347961913533027343073806426659232872240768634899123574689831516476345421055713205948690431588697042012330802469523415116441200054113975171894104613045993839086832865780304002396059277169491646328695541852933907067679780173829150819885628207315924892888535244374273448081510661068565801631456849796498747216675930456242394428531705453405005828004664241560272324969596696518737069910291259575439947372007862395541698984916402008578729748925969414613564098243147905313303851958879893333240017531097937277158075974909488259062304948652538495114095999634048506816869571891544544404889645457585368367627551370988972498644045483116242466572882988281950885023975799459297491120490336171636264826326565580821108615181074339309156446453550246385717781143960646688629854036349193642681807582069011371272194217839000140574843790598001505559672434221758387134550303543696478505786038443096065347316554330800944515845797263723791396536039473673363402160480638296091399823791695258114106329918013242996715687296563353570417820494784478454494916090140762953507402358118603767889495461662854491728139977913566753282621111268362041148814792089296758211527301119041264424724631627872715703578813341569041063266712279143458271870764381338772801983869946248719946424744645755016582290709226123699053955067319607661426733426697887642579577589892383655926791835951254202064482960570576473837795036622343156541260209905027829879420914623466311811316935663451468284357043858020728700651048961265260032432296184320220396618374301679107996887418130299613156764634633435209341310548032754330548615584259293303663859545185426406123135784337117825715616167635202715109359020042555412094856888890511158941799656429892726771381659028340480276043438525593177830658800883326854119247747342098284038555512752331591002346267540599837182076964832341534870071360312325331531486875410501147728970486994972493648702551397807633589749911425901982949429033518872833239353210707199646795758232587382037996230892299183699022393818104909829220544971087351478066590350429301003483293798791931997159960803682969565816380409312194699906457518210070749500283776596549939952798669780776879296460164308659941146697748909372807193527719410354326607647032883825184858906357894406562585743723574278587464931929905721384085482932377041373012248645741074226306293490045738810853542289841732218513607460280163380299993549473216357067056379426755415826941363448073230093310343978062209683469676677241065286472295878678551948892884961170249068825824953641631556153294812968611741263664343387018528653994645770391985703798876609750857975803269393031918683481218907511391529981891757521877557506779514980331952483343024089599018747150867381587031909631703580799733059352183996036616045323871498993953334386900716516830257289840299041239847889091989003205325086318169146293936115356270940100997694133392127107855643660263711907146098144794489497413727817604660571156011921390414903695605185913609257501865036083119862030065804102011784137538183207868505154028828763904223776523027914627496936483806757102967457420402859575762114271094155036271033239945607432546751698164758877572729246093859576361916888950019006636459737782827560028283447190365738003260000245355479504167080318615933076860808519096947693220175802107665988860397295081309257150754825632496288680689252862495593867287022408620111510722185371106684719719026346389512270016764139450110555373996375704961843124219754375760943466719509723795465492000118700806028548817886126087722350873864865380970106878480913031487420940515221418635667461117608143206613260940136762043724933966881970667778850265420974338927265194945676273774633105931116142748264634610413960393437328858864567441935989498109356516028529351969149288096565547243458130772901445703647209866161801857405132136660808097613331837639086527987439035493064610534929036889123114910052478561705436312403802746844439039894641937550694621170758774190418759418711542520186813638274596009075369427887844879228759968271323775448857708619803992859060037610975935860224142410324915281739593904540945065465863730271864178247155881195916745080812446256138573973843504349331057425883205414730998908479426744389609508434088444572046962997377304427171211963065873951611652743732594272226378131849517333009909308823567996124706744234313851683261939780004304689808905042922336650881118502452099756916281063577044595716743744586271782019726173740222834913382688026756429418643516163791441123212442165502566886755257425888141019652201987976437419044643914176943602102297987675730646966282519371465109984322290711807350910611088729038054998103540004315813658976325561622724802482037780662666354254136655875040299484487725319813118585585509567148804099305783427445437821350684732256306033648521635517586753924242738207677961982853522912241464087137896279543319886898579841796559578830842874580063646160757035755515056212446014684683032971721995576602285155592125758498749960541916963191408784129031950120695456891493455641165709818371186370537435849822092306311669340789753258710129767681814844839340934730826796049803413175974151124536979436719280973469114301528326946441891420300931143341654144503171034060056496719412018332349461171615020382085542340230979973538055522801005813357381824228054595185390922321677806137145223120569451060701920102395132921177320160714769825826886934258853593730964889738480362648897576160103863461665335240389003614716649171299565318381710047964533316749980231461904378438066643698086545714965322534086459158519456634303928633875641215016510519597864973587771021759302793876204602490085219958882407171563187796923285839180716240878619176682731019895732723902830557577063981540852867049020262641301677392557367474127078403782852210345331659970245916297441745539844540343939176254341397664597205207570664402768806330478595753638453802241472258878288872117291024847476988154251093382203702497591629436234503627108284841253353123169094902562350217248509355701367144771276621693661157500353572788343221999774034664229683230982581301159651457779367964766541015535728951436459964366790669909738161394698586946537843585742595089587090597141771139191762195716918294037764429906342443664950202825531075065872667065326916177619749843064834743139950814856364602859333334379622422998176397351422938901668934644235403250232527845264154685602821216618681917337296697429347931068531271835783868582378858855809012490407601956062750986416611757104020385099342637821976198983588754592818703568019212590419037581128976896321367237090750827673530790713666453326845723177950210144379521515393630133443710614969253326824307934825676052934845283744219971703863735107581758633920351622571059215069897206613016055612968987905823020067362727030419086492308964602882225653701790488458028895403157833264498455380922262459502554570805504265411361614538983170192885312033366597822418976094644776440399171987831272026899456788476987959490857539054209825737790886393578845491854114473069126327796328539384615361781186304807958455367946468924612144079726745220251943261574211529577082904932259519766410035689141670031377526023600871402294308006939608062314633533579796575550441459355378086455101772765476158983428859773713311891396940541017008269882854495414795115244040494530184181580754112727355445824422663955361271750893432867341760006651766012023811893697367364752643531698350732155864683122440863626133252209739198249005538543320528151543606796084271473782294527511497521718888009903284244431439493161410181326320449102916331215235124314870058105290330450093713100164891655743047816457719258877027788283432147444932435585432419661770261805892054022034881093266954187607704194803540306545504932665583258195304992907821036585965734152789935440838660189229407516714054365182353123006851085856226950002156268918672169346180125824250377362395388354039992719298658563635340799115414364902130154943298426748809391392267794917610344700178595190552077070738048679528598011928204360636679547741335730459652090505639433652302942710535751644004198865072031943133754744037333205039181740981822087143441945412133447498341585984475378381154637317895946092861432405802546176389078951461041621065895888676404910401465771443274250446508563212002970896419699115309886798062273765005637982090135744140437632719128030658991379298563384194132349652812218104683828718237969744443114510262146307796040954390055234183732480104619139292982778695544106923977808127724316080220613572486408087451100791100925968787832009080086375097684687183609050574941573943608221894861858860155551871714785409280400257348762602214767725428575821376793183092316539668826999919634648961127857959186054658315953684865986402324177262647815711334427327837190048120990557666707953041265005658928867049536849731444596622918974765984589011498585675908838294947623679128364776039267063242459008823196763109583247613328975051387448181677021683946758711541149836892526449208135453466757535894741591969037010678746239910244026022199152249661725815786482910301315975801316261092246598444076519144054386650692212711339406704712657399364085261208634047809658504121733382340963355262219907893703146406714178726854918084389053461035774391888609520916742952547342278819919151036442356521576473960006913222704263785882154240117420074904599096666681705309889588409257151385749234425366960501808840824901941550530383250432281928097629757951601573409569907349898612794395719009129999170293380046103759153464081737717237791093901028487228141042930873870240978538352744995433662459980848379679457025311397797626980370239463316980606229811707326933941805443816816339577883725546521858127925252426723842553263410315073030859286745212101559066850383857620650496060479455700501923512859961836231443192734791255045585108649022668185128539533147835431039423604448501708216784579429800008108469684125508311096921912259909766846282929085889642302444991810292228837639455680907544007264532956132372770334166559798995128465166186173597958917725367642238440044579238703378730076598937008857172019923737908345944385098051876407470610653171040271218092689667542371092565977666190203039064764162895590362598814437508594880237867358344163985883222169250213038795784347342967885042525677317783696350525575392670281968192586744615950197425382838041622758006184488226384165264976007325887601122950424304492116576396671135624232998892892384396072059254773795197995441915524052940768434075303408339811757158970108502642098718439442284919084745491980471485482674064518541035590404221605925645730990282458431237795017553754573788295501057475267551017669636395244313325032373678519090563685196584662551423448959693319343255058472121131533509055079585467446548756308868129136957118972585408573963897663288386657310085923580568363050381479635191927147609289135368296118219512942227521427530057620705261255972209012198807055618149262786753873542497751110703168019996645121116742296119989080633995647946853843699815116755004133251942597508168495053260263438416952813927806295031782433437704750066365430859039101677542217968120740560152156079542353832598589974674758337875893341138214076208352331307115492347374607089274922752961157854974848541002105014663161280528566467517966387377930478710053044957947438944788367989345457138626409442738885111955166428151184990890277027783434986380263319018600966934462396181510401054340072135389699247791579750921260854765286302410432252196528412485940007432908152315843493662880840735298662289254282053885514528618124496538307371701231817070605798194586220202634031288226588640170621959602096006242356195227805238497801223385718010445196031775875286927101407649552159244435229777919590565902474127780738219669739332148827909241567727192251992851539718484289573566512032490424583748337341696353465304028672937990669229142138080652270540970947997101206491918108914537033481634666171661810788446885652820343383607205843690211065688797227709731855262282524059252468763990161379128680702124162272166476851937514996516675927831883146203209144024249698041898861602357941983302612233932074274472331899252914417535772904289781308189777196575476338629516870360016629335082706862122055794852805537104611450219937672105710213638587424430287514448305841533449115665829588879383526928395847614335178048061231637927564371010915492586823315339083497800914356750962531290930939948048030691679116034373169265108079033822847214656882493375471255566005611879300182431994366339901431956637913126316506476064127971076757468998880010413284743404391292148118021687776285153844679481676139318754440462879265889606023880760379340819645861733255725564324438783792205319722062720453742760894259304774857421159349071034727565641255368511695679596356674921529347748169429414892193927209491084941192146622300040645755313984782520673735559086647531269587769207503620900011015247584916394119971406139406686630325591180288952767986667551174341677631185159668458348903960187342000089099297136010136482674608363933738069560348688145543808958073407662011189897731675004644394542291118437499242413840027768472160474777380427465582467475336270464897056909972986275417081202048063581376728182889659218618886723405662927123276130909991251173533433938086747461646848726208522144674153372032789363889317769371661043335567465142371017915001539959602400437888429354797177530176765918914705738912713804349634381985200286550537779705478278541113672114260843983357000071584995262568615243329153531627523904091971811358580387646622616532133030328378161446400072423213526491852489411120259690210891850081786017665939389148051562431617598297444288154171175031649715822179091533757028047573073838719899223094570667307626998189013251613879976552854453738866537023802209635150237676381669270553974943885559376935884851455409650377672127020956649060133199059959006918498029155392843677196821168735174569006960856071277655183327983361129889246850243189976427678137649058034974425756209287333044550147953678391873819207681883958962525115218440866819072971346820140394923042136227244534819871790744513869320175996408511175536031982722889749789960808555701223248953850896506058827552475995779809986315819219446714026704547156993417587488608645512711658356192968977574000188061106506863743427177191219847103772419560793387710260677320232349144720266297612422245615126774361247190583866301473784858075253841971453870713592766523091541769593530324586723832039372471490152721061578664807033345513079626127778890182593634358105490645347955034480184018682316278339632374155566934221663517556799134139905323981156398859236896959433380607946167800874172652553360141652028639965516746548777668965095360741571235031826740322049321500850635828575434460742900155522107633854312971476646740100849601971106973948053427210685589504580628949399357697180401127671307885493864073620170929723874562894812384408512083204475605637619723525151556533976540001822493038989608222114245217025218002404502745399397073882735132984993108698850979509593135156670458840344573196303638924621902864008562672629723750381679034161575698627914504454794848952516388221090661940670517439554812408731364891563590639569714955747828310786798070261531050710108747674872433862218909944144154397487540145712368200720012748201850660920320826237951800788088551757778825924057195355647779206236460483988512418956654124970330845608013561942727350590324079535284348507282940836152999716353157328581448502295488409980674016433412540405477249589095426716445087448311738436334044089908117790178162838460496572400255725616755152259917037335299789248819012157954545418137395658076997388758146630160511221647595190646753005225608929145974528797291203628088102716935133960787228575291888483739673704258678141787880181257522655333298320440793814963853704733507337089140864572783636693089303786035875057663192080840080662915722529757365217606331241797111277025659558280518422851992644620177436723012319304172444624144022410557963621193949555670503141716331207375416048702375131637506832929936257896003386228864327351067329614614330231690978446351108076928382182683772787901286208242292781598936829310687735096171004952579606297357934967826883774088591018789267859814992028760267264581538468656088619278229451755697958610856263400643798905141492376502815477677103492989858618400387881878658540931255459736937691265838658532289840414484033348301479844134476394256103178613778641701138601030925268222578998233763773161830626037013285917025401687492822528948346177487525638294208992283172201942123388072252619464440945462396375494538724278989254590932516443261774330605691886202934484152583243368599177154700220684746053592890560897297935227461794732733308102452657374239412399213056961992208574419731982972801528759743467810884482133850090748597134218293126651297718107079932079115596824101245721281693322690484456184953589401130326808718657206681501513853342786170018045074904743518726241685356257518593060746578758423900378572054255710529071175450649047832084020579437056964259845903709259233487846396396703830470138998987638113642396577688603954912137552901082585214105648808262059450801915068803824296305123608498057874420557818902471605306502599008193964968924758762125962367067157236378786321956230379608094222587082990923090822024822150514098639992660944106086026859405771915211505948288075864036498141119917014009452339662997151504992138174655942962436202725148591142992304349207560063500637567502364788465763936778903663180774916975273283103968572481047160406009564820848902904171523238652092199160557150387119679763814886044064579177628679731601058627298488282961263732907897669129685690862652301170358283874573428307590710312214117127329360140280441648759084702722317349669251931743327756767958587397260024479031259987715674670307616511906619271783008942095736522447910104520011268926580910200392474720271409107432702929113451357733317409708827894468159262887097076871993934663866315985460637335587195848958751416896377031092162965711775774140285796527370816416233420894869040941238256238699844015264847531244115813875599195459714098310750862480382263412023373025261593698181840998728451108494097228250739860583312563588851702514205108912508404362416593830749053775656708462643069056897446333776925298223705332813300209520485507831886484042113902678361919158276737239869123242028294520068455756745840929356496028168952204195952985663022096470997898611383870583992796540464620352936160260492604352902472501950636893397370468872711581798658954482511325832711319145682962495927308803547736425942883167257063691136959434045629977435305731142855038829400424477236601902325400771959967167672820741135208895652770044172293127749075130842644113895914632292628466253390779114938803957498085510596017351426236439652160973941652469782532273332548467054932330725416486262977663561559166547404760372941262361734985815962787100803764677200100550560035128306821730548045177204264357478760008399028038847861774179348646426383925755812275907388372741830436119053822644975313479279122627448229097094226200745420836032459302359157637252662239670501946375042735008448598801733648212123205110711684547339284546652831558032203863485012212557671353106682244940326430689799712788544239219702777676150513395116103607321020294001628910876200670667731035420253830442537165629740055871323649255101639799897130744519366602639829909263391782662246562870566194676670954626345478786738965411524799666381072391045499504946359179874005999370981112164789819424846478845785525948118314994150964177031235098131182505367727999558648747234479399777439769788285266644559217878125742356439355898558269729965955245776396027154815339287822911805569104295492365974455304560831411695086310865856326329653057175419099439897951337446677996210783067465672225825310117047091977019178230655102450353663350594340564828096718815790951272159183304400193915398677328398293756892107863362487679389271316090795041585090034834258650511943759137952957415362990058497861135950189236527849992505555620519214119743756875193101283358355765532794842077398977965337293069798247346372754622586747304521404689004994565170786841624058618586670375070282944584337370170071255924243862096325034590945119231889079971677590306107165320883122405785473966888281828564138103691071207400740460812289275558922847713050126862535325024648218641916148994340491654629233118978741964689067418789585866510638523479702832717067102173530394743440890496596284389423491686864257915888140163974462080105067730360140799652075551654120984168503711487361087496262706322637823998948839830000857777227464228824615341167537557277049973450498383665672373471611020474870500418280628409393647333308752827128660595149309747827748907844604556078717801863584377892806802905540898015851245383051065499200523991219121811803815272882339180906241556297685922875028495887911081371995028062471028130113817697658751192465334278352588554464454045618572424831316999794466279082342164304059507870173724331757066720182887982567558209907997194375218729981035365327568401069939367797933165582716321640011228491653985181474021611816794205841170033284137560469796299549526380805837579345906959238294358577884665607210328820064725122425516145006083031348742123406889480211443697618702341963356143263927937571012498431248542310479855792027795171610502087202312953114004430310241654556137449500179556169351076980880655445742202117270411601101709349866077299085584874898959017728919029775461642048510133157286751311056998889060658931918647451276612362559552921035098498173437672927734080154650561408442296110264158307466133148057630436053305991569438502512019129204888095477705942386180096370689141302859380737488221216499369898158460680727435196436753689357701599984175336567708446299563296533484746323671058743019218527604569313225665353945079332990445973325248230748624765871995309244252393037550879374236648510798326577625722383317068007934286662015723362464241326094433881754761784376081734075815301374004715995861335625921323518809311754157309423474495471590156248938939877439478785262775233171449539047330801396148181177902231625285534852947221549991581585429435366300576804520220899267539414961461727776355295472289000928714767582507988724221068256193934782861592689440094258196107329350956014779093333329165615842054950459559095308106295182454750510088377287607914880108751203244280173222064176993071206045882546143586075067647580215228984693492522810259420782588037528271386913664926047500479900359126363343023527136370029286989146956397497664978578024178282534987841942727085527771210599446169102261975023401030710126754497265273797431096358733905941864907073083072741858706028822227337501913036122369605756895498544957921740766531589377527837772371218884079606299241235651096367063397821010118858631395945337443506169903231670447585866275126393026133453621064358246467017748030638251849180260137480743447204053347587505872644397227046488049625825020383255231271785843579926449728245411338743102780004817226434344163556186125681992477098337028053311953451166972750368294747341739285635603132994249005875460675672710797857161044704178816287332577149181652125637774074269386491606113475066166748503042190554761296709007964175130282885707104448763377469296997194844961586923958298726196190495210189792402752867188428606720637292670601120609769018500943278868393283896222196621896640901449182101098377430764224004945174409856115910737897358514567340671497785633455894208131695312940343167085229524960591086650201290382216257533698158659749214297639884075303235689833011099285227152980689168387676439593193222269437490671170219581576565511423587746592010165832329472764180636969725674565663361002711683808763019987107516754485404648756446334979908650531305402788816717233541062677434840682076852337979187184924135957230851303396808403522925830455401135546834915887995007332560425989686189960984439354864426958740443538412335492312505822880300851603607318154184205583453217302703416050542928734240118305847926440803038408360181429785507311328252369886155668319306226329942499910721961458298328147542547127945501027689809480640334435470217981455286942954101923197113418001445754053386433327265113671394999629259392822867424168628545311238727601107157950370700929162220486413291719242738324699473318939104664521859437565370878684240509128796386878019047860262305606970293436057371754726772988463581199262403052123768310162440168003394786219981391685892679085616527877234057389341369270195314348516383575325568624879623342077646813292418880208730206599509114879261742419373922773808584914396730083588883658856572703684465858550697134037576678629439574569964394935214002600606038169146672773726936521869635910778696975414740827214698879055793348076580778499325237950584040793394430884886394773068200138490865630065593723464353087358796296341677845290283590096193554554153682623587899316300689552573288751874945610959301999800868805094678405534405281261950790897325508941335067233269828028305678207242130897537991718816847806198114127037288494074610483594657475708477180947576149465036624861458035605122118859922550227798107437214551788662221016360489997670462982050545517104023164483372473700004155025641605255218186535602982702330849073642750777198848833295336131820447915944674771314584021709527305977487179672118896623422652870982294783908298082538861466687455313456626248492373411509568796833886100559028517439156694073699431083337373162647430990389928608668644806488093316857924717152874042659318060840741879604965275163808068502864248454947396784540832873646424041878945436903704985720404621923043305941068496829178383762836797796640803862715793807763860027366850458425702202658257817430567723437436177317635347927512315025446924668440893487085983369288274820845572647153142833633945225928081923385972582043877897300995740911839225710123428659105842075655276950414408508901276696117757324328695624080319449354322496733050429190826850419660075532990491707402979463846451425709880097464514856080392016149475821689758782178767098075203863723517343065346535171312894188259820915116078394246831467119175357293381906419758142105890589850804332356959629103553404654567997731889086828699405845373998050561929289530106696638064978588899281218188460448341995240796148146769926777941078336004051519809105333573599084004618877407715971455959830753188070929183533857677796463549268350978509149910470178013895237844121691728616519523963208873142669213294997851300795423852932714850089066919419389238805897213683252763322375917672615212768136225116644288688450765151766623560335055547575826892419589652606085447000690412213988579574824334790952874760807128466969828334349942303637457421658978229308093399864181333045976538939603799131880236074936252798547061215867399690572902605606549870711373748937437709897356696471857615011099627983335222989802061838333434800769099375298071939178547577619936757183378868105407834679735450574933338980166518587392198607994366438791950283002591988109324698300425908545903543296200704199689803962076682334003364231465437020171692369455570901298426032069442490573740673209325599592725172311716704577640952265803912170448880841807168036357062117798667523770852058318109507368432146593371672809024739166815678641646889568411550332580929356053745826253754135041979444772404487079350953292065523549715604222307106648158564584124952394790421641098395038228464930928367249250184556397467603224839097359570423455988747846857131697638326442531058925834550819363142343958396143660466044243922870063618054885811936591918226168189037503854711422057723088576163584296602209613957577058655232100454482962744842087194640555912277778063984549775161457011623117366829624057305837073398051772292343530463842563266673872805640584379780584614738703470107509104164476543303298139777812567946211548786356084895142661334732967778911277494846783860732793301118737744755645144201287082897822045346680464878228418988927863082154046454316222057267231080310548257958224589054020381190680875018945865764394736811475877045936480273280802535065431505333904707507978512750379504149240596046521577488706119430082171421387622961861819470403771353636409126223864379711589255159304674100252532702990616914501643132772276284685052712614750100690809344464433830313395822499710891536267944370593719288341479290231745258628889068466244011322122468293502553423785625254326167562426707370723957780589735824888391322829310258576661375400986118274146867588536084892679806939950238721781154922609860167242156998183792599015415874070315196762058841814230986400545489375258265628477182006742832482342127074519537442601789246629271632799908058518891214955498270209851681596722210881155573085542022073449861016433975308083036037890039175863014982776960389259432894172311569420040584549202199986980490501802791475100955821300173410560970187102567698342249022112216218934975103311853766164795140375140699027233171876659352388916414063649044912149258524646711823376409843026596371936485003257042622779245899045851989540710138736126032735660498289626903093752277092643708561657648404642393653450918066846752480759210905488019160448516468494017814492072582399609830004182010853671128973837296110112383645224334261774835817148140718718130989678578453192203812181534417127950287887133250084253069261638148670189847059620400659861745693495384153912796933526838073284981691782524905431660296010837615140855778049756341288782489169978156561674823714460252172625768678591001427503540473079302395206697655308673928958437210278429826837578694888736004210615732426006529669113807400748943506043078854448983976967671958952002596568249478556528823132025318211888435525341580430094637505592102547626472256707758604931081885350887302471221535591159519838786754606731558345765649389875088298390380739024746271237352810649072898224914196402021648993711238073079211951145551194010743728827818019909072278291407585821136400320782849275051501511499196449296722115500433483346793347015717346922424749063600538521118738271382280406427770618387097753128085764118134939763096043591563017008882288734955903974947934927763120266780787673378037046635933007942243286267625258879544247032580277490456362940780174777548132587975073609846026682289484786439189346675136149596696937994373918741502780360274862255855220840646897575789579181367990328031738575972888963252981581002763597460604731389690703665920904916560801499957101041226731079535535005719280605537679860166704037457296325575985290308058783089205595530665972035193159221306261324356142292051000758243365256981884765895372154676501413656036846715643674876351499528166222647307642091127765165359173618508720631681606602009516007420564752059656775511961476978412340737777145611831963457462798362057418047141128160611109846586326687877584733029244509723820460477941867831687102564426864342202801731851733894727457176686776279012350316417721227108325905996909720513717819322637580644175790660982795278292746588676220901923689501352326834405206586908183134203613777813417404511753835389932149366154366081402702535861448408912599098060206416566540284826423553941999422200716207509707721414034735872390626944146730642843880913463570359152630425487312917777578425475166142864382978814021005214911522917350319796650434504869477581217518667763262704774100405152645676317978366024512508624766037745319582823323201910562135421896812531622925506709966359174918798268200850904007189959470233610848524718718651095607119906377712551469050502493695155230433181773933088893022534063634557465441087393401781866626660838833847933484842714951044113928207019593165548273886593068638926869067216326229948254318900496143315681081017099021626656982972851747484852594594513366604237752552894145551978834304115856644863452565684619852573547476690607910280121451116238149397283511478779350158718446021064329627115815895218669800529657818475302534247806936323216070438236296777030275106002355575135156281338599140481431635374784809585119181484826251395525877327094351795997689601188057710613482073488955091159866802862813481682517142891680789765467560004682325803371496033380815846788602069041042291985617365901505987279827101597867265178794798560910330494985458474842611651336041252743949472939518109861480403575748404919936096618287276386870029797028138379130269107408665695970063859115899287230425684540585449602826552447615053664434961703098749780541605093267708124987488198442465696146138865453516557454449938016638097533315156641870956991673503311667760738056161101494501019115516748322232250656754785024972765746035338526382079793614843017633846376650531874211431253501029374563298954619246781071855639335140680830181375930317366439659574937423981550025371562166717543199543827339184079878656335276885742244998461618785281194105133570214090921320297077039609707034350944333002196137439286503351522116292441068992828712524534797090953976716201233830351485649823087525761880960049547571745472395938736561552503248299051213081129040369767982011777272063729664619722145286919983744845117337855235788913927685445991718609297041214826353509785937836573914880526167337557058986961974335893214825490122578923804223106530329186034244360023685104776867977592810377939890864692405013266582546071740604159453397805510874762646345880992957252326597159974533273402151312727556617128096766751607756721379472318885021907278720791731420006098412035534598110576980773868265519974018428227948836435426610566203461756871120307454304083054372432556027596308956669382633681951892338181678970182898000808544945748021311050886840815175733409014269955578629877707492906187611202939002154971444858568367757278434026542809900254102355609077930045250361185905448156668079434621244925361754202206154782477184731606178878161752972344855309545501558270683087184103175027115490360988583980669679796394535605936957938880362133988233257442466754859683753329174430842647762601900873451164595001892217425647063605059938913485152042023619858064236529285710487323440709197174262998062250314154032465533250039146355459329406093658992665524564617906632245668809557242425374847043885873563923770850978675181095253562123050246232385957089258918236439430062696823064441377739388704445184951072403195617712447732131514558334953267828126006756060205238981925270388175845714501481540803226269086291629364986573566405903838104529076056262597812546198772810507084500537005462891067889116248861744998460009101704758592692608601462163172838659668444839327038133047618501305607768229247344053812863859875753220249100890571660290264765823042580771277007229346541125928720834629111978522938608086503607645963532763057371401557744717215542706288753945045982800069848704150835805275676126525996750970355673200610671745624991635735407430874622246477486990399467200389908493416376699210729511100177913386285685256081775105911041631412639682377235017478032278268886705923477115970827810634943902295267740342784658304294470532876606674284499766767048368574675141614272380821926274858321156740278481000672069703333787886264132234486312592842267719376995455951831029730759782200693120924091285208958491185455780239429880462849113971348917380848097218761194785577311489072285262892310700286746945173368319650333956960747568756972428382667219596326255506996902846069714498152538648600065426572517444042981375903771076607563932310228369322932165862609013992830823234211541580584290324552768397678885315898605764601908421876324705773962309574078903746549197975360369123567278580090108606925552736306700822618954486552007376850247831154536038072436633830626013892035958833988043550236534360103877273640201157959063135524691006102758740516757321294281454619820557855276441908360009526893452979365843784945916805269208532813617562083918551878076328854100656492168313571712269909305055993328207991631013004054395513857059289221882465039681567981899066551292508638817386419983851465875123713413531200020645494840745812833634924427270909580231977016944791459056417005116606048418237005948511499177509018987412676856028862171704266725047827727784892089750913290914496549922541808868479106609724231240486635565539173753555856977078147241045823777861046275386503414169225711576800410114229845230157892750217148531142799998576548499121799093123557531296422192756366312838297812693782584698512774689134769441779246767869762198816656470049173524001296076537774945467720832936332647148380083440226232293173076834952940966745384934200872288869060315988624481425461215429589172921213717705661563123324640682351975759102911662579181768744697421470830251620812869373567715820036526684630372432165454411866736337270915195731161036541031609632291880295138471375415710940896116178375240105274934670379532893239395626232185209895726222305014443691082198992920841108686901234441476359088633471191805373876516492864435685275191867283492797045155243387764495605944946817729364558677739710536954963110361993746001990073332478514021910657944745977387669538880190088192993085527015113623170203771661615888714867045924568283744987117489545486325433911226946856146894851990319167536935772322652477768796425424387033337294168977500776314617905652819448233181986031768322493828670719703910834234124151662087506148834545779449800753595524550452966532852009642986288007365955409304005680992697245522870892036444255618370427499826886390183378075184759979953814949681091422849522861424475180724609728315811018912189291614599356906419473167133346702477963212341032201699409068156692161035319614493866004010692058120981080241992386742598743438420097503543732584634498124767017597691723471425051742640192739866032932763157585526123599834262268225837515493389068970499001490024964298545733690105925793935263453510026605590265312592300897130874863076534571366871626323488852690654993919113306199421439484576749553001708279806446507704065058735994737379408687795300262626185082276379072986805775016441730812835509319085373934082288212476766371190847841623513130324801123448812399764596833823968662731382541138237944510292984788523587414772014874427009921362746735447485507617902552858275441463097334249261627100582073818760876622501813810373381612909286351056397255264471514514809081916034243531601065988180309592165875674657176609195338951380562350676332414623082440971753302201032369733202551241360034439774714878415998466795101504426362815497897128981688959376841552178202541691275815093180443071343122235083676569238025224473726777791450380042913508655943934433652567880978382174851552658934148643661762781550139721311286742334078765965309591659198548943904088977466897590215881739180765907072381831715826428320006367529875911093924315644885264604274787663562436633347357812570534676464474872100067487778419766908807524753407451435967200155690476837918395760792281656393373788143390832632650148987779831668450208198100751857369083677227326331523811469241337159597656270422208874809844702300743652724635992059409339122734359077790826618219070661387512977371707992948319634340952680895710698256039357465949127394892730878620556851603299222846728626094287385234662243955856390370470763268875398215361348585254967065487890458961433366222699063301116857829989827932611188787386671889476536413187983259017887956616682788862573163905457421492509530557761018371512828889039433122645246432275023590893774965775917796482410090102826332846707940807684658365584914075611280095451597970495850844029623720587783012621702332882098302821214695771330585887336174838592338314914757868460049329210125163473634892892134310942674142810328868958871797184637219789589618109415603792769228744585108196456026581866714395095048396009452585065522135159148159770452190999971614957973811758664775488712086491071708838783032014897195373260823645703297980573557308538757240808268492300817349876208059404730619484086350257312273495145177322193191457507283449144594348097412918968047656868588872876008241314551790977662771899602730125089086000342407650124524907192725120770240091546098043565335080911419235247103046967696994064445582517542490466228504507125513531939250609114076191136315049195988681194677922431937660427996104959826166972915403186656218160088756693223408636915403475266525593796231286114564209638863078996985631412848771284087341872426381243703125800037063472208606210541429179935001373511062197216782394576388164923567745039719123566307716675051502812494149729134573000506688894795841171124934554818291780370922330991263534008680775243406657599263364549199464992275365489778414874014276503020659029012072724323424144115561879388795092456357911732293107302661890111238932641760660989121744895924409714664439525228967346235592768883089853788321020821736145159646115834397899083944609091247838141316850992231831574274322704236745688553990395490002435958752310101882351937635862760078338484239505872937130802855278654401355731388112539442517554990838493776329161853001329217943744108702012527430757627482692112445533428235347419149329631122392456320574365960987872379247051026990339445269865767927157114490856785251467868598714878824042585604845380655405300750062201618779016597766364866274268870973457930688379925817029116339519934332506939089559995284007760646136811581706623594193534856000351664026884572368815466485632135642946524002601210623981678108750674867322143559484508998767022828651102730928166102299499690277654793987308413516072107000707887004486245058050995126889023201177834670841569564383556196495906083122912412132198815016146214966818267363223806161588927821104338657157521673801489296042774497506517210717119468232770419070623949970566288684109985555483302461300331136923194584776222345348180160044524452552154229839034602112118171436028348343401538850789752033858025292303339414338505686604748490470022575313092837285043166481747507998513234277638318195389436054005364044366819432533927528137065636678593134868876898368439128552345221991830660253552312180690651354910198599851836057223078793098772095420119058937128440169111677582230507419450717127701350892317812951566748001901916014561870203133155366008487329175052827134400665643900310952111668492516418574497991075503005028438280130322964061372747280088455054585120611993769480810825124437324556026896497573085266977956241455548127727969489259803336700101909865684290677503556987740999013478660570232497070774299115753443490889295099812682824515524303481398262674218505772612369919541154750781907973376285840097340198217934137043222043618546154022180704271196337936169442699881279881997881516677496011453683606197481968998337850339299322572078232950951406614057666479185774615435721645782665058632565485009871535586118109632588019724984507369601634305460222795430005943293570069931650735494464892002989878895083921214991064945032169121875773459126619462020491955157260001494506848276787984895837071764073528349680344802377610442406816190216292278116862585600444409824975266730911672028919328693412417880258274585776334302117811377800540937137863115844903311726753112339470923134267212027592269310607445104792510528268967437816932725259775781468158836692779731258685062707079522925616284815804186092920773517112244474861166066348185288694564510317583732594169009398282353641986195725963133642120547794833780249868668845428253258316788444252847054527835254482645538420204358501527885870988282422472360179585964613028253141406999984310638042037974222464920875966900417247434753665064644990764329833869667133190515420713006582894559158359135472412928969232572498678609470379085252581175807266266190779340654163872483237815489291071332133011581525580514302208930698237296995609809563557652072930221824369545628786270022065003263484064241509630095516628958046193593517161948062214540904756940695518193387599641055513528969387382867098773487425753672458599021937689170457363742595962861773094063481731722889263991162259698104833430582617875469087471444529918614477685757475844276186551550033696801387624352955693657252353496410740231103752272152855671920339445045573650796042052145548310435115835847317038272888838464239023635068538067029492570484971857858859227227146643074736765912130446149282036912055999735958247363279565847396675549362271537254078873893879697852951867809725180486589595304363222378719524273816822536864260103998450064688506087266589245689705253588173234158053950129782508519481045575191290757243791702627736919060809563413431235626897697337923130858585295548435378700871868321754985472913837751969418476433178694313578405137770069992548424078283431388461520133587220320837687977786263375413856483781023962621857544400078950880827373184301413214645314802996632019584442339569659570919521917638804476455903953109166831943248763120130582607667894412723113070559949480516506655915782765701864604722355722745786727093802557922811797849564572196550984584549551951921148998559642491829085079797437620217468435727552224025877325256240552979395984414110897785974285702028324123483685360072853321160634657107267989979946619425091016123114407069478253733539010666426550983934982603910532427344583122172155578301748517353970148852835843800968993531158815677418756942887922593309343715014217277926907597641801971108874309695583166011047767354331773275293505407344705986911814827630912216868737182902023015213917353581834653537699926670864721622239967327256083205232657777369770475560329651341296290643303792629677913508673468197686280306490089058885711529458892665113214725688695602817701450494126361718985910563417651616221591086885095061574529701469487067653352192681499475685854684585022091340362288008832503378917638418660042767955723209520852913887193840384397803658646818921827657515375399783080388958663569432034145479135288515009352380044414932443703382490130370904363323031137840212761456171532332516396256597174241406844688655179812490987647164152886014517446110464997724988544120664017803249981262516728705399394620330039970652785601161529828385706354857910722153755685853717145855598383073242389025679409491969273757095184903959157307176211815865638202055320772763904594222734307260453220861280550971786197959340613369414335279340962094120182541734376158576583088352691262583220363156925912819939804176534260727515426559395396103993664407685005772451571093835099386675800108956830207340712215903584006539909681364612382126077815293662945852736095693780063693378826776673933891086567617636220862186422034713896217649777817160835128469442572240488842034627956794321074078374250392989693264866971458178681095594840616042640362088583560139060302193952480253422519290488131156288192387409465094863894625765280157712078616535664573549643358397152425293845828578736982344316197193362732061825185833895308719767962091270819016249074858956642402745624092315506992115922193674321796860251197052201985320538718122830891080155824246903692163009257035819661013939362887545564373890100560814990223700041263122707566158449791204224081015631229814586055446963022185941034985059317688211352813680786729625298656089058044462857707907822181207533728120040878659354934884565696144768012379432252149161603687299086669545659103604544378323786317279058707011920418039234218623753649867530229557816638118940253075000660259551464034218611194334228015411173020960257994783965167724085022955628038338565123661713696891430673086290343078071323807279357862135758800840580369374927876154617759802661805349190172311887382853681659462244324059721779577415244571207914041641642517276075321796630374814270551057358660918630870166221428446027261209955641708017987722231407978446763312443541671579907730087198892916945757052385188864228886408489131254157238360912970749407507903551879592209634685958678053391140724496502772370116029954289156251677931634277643477123736902245494293414362166816008049928683702082613723458148002210724922647089578662124294565818214737655476717104962275296822307662487884259446232962510113230124878232772446257195242576064080378632801108779398716108815772069020180813497004104071512117242941734576343043226381295024104483684087427811072763297613599609722735031698645419769133222686015820260066462192454496585624988410983142020854120908221184907577660401265112341971538593979249708701644493006301944114571189552318653948300595101341602386814299794842439240886934435837955423849768083027479312401265347988816505594459203553091863869408412500908109817401556367411563665063715034965954984084622572018093456904116740523132156534129937780666575468596991930394388494084613135768916779626647667562944477194397476582883829322151734831668091128253319192416297570577771221539268489044734452147776014485673656975837380295012496298772344311056558209117091844678314185513832174057485337670503869508596139728901534453963805466728204420213126233217328067445548176859346371717104970520485742048133716799177326115025716326092637230097019067284499128603743823872160180216080786590815010771825474624242005108022274634541037810604708012664396561112926666667067525825267030663349519242933901431553749307121105144362008607297336269878968036433381163315791117211185529782255689399845891362518651524340924237114358938740101288797129648653603190791258859717914329033848327825857718192299640702307349282886011179173210187887426135553756709490751574948307255981757724406552210336392545555027432291651910514945738221165101823122080649946551575806699831577547059357514120746906719306676572575393705538531882578026462710128409807060973870219616554607565107670057075247225874397086469796469190492966195903914108944955558549248048091558692630299283200169370048186140162975385598002347233546577299633729069913146779214458708493858816084803880641223221719331701611054022599311403290115394983095960978266979106976341443642968175980451530350785684123409223946266946847321068196315013242669251454190073335194859164875485217321995700713127527817453509205678168817275034850410699807344724404647873360951525306730555135115747114674614543900063383067591029056669628366276139287136182442447808973749101856088127467646980244293604692413989519802690569182465858347500735761512769519144767979448741461383615209056724276997942513903759665056577969688969587540791566198483646732090572700600495654709037145852879700508186106828690845428870132783217157036230419923762440777792229836093559727332743823235873974565607020944983739995324057865644279323689768878004253193200416874624192570356756017348618582131557954794783723303765305917394063694840348116012728542437473069947070364978354189587805745925037206416837426992255849409417321427192368083169335362932615004398492763847203943022908607665215488415688287419613240005732231009537344097416074483432719787361117510505838043629912481282065017228377519296733412664231406759960147820083263147787590374306938963353938340874981705779322388522811482906759175574843476579388958087878629122859868863563125118636239602195599942374405439101486072938141348013682491710794071843697390392175840960206302008839321040806910496184041708636105620609110746243901700829832420499344496333746722367335105966542807905159062048339254073698841320766837382408919497464039352378169144423716890037061905246900363004679616221497377225924561432638679459736475325250778961511663926503728787408032748734926912820017067242855591745602041291907558741557809142837142291502739759862791919444577041979106030362193952348174644906105774547602235547719638747700434922710664671986819818805646197233443251492644036548698453042074885865298800051833875374378370684690561078786054047805462697017070461055925211567128793344352342778658497700923548948622760213748677454135350692930177461643631272342378884846427729008086135891678005149506010567069205696193822059433825481980762261066246272338251720430000121414185366642731805630568617321325231645550252320556871396732852395148490335338314076469799823585731444703314139894890631010888422454642811064979222675400776745141959269266743880706475692300833773835761129807966421029396714693373314693748250929292530217247790068004347144171898191674694251669099153812056103009260799362671800102191088261961485518402306964678163448976276535506330406135879902003856291327924024160859104628970695058937405575688073851436919716987611001346838400465551214362832575278593770737537461330811851518457169975960723415716282055560420279821174327265844022276279625551372637400531692325319166244621805211151035080606630900733376066980916424913874812575553066896248194065232734645342394933962058931715449316627115151170524409396970774521589958741311123971629102212521755302143851315861321047492123133617765156761560804403884644584054236243247798887961378419111376418510877098652890162293309768801119084326439000022109615238387400124549016746537986877483198127593258073978685875833424704350711489045779597996238352310079767014015585903627459584784777948864723039962759044939671910215987057132103526068723448079083954368816909038522251110211606409477232561261026579499354105914045413357540357863019189534393364688637785636628950994962623960386968715874726224651452924014758517522398829777644521536514008886612234997665720952608277562616693020202850170466086830124549630408553221062801388410935079043285720400763480993988271733422470322635697443115305066125092549328744083604883932853571916362387165161808976124225668560811369248693801508664999451822555030692031884759457025425967328061213864899982654502710772756827757234246709468779910214399462004775372551066839242395405555577762057300488594996439174731814546451764345132463547028079087802110534038842294294605707008199232748115332503296290152412640291449595337089806772914862468943785203403470883403181968056093905458107255602542979185439302365223839410835178439260346217464278542070174106979689969373406038893471858263253671813146932128704512249032946218049521423401069431779087124693401333916712082276775579574441105612631736460404558752173514289617848054436324188527127420779390281163602049782442405184643054947431484433393906722779705098582625729963311473520884749848484738660708299195073877755775868396378088593579682412747276618039414096072560075786353173415844222055206085625209253277118298271266749557456675349630278217356011163786746467736992882513851529885377722558671920939229080392896233940849291662081670259558453566006913172103936284763725868893254140439748757614873279826754823375103686535511130957606099128190842938669320900441938168796758990268909720484138023283935816788752139386921837543038561477586080098591768515769017875946135803170091312831833507963330249736399198742648946686370706318119889463666231099502158842258602445751031184659335918027273193648021308927140043822108012704260857383146238431806427064057080015229692121046274262259354641800659725277683704519521551952686659818956829998026475181324684128630628635101027305988642922812560815685174494757944185100484087116301011916854149713687553385847969972132262059082033890841091899924818712961328714559763156267537812267662120554584234390230618681107321893668234477046476344908399992777110780496229885429569187765026480139921628173508874560395123970818267175619255967059517625035733530227366397407478613856433864348333476694765064898353016200788645253568772688954914158160129376844119992486500544525603308718854013590158192069818572301602489761850842328773095169990583967744166513913077853973282257008048446124094912350023458926286578403882889317307617561471654686837415559649518893139149292879499822154132760810497877778085323779946179184963199400926000419126189367469837025524130128122731908531874818167122277206022184782543119695442279111881564085006573036234754292817114173168674593854686285350684534665009294785930068791793753245626372370827127117212842861454148091943232411385645526156760713638995371656059005856206902632528784158130777335815843774996433889484896604868770295443566268429997154247533136374155486698272620656218497737264678092443711930064347651866279123386920144717314882437646813782488924665146507267148296994077941831646629376342036184821859929571021938269234530597007989209266980688343969187315824174292805353339260601944783490856909419899448995018342501084261853785075658905725329276813518816547463612225574287890791324804567515069132909673513085378038324601155766138312056884483074676422390262019943965439341942998053581926210231147160511829647717505466949444181935698735768990838659206681201209092062759375215653889358680450001486978757965900487865291191964703477654770618163205113032634773433891551907612229985756618105875824397778159564618574110893389310099163303671768854833934660403223001941757013918605704410140799908447352435413576953680541370094520772954872530655615124604681768129622637141500416884138540581055725957165086018062624411113001817135020473629888613812694757083439141858810859479094386780330680791399833755279844525145156007592228147265545415172535741505850640465072377829744142106028117891699304553523208789216416286528021125629504589856420551792936959839667268385788144549106152888733269578526554016708171321869751365839028936363256437192316128758019752514246126864080502435083900299657840941954031397175013134974771274151391585012337078013001656133327580881885781560329712452269168718056622700747171309462093317848258431270723678902172619719593569048547353326949937151418318254367953157907395082356726380107228966661698469885346937502595358816904210943958553299780645777768725382937636591240230246941249585530594186677012615421366515196989318066000465365475914890703009684789079642956124175142800217682277181749050260112440183931905469137596902796520728487065021570356127491784206033939397299441926079657256192672694416366177981612665358849575251227820690067934255725428177685334995418834919115706249365574165035118312639615530220687566981638290803002409371934181548281092427562136057703437746662710305613678659252518652450639459590582989319669904260044321591441455703871158886538891465971084235432313258163158538204296272011189590469506006684780470036780384087183955490809513385362535012226806261027809896520263413199742024071578662901907561171712303752642737490109185659339174986331169932919995003336685690475291713823413046534463877778623966457254312722319550978878219913948253679129284934906213285305341159759489613856983454387471592700449174895818736717831311885541778336873103239919411090978592529579964279287505438670195164910505508544611042128379770252631394047817232351289835767318158792611734395648380582575462373212410197755758359807099345438721372238622963588038964878935584918474587293642741884345463067201285095360886989245365466079517002191142644331800032620706261531450128984667748016019823712113786176977174318531315981871596268733437177867672334665785269442487042982065155895361698306699142866288423496016004553690504521730276021813871973822768105059466582065722642539653530003176695593884091368958840920198219048633602999339853160836286883944603643187676021348186743139766171133209853184769915703812797104933185464031819705933234495922940895950399158619804312442720495867304445196932051862532707735531823466559960788465763257283406434454413746879401258024805805574091963091544118050092534518754242883868193817670111333557027238139377261880487743110444863125871828691257981644790909190072338066895184266077291296704916207471539154181523748253156954540814621772482394070019345763997188189535356608937430098761905888028012752861362081096314961261674322956764201059316267773986509841314991552793926804240775391528400066734972149402604415237700172708248282621762362147221772796458853217102098097678636296769334759987450520594266098647552598812382360159383735827750009371277464156558572476606565695502600083593571869808852969429854982846771622917124386057813403006937275240765751455639542768619605948959032879977122254935401744931335864482673904292536458157517465049267529595067491586026910768693837796350214848161907612949680315241058002957177917540321303961850335586906438894036280204401716210128644676047942424655313848541141499439431031386834391267098127976160934965218478289015588815575158023829615166110250707883955476662852843387704865730407235629102446649876446118259854882851600405378672393900573060991063347524459790035790608665953341751255000009008960371395649159944295824551769494436674381080071477130616078444031272175220046469305360230377247669970024260378562211253608959386139848312845324434801189262710866180918130328916950022752593326373459704082602616166828614064539079460956257147070770775236737374778657541439227700700684743266681168197594828806682419828775161797023499242380126308874555785591608835932192410482931631767890101949703912933003932998825978897681108257747736176763226317828702058135787187379439793900158613034009432565469534905032235928362123079899870535936361840396477752336600256848626187507448465028494468076451809759427738147636790245006525062528861695133350948983665272713250401905880424324067692712574488662165099899158561422697376622015094877475567279382525542076561472796103770629797070588437391043139595621296764091736342260131005261335085928262689858424249123836491430479060338040407167348144422483591583188045860137110431063175453293850317946075138119729555759550729171836389649690200743430111572893343499220972813050168473800762642734364880760653845771333660893450169456340525662013287330350084089088019445306075203636804134464580497670789048970044658274535879239983753593706327443970597417197960611461818901959780614895831793360289269159880863104166535352490103343085542463837803573897208401727696920539329814628004837791201493654074048469720987391082102624080693722696304938853558189924692759782021214089665931295556736511829010173255505955115465336263082419419538270651265497080234149440993558377926958068252255743481814232230177308676255631561911178677556822638961207925973721947491256704887855236071108008542637969255110922064386941823443898158264461517805307197119992654166699000955599817834268116311307340019809571945936667479749396068281397124267206864096359064212024953944870566489794078880409264868282256043547109766272367152522610562745250668573057835149713773803821097008685565910536175472950750696854315581483257364654567002406450653243017791125454154880694036705823524661067474517177057938460504032607805573597564474083413534562744246249708243424907848372411241471269863912466484356181887606673626010566684429748579559365264931094385425164922428644650480250221058792857989705046496302235071000469573300292903350007155842789900493559780866116818569933349377013614543651326566559216920796012283838814901398588393098288437246252424184866044616473065048239805187321011111331585338719138915904279865098081845186629927704278352215758505233091539336842243339412419989187788523840334057884354646654082505082922025618915937668158413017255011207149259766561218037351220416948134757202103655510188077185774485132200695148367990480851274274333321524112525452190392582905339556552435958747353898546221142648958655899201291762720972994153705279921046881585712634561489293281522261206459251172145980063003646586333664619432241404770051048088713353041723715502473396867059264312258079468763864683607291424108458227625282722790437693163765025847912951632754416577154208792661644372756094002809611770431376805126262286095137450106384021560255114407819307180796010991737057650365292916877747932171788776272459766437459077479299726714214416582234046654402842244617166784007880144486537610960181794744896806749630163770345094053212947781359214496528148402675056377577783774967748333185399483395992918224053729875468439810317626695576774803455761327946965141645690707724433554653283062995222800851380879569354916066359022113289767180024195083614235079586315365901187892905771214758865869505990644588797332185297971957101895256191929619004034024108701322435695447416806282919960198734145342346640783207577616717127818365216149482280417069290437415868442131629971292702074965849932149152971166484267440287232240751192491661343008020581201766815366706502675196045284359593457503366535072094280101518837989876279936239523165109485656752993070028792225980460384834685190296004315213106625322448922672337786002626202166199098089338950913827194555759201498477492388608129005153468387841836975552897612866020349910286981961548496377161206064645809678725724805218254495993755581183101985146243501061143110609169364685585210562896921074213023370188489057349377966667928915236522954245877630366734754700465476705538378765982549020815485181237880417309480194285080427300888374826744052686977840892428376205214257829453657801129649339567189521366864832802306262450667231331053482536981176675672159737775975179305254464227976033001559511596781495816127205596630563027114721282036398169196131627191885391732070230383765978767092450497126757957320954958525330916925336283362848616217801915476709068227224051569511622902494905437127483307521060290802537852041915877651402928535883318460774041765875472282062043113032325286710580096409715385360356862941269056811914123297906031544239471856553527774831138698234376714463173710592872147842240948076785668468801709269010048893211092889386572099691666172227642902538497024279098735203177900298284495254521623764184167006516063619357309344099463168500540030984212923220181814105885264771064328542560758200508103917094156151446056164003206654770904284864314978781783372171540658405629777497397587017614237225156445039237904170420030480243796175770976932107622169552051063734505486317964414504108538274070652306914918968258516693656838635381881940444485086972132024279938065397826862876951342259395014893394178685357384653830763270435792379631376859849107175585786902912865653583963641120040619834745806128272426481742516379833922079834464071012652840749317468082892559782330477892619904772810967111531957269954246741470836137183572750774947974623725182561470888386443401016575209936166072791235695049178456901970622705403664804740132662148219261890667919043240106968689821575335520713988572194748562028422905383636161890775702911158094593159386826960244052054835809849524274782225861053997378206002871638631605028222046271290702160912868040101004229730252546656680640715613565426122994237094838726958119899311778310358626017648637508362956493514581337594458372532474575008599913750604101315998493458005875101361744325453989918260894318961134711374535281494812241757246709949118656732347831627954581314126514211760775676595277573419263234275524333750741382065869202106395302618684696106407108359481183399417097995776099680095651848872577433704390770258165637849960787778746275360750082955939669952428428191287744957836410313932697556373574124940829958381064450478462848527915029687010447928274442864496093904678538141049824872351666759115332746224612232139638817351130981773169126828429068196086023827575096862989874698855744547870975197255914179467831793294704537944001945960554932625255115533403867342776936941465464231680994747377884535976247767607053742312827356409567025035731603759955084833256334268097059643614059343005018197095824088869079531152532930062659023092171405141503537701541213369578994223230807280193935828219942433187440780629566170350558041038720065354672759598191179909240081235513023252116981783802288507802723446370269108352697484365542995366820190675257954631515349408538776791475478208519692871769870502082254787909287998427571927398480935117493773161711564217396413770558007007545198084649339633670441238689764710535769676639661474920190184999003865307200150881237146914887439506850747490090910031242911709457377932091833101003530842649197381805883082573284940711270492964321792157852108084959915702552721809109346691491022617203202812426040126773512320817331279379698460679334668509441086009186370736058621891908824946809658186703891766501640341358222457353613436523086078584015299120031816619124638858982784175103076624043917032026193318672535611528485477038477049339171966875947204313510599176982479008227917405225566168623546506979491096550400864956303627579682801844181888366777102324439240556239350091522808729140977303965880932899450685156292023276451358319144905214427485934707745122856552432835464670426591785480829884879741551983593974336166448657770398448310972643219140423973828966630312862992601198995837927667283890363153308844571267002936259976849890394672106668449081090759975569381863833479771775761089581179761705079643883547865081451454645296158393754974465742015965054517394986672435425892821641260966905696973065819845037875999337496181906902468744394000956848752729125982886768850862089426718040365236305657644849174421543839691284319967211182452383684758499259418376550873235993449076950745755892381223654840583391451591466465986969408898826446876520913983661879825643970483242354456885061642005471934557099848556116996122803120642980483175656209900129708739801518374518673559313640091635953986496171703437531145197054801016358313399402246687189521613951596889987451185412492672880289959389641014012602283077177885129053195056431241254332195038373755751832213702981467478898672855832740208489446888960871078671878538669046337681132581645732958322285133005074557667003678029210435149503004172461237220738858566203320696595963282244505543575201530130055708705845019940962717852307945465058531632494987787509889303013779102679110438361841720399083906422743286019457779474087304004941235111004484688905261507037643280631288311165925640045924453822792442898441332164836057621632153208551457931681467197247125670121345420347196896973952708170549210417713486710430422866164414340335256461310935334593928657715006339832311161550695919310846718461345730067080033266011737171774043917450814255680425245525026712778754511067967784121818642163889893312389122465143838237542700287701832967776527560022262756368652436136753332178325641206090421472132949005323322099018037806088307728990127841517981693926699110256490680869299023104268236532704287558611015707251216685498067163463588674934689293664922622780903317965430995861953883665616480946927100346850835610168155494386703766107015446155756553037007940775370052527587138512325045931436569567243430323014641229351234016969455692340545431713229325828524101526355852935565281127541583787322415429316112115674236831695121823683194188827584078297847219230194048758675698973402076259869753187534991990811787572615138990760362273224048787667435446277938204684915172710991627984067421418726365289453522882441524761652408669629711233124389368715275438607211688910727380871872102120731868585866717002873417334010937439403096988633738363280525810660260234926442637117955452089446386163783553170356222642784374560637219304823958457208582600980610261604715232005721686365770410874401913098977008796245305574228534957161431957579252443264755390465463707977442585481085813022861661748173309815471410092215361578893983573401782514288265704260276519329328159230215000565247171797758167038471825993339721116537919253416413798989967301696336606079518689875489568434577038286787585402698793268525613006474038892791825185005509562348937043882037503130138855353315841988522031263437122335599930549978744000942973380396324581220958896488729118645421731112252099242662056244894555185334300811338660824258273739892326038574205278629128925611983134622751280560099046138410211129917851220886270749958593596068562247485968342626351419532958113634652525435296110630112427149151331278143420777728466305692555924610811821564186969596843279745216412626492059890606460127081313847112420743506038023413928506710965753616728199134835562003972030941602223577323327219938158732794444361675810258835785050615957320826727761514029112916131889229460611608934703630058930279003696072258595789009470571716028574517611002998840930330569823482165285973621033875287012247896064000419149371263270141321611174149787145906590362536529515124511904253237968936822154073751220508369172883679928560193535637109987866355100715831821037283342154118902682541565904519957157168550163236563296190047034229140863464839348719626229564266096405624530389362235513228224000481792587841416855686550491504031148861346118095730315908700839750767057397141770725352048634250358542441756943132296208656896993904236474646563593238381230131322269684124386090784111673791389101517000962918289369146094843936695231812414188567352173728559687058374330779424622099082127365324835619819120240890108133822469541382373184649661780387614488764496370717564356004635461606326968657610182539431535368322624532859944596313954729769078754399133954620529061783609751216241465199566865226753702531626470413256131289600569167111451346430772106023464330173225155250709950181493814619875815446333713782000470026507863543307222742120074808328805539382931967242684184687726720866163756662983471251561071562766323920926534613409534799919302478139644162362871707080776611928781929031428329770074719489119576428781677400179597453345610804537057106894888740226269617853990817789237624566621972202323419100003073208362105678608810094137731375123359861018080662007743143787049483551368211748855865375698569611849918486173934325721679368393151042767103415743717978018676440470385262926449734534430875175196322779468786733187908422647574482622622240231316513679445046088068869411628380877756538558185702040033431193148371512189651550211910650655062547984159941000975842981347878649878079818159264252612036940274819580029082603142577613184637351724454048520084914629514638979642012274195011707819226865677369386677006637465496381774357897878224232989193918560154019896821137097591830916832755694315294460511367582257605708188877452121512090644022093295701919312343344677131561804997041909393372834626896649674151415485926738733565378430080784058694014892912541726771197681761030002167998240293201250410583152649997156054406298716670099235125001083625726800960466821356612840548601405434599160649144353617944394454410313838395445720699260710829404718965972816603288386233293481011965689105848919212222534609124419270362801784411731929975670679974525863926464014915312186684600719892804240607896851670951288636475506314136300687640040272361779879565094502297177996920565849968969133458901084808875047821520457161777625037080991947277858326720619776416796848504795465679035951105062401286067465528715872767709638118140357635086847002907457893202721135530088410435012162582531701122817488783351453916030398662037458475964258660455681470708084540071721029516567155164633321127060921964330646145323496913199211262659330810749140216723481536004048590702523933275893644123495381481713202574493713528721372795776072916693959599008750514332205520628485204106781995479238693486863087400704137695093462224472130671619082717498680774616722379793792284793281865713084690169164743688445412213923733011266341521209135536517644551799217769339471225113725683654505273800152354928052059240611147624421431278387920140081812274916416948787679212175270109833855826246288508353206330991518942483931486851636361848461987290254725780122267484066538303350734688013360892809821444979331204077605932249770213356119582450326125393092906555971614334378324504370006613782588625418143491764086227613607036266862422737396635216918606126452803881057894943557905099105379122118035719375823282857299048360445066332228551952726391473166318590384189079956680485106252500035440884429024548909776840607208037374237071016418708763253252013634333852943157067420331984320087377032138492900711347646879338103013626468705107518033774081353110303830129552288499477346279584742077819948658909946631521487701068464538175799283619631483780443406148785966382372628720245894218265358106988559116691848650357053515635734729235111058155763827155585200653630514551693652943983082402894811602620201883372588252886133686147069819642348482538228266356742201943449921319598986106161318275110474006482331438839448039631900022059472080993494692910138617190228249370832434645110656981587299789811957355576792778757525569846425230885702993819589235652551058135160514535935365953683814476127381917948461635622384837458849601637033733680268203439522981791392623351185772305313645184604997044719400698481882280280598757620562435474145959855507499996512831949485447052887366042792666840108452625856213844110344893700021120299407265964177473237828672201142885749606269555328455228356808519532590112698966075637263418542362101887668844615313440562248504552145661969347227879035290600267286569543678853020202534001739580056072032984691350636457537701749320426967715507954302775838920006141136309376584290394164865602419578527281063332774349600823356178993696281088052597150157509629066571019295107118978182983743167225926614243052533087949610894207560892532408547201949593156261504291373639952787643147257318183477205890649339363149757818988470973137040806271049037355434197677040198974412513815123218377462355486353767557028498364409614119150655735033121730927245829399491676719368156812454825679384945015572815142452338378338212805262793810143371998777217326331473556560815033971632203109276946137537277234481518772067451150024934296686852711919963006340383151946869047664455637985333188854324580521986492212131832786540669896265278381163363220796229139591107926146663104118862373852591521782155282663689549304893582289494441384017276461459306387723546738381497454047425780958434528606964382158075400845369658669329699401707682611389661062535269654366326112918058419431934393826541500866609119228849335510688862318219593615199461439946433837874412196856700627692905400354824256459888824751900124250581646457230917884699922630158865014985894680559136536195723718048216702017369751959551862032200391270696798433816317197156584317414571746408000404287596765472860991952026360965924571257565714869557492613775992388583631635751199288697856520102136739879198969363891204491117429942530933762014356018443397455568586390915926800601264970017360803693050795563950066229896511070512063470204386852824119297134399395827755988171673662511026955797874538037260094292098606415725919511879013375083658556735585819444913590243734269898625719514104229886742745353747052217615831402203763112769656468170438878957637286336040662303596630241766795565566948316943863557417385490138166137911181343175700110398221249517331393364074604800747686129991901888806065715965844333559727963869014102265705720848242042831851677978238320689402944481390880805882965255869195336543017164236332255296863989386917258584607821162519194089531899118095551052037066442437335318801044561664089552964137132252222865305249027588817415758191614692050823440532970334910947287405577684132068322391373253653994834300627636510964997620670922800443373383131551814300120670087359912299948134970684869505191695267479140579104553390059884281061888731608357564467398841285719045980528076874238651915622924773458899007356694159996586414465236182076122776989040285237234276082632524537087225673329636955670171183648363120837239279960955911479844238105069055927089583460738325222897982093338743343732336689783240993695033260892354155677873658994338666500541240149680908953999003053416377217983927197489627264626785578558801704134347798050995358576769649051931734078739173072666116395472824391684902551339920325787563659222267529401408865544840147297950260710212796467831719232577874101931320847963959772836162196198219435428435114555960017323854912389271355947779470466206756493627489273556608256975164440306481578179928787685891221675608757698808633531852806435386873318991953848382686449170155378902131255605172677355223922796293677289722730865430574886770534436720496207245260983541676394383688490692923025006597544981912716128126997783761769666869263960884148919912825208303500071318209016053421577536390549231079852917724663421631569134545797077282081097182232921900305224598908639168780227040669706555463143357500583107705820758109927417545807706416951564733140926349937609584804541572588941393820940218115048734979047468875424152900584415439253176197122168473969392916238423803810796686078110610995223425945615903401264597878967570845128452014127531019285482382058584456499864948869492408905541029103583280614351844633245501274596427306563981676769934781999079580087825573145535277283922728782333768275593520742991976303387608405418642732662598094585864194319194314127221576368467553020941374923609433218577425044962364529207624890896608355226328962057827670466423743694558403675782826994796684781078804716221779159206101349352838113991617493412101272816034112382282025675884314601293509533807670099493671299670315068816927453775150340005687446411331351283978990624691818924833428210019273259563724900781236136239499464711627879909235653518105649384740284495911147520529395993302293310139927916123199240255736550255950278703923435999809349556206826764935269320873988515666547126416032714882953642915170136587848763382195494643055783225903215127010332154735353047018140054125350905699603750362983733896182438593342802467203030406376044212548776595167100244687249732896845834793325378313180449349953260760428313602487749683012321266145040517327805751998210461832052837750488153019366098804304517176582615392003569533860377781884760332913732626432851750087664845161833825165323314620105113947587728759349605059506510201495729026187097943361203078104546315215580257486781851358530023327349519024300225466756985413433248380095577699270847813825643503067235672119346517054971439477073320161733586304207953510165480542957590312549052319899718571030731819532322782389392246489560466563057955264107097656429227973040993787372623193139017837592794387639597170581533820929824633436219405403422383419416622836082202474879072886986297202095116598560919668541929879758800773022830733808295883809832748092894729720875672426353399431875006488597241257835186057094815700673110384806865866198281539858143883282472217322278871154966576921691110831961897983642165748655687836023365623448057399469480621831484193072054104341801144311158608213784214995229824960311161357021265168294600115436103938652364234042754028355479895790167645397044260465324600045154577080810997152618482369655211398209454296520670394046679846127705289657180926825653753426862710682340382794243004897236178228970330406141859593770864332802956985236071251320611443482893189438108840520636333667099160182539215987468185800450606402977688561348334920355441505879958437418911375791003122873615489379254462198474154870947520940254771603620634714433589013939199951549440243054362173130411132612521085536376499094807013390174551718867696036632021625131875926716150091764005915004929055391457146363796981403363309404687150886173343029820101922040136942534363904259811763598390355632453714740642565419729013867737688908288739144325569240237950559801446556620885646891378290671497061614272711117331323589137371380766175332488340393922595329432989736841080009985377988197053870443346374501299505171912324825308037997868002868663477672592978609139281645833617975783201769487753071111085359548091446981456245219825335253409285771259921506258530276315354906638418386501188942565294279427833252332242969460824571485743667155229099959396767387217857860545189052459172477636978914433770072595356620989323551302380161280544875904978933716011214709733528755112773531728878149185283752257202464373945369930163117155281639138875030186312098490269941776733616032245565478084325037249823636421556521728586408081704986029603675314465607343582006416227100858968156464961214971387378061980474432510942564703071040838566133731085461432437803906901320322856154150822287060360667032008673845547788807395808001400994997795051637097139074977057106510073982499965955518157781960290380294325829000464936537878603879755872114787464457316849485905833989895438610067513314311421494337328272489229255873987343948547225817502743609143950637666817248728622100984328566865807979231305541171288605755404118444777019962118356321526646939791973581352634213839920918602801172051285692840412230745739846713636558802414758427088608983452659384851249797339790414609492021176603128650379021176892261160620495973656665849299660166989185923786858411850396566209188000679755987377062512285426318500686584655455721479390396262433476191967867980330630645066919890630894261286651385189414581009359319789593326326036770788574893389355640644218628279351826966347884086741629112545185285923521170422830029613821637137632462947371298057204978935023143584741672359364873954202323479111516480602779782840722829003258947451169563351712345488555546572662662712361966025278389736156636120031561150092020227653954158938411548368214602059941180911726814970819109070304747141828968507224943545313031128224689257428700077452706869296208247088968082869800291474063703219793498712418724986644742270309494904048317315237025102273396694756687846751872845949151086266525127839450480840972963328393496209839952794820610813327300707026725087615483082598077811722452214530487301760727830916910511298506891051064449366826988530344564008593002008249064415236777010557350463970790229478657252960411299369578539413466147135853848423389559778371757437099953295785215822706930981079485691558794653065707402021578877567422408136115734062250777104747805341459087162981948821661298855408336153689186672549723526430045341168556673539599672528117729947113531562510969653508616562084226689462215500509655794135043863231198750229451145148739150673486913982441563456186377136666646856324145888744326692061627860289152335044835527899812102379841390012320240196971538590385312543108946939677755517645774620092419523289118859478161368781198424593188184141484403304293100699977162997514257639445256872615762328211764646215194786051546281910263919842133845159751741806850593404512914862882945823082047940655121611611948340597075331387538400117304804217000854660706951442835352208828775023676766259055512563517571661435969139897800993688227447103150101770932174393144877512543197141256109339497345653938006693710757186151265010355381907972544154156918589616148573138059147846201607332113777120580820524085655415072695976725902380396303088634689139219700551982520013257096822946810618010497160414861270857315272583721145998206620467815513583845670142023676065819494960252369547565765679017351582370548068021620036489128165126103867271766932696757981751819061037251831289138918484074357063178880795231522066916178802087995339527921372970744708748664663480752226093212382740078938911256122990663099511372908654666091731018012796573475389908979642964826285381838655812988834178846261158421279882248539507554776982368325798119364590701261987727960765894421207344486150461693275566450686324047471822985309292931627934001913566001152495228948888188589080392536214191368092273878019102699228166582197573672938564244669345084520963127537075718507492332599796498890682295692923126621399371152037067816548376512765381168056009686464067437597593648983014266932468588061359863424488495765950535425747228216948849288422905822467840115787370354004310764144366895590527377413089819933633993163676023069070743056580630178580369096603270091376865353375330312413222075913749762746222666878530980818292871787000283540770753590570009104728957147522728235057660281202181212589584920166925249461090930406229834033195592216493060942717107231956366984589214617499028919412542854100186120605955653044481832380678534773894668081837563054556579808688199510268124746602429819591786884905791425606249368805446011738897422423595157789022069485906577102779016183447393816536947785215837561371857346123526591046513806533337082917221424881975948637553739079538491383747512753855419683603496216387807959094585249259214606458403168736590227921403652967382545596469944197381668374792246303163041884889150778621030392416153123119350534316749067472804393666949449165158405563428529528128684258788705883072986042478112453373693259792367193616011005135132056148448105099587702842178048569278086116355925659079530329067509539578231863346873701813428548695472140840951563971744496314499417277081578297205972756502746131787613905258284532073937865954536753852098293551334053433173314160832350312448310961800310632810293143475909878986092946178125748618357013289262437229047990626906192342738436010071710401509192903450686474062231368671481038351993461870488771083657621169501823329243580462645124139142553286810014360338461417846013421333695078664822167389054942778233116254432342086342263500048586086778042973797876104258586164305105497392463055218019129625383404978467064367070469093953907075010763693680344821803589778466851594578771771023038312268289773876637151756758435758524510668220867322331732886946323563664983858902808865749128938017533084888507313698816988712297275681706154239701692556943052303907590843689374612812563721627556211164496139374036607254406655653031372377624476052939741545679268199075834373241707671046790678915007549926217259004124517428187931958150033141304262270568537621074252938181553193176829968249140007520620584103493421075504937503683494444643033540651736385205466582539147474986370361284080102605342924546178648188587313505609716894002391835550179006240547030960965833567648110905907368536418226855192142167950385324984699664542517935600378822178648581221833403256308713695909403977638419672603487931455843470460525421687871266165428615238488153930765858613070879780292235230734749178987716225611003138461431674853063456326636710520746004492794688229061612697812645235549455205745994872244420786642623085171554473295133612519757869982317066112806968945671090209157021658880513099002711187675658717040748133599329141238080387196578270275069701387452117840699186027449999703994978426562721422811653490115381845297226374858855308623371799662403613642795447796119704550010758426651423307259752491211444684502174692574797073353931107306193417925964370292075294175842753184024148225711294686738655282434135040210151145493509949384094318822753183197404852447902288138159775667032946110697013203929790372779943324617156368534499599664681676683820753482014762863753147294935941673733284253523435978581353352358821399710595907145784821593759922511208616508778979638817067793828052940390283937978783851598945960970262249212345159398279102259733314370594345781766865104095381709393235683533309659553346114566270723079497123596516897177981810824155344640275917542524264838321200551948080497413336403643437634230226830352757295702136508815297573860473326736854249882295735019728643399448576184578059171675803774687172819556126626855239074190493007145460184930793337518661733809162574623280762441012469786012296933677251422216556533482492884099356350567441874642472907702316240228282640882724731635143868060839542671315914429646247016958943215313756513776605095974049024080416489996805151012884726023520339416986084932110103886610051475664968876246788826117406334434426295554295021008530009562473693912573459778958967926130741563975053669009385405765015969348151397449537516814609506699511614276668009808100239991309088512328096895032306632677345633851309781257901118369108610307406677665412159789527283189060140428517313272808542287615078519870634767836015696782081940510076891709368461059222379433976247150728380964781232143546354523453351256385577199802684387015846707339237304548101199395221436622081729541572554158686650471769969042429090774987709874694847995937268633377943704545393729905805688348078659500411015429512447172650753737448348678131139533938598403552356232536395487515890169469689718279877136708021972457373152093695074512186440408071132232733461406381888218046045340520430126409849662741690649115394017875785985399968602085696805670698005950459599342807514996009763643951577928503606584292407198023118972937911276519878592419748497903450498435211872043604280767808602209413614421248204274827574404944557227311014024556257122563463455965780155581664757582966026342346642282099362307051848322718440140713444512071324374678458827267457922169096458029731303502925673703179938148952625326377154303677189345575346127063724499753952640902092952206119129600625792439951484480543062059039857274404594379652104011554167391637394843193424045016715704749123960079161264494815687765895295108001333791302734724424208299929263433231804574608084692992041328607444741582958675184470533869311135747732809871445747872062875138516127298650527587325892885462368118889978496792964688048787398403023286462834824901910262485212946327460711994216741928708976683346014225193290874795037764547194560108780882170241568602577665454052685257851374495336480978504138986746443273895105856297382291888205474023357584924157390766503658025882727464053215952036811441776459973849920578594235622922473823091305635553920070755586072413346706974090072077348967940094070973930575617312861736104478759532731321294911799782373626627767974313201839740659814588201431247123630143646329016729519292203149498116937606996442633756409188690793268215818219130270454161386663675176051342679826705915019015260862440818334667348978729504250909843233282620815396002657155535894793864582766761157707039396785752799656971690784892392406068736498187710565982478961946386577003241129914121205741058012821184460999730241887077930403291602872766050992262673751840653473771558513191452069165285507193480108691742505866375523654981065417411278481248888709117390269923293283211771600363420513222074273491416124402819188656089707225016459785140155209291444109754600027830163828292740133369676496604310974296665360477395323964108661433429786073357647449298805717405285640199563370101088010313592424079267834880144448372002228437788346689556416743694147425709540860823182695409149166403107136605174198139142258351745748052272135972985125963700223054683141908974242713736623132527516048051059603449555541992160019912135686819744860861190501183122131257523961511255354274983335907948513287385894886513768080314561610866523272687090277745973190939753581029037303264772439781533775449457055205878560270447341643398153164010734063951639719290143781193447287130135903860426765059726972695768292586983276323897660124551417988273343305587067092871634782811968372383981237161592560626445423450223043665368111567984359745438896169967873132637244447860595024762516614592184493580522295063635095987300779182150662233471308265092865317017753417500420872779499534224291941550799696099862789673268435262496650344264167848406595145487660594784592790335051537175589065496913903073172454663196834324154839940415920435223872313147857970893339433212429924185296463396229244217038368617849175776756820685688267500019280542771484295529327139871064704264865009078941982337982713587135604001523102549126014697986237150195788525248299903834495605481868941366452716848353377934948970047948785828053540009488059071605249626123713753139305556867268176738018636613804974724135561050049163324795295483265245894453106610717506447618326941185380095041933020732210298191227575540448724357751869960242218376369997217525442987613641779911451973829183411674105808423321004419444375693460297496970892455800680252789091066231696100634245898525440851413444968933066574321155233261380391015368037466991532317951797073591780340556802400319919515350735005517938053004809323076038861231903641839390144794884000856532811924991884306910291359614271067596155436545623145678878651375918038866415148217691104422362890876602777448171966671136003857044265500864665559589069999942348854723400392593752370172035914088636392408122151686886441487075740381006640728492654832892552984406376122844189756653650239898195715009866336262294972661212001082877309582468661133776005413802328985410524846820968904699515157227396150086323010971007957065264633857609671157441021054629132156806044747184049423612851689114701938360922523350450774565183650364669114157691740797549150574439712226037026048192242899023117070793500898878136992933597363226474149262314411741662332730069059791307909091827012010623107936587079287547990950877447833697029345229405949831034918464305726628116088130603013865506553122542569131560060502459086839759387113228884147918807254291398630908162845391033953449607989964317682365819191642524008168715410410324690612515922080769191358312661311310817644645176312775849939106751851460383851728723206036453383087889439072532971914705359161063903409300018132940473437479565243071694242767687882527210641562725753064716107700729295490591130155819241661706786339825703005030606358895974098754373711758275495739743322233882803751380517212284284853024588842567545610045428814860961800154761679336012022671070725501492378039598083100509437317877782990873392275620680632023909592180739120525257834572871710768790637780197967015135394594797231762130132793426443306472451492609010609396706779607585708533875174718666592145892111017386416233765032039700099944161270453521577666643842991445130174396450641205843007688306134317859859831927933896779923979229974029743669952173260036411724380319620878330927455445067624327449634314716715873475985148164944182863304161316733091857425116161959027716817605820816697723836567022847414172212478691684750526480552962298860237022509202386471445219573022058911564322073179710169150518291899091177583805034941690548984490932438028082011755075529998971453553754476966000048739272885053626738797147395222453717056303329304020117516865743253504218484597875758422898004042260600082101432715470276068415198004053123941694300849419897391910210124162682963968900574964838616894687947350684772656989636662088931031214957267382912323303666966304352839223764259183488550841676806745450125001067092425000819036718009482972251352468788343379479233814437541311483868034791938998455509223826920371503879206176656229574503168930427909997557213968331899979144505272313673485200098035584369441775384192342650501783063713003849741440669526748057278957237336159356881867854544139250044357895988508373767827924505350904843500365479586094428503796677565840108962065545989559991549256058127998027739968822488035622417460865886585990222208137191985095899579841388433982193713294557215309283036025228891557905938255287429383019991061408059591224813540207764778394659445880771554870863114232958192780027230644158495152422551491472033073199776803479494677623617481469759251066382869150318885182943359715764795850031200778115972662949636605755283669253028642388244726709100108772729160752319613403442095622501988854163759342156942472595316099227836261318994142755109268866857574619010140986338497976072789579256635419822628651767159443729837433169821282015672494993747335603109357551027485297797624987365557628827965814961263966628599645513307954345191862467608884438890516014262517585261474326303127507280533685737190124485570822115848746853466681789953057329280854272782183828610125835028788239753320727130635007415736834275044854970046482560992420215628703835692754137799254661184955227372705298769524619620712976803385051833178868842526837020542100154018814281022742844477878328185185910246672254155097564139373480071600421741701555975686061972122871044867115902195283879293401626071010665955324523360157876219242717490777945904693633127237317203435327182022244693359525885199156794715740860514826797345164844384576563416749647068390807734268028054875100669584651780348355597352341359046294884479601616378627760012550818260120237121379104453389187111761683552340336163291655790242328152525420615517311363660587992188425539452487565549449674331823717749100923692229304832565706661525555806345554460368624499147035153629245853678456619513603462199971492880717922203959438756965566415109587206264201460853176515629416966309203643283886951701607630258163895172762891860267313322669622054803635211959868318123438228447001876599078082276556446089802312088311648558275080957378324269504912368808072880966171798389863087412517000505452878945168831389202324257383794509084336851624899345017777592601070062584029926546149532681988954549034924231535847697512394811389938193329671552755980640527005306718379868585378563351479794714233683158321841552909399073392074249201636766788895465305198414608651810972528931769475226246253091841943269280068866128447375134988371317638522762444619660635802133925364524649908998016233473440643417552006213521502979140643682827035589072058741843849505623342410786523147685855853484613838390313279999327868339214205563596719792571356478014436430884142456327178661273864456715251776730027464706657237841032251451595429903233087553262694287626143391209069189053294384598407683495072838456155302993690369958293123207178014790093148870919807480524149446868061658380403917184633021302569091848857909157484118964251938894594182528302515623347654011090258781356629642803510337880506958923094294771648780425722943001628347282362872874848191982990491091885835585784619097727463797226489190462173133169162168542501564938627100342320336814941307993777785207782485631867152966951367567512736905043170976421862629049815189557308185507219308606673653980079485786598410480572703381347288632680668683124362464236567081475556011561435284530216050110634667413820688587430812950832555070702911621490679030974249617200955034745761798475586718311067634497505892353482386402163052102059003712378125178859601229679767218916520327378835293457997627134493291516321504819258529160016616661602997016246142591551803307199975347638659621046908072994294352780459412575973935185986389669181806578280927912890023370158316090318418244109686698084560495194654725451884261608928910047745439736084318332091412816005512838456071912922194715596129545853516392676485555970111707345451183527011530678415232819150890211802451783047691243567007469703742417689526830361175718969837706767413861679984699586330634785595847416120961472786767079144999886235059764773522731583926074815716228723357615311827977289758610906999217962713333405609089859709791648970137186345913267811349708311684737514177722100852285759270430055794981935088605622135227037037148601361380924359373297066701431831585007120623906919479394550298136476901695409897169640014328954262941541674600019302339810452448083635287348210927925878840845304214908209436424252540532242025186957560188766819640860870229731700700542762087597099673986827567685703183164901765842882548650596882254019094334874643704145469227128549094764216310987358786485490827681516230360745546659921935698213637967424305022869767242460526153052110785119893021545287657057077149160331774272163541818182740933924250118576024866307524017290273040473862334388697697535826374886406624151192597202934344469117091989436277028602927912513324182465051282970755650440983295415815019815410230742564411028971436910679157246131988032027396284784031883892940155205185156783306543549810796219692946330057180659475017828377764431011149083914419555270306052084568245488172762185466270145200819888513055897704913881166936740355325592997950337013220464247651480795686076165041256881310535356692755629971823942748267461416298540645186628061338276461748909666417085633016384306861935148545362164524224961717993499105114595157777406689752026614237920957000817738362819157342909700603386629158707895820393059463676986718230045577528012273346928520927253572648773585399646326393050734816479702095868216695487017655590286584775197732415636090998893579176280937949983912368808468755328889800614943289831338023026876561972349804106225659006312863679316479571499602943789698445260421521217450820788556530072604225305933162016888045335269242811216504297525322072611259087522592976078687300163062253123403005775889912496974244516081229108619534770417994488782541837780822786112982639446368249163354531721611358649445768515515162936172708956916529905185807695396471637348858693240937358316780403233313829772300867294329678842049083748934641254466454531520940499622353205756857894280822493462662053586813833625230308410888985399254583282829843166587390073402004938309264068446203735217806264578130392831799562484391619639469505471624761835234832342238050721207655810420263039642742761852622438117143243445797856645479187337678431135959812789383876423680794701471078007523056575684090872238125507240682413580091855134315123132207940253765951654855018368431005991960089385482155482437621772689258743278353285026728387300544871255895229272028494105843312944117116198977501736043456487689158552750598708614040379504808667631604468679700250997752028463214774790139649147983278455419000191690403450296443481352876269051342052082129530730765525539642208272461676112460065067382767596849706156047439717234562111065747770265769620746725636785681251698334467186931735382799304884282093337280248063141174188002096474547238376357489513091572277186511947016021252527115373360194627067215676940329085194005480468764559406127395632513453503769490660425308625940905667832926881505004475841383175065329942564745549687918075713563060610348899198822766395807405443198170958597866032823517627650614568506312729484015504205583218767111677516329614916537888463976269996996070171032229987675753401864096876924249631322894561077268634977798747622027459633740537145118687392275850288902429549949262007134233220666178710591762911767105146503867677716388311042108249826865863643538956562824873756371494827901225897044844673986711801345050827037524455831398464669400044038983878025042055082751915851385917085615965235894506063254034680508523621597630765474232590056003015172793938672433114128722640135466456809742755230162686899534719092376791620326931787340367037067361539771800175182987672983787620986662720509280491162081757073336642452555301097714405911094251898161638307810078768079760211871007066575040945219050291102871014384130021044012211522982152706474015405054820737043162681598797443933882664158310106217619581202518765839810727478250191806774656581372286516348213976300085891196713889631243732398187779129852722509781021590058714246916127428129908269944402995814616290032172567023395759343547773819853944452232884669360379257249845758749742176336110086914771800532043441067007193847922396615085662748899668414086770649567150749450135733501412113217771395190848231931941346509054269280553139641147406797113607182727303086962471544809846490118426046120388305056374951066128054276869362649808622842494258203193053187527861692292803283761620655372376294900676258828148619240111134796100224076928335096320494227570433750015712840235571903428735849614523414635399931605551302701263618060234551672217424689148929858300206491714936946711996890190722879048227396475507991472480726289244021479624276455891003494672831028254517036275640518241391464650928685474351438861625019115274948120874484955078208172411067223797356323992002459344354482750988920776049762057867293051530795316225116825678148289274424803638792919004709328755139395208316313138334322937278492461447098555385330142681016447410878607194327778735098863936839663364816394389445186450218980538203103125275809390297135141908816189300680282692141019824383207467704940516768559344387275956174410812085914846246423005213495963422785297646309254544356179848845078611582207606402754469124419510892056086110809713185195871896161589926361963292388325577758272040241126783111224801578809046629525353700505209520114209373574404211840297196997780562613630693395016407353864540822090782012758278425134212010305399811597172593012668918278591902870215261365345870610281820644840586808113390873894973040526433804487609753914462767659379504767118081389649445234319784496574940271895401711901030231117929534457243403472847071376531803766444682492862166321290711953708498455356162410537397147418604531212488346689782427401971437874390433315720112427078610396349444596828884513517425626388709063745148481873329410721614332012098045889152356486248765351306309168918934928695529009922535494112727671585936328758471469203445808403544764691089203822531771230131267301921231844617535524674018485872213560532810329815637038189522013782617243016913851079004215890104788291326086073711747187370811274920634868169655118875415118417033392076122939677166209356631807397854026128155509609355550033786552587220482839589942977734059158821273098964696375041013175483602191791147997899058095836828119674667014948313441352248356892008715230935135219487032914605499947325482934753924889613671732225012308037039626374797481782230463805508712730805917964543119328463665995531193970012992704392147538100764871436560508081122292504294727564021938429796785137355112065284964841518404508658992908758440576744943797677083684423393162510121893521388564645170993817830460414907143532045866963615333148471995399056900518495645295302028415402273251187381399004917200126668108909518658496474119556061238945778646424412563444585086904710944313854724801090342463563527971610871971907159405266508463868908729873917622053519950253720299381588788308202798211982873225565933127473727226516661100467985248992322209622363536439252249889312017465847808474733839823161154142396850302952101215717089489341810930861806468107329979086119036441384758535236324638158567172100805560503287906510739803618057100036433235658919479936457896341564618543303098288877546771324301813019230703909384279250839815326735472892045993240755020180893083730352816865666941318548536149840739138793518354862014374773863283918652653385348620713603696158432703562867866426600706877048086857027895876575418922163727868791943506709257321605502441175547887211089759890650353278462319474331060576452021684699715143822011303556994980075782900265890444355594832733481984904934096542618787698923257325918417350598605515800447831878959912628732939785376039363525136983548440813375313996603405418697565255018269499017152247115096546688196119545522608978582697217205136918000565531410678689404080471224019489563680278262003645298287552791225229624589867944624205546592773056367709999005639471794234283162413532858008533646352479739467851616328634201844698640451521939483692316019602315759808936658195635410123904823608012079132081650644295989722169971140603543944485694238146341962843588989562634092171038667055282280167672871250139267836647584357140107998546141217851671797434585837928641089835143049134159538408324872844723636211911891764067454562061751491782006727252467239628841799000916599413734123961700912697780489732297474939232591601316584387226292901931684546015773910100581381732319216263419164464352358933038571694689275859344883776196960280999242973263090643100110517736668933042138715513117943960526539985493754135789104986011035085428760899670142334677148676437429298315933975537947542082559040934566486331689122902946837225022434478682403843023761208130574757478246604237294906784424650624808888728876521329897140497294596003248207404795797176074840093991788884552520412298808685848976032383028256535316804008578516727171011149040158469529123198884902115577893163638097323844826181392920745853874829650445780933021120979485138029778338035912620346580865240196368678818598187656071949767105168290571668991696120303379617931544882624814404595221160420578170679434450270552160589477777610665449267589537066858328471826719804735087975717631939295619305889556467370900089409246960337277116851499391012726449800093316744714067966342308905050155730557853185546059318767657100675845243799486075491291430627237997472933982244894669622027274269120855740908789929465002952908706166640252905874178673116990068014021672103294947177746807870586095594704772358329860347480080685279730307648049174225340172775515682845681897772213851581740391291967340660069884159085465302604668114853314447768884441421545481708321272535610719478007283897701717539879801825022460124309522223439973643740454163664307665411262154583020031853624140108723129933360035363691385774297646375455215804947544791534185990830923463869149001830255072158736789530841303406515953482359472526240084536746013155485009735661981197579478095469074120683898104301299311417699763422490786254535838268996815707324729452642463578851307316113297045691958927118924680129392810893059460115257750605637800271320489428440314752933825614637888326030072300290897461846532318205172808082557996084820897743117271016584166590967615878581781083546928872768256759883765235817046061307566985997483696039047859449884286016992968386021636968334744777231484370142820909863257460140022728642364796701686564504983658381601287200860099241138787286246977396868314579743175204798735684394229438155506064290181760072262269390143474282710808692812465846864279483285706731968075557252201432464896966387920773353044662518231389439169768788287936712378062386772210253871362665557179167543781829137483113089277143926229789010411576474402737940940841939804277867482654079194721775170005517677487453830311925315190957208948251499380674694398134029113085775084944509023405325169212229139806341264725184638345307333549803340793155848718344870083168802411328125976714025203261284989935156784453333650971250198643643019957880663869518612869514908123069398925950330066635389991333289889812249680611108097469029637766036307866539441994506614203863121499706426560364883173485850037802143874106523260720328611745516353588754299422395730541511521944892124213140243559857059953102311602081467678637081162991804988131078117766532360230458989557832164911894464406676929773243366630197225832568269399976782281345631976225745105140189931300422317332456024999901456472985030421712471282388026250090284004751965345961564422378660125780186982811868898673309298086046117270543040669338014501421831505130838989115214700675924275893105530086526579645443112546194760939841029717117225812899850848322931694477692888989883695742824206454994724369708844632448907816521412447147506105186646490915941736437960756399540664257514987230166778598297110147356307137723241849687031429122210319732389869122391812631991997952293407033861712554724948459983327529655776469294496602008472131116970697008619891882407371177699158788852108033306397698069893720217676039052627212230037481562181666328031230230105790609728030097684374974457611444448533967930512580963101486516744810506250932168817711449619563163012684576527731919546009102046130392023450880481887207442073858382741337626151626806164707375985089569306252386333240012011959444542371569149352708967594850576792333166342557917305993050943053089128288120536165693908308171230853788563032694477090609448474523026227940940510803777670166017958295190746249031047998850142201911218020400360622750647063509085003462829756963171705811659855174031059076825199346637128607327080173224505215844157555806550113314190857366731371526630773169091881159530475635902798199723845752726134753997985793047622223853625228547612780097812238045943638445149622663945102889613032065905089997809370050430807841812361208746909762528072153078290280075693680206942404915318905278191566941830714962550737114905318618046130533989325889526371348663937181057060828524172914795231996062861802257253620630819937223763077141300648040815157952785404672230342130232151382081869787903401014497989392573800398381991602932722361076351621579076180785782612080360280332137962586905471129838944909779682659053467000503761868498883255059294236129517742751078797774025988084033922691330300373228002100360164435002927613722486763474529956028951353170746187337023630543987165048596360206174926063452267808313082232768460383676101274688211910296759004752185254226703303989185941790953846439519767542016301212176383496344885450191264473579762347095582600785766984084407427622780931101228801912989895988877126695359700308848511972808145793941075689957591128487416222084603105025705793289406943001981434619698638284234102562612370825959289425402138728836068149242158931254364430185942910696048460540935255952506978659829949673877407622622715997648590927280279162071873215155846572361715236051927792682134306882070219960083321530641643888945754597763619591510721513515125377235750153529703704065343672014998790592151494100724046350679167429805903369660374651555428470992301647739480365097118084217114017557406768270359711628867058032380696407343158231489592511284424272160230342649378439743925424200058044816906870135571597299229258427050568075835107326555301362659009958852790448768828432046414773321090419104168117194438029252764123742132006322875367849524327447998964539101567900691964263447000252990137963174086265939277723407942736388735633848614226560760695579735152274214419901576537865838131543392970242370610227655734297077507022461426043890459350357666855605360295676312459667712139712749528532722551195715074663127921611676519303205387454067015673627683148063689576980051866944145358121234342505157127666658535540124316738583813501000420175976281778038801162697510845254791675564781836376402992073778081637853646401221792890128477888699592509292597805742556061512912296088142482469626914419898288453120868398702529550822194854191245991077959332712987938376350549755752123170868714569590989880481991123274078648050135463614751818494677906868188348655346207615637276605289216952085233609466406799817097209742394132877236458669701387289441628227917529014425695383679575902040673431279401093387736377157145529340497029658918725425102592422478346560775727552782171566426418488366415545464042085979378745755699288571866510747362220710303661020242626666408154663792077137813112669024279742063945173274163266220859004481725257954465314949823889098133575375265551133966614432512320832733172400416559617859300772539282464140100034542610357616646223617613079640897914454176944432199422192333842699836636543554536093959149125375851936306458211350468829615203004732117580501625338303946336416535868875825377013707883686595846379813411094594300660994774273378107973554586587766159945666420736321382278302988107492951380251949753045849648520268617692943167689803860614762431894532367957963928719375944458422427381664035236749704714322573471685498201223573849917114768790773965240070853719598730294892672687778640690648376450771349475958770984143151058024690708779253968934208437411390713033693243694798135605366709113709625055914282462606192488238145640363525050897868240133499538126822974661777733173823850871220968281777305659816003762479774657421401761670542184634432703501292114955727245968364106423655506780026339074900483904705500149903220282647756428980239262775964415050155004858699102872912380829371973924378508082044911164377740934744939218205474447914519082555263768071909261178024955892232170900648172022819093125308662933676920524103170857743868480160947054365473902254443014371566263125894126528139778925416489436427408967971317821354745791700942171124866331078217379025881090826351408160020207698461751197995735069746419461623745858688628155828332508699088938251240892929932125770144989875814777961611370737253771416239241332720097416941657260236453264563314989923610875934046097904402721085646840283143927389899842241946599928164318255814314756821230111570276253935837277725105686180083827362708983098766000226791593810452179446513919823826189454912858946618322981376581292737405601627387921834346939939035558841292733245127877222597755081269638561078992779392016350206826994674276510046004202850744873774982279788082670616002197179168429322223644000927590793443646583822693558995038768220243210571227859235492062864516656764462228749697106814395390184657102273860982336269219738226291464246173603507003069857354621292787006751325395335649486828972428481015802837196088284935168458651404157842013811835941323140936769615170525298577872587688346184465793636544735420690272505676770048587353239128044995511076077926892253316553361411069798939505426285220387988442228278358292108273424965186181626923067004350781786445034351659302669114105884784952437184029966048501054017396218745965761327581104859179819582468826732760303957305138098763251672976875176899481587536279593570160639802041877503590465977096624415594297699750134847912073532861237133791503693360738184289425249114584656763757596800891674666236886118727578743966145526658846982440007527328785456381291911182655388096059235118342863460020906135230931182100192429593517150845318321025502706075494818331373915738682587692548252022613056396817591682391251325406578629979226619500395379792643973461456262221894253032004389087817975488940956687823567852612002381897388697962562359980474813192729227732552430429885367300485352092101845750049621943422760186103180895633008611620097864750537477044602796376189560829419979424311076529691252197453496948882036304158230829891749615619634637895080664349750877078261542335068613000027322505081119820439990956876478774721659150645145577892981492499270315764685286327885669877125575461751705527204648703986423648871113169141898186866617088062140377166521035106405605448475942029912948096133085276340571731170145661030132458288689778389466373627045705077501313839937564784375862290464149752096219156649581971503202971443213037848553429178113136504593944223908154230035609097094279905151909505544641946411782591549619317573862509939738450189918717359206155741211418890783969558603343121182544073817878477247543867325714213199310836255972941423836997362907774162708856002081267554741476466826705008217787582276738748292366916419716620748980616628342094632569809370318222496258205864748711768598324791465558154744296798250089171063152868348044642583824511252140861743728569215456160218334113697695207444307412072897010545348732026631984384082479091754139676686094980880287650163912396250580216569283558800634412357069638279551966106672896428167631978975736214753707776239309458241626300724586327565084305834661583599663191169913430748380024945126664882398610566413694580656611102584390533305274381112837601827002828605765427619662110427121027045007089479384099059640069475193340121642336450869155582894066999098014201102003127400037054064411570550038800287696088451004533374976240802229114021804803897059650198631738504407721124913832880613530846112870583824507892345015851617991178775489366813576350418732169011933103530353053579369092319745690866484884625698025782653397807544333771837105569847762145300363601363223788405747232630306533176660608957943759272617856587887350931580105272732012931675499611603161705888132912110501510705957685546618628801762693332563126692906344990582824738698050622305544003884513476842062629656033576600608605574182665596203217046900854638371477134333046793506494655961687178627084045835146720638577740640567181002852207911419603889690249103580509885140910530893041578205457818066907063095057699712497850006038863670488986905396690314456911154935164802244117238108074970160667470484168684451257930638898406884234851378711538544043055415179616257725284094652303390051638477029958741530515346856868263654219715484065880332620401406311680179177309231171394588546670516734845622561993984363247370672607366711554489182004491796644853654718550019636428769800890572828455269859925107567869803525503205509236311876238082337232724775633618217555161230125480453072264083809595138670921444275043696327127696656148109435270199624144267087285698540316317363771197470609712331405678055616787490989430935116673418561605553335426148257397277764676633727243679878485106097773606717622184223133180904568416421105235952959669085854912574752980158090319334031676159073347326700152290188514302604879733878231415415635007902309356791266865449670243659285829140043367574299344036657746187991280340749995112577715225472216008188049532255547668144344161980911710895077456094586473713758779731535595586123195948667444356383981853690242503372885754774225449331492686671704598675158964474448508794179773587206613771514930288341521511152076681342703354916689296081638008081543837717883345189986023113753207352013417894481202198188573776262762695260474035823676619830701572016291055374519611777736890564200438079893420437501178074180039116792643536740247158799505578198910443108937734953523963448186866220100954721666743456016791149457965055870056561066185334134620967486198852443035931320828272835841923997958102148464795833303597103588916827414725423913479933453440258664171332588335932518117484920636516089078409940864315901477533488669956982060579559972999176674469346013518475920573819829309273678198718217504083177927838127796125215398222802105009315263944314760441339455628423728074061053213697037064176471135739163758638769610147388682801500617933247947387204250823885968610213214559426883929441768678908309603525593372301748041101873980867049476653360488412290926326718359227842734230405306598827260230130909205350221603388916170418509285505354529799748906578763717098745912946066507497498590028068724353549888828895289594291368437801534093652597873133359244347486954777388554053182894964474000864958766413367401700978416925599946660623394239868101596443548992115505747523627749561398005443485174224254656978937743840589274504373491780272151156020784646148831434787591759919154784068136750764790124805827015098410643501468137245387241458572533493194133720603840188994166780140972253581843103699227601366290453021603297153472854903445922475721670695565980697504019385365276518190439769532668680413305747348897150489278569395266990154221035440011114330980343662337399431964138532658190259949548968379907762892053403440416563837653775995860461950963716855130028129288582610412317371170320272663061194225757416512648924370337850749046303714826462267953931089912446599540313801024921707181151912611804324445031143168820998377303765240853998901205778120462045354962885980355142387396609852212626413366952632979824905132331205933700914349818397710951765761290394406447550376570334764096575906813672189757730376663595435003515328851886113599530478070123371399937980678726343555580272631242810446805425151169235407331389940313619499967586054363747775077025971115567102727839048447571463204707683218476160472650764834017877362547331383486626318231599554136032184992095310531028509168231365927052149488086322993589208225800308408572997140708608036330904946924736968631583028022927008069311776672392224854695505870869399707313387988086723540491023654450986710100016440953169665583003161959518328141260585792046150958568839519861350512832674563934910791762499132817840192027358062043201346259869653043975997093218243878732071311096780949746705470060432478519569025426147139879477402966417643000932828579680801365902292026262210330858310249948698739419916471293368449760283020672575819636839054970239222795363195251476477250933786550988761629376288458238484725041756770784458994178824506365042946362588399128020969162215709307788004435930964665322026456460030531832683700528633222513078329768246523137438427245212111243539159135811223171406214789196915420582964485858473311792632012785825981211568832431081157619554604091796137074678321769804430906452621510286088155174892935797589947710003907602106417208083022256500930315525830598666744702864475373087711887191583220779205851699259278600691125385434698470188818773950285372974014915037961425973367488949734836644869974985673965501558923300730738957318291724541381169936141888537287817701157488907494314040389911019126778409550231024832485211788847958438597056414980832361566284809721771874907140328231464524909550927216071577429983789064544221395411634619232002000122132017188912033402669548196304265777829185680197794627402019920412482426874448914458726383337429047192829305591257614310500277405263883670489856456153354909993944834938805197634799360784416545683325742494500395450922493924464412522667705604925114666479953790683807882126442744404871760057199505428208131889853061551311341772468923832730506776508885774124410200086451330262761958607208685639978214594644722857576482357173917414321594810741646651614899188438469222596953108587872839420261060796725409993768620935047464099171951802620727023701900102125083326209827733146326788835531577256348411575871857826683340121206258009261813992764030164713855649726579592917877049762625207516992686587419826989093917585880405420143936157460155991499962058938315877797211935324777184909157213297533825257372585211863935970460403412170845572769813612552475581684318651686494843336547148795843276147493910780722322589727183175637506785792845901017908745874745132061478922207476904352725195769356512616735133992365711032068010180148090945319767196532401711867049801031357820729119586315055302994519342177085158450045185594646844062401377172405270958827412211915399729344713008754753504571917443218145622148365370886287651606642795761312712565672638799849575085670050933007987353126234175694026262024287102113991449533956171440726430074795959861648068045074033771708040811840419982913706734274378954090056407921580045151334760494911143179543807731496940307698478057757278874565161866940254052450011843221014145865677481969270329108953358966352163564695232289784744830141246438668119540992260150998241056123094772916950295246676233001442943511011277778644309502650091572314659899973697598151622850950793692642185982061470624838451697107845970808620554573902032348504624839838850373301949555723304266284600416885781242903803614562174587703440353312481523739488557574039655387364072855445123647506532783204983138187333501966884144175518983367376113221024139077092255081141222708927241542030689015927927529172289923870703219604355952956612895798557815913477056592798205986505371457157447029046752717979599801925574146996746083170010860183602417111246382243185249914961576829107894086843074679120021207766174973469968349908449454934458581234970379865520975655218455794511681769811319220710700437907321230705388038364476905822136081206852291785219874193205184551117238308337903458733703869095357318608239780180811394511209686712525890851020238080200817581569947986869980933538277286943573091187696776086756797260029773989029182606712625190724383404423980727066664694053025159086137305807449953814853180936658835826205493449156856220483015537770116016250398970544114965841484723476848591708516542188255196334736470780159616661979396308468121354271863743771877462465444493120255364167945647393070500099287355153122896866553379622948731782030045633799921383624488912395441120648101224303737641935071582788308437241491126024140400910403821568988649899872201660154524540769809995248950868780087230493437137057804599542579503895332998981652828220902401381391892477268142058819598352236755991444128041220245521223841336522904409833338135106241855659012143976285376621423785545033898980864192561781267069818826080890209139058238737234402958168371361811697806724257118695785865401646157288176735834031769911507225867093665765426649480858418280960348766086369073926128633791057999847331761914168994438861303492185691530840390381051361948459329047135306391716727725599677191279156998534105151120634462421673072165546488137600885167669115182225951211279795131300082191880534896597377386400030162573663322179703354007074042611215397328879233511743955353285615169708389255842967629345600351253546247799206440118417645400162996543404343168564783903955959111282908027711732395184149827210656722191842967117507403497006149430954407435636205151927440227768164190762854932492616882010027101543392019768952491844540268819562355612043615121124148856564478572457704236516395482622613604770380783850418790208786415277769862545402793293885520136019718292802431431750211051904164941162466918425829846663695425636109806243629932404097216642030248016005867577226742427883169814507214135750406851517537989937463144504479929537235180182047153421866295277960531524480820353400714847700391934403064500410844508894944568396693745359903918215825060408779544555961882090479041655767403533913825900150005620836371944945185913465091157592385635364264529782445706957650502854494616025409875583854126083464453344171127579579767233397373207960326841063179176813860428530048628762466405606333704722180157281165800770742544378624750996457878447554647786195288240488104711081575101635233531947602630072587174918185174063373231100972389340306395570060539978111960641335973007315147481088337846577657811799246184353187360013147993715721452590921478125425914314239693733858491381234801941440719714039876575763980546031303889031468815682583332111375957689710283202486992957115298501602838443830243178770447875752876087893870709676799529819327914592274887368818319245375925427186116351403245363339548424962616527842413464794660661920423876258814848590689515301346278496663491968283171579232649664994203543604917759104565236164194424379442449167973491891360387390989047101060891504638493416673708651211225806174008664230294764095913408519079407439649774267089849955985623575082445959823602000075318990925409896999129997507195850289718299158675846926056560568730395090946287181253172421244929879636015020868572687322855640235808632697054656201433170962903338548367794242140207508559583850819802127880895281968524900038909097061378757270177236907032054779085662301053026742317038667001630921735103157948981057973465096351349282064575685588370856584453154760884208698567947697449088625200418986858150736018973152534220664052104298926745696424552673271125174287142570748021281681939741997711688478415303717812664340394984876954310248989780847037647667383750441962697583160313354389541747889310331481274419541168141223609736798743506129967302733328928338187039222249810035963981905990254183845065809926552650312589919929067750423934412464357240384385700264743239977105936122899119683251774074024284349177912742979150879486437270801620643635673235049379125743840896188051845455327700162437424471289398065221544807829837334486522095490449056718367121150990078226560515239913472973550974037210838938195384195212206930555763143276595202405385108251104386043729244402635811751068512584639744334774998584133329338686764056773940346826352347366757257155671527765576222535393847499558752809442304848968586390093913419562696022496696599697868501833576749770428872024073946048661100482614790862099034763228056090013103013794475921265006527743227669689812350764661694418247875164590207428910263599270369258167445302283212095839617653031924131720471307109785857878871453220019590799807365248748661148402934759652803104284885104880569033733659356028752662004388632154033333134687241295332045503427961978966731692438988902720238253295300291986063052960752655800995235923762656314859240621613346690509016772450253596493284875271083059218553444047502765595640138978733681970094226017361591435338459436603796987035363494216653882699526136719406195719220668260301360983346883035360718326502938289566646196786608946620891142067219546980773046073120677774309361495195671972467393892817355144235831729636580979566098560695847029650608310000271880797178737680291256781705894876984360659305475369878595378602149793299379436351625503319180143666051652754618534992274009277287104727606554284227950249406114556426555907702934772713667233478064575168913277546378733050283426570750015793923896207793495067000401977005653153575392421687545874410543932257899970437926792890228747906286919775657250960006223144521651287325253758933060969725991637504826356366079404375281748958396750069379053399149183291457272488238857960174236600207864956782121971134856233431235009690870344148333154633684552007091619538998992571323631542565342813025998684365974271392125743241166630017065370060797939597492680074313649388942672680847398287818817269681362666645259313692659310484228196069882226746791402893712591973679418157248814626138262990678978876092059229847117945249630115777781873846664232022902818719970904301525632117343662770828264182549920569556353741111247081325042569691141090313711199862607087317038325287948346462527102753583034011037912345729942986444508975355642097595439499333981317818679851529233523078421256500235587216002216151861888664198585586193334333258129567744849837658605309591016370043690879865818758547531592655500977221866576521292565824777745059136331063441632925643795065095095379275362394765445077756741086486366132693517511940901358635273436274972754512868526115104174035811930256407177947027434591988583886400708417950677009590119555556382532096456494473056507751880792523306131686299988188400666932084667740840812373690555302538777289488525099917002402338041987688390734356421233171438144963639997090053655982696760159133240489790084628959354985127715539917519984637780819066673334845602238475087052774901193199474598758939856843676515170241271286116026772383043323961937171863075611440575764295269386890108926242220995502111438174282401331320344267011015159533716008519049816365985424682003116542631899004227357188248170304405065665290485043911110198676372347037520716212128894193874497497961949840725959610760943176846486001720692977625744562115859831632014750742321135677484136091606232776433326099150715674780302088271362165643558842837235034439119675808069915804584105353727400262236756200235946404329570414270563299506378641100645407158092883016407381005990193439104518289516277831719042183519236470264247849854831385070951537128524463529687668595437784566925001987916538609924634009335477718293379594950086306823014596584016859380667467409393448609209469270671738039555558778938548011303881801363767531471893417771685437635299138960445803714335785760965532020627194069734853033995249559228368165637819155964757123047664445416736995506067742175869785224857411710173326072840155556078526288530912445289828266360132158523393906664036410297813341673120555196346054618462963021869115380619587612418090095187183443563930077069834413425360184676875554134650870551081948518139640427470512520220789244893945350447440225830668652218784253729328251660931845835591817879567186207320368604452867630525444986513351567023700528714440535195822983372674078916005853893908105013520146930175826984245985075277716222576548301455714505006853756014870335671157666708650890726483428193520326414370554148923600339772088265353744528353697994440995203406127901336230293784619904310913735347824740862690645469815455134160925511092133500694230654897665357108899298164716179664245250563056548304269185264902848877863611479297805168230505248541206453810391214249431138090451225056409692092728073275531413001764151932060132352375660635645606702662095479339266463319153196265845899246446323460156089551653873390748361227557485307453176106220417287928785188651371854075018845505290917315904978151956230529643389478876305312178324537652608488964136973536383994690286422012355827790339534195658105917549601409490101918787336988293673281588036738979923925889119306544641273537609027620871205075750210433651001382124162691960079306024221305499874157540959232018347229439171655162989369877993964135363547656786540634511895898147181122932924916728377592889514680010935291439938284464994622105811551205675083921196378254620115965971279114160215777097529492962361060115418449909879941025512990577251903746992458153743775413444332254656225484278560638858668293373476750558562507280541237342508785693391384675887727302323882478575639504746608195431278058910033277876098547679338488107137436236969498488366918690889154150176172391905118196980603160580538247081371968307240184327891099791201800865651962345515012524855289000769033655768282514152205586433374469277586619479834992710499432085019099616429108916072685514314211986872186051632307389742452901134645006583113721818638774574017680026376770722285827049858528905626331963542163688987889651148043964976892329611334147741168491380393565472502936279996441883301867554296026090864456965597255608777189125403085034035285987020079220447590705502988715586455210119558676565498051346576733660099797796761943238852512302378617258805392118564560227351515604899119167678544500303179187924011017025549538547218005832202158101892917871325674849802991980854139960893442791371513603265031388817660767405643755421026923064144278388265305708087095196232487713924914643932457435547536363887093681213573979634383920706359371044053360125905415818465136114861089997980360433520309482307978701695309597690468034981493456666114380576904777246984961726414577888228757753981836297311370018838595952276300200978379490484633737052485877570892743808617036694813356019988018625391425015503946843518602481045744578181890640833604254981878559073570859241415845227189953192059174304299495856309560835525679322053356141403172724485028730455296250589294073563398910319693508972120000833289135278413923977005348684620054470053735242120994855384648452071663613712281022236086606753660245502096322101848178521466274363798306254272547367292167252204651573149670237741442264767632621782209892347190966473513197785834910205831144340060842018097366279244767331116355708175071939728223535908021008753192989796145664630942971516813454822713083566264914546938977857555702303402524008073929821256943158359488138593501484128001081359931713037229380328397340072792070719419483180124450108941009696589757234003395061148959007828999777894578829861013787270807671321640658513422884806969000492287786080324529860699506431258105652508136887025204199095688641658582333418775518073645657128330439668105123680645519390822288571433848980751236061711457477201470996145557907306132561852288211583227791234322424860612331354718898240158955082906794494289461725478055980155252619199833752294654340834884710149544559608647476645373176787256641738780855185402890614853409156840242845843460976476278743832726690535757233711410349850770963064408243362556261119548261389922764031556100628790313191324542222618459227742267919440132069613578582005594867860024359514623880616486497219904768176867247114221176078519210544211702732488785157099380156189152646605353919465166028491981096843164866734044325755270067619131517489650136861332512675720622344445549804039167479878441509140424911979027692246425898047632401626167537916905996187796843395706827571040847484685281278694930405152666687045560151274643415426076177510176199055135262030741983568545184217726173155104683071056681231670142131207997711367796135686552993902877718276251421283576927817359166240888501051221587629154428628413635379204622210047746449704075741834892312520163060815358724261620276560414240119656554113669166114654808251183518696989339741824482376751676894528373585632597920673360827333057257823020403279366293311084427832536304663382355807047026403478809735864362454709061396137701451714467619639271767079230598943796531994407796896309614901675625647697755788343307893538150081363033898797079878034474137077999445615879871850659532799096826092750277754670053530530868516618537620839018498060892819945882587302835645519254662815792246514386458608550397435776146753344095866637503426845206433846281813688239863122373443100427727095729947651656450567257972068377078178159349239609187056377428415249995274343937615066796042591324631618884667802631911442945367752948908378879371657903077378529640923893845874861983299616427510313456339580360450078947607343492648157987849645045892501892910250306044305623717560445761595992646197888689453135736823003697368062918967102978988674091785615576337436950629725901545678602267812898290655903228369668281341770822313966521549707297246211805644377765076244516895671254891349454607239848280615470160556565059184108373733532817400056739082902924169306055627984393382265983117157941508571206867842226749555998850593722330987641950707129973247264064229209845856499958638449438490426454081521373229964542893895030240599451739924770195677913102148625218282443942537499035050411909674608122319882068584778360828910305064256749931850070369317036683608295959516351420302997202038632961747888454113622993391762205184924800806840500784698511934358300840730890870373877845415454008553782505636455661983428383104872947335109193376945356870784050146703425204981820577031308985443193026259012922792522012433981500375672324315823436354712085364481857593840702773163528386968692312724779181986327788860290540266032229107678888830191681413358683024414949056574484901584711310974490993501745873627292553300062966335189535770644050641882303412506844114266255991353863129215219815239428759560063965644713203896405134325780862601075107251249294625381542721625762270312580641585030883535067113759833689338758706052475998445081652771011080834300100441367183521151522506924581882561708231529078681923049453187363232549396945133622016335397073699294411189822670870180381522370334189546663702099713351787873933633575360822137039481838221593816091752713143208817608102261240649203096762548117179913475392163515907770015738923557256726109921484899265364120265119461986548836984411869901382097088527977278454989739977766268389638163810885549233779341955418960510970396227094540395890795889120939249506657825651446021966193837925023337310703926301972505338052356810220644414032411735926945161491761473455842419545764160886281684700944667658720548355295156163604699573321090445830393334494795436381776241050117029780835474798235015544416516944022646971282557479851246503127679239692619694649707694630525831044660582734924187273232579097320350139899363701525241601245617764289397606064274171715864350912526251320221224532888935127184966422544235778713055585958077061353977552592349845642061918219357089600498400549825432703663914915127811622718227479333155232756873595202389262220541820503310983678945099640880231866361874226265707119350340591179266875127989678736905601999064599363807725769584544432281758408147743578428716155526776825009409062065099312861668469463539438950125406117375068765139596499751883649167261382100532806733342344340415498079568800461836402749328931333300419967197416375547801335771796937687017314610769500706120957000736332057107099986558850236463474644520020537900508651231864039868673861230873753538205065720863736768280123065857506702281282954887051948473442646599767824007518426137826241347363665769945442306794318979981335445278989715591000731828839849531744241929699925719328148451379341291681505104972940895970286915174279575149035176734728723337305457519718176900885567451054864354986267980318583846248157559152189952061053395932780191008385088737099316253695497702410944865036432752311048130049568714725917803616428427014451982229086793885505930404155802027343694082810408987671105445788014184258909436005341496318300792000522956514589394980655308020956899742029138647325441682913514810847613033285616288089996424171902711513980641657039529157909128241266598207154408565493837881972642421650626022382776390138587319662166851997261586583432309925063086869532280075506648963159901272040661798212558866943333149499533039329899627699247962793839004230462715222375550585841853956382071447400602249051985739257756282708346922647643028412027063033187412037863878924216827505846439627267702492725037589584515072075370417573909717378593734947890761944955992079704743654248213318420424761850834327789982221841582011890374626457217464722251608963173827998689649434627055789024307618278456110341056503063694791625313605721075439211290422441568899171599695083993449164033006562591403203102075623242200759544763941276294620769832961554166365556582753035839153915272330311907188643675164698647720790232098843628193352997868827778534889013511342415068781405577415760730310959916492702712530442124086471593937844354077091450625731510724961707763694364299322904828561113706334666475883763089140513494119720998914502142970706962048329196595698272555248122509171561133769715964427402958607312228264900154702392374009391104260668789804161430573349686012818186458749069352829629196173344567186593831305434509846083727093115317966856269763185574933745674515866306859818645927702900949221458131938327267625261542869963824865143904629040424536490207198081373120305701979775100884800791553760797037405823598591455740262334588480825144228938855115874195538712799189486043512112713872290876333257296492854843054551817906481203956154635893949387184956858572897321071486918178870382110340355779269895978794989698930292728858427238772264839644373135626241595790349898639660579541672877383448317507566263711708061779508681646138930951844346097939473004184007013567476408247548685572174945385070319146165591788555599649006569398205471996766276672226373127945905923656434723055566503026902479738272845931535246267654756402125962440150486316821517538748933265073154083507566299708612547036516147497181805805742648661267228624817113801241383995676973361967034233276496560565228568249499832220099851645639235943349708576680960406903960805840813726711791918297248904380463864209974041564048773223505330817784882344984991349983388537508234335531473099404233514582462025726377612238266897433113910717336342011872084931301209920852683755382038530820727689426154326770393222548257527028458479004984070745210593921573304812591662951521715801469879348420106596626203971842153878118654728742527328168645330916843583289949098672031291597911892667279580311997053054907453287158637770738713036385817485007015102055638133090702542938582869691800039915905417177927562137390552858692197956446309727017583506019234236005471380946595628837430667042388230021400382172784367978715389040264183154955427599291156893881648680508185458492751445770088327943242626251106911879650717838735272594021007846999360672842172714938550949594870494435222414672139990967455652746432506312020968076443272056312755837239603918306664376198057257577280724090860126690541560895779759203422726867018882766456656870300920619422352929393362700714139725358834768972100651182836367210570934474285567530648955585973624426309851442628731395205188276566703743328412261876486122174824132766614040040609398493531325883238552781163238050619249441003498505401359339664151711069484209931044258762172079794061890417714159862207960181714030995075729812691131217224709466276555676350754977419640429889657969828305396347622436611925342776099874740060030761686557589799331276789318004375072296909878680209357855399486121650663033263788132165439461693978294776198315038749974743818605946320817266263102757626563232999379524723515632057859227186116933414794915179350524050686154832367870480674855434521121790639856667351953076291718881473927722531533265882044136458476729151090664249330698914807571206458525425124069203768541086644534866701352688507767284078721357115783442733444581934749674240665776613090810142337771384624380514758086110531576079396379527171815562549975247412923263074676820252470715702456523567786807256035398641446584145237870963426016400918102391647235770612257383011316025030837475889528602104799184164939171348822208643005804670699543212464345257598648197516817533072399517885871215643316734593602212216447586132739483907472406095412205439949972987861341022528363829239852996809860787829490051391446611867656085267596941011893515672439821937613029614156823827294769692208644867820728079551293191261077212279252038200545539167774788203255017062563537539615954108825681086264849127146084322548703517752657631807432899134135020868020174137741504932743046310964917345201929613867184253091117714690648808949247736716427481426732310593479192116029011701022890459140233171518975488892104391589124399160221417780428996401551462500260661590471749654009911745742135194668576797041544322715343193225658464876704080822169703660515046010050764789241242661526789199216812990786752664789187532027998963305838792280054176218610516801290851095500951685419928424314994749823846779559447035253699273953919626190274223397794175928162432162558979409062966735986314669238386446642064580140926090238655395577378117134491487958731400825654208528250337152599084987546966429757017061293054812980342461887982851704757623978673929042808333538538926632601715686199685601621492807174929410915316039782563400610874949280180928383596994817897477038991292481885954709177047570614117933354990482101900231469604434011834969545565919786903096462573113315161625526303323507182562044981975341928303811080332298563509052374085396133739330502908950217752394975134826360051573991951208071365523669856203666330693622014390708618488356286844292235837637384065839850387650565640854138435159506560532386069081464141045097757974408047262555619791433923727735658303868378363204243448031798362394295787848959138396370342824446469773742330443709779423180746033676892535009563669609771686329848762146465560533920363540895227702155736707898967974048277271647713301370834701815669342988505633788763739475240122027775746458604215699298874043602621013503813695587618524203689975009076552048466787642178080221367495802435350816706631477949851178144748650021995496511596051214047135967116136578685656569803729015293479544046566217444454291843970053269637322111524515753112407651419684097775768581682823153303731112227527225685834326399259117085019713793876597181612225708115427260548642688076236136714732603522563212433765814861110907422844922960092112803134748432077996836057519090289785718377084632935937288461306700823880555754519442686845740824792729608003231085725664169676987271781870902591369691190247358810844828937129056144071869797947488397292840111938795920959885720007302068927756360168527636169415348802174988002311070338420060093369471961425153740458220735202274807991945607856640203390675609193239263267677564118526706272315346006192232505487261355029111961887689202073218289647293777291864862489820615985277578062719525657175851283941957258880860891988627701115051559065549794078561173756347286899200099662237846534356297697904085608856055286254987710589106725076147186473701898148929102767882729200718644564852051271579567332760923399434839588756380634014173657311803939470030679752379361750396986085874942725194942675901561181654265578897737541303369844764050778650136878037689134482702202410504017157742806148600456599616218900991058325252472456618428322805946214675790394863822573949403144431542728407250298240392674147594107531687320326661927300843630291495356705778142964759495013105830671582136202460265673726943855599060551220156733114276190394694848110078740624424787129846759940818139989787818258719251332944238847765323323863766138987725184719993604684729825396299687181524506726223055392784958684667415468017546440014154914654041008086328961575544471281709582497307841259186999221073826424267373169939794417077603353181968105990580287454666164393659937239262940300577160051934432104615158045381887742779616464123516885887034604071813504717474944831147273111906707248360634602816788474642324697757986983840339613172033462724232030621017405029899131304490962868843256386743621614862407053321325690863247884710423501883789846306753384864036621565755216936477684784878112827006305599597499253443430735408049543061306179518237905069977424775756948276558344902597131125561882155655995795991644578136888025109476291670363672886525642945142228750462691694044753189029851756564959591145061786861319554666551239493941449362052487854129544232311862221447043793463857572660766524528312443455083038118511223041962596507767102265539619563384432277110467364881958138179493418243479370513586522424719350298241121491629293539713267361692293287762771552211492269705232885192557884748702609425624560981466537371173049031631820391930544406670226764600834168960621520876325362219976799954836998375032453545991805947825905242388854581374545496595232830262343868818758404837520233523157409061510038993767977551747388084886215651408798770690244119897099828369156122285257387093288734859641385264583498331439730905229814443501380187963281625745420978963836003114022675670345222724632986971232256069620750507743485594132665390937008841921244300130579237910311579714463834967813495264550236742212762414763319003009999414767204952735327404094377339054207345680103982047416707574890108988910066739323681499500050074935914545290834527776113331010098777434726011845348402975983470557882915644489280364075232172764766613125029836479202904111015163817879655464126371638354066392796566566046625639827499739243165062354072806630556764809825466311535067827044409346555932741660566276666438447979082539829748908540163665248112128130335474837440817220166087954869178803188748998417118428322317721474835764295480588523327619344500379500658160056920819269514054062073479346049214394382817527789356026865899417410548823088729872242807004695202327709296147669350104027984557382955403285124292624724660898815544970183020720272010966818256201634313852680523204588889954671865435996147241594215311749747645097615649518497032566659660260139712141071676248734220086827971148519535780276574688594558258460945326900474380769799242074476442301493268193840511153253806002770413435229525031607364685310056024737913634942765701537166635043306606904332658679201285952586804334816888069255796371636261768114739585137132992473871157844628685353408442367872319236943175840156647038930826909250730960763405787541854977816370708784309331471326561207184213190825865921220814514860011901621359981741602308454983679637636575794847551474079140283694842237086742864320955444175155816295637423519298127881649037064294369346432983965919843048543216070929076057952760315882258531548053011934393120192763442835119329530273002277347250047312942468443515361809682481858894302856076349280056770815020591661130298135960952310684291037811507782742042169657649382703115983036822528606502737300183345391742475015689259135977282197215725363372646374887056069221247784043969409255536793278845392530253714446203287968701943258717376339582814534161126292032197075414759592442872325248664176571826216738567020605626918532172281444925736313970110150403734158804645242092322384451810482929629921148016403909722347964076172111066048379718382226946965450135126892486712912203231514146736019548316803477295015472380971125288510124473185878821211332700756753727436535313018685756785504968565537312702325947425673578901452416191454302611457307632891321345886661005261494996561271577636655862722968585840919530388722163813667160304324472163723533427746689898063344498031497813238999870071589714622023280145874500158166250700704901486635732416526033693771493323592374537546558644204721808209492752336590218014412204145435918763436076647525845567462660505114697341262253474375736260591827862084518118635334095831830871224148176319304095776206695078139208994097820761292939439179979790539738973076727613356292397088513636884187985176131781937452239423980481144389897565232366766423946025224202670061954117127075914922060235464267221957973544856038855613218654479293860090417816680154025401646066704271907101210055924779190919227108410875967987540634452083949378749401271163315054930647572871389707512111282205710378928663115862805182043645392166334920461237590957576252726544279603801752301140178898878435897680575447320059210189604799250086708549877185260280791434510169686003713855282646425028644247561277133322937553608249816036315789676837881015066373901303300005098661902221534294300314783737534360073651584887621589473579853529803828426767816918846762546653203540078799569632013697739378976327439955389469970905389884400114910313579469063708769361862145130044152420929554104536959510958650096006461241890109691203172686197478136368312596696755186773146047551515305201471053331270858611024508059117996897220093509244918244883481941332968672501659035485837395508576581184434727776785205006693265827060786099183552178989615297049347993281289627160048416448724045289987602359298016382118287270497245116674443327355474211165230683416242457394676103318185241008535719335367183505722017719817621700057316521919378968503734193644981588794405131814993868987690070179358466078458052507963796479580282136431713831974338157683402887789089250041576491719584096641472494822969253749758139024965673486857872034015266282490164113800554944219181695694421265664104166186359864545505454045355132064280537872495951738223532953264415108424386086191534921850839673916434818261971931233206089327187830953769753066531808889344722770986984572623953864716285687811593114287874142812657072716534782426011970491977806362443707069373803292369288075539169661804607668451159163237667460520345900457423426744654589794031089103749672189103855183443495263775962827163156520695449571148633898218577651877724993823920369932638929502831135669098622898491588594255466793993261135403149922749859136861938297766229523327642277983334842355783605695759062674678139659183092890570486208323319210366448195768776756339830986159890004716257125755507838314974903100829385880165894662783680681189356380052323920748054334523736172355813330752675923086216174059824667357980554638675109196596916798483544691842971776226157972051290570664389362854864975365701324913507530045920988499175819585882242907837267291444865706896134745464717025804039144661920700347130038533087190267647085301187389101069341482511114564529350357069711843833244057232006392180576131792337731429541381373869605427095499731142017012833943553446281309237888542975477100997709336635235163965387926501914285910637838958057718397725287393448575176828530135873840083571761379000184458143798081045584172742847357304890963491747101752682519522643472137776584467004212891311874497812886464847813515175592617942753207033752536586722972874781785373336198079491533118134796199956434843582621484464282893389283595741507835051041384084794139364948141688377764032971172045451954951591258654880870035606294232939184007763493687414784851729831759928892380602445435664036844441344983948397188062149576545432444508357210607632004792140025086280662907862706018821376714986343493300566441843337513817137945092815938342776856989386850648992110027881560016970482074393630354480292437962449241167966985627163712517640250227923048111653099030122258624986069880689347489834144869980117302259369276646969363440414511387988483455510225393763007215157683971482843740882184811472422644468810296340132528306773353536579075447455602060503446828515150504281847728077473205016629928512203960633045891616062482335679128154662534133313220584631117615476763783044901981716508852722175351881916225016919465747769455247952781474053929242870299948774648857819321472796997530697281889412587114246729454562937326553300185480006408167531648104944169557898370478727764414293929193784316626119052785983064187986911199428862336449971841832899987467987511981022125954905483182755921043844144341635420203948621253816042049328075797706300666810345186423211757132092563993888850473033406778795091920765081853506508949238439950639652450397454797482023760901559370328606151298793851295202049212695670633780960120344044520962604091600539362582992156077689387623006161970841495417930082200882219294627617849446167331891583653883926745861202776535788343662460687299267988229743388459069313108857820008948198068449600906307566518731250759879158375737116693014104355681086250802634579166221626778497113428459605139382173048140904849422534743704971686947446258676177451322277343649791434037593262675907384266302224696688950044508396144760061866020072578265746403422852167430358844410720411644244567682184560271385397520300343429923495869623570170434713443833556645291700299349275905782960367053369818498679456317603268864405171138496059074640079889243688077825686391077213076010733900982121469268914280672454983997871232725033265743130886436653736396354142705633670205155809978018628581206731200577988478767384019563080647760710720219785907895126723660217453800948467978787488540608948713297310408154533465008159211118618463921133641834916728901273874482404048944231225243772299802955746031418305914694114256316359328022124173893977398271871427298351553124692693027914246879765213074828769485232185381203819741774935147729370137651196897290129576978000419400781789593162728094581179252693747131565002280670672119955509793751746523303076543853929166652654435824402237062606568724991778381023951517510033414063747964552377866492840741898531882986714852969266547403949919028263795526633749718918147697876710292899679815923068213768279370150365597420165793099304411842186174021776633571618442441664559147233223820669074451191441267550798768368185712215278600682095399815364297822698330351073241557538896347717658463667119762817143247704565043395988146283522572409036276482990090956874021820743522643958606373388448938192651346474841234415766934785351190469964639157053557287088061374476316929901538690323273057151219339519189610062659889279182566398829077559683104701443266505035334082933952862683015262392173105180579753680141963655506827215945349631402365038681788511196305751102326496533133175893698186994377100875993450658773669600184235754648621171519936587498098420240513705615614798395362034595949824100732645603152478021407963003703613095150176667296930084373808589602799350033413559700832131091559965444478268695442506627548450490644428095205162118198347232700481955990536530128893471112238729952459345703744930891668997601961672167249748297887492197885786345942518121602068322889674844339040620824021987053764525621548067094743435897447245410860449960999325502099573132168245275338680819650201143942524031977278133882998267997041876554358933603392634419893172260189983145524740679966440180712793198534119687518430655949937886275099368185105178865503769627477820566918118892155289044168478533461066001400172779831599336021829205345379936008211463363022797267373790073445974625370580158860411247726612209210334802117022338469496417836137919109667073220486836280738352391897087514926854463347930315979660855435291178393863495078662051965005052681963513784002040308754932671457268305309065490933063236197393229706336384708678791296255116566897589629701975257391719581764579059323796667444524384041115973705696348455780231753767844349601178855207919271882712059299809718432191191827901483859187906964079682808637340129726048421184098012802774207324916107378219196184977564541029848525200091682966994389528976598910343299225543888056316995414463094197053228252172697590983834655849215301881385302107333742163694319475035044189613700694297761230923842553054851144863095597175186014845295128535905893504444116997919087318281870160758028917470324938056739029651633497765913734597047640424218405921141291320515323073358532825892050223932521045158694211498235276707253934804733689816566946855647105961972219080718437280147919448379184455293978911313127317001774208183033511249454978271596925351997993761062615407379073409737289211729759021920487556826655786591542720628056223099617332179291551947169542160536645627372131647916540725783211158685327907139086724172774449422657966851376442890866667766914299477194802298684156984673230986221569717305217500138364334263263814880607568171563952426327497490467511774415433986982630599718437866357137320363498912713311307630934073916020497545422313660047207202233548329782823811183834629012089988728258681738252867741949894130466777862712445105999883167074504302069346646452860568329557409582302076153025089147406734347715985152891355113676368130931071439393011173021453132582208019162254571633294242138280432826640214610776117634313468666156065822386488858770192260972561892444028211334340721825111947699873219079372317605773548525475746322773629032958705157654446765096545141895924511373097004538916055567493505530759570233903161083387249759220645293331240145954045696127245094189301811417156392378249030913204552381578004165054451285674395909472226072648010721692559766026020157421752204705569674586120460235587823529699387355264560120034470681852281402388313371590705006208062946317202066625412443074375665392908572563225230958458422077190755700321780484730670192770551728222942452224783420062839080469364590733965073479656281078185323807753594278749943245990086271355220192759666370837654057734783499645244868724562909824972373632385734284110858622512142601935725414106444877544758540445072355919965829642992341161403672769443394203266037896678173477877686467700109147948217753515003532669036871575229830896957461111270939620747895500757377853506288935911749122910379039651092984914464020065821222820848887524101297839584745242003429974703501769580506527975266157307725842428331051039411131862713272945730749583938131249171364629381748736975421063916441977006020401656842431024891935972515969737168269283143952572957515528480500712954243969718222520111111038692788261234609167061639449835070713218445474368736710789114825330454109498216721184251407145992650855484323313430666181688791217807391752516157778018410554838419051339699095071763982088723779129001496422685117496833431410552251237941150665619113563483158238572149353956326756058587149879557250097054921596734680255320782153499365297093061196246797391046618344888595271735925419487758944241763442901143077570517771011175425973535017180084159373799769436495114466849788684736483589501578297061477283359169822725785007176341644105539171727969834228803697688963081398622831873558441024169857631154753501619154185417432258759329329917496199193561903015644050230584499710453716750835761063571083761564469925605704555647122144443571228870391443012110097039020793345901348780719084088377853903241462492945660170654140067819647418645808620227480840035914398461887111006212909765971153156498536710761245818947055443746497535894283136810570786506016289773862241537838268826365801380386041975481541180573338432858217232414562292064318065460101252884253777283757269277441055824518344894126451145179656788355821937274516942849224827690822678849046817096115250242931400201270674652601021878365480984471569640591048458547701773515357117437840954366933595101218625386226544620354553422303238193863859222054572856436603647948896329812167114929293267851064657740116843389683794501810093470753614761985138882287441162219529522810735533053439076702846150614735315646559148854852177216618522748254825926410428575511179897376253453179664716690905166093413521248769666898197077127955567651428643885228628945287121625770170033325875959754765503435785544465117770558702942477600321641766006601979054553270937295482564698787908300913063013098432146592976833784188463415845373149427881636763267679657746478396685709371056866835943968166048467125117265448696883230689275047859165870248398925333758868536061149835370693874769009586222169187521306261018696421674408465395758714721908093671279303090896776813643380742917585095631898420969273456587555982469186082178229048868692173665513735519410693990135632062344220612086241260237528605651308799259493550557984114789362445636660340196153748728495037992875740604480877491825381129242679479623211511467085675858413499523803845448389515786071654873932425086356073913601495484862727897137274470965853109199000468206979333304694101331799948024331764729755711201330385146966433814187524227598647798976598055687542455136689049284347273569559960962488848362678268166563638918773934723727223472805235379685267849845609283311369159606159494992237087481331520011113403218121360010876100199804722599233205889930265478607309130756557533186160984665815643608597899724297969662182750373667023101893228897860801204077251672249293322870574343766068664094477750905099067604006319350896309064325158781299817669317741576151136283610351309991647725938395698383135448386395557839752059424000418334964713489889902046356480156759350773445240361956404765607787952261483684267968791344585716656583147760155526249726059661068929374364979373369217601265705941901486719602407597832584557703961499238196757667684805999047806894424771767213837964456618086434246943104685903775545367501665738618486226025848026223235341880754818711763687490771883299593680416093183680414345611119909771107068805672809289400816541103934951637496701788791685021342112855477926991312348161152152208086808362225133619473988907507499119615702337365288479302017835586866239634174069235777267523658067007967318766342481853704672237719928882954647963502067224579357740812411049383311991412750409047359502193671713950110357181142333389892846304877634142730086001409108124713679434366192059906303746813750793572202970573506950151131367199035322121092924110383370906878895129975798143391703189778150125405539215973679513390955630951769561537720670252489036793299583930072986125184225472105453118573732854364306386059987628547708341983292685578985385949838995747831866990316952570106922327085100457744291114013745654919187926812018257924824348103281015539481793821517747170961907681063976340984326891601393535342995910472768814396118937933904980278639166811779654436250548948582339922962299228129446364899762364088830663606661903816105953366769079723499425298789750369332030610812123666094071930107119146584961279979045068241263273782364095181728347394741035556472431991204257357903822183333413282760542902730162808407895850704348726673614085574922923900464215606486556944367638364411150497655474580671988143747205216063970302759251445684130537991625815608194215318013237779842433219640002074301565433571418409883789064793131267673259366208761997181733666647552399184226327064323980001563323523466546969423134217614883029248964418237598749925931367070933635260999624917021511643486405310409558486901189024708117840693487119225208955360166758092550604618432619347452008084150629813358204734682915669663727461155181251003834219182332624005790246641241600147494950552917261738088487463198378717952216554792258040669457418892530875604128465745285355213609338166750383863395389678107745960523647262400316247495202981120268291002936209834685792963981587946086985809770294479870121880529465575522255389312844493294788642267809778026764545324386801990509885474268611835788481708832893285911860627148661364459583341484776502193695951950667738106894008164997164175927934974487599475141109375064266146121021152861427202936869592349170391129759983792698104538660165531448957270435562364744609305962963737247296892143978429830143851123203336827796438852353947308429007492244939170601690039153782000631521283081557724037440981756821034842491644791488001709306739408459474778241502131917424073494520467788115651087218127303921109596176556237201454108369444331150725624366233626383210175408278097990504013020011120205882294311496496619249070479860442545086452245106726994176965483255134699495545232630700133434971884133697057119687190208224008087451968455247093064441740572956448873747473284733331681853851804940463402423057948811835006531702337361172170286889118420361844138827152194349579921833204955837614955799903080927527747236282066231677114777730496763898644415200514319623247057074358642212186109015314110415939636240582233151229588487878757511501461888464609009325490682691102862070651098931694726421896514299055541208063683873457818486745515257199745305083921572639065041251156961472239215201537020790627732696636183971475278372574805194753142642671215057954463634043697035385649748544600973969119150752400683550846440276474427672283840986559552395391541658610353611056741726275193458979207922777234171438268432643164809176124503806703294988725092960403009465673892814931199996905159989415702955923170140908494235474530891173766890502763565340516888088394588285724655749852980367211360938313717959864735812375024691014489617283890188662693595650316835048006920650233391462716462228879818952383687238904307344646293492142478899535789179406564640410434927417540597037336105262133149607741784160501096443289040983410977107554031841862221778143927051902069565057061442200878353765975766669421545324874497157382743552872249674392215469740597502929378043412382817404158035748372092005031924694702827782377011355322413219648349197989108388185128395448851617373315845564528721801473578795153817650004161336800892109061464293193435041238686213832631810590617212970051270664474411723892415909082956974312566214152291958844082371412564857281713554569622689719783452519592446476136720466336870947498922382399841860755120621803054681085477507742512509970105687333878470540188769679677616467839945121017428282646317416810733640810887099896560779132622907490663808933428332582092010269472846084845605359653535910520914027618037100071469048603786419285109820578642384684500594801765527134021055200753926902641552481021623983356948938971646321445366757301871059976025731966291323425430352889708267768539183307742238074072549959943720119667967916228586384718671085930775689777988216989886891910135940416983640052779001430604883833005911248479763360565942688891489213035717972075803477596251862841056793295931534574267613992077466956253687029242192716313111071939526876755258196334615568348968249801587522653762777005913793052741747401737798309556259172310307852479977832291181766014187103408065527381138411351835044041174132711520390281774663340037631935923791871645420481378359648281364408934555087492903050690991036986751611460326285850206662405648682050706070503303327496456373837500757759573985913210212566945832273930428286628759075046181291469840678376340186115136546294264527492278240044726745502178332297753301963672328855566543273878993389913116950469955117969837100002698201375731154338700161321896625834520692607086037493259197500293555336828124003680802432530584689646792311057102245152811842334793078228246270892253568576166271181935896555561973112204845731911466275060761682307128728572400849168843034463946360429544014071012029698470433627477216235780875159647938203721694950354979326107142595531283016273139519344876351721756996687139056329251602723819174524022007979509894039081594045551454980118973987056698560244544761269952432796816675559971260489684593596178170704035698256924324287306444421591144683758739563487280383323060629004825622687041461961934233567463317474537206657634274610746254854993299992567765145468277692622082432050784528536472069370953318525015640404865538400418813103537126449959001046655862365921125399287712689895537746838238237354034536046677734761271505335212777261733366221367272257555680354208923709429759967889795845720641288349369414365148206615646546998183128693718183169553881236596317712250779955574631146232619002888329939329116791887962755520709580614131998126633151278565185605502549760542660855132734489025125244819660776196589188772632296828935010890262297029343297061690304603689431232105838361591381585578328970061835435290508863916771571958842716542593513477286053247489027491676242072746100677610468890157644185519984217922198484844059754387352118796642972435853140649173879614217432461086526321745172379892934211872705799630067174402092490432167027078013619854277765785496262146572184621324048193887089764006855624636966739328436026366097280273030198293507586395055678561092512737774432824636131987644312371311184444010836670813284730799304308930098359150844082496766199451748356477158383711038012760911784076393016629072959543241026502650080286067843117498480621898046629058556131353963031555176419115039421339517657879278189893136110880678429276361745805859232406965384063858030457839553174192850546426826061511562813943998435660026801282407576969974992186233165065117389953097113249316686406413144520936213877457914113102019820502211134244434439279835513177861762106745188489040138142937589570548476626080447918288026298672027641410408026443825777991015697174049405582462813176801754207815984266188491192926419437023910328413714992582408854586664906097780829444266848258193829357207818213243251333747309315182070760089711890670988384772942847064524670685007642064249645318975637013179347311214037013257802758772153577575425023736668618401203482113083976147796173119363092244454050177958829390132279863031441407453766938970001088197308622154942861395605655765425447632853076597543609162379448110341718258143231933843522150939308966083770910549606766350158886354338149126834440878247489182611258616215565589323008727573481261890211750912403161138663683292358789351026495826489183291351974192457594751494040202313874389979386585636678628222323088217121715110523520458930227170001085490855360046595145468612205453271944407241555730842222269819547155646762277838832634169075642778235478146815407069366201246776096627915605294884533362900885604289294043987063410729129395438427091409220750937503194479218396076650990865199394830911316642401249113102486490185999373951798030265899787800609072350815358641874820545844715547593684820143305308136141551983529390361097108910317006143995211812362171797823302356268916774372038396791331589997136553011559344543881509085444805078028261301203015497881263823351815384435018150350516483459019166846891003838780886164433847937956485858958880897377066800705935679900181064823196516932803461103352391145764166026158725628573323865372389116998636790582403949701956329307473864155672861492520785280546176558626825725970965519855273623653843293131608975682984901123405544954964563205571975976567516837034000617155452403219094388944276838934672605072176424326884286882142945160828617850174427627209109279449615636437327311543176714820870420499425496646608759746866521175554629281001307321848278817164097474512902925411164331975709498149276050291785119927946380983966815989978826801950621236081492593448912482849552997082170481233000664766120171315852128072129757368434141512060267335131054672815453267062578936215043182008737056705761499902373838840807536104909213465932394941809919007482086032908707544102246477557712130840311369116631135415515725532710433351233244402061259290160113888732646477725821367039217395610529941573846295462816991455316884999374810095773094633464387251191952220117983259052439253607981495652025778941945667237455125658152838700090094568154569158088389708086684299732383660680360426578846354838685755146652217971302805730573290130761430940700684327985544526346500337194230741470937950509157958135652662600367286961726727584737304619438264145985183652076672270272775895694760995459121327573161189983960351651812179801168860114875150437658880429749297853210502036222282410896874003983453175163317233645818750536977963061678130792736641904455306149201149683226929670629386381469830837200673659050459421654536467985239606163352041525260324232321098841418238134753363785484695659410662164353242572126670880693433396663334099569908730654970912869537887936834284720215045589849057587584940504860687451762023784764462501805736834479414617159291786974122331434614121733624661155510453450628183962179655405509782869501586811054651870233536423901054828621707543491854164146712461489911248301666556963096278044095819110181692971266195686349224474640791485774747233763158669251101998467007004744090443033070498765730526798298926607733807636607532785278093935652760553035787624620888046168229719148287266408365158751548004565285176638091864467294984713867315191815396886392629552069551385520725196067752144660922404848996439555864708458035109438229639893816221987670609567913055372168870894740168997872158011007249137248653597704232616167905380587864896409382458952082414622941388742623159633387234608585869076750211183039516013531465314592802170258770388806424775753538923854040979315164598225123484033430203463239386413136838127345263356796916764192597965558420031788547922190275825983667299265465587390433766524764947586567382127758396447451366858212486653629243148849486028523310929854598411780449056056651849465085611001752312091887323668028050691243346381183676674886666948946259997057597846053456588748560368525105381361813861797932691607061235557482400125420146094351944027717741788844287320876103742563088293440416462694650967590835062103613707235014539666897809264358372951920590092050138449148740253559779311350566095403637151194985858286256939533220137684620067446241997491951859140820975132726415524339104241047982522492685067767392356498041095413429246939839652480691095411375914836810348172797942986552085680880379210797620040858213062609034188039809473180161836931370198873309771529144596221441507899940347901063646446023543237340280316719835058741215701997791672081430983463778110766010785495484649758646088526740764533437112414297947244350525511521591784449155033161209030595619666325811078491216251090922229704850379464887763714377163407864678608784721246805123765851021972773336968606143165363880571028188258751228242787018492423130296710824013775280568211686809476118338211949411649022678163822248974078377886489423093385353264386698792412555433181559203627144714397768799477768913475310026278104576069119031335902563491936719575968983525250211220933920641486448006527281154372384913827416112410744370680812170351435639428878457348432776427086338697794578159969760903631642574446520820105231221770619658255970181738018636088434435381845289675257938837407211683241702745408836200796221481041339943650603636807772015618183000894099918773061915668111346078513898108336456293794453422928394699987740918438631667819209153992822416632962772494047172652187560625091509251839754459239871591339206794879987476811263443253134240135357894949062886218962327984476487235082052901039184398787599042176188839038600210322670521744767782648202589857721131437053634703386712937201354478779773208362030196965319095149957176048953950490309403311075668799870797308017281712658092962758107188237812731948196585800453449022748008038676976295666043025012038697200890686391360836678037781914666995784610397469061516060773162895801989437580230720724955331336263879294756176553936785934985112361345886215724556751408615237013385646642396021357067606446540351618923441702496373455441468219454212420088090616309469618108242280680913429112350703198680583799707043738741115527929278289606119847480831623866307855515200486125065887496079966161044133209481237573995417459406873373822140059899854407297531903898706936617808678116303357552296032589485109149016784235379794016768324261883986759701996131897224388045589298850406686289416460604523098309276189811534260364341971582027177561577183770127928039165208050957254946842179416195993623589063245751293607571018807482528211294967815982945182834402629248146926925612927226715386563114414321408002566581736441160185306294846027784887434488974874597544944165988243474787446149145091695680834265484773010329553711243202430238455024833572777400129459143235457712224425870271310668238990031482221932325377312416867724469635086498433357356431784293666473264697660901351793576855862466765253540409402398405401004526031931645885674935575304734321535390435086524540284281259326849526610227852989531169131354510314972804475061796521876342337776652736312958211132540790351001703461429208820108321562438380806271989885239072512959514628215997933400068644870893355605672267884361146973597777356195282540119516422671321051444212639135157657985071176661956500586115699083525104778610573453561001410532394437432250407249920001472804905978519969309288605745480672021160266727842376846927381544081755038543373477745817383570577476588231124530115431521380205776005502744731865161043636660156071351162036194996452782650633420457076020565436225659721165685885120102014120655917457115406598681875396780836446423731025096836384006864473954566938362078548935044472230312970349596758028949396200242339183808381437579655022167678206765873499249742304604170749146098603697164402870623561624407122782032643172449828071334028817080072808401488427063370506108432869788214886831020011145144294235480817223688301798128982772153334459302493702844942297479619171083798271956494636340553392696720639422400937781541627582893493554040328399539527675879676075785963595484981118151451328902851273477052307142624323766109088604197812883195481726915123890251048040886307063773443615022424093179910446914440258943054694466831259329729511559093324005359887638939289480364732532897337425733130435670954281857831942296770241218166393794944993594238770740430531054268349913285917198627339310372924763514731238958716515980840164528223645630554833859682352283395673522754028271765562004170318938388499228248546161689469777368880243923190653877591309214828787070585016304876764651815867565806802354658044305560209501314080227984735458127636932352437007206676632577119478783134387731662535728138248534728524483401395428574266744187595137957884318907595910982359237291085471520676877557329510864551090893132085796616679373746018970807646568194042830986188458524702072085320291701808644329213105647833537223622510664268638020523764616307753704015802925013101793805554319299150475650552713079120882350175599962240218104434265781645342752638849980878353706066142896042517260780220292401109976367330102211919358785606568031318346385632343455764034338747282288837748318528984621863192685401027212547326979707564606392733257023665030221640007951869392429308079701967799010474855630935593200900646590723935495090298081401988403691193362271078518053175901949006356004757314561485199192281644840489319110035942584958194738520201455017925260148723254730490055588637514064941054286960726015708761432772273443658969533613545234903351874202682351015295959442106485647258482397230399301827294433254713932743500418393316941438772182877368617361374554118321498366237135095684668586898874763720994520132781110358266259817669442578932120312983498745173490808074831272230313880937630670978085844121437023665144341005057219115177342466592132568760750086195801124358137555696766618703771638865180435161247439097172665082400500551453236390307644121769358602862154430446034592784493139244686471472076274284668605460731411983578394517360500319014324376879439651770597318108781483271674292121032827329183240717046109160472734159046376896765969353167134510672056556824493967658073966619255968435086569281414751577322365856306590386377069647973840930796919947237942265344393463246538423451690941136410121544278941146111540706553729393410912263263565056520002932364238060900770777286928716435342816463058888134698268305923394796215419364641674722690414074684343597119249995360184841253488367522332997627223933056863578732176174804656657923016548465065303363784288777269962534750016451880332234048035246575477029207537410299729224502920693052090293144747652766693121583139673960355350105852496082240490245614246840119832492510443034283179540030540107891132165750234446946444493655814564763848818740388059406001092650422421264831830048089239528915970462874609406602857187346182394957612604573207090152362176852395320289269096910868499984461696007904355249155701239915761185927983173027905319352476430030706089181835868620708385872715441871427408875681430998394519363462419184440366835982220728766011503065114353479738218297246102770080050768246389682767878224145057681866494417399610028081319371606377322722869795922291590217454594510399362335132026169784031233312588813463300118235503327784458890962013138953770461766118544655168578856631645538809865558849569888624837106126358482410159096947719664299374909535446649739272651072764175969374817652866157124556987966074667200662475152130602915536717623268379964595080839497936681344295252839668635330540411957235937764631076271575268673520507916927205075815808718520892654594340926679172029930302178626237322848441351669106584909412258102806001195045860447215443130033481584791700973984611182137533190904684450214828183714258036996224526985276088790367974296665466587839826046194364022399737339103914859342846456755482800324342781243562112515418345820233855629986115286270227640801124520527851264738098358631996391679398030448175607148680907990023980507913143195630883576726552640066676715040420509708333529435031396284537174310092176627629274001460565214953369483093663343663291894985652992284356505839964933464826750675698534833412858002173320350975154156625817902973844953757265092912533831849133470699668457441037832955590321957465648514848159229299122270776395824409272388581750806632339580896227629896967009369679228329284842308801558159702873796267476230455656464899857410029835405026764723884952781109921734193083821727272901347521461256788201146628023400687424780998096607965518877098995887796988261524777656500341902728722642694140554160556924763358615567931584353202063522972465554023730953966510193126437334444450852776422471641126658151090926868576360648477182753406083285815209164184897771726356981036503007082934684572567629312040572039581812898484596502982242447804730929641818920785377645815353944322178253356201150798860399624111973279985461087872975311814443640991416603169197838751469063068650373860212617875381449513480743597183477718897429129616053247636042931056614368886643072578412827831096096912140354821607497830525858333121383760798749986863404647559655826866043253327707451624458195533105596604857209997467189351191875423953246088724296438470258742001577121980141398603383445850919805989988626094034223176977136251431944329968963274268226283154354877678012566229008724694240106258389579492949609144152443718283085531922294114160324639026195705873280979453537274533981621263714158436363154515707702437177113112164807138619529449220708952911926020840547093779250188581927274006522708374758576433374247709647087453413265909458039447791766902555308960594992222970246836898237591953724094447455152569504915894145319981691170902849135222342913816291914705950353500219662722206990982385373420239781525283803139581019811882964336416979981596952526038967254950499233873072981148661065899038278091343950712489190164160714918976841354053412333540591461400668991238918598983302847753119292636361394472055088500908421966939253136749379264160865802587014840740898124669385723694988403739598917923932691285290752051924632851711639701538739867454663934242427143135409843322905228230455806293046548930946848212552454018352076995468878953616043791517876352221963149927082326224260206236872990834938534059319335899103302877752079651958223350119459822492053651931239663957672781435110476399947556210706399227523131168028484557385627257698076607026959203914146253843722624557620830664977378149870112572816793237518991304961701027238714621928792098323016010469021568565688232617522635635656597586221635559419517493862471028937676037438917473515036137861291776852271274293444381481768863893668845451623417381308291386049431494130423605826871880753082785042399111384823912200426714697969526255337108913167587645991932822197438291927125057669878312448898368699423611887346320619483185641371089402840755543744137003169606303575543635440006730430057092243729348695039903796023531522079905544075982168391535480927563202946752417373673800333703208221837317748708937107566933603324972098527105218093848444236775190222149153496738105918066290496082309197846072662303595730336208975837106124694785339682861986358203587396439441625166590675760806759677411278098145741026674931292889400386765684841719899791845921453416142821887158091690976407724331743209968637696590791528244656221642357717258364687872686252369431582398815657331718786403634661756485675347599428355373747338757249844722037577579135463256814309495074845061440584866733402207599833512095135890223268344702114691622357074939678427143623031223725246922310240404974789975518325662864515888683565302621313375612480463272828875794261611634414867883387745694255310212458647185823391915311556113662479939074402578612605164723387406682862373199286053127035442578809531388632572358846855186728564572011586073903671737735009397681564511756404168572853766772129057070143682910397990971446974621391594890127408884459454912283413059278399768130049793634153309807830316127438390166048628451001708949623965673188972040616108818595472198638509835085854241697880126203911848396009676139349640746380638784593386118047127305795504552859001931685782761614914694225778701071607754874263888504456848458709429582763563268135647253474573257274603527829218691733584633351235101267961923436883871650630613815967351828515304965499059070597496620963874762645515886835474373257214999045134962221008922907067691973378293961788732428486082145024129469898649758386519583985148810551801446501211629596258431729011749463768669641938948329366286214703188038684890305576392895207716440599784455974875538834558494192829313311429305947595348380678436458099714520738420725560696339163882101859080595309320845328300757099461567576334052824972623824542351937299151090128518618630563696445174578111109394638481021947111745905091505102022687403675313238404568056271949774492070475317885032683086011921994987597003393843950508984166316568137307286475023368513294355378146424711172462226509291539951602008968482878041066609450674893558601081104462626757741626688697127769471578306934294921560150900019341274781512299212597678060994753855880218505477747291818460148548458828846316942557394953702117056720940379707529992256452225172495983807906074744297919976472846109911159756941025369372358881013899672432202859626372855590525136989892468135185088364650074189913116415087215201464726054731993794043989970407604950979664058187645009646708991994535601814163962145675356604377638529484953589001984654382707040792134098586862921688923098827136834902562885996008289838095212838508477118992097464544700183799798722932737958233937399457480157972892593606750186380321555957380006368402588367043346076767199274283236033772100610416887614289495982562705549562285690470708138000693103319591578006952712660250595580299707339946253578655572605580934512582157995341192446422833105544101066851021803041496678317559199306563123504253754908367350048025550494437048921272027463869834629616203601414565294920509345325592892861164367277977343985244295363855772540186056559015454399992826936648310455080997546050416662806853904661590115219906886988000136251509700902593430593869203886525458104233080245592468820710320796840622506191756174825279001909648500100037456100347649631636421027442836667758186278693413644053468242585774964476732612026360982470206423043005940003323812079294632060824841788303446276451898353579015545378559759066260924744543458208025372131205562359878201179243867274292422160859914060921281317462756964862448569693444506990965894430248195984241682663543073140672752252242967671714602609101075015407083638269344064396486394210879192658830272043262907441324175129312684506077039482956086693827389993375530595134114382472437573697114259467628834678410871852387303712468517075464671054283992646130205121356319142044699452009570222713723778227620298335899237858670928473273648052229324316214661634228871684918338162718717001079251293860127635028880666097353089633924081942436373146990463758460910495523790640756436221548280526468663603239794002458985507494956363209552234010867719613246397374745227027380447833638878421915311640734899841275908700107853619069041270516831966712327443131386621669783168638183972268364241740061845569024282779843180451658947881544329212171703170296915458192126546920090755647696356949879151282486727992678989415583606466414236939272634627962979837617625331042401503989761654732587697024923632785481337912882101769945247405762027065600432434549029138741216214080026248347568152275297663161879668180373402600931038517725008154645659345179215683675516258044778808569403658591786608770776840293534732395905100709529908433225636505015536148550835357566850929522217514845679085348488283870930310105412709669768137830573941076520710552274034241437855472301111585326073142078779155388589868284744354470476674991832633973069967817054002461963281255467340368855126743218744552320163806987139947559729413974854202793258131795494802461378992532127685634108632060438601234393540323065693176742320029368927413972769748844104797274214789393275605906495760731705838802351092732371842066240453764138147937309847500854557298758433827022156325100890619232908640082462919140852180812684768459904241408142179522651184827016360751229754055475303289152430551713877400284950000292551787809514311234251941782367308687827369824222700937239270258954803785123294661990522993663030028810770417827893306122514430183416007784336630672013470844256376311263750291754350088419213637089298541903048089673447991836868931999164074194027465449101318840886512330255052631487333477927772990134328406808128616681141845263911489870327321608485581245900690702617981785509037749616223438325899351663475571239017090101370465735247539724468016262439158372745236573474780347773662177275355816201218866187102932079171465441218817567983659003716095038306758250842349707648448143149020488384801055156234971582275835577630209705313433376421048088545275941583149339171850622272790808223989788776678297577515686927891390714414082029053747618330564226426162049583771658151881462977180166491816563963267798523248599641317876410173447160237697593156819604074367174690906533819253071988797395749862758753314452197954455990592341387439682697327738231814376222147701394941873377746051603528475766921553104791013648814683923338265499974146016932112250813357212880584421073716498477679192028804538411968126294399480302283467030467774916237575766324856646895449519658723487340998117738769688819023686508335475412981425906405200907340969427044013084812502841329625525504613304791264040059132481154825757349431922567383974981297145975080863465563483321901809075417775685681057627949591769007707714519137626238327885421815408813139573855094703943791761338443042108802107270888656064209748451298152918052658931296715531942579182874556050481543307802123283544096140830559467648590650058017982749430747190144046462574532083219189003399133840522678769993719890881708088045859954576398261169493167792561633275700800494621821096567592149583700477527079621455373263879360286886886893139897174721380074647110550789211510107381745292862000119010354912528811415969305734608769290848548949667931591930961601575086964049770683727704475117200704204284373993093832557269856999903500254586816016555527139142935802641115044245793628926781938049847928391991574835701622696807700987399538380368683459828589424033218515969432032795397344116016417193679500170404463758387092198497431427410288216471871839469562408497886137147377936545518412814298661194431935462043365202856718802839076963702326189481463074258300654142862031726770550068012451418758704915420587130594748574878338553475936598307148169694216671300562783323291319603810391936807909975544094309394769451791054827044860808867770783524606076978257345290033004605830248882828405331244291179876671778156160898718732624764919590678004834131692321101551760388549437036588340306054793497469744144185254649130754133178728921015831418698282811422629469741084986716519509949074284587389505786869383267968917791853013186314922640822835859561495182167643255795299921291812566938033280279121117811021072944278212977120057065520840627968956752460216818272538368977582369859920020071474392895572323570127696921249599664339949119349978956952029563074717049162006243451201217600490283026038642208261807847449565194267836718626472647589884943375330627608169412946630196700876898781905616882849581974533837976392160514957405793081433804427695446318086089022417831218546280382353632509046085230335002887947584050246609154617184124126235913108563240973017353360042545470061807215893079666189096038784384024011400548169049867208408940710950652175729461770194911946275241496272678804361347919441154987735027493593671486846295980769276966166679250540660890226821724762768497152486616310893554055411601503779904717732821806786901017973409370754654481230956747339148916911379240707160907045028189487031107662553046826867982833014417917597842417381663136397014230191652137502868637879745880209717899873278192504627371362943370933240922728369721268731499474854954149391879346197708755587206615463855600117955827115278592943022913441172006805534206643922322971759245004520388804104775532429803697221677830621123015420649150013269416258518929365488123290797387895511046423881489175787222073634212357409164240766049499124732346470897061510825618250761166577456298946446115584980064076604977889863796055500856266270198429985887391728649510732354459521004064126440994015972689496705140385709357006978547109160190789711186989845228264155048401150442441597984609770282683284940071998413983983530873569217926302537547698483309863442725878123404076080537942565006350911323769859237149533149538224861485350060322496744942525613610092584215609047221527970905028535707567271189584783678077915373827914450739553972064827115911975557454236081813352140168289922740613986916626529597738835525577974439964510945438540661260340412915888410292370643799674355485163812636843155618652952882246904256280745752597664095933803384845913924010643642173102566041915685154801885693863293668159467775539982669997950259843083250443028839590731759009203522578972866257064855886433449125895930254613226738698962771643999966059105114372343772968939215695733747304040174235075467056321342052448612383007129169614689471770225044954955427197882857693681428555591154024060683486138460273696888673358955678929490386886029968037606318493385102824786953282050944655430103987558053108990922893836150201184337528961574684487848406195688339374444208279081329711509872666367101411002224193977307978622218245307287593279624475488296846382893291848363782631733606049133798225517843616397179975085193067609169850079775519790221685150178728468781785855473152595538187734649122131286923353062201169064554642824453718206481943244655286443749800328729099632076891725187090483885599635807172650568529383556737183581381454545267681331828637945569879701459847550002474112772055362268181339708071630209071244935638524858050607800457883558855795167648426343951753257058813341954159254398820798745897489429689343058025952807114197899933800000548925276808094345881788833860452111351555268032512373185927910199547016986223178073078721398935020919488040593032488544326700977179913242448305620099773289693512568475977692887890457699836998725176981219509598458131743086745144929456940706715510552055908062533355588182913288864859413588733543787080776660489584008387534580059792735115748074860138038398350682911793931221328884389002199295279900099365222959305764736363441439164906011725535159182885840244562105351022312904723754061650259916538868756756297093257872311799573426051557929547051116362056512395619587667228322527282318084053948288166376960674622598763258494654648089037887958508820340117659289864125939067473095011780680372994784319299855603487666407933639328899551709151345240227751141285896036857088060295315320132234417994314010867966404356771128934665070703980474351172820037170901997648006723244606222944912607725155174825862615314493031048484832304467880100715030593602509188354015680198581022517678076889401984532498083411749290019912062520493202851772027653599547022242171683312831014046825588110513539375807746997466419430709090767946234191031728130928255759967294970900768282121988262189954928636255726711863876312408255914778837426857395915445526960809359884418537857151992822374440962350206545512156966365022668043508584302388370349582475328671462158181893476001316769857992837924101365302775000176271995472998187437622411113338395691481319407694039063300212039100070004530859209126284286993821229724277293194465006252921232416390257401733207505417909109144464975637097374953799181290271016031397975064200463205849872658980338012155257683640465683889310011866123872301396637674593753433456668480667472919746009557750864171381521410746589655438807965402503142024758716989305805457144325040594433099095735837952681308279919664277914947428953931655591199079424177136159672573650341974032972151442658851115803492209001760451495862823126868049770527600480671750437883385825238394040268095972548557291144721366984278723669085809343098291584186671125850637963163423791981061809584923924117254556226121522601366863170622096728377789746638262239739821516676496076193182569374826765602846363481106901773117259358788658846755135000251090622419493079406770706884557823252732588235599412773486394877722947927780464714576795731493544186111576787008507307576735058917534045535715331053192857732889516603973462544170188887516906800659188710347842693697005365935157024802692887983915728429017862889581819016617891252260890301744049175408237110153806467327763109572378033535423109379759736461446884770600740042426541853297392367788051488921297424316525038965499105979009990997919788164297466215250369118139428802877371522314702932761795986823343156388455244713737811494167405152196579542146066955636411055487393733402927342802469320219553625809545786309390943006363387054094375777601741379574637392441194632376736758239606848169102876825432316282827602682080442319223368991491754235199463307594311679678580641986175276173701614655799625268086582306114928989045106224492147392677977140487542018756921179388120056621408104223050745609749747114799728727404008992117450221577452859219714214730412526390438183412281950467375852041474929376956808926612984910386868109618018160526902291045640693362234329540347187941992108660496037120738816774784602112874985131671660762348898593394297142937470401913780192498978564176247130931387639630056004276437717401000837777079349966500312977364410703703910118542111421636298350278562436627726040786489468529411140193999561863659919111580016404156222901460169352197422075018643156646811568759471630020075543643853700403790832357413794404519678048763287819370695840058994981595101976226614306599613513038529715679953199035381002851713963001161181700122590305841205860772976669585500815427558273681096622319348905593846096116562959592926321194720450467604069333842369040001221296966001203017444799237016485722780856164839908779484556507842695070506013729386220132097179604959533801393543273860033088479948888932809003950805747454729659961086852260483092325707558468748680856244834595773138731529840762761737854020216007745678327585034700610457597805119279362374285759899091044588093550155922877583492915880719736510708440215232638962720096718312748784730036902803524643750821020506097216092481248006303509026000174966223297349963144529559246823368675455617001573871549228617850723680576659046156801264398188985056355813183333301962049906732585242383023199904760807012093904494305665285752295666665439306707249124341287159051682079118598226708476367695233994757501770474463722850957030832873479476020466561935645604436153005923890806611204116031701275017871283794632980846799024918023656953179321491550156520787231198813655913218971842243211775985668264422734915272475975177988093077743489853025769555589473525778726008682053871287562966786970820203816363308926099484602369316131811387378662134891828744106430960463734806621654204490493832398547235310488699422429161096701035967227240167847175403478819288781708456668788770130495659546029049801481979646384237468828161379923883520447617696916442358597424560979988708926047192113398498721895736952764082700877351838148501918235398313870618568867180790083541810663123524708622431108264465166403358303445184514331619225727029433335244740846807287467268399167916778778797745579914427577203978141710763776589144483445211305317824713531696825265139070797721204812556359508578119768486525500117687710223010735869767824939252305149396882243257315329468801175006959989014486738831326106742229359888105209490822783652014886826219898781802423334130706813275706045066807434640258453212149438385359358355171361626688746562310386429680072633003416271245647375600822813396401294775513042647726883126755927921372939127001298877797929101906292289377044674959527394648444334508843112472110022614860000230951725584055077051920597269855593828929736603734229689266620446393416224099616202228006207701802254294108599473012075330805320650851740574877419095977603214922090187870117175364085347998004458846267257654849433373424564496510067602670928874997766211262908991347347989498556443661223228849174294253660123742424393366141199148404231302215309347629184019711525148058112335024603766057937880300273342693801263561102064853036502912550476548371480850713721403020048290626025801546753576948209504249561103272037475529781026064899217081835869826009765325784849991522411033268649474814311301280088877348921151450740547655968237382431923780973744025700619549883211485917648293681923492891372906674143418565554656887415860893229200135086711488121699024046305200387421949062048344501041613850827106821197663335785444327953755988196471932239883079282170259979272326844639877642786396186569025297134030554227943405749072379373623867026363849952522977411691231313711481377656556453729218402726054451470569578120474823591376600730048523767613057075596241313653067085250372340710075148688834624367178185241243722604684749090198764914395037695936170217536696729612754370944435865955308523522835587192418716022997081722854195939004742043267149585068002313554663916540339231767857526019722379115317079952937835360524867588501713361131999817651710703105406420310039238255584422788300194217935171745171779101802309956964056928557385173768880663592736116826662518507835916828020659632551007364595311226013941443703588419635873808714330601632734486236560602265154420536808487580534660228323166050541260622332784411199893111858297914886094059226019224770192735173874155524391739008873905076444328220671469938993711959012390225013856722069723235553314790465766115735848398164797977556479475435668347248966970497062291422418962273799271135417431289157753681793840610217263995361118019908152847220356027637422329466893588033380902997009486070415047934129120891622547528142303024219532962968090898074130122393330683728247341088885157448352816486371374595876139042651969709519249681732307320778084443502185242402242629228966413912614747363581601342868562108636910443767939926396502950968360738487296070513094952192122033585817401021817803121168458974089593188222997724078978634865235352235387550170324796345192521604999803722522045305298311189994291822621904212810701907601029410834498903186340162359571280009787498590595853900339534397848446551276972765510523073819110674751465547860732649852183731981492389096070235758694672390517722099551281678239581195360826013306565525904504377708966296735265671078754542333594005275203788583611602468578510097243592226726754210799725937884738928893074989826623685800023239240568799158170211221037259680037073098993879275474654929822251433195931462840383948208067066948142931956946395367034358661507870863517113065397788312711559131219304212561466455172811218113150732857298177439529046590149004121311927494933776947947351293661441340580733883889496997215733080415062764380799684597495351249292003242680270288259188244976946147618457073036144302069914411833250400429273598512137801984431395701348890426758492538562821040572989048777317172672095864310180810780162280766507056544549933869322357044246506612676033349246676310839932313105251650245370198399245265588430537916588992035573161333598559602569836434393959618236673541092899388717768470121968374625807486062826536509226453337208605658964261720130206102820939367104759956666189050222871989624813222887981959084070560534288861983670327797874316156352875460046238213304015107259674888140796128410929162500136534034074876416517191016172051513515968190215298601675086910633277526048740345061490066190659442198197070698340018403182618885242232008490359265250564601253518340858735004132598607835131473491146544469804570817554519429668778107111373834583624344126477533481826475406007620608908053055770213343757787017437766992179720281200980679518016560489689728881569423089660997535249888447490800047557848229759003829536546050890019281958774565074282099508158234202700371157084037096542672689681621384748956261362151736312311451935917844226506958523489580158836383618607910395767374688362835166970907677913315333962913185113238432677105448960615501790223281562186951196357233914380597552602147926545579848525831613995140579498943072431054175037411559731915963079855164463455973945582631478875139648108589544982574237955149404665620113280735232252886442533013852235668236085461508244549707530157003305561884692041069777915466323925237130772704787363416946128751261594869250007166216819787206345768403885014384418077653702595490079611019187600216134943628929993482300362317806767714633374303676906761701837821112570111376658659411037823591843377266440468181724583501882538357851049315780524422178011761825581494613076183844343451048612879824195103501372680412087257092888063411580334599507721290412496562240210170349086720890626494048597892392013768914109581814880327449573735582084736016051197455913103297930510449666701062451230949955555586550476307793669617368626469489227922120965018584737671002724964795006732955240753123097075220998507433954109959794218597420131095417904307339858782003720246914389086668459075829388636616775402646639032886826459805579934667750760673321240665093653238178021632324899655292134965717168668744669255897723927761677639404456825328733388727642353301603565734688082220471416275374097631009945849508394620576430730497849435668430077625527114135209825987469462935607296805035786481996588478957998633924319841327526416595575966711215825506783368260321111806674539625699653893216522949001791676531471493196465662284026994377993428854539851270243097764400931058978240042034994759301917828867566415333239624806078105167471021563671421655414757853665012065806284952517579276140057703558876160565424770396593277748856675297232514651076516163856215972578077228023247405427144486767986827852123657168611634230283013304654868747677235371434105155025421040544794933279373177541302173409123085499877832947448425297759085951733139640596705491082913146442492610863290216874746695496553194241722826465648271897669433181658784903587521864366146892587000532572765542979948836718485367598733370707049006142469789343646881327816754878893460094149111159792839069324949495246888050525946478331430670500058564436501857917670099447634702498733747530745753576081397016609871219508811939275979287824619515509640045536826338250779831498594735969131011574595467980139620365212229603570193841642266247344923629837813186057285151778648748639669497621645331829017948361161895424012494831147961416301442633071408235881386159236173991819094266950919193201111419152662039860232939114596013605726078042732199898374542457106971054372153760847461362300843605783818677774802007982746973419571613947618998831345902028340682476537277106172494893957565560335476190260907820785107392899326754954654752707269428983628646781024673944853766684792962626531002943346642858802485894160192046798372282891712814902139583456424534049079481934207683458345241754294115527970039160349988534101354414786695568966297008280813629825974989899863552069259984495762343155048589673628842269500616965647692238113289597241444547730257921301947562583922007759044991241068756124128860963585565476174045257330503597603679940830169980242771793498278299564831787693111507401414333467895382608984216063024479315769779000690319120937953290105690257278493302521740990132104752954017521545598658509713736865310941769004550531131220366442997043933875126174297802049062838247220100266135270493819783358370811481545649904592764931905612131628484766010956286185185840189681630206567113651830709418980641917296141163845633104560840351095209236865151165256738522223143321540903898337680419231148096576599091677061470356462989163943525004092839379048775775583889364495991899237666347111767197766723655667114446657862039811226149874229915563286840716610171688900122794817847435336529122424312527702484814928030584292917932612203093875669484720383496397911946244175017105301460453808200736904100173095295770078337594703748983554307088455934081391384615170849662798841559781741141688375410787040010982591283620073859642517447636775683576371337302988702679857471427735986664487740343366345831005048109791054949025432236462163825991659238078014685262824166569091150555104670315282556676375659478779800416040952614039533344153622437390827639442485940726106241079513465726440880917061668835315566719560378888648759219327554385866495377569194588484205871112353622309462362053639290599450338031783390650307804615194168602950705947118038494155170869183483191036460630394618753576158547733928229620191138163895462317635851333103435304882972374356912983442724418153543163018134584236363503425490512192524822080168405138050940491512585470487849644853982945666997003615177996043102726556254204443405747128998969850519992300418911694541451776025783085735232622558523920772124598660885290147290881417724846404280187489904912488529283457775528265958323224636271430679535182149978420530422809740975750368397059748536588660111641672237141953596108686974097444128277741850892386482328189837060202750752053234380816753317286895338919950693123255070926451416614727951541966485106253254150101387286275138285358728141854462419069397374523753952679633143318123995545191117326828451879268825169891949109800960864743965925957367369840447310139566803204192837701099031299750247067968425011313766448602264873187539538368361562006074018348634487819686993626970052751045204728116353189174667702665889017947708888957646602524938056665773938804040648374164307526147749630483507041204956556540349858678720100222441883768476099578392165242966281637487522690665302079292315716819803701435509067564894719945465729271213394378851574426020281103420882223280071074355260117075082427592780729683618994024933526157078015708151375380310370048957164199597320313023968730766837132193227190207056854266698202352705490238243229322658658677385224607211236818541649812129649991252999994564386961499307112400802430377691948544491325456045735347367128292212220528732020095374970733938765092307106439275913836439935925866336723457530497626782415415226303578223684278765806748229510201629385287841049375121433454525626977425006932542939168030529432811371345067810645006724101354014470098568446748414739654171276114885412019050170636796177363515829107951865441071833511600521865560373310892923169435440204617179634293513998325016458570099141129425584187212422601251140479803240915268787562238198155905610841041622653925999414103280259974468054449867149422826993740427038084851253856420724070876643263602203565625250755952864688652048144521226978493120547595435912438603990058557687351636557269989200326526771446421151200196369485138550901051086991656526847147251552930716049696005513965386803251088634057989561325350015779335534194960434572894967823373848226762047267979386602052002985498706411339222377988776772667018387304132077493213435922908165894338879463063676882256387811251208683375256505440040670695136656145325939021270043059988078923395249740677538890005620413969302940796947516147932958577103606595128042053593116629619786461211683318845450654398933128142678973042238015071283917294527183176617803571824706211743148807730432717562193637458201070532133649950020783446431524510612886729095262215030774348026268666882227990521925515275761759024030881853117941751330697237847650049476574939559675776031485657892562382357891732467352243945904132066018845921432503290104099837048419018804572771987391121042504727897547743277544737992013535688373316158751887021684826701442654367630961659154461065553368065526363878229696401782499265073379907494713507475219205545317577451686830416544137693292102508709933251687062647123474512307540982340224184197523049665137746293982817274949297104090126685539033303049363153430576449809728569009779706971325485262965742652566797604245561593116094105642175583162626035946257384365683639921876606024202967727943210250985232146989186207862837328986347327917397328320520420479561440421234058690205293306948901333484342488077389826157556055496490253186214342827800501552890402633579418235779307843900075105327029905837368379545965888711837316798407307671121278840431970246939121089665102875829258675989782365051857781196638963775022216476658530422146642763957898875279762775430188132967428056402877030443130044249166015780953489237109119542228316929365800547554202990259489729735813200162275722779233632672572212378152215379697430493927369070156754204029022951444758264828970905832479499804356627300730467608057288655788633305560633731935589880748968843316004833045461486647959393998353610639922343606532129922424709691040076268411490058273564162567674359775304003292024096092184367315807846013661284616800897093609808450313669312412232197688407961552123626743447906968732670611054292868213661182429940836990328164990240668078954875686086882565152816695049594988501968072766570727647121352383760115463913861949653856733368457678278482081164848415297333892190440185680868599658042271396998501410750989961347281195008061122616961427627621169977753977757495561924794946768103971637275791565284459188198283646759536496557038705624271061132689414959345535236571020516124141939073203453117194641006634149522640075941812087120232131000535315971123855077136165313357898711666129415238812216779745820616419931508769070157290748749642714472805292530560826139566046331464531187075856347752940263198402293817211278996105710426858993502889679385037059501804232301195645556617134284876225122104557193442393076202134871297884082364354376418493372858096003672434903816980096062329028108796728263403141677138849958624103195545068144590900320791812703848152532683732769280476781203095306486938456176392147130336363166722220993271695360334119213091024937986085215951926213308143028063356185549636240938508862823145834620493624852220648821813810313433057072966494239137313898222072950583454704063435977725267944203507562566685338502088298138036184083046495711820647721032056198933237539176989294983398914992380783129297268063792351950445304039500364569781565276808641940357738363347843891521437084395278447780883443739353580045519423208922886646339267263626890035783609249961296772307039574006561253504577183379888699081007385644975167578170602532821064789801689361951118103075591650902242870639744067035719503545822369221851586431374974852330122748897855426591838713948846133083290352497515548448301382617086013830276268676552366755057284483866463524891795100997701828211481044563696379340825883154346851134621885002846018050256502769045741445616315296324852831998477701946907263663170788127491858773601154127390990418173183926433105704349886202733046138200705086251136295043703769249557385371005712343838077450656161210667153526568087827011683901456646288636642109970002250797980840892113043435852952148354340885112165187824014855419060989761044902288688162076342248843851690513530029816338383450464012437191405705499359473079827300014545616132443042432764036285845207946249218589845761625035324206297237391449892658249849881258211773703638889092054710557160548880844148698626095459521891929810611752345279979031203307280961084557377436801599796223816373312257483114353885109445792214393940187004050841970893887695701395016963677859525674033079572173152549754812473632297723416336979120032749459266035158556968434638815017503591762718140746468079894281005000984009128416777800601590394152701083159044094941742884558753135249722310477959324201483563296605444434442016272842452129063720613745431582236772995639421162838035846992232967833596288211713211477669047027674688127660231418188383513476649939017005540183035386341999920448882482117960060084401694260010900612799245693801805189383555484394167858275435030580362870131004057149245385507397478404654970992181454733937626878560547468976236787608972044599922110992414449838202713108524895926858563010578379973496026985637062123804037319674792034456942579987138464248025780781224414327178892087161979313912241522082317107773936417719132384007953750582066076070819029287342525709992724963800567416377640107481656715170204949048718336688369231487017154561336879038356064414819919792210161632049972221034823506948194529052390449036931775178781095183305073291701567916941943957150708406320246703058669326377692095785702978796354784580256011439726242202339708553795041134684230714813512262438749156224912289029845012919833080055270026045240034162961358173132907057231545132414614055435359531923880723548347118431688904118689170751883655579287757534893379374496292005411875305784126424852275019524657441520116418678882313100962520281838996492202895104255760295588024354069212333042986874848495906611513969297280557047250504836862503506728966570860425310300787546488798072574173979806271341820275495432198694445918847161259132272747053236597318676465592580636544041615752529588648862025448027144076998113630523873832552978064439830265747574127653584366240763536912907206606088784415864500209091339405281327306305041078001376754004282150738789608483505740708727507453376725436917614715066076644420679969100299274224487500027675646066296605784074312424661981349527038036261255887293176760348671691476884304868916855339399275960955771584297131102605142991716985459367663235354349245112083014634562455538758655051320673589214526214983528679592680669113483584122300947089472039227169570224383655802290826709321134499123589815365043693648292457748866266356897326188856000069020702693713096885141032546674839577295998283673750425454532028313620756085928435311545172008804847033828270259479327369618762370447992937697506062956603262084224986649641983079064592073123145565774596701368501007789503406721029295935535324724739004230798677843080256048831772673827362836459051926216144675930266076896550821424834565932230549992424782984646900899480843234695839536248796478455159458607982188644712782900022123808856032343826587975814800637057028072945149258087637629067066423656776228292626556169912502689250971017584186561504388873994506518101687827089092056496946328427702231413604143629638939451139958778195699045828573291184292762322026815578346575507183418510198095536552713556723320299352988831652325037339071275555390465481310261085873514930713726115566142657140386292434622545786041523707043489370638951443954653511317769330966993729098958723913878472123238527458828794906923582162592784375423112413477194617103708435086886377572937968298845000786709470938308218393512747570312106889386072873642340028785568730139435871799116300568505709215421238731516740640875638665189274048141554699122108005562946956405348521861374302297486682796782736883304280221846409182403806042303361916477753077719884216549685985881633678687276784346838337719190686422665190716162208329658504541544002333031918891914563154587986221145015944627677347012824277916186832745017038060174370682975157118184156517289532271228191785957673859524145316655416378141924529665670438503691601709579134973739138063985157807366156410494506379145971316377083760565254618526003027523751712042767469822684787201379669402124954870208438192128653850500749393442959489940625066649517297360416852720035561288212341717717072138904365589396745968779059930963161621742738517015453052943646490857883544941016433968117156524151528291410343926201022058055011598295539336696900104037246914717504468373917659282304699673328854692439307874337026776825068042699097189905881271851473376129977395314095934481977599714158163302218409157925318669041405874520008529225145616295860509227064308888241747472932827155014509872196763212894635623923161774173796512844604859511689507486115010950403614131365525198582075558035342376185497355116868706419590273742182710636467381916598561422455505292184007155094875497817281105584537411898439749520482377183391184509136421327177504490522160904094591189427092327552226274886351815773616202439402616901927521400527838757491014506766109503071201135066023445781177038603654517234190530767647555861772478408686921653938079659858762103592357050412033568672959845350905361739319411090192467922939944206751322923336163395025466526421334846961963460519086733914140971418946708572028169546116196485086153219475856468992440493959949585428172216862907304695507511228289220176159041812257073077457350206880882139949532019382351411797901044087895168612358177070904097671923174678127418871274092582758263306196155425301275032817731419993673763273225627031359905534608052011713754368003085766019348450494899221011813566101400310641781301873448408733732561942523374525873502422255924702985424790587424339386174446882497732113839913118389222958762486643643498063222756660618276811840548515264099795271412650071485750222656460095669624181656902712215241961535914289026863269256266992747531263332050885873212592680511860638878400838308621025219255399416367318697742437216641540605068378019402054960080341076818433299959912716158079228227708841559228487993653482978448511263549983551923287453836573142354479795754397407960698117704217903390730262013097289678250011576819907912445475425568901037688753686065446423861098127069243138094799636413621749084514619940530801481384378308691121458670765557360362412559103011584395969462789619303135752268636090124580884205250786420426632318534058744295535849172512688781736060546754253116732504600787946444346283365492183672618296842377583342464161677488609584296103740796719358277908492646169894147759041453380959774134204946187292855365514560601283811091568017395460967213125702174216130741326705396296062106365122428243101683765697311062534782187086712522733559848431493094652909663005871183767875159705792320863304778374615482215715484887230933076254356193846021525389744965527120466724950364799768206440479558403295830625099789519113934637327926204026787539235442933778633246704984985198359907639594437576841522762191298968992778955571821792520579370388439089393112967335576372379968500850562694379447619277982380416336367413114701194983816141622670803277670478233182928858479617851014303128306116922816980085721268442553787554580830848474420689139199185758961115965292987636319124260448101542322293591394979502729789683153327987918482337996088307588050147878573076922478520773002302470604616935125939234655857590088799059718348364096000397760047220661943259257353492270265236713235873767029368802278330165935118512717155811964474663490869327787843250132492328554745117195389293942835410499015527571625447846652238237980252325834831282976599333504907698925067033916012514285594325491494803261536948146097494406292843665001703490987738177593305862914094102087100655147238189866756547914434216617743489415009788911287662757595692210654504934944019600185148695481052699159249180908763177175518563306506961660490523184636762921824323455859463739244028991062647817648526500962428727887975483312438451135765103163177588772801892171033016682601803455608826244072218689548462200552381117828495971099907510904019598002511770145329990526370011670350277357418011166705170095639254066440929785387268903498264756490085316841323951421216028303030850423481371370592133643928700786220922868100661026460359806901320174622430409357491362565400812474169409899982398459494268207898730436764917412186588952195170240225082121219094664209297876966784819756426621058762995490929629610162158197171890868256107717113360840938980058409688358822294708206068899774573677963999882647860640424578481119166361009994592028474937552330712135625550594849209318877172492549103558074970086345503978512272480315143665166601501729945813764719278269961865724408760699070964712496314055392512434286844687990042476582846438376604655183172505911167150816166221157338747550711423779050635227887909127024408132681261189337751817909089520776618704888927836010801431324527502501714029432886482451826415842405399588241623107120644670201414348568986540661455225603458048259543428190675017325069428486478955087695793720905843498895893265464147333031488170354427633682550459164191209785593821115714724214397161703638126299866756618987226377861482256681407955590166061661311888576141086770641425422581018376196031605054971128509884169914090901436864278275182074215165947348234541482966689209077857843251261392502971309386145229182553092821731433836083228055473127509947166805292405524541361218985862242002861383113768326880093130882272082866291070971738143401166741443561648176399642129400819662379952261631532739583234120755619830407677910128600998427995663827463058022421492459723085649996721331636863437865334337872746642095238385173900140810232232078206322933987951254604586962997339120091068356797366778906508154410987278598385165075273493280958065709177013515732704626197742414774076402997964599235992248847020008326922930336009329274502794613655192795719983075915512507116473547359834186647180177363933679439170677326216482236437626991962297288425642438514120431784749147460511950983089495301212509683530868803046623493933636288421184003479591979089550362685135351962703248197557095235533205132956575489930847783781576528970797793276358174608695229936665835000257837298582945278306478007474674740563664998723073076172993255391500487175017393619498794196071003070108187606425662454783042960178789740727094644814974239188959135359864975655231432334849257376835492775931038146448390081842078146302994674648236375655000943703189117666372543917551658976278941687623320150565966021398705961664879845418326207456677364679708256813822802202102603043631501222493457340019583587317671020965032385331798161405618510685532651610823998237202997320010026976414963582522148274104272389053352006764059285258169480612153187778807874509185929777882399552828398836573848450504999022244688580831055372850626328134686416224579972249361805552953370712087629925013634891890201704348468312370043987077744844567365881402997549899668503133550400600073367679265185525416784888359358685639286840040788684346005278483583179609724971844757614391375997676567307024531963002428708762658297022605425713085343954741516624758184216351186032848763442472904134859247971055276961260503167097579682150257678950975829276614702694059196456618393496582586381253824328188657654897354928551647503953904220556237970273929904754329487033547880891089484142857462233845329403361013845763972882852458935156396341524107687050796444595443098129294366750549967880650465944002085492509724985510928436671538191814659660176502332574298464845423429301817100675190732064880732088279146533460914720171510459633777564032528637056576920413637181245848076906135887170891993474570651992334164723700857634517667437692667045646247434286870741763565830069082926598150909221797456185599655173053412222456103436122327493691642564016812781772645720045027805645621966165664947350170597938700203292128139418209089871683168924093052166389074662958397376850282236808548568827801791982406443271979610061312422418075497981106519484981718532336710491333548291695850594112864452264066102495302643625824178045909835477313136005132218435924398314410969941094570151140830673136289358131428575851889822610726597102107270676466686745226089471287091446283380486839920746437717836850921330281115942307392560944438410009992034499924994553681024778536758795434552615154240759884220114746362414362229448204579665169460934272752339991112161784113308307032934169771468723409421422277195516482329422881414791785733413428346379017688724763881727761737016045584024075160742742128606897224787016893846615003876075363855911125100254581732065407341625026932916242380048790760497422473812470253894948890401245758349017165894707258199993003621485831465946332558877776837542623477456450990758387822105826133939251357492836068795411143980205175476050575056124755902879294124191459936790268820045813708946719788524263813816297566262973464083124946368720152867246053675827657046858445717676522212721527119421347975190796085031021279893419576589160719637134185960873932518112623250906256445893295304733407645757941807069623133401339369160878209687758035239255697367730385986814449715930402242668330961210186476366294148446205994312763110668952896828942941528557259709578179136588578599113681999581017345817962473415219803653499950266084449459136694703083546921254672698295609585241834712172211312446981908413731811129232271662248240912052241010271973154672973781338465902698452729163139060210758201767818297452265647595956925400625670729232536390041064175660870804753596681044948580604049033582592823438865197423905933054014764499825300600321328079202820089067956312827297567852582048356534024742451164849661065616041949988840512961875359169313512161194797528806238997547077712243691581432801342983943386111971432478350247390222551847892451219046268501109982285498503454803433887083222623105016986117413525052406108555695688026482637050644376193098336478156989716312993521438336379302129799065569214635759239838230120950851866371200670177969632947556871165855398236110655952152360360696468760063546186901168720820421370571611975677565694538501225169224908049937234124395025710693348941435640283103384278379607668458853306550001129847190207259471141110436828403779965870043116837678206954971825148686399438215681101147555640219906844538678266284213270999909608501227459226757286754347066396266273119802800205620025919649648662379486658455250886935421280819052770323993597592744996842688938399331575326747456046449935843473714171487212137120971537598275394950034833143803411135235054791314952016424983911235617275019655934131078581873655962356105795878273459146194935490658115954122242893884101483579246131125234597256688162053450175186134202831928140363568357004018123249243188123842875036981377367145640286589991315815332397128322657369828224385063423177790012360733218860687202679997076682317914456063301883368736220126978165996327087147325761042191758003865019998117101796393622410842316032266094371565596499915816032094328797901983537035286256526307982585610670685148031939504884031033164101695290656992803950481261081795580930159805605662795993845500323278674885134640063296872257312620233235110578313429381005914911116036682445114671480104688772411557593347152922649468466887924042801668348921372359794557991238350774493937570614290114846400281958489609334136852589016334928191539278845707517618516022753764026319879796186673815569972342479471676495232150112870229830699122639027636304939139645131394950012296486538648894413760945417023115350919565143758145612293604826394488052335574777775709138882235999937729374176389794648996631283582025769076888212638694029223529093140738929544955809166686002704996419153798676861318229468857860911607086930297936862076003986788465710794903920080155013738402998926602227277543081757455171296289665529595104964748767076169622200415962724759935124719604056449008888075756185197051359413662892569485361952786886809918357381667346952530977867411239306724460483851472182088337960260006637572766279042234848775335896647748981616217740671352962878010376910143333101878544531528038787084989038340130780703264141811989598387249393666545549007557607172580304295074335061367520404715851540424910377050682806965062701559364263867307974955615708205481985901021837029454389086076205806569410750881462362287529366254949078462589319369497970794027853021255196922519630785974627769578709642573124716789281376061612289689756004438832223713157659074564776061961858611873657187817509838996957957356640414129260733675479189074669006109877442682379998517194755656205376251468306890768433431484979586838994731660994302667534520772267454203564662362218993340132417944894432829421552050083475452319568817626889607519660462076067660398531398863579130361189943607481582529161180966746614692622115102389243509240310021218773042458177479555132199799880441291881223939806208444668059840894552063571339939597676329455419306804855982174801069961350403697749721347529565625207713006294613819874453483690570713629193326460107383983283984750485273388292477743005392569849448614639076248904118968752366625338595024384677804369580079423204075391483656247001245513223399702530303340871510230172381056285096282710541675266813304309697972854369799149214192111624058348052736155599729983915229973709170430769564320140701037567640139352333989140966607347533114608329064692518245710586727754284905011910352528726568649875164938735353311848910054617093603507430733748351838975880090961286529313760344845327445691984224539547553417511172069724236535861969549555993664404548930486873271562045585017087584926966517666692690911703762956566802684890682534735875295146709023573259677307744550351076862799287177844311769768346790691094295172896230981538846360245032399523757205487296889090894783995953557746966504077142391928878992450009261877794578970852063973806222084050844440114409944613667914448474938350675452574184390272013798848511759365774808289680599476438803734027923229895603952627341202865475006014307127342608893661574505551088736311509979305342256403519949464616722716610212969429619072945775111368740093152403505245196664225386798074230041639347748138893795794630585577267731233702301399969155418315209763127721698974920610723303261782330318993922212680463018177777792925441735634481492655682963110132751506814749609035268303310915612508403198726307589463841705700489810310835702896508126597526422315862111240863029726204660931085409295482592067721888403848053439655355340978727993032665847988026471879064334039055321764151197059040011324958361624065531499075049517997087306447019504993398261059200397248823433626751144611039138480529455581597896072988756437473321467438477915667641000584417706924620852814245446160106749668991355489148939915963490428280398228882285789492539406022812029829286927034356750886478121353080760532139940351549257251049379071849983347011126468849743655619352281902945920386381411893675221655874890646711547754865971665851178286776542981440720898312931106451284654035410553034323945081284666662961097360502784397476933631745861344412259322968598473251859716818403159994706263768205931238025277426567127861908901865852409570679264261095244725811120233722943466745739678834048287385737235749165857030546117575778708393335097332534115789675466179991976943065747930801807652593341472019500566464224486702667489904651973817185536309417018821888086928206934008034741415041955927514433088034579186440174855333044132457240697054072727037752266645389828230105417487227015054482159016238805984777721738671591151372050753556089557178600213205549576382432384606063913760661712653286670585719572088102628929250241724223270834999959876580796490271536622160808525370840719610453401752016690174111413724731857887621235845269176913056772639431941244236296442083558982899718112286189929263580441403108933892915680535736824855654313386722401768094115686610122553052429147061575301616220925776572806881550579426799099602285433173507541673815275752980862481793636577626844272825018709849343365665961242577386352552628470045907868523022729771844804235933637124492635847265372095424588481881555107975948984801862163571990656671454040116038893559146569411477153935710938873270387004218605231412164633936581250276541392516735982349001250854507311570786043553750891417537620693220953415952642522163836661893757242263247526051174637277883349896736474901154912843191071574239523058174661111768848002971256799742307318397025611046133233841287156334368690836540638586451493181255580395145173721770760209984587639660426049822923649682727651280120118614048337329799724479324758030336956594687086444769071279017228154812824239946064250648997551461983565671894076562221395417164144962408101383029339760424214651830199665930706154662664407119272750537978836771757430002575524206238397866601528015638031184008850020691806029461541065851032331800916945114085856534110198448937837314439789126067540173105428107258086675607835999304110159470167644846579429157621567654610615374582574488936813844589336715823438399212691915832250854143284853180974582820878692995076044823535885117887288502741524714108012969463702292508723168415164911014837713835859356565142642427537523083942422166241070956996447272327534520394904938024426750256319329466833619314867828038793714123831177139771139650084741086577204705405644435851762555013207755983405428250602839206066109748434169097380132401270981656545207170945964684202008234671282575515626792470540648281082132325254838263688215613291000781071300120300838078997639687658271243975198586348776855503672610721862649414574724972705336403109863361163856698126365527992052815862882105060077439008779055683898564752086997067171064875834182557477499561081012965887042199447687890165205799047583750861457400803385142526512513215842033871175790923570429188060963035509339572129860106435082826299740963035798607129884927284591125635996257874717266722985546446207056815213100446068010504723767359902274199146008915918420978114089796659134322459730492640303996110495051160031048186089938875688925536352566908163453348139795739425621521899287475015769726785873684498088111838691635974291020993551580347018960135681696889505105663417830585614209031032701623116150596249967135008816267101547551583546169635364400697326573135992455600425219081287766528603703832153037813369738013402445350585453192460393562397363017722306282668929229857615232024377059455418183726895672503272659428589154180447091163644125104828405161738623592020654919422139022522529099667902859325188018728204068968857865424372677882905997380673014725432715922246322445712807205657155704070430096314756071260825757862236482676193365370808348747780582292949889867785287094915537556607132383455697225026335484536566767967960270622925497900502914342830840300606478323863309806363005727044301103257483017174266395529032256900401210076201587298065119738293943578592428399508848243179561124758179223673083810608568930058983756654281314876893041148679874968894405990575070804587381272038335322275411734421830201864070248976590082546232700386444309316229525129994216330851306537031386591089012009899509476218010568324004168633211431515091338065205880493374298925032725319701423229162602819272014009691587106349947764115455150598963155277518740695179791660295734419984999318005240728240059882865001389522396229029015659483939120246059335948385858857462958839715305226360031052728776109932536761659668274994214066889850304224168250278515274013351384790224512956195346179819687376574479971898090864551363120154655430551422490448695948045955185490317855124334467679322406924266480936101556779108950202027446829017358319056959701930950614971235935131951998499738789258550864195343548525549984284722320533247801828250950190761318333352592481601813142815093294783361541638079069794570660104601231964157177827874830143870288997662112736200726767978349438671098835119679961305947517347116943435997223680346657746930174602180963273812523072600808574384011773472947953869966411172823514049718930353964371460097384513563050362550095773485697445649554649488355406046991825537066726074162930465583457392641003765938986066258949262222314382769801303720208311216497245959804680637278387121749834972180224991265917084440504283420740107113550792720917966704789748343455912104006631465651604005365483996871375861623396261162277143778725849147682164399143244848793499374409342772765996049033095940014580374893683628204257624366710396213429254560620387783443016491746294083456747831804994688268052574956459641347598874166682298785158680314764783510285413444417608700470192285893474477611948439962273072067926638600001409987796890143322733297410393465876705679300134087229650679255976739655337740451971167263277915816487461162977776728538355117494838848643404132613423310388995171245231602943038051448060316130191188230228508020194165659713503298819567609869696403258050199908590178036267033393351520527926629238074231570318276932773234913777931439880269460407243469070792804479892841332086415560791958501217892086100047577802907006014959628375096327283571138786063482186598750356704429157403225284295733286887327612042937338434101909372253377820881724287503293842687336974642800737306846743464014598957530874217386558937427183496360427170344269649782504239524890524538047858542299723130813714157019071451254592474881836771939713019452492822738401125043040110964374245655320083834867298297287423192416415439781050823707208927552820139650172270424261244225842403411164720832018140408489757491871723566747152820729011965737936131287573785058226034297553240269016496740224960152020439782455290301024025311052260457383787478332106814587942345089688047604897763306540886319477696614031432091609337167748578873009797971650070159608447554678744868946200005158565811138974618789058403059968655279689805558592921355124224298985407443598002820909824489306448176614809834981663936208816091651310701655460270000184892397691493631281149907734155005591304560669266826870272678538627693361548398871369007210252861867739507788826697479241855674608571799480322387917690657517811659276553755780160124668217441320769774294985118800087252831202767977306777683735131104432136542564748333049913886615946436128750724555746990137212174625520627938448734630797111896987415799677797095340834819036362796055491703478044835227108318357466577988885266806259578338715539916225990936630366097258518648890242724236268107264310085103616223826209718800877663900948253376746928031603572196432912170420111543371357066472982007149698074644729550817740580646173814052858928090176477276522567626086283847552004121368122576383780579278559121562299308914600724752499030732738283309337932327654566070626956878784150532431141111931949890137219658044618441324959473952603876491367418837825419777044477576576460445600603627156210686208219244235800936736238585799119857111122632177693225610228609430652893886464829991605022215605232229545665597016199888696930664542535479351017743002952529535477678163910676672808687064281805943976808195552734902112088563876048241099786232118073956497871695961312376659526043682548677955590742455301667990696091973557323886009191204533927551076140905996214324511997746988663749691159478731161011948397290230867191873167232022297567403196242650932381556046058030225340905657131724284183555377814324950757674142142395771486858106299971529709012377240841179808264786099769628670323661937675581437185268929601600061108024420651857379566451330292928742384456549388309557726974914215975534581265571065065910353585627596397128643263286979823219712432297458088888369946999758378363157167539037338048762395679820822632624123464125699601046748451211088393153632500704648200850773912490080621472497411598378523126124384763152145917943386235274613741396508615989441859204438254885057666742221110058525831780983414994664408627279522900226192165181964259325980420971746488856555477829517333274121714681245695890920569241269840604887830353797725110822644835749904074533942179980497947731652738524101965496224337077279349151978521937162808947140069351565532239670850967927463497419799274853988683376709207529762474109347364949060951465731361824431185784191152784909381536096771156310508548140500074031121351609354755801808210149110379985952258528885725961657223122516142577085212620628709843585730653380809696217141178942255111679863816956855527902546010648311445244188479127003852907093349851200511734575038748976449243190284917674209399630603466192167328011516018838975293307891941803425045964544207196369021878049783596477599881640782882817324683109242950876957791322043837331315968397593303673811654003226867670650634011635190219064815920489231592682224398852313970448541673159394560445572972851202150030343918491916811277239406484993758340868273340866034647894253250209314521191957273390713895738010967156687788531236132699772965677287403914860353458806949064143415092877493922479037448407899297890995801718400851945571407208659414167679118436010623614471886086005634404662947404782118845242688600694837500691321848258881250702398688343279857074245388302550976619715554376334489572031134984794157150233556094723475457417022586818987746136708707976793294577019694502505596853755298128375278518469492990741424094627253190937953875892724431456397815218633706857392360628181596592262931596133394369297761065454780141432711961606958074594169326291717760210996252714504258950321124713653062419711784609886657891071372222143209687780164260578678882530860994829046923563235781775209058447307545957130415021495553039884386542022395028026632762667880480902968164687548893804502309659134578259768845424602136643673428054188293950462313297773442153721070660538784826728244727107194240426880959415723857744033048156947706659550397949840304923611154064290231882661972137499207404393468986209033081403415421098539102475464288987906184237742362418372868363291464008624875641919909417391661004711122577118768958412558020771664985601928658617375975821856906463013519028949598106481398441273072039222232173365091516441053482115471532076737933598477483296362884667638841061659481231728246179624655631176306784653826764014806343710581003130895303040103877621121003780458572388718120992139831525574626862119252753625797454889785188653519413235698472890933236214313614687315466244009304666025585163969570072842462407747385663469538630515802079280827642876248846402936685273112964894496036808514696624455392244291254597440448903777368625946790658596453576183304763436674352826532156303578150969648792709692817105294814842107024073873285417862339341569919497675226026495777848124274486305749649989761667641587182274977840738384268167021422415935969028570902232533487720654099897590366542372622646531674711221179988224625837693394677577471499200827764308672297735074558373189050199654666524686467659335070188026595167197238180107253433754572997028275764442283565717468398803767934935693989147400046165989350258341985987500170326847614174303143610287503407040198743099356622869205123332840419724055104038552787364568333424106841265749163452306147233684733743533438023063845143762661689312021262124938908296681432167794318375071240598736474296552865555578642644017364660192956757827533091827243570102429510684986365700893118107353004431189963310512749669782844118924974353990945523773143665951122980812118069046186665843960109754921382747093775897337502027168731546635797981357559279739284580718119073463783441902394251199924125222653494771498289134200889489865420065479749358436513418231964722859141771238077111874300561732579563249666963553076349473800326913114852362866509858113789146841104319014909437886885202381860467848479039992337079999636392437881145038676835645391905766950139669880614587472424456151535430963909643858471928720221646833478805167859132960003907595981623225643964196702951424857323430892341074748859512858709229516866564004516220030494737835147965730554944560289737672374890536413514885077027755912650706770760516302274903099916065161293314786375719302649428500202481090431521738210519866689554822493687742157934369438275005007695819118598869820476316133311360976799899568970320185980690293972166644737847334928441489662010901622359572013373849531022375509513108371733173796120559666436475876784960254662619864959892160852188335776912694886095219858617975217914530773893862870125628068931027682394392743916865604855111017465517042851089781387424024977560076359333705107962585998839286248886499510198731440906506828868526393481821853942061439423043794158242786192657241579575219220537282007473352256920570873372448279950768983036970004573879730039123513604648769849920331527086524394493182266036287462195665095806378216389372817076770161470422353710285458718529097594279647267232027958830384364356982667946703516909150837935941052550857922909595093907779956243574985088640554901893451478829342280293931790903049698191132957725952562421360659503048882513258671606035885953753535651827393639267142098941045577947984373844275397091807542603519068730784066117157562267825960056336388620384993033687597464423623640578452471671905661504389784063193376080381994248609480519629383437663891372480706786667158682339689926134529011133170559992303587565320662900953730465697749201274517187715574001770400768068400322189945762539199232122819641916578419129478689385395725240454110700091165788622288119613945482198780384622490201710123401723239513383571655250921166887979308211176730185924176312790847250550796099618535268916099015068106195980751513974567314428785168104686202018953402856627505184946067431113634058958842844130725999515019282371470618452742896919361178487415847486963152369578441486880727326122452190470051664792064286100882823817361468373342438410232154102182751432119098286846865712537828470946067928878516460693949536232159742827986620879927791151048232506112395723907215790926717315283596500881150874572147175578289360295139867836878193718014666005567058613329356751022014750456248556959838289361131045345435634852809094869970947161259288244864668727777121438110798471067619038891674443337490374789015313219946735328357028014216955446899277202546278783532193433629194987942554297036284067431185779746738168223432372290503675402931360207018798190132090932337003352534682248846747702164434142790603442963524876852887193322309817648830637776087314694343903906178540541712722270605644581007195767568175285952370914586184295695112634000811293012880327492511481421078601596245864642618590466273197259176246385098090456073552963517524941779269929516952359687223768337360314985812643108787674867469100396145210697560860659601014400194474357339897213578802774545150051996236771080538986129838679191316578036341320634120733176742193073252179470613109941367854613263292377583482734094826379323420398621686012997651408884482742195358719672249590433742451462030771956692371984287107347324323618099467466019024118249433403891993384888449540698198587138430420794012540469956762132693511576856445501039753883749910248811563892669247856088018508467754559584516806878200073398840445838941039809403887859690860942271336104187055634914609749940274419141396304609188043142456640976641181208279682464281535809087599571241299874542194201195769482194327387771791673915516921260833102146649124834497223109377358652715927378109128811225863269660650355310263837207393246647421869038001070762376701449501227235936223958438129082784018511890786327705993473871419128080354863285964402514215683077228931233782064757099022956405257154969201475590786294941877118161866177514061816555702018762481543910188462370427944571833081854989802086730919609739692768337811476482223230312000992784332344842176004604735124784063315137359877268967121915771506907700301633335953267771847768954672849489220624762960900171759797667040981575865950340636576789219431795093576842940542160443763051789238265770787851858522545224161533350176770431949879800170659831272027351024889686861586664349864418479204714660165297414402905659307162575680013967743258418963751370057921328881435367755219063975914792190237251510312040601390552914827749283627389912584354669949459582775475452673722043092972452260131454840998368367177214770842088422281040968148477792213886983096683706164199100570893703352354549502076075058984528522587672743111129767279294784213868370338734376727898779743756660157113502305658658383603175197716974104598668057009737995112947180865335765821232569962274387179801470747289449998615088379893283101844132913143732832911612301093281624944092014022193927622708843680377313615367657350600182656731095083259205369354417807882563440899668347786776940052364617117309060404897245170021619337035716960137860889845328849040494020522736091563093656872371492006385764374280895464287305733003628111088782822937923213479071274801569858909545540881230677041420870803179732460400708413162612699622269094555305877853458857644112312594512622140246654233493524301369737159402789781273306365405094286762946654085085566575304348706062653893496424872168809519555355515403712266675182578995533980743249639944685881860917714507236424429030376779473616736465802829970256608975438313890029145028718685711258210524396815810572204652354810255748496326395082420390946116242438036961138592534482016518055582586223959342544694775160009646346256348047209353223446632820181324114285092151864939012797175447601827667606597278945655779877850384759698519002149464671227810465522980830718232912682289748281654828904136177264138806309003657792658163987378184495312369623620439923047162911656288324784412997665847835356655849472779441190996489248046282264958750778196026049712774215854122401403101426404020049431830868592113685662882874521181673546148391520382253377362339964538420574529979395258085575745060710656366596338713471301020249237171722172808749417949291584319468504184889029747528606490319880300009045671109323895506461968428846433050597298130916001445339673801821368255191595939690815627409756717416572998534071122921315401723648606311915676930721808072990913598029682875863265017170157509682332193424378416134254629281058545058339922667495109455336421908999181451800041200621358025889657473179711291397951590338519389795745894232025741748968540489387916411240611606081321975868543869753439853186089346188521159471927322672063202210909170350458703645754758221325421558382212052022507709219208357319391609780080613258501097251040712337857665073526058660998980641858546161935816498980571095211973730266291696974365243258047402521301201434304915511482289653081863401349438674928397243480101962724024028334997570397255769583360908964036502621162647783197702913827883494637802886397184266543475473014008570884076408629692539489499861834549559339518231341386163114824854645892136912230499829659585788157179839709986968053150083196019913899065570795075363814919675429187176923830054128523070520349729388815627578662091302702852800095748914344496529798728318356096782713952350769137247003289531627870825716592909715998115962451656519459932483086725387952365495841310731307118771648255264641362896795871321420816058484535806009854173230619976146546109236003831679744064828517711250818767030914716136635651999010889696284186293700231380231280883760344022653210941703790204749527152363411192946003513463079017628846781908208413097492201607572699078944751042412827103685137430700240910515134489588802062406196031430705229150008215166452727446020506344213275567009403981959611983635781807725279593318138952825448820862872745158210555612792738465021280582813265388734184923589221580027243506585035656912368163246132377309193815701343812602134478705309275204935577634134406481483386952988326585470642246096824695738122037005494751315591748007293498340241392554546638248064642663397998906642796447962324510711008115899858126931607950383056755752909654671367033442565769843007065360579615088143263276260345204900254803967834978534445156926684831208665300344888001503664667614109571291034815124244109374959105891059768501912743878961948112199368982689058404152904755888422280690312938584933592987463699614834353025749664782225051010733045707142626727267298282694288050320924189073228176278520933123546834117186156787372685748540429536687294580905717874938382653375335308347305053252820144633131597361262871999380087445931994207173106396322233564276626877010475875255290666842751305296156694756474536867850638520318220143342772567495929822974534611991908732818262402276318189256850561470526253190820242070117335382861146432433577573922840138673052071509836850430373522717455949389395633864803523224192649563459397494072325418880010238045576120013920626715305081949240381323466817993687363637748484182188912721292499917738569385708777262367068909332806242231846940687430377657414096298530929712522529805158237869032134491547895881299266030478985330345312372914957287516641454454289697572099466421739809567075486156881164373469387319867225073148639962479109383557132529109795995628690426982508132793379495213110704728931092786014536864994850688666091554509412311348125743297175772980508596098232848659519225175032570228220563356554867205911645009700274901598188520903263386667441020191305455752384673404725288602232909511471967229679985233914572513673820329285768903969256655034455860594785549555755887711613740012181560448837546467210178371857290542659255686293007436293894579416480462179921121691332053436558709090970659726259808709835946024316184587497409610675022903979446155722436931529756868889312602179022215654030504108299324367204302157592391381237482040829948756149404152818591473634511821622740098611717367631715615819505319038092687107174784547689926628435490176323168018749141026723345491073097131889121220046382513450747211591935540458435508907820923785103098566337669672663973158518474804791645157691305726006988965710393359904654673297188273735798090376421699189087434090197597116832006454719621412723379551234310818640617482332870219882646073979806446392014019586586675342221655728136165196407623206342785633656748220725022577402673325968983241119216519389985701780551651545828158799899386656988086055789977062124922792103249012023915038632405600919613543351540091856375043174784614360144638111124588090655273824755555258877644116565517180189328119868782034108547270039451885992500433015301357199399808420514874018948952070337873292256975001422630245185958875358207290574191094806791405450184085993760519422729755740495857396480197843279329144022036682286591919037527226004326212477748584519758380999770428732951053544163799171497767660447023710132830059011554495625864340747364030537887361714303318836987567777640601417267449272543739581736635034136572231700600142761566635289178346351658427629626064270018427662127516331712622376021379910162055572958936900223927385994467303211995610000992996046243709702512170339580593344317506612631355490709372505893734796607358525343188170822647411580347951326122397373454468926413903234723794420109152579510737568503437008883199466138441124314076976188606276492960938412658271738198606757544919492724572267776320470842470496893978752649973245710402026321220820872550905920133922216151709360317444943293156716143693478084356064976221956869006546466757913245188671328955062626084817064541209279717022466440827673790307890270014146962711105645699413540254629810092664469570871020855496437570079340794806344345401876534887747599048266944848583269734064218473243252585558517802612925967019888380305077430058531382811844937122863972699146891698454971419221495126964921763784256914799626447332210788506005759486105757762257166891164075263175320560572563253720914746672276021065407802670621111119027458788401049490680829327170046265956467226272224755282294217027617567949089260225985601395483918682888443459220911747981211973304844724331329791417839199348100977565505148065776253173331019724139461377559324241349069304545439397784220584288898036310029659130794181609615512516363114587689047374177308840783117604723848946733220364241608882449960683924655083507366801323695171552462063807239122462451955610618863007129092798000716398392123227747140036468200147080171410306102117479395134855154073308559050784808208259857491628726171646292514756694929974671940431259964836406520484064236662619850442011655787812697411025804888952665142181177338860648872679114189306493777793878492989123938259044816364408089892804731037877701588887541863026047567434312190234293124516471335712251198230165913269940213666267500994316912103828024870442034478462073165613229096691803135188955365215473887474941281777023950296195548379877172362065048221137334782521304803168851643666828756483338077664103410889905396015478193093141147219942572283366491470726417689323891840126994066319409215828219367816789823658290168757763614303486309457287693285823050755942163108931381012562811615872157605368985839506528065496546045109933227040642982388000971254706459887945723271842943571939039384243962180147027061675624945247894144409678605082687005923587949603990330969725254590122940025712501620540447499555873717645512855252314574549351738855395909374449173161814461426164110231948688329890385843196741246535018075404882258925978692112499981872009359127487392862484666729173538594966139460243523641552523197521121129680658188793521700180242178587490671244931452638811789875969579066524060699704095290024989880461134373448556014910446164612669296320168333075830617783653196564670644280705614347607194292728738834246759607812000264644947066956649413385463341350686259360391967354276045618374513514542661899850088024665672184464563536440310001886338538335586987204182564663821667476455221289197917223993329233776750599715174923967116465582625081825768628522334787665798901539805568423211453587508601452157691521039222441983496676533953383228543647075663645867940272123140237454763729906157615601530965006609173731791405530889770471737080472780103698046760459034489111816310752508644768575325032795510758756302392075963680544164093831395183621249957291997029809138904731257125607006364030824606064219542743106053833926477100494645591898133453719040870648650463522193204879873538295244335773544984142670191659216699375264943830399254465285166367226571888333444767105173829074007691921050556438212360839871073736763277391412256227072901665283753980628251577600647936354219144964214070070766994605528184581783506047869494525355545404827892588963718170995230039571827031818758556691232352348096275087602402862520042333061780172858651607403268944461413130162981545992929659706047440789175296282155925838114398818480832250609046636965253974534895869419332681318176910638227554195641369485995556640169046642908688275069976718937862585313930196879455531946614544881242519041072659763722912498102286340669074828529216896965864245046056085592324515834401199871476286311714234578513591100938408800956492037227115792537075286164728476590043510683892495113720762179038231266331993350793343442295939251606448813072385463186938254394688120462394702437180293432282845484570131307951173653183275481298681615297488974547602065228518381507767100007650284489137933529397920207268653671279458916981957816276755324008345721529178071330304289886524398384646449559192281639026601956969329883302148165586409323048732179082976812727801266864096389520154262132086528693322845817847327935422992816587574015859706740513355607377100533205212324670639316649105344136498670370871866824374032348823657352303320546352294430952195454155433694436268943497211466596850393701058226911308495647578478130577635924540683552757854399030220123497916511823570334984711898453965957459845656044821685582151167224984628470900635051260216881337584482490850147697056432199485632323515055067698721081365309023862228306115365615146373663216721514225256812094934102265286310903911541598861863108207771732774609345576003168613211772910718947106565033281477223626715794566544091539001303814010251216385771484704546458589643772232860518475961710713338601064253396727638052728113846747234007775782718018028585140400192996408403789928923468466796244125370122757827773370866901786105498809653972148307531036278998649849512105314888772756126561756035856546983544875398619640087031059208011863861216041027159198179917398029828068416518455519708760786132591139049959128498640099911075137516556263203919453670123246034047850700296244927962602097496235939438779393413175057736430679877349128052322128845810847675071485207628538926645719209608670045740843088230886074187416959877548806168516528911360473073194049027956700560214024434430323052318120138482681807532983239210948975501475847717115760896493698904491229008859163784322997903239818771403011687178767610778057771397231438641974839758444267422854590820714718320335578074827952337958200168367456130359795925033670137648237058761061558281184398405936812514253814219048921371714261640989293717412099252461605720218412493578425002992663484631610873413842007116650881303204608634519576507416835983321217009176688759619554884680703076841662383544298281585426926992268366820700092534896006681027191557275434671742097183443670522969877678850563792038174251360451454014214543974044636693010559221514157183981326927444506055326466965105337137011631792034146825894391318037504519049171960594432384738170667963672957653638625215509909243199583763355930457484522786244547109033495011890682614663278817091711595439731768966495645770704170537199878590604467563039333911620454634831966065325168568746796117514907700768068097477475451618966488974542200723606518145243338897794191896515296317788007529233022797917765042812034489199899405119546170495092658610079348924213679570645138087864268891609613829712150292719909178892001315665968364601197800354442717555010997962202028891987882239795920550220721215676598973358821954910107683325850853168405471901459421424046343558123672585840926732842301084672830579555759476226079528060286240402560792392747495882385080017100149164985114300970446442354115419366712628792799617176773734918233801781742622582360929163548131557108273731107151640669542960914954878011194811682576665290403844515448574075909934381902276840375065141424518342380510983714016111544296002942417880764682892510784871544339853261398039431444416374552224384068628516826531855964205332682631348811694825511904865386420671037229113618024218984040297236004992246639583954179554366183944063559044483658786067561208152934373712332006024350822644284568678070193227162707353305876445066865954776425819725404929210262335131924724453425735916209362073138626233984994893824934313667773670661081299142368982746797532039154103725783213028626509366532614314705731450470505872691263112879475850620514400686124525324645417092799232807832749435329724475405542855578455366172300692715446632376785684020386821621943952526411605780371699968500000961261468501567788537486454167303827130963114078636320535060850883784108879550925610234416488853015522210110343978555728605741421915004633499254631713981703353854871550643838280611583230485565566370954332603393774768191856108915011656854983755243386845758256266205405734226128796937741556299630862029102344963615587666832075172889007390129287711024564777165187722258196679948194855991901561561484238022084550836362491161226505433221386501676427232457700245297888938141666817500504433663880397918699923868644090804137248353949562911076450093986195880123498503593120191049993083397530385964552062209026253919951413980561598407838275542736356887684992132093023947818388744346405109445394095711817292088620919493588033777939293833526203730551461101812971883889974880092167297958655799877511077929625488948919723396981959216223450087709304230391664317670890458019957485728374743215047095308142242201913880018469711662847854445770337320618760374046852251237673287910694414121210422859305037736261399286654557631685101431890987147912118732449152067349974923943533832888400487917564256870666217033064465322638726097760702812045055940808226337668105806740635279178913337039431059346375028003766738308937323259590472978282840117431323990057474633823800114027348947463426063990894662767761553782275783824489937749620840656301274436391790319305990348695105062496777854757215027466458991158892660145248895984048691405452455248720433742892647079597681567614506917780983951204741172101777031133235213175288444039000105075873642764204675364316722180025355529863836167072711444589772065422283759179229417899136767631728047416409541034675440129211396959041962504711287786403145082374771772123333925195944129743572258233213049458134546678734527371782402234409885337041014718583487642780785905703343831580859198580130484013652086178456517049392889417644943351021255793653366743048922240308555878402633732931853690298459474386886737723273418799960326473510959714980846214200164737451950190746518726740012976821216761684383253985708786983575162285746898377984293526600564662198926081135682186649494593601704218493403702931101220721813725490162492316617736838430249891518984615963052114239858326441801097671711707824626267254701787411164287335492773177880848945844110422366815822743029581667117421057058000439939802034668932360088553152960462428292491801416278513405767067395081888708941336140275125282591730769599187633738101195512009752398794444813639696227217959372377751086699411244248997941100940927503594407557298988375342547457940096263598421818315462953699104434817176924572841434785733944478155487989816022602382437284948166432160967349585536280348290514657311547942779790172244793952194022946707611725321492240018575933701516947778346526594097203087311600107810232089294242917704945004716469086964335068225605426634814150127257698420317246503748883030480671493973435205442031370182235323087056630663213944586325652275776494358817640887613850921984976523004792673612249156218036598090667505586190793000244658707390834323369438766191081520274018295585569083776874022421110543067451267210258848967118956919379490248550884712202204326600602612365710945585489735913120036965237004112304968186648568078751226605395296609522039772139719614182334852285048398208076064946234402056760441715760606437471352265432757048467932779081141397716154817037883199655080436108334353712740019866603690272039254792440441857148422550767788856595001032363485015058694156180691941733319657194456227855293882440127010931760321730332383737986290427475661500061273501956915476681367627771290292491936274182954508679560356666248122109357393227808698166167551305724135857808945729749120242235452954448329453776447229658622099479249444490411994716172788344316564857326321273363487908065504355283011861567625243660033436943541428506883989611874115161937817314812238231811607120651046906392647417700321111337028146884968529350515172814016406685144975357184240267927733235947028789659462497771380099187319994342420965532505533562910223669294259130415729060590507673756943946687076372438123245532697192660907819587850506563945376914042260014816208899834434981955577807476824945758437853764474082345652109690725310357367331824099737549469527803394853302980615524274927492177215134012484364434636928265489101422185305528325170060399693086912170412388615287664699363389747955799799840406999347100182077230501859922946557183967052581494302770224920690208334347492881830437650580600102143880064377110573047898708698920038614929020211723148691669451415991424779125842320274647411043946406112341561933633806190269577415742186976649818544064000439504398221537630349577029060269534898912542173488174310648728921634546610198064387428267626260036802248604557661637844983831274057983636417988226525522472218899069607084710410707457750985330906953791051325049030914513164577343957813545721231076507196570698794560083286420244062974418003348590759966348553491545014757258020691207005118525134112879495357653209068831449489057808853259299625978383675799138600394389578650122783005003711002499340356864028207985420309242332127406625321382715461944362855815138618541884715893496188773683807102839025507688890098085045196874376358992900823186299043105171576884653298404681767542471137990896694562334642906523162593571170164488935927759183386780968083206398961597708003230279014275160719961605176480962012804232071323286191998284310671258368301213601466046904869315639342872423279784803857698018918779694092726121239394043754915933527024429068075225976702371872382304971692713059964897393453563816679674077135946944310674923478340249455605230683449481065582083911312765614861248164918031741778730630289600308951548837353797822439988467179966234731771540775083557351638407188528173633944688717674886056514954712433931822056493819715872653795134545270084226882960760175078599810644194390839199160182104748425835868894282997435216992761638527537233252988214897171411296706567740975274155946588550603687116813814402858756234684337245068017417861102412280868874767090464447001654599408151937471744857211945252602032591114139357795026524150177920391473344291520708770227418894934302385198904862471846786936114173418414836797926685549281094794809120903605528339780415055838477664353722801880048668063252583615461671455148691746810843351440615936428462573912115102220444299456424327213335799069115457388638789937373469994400409179347418359846364392921838330995554319795547852548873388115113502353907075487216416553166566498443087592248577869105882015831823011118027421707405970664706955486372999826436607449680642572035670026120814035390274871992519876107941852339466214273516823500599309357908855688398342194315994377877853413442414453214549718693322458357310109233040734178797399681034450050660946611717481213932570869764062196678667279658270345737755459860124081251074166639251302390358125010271006227528332450279442414806414623663485626781645479619469878548832855150113095593831856081848091167396284342608841974324413157135802440833541511568853304612908865648220694425188845143402609580096697061118357288933041641287791285064984821703069449101207719232861389615424439071524368471556635997936141370304124179686909528971443332202026488845491748006018890599121418076648887133656467085994554604543627526706723523816213797546089965556661323533616199916364928594246522873288932877154803371158668874705240377127546911108703957422337577496579174408925037629260901185077185830095853958031098129725317005198917131150102453399471370302927870937316063638877226512145417285331892254316786663905164721694757959655525787426832677695507508049042201441758111699784157242892868108118145837916082362335140854648450688317030262822880754489628922977371882542731756979945219652886167708278714637775493406747594266534371269311642264577948395709992961940084905961896177416862634241307174341199746288696915887796167780655999792202747493241016427341151625707826100828458543094153756697013210742059248978090689541206397791161386291307376678602729791775526203435188286169646029279283071526099585282939833084681591404084795772565657681374881840057082712703982701019935159375853494656778374636121272085625424925972345782291913554917814849489996216155932650928649055174045289566352018536774703478212378267203495384706190991502468337679433427411124015086355401339095944390896252736631756270982755756543593900027592155423529924120746803723508898929738178425659357181816431738415974718982306675782185629003374354352109982826054115650101917355688174183031472620162939905632227036176714121791087129690020623656968112628112822321695800063270259342744774561720068626380836436440229406805458185367228864529115345197062381742652289554348651303376264627853446934090422506450999533798557625319560891911739851979291633638403008696516995768136046692619427322814617422784547921414657522470995806618969426174268707412771785546526845876737708571482589866134464549513154608914016119934809598585683343837151050570716027649445681399020815076523601924216844444385815737506495431373470901207396840747349866479054133986035466775108890820409283616210108623422801063534288857169759190237687177794936782126141523069009173936786326597522347825074382531652279572924644119916611748632167936485508485442046287848904007048821679124001868253234853984979659238677972474155903687194963993469576333746634460082414819543031350404814509228320734830318908552796449542112810975807744777850700508603200978490534793852395518724328544440929686606589668296789920143285342540434073851615112140060803621628306096883028731252528709210287852340495873396116230277076675882191610164664741634802899335607307550512346007471631557385345128845677141140047909456507888665975756684284822064222882047686867408446092093281818843606361030219583126103011230307701038608167189850850802001036341470462283979569745226065006177660842073134624722766356400360782015965760855273582047905918654810232761924094340659540025424959842921308676674559171259701611537926766942507041006338328333263773736369180563300992745898654909566047115899140781323372021780317103378900567234576913415155234908891536341702055854609717934254772545634139922733457983724133774201127119177778976615611878550897173518153227977695229928039770299506697028067357975955086684806839578173010282704542258686754959434449954112608665695776730432459666675522802137378298092899166634247656139594528909107595893041898952489238617182429839064955486302341961427503788971659189813186772158673787114176348845087522319820265061691646469167525262000570458402255165076179365562733609670973656677974926883822632090677705361509169801387690862713170692348139009676626434587820594018344380579276331304977189097716067224236660219385752809836792342600957729509469294678960559260932060304875505652320425408926453824916940207582269226629797496007775666955500788933682233422017050214001970449876720273436879913580244786771782499982783773022475495643406288253444866307765808979344357211215570008654915237529681751262548717430946125030881601239072426112966328227610034469425177040337107188651911883783816877108573655874041672778579598437166767654199683985163209838545884912855430679523304947223988231460233513352872176827174620123986913939007460860809388684448066762424440722888658003881073645304893406291872465253652970844887106901779955986691292675966540236597044607512357411395210867285198527003442517664057885401646355372196156475225588149890378012377128968010406845703107581591419709667490184897869346819198492947340984712638542552565716540874555343905818596313511177277248614154360044316767556026802610192718723410543703383826673321760024777327041141440110825857875810206525430434248215431839573871947257892844928552068080826248364518666162300387780011134354160312513993886086549088217032642588038469090201954381907661886410667615337731388118182579700271969035029425401198549635201826985024167319209730275536174181338897874678069808497432283680539931989453560015388599616181221569432847859146687585882835401807030336805048865321172831283188088930699460902850857269252127562492211609941632251837396433989598238665872689099488214562486759172113568035513120982750309221484909641237726634071614233850906508908103712044025053498745205681793229983071978969077695823035930211365255704817664894859519596428270469449846457219357237128193733949808573506815953964838139882114292455658883938219812184568214672578289644950610112613841955831321298809314030532561779279827917585992590191264739363111041205100026238394858157520016085616159616923141388163634884472154457605658518126970136606420425228046780764762398319259064694631135762806813376516003980815184610678806219030461259170193863978475594241461110719638532262429239270272525181969836076701004934031504214636249184327215037145366248000974124080373211720213118051292640958182375963467492329181950335270821613176266759212689229491868859517670836269492937947922425993602781107826531703752405762492041283198576151459757168798972395076925770080460795526794115587536236029629591487802793093015801494918439002848908121170062664987949264133578568263063261537095953878414896400727454875311704070665825287333873461939798781803319774614549002407051474497948106237955468314132072717185274278921952123181874680990821471946364077327055527880099615815106357476636175730942058096408662039434506645367560989463212039080959926468029045914239687043431961148570554970587814979329323072563065407943006514802931996628615347422299352265572081439428648641330733651778233784780449610962807385286867964810010014352894912544662553471432714139687649081215120420342167029183870413581635547668108878383312252135439214179370679253710649766762389952094338625524012957605542702356659206158723331017993336756905849157484686820275873612223757481029341291064877794642399777326644357317213681402664830977190302234374326192632528431438799432429242103096831924906475766944062733032984224647871225006934538135476155456780938904935170568325365560329581132483663317474543427528493278330876705737889865470439132938300053121206261106232510544187638118360081599409431603736004227748772749510038957209442549887377669263710812427960288460620655989337726321489509655748808666829775832848917435897879640028705510918980309785783494823231267656781200948411198466724248201560599535621849547030671187134524801570593775055817235295071719346402715910088800219037762014540865295699052283073082389429054297644410469757941899582251996039278799278874828979031732002537813279891475402438379685512527354732761721702173122352043377529895529061287741468113593365704327928980902818097907651735662975579695986801803556234865124247079351927390755965369908258896774311291576594939161701557806916737380302681261851713771758702715466909364229860946136975041919937713142172531938485031462012395444596158766742252053719661718686299779251547557747354980310342512156612170627657303771764497894098470598478992214614579477722920884683544170985643011005951668163671603963357141050904832871339433749422924814187363241095322948505796917337287155082332056767208279014220559892094166763724326813397388287637910775803982131545802914344512509205169737923011868759817584209757519525626114935707496044412093182339441531491508807276560741555658789779215036744127911728535651774373462581117760403746116604563410705299804675128486441027657202565390299380198229825064838338739403988049268382533901885030962112872836996889090799388526477232130266962612033684207890939551582197421080312906382081154698466316424753818025187623208289046649766803483809859668373519828830293512661029309176914863440171589100486897009288173582040141034510929926790643574410139521724779642767072275886963155989475154566093715820772155683097090304465606728396569901058468558948680395754521273972244621409934650305188638186167407006163427760508177018506864991464474683097712671682457383745822489974280811032269813963815857789963376132658363884158808556010733716505590168944493671640774703652691537815083575057155952263972488272865248327438438782089296205040949604275026929849497420805241970290191606128369361927209386888590689722082622978799662731666807512741380544727958350997889639944169206274823631343801006879289168675111162017198476292877676716376199157227600222400709409927262227097186128595630821252526533394402703506834974018779053894671201932150810903792248089948761975684574704740631801998432475842962594918289801038233986844067793516069896479594875466863730996709609637301110645545725985043237899782280720856779230912562020678692687091990926436669279051356871764090738728082198054501852778127064980032622105889131585214340402266199061397933743942485368608488364621643880726942898749390909786247358285675078487526760044562913105030844525174133956332470528016970052453700236831518970973843548979014055517553597794779952015919878453330455550402594245304965228682074763514261117791234980361422136339316454360123200710981488095504951334438355005182143739689656133690001614726127297276270050253017969551251143975588349454909378395482436806275257275937659715003303681512482892362453927831966693370517906162666813563244312867563486571852562939282584720227254762428100426636454552099210345165309463462080007872147195882445742320506110861537497988119828522957564002365801875401417347187847438902387670203306447210069197058690901449818586212429573699800507009843911577768593557111850674454188682385072975567648341755154064838451972811381693525473611465895392346779997873131882692465980430485639378230058749466910203102197480527263151566610411104127295393515427995294424561642064265734497163378799673730794658512341678818037409052325038285892024365159302085535874140670242740448519470465416613052207507546120550627386584062912437069779960073857113871281960377733248713721792965886340937731155734339422313868490399383526181201146590824344248389236875789976235797103028288267784406905832455818571690401716903856075217387271804314392859008707904577457072792230063383354062261806174143880678220383241037600381359763249778386904018077676832701880603012234815348522800591315733499822372014607930470782233855143987062528740613549555040701387190783934421974858384490455872444693603463220230602762566058261731975263062215881512378697960388391065333940040703518372803821842230369418823489380055401284572947221473239645973766586509007694524864018554981247363895133211999149916332154387589330004010040694153308833384756823033248083601254308341155525792667885732650102260313761524431828126895397202124588355984725893064762254624926217304307678950737104558867879255263372771508116535660678371592037096447881376066571287804001684412050023856535690191627734414973084285943517412517809843490486099416702815791959506719897979609721002756954150613177708534816485999360866300448495292015164871779436242672382137476141115342418384659368161127285326863821259502406425613069394214903381698232194016670281766101797945665965477832704781712332599797548284762632395799029401527969777057666256028135683152041745715258569181701925307901176066563243381180697664132049069741283222237843070929131169064022084581554688236260480031530750024169036030659434017186201384929487432749334571197763959780220326827663776122269184609491241571516408715113454900825916277544999530219790857911522753034426120194315079837926982691463231989968444971921706367577803403816252385309772449706710363610936098794505323613634721047186514748044360878742029510899642165766100035743957115358750079699150382039429964172450297897499007085811097457156488837216268633916531704974356244299979155972173525285187206651250464482989942565902931940745270436526974555699673852686194058645096814993711374846246720943768594886039822656312056083827370321446228907432777016805281537037468236924716425056117543928002316757771182620370207049150953038638665553947593686860679098545506667147817246560676194049455559536614763495404518247457121898473375036201876269444228982424200612385901859645570686533900956760907036073536061419900800176684318106341299208585205785422665402214354580292882940878812315699173232919288069631697437665573065817094445054179352414040883865045436284938486447954243139543823690580539048503985798268733201083923558744825674103350176514784185455197387218323488498407608818089481713054430465099407228212864470159085904943580870822179425710751103803174185455517341843906779079392288531729709487173490297543381826955653949320522290578219077840909542775087696759056669215580994947633349923340366162045047504868471968522527026637506612141670521287523153273548902424573221484180429178492871206297503927087558746905787009392254763939295045342976303201830092897003991080845506324931362089243941345901497886455478785339779413762206475565298677138284274723383586374404030510442118306406273723381152836720542839103009370547435475463642612640763537430468231330579769361574076017816769985516375214603280302100943472165585023566981871187117020594945062279469009416257027287425200755564097346723216532534743058559909834099396489634838527572578460541656528344136369330321341134791194460507414920368890229490388512513656205254774717080306347123193262216468106987767583078061067357427365215104998404394182686734612857855249964013708240654258823905090563064361504539994289189458893768402341046484439307699834481276373716961400481366196671276545564651619114983424523480072169444856579476683271189811303939053410795249155429218838264682750582629537922331245563582779314873119769906005884333794875854942070352713470934670329875739221348932895289430645381251950061573558455072458045794968475019239117173654639823920124385122605140384582282159963963059900353763983345222440623992611987726502941711854016999936713764593289269312312335260618043724084097832945816669719542300012942889087024114100958941290173452909263268250855966897543064517953442659016048847755198651362599689112830025501016690057602890393450953721008681391605567991477701556729418449259887940389108806714744996160387696968229032704616313806150692605686248180583275440491141637526811610811172414878865750760474051496116901929938094335943280754200707568925908764552561443346370308103388427499951417433499176638477491334794768547539250951525221496391019505820283983318734190411866610630285392311855868117652154692421515203417331823472700632786544598692006439775263389548521673789046682881402958397440350108205309511618896690106617534701052647683977300297694781637930481919539796513819404548705890493566064435214621784136748133958295414258809901790037482917519938364771516503870562801791333677876295543844789738322918318137530942991634419878986615560292264132787757107662945069493905470420850383573668174175411368921106213539396596108310589494735451193918802063219244328362847580713424706241810196391329258398658125193694737367753466782236006277844381117522130333367018408773716215103284694851325647958545650901504781251965464053343126093696463309222520764799353020199915723448302734277613457128639385655122692347099757578878407770626703966465232755954006300957630027295832414900579149685174725495644647505955876464557791880899553787389843818722344335752538028068338490284366754082061231472616211823806117633035067737972575509938267742410256591838653546111910128092253321792581600107148992571314457896703081426111650785247294704098800206289456894532034539711978361572220442345973283346185446699533224469306670878813767122236243726639097536045566843264400997883155675931474893564226523452498653355403166301349707150345179656841239723425761257667906925165117026171558392274531198652908823340828089024359681813499785905809681042138509206418019163271518722396762935574071787897484918416715380922013958026712998388524096878485325075082755625473584289685963265010781082944726968368123916756592906072813537351672021198745417024247951454378363048973577858306205416277466412016690523328252384333055811104408483860991610431792329022277041701835769422512512887820417329218515186177562001927679862247348969852676844391853976312778389232038449316136337353786534144251590115573268549721613022854480337211112532700809485520277880778279699874164333131047825341537730980801912134848330486896568697161013302807011562468957431996110424564031104202196901808434079586871197772315282102130875235905012470867786663739356310678305599896154478857071451004621275780539489382200874332180349007940555755167190531335533323757858984267903277881115463570502874811133699147364593277599414027583361795108919381742114650036876114910095964250471936142539998202111280964606833922108235113655913367752659117029660307925681173214926418256222942252443545966437512448300565430982690824354424320972826708729288260932962816692399421022225791661912282101978202707638390352080402811408802959792036320042730245138101442149678141219368523182713085682396576811854669113117300926648632926212542359231644285463862492532958521219092715454114450625916724261949394673143487182443201600344574440154165765333229425360217031046862015094100270927079743935001107401681824596593469157642937930006541644017516166771032511767512562873621991949577438469781314085946785923284946158480759472026897166045788619371454413757313870510473717825800541858853947186325088463773138968762237191045589417673299141697335119481350575339105684077087191721898880570837563906998811258225961867595066922499619683597791799656037846647767344541373960605197717484467686875516933707977875718266339853933420885856140787988240772879835403619135682734265244363277365385446686593318490336673148209487941279089330215697186365709723719693366613297044810313599977654311769167274648969379887665015620948925830497253290929371376636793531885218548447067506835948664443433421962924781083966652310215070831456851651466004894362222884316928834950239567118792221559070686506874589398777472804278836679990114418707098843994337846291451361857036083412532618086355058966948356907659952768647197505764634539399758954685869194903126959439273350712379516724801318607459151124008263653611446066797537865290962063395376199167666429168252920860389390933604612626353357634567087700606651594452268102945182362712422080568473651669564280495476137985336647023699760428292558242854459847215547421868480005485399030680898305108966594130173921582278696408683574085355266647150635967098507585966132819040050698254240555976306226960751249857683427882320362266792270021384930305574743241803452306319016440012001700045139552070702234523527429271558104297815490723873739123640949125491817309658704096171655830172468572624143727339629723632068599739779228769296429328880004343598123183693596237088027381363084086730569068942332650894476392566938789951001953746381967989070295154207005822063401021382861102467976664340249648472983942572700511674043546052694032643232725759356718452366499232887503493972047550701562333174001929745563829810550533757784302465812572160820941492740843092192610043596657804734392713021283237408770116501978209046194799459554908882607254779642635437092792711443425718540378433554533889323801888564541229648739211591491777326836871859706837825447734158248086727309827265029534116447438000076267026531225004238261482624617959651201433569264725732351864613348885009727565966903347092602212419266606367776766533754569001897933313028377968713764394652641456659805129584786711533456124424669252333704312986596747763251734308669233421062223286158502320047201789542966917176701438676823355790645129848178057096752504923899851954863084229285865808308807534304163387928705392472039514348296436093026485562990767858550597422989494769951460791328544913684844318906624913831828841880016705511906759740248753607610265991317645026465460784299752192559240941444812865311838735036159578324942954645710812339474125647438474214528975787444219808368049912932866352635549692761590954384101862736021648147317984805095833357312535158375514918658691907578382258753201811919950831026262865248991037759854266228350961043236637087350691772061488736345029369519819762171340609510318185049927716141171900968956097636603074081763590953943140289817484271120411509279344683615767225328146374692787317257039504065793870786099330901300643281977668032124313608542989213232564389457799135489196673209909411642020707555007461274335450273630937115923402226073752780235650731399539894729786946661271091596630662139270216888264852041586536022594898315112308612843943093499279928463323802777379198900610208636048157437228052603221256703874087168564941756063894663948986411712336837298840241655064545231964157492014757321591016699996407562256807988974679572097735584508558251308804628436550705622641206899574116794791035023144228898240962344599690955450859154433971120867273568018240620402366754972335529762950985051016508703045367710984895872651754951109099856315686643218890510474292129898901852784501120551942424368209129434972534771787871887316863443548342189557175260138408681926973997557834183596720598087936167510285531363397169814068553175458973744715880114036570698423776888581184406700269195005626449952378169921049458996078560148740181582678238696378279626548268668076722884006706316998570209404573743248224124103597118221969456013348874790612873072540759207902151500578480164941679665912512939677866023161943298460609523890487810690036544749979692507054909553269653731983846663574697121909918291027294236150862000395269722882456150675990619970738837373462950165151828820124077784014680859243654553206181624859480000227628615933588653128092919488108077257189899660189491225123039073035510974200539638267601972618908781030061205398252108596950570404231141872759210365886132385517663186315200035654498727185896204531996436409939381927083507568385698962919022319896084390404403956587852726075213248759053244199686721481008337625091061038394992473216479944182467083562720671597681627334945893274242673158661800709791136956948025341366621259162997311925939172234840211090698535060357528098593585703984765195816037334197487146152872504543565700705237305295539676185947532721673074333951416944128077626800479022868772964663378254587412666706142196281655574594003488898882783229474171236528352018675911005623154657055026362170611212681981537439402115632396344631077824170929060358980674702811397267166252370243346461444162244631428460302849234348016327992853514371657079779337656295129805804842704166984439383536672777141233314035921776217328819905808914250822271801130855854212790488847111495920666534408980844389596258179191692408767121813747694185836777132601766205379164919018434944825962245209068730683728044850541280575762828150900428760722959518886514093620035947484616538813918617272023866638469707771568880137690915094825233056980969166190890779326084954655675833911760914137472118157900271383066354454218175369095240644593156157935571788543425598715841917916061639332620975094647585178228960426505656192761131109120638510364880212737760814605082064887912047250528499858088326506564301001254968319039662547640231016857753576469834849524141180044931687664204707422675863564322917979918237540276634881399255732636077671858158347354396630004079241675044579127601616329372524723457802650099258042296867646394700286853100993164400110860859126542068661550753426250357089183745676576482339358726332762084472314661796099334658303938532273280721064025051403876254291924957327160343025769769188543738356827926673466148732601684663311585988275326293677186174912333971678459892128571512945516169689218237967945987847042076215332251458456766575123695998435808886179136083495351520530156257819707938467216469631061983618392190943748488744962891070140636143047702524989353846914215881234040155750966014102182287474329831327413868079223606044574556678494453043807340843305461901009081441126253019760454134316473522458020801626309857335483251508248832077714169689265891738441366741937653844564522283265843752150361733811483743065919977846568710926567590439820947307349049378118761833111415017570669872667250771787285158263168432238449229801404906607108569919359837657158354266988147172951618965588645131649437289448136998586051893194193691861198399497409846005590124629112495809350751767809811576024429470567155157626704112379669476969640439369896884214147361074626467133842533523997760635359121276261174470779389328149615471080970705009311625786071888084896602413914033091105933221394808275990590395531912911389527673267182266318229188742066761361498682666900443110661832213059445663072350742281123389215774165267984883784235521524285532125123382113427998366797378875258199606568095709431017859399619467692864597272888213193962715842264615199953186367338770499036708680061335822733267913333536021701086685966359087935439607130423565823247476822086918570182141750593727884755100078656992003603374333552803299487187415896017521912081827418353775168042750216637062554692432851515712481284994935399781665866913225947940120780207932528820949090161729528081287622313136432479960482325026482631674466022293007057647933524609084028384069429357776364434477278418045555007889568614200872899343946949150104755656919442352291646411443738886181130364623949886766058204547506854635805472355657121084233084328199838106747239173967030474447413761935769384376776502061219094595648035417130190301431581448200247557070163683849170552912888301026072819258062435960885167844896756015431212328390644161243342925019857943344848536458426498484591371179883882228606019307694193185269705400856766925019810696479000827465078067996748157799538527466767665723911156169485841803209040556082067296406986807673313820795385070357071800443364724813793160421308826918568745963517352143002495427635638404171723774650788636216182386611434317112164172259591260087431193838491257140435546585592294951155445131667591029015180728867413335955570133011178636165870365988947242011832921386043814733835217909360536185136260941453643034617673145068405729256225378766437170412224073423403885390164687803991565669466563476709857158991359265654245069168694769004055768362804145505154258651855318114018490094094835872362477909083577583903108561147051679649835794402728954448368037969014276762071620682941049117231351081802376659444421722850393367147565292348217040528265780278586762933909866769629182028615279659730457470262453699232838508932370381348078648530730837195370109925794593602582277908125406488708097276753181245082353510830566916300689919123938302831652608319589055167020826780977974528400060782573305652368924949892721705848228542710743876359201195545963627429319252522125803725797311898901150136994434973594750289196165001917479172814309598754133429290791039009306850834884734469655976413714775612033491961265595688925415349591637601360908559088716179604104538523405097873736201746880020702775430965907586418165740683916014764662079979593151043522931402398672779777149895270859911310462422958857890168136044060064839138640615782452767600407427336270657782448866727846125581698003092554374134441889231358106896608179593747798558283539790839574381188192188123749013228396572433219697221494101046074191989214242125073335179438892097577903177068361498445037569940944138592914172595864485138865633484947237543915974815938495048143407737723613144388347307282529810807443542900206823642002221469274216135588714717907078175284581775501570216627844510500935834690659067163259477417184823117461864619116105487914626540013757921412870161460433857531947836718990488930274246384415861110877461294889044975356605819854979893546725425621900351294626122253760500550775264207811077968962671841161098032224030289134836540297937482586488593548128094013629481143699297138967530960592555690946323219990973515772781600754533137996575319387243471517615221023115032850059112205008719832088398935096010340742395873221823774998858809485045792957167052852245063974413227092383503930951102456909545687419394464936290438266840346051785721462271732365563602381737117489480075358846584746519634574218272479519932076953766659834905363574727001590604464139541611425914086948427433960131023633662012076312943432940798636089269928152298081415525025837671331415074576968614266023629501112711122549508169603351555362017114713828978622863168855289250394058815454558086959760465030540426736098267468988987272786584999885956461026395210512900848648998925108049884462679742930066619875069157934805161640529098495191974574506073522958554315197576579616319368765546285457242625653477139767064722450521106363387568281992848127431420640546705264550523223887278744195188912149799699031220217889090051757741067751893165752033243402150339966772018636299170784122740276031277714306754366428288449564259447542769217256001958586727951019153894730443298460147783442798938718192516227035597406768085149412442546566015978552058979206379543975624596835857544932815090990033960703102869961748814801095036052176731886225853538220935908668201961570486649147888600905193519327455670545903720188412091698306479665116289792090280579863584701185394014567283875897890265260629163740411782461196315290698322458921403584309073148960911932304045369866271127366408384098163475273816146357526333642095736277485337941726555952581207070296508052505564344927645706411886989319167102995570780378512945863770108725047019503304167513134865846694347495091507211901153061856356826847362845788627086072413720785147049822576760777432229897336553889244138292278574674215593704324294393611212945884160337406675368847732121295611463989006911124942213651983944462272216550351367316677437900768649988089080127394954166818048963183315340795161652389591759374492815149838723718183882417452848935210751085002042627786135776295646162516865473803432245493988570199408350284849661803161436572475614139220726802412286841827855418186522853999060645593450601014720044369478776998833493609070541380042593476443258083844476320357893009952367629608405018254212949194709975544917316330864752917627292796662944376004984141368928235365845604853937322342662432935084621024299813720127410217444844305460485252296541866980366200138351241369632408758048749450098021531809539554188676168337233427609568652604584433005963615333240479551490968574214552078012226572307787127360495373358806775909018164022563823271539536450860371759307957167810657519757018478907852810001916147311924969233821076181293215840529472263505032939571663859504342190929891239970331462061016145834691038029315887604651627362798067952469241085117070915837576494758789099094700700348407232463526966834469995700332533243872621949776362713287016009075103776298834791870479478141484794734228867470255320400478733970892234422718576350912874443759047880721439706851638581484772401079713751032765877098096478432348768846631015791578322631407510454101141618741549949759737708975689911459483613619545244031158741353074496403642515932991830099490376823979642904958240242210488336483296827294348317781053158903700373592159743619523565754213752426877800788777338290812862922845028441927471264096633502949935573251416925163553317327775417014826054216366067420811800767837274970769938627379808333045187158985756045324004033056454320645323008680640835623468535590663388721186389455607514944562746664546231737318714702630452339112416095676468819547855138184629073487038037923281040918282989987339311584925035482149521414485179716031887722791046827436879420371481894010708627319407068474029321375532764191063713387441614829520148350345557790879505891104812554707475532304347706553916329587963536408775549509905650751885296885614775288647212441177526565352048125777277721242441353279473600945875741318230950271578537844328654015487002018480689515270268702111103174950345997269065846066564630502314685090754744107452195804413718407944529346935779819171199342552409793689838729007676202043230942419780072932693112251527176344761918369180452842166589170610310536648907250261419720186032874853403597764122438622201969101869454234137229649068715331902684426840468780869000092861037325471593807300508800021101625748761500419353580780963570007460383699674467779703987093665749814820980596614491653249657028772209215904743344381292280970409228539773995426388287592757295532596690644987567407696283776267198313922920134424623492053768337910676068373161403216391991528539859175005510197821376917949200121529158714411661530956169691654618377673484636738420199823396363088822479380732119881821763525224140542469218567549950849388946757283798006346654580522316607029008584760865427910381435424703844063718418648131870740641864489667109623494776913188042067338786346550775764774269085655082371888620262675627868436162329295883697350510548572628496656347124608640628933808362732385728572930147055217121671060965346903886914418031294295754838729907982354524101838226529671193883610068632111168097379110972322391590212752238181015999654562154879362320710891533221704927930219466784380770438679931141825309802870848330515527503922802471497640315635997758722406217235396631292990573980271015180465489522403287792741933127414279655286278968900066871289220380499659108233428064818390945225937168171371391100167879443770048332644440595870923419075349797599127648070875034624934126220857159314139927341331392661223706438507948156015779691468553664316176934307665888351082943262023521680441635579203115382519668265018772015497374148219789498381955254672659428358280322926851371631881061226264478323726628658050294841913555983186787546345979562288040666746260208752258819924473130333894822311657954558012933859570742484384472997051775513182349161799029126833824834567366411323705742805190056513201772418225382989754909988770377349741198665713332464157564860281744290832146371937404933413688601883077651796853881421086979465647624807053543180724918456890477069059675070708318622086821585811674703408717213492187561383359344918000149599421901045472801033035172159610144637139087955723636709078611909358895866285678189647791640554404060521857822286767667028382129473067132636740773864700433249511712424389054747901650505621113416536919837101183142774244531658991351724920758839114007502244815932920009090579926293776290293715706445645596740688366898029940421520695567067553599152839088177816494646077713487985910169854040037002972997382354938573892589159629907670775217434867698712989457248325389265805802139029591475674002398597140941975459273265773554927863465679057506298032628187206905978219523861883912521901060053810129263672877179167816123415059239634452349810599021658358324326215557303848840128617482821939461807269511256142790018760524177777123071549423434068530329655195672557339828947091696153935894230494616915501774675131927312893976576631455342380237394609426417425689947274756756116292957543021319735189405855176015185095435723590406971107984426507298550213953224989410833203332098450468537852816290226895812649288610178266482915813867188688723789459177886448866242807693116275657741570508375348427272077091574171979817190377666498002216650661254462987683904277657527628094398133986612396100213422809489474165392506496994604246157606832407728143515817005426961562144931998477152072833692149684032273707801059884978276073152298890440172055079122577687762092652679135985016661772973555656313733460807535019559759985938574079844861965508203355174298749212252664630748214476104120900946500441184809555135769883274545729135451313315638813160423764663934937460744888434411647411516069262578935234822864903139745324980695553480053041697093971076141180036508840041002758395575680865869940070929510214941284415468464466803065387272065956359269922512662328571448053657526208583330214165155663912315987481641632832854440759819343688872394970670507700537216276687054556889250991694953960203031057773606789197868541290680204044350110513526657948983887807833265337081993525352954663073456718952921364800577001140645317671065369828974174428043285022320669837918750027678307094768212935146430423545066841507317347457822833956622451026192979536728227625010743210027893631994768734083440166122434109867655418687404054334938791069922123210631988184371953828234814190099528430477244199566861305090891153535164251068169920448186902184001600521583304829160213378866239396989507319060237451175717116992177489699723057796480955304097180198144739018263937402249699938812292612138436361671930722371387201048248034058173796869177428731928433698383761589730891751994888949133600889640911769191045110109513042551595332585733919541218925449179948985268833747206106139409605474457524731068750575203265659353876209187432248393659051469478271483198605728299717421982380207280143916907834785631860662904526555472633508649834954597137663650071578213667667485568493806031215325957532554208841291647508593928584121210406810705472954664255462925368428679433137842641257789026648259450226429421066766900716064107780315228266737320183898836171893613176422600991821866623086675867430704868899293438757721075029405737294698215212700112418826769670009897115906487149046850994241644666422264461896045402569749812378161646576248607028746681157962291581112604197826595033613091840194484878790683101491749417819351640028593357878060572539733664429062241895778890483590076022423726508990780216196725626140489639886358686398844962545803880596497823030468045046148145941250496512371412789242378072333906699333776106160739552111407246387591975168914448248793027627333368741497733929340405520990669735422641996306843491342039980571214151124906499292146267951445912482861995438472609041922473886376562848486815953361743227706836616389652352952827606949402862710842553627685748564290917159348867291678074008320337994027522730554860349436736394791670016325529728069932244967780468238558475871375930408233989064016433528203387676483977311622590853295045376068890354867692315977632948498757584761311155433380510325281525366319128695002779731335780529764489042559514833725671190539788860419293025351542210834861795651154678451184547775771041062684170103292648628956074953545663817395045386253493843719496928929554923197569227349086246404821113833021849165348998536779949794843543367971041513028857641555414559168273086623671101420842607450540000677301087399767488515621266680856391679354411711792947884780071236557677856524079833282340524915988790834746659364464803646832683015948530472681316320988720677818411652488475207704277168016171953762600679578973485028072551732730511498400167846834954770338233568736464645926403307789618791918061958369180051204326045487043496110938752701787452901306732146235102623687590684454740083875288996993436523025099947804652851115073155961784560314030888048077149994897618107604640716616215889747261317903251298681252792213118489012666815285597311066928281263836662909407380136870489046772958680312570175584848513149762712215657644987913058736446967245505536192514763035941039103420608326719435469927442084594199698880949778070696438887164060173823828753923721835211157617441487408835187253419895243774247848996893450841211742756166627637811373548569873345270525170015982395163502391441543286464813080470507685810784973603964761067726406352297989336383692101311531547585020614840008983311692090919584721281948459230201932230036098833493992063853758572434484269488026581837844918989999563093247436108123838251145164811474596648538314352111193291785485490466859795941418456517302994363475523270900680350244371275386901336091804947740664752388216344507543930176355247100325684085233989432614973239944050550052300884002030244602649109824341516191762558200797709646798254913568504174579399872461952640721696837890967251679661435645301250735148203032509368989575980940254060071341932100385599830090321496967213786342143473611278274123569577810059698699651199523182224241246128479299466237108080849628235492606902941394748275617008728531611595779709011758985779092015240788957881424473879694744981970742019192920209769106553409601172111741276981843831401339098793907644003337114287408277917087807702738220902725726283310264419072821935306676402865323254363307474594859107025162096115340394985733890735415988566195812646555707358254507261258060343917132557454507146561843919357942806801093690049071504702293565629557265314834220749106298980367862065948665451519555696147032219577699943305733166462627595633150833085045333659389962258929066552184928812614087911803692837909411389992236071512666986358589724172740019799144655615435314059951610165982825935371836732424309099173301089615490871265860548537950287514064402077011027611411221362995213751039275227460695545636708059007124607675773218126346929912795438501128228931849949714483670414536243671663032002983058646211205944204674215712588181845878115680024657217866581333038794663122873889595106517088228221775021181302463284584890901527022587320382695572084036681116084214813920716693161061261428273497430073709043346037447770373946448409372139826716044091285128187811102635521672005571855453999718233977257450693094870461952650423015097481548002662997257230021925910252229408666221485715968779129271638919692708818046298448025539341719867083572717284866457107020272460577879353545134840613281297934162547955514830121576430798085569904677341667810408992871028486354339147976627449892301191983669205966897900418088844112448549405541352219376726765050871987910817197727447142071065741791869526462556118763853850955668586462001752863912129211650233808114342291238826721526791112383837491023958602092933847743788173639738702810788263534774680258359349450809470942710537525963213688566014124645055910846304628887345737252316193822616032631797225596377842773470798246698823441038407214398396956530829315188296526725078997321846644939199346483891389220308053141444998044258834593941065196135906849336390255031372201723646661435921642294581274655017075349752386950298035782194854538311374253684533309309920136871410931811898822866126050308629169370705206316220830637423645806130968719184723690796842331389370179816311387367506721136342487941424186183234785586657709254126904517669245211971503025720639798002450440969679374304184623331663429278385600319041573640730741321978081771315173491877768690955293904313083143082788303265403811295223245527696478222087589262160491514407609089736688228859187243970238537677401740227286159611559742829402738766079541114950423106155334777296804954340347050711492220542998258549297121007176075032501352062664660605893978586442453340292801546323601604686765287006728844362303481405085353389502648261700082740909185201604569307846725488144954837890734597665881731118875639387736119837225717192529170117665842238293923923635093339459925607564282444169986265911032535713620006235720768269981320765469527663246834918799430279933191719215215669553461802762673141884717890634213682658320625701945665459868014717057782679655038740612046622725279356998605496881684574345531646502243413741414043358623506816582208899918739774520868292662354057351526051829924784304845121596180677743215413166387262176902269978830420518340681229493401187005217127160731372020197605200427433400847964571606244474202832544640606547736095613062712025380157602149422983851909604239042944069172547215862115686691358780557387292008093510235832969825713472321880352179637229540328746617680538668952782613922661169152674504137573758643475611901023804883446652108206734861571197313731626986889712328737473352320732123511344040280171805235345817984482643436262319574241044319824135444678791752421345190754851594669681465019606496487927153282225961529969128636200601448920816143145642925038983765473612151324375131505962183473086848597809258545079560647334700788018512623628593654380687190272134833697622952268278823150720435695413061018088196029861560864127453285113342402074483678351469173878803262914011318064961721809251565306420584016317387656788186405939022893890031885515299587092025728312174099565775753361304533275167822997096737839763519597248746599015477280799531234811437783066948501118362547597605252739502120264399212226187046149850600477462014164953402150012378702492965154736655297944227336556576717502703564420344873951765986306762303892422469647265310486921827801295950092392731922980035624048025805935721106072474168721572937809151332220535541236768690793147871696918472231986925147656106582948538089015190241647849513102331281884740658931794778816202362124436366095324936149898243391643786453459706382984871643341726171881378466922383105435294665459392624926055881414149530371053254007587423500367597615431351277915648894892979251884927690092771356190742754594896023650333158177968648151695987825089828600360509842150227966894528243716559298597162254479275551479610346403062653542463941116760753599799521644869827652183004086978643400358796582396294027554394583840039848472083960191552742207695103704782637816917861701090859479980181599522567015386317502960235223906921714009562496918069244522239381879708299384718029129478448992246322878847289893229260863841703027906983633068378479322151674734149422864630517155398949718312219489952417260364208169004961663538313246389359848785230120445109546687321960889930832275653718338018821135985346142607668721654054840767349466237230545686277587354841984402202051189754285277871940921742005983785934316306325467179100170563453595916680721158097359059237235374432198722740608940763586541984574892367592423733866793935138152194308362230468409803911332324502894001718841637747883956258253310468589551063028665833121878940936306321565657677370887925125502557052587227991453989037664149923492731120317550875976988220841555756056322837526658382709420814841278906209252764965382064481229182245796628531970255804633861559261692249681671219192559978522626824520984319856886677372765436131630954361011211214749224209027640637631098093346198361851296477936693324868142757615776219426349793993219043109774535621395580991603352545116703102361336685403772849524749698673646682234322385071405564027380173531981213532944089050802997371903983691774433427540091201992408998353991724007189640909428893779783273659159731239257076045900548331178797542208430044922087331333996358846758401811970480654984302964314693817503336604021687833237090480632417416748946226254716743688876834036259203405327302955014696973227511916988617755783363937342479103772259364592385694167445823524666073170141421042650522631073707186323904274687495490033266747894942317669134801446491573606032852431969548228270176407203008890061692388372655224736051335092022270292602898883092234322217413931554840294520674340697176790206997132971680486218869114395813516293114372825419386944235435901311213484472961158385787756001285897840119034870146880044893718772023093855297936449696643129670586264349549808961826452984186550596000530907121364112338513750168811580911216662807528768656267017830062315777400803489706180297259013092864859883887662964665707529603570538319748842912830314944324907832920457557352502547651091722676326256506575617171676213107033680061038566558279828136204783190451979678848520830931117474676032054101779128424471392524397371074959647887052492233498025813735311172056815402586201416331000568588352357550406899199912958166356579602106571162750844920391671055734096488421296264188162310963379371091534066349093285650802000121128619861586152004663341990438881020040570535870939232305699834326846432606834371388598742221494117836629983940891255740484277932031439246027069868900915026451585849967910268759577030849423513577039748599293537325758563129013017221834660617007951726162226696517600709571280151128508144735232014901093105570434364709041218551311637395937264867556410120273361838955259657436976380791586946293371103831181788911744429320664309652016319523498286764719663346388378119821485033495757967258409889280544878844422074402328229765429341740731910426185912581216691494026526982034792321073549554696075199190442331715170405924579112066409259123317054010385830749677037598644585486119141488621781249972523560525534253674331964077743003600280771309363325338463713328085661890712558053139627925636208740542755163628548783742231531350258740473612201734939646220173014902713738084651886757478033631716505058941825238044336932815478511908147915297241736889881790818024384753525219883934104462849127710190943433942001002522142342953500381272564451182406104523772604617548556242360060617210064128758141005187306599543427743961576601016760647257051455863202688341992047841012285325819195251692104362489939741521903224813230986486809943082697798659106474695076841156516825969323195389024848343210293182167085396184943600489592848070651442928724073514025615235339844278586466834322154017766479350095320491776494995351036726763014184124657399720839352460314713881397783364856057642855326160735430630309318488263375690697554435334149618172313877499477438797235918954197414654618775969251568431266818574737524323423936383569024116902135019070785700419533888828213500480654548589719719648118875949224113515515652161217211957323832739729478434251351460056779421844720329412046004935453306478176972639074655630874058958946458053776822597779975250141219359033705245747649355548688507085449780089286428843208787716180919305509997768629835091810142897689508552492022530858435838798654001771764966495263658785532444813150836302442206010198721936036656887551292947049921905884758541508329978724605106595050260592837259041829345525464599596060544332273690044671859793845983343217918360182612298826985304221910731195134993167538774751407637651905397722200419996426099078774379623011463074298409929133981981687695425550743135712324447136336393971598497369862559604441884901579774355899514115510783224151213317488213233284321216031705387629823783283438387161762438592657467478976004942699058141083163705976107495432757203446728841405265516843012011544864711017368165147483789381527868963719957778324028255995133374113510589833220478733319351698373515402052309723065016136776022828686522760988326672104286216822261164107987546518422717931911468279510123379216471891451177619750244366419459389485420427865781652382239337861199211897546064492851430445100736205009024144263049942608468153658849269114350975640197730526027639207984832632268626752324376006348846878527280482764754185369957304699986466310917221550056480202679839718935932625963597186117464121315806332602509231995881277274955778853968438772105141298455132032682289492928475276204698353789620385483592075165156927766790906783555013822901110345529524723775539423352376331675932220069570511564813610273169337925231670886524684967010130002204569293098286607155131698302495853951247653702634481278701915425445530691051390964567324458218241177850507964029717183455241601317478365983806627288250346656188008583219053937333998604737326640332542476090048731714972218613402261512420981512894923543886350399781973190465585887481092733521555439419001445660804831692835034006992724346106088118987148464660248771929643426848455999473063194291931751656806811090378981838547037550774847579514354056258146561120732331753306531725763425651280516802863964137697982997968829977643373040236581777530849254604008614534776852343124792027261835391911973994621636739147975073084946282281242469203204662056482803710438772483199919843525959529833088789955578132394990605144981786388352059941978821027981290100217459646061812017838059898028749411513290210792238119854989595082013098557384988024476947759115813121265035191848535741946888025354995674254695055415524562050386865398040550093215467484462876285270029654623288592936954888024640653051142921150243695573915515515834551856984744799827513687236521376015538294618800454868547125389334430797339267455387590017596175317736715374581579215980420018060613258078034641158795100045588868567334961902717541420617483344177211397330179183176173152026966039304096174580466025033467553100448410854321848838876566620941976344846449054301128704607053546894754496514794175731986044646931135258215827829435950348914574059589514791700188296881193220073077642327675785076207761482354617116584397444830194656291884215493368867541621631176141874693733653825861953376234538180461051995431617012453187696245808400584142706796185093238677597804436191570145299780729972342422473705490502558933037010492395165562629364657837569619542882377801770117788227946127887995012184115218891004998546774704807707531833816073071429966113697574166323007035922876524595728992317189405132342462192480413595811249278019030540331902027315150495142428839091325044143670415224337234143262802377827839579756827897579551977932434225323658356718601980306051637721986587490538849062981281878862934411247089956277109428943199909557789513221258183499834207651819359611923901926272125994856619802057276281685191340757923257049561921333350386485861692647156031799399629904432589930009654052546111400337925794221212520583400851186337683345636828649182101880731470384450628292226863464754281474208837806878224501726134834324751574014037441370241448039951982488473906618874463610930983303863926899667319670005018554284565962533140295929736776116264940122903740964197630126814650350155336329887448989758158428850779005868071161339477984544729424842553358792895848309078417562400105758433603995989838606109458347489312508782066053424669323217757523701818939901241637163752583005957259708912659767736472573730997662016913905449394497153738959563405216709177610076781273159377795097815427544571988435939434219372204578081233579230994703751448134403190490370504204070150846923259693418586027036476065293505382548259117321025865067129878659055395748762840301754594144472792327236138043061216406594918266469925218694711975834984870286534946318180161054140643570185860647784653382227293631993405952708985237151388440242940538396503552593315933416397942302455009740319314432510289706221046337854674037849590538731851085112410614570415184136821907777213101580889424024693649451831061942456948314348856619996494642714124571574218168404464694041441229233416929139958626675835217268031156558650807821980541983347348650642609844145361163841439177353700210223772154253220090716777107528078931782138434547302475935194470791286854891544332078211720966287692733476026069622237713890476521447237522163383569717019754828311238919530025994919697340009499723036347618574098184378648182437582050640776817216337832306927719952359818607532067128716489326505190421803403992650538149755647640189087964016182818095629411274194057885540538933922924654431675518845684937895313288447119500008719582465662305908353791155190738893934385078824970818336488484536745734925289460373741219862269911126352217572234447615850863211229506467821715854553483970061468545542996731526176067712707296159019012034252516390141192498293534497989872641243758057566982856879845438412746962095113402378563313633391443026539969322038543410870894641372932975671573287812839710700123910478161350243626536714061793155207917508324502017202980965398165711614462493412799333820668058497721390395561465689230107173993849712941397840190722045963007272198945147331371856458400925486233704238021072678862192092552082568254095403843962305549806933768337999161113052677754632635650097074356126315001282220111752772579963736887800228458798188197539046069848147268811993917944504164984616444015828923682679030957914182878117974184477481632682699479273424773507647939552548760569482946995741214615528225355575861954639222738743827885516718752671400963196741403884618395868563872422059442884463553910843485063050939346070549080557301782005223759745195585788283050951863007835876047456613025310277684990120099441998797737744678318999223628939040792098511774757619296815059333753591058081074609169572085933667298156235048051985273792709315534080927941155027450420308239812690972597351719873498179968238821061223477980301801016892995287331714516962654739358398163556901818203980027880891958550364980076137255811536875354149134825024387470432762801571441851132857816893188267083384264575852428454441829675780818859002813753171095543340873798630034770030914707379657362691668251996387716428927139543168135401323526987766973303824407497865956425272128381477777459076907126933350676419427642834512680517537061343532615229511473431493587927766203185844833000401079953524847806876401904371416799551133777893966908713774150048956648158082587074704520555853500813708237260322398876650842457893296740939992306749543630113819011622376072449148973868886671536036706528232488874161297397539023524050889420874437557593506949023387129277384601996293207334069343308820749410340186062315594870118207058789703147945715046568627569060873798676015355212625242363117047240899457576996972808511741035635708451231873396450249222584445617935873204151477668935015896184059071793413714597153393078020602974364836789054171634539173418012022312552288881601191828165400429297660325468887534044830196836409723569799767535010791785742752062825198393328773097470868113594816592666176315892422282503302063000077878345151788526088893933029450931255943782146201879336022611491276594921211317050231236549561651243247608663009940561364987600503298307385929819177973455092920905492006164920927941948049668877285947419695478918060454019933327054713306498466722275617547112421613228176522262758749971788771697058033421147150203113149355589070363053822823844379974462306067423024747809241969861288092344380336293891074194808236058546967478213347254432045369629197237299438107440538176161794812826133396483723605131616546592861943545565744307508739613872739684379590246440924455681690936348706848286733208323650333748250227914117926231972431349911496235848426710259936826764360049103936143985369304133815954180185249102740474202481084540078377247426708910348377379071532648470573385495199079148030118038447061156630866474603506425644658856265468906109673025156708411355831163459857610128223856507125371837196211773056081426155671634261583723619232125497465658363919872581365164978282553762535715683335888742728043492825230539433915547278893502853127077218818899927300898907688668972892659491250911617293099520919902529471377542273585748099553869787135438052559836928680617796579466697950979341930094104862890581276297677608955863873775870752676334961782179775885385899056424348043670757853720956015180947698887803008946702091134075483518730888301929511838932458746699021726468452964501817158107779666671399251760148012910773640450170937014865281751976802627193734486025994052451129791729343673543387056428580345833597188804231616047137301312078566317865437356774606981391721680789722583549076460953642500209827745360505342783778944598817060947960113769371181067543475560799286826526812284463124891654038836741237433672051761316241388746596920855956323362227099032302196747993733962634916449144010407682844707088238146752514177391113842005273514862767624098156067638151122246921054143676630171195856223581291050401022308233068935006819782749702110714857882458050292931090978709797678911139930706259134178958819782269776602070116045790154792832635635509032446993964227507621755587406036440198515743676996003840070460867216176455612517352211936142149963583714074019614324215491282041771254798245806042685988163153051826858111256851751453814753223019025812281170781204701887825825619466500202121311226813610694682770425423361285657067448016705143077997645427773063278219885702077918629391705589285769676356729779821307525671308595635667192348978099780530703404030318518271942316499768454727177224233167849742432635708639572862321975196631935325257027791629712707119125429540516104561436058880582851495888214723356979210764954621115735595049339733070329087638168214743894942203472281738856516561056540521867922584503102715998266313907839232908750407162025831287765201844455364040476195716142304782433458795022778431842474333652196534829014376554210754003259841642974775927262118903787719053600064782858473797840723863548834946091451965154555147147025315477641612536831457650907314160189848215592371872131808751565600451628195634979957348216248878431154232666460579209416772075006634552422837850290371993211132962620003105615659568929474226223526714816630726957946032165217205472575719043574844893739491653714211261689799083888860195511543981591626498971189598015955277206251961437761765242979379863666143579986809022380552830832987069932398045943458063921768316530475594825083712636674271417810688173213932437799981898529622546112693582880122957877115936646389231734737351600661092727139406261580276918149810008905762998814689882546931385852110454390071222068406620017538385558164883423461394246958436066801091558222254975918855630222013015717593524656159026376479388332039009238359404527572960990095432296077178983000793112754945772658599463738895706350769451031785226719277935291832053600309748946780826405448537250435679098795957904024614626515597750558492982042071030359453296501580820831188295726376778591974073522763641253618645825883077522704431062543130744892341750820069147957090580033412774177238431248789006086935379351551958375736141023469981579232705398100915269189963272289478080893546753053214584561427963029875991279232528313954421495987421651654541700774906260282722561140475422072093236712502777925988156458530434542481587559318843067267746202286969753325312900537475867598437135228586039122564131726584749714315488415642803778234043513860590475759666800140595313987054793515349085677581013167388917185737087073735993328912332932304838008007308352539158079816958380497576029550707746853994219424881734254265379397290230694985439650058221672845238739512079575469637059728994805613274949558619925830951585655962670370360381280325241005746205429001635781548596948080543324438041826470912671819885738899755527369337036457570929902556373764553976622991362793682544285953668337531815892016064076743079622596708189588545613594743815181692048821967980511742853945402650430592734638518326462392331423838338299225348288280440773747677760362906404012721102904912605087958663116094865605402799854120702081549924845749082157613170767058826195004468071824914626730243196754178013744628576418246426189885055005378741517274856421075055901215543669494286022560385457119444378457330854763683226205245372417770152932452700256736601461987160115222848727112080876622731450940914917227663005165120206037750510243177299046931418436939812223547129779755909017099565242124877888259345860370758881193052544792301426686679299816851138016584675355491623662583572002278806579052104878108636767404489545456183314031267036204273822147166080349666918847827252745226543308393612479054733648727558831509828581995806900236421358883836039406113820385480733567592196756841929828181260954638763270312002593259599923682488583715810000610779502386843348752924993163140469691840237202749988414500280737620240139000868875791708159461195476760394446222384720993196008307270251793510388230375525225656216201896101209075849971195241739084156056766744506627381906235284266251386157304330798910742972838449873211579944828878559910940200304435065021687615665731591065634376613686420770931185560376538294793664334895144330796496580285149951365651840806107773627671840234607186932611479015212829015479367978268139342422494948650490713520910028383882762644664889995360502589928829888314552219345695003253843245321596303818804683284660049569507498248707583564797539369465552659520179335479216825987625032243454433048620960161931867631522536679792133112734499798883417724974358369641328765742516053872017213219392039016349150831675009168698696430823674977397165137342512806486526277805352295770628943866894260127014894869276385830414334388627686736640582870309960522008639371940145888234323592181127118697375028531387063243571638942769199065954650188623990823562150273920108596960498004883528118456353545325080908498453612407302584342903361184635530758996192094494035040209305615661950927565204557227157195019962484730180486865804254889989986999422717479296835204638976736674179897777337127501778933980587884795796156082334406095921515536498594582021028475919659914299331574454797836729658598864497810695591927448537522969863449759070755163948538133989792248764902312866341113537387833214281824151394317658811489292001427754086865164612588542112728110173959991929084588968149301864452080549208835540446998966418619034394986159651872827832111233915620485199784564770140069622068081411574830235621542615013310930763002166633143552162595595387029976550878655091366081307319110599649322315356138281812764647220111331212544940663110647561553004305908138687006950744180077306188504713735568257063492529227535244252798738776716400791088148649993493474646314735319876764227721988166567011588489405616213849667768412695709973904692812913311207716362895029021475295201577984675293322610687820517849963998943497818995829204082722844765618318226317181918224564803332241695597569852280595137602207167336534859938512563399263341697225209644432418833717909395951360971015383017306902225758266502097375032689406089763072979389932811523235769637272434439309343842210893962011364493671780919084110224727092237408684787153622059037160107645071398775984517607177167057137510274694838932143586129113328333399451628512700305698323066313087286815746773370770350885702989909319838873894626955480486290876808124136042168610278630935791324372508208471051665551924318861695737965442735677843686399706261334487856243916006768759763384332173842527348594741475753743747946810875433992567377299380811866734993905452097941831809956913438896164775536925566797623264036857598400760790580591925869645195159217029323973511029619850460129148407394377247634772174757002214016400429757194880905493472730782117334514166639297059363220200739931818886322895849331514115140256950998541534648643708640429850030130049687590452084054698503529330294532218636111963897760350510458853377233862605994971621777527741673128153161026423006599797536014599255309943304536873246637445007321235448559443493557092178562598746490688500499088298308205263889818556229308370847208817860505241709215300004164486673662389227401853403849259704513773626525831845962096390648406096044346796260764935476197309331466445007483863238839507674260031059702916527552797420023306775932254866397661556709941378505364537316416918599332845572210633703819093786405184828528515528415871597131795922325325954016670593430205651765460710823220487462858487176411703843863581778693206221999522775602384737711177164750159475790473429510798632244154788094756966762191301314343721431227264683262870346696003220595842956095904170813932198760985802129971569451589809388462162174034054099262025522259587554289746839196551364055304753265920218285530288599357050366580154430983902564874059590068801805173531777552733996653216176701308365090035673429966288127742123720661140976045741432109852489572688074623390156315084988916345093615911717082856943264347170885852248354233634061203131126838548886875301618893355244166836195122395643178820550060727042800970933502567904582202091582128147636803855213021671185043768344754385743611016801506941589177952644044948825718908845250425947052753806145950590374159441313908797919129535443314759153223568578123216727877634193131123906005741028788673895259003824241418736817814362070152024575148510631668110209929501965591042536342353723367832111422666701952927977465885336154956073847199528457614142460661603859209503303871464506024655423418378728304576355158294520853585609192912852896386858765548816273127680691728018077709174571333468004816261632386754004552604995273272132082273633501732144266693463192281193444234993076506632361656683761957102757260093779861972272753456511553717054330589913644064204914582746053142536117727245739129657657896842253698524427385575828735273184265054243568708905536012311546527532797995176504632682781027700002948217534998302088979678742595462407965586164119924941685613543038920396106743495285080892223363217840958514462197423559091131330411149653837078551279167299190328574150992131794523106877862299215448278636604898593570885122358662798880777275869436290848563716421516477223377804504640077768053013497314682662230285695686428959186443646303836219080059580842099093948531937101882267321894031528558687607141751387570023607304488008637377111720855074444579166745415181003470199610658736536207742925056590290144186680843666723989022778868816081962443139250860746748402251753810097339467105925466521066086957055205548571017011654508927287701196288132246871423727465684215815342258411583491954241788664401278119360064711699076762043403524487214790105636119730685429959098924551716643897642611810292347856634370293827557424841222777443599078051871302620734095144011953991157518559642509417668689657651316172120511402230138335009276925396543657714468472663159587223771523836841550042353181816083945438301835913428855134448019006519815182015676949379708878664610868795864801204536091709698497631990777387670981674137175907124706009376721240847521988598243837197150333710776984069421135155766302802722836849969799739376071729129714951126824169675085133659668081588671641885689472883846800721819449056819221349509400524528984493643826670366193640717410835242894273617155369040097818109385469036749874624293372843038915829769116858502739244460260786394839971434632738379862643152784760587182381904249644319189582366977006640886707419721659059642264397015897160063500669936089688458257438159888747248687096955926378111165843910073182154922015957522411053916910888922316786123656529585433835050812764575280442194990831087794749654928104772036909127275239238777906800390793934401445659843962633459184590736343657030007411061030167527275318806827000335501532214273027089364144324591724685267060392699096199139644327467015974329579713292918974331082958589841316643201945489639662996997607414342005156179480665058122292489361133842454582117557949262163841249512867386489276385477474429147390223365285416198764532956104307251007594461856348319831361363502805113904124907498839817101071559168754287999810782507385524776362253516864030329009366011576827698825191803803075165649075992543240841312447866042724837347026731318251353676373112294413850998442664662851169571164650235788256885921777741979085129612767337706471573591087708785853425052369020830355369778622953504439635439731977321238128282786043059710941563766511646832952467495910378123700404483176447237683927081643089999066062830252066652613976547200278931140159198020421964814263042154977972908204117801383976889784448725489248089776476791541964128099894676148349388996333760421768657748446702380024485745624729711788195143104071373337820226670870887273426859926853359731162140629677189907977682636952806390251130708898488823215049667852990422158811253615742412444520362419226956898864650039894534555358245460925162602698923315819677761222932019663321280391549741497889707368365288286518209134597628069162360056883824411576889180162434930120758732848940708732736993982469997900052712072287773408557278361385524532190177715359418108657494139917580066147486217977075692414912510887379994100338959233582254068277723176249112815772639682066224501468964231694687892913981770464645731815484407652710792764513681428551138305133832880364769126119787942644177953014603656657593402260620274385358993151866117135766132866089614410055894844733031370310970381579811259856277516131388565916721357881641322301080363753387559304740227430428052899177845322179795818768322165220219686085321841785309257550690359094555447945221349011392365293987666061866770628010023887008001421530471310756264003317360709568218782712984972253171737595264769516273203542127312936118736394918198336918746301268408221524364046683332852953512744336461303852776390850572136745221082995575586914592456889236191788812124853232358474100349001973787237164454093656613453839700753625917817165318154170762015953898343394582299161511248369296721395191128043172204361264007267124222524028298883526161956645146139906702879073023599498120573629278544605987561121447247374004301283272048649548068999923842766069234404632771625160925456693816299092501278876891725536690290904578215854231798617399136249923000560808193523998852921110333228892131918000910923432206645272841908451418658938190838904222736134846386612156305849028976755876396964814345092295269645502100422693751437937359739846674827066306849753011882429419346289807524694444686485682474302148260674690872799989979835824928721212020635148015313611594288262108227308455308633499892291063508489858894185815117752856507908027573285409697177940724391477113062732590077720738090112729262638872793415893845689260415562772384380446670395028078138640972643681525059385053959639980460955203481080898020368538623667072313589556055098472327420867569826226300026985785885858733258277054527405579574297530602674128217114084869455981036247244196654826044476448071086638073746129757885974651054740703849460710154909766145305309221709045997589915829469348039758566880500267648742086155318107532356536970522642440609004495805646532224334881262555356101008206343489878773211114431973255515689749562357078803049480713296677188727033471391365995713549620360925210490626549099369041757456125175871954112683580316755915305536500597464596562067946380616438542763438358309823375809917316090788714384098272329121596886922646147340901054852827112496582296508074920507719668152792811983678299090713021444895354470299587208273716238712951338664696072925953537061169041071952553904153894105306075670434768888887267038753425880155160179275217260991934751547513665603580122623627928122230925499613955228731235131245713767768033986601806653922703844417407698515342123565713151959418671195005905687122981689654531109807569691915340317090282386043135197738799003254980906315890671981955616450222404855662900605935488771964810618646741621386099790931834162789049284073520999565309022105590046987017194707968842499790267816846682522391508618307344590065237966254650740847136648317796438430061871851409807752148231476176442879522927654988244054719845656174732811935631450275809553456752879415700688124171513169222852453366335313782150074261179646141385880164229941970820977068455713317392893324082229111870664366465679675143891716471057027785136575127447491818096564592122585509745543572572563615316391222833440200143726796302540969490163425463985110861827268089393876966455775255326829868999713837152553642007981337010761282404543592081839117524479527257333524907490963446367123610833256826262682340874262875453727373043108228790161877874041178946492276451555008150634621256632738629671031126719603773097505569635155973614886812457811855106338607619877442400880030886373040072813204111767273024459793607708985228990493617422807827254158717445746760168879573450197519583452781152409473305063164257003993526790591009234201501466116374782470797248479607286617736947257182085237057894445066035401966522641849301184357309311056864908475232468911903182037531074376077684043408959998028881206255185654424512266852890314784683134280253417267771292967446359864731560949815503030026229051073385147937123697675286863016949939090615135721233993590110115697893549123258978009909309975462015779547578683953956957714776039198919421838081836277533791925539055742848244136415255023909366728103170881610209388965892396043455353204827739328094424514046436422881397848145468641409325816877303338667341538480891312067846985511320331305749043875903101321198250346267568273208439776343796129181052269533047440451943288047694785838641326276051806564704373319061738547491908618765893132366499928744594810473364492906643404601145075010292170008196142819890215416961638508070123368260614575919248620177794056949699333014576470849794248014290789227408477013169728794731094063875603560781108644734931280405798274760629462356526093880535471688004161263638107896881872665852356492069816992506980282803880296214306982359465499842920495125408051693557197771541859270745977677783474598666008959731986461713614769689898600059885586721391975994896722456944178696657293029538649829137706299331053567892650816804151986647168068945259478036680802797606239266123400812463690639020582257593965527455491195392768072113868477493184233691192740991534359378530982717732282521949626885063600866094174517035585029879079316969681425078951013873080665844097628806182686873411408923590415323001314682664092421723388832488233546249298025639013411458369340878734162694489451526166434360388958582324916599032582032438105662338744566837696481978110192036835401563730950793748743135842015641596229597962536786901862623925062400917227780578392018102466230455041431783451805983039927535863336840646058701093540646282740349968541670954990266780822827554960061539099022888610807118035676055681845062496367641946184237049395984303122543997017500440406874849719326087414007946097472637457985994615106015388763316469469546872582394681215876165333912106007852783735204660223574117136445761696582367594764908280060601590691523621062478648939736550850573530633346350992623974426349052308378103155605968634778214420872363688882694187646378823333005112493801021997702121721992631627302556141222933933696629382459882178539792625622027219748655146757461499171242425435736351023454318883280180351981382934663377329468131970911676525480030882898981316876252686648662642614638916930989340445624182443316128192521774417943143012608597196050412827001787638182975728311067036389514069425493058212663978672568694953447380163265910041103212011132638764745623214472341433415213090725668211867059515018279115522441831472810080942138451796244225713409319924701014700883646846659381394007350532368054933446165144998435489841047148910898376495495324450651418509993120029745000263920208332444473987645666020196452522340527807856226122312143248607795102647047078862095685349022433907792028111153561151769809525250567523856742787008417374560012083551237168742950025883386888795989697572987706593990083311168914262991038925351249377346246467636699832279208887755273247189463786799834291149115167706550778688892105567144297521677212188331077315722024124937436314796932870998697369979213256201628203456480218441166466606623280314055623851617016091159031620045068232006055895520587225052605702612481304867947322977198545718717467321719640888745207513569964269459346969584602291668835716835246024615395643962020846099394749332264780222014179077895491874654521652864592349426061188910924688332063986621867231620000851804316589977502245011713045180995200651805718700372651755414188601452893173449902964714438540068038380335084782596711724729835918130440038936389221126791740648648770684876672796313004796703044341509502993152771868261460248696997909819821191671808028977458390296817240528886406019230660411276248327115895350973798464992058864026643158156333845104762448751277978155166689199532656853704522195338162152860569497787282338530389460184463524814092887198946339803790368770860871439858948351527459109694234119393111574692913480544242270565870314197754861505135182680612362775976212328264964086981471254988229032027303046692912595334831004813144413144831286677754480827615327686112256770154352174195682085431332217989017533095995885435366843040687806532954296961937022435652996232516993595773000833473736812670545490459674397062629004025486090531723711948097739567604703989994969491548854434056450938990458514315231506754427153957773729350595314351692434419862592563315663434467004247698432686518198426621562867601984490944584849323811936726548177891396769067952642670448366253507600237038218265473100518984110891546488871162651617393449096949721893295546262283578964814262740068183080456885153263814831103879080384364384392015091837039758400657910757049008483175200645257905933886682856510481277042065010494955937165166591387011658556934751525987400583456356756223218277746822951567303861546993100080523311110384854929449072018458932440274891123846291035275838357020120071501091886258886374053203265033851823751559566001454235327238390745490684082000535191470542936327002659040882355925824047960193989386670895535190864266752318499828597400528178039417372392649074313319512057040048377246395100293134823032077493002897390478340647721258239150415252135454006183215962751418539564176751835777353617251661983528417430864302170251239870178950302681754566190226781262257678764950928803297447520950204114035439127357188290363134995773782411801820199369902226471830297705962336522195967242401905853017887721508520207542546145670567979575382905660838018923413548148533297171426477520381927787711173246966378806495757435554652588391947533475925766894958709285149405124268925800864012747581341370023615732579051845893381843846060856264357035757033273233153751358729027286593480635783300043990127236388421809481123169529278117868096768184474841660696425817718121558261840846391566357996543521468363228554274689724825840418741372078251625479250676721398958897578658708427351740768009336490352832078733827656129112801933869259142019750981262525161783340460059405018921136832177597995381470221268221239296372003227068831489395257361731979790263402356136956605634097540581796495384537212095329364395215613159475543267190135469666248851308056042793395946480345891259389359727660998337092379716726106031934490473375000492692864540484980128210037094611299376977524497012663097301428195402403222320983237172609965888905379572427858383710126450285730645999021553671113498331089965169855140463354331671304126523157150673559304086505107599368023213069514299317239325677265688484602826877915819006597333739020823504739137568605793113348383788636314698801664038239747944661374370003710185274751777892352107879908345666851887777302794006078957815850557001380281793928659960837325658947314900379257827610178380377938979900121240625320232806134285173433698991929034785009566890051229512284385587816772649851564364303406161656751611071667453854068074651837600782582682097474029665088215562273025042688139078018670958282036305934023267944540612434061489226465744094092937845105743804504038992297368913096413076163714881956124133435336242033109176845023298232427516520691561687532251298089176312959923027925644284993947331656061993331831728159482119867398487131439424240018787284629532008871648114012174340388863949202324968182249599666883597709557676566068738994441438041424213063861491399869033475238851662871951108773903163457543834818240649341411870809251075382553334059869170761314160552462316281350698960685383992344134802444373744368836990127640102718167423451181461556580084177195285376972559703658239526559466765765828294492234358414203059253281188720012168855922459812091449351792916447756841089645310173110986788915748961451620962658773550355619852950528836188201606781365652777442926959200986972267895009781179082793937865860479752166944994706381240358213551390899074003534709929927022068961344239455818064517332830530517321565318501001105927597785218662855890747743999867567786973797273111319811480925873761131360680997665746455351227271966150396405216997126225947269003040086312168254801322465238869556168278368379350053813045405252080214010468307170809941863667901460402962225939393382746387024180982520485204727923320656621206812332826687577603345608178860880365288118519310985729527878977939711509486909058745097734464358102285240402014706681409882765336952358604700390976085948239761189226722050541857030654543825083646240521202750837709889803554002678880538315982689377377371728719196145939213137903092047273884817083447511372458452164046184839348634284625637761412671017447050923180872674510987077558650440099663853575993277923517847267995699570512232964077598280863682654105141836978794587491112400795742163286326748599755089135751799733483258625324400817812208843341600199246917318553769715676410747130478686363698306062430133731132908915739440937277864772356083556179914320901677198964239997509809572504975117404171374884745541263373898336708534570928488204604250528044956798958750028998189153280950185948961380468789246257344835937163302922286647528251512978879930234803812310874693681169719765707616101875842761025899672027513536230684699570822896418001520826608757862946470506235227301598641605098187488281954190039550475442244963481850696308658907534472129997704114797108477846142718430010472216816816235679120800718180716131155798900357262588353091895231901518102948361119181815245957343836463090173461760880995820636486928017171524309289227553541751233604543854612237524778687556085379587626255807113467878949727675525307593315975668044265356248982005952302621083559435324286821451248130310488251602625703076180908262461434273935315878022305252167907808992580724618528548113147284127616992002250004879906528549003693029817221979985042465463073775199364999480818209180595338056851626851539099773598658784768146607452609442306573405657644114660713242157796604312621219574252906916448031166520289054051445535212240487739228664085234652747616691825074524502799657456719832791745429899042906354146482733551015890570007787881275405030518899826676018478847569432700857598210347279482597152119435479185152094055169357687557054174746619717872079029120041397252302624930156633606143899028710556485269709650373851966175917748293326526872905055438729368292122924974762112698887190397791806282848465646766649801716755100668125778466193968355600385545546699670998101172598074173933504897189923569658288103153107140279875941671717357550630972393665211607919317004304259258556612143503238181442823498157123746016167623624183916091920286919591571623596277178030953728391451987333926353898807602255049351678095408128288725075030729346113447380636938909739167191472616886842721384766013412171785528922585695007959203971661797712403200206501747531764600612711728161079106354333215101259041193371433221257955977707571694004520314352704127782487819911404962603330393868133647508114276199272140827665244566083970031245531168538202362082909710737100860875750407062418352677647220858577544354329552172042657895180454695617890777440550979343937023759019642328237494768882606190241528815990473874747476046126873258712344543098381286109328319517945306670329173748962149943050417061435453279294705074098759153466965218438703642927217575818519320345446136284075175927683797607727807980742263797100428452911198895516076208427361797008800353836478408186478206616369921616305522446738486428260640614481399025483525309111478321967103835634622755549907271629967854706284983620384207337672478018161090690792913989480514848681363714776675792509844187282710180414374763193194252367406941188389695599497980276060082385646077601594097796719201013570231624213917762315493523191053500072972538183793733311057490317077470219243840344462890402792772828846566901020942760530781521447844618531041807108117521406821952597564556130280165957730324070228547221647757293339770384262192457467866239932786044730489301797041358662516678792204368041123227548887584267527002560734536346129563907041288745065895584512449597995204258940491331237989702253088841347964650634201795911893810794506858834056641867838788293889492015005178711933424020013625477067194575869623488308842338191144810852565001448745304586045029321017025738224771132044614439540713849298398096641573241485517632879773650668762074422334660898036629628909249553545423042818189539718334470122275852372782289519480208536869935385491426962081652805564698347366519362329787530422903694445039140537142292566228794653694636797337658460740007671895035328722516731247748622255667135242227165227669120368081331323071359952711378765371979941722432880782687469110000982513853812079575824686541199470799348324860159591239998423825581673714215868537312807648097281005009400419632879775409601971265559982112859330708240018460476365434107986665043734643381944653158326630638378169851001245835119336593998978021232258302531162115998103172646982749917314382056769892421927109962491486944241207568914834576666354761724218818603649103585642559786367534030066372589268836762038936667479608410482971313372081993790606607348079461273704217189507953068247630866974981966035101742957795758197573595459051765356390502717242461409298398019688199856261315761530126666918645952679742615821931184974692552624160080345170848980114636844193981937735065937398603633198657814993092285393326067778242859162438261947546436643872813104756889875332720129108544893802722511113714274832207920026629953385406031420185545664851219236391501827903371485836030008825115989289426168917927800506261661638467943587719366259274727880601803428042609418048359382905419726815766635466917104818822129442898105605213326264646185771526392639100792814104510431393074319512286938597908696673614520240589334744266790782724417257488360151841325986000361782746807130208963176007260022424487055393441461309974126616333432864172382767623924457160380069819032662006875903656534667847429032239788733434357122369222458109053055752918960874138270143299830298927253970546287095995574746614793087064918435742285262679701113517455473959507221158917348156143687137327009313295695777040577304861519692638537366851190814237034883691913278784906899857594657156822359045497831438436981873594346774135032086533138985852823558506086838165171825125883990224883936932863899043549229200709073982506672262082894906880141461864966948181853184697803886804326871958246270026393056478729092412602504045669995357552916500921553395208666009930860937917990152664583557535196248727173659906136243159254698859795158035934564431883740592640669246956049345792024364386754362984106435561213724041781432188181482620571691555089577376148070786802974019994311898970051347656168128256136013723914514248361530642093137138998832733027779163994196777810316191535530778349302377649465963430748621340426710057595996753631399772652219821161046563674875455927467396785831724083784297866894711218422821063258269547335647773400471210840565990313735167707711212254604893094264904924025279479966690897066106372281630686028331679230009583302445004244051753246549553402884051793031033329744035885917074183703535035571164474508351317854020522269648419981653739574805656296667556090580382365348206592156958620323658420847322141231623810148179420835312111291650192848083599479251107654230979570378091758922104546019526700250412990165172111329638562010673526416954773524062533095883583435280387499765459010444891433130033096638027761089442768560217726019281202293714182938999958400071904780782327491090945303936065524214290648370998389151818885874556123630937894952448395806207947399632647164102790799735347173925016765432656038998657163209243652079525405965301094094209100593149532463075908464685773320161576667636818169201078690001592329836958586470983364673978107859094074785841830564029416610876496508580865386493205776530380953867058259178236253871612058693203828074185910049883548031026091397260893024216309168152068640059170703705753577224606064421213233097345181059057090426099451853140185140952481140222219197152043941890082137031460717690017839792384518018850349652466206393931946318023545243980843613273732339522284084118984582527045600447643640545690294956911129562960985020943057195609464474089497604025945534414237831466117196886602098649301844510471860177061108792002677961979387054104803760323748438839816567714888171756089068365678120037333312728274872869916643096469419198627607716301494110666619456258472683819634100658948554036952390203331357511751283465585130784235063972372586971102753484700493699141158926360367166574736312039730746861573509093707204614340642661692521936197261873731553540664703844138322645310346154238041032516202804353073442044528429983178338936226481217879875000927244689992729627497693807330790697840507539695039582830232995275000616814932980009303090171454774191359757580168598184762099710423248777672477635816357482869276102691255969376844606000509710178445076748033558944142002199402179575024796191770474045680238369660573326288306684375041038265777350089827448150376821823878693604596402951117951963250327873138924933046815016591809953271374426818643189454752815540307815346473449656845004513340523861356233976547283060491849279653055095108477164827093765380015165175168107240145430121762758548541803229423358529697713113470018321533518005605946163116186467117291371933274023277445933416976739340080284727149277328969817507733756714556163092365780806167936354372295745424418441535531730304049738049658363513257374169010947186853588480629539013904005731767102624962581851657532776675617260557747439507806268981202364479250145573889820359798286072864289891322214209948960729107962403238568112897950241557425636066519734880376998143722025877395574824143733192847786204157205709346131607694642664268021192827769645613333556999079691771080646755737065852029104196344677025743443282367779051272568036048186831831629760476679935260767416257759413962043490948509257771213201736423402010558690159505568509086256437734145167799781041684728746645441849019552911090291127630166297941528848506908404058703713704012031057687381227764834245073622309479467229628176129877658931342143709127348330846451064235376772541461927158226440033532449830108758372372203479649677590282359119313221431073856680375057429092850192604542773984184346588531771999119597750223506895865265438393153214739464317685477408200422100341451677937035706118138187054934075782698263277848177485737285290213421982078370465358769703637944142529332291072222215489879205510607320640715420829318204730806253008634994477327381922284096796404884918710089419243451591614266051161631107848436610178157264896282082636640484324833493932171386390627001033058163038995164254067952326879685256030615496297818378739769550165215718996620595529399538549351409950928364639375098231297224321371350922311106739100015366789461603214096181998062231805614489414389826245078046406285957298726111843662429460260684718446071724725979790069871910826995489737815471184843986373198214655620489671401771148434812359728174442756956323939523881290874168356119160663632898688390273531844943628221957647718153217235916724072429258346048765505811953414005475341022176162658053246960178300264487490900186376800740554659800976401951756406626037574671195804511654075589237358837523823462401804042989847467414186703619498446107470794307043107252661179701296393247670703634754169298004071153448493434934085417805615751634602976352499861335637687633487364070883903058842426966132774602783110181687896199404282695757141135744668324837251553650520189477108782186748047427092515122287922236327427519296360128600478904516612767353519229860256531140071530275069210756547040054136197019771243687010959549749403562404588541207984644288435793173148716837850728583421410944506135211094380441074144719931688126047082645000876412661814771995954350406078490929090226041444040747423058832337910178200950039453860260662100818052532912992113338337390329870932219010711090932297755357582537351689799387028667814954047459304850355991493044543567446990937883162845369013681400106696740001948155817911148757715761021585602523550569072291633341092547396686469582760872127542952509584299687661375392859882217921079780804341186282248338016752330029961990450916491819306212362895535831821092885898035822883422449480956705057210934716091040911421299467907318375672230496369058290984172631667520942350731167473258932283611624004061306470171895270269715105678341610858476197672601531978329562272998336299379740432362986862993956778497619266501643923664520269957484323117755636635412917051242745317086648553896556824773025811441854063399989192372071663873874837941388299661698154693331647821115706810671386354774649993490837371512649955723816767340229723214688157171185280251699816878394717072690507993789732108550250085022804480158687501817013028191544593901861117237352340974156068641704743226804856893426349500037329743518956683915152283342567290595592785253983095812303915313154031235208490544557856601211775023972475594643229260707796422336190619286329308943754303947792637766384686419025581468844367055615814097264346749227331445602524534882714415964699483741113344412378791617436954661019447410676955026834101419444496564403059433726770068371383450965001195827198016897196466359209198000101424261962529652872872977147168026782278046148446250304196956472550205397462646165944417499869485181104068008258468393677194016569412021236776930626337082340033265643178620538830706688292423836222175684142153574510827982271031682883272003458321218131858494624024234387188822151075931057279389804453667100879652307581377503212667873478633358545355875820582068973269122412115639628386938485616763248383224446621376301194394699561054419432152610049360260073819104148831007091059241291716810326601995664558466134500150647828921362352176730760818663171872740979242696024072595186383041092382624639649027832995666954296044670103509007612570598964175027366561205232497721067449501213893796330750029767481516690796214229330780581845145567129738047722263239412159607618374084107353805844670243526287561275089142089015682497068018016687181253183080965117782162511454430984403266362502650238851695863731134361068122682144201795983690657061964608384696905840389467959190166503070017005655773708628128736801424885772821600097753114122605907169998432005896137474690111721348109518014108331852661045409438919670243527137957905678098608484830919630440056227936387968698161882431110606345569735301660110238888985354776639594889938320381495841805552765927292824699820390255895528244535531159584924678058230006308892393589570169503465398269910086514364560606698767315077368503063364650181957753558171541353296987583531461060486265399163082562260998988903339076558106637265813030152193678674777736911262109262073074457666877620664440221631059367033487328181227193955051389918545645395728133830996854545013840034285596204655436214478300413507230289588777804316588810580039584911373394723668189980501762356905882939532096299164938653612923458279189808913167749687581900843430432167512075242725159906180720869046192175615162151978062747798159593492813394540628226165481949286071557306126280901097130913248437585793903330530039924178548301350893002256666002983036082480521854362452368948266484531962517392429971885601143239180804750260681270651782813669685921365075754631675325116123433692886070619711136054986722459233181424077382773999147839972267582325740628382873508285881990644089744629268889913115627115877069741586985718803680111491402719765523635115164604590972231953522626245244968209525814648855107197849366531807733837784408072462790170564733760570993219069576762470372321827721315874415046744190742913851722036614832734846206405923682815823066017561894957376095332908525977278621164506067894811041934812568256472986474971239924946872728844161016595318127340647327025361809460740328969842789379983941505494075628994220658774791468498083596882166646881482597230191497090593984875702345736243592692509276614356674930529485127796105712611007928964044039286778139701678270324050267302550090805784283903845077805794563923091886318021220271189710920389158758049503178600758394025258522567509957914430690857442742559685016493341454231664080374398380638072167721653913592027794072427684578916598517205925736722086778821536746676565591353897274111753198224294265610536811901245492932703250075921181556635127360165202296677322745223448730889314668168311328846512209507100639948947594878855825081256646047395956673658565678941046047709298655276819768217250546699294456582698490840842297470908051641190286317214234611193875575828137131476486174176758652862531895265984230899841663049291856695503919735090886343671702157889942260688355965584581188264677148633464439633895838163281181856112583312425430271325033374619525480623017088160180877804726464854887996324252316818389239320744364790869301743274729569542271399394796430377044529823865235630159230390351388651424301782468508847149936504231002277473304605614818013154316056669163831648845992336467463024174947169142862330573301253265123755600789387935576149115383508805889702722888675155091998964222753082674859299080822096903624831111389495119452741203151801447530082399099039019849541137688415146285927801531932533017248949454637107245359114477803115823529641715553756398653195669849052514717818754647757523034420138666633543581145403536389694274847677446966568148938563733157598835778405965038591448577771578845031257328647919271176721754734501086133415222913674338780002839779620716809525923118037579165954335068969546971567009904813280741669102612537355918088655105807397343670667101540554848392386280694839806990040178050220100819215410109140624387024224770352662504567972994560854195001033933968381514892000428208146065486771032231096659149333341628937865089838999648518424678690255258591218307010966504409644526286303625994435418093305769329044503453124721421144104968544685804625196153758319291759525682232592019920234585106503642008673155494175887969784250248854353346474249370591044859283686198048260682929434964752525284424570433036630239435150654560094153746807125702039855119011024569802893416349915429332643066739097827398098100555230199447917289983607955157308194491196481652631114074910921061025845760556530270361450362306137571657971961843831386874045213950227687308316307509806790955296403661854748064215721703232314905254893757560500151423472004106850657294543195771839333524886956989877122595445506538564250614694236805560283685655713245384083833420502258846368106179630654781415542591547467235989937782978043700749631606550895778780909121835542861349196338022285779828088923410621256465789019591250640147024255628986666340462260875936271863399479400966360617582048896072637153261899269544209034462228325172652090901617131483067557528992416396387913733073219180050448169874627567344498512617771050515253013325630346017072055777185249670003162447367027011391400017502176888212363296761715233558541191594256138428169026049899852327827944698240382451719098151581041231088720274004739956528201466962725011217128353946360606479085694129317213202575988013529662244705708760772315402405573657627308382255889222082706117556372052732485127351682095776826452587586144548412250489957127790707246306539587348921435302510927403901843701084092070259234068440575228096441628773027677837361675304272792221405193974322188251160347604650784301715754687621509004881886274234114800847789857289436212779282360655645520828378122825286593972169118729491920237673130609246956046476668321081458236104111963777148128458064259459637181538775413937888333572571693246056713425883337908642803725418075906993969972825641407095854272330819463063640107325391541020488625165784311210815916320926072757285116651754552657220037890262137635031494175215205320966451089573929734240049136293486037450683606416742913117502691658757151415026856423419735436068390946603151921624747379434928932368958849906676486177585907361484927709702311282483039029262913771420165993013378584310705821909223034163913345000585211198660812693657672565427082416967651618161171243019223152872391038219905449485728773366967064826611259968471007967848293185130707612821108226851730448932285108936907020835514966976135947979523948251126668366435280691825499153967656417619123802640901458131800691371073888376679748894527421567404383545777321468564245174121891498370729598539638239097382319893534997603224209406983510536526071643736803040232352159321541753084043660783615744826774965695163209215390560680588619145941722709166030727905588011581084415120722490899300861403616775900103506331212259691986326822227065998693728278745733368052954149805677374918019664886432817256110317811545866195713714078623073132624283101500653892090180841622003902961607189575739278184365009033114590554137101240140860537826743840653708193834830235345995221744481283689332663190515587993734168635107176373684488123526353235031655893525599567711688160351564735948381700167388344359188349291125202272228771463410406360442543576830645136342767519900497950342654328610268671104045999841938764179669843475905523599094054465738044648955609857925404461220721023450212659497192213644086062312034400579872960210078867809964652299664346859972913655359952504957035775730832662645808939537330058259652838278050225179339633518076953758978103492682984166709557653396192696653389496724357680299544306868938859322143155580128946731903463866640371049934550722838148645693684041458528993927957487857551537433582192140950216337610571342966853754216776430956033790765822567798037411091409480273692240438755841421243177888369247566541860691725512122580050734069872276543829567236117880916298079940977409884408064922387020371794727203579958939390303771644145257874151526788931435075951955372347077435423816777247272472629913680532813547189323246177476969503644898603232635097784560844626140261468984250676849744282554351411060177125672247346838912031503473482357852949778597205113548359121716379282998990529930914232363381075382915737896341435272653096457353741460841135489141014275590154341961380353745663431719726816441793907920386082027400226455794249755888235489478425494146621332729506626615980856247486098160737514968410697784291595782893483094025256793845347524299728705866283471703383452181456020076547927754500811291419612449792109489259998025034248008218372418823682059373588965869689764717901272670308430392150538540077267274820306404238194428344552701882613666214107198638020082192666814076465937469549518363937207261335294953990358487363869754323223180451818588878393797694214032851176940542294798709143110096146683133232148924138427071042835101461596821540841349599571273047318190247655588799939624179576552940380742099879739171772879888926649410944099491813473653540393003542262835676614258413348150355160918225673807748736007103883022541474540388649382716855611458256361282407895472807141986571776898834331170531567379518584921763084673642193303860661264700926622343575115319687876284827961052915796021909841598007831132442404477777013726158118638657988620967582753993233065297463340618060074733242420822299504726527087310382849551221112475572696847397817495307426748368184109722969665261402186011024407008917316478022509486184293139882431644828440968515960248984354077645939958196813011398925940224063103502915348227449163851315694676875800775714134768923956362956067877215522015224608753193482787467649850227612947318172393497506072222214212462031501994418094571909998132836132987323494435231429365312775958074307189204829995251256587639232952353479293708114190826208302051724285019075927129093243729376890987101159197705038961224305901738210213489030120621112243994419742467529182062422462594334174576378563845408961643930697571702912308316830148242448198650441496569125751725074300248082967968444969084490139855157204514279571345802858937416458090551253423292513558218910984777250321407089696767975753989268069221118242093600828865341565514065221084156479461074918908160910786478463668854360948363161341625839763698762187796184705812730755467243314105390881331655387247566880399671773906107247662216293019204469064491815878393811580586871863953903042244608225860593827675216343006903608002615240952439356379648310009099106810907758086435863083977379893215344249892837416395639080170579344891862713959356212799650692192006131182240841025367024012193835912359078909591438876613415126746356698779819387907048678581013484878407314445810497279006489599848087157290027183523424755157435307640163827776882298522979209535794337747697742221969589235422955943543470601629211734158840132902106042077252615150549426441210895956015398214653231677996848405650018533055221107423640614847290696587376571339536103564036928388703017656158241214394299870230913411668513477675296592984464190551858771064611787604414292659490994135653902800609653904870713431140496721917671556278285844686917437449858708068485176283974594355744678257185620480649937836241366918968785722343164688194170629126926983316774712520939532532630106350409375486411877506350324818369078120602569639500173262696211523014239577221097901395124503261501304524944687011973326942381285614051120477892795086823728296441334717152326649453305075436001506589262413737650795958890362590773856326667223276036528370316718958125988456128319412302293610162069504068829301721938837192849705308372792666375616543202893669523368291914416081036040494124771414109897759534496248282232697190345203556128881646897748173708130269770979670604965179550363911328348332981899048353920881165992296054355122071965144411411767301678780313388187140783345760101222936228102818829654472326306446969210494719834406666410396021121724689409070325271589078344546390067512922118123379282506836266263341191955448159953730064959491325822370549565832753814181995739117486405888268899511203325451747107993051379400082054542923377540274182349974642153228221785744914411814672570013867765693745158156559198846044804069196402202266266344561144096651388301544539412855912520391458082014213120437044643829454045556461396508881133774043179076949327166593135556830307061698533737965538581579724361753697093994687061810254842145012513240783079335073865869518271159550854621673353869701019539627771353267016381049368035438575883445403610850880306090442419537941898924391145683441378256146119010210700900445643363316181992282536302844194280731653959262637568317732870134078589883297794647434827455229594851499862734501393592602944170756310534896600136563325072518732543832072702043566445976036192936152120534398348388991888607621072498839053131393258695003687198302573829349212443200860066307909578606695745150681965781637431013137436916737455732510708907709028901556801140671255324429284132002437631497726138709571246956768214899148478883155620771378849038628925202818305121395680908106832910883708728853182643775999407224038444606573876910058914388924385018560046989181320275082688573681624522265452480187526742265352496853836087516136282798107670690460725085889734365177964812026896088942329887886783082529737311487332645172274626320936245246050766072950473810338379924521780024845082298233899715701961415927845738526696119772027178989934991888993578432116928930079714491947978691748972626404973166363009403362606396955924890020912148167108097015077516874594483233665628192573490859362990435852697359113451576878885051764464627843829326432645310252572771020575146566800538673232434386145249852228032985499253996309782678142404227149819982508487388385181863807240746070046749143303287848075978947659927577093075332382890951189777473162022411452991281003064452970963001543833967401474640176977133812165877097198266090451768845040064008965252259820938502188388771600747584970302458881802731818145898647705354525754840823987379316334780993522416080041512828099535672195510732002859906801888685249307083998063956097735930559239926569113358502834075210849830838579991114074908001102654328516409338736378498740040429492470304288549671781697675064954326567498926846423491220961989232600487610611478781856241668663633650094795727233449519962280407002542544796086863860046192737034578529707840781066077601706031647719737809874360544158236314492384327276516102260472536562895269930121896659567672679098651059334180926602655784931364738072057918961806355952732114826902116237149748586378507386516796588846679308710121328051202970344792036496485660428463822433360667627694695446362415482386215984574002592483140852922443970031030981403694982862611933418359669960969849410303168648768175926254745963599394620254186556278076258814773667804207595916644175665985385842180570382034744801221555984036065515291059109612957876782761777591090278698919444939331819860230764883583514255525830896861317762030164713399475557138141511783119828329360345965759462827560020026199303629683756246098118860580730094224446690702704476211416437159879186585042901874392210905335012476381468702144578042886821161327677414465169727007695566545147027685487819333265546758159783497299313870322960555297370599892153861135227605455427090661385648634818059986617187782779619507961940416615132443994706794129357233295581226478314174576280242622569252779127037770274842542194281595752939465716158144358867591874965964449534795962507987609403194178625620845267631421913252051634526922491647422743483278924126903785505588810669052134910484658951395040670643163981214793105549051573640848444717931691195487729917037691725249052746079823805438453104141645077713923173316732556358171945120243548436326538651906634021960515649912616388780253452983289356751544464059825243992834938280678816750696824065807540826808911775679614448644246245601181413750095141599337526055223105529711222241816859195995725986651136183021239884493052116024590840085334417605413079652774852450400233929858168069005932733931147523246262462157640318622411022266262162339435939608989910756746959253886621130565641400789146047768127382584538984805658875077460514497835559784439385768220236934547906278442635064464590627569950071903528832829974580143000508331317171820444697063716251661478900642293375229367423646403987394455675487199557930118952327327622655241485687838790339964687859725199025349040850359889128519832060646078336530069248804221447498803523115791887373181946991789200658385121919373185539544510037048230907217593238775881414126944331267074673381337191504218116459681038869580178628106056158933557090027174830743060531097972582979499423097425019855179353322515785431947659045767304297344284855942488073597127111306023653288669718175082077851337749119632462668623304445788860205234198447209398030698671163705475919107367229412710854041160169781569349627923253094074902969317249136081785416654797825296450888874289360301111646422202687557170732722902303333279608329024238591305980977713957419251913709187304879036832915976733306592869447123295192519769413721427531782352579130625623271485121592074018798498545159713154490922164558986593514359656456119094372110346872963235424252734195952611819728379188001442531111228228457775104839293284982183619214642106783339019448715017753975950432210508264164947426411892778656446450217331348729455353693085708910001548400307903738824580989158088580751883542378048081547182700485461755249359818530149957046333036045345074784157023581738411065873315899096108076681170159285101482552249879893611359125660128173636715040276151558945610382524297177450844531977471385021187758656172417556078941629709105604112472756198107128190060939060817652725667887237904451003025031705293234671812536527675146319452223497683277683739420717478865513713994867335669970793854987543282698486983148999251701162734794759141685224403339639153124575867185428885274969747132624621564096472180275230608235222040820402405365873992795920030525178519330531075196216654331292536213143742334573205740863249824822018439728854250071338070829144278126198829966789193831608058939069779758858365048881438874751934904623064126521443275666341872774534751431722149191622418921984677016710277781181133215171223179837049870088496269393148916340745137504360625201724613225573067295243268062021927807186597927561221772284615012185003773086407528620025084997781730256509356500330696262522113366679087732408252387385264900525178123274217287464367816362651274731098257536149431604433390603266149814856501525995853344411704758877214509060584632925438562945580562775757078783377316905895908237962607865675120235809994364683019114247232052364462906488633587492680777794056422789560683346974205908974823335102245469373561468564074256809671148369488970509107189086736435280894187154962254854133468409992992694317212978939841022119840681462641546607926618641141053693568399923456592082534828835753688609861777375785120751168021066212495022156152301119180055552314094005522355149255839196800029064196168434512001960226306185323733750379435691836560146012064007148095795312834841052796870170851859275348670331732236195695709001995832882276046316927868061549675439853800053763026632528060761878984736524669557290346744583093556149409279071793007729242473687583457013393603734752913032327247903752267420802217443060517617767644118287337675618365808025985541075692191829645958797314061036827368167108615594833137692104506014159420891045995756706256158552217381597491910062177801438060683601515049229194282678017078203512069324436884527877808381945450978155839979542135930392537855412523654573676040022186854462400225702049869149347366799509455437488028873773174358299375103534264037367107309203575308481743471232005907419870670995851588671262171289614288515128386537496672562719295179991270879056340554343212787085164202646222095967844470288752939527093554312477151338030326571670238725555102453647333732130284435925860013995152698502701519691074449300581509666821515991911621251442926393464083834463234654230673212961257843373728414215379019951082574502159410579932346253730041356776399720313829033119265136075039302288049464869391556224141610884922967365379109398967856817770828005469701201131184450244592927593528788155290097084488861676607121590224025961745917542508667746359066268681622171675356623806708663889240617327546822532043223285943505847410156426029397246003880212207821098048986495117779826785787748085603106305634931976733135420736296046570065641760758334587292031909512628761946380278583060321779604203007293323241773978530095276959484826425671933738986565501516635796945098924907745868938919977518152509360913503758232150032340612990103284408543378812596026207632728566568802963729146402982588784147936338527623900402710143110431548240482423452197830347489108345301383753635134008651492754566612619847517551772718962176221298668756147219029119258556933575233232406084745955449773053235477456786681193982835572564333480767692239612703574279158380992035520431277974565697508000801593099666143322648722708156599708729235748222038940418275747259632901297136893633598125319837369467569320727868435645236484479018600363137311428409708985812923868136546466940792080823462435939926735830719512955844072068597483821661897590775431975180807613464893548842030310642395804057777383946078342522823010538095446172227288072697414985894522009762849732194771306379397650897920721611364180622112082986776155509505582854290444656828033080108070516681132063842901040835196991235864305129245698459200580882113075826913472967402029912891407099218336602170807935556403244575266248429108211906547513137095954755222138061458943063959368159057869224459615921199797320169470024880079548252411305128200163807687978145074145483990105314583920731909476862496649727744955199144570656620746438320112649130665453727182774153318083764616984208290833800597190899541664955992740974455834835251710546642557090007462926836688109531923567014039160058658911543703583245038152174891630007967480573243814480462749524429675182299179594103231210842851378246115312654790813005041029411490294870979911346876307915602274495813817354720788494366153394807073341594111486062180800575755311310833253086447272206061447447016485758385868936195417003434328745713169123610372920345148664532215024277575794565342595567339530337435532585528205680665121220519269480707630295817733184986667161243145907302919395058362999173202047332478033889815421319814125412110091387948189986298304720581456699540459999219790977087465260446463412273308247053889270019605104101850821016112181361427147261603591803525830850393361621118466355116602717637989468067920655569536645156423355031501944271763490367300632722291371064141135798325263883786891522362749139367187522176259225616148352193770987342068785103488690169798939577336349125837022911125684361524937451828294359832536625865092476070431400609549180494540331356734916418048053793635644607449601104527722016307487597112612198288800160668334664542589965522887755405736015946516058002812041097469453110682857842751161311097450800828205535039629831491289802844096446228254035412970951510468172360193145290104648989955861991800719828513054588260430918082739935843975067094538412792444555186690233418325701637771759526265344607068126400036381156160331905061100896019325916407223051806250539969552553455870197045231772256647165626567444205691160420892176353895148595562041509745732430417707775822446241729344464269706407736917604489071664103519900767859736995026601674746362438869636717352006202324050606482899708471746994683931422714096768963658074767179686541389513283633809009519532659254034296762814003982244757148275618307727620118083379539378567177167841787286852591408372184976936808056310976974328609696020659177021512648359716466139414148393956050122168696225894298288136442413218154660692274451910139021656369752739060769515731393915084003531888048488877894676196608683101555817846197539659258762778992366343009944630014152485804704132042210048107211044945241510729629227447650185908921685922903673005175422117467307602212145654970425102275091728410661843651787912470572975735848629807268039526893944375219610408987786131966767822782763937612908872649341942165081124922477279040738618832022009429137432936430276165331381327438297495378610845486447202050566471875338894735189586167260047897473278198708223824978314116324196908979495093667786034541331933264001248564664242282160417712210332864311013532024814609174629263346794929473294539315902816812131867845824851332014962171926359808756961731785784787897989937409750375416802155839901033844633041777059130113007876075445172816749572144030755783430910683841228015884758398677532418033086496120238956176611845320562275431781303987599482120777366507244837216958895773803842426527638766915666384771178402083718404721294878928552188158804450771478427177957961959377825780477811934962426728297079334177476431274445868806279902698119682680095497746439467486576689417019954120350642951555937843851544417765414799436485620279169536058554328418946045298544707896830289102507010133671280033299354718035298412834347972453326707257441219391120389116992280457568360601536896193611038099625400149641117933701180661479802460706773732432674644552201790748790802378611173777167306184477790761523408237365771577588824295418710950296003530373540833915667816969478994517387057089013925366551866625405547909199711088742866903440292464248872653029557969553909507405556938483152845315421681703524755351355329191169047640782487966659255690765307351385912623535352206068716521726680968417633325484150959669121723606035840815305832090549825047152944139780560475742362386657141342039763391802725107051584855737432313825178221216550182769651625318839468469240233589986520157759502477695470484962492386337421328565436624581056365876863013868684554625839536467338413400934923712060775708400380163114528993160022492604076862697036108338737418753244218878538244537448575164415428117059596944190130256442134541872368148446469198112321180223041671398350860525868068188310574036738721593671692917868465420690875265962777049994739652343441456666032744022382421729416504586234759901060150525107525253360113199239238549961613723232638817164714541305723695902762657892462370824114002347404351105929893849537562981736558682739058665412374354613273169669808252061847023790167763746050691878881288733687983723323882652683049254240054082777853864844945358516767084894400482527476242471852783497854986520316912051280951944204891507475375649132445675906852420782180989482109452175461224593518649054368535311954458582927686383085234821962450833695993554059696526819231777955120956406192350620011670511760106812897852987899031924558311207520728257819287030237025747311442499897211295590793203343706767053274791078557614997193442509887853247731618527157264456222145606851366120015541705631512882219884674999525226394275590284483356825107014850259475085336063309117394655818295772036775631443963331878031875141342214563862827576254191030037567981678449172299375182979594920305460882782386417846238141164922414489949270378361169087121014346796031097752802621277763919804786299118379256311193152290687422693367753997517721984427945984230949507979592716132103467222869010708081711628553683292862492233693636769307298071151307192672338444187804628067151793694336484230743971051097290270271536700577599140062478750667813820055069403266522947272703121790447913898881412513410959439888039158732396846047759685974955048356281385884775903020295570949621231037140806058256549358057205983204872913258253772058684074745343583256793909128811089951949059427614887015233339059966116779229332910356207534991313623769847729633991151221317291728127759802311622041363086092234707254630009995094976164214515752619714187315742829102226686322788421744778683099960886616056592136480819631771852442788412784072879757695641858905512931163020207935707068613862447661587442733956007210248978177703698694747569944068156621841340403552038149637504508801039179232744358654916497449165540246680367020425984529186930493050030946420774983996693201160586097486309614282539393245177831964503221365379027502396607177583043328682571791315592504820744771959235417033288787161714911101667042516855322389135110878860579924698711459798041759698799160592118859108257207445177878402949553310061940115989376445285963395877854585440408736680995003975863846544122079628947868179273868916443497340270959563984824534808440196209642474478223199549083789502638757635664082420533483889246450221847238439105011004270316767766593342987099661643467893150630358996081990733114386795584338902605021973138869601870088919698562084127654182231935545664516671333355955867637917327368591917847927475718497863431059444569464788322794245404949111122813863873888429825140995779547246206708217786551354881786434394792905921990089939410510327914704398103153917178661138817458400440873589023437398611612512686289585019800339756755220578374996334008625762482246537279517811393986570048915949836683562412875726949267353314197530728418730691187517211585715231332604106938919980522260856973136857666752206508313345416405142282031762175857166696486462027589768825925034414398288684022166389115283336490674990353354674560165135743881764290880280250893997819170173372482996001684997615969495994261813025482538382589013649007202170100102183949524084219840924429543169111837287216807240754018564688994901169978314809724647675388894801016993162412432239443838636450169500842201080778202252000039073803312579312605845093453298097010044602389269117607058106482347300596997371141879899012884220423862422178227435140904886571500228683302363323208673431120956914296976805710910930072754032106172267812771387362617355625758059422361236292962066250411360765262477297418773689374686715616799833018660518291133561575565209402680938416648208184834025850784850566864352596190475460582398080291071308415994739652910610021445007176777381910653880532698318346633800532791307667237021527910654087655116794446819228775378176053363229905387250634474782607425608305673952602344569469001453746561485824404572654839925363058862098029998242613052814590753117929528005667224509064159023646075941880395619648818847910782146045366900401714580249412221500240043699923113081671039975300353195290885871575779289077295912173734704609469553321686366199420319163692063723910312312116523431085629988588063038583336056906812010855389420992534707406772385320705766652551192083532576410821815105047164039532026336926901995259695862313318043691578557208461085071505169326495350960649930033404348569417831939057293898749834808924582887662279806809809249333463318858279134608085245027256683125452788781057825700056828531806708161858854552344782538077348442687625012829981828401365272221006735378258293220111870298859500048592607383057113011328069642442975546428190720898666435883935941274936190332729296466846233293017717947280068249240708801047294486596576870809731691081527811728478134132484147991620843424474460799253093984791810753044952966156689459963499035759856296226961624314421326484493860971571135382888148685236892690655753659057779875348250528646918387925798856969794253832880530561517722469940781628007882654298598273059006298232598359499722355807060671550953532455291972337636776639899495696489595868260829988044284816247034788441449621276749581196067045810132272539430736204278932156718560071163178146144453463859039627807335053696454956656222742391471345001585855264084805477724639256043614275520151575077537930072920499044738398347510861047610611629321951633143392758325620121318186998626655285872421249824802416962731234223293514714227681724409685028356981518991278622681839088137627352328244837100828381916302614166556807362450500504732157875265439529670781727084471999633546396237873191132830055894349342283402685515471511013070644689189423915420226479440562046521251430180565846756184744666025754310303183793451754235612994314509082082908907580662935779676922691592545144832489278475818052082461016717104659603699951691930792420306184005344393464907598531419223274972226707661915203351702003969322273247606055007360067392988787401938550130597052771398968301931123263309466062631903109111299951406473423825769443159954847629059595138738914973812311611126945984087250464661322655967490479147512953142821201520139035839315630062758912399150526472704551720426568864821032501921028253014534879209835261777427005546178696274071587624935611222936968112687642206272657373774927275191453430860465215710376871938438655910409829465811953275730338015786159553728584103812429124158639022954215465033455876708827802561778051285457163546607022447505009033709173361185795953674947614742225027625262238592723954203070689343204598337840112819944842210473339951208751444469662790355539307728752246569138576015442650198595971813544294932712645110027572830307898930414052999627983590608226614430322752423290516101512352935755184188210649611461306835222096486204227416013689004958947804044306954892775956016587276416897427000534496734059671450621182916564371322716865836255729640176489847292359614731380061952619894830160383527070359571866982211562129210892780385615325563858960030610149361934906852914000498705924751128485665264041421781199757572034729270764762474260306493650569755023970330745675772277202601719176015803014508426023669949179000616833122263756385991475495764912035157748027374086516610718746649225351604119981386369053621789065661008337146679335592654113991273901819369273385830541529652848841722328188963996358494374720154567761762780637573399650885424590560480841532439351621830334630564292739649210957785876782101518002579372692694321161938195588492768199483869502392954300656224131585915082760848027741085699887308864737886957896566845272779084423968822125959738161986561685975947665141432116904220596182905061699064939260073618599694385972243922450950663324406899047579717150417702017067651749868438601334778103752276253568755391443044621175056790755468942307653649478157690215730602700342387405187307921818349402095879073012005801411126714417723601967805508662384196144217193321669042963719081814013828593999309509737743070083566062401371662488519565463829828421251809889621757915907918359048897324625317670800441387797759069943869703688700638477731045210701237996653510316154112323555461529888856579137430879060764955667293973312172854779751866362830978066863177569863917387105516781227020242679399339216239139925625256446416624914134090499789172462929910726116311873710134544290869050388655749287495119751287233152639479487136789125791779985922020006332930933700856661979589046121663828441001737835762068200528873021956378741347638057693567667880160096250731364023112145247832576372533131377742945844532937504464331229613334467039330020563556442076828840429121758309426223871333952059814332562435216635164911566628721312331298084251692355656889568187329739849431949901397321747341807429233878631721332619009073844764637155983680774849824999395720271146228408842841747350379590060355589301286812330364942474953143367738416041762642661558389109206031295268322369404612826995303570980281601563885230044951796588136944914981785674415027884069252354647020323740201071899291845177767707597413610421001952833292112652053935198099819521319891521837535109746508832922165044796262960938949054699903105858358840443897527917143777930057372420401527393653365331570874085523057937788633948466500205120170548944364072269003285993200564764763735848564010249251324926416581346294505951333291732030909202935149901374329609784169311704450342120666142980968427123612025419937665053214534410153432504289130271958288653479399706020575294412968210008103576239606550785780888815872516459827747204934001927084351267809022275387280900388866796105801201815971181335645581280588726030417602002700545204643445489670779494997752603697659837645725015082497113252009212312760373470664952100627372247103834821070282963134612399671783083818820124558882438112447396407309310202633543990256873009485600624559954684267837286349269132820447323356584744355967954566672557259960064503324480375144944480087771246373571729183110200349757045873689690157024634746801072428343075173318057561843022376964172299863607424606731535023676929535661669993665982684961002807033523979146820422099232095465044328601865971502009846669822820445884795183002925130567542523569604952812220349773245034866736481369991335088135601081373653203220166915317506380796661268681513243176814005317162760984775503717542008388404175324720201737038032190279967576324850822369195047013007116805674505619172005840271526914345243672342341426438929415431219782173930602218449483545274839780691023666383719840911367922752443677787596681179494205551714108769137179767716335221783329144169570329206679498219425872541209816080598618786711135930864689076866499980021520973010923309583209509000961094222546846116988885794714662608048010887850249760956279001380857210543986061876134313020692662552163903173995146085772076331652864030546270987897334568133253234824647270090279658153997359860266870509227021086632639803451725836181867469395795824363524260263595611362582416029564445754291650364025919174689219768133446026592200404374935951474545970157130235937015354678187891053376204102850325251727058091594097367663552264758788722949571692904851954347355916505489139778581997560459002997049076241632136753555514190375156600419579389425180069000956498601421671635634728952142455156730915129499683784249558568849043371147288390804726954058760633787873730421308813527263966322183877286814989463235744217612509775863723700039929654902985378683382214135516230650141559087405163662675054749079521840391447867099510999401467361261172221201966978045504677155053520095258188489108821658426347874587981007602881511619930907625228469493981073307262742460124068137278522950748627445853137704387487186206921901930421544948143423109328929405151005631960855880508547522375235375600158104775428051922782633704563519052548171983505154960876629931243390856167534270321826506553205288416840131560562280328321279863929809769581474296905777107551692090595089237045331739729597143432717793881935542304180943927355284750301661554234497787089980871091577307833068959691778248289475780674418323564585785251734969290710653358404588828606153110664814022018256988448480735925205159067348553912307661521803639331754049540065225881970858599219679674661874080627081938303618361732525766933841241519517585061417403912123433914677067530136286661903784111075761993631723612043083236345291856186983219085274578498656689465048836739898415810044937923393251904449977425128978286454146902656200681544906493118110552396056883460352341124438262593006691127114913763190885976470695643187156257817314637702686542126878170465749810367399834175267504690635550733668984420541877881841108478339832204404920899388469068970812722574445093296462331071141499663901999238109891907303295895240455504290753555153292512427155427263402956538788941180039109412202663395162915812407048374028129595246124910018679911710555232039661946587608142840273783934264729731032264262563201562524120077299568933067333723889806720610479629225223885937528865179845352417800497484951076155709973119932805022123501941662275454867048254941165773620144397552597928718517088363890463407388549415655892925353298039884794980562916140329635716831234218703129587435514928166095497535180784089529508902928277277695531770442667890529077549580403315575791611827125121432982305638942738861728760162823784558010036391707937771757653342273505509285050623145030424273961515614390666523762940070057221343424605943530994606235521905393854376932733743608075125608050873077112548448825928497351007887834916361244469571356800614347254113049730864308207895710818180473506040992917394984169630102306005997854108588108510138681511503613501792576405974783681672876997141439372097299197755241811098583894056982538320094482588770747159169411829167028296047750968585887713313382216159806999462393584245345295119160684957342723425978360199854062100194285327159124295962351027289720952362158259358309832224774847179135772113881120693096781059367984978840792600548652889859653960207403308609235073664790915675951118001341996311000685322023677289788017969675314970018127491788698708950703216913944262803657769277336477201738693689863128079845478017446890040788899510395524137093891102353744642005042939950141275773890913806266578377598420410435346088400627979032623632541729918545560290301329499349901170770835454314537131955873212243761630818250009431400554546986598500640294418203162754229999553135108451194307221471002280591587263276103031791901227813780221903008432102665119735763791572695892558633328960142178241514485807315294092366578097273899521962039111308755329592963610989042222013499478526541407199192733636628115432236364016088455667825320464698096663815782845961371754951136832276701004375445713554257392283476129371697991355054993732275427294612896856823718074650491099491850578859879828780258412283274972439212459412822518829981601759187537287549724297624942461304386775787567228721275820152381661075032793029855659052435072688474591133078714601352135038894965376889459191194638965077300738396834456589078556419458713759435324095757102437300532303207814291491799683057206263724103504987027349591238459024193169228170209777693221293885635520896990980284306226359252579180704309040323267771466346575235505061682188517751795822250067203777468050850403362212450555081924014657616171681902393791633983485514284165868262091829359003660757418472361842504606504588178711650041991501328132841204389277457206019045060288225253183312290429603789737483206612470442717797800070738924570938549836066713546848929774229074889709397914127290697081006493070353357900430779456226755035590513888908051260267263907794634956959746100705316044162727594706435349723733297801977646650379493771602072503282088664506625324044159242705002355421206331292080006763659563869749553817135476241383582032426210194993101785213206171276178585434670706892031236230390870115815552675315250308823815296666775202401481052609851669257605867356294149805362524392524657418234579990916573655724178504002404871515806038665895147324230503610572853805150061298797035476766942310813550607790571913688151809570338546988919393653258622468318002484946090347378996155916555892088015679050258486123741039615207348446618804475172814487672606238378643548439329632260508385708219916109238686970603718900741892483079871823982783213478095541833928534103892568516895608645693794214237357874674744093208970550989912018411162658303501250485565116947673238290387890050924886231561378627862445523580883571472222122036369706063608353862831993688183547383794081592819383770694709628089433945355844193683933840378509127134718996498977926271633573667332718354559386194526321283592796804784632480335408556869997612122089787207747405744329997367339064665907696608211954950882673428641830612093432520316458261455509929270155156565196429080105384234682681141655586723742585380970705869685210712874174939261026981773004207586726586936316188454977492431707607024100472029462217877802333766851254216224162371250812136359923879354461361400499392886089634544780893362872483832960123465234807527666349583096409630242336359135936312875003164742452476538078190266962807317399321794821407369508263923031028248225645847177226760331172960105080457342608856279095041908770254700725118444703800126934591221525957815878354202606090949893265229918601355637687753663629492556025490112844808369170009640493394998633576134549097956961314694450216698670247675372360958309261999039884463755029896272038254369144888289020911810255841476268351802771200229390020623536906301212257811157360367884628512384491443832793286648957678262447930834296586494991822764959429107660502851292311166570359949872743476333609161137468058911857159235311885477334657089735717071654263604680838741857083750308266534120683136751118640764038631025478102051428765868915607736727870387578601879955588664869694309363415219960945771698233092499444309026862010108183694968343825418324465717584341128218700975273972738446195129741827338475317434719791340114758675296848942019866633919271099065930637400810910564621617493433352647716527450297341765766011631582588205234865052264522543879284131642190170335731544091613933193391716499175022547461479817119326682784947701604026699046332642551009426847715633032136653866848590160389653036288203944954361152325371166642446643700563178716226188765209010014500584131170895349550239470876881258284483436735295133822591573996733904571646869103498966407833821463813754050251664542430017202108323641007191089853624651722789943687947807671718459481469385871909847153968002003593054344241766012903093556438833653933380948812969823474103867449882263197571212602828491435290888918975957220957240706296440987400631290328031248849689201793028032082613964273739572278114469868067668398191238582539708772638233505869836846698575561110580243637083962005790679952854745536562309299019604987850098762775002726744824714074698910467514872337255261556124535754514193733546448148484628407782271610417162924986920180044691700919974369728542117481546806370885257336260538483437044790345280446632987904063346724875139092115217911079445676833059099476348364156375039793294990292624151066616748555912393670294914521304806300849404737225125958087650570288168392926982110132171374731550673287665446829320649505886844755001624023072643949207809192565253601272661056856748384430487489452246191592048550019232779061110381652599516081111473057630717815988309226789971049174238021496189932743261922454622377167078324671433191631895782397111301225096350866746719764338560993647148624150972534796321798458616857029220657778336091409328983276224264613507148364029681114825670856028445672487486842982140053025811545464420031829497132368799109017286034713456913858742376299751881569159345692501436419208159002399179963423238167967459282383369042578382432852618025116334172269070337962055000709659019246761844111776183859809283540105616350483822769583756535201503952684050120337955993447681372267383690655196145748670428594658944111494386472175698320984404287748256732719122846959080602643628300537465476451662788793606638085184861476526732541565748151925624796516709892044209067560785280752362046191030974493275716717440277137341332290477030550363165940209439202010793649840480027211836165780241273996024091829238193942117947076638372720747474068392921299489912641630038301854449009755822582766137111811976625195863728354145598990674861819910980749769686753056708886903768607118017543759739648516200430156420354953537021206629713473229129210865287107369239329216183446512509314148516638213034465453288047058400175165831480872662785013961037514870262640540523393186418075652581859903918446517715066291455091472229009377381521506301533658366972177107333985690876351871545223137236322135961954792982622557480804939133698196377712562341313961533154635901791154945220097134668207018447896897592775842880156285796242696535324039178977642449936937275712604424863657274614006279781487158254181563648348428584598768132885712571440130604765691353777463959750346079024488022862977652050225706004070123763541120628540190999443265736234441225057901689289842424107027077079744058067405634216154167324527976949234853460606008354999317286858181645930706670992962043216220421104739086062138084897520945060465556148851651498963048969138833792391803115007136283474910379172784966766946176953463475659206861273322329113949503563573822634596921322975221661367238432584028775089402686789139253388627421423428107297247481070591352429338392312228645167726006156011520376329843174406494820079666971491036090521545105898291637729113674166947825427284991118683625586531477263998259881818909366335013423378130530569436601302644144137565159270624208605197316214301514199750626175982617918540037000764401124450879721570435824615340358897182592014787406199130880262575138378819930496717067951419305901401872899232945706116705446773585948577028842821508538914159057895529475822413771687335925759905730912508144928455239232836731023099381420678475672370968335332364724526983981861024505572137013855174935996110833272205492719602815554201339723854251984868032681545506694205142520336398508465204543678304772011359721602440318006478562929320629046527649881533174675648275729044366216050234028410581600988715448744250536350885184774808339992354167938099481346037827135848230820773642524436817051001233049894130640030889175867969133555479849892174403059577713087650717203840862720149620719700033983002277384807743277741813060053778867821031284739372635891801962990020808737387737987220497745499980138001841611126888693328678581775306543163402648227621259124023994288246693127959907249650350503225866839020730157719657736043817930546344943373777973159735014059684518611875753130044817735781786891468934823370723492869477858552303807830282739570157365360142984627694740626833633629562184252719445192862788480072981615583332959080255797903886420840900901590690784137083535596987148505078501447811328625639099237459774482974704690495752031137026323258065412417900641715185671507385480862670424688308388269129356367684014369072132799121095125032022843507056969955220091947972090648281138182361731999366966413388713404275871878170469191561828384868345928429138317307587399130553289545052661236099439628355089012840374513772263812819590651889832606063737423400029699307649270136343257737831705650355986490487423642123654946706117157615610391613942726782562896932464431364895833721076550905257611410824995440468058338619881797500461602814471475237343728537593785007486692353758695734265792567295739379085503181395692039571866730411451788428785348285355444574658181682160996756114610083235683412419381905060298757901813207681157582689844786872854966924354866901295790156813128783902347765356688656340667715055621684804567341249410015436158689152286870220987731113540604769881352482081123946886057194274673984404145644405836677487840440767341684263655448518079291789230483728915196934100615173121414644048703233283210496222763678151849304736742101938399336446241767472309610727618021446315563748237185868022013349944142029248705725994458350457765859394413916173621943952546832402639915567693363049694598219612782390970217145549291025589149498704664537641192295171585982847644739701767006065861541475895492180561561378839223474012544765107864712896226841099543501876746834691300927496815322086961755265067494561891067364324467407165495547222378001581730957733649580531195062436932842404292070751736158573325365354045826317571731559967069899750064396960992473655632014352323658576549513285488200564706716752798746468290090954980320360917071480952540709805403465793190537746567274809179647851975465097505148171148557604343890582970442302338674616564663177848328254851816770928078016282503533279293738888353370043266541260313840544359019177167453356834048754215367192043908083691799252620981922976142673220764881905444575432234593481618599686878827723684314886410360640265562949018799267345149188539858718008281690755641345838417540128436459623939374264239063286820429401444167172923706450509632684518699213519222885056135534570269081372461432897115570730688845130710301206093018086883236087528036735470127623498451560739653500300004286417703716880403270782422660152201377986493963194024766404605437191807343932599616547906530121885407247003652784621400655100397816945633582681184730311618296599852245804951619010095936497499894259647761325742555631208399633518981828269153264455935905962081888802647387191903650392846790914299216830355158628332126551903836762614505757987047715495127425964774438236490671272385157871441280389493964658312509923199138203511283162252990271018735021888895776272197906180546249883509420268358273984448656066370659880301657768308975024761333814915281401242451407824015964162872482375357769969748471913180486441286916920573741909142743642803786160166645423311784873793195973694958355148672404757150093022536161075296577471597704632172580906031778997065663205431833304123220391495665119823730366898225425321056130609132401484603342854446017617539641249359330862362621206771401246968575318825164342340049929357604610662812784237770937780004570694184360816961729067847629552626113657833200730816350086761759943674227394060109251482822085014391417983761868275586672580895713091130661496943385564860008632156743219386489850292925596237624240251075324485349885697682252878600723004789186801949070495411226644569854118964142758541852202146955668997518668949997534236206734170597501852277455344630344794074873366657876710292811527282928727076651917176215937396919977800974135798563693292208772261485360133562545904913268400843540244700271427765745023265653377871893335854542499268995344528245472631000945201101559123468989425389397660258475024898271196456430153592262753737526307175524810392740628136551710220762164488185207874507573208459432865364072280633276768488497718160965112292443327721866622073250435856457533643421112081726719909675359377789334861122094877276610707217915777799292560717661266944563214593587560100746800570878471843047543858872349499490360571712616784908791063700761340960930254311712838563738660067250539571547244572848708904187708124364669029190906503797930278963299881732203488881968875695807703210832184898479926842599651849796278644050246741985435002503208772084721243869486484994713994718788900963483596394555855766856221374453800441861637241650453254873076925256918565725456427333350501169094978038785592747838319210504549016038873342223034748036675978881226482456657455675078050610322817277463337967237418824749989587634650200686730935771369243318786570611118958698341417727226940273785036419430899768191859064375960997126785820113276046677335326711978942036970131612722217228313657311298062926770691079543601761651787869057633543049189575779299969183750573734817568530411410896858858463695839722211504645899987200123735856055034068158029876554422640802529095270299219160994345951852320202927372539310352721291214068382955084657554337830384493014811684044449260023508442869463368145185963750823443807655325286012438358424721722819194429475896326549413640350496455093600579455152945067610264853288110586187201095814406165741346267642595654613912883996803167756002080163121461543685762262472251759834951956228528192308585686532899034623831641090236448503363711605063503729263009618121226693480991569071725439742574512904479033967173524626842936678833170637946688595954844989555602191016418841747798310999570471820967145125951974847326199715055177186266623905409517104826191477735484599279801693096286045703817444315408224258226460545527309510328847547085353679383237593095914342732925498708567317739477747581662076283461270347201671079946603910591460545785979357614376103300244431423808798100821377440499269216924060245884790891958640843647640181398915265689777425337124976722221641678180730192266555175763155778936776860658293607209889046866947814453318383835803462581037384453852976479539411235402585408935012134284458508113365789221688238057391460416722563194268015070425428514558973741883440792401944319569307601383924712559918381279254661144820367938879542887769463641584473114896644063529668674812345855736447871809804028741757618269925481274972683517686336873675956413798232913617458345676084389279603596105711222139020951305363611498697415242589444516683656044084947789228005357820857667280020131083470621616404263213569791171250565321710880895549202529625220405870456862869484915894515497144357809869184136229185195834904927362255213104814160011083073388598846674552873800069057023153253727271275227149401174239893730617712122163358748589855917485859344099531489775764676285720750377126251595981129087067812949388784575949743470063653269851633276984096936117909740537199620572273328788679119083353901177630112584130989484229813133006851832275900511070577515247086542325902607970489833729531625527518543185989410984248778344156719378371763559253773641051532816148511915179479959690238447995272671354830946127933154097899640885273873452553278517004721871188858170292512495961123401510789463810596769749455885785752252973283665649908993530076732087243160795735548045831273439565400684441897873588762626932067901317260494845919808515916201045713539360534836996487315493827650747220808131698377361624118022993202111204937480856657936498005673203323117764630023936586402036432754410180005980318216475827686849867311911840177291181898730764151521708997099208232480843298741182292621644903390446752406316595860992743220881165839683103139199144287732553215433445694561086754188816662951754191083889416184816804028699187005318211071840710521169281895945111980320317004396050320269609200387941600644212901054761028227165695224047573429788741750483839060007380513832606646763229261273282276105351245742763002825089327029917814357893340161359007769477724506438654660332057014043721491767109349401266606974725436078291445047070692082834957818283295128396823387636753655798938804933227411568871482752098745204649313240699681636793289877019770230684229385625770861307186140813812293928678618329441902201566031788125015608952563157729243898218524959167471586703117568257652038076363482060732255344695749125125943270038955068519559163756517299533419542698852072047277224755552852486782469699604861701678465455289879288014200955321586323785981572498872654147235980822507499646519452291052805278505240450154266294125875338261821658711961112484371446863459392764390834329899319630896309707818588034112062914481609420471869833719585032493352640139689502057120026392317103427177925630567751951362395185369462430553233393820569068605926164377267962871491723887425096237076361227163441085675446003772373972156445952153946874543319776487601393124495286012661845584499578111461456755460184394365337188455903950568912963791812826407491652252568250937544901017564165045827322137816855421142428022503697614642638514799289767672937817213319691524505379700131702724645308600736218779817954515637782616293533742822214192504496764700222090519737698123655788888344817806042629338423746200636872952794781547371420411805433843485873593271058672816665384686136541417299112256908386701458887271831628180374386643405209552183278915676323179672835138662080175350188434955425174845614760782859858676581530179822222509122201012581030709568005940190579066353418862944686306728724057554545337929087422854706649709764466755027149644368767350592458155348162709987259552612616132751398256659649391367627436290771559326091398938508365938578885286538624047054508517608316271340522518527886083194943716533182599248052115062318220547746758199085206507393949088664787081691766599995486805072716829551709241809752602344367863626305859478237197201574408740509804153122465417632384685694045255308016099192114214274511606176537190415849143640249335262434519173808836312370217549934410243255995067689635924358609367395649833091872013376187472725761557708864211078507418418748936763180768413618755552583399890135812913206528523227449870531515177776002590861950690661060422508627230062869565056353264458288979939286469697394155015014250031137280110238829092633649748299098944427660953134475283694810153851072290120267240119183671167782505323999110355049734846789006012766391368308706006418865597207668082393441422387005902646487639241386983770650169531173695724384526954161859685092012308485684557328085824069009447012118520000212367213172523516862012694715435529957159182108827311933012543727429797832917353384412035458597067544731282496989911294128801987642054735046397544265708664466468914894566178554292379649175305173417526912770658259168999572854678556655232235631142151599114471164780752633870150848527769013241106933921477176641312059879328526906912358746002374558685930772922844262868447378824679678978384125030429073132017989825649310872634375897009099066981562333817514965897799863573087482834648572880475750617726740832374059039033751446748397656731452651135238733768825293195025582688513242887634745406985963708600606974015256927828104144912388818788178820627242993229371132506102732709106179479172830951318029133546934105883778341559087172431475623940268383163608501599043959018655845461406841764638325589315960052813232376514770461472666989655164317884030433646232787664305685807425797774480834507591738279964036550894411512924809372836993775039144341257505153680241233912771007374257253177775911535080753668128389314321026370157967748762612994757350944487326765060955970140786996534319412145532815588397869485123385797711830993511589618272721352098218149099194418665935988902043963867306792314119616205284818621870231971197151493139577142507086198419508706175506224186651073050396576579846710224492124483255490281808036993019409716477447550227333846984400533931659800974953763704721014862319831726382269357424123571045778768913478933013599748591072372461613663384882547820117169575715770664725055862405529799208713717591994757341511455147491595623629864902749337387129411227557869744320105569382467034083684878851488261185890871117403253742051400537873694264955155049698223492463018029852099985426139017861631539915005376835959008361952729201881751566725052294873009842305264827506516104077555806759051386998370041155606129928428266311992760747781261515240118865883813692604726191975533055803712588208491434672580452410018154458618456763303268925931860263599141320256318984473352329447898013297833709904384684987016974649539547542302244775520936304839586229300825662866695225513905554328880730587145239774647125373734161998691248626404053773709159028027423984936324005698651397649280434827180230815245790761458855796552225697145518734667252477008163949266216135965744627615900534676206448897451398747202549860222921537950404906852097604023518863645289676862164554935817280501084787645772609829419855279373196434628221791416343062852488732201487811370533497735028159290048962437314761631307580767517615632998505081130842887788932140374062210324168345692125834134776955235075221397552734519216441011703461826501679553242971190303523498145945382498774064741829415777323868744696700694063699359258058592504178291056405657260924108706886428528682736489629374671679720149327387749613465135535339931143868302922329753147799708455256758811610266595562276217896861893346479250810819455759806561136091564202620499841432614220264337465817833870267583151108416574515175286272633664806582402247990498085141405627623814825664002908788383953574047924556876699724302762070894182655421937812165860360538128968361383999084066038385168542826577308860371892743562581206127117691152041977773811229380265292292833934959450937028903543233564552384369879017491132644520431008822632833916962063339525463816569018443717108742991718855696715566570801420718894970093689740137142328793314448045833403917904235881455633704230374335911292738722876914628365353166880748703541728866767966410159633143972658833114490198356350041544967435615465943939864293041062312201093140309904016988561564241134726269102221354604950902268646629565670251828886854377975339446170308801508049876480361363151728540439489906484543620886693318251532036386053981178569873952744480800733738225032289183666579649238926913188048159078638512259538987324617449876722511611396335836008462922381732908784504817990847634809277431934378347938260251183671626818769860211197375625787497814349000493197703356991076422406764988082356394239135298679221927276407094492860253452544229443401218831183668325772717610122937513342938411587202101444440810144689514822386510170589827752733633222032316688933780763926494588745342640947647439163451046650295576007301618202192933294307425275339471787350167117859969172867956813346629397220204089520743051971137298271346060475977877150612025689149927391023020906554503185069304192560330497631578479344532816413475955862635623581087444821432494559921443843738356521630829479272773267889703536692507728530209864415684056019649101402882638930445407735846257839623755310761081422809923653865247255603137767556846865620241277622038376833529319420326059113118438538722916700803052688968979158000039460261237701317092397649775426863723689734014820658372915293820957067404045055808195950791320947454784237796530625073537965487166555791231604198216864421653011300330325397017680062206116246830220352882106839119682190770604736551707920639633909229471790853427458933759751004235840536863362027978016758506460341705242003816131785989452861223746215567546995451767666114460801155617194043550010004906921623137013617202234195355835329138725130709479935018164561096979632345293305492619199395074848428078354383785280207997693097186439709794035075144889704644021647837778621963357975195177485086968301299351416330820608540255134749978936052188179657356944715857974491365640950783858627748944439203111264156920360975148715893933929786803672958090850495397321660799054799857764100536095608682785103161999497063113179802277091932724145155837676940086416494608956467477928757940570900205886958698137482215293368292153127143406654424718145625178556650701880719691531158205273203297241121927566118230521117657748809781916764526577434973868274982856920954338470405691295008824314882704581125868430233173207897984816783598686871492918950559342940923532784108689979962114835411391406603560940573245082656232235911007527832231137318816254241868085598648533494098842504338001326813877659592704305715353927545848748152663484098284139544207982966817802169902203526800655935637043974550524428281044722262611789734436728982204009604196210253598880193701574385525641400650577810960855508013529103921180720125373614099299364349948518018324342410276442190569497851088387018205583687738858984309969813791856459128389826460472638091279163831842525124345831192773072375459220470252788689298683928089868650122173843526970888369150716809503071389799200756476289676432932462039505507703525490874175159935312512334333290079011921774118182935929001049947635403071381944513162245796740813287807784142124623302669647596984464827958587205518948902599800848383825939541120421325896652402866952889172157789623508751065591374877098064245269178479715339458632822655732007952167580466908802145923706596909038484470140486687246975615352280656913772539756399102119142582582333146891093456750562907021366754055628880033218441358967954157001717599487850841029843839463593063609663292030438068407401859328124239378134700980512550301135749107002090670002011915841379329252259000626495320842927502134398631906156219776287369336099325792685137043639428002053041928351636573250267161554565025825453432817794608109832538917158404735902917363230701963246280841896558949798256963681513291100252799454386140033111254521906087609457423381711444339834874419127874464589452863708428972379108114640289765834046703427776943661007591934948385684914992545540702578931849404846227765954068737336658737738441445818268321314636404074047169483988425966784730713103936428536767143542868054036652931640117688002446714719162664758246998369321680604192798139060033414361913163570352648479717273900493764643042315212346269594408019552834753216576226243967424786045049012135446799211450775349376523773465933078566378516067441751504408347742988811762655538795616914694718250725071425193556902544811723412021386754127838050715939075021194120801859705627357217484420371132746374540633312746809939755807493839179213728289924969372297368646157067025558666615779411242471510551023783966613504400418062028658003840458370808808053637563844059641994144252793795219072649654792633892582620769308272146846266033436794899968716286519402952654237480371234068323321284062888860276181994678333963110591418486249580199213880632256656339414420671979585427566318593011467291741170791523355235016739926591696140639130640301665003973316507464305235990488356600493111007852165869076229701636217272838280787180699863493039596778506862623577534595968896995010512635715839471002459557016612140267149751641726157403829464816878876483157582577475664342022542459089032069794082130913369116164377872393351228092778727838856186383828550846924194750961732524961541097668704312948939664449860201226355166859029338825219304098324844318430007109896690591993324743755737188519611179129012365913144604225183444126997423065457363332526379307486586085328021856775128334865825004982664545787308477531756317815017031230358715454095508040741162739019319139694386995181358451193233765509842280062831282853292679009813118435243701409813690737241072119632791524225136212411734374903737293115687894342720529152480598421261198279904800695312723471645451706442636929019315449588592436154810610127472322977212198258117620438835856623714746180291812204873088771216184251674103846172367498915176375893906699198719794815947697182668032989781510952921554960523994406982095524988628206605991286149044309467180581928817571410335520569183180742633706665469128322139967298454992820798544066348939163595598031832643452254142752505469441630383803254113958400557120149511530857874794716603218311703293617046509901770982064849858402008398968025160534938447227072095504942866393412838946367738365332616949107637200321371965497162402969001949178678630136575304607299959425022019080100223037096093816851260344253456760433747702887832793777959156640614724480363190961858970415090650459015269304330694825457468659682166589075635201543367282092665982275786912793075067746379647341067646488813600244623654909846562211469014924661083636145034153968173002396375587725644393261284049795761738287601437134788129077722217968338922230685300547662354440104819074065970335840708450597216944107456746921028037739022154134049976671745808985621920547779946252756939272591877615923277307027743242387686691225268090435326248217643877781025674910269309392894214771656008511034843267627185547831991894182336541078236903184407178074961768160309785743374684492249605206960885082522744955263527801148010369899952096172259050136781477898421015463694590079824504573463830148602793215676852385592250905800328992357258829140262106234822942847443149379154282074335938652099392103014691711175133832616785691361955749286490535028831154547432721966157378005891877834386067390799654924376806930748224843333775909489946778043088819862513691356393231147594831420012791624563994378280011554690434926945502052684134784034060281607983729654964063719020911997267925891580372214359592291720927726364668142935503442269437137034337130501269667358547281172302702475381870241369307758550379470003050043232646204884356422703118061197286432419879261658566015597909144910698672036510370186755669834168480751444569817001949038677367485360924254301739959257278093828090817347291090214529104159749507958732109321951255950100256430300486426296503700549971531187961747579883269389140829503738177121268645305166044484155082168176613895994056644042931275127983460135181169634224991030669011533267998643006112574522804673012826341503691795540380683935914443962062308826395341183005264117040430326502892419724805627069334899630162848404461454454254373122477187808849074752531404369486059554506322610279116774086699254773215530046972290434141106427136414776477387286737494062988451486083095261614895755656553783769926877514992736331602639483806060965870338108892904489840927322615283437149355821380855387452375833868490493782479931383593200274229319664279793861605339473163857819824064264775895533646477017078818606246557253438049666408060013190041286686156259760723927500192456700273176114630578542076375128316722663691413074122214786310446889754064874261441705607825631706152469020527080703580499523353539564003183699883958281067581701726244283337700458278973837878174355760640236392116293370691544314357129304329022111389513006862747174295495932649459332498221034247203930120872975944809955668911567309184900592211823055356601421525902012017437389265287905824037751987461742869436017073436876667130164191760027371193820405448303681535749447335664874209286958285964377549392155915437376224016087817605842830355119976561559014522519828383162360954968153061373697174972192824371653783391669300225447486571936177205969510776869555294313094962140625441201057408030160269800518804508419674759474851657745976003521859400525303712931476088803526535989231780937163580587663507889416456594801448688908606690898878226450450805389631095076756174005199491904041945848715269815542061837465986654085405920378069792112591372977225739184344204760689204841269830096070959663127012255004352818496598758160917722332766242144042761793037413257961830386517493275206020928938362788753283911650312102494910172657812346403455875623333036561944735896879336022955436512331661321216827457405100542022317898841622671930617489506722302931969360142865327734210191985562827890156793792005062465934200507882339694490419848597720463477549991200625077983182199699477337254275123057943340859475274789712553093941475146160654212772915171199804169810019372740027328049049306042804590346231308881831566260269477097386033761131514607862579883331792898445837726680820546066750318913403329984871364539391274539046405429016318092737776236459040125903171832341590158798723552979852322632665436857129908312540988180274356403422884980403058488999372435668393272495863281676065183721628439394616729656312720788475047007212790568468796512757909397133771146076706438286858557805299704293779303242629203514420137632812695745986728555387981102905347942348991504387850693286301989778914784225990485379495936684944711315783824456610151251258789160257244632092062291244589898940569520531282320067682154861543254334552367545659046476444976632749335457520532345815858866063753377429990318214874993677706516394000817886853711990183981340181578142294884853614006236803279841335457013595468626499830503142654399071937128344243580153061239980462739404568778754833082013388574187309794842673571726505907705860087342931489147520070582827950303634029196938870460695211359890546390215727651728986415329541350521153667129043436112042873518061778494007442794835264726505175649924565816328824240628013615768750063967503412945455237888452786413893064070809553325218353442969403756346125850387855599281414391909041052398614023790765187561443683103139629325028119449509103246779011814162341542422408839116815488855378429212841841353181263739773432449509088093558793178337449266723664708978395934351807197702061994718529906060984930074983933202585793873332463630033324614252087436893975915670925942794218494335318233255470420819445584206231494926498241516059459454443518669575900574258794773117779815413012243548908100903571895278801552425270870640359870699170682795845631994925024199513069781023367742269355179241662534055673279982270985954770796128628151458872958224522134360472023523570709597132574597045055242134987790189536015871820221634289775874922113483085904577119670293917577785175283726175746961214713359238901630796990048860888361932196249637710085016267679634795815299137045030120720355906565569390384913229232232582321330483052311817153826792801372614988016865835392503460740982195169167667007329212124486711823166737406560009708235234633011756262036640726262923504707862333088057350423573178397008245818041346553130180238620120435493026636064943743048282516269761790454311056273826035262024919498348758017235955845170466408240158320716057475287676560330318237707422898682255627640055295177743070919526907676477785044930063209274273905176057357408858916980287229118691271741253353131439517674637166742316476526184206265252982416273064228631277065423410505295525520012292435121187002934938517249377307127783469614094913896843876894423555043199938739548747463215840083623211277813654472932286092121332862205296148523203772108992106426897214363183346573932605758010193116692947355305129752916539791716707036618338386587484376137576526018254580464369387086490591471081468875503452773813459115105625017468162986069326114894729644578415924968547259210134825170300227300843609585219762900908437732967762527497264788187307725461436680637250894479334004516393618370169755880514925932750142970634293145789427136170768053058403042489770584809536425831964183983995710536549856639452904072552018370406468806688441526639403173868955603161302727355491911401140471322919298627572877932982533470610005876484200840265314604633569113623923697046714029678728224408549387861090886251936050395485619308030365568128006325438641904282314268165315332428340096299956457452108073304004452413721764493948564024858061654578739727929060948233762555657578228159445559504770114768662475266437131626336045954302152003250804386698959363374976861356521490251429819343680946238104486766145832761376595271892244804610953280554694631733492781857670193895750711330070806188839607206443658428814572787044671089972002699814289090685482789860387952196828626748810196699635693519947930273251104102222732191091547612188496837423071198209961975538649776944556724060099179990021172719005671661099727707420705481183127556381478204591082440388858550331625576248450741512785543993618797484044604635190154224932060229162491144528090288328283323741176032501629368167446191051766064322968116610135929093730824231403395004584962782654879881635031435214683254336971661382421683143351665383574180146897434172263636132176800797267416613530770991929675581331379251735275790681797702400437226651699701355842320956786861885128617030862148708289084529429341965964160585505731563013178916413373242720303871420872463735149388766188474718728635339653510068022860146262135327446476566036419580687399035128256627530796193402139411836101735757125665760145888089595138678855454433112460237466968321600845066844058663220044597932195772923732447563682192444126070514453197209590889558270098662067905436207534186335697383079288429077598709031955243236819416664313178090481741469781942631035840633913566315654073620804025175423971582651653558518156854561282060959088718413500408220250990811292551802512119148360119736135044047393228535959930822197292983558674038233170839945326057708113331449331248499264172264660342950274887315778708479234488378907383840466421758063519135375413325573060680100867406096749727617644143269479787121845535498707485281049515171245336544796090080262007997942689852267169784658662505352919850320313118097583394097711683627808570401118072947801036326378404933671674719514554127329311671720861728442399165985674748793413808823943620567647255719631868533348890693219999079703571160163510556330799648603457710521415225848613874063228756013601151214040742978173240753757831969438272003876333035150695827157349999052026278719543383587709116116245367195719689982192665124021660517647433368073801421608238880310065423070005260937644560001292251703709388840933798518040712070983855076857087242050292033959502969076981813770723779513697828879861896188961874266992571083895062811150018187010002566395365999959233764992016673143095289788532289107865778829908186517581058347347757557022631434404282450240577562110270435808280670577058043568232653836979189339606295982249375327996033210875955671294789588298216023954138565971745543783190012789946045195312289519357506169967440979992177956896421826348062635051571886486808912126313765336084725286002780209478625137790389871062903922021965891646536606616106765780519945022975676979264296923549272741901778264574959428200474782750918722923089844476561005194864350942354850546322141494017832433858528134301616004526169268857706539933861236345401593385984714213914011891671411139796789264604725451284485602372602113324297757771325006644615808978392843396921167368733629388907311978429213050256573985232354492155676912855278586730541191783785613808068605210501839185048342173765575755262641233105944181001900427680587849900843262959307876359440491492712820818351537817527960865397804273938483290317336304985584921341382380863242806428515229850423832209960449744419634434781532690825454955026647199073457547416983848305962290004199863769775448276455339415858724572657061013636930753120790649549783734265593043036207759059918007331190476329642590197334457171135000623487056064878351218223232798747903767330802362883596713184321389975337482592748028912532587069524792612614914945084070086600947489353111002903832781010905914739582546116149109348535477815316947110333801293331807675286441129816922655785710611263284594294009102527877440358178909398214416639977321443558779460212970893360895707733700695012529216956979118987317207635981863612090862316936233733920915964834723522758851009018059310213615897332751437806951601947180281154069585240925020963586970326207355019232419675932335949170497741073425258131635006670441274293193915675785318030265451975265259964094197892167129965468148269951968332724288172888035708362639424975832575844316967303280181980899991619675068307031292859117709052499922235766756336931293926950793777169494616318724531427195934382149449579822254606067009046077924678848338887636769975608576246028438778729641152970111709557413185633182204156385016120049616779251102010796047588876272975849385427108522895702789259424240623444796126674062824011023397737264410890592867022473079972447518274181085328805831021159836812973866107195104970087209042084301050573062652012792173244307604304919403090031694098750121852501388396428240324555347613808581769257492472154204013128385378081033055694922752504439916370433017864614500761573597806692715818067059135568839627433474265996086720461144994802103828738304446532216621179115535167277048087993720072756017255543255897306051536140328258446800828658330410996946422069042950917759934649895269907731760136734764257983336112658051121231576814946962899217812360530214650075140416504690710029854597872376475285320537554513184742151527900522190850418121403296741525932012018659616458945951664121880561554270707162075626161835266427546852282521864181382932574195637230106806754424451861851853319262700228566242486787551089353599603950244627478962767055637131162357238038758594467817597733344330565484905394632656807021735656370259229348042403536678916898624582142527390626778612182066442426368124668809156530942462654956026428503840549211767181116957606795595922962787352306109675739945654646265927511999412469526598242771997668146142405679315064499129468540588044436108560331626393325084620335343701421539175223382856620384759912032966924433432844916329915315742154493668904328489107920505471319432963023174567695765796994199469864046333569437970490117204949774909270542019894162849005265371000122301737738627549401644721429188748938131417230078105518977706024449596358632745920350611485252198350388586195263144170105616554642439069610509291167937754317323034790538855108621858144876633557023857181051341719116630152443515723536482173714158316131523680926078686186646255241220083121305475820139296748037826769472592143810288406186799804252724637152275941988348245887838276229749865422791173549445721606734523492954582662679480015030886069256033298929892722175959803906070770933592934007769283677470623532396604053357907273180925405999216415175285458883429323613387607926568251543361766780914026801423303910434771533669218953437507496430093059480027069874556879428216491707406903785900598904848752127705371462525047940035458062911167886038328807460412338920638505137572391374743640918184765289674296194398283367947988680449337976612255610574892833706359495803154314268083235591425268043587511336304313818294769278545494675054357896073540519085576314217154902270979562231992683917604060301542802733979725935954958528609811254824051614648756132273563747635696038064392516196739789338657499582742113164926627178501116633680236662734098798887203330431270794768621824696296349588072688075890801756175517129888755145933845261842671182252762624283581439177764195503205763298048324738996257928327152216960945886240804985838702642690932587478048567547055781048032653720618642785379828275645380283379137761777683411768354386302500036963379347506307953013113890332144948171557306975131457901064716485604623550104659218668750249355936663038984063637893761589928325713996280154762602358277970294375840363417446168027531195561787914619232899599108430745768895303468162906411768658759143223199887209048204486380138390706213223014940254199281222041530063407536888849192805707016848356077498111796877190796564764111854300557484001399564631337792299943953143390094449209133852837604200381202802271220623137102783226249899071962240830917105797210290789176164870330098842183405508629936972437606825454038865598286975174661390487011744717623486280246808175530731346123794500668815435087415976009792196272826358350144303638732294709327237022297317369944477421685889820016246742672105183295797008003464266299092213315108702432649433681833590795428894501834340312703796598558430287069378644001774063386368290160448582607475070164813725917844627217955751744228496242070986312885559886406586175251999033327138326182233301800924138392327102960330663933605102602804515415730319502341104953481455979075722506253413516212623367304189797230627970005683472924387847902813468081465352899163471191626795452499778679354928370605728687189186248976514576434452657776166327378837328873061285835906930992471498154387369270086715128377477194958643391507554038562027154843082615447488383711635645652907014492706285753262217604663236397964555736717762929868837960913635715343931556570377315510033686795226162511100237938446272485876382530855265049847578644236083165489813926928566517361446612928910578738471971065061072243315193443061560479965282837434351171795795241650322375342221844767744099871653497083197643159849579136061703090715969971433088213680178988291956106298519595592435219991636620617755362215414334868378491742566082174239274109506007679549048257044138641560462564545673471775288571605574348308271346604481605565282119785759219925911959049769773423264628074481762204398074943147275821238636746711849328789441119329894935907119036585602746917237077610117103369093179242856648146535647099194325726616019001551851418743197852315292451370059715947263753555726176237101058356275367535455912189878921313831913279831508083261832850732678127708779534227929719333335723674118780286789542994812428942968033669411161867437211886009313188011364084124301660944234016199659887905003656039421318190967298098529557052457456646105706673186028808140249419534208955129950392529723989756625131796824163943352304498690000204434539730381018288524394582909574223054179581356650930053335290875871208597365891028720045556973496092447259728699584547176574570684632717648995643616058390888869803796994895570407859274487122595353583246228352487112297818713967354529235528630361349894983645513830523868390407856454316456626015221183271710713623576739528824359031937499198280413394532174640818098868140714194233419652503209254384800814393195096173071247973556571798907326918224263624508542501351789938337989135642703680036486884937553995313703495195202021409540486301382268511085199359389066139384597868229512293144604907409743272087508229457037839770401795787740050985682241280162340167902695709316579699387176840753800912059773538012890840700224827400570967110053485179788682272009948131569622779901014634198252187574111139668685443624890798971147650371617221774366465381137345134906855580921096818245221336480570346137025101451945632360322841916716044737789205387418804743461204935182659407660707207529184218800729793429614676225003681013091923923225973471896816640200447127571999537311838370748783491646220347496474531861656524061508988859081741468566330859436768336495562916958270670195261952167099429168811202787121803456902829537556337388260554569146838812666292425750466158081302206202847632409163887820441277933733354390862339465541945585714182604830138619994694966706571240901501645843076159778404326289609779607622873644662368500672267759215430128458980039084478148883253398671170666222128932773098855690526698222221883545660966637567637789186642607065720978053614412060839612635286187278515006812609763841338185724438913040467807151799365284064924503919034274750547507375691728454714218427555062998012406772462621554290945086677758447819347204353359145582884705973008560276899260295655468892674660756133252017101075992579644694718483672874683775889233961774898435408551252715127731084954506943504565001410092567416370215162823525905430883557385160051849557662052229659726835505838332072333331005776273820665222053073313192460187203363121076628566452508574483898053060447236970476376617393894122363202371084519585761887793053109332518329107269791256850880141164047453906059865220740166851056266177804417030412687519986811127141837368314263874211885390768774750349375244683472082428998157068082305263837109429198957197819237506365379189525978682169147335135783482851154829302646320041193232743689256980062422238286306918662461284760752757710403952571737868591250155210933300609655291977637191574689878210599969499307731216046184041004974435487649545713057798300020520137559648691777052405671543436926406859487695867914217571436087779838036469994308428973311599317297555826456314676369808313192757023686986694074565252493741665080362041199108838016399475662172341330840473210586772830695361345032935806119127206246774269026776696915914337011189994891342582916017317151891601792065314102558449100698872385012201101433662385270656586423701175208280414274896666808042020487676538650254846171659816863379423343040499983826556469216657380023189878115403110821823320122313193723985457327239407018857239851292019651931102667413299038381638583330176123796175499230527598069082470446135708254904305153379299432733191761073998907575103796929689407354554403191452581332778920140097304505641545362949005213688135275523738720413869023261063778756585365017568611795343412667885749498576663523328613164090745733598691482061340575684878052603096805272178125004683308510137366025517387050406263504180377790721335431782632115381813393732876997423614329328764882734918062480897000913230009241158869271495289588672265942702115643643480767820463372599067966758722560513903217054945763724999855164830881329485277749795195808736016226229484798812820438772842472496137468268183336750099384412403749712642457092598579898427484756979295028976838405424992018748367020750844558671533657680357639740797642001441475157443357075419005148033240586869541948527785303489347860962115427945603543716281175784640213358273517756699906287630573358791084259879671441083293956909700817965877848044230169906795754236623565725133121854842245590438364421503496959793650018786488856786016731461518720871138443514246060499074519799143816893257416314899240109514415746674231027057334879508480583482241207785880406938539692257812935679141998117784891256041594421009655487647941501009723638005228584472754298883763923852513525081465962956143453520669687788450234559559919085249048833965799549233721489417429095661344848215818868217717810055013105352354995381009636986924581094661006855328519740373551381574326942860341851962535170495070294990970842537447557416842551317164218310883102702805825138895051837123880928948923525500513382911092004671691759113877534510116796966311741979540718495103838647531590259322617983849052385401547638121101395930024686347883073471183765922379783987339691137986546321870004250698242301825468313968435086924395497741848407470409521419816576786384302735178567855804298039226374198196058468679483457468240093060775076196083083212343350408966486688422050185570716505280452645532683498059414345068478328799131922127894413876187162641611264375134724873397217284724117541727203368151528588844470585231921810255576939343259574040625017620494420061625257022157305130399810667527603949502784466460706152768571803166415654398915492390928855297128019405955965479072925171901276086379195356737240319685604223814965368515746204551094624811489933761896329131093344837153770610276627480841930454393121569845655961552647608729054963840566849933886951420716976297631428447832604827659361552222610161228122292029692564167785780311977723888796863406487119710444482096487806069303054905212400554852959512065857259979041382865573310460957966244904312351047388781862311792497627644428969855851840077828373765503267437894906448516084446119844891106179284798998523152982791244199028869166593545901110991124382375170716480770015444866501621234963942182771946911051477853953014758120615120118680435357995616457701721215929164641246826444449394144776858232324706031918439255877221644398908238192197260744014753671788001787021602317074764336923995128135850746527833217141440931890000051839949467552422301949322074492428640442575691886242411315987681558644637518834270133125180540819466442804694483441318108502118763522772278534610641052473791888075258970028640743187894272191766680713723742356624562129724520617028641697688929028950616754946791672685015553678793472959397337634989283273817545319785213514783337894639694218363991070280570472654589813326892264652162282883229447886034421134923648655716123062436901879546851508485171340894228768022395869300805101076583992678057112593899518557286846818843610288770573818930521650707347891642668703410818653766816989796743229536814513260884154036282199713948899831225370881133274051560331706803324250413596129003567219530241719597502157863894533837541620603826583096362410517694669424620823370627575798676023159271233691333708449722026930102555574699689608085485343765458021203999972478277990574883873581094354807266013897399506842776343996232864060393834219562176994425940480498406461574572156563319831952851523533009871077556181552820941057315964930248412682087840945675757186393924906564598247125211902715772511930931723586971272600405809743885400088601368389502299603950465366873018379058840313968018945525918354708749902783304290468085508892828644784996254533139297024361845644662790862909781443817058175695981392922169786744949136062820800138837966715672636561384051602196876694042839695308211245034117136931554896311328549259917065949302761401325771859641788347357460428116667146629806705630834413764734505209638547612539238499856535395407956114793306245204103563584703243765797063746043742578873557319768800661376479496806035716965622703780688951052572261990375115797713306058237151284871012220164534748031971810378696269556292646943341616530381179932328172211840237728260169642938965581793747889046009015561334652159873566912826882430702127331813994163148196459578023141563034088493218354825457062220134179815526651579078456585543126564813868214919476927255887434112391409902016214962322463452617805120032180606145731037234669563851792627424482719058665036021939903922909069498257734621166633322853935260897464546500501729426510553934039466465260553157939176030924118130722572794419552811423133642077026426487288130228777094517539173277355995666167863355021074609169492556631436949770556646850474030830363920964817526287791724636444031589930539494344445255303951257967646110600981523092293980153366304521426482098006134337395991852404854648557791031027185764593867290261487170711412072664302596889213704814592879032449817840731561126818259413093003774118984739093618819337860009936210290136370261316506274831803032747127908817156527737957875939509344555662626689021350156158184192042631999525096490075148116603614614423194859623195899368438050391727662059239137858063744497283933763005645105929235597703858717444985224562699470435425935298704597731835557831044556807620042679484441924631242019470322710412688363433137185623349982914864649584744317575494744768658040065476186713223538146740030851645515243325575166159690612163429794764805035513908513563633870115501693023019234392918441122840795740148279421220561848344289385097577610805160654320486105080428942291411637185673717887576907178912859359425464135410771091661384043071178038252913611618851982766059826749459746370834073962356014097015127249372210525470074992909153507802485724638393528209423197722864326521753410477653173900118408188126257069896196081050229008698504751587425098391403255067156522966885147463476103979753980503440501028125058948173719134888600619618530500880689880718191815150782394170721317062464563258923139239312364816222045383625953032861902221429747830361914739110888672629310272215303289549047382292236404730721135007330787202542768167950350921643609110074957926659671827496077726216912481913402607400669612965204963771427153936182186981096503945787458657356046319025342587114487939219065761560997885195444655893768344148304854029755006435515565866177168786727789914343215767778509023190081414025905359724942168576106379661512637204317125774149481388373337297064773341973131454177679642313400678681105461774700580254403064266451259418289105673783336471314450933744100242734526540153234813136446638140164007803745161958859372754388278241926450460650913886759406084604290624579667976581302616453102195421338212901539910558190821403234312944277806026963546793659115654312964998816095308725995952808345435451809092011346213342542975969060883477318476185339128776430618063068011522050145393163682221900249742908115170822232923243455774769482578389240602587847491657677248485748656868667789684963852221565918782377734055321362233444200768868445760806508582937728006263224783750905648550219737493745972638400994399990261212910549031614414621256490082761710048403986656253467585982352898723099006115922182814895285792477442245638756212746638988940667412377676240027351210554036701896901658557236504994619697479169503713359451836911247431922076044842483427116632079169829195012617956497786435691234592162541952790071116072285661180849698450145651521827286431345175878063947971320174628276172649425953034098269238642795394620947928428847081151284022018077345029768403901916800549879485360324501408113708182181306339825273008713661192194257935211995569215504984509923214905015826506933226362360953567643309799280444853239843617813368540132520388833967779950623805628639042267860894589028335840555249026539316211682784953088818931526344576291228063607750506771798812821605893278002886043516444657800533424591138697912596556454369121502300880368070746603769703825702635846215975742369535317170118161985501801438465393239650804991238681903332167047927856345706669857436771166507915518213092742120764266376164566839875161591797658808708216270197491270729090101268372621640644741115018569842345820139672536615926754645560676119689416707581243126558975715967800393111777945357152574583800264281456987287173202125752335328717538739084058019820460090736550729614616690318657843495549496996622559604399680183443423746955402539591623030700343294621781101145760635094158102383365250023768812472848592073122638003864846838201231550244651600658673646034478636422646404888403160247035896642118631835027070817906823133541518594384431767357775075182116660547484161677245518583848022609577060644623762238218779846206625390187045488493352827732176388047435081060769308625684203571978104114140189293063208885156138665817932095630017874038407549840564130611588866925777755501052509696656753721257612987446787706326679649244842429997521261843936480862868142624356888619518212329850780352207913036310975319003538469514244440274854417826714578906073930601194479977703613605965456291768451054905948507142078485285576301850328947886593810117608365755620519908696012494174123782684589378374594664623145438148312056798483049779688929675148979318368440776401072503460995863009660457191741060526494707927979624380337458562132072092767920622470808030214471860704825116450826678879555681067400094316093179384153120351289941563644756101715853327732998117954694561924742097703397677582238739180402797319805241747999186729846134864922203817255704517419918727828818733333698356052838636650609514476847680719658048791144630634792260678574255863890907792506656286170820332699496390258147013185089714009294546034349321263661379994429497943762638866302458597371695697392561616466691577861369996014985230898178842216295052534758117068630836111301856980112065311335266668399623975619239011501203561566702632470693008323836304475420993766905679079722182708106190645548987630186690577052736794298189395055795824922552081263681966239059813423313074371310919019065160618363009387668268649972907872384927372406315142313711786177754370804132445812213150639449424035539911619680968651667068399745819149771153337365820630785039616596373632967196522280941160663641544418769420524593824186467299204983469774805856107412405666199497448168308169299925346100180367653019417620544447833858931933448449569505147900721917708256541060277273016883911648492814951992016109806387222743420175030324556453631418129977674996818507496501162901395915332751923592334081524773204480940403810444425888816939966772138999065673640734385758665094070399064870316457329195582695116388970716915442132679922352680693449632619481056860451386833656573778119347752248058305752335634303602121921765188698575563844223630205095982362446276136267747377019726343066383129184140720826028030902319045501563789062218096773505656687120495689393405828561653354171547321050457374732279628863702889030221553732965929689611775889811107041781313011511611372513358594772838345922889997767933848451279329199257176525026012494283875907949947484781101562887704327821472061163832900976032629728737196040419975401362036100221706404930718630065723001384861806934541014555188326619270891093836580565339837544542446344952140895163466050926025809147957125480543822423352099120095586997830227045606369243565684255007298896408461827262487867967818682374422956562168726074903835894560549606488596565147199138913860932296199315259862495707400140948890795483871799359271546282852441680866539364609523685000384058035354324279670484974056354421795196826130148746826111183232996175916449804431997846677634365034021974995573358944429592272826050874904324342448306942536582179752301836384774133523559211245762101327893717864514225819539252587347437594879038965342051307410155230780880640584722125230307697846000579562346910044087509009482781917500785207412452506940553794944045960584841169366874166343777654451369680165465312246816323802018388513422243254339268913932549079031947780691792138590758919420625352839889302442987895398321132724770481274239461666711604622336848100304136878968706123997209021507873564917364945666969641537724407151271408825250248897082225387899238184013321890564195222967150666169795665618224632130626058170365752576041853030625534935181209978767396682229044339091634203230517680990224995874516102894858837258371170458126358683589489208038436475819601983332894005453130829893045033107739339584589626817512036836577953337369056726941576755676552726650169725917647225085226320381127938388756879147915585075034040476175470347059874061235785930592942983238253720227707603083388112248099912388579909480416035131733140935123494498446133619931534245912872185027566922687656847853434035154772713312292342474126748855195210181375744183506156874207041089332184733763874084094862606865155526150946526760001004472130501276742140419653403721925734928885897625147310670234922004503003991036165189047917729880157570570466402844852031094562678640846116673472995142640558046544637076004638818685087212715312247303929510921584720881098832556217487476722685920726392998550450839926718681974511123289581991466533968035238524385791095246348225070946298726963126859302499367907081181628142691736857493074032342018107905597724991814007516507570570282800772966240990465333871417674938940053192033556212399234012989729774664048300720953000753971518701174149726326013394646680064235668412367248605752840627534045518464592769376266502504271297271230588344345895805895548426238591373209768683535821341693868825189951383658391009025165437944106746260477888967662679705380042625488226984099922795848160957824807163790455378079152511408192277015713130956458649326945358055486789867841320827774200953006865409794944489183869943539145430301920068278224603373186886782369292463948076725186553615012683101517283720927351408895457028980577556000584267288513994723405609526963467844192544722602931376304963163912055308602867428568876319919599160161651487023012885526062564554125851371065685752034688856812273035987130200606684249182597853581832876862946050692791217619648720576557685609792136516828622805382388208763719566930804963414113700264677208263332366437112495196177208997828282964780017655294400344311569731264470354662594230155229729298690711194919417133646174395020270229771817247116663928845697347413528245930226540464830814511111402679306157391573054198104046954622151333669898500465740331087071494341884274930905783267873511324759197821794303607772266312399554181305207720519693685303706756574070135273824643958151568563961660027065515182489875239834274088267722679190357168042383454966886882652483070826520167609278043325271405962623191261249192843262290328960147040134469608882913686702722869433070328130381154121556906780693262077027379129204352300196083499993167530495958260928995541201167930096693039262703270625946252751580690395985702857977038313574052692596568868973321585431452956748998389303226668309031357745631745476994344021030087076026037605849838798556802463056926825212803556817716801545048133193858174752822302337268587760353940212590533079914952172267934417978663649465995440682129651491967930938764917976869489005359719583225072823723549753855408217222957614833770081813202841679247041148577315196404497926998767219255068141828077656064251058391141381930770391452625373818469360252944632421037333480358347042904232234081830211484894385146954128947878581058468092969920137322538932334948504878451138636997931661235871658520621970588074524072546401973461437347889258899054236345257555644619272067034425958248846712686821115438915380112854146597958321058035558347030725533170598921214764135519014015750329789414788274389197290810824950291551616406085872371807848131479812923049451291081387825200107356893471372162275701506600366624391051573201587800124046155406564245037996923014413878508904922106941721461105896408739500759329834409447327851134191377670168838629599104603368622571962042223137149403066162778115028519965824259805750403913354396353979952870639152101020684293574846149126998634518340597351313435394282866122121819658875495313539169218407633845128985563793893155788496141577622682856430283659334635242821346123060141837480375704418800223532992761923646395256396221000733271582594237319028197299726638450075639624963899271824217553603489425817434996595910471498246296092306925250374921666447285452467267880432953367981954547699182840034941751816030623784904954908693902303476289544351739151153686420394120059132266058832815898086505854492596485503495321742320899879345037935265624673537311961211153274058470846160757497506246897378033392454802959551438278091640877623740877576459038080906266173237394836000058392855377227422937296595809264287548231341387235325091138675704132843949960777355135325929009929240175800858092019367708010651086869563863195096153726690430936127801392943189801506241042705228720888893316358639065105600624735371476701869370373671925452514400966749105303173654979276681563453935432616137480706022392840550095824874704800643552232460388824812309341894391118907359075580880195849726480477767648795621955650670465445383235761811825000286132775345456136296079809715136335455948041350575108246122674867094805768548126465149754139792631547794085591609971287268586197216694515514961372636510773448355726718592552271649921946971548589745872778003440233530404100304813137495193364772907519559451103780195584931159802720083578662792696393361801893680062965420184442749387864660079382283223137808659915300093728161418165017971241525277687433160190115739809527897007614187575416508293984962830972570100410082383934152827389863272157036389639601880931914249213069852393157067874161029840182720228779712271555996980672238258784598121238349973956932107226543296540290953986546954652389052645601226002715917617871102281608343096128186888992122225644080368448671369273080354708325174779070138817634027557866682842261434863001205909913918646744445436269166744739111726551755127877113935489065524429670050888369752772203314925324874169944000235305940596974182120459260336533889191930589026469280692416995870400653916097661945270336127197010327975903271714980462711170694315286141939595812531633727287316419328662081834968863211722268170096511123164119371825662251804784209382054098188675570841446287580711652132797683445288261601099558299003365176207003242214399116648870370811544246714103229685547726692416122572843540504284218119951224239863924719527860554426873785972616074912705275586743970464018903780875641152489973082339405314471042783363704584093465869116336103126521085534939343513509706324341273458484564937944040089322874096086242833099654171881677227096472647852650469991730247311789199711342757470436355876094478219940116237652166469981914163965550303817006498968727576419316974289552193473731522615414777242841308149645218485529564795719668475996327098020306838037353384880489862994148905262114441519782713114701734371279425952889240608446729176346316499628645882728946775325461408067072512064790930323793327487117295428275823957537231100715264521418232373566476541316722378986445577921777509082767599088400801488838905861798673382005402625787300272306964163114762973904697171548143993488814775820945776532621704358727242824314164426750241547387184900846216083030731391864939905736995969033185785216603963784819875300903850894796576232852028385801851801567608233547556038230171147800059065853787393613683141844152132794607367025595040138406275013022871082203181975264091522728265576335920551819496564197350080848285569436819731147188591570912237177406229386684369283514730893582145506245621317198648737495635931008140048104483275695261696811364325929813134833231572834030057620566949910675800354700578996827179371541035384520456361373747827011198174483518005988302370109976143679202244245638350744894461255190584238077448499501617648626910023361659411255856360150257679259882980779258571725710440468865943285746336884257046762886431916797361953143355424893513748334640290830421013294025954615121538332495050818866573581269850884059274775236912353388237380612809873094675908472723290773409064907673486311844256718159639826770077056082343041756944083796437599377398550036673252650090805805741095266233836772289993151090032992698597860369610381589420121173348896188972553432810594272016301910666392513248338703835950990241309443122182038891254985425778417627975018432581310313044608957815203856384169918374552936077695570547952946866927436142644021631811655799034050493107523019852062612355144998576095910245588926741772255355907670371708102175000582670746351031639106926499016762511367846709344940857964585175536816911218898316813194516214235879520797043345526736814674879813054942907819897780467813924032127858916807877694870607109041539111932315286650070766862368342943081472647856840798816579095365745032482354515011640539896827529472240298226065861544520386814038661875306723497465538746759396377440084482575543676478772009312077951333002204686811175073282689404466525927913857558674148685433531113265161388839301230283691833881787244035202309424636119763972962798393799056362457281513874108565311634511402988347008612768241614540969870783970180572913586626019555457346800303276332063930725565327916780597254185543709316719986689150318272163933362530426063013396699690757668532500855729614686154299744196082138469805322633284696538268241804324877706070301385859834194683793615723007951499211594833163020449622458279803178284976961204605054101535033883843420664658729503692225875408283704541764638395052158133008870124945851285102663052903307916971014083760941336948250114114978735211731892149432371776245989181619400812492671143169396658172477577816086258718587838783982809767765166606492756668081569501416696310737499656726988236852288784397435699346801496353913030137183763431908539409978524143525653311951776333950836877762433632670948519274853704496572233752402353847385064996351274875952228170487913103317389519534582437102660855489024614525688084481111490633661867528812188283202851842843012687254813252612885023245324832867664176161692025940474796026342803407501368250482621310561202375852182973145423887238989278989417343534298939948390879126948738344573641973114364372632007330909133661631013414198163856041626775950048760273545115613395751407785320986277909047644004273557986873181438040383540903918860685548882688753499693114464140657751516745091822748841206918559234309309097462570313889583665589076999274066358924315776675765169569264312798757469193462575703822755492821797834901655993144053158397497567897752731384666348869491953704174759525891329154768243618742808789989158208366750922062429900228829126447117660482117835236945519038563120213640233763735981289678565341232357043524803723717789581140292910205249331468495628525077043592686336578343365729822694157037712140924004880714209947291112143752524654819851586093346842695048577923312252190211490623707316695942692561896818025921770929507795991203097749425373813432049207205169854255280722170723173002713319963098830917385113406083351960760512790383087248913587120429258449562936336772648244788738883631586544980373694801771976622736394734612228245050462417924785990153701630922440516140961234307961485519601558528422421082374184969821107084933705392547622994960562310674816856133774222466740650626970075510743367863042736228958458840760871768632750118191777065602560530188210761671100740507569435669440963901079516075174664161971811327163253615941989881072468869459065851173281764482892875910047672529827862641432020582955301506385526918492452761484323997203275302551717241838481984038041619276340420089026591489934212100270533351398022848089866599129210887705818509882085565304205866724302882649088298315072894391731639013250733193546913574539498508964552626652558823693645351151902259277709489343092826964843320912735782664682836303803935639756211848242097359554688143197665774409603860179704818605663551685892746994860053060026732116577214985863614588352744621812912563873979768006662490958102714489173383459485366015891826995422892657891599635086875152851169654455840095852853344960932624853284751224901238042932711466646589060948117183921785218543272046948971623018842376865767860251475626617179719090732631904196007080715174197132090367159846605723442885390513440087531601143238514537464642969437744718447794454293146570711715498850231437204865292043168387542185171572575877727044886491863811520656193583290956967536061766419417689995909367072804541627261944029329331789310704823477575754584100822994386725768934902586415322481263024683700372899559349464204535456294318568214684875578616837286681720615406280369558057040068512782961781844206214098142677367187859236420449883695056347892317977204799468175463637022053354220610884692275140465126160575956444948082248352205674319365609032532734576587574715315120097809239529358415478706963461997305416447792596383897395420929600568659118908910449327436418279666862144472911556652416279015951047422643413032257778666607204554983186976837948500289040837423506841929293956055724833505577499271911223129793825353930767361221526401540310117958228527042170471954135797392011015807585629795249302601488642083621921765580852221738325691289263534793223083257105507222353841610601229677089574434593321981622867390436676841239737208709706549869278843077127936522765507228124549212953948008475339180496542941981792043306980971053671342962664802328513911938686772714077217359528398002407843043104331805998604391798586498409435462692719989529907423990293551830832714377246552075369820445977065751160407203560664088605249183738633598232016287795503512715626984919199149491378653015827165986575695537765252318107835487543230360384024593700493523796821112721864128649833323963787176076380963770446869432723045884170576969399823812265416587976152888708429676956656499401060894171010524202487533129564957203320090712858747286803845584673045679562989751403417354139918590827882403458366401557194579475964957461862742989508029378619916286354617719996242119549088611591825632749491705517228398074487482904627882674867935766737273175197779459473444241055971632088052965891456000312845127945712447889595186053371118106607664018555903349284909469968868057295695232905852446856941685527101294293842444293228164753702114510945609606186103081165304956427724021818694172139519966888343929263886477909436785623810319445244420486563366829073545698888959634976140227678782451445400561071714583781908340968963557371116529681088191504546627791964976649563919496325722869839939327475073995337339583493856856144310142036047778122021107179737924650157718443158852229440038314821546931274044360786281802695042370081509909129628106452481061693125215693266026501464912845023815995589506433704016981782570768659690380173599246307195930507497376132539965417539891399175612957373869845356843172521904107205704092122657320806145467327877837713383615648332664597880800481323181982518719692590339848290421119372652782065923608548881087694253333122531054042911280118594477559077192689387046901168955795731207381058121530584021184991655062918246511037469984345996735825165265023790128864515477001274103843344495469063804974690211375425388209055452661164334211556979883258532240297248154700309424437582917635847248552241377891389039600870525185786191343863484072013250564175409240893678536856965315559924825534048511384061660595643300024345510531712526392073700885805526026905316881961622198532258583028706431236781309289952890127980949801781520881611421617139781100210154044285898748953475890677358157027958011544111633866453992997548376575712617784408972709986753708086230360815794310388270516660360402002537757344203340291217943037818526899639727338010497554624340800037861912866268484043995522339773283542852681340742106132088682125002566598061058448153826019068433186593223587128029893534717777356797562135748898959937943880791000367617591908410536782413705286955621339062726501862633285179873956885747637007453651089522126755862310682838018326812886289473281096522768918346500216486830501423011169593850939057435563892570525648162808389908776938515479909230212366373764207303965954402325699734080413253054304203427123783866580285078483591250067676212286753560446492548310442983308182332349240532995923956533940121447911699152886779423161086672692890757001159666850867933481704809498267245993048561411917476162169850727050044715620271816991501594486114308033141091117523311655973503080930853586539093053058787949029149720061514409772798724552529093518958838884304496927664588164364771021576660570268151570855531244383136990746376675176571001504229950734711376278777826954361407782266634309344344880323221896569862627089901953895990472023269458225427425660167329920208227562223469817190725998534570881573412757117652187983974787640121851518747132503319516784648924046464893079659353033978537036670089227120748283020159747577577582780079019447096397038896906800634310397246719647339834044919330909374771646903280036371376232181449449290911259269778608414938181452270594518662463316382931226557864164868682824664890170342373809074805167383482406294067571873652471109355894008289302576359114020826171254459851963866144701768069652420747178832077331182691665493186692414582538051395030735395023273873543257852946416427502720775733651081478159437779730022025862889466761906240397273791151325205642788364936967404553886410727499163316002283489457763821908868586737224470432290029620190999047898092928924579953728513450978656851739007110804903552653766310685829930782335302845841486586426755079774040513551198745874974580179147379470952921461776910166203850445150942045100058237523968405850897977274947004833175084237253007506644640187288648993002946115813312059492179161596590072723728684277394669949382401866086556302449608460501794977758749412385804542247944721561079142061154941484873448614460005404560236785479281658413387592562835917692148242131667966239792545351889233552505223914336537910631226802498376611668041404487019302360151241083494699824196955579018651463458775089344920027513048931381899679967871701321460170749706407654041346133774792080071004022183610266477694280810911856809761218607411089592955605154098741620305030715367242694498595014314320407184312307916716202649962059344061963213002138029939541899883101503239005508945194158402294652851683511116227407685538785290946658385559167560543564013210335847345044582199907409861318812537458115535396601999111762393093653014812102676339279898690083266155363398871145359229702092448650999764582529316091888055131540078142046620701612583167108584591238235814028015406475069524782011556724462570009700611187329957870699365891554306792241109678589851109752190137046342868647033370205342837137350165909358859332549844949453221231175496793558770699691284342362079807100901491350283392581043246786148063107510711293123026579857760579791511534240876252501698282869266385321259307438142361255453628367724042644285558045139655199746232596198447087071279542762912956907012906434721892379786655603398801134293291696929356852974217640038676437391947329818438451970928120099861628642465809210557485983829413681101203166548604449460017782941171204654901562656608109313918985498656604944580959905403958852108410079435056232828668610750182094236845412817679317302325401988489470049760613095661121737746653933643923266600492303001145972964630351998313118443901971795818065597681030413927251467621554211277547074340690302096279033229960768977560985687940097573847470707487830817879166345820079938198550512556046891832300707450946083235288263293764897231285675732140341162392622298320558026286894461364372538369218261024314116630611061711478325756180912968203199906223516677190144448096969459516428711295707675204668027261341635257696983246844225584957142247814916061630966070043940215404603359647461905212131065969648142444770995029215096158629179743435199545039820121598639746053197755255004971029739550447753222079359428157031360257893771926730241053643351484382928880417753869908825015747390950864675540027735050900507311448279730984102520891067550631687620740897262253379993044843427172107898967700252167132041657714171290237162634095609250914906425944187081280435106224881719290868750502199928096266988554689913667772104248604169773780936014823114081088171654253774708746583096450042331873306186688456883059015094132791777367001553339726284643485063769779678771480090457129535104265947486577694968988508092331371286275825580789831029757384308254044834111179560778775222533987913853569286736136680794241183289889548878441842269367134451147746732028183840773393167044199442754114982182460089886210852060087368348203763902980245578046618179285730082094120521314703034687456345127671622600296201442842987497829615351719587234670266946949348975686600110269592080549058005141387866505532689069757899772338674829651658915270067156701813116417283226963230416908122456528691535101204805396324783678439910266558272515714772793798105061926780847363060505438544860588700290506550283844128044889305275594930700600299114160928917939185668155235058595221546517175504423785311676727802611212395994650519065542193348729774769992592475039521852212201940362950005711827985756133346351349387377883877365735223161484433365371044620556907121323821194717584853118766862306628196729127415730026329718787736522396492040223980595225185776269100428025212103892863397094551220300492437727975467374452165183205589533739256231664423825006711685195602489104733897715768148907627546485399503743919747751199535853094276031685367322154308699608091628822226306877044295164818056488650562547430435848435779999676952602546928845091758093127844337832374090720630326649258187890564412723204916434206114616960210425759857142656221344611926084270331472487381644066491783395009651500266070631530875766511579781183474467111471303216793658111896869026027497071177850999986932222994082205517391959224656977233837261686465185553842878699055900405591339701172659857609982365506268062581460563008575707914482101604532527119793711721057023912014068204268567260257787861650819237539321601256262933711111312885191945054820275515645230728264268111836769729717322239474092140925035256516401339372181701438925941649434846886522562880086964900423538635660108933302313840962576448135481122525841665454862202917252904711675508798776651675170773417683148541055429813049817037073382733990725115152441274901884877037779312392256131602901440125172231767780562539528431670193227030706733134258505011709392677205386747019099629717315918133465275165705584988602318171799882685494780390645890051908318437142227934030329919538598331513771396570669466551701480771766273677101421875287112139084081921518055794035853072036061015075186106217048111408209420474243593635284129992403089710736496847491594270395998183990925074082071821848074291810554295970823851793523765794981493863312203326588532665869808379586326359635275111801244945777218749432417516084350734536918071463625048081288116299029772377204445736442388826820627319233153275495492958204569479971121327518918516067506119759627163942401353014729636218704260864475023145158418846314751212575371774220827387394375469066454958056499208997970353431426735974493937792479598177557065227781110983457971443053432677281215703445222585723716751915244495790960004539872330713662792299439878137704672953894432519431950940923570089772680905081866970327816330289828147797223971937913856446484314119380461451527481431100547493641859860328956606584646938096814012990889710517315345106623761803053527719474765599621722226506795743332926720327077764200777044251044185103234885565234057341241040144530949036782986638794224222853934099077483473499082741144356317575067394945922331807618551838982511390782325221897452707494133150129137112974205993850450724858508678156570802964512886053562276554625083851635923051790569831605881350010979220417070470820734267491717724479046271665254099325650640036124169478907644919235331888748170434157335664728505253174078099635538262393968987394637302814221781643759874694603891303635818596599042905092561402040373582613083809364417049381734738031200242590541952155386180079546219097761785587226545667919581470105213552727172112908629129563618225289624740681345160106905274493164542530905928079667861831030223218543766046414740834937315006340500395710558101634671802253697239994629242547336849215211711810573430438063684062965138266005107621476190493786344317135835915990390999405104560338284740981523092008578481976361676086853081994717292609011046839697980607466537508451730776871844437088773472328124021973572746976161086463839613148674389707686752090808456096806578968352749668550725471990089303818994232180559302705773605856345492294053244168804527194070052928004203815532887731580428551931668310182766469115768028465362311648069112237044845225689006378354953271919032533458808900018982777075632736967386829470069394831702492100506667036987785920532586573421144754980065050067000275864144425051727604481461176953035298167031975393101530897657573351043558673161705372634183144398330968156347940394519075621497988945261072217598385414422957074790529623325313203286866871256215461347725905016927825547376617708176436674666854789413586648460661558456667390358599957853346683354063334946808734228446012177617516214080235352567134355710950832258527633885494766600213642980918217198336263511966215809908348298759340742444767017140693164516442438222058994238078563652972224105746324065517307370990425690810444884379964252741464609820694185982091054800624450928539496468816304399599051469480871545998022714168809688133506868049701463990718028754202838447413986302942046033633680769697261713347269895424743528626981910805775465847303265081333888183499513886849861358688694333454112519917204950777033490841936844949092207290371832328336664478616731474361617346744708378905275868640511721496294939870412482516396425594364067862651991011857886978642075193676377212417501264835139799359318334236359948197108447992620510288328844853961220760712177802524706253766857354938101421070067430854481008310606734346202934983857569444909105105516627970469244018338548072501106842971446283408346178025242690054280725778610300126935032451351382071683244485990465564833838206330358185483882940021352838455739587530944548241132554143939523246750378451058756593036731273465738771463264612339958905644375023292325466057706641400670777499972692602092509650315514040073370899226585092225348419163704943767531366854554479336778993503921905550708666940079286187536879757185009655401260053095657662270432490966413025912997528071023083324695691791537395780987374365180674887690336278414307666711301256843946214615249635751092573100290329865509162019085192642427984556117955960086605049366294295718374267505065760790505595903838965724453919869555898424474985708555577401740697840034662244463178984472571245471702508482416553894647170350833973494533995517671782199702101400190690307319004460232651862485299819996462009698735601839973764120737173546341471404843123166842560676907676870722061952695004275533796601994503393978333658193621571750454685480099578067234130978957673975933807735887743880930042089754393809614279451035929320487039994013772871486061933618639504246082744618805924924328968032482841694455824258648642923245924535597505389036372996032055319116842916213348713906940753900891915914544610660823980227015436888110830819823756432910431600712680370652168510044376506319861219306479643837414087139894951686834648319861552106962666600220686450946548740078446105762703710022676866504629755270453496359461337052861975376652677139045638145822482794669216339112273079044407441491568728919708011539298351911283302352848315140505919372636506555411657483375680951487993945121103290805741690452234785564552464693581890756600492118469991868462952491402396083372785962565304912920312066851969149240627085411698468986303990844830932636505616376260944898811551235507698716344734092903677635889420195592070215934877245282739646910851795205379133754514595422716983533034680960443349124457816819805539894742584454520311832127930940094953791615252637801477814962927834943340492945466043662136867273274354730784991410040183872085716469438408421457876381060203927590255453732520848924562058037802187049053668404531208049604907588896843837692398822977867834978450016777273158863365018818312547285769457955217285819392591104215887646639652237899250483581846928561206150925825059950045758256474032259329749032577684730092572603205183418259810405161609293933893762290520655796346295818181571235456973063811181461546847793880696838680567783017744075717689522557114863294262139034090075400711212815561966385588576630873623513682486236832873622152477667571471988962841639057582647156532064935842605269839348393898572059679893223424129769219126378467337253490486252548201327767677620486655170227106311707137549306307057256481625660051784694623788951592550157869588745555968118109210027064383689654056527603956008152656729865950761454420990413325700453614356981348476824845903258172917391991225884814749020919115993138625533501693152143636374960108010181697512766605459747253564018134463892415288274673138265584145123358431266578389081087702561909375896418138424331556967300728008309149354922461700129002632045818086569262465973118453437927040009643430398701637025609124771433692526690462587981632006205704566745424262218222434920549575811350879283965134451128758484714444627561317429025171812634856636113594340454502777425278111079731105452321982238034079229633907969577035399489073042140102123108208399882339021411239166852954942784644145809865219759101644885570073864299773335750092283900990421567156886282605275876177421391866726146082371815205783160014806516696309720477402380569144377105719800712036450564714800268482243798165028001783137793002211931727837156722223837536008950392639939059769333876706729942448994268097350384362657736124290641204861330775408730398758124602189837378459260898251764909196394291539858896831523196414456476183770646159090736797793693938511595379997171834711912606788071016790750481516022013035054558795502255051823451457309928128838456324276693077725752545551722702267775312935933335978603892260325015512967525453948329303432662731278284525389967598976166286827913626944705514130992215446391025325543487598369549567291526275337785555791716842692489431024933216458528953649552878695816258743800942387266105850830920446857842535773307212073600605149450382559676643584073036025613592320567421384713979223174652855299350793445380262276565195742712498988625033017077989185422162723397086398942245581276215204102712039306840100850594137534882062826663361542088524833493652932524526147102164174915650678964701006234596153721538796609747695047788271075833220982506537075872380949394890569482351759260007200423785558102319344550133654628573414551396537036876862953020663911255930102009663431317576135936479271771742969496832326753820740461605111989391894268877135088414527874884346150172493804998430851041591406546684576105688246564367675624773205942556913168628460023126681870832382270628271659345920771567634868672317641373651616679542261653868639569120109004088802654897007867123513410841580778922340303234274486684383430040577418723143043940821645978787382221604173588267859776693492824439457984341922671836931006236461616498020595330104524097149014330787860564983121748186546283191506310624531519164941034997973020966130018423461597638563293760757272528902706796399997129934477971159256864609458047926403197344049232893591321074261242633360408927991232937637488594710075109498030282356022292424898636530506182059656689900069432531037622914342555615764298894267676540026335266665613732341179115851819160152372925003904545386656843474604326170977458173253616922344320749966396362343428989591367006916726706053983052314590855905455991013497836600684051079459128028170116113241919821519007616653174153406914585793660852008436032956176548248601113585193945281185182581212448950912294308014064252055734048451896963517844760586495759025968502630164761612663026408635521243111094640083028153511971242295410987913941421850727112431268938084285183213181312587966217827055931634251061278256720541125124304576996021004333341884539525373818382038752565553100089390618016157468162715181207291107895366519786732267101560181563632117579444132315002916642405203338446204405806731653475595139170484779965005988558489011309294410384899709351134280476555435019278079669877651088562105282419820176627641294816438359588698696987107644736923914213888296894808903503107191563243121557016862921997895378394317869868568099541687874068825580941968384059662813629522674787942012402524388203022165385773809270822619936546908389146215952499798221070920106541700957421475947770037787471135439313931556069161948063387174198130448001052341874325167465850937810852263378586197879666473904832325816611190073412791068373959779635202627228926670742567820094124405026452606829001788579110911424923511135771144669391159635938558525306608886440151521739566355398429820013072997989792542579254995526112595569379944878270830426585555865376109544281577429717591360919057378333431347058804739205559825238133975348888584620617893742357182871862885200535753283772898072033833013436983063840465205954407954718487667739824208121392382906913559287589604066661569186639799783386332536275162186242027496289884508213368847527198647815353322392133582329599941433324252247779511777675772728650346474064512843350658942670401935905067495696068782688190532066894757112041908333500539331463899438126601198277517418731743959467739243564594670834410625532834057959364147858981565280700733938876898238769227005451965884430611921649982896752284272100613279881916840464064232311200302776782876977511215969425405425586661514234584198938382584081897170845720525500792522572614261635559509884023714725520937460803341183724052309429387408281201049369967142413200383262923979751732299110222075566108561039313557391414999471518903450715389844975724727874062084306294223997371418307260847913075248962887724543529224509427964082595031198206934854066044145378480356692435230753861937904994931753092276613889470800179793059641442324979877563158127479811808152599153187894025013825286793829900398638106521553155083332675999297252539192633330854259054852380145024364159045131929224885001652549547033546848211474070970291333559770610686672286316595379002821094944259015089971280500877157546964047661190636029201699809755960213205472910229088269006348410575803485993437396572798651791321795465129761035500226299294548877684497274158455375936402739846587031036300622297319387193851732094447654597020942606994195619581009823370790179651977527283541146236985189939535263785982760046583495273400830800674132516504345862600258882600065777970708109532742343586420615536094902570955347273300999464301307490846762503047674318860973703675180755243082414382926575879301641621569531732378462491726653038768171519428380943986105042597549810438613606242172018106366195013108325227870962458151239885788329392268715925083906858296497508550526639317135503918446091284624111755110886227656439323226549245237023276791662824401822196981133768960633979750871986107349050812669128087485818577244324680969908780499069445038071354632897543600146470244967917653828064702378579932466125268455525707903385049481485792765457923164933426020175049676637255798666264638020225641066006914358267980076651292812248672001476285473246955506631661020114906661072598895386044939159379276028385053558543388493308871339145546603020105091715311508947528294451936246696255093660756314618912451968154277323458414459843876550854702477455378410029361671719068386355700823381693247861210618446802348861681692762799532668658105769187452533622134271351708017390606405010127275120588465390883500667706522737136502530684042780980146496010052852709369833767758557846858070399271844111106852450854886481525805760119131801870280452033818750188898727088704817256419513857721339019442313145395623771125312854573003923502807942498208571161791155618723373326008313694684692118779845618116973711902699505235254185542264398568448100555692062167849181590157244164352479820187037871410605521274320500142654792685860423755380336303684384514322260242216053594748239472058012607883100084828983844438004595507621188102379558103983498494649954664094208969632768632509907937195404298675160627868725424450852109172977647986119213007854151587185070711410438717646855497558463481208811173037524682366431708932439466393138923831491524494766430020823681189798561856788941112636854896735840244826489559075755278744290154135723915158847525327467364945581901807914363377159322934168138308737983784681589613120390023792577251352622503987332377210577705507479223267493467120143777162322069243565651789912082630297292445737006585892177642700598815461717647494835763969779162072544555705284507058539809654030590547717086796629408271658793950046795833406265092588698237170952508627755869394588861097346950957983433723709748602258761236797841291802085832186054569304317495291559369265297161540081503575600291010307804325868594621093438236644181071004414646702050269309677321234149331366513205425353395979991516341753760896702504404547732821081284640391078825910179695534557924271253681588009869663728916324619741597514412187803278398318846097742422654172643237300620713253347095485067901265804596014235440939072337709587732534441484992739692395864342728623530470277372221816994622462022275709367239121189643360486318782485719698115280201039457493308240106692138856367626928514622907693234927412717600458854533789784346649145401143463504125350531129595890674835836056462506708318200526992220455915049645954469999014807766804967420787155480088230487205765585313783560639360167877372557795481322622439031615684139449507248687218930441872888606224393255941162451414832633247142980255737320205885619934160237523138317261547710698042598459184239024093069994768146901327703898005131020496561989853850638944591311001031016694879375854147078634042675227040466008978751964664944715661176872103220841422503015211786133067531474641677336540946778649981968603375201849142229662042639948327715866802459536839820211055823117722952667473121676957648866945012956533243779121331461176372591109938780610255497512829226349224815263888183062901573089099988536414087871837107695115425399547526476266743110463834428706921270595547949756946569904765917871654505814863311789471711808818843673276251847642276425667413562351706789172301882576605737198389999372297483525541737363126174081993342429002468428881081566067601977332588730377122963371735056444404453583737331999057916083440645316882086988657415780587301614503042418711767016488389887090502318600358391910729770009054280621435251486975013800518087884152829293779123300181477855307342034805012959560495204731201608251544065324086042569460527479312884373469452801301195014772165854542040563381943667219718988914816218661556777337503011577615840125336572187839966509702610379370768939138489051560098183163012727657404021070588589400453741789457939410047239004041645371869300243746168299367563821050447868361387376247272280603287991734791194013999542130631032936283544130300537382836653881799230504481034548508253660033384073166592471819385145466688387092691797957451825311714505397970375842347866263641825390354429427584072223447746589272362461766843721762040576201532843444700590598908506076420828388116781528920210314056004673224161706953361813255364469666911801797523936343095416212742656554191723769976428005184307327454363962344414706281856164352983208927332308533125624519208075210150605370421244051220124454248669193029394019483608902912559158496468220936260034224655700432847447756707416919667315222668685592475857232178345896728128351410314503738599481564925916373384301408024161270184077495367839537514481673012329041142059804326941893577797980607939188967183951019156134780391688644283305560446097007217489790391399702494110707035405882701280553500488532426386031139486959942824968279065390011906037981337355539559789156356345553554582246872887118045142020162265188766816906692885608263139624511438043808144539493512433545238678896568068582265456032804321692075646917031225603930334254659066136834962874936833929861088301120498508857434684852906607303430569204820200383978409907827096095569171377644149027746929946429996214154999807133663566313410775335229250798001165392686208185698807052328354046375224034346521533980844573178769437928364886482693002935517956211297730990076691561435582688426423646014017625174830015773728795288862545846688629763008635781499557146768607793310725381393662102311881590467808624206187935365597432471299358896808323687350403703768884683513787982165730817433848042291063186270189889477108320160262637768035368256681024753736317972967766762758878132994386059846509422269935950807952916210511164884534510270896976025903303685249834321984450371789953594684440828294345214164142437838401752137434876189866278949622490098456885621762802069594259823579207398740727070171273442177894230792571648949549963712726407668084317739134840761607877500420895252683140055122181657600333415453162056096749338724731587915703358587257840001928241266797804400944791355640134711394352650902916475356486803414614298441843666129163806125054089521674187039300221342619936297327416835478291036155703429302330516750491901683599041822209517023122705385496425891348401655390401518042352626943198784606285627764035906166957907330656297801561106566340674917841397236662802128607011218220021563303203529013929808515791455809145346657280839426124837101165896728657418434537014802132394388109097222595703945062981492650751833120288575196175210183254697065229447620511336656801417363152504557060270466279846621074571190587477253377880490527689039238347063304324244458887177471026228836280535010993258864539020517847156879399620464564690332429395760123489330492307910966995961510375347234008960379735160274370907202807742882111775662496412139627759126404871868990094206318475929477234557567447541960179251408777716904101066552636355801443673555345589843502142452703404581050217711224016212911902925079868420293140749915652165289735253708244224697049407771951953514413744176505738254389079477957215967024886786438519209015335626879692334674568065482130000560500104543354516255434772523202327472399131599397404340938933994972361804201974769354375830961436638611574950062469853040366468078182083434353965100496407879532877854849511670253023650049275284211955763254571614673657894802363254568035020508331602798948403341844495530321213305859111996062702077087140125624926393768256422972633193912415390119392160290683994507871765044451897480041279673298436339069713187000585355273785353495213797605944324322790967322954856795166968512333288278430941124666609964212019443749834811437759420161923011326168368878167669034915933693803435445405091192239782509434758206566491207975201671225526285159107698222389679246442425545514621613128483601512922868982938815150781047755649300580322773102999057314348222090200868271570904452899577115066107000260969410522578483047582272074301429311378503904416976524182783498189138573772618751759712507081485198370659973527607026536240978857057033787141948971468493727501751509717132885937406214528371371414434450086632687173806848264308036014397555000217603459177889239739871846989682689358504671667308062877963373607689796339863806074704054433656143673227391772961947191799203478046087534973610748135040440734461875269558158858824347230423123819935870939664541145431631004394659712243643301162327522433820308235816949183106753620319800850227443287017695358062708804513979992677056317318686507999928322392848955934553446977635269473421819576976361294018380876896266717459282736757016296531603973769631136326817191398257544298520589338253269619659864301425745466976787812231329121248960885338133703107060848515000783361170640443283303894786915875604899321006174900134131414796522929456819979058686305850931989009346478519430106132697716370529920645811176403004022775969815193030097352829772969459272283709090808326891713891534011479910954191181013213587046335135043403258461791337682347933250911503335773481232138171331357138045108222387777855535462868814324805035295292662247827786376363231964985792293084132459694006315605473589326061595221476782460406330054518907585452822996012915850859049169826252845638616572310756861612813468852742261742552338146223677458844358321642022084387993898023111357753734466278821365262431882729029151390081954135729980566823807143715008705623357276290375912498269070390854077273870471837451636572954588840161956158332453627924217252156578467269186209542793586926397988757577284098868190927572920061344299381778390701933669458882310401387113974067266372178609170030626372350085362365675023821349605855381316445014450732764966682044335306722923701521316744191510402599504060120231749276853370454963765319490604426868145661991846785857223515414686776726267514949571337941725047562552616487381580138247264073067445608874102977351561417685829238624716321273613661217506600010826266673618255013004046596813413400024666022844233185666259410994646581203449396021318604804190698354210655119603555578257185366429434610122867119375727689951713465707139357887287828852877210533840298325054626701793923839699525297034700869545842851193354664577538894283632383372899961093233324411399052219729163145684955237172663344663058376705305774150683907124796570276608735925985625673011478393542311475159912828201872072507201839584116885308350020652986545804954833054822820769961874838286973409032416768045175904454901518659136277420193535087257801691432483921031968290468107053027705503268543047977049684550935553341329278194190177265348650236775635575738718938448320032968051316556925950481407880755012255947282690264341331280163190409946483880883721937788312456511427873219579608536739332642297548903713340837126651719759542950800426658822017536392306912884675735059702162296960326393203949448000273355012656580491946663905806964433684427147135868327969766830140019897072522305412270073970586712430239720304164591934127376119593430665409895272113641386326646937244442114993256384987812192787456592357570336812077477425192174547150672613667465041914981342919519086404025930185263388857009369859771853003899740616987131397002322819882524105914967822905065263892861856497093948194873430010109685086049089235554167013876499180492004483262878310303867509751594785904660478163758435311565158382264383330316893461669016398373971573067260037047465422346711738269931766561541182423085115008533248029892243083121998138991259470204436458475171924552426107443468530380583309060293950673733960762033960846373218968206279619747777266631151409142648707897555215867211245970649309409261518072382823014562694836607499272818472976286860198423721751621866889494048883570040091199012168235405694157154863041365245271234490044641217037225124080529800985946013192348650723737756667126112452107398003215922878466068283032583582919966069763229846263384883516442465349969424046146224034568344534765551749340108563396871237319931250338123970187259755459122427356220548004032549169167421971554189728896417328005011525192744573032352891847073982397344648674726932482134479911615054054386148201839695293339073210726833159748101948211296378564351914944115075846936406891911569528962730409250167713767006301904693813857641800446290881226353409651174161331439204795236034716608793300656599899973218303580738226848808830405555739912496392801202761473473470497541488533519246022098196435045161179775646713813796107080395094337466152636280742120084943140510206975560898365922001440684350968485034303468529822717399691534808784928104740283025076813134333379185654481950478122894085204208571379608886597520428686534699351290536684520830042918026667895935330746596362556711734378461930594352437101837160645790559924773643627620500820728409825485559278565411132123144645502151345633232008647055720540382531845917523939388995987232884306312470130599656461887323520986709233377118749913475708628224588265906459844426130970393142252795707121208607789342076864273982308507734760416139421697527938862890471263767938088800513443897069314452689245688361472823026875506066190048430693132683358046962820424949187986710597527263722728019451728595374138417709520862638944102707267697170090690636519542880797472627854532541368617245425887998949471005143653867338927445717004199025239931950918118890415109363969738865269761508415206403107313331744895887772891544824882299253185834418933182829089178259200629213868808178039629109462445063520973159376704597887484520435725177155981817613846069559666029505660588525878756632042719092038368838765728827384162097837876961319639548764154838620584614783606093543754802507398178546860652825370835860935645529298514269780556730704733198820013111055099482351976327806437663311898783549347261721088585119227877927109590945410896714922677567758777959277485711664951103691182643237207905200469936438846728249729345807342731366865166583161579409264507079497857022394900320907941105281687017100400064066767936616948960102922692923658450131526867006816500327742513496352729329749114295961464417475553789643505921691149468876483193662420196739559290365035177130306470233801342608088135482556015067992142011301150102839499159035049366385812318866125318860282121644509742605532047361436343783697283522859194524605801651957092722677214031158638738235817059963487332834072056863810122657153537354135186189920251323102102628274698408060069688755067116427564804193416017560610675272602896371139901059242055310926066663035234511856195178314800176857712959430363172653235000570912437744905089827000050044441010130478310321914537251504447045339691979097914849631994490245332176439118712898549504396312778394264405797116454385217778427398693735223634106992135004043006987659657143709751385648477112640847628696256116419365786253808279114995206394153545034841169484355001813676913661906895485709951854654730783373910285181751616989031797092619000106347684467677627075320999889756444712378607430971316870492345975406249957326763305596776020048300051999712078264426641491268992700652641044584342326829815713164584249444538530480084895568354520007595506659736180539103335882432821529853486616569641050080541719613473600911668736757946633335195233244708769509947172478344638914096355972653288133703110458154670695679637619177410081341598694520864182501512689925548964978695326982615093065339418005130149465387482337108373946065634138833060419161978349323979944065193869872459756240164219805147466043144058515038679642410993892022638855271514671542887598809434185369774275715708744500553537401314340746070941975265283351843902304585518628865776979735617329512655327120131824609215247637990129451128507772736691457390281750015380809781425563625887085782528754511774453392065473414329687476442109902394394781868116376943891762820831494296848382278319900742909128838084739646782570485600251648059560924190268522384661017113678378636716721723032166666997571337004394148939461007148867925516070181790873851162022235699230608143480271257155283864056538969777812241894675543958615076925492079856969428483569076463976321192639712428096911701552254713104889203068943061255551299233147513429283349523970597855394087298718727614142909173273880911124436337806770116254787643146033164389227568893252401832458939663939762725877337483406677043618047477499708445835596346237195209304158860984944141291587694570110449082418619068074560664685174500265482268243880147787297495523840330961772994087714347633503740660659061397485221437311952977352831809134337225191624979843378603410612860995625212181462333773651373732167996342145189532647042081093191663393536914189535697762275159018848305641152418946916114568966979057882024417347447566902046732847136475017349616797313123237911581285611356078629282474060065696832763772349714041854412904808680544984715601572109435639736430133501417470565334539715554541794529833789396203104803331582067337888320628892391220574142719103547846970642714712263857383160968219587534124917469430383757561006007784933036552621206976432747701181407402372943800018658077512999794501138786709945270733170260464832955286924350838244571449705216526824292430974981041449600058646915073392718303189739216349268834492410671659856898265151648302778893198904662067535278961017577115647050470536659145149974362040620825642962093739103420782130343400964635285760169654109140205159996730640184628903107811979478524292793954148920258908834058110154209291716513466226272057288388280332505708760290937977630831921376566287913032108926450694851389614488250303561703163714999414335173996132318453076620309197433119265450929130276863530392807442257551117453738332750712385446441885978635281086908503450181802388791472743936638640112601823298562864937358492647494047019552759602690806030800703060645527998088018448633206909338320540483433202885170663540861235701571678207811946659069254552812779299698731776198072281061050422186557357374456002682866669342750405840684371428357109253607487811256057764188976099571478641026313133312841594957881184911928942924234407631731417797595858547218014334068475381979504704298065105095224487795672838579848962731893751464212125234476224452916298998875226845759203431221704484131619192363206833555130376013701136459619083644186974389347523702972489042807298577129395181960188237330238153832129303326522367370446916525920283028067228654576076677011198779926949236058195083630921143132285115239067129571009119502786071455897026589365145812974022935988914200070373782463712730470204517757865765477401051195617841462075927365778211163235280752326761825353411490728230724587525821704349758428767656446079067306929763341183736764931026104459465127671971718757178345523310124702403330659936941982743783649250074813209722069317680972965119435932061468767918678277958324081512053772455638466186935485888318374450056736154927065639931986493267103396010110369305973016589077320514413451447752551320329364442023515768199785206123943196858551401111632483231866245034214885543639204168965716846037913196614919062223037740784259574899424230627684235220365716231527339180209051149256785059845729636910311723235731907673928262405961389449771148227749213363470274760797633588268070066339996989164343012646819085077242341246932655569028390390557283063948779662191828577243166380741079149213712116534871065335040305669730116397986239117412612081724747902796260922947635018301124021171914855499969167405094469453109629525848500248998150637711167817683173983494172221957138765314815229515847333459401947414535277851748724459681078342214963100215882821667382050033468546940327305287321768962518457052598689141368486998512254066908073975733249346133269951097269885503619542764486294668078036606095359972657995980160912538666562047276596856099832974097327815836982379336198959616686060370373009555090248698081447260748421500521086363922668937435991809521420080247771875490512861448507910570001512919048343755790228520241640089450886762275998878211199603741341388807904235634809276906621566005532391013690001158010635061142174001411664594216875461255209476036482488512620559734990795500429753846930064576874624213049469388929046820164958543010305696150905369587552282706957051742126157018972958051786133502934975706636501710942964319487678063145104173818930144852568394288389774612552480019323833207154481138932275194067191652376086099740494957360295308401194517357754089455020681457899855593246312652269658624570837638351441522838799164270280768809334429629063048098493796618930293500688061673530484240525382645477830083028890590511697321044657609500745747471836692747676907210743902855086877328972230509603139660399922869457677244902140117905672374189997967932942305802284065211994959306569416836935105451031004396594933550924096214300431842605691170520309726846301922309256344409749631616282112302444648185334253518085295671540989680275946457005897292876392873534437600167336832143523643710147901284658336468533853137258641687754413245926969516986984668067724431492979521761526790193445387862953408980036362847982926594354110208330596629611432617774211332303294036806192556072224891259754052004494388533907693417989813301565286002954425508578312019668245870942316636081212123049301900563538142874933647224374201503824837518573244863067939792352575058672704734631678025893076924857316415572755427935457968143337266512280458054302039193312848251127752909165572872361513794654671073330669933840607912850019644682416801827178606255718708010036004209147579214514649164055424753617366378887872006420664532252061894840167177847566451813415724864552248510954235175299870840499904785512379528623505021253669857836057042658379471698205464500396238657949482070607005255940865516074877763357345560102756112437337783840564581730619475953052966086189274398397541748289235434934496986327181529918947679728583856385657337809644812905577253155043776982439929282900264931490023222989389046147637877025192798185974955293117024591139371309755861034153063449362840805909807688280646241482859481314074016951678810481429794019457742549980304930489682602661375444862708729120847782054933472382836165701124304662954460301966623402651555705499480864939578302196027565835248984107408852180270450525868401992691218978082618666145226763847020376965172300052087295240973820427350869698456854956665874679299709726388330817188072817981248158551987827983329907175393158440932677600016114439956389109245484781293277881462629826686716330741314673276225104521695566382641653683068328285794900597806822714163485560671006599133702160805454052767768769617858864321982617813496592172457970350907649599120245155832234477679600564183334455790403226798092694952121397424257996736695993863041216727759620087327435894295635946434588771110674924395485158162939958559115519307956730341415475341919764458008680899588729524553494689457184549445055625590276179031234127070396905854425183049425646295727319787835024518661007717949121744947139196474434572345831510616962218301199626853722287897689290234027861815020081004764722580651186828721431927579829489917803127529718421690276170699067995852374181268121328946326654900441170006981960477654519309818541614974192837996060399825845963559492954688396133631134233907992752831306854771178604144151830944822521925749687794028260929316723859834953943963378862197376110799547992871219117858830100701031729225898547719041973963173422364977917007529827555745028836592785495996378064449978558532958636490385330447036507386924659866168461115909080006639696789824218998023314191388569201178755250572348363710251632032863968961108258016929783496109062690505259300987647831376883687424397240646532982529109568469425059089109335403788947511507171079802755623814457402451773114894185924817021111617400396219497746489894769505275423844371092351450961354457268885200947760339280673075875673463747051013412480849973971786417136792999153479419117796955547596702208924112929771656373781480755597204332752058002451149797546717487582536620270129883073337388344093048012639608824292488104884964906208073318189424347136620283514206864856514772392020126071070881149534060213514081554314798869588912191017411907102549080756502053532553375615182744037089631852785870172421864285081834024220588551280626318370400713275609512474348299897517662848895218677316769808526799202028680130550710402612869525050190328117004259187690653454433709015332369589870966917442070547682158962303205205063790431336021019658157413400938111894375384972352505820182802716381658542827654036297966825022649837566011200134875502296809703062118187862090576290028298487581630951034702287387341555983697709875509246677976508245658331461489316992489319499058919957143656013412583645858575952377353090354231124995423874331880655883343331618861284092586480184884767723198372890989608121769226532419651454633070181970703108310329278126764943044631917400590047213451640482848965411554578426440901209462111498780288614354884584368242624594394227369641489710504500771229806507079529552976566513598841074610915650557614907850644362641874676211774184735040405267433228507757167422695639427506741399488580238736470771609754915583274922899191385296915441151550693280117460151632370468183132778234333373839728413835541008648672402677939402292585142855884027392970684146773699136856646560985984454221738215322532620820505225784040891687917400977292179892253938547406883559305190289780720773674036945958617644298394074627185180146656172294868778945546790737234192796841626841306392833109315084821110022456481237537407923272836398420054663050321312698713444523974856573801168280244544670555154446897628590664179611339956138582337197004846715589667346458721630162897225190645809233283251961125388720107031984413208672962132180885949955161679122124134991870854030830143066995729360798533768113472023462840507050586084954515401020571084431149065426004244941711397378167082458973353966563218295022016165086260965814194719307649708979492080019309924128660269246943674880118301582151687956758287680630590602169819784212891096652765151251691086379012618835055539782604701136374315114635864915196521279856376300668707371137675547122913309831991233550712689303965857551173152538013138885316103621711707094040363471404820429605845735658070303338309795222909726206698593972290654711615373153425943545775059644891317846131881993537457573299161121692376658543967499090957451752697604162861463301210392642656432864791740224739853708757943681943713657033349616572526279123841076505473810382275358753635283320507004021592330643824846057049409925852619580803549713888783004689478811997558395047219561882450413425724473892279808016197919676607197469874285344320376754084202349388491990841632527024762698285803701111708084784242717628194596570562208464915712541885703352546870479651636527797277736657258039813965678899064350599267968428706239643813951283414869316328976805928554512634751456190399964212898782565023066252868238727127825118459565367267112040012950769407974883522083468104192280349403208988869323979049050713958314851059026434438267515354123581082306459470242887305545009154476935387437616065965513178826093163072090396228078063474733934357541707377174781530697167657302212848929812451526559127819725042156682892504726535536911114514199477347679003979923680991556216929437762686332110352954887264412662875917149156665032924260025772095622904841593145730122629434487989263626191386641212712685132553416749530423622841409768404785273839566152317819025836097554752144067720442991714168344007266064336978983952869838982514011064080403204937944120592140448713908450771954823485007138151057512072258665998180145236150567017666966823197637983477476082843070706835423956955946427100407419967086308819033133623340709014728771882227513703952457833395108306232575507125017023646331630662635119546537481707279908289125199244506977276216270089200634567073665150044166395493233300343660643096628978695845802675952537034612602090683068478840662982539514656289450216841789035296149469855025922886424236079528052183696829423847178913891613315282945225017620854685596023448130658540168303874733171170413003692926608750143415765668814402285229180925844091602822959068489038857268680519845103536022598384133077147432045396499243221310211917584389782751717852608269570643440047779924739784293892531151580789319854242406632596368402831735279843871842627711605195490686181553141157159795443891880003603051453329694302827531617017775705446018303958224873031157621120305050535082132825240147619224022164666368337312126111827627527124709207849810824169479277482724688272607408547280560332962726422970438295770880025562860559498757367447298658774323731787196742357083420550600097835903993320851188667510124576861812107642028410320088862458343191266845862630701947569420182349470730736700001110387124915843007489573472083646409566952536772479959875344817652080479197990990797664684285194360523247743966961576540461658035499164071620457354370783665617308600355843170852393351188721903587767086310678355240673922981561118265963502741377839264663493015591124190764698551460900845617382225354879183753144430330190863255925943319345202582245281894492400863984329347617183181224810718975356362020177448791304153933560213875596990670985030196073539715480951359275847692018679455447709814601290101994579635472077179528674382731228238372620340286725409285096913409477382590192042381034917477186422881570231353401280002548821498625108816298719478911294821348886853571025513958140718991845845784177009254409289292066587165583549511971006778342146238061702846918745975831413616108876129686442680360357312178913514881248390325369703121696647465437505541415292937486013696793292020817746307676881468268216422483212939901581632481279418681029641057623258929945620399699551870393402881395283619924594203702755874302250896317181805011878742775498279782754000073185217833337261120299044293381301620280179312748350341336213096702483411498963665604985630178609213838921494448881359369401724077549524559611476411258006640096000497917704539097065058085842009558870185009610392974102289288555449614824465076250436529388197362965268666479996894660512282712676608875478620754816082710685252040136953579011345961823656013137776013456122270921765245581634867246742461153067598028015605524097570325278043769214593248677310743413423967518537204219809196239934027911143299789064187096033033091482598341306518539516948914259705840198800889537134774978220628501385245938489244514584130049099749710571271472311120015109313199820480429569539043479975009066724816723578488501076628993096616183181743139528714774529547176955991202310844077488072020632721296025597386265128709010018290850313904927728368493940926136109231228975143558368609924585593145894932692821109975886778344703549867014705482038812404447456799208383516897270334277839441259979177178640698911717254095068849708228735938288490880856738162717867517406663386348310054880287018985260906250604976962538020830346845583116389884516519268089197952034709380315713008628682639929681086742931716830640117324066865010750407525582021633454794196807080075799112933453651916451415571260369800567301982420476055105207296851637279173305296467145067558912177709829231374260715091075147205694171062241933734766628567838757461305103537996339190349489324808081542248389073322832115219266265467852306960954003897464596366590240219166483445227252835798282490589283439345633427365941522336453154709908729413460106867321607877124817542793211478501556254995408819026517202485244186117040369497174983363085016568984645234364199351733093189201255416523230581877817907162944208217256213014113346239995500506718611712646462081527336617838205804482149367620465902864355236046862385244161382474835211310695305811521270396148208154929553697986188726432647939956183133222483766273493871437780090540566099129486584801361325296722463005447035029587532901093267187953895284286526810419028079361607982140327626717354442090609039475526385018844454339342870092221596984879976124149002694065337820325100847557382125271455359550166924475186344850139098690869241694679804296026637410873097683831629484080247265978524989368900321069014302090930737804411412445665474642518920515481604220051447393034145078830042033307569338249031618040484855281422162011953024784104708359845138067630640376301109871080414081739464004410350253054788181910828877448557403012990099443645351345826248039478665572021415298388360401796005121513413697850961455995033687981010851337920045260650875955913064327967049783516986673468943821239506509945619785939323830032387507192285669098628156012333005219144118921871165460056313399273342703218238753137881210232257745334207502347131573027572711192680103811305455907622740565284213505372480300499958303540919431567383503477499019903306535865060485879369164203762892086112012447711101343776779212419674316128407116366287037270572129888656043476218643816058947021268181455389269571757830499613913964699518003705803320818629904188496511344958424591791395272593452940623028911899338985406187700121646632992511986432577664673264204790628097314811258099625109660372792294941782467800430211080661446459175709864880885168609507204494892874424777112727334630619323060092938437599071803433151635056393171208831231598698816793583242067664850706783154058991480879399274431386869065519667252463806016873140489974256205955978834661620893216161297787035853176399437260241288193569468607064430002742100159501459808714878602162491275618549063607734914831033254029196130323706234737747951415171115420644284761788606857780034603177956646956937740278694516085251691407959110536798687180739563950458531452382265412462275900298607272664746714619271260791138946591848910878465043548469257222495350902579412985075050007607391116982950772389400860317298951353895438361580381628248096832580570976739425307540344238542651189777054029624243479084007588326523410783343775430548322215964637884527555836987261587038860021069868191861241314003552448693360509686988906751288422031373208990991621704514761743237790257329336877549585287453458358626782074647346155064342338289856631867364159063297986333869533428594897530886407054859442299768402225691675246637709632296672077574404526701909360144044384946799021650444145414479325155516822632997921295036578959788790371373511240761177719630377390195576446194591613984200634844687498966123089741038769363877992985127708380950484793363493858531128636550186752774773406388023502645129343275973228465213361286050526598250744373563291989482933972948251114724312597966803899479273956149158504248283157498270089911677283939623499771133988822459843266780930208823875051469226678582779050267433966031777149329643300596627893677273093939324904648945227407094794469505504218197828288433710207620219512983117882406984550945595469703140369176351221535337377596895317431568094774774088643398929871164784293595861014433711602311880378085395829167388095599882373841598090839844214794048356020948898118473072900368866494276853504507883683911916465416875650913642140980874051201924935521227742358218165171347359395013647755275864041705418447764435650258961164772396884460153342503057948407698391981221270071469687737084728332710160771119422517272279259130050586721068755217740475027481825522885781184820423301173172499428795957711169683141805572496921448574939790370709907204566584932567987910829804110984013583574818261227546557310796130921159487915065064541338752802161465809469344598539388085719187288125650438427073097705399063625992881997978782138716145739530309957928814911868577948660029128503396901597361720298838264856966257188928787298208224385956876372427902655323375065678440224814500944736742695316887495118542279488668412900457881498878555666353550276666824192040443872745357675311809821953947793999445517561646057898199163551594251304069342751715829350593809765873800660584095498923428976337688103640632255982145578052676610854630175205870457929207286026962591116903172270015351852365077794395991871265675671909094878031010358526242749211797145451755972499528301796594640462713763900946473787550421846234724859246514587784766799481047302416649038951129986243112983570144011018766835043862779349357261862994542091831349490712669946821793177021045517809693377039338927506237894135830984736372919853142055607532796479340938160371197566379593083527078780993651714512508779634572301163866140898085108402090686830226760520421206176870406313102317829010928865943178014660080784310581134054559881985697890662040739117948915308680915016311394415134749824038079524839158796724094098006840390324368175581919923310975913936343776160912434986170308185203424415857071856687056689516124268879178667301444950616172492403258852801007013934267346048233590778443300455729075825912279487179988707080700034337282650691521781829698424285965948494435888912336535928048956980503672350272512227548292145188408367030874932736663012117548717064257929233444558945028576542407715384383201499417029883409649328300472928165929295842358979129326202143490159692740862247499720788799844738804244654170061319394117610271169336341932907349315795530549412047068869917028519309157987787728955978791489301497046859433139104444704779990666351942112023254079175626523314535987156290189562593592118323989803527592429496387548896042816235343410105234521079581920852265536924423711628995456339506216627827099612643524887913598811480098860239936365269332026559336337778815546986765793023525647927128492658249539514361589508616427877716160317241635551127995289750937238238121419124317026769970652495512154918949599375676301489754655388102191987589114827125703005812452930963210293620333496395725485480258682349142326738786184848743696954300866294658183212152691813217146393860462329349898363468101695885120293858951198728357432624226235649364621501466647284912383335949380617313472026235248728948373288231847411837264073958783746124017027412023568605616747765298669003938783223457884199212310709085402099116974740979401040248277975279774630943799496271352615371305342122343953258425220404529348971260548314786264266440208294729614288658445522234828647704166639039833370906749322400968145169468285476917858100913369460490245062851137752583446832347234794419458108967585504501755125620314946337759652482570107708265195100654901614170994456152170069108554537053086286048844110449584800473268160376569281060023861591428788460937358384082996926264325535606254007066388608979729581948195605234199939766855749778605275100296851910615318978080200899390679054380364414299677192670468793950004582857321597743046909291801757211238210385120261518178421528749135139448541572564834969461678352184696252982157050583913166021102784565177501761059057060185446348651210481307958351328838559851819690288368841927187686415453864865677659205375594353811902903908856402452749455600015472655211539590466974971147511924178896913784003917195006442507841373905854964275498229073794874117309890156349626594042299791472142925288372438056964487696627250020073710352121637719012490497137731308425676807542216862261452669725832889963698065680540125025853001164493577914930879346984143780673277282008718832231167724545610106743867599465672064041908144058673409447826254717414842827793718913832972721582670563785889619141475446943145042598977031675919973593293802464125657275660681357114901770755299810655189401354877319330677001643209116884478085570588935336974297520323894181365648143664995924239679608951253245713283648597763238402567238759634996519520412220133049175392662034916847215433915509221083627453707660645619725501048146977001208761972616722563195474779630230418697610415585865280428070521072458145134419941981852813726150985025080470080945008029350248814402788691119836900586192417923901418190743415060524931135992361244704225679655643373791893836057148948455353908727232578914021402705423163935223625232188586988798072509928180624612394966909811294425838252707570506462290643815267804434797426811353920355691871531326959220092967697390404020721210323877266260316238353491410665577587703262727562226078259322455308486441976280300272335510573025796556790291542579207518556909564302372814327446030564797472773990828410323467706622285399589140214659938107070143296226682971072322435222129429242283263097312958718865885189674862708882127684477767442515039660567392301566852976863519494803971999844645969384969452256071983673073415472741873160125308720147123374859283412267120635004066783186351759986413904922116229991458437858831318525655207448233424121158194812820303610553936623610377664852764357204516094254593486074873808555738462479139607068222459844482160748339129230703512070047843832716505876492220733147838296930850344229353687462443261759898884875743526845832515643903537327170783807804466142745000730543329110900764185763181329570797590825732465357827029948907807149904167503217428992788265719109819312425379581383763706376960668465759535572762672827517194887880237435645809163307288458686086930747561961992444418003989007303436605218628723056178548944545286350177942962613761853878542402823718008537661529243768091918859683742951817905703636290800369677103216300269004357494386270958325273778413538456779663927906413347246119496866573596882183948436377096073836097545388001266918219280392943829513632415567900950070477080184123664836473670040223824345379764656791765557980414300897600087000126628714033880085330564351041979917404981975616088532128190620360455532766560387383416976358796350207903767794439153317240486171039990599878069965580914383081363405522183877558934984522761771936342049126890710015163366164351271901430177193862153309962924925149028692960637439828159115742656895489514494955748058366243656047423323818129315020251317997405612501183483213976793182083260795935358253265074229636425775999434002338126453332602815747819119396856672332557326659805517007570959486252026441934076947351496268211001014612038339568741548612657336200802315879346401586581655580210856577019652912985680487053666855453737267696722454603951656058996594289194745070249923660371023472644170762372411471558570495045095259673961783179861189453594272222622658594410021709829203762605012132219798764507136365924533235962608033341386127720464276508215468467863507070864280753549136280973584082460701449880761646242342907249279299320277799558923308098140418052331097506034943319791480560849635618181941248972106005163466917322153238660446024265034835049739706552326353447045388810198202949825094265664131174689536476886042294649595597467223062582638708002756695018728274051626156517922456012479513921084343881893358661623510511188830157666205222396126630399143256889090562206682509173377820338062451294871935549317455168830115941498826200113034867173767614619067965803507121459807412473868047420438223666149412064699381757252681627799668693102685497413287365093456815484101807276709605157469507750337589294435732483571076180358636157377264186482757264339908298292139249091945744001367695098468284468226515205161141122160124389345172594475229085289535439229407339766312756200370319296835519348998508410641382862672026919788961874779909230995253291150571938567111575191182633174575754242323514368398317944783040849855071752115913514480545659318481621577700811125655025094542719986637355266447457857414291169943054304476484809741002810059302362116151998563542695031477938379940434018289529533420426924012794284929250999441383598070090156496908216116606414904035475773914235006279579272153951932851600401926456966286078954189391400032419634946918146309003245255733608231898045084264880934449593261137152773718281327075916945880175699225771489166709856114443448746071288014950964648561201981134888700502921591421461021329552555473781905497336600186159739513168754974359383719756740040233247359372123988237385132675025463792252678300633697466097620381242235433840546202419537818476075420332220818889923825733443394244155960415213096872933409502587319916880041887661260427597321382667218587235995113423058780295864694538410920076280036466083716510100189612072022312177849597522028555124707721097943689786563238264738371801109283317372753292186273068780134448763941642554996039910599218484338076794370134612006326698730802223055757872585756991109131485884223331119072844926617830561793916347409437057030307572082978124977987223333329452962467162109004726719193021697841089728470125009484389598153467769266720696828484831026610346725334436694193993449312857355672049157815877293351775363112839193967020308738160380663098813393421253634220202373047093148739122909392631513089673740721042080132466297871692995145296285302811345063769935054506246283491687177695487428393406718726611181719429539205318022848539911013921039610062715862992251005450248312370428073526931729566168967477176550170506960889649927753110106553670659197157470180846767652309483580130046126859865830915821639594778878956518567592915929205666672860181953141192537277854110829734868379877072369308703117023099092610885477493107041838116954178183229255536716840099787140171863422864004343705544715240253765688588002405666699052492940478491673071927162589989872990038026016583203763013862390797506552166025799645100232500223339069053910746528116391104817996326712338570561420630851300932132106175051279113957150777167050982811684490408075789102419775028599678152408669404398580422065434934546633228467628095749293086100701262268556298849454923646703179774563706824210389092635126187139541279565635843919310192166420442962257729840755120557440399122288416065194671946347744799356750834532358142210580573402567773022202104596295787128818022039069038940450199902898842012125238012597048524155480072615334355031922302356765766567914245416937354025072678975562707230807843156212169288381374436318771560764744964510592961053086718029621072073963701226418939385758149655939534449220420790229755303401587003843844313906353387143771722287809758789532597739602034092552986140838516786598001902362839965935042558035891528831900823066280870191220672392452802658903236614121234286800413608824429105062055407026769902546772128435441659760271709122776463347456346592947329638659642068245088745303438427645774957774677567537866287880355163747805952038429041774908952571628603852526521605270688629346894195993502407690135692977332564403241032629493372081113066515057800938707456358551110757080937727985496215130046024103248189785054380156529936215100103176489744231366729279762845294254246724355299504657780252956370255577932224147121831744948124279570468798166076978584082631169748831024152586980032507416507719837533971031869719103703122144714821939154680804767274720786799436167374549473270837437509454231192920130139506736271188355760088834632328255896039350121669506449477455914564529801045914623004309729691541886448019461821417827272876255976018447080884678991376336018954213667059974174066972682262974555025314455155495455242103707976335499503542287749725159058639758166787270591784333419160098144163930646035739488342485223566601676287081938069058300533879315140688741466471779203511082369555770970372853906660940910966977603087243629126262776256916342483088444976480835946284138760867817439344996662451093123698216406768720777717617025936128483038173557997641269023494756357713609116456155153700851045327762426656300568633791439123150568825687651821124565730912523570307527586169457925847021492713016442378962592541626827315613245928052051706878665578692754592795646032072399112620081442839201426343268752943368018903370248174753286608202231102033732059781837167849804904694889944228546114406645931895492456130542740317434370272363417754382316928743459562086757840190000506759661845178660662229719406960151442446082063872069405409335565459401144258046039405283280778904830641786300790532343845781931520500789731137618194007434321302547158224223445610278808562874236852822011501892072708925481731340402602040419389390807938694661745642428050442446340833279689068657912207692800315417683947440238528126572822861930333108761433549390288624377476394970379465917826092415166724398380832893013949801716253729359523685636786230796202261713323109652870083816795755778153403335965971991352835281539915443095762712816310845357511608869785918645467184104279646338455440476999680694084965885479677003520268328992878485741664575360791669777561878946977230471097638091792737426808816476636571919849243056740518137354740519936467282068129937447474078038132426389818167944674833905286017520646878741804329724276517734375610675298608549453310612265510441209279079963634104701142814302646219240814608273795598617211185660147800353717065023691503016631593848411960561295809682505858388189079075727315998635945328873239950898457790722856677670241206403066609748121239822142729816824889944214946310837474454425470716097594555091116206956637032593146621367828020393769407209709087364203750165952043328997931016234167658562444568983449612221666374482106173577988605018157427786643640516650578625091690578201438963404980473129909372518764009746646914131313234261922418270687977880153829028064922831252166151265180301852728250812088534782160989491919830006883309348951033240935056310714764491051422314268559637522927540273817486975391267703706000784513705954234671589623324330283477846686041985613263928412884022748726443487217209914211377873697721947986685712350861709944111922115287913474975432237547479462977576790116806755971684184915234238154241472865304491981783137688975507066225265009135358312060252998459762372565211988266951893457907645521834114665292723451511657344220533045712872688601665392619602980464156003633087951580695856171816503729144831633787559815948805187358643506539051445286412576296596812819137628959341667860830525511477259461846576455587515544790231711134527999738708292366822129835114686856523746259125925877825477058559016966521664689465283267678539957531105973149722963843901591256063147445097361398308034431098973279141137487549920577808257794679219770154451418275200039845265376360146356211133615504280192132481612368058706917254761487558036145856920011532716858141153588116897745549261468713314409046671938622638260471820086753984969109497083218560066658467794277856493477380022536156029192128680176176252604771714365745607766533478738102149688413370147813271247734330198018488932934315541933742185546473274027371159883622671594068800585131188707881579368132497607670057305056798611355981018460473650854964125428851581112670492609260359283649153379267553523997923132053023809215492499456845720442450531526547470171167192794086857590642478268313152040163913079866961183824991176383829088675868551944333937872432512072837540587465185682733237531809319949382138583036982409340888734188481966873235385024441936038138016431577421965347547084769622064076407305669301382635324281873102950635878328509680802029158820271268339570398750779093841327191905520195299344459817923229247847478513153792013902836167172920157831956373227440170399552588668000161320438357103312813760134976954471140565554756982171228052569893709926766846105535780446577083650251842692782730886544142550358141806472915342318854699275786205268642520668674209590644757266353049737559099425319425006162939490718729836465463167978391703325387841354609092200639052324126640289734997475734662872442885176916577360485353916316386994388631333173078295592526978159401854965780960300434197392626011639492607482279928727083096176759542907422930035738604330208047351706596916230873347682991594096516291645689601720942719340114446729176548026410314505663678928223085867620924982069748557764954566955175490195867344217502113322654706689694619391054101717563692637583164229480502016531866891228650646351765568729207843676874363501720366687754623151144819900071282451249806264613962031343982169146629412726926994692252494891417727187076633347925690874546551818710891748356121487445421389099857330910664459832853275366191828103775000158294998261999022216855518637316680099763730444974818850706204909698932807057596631286074478556492350876395121049568047556194820251220686350450271683633221539681537282037558643698806316507570667690847345567109388783049728245279911474844797406141094427471480965584112017734498921084211618917515005976111595974407410595689400884511266875992872173909660389090648774929858851361131526489000589264582140179226685725912488683251286675618983634333569150903217463598803773708178749130197662338769653897867235615665414248461042076351730416693379098175930599757541447720919690186319179636701165068030018037669978835565370857336134449525549652448363034752341693300212671992071019641821919713381454267154658236291517068602049792992284145908537795235800065221984160437953836658010583138080868572643080852266879717428249248762727019214884152854622546722351422532271643030788227708630911243459879213067213243033092138495049433018929453345225586706122232136398100975606438197762824442570912682061315183747871289581007336067845384632996338512784285020756745481016907059687682451779781524190879695388385086835150259516230182506726828174196997658324430489624238363660756993669830421861321091987477812197726558310626898516329872001712026376801471969200854653742738673141765996785420233304684854235822755041828676758762690751255194447286176141108059205451707116754982675194438531439153861916518385696393717420681698600110288679256927831287849482905313713438877111043702966565400334819446614773011807450104109974194126503005138494283436073257939226254222559285306332672980354594006752763636154834815887202285989811205166698112856183663583164062992569260338106438093845269996546070945696227454420399842225553689147581554078648002215718855984338034361537176053774855365532057759331795345075895820808304825937111217102560484094596450454573445657382603272038578156362938995859748693680414725006356177279768955779855304209023107037980838041937286655312838149192179075758678394770710734532034619830967834843683554946676389281841292277207068661397157960493790958278548609525333356066710851306212922758882769296832111043871066579385708391633722295979662950355382717036638555859984393800578174854229251743673873420272073403603058450080181814910583329115001993884822604215399022718369799415923428327350601445533401639169512369130730576168860362687882515813307910787871044886383590327538904678335904560302064574336292209569196583059298901331317890633384535785009624076596994532142331675123266916676111549370842930494787902685024159607175882035835892697202709717655100728415996352891150079142136637018052621410671984061987875452253009508004007859462842981675176674842935355892623956205605800990053180879407795567247469221133641244241209467335700172948211541645020049676976174583760145316480304758637813651649686030268816827221640644037940977236769040634880337508608248246834649802242991591946816932743369713625225604791865136673349463771243321486395525471643081400515845335066666996574917416192659086689734513093508514619959520055452409187503636859905943387292214888029384449200380703596260355633783538745407370498494387823479474214474113271181456183277139191523430496464060088140186482910328574713856102956328986714590730630265490704784193867988211350683565701201882820942405261339494858605869020747416017524148882950575898880256716365233124805575266168184910232798973474039195057718909883919260148692290344206617180711160411307729508034008848388073735280021580919798937511305175053760661463064122806658048268722009282115337733860897510905073590556411191330535946523681465333193805123455306708061966489425022550718833309283162820091436787057751553403139699362840681535185602380131165831518995266467948636895662777853821905440316906873601315016402111359785971733276923926682735858738430497592568571091838107296334673890570045909951809439337701010610851686971067288759880396400335335950826825029452344267717735547284909607445953973931774343481891417938807005243946986384795838760335456063224594689942639479437884861326167052679211733249354464120132411269217579358859763944982193083169578096933648734510980328064630074283938411265439542717188603449606548167636257140874564201459731871814744230502019704271839159662709713358696757968583551689044898847261879655437116223285057498119181594466304058937094294850222099694013405328215814123707526191959745823209559443200393101756109949897304503193730231463076101199955876229448450866098762038923548586141663622347233765426794438590275373768455879765634762856977098537979383005829558523854500639267529957819247656370910909366697150812770511243420759683375022651637603473580924631007841038118382003591294673587372817846116520059960816806879331457474976507868302439455826779265968207888177660320762574682029214043171529377722761214864418574159447423285930836515839183481256953969476462879692517355726254733335374861320787822497018573443917473875467067144850055366593040310196939543830907341591324207846738763105893962690698486254727769632594348739709494100960208052774803876094550324911462845453320535323266456753628824463207938639279759244069176529404398345383047582773287648999041391809825879232250424318390507801417956181525976999209689586090972689350271994306117756159643897804433166007543029767339595164587516601164165308908268784593453227340619442148394107425145654357025763052693989895174499592706992149369421452325233282321462065549749374581456359970444807075595735167961734849533298342561562820037632127082882650283469557602491698702472286510783426314380018306968620193709749244467752424670349957779022737945290794375492490921388107250893791093209726693558166934568635684222091891857181308982448827822222148110761332817517681207803001229241021072466231805775932243110399300973884154854078183754846691447401199273818073858111164645475197308526829870844100459167607717698661626308011947812619008656270576144813920806058213721261164620462100623646687464295075121565541555688593035340016589297214972712380867550927059110449758618289713584002557387541367858181668773913705179578043205967921347716174627246438600463331106817939340535161582333904990547966888965695449253586664390155902254592382928184981821232357113317721253837169016885244952851962271067914110176384750350602779183717925907438363997114878264603725740700852810431164944205081219635614285742017892157525849928571846057198144594088654184613533400390157763371335704479886609774847712429799880346557404508958565669260926709361142353825671000278133796208092922902552305539124812348492976982274435095475519659884454204469681102582482108262515151604756307422458774047973605686917778842165912635665875804220346920857867857733201227673065951899865814436418140846778488438034962592389240257576208078439712377860368295941476523130286303818539759684268300864241394960976084151053734802900953841480184433915441973545723402297557954812310277220608741126616919792719531903187297131477765463156786451000127137493220406072643844021362805336899658439186044466031755698929208086658728715172538514913929439444279325948999428783453403996174913427867708776632538753742250186320705871704287969257729225037382506539522639032475161456008674999690508851777578080598406631322964020695536290042997563570615662449300403041542929796023240668327319118571487236577745359808252758462536018550886109877721050930255592794467826858978607734085822635046319264894098520762189787812912794347085567537695105161143492662901346792365107223899920591394529215474254611776176532841224963181202777009467631845945478034221164103216703379679013775347025341398122850201601333591631528204305109983432110307359236010543858751091604895543300712132992307388913852668932963861989277715426427989939394880608401266969746010180737509955398501853666059066461988784277362391611016009108688712838261189719387621982732448369722516585648932617949294411072591805832535467255343808122448990807596594695609606502347989059784988719597760506052684570507427192802434487034513967759132569550252660347352392166900908354281278566962061160637015236815676742726647129093040753023017027138059631542592942151443395506059194321081292040963609421631692252276960009864722526877465096320031908166691818117659535538697190638830254823094420105942940362330560267288560911187529885132366075605106130566170680823489051797303445820107102965614038396771469570937874110082375334208628652893662862991128474089755444095235753134524986484637374131485306266755952111737179511263915144403660622381584786650502591585956067641335080324138119715261697208630267169690818180786321435325575164674994768983254078646503143376000889615497525287414299772782613730476018528875293649916134655677656063115368918602713400618286439282018472482869550214580072205033224808622931923630705347319430855675659972248790398162479357021712410643488793432006224889302706947995994165861089630557942825374852220131656400447414640646499602975949997253991112028600469487113137598094864433485960511772140426925872476994257740169799454603447924364049196117256056486418897776321596142021058012532883590666816259733267328738489883783248007487492049150464213277125259465575861602743755869384062029115134644042400407353987260983543900388981310207182266579682435258064408612446322710830134878799710487171008688130261528353912803991737058361959559252106155231886811136404261021920797797439209692458625541030732127053571943297597520350392906752462310929122542498673142318335346021309974545653822073292062769093836337432924482048985125844021062992485249687325718813390251514576002525211018947263441812746277344112017407956336245485997818714662184314935913230266788080947048805222345470718668183942886549482655423736367965417653565285680950648332224181737713075241154107353821177220255861191487789608733505262339655260966769106936443548342271736528230431418890506260060492633266126684771915055986065229769760041384825234255929081320236884239830648934024682301847512245615563816793122151417657182716216055980935990244632226528602508623848402329879286218162782470895554163727535366769784582091117226258275148446299671745994462388855135191536131824536210908491935444649878245274483058133565605721995676524167931023895483614731155410593230735607493469037306776615806878027625580138354505714281275053591938494356793325454143684905289966622393336307108171141119462701764107716406183328631946188502952408117358993674851153747512548817250075667655187639506363154780053555828627175833893292035001716309251021339027700590725122340414799142750800516885774433418183019747302439136661563936035484274813535379420641053518678190612972553919420035535252893260412353638212937556987824108623976950366157694326271978145207007845833951244274800276301211629675006317859805700967124074460756762933026158970907574859096318874671065883373417040516643677699577399786600641858798061384021461713182495841676665265055149578670651444698734019452192807901827256524843567097931549867781441851653437479068840959596733998730343709440439825548399250273211546444506913752837964293152999792753544934514287785674740035542715522083906906058673181551704271055091591629045808790218824140842919240414762802822627005360915856276079568291677110073080587094339234828439984006096295080862195930126728989026737393766419853877457918674210275213931173115974345110825127136129603069087083238163966030586379015531910112934662106403942158521212777906449037659333669576702357858476954241202898853236370781128468710781630936596628913188547904010403372454105151511472726599613142837328430630737827388626507400067568189460128266048355898740627726421721942963975837155716605044728967825553433999382694371882668414493698169870823584689192227489798204267509440327340028792350835404608990847494686432927824913143278249529944614632358417668224453652452491545837179019274872236938692212541106068685391045281088961655656266075958834697630535517276650358030384492816592328035326535000972849924844592471638069502070560443429286458172993256315336721315748130793184696794520533680905497368145576614629348612531495516973785095222922429011599012267986828323870152038366812941546237233772363930997145970560824262264007059027347669360519668180743953170429990335578833909653411570635353600553026004121178510707963295951314794021135301372234577068917349972940087190418938390067905689911693392699736292702109742978833760330197961202433207083790031495970020284339923964433710068313043533050985218629995572594408155318181460722801697673235849838862320257363090681890570071460915597321910993282616900963243747553481442769688985401392135988448874684992742523514756159849185350599004884708120384729652744128592817986949579709626390309925453128474712481737662489351127528612535876845210855645482816011720218534120757236619445627820410397890653867715124417649573777600168137119288970940119494453859702309886580290588605814632272819186290931230013570393930870976885971738395975451354409709515759644787124047486713460675409832191810695667718642434849700166247284677120095156363050501651513815012333061751557374003196350146779365138635627724761002916263760683326616804311766025649556863491574787974407780119383597966150205522456776162683744993099249118850291967466463648366428007385290316935715634179018236375682731125563839296650267428159958832292220069791755864878830244010410047485012552964375311737698749572632662842144658475504921081795938184156758671002910331438626792531142403315875228242868427013753902753585824877751854509240630854774783245847977766996434674691137520079603474995463091259241827589721374161982523640340668298861405497281712769076247542544014795139254918518132252034807581428743855911523480343558109438423231489208824879839050198380096248043787278599460694098614373340735104188525954319517464007687184753248265450415208301963878063669940982200295104743949082151422766053680943611824680000578399882617262741534561336057310491695382303267602582337695776975251762768618774761797606652271067210273227073770533484763789477008805648275592403207121843002358189163626289251223562598026348669397941625676741667221187729761259235971982083160111247248132526305611706722920418165270260733166773652146513635713074837287377941412366663140213440854626373088222346471939600779533359368513644942666652361891304267851814604355575752498896940831423777420826874412832514269989601343228317221844553965912469106659110539038971560092242092356532930360346433405340939016749587522391736830869575474557319663791112644778479291880126176240187145856585064353444612478394935543437377679519935950666020020927436669347153424184206734336615561225272886358958082840092873513313233107077429729047182332947271904776895668605616675138530928795800588863946634434084596317579509668970057801596552213065937045278513183611123831907871550759581126554813494481039396358690928538469193842926988408998098327266918852292883559836310556876324495617188723585349290958836706199170188407176870896747187055021257517579013152403068097323952419137634724800669699165408101685799087617814255688779421812668919899698986946973254574156402731207875774844798606796979325802995188847537803853013769279357166600895319003332179378989947266964894163788577947403433251175438005904135641914335293893203706366506281064264345559685384420481188080960402357221391876160413482230667351259819590422837538454300258063427571916126196924481377646303939087689485752782982335729098333707637623242299962739059359818349674904461344621667938217961090437170002081009885141415647664515818708339467148016079552080595671080891476987629624727605638275132864489883611216139306651457386932218137622483538751841422238962753197579425384999948987760741765670441595462071869199669062061272675010312657788195113138302405945023904277601667717539353335928752695026182303001699898743114542890273873715339863462987011680744269763761177826608483450983526814436350547035814702675019264398674073523250409350839478769944862416242842133381530140655998994223568552605162196169372081564094408582115164521201629459031545566086061924790341011042718383285106289839563854705838985574031972513004605372896513445937400358109718620549788907747165978454373454940109015308562957965737879820889756280901937592200289952450492946453743375477989831016594588256404833713909205824149117278567256324196966857204100055996249739918613742524839193043811576117102963383910672105455537672190624217857083224523450554636824264802787794645616904124557423619019142042436779711666230206841933726578873545681664027763823552618455607524680411341687579900830408915516567296908385968004072487348900804199594628204529632261513704255769343962825335996398129965999384225933535495659258618420072781546869548103824566429140661817296828788657798466469628380642171326189013736657733560333736759304330930105052487114096790332187369759829999079306988921812952685671849427089186836426940724479616113688705152651760658216860346433005094612092133502221775262900710571447073130014953673722383322598633601485245589991635458866496122221963743951788384477139839202015073565953405186772211695718534632169339286340100887890174370841928221789674873402160756508197567597459184698417132292305082844414617566628894874865016230990070898710531416970091368926024620573771604325606065210586914271014505244685898480029157637922256712016958331464495543969411522954067760997924332136597573827598956751313635348874588119351333925890585740880887193685151055725883079250334965859484442396568632316479680268915865066178549159958949025519359700987215562558998724071683924653514065612549728192948296779835569712059201415645807906375178795324494404364630929459035070087964748433896217285615922697607956669265774862885065420620589915751002039569198218635097117447303157621014665826674402941479780950166394352127076161976147433274685750319400154052177088038566662806061918785910974740400576463059761002875918808639085675549538738855071082593540979593584572021674199063177692849285842816815980700739708688155651783595480310095066230409795052379574482931623044045565874417261357647595737464419042938440764266624268774657415322994069024992338397500710892025932683334309250775071224458200406802176924990174741489407423030537443398968521846706598016985707407369555294122437111043926629679072591121628790506194858371095468923119140120347272854757517975774918099125205493176749623528284997080535990521801130642265316446859954630488573101734223861116887077691375724412067645107988948753760679024327437095037217886162539619800842365408347498781619014387772550764791273577161337673653341132911977423169462370012222176362932146630672615145934383409455874566551970570135512888621434712997429891219226411189852430537538996746427686988011074384605242809281427322583601831602553457167839946809757728316250423088135442087371624473048985871413267283455877750069282796165035987805947160613299276410341717034732089002658539769938844395163402906143720902196917094697137672937849902094599876378495517621301021146059465667418504129983378330836699403360535605419775910192284419910919622869737097924043032879128660735455609335009960672819783484394708105036113126840523342265877534434782937147398289766934445721246256743792462582761564295701669737811880243025357666333367742854855582305468261138081763925456039395493621632718065409710423692156621890697407139026407754286579644106897928687174709519352555214941455301759604550030222312815490201986891636958154881671271861335065315802089151477757899883501127382473451289093240799728309377380280549690166748659069698706262985224656234790087414649622910219975830860112017305175672037455672036791708993800864321055060497885260704622401271700038415578899721100985829663782619340506138236167878134078547055761339364826227258000048723927865358210043792803074017367441151525514418202142864996719812929897331338751374996276585872409338947383195602845166557153284455283443941514974482239102238903208815231970947609012573376640035429971431013382524206004794307135069429804333356792823396917809951699930513530423519525294992687566583674704440707841694988125348962115000756746695958425121293622216371853831572156571989736385333487514035097299242525319956075358944128696355578733547731970883107152895317997289840979744754066316541394214046285113706275168049734192606980845455657190492909021167490531035167578122296499188505641766446263351877881275678539318247329339557116919483809929305644246718706888488059124642342676090407435095939160224208179816142587222770508855696065258254026683497498254555761963203394679195933295775821888153860204714927883032461540986808705781089480448029677721846551766167916923522916746360985843017184438073655682088426121150737062618386357856546420430071801901957668419102195860619541547786194539078052397374453804661079588097653426244946418411248860865180402644486693419350975424625195942556660601070681668999029936878562201429773373991966255986401196686086730324735479108794754054754831369904104563104234705502342402802023805584444170873690878533696990042569405043890184555258721517714368265098876134743407828285651081044981555826613460991114498503467927032918733580651551345734066139392406500563791405626222212307083919960245239296158914619069383365638500887618145864890343331158517976562908136120620332012455374893935363160159619356830184505886984245895023562783625461386029112710866557588348554418456970971005343688500854807267110408983575524747901780652284941166154112207631532084511368869213130689452760583425672855778776781161582480133881018403870524958899503863732253548626051750754594226171220958763725788460758475455853529104518642122763556693940778042930835032802517658737261778185605486573449534489889215300947921394161695195069543932798740241122496814271679658207810444388256177566797482423557559477924651933990887454027236023902288721705397497248969894819647804588084827080753353329722290137574861590744408205195932766053220786201321222749309195749638653332891119855640410993296796983556383283564248389833663845903061507205478546964716680057445174585304995842268877559191404657512241687323624952100561431526740206768509784668426807603813740404139434807376290069273881325130130778113922733847280397776490582266446343923666624314618295457134792432883874940338205779088003680600059917762131856228632224784624304229258980354660299300008535013705752806663347395850020294922240363690554840205002150044277768925769286601009773791907358513609600150725014586074562884145953686328762932410123898041278107611923133758439801518170650652426276038533444867171439250280632413970689111466298041082694783347429653950416044066769658533097275416830155134823976915523763144972441193631160104908751012301584042962190202315383612446559470797341904617958481910291081745736057340733586535281234295364539649717498190595776304953412563455891966431225389477337765277406369603401725075860665891777393803350231153044254370228754893328359252130126755293799500832458673033221961609741578393616866433853493490713368496079122932081429692538300997374335499525799275120063672687191133865546418494534232516481287292657990521994230134127270935756269930290398006991594961364351207194512427317928612675565725575161461476907361893072176707064006883934912641587625553982468580268898800286950014342275393105252588988770496195658797650886114326608513317617821222533094242743207870246091595426646259083922648462885793310357342152941634643581822318590735690985071586411564674370948448342966765536168267913655842138465943755215868469924599217867502864374819628077327267852873109888988430499577514129396026380477901454417696951563755746232101238055606235756454843871668943658837092747705711697629996095959279492432349165250005710223331209457094753277019212891479240955148864427510322542314998924285952800049873859582093298029482819833521878007547762504828400556526291052627869126022591066106678667098568425658025354750343371517574981732855582729495715323395637741887348285160513614473651743355808555735547230192391689024058113538666808159198432113798797700274372089807671521917293801701770071104353105995139585706772893899414778121716365480635842168960246483347624412996628447248356849779789864619293587964557438291963747338414501671170518196098232488528894985487373806854295425820809068785391855969548522079918328491356812034313995762528117099609075312949872908825465806163795116641446363583828944467114353664280266104689401183133765097974213501029801215882194915657259135609778604687853744485013273481038270193573841752522642078978258674373571614600306316687574147181784598914734313994634475260455694489491772474787876763523592091544094558989944170991344353421253869912687721890179573618660410417479367188714965502830377583636086958465666875758420648678423836157843894542651976280440363052015505801857514749910129032059629532181576149872623852478235533745982394183075764293797014764183530317262611669188249295700877040545659283630148297026388190279757373758798089177332100961473969789191918949585676815858711315557594671516300021996515455810288293796995843885547903754038980022322309563876069801763891874998854056016391654396343395644762804131066221599955634090680564130709021218699658254347497907324649047875609204637374538234066457202235337101078972342197912235255194622207430860503298275557712390772433422633984773926408833933199207774901067587588954472382465426291097029469709369620736576963922079442948711595845764966941040531443909642270065600354578083755760443863611639571739979417973362944545449542901597282705741441814954544246152091592231483773048398193896448626498206077546134898498158782024660629282394750042775457634236222787300124009427124774316936475652323161620247638654586231467858549281771606006674912666939910088689132686373054951087464402202073564753161504291290692840595499472524427071517970319944472447635518887867445725719518800391578657351603943038823615636821304897948661928994382569858272634270483227409648254722658053233279339775608252934115209013308108834288571894096974039395534877238576434800516483853797304130756836743313896233694693349055140696294125952235009498386917083617983689093149851985100626340038438822902945597670421708037137049188065009961332376312594425899550237945739850388839171694945190099331424110363415742201235745982674062149016059804985640073147430533570747954307973715266573490273541565635476849200137624174456493976096409127075376912939776380113548518679792606013874677110424912032575410537793687753012017569586234203361056639106039656310593221969562808960252125900711879209740600529245432309339598374697530428596805067970825117035667284700150449483719542602442529257287444934531434062054077577734461608582579335787105642948830195948960766847823072227539962094852165192820778770184559284292612077145015659682266617517232949183343695063329139741159303976185051634451438392069674859420215544811842978692780743354417303402239383001618208790023675058923744227345216507239279812770585993700276973020336630023903528592512617560886476904078600755313017579613063567051849473620141869996217633450529073838907044677129187149477431215607338861854894035837695482623760756720805072137011279399096901700322384207428104797602863190203477730451454739344927191959354021671765634913049059599678273883442961340114609885128275096229424816733396560927890684372644875539463689014200485663477362803421073822626539784900779914955951531383830740065241280464210646370223076818116239286987809867550273764271020478315334485513667444375905386587478256530063812894880950912589746136149408977433871113537435250328470925503009195552833180467147638613301093493538873786103337016891999149774310104185085089763882787581851637429009107085568421504331805993406688135697737363985875847488243030866590810733058174029625161076308579370506175910663760078711880546505598692246328453947698878444720053097311438246464100500091190853095823987949821266906913377003822403910403005301246987113649133149030246524330609656456676892348993975941372769684059539930942638896214985263307777845445276321618810780966006548853939733098955770314126347207080760724460368452679643547408655784657968140628235537956902671573707754748435757281744173458195780322179231387488495544197800232342457217556285656763033998906681735029648233690140709301652953749765410673484050237320399520921842004222757872720863361049927552352446767554298190074976969548002187614959065042253069915985154113175790605341435680537696233489333099497479056722003438208114026639947882330829550073776915046449474656062105031906951436939967233579905331056155674784305377155098388719391744213552638483961799414256144694543011601449080908767110475528904195856295778824574255887112679854210745804271859515293820577693980062809622934179841393091905473024860903729052224001116546553259076100138240172698418322239080926039367121727994529877857436215301375337743518219668644573033875698639764405157631922215936612117028709176186877564261058431222224272452100983832427799775897608474274840305194571737080152243956137390188946963345325099597858142930288902216937195457655777060381165082247715895146623912384408571837518253765784542885021300353660098902437996260100772761154481538158379258775353674590331583792005107956229604884493595942813949482727711541347805226159215419477837731629727264156054712569474222792594302430318537614390870564724290429769553014193898995063798342033646360538477487939616580648935588834569501874586832950112811275979162598392578663623071934323079856671975292737141781816367433157107752677477203054413741129922795515469464466002610128816449037303788710450705061664480065289856240496720153312979925309684760737350284340391905306298003898205059266112298105775335697854424106985119606941729020560600838262148026939142480557012052109699445458691141639640666816619258989486561441086680932554498385505513635669771995247924594934840550643411960167151488027775884887766996791807199174857603524973576254510691993829521857407018492772683217827755513319570657799412263759198362489486118860968962577009299778332925884618403675554049284741149211084489471858525919794307675163111803449623578783135856177925966826603281511676075686688563463169738264570752488608091437956293952396597771071440857322264318119600653037404473608605137087099411724879769512148304091590680226867062737233322630399092296804136006915665142704180846995503781544533080500385473368929830906039370201619794896273336901351947927620892722028563148361173865078526648814942650041958932316700353426832080616526048366041887397983384895864457987223608269942712263500192866360908534557149345057079408027281280528459528246839712454585875731435806672691069325336823609646328066132137007398268271119273114310874206099086287286106495251036506731568340347898568738582680958471554061978758122205959004898899234878972229468044609622169257113844557410116323172967894848371205976138574312667057468049209108002075130650686294894828817146677705355422531187738047603095504858046786256664930997886848392592949842085442083030164428745230230814876642108389170659189671139967320965732173551045079309866563070327881645252082216716143741187188417674173492459983056101739042992703214458159497768391438650263654251279830993316249779183893168781655009391560542738893485937173261022456433973651777074166438801117909466341632530578366986917379732058746262811605837077075184727406823559790161148523852093193692148231462845856310432477642094334398185972517040059279181243140172881687621463576271112192117404786143635859986450821115057117794688498367205283690964148076482770205030083018816034231760035585551327150341149928951965737964097511953659622135581832146947104975451092421329082375419849958431645426783967393815371379613654038388133066725816400766716486325317337597259389600105342521604045816486542267808800653185688645579146235216254661563656735445610546860829908128093854234135700556090189107933818773108991988773081322579146042281080869824756613969310652546123987572709372714261391084330686660791004530703987280910450545944708634139068768849503055905225068933940329801220526619954277857212525787257193452504358662160619041643394617225897348154694419711895503940603254582720971051047356886712368061009883965052320757471042220173044607796350245179382704840472398796288806526892221353640773656319277613715628674862141736528050518063848060604718928889930799817221879240976392621508248483199010922719828152142130284463800315531285612054440923694887692912439307033177178434123294290735390851737439897591353822261689112180107435633026685570890915188027719058713897258837960956432911376953674320034714613698396307979238281122666512875591479884230671625862321998700354326783500509731298161802511979184629016353955398795364772341199513340311869948727659756561998248752855821361553026637519479580273763842197130391966265221440097574708035540054397894656963621066151387160760418876295069993574090663520435100970093778118259943090585562904131788179806973049237518122811256412421574211564799518613452501859079325399679301902628519666241794401947182770852913458148930364544742342545839230207782398114223570994354899668100622972416823080331839548420892803667979801275171784959973472737781713366736821552872521800014060504950740086966679015146277713561275597619999104207632496471002734528973421859530545147543205535428715882657078248644087996107145491087459914771567984522504811036123511232724195285174557027099910130094232627625943262570776920341913106283973331923485702625665276070448184202417835967946389380779568383920444982450069153270071482994943370430462010032808674142158412724419770330342030822397156442924938180828366624406121142924306968635706504459576902208614956788620384336273124806554288816430284507304213717658774609042552520179591132439037480220889155939031397458053529223860206043882178772859520631604002917125983176840454363496389247457035760021637014071314019192915220134332989347393654780460632535675833683196100750751199478533416829392167600072038256872640829887131778739042760496176339232369646997598880148842026560116374210924370984503085071097604303875249704123223699560325714616185688121056136637408435125581425233677891421570583683617035264446849198015268846323229323253167055957563009015240834192235868867686173993086369554809674617110018785092674789790613994553908601253655563576873904195805226280449283402645802294435611131501181894915042488881789579844777389932007985404219568483829357863649114468863028656204032902060295482041765862197016935466528731979989090308247256764959822790448910140542326560474722887167191513493824619929415983993999952931763370871755125700227971636982429932299650633913588978854639398482108847880561390629557966412702743960264306794970147095320836974949076940531738845959979054529756499315029918074450931400188656951001471141312112264704469157969589626521754837320903042815764895069867277512422948678187651215778288692710210974378168494427903177469284883610675653602270464594721045557109470556336855941687557558891788803949052416655237469713913538740747585808059712815832948286659417018489607946702056948057949954805971499623382381510891249195723439984374533789850919488120537564544300552767596154542251622855232354958137237868601944311212724695221933502089629654379900468180504853468483034412602326852561162354659731952691742155694977435258905649848793870399358304748357889049365507686353466421590668241195358661374156335996496362333491099476235294675494690983792440051789950432287485630846355926487423242069784440360855583032625436755876092671388931522099333506527212455529078838364787966326783099981765309575926502936806332978147657724206051801640496500760989910044405841925656867520626441350931053860075625576622744873436625878035679922100505156222373575516124912848439948274840981132900498272690039873223867723523212612181918200019660796308860671023352340731699808680581687144164836444329222275191045763190612785648570864165822298380627918001502646007931444706141550731149598209421679646027925217569382989578466163598207509601756037038323390478720953810145045340431237359617907810278262016153353361683949436874736851514115641956532611649846149753877268900369406221984841534041092247941681390340025545161923417072491746295023747447684580274052818419666197097958680273053163329421151866730079462170451592583278584594373817741298750870882126243530464550893796276049263456870123408946609731836804697381891512733361504958111495900239067561225964374060500099996465742048583763785298241833751661942766057255740092948037122460553954117836784132188107761249549148447813409069050124790542291009697144853692530066240226994999327092183479788742509888229693913526372756947346808358367568524004433533403676226559395368789082552862600712859362706938225410678515785502345765233878634622422066891689984350073393222489378639850519487322146376411034000603889602623558829693962032059094524921442284422792931519787683880832966098558449646748609072777545070361249924304884252984730799853936449650522612455515313217303505746250216218990770682870718137021161971473451582536172445388509942053557239619401596690380949468425624351666558527185471142276526301895759244867133227783468963187330053157415401026466278087012462725879434833616967098153008546729450664162641733870455833619536172022049541078060564435687588197652076092206837778251756555765938707187037772577604927536670894029271244966839160266850794377453752200701003962123536808899125529499370161932580298924669584617035233335602715494257743534966044342362300795950726929591186273193988037236505285607174603669499913879325691381243177725501805158068449323743512328111698085929721273778516494679683854821534834904447903965330140628135518950023529853435025677512760864701940621446717928143996118111861652101966820087016899884195605325296909177855120948056340299769861532408935605503436491498517888454331547707887960826813642961447408371985360920675465027975531237729090044936043496135391856601444227488616126071450763304972927803829071830252123171479749622152475406931635432402602090623845152021494467664071514380109118662269945211995284298377027406801971615683628806034831660195665483702150023390190077396498484262860921015935654638749996251674998671278298709279003128400506127048103097887474557535620532272772173768055555336957232023061342704206142269521758806842689660284090545474059207620422270749384147642496956803279516074435512554426309159181334692704520623920414090222774949094952929030674785886362465784405652096464182769401472850786205737732253631513408006810386032444412310872042103096900831562431213345511389464611897929172199141480887026903267635285670971088855546801482833158969050882160281750066556137219539077675943551022091861144274389755111065039214018690023128309785976213789319616049502540965715764958784072874580979920391345295650863315073494023126100055328580858560533913625190140173746144269848275643492445565321037943630343115626921680783518017493123134201664134897417316366059814515438582926765576361465882283121167868722453502028432722360420079916235862584257673221253822454129009177529430388739196397952116841971576317168357721203839117981075635862837467868431767766264585677702592037082333622970795739209751570051441791910720049565354659518659293646228666317858117027813817838324688363161141854790373002604064350935915496774857483141620425287532321019560872243720741933533678958501726088158365488020461569189788543775501449767448269025351514500796790042049039114921861514023544242655395458078033301091839981143805205664443604382556937214432738382089748520557582299590238884863222319150438153227510485049256786217229528526713309207598473604915579396173790700197698256133409497329084985095798336217787528024637835074294371937881783821778530243073737464582345308287354516873742575111892758465229708320113078773983092198106732401289235846840087650915617376808638485211654118642187919715590790824583432840126751789105261705158623753332706097545979686939899554247566612090637587003088393340648442945487210347380868187675516246880175528551293950998358767072305337251196940321659225537613717014383881200930174214477415272286647832505611333750076964924980182882910243294139545527465579848500416247544846663680789083940521684521742861694123392933544292156688471005799262551340403449116409798186141036230571280620835882002484546837070813799364541887056364164843304196342930597228778330691942693944601577286266021805874483183332365722897492988846560618757127485469543155139617726610139566695609238880725371938669565798268438211105312420957194904715556207363290247839726191411853065635177775335082760076618133032605869023280760636616974415472485793454182344777442000055935675421602191842801086155819100772565837933880482067173144285310747085176055894744540655970031722674748032223246376352979890932835413766039476053132332968481791408779243664012598482520230922486134708190822330682412811785578401591355018538267407720414698701502358959228713854321182938388881095449957657568231373564014924669617421045265187968493105481934205603492126943660469732370879814012176904078269134270672903373415015896013226484634881995256569871514055875924553275656239610627511365319836701588267086209488441420632900355699621255422917953768690003091718466158059882341017192188411907351214019802675418161142570406913915758912848003694783741294559200242226847520321287222422621443495570710508681386214728424794015823739223924085609469529151037784107720973168579035983434486322347427168322526166951086095000385496571506218117312754907530305851933484874240772740693495351075235040106540541866527324895042141958943855768543956320043770684343382857961320526197203743747406271241635991004222353322200229804153150465070217716987844539274741898031106081367440311130371748917044673018617094575933122625096367535601753833816778262168221552153993720532120367158959274571587550595725215430802901283626436471346168275623392866561195577020911280036364604151856806116983249429055274669786781243901812749043617336020880107060983517175328475694126915764135354276943633025237676574707744997310678922264430454632160790247206502411904110953974504093916510369396897251111904086104047000517956827430806773543614763463587745244481903005180677671643854562810653225003835202289446816440568502206172275080565645855814681758297140498744148751390560599485629117035970910252193549164888259014519610165591357575393321437303978467583391326187990744627976678683413800117612458125329188832032826440066943605609612328861054329336826849221513603861205491101530691327157995876431083909298791294616427211039364404894620699397266564087885026817720592613876043743620261929965563538015734750402295678183538749225763936735982766334306566563248161762682859833915345607606465856290246257528324166804136546910459084432232629300026477947779615627305314521869484146398031625446353368326909879873662332092011499212269555823512628865808500321307318193058307709340994056758402533844041365414396492178066632252641129643402636667840559597253239186852547713325002023411429196353143820700017309508048896315936806928934170864299240447745925396444731806166046067899112847181482731715321090994321426649286802499539137738425466899137920585097945285624699465336314301321749341998576159749282571071151348657373072179400615148710575824362076832946907932028141937856074304482311938208731257405179151809911835491078443733338908534593974331331349814010546031188771585564543860123197408279183950006307072906828042561608650975867960384779609947486336997695299145640749360662625214335183275912999644836009567758145559607115203294998771276277619918819547260231767071106211271293030380940146220903291490224679655857326329584761741558518915509894061315317426816274029678300404632709286900043061177154632332055765190816829166752254758595187125809796834898574993349814824565058562822926707502077841237297723675418714581121691810896092003389581884561190035861531338832143255230979545308788181670247569897909415567358372795920703646395195710138654788243047568619698191204525205952403129307910058332136521933051614369123718317728486959739319114611943739199529019962053990160212859913138767865333024476253069351307277511547981760677238308418455764114461172789076454887072650843655861831804532521984782578111337038241530465409503086883024079087036056852041909624524912903277420052556641520417340717647690777615894154884710388173030354064733188334895726255798934596036337485562171093971380839957963967812471723495517554279940398811582194914496201725932533866815092427766860562600082585781555507930042986962828465704977887201920459332894634273489371365342521427498252862040371489835567722829406137240637176034884124179743836485930855241185147647849884340362623822882169828881704613659112387877984499547435719759604895822901796342011955983126075805016797636787462247144918185432581305486197357390349715301568331738456024762724621807369691389215349834775509914918650473934289212847379454317734820707543424484981438900634136747027892077026168928240619522286789284411244240705924495841882228479896707516131710148647537646294973962873479559140953747381588942353714780877141551162338870593234644956209269334076440573591531474553821919418423478452182200864313682031707098172234582938927943611155184922312787615852380061912397744274009659750345402495555789079281300054379040560475790182891451516257846018644473752110434288695528526229542911604417564418367930358918736094705406116257960259565984304778903994955082932728076606501160832175036499116131051212705997032407990965468672508953541357296455867762328905284310865704559628970285474738418181580769386964691151497258172534036440827178888866937080362490326857424510392281180861438883024494902985921494253686109003708210670205966569023056487619125826007363963013358866196727085892348671137111169841194247533426442079410866718120215228828714439715900200396392736564838808136771126171207904360508577207609772749262129746318833571540211990390749983222876531850188370499415747315189188808199126485539216594789497293355300413454526466360825526457760698806113891893335106857210430988438661373477032967194892076073939999492061384189602573993581110643690912111144138549708709388889276004364240346170150384124299141567155495322333821465036511990858988894594987910815648783611780579303873064256746616900597239491884480623793119928979288367941919000788577674810478722871309798287263331104571771635017811806159961317852556202262611986979249248538904000635392155201020653364377404568513898341615706055698398221812614722985520711925946646015301942658446747718542048471041025327187632507663295442661084954302235832374845931430958476558679426415469039416735556278084564614346996974053354699476260719390638658554110419994673416682946726575980526771667064309183372836738480851277946361536319533593375534599545365332685368796752136481451789707170546152940060054193516405038793291531238381234953397739675749923861899523405448226133317142188505924810306639273577056747146513969299472558528366361219129080344035667103721356868510610786976030834181929579159214170457467145173028941367665977997134232510347176316430457726866872546293711672736695857715556546118341780997216175659444784885077083127960136925269227524735152329550307087790154007484252750024703923855397211509692054004010926032530975381695677905012081132615247846817731506575956868330237953015123664108759388431481115259604545053173966464054176659866303936743099179752724709944444024965786724701038732869875983551058875270238708742787392305425318959827316585676638897196727535127449785866758612295295929490500872103960259414672681948953634028034481272788040249977441398764336837810452624177975559049090476224735554597836720255518130771692899499346242975999943306489575002165013396870071300937232713367149907378441700170488740336268564706646328517768959220414453850099108377544263291197943197374355944219273876607768633308502531352218907012343898731156711917336299713540330925717073311597802607602654832738622416010658039010576497484369610649513899182496058583745165445146096446423635179815999398213108674516522747188824172715555155789730506234167960493373782205257396764610469428654964242300391663629628742525317023050343908198771027187907160139240567164575415968640095108302313089219418976206083207948824361514532799779529811357524591167557168222829871078718172476096033525607306199944169978520762827279781867177385132692371949211901801057501960072586704401308148978563341881973115099893348816681145888521216961927367365466285712681967997941501800780748544432968945157071566244631436520798416817165045436776213714590735297076186029383496464869371514161111489550625111447023732458007074325365350358438900803514170106180262605998217491921778342989854844003861781914588408444798165181974334766288297821887770132660459539905808027499756698274260456275317687078301338623038716238234919238283702783441950781820774321400541415192227814002730949846317113497473219659833628030172557602986294902832810395241131853225060343035150266017266741651528019968012863300377913934555876285199274040280761985749315440791637118828376188722411012775599399520860821879696439840628697129455920143222193011122691714133437358523895970163263559354388191693031303258576025935380141480019130436166028848375728104245093755036010405658268497472654790462028993021501048087577027660008902007525603486423680475927972420764298020396391322240044889348192434854594170958807920665528882825607476983417105714152138527048030544193935926501774875101077413713359224351791830666445800520589948924625003972444876274436690570082470797604563863264488614753388842606964124859385564602474143407856679732493627835201105218282681093296160727564815296764930110133984537307618494212697663714311890699922079647216089602038758785101518443349707885101106483917670205058345795375050551483953203719124023091232021374154837819984419411289768130157359335610320023821177270152846251096562948993674091174703386740495177072533592989160583584076012676149783840171744517331593418555185176943823440840092291484253287811021540398017690394752688300814186622434858308323671847863642705839804587181121470078293081446896794578312425496028381796631396062465694251941331321524489176873358220100896265181857032016378860179632000347590741257876094401733023086200000379182216882014921380267438949674464604477127038339850432359411850476801296282749675127012912592706553620777301363680173406776408202791306851180192084150875339398666066732627962008046758863047272638064821202755581898916537692735993528539178108869226918835491205894312197266598899251304567972052099221173646718906592936021369006257627157813331017165527683175472993949370886814124626718889751553254509840610572931577111936684908611209510318047040231713501594802691477850798533211270512121335543512673790226699044503803152738005980104399329572084934122979536990511669899258100259987342601124188635906982940967184683205608458806785002787588589985012475337490569754096078517916454534801012901781796284479608880808053385932316758531822878175668653481442810689466233881039906333600751080611822000246391108305782550828544814621123876585798392262807785092591895124721527897139809350471914178110272742974481404145480665990190511012539301866766208311377208721224323325939949025129798569005476017216762065733362665240615681176009665000956764836442640150492501483942142616258504394555565647173029467246159897868884354697321849726783694069378336753773882650864207014382968185139360435358145528755406967634396323757778658435443401624830900436247548523601436321794271750590083019866319947371312147787837700537110425441445284815033604700959895702306101809579556825507430753053309442919125874395011512300821033351088869706292398656893960607026338142196229606236441995960138471456707485663591720756602585872658226902134639360859625159195965900998624827169886129517154354137524291285467029175405632608277286941442726060027565138790782237177108719557455772532284957148163652559396182749171813884191236266236684344116509908074852824273386308715044790781534323694413170109845679521105736163925854107756348834126977912202163715605225416096216804241525337286399753582556544280993237254878969667090322112199696733852910380258302489345628524636972596302358929779494303903535208366628861710488826979544328484059486466541244811484852078946626625791209298424344119813830727524990487086912192922449248409488129092857750168768745311294074766392544965977577140511136918684503210280143158654653817146248302721122259971404431371106712314472247297000546768310445719900355877590575471808460598187686937229904281876967421644339876007090024474978451572949868825806360607081858648586387945827727332875419790798607759352413311640098840406060856226117794854483151950958500323015353039723863443704841560116457239034216956470160833161063872624689673517432874976291166926107665583947092700449961175611817279667741984136028861688200686311886177091315254652173097974800318603059614679057331911401830699876309593904075134558124141098856337488179199019010791331022104626366619660735773288660810971491179668574301402872763825614040307760848255472231058349069795135680817833410310193655585122950529748259952975875656059802953692372515001716170957567770701464629441324206852682377578825917766701408458635665795486928961388746020200988118098601329229324428100720110386751073017562091811885355350681356926318370274630695693140310909119965893656298317743227528379090777419096965422881405868022581936860756813332040827905585159368388162657427993314046369506111957989345157147896999359097629364226658836924187265514020462173892459972949057909844210715834087323977070887602333956113601967912878367504368314025137927686457647936259308694844919283071527579059800330421453176634381120437636504442014970411410971275357629256510895738595288533628375224591284979476082168442804073159442352001578298020703091811599395508119748226698955755778674149276055852687080532099702595799114341190421151096908143844182646240829047434688087593250851978554220486735899157483525922220854765842166024238053300648131238675024679259809873775526796273060876627550831362073060377338058145890407901745956008855236918736213885450756938083548990762465565546208206684737907312401851470194105403230260142275508084977843430693173894357311239619175094759946308570742445660651439806895918395968020426642615746616594471596990900190958601373626146388161798003690343912438369918965783061632483745646606515653574415923881026261249186226706112645987408764557899788386048317208542717546315992994462693110666200221396445264609810278141637893996954565180412977897561946178609734813150588952088029310584279944803648833711004090287522661881137040547468578832996385009759223791028283290744680856934133603023692030799590137082100965322044395388078614000657493289121870365648948162121658054304487324161110236597144387030334298768921537163184232396227090006645918897593827407972458787279984562632520695589674696740203885470373260825350077873921548435597360955523260153973994705721218499877799092080579146807091450784108666975890828152720644010784578764115092586800619727652372986526877586186357500711421684750297442945668732241360227208306040838133848920853204476777613290129107991442489269058530874680776994486667972083688472743148764798995651347748944067801664491058824342855809173482766631472638643397025525675776083439702601344892695768787497038974226616165346595025854558561457087698684437954292452000666536657283297289876469196612938787083656633834598196996373517880048623876362264514343633605650449430827807522483625971279549931704020783609769827768465297860541623248259489597849637092926787915862649734375980136696413223295734795350368423638396177595873299019419281018661734315017353361406334560124507570083598328060777134333573746857200642365524407904535710623036625118910665751545422352311007730593529983402001058891465805822212312390706288163932554826148016492809066446335013425869517159495873474592256522985511204105117393298964448846820456323001362421560587191534393053419355959801500147162614000114014137985873845326165756062077717332084180449444287282345531865690051445041741775791274299791330674733307965420228651814474164976222765242711202622947012798779138168652336080688973536864689860693413443770051035724392470912692525096136133703405796942354894599318316855925503518560881681492219814319069326525809032490115575517167341821091138168708600525663482799425463825986578864132678626221839042777075797129833781345012304574075977333491607516902880878123319941551980296934185283156551042114634217367440177965738459925287463419469990028370372500653939153573115714038551757128220062908907263778754990303281754691401973450976644075087924800965727085282854022640183146139948270370594242723704976358081052411045780542719544725937352713909064876630978922455307135388891868850642335669966515595759705164791078954359944438260231123851530287755911185429252495505563480593212457433555690365642369049751318851628558453558412240842686958597699913992218842512294653770979938381884378107006684580081205983186988102986338341293533493876913876999212374602297606734448712029281778677964398322772163293358325517853803536160048632755972799896169980474889382242591505378053244064750033275156769064128613201323891876745457958150353524486856821417268019162736336813899416059803934229907141138392429743015611015571142347808352680580986947826134239031904735724316307697316948270962002495487756956441559889877243679922268051988747454519199558349732570258410888456155028493961543578049071570594172284595963463617230564927408966588210896204610786231717733501907472174758104162505990311155174360845505846298538898094874523034273224738279841665126524056462744729511825419616597363097776318235936050621734041422092095887955466543769581369021969770147797675979345310807375913456378851339181882279540382565297981449367475246202445808411404620661093456017054007036559536868881599638904254025476991789057640865227052808830841466700041418239384237988442025179843590781426074568137591424581780049727398787162882878030409828266964174454535561291014725746280689258492753269398253308726213828100638951185433275112708074501137645509408842939583070443252482321488028007971764944114692671704502261579592478890313715975770759487990817813286374290088602413530730797516020543994813368973825755958788805573397116007099277356997736710277460354795498073920380117459890861851762780668671371550491938599289282224582590577734909607787946776538294248858926745335926329720081117204789163338646949792926622639650131438527482843346893317049723495825665369996197011613258327306464152995467004158265516340814300971862530980917369862623009299554393915567364977113785164477154412873258910285510613384590586411975926065353310811990110442082301652526275412105644818933258888509826920281499298589198332011393625021923021734127026378070561269224884692789317322398615463659593241047674350721279304472809846175013640143764846268020188443712383068174652873620734987103003189400645383565955277901232624143563757827346892676313518079517709157367868002260951978769891180367871540223431411207634587132503000294332009443527344625841297445329983645795726461615028337676931359868652081095837313355022574227044776516514105868496585483181795217578620396486707832109189247981242864832774725194284311964613520698722777250952276321806695524433680008524262655524957886285274376573512392436289905514947537201774273982282584586006910652705816279729575519712696604787607328758534610860435813394638960059308900956416241989572568661179736139692980180244770135970471479155471732167425774802019574291018314431176756918166150863822683123196917171896561617587069551574201955029716571865529551959794154531211660870013556527920291639807323424936262152274668757054873598880013037194343614702084515628519059297142411989221016481787940107101207838841519437817992213603269021313656787283870685105103014283014040683286033903372971850582107627997094978055270079325926391754485331157593140235907453587540489878486254005844489312574480203515891854874695332439845850337040282999232239291498846891893763818672870826024654668375063157904468702815157523216604415845262928373269598961738715813630440172284954033818864667435281499161317606510324175770012831863228289412611949952928561825392819231409716791074114041629545777661254306440772131894366922236134676601351260433226414854174992266626013099175604638986433236174620398158246886186494047586159510869891949134503299887331920003114494038079527744812305958643526317253175823095457152423094974066345139314931369539650650025665926728275632109825822756706751444049012862028561899953848655621940893483639873130308299768383022275273159142591067696886927613242209198274452322836265643737515388257571217513036018619172918381336283085105494380797468742123608077951589433283267985880528457248748304691383606148459973122632516477369584797872428603286091018725952790243663206163135526197406559722186354604202421016435429903925333394754677417852938982375745599971722567188446920315220018490056279998859283939049028728055779067945229733985993300260535192357891324043404330304683038149236605895743249995576290813999501665217698717494784060516121579322985268398700234434093401269070255304380509796175555188633438440851938021848924315961355746277420073384853623987025486263638974081251886394474859939794669456183863032952652159216872572634312143881265760629473829111333749571956722961771269032935451090991882585400317152684437309842203190749154232178246815858703195953574250434851808430343206820806919325161204537918178976498492090603517128167075113472300620387816590892214439885269840421359733255707893899734044735626403621496016551322142107926995977674722907167553401465173453555460655309681886745538239882549458948156303300171245920629886922375597674316320253617905435176632627067186730043381494600168333573294491523174244242691746888122890473100385274290311479005929976932501416132291851397707748640377214537299410277661175956960168830918019949822579510890301153155671923048179657641788109714622897742587039499863072794536012766497161538689035983776443863687660695869221530750677804162128156565366436737942241392451297823962820919485129570572610166431071516606099427104829507529249774248197798614951100542790860949322951898202185352638572438307354744792928467124753815257170911910072868432318778114462111407036758048221300152880550088296254957985186645331708725287774724981836287299319621544870403078143026573482219446865505331121841014492614577061975881215430983379651022232221735376578625069404084978839700339571930170798253309824697012604584534777566617245144909534250698633479907032097602353083030892273014849125339729108474011204057760957652714155802445730853681923284030755680816621393371090771778965446321092089191523039833070114169899526013669677743600040350508952429078052229770871853310909661832422169779965113316153077545775663794623086800647637894159938761610878802992753896116225772876484677191214540701030194187314506941609808000487731055746330842070856506728124143666594763147220111431323426950874602549611978430974825509147763337642787637451825119256896188823671303569220780401301027668021364374890574168841599104528393250832993036122697937409374208466428275487320594824162229780370273435121881462536780702374438190076720102314041995127593123983289322005569212506445110641397491569333809229011826796047850519792041312703315579130075785927567473178342570749506743018886410168297331661360398816561718637079337747275089347632702152664157488393282181391139145406929705911749376759866101743192112317321917572369108948623308470671005316766110823961097497836619249177085591149457626267859245675223694344264836127895637580328058855768971780521318924453569517889187560773460422270029010919778094196374344298678518617382766158360243310019106438128882586818617743925142639879038182820800141729334966280232998741899686151535946872886875627176251183623758319342972335419018196610308663962945765154770287009850250908708338087813355192384774424390180365687967751766069588741964327284094086109874664653871284161385283857137810295605346723262569621616598420408991672908116480636280090480788550858833880181575390939422111407218822831833314786877013055819710704031165574523027938212207159695536840009491339769369713100759563146384109574005089815159768086790692761495643592210864652602562813207444984296467042392009047214585162392881776161020820240656298461949955165854406306901885123580616885672274666356742745384464770170948334345307554948157851422350532751192603425836151494010751720012125737453840999877703107943056480895873537190808109791795272443316253738721240784538822665657809114892194704325197901042717001332209964203387377763143582650372668950811700341449193917078292382744774818172025621265874759357189150350500368603339962767593356061017150027680920726918867166192046753337917482630978930501327501855706106857020662392535110013727239320344759685345736611808465053865741706948500236110505849127853143344579183064517340674760470385982213155172949133238466710713460096106540123050978420432317425635168185128304820273721645373473138298245373754760659256309744845298650145319637962697119162421120400568109797559918956985896386754004692214620799029113607477610880306717435371002736671065073110617228146554189608573412389545489627699396515728988887935370441996830403765454463666739245908349447041391837604003317048519488900356443678139281400281325453425389611531520499437209170075130769587776009597788378082913654084610996178696838585974455776749996594972621168402026455890216549377298103974413898568446246774439898182652995084850093695217269429031615031137455517071979813308482932328425621500458438250135022905769523251389992324920751986647686574840392676917633165524189234878187882358596754091043753301997027070414735242160576248264569928406963806893147212425126532686289127217593644780907869914169752055227343916124590527853054303771486455306019143242541096249132725747586405670047558247952007919731696318540699604984601913239347064587683217309554391241777584507570898530545357612422025610678421392880110426827057562703624422367224329084756670678239122576947826187177604202142644772127105383768733623747194564286826962976318926700423274016091638397520733398367193455742913424217139477694817801098572358877917844970995811363156009294717464062478907236692448984300934154786814838931598172823489938863503232751534209828998618992146282983250071217409589762396346939626583140758161635298233692860436209950972816408742968837466266864877943092071254900841613337702370080849920951802356291129584978689794020161562260671008881014979908974036699779251301580279868387828212673155723961220652192874328274494104704644400982391803095994451426759547727853419656211063620541712664679929932411020763457674486912628054962296796775118939648076645910562468720629690295242669688379197460754981126485138199081138188246233145786164356181467793415068051194846590924795972217000761792315848631812175988896450025501970718202704039587509449500783506294801728600521903028742896826947266256918360620532382738500211312259957779549963099089302013927995094947756304638347599360812291487946662018598896734483648431515503610373502115391168693477460183571913096564124304157347368570348917899051516421359382491222449411120450448043662143115377571436996478407831723035206613794965032313000725641520923834134113449200721946676467541622924406048149189240467922563898124750325197236847877831674895139043082585077745440247646625645477336006709978147991732813781772445816327596722482105961317824585181732650941909485615448690365406743065897088144562581584836273125908913680040649870761543133676628201740405023661425371649767950752706631317163393279096444248717103864801854689860966815907980092489127706440904455350074826608178284822791843075175771776938208211103446047735377462190669252730767385003288471535231693377484101419153604904132596727864831678153218236804115649621940510168331294097411668674696498623740748770261524779999587055501419877127573844878245399661391766378017380291361602093192797787295776640178917880656930868865327518760516211896122015326227973595666230847717707249819499000177680672017419162263348560512906011424399763287915153177192044203923081434774271399719983889627158292663233274897245567152235393785267329280134127439258630770460981098382007814762017986570744561526062790747450403406087873950709155378514148886406127196059832045274612102371215157814377677974591795920205557743472322042908888356770068675936986074052463973693283626763858558472376352620930763358262297259298835420204358894378821082377066803901702277843270138067154947474377705165718575772532411749102901240863745738291227021978748856031203097535047757105048744200996688948340254783656752070043211616509005321252085237030021236648677292035697212124217263917420907368921061870615392256657576782590977115334523251363663521078612651570269650264870758204428812851745237281790576175208768218342169569837034417889683061416008072365044481698680488746938207491375669463148703505677980515641929883589450999994465271794838420496078657926214664654805427974392156093401213126478242319547759941560270815988405262123321397812467478062722308658621599741411170623656375932764211694025078356790712569675973049347581554410233058227525317634418886733536154415528741656278430574571862581856176603270451574863171109395115238507754012689670566994720207639315595145420349754445478428590603603030175660624027222815970231261641842741287965228755710127653674718532326023289451843100205970643021770351739802804632693250851684494829345707209760454795412913763000319398015396320249075961192439165515833520872603684019658158046903252149518417815328728042182478875523584159975019585512518880117823808566957056784764701244462231376885066618108259001893310562047843120076969583742537598897075580468513066571020784209411507307377622572122509708494305042507815929755979332438604756782050228127668952196420136671164877016391742481726297967111383477580021846877693371639889463536914212823171876480554881273145844598026272057545627916342714739010865163282421954107755293444006681452728781789464039373026453169752785022571479456933918482839839690636631272524966061969988581137159202094192000534906909946832932966895308370197475243372117119312503429674333474308841489710908656588805260496128010363001296432102322880674669246393943489135790011018273151998320615260632550763536892932197989471403581831152844510939210301564492871119079856647545307537212838145216174613581317632784092201427576725403636753034455797514708568449685523326227739455548147142218272685083400251695862229475442591991044094631887595407295202587496866250714922166652664213382745437563783226236771427228461038150161127933244506070578060091748290821435010782275142091131428677988121441982403821306268316145042294024061679082576525255305600972816456482184599779844756057467149023256174716835519102434194499451595523628388505562646799403149373359892987149979756858959473970280593979543563172313884765242865346460675587780610054281249095963993861935287625068776348694554538553438569803167512975355756707114257225045104771684715261274655768256221163376239529616218859172391608192970664072143231518539001478553029829592337128846546605186905892877104930279185860822473303182800075102365026891575266634367816176531370707775299695027055090710894024885780856621213526548087504491963387412114613907162635150493746701719009998366552750422700559745295702001734169464846353192035760747566558012319411912771269577517246744486265563716497410374877433098338906505874165962048577384967829720470835941732438670533871451132550234066889228520794711517037722693649143392016052335949712593213316791972346386168999657512861532869255871766271843899349622827099621242126926763065941674956433356289678017796293055601406626579497734488074109992207856005981178613373271192582824842222507092801096980649762799911979440419418772142683481501151854307150750040705161520457513998584095771196346054955452964899612467665749019561694427925872184804972011276784401467542585702048718529754159901511940744513995785393987014140451077187984528043604928901787855406914365284138480106452614087495098158319368920985071824363191267076244861032535728335806291094111670662967842467563922120887065525207653486057164561963875282797443411512756074202784523215236796018587761274986826784202727002396521666905646212581575793892861714702684227977932317230446139157921336534338928304212418820618105485722099272048143254388117799451971354874649121454389602162492303715486377913386670531834928383500930672424466184842967968522220159617267343216468441894726604199858820549644763632256156912117466814920186680743278673442721020877574811091281966350060934449662312647594836652533454719941921920133299721683250504818845663684378887550273487655476875377685720128368251443939939191910253644585162503434669739611069347088015944961437097305343128611969589563960707169324685193091714613065832607768264511923335628508796614932758622254158845262743998253849537827183599429255735629163508165543410268736942596271914058017002984344440104640021217300824473037721390587025671157345715503304206710792965009570459086077821138884429072618257348281509496565386820161083517112245316628416301389423410730558800652097939164788245493243100135935438980948458182213516131327050717141114595283274265430945601492824272476454642068168916615744611277227063134490379408921672089900825719756651542393361076297046258217484666445500380468952007145528618115016600090544889221526843329740750128978180937467886971060437649300910734235873446262642357496392885593632438545034919504763639041701998478104766354009658745155082979660734172658810031393863335846133365162675604634505592488506479969210390193005797916548410119160224212314462641033358608248500174533361044898984049548129722526744806073753344271082763742421186709222956395638210606317501548858738593942879982434288737683907377317097843967384978110950247614659759419890547219717931616729945306193864521988704062013956807292374678091191005397471358867697552632968956501044363004091173307855887919001945837496044177810707065055414556908843305045251684962775640069295331726835231187606905342014873172000332943645688611164045715404968556056180436476476018855511254518006605192359286066858583527135173392518747492211775750844022979464690608034323460056583413467858503245799706516622781863058888263238941165325666729542740080018617549915383495741023744692369441951476101705292269274425987344224365940749094291358927299797855433048585340555887889917022587321830822134835877739056227718489437282831094295944714617514053623318171731828656733543457448858179392208686133491773218208242146011465343666998677153669103365425127544981797884904901656653952369293160158152533310528140268336371240414983346834720110116348731880828111061563149602517040393940772477517413742844192796191849744466662432220413842739146445887638914436667592209141483768683353884665839101300676799952293001746725647886274476555946134098353343626487572887370809537636987582167497473590498796761546769970081594529385689705458947947487429343840041584811367964218636917505539515931532380296327168801952898223568964142198827496413891803784416776000921746910106116444756459473899716887727057356259979421685736119720342494777098455862366015618124130873009738508409946128833253267059249837025202588960627066874701046823946473732935807239352861005291359104078876192901102259057764101683291348378062113153646909709218330584223382089240919717593450131010290717588208928644657094237672602780701221765818505468647287595095997748845355034265596784990085923886930549979285028057751518134351062200399778394496872887023822947030341333342839690736455088043965727465233781335409022207178426273397962566949132488232869837800639342787627799651778799616469608121948781128206026043696672447856702759281637962685682901735843311298133881044042403723220717396499449661431072448065909265150016846190209474442999025727692578518112848692547769061129616041588572717178755951936034602285202060633890906452747559645723700674137092663922779720910221796532127392579898529879367107286887797832170047590838362001158802730594175365384973774523841964258399748383454345232740872881061577332313481179874593647790943264163619700622574257836893870346460230520627801545701760694098166705840161359668940846983712723989413946003040231983251902016667585809057349405015286004706875218125315608539544600154528560461550653622926992268337034940592896670444477862701467237138907320881949254408052379199757557661650368996356439496270418250609977201975684619368425258853941739213659367230913398985823852350779294653729137405666468743630292897992950802849348012472434330489845529126074195546820318172498402242407695376246913204367425261584078644051602542074988854575898943716955459250273919436430755809145210486546047837066640111753172190765467802334782883377141216485696364374250772111942831626617709984875661286457803915062265720115365500793193247291734142728429097291185475375052237060243588143886373952448878657400727252962206251185487063592042080809744406561694474079389627790337694088613171241082492671214246487547709253107729407130127710437278589839706743091577935106667456313014570369018388079489133359383989995450911860709119124191366687301463314973977872975708685899332296479841672589926888188831894947567459291151805549620250785609376429840927079787492525778409277432671050707165893267302974892767244632769117437860643708934409273313326268454775796536201347084307948974878242256599548240398597972017070438125836500671703456828128893913927793567666839165553172057836618780427641777608800703651170441298651123771406151795709611609724501070094002235363705948900978398060373878055375108025092318884275560028394251572013334748576324319656522970531665795495756750001645740204920785647202638968089033117873620015172088419385872164186193622649688378138973376396016549582500292824058341050772576367412038540120315685819932600753605703273483201401470952267114171012279363150382098079995629820101567181614577746571312512195245104088211839006939808530826555648571072645500028453357749810267153606199426086387323177671044896128510303594057882589330811514639851558625750010897566776404948105807029465651575732817915599046663678872963985115800218867024174332318628090738165230651124934919250970856868880643039950680697445879818074652128648147860609069023628091322471047571849008002963987501043533247956408268934983179177549461322628427316881576002794574632328227534932392165297691481494301154337690269330395070035058132363118501601310355126007075467263356158391300238844573627137896572617020409758952090051895633055231358030784585503598910933766619094639173829491263060679123904546379329004573803839711752472362739940468401733510303845212324839071647746684582795125363927287484307665874194268221205456599402332768717409164974584523197567539483984594235197702954472108481827343375677128135432580714512926300651434378279368832797397567453298935261952942061953639161486292520823878805918975178592449016260809940466637924207526640748900918201553695655725521153029771671321954268640351052192762465558479462251032410346573485583338273255965116234173744964184687881317060929297224854567739610286383419502320082946844713330285745378814162519768021719875732777093550470900926862856966709285653287876800720897853147496335670182307207115869149729948915300660560359476717213393658118029339521758913173079284913514779200667300995063376103245439635440893345471824034292545622735611138227949994037614511854601289870346126108369078088954124124580204469650280670452348737431129058422772782608127864783791467978490326187483799795177804025818186409236968147827955862205680765994226860616366507005022000657934870063639251536626997153339327933323028923410538977563650727222315885761820604137830031490480818608079898500004234944767913885736933946505925969261405117680877479458805537543143039011663159801738637092526751389323026438697526310305509619582442503726495099511734941222548686727769371536307776245954063934486318758246581789638635443954757294580725692134437972744818067528952178505470344441806170575703566289843352887543679471495050777039049156312119826032620535167422745866356273385494123184226822075138366560274049436613400832972288180221896741151241784775748815895139440251399464649271059981763090502930236532746661403251492655523800780695077468755626818989999141046930708923805165416389591864532363437891060701913930194177489698012211066720171244593085006913940845614623420010516939815062584672425194699913363344223008530104981600574360674904057543150998262498314155682404301700152585156031041987763722693336277909881121686254881094111407612150262965586012584701185728626038584237296085477227976605042993274411786237344047501998970781769951937754700678513201187548107011631047171214221807615103142733531305280554708278758676972467649519497595576619555736054174928602513218437478718515366494388168574003129717622981974120852897481407061206634222455838427563215768555679246425873248776703725567847302551196296977235442788647516731903775634759203076067557591312756793510189150819226718331217088926200430390337307973489165009354593251302846617917386645468117022503817647370738866564292601002366240684365612090182225941510074469381114546201378946003819230607378879275391416100837156501137039184824102524776395302647800959143012497155305113152373521084661452689487154522103886613728926254460390008474806711594527417228646920182342458637702597349411991383776983838655713042576969858550878336543127473219201824058536200277920493239312227411780203305253255565759743948789776054901271781196858035745835132627311259280511090926689584649982668618430191073766752831501872514370021812667875110555213130175277082354222616400460949066966794833157700537619509053184375896229611151480949830162820302814210135150577154363909018404358544789998214108896788812523076472051151846312316387363493855923131630904487643427986744808407913661054137312038977200727991545682020546437704880036239565771557403160358995979513104361966275046745692942050551067751910464296654532905936001433433807831437902291362279697585513688219154755395461845119344064626626732551088432663533243680505711949758566153787027010987007065396418649559935113356372632436019490512943018527844024397603304958636993473250250137219567896026025697177968486832974692932896030724414219326790317877202538673718821516729481481390348098248884078477436107042966936733040986828983461087310209709415154428191612774954755584957934372133209341328746717627288050975152352244642650562289361885711362346199152390561899632303563337244659499515207728927458253930322646849106612719202397641471916047315741377660220827509096401054554457522690282683708544930516228067633695940019051374620146878756484175343537810415198061382620304834002879491136475780977194113070859903657181581725861385551034004033282244111824030850520380799634942105998236350938062406186127224678577434937668988323441939141906853055158430961999814681487011058708432223210984077003197868551214581546653610484594669817378897851684726246809144115571629446300127563026412553831927792105016678876118166141949027446142790787820317525710071208551068675945387680630899836026895352552778792449400179899615216984594445922407820271576672394881628377113800107189454517559849154809046021593447183951834388390331666335174206505298461585373654753965326699250214077123841005736758220674959696054389219336115639986837753387577618098241585612173755478762647537271804237248855000590042497255294253581518983880272123330077802367887385232982010173404161113203811053487482343156881328083442923464708569980793735331153315608798264695968826963887108905070136569882786214508781231174063894536715625247050895910741863095563715926005169564144470513085781314649852824007068148466508451339613989297400309101707975201502320672825245893533915301564297183874167628525646849844599316989171273406562524571223364122527362761770593664297033729475988590418896822024378126160151574861045274078258444986432760678355175624130803153419194744066385985808790623797057289912000447899777858193065677994084022005559499117468715248011092582003305609827657390130821526810035867615685016319803063647951630020666650937715712573012881376891626699842383627472898362831100621494055417781105177608407286314051475460374757523620175303520698986514488984143498844700533502072329379149185047388488380204633227722017099347508475975294238991855646629631671907746348025641812359527228038316423021423936485651790525968446811235799000401044051553768293208355196766612147324327057023888759338876376674363059115228612747071741711184360419356080900414566979959391103784094310640456443873759513547028358630161265218988565076338519255674376439066976598870810040024693730223040120578590584999752417567485738406789482800213016676243638477519270122455859497465098563052396291094787623284447466803455453879030537107545997698188079014215364166486017111351309400325533701334667131584199506560528329824805880552011315159476713443442348105483681390446892525723371961774378243412748134170372383802934768064655947356452351089290362510898862628320930030840854310558034288275259903989554443003533218347851257154037173922466621632601501735487769285543228697792072073368759035632156838788750704873975317099029759299651843504550132765220626356846762039772412908784569593581614322028425078397366882232238774267107543062961361082820739927423962720771896863883355901986959885801440151746969811274238674786661467254220474652174774022079386780701676822031449821259916620244737977694352461824510181091158636464156493737169231057687523439729464749228385662867080010479438071724665372649631514409274905860751051072379569436187861153359470017325403204170349944552658302059589224648245029104259575414854115777752669344123593863551804211287117402088664297178548935586427855629541494509485132134890827404046805400934512298423326773003169944896700225714301229906522384230068413042700237401542476736436900980391017698063666673181458151115125253601739478694899688750319309477609990404128584087371738756645615962608087036415803409887467267953424970274146318822272318554956143416230894059347687191199097577257497243237248652184583020844691200521648760108676325681674946165651370398044764467553720790279595869291982272087351644020531695667475034598516838797180020745794985251722982723191727682706182095657104660431171805191150518443065052318756395818116386385820179276891706988661814284485237274853780189439549451714443276031817380766616254227870210947235556316963746427965181266326081372015108097979941520854680805597636330927098674116289017093233399822669355337077253755215054539650102296574058924197658314026390258701393249874204986288266142070024332409016890120985195710128363369235337637065636426825779488036470980966892321664692290892481579234029485393418333595849555586575772009232074045036459731343038241685011550760753595837186400702805563602972992056926502650132652491368501991229659533708840161544186415510450765808968463185982815480872070160805318456309659596077113490492256058696031756155386700440681757978043322572527428309260395375605263576515139026739481852638747118057292869827915007617249395920705400659094012631147702616012912267867343398749025130733370473627827417694323041117618935750911899540543743294432864238142812979565712569207745592633920722576680822133366906790549407032134355092724817607337668875295315189684347477770820687619077441917069436971162899940274405027952367416968829960821567926195818067947787087274038735773377294753181064452851007567852270125938661228977828678840944844868029776819270892987889145086811862864767638369878278247306728076267028736881017095326509066195636790461840420661672867876558314706004322681382520899722123218059215908621841673499000953312911655608432557276936446964276943119572314622212100047496458386036616622887382816291226255576883019800856391650437327547526556246261976335699022988680116145131780157951318159337200615947245983143092910540929221388536905220481978998954751535079765313103906521696812483730160687297709107977855275112572648574799622798605547725362768677456196491217377225627082653098112871972958468652850413466153420947547072086329593081487984120440082709630968899666953973367489078256333358702651125238305762638534259475424984467063522279695464850569353493343788409332324922722883440385010558733398337632339725988623429031458624389385016920411195728688422244719848317146748768923603696648986910040760787020660659413425513019862668800648192470064319875854559866021631684793580539538213235591958061636667940722837619494920817894162814991545018600395904963700376671950909576428750282908318243451487303847469149961501261415868999417541956566940678601084153826359668745718394200406934423870803541700832716060134962176893171515824482298677245619928803436589344878696983567331780408272784662752527029511212362888671568488233163260146114221504374349952074838014608115269565701300593848599492100046447018196674449773646440389311363750491957621225684546124113053250494131355117316640226773696002465496543727911985867556311367360831307703010301778432735749680730958656986715387164652466446492976568307018998737449150424703015269909657210251601608965413727416011609879810592559989517710674265295093710116027304571952922430839898496676925968883114547653354471818147845673792731256494288201722662258744329423894815333038727026973204760799076363214572433303554135045805375091811038647535275899127537229199262073082546304288170767510854235703218954786440120488084749926741336496399301726545008401785438931682481056179486455446271605111103440846759250518000264770988840050373275974901633703603063180640728180588253872388897685078124252132708841085613266969575198337609324614213205138293215917960710126807861161576763271009033830182060000917006815000497471918295102598384320045576948776367358654034777308256900104632100707481386475398518269563171922791047248021195228334791242518608617496364243683618446646869404519117062127422905480903241943538468910775538890166888941039923390279037342724877677246651736102037852051372792987018273633138221007619552532644449448364959163775354015021420560134943286775494985069829649242600547636795123646070578924756880007400855475022679766715421195125108752261474571655405592204046949105428134518992929001881705632417758781789175177326749530727027342785682813079807123529490678082932633437985477701840261321051307110144237649223348672010369909749253684377325269320375255246194614532187906406368493988535069940762959112970098130213854128799862796895128775431729504178810521529021550135358171704834366843759500064050369669150381760467573790038052119396821665830690456627319490948210975940068789265543119807321682908372679744127388841143014919761170189538020260634285849999589880709070334662058746971537702314584634608032598393046587079890840050273245346778889622212887097905906508334380784937458928296085062180349261439888021007542696998333600076400445138502455097302322321107414516339248286827515653976771231171055950171964715518177348250277500513080024814809421426792276426402321805798159982336194002637110188986915825610984184679073886784409941337085121978824653599098474245849533958745609867745641233666473861914857668805062691499822769043163566089314636598301819286503448521414849901553842360261025655564521913045859121685985875302040234987799177735572407361146078838259035904007488022499140595458445969402199618350734600324845734482831022635384863020883691429113426344029098129269095407338659062918666387363530236130528955052694098694580073825591299210165855584763929327449564126989127960110007736039779327121991982166756324074676849809955692582092512032066538260248782017941548333270342325744413383703721822988221069987019893221540017199345267977619611683322808201769631539832437781042849211983769223322881230423041517730700392846322775805879839282035213585876682056062843974191871242730920447319889764776322898556791675437154560911111086411053961957948138044484817510989971495752058478015864798451455284441071161102461278403993734450868250638235031611755242338299638674395483540852613587990015121135404019148585010329646644136679029280738827275232645265347532124298158046156744855935535761684987528136615451530658700360661114511857164203702789699541769735502696370764027622598269180981682221599365218854344961676028761710883011705045107455172417295286688086171542629232139776805738186762051935585850437695462230398619066397565113325676834354991031770170725185510304114318627098585696983433514908077541767995786007570824228270673261438157172990420760389063556472815422917767333942121865619770360098031795905448006935293578664739264430190234439766655195015771775609003290744339563292480343703852289139324495988981539939345180369973092250140454877818081731808560921080776208071442704602560141540126099486892078022024905473678897979871849848795414232103542983478032465562402531619040993457480446274472264482172089330280592407664366617401965322676295225794157758971436058360305390466742453219411830302793191483515366811776464178356199599197231364673133376994098540674075419163111044255943215115488973748937540860463197277106647237193134576282213476998513471799314041377929506365606235402728510450320920071300477806183656648851426820397342150856788293273353966017080037552397841277928217794669193085311080816785373227065356721729560453812428655632322991856610003604075827941974183242239793471752943904480547134099637022514540715126453538016094467884756343343819454386647658595349724702755141940118243339256891917887799103507654248705704129389336184490445028798171909984278680491042132131929900738155511141705950483809364373176133238175804369666375203395064072964020744598620986912329151446187691260343238524670852116528958798656219306012692431718381656504438805332554861011323410887513714931077120569464522989752139951437418996378000961010132396782255784545680272020432307794065720696503721832752465425397707418581236838932316689896223017055038772516914089988244439601006243200206769854850595795890492702843201770615274756795226207165913409560078930104083931269763963465351756397027242326184741522881371845665637115566643312446831719876795185578734400469432238628708632145940732687174514447466444077407668188956288282989918286918126970189578314322028869635886498010168253725435833943168175749834519455045225328477871029491697320798748906445378776933493934269929932018368281753139472987182776293388582894322412867437631175830339376040696042494539067674869794291714964725240936517262873413806838091908398041402620121874707055357439283787883859778592278179113118463416714058120667821377066075812109651775900251322639314566821708850457138905642419506976188276499195891013135474329160524450395243771541876387050203675078066781406692158743104798109953485102098458881017342324819225540928616104657822863792923122219864938408429847349160997577441962617409435476888608466699933750268002261898664928740173766328194076489742687336902633553693044959466061409867483100202204303632618184895739108208846103241223217898319177437585807805633651902003736926998607699789032394499099179183570774692456296359096052766648091755015536534428245009000256769747994191660322467007909687253061653141774683677986397956604303479216159641894762511339604897810772278913059447409454268799887482981030114390052548977130851293519444841405747657051751082092158330215804517944061951021982363194768399368767381089041501587155600276950080220201429781298489469742961603152917087798892466779303328290526956990023687756127568913851053432499787811111665124072200903393541557987711830888732370328554232991054757186497332449626182844272913044152216882597200377919300810001733799140590111609691284129847097276182502480868179583036679614555779333106251795547875746337828012401987164008186751345047558325666603698188439063626770197844292694117050076233929053681570708343548605518099965422407626725232929143672649000667996173255399782459952399795435349176234153802665557116096510908301021598209916966389360352834858124004488778570808205318892287328485463833198730291210104638087474778575851317593261344300910710527499468589105258227869137792121753107414011035990605575980384730837389273112885415190978882804577570622703927147559373286274713130245302061878108840123596810579822349225344848491644261502857987939116783830379673607223596383392105380240703217573028760700506322007014645866119161181090152322412404329717093099611657843364365103668175694955701055342085944627345246828672679043579883254296971119296872096375389652155593995904173077989635254959512155001700968763870849616613469807698724121615206486371805563703798663885259582066135485637429251585888861747397904563729805674442718009912371165329535935090389068766262958603219112683441429314521005185208385956411497196410405002514291279836272916004328883230342841071221440176866859598234728918326940176332925400290956196180393696201853993664895732025586452826179660970584551996565127711849031260559798184949596794160830452287992713233760018234347320830146613553583477745031107637186742473207947231947883591669900872010490024799555641684212002831221890422236357842635901034154749881160784453043414496459150217441348307655199742658122372210129416432083054328399611827262295531405628407836057774822323910772555880068150552701392857682588996292288546610961553868289643288032651823116577340155161346238181097498413427766379211193157222380889953916222922485630351212825636429955561901961898272867410897248675840815091259486531452766878521335457400862611651136444722847528928474274730569567001772995767297931928284865832671611611982166939160289833382802201705093040457129949322013759476215600069191458779023427969726567394229050641221733389852904362589342196232555247119096474693339103241779067822918994830827054041261714523486585244042006888386356102258641271270501230455373630014308121524975619857638546189137752687480065633285885932575566289778754106325315404247882893799083395213722028580488300029873710778871840646518499954578574037783808177299789213557372447830751107136036770527362750793032439806540696949338401060461953893416339723632135689213851845233956388306221437729308337745813492429008812386502005809340778724133767343433198452068230939665464298431464694654890504802578138807167502945835829989085950035361609463928710512064033578453779012611953362768682610947975335763231298380452444194242633601579780426219071213455698439965475016039777549875321993270421757608782354389244300306673591927720571311285057112603712133397404585272687536139773128727977782780551294543879489457736784187260442794283560163100653290079904568683139353823565848646117194443073976218276978704355769045781534774189175276092266879996545024803471129483898313623720016444051424289192909586031110340361950070708835759693438143246932822196505369333411942591530762459808919276697079847879699272676256324173198806392053722269764818181863015737773224978532420598625862574576466382798578134862942443530582873870069990717196382141998585784312650763388994576933783050529157223419663848180341140940339372391634950459298600832223709940159757865660213349374799471119562624288521204808381351618863636411220331056247423616591330410672245463811222400485119617831972311308678741291095929828779017088282588480092075640104320922490116129176819329535436493340521358233160064399773336914092132397103605255872677761209096888342208889960206517835331697342596813944990564453658114688051757686127166952859136342709466438144791343729857459418918569883684687345804974044580677224801094780725694017285539336211090780749646441603777332765364118657561076653259410087478988949864816627695304806179477843242971376162442439432111751080726335440822921708556770063700585601804374807792662338578367994587375959693320174763411355178832081987737806001947871516201405263968671195463777940618499418223611270356093681959123948515030546397949452607996926900292179223944163023106950560427020181839628412886288910380036189837314326487811730998023623321437765978700060912049901052533145269741675019031880329394318262767771838436171547910607880996497178160620420294570405488310697388005312634243008210210697969793836313264608017379880015530301886821336479103350413674085115210656254300794452317714920632403973967537784694459818593280554516060569258338512646422028358039395614083998684157377391936902217409902712912679792434335583234949609412128109680497652630847677662934553234832847284647937375309537443396471925003787504584976230680477259209979414476520949196629632273091122584957936326169353744829264402513707022461381551571059249323309951538433842237536483170784372819592052739752303576333077062579751824715254473403807101834684100773087403053635739277982036090155668880768581104459011307917207816217698926664354277119844185944222849467691561965942031371780565716705316440465874203264163766109401080480685711608954355417946341596952427509941067249405739257141650621189478491737195540637608925526501551385163494078045963469711274795928950112137457420290332339859583515373674934877914902680345631031319151467991470623024095558294703052788808529925733880759816133788076336849838986591332920090766838550875061838531693983767074785119901336512335296108454078552820353152064338686651046336427153550393461549014974624894497430146254150522444667663853317396105410398609683092944461879748777549530588957092987452439080362050235154400319680146071689229901965051768220873838326844242613217227344767129042335315837930065354410779379705521711903090562397786787816242778854114353657695796910070005122320315271011563187531977798305882450507934094493984826522490828976076203744487789507105405562346910006424063969360003855512516137661689583100067440986290436523178437981336381611206038864719957591451209297529667297251135222633176000840002523618539826701553147337883239246906003601047830725495143578918667220182590614310866536823467046182397849540156744028630521182578167351510168967149729181274672122869949609457891084082507378744886511792779807552854496538027693592903291878371637069011988625018410283107543145909276312190939058642108287547031698912496167208232553033356952329797709482323495471861921360750610170020392212595754843797484303704136159863605151433269037742066892614082061947626282687554682448743530533248516074183658943500376518324273399763156776239976293118219067141486220807341199271381594809228418875144901764410141637876596426833728060715112077298149757957470098971676518607381803420063998824049358831006131274845934924927198186528011339662341237771504301966521752363378733532136814060056199377450504284269229092411701565731335718678464490473299941702217979450246814180165316512289781629732721753988854439414018943624974280851613216885975020889771480580187648263095736495756130153657784357404695262255462328994849137742884861953514873717914523982170411312133445551810013678201125183705910413223004854087235087266185622900532809161969597255923369217603312988734138253965768332307619939509021652887606147635046996046399771085685529495857003588504712224647907363279205764832848007855648531140811705420566641738802564278463911892447260802441423814919248108863270312622600045169606246071255694230465712543986385569130407276880658835837215659475155953211440283025850435367307883638963001392493368423954372897755241320420821504194479272470532463131930926582952244270748379922351658668593123038309922802733317065051283098664871872472660734823713254891511639434401247475734419338481923192712525384176819849931255619992280616411777344287415860407979474770996460162324312805607126461920377144723454673735097132918020725355429839257726116289403873047877066728093436176276969976285191544402037958082631114292180250524220382687887530284354334297046571203123402765781262138115340755814500778777774475253354079455587106325547455814623350219903288955109838555598843605997750854827274496024593667953097683114719150910074068581005509428248892881910507994104354242377347690376111872094000629093831217442069142195001897925324893170041129036697291152806045859078862603424890282488782836244474175609802261746366574405453641339159999208931576372046352005279885563088665319233284015775350226820499061762531962412682940105122835670921041711279015253067343867912871334036767606580516068902338263630211746836038054263978431341099848082445215197978522895253023432992042835538230962473244197139266212425240954248115516716081391985256641875617649937339051731788909260691710723023252749130292186908712914775377050571367362713367941582012768226582491260801503082366082148282362981042375072863729794740541278048623498370120282155149750838969003090852247503963582471566715735705575129803725806459216245345871799573774240378411378652345608782895266298780468119935388197168656547378077714159106792626453663550525208852935589157783284369300099475888335133016801333536136133396395635441586438033530405587356177177379304370674506402503007809210846028231457716517293378218560798159203128231481294216883375035323226712288819286680236496908564638686941888508727383546818967629198616990984196120552977132630471604077582389070260574926853928249448003662005306845819938470649892849686294253035763266986590751967582483447514335767857340955085614862672684448540877031315599092565800140168953360955403102458396983384365245227520650406538248125712856651403427970600667783406742311761963482560077259511847465041001054786342476533288023923705511994234668371501106926255814255156510504866946797938927144456758280283326854517102766537617034624875416354628480342013310162389283603610041561854988154878176279776822460021928177132275844160134644243782980195124146124890480383349918335832611992014188712744908045774307900226680838466544109834997399535574222042718339635591252455816420650736177073132051554235395823360824221148701628387851117819110009094217908955750126726369004182619879927936361022785598597980302070976520623704569541174107352788456611177103648885436249549721678203997086899296418637030844160311689579650657507500119660670980460961694922997321147812859236121979333688267594561185147598301494520987321320152073040346061343842854866148130515772964354495543506176426868711967496759684733757332519788764865300775312814475016790347036982963871167087101776683659883793705608284971283824364144850611146815789876428433090401099495165280570086662716148902134402429308277041026950320403697586769589142677467833155649102214750733914567932280880893418525334848641231177171733610377644241699009249719597150571369078601093163264901598024039683917301444619833777272418583168784528045093758570099431712234543939824709565067131150486907486293030422682357537230418432483525431162001527833155089001028787306640547591221922433515397066704768986069187320652272765305568026608508996763856468987114652521991802066480268984074261522704803315272423547366889444447783259745386969462299560965976761986728383886511800428533082748726922228926782333091872104681716130203519893095071125208452609499802726210440544900109319546647480261887669425607499380243623124414076660833207819466900972843366619639166395677365637509564116629442580689945635627080387329637306917959935061207590289364544733837511783045421234953497208220600439380855643572491896496533015002430354795508335765924412249736809945527379956541380043474118048949297759879602186665987915656029566534889810570255019447034543548537268949125701680799616181188027832620891664167335268079163796100296180560236238930823037895575627406719744349060837304352634896946358705952224483543207038310113889107427299565855058647280969343124759116430038048807496864007037590047481076862475751338490989813161595407777547593223257174436271795438850796622869700518021911895074192379877270221575811845026129505997280930633079333742107623431030012633427297625443774268381422316336393665024277304659451047486915134791725431832159854000406747383000228379315424097181291100522790804928430361700684268415066500085154957043999080961518124473331877687097461377289210295666567180888968703598810146914434808243929997388218357441254274310745969116010310329130993484454259019139395963254236335017442152389350238264429487888705694334036134801594345422695330787041283726134468145500411463926916414488738458237126348690409614409347766582069699610781049236427851860851936118995714651698674335806936637754476670694920123425750869902283246919487171783506233956904703543166882977197220187439578711977468173933341637461222515818429994827182357781439415372033869837793872932489378581735312858218528113234992270285162974307900441579976992409836901638338436320751281394415876817456211364722305049064142627165970310909076203725609733403230079999628603783802347166374060623840222127159059449288750213757814123401856746978807722110058360864604003898178189131399934716017461411310039856830858055485783117296775606460010925973463069460840075528784019420141925968722273467436480818498797945156162489419016815871634270740455343064476046270561531144143387423464261342266424790990644468804371031338792627483225559815478123115578505297518682779836801243281103693884879125238804229086938007776033310836487901242690041547613250415514963341568785615829172035111711319318569706109468468950200659512243145852855582467855746121382135823067982048997803075659715882331025909170000363548076062001307272087822786658099599456680058918763285037965161107853154855264009742961753524222916070600365114277780832165155524860341787998114044354053383889805910908924656239391952712476968381704438399296201097074048893096419612495509590446500591155853736231467397118142026213106161048562378122794817248536714284982195547635180866803042720990020873761364642088271124461947760383686488001289170511811166194933893330859348337391511577554370834735863563854750684253080142146463790970853808935808402866117576233690168622591769433490031218042780319760422435123494155404760195202299286779672225109570759801792589846950217150953874503299883168260638665473276927720913233817699915540936429231925174375979220306252524521539992522016412739428995533987615479190726522291916441933568590486565115830196161018354571655600022728013997296288630322337468504901430480386351327824725160540250688582491653971281142000675554166525985883597591104747985417652760127234524761475094028391652321187163724181014796539125061332430699118208758605849523027626710114959078974770381344740222954563384655303870375000348124424988122550046705683779930752628340349648903494780923682805101492366148532149402078247956658222718963051141134112363461250901706964823420857267989991928461194878024886108152832102145178325243037705079507775278786502364724471351256151708839426134913837851183763750470851972129360999100928967024249899320204774349540741448567615978803266808667446262960878923870370023333130189246665777896542876854610498397429283842334876263892854981021686754672451931133593152167124220147588639963835786456844884067075424189149835054151019548888374556228669316579961492209619853175910198960371477039542954226888455724802301503657585874203783318796468728970701590684492821810234220045074861776597687342215548545389563049152514764510548644980666078815262475136903684019415897584063710243453995264346669321571221250498188100104051379793119078043540167546224412748146139024067613179723077412319316100770740702501633434605558589740400905011584121578638974513734036529655353824704030002597354369005185028181259641947222097764900623719196237558464109001911833555443980044031414372553249220634500112279058347124232347760518542143995657917048328447100114660845646997261889543806218699464845935000799176600216140684859983300270867832864869549020497309752742578732758902695126154952908680519157262482683281998536303220294121440467129557721874833742403827218320634926587507279646810826586247716476258654444551176099762620542197072723070569098218964978278974159014077446114509620810583293353229222125745372857655495808864070157743521745123886721481389315253208938823178488818436279115321648124151335521427436577009349697951579975392014767644426422466150604651026102503563175266499884670077097157716952874885448674766893848777695183787119854700111521275033333922864243805969922420287463488665140705815594708914751479626039662070905688714732918672358778664936554972563647214354521637527976071104399590738872688712065902936131107531424999938834384206499845889152471821401213121506757557808706932181605250309198905542910044408150050876109102083671142893491502419748065617017692722186138407468317352534065006854962809511555026621078581700255466017437043203941295436755722764353952353921695082465458033317497532014962879041523085471052284088314967780532590571195395746552631382657675355967264177726065235725032300358980482575409018984502926973733165298310953601374634797375060467247015877230985626866233832443471127964235328342096109283744329969447331755420692470016145897432713342941490660742947061945645977442460310189266383528481305077364806726372454172130361724679103794877278475490805168593473819322190777036635779605127282438116757734788127132904872525629228241931301310567528458822701598541192225716071441906857520917361244791372065578793223508408527263152035869112031149237784580352414105346672334878889188315293787381853668277199227664305651187860519261223509184371848778738646467275795559201330752969722535375835773006392547925481979562743628553740175021383898848626373721823751294231984396557279165119126826927582048249183693468806420690657070114229023591411602083864016374101400648630750521433132553140790039262689784211400497226520910018337085219518303787793813220503403025074424350264564856531460081059901576698313700199453623125631219992471709385446548712824086362620543213817485206931042070766397548861061349394222249786764552462558435707300957711375489602424766985356865868484552684144302463075860115490988084726630369605346248927141811875090072685983729076664473741938522627594145334823604570801438814527081046812770813643646923154096956261308627612832111133239205237945677327954269467154558892595146603219549194939210274553804249871804300591051890343863214986453066802223845787362103405733061857310021901026142319028280025079230017569081956639342012413087404879912204685308964427903781229767368612125257360728643752018496339185446235962072766611766499147047603007767969140492322317427790362305156336465534647236560534413963691555355214306857864681079705803563053102907014962082176762857704982905051133193291834700407966369176780656396420145489089201302896429917617556822941087610907667469549194468218358112173955843786432634742588639518381952938458778002130552167171969463788801867290474162723615498699689647497470503769621700735361415374046742347401548443811901120041826159582589549607148211584576757484552666764275829782337627529005265740555450790151471782720920412252569023488041862357842370218235309696085082941401769898543279628594410142249104082001267504571287158691642011425462360142424052437217500862845350822766147438021810284428154626853995229172915173746911678028985582147603016273622526807727812724479279179912867132081120346723876033839261353708831426680415342508349665358397060661811555460002691324879928111608320906108550863653665036708134968579111705769995653597657926992907661181356870757377912527543705051608997590927608260956073790876364432826644139519615384049251220826362860926129021401206128755282174952937470489790073660209470668546621425890323809889216741022478732959136590960255892377356618389383372032214793053094129037326262795183051392987872226166988376472141601474626659852642133111578514050513861410312618441014409429682236717795030995496680853315723001470046460944575509012190234989137971619201012901602225944673208401151731731657553439128773433555864534264136367885541622860591942206431370283545528130657356999720501677930222052021599305705562747235694217862873945930208845763153648699668087579328129350526363188171594497415133421220756657633332490721091803450146183990072087367996852646892591143270636578742794947079638293397478542027476961424571607378589017869882848607684295507975466858350499345936676933940908828868875434802381522737312925996500272216893687742394493312503343677117923976941642798064991483902176058149655613984832270054212577242237807454589863209741570290443330207990904361760122493446526813583468614393909706887740569105426570866568688687740049348280873572110587252437702802021044118262834153717534168535674415994941111789538265027647657059776635100424935726614710371412838161063319729129057305155876590112604346830025904959907131522117552142029197675281609520151734946919594303785543142994530736297007583157120101541475408642737754868724402232191444227789986157772061458835734477675950855862453010352490337501486943368198298756533982625945134225607193692283589043072695107200247041650026640354254397063092993738357120332662550927275094911325034247164327369632540798507381772521567693654520157020744566729289005468837591212823676342085661719777100678826507863405429795283649127436188181309303118956506621100977567170257462169060584775045137098814801624869105664353479517471485076508940599058619353773932747710552352385858791605054601500489897282854984817216449077636484127734797774334126473589864855222627226014200942348401037543062270899608409680821423030052411577611812009230828548942044863011601019271194822166804327660517211960173214558084765191631817084882111396939370772780379875808684012554409214361224730873669199558321299787580611052846473872557510457369316646277083123093537672919865324390890443042199317242147966255019497913148925011057458463243500931468053897500303997839924078561168095339622580482642254933979565736538689118536657210952803611177684166552904013697126701031586486541187324017491361510698615783077820698549183682873215428456172743178654215361792424469116060946494900863600568030699956646292651659633764132745871440593704814686263112288500118211143562362702825646405519157200996476623818583818301340377720626743198398881405088589765018066441676826068813281969989314539654141444429425293018018222917301588637437067443219560304517461178283532040856199648963758605936386828765972323178083083597924233142396133012806317518388717651422954612969863180260025295383905445355309662783242747664721211054501308458452749707504725100496395675704206101701800451504815515997052652571527375125880482622386212775409099355180531036054272254733636348732879869037069600093044535295477076324402022025293712921362974063980274545478935688272788218211882336605507226074392393279717144356010840260061752543991543789312078276175143472217462237428383976639098302350200224346040361774095043292786689843006036989843116402645534945516863771233216115228738618899828557459823781878230640971549492379353689502557995670479754221665262401645491884622323034234950457251489285425604598969118285676274189517248369114722521566698726930397953994222163489869527272860687032658400920286372098712251288691470393461325595706626836996671672751515639447094325937011999152963546294043533869759989542210757168752974507352385707753968652695788908567853807194379122851020079758716944782038353389237072897768225941337958367655843958172334388583273181412994281732320390881424523451877435433914072855447534936822791115860687728671317915183793922830742274977915154987541022426431110156493586326760035635697821956903991431055530440268350820619072134144771449662100114502180868563683389506646963673506610452466091482879349642333507443228488377470754247352670938393366209211729657688378316715036758199649217030737776897251160412975081919671604165844797040017666165949517675893048593492151457844025306229249699607325481560068939476950429031976282027163586771922702715745679937793965492121910739789646907578661887055478988437539158569007086241981188235019126527330235767380638640478278643191496405562338349000048117048509369496307814869297349797401795864450626145014695208525319249790492794570094505264909829971255267788551820589399770717478522534671981160028758492951490821488141080728713596185607717487830863111573678285263124206070700217609962388510399767918732321628668653819122615143243140948483929072397500374939526787687531695480170262171709103235847663071797560813526642302492518024902156724724992389438059963413382437576431256865618279580084152009863812565518332278455502044925144714848850447137299237242605904767356745134423187654277965420040433413472410289574358628998264595997117507813779780092457032367878097954480916733604854777583393670068559283373051708387624728829167474565844102626926189936400644777231095070048749862278633456704303630715181668963090014549922058023786871533005581852869334039441208281032933935491276634103765975376370103140591336077626831305500717063152704153169311200225245140818053168767220923715130352911107845089163325914019014590027819106390458279306214577935743591963124959069808153778544256308825872059636718344980912003566444197484747782406006064091858322182204871757299238908290157515398238985447603750831050991506881480592249885328648115421617284984969311968825575899059283948032985565426324944755090176948804993404432499133558683497302232662637017411156906041205223458850836199719058185726629686711189646427809312903549351976401347199733426285610619654921464994351666681356973598901601708989649889507554381571006972783571812303396061596809462534742769105002084962366611094301073203708154239426974701306038921617581672496095612316780005126106039705348234457812693200817018056585922652898475948003434875417007164431180322290684131052583606498443392452993262717884888742590476513622041661983450953434369102169684962013797309044611759688307483237924477325863388715970846561519927532603048516884565815329726252221160929884238168551300179282488475954193577870012837757262392539889866570597617518842475418901505956366586183649892159894451823146554161605887504843291868550292007454437567317877194074250577123085203632594636408658945354190299808688521850049340316644042815893710362291398682946017862045273391200755753128315962259144066435423242283171172555903825835387547655701900790818519184278891916435723058805362053245446598768055726302013254835421200529680312247622156819796508395463131600288028316218976855391215334314592070081497938907524808553447112039432009420661106804251266686067465636095150556019530608480322656877141882175331940362794651080905185610580858838138751823022892293131104812323700121323483038038389809108166431437062943991045644226701815459465873946377012852213137340945191753479819178601119301865803645676080445592891183394728128640213158442571038382918745669400061286461678125007084436765480819980823531281352269072036776160481732250538937399547558207919861634200481811672510484620889987929228609415245570289869510276302807760512969831400868377735421190082383023125760676677484870121481414749069619815444303117300576030384534598207662208506885551738811777458833218531323186917951781246277485503531176081700365721715380968716436586883936470591333157942826296099115171174948775963905444906695014806317786185620426688544379788444727244632996227359480397505194222517695277727831819100317842008860637315167650014188585112277265641327493021269060126647051520015875492267086755394769093367047950133792673243831097303944437524312291047294331201156157273029010244085976178884692057516395630154963033424128407289139776051097530623555367373556148830633290076121385481346536368245359681823315323632591905588716592224821804896709228036368737462194708064806690968353729066158737848134634988647501748329903911766914904253915356456947316684161598922397364061540879470806922276663656466161128090378424262678462365338727829321762695359093833211292093502001066561610593768830549231921581244186085101826769728487249309508763714436117330592840768744692209473820876562190276569320715612767178624959695556637398053574108453831438953890492971721498522089975046691113224571690957238082152283732922051232324082978430699680187725597299727755394417079146749770282203188765795163272603596388216232836689601664842010042979375890743104623105783541805826637217400762147895401411029196477402253995410277588192748632465903328042396755684955692593561184296473083182298102447368570883036603139426424922059198848005378983746067704851475006452430083768353713597695868428902929946522061946637676474923264194054496508327583222800844647319851575286808885275563548381387961071623347489352072107662982935379060260316478775629818859725056446768724244874603300541797741567598237227624025994880914665019484898714561765006737789627066419545874180291038473706325393068428992454619250693065940670140024874794926460153306808620527240002213503465978689607136628376694602015139428473539984803768613920552633093808074561794639071398948194042102138563841631303470568451974006556077285526203317419158771261202589806355346794777665144188737997200027414637800042348019141280227256905802317828431289436064136280498943576655678048130005178638317011250214621311669536086288809043870082979137069007948884174706770621368469542132385131357477450634722623583803717013062186343782558284359431655594530870383054277880131865537183597994184771612356473050511459893548228574376239595086754039131185165271787484232331550872121652625404487075966956254206522101417021198740474987015497398248414489614180956530988483784598795942692346845701419934512624103323087265418303445113429759586459006683922353722169110899887708093389784523288898137280398950607661975132117245365542517254286917837007250214156490477282305253672724207969915655571326599879341543867725386650905354059880005370508238047533870589435725030727172113362130523704358236719792529701626009305093339024641219677949720502009565036359957549880762166766611229891366588194132143048862487123875586283629818048018353195244365450406881947029996407765360678502260605711141003451082971138136849053027941115857903531135910538778252716556639881460278816481013023666657118616670876357357047239350580172292999522347742451314796088477802844649553879267845723524298551608334088904525809658895144610766580983953959330395129802477655691873106643219827884202742474172506909715269840801083784106313535758992951934048833894080816421441154259237274164420634069586511196446866420741012657661618676583239967029284683198546396584882200120920644990280479216308774893562086261118465434689560476455035760381591639042632324468041422008488536515799933036106437529574305589106675388283520189089131494827655949668778023864096648096521912564303632201873450051724832323224019899743528234082537390057932831974195715549411231532360314107338426883826363250197305972252367914120051752996630030366149093981395887358405145130129696389102455418950541674171083356287284844442593569046220201103591914444447982900434957647519563419438169921443499552272032225802063349690175414742115268228437533859084453250324180685509460073905142646951613555036772148120621633074269723628993648119754716825964414726703933208652515551798617486787748516251995470324474280807311680942314680647345038673329137502891327305697741014058423408460185465576660343600770077489702226239774041786208171570729136721850541943145360754084853358632246946467798212261451695305777164656953354102118343349434299774324358425080069989829937682393869377287061925095242359910101725646183693254332731144825544627169254442921989716195048273220736646110922248498630780302709714783710762943927926589974013944158205555175156409107826465089333649159009421388247710483236258047970901955776312441217343743855023360948192866430003447975560391911056948442654037991333631872451412922056967423448673833006512415403902406251767730581377110845104027380435117074806728259624190467985520729451634305580069424917561062353181284673490350688904387179490892282699008394687221147188774380945340874851722119443687365787626337808903199946609324395462189085780998276148974917263653389086398157453520704460211208636790394463704420264159792080397179210723830719018956643024380141436020406740690356772816689547275831630788856629361572567284643793285132348959171191686336098203728470917880062720763835566716441635815264910556188069291238647268073337280493212784599493456707208953409437211751292856790049861730151280781281315527342869583403991305982802965054039992353736828624359319960929508017015366845146015286512743315693948394994570745024110358464769119112322399722850236382445629186772177093581266668647775782361039137785542401121088897842381373712881225068717858270255634196112970392871725994948390417288312020743173540484909459935731993314008418908372224508298843163259024780710250612339614743835365660310238208833498437995040872188712274401767347469529510854165791761880604248362847327018062701543138200894016171175659352172024631430736328130299963582312817202645077594487766988207560966782525546511002922424423258315641447522677007527410461709981276325668764585131835263108968544010673344518482313460568531877269406885627091009478423616095444207744720289403606236452651406233699936749161901883464615227778973054535265228696974252414082791328432938012515492472154386485648997837905194939312322390887414107982279465227706921548796688004877575785352131406281850115788703770601128468351582458167808861272081747114952625282886518012303816807503888097762177792560748141930007191619664901150271204469994995628753544471451716571943178385055953430654860772445034963458934510106903729288684868574061091856902787564932372669213278579092561957693119054495634668117817154608114645998005305394602081659868680913758217626478510238466659852828239892064204971180543168124731699267149674901868879826588494109376239769086262183503143314522041620832241688732006547671250004159343605528209034997849578390540509401429568845851870224432161037954100200053566418611564084317498795812844733140353341508423617088227914863512381912643184157152405064175194632942258436456099885900210998241262653120626678933262560876048812638122528715975261166590913448689775162934739923640525610409545133007678489351666532195600729338268653543734212099609024613957048571910257524427251630160342601415567528150136030994330101750826002787182850020020076622788652373204254341047432712817409135521169829731183838162666442030779397844328679230428147692254652928316324241573336592195735912895704710927134605041718765962414837120749298085261250726065900947520795389224194851259494247953223142675973832501847072251046483389787052584501155234380579130885951791535957029947518449626806387730675447538562511058911026939795155613034123275034986564345580642083804881347515177946140756768517418345416288058509208360286904101217336149599939675838617983183491332893432320123914057111993491825199420034088430489850089502523582515391968314515603709685907125262889040929140819676603136991303305483398750485177316105114540193389404867058070603165553149310480667673618588283621728493738069834925420199719205563795686289766266777740802224543258184145320746982843166438958390057564136936889736519923948568069174389527343690248234359516560991227208991526037499892404126192474128397416249416864877551294391207398056229846033811063941715467211911072453939887804958457358825276134618634747652694149547739735061777909265627366996410217229597090696787462346257143913035782735663333436853457922711310419435514010642858538191683886245052637745337874896409341425783584735802660543276215858181447347526702789100440075623182633043421280387265767488551660593052248639760443541068788261294543853755220425719046839398613732177790120694884157967333379332948291675306429920603600028068734602705457707606796828365168952952309935433161596202164548792508163628091626976516923103273239974774216266787602180373602012553477235182856620171037020239458357461566950980248539690182487363742639556142407050223082088680938386878749004314022396351632768876180592080517532196134764968566646460737650000735628722465398953698634124590357651930142287180825999281028516396390403644457127833003224575831044996330677213482207930124453846577486444750518717588303042966946199797751782003544745155101234753190128966476627273195667106398588717149964070338399152726818910209895621300162574302594589009457188961183946947537449228654870312614881745220552958491250063132658595430190149987374828816110660729257001388305689976457741549353443065359370684213301705413802602190317684695334636449395406603503020338252167134414180400025449750944491898593962645124473640067890570453847501558382181051249125088246366728524941606609285641181647304665280201510311277069444252014124537827122805815921102158307571651404019231044456106423501644941236620898046846288742569147299546778436931101145116908000733521667656317925946514339877445360682306911781385790802175401988081106933403210774697292624998820649533989534628446497316786371459198055631680320823132898624241659716974648883679964267049549495332536514091929919417517963629226813098532773593940245750769160028969573331803577752592913104233708463186788112936464388338202309743156194059946869132877674418185863555318490837516200939128951763927874955363989521329651574598616409917381966017120424864834505727243200157335824473614857803913647222136702161129800116922970928740448666092514459804218175225567082294714406836567607411890000443406627688775230519774241822298653663803827226777669868008782406474339001929140198499589192953363902385553938266667409291991589838358751946966971061676886313957528496502379481340963591783797037881735334132014391040195943312684878748009059555343596012450388261036242673168385045530802524041876533516776499855132089849752793468359231754674139219837159534091059851959090109849940461891540842100381586869641495158379185566195601481671021562358141015400774843661718027735729802792421540446851779912200380906273524413965584020272120051554608085884620839779779356665156107676041139880166619654947468828177688095924027768619217667961260882883506956099550935454011691467255274006467421584268306285715941805990076967311514901469937303515684282116701441640823628628653072525543977759652731764572176798566195202415553895719575103145476474521330450879989595248812669631906246761096232911011475750765164430277569155850460404524675971106887562331560710837215919770116595024739505919509501258948824766172758616138681302736946541018888575424735517550963954282700854439268329823113273143531630371115684729538993241596654011770624974384868733620771611408128394422712833995606535707772300514074084273626673706257097076727649129559024282185579011990841660411180889863129390910229679766161266694002224428677148431179277601495306217997823878737890781785122299663788990585120072517775950207160969452967573562545409693704843469950947661356848218599779643758985896424637374311071661701993691159885695705615864169738486092048902426958712027643818304896174243258685444893956544341193397303478572176900085162529181889368233554677888347332566413869538984686757947461622833818453193980864284744393869531084462813635381256839567671343264465530819457953390737692245517184930461038963224675853224943072415843185796435177987055558325565726958165502656124198986608345545561041214951357050654060783284376831129980470269535095211698012713230406251223823996487740192166637047973478412820971582199164271431010143237988538960757275815974562883173115707314606261111865843479263887602268188392647791953338237754407734919110362255417120463306892283943637799879330970111860477440234746342105315964325758463310754885746586730886077331779937017575289582432824535770389459910242190240014319965152290267035480664577826634694600102998831432662814334282330773221326686423536310433608579056862366422463757118949698615195748043284410761398937063076623664725357211915937199858466893506804963201892593168108740693646160481553298386144189823764566192996298756143687745948511073753734975032589781925523509932319361550995436411744580886161148327371978724558101827367554117478662663527883896416686339714756752648266416159124254449816942020088591887251106257684897385533369972014249573359452028921448891214844177084142351418157642627414780120429821965186595389304142556680840447177844744828259073277292603704891777873050840432202181205288090474422082138041064158747979769378856485114494269146282946745688035263346074426674069096499210125709673293021661373473077627358718929936565698961526230273479851674592381781031012823618620867511979573425773903097758328031991392220958438835053533004277059301164885198675007928994015555805529965314523969260099716794540642402739960826960988054107388541278309975055484247701028318851832553335641327752163688194198840167966982297151427144570592981210018347366408132224042451770710137067492278502998319834274745655199051612678840059384792474874263262768688679020945748294913472185980904606786326450683706808777936630487303688550222888655813439737328090377932843691736297806206759562846302917304757710166489734690134450943304951160778778731794800168643820142561037555814613556447242014194956573598715915669247204596928085772657900574485847013869168688244027223264886767342691790405889548915302554125249274240807738428993659972945721912858404162517589956740337519341676815642449622700833725775341912514196833999512252490511107231276954936251617326910595029047301921876028850829566650496137208441079408355099051627270405644903350191803147340236498845847153747193504905072057289043898768327493665369529792282198353232113682999018108385129893071099874509406062125096268386823437120399443965686220015613521468318297382620279344333720063742417476968692000242242808730999173096919918593841896024305451720884135130337348571392332997696520181711496507324670463639550487079160032059015455210576491200233446078750207658696388120613444701934647070064044851796789502751291262284095646387600235035340479981044759948950923117760899300032193486862405308502280771497790390984180136146838483776422718111380815521701743709606801251682726756630693570965928535116250314861741245918930372771508350469051033117198493963202915992395405047349311376008572426540070808929452480900121541730526020200258799218016899277045083328706181322306931484498731774477404905419568575496527571294310957309054336787289050591777242908739622499416822007701051109238541012400543038839784474205195184597912077699750052111959618570761519426426890321339549365205689993446084504562255178518199299612030941477558307472560046941504966002728633935523953033054801730907330554109636304267645139410274087524615103099238951925737460551672029638879681338060488601973645961766355752838428951551920170313107824373769437137830270146840359071183103480987002826869541503394727187298880495900559035589436409739315685827549831726233063566277790259391579955393926304215852395050837729204874145806078335754837987651407344262667885489770461006955691825218555398843945839124767697483874383940499811218870796431479859626212337560532731340293279266766896589641098650705656194009643030341559689544299836842534538572320315789130871741268860735981517194047485812259495967006911732750621071404700439142927705845631373261752463585763291220555219709678296718359767589893935873432649651552723687906668162538977781339155599422746105093900541465920491663102559990037071259194670969874144523912140259053632531873779790710147974414607335612355453888636440860095345165086264448004077433215290250168120686471011932828291776579594951079362602923323336874890963532909573400523826157353994495674901046591970796563682408351199689396991797701637256326374065804038508012785310563820587189278496340271330151416868028100393835854038231545054820976603996490108032453450761012235742120332261018400277304118137576292675012896308194806709081805828569848239548418792011340502070788825730162600861018104474723811874248579775654326488165450218758567900838189617970778854373169296709825708318307708599443253919885552777144323130322511777405911259965516463122295584355732804473636725329867616503492496650920200663968847921733193012585205529666665420379699744004986604420910551670095822139177962807111992841497815874684273957087608578234741663291303770722342194941074225907069413100388232172497484254830190474653858388600745885005465970517622083493100975267555238776799067665638123631261932318549158554399119171303026899653394479601728896484856291996384912978291729575184987827476267274945230264865356972533158385999663334993551155017622875938229612917930101751052692462379842585479060252414621294410584292906795237975474961075067602443200838454934582377364553592189709320276150947689378987143871781555711102215164728823653935879898929620868377081837158253788652371385317943820167175866210587163137290434014758579744825783501492202261963332751295358445298980104526342671366282042106029853878713774915913484569083285181739949747185898532810069057856941401035791872979316381335474924166182456440488929575005632400444373915535316730120228594429752834883489623596216028004524704107138104468729571203953344078959671326203306477122475994647384096029039709513252370854530552273786752775771530553440991147683671183595019142128746865239634736674557340255124438031163495524092489996862125508832710003555591847365454000978924913458988276678948295477269974782428400708098770673571681434066698115848950254361641931463313013761540364267543721770701660875738615204838260965215895408383445018420709135679473735121114701961585990428255617899095861642057831064727370520999061799099045420524844275649882945119936095805751265290914931422362888504339660179536335158231566322060533572646777603233984765350480964704803889588929361669980225809242632645857790076510646425185461261333482756983787859351047746467069312537447323119052981302706778423627757106958826828591863654413087287571957560796610693363522826415569104159289114978192961954465733291399918150904643202671257679205422736667211677503545732018388632816055503822620301705480890118674406782307337065069747339605845541161560111002266314104652210066213753905586398577229630701210634697712591562904635432943804587756159000779902171730271746292456271085276799923583204361734551592896983154673977589787665958583442207149906875330866227978665860084984712227905363893023855170978065639131172914904580770919869343967667795441469484733463683257043901628632584001663067672812273633337496108550904514982215627602723108351175800052337059044150963548908600491231462964975461107663193982044177096795996281724246797795456950879958616298570233418717951365043275013202468752558699412890622632855953444959883352956652422572032173812328451000202813068293195724759167773371272625663322568507900489192726525892979046979937423612756899928738813518302625748388809979235239372051574937484096308373180995608972222899552108597027416136460521310610049145208005567918947065421504493422144670955311992452432476766936410583033747062327730117810506678964517409038293827270417150243817865784048010314845860651830251598712223872600661843603583655725411059440013015578801763084044823926788615124098846321487056101508290431603553777234169875695415865244408354497422055411505982596386586091073766313942350995439164802502413796856762211198275096148499859481770231800228914132437482931416931385191123840048659146646052021475477179410397648697178169901581803125997407170056140111962637950103220409982942433192118272221057986591604053275273702119000401611878787594158183397711361201986672591967719179957572074008451971233256712426474528189335626540921025887747239955827943084570797417541323019346478511390166814834692490487044816113474919708350724174483422402993531286681155751447190383580574906110176678942482481246146395603482865976740180954614664464040562048544757776251986245887416082070343387752089426489689065397052818542930523468192291219887571684932455423925323078257554669288678439116057236558070335508370811279702045814129088411741805730824935860474000855707681447020919512143706627451610991311274252576283096823708458801272108090301040097863424082977802178174147825371007609814648427832721729761538080772104246700609069232902770846226284980734995885709657456560936694328309850325255119558558228719873984056131216329427578806961861168762667371328909074661554909582466096930552169595209404780713787601137520368581304050934341362414203606873868895988560362202202607539220303918136370541959523330908561603322040717558827161671784300981586104753776830026963697245906271070589971925076856033509352172251586997354106349252281535806828265298285553803453999189558069123871845663546690782300242163021620781154187473073160008437264166265038518127097463622908164659253862122039934445879009988365328028767586909256454953173935697886755623103919022147546546944204846441673805609028817554421872404263877822648650086190412837557982676704728157854476566147049014563964510318759884245108362675411539530531825232633346244363204507758892291980103099547993307060278020611439310678554942465765159597322657995584440203941704459062878331281130573826299079957453904890788848643659439968614688786716433195444526678411236442190802517630698890928759915553559725291830688898645457171869382286270032919460442131898958955324506548608310252405025748548137455160463587516700482046630796904455452515938298161977849348221946017444492763850510945387255406676994394204709921626176136485948078013503554449261356690322164125185253120664690029950401718267706923298194352808138729161396967165686235986375661582385862607736638197009994786600142526596837989749959007256221120994140398568280188159003497257401232342155323140738406338259523249385992444025625857059550511637698675949843496531370668884636774654223600097654773482846072195022624225415732297981611591012817280436797058577604808159597617984646783449958594112915615832594593823690831407530937161139130442393388414408779671822775919949825079122227460350087328307957904282151353186987008188499438837566068448024651697750024352112630394445710153983808244876254459594353819142055246107113393495031874135162018663808504348357254706963301759520141670725900779463268437882093710490157022849269878126559961279693564270162664210209628058459024359680674436095636779216498423127284498053509466811157639542639579842026523520769315063405182529533558450986297963691740030455792655217504299579281805629226140262995110747383432010631594853509559228379821486438409835991139841158759893052970152493159735387457647276368561470928630763868021183417156520711899571791613597381683830432578782555747128951003565185865257797829296106488486977593981523006115675389788304233373861533139976546026058395203176950843763849470080013282053635290391512962998796782188271608925542886547039242605491300402313400860266107520163379092609870359923389929800050799867943079435832012615211400685777939075483197490069873060699929773749569362958994406680779497947794826360807970488890598910981513085543525512372381444634649901425497512153351129711128658322922594005993984461487074954650992044177700453054525289729152772359318957779090539237946342331593584234431629241786245660363703624895441295063875060107517959780019562435856704824877853318431024768664863697736435667281847254185313001293510109575203041048509625201833178134628850197280053368467074067489727913710724300769818626339189963781851549460316345169759637116379485232053329714882921259567511628171448268457876760173481098825647792479089579371122488572229351921234041079927970571018140733966434603700250205210856426575920513664883830791190729292076930102740099365215430944436144852132592890965208127720495379639038540300184822379540131776975591037128428766097152325520081188983716352396034605957523474651142922704430800044364951986411174809701997645884186952581697081182283861770646027320190956207212436783726952296299161701116802711298667612572876873745815319866044806025961198265036804470285293342422663268435505054205681203607365218828218626164842641504140821790601817718804133898497261598383173617699793773373732337746775265854476338606733333621700925142420005688306679085772032962958204130120815354423122831702201354854145433679323464107326073294937037247285270219027685883287177778193623592546571567989451899326151386125295952063608565954955744933302707084516066199298748832208417335316789063001286011860794918361472397191798197035651321958418796281527758493168494762281830822147816396426854211995513442997557627250044785783557969814330779084866705484967930976511108526406425198675737053418181566278747916624043204432161924842397074930560961429095822529528029119834507426090671824370656936922105624262502772706326001618978239469409905185381869461515177156428118845458639128102596589743193454783537117500583307877051286577203467979771866110898025971223465429933830821163380239322854958318231455748193704452943008004814479259401520944411062512177723304743483128474792698628964638573980707123385777960948673445655958980306141671891047147890615147135155104392555597261899789311115834924339336941409075144245218264439907047486439787416343126181921441614037224712583057005599741713524275678453836593650589189424097884132791656898759066017206689546586114307947784275029101164538646575074707614866254938796051590944193202300209949900345288078783327335747824988723702140089413128686407671764708135566529835806079207986685870364370036314480269388436791578967360567942408970613315992124306436913438511276388794087728871415409642634849650092054740026817665928616959416043755328048812365339209327795475916692036953918771217796547160120841086235893704328036613789919934040318348358710523219906962292045601198279610189456124078280306002055980403376599302400293379385375713038100539500729580734827288890274538455243701001110248871644002844990409718493619687350300902048604303985483665742947966140281796041012571222827989873335895231000755533127305283646195315398587877802965176530768499020727774505276465668185749464071582296019882734742391937483078182114740658661548450835341270337513037790829611691340437020972791539891836970138830014742621188946596262057809019177647528686494546796116285425554483070426050567995837159165255638666201582202057976275153701395103197953896910971070748880808400891198322207390934376189798932396928596898867564194612001574545552383663331259614058340285319088199299897135909061922896603045693120818557740844502882882958153621096499038426316362161776121864506802446412309956437882965165814826501594951441867282967067680996657408865727502288582092974839175092804196962656036080500733647048200124745243981004624768985748890782797697142056117639593583076162584321948197163143988820400483149363735952206031889012024926596016593883526048683116744956136340768888546451063440069748023969998074819685382966474563620544898507247588687368192242483486827861279672104113150769501883725508598286539657634291890027412050079835474797835916355861824396325770665795305452515373309407732084997474584082382647087446666427154046223345704163532945205472738664159396453795309949198364179575539932618396606378066553657169300913142815607691701591829758377084039631333166251588036020349686325533510207098286634373988849974511983683993625606819482847834394358621622576461366680400026426886626770461745311193652927033665407236728113873445676036798190343589602644567707353758915269392353119128936325533556201519805471587526701091756852311567908604630744679761816014673552863903389470748491830799590495593250964081610330705270663093654545862270750244841821050303906110456497865769311576630624107897042124208333536375119078983936631212372145350042814723948125473457617382777932862080217098339525094780913967832152335054490753131203809453925748323669415610254701604002829296765152479071865525269974340643017242830913992916604661393102808392965550056467392574061501100583606091936743875158036883996091118884016407430436385510048080367576356386576683045753227559606749305551116340940533785694845618781011681448625838707033947058355345268083933621016249904388359085741699554965225810429874647759694094125053791785275087454356754217036780539117263044698702965517591935923548156837188109305417226596719155369619337709862725773399099603456509003558927788600017755420162569264242949840741370012642236647846113291509046721011589408548460779328666437828465869748246127687674657505929950281155464492221970028320055120176593865131138481284343528919651528725407699404129706086752329475859969745691623940846327685281373606950118706924959309640160232199370352762594637084019068417341727843255532152788239696970435017053812109229780246635626890756092819298145078357444264442402788352581965978510889351550762874875347260993194850892369630518172393591370991917337242541633632509430676156431094846612407033515152959758240943585885063548546855359076679168817101346738906938151725189671660902066730755672935934679358252395929100793384906271945853251749913170056131091508338542991768528706757595375648663407212703950150801377517246674174395370483387930974068787600015770407614153145995854366471448645720545548136247609531563419634066221566059108849997936689271434987746948935920957660989847421850882378645075281244388563892442417563513482568400164422039420781808042115768010256247697773364333739630650958504628742272301258367493175573242305361874137213466900013723364327759769630337424876521362562216442092414920855492575431283389197985718342889394825122939201429171899573607535593176032219169450888621457944749786287814506239899025755445882311880369861316745622604829113330811048125419253507922736244232055305267753247170655329159660228522967125397493480745711627472617612180695684965679436365199752314595578091451811394851599199481017366240512812268105483092257017903533551541766030402028596217709079567437477443864737654224652498354350068528743834661199293616050073879929512420788680336717902051271926589154618040682839881357680005371416500066262881127352733939362625834117662935599523051265130896592617212392112111262201213707429143258507790824103181621006917833184371807596034899464512925984247819111715303414562807985345050276086036856377417418216680358230875889493794616299598364017615615775549997519667379661666692035545615227378364043445240049949087402581791140629071418416307414544484640476630010292818662226333990398396582428968009198871350627013868178213062483145043392000893223829168211619418518254416135441665249354752736897127150059628516221349700475248552349087761417568382787654697816443546609748419630991670400430884924266850011961563660553585983040569292103753676546236204128969934925351529385515115677952201826824392355751596325402872335751628348451655425441419153972387176740287826026487279243028771340819915852964412847250034408689365818294203882121988423012947907331496274804718697577908514412711041311901620321207177341136738230725317897553405101422688160882466175298060835424858170501897949869946136536611822100553218887863771836928509378283713703452527016453301189927999049661334480329417895822492094461940035420458643369548680179608194314728989407184248726371158530501692974481971934825640082030494020442044034634604512768419583979575711620371429899741404996303816274398311455691936886117218167996579205497156394154992373444925107951238514001719675955068589490784599181968212334412166411513277661973599413144488665354962233684655398900246041810363503019378133234660747508143331887175053794049010345379848865608670693422672700460281415567788735486888920872665955509650070636313649566743302577539067712175817386314059410265051267001003549686731325150499311360933892216487860776568554842522489351533176842361037619498949955419222124597189833187813158633914610649624170287542619708785354234399187693937508708844541621371949118848438619264736542250105017722276703285413537941266664876288706672411319181948520165455765413173406957938436456700846482825719035600887924495560900210790109259475384195637507494241828385982236634377175418577823848429438611082924479652772027608799657316962245282687015728993644027438162708082495439957111800496913925619611544621325782055804641769657932087445368310811142937817025431543720572544310452602658839599305470225148166911067479290313662604094650630522174493419985380241820887713713220516236455045002183670732929284101776529565932741809211146285752561723409541588125842070452167877600681220150990229013247432876803193066027782011165950837852037255216173069702278170082164515288323210582839908666959942931954417863314749387117971388662116819823612383207608975482621892929542493190012217654625841196779676163761982261920482957798540389842241584876881470216894139323668857418403891513406544713710795951733691090028623383860462501865714973597194841957973615299277949608348737810488096773356893249941128249136949144886524719193638714171333325878888956094583699363393656590815304299106870223601656851645787255001445544656664176531644197332663326458430819007547532946317796595205725240291582639717260953956539589483172539189884542753810652022173277170495751749982650330914901854252217264900116082054887446170548629033681319568746217573475382697777100861265407403927259208958673060748685455489528264263021808763443969197927831892278848410232401270537952257592158995593241119447993810589357086168467366746271720016747965005879378972977452334933441334914103678355271336254450062876539358957291969361089968459250951609083630353593738731297832009356924969315715106353963159073508429408454843784984762899580607885639727476710070601585006804730871057492415675929154197851502516088811019722123954743133900031643720623276442770587722293281937882754692941959806501357879486018139609440356963416830699037202642191449192270137024898977569075411636870255808405116253713718351335942521120586073452833230586840977850405799765165204850299672182765848039703122115598178841552980289327611346466505706387399768387509854571296111157529687187107612621350560389735281819746450370272019094950709277590801071091975592316865900784942067219282050182967724463288341050200341927165099190098225612520061245561366773400591256217986982852886396483737058118455906075439710293324009830095252729813738173832338320865117690613514330104793681222396936338785403354665486256588045694456753344247248731292999081923250712196198625127238815333124613265998638342934238708186332037163396571735719285026160660100797247492543525818794472686538582005178031992913258045533800967117701243810106445478349385598652773586623736538267648241628850578324897851060946837229462443526366848467042983721239669484433760453580806374791102472174574406321219173073799091380247347505565579216211716853233106816279826649153955519701183871706850551428596928495184867528966981189625616587988048443363811738284695821586241562411605240543952707043325705089516888203827738102677302366501117852272111130874282433421000333990375559046764803861304942177036018419737526293504538604206273200035947072034308541819850473211905104753665888302609087986954371093142596473830722537462272413489911814972226932989656016608224105138812113448388038574007768714857528223409321250128795011454442551615592978283908493158876651915542562423145412850132468146862062635080336939295445718116516298862905230482616454770463556017419025339960935862952653182987449682945799903052730891176518722484966545071336663544604307959600603929893328932631336900238678894042751407550209885334756033830094967998314559062534441400728099486016080748638769911310001843275953101590771082010126013272527223094196314953806258788138107153566480082673169638515010647863485724465787827593808246978970122259149161660936930283267542267174597511862861621756079221615554241565561516706994164836008260113715133956453009987224235788633250863895186690488839545008418227989090735058604431721653670857305661657827014592804241216001909703810801955935602809513413047362341699114760098940012454746724394763664824676803238888746879707793684283717031522889499424536026212102832536482128995538351244222521778676092622370509116953324425598409353225071383811083498568645756922797588044240762324887515938618285959009380986482875903111385853852978480808957504507623731982864516267969866373369796590595827356713093419024016363375321207242906063416093434570113946030133948522633052693534613457231946199110945519519000525114072762387038179154760633220284374303494297144448631751452028553776108456958837456986715337960503690893333824543396305818223687495275146038318068173242346277712806642334731512791322523801332333177686764026543487422465004567943622004226570258748451254153626262457550079192440506874348418925675714812545357802277825233817801125712923530570802469710759575504595496377797865123052535061105934288181627393964257079287660229830919540646360244205720138193386375678481335592664531117003622269199925247483672328172908202996009874461660630583107031671940092535524218755065301837171068977259926895995426636054383690595029235482844980155865846880040495587806438622587902716707857544128428227482390263920553070015565410412077694328001574256755886252502718470928468251900621761302611419071631930161169237499031543663504277001209596038763080122445051222107561824621309971690190849780670581243793836762192444066964698022802583872932080428555177395062359026017415194551162924140726650651654446778471916791332138261693551819468616869180859874828784088558320512455892710700094476495175876923731884371588778403920267051320069588294236260612761707158185543674608059818704345950891737990002748668701897938280114612000735599250731543909000581641907942343795742950185607814333912245789490856422575219055167630458202397518800725088322156246185964859502725612983952729088794873303992189803626819874156415693189290958467680570079477394059496371451499541345131118602802390360348079958921854897121966085264996006003438928673082621359984971981077716761211055575234629390553215598312011260411806963028273465114405978716634655693726269340935541626729075825554207209572166011406240109820149516161444135546719480996270290735438628370221445504766296992702343699392675166134828834228084502769032233467699825481152234110625917868954633833077121295272494766192564805550625511411499315147627283972433558379771536945290285730804233988813781616980471096067414299406049088834040910143164559903788180752818315987217762142121134599848460489301663351634216851102714666856043629093256227445221613752030203528275288925087741259286732396505975980217100210182913582239960512147570945870377420444531381369616852216818608604687261511765779987816106570609607745745625049882032765515782051814932960312396227686095279069598506108410063431536494501753857189806884576898204408724676319116154563475206027675728348103466536795289443147512384076459612991372589541500322638178836367438054764118403940385346793962478248578384525183895553868375974846700032064870775872472526272127782063714870463249177279890755343938885085582647107665646846760508493951593285746775160937288018681182007798435887721604033270321533411407890663642809072135365591754314808762148043003799935347990689877413254465966016809217364791866758888409783667975036417756177468998612749559001540013978716361980975929308242614640007334199271854577012392081547021907663526872131127063263119720773442491843170814383163006413764847033667938774160156099506215069340726584907421209061927130456055513124963347796523782912831263084122938968618028685672788800324867177461110851035573816862654962021904391171780378126571414498913312144487902029814234369397357834499408932632201568327061278237177945378934234054788408932746720088093504239168625705105368345389902879068322499172326195049372927855850918139666565565073733623114690825951693000946159741694958541723735621236311217880869262748353763224305368453699958063321524294583991540443950857367172408476147877791002522509018661049261135604421337255420353729513200772594751011739336429487660897549266860672956181323799380475526002059037181314912913914711798162712155825220961656060400172593832639352288121010697683552588772378078932817298961877725311588419567055838677146835161384643830270943408864548107652840616619850752905876987677967883636416956801787367055797220168512467773116336507355813800284141811241039849909641013993532330411143433087701342049696012179823779757652939932260222814550808331492218328310434766247157793835775535925305228278229460204971028872843394922865197762127414460808170743675306360448151180489407073092124811922696732182411213246036310857821803495183124054520813704937833725601737514979849199364413111327534601634887263780070778753218766968327400748661051339512137543771509825404843128840410601431149145180045869418917683086298442308486315453222353468586057711342143197054846178090144810687574938963193144220748218947903738098101511054335368419089387332078386438007036644366589610853736694238633098063977232660632189351363010714678916824321689479988369037288813803410480318501809279923013846091891398330025683561501320905094073093002640346841781653719022474516183087348456093389114021374917617320789295091961405553276805193386856801193776111123673198349894189108645048177141230799335557348532489808746946471929556292224227491146752806087692784399401346141310681779428019890275143385806558222100662895062455552571396055118650372889350165766853537212129018382461696913066732947823760755883072766064874876190417255388020532206872017604706296016583756874365342016052481728544921797815530792690888261198284197852513201222838485895371668167428525505957743830080475073445804386820550005486894784123604973736199836805347185623564679306259494598317097407078366301651824937825048168302388337407285287718476132916161012376362019859021596209379428590041623316430929328605886976219579111932196399637734323592335508001267131305737830906397648985835740650499055366323870738762563378298334955574212559017278213316032670913443165348491137481874573324910215804956057934650078197986254846624779348920135178429038013649542579170827237560468402549821445507376783540516039488968702062450093044154072363292249409413801109470411749248119761062506299739305619706657039330548463807694698972445090968211135943663917630702359758211563064321341313659885900710094945054418539000064583648802870644990706619300940268598786214971175453273858569791705809670920304252481694143326210408764812412642318755208852148398992439369402217933798380047800964688273728022857290992820212300701426450031206853618302189113903709686960065447513734782671199904077848297722898264504926958728050381538584263101752282655107531070835912758579492893952455585089711326792701625582685465684814262323004724015977369058146349737654346231004445357118192827171179701164649732646994344817328430726980452086182949605449831752957092868386789381191550543068907858866546946435724097011005663413376546327055628918671285409144284940314759734380381471534269717087536929154926059424371842825563128469430226051478459210436231947007002198090548181080712156633677914663380790458884547107028033774664757285695672550020959666181038810764996476542064884840444380913495760519530196162583161472005991889547249258795231874774551100336859876476637801189567290997677805254891507089329153325612283008704248013693903518153985097137123956291341472124615878634297160319507234764379453416017688086876133886063223726704926970323334243053837697746979423431429950727640303543722929497531087925815225297654120524687343558125903585499203026522943348829931064236273412852148884036299534168647181152546547578013874404642576720773036874381599170659910187066934670352209189205412143594889481611462664673392293620420020512880972953385683387688620094936851243239144314345623198946068585457160283890561086944106038336741028212912914082411112797187149433871037432540352942412462419774464817906342228269194409693866829402083366407988269492067072232241806033159490551866722769282566113756763053534637593814842597312072504299731404487307270568913357907351762952540197244721297529432217838168254988940003000939935948656172026644371567371147858625344747123482969209861706784131439883393256387111513357749775185184462167379545870141285733650349701330406118440665129528874761274895294568170193181723781331997182814655564103297934251168928601338185611159878821314647816098113376141378214643470773171224408110582700899823330198282906856815832593955815812353567787573795132352033314326672755901443826373293721108597016787346668236055687421153963535275304484972017245291152276627752725257881737421696678365374769457196597831750315259721521273576736337998658803133169017568374662916488727734505698099840916802348918998907263525865538331886812840939208327866011959793422643829348367091194319820475442872048730908305935525296556077974243202735127179830141562790537638088709135054117329881526660663728867508711451566906344156381849818614717886321239395692624438508614145236244004383368476398593381746045990192376691590017739636297578946546964165263442612188329773115056152286638294458121687143124421963704834974307138393300948249444675100377767094751191209778037796266769067374640593644415360703657192915172204785163135111970350935933749250926766673289457012039131032741331520155092078451481778524549696668884178769550810222063940480365250863312036435344600448890556112954895960713469401341338614604877146273672500638308443018138725541740913588460981768717120882186215538843503553204419851558728895470506015355919697584829468708844718663783912853658641450736987077430130641668880437053950229395065605326621321155943951338013889878059530444512863636784732860398917054469306599181222445608204566768924417781096374039939430664755455854869920194325241340266550007571803146670547831940229848757831748737515306195321603989856926676104081551938784819069444357131649489412628614879182370924137464096478318617058195545957605434525315665348740049724728649866632441047446320970228943171029495701577571555299662680374845302279869272244918501440718598514504589989923908348956961325440252680603974162899953114933091356394781174452191031910194786191967484815903387485531895259429601498706602178337309252913404353946581137600857664954535405462356111118192542162788415026472483090031718229935361495063845030975486952187058527474271749197717312455621982204941859256049719532756923417323899332818509168510055249641197545629227140741932996359162299884490682909456968593394034960746724781085980459567451556471925090786451923192633313109411440437544697191976901722674413782329115530809731997027238555443059218905981176385886636417758224551529135674574275625148407741806688818782037193912575624439226749463292782815187165647957640532353202489027722683707814662458323749357703719730320176806603695126500101283811592691124107652289625012501434773786862110671987041111369073231767665603884679080023209239952662042462652249712473937087374738089967257304166472299356821265989508662364664689107407128618642358260216569061975721760781517739233747394564139718533664139164263521594038830839427149123589745413082267295250383854401088651097311454383311561392039681764335208528568895615659476869346332311682635173609593976256328027189728877794045421037329356190045763705828719678332953634293748087481178901341975093378210888994201597478547905280414397624307652743780801457639580288396926257679535565331890507516852831264486295361982714177394736509184663853875270138293480114769731742846866172019122582352332597313235519398999810185126898434568363609434104630474868645614062433618830444995562007447506174221264808984850433754082635136988214142024543451716562273044989772290645737906104923687879121424012357053390723973529907061716065780621472158684741914865042012434199476463345969619409412844748254061545220007819055304651512868015676236133961392333128849036167859312566647096294299485496395317192513495019023742337611017227077605696374291690997427358663658181463418230861535147201327180343327715714625330257197182283831490922017430554423892798449293737171173505535667079308941854653618069955464446193355823028546591137144283233426493969824131051421970944602381697664840462346010587318862517357898205805441294781672467634420036549428794745403241487002434430914601526068384857952930760556244955216953111303860080645869043426300027589266577402634555850617397035773403050595796287042920453041603892110239700951966438743967164050287020291503983873263507703963901719488070085629471391892343456671289913506435658272382110082924861034856847976445130219748994082911789900825589732241694697334688879460015204171698417904200500916953469877720822844178686301540630318992834673541006415112719959260814475591054498511015921601837073745104313661932462705938283328982689789702450763880202821592314628957810232656350493559500067776642318166303357101882244125941874052521563936661049914435032272071270934822421211196368784817849546246997078111839121434839936031346066603294827454393299332190053023216474090461737607233109289549889568311169934793213125653886310390564781464071713496048770914811877436335140451225555361528591372004268292986766698982190695681442165222172261691741310568539358776373093826525589072383549593069145331263167005093540633413535003189374066212801542030184208776768700272968676811001368652644683219154446339226271343544946724880552918708609871318330764875120724469692386216735183982873639989134154999347243678031452207317853101845857814172360958765673050825383405664957295783934282264118623271369986068045300286034501854818578238873644938968734449277172370752416131140749828156529108802322609203340697980095848929864328581881544805469016857116536740717484481890399945396913761731317779422823540581276880451096157119936521921827781211826667601967699545940179109241305045985682554268011582987225950741023064980427500946991604995769076803768998097275971926432908121575114014632218984234688720730756050354874028339161451617345837025354718647875275541419808816449744724072444298447016054251486573108369771826766067378235887342017406384208446001399582744969822978132662247787890271873244763215830783363369053961572182744440924220040654876811178539742713415365631446222884730414410256855308482817833651719034176419617313671086297697255431479532606036152379038827109763949439853994620442031582274043734618098345155973580168868537267890966232405901687417849036986536737255041956632013795207228006058248632487747696848499637511227391146406633189920827328834103095965488400133384119708323761736930210308956125894128260580418728762815908225986204578943367128483202095823039599150156021052306039210250222447189971128475257299395484921395737914263731443762370854703009722351116475373619460045258951040453311328031576138568428402546628555913415526628278090432377513943362008821724624646620528751850624916724884597629798480295337692989498585243321310077822448482469460117103245442368697323223941970560557890383507265367317609093759712303696554832607186615333177210742916222297423380911618892481220874920059593884922352369846848709351906662630923872029043271412363432374860427391695949062704834215163529839900008652551467922652887138924108529991185853272068965234744041488239565337468002293040369293447286271792419329714682702837484881973519634350001986556684005184799404875143463173491186926959621925228432506856297123377107089157684563660258222830364610698279570808401193217326863070835585554455815888385141573763311146395504503149047704515940679933180493937932359940517087836955301569268538338151977845071371181363002083252486170156570631031832152462588510467863187014834954335422662822174288588078530673012278854247703459526738239027916489855654028219132085447579612543274464779720486001909005220677847603197524256940537262340499924591941743579706027812507052124287795222580164051846072614361540917281857193952362774093016695296099491092663396521832256131438243012738119958479949004424032745049968660557747932993315418397028513910045336466124189991456398356384070497026805416671830067497095041129487866225218368446731439236043155936276275470096593558668517517426826184185531233775984894769972626412369020506776705018832534183716210276126225784372660622102832578998881170045124075842813736984989021390417880840067301094250990418347892713389088643952448874371501269067878286708244253329380255798456224355654443951334339138346515260925329087158851920987984377472942803560639297531370461105619680698447706114530584869931645650225962999789484475304998154453653658993817406752709357538113170271200123025703444530206993993721110798101110535654510470600972737831605369794459754211471409922158539315272741465652573509845298361109518511218024935202921278431154593168677166013662697133872348457047200995087953377441263180659724188750999776342816143519695833969928358432755674293417474849962101923689174325832054332786342668038195902198957460016119383170753610216927975665984676220272880462954954978156795983033264226373579996711828131873386842679243398316649962471668133955170596412805519651789276974277481521543027187110420111994177043763591171277563059130828305498442935145191600350130892507082466518890177516411863295439353429991492750131684873955393708259477362321682549713775371367764233448911332549361535240659930398399502664565396851001159401496139418076551317155923301978034164796345293875644270494346173493745684888293123476628978366221186089704734789660442498721263608893812545438114058729275532598481261717286032904626943979191445421105549941332488008217329154073791511639568290057001389836500615829659014452574748501332239598579529690966919584671550498773238617858574039437487553003524939465359922098233436273938282931381071998840538083155472543215992578635415168532570277710811067139989741732609985032380291230010038622789479466320858541512208420262840146542405760169096650873632295568435932960802479423846771667835851580051643066465405798423393730720303450997587807064201675045033623013746506545341299016387301985459275417489201906482931629129273842865883313265374467435894902586154937127736208866116709219785754349997738398303530368944202995641072190438928282348476486577390256952690685878320495814035982215025739636597817848640171184631199094660731555335520501549537642949684705873374723699708238991553885931354778279340544870963301865713901756402097702632684086226690421661886706582785926048260129353181430571191022872016860890538225864223846139194808240486265393086576461886936713048801103408738194969184040126791912840316215517382890808104358922520611905985180128841165866402136641220966744949429485702979853742727301638557218682864064466698394986926620851111665687472184863413804431914556113217458203733562088752734682839489606318191825526094587025796658589544122782283570569693319784292349735976195308805850831307025036481858154724037794601433934247094668936217784236633281184967416677068453572100065206914338247795904871011252265253962237615516430031906916779287692500655393143431459862731643130080388827400114279916107644666618470786789381036475035564391103365702393930209389606389290449490017416296991336738204109767737202828978542874410787368247033632608570124187008469394730806798006528865194358444002884613878327973139468596050383524069163236094774855452542787006735963659107660091574931465280626183620547887492884139431812664051077611812678331742424333267632288576077999395048893667108799655378399753858734261117004863776458310804261085972871146904550319927944240075993471632533091630675951600303210882993193708708994052561272435915943047643522045535280299074415192012106191695334623670603343239498883843687191031367048146333862755999152547434209475581173894879614974255714265234074227941392736874775942413509998597369501377052633085116225246546022711400711893408894270519928582353542656771893578103950600790884061419979296151243163061281537064734459501734980571713465858495461231885851148617355464682722203800430155067093375049966577996870005823488843675527727089395254236840762831220029494721719913170360284999753930997283078155892395045455561591581248389323631990158184890017652518935381297251068125112500170892357760023971601911747891940824357500179771463048055494881904638535817433531743003213983182993429202537614704956498910110890665621062041115184305660356971380288466430526347971907451069941703936593804301985214077291699411427390110341367302533129579492733770906194482366217255990518985041100768736554399897614823574428066182623502647614830327697972635130919593808590185415009346834039144845406507627586823304947618291859259419812779000487371343577587457825179781605297660867560543072418345995570319813253935823131347746309766544699313702029649573399160510146945697634051709478889898691273389569938486625031581793092619158238204917962074210709003242305676214968078082904399634112307112694156116563722185798986166112379271084318102184018972085259209100254518474903658326653496042006343621393033082587530693773542616648189349875651508250555180412761054720141372432606616553643793647457157428162907175725141880876919307745968781101588346285738560624402008512829525721966971449364099256165493037449106947432797278650194442680765378153289028568979739406155029302787185325487345961097413672897760987015385925849963255763199276471093915481370497213704185254193891559559452362111747671916776508117659561431234484333773430743437984490090452699624630927154112257261540893626322994777729306756270152776181335286750486425678059189206582402102514409168867668496199147343929697492004809224330669908659109531012341965023237172921764412737742731025699427339260270157436820031449868198244829351637446380875439096652106956520132772827452253307676959639089959188026765680778514389197905051315313363172710291903224349225124394582613968636481055027066792352178902294517219977831831566791684442737565912149522816249937451455870868305100313218551623000415683249127293229166312823519284038291927845184369254749161946607127699644636676052650823021337501888088230457552114207158205136892068365984658496396626017407268733746075115856088374095967373225951455383887653679171092157667143898933870440209891239444867139649526279301866636588757630811076094867463184962536386077602706644955069056251207201240811512961404209647845479930363477700123025038970192034178128567016431290844873941877522546595913193683011626134200902919108273805722008459105817176060285368509692064212668699982057816340846850373781704348186130108412955594915342966862418058142603784841382675795727925524778717151910427115069652078408439398905743164761691691478556336004527994196681645388072638245951201263599123141948504348689198788661798022093724381312861439385632371074785235270079230643660948736057366130023756790886415723708207721120731343417021093640361352697079187538973601721715085133717355140159839613281355817436963275117567883686170503142906013144309070010470345035019294635167520657301847372987870722082055163661514546979274478105244784994078909235047561348145459417723675248196929991887683491329723477405824945850152763863082684283438977084152930406091730115571517826166874170152615294783897128323417491858643825248930210069304936821032093243964352575138569046349656066938730336785397450453997406764540745545763087690386725721208816771663892490745959671832227567027143747987571833370583016480101600480847219968113476003239164037594037444307573151219920204555538212370887083644884719044689686826330003884321835633742451506705264218010727766228801535988541287019420805551814925461630137883239796357452826569092930507512861518712494440766592298135369366753124691286853140838787035152653630736956822069480856765357576874278598813685017841771004080285215015385933674054925865678729752260853369594303264781575648435279799841123202284190952939852978834655568802242035511204746199651258893565627169677992161410744707419504324887927023280413448192181708265544144447094980111221554188612733556512169143457145605103157156897229112850099591040890943381358532951901048379430807126281467649721491597112024061262333651790302532896882665703241780149113623904921252551270195230126529850006944018889727185383742516630468000471102256648577287663030188568236843810151765198283420668481023048836107852122400986868526755830420324919713355517218854974459807393598789210988325096466685960991668840305917794532019663204881388214768871494303440125689918514631808360149613026223516260885795505323810386748556970130460030933546467868679336369950371618245899121255150000197082233917486489337729190881801514994738455204169618250351809954527784425196204406350480659438925449600376887139065418632090213103253616361992860467563016195895634519312548897542945100828473640098500555167097844659154855710669667952330876007008416557151318067278022462435892777464810247633752746426578838515556182659662670874462822389191229656220692406999190452431061336812506459873309715128954871920223392324805388850972039130576370751509829932810153492312628398389499875294500108932459952796377651882123194819779403437100432050711422864746744421083613789273751857665325736475164879645176267049121708258279797319719389835475948662890510306923446162415865834501896590571797382156197196892188179577236829156588055498456526207132851679995084852815119558042221191926939456130377989961663872390421654705507523517410483855605061135508131182328784287058296546494659504663455254404704221086878537213124682663955738410744642600994209996722133150170889187488910556754549543060678087640077230614766188277132073428957085388365234074445106137787359686697135217974361493870252139382419549688120321959952471829782272465796904964042840181064575896391868886664685245918037653502219631870907472564747161369577238514914881108730286019957477439893153969982701747361044637673669241756495508731316627453626208017098112467346296529044367666000731286205619557726515015781837315456617963211960869464591734100986543547650127218914910581156544683648510897193917658590471320930102337833548739432265179007751965371376522557651246181779887380892018474879586539701561111003402186758832230657155612803574386738072619584995967666397749011046007600197279429619152582593356227803894386303777576434310284523861466123024933915736602974476214954729022527774205902276559106610865045248264772936396641204715249205049085825278925117089174363200814466620977725835775493281810216420269680852642035354284000544264478371445328781585918117068454068882596634688242898573550166546596283594919116279742522141380846080336009588356017427508263295854389449133803117465369295203657953436105665115016519852454138483987376338572061719473552163993349270083458091817236814647457494975481767074865723280015425136018609642994072830963214774301433384584234248870596047279913459873168411367341534571471780830862001648919608330913889654419357058820639707940507999158859633183173017588089037318220765362900975472944124105079996145548300134338183549434908533945154925028606938578026318680921121433700178470598514460600387848040952948412175367963632453977554451118568673910486079722036711488820445913890894250777926560275960688783332463947366426067520656306685595870462388403716683698182193304764944823213015072691727505180013657064701059942003867323363365576190548567313637996002513359356676203843778747368506347121921319414978026532972392332351409360538605665919747702578681760993820338232299200976618392753576251991192216365176721435403677788836619345688394416488361059608853465155302496144369055992179452282226632065660249773023023318878292099881845213371914716700146832607750620154411817480090973271482298515241156541684076914706729692654827041142951439860244693835204962586646873370986445363750785222983239042639843329812269149888991080856368012762016171012058369172192789773429563923106086888297538624622138892407901447903627823755001829734127725306951257711405437248777711445808162400294153387377811686238174693394774395469364845673400052183869105431619086483765768292107590082231332291806823447366921717826055901867004709638129963460687071556081387079562175695309694671007485127342316377745242705850692607052037976066007813546895015868832137061398788533632967099323594269709600479708626279173788456527217071594211345302421170914655459121168957703508974728465683664855251560802513795115820535742506924476886806080656009510228286891499500117691257451386499147847952977899508701467496407531987708100209133517362596085020502328367932035996071518308762041890937299938406748753582010106745315986421276426809971181102440583240629461299073162933115414057802298674213940417264000849943907771006804603274201597688139138890592942038133906147110343597977533164644652647991101314848576458299577676535458584305221208251888396466315069259940906879962567336320328481359147198573500350716071318415467122805816106170264966517310254437105954936282375415959168147430383670809210681784859319282227535559698638081368191255005048412005348554644831085031622373297675159677312751808386904239973423399885708664095187168047150420269239485354884007420943425575202724900109247950005936667635182779608917864753310162258695243599703365671400818192633350381740633229671590260388501390904152023409471892290149257414917700815633939803882623413470765532602684510406407196874630675046640737975249958534666888183865187679574001135529670235839917147164755470138943426195517655590076666017612040162568229836865820609452005857229089741820639563500418919767936181113134045872183877601231168166881007081514555092084467727598776504641710201720644456630158277507080922602923789807589130377147465294931040240986538988201898472935691918703054194396801476111231233247761972009208517491004008790728146419442882059057005952511072875365896052857598733901408943146009640843657801233903302185201932058123829652770370949933526435499129079908885146548041790497045254120290025337251113187357153175973628359914176758664713338255268034715422525889676484293468335563669836023311272924058891359613485427036392212674228797457716351675182335659975983099338839456859998427770281070038893655034391420541286790746110236984585077165590804284753948095246496656461418435432191691648281725599476200599130288689131704361474116245642584806357162652446359674353189707870448589442279486214379460751246416577919494446996984190223436789138275521095959988971986105884458705945079067864421401254950163111480075684970981457313090693119017205466285586345065741171947522502092042216370970349305968427617313847606792422757093852491200750082924145394734568996362819408299201150098641913629667613683912460218936549513356903191488991998585671913077034461356513540020259006755711216084564313894325853868027961485192549607465298553121680622209775800283673192805735313594901874847635841700747167797821757245391437317212997904650431531701816147283129648402841181965681219411924287471993547679170436019699858386138232235609198738209386285189626635845028193107246761909130607588942435931543395301565009550857526034595877341698739311679530835263388549451765428325891015459173609159686024995219997167042430244552751658803779150703164399887361419912663189414446557702865037232596371062877454093253944015890454388708917597156502973099118825586654206453115053881081816212931684154947174596804142069578835655443873137200655531018329766113928130358923643190246644907848226199893136116322166230465862116642174790088546818715114870857489809176178841328891273738962665638134887366779098821269034218399042316824779252139407811041843609467993808731167293521529732960979086446867883757009090495826597832291759219768541856247866942972553691687138711452454481955322359274143152330769584291472781568518617555917627741697646258340353165176668796062926948682977613919165633259315321729900470537537971854713459754122996268826295440742853761178559498172271363370618629790781348461926306280875889268414588653774438728252907835109257066307542915999772050712269732268465981315208456996636828987866016445645739764799729969869126557314575066535199942888374056268517079776954347538691675762228493691870785617654023374609432566183504447458187885692414595038517327455189741525621196202157690915373471610853261857223138379360160292416043718976425574709064162966301449548651229892620556048594265459280051619443944953295919253821559138605886669542386817039964536255301338345660972243932643416201686676232882999494075344884410386785181692576297274141621378428390135198214105032894240208232544546822771990203362568305185948621453124505231661220783273912112798512096419928161877635902049027343785600305342196183779594825644744647917204640609951542438328285074133016121774955164210516834009526174161023929355593294653661044223564852958927543236079801570078532291705727623724092300470829372154188182429090454408040679120800177919891338998635028704446542487089551709189279163548822482389697258565268032096034277788164630199795833206119630927390503960361911656949740901862849689812748060497823798947117227933537316765997797837703052965566227985527435221187556229383455838620036888605142333612487248000961013680838176829640791964192970153704830091316948253163805925103183520477622026927755513250884041645866155055318845272473672506934432467108958504749296699871111495592379068421892697640399872501300770821790835878758914783872948693265729131018009871644021566789602754224447589148398125202298246435400353873804110871879175120778509315469479292538792670279591798981061859375176628840373216966031295134951660953342288367081580571202471257201492810486405373499837555898082638688590921715020039882777784587571847966234756385285201438682778617543653036042997796585814792260410957564930774187516955008616015286800824648110837404216607718468923082514160237337717765529566212438152212311962570352707764185891470691493783555788826113332897765654644194429324096908647641678961612522997223356566263698274785068413495166901167437109641601374810508274541324548428990689766547976335602536652652011764374818945844043974518481579643503857437318444584990473581832802800255309861892249038286164163827142013581181175451398910719781079558062055037729249480526111015366759788609949444035308785428882929735675508880622994750163619160156517588760747995050669687483932047114610824025377605021406729591150561768257787486134684522120113857018672174898876517872465715466352945104600894932334169100968312483678808694249608939200799808851846142528959599842274906435718054190319205439012245283956551687919245520847930362276126834984421149485655355241347963759236271940397667853283235900990990528979024816319564333829971196374839635824708773984861577271157585823634660049586470302560473930234737206710418542641582418214648813410948128262868009392881171177618847484989393032440602030889301428872332896340465823868343356234490601180921464657667193657902985161849987097363679585038506391806942121537763188114878816621745893478765117841025776792380439330308094598396168705671768181870973230488113343124634453810850890816094696201830442475973917641505243123659734574631160177055697211188634207213848599997769013594473543311025657213115384617421962891558003915887360817686579085344732350833047362630466045138719194970951493399598083007177741159000253574678139509592857248725217850750214936455644417111343155031256596106304430864787145642954550202371890648611684590651865584154031395560650321947337072549958442008039551057825533085546678305687585216116977121910806989211194717295852131790993544412262336239882256516350122426581190426036364137925622100363609395199043335822972990937910237047623372573008111449116861132064828617176322814973357798425055015597840193560245326516431279515159279079035185245291204935407430888236582555124420489077980837506401526236882114365315690343989788326138215822012851398695267371550907925294500005915601346202579790577764988180216850964178132036111752693273642812839565912654280331457078363150133035851342841663366845591039349446172631571529571541741067843969297631531060067921494257984054697380994686134946639142128832144604052007360918063782334841773321881904688463749819535431819324485767977134966311870055859377151949700671874965435142611216923055391212500070327380203312220692354893316846019513444942610313202863966086091048592997533832198507693879310598192503366137405730677499889701629298595339978416712950301431090722076680073147587045409284966487824918407348322731776418456620144990668087140896856926090636773720071836381125476060745948716994248952182984196855836351379453231726488580846493186446932353364067919084302247249428311007334312705856468080247750091402917090416608109831812088029220608467120494809426368968948090043094949590567245851352697057811906820616990851415490557416333041989598684752603354076441409293717921419682199368545864626014721023519855924934227194772707436538346073058860770708165030497373777502490004409343668247468253116910140863018679031704940076802337621480013413128825253687210241609352526272369253347235217505631942749730845167503940817939326554405981022117365247583692107523134958034605628377510741808350383965789473788016065992429500222929712976918641775627717603559253654275690985989671473181339056050093873695456481018269319180541054011992478015180648128704801670946182234632794912257227018036095974210464240859836953177642998470900982378080663264783931381532798464489313751546884445690208253455273225908667683958888326433781600099161778950263519561911045671036025411526793525240747865359032071186118107421355136093577787415341330787064877419710211440167817218148740658721624505684904445630225297936331270654973859271742161542995802346599221112524773019453670320776048786807168537906304753536622553808409620328289890370879344258931641855073508001376710123248669984096102198340649468406294999105347284207225658504110210695408028595144560197393851488272863746962635889563696121568506097784998611919581746449347013115260336229570133012091067215074905101653049497286440919849491879260716709367011577375395154153580454920819261208614103765482837532243766234394900155160232948419557790862165809833373121257581209394641638218882616159555415528567853078591229979492928611533864173007793764929836427926133989372410949967070728963916084460038008879188138213262468757461313284083823537012004379173879864277194340339925399585002504029863180984203472832166590087613716039580654886804262640768504830807820245429610310955399843593292470200271133561029864348813878826853166825975575717312070861523473553429624405304383594947154399785508051951844956833581900520019092372921057354893117263986115969316172048310526846336638537332839796266755409305205279505359257518042535030652356810298532235893951391914336572536076226119370335597597787881442415355347181840951649600335854291795391857889894022283466707367965512282225313747457358687549074198021535935213763739529935993681200280454386663051341735871451645531650546924904389588550689264158444673510901983264566515446538776027253661994824213614945677230294439766377426724340052309495942586278479510772667581423095866240273761232736401268077126716678363697756409164081770572488470221021022838547511939627044557410599249989405735661193916437396999912362560412572730622147169942550029212777365687949647389298768797492408641651462202399662995515049077639696568580861237123893545647649337190233868299534718345670433252130141700205587226122620725944468451864012371560749825884394085061625344998037798844629618277270645771301247040639965362168502140606027880209574327081532086763035402324450032044310513939383845694764079970511376417894403314217081133986801933223285351482848980517169682582105510418109262345672025832103587709167578837456494146330456528144481798119307405906846909459496115327848796472839291103086145654066574218825827418320831845206977199649635036857362890591983861129360294150379345210585620147783421023018135739041868291328691713022536623923717682354730256751467503923873233788477252896019622240872724539506246040591886318748119178257446315185662961444416149168914432112751199341011538522072598686680744583492282463685382473577378755902143105990521335739670339469338517188883559859265702436896533367163939328852837914472575588415497245824286128384747609155183220672347784249249510519274982399982294824098174909954796480478623424469551286120588432938467713317486854895404249037887403393670004373605500712242326061828701915341733683147472032149963678585125221519224472771640476331128466687845086818327271100476193748198771516981186200474150039133862364660650454552235095884686569052758655897579663285484101970585374846519292457447181978752977836225230345830912264804116901974146134625294585081157181610537526903620430810286430551457453557316986812974870299009728196288551582476482174480164707398402833051633581951429123636623580232972953980374726254467167616204742447512250413187251975958611120898890763785626778008152888714061814984839365695546720970352807871517023566724853273990585751072944975336121563270189452807313453499129031356746686514634401004064203654971769242670793015092894693561782549898395421470101269057792081257293356696705594241914542769884402447014659583921656410209629220516847094372933330457396889520355804248457250422675507186038970641892814924264331650454746201274217566907501604062570233868911761394438180980706661702517424240051502709894764500854807079542275261078525469098347135248346860013016371133425661293865550462241308852087806205601201602450467182118487852075677451237228080315210307421330816261971990813091293065873503807114665119170374858040119299589320309392081864931688465069345518813391906002895207735382629574004352660009148955134424048919132555191095686334491714037423345562087239970315918359995145366460976247603568702019519625740843085680683543537558036590361171933839097036990545368911847239155289487424106573223430798611405801965215065540870113183399023640382404387273792955690667242490292849285706352887902238797417512232683563572178744701590307061874143074717030241657751459831008089356205609979931335609373197562106742428888074703607769872142268660107646345677736779210672032478521723162413982088252191404716461974473787937245882315645217885712638393117579602747279524659445427243617625474761386099538953029103212463992515303552918757047789098667050024072895023753989017781392496847081819840975078741473567105732172399259510708319180828605595251753219308123474599557329203461404835872424773100479044257594349578647357831841699573657537396683866991599196615385871188415882514492800332890139588197462819172802671800412034111799341263482055674907736238143923113135955621711259547014367181169596139511072000902740792800378257393382209117214249226251518131999020993717624441991424763932363268946014105681566349597660114425059767159988002617350295173718915925902079088026635983156124967751437267395613164829682336190191566183902497278478092073554476256303167097885062749805256578670042446972584504008428348251822823809876506716213903451990827128609258675005182706774758512426342844797440958874044817127568314257248332879675742779827803229462120475720706431231857610471681446178065599018288041105690790909913439743584555928091285243445655301657461565222912892533986992985207983704774770526249574886477441323774489631343596695668519294758027195619922283429221365923789540517652780663442768511995431955066180643550170591951063367831007018832103295037015290735435400668012225963659350375313271785185030807871164358027552313765775567156487055144889650587157139997811639553942801946764349725101710086425305917007248370961692209357904717800822666790525459573814921768451510718814882574698286377552563576952198320977312501586717356040266348171384206967918983753178489591739999891546787381647084637781787551046548835261250109792578199333684886248675396186267385341010371743023995640554089404549607140316385640009736171184656215693732482352147033345916148507628274045453921136757500239781886263502048770149371998042745731640295696950033298017717597130217519198713576506231430278608625970390350010813580495575319154285929930354854611734799070467818612715599239155099515385366630339216652328749484095729203408580578688112754212224364105962511866544328652582366669746626524554039219749017308067245108398700135502533107082935789073665875459196709346723172626097340213200834117146013179927864655525870658439035399747465312264959930643376894786001504197024379549639848240557899721160750507090342313355391873503110556461973561499896930886205883073596983286831283987098776650300813801896336946687863875928953110440573743711661990170512186457174517249848187057121248160092268924958725377171978282103172849112575561726563098852754329314220711574820295367175869516555008487750845347096143969631135262055157783538724019607655899236573917855664521234306390088988346885225167772291681655617017204061597243572699488750778382916952496215933938523333100125052701478475114855201345863054025888593345015799940539132878636472018150663550808135742069233150221068776852033192315908978916052361353166594652378301200945069439635579474937159664843165477917321944565446355971988098476666449639214725515904376534716653730186331422223748551872463916046938907938204893429563115110946296175064566460740120213604110535428826964080867051726817085679529877799287364757883392768118566511252316226637493690012961486158700199057803706971528681959454949363375818414757794092188280244293305949878090975452934226917856257122622920612495520918945610420617073479895813491570735765152157943106470707319246735717618963641442330894750522118903054706671724841335167864048571989018470898772704774515716919812366095798980624194809825783337953168085546853543740546906999041355591246386377686306588987973372357735103667247189396133045091890874475415765211568712527773470255194924430556214231405304812057187504183820120739776591044985647379445151118865338841324330660749887968522811421772089765617402646514518736442000558898354610484965406828079709492018479014293507430111614546500137210976096971476611022523736086257148893443429391412156784624814143600865877340860534606932308995831786185508106541334046015631811784882487594385649226594159013227078017621345287237018247690359182602817216945749740207698131082008885826405370332202217807921127568590399709398893034095010995846143218173366313623860153733919031561200870992758061343524761801509815708417467296988155785630068572706286936014982437175945564115906991362571342876982950154843896679212680650241211312976095872292141764091461584795209493377894594679312084621804514349627962012842409507895240799422452259600173712689953411414746637381156367047369086211803875914269414042282839901760884344943302429325804868777349047223453392136570703199766966628623774555220870916652835011945557440334958964792292551810125061038440953421137831893536483721638619978639203288322565866138819033799665821521885446561827353508569643161631333656156026463220502559431113323419086051805280434217012589456280858131350662509323199424550202901862080079759519319112747574722238126177495702093806139976405030730563860809855547764197201523796562531697718211697847896039776627075739607563503017773929005721296566361230261724739686717937100966707845184531085498076290377943598492996676642379153909443315871776671302024824584987063572890476650866915509985357879549220144767037007869095432637976805559112304774996649786627217828825072659618773827853984186531634647406788122542398405950897210497093562861663008223556770740904904459176963887070435639234796736634239177564433564864656915655553619946256254954039717606246438660246927909688152361231883963419416533159041925982257422624965523596208060737420833865345081602077810347755875772647134867839599520620937188763702962191725804591268963162369971446611271613189073683005229032088370010773033220037684319853309037388596329067890636210560529566930885805108112441314899617409422392728053669211166317162442865596313163388966936996725808364524304171653859998380399396348652026664094031741693504521816747306691243317668047943557945134855497068421345422009213266576177575778059182040541693356177202531763941406162270351967021661008149611349620567581423078775228469100134365815254759011508033378518567752855466755382334822696028626782930224152790933328400909398092882335498552350976096916416050900126742116995077026683700624610680382329524223665331432080670427556166885518681201850401325474925949302523348720168522102313252987009499247707449142236225510502197062415008658663225509528396262057629038716818058410493208582256054022178073020540228222239572907111889230806179076048522541391509501529383125042247828985184469557971479512449801807186908597924289574940961074337737834227226225901819797046694583137188921845159507702501290874364738651171083584657446607282825464847066126711574246621600044770460544156819191465887485444712953229584664506515872412596546763011197628611465172176037849746999730150157949120168378123625526155122141806015125699227005867173272786502205495512353634058467507175162877344324775010215891303801195042300597805775654577087763001586204961808263603690706759707128324445791122917030411650834667445050871787489255976735881829050222339455733463791053945430151111713871449251688114501397894140146653956057619350970326941299429730877160152485191974554231413502262377932988184111168219127695727795381817104170991278999577469530237957433447390657891764734042942694349146390271376945529923837996111564098142726450070694601895017824488258737836007399475730034319394873950539353081637804950659199698298818656319149439533968019151383989636157298101401971551433498406079666059005020759138440975256498462364083843277570575108881978155888365102248912707060775202476934024943271585650912529668473179740453838295001176172895487913462496276523574872982678554701758608633400791652329610658783166034141988022834393068997004088604606972280183639585802149881357458096747349423625154370300009306086945299888364550104701682388625818302877923857776168652187499994412599042612455979727980763244305477059713268350870322776012748879925228929496444963377391647062164302804377821418177331873525578808348406547158028696923831408814347464363875964526290215012648136671479660810557100864870330277381328468620650133008179964840043643307488720604217957824969198663208669339351526761550183803500663455205745229514850756766861198251151633026332246156123785482684137002479384644078492756722227495566110930388332712110823307870066718827412771010146033064610197914458781027105885758761378355857580909105237802939000672208803828858609418460401122926822366130958578240997102207329111670845492596165710056570909645916020640773570660184867779971597575888189074714033361765273186086056622358343110234808268071003080328432229850089553161058766127912191887000315115070411842690702361913558155154865656668993212999549186176911072235192617994266215688038675537956046239928566459377604640022436463877318926989304942497698000373246532141212934651065806197110517347206059470279912040251188119604856044382804473306713703083267430426301946082193149454886553216075982782087061215182599286847333142192803565805694840990685135564601779799511174240626753113734172043428654062539489994465525296059938938685253080487820050767245975800421667529086421161283420275622044761779058427214372522570033483589072414711334697732063022907931191972968531503678231542609795633042127039483813873479076765076990085229794895709637489384722810163545797427550843900098848803443479287104582493432225137740604727028360172886351065195705862430670618226757272674080708362983773694617539094296415966110385371406814463788118830147229318104455624517302359282746496856195464125929530037050669524372488766051018949878294732530132737994299379330020816008879571680532153439914267096416878675896854812224240926181129480809404769791722442740458900887343479307692716584498421241418529930121233453601213166614170792241638499793222352820102258010621418498278797388335734158082523525421232813068889436473733776314106248996406603648547650801712580148976332001515086482427605328270669479302135569100269120211924163720181371853200222257186059984892272037205067487785005400777133804145642727596035750692355828803278388563111912861489384955983956195278869925154262769855774342223219478403632734635311099474314842971428108001148416608415692097910418338304144257144239698926002580520447947013158818898707168344094677099312037249096721558211291112537796030565329226311237197470355482159051685628167679151441437887342619749249758372827364393207711258094108608500530825217216139407208180037192908628014512803871989812159946811099409199110868000341527696732466224541203178411660115014392460543437568717092982424296751507444770350704410320957825338883360574712881643704939264407089202873593279795567296423384090430089371686676015957081430017773852035299690337441565244531082559039299716574687400116946542992945959075111451058409465490134675619411520625877725726066405062535385255976042644664591511273776998789411731910012029861856669575338240030847433357229488287455090856118955379726393347780337902435864048677796146655209853521572022457272864935540967913916197945299974965375233285909082544310222269453848631333298657533147282907323920515860811695930263490075956659887870940111735336675625696579028179343552014439798915090526691543556908799067830453114147732116607098738608667254175438947513779344426127853631858828399606810103364543887775784783581324380941204788586392814602274410326933327943156601449721120717383046107285492731369207721947977099197613929021472044436419586416985094659419168508504528995253094899043184529957126700995161676039431434653308152854664550125379063721029932276745430005920796075016250878895014019685668943439694411041231761372739376722180635663772456929425205206717699841527848960595883420001758991052154372625833301749441517283025642357191808382494692609200068874896340606696715670029893141130828688376838254371603084193028466340511168922241553816295914391480642693370855601395210519807996876453405549540414304972551024754844934623238038225560327255722707971112535110087107900569953397653962421706538568928126885750181787925023437733495790155434930957150832988949863747488675361511167334634384009623198224263270271703786091791324889311115077299651718959671861674783117131005486821901450853432604897505472967068307429960734473551850094623902020023041204391519080001548615307106168578167157152285738911033680073068509447326267021929715978888828567380015876789929530930038885272231832199187309265870434463631095937497574943627034539949386461459044725750571740294729090899604360502950777055648100824580398448271379147446433158344911403689207666900057765136774527368067902297026215720407924615936562270384069258576118747625955096179533649481148769958821299328243728515275742505038264355562646781124520349238915951525801806312395727170040956695636753727697917376383223575292688616380509321160974084482084701055317401728222829444890615799704908522138586592065459131896030741796567049244412091205544874621334154919101080134903552383548491714928939546816783567742335529710765553193752370819298222631229719724947380064980000681505276699397971134905515043877839312163726102556932608039562602922090455425175259224283311285158795437555541097218334889557418800972383559540248052945838298876540664461243651332254652239831256487798082437526470328226447453513083258306096155568433641467522666544531523422427414552100665191253618362354143589544418227151445369103970022288506500290860546432045743034781422213156847050537775517079086836251842342278369780703932927158748630174504837938063337271422694657986072218733668204556246380868741100049938731396234394699317199315100144587309494651778166470217163519087950255800837473246012531842071536135017832188618522647984496776788084884552665623525934110185799268273631339334959574845206657459359923836696106093048092405376200088838049992448000418625365819533365215971064336412815080769106762768709258869091026616334571224861177430868190472319920640947952439989232536649703977623360955833228039529077523005742214784542073915719128812838172270866054805812108801195943204621983970151350407115746633137782554914850022854486561209105465280131212912248488474134274670552956333679436345763411871233491110802154614229322667294981592871595064490410857984989161750888432899229062939664635970629086465448454289822566300980108867470191580408378177310862703420274380972441202841393305488389427520403336270544898757721410438798537378344216868258759565122224731050680991006095553656543448989746801880986123018132763930121054811788108854349241500075444288365961989309499975729347053515252055029743899967969882181359255895946912444940987359459502227001525339980489341394906023594101844889451782791717846099259693377488005299628700752468310902169002306991153211904112371506057799954236851758132659715248668348362104551598064758415220781226495835021091586103787267883099412234721183953936679880085848718148007979861052819858289447575580878008837010351250983985012061027607654030531457595259749383399382655204133452632593175480420437408244582657771676205038421749903534520217394530410965406417723780836437035802574905827315504399320607270122922662587611446575461912593950762576834958722015367283505255001085418968234735405137468385900890268118939080210110095302065091580614613118511058205107060344064324218302260202581973635589240831292020521245639521018105705502100823550358601669916998728100784792147248758911090509951588526581216174631155384981956868096641923246423482133614163703301803060096969107588142874822408389431322484672091859054809417212160780523969316617412142235038433806197878598362082258692208560869490878010452453890097374960314356360261482971832955362105159761226011513807583529238647275721111383931490834750221954608253401353417528155189156712025982501115300220643831227966354085536730915729394946542072419304681658803516884601997698302237549599102297412387138647263785273169685494671837967388397436894357888858155065942144768082310946094956706804951290648737565421544320192497260948278010018495031740376108116527355959490898151345963775480759218070964962421676895291654251286517992089159460005806437589004175514925526931161463653609421025232372202173473180336558170078135688788520356799734515934757648052569576036787557340016193137525186048983623385446614902815712426948372149004858574095022874440243672307629856696628340421283229368491507054632570149655935784036066488578723489923851509001794338494792395542176203146359756670260740641963688252269563610907957407722072304325258923662049438310796344320130476177212339945298401180802888531216743026312997525387404362852807333017540398262426424581557229837945858543997273180588822365957470215493122505544623323641808236495263584438143965627217435531464462317495434337545328516359879443460265307436525930413008235908764394429466106215573599159710094069901849301388804079050589215642476334638000684147266863175222108048047273220520256032817360254172303789418397875265283978476623547108406822271788448768352172091328056094170682117219931176052185320605298210169750103325190057951596815512585414536438710175611829370366302701819086241939153467058587321428475709297100480470295632040840907762036886225166059518599396744750309688576529184440069032446208001269227977843190765867710714389617454160497305597214930700419270789150038900782965586880370690000009373919868645905181207190616517385417414007281706860028357947116473791243353319281115608866613229159631462768888243864185624233254044373828380051543510299769484102224104346162315770895851694338312496106887732478538035714254760022870196129583940892644579497955855272901094700572668071863516316081226002829214376905164101696051702374101797571677943880015410615430106529686277367040579575001009624468114467617099955279820067832103816868786759322956307297132383898948846372747177795981313829954746530708015642352870563426251916055068044935869741221546260610296270034974063347591888222734948133960713433483989948246802343988264029055944997808623755561059801401050614598884530784040655965478874579595038037838939739820773330437966568900006611808441735799387740937535199940473542992805058540544354445849159105640047827127365662211866469399805177024238891068537394698531943418849059278203839630218075851551523731193185404551076927423301840488673261761301634151622335220198917846467151780359940651266405258781676150111927783268750465822367336125983489183641674395976705768843284405014643615859235127724828295927240114693822890095310830037663337584066680686962123259125497988354387553613339288811791868094961483155501684051361985349346301864812403082377164770439805348548386233192287820973024847476140248188797555234523217402218147330756363659005177189458898432605128624950490115682115027747042913402188244343769793868084326890936148646670614298056311149287028932085366804798888212669081067816228000536262871244938903270711352864234512068339434058008529011988087378191318627607135467600429459071746471318257895528986152512852667655963703051877125220917907293065478912499988204541640422616500431173285597437337041707963514769028236495473636724362125304723938164343786503276253962464658029568055495500037584767299928118783606052957051092313199479063033766368228693712851875584063831357686722963816119063362719013235866159698757187351107509095004201820173097535323390371381809536642453247669452759726448041045947907517236009312578831225360354704897653131485601874808124643778495593453176085972738260401784421142951421553695569834747784087881349277517136957630455283335245951201378287558218604514247238654536026244286870441337515981548196836691911264726108110892771339230803445178485923118950446017336448110856341321748111895843003442753880858415625073401614568931494857884269543671691191598855841359870464123952523897854989941318845532373989584166358045004995143730614233181940756666264999356013375291188844290047987802931521038228973241480929138591118644496200697875526800675039281736038954408158917779705424695892377596764540259658440570725070031696084810189872264077702673443465735551676658213144552657732787222069011766542514458920128469256071802803425787068478906994797286913978009104885550255319479952743540643064358731555193073837382322597924816144817799460263920761407822791134258521044658296008490770174318790503475338402151918024161230330782620131241672967458822363739014987756861394042288516575317815886904942892279249776898009106624037559992480900060045241476482766606262700600045672947711196442663701787070034478082883804818065763558462483964398304465381908706831832240352539110022851692828103906733850872730906685327878514048565676643573014287780610277273268654157653821836370307413392416107827544550456948052552089139320326051099340827588922052163847996209671241331740553594632826954985287618722998569060812957062208277287933458302593610993814618739928557896232136141374797289601100352209160786668982049971226516670900919577142860055947331530701596766421992799402222829648550355675997046367963494151944084298038787539137337596277309305289481015377762254059422833255025002785293095384556452741613249726090765093487686078388196725459150650653879231952070821042530154421228598360236373869608837231414057279106711900439043472260583387786416182776244045143403996914920183419449713109380468661506219688623023271023900382405705020018659023801802687095583315657003365984302241070739495753845360625871863943465060961551552558197107840198817305875230324317741223356896964087374555185816839883007108386517847939845728878324479198153920338721096262709234157514713755048648847217137336519178882624484557411160526573141576440480101826262683435045810572998371544153490208197758874128027272929668003187530755692551316217216690067197492766825403978773323841553143362062515008744128427930076898063832471197114437360184040893171935157700915658080321276277418120940549314700405604399669426307920937351284569570982768486657525441744262489714183054671479856473243537148714039138913419382119476399017556017246399760028695792474177194582094603955434690400886286449480130577422177857093621627346632270511105645468477660225197286327122112225072971692313927967098603432547207915130579283349216433552454921459487581364719457610336856846895166651023943381995565451286446746539210104288189751216970428424644046923395992562849324108117216066691921888712368136801652330816498840085211426719484390400423677935693340114804234624966515122071560995603833780491953902281213803687194497652583330542465616430151165564776860210081487712850292461493009132237836494046390671228058843988081928773968961146234607372317684010790463919576784654919561254698038469718923076955604147510133830851059080215027207242247634838675221617393541983547840638172868863655117731881649148674431044948455895156693804881666210158080211596485986966222101382306501003169139353337526918146530548026709561046481203506718650347136576911172535472979248665885701573883873027788004244114958240602213327317872767792483190837085330136648462980884425971153297232807448774833262589682191118191563209288662968523135708666967787566481087241983835111713973376057918209309424071504287223585565450804980244190920225665334912317860402227296243508030307309507316226071015854943261738719963931348182073797340790882624414002642798772656005176287029521302984481434154225159818909782024455506610467652753250838613574896397046298630564513088853630898786482819385725233040350972435917079007326683365949971116038681632424093979086719202857771617973904828354272389930056746630052122556873095228599276331834624017962258261503901948154902391784744200003534349905374929801867554262278379322027626823221840582603430859269972679829380761193667725583086289041254067140956119350645590598216892446446958964742198721648554613801020427986578481527069516519376330108908788170808422575790780665997622077540958047899246463712396346913789950369187515846234994550947992181077367953734772779484690415708705520869647226670644121646292485570934667335923143555253859030450341024830508789071569412802622083561304799414980768360784291359875036423390172439080341600199262211310374858993418630095513124697228978887174184021111973314299337204851329182986273193443003331813425042840003685777605946831723875244836739840639643705622709208278072439971526721683208682789582985076700104700698908730219284118019984611979523613220730840924311635735881244062847886216609587341370459984407487592333554324065259615586919173999183878970013687655533145839603498114204667934580635811764277653396911327880106993247683680837738153719966147602268318692120947506977487839273605712373584974859434678638597326789532964659912888404523005029022652859335004033731674731888566583436303929731955588239899676264849742862191895261690689749006956934025181329785858374198683790805380607070595495103846612049703524581772349440804910784816073742818873310577861846283245330330490820445350639582895987225300944524138507404116490141486761299928784588054063594690525879001788598265505079304691640299895635899253387923048687851801851125927740317657609944345649148352711451347343694963114596689827668921923745047703001532923703784697087140499203312883967819421725938969565193977178634009570052244765866008967306112913074879489941366042065380182635885826498493524557071769960250424255422169200929364658878128949634024400054804282753554557068882122682680885618121162056216051715619086198160255127526575285291849808081595558960118220672175044936997792011639417234144875796254243527091338791014727105114067670636163876445314243257962842035898843800385520202332125223183468757976169102591248580497739959079356179638416920672688988884593716490288425917387015922792863630924943995972281515606792243076381150972603923784848762501676240069369783133589997441838685955092555562411798411103263178029831008742666777154054702721878422251310746202057294610998921040376961901673432177258456696075560811315286176680611750296049285728747191864710202516457849850122403558853174368964905543806440571685410431697507623897433689686313951491132984722099918350242467929913972048282907878078748380279849015054569933567663656674513318130512485166989186866681339522538776583649379994289012262326970566946720645226266197676594051955641235005873264408101912180723201288293825432511765999990257292304413949027070669473921452656113779554382697131045241920517573979678667847812810936911716967280972186593500099322589855999535103864346787582088996409335737383295783651104186748464490028564468699901869542667267351145930409752901300449316637230907452305563769891441203120288892655965475811502828103737462850609957638084731440555172074323124282273580987556779014098467999091250039625273621004979062572410372371185778018165722754379070123264510136781938900050069617600610113923296895788265533766913541598418746081818150708822131159282867817511679656644346738941254225734750432632652654033827457975714628923690759086658631338274679335413772499248917842129196876167578239380103078594645451395739786935020291939761959795665291490822898667976183117838406711210962822019280084003377637493140882070024861169180373229193177537032758063156195016015333991469771934001911940419340102308490065966861886206358248259377747416140579650791753539582534751306185923391433598496210255984424757978770429921388991170003918712626864721949668673115160699862458415067262621278389724454980236667962038654770340925839138012985103317407612836235311695758795474888070225084219875493941174602628767205128084033964907712861531351087073452492848324346091642245182869923267302769030373893684092086607387375807046716170531202019766164872057389234153378521929075471919460959246621736026397916480542349589835101774757669904253032610107592923977946164763949159154297006785767598685446125112974504449777184477003349969086787391386127115651386341594582899127075267591973709625428750096333147232304652486939906039587259891892408308091104168735254554911475550042326107261135353987141902833307478308641741493592104994498880941594481906216998090131095772288116061209339873015389391479769303525489493450864440654117012220437299690290413335232037124653287753055075986659084111915812928837180772248888758031088362706984637505425138873710764788442274935658749343612527198447692523772591834837140986415505667327591278848029331942348891812427800656612094829291436725493250410398760684291668682435421950046250162833349778292414925679695206518086731512151336045719367089174425483638828349907338219270273384266813552025850805026492646282964430822068501838790282345157351830342978412023352477694063413426961702710301480280521926002452073168292058519314798785117795606069379698592988067338721958951847498984572504239912622065522426215369538806373970479979168600758965124665781315492279396169291815176788590731067228588341029327076317850615335119426905551296164334652936285619800178104564882150751650146452656798887566273616312220843546786371454122820588268895259415114857496247133553891106552801558515114672214526066700683168107922504394430818777243280573319232663713994788952677102629322265665747677970038851675765306567222316743457184366340180328547142965714051503230092897289828939067036827930173180975697178087041236801243701393977680912860253024592812045595129711424476157495202640452602578626935784678076343137174347994487818562794357150973580263201439285350105447609795430875448485172476201958403846725217890410619005622776151668378435159036799561511659862347943404175236756056807486191438635236948119045473621577881012049379020579184544929622036989972716491725003861178647971040973225924609365272124515159165866049306788159538772402350465481690029359258201486012525563949475192287532300540380596336957024979465941321431150699817248683198563305129713103152433037143919045179712165122656742797577665802487039038395963644549121951785739048436145189571597923163684040100918396119530224052494006766167561157691285271025745172175360329992428947494359742124245939323440654063624057890763136267314654110342354391534695156999545592467170332270036629023925542366499643751427171048461806343917229664591194991305923026718834589406414508778133997384244018146474964390618291376891380819791794206419318221356782388370486606376367099918247344445461272491241614863109967047823256542959693817712803420543344501810980293217486764976457469695333510632474521335232713610679383525160832317331389834311178701567535772508857010982419793242109720934882623368642974735501769095722809360034100130725581255724032370376943158479374561993633713203846263558466171955648273239570421473029049306004545597083203079942406032650873454853331149862878453759171391543330790405566526055403582839816449669341486269850179942442777299629504053929213977810421806296054498500948073313475525543644706049331427171819096704839704574939883915086772679330819023739119522736697800808341090699604867770426329801956922714037418994989995457162314033906232369391082517402677943438071862407277259845904711291334056226533488332339546960931689144126012053917134748644349060057567138941734920545253356102518328615459661508477531434261596099728954792307078723108988076583750561106336997074378399305831598098193248139824069873243941747928219238830547040300436698221852048045194553786126085361038382357259854870694695665109224381908037110486502375243738365144074871454106937842044211577600429782707467967241063687641273569764263894410992367469786874547002846840893507219704899660559417676707740305753755454135545404179810433213730545729400860949771283649638318245039561892153994704735706069045757189628502334289420986771002122058899182943142770694313295910473434920384982899898329173678358543994485234085378070786579116872600305062281169364970701272742412167126092516903251813042979596239861866604420085321180361615425134965244454664724175392428102640815175411628910398434690474803857919067824448591942059769893928499254016037061843533124997898407982080811390313698170088535555617387177758492662510619479249277198173311072102493602298251736664649136778651104260763288329276839574369034598140875532825740644258435622664461756171661352555052790178142069097734352893879347866378571533936962542888433399479344257173055869589614776204178927005216822562591304681816544266762923768567212081962435689183470529379934216633213225790405910469870445287545125494663190393185284602312994438844218707005781957426294624452586229747174101437129252520778313053661851463292033389996993712530169862461928033648751883195204490050339269825098946963154641186173465663843846447420209607496179066723027176499736767484538468695431682502350611444297773450799797398497979382150442106363297276614497867739954183748588003794897737278362278845780381205442557146696717303940759923832437551649309205518673905148928515723136515208494575924349479190975886169725197523969025013314136915013100638546450527373626691032233095141194134692519331215604196938729370259385858429270724457503473926367654782297443384294075671217601228632319672716948426886079429871690325087593407926870689096656283492311571793455111162957422869079058940414859095761721086863633669418089138923538120487540798296860361892496769567219401418088588449760691045656207809732071532159303486078188375434285064949065171585423347818861648200141584455483977573981729082916815602952265868657320675009212872958090823966229434343757430971274006872862783974070688456095845960718234030133688215882200602241289090242579539029408493873308232683759557752204316128989593880936509050479241995044598217537832495041585074478488703528267035253488700126160667448203527269254074051730674990758268142145527162956125373311927815440831220586151547568704266752447052022322475542236691957293057400251895643169127861554405156123429200162846449259421209777893963635435921087019040770969466186179267382542268142706094393904201365241200672901130818400610829297126554456685593625681331429788689731857880142684220543644457124818093650764056869437238229572105133191928384979312737944004321841031411987638041434695697559524974904621802277691965121606671379779754521026793976251896160941118372916223178475665399903143405476042401742585018503359067226140620244675534158641665253318046925894919777659049915097086675179597261385167725716866596428107215398173930835101631562076257509877225495748299546337524180217358865310149385009600554586233648122367484721301992913079075812440091254259988353538135345543091961856351916315812769714614141880005804691521296305621596934310934655789333889404608198915219359181294732359361657775275194322465609876301561627866229278452356953924310708969660450336221365505744787371112205373916754479066405265595595921774724773133723060268882696245814531054907271394165892803614787858904525093118099830051563434098603071309367254022162914087532903972403548744416708183816506383572923650083273422586801078019506060831035777318473308734440918403403361033085556381048077864397796283609643824001210012330308874469058972100148532399072444010490008504906516394902030498883458273870974630906645379860213081878010184431841927404835035546335781347719704316595902267355558342639649527710276635725140004453576134974330726050091396378722813601551601522043781057075736248546764042883187115938309553289883384304738873898272600518986468900276563361929689284761781198740246628043683624231652906169757852552097439684893314579954779845092799477743014923809652841228759460733621582999798360938165800574045099919490440661087912742018699958202091202476961248509923196943372536616412729638749198724731410113383739615399175946084359980242060841776325312743780085940071614225035918893380044776524292009556350908685832849246488030869116026653655320771609233310857358411744816045604860441956276475663383669896967334315985504295608259104574363112618695094658300942921873551591697926293226225986705613130242691107923733261295251739949555891947200178577308460398738961911360926493528621534590127610165534864827480916793921354674334224130719918957576483572614844814275397071116092910971166333170303835225579005182871251342773958103213816857261175253107254865197753319494137001283487456288562128213246917607791684259900699673511479205641689025509602744506050315895710388934500855045253416253310907613400568429603243089246280751378222623249049631136778036365549144708634425147302429807104231877998339851528629581471075212827291818144189549922923906665195576564979857703687302375861618342728768300945431585465644707253778393359138575864130004935859475465137934091245486225082760652710279262706396346339864310849578495603065069274922918231873069207375900714631146288840781166484595810822911270626110492422785174467293248194441214333651007461678467873344315162472702877373667226425111964980232636972028668434848282273307793121815902297796853554647385234870315269473867573350044588616632517439395572270402189666414438980296247790260734642192851289553975196023721639480918123658484945519205645787691280443762601637338345500634649016523588550704571351577554057769259742715301231560456436096369889384380098167254160465471347557365485882782047902427205756142188618837812561727778720501694382084584105615024389988421312033474150818585813065395032761822670065454994075249169230797362569234130070620353358197844348942511378588225762387681042980945521684395120812537444792437635433783084837726947906542338849112099926709647297823542057295927502482708843782663738381563087024362526661133074362370055452957603964733787264270005609312933821220855685537348724452861660309827909649964012109370807317131176546509246554795009200399009525033978483905664543252579235140695911801967133302626497128096060301281488970373291666217723034782644259606669036267600516608759410733014664606360779493474081028051898337191737701774319240457928358966586656173092877535666230166680790731163349235292556811540004142105434784228143074554515013975961996592086102127397598159655119775280162723547094315965407653232789482847694763438309255765144008781935710391740710348009226813984532610067951232348472179486236745189064569342614026434239304377209461474682687540300610462278618753354906983394579621114260069807475024813692757599895124593500975936731336746276728122684290678653568743606227979223099292046973716177490747717315094069477242637297228050217109907311593646986243269961499892528382515716691686336735159465669211648212008568493454382567195443943107662492095882059037216940432172199879738546394376877422438104447704171505558548703795961091509520063849212465586828957686814945459832738578710666535841867232539901657599277638378387795592650402112662209353598083194044284671318860317100914492678042589963079210011075063780002055941070640071732064686689847659761458248328467905386830181865646233491996666658012725123589673973678951668873091641938453092859780297228452084794284888248023998194584604885804199051982698166668129040198134990478749290332185520253287465918471456429789086693795878906757857108753171452214360609682061792769450819786618160027611216540834081928686840237550537080282284445313063755460376714387238373777015928419836711858767100025096937967278618642828414520483084235703444039925612693612070213202151478274052030674836253943604782369686665356543793865845413600035742889148812579198730847667752549592228018636135492379978829358294506849994811541872861944630306179482472062309237835499934278302224710175546335557876856809541178260934502872677205294613877375903558373585810958753300215085413405409140856044880737302154295050895082476587166672627258599709940315316562384755744882766012758978694578216844598301120703713401828816928552028242810540165677275490567880357135533051382615272875268225476164381379652392777668539485356120579270488960908188553422803612525719774122777397521695700709466606646122604623340535540575392689572136421747363989453575347931607769331294634723869783095450851821345844424006200470087756718900603451090390703017669868769236388431617646078147815986432090460764550191446841955323441602719219545640227474876126629564842982712076987300460344501335583362885543722307824254438043605678527331586550190112743291289220193571074313707306793355162955396778876368842182451860781796776702391938542914564193274393133120923592189568384616202585122034120088203792461996411257096215594075217173011191455085760163804132227304101629755485105502482223574133751514436155522929877379675464633717248347903859876322922811091366003127402840155630146155150732611988853302788227469604251124347719461045026234240468343114077699320914322953898711597137598348267764479750914456619284105672200008817458816028567798023592032518211178842959242653381140086047660268555485379737576699382349322023038181635083070858056471340284891250901043751419633557403982264366958453908082326599633320194888561026000390393109648117082730767433438708435704403434054450504537181185908524491093346589744378086608324335807245798910412357287666714917305222244310725102949441906314697285057635142062467370821258701455021950643631853668188904460935715878584883327490118701558235827734493161997638808706124820262317532753377874777728009218790830817706392925805591168420940925516697982346612938015881115256882113973038143826234754069548699496342357105686484373850986378981039462678558240980052185834189902280438337296552408895051030986512755406741952023239276158514243703768929775290581725824183496970421225704398824273029424640423730972282536392109500555181139761779425969013511477723871338069828142236829543991056720187357527377577896738380352032930619587696782218242432352238287273998760463379396296984162315238248416554798120191000351678939130459047002509727811671892502262120163568583513846285038285304844703758531727683917476715276100007857808351582894378737610042501499442382192018108575022047422877368950494213959025959592453750954321228341163522062709896813176484362361081262488475720531015217313311905837126497211147198286779183899790030661720875259311613460968063655605504341052407956806730441129636957713418895847489637987187332493837813061445523042985700923350122581274615792316348596572552953697603990359276545672493006612747467572089229491690474709010901628809017525783202812296843790529844066007900170687296357442837500230959142902841006766080705078877023138648948628685627172719343644309126402196586112211956844867295785770496313960292793668601008531311763820985195622868610019895531558614571779880176774156782463300960783213222248851674923966192083041377576233101408565063757507404514035261345309581898538294865902778054493279780678708866452469813077034166200689709439490413971231148399853580625053705317431364980750129211836377790152089864254453400751936328333244609468382571765621192160491007698307460030538227890958250867927066015903062246317853532454310352441279322747138003725769255444529553781186453220708337597271069427539922201615446068345076948206220444386357390774082373467530141433735256180135709345168218937995323168537288234755857365325607643289031698205140191534884236193991397565550635487666588964014019009631125677474248515817121363475078109570702559939912278030791591912467386853645825270355463207170057931545479194445557003385102224142520275995486521641765752597660460542205677792356402843641336819730943476239424028541876075297027187971842516155481730630935431322037176453713308080792653906584103519499892304209572428534386569862187709541465214775949449453148352653558057191084123530736862037884092243395910781422928350463953006903304452787381146543671284405962847623008537181090702392086725408961815578920531461147079283943702306577352951427734978034748748970010380781036509850644219311901298236650393166128867458291771106728623050815984794854715971489903050023813738071048932589804581130908796335357428916961001443481200060626202929854187678117255325296186082570109596548827531478387807766697431366003952767663917026560633055150587969444203068540838748028688551991211953648583557054173013857416683420991750990511066121865632626715238260926972232504645439478044225129789374691898364400144197471972071749155431856371299555686418781348708024603707459592382344995822628118652575849256291677928860216892113843294758879361231111728904899130856982112708632945504990684092235618931231217158968509369441511990389587549416842946801483022610973772014306395377742884968681640009718591767158113498360932102224081573352295008520988512602992930103943114371626678291548210427569056108504970049650807622244127479183052501763316012522618489313007703455968823878270515175894359013038401190880947551908113557351236630574838733859640496012091677735354658831623165916145770012404985964624600696686089034426836712996186327034150987375903708665800958443819898927074191442870852250998481347843711863166748600886894116309466784425388761107283433410312776641005387097219230117468305800586678475842601185885364305500392496523595650734887878547121231070575726843364414979770011148072086859143586249722129851416673828837794117178219457515291489371747879278304192530195199451076842232724348818948099570593507019878533531192269151137689217939108137105082722589693716535548504784031321660849577485674441154623207204009653736809892760891109753125761114390668713073524209233568294767074426371063189363326797389081917902667691740105905796639141244386304405270906829204052186681938121591009176540469114235531262567931441347510648157944531782313260724591193742941414417374900440104652050640438620378933880169658060674324204906434998607691727924711153290110639245354628158521598032115213108718492221988894578626047147297616825639552677280782795155043207125161049789956213641188299171173670456247052767720443899813537777007564711996793799375970054955528058960039812495469884034985714261380153174708384989518373261695413029031488184684338331552328506908427091055798041826038524088545406266009275141916482666512285028026979924475777266873762064624385886057434140676757930682538340207307701233878312269606549391293750866300157954615515613319338941524457225462861249545009319823498330716839557982176912659262828269867136676050118242307182525122439638357829290537292037047879038444783885651998358005497793347572285220688245864916404237088764171819847547632279683501922602645298122926181146473198601192492941718580749906918319142946239136231105459050403759394943449764724189815957844848314244529719614237907268853491224342476110410176617216822447943763506621439606692127566291966515802113116900039013447306774166651775996856475837147784520516421603862387803460630626550659583419952095391207306716403484436803118035940810129945061550589851505216039114310808347682241663016831971125719161298349761236467731354711439529963794804214251188748557904389546127615495921159868888887391926785509818018375638028088657299592353282087276672635027214022480749454147052474070390781087527545116897121497383211441185270092647286960387552956086932016728522709758222840115105974355365777680036588419426861315617344553212954039341349879089104313016546479955461697393208463761286744955889345525734041440129336028210643505491153575025736295405399574764364580638491003332393701186608244499993120074147965687320471534233655285884372326198387856831329489325977183489601412730603368849721044316294823918055265158691742972115263510806345196097939378250428447910389161039389742487252268617058886953843801109276796820308018916928764622003335543654761472265542264698052431601347735445774066610746180964088369835414781007897477735990121551177183064134779501689318447993919914024966643451201019193896882553747953528435626783329845321148104167385392784007026724061832185423689645032379981151103732200173584447588728885653986960940809348049258777292562992624729173264629092608104335183668133552746880300158228681064703771070718380271680793029736799504116144654823924672687939304909340620938920561119092088121137388409116881583965397940046854607413480868846577892234038800225184437424999692556151197765143492013131902912186720282203454282653291181850083759403788214968095007967164741523024900905507080796549644306844551487535230646109964833818087446700374142758461493724308299625161635811627216792226296333847963713230368237221293360503160924198348773249747793116834943993451359619632362720397152207238468726397262335218029084538651528474263448970813689121342327980245414768763974907232227449335215359254795035706776863320613206581223629983373859789283153248973580187052670494609197676638451279324847339060564170269031394661948767200234831986377448616434403070769213329615424906458546341211155434442193399101364696110205994727068858240743130936011484189563895449975474801059014306556491107065951178950003489186788438503590708596854069083227341927681861002526926530290958535078954505683798932045076429648466047307619245580261344152093062801573042263754291022098432095128026509765436068337243403682156468923173584620410905335201117942542865247147927419128276077374654551806869010600723632559809283725142669480309744096577091790121881882583080174876097101507270839210843087463329045831870919799110630667314532922072977088747950486861408768957788772059903724181462026817973962765578531299976478388471252015350125960332388966421875377991433498204973473119066933581996675886027842401771371116521392370917473915660555511253528333443570341301069264051150983456277591936476709043678654309255814261215511783796047021596340533392745496013701675719976994027959308200057293001628554235293039540494729238612815743894289334823374552285968336309748903031835075209324934134070944519983092317529023455355132848305721024618964235004688503312285742116320146307950598086208507875208998277974872258358700968642349065283369043765792204620334186868749595719417471816421643290680558592112087635862918665283919281576622717986881973779576823916556100865742039323613347488318860477356142409070821047066032616845116080256600154290804499033595958519442082614674639782662686972286592576242823568263086356514104812388334232887549774988480401791456019780627259261333063121623392593063432195547146189307507525789639376493763736478859148084905670350710410260527163065179449017710933038725002296980513483554461496497631345444734328555458332047396667719201713278655938134505120991067466916197113940298594411075988742000907348453272223365399835256746520740318671682936543199927548732914346942453847690900010503955172346724756592789868076131291492295789948117781688580612767006852520844216117545498418490383603358943506467623724424361451308790213942730521094563576521324588797188260306627861773653549419885207769781116448700544089183242379088893384050430724023339683519353839834589243450650802591956423737437437261646902938421581134212250258869421900381818101651556246458392817192912558726460678765947578819697444250383679389382254332451529996948680697129391030850162972207277149076321063789006350176117641495781125152848036814531902121246307424984037469687034471503173375893089427032265993753569709058949594860171459288435746529123322506726877839951884789256302675603892923515915013826666757057349309770510803198166937772898510455555814060845975126878832443947857593054180006136335593210970835459917915852855660459669311444138678652414680951382001152944565105771329772819715532387909830551989991973580505003301403122676018457229265708402301078499114304795287545733200897164143066722348777613147540771277454568424032930926685274874457594380163285009564896784738692825976529423961787427286259014129364644295977370904888871068738174879875656098970438343715716733261469696075998319873689368351634162079803605678065775947005594753259779095712487370131479913988982655385120404899066164330058028709643142477300797924544011884427388977134799367844192026634692007220318453421964243933834656970355311284848479233490925804451410967457408453018638861673155228718234747477120998396291814531699195510730591134972880310750034597060667786182996443569167804840008177242413577961483281791275044991916867350932107423187942248914001519616369022016217181124544694600680635192307357632425543510172715885595521080333756660816068502560518496600502352103947304937410258861439621760828623941101433972439008910796560706767713456347839923823970909583423965057387489889897510974422994046889479782969599987163062797722267435127837585845020943161581606807356865890303126708484470899846131845761842392669855574148508038482647808788172951573271916329935315300681719534192312875211176035698687816767611954608831154079037620645882772880010399106070019217286325855700778283066610421014234342887556298763096013688690698339145563739425004250577446952504247077479407547755577527102022949806097136863260934597515204596339801695816788096533321462576122915495079412133843259086449346367276034328770006072490891811389058334813200718272276243145980956241579085027550557725912556090451203456508318174491278720439530850699535446080904116179381810018076200460507972916019058255175049716772449631786686278687169766458824976512113068115156681933737212963347749227431425477574717490294686501987778605388808093412819134310162741940529777697411454505872337036755626584694534512930177721004085600314891048491534329807588927237080374916976276698558749225148235020520558341738422282062371502302323856648056681753594890651788968634286391635569845475847364482496952201482161875069699082861084963900443086557545662954325232583138099171457957434378448082339032757931858378162125186995185819329416517164274206033131953454285078371179543624009779887734962655568343979773716141500722637529648211073625268040552094575346708169690323363474236514742045028338309063935348140542782208946430351979392775701947921428404452002240945583882022467490510836934654263943541460905996001371341612650413860261189073185881864905832304749934671877038222410550279056232822349620111050276534774527327168670212655474222383644614760688120077268023738187259821165687301242087261336136918101451523939957595560130954104941450469209855901132155179419895835397919049416994169623527543712102186298234597190225046016935264589390168021140380434599562540818441731819533849108789135037429596980798001564085410375232059279978381072337834477209325772389742695265730703312204306870681687568234921147354116537313776412465371982209674162845533240051859129405952734430593950726736039236883549850055557899405427893959596219447482916835875919555131317491570835437406605486916572269485735907121232955833061151103743381867587170644346232088139442798845455702373785639238605223137750328115143219569309621716662216117875119721753182707032387158320051791319878291880361732792221428125306968460333729279104685745265886624411682385674792938297747489979300470901032228806766643153872140084673855815013313225534756427943619048884395311371330685659107853250535992130792527250969992630755506862940623173595091395153800653706729626399338499857687957900375965250745518941328825845861687963486001112243051793477555992123797898182037608608991918640718061513527202127239806938208066645877632894993921505230750944033598881945389097839149205337915269918726755000336339432962165722021619213529946759603874767115450536257724370122489905979651188034396327393329139288280372452287225569423240985851306203929752077832820091859428518080822360014621705498911150285493082176106160445107333550841033739621644916355722099091594090780451864908851626364741468253790390657694164705475234828850497456961411297962863968552799494002792588569208964387538739110938054974743258206497311791975313623659901783315007322625786662573747455202486864872858679982407852462254815931985299078736287595818996617662703429896860235842349265472579943428781434529896696677732950730410867205220837153043724687308373109402843344543182921804309019366970629204644669035030303115587639991059536467138932678661205377879463672577757033323051819879035901433152748653364694855129664071258183936161587416435715383782107968634231757636675281607297767028917155173521953694982167416988270107834204633166970658049082984577814473934316802532560957529407492545710812377923752067933478740340868367959746570697264531475540360987142554287585801622257541249682591153843666566899727232890336980478409123122167862484895297292135437815837707018188867824177735697392047979117925193962406287336285238104314564659806646738943812226495947184308628459682548904807858897250733853690359954140517505362660960104098670213202393184845558909656977842593517636251587862233962504436296993002005845440579456111597760055147101221139170634554800913732670566990558689216979673487791841486371383454916435639761024154160995610983835036692158893984014130141568049602889156525827662752259412380525626019502787226505142834808627062495489009564156354752830741253413782523737402194858051112508335182562951953283544965233841248859970471826096581503184368181614081772760821354347872621204984771290256975070621269412213625612107481179846371390092205788378754069984507874641824650989079242976311297418420681421750362085600740205632770290145195833300041049399212370337747867247728528435623926483017785017599576225596552599129626034285128108692804385085113469587603003788005538791552923209209998427184649384584182517280176686410538960875313814621003210089925839103964801086877587806057586034767318336244155027186574201021107409755391618227507537053417590555025007428772413815426916116749795793210550807350987297688906391844633290362104979021932557251586884744962800320587702869738898356548057749586121466467132554063771835504316296995190174467620630000836237725186932623723977371949354638543816149366501261505331136637114165339437741358079094399236340191351533194570053034671153006957924653539927668624994914344275856398408751000721553787710216511132642561235057771918526368427415730942875459323649081684643193501059281793137642224478977910436753007290703474797957872060143723375806296756335976514057647569349766277407769865140851450239323180902288638211604439390037329384849278664974561312278537962754023930044929400532479607167455212547109771721320043759962118341770318309551201838458401996068881217220169833217504090417285240014898327140208855156457476789137479680815789000724663624767069019862312725277760224945469281764792337290396636545380151100358471399718439855696221158590785786004568324799237037018460454739617051337746398936170346259508797357155611606283855540130979303186565262964398133386107399181946613054773091087451626616589544173319627981950107705017103585247445352659785029224513352905843291588444813905627169485454269852268663281150794080246821587549524321177013812187535257601205447114934029605931856981176855183233978225611385144902530531014809715243858299625533294968710250367100238801062018304502395992976580948332624494779754586390282516764990807162545731936679186983929097789775925254259599767276920030196524970051812048466812526668898062682295548362785149645616343106389292922772027515725729657838492227427914458346802830943620962666344741745323508023850504503661203586522793018045737772899525222920920024611552636184941036312045514955248057351282170314745441281662138129185698646668787488823531799389412400659799277848207426406700409583732410340142446128461646399158150089929534087886531757017298657275229497222447677202344266739759684293509385820003174131691358291584283398618284070070183669920426368020736753666233214626726766386642017164618628957663240761977546097722157622411922787844623419969999437755661786524600929400251380005093489956559681151184466643981161437949460376179944221782469845709743739622494033933332048821389905307190855585352461750263398755462180908264369570748743463387863082803373100199970869231864151476679832556816397474583516840630495303981207589521467080422226430474894755920001424379672062432222968962101284314577627963320818585264061264791696782014748456725379959467718302082257852323317923782126432219098019154556798567347047551256627571515172985534459798890805580861934510774510067200189523885506438314448283227409666168022061995052249456922987821552240077834426924302236442588274674927979792559487122997998899773728053920854831744092838109636444085898348897075317096441119276961712619087000023415705180382702099851608952430149874754601391434692108785900286722105993383968059742188317130751710388643949195704090338820857731613943279084978509734743509886499564798319703874186144471973886788355362541384333453468847350630344602832106615046730439559307976298988615744723236069024094627957114972079149763073763689040955208647038029510632958018378106905552493014818778871121805302219163362765178827321171423626920014560517275927914965754511928143534660470480324948601730120257204959652743431849882725950255118428252413140188993877592207422174290021046516282499758747585283294515893551131181688690577076285204813431364088149593670732084925290106139846873225840400244237866773269653678195830808018909246847310345880670326576663307253414920406621570943937458011815120019190983093735509772884556217122950955445513583600270839118940050377919431859420936500840375876073585968127605373211957027918453050873301744151997832229626671559762415091215971981059030241884046181993448485648473379838042862443969272787876082909102038140231445279631952819254221212277850311466602815664867769177863942896683213725798133298765857521641426856739333302942557221132426037246374297424865495488544328119812098976564854559746918392890295354918645472493812516505554571207496978834215355301145998872415167073852875851020765164405369865688308362918313563426876147399897916474217708120706148039605608035865743074108814771817536658718160926464802525614670206252661536293565714606887512588087836938866141120301980612056251701622189966297795859033808217787491981948962612077592174424909895831678374515698151759659586679209801283204520584415315067530248069243691632092335488765167206444720390009455559764742682040415274340802299022187258547021721093754224486911576537341870792787438379539619013599658884233866585935540096899309181600584688387640246795066709450324703071973875601934292391293864775182989505973630898240693447767688266440662948672298370585090644997653462664015160496067666195345775038190051957441712837550048638365488118791661202569368683925552177544404728355583258041440258582139781203376285503995466191010213004017894564170052810180888377287871751191243634211143773305835279335529873117420460031078664409447800454923807530666290777475841950652234433132339397161338475808464144240305703104390916517433505794462257044783833212579714886183029124412467448120158924689329420445714257827922192952057001339871113919862249152922305379270571803434426365297885541276134091261535147418507165470954474879869308164241388566764826549350694177695000462212178652739095611304717967670949775860818569802278062754827359507536930073010287556952215566288547789045244037488262909726473048424369219398048638460661986333149556492459517383088063586933767989905535268778203061986033250149440553617017813338505833110435261208561295219871721349677049551577295360200873716442141891386211487117575181546816410280699514682555556301976185815747948079969475171961391084345181340141489819272894413681665900267865253169037260281656841487644250303153472132255388104838963375674439577238561208342085641870437338697955172684858260260442949448203237121759641584995824198712782944186498201362824135335931611906943669513310942070649811911881531474861693852883336814743804481618534394466151087487346105747784782329104068658457699076810343347173555413409799090414617750804968418721199985513013150093549897314539412588061952004138836870506826345116055578602181082985965270163651491744587294425403436644244740202126413952317859891576629783874294219852492327771027739424041320578083272428051235807808334003774799282896071305455224005676742602066982334384441279605115788892372929057504739953372848334261494774309308321748727495535516301111427270304431250921950768707014277158672938015071024474869605225421900634133139651946689069477978832365351354382639831841159400163107543020307965348414466300867424044788864380399587742372797291094402356933691634504066112880111747804504612816095317970349243491580526319451421980118811569231008670883236210430241140697310732813083558955970447714616100381230331787372841429925493949101461688322018977340654136694706521263979116836388709881077593567825326386353209150518231156273675608580247633500142729839458145162112849204829576009764033514871464690994204490224298550630458057808817637180862939429215167758834628818511018068496416859756256692506394257844048599296302757540674119667957859419939318675658338988267703557394393602159195596729709499096153969763189444570801292017230084508288610869820135828086838081578867223641463543218881858345113467515485790004584121558916986761347789015395557580930883668678378826434210988965203004404320295363430006437546020914748147046247923090228263940417864635867638313010513188944216350674577726777080800089159923039129121986541627696064237943689948416574369951528929451765958157599055220893882839815391600368332499493229967312502394355374170453299112606329787824015852431926469728788268275543075605005408754636045856252080696853781378681271990949750641049456513624294769206215470586337987533721271608079958129892604265798709873851542330425995287334751929284360284296188375421466439206904421483429550542443712577663872802195420849409007521922579196735797804171789286572062490311770056257791353284334699940985328556092694235663039358120448181644996069904705164026083368953680653877673410112829765601959794639039343535677378706308953689479195441480886837549368570862166032159713798869348957384198354850183086023769856063062195497621894313346634866746140288665313726730076918525760479184130256091154231141710974771340843719243079319711810262777168739339458537079735887001943181207173664063734854607184743436854439804690086573573172442029344213214715668000090717336972106283727504311284434242850886631649817442458996035876408467144942564573451192491081386870932305722286829237755368140676806314962931536396189431142408046501270807999952589799791141096448877910526037142810224607308585171001756844552148713450468245670410990891043534591846652853676010162167228674278559026805147780190890184235977351992181129237327706090490928580492758181475816940297150650471240665680501044656469115550069488530338473024625622889034969832069551618716832806125761136069372209178207735075989888298345104897772444537762487713653174924130087116929178999789444611623819183126704238523126516326477594658844564091378219489125784551605850009096627060685212128730796818042470370829532410209254886174960237191616213569768144038263060775227534668853031380155275423221293399403942093691003547855037468495221373195737703173521378757982573645537595928653686938466202973659246343696829517063438825315569912078897490958478604226947836192734718449865587189772231954077255532006896216517185398065048587359854574547965998607352167356723298484487263380706837206207059771252973028796529888094921965731343144505405567090110934238824131437997857857779720524263693015805361478951399066821797304258291464855517971680371153949310567075376036936404201037991970661767867863191795649138180301958397008762770026540340383958441755283968461684511881412732414939931160872876665874692462366231034486583706169313816522622907587096685433703435582852030341331001801577916393068174330569551315644985110594259375705380122213028000029687647569477182820139626158816603318912180583590921778751834624076830144511982511542198738391674877665253104529215762762246882292863453409766059494267216687232496476971339011062081595635530910327281452974172294825665624246085322261177261027196240826024797694702517723756793400317356176660163194487035365385945210864502856583049472433293830661104373749369914259963219383688549291994501730958153348297346561026517461881186337293791383857579712265725571113554862506214708667407962052680340983201569253278313418338808223863253554873767711927396313920342709616982250291689359433885755320286104002654915249841730096753722958157799810611701533033138865213007552669656184444081727383406133025295275678103590732444111222024514496122646790570348265810048904100218941795443371138803704775945789954703719095640928876334893888483393590258548333651783717686592306495182308371919591298829080988767828723736415519499286753526509959519069231408639444324687022303965977062615312840415045158115581561031288514496324886215820928783376434476045203951417966005822563717514325374481307886284863183259671613802082984675766456316191845412312192076411899399218278301891588812903256737456912249784806845143316208095765671373252316679635701573653257798067325178860852896535980961189979432527307395245114090894842929174967721870893268632076743342691974049914315134617716915842752238428927527238069125917925319284139858124839448874954300205991322558693501279691962533883917700535812229963734178955752658173953370939984235685344547914071244079568444170669090276008839010634486638686503043225015434977619997930456033536870489651275729898194728755700612897893256972014030987041420354782872880121939432869292355213503024288386908369406869691569574073288304867224518185991409455726274773079468600370149999887611449853450964157818410728086605056651743773752308138756434083374026418460144105440648729234952229694998456156225122569226327991397695490909845518407989933503205255858800174644637465340843316100292681713589408173928893840786779451245693996189073358092030716941640889079470225365737952452234726883281876706950142162651879436427475444815704274033959202798297148913548365955134822396123056851383619840158289806909035751782118883361959059056744382718171291248836311465136159024120297646017492345804972544789720813637049546588855467918358399816819515732115793470048499386588171922761175698001430092652355218956887503845429835707359261566219812455902384568754909713231100739051476207245362208054508616923115459153850927611646888781025454237926099873520121178450341040539021686398751343752958119020560101496412667193463779873017389511476128614003623047023907243429828548222569020177646203501927782123639448430718144802575227349781773080898956534523227847233279900718312277609390590395713633760858216263450573776040405786987020578648961611592146970362691496402314802051766966349770085417346253676213704489790674078378498457021538018853343356956726104223622291617007578165149556615797233173803397332239867606286325533905596008981001330034767232874133886036448156779959391440849588267936447225389232015053365948605602495024142221521979321109114167949600696469926199310193185632693178495433952528137042049679341877783728047271750025445876901222302736712997745424970574262153647679816907944309492768466270830567411489508353368123061322417369895681065853312788275321686451425688719384698453900698838193831001862318956877511351744225826842644681186551639862620195384037572434428082506497595539808720206755109533645480997807297002884018189412291863199910722655423205472057182751446388611060009975293249518521498482788409212223982623687226663235761870696781596745538869356105123499290916720734377054682371979384106715386637207374331595892744546458341769791143546544800177227727957332830764986754760498976892149954477318955062237294310125478036152832780367141235177601416999181799980870291758796450568801693833559401840072327722729391963861640122184129343188119546853856951677655284251408594443400218965122930809245920069169805128686723719113782675593527080945281095422761479538223279843750528300207404523802777146981319964430555640209919588662527617902418764371584392332280103435477672880115112800871085592254564159317241366810937828758902585568876153270667131199624129638589149470650958849269109219953683207694770202072325168163758705150297823664973221891822027071004141812874682775272635256269711039409046790832861023474767065471412961216494488245274710715726971016483223811572364402021467596564749249631435999720712423912402095592479493601137867979315968767976302122949171467467992871908197142239854197788968901638425577718911701209495618777487669499115910828504294793025693140619009065582047175709140839348647248235102223700418249061205028351245865263942017131251762408083077473234507553490716936431470527509354625417471848004772208417614757242072168378679131404514283002936212288013382920943439157223343382416751180622187031318319528516662009820378491352742290664837160423522118969104853188341771903430892465856033668614464024974008533738378498338517298949994631253166531876670844984614060821131256275899113301440415968982819125582539382431245656194251480387928566792779456298727123197218121961772109777132566323464716482465559566666109806869902050924978661090753790919336336328165401827644022639277785562764496849249308096829836349417469015337557199919805401079447528731135546281792267475436711328736702956817030968940681898332620094410132856847363884076130603829065042553017120752598112145546309387614101083695107957617627264935318821002009019442733539191794364675209828005263848237389953591931888850623589794401918627454191496825303576559508474626290098227286235988379248889190993647513418376549771886016402564676317294635373356789808061260679819024397375403682687445180342426650732103924764583867343733078548803472148671194977699762201030518132205692736558097464034129343474344181752236451795377446644771463205844927331328780570640380128781718495954182923725220382764621298196795457722801585614417401043408084450471133494580576818388315690087598564310309482055039129559841734604616939110358386411585949493916452663391488332474206633150590730246397006193205650063063653145290166958468611666069320389229662175623504634941392701998369100334050997963695399755927802480484202570621764539922784125871913045568710286458059963220206355154857444080707796668508798566758128091345006955060729203704425374711705075922421273482190927892404202996990238467258922647855469417281690820987546929841230144637565801560509274242005187702370624537023150012352665087284001681653356265590356129701338775476037811933741539156942052219742945613352407314547571650341280092426273170692913822026617720222367631453485967866722748660947620930519795324169724760230959211055024992168927167826153743560641217312947035257304559554000538359655375555885465474790688749672315776416848405324395517404939482228119895252367258591815235212221045862801600775039228120820445925361606118753843032306800884883265989750208811789210140416436291030279356994205658761080107497955378706407391331506016886793967926436523502499584056128013938915131150686342046739294255470761350934322267412266783410535449307735230958394596391785517313284913187359878426629949276811654678517252177380003072503545113312044695015027329105220857778168271940763855145804372148693571849041721152240923520656025927492914515346241994961407255641874542418067108581515201494284728347159850111148659176742752699359183418907748166218663024955055975873173069714620559425787772903076320545435795918071199678506932728090759966437390373367266074708385428630280632606265361768602308799163104868328590746905294970500862634888532844572988278007682456195777495778863175682490381365136049977944540787968952027721599956887549056802877987806709340412305384050267792137064268275748111770654593286181123789298278943617501632677962446456857727342999373610243175170589027206998764050185366468487887290344808510630280564185809926686763340567384507687256951960570323106313761355056973495595004864793897576549470561422745575325852891744260430689605570273387336286573323017685285123699456545711323465654392380322153814322980451189039381875228252396013959278501853760442934648349548743403675122122462457694615959379132119632672289323112150623287227225308813348960225746412271059568083646641874319086509737574925650136428763801047024181681768599184768000013630925147137060287803174231751015233315928503490018368431037814426867833871545917577589502008295440418282725973221745813805442866227592611515063435300255086072560724798737433609333780957901898715740265133774725860467871905043660601975888324823528249161287835726635829867433389332105239538568929081918525390997803400611241020240842832218995631981223741202126503985030528151035110115462580222928689708563041485021108950199145740172287035709468387520863018314881004823426385931785298569638467912478081994102123651497617072560553214397025167403867150826290952235841272557632344258546840081413862304860522045066933594112220849185507962596964629057009559460547555548171788995477481839722338187854076307430746021140211578468854858290536489015983639515820981780954470345026686578085261426923359277016498305107437846243884335895808797652243672318960601075614022849034520324488295346860626297376911030429090011242019942598143030693156639880408950345569507898815480932105448209516104303215503080286486031452258865856216248087679176023127938062900495039906391224690551361840466224764889446827691284461636658910317929985063199237081222881884436819196849722352703780813987872784831300932547420689993778906152263104501840569040149660943542744377340233128935696287131767630479457350437251133895864638348904753327497365907376966118844134379607900461154822700172198519191212861901245279713747873613338209681317192821281063345421532055349709465396517371355789785496945102530451001227559967954096427304902553169269595945818090077265508494992228807198184043285300770686370278259759967426966863757580575098820303870475828027039348016437244073998755913659525259854905971544868590121094894290112523108186357478055291987049362017339010457655925744919450879287312601981777500106135522195492872412470283428299478838606893984490833191309687453967947425387871497081619354601769140231614346193839530260208453638250691394197644521502860879328461043239609275633179961846174165440874848816325282845678254182709826341727277152347433759171109192979608595639880502907221118012254335801730638761432895022850350844225512333484974552836371682194825536247405702354691825362273379426749209079171592903355270092852376323912619145894693257491758885687293743248351134807937003984427203912018912617300352078458625888555596045652187074615082122588678364434140767222527238976688753954628517577890850707486564446430192958497131523383684239557417632494842537190995867448128527621097730068648804856966810483918252572443550152001731687362006971964200189303778559694702906728085886320762356612235131576745324116270428395379038531986579803465854074233879876820980121561499651469739237612716348042309337953362279080432680109246947645330758586201417918183024734667393807296814153409746388436906398491342441027649112129236843833417508159735091271121432242851806809702342951044637348673190722391943797218903994757497120825110923290447737054397973907482637055495921714788448696051904175515994580404603078588446108493542502053570951018448278742852478636519782224954358891764782686068104460841646765986232289636340532347699063929009936903910335050890914059600279851048806742172214802612549445369582797210070758325514574605126280073989645262054329657558106707100439901192575044516800083588059846024905129388982041359338954051725399607280567984955484511272672732760966965891978409425380255380007108088583330573875454827752740796790799915570569470430155749343597944656847521132288909771231346576270123268850489378044408741432317358052254693107928998887385791157206748708151558897305987116042861825711419798511655418455359105931067031362438800654431557511987469036166831389122591035603611397979388933863013618982921328575240478465672934833340196368535038792001584959326449699492687085345187351119143759480372095175070151985781877438645040975428213508566109474040621493440915595948680513181338443655114402512000673913928888445523965208917597417238817338012939214116280543044201419419799127746592794069446728943738817180129817017065559649504644005658277123447962268049080208050316890047638302528097416906845401127955431629753154187561076299779012949385796067959515404343413687380028694856976334572336293079774357623856122803230080492152072549128594160184256474844019998152828747343368540349079718702687183978820711277420793576856319961768485413376052380687654999156906800125403012772032009586032163059044267460794582949899790963620687385016125229637572534097787883898843994365550766910384199083669718232198844539270578979469860424666823192452482252657066391577581128298140525991834684247310264422063199761143251998903748874591233581850946917753654956111540749612128459763293467219973272651968463537250741034652099336479722533541642410549433704810902033000591197620750430294664213360257062593994330043743337600385283465077042169000084510528255488973641635586822417098862043848108178230176783021309063391812946350699816813647048225212035419344601815736017793255626728988444364427547009707433880139696691378959740541343908199736050422406308981191264805563418858990142220456090709797343235002736288255428635618363103821047511093487074734069959281052141052749971607097281868877978040376296352137305706970475545546071950712617238964009131771686873232609845901723113771752776221995468774063912672796955863742363355612579766339917365894282340538926570678081840524970104065014288172401402844848873781277315323763774779595232682406949636202330830162516894112712200120499407698848488878905826184711518034267464061079889643804770701973544022999109317831369086207431534046068678686339697803005720705651378018558575463969685634119513594625816925322688201848403140479245948909202789593354706890430118672741671604078580073567977277820878182382903488313873672797507987136590045329547631418614895808372648263067026304383679929853275940812260408408602686026973813341218859355704894543137238332206074952882642327901705578001600735889671865495623204868725081615652064157842420847243294507166977623294132958886086815704528123755735499531690203422243213878656028098076128079190850956023385907845584457170488300439953196599913368066874888747329712140107801093585288525945500256329539019599400046362084856659092000513908934544142245324336875883025298175728285962520425854509920339023400974652738449912379155305334380151684935882154830416749454558533204371156377570343658517661474111615309279791450025438744723045605811908141543339215014058472551214656388593171992011622071942069177929869695116637498256568999404876907073657267362193637667308315018143415312882690982194002459545504245591104732356724704315562363523807637147409920227284890210566845823240935606582328125408222636838441434595849688173387568551759474171104932604274688298967840279077336294936817299736699900688754573981957762384856241748700706765167980052760373386526769882049281151736933390320495447214015072500355842274416532241147990847784803090354773693680600110463012357018346246985631455171744768463847848613716157631529833302641023349986440135681553067368135967993271727361167187690201116232983542353593836997705268924101874463171427223320434444853943363400570346761617128453436029916568835361136896510355734436454107234763938157706192011968306470030658702995873161904100003740423059563353623633805051599901423644013754143471021014069638776194267975988588137962832579966818274359409423203252850644251524148130056821952717957940912914326306941672048435731014388127553885460572235604027497796281814275801264661962161174804248996580418841018070129532614917703274267427665970764917593783474963580846617219882308861311474751365526671605829759196566127674205678821061187165744731230412754641028898060818897135006318527782959032194647017329069123103897886788361952323396745462585886096609999732056760917836585389529930665028980062607001470176437213651021483110161006665782069024608046469683312143605349580901669880884952169991109724964694858121629703841601282542946031208292146393760582510900373555067049801416716383403829052436031975978131304186352228053946701301123918290300379909255448703587218168849790777116165600156971297409356028125342334824977810267713891802313536514428489090606596807691664105126191588292216591462551052029766622753334590550448188491329613915482142057653882543939313208779350341132592608174065088282249247352493553816278035946525385044968993096874458132892209884490187671768587924589777528597773838455113653035265302687162643646672007820407314553159900724624693053527900626343293367082972238688002520420856193690004733014195066189422940932313796744866528765002311542617412762280535489955287324263976062734973982993739273035176609027064306114214781628162994254062915507481626211459774060102769307479660173433844083677566880202363649326747565961433374775882222934300497630846744986002685749553713910725322049831874192677237520461029828507251491386052698987896817489236557670336115768806148011006841159638222581368930201156164675943376739955164795014452834794003706048886860690010092184077012978583246428990298188088563127551991267126640445908759531080101267956155510706392426935326643745736395711313885459386470019804417120845709444191227810376548816441002692112669784155113253267283887755560183632754993065121355036250308607072893332647770288384700328502777038543822101101978446556240102251578894692772359988075269312326523044192899449831674382123201293090303756376374300576834598366018033429155462122232206327576959416095540041842199856905874399615793561347243477695206140205771088576540421274769575617245164350940246500405016249235827454777377006688283104006201038680680222246903134224132323345652357132720206840832486273604468484373112038728121095153480116471466321638692911341684483259836072875634796415930206549945688360341446191358565607427530766893054368531652391936352384420350179958881379463739086550525649900880946193830289668794725886955686096969259367737720370717457488178634675834828607334993972864481172310221522052865030942883847585838252175357410936060535524523554578414124550255924614703192055255760220212919630760320296946823887942894064405613525668277763846713892590661956892564226622290851363494769859569217010341487986206433401362927337402110407327603827238782297046567009548589922548218391701821470436483914160905930950729697714221746035834101923204229622907158348635749946506000989224899029059830644994847991049028724769945436251616527606551551961512602743411300568311018399691105656948308773623353288468948980548797736234566765024218088126807795327835679423431794928682067796050550770170707527311326341068499837196649751368074118367309697150376231955728730096409111718872770421845548524897386999545277857404357809168609902306244052607088697360565173106247120131879940280792496604926160479702600840048927625201040929241496588529312455041251516238311769167619581660897091705573507085598962630778353967785671411175582436039435626446934006877911016871698276119682403073257090599640849388511987639432241055447055513267783632824504998598090580641703667753641629954089480005160777165305248126417987341859572494106450334149783369367978585613052853561766875842934384462122723588302986233074447518646721965527827258499269756485717046147302917309030339111591792857563754688196156436977042024606430616371702187909980136154518537646631477511199858221037284301302107816088941578677984497158214798186224863572041044488782084289102989568778311985749888660757863726715808485486403640026563302185058746729444363773580597340994751837894648773632818741069982963569520954970052091061397990352836395597731298803590975129393899456820110571044071621206550002734451145143084183071003464894540690794066503361364310331468493007928896974165651062441432046855696645146897764758777543940493844010278607986444109876954341084895589976007385552240500615738344309359734455806026390302971047621416115885671077373140545564493384689493967872237911148880633862278944469225850606607181885238153042802873410263122204451739013216476503389326705046815453363348422632166976152987168471991558516268814688901377801528556471393691927490414176460049041780928108268076023394814512266863640613793746764677875364145994928133261349379744247274636437922583273667473233327504683054592339174157583208401331770998717271813637714372058053027727939428870062050800020335148694545690141298836194160327195085161635844099920633055210861169481592823483374447789386987057964372514667801113830303021551430839585210112909441888228507434233251946603263589111094833174213727628613770621105982300221741699626003589476177129845682811681036681917618860060320347872611673504570391636117311795703559036070372146534764950985791186616616668760293505478423715207871523702391917345845151724957209038558441299259900716138349101118891196657374678313467929848772947915113188238740196438348819829222647163776123390683503497273448472330742807147128574174206959622619730099895734019371623257125073550740853603239586600984555783533171407727250381534412775039025687779164551834975888735286348806105880576353833214083833160071654418269080314565306518408788306269940963873788619521424243821082145301119889798580441742230531361904310697219153863682450380580456556930761789932604517471112815258698161257555381434589630028288875423156641661125064933339890490281616249879142702308868872509996470001670337447774629876233497802619307120011471329162913628289831737810658083400859504394610260030311994328014502007798479983684657590551934938894850234787017104273257335604381233867796811338401024242600064933422479687938060289185736101891918531064709165358098158888398372660988993247179834300555913967095219083252105189864418909901853990363839649335060729028874647000526384546017315885091733124289744429794570473682024770415947545183291983849936290280575096009007620268123253081985418491164081950812216432863121703979780758808152718312490298665377976475127999084535854520587043506770870563088647922056626026195060964281885232267560990326720371505307125769365453142253555571617072097701760259702077729104666613151152900760904103894858028419705501800866300662774796406345182891085664096137562580371920889161865414418173167859095532403596075144301476966169796418415102532376234290752976372736729212082802035734882142036893870313769535368061379949377403232544770714649753057484095673212635434281786938751290886450081067557258038808422446760469742246051835535832406584510569668200139750420114541918366057715377487221515113143617426096178594583273223011132104281419894653656750291363578836914317197817325930329526809485574027064498182933497482780774914611167491670521412186048460927136550748332209602250612696083682096233778584785795298143819915946280238614490385646322042521115016971561013724337185316577064308429542131517793149567576111466325253182143882521225907742933142629190913284629422065948349670699949151505083175113806123373356277361433368116140363259874214643453771833230047816500794232406575627796580678779154215215100405308189142539726400384771939054275146707739322937456494007704247072949940097175064818536280747594220238065475972736620967200597328285526966052278441215557006633142347560555272181642701854887548386638885797920000939768177604259327041161598382201481421507324648108444746373238372862330940564626137373619882573879008249422451902406208315126044221605105042927465162999882680794960559562063677749270038062526268982041789487853336415011746607564105593708827386297859439084057519840469826266192720561807936705457452511389704433290275742720781495992284925393917342383268937095368066835560959340546794849736096175484197508843540883966003777406058881481945854392560815826751905819338632210135235583976053458980498698482805935159920170918610416147463665467727673807693136287332245834019847581870405037863672706647324104081525329552877701650443073387052394196889665202136740410436158843629092903618273403225030337903746947698246933958009765042442868536572079517814276584883240463865059843746288050485574461615030126165116346702765864198010735198157486769765642266293764827213572247128457922203769820814989769653567168542056754407789267849709805652078404363754122552369865810793029265220610745811612971878761939585297241829431064706726447422418120523253644218144843894018742737457627105058664921266761155843033072245490618829294138335856668156381423385667048309144077267051353221556151814281039249230883990167857659460788552078028434317599579835406321875086365037105490300665118885253796703421638765496296772392817853587387686350031114616367573986414142059112627759911244260548365493446039019179334037997163611126317473744884170720590237118352495644114441250309339700296437828439136722989643811566274101724188852607850523868857594131107656655112586779149721742916393978564068432531586353481674870988517732436828212414028539267597300026165122789765099433867435854935687977380215496138947489388950465495425275183203282659739129634902015851689058473248393229313326922213969387985959132860318036696046230507600256025219910979281426738755645685022289979494334786607190692438797055107145905806636043656342942971673222225855876101487900784022414771676213518728541262832544519987605422225144530328260612789696257725770616700057019578919370923103172099141752604980974357025058672569224797710096122889321450869787764170562150118086194821425686562638407335394645297603055000149623636389911024926889958111036101084434559286050080612423542281098665602908894648063919342519441820390436189772754996565845054487743103357249866566729165847423392004129429475174142996783225735237936834409670757986775618132418766068930314396274246188759009460185065409410982420794369819077007784299402465727556394887361102393554006115813992619227054508852940827026080331487964759341631850179521358718561206046362172654539408712245217138569172710914039899403862463081659658874611149160791609159015437437389157699505048821536170566024093620679934682074239023034557304133263916621820701589635534357900576095418020730695787672884421972439295738922756939281229910378367890074785794386637339574230473003068204066826622220473821929105061101148637573824026216410452423262417451008995674583294062309392514289955181667524090151691844037790297030611113522795925048335831998946143207847375892060313588869220234585400486155621907498155009987366228859798103205463053823356273464198501408624171506502809301339871395677824009131458484815460208534751004132721981472295079999138580336044642299266813982872867572919226903605404004033572026864099305188056109815514582270169270380353791203051698750782010147341030372120257212913793150888000295337964556558234543156657024532255423623825038284895798417342971528361032565182179844085306086632167339094503408477121211989133832802366704398773129944923012626348391459335008495599247142450969428112840823730820135486105276908438411563178247646413772049309571741701903298189312460396543380574240510596968166802794590539707227011099946724685115708423206272352683447599462221478684062667793897410526894632907809794267602614602854559032881563693527306987426619351308563250750804234812062228676820062310458651390089601747641544164787886860884353240582102246910272337369073311816297144519675737711717020678165623777432471723393727943187796288704350033707249566770698071887365314922511278749523191417666592941126147551389176571128551496216497001481124780118271742594419886239166079606601881287365905867373337420571375216039251357723774518341937348803238624771664695003447984148787960952114874495253383602784925173502050731358747871976934929945010449632572126788101414251719390843168157414144700752581577462326486325627471638606676083500256718018797542685769847299652913357265130241226753360031735799342156876075274066192840959469453784533426617600179206707401400446381234683130852680621796335901909808143699594945399546701328871700998303626735272214626059862759237866181167113456828584860527107109470192088316138595815383730535701544355237956156306036762466653126823456308231993554600849901997561912612959139140792427809466688307927169698411607863347687356643891325587004229756355948495277913858915310486359625714804412487970741134211371380964858975386061552908049502027447573742512250670889457002768579443482131824557229935301958442425037427559884635196529240129188681604742453933820587210258378163734114300386700509737716277748156620967781570582837434018239264290629020143628127588846649696739313053008220489446845819528922466021054944987623683384706397270660423609570386345986239546545890219496498628171550472852688447121662441991089130880615481321355472466663244988592678992028035566753416829741587520066095654909318682243641628134856955245253903924716704690185030694271480352838815974196218974650780364236177896646328857244799644037154683860980648387019261329859191844173230099067362950122805524944027465947490490057285454379365353888730526782066518641227868559502883867797000048039636385214051958923864036389339521079565402844950186941020834264909744194038747431872096138170868163031285036087241960324340442398107385790980084787940126025890131839467089265291889916251359919044568178294014059546017077523775525604568150267706662658485401068110406490960494696853658942426564791010677002541314147581815767896020987475383792188710746814164572766212551057072765829156744267361696676659026126767144424903035103591528601877846713801146699846734681902024026352395239557333323001753076114605551710390474951214363256178888990207020678092105313290108884204763581271169502740985446400106295867015532208656505944319743533662942454431815682819834116891473115208846348509892946937215312983186690424171555469312280164342390322984196281719196945298815039961338832015434351049259259359562787277523758433179690298231229745884237294977731962852907621821957047213310076998164807956644937192458253801527304308560124430798478491484588490922525250962894229240608841028777157728135756166488462689066235743677078028926809674234146776566160288384300444469146770126477669574535798774377985521963612111944751889541625406646409656775244528055393397172514956644537181459122216740787315454987506181754968793614438298508037144995638312751647792329242178749709435289422487762269542095700270213789566537868940840575367245806018132043755840025856632390835819732536771339726415804601914423086453272122981687197074356563049804378177410806449731186881270739988659401978640745926772961946507315314032005456001824373270022613581614075121656889323388456516111141559101479142922155272710905633218012618572173486546714058827066052160281178388286530498299708291207649068396263253236651804574324687858578388245503046928594768951028832100098522956862401305953227278162486229505670719845463359038293456707306788835084531073552562062336021160675588617578510438791070458191904394906281663254718693110526661210629509335227344189750073525542801219002534853922434424974911322421684110494689461718672416319200214526101914817224196217417487792653339867248095655450986660909807576102741514224116128397646372455887028536958925454119144928924076584541456102190209376437480358545044551729484598194741532789733621996170662228737442903860335616304800228022527220738334108086889823189276756161173380279763043946875991357288448619190342467818363015146623613781363974762910212650921142999326172113871359971854786448898176414185148459781867155967661798892763443005287626659764108248919660729932639946826157279277461276896869003504165465425319834424387218622404481084045417471715829228946850407850698081811551768193880787008182154911601154065621006389086708765481083522397209487419846129446695408985425843094657543356208693296075758083864366072290549995273658007903689731202615224906727036678091113842950288370940939729248033639180943203939007043499988058359054266922524055918015872388011736423272122395410200054225646893034692548944150345387739723035742403361907210494581649089045442330413083118227812820875731006045650831643228370301375045868534491672599363235555197832724056189228430062056330532224568612634488293813152018926571545271534788137345590552085470299413606719150037933611262598336544938908965310770760044184564469912561972815922867537882772919314874549061845619185783012825264884742987156819528247609848933769755968872110591005669049857202731274268695266523174928621473271902619291829601672746187271820117217566613101731519821415297400029759798918803489097561279637988280088209482245380486911250461008360612149559392992578604198392083951274666103670534763625361579557975184687149730742331191873958615804382353824015859084205412274658973587515554125152850628959945302329770410082459176340538776322726649058698901715861235853180368896737960126967732771355140819712743468995925591584543170546222678428996958449740741337136468129063588856739641469968761283416856743035484667357391253795809045985831251684545271283118424405183886757426621214543416202257468193948306163255564108480832434151103564154057905530599723617497379980153478783635879174382992975001051125249870346594234840833287698139996754307859978435923466286990872138577897858010832940858115863540833965688499805102457387270494243818223437477239698488614925363094985909073117368982143907954477486147529355188427747855781396537966083960832804509280471682132094841867030838278907511511280186969905414316832810839930323317409243309796929735589313132389249723554573814620206523218547313996522108594437478396450486218247728827387598542138356381220343039231124465257076759285848540062656588739055741468672049025216462896190171043429338374063253085566978692190681076161992331149073510468644880923816659031490431220765708824393019383307778368700746438725880774683246526868265053208646222915368941296048733783023901710327410288768171428243358753922310033456833044456564592739472757599596756337475687290892082862965936046826563378011466143840362090396309030156361013395468679669072364620714943434101481869559493256283544486131029245271469155045048518432021570005305476441224358673278008129122723808199801749681003736392348723498226837914585620524312954581089885438897611510846418563146282008608382695824195296643833486270502601654871643310194741014020738928716977418252170252004667675904907367661159288790066546317391744313310426914933851667618550519875310882654651985663059881875055642991271385719607158016807470621500543075241303020066837552705001904582586037812605598035869224091446931975515498189820794700412476253282346016816074582781631198660391644425194815305261244748691671274942919954644216234076276813209900198613217286299779865248297941258408940825455237736479864712598220558467423178349765897052511355190672895479216636289030820218488129139921339015396307021412701321719398980178076331712829074395922094848891030853912931766031864314989193718057039999946843002869532990076627161979796891253559875406755075534741298080994375538735647032972951398570621463383586454544138848352979295824347757228088541185284588234851297662852489668493479244949037800979683577001126520202301925748668409486562494049080041523710596358127930992291217702618805457310561901637216629150343171153290492920933451120869669188112383010118749194037081837743383468698268655746452226346232136294302714229751049976965067826324493163302631635791510115272967274830056161931029917838926720393660678151617501318219576598008628679224731836551954965331113774425532672946916396891464647024546632586229711050629027486708499053664310228505658120128701265441586138279484829800278367609320058092683974342193283557998647264207944367704216489769732258401591611499709217416261378335030068415732728279282097632444114088851469301003852065847264457915985834063912949932132389105763687439189147549486031056261120214130357905848167450181885787738327853725829522052188920427946604616845752672636593001378191319850060399025969768517395809892777590068975289488281365612448648507111124470542467220954808224289060719233225416604727763275628862323040161084615789410427182456431109921432287057932690915407134315244138765053238091622425751273764686597644228437143194188544772270824126075208462016787992000299537760032427423964760514503372256581078499136854982212239172107200182269297001276355057299436431962093040766491645976087841345498311623824004584081908464912199197212489704694512523009869138258361164498262982486526325193061002043332592726374024553383873892547320790070158335692219182041019489710302851761751557268933540707066919871723458644748382344542583840436406191980386087358774102550954554976077623346763812242548651398218804814994993556536758037904089206748257643127687538883517531988475436221859474481569161640046712076725614095181140707044021785768161215254745369394562728467041861918843653387751648025170366540029193013566956422725861098701839443673874241954638400467139781167363111222068219012831571245684133092538993230814806587265784662068971162746915534289757474275676934663723051960416619638494883143837660998431797914808889815006103239659657256416904206942332831960156789361960996114529058057862742359992193482217569238163457110698814951482584873616287242738217546878561876345089672198095828586248833823427223458972956012107310919639762002286998143070888997162269642976788293620983455244224010457067697412683959719046250732540518499142639601409757678064584654068617545740320919276220811283210556435529410866975104660431844982134590858521671317764266934457899293786457164840814160354335389060721248573890819277201785660788671194612268118589559079694063870483332670611110159454298566749784245536662822101024143725582069854692369261700366489722915670344164609042777430985976441277791679009210420825463324716394544702468571374798025760583978022393693440745596377361038737098900437635494021553475582520129248500066548041857981381122959675491808981528347465841781139980869336200254337362192878550103405779031927873392050663759535483354964032101482960539091557197407605129138820848238903435279482999138153826783040624973168242420705436053798701244799533079418979344488850199661983930596913437854622872820131891936229421799959679743462885358057746539666472409129666755945241840870828097624629360006072680145686724835843073273478336206885635202590408387609942840522460401363326784478900150902290790361355129081576215533934410195281265643711969311424794699024836198675952000234615540535878225198074149186429907580187660950440755687062936597833344982779908510106092341105160652030664904543964881626415669751041080066402345919913726866836454343661141827415339294080193922247088381527249692081741761663292564197164552489758877959547325143161509038386189627126812862545106436769339387162849724709284734426858047027839958859782836267012510149440952688287682614459259012759070356728748429049057989356531775932716366251125950415803978952809223445792933528728658375971874341861847607401429838380051513408538169724130711346739868619654392722312702649818216242026957551894955785274304944844042632000736927197007788628217062234229950671160399891464088199535578097274234190770488568527688083762851497505559843167178901730751951148328552635214412363312702478744616203312343899332487137932951180248789277075774587976073276664967412659897880903546656358849349435261381350905412368387128371123351358702158551708643312695829784632596602940035196430050049487851151938174179568904191318331834788896917157674517204911081901229770412846099052364093457504326642036178639772544530217767305429327598206892405068654363710374140913179701244054993637444584224410691693772605248840759466223623042262181486488256892707151814882063695755155608565536004990961879770546831921960861659556313716340690049560372520089711672319974860479860894705564613299068565973258018776037411253326100591384063955118856821287156637294414769237535874008723022348974157372285010299864639044660666213880684129009245052323704718099933578233777665168189655213218948506709935112804255135206492683356916735569658113660387714458856560532546983866141577868716533837962554400127785005734589006000486370935474413526054791267661793812963030197631665179605601428755034644857152966316317764576951852071741768548583151824044023459265679259372765028300178171312730057070953578302847877705957085341109506542221588926953006084162560750947744086162350488753287397772412720001278070471651571050788847213965527473182039637329231143813561082301907616540605620782294851638424761929316157771697299695328725781993712007377917450628651720899381387515113236631679483339215170581968536826579044075939442577795728171469333786107637843104302932907254152422153991074104328679852997653757607284277959046759244355131977570258994456872268363514169769664010774177609994406647377300233156271203135305673252337952395963831014314398279781337486099714142820716090514204531882665920642133131189587262383902201547553903839258747389214264473844863040776666115240550897938740758144953873308558620134573233978107180695396979110415727281303780503103232201939796150676399498537641714692132326369273020212682880172218743003212875790240794602232128692333123397534335669323693236598583184728398803569243070311702291156277261952362095318244365741081436946544053222869742362213952221007495232321198222349076583930556804046578232782386843490112394455706838952331300205666758189951972677579515128144343595254760457455547768758423027312679167461453911257112962785075678022827933001525785376667354920829827290424156805168418377794501817394064928988017097113823084724574109503428628763089587560500075814354729014833969291873860060962241576737392115295236385221378571497069084730484619096421689586951350115427611514256432740669092286668276600836224174411973302328824344275914309038834500085184663867712265230711254434524297500994744410878635293536421810826389158946698373832628070293785425791833171363320497933089726486714384631586219006045535460759981258445351001671289021879009423918429966670621900403028642863149430631916252091382105245465829563120453218827157813482527474516077041507036669227995698297763793497830108839956495502758602193683592535668161471161245736904090041096449121692730542386588729790927972056556676016987311784080665216055512223883530223944489221309259874919851882268118558727490661329218719554252920686225186934582716420136355368151693009717875218480268961194474987371319174776812106175707105633923778927954340578608972339254293691737212050381755682315554256893672548415253307688216524139097425011597356673296844691790318495514657891142874844733342953033586651990237345188276133137870817229931658136814895947416127787752533076714883049245466058872169324547805048747368060833027154248136290067046548720972519974370395272386400574391964060446960710593210819240343781204659637942129256228696692484015978431198151619212165374400834177828104307309104237528983404989082417132357618170405732377315044188537781855079792099779418264842186719286572935837905995181356648417463444002206188823029772519046447348553590528772828318373659058354397908034731192422759964791476172619567920828362570852567827114070230161576037334571726098577840725541819444624587057684968460619049255634211685577890110516936420115560221054389048089174358881796508691675289802453827650174121539703089227547219271631282582163524386654362685499152171622694188028078557446910730995189580590025433653128874209680976690218712404874781062090184445772310079194834924916495374260892656794209054618562434134281123902326273283593910212422691472306892900954484011322765916176989617856672208746889772014708104660987655389972848284551405044742291929425987479672830352829967689128725320835599309274671560711810216252497468564156704654649381309062693584211808568749674383332361587820062380723014155264447018642323854516880370301882773846636699545031154846697035118116655693082799752164416211566063506871185099936467904741346790057591640630534363829034584577949790523801848212739121038011190365700648323164262091147477033670314036671433070229022650765726548315033296037359341201198195354712365189355433756519429833174205808871402599859006054041362038459049912563797013141082739216648280294464947357049528586954289319396200598634049871334991925447973005259217069335067579089758228054843930500038584147033474842557521124563236201473279717815257162224464866613902943901972153916564204781070602534593601205461453007484687146499996572185122781933326984552394863028231049026378732248447260526049036913745466718208233428122072895531044470132448952945832113678318434427885382952266595849274881674209443929696886228872409889488533709001759537584490688000342082465354951062096273856976795771462196156453090797476927964762167822727020255796244613545757240985106635258220314620923799075050959841461978099112082759538128534735239286844620088811050917097833542554227058485863099650579150932645390215058929562331438278584776640268592004346337206344142280415953630566077734121808414138554447713645169702425476938764998262252200880705771384435503903820139466790707128410430604988399537149683521991005999772821632274526675347460331789935653901605026959157596336589951120857421399719766877629897949315822619065248020525920274439196460267599987162202654944808707453804098471166157737304039652309981894482168358515419223961550718852764538829612043726071147686897727581407931430197763865676636345934111088520574949900247798426985483604786279432539340132185123147029232356856061843800094083463960649337280571890617125302858334098857285174169009926959566592990191625542839978078980068901939126188723077589028593128080820110556420653798133729577805724002278758083663663652747554686232673050352093752000395845384350839009135704532727778897743508246540285718938219413361463821679572746553776150901412309603116899367538450859035899837312621885862633515620799612617950827433869708841394150965834208791340275892593437574861759148501486176613592482187946196168088749474010623813633502411369850547263160953444186413670295069679649121441405802597141510589397514083628229065040886147122952754032741710057272033888210858068022191600635360028397088593991473597883046257992336889833728183614875292714661618517110343385225929009806436165894963023176590136075026860948175527564008509221255116667119238322169215801835919911595595676083888255305587882060591069345617621019335280521848202329480400780953820557071217045176306302030507414237510363214716801543096015869097258686357945398132577153832823600257520811289198240271547917923385936178216036469131346080956012526165395218845199815689776577606311530859339712225104975441918458189281713178311086189431882101341921472998228026074047449236539723102761970248535230402533812114216506825040297579865040131453704126141180185647766782861920229587006286101219226979143817597545019383163898519668868131323331573562277762760762094492963330838792944505547620445497988030625896718097200857935482141085028209032568085838797075973250134423954615121536667480573116630029822483527902627934541378321384764737214256814350558859131883426935258224775515178139663421098620293457335410935360089790577561207991988312854249076174684910924060300429271069508219155569024107345656712843379267915117145756162161283170485588665630161044668311864099414635808916092631892372504812461898589398522216586604996430586272198357883549594107971461370153648529991865984736257470324756384862406072476427706555284180481680301206081811796191071940377659805419315004970666328184853729901104613854769603553036135151255417120910921292182164282347380256921990760529724503810167582543086962095348329309880771481195732685371732896075815427586119754514052217150287990186698597141404005542964842951964009499462639893966578620937602280279416559863181461554977118528643349679422920146303441351513170682601549966383066690822801185725903115807476285771236511663759408914362334424834686504759754582044444073540279796726860878230076746299929398538016995066242578196422593049341056828043933318421286567514150061627327020977147570460346038423110955797026189483279921693045499617908345516461740075376951744205508542218737318797228518233892761484709181521558866865710938542054997287262163114996150766382837953093058508137612567295565559413009433936139132863309842109718196458508083189418756144411919076810029267110832199221433866731663851462390537983306916212775277444604816171760492267352811565818284703630606538343526143461256671611713053964133371601462793548498151586491668156026106712087451588753072971876285013729340945924357336191531791196990908485165707497279474381255562140329546359225531941192676020542913448099244979681842828324336167024266468519939148448189534660710751253191813326042584090272769984918470338708121934582424739225434659800409665354663169537843814739066385206995646448443654072474974616778177995162379049707993545383987474696900871490608663744011785297508209824444681531183866968838055894303264364656361272639948593748419444950103544971146907197170191421232356748436891526805426031049137668495168921836103210313326467510643945717710307564932401886756390543227888583122789602645366485482085118051105468842018763923558456670848328378279604236495014553136572519182309665768412007625712152131230958720918285497392308598015083503595563552945703653636635715147429474951239553728067475209014557345448077804975403023694475203450636994951512973263403414488417783349210251011708769023727687264468837722908828758135274451939435419769506323832308733364844477449625693972025391526090616819867383049066776464066218407977182515150363671804524999220346144205914700419213869344554496287307959079797962812532880613543370554624655563225719630111571154962239514567620864466568248986040574288975636364830764047971445629541435504108828272108242812229028389202635477374414291769343757835646276873380574098564036509226343730714978632911886341429955272964760451512232516512579703734156536928377196805829241693391062840749878596540000471105373666212164250685537991067046520528969313422900189884926789765116567375061147701627866070064909283932734110805152277127844772490750332967155662463122969908839030984365761903576467486204726023223208151305390182695738422834482400591010846344489099763503189975889134546162703277582380996173937899422997786403284726809608012469607550857280539627216141166121743312715568216743677983922606749289571776808054950645029694976819704382515062320916614389518504403105919414495838139215062851030343554435002733750948571565544331503169118294196972778968500429754986880929406466794567760564540663866620995520496504451533165721558959487391150208778905737687883102575234153080454514272502220036227707912615933071395740085645498330260752682479925241163672605026590845102650859548887998092533305496856540855129036244910399814051418193357857346289987929137967039652436263403283054517742060489942904164166333052899549397118613859755401265580320133587227280249276991905605065844101675966357993161489411382555173494224191109806974895117123172657462523145819717732442816494135098561165646238990908327100766144329633384382029897738005135610790575787058893163142473588557379941123718110046399118624514255257205932736175294383866468001701610293813464247062463056491008953555059258302437585217729326801198695152929752151164844758339378390019763980629436911278987933713755395451490061295056135287782752188670731394593288263758418687654674352654406955219814394283055502661928629255655968118696484753097093254497293914906472384385272503729088661590618478814114716834419988389280624017396264141269813969338882998311788315995469838903128539010809405142719627273523987986618334619141767704201057660697088930066342934855045653643661640338523659092054891524296724760391225408220112227002428367262494726485957682490311430244475646975312583598992649654173934833169346331745925860785498275853253221950890749654154357547124828984815137633751922893522692543673075687027871118199909862119817350003565847750213849071795636740239447655783230978499010127253305922310919909868485399252806824381452317638164109956576963431180231631852967126015435842199730200990547694307158690936183329812318026288841828127673688991800535503054596387033763342827356455447177331150509645495569911194626302376273298273349813762021071243839167812240830118229617754609152878291008426432474502296979505576187215068850208887944294013822069243889193471017657440012798274254896285597493146501778556358459824697661523397273794333440542354977013847816909007314603171284085082012911504298753214210173062218819625716832739620988909089913085340087891880278403859059202455064031633756189876815591632027700077882740248467240749892195939860784497037016675165040787087837481654889667778992395045872668898327571689457205641421615541053939406183504974706213521439375614600851940830224042319543766095344070548542419871802853345367454344560198580899344450585161585131229536621681548320254779082462566523912809614506167686520387875929006605655544781292202573563279171245970725923461406531128873724728018393601730760431540351174748930226799319715922854744969334799022602068873741635934224891894416174018853517308752398978487301770727163709513638988739236374722866936416274456173519964670644056324873801814045583916762758802669511375750631271912050211670319814095826873783641985338363603634070185098329419286728133700896051447275045085797325729432232871440614720806344144726848483199534826186862340269357430842670539378998426685433009371814673662116803104896461496897569274547286830102861803116178495485997547300460094721164095798648097278424358747257414000129687099648540281201142422665222683628133052096833249169474459676518084988937631319159727533544864992062581799388532706467848911183981454876979122399760468658131338712274995929650565490970590180297515709379297049791632509347756315328844865629082933306994397233819297704391728729254943621787760799520459439315886298846403755829356732841832715364855167663684800046471180868029625627505333276358583028153707092016591609457320869061674075004630217940245821828081707096369209743394373987697395424026416159949770018350116466294338339154836121824049405556810287953917349572753323092768762599437747491545227710875061530676368803113747378330069851380752899694621742823376683668641141015985909319425875655258897348263568035816616652253120429705169438300778311881374409349735653869060897717253145561236812838959802198764906590451212767162696245707113729010711271128706076414018041017161448198287007263445196656047720756349154313481354996692871463382435829619619611969285355187688358151220999299006956091888775903171836963168446102081165448719327801786557064711767520052644719599936241054477340422684853926146183605055645493351744354804887464016027481421457106129226360500645338495559617474727019218321761494061804426080255643526266025369049511944110195613919749219859845441326584181475561206083782814744359974774026580116465201396822169476289123488983564940080455077167930875271485468754278610507141235691406542968646063456004811397094190180372601457001654087211838307854446734158558145034527069549361586190124652842655457524105577017182299459388735766290134417776090011991733429024369501766628357523570164025010888306036549693624708256368871927998826959712522921979608968709525581312922400893441446983015538849676695987784858909229258079403529160397254843799625757427802540301740232278935422862420906548434218130100634180991881030686486246500522180514570134030254051172751300110129734355766801008065643670630722606366122725921890098877072562810566827971942743395435056388653026673124937057297720710244192979328619732869736494505564202703974756936591987966579550548147049202721377836422642752121949064138497108267078281334283719257078504467015056713832570861973090162340777295125771737564871776719756877814099431353855443754434709983814198854875271262625369011825422013289938072363226674864446798881802251929861727189685065425780264008105282337552337601740933362242766780411821963404472907922511534436926198331214681585909578591541034299430263170265012389399039487152786368497025740855195547879249835679735023107587872533202886555193797958625558635773938323678428800765675263766193350923993104466374804394252733472458539048580750749989021076472781566103820367396972316337773073125999534839048451013496663682757241229502056613181693989619121331775424088503051950456184457451739322767869648600096277926246150028475617554580317929097136955341434646217837264600261250998931059901636521780393037446851705215862340530516412267636513109951540375955646254814304701731850423097465101722091521783265103581424130298503928358427669800815870056714870443650565623911049980151249369864265834399156562193284270077944949284044654579039306739084996986083419722766240705985674415487169458084765861829193175529866172625636389055820686543522058764982644934094186206189055310170475333017066339671020686733328436855831333940636945963664794519821732858472323488575626477884787022528269211582992665311367965573881099012581089473344003225522727847097051619482025199652051866197153405415505361529417272188394926142038454416396844779594857021989799697442459163545836010890284330284098513485174192746687234859077055214909241611381169422662254294565833890114540554523989473883692701759152443422574829773097611748706593004464724285327612867815689888526385768246760695987164970123990695704840558833710581974292337404038039862811819318551356934531777166337700457533714151411199149229755324590947102119432480419728609075406114419579207515236172791322544890970782299741145855423425921358171596454749360555510952809510523870617869925477792298952572805729549291313463974289021472551351373437148154474771535982603642800789380718583038876576338811190304406671875327156753207396243815071570937159052472486999707983640960667673300834007175436994032584404537787566740151932436197003936557136497623521678643374238280521836669180560040864218615597420723931371431165860978107911831318397858304875950829143105604799230313228286469167209170556462482968028736155264824587168597640344748116249666958780633846183148836003338121370556472698567708043003049928423715918741169210963950241505551921781046429758294417415536471924205741651460421015406997492197826852396646317064621149060377261518767916045501312277667502114366411761550464185927728935179826405356528178634925024940716893404933678514617819728466728966744365954537675577340056637106202087210287831088276761087108180607595695699051693351241814541924200363852871444529646354930749526784887266201638205173655490075137609427196081912868997869502411489290961161285856545149788345045836534445019471042506574421016034721915779331440952536439094108487441232269987957739652384296381896795468016870638970312013575004047875245849287991487730795159297330931674780737584108122816592103068210677153144426710149011136944195397107049515904947020088232666376938606673133419915986370130617241333399201169914577143989467590027328030010463217123348145619058761135077710641145843321563109642519592571065026442408930114633414540516665802198090950080979231276634412415298458645453491151576335032914387532892460744634356335155322465680887925482772160440828141206079034420467520672152391948323561754161905079667101325027212464665598991764100820605145897611286543659176001875608441154849107700493283594961543817591005700416671474189590648088612658680976647931081710810791372316782442467571678276818858602460325359058624518913191308446653347760191841711644948732361304213342005953821912666303639960658778142540913789425553248085175038593806241384478865783699965657763392200400512102607782625525207017279342230729028738822763287465150856164920466645405337418498092724645027967890864967949922966201952891302014387207413349801348819671267487473858327588648036503801273330589363759181671413531077358292460329412147155988490836193088736163821313670145640557230939249118823683195994195464698544723952898824791217788214083963662543111381939972346905806561125043713746461528395760390483486204549223163871935751075196972463654372455060935873934175074759223441501922980489044524114207842361420088407091019592389243068857129922758961850313603293171245759974177917967324337490038246259830899159738041997796780626032791994049232863618056765684233912373626863740917299626634797246304167726201610828519319809513626425783926279894230038347496112551365726733109185439255390499548989334057556068930718879717508080871650405431242779247077212805372979992323712454887668300045650195590337216489045304379794671184037143637296660914321117437382048844911279952143063384809547877002556719615664686739856934293306417401255740447454886437556331496902859292134873223284061964720267677116926407141991872605006982907229605969864462312717756929911091630472923044421264725250723750436339621470315201409018490294961844462259415813234498747257652638246683308951764299151647400312205998660268125639372137270010902705668217468288934430132412669561233923275209598449485611290519095089297553037403104461838324983684853422314476999209428254239044369848918383803211375572667835055221994838429866780687909148104870469956219334156674379915808494626246046110992479456392775755613714349711314090088280401142282474823185576013619833229243266507530624120103427218773490283708328963022275907278787236283975631195036875276503680013555116913998132591338935895509460345334264955142785988812286441162435038730364475345983689787713532266541882541724221212965588185734463780043598653845618701025230015124981989704644467957332195641507954270996242753772188878789869738341338648510546093412358084677272751788804020806496134161617993230453476491952728037719108634714554624711489833283589991400923266160241696330711815421368325460109546459577815203593056747037731992173631945656948666662500203124035040476384748305873704590926848814188484659209750014332058722065531360645727641739564600295264530690601413823015252630864405379876689416000580175474508204516188421880779206678356679208630839985247372725206700613666578031522046491075547794795333411354508314901877661528382530397204523748663468537433720518879538823883197340997247732172712182188989404683576080437807051605222763544094663995303871091283659871121444169355183986886297141161102625062389447811502024285253020780157394357382129306501804846391225218671051469216065549565888442913492318620036325240037859216565743073320223275550684305698665802317626104080354549103010419235557058080464828983704774491454198262097860524169029008939283578259652782245005772854174314905857867223736240528426207358612681562577710984850479323884016532091850192622248779413057242458108659694032427986674054727402690778234710048981234043477854979173139647247035110629715808200614684086757018259783295108806327221747451480105928760304323052350585421306978507875277714080409156083066153933421966123974770030023603472630425398487062311356779532410312997459794365591894961689700813706952402052649928487400373095390241059525172961623029890957132036548146828958095689285124745391107931299284214239952054991826808271000550725538038612658897119809224685733098437167256561200104515703180620267947847742974354396280419029384751147097862998457647604134543041208667887589856004933808063625823852859618316961614930087541357249938518419837830973307622563131327373321848734859785701128315920616193284938037829733714630582472635277676409773736769115877037679150598686365630557700502951797491439576835229684285214152821420842315079496617074939173942431688554578490622719762523525729561463446298662883933430731089516219370889211936675452620734451883125581025162753376735610097954732728406353542564618996460107535857562387096119593435161788765474662507403182378801244435486397844920468406673701679974481200978385644657705838913776537607673788146753517430482139408830100967462505259978165854165049946869179275940241811983988938879478523435770858307642934910786155223869978167148976737190849942882900097228487611793519432755266993180045044198697662706703554638529187613563305808730306831820188976989325863895941282058212575396352686712128470623954074042855904865390173902532958170645856281992078694236784363209826917044700365294360435545719302110836361717502644881949752532387170978840227765287907748339811343068102092456496120257779280908038684316218946239337534031229286209539484131278562558061774487501483818072490831645725026091928495421044545795268060626868994075636204953238848195397755999752723873940201804418856387289040565959250845974060865592092924325193101970916550955020549532613658057645041408823582954487997880184737039828347882221749500172904432674743470230085196859699732954145015616989515588349085930467953994194778044503720533542250276730330380298274523997518296822961808558288171401015815942537416875309778898163906466153164672717995175698567635692051312963842423496239771936816742320522743053740771379574249998392664730969782392980982618402710013693214667724917581909668645540433948292035563210261208797835175638119767697370839970578844627557683542255265174042187389008349042358033011369758368129387423929273802509257489212368807816619550809664116301695546107859041862950595528328403065312448945814075960970893421225627645217959163521574393541952938742932265841264466047015877979043040367355820983929921542146820240261165642327737206484323896690099083022323368824450396817442402722079426799209470258352707849868457131786959563856637435049913128834180738898812402710336895385165380805895319451800216162810563829896261557084312615107298847938561493016122936267168588235055195225142944082130498467205061292483840119451249343399558135818618818567704700978156954782249748541021203301085124920676145079998265242108477299198789429391695175269471298443555400261649813042869040858693683974622862600207111194031890376803288560809928698845935022143150695846235648206014196961687763929105674481519988172712167810267972938103714962461910021619839963053548575433782931007878778586394254964618137188743089712608935465828071128035343562457286649567310214034773414200076376124539136324730456448649299080583114148222724768481004696193132742469929427182301907674951298867336838476050723825968983755105427790504010856899758501111109590330628090218204536073629600034265645829204570100417135835512001288851354697172758211514393166826597128063139707107084840197475582155377449617529792744836215429594149020176805088812141502952299582023108050785513471494811333164226701384993262524385401801753494296334354942610659866854136004046646874939093325970074256612559841636002793519205580188292833456130818032714052179433656741367075973433855984219455533902483944819868713423359288821835791471334817952596759988909823745697801875762708126742457676299047500052023318654621597662471396585659806556128728441157912955475370286424064446442748615737618519927519595993102671519250100468251405674560859829360428516315549425364274004472803929840344831028529412251060612608493427399970327437759522478306393098929505774934467440075901095269393302679142990362644104428602059418689015801380848069423485718210234230915391165713039110689043916570681240648415401854066107736743690129594100795475246695735723283984308241790262658074935995841040510154420283973859309077144994754629426126056338225220250124908812413952759870127542635059954583441502305382596491358433497855232181513793519168448255689828644966673391316658332573311343714845046727100713433935033382515730638340739225366169738481073152275486336509839972181956673258867324350901093022557280945195408778780205544483092586001374112183670173175068550147134461474768046521688475969200057230577294999189972986282798055556929506364927723062744209632590432840866349932077037140456832275479734884662404904516002840261745345498019516484965820743998460249430589564012715263736630551847150259538597341895683298405260529483636180537441536905905011040300095919377035945633828313513294523099078247310188312079335551936169870675745832761421734760420150361913673621571703839782572216822436569841117988832628804141671110049419095482364696221646601460889238398214633514942821199301325651717109781721593560958346241151155381518156192894715825110987127701840378599684896593174018034884005154041358745206458913309323433807466587771334396449413402277970811403233570010724385566976871198409219595299093468397441406890713140190288985569336178526590599325847479994469058010906395889142822786004465329704294815349939986841357232813249217868944994614988054047567015208151482075776314874376964469968831575494913981273872347544534399960294247698210115332007363689604963449916445265999916319135424292037100989437120718273528144201959777042933557829251719596029641530273798693867633032167474022964535434083365027662467479387651596517682900986473774570883410855812837802696922706990097287889900774210123916349413691282133618982201136497790405704313540780216572597212277235316992943807674064716237370072651698410150406887343648241855193030592734192190151123547752815917590743148372117495041371278963832687867477477735539878132262845582580711039293413974626984005637971014827575908742214555871660470079303093695908564715555121027787626916757055074006696612243853319835063284362538962152154014200111881019003895976158310485533623608401577208647587873836785823858606187333962152302372159258677763534148118971084605055942325303337011998983879841832949444900320976508124590378242257179606356655817639429630994561631144617283315621466149323128609261639977385271720560898258510462273157783222996408297613654073985692332861158115942843272764955297873284973572577618713504949119035452935300226321451941456161108083029280341260146050189573753324906999491023081057084005420535430262262843570518081513955685105456756618208429986539387048465461428552282266560193670554227096104160768935782386399094627562466749471888527154108404373545282085738319683605318593736625938045151995967354931906796387987141692022683829157778093927916953299590748240084866536232571593308428820620626224311197849478427937242358119368463823065125720624861547033160114260474030324701408957523774546976361730749371327582157162780371908012895981281374720274244274567584696278719883665251117674636476410698120761454468741922664247386875585248129854831192603715988888030573487627908676224601815496488376489098008148166868720842614694120091434842364473067506414903877083180881663220525379927536677248361848380857704819373353228898180260010908368368310043779957976066409979410258210465809850217011210833572406214718302410247805541194344829499244304447906475125323227336206008749274188920229955918361822436583280325827477726821362751571886296056368229697875241199700540196504198353211440076711959889335103911583338277144194032914379003440767313698405297957150419637881388694281750980169972050949862196729752860349305395288846174345870985059057215761399441110141167868969412942864050117161414635838221446793633750139028679648820819589583174977443236964904334039160209508662682042988543363152636774068295235193852016618940834435539716674951370456245581090665827903403555843580619668511281969630436632623293111145620383101427164774920590226060861145106771791209076129550860540011514451557012200387518626063859356767832642234312944475201056574423381908133259776714069596550544568662787488706322442564421090699380980947985533478011754470321912479729971013583805826947770807113839236691513241433925836960885442174506742633394178383948727662384340482591042941477463132769299016604283391024010769345966230134893769345615283775369476799355311144995504143652304484881687482734107040444636514374409511804831138479073059755092921617167483307350429492459443313756189844562168252602736475225550776433029000001750359020369791451645576989924176930525558725361041330746528974413512429270613128548372755024342707392979170584424067779893273591783910141683926178309287630375061387568150790892215482446134125927982224188710503481807187442782813342261024040551300817684753312382728292758055572412554425556619386650000706835142500167026922237556817943176298284529115423679496627424141964908816651704209416041868463035317685694624381514790675288509627585820052953021828829925768501969864346110178525012056319702973987769742901251173337592949172883919913384765163808878899089867537558157687705637537890260225868226435119309539780025529276727179965718568823590454566655477124009327103202610248012508453590304372713434082685184286729152915370421149318454434949631056625625849186871426610573324637942923770323844240212022202979441072364401415496509087572238526251396324614048327323816782258918902646152195385068745511724495533143891907749764391195454731980536930434883952916856270704857782840509968936134026735513953876088795905504766049544142191533806866171956352795570599010480813028206690512625852877895839970831141417911613954902536913348637760488037731084797842963914270851693493127524674114452847825676497306775970297102515839857734486074646861440152587306005236498031390746576381962413415763764090281773746186126819239099766265562404650566474361855774515250872887693325351042651557224341190416916442911090039111090558169549829720674946750523298727803530414841225129008818860357272404167824354651390195397687098975636924136178676507038074156059192535316911551920624567926874161310455836833523642008200019269713617145991307329549819307056213674053250209246550100690999207868158855480502272521539938740445450772738988111130721793051627827611406720420350471414441140538680205308615192098346479490354104008341799528843697074965142647260530970681862471239634318397169751449605908684808078325015267318107771362451914749495476809058723676319407268635602193868837225169186728048703224565438247424844113748180264857359656556056036910894895641871797808405072616732491697130066555574803761270014003708327375835678624654299132879245193591728958455907955850070329612003427690976681736489018723628745282110717418293374628651858809647267991923095504589783123600312606587381417234308021525977308673596149100321714758338236287878355771494717880492590298084185559944769272049402834355690900049845421568701100401318745342362302116158528967113176842183719540417827630635176267549339722535484247632877174223541285769545395201833516732561585087915008435873105712555305780820903922410982496510583714849504734614789661502273293272884616949858567638123834814536154103343755564761558248066611047885516361921506769902433171581470762650782848464166760342797126838105851428631960468186976959273991460258422659645022201062107466851364744130507815627898372279096429115172389763506850710068543002905474618819599773175045466859113794782566753844706094677137345031778485503940087005893397637108747061109167360847406431321085343435392419106364838646548259049277229640573420922186912873133599630410825089696242539050436208962682064658625613627570751588183451753427285896845718692743194565218367716554819585022593556572854840796009193755952451433463518776967788381481972867058499926943421032706765221699577822678727824212165960216171563715801383472619777395748280686072132445334003631591232604625412577491261007700648719422617828880472744891754238292340647381247816774185522543682909015820853776376140325920112938849135817929285739793112173889225637006833359956335694065003895205116623682360490709480601945356420373100095548531744793071329571143505163467130797863666999323799024875359826722248963790271870026441857073305439490893408793265379234924656945907339980256102774103778423827546508782010994748368335438799746313573930244848382976291684167587473971811905606021778266483971020419190089557323295999080968464955410078985464897563185093279882398102415535544312435210776032753070724110790076967830279243572434201491095937193644111457513062618918403734759271783961711637920985522349040876938868111581435479463829762994214263954104381860896823822311823975340381512101855634077470038927038606220388869276001808144960979129288685389177798406020218616679289546319653726977463793078192275586410140533226838368688904868355020088527523167369625632864221921707292009526885273323067278602483974913586667474595378350786014529667121335618159474668038148327095244310950431703828349141830537764901501920003111636481457358835946361987849646143612969000386720515458534542977763800926593976440129556542728543453795548087787494817345860062092829211498430538403044827522949057687643095667749982746532312349065350770184357954156812904855095094699170803633551599215342446097419170455190661666415987829664666017434912456914753157926937668283683198457065246362916982488459842549969276493282430489368437827001244959424953846370195935891510413875909464795088793937007344353289251503131245079640557346559331340469084873511539649346219740827853963492855487875456512670839398459069745112703350817264032388918221195827066512229208057640790813168735474029310253734219140467525019144707845249830897694205922418292513694190544195184617781053740597877111322717152986745656012499194457993373842347687182262390434060126337852275286492954719606026155486271824195979450323654109605850661997270790627389325723324462458309797110436656301560790583805612043672454347915755354804188722466360694620879011316358659144516696617421929367927659662289157852570104256057226425416655252551514071617059863507646311324602030960142335536929234409131584538808820545044043189258827757211821859684317427922062303415980855530386880132640593010627367236238027318014564368589582221413289529160018465580364648116782292563212642177948135395937075476029917558011614929128034975082828648072568720738445541747017228122243971382427674073189103595480427433845676029412305709746458082104866005011479421608378554343941257295707012168779038255240766650097019612779283943255716038039855315706122829359098025587861415664714676953209168717346411347677386603354865330843977438301267017265061300163885149836037339107143909322943378074879414649935354415726395450681697472991345818234101363457611688508212177519431435994025786902036424117024720594460297070296340290442356894509846337302132746573295684045257229869231512793290048468586059848861534501663615650916222654987145646440971931766763437600292432094518743507382800771664168098095545083174512275231572042762884676691788398103083693016119327319231522908396076402414588278845264595939084222743663744468546851480683628047815364259581121803766465087962439351336563376337095128287093996839752924705848023215319749618400874869685492542862885092924338472670720332110331983232853838081562818823960929093050664883753326486074355071491994803413119182184349084875623774382637357780265149522252925933276488049630887158215981559799794597133209488399828164549109563349556754368498395886311688308725524189368008202435982060357217875741891119866569996369086866332918194299264403436735852150371089839152120765906797579671192922024497805896013496440217369408469919922226779435344341823326065254145227766261358524388166333277238897611417667004027055906220462472599238011582407681525739070943474815648407440246827786344714830903921027496451408853430383384313588644421836625545023836205415505407686434803115597951532134605614489558241398661330035360049510732859903617276057659770156383896426777787572626384704337649593958102548078018109862292333884947664452253255991842548596120700756006936924973066286145437244091122717298964746051870758572652995495057341436837917062467911302366102733725805417119089941022865433158758382583942912312209505120099941489834878628315558358002141993400249651925012907955542377314859613558943764389501906683965666730012221326188932044840941706502178461482880946576564503955948476879313070999107969897725261310098254394028252745756667118144858542969719768312288654070769861388752027324099271537709406532461166140442229229323484767766501011707034382849048498247244286735715662705888130762696500313305515730572975828185899079736686065233342926096350566991929972928074779256399344710299372204052415317777620499591104479468983325688666365533587084737505331813622273164614629035160844711529949512828794065733235802976545039370888363068263578556860958189241487410566928909344423619894765965077839917034796399450022082275253742029780215157655763801250886974695750110296220953928844041690292454836688221303251524813710976031215476752528220729185487234065830022612497423140278228407699912310292907276233984842692197805983417228047950416225522906939177855721383849469181505820660581274479090165482957456646432168058328755835508545946005079957975371008885722950866767953357249211880373650989376385965627728677529897151355925082493507968988745804548391672131366102172654556786042038722841049788608691666578699729776975502261126383533274579303267079290767143883411562237528955928323302675226351146736156569913796073181670928267630398083121133023956095071167356878771339469792686310125676471009195294056567367679276287426640411508638181057840388838612893450619285027396482492311141262657189699442878812512623332830554911261060788698175880726406506847839241614607562403208045587432180199234502565464502730551112413867384273237373113509789635081204132100611457386442474630889651036570853211775568238279770564173499801344580701635757641992650243661885922195868092172323790404245575386536841963677282058773914853919206181036632495850197797553997648749704589209250974359410239907169353990369898903611122380970267623145317467547066568779509673419014699692560149732734163721477748993345946387047034411990607117169867428099580745766366877446632264357820123380479526965814197592217355538887174760157160377461440468695153226134896308682062521153818161649948746055779047109734010368057955687850982363153231359736190261403666812985344508899759582523784846209720224183115729115992110636975947529702830721707944849163989205170150497841738129790713254807557215895007580450157960684439070002915471490246780124721797756882310574819210495570519285121336299846526123473120425761106617645638882569425395429426112272304904017785943726049019768705534187752618905420218011760601605978299599236584562440436853821860154070764327790272277261993866284231070592178066627330025679123451695132310461883744935484723631909872242587134527255500506839005183426877018167103677797333833140310313314521482675359340499755544343056355303489308409810152813879708079625257237914190301519513861819035491289871950904404233101518371804564270877021694582822709375319245690503968248538401331481592764422484231472657213509550245533845919745160094796729156822802099737923735833341546234173190751024045187676819546929565609954700906066850129388874104770527588681717762096940804554413725165087036401086808819452685258704649793001141955198776697643843476493214213260812790919776726040440114519640555471195579949485153924056754790084191340870116882876500612358572622957198426445377013075818692857810084321572954084292526229831618083359629610349340398258868531218725720642579984098946249967404727591566519025685860267617608322480780678483679645119310824388877161885151939061668873363840524008575396297406660334549714852652372711248915562327533559000539880180542291332838873954730214568264603733349889092159672261605144237431169485215288028935850256039721469225045735510036182471711976311488310708154907381475980714145461426674295774376615666137683208178340044039563680061029537608279208910462809447132602265307128045107266191192006289294113661377234354687732785936047002435358168563315360812849150501950444717757041077768651021209529805903998844714978420558423873805313993215873105696888299639550182193436060993214312564449785690289820989961130304181907375916603303162651545923425793700907218457880065505151736462127149976389463433231623865087783409539871881529340281315533626591039407919123278390310786844029415753419697348401952327056805836434355615407665376971121587235256245570053344395248631707945141779301677646544366373714114591958676627798912638440481470058285942192703847013801200021155840694411446947778812217152313560542322546295075841935226755193616256917495470672105095458380484296050617174172921078077755181558297408648262758254932362847881064414141224772355030285324756051482303234204617269956812897855435908723883149047588552502520057633272677702162354240259412319492605064896585821148365746537246752749879985589690798192257987054289870755733814711444261863202119089114332485277160510684128743934438128820963360393197823007044541775484730904884024475062818935990400944154610088747992442772826413038769519286507246347305907816980028290128904799942414912319891241136614340175708633284974452117142392283105010192191800941481857173695158141422879319011388526806354085237278484418298902500291523912860679144032943719545790191855666159472871381697801259982219254899856261059522455326792782291854315904585901540407906961132704311075193010657093726952680139447646247765455996956930334146003993906411107687392432651710795480942108955625424360225286598070718274991044251013651142188050542150690670489562819121446817220531423944305141952209247271512306977212578971518360647034656990445806366802446066761604684183699568823130939362104647737550054132753944087724390134011303589053106472792435728763132795995586622144345399790467284067341244481814386855148289569160476078808060457800838449283506344234873070563313651836174965382673658804135781678618280142782984478637588297020110443632171568620374079843234034791526199696670930719730124237008364902561610785251395512704342339155381227387864250615888424740777655410994188514743565209092977765146118761431411564185556938430669514503651849620497275591763793453003241998814304771959158382139991153991250394569383678993997241343969976643702306536000999326659809463469427165167310407411894054503613211159781109739165249267122300258735505144207900165005283694383616327376029110253333527550331051565142964594330274445378885886789132843818290397063227916293748575811647732732291773546815895034582928792447128691059481370627778624608510096274494356525933966150775153340773999752275278281309815699992820569049404563721400682205977674774445528129266718126020796879222817466231538826319602095123935422144245459029508814676604512652779244085126863984696305089528492377299939334873473932872537163568083179839095548409692347493345712137012663705143114495355827591815600722932760369427698763252926401869696169615208003532589481207364908213623756774025055077171610790253902715531860806219343609412817579824770562563348178480463475528786839064818167558239208965938685619944830212724593316478237162573185352913401628065249641856519108602147681598981055187523873255916148755696214408079564437427730628410915018672523131640282110468713295825428838429541345619147125395741684354603983634456995115229579915066010251198840516464816414998789707010002678310782313096617975550704242966500997772991257194301948007426095184702294952953861715966638927794624039370154362653017565889485617467589612824527407283086718885964877705044113738969838905981084860053147037070635889984475863553271965759858384034410904660480469905211328354217587960741953939901233916732360935777903883318292501932356582654060452194848023589465824613548765143921090503046194756363435475972789321072395053269461272362371012999738836775498743733175680396929970305459162721435354871871846694252312569398629730748578465205419072312459879391790904473746816017302443749556970389346582911251063439335439510921047639757184862919252582790870691855645525104411630089728671978481403255140532176941522923046792001728025958017468589995074123557389681805537478430761548103280773303939805125732534882735535570731605046639145284636535926420914161877519575609494747985095970510143230450695527296093112742812975043206045340791334639610972584272005871415874238883800817975305057577608883701797947739006354975909710803128716690563445223480854917660273985093183245007506645741896937435870490530781353498043907253480362847241913535362051781740410308935349960773901102800880566064437842668342305253778391223853319530114495877571329402512720892045392510431333888029675505525284114600360593407224820952581321548418046832829756285245904456433888430715807391530662034912881925540239873778702621662208578811138164465465357755244645845255530955999163580379608212734509889092576163088055697406952801220005946207121383095389863394596075557420644425911244123515341289508918337847337359718465159425294958230432439384428198233465853193663912043466534171705448638277568588734925749878514373660874685650943280929020822118987206103831805015406496152915505673560586566992724750149633771214901872628197924420288284543262359322448771626027991909053090330282424252593709468066827888083987579169931406747866593568719007483145042482413641991766888517252045658791259905907320055898227858112590774845077754503483498434504286643249828003166930258734198583850429410282216035006818399458017401588652091469239466790289698490364827034803886966910988879680754378108333716190098087870434465259531592664737594375712029131409286814154864975011807125231774109922728401489094826646797405492647910667240195210089118439678698851803595828575424235835251824961618048729859300177235609488538260687599063726834501879594233020775463315816152370598061279444278180417054765662915367341674159164918371966868458971766587126355833568493848238331952913433171075928663047749958357017739056335794128492921903621865715856367976866482982638297600868682786419460689580555718364666905383429759641169359290160163048313607920472126542559983544436113212447080885413374558540821922878048737220462482103524385101626208624758884095261278941138598794668477465735274272091847285042083270269757708633476897290714855884402736497075452939227457531626926081969334053810502678640699896053222678092544380271803368188497539462671317108541124259905478310386795062468447423181066645464521113976375770508232360353508675148043799682939438915478526646677789499780354578524446014873892273630956814586416146853957663013068535359893876195026144285520542341643818430742927154837763418049981910935590029963870843780421418209079013358726293580982998654731974904488669260692447834041214320757614474750558536573050786646775778073085593998691872453071524208460376282180681640269904264186226188977664786123637558187160078479050470694439034715499125912969320186259580782104745487389775701117577996385023650463976981683720873755690492318157881327210304887808487226057053685811827920070519420009442283547739115573473213035649763939082178442626638827544529491110241759615511926723616631860611980038820623477012719043956426822496598371416111304716947154354312964973905477941137861173902688749457356168270918176429124780969268780642363504284123186094109839662104785367885426579625589701447255427866151221916474485871611029233669382713095547353581474518740711856764013871934581569209740240503481725631286618194467372736234235116832494900530113241817347259827340147036283420546437014180274004290589474456625925142672138220838734136379218252778395041877958323142043942268355915767593217243225264168961009226761158264222050028836395359826743899567150931849275652129826126153538678867482816481184705652035190076318455465350893783160022151880616401837105655363691186097806660990484413244013796653708102652126843202292504282264083004770494142125003477695715209343314706629367176631756914791267983096169329691284126570179184379829908119518314059136776446534143272208041063229234676499354453894118788064268373385900726864938524939094649759754904983453900504946586526251292889933718950885836361231216166338021393045145222385303870104093476334219110314175354547512284192516393770976380975346943575531972775868590429573639639927255340412296065037842630723301332639916851036430562472618560682603309887415200691479894417611118771268056498671161349424568066835597228855444199750584751181577185432289578509707827827511216399804771642566649007970270570876245880154280872264891028004142908997785979462475285986813803969480724152598242458192903870707172050728751007647120968785340922997665237325577972163497994471331096399544049400231181865762442445646894777655966092588875371965137207500723494966615489950245124140288297437110858874028913770981490967670726079700532421316401461757247735598654500200527652880130360493241047134528640208190478524513786947931800085086053471077475460036062580106681993956321738688288080075753399913819168543799704922403708135919583581779358550388092557450421245824624861152500790947376989065867348292011667798493757578777427218793461893620785682874604849356859997559152942243185286792250353143385867239514991702959100027706741565278147756395367745540343181480039795654064627751412558243987378411785682089230782283096448305134671476142068586428287889037578004772320698525371930248164070906825025437249580969980532330525159228399094614206751514081116298866535376956052167078678488636242766625581799261665177912829781625511991709903755883762283710716439747519477662841111786409519572386227624768162727250330124651267482240729958934205394192099697894552777743692995235424195274828955038619801712371065974432334924986968505284756560139532023943880898128541149634121420752684126490130865979997329232477292281347063874007336537982306699058687670118133076363208651753503871074089366383730949022629605297998420388998987917452474859450926804901757196975505038166803526773843423033451622184767168551785013646810312921705480177623955143405866616818503628877058111185252100846431617847139835103967304316505231278706503004766733813977777377087558475470275440457950779652492027391589670749903967184269997982745684169646205531178723888806950856807557608633529142374390947027597681960963411551952186996633859877737428946433453939824701334562533613204714708726708298088717852226551305617942179491308708350340679794523827102241934774609966727789092539848266264354047362451986393430792568503126363449053763806328836579565571552108226412984753742602226159924481404770806183775068806300763394936050765499670347962323044206156001637971531758651697754707957437452810027305195155677053137525742351823073558196430882676304911816533976620411286794299153601140169576233766914018830699411920167729950055562701065932190321837709792116956263523747790610671976687951675078694765521120589736013619994138319381160654474392167203181432822073954509519959014491821101582028974623687899744079599847763480461444176033847642775366151393958533266182790112924231242108416691858566078053572740405904781162656332253790284558857620013444561548388631758635743150331874541444893585854856214764363387435479331598633956633780614095749207193920589826669477142607550956387025547285107106041331604473301924218565900350594294163955134372804335936935320984440924630339301285388260845580606253620093202086130788053037784143150842741479372436873916962918347734485944903210427162382897892780205494920603909165716550197266584793589396227308803136037456885887230980227240310711753854612393828969988006774155160459211027122871255755079831561460097897794586942936584311322836663293520354535623525310758311019009560813886615904209875798979662313099272542617908141167074866854246983034370310064856074829431200428750112532805475452465784298032956851231694773286303152541159605900358044861386759975428712365436959423416491841362620470281599509040465110089215997813586472179800195950421556046284660567819910372227060709221690717432863015041536169221699640874344195618888074838480094244939674315559634168625910717415642866988004325220143194337548539049661710117840152857363974237053742105021159613408670896672689659411884682708988007175923573520647136921434725668649696066202188217522807001789707855042846624603253938280051324738906446410536811277386463435377732303975733025743820364228598259163190845120882730907774812283554786077451105972844889899569855294146038832626707143863149778869168214016582366107319299558320981605316691086173735698190329304003351722632398211623421526881145910008492015769174222624111865202090803763193492201962862678858567867032702493828488671233137153683108523989918617362415241714399659564382545172828786195468878873710700936304632466916117421911955300205441748880860245216609713868500812959938644821163029325741064967901249039780608842457104177780126719845102531800619475205607174252328425001624865808187687489937610365747081186361370573390734807019576711093863868588402547970025174228737893766525589271718083379601864643533866931577651408842843323749153177589465968480642484655580217070429097797814839440475151255095162156677982988743955881979911420950828489163115627672543306595805661033857847360936551856077853200064828851810702235618900235862897887270568271077215932446302947811780791117663295788124121441250551984561733372893353670858572578497604836821452961185861103363889518127489208399041481425245765093199839470397489771174866239772624960822539107709830765005224638032203661023855774929344367173067226640829221289152391544959498033866099000910964113793675439888691400076380333713766065013961456197047701489632508909671562318890152272418144713023115973103178390687564096569041060715198326764694068008070595193202793799511397840707283662823028978167920904001694551922692484320797754526102225867375411454673847368464291372352500165224948049115025351152617605134622839727921301809536169394963313193170167177810779257499738792837866707203967627474349135932968377937360016419068123744432723813715380863551677065992696492888582152354282894049687705161289495422214657205617589334393872146825800846363242240397693576268273997581645879702736413528357877373989392409293743446213508559598792674986361995235366692040494422058721857381039531139796092478925947252651537939039437581379977065417652384109624726127907701440583213807858365937167954756869267249655546948584311816373371389944003703369216365054215259856965214697233347313301997217446458092422857747004286520030020439314410044421789457120617548331335940795177937565520569575055207461912578209405919149307193748012564228361078148878182633468321187364494716709374726786699882732295216850997208998393032763346238928804980398299008407631037565974940721696399948631492001188470112412276716402911083755860372397979775341666333359113104210870454486688925005177520883496738733093305248764308892102628404175295607238064606595657389294518204354015171848229170639347087645262160587392745585203919499604088409047005999879511444863785806116333990335073958457151313887820481710204911787073462393553773332152309427698890501840480860031769077665912694380822573037875518864827489700894812377867091541290907310943465505782324626360570735883111409422162155436097836796019054290077414950092910494626710205149000886483049681330982382206090369274720672193420398443468353448025459159418775055597197554090409153716073655156361642090270213591794656622431191100547090504568598392955274252698935852104378664660917476805134912926891235110318292439808293352956224923984961199448740881504031786555519210602605921925636970344059914566171817622557203528740636895628633850093497491512567933376719252940062585846061045084018378517639553206889773086318778504442553722914459489809836861074548869623217199218532210333071246013472785614324189862667602915973712080063716678723036674267628228588804024843333041563035628587869655185519116717945505623002316171700526267682951454480848774689997561226859357262148483405385488364619454341622488657391956972935314277540105297042909481891956246705587749187071315681025011789859422934816302829272735593888603060791407626110162659484301497274578112091959292638732464976719637597394899968938317000639778433376034826330561118797887510233246394964221624041907984015481883817795061730174016275939596975902050225221323411693408283463496678436663049942059292642790900825981271197430044646532083845333534119690902050883841629208744237581336504317418653484154178028568751469681418368940960171444083454775506480874052395233268126256563304933735088352123498987274629582114952397846663866463426152307154486651614606165542804969441150567329696536738649118550021200492747943304512186992665639959927329494469712694973199555780122194668720800588376416096071604889191360342509464579295129484384085642483326829203208709251628733857953146066490655417132236690612306299662714553352310380247609681385408785831710964093945407799720829882143926318802108961138057404206112253572915486266595408175478015936776685718238231754883895665732774502268276650965716213118649499686985180075305797004658903252785038053566830210335828268130245505941030249648384955621260390793408036181609349939688997324774540873022931167647046288272167497032850718562726497912729273658842395243052550985784426075962078067186298272221123902125345901251267506646436052309044912597159447991850902271259820336585121542886391857075544064692689360012681289114938009052064784232031237887261746475854091695831555447486314895882697875854664658340319418936988339685916451699841759316853860926612228457135951994989601880707080672405050971279521639858497769588303216755834830494416230604715610081806385432685891250688894903572219829317935843556621319283538213892025846179250734059267002665204531529231591674397268959599627255298756786212498893675215399997065967762312105943721200676029370000678882880372284909147887715073338837222369997769663947289000895021244916652828219343956908690613395627732645526624089440908704795380005480209818078308257268528836896242407658147130188222527646402496134722672073739222055530083060232481321888983877160389306552040757611826505709109029118985222749653610848742225662486936625834509266726686240027166880956053432517486583484140438636210710881197576066305512761358668028387638527370189089104221497735552608266120090572830385144846754721317695207754189790624870682587550167735338924023288221793197324421167407451028510617922440618770641748480600239438115327803883243906332430188855567516778307210622288719817640878393379461320518069436430825242430081915838485253720918285520898772318299179047621377584514146937567470152236913910739947257850183775549145815054168167326640922223739010653726859172316539488451303147337005360441193937617291740336441948084845587728091638763411305500290569093345266067522991775712805553052238621426010179074973542170184880993101758517573931623875590219752187273417662268797822504399616490725830899641342688210580326190723223717956220613908558252392603189749903949501301682109331582311825458877970002281111320563683902876246297806725281179637529324321719214984645128306118909255522832158351973727274191372342916631820147229621495405067980685112355637367174945673564317013826315620251856928978232847822337061740005806210382540356742197816339528344282707755427105013193996829941940029173884427286352627658919261264474248866575425853357541396655784116214349337847965455976731478732180679820879049593778497962318534130950316090153944789130991171724424639172189406001477351989820967198955678127848488474593928337028106626418987823928004137030846934061757564266315335040543127649159758788487375954282610700567586613884446887693755990988222338303468557928995580363283879182204124851176676232875416613994696073635615692646049512744491204360631329184728845046923444223157332139744828900306229003432497765169504976501612252363517277746724380572624040025495079281064271425828415277993157463505694862739356908845480020816732491069683834857258510601879463253347313660396934287653691119427012205576365771381436792564309924187703137443675798885083793779100256821852848923837947825523189368777161906547091142689162092044764322971194341131053057213816585982711594337229764226601459399883008880978356762250347080363111018175944063543787533601571030021889139104063353255031260781461133477068806972991705168676347944378772028990433017953758406801469929163760382620943320254496813831332615654318564729325526812729345931357248649332016212887450073525379996665701064259826271294590860612125319691459532639677052443792137768149263947819260871321782270165779225640298167495143858553612915569516468752670906176000529202529312397717557135175143482455917439205593357109812924376989489099741707328514722914167919687168841984580447255631003400753651758932108737651519422992165962891739115326097841573924984714805901882044061151199192809773767795316218144089291720660823581254095496736514755792703430849923941737987486853055986355306343028770495246733465746003165607251200444885894430456950974876441337782376251554339862649508772857284922400909957969049183075849902156410274203763221400040971546435496316663797987238033456897718118162662393601410580987289126402012906373973322084724779496219992376699007457882571439117737434954958373000280542201421025351780218668947230531169624840465762886151789834364516234475637438874903356193633166106750935339596722854876136016175843663669763646327927826829882240432556789579046167648618500907392803293650891647037259487483467839350008577462687953406851778818598343401175212784107209568945180679443780926071036937841194794892967183937056768624072354425966130843814340899974254016512823329336876203577168398817097265975499447207614527585195563828118376871641883808310859474659509938709342132373914445190287577065725929781846090920131830461402159457636731147341141491214356001043569470592109094906597771714269414579400983773588547442204944197436480648521921003458820808562521335437229293958006084271523498869510441698843727857525211601244650947876344957506246423079323221487040123090503904355428794924100415706980753545233327024431148905321837744493708753788514641757370511042162090084764811388610682305650266575738671955221256203264658053900911308827847223828363028289639877311741085672281334103214859625332059780214617955314402868168156012638827551235101176026514307585784891713069845299317988385925076626072440877837635885886554901461158657957752763251920224912910878576417946080579897847552785740651959580482678085578731900072271249848151432451359892287984587883805597080329596874987858520135486065948242853144880802082017399340303697865294894013033401142679372128373045990331414492291958746838926274286653998998518736999367540013365422138616142312875839598366598866050330852683363990908811751792099984206522459724377060980418982158979839349825422365407148895590766101738630041800718280400757674465382749234939124382412867575611964804782695317661359758883801346065702518565847686617396061731940329416949382346935217213734234642421127276261929161387731791746743243638743216471425204948906821752433898794497833501205500022975932959431649090785899250707049856685043166572191817855590670650084808504753895515365904606455436863576241306576970777756138412581203013908119237944044535952439278498792830914230356784426363129927354088504370797743316749795825533555282181339006176801147537900823297136264491619769295077750453757782125989641365534435944747383147547926427796626303063945584809012218489149641504637374287007415532201975552600213150139527380625608845180758234093116633295625889762024436905620361831611912226517269635359743302124931611875128058313764437683407558033425293600354362314999166882780895082326917076716874399872752386312291345505782360215841754470004318304874835693953176408058174196997679674674335225274095775628667002611803017997442740859385717825863404855365080153774468652061689068097946217518039526656458902891961466122712579669304486423506896511808392904354579375923846167226312049416721485069473368748479549463338907295658962349977452275570912606887625223479153256972133647787768253020681812996157364018487118050808734103001061706480142843284568558876500634611106038316784192609433875760157637290167818248981247439558187904298260936248896264629584546204547191432706031501097003993846010859716399351284362442858053505366388593529109498995536412927556051989292773392976387072980815084477557063686183827935415061066284341915624286889753471478088250963775065931934699324026599628424004574517206667592968144704650638507588382455209921901622876711107800688339548739518311442352957217015384320097432511694160845879712854352087966660330690869681646745958563786671203150109059576666829694316850998380677450089066725650509269354557355845302840418946693221189404263128895908957833651309279963381808762761005723119116402212473256196284366072554112946593184376674315511602386477215647584687986797240167069740148972946123493014403039420028712793828925093501242872564784050667841684963593775725443480061584839849561703921754874103405193013164652907518928493808293134810926326762178993300130840942738724659606289528757160635983246853692310689443797268395740893707270321929238447413735247340174722657519143688079699588960822321782841287617284688716832081030556583724558150651956780256437881475788227848296899011002075792256717645915035465802524564955170585194559810097323439991374631622193839779300634425342413457053335815557899232617863584624711115522838326515231679554529528173381852307365524534060875535049240693370388743810101857245078497791878994347777365269511151892601117811138934553270063078141249926523804279367804382906672790118799659140946680767561695665585839530034500461970443856403291074302536840421886292495297584650763062959839108438891014515444621268678992511867932920585251591654064760076236658693872876178092569254886208199415169708839523812761223314586009451146668104258477673575286794539414298438680884452930713162495633327239804820897429751246645816849522348648276193512039902279985340111492878820895802948530302563448123585778004155773227023723321907297344794241084472671550990068962045468171491998706129805898735721226951482741452548067744750057347848206136302979495184159874256830063683934392098563623731780899433757523548594770702056085044620277752017489239337903999772324858083407824839400937575734363769885305369916264314792096529416713843605813678213440508830158668633213248340660904391267406305674296617666628848779615994052002518489022111985658439703128492955481861589454319543471507154644170922200163561231367300507713552463287210915106776795577352919071264041383489459367973293376523921808659836468448921771542329061899023687261892602574071623997526885228813819764564306239333183398116310088839552659526151372138503900364432676390884484102740551379427584145376614374156821402843157504543524505669868027997147950268009379808429950946724282153313829495627931803196335621722625847010811018520159192586669556234459226794259109492619987805491293233893231139165185181948906401758273746324797990363049516615801514123614034576743987224728240455979112495472816225234610874279996910078594370856818185291109914655949127932641069330920788542972375482649284517901661573363331300438154734460303990988143600621414953001890981009017041604255417187735336208755253195167831136757427633552142354814523576541263604143112583415135929808702037723205972163757282137140564434587503277885693352986445490366937899305693441530057769338406619497486714013654281852344588757662841608468720520941988384823982216100606148629772346113940100094417508360920280330901852671140893534981801628231919687316196063626719600584581164586511541354977270760193831119724987244526038367229051849742416603719949826153052976635835938592487285090258938403446543369990266871493400228153157257071463287751113395225900362827203209317163270352791646726505738538350286357147039687889554044803128974909176521055466679849021101406184505990774645697128196604954438343385820221460453064188552374255372345816225770509896013022373762073042376879734491048636069118924052017618579727996347142331647871968295796122975907964105232225540198623587563100271440506910742200218569709333802966435824776926566515084955149552138186770860475160964928651170579738049523720871494802874825141592196498562871137085145165805029669830788679463037216389224359183901881401819566980621692677859367106096549946023387043021707899160948158303627533861958984685375388486889260713751483160687202297933918088835602514682113595769107173827214067146741251530840205442387910833772539980001747448928775160080991653438200905212379289657301660780006019836340093711771669124306128376865472426073744908956365232074288469942034264992165256675969871697686455000858918002191473784322085269482125569210076865166022771148486139761122938780178811195161268327703833123902626098818828959450785784416338228031311339773992691080245013985460241535263218852461975914170649426391456330997024605361847874297992136891439905140005077696226243356097227423659624846592488587436319644695039253875392632038913385648380287480650409193005796037019510378529479109412826184775971417598314738345710155118104659828050025349637331137715045543739769038908296262194370283844176985409044933128678647002634666562310568513589227283710308617290545617063544186281693735225349688042868332770741591829816993022443806136547063291284421799076909142866209054954584301156519191080129382299621871172374807820589631022595608070988315153260856903448882270764867243595024607276331597223421106665263424889797933294675921097465489533841783094933226749520390506563136710429858828988215813939340505262968813362035512541603834039524291208110957390304258155979159801189296520635412553652128235296541915999678384308069777735595167525726444631958035994055213211836844754234951964918712489687426106450989527190455682266159961738879386639622740286177072681174517568316931135808537787121303848441369604555906903551475938229434438397262436907327173459144589847766429781560637570617426041525454412566530200539464805568838525112189564076877641725800730497697142737139635863679339889774138914046678632598027113455238782678204933395316395925332812551863924659260845525604715717315638238108855897041182065196876361497318126199573577434523605395192358121229351259366863630172253170612984081233136600519253985328171940462844102586067193882347853648011592307504160332451176138844981520334807424691335633322298657411893941341802861764899582966413183163564313797818881955518303069130319293918026560556465542799928063780073748887791149147058019390379422645614855703098063294272348521418385140374819317928103620395569149920225711253208792462231301933901232443705218783094079662410136309327023590466549051654845610566548387623342497983552490526936233229452830903378878329507982398673875675820567472461162458999472221353348181919494801532128454112917455918216107727832161115550836120454280615004847744641893998969917313628567958675780805920599009868969649106965368241752193496814772995542127373654541836155455232345373837385788127360241640050890974636895195920915101154772212632458259483299223309142116560506374386287661698862894265557659521898046676225160681703068878155498531048740856870421901212050165996722435266708681862872864385043020224624322818679331032287063275441147124332195371253026056565858542665525659051306132436316642159241189623546122427218922350007223090238767371682259375350276355374711683138545280691346567098740341149351296131168248295606008493636965986498005175343517673713815961722139257937882063023955880657385971607648207848037524374422661670092122628177790732232188335818037471282549425489246158578223369114307318567733263198913953788520644109063062241638677323449747879793888280611833721005832112008536021896492530310086330664389058604362673664433025524502734490940477451035608679386821302627681001741417868542128020263122646524858794744559811884517337000044404285791634277705268049958025315826907048049703435359848301721200364508175584666682287515301526533284697187772257998795118039750158803135610645222496656150784414058046418441965187817076114226888738980795946477997671725825146870766879536831481020204131856517872491601447731619768830539722142290390451704673002124627346790841093841257189059914934570712420111069905126579624958139508533836180207152937201133153366813122002078103933544591457622182718621147371200922166193828896036540109040861084171471864312272680842359471503457507531769372455897542873959676095811491472350591987985256327121799532258032716736315679311831529028138401989818949875426484936407073043956812689220683587172186518446255628229346908530940586719333625011903988124792053329302152404625775970812936747697894905391156517796318801708521308005703869991758730257904414781456369508487177689745992011047374278312505758205578172270426901890044601784287004285958390371571056562724240868449922564340978492384932823410614902138103339084245878928393330710252639353712076457494355707371769378981637490707014954623854365026314800059928349150570412367608885556021665864667205685441612885054453873296542215014818640188617678016424257316571042314668689166992483804359881664712550762479846083039550860268789364557199748285276084091043049046266958384731506180561185306567876742402848042402837015000574513667000490908693505946065959802861381769054727764409827208075929971892114270914906005220997111600150622486365756995762605866851725402751869268951902892004150308800049364901074303556057023048896206059252043657658798018126684246697033465485573932349868253857227421218175576920911440525230480004008866304308292524004659798362915998434606792233977656164608300565823367630476747274783666439010311936852179051093340089965139490286141114502796026092426799169633287266396416152265541750488967957207466548206845490445792311768720394225352693354591277179720297795716195487896820357129665492118293966804575391938671635298706663975759023718960947210740649489016649109834135227435291821026627697318846305448164762638978997821097174301295895138047290565459016756196581249179497066823887147409841289976681910618019928638514529453366179597493533610840094109030199984351987923680575998248598654486575350060411863292291276823038573382269920772942978517410942236878635053608713184575616950752605706168743266609450227358467961157718014813877314619809378833232018899611181890988181727674030137684512200082268932869520002869292940909103148903796639333770013714315942260609880010838226587795367728849296005866904993285165257036338959248067786434057591006903335223615537462273149128596224241461341399367836217185311796821949184719587200425614466949388045448715861055692889142270581949346317245112519888909591364690584794125115698862601513302896898649276140756861980269543702394835655387040290488183220499081722222139878189060788292344763323766364501607349228462938025926688129237123589956627037486499695774500052478110897700735567031256512247240554505238269028829202503761643706053235521217854309715199065568755145017849472378666776776647089153838330330159786741841916555073768689042678981386970997954402583933891085248405106600008824739925523669598036122668641636685392095413262349447397355218441858519046135378337257614123401102459664468031873462553626901498984520208739481869264573950594015764984824980727776297192649146485443084495789392734934329179737484227859834830422425982813571868268514537062303897784038260554614513249210397347876624537387325594250018186193197595916206676394872216217521405779023458479649932409389786863667506259731281534857125758589000891309815059048995151169770845807669261246695577276628226776552157647673181124913178979342483779303262785455776580578588009114848428184673615762102294806823695976171359839416735707770406788734419667338444216427827183197118330865307450664800264079356487420440175200340403595793437125261604466582739166556703311962616418219935281700368301999008440122490847831733083152629009684571637556144589058395899638761078092655259851077452533453967690548861912940838182170390593450479208357746826448961748561932585135973417289995623562729957728100155644001754946540629179013056846001419280525222461518495043454778336053886836160818542147439835508299973945889099673316697775268414536320823848601678394417282258151284452201401623670863263591947182887562473253901470312018343912271619927621372092095616827078935943258709802880853035145924998213606341837747238517322213758910546853511141551503311639411595063292159295623225658609125205993555997940746280219146395988501458116479898085524303439453931039858273260518796245089078147453102325214424474754290773927447491170123395580249858894213589721320852699246559369663054212331224323807012619043715319643162893214985453374091164136693084692860173640593758163869516411367947943101238115793921223162593105092649634550426049926391962734387537264033234209073784015840799676268182604344227626624200318219446664862303338832283165720805020093355705169845813169705869918027217276110324878336813794178478530446352256336229711870208115763944608772581586059232803792662612306013955116680920981283368949680025679988912218869744794758160526570889410444565143608744742725848238588505940607810400370696827160200331552945208769415314806298178411964203479274581743329164804680871334509351732368198199446150295443280052681582601231156910979868789878137429430423942575759007245504569221745599479693212900837209867289295568256794883108138326687390268208202885010875029147373005784461530395499298285520080725719058498765862851902619310969561866497491064999554765771029822234560612008180983873723028207151533826893130463659788348098428456368321827650797589764568678980328321919906912588476794543666214391249058973454915716407433719307254471684766892493241447446928901091404675629642716727029307570166096260373937969300656278286911815164510973243829808833259224009416768576882936101930412237871109068930738040932163117726537256301441056718580088798772711782879187774408940223325253150904569439285014945944348802891226227893717634664087817213793999962551266210491610154035873766130060606846112506971597070102319396915754033126204597464873794656632764010382397609830837628771733975012391825256936393637879186416020385070156176535804190479916771949334669949800148316558481302006869605566122349142258702382270091949288383469582111398893354661180164087609125209111570699541030013063200299831768146710143250485852271494426687927018029265285547557318024949295026236015791469070155367099330020726388496580290044327357716825069196770764921526349803370362962175074402555539730352625822104873776435430234748940364458845328048518435084390805377138640744552882728174907576633968301676199889963149291147699183134108490587614393731450365160772755863122951787985891976114771498730285925377027535792420319364400772423645852804062483327444458732514734180266356040706022263720089391240238253358278048355688585063695940872201051391307537055603675972415541701049455043104520292276058872371273868056464022061828985620430965117508403846066154841588208214953627860687640749407775210175991356808498483254438986259874061334229523620203444030885766267401626630737746618552450086493047362020808697271156129850658875906896000312770419380145151398025939676198297194205322562808396584190795896398563458919528449832359855975541393653405037662381647102365629724203409582456039502738405713822127131178046823361570751547145644215341700302067522044762626650374590777366179021170269266799641063560329701382602308941714428194675103356374089312113141654323030211657293430796285871583237379897921274064590184141939026089847901028386733481799843776861208482803731659355210895422899779956918198680055715818743084454626139760739438191665056252982632841870284712362818868311581321343114050949137542851422899182173634854894464827141959880764052989648318707794101079546525059443723708524673822458009098056651626260260011933598371759970113613330403500530413135301744892248528994255152091273215700609084015545571835055876883365308323090551088649063090890374939035839388125526181341589872718982611364638220795080032352551124035113138775804246048298612779808445675317896802055024610150348050106869637632818327625293006147090475422098903139785892553133944192924676997757195942104900709422658057285156200561747876539508043372331576822013518515750584576558924292972830867720250721980188366792459125629181964464064060924719065555347504395319981552674794186277258880767538801366830283983656734572925525420028670797549308979118659436589027524325096817195231257274853689089191325268150693601919537775587339091625796709908990742815337822442978893833782525008171883472779616524211919018663551148883353514616506395686434146617780904481883318540510489648398994117586988999925851225356464589153957827681855115261231780806927143680638980107171787736025469020380877990200992158512414962049839798520540453472074937672662198875227249446620781763222862087985522649250318120267253203282470394622967102682909869766133979847915273919771191621884098483213763598166126107784158885583475144107614880566203091332057934176579761656136190938870446427251309644524800940800756752973379625193210343755675219466982221116111078307219435116707709697073125173082045498466000870708100861288278249382967669857769056270924945636649395476494587871067689078018738535594093263535660659251719228014208638985130335732640251558450362961742448397244752949092896517852016231358467904365910801619061389612788117610224536766945360917356505416111506989419951406679936495138638116940685879917670596596404335395181717648998303652084996004934373294002046792613245332579884956434758009848905730439755894659283869460109049741699630374475200413494452657704063446015135400530250810556581631432703098778799538862680831758084004918347292683034214699755419680318688604832318014001417585760712912506281463979865300073541495485068541269808947711360843387192521590663228009264373985265544274274154609704435736003755207882163905198445896812708244919349547492658739480715575570191149316590521878914567116239228268318607423817619643274732005962965927467435905969928513089064143281291497090758167615265885902472414466499263520606903716853034588278406274388297397008912366824406862641199246874968910748367037316690017442050668763966242070872572436320414087213825692842836967127050528282416957220316776592303436958547583038174343936203098180820405829710782600388303598880104399385688715439816591978819022053617118038791531157266649757177691966938178389056268460951232470958042265305935975452377371223329384353596159528400678494353385052402680748583666485587539787121525778880984355442769557977054858502450160864419520553315445818366383612019216959238950809780494472730407881841765821896692706357661960987610804261575338058804703499778813542588418265004338226322182359625769714292166612948021353405592498045730874466410758613395037025325534739385316463329421494924866047084183763429236952786488691917993607739047935656173676309488272123952572867805911763415094845344285685348842669637389928945899323852100263784436253739914111267676003890637940324500444992782716213625466253149717442677971762922257008901544115947817034281968927464671251110126943346430521270777790104354670200760849145276851807568423362227727751448976448222014286528024266468426780626966162402634552831370472122408068653618667259723702510257638337200990134954331118179736874603848937806774621774912240629846307354776478483593284755920127311493796799610997883831847325776266516505707420725952634348605642067002378234209677033108731113782543399366614920077796933431965446349446294221208545314020840519632589154574564555992184644759001945534806957388948266573730463404340607492852288891324774622113103063333458427126884347241706257743534561733356620197514037703615878991401275422026131335806284833616131288966643481609895372883205562245561761099625860892336667323514138025770675925390043179661798053495698919485883124727919943816786016135935441524705910771392343775759948275883861811144722350360506562311558535216862979568797043343902182036018718415670921556062415666311388482258850019217704544122814163093916379239894858247045065765035231932200958786840099529484135374663955937181940275167852843136982358809928729577835562793011144203061559352943850198025784091683840786828498864592729110990809225197011530927754870513304658179287496442744480403572178635681001576107179999220996616491656736699290971188597882238874514308433462549598029004575314656263400057889797135004684997358963498516473529770127495670110704298860222135060731457697168886616893996159992497467840087814841670562745233770947337479778987499076419574010147376638553899179116437806995664527486769160843313759820914172100459064882831042199228499714790803637518125526054500949138088247061947129311450146800339256624965571867802823386547244642661713954187486345186498810584197495177974016244283236324251841295953630109975250606069159047333232200533404643906728950823705320124043628944444284098184975979881329418658844990645832564919172923813728835413208671793290773144056783812685560991715271716796154986388511913071536898629095896110600243857819349637878696556943124426776777962362627163700393242956952399347297842515517744217752315294157902410360566352714612314685598218872873033270277894929790999783492633449548930294601799809864683303705398627247216224021184373597875185497560247317115170980756995130885845176523481265914493904436480476167587108247434178599712489425840539895311401740611803726474579536891698115755677458226719034739447494398516145528757961621722190833101750069386101001754094931125558994696984232428242609692926855284015556733708096473879621872410419378114421601739399403191317507668748552293795173489632785737609409766314716071816018437108619218644289466198373729800059158958039249443185209783367942732860748256600157017701511650310523214277338290434909748524828811637400338380573522392447719789574786715802931182019796937654651770435629982943954232669738413322998088148504156866715015435668248867243839250706941598916704261541836938977329930020478367151139482143873901490765879695569797395111106059810890413910262000578971204115157350660939915298868363545537172801563717596589021773488221198562729942344769128867706780814391089279031210008281752165621146591027380199176243395826299877175173899905960859017993728086562086790296602175499081790786227846771736592936265149656442137152895623021860957246269544320902444296474063782069718754159789008263906349448724346298897398260794057218567299954844131343949868699411704981123767694961204243544770380575631637341627589740452093086888245773789955716270747066507694617878019298624581703445411294392718809973363068248623227182120749521423741164577750667528955262176189943225891171399091169506312419722725393340945891360007101704823954565983143747373944769479961156106580100867579070162965997836781687222658837856364543495538246601977863849463250063690203817538269370708522736712134638866341172662984532566572472022339021370192552155697169449481317179354581297941917794550413464961065393061604551400664624317859712647114919079979236227827925437889001832707341854398624393131097277332950553280193010840134281070831295864940707108730527538153910469173897162089154009387540130447532871688335228768994815393096756588009056960904813616558751086496421239933390468584643158511561994227237059320130668428883489788970750185444315585409893235977810426496473118524270715097286852228441452744936357029188231575517574840142414933190949596340318641732381700074381791248465433853810517117810441137654810210573292227277235660172602568963375909909576857772842265205944879397940093820880994439653243820970684979908559144839540705118255356689823242021632968388632345990487511518159026163779521428548761144513551573543174985140109702038780053759534664986152037392303971033291882255408140887544616638565625319479646984289290545235408636502917457532949246659931091559984079349796580378436826683637185549961304320482267414024554110798849657579422991173007474905979643695063104564680168744350349213692867323457059093210483055647056914921319697385461706923695668690321999496123951352355008729304754877178568646160923450878840878489389950393726503274940564209059028618612576763316324732784823576891201924389114861279662838807193285922638997645944369368345731841625870923100592426889521974023890714698148350470327109562318692987142643059473320149340965380545589663984712534839352864031339585710148790702956009287570833489439818536634531909675140019109142918626822049853832951468840997621935567643151517721648240742277140655264037188810478149694526329598156960408394518654160989230415440651350421537257056207675321146258231527436690611475560578928520221081180325582641505075048669970525198902949557832950260705484265149279262209185271643201806648985118649353933482772748774924640315967115696547478919956102572993824424005442572931494650924309599302003502452445000931140605402373305596766456749663987903752813361409999062929678724025226421733613756281784281049671804105596933030066273148124678509235671049822235527619066021273242737558945576316118011778985325285011921670843786056540916155906025393112306531892737710369940497171329614338507739723024451703144683129198128598337887832739699877568028842026552527410733993716361040331741548631683913661997352722235433626333312603819380429399914703168554090144456717744102571361930221061043253809092182866908728482978077222648882594789119066755652567092329963083741093419808603375434613708258321021134481716389402160764324916946663204848520391486317891558983922688978772403795533869442307645827150603096275188048240364237542941784680120535052749356197549550061590600415429413886049947028811714214754618404999423091343536434920216390766865484316201676153567798001131440222392068028583295402132600006715474338136316428263944230477617613696317052396894614609952826993383422733171812281419691947980936201117076433277896722481749711310105605230734768478214342738090338253976296257343464429178599551510996298482951137193776687292849222099808873839436004739695593982228452194291621485821057199686719927281124232027885631990693668778860835186605118582559230681917277891157296365721954469069629923416194396794271489743344311038639951631240167853280889873297044309747719957003197851487159028139560318993197625489788169038998023124679548372109592842697693631687843991635064143299189080031200726239027872165974464802404974331667472746571195484617663554827413844860492088298363282593718934942871479847939405556655706100376828479841568960584475856305877767412175034603449237219072813922519711259907573943580556860002171071405425104335374646713112033716265907087281487505431519813846900919716480746153707979672618306547789957459110761233194986995239734196118479173126705373613001808344572876587947893645842413365395985812441646911550458381240845309651126765209241790353136009101097595890824590868482717260759020984345103020542070427698265975122487747957694549137846629924562245597889686872021396820493099396934784591572875546341640734375345643734230561060055640881057159601719125607409117805635642174810400422205520209118772482294458270193649190411456594418337598138818318964620289324806918884722833811461635679530735556221938038924631634976766725738350805345015114867342136304290828279080746207422096582913831079503337614707643128612296105967155711612677219716811709229189923045402044398211034499779464252715087128787568497511494385604945321694102868471668488693379961946576374424003060862787452553535105809229557884474850627272064211246017698617101584895675171410787963455283048153182414195944950546398828428354917958589669216650030900519774431939190882803734379181763431798645405238803786441101601333368084305118598945010175924629503963926703335503698813955080279421063015973808200683774373640672752402658446474139984919507634891040673917360891718991318471835748991312524072053101292124882087299709896608673047407185217516313511838126131453410667682089797515210598357006902823748313976207915520846985390531801196332810052919930248394071791420973307631075148257829602130553407689845996810606307271907409204838445022839499953216884441963691484602022858194995678420472859352541601189803662089836274577236915465415775170741750920715136025800433124262497431083157222047995501752945350703864005637918156195349009008659311375843584217194843203931554941019643231802199223101230669962503689302884835355386722267026974647494266158518973846125398628126393924827944751924691842005115179973956304156648515866468450295984463377076968047412378907563936945147388507483019034916051472227908318939379344519710584809491829384662228025639176468126171080537817538967828594709760912407412648688179595761946801990401258947759840957577472110506843950324263675946705221267476261477839770936724822838843479298071271131349894563035905463759220884669811487719625974655004974438550637463013022527614408496278666542910019977879133703315749722760106999310808747677149907014923846036800293889384477156454188620233881382238566440451671741507667669913968180885050152389722323373966161768420032446103248186780509816235505350564290715635654375320320409278870655282853673808561788319956909203349473577647120559312257151077584496201281358776686725403859524505573653754141531983412260610540536712961484031636400987768086951808440854526125140238502288080726423491885909269537773296067868844896509423710428784150612861950221537094804338936699333769998950468493402656083539300861744644037805894131096870101271783051467170727039904633777332883730322638050816782172985867298648337345071925558868589841090954236976608823622071616927877324732062877191117874133795540414468268374232770313056092711497902044912329694497037905899069678768046938542993784322236594229530801699740102259853216889186673752967570252715507815784844993437542230487499658472474618916047402430280344538479617474182494382142914208076601540751651972767937643822939191593653640870578400996274875071547606829441372101024844402261173421030807223677758649345146595483105231249687520823431830627665570365838314191482452325638325715039039798355796061943818873167442135559529622750730231763440538349693462876737223268625247274976294717535739239438256860774776712126065477826217584855786822135177560717660455487979977359127890805849652066577961139536513554379239474118744256305247621984509789267178138201646343157751072200237895807617720624222986205985950294389625015389089529685859631094469939313046487527814111010368345767205374298259422987620204524963735488591656347329373416373813964482429395668116852189395616005221338768435646066555938134342382617622737379255351782796291340755532680977588591682721452137407136589034216665216432337084777154889985316923328298546589471728427626206895766620845255213460839477222728449010563047298912572572224857949897131389264935974273088141829596508203534660540465828608574035850384362631894058731162667818097020280816593690038561368519376104228217632523626861759365940961553733864001824023826289062806095123392914123624419208653597456377266608692847667893076859127411892814834267586595176259010553911598357435066270227657055348903892357424994043165860094945730773713048551655162217683131765243608012419512275959453648106066237460209863698754820617717307739799794234837156790585519922935179222407938252200606540189257529755000259730071231372395288023218838862636744808453291832922047187043525038062000852567214708635867885268105800298417007941019245752775163224948452999005149984257110592309592686918106960286681586239868823963113698958079025910583756870592635031522412712914763655984260890416531931975645551689521630504738666466239524640298066764755321573772264003988653905955222821351572724536232871813533967450903636626068286320619799527312907738323182040248294045606088670501304340295571101281173778438533520845922526432542233946771870340990518675055087509015952394852300454038808109448545756592502838476280812463625835147522659791470446007579610191882021082292203795677303978180273615586639114522354109331371074669945596831379157376007060514907624857320609527961166970947068748975114665392053438695805183230437580810129601848576226796802292536794136912637856284721591051512906455046611146344000577404099678418032643142220358939660428732290614164590742353824188062505380371401689383776932259522258956639970281530279001385664263120674429016251949798123439462947373036944870483298073636635853484171910596826572031048481686637037996550268466867475663065907193724364731226785937749680078819445023015488266959077455228532513416448969449449561021480788001569561539582817025240592529685366747198898665296217976913395846905200449270203026310021612012517524738500044028056076778082326866826536173484200449813244647126964161572742329603473727836535753658411356266284446430860300074927059057368125094677631851513611296997417034889837373398487032818914992601214642559850119939680352191217242135937065412435179524113491370182136435279858504520219493916097281067473643654982637348747871863503944427002545030938483224413662177445312477166264340173446448564823677510490525009575585408324302295674006079611904301577403624436709483998031929166994551079706502241398611108811539921653475463124224033697517806920357310322620632361718895629517658356466052582318956658044651277544919479384993364754107694997880234016458479136549813980740692527941364096863096145245638445601304797461202097099258740372049675340772152553653991198869774841534176607701723557644798277317040453071399042144918289518601663057363558188542607439274338782267743912408197783293130185872921535710987060442191411867399520223704243080433244845292156958216530303517462797996518761472767670770435126871778519656214482971208844454551655603817604650411407376749131094680697617838633088806661305041769107734020145647526353793429199844450807279976354331527731730383837325447440866157085157540692615768670859660830391256885613522712602517177098334866452576300993528328825188889416916992911503283975869241330894969367510422693491890853044409794858951411924286287530130677866759907219540434070754357108443240341829926787462394048345792969381268125791790193085224316421978530590423928458871986183208218808230076281516439657924882238145473619508491187875355579121163902263546867288466780105343381409387982416206189627695371466888559165848133191084516923350303979265736615171500750050698022405471960641914329786845833224099621229767956079466850987493207173036709091656470926247415293724190074142431856093515810103852417668701652561996693029484549501407634479713925825067449264252141656168894412148346138724547697816923430026027593826054455264280110178750045907259038705201399497124546309583030113334222521327788313295334591107518294955899398804215947394803103697662307112353631975898792764028652125660197278671041606348274110618208292899533379013845522812265912912051048482090180785759739979331067604989366654946499263608435898582319496391054206919589147816271878637539289167415583432692298833125162602469202642457416290150257210664778679348638553966326673923250073863463247326326993568036877329440610607712776710427275762743604531842025570579434326641320382112468761470059629475119494348199961857775832234572223188684071285974058457829792534741145674454935195652393742813669423879310935378696513697759154285045061899046266142574798200901492501332635108269213844249851024129887466150515372451032624034279355533695860114314263456435317956950270572872855674146181363663089690640014622576230632002341196464434153092362147525212270516648900483318032824349334402762270915931633538669004947953059561206372157491553302543643745328603184286910208578396856528452182198294940730085812113290745948573169430908948839798818215446892019324469325167124218795902087175933335550442992157250366580082104467678297620400744340524640325242981459585525690344692553781803759078833187525142485394382553965891191873322422221244090797633750103786722632150517161608076352478373027500365024470941944440984112392675393277262474251184415001893851925380813337035056920431922071155252699609475398875451698997356262836333278732790156339981853532419329872854890308098113668682017380988970009024219600804120228671427575890385608253057823701466659839661807503520996015601182127367195839069253318198747235517554185753517720220104568072197133660667764922119495068297010949742812743079662269689663249989732268245909996587268521960971167506553114450306054161777573379301381371075385463903214243221675663702920675064183596720212299775742739851887680316773598041227644787527112570027472820994778233963002852724408207528441904737473108796479301079241529455674027293730384779840045448646567676230118275498269533335728458231063998829226712501102586994460885044940934323488586765359625688195645893713514943895304801613102257056510469630279345367085283581656595916474026193828764025861935727474949866960129005788147064629012210140452860999487219875688782508391280275559350333676854017571918430552546326119484996343025183019493797751018972662492772957145458089830053296728454421835162558683252962197675459243329871579567021488173446108978336527295842226689397381814125083287681457897467561917238668775086938158842780380555347664272434194610238106036852719014538137063941326371788370382380262183716661366180885384897528571231375254784478251529534115373869619387892911455488297146491059097643148836038099863181817050524211624369793780137380012691211601840339502068325287049773507387700279489705645086005187632725837845079240169061237652194446979629076574058127408308965667912631411770925703449981650678369815797584096835349669365849471857915682159291190109871721666483414553664281846798038275842532102271826959860485128848045514973885519804456064050659361502902104372620703506381844318440516490624337510297513327761478965311118877204670451424864623824955698683434469388496109043403353387788313774640522122536382271607668447896272809619686427967596111995787111115455966037248597180931846897143901578866268599261827737460449761680176191272477540735508120094159077200288409765045236482927351218189014006831236350758455678218721405197406427138981802146995429883594517791505714906151232832620003446489751417420032516031805758574675941735503177526663058184838181239224811034801071793195066937338550331323972537535008525126216056212292448443376993225375919732546713076134102222045576628484682709037060449816250113748888327775654330281526352840430123000246943378958573212981230752200719376649742691962919144036465624746656733575336527130724101176368457968196053242723739239442172367545242135764151794494677328373257414045347957973800475767233715820421769454381372332953396687360970399800174651703753106220372594636225688351810235234742548956336196452069507878243117586265700143710098885116537726440766364692070883243389261711711551923204717320522049606461242943878112899634150966554283276115059688353140470181026410541498869299307644502696244112008505581973777078126062028201254949442863371577939264908584041903623970367692155000159323873520756400215024181724407166374464899672327656798867199692274400382262371943447517530909828817082577701167047135074414616588482268712216095528656715658188395758665218035065524519893230017667657399222863999749305654160978087134225038723316285271084546217364753886195705007691864724552770346659818683255556788542366197970227142082538282120959594246027691198171784913134787079909001591579687302578479604962520488451779306280964863617283767948909267285451630526210245572536398979204886115047485286674534175828493399522952870993499744181856119540881432392962739628864173674245148644288309918821654692538015953982681754006902834293157513701480484550864274243240276244585564375784955435070868396074670466651836840441537972670819354317635924776483470519195403679659037146330678917014502060694135540934175538844640640249614513868770644986937712228206339024518490178049367719009183909369306283028408452436279237835599250422192120872445933231422399595767068641143176305342378836026687915371180002435032763916983530449303725710892098133513932280798131854933597414595204423901382210196650234175123857981067607956476701634127215301008826430901050006605494506809703419187035061053644353467072731110619192728356804901515770763886215623255889836798598088682651608974240678486666998316291328018627158000877634472517127236822811750152317897575806144843501507920265190032454386605736250575558090786074157966522048299866153000877939676195626282665057534659810036720929036927822492446386992507401699151344356184377106361821940223734034391941947492769286113287933504599216177421947588696838455848141845285237920846280197239956727507670865332703349702791709381752412178258499906179910560345966399486266733451279205120501365785282903433878912275528257477636757362979402058299182741789525645140896819535246931243675046084664253804564903209451097144590570378769632472926932468245843006069887600864210131824430563289930603401469522202830060000045580248600626792054246213958057101342077615788714894271689227662305651867038728144984410543389983613719935586314182145057391273912702929850667911839156403603547915164855788061941432350599348991177628282599191934925931476073271742867600060467911123528630847514247296343231441646420269545042412777505158586984804802197170919592625889311289281649796367268132957731962149217618492236830888494174201826094013992824958941628685101620425026057672482999785336271741674759581789915555938878677428162597919394962602011421592546185052367369879162102503082948080125757399178667343556300467691701850061168808185093711678863596196069045096057464365983284825795381617536264944910283961081076073168136345288915151514758700542085168091649153374492584960245425124817874218971006654007468442494606166194117867127447974370800581103637859032098831275112721810424111981548043244859148611390309298337346992542679079506071961744588434586060467224690847378125545689509999535561782481062478848043253539080653245800211354437514969008561285380174423363891394573999112832965430779693239895455368956641043791613425900036358661308786749768096745198948649506413056382388879499518612580730828916354661879167267150974252821393698877525040239154871732680801663663013143920677733828219831433415754972631169536342474056360032267640206644041155601133011942809108858483244389832379328147922155736476812186486848686153157188911552497515770618732344768684185817978529163398206608255147983310352570757155270049306488330635869369801980306235222195224062152515331485072653332427481905831892259907805126444709656048643174519541548970746680231105105111939769289188606899048515712123581895241206213088884841785526988481767793988518462676402319057828962786277545713428495902570149376173295149439410861659110257001680814358592869207684395396550739789619029806884912589067866553976905623635474706005457378430661632778293616742918887769304266402611924167980235045392750078899531115904668910584414039571707988369307138761387501563693423461823321503994899834353540828435459931410842647721000832684068896954634064762956414723327142855550442507697026484059836510869672372317010093226091690205655091606990151948332962400132430546064208385828911088587334975591890803468021093305554517312893904596407237732866050043840476176876741704198560642646293383306580145324356897874198645166547140498670649879401448555201289566456689341428557443008340158346447398495415435204491308367545206665851404604469579323256396157680669290894069225869299019320873914952567756114430158663311072726975599334797907318852065881876752516883844732389243314174622336238562041574640643792361183038428931095184293469993840640634776446406145367766255426990139206851576585683261800681425454022196053658121400367075597306870761786890522380184557862178408718229014031053294337198654398827753690066944159960504484321118021065869458228757948407081605649090151078622814297803110006372420914636821882780808056076755587268374455263454841260798874549411543727257390557258500739265695315497673399197501922317957362001114962322777952597777290519336783236201876503850686971904277552446294173184969708398136257855776162918507458787193489308982605260584984839236945987178397345668899381825189162382727075802527389336124584383578492291220953185496438854372641047260836120152565613063572349502396656293298235938379759121890264885492928204070932671389779848548844968542649507716351917239435982469893440900519864215898242320254880230278389725833252171143032788678919549048350801902158731819973382147645430670826147093016917035977970726626724660129704893270756539371654582573354877473319701105697147101568292782918849625447491717325219736503265922809618128270623655799354159342969647714834791630609703566179764842909496166162604941955166764752573059635155616695252711164909632682178650770382314016225133154245388017838285299925840255098786074434583703626064774715424817490715154725528833613789815544857927217666143167370670487138495916648189544668579119423681118881972225041890000137962480623258590155087789469776815147190619863940498682900363062483257861555985626028180028643637127792816515588541391490225665803880884554438757686825016511679135748518050822207490053136100221705077275060986739435437616462779862667914707919151538972337260585944852554006689617529274213316826045578968514771168675734374015274581905390469613060708438747630323773371107780141020471977561916006158724113471127639955522229582255275766519031729249117183365255007842269375481609826192800112829926131063665633528870566878684520112853226379497877651352909773135930584632988738689934202798841287538689028133050839871441272102307334473069697164563553446558257798899201327382075464693246103745298271071156673377378315237330666433156868542825783694442571991278544904350706641256078901704012573263186139095323353674978814659166887570033264411794098426690094261750825561833954294708830235542830811111016165269973254880755975972493445183547270048806385461785776734453306054842359031590531042468924374022918843808805793483185052569374292233058689217617057269690450815634640861485860217975478458450387286042967007792374974588064099603550158813814173511083490029318615462277792990558096565741767494468830524808949996315570828648603270171076089213495624347090353101412209127421077478277296002503082555705017742881631289101058698666661484279869034457938880452326596016571956951508262306236803995383679115386498199599015995048001155868700545320878291398663552058690501414346023119016885036409426737857605943687658737425593056956934043104089722380826535022482378541321047176168776982437798081946267851652007963571647243037697753465956278014252699084051425493123366444469774843412287952057297706593409974641543732498591828339958596263245717889422779075700303778326632616847149710155591001335949704081445361915556162820650256876322154203957258974506247983053593885578494391489933824176773521974304100519963989728542666909580357831788074929670837465668016716940296077706146046089267058735601559199874203124813844780627892956248273979246455884023601109572333180633060545023139423241940608639792535680966759362396722568481259338680420697729335996254239075312247131835079533424086452745193034664130793023128188310124999036551693922008449915622847169975710625532342631313805320533401620486015176792622664252539528093722066792359364037259584887787491091771024520420971175209738114361140913901709272532250472092634165021964290745944837975048075306109858599888508801036838017625012564296287536961950855323653059897024276741249234095257650024153439492338506244854716036297945139955476994674897774740433929209804397329885641706842579490679704825323043788399802609285313575806271182872918825947018014518401511898908904129629557481703500124432557434979414381290174560905391288647429595034864678859247185474464209418267131927561233469709065235780799168420410367280599860046740236250083267106690774721806448586336628094599902380996533963299318355345558374619881310418518459639019374173947070500309177417513406320897103070041260597308628466936577131356974267688218350690078005119891152688961614992107242285067385993641477873382416670801112385134224922129159756373412983829859254164058139949414165016986586247879580223785242059484098731610118086347197740073356282861569728006476229307082114603139113710058143584780233402756743875058850209886951318669793552043316182818221279988998167142895188987513875730888337764060928740399437544440842685796160819191045821799324677256751165333927096094238434697464447975826084546329664154583907929781273503063183481484705684651170341352268021210470258216897341256060965939306063398476454591379751156516255760302723046287702235244747794235339912113788342536517932014374435866764699757749562786168156275960827788011138671472761594259123722130963029951258491333509252786721322251295716087253693807110864452526102046648737614007819562346610476392067208510442572231023219338469441977277349997517665516304452164729756096905749118958567361930851433312736310587884369605916246821564047654098235053043541443716128571008754603289260009438345470686217445851668686566960976155991047544748284858527361831269670128872534479759021711528678411782832713250064254275109580939422188186539369728546467450555496781365465335454060249171714421256019275804654728984307238103267707754333703336149194961510103368166148565552244189358686755749370675429802374264514716758523274221536790343559653111351687837120177213156733215636456357567581061782438572201826302623784135127468427325896447138398754225044244064270000635563359934449463029756794452498572505772857105445315568929719174907664820591797997432492383708247625921016775180589400380284270780352927028376033002783660389487153494239606650031671837933101970550151638075484564252973806442109305530200195649725346756488278520227161023885977124747056271535568499347664519563021690984650064638622586879036620438486175704533820697162086172892525517356004823317206977481998315312956503112530522218562791519431403791629122680507033572797672801666966319041714158127344787164852477173972374583603498228083878548680641924889901543567995105150453942182104279722701582309329870874841161224802989842559119539026111093538309903706331580075391815766350837529812265363925340954456120527633923049374727924598870755566558315667647622647839391701915511018331174079513352009674866872250815122840062495078058514458227495112139138889123526657065794127690184441898258053880463115587201574750682718448925600867591563176643187434987124974673896149839967289840677449504647569409712876188008731025437554174235163399726761016670128875778255970364123426438797070803740618194777258353808994595858079315571117314396076608922805975188363312908117884109788288468421430597104885190186926493504153580498964917576312971059581895016001925548152716942249137943622061742484589142637562602477067459200523684705345972917413749837758262979287732521526285681060481629141420733387360146754308755017747949508064819410806022203570750439579295820701477292555521155326946018764863336261218325517279287997104800077033340366301998685613537294929260011189272544251245504283680947103395612734193184115550060822398326909544679771437563395133203540802808198019333090375431483849914809807552053139524024748044371804933123129417245286027766963434531616493163034802378211680779220925979714327612503856337567370748420301619028734778680404563467444317585944627990495815713408772327027501236165214583328280053264810827271731916858400957407610958098851656225984862208346163106790329856847344973709539234152259426039212163799152365427601266929518885333183806906619255550115247006871976280834195719002312086458652505636569597212657928118327758039628832217426616225434303684960822526458270184443050352201898738496686177966913772245552944017767800908155810769918199510679295074850968888969314843592822995917672439643743365745958165550505856293772981754188649984719672647285279360810762895413217916993043351441956699187220538202927367804442958653380363003743563022928598645813396156192899169068459954817488936370956653193493459610892535810142444793488739457799436671483862208101669888187356689206383826866735704681189093161928207759755481599775065299093596278844554182533975618848474262792961092528563499020589592274085744006564355290841286241854339430866648504268440940237351013234770814662083338115000714424509836878626121664734575253957697542152238883066270663583934364748622666717412543826675006897839894372117414907668618083150391542918489622460413338968664049320432799330438004840910526802095332590108842591271486836771968243086179846558718309905537203072686159342757450450455044300859871405930431594617509521155729609241506793836980626612549978876453720909379791781638330634047952247230495342902136704791486509939705571753158649148892302379118421026145142018067790005734402905778792029574524109329204085083961126677012109868997165699027529181014715025179782915972737241613321906828252874135671160106534998330311432076503319216653221187879254879681648482930733012938997303389936811575938159837091323930859868970422191964963068436479238749056177425594554302533637427864419529252046956914637607675876619193144124811908084185336204637960740252432518097156382778136033449971322387128264775178346953850281157815852559103390220341377618236290180291517347213584328010165080512438077974730971890987676723377088129242208922388068338769868270004909694006791992960173866278296145192251750100985734265678749506027871722856987533256097610794011025206425914795750200721083999285111608560080763384875363214225550010073954116246551045315632971428722670857108342214717298762819195710273815789482486504320392023085212593653945841487908346149976717732005938293969888797404459259629276840669212086325075776816717128404220779448459011504162006454845927108583242601241629641324815626350125247241334412546115692998106977897137541672591574626501259288287605565223544639944502314445371405153620868751125313915895221283761230934320726509844266523685336340880718748559790580468199596314988697985710949508414520015623823922119368347696606055396459728618296885644273685237993962552766485756232069322713703744797525977486147620853312339054419125060067315794873370719972470615028345807489877626073039007154957232688105295259613349678825903737906291668256168010610138693555014348731206452265504232462555046498089953680205165383843719056097483570577839490626255953592977441906872871956697161559772322194772334030393191854392387079120098822638327784367299198092072802799928746552393997662604521275661877410328359013204287276137299240008804031623338578483522641950742666607095481846413181894706342531306929655804839952819919679955276824186233683922463219344689379337387787958752504643983789362454537559360893467167396802257535056078018143730099310436859495639258676320174336896728357495495923838624712342407950286491475596973022711323203321212552641895502939180669331486928512386670028796235126970707578044203164744396563773089020675488075162264939218903940817457497128901352705141557644018070279435498820209706608569110559490448842588854041643889300387804210768765179021218285609906323801260258620866477512641802391308908602750465792488317631381672675148409041347912863071585904460822929978335748349937859832287002727316179703462724386642651292441742827051899269901685249984805014035498548264727268182751927183450942273037004404909401207489669426119252227183106588892049873762257704628173347729341134812747966282888635973771720229115933563185468311776958243100860486922610553191013960364016054783965835975602754570395264697847295483568962635443362178179479933223121690549599580758262678226129515085793167975100140225053364547772566779940991757560052453647888506694079266416735116780028601449593891538151424655344915281896190078999007856516872891224303319386810277891133943241109335174097117619987629477241450869286929487467933354716787098310237867420781481527665251457996245582959291551347673118047280787493648370485223991208788628382972880452869808694878255822393208656136356404749152317734257482213842685677175190364710548903832031206898506855250207574179016345469458224721331785661837973008761820348941316368013474910348998377785942211801503486153817929503425116486733038268425166339887502784529819953806303511619364997764969578307575328015351168284767205078181382710589526204721035436252081970534725136822178868721162462492312441143047879759666362868875957629606136843974749980792392430084951465533313961962405729812280373649363815264393190868006102253809806446874834365337135232934225524910372976223466484190381319103495587237056044609508843868606455000940112475132971603969753473313291769654599305109779340734208122131358480450258858714445876431749550213157294518214997771400768587992977949252169080543992059359714007260077499392998764535736486154862892453894927991735403775020446334956533381220206418322946571695862641152677204204138759490916804356517458119668736946470650333717988319853897183677521268378753703470552018114330662281650850626686627580350948846224932316521823785455727463248795339153951472488920989466127375720541541584659128926023278325634754869392379515295384707063149952819436956367417768748837969158824720586762968484483848445452794531467072291994050553056143656392134071465764230583331237879364290628179527877182188346404619699773063763899061654348967015451052214868509057641308863208116499376961304962976794638842327560546425061566142311329072973791159888139279242705926884269186860824806811435991087263359918639142805655806596532123792256693615392662962547961030614204753854672128313460837752465476777366189573338153529521025983226909428627894862327365760928300385719353297048103754025261688938634227999160577873857125543967226568243318196929030736241737003062773682914200688288252660046289611972665262908904013475145893361785449411847027367258563284787523297440316185247816761559480459187300313285359508298441607810326567717673177525791511683991745876317340664448662033980019121816829579053826466457150269194663060518647199429952607128530879798375758498703006228173464115099446635096828292568026237615439896484904425478283406320879168274572522675281142106791915614885388289997579357858606197045902583292902458943085758545788779466301384188719125480006758296616139433980688214712893993586220558071256731358030776032707499961923277621885300932496134306367217589607939107433920102101925067647112935988135269080471106054077210484014985292521161592518423032047276276814224865771711045022579193089581142286639767621434247938149060701789905794774943657991752275462601384676809903652519575942978732126593650061190582124186471177083636993484077931501390907420748137294069359779935595242880042485373019578922594620660089954735200400678205465150673918129747316132948880202066033661029851240741236548945842678547377820969213625902251677434615901349742232874141569508109334304723703094177574619033119374513349187111124588374050538339036686325007983337774988934952582360536748237627871134375794926738675698525594938438971091557629258010442340344974550670471940159098740020985514203654184673729685858395490048203135746781726443101972736161121178302942302997184225657761331513305293549122800410639226209240243599478470555102043596471058263993920128314371954483852683891563526083943852399367994111183895792947811609096997257801184442077903361985818199442819451234067414779291246837900319342567449034968470514965400853856261395243015714332332515929847999592785482340568103140850130079736712378665666722480650607338290589238698077014070636489392044769325188816956875136590697628972139327778704025786472456705626247756156392291233628834976651771693991143740787638045753859423481004185741493873896124379275523044019507829100921365802933534140234280342402899710787942153747905903714863798269741426117240541842604582631889124123509027973493798946383245846049649910494314139842461377667994270552863256066358298065218406182200696582036797033545936171178289588360492771219342942030935389920671411580319278478017358971138158896336802351317502644461802820990859246018503927438581094483806913837716511129648280296659804270707439288374569737298539741458146315943186319532246210320011551944323620052793360301535663507037136136076149405928280651424382002597616213999124315443140072392095624032132240233253048600698063694840906380288945900111583029413894269748781760370835629671150517598314469502392897853218435782222111620143453165350493223352988193684872858378652158309728089522856465556297502676455679192963466801815639806508935599757648301555030519262572213616065148940881266623482559716444232381100678352841074172411018322911621795895835990309820836188957990783933052376153243499294736744671824671117266267317597757897923778339394537791505219490935636166626274947651421362749018971193543799528587775944416817817683222219205940168592230142498397902187860017150904003331505223770709821383626111849978000770376866519538966978045009054552941206130835638588121648307298267128792754700379315479362140866078740528750452268415233090829259657082780625910065077911204325749821121092339903475742147279267862907476368431541728240976362032447771688982307485453381789788195060149953138128570889614800356632539058895914590913560800794721945603647791800984352030177324038398305601181559138195091456320894726804416224858559220920860439477070363571455793554194202734005301031604922775330134468994509255942321426913225496727437860190366338073713758414762628915122185044497574123849256304053274658702358518484311244071067671219113570088571287997702888814793784120571020266681168676014183149794501143242534080106769096162622243037449415494869269267464724995462427210910201046182158669499287822682684855194029106777363837824092366896891700574650647635935108606852928419973491674046811864414451801179662567846884806833501880539250195318734756324495619736162875732799034406298921526060057232882994958547991762837893507350176055926108852431471054806823329319127496454516118951820325648698522813441314623868121654681339109120177086838331139806071928068200644082502680604495766001142782319758296442444289018950962676758736632501265969014561705182679751201405877890698812813106445740994014986304502955698106370850190380613262864580364617896770170937905336989160091969051239469290005176771593031895664960925818594206915426086468276621017360219221565150975289159193499173166326089075601138925542499050013531027191134996261812009804244833060573293131654253922689035272711193861074319919605882951927182168060351516099030448590283266491651665790566448403519104657074252791452341505076636509037566739114117643994017582918170668270485644741008721450297900729155828417104145299368342300924558517289097835119052259975125827248372284329272936884621717025014582672422107143969027518988499669340227064694949506919270244423733207696621173923794045277923567430622562703113093886862961174935892274070924421751773804597990882124833121419474169422645583348538643851898187009020809151986575773816918379998373003742932831934420132288737311072850914325668980185445989498492899066929675395160118613095730366853295180494930530611343224250847543522941216685237949959842418654223431306110013990315721341190384349667880367205188802756899189231908294970635541721902294347761661360013315622029001615522742499615101901235617928706341372063307233119734602265023356331950384195773858177994137202475844271595670509758524957348659373962832088115534754797602609976794517847250662346540234966293240764777048455834854558492998765859061083224108113630894925868421967619672229148276911601882827735856951701976696635985913324254022479554038205195914220131995254712409918348211098404648913132963992157448869005991343730900200669907072544540430615237497627845345024778611121054445509522986240220108667668006394237806831922114342245852317251170346316478035252503900972426257207923282264833950684939362121485328225508320896582454109785625423461838124444497277671647954491080496384311502517189047912985559962331043648135595501017946291789998524067059245957696195518158829114211992643677880894232601941032882635934043377680715850923365643631191427085702372112464998573209987343341541731293644629561459923998091462017304270641369713427385080825533341310424786349435060966355093377356854177454512215202912007599821311720721303695883141695460356833751877837679961966193601771826383945932434547798438272533220803520915164153614252434819457915979686218333164536009571498261220999811585496457745749868462946168577308590414234177336337088077669823493827383178374296266936301087091524549131031222455139139279423836250579975034503289349344910516035278911035551630490050420081811268008081620457349313416003977355824694665066240842060877512541494679192363309684242875693828577490711896882618765809119866578965653433873776800642111818122643530405142335087965678942787361715198320023754329188028878873891673395848410731650181860809904850329822012329271405173988129004096098876605833993285839521256433878983894363845185494059614378157313116874087886866212350767762395436368942053922776670482883852074410892409757143565597586034133942318015326132473944813750049626270396936719235317883715760339841093954419246237882007634021556637602192147814841818084902411630180898909437184770044828837028244761979410624345379101104211456022301716861878162933468259228611588534740622343014541532009401112529295675564603811451975974667601491713122503624157560450614493986616776073080064653701482020771592215980156752660699818255877545414390599998387200507084644347854252953820620536682503839583689369373961786097943905101603524854970998823271247922917598109795824745214711725532723353533034811315438632611853208751684855584333579437711891700881683623926400771272539477855325236633982957535379674189474194629334102640040686603454808625238308112028441892645533078929327318703886046479965645944578928912137990967684761967434220389229454773618778231170068378960512462942007083842497571070346515021565439753245016348967068714206772729934258261832398952900326351654389333728862571101255186811259545701528848707176184544650571968265903434398223895655819622139537647517408079923466274491122932249836656770568267594027170079110529787270127349192095707724875486944214626605468833633447476771875933308348909132414148765947319219200711116997936045528058723406291535912808354823791160773960186503453895113915144936222810998463099740035356337148785345826438064345025681878940328856130973617072434035540315229374219972981570563254398676478264986083752626467509374640349820754364419742654700669431060656107929779991534762953735765166227926346764703265764698304121117960660879118562701367608909721470707412793165413795876849334471165023995296857660049402060767514911726560308113751853191669755750212608839668675730255781738847975086888347124499442110648880536663791115305679375724413379211676079605534132007515108226040410516450332300604541406943957789032606346926686700023847677601865906111649185322016993184900345133510097180383460964271093029020222745192792893242659453019731503071864440833733977781846350660110016535494056898412306505964954946225398552568028256670760957387736977110052792820585596548147524607570209281205707724123892406305378502167766264279641923217872486541712114738700436092892590889804692211581671021058818441616494456413953164152120080988446609007038313145771993063887821854464839779070895704517978875004397737789544627874426741989659167571790771577223633303660944639659516240489646459824673137150779857924515996065381013019442729079799889592322962252536088142072836868651908223622718147881441894277817963796095682220303813986280388515265931096281072803581671103265293983683760328630797973226914475085894789623386817858905272266132720570264247239263196500503120656813611847006361997861751564618603941517010401548787595045011494555260756797383173752152755582985120158096600162858624688175403432705550434028567227933311987210698600853536925171712847284132714219961086502959846335734757043250971239442376004492414860319419685819658525221081871817333102277333623067903266376267763046368486197339823049620464305185004045452418946592623428321189858081068735333708040580808958677795343846163454140262853581633945881470222607201029194221026209883188171290351135059106951702292500912426440776792084374702163536202888372828790767399530213037612237367848944763979628208441372754328958028714687630282991769800830474636045706474714594553744269694329430600004981583651670704655475379689808084611686837166314082369636566447385364356506895821521322507371878256253159984116081106916921723390170105274915764585518424200854413522295379663662820485698185352274070708978201836670322612871058953955959702827217285428506459921084361809487807797541509656477990520465462357526498404335213952144960046634058140955884913074770043313539911754390606926370267673079132130764949875571859926415654547517515619625204047745122266883642659961923466457074820568781048126310573017195611911024386648619452811927893713166724791621388015047769086472110892935178580042989278349224427473105802096030467138776378003849035450576820729558178949024285351826102962854056612316058872707025119860358801251987866574085731338265205840188328693841670061262152946650207660245425975240040021904960017308790123638564623746654019782631706590163253101396793172908615841608115496302919453274426869758815974898021566986627215143419566279590296487040362279701730111143993155307645919126124011088025959956603213822941292760506912038807288042831461985837135447383161201532420244300207048372429960515358250041559077445885295469473909381425046161012173349292743052794102175149417974767965618508750754233584973503242610525868435363149890160604061615944668511871793965118779428684311571344296736275732019815808928143191684475341449946082498973726628018965569257945768013447640711034642982974698593322011980159272020355683242844672897118364662564614024040617175065469290601896167717427434669170598295859124719861206464584917496659446373099779851168303381295623888786252159256014927421073648386446898957907088159632226488543070230546522285569935116750942647169904937546411484128287588456928048429539258359683686301694419428890851522751743251927246097183442456624505034013857712262212702542796915064566867414277667091722174293401993281673754024228254574811497996915246259644023906189823083748410050919088315109194722156277462872642224302627337644079281987386664518827171647788995442836738448765790831942622048020917266094165345206187347118509278711580858040322855622070972987772396688784406935971482206739731889628886168235606342005874612725526877263697889453793112807697827524064497602239999725513601854656741276377800990463616430692051771896966019006473431048745889438432465281214486222733831389980845049554021263748961392502251677900158288276454317421948481531203932379883984122971841142896706125490062754949107573937827608629558660827006138256869410332280977478401607975142950367059536720646319660344124436447530619029942130483919326188988938447695124694706065887523000334564554252757985676505403180126008554173577758435274560217724741627003413249676483958907276698957799331930347060623387379405259606663454752628282666695365579703983005536020921671396871274401435268186022718877404536424148828448941274193331966412657349308830612453545498449518321717469782796760646077175803689373677045898496809642198301359760611705192604476877113192842653664072526727179744561270390162345992326067958381914875727621335725422584989776543370433371424091775393224997239028097594400072833255838310050153137150396416384085692398642634466863723969208448038386992701099217017699414843278995389503906457561060848641571865447226782178990314497733313151348364581560876723444655232291569184435047620289200416839454665587565374026990005301016131975007628663419449238900804918995610223542523512116085699269233922437943083118890869079680318839927163087244282272741816546351333049992442541382703657555191648082871680616065943876096717568539705741389023813750259453807197982478386370635862572385184825959415169968480138914655942883265029682493767654591659640586920658362188684383995956424085158544795224911377639473612861196611174724486746891940111675533768182039918302859068071494164843305448059950451249850853783957182202230185866210006345090726534080090835057950334859508835868506459003787073076785088930190414317440535630986340754735015191970064602508852278625907732154612582765980900581570465323181961895314297475886570403573127909767746516726307193796333993218840807442441590012360899362268203767881064098688476581748646190391252079799725576073222735771211484271297988670170621908797276313883513149519677318928494164373828620735605503164993547660431704546405843469760456387172442999243026968396258459729367082164083694536323384284230571372362839508484023214750371056980127719569863833206782822889183135917602237905506112366987394691065028910031364285247977000345542934479660591437397409014127681744563704241468902301527608038558770176451883649533854693685706056579144017998780702171476225495600956359275630380011001287402365038921448533578927930755209221880062311302676469405527698441652252697897608494583152369499671939421380412172550655408052980319523678387331394969993806027657350022437902194391000066903288145758985272296622142599385556241882357302761244500859409733126709649491064157705273463895675366920445151891331046839868586434366989927207999563288948849408642105807046234754875861192586924155163663570867317559661825545514350283448484519930334658448958575369790894092183330466224150098439276767497275554727778492836200004017654673231639458704449316509552665103375910216779394693731716961423019965652443502619345502793607849394387263868565881731945796586396929079283683256152153856465002684392967299990125690412623916451312304396499306404040785558892049886195284374917037175025254658440892987446095181985176486552421203870578334364364486721235714093942190791142864661304416908735358509419588919293874733807987475836690053104808970822760756639544990063081895191471139539076479561476409859597324042791037093790064502078253330109833781628122056661223285788493701976224329719352632593386471892383600343357400932151204638330141755022853945036407612805941019835375020922438687290184183733687569721982920619377143993461150128405677194458723898280843632411962012644082244376319951789384987625337700756582377400174863260493404103720225044885368074803357909664205813181790818801046925591718466836008007572860654914005421594602971686611903296790064828652758084019284753185375215671273124828502615985764231468461072160753356939684094674365174548690797382178554516194054871567444581530051103622694175518662230688953207667977808120085455618438059093588402666842969881375295296423776590948873527463249901648248890678424535307176606744056766216861482673449994101777387340860653139377574748944054708065153404946827298254043579511606951032899843947098527185562408101492100190153841041587043110821749363685224540971759365009741943381345723349271195265620843435579135203206267780872593355104238652135615209653618329126737269778298948888564337480279195565633151309474572923634514505811303094603858979373446921764304410309908842024868205996342602838191941611768762706579241875697710010328138419348371509074474250933680189952323093914551529907210090506751957103480666575144803840128685413273122024481360970067943477542843107318424864996599811620002219592809203513111329429814430455747165743345534289674990006966552817072190100372631238527432739060548577772995322208675676659047733620948730615286058257984631619254385995302653413100277979415514267929454928338863790524975375687281723041446605051010141689130260506883681047616060407602246838848176750252123588566712587101101652820485756127586759677424280886388585499831463661679381667599115260609237581052445738712634770785475428254790061299583845853055086817675941079189264115855789430733624492958873309180970816782483411210215488081389935912970257295145460901789520337465684651630136677750639332024152240079544200745753459268733969406228465294273081163679412433503715414009391412986200765368464761845603643348176219381518864658717530504530028328114771435850203173639444047495441728003360803476362127005129605305703780723880719451137987728640628642811931285221799186557183224576626234852820119634893935956452753526641238321016852502004868798061092655616478977186536248461628263585347999830772141068104673210398759958162340898403733241898230808888474379759892426256278876239122432194621711126791706521280593925274866282968433095614458288092059903893580169069902774880299119247705097776175691858201425222858948459953035500139883215909349180406186179650355303250604653932055573579489010776703360349897645415057600424509434615505529065470338443177539114362725644224609583918142268210061027588751614594250126665681000599094475305040541685115934032820679468632494816650237448000832576961782990881452082144327858268729687966632455211738869022522612575243681247436341794485482981065940745389572249692571580299065995126069250055122127296016525870448804334152333638777975141240281396066578791025688026838356362815074312589419114631101048385521424132014720689589997481117097797329598115276408750225192323181742985812610814995278373486636237590963057252849550212379564276588838103902661192710578605381311435793612554494732978269343640190965744219965937113421462705033068060452136875416789675491654683256479086700924662129818085019623592745538257321250379463105479276330228173036208918162755040031704505452025595076016240553015740536901324658007763573182827626147415481646212663876712367840042033554119229121125771352414043313006740217429983082023428084478020577790067450640562266661641725094734734122031098857955109233134325087550718628464221805646511377897118384189221826726919065773506389044933569498045405780319140306875200086798606763716948347919017254373747956644409848817520644174874619415412723527351153295103445417146084959946498470237439004383325039390061571361987521482154346292649900073671371803497607067616737331051712894064384733877055008424441529183664151962259738656846968148142686288034637464091892137705023389230809424347579705979362658848889728979304343465231621546021225446603383676919402523241723752522950406356394209245895501471789885828521620259964935687964730171712438879982475879533280343641313452746328340656706261081802120390900231811542290633410116202439278849788261122032388877817693607727042813283406970490811032598053823038699254268222782214964534089622476645144553212331928400633912148617636103030371911615180446974096499203610088253206793112734435792778305098746794060245015629456891310216585243994310199942810410639600963245730963242430967079497650934682386657946997872215623646461716807167361065485734730436552230773308217699515576067801294869770000925998037504270962697771927526907776226604831573369122653331383961800616220884891389406631329175059214862156801570501304723322028563314989256065688128429172547282582184035107373607128694934408747751225435148425442531711254474256695998190185163995576388447841074309173475084124416849918956691181811240765077126967752548950859162508023966623428404517005147018209407759221850816694908356444993571081107688597661365577950421726242359205617282458821341766939246120515887164639145846589676846056079911831265655149076682296608846038175889749481003403349010530150030615231893410003668698610289216006215094064909183806370429237951689735074146981277650174060250737937851938475540684779091919929132105969931013514491961784191895760818028582873658482471355336504779607923790084280394793833071080975073795089807639126184379517973789680619022372767896708640487062269012373966385941905355454830675199581693967513622518087218073790043982777042042625688004633871630622430844645573569586865894406336594018068165996374974018024829046015178447028447407939976838735136007586877995065997629620312641536034711530229357929000933830052836971062888790623938222963754253131196288931146139213439988548382429265014273087634970868776078281002939093588537293438771310103094779085491303361827443882347460484373195865575071224679782974201286466955935644887427268081552618946560610300631075267612308641116012939276859976017307191671756033502860779017620641147095960801852260570462371924180916457966402947315989335876812966490687607202633656729091814570658663005294399573239352390840100931984764397701699662448459331060032725383430829497250692111389933302491969053810616099598367933964201598421152828259527260073206931297443193991053414595272600131770811726421879387252741676400842331146371849890942326153962090694837769190192567673599478525860129308606166391718343200917894032445517938074144250977275596547949531719202280979414200528231475395085405401002602917560146611947234085421898687806550835291727694351303916420659766067029878968612173401834268522055864283918367683114827386062951509277833938680119919881221944014864581566182359260837236743134093343590406375575591396017217932367849866467963564575332213373284151371650200083113232238412803549615223675240552062098911230820206481823775997563876092216842608424639132768068920465796084796395476587087615005500160370971507126555540059977312928919384530203854488358760855278117561167977781944772249654421078305006074481233975839907836609581510331886501675681746992725039126957409474639932095182702032141283875858228445711560279321612371618021453489315804963101447809890233896096204607083556585818560380471421746612392580313523429730587658521136696452837675839912119217670472091157492046821384246576804645543401619029556341230266422738981191546114069429907010498909806419044378945034630343231010835708494657603547848999002690797390578179662869176241430104085974343024228020118972452556612707164846340347786547159484940094652826392386316170865420877987635201938087555502912849899262188955529570863329205241303902907784451294654266355158442626797439238751172735289512748823200610530793441669569353370479726059127024670922846118569508162024358229479604298711076300688606052663915452392433739098710168585602380868157390725293671168922803748295777591725923838875851067119711769563236418292391309453006625248975493427579616478944555684753930656790978948439454261329662858754605503729964034180520670368161179496771202077762205392602398305857192714039718644966788842688943849533339390284658274376149336892605372765447744326869697855476323105852113485841645929533994857740174625473041450859721419449656043166887491850200020603914306668467810170434358906126824463678180059724355614346063620011784481890764083390186971813451788755689188701322250314541755522564163706014443228896964940868225627887002651739614514469668123121220100163253592994427483997291547903389256511496022343187295212030038592324628263644413959689080434981097928807634941840032252020100335115368013024513619580052014944951794624164186329885735805730579481936240466365060394877307716430529379517536686761140191389632043311262280058717078861643674520464137671524302498814544758470804236513490609122985015585355558904950790723686724618648066486295139358646088308694359306429164109479366226223721658937842743992549058795436974802495073795316605249358163833304308000512652969160069674640202542757095094484017212257662033604099009895844362925909679869921329880098708270029303372368345296376765166516647834517860233753734318758011417222247161742850606930351179966083044865544826936270975327421309714881445918480294638163020765063548225554761328134965761133514903322210766638049492134702885023675138197006383929736329891683479107355477465640164189752663561510073790113621326326994583207379962558474939370286959592976377731831834530703656585019462117620358217072142640762579604302502241221801835946551715484725092908824173457036252573045061366057376880362618839432918254116886198181218827122081430343839156858136480191620282886210415112016087563360775790712854557597132021341459312272618815025197310480321168878532336902805399200732304900535986632341907481762995005210031419524167740626908706925710602121116419759021079348234570144523203741024629003253026896908592427492787801791811704789028703405076825283447040048557447690893117703665372061782258562098382345802865263868051450288426463182856835064838959061397623237549730980221037161977169329903679852798661990472901390145220197313714369180012562201428642972984034437770183594244444763485842133727471012614632403573295525075525644270405855924661398724239685036700058359196484173452028422025268134477410808318698600377166357838160300952371589495717467674404967185532056094904509769145325600665718218106361624701338787920744652757963893126913042903215890061712834730871961246844050202589236009388922221928610327415100739626340917174087639955523824185806943390743041056316685207129469550733822260848513886282098402053514096995260441438231810277115264699506985308682378711542232338353001085161095819598030334511850952784825975018656759260425573340425207352373076630092856383991739224779080110866352421627507588095920295759564493901002311821029492651902471777391772781762159303382041431910177634390561956295310493251342592660447879643906348081303089308269792993781789571063391949862869660848599654026670913500968993480371527703784788648274930628491870608520101994333914380795612771525117305773533937959155701451702973614091586522723259764647860728192987988563256259217333691112371737638750443256196590663329270037539692545416145162809699372086391379761362614928917067617279469994147188616502124458391513009043998284753033029542057582732810994856256133117464221350084752087231440936471659531220275042595846315545542080493230307982457818251806294161984218057329252070483273742522391523058661102920951866674527816615863821257322525870404191264170766034954473837085609744642309260094988712445235115306653014333195988243348073551414127390122205008070952689003061248601408955569209384499243445277318320939054419659833231108734775347207419606462839274207075434504760568565446521949791182380317566755222245541463379176362902135496547284221799291541927191239314029917192239448704633107395051800571872788835667302007576394843962944704739907251525807612122608413129722862333741533199005690311188990798673423182795102080352945855944454486968678401563169028684232551614035201703746970597044059457936684777886246951734080382602004215608839776345197734292800671803814426353352572312490197227603130996807218599520208759620758659162556884250522825102037927004571718153184247692913388513539605736448276369132489880761475531893071928504302569654888219533435006825412246991094300089108007854807946458847582591782736768763895404576003049336388166614724564578783712214017383053651316942878158210432663111162433981724145657546855325549076441767034214128922022293506649602648187147409576747644361394844282403661398139707183999627725625315455894838834528182031862724884352928952750538998975906979424235197028934189228158961361502657624178743312521882649402954010737201203261494040472101079269606877983032239103429444274944060390573014788810468025647701607176103086079790620353286892489384485068594813906633225975713036419799896646815711922948450555188305693052743676712724277641850112573472486075189142021309619566494594010221093320974999095961998524002904479578767547783024763769576034569661136785103280534085926898368145038127988034281413306247692875872540430841361138698333012042765017916571616659717446790438377639154489653490856292827744463677351613622084758308507545550928096696162254825232786242567519813810502643066287406201624498538929201090290309371566337563934137288881709323549087610137162138857978534866746472037057558719870531135549659618270541304378494958528615281668747217085333101587884157508083425038963619411556298919595403435045867637962327557360569135952132001298266426371535269381185307663496215401689265745494013213126211537728819100237893537618450479713246027272267393156290497048249718756969140783006614283676335980137368763968975811556804601338936940703603718820312954670554123885546666566895136371262518471028407072742302250590548441980449677734551515942987677664970577622507961994887263483088603299168876728415260687550323448524632108786584544890807955982099619712430082557163200162247728783186468108723066640298034835317243217536878612078307851296703273021609077556337537577562002924126767753553969417148230664459033478193724535978250322440110080129454232724743850759906362813391401226483485610342077421303856596012511894135388979709555945740236134394033110949612444507046866644082713333744350724174702989643159896491352554240939666815909664054261554849294471197723843975892039178910933434898104749395209176982222625697016981281893510753550315566440080311208496201329413682167787180215328763804906607710918865863207216585479056266572857446370343252232265857371379721646375483248529250932884114593171648263773234528807907527235347944279167251852612075494242895267603692532393398168422027294932943622941770976260503020111309955491331073313572113170512336275733774811323852062938507101980241935438796478202252071013488208453084165972637347461789757332852330660810041522082144422730940416916291397478861864286114200090174743023326121402204492546496723893270006067278444167987186399682230652158742922450017189464962211132194748857465334999584903268268748139724975219783595722232307363520875760416702497053755905818010947952931397341135666207778649518419361129424925074146881826920077213360221591345016042181513210880364183003398664244470113587101894686754666693104969630368339625850572569905444186245817582108426142856705048272396705357449330535350025968332723583627538174679330724334246203269254896426147497924414591809856805769809656198923220157677261467349961523475498242349585937843668726766310558700241331514401930873445246899962026399587791552738473780910441886114489529821713799736639528159855298159481506908487262784595595765198104618334202087674314854662117466258913078204217325651157240094757479732028797659472928276933803403974373095825315941954630759352527180751439025391267490136351880210573581599061617408002399524205424373495522737286805619798106388918782442385529239818907938940946152572630735327451375529619118421123071246204909416525027826557028782759887670086850641967160994430709487570876045208888649598264114480126482764708612556484334082409109834477351187237647900256031306484529073032974806759916110209676251950381442116048208764102284552190069149628497307478456163846984335861521420381799074880588067261051937046855467260615866229741832000697277526841820617847650256974426813644601247565485154515796385748975415263362980641653272988344614722120520904475862678011439779527840360903145492156506707530510860184338515779810079148045634958995617958872992029109719220119058788735729944275172312639987452686355919354525812431678355582407414174471252780520734265788759511591096098144574640871401336759597147584602891214519370817404452173049233274016139626371323153239671656122121806507136029722028892246484486779868156737795731123679456699644392371258657221013953702729188761112257380145531877602782826530660292103060887944133593086666369672609194274687146895318266310343683438723916174656377828300998960267803092339674103189537233760139691548115074423729072588536739350481262306856847817851095730643463200246970107640307524336112861412043492248771801347727163123525213683012868795621374110894363035736874404084054837203210132421807755644388653664366604281772389138757337747859020915973496586341741353763276587658849114803548413584744481113520553499611262010931347803905398691803118251716751523110343394446862829278638040572987909279857653422879131279337432529883779202561317132330614049461067021768397126180061530587776589998360070493474253048358877146802877854468776958679741802252880681346305658760228570491266336613741509773352575487203057196445976496932322171609791916080662525329496864825185074807324907280877554943746243433643599208682048069798504681089272571622024210907564859004751596133438256356841750485036118156692239374422037881620380507481416472914148587732699899499659347807293278834650575276596964842002161091828498163640081741218101473993078890651534964841587614528780599068436853209561058923664796597132951832118377711781779478373439793646150451608419166367664269724115915056781110435092599837852539635036394399940564751024538023911418615638426033259875815406971179204649673115272212177149976001509326761244461524640351777624923778307933738464521482772289767971008324765583641430496763920971459830407611258196159012389352812499118464510526243484554353188862563997691531154400778186202406075548979614802692016452603150672725678269354524080719594029617072256598353846392058265835592088748197705947976032100098873563282469758458693532075731787483848931367342842372517842741086842563058713513477009514388819896604073637403247467407238692863538408179514853911169723594446270960049199723547962821950484974940178756887202432256454052907391240387781772594367133807447797067926071176690727591084583430172033658351990191219368535867552498796607383646858271100239400890704595343089103720734415637550165929297041438470232691267614454458466207198140253592216980758121235098247846547190873424901530927250068932408378116989692518593770029398026980281928942402147019522556156070991364500708996888075443438525690007452444346617890796169007922038324484253502290957484667062851455763705158370930999761043571791178504786432713500019517632240500322693060915501156511289122163264978039922064452754498668834111982928693701944962364139380306319865295044524389883748395634006626480523865661287575242411741299320135725522870965535755334511560195477484666102807161615836186202356518101670182751930040975106277188784037370379794145259823017024570511904413444385077976121152070014867044334502155886851059723535753480630013169469352478887016331146864568763316391246677665065632374719175899497351041208782497346637987992016193753626170907887050670490673715457737970291248271347573288036376516287846178239022335938724945328430237118613489646638440509785621910123627714519205124818293502291894755042643942881812636944346481305136430073884557931044645181954449416658470113321058244350992643866546735104082229379319300464341334599500137655245538179919565019539813872238425721362860337112329827204614786755265247731909520199695241689395127518643330786877932847337147913057813300527043174650931068777034097792515905773283005265987113030976706980871389045898604295888796317770910356483525219765467777564887884300607612081910507171597796509103073905123591394164608161883425900150968368869351361765679828512155926634815592881505632397529421360285384649398840804217968661633388746089507053803912845812161449437771198645158930995257438406852072696651479305276528005030995871228964953875215326644320883584544217940698972700192609914947788175094884651729412410152946490354820456311555693533239144347276691611376273466874092131991123295848423223042158596327329034888576810085155315836028036724946723624144919477373667674959546907264720777887916831297375242499691228140823222568973544309779696045176163529173601801159477506849617323247466430918446688140766799133444685650215915374175396639384345922526954195955967575323498851126581486427668154002088294574866505830479709792305546529519641101136654066453115354108293495328222324054814214871989972227467971388603004282199719778053305668557945482755356981036724964021557199076899603679711775490515541378126411108539997932685197826534724446845708525356209151128465080629236959804185947774162497969685639925399139103737788009125354451188986695480154074872940392781905404795702919579690622541539397282915609715790165450972526869921221499632130938068680958746273093573962772336287046625560160647437109058909347922817054681045392251300757928714779868032178278067969767659091542456947282539647326576697503460140603986207709612529078220816896763049689636731812820801641631996095580755603388628600619058796912337046398330821046292725997058074394146411170248780204152134999273552902699500006093582549880960395285502623575486833408854495484891509771010868453639899613376696235429744449376278443182439673377999283536591893887492977610025893654260206074018610695522637237006729404558672365940280483718071958598944556947810957174606839123123010726342802221812073060197007041350487035546983911521846120069527697253940934336841798529465378753382178347849216351986324642069120924284975522569819800218939060433512083940786922324968532147512571232741796543129066146763104190784579752533515456239678296560242539874397964401114675250570215718513101316810680276314394438298643302232222403848407985684875596937087592322453202172337104948645720477362800792259816403923616264965817117234648037801624003357345429272878219561003237506434314000501787321157230711357862434547883093362484969197596341181086452462529855071669921060215865772486319367399900431176867844187861406790777765142246733176204528588210035700143976616275217310710132655220896251584243183379145987462814868106172921235816114683732794584586739236349711005923651115913443972669804763753677886616436728700355940662886151657869201197278209704343710119141415922450830908837222650287187568819444663077593936366729803414782880399558837669260877234454808478818598084987110632376697645696079169434161762070160659989792702130228130105122069026172931288877924985292148679015123108681053026800831521341564156422905432599221751859572614329741652365693754541976366724556867859276490476410867696178918453950381314634291301805450425990906128276021643300712381700648208744429296505582735272143646917583621039950396549941602412705470515886364935242825905057625596788689365147450253588628407413734533489625288165465323090805774422546558497904951679557430911797865850478319476143284497133486472751106482636651555773056651047292235042596738684246252923756411371025774471083218331603599612382462956352311794103501899502792331189890473794965342744535334732162127948106460980909074453035624478655555129170409165179845481603432047872879151040551317070283720043564686010083465831269549872380459594287856729161699219026624699968871206782150410497497745318727749741043339057941818683962142514974335053028434290206800538601926754254135063111078313383369855963846835134538080212583158093380305020246056891405339801584197366751598971156336578547324624448126174001020261804787019406361930299950044166976924144105808149738831299365502757839561098470614334330042962994949412176176550390088983284888920596919848223714039093236909226881990123868415918285957203310310375105031606701698736737862254421112889419882018771201069526270074265380052785367292977042603705718396514845930967527972714052406251292730555627517026672914014719069099861461176537177548602053104869304323518470616615326420785302626380693519278948046661155834002287841033650945312816552696892582299451531493848266208505570014070496882936497787648248232498915713388450753587903757963046845371625241677014695928985352422472251061045965324338670996826105181686669930811690262272829474007812406218335680358720957437412235229620585641788279213684281134470666846454250358115631509728428036270286296056836071085312918318909456409572787441169583983982601033658655071296455900010316572800981193932655287101476544429153990533379925141228109388693365503427573834585370482311775743162375908545824637590915657880472831047206990880146114181038481027859442676277737759422974035414886050626111289636114351761575909831123467719840021713854380076903656484292182506844204974540410180826003625134663790537813639221099633586871612554016253656984334198265243668080461407744095336995501485552888617753641985640448078759963251233777105570622453485631602756420532483794499850970385477421758878505425594127868538094300079843215238990507053115756897262077468538180441813789621698246069638296846883184523514721905165534043103645262046067528613215025172710225327391787665473057979725707670974571547615071680309950619795434504371576221525397619830142577454300389164701627643228739537215876558620466057526282119941821688885785128266728986939695361127899592286530048670583379823210636542884341386592976722323107949011287237660916355760459998806320203132567366267809493460754430158866422500636664690492755486903591209884171836642997433692307603776890283641465288304836449980670812391885405819640560896233419477447793631708572836473036742713900913058792070016573342735727242087423207903869537811757946909281892097861433264544639398864981695530229031820262382109539286167429374792910491597009501190381554795828105008050770885609717496825176465882826399359275312191904671452316386550273465993336704157343433652571731262845401354334253139204677443605134302190945580820577082096203692806194955113522654075395473511887720436017162802736612977455491217128387340933730902053290079933398133448784657928778856187274917636797077735313614421840945924746350440304479051656782760719417507954864047993771921075078456431798371840287422460923350671686962795830379199772498576013648311818133038431838754151650900073763609944639820729278991470406676689471053054362515857547411319262537584026006577034915615021445948171718693606672060876175442315263422544618021236978517829216008207571028263924860083157903612204993100091259320325836984110519982562230503726008675178296338453452855337083773808574789055848213066661407068923411959946078343496915004743323273531498985951049714741205247994159229997730489819657723400661073763983836489382622248095965955905143105131557577528743476116989917986984967651893462117705402055784700005042580014360882623770694279289933854027061299310733822995797529585108506776926604916826775910107110853943090194281201032834602346469605903610065300186991724604029708465354516043151035680199027934795021408433235859346307207905283723143912201093302675660522077576699167039170554286883058704830733361414204771270019006462039278309045310938910261216365984418291383115714558338054899350314842314398989911800522891635332206727244317588445080937371573732764258839577612204107958114358533455108329495728342494703810322941031693872230003288717350218254639035487283872459503157505192410880750618816431006796523852465999876166266287906563948847894594065316360413998414526447369302080233639115704156908885597023483321435486978324638031793015350970746139035040263033402394189413185737155282223113000022801148177898674121569698526880890703269675386126498712361436847810137443879823180037194647868384560500265885886181032568878154223032177981862804734769556176623178206552179592843334637093753364343117376773516767286907909036086738222489267564433205481394718538189672916061700068719344040003391106405213860756723299455006247545339269970188351666217840989064921379163840402229437231209902304625933079429921084034960691694158094269169344146134198962353963430742756552741133430675127411685636589009401524899862862816413233656582286489847481719158821715587554329900018464305567009300684765608980252238456696476180074633937877071531989918933562950666366083039211295548360695737297167437924810795614450014722824914005488538306690548590008807339595608466922989577038059550986052463046521495542553147152045881285803976497980791824443049151453384025135133700305344484426768348358537527670335282772562756434819103140748451557503824382086588043887786785743712109181580415754482570173227414706558244297413278700840359614195721813029226823042954324266479363653153299370476836038290371398445525691660493988287471105723668522781886769356735251133144717015092560250902929134546042479885575239659133892828344715052889111528950597076756023612479028881298181720106682167591994174748340917183153685531745854500011342467050130333767569137135565592605715389707925759319512569941859412995615146664839187645937477538481958265624587986732011175947965277981602866120826084661788523287896572116855173810630663666945854840340234913728567633827851749445530080435735856598543278875424056036113329394325716501079443366175503823116494514043627092213180135845094418672058954191097639797042672119893585317614931926872304642026557375598847290278038210829969661173777370138542871480073651293864301987135476680080957885036245860777257335158373098351490767262783833055444929137181279955369904542296428789509241145681004295275866098736764736192540839913926987839147582185556761141177619061118791722991556835358084829123143764546720680556320943312536407067390755718256553299113227388348374558029576011221926520230736795447110996634682629859550709963301012735358126417109297567644089519441987252389865466934231175278809933466439687579129488265576068293602047585253561900860170123282884924646145408611891651704646818194233828987835019798613836150071667925040451032723106393243545413577390217312032284779429732204767452543604825370411869558285338609749465377613950749621292343007409684192517106788426653563792870066969487842303704727008520543276116217053802937974909948992447017261922551222768297201861214696105621996414919971974874760240304881317720846064681189120520877219253782811836319111114013851243703694252102015809568152757148691621568647942093373865655865695626720090815452435924476523312008849123272885211502055579272707094345495991932293023564086505102406307491678508187434663349754728611977448753829895227960542504911331683027792666576439994509357545423125448316253226869682845778231509273069056381337170714474172245208141393201563124528710051866432823664556659668164677985949533815402201622748765452330238208354541774389928960652036981394997724430036883271488181423365946187269444510225363380378590658189441906647138949481259012846844384976776288962281403886923285482680868204083173458165061992115801292062108596145071221715121348163356981115594053262803769427467653444488028999051939240768196098701427158616440222771421045368612031703222212803671806053371809650790680384636052907250513497753703281174120765310083147354422044420637348578307189659502082870976909678781498922991448297121409982144309228339222059065294348776256200256176255202375651380525201531939815282163639590470777528602931979731576639205944136355464874355437359233620198967988422791275510208237777686233162318450481122088043164714046141911702599502200240541259839846526956958190185415139932635011612936227073815577017208107817447744903214916459851050020003756576671960132307190960215606365116443316516753012897865451699897113063813142545162939393424134933289332448289596300743082137000284275831822158934086615065719248714011739491149106844500472634353863487628323974367856325227225372465129001578219739219896396397445029436273804908543979948944218171314454702052049152717391405204910617391897413408933961288321215813960345833739646328927870886965980159257460891382879686795239170081828806563997735494181054077101266220135013400845952389710604139587630662654723372460523040722127130430556193533695789733664257893657072735072985327250711793594725979546492407867737405021205645272768701755003430780199804115616110148792946331227340805276455699630313752172191202502444540345917997755511650038454856709183009303852065431784494729237587970195740571307709197186437663496305319123550511822553828290739742472899709047252438197887297970185366851662959990776720982888237676360079643066186135431240597901678251949438443840564149877046389585149956169730017474561367842706727405273383492971931808030219299575330402864087419345829517830695735773373094140550472569315082376879273094102161652457352363001590341077415627769057154228825901261686610250107539403987464706019854223448019655183339470459629694129636402989760757923974395940256427778149982595263682490905972550178128980427971693845034058322164569650649617573526982908532614764029493616711099692877373317486636352830589760185604210730167761589503909421615900594260354648921903216833518085727057894399416312101541631550099165933877374081333215250757370147469449541519946235315011948616788743539890045938167981550031267515943175823976519797940330166338374245211285580855931229808750363266094673335388505283831738342677583637974465545674489804532850427557576683085011809910627357426008724754328068607421997532090891469741303100459161978307864059292214077323977067328920052222025627712924563246384169082112985829387579992357924724223228173849427200937953516483991917319700783241337768338413599641207020260675770468973540501530645849628579366975863760912322733979766759052389593554137472206709562130198461871190746777705449009355352660674255522122346764568492874355951729811706937553315134464012220409759585934080815617103345104326568406896114309742857923001566418431972582056099805866737482110490582263065469836858707622603682093024523236680750622530205571734688338365559069333704776880713829786056154116337856609345325052504287568557497181096000373315506693358365233501699687316279930510370589018527910721214572437538248514614814212118444959640048316563411868921768793853572945547202026568062596360694280901760253260414066274141558980723062099901927405418037787658798563621752817691465734587179830191538357672167270197662779171262668928328400489880835405965344805344553085494421464621347113383699996488394608655115084339923340286484189806413146796047938007494641415620141279926149973956552418910523772305541088409049315963178351259074810040297778343792773818171914375319944582429856268415887936452894814509694381025760956770630880322607750862956559552313616324462087049846913796387193231850513659273831140349859895863415833450890470168214761925097095696692942284084253399669782424122425527092593135535748154849316115785812765427658540610685055056591562936361297974183103333689813455093055182493084946435766951178235429459678272232818629470185511105480714689304331497741980236844748671233064377268315449491476704140097986383422293891985006044914007162418459203740039763124241413029879077232716449855190320123957371690196954983338543571130901519077212839111924686314041390252341602096300315176530184432450422017792825592439645658475894374499795886125757206874921006038720634258974080162886199372648027245098159434102861666215310369324041421829629586938728661456823679942390607998283851677995138094719101277689320910569421434875680726195569866924564288148694578438044056275192342356903527155496097236770717920200138835170269906487372290399641138493226363432973834214867720180086545866298568763008414391897783417319894014933723257040861507966977036269141333765791945632690942136495577477777280124137042790275368992832046130177116506317721342173132785449661902579568969599775568990543489530718812684232293801712896069364638922899427346661598227925762073869822934789121769935642222208650867388744542802293714230391046406535367767361587336166975182364585768537770098728136593862707647687033954959562825723849557642799706377572437332091503967002541702451890069876156812897815522724666665636847735800742644341186680464660121082808132461777841455659053574296799082460598145201404220709370294719001532735663839897994284494957355529120507698559825330005341345740199148940532193062498664648788055568711235788715019543337608186014273975362193899456556728104990576275365612041844558221138249230456952178198319968909378231018654553508942137125161071163527336345733467287238953906776769160251556339923464355668703312888323319256569704237392825746581956803740556955836515551880133127969634499731261950514454036875962418004425396300100316993146241111005753814797290050557155439375601651873354962917383503840649526044947222393378471321871465987782762578074816615195935292057411428326243292462280502036420105740810570687954111121929793397041391324594510622718712122233433834496065628739198523179692231901846995802848601536296514859446936322802329373983222161922060803019714833549328738313149301753044319392177154808782126314837108818156820251311238033035533414899118072038714007402048500174335023152905861362830341461204249944143766484164220882897525769044340271598434401273316169302716667471561625206352439220473556990729571716558980867605137172539135191578582363985104557572654454203596860018250789152942695035433230575552591213747298929264347970868524903524135337334079632915510839040914558673918878727262361422141657764423251931407460249598860406063941742428353365601449283025423613733192063638058464802799358235136322428361166238949202984953885751806436822716286853844613398061455507949002607987929945912069043218464722581854363612672082776758144505781281196439586015107747535662249250981903961007926610720092843588304688992722207948081431943850741826759928676273961412227803724980428536372964183456429904703133170519703422290902659919122674437354951331913264338786889365019790810670870256110187578352652429769662963535287163058039619097354332216022446134045690227783473081407934104481434695777000957104017497141889258400711487594265594632625947210766504528869585714656804178580432234359374286625724580581527643048677774401277398224019161915298116051426495445421585272769297179152080209286026114492015121203030268346723529811008717413993330221329554158088716274304812060652047131485993920413470422691297551713471277434004605015387823457461378923549661140984258905486727510410962426900128381729532321597688567016566391717996195104616013539313146004637185027872932214679344972849048670078464600390945832289801775862723278383865684223730730629445348326510407564931414541904731143190607099162560766661465399587240624714572451761135583616503094602539379643837731078156651904686734193749260602690172611707654816923197361624848238080243397391016908038448240056068891526483472614081596082750879283762980757171988682322765469883656167161684761613602125988586687406870743030933711570339498258271064983542193888090401358506709230429046317483833419030073063507010527706442595972593874812731655581212465558514093327949792215370806152260503810101501541239945666468764566118233955883408581626070657161847118012327481471645493450587994974041641357409840896788333516557089782968712924680463026670428854615262474364068187508469807098214171587039128974037280695204444292958444587844911576210986395791509481382257448064230732901123772614604718614784142674713120719468301537955922321752651920164782648928755582637844567056614021412071858254808514321478590441694338330946558729429805815845551989322513025385330260328011596975955757158783036884409240264701927166677018650120153971805690192662933959019919955309286368268641161546641001240063330057997228932688836521394074135628999147256594193938753505046502265611837312855127939038489981023262243644685597804508664282906866325909994703058202654517042548924849807758410468906141934633554572310250368597118732173608122697218163709334344234738092784071721219353503972798316178061587275403555631339863435721598314734100383967419099835393054569140387343628700780976177969858908855479536640075933078159406426717229813471758891808839596110999416443765042387360248049575141767175401086924765769086088114625642169638591026805378475074655342590093448048964515809223872598687637840690728389445029102287206431983152515933310737636475070111805827656379688443670840968653332000521122180797726385924364049284905424685379439447515639396134632534986897412039132516686185822770856681570555120882607686329754970219344775211981850179769584806027607330020762285716927817654602813756482141263293619410337637152166394689308262906588684798246770741843476268785879195088695041878575535907308621714103539661702135210922427072888386947923403766445522550990659268210348496933286668988128853507352589336129594985530184425933094623703372024301472444748679085867416256046432706092608559711797327675393445223201431581559149031241250021710679759823755533580890212819258782434554362672263719658201148483197613138329659070401671946798212635181848521891363515493323369497135089024548634849073654505719887469873168672991722858201120126246424099078924564581571422127620148320258739327240344854515204231661297608843025472869816800368964724178139739557668838831800211706706167920959324025595226521819091907766087488824346506302000872661549427900193459527573322811774034533143905246557864500577842821559845009506671341544482774385141430281662089640345852708961314353353375226127812001124596731805204868356338254923933695192636608859150132917631769743500792792851940659599345524905999583541164926016303222184134602235892088795186955705733656209631378570959775549460339305296000092030936659173568029608246051297869605376256232736838255367531518835803084620257352456389389987423780689787447050624644211158749468903181061022551283373143917700062366263183746457705581188372055703704954032683291070310135629569838649290662929573434938593376112950665911769504691853602862478043024193399403997275778215057975383824744004031529950963665496864535626130767524044363640892079365569433018675229921501685022179309048440159300973894474695821673902007955006395582223917267444172454144755735290294913725203275110559529542205624480830971473776560143237014307658865251530683362479228412870003629202806663616545316189496058222904488397282662973643969799208471378500781691854868354953583651937892647700274146301872804827359351590612798312836980563887842273134563787079514525141149373263249296764682487525231796125932888006152585821122123350951951770773579577571076722800898314591207488462832373453441368358403458790513264756405203932970799102451667613475952470352054832277349910783071567611195566466089476341278348434997868554859024102570586655911207595687669875942249855295581192751971596781978513833378625499366723218783344364393468209142699529369605709344305577628819572139203053335023340035156375290060372153761441415577051303822887210783982935818623064065580373327833424496581873455803199101706125752955884716035781848779929541208207311118507362721618502469249026424520535702445680131898918749352776179415027568354601632661229748679692887634185791240516655734297840437377133953551359592324599894963680086695421879735045640580206397024684307278391523320148176895060193688379482612966166267880539939392101809266840105138370904505127722974709135412430159738289239570638256435751121534158559698667950089719299663319026458751199991094396505733932432475665753195964689582761277017826171720738031703358396872254918894252977104047927734948933820947628184541343250191177959991093270794454490643123924218949972982174881211122544904331827930984129212304680644378266854729476393169182132148290052239644548639309784564415827448201874827321449920217481597334448160990284015008033222879595616730819554503030164784740795711723497048599678827332262419925620390149024916031012988169836734098528119835021260945716060701985324774365165557707419124981067646696536687387799415922836589862554521599082732357700765995542300503183133130294954335435042283882591281509124284954201731513154044257896472167867318363886931994697307626014684565453891391498492821730743967432568909609644817277414473545159834248943958391872594666341568131141886673801147314203101931609451913424153659457085662001765383111768661083894942405408442127629791618673306632325157672325625889098041522088550026221701121880502378218148509608085697341832674031166867205859053876030415140663504789556737426365455587300643584626734007364427231016044872502507997244213540947318041814854231809221567003044868769039498724824375685696461123369937583252570164654072943066710038362749813208627470355924103563196743179867644827320943629322691119242956911421771454500680473800348099782086936137387403934508114074409477636892116398419289694460217434999661729753052972176891554121077091879329343328226104848445935125813512911075183339420247662717038412011637895585048318913779773426311289019213888794926449165257657821968523060906445575607941840993071334070133214517720648271895957821319520362325754087492989654191659484794942620740505770278079376351525109816218136823100715271235020254443874706890703885851772592039484111186774804168255221568327387959022925539031571693352804315471179757088716028424444959300934764603970748964338327920867767929975182816942483030505544471896740867541360366305445642071573312445977989169076493816285489594103966425136712719891281953732505796625104803825752222948600789734345788800318411607076908951560654980837255334503725576046445452380317516087751358896413237881409439930371038872294587792625627503433236326849264977527403065232453524484194210934960770645965614356176044009101814014391370238884715435434450303885297785984168317747047316055232713656870931885224706239887909489687186742830991531336605375422158444207757209851451055279452412523074075484773933126776180263935238005292596884588142101078763185028292384942008386685741648702162231746946139008259397862816893280160839273489666933310975174336960328828166274088790902723587069726246741383363844815614977732544404795325740683031325820878565186983646006474106725159338199834078645525411811954257804344688704719047025840878987314548816563282987436500663866584432277478775329836738722962576319446353000256058997205284104377743253055953217382220941265990394192640557238157197490084564410197889398914723708401980175978448474854616359664733952880497122557274487523819216236298539115204450780152393205211889264646986834723287451189585476688589885706717167490239868117524518319326825186527467937225072659188868914442959695546060167123826153603186768504594639420191945526493250495220582733189712150103601293851758687808912608506999347922431964564511042995793189171221837381911743997880610634360601754031514108337335454311337141497698121402402134213950043867346780095490927372427564468926587775984763985575503678103380082535375881437140850851160010839157199048289913541700861242505418614139226057140975333081004207407081715744229609376328299352213051535298662885875856282174178887387681787055230147906696009716229233610958760879107375494889714916340347191349051445541211368511481968935692939803644021882776366859620090264803134768566963248313982146117713956071890795382110473736440582675111852919381776396114624795164096237326531705485450908602479041720426825084982882749215021673268650950982436028401484122924715286735254369263460296591703164969997748977654424812431836734466741454482496363778104646940056962272214637596915898384983590230396671930724663367746758237328774851251494992554084257900518680452566439466154605316016929026937512357719407646318622394874786114263672501526493554206895081673913170168658216671174924864975838540309268526010869064501728847774884923385938313993914973410346387379685781750364569706272026877882371240789805933503897901603385516239321094366927650670029186988801164154964871707703935032074274011323187353253575646614717276240430774490137024061951745729098938181711330377071238312300687009495115999778551057247682270657874823198508479346891335319466766567293796031227806215900945877366033153627860672096063321487289763431836052440781415929545148977503213728526028391832711136429681040976527007149126473729463680639064264341170657547279414080831768688832565419927472389508289785935714049290719508662673676497496744178550826997242415474667875624723136708077042673399501778494152748975961067974929185346062108647638543508926797416630594876658351113330223187834629077496932773155566292857646460760065181653799318630290886156674374026412891718079847225802611765858499178995818116656607085533688478435845421844259789491713220583948126673496874202466644336914688316111141172272593763624831616902635617811437819296206917614163015022074806490879069696156152412384794833894018671397240409087383308241515581862562141661190991595039535157076299752228233936752652983790277196361574542180309042460919120681124277688553755258164227191236999897072700354560875136314780902339081624000912313336568770473323314419322954676541266077016536801545459443946611429438549733265627548755594557147239890170890005710355694311779565050725782536716364349381750535872142903113224801715145911154662055983465165555312072962807180602620427870205135630867719470537725712199528470659621175971021097798574284274151739564806343851370445480323738767417972334109138077232352177475130267865117492829165005907516388778123511969079637051252046678564602623076292144652574162657764788968193299789848579882367878954089381597339034458474462325881718157114791320481067306244755665528845930898078181948379896826908248200310977573946021219966053186082798350098592401020764820110568706912075015590831051173982187755227601947458445757781935946023886972515596462610313863074132871938130848314441890107032907520134457672646140393528906660359594681324220280549293908818647636902055401473853679938592467171260930836605346826235581298787464584176144286555328717053953290063584472840064707476152804728957764429340789420744929899587139402558937278371553299381152838355480198129372357125888170416566383236041809784921925007910434864263417240329215143363674000181051156628518411982266673426056047849113594456555763934587260107302302259016343059224750922323439151553755855012773077634915303145128022169843927135778890987551840917359443591395469860788206194075135065768185789393924526362985099304126426848168825944197457011930062590422591708604177815203963364480705721588842711649188564052137207308667320909984944890844697757537911531783553582623308258884192719795366447062198898779398447736100012581742036526088631693932745862747247865929155254249019337783315523836188684017582458602497365975409482778275196810688035092516296936018062474141294780894554639671698450005807603376664916206180236479995500083494743869717472893729481376898876504577686115807335486465376872195816550335911814661914625056079330041258502111089722300246096590562175949383896819404661502105185500394421140552103216826534711897681604676598200121199696299481548038023205091362193725697633400601605136946174052967960247481254554499346849393365138158854102850500133554228962683426369952728438435157723454901788659841305669826460098301807425702129379704886652873717737636136240796066784722953093724612507884495473853998915514924874098182092206466173266412750428709966528823014051638484466146902333672812717478789005777125347376362322972336436440166429746071944491514977562332680812783394997552138552119275536495559597769322104133706624049667161480452444771151573565407108856993060552367865737446670020956861784378706970388707663856555630157731307232721575640566564698281671827525186392059852794670306592349910216493950425897194718404144878773938972895042723606472563587349340034307795697756365297147002580868292037496824823379561335334503748997077128920110415105675293451227195586431757004630672428685862898311223262547221850706216909694640588787679723425056137680093531158027005762466599601961701624405056206525533285352251925683623883278498621629771525968128656119634475919467731509493395778934925729620862856487577022634445958886367476774506684725180381486931426579503550883111946217365490930054486094495194815721647189111788956471454498711579448588247969582729511464835824602700050285193035234336967717177815512365986724557214616587041885296482697760987269275517218294836158774011233171164621146508958210408587115903460822643268187392543969004056592287823173252394108731030439433771138796273743869954681271158053910014367067561601588216919627413140159753080718545423049687791189173604441960881841399606688418272452620630221520066744657024644335778594950177154663953529761644137425446570223031548417535814305865432693230180795308948558712714246446836721562324391143488896775375667768420717876120748346572501172833725431989731938366140734128925241580555706730673951005351490087324640739116631099235945401410701665011634557404422393371377743474610715565170010240158410261444299435471238928442683706419195936763825371173942837912685148194949682461441819044264426875220911843834360510497754362730624119563151617308923752707506018711089382994294151077171259361750649467490075129032741708706549779534475031688606336867270362603964595360586094790617257014814644638652579449793601185667217770383343329571860988200508304726194007486699703360140311886831531203013544031077153799399041204799410791434927720925134145351463740085084212694731792251043285253903417453399460988048733811803628601315537054779440675064664088849892961263586553795972621902636911260378575881205812897100104946832687017840530095121961611527270715632338240898092432736380603720273440080481981737743867897864042644119376355331143962464751842580780788401046371387487328655195983075809660358687365609211663261617817381281082090956898654865508635166708446925358042805570632301601379994898936575397525575644599291860804272804132160146645861313893116789231929270962628031010632690292322547658189378019343260435154301805501168322701068525816130543085418462750480015759469942182403501204550310764624405973430731049556534365614183070823731544796193885410286494611774891652822807300763497759834409271074932834828486897882863063219385711561463056354594396742654731239200341089383499224516538447954281939440170981721148487305994883301678903747741193889145834779340743045854163561921501026539319938651837201433718480026378354592374431565663072900829516325861541942718174608992819735946288551347745659666295727052345132773479949544549370511517469946008564642643653483209795018896539830683305969411699413983592038457122027850300103158433987057974102635034755927036394209836993610497969961127172056432831670733434303548908708335093683515080248383736958795349652187327123035716021996715664468149679078139154796730083757343503525011756224077474388027265529627019375772461102125735794435804232063046025379366806322295964562451823860119696748185751363994456358090383938375762007527734450093055598057368734918859975660879564066452982430823256836375763353350863997944606480792620640792564408127513138213134672052506307844010479108409550508323276650676879685282776012297880034663154858652067398728847512614564737810685110433654464421388467164395150984278434170695150118292340924810244795855105911253555308492725911787205200475885518290273500104849125707659530931612269274658509498698673808666864338735231806607323414319003828175626643652463169419525595897113330225617564169664220817077098047604183794745902718248551538820498113537457611858381731788638446951210214159180873273362853596570628359869411747047158837466092581933262968430358188164654051214286855853789074431972728217831835942635937919189688900505215818995446535581210231018727913846802722543371837390406288674933162984845655376624004286678769569059606705207404062518536021901729980277061549959276385284207156355630660303085543676172186760415536139081296417114095424003067077860537115906553880070787018099499103556758410254595263529761848861046780523039690356594917588096021229645273313516896903809379895964193285414890667025515982522134646040298592527707151225757979162089746316286793002975120703284048665000197998410747497139773309615669261598283175598025562068863924039803338813255101382988240789407844565235817829190879909238813574476385682355289100417460049533937722653575779727756070487105950050799919103601801983380490550876574259158497261253866260084158542837433930366714791243382600199234318996215526684215072505192135906666136883748694647889957305716863415191625384388134687216595680218091440570714301748378616319522735802408082245682420669170944392306053849431247129945318503224286753499060698535824765949626650917738155255344042836014246382345541915988118289585148322403578845663398037118778675163996848375878634169802394040961640891162094512820043310690864094657211816068143905325511622969354238984315234722239889902380130667600626091785903103822765739214182383158133476423305823915354113210180864941882135198721230008845992244398214284196390828647097187620030347650798252430827845651290023791089406062606709315151538433955982569964051768658820504025005643515273183111952765798531797312058111702086151802385070878174259301093789071425487749204098942565404884766057361469701394734703197392193692223339239297393759067221564641055956285021990097719105314552442371789332811208356842503492087047872710982903008548482684185876559379514243773308811698325837366113341885656614456624492466472108242397842496704877662318064443729376114090796526825915244502032068447805856923740617801728404296902538417023276688782401679156048712835012303914418927361079820663120598647646408535936983280395706876604796248647351667605597611696646608294305378145965775701573885817438094696559862391716735024942717308454156499309119943331799156630834101688578236628262753538441226412472211427362487037889077868801264039721191542376744893188921443002896409347415098724557277065511857070236567556954951944914529108773941804608662323366022994251847190840232521636442924754392145915671215381903462419813472891495550316922439731100366922770473886461011957836265610389686239769937757494935612680992579757824277276217041028513010896365874663450145205701684904388685171611161401723337003365044244818354275526601379999021245358747029398720777067808477979159211052038459196214222854244949539119105944963426740752546994956106390019208937631395826353504183425038027783589943509891581747269624348805687669612504791466991940656604295722402940326854023413190072240910353708699017974444464211355422561262466651745957624156449364178277933569271091844833088850775583705437159916601445392578416361090669312909477932146786633302590325586127125512590035529140451236976187950082121481366594881407455003156220809429456308279813495637812857018343289719839163199430128494782279424427927829307207282582512983814528860744364493337059286702675142517454170515616471193673110917829715814416006299117795351585711299311604681607077467308214957786300488950703302950585038763355206127643689862210279218212004556178564598820653326766080678348197536148753298158888072606953157145112679974830669891473808583349956828502612874037016058130733699763652791680076157525667771764774434041393959644497985347247648268024972135183353608380876435655250961208692501381265695718291307901527066664487594358948406755004612698837769053419265857629143541309959879749383938569110409956102785134030485193100828051195631050589953879775485675733655593262148021166128719002330755209261197462435144374856686033434186820839983854033341669018048683997578320213523917509513149747228529475340947674661268869155737278988609172477522790931150420747824079144098406959423154977265813116522920115224921190968408352988428902478947530687571649790281765613564383629758486402797709282354695819411419070778295216065146345190589115515215554642976172872793001563661314238378432328186124606582338877589654988146980060266184938986879217502373163117105712610406064994901698719923890697820267920127559402309252173784171183149149803076752193095002487530969451700494323231208860405528138499168289051412601294199234341275443059201365679152291863472155010178933381111377688084940855789960062443293187605024929127385489506918360011847260272194721274127238451413874487255787798848423093525405040493133046561313755823036216563264688150571840284945087352775839846045700426689313829119266984852727704226749578240245234559431203677464187090137370558391033665635114798295992261533858544038138766812503661569091143587226998125800630542508516190561042510318177687298816632284263898948920077869651447757079825463119756790616928033735424713117912830465327365139749627729440192688984385845197665422014469028481183260679066135583628150904162292511677877917721857428551653100147652541220388448279210630982396678944682224673026948229315770509139146448691777245178155406293178985246230468479636055032739239315307177899451810085472549278074846512921426755608508719502030127890836913359051606749037722154000061166437042544733682365679499762661288453800037731567659820401165712945877528890474883019655735125755299743690989628592956236569213223874454461190596772660957344801611492646578555300222591660900426494600776941988890695029763150595566055024641885305488641363993773414574479493556367189531323745234705512741189857588697531614913752878583995358434808041542392994275926270093312977041986115420802506426146951480122408101024140119292117756261297466880821480379759479790251178715488734430863152935699112087743905757154100377466634498860548615897489128184211183872180215473257692280041580401716328185799396289268053108470685105293729510486598183836033773320562768949947192511896683150958471964928010556374448283516483605799653555209519962870778945947835511901457210726489064259230460265835371861109588818180238472271876459892616588952446673182671601888162196808112696392715576310618326259391501125962770899424225977869116232319827916852625976283662796836259866513146481392405032245143674651749724203925218882420250574005782471833120227961783297915978681380956661014916061855274673069446292758061926380718405264682597817439105523311352690111239629982887951194549007452649437007190800325902790343992048197105808720009216680268693496327921127148730758559366136088638051498891316399793567314929611787571106688182636918812381579895608369612804496666793878785107097451421775202093640705372304054534081732336154105812345724935762938659481884114963688012621904635849381163775085609942522431144358706070190636537070984047062666978504810195431533521943411579869876351645335865611718376891453031428448804031484331651451872233290947090768767875840146489597934095761798872436255808128227992164363270037461050292430540189689836965979853823234242641540783577849830500548357621115817628274494817679813428123552116672978223429786634012841378848181349479943847557172395329034025010174436777109277213506842187918763699503907019426990770217032249353981063106751256406262750300644387961981349282953991053140160305939367257480506891543590380132949736690230485158569676873818843906946921884023318630082172954240942413948404255836238806928670972301995417323243471952281469535673812679795556610141325655785031199655166799730624093535389679640336112242778316056994530805188358354170236792189633754560054016455884151873874331935410996799064298639127330185117972118893463130358189829544772355251891012615409242656031005824417118287285482476866859683784248620747050797548801785430320321294252454990909343183247208177766179854721126511909355773267751779693070668887215609167176314823143788108577871192474677860011663440944846092174890451122519315494245361621083667389142709553121618490093002017368101417752389307870632435155911779399813505449261180793580835180130872877743376548257942923899541742567070975207858917766757672127995856362519892351515091878617590017776509522907162350504578521491814886651426358231542724911003520659106347374980606790953071725464603767563207773593704866737500297867334191726681295518085420058257652446551244038872389423962994716360175914701000873936735173283988623732664316205525518880136046947875868692230928703938266288878299602620769274648172694106134562892515461067262531381990916601410290736669122555654781205538433086717010695684980674329635660346330850076988098538276695517100093689074625284573966269408322500642465504438180610483843887246169811986968348052382327637001140582306337298635422171410882674708681174646374670174231091461517551051698546034858773671455428123348045612272447128675745786822770469548073328296961485380510271516773543275267339870000877671289903053686984961757388635958168396891443906533626623872273456408124960086309586513591238819712202840068090420340708115832050990425569662530375180733447218096189724727678338793339439198520578204774097417449900802455800716612609897388284894989536463878431100047839511892355447915025766652443875784591575961829815335633792026223302378223700699027841530908566874474572707738926304776335825633799321370694291610461813976542428260704193015938337387771877641213233096254333071908394241089088912272436046653495558057632984051428639431150664728869914359929328222093205713435471574776970846598551073997640107140855907333034950756701139455177720555335921362528692314277554032082174178940510501259692270501744818341038603808743166931834402533532920298945304274695619607366521674702353524899839429871423077904537375812979132669577104439287541025060802452593769968767912946011477362993787517796779464976753114719569241037039575900690391450400830114483147161318412861797333377012945422875977419986787067876086218162232085337987447445208196153767614220463158192054452753881973117941495426840632557256739674349873040869966388293821488993941920236962317386487261308115280610664285382525648660472085708593201113937878551299846805447669890687153871917601624236219775136328646447347184918852213930114487790423892240485164322259888546215257496390498024825282027288647616466134533493039451884838797437819720928604811788352062399285254352180507616840954334135125336279927630049339768486281087021617753740581423062427721166788364424039231870215920858729418718949542672580170083955911793563178146662643869986732370150829121240280581052773954380779033479372970241691716430653666537525504114002617367778630022441564511450855085794992904184026043660128471617278514474866599249762120873266010231031248143833977831494211705188673939911672204767588382682614697633061063063927779978188134281980752469802100105447883009106080787579440786004100387191781170261780356425764151253301345719750920906139234136032358483451612183054986546603276639515848774517905885706890463084564744095358832280067982102280547297220853498670735875697970681697001655593065854303546729810691092623370125364404849523016090955404975320594889478892268213649790674243112812039581368279414218095757169358251049442603280732117490786325267967880704778780741943613445700877004790034207526824920054292794475856015328291107317923011994389906698546752491188699842364737668274128880940688296953271410184621277304042291246208526202573166765869887549809912816062522634929366688053422558546586377630008693149898239794977779960908419384346747006583810405204509690431498308116284644105927119679854018605455270255732132325337986904109157137767875104688937821582268976612982857300607903097732451393974937902822436497418506078133437992129050902854242896894245383229714463965037410521028358225495629981478079270824109997354645183090738502247533905729059465049225336910867035681476374422960708127022597305548309421943784543042708284849389341620999788680123793293903148519100529338807016795060894349426535762079514272278233373071079086555184838493253555630549872569361409212800165494077752098776229478527180263805365731866965403101008960828038366898421233810189427409111602022529642609472800180116269930892790484161955897143374755478938747280148823717884012547174773797659183981584612127700651105399146293993273622246100887843268027598505275071782148769209934899067376343681276392276604905884847025752023698089398570681951092675481565133897420799047362194113969149215782249227782296878397690842288961612242355231114138177301603414593379782353611658185758345660420229307844238680960058395866936953171358783106424812074464462752315731890437219036849464657584962705939911563269615257915110619699002441373939132707599261991074019269308520178917353307874821317992742942584032441477688747876808690439785456431095714143652884090435840620205148223345588053400099854985080099920116138263662756729199714258417388984854541192417478929219030557754247653497121696372760651875508199456414263406471998038906385392208259123827437044653825039370104343361076016400521672086081448582980027250575521076177627781887968211681211592106520931327428997004539405203016125407239559903904015235255407117730067752248283358305345344786156552386638077397264763165038635871881836979776015055075580596866586456501919941060171878310413114648339037660013166958501467241708384395689436779649776010231273325722605331745414531252766200758816533574550671773688861073490243730649183597631292001268685975556238494092918693162122253725085003427901526109287581988304157837394618840558684900882649162173899478712914939893993241511122747110627216463942387880011713867097067668813488619270353289794592725959565192876523342764509279084191372840204906916580926504794739151813227912624972399935884178358553821149253491107105329285712564407931220197537935407997049879215147479892827811938892645804554625911757748568631761069134253601018791143175222372262004523281375810833195393811107469187144567441435093471862218656101252792607614010841451533406128302797516094215720714162444435421223851176948606847230606648335097938767109378337478944962569699339602821479241193735917376873938904263251282806140209525010445729170577842389589844191080156672941394361764381266184190209190512662429579762392500815436992136277079045720947207699729596787015712117469842731132229202149880234123821058549485002525106207949514340708746374289282154852568714310996677785236908817363655070583755715448214569604458512413677547882004876827534682705216797904832360545664193880274627687441071406102725425814815257532407649908423464020728815505141695340229798586107822647982927298389873837758030188486544621098336858548665293758476422556101776981990236159326360328190754712193746857188824820878603257354125440994675948929894199845331325512410309153236278600781286434684039641963211723860618159611820417663299331454806234862200265670609074765642980002058484788063210019222071158934616178751497634411650099323524256332865220951254352181709238873996434890080394293163972131340993075212294029593489275780098985317772992113020151531130820325414802966541484763668283480010392204983530183047819581984581467554737993538627066382713695620035383695810002693505420779870689676010259819514568478922671298928567823454484135547975264959948356369956406169295243583377681619880145161765972275671084090364473325965884998447926244998175126038259616747620052099257052721569481372925567612878804157355569690970798241524529256859964140126366072411661382705199126551549250432321961784683178132212894334840314902491471163446891432050302151665389537893752837086084205305217977003647878750351699625078031940733808493966961485467264335376396522832838180405225530085774204861968722798153143754507450951368047754172805220575844852612857356135962017027264554227945491955232344286360069330983840306344815773213509138266105420992720122276455266271873821926375117987811360574803257080901228081437159171000560300460339513623079465180823986405172273003001340124005172185417702711764904859780211232252649963287672237158202553480233565961858957194398182049532956593524776981079271088096937698022178962338293100994602298887743161875048249273653054217427097392681218917225057156848571802133623589173345610598805909495522168493932441397472660632495320516814983058162965559849277497923043631460749228546769869907652503879133690095138527446228569241202277093823690977731270084496356829545223113871308314263425366847868040087440039169268175752092308650874672512296707024394132425527307772908082850321942968207927030408708877959537181182840744534404180576229834835020213128054138214127288242959352375174417928896836691053193284513032724588697364687420791716175332701611974704643376294781859842746105751474585457708572594730803114517818709668107873933624365643109574474053704486931197878219023232493378318530076053505984618019336799845776990286476649150979072927179320707653993573594541999137348830861681498767119862098621597586037858912521242671216889719235076765538592972762313168205864701743457645667747955751168207770339801574647015180639665320285996445186042269399837177777278323023405534285812762953291750278894788620830167203368441174231481068861647702622334995819726908947964666033995290349153212984667584929103649639480654733835397541932157180399765775187207818734657050436770158121668226996006845849966042314171287146103203593153506405264555314390944214178387971051349215778551408379658768716534857650563298600726805743446629961290892683561584041570962742638210348552226721869328294451255395676468735924556483194125523284743430513565681364701854404298790098165337972740513214012182673764023320635568583663785763949157030741248303667863035543212190983161693753264773253216707442217811894835972976673980405706065362113935202545601601639614339838474275928243257325309229875950834986056382330311769464873619876158227381531820094482394674169506097015566219831865489655169871890289890450269144952023714857088855646444244512845346515875170732771725534240076926049698511394377761870800543746372647936986073443063468658367747448612125055904625698047671725800984035296413675905046918266280002720771081063610119402724271627653672494705478483180319266437208054606931891706337329565785248507057276673257831694060980506064649157318263228151463467832212228445265910676715701103511180889502539644860050291424773239338840622200815132699289711763480932870194468548703347908198627282821793284295796649519624735601099326893545408156753035688900689812010627333965546869260392667603633357770350834918286056873572118067614501310994864584403854102606226874611618438039820654866407601330764492412445592994750231927095011036233968137190305273113199588981948480020211112989763846029669946754457352958197934534573992214861054061127730398136949037702630716288959912344905161549524376935714866098783273074719676758455449726491083079826869973740653858541019992526727248950554006576774490865094435582482728412390855246984371751683278636912150115376492011704552302595917816886270047672115478603860600804405946112597110513846405673257045519207052706506979488286008272930968770366952860853863794432389324331440202385251183179716356587300257570677451468135339847108541013418039706891679644756145185865194804019958721706393195604777632328253782715429579236521201438195275379678553468679744890237922348982718025464567703549789719318210444527753762719504512613511466099584803483224507996004224025383166278164139191616372854688767161059829637453013645950868875228963206820475077792377221397327439474484946412309002864604007440175163303455880144158797444081165130867454273957874451256075878794999356824141584365262236939790958977485684163247562468408537688192514157748879747695215549493870322496001236013363860972472045224064344986589097554823059245128621171434977094355912906123467147966677669440406971485404646279600276721898366088081812610252938491184261136779543703440845823107186361208505367741391542983514145232419201347202844069188367493751601847704761485223015804789949288908071948817006135184202772525285775834139005947979472651889106002303912436729198660059918631709338239386535497806058860009693339216474625146034228426340172755819192511367103097854135661851439902449053492842198759081037202707593162936373791428958853615785219041961744166633099249728403401127679583005243270110432038988548650742802392303755802050401226015654439943653856612696096157726809526585206587277075303091430954580151037801590699756924701147868313463994929106660618147944130690206039449941945479200357802375481147085771883828219666751600858706650491202482439903528367836108882070792024833137589339506143047899024412286397963048978671108283802145532659758123418637138821344924446421819374326505634820649336885969038347804771477189021625167985242421300344534308004327716400017829190898672276815131422964404510082406178578428807486625798310761501609106448921503854931071211308762140009580538906035034761021783887208566217526337366152910882293314805825791795319108731988182305194339790592632892278391711061524923038249240254019014715682803115279272913975586737510636099994519403672078693767167578581300163022461324612441030354794159455526211233992609965507267943506568218171434839645026715912543940181446482485503713018381764815749857056584326474320821917674828549812634093144367380393126837213052142729878397085978293162821093964262775813756707811660752079382404066924238910145323605886548974277217585380044609084703335321804263205072084705980902789074882443188082261725538467069710959709651031954003593723794840862637088326826573444633154642500530206953336845801795066179341350770435149039920600528938485536854564650986338532408835238831168701153863864722682956604766339459026529662660777753982935911081514824263255713610504593995006249086923156978977655761114348657639755418048207286800817376415189044781953948940589260967826508859795191750633949028793885274173479404691993650358367278072229124258395896265437772509229974675775104387941317622621182543078101252895074823314041686561765408081041425916417029249891990271967855885332639422298664819051824010474969260787885614455676219873592927400235658379419923731830986191133622871520713161529691318388278361251941926891611088719599281434368895638614695418350338769699953254430552239963095276955868615987938553361918108013191917784433254711270869856780461964540767359677408810205129798419237429184084345690984518103949776863600741576006248012219031287028896539690585585498535079159460781745226980478486218234425538312810800236188273648012452781543040831045577256693929439464576533168863640627201940218959420775553725642978880873781719838693241607459221889355770990208740417990109325624051784225455153901307746606104170656594273115407165423065437494148826153777546727911180987572953777211672656593565199634908804480064107118297392136367468796535511269626515888819998494828803293929345901022845717252783583732541132419164815286254104038954212424024075197878428096017943896852004114088115635709400648975051844513383330995556851395516112133752065553464092864223938379885151549551646862583117728823818361199131819644955226691334593534896015424816708102210332111181298035662485950875956503733133401971758560541964790124083509603221381556330288653762467939334241662301316379924884509742697721371617898510123676692055557470662288027106860575479582860128524271436483613033561175608904043331335446463136007214939788291538485563895118973970447843434657412851377503867605448519193866612295836934300400345786444244666215393117713039188545893328530907801886278101702357529139177536435631869672035448493130453089296548212474017870295863163209425440602379056682464918886400677893605529259438213958357048002850332160788891643392782713266098010549353397349433362668993297495990528858187785175335260763144591974677511279842011427574292533531569499989574194859740107297166359119485290044943601254588024511140639349643619319705699853760237434572726773542056162334889253123378458494307276251663717252780419836899698984663788752665712290138539026523082150532002136560925977620756004777899607301902142013549680992931436711807918998016444192029702185787923546936426876351318311351277502115887974590980501485783678672850810818400317192831220413220668960120809738350354879573165813382580499327289637629322942867342643928110173547810533980083766316192959912459933743629531126797111723459562772867279746808998532722817863921956271626920631126868240634166257116390562006952124972614427342690623731482312394001572116390894386293563816989585977631363354875219388008559450691315652804296056335857533136551246160614701506614409287343053736129740475581665943056398325753573534000410459285776283663062742306004293055249102468113149491108617932970020592890736418687379882482566179194773514433924786461361636967851678340515961066156366228220679933212741478825763534231976154200591530026099486670877149617789263811934967476708541388242503941540856645061563447007405219741102938942800126654030234150418513774706291596983235439518153774417621320863502577930230600380208743522786280042695768832479426641874156090123468018559596460939595870868561428818910106501439383203828821022750773071745302592701487559539443964140055710624968059284029873913426241828120028708693906556190692577435249166952844908043947887774994206856079423030790299480764155127592962816193136097525454423982047829386362744177780142702936250174753241437738720226582176425273596560127664467469739273728530058421963473344857885104823809074311284550768332658088888299096838612611607741751197585054277245655957982380321496265944042917648601737946371260301033658263447099043719863200847379269319531283286339238858628938099558903553559141462862836811740434587697558456205812603174984060262368456787031601040338115277331639964616855114437824422421463455696480736167661222722105240675311356456865979590809449930112709026263638111640327903562522656989577901685688122839580402838622985862691861197460873725065940043311245497961212646891002942803295499777632353944379073464258279956785441439011875708857204060694115054089978569629719307238028285606217053927434122116787954206478129042988784746723212214544235369736028230295472103083704041446003243712326260746600145521198906178981519006765984205895487546942169472367542893312941641131261025962559970068423635639555679051519730872774933879835566026024335124177708885634341825463397641115403230102051350578315194604713404966185757725739742068044977818948900345729669016650885470850805262298698794796610607413744756788082085091500052623593072525913224150216001090642958976878094048274302053886206911103340556961807720839599244312267941066594163631165240506958648495793136182257612249290931674262727979677935518798681339127038061962280109941718003654055347460516519979118745194720149254282917553283905011088137001842012120670602246285594175122297323342032692993570760941221083620857050223549935194684673984448733861878363979573130801405817651740400097223874027668955737147398446256100041047013145409456617483269055618081658448311927419376084482393832346472078868457411819549377328574880206238557335560299338377898934201150191806762631229367242154567417507825654641157702044288254598501735768146049826971519342583545491121092268631478955610698802458053626560747889438172906899106106666966907865979181255343786210615163832687674309217402064610171494866582952387731556008190859939615911363923804667315130342715462543451745326071261711044847612995933152409936330683977329299876082831830264700978410523362410735234063625457471481591125697870125064968804767795139655915333332645724159965158208369144886214686556559744597017529055297375412825044759755347004052118805871094814176563975584432702174551295596106454022657083823689027740591760563981061891310480582136630966193865749000237964621853413910723385723031010965778732627202316679299470428222606011376898349557932973838870451242967422340269244100165314749831522046095623030581332219805837001318951639943751703165888831645762172795788239766515963899169198879206959229174062351526037007867403620501781819313690317625518866387366801958923279128017986534326923154005300102394082995759524201627901070455053495236734258991288798634312835143095650526298025324097902743371736417473750930947188696882248747165710993522754723979854026788233475653537402475925305312611608784656677253396828476012836800034731507499023562315496608472840955400661509953983195075500640325503296003498050402774050733449536912825742103715962090857037479218844979720503566802051067972464174921456409577365914607358258946229577862718957876913692773292142729937025967553992013503186501505601313610431548118806192205672845345495935471390204116740488876945213266256053312998963438545740664103297314409593776356548080576167160309126707927639911397391468361636482414698888275114837963167824387554919925876886793472333302745050161374128014841087831647626126214246193859612184932944160274565514391474325476522211546831408112314201742907719048302143755818062753538400682530808217885576828308211851809311684159081317519595679832481896783676322621068786108725881698925541268934716316425883298787518308426166230148750537085296768347357775799026078746252580431741038518828477165088460775809999508891191056606725754128436022565108286413956911574404351785028608760690989012614734118958159569115828754960802900261266832151928265522757142622194854095361876031734948834666953134265555747989373097713719973060133228067691011049643774426505868875247230789252386343384346224306585824020662526826388030814188647105558586524278036734698303330058553995722537556575082766189828172944661745064838892593893802800653285632940413512598665679111756770785953969748556591519278560952131690918966138686797690371642173489807779312441328919386102825164743073884975081489382863499196241989613283008890341497313217856762041747759415938995108412848729664328560415846488017293832698851558023568960885901523419108004352646568003929601398590519554135069752407640823455937840909093968782762163004604386153764360483798285467654357107653842634123628534575631769708534966564154443328690254603583073794420439234842149228065580433633630642509761353001776748065826204550396811353988683671133478432132311454389563915705296909995282793975473098559131347410878148372348171113135457242407209433253457521283301689557392780708623896228952035098611504613717980345471089869919063222794706650787430070025980614283990981129849017654507967791097116403107870847382609824027799355088517960084912700598809860120806635463583793069366445112132228382457872081242783806561186331988123600489954705842850174108618596998844246698769824638369034942462369030276025672470930278954438372520174359396717952313939078970219128354441641154876052959409952482502880638372418688691406385056857452005509088490421697783416251582256324514931201746375680867186152531011558509336451545864887761528726251651649095704000785398551814254639211147362526564506870402515194088753680811274163970494964327109827996060964096766668896017294684101725121006118378953637843868913800406474661060456779951969048309417037907345560249877445282703845488625115097544262840271873225062848235031122293228995110198183689196220444774465369526114286209477824653252541047367094159027648980212957773282203497786645544828084839063319409010245715022735710957536152311905232595493017215994014418809068796033491296755173957765721501975718482897090490456393769588530242707226884210484406901948094785112405591373002794619484913050346371798955488751419413590287162122542275135297979247568123365271760000446670492497323917296430608550761913829428165982381280496363934578561719605881685122089942562900800095445155423343910452188115774404725984105210853144175098967683982743743316727560546986583908822482161963526814130356640981391513710040413712806852993955816502663676727191132655603046351456829341305472630227761763735037727565539039215490670975578800552611913152945885223541971522848613986954828775415771829076666016580432119808783799326387296895876863779651504912100026100697982656342177519563763649604562126803282205719556508165722417321793535960862856436740872735863859794731826614940363367044482851861364419391930456727918989851903292176463444932463477347465816354055095210581384519471540899631003858165832971867641505262482446976259849228551073044856107199678969320571975893993327133738782692284283643854860761616750827584446872688560700163566344953166858067912796198114518157948596673163594032492448797844837576692404549129528471781973240367707216062166316139970020460706764742281563202222990648844572807517818152632333095101368414570591659177182996635281123704771983898435146202526465110908673670242616102183862352711362995538807500880456164814163402249440554104514603588812349160426284234770125842443759753366736843972759547288938356418756717391350071242545401889042621791555485077985180821355834846264940024039600494200828506370454007917307079799711371389642859004918809115019058527873832274333338705083005383037594461128868731251245859358161277628342722052004718274662032112518077877121481446605730371568835191654247715603449200896256655637567386697051973841607027856429764168651971445584993575290565684754995966017283292153349798125238390921303968265772756457979221287147154538431748775532715774369560370817191040703839783715144270878736118706991319728924422563178452547233115910119551161361843833670025683273451494899807828674608467955879518750838237291352997816106670188531521799853550064763952301945783381829416340761292788739966937784004586457179903105566910875820723894111055666894670745692533627132451904142173356218598048014514897294633414399184006877781733661967254931907708923630524178356668362649732341878255356176032743564527902248716033941596788473435600865374560371294649147662451441592499378864071357683730075988872085348284083935706384905438362815398447261982855067252709959293034072954342954643211946769921140662933295485127133316378457219622735094525978228236837896926581790013265667687019866326800911706143888372804143393848325277846247841620187527054375894013314091136862556096905667322769152571016973546445457336452557196032373663413312873690508892143152603181948830787690883866398172405594961021761185789712227496179292828773305515379855103502298002266560793235508738285396294999840321786974246220863118807930396338249736550110438538699243895214424262103643386858591447078472120500488129294164611823622973845798596365207433648236097451126922507835189778956104098774681481953349874415003705990363823008770937989440967058572068618407068509133117781143390441795330126563035251536030983798773518733253110987395575667456699650178515437017148095795040819069748241680891747212541820032318918882669877319939540298123582486760153374925068789694346754967145876620429515852956036002595262684200336071875689067505031858714624721045011365087741323537335789793653014142209372675969029607290270317775460658664865784714310667388690309650071231481094519660593585610828888685851996102837114960618841009512423118399189728832816787515901436678885288491178736932740640549321446607506015830909658381259181483957707635165464587015646241227200461678569236369351191219111043830543617636552414642729198096370437554890910090684834601183938050052369068798676028957258649695701075087930471008828697191209550983385163282418717266924874997564805805032406428303956330716871249668282573532075552110855979631575188270574510255882987311641113139379735079739858493443470895455827082852147732518095668518933284034329565614612649329986552749552968832466876547053644613623131569196811597660232533928567739739786490885791660606587371412216993457966716254374376775302411966323006734445411394546139145731180937885936180775236038396802878305747131842951516864335203580018177596154051114648295243016662819186951630256435035878565829839182650851937953171781194488087426906731770599560006067375803981987237938629852695828131446800067818607069714852244443805206259272448498839241303765809449530915013075349070724445523767944054648327799892099462260033185941598863088415101995202179283316298987422854241107168601528859823017945687237774470168792996526387143578784749548481273985929183155329503084302316040467443019517910962958393948024625615114653381676816269674770706996489897987661197895231490123776594368181745101620655120954847278275021949047877468062506738372683451060397548045643625433968739912445714208711883789076328520257218335280600947690588599837687127752613660472371098079945898660098699504336232487043693696349093105263424285120399614125425802660125605089644359752989751993142400560396738371366047872248594484839894231858621944791398001390592070287738632413254850787520813298703986708586781404118668044110112997617306247046030067634674517633347185268482865086750257240038338094864155538805817830323917420993591918311984725220430796691597158163193241713022911902293934182964494640440503674315052329859511556467103782320682729184427370479874346390181935918770785122586525767050771653725850535416536148212153379111334750817763919221878694233827771550037065056031319597505806777311427097312094187223759335436818863258390127765710208471029903286735816799942148081574182665825720975698624703640040319155935150363478577204498791271251784843061496078954920456099718391415839176588761082951379256720116879743594555109064411633479830441004114800729632934211118736398152937339368669350698153149361000539804067212164410908832540891651391784347244169486143768517416667800374459497092040370369932465471241413762242005353764507565094459544588011268160985915871651355617770271132999425996402370294010927272416596328063856786413023032007547381810346035790514364362020845486730477014572191065885453401283416223642519817676264492708360067246942442925987360443475618005186863100508763037953995185826518053135091294489782635359690049861485849337317306684796111667040797227614789040166276579298377607490637291814895633543933439982025076463305292262983805484616802978262848725189788402595421298797713520928551255031404162092512055725168578547052953038775966469239780406302515734851817121274194701401000228911835471688431099049615800034625447791014534071423784147424704697615369576608212130284331954764036520789892268203299828498442335339709860562233108784057130391188453740693235813166827222443457119533673734038127646916361788833330697126967053100607802446794405346740135956975444923283696657206150927058157121766964749581559540236724584351578945266313174425959247246467115669561931766168846571060044129083827841536894212888585386651426473790199089672351655836483361658643679719313231597567493915365240257824509271729726589584101316731438722649069168743313797099020138852577054861847369719307058295308811160065009990446710634051390066674419792882822620251074762146708705375591063182595872251518430302139385595432827422167210784653817001000270059287866606397777499260785696497599799055820559757598155830392261802242003997043307969659764328788942234190872473838944930343729054527264556771163473922166720360553664387793121425749292385880580750716559175627797505369536946014139072341983391189391899941486545530392286549416116114128861833004588998242494641356737851860874535176167363813326680886514486154674552184279428347090693851469780204757734602352104306258888980027639903550497721914649046520899609138354098454965700523265441774599798694891760478314330538772663187675416591313283161867093792412463351468356080011162529505943907698157710860385131232944082983171844454106365810458347148521944458432054014532843419937612866586015232929547252195767977989187250357591244880816067760279893090737462060242116743638145500250342731189656726850222336338720330217851104205737893367708262942281477205133494114706916391508449304215966612488376585801766744226956985951206442015912314785998580465147564008507100637634269970754268288866829928340186729472493037858442094485338671249938329746059925176244363965491405771304282545302310617114418769197625217272831104144870721650173405080360679167080635565189582920807367563948725126506066023705846684176040897327686537131818092222833271218863296187729382343798475950067931821106323030755559611326098410627944264061899561767851683533845047817379826150708814481415019685525081727589869416027271011570268118298275716630089364992102527324435942198254571742322304899319950210583885315816562957719273848536842632280571911556413722000104876026917447762488075368752179909882823463370214347725545469678779004562337181352826230188616370287955625189963000371528312022750702974100367922238419509149369219731553289165188173156453629663154472190176909426237889013614718905693053614930491143354080057194386620606370432755280699280443768220780737579192692689947758178588952806479296177405128330115765503730300303124932695879372682545205296347763801811595065124266712107444039137647997097786791761913460223675114372345498406698720094218749867520560105359316480475679961578704324812599220207531373701066814287680727024737402161984244219290389650396515094072301636361064907805166050051713220546741166292051849411776925188530756393079245671173389058056613676499942396601745694567161399724103417597858813518010271097286665483034148672450726860530300552326103037437728251851108849034893444625686210706561606733530990003494957854522516624041777788245966611514322839738473380714087261534316978764404261862917414514041014971237581350439171262104989172463537219939017808085418216770498302753906031089870400517662013861368358075698624704604810924406666416734229429779399799116143306389328306974779814914853959460744671269928423635003679660658817976030201826466144115782365915777682099355489262149139720536262118597751052843387898782180318452289988025283322087535130214089641690835237798444715211265928182081902060894304012312812522959173287135639232646951711866521533609636137567234198388397123335271235807270142330391540165254954959514460126365190918504756651196833335431352951995825420331350163407780328475165278473203367533964721392815708083449087300404244101389793789651613397587817511214491164810565577700035686272701901788082134224233041706395580536234541103448369474395020970384313966670306712410743978984217627025572881032995536954738826720975026775651747841399422899516960993489813493011383220077844097220557205000132352839626411597138004759127744576723743333747720552066218829220496136498677343655768074675191646929952842015483947838101228777758295119201789147715791250107828862645851586369709457658786246931736888539686626757975518265026794799629907396594272115847956028481619812083747912468684455564879402026417260814233039114632132020902931750591569828932334668609155198639386620261624240769437955736036768712577547871079082722465441614678460903439738445288361662225998275038245244336026600474630174911289631063103740839621532413091721603909320605487724328723189754413246305561765817992152235591161736693125449079434623966554642168639875174840639241227392547844281086485975824923320534247305058684572940856399157616248733739104383792862200285095400608119432330483813830523016981637618218754224672315396107279336236546057193104313043411192411808454268514397889832205302146094233668324503055861556602110270950838767206600535342366989329602408029073830396765996139829754828771823554294594701043571258955737772566918309624563621414241335365468731340586962856178506119127251442980798185177355124461076568460589143799145413985775499069356244447052850425460536311279136894814388409321026899138997680197508475098164563473784525810229138776803477029846147636025292507992216587725694779512613042999911680827080567039038459221131781382602244394794262935375984655058683933307588712077018879066721342404925138287192607636021701440982079709250818626040720837771042990223071633776338141028536708721592482457374823034677277445639089055288837700635759187799276245745506383773871393804806901554418243673478677596618062727924897451517470962956599989625428808196944894007946208980614705355309193382058366824826414226869386644976151668757930583499250579707640159952133024924315324426107034470928843599964599865783719058038740341333077111681761823762660387294604246259244980717021897049206282849694896525730379235198301486801540533050174905731474437457156456122987724171070597394558680441782582041397349944495348071069198004584978398124670518485867120936212150966670390095654197072493497226307523326903340407914714140180746805950368394247066609665778920650261933132580665226818021905693354051681359058774571692218276350017491372561344028374601834258963159480884934132364963539854168480433656384499799312414245105595639986254018195612815139510691204838952310915356027686889867706455807499896950830442171244174100554705143120324450511038472593784079203031645188974605921308470338888629411572072410708454809259932348897944003887944445413056152630049587210264676654266453049615704494974688607181744474310436637589266014238519867786190468877711412878953632924142604159661677602093055831570958364805848398193216679513379286623268728781823953819756298550788405659836353928264361528621339164679679972830976293928719682771760107741798490932183309559744621463880291376929948210916768981703359779258151603771073518510211627832249711722872427474785363018074708709169170217704059655511718314578603007194140303009068636765256941054021872897162145279975420699111835562142456009989331869902896760828151562073642807322079148022349417282325445518040499755652124740583001903835867796234309351034242457687336625002695102277205978759663531281999224511362817934756127104784239346487715151074604069133455422242884330856397802192638983421746761436973685839257583958974486509154692351754813211895162901059303621439847851008860608721687285628198076165845326084493408363564316064340512367594155590633062589949462331829923183663378377511966985783406255075040524162011462866802330687927892177757795746652709809346315059556930941677931102452167958364529138132316864979181056126259739765497052018566878626686447606283197096775989520620846043943448974803837361742906422749008570609095404316011315318462427191790218997826443689614572296716211284806175765525433896525444481980400622550024433778464241920868705641522529365111632611571362053756578520181616844583731356778385015418447666106347781884771857006404340655096165445655919514180569193527187016246560800919135430086504418378112927992243038287489769790848842436557747152586860119829598409728052869833433951860453388027044289562446674479213622856956766732123030068528844450207460464487558206669598338456495461788305361979646642363505670088986774922455950569402679724186997192331199598675936005944032241287252563757326032034212929898477699371336537790436954431371400756716618316236456438696840340533260006454330258807887226607185420227686402324342143541233143871979307449237595518333245720851968142345788152917870458427507844768244503951436024248281946923833893997437056175283708599114845868601699986951943216637088730077807980783257186145643475694084447401714536715204810595879463986383340912288756281137920183570899039229052798677891439631060515576306236250790249279813471945529601284572467023281257807536861425813958255414480931570843402431439524021656036645259765484053402456136915006329325126075907806494682518973037821437504876279471036842792133440037649444496734929327471799155393082220716254784203632595471137264158937938865007941824481980867200094092881990759591687702256621434654990000359961144624588768090321422749208029576610348909029081515535884812151906889396161281189250449532356469197893284953938337113929282333568295576480472735116096603481912610180708126791888388383760121599311085038898969473663804695207280829023042831033242033290959831723821639487614910983802421607619312413887368633002184855260735381970413644766223512679208106668244649878629819774837025798772193118885769981587678934566489071449068140385893842976851541579248526719630624026233647211363210368917446271943274451188941887767621388108314506979980826293760149808430779518298225555419877825509638145644724362815117983491188865338896692106763508799689637834045469548910020106358108266142466454031703309804268739177795905307791536482547027306036951457328322828048204217652824020333415432269455494753066350620017851078539508581012769982871912238553151625468236745082911051140585967861877270831218511112629696757577770751982344116287841262144269957328650314383097395353436152719664799348954448758888144197484340946297099899811828485244114622724709035382993759864075289010114314358062591523507033005420240150334113558700532443591290155593444805088942574331552412162890521313676616168849601862346340155665993016733739277528008857292128027169757730822499895924573294753450813796371395817511316078038977387308984347084413110129708162732703910046575170054188176956965626538164185130889955791772512029831109159155917719368859938931431755066713217501406343342300796370230243189024476327290771683668249436624184687551268309530051612402725630884676736207091629028075137276782718264812995672964349305982102645839417473529819314764075926116428606145027136160274597792909300987172975016634127260823997851373606597093867675646397379391529032080070779727641265720429619971893769752219342239360467477384712045783209987800632946199073581713849715372698167592341250199765750682490079172626469888951625569718691116710704525524846034847016631349085622735177024447765040622566875937858255979960139583118578711741563160873818252975503465756862110595449462967168845009419818609792006140835864553158484780183430563190544547651758576407880932105451759478190286801696962461814369488440982285665211197053196482782262048470945733867944866997226888291320279339648011173862213891608448674512582805229826037860008653081713191225955481924358940734613127842146837766289987969079334671944212347316007503000053251257959350519136781381136881796884690965228120983727751862011639151427341276137900978708987626132913872328904759499494442559246644927338066048477022328811431761894716917378225289379084161490465571306697272854363684985270354840432397121122838053266527415400172950028233619415507778388643793885393542585856120527191617732443800856069642112903908927767407528342283015426088543105428917230990628041027768095195166855970501587230708295986505064246062143701048863164371877625598877322300132520779762529640736868645124282025086425992524744223507993778237880014705087567826172306628350505559801197736103944877285788623976050060604455281377241349008506637743536604052021358482988046784295552187578377985418223307514847272175543846446469687498276525921291775276469477196500396729064279021363725836361516668600575839821357896428124608405387606921525560148829994393075395955815377033266907571270603380609792514264379028939792325274389626595382853828750432371771407915512391792106582787409739985600383114956447200316863567251126713900637588855913233583674400569202487379227602051635437012667406118968225343084046016682828921743757502872750608424229550130571434352148264846961979839830613477477039903291706177608628468547774326703199990351221982368499563519823164595814947462884695185735372032697808012741057962452540270819295775786188787199188023038584338047302002883362079600592483216998782133812951216336372245075220960754083901242795667419534470477824090028493402920390180282340548198300807605330061714794425137390820858297131044186985529838670533587585178737645062959994729558602744288555970020954960340087625502952305270259173021012881641840888092202121343168049147088195925573361983180271666380854692464356435182292162838847822084257697406727578830188815350232333461116046100743516232866002504848640332336691972812552989623986111136224705661157518271662902071417926362357309575577262229635599792547379598913965710921420501914771118240115906823106816630430232063818629148011832388992885156968599284375666228914575103438179581973606816394570585198381170284449839971089433063596760613786678416018371335834611052587985541705829807103599047093145004375634976559626329208409850560328488632326130459752234908930071495930607591971104080775138515365332309584904776007581791589280225672761968080552473879587661429203016161835524408464591510180385521821226420328575674898841507223057439822767246267085631820468201499660516116625033634754044555601962574382311464859283533489494336493518813662806471361345534500630048011672112830879198079611464211707098908482276006224553965523709635741499287104676777580478286880239943714113793034606237804419157028240232222877332594110452328502080476924281799586786546943201010447433174731802843858444542890935058392256414164543218656098870156291961596560514542174681460966334892629692604063986566359226591011431349332340454567444855082144974732138967643152312346958059906048824829984119861795833718503243110137501300584369953022821642763973095230882603774168658430473070967263836779012392412319693184217871103584150767780666148664035026973724280922948017251630463196621394180155851976559521154502257064106248812382918165340292224322616767031833983869655130240989217515720622685065684500693369170217428835122811138294753782704908362786192104963953767933900258103867283766444708599050611266570027465534527262598946252400754774950468437354673813868544030267705358959487324378243485077279713667609269657821509907389590051723529948928187092196734525680984692220405032370162510331225856361197296974827768806074934819379017259253317321312503578867214216297744283668365640504668578774250935193335101462658460548445822683079077437852865031416777173349890641766966953277002088637830265894680014483499234450811177353909436846367919615968378609130081559810951485984203613312681726777615089019405729922469086841332830248129026897011647012422400786348832094221538634644002414711428504328523180142371008110947680401474073215901311403890807096947184847555781424658607624481636196946446280044163417394074209611377358418448731114010819005325230139113977109044944786393105293720508078029440923153556991759191289367160290720587143913689262403624643838098947794514123284863403136829856083345220456963525790488234741562570651087960252843761909704967931636490708746429590840020627833787582198439516843215437682327436442536922705279058370544640173862073004489678053398060739621496663133711127811289295691820251722777209796599546919138099779807591246211134743703013393682403621197410930955747818295250601787909153008135026558100454323565001112373786379441685327133703294366826797675097355654697790701214191339753362521982523689738993241149712833967956957802930287933547428172096141643145201242811041575327357264051409518149326399035094517848447752488043524820478375675751216353274889881504513851802377928151159797469658544638677025584778188853449044445289681563570554652737320573501374064583279580897093431994025430409900240867467850432844672591126457056633930303476221083944447528039130100131938711591270695281182999716261015824428691139596243844842466631220180227223827314753062522278961885884457922610903904913738249231042256261244632159235086860341691787985873527865201653168054782866573904541570924513205343400187633530962152313819655254860302392708502492121731432447245747069865275845044033496134824310379491905918740003908602285046410544675601134570285738981926090466665272976849251832242684456470368092342164174663231938039193888086204336552358035782038941025648001095109694411419975206521166892637345167056558429290199301640956785416892159099952135892772283951504963397428093275941094628408070532968725999290205786130586997115951170660002828322983510008473387290034385633167750160360772004756120090916763183084975414561447106074755881501072885578779396453822136542774641322420816872394539232001026095306828360199936398201039161674097881668857151188566358172490288351705562361287512290616041404756084219607455659259804810441864657221797062268151604476984872843988520689913244598863783470897229374637687611583011214885209677490869888171683675127981742677348151484155781991714363727272500271238361406093919511346395114334446270623351413056459404132179132179814761207948910318072508463963714296349614349327138368691137307232101035116392126866275977333950306061301259595294664212644135408550975903683235225320199531093757822040695501392212205995499673591093645770318134974723307327551940119400933136134751705796957484444806008198007809822833058477826943242321280616581637154567955923190539854975857497904807124178693482321617433868454307094841515942360881606106731472297032513283569501479583459880613604327409453160310060055621417912321628194063784686328181787358472582314963095688250255192841573717070051322450836651851445925369952466786781444058458175012539380532809811803802419948217117455893227186520985971179140827719946271243425712029572430111045418891704541123017399536180554990405464755294603283815882820169359355266664077344359379401954766097244306457607533823201901915549285580658568681692503549189204023519134950441000515224578549355426666499362984679007061399550199324954611527836396313412873657246402632704440390649358224260721972964928626537398834626870188718317003372467987092715663401718863666845730444470905315033133620756453372129841522626788776610262808279119953298003761580000620904815473862112379601854675679194993051930134895839137032406935939527763754840676803648418537629194686475699105098590390029441844822617188308502991833936946337206708615930096614914912147389992482723544557213961986211543696725387661413963759679937960852224527060584510858869188515178852075863779350695820880429194128309616385432446243857619811759349994600938168851597888221522440931844577771225008637382162528444345869012375474953560504781600899945637205153092971192600501327203746270016336488049311483151410240875714521387628248148245587160803110536915042976323536543626191496113363029088091143451088192708726887805056081253445543692755740901831393369960312035138676086328132654835404973137271178116944628858183368986202188693321557276744144078370562363907050375872726984553690585557180058415773155213950528676688353080202691667687529747166691086575825388093939445090736709172591931469537831142897620727874677300651621471814623349840640252226983842192242396165267323616458064654248557540640973006604392372042555475347437360248564634869240948010685378981946068857371283173805721411037790727675930173125523509531142240412524905416391721100279303474504691929156395808819912443994556580449876030924941495628041719969661484741946235151280788351740416993548629657928033830711582728257932947847596130515776263678181629259157974926537270517189623404023255313803084727972936763403440574132853471257163723340361560856203173272761236992602362676582889405663232339485104919693438224261880930955817027248834263958897305349358727243636587968837453971943249572089801147243338607909885954566820445085103215186585061038705382024893158303761047510527511151314962350471165110833402700775783523442686791737022382156316071566182446177687153386974066762238656070812082310360189697581765103053184436332214347103832482999507883126329448170485463697234687376527983720446582370959561084109592062399016898485895390972275621250937189983795838238655358527983235161097835807911063329680253742640686724249862560247261310040761114525611917322684921993120255211396448158559120682764311135518905330372550734842368399828683501726455953339872950653924107343870423050298290792414575717113874803077778764718714582254725330703529197366906924224570717514305426184465449544036268718169719064316720468957783109415759331548845121366335497776969112631787568322259342847309663339322808253791924665863492997059063557602412634737801379269530395485335808930341048875134970690172803889748454279655707127568942810044133875489713489732943625146763082353029475558537136664447501265674777083403555662617913817565607905674416474055242813733897064336635538213699454064026011172927574515071694751589910955855624206514133113207270917740159705119297211232995416953428239319764828574902270186613665822662635842774737415396731257226997345162140501806842784226130822419666004794725823082928697071189929055324984815677570479045572064102386734831843102135601812562277777850024135577573923083023772028299652195804414245363057874505352778335081605959620917569998168495145682866367141617586637031235473495286216852474847646638742728436018521081602310365003113693986850269524421031835184520666311059689281753263701972763821103773358257721441004836449127179412665424909160435830859813832272098922993347918437394393623520654077857555520844435205590750483273617458315928607573959718637934295181736897241434333427699083869934580391592870303079766003812938508633663309321248755222525448243562708050138086357395267947725416613081941373836320596815308026324943038732533516637079093135411117193809090468315709639995576884822055941364041134415009068750887158444785210408946594413902213776242773745275618647721126084691328779546050497178249107783574599316377123609769081600134267716300626936078726323046180121602001390907971864150014147715610143648046581976779786421319272256782480267810332652998053753928045636711046916720150140580414384707324633484547396884956874180625763986626046238504844321078441490083548046743433298073414026533348684448064240122571065750299060014928089899605285508427159035239826407092431972733929382837922273801878151244948357504653684626564288371359473264698145147482317718509440518383264009944465297344117370121453448020024247139782955505120636918629511151200532545642969609392543408014553446602551079678168166435148162114771664706285123914885712035474880743784290330158962836062638678932799113277726897592953626746495074043143563034396986780616625449709180233394888683169280619867055217655267581436427571980794973100340800123932427159017459802501423946632316032860557524589813808274074721981127003471822606253571424069467706364604093695671602453346028409439792387910044935378306599704801929230840147689755456960004282107417674730945877894863174565203043540917094840503683276803921972848412275058442925975704740527409992643130867559033480197506127835379224928219848435978464791694386982128586205307485527744693798349462595534359883943304469314561306752905777574477598851286704034435185126720750053572017317995449105476918824082795383782355748173793776232700247761308915969582280636559590044406556120009415886071510767496338104069021279758963860037154595358439967678023673237654298179556505970658416740795270725804588075094875415464837502099806428073372616245429432196404745359626020653306151465206440281149205710096181120959323808746796589806287578181505638468083508016063694125382913445893429079117992901989016322866062985426374940780139914214714388560809476684376040998001433640303410871128355202950649588338751359670264326019225056610094370123425487547468984192015369478315475952396339015893327577034897014233209737461828313002362261690936515692083696989294828835473749849217959227002846233588665601471064191718644712831666322656554636842831294056611255944040015398519088386300879836072729207677664176195436756553459001722350352429183239895814184888531964281953107174675060891768663424024873904334215275306265498419387415229459199353649724814506821308475685767617013018488646018200150808400590985787818659744269727063610468103100610504094438014752861097893906873063188308255030334394385178953023735448252734041848223083874113546698295649013879582828492384839469447799066204985143769385427575879152719498242660125066501031133585531105493596724374993984960124284093279113243204421118943683906771845482352166366820494771839643694882598600132074360214653835057594052354152901289003288543389916589971172470209895779218862598435809885565666657775225617270226763516041064179181414988143054226574268249661307680163459036319437640709883434296610319628506234596468354228986650644024496933618294874850870218391021194850531613054593244476416293258971072756290662701935525207565515178228703316201211735059998544456180395176870329091530269050899898559500149196725890238103265822281692527656578372454531233410675533500122585542059677372254801149928164159680676052141455954167328729919786770728620041569098709442138351331235775881151960230132625925025396567945396369984837766003566683120028321220336114244270760885719877130897946230068205500414672632930541445782625262436726793813456137471799827281145726205015236931103759489736585661412034313893055131625036313551835892536458733021914773643079119140188704398405074211644976872175519293636295053346544468832370153486339095587261061112408702598038701552157101750985234421548099104474374345353049356343219353529917161686628614592203817934947175972809467786043263454868929936338479059296736231702522825725559066604484955058955815248587093148428126058154647888748093324769164929726415522564848098972616774177100853536496928248384887956134627062032646372024820757922182697405050750456864874653197078493690670680359670985161621727140962234364494484432122715081162853872700861798661869961055273581305390852680022582915369534121249199012787955009527528716808529637402708526274893909749627239413499489036172741785582191016204409604760557271713255961714142586414988326135603456039200500915593345225033124144917156486775718576251119510979431297523572467836108276522382561768498064717440150112323762751640213154186800576062478636292273515568411964452249124856088445464487276822530163039496194559558646100443062710497684121847610397601746481933195435581216496551774403790822102761792610173487167084152195224557740398961024669218123001717491519149838114627807042466122439602163939595544846439313501311300118805572724718215461998492130639356920190004235140834683316754105162385339450642236262937810573034751994012883880901047852133558430134306638223192983342390586151059485483653318855793275943203506315632360918594031521852122184300121225058570588799834571431888889197464961423547189960479439727942859839135179064034003507240273769183725057425770243373375681799876732680438252840544227541848381590672962060402503528457003470327066897823396435671494633229735643288300277122823142894711980631636394040828368286260920323737536917133981176885641478748046806479371375541480241056480312146264046845250230636174754914620606315015534273584853496534160754657027554876233127348202721059044442038171904326736528106813840317866311584520933112980061982680391642612264058926264786490821851756166149958135997137810040760213514183164061940875934539239103094237511500835329048180990563913460816532598508060631844710641329564406814963616783600116509869642481148468550605231347409946121091879128139132852064721250816090502760580680011742452582687879229526001902229817374148602410031863016892507738230046812005889958620963880623014545974463484389027329250153261069022262455180041164170039276080407088156917569739472890549037190350389441735559819719993427709288452858442822201323455079128725200544131036907476607691819734863793431791780621976623137917917362494010539861296399371749838736308891059088890598711547583307263241035477927986043858038476231161360211736317545539774096720755206089612044153739589104951583774676352424460050266843663579375835679915664137059107860861036337641603648243799882287669804425889782855095512915212743591219170515083615255777084313750645021577202015605703757335164896502606031697819836887167697932542181430905273214086700317201056533617588705019798135708491358995788213901498911014318353983155485817616357703445659130731020902466530379522051437099474843155130349462222748838403219163872771259520959515205013804655645928392634135721327663615547695665216397269702997482519389915049230365286973622579468251154839372590519149604286005972387885381766094016316892769180637446021756795381288833066282081341750492472191938763852461303900523953272636544641955882579714897778755436853670844028891209193649324471671663578015778643478247486419886136537527075608811285626671516165660575677967578881957111394735238449113704717269059288587938367572503629243408213169455321370326580520909872542360567948562771401779765835522134044555149269497260325350567628071886348435857303160375303636006634991641567705315730887194284674328993784290933601930829931305430031596704243852295276688388242938313198266253099065113577362006286083193988015720903546074544092057934106602765103240284836065067943227414216261880105343336065249805929158150336581066548274258853592613477790459421161247509800413793045845276134820764972764444173914744307176156812269988696859758572018541200476445627110039988568339219277987221979944776783519012778503220629335479263696843663480256667267880866583348389841603983914964002144281938514371723678262001181448953593188519119266648749590303258105309349045195787207889058817337122388094098929761131213302093305465873628548622757778951258047881121052565922043038787777622396577205117868344633259400992301178285399928689606346000846842356524186049086804998257784780216414895911897115912656153938947278327735079721730370457966690411411690419929567813019173454989432218013085669351445967801445329005886141626932722109430122178709379614548249764884321483776950271700509116199977921580693991632867443403931161328879361784934255778167606807978639000360620739529472209543144243599401734239212563757220835986601934112916499994633921872588977211004105166609362579530319525779674644500850807182135695635210037411852001679378488581038384663642634482113076623541479986229610341606963372964871856662033401010129333160621962319448698796304796813675471364490864471987488432006266025780925198117315514052004654410399771221712126324623439836851102312742663021774011802535102744154301712147814972258215154436727827435341682455249597216555283893199220562431189168975010923166110410481861005096017597855790535541309476849462823791556287715391197757121338033916174622279571269058628280966459686453604999935502811127646677310678372386859297363123493717989312058667999594915218299450329415988400663270062749658887930570889015997867739846138574913576832629017188557017661093373515676114865478368800580913673307825731001311816594732291372166347641590823271916094994872175724012178380528301431286571816038672496260549492717296296674125277667531640804880718932319447342250451824150540144022367956316685481609739001549172298170558306496355255406013722334213237195032108539198850749488396662424337880878039022247034568396201356163650008376686004920779385331668607295373995981758558313270377970095552985398765762064762241879683805458742142962126430220837264485805430628648928077490004909457200519351568894129571757380449672631220582925514207872161827599069540100567484015946165728324900045315982470262060758201800129586568962798457538043260558499989064503002072238338495451561243246498673923212275570724502900214068984891310603468702655981806883951078782808454036935556267011550833560590446290313535413978756023657492143445459976447674586063766627677489816671168925287416511229851317791751477373281741210285117673749619497487186292097898083478786607665454040769599987736887527515984693878268060335134820492033060730906163248214211319756044360121630011483486648573317025996085046508358333167159439613463184012542556042862257146018553610359012423347270692336437752834497509710583723140253093360664526382046465835247088317683474964851473258282871440701833265039030755919069525716481258254450948387011830519990207132304663281078397336782320055548113953016849288036331117959039148579130762852441741877844263293213077207317215042140571093668404781817227175792418845791466037613148425533745630877521819678985806123945591540625080686774399396620483188932153782349011095036998162678535037161895922537488518082760984223484418366093961368403078046137842744334189058366338312477376213335956959067163113764426241417376316324467841990386560658847379497901318251390093794172364913512947336846281364032007059082710279057555377855806696520936908357891105255389327203115502083158146499274255859620081825502813576090836972154112535986908502315896674024010411491931103296319910240175181747860014777785423394657920748342643448818827510434237775880353778442646646549127397142701134724473665506509203192811874370978307958738694032424200510879251395831186968638187240809360350747538385124501810139518691989876352058797063171976290059958989179585494729952956779309353037857015376379048319712479186197658346205258548471461248591987024058632264854472295371931061653605157592484489708928914060471359269735551752112485433512135544136868156336476568754660419728317106115364464315596855798348497787661223755956787728117758996790613621387861628040195938842409755707065279410418875706277581856766247201278073184459305754220116745233975991546181593077028746215423789239332539138126331589123216970213731380282921159380468414078003095644860720472432141211103862519815718989539154976682003664790167143753787337211857364695993350485133812575972954579927895264491167913550791897087307367758218445744858433148654449227289742980482230556967889952222872686412421949741909413292012342573410678662101738750777461040825625932551233346660039580410233925793750205660131241624747475646293416804240173960837935681764299363825062992924434969420888826471849266145338283590542432863161293502859867225193649040268749823519515175144326721621553605012375478875558446702840418008775647853508929345906426049862579081019355526754857026794333729760455618764877715283508304946164506314427444260951934752069413787694969045077047052884057766622112215140530650331625965271715584173060713263144850818044481331531317184767244709702692476377004315689378290446361323156715123131865206248837151719599705436618084717823637521138109426930427517363681540962804043569492380026967494147739750695087348428081025626133016714870932699085736625147950405391555882411486352816717898138736612816456392934967974776221126481879687394694948823552496660108221888809677332888846748570699533384440920714778770685623013539121203061047873926736186891300874585022613453312388997545899546729353196046715495463494593538261348055992390548953756147667066143162734739022232890567483174466833731700346916744550308685883543145634792040515133430257461413108342976013344865397611614531341291132346263975319118598217603281658687253747157428157761832808404280138766084697665492947112184199507407277893195686389567517336563051603183563336466354270714811458980728378850495833473542343807795341909125531039417075744309169488271777476531953201897928893260762110973584111346275942264240993145593432082266722956805427341202317801645772739212769357947395063476885468631724127774032296141454017064670740287240167662554674200763230450749295960760074205128703715720660160409808510844859612666220476458907860771886989575987652292763659078958294305347543352172983973413094361903267860754731662339611503000711810592079088513959233596241665607953457560235117327372837912811709612139080253801861490002379752916618525886922274219362767754688320549409624858288872546868423954961235435650357251864163105137955307585635414112528220914366577181982886182870501434784968893226837857399799047975412951053415212899684607401785371683107593051153827646841192306897580674263965275878232173968457436089442823033584683282579970232414247013846838628844694428714060443074822550816896603454795018658645953993143549821826491387793968184761608748029333133365791514946955530164323476258601102141256499034047588851654691198460905505901117334761310704476073309588807551929942530441640208469664634392495248944247212376494322974225266244772467076489754982023224930966156635152662887588908722533764868060701549672019121852987420610138983318004242431984777928296663649886346661619529925598901267037834333642449844610117192198160618317843848977048134577570074210509143286999578809870119541164730150027117291648804067377499842263477909630858643702417725621162215058199113159481906765033359954995545432489214002207350253584602657311148298572278137483838900685263602111657840180389465999247386984167122138480511305212195466865342528740806942439650641537927421914065265085175558797289839351850697494366626275946803233608055054709246217953665873703957002662462760999348065925495552262301274614074038148435566836275835700363976003838863240630922145178478779280727332248310615910355375785077079312667657806328976161127057725239836498435326090820559461623303069812593061336002210613443219072843007072836963899969292955936244349049644802799538374914945104142206907332518520885755128484992732111903860917640292951829438061123384901507150748320694996624975438169826827174478221457515081876191486650180041464548022343231241482997570210549925614306431736587810100967086346476248747773796574372469173665988215948382489378297178135263286295932925114859271556629004473477833893610170819996945605237474206876386871045339843102615815646670859698630993447261460219641224541279658920303794703046010213311809195943528642751537326342869588869423341408565790440442093185559763028294784842441143960663017627115464125057794748528052884796493188022704583090727115464812310080203281124498815426330784856797906357377486617097057809208889085462946560699144745370957888265609852003258464918708454925263985986495962122659394986810167422668106094551413107161463239907299631159184521086570901421522863293667418820442373430787172971707160836318859029856593997057968821479817128179837814007899339706195369133292845942901814783893322814221165773956827101349492128746539081119843503177472383355686565307337981567940820589542571650926364196808917643009573204478100151871953332638934050760532553242102886738722269243186065117220498141328865288532325930612581046872054859271682930320649588533623197705957051176900253616711508172249544663146076728442270418431589409407346294210551865593970685139569087773402760427116537336284655203882835319713608873042642209673120314643174436170320621118074046821821308630500532679612712511288740338734435797381745836032538825469138331138900883063534798315569698411766443609837283593000673143895057518580508897196580201635231735830469889400786768824779066961401581431114694236362999683631245915186582150920636325368846157192419861830249646797410405287963385392798851583239634169233994880403893086788291331670813129202630347353680833768095814327811529459293839161730179247588689512495872505023646106598352762136898074968628882441057873427441807844509304031818308569757226382342383759079588722441377073026790789405920867372873728486877703180387377521196748554152733678982712856349349787353455218355788305577650253694789677436054869237748079848080795309079905855540665516476896494304737716701574825758011806509676087201827658909952332270113239570053615807186353296159257138317225241834577959789653377360178953964592131809038658920176510661767639293265980919599836131430055712889239072975289414838836331924564443631744106070552088994196341099926017226505817968299571316047778934678628409969735927932095075519691812474077349813052951011924565379892550739388346418218738249390860991120145110621007071734758212752595936031164700743034587311997286469805240194403446256452506139976633911550965300567473798596353010988774003911819021164091129425193150430321186350436012892781560271398480247804598231842930047961053730372728236958772870933074094063156652178723382745839162713096379168658081396382164912698457431771291749565519965399417072436398216426955473193666672542991020317241124782662200583865550515472046539133631351676702039751062969619296217297089142286507731004217471522736163195201567404480674306261613199428894927755921415239004181073719012504519941075595772846837168597024986079795296306073555675202870742916289848279169657754481941341859351642689926173575857026602247125110211283703832548747752679684021125172490052852974563326818214266413906688504088233215002355201958985800840898865884800800024480043917116392206595174624274221619845701859299343901100553672409601539378153463313061870996946872474468751402735287266669809966312191607467760916459629013888571194407894436678401354242944653033516041524133184759551036451309103755356455996612641743476254768182997226004557767661627030887202093548651489115597695506810319372043276853821914206733793420547071450144119430685638191857985870012830813756152395301537212535858549857716411003806078897446594740973189683772188822846070165345309517583709047699565264377499480710190662872920378031961857928122930343108017062296877691618672056323243568567743896862958141905725549892177890806644357118408361049775012971282271874142472466622753372732194521814374981330059934279193189033302974309616042687841916923302635460587497907390223332307075616026803110765950577814078561291156975458956900249294683221020611945833787972148086409207487200283901149205250919709920348339168082996590641814775519711912038628114461696900650511404040688061030954763139051693106227155388041658917797533784625135940032169413325685863741807780138683386448158371592606358171732409970362786682611701468399150624555498266906898451417168259367855213635065546821469374002080952387958147410457249062758297044621951234712074984427765980929231479863756400763999647828842300256186712243795656482105447779714867790900204575872384350411255414497460070854169111223617249799857397552156920653512498352296143314124629905215207646310246665857862916432685204852167826479560739300841449439415229734017471110211674235302814252214859883144701843979709770642472686722772249118046379899741031819901941536461425797507706580931243812329682689147631659030871954805501705611307886115292072986045325485239716600516535744070023102516589421051278947121338675616735990436164362356008202525345242557417294127922027215717918119983719541559834979951467489853597413388896217607912178622705318161057776025621788476522330092334039273361252414932398943602729680443226882209613463255759785498093621250016450667921308590581450511249451775253995044743922344011851220863463406256362305154153383533358856083999195189455229552642107545429402950359571004480274702121668236141430752576655262949821832535426329408934585711843028044291336172142063358223750376106635883467807614887466317254933909941320346228575204371358813505493632164569184618946973328564397679238671235663605263553037547687892056530285873260181109158802593630939254390058107885089367147315649272851490087744563673511590082953447946249102228166267087752179155927241811163655825016868381662049238780528343810218349906640219922482001183938211623523102277269409901746301132341610871407729569682365370810715075075565512060600320898608398711859093154782613059726275494670236358739495306421064995544221671219973576539526355298411144026022631643417898783868278589536979708377043956043204494881997497926466677759121816430350211806616839295926711721189825126190929339041972097733665307111853600139280612346660801806243354795078380341947494990727937600995783315836785707123074318364428039572159078905845688535013501301649768221622437302340633098796645267449461733062088844820285869079743293866346795729482965656038734976827003377845236530011981885178221051869327461381581486952448415640226203520989715213669790665351640956966726427541521996407596974917995627917880700251163553036124921021058424826571648852039667218436337780400499702598480234881407704290073360629890496922920847551077277223530754901282352267440268110345804006327966007477960668322669162518177859586773898366582795078847742904088179651694128803169056054960386990462160355416787532127862208784990624682906562029273074202341858433638555322631308482904549970318464951529596661740251840524132680013516159628835855067247331660255104013037667457655015463776195287625141734229932950803510296450431296892928655796932423675564880112182773655717505732834623607306702523936329907112099456200200558714559002285957007130421581684765123194426069228934627711626232114870802424208244238620558206667014516409112727226069894295208760693296395715127056134779594754595074129269459803861421710931526698581886141556072217297253672995648538520132264764211933834309438354614355792437088774900242417463386076063117928842524844876802888933219242799054547860115323268918299147724445140974981647620518593836612473966614161974390820201203630029049088548609223517255992408533682918285978806690857351249290321957781208348356492212823718032866120735464291313072426175030379961422372210691617305026087087188823430596040453352506293545374452947873008582895763353441289635268381009278277743026843765681828107798339788852278134899030377929508967553217266012185439696766655029248258148065324968408383678781933911552119999715081634979466806206660428469304620216103098927738001803168825760991127150469358750465627445651110921359335878380828305932557213735815569210714283426068595791464826585966507367920372918529275590037577200821924428070152607332405197308127333956988472225346035043382700795602382652277734098934183303835853412718054800924018622546690677427344542390890054125026657056440151826975040774932002529024351559756993600656743589127295832094481254797363603725037102800777336483257638760103183550018152638041245435100965596919456512085005466858958080819491152461396497850794801126939352963913418657937431981053948113987089962841067088107691800594454336441755961116371309481598592792992107209847240228989616845184951977749686053043112984534698382298704162459197299647971528965858082741189762433561277180878573368837907284620548368931068371521059197339665687556358200850031781440146419584924384685388072865210273143440761533683863170733831887420394101699083354990966575486740253324292408274031301894326711608965916974361965932045218757434968519618378570256518603216156809741512126403128671811667174692977515016257311832036366305329799626926915800964568566197557654658139174310461112430679322417714821880961748304391542213559848682206626384262031498656236031714280075110818234217136868100209588159343097130574666684675682980272632922196476914544632096034568974220216010457568859770798230213445554310198648112350078458930703211822347620268037418826172161934670347116194146421177583418671960367855821084975134516632367439189244007959994114494291201001364150433809583013158676866663095613471809907224761489654924002433792727722536480790193193941451416201997918838458888936842359070050065084292987163923729042624830270373221840420073583110131787618642310489551779191251080985693824032049890358768305311316492295214887057478378626105620771967589297602659951824295642434388392935694166467373104086744261089440961660433571739288862916919827650489614897664956009366737849976129645569679339456268757861074521417170022056475519500890507151360624012285802998460054018721352857430668683042147838204533852733412697144266843189354683236038501146227611224463879019074743265233305878383535269579888001087089815147577776063996658908095962737571691273463570061388916172395145888008517601271713140201441043004244185541486917294614768714271134002300905202724382355919455125175325676395201766312340499767545823460282056539957370943747394996878687353198327189894595177033588229803617251214102096258727150822129077320696749546018255483931646260710972620466827983070473011815366407000822653248364100125086470436923872087640253113466498536053328138129686391688933565082811537612192339323277307146150917059457362392345253255342495317006731220556832418687922809055089158779423269336343402574577982964659855244559112003941672204421756675242913406666831901717593656596393074821814166801712847045096680065120123009017713437378588829584396992945619121864139065634955877541386210176292295641803908071079996151468356838280903984044737313862977438813911883502575866243564492337084514157263629804848650737149855391258121744544670345136117938572974573608651086543963736296997948263293029243828657732598074280782856742977183815124652713792836184758423598919198884816949241704565922736042882749395713938455159593248343359840686140351830850080384767726433215982596031043482520871479001531113405915900176328924640641944763268566732529793775055606188941918534631274982821825678738426814904589695988523743803944857099941879155673628430154644472932583258946739071533339011171803481598690357448460068474509510422318437240053465744347944977609689379867685239859801073624443032697467788906940906586264472798956718478587733565269078147914200178039741304490609127323687159833023617212210662367396274150194018863446047488737514922918214176760804139089582561624561577806406347965117075554074123991240627416351964752005461100324263568641120754504073104555959956406807951634592666555412360793875441515580528034690639309658063187007080520739607027116231737542656502249166898318428712633245554205186456383967840748200230726208953646850067043637039820127638344663502161461166354917219262817921865615097570816502030021280423150235986424944436185373625823621680777008802215791337591471193395731135573494215128797954546860277408307603185111136504717855740978108401023714605115517382145827571649985223882740226713185015441852040296826484432418689142213785236674138480544707245982191369486300476627378531643291526832657706361724433401190384738092439303375976595875863618701176233307174946701660310202114849083973054228813873658245832617206572899305882812401740293838255772932240768685072720403966132303542885025481633012911994568800775412050309120891349755463087253450947043576564681783130759876817784656454299001233624421032924069323745432672710445125185940443109134678854975336571922049532729863563727803101323734278358999452194597688336724051031786641990144708641677168858954257191192670116495221730407885554952112408648276347254424130821226900383764562199832991905316477761931606338117839519078318251853437090180616404485723199995399535432931397019983686259029454516588901347602431250740302472929767162782655878044923882112190001483689227228809252349816528259183472993640136685787468434658455911272652347769008814862671589352968856080627022789592867210136459092710908162270793068995841684158184618927937558356646610636726649363751144163600237639265049776920020705163380817799425832809763504441930587304131346648444293209196352716347921206761383198609941213644530146686301415316349169617785823626996101929382850736927690638703695530636131994175855652264438841767058345546293172054385672535461198374506736833191284976799698772581721121083334263809378495045460101278085155840513833858742275186024827269383690265669244371880197867546692766617701337106433367927049128012422104065916484987554700110984335046568840790494658730810948744066294705657379373915378377299921263489585511110204065477967851572254104392869220593100890923946267316299469393443521932430422477680968215002573543016036045317119856533196004378511353882578940285695699123469853839976785910815001220892024326668737439436665480394239558949498904725106785710446186485397792608115088495436408655206080977479057742360510489376623067565419106441200156868059509124744617799646931906791670950700949473422468436812304918172512585085904014603933570489413731110251198332949827836554842929997601397965962436326961522841836731648083812807517632380078827868837582575630466203009645380668436249967530190422849638547572512991311129820481833084305072833620438504070258182962309568261874440623112229697653937972428028578628185793519660502273127006647466744450122645223754127420105041378894479860512047882462106236914289264604251585201261436059311970145706257644415353408960148075726961952768607062202957112613270427514176524941002199520420076702426160603589377566032509555917014562971388453228315888680034230434472773550735180909961157719238422740932511164136613381410934341495303876573931517003137548356001329728345791620870626973454675717896076955277319405086084844269234986289657639220243309350328903715864076724566767804394070865049412312092326668582417472613937264085888498609818005073257895342610991622587510495888564121918112873330315682437803972054530948958849418661557514406369385036750748684283512353577907178433657832549529392838353717793428086602371133034570152060514722800543919098515394012915301326340790433669071937441368486875901427664911249968153557906219286285598744127016419750670810744204137890629218398073161241984798389089095789602077742156929437866410303090842480036746020639583265544804687748302165221432980979666065027204263307625069785040521684712234519388815833600458373339949725035506475166385989299641085285855169716148699669574335847112706026846871294655373012517187494039921659281862887647015715896743922077618051514059962388039087066578033709807968483243165495122596947604341761460924402362153414789975226063767293350175320714125821583420866422858482976379228865981152510839373007785732591254939010747532270339524069400879793882557443844511567326949432178059527326391593534225310234867317890378017836767063681076102254052820425539719760840529867460376013297474657027294679589197665321195790774780035044331871931581850266061895828856229497644240389249920387814748637024839639831940813610787741763992014162645229368300620524775816168947443161556895344656849532244593209478869157504324706179562155351217634488340775019093184784772127989237588040218941288573870451759452331690944304530499553260071659910411619333899915038704484570603075985216390408993237414393902360359586591434838926377337184361969488698102101549053992478440568656303030637052193810309191242788161940726795956034230698539216360607261346855400289141074588751745067731195075854194981098771110460159592040316738684683714976089112751532329132228049482668431398706186794872544276428781742760359193543166563702414102213090969233141347897126365945854005664222092005470322181104171428568397701514629417461490647550050965815436688863176408952946717076029157936261911393942453044504637690406437860929148694798166775206923514319860914082674045023877659860256791749259309296000029850493619324268687464077617485497546765540010363243599622229981015902923997807495890858232032999914287875419380821628805039230358037059329204932231640027690487146519620440601467909655091900712254597638827174683670256196604658902862414132479062992339220664631271921419835160201036311582744136608361223854596994335926378653109118262444573391660771807398871375694121756885810201610546762032761169361686282846434870516397845651916859474995000713259319451214458333418003516771789066487693202696955012526979387875175672354596702687538596619361028960251114412455977438573079490198285938900660967462614609441896556068350487521289498728608624274419132417820825966997774935997855174693940853128828682548193624164528997753378811011037201592678891672960253784740618471515241633753268228506575574979928405799716096003151239310047371352956675187046760431057836189954158254438394356709034057672799194444914881996910267896027212341811657205244437718521575194085458353768506960937196342289932500244637618732486423745978925614082530369617083724094259703744898239980567559803112835167459532603791446353579344385317582142480404514494044752521882676625377172398999214377877982720462006821585934666867146125929170571230884581821832715803446723416372326072525253181233547921228676323210312851715360478111798254209058126307720952334505469896147454135001629051263085394197542394534173329521059021845191802152840368390797154475162335653357946879102121524493471792847028905120924298079019575245752445627443304993074128095802575388943531143347481951833208687780395175379565736347786997730211239107404554049482488833931230635486694774110472462158339416559424501561373802823246347694707331133402444650554785591191240969810740503921099704123510377891192261690329823838833260163142135548766496614449411611891449892285888705961810771344228775468091102994372477473349490283604582395058180845292276702403438956058795485764211221517573494906741944509009270289893545862152505601403680118664448586702015652335672594076343704762959010022738334100437056745490130212205819004773419799747288941174060511363487760535075537435217288182296647199266426711626315325298294828480434523349567262517836141588951045295951000627864374199679294415471827340408632450297178397827297375928064804325621497339252140758697534034537391268185107693762993586896024690223393479134117227270383681000932009470802038055222817209337384299634824539813344039683840761105525559589526161724748638400857308410698747065613140885143860950683367886278979334015820646281542242541395222541436093661834073511605242090432430506094794565417103391138134290307066364612890637022938169493032236583434967177104086493961678694979429017607711484605732108756278576256926613116481984557701951502850174448776582379434641123756545695996928291932426203301962963091250538040109523263409211613459700248792717343754581174462009181711663597837284521778404364812510969546262625036330918052511472856990188993493368080236546694817897775719997671179008073170691638130607180511945419297821768649864445186362034938579639283933295208046506535412414014226416561039550293244110529534899244719286836839676648800987276209589584967915023047969733934008958165834382384256924550614954280078130440012652706526626503391250479040441709903585874097880358993019510705423683517771858814320987440105031534694195557353169677949575536562689518563611089426173428404816758852101557789250973458097964239719149619480908999357501198299732204811012589597983412697115198224953848264053049826945908955586705595489271891518419651393375297016839069853720988766182105040544655608697449436466417018740384412104357644833007601872223438070107736252418818921354464554746840663761658357082096402558793795081024350735090568367357297777261002470648498104972309142813169532684890437398893695712722649293681727338100880600034333322939643757052657319630222225947030915456288512908361575972959682038765395419996346410731850945179548922501493525791200983221284466164766642374206434343255013513104209570015447560647724264305437284086039622682938407123644672918008908073567544830870218766895191693226513633166979790636258460080431989418011074957956135856792319742268217124470562356930804179029439304573019957732247447232937736418682160179799755235540780637721969943079196027352102253068936424146858744917320489193887204542186242206247007301964256943900294481537940009930773933035368354423603205476740908023392539372981414467524662236290999090954411361468272496520159466785544630567636363304084865620021685543061858111495334683694969273693944474861838197631604380396267522458189239244799430543827181105966914634646762712891540169070185905589276020696189231677120804426677852974596249204912089217999129186940466970678719787758360247583554023815539973984115828808364387042313900688620731131180591530820267711925033757459132595855956704170946292606217210997967585273575949137663952581059003873020577588839201401000554662059817461010090288926600801366148765893387463183500459773849059709999619668677233042962067789943332698028155792599694386248903427793722072616736559746420066846256831178777812989369032136915326489383688533397135709458598628823547108143671507713857077656134539652104080548785786502888531344414258025578806598198779899911930280170564101776322486828891155966436448374435888903895063517313765657058661008826008597713716725414341898909060153342101198079328605236221149656551575368792511578625868145719249424172175010658938016278886407266289209329662870853005710647748319855943645277506455952603525340887848286114447680504929724019240071692470990358595930243182152101571697006176204214684223269028429575924826326362238606143019917564506799897871970346235623429041582806294317542593986103984331940943884710670550976014449965494511313818408000756301963107833749349423298655497601774270108398327222665522530406936670620215400423686414689393519864938186745204536851784296557205378113797279609850779987804665810131802087020428182089169734861159305654121229544148396729691342767610984593630390394691268933530213890527930855705978310847820816543042613728401899453306369167316961584159914679769380462790788997682922855804043356710612251564060223224399886304662154546670429655966928142105118570726619508194141082507009658403590357696209514528204313585560071793547665843341757746071040314639718866708845393071119438836726805961912928530911598262668459913494208203258469247493229067979335322423439031184220504284740741640059619676946977129722851350102974571573827594378931680948871014555543204922436996201128191463978392540855203614538100403654723061322786134988197786403865498833807675787685499966853061182386742458351193070845590125205164632011690454290614689364243397697431970725164975231499414660258737234363037335069224653100186389335295014212825846041734324075549308628347501934846275914103957889108946962616185996014815415339233581218675819285646174895879651510331415842581174633032761676519107705299798868423599076998254114028419108145058319041402118212644653500350015525257660873251831543813225552580799902935388790750748550106775951407171427660380325612910094767605842825575744966004342984374268180029892581359987948739346092294528315027530881875249540960573247096083852477231402404807180018224191285172352165795192911253469551563594492250335227279581897996641334820289616658475958811722176741205383074434953353370982954778154095509424206531850055178379773548798192123560026493399319540945089515863704865314934881883211854864625166688727723769711114818777306514908203917631132324492621558898345955208884214421528326640213229196968008357887940760825090434318842083164737376629158940644715608253624395451708259873144701306436717285919393703339912005073728201857213599911597819743964229473700519243557884229312450263708551528285339072333411382307035415431495411318713571967055973669762864011376270206656602496736731737236051894116444849059407096553779102255937183429477307131398489111263139089754529875234396634180487279965123898227722417830255324596017225269198754753387716593069660881032126056916034709059167294622485351800880423351896010767540622162353763970073162538706243383531586079772785539173344087247270262832340871386140209056615522661170364252603263364485830250961178312510498695586482940972421238609255570076512464430048516440796994630956745665988544529164121681561710306070647935143905618761852225660479934909742557122600352611809018601441018104957945691498751169819995457113050819148580927788444325068663009424975290686995330916418380902977214647613700730558726081253814131895596424139064971942657795817591516781644883238167087536608358596508341887573139314953006128626339009474240617560051704296796786123908375151680580856898093838846761761917742437889123298617801315056884317439159692608099161546520411160094860872498143603906565737409371697240276276510068619819628140585684041040118769881693018509011862249539027553861016438206043827200514743480531774528407418293189192848072434248077834172706103441963328746610285001806152241068866696154598400570090277834166068395280706282169857286415722922794859188357128067173264994500746275472782980938651061130629296477760806258228572711572586166455027656324762934509212147632562831014881783695718212713575952254624745332944218430324132554288949321819294482946671987519037480247766763792718957234431039189325725555079312318575830840454143018599207550987556981875567242625318161644297100246510313052528563192168994915380894340031792014084206247924220216608859614287888776953968238205792257548583175099264519491138734752883786619511435736986454735230850956519874054187866311278991535293172918299277951365408042071097781755094241263676531805345455496029588079243441139774984423126577078209441772584611675301104451109952220627574277975373424069506731027611359919634299023425882479702245498364279610064701811613897811823262507579276787210835956864599973970603550820726708372846980137620836224470935838917368675499765132054689224406313491365160347345576649701433810523653934355702274251480645798259891414559894497397385271299119535502481776927059176376931343571178542916022546051861947591524672823246818466382502264411628695427277792839496787678630727652865831787912127571842934459855533569168762510263433227487147185454136295620297447765360678508671063963440960531351503682283763181796939431305843754033142978012278490720050094681662071465219665736990098062808336931382403260329373617268728369905522953586842327793531036846143469260193886856238141936671154758955994738010552577719612722555453789577830852107801601857070924908634681770863845516843077447470561539596358304291249871615822816845396145467045559651355832034486593598025746995355159487854520440339835000638763109745117397145246128891635908891786700926970462062960398565923869226325040028481606302482443946617668306322405899784827654160096485892002443876038857105916693512593667300087315604607530392178744368379632300057429864017432390455782223390411222387997196467594792525712508432823462349723676057060508114503536097461989858653160406700045865842205997608803216678120430577347918932389160852549534148252901907760865332025651740752024197194111700151628522416599389028916814757188692162014493924672217097056934461549639303778132503364275093150442239030689124682555218943057090668443104445021146961278292369627005358366096364285843029259843282011127225661746910107380160935523503856246151581011865117266819528587004851751022525844526895471106848213041731672822060200016988342905250661765285625828838511919604450273249892489740446925388584101184698251883491523405631892479488172367700630608343791743409783809369981501751931348860342700385447270495625913388551186151427185585731704360287789181895213511478624173862600375037737724418185636524076739830848725568643897821888991654368973325273258292979664697565894245971119476832543863787808083520644276356276545176937251682201779622316203381345784490735021038624978465077027522497514708482369727141562888807264301715376577164437648981005588227092512537961089345182900498500193120146877927576810174343374980248405705578655205569307359675379720553931994294250985189857107294128393119470661894491390828620125694624430112957798020933749052257705144450762468592790147977208475906021864268529050947605748090708616109458600530968662743795115853816535269026183910852971574611988376014756116442242764356279412630125733345426900437868170145479123887203989565252693400357254026389839942712870561207752691842138857683012819222129449994401190469508846568145438665878222357960284146310969494274845305430787898821136312082616301414759532733987877907042242912191789972943753788729859533744878443014321602223335772372997497008482645564178266488170420146704232631353770702320946072100844542568902195364223944219279699927665338521941342412422357918354534571304612274927988193998417056134209082794550065967367453073131165388265026518874600715983490737385556183683157476383359187064244600422010035725011728508398448939864358290921859142380059390825692351658046324626056053302302079889722203696006096437615074224538640087342561858808084845655932965290203897459785142484887794223812793455207664465446753373218267048605400246288449492198979428516836508863721810341429491485187803692225916618418869440244739200315688594753668106449478251756802062330575893985345263905165855869689165138044901435287614633540364018456832447774867970805807756139601159309316460222596505540419190791029558266432137363082805053438091287045344960676669705664374774988367390296214755643204903313560754797677347310710000269223394269429192421370321128818741023338550105226810007788638737580131244127411671149416494962336504935666423763887316126547074377243836120871221409581652810124617797817250475759127735590697260881215506072846877157216122701115136705331879152593772151314480892378255239965388679986727926793676703200602901058594650222833120100222118788446768486812804316105452727240607503723416208252114752909230873326775520306473641947633283011773225185521058304486275187288351907964948838197546278450525584034781647368667733282447854321024310723216342784035811958973475259396616968212835690537049437668320246868579463036647416107070423187621916968256971534985006682855143258121021228390283198064388546279780652364901475294953576606041140240647266887908025332325706684369915975231293205296881772201954590269082702694630255670924926252953218451341379536661582416246064999291749109085081979047142580746948344448700096837025933516539533796350772557735904759415377498575525307199698482384398465278635535969019797657167877628235246475029857189182765557449149258685245806072560895413850628307367593764922887182785474015901678899230580265119499380036296775255448539827594913082970989085199041239437787081991606822568266726321864512157988535197178666045632160822542798280368500929746278000128561626288839985367578493862702712462817333869532621466801742472689446931227679787574687379234523257101820508957551794224333510139668276672559701504945587730661019507818511427238985295905672717269086037291691292646074674298776143872322457680337351877417550199638489228089233518828184288947326261679406779753919480663914754274402042703817839442853780219834834123711102247530717138575352710686157115174681691404226660056767334582661099113234277328409754842472979225669040796680272001221054334043055884936022075309576021570185302488011593014572790059973356272708923134284185581960635800638743000959721027373327602398074323320722470762881133284655788128470073058443520415182737717550723896934189555989324448303734041483810325679370073320604417477517443559283499604799672930534395867792550155338586129234948344406283354464990083960894201474365209250297113841928983583114029898737802912855795057131104665634335312970697196989271664479401725517673929011097132810053265945476640753128315613463031160513975190319437529146762047199476314887179006665407086313871145295981160252051483803450800996461406615239711899144989416394857041944175466977540562172575564496349827828790489784993336309051553427911666436356115025696044022649017668749814951992974121207217587235487305208777782527290424596055567872061059992779437509361929988507797179548835043930058278952765929632296613405982977463747712176726333605485167278923066922001842853591150195508202441456652462821538290461124783706958732984329797344358764728874551730113402256634218311809729131070058912633334219533503162224632006241065523948974267123166211875321774772515515607594501563553700405164324238583735625134223222562948553734328943161501494810054393083740465772306259737288787651812857205270076926766809658345687195013710197308277203151003264434240850669226448963237300152038553845094346343080373843365744730523117048036597509683590763798635704271283026934500442335390738002453921293285465968236996877165370022786328693979238555110386076500238013715778338670899192023158042755087149072369739748236190905667283913385019517334272124255231277741095298390613744374260079074702033273133850599227135381031340204195226133343297244477664395074771731428086753857047976583032628845445917418932135680988279890821886714432105569814784952317134795522329244729226507387576302544692279067013434843781784935015990653026220181299283858937910989073936772598437287295060485793071198106748407877526234186490102170335315663929794588185272236225704493402084080984251140763492463256001514681933508348294043402970505554842413584799559129174230422510081258058422110470276967161591748160265077116566624143186995165021388801076778826600248714380963687918008742086917172998821990398275051945834593282492701435924682956766113834759466440262855373797064735985037566015403414344552627851331117886869944870847954514168717597787038358277421052207747559792408367071238291721822184460162537396713072049031549871151914431232558434526326046359956009344925004489064285932191420852580310025641145294493908807862491221553378994444451124699573460492019535635106577016920119332257941452114094033111554431601845044756689296510209992584739071800283648496629278988808134053773324089358483068123594755815819010111117742279870232252251575353231212191781659904103104508600411649886609904998589553263685544607249937536015645905461763122597856014044669752631039523377237003050918303596618168099100366258136702946532948936977086880254883096330176097674624208701725017323547795354326166292559519732899107110266922739813760080194350620780884228644565540768505187499563935429724691527016288885934501868096849165206408491377215485301157267020976785989050055153579701844141508851740443475444973057680541227148601705903463129925915746219852186357481620010511612448289958842061163199146929776485607102916579793464944581109028290236775680055551106293074699191677209735266773379674330867030527307720541588769635107146621394545276872776972949771699365851937417355972857431569789926830907340820783905528472665634832032079705736961083412824704090357615895431647128179248952493789785810698234073653327595785342502569784631953884859107444696930755544831052880382379691417708558812352651557076956710342696401341930265479680934944220033452570522161503497082793907006602072572435272225680785768622547517359183003176407931588464429507382524432872838156014255536873296648575982035240032299586104589107739942207741860323747950926189128890615082062804014843621507412885183458808128755089088685529332308334902199468694852701174775493513647254714820794327695686823681297707803635877472729595844082847621275599905419993182001377192304548075357599445188532640979794506135418797933120011960102869480544947968904018328274445491265757141464804152198903525195327028675205834412297748549126186148149318322597833269816920487824282589600589367799370964297089257913687589637250623417118854669609589723139352711551495039607050442982070297695843612028937434265707688400538094820820974186168802030966082042010066183433314256393821279144727382156742313876707107446345883228267869741970618162983577008045036240901851054366313594936256889723023362571778844478625197921490395622927111660959799391385763331835471705822347500192726656849461378546265785019900270551283691016981181397825620383749876207087864602421181154678764303853977948901411430969843613889465092816989634162453113003943826888564948924869580427692727473751772746038038442973290564716679587360587487944793328756612135855200482723705554160810809202324343634738729898864928371035999198859296433912889273507986647252951892540058691497533374028762237199226703002322377852620652088457613559830289328931679017960080166917896127838351207416449302406469949618897105390742326848488553266920535857922097975730549976287010580071356025916804160294170730511242706423963807734557767637046911048744366530109423629687254254246668030783936714491784257239961981355447105769946766807853649412730269486215964030238946000355654885756627054762966696850786591390507863376284814530278936319563227151878085706823091468878576545171593836605672893457234016012364529027576171841621609099711998433880395287631948500627276653085681540689660734164903271144905737593965434908193117303768162480281109727356212910954517326105019702332367908189517505676443630401264488608352098743816565075642519056569958340638545444962723671852509039964395112663388865894279987565430967444509396265505938748359816825756961181627683279821100750076541695882069072658520426726773523719898300676130911016678848352445088313963501729285677332003039845572209532812541831282934320885325587176989559264498184414157449822102260946196245717134641089904261991705698187189351143958254707248325972708581488378406421078630875530751137835609805062398333243150264848206861333945605548714799318360104528211883084281959344635078649189566197286664352430515993658439163441523201518660784437921278461943826732589400675256632431139324265205340540049098918422692855319044175760777094599869343346792279319137583484025001981000822391652720276508746059835826422479793690953510721879035090783621194879516412324911114170528575888599114091020695810404301556558915677474644073801527126656924918600694871945001423470301679227149301174779614329315365898045267921111098990134151023634250520360502692887980493858070972300235358403072037246813667715632615206945457010174681931615569590437317890593655662478307090247190101022742650966567827407814775745702087273941114195583534292364169478141253428247323097279870213982980773467711350339333752592510054415732189714597500974523132872054506972966778989199162167405061569632553665686003391015251598484081121461232875265743979109171700686854360983163119200885669171233819934973724251463400873158714854418479561997978819835752477844625973561743822629037938409429473839303625140226223406056390437837478328787640278783180455430161526685968345544564353684786635939517582739266567867673143415483823581964051924333493439023154553647952342546353793742140613466745647903399366222759470490581483434072602159080749547298857153584940312929504786041383594910304607214996828930568975255928435345145263927412474092576441871570436330017424087062766976682941266777916710255829498980868168117782716813413132290831429509828401016639198777924291207842824791652845019109392216891341840029019755221613474748030263608681998322208282751955503133354851158103885383753703581715479525977044945276644611069120800631328058237824114157438752916203591656944183227658204694936954219932692414391295292952183736544657367063299300666805100811732457035510415303417104725344291861942703299683482868472354220892794769666074623700578715120354069374429383852702553102405869430645572550488679838886935364323940792124528621847868335893736856197748292987135104591144134871738386506237564950665544657821686830300804677846914397900854895971779229977418550459636402405203593423455946235516486310848365128488983139750079156985091081088705446561473253558029897181700700909980205819236853552233173552932676171405978191145996111538398763451992071940836559410827961032347097864207961407301144911754571750183713003933531977193408148254815253462753409382523605876803554185869125579406412021479155293547066025099990278169828989480343250635850542089326655673756442542222336630135561374194921119087162279930276003999171801995326962831079078996130087211297795619677333893070590678733308256836290371483195137113403323899531868191892519372962876947989430763194466723782928627342806009859971457283958321597728665794449861159571182313352807723526121983215682420165746461414154009003149619016918774834936918219585481752719560032069563773628071707179596132765851097907408288412241679855828281571965250364055059742357278502734125106579395778301929156504355834790375130816547434547517517119226773075302231844025723097249862738052685717726122027187177758161193979152602099959882967434229545358621381757957469260488649523548768800903788252326187229153133123774331261202164715559096315885545048960098446714279629899620383143540765116310343265096176982800440594644747020821207366213190957840779485654418135955869916235308189907165217301986405069978160378984013440768372046034293416415569113293300093199626875508590449581986813804870609227113298371356506857053401516553397506260055056772291882560413899898664646405782580987372323546414945182623816102176053007312732124293507390043220714988539475438382472699000730004147536315459201237419747437467135921829899353940115094952752324530618932509360196248500738262865973548861286476533772966397933088398742368498021089064866230460777001415324136516454777754451490372591939883129927913643541245653057928817072133961105916496002933989113398615356478300124543956289424687526392183785855640376765571435878806927098621142223054720287694227663606618042234004474023526277542668623055335850819543861545909905779993633200310708170352058824586161017960832554867463242588450097966937802600385243820690341198283259829718100472272125423422598903138868527895488793156551003475332325350164356857082981520713104558840767645046876530385676863627070487137318749627076865085604432370994944891753393227598736395603996244440057326617985252943041592235192346942360094614830875005092056895245725521819412909325346587936652366288574350024143096370714112664729320097934198624162569441244876147465923862406989727756955010015530546068286439516270272952732015609692206008509753278864079142799022893888258018156473092337076272504878065794514125573070144198232355917463880026828979132481971267185574106716521345667173854004422252546838395244497533590578130453119487222752436111976206780935348546202205416207690138692979538003847798076335123965981223103118188721629015934127198544354475589435319123302340327385589580245160901679000339872781727643963044321220455213128078720060836028655939035340401711727152894837131901659923836598106572421177214729319077988068732614708914752072550936175184256535190636110637455290470572771713551846203485075118045975965631794606521498590834533837874073606349201192311219909414627350835435298352008536804317892931502948805238371734308619537836991434992623338675449462298973349768972631250134861536024319011214801138667538719017699172317348992631893672744897453648609901326663743199740398828150012504607393372509225558216235649199023112543275129546665538433600997752836515618618424883807466809162335868871133661423032186180538098622119006358715580775292994943461556984230141334615283933299431944423346800571326011735684912058733922011727764971848836399457745150519884161274683008590989316860798146505220959822037222285740874334671925384903564149982388036018489661245960246476212197545752313427195364349477892416898344868730895359278348485390764925046619591290867847920998201025934547665924725345522452696983819398904450734594991641959932216054671155036066800974868666932692929360685628874545473863778638980886194954536415926108974880163232020057186660267459013813847284667105048124779023830416705702795289643117134102088480996491373918236659956203127419533816618656226013901696274380412004381335358315042649750235919901698048439842301346933907249904413938868545537293348224699622235047490160675493022659544802772514950416469028286441261465997795897590352506794621734280152692703619325697796916176122673797182724298168191543288298752838590653662835279392962734350953014944965551738951178991476065668329079008977670166238484042480471476341053627726753041923179036092140233446183445144474342336545509422140197045464310724611276147511666341853256397424256740821074441559373938122037150161552641930311753979184915434549302538114202706383839147063469272031585946955267561427174760115986634087850002711346437416866748102950120830250426248775124817715362146612431802588262213786494521801303871002555257071547067953793492616181087928406757875035423411978461787222712260174826891291877372850889921062766831925755211819805446332785435803268171382926199718500831899509110223711509683680386997101243512040874842176467153043368625090368613222758070197030742224557497706482055323922067384171299531213204669108250500854586100294878587062888266306381293987075847911969817968127178493719568079936737873103881164292454966774929253500618919417847339475160001561537253677227995283702344778176509862496981610090162967932230044996604278610034415516282944427981951878255714876132068513481197245951403482864776013380919925755815105663795144357912450786682771213296287482918932089286143318731361801088378598809348861424859901816400726445907596037335416837236050298106414544039156535689035735945186684650409885022347125309796227572143781735467201554519584480123732336439159426349047217759998781318778165470713047983014994767765721811688338230113882472013815682719071043365668730597705012270492984495210099337015277367822287435584087399620781458933078344152043917481040074449480705991425952327347325246027550602545730099499555885958691872708794098906642732082518825287702417528921032267543797184640445988881684008012507349084570700920530622109711669092967386359551181157880422581041539036196746943097454140095837059298556038812507822441793168132225397557450335793988794975897271892301375574249204399796612233715361670058407179758596667102668419430928557278559808619876502572991681153133397887996089193854856664871877565031741010523465986916035951310058116861822602812865063939767081458608092857394400573669112859533209161292551563763676276127469364708310985707003093447932320361589711033075407345819805158255940269856817182159781452763401706813459417691806682886077459798606354538929359978701763777376125231012793509027833400337297462295584979113122334153855862764669475925014849766675870532509735745362704251223022277379553175905848977035560104004163248712021821205096619844536288910178414654074440281688597127636369775755014294093969482329931984095494119464636318368138265586542412619989828588244227560453735433919193942892442370395827917467648853175094357178615126998524940784179144017070932500688645055064770568684301750825394681937165876874242806288685574225228173304953793800398025656969562220572310738706755609904584011824564723582998172164595325282931149858345988615470728827584277786692464141241090622509744798826445251777359096031290953779461835744399567287144417774623219405091303322387555246113631375692839953624834123925931598386333992069984374534388460250830695578458305928334252498713753704697017948057109412297310185524331683927384730942044245776227968510814357136743088816998575322136892058525775937430788093866671348335260032402960216330075734690708940324649794267885764995784383050300313453757625690218703675850565023396547608911021091168726808841395373532769599014832361886305334162647922845464540820431407624903518599384981352534499668517437892596814106570241828451315178169817177736858369452161296245618080107437626492900888865110734379262038641828430870227793882158041897911524197835607200610568158271648394184712995013841366776042993453709922854960523547743873863981518428160569426822942967257589328785519265843103560501898112326930974811233933451493254509112365711014375779461026775120058410835010860737520781614962327137885029744052645045218179921086913117788707720774430080707166311364827829834341835388215571689605617877994760071182489780507671572939648070004736042730016156945941745692118761356244463670338883020434170175185241831663720128434552215002418139417088940267167488189835626729247489193241378193018147328145003676706376641589173605467952256633653717086741751664284165097279200009640830232188104593853440800591500823531747946883772729653541996556360883769388188234611568875215550105508187394972529371145807266920997742358342387530347993479918662895146395000761792082013488332378987338716915325383185138274214193629551559614248904854725411691389982334357272782310917784578371187690462510533245498501555402437977610811347534725173509341916183099095216406214606139735400462145003717851438071135060551346350068361063878395440224421443209448607187315777340533298878632759181361896873429902638321383974660966880404767405984910340949331438154799045189454991764189735274513196015471463838574939598649439376440213942166664876582803843161123346290792676237218586945040039377238014420420833802311969545285405252533528376263371184632479909011137603315373851545962596991100797538035096687091131657345674165141506506058721425133848944865416033621341813499021437215321789228918203231227357959896840801091412665322654741887629833451530090318252517994139172676122511642452916039360835440795153149948415540681390964991414154106003880298113708787666670682489391911399689195742331634798659038298230891670294867313133535149557332607564867717227394945056761234282902279063423409414950116195979362413747763522792593678557962205498829716740229337938004747906756052609891221646135560677900035008927839708904180923849627117652849505351070849978729296036174135032404995320380221330360633945936219652777553186543727645433411222000795249117951573209531775669525654822650687183633909612822068763193115064098677944863152119127227359080399689678991737478297704097196936584793146686517777354404491717007970293078145646691474608563870145389792409689464957961093432343549005122509986647749883885179097354577420946529482638167649515450548847540469798600471883045382239911224691063968636013031607515617498505465484485588899303137874389492569457926720263551230760771471843107322603983392166950732874629457356842546323745059777483275845491514800709970203842137162282111434474137402603202215182271496890696665568351627132435073156293236236988678061067622741267059227072741465708370146316914889242754377970272095131019862744714780840756232137613543851010862265246371171574752099660764093280541614098679380461587055980680105841756940883479702345259283508865782777145923425272084346671373139008370932329355123862593096099085171153390110842075815673381822770798745829313801667675623565320662346704309548220371911316874043942903263468881279249208610898442368881593006595891220155515747552112235666829957383512429399569663697230961614120845646079436589448459664695519995294160067969720869913991063351326422849861041038390103801676507007646879375736083182191344753697507146126580974673998790562633473905474748822769239903842124083878791533812101574663633992085299041955775198241345894489255790396065010940034361946248035282910391378757198509215786471994756807957844885311524923861483222034672600756952730735133510921304180847504711476975826591758556819185120170291034803718433130313018960890026967246426697065487731321585822715851768719711459948906552300348320059131460602254958014887149299695128851185633807568259897248655834675621793618385285918428725414587717148066180690453777917610703323763094721358025343485684375820424185210180223887777820937640931495830448918065727860946498874738075339055809575260991735402505811150766588778273274320272238748151428131415099279896527329214429715528029416695523718290986797684112220269504353612314346802302932207481516407588009301145481467716776186049925655754844565275118251286289172337689798013164749902056654071841158405276625214417970679745296674711487691435895737224811409677787436923111534322060811707461415981573821630903784354716957958305967158700267913610035915314823658012402245464742289381039568420402216781917296371627189264285940951500195126341555772174003346732199419261174318528463299825827198251985635362586090750106528833989244174846216733957286529383750553962590502928648804371670096512727885065894419401550640694033871108215124488988417566689892673842101573089227445756164263268571960953630250921429728609152288419133812601999442463885155256345467828924077486947766479186661680410453247870336889003556989082787437335194874254369529039024475968004041946738513192590944892684659912892107653586561505930197239163110603993309285620734693230886129948693995478930557821933046222473643746276331371870977357323695001786421332344714702717614325533332021060481186129879984280290828862016675794724626720780425812739225910525800082630833020012297352245768860480213273922760432604237038466123209385282218036025674763586884353099001520807918257920927799180530523607106418675786617350184443175003350756198226214248999936020927431386110671112579183674085273072501811107642355314227316776766416405704964092669894040612422717440359260159184325834225681229215570787573959202898229191690630544308666716178347297940969509248145344224890894175055547349962234217416371972075425530553043244304264656463123589371447383704695822200190897870404447016763006659571000303720503798816459176260170799264715695207416038421955031425102410098087353346458641732123019583674336680852973607021784007714139444702454318330535150097800817630130121032862295751042252924687221909751411752172799896325414214445614881458735788537146757434118206385979161863642181320666083230239985809473689196288804947508292749017048629038772820901168331246908652604508746681008628008929461555457401112051888930346658412437774262379174382294210179161240406577079607752636657299770986865802541068787746599144413560411393745155349153109329173882136590010721161777954315760363075627509265451427943706905820228408808578928278643645734385510499893719255027951781402595584787148887311076580225310801670128441370136826916174962999128133210733429183467683240340807176578139633058123391667366400069616984119187864525304057613064140018501615814041718559851391719304682166209501396493781061119650956299926755694248149788230186598709408923297623710429547106617437484665688390757296108012840064296459754838019626049637106193755112566347405627118840657366003385495829449085080799343714811333740367184627841719147728247210323128519802535739095043898511266547844248784554774271828203185436721527125346384623090932722700373032736776417407763411898756351626873233350098883306428659151932004570227349903734067488179204167270462811450274739391101809466345895906730116023543170664059409958804816691900079982990938418825743599936486530916707316004506894027398110643690146598117173758174242345251931924320139636287870203805224425379869029951366078331824885502911674377072783641098239883411479064606776258735999121730759276774363528259700858201827821254734435961400047251896093364445972811416966111758023199501245898376600826565017842140256962358280748254828164637852181629092566039236145353797148993968751487055805825446253154319955142954252204951308277975822637024879803585687336424800559120050529246491958748373870164884582697882156180934042977792039065812784206046297342489160547007425829115099566394244366377767380860192859730808228578369702317388768604769280661021522573129447789170599011921759755717991634879476852066132165157474803925908845498186133415194560877985472897806511864549187090660933646454755752817919991749588257063060959613386010971989399130665044191487647958831628923890809349408877067461225291321694925937233164912379450192546008370652945749157202750153267159750633021590709867405710961227462663136947966811563665999181973923323433995574872948185334606186825926320203652390621590493596611995270305510641284991129606923212728195636882918278279680878914015830749491616604078388266573811250476597433481284637134731334042517120188308216781427504029255744344472711320793787552046571327413577135591284074308957769313192921894521287681940243949001293089970191152418911235307375690746844347928902419987925392165859303068227375664508292490505684874966748639387211747941780973915472858880611656857071509600379302244759278110055572443050998718505817306651917755987055450823114776549424179167913969154819214371807363548024627608974102605820106921729093124066561592239800277754121057361333217893579443900186702155716907629504333824651123443119567583403678730912559970779840906897848275749844327173482716346644190996712281185038113133414459773930122559927031512547026809624081548730123093095600846813014877314694867243417366252396666359636355348867798467632297180514372210899348232793236247427247175519618931938896344016851165224451537662737722088157997713017564701933030510087571009741664802506484151903470594188155793650231625357486970678101636675478891910929176600088634536866712772076978809751994865474953748566724086642868371460867367411842748987033857981321334211272116613419861192204412184454314542213282743460120684771815241154310759120027086713833023123083438216409427234308343345389085389709148476434203578583093768261356608200697037498584578181632260381999437256571834122964732244605036090971788848825010773722371529941222777086898545237790908002410014104994062861328152546925347545951360341864457342242087600034838714219237326438528255016015990658023256860326097113995207397955656144631337993904703701894853134160442518238855508288680367743245110041547904196260835302519747889897315044306451726920524149636522776385416430978708607626612243513842375886175855952620024666656392206507124560986097076252663905982181512909745214647365842964983629867616034253450813015749915550173627257110917382746543259037602824586633694708292846080154522243978232452445161949665330870704136749533098270051944332258111264186398106089055261601008642947406023938018493803298388679564343756297866775046130063876524282774152710762602155820704291201984349152426050600060349281907791153633533210879359280658017961135221432502507745638668817113191687848935622539888919058425213616388382958873618793463266801365659932665332385674530214954416393576899528782578997573632647121820975277356898863895552303968619695747820049182602988889310140725152389508485259316844820253006442103326235855429755467953386558459189976385281388126334098779770636157294746900883114268124327119556570411227189908539728100049902249258126503992293925118665699114382998988619752098778881305129589622401543834754412211734498316572063474346795066803615782083191779385945357499619503373297228828856472737219085754635146116610287694980569518310832706201649226274555216438453174018249222569745503031328289665400884674938421449159866207300405912507007766972611800628985744312155182646837191770748697134319740756790533372446385145392872014844096619786963712314869971390712385747091360827733188358745395858972549617344451349091946075468054228661052951703324313005812645615928519235566180859935516360758667004045925308457878850410901080026428507750855407212349523463315802778262927789421484949022880013733576869286411144351022745861482624632774455792233290602915610587167190859757592678673269065896997270043618308061111354341381899021800328803036999733910570704502488862835396270748980872253249815448901856285129568464523830893257117717351232589402696688851187936950425135949188589316837249153160135218050598546806964595909808944385394170704336092402872732125590403321557366429475529481440298842538698330005541987184661362063068196963835466522227529222675897536816162718572025097801230745706061274682732166049195568751369051524592711570669789311375527376287466878135064339826684556003723484960029237889967165457480482983053068960327525091156836527621323291620003946842506172111624855297789898117169840255781026133457164317395346418918464469418190235934180927757745875972240410400037908376439957047979900126558794086808939811284438169803573464093236192758783987648183080186844528638796006323579824657654385544011678800447169007416984905731132454220342272057299098915755795049210731176728049069851099207282636037834933012108578048064221515125363798512096693906832613211471776221864208634408283957696083668646459878163644339492739448068420818978055238433215442811673165239937462165177123501789440921529398082074447129141866944205336378461218314970819884283810886876666908130207372695254064991918392094080735442178539677811166249147515343364638469119328052405111788522719260388629017638226420068975133310318014969273553920809025901402106696353804165106784372026212237848388109396092065711649010021634163001035490948021311742547926174013271234084452565477985349038781050772938400117158785274761217389477389630657672304400405295659459968694953316431024864362674505940722106836650814481203915278846056042954466613489993882572897985166985326113984114701774660515893944590567752746152985039646354256947123422531447002377072165833951967590796316720759283239161631521433404216238513130243213634198278730087505707058038041270942397671710813780180663339564806094606251286295216750013728134650181988948937624786612830867729354045615524457251863168869031103190759480275578637421952099890565492375019950961699530700131764577302027897263648472339815896550327278715097419953436747600338123985855302200180265133694761564266859809734115072626111502933400728043744553283273114120926060896854268717075075652565581528143891557170073496194420193790001259140335056025575240789116773768557460813519151854765854405303351523331330591488676729273542838723729844575072376586142170074556312009629330600545709460635917423219028615895131549937214227204961421198586526225964870303964148925900725662813593789388028750270898552834366641323851196163861482475044372977485254757373955923656505873101628162295168156401034304318472582126303930447415229844137523341081064483997292798303271443907442606107497860593321335861022998867917263735815252027235475236678571398184659903783455460403647979242353916526274780838967181757137448498230355958819179737060651345329322460047229150062877318325821016800541458698187390155243433416605588699687741968406155749540695036623719206274995330751511279671252711888466984641879372657970030668746894118406506550318273076054755732865966751277425778515872253515774858175994133746755601430548454044991460453014879749777286684587842654833741095955674298789666776066891116495954676298706895654445638463486724158181331161402119217917655915253870821854280074521717983007225721876405526218276455112076063302527826764066707859004400582199331812654415816366739377128766964947254242566236249101648990642452250808170329039513272590643627438416711136373404198400569283338763790569325374056815939679025557951593813961325966302272914956300376201127287213353314134840859771645560589896814962433282272597814257852628439407011167010331937801280431292159233297137021367039119074831999795263641550164112126209408634162715611435388825078905587213495631097612867179588662027586648599862129402225084656734518934990541872811697916888921582223759261963540445520879468661451551126365440320460858469097184534314254209589889534276003542684593544018766170559867323774145553012901340834171781170321698127631472173199149272464735325266357526854956672564849362428065827728091870687731931284183142072201582538791305832730198933697878854042366394243338095523855447061187435001574381437068852951713211419059925632144215444431324581553825532474619161626465797857605780377297191748972847738629307965966798009022660990016495071514299305887632286348646027076587568191358119122980060914452880057579614206795066996967447504417552110237100518144884250558181268639458308935375061339349935567515686925136534549996823408998706285513470468613848109259253935899425387786145200410664879207200999776903901005711445384930753793965298183266238103058356495364978161521677214275390917999051416164580247201532819628511939318058859289969363090065568348810012416906152138142491438171858723568382266223073056451722132724760545914764402548148802122130383687814113534448835422317308023737499030686499692907177461778306092626797688856298466373395174658672462135136894617085005728960610564749809046975125888106872667243606712560751586257472584898377869850832271448868737518438779389905878048892690162031023073060722103317102386745620548645019875322246173224271344021506043879168767592744135882253624235898666528620584650092494085499219347168809134550754276546620420620441738287796486385896031944527099878827812924368090933557686504771181383610822808936981480879258247686881048843673014270297844203700006122353719032799153990949075877887674474723609860463888006678560433284532057989983992019171855235372373715263037596263774895397061913040157261320699711818352241641781400400579291437177645983846146912600521816548812246582164414071552353695285727756034718530563832046352133106491048288719981622188076742558422383044256504866697224862444326264479835562825920391266807638855411263963995727965451287880390631094958492311700842480078014493762504454072442078362333367235679665727639611314301491905975319630031070310023404202930563563369430861575197118972551405573745206892756206179664100709208483709820386785456855831931617884102472364314794739335036336229441241914834966962807078573359738640457748671623554735455197682359038360141775786530669094925560155147637261115801554504896471406701660221048829449712978048517924241876862659365654402830647888043039953130825448496628293258141609251340402596220245045953949221104395594505377496631152743237314429674004570465381784559565339443130870332485882801152313899425578103560792877132100960165855908243556807731546857313686657334623310250511173046435118248951075502150765929691096274449306218039509817492749488098033877674122660361144559789033278888377749019458063260378065195324894281080280841016588476935179510542075914580382643157520415810580516730763188511067391415571038988154194484603864014739673750976165348226688055391213845105881496780682501219494346022042209305132668598369724393321408354116668261733688106645089745769538881527766893184384912826004215926955263596596957891573116876773154107271057213521062187522255046421244928879446564254476772015089611043273321083732767655162343292775980312466440235950845751478276767076461229038231098846658721406259070729097119465393673597773653055358536288817399216534868925873781140099618683769816089379506935045218766420876435544566674433461442481608967015180658048700275691440116441391482995230228445587655482751782336174144442983706510144814512189487571387277069303145356820503058886556897150107205991579680130199973068310516715085586022854317442768078344427870552138351707900445315035362460651310164485966276428835914986542094379048883174505019285731120817145001170576323936435828193592192088616292080745721011309879586272095255638561848739282691531705952600610990609000498490621716099049420041139269613665422623169596269567954918413225539945183937658498155979330386555328667747470552156455258401382897275632205518209754856079226183502053676661238685507746311577670922725403134044778801430733032409996693607715245446331989977769216909220719954354844864511397687247868673838283160175896437057586648781070698708469803625043543539632021913290034026757638178952857502353011199849015042616966137154607131887877246669878940035298549037089190946773792116785625067373048683211917553725183666406735984970536035030954734628016897095810325393916731573427868895501006621348668787859580766862132399484047797457880524986432085601141725477724811254311057542881824272868893824331421687703108283542306421953342261140299932191538626275457985924920853918431419490021174886436444369433462101908784119990567110776488916944534662815809260858754864242997148520586661713313245909510711798701710455464199964589837366362688812258517350373696797237047604991199627958630487712787971113633565766279182587169560821368789856407976793447754531176996827345564789683690010916124261009194847236902676579906733579570306811379153397846028518047960047630434726905204382776043460779158721104981491638016210075490257122721335480543387931485937400457532169056100145135964254454355075436179735732878913324126463410531728829455625549380248162465215793656421929892203264036492767888075620154983163067887256913561887896399549995716758788545938544957732484576402791480729025915292913523876509671447262613586981032511011247962916212509225539692170473613659327888072697363958858509874166462814606463178466354170141994942103485490431009437279944343400503983187809470176115848684831206500943349794922619834029589857627894454597269595369346812105538280297030580864660349317041688649955473375251896940358971157222229217325656466921472696118962325852825835220745194040473339760441085039475112330300811214022979501779933050276048054038762887884453679329165593535604479425816808053162997335021825364973686544545696456320055321885913236809518092498118764653666715666953187046033844529801899797347535080343418693161628300547153386589766990711724547277812421311484952917609613229825152424390979634119909444809390202212267905256452802229959704423743534549518867124594677375350409015298788093076281010207091400230929421718975042207075287347582271642835992947783415315021807328215454578421387580614579532316700976371086023834015223263203282595651592784964366191125390251506974262468721740075736540778352396668098440574703506460775552137319365882394791400211842594103861804215381984055323315193606487131966323268636481813368087920508816876676079982517005862269648806669494661820309872284256861880714374626117715537931440408214374430190110248742956321312957479109585589328118447762291571673867824547828860636550581694195220865613924252988604072622536119357475689412605237968687844995945702624352857074188732091043170569855624504634972830575702178583708530109610045698737219087821028383550191154427025389403838317956684347632436914277581169577609281477155151197623301075096710848688482315901789267892001335625691437138117454532220521646514587176398214868933353528659922055519901667895710842925024682137710803291509979907394846497018041410718430877504596074803647338180621598668759683389351863812275466695598883908092046304993449387662033957308197392816047410094296936135713468865478661580716243516274842159226056530075244348936704662847224762025224029700440689581540614834903057430045291955908622274135921311458601676366655792626245864236739175256108608549371700619017110299216082271443746912868778908038055361732150056110437147062172430855714709864690533562483434922732102722166900128704548709641539500483313982835977475781097606522259575205814820984258865306700500054183874202591889710811122263088282627912018839593718021982935318975394209546254276186622114014261074469620834790363465718629925468002543200522320290456822556197546363950058909852655831299199383730969086317938630753105346369825396011670684549925558647801990811654041989326905555177669182589456504522179989345346254132228452707853276360584380096853706975653860148740394689988836491486504512140674258274785414868996798553458689621008433644003279848106410397135840431949138282435791618350074186579968884601299977585685451776396490687111789409379780213245723228918077179224012086777167070469253491469734330291606599552502305335432545348825227966874735890360574364840667281685631781236044161174009114586736025504066160653349586210078815387818092117371406336347364641767987648599025109656705213134648848888621568871378209317003336939498769991803833903677050478659928411307464658928310383138960112666697723243086041814513535914244655809156622361458915409095843218178779261307054722645640061671218773404874668203666303168775301696378130430477466030998044057164798946924012018807774368448657452364680923553240010148057600276031853482882679213955085267419404627619490734437441195164012692273732086952641451806037071392415538596784345964301631351904957453746836830099253158755277444220677756752013644846390282621371894948397880884579994917352580784196583460150577153564768055076533119981802555407312004147962793011210307363570475798644949018969036914030241163969051309028033134824885387780901248133703870318843750039785397525784231840658983216216197443802919893649085972277368092892001868004303646767786310628131059691169841476312550806640910943241233374844994734308975555475356335375880144042340983918214631929417935630378675456441592114784151095767915719142429970479728498083898101875633254700552969183663832502873677199239974094259357050173437039438760307746650053732838556033746845570289076103553227767828112101506281193304461490720470719915711164388101486829751811988395909752951937429714516711943999469728028226857565369448614441191958432487838742488474582287386560097273435473654508945463056593863774235099005054993866778799804815499983034016816837820756262146524058974438102932717633247859188456868134524733634908971669419903519892790707586266391786824131139113751076060885090903978566617327483550408989628978271570279910727786126603370251019225525729964593806518142857157716437216334127653708975269407539522168957458462580255885539553298578662407542616346044845369626515522210100635744420598927239599212902990081471464449492277980917581885455859098319517624405831997817696462956543940611039530593685593918486113965035814384022799649100843282205688020781899579066763346865887244900769063115708265169032938622364507144117458927451796349823682995294020479147821495444150970223346666362755844271398783709100395064642145280291513594006106729598553301651825018278539995131759896560197734421419970616588149450028834022879490996169792782193699347575191808800046307075197373417711719324411917901533504278533624816114687391987346751700531060201761899616150647528321331630445846064459204910761369507393466099421176028657967822064977120195365882988565628830895210668263543224495181586610972799966083479996473333584849888220426525400589856306414443275317141580872812544508837281522897914326054910423230538365968370478310332445904533253563868614570205903078439631663001535087953394884691023784467258636584600331652740194856360320535218668517922849925573807485713039425011525800965647244605281451475151668028645060883367822371670171433847422546809912481836193707239746016303824609353556307793456565187465412952327398981946466241847059280082892995039224120620007286493210236203393109567814367931484953733801645231236962553880075747008174285959429645774910481340560890081315038392351815052310019232923065427811704374439913725342788978695534427881315630882665738400330387546086523163970957952289680476941168208195101214092101011753769881493732089947017255209580698766526611338549321559802950358185140990849651443387680011369776521071085466434126847127709424974843636949719947025792130852812548761559174661969286572640349654733235090456572466732319132729217258774803776282904019831606143014252312946422174669426163081634923000588973273343300558862684363245684541598743223738787299750762747628002396159322701972474903024689415508874919771907486709724884431612105413283409473803833037165207545478037237827927350579156073610462056117025352406772119485244962793139407553810676865394442642296641394203352874664448065836989481603809366980111809284589420644910156153216658531104248506805546805962979638789998655810427265311829906724689859711689919529048367352182920334327800012533682114388958596867976727153689491397423954396366336102497189442146115549988188872826877567530473185528309279251696933441763999169878867922746972952820103650029470474662522636389392686253632766529861605815500170207056435291957594028457263824037066752055530091154633949966578824338993691538759646434412619518358987377790409368471222722403139989040041780740118715399483514822561494682071264001183896966750192118360787573569868902783698753605291482253090380241678224037972982443554565360656191571138047145931962295646336892586178177536327526559117454507850211195356480121501612809438436752221762412052695541383217953319009991290386951149651987869620527357283823217607655442384646628327910976068968017587206375373911521931088614035258108537945732391637140170389935891448600578542470904066531616443078194612209240456702698598815087268331940723509969679018451369168126309775579670104369406415303230536261651913998593482999819686834329112831783235905343225753626069361228448872084636226125542767842212914945788069499410761856009920129498056654345715039603017681033471020958050625052267172538137536679451242980380652704263521713557873585747007805732697206315673165991352318448142522126938201722262030053963564519272688282785865630769773773615469424272336122699930249896340999315301319569668257522082077411115239101463977880155479341283818036146004322923023869994556732660506910912734173632280377322225188754627891972450027103907916525487858809943195346874784932091564206812267529421606008978141744260817813457881995948473991875349630483656025485677780134048439174270400610253481468631222786827498635054700642237195812397233560360784631720240554318581174431659018275121438335574040694192688248060860006718536392333830833721540431844072540512257038327392672058311322804063423917364070151015003387916716109905734733433226719150189264582011460372728936879523130070175430561264395254537195598181133146216891103992803461816458945201641814969731052862315779748486537079153994396693134867001342595488910973503400948509869529366935652998642817278700864105021702736238503464511925781775345640034603175434334460557661138634430792718391694995341468190399669287163949721731528564144914861332740295665834798150112821394776127325274508376838924503300425595006144345294421446487454823342312976676962448931274528690932513098493224807716111577180034279432991612325204550155028705772375979238526902603645707744813031706551390671243463873944071052050457328135372212259036269312691212988893308478823778911325946261548507814295829084733801809343273240966088240307700287768733481556788329944170600767789634650048272201471085007479985416898524266519909245184422639824917131392771549659486747794998125693538643848276125052095108331414913873787370708902967587120181033150398600189627510222148992330632441232684338870537619101629268703296781320733455320451468476635868291366906488008366965893557704453723731602271052382086882839020648703761024156843758532007922850867606282648572840396216708861827252478969801164000416628380078095287139706108703873275885001568552736947775151716953188393107684072935102522934410371071926698778132619779330895322886287521141849440151883438466116136816048881649715701437841705877363148718110638393480460543316553915305012195987127379057760912467490101944511406302054145439637690068543155722002172345928200515695776081886727289915008064651086451187286026311118209505769131179541269034200643995228566208350551262025879408659106075572457664976601259120816928486477669173359742616325897074075532588625243360964579893258946484792531934774996020831294476784665117412004023291068823706582438066149316043409283940444688588556054505901710596542488297149749796591037323477279084384870598988677326997625525393978190050537654717383843672281893849634344627834035337075667537236389730321996585767695198287285455864391776853761311301817542164724955453266343658712008566385915962802380745613852482774145201200464974872385063127498478910822195781445188241172366365754193411388034250038896260265272361210832917135079345627416968029336334293604652300184469321052090232642704771896337468257075140257444391562708253376805474881465409875468417063432664872630973337874896964938374407173097274731232185297965633380400046550766029538964756062684332596768209807960131879200428651461658447589579564674744670327443106756043695190170811390011998215267522003600906012671097457172380713446854476586269743221270521240343566570853788333909797571013270683998843672050090654862529155986470374816480712003792997598810546817141134256170793472895386781677968127876825646271966565619199940539164375871069679461808990373238906704747827253626655266239775254260326555919848823977061989775131726381087704889956065219540555765011897563159383847233355133546866771821276797033888886514075864540851158868912087189934815546712838149207314248246754299225313475255402855131052346591474661131881466521940644989984342393677612638043941080801438787255509985238993792439828419589792077924814530426222648440479810000669072446570744700659589494414023875432027659591858538226031157848499590490116371717364356244060959033916041005306550495431449817810242618158349602261931834240433061255663580980843367956688250279970323727481158199637978109428137207320096416304250872229468016569820838886290874557655695435224403358746280784383229935428099032108551808051177129793662180220103361794201910961548892918451280266122121642299184617694399140641531193886192860378705193759566532221089543794068761565105133145334515925520210744712790319460042663181164977852416991894638615486815164648622900337337231390962950061694196243624077914849940284562479776867087849029245952247919808854594259463117534394683833141175579958585141984843590530153398264301815205479102698186750497698255433016649130508679961682108365818958049623755631402231316452071194482859511961782459657845284037494624323065183531450582741721083468722363230468005168096659206754409354268270086087401155162457179469874827790243551450817833237001894211176185922182579378305637431682709874801855473477054674112667733764257517483833196800525714510013531588372073282794114091489297070966905393224471414970989577709428991569598206543113339155075017210232823941618610126539986659442930271240693470128123194953239975602086689079201114356750522761928354640037062406416225036722767853155099756026236039190813421090599903513188953350203037874934216127148596505517980187933070635836002898587330468733156457925953865836039356581285938835342100630291901349316901741238367178284324038470022870673919353520378594242113818819124780349709151883792154419021417012154829532567474828851096929497303418616687815306136919138294921181129393774678084718610005380920129686183873426024454830615738573445459265151551290350714463741413752696078520117575693868489738355907409993681665396610660162739128887794969525273936858219982675262733390186817190001320923589981197901933324953668796509399594461417855150554662044647182796467136032421723566494697902045746357410978497316873438417415994275832573066146728736524778621369043733984813984999754349307751941211362306803688991009134887472094640448052523595828918300543984880780900348744639095602200074430060369610935527493997017625962316448706860160108155242110490194773666522650287282009435601506692148762283070787060911234139038331367489996864705249859868677742632264330603858977542184139055534276647787279521444432621062171876871538478377597596547332149233716250533498337381313434057798104329285367389168878248786897668243348384196373854597265384123386235790605736081035705687480670197755600075396258974344839528574725079932982240224657399721288387863873688706937981616340402426273181685787686956720014775028367673260793758926205238474937029974038086516585943028513265133992610377672358021207597487952485875147795231315372283457749769216827511007852956369258857894826046405327610551798916014341422387850365238964352620302003165962415433527809045155057866506992604925533941794661436787721172162536736055862488443802631638091500350454129185565107844669036436942727612585542331943313980684039844684870138883088427383387219617296226138914201749853059239706370679819007819260327830873207296913199550478854130240486983641745251208496238818601287149030281159588117246214958595219728719937243869681950645546894783578608852573019254152317260644024885665743781707422730099108233235723512944010138593106432907318887024153186766324696762935398037855375525642303004921897036150877178918329315803411315912523247121425426377262141191989510751566614180544920600923538006879293271846397711273464027874789023799792263817822195169393737732566972152591561247486940025196121400784300108746350856053106062685586854798309854345530074562287789380875144856907163257880421773639787728800948805790593990081549385008437540051869734546727431394508196278037121054827593505481630418691559772432624885474684413692610644310529561365866711659107417136840487651781036924388280272848502436010054412606535503255035764994838519392641368473772363870383582218744004689062503012449169884432214201966039677655940444454383639711830554278778006404899344494887609150676982502745152484415337394111570417608414836008898043631686112581482452690938860774613447765758979008467903798933365642139403968539814290884433716311312142433199462310126462995933744725531487769500466635870567338821087283230681160935216483673905581455733671786510425499618976165799267099173199323203875043210701172838367115745203462430351855292071779174941426682031566333741818942708883095344153519224669388791602023462745444421295813717151431932327730014446972803217848076370762126026898080608513409632622529222105858701249170104543293085237839665771957201030952749831419662242126309685321642792440930899847848772174582413775553339771570649035008847631738063495666416989425951121644050185924775303843738928404200264076869868107622760038034245208348524979706772591781956388069528234633845474482044040522007690517002544394119273731690763826473862721604294557062957308536768600803062472224243070586485760178037676185987310599358380087890584633425804254466009985267660942015470612094938056874496900020981458291436215081590377831112534109026434956690527112255985800788658828871543608362894751143468990292140327304498730518826273082657336361806642381966292635468102660522576118668301523513365755148840444548327525571965803239920625628846631955417367016179219674786330105297826222872673262265926767220314508798229924928755465309898906034134055373136876550086185982878239021575039474147838040560888930643018587168575716348756127229822014511688557913612993626976574010719560112930575795169346698258434479764101200559304525591559327243233281431152066790476418613401820752363725001076343049892170380018569482778759284858034267057495868006536706430654602749051409442657323205940864466868332645177604650776740679762872460437105636261742297257256320682234879496218669931221267990097790119704416735559258585889177509797839361771627460756453425591953562548878371537357519403466433623811007742207130575552556559585649635739636547863646838622039131660185087716362332659759792360924638250562663539981528238566674524708504122384882319948229513747690256758538106143714257541723800397960565753750450424291535729235732338356465567689719462332525179305358563594765752148560855603519506941752737600886578189954512928102253453152678357328026192674776001224401474604245153066053339752495941225552513531222091789789293644960047962642001730501354434616396074595504512723429540157447156860912770254577613113475293659821580839544098801862804643359125817073051035161199256501353719018662089107700189720311903396370469994477189479282848413419782562296468549663422025485074944122065028688433771782715464381250987016337588342765489995888928965384347585978758250328902559441128952468604343472420682844281788515351724236120673995209057071231851282476967364470176437706697709658014516750555309700130931310515369155238271441111846967847382004463244272626852261283518954780826860610749292555189493439594483675127802688980021255942084145503360332385394316951235503452522073434809879549339978134402712969342705838226284395645049475720356737544527142154889386511719337453358526961243392857285715813078752459378897209583849272652993536718377508017779324756185331343053762058367740201171514799437904240907545135479077759611205655209241213579577941306577959293602401344776173258067904407235029486391241533855012229852903066562261391722263428325168611587904992433669919434141799420038580908797749279654308996002533039416017210852451407167631903784378177373661647959352742854901486963391766341522094738564570194581835983424612081638387277716579481978408513676241268706431305212704157532142503114957394989007316032299096743755530859666743879876161013273187984816570208815479703085719172515098062947844722341844510127395248307838939548056964557615241205233872036014938408242783341314991314130214448077944241870957537161039846143927586562985932165484018040901731005372071360825269702332723156340106890068726174734097942682149262246956202262982250333163342663808904838019765505811617803208099443346311007091345310325358784751378800471377896485676995777494993233677794217313726868789299328680699873122024045047465258580726117848664064789370327836880654627161599460344668120729154534903269812837667348550845564718634433712063575111207463772399362499997492798710057570798051822522569567457446033062636000450030396095867732994805659374374194059419855918146919565430671883149831873183174004849194857659775807232262972900222305411522690500516040897218629120133647572717862229870224134381902678550379775785734598766339059330575327247472334217212046433651877262780609250373476606440293718570623190216251951981584060965506088253237142665527401331277392938381181477217015879521131947730506913200519738654285615657882724180899538938351365185630723822003962078688474713429859767744160581527007411671757364467676196269211761720467922940060941713394672888519473861578320208797619405581501882513005932865157140888575867963507675216159153681095395816829071487163489637348148490669583104613828838332443769322266699347098121199897499860194360961230651748692715832747929543082705762136643151052140008902707479549779840573634974302970487945337628971674388967549409272034776249624129690718678402971927515440601760878919197345409265959402546875543124899360469727173450135895260216830250606233087921063792331984594090254409502598635457383528708813769487187924273815670204637130274757048095950810106484768551118231430181539392937343162321390077400798106681611527731660206882047464371681403094304844036903652048641429906870968485673994843066695542166713236587412194429927519951148199580463410944126421159477505888198451434557234744732737671932054889498637311994818634268791449917135975010095889651063969982323961366967983120348517332081101841665196233916440528816187062854190227392655946502698939992238501111938738952398373136092702911808948173329238993373113128223981532876650477793501800988810610517426732771496964830287544799902618703321569580498373158276930086078144346777158923417357095925218005810692794508522299612086289863797726172856767026975991688303421418033158129575891837449700527594980469359571709882334978013579862908409030402256970496084973844833160769449174693201515742558684460905101809704202675259716357664900202242658438343760791232571788351980948977198607085949619652686436256984145347917579292904287730762618900392359933697522341298133314867632369659521385080549567241974904481417732286021305055174712999883387822584493005174870287184784184810862756706394230307830039971490679851803565636222797787165816442209139170930927113483270851092445756420383205560704538238887664458755330850184604973167840561244472623456387051240034620980948879731937655454942178443173835840149536948868517663530901543924298209852221066036731846986183161280941478783316719908434664680216855520010488080284748028874391409929271372282398945585051967951149789629751642330558627055069884515200546855811355796163600343443260145197555494960427157807460077787479471167063996939078164387673192362113994366374545770196067711762834211644503263638662354866269586543167031783241809714659040482687347795505929830164879589500935816490659630965248229921697149248973891299184043486552866743784786594949779152345033905912208276928185854762036437850520458409681556166659054689658961168009740726987498159259797024038431850962363978673410866509214530717942076517174986892832467843516153252203331121254169956817940797499502745362384583734784899091312353744357582950770445231046567943301474337078343090796194794920839792518645548844524943141083866208126100911793886786287570310608296622395648463693626551541830260613179055917341758520305699327700818230947376647535780800244825049093342247520643251610484374607137062414598076945415713008868149543442320867441890274954055299190095697553170290539165755897796732016323891346212885317460424555306507686178028694096179856246896149650972965820111860601393195284439064038658362992196225085484227998650895672313213019583258507973335813624290300016412351253466870131920723622088060495261243244512177914514801566137177561289678673726570982146938354672453310227969961355978593845594012831683426814843589651818962365119990022860892760736909768233931764124984552180907973546070115203206599386621090775577280154265734060194449768033120642494012793129190782035830212213172811268926585913245131043294348592107795058887355487056899844358204823774227348521756230973003354689711492462058394696426777143793699949407746666444324443254009396526217105568185297401192978332887502249302126360911388468860679910643724592886204173159769874570586934990884379547011656896430025699028525463265367740609624055633799207722205728530947136388419096848176002166705456521486882506812360123148472972025555006601859868914832192597436128350093836804759414575241457640556542554549208345971596252685790316795004212128766481000350459568526417120177113677872218688181288911795937580456160014351278810125984465558825422024857987209971512446802281576311578605229292396637792287491695704453577464482455745456739933924427310947614499414849973809009126877835143654365116022130828436661666685726176277061337482996308807982211668835136454770593587189765985696036651663805574526739264419662561618462993298508305561486799916508156798391385572786267457028591241080284785517600082096604112239894718885903844442886719634827800149587040376779335637787760321163154772345091996040876510658746224386954420078648525117941692805292702507064336226927315538180236268519091530757079034032878661882283836498253362195046663821588799126652251377161119908992561684150567500800589014642242160258925948333418903001268997121410285454247507999256713293460777658453684824202136603915878438224253592911005192219482523582734278030982873444219970901730253642463129542393486059424619099892867134691329595390613465209490599515149376638935978601753063257782760297684618717671985844012689485603495793645695394173084890058851403915623776801921827992445365649433417559619511347594736739058035746300897130807935581472526006235630576585159451694465665562095010729514657322258840803360162464603417410262014122674061231177245051616262531924643832438303263060555548252319273528182235875786098318294356839406100536482793194743487595637417348721064621665067317447529752082949104742680996716758640489818038699520709445758601211850702371665534793025841604468878604173279126108978588412525807216482940457443270039104930718089255515315575695497464748818407710194625924199284678481141312138712239579747305669640317664354597230557212793925681912824438379589053683419040220503363472455359881999884395174617151404654319566796858697160768523507026532087317824122245803177376058778333112906231806651469589474238940053293186311617487824775484219889031045064774849242325126750221134278059388750062322226659701726083630348144461576173820180225030721785709696108365388007836992689003688351208560139396122311391578858984966096316638885456796327511618391141457444859847351391727576640292847045106255959555636286944953064738160556728771759000665212032304083898276760460238527749255156401315475740864051633280568306619984065873901726456793384287038531932571953942580531310778957829728158889504620399582246007234695601235676774332538913266877043061203461778062841105130500786996790772920929415365800059417364452134417150129670130072405984127485330380252473433089974610107991107407417222121830047943530898788827436040207890775491035839228516813124817661159343808152805148455776798019418538397652880388577172369592761014837659039626889315517452712114895863500356063575443926815882550744155873992996319882133813919606354119056414944870816268788582378501368823577305458097829635637321082150812479692433196659575612863897523323032926158976838923662333409316177821006760914049398458150931929424039261138846140724879671956307605302644722567669071393103223070542266933203793659555121974623801942277061285734745354221077896812124367869840418064379209022361470833201177522828925950893400588952772011426481544261536824591905762968319265132849468429903718939370703944451710641239121281354529180961018474706160553642900796463869594200924358753725015871383128329882476313950432403709502020074783333899676124426905782331293706118943525455131374500937459726758627792995176116496849189764126597513114262663139839885690482011868175487934836509015090459185025511006956393055914585033015187738629100918378810101350014453605296191751664508456113222743312879077845654989959103038151741493133636898273266596695112065679624018307865918883266490624544457165026543370750537153592168454913176073182132767318022751430048984814072004199862458546778545015396452285490643387991933853469064037747969000638853922855587873322456096649491109307156656498660677413928133273816108860810823072682638726375927899664990221784873330062449731586785417705476907180767169430269991045595535117190651508985610658229859645427541168910443868586313907564294257136464745084711180319620414022760727010559572037595792228960322955397106127947889377708646907408957514798102410462566292006956929969404253776838195261900302375430185816855795685042557053099444428350185810622554732606695009612390216989275218968327427617489934125809190611696609730306504314099022091314431058067513274079923271042613938525866160890300116432818861203984236254562222217867468150734218327454040974169971675501635315398121210220450340667887979749742708149149268799672995696875479092282957168294766661234659156421309088741662972053287143030666565069219783471332826847923744157017740043578402524700200525493020048833810595263047172691182291296842036228937707526827993956628706314548059645525440867201888680879081590447268855662345807915249854947978274125089787365745139857184693191539796321761037927630536107712431059987950461601657262037813202248141285061414228157986321174192793513206073440431928958676425818689330315806099632408882786991066292165476471520626151713578494953906135672166046588805557824813371617819084000214847058649509890257584440282310561944393138288008574752011222060299035301640873216995796414002140605169516881534014715223353253560741527913504874555579260000133849360976415520484082878494325854707511949632720796088365008563857609140304791490905049202125008490837184824528005489902584036321597680699656538631132861338668964929853431664717961773957961072117314541479816312196302692871531362457396411653722162774167363997689323808648488319165227898835442802339547923984980813872508040533591612359612592577410784402552605366205923647408926677169434189277354354662879899310708549042452514156116200400810468006752440425020396485774403987145660315270321923224617050732765853552946391317366641681155493177857010712374706477774292589262822141683447544103237215855724834587784502154447880979854819085119084605088073661311221966005755052418581713389359819429777859371423554038094612509476994811855313871066405712929618616114223305026744257753191393588730707320105743806368961431306145303125442817383928941826185841101842367486912121965377880046015993667476423422078824810179029205094893638045778678781760953058800908275882998583482318111172888622820955847950944121637671485699918595127080077994397351542279679307859933683281248852353759065416681287907159985979849350201739712100506178594654710588942989368681523657146780673531085017121663796036513329010811391124631482189985805502810517647076862831461652030433296640890475147051425809480111708518950684326484439599074279861861336811487214613364242788087989078484816721212819151108202434030829374978304046055055123599726276155197666848656799777480958094509589760436348569427475204250305554688253656614357845168068885764542206726483621252102298580518840648563332670222444397121495378855899592725644109582998977081588029156254481059280168516494663275652601393757522758662154911411707481582807610242770903176657222399933629376363209691023180866164519773995810772160644665652306522552433504131319717572609662014220015052538765368844457533938497812358129730572879994561051401188305491301952296363610318230012501964612478113641565103588826521305758504816229783388677650655215992479185753539237874336607877027263728915934586268844398119470062387464899244272753744792205250664467994314010073060390436809788388322055767682610496562525425542184291675178406960204618433923816332204675866624517255113563088269263315789878843434045535964543152875204516829840420154691753355386086120375363924422650566098716253966413173193676332881310319796087694269673102209676119366359034945883674001140794862744868067756608496246624263528548086723828363976277336119534873814330606083468536259417134027095006574812208976519788756410174814401796745024253160592786353184627323720548775069516844970596132126195705054898637811183991173100339592484778712390831501981276036808051972540899866838132026124087952412484909439032875157488712183476420671148384260593359493283005938498507510160345539263394266088066994994230887475777696257304331140796835707643437782376032622613023351849440618998976685382565077969316840715151204416608841930987299085961362498657408230503649466823153656058439009965394122409398417013917064621144527196579561542044078173519735658123822801855291905159031289465564339342612865613996163231227823346003153459052713409470110921158826697254360499625680657946744471927120648517384946755428267446806758825540731839424424509176516086665881299519132227137273692805261345274507974056720816600140746354652664729559156920688228265809734510382196293875883408731453419606901579002772010557198665072454789898824921802442975014329312413831605321304372416153953779929325991464860517166103504585620085743551635387357743305960617427558707091302312378294133690444519208296620119466207937030316935137159937899297757287748079109042322132705093902660380189307277474101105278868640362971269212735311346555409939025563116182717479066422014329690633149863530782889283045826234134638447865386459867882621734453153209537552495478367618609772903083112353634764319348005146438206998623107947966721383689791760070555838864116762424478628861498359656240181218736034030327721775578674250778476914786378811085833791676458243786934847503808825968081845630415146477416539083039817791708314783457675371276524404905545697126965407309098258073190449922341187918129832057087409711990187216077459246530645725662965795026471688015892048462609326321178571452184190223368786550370017923143786466690718102789288474202380890075511371191104959558676402667378357860896279906665823008806865687480129128970039861748161704285905568827077411140004702939144827184179700872264126621521183978680528889450797870565730347283780235264419881684622131561703907660993051370780186366918021423367801822447287320574429608681418418038622674359915031498211875957850389287871632196677175355212532354303623456639378408608708563166004617637042537903484226391781886998323240794635285681742506867633199647211585489953851448204155100404468862870906354629306565083926318428450748859834841750761878548993303347306195384322738896925062000417492674984315484092238900127644180488073025645922836024856531181131844765889572216428724721705593054508092294143284719724681752584927941194797021682059790078044596453144470546368738912858665074911472792963097027005266417908115574861146028435513033039763734130235274145259095163650599358308294641682953771996508037055611428502756387007744835429465124018486539008345324023779789338998191448498526694292290790817553410007373693564341499259949355636176346214457152189432575748785041991502792182445468564036716619953372365272568257334549977164011763582477875983189766207201387688345005400313923384126468980392627942320612332978846084482116520561324714959362077375963353454816673337628761087970637216850582031055827007607282982235780782739247517410009983007336986527911545762197077905687268980512194345596817007707320258171424621236059146083578780840295887248837027919832862656603617195086462297349467653410546098806092535539666168324809222143119686729447051187334363448223031597401824676599504780986743525283403909510059779362070674055537192593719382647823122959088555414139929835993474977822252207177528690448118644412526057880526588474824376435311372476116319610486305659201730871601081022704991730848823937879007208568112739875418030971282952331711669554096501015121610731263741158553260584232788408195920241689872817229578848165173852009114752040694539910868188533647688005561151133995997968136941123253924742491510865005790074778021527251677279542069896055484191160408483771351863653922878032612995935122677784326958403747125198514857489785358072614863989047395537098395456118349567548875782289621483689144378700068596568789630678650446581023619447711249478517130888231354959838844395745911171176041775743988949267580975627815698390366839432645476565905424257856867942482339376589444110498823285171565835714205794534763867651263189974517814632886082473876670921857271083418863052253464298157052900159137279783568104691009578936739389685626576715253435483824693075697454227574948294289809392187596092113876383308839400288738430383891376595855443192544912347196394506538663320646702004321342287527615264961268455328013626382194250545766262536458019056958062518872664338424444889166911650064523258787735773443459360873626995432884242694819282593002386961616366715089394582048067048962152664662677081463089374022101792899348908738881501852638423090431022259556023601805938417999601038453225075812194608734627564633741190670332835128330560106772335654016016205207408412953708648782237151518594027388775392461393034262823735850817873303710249440151550655688430458886675919399437833054347152947689502656988424011405986065300021629558835662660464897515132455363417399357380063036697457900731164392949998871631036378764071844146901593252506572139555089184007020405331590555601627008605258512942004725884890403465568128545893231374913317920855249348078995137668384292170550371136121321954651741110404347405166265406612203330973899760427162365569707161095550855717688907325154733063310725429919549848670352771638079637936675229902781279995820718218548524476400718755321478083542701559296273997519079783330533197515539974161483337027021973475072369241393978560997336118805746895460633245217449932006901542445525487437835485380148341794323564031932521914138719532576518268503493623833678096774085025410447001066896717855741463750106077567841487633608232379321257758051560020899038192916340895780317881675485772934830235748745009095548250522517472238617670658445675397797276890530974802818606641317951431473020824265157082573305814719734241684501121853834747333238396675307888813162669650723078467726712491540456510333525426963354822579771221113206864457789165822468420584215548081222313687536067864771341241216614446418570408700016600370778653401402150064999511262087771155084753519779307033887451545261870757287262495307859914067575406754109243962628357181261205775268401091764623340950244137640085988503360037861467302611359840848922943608703004537928524327760632369152425568949773403827708209188610089293977306005494600199890422658473651925927088899412005870572812017888675680455934108565611389253641259606013253092595954413994965124480992896542839118528359048132867253515636003214814752845758528728171084255898863309253699317083109444666803798988741050740252348295839256948765168006541038516822662193296891690063069348140606131009037910855253846540162272489897140849788511465281654356411605805331030127338897740326474815346577593243950168596805799624642860756651724754011161784484664673407892165904545475407914430807536153571606112512831525180832158744092349430437910632313896490063473802457318057985422600794643353297372530558891631759517436271913587895267956599901373132704855803896332396166112340726815164167507099939756583500299017656062069729861556193910673404760743820544816615587465641008278178364099987225807773506165938474433677144392882631128199500396613441723725866853561531977361504553665956398626108090046228433040847019878162425017533353196714285347458440760502192162270856961200158272562552928192183289023285686960072673159966801041293681022604021219935930742430686543361222297476080636550196758263895236050208837015390725562097157073139712462028937807759840288226795644487367485358946959932985350265934048799518192810705667432735615817559196662773807940571959825944059746966471848896733857865498794959605589895634450132272761782471634452703718713920623665965975903379040572054989641162073295390641895602527749687755188009478921196512116818456182303814347018427746570675381356144209043422058891470937632654732587988664300377736319715547786087758950216364156941723733554848528120290077000770282736480020380858500678199638294127263430729873200538246554397450578914295876976294818365395999034322704724489072698791030894836854200078342885590752596343338121339562000152644140276743394810524517456493763605511189976248531278187484709063995938899026393906268990687840568576512672498425938127602923506586190082320975495232644925350962020337261733148182536076087205577804962847081783450459366301201013363750916925635121257819803411220292694726853479085832861903946102942608010012928312844820780836800787167712070441042845650827515948674107200994629883898782913473333123705009632556918087156107744697872128394126649351543307009455427978579535053353341776103083051549460321522840783907668040027880157289158649846650990169309099548860299927810257594108138439986090107564376266041850643957387023671860980446393223678034268466144876322240641094162748046574590113957177041493565145484825926746684114376703545282444866470342551794175526529833769835944465837375773622890776256314909806970024458337654690526156661456266185615531548481555132773283225701638177619511414715436024028002699728995774703225270711748356337230234152556690310100654974599493382847951560938111587449878322074672452478331197120391816691825860628532192829736957802525513361467928772689147732191593197847440552350574865036703178809995656087237182523789896068069475579223667012832216274838535897916047580238749049576558369655472206640053672772407044313336103648274207407029425067328106461831623708034453046627590502879925813819610446560118364273069850086094453399666155301415064748921736186793566302136130475248080918054790211527603266291637463812476548548516079419113396676486855608125347245275864143605536212310357032725745151515049094836899276021642963466622603329785162984554245034854504607932942441424615058560331658600577165255229940638695664330835574980515942026998065441425293636364336821319165314735565471734663023016932791903618341037150643785738579662447287308201599208602913750389227164753764531223233611184583918110548497028885194637372235750756158782651095555453516871483008771755230960305422005152660732174429584498038808314489931888639232888912467233834355959765752295425543562426089742992021040295871250913244319416681646840025282888589802144073470650619897158682090006734064603403322698209811275888096978680167491386796891637848335977993653082870679294791033228493709306938247032146333533540247501452574161614871320168695614517370927955264066025196927738401481657667199240983293682852466378986997529521835013498012132749921252034042450156552607862972265397301629991243679189291996093869388018544686548706951762124988983072646840194023968664022286661664209719337259666516373876767543216455579588855231571924425424883175649141781052369930621829196214404374614609190842292601603192136236908582317547013342992016738141506751822219372884479533065452650150047561916133287492311291975402682904908326357138139818491819777933495726274130109158893721926662200833255861714708071723762749407439288089169793934523639009433658825714937179457295877707364854013642884406409842245710784632992099955356872988719308566979328103832164344996309246381852371749804834285523340266981586161640487244234438575645379166476465575623543380265033908393161559148849443149754112195607502771259174749980666275841774456513398862203161354076428387267056786536241707118124656338278573509717179953241113465813008731020139598244636066628883802421150650981125747775211258994075435247036208511648811364664199260106641332756522771545917444265086735239706583378102724832583650846379208540402240848176450301958056791171961663777032689515887218225346901663594000716454143722172262000708154529713165696261504653128741846617813123231620234235760475652199945244570471103857736635285688366619745417434198587984864348262686292160658762723104026220603281591851402255960623608157144379461072050042458832899692744263108707040415863701524825665671420645420887760787528327286641098977162273049961194332702782347664976121504823456269008807503349668914071028566011653746257301651935524428621435480829228214782767651892093092588450245643655102204591094629142783523445230504487470957167973636018393263176921210720595176567942727149972814364695091567474200113435151190243986740007189397877277251026674071159506581627120325285430491555626753072085261443808519712223186517231665927467844418567338900618692072048870777159234652855406156191708919939127464669521776280271025816556225330003819899752323000495411525544938504748223265737432673307556308447524432968840197549941300862617616303579007282210713668865051840057079093266946527596978836093025822423064550089990822501995493199198776705671155209921940739302891629765924619981327811241918702881373945904255542420636436054910025636621119985702374517183040184475038135436421633839142546078567485597943075516466632429832308929962404661577982460632369014303478160340978622232436890474284638796719769827937388375867811906756053465971700065154437865759229184465081724916101680387532103027690442913745305762876721164135166522670913789923027787563573068873467336745376497330622003564394898817259313214779126522297948436227143176516103674232840855370855761749024644795719643663028830523803133688454659783352271435014800520642510023367871287882325082583985644699944845959367085912720667431987668605252760198663539212591323723090426517746882018586836758185609671230106446527114564659757749115815376146966385495424074537868378479309557755281228765845796433915685335933873957473349096645138366051659516604377046408053841499319299307638190611177326364169783526747341845695622208364130461275086322032299610589686653010216146340131233172985984276307557395946115651404636584163293794321635651783706540230054854295714447452937223754054262904221061853044251065004099907319615761376128940642931073239649080656650826182403047433160709942973176016343936729591162143187217016161863898560574357653854654349951071399673730571005692789623732889230476387038844918350043145605158662780449965274935542946834627139947001420550613847767701854174369868837296965265918223633071917668340838584994344666816427311338900194916019669625364060476315011086363627388106834001351820109257975469792184111694734985765560769631807574078604837369268586178421126173427785241711731049509125539574327727013562302294137646419349737531267698926914875733274484716904687350729031995569860925817053234424212733731066028829457785503185415410469171185100245834083601305456748943318950727565725016957720986604252377343546323411646587860947075185436448974381079008328678097239608652147301254842040042995048109964710976065018175095050279281504018846222025052793425609389299833239727813614667242487296078208004077448961539704220888901513911742294808326353677619677235782684717592146270338748108022768061309790780754243804924387598133874289570532744118935346781558523748811280187092074168082445232689349305745322453034630245806479453122628930345371124504997030307933184539051426879614749612308613986805816095155728973292343088858211646446741961780525627888146530879618698742501650424351214698604681802227232919097512629780962647511608260001591952489228047305432805995561473570114230649903322074627302280914043182994888959580616068105700796321685452467956174387339405968729499900748064853450253602586336369707372772015104717671031746361336289134930283947731804501471177595655321812112248883550227734999557444437391252370257846278613826218712661888359673996647803535168169306056663353300349353393257294310681942345218473597359295399124701498218222606329334513354153386099019629534654638898106946511949064833000814448094558440510891428370919784813720323080208314523110488482196285042265500942624965981743959352699861817548039348383885901083607891705052125182123769645019387232800300162612956378414005660227590291396213353119391719347709472049721654246074979778939257397151654690173523275065395770722326749970909748543852608168189032087475076073891866661977601027183896229025333186154267637482822940986582331768229073619742738618891932999591758284509985169672631081753425237459653301460725724480502801414761067756281710654015459325138883102970223036459692890916611176330675431247719436909091139809347246618079599063129415778813786792689155980775273774109688451135666133003902505714504165107424909919494407532016103082492678542861062782262000726564987533298429718183113995727043159874621491131644866362396444382012206426315575540789179944609025146383136036553933020995616382398528242958353692690920302316098386927555671143872387407013454939503819421435285229393134184534682725411096499514502647715865895372671133878119218956695553460481622239237995039672081328285493728857044684382979873839691486651121566796699197541745687410344509628815289722083720543976879326789534096044475708394807480754362075950440024387556713640270714923867394195632747779596805933069393405554251659481514129117723978746218572296317847802914394272318573585649511893119244140045285405785342608820537297381363098540739915840137237387041569276001856721691560841436837603719310805066875299906665595731929108470734743514720186296820794319975125534784043560099567191066318427396296632130796379688174626427318404406485394282766681231297230113168164869249795422833635359867793919293152288400702275661532240717944634853772858191845067283004891976115565762742095292745913555397152842474642202862294305578729331321275292959371202433635310675038692364790852534271684662132997100391046672231288764459636819277482940014620024984858279430995775319932847871436174030217640464506891073358338895232221603136729059571933473739062356602166295062180419390576559517862768231775415279715142120686032964555497885778423186514020526688339599317448038670219466929802741898692534500631335285179219588523709095827044014772477797939486215796567246841321900834721846066585484757231572305433484059596930931048686766200990968197485807900604684496947446288625762462185152745876166091020061102440112985344591139271378245431560486618259029732232463869616696419597175679117140867175216249462660294069669881692569710604610426592595985523245815156282443436473728210439350410214152268618038840273513490207550335239661716518589235882342947097894360752260797604511207354041601616276352708587398137739921480989826995635780986746664722609484717499769954241176290667017925783439335923121772849843678250668163925398865182509504779336203818745512488056419499252086363682250171675866582530715026482480480960375811062929421858477543780981504301933249992400308934955963779033442087529435261866433203610527229091659926600415790240824956190869277168498998145432448814763095523880027825013762276263939780088948958135718503680037610945302366766015504243937040027458541413092803766338688271380050641414117666739894913559512203584865652808074821440470417588356633860818874029228591321706985081935963155028170588725254184197142887087661297139895663829247593751114564189225623469042022835049940664877204469125678392983998927648567940290728202457119874510343748843703378452798078127891945284334334281214812497916795140665343645582953844693041290536833902442435142127217363735846143204999489785148581998772974453251438492222694160830160450608981912468982655530829377456809624848473432948024422323342876496196875100789161590335154172201687588527308989959974348943992151514282245578058014327856760806601862693132857339801376784216149683266385420817735191342423958004523623603282689246025502334609030565603172344154826158621272355501045826186616518952032079369680814144345826213186517321600684258762617442865472394401871596904401819742052317848593745201186094953005900533505054649126851347213375252808429632874639080787421657104753994494489147416553787356641633899420875103384810524603892830184473312634107730473494046262386381520509617120097224261004061360516375866578766573844985071431642716291189396964402808123950202445962540804684166791635110336062801067657965360943647543472708817505260487857340080565159189775125086810973938024499050316414644077084410082959560261068888509609891644990213394696161230899639584589016789113637740981347924211478270498544050877544836558762282203327305482237328718465497985057502423594043248938907561908557299704325224091693548085716680064081981466847366025697476802648452784131734868917240582578785896241080853599386040802640754499769580344575310260082442646753148996370863736406114595558194922150649038093197683690946826036521506544127106165391526112357683058635027025601789122950330192232691521916448671140171928755890930899022948892149185064062857881932153794696184576334215560223354752931850669418656371652109202155761904179229040515633594468123258306172584625717951444716099864009799789954587297495979817507827490662416552938696335827174932054613120205460452103829793305889954610962927264174172630743789824491064959553742793361666043467771992462893273394900557185122714974471644379771195127850398035538038263113013602011433432271682088215707443278060138405809583999050273645353425715402035425020251152739095784338033852476648972377569547385090059163028907000295105367802479108676075075198210705384622416827943920430749579531859150958423107368484925389152885964795720720723225964661470874502505268162344696004884926525971655813929843795341069881340721452473212471808586545979979422845100775098738298194807147955799250492155164708088398880937449074517014858744698477766533856541388076240083187003025733138031135726509085731458573224808355911649442572992129380191287044367835178606167937785267620053716946689049349804212200893398297095892482625672893666063667084022862531526907002905395167281483962747509493526881437662100738861268104968555879049757364288045647964272295256745074234167437573115325177919984590072709157412202181296317422874401285836934974807713187789164824967834148991089044227924975474679922165977568640889191309355429807052837115445170337331034243206950408471203880702817937997533018757130103826499738876086551122787680695060080429287003384709681069569429057148103410650361349465735069007366618318484505597510669583654728432848275643187140561577848648104783427910195412787929094784514328423643640266106047320760661213569974246131452109904233515430617469669358859500131021710742784089532555303604462091963853763232008878847128305962047599094551288083277364380183413213288905186555625493059460145471642469361089346671490872588376642059730538791288065748117380630133674606091097038005285171794912253408603980702011423513302583259248931313330873957606916728301383342170012173936500868932638822548463050596580551013314654010781609281046513303906229051432806224804155960045331405907038320030247780001201197816210830387805197307133962106022695823530350657920027540583564979767501056367134185034034182868703979379926172999549267644288032479033240455607645424162797904814899502199898612287507991024352634948287932088619052358460831873623234000666377857740912138607688397278063372477497868272908025771087345628351708899941590792245588745499687677570734514605618212156016516907143408328328508124196674897745418140501566402468049639590421632523155446276318431651675783128172419581367673433846590091589326296699909793165098408573940914356633661036140664669704686470281338373827171218483218368264872827253457802518036049901842745438235915626966869933751450227449339631330737856913901057051842875391954764204667362184694778202029868143337831883210503210443504963072607755452525328376148392211026283600479356810598000074058874673620626580346619375814443869209341867321116240389315905198914215240724692969573640710487946073254278145246264762409465460299046297960108858425371217621956510473047334976872369094319099022556545324807596744220552128259937000055434177168253189111529694443691636244867769001539100448609360814178071406187228269156999632199027555078223079058576230887062174917393525830749238911761977444545559026590994013355819665927699356093240768777463953111423497342641219705476741096465346125407136031455667972956306902922931458079339927139639542718148156139732829199343499920725701579610370149227778512385600178231033447771454397767806873395367109179899140222305002486818126006944689601542564114189402199362064859396833569388940889647526296306077289326624046687123122854698126601741810241966226032100484263489605267045760378693186832653626837298476591707703201198289148268991734599310059719593784486096668089419966959606665256065705900423936512259615901510941763780956183154258288853790364750816980398539942199255579232864162030643979895171729909623065177326231091333174433355843306477443925937123313460169600173477599145317373563570846549581014963412922947556499140630107285170607262739977599947134591737157656462358236916749472499792130691941686295384113747981187238247078005458799192317521522502790678628765197097908419641397532944349610735900505658438194785975218269203946725162183743587674924442650687633281625543236949146259153220218457991665711427226740215617421779112699341600383021828289078982089313412060666342467912852280898005443508205279256017817789055375853273431612651440884945359302281687560725967234755002233969043716759075408933461431562227464169250869776757702316509472275688756916517747040489175426029540961467732519136214829481399611221023907526999595527263124367933211417286534300011781994865337857426649741717516058428180181593761603485596293691972490277431296598256420660391470025346397402060890435085764143146880828010611436990974172070990869317310714124240576021359590697304701736085896117578389193806456182913269365802415694048493640226859347464367254816455851754842537585033321979337928679323851842177109955835745473547293490400021705810672481436211242052155020230993676651009932866292265864835882835058274748365827995183331989136094402102099383867955330616902130769257468268986704224816305627617296413987807520928411838314509290443770061379331937582253096633021350845418036179618000607678491831402911461995731866326357735187087793344622299258796425098824998589553629915878807238046569983811626057302757504853188183734183443336057700077049565471752187250859911610407550136987280314664303698745327037112634041387491322702760228316043226498725787102161058010322056938617394049535156259385010549719825196205455775726659649060191363433859940135678723836661269112107016120911728449122337255880028372184641739676198300758074640926394814791778210225885865274570629355695028732536561590644423322081031452212798952694794579436268984916161309739594270751478984070033449316395936397188118580605896443810855625337447105671642242272333110660303684298287300333726297320817352411862397461545464120834727520710133786107592928991994936431010250671414208551885923605182284084880846088903182850730922139359004293681094201164295942621845785957978770417462601072911035570272720130003194451904190125050324891531103629063365217423683635649287925906201890141038120717309285315491210000644884406361893087899389065720263169731456217405577491746904821244981368491987100899447392066744866880994731024749344527414548103637614696831468090898980048349873354721002914821027442899206312253398692928563174553143333875847947449777675960322603483061202968134928959986836113175890139620044931391667416766704257887556527407808927202910893860300865970348267284970643387236920166868233647091934055538112867136875763410361925491423761093994724707830483976386710598700595533345081012725217781037125567999773940193100132373265749339320255196774827386683297777651386867704897115101385308992338175002751360513133441482336070894170550026676741846468695952837877784217410981687670488414039381092827111591900309065479022246089900956219105766032768824763287892625547774569878226092355630349965411747689620106932985176833420611312133244835780602628356274631030836315211200632852617622304845302555760528567646068240673692773485320567717939456916339471122693012692098507026022803368542772209173428943895330498051015306002688690224566144897222226326901985226576650005133043270739910788619447364796086672768910806594717784019257278402360933092453900733392243120055364134319372687377219239193367727764418139880566814007185441300398606699155013447943045973699635417529361843694118072976505269675232856196738874274552830289117461733434873087835127993938609328397149650364651555049422664639729243255587871432240968375843109023525771816291492572155561719939545046269115471121820844654044511746707265936832575808447547351329800842476607330923705201253672866912159219851968722340396510128658415587491293327694558389150437028452006181398065813285275084679297752123085958246185321520688084890359598506754136487826568057094391521304431947996433009081111279994239831172741893587344819558784268612290812649485672487815372854155330660150892116523564028946858372284061865692827223542134943802908782473720622629867926488872663116773319385437815575881502247580171808511336765920661881507061332349169256975264950784724781068807227490773668664184261668510370568620018544472709502980016332874899241565487672121087281388602920806249459239241575423664308376684248794413667530991898079027734066674313342948306561472617451905483926154393529256454006097563599138615906362410465444301153716294502812159340625000434585231215542910600962300379399372064843037274015694096158693545188873890685443060746600179595624212587374163571345203206069499862496844887584949999642965381064134948565177198223746640167853215487132474236642393214011912070273909174868236930371891163837834504708584673948504219942833279805881185253944899721268052885405859899750788491321111549073033076009966393914586163700350497470832954693152052288606740996464969912440370935942202546303648341950817762299375281403804182675020878412713923058921764674226896578124672984315576903876221400897812949569523701299171176594731155758633741562670688782816255042167462190164232432539638707329293426275140440423739996698687187121555669994461447895357626851036860543916326294631342630126290756194964778463085762399574845945706388009744827902874999435437846061364781529559395199939020133114569728196750040750182930236990069820755978703987420555690128525076052599383650388526103835934264386335910180453467333048515755938307043090746969148921253319836824294603307768362325284426376022262064077893954140263073146866231763757199958468766129552840911600665912014506944612646119414474452053329925984423757480564931217731765156468799262221093907122219533560602453341623999598300321128330141487201535188109676821417213928906906017838593920723293663246878207077645567782221858181051242638176611961242302909402681725205798741989806807183525371957156647520482236474210128065929554304585608693311729477448676065621420809226713640413427338759861127265763057695689952340988556738057668156597336472753478524466099965284302343818464863981765914564758867509147002698984388586875805392940466178906434312420243751126132316729821556870310366861733693991579018434759149455778953734764337486907119834529878924803450561051496394377201976992176021857613026344795965744026494570555548367442759975411883793229174334292731990530703647768101304760707534058625031595613553643225986700568781858006034527545997042749621760738229841191476225070894333061204057167478554747779563842971419387110110040964499144670923604377736857697603537481410612870378150790322419351974757647605241616180800760729672707653425371207596308367903889500543231735276272659235094496213043031494067651561623860740992601153281263211920937452951122163052979995332730632195616743375458750557882897700252768778511203645582231566973845318122489519870006765862822096813779221375387480343655305665994169892599578867519319326875950114479867169550523419042912752434772646463306420578119005768877441962306456828219698002957454744337289703419086225553731925523721821819001228585350547564321792892333296918151707665513803043377387308371155623930822974091907070808657974329781175842566866708506136183849935641448254884510317020028765034358733284087668289041618547471499705821510752709627807774740559630577191801728805054437988159748253521677999861691324084674333316539568527446503236790692920061141376924032994264983086479384099500622865835612867330507644886310612640952168250887332178060123978766000021630874454020565382171262175162867635402926286051760573664360543398994528768253868414662244886869749790120944008134137425485768291845573675541185575553587356261553176992117528251695870160252883553093255956327291657048722727353767338677119954822811562721664148137385550604875139622647170146412544347087643996238598670012938002303820965975466865588693588697418974169094636392015008487167122742223820279165050751154145588165033415733383797412716851724114790030681391321824784745552623175352189981332705360314600503192579551195097017282671160238206675027268317933881699844774989070442279985018222272324151324375914722355359948987586199434214756780195754312467998313517312987369442428811991718777804331748162461256887562120874966431504008742013169606665470165163188445929739018997774744813188150941455473283507584730568387943095991679951150660336037326483834243400847477315484533586382408352297915497905147517943235643826823406724400446631157557144480736770277154775248819000212170478092099021361597373858803974023970146141249568633273027956184152187783620487535264628186652057155925942133942598981600158089354737601241955413266998511692504889535816603075750434223563004515499819898714631590224376151778561751329330294010241118468858023029150835241685452934191239467123570824390729245636128180192289984873880764104753753046817729842734834330845535260687537933720730768079559489093149371563359453836811285471048151572247597997251259290607629329037654027288182242153522413347698332724882705121243624017630281969674701827646879022782253121350436124009607207220225388856339022409622506860087733106258066055729338768767164685187305315046816457152739834830632011208857452706052600304030058833737113732068347569930299300572940268804964835825909230697680170000730191500338811360126672525494741076106589186747211853325251764316612087649149528354550444703095835645285276940800911918370176174879333275697639874866911857056636798273774128841677152401000959021648664531411312155790506280214565028991055967702113941971601831398367296603086690432125478901350061255344929667527308381177546998329614385306308714323150835230236754875614646149452422522591788753914356401450538965317640167145539649795365231412638794350012224735838868718954456061120115932030120519084272151874002519454359033036975759012952730890832782922825870620766917693218175228736045243406406682102146194803032390719723393138140661264394732832802543704424989845417354903399637576066069963897450668951035107785377747301797778299079424423299789847952611491473035588727976998769121129843071612280728444499360889276531078060466025052887938437605478847537796268074925513850490208006185924620711430204569548220817244840905498617913305699282523553182642433737119814450212779899071415471978062576940330883594625342515287294230483358114825522783233046448456117869612319526190288926999524570785653594875873366594476207012836968172344138942893990894802884409292111515382694529286928632539610610302501757511520602707458450299040418823840768338698408993236178272169010074139556407973119889434562549624676729027193051350104006452778264100627738856790460809623337595465680839502629125349290115678205812947908866318877359177156161573065608599074706705123771497678978505315336626084214615973248804387846872320018938404669402853475176234610598473161542438665856084714334784483530820816891465500099228181318947677532120294493897567049919320607880903621891368280406886090473821549935637390833250584371838420190371890171020950904971909285406562325280824831329142388699135637602880852381686139992699285061100441346282986686572181900948590595212365424356178363600143825364849037264375361008017198761425454395452832738037633834556587501181399568028518000763921540483922275963640819664955291484122931142827199142420814396459789698131526113753262456135608465063879748424188467232859216376129967753362423092403617645359897891720983715837445404117411091143059510126065333185111996932679467100637230671832693681766198954906716597615952054883691537118776731566282328636030262054859567744873551480093081278489970410911348169908621532583234421237486955712363596672576586630960188000113648215103813840644873604991833742245398930856041815133203642890345110769588070350362791866371852032975407276568502397130083559715338139587686350736013114779399168223073699898557912432500409456251449180445471930829666932426398333765403770189868229986085076878891693295782818214439938919958233910627537898579743376113106390949057408635191235054852563692044162026690883821430296654721515545716105917754581663839757627945907769950355989681661132047739758198926323923028733618986029497216685503011180935412642814704465496677539525346997197379487229419428132281395010400807524145158941125343013402161576116889846855189396693122158105700148224955610948506620190429195356120471522703916044494327985295081947998237387462753399709445214401802900099166037321315278118365038389119115616641986044845816333512222676081777867509524946736652163565732740031623917555725783231279351521081496857849360504810918612160979591477372836113692926369234561329784355205490000256479101703524312351050175027657740752972811533322697427395903053735049969051356740366557656040250747738899506451539461417031181877872305724029189604094782851648556234772031196046235684923292948678931386840038878350886977157301678732730673548231407719979904271932682882252840768893083527331380942612790115127763265605183601123086754711309342543705206081908775471506691468129865671965375206985497052280550380613022120064258879932274236586468009951379104754296202737440173496035959109843749188860685798692174409316140239713198810646503211841153305059149902285908104274708634029887981988259159360827646943583340486028145293542787274196548329862827607335654784905371995314858890663482714408057017916285064546704199958453039135685623145220755460545166069528881083770475691992552775292755112047703891061939879353816356032773135267364358619714013459298247008155178606597640668309307585311765886987176420586232305132684167751409059481035835233910571083576424759941764318846879872953127768405896419594603814361276767269881582438839646168948790935932541485530677754442672610923359193427481375401872733775048515456279721359985354998685540966348286685468537258579680351281468167073939730676351405399513198419479239532075229018726420421913101627665186042707269956774966950813970740078279223547158558534930276137698951749683581009190030864982581132190090151611547757060002781223519515794832236729101297269267932672338695967340363010300901713438594277265512250324666360251298628516052579355584537921789600259980814579385756343724522733214164993519362469817660293376434498008585768848705687533009745041441357397709794802490850782203656446065485724191394623188968634775133333872154702634219882424329913750524331224293631218004699697888663650991419378533078966051151902447059534230316571271475976083405194481820955483148068021909581744049672274411631347958258749118680004363377722945372485022571719285873814219376760601934157175136979161193103936379531461100818592072836724053410286671945562272426205880919756959921637247628783184565178912681378374758030499379350773265617007897842968811539694119708010658429385335031602351182849908102182835486298426263497802377626773931254422146040340464057568577524935169123304735008869373898309712515616942894720967775741745834311553792838865653079865203255395779631528641690193686090722541841269988365342559877533561058744114389530037318147170202552691352114095624241609110993763234878193066823317200755073447529888562492602566447897077698908531501819114510086097678662496456892462482566004357482708294745828148479674638196651093969513903019173326065168837331730667357743587584966676051124419167428850960959985831198751990233785984076260692168153658798832046652583992452473101791997980772812289789474131864410050061032513092228298510885372146909311565433394392302944198591589077850837779163316768313018544830449380214252608729875365533854035802065045895065149215963607313175829820735832110877696180539172434631286776397379041769543491991894535105665392066720975285992272612736428853341470582238257837407119244339469158412980329052698484004734811579215068528757530407263941262826597743512513098154128766637851654524244500251135787015221763738538411266752275045529894871740756126474556951039109588351971556746684088122130740579108814911684685872511970989585003549140234626202430538195367645779621151129761667972698999866372982682621856727484833884852729140047236668810171977467225889908343184247506092610692491658342469967706398976943369968075946445290388981475263263228243363514474819214599807189941667082903858761989671278286990521094680882674288097285813966149477862969129879665403920389473091981538170382678842654942051533161271936708221622870366911293570985022557038517171259981365988398108613530079780108153012305895303628654218685195861199875042331976509232665227996173928304862369169894352511053722411908516019681525867420536240314067028493694345170957321311078702972269943163155483536685607481108060841069892138079994887035946410656764294951770874280913020960644580810037393803756020023760806177080499423202188452143432762417619152514616727052496598024401664907303692545518579208126855528699928551101827099410512821797815169288689738392455172328005880791299638054264314968403549095406089279340242734832895896283087803320988850425896799593537214660668093892704437486011587931273859403073434248994284144017802405123412556130389494616326548193463446509338381307112600832548118962804633605326425782729428117077310057854784090008800247209838925352596563623676946318003951216660554987326820747260116067575630891280145060846468361884627124976754278613590899865394438610683818341798724360774612279939316722615929036598818666888105035716953442370016215060376211276498425249363847692784430881343895123002100372231197219608351957536796504671315806946639219936845308775194177747450701032586523250965266022566911877779655808214443261738237374806914867548196550921853916012521200757246826489621013008204546200440124376715858725066108050326931440176268612453513939549910832348292775946421879592632994236239472581298045472952446725634275351994145862610837772540271530106235217111089170966236339430386040230192360181432835099466450718475768299365654015455314286360273782332568704400867324005540195855760529620699607954594339481305193579130531954658693991784505943059922120804727940855389529762978874046115501375581893179728388508473368506008956219393220391336028141443265538855088791196771797815308298695031853052471459729853388551089621279850795874437054606667573164038071987905140278079247961965941971970034382337523576045178205035692889959281608887137633764463822741105527668971956667315034270783025050794395465261585594234964080437045838977681984130818153677377707166027051291471101153232522322981721669104063218724515220020627130696348313446695239549864134625583398250842502260000809523487409771127315743851345433055049734890355241077328276739942971155416381445104463619716978024845802566851241410776132427532578906137017931593580414502019469344296747879395103195930245640449579768688409811481452539141018721168714495336688220700935763283561422417118259812527262280975067817906148447850859668343926811708862794652426687014164653189560683543937900650770394923567543668585626629684738885427218861568993016672305362510956538471603429741103158451539110530156679279978941416727680723724274124573503322507855281414002363330934817467805724215074266845303546340440491437606391554036849047615753921329578160419002964531314283414510289843661256457803391188005516158536824754706709176657882346091118840839672106761800093593687392967836524415315558529420669505909630401458960740277750820736665746961981945595581920485036207154590452855492183923630569696864534485140871465834982639044103112942979113307101518367493486046281348128850810477017102077152450185014216023111325287293761592934767249030783056863828425457600760967915147225580690154626240825704204869173234571750729100239232999313275952570852802391558399816385199136770917802570248338794174079235804859333845554068091239136883943490299857552735898680949571335656338555960335949646137352924520235086441299559973410539977051132987723927678761789779626332931458577882458993764499345103674609591046841592574566909344665817270451187765633017415839309944932422073024127154683756158899638497272082717920988427879767784467716333634971298451705820353657989953819246430505346273494194453851639530951635723039754880043702611956994198997495637884254190655047946198001620759408531449378067907634376896888638115941311629670656406083279160348694874442417360081121242731548488641156138371206472038427803701795636574635245702129765760080478913906763288831422077253239345634847923216182425853517859829775370487820668563558361249826164415842857308379143298419937443450747496836781630913437877081121058346025823469235545796953490335172491148772961302397699210959668436683029678736591553372740643789480711094388878656823291351394846441604271631062880635690605375977353468419403462689795095233651141930341968781592366391458315244516775620217779162461120823032845206529651607886067978756821341758351295625860987397169317110729527863021274006057800016250971973573960851233152646048454823908113932294121050967434226724243268838162206126336325349742687684133697538525438683396809383881670052971462704773997687708627003241138509123210104720710144438173470399188452209832124115254426675865894363061055919416018654287901993120701574571903682188950083812439164406268799706247344132070589714180744260990766349427469760368891860850870324195862065398956316136947025827949388633497275016556308364995057920089197769146486758081001673534571728123659532404615915115461088743532679558744098737897847955878766020950434039136190563062376829837495370509841235210894372532791762654970469783834980950116268423554104168758804474090394737008854162735355886542251391924546931701430024469521014553497387857068749476847914201572099810289873651853355471437885547692211756565165784118592332617315516994826848353467755342727083812095425512513867741191432244736483783248991173979895439506504473372372766925172476294754338905038780407484796469772592887978957751518559638241945226328362111323035140639884649813925765934128609474432209650085817461087015008399008957344811981077539799666782224167650837598343420845689201386552181829601855959851461585403543197920890579988660810065291776809380274809790156973827180958621313050797710510707672894539126202768607807085388026946718175220312518688777034378734201972495712042246918465701380338044015291353139165999377754448578166516087794766548119898521873118876022936635966560548494452560494106524554729183756435845168819600147991829164481257923094885436484080560602888620388308772167773547265388239741443797918905256601800354516560835012060138356403384063026149897502543690880672599936575468595432886321966748243414497241800090130873948076987696476604029223328377183544147766682830224793812766876492701239126500335142428111020227699580004663150029450244645239478958366339769843045379958532482301619625952240487154830929420334603637850637880295417709548545606418111898234182486501810900524719229233395500725843804515902818258347154043677509220382602420148852394472684835570748401604766395863378742202825756770966032791418458055959395538034941805770556761641602325026677152810301658447601410954264802796254061547458056173271933656861330278596789845743605328729259508835881112107516597996552706973309118762841711721318977658204824454664501514702566415238939969293169367396899015741237966838022383453990630613432751047145349492855231428030548697538183224394091170553514214939601121298749810994497627850730863990924497574434441699501625781843290026391199245137819763780634902988460787941407531780220113860091857362865469288253409200738659628660616376754389615138360613444925510148906963845229500562689132210316405571461302626926507568348515497561467234027954504926216668604096909127469834563410473129053754003595013460107393594801466564422619177622238840046185863380742389369991433926121135634689302089788107724112909799258694225110262189259425466967129564856320720302953442490131369615922573963674755458137945997606102996664043376231910135306187692613494134417061007664043562050109789401316221010662083102886217370810351707845807485663690985104473641302252037654515761924369430244629465774622344942746865731194160683931812153925956245955129830309427482612729234308402354699903568931975982639212317669572257272329982966352678386930343660672497940535787447978866308760400080158064418479932067433351742635861242795540637937422925230521626389548662241182387455879783155194746456783471717436021464714614644337748761917735090525919526231410039317864281570658856636333570264882635288322017481857060652226345433467658593101078011229302056223825515098880385204253164290542658720763730825221752283012451742416586867143184758584028834576647820277431413117014094041134650265609929807017277393000859461939731435635390026247509992734759428245738620654533764621580296398671815933353443638810807873572570532533727507827785754737696567477602224962922941375030113833997525355457937188366190543666148897565246952343736121943442374759230221881859044975593164546216937647105935801223611763257616368374833184164627066621144541906541404251480141914848421509808454319354975833583384968779726328993547327360325262954303835886791263925029208314035815261199438736716142566152872334611868478466244586303673024535061004680586131597776657329014690198779294500588231299798039778632232745744912410182166227156888562290906891350568703354095103364910911421434313222514234432607496404463361839349179030694705801122788336447434144156758441940930307696208501159004152444359480712081858823727685288756716235859291949116707151797949966245636929466682214653145467059539295691152151856320307580967947777666082958389035906928095978670156288972525450637036879489726698298101885562573329038634160828710117701801899364443835693974845916473412832089987110141444677924314140106419397791097228149595965453729016157832888993875370538550900406539736574150034916682559845361759756555066852850280724970631543068022530085192014636934309112729589307844893737557288249160388132228511179901714031843652109500893694454663490508643911999065358110818227292465269811393269391800999987693837174034001385229062406916930954857676238953094545914350763095057436446943457785483217493509944281197417626485253535206706320411443647302078399817203526248012037101391146434605056468382418328692575737095740894243673490987717211911774301980755918209328240584857253359435082354391684440768462164180559670552194708499279590016836774249569658040296757088346810765159993270402428674680411790309369866507802069531973255572662443661942612564415687958026737154575047361340835013234152216659232974755506026711250926223108422558162812451512115688210559749780936298282808510549864972879050144504289046585631052876678189844920112923479012643975580188148692453775131043224914503236960464822617625437870282851180683392808063493982380595063446820454635001916223709063413304107160856322603900516587934036251409762247993827263645960768171547304747390361597558125526313839368852907934883912745595135982797035153788862819464046881561067027085404744772355067984654241315582903122956318960555019748223032573996330674207815455418449471698980437540339904076187567628067916499954436472645492699064224472661697148522667708216858054110133251998106625663329610401768117760399604934335909057585454230266501907181022955562969595278195760714114184834559718680505981735892255884863148019575710393982697042825057495840690003809565015357913072578943251678771671448748915642286326891455336007360525454194254024558656510945193539871992867981407162218052352138331452037258506713973195654136701048579926501437552567979863358392821860545536051817309683063820058527294355963046472832320003887445460865694777967216097416150523435509937261193308504180818142536822126794907426997333406689134829120882991981046896631735831757583632384876654558581588655518808811698399049134341519934559593520683005774360237331048908274058629166362847134397312411928855912358831662147531526386477001445123705763749657255628129120241021042601543453380371941158102555942014529478657891837694483508291255299660600265860938044855225574864385097045924796334900112449285188558186895705770751075050817337509376383057961944112237811060705363922524518222253834817847182698564424729460669539631153895715097383238250607440677710549618860797529466077783118022009935108494668511389541665462214024146901701833310755983649204122539237406435318130677302239766347542910892220081685864795558264760379324145251108264191319715882152768567219547653901911333982167743354459719036801185954500655641928438388658002118231042698864164119664969197606952610542944257484914625621566131423126903276905165354275944504653435416632313334348658215158664042340281902704040254676895903572349657315397256500679009621814810675562666662302211737187052311737416232372768383131106806781376772904060320599398773370442657070575327321538452547300783718459069945465787145643502094811268708908230463170419129139333474118264377893721849141387736040000948210356716043984838023612115641091770123507795761793424682371974317862283931913683749734493214741456259230369896521291865912183945410250531534400890065134982948964861569158177438644346858374886782393289018133982448446959522236084416988603425356684533915059906296766990749782433225581698741101158479167348246233105903549301519094805816284380702272706722326473807589058202927035620454351551494088819840799202813056111018229809569779986242474084881767897453337045042844648696341079504472764561482441651931264134518438081863854887029323278708785107675919153457425581571049924377298024207808795068332050945885262237687554619091918225897076850089824036232963008249217677070302760778639550286262690270051388942096068264417973337393030471584799705943665577800001138231521369821122729116346313478895034344026184402181490007006074985428729291948355714098146772098475675171818058732592006972871201632435254684342990627909600568047468459657383597167825480636037939849606923703492194893695030821180103129476432851927735917983842051945443777456766710023370275203979006162573476186660005994172110375335780675508097030232345508322574109195327286043676809402404409422084985036474250449044375610983006959481634247190992598028776051943132042803539632954203085574413480108911339711660378393192614950320694606558498285634397812414607533499063792583150656309005658173950141637488324599273758794911637845484418530662315880818128036245417630551214963672834562159058034633572946027435979303979591082676021769730123288718086077725666115892594647462949541472300241894954510685388563567964796883790445966407680777421116215519079225945241433040029036804273267789896713112921161453644761491298710986052033230512580468058429502124186811402062810193535861540234683061268122157718418072231296311991915140887786974642925195396622721731441841119177403395917756627445712311534805414253129087013586543181071474842422758830152510929675119105398261548667220015424904186067144676229674336191188584942494542798914310965486566867462159430663722051639551159415883926343885041069526195074861548646632684916764245899227463131999042696299225783217864382295823570216803283315505200066317914576013895360022882185200329923517748530795891735185043045129494531632761231020384092615772766529703727449705610896110128159044762813728773473212606740503287097826472492750504677830929154432424811645642604383240768644975892244907165626929046733926754272852477716160641842725639811660076863276119387138330091251813019168982280813909929336574901918033939521941845369083477107113401790897130905188487106508239248856106817671395513164453332239857919667109319116100184835435413024845537407797323736922914580070691958072778086739738043412480791955325539803621429421419881338610661475558017864151145295978597036899653164423705463028166053419416223179945797392636798769022353098282957773902903122684045387017311407602694851692778772594331198205323711555513846628726328321218827078321956049752023573686413126164566775648540225685533977714124256623011439818765793149404545413312437613720133827751382739564113628866695368656905903620753320819899968883138846525207083675465437110910063190850353923854957241924796937953377871809575900747922805197180536075959252051184235023553800528273856103278947559201887977896040149439996822715060152265279650291863273383125780253706020728234830571378196415422733215000967358343479709106524959457940157312753141121876676647339124985509889803382304448098795348695241103384344251834887013725542258868255420569249825653175122376742484220406807018352602665375366463755022651449295845642154045231962556728081007890696555299982352725962333553881023658113830444282997357692973911818998151227827820939085190437908292756821950279514729855652462422417875500649106417357941186687595388503032560476499130723352255779865266357644750781956635801015636122293664294426341362270633926444761614140999497299729868039949787285587930177155679633294183049852405855495819894005818879698198773350470626861485695299356506500101504305434947027888051965188269442233708156592137579197521777203262618634560373026363158576375223702012588369013180193786451809122570560879997585366606709232709094680494392463485972325226323531069084933209646849903188094601528911708591056507230959680628977450875155603139208637326160353857264305003515941545705493788799191345431820192599782554276386499647511731634584574329741781798731837430938618135893723965857640228953452564036683190083182054057524007913570903064350242711623441779369038931919972728076875329901108444416998661599373867573525875915715402494644300082608190993692067925268366094802913609367072587327977200493900143261287768537064184749899146619604301097089235392575381513211335539054554856922963566547126753481819977788419232825857236076930067039892738501078141034519224083009651794210070107261099137909170709821289911569896152473745686884759590661955061037301078365885860852288531707276161007025464207790534788068821342441883760981327365277385958521622930581527723112492286768014712032037072005209429665744869122580596498094358590215327212329646917179739400267720586303764805695853825330857277846338035628502258135251052417918298929806861969119284970294287934492397047390135879243233126565654797681996249920341928888446115779359988536358547625063431098123787030352166162920533649996993749296415895023060876556143410820365546783142313608426588983025978124999451953344542109200528360903151679857649521363695614481148231803737329711635719833020379148630851909692344505473019653750321879553977231339374381333759538330842827840073579496419647723317750747196523671931264837962881766073529970147756467885183416766581474356891033425616240304489119935926158410930940465714581992292438794265062271143043358703761358626710523871200291302653570935227790897627844772105303662563459122592296559717636421744217315527079249774676933643518745672393670947058556317550260287233763268877065235047287240067821019698417282007792505369770194519022411631288437296540678181797100891985647779334001655652873631349312383140137840556315085711726454991811142931663002222668290758970638417270831694294065531113653130060764035583243738736488077996879191463469668050735181944050655900617951711084215166558354997270350226297474067093117454934509592818926290270446571529119732954530866353817072671618208512449471251377631393121303455436411045240627729980753696693720163264779656708534192931134054738700011844122300508071717211272369048660996276870012873676980854829995395120153404655682852614746056604265089338684360670576294133420492748370362799374318944620180308170893822149906265292922806148370018797799870497504547287552918606345549009559656162990336054895336726368626123569574591607493784881780535408942491626919090611387542448269381560689640152507206315845143340001725118945102574713760047991144911132710563420083959728912698813571440058871811700710113840492247242422997193690648123069609681198006748403974746846979722495889149345884235374246988533045967077920035142885176668858356600289673938095354238744741854711724764196408752116808023568211696214951877173041863547457768851736820089846648399760889269845808355929412939501670934719940616267802021645959574065716794184797576960512248116650968873913554657628573436207750693319611575259210320024006335721294477015702461430022581743925746708123190566809936804227431420972491258478864609449889520426356334294448270844911414315422607849094470171725467711468850679237802379861474163616170929020533693108582478780520982870259782143388999125858250030599541873079046543522310413349761325381901806885616898330707205145086038328397409705725420226978915565053436464641773299915685590922084889701662512159123939906014060959812699534997624477573580068871665627715734636335711553645191976540567675532136519369287347642276447442915346399375316749648069730309311780036164903107853129236800937836281978559279047096771576761398990473402869127606625365971321329886509871486341342593030628587572521966914494851638423068913082098888955942148185692796715501013468641095757003899524768504746523619287051397388675603741038002148462943529210218518899561776218139522681722754243777891899292662652047693337635677537560287793752415760200540072634968336826722133083911135207250874072316242910118317251649666099193469159163802584484050992931696415559622499876649654097213717806518115958310333347188777990003015528622441303201035274830195899143137416391925312018662014965651147925386478241684673561440455654016186563964153872774165488329625385312675367712700900216285847301746607395858758440481684847200997826919426832338689519337175063191118252810894281292500018523745222565710035329228809785140607535998671290386509132946061409644779506768395747060639170849393089628546484506044727367457747454129902503887970262905606714528390435339476901329239484733307154236822219187223151277966556236537301340698815668128329566687029791395422641884102226923062749729466360118900797939781586154702111551060826148990495931931393953424699183838795915002999354661286513615969660035145899053891922014392904850908872838641094655943571211824466532026760734548347984267981442018108138420159180223925680758876377908502417488692256372591503284087327122347632891879143338066415600714071686158054336869466388042004295441299722617250189753117495260398341982850391521110167825637335488726438674225753260487240852081886501898507417168993780746982115438250796050732334367809580660340962244630877383863901807222916288453836805325741244541177108203314281780803535691410794572566180890679277644735888212579533510840709459162854791061418657129102270517194260561049506432965515543583371730425923937849438839482205029883416036560425488739941862856689426850608233552513712099908257177161302924934323783449840211804959188114697461743936858260772511420104155569024539656479804248848080768941436861861318923490293814037747553653864167435580981408611287493890615572122180234126727689189785217606071119604096521489226086553197954263970229745257263827178009308622845661183735978341209528431290771416291703709960090991435338736749759385824928223476733836454046737987775286713451366655178541030286569636136889355436932981280977329403322263545240893197321981718794534671395958977220370402702498869067900826592432657490630771227368416720490134763975780238895546799350851358474095499877139294220348821252270478117516519663240655548305071187135319351329754487163694487692867477536468930608700917371619873432388910979814364263494581097430418029141748182530334312805834927981535024869530743522589091324126355364624034697361557232545115286909807567254028072040679074404607496409241485775799946000748094200938618577003386875932120560177992707644296169067042326203216498031044288270206738883230047757583309292358340934660918837804026709341846824997089196287833711627438554432233400693877531741396799318763909198468419913548577464739674566535410967130452544195566555474010239175226104729474491711232716752136021018476528599421225880609555142294710512819944206791482426048628038164640461949477156940664464071882214725190585851416264804956733833677688662551567179672542122266936360525185563782550251288456340787074477467043850861708308533710089953559814373169222947415097458625775812532796655321047196221728235282268311723512919457358711215734667282994965160383852305495043587660766935159685499744939742931808041623377479988803010102631494284159570800517731324649417698662187586903666770250820308563802224951098932581457228531421770533236077325161088403388760699205983624677982866431525282413576778162202643872091396957722052446561426142066481638260303720307756357709577002709980350424898740724607390790505057364072443047602753179853651180549097352637524380242637507294808985340594310189447345966770486248696194247547806832139849598464955928749457227752031186651145104545286021361013739676353456826414285720447620490702594727844429761815080329377813037102434505749569224388422015497689449987283118760679335673314590598769083603822355027002512683403028238600039896557396542627627044108061470247392475926209438392738359222949095764556289350211851242201375606417161098248503545850920681621948294466761810293884043741445701573853781015844017406300215041239700332403669207382457116253406391385977960304772165345598611081061741748953245506121571932520127484272373618489011737269999731888497503103505148476694991967189593037361541426729405340592619911031381983233904760660308171012818794265972818750024603095103485763238925220391828150929247861492933168388572578588267050569023283028374236661806415387544284342878164029505567324090982320652076090717138124059358814673864512472405589688501456976888546819931287112934506819790940489545107008570527526580880929412876273281094594418524821505712250300230618042657736120979916507216659552875415293645462930552635127288877661514864712001755854613414923794207109618585977786492333583847211225072688265065215117376508953110111142207309922639769573379388935129008924546297919734461016964912151207281354989297332074024817551926348826031713916303204013089766175916879888639681726081947610021246321665601703745129551928860944694097381733551659310402599423738446581965857886634428033661132896225240348561541073304298621467137596351749655750034401701311101844313717352839634834697074518156629898013522958490217152462889399187246567256432342231532636182145201390762364742299468229296009688954683656826659749957874305217500767272117918501789714544553806398117907703525828708993694113967787034910410725394957758555814989778048417612873224016614372415850239171528019477621685645150752141667385453731248094710459773887015823637093989549798849215051458767040277568043720048893839623503193972537358945228687734170404701037341604160881464640566497084240320499943793187062673907883832679505122145521862195687903263070679918488710570244988962867764785258187451772682641238590420282976062924743109933010147230712790807866857733774160387773984432200459296863790725913748113688058132823744762148609135237422052699730618650449114780103231216851442234204933689961098241156175961474637516556309378024828528454952818034739675154203487882858139515477921696790035141667014518655038573915154375031302155208951974222415962126418160933735073991691790254755608231620953973468058830218112218189147276771595529130253638982158609636697174526226262905560408858792142361440329081196452520312718754183547772868067426635321976353762395860667932858811507146479882591131038030272071416667934386855888938835962455395360323453542572625387902916942645502735152218560128577998207854724776005150375616582898288884706481707355920270686295364219777507463175271682474867014615553203954141471093157901668757005367694862680239969242705727393161318855457898173431805335221093032131712141360532786531070812505209876569914898504222971909366572362827415947213086811999971849296976988800292207288799457557913154944088062831878213873017432459303894534906707561563369322961607962366750132476064658033410589297904338865554355730459898468405711820824208604115654204756977311196997875289480099127323430430303081971341288842913143618150814275712084278370909953560933471142230040973756545691664014386823708880204393684212186646176743449784183619220710579003737579121678002897375897790235484317530287565997798037013706192593972141199791322988343810408766379762245643773630198803194310790497537388248153456609245100187574179868223087772933670644464668540118284053528180622755600296051566749901668368497150062570810218395613236213433022182904070642777986023640709978229559875604073200813463410938187531724981777712379348075515824723306307495985971705260600172330158752866076148717790567761844058349089930478442799798012691608513369741195661592859475687446054379729566594021870783727368205840254534582613734576518619498235909260613210607332425038523639691378970669330487092043150525348375140498277955187748054464713662834747104664033190063801512121233239479287564890052698706630934163793218361395165256111894468633857054852314371197380325870424048583853274214182660378002916391659689419860381461456503296044908570670628061761399005537739465836082084143536117506694263357452823707180573461404185779487602076838617519667581825858337297214251878565555379059937258136949348661563168322928341001922126207319140173403351582487078425728914829849191551997336343770228533274758030286862555926276223049453160053687013778702482688249350536558491223133721832374572379139608246967090191911220236823077851412929039576070256324910579971766056939746161074812065400815433911229895087591447807692060107753198225782125594430370862690727767170644756677904032396329068677934949227927343374453308372717801955953614905062663702764091924828385229627338208092274215097870570600370724288832447432882423719657907784451291145243682155060122374388080117142125900155126631388501852167098585013146934962630270086852493486975953901697830758182087450765936633991877685834894753848613951041387112987203242926297508541545217750465717203668117484430075543764082443569443004244290443132329567729364534370111335109431524630899731912028967938746363709992650469151425511943447907616402687247083991077679560485643674486591446742318111621611677069765825675109856725143623539491260322983913810491882302959349249729378017594529831185577317153098149090751052343483896668675085177385076475854242136529365394280022221269842693878736448910673473122896961993495730225155985449637967879581529486634608555673241753861685849879424337879291384738674429842327031699165670365149684407226569022660301815184172043880792788541839777128283854915407599628331642898123741900416221871723193856015103253767101077160115761247720459198726094381441803835931985194179022763875971795476871251034174678505685539342849887669274294790610473211580814918985054416514048561198761541079024676154476095713415833969151663631183744763786855135817890513880896000394735911889218481889628370227237468646615666803357505493289257347325499946622266334346308093499680583830019527234213158842249748071145953062189298645158527270760359602393356381566445242636480300575175232679840391402094809233281180766169223014654779401245809505151324268592601895889242282992653131629353315233031528163585646776947819264509059742513702767539891928435621860274934821606070150228170564652175354755309118666437789713039443783660865331058986312563894704787777148716379027924678898417507285357640699243105809888407948563145358997770209609743392963849790322167480695871332017108553919369682026057489269888454685039723756167773444222912240571541006177175589693584484002590418384336368356905300343602741957932977180547612386550518772849853198239255344649948903282493499319673118222749800433130057193071988487193670593050689696534007173123013728349634965884888544118448620923962727122066357966079864706865565804321185630702278545539023056670376567124137442832881955870455510884430524904264773273096085345721982896543569054460366192750587197939885420327394595881325520890086964878229828976360850681682701345933241748081454290540221203292902641997831060419501968003781280316206693381209375808156767435695877833974501963141203472560013757564612904496639967250092731264541614970984927712376218928807321264038950033588332726077405599218932698516777040180661991429801417552029453279011346285424635377689071507495417211718873290060379741824732772679927979067022665307571966802152548679980336958843193592898520235056752929417228268122061362595728488013372576803858767148852261754516479362353987543825991511425483564377645285745958879213131324855608415498884582500053772973684965427972223372440801148755599673272299873256920107962995734751536570394471712974298655033638826749363214476290423448590178825918501372529218519383455868832518507648754718197526986229491609438226941273072454611215918806285319007352159231912488723240647008892381083336068324376617725085654539776313972590609830624761492760374874980131806989472427915640464184216055195221680971836269301541632061042199965314360421270066871048491969278127359797723411348476886098558387904041999267188054673817340329924242960187073185166413410463133987861598140233624082844832730975662743412025939643916154929912781127323794932982788576005600111890000461192361739210328668086060337310938056108941118151837366303308490398135890658968758207207454909301244256401905523396021727161150370606056037357891452399207347334677313363067379401550074626054829502785091835090530477788240828904597354476529627799495779581828755688339004649000752953260337664499219321448052425232865182326275120448779604290050373687434926668311082717684073386517674125039740069251202985898785349716411524544097050811939188424276121396197218335240385403183135529090705176850856949490134208436579694822664898072167954716044203944161065323743763052682965780224919797692917522334632426910374243481702672449208581075616146434775622338230804081713695024600865728818131464600067131711797999526366459943953179000094769986770717780575687897465335657239504335505170302004307714916493173520620280972086972719099021207385358633826142596045212446467438227352727803907883373677350280957464524945409544610297006025733531759177411719182209602228476968968956448119427470914154932013113896961303302333368713280441253573023374612674575994900874810311572957555006237086097165853775401551446542227694503722632958985863383269701599656045601602632116256881463142554029094600373650108699687099711798634707192455568658557094122147789768413439669663053920749142643305959202939166500331892518200506013443120334864055322839335539117216550479628715806115899991444742897119812975468818465501694541680979639527476662213797644252532749239885863126794470799507884253170723904739372334124828441195537093060528548463989461437851723821208531406012156755370712594942729488375755839632289566167886814198010426039810022755490275866098602346966836349230787702714108696772828479878314957360221077300721041019653339380472797139890569490854884947662371429454108323754414398573611897589181053911815897235635633350699742559153961715667074651003992768954985456281551749387032721280208481746998705885053933481778999812550219475845245961963976973143315715588264966673732122890462636048671747783913545101536720958681744727625373231457205317579775366147974966851963459712617980796347128951490454742110005077203222997026954130902532217840126767133683882548073080562775128863242688593676742263173532389557397522284166691961376039084496925420703882593188867387986428901645110451793409567331323720332375827180057429823960604291446458268533447736865824358075791038841053680925776839546112198991757783638619120651231964793948938887384747940104349284128514304087856639770106115033898361968754072508509073882273850901971476485131518116719999690564238779184935075697916170651123510553596088265845428192631590141488042825756937785587472909378275460128785207619172543655984387079608222214251938387189176254626684005399970171911142406185928947362612179141526231258329205741421523626184102770005367625010554954163449355194922526235686549332813299533759299287330715470461062083105554050385399038638392970560604078572388746873714397583039943466523160623061910644101512392269935602003366398584489791161709574545711624525370637191965252351485838118117248852675007199356539241118263065542770674542138195322343305050893384073234376882131267943195389848544184471097431201419857832243078732867464951389289631956373397012267844982532705624457743063813176100849050346923827339381041329139580141610623603900505689405648331168477952513067204516232436153247973752043816449427349253745069970292044109091094053459495682843961816587278783126289661372089961171556363514190807959090276517044088701440737679288669920950046910257376959498287077999228146279125389858753543540468577734896966470899715857001390448433104411486473609225618926715148135491743083429440417006576289900958564196665881746083477175604307210739308527839973144583379703796466470385179436487088024916153121023426310839518707355002465525700542521950512968245329063374660004526246859098910546023037619707203291122487545566766680254364646298596090303577948235831254176227663429376169765026287849171820694853284333268188228642218043408492223300181095872238045343929772290442060512484357526610995925819385955049795333614423732427759967793670064393534875923790569172039777617739599024539196615687143997843395602007045273846752368466666655614933580084541101592672560679651702020041501191912734868540562023293915016039664443819684562987513379921123571381133095711714645530127754715567557520121481155708753175201041295082880716124175700457599481245126350588940764510855793892769217282369439576420381856250115320196482786039133535208342230382270030667488685231493180712304724805273562472746428884198008789847055169681761550211127050657920688809724507937385142858266087826043783956104907861055386013171411745453735497878529413422338134786062068414559971667772643087308826817812364064337945961264575546758230431316508994367689075254124242732990929814754737228427158918522397555176916059804869453405476642149609908228100580225028689013968132738947417844788539878295279637432102786689078292073493610847823434530069001385769198679211074656633852194257195435231260024346974611460344126229121052488233783643526251136099468591559604098683533728802174545571288882834020932134294686050570382804610757963265692990706990850889092888139361801036005102295881333957488550817170113550361884545796802654024457320897656918141277744959011059593444752643573926290482528444983540157681094834519905951495936110920700572376517462894772942193280398930782983236986820685675205118223546726747661435354807016082964333777071897767044759744580036528364701918908889556331874922644616070544190521288762416910334724799766563389297899322034240962613298537994045790021993231508180507313808405047919297293079453654484144011851166417850258856628496262515895189019981403407359531102682118993456555518039908470239397705963269163631393181938632516776692011581988810804192953405035525121537184941294601816985494261842845956047304261315897247879509144101764238902755597363045789809735026332063682345066193894743389354141640487539634065555931352760878371469757349877854429044064682897062128942404005526745202482965634660310825103434257168537705690383170635678220757497309121751968728696615376127920516589565002425866074516527542154950144110307330270930644508096247987869302911375648442408300910058186031360705239938510905476924685397969992653153230778081014094976288624431802844869708328739679003811411481229517051127560793935252548003028517550211809594702718339537927537773553613758140570165549463456282896725756126523615388116287845259749783364267502509742233112754189328713195236808390554448982861587841756249152798481035306031251847336261353661608069675917988768835955292922719503369500343482331998124599310030408102250051856656161668624071562536443741567880308768717438853717564142890296421307839460736644822530773729436721111622192841130526394029308027945327327302826226382549162711854348137430786887415619168656031228854804460800853405015452943608061874708919080201663086973326156857089565166262218805479447421259167381967674778693459071982415773542173383204306061661501200815456314131113994637133898696075507091213203469515389322517686338320677989175892784054188497683862735120765899229488190946484261658478195740930507641072935930801841075476201314250271403177777871123397110773247532187733134909776278223868732599527983459453445053506321402512125488797489824237769740045051567896296665005919822060740163714092056057152685280882680274544743571454873583305727022547548110161119211490539693180646157853458134260560130256755073290725194326094300758864295185808940914739897038873401149239355260878406567866859882775004556588061914987564342712048173347480130007429330392903219413488617314121262568746449910425377398153840904675541288486382221213602541110025858550480656824568285269960533085548285564362905298710927096465357280962459138425734488655075049099907240240631922100927949115577964180086494435547007520400355705847012070296342660434337212516831485265130555740201202121351839578488017248901693028131600416823115981248218222542025460246920350685680137416656554607069591823131543786583773313777376138136277510037596969989012412634461796111934714675545961379248793585435069457189226686840654362418578774722296196349061251823906089980151563714283889025422498079292192720301746066327440774273079064707206435745995779754960407624547738651600358896493557112961811729211756282754264034637734386643905403711433338556360788811713660415510331410443993074294244151492575910400504859760728563519723158892132617970576571464349940105044620054260565902241328349931963955657012318628850148684611624934091909014138653356269578069992633859781029938494378907834988512321350416045166328453945258674132411369016048210447333271795111557124276561102661829729725032846914894885339852458130454039720789719437563343263365689880229920324320115273720065171177015389811219839707120671526851650969923337915511954388457122463734263475175717775291542207947694746882444911339249493984491323120053533822667613075300966763828539328252011218656430225475301875842072363601649544680032994016795813539225925747695044250657961719725419622548940504428276292516918660630057990524195751820068657335753370961341323089815765117846955042335957864798897778849755494956694319409023626491902017497817676004299118770560164087867318779020650973964690398329629128427768403084524930674588182693256130097705175220736872973218069640439951825670798625250771882062680812361829886870735710881524559253964596303233848666794618981980613660382797997962786744938064507268916832915520642799546145767730789619658314854294631201945144912976659077926854716434021598008577010798530545652409168439897449890705963031998734385552254677999690383098651000982712157588423588454891966127175983097924470372442852470400975063766020218980123383224819430812968501883845346836320120503006104660230360640180900701321462690784683636174778954407928911113820858182744934665564787124687559368925402358786252882238297879575033179840992693415428607980991034966828975886279637467577242774378050288618068405904301495656010495300343110630437406151249804239392153430943562362255068890305328065758225053054490890721334976418194405711688966791010629724449613952385757719950290365545746429231725112054877311197821106739592137394806179285646183642255134024053289733298067138220664915616146834984742364021848381428500517399670303655149942083788845906959669935608302049599186975180798835690059577516686146436628951890062894767442621475895403593316283468957247688828298343756662333276909489587592561135706656945954233213216826525112514207759852006944491185153849665659895141348376921833782111499769790675125126623409853130358058223415713836799397811824228047354801479606797404706049973237144440850522963132925678991562157881141618317554752055623894821871572395133767899839049790176581227755588878645411816799953256824597014668030804506897734846145896509313412537656956526289371050764251351261280560614152860419964198919376959772600948545727565340996628522326682205079873034718356434304645481206279163638282868893651886361000443125306857529211551639967344634050190335335345460985088747014820235162677399924663198346847496052259629522482448442980004183586850991399200454370147151990912865194585843564547770088284208296553295846156607519405957242624667942412856995753151258249701587056104797487637462711182012216877572585188279321227323752333941993014850074251468734390446953965299301031213490297658021459392898827199205321455691747830693770878001032248545386812907227992777697358341865231053261265564402346564841786014344208433576594897774038734344512511392567419721952083317295052754843031385010175187479858673285459281648730795574921295624811389670667463538192304286544007384607102887616181634013864915120823612716871963874087793306386472012483206369305884032469563433195112503150611253152529807430391933998557074591688563637489989631812367081407534176893196547606386342825119283427935837099197936116600815966479971161545715213546277914936946048036206006183322512111749271952587142991230611633202306881083638085004758603561728932963705030192132450697547423835974770147369069765648540410140978050322502906786703560093239820833257751900538725921306277569485003684770795566562406029026267368316678908580643004681113622504492267108471542990640336111994162535467487771735815189678129423484148465425454396335012694834726914978873925430262464804187580079641123711710620672024784494894541422038272872005404353455796427682857165109689736719371333494210453936979620151565519442473811933677677863905499911192899139776885860128112032984874227713162938575437464159765326976499140382438019987005602273397113166401943792252299043939902788338966863350022783719265966378403328842726344622096688268304589494913114312937739272723306106392282805636292247635385182794350929774355425020627968279052935462160449129519383837647521150000595808712895528579309382200503059214844848684044232422567559375080360231148369155409892027453858593364590948138291473012854320512398805763318808413582324890786186272913127229843137752857829035685581696504597124654820275318883788210662887877371709553859604334344971857169607968476641241732645456009468507011503440199253774681534097365737444674096404410580979553985076638482442833545805682678170529566663909398225800811479229375649611487617176355250856062214948061744333737101114973106829234491206844666062237896262692153727469187120638385339687694613903994577332626043227710546057966660375088477783106727898228159728653937112412908253673149470620825489086763882560046464423018481356712599549560165260485331399375120866764940936119299531530395578454862655529445456558383810741455273730217515266171024608158550227046339972716837758060176838510942251013654865205921180699871992718083804737518850559055806651687054836333172284595228313984064426803245223725927050601781972540783984915504426763332305165379714263670543349843968771318765569682760433988529039162091537992008717719865726378939721181882981938505602634376748265279086542354899653448085807591834667967246545284332095571703976225690228059486785583422832867850736916742613914430579952648479623472895272548170224298389411683552764530784891264780954824125472636171145536298678498580372672756229853310239819341305718721938132494271888362621443707675682679447013692146460121353750403834192258886891265606449213316860230672275005243452527563540048112891991172983882999187904322196951540884190005270224281825063260283616625661373124075772080841646474135793664728555214512173257423360716041227151195699713954306951821765243069247345858084185307678709469023904423726194315000799200823133310690136390046468705418367219152740876364035475503993486846082825171703875897333896843265761116084673185351441596007321357219444272642054675568968874642941501840731501937243020801124564739108724491144365902185147145306298626428922477776655315942901569120904974466792387065882611612291205213409936287817097119657870362548452643425306795847157081980827956707408597932972182902259684591786868019391488980181484659554896075445811761853427020920775238458901686586737433481717363412482300214596908549374458858289471287545769398335599602249500351938493238173758042481859271764967262536753745303142299284157323582950949363422007943471282899541660757366148468233646413671250399259269600802605096915570347302807840123932716449867268341857980675517812702611680525541867954655050205898931794415626892264667579092867798097794671825058302023072081936620361670675856805830979537938012812795833554197025589888917625173475028048812977596707525848881159611780679223566231933108110725353918900937184952125818420255824297217913720378848408252082317935410087009887013410916144622742251754649406685505831902726497732112682750092514568029284787650346108679299068621609847240085633223877111182246793333399677425152982019646908708942168327242540747971555307359196861556882233987824693828789741380030204047173435394613280820644686037112008217711767534701968046929755990427781029984391903154308076304171038348402074564329262510259353559413037929378252506801628142453159032368207935770397492560017946006427672938903748875153369460317848878791356162128544202973109553927590655246709585728057715166119292228319424814337133668495503922865469090076320917466100763877077351155169118810043027003397685408825185646817578017604129836652641526324217649021981852094367228547570178807096276011088557584338559646071449242787509866779729877029224365432230543114918182672440874365994280213848333091440716015524835789613761651869207162643983532818286396233310850660807855639485744443857813822807838179185988425533107732139107419192671355486835567968388749550236875812564415707585750152725248468744113511069867330301919900693129434079218169312327029396956470126267840950140769343054544583618115806826093093159364193995666165674601737310555079519931286261977126676169203940738696913063316701933758546013503366005508065104421033090821478494054535237540682511473770005349905665455312247473550340679021800417687393519933750534212064791820018979896245295992719407660210995073229407077068992275456366118788826644397663585531264836662374785036266120157847794280822446817180933100998219137244581332815338462058093846803791841377848617218494268211423916188995934453441791243262654741655053952896705225876426005094513472886278287368525204238922465156696116996837719921838930558124324392162088267386971921499496802781215000712226189195719026408186938968858891421976551185273300346609966910009486515971635360268864857000665148112177149425555885814790713037120464445689354140739900819927642261177088960977321881418662266158001253127628752825116532471918449776313185970656247400666289030238636646435184475022025888932186181582804433328602588633031062052973571147632804277426336773261844860180490300734760438100646882378365813734426923239071950087068445972275315746883801077702912850479409325636220418524429826243444836223281283145375923193279825282085819908210238161524173181704313905472916481610946007522621213787352752009811821451615797715574445036041169269929227422837896396016975213625986990704411696530188512519226423459592120874899726604047827710440816290519018155961963471163578070794352637360072663636646599652718567909291445646743827738380923680104115495234189148027517556700114163132258505429464290901447768775651255086723502317526765636196729723439078186373107040581458092502761268726183635624259331991822764964743512279366582202918474802588007961447488058652409418852491246670845639235265639904935023570029496059966399726486623547004507971965773788468609653984418412671688268947899169618167846562760143788186710902763584313173789905719803432243489535838508178454395648849641043910484673572079982426425556563855648586863310273284479112049957641623678004009119965703489676837581140385842697446628815399015042312631597075004108673034756023063501087044479026116762642919550500216891293255048872441990841461240384398627442668031365440944573786601223530309822352442760018238782388305358028383112475886439012680274454600126792761793980142057499874561096361623695505624300247173312894404734003349127900484458555415580216174527504016007173345986490047131636030824697447318785489225482022495739724278720481295002377732426126575289250259894591129816365517940016641795000593413332604229574076923562711682798799911172269293580812262336677233941773449796027030196008790662514676216100911402145438414584227839993514306286367196896653651699061411968346606741112391003947717809893819479761144230540341249422875006173070067949051299268278822319785931655489998487817538682583428881743042851363954272949128270581372448002037211026831498973275888573369316145790162602606309500143447684692244759568364759980941026209791653604530329052178579072629888466241484540387033337918305614878076000726969715910021113317227731432924137866032935265384959861520855034587554804940566018132853556418948301370072214201924482369386839133893537355050127888318133595476938798772554423261649977436343421902855896378512043926611889833513933077030805894887881233104789259080009451542404853135266960869011887140799403633856294819714110038031214340430129510389859251689367181357099604300983930869414854262052134816997792736103245471234410356898301284940344258930690818590673346455996435546004091805653479595113742201737036143734542321052564040168799762110181654815470202359839024203679914035614368293045047450090550376902466282174538566107655400497640882306392122001410150447132835291906612318333774237056128573271333095310015398050469086974516560053209391721146638265393347977855771990718933428443996328468081100686015001122893324698158246807501338098916288432351309385276853051094278039712519830323692427599959753223927871267161407651786312551614866626588068277550322119415374497172273587540986708632098558336905332843716146710433143948004876039546576620052489652246255072668122091055928516768270886927565947301587697282652995989144893893159181976336180064675006792427317985840631042629478561564700130762534226443259776420445490393654714857107290093170681110846347288899102686058686109160595016858499252774334587454810330517516709207064177863369293892703785509900583922755410503564916900667570215263499265334115127260357133942580578454591769141282900738527399410146392803036761436969624549256369387179801878289143468764250622103396893811342935684607624861839077003746193049887629802485234494333502355690047877053396238611906909004912508472869762894915840763616751098000301859873908782843922539927190051559964584332496327870947412705055492278160015983146365265406971255962859486636242316974647353817322349294747901165250833250601246708096757581341051558360602895256238176497842663582937430443976614205413673237454033414148936056288187488286866254280728559476882694361135354380015399748343874726173196983237157848946112707039059667674541653875063408195885908773715438545361068734272574223092247451431321321750692257809005280050755277662290589845178584375333751998618572639569254848199865975978499563865677912781618265792730025947993137594161337617457164827745078666701795537999625768466402293931484689489586324984241885076320536679923279414902241829539381851777897355859596255842410577837430724903078626203658922918211148373429402772985729746230983523755955324963852265169363538655047145580591588962689773948345118058434809035792128467937943918556435147905996154562643035953173364359704755653011274515817622550578210442846092013898407323179873179878119536575643526127511922221950903584435505933214497289334632030219416422492537515609804063420458509729617234549844553942924218650440120913759647204588028446350258313752447718881595824307342804150702726836596535341677573144114476284036371470050311658172610412955344398912004759014940318191209740023842825936518666675928174340667106111450692077227338290320668363653160452273231275282813778925394509666838129689619739018387943722164066861408193959321121403251246059525243464447051470396139307052006872586935752747286778470946392106396474839370099682940513397514599870995551409243227195762212488393999141282924595692756438951727797753526138511848003052633115097946812714552056239894883754513551597077058631378045437544238272600097171126333071814327817913127212368183883525904841947102359514893369955685575006422625208818305969024055365831215327944061445948652172553684838034478150575161905893677133940317698732258926846219189122748090919843467767932853821274043792011143324361925883453877217764148478245079171953664106995574755089113507150788242843930414440152574955914519566278493398126719557724796201396947291651097522429455283248174723051290418371107035348414292984703478568597414880851818746194454509304423833428183842665276789522230409483806266874917703154358945920447762033305465232669859399001911658569722817522444197840888714524714802091066361336436624238711242551938703445878785182562399532315442739642764381033622374213376530376073581468049651126722209634587840587257200279331134438963298127233211626910194538954506164524396389531925750917707973647206223540907246288254919875779736849011686021842757212911814497618852054798120024391783675826587420728472814667617984786327191804383062519432759266800335472627357516671561527140307866533185825714326304863912396626379444325165067045781669172628281738232391297236372326385027553791917868731717188619303881260360522407958422021549098205458083457391499879745654202615667861841184925107637591566143145996417434563086593745974923407333141797807952702019911803058307438951921496732053399035327834852507765384534511493139728593371842687353720600786051490447558302792218875466744928808513591177150710307301933482659987141955860535664362970418135052469340646634450042798169680510597001160251233168053616947347203037310949710635447533276708068425893465546382195028507226342230666235724071316954963572906731730423158312941392405999772233374618039142795884270413774168046084122535975548907593036897031880297720968027284041054417107410304766937305986030761020356908647496987132059176469077450604719521412473649990603145689400491310178274863783559137042033107852382456402365954788754372592048077962151119506367485164750754772544466809144627662168036104584013403446881415774686094264543440437726287143970185822200265177240782852858361378407309031218800449863933807440508437944581486117655457045220016682091046658674025759382637691019043704334650502586569511455051097266924850206774592983997351356584687273824307944765033259993368003453535097464778132044687355475779934309244269573970398603087887483741851488816206259697369856575975141915165595619714066091241604435853703819584066717379046930950813767776048922971533756587810127314032625903160393006814101692587752183181664324580012166442851748941155715862990431542457785005755214477663983829392677107786990120329027171519544235476099468643847820202127383373386164952774931805273398382798766745257638886611733181429034163459091027740829097345060799814357225153081070773301180339257243782574217058348670565506077667061139796003009973448450377741473222172113480198384171353064114183210315667824568264262723673249235791495366202956259686455438827734072828134767257036048898964499384865016865018307188416875430184396126622925584022884466136599483501814166255557124684067931130515871812757653076079869937952918033990955041947798042676445466831822732793762645279710692835246247165053684828348556453207493821462410795586538362471110041974667082902243160894333719754941963747228431770688142107244319397752717804390699869119512524657637628309084731081039061415499914962865374569091913006517469436319409718904137277069607711559633634419917354461981380187366842307332984577326957557109671974623911979339986743261174385130336432957301171741693824180504443313194686261748874843806004930977252294561427550900378109620427708221756869275982350311094311320937289930262118259789914926291807001901197368890275121560062228857539391845632940253793277304209992098633213049840077469378046150806892514073621613430427705551580524748709906332974785096578340744623316794250699523124851569398913588437493115026322322311678009158027854477959046834632025741801178261045949242505100907173082245077728729723314153606800667608896363679420818766167435692732903784948111490810736739434500249120266033177038833715096838425518878458553742762359894680645416192265721537442647407183130039255529057606260278240990021051670309240894333912106449031277744981269351013809663260422688329622978388732257994264176229708884955406786099249423012241095644824225630864373535330290917689409706476001076916654855519062575895735309834437733549705494394538753121204732619531046457744740574699922297955789048370742276430805225385977248543341142576006922676083036732090270236141898856579619330694660837390031157232270921137709971330896617755782907986988500615810709486695847400894210164926267688469337303604027453659031423078636095489012460199367764826647447748665438577740482365269034332367973635932389480905504318273677069490933022541408917228617407903183539524837671501083822173292978539225420448425152555098858100929776220986188666913847465607453164224762763165302831102274681649346399615181609048200163082647822725378464712002823429372800007175445376494021897321346137563544762158536825005284691891877430124286704420404233268015705115104496880762771530825112288114190062462761551108167982308210962750272847829358920924458956258012902765944158875047261320611463199121319899251920086833215002583403990450923335841516661119391527552063627728433186156599574185807224653249998641927068944549685165541185104339273805603209317932216889596850464347911120028711449994662500839864294406773188484172871110422367726708400360715218034835506745249257129699170128455497250783082709792098567102207932607494343625397128428451221895185043865486485450354265288965915490922930536713969323980875017537367468262216515149879735330489238057102562907678462010344194047312446167070296683162809596791784761142905634060453078699870777246467160875283749906047027018953411936887228379136405756173517749752000746339037582018530199489226170233785465700586844576514556722619642646787308845010945545533066649526734023177092428768898376558086394357548588198455775653275329828271027494289580807921714197674557361947238591904192133591033912007942641442921562527664750466336704068036872291689065921958227419630160235307109011276713994683240350300345298365464695729798115560656588005741665925999890592000930104431988421609871191342425698164377803868140214775191706007509167410226076504093060612406266890552232208554712727080590578908109136562264680366287034411590622808469342395408887190899980401223262718937275699124725207605323001891843799041905140480735934749785435708734266042902752611139276292283032997800731618890267234997050800953978698716948686556526149388273073347645341770096321884714306259382966742312268533739642892447348085809887978107043551318974586666421172131965403816702748391381431634743031255212611570753703427592308169835169985218283419623671804384103561156436013886800604403743649145061595434449782858733140539690055758516905618815627445078992794008275770354274921912787210949514564553195640906484303990104287353754095289159448326965012129387689990221311732460774257145675854197939795381165741979654784388977353848166101930791491902190700133972872053428933410138023626286227334984239318332850830571808460659835444375712126500771703494982129584902477157711168827430943801843196779687583644574837977283543516497456490275219760530772941520287171472921491681335237153419925005053663183142520814026089188100302689865142506935422761476372420867915252054184827528065138560154435815019510284170239432705932873671340936895892927019108182756791858830960725718361561292003153637331912579522129938412203019487543399539684023236030281226508808038818762969789828629653017571432968539944179916130602316791015495107987406426136323455578556738047243225124326371972137659520572070702117571645979170478318936370847969704668509524699719687776530195713377459556388261240726657448363425276470778040561725116418351908230394536366950700294747495600281887650449942148405224971547401486848547481113532392890493781562829391503205411813572467993771180015620506395185843902773354493297765139965679601623710942107809292870075136288180256969576317118817161106356353647136548987516485903066724879332674662435188462728896531003436487171601210896623967185211948598373739661069478160250337101149632731771565028780257904555851313372464391090064131037074181583177637478195564144526163046170988182930294329484773103854678028670793334561111475584302364861866657798354787407022323032987090155711141488604931109986084894465530818382415261844252183461476118934364280655484408876051094242360604366031456536043335942934857806603913801389262657424145072641461188364634959300263124444533342638228264250264354503540424042029668227906671747047554935487433156994720763758263166843235929830073883763681549737704759994132567643135896444679421676308398564817898741753306953015649895083984685679088621183030691496867400521303150080892378499632555555627908419582272925590009879938844038395645219740911193935638358308315230874419076563284078803459839104278200277232532185127176017523157031741646452057091242258268087249913977309405075793373429100955318244545632269795001403346933150033647763946269580798906481538086082717683907245879426572177947475831138758487584254973048391396361006242653580640138765967258964068491382327693665352072092962824824745656981979788756590893806339618543486682445155564283807036193504124798750428792639081898876483705595130118143215576005060082361015058638498578360442181007289716974657609785612089544237448102114823287740517162413942353619425353328140932580064037361753276244048608883097008609857173336637847322556643069282155288669814405684788898059245501675411115444320854884591852081720185087726997396857235256469665789629571919425247020867300028782701511371157961902394700369606120616642881242701741624095048999046991202315207717096224668053683574047045360829340314267101196667554172635362745985774536464059610357769647620008516212423041487433766573237827327225999449027538950123116044650771980916919993173601120877329285163297145846160838504106122709048380439856137807582984592084785298931945547260918769147643332012721670321297403310385041603752394024913876570907378691233640260784075009967591224807837315194225460623504735466710797586506226177886731544073852070952148274781257426411352328119681922911505625093794764657403135168890598096928457377643811106468013992294876803323128357829046446767426573417501568308782282393938840865450673102231938052136586063167818329281213495244531431509633424116183708516268769043946981250271788996457110448688056047912853951288858248179452876296014939304330511643933112253375998215109778004460073574937718878064065654322343681187302375493842921923229520134822338062810112024156579256496939333375860624204798130811148181590633812283871649378999405989792770133953133211093880331719605695662114689288167206103622738621059047185024122289119497255522959229069533177768758059638592666304747306997836239076030321888344550855622970067382323265591557455511299740343069969674073232292055437778129051684325301002557931408491980775020678952308994297408431857881848439502897326690217017166018374573802479245576199562518398220240609505742734004707241193343288794162226548345042905202392715522804985074914303533683314608179966942224052320335624660368033487157240500997553149649751356760412954569210213746253174919911779070288342880719376382004475219126002287620504669910527367327789688303826981120472899950859931536460360976786295734342704161098078005253386694543725814748035639661699972509510854164147802415163169365646356830670056390152176466650140401525010853325304413782932104004463765637237620314371591396409926402626227342398799914022781171713937186107440020183905754470494190875801855506434050710415894708349269136636331707673842360703663851940448739993368972507747334931379587760995068645572137723937931528891886177384389631958793965743037841743478029149642793962338541063901644951332543516539840841541809053216416912446481341570327337642336464539045681881356630267607595608440423875757560888044154989152656967795863878625078739458813057194216416765941883991444838063709896824536084682474787089794005075853983843310087108947156461442186214687873970099999253424443600870942715593795362875936592297568922026505201588054855335332990636981903289018147738603845239731483430485562623034742068431745365068715027131854973592390084617415937015323931471915750671583756177291931991792728713852700709652780016935531923632507331590190278589697281356281911487529857080745658876625533270919309653927199120776030600046760167648868275034363434269291600298177262633865601529797367460597835432192104191859878852528066283318177968439608334319088983088437538845518675899792827998341440167999789722907379352223959149544108457374246105031692880161364521855050132872731051862879529296283884971822267553246708125274193395485897531783434857118659443120301218027695653886876303958637497011270628469169046214509495310297968856839839050623669378236499774995989584832596483645795113088151963291272869091050966512337069004956428026517965269806823203881605052606099593080516599493144025388259591392261902272454108561920896443603043581300483564912503152694414848978583048900163054127583400930618468526646615872831732394928430661924159872845239600151642433743089616148071730051119682806468305512468530173988677770935238277334930112918640637472130206114630861756847079083495001039147869873833127687582087432183029526809326487405114028345494335599289144929598823880534955237060556984310586665103163821248726745873266592202540515803201606104885530225172709635353461954605015456302939986850826675442812667267716506200991032675180186860618962190895700794945383343950796597117581916316676778934733835253153042262362673633279187669831907973975033930041518779044841904549830776462523542446602888770399869452901917969247718091451051285295881775138180559758156266049926262521474148907061097523154524624593320369616055813874953219113932912864731572561819629134728123021127983824475197250447610801270737639066004209632032063116834225109423325899808164515355870980703421269299823258172084042037297286528808675754216037769232689450527004413766134629671743593122758346261722857628578782772241555288809850634058194232766243008993167608861014135577864062928048523421438715116486413516897591822272936972731677958505634649736301587985549758907639625467547763515727184934694443929888995749536315594304439926971460497967755146922885997846631141797173507690457099311433798539203879161235836133374057903022189697080263234691431123008592283024652651003728162643040505807063095631089918000961450321938163029806101124642693012100772906429599980949075625559919124395385708759445716167913229782973262726596380230009446072295522739681234687490189497648632165264141878826107835063949323259184198018465010037338590046023725207242948598225727636710467531614008116272662449219943353459949809614144276671320810636863721936468505935231686457744079189242986285948933273461389419476408328223724807066560137131624053595675496089968099592202201988834881592659073926147947992184324224748871570893215797575704471418272198208236979344151381923091612834662085567410608613088893074285093511567101806809773157113038554689907999323908992554712575245880795836973333336696565874545074346748281635984775601583582316109846989514569337663017735883913696881213348359014437228454806719243121149209608177436110381020720641678022238787180309687660916322476161884149037570995396973861425104257608377642697645864932550420931256004126691354279428261200816190556447123876469720706570350509367515538981623500120226548716725242892671164949414875136489593475904660136992173734857207031306315009984607415977865411090631110003260558189637168581263350879666979610134888281102418930121579600507747070436928711527633748097138738998636313625748721777842988005857796145470195229541470283353003007696038625414394684536371857421249960706605589245179264765421587862808898785353570439404002497583491892658218798581297734909243435920423033961751778925252516648893867739660925281284988128351805167122182034568511223679892105014329194576121592172172270771934035259511038699856401025633656608344956826624351804062800050462269363561466730964786829592924873481744073834783443599887889600233095896565871358699785211859837767132909953567225809386204786776103745250162087950114109662329102185853609192428849728792731394641366842537660368283032336459152498490212006490830787251653193114122488387898074287338356893281105737336828116120245764430483124110540745307486094055289998589299076636484220176378417909550106528623374730913174927167475136941179420251869848756814033961109630884580645223628964029490414140075380737891435264199195051300513928616647199356217144507316491503815753675293616320426732165236029857564157230006323001484362562059616322797031651795458824080074519290632636043629704559018793443645270569632803925975729521063428319456000855846160247118210207736840169820550412141475146367793261154921276525769081664713608609926189432330804008367823716739714027109551705188196313368640329749154375573582122204452102162138210498846540883921781161007552886452196416776321100976521936541284581378624085100054208003879464441539190858968901610078687049316184720738525491162989484883815453792835257274006809644374403218142787122103044628171616066933335064836468501779505048822998283511713832233856347204742366446399282821511112599661547846026128227717028330841635959417444019104899322339990480219801502042221984533192784877513536182117971433056284265168484814502937660279273456854441319079835098540739311983898126268084570333555808204778418395262278972790011262684153796021482278223029108234086270406865815092977610259097644203423317503361345086219252949478208851700171444253705869331846159481114275242448591889217475466638257386908849736580421222594739350741523721995917856792721807373206344453692177152471045459941915167979118110390930964191055079840095256924724632099746101954796280649510778365985580668282373331482759040099047465107784480792336892322606327451180531445525732496584370424183098002812692372898954767835351355486566666730570822350835191042934964376977212410986635377351774381375455841592033443073574684878602454544009828887841230407032949045453901534097062828758713274876797316827625681030030754392625373126260792450610928366382048634814629529022076654500932836324231399296346444856389733631079974757825206328857940122971625051116299029681726551638626266900594451515477569952687174046499582798999389538775559546177880224665109586117167236164508764255635323912273199689671327234157796708091955046199608489942075554314844942065933781159194271179429020607806537927339503042717882418279555689426425433923896641759222650205776389130399938329243147540259101441496613211947863692577247669697921094898018869765585117957666504428965908553931050324378747700891721602781074417624690650969001227275352690421242648205859993777988116263720479699389038905710493751348582800598049675146209248075655285825017282008557741621851425736310824858595605100028111666071203948543256115321129594899377060421702867024689047893509465374809810428450964442713203987854249212869446669229414774981729411655069246801968311023709570522517327042572917324856344930934692460911972531063581222631499419506165501996815077796842057545214512810593674360468716482854072565022534797312514649311167237247135682306555915239369877721162947637663825696700191719831521076965621380180160886435104548273661488147178044863013226644775967083842234766730787102012383410264781049248969391474202190490793379735938501355537341894419089516112600096814505309220195240848751988021066225172690261863833680610224855894828050941285138405380649413384884370593843958910525865601185159920029606346311490560144039392333148004547768387080999011418572856836658915182934768079210050564294846728322673549148599262389377184718373930124670948397445820575573600447445155076562387742421883922028082327988502089220518535825363438054170739316258546101775909773778691982735895328242471568087798102686117311939742599858010621329275869872339416806305734179595572171984320285447310585673478729047592346841817564128259968092374712524385339359600277367310797081353291274959698871302717461018995773754832475159296492916866678784040238625221649621465640185326473773270641458406043222393193963650063466200520392369866524470345830223713200661814299041861754414517574931917413475219386495533027450519955648469909850591334197053809282251857392183366822053997736976835321814803554642398657672033355153412812206507553279993946615994522947579583632037087711860191663127785800849117447934251949978218547837127215342088773201656376706128906278322541029329049400995208110962591407391926919913519680896105078311014361570910434489143337424234021564929552693737531617030833106335463993798701734460073789543018828189225181025875060930504902043051135329394610600983163408834440393954189994944821949722757913799173471517234962008059529862614622020024453731396127821350792693027182515284301222012553597435306896872477060678383830468678397797775413764716305888579421789921478124348316091462405842789773682010735882193037136711040011129160705757086782990479455539660494361517742711312252038510671886451259175066394570181440087484954920031090140847700376963752164560838431751403303029335666793750655943403969122475078259800977073292766139971537627054659622025903688024349008393735494190078372349873421765755414990652205490751384534241579906426691838221967927695769434938987648730707512754419892494496004284710170513167407436758950285487743255527458599975167547778462543453580581501664909764863687822429677453351275145583283396482489109522961125311827994852113261323869548923801883785602496759512579339696622912743896520936804832731935004874808026810379910036356099080515814329501396417448902027993735324923121772774474380738916667049039426227451021761727793911273727369009790861335649167487462437504638528827093244945317175973352210974532516199732627309597780195054472455753078437522693189271407597353606649662242167248672631902201990116741784631417384747751898705968757225763380279921935956540853667477496483601561320820574878650824820767143958561579127509360896266443301135672613800916463493520734606492232236509096139983682950786627019842210397555609604360800284608544040081530880969872134618385127877361475948003162419849147070792453557197083321878368557801319589210618491151291967165304399995042174970070740480108767354212861637792400606486239108178954742150332313689438911465019180515348881981581519146136422774117534313908258966462182315436124284413636401752534587024870912012928556694759631985311792570798058949095574217054096521095451513975669095372018281001722858064235971971739824423622724326246267334714761230470337381689733883049440657323312976751906452034649179456830217157117314774357746521053491183533227136762568309976581550357576646402944233872412945364068509793898016669956475565325492102270287657670842590374145105816385524768838640576931011296733043804306830281921992112452670505847135980708000336102276132639759386149001225166530707501088299346320083305304619859190039600603978245358245550294404616288292279692314181042065855450881456260829055501092775373192614535826087247583705703300169923144994486401583164113950769210678969829152150037818242196765584134767575437091091628244731043471349028156253718171223457488352062895745575967769555353311723561532817923775399212640145418134018576349562375022328063745635657339860794687276819858009327787440298575025115921487503039845377897162979702772528392326744734912302007094726256398154108544228668028762324238145033034547710861044438854913695636868150023302104485672013076562448499243275789155488935688692918635487340728221208979321629981940254402437143456236477818937953638909829559969790272534852289806919670366035852318893310823567976674037396904433886439852323001867372671034718289861250987135276140754170654763905545760716876358584357248526467484313009548446155166104484763093179379243341157174381493313363602544464817394432743063888053941989776489764763758073616700699683616894370968034728617357225841362000775165493982744640037912451711951902004244529821367446010400940636500807841720051823371984768552389231280546712781526023923329724145555407835794613123232892157505303481346489742840152922517355465469867068893737868684451822617044797627138921627161627521159901454158278188772448709672838483889781124745326491370090534625773459728318696919919856885415797419480789270137829692224998594291822843103426764500646632525547391057413156896309311428662399026332805227597545791748076181299767452900525862701003641414947463656048710204222826632502710860385677331042802035350343430340208068068476903310488926646046643523443410574593896188537915557528244961379916541105383267510369018953599136587697652567205858257097327636527429823399823675820881293607526569224627720244344557727227925277929041371291870756275292143176036006712620728474307688649679688214006073429733421438110530518485882539348146247880404713329252011193921879769818031589222733416576673466107713523525867108020295203070289260480013505131420317348765965848434621050356391098927587165012587164398156205665747313621013618051997165572446868559474142872160406425201845643707288557748981617244171133801564475306171568043138663585538820497921873454920195546686451157509278006690175159477604836397744197397968707960523734519242811509082274673488018151386241914258036107286588050395855530205282153287140083330002166124692566050284640244503171641581761459568956006486804336589193858902235843427954731562329833803828415707472479951068543456143670792695871609822738769042988871705522265917790256856880378436082461994986919395470795751683108888650342551413324096209160793486237367863211840640754248443455833367269652374780054365028820354363249210504381660124478194163962953052959665229386183440001636332665461236220974996461729384751605056674741363635444073439195172470648121535945087000184217172191043018802193267624412762046558439267022588730349157507225581595589729634626325014633342711891098826809998372343298183291340631954172497118694804368152940104627985236252495065207191648947408597557087291977379934617507483152040652435666874028767348458382466298587246774992197400784108035515539887089931331571134735642320885242283040015472559742023717239134798090861552400103310285124110713668670360029158472098484781903437568351180488295370301668227316418802178187681749175784187034469138833269599174780914237547374633535970078261378510754298646834340921302206605436826413481736655728553884715091269830842540523527287972828624577693790085767927618760971957072986183381047743253358212121733279518763109807670253980523322606944836810580176833296881546941724616229645680868725141537053207329435488751701482343131428708998418564770345379229821098456090723396939536947085077615254495093840833520493162299791167060983794255927653193672010857679282269885567602055129066729613315232142043847369391320413397216434687937037928288259492375919400082368660859813095874313206380019350984838510068758091603564029761887911124496852359025353488359168239449293160345611364913240075072635697692590853636105725173913425456133812170654645698086734462364963796675946015963134324858925993359040642057225432688464119004701620326846555222559970933771566896496883659357600904549370862071215971742953958716924703451465198704638508246172054914018373134677231637313693000153756382229031667693337855601776455874520642441508398003760410652084924386709758424585323580803305199750994320232949995023078550974390090498003476058306911564549877995917199661828762890224261174340906040790998959245847377150602282398849155384813256896831968652218244610664565137787991233761796375765191051142380874616320014729973384632103252623783728199966800780969180000683181376471834084910532439504874542003551318940898635682314090880765443208278158928321648079529862307387157482562049218360168060498729721780716912913568278406843600037867139215281446475916350677280620257190396385596305004166913979888937741707418458291634607805942468724649578147676013231965239956303875768350185374722702497809786401247596316906953811132151822761762894160363469651137158554739198456637271273157464814742373437347286338598443161378839842592150175231509671619502049350437142529364239690470005322783499207324025557725483069850212698611826966772284801999169101254641128288062540048854557408776145606056277984682134624171265821576359944510576805237656901724177265580700781511597840785494172444124003402710266873327529149860543222859435861804571486729908555374669791481856024572160538985122668298022959081640689611594972345957177250523892505200102260173471053296914769429955502653178616749701469968143195008149417413464367908659992459971146538451042095092308531317949387436704111030113418748296503506719132765310758559539228717641646171449652063735367288700777664153061531589974254038133546813131589002993831252743744015193086449685826830019141572737686062083081995517709236915188177962067463197257389145012482149727085938126739471753310133893049395995948622077564240445875747425672251762331406090627805216334174522505445818331951761791784537597682073678109051335407026167172485451565297370837479253730242208807264114188647940957333937461929787751483293366980723776641467391801172846060935033992225185524773923664168487401438048657374083005487511167303636860104845342550090839904687225977073938457429640287343751063796608742299719425635676143162589499770047451098031384858689009475483971730151698004997233115095673340767768798018044205944357057503298265015121304690438891457403527988682087119186973870102123819151686826644677367671020534790990570673154529344518104765047968989073304712189582178058938624409184614814552640301263026665327186912263024661713264394260017561840602166695901436866677326972243052427023618810905656256101673982915742603538961990815832493102301180128845095959812266294192122271881744997931138789919534422019314608799064063444362770081365971024389523162391236144159699201692603728890513415254987305374981520154562046264408790689509426250925793149300501955457648562681349365587249170942591508696556552560001130296473472426773198167144039097703793874864446562029205212208955556676021344847500561126737808920779775393381785148953083777118814751120001289400686265737347293967270883878804844939739666400646769280978790978078154683353907053771831818083216428055439737950392158723777571037973890327277667283635353583208883111323068232967649090583906325556955836449347807496850409647499313928520963562361584594847723871989837930489963647705835569306330203804913538647889260777379619923569633904178152798749508926116218325178342097049418285832530273320254966806228002764026636075097244249011154479801912133475209564929809199359588738718267938285102599119452326086899587820512596746351113468954235653661505982006435666590253931818879493841273970181430693877222956312650515143810705696367101711357887059794042293521363179941033027144363137893166752201930291555436234145327474143198046725351055130621321763510380854021103088112022421246125113566848086068055875423919919297628854209379158287317357904103522649784779182221625074281374180503306135515165740714233121430514016592682962730679632690539646440079008297724209377948935130778444412607089033506610424633830810769824245809360705543925045760441788975287288618664842874685707590478019984131235346213335534688223641504359064040257199384462955817212617317506991987130614554448449591282179792177386028008234488503426691437699903353490680492626576946861668418743748397845736962658202850371312718709992469204863354305893662224102383038099031371215433556298523322118397380085010301163963034723349403800875396492503473789057324301485476485211541624371326203794794461394235599271169040063855140583406643518824372453432739069311838361442664262414022222498686614620813247787573041468928668279453472801378727375152219611515025040537273717331238156462800208455102290827371751237942181144955593062905257429230917187751206989803623867036694699327393465790069785754451366056647792501499974964291884602658567381140147133111344731465962026808027376360039754100953263902456727829932133697557066352732806705221745170929357796095653392962487995264177644836615045180203091856908142034070067536510940946270884193853491763836498638091933077662939853670755401902298099786033114369394937482932241363377075820658661130944106776377070937609987556271515632768172170984026819854121856074353180872983521735631751178247740011562104721126643472625180094981388583675903809751152288848327898165580872101117934613243075283374528852772995843128446522826658547366306704374446560671776778621426853200293267249650058716672571044349698417080770001709466531434609290055493009851901080954246660284062983212815092809720769037680295625498263151209415833453349584532431468189119422802683249440193729305670700658886627201238687979568594959398010475763753785802553655311024686696839771370512970785702574466768057144440114320624575302488737394989605645993577536186437902834988922605663645709087997948574833388531136842286244823183307318467322346896543814364419368678719760129750402252845667223391792931370760997914247362581648896968867486711343171476006971715883590482703882140605410824459739393219693662787840785459534381419651464647080380412555505231531884200934878658600293662296018980177869314584487167179387035259614294449767653483063162944855095696906279544257283866849350222598935245398770296902791375383638722470678114064679453387287923976281132117294981734382569675239090868134044237265403417313338528646720085405239909476539587737056945526230852666138076623042267128913808082132691107233257535976364212144728945908590960807915168152201659201575541915063510922408004316455451934253702550867649365791147348269963146850166877436674160351383310614944365024753976656288395285170728078480941554141215152631943413915627465842696211866323862740941335954003320233298207762384428540609342728924275724022084245359566410252456371884870181114506319330551014786467614576788921058703694298472216735829236831406927264013395104157277553363461057812704213304552647064518236995003041145161514659017928765469879322605259545595441235005209765239828943502085754082654863623750191639154904197988802270014706743503879928161578614024865429711089754559894778194399089438662124688193079430086971172762071198002177992833190166575904949544887873013284872987117777913184200485054919094927715922836474511799577148838928486373297174886186377753275712430985996711748532077498146137558801687019616026424850170340360560607766501352151232738691270091567195202581280497787200018768397647441181579551177893916471371862973014307585781801606520056360472081435344935890230488119621886658630894945186539119675862212816322404200904127297442693891043433900530638983237522821342353098345401029424078583244384582291159732843610515731857136986102305260709837671320113402793941783476843950417565409021068361709099318389702335573373905064897738113569031374137326957687477565833543997103761323354155173979144237173976984351218769746980716185778814236179854328960505266744935266483283927492968352645056181955559475762754096037106867807723913633240011325386151280121653933281694326984811806354560735968221164287600733467358870141671500197807417454977888275765607185931282221619730918384126912150906743092190399123374284389562978891364983248998806485635765233565910373917100237094469361354041091073634212279071567701245259974967763338388868739082069150411546114025479365980761052231502945219160430514925115965755893080877925901290785455471993916937674878847194071364056993081485701624572066622717672564408185245039139777064385436852780677549444242001742060002881055241861118353222388599551551344814553693474217018080273122006346398493073982917267953235273210059509422450701337588054893136181387361180105726307155107401901120513773938737626740811787201669550710235995536965978855537513039287314487830927396704428726237498297479477306983601164646280371625657907914102662342530199126497295016665959454942971010150264484340393293476842569887864775236911282871222162597552011150033690014380015294182805929746334365413853607232867447921380672071520143194470717380047064477907142111801415354648139433492277541584578274461639457760001433708535829531922024620970453145087778542565846841049713187760058732069704525053595254348021218752957693056823663473782180352470053203936627280348054966464399004601784724889928738776571436400778123891591493297030424022327937533434901571374454763491512977308836130385667733348547131333875840834642500406647978656864058936717266251003818459117009086929138356892320685253003964036571362194134960762939483701736387273605948198955221749655480800227891702383181217956066507521488371011193570924345804398629328331951067135654124856121667035982829684813406265768776961598927226296132813994505654723491438169460485405245968290444850518027172612421760229225415126705602601290695898312500223454024468631641267299158997893399984428525937533726053855505914282624359747018056921773909977692785056971704268021044230021428344259155040276040910814795388080388106378498735679426972445785713715895358040570999613903284411222171046572381074926805065326641790464451285037361237623339436797334373753274387580304849922039718606026286734930338478910467051475792799317055147623191213215387009760605136920480295843334672437045287137516374757448084086795008190948897499028909049914515448177228738067172498000315758307631763434929077442062624217609292757853208751503412006483781622571783502987424153728610266196600297980085347444764690613190720675158379931932474654021522406417958308442900981306795045281255738998029257954289926574570091709407201285239185823274805425013839258394487206774235614794921470787501307033912339202937175460107207800664897864441047490289814014345525056179594593724584262154273751148515305868745418485040723158273106730135281710135288259945006309455282193044836525790998203753488355791841709179064714095416198377143120548210262150958045763932881878934310619957056890918569044945813249426157240147997535635652495601945785766713737854234905344470927184120731890764957538007575841755584734950634341479168874639776732453370403757123242641251783872640032790403777467626165102119028710476039138565861526579847997046851988609817987986534426133455923115834362556541938848587026254296442324609034929461964135049738540602325526665775505689997992766700329462474033644862373737134260331447933075946986082386574533257758920328703642423525377129684546682264609068576308122407741454582406035349427017735293792772448021770222092957930799989967920695654811619732281532317885861344437226432702399133058300225088998057036784184200825083400932431169165077523648875896668101153574219454912852789277418880801781874062241668252955327291981062790879094960985620692654265989528920497603081340600231145289779347746177220376962140613932660071915029196729322420330731130208462253996201826319636919192653099951307643922269088441529545873307923381593519175161281819134413125823998131307400192961207428045162174350164444568887797522888175597164231285331428632006070405176225511079972561953872264771187559031414746126873592664670062658838889230415042492084599600391015788261175138809778462727151727644880073043938482148571322353077051505625100795569930814110191037957892346177968078169343894083665841615563419634746740083474631802164721446829807548604229604846697020491568422972588381676012465251033965366736639358438817044386499629530817668335936838329016902395887292071365119873452852102298826332453973328493150655756020439435537144601066282019210876391255669069871508025925787813670088076441341908338556073194342777751100194771521910436570634968571572085826754785908831123639756569205494977988684373091464814816302825765907217044558420373089558367102804433448001206584861390194720582899880747396866203271633890221912126940440570118478558825088141146859973410019113552266938000086207672182998744479427843523968522981341447211297090066697079793336714320018087372565982849714348505521508800024165623160357748893239200140959341632939212693576410620726986466467041230172334577591139077655289653618728239318590141822628668697656227003997149543632619761557573753561247970939390704543440116924250024481197598358781471650771733288732799559960328907443999444961859896065596310007459321452887295469975614209856554536586603235457095725021736589586027415554120292756115785243934541479603708994006806646592747979961157470710965839685802595677711147297175825190979866668411727992052198283495501840950012765571413321230102901514517851736578935475974925404688485175855490380812388195283689018315227898123489666335887333314668065564843010578803054192336538732023809630730076992076075956970406859019625230903981358704225851813730565501660374514082531773871073169077645092772744568074825271123823431607785894608384949530237634871844324594737455710223694979927237564445614832620613760481207179855555911421990017373026584533021694772524356224596720983037382277047853762052482993930156151657245270496072315178521102848037161420400283928523979593220019327945286839003302554857937039047812544001716285533754644938215672534859334488237418179280226502731132875620463839307370766423215290618241161712134687944950711928946426603302998452057153493820074759604839760380516496269663922236196007414586742877668768538648710059337123294451896347407294738313537280438977029672100872876973760231335989987462941420956531625298748896299603781431429774878368372259936219088739825353798475313470899132598083072272296431882836010668673405549527780126754955010336728411396540519741223044128618128876614168134703736291994939583131230643357569028849028029596584522322748884100529115103104183497335143906146954368602631113747127736074955442673467650027064333894195835619582708698041772394198219303712870994101680184797085126871350067063946330793437755835278770265948575556681723640331959651772551932445941104382392459155548150556689939456058681564145994615684487186475874806619514520308228302933901926350209498245719082169442663207442258811723658332858625896720443246234542967780946274811085929402820670598907185528817991116349914711640986020777949214895834507580441121277847798056416894417299328631040093108551235151171581221077240855651845978275645280655065245362891866348491374320116443451527893310060602676643207173127164520776359089658724142363491774256691985080873993520607233985449516469073041697861985116049865327306785034962055633845840753450141353115035625471684718889794522704276530979461124367085404377483767157278123198629370881061490043039400386734452262961192262142801693508525666815745589056677761701727750438597357417585323545776256722662912425271300641110473390508850429198134097585631666829751361900717887163138037824682580443041429357705579048556760550635944231825861688280077286756197886307545171486106934319533174807193599794010654577444002517748433355298692436565475768654671083038245657376293596048322960417734020047529289783045076273582207730453207202109220149147399135416815218774476647049675155993273815142740755704205389901416542150411254333108227884191328778075583389553470398503048346217241683427717799939857161999574232163067056496685530161766841959026638615527009564703103627739637137594023464632188731523128879903882993269085221174394827600434549191710888116565847636484155258824726984519906651605277371119710902273001848445287600408399963531265697363533620650284398524319857937576826174382681097958753388767579150331478651170401830376972364094510369247827337430707646213143254697438333227208474544002079380018916466039904490053861259402272541758225482778388192184907349657288895641575665972955696412872990076760963869036530006545095635363011714857643084030246171758525508501189970661973743755140405530097859198668826621711277239653392717694697592742868116344065180346311121038899706743453485327163682085384992085058883500292336865100883252426277769531886385613272391173058848357995761325159086410062407761366150757546930854776193346549758543064203752187884644866868966281304481809233191093699402898395123032739735770140478130338944080962100428654687543664279798591468752791053575392005237341080668074050333111830041254475537428737808113715359599207851880062186358045859792876073119295192393367631873802840941405701536023332860184144774166015912679796758488697063486539271877094950005868945551762981309646908200417946332751336170885658165373410147766721782711365859542476355398800595822928058542036335516820979124314549323616114184269895547295475981240162294963397140414499308881601311036987019553676655679284047452713940581812795930976634352103113648414336050665036765985093000026211792234929892019242309851957629071911900244548772992324014885647679281148736586602050604370334449703842409970017581717526323824902856779113094604046348993064906953118820592824890571634714376917366730726294718874954938070194181838869368889234749219703077204444139823795945150560435797203440775430352728135541164222810239130472065032892444105247897024285654845611706257344712721588515577017117925840981231670609141305730437855649453388485405358023258268272731569885661597325575001103162752596458984738956779146273646668145168742248250107062032773359975323988844688422442883338192606756941947528470177016876866656032719612007767494172582257631458349392799177601641808156841701528971834548503765498077075881964817874342630677892411163747511084989640638971675433404446304119808998683525253873514257106878685728670925831814995468048708051880168826070362355627727299544012211047040325106735200446445733515782011894813926941256617673071646699991384942059960333085318286678727373158854213709229086196764467845208845995607335308076463423729567686283242951309253728772349823475620810878722138931502009677954689424714807197625635089737962548111406816049642030295884183458892354650710251363431571370089542671455152148207894159883638964831295479548049495937755433922169782126216103045310672099105118669344882052795809642390152944686803597711286821215980771720984505408945639851442809188280968965847373211302868950498288594211379901841057459296489621607557718495445890623653954446816514944087153718748919157328306161149497680522304654586034348480885050909781011810832157577860991228454296704574087328823360526311301673200435117393503791433623003328783643171529802563938304163510601189459365125406059535601429942431700257567391662236552969483673216649267284851437834101813904128329978694486912557192157627479796157555571693493750570151387749004110198059905123322833875012828909690912002814524044416971594497867006085272860160276230605834429898424499211563977024662711221534660182376334465995006234528421900721693703773417588616742671939399294489037308644293675123573663747122913046555760054741231495074080306090029665519639884759351847997663648994414673652360037212420343285343937263902129953529218102067752344806040515373791919004813890554587325440178898852036745192071815586135674015876979998553338578201532640538025085224646253046669793658777810659639786093491364106131673726856266595736068585156542138737427136467748368195035353656554542926636421830442604279949691550978842820803305477889613996935828318855661110025119701549277049008763944001091812368018108983338742289357817358836042554689688893274976170417558621194394556111212807536271793630701727482584098348619303410359829120268205499515429044088106393110400531473234521073410545935949379218824857546994407367197979199979296186570260522003967723135748095401586814960517997864115844642585679527971762393958205669764995680370104273578108579076864985743609930328452659686158597931231135633820303705299704135866713675856325964712397347895632751480032707300510858629693757362639591140685950527935360715439776658722266641490216828430642416616780004288907520638658525808493770118326047411862120299856392071008334642739158453011993910648133466162732576810717329220804125917135138994022214746255493459659904885358149402489217756792921556735228695677804682911640479463933353623676592395947342531437274266365121514643554487705495426916135200791204504965970709407824277648549146323702607762216640081154375958950220420810159312346830206311089424865155814083997267964216944695583488591929953918664954372559223937703205843613770965915339885541838148990332958119004790895792385282556248584324196439772574244741347167223242334299827667704900514663436910388265313733662633163054935703341999707385622551556767888164111203590540372671518188939362245383461566815825899433157551496081023976409987475392774801325706263371937795420561585905778132775886910140270905914180402216207922115826104132409807071214024261752843720279608891217155294267847555069692057953769620691068798258586119362050161453368429872639139196051659590913029228313651011897308384368993956153087147627886810541978029879386500330714843841044737455666668660190721663567470529900931691420079406034247309036794741781967771979638162935393949066139355089023398472742806833045780813895567221024178149626787711994297991060182917448908373953241541222138732771585703389615212479878298318276567724206155341045200147470236231989591736352367069257200750696216997764565108218239036847125432162095490186390026544599650279710267655858934011147586866146980047268722055019574268442933512972293668405621015886648875586136985527462447621219776915486508695585487502809850552555765150794909830251109706064089364927845667850693685497291575486919815108455792361830802163761878440550277925302126326108486451012666501562464580569554162344853648633802167880988782485480821529084314823318691964473871467223620033053235298014027164446664899833889015781520470370286105161899394662095753996766173154300367616840063806983107920612767241077949117785200364990828857309638242430495440756043352338735125991513006836606873752469280068988272924629308067794504648489501985359634768200227245444816100584963418429820649438491349698656630114862169843066172538148975059448090287006976985377771805347931320765841586891663727318772891067374621239827017558528177128922652684285442969687265795006614290760951547061675135304888531112638255276123314880364967226066905428538993071114119575636880554601718436829417862319281085968541463235822422871649222388434539196402978429981305337691904282606565304136146404051226415130407274213563620403046725664775004572743461943611248311077953631391806281081587139850543209562909836222612374441004630510056418738252731723439854328793498151112770863068068152168788611778938857140195349110031628283503775964763196009781258258809856696364853527529559902811570874925908632941650826169264999669521438135197846077310367451568190470350237146431716196048220030212339017496572290341540057168754612482855032531338544712947157944613936913524737807510384175781591041140701007587607688446479389663875667180627867770148520024667301685656917838140180449688924190765591761752541948854637389268916499836946486138556249407006887434739834093773742308451941118032222235159191926419653682894375866545625523301331433581598527138874590728242248497554189258527182969042279976177565126854373430940682973402008400092917786085237780888435160073026151360294898160657484036803981791631425578717520076055443389793744198313782593098751537666978529352156661061092728418374971960050572524815925222625430976978869085206103805637839444365310998014334290010909749666824059831644329549199709454348917466159420812398722972638728864950543571785035787151573348177150692419524235074203388152547646308744501374964682777677608428999048454212472808766218122663890472170440983363758497925588855779949151111634016937188364065400513623189681497516254223959341011913404007003747867026584705533441552588363834965119518182944303666898772530856922891844455944250112530396913351058979164318870321482911304418096649123677111797394703196243353290863911511786828671018033017304843270833675807781316359127725723455029316736107528424177502964779099189118668613938676251252454622064952821459212926639596998160593028154181296989251237026447022751627348029516898157298499543046153740732991712396767155234931966309122427602275662674637816325297608704732552272147551886380140463521683656970436199518049287529633330162674540610814906597013806271856041750591397364794049692045857263233692980883771827326146632471370366934960903221189873021314366688806475195314895414057958574377064853769182783708222981955461070213099282192764898069907469790996701396936899558808034826405995592952571174625925063511550967765115203980771549648179464980732796829219532055272884178999692828836240609269271205190744371186127127307009138008772261923610602993944531662976673813142757124037110226622894849100021266506998105886191975034022533952039869509920409108727138621652956568856087509712474301306698649900013682674703913470918272410592049501882777707526818492834281299398221775463620369423423115056790324064493759814490072614488213264368511681537852579080442030138658053133070164728038060206604027158039490022216771382827858703697522150771139035828117576177241500938299702907725094294442711527030284601051205234180320720780063172529209122772690580189210417460612399007784300544222395889346791779718985373603101410738546607434668374783658652578386572171775731866616644535131733758537834934438666637725787814344393073370850955627842323952121356102644574814275915006515804944190945918047695087472446198082393763164537315141001247850057140204768499598054944932456280432478243012525989106148905086064505387554008950641103027262550370034132731875830706992437654814250110989170249853337378299993641705012156886649610381652587621655318486772984943877732411735909359612524956420203203195959666524976307271499037753810590890931297484722723787045916047331240695166271617242041044995006331377937305426352929619166449649037609454848018884940277316075470512096429538665782584322850567006027741926056518848441982372263024956960987373053946439490707602905720292642991275923433501897692334860204707517533249042608039699676935144106861864614526036186678806425785060402038447435349399626296535379159136937535711956589408134353298701069531805921274960083370176850425553367486563400838040291930724863973021917417595108534524993695635993920517940075959625996298368960922361780520339050702900120765984055031601758603305030569467862321191504444801186287253150418593378884370168508784550658657443676483627564880562493707746983824143844194662659012719289750300554401608633512352119867202121262700197310103202117348711065929410652695992766775038220669462144094109126460764598225415171166514357430373619549389459398628530029966691010209053901494682110735056941135033962905934331430202985410382746007495377932682416985103409421042196512065000210128553078353664180457120191816445884048527049794524774460781274806961503572513093017987757025907650126556688341344009718502267465445441316064228628981869408570980136124024890329706530774752904838660830971904698508105787597185407022161548049568147577907613380359871452185638071720745237385309558904971969208184284266972045728665664123177924482018038608568954177054801850557490676141252224898622340137486720674865838799387725678371629620719558986055225053897410780490483329073143254440450196674840797027782135071625620693986321633881193660179361076089227604364483404202481087765527058942543508960138487224588081315875077511737799623885724079239994597242760187319725790776439802114181467885089743742326538779985287966643988867679302850161754867451974575213700145367125797553960418984651158066405517379204704090293789010854921764601200085559962845937789922002304212872754262302513206043085612352802064363638162812891441394563712221878826805047881209882979843127920705406531296845143112357180006866597034647393410425575257349736528169035256852277622908862255276770814260634058229493742855463863727092821519638604444758836226690660825928230433337796110365863026419260948144685552844239792815225312940548543228626034086765748225253856386448239236762393730478326239923404871283341815243462999409672476094033300934762741292829996350840030375512313639934924114673125173452998805259360394573137590704849819507195305145211299529630767688354876448770116153073716015802074012104986273819388721004000050218330797582882693606358759237261338287957437272599399533977537226183632679531259687837612106225036290096225125452240397610585468614054736775395533535430506876590185626618117264272707348192129276511699998433545044848013008692043399841505074685336835259073584727807525172774200964355305222395201324912923195682863183112159311845644614026508416185784927233621067288936354917338065475791453326267667979626856334170275926152679597646375265894646288443962752717773273709461049178934917471401520241763257502295976096769828468053362943556067279459343600176118995729958404088632337442643275006702036086483058649376172763134554622196002918555771594061087330351827449447775357840976985554645381048779751060313844494669246764228943413940824653570108050648302612857246605748926873667123457907201594853964581116653951151042824190265637229577462870667465617005651260176840462524057945569389541138467962870173884087606615475457177341141499491991058303360863567074852153306399699302866185433473601621399272946718667724750026981360587908328903801210265335190473802250217480310918841210234413015072716473191295366282853924763447658797210170229929682612898770172640736213950883705252323073283384223854015399502520088341561463828797516818313060604332218686787515066377263823018458008074582163185808914958111596031743841001160350398310717892438212267987650938125250076789062458765722514491052699456325148164450949569777063116807008717275442857355798552634482976126825836444714828930978440069153523101675373122141871882164127267046306185584808082390646411370787681409573705566345819617365211082422817654214245966824038978401639848803559355200600798267792592820842644165123861071734451812251556354542045395711764090378054122216240558230678849762396903359507173812635011419949358381060375816074129052321926239366288306982157736741916116216371432791564850991335932443506694648029883288961035090899549606039813739189195032384264452331837739578242599234388649205810302351745778025364898178355825587410782173057102365493783219541207500340561642872812321886681880411275427883868794233874517780359773700657274917827068634666158146142332620308607002551945711194403599576677293310215773609837721677094827570968396067203891234912026683880936363444915269230099608614715961206486772292110878765153344587327724289694502869905199022967112568415140186922523896507105539999068201012667132250724839072753896691688545569105980741610745460259780305418791123519749889395410912489947145830265788719772023820025400142661833110581673759445444275575861965682923595513177232535556175918717782548787157237482898083557622922545055463274552943860891243300893867487617300340651857235421471887251970846992406825140643936273957544989502668773211738780600966990046453392923548970054354964235033278296293782201596907539118254903930404441813709588840391607426976284192193460829070270021126003768366341204428791116996622470779213909832831174368485593534303859711428043552850981828788211226468762821979919511635008268442163509644610975236815183668214818536592075804021766167566383355052078840490901979386275993150545350856056026989418170831489930641803206973284369514505952615268323488754685339278961399443849158691784007675791930969142504632155864102388455248358501454154270073359052051097152349644910339841779443913738489288271515774798536816815900946274231901482955899328669744033989421290452275031795418689101181615499785720762160551397734217832343238685731146539670522892626731229594164949242939082631760459426107295345762419048821105268211530010003812429762675794440905834320371292985350264387261653576710137661193462442726176564107374701230685808527920875243350798662996697409349165354808968062285684064236286766162853611769603202081284959093737815328766325136878307658997270397145443835798261684805958173433123741157884610091398131534718528613781083921545072401140305076861897008961869720953287723776636528731806924305327633453117670209978247113128718855626392131756564690603372662390507325728928920638779857421424785122691565296605943210579450885339804983012603275592116584519649821803194162209223087338614255960672098915006757012219661506913898893302179062891795183027131724156807688273908535306148345382962391767300377581479369304215475971857829265458432301568553117559853797217349247914416633854317871706146887505164206063253387795574870719742267481507511640199637839049913330705284709040746294595751236287511023375941103599647218202812443344680802996051288694031158169848295845120823270910736112021060335413731859399500716369269448371998038966089248268688805463824375738861539419744173886584053844958290401810276312218743707827761984729897042856392656213071562720646549373778529465201561189017448810656653273252634931703098800726801593679852220947097285972647254904676613346654958000151821685623183294182719065499836455073312536825840830026538109454065614317247279376328823985654223376934938350096631170315060967528667508791736640087012593349016132327896125272172780937481824512697324658312659067263001483498429912856267041470026715616908119134414057692326602560923044878184031186154876731846328125379464767116028704888071764810452573702813595721259334213736073985532817585014890097814650710600895624386417598342035532521977944984631550169283594845630696295289850140136225966873222503642336495438959457123875527115417783520832041851222413372817953022256704561256828800475152477488403959818692142183242376045301560196905000893584821097820631922493267065130750647418453882646132267177569972198828091162782334120183576096533342230092722411841127868663450016961457457506830583051477873783724932210999224167009027005057924583590875124657917304509444021895378986708040234172031363623485291626817392792596971782768310582251603107902239171950735170042093184186632473721899215532171594396434974565058550410439236218540234093865933317911867362305662117811825052126671238643845085856492987433339400943098940051601944177443773834108640624440851366683763867719185057394735865370325633977571490697579927717580905310035596554545484380149353052559456327254976847301921546514375958966787630672246153623661340232144516850948312256362940155785386666441297654834483017013151229124073639270273185567757628243288213383316643154811927407657569207509070687811317545123559814497378432431202914322929397413326131681182198864873480696255455545347748353085087753603192968038001733154644186165235922335457304577820093685276926976460883073605183866898464261929432711548900201570307366277315052167927790745124343962986379986548001398454820302397248912541711859289589260637073965595239990836953650251081066935975742814983180453698852429452047238475706436575188572000268964569801503624904232147074785452509922103768785274482710171682967708463800249717459854743326647107152981682367901963079100547890420378794526171810184989218027663045567993120177862029922701017074820172475043530572761524426378306732555483015658548318107354322077467102094610772906314570697776568318779029067249526403664434014346030402824322326367653601007687161222530146076327299488732324771076875477337720505617390601046721029844648287440139271826352837613215050830350502547901650275208276412397920186147683198622469251883961365131807093098392535610957963912843549979222007401830031251414650129698519131295491545358738718246484103022556078029872966370203654468233070585499035257871941288368150288165373395868686759080729597272377617453583869397625170723299906139808056792646755507966178985947580977755492424297990021007296398845831310512935071621386783336682777099268334458781275664112983412555354638513224286330738255665760822190772280744113709877915183389226210807293790019683034786543093984194958493726679927559163268935624064159800541360049065282731803781282671285196703852545519939552568921987021371525584118938932791405434208648666734338994840305360946557036130768329428834496546379949930638948328897507456163919906245425593567898175246203226137347318187339655023755960868455955781608272696724120724249105117276685541740532111258048011538763070295318271338284413943040577186150364234127882457650474975241529038478854604689420662868690351020624816982575887379950373463317449143414781631911770120677486296004843652894550348859561056322547501006341234233387806935316067949442416150656159680774036522688241013001113673671683206143057416214946581708842244682331008434017970570993639802423381793863806198004103432835889772191753375723819040176867503141824377318409271266003817806538797762322999648470051791970356996977120191559756298602206442459064114464224541796769427383567358927367641919671342988303751639572271933092133795041193358118509323577656249406566717394466608297078059892768369407419637665015187261841132346228104690941414279458321209497407237459773619204908898028014762536427850622067274069233841604418207516062726468388588985694503255241247329894191261017423052582998642915703382381747526473210226529145899072125227126801449581836558097564187744945219673583497449112169867016604840223744362213833645825823727853032964471969560343227575347892307181764413016332723240556869110083260910610354733878780500663180233321370927269014575787275544223731664159558894871021036353321177126220584542162089055058009187604655750188264795243935640010215801784371470327279658931736846645122608742326846326022305990959543010449171537121034717644327532909435552297888465020436800593289835392655765198763442998891117103245781417073925345641789633342619089302060548122953591573070682278743141930536965025006074289880110542469184551180641547826696097746775802657775071518111648888656751356326715746491496519692376852538781262998105686776210568863600849648942260817659672498867885532272337426326662886740719447505241977596101258582363400841229729920635937918720391420415048636558756546845988404747427977078314411905593863071584363331126538222985688987165849797687120857993922834852447553539025384261045754766711831926735350838175035040113415455724483443137961340551152205396966457144355529395017416122323132490329267281290543887914456135507462862634657218501370378414842883546810417242884259714483977933060674378186698103713129762571984378871395424199656882460630061085440499998707255341308758961069359296704347357982660955934713085389133934992564960815413217617913266583758199044749822330830407543119042215139244548480045176986263181874759662791646916471377818401223370484433181874526027860121951905840294941295917458842017136304877941782629380724746900167377231387898924693790953188037153905525167197615294531793026540904394701051381107319304288489650366446814354761831801792018882199457546471593986269145801957382318041662744104004235395797559875016287603589102886936411108589742026245089448195684046060009026104278909691552231546631351546039151708505119035848348265077396606568876621213945784185774915625461873393420304606226438701297475111617801859389472812412756220442802379251989257619434121475881248888486695902875489854835554938764346065692411862201807015317969904742546968801377469979959410834508700278322515366878361083227305614682776635827771076400742554651288609316487692889834336145682886383288448897443795840449177697288551392542967211567305833411751230337392176665294647222060659047082492474830484272909062014541423210910267906813052001408903270298390684586302727975668060676632683971695197099120728624264514955358289794949092388033341797132223118552210802666185477679979968819985636613416235114375141229781991411001069721720173329783028968633886851290142237409856186635396773857384582992104311080945719091889015428152329044942890403398961835051160485609913599021851291836907019265261896660442637041073774396166714377540131562412854834218792822422527790681649639228766652275666046795235262085525522662723186240814333528179517013990963640640132668795247388761136360883054470280018778567053953147476359667864576399758157645507469550240224558658429493083377239077011476519812772442217385558610555253092992352772540110676376882636266461445001523630991793710023606092496249596624692788072565268268018371461176875848323414506643983274111591007480766011200766868454497056124594153859795434084098686133330396046475333596474333787538110617223065132637669872662228002473152165351626199948026293044776842843413812428390629860869520626114308678358387457782649749942917375062278838996542994981643424324856047136446755284873713997579445953140143664665937764249817428773177714912406633637845430415707521565026484844974614304792334123119872718086209790129002090100023448897479867321373838734184437426201898332535441656797216130578149559843379453482297276805621921730920759523615366676598281720558702956292668990242432659748960994337225550021158808018411721599163219488132590288267803400414010331252727234497976615064719641447043941702095317281163280369553174271430562619156912069610067604192477666484027141917801892384254490695661007708319831679547872909530766206658684293726911998636513641383982101405019062010661929423346987119579704587950231442899511977931915707198119068933566401844570745079655520269515804068682040247243825530956254692355305840215771790926983783834657119103579605140563951864889990123553231947693013321003141971972558630434321813637408491339907641775683767760118814601415949263978503351411198341868615594890265949391581725208459823463725502086400285943523893313731962821893205157306792166811303379594175683856715609749663960891703998324937667140102476325666345619903879211485298408478540714901118258929744503916122339149855225421768625039691834010735081524002160432061351495967095725041312281731115462263839504594160729517756997246279021590383412519811904078527128929081946417704931977535288842529796169108142114421366020833643299785091598498411432603665442006334029941249484882874592493836055898216684185180919504179917224785134541964882614949755947100528872042732482402320284357455775784865642632173530335333876005816673347697619356896501235016909108111742252159884243176132115719887576029970736652390011731717062314135951159348006013999052624421781110508064143918025625721378144795271752291556478251780466468805202267121189774789302613143043091453542900596263935746918637372215957270825132625291544803337432326773274167144996037077788047803223803213182545698722115970212383099662344598030955476069039285909130063317209905356736437285141050525748669926636102636861560151258486526149972605939142787656577086633116602150978054244970911683212568738691774264625738009814627376693499575717394905605987337479599566682189414110359039371382117283711479614107114275536359711047990996824728183382877793138495406397751570469242407279142412323703302267511409975475314601597970051599910428888441957974208853989713644028524917111959788798393215872673025891818905017814234166870025284795894072110635486115519229149109961272527565910120818516189992502594920815394524539108905131823337930116661489447072207738777720539366024362402885945383657066101023317695776316307910195787011372084401011660719876830684290332217380275162662311403702007946873591742688886601994052837550657654479415476893313147969971731636293168731394233649925277064359504659346618920242023090750102126549472435521921184334275692859514841099020687680825560004909475809051444564842361669272028060607715844361797637998705940594831199856967985006190906462858483267978096106133963471308113253186340235730496458904288981086790662186432815759076492661652815357923107334770285226791513991444679621722897341045655923259157982943311901411126054307823811787044384463569060515298325645506118775306004116064574111668462479857424602237966385708675791957694390869252475590018564945405363344366146912580559919793663870866886391183669571036348808766668760399816071564774527637806913687654404211366051094911373697711778159164969290302380911250930702605317736705098219273609220549658407736377117167238709887784743365594573809443815021562473928646274279726584008081797012224112599876549984479092315781049515211895126250262722526968240180985661290953622934897309333609330539756131515458058522871769593486213136955927215549878956176844134434285027686481742070428701303967002567170000791004065782853341104665457954705816042854777508253097453091180784971870760568534197767402220947377434974459101952262150243077791335671276219562304896876216902248600212502912108175710235997972590600845003321074476229524340386566780044222740901741752453798803204407062508729814909920457748650892109747336017059697143088872315318860852427809953935545246349200937895139974372933492174627341948929416991117442826635208210023059882358522043159817129652157285201178343380558901549563516950761577735076290528152792668693852955367804511321689834103087779984407770957115943937864001672824866815174795033993017041535123664419041730516333827896549464481254615734820378439957062312359648673362069189630383437348682957256563303895067253297346385345059250401916403521730898166632565379706293887648999467112690616992360354059524262695049121595279594018471231598443133329848287053892566882107991327771471594672586211258780667977449907314565420715106571345027458890288485332107823812685574013934657188180881781785166268962138170246750969710674633879788448716262905156099548609975046315310443053640514976920928835553959608354922023099233954702867014309209105737480740797438549927045606571505094059544617506666167956058695243769722948736014451198149838471878622385718891004473339037700875378054803322825945982629047743290064917757457502448282664833788493771134094080447621136318474807950549381866385841747587362104270361461379332569229588268759357938014818762312468976421781252434781908321685937893233929083657233868186567370295556120967594180262589264375592760294264822777326161565048488086925295010815156969732088190910658452978086517188994567345538642850138952314187900770499837723476218411158129660148227486235503168874891616317133511749503882187970446119423710993484015719440520496215713491129318998953008593392044811317134852868163489501622966595425537189760031923864716306718170532977363959679350845718019894794273269743684592946286087474046947254060715380671991997451976087203016068457918891669380431200774590214140624962518902300541432005776750147006724554109108713174131985402468940769521044493250337660635594600250818409382671343338529820400951663874484485181983390185035692960007563518686782049704384439232952122567766634141018522809770927771627025662790360189463987656686667773953355221978807935046245127505431360935571147608436162483336051104373861959981833150875422528880466276938009205458770564345634724870293802869245892621743762739097410988439634035161465592384882316350075689270694650357901753828971724468156688296566692133416654800804354726506294647556776933044260206814178216699447513129103003738933695048432697784704498954193402702495989098187351826595098171888483522153741558525522450076785405898213222489463092425003395120666923510271143926173975595793902970143338325125161736153471050553838362602817429175008270803252920770074426541144787480319435547284169595953145003590392791849653119209913362280718797554312227992370805427430963814806544824688659734956728637787804015944232470843545263325271571358586348438574642672745339083548462378724515897177837791641851847805653286657525167104994822467320538492614285170641584181900302367919023454605925183130584157397982205617408760563320151533371314552650666407171127941967111447823455065479490063831680151941068198202967716837679662722285416966177058505975486789656900638964113968581004139316515011770073791182764828794549261322378106867857097362995913226202924530079924299397523432104062364865085248824556248853510573991204368395461677679941845961616326422771409810278558960015576765985672915746305606258312416984494066079271885652019986652082486826458829973141576205780166542366675485844612926526461008689010900978656313226857381077949321109880726755417699173978018530795719881505743407015364327412150401989467753878269052062020889048185275574065344225922854906531152508565166363591110091808376655852503686491058483864019917057599695216617976689872496346633704623803213483828566446291399682858336574497533127973802996634052481737343504595529616632585609374843517303072978327254623081878864677355850259982061968305440617373425426063738749998390465264741029404318122962505017803108124944747095927873249697276825566844991402615208970588412868403470077600311102999623319109799362750308355616998632789026176670744879284790477291704278005814726873215353089565423161253134726345821487871155333400642157610055175191637873532550872375271958211649677864500451625588898810625729409592685404424387921046697181150465061059427437385880804104769572953619293728411991382805386057775317608334529368546164958384278109264988207049833160437800939813644489801171541730395278562141122653745929250036330538317254114455397630337014273208177739842429741886659067006342159433352452997097146918713791864950506226024084616219962384504540295001032737363665752793294430588386560509474897801286916601903304626562344056778992905055807074303929843103364603133177411511525365019315231930317442278233753347087863691796499769175766851492870454333466098227382107893368426295390061416078765822743933188320698332255708394311680979668398068551435769108455283133969810201015316182867386737007717961701886503627074241847638852832784424136078151261357064048155081410173382014067874226992499883859431195205638043640499664639898695689458940682214760599747324137601595615783494126340521753644757125729639476904321181231937712085037501629118289098522541800240638947549013896222633670493142558282255541205170541198436708938142229091162445461293500078016700047774078806494898001131670642891972296361808610742515960022978857422973774394921881529448696623006967201347945219445232349723020846079331633803692614022566426421719592844435705941095210180965280134811034051520018280802859763557447204550459611971031052399882797384150040404566220957102363864543461364438534026484986058030627594662806774233728052540820457016505081175617757644643186018192125932187701252614987036402225530397326019484800908959736193196190944536297034447975023792756315840514791687694092910939084256625277495872346603778317301039240697532111095130215146206860556348142880323901401473760294163400362385394501333681381188735969321690804349969159593000146078460388820446076313280232668863205414776236202992840375170100129276527963763957954338866188400989376219346393896790123038436423298236306994984103846964715823484906041262131338513829247050921712194746444571991233984811246878234332661499797853000383220970296045937383591591561344196226155156406461277380134581771379220393480959696448755669745047269677029372008655057531235820390251521439166194044050589585359919322185672478435130413097337663039413426569947027598120129644974059583735921732695546906879426065261855723040814867109261972079898355889548890819466966431523348166802646276127570302776864421617006619601929631002017611936528696864154270826097934379359300796802433805409397334742229042192323368501115028524931777038485504027842332971724048177008771853238272067483768009083849267546141076248327274169013843244662464243451823006426147297985068228896651283194026558808961163431848047170063466485070017074177568081408657397240569656482534102118578586032859105843564403040902203311574062109330683131968135763600940915851118535648437626894089055932059642386137458068071633006520557500291208323395068606053159904741406741078424568699962088750780484252275724440885276251010709968107744110453922729435715636028984416958994693060407434629504907212614452380070467122227497690735542130432308504667315635174160084796170532518580809813276533756698778297891068840903700998866684937857147948280813198588629280879939325567890715912148768830482896129399396332936821526581241829850207912953518906587445838778194192943272541478301030837924129638209177540207314092071305271894593967319505946961579707176280272417747546524540661767773070596602858343709110836007228529761182865368243242518598554305034113534739137257916419789326414308609835786144819292942563138679038007656183310764406044156374595116416344840432346347610410210919287233564975350670054847353082582510212367870268847916391021939268116704502177528901729127305840245615732821962577800113749153488221131366045578233016216397376871513171613344957218956953451218743253101067300892890239963450326291805503257428143527972579817974685932351018082496229400214513713581283652793596371758018581030440595023379336451022777552319857892279567082140752624689664940089512388617932071461087984146999474366440296573488833001808534487294406258616808787330324522451317864935245677478276933469900267989125391752075992132708872055876978846594927032842197435314115481489915643955908796488013696492007773673823570458921481764270795109423989798155106660706622957989290289507094915236036962497056685937722403410299487514561815768431111418772140025304960043296617130513187603108523537341121022331044231199837849789670663049516045729062107462302336918695304586569808932193797618622849314630911802071206416285492921679328638812406632177710498245262160705650477151784518523206607872706277741739406591385754990982830354812493234584808973435186350800621759693816842577217639236892486672830070522565457538918084149393829405228467474785491062863311321665511171510987700857270599643918418397790823582961677705964719153174883983425589079995397168229565727324329810643144169006030769768201524712478524351922315051914043691804895763576917506273576535574867050865614484579399893406540537738488431653439639829978012191370692841827002821276243245543501129675367432267090374226757970801329403863434861997682082963626317450781213463154085907060578902596662293131106664400911427631416534824506165610315783559775071174064879826417948690076802235342963040471388066701017479162460483905384179640048823620264834286645867559434105246371562285099243859973789674371388113924304666107586952233946422131605624493480686695434086029327824245279414215790342435653634434935561751827360543449988504717764183171744443488919833471013401362828553586737401992245560447049004009760098299951400742272584309388790686227664755725864823386581108492016405728116166466425236314572163775893830154151321571308615586633354907467864921703122533992278092913170065202338269248795921197800975135892547174052976443985421391017237074883344217709625460448024093186373390178871159714084359190228913592538982174369800278149651871319506382593284178004092406868051931465950914754515094601334792375176248440114298113044446399825518925342426735524472639927530667328760933507274995242267876512366503507556620788078464450963886121951183442243128136389294201988739897639690556253046147790615287907540843030484017227577541166747658217579648964051989988699054480207173543305774607748280907483520485441437363579321439552158276149903596172597322980042878088539809451556655324090240967393046102450091244116779177985499752718863920291798227544708659730114384756559847459656929490419449337512031708864152787915139512674773433749673695777809965800686434056970527127249798914892478664710791432196957474888082938121015587287363137356188326598119505146467502497263794117250538016601585106737800015591385840944242413857501966044217358323809380215584952070442974687814808681887485891906930505585315495347789848666653758932314336575983095789591394857829054447592428961972346514564008549551476586498134917307096736407947102924784874578593992628120790055184065582448736465759323161294996477313359101265354798088032525417385142883875954423860259542441822285005048254907693501230555174325777233635232037436674262987875083091488083888609967289135769416225060267121304931970592515327467439559352689204043554918753523843174706251845294224631674703158969891347274436344352313030948887069400670391843720197823839856201021003408932042755256952172722122137780230614022456850137962435523251704272439583487433538327639227876237060273851098703530624832891619140032758751651212046962509440007255888738309730104382038904459122147877117321022771519030774532081505728499524416316282089760741365660252983141377340829421266327280862767674614471730436279384812725489611501126522643569635881208169169773877599119849791902611727305874952271890962717064018827002958912307437790378157006567192056365462617699917350826403841506269323097254504150720102125779718335101316554935973731646889374546470311324521518286042556369004647764582646820890787810756855007381146221796736081706334750629390036226730089001316204625299658322920196444051140395962966868747442655135259188506041905114894333702747016993079139976240153085086208935424766814832495378328699712490781183303653929714639408011561260429206043402623850453862707463469309040004450426835965505526598013955000482620042899607126448482385316185679404178560420026877333420293245803114909781046350102992145380335881180056629376838705794559119637272677754770610152197007140398284463714463165433593483190650088640460715073242874578732388318155248537019792115035148433844964957554458128454502353659355231449571745190975927729642904057865798499814897282228782303574394360944320639982026573442456601531045834938887149851170406357384204099442258555563855783641143942698261496853501046514915065899400915159828588394174300972049237725198877581330435603669857518885706667061937647332414310473506473653753020362323656267024323765866347881598686312151036746672431291331576360335767647954933549462223763519133943151182520841089510898459594630107911337208566690932366660033510842291815698403390229649815696454637638520390089820161565662523128903255733885261993483771527576095755848124472330467845533277331790451749739697145175159332912762395341947139699228757828856333110742035758962592117663212955176568799871215869119423038688893067100350447935338108558028476253174341956740101334314335300165283194176341527731648960746973213630779603446994248479334248563895822810747233905986881222283803962642331970115717631120163581341457388730465546038082979424058162530115322870834192188945368268107056324077582598952164832178654029741955473328285883421667203944615104908650424920324455784774709251257053891876682395574653164190822312626754769616913179235613486921095701823517015190772408767640507338252200416256434867026662140276091453140073298168433714677644464979719121174841527903701917110902514896642388344873728552127624840614015914126256378944705683903487645545016707424578999084521000833355470651661476954095399222423323467367766820568478006533787427559257320286253732583925762184407167994282706765403808127783038751901871472277972869198936063211999843690768460701469417014743502464043916790884631564225014953011631909176616690636925220059179810381535231886654940037847009871673959378068505590229268830815383542998174127451030359214049359364989286260570747622448018594701559576123121048198320664156335249875914197522402229850210799797317975131538240226727762308831291923274365607098423940775693959129148400474030164649252425780053675167667008256435692785753443186249536816067459558310338292740933783039259821470497269777415294562692502022857932399020664488645590300107212380960949854834606377575069431666867705555432389618544604489549907014844609906372562444189751580220767229488159018704759498714747334861279829109323083973145462607293651533688671096796123727300817717172701820935667753398900338363710863921877600151516817643592598315515660072494802893943298892584428182881708359650348116905631833998268875378022365955892394170478595624938150875344920130519833280828353388890597098080098104017616111751966388063520923509090714806032776531222427249793714527363851963754488307179953785994771085464099786963001686884360804121725917623874630318445261498351247842065060089853085468039279664225828761478913244269043568431314765311030378820415648259988162488737654950563942495110028414625557204555542393491337971223492172491428970798946740562142250504412241031623852283603975863083138295538001214905157871205614447988522484188496481988460764513225429929380088848876205731104877787023219539904517972142656716338921890443804611809433261550273153949100460643453529498972770805977009069219704265458395847728478821532720295392756037757851106746223274181841658804437583104558469559384625908371903766063797657175928238630321160947363335529413902301631987818417085678284153692039141334716310559656832666866090158025567873298255292875608752303351854519538059174237275044102956556966978723378988431366159086866182380077853421840541521741827091299216506307659501341662445456301049253755182407763723038352261256108068149848451456432154956943733052737247066878960643269543095155065808352945780681006585861807882823507478533953005090328026534026057675475417678953642465526561389547720677194180377515366307724525437549230530551950933849100533485133901578019481611173938204580132718072030280696946487641110196529883348972752205509874105346897413104051563657257288429540748898324156078438215877374753513451089902885983402413547494373209357389626174438734259446496693554516510258461614261163229077361753642413842782557162051474335604825194659597120945246076860063569262906568091938307200057034325666561772181581557919483907713514304364050330515983802191345537233160335533188226166882983186905407652011818398908926376072962365213487483320302520288715519718745280988177290477609944732224110758925294688580046370521693703990470587520260253338522189470316834954583776023690596605637884228441080941464521381720231735782495993980849336415830281991559915322793350832211210030036367294832064855682776452089722302591342611180476125581817973438678928669316717034921604160044951909695852671479701066840477056955853973759241775814181649202762119645207485003706030057350457470265613915858511277915173929709468577458854224122294429044233121003212986532406853883544265329446300762329689716952508235159227221843243195938622770172062174405731884461228529007507279191146434396633444964296619806799844399885977487295230345820567524898551323923808468230777261218836975006751972273248691971478612743693045902775945096839794441561930506713369638448800861758212514280723661247331978533502518368620316381238583774725078631001608240957750784536206084461673117774716749821896310793983730183053125798357994900259400726040284870864413055900232247687335226917512413807525838427639801989590648378600567053457703122126296475973338013797588429492294622383418923968969574812006708034357751651690565385272597887854576873108028765553280065245323503473652219091867942053779596908927600855829024213625580556306093525237800213711871935921405417461651936508102937121250156282962211320890675605296950876730741361716332240163453907836438047794396303133205747141943374392751747596381860529474232878276807177396182389733749531075428747019356126619431974165321455698648469218393007703805628781053375855414727055886797254290998787063062193551754757377570723156093127046400596800789920380130374205075714951841479949002881261835105299030013194123958029674539362940810799789389703356357408619177614497742385134930266773556939812861941979470192847287704152682093430089997584236076764366510465598938952893034496822685676068403159630464912880977242325307550864357973860133215220441526496576029028769161209537785547381452588825890747610266461225597658637632396609198447831050838172612394137623001675866963097201878731950456063116020447785087181009379824996735839031312372560828696183340752184499556518415959865279810556905468445724924525194003894598293195777901596995008389177559975682328001925325630581347207665201956023912729101128349598883982374707446840168614398508833026907128507344603262043053122321792676522764600518160034115417473258998943435004326725720459409040261830977896227922658550437145146370437350904814265111845035850412515593904742166857653679598087816385566533469196107591416426473401446641271068586673028385921753323803229246416553373695331172901695787186436005545487026706725856197689030094322187899535284337462608307748898300310711571027863590186182321226571419187171031514652160249204714055946655410096207791946425333628077145396516175514895160112728881177138522857434713339821916168742814594294562089609326974227303385424219671493600721058242227056676218060116697929530126608624849983499864641123443335813628520942802731507381608978753551174619274315262305268451146354028406498216619634638129627574078045511796447601143851471300421448204866716560845824774211174309767525808459552866839930668108167616332835256591049678136829010508323459155035951823305779680610724441866121117951867045768883185082872188408770885276610014668343868094215951355533641680026399180961312098699450863745339192935542487708159525111135922191034195825829969953269121313048875256967126819065077158708952331291225991002663102121214000464269355921962846437196718456532860805168777309841125115878569784805902309899485622488296491156428859901212921848326142954325572457499727020890217626283968436256285782316874501923700642698031475688658637022711276548210789906940416488795606357066926329293166508896965829713523772480542529867094577273904779355940066575372442738733186029663553661202369839602195851157230944835908988071639797725451040144586620000705325560327883878801106562327149128499919498132203923240987621123113071937258527080736515591417245054015377062999149715936746591165522461242764246129295512183306988243412078557643621578429613544029195572949258168459877589787682261813366982150459909628044911734274676517663807628552179265686356585406507178074089078448032041326323121437266357503293852709608963679287554420902559081517584709949749075394025358279910950209988434071240990882334679092587576675251803201135993023631374124640977539008346518326428525799481649894657143688919858916890278498698095941807836942041160148797196137301498754067503248359973498207812964957142792875802112951972736933949402239979093446191203181803814201662652944450578805472759112402324074859427704531153994150711913518857289064572839204534331662563468747443542631826419517490730873682898248367022504064690750922137791491965037688879990573934606155120136083436519021321528268073870936114769096839296120986143992481110930196608285185239099861047913048982279916087638484022853931730848479353568297147460217507099393087490384016717964446047431523452894967093389345452073985465231051660232337363610093486364128937510498558622444832655054286168130530594564659072983889021924588461957939301885840849302479360827212221621109672851255410857880643687847619057329551652778595878534199001036451265210114555479781106385173811580063578338505739618233992696104206009419686844041402891521329822194764040967164672607282717742897539285639207056233847879930970116628202488680198976466708692884213346765380230551671816731541171411585987645217771847162487707589280194634959662870617221329750142226341210460255510871928421680838433224751012394179248162250096137542965954995696222247355510796673540185922199975633274412313559553741007677846979919369239403744579848064811994383826800573212782971825584306592270711861854561599726139275833192515819409430691848870356282929247282784705484616693773487748684830268374170154086480106875482512344456012837563795818526090229961656111242073885306070143626705586653614058407361882099102040222449878880603937279122703000681936548629239090954846827125676898154758570225877131413313188325115374447732014320002118345106532709159895281986175249545281353268916946389952346841229705412346726513417041519646431628962533403389138805705703592183939028626850815429226995734448754351183561257080375680923611281042779813099500235556470007194101256710241181683970081560749334259659672013131926068373721041732261826353044981677118607557639578354256293113570891825527833839236450420105763641145801642561118342602554448742360354552373799737132099563503258678916772285976133859488990162860386830891424669493918384790643695622278955578428559103342838509017552326776644178388308357301947829106643802664215676953406312194851866711920364002565484932031513593803953298243702834112709613035294844034540665763131555723415822067262850455064894288068134695814105506947584785086317105846920867899405940623800432198418659184305594526139763209180969996882027020663418321297423621579361120820650070970029410032355028866935609326951504162853161269384437853745970102552478876754901871196446486710793930671852982273304364912673633958394838761245180816683775146291232527218688570051005644267851130527828132288909937199297516134346136689344274832682819271590363654162143569025160956171565869449210022537882843670101027511623656309749134435896343171499625559222648971566616493666258304069843613368424023199485630714654401859030340170139546293567963794640921601992215309019030778914959610865337339756097358174441376869821686822707283819375121911402567782640755738477469790764020434413264328195614348469192933583729720794138081897607674106950018959196687197085107141719842355820223968418621774911506100164531142983030466120833351858897866003165265010813139129117530159837146891963692839479963412165694629899124114385985791550735778742240495939267959382020616727998272138210033660830950314222371305422837567900527161429051269199995090833112567858499285683893851196794507556938084405112071999605412839847383039270011502598769758972604593188303735852729780665645337100181028327526131337108457818449025794407274651813458876862436258258400175729258076613901589299722858210741090513720991351346868647287075475925233608807463845632484622455227436908259699185818526137703906623161498185342911855464979502757575306802813549120958573256849379062832653405086685740975304280879621489685632267203231276630747970424674263334141113642328243068217011809273468703961378209258106677945888165322024844206285087714556434176479851226217292086866535711237549785314591073261778476832259648586563740729607185414969040484519604654163775921807490815672227749668425269196048497584748663136554605483341780465922063938991235650129253305605772665338928171062895133430263318390336091871772657402175537468576189179997018615409422752715980383568243205199946205293650154772662770242688479661643922537683682959859384879446471120396527437962172793800699042150425978164955718577163654787001636366194437623929738111156477875077615030335320692911043323360317663231916804282762702651293578491858134236041666485391779102459170601058654805548039086760006296950440273963717900154061534975756399873526434480190885477032022374236078001716611837727555358146925643669368524182757916385827717204693084995348290557391278312228822544225639053325761089030836155265938382314339257447165712464164014992244775745742300927116079618729275230299513789512476327758491415716748957241713286524748756132976065597227926309742330415323654801858592557451526027227378802290134795852528248757701667505810414752617791738210256360892755487853354785341695908803232988613657423292199548243749639460920379244950005822261419333350622581392709708999326385206373951596875248188230303334828400351106012095236069194566350498786435384151398157275955585249526276242531898043609070478612616568560972098467676642458733329170166226174770862662262603308528717538525169878104369071482587347915617809651589122133246471942088224011780238048938639541538409348697482172180875498214016315261289441434820721966224576186631953488625981144510823396669762798202084360877918668337291114668069622312814319481615291173669862643248569663695832498117549169874241692356771894696465129864013436089583088671634920375477911763131527919163783656174532300046737122002656925687776676370226587647101859189214324451907340334232353034372015083578704553929657629352161458458502045193385884704648128882984791939420184127520806625763370215461290129710410860125671428960400428022666011834431033983615772794144269116063688690132441099096039429466675903749107305109169419779536346650715738078180836606922944339420712444273387874043084257270624785267042818426992259316702922127343453240867544198554301998763618507099817682072001321439100789705589527514547844227298067525774156656662373558441061528762543490474805751710313461511902698292485101749631351035842131195752588566960401969354094285490984482610898840596981540854332203480573344775278740342487988047589140248750777967169311753271123643997821198258135537430395224065597978168420140951167195843566407238331761368293458736292050987020309703100151237774099276632217773202113998797752221893100871347809578557455305782302679310854048533681583853548005534783458210685677014680529595040587139608015745626693651149472809634299454178776221793913447429945356817671287832105685375580942509491690764241798636119738900465035066483759335203355175916252611000891834720517123585070900738316315510234228535489006494530605179114079995017762237968931779139222418220839040519639291538356642290946047164786610652441297284075689355121935773893919199800897174754414535072158143582684923384565307748625996628456419107313582163044089980369917237310542012179193368593887773122550767546223636092295278690664460210946143947201859352363312004913143473915095299522000357448647865971187684733253245697006818088533784433155059823169594957559450506573515655678411880061186767776933363382122015675479300609772479473410849954221529270018287782296876827453880823843089684620248044263249215546927654500290996564248372370505562127074313899569889380670316579890195009418364176020649446376532967765830604785826432721300485150678884081148459464921966252602562460350843195932863214025271106808042661700335936929852218772528029237024286164529176929636619772980739694953859615949102421512206964350658860568349902727207065027394776091304365076599069689857011259466616021507553726646228479376617223659080590824638623747765316305027394881120602299546017508987554856566098487212955397993797606361720277224063550982955732429547360607837339118423643302421804800430378698276675575106939281114136062513790466477649287076182443104175191824391833385159833232718786323868837000577118356367575661023856333365253605506672235219908922163717145802989109942326956486887816656918052446430783537211937845137815142360839283567186502264215568368584786564740581330030652269017328545140678293992670070424284667510101363949976958995084228139253918553294437284858204955015034292548603391201657073293167493018193013727361588763320225141175675753878718208803608929430148637769900120134129460854771687907223385458982193926617315328031419546676002468142276864959727114114737536636470002144848222786750046108625560736990252913197599294291076305976700848614913460242786291435074200213356141954791455899604159397339599755779181547952794838286080983565260661826951308103286734148708279088004846806653575915282192860313856005087555322300058982361412870632997313235701641641650328482964580063756830791459644484961119915692829190180626644949749366502269470123328641702565669736001161303870883603522086647175312293092561222346230171372442608261716033125137465630431387363923239694040460996438733002569485939683384436857234803902128591485236572230307937182028539727522404921318103054498125401266367015500362862807154861659785771250492958450415253151055826052712483172280126015214880559269002508465179868228812129285075852001092298694026856197000200589945326495956010341790417685928875251027653665164313611131536674889661886532738551405529136240830460562262668465481624661415342852343699322423735666792578356188471256571045447988803687715399179076162590449933353407472145025046074784167259565126331083559997723742400085751026989789421155906137346152295727450431366143365291547785587322964296741251452429697476772398733679099887816691710705768873138694297276221883680530301692171698738281139848851246530625562593988705874551515336803853568179092865375167974674629867910585416528074243832662008897358829961127685281841717634301647000883031293686594606438910347308228832439829411398444378724044966030323031531273194304442737080182937701035655778633189536341522351662582776222290825540658196279735860827196120794778892950895888336143008659421214321713934868489209230414614267397754744923524496986419835147008707339233219008757984532608652044600916144038002989723180419769891644177213434360972947923864011626091337726028113968593460559498893493151918789847478124712897485960100623015631661053936237020596721685795184022853310191407782184779327269267317519181104300053588127624552486540405268289329138488145644018605494020235402122101342437821663531132839319987008674193907414351340618153902902032575099455046313110979459967262668097418206586023612832748069979311585093818987522402794456296057175319905300821309965275835028502217875973382243809365876633733767209713453093195459179138713019383650197666494322153482755015207322637429210532252753773465600384381053567809861879215790305808343124315649610208387941411957946721114711832654311261014676400635777758009398548342738535185788224760870168980716606057825414881617313954750305498500048086992897442995248346848018625356191355100320679631986313510627461463894439363975477205313777636080357106789664996526907146294161201926517918403511718044869305847289553038039120816831032235861217022672330017119614732768649228050212942241314832659957825245259378247509383066350018977163631499240111470375712476014843396311411955433295320292197371501403078265026117627811948770408441823674418410535407704370626901612616694292958171686272153659066411138658733314098719739831831036906823531824132950899875822795291842559402176641695146724745590722798039081464327676129060810684276300868674772322414903183323823096114539219503568218040187451420987097512222274951108635589373635664933478764376825196004636033760569873296735501975148994803017147649977229745803995252311263145809674569479608408920787155627111941728105909898821852867095112826796860333024574477129849181733238649803474980806812901241416860981636642227913152988833272528427856029376329197270540491816886125348254352581707925192302169239401971895502229117605689162447326575047402726100276096834801641310936020441632866254602418998656714657560118253018332650379176197349009824253794937056193923381724800553292303714065073065537071348598135690914674804295210388440393333510550656238718204212899712832494303450797020649844946903125031939705640868378423600631154423054843471535716134157036645928238581879486518782121650480337691084688135349362599702999715972408912743287947796097570894719537640860687659614893200601427254317939228010739631384749409058983464447568501697852010631343015643068628440949148315209408226802286695360134691130172005421105331655985078365405505341362054247833959950552853517784262007707756168951607990568731875308792721630655687917380083574908839471503684434628906909455665318184645019501639595474039285628429551058535389867896375647941540433861452959928799207416762555414594845175076260177339997746529268441976934823679242132862968455853273539609655546635566297746771818444803457537624977384726595244491237688202731531110681299224151891883567958412887125612322989870328182160381885707054173836809877723984723277828004241220610312816004158318760502699007162408410318874418164634036342210826465775621338060356402733007273563509183299414894922311475519769405002728113599842267623405659972356112825107179459605137668267868639811938198539445691688427258760052383422182061146262566983162237181219319518011232655242909332953089447146835012948911113562579596476400713924266540612780237334756913619549740287292675088853280272537286467631102101246169066980438338338817460684801772201731258617909426551872583641392321065860625711137876989340240227737181467381904540271665884137297443976721491490977096543564309976576656470874666040745216577377331419027502278801877849786508491534903813038072048282868944359216510991413116375190543979783607662657599479273792309170964944479893980718987679336919101554421023656240905467963872334096740553313447116720782166489996982246381520537561644445499588670837552226527711745224160140568808375035389985627682664103621646312113236821630968959178395693097000686684244581032821518374734470838319058179841875186707012188155064235997749046280303111892513948494981781049877010560413948081854894983341714124223522034290517068733181080592880447764462797788438726346941720114644234368793955643048205807742014182532883752604647850771001726132245060743037357496836935550680807744817410520690624179093630747582896049727119141126409864597592074686330475910310323544743253211046499624949681701716646420664622889210153567523651027861748888732083685480559771892675577941761290977075124177553344801280979678047771832304271667283442162850638445506992313299131416009787025939290380871911208227035476993284181643780728981056715516783526136336079762049871062912476627213306644153515880523841348015477583646415984613159004686207958478563612566085220916715298057981255923195860413053296972477283171305313070646199384114271283045524027577230041471319040575611442153301798293337613173721795328010939580543011901793636640614917345826946554153533078729970356994369326396845193762755956563387487641338151583982175072637962604690523077086062726783099659793394034691755375427645976929176945781642385919108888041337621451328052068193474127866874587812975557429794423397062600763210360447477137048697149441115205433925930485185741450890654200751371189750312814028622810864779110257263917741071066750027232782451091747168161075312591841476474461332120501143262627199666890532685383346347794536775170764261482769346289762820500932002155477274665166654882818498105500745193059242419028850611499324842954882326245240465790728205141945900808400057687507952724152480874296533344770056606295774877773399726047882262641880153439004696108236657398426227232189754922965190919874644004607977742511162422081740596650098595895437062075767106603181183064439022769490398945662735337752311759588423299788947906832083908809114337218514869088294658204088684233582019694816608679623674301383462080630208657263420982429726489053234521193920882316339654049022612112690841914346865479430224257952932091553615084074697627466513659425782887606005747632664308720030798208542698857936508681626154921623091809486601769221649159657620762011248743055800578058235735112975841274426144257994704779161570887501827989756325311152591264900983538918469864290670750866217299300618208465331533095196655451687274448618010164538170338486491918525894210668225467994526207971856767639450551131166569782660335507662372528255682324628208693950218659642846343638204659354953306506102838099029997021629123048064215541284471772748120058057364297669314032949344227384267826440015733854595650566978184119669398574510085751974432518654828930019358810218911558086849705023372905098763777200783071465582740548424918809479479763693441237952629406429457047690520689205926976743376847194901232034181833731200940690168234954733327993001653286403495700650462551773722230236563036632482995721734836367052929185816728580709922330817720870304271206096791581912556720036020853574086412804043347175214121363897157298527216528449270713018376905050360580681629496708931621560650238580281627948983758418248872870120394566656659462267796422401476764248365999519921965063866914661633694641588093746661279871862059140129789791479889828239485164764813472882403428071005629588479515061694215166596331931858322935253216891249270661831348540241080121859278180979812243112011223586175906730352843081404251320646572303304015351213838816406029413635084233024554982803719098858968677109861081958706871755657418604183443890454986632924051624010108411637444767202108022096864913139878856448240969653510350887770557881528039230726198399821730315068225707062052949391257545218538346817221581067123269839956150072708049242760616634223090284393470622891208226599456665731012419831328094484682771449635488370776053597356723358758009609660123931675578692175801023844955543616219086122830235332416025126966963078406810509011187362889947401564917142730426472200222199701268486015300250746366927791714466894722411119066849569153852597588096139767148572833998750723090618494354433164328668435579742212970446737075813342439903976215766421879837523530583322001996879202943911697499675387200904296833595267772613101008794623917339453115040443500752269352660324484711352107993470464461577813929907824840087871298097954203505897972214904804220326678780562497754856059204894164759052251076229919937965956246545183064106025738245696067286236968201916828175695697426948911408710843937998477226003832782121342151095666573499282416333456323640961588227506740478132506711620722171796795775197562233578160622204037301093405908169399008304767468391565011682540063322364814698580676266059883978915498132269501817734430851137576113963908512609882347693052145742182286623589961393081517539585303437156975770835458222373167005120023882550381142369097917127901921897473874187067053542996320012234084958638525890405152838879131914857993651272363346027544188309218570177794497442034243122237538200935542197949439898813128892338969457466101409626643894501075303510303437419396875940559970136103133228901241256749068117617670247145279801332326053427979674907162953268736431713372537133424287120241484855202499644133231078403468605325574169838866733233288432695261880988479557479008736026796803571545374057338653097614741762283007497921142290030536731388862217143752507162751854833727842291369006534437646740685546451451992081849158724196643040096652476926535302136921309117725871823191017937794300822492160475725898332148195204103924682439154866061200966892919429593895108212421317560526650802400361490080716861814925170974204686973047408016317716734056916222354413858768716776043802018030625050281285894422703305941719682720969961494305562501124146933414876484488816909437395811036171835561650498661868629532491683707522803872574527345138868523087996287597200717811645502828949660829090836334488861432625545064721951697624868960871091295779654059217370028895464182428775338133516755532830646303429716681775271970611285334062582107073802131686524612136933243237087667272709066073397582429201822120982776892779589159926823920705613588397634927082686738929297936488304022182017162675468758090268487535403082197325882638195970797674624837206836523242569702937871507355548350319579568851479148066705779926016585482537620992674692537706831073735268854919190665872907626662625600686508661995116451178597942439661912982667164999907869426785133059883626263337941875474891205490858667253975157100657118925468790123276404104989895546371669039578273963123774278996943383137836615951072477810071359518533273974798064729732258315714153053949073807084218389509050489778835062261861575407420877538874282413477845295771467007855789767436063077080151942400930297028439325317230257474217115754069229142250881680378106301932241282018050140235064104481191852909247303239308473099117474336604060795904745561315374539106363662194918506816371738016084001308471121748423150162126244181066328969390831643749847755780104688615203446087437955056470595500027156532742588415256693019674385642660249327149614500576921640368353517063541702702544073256559383049113920228158868519357484749944104069844570618143656009645787686171856303452525021749855559718169598873984673419611715510243890182384139476990806952284953404291723022819255126176707340256303532430228510901702238921576865258338692993956924972051932135328379029479594195375639837426770403552605158018166456807446730851764362877789958001201299345393260425609849190926225731003047707262533404470955976701608486594348414297205619588670264500301333564439948469917747818621410270524463459724180734683593677642276394775638435439875526096140811827756281524484820869737316147290998606656289839610859638024182532496876078579703695041193270934952218598350140489735285622267534248163475300161279268440035216683683248160499183248643902398037993504968523833500706571686043315509086130813179434797033597476394206239663828743900211055799873918219821820614938484283240088845247464174316260875068139096230003598332724897122606355502147866424668755232460333561164354905521602821221651636632882956311843750842812488689577475868086335158778115304553030912916532872174681267723707406080067779919638948928950516757079095862893854820813629050481705371581674258312548406375065614459904772014834900615691217860735402102286967530500761630149353966888925469026374620506865624799844329770907026785780587288586931349917793817280798898380679927522664708444041154096298103141580034768826452468162552830950045920727085009713179702937232705696239676346387852722075747480830829063049118235398462259455428690616927428105502151818290535873296082936554978824747080899198180995038594769607735749442595502648275987954101015478840059723992657432255422628651340267184036558551864176579369856695308623352525631920042881718671834353495472780392806164391832205741146584718700480492237423074256353983257119975756275489276387050425086819629182297445793078153362526789600633831474811304579616687988335241496320188907373307563090989763012759238826686190843033548157154401158866745630022734907176980011762581950565713752516780255059983065344609682800338168877487211716677005001678959175703153824948359063605441028944004518720343953107611342787938641670383520471603806117793611565760395314255294161320392913975083334535022975308501496436914807317727892584668191691415402191910630552597115375235402962279053880052959540151247919502208984546976986944104532836813126704913082587098864424196761113043543118683001727844043288139334719571038477472897930214955156104905229986487590166666735016565405042016322260691883396391009058378250678471968454015103014037944440167857532131865518273220840511302810215274809977504897344746332723065013830695096211595801782049520642353034039254312149889629746340070161115298554916448839864558031930241551891192798640264151346808296302707652421652372534970619001346925253037201583232044914814192276674549843556265139376736520069181541262917761112336973391214605832671822828785403597762847902629781640660281377042626750864858339072817298853659631306100249639295218200882881144434210754955784093803130897453224265641531438849651483150444365913109967740340346135299631638417616437359938412370675179266555039464628044278691960357151948270104327872219766991205662300531922967854853954816087549410806779175846894175812049443269510965713623349582421952793431892379116534405605141673217546348439789191240552963182769047322894485263392587414576557078132219577608453570119002726160623305160438071898620857873551173833296256813054214300418227676994947934628577639809934974618267894611671020157539870399522550675861645767141189149198036914808492872906954425102585910890956573498692415149306588277792890645802525308352896645137829785661486569116584419295901957260269535704595570767833426204725396698868683317682004899547100681924193498334731106788618461184018113593241255123558792553840875938163042503002657771710540537831508601144445447345924367383380667592115542098205650737184000331150602318575472840876703919701714002421980355937452982194029027354488859986989782855886483829134654208810862340356600112362625954380309314535344134680425748450521575651791761588813398346028707336157481508661700309352983132154828077532000494958294476712006313930577667404805985251479203897282575526893556413090429658612289744571464485972897468353817862583641721151596547090120474077892823783948787476100698457691597717604288049891630987177599174446885010274170460658201329932827571676541621899484705092447862419284487434983488109928788836758733375464635725715596581368739256862087321734584265106155306915084108593789740451257379304947645970314726401557444333569844122562301771668740973006933458483990275909071965450614359526902501135305352807007683118505402550951867912107176911235436504470296324255508002868909679861017116119138658366914759187721334155930079286485248720222539948908841312164960156102526015523915955545288706413695361035702044557799561850366228028563859656011618180677994359619763879806418114837117539822745748029882325566611439355759183508354431971407724626899699814252850540899092775308356290231790676760311190105278648817462969282166437170316467178063475224744590703112911097764867448270277423697263822850688443552458474567920870902858850329439648297450000015937725860235483729820433070811348048299470187919514991485093032625287988835781034089410327389324329412576861252237937389893885093219086106001303317130566823459587650706731077079096235725951685234157269813878244567246523495272027756413618205570571102105550893119650661977593975139159849958830276896800670559665513698804887829938577194989255412511073330738853379718640283042208605489612026610630805112011218004123062776297914969889820898624449649861330007617423748382465463258202626859502985014524329052359024042654891544777115590219588811966851365127484815785911748781014194890344468173873024150564909768810030992599739447158463244769962968714726865361040395812744707490113418120005136942717678958534689995845946574102464155878592957935943952853464407534156499245390148809837922371279051479143789460108099451442568958264126909839415040652451011294075062233968020418484757709791662806972460744333067526612881767351853003711727575679903873513447020202276523690391615175198148173982628148390609667105316784523988369522562864281385502099989761397128199486171371229144792433573638090476639942704785552075603178235290598553578663843720604771596628967368436984787843467506887074025282861779841360057778904530697747680668938264194431689009770949713270220510104997351426169897091586883062560764943936909249104696400394771822063386400145910695022538985767096459022380392627696381252014082918475030134399892431302416647637738815513126511228482392077245001413472982316571905758921803602669323540949948682681310463925609899083421272875758139920052227742708871203020365379774800347320451380214669573712135926706341106586449092978458180104682561192726043356998625600233887638383815378571739545199997005972444837621292436175911405186488711689721747918506612782394322629273871802956057166482440885159987689614137274055834821139052231279412151443442536891865719242206038863866259320040396389375826432821698569296468613664260836582698649474933084408228568422884723160351930810181606472066793341890251529273410625346288978982522834466748727767960382999163866715010174992096005480103575437242446844229776451368780258794652125979508939432904261419684926294506908127226826073874049624914176757198229065260074496940715098370149840544285084312115763668757165796371123771588143970744096249761013440165878136663997129762338812141731956780119709452550269349848099445975297907625264369742794387990526763925877998879572439419180144270526586112047753527927968183038413231638096039917088577567666379764362987610641432645461663977708484230147310120799220355306686114563306755521546432795292653430854065955668093112940033147910029047461398836135786144507857510147392043805978696774721388078243416586075040094882938188856901598738424674420187005873219178727334774838054662661121405278862466819296642424552597041896550056857775276050776293892923743160036713825580530403428440647915809654098666538941980344516859048659306344001520712151118631497922673007117216795101335501832884504313842135597308971511383129560996589919970866331078206957215766641202599286487252973972760954249321495400873168115699649574614967229088055430146110006941958268277277033180572351854987661452896575333591565911138646061950877608154503496923428907549337110103717559613162793713359179256428232222796594642993075971792355380246163764531851553980176498625155536321098378794849710978640613278841391826119661202299980018209214991772712552753824717019839918533934560381121264355609055778928783584579732727431049103744899855639603034941022615788054712890914673685082860608247883827719608680291305877191130262620341538038747013570809506069201944324853914002692623765875482884787545434274483971220033291103927071308636875429079173126343182693678628328556125048143865065466904730710653735507242408765208678006145568224772385215990007672844194050196378490100287523709910412884776885050833167274282722154416506267227017974621590242791648754386388011454163827980280866285155759030007786906190054733794913398591752130376111200464513949769459290390277104944367305285746373262028260131691451552229466934484403449610430687148825897870743497279854175928326812138045350423695020649976686609900227851922823603058972685615538957489163666604370583152532727009620122233446719163101604690192413552697902720554199547910067719292802200294338514955273428369448080286434340500280312624308883476508546548128912980508244663326951283249068648947568569045063128930736252281463553913105782313284180818048504074063492508606743187243836930698627405287047325718527058064432833586820149592343591549492891262436762401225139591565582087473397439291336265654791571921875990905758189572582883948677836695711640652431826171575410720842529803740965818421510674211510020522508029851168692850715548931097099662777171146699950602674858613867250720416298196383119175425527964314732091283692700760874007770097358420054266990435726731812772798302118612118999251574449160315263867509773054663108234069458595681435152566394733060031758390691513139498906532798384622902483703843290193176706750728263940195096003589845736500194185505997140901187694458956000654735957155840094891677845365038282944188146584829624276772723844150702395685981981768853155641663876491307622075335574989411886073726255992850936336348856256410051947182745902352509973219315140934448605479892714893943098017250611214135985279450363178210761150836011792449366932602765976408981761684608805530287260712243564996366048477599482490686009270265952071017239581953542444267668304594912293563308337585024648122607374095314440306726287344663010841683927042394023657763842548654151920454994178669480754323672963300807549639333484709015510167236167712723365225085975232311329761109071173187041591480643837875203874609580863873661704322818532026904643869954892588000515937621397986728849826318679333467347498296987161089662285810595349904447521214902453382365764052434127578220733285390293980127370373819929927737368986512925052145144249381507808209809106273503577143596467910134298907203573988488968784362211755572119078861885343509963441449049287923072705502544238778355383672766735548398944248177312588936842743339061766596952069350424726384361089394205342447346895171575652060657305991159930270622673843598075936370182968771458698834633785887682998679001106174893486197205064711844618740558614186113397985516902545755435737930410121382776107474670114844808956258950661428613862229197547080607906616003079951600982603694459682710297331062362048440277385154082043457059310914488246687938538653546748365139674978764686859585195759733764148631606104973336815483527036928411472248646882534028873159573296323356006881412461183906568278793483603108698644887284850487014601795230457967413869813444042988903020968251208239969233798213346771977670352248088603221584062903766475008667175498760311245371301265908633470119863533431995156060666602207536719583772735997072692177393097878016735759562403332019777051118661621590274939181717155246115281337138625673420264567279387147201652766476477125033805893885481878622153557781251934069081348719000076697801126941591223244933146411308462284118060387205190247365383987522188623536401704352030472375975111631405148316960923479859478492473076837098224329491678940627134887153935988624606994819729946719908552364190847700458473727888177602166743248738751237521845416357572596605101180013894608628654615591094329070992097195304353991479636311092021541729639900779859786470397135779710177284648517593301908500046137631021602785595893568674101535837875762699573494302415363169344568576898342039944202275862284313004222708721550058091197444907969390419081727731775930914359484173100903551787622006896859558474452267956940947244790954614212312418360843016338785569236110705900826746641674180134745895804453452196588761971901469397201975857103970890021126125309195469836869819496310749662402858645254274761645385644264106595783238397734814801947456371596171322313621964589593984304467115421936473652894841029588709618216385457163939307558525593583352718657989040153166644579693369617299993188864925023364198315714615900084871545199492874242498790399050055184484746486288061544855348797448286394606998195440850948932392537348109322394781321466673684231583076966408680754437050176988611486998085545016400016928102744941065943341321308827154121158428206826173197123996452695024948723011691814890888958813983455022158459951225897204179326183260663856907257639490068672738173853699667755660160857524920788046501709305958342540554847479041754452823739420226577574270910143130010751105381856462248462789252948594667931929670484620384540651478750123098964878498007019956954937338145828762191412682853828571943199871413994268938107647095149771505198330752404867045245246170211263346037055953478925126932795640787486831610496892095347790907741209506420222930034996781223189849192697218944918371248007468985657937423793432206801020498903906709524870905011392409863999553009769055315623984053375083685517055296771935908976072482978790239698612805522141620013160020491300222535034456993833570789580909237675178729491677857985795433383759179717485972119175359778243229431423962506730839236101430166747450655604977317700417482688625357517623030733685501411160277123069687388907974541225520071227902693040542455230525376972117515704581356945015466755829859859408900268751667515148380071351382378552698997566070474896245054029877031705143360520329670308086579420125320284938634839222456093705048535632853886391315349743817218374266185432399962264876920791606007446973829634971830238293558389556577715763633226498232497777987626554395879483743040653448293684917433447842791732463274239481308169103858566674231026029245235494973559026469574980072095713774594244707709274560866993723073395955135714539236309274257832842337149129721823951081922942702227719955428915394055290199539387230564876016265298250410665483164419360027310562562026522592460744825911804345283559988803375711544751472310679774583869116840017432597532559023905914998559978609298839611847492639127440337406214212958694995648294887021622915494901635372436714163700904508442501627727865305477804794688079315659153295931758284386772007768869941513163665142682416405422753967932937868880566689571978145083108850766187895229810113522331258405256337872282293461328504685781293937151316922380482196009259855014315675085791841051741005127161511259267842587801501007048700289524437635445133852304903712245071011581672303783200669636481627218434388499872231253152771907131351947433952049268234303632321018324684800258100258219581084254112621545813579150200666011242093947519536704095015330210317284678928613781100634025446766552196137122693186417702531050272202355976370136844786704258502739139171510549025863635260075137125866257780982920165451137463929993052229216022863679976632182427296876647078822119881469238674133254017638738754770046487383077951001668167024423361616598649686552606941257707948850847349644866236297825822012620462258305144584257514320987513245898995588847738429858870595924314908078599795151186162932860072143763835080073302210301363942045096908811224758956852725492071246408696857263463479402083790342042388404738935120387402264484028049774084503639775313734508603040327752500020393485135135264763632805606038573543077597148023281117591220332211353911448550419098868279284243407711332867850328442414916035955393811846555550877597804145498224761417120590161028451313948237811555826883822197286431433160269285904325180609882892645191718783768498051895699263575599372152711215452649453522322959345105191223366585088164315893605305066788955916519563969699295566760351545235417056098784679598735176151987755175229569858391998183156385449836095608464812305450403835119143587335035329682903928643702053638773164158733316997616298241151534880148333477835935260456087555414884865063320080804264983184707286738340429907399927752127345993689176607974949720544999541804353426775317376683770447129927330295771653696711487454833390341686800336364900934317339603846866315530659458392574387726118257608948303549898926008840153416160447561935636750088794020575734074132039841451003101465141941219938026182291574978026814516529385744919914085212819257295976825319904943447921182908336128685826179889110438267401203798030667080997623964060925091474727294714539603255486245886427251727055314331746778807272937946263659559507729479679195331733334278845160069659595379607872788952357978581284771074200906471069820375921333464362412066867144004575798025077110485122284356477405551699739614727403252425014396111869491370423058095365386618354082796204814097682335822287350971601214728016301569309215110137104379380961203842908891238889539491188642418048190166933389377199873325814095555388793220571167922160838545575858983906014014911561141602157778592897992126126504358797222142733854709262554776089567794741462849358566955374305671356538202789638007840752688697689836017491672497376546447126501010362129817640351789094767972920305072966008997705539145006581430582008227671751391144651986289423114682360258788870450165863786019692477173539616236923952017800408187073867611397155996363591340521270096361499660386473528707075230769473358284572734930845724141967332221988193965666107781288374495347520288234993264121079401482130243461657382095125303605685891675349940427206106814029438939785123748422434153167957024914375832498678863891922384847395536526938504051377391311518484913102255510361076837730266694960388192108168416582023540862112657161803503043192718458828240644594829055172951544367194208563615742325365825899175368913385362095371267387160661183239364541793955813699687554134214351898751052759119437237692826713548120247340950768248773969812776045517148394376753078628064486201079395977568915885744756881051685577496060841446554460151002883469569734293202357151305850179129013789072688416442905892831896481384403449521773045996499669724923527420955822841456465794837888316765008834569846347497425746126390400019821862434056779866781777903279829642236321347352144677134955352304219315364290182390331107334708392747755705237705771578714266274331213758357436002556553248367814580027249337774908696855365447830657111869567963710718436992882585966841002100047852570252773581710358688352241277661618825086490941501596292797218764997948193606890424303724229023178454599346802804412022400113614885569806759512235345625840982734842471284163724548059268832471137370952215625034999800557517776322837304259734667497639280441587275025063514615806220795277236365925266105365124539569771871368981216128068516504034880746612860394646687742597982221633030609143298720845727410763726960772611816003283917304059358781301209439813926686064914856414372469125255868672887793939090330747971242548456618091122250106268839500922825804135980515522870431417740929841193606992147723943145434512821626801785918154167945693045035717057825396544803504800962292189735178016686139294251231093617553133811373038520502126152302314992381012784554626049102395413708260571303375368116151234861641355547905907353530801396532187422328421808387979280869787976453321773882683311646131626769644731635536925384748272239688237437139592531685679953164962430746784464131678751724955332731145773246846813764493176547580260780388186509475199324308763028886148377479168473091143182042105196090033667232103296667615450848342436499569725922647674686630579189574133802707197653055614186106920768755766968436133021022815111269009299177596264404986216253076616120131889547741121141363901347157760743938034878804613340620479342755046152855163272083920561237790135483969448912249898191931908960916231584830873953894915324054723032729469396457986249838112949694997267712608365450412424885679098727245512265472661995128530744127201500984535114093659386460516593704211437807497903429008178192868397528475002540297867335773830860257522664495722416253870128960568504103078416120319339721266921753433461270935457504671434132411007750625248743367642247713380723815568547758304602875790987803911414931143405212625426751180975122367889242552041316218523966961318159013223138387886099754126366223378296603305566921500233856456569073699759178637677721956825940268044496406868218178623569461194072244856666950037909216003478437579016123464855054455899363196438800917846464735121589449631230942365966234939501085112608372505573014152655355505423053214983425308293226839051973087075206907066079327731426644182210254529711344940037583874633197083520388304236598485768600366136601883598614345542168193149728865030292229607342390817763079130004646553884005198565867139502912865940396838994566898737838631803735387008558741645671662552763670260523480628593067730439104425338566606098776495473616050884665869021096757723100878387527118401517287030069388290418052902534710372337861385239483510386342961531256700995626178567143788581704485493707708072031290243679990336870001810705069706350481216441446873343584621257116452219484243586132227054794233462695167247153176331758378882737416225519237087629927667161581550824589059506907272906105681234284985467324026872710618725556355189089622507645123900066888997818896577603539648319546911693232541757607824813932048957123142843226425878364724083160906243287787292687722290258414986276156365498172142845699602619468939692448800445312184077389871802485253025066729925368263817190043285380805431082280861066688978815698297883973869338204441156111755968470596424997384914860186065387906996031661491868961142523353898122223026671118521016987793120097427244840672209418715702924702702557375954865947288664217381369729376529323782825612208948135035825306763550826716169081861683289852530245761820841685107931445522845133953310922616514485121700665218608189283141461211156862184159977359323860121826145328979904306814981759557027622515534112047957852330303844930459509984008855603104006678641880564106320214228791648177785194478086174569323684736739728739385912429194536543223191661730583287590427712622483070867989725679454061558610875523661220580922792232936412104350985774891396666739027157860532707103264703095385928118046875544674190954615614917249501291214985459811379028510431314419932768047884485767499508966601167833610052753774743500367574289470852990427424538890715428684528963946090249231816492127799237008083654982501078698238675264291565597310053244991310284896294049701103117715526544562801696468625736277382410619946145380332501913987171628058896569774953574235234384149498727030821150924438356007732385477021846582891679906566808827100993694341057154109034229345668694564154835741530299109247772373608273994183349955557538791077621116767495231882678326311844325465466530639047834577702727638684881601252128322029142316076878998940777243720275291542548599904045604332501573858983423462076486997842188508388854385339121960995950098635909280167347668358622970746960755763421388218302320998659199382288617762062698250340330798891422918423891581409641595194627087206116734846854627677379643677957588435002634490973916819823786734263245937762464171722764646336710038908021228398810756236660049640037219851979202250882582517675157654313835913906046415690655502675183733697545333329614477253835509480992156467530243727113986597141744492456424977277811365803018318203520761059963023695116401648451431275191462727728137209776215911299663055225891060214479767511612893526392206123701717934756003714611526587364234720589475467656685762877535010904520781732105674576592791362205457052489825898006171338792989082561040249855704869951879374351288286515136324944975916396964976370181295464673317923833872607539410744013368000769019842604378961199347537282980916934019853223010219699999219033303517632443893107783767278811793622226166122931546175492775302055095412458172022912769975459440200760115863156222722296956678758111825324730497669988247544361395219056297094487042505319452758853441970752947479399665508115673924017430582713983641576396567846131715825275974206120379158373054551337634176361081932632981915858469641889886140197894569797237515063716806912901883398251714267998622058772321557675514830004896816833133761520842946821405187708995533786714395339569894798926600674097963436769535526645812140225193968233538998415137144567946695906420821956101618572771099853000941214352704036201812784334235467840062206744602162774446102350802026555222314526882771046142112518663331840552745984214535793238137601924225512849031293128846072616107264147835965855569152344155388345312245844089108354083480793418634081477651300155764771108553529214090706387464232791920667554282583947429748814624436097383859518477918870901137997419769563352901919187966422349870504101761356806482041921436357835454595396909802785281714702983757305990010800003032170933229131661809405236207118042349611176328314163114483757797906162180896316301387502887969319872613069046782723234433309146389811920588914199470092637741050474943092710996326510367765681051447984748050855946376156462016490143443693575299492724832635115161998628976241019443687968235896260620490736316759479915560595737775124572191369440526635880599463939653429519799077341140906623215227311704320234343113698601332204740003092646929093724808236051174912761111503488591002307847045712909166037371135520511431041553380616298914404726471997236189331153104636047224780330102841556911194444811255146081080536720322501510230452297411816621006805287976922192985778438288016279335467257541831600855359939916532792324220462509224028564874856485770450834672613849776371406861848688877968127059473699220620684227672237344106872066548327362697468468563916796250324397332582028357626426271203849117181089576532648431366113723153894957173435321673302872991531959022469196693739650811610948980959739617560192313551910392296790325087846388784993100667518216304921629584330147081728541777334689653697301846856994751830643888202572589066900530414992063872189860017773738297530475577930230030304562739911932506690315066575184134023638092946694894288704786542023000376272606717963432004815135817165519026434849320571176405299276406882040382847868929484935164819780005260592863004777160241361047448282613149222171967181827785451682619469399017168510772573580138174637921730713498921173228690247856062116310387149037380533497277793122473331908391766448085621687959833042630389639383157260371282158864537398220031276232864783874638463453123334080728798313410413467929835128938448376205445283107310709677510888882124089511925516160450630110827984677705615453443233968888013331460155297735026717348049165617373012600764359710228840311951137600096848104278203867147709686325027652977616766674856837095499812731078160193074269026201683317673321003286587685521877036177948367060281156251200211619490245037809238920319245691893970876294887073681127503474708422692861855129853787336632166198519187310760831242936882854303456588260299032645838752226639911938189410713305727399663443870659511025189764703547852194050667462234045133103023996728287219496160412920158589561592980880085548331252113575475293240292332963339087581783632475196108967072585072148758100460126691356282987118721520091341916942260704818492465213018467530913567238550167707774522194618890975965476453580075361319095458607055292682831033830127602717375613231130821458608690947251016132616986519614999952721744274451767870323063663448804237012117875513816791149052887773729413108199299570948035746571871697250619371712745656562160766220321766780060961603053129520993165763411904619971358442051653800038921933624128789164161762511252960011908453724310374403206458017866455894996376220443391985234181786511795264082947576171569063370943939307067680649601642066930842277306507591626415235508034788874994114924086521262910327047995505114668195131218342457135234691979871664978989145808856153582428787043732449727768794580740615495345559037124898646619302447397199130615863743888588307932487714458116667933551515658165932680256326447272091455667495427857396265892754227267014672223425822953815990731660504168506500341851352604357244846133917650319513472845622532916088324679543231276919418889798735378917898818339241166845276716670864594915350571854291156488104418014204588213002141487927105714141266294368451495531009631821533893598092353056799458054349613436653328775994034896164204529510148781157851541222394964384405093831464869944061361120729829974978050488426404819917328191563283983263729808855129921330568694892580278659169736941236533579236548192138374110677179807268312029328524602989624465230227969042087659512447651503213507711316436371036419361175227930022668755309152153931368948018666670899115081243508376451889854265268305764651297501793515802939123734807545443620768894148165325734031446450304665175009060289324652029896521413616110285651088982645018448729688823594415115058962966787055361371826655850497672057706703469221265375334233125707034727417701520928809869401635855528522359793071261859182473516630788278860722166477394119234712241943005643299824420067426283809701127939449322054696602442820078600861203363031537690196551666990372313411739843893611067156727494047684034912671308786465837807355055188327373020754054433970006272647317945822517785860769294093089020154212781429816493981527017422668563552912008563171218619960801772321889840189294810123283577885065544977217395306381086446732379071469084868966869875335150611780656035645519424004409340962782887754198196272797945497492593699344839759360929040095159554096724241631756019959046626680260338252960623761392602147591187195481118815354159535730323531272903896663301457280703818480570706112996533630108385154290364064268403064550919163199369417879638684124039072707901863490106835431902271260588492501679324514292368905431268062030022864665865709941899604253032644970598552529058958643170497006858867000015639652208254091928149934425112866045920890308399927016382015817808613609508387671275432519718775558988479633829865269315600029361537762027375314825031136588425373879613044152950625341254478746537991149519721533424380699594053395917095955727485520324509538605263840123025358196814717012456127881682193500024079079378334731818536671679761903304594245108088214790830427014313475013417627813151571921625380327260368469821735328678799583105430335226652581990793684561180578149271055026218270995592530289472924532516496627782370239863306383401747303240114382528014596264663895280002712923378909961479712204581038693495329484821500713857985638440399697097474606559755051787384582915412989438908564548044250139152681467568257039820736635576971388723774634399930076789776790756344819413320023141914555178782773404012246937418145277220054012215585308180794553466042757155968297769275951422702698059463802748677280449757094414711000521483410222216825274291437657695691123243196304256692968652876093721369744507121940729794326858563743655323402472023717442934632299398369374656569202718796407850334777521488357795084333790735802973303212349949766688185856989331946412004184310115277085266690977101463181367483035488021793335501512457843708091211244072136845786317708578322091696980086342745096722052931369644178193113807997248009100632341040664128597473015147624382522745851408265359775858235920042641597479699423490628908858168641114683801035418866063033790362941374718840562361466779565330616709271476402803158861776835582399279808985416606462504292598863686852944590534952337715296367780885066603101998453911714104962753863157170414870689421138693840808046351079737948670778111606728830138658512357531425366769905668721249665799194386599555785306152179188247549129724674526841839336772756555239214695174768773207026701144368795836069396108457398329158323676090422395433895935559812394610490895854375181086771167987867945101690186183996082496176350038306595720274339360826499897537206693008937153222448046820125939564455553019225357258401571131721195208817879842859707030938928716359716125563614763763478244559055014954283318293027943316406752275971473632613469516149404851336271954071256813411615148582725953872143021575301826580636894260654326607249384080069264690122149872858665970976461710328260220344929837574880878105345925583576406917536270147455753276561437619860479241483747450427519389997074290723668922165079816797824455339009199376454625766326984827580096605397662535652304106996083579505048050986801769785526102837267642244142842566504591948615034906207142977114385070715681820657545606928888000036063450848949726072226056099651425044489677614331984981478958082706174688021359631055643040358479268434853227329425037622788390664331186315786545593412030295631779803636187604333428930783363770787432996172415330102341235873710958995403395436853269999033266209896298429950023319764019101921613603820844215076408353603198079835252449582474894318780627841103577723375310348337043679428970689985720117748423634463137848008139735773503551088772432366072259000117211670629833964726463117392881933805322350979417745620939278151804172824971593514532415591032108392819172581961633988700190540611455433062490094734268032921608995238990554533382875895571022094454882346572496866351739700421846397948110090134944012393074864816716406058120971471976917291567226267580478790911577021935382334801245777977665853372451039898516800463172837140036204098820675373157858098099601846526917927910201779612588417769799690456988717957404527889069092329776045421479049063982038499649984192196026200533512436516738953035992102854962408363608597491779090074402528747657985320665152631212666264404542252396533273274843311422352673201809962798299110350432153153306747420831746961639882513668916121054005005953863425041265018355367501858503805359044308043892065964024167028680518562581354812371959126717629502076889598895169104187681165965277442219853154533041185746180775542084112490378769669194344194837136595954896339537115689718905058872866387584449459167086631537276654701404042395890010859570372914563168771829004178275374753215433997948062426917597014584920834002372077309779609841226834464526219027958800271525465146647683765017173538275113250277069939613338823519900932597583052411639927732721561439300183582770976561815010026396198342244318599380519360502360349395893831530523869116203184128381389451129012593744835100527426224605964423168689216592669255509960410478265167766039750152838432104205526608289556177387368889260021253946674990702100794746543667043984214308533650417276314226633147776432098278249848793986090154992995710808798499070415578095508021530752321860887666055171655929683694373903036317336816422977185116569372302985727494979202090574914220115228880426411101941082778873719382581026155863819423710525322620010386243528227447529975120768044921390112122001005856710952977614029151091927618359052480505893066393081204023283032610044061777275530917332210209256418444851247595055658713361892283071133536736596996619950593112617118398150932768909190764456675609721370395910140323740969788243578164888370026961295614786482436633772191363799649832823736243795157758071970353972232934329816966192774259760404626468418061633561721379534545665545019423928586376754962784210283584551582776754059318249281295925593004200486477913568199113592787722055299145857381381713326299561549535396645389027877309888458610124242599815614027267064470561677636164535014586375987853472562472078930020029280504204385997240147073353695871481438758719843498486846723989523039435002985461137514225781760061563357468004301663773786486283911152113721570260960306136836239765650573632192010185033783864622589398392404004484137827926992491911906446828814301488932756976596265457071951944202954824144611608898704201340924114886250210600721007488033919475795425670698790188279164179145418472156944226632743028532155465838374762848515210302697043529110203607416620179944917569100764797486587591453548317285549107004486562316013774272737784480059815622443203546127569341377428230154224686578426954338321196034871133752479840387179306763199233893005965777058493584445260109974212738355617958919234914109226588756649103468705343157571240444600449449045947167023962109735134426975803003527492144537568912295006706883978936461633885698231580478887582985654543467134388026793383296893932797494067129406867612892261519367946677729627881850978568370823320260625674074340319772312787464452279575994499348161900468171292192009233535343698401007354509886005563657344694681319747210880264265660379556585038883005346472623817842151993758725733754760417251030442847287573871729989662963919112885108187418479143700402835753773804223536734874737122483094968020109707666111945257122067683266942531448601434813399861105769863988599684804725597595777105025429832443226653384749345454254079647046552662709283066641039231833961538430389112337465791014412853795646809227232161349587397309505248478379254365338104585310815551887129661348733539970669735163060595690504228761858494180233659519040681973868741502044260341104603877341537309832035710988242304947170598317229085084079519638970385324575056566664170840240360724753990040370305217291203805575991307595928898905708391115582920902039476811140873332904081928356481445635713776275510577019815168702104733481500661213930941026500253810518711109140440777106224109130027077169163910854075925168807687651898716438294444946463183348906137878180946115645205106771955391225935563208356955703328458365675137857105600710751987190631156378924925437498315451989380255346000396295859250721899688164241434077845764423039543470054808293127147956487609838404599385736638371530801276970750354011779844532052205032841329893749215983429279779298588052864412107340124287976285047654487505643468081257384560889525648295870683241282428896272578616987336183388335231025055809017737190351393028944783665164915275345770574616499302908853346237463570004136680791283534420474913630174767835217614920601945850395572718707591902713667999851661382271858897784268488572773946080235898895260382491409255905252888637749317408416770035202331910617233833508447883911373837386473234150536163552107635843395173693090234564107422529099867437001093846236222655428473265328812692707425600208108796348675181221329548897191798083258536275623037150138713891545130352440068667304565189785889711349742024514567397513681751335119836844042737556788251254352885704891462881463161740394226638883114187726971887539635027356311550329200873112118528245882861339468108432193035555384775296065424791816244126836366845420419054953693156027133240176923370803703854112278286681621009528299306880452539777580731489512599560666289657135197669113061291066608374848818712115659143655406108976232224893371655209554931792493992683604530409179738990613456043875595347818661932428157200973579066315965458548149458281930387896786624302937189139613083394764924488302720916032639482823795661563008728256191185481569153900834153825300450793450008616226043810693890702291576323657061521520258961053160815989108999834661440214685097341489689415084046700302293188098370242996285804842413164704703161504026669095368802468970616507156189779707917829026493825670794822104705926244688656193997369116517192379237262603065472258841563679683521978340089886721974613578783850881474813498899913944343298028852677931307242609446990861821668672348759639320923610038036027241344035349904483334691232028919874310342854463617454587995115457473873393994921009073368063143243571768206810248123879439477567383008085828168276687802668353092353649535201921821071555815822499334206676860832282670857253236926583758081624577629347143765283124380252992527797023918599303526439017520783160922320958423177155195494086355059262868537772102485571204620809867765236231327600230487015165202942473278145162762676346134300473685292083991917965125527874161755318664795866127625381095668094468867903476429357278099729926834316044856889765592370320805839637187203008105706181580555242889881489270982198791808753626049355240814826765315296375354055136135312717284712332011252383179937436129369153575546929998886231335781187880113416919855988286517882184155087878197348737839393013375750239282866250996498245441862728099885675131751722419609102205299516574344723681935953249748371130304522324644484319537835668493603404065449503355067797325640092227829072119622748992349213613499075116941189334495064372589757906105496549913724171102586604017946474443976181503290259789550065758200349822380874287396377037469522576126082438407198604098804919255504400360922678820816759558447624067588967469049079890192624698871354707593688147774067728956320453843746408217133790754906757206292134689216502750677127543116243852673095507243017077230364641181149540862741166046593516215714317878081517057253230871595008807310377266170773343545833271857926843677003325184831869906775286111899843122044285930905753870334188902058247901682061781034224560366060419930102828090985631442225471342242938777338045283585119117745833516255309369568934714233572586822962157995629819311405870617777503771072919315370495294315844313328238652517317098932567543796781490946817001490181244895653096622229256270378618444712411246133886313508505882208229011563314366128743557284019883450430127102735570115982037128524412530135572180752298935248670602618489808874308493464154658609064005894530986196934576186104101926822788879802434861810850330494660841407481387517655681519289825187308312671009803531889826806389887393724891276786219780960489123789440433866072551836143821141093493368405903497351032255359763401900262284536323470531926919208518919528430690096897216534025960016186620284035436891695783938742182700661365201447445700097717577980992787530241129704931659821005858756192949921092294821086365934373082620804413334607744637734803874224434100673013687577227363390065572653707289194931509789212774913627256321505009217936241375468891790332306224165640516398409186214263984416631727179620758900581415388847859816184619634064887968205610410293635566503486797663636285683440290953282874479933060128978427380158063265158859967390058658801033411523550924323728754338596758039376347697748820673005138487796552489597880514853970203717569155804905091113663477867566257823133417416604105341536908494377635017971879729943826195750498609345468774863634261760621400187197388377467864480053086596747953063336644672888160466313431487106166824475376388422502668498614930436276528767041400150094945521866826033677130950630956417306055900681796869242858492747775406587270419698105491372828262493891829483628611526136865050905735685853092576252431887334641854287396859122154213865145062018607084254884017615359463703218335001792435517180149904105878827307041271226799349034943104901994556966931536780440027334566191183265316713959391831835270000513710640899476048045740048814858856627343920462508465243183064037408257672637249478639913560339453019967584381514456482209648500239538647431922559331809490553285429425935160144160045320880513542442452184142129173530621682802563762660794611339923653676065636537448706770320028305670071408410088404315100272183079293451336990199784046037517545549960679307277345316359510604763447113922783690382196045891443749322597701345057642104643231502736101649778727443561793533699971455812090806073535451301258272744664647188874285055544194127786629303465031513691482375983616095613254981666957452676480299570064254925748930951283039696763426696163712856218531335717312088271290003939910263297464586483976503712539072851519074341525251227879793632633064502130974609221695080185753246482066573723874264524309549001068453533977556102687447899381627677761572172256291853145618711820740245174370568632514104429557708334707254957883197200865852760144906893586325463097413633901389910198673597494740138496995664912888995676003958285434379275337646320441610205945992867215209044487539738591870611161749205575716797335674605647056560799031139361448173571068371419570971979616792771945301665076871709446401166923914525878058197073042827681444268056251473645079169727988801955339271785697800477215702000376056707796097185210841660206216202714821803211244330667855460306409280340402348374613179631492111723141174825958851733373041863093358463184411559080736002681093812931272351226405390747662956735260954655541295691632818481997927936052377921112430815627828196349906405842262918951647922219252494928697501251046419527992983985021915733670769470887503000881390993858477010157280311333696156420335992084703322959475527041008261809143164007438967701664162083583096189766014987331669854036367574216347655684187695563772433824877146334187527645642364822279579431104695607215602976400357955150916679326317688466799100623237660769810009587968159054705981137304146122380333016530206936410997394962975970565299605409788514904322563879435827720108934260923143452828272703888511641471946293275833364205781594238461749369122257431371456718165005040292424660496582224384994434263676831494918673184989010375350501657530342000285844601475528059570542123320451572496021860385314804604241809993713800076312947753218188603103134664332131397279214469265936184506024042493313246663943200214895646833711325341442798231873399670198945788764152359198622585057336467499806288562762278144927026539391050840746581288101621896488600719633352536405546577648595652165556782647822898871260624839658700275617482423688273521681317964073842879521487793992600132897063952269729196462787319558599300947151130479554533176741497816608272418678484029066739407868084231203854713556657022141254903365307535170136289648679387381527250139184932187432824397782105954859378675647569102728372490159353804047475168859589416651323903562370613100696784689464873633447580430598770697040911236968747380489339909988339471151448451589852717654619054602956916974936581803700231749756007978885961984971251943072079198431132379980810344617049150162619721889288338819797284984877279389107744712034933218044168123602094113725168730559027549739744253342750541868203596101207976718820318721141893819764286298266043449851373220895283547957772612331058247033863021052677830687504735651027443618223740762144760245270535880178911346981405118541434463521942737100064863191441296741566030033348169000194520204012156474582757427987826688542209459606661976466781866551452697651882733885178106092529617236448908366169237206823496582370667502834277757970102914322311808329838868028997818145966579056589241043447656651964210348407949635495223243920454648615546616061530720209310523668983840969833313219683323294356719681708967047753175659677843258298473426471028494840452804147090381537976037677067704350433817677399834112696012944782155135813946598030179976263966057410049700962999959818379032853304729318447369595947157093811376291969011964654627202454185681616114460725437710003973792184227296122446480338237362619314146438060364654453564222231188970279479511264765308456274154435653584757086417962793109349688592995872447187140205038724468274770559000280843564796539282483411753368382083142760688427997950902337424652467940020536174603567017034770181286265578902894796016962099597218920790648003697921483470830552190707707218517722045807572672626072564079259108592682250295461042424013447647155048621700186106202380408568544517313448791641536818441782256472723452634725635886492672375622963330436189815767282637434546483955858194436804042522892736560880654539589957629032120517941725114264254762785616688024403774233689303070991197656763986506697844902179227201406206143464336421277066997065871083986929140050988767940108081779612251669724603655414434867246761265554646274343385469639679719234401402558585158791064617425419455140961346537093851460309706525466699764506404805282046652598988481755561106971122563714157583050572872798976061860337582029578412300382603431070234617244680685922036939592852944778539460393364867379991463811622134655533194425524135607675385888618575010392016312799496261563049221481511685271444663912102880447731313829630416768156101587281336356806879213916651590756023891065930749964424765706803523230696076960100629915459984794405784038949851083129304953137710625720095277506272910897992892506571779555104023361375758143186003400221228538747314955436776636959799276521859240520480733370337846373047743864590125329231921017574904427132474617442197149456599733947669736787960054311385431018363330984638546080928271119879530963935228482644197679241587143259279612780394485497655793499057897762330724716804037820845457296296968488437868140740485454971281523443741041559638468193903977529827879044819378252203794420362915500583810379974377667815271719706487305670945196603028649308497054594427783077344054522599182623969665885118426629414922779206664503731298786829388328131005475133344394698621100667897783168930318059455243231483171470853813116391177568962534518415598753729239076883072051760539557983457324944707147941290618388848522164311233576018382022479902340164707967466985091792780351216800326612896227525562791145341132503729144057736596795296039032143666538986120636471189939962694873690933350524051838971754712317079392338160475726496334302236288029115935090678552045387042992379148139492592295509608629156013734383865451220217825863315343890581868873255583430276716577987653005741864697024533539383926981930785591321260523749328691789709842465643603545375669163932809293835032368957926811981021164628154444833887103854371203234502104831004643682067112476153506587490852720524687009191410258327237612552241583343179910520717705353735278634758285152236859503298661527958095744192986448629448568236320689613606855637649646521836039892362557200090793760203505796864953024142258837636656672043245426069794093203318979752577327961756355266331497452054980919187131701169085328203256085492226698157498364010877607738873075310051435931008313806142831884094007418568163584427697219299341056569714509989512707808968825751110637850466009742972443687052843731050335265172190803166271529529443026324528252467413105778505375200468128827009599016365260416051278411250101603049083105217974754188009241082144804899746650130110426870829936273282812279657455703519638993228220778406274851811937345839978276235364870737692008953917890867819712658873241011264854194774909523924951150468836829162657221711547799380773510507432513617446421401409897574089469314253292411790981987493592114763267191926364110610213088012142457253297355388437455128509339877289432569188880730314282322113674266306759841439855113673201258093653854861058972982348116087975880873560468467584452012144708463993884381982646024248424243786159494268015329982207030046842459083797015048912257978654087096801034602532889629021780366780730365422893233559428782844109072166033770875294203045088719903928229537798101991562013374041757258144208792493617856902342099063234493107083871162222926861091382980583143140390782487254851624455188803788205869889407341360067815334927154729799114644593228543867005038863453426475724249533431294870747849411315052515594910259588225073780689631904829233762998137721208191122412558251706382935463909053180116620119248861170576409181813439073265095638416977750472296435309039927176694879582024220533047649810009806042810989885189743713420380359657456560715682645395115568198898476468829176244882116318706926093404242096981616299770536313750045611720135885864451604019035314268348512645624952487922656039182235810083744678849379694167747139051844209187914607692989244648572379659651222122925876265391015091912569964837613671385449482617302662871818296009730497421283818941301853758666307692068586222815705299147030430821863443557983078023235458106846375291546268008327860741414111242523164304775782420961868953709282727346082973871895298056041658078819884950287628110411986941831244211316540720737818831518148129390313732495276455987022525473865022362087130453633449621976109997852190286892599871896535693556379687890832860021219797862281992446651820853219595659714147665882858951684219361619286252286442990590643115333818752466865077240573857669492960312467727428942242916884879590566538750301035217727529782078725423391551615090424439870724763199900997418919401296504269099364765825227706922340076967783416036696204153948255026415594531825576723438512242465976530474622787705652618347877688527966567877005258849589983995377595169300604469581089234707480455770037645786920807091648478777997912721208542910834232419728059998597105480188317923292560743701205067840828810780778920830173056293444008157695528964840560569726815296262619545996925755567802031104170598978379821632161158194844222882881122943255266174803031586832436726767567088549097657435461234365587105731359228585351913170216082474541691809560703386453417115862949885363543782517860059444622803056858254637645006593080612066210341775079889565778297785785185352288869842314335602468251893262250493781842034815184949088397134358336509885611632301528065759282150371211969408244692758043834217096881995730402752181591000766213792770391602300722636468098237336360699159714724657083325852350670477717980297211921568663781476744161504202137443665121651664664739990603386788088877503026665616456947742879328582010845397703748525355518731758867595515497173225696044809784538530347825729877619961391952682616091709214693633813846986455595043471775769338104475922192408098364880106312034034193475221581199864978849359549229532723404567274265535811845655265161322722745492779886524195099551849390920209980552895373527572369782631200557763405020422257866365591493463532459701269087515299587673881599890193701232784784402668386360620729844537167564003059172780492095488110778918448607591516137103145214898547005782508075791979517638895634751761572329475373913458196142140418479349590956318088652221790121004503583368511220442980224634231316443986015134365800249644576001654070103967747925615686313729495274311409199763782000912630603254602691486433962308561806771084510503050360975383646805839962155431170047586798257517242120163014527348342248092570726313776795282636338025834303007972563467284464226612629822475885995780945387101406428006412773837981032363868925824808856290491337528841597651137264285350333172675629709783230345904416946659962702697269916461977487641592614974230985335230312372655897143182520098262692815095447387296078657792009848372674522942019689071452436589360251995962805724808934600248127329147046839834162045947876249567609843945631338527676242438119556729657927434644865119018476604987620958030515866893879569346592341310421237379393462843739695949475400313264259234271410419420094104480714910471452694801296598755138520777715121630466820144245245224926994486080206147300817557845056427454745290548989167090913120375004301441396402346747820026415957902141861473904549545886143332080161494767575268302695062845133364897267943735709103570813985550231605002177250986534108100529359516801320750240459200388414147674512125386107583004121865314743162951975418276712527452355513131231354129351936716010464341413908038948497200742665920016805308093916754332437906934686150077154218875525617766129442826037585001409560018977072190597009133319684734651176082889733295093970957240068512653720902225039618490963424388886038612294840497164856941064286645275512767927227624428218336138518132955072714956466018136287373002751167342458543821403768259694079048582381393980322313839859442512076744075773505643968718665890488618675280395777762354066154631651531968997317044094295836808452916992120836048612575107116985667318600532595079188971371762401775419106063553344907701223061111868147909241962502518355671996611232974042529332940386605321942339550248710509252174699220119690279576899236631070488319923954282796392838352288807453149233907098001955151764318647231189348673276272192608278244740534283196376110701697160146485355389029637729099943428332208053820178706954093567742831030224869713536856776414570023759814657562406513266586106394941395983091709543219902517925730711576973298777435586514814242267826976454180417848443696599319933452942771744298208424279722881030943009604163967588913456355731789114311990973511320981485961549938302768249124306318672918225514790291067772109142608290042423705873796441865267480816246266624475520305182491159283208610879753220079014912521316604053967524102509200465248910994949939076507546209315800061858337533389144668350279263002546646461889469611535877995975524203040395397753304600676640786900280447159880209248974601752107158232347168122304726875357710579481788034134620646368503936039328915679984999171303145691526313549781576460096453897982820798380907935710268809026801525051625696925910718191586710002901920066827509662109652774548574164214615053262535196272288745602309237072289016526577677628102673674975782822364544436464295227364880363808140286127892405794776465919130505807765934978418364935460644524393811786065104868310490408079670062706923661791825156607485513117121795431866424526611880726760652494670698589752421469821552575959791526422470158372767900918597048008598961395195855570421985256742539837723314317951027615653488583589968080865615734792375105129449933244891243993519504062085060678630285593070429439553713379192364732511592921197288400913822641976596761487290905942424401763652123340250368760986135381117788752050775561284272490949795450521085167320335648125269543197899949107578377383782749964958450315538458807775652957953445384718291454617665051971514676617837738482788226387811762729151223066853925115111518613215319953591819551653264726371365762369851692583972583983242985693195914446685282868050723978372387213963213606521893433926432057664581385245671155020697672095340594469924756494394622555208454859654609260793457544632227892346746530027175898674695898418718054544461776276859776951069129123726763531746881993841866807839553630535284662691026033313202963715531052760598990181233389704475257203831208062199199943432062553973875972771355847078632210784279919391574894491903014244556966578048258967079210086975752519994973006234717550326297746269856463039732043170870183534513539905163996824280463775357786874451598022458621136582541381975125060934937627475436337557993316372934855842574954894372152394470088626967074466206752364450059398699953927468115040256942102232176339294755591113624769695219775690120885680143959778223246626574045440937701888836657549784492885907259508270153453130538264707865321169324969868316345477173284351655421086205147554677022764461686755386239124571056063666384158484064777993488532816881965766402818430498552871351715212354217550313129484760092972593705353652343661361682473779655735060881082146151168094626976353208116331214637074790237517783958857206669264359994435984836723799818897295183274505656366354158066421170622804226417650780857389297287094384661954413718619995838858946571691762281036218779390239482185906851413510857594825453108046658220125428010690717661664054544799349812380298764509370987726103793584069950814648834101483158163717066228622403347596895551236729194879805280299706716361376248790988506542271261979565498708380572369348096542963614495051566291774011589671588774841401221002903635485306431783408349608060183834539781497320051072283555842567612724087602635343352438423392555666000573032472803790903852394091009979363166978849148702340305712323847450004123510059437323788809824312577033560191258788923683174286111763936135902857073448033685603041295613274815349628491327636531527293740747310295730858020660999162120264157171398587942148219667947205067373260687588706219457612922831875158760434652732045674998368978885129424841739770112562481984323099869139490866121551429495819840136008186562575412063045484483467478999851802516165381054370219326980907296742823025699066574183613009520510244962687680678159565994604254343581082519115410721495070168905784930255282935725610315766552282057868927154736955465936124021407823626429421875864650235705691911851236666238463136881153714943668249350286418902353955685985472313417447501311767403991288844543815114962476625165258292988315771188350566130169601088453454298861659143068470009567974496931380210607913384264769084603262567029748862717175795661006703570599663339858040889467542184870495332777611036590400728726603973339086969012460786299968649105550059053948516904748159095461711234071086844121125326827585158738662541411194451129488770763879882090701780142301661151603623720199403643529809232375153464940294643241257786940589553217182028648358157715300750623793766939360634963638729169977206664829770651570245497119219290591704019271411808429004652532591992165188830250602593032536084449128665076543508277744414842067568932463286809395222199744586857672631469026803415924621152423587460382757576465139274448038434516391078438884788816713479646332862796233981425945616879436596659263698712326424009479702601837093915850271809223433033041253616941717544780129291544603814461448660310332926817371166728619743706249868953260464522903179360981941818165002068197205994455606504618700419641479511258735699438038533339028735054945794703266295905851532260931240062647284017735137482180673443753135338099258505803623221238176072099214988013543090085230101109967074566581730116181157411985090083976309357474647945467517154397110530938063500169905628379278218419833522303851793844310351392698669794996724343530761556234771430151823288345112706254919390141827831117179798131150424609176473124585889532820151068480541074824017360894696823630932244741638902439819554682568983456127389044075114412080534380630657612950852039066371320005473168969421671741888074120065109000723486248981830147009955419250242290419943915101329829987749245790972444981873611055806796888720523091770045633624088265199787697407215911418893899587302153272103621988896280260791703305180097872682872356685594383529167690391111249662221802631461261381248465671566514588194536354620437548457980272509403744159961596951174184951432877715384801380803413834257572621289319358122430541035619735619794087589407373309308388239600305496638750084306351297505096214640707613490698135275513271502039695730395237276896490720144087719886991874821266768005610804774529828624636273939987909289040868174741981002728435613012490169386594854248193697240336176724340900589058621927527548525872725689275863688628300277646202504873629811730765562658594298954284799419939775638126862150419068993851631123212158759241828635044957822629504801611141455723447538752926072227219078752831334260904557863473670721145117236597337607385887577195421094582391407452287210403333431118460040700504910186205067745797684103912552277922814194136744031234518405453817968583767004027175357419002034422588310687267002360028259986330044901256373220899685778859026959958480386788078285046065675590342294797718456145406584837413946682236002893175493487811753850510221411418392586597049583976086555297011669527373396542789446029081373073921722047357215132979943440440412104268107055384731865689718589127842756693052304403422220700821519117585940334368941171818820864493164720848043971379846940252258722091213321744874846802067352751823563911768078380080116445852242966849421065532790495466340292021035350465016313314027487490471209342793674874878440892654753142393196991643352377460522720469709052463226232564949567384742608768469666645770803353278175542196979720156519760477318167844691555095050366495735328724159908874738804369568432065942495130172478953259266062285561355387033666780705842342931613875053786677368821724024302942514547141102841767546813764004520398783853195857802007419829117186799086656704016832417498133472025483255899654418466186193751816720833347201086109822065149353967165230253248643808711843947078707296797826996140444540131585700200083902161326330919244867299280192873082150619398128318414853279646993704078810446759013904150214916845067551381285519026153487607378128087537289944371839264915324315473997663560842916704733946320884593758154908368223648668158402573757653469504396427010337197775002238500661542770399764298719823473850879161255882689808111320941303812468464396797186331393324262844967127613000544904965368768231500143049755246711217544182681565074332802123964837275321242330769073585359414013365142917308117864236652990483916371628963243988855651528138946618129975499785834053277427700495506609299781226608435421691199071873994697880765071400776771319390071346751582066854850199185959032269218519446304606094003752841965925584125287080383050386278770083518432542237980992914860995267778583690259872966574047531413984034253042674438041818665312117769661208805936467853317748709030382264449699490530798112014098727336987858163388603241588189657087144340009867272661804626183114178272953450790419121958045288943885011731550281181688354100453849879665932413315577081685081772209873633153877964529892980925808449236860007984297200311473798165172626193734158416242416346496550344252999527519625387723804196705469470900699273157395473220583903386253085411890064446901535618746381119153399122179727583304404773781720688483482785809063323734347160676585441418161070478540865902281894998400594699043051530195332046087743605797931677279947307879956390617279893485228000539018237606018277886673583924847197230590868931457318058890913697422428128650703990348708745988427985720857947556209948525766150746727263414140947468980691621008745451932155451247742518547719995215976183690801019704105068019978395484139037423196861338621697196960201457268184469725786738476153495230693686989857883018013748216516550850247923640777626063789146857992857900846981318936467122740690121769267958617013995387639230693705066518302012440902759593452701131226738636321858870314173435738287104619520914503944885762692264264105023401928109033711095160025862956263003519568357649860385791279306328427499858278656145037407554210202583020339494662045117682179921484226123804959399705622126442922441407690123853287988547467578291956343038800594104297708580785895263310528999301544683254023097595105095970790030151642678708854968385633181685304832961589289667344428984201184984112952603185415756080850278593778155193667605125714508876036336236958148383446967976024142534919048584295209146909886994761936976444375782218389156892465416315034644582850712999845526508410854458981904909101790571095981497667688616369559477569395779275849577014210574097068697709948539986424295540036016775824746497594493588774058336188389993644907572608055645082252777151797194790672337950462816246780442286817345238304134924808349703834878151598675604862200422394797270992774242520604995293586864434942811581235824624143842379718707308907954426731134090114996811680819185033174739750047712055450263862429800570888889158849890166084858358265330704873600605478375577832563645119094189323666307946302563494125194659780336262093013091712943385309874099248085883135550255252166664898805870310657026155969988357159394323058222875671621082037447114992139197997275851157609273328733427037370004972133494975467219529971205795643372170908077395601267014540883118603371420276150977600292003013433469046511024724058923318399464956530780980912880846411737789724171487128102955393949327330494968290370976486737334968534415703983473317966896648453568527879360494445992027647815076152816389638959777123558649773717648658410569744897431191647904647122574911267690939480780935338651813783187606530638673498854178647948173215461737047458897090881641457259787368451560173963819090958738067819225318291751067312493908265131426459163997468902478059872848232283292119954927815058227172736296509085216846360066651661661737940588904539011938306953979971205504835969916408953121531473014121925700703016215279811736967436397552540327417182245601963056050400371336289321778222789906914776361375902892258558859753380333312498857942929094210327205602427574359467820267341723598253236544694759110192044485683354344481058317814684234729258220948958176259547903217633109159672296433747458917884775906836629001230430168441182684582473895818850445896587535643737856234103958662935243535856032358100404212656531657248651997833343374744575216135438292537013684054352658121407389213842721924809327104550315103623542363844698930915559340898253624375464730179263903285267715761135251228974124771079775803328698518178153634460651363124362865982288664039238922929684835205214193426446586256515452606402012825155206230403373294773498595333407925447983510510787859678237763540006387618799665734324424435449545937845397827283339701416742835782366019179397979818638335644133565584201162961543093030087394138147490597953859425578730343499173618177650459371064460572043689395771723309973636458984502909324632220218214109732153672432139695804401855195677425422628490718700580807493329194466054443437748266096919101026034514635730875058660195959997630721867124526776593373923277528215223963075122587885287478769949143985282839522120201817668434427339270723544092110138696297240962862411857026295258750271241482393223464877431469951873126346128376061956301720037916265098701393321712426524982246834210286579140274542802979344549363155285162976338787370280690063228280968648809013395242252502080988329003679663890987030311448774195258503962551350289633765987494912901483599345856062097282075890620623603908497185471376657455734998906801448721230584566124788240025599826415103804569052250591869929516829765743658526397685645764973766795304173414919708280054141113695297732438077592847086039580741857423519862622608562513337446441037975470234642897516212355576044041754192650533617232370745706647849534252048452605371453389474334627184010870253279777871555797231646945085450489868286475883815068260804601447395052690572813270646082459113474992341451574346358754748983256453771724399462249194298406071640054498876132181406575161467271659373220690007458376909745228712399779023698994364385088998388010396645426599873632471114718843232755792250960379709124061944607922087913472660966797421565384418990277279766076811050410303744016577064761667560614501743339078126737220905764910317226104690198927311644062317532719619872434720054442454945700066105658817115659976115497355083859493070537110266741770513934000436063201738123661079945195821065226764418910007375413282722503337638571946537615977477948733308713137423147504269936745504453045018370855388882081911243289722540562476377038917312573270152311245459546675092291060443974081179018026175571555486004756123940674307059110008697910402359645510061912775040342914250473722063831397236531104117913349554661069064482082811679641192487139624318126276780322776575336465648937961777787422594043297150718063274449518076388843769640308649465678240836326662951971701727000299167995419108754524875463947966733884117351727276598744823308957774875566874812883273215711869323574345634984150241982962482641718906729439281114507932409667643917476334485106210171299398754201164632555480462846844983094258551361002214643665140862830779994049526062104269244662469877672487423146836308804546358564948496066810333472340366009343614554436442950928622378141617907827519100279585444654522059724366615196678891428565896398763157489628629566327896349539939541252292898783742286854234920357036180618153392549208523931346885795328891689334964904169565641699693590387388245872218710260382960596674684942474929892143397276210646060777618770627686034777574465280539501660730483008761172598126953517486397714771485047852598050360667612405241739749509417156672882399808494210283335482562207542004865161405840682051216969592085035881169263513036355538563939866140916025079060355645882387930800122988603033034005862982554787323436616673431184151723070973020762871895655211810436164243952951938501277282081281729307393870819025889996538583171945403333216223562616095062834623773457072592291242564447949700603250153383755947880741226013810420535487254517111435252721717598544736289949516777508265852571146396387410055160806061067572317069458901435590638326686653982510715377820065794684294026864475589331918596384941468822184115187231853815227919813530402128533093528143621023020566286648874504539265398108505858792482700989459096093836984273128265249899943213125180354913671002556824903464372392097702513639326250947372802237274176623496359933434296988458200805400365735054966519946038467132426521674540701721690837998554545023855539518071942863365859947141153514724835965039459049315936765343490748088819013345204614197511925235848339460541359022418174984954689597676794872348635691037054218560999187627319765678077421458313414851438864123911602775279379662593882884385200562823541603845694282540009379133845734566918285492100424054730766336608245940200082742235312581351602928317326245738495384056625842068556382699064583323725949980988798827813957027783684576616007238286899448163543363938103579407121542998012270974894707872960722332918043792714812710855499496905697602954091470940781783922129111607813962804821440092813215256550491650334699788338168642251005867781675790588088037888561446449870700026414058054154370011809025763146177228703262991400648377581390555058961484615294740368153891986390771700914466956264235525161174503097200416701080427079636462764678707756209695897620671227523397033014732984620285559044312115235847850692133010577123694889713930621587822752099122839501501624097120941950080626563661384930742223743540534412970737291126112242453735432097022064114485302971073030910020633439082566907603997656901558022646254867580493239818202443398226294876121890913808549793557311133020485273932779303120734339022001469686447475805876791520697292507126250115932020926723540297932459871550591809448730380381568838239471722100597740337666952981788622522368190510820874249120010420022635135469816788367350198530975026953656723027504830758312275350594780434186906217643455011833299166762808849351450283454448469913721035723400685646487763257298554305814235223186385686208108449310488143146963133339631676700830080519312057206653570784490897966907599310518997538092269783483648932150960608649069094900420987355856137286322662850815630222737736164773336585068508232316558655532528544711939842640957738935789566347953590084302239700334136904366204067168217774734084496411446322005893561886586088115790990063793486738761097496365068584951089769620684393928911222969670354397307505400292229190393688797470856263123615236997330626394951981564387727217501363539391564706296639290681837851589770143880109829411304714638389411992994388286173509741556180192486556440533431158596372987037442895082784330055741446516918944340625674338309013668361440533645375637056822167541658950089158976313877373041480537148867949457260265238688590349784827612225514227066006212874680710273155422504139158712419124960282020537601277551313096012510852067653681201562293121497783839641701115750843651870486540575849902514436590768298058020200272877044393607046713392131023785650491768105768285301848246779590902118149687048948477221138556651290317447775105204347934496983264762049475012141568176430709171546267185694368845304729311383584816501114529554581291871084195265911511629984210878711292982516864176056989582344904242142966964842505123618109541839731756142603083627503542485771743967057578103249267342089063893127506387374544768431709977707055846869881367619520451022481710351226777816478583514065018920693268693509574163419494408780172157240972213230547491597223786580805339784019554041300206330162776102052188026644426678207084286561185750299007007407905275386792656911898969423780592587341951362472899729469080673189066402693006171833476490733908957487941545357927788298499899248167752538384375487830302022130102764398170091242056662747097203515171262599414680013123997592295888292160485385711931090839426096156887981283300394851899410934250628157036995929380242678748527897933049900948091908848811734606420910392593275054335246772363610706870138788207250248233850276844666476287588507333661665489914013273347059343707095609472966401639879821602795004855468625388456359036298421895573332149164429074086273941248663254371609049176576292635301120938683239930077546551648583702205916708006441466061057734530258450658733773006955817009054368303562614232658531988656333520959826091130466201265363143160864181418470938888090255115673980432062656215075870396341735483173286561668694532834886213045448940953406493780569521522638681214225312149071175803171069318758375054639750540153240201104683618155891327414354037659207078572562359497965200017194013509293504405663733558750215141162175992914679601661444762679571574911370956958036671630503068323573849058804429949166427437122279202269040039937888129814329391405642031460460633746936335161641811466003026120775218585604428697438420146071185724276431595374379754503637707120575608832373048000526191945879346391739403679403351845345226915566052866737031135718271059488621437160018478323439773158283013918540175845519933822578149904693917514845567557575811719767365288635084503805045619184545363243389975938478750462893145866549576201134090869650024797471148512911506898224605659719498935589828010887061442567836414822707014928634187035606630155424963708973656077274628311728247929648737832991240698383417420903952255527451681762088039667947927402865567587737494280239941494771625777712040464466760362441355302516271574542726794091867314368360582285745235581243630247865953170112867135460703519475588675272009328421642737725158350969182772951335057413993481628422252224845680513774693522335589002601975184943615802235808968211369761881582380624006274069441591135061403568070132845954513430395286522888885716767053696454290613264980501869364124045784210096461050626896467957378651893156212582455215453559312170554666964790283141432749910141524405221994630165242579292118721029715883079191631957022417297329506897319606667833764926384160550175471867458163528680772257114942957432190494260276128498041436474148375645088248617367097574985195728201923115663318149099421705099146218309366100491022095961237526099222180552550136995907642565031973688073666802406661350770305879756374404661276053793364102752049850592958529034252785690708667117679598526630781530499040498929720094526156911705691785043517858174015577762399343325822402802663348181784160433908410560599360255603163252770661647196121408394367169920213518747030832665311673538880299200069693164543132166571430229333903474031709939351208034602737391224737434855644347900525848586415457244479392315371959536176352480629716872766444201143156236851656802252516238441514736974999848571500660028534699001929037913806884644249065250883990190687799180828652382039867388435281331044278924999709350250001349995947982530908664467393651906796221364590429255889666301116415806307070228533963421094557893831164599799063279363983099374853185903898389408380891864833743503671634345630301240580611057629746062713659164274651379829094945275974312864989403077683337166297194770486472770117543753889389256026794653804204707691186935557393922876774671326186053111366663697830125600135088817794971519441913161696300440811249990645310314322188372921837773785779642463895639032596329441426406424623704477603018510461123059589543107599403696200013855864860539367451261517886492317196757907786942836269810572370245687154450483298832759800685611065152777573278606162491713292355568820420360925144250707966556452164342871022638267699129823351409155565095101756179232813889957959705321485508867643646487085133261529180880317395586534744336690266799018601899519301621003957792463591190826545977949613175853700573645205204362472559098664130037464577477473090701432984397157341998889891103855582443522589245410743921314994543896779248092928395362729798938088332320658062057282600956095615887670326412462143239680506963385236989422484843754872450820150118683052904964393024425602579021754493503437756540942328715272280110591220122474956924379852004413013440801550140915168566188821634184294768844561429719808897688403942728807893621925280665575506243485722023672766710186120598093448848463102893323946349723843156909262359190026533289738297491380670041569176202440377994413902680066597228135112691654075572785172146837517651298666286801715739398654714092845690333698541618369607682338943468779073324163180363080309211270463132491443123389009242627751773186541883561426968943968092964418138407369084355740195448733273315175065747918110534344469235613514914243123082863288896349215621675757782833903876691381650941370960838640281885664326806525377552226703468363112116144504330766583165931552127078854222043539954953274067122916981103472863522150498917132337710725176323140717651915030469562441970507918136531914402243191237006553581221693073218888753963358118749264063969445893424863712296736133797252503835673282670509847928257033706477490247209073589355125186714987314374288031749950388208752798278151600747941624016303864418538612604987448875822049577941570569397399243101014260879829386881392225169108234230766453737790266765445182667465337978627337524760452089342416051611609962664262825616802083114030453846341454570197899105138247722264042196545959872848269818273038218562866762904344940702776628435671189783664522218558676642595267593755911078426265854433848408692192498459296968041321105065369946201020930638574847808822828283446232069912898832783016892076411579325710029259660857360793335009879553820068162875096407182132534050410014441806939843826199537860077726634444870736602347069335940600056377656997632707059836721244104150585401357409925206765545822180664185425800999226609178787540414344141716676804834968895776353194835534696380490999296850139435498372939578225652743598797235395385936483965745771572836349885159420299178170510100228919594958914534895908604771125412146670111485872670059595055743266035720912780090608329603063479790218182473696571866119219403920110454564026573957137713701966925840309692798877914547686588701837801892475410289317464659025036520967943676978000733479678245597988064921063448427389264579936075287955422266185299491019386839191288725648754603159302074235841209979854840477860023700037027854452015932605817585681434234809313542538834551883030106911203581223556943158010098363246356478750170648082982872659310461744161371857492165879575040374319629468685476710491045101847470279013291709781169306384193238417544126717977794459262021566846219295426050362033623071152991948455200042722588471218381150029840765311774005410826477274291324357030053830439556923348963855186953921152722164840629362620035078702324192817438692087282142451712259885325464636305880982707019963320267244823783562904634863470835361674101608264598840810813905526341084476364072807107180611707035050553083149019850397588710007568887068900147929099537206075292206746269347555428260883823057168905876509048934687825008711333506835466631307082071211689241328683716390184852601306432806607170921691772018058145242847328546230289328305600538646899985007904577012104590446522201766562143995389894027672454033998676548582069272761308218014266469183673418655286949153164805840060117251486861152350218164309441191139043350388473798865699569868352020578095833646064788759649555448232784501899732693040405668195966728999139475742753413023486312267235619265742048210600240869331607039523238493382477409282931227185880670161232968750724714969222641211380426881818322047397603244846285084925352103066836883585162605946195169487925000825096580031156278248678814700873831233447442814184270950027083240999861320696016770456896126507334944395295222841636321350042407197400536011745991839698651899877389539476616732761734316688805690529318845877249636015998887111657906016581496362189396611192702174878336162930602541632938040092812860546236366164421143684603212337407702750840387775268866141066043985789502292402391770241500000042101338466809903016204963022436677958018035158821611358922909725975595258234016172662538027453506599485133882918307606212366345778702168335856948646173663256984927547923831501913255036409521780346941400104003019239979264979089186768271487700726628762789804938077033222368208771659704315502440925494568292993228580179355712967192918493173545911551315082457948686546147810495424776452705710582440027823643709511775983265847420158268991449792548356344602651282387379887184600740071942981317770682630744218628281222721835848547349032358134989216884647278467230022210958742931549740046135179519883289728884154183233346283510041938780676558838029910011044640232014470211258179653869125802325154680187658436964104031845134984139543475625845046381849111644353173724084490400139527849119969113490049617289696434324455215100680610017745861808405416928944218568566353360884628530920311904299908186697785316599860276589441910811617318837135790574378901730210230806089786221885129232142674741352811403024018015676610744304891979001435055845547235779162565413760329493540136730341431324018697028310183537957357084016031225971564932906822429315874634022666653396828988373217364571639522793600328665665065337822400002122971277366484678910527840141305163284649466192361771816516554497439821310655065817981200732157554133107538520081787175630192963472246949695411290057409837019834369620989820617505671896203836600650353434348642308065095005912244852826343053574820673476707620953459975611201249927378216991753226743825263915579853204600335869011703693593355186362083801397496081146957734329686165808500834681528244334538307567160823872283586260869307672903744672776947475598255066256767705091752835755978124190496028298081674790600933222422262262112200259393479937532587801918186303541598374868064691528872522876189260466996911118321545258043797502751001566376186553891377397314452961423651468574843446770659613067238593066330121491016882607382229843247549840597648416683547681662777393248194405558337705867776526487876220229727848303323793808401287422619401474361741096598004174494765068007831595429169451745687988832495739138942409951401436816876593017897309474982916055985343766756514312398783643019226931045370791127189686314775246760059510788847383678112683536449196313745425954166363765711385191151452936886389395150553974130775501097234263633792842297932262378730225094830695384932688328240320985630576818793851803017220576398353791184157849696034824343371284963943577391456297359744449130577167555388284858740149223146856724621692308225386894612001625894555403281219808031132804497453189184075267905419563828794943528948404331047081307333771783307327448003704922587537449894443664799024758785095495842820733948701669217334037543652803701746931003951985590709370111766503541849276090665477887750460245546833701234335118164268983214883630034928336860650368434386538011453716842301887802640103173143887377993674209959801899968671866367572258003727595304070507001153970115242265859867808324707720225080046689552153244424604413623255616986377190260771623059126543887124554451742802255416254988663455373652790538934275007891961112657945412374471099360566706113583881636826881928839790505897895353248137969080884324725936783882709620366222350567674869392650376654947940103355733357897684191576337287351380014484724423598242061040850379579545774477364904151021965754711669744048700833479488865964355907801574599943321596257602280093418796888445424363365378354877037694182953414743699146912513313638312581708361507584635236014756812828962122100139827424822059089444792126728494700882019232616974515478774975224885609795779030064341630460185212922563623431575678330637210723583776533435363198973737793345344268321898537666299513512054355648618618311532887063225393957129161839775927341249135710166245208277526411995468886513676214614960319866731707473968555986706415544400584505658874627486248889800553915336939023340500511732819943027157391754338245198085284025302847604066147023834076921670943699438597933740655923024623287349877048652636994625286709610118954895606401566861779376176612141258271524376445929887864143634775452590195151491450287614750112462967073062942105041081850311992469080090341628227718038735329431643209370911348801473715879075502002271733125552791054131135951666296082580571791015033071998421329476027400592392956200069657638177706410857582836385622797088078637565378417938735439372315018015600269729916131358584980518848103432670049707498277014045685379730565423956790137581528964604232733567686043218311864257565477482977304616548784824884275716332472194401517373281315761934388063429037454283088058010479015348232912567749813554176589057375878680246307777752921104866585106018144071734038912165432983454454586936217481704984504912126582424490689815929819629372864063789408292130262360547371370581401776064382216903131660164222408777988679526076134437498720542929033200906396749954683568148081265584447677597540868114944025676519528745606206660913124442809482399399580140410099167185395149830707469066522457400622890169070913623594388722856393199586377916864691824461292122954414115764610955699309828159201422074892554109292316128587718595974877536810384794520153551882801381814778027685667965908103882173624634030049818627546361922720360493750247147268188784377043865784558859975247874200434174611794335253660860257514031045647604900292796046006264680876440982024361949929413783855933232691906284334529682772030056952209667516797263919650503557864748956202856596828428538476956186336891633026609422489153527993996235831391612304928436875042308324668207977558672273510876538113424915250229546821704198071394882953470275785725355750911414730941518908488213214850071409984262877134260825090438212727925729274890751470134287361728218763089318386050587360154701119357831740526729661784290354254800362895319412694858266802307211179113580161806986911153688602575932055538717046015508927085248089855688844422815786533196012676892139234683160897128913978518054428249508189918827156028775721546539171514418216367379504561315319279928849994379263525739899204755281067240517416543572542645516043151396168566386174228180090235339115128629299746327858504185748580333847863395872460464707232228988017099858300574335484836719898550772750033172095389307348836221981621062853580757304014405905688923828440054092804765125757395099638811620578683118693348743824700517181668851802301038478906655887567040549779045418187748366869075589973871961381476325864968922100107172165613755243601853924708455505429135411297734364843580042941572960624133527775176687935588033172949786125380768363011656039459862155167180733003204402531184465802390471668189795638661062209836639715916924063140068936517968753518927673366455044437884182172591346122490809230462859955627552900645597085905512618305475065362405703139403092078690933320793302863008265800726554013803427066556158297295219878946601534307705138959052961148967264384263748796893300908847495490681796660989724989797464283515324064037557474898121834955770025381926904495411742610674171826346335752648299120661149419492511622932901655157076392778442196643207588354776839623704131924468243396916173891120303361869299297148068017816434185669536942703777303685243871913170780179857704854614708432393312833536265535255360138262797321129475845380919859760667463186507940243241449315414288003816559023367695827449296433714699493840860446734524698839666938221942120722170090102027563066992968780076986689987583285431385909254731250991305952997310523856426045153647882410401286686334253251256333476986702503176815548162198423321711089562043126421538113344122767436438857833856995357960394916784962310607150067851882809722821724616242320253917983365837740887175885935458228489596148243646654579556310199486510159930144575379545630935164330653285940886059333992392094213370574780593841630861103997302878162350137334566517677247351036428692588906919554699789877704263227505800018106848998718416814155032564110425145312776206334901760683900284220190416874989229745328545917540739341730178560838265358982336416048094866967380333192435599313172054742376328023775541282519182980826039546723111771433510165246914973921097667733400483508161482265322545378700873416837327111618164209136982869779660492861768509995361312516725370855403578195895249126213187807040547505931367069381583241082653087918411532776351560900822727314922449976102057166543530802584750590337972466233731840824895004141785294639931940479645769820072055980344703073382277152775503230443622700261528287469997721397404113956729494387833474881740148390862989140062374380645895234440913095929424212821519673294331315709894265676498950628220898995321013681916130478105583444640302923025204872502237221624388022251201585831028157061958209504910364667763665216765955433117006231091980802721365815850133860938961599127957528690112617122836611365946044436465466244433153841724459167433894658755210554269556873960231544987754458886017058564064136945376754476515250915145837934374644843780954536105981656755645098375842249174123017306340578626284753358750283521206728114954988452961275298567388024558417997701327611463609317835315006435574216902542139156218313106668663128174455010709046911063228109539797581610749693922789746669228974214980359483192462681877542246989181629940180616543772603932967055065073634714562092665746443158379768060771900269451903973098254439594567554059033110313222552021941453096206813499407322388805294303890548682000001254316615670063691517623854435086092847890428781420761117234273341017093983039432350679227217522915612871578198377726590578290965205390462706083811936315132669656110563001644983618411275252506399614483926012789143704876100897091824205178262965677228972633534522557207336919864216727371916544059402127204136950937103648553514460175518524524261085333024189741988364626241137097938538084134660273987831082563618725240268917029883935522940610566247800240129506104612892948345948736210598167736586229743562182660993035624535191001116159655853450029098879112633730884607090337845522081587983353628030942878719577233682718226140293884206816956605620604414265618384011045410816511947279849010944423687643518698070343301842122142084328002900079304804722468247251191399966143830439746347434297282903074625547178327417535212553729113094435217616553969496883864272548916152829399973781534529053661978623391524347375510807578600397355211038349219060776086747474333120958757648257662813529421260154928354840746437811706500620189186523926261130909636912906937543969435579174121162630980399620043240767428853672404332631539950882622081135502453889175197682948355535560409530062827132051448162424063819306318463441905597294225317559044255557559458858509857491229884066001916185389345814006781346924152106226801106981068264704641474571599633993690610902621390054684172844484103820329683764506505552522029935085876762811275271268992036287393198612618763149998312224096537337294070798464028234188491471546051087175842798660846180729060087307869802521326914219496230412445876297460161901838257284821115323938135637702685690899156042755555490980382809724619450536366808539349641812624159003843713488819561233368041094270242667531519797893985505497283976090684603147353440417041403888812311392688452109410939725128980722669025492466364353016937050303819884685293684733995431125136782860385130917195788141549290905105639802358205382689596834276444458452850795613235990326366312952075628199511922064437831677595039306757829411704936458122042040466081685666335160264649267952612740136721317005390663897306805287028642890509003263587666365664936251601975966196777862436571659146730318377644771553351204805509762746773882725098881528450138572559949107341061976498217487829621141537521203841417476215404844379002220444478295913855713315605955111559467496286315653548958232601610102124980532080480313418493258837378350842893760700765863696864916940438147661482812032116535888276242005863054452438033326395753813815589411906968737977179975049296559929226400549782498411492370225466128288235399931049685230001923505945889964894031656355836403217695739863995513357493980538933066941875821260246770882624686318030007878312194713723147932017210878596417828056781407643274496655039153014113776668229838513236730123885702443145339996797298914483662786943503616967352173309323799762744809913236860348752080420364901892318996153303097223384083188530931386252162779759198217180123297017299354786874916335716609358611485599358717518393389221470698819067044111318058656945639948963426041449754280152195711386594113620619236312295044300198041614567697994413497042977146357568693006569827571160162866109586325888749663052916290398529001373236163550253997462631287402231608212522050962378909061022097551683353125718473292620343508497723432167262023219188055214998547151168503693450705712958010227753802130828179623278928289049966453480078494545861020372980841262758229168514388834661328303698245532493276025388296693527218143363149373082449484175433331123971922838614901187510301175168477940134996652258770513548605982152212001830092249252062250355233055336649203468178748228756996614372993274353558707898783187011216179846637817680792426391679717886388274712364896644331990983084362818690949262731398094743279034881368708509949895636068796356444392921592757283346410279672952928145434255353970928934286134583129192843821664511940189942936194625637891529107219009790185267020655961931555513877854264430590147002712727471476396092262748707996374082905916067153349817914839277641617973725598817700400115944000098812091163450074904446892641759977142853913119430445948759447896020290143733829223375505999002183533660368558645839270104601850811207099883124509947813969363689888711403065817079883531255383206811508784734300968433090683001556017129469269873926722739238006275918350677840444176799096069324454030032524082907423376075152794364234955056271281524666401674651911036239941405047054978197578587649403654894747090494632016173789144276592137932493170376679587856253779520907654677406217188684620685838175401589704912325834297854987682127402499648772962160684182465061280087374593983493373044862906403964744882857646349333388908716010930764131054501057557088546508288524678613918014927279781270589090163409955009749688116292805945446006741106980469446309854129125587458417119496839362756160224861338571572891264679446329949704617984839375842684538832116406773008964255162400364182852956096459849914372553435119248099760829203467507449116478845848852018763693218529300075126473806839471969540595344209476944278655867468125649048838592372979461071661926742092400379497570159474634992046084076644259633876484854411171037075338316595493041402485239540661166948381986618651742631168192110155851811924029456295606392096721103594853717422454130231053617817051616308842098593808962677152251706843392004220179100514824601841528412897858587304853877015397252948590723894377844260321934248855680987336608936367150583971989850136738147532312801410274273525675143873387143481289861854751896179865500965217207090878657875395352801668955799404491893534542039589634276946263498611812375560970764964303719763386032777631568797966221252675357938897038305061306136712280945091513269610245803259327427994982956515534992087764313508360270717937270876715899498264923272412660015084636061481472453938650994407502222604860960735344456259423627011681741833178188690500867672140183011664920391612927038250653439513321871824475628382500695738825617121835624016191419610539659164104290809764443855503384194543203640912680483128586479999681200203962650552871613699448952800266930979408240796172570010138578452163086424913382810271853134362975496805003362285417661781456960054301179278023752413004749962235418582029977810484789835506446836232890097726943627722916211585368576035983701145497045774818684620621747873399840436178790111805560835692481855200593810195739119843795876348368322393793818124232492128657157350934659486816424907703109329886334696418908096297306840917132139705269557887195476767848252956936733322067261049652806652342314605027244245238501614847609950179920782161680299002562597018307688638132229627352223426666893101133940665977491107366889006685415418119244876029792619135458374698156920935053548513642898689466151075820487683717743329603771159652417046339819179843247875690607880909658205488809513532804674017090843467637912494733846511085401520768428870074372117369427478521177011245133257617512856371057869769310162832381423791413141433908764366811646685950232857967584701407930336313879291064794630445717092469819795641011569581355923241025833011730162850505313903029785994651494329263298238397966567359269602576693970370011396352344689504452544436096965256154846574379697290555014757934853396409075347231067671381940767852278067825688249923404738668861287135922299479413507648851703825494726620244052593172983543406731264005969557123075728892790498391321791882869611683649957151334527166230105140291190559434380208599628847662382074579417256277726178614839296834674217926599243493732751435948221457211017460855639083972621530164543114388291941858814851874374623515662486080687812570743337358251370186922569970441682272771361318600292637774851339793095367643864368140538128154766837132044444483340473830804803036203895894543194496553043976355090865486674013582669138533968818251069215027857436355073694352407366972788105072785022785590782173974286071193716129038634396720650687392981543467937601451095184760423607106913387737347809737282742385488294393919730250897514433245316964402746989259690043628634263233958169936948841665748091021384819058192532391184070175431185015603236927372962940267115098674021824202038906008935486586089544293037698388740515406718160283395849700284312203660840031967252793639842630144701898300657999753358392481966564438084311765883669991216757789113947361316886010579692493573370730586093636944432787875828988594751208464527481603109083613003424756434487960020492899942417382010508035851732490684951790333623848441305486211157785141521997736459661305299869466083092225607426173140145930209998761037434832190222364507027332430702829373929648528709532615324880028357836213173806060774838941025556431784435882756181067991857469897148571564212416197412875159750191724690131063232333821024990237998843346570040643652120608295639349174140998677074037543811560900401024478288735011456290171458407727949001626947278266722410461664433421392087272308490929041635370152264153650125583003346141474349786938679250311848902905427125598051345001084289929753341368682912281227024019002093969472959461646998608757090734432354062261534609489834097105052693000889388746986648689049744434319237802095261414933798076505208962362303476027558468521342651377122562016676725202362009470241293038996158311280284871387431449021423637512591769714189839556727678853518954822149747730516585651319987470162983412564302518226822166620843628748079579117324776358540268399322795806011853431226314396360607055205017905204528836391101329719460827211076743987381088384936107458603651667162614219238720654603148142986497475445585953530573521520366975857719290334106234720445865721726360444638470175560876911577557858892481342383983193288918513739352448332670048532529153816786543799778161738831170228964031417428936264355032454007756656340997007751295662000257043886373008557597372837460595651721610010025074241718542168065122846666829248701238351551895634115359570204608297395676719314819057979886631444044856128760616336919616873384776024075844491025946427250212178887406495623832435000697402121128782027457547632050039568650779132143917912840654690805179336327626927903306605173985065304134448757592548622533139503382638277427335909065371557490600437906527179021481558209562594259942100425577209735088595122282064980285278508117162723236989061290281798468719848773504471162388741476420936479777898345193883159895758685619748237010884429270497861719993770276650349346767030136098861265486662593832497329189184336199250543200921825832233480913952054788232933756849353336877291413684429525124167924037504418275716267426347939927123266909370702680272368732224101509565318521912645345887574819102373142361477010885031840165369493121717798585853237154345628589977782525279828755973571593854578728742098541611833281348802633788044327413376360064438778212892175687774674927520600786517708743169811142775229782697801539956600494998519484352248199612989877506314594268378448308288158897276193667329459124731202792552788665421400466946388240400086120966888631578922962873963332327076053892606304995779940160948311130228849354534055829298035006208856743623701474785526449217058153321781289669057786813601868217944816633090618398161817086299515499587174939736030367548852746011096580606268135962588726786045245757383909688876327827721338541216850561857599160965114437102816862603554367724102602589961684951338585984334007307437091840202345235490302492487573409286844480343877533345906418833399049695089569133572268793472406971182936336277450499471875800959413697954340305068061514085338756653368326521051205003104018039379402741768407918885763905208478675392107892832888445808266548418709176612755897909703856640347455280326756179936366284236500362818096920834513215284786301457946403130878178812954035609090525103424149658587277236446290018345042359930414556953263830852493152180475933900568546682160871127426970635404103213067750246214587355393441161730910034029829680242507533900368768942393509909412744192883775020962587415151672806340574462764990138282787896535575850440681169890984171900291091322419614254396981891981017022999811669389623273985114435924899864527501434588175959789808160390425001254335201042166560259921398370371949805737826113582707831347047215772477179576078455926696951043483113388611648504747605997002431771045521396538709949467726254077247607881923773554781044301931833155324837624734249162029906509777500496218279642405519831154987651287496265825415729670266962257472696853469310042502235879628204964080187881383085563074189882140077127650735837256212270835580169852848753797707991718066082893872699870421821847466977354325109491750305879302054826168648419680673962810652117275499930427244659592827100791195045332509662549251505927565344594349791022365108949851690936663318731104109977583021693043696198064597963137975265691484579679300641504308330646139421458480629828485612545301728786013330413841952502551997518787284004374518401585630009370867608635033005333449634603871004593494129488794239988403825943593002479825633608810213501118141249997789330206583013032007523479269451486917456393746553165186361100236468397477014158431862392599812341061286952944665318242500214371895955702374244184892668575576917802027314931618536816611150592918918677027931285964650262136105268949990151111174008037040627891079846819804380750500278087536104326395748225813543636857093523910061971404661923424849792496241579812632795590368931121605890872656968357596488939857491587507313431645458886255573622432266208448286724477358632568322191068775941399024847336123481223330213925840340013286234949655570619202037181718633735644559506945910100495595254730088597972554190738647667427746516324980420042865875206604477945457447428498907290311221184212621219435043286336341606298873549901973243095784758443963278490372434003053187575933034666701680988482208966286676288557117693659093047000315924725960321229258829214615519410224054870925505223786260078074456618793511388026098037443522500592407756188069063279423816743583454198143077059409320009685648226902059102291206442013690161062364557163671422712854244599289248079652350031878542057531641654318315765167391664996647736972104814284441897725253996681819387368759926715475951345053059935034813047407097304469445767451131752605845149189433038595732281762368707413199229289962093376007767763285821104122160510095042497663961520182255708578585405615016040021100732641098956757874951084158587291873701788687944612297099388624324185100885864540813969229201500266217330233168717958441391941283593828113888677121413255155730894673746214730016324599664009555178108392593714338849612470765539379290498467895432913397469911625297474717572047933550245297160146838206441175669234887690327446095034289325319922745755591347410055894981597765351962787630953097938322504993719367653245785149142651859525241931358118649571405649894542609380699447447248600494980811254908408376862138660314317140928047616132075747132928466307433925168414827343355529673050309085490485470385059635842788483613538763933232963729920832780858432582008144689785853188666279970373577850665134019270287051818032117004910431314017461893643169927634475446250041108694869980799026893038638478240472704710646811711823801002724344743122873892065491946129668719570589200580924106377205351207295461766499235353559124931447071136322352896004141631773704502253049283613688691940077013801193660734808785190346586595507329673773914627213553081490005942439232490193999897268278555169950430256812453297868416864014024093351068660263985971159703645774478537761499385009641741376948884576359628061017124202367016815657180391719196803580000124986792437830375217122802693707423719686906103582364619472622459855942370482202529906758906118155680096153325433979034442745819252060115015313916985020745945033995046939436572954043978946228729407380817770045694567345086204290852942160769771739540175429642684063114802444660058573982083354239832823072970132531018853627163051752656262210971106111119042932829805147377396005540223040562369323123070055226062431690107850863968504939005612922641884231039178556331677987481752508348307650721594582697044756519424961336382556679625310626720315238477103805674749634414532409103321685108021670271659289876943533054257027433704379191442518652128696690152552796749849223357877403505091744167491280404518767122885648499376123380585591143395748232807689036695186857100379224634187223201943007389599379890489862772811368821433455924650133312187681102452329226215502495952721925284848939204227672095839201893373880154508768678288948868329538092121805081249619507721027929194349306280226760993615563621857506024796879520292925407890281749103707166795632769930716156086035456862827265658821303718730093395814416688207074584494452190770191813902640586121725521973498564628859074978192718822590043913515769575133170356144768453044702347939349238676145864138299982309708228317844256849392331577293826995439626634753103539461994278700186576326299364906345011410317118261961235680873920219883914639192514653576883037334360583207201230244738585985798884920197441510523286912734445304790931213488902076737518763407228109966603301217057487010514244145156779916656966046941878525926259078444994001314054456994620871720574082258111434059720544204065488255650155669011192377767277505981661277056373284588586488115558806852884573441243598478529447395750648498597685582563229065385505636866281264886536897205959009230800257518933424444601007084555612578770531203506334696174043891679089122783392093858257747196832554952530561929734868914251993683763768211888026737918522258042732711157415644500040828980391589301779001166662313165298827210779432427004600596087789733638190438792370019629299218919638862273667445696968459816045473848365823944986471359003002929984814735773126669015580708346486968648967006578416151156185534236211270069305280625760587285158221604502594080345114648770695923603616990568016944102303970502029416109367519290072533057465692349990539102821415593773352239774384052586383190160019239230654117026468949580794511462968003166924275801037284593718970525762330150477500834624176759898216301306029343722611525734345808361666715264660959072296235430930338406634021143192872235343303158272961815492191375702374767545719859520000327947397636471569554560780018097034819195671579862677839615315969359372768627922270842287245060362979680554692327736234493876138062280644645088528171052854349981335862222054627882155914147276959423150067582160381388165493958252838969103428757987691832358364882856875411900075974711577512632214916507633374000447799204441814259241604712705790885142696796486667823962136023493578831419217916938593072287805653101856255892082051244812325161308607761710310138818210775433192993018039959723747435139821984062303393152292047986388068763047849688504652860337780822557526466833824419926351594569959174258191236309537686161370959300823444894895075087441107000573667856884104075959889727256347418681158325886934547074432462253283294081956797628196759349428307748060340858903029358596016802983266945067457923558086651132981022300533826640505821524547352845545830885062928299361537159286094696519875947353690120122646014321622882420719726846472321625608916418827964036521342845035545791758657810127185103187889377154999772601391738942851823735831791619841543588329135354807134225366702382847648761937556801235502936642013868242667639048578338427679769246979956879620494504544023326230727997916323416966607565119008682560332208099798541532804661552445046405349592640701542628698152634067679773973519455552424542832601633926701995970635935088557633383352864797502288593410832455147819813441714067076439833194632382834080948126751053306092037800202352854173987712019829972644242144329257429247602635038300300773119847436212650560537895213917492694753177341207441567303787632382869800561408949361222220195181731401898523813662715589348625699660931275145648078591526547117605679108476186017645918161269947068142274582187784106422057315393963677472783985185250554768732613020438786558119767856611186887261877315965373639393331491480974439639225036336383325070191324972313646326861327765944636874514865382368342638731079212017799787910002070829222882267293486092354992365804453959696467931909763045775534983899021701282406753694716671325453121978022066396990473305027787203627574659384541607994335518361094226184306304811813110683649681372800236388258385961105130102776975212303932272241236618178032977937418002669656876508649058342880176265271884320708709931521853290575811998395056001526175481337173905501973410194662701914254650847015874658200037509014912156153612049889735860234879063347383879898078900145437538521539281725867833528780139397481577124574240537764527360563908222915849921148615189123247002695590597090076418903392529424330635411300363066946001551438405349088854995609850004478951346049150098179650247045460097757637140217704309715418271072345634077276921153657310623967974952038586694233779814934835716291078464925582680973247890292169388629928566746440024808239711657459826984071024543412175176747889774660764505778427391119143222772318554589433529204145925537418531771352022406000596949683389822747353628275021524777554763897976278097609929535655124432189922824697549607492378132940936657272524495993644647996969058361586358946000277818320095676842953718349011661320502281769520850413909244915134726693719374652711309440241614821571561348696362861549951954127540319135167251920788673462338063674586493908963174186321319242104173163999626080090030971117607089029925614042342721113874030114280334536501306567549359343507802174642786512703447567430490371151618459925447785961365550052716012718367285275660192506799762711568526593780635039465847652378466301043878120805266062992559633313008089429731392405265984104009746941549094692870746190692378094766787824171090445994092172414630801025428482572770471480982817075498929332456248297499562403563389595683661256804873359713291639902484477476961202730621151880225470891875153572435721198562585097841106273934895165958543033309863205556276605089975160763085511707618481162671328502922062729357252342694673710312223580762920971896136070486915804193244395330659604614500942331834965789814768817329475355340057485972841182647365922552393963864649859051211205100801307868297718329261667281225191626055204141991308082223831151914075407116652111353436037308676719632057024481321032528232694248898333861520787759417123349050818231456755050716420108518785594101897509633836423986162524307965150231843753227259452338934578209398749602413855007080493349039465924856679546856865166411291712705941012054030391460463789498522060386355774738231058681536985606730481883564653844987757207265680197206383949556268186362482014202715035834402721777228617161569725345871626383621099110604287053923384249524341648050515958934696989990561947054474287357554236173917175789172579727850586094956195626789801952366834770628451036830171519359073291246205544391423036147981080424018892318124258006754713409882944403265760221906340225038681398042131613338257572755282972856844927440918213799986251465321571344467245212204277565316563762212385919071642363791752755225747177501963204658497048306577334715138679422992710955248909872931408405092384407763705964095797883799580609912322182619312076439679697961651619291732999357093559338193050257371169704151301318325611907980997207766369761290338070836528492909445621319150677154431031098409212126578842839182160495882474007893962551082739898133673229635421377497414859925534907541789190812198205682577799691121866882247697624254774655766189077034214704456152056033416139120718051639143789081353071504613529093722614390406419751503523950858211099682973161407892828003815951947490677392290865150012691709182856565167805554386724529795534063391611612778800461361046534041508416755736268614876143708102041460595960147986395214659138245126655850388989216193079344116695880841852712772924966500970225432246900530019162193631985992900443510415472605204204026867743969627920246951431287997603282177206822041961004151864152180495596775428195378099394075704676360406801065292433428057252342820344265083940122086203948895016964587538526094851706664453831465834202627690133614873977860987348035297380037654954014869059098498038217695367089170874013996240123339135079370962099658286188777310963652187885722262801256346232907188458953860649270936415182734528248306111428845656763015713852161362357359578397733318028757507866565042304149222509995451409477973128474769447380891835299216723401985904889911131224013281694274570950645959918562798495228325756409104829090609010489938860293227153878192659701000924802303249444647900202162695790674166236192993535453469304653102428019073711910804803233961978897430597227704834905977194471545638703840719854752107537599296148479835091820918861814894515756122367617175934266468443064047718718996839408004359258205168804524235946638929994606981269635300179196837589682903945929669173799388630995364487335457809125643226109714225486044438804400161759487420543846216553243138675260566392036010485136410452324502976938468693318450251875231122633526754656283469053119916698784875336876681998951098975825175978597828190452014661072373180991784477287444397537921671387628500638170790137984140489287636268287045364428689017510853613211134173660932175681937596051465230638821167691308985182197756587224590480914711935895402363536518276972339220216607397134547321474464176477290771872689461347633006321856500298994930599300591241855840067809252982472064319398993391219761714292095669157976792292243099353757273956240607251523452990517739154841387612977381892927901436221837670806234066721516069429466154116438375845598121338064971123964651860454082161802368670455951423532773907016394752296067817785521750926242231898617171131712944921585125444145670623359696377603295162555588961420390528074902949898604745889749333888792422405150722847729443324155461345586210493941111040639102369356665870643388357910593416829973539178478388268045588938485151878493062387672446341145808458773613281200506026035487930809042724827308876942086308111121770252594000318279656165895574928468170139437428892883238736204263133708488616855211562106927964775857838641546664963613163384364020931040834107979874798172263893716342241426139513410566601260840164154156661610947782171075029643859034830355953577226330567561276735800901087026202209814365734699464173971183055438535266599557143852416554381146765696030129216191046495805487616318844271850082410830689726393380093971562329509034251517115862207984574265182710856714220733786437948785317659753740082358092069246157812342759116317683014264913153072533448207322020635579404472207639445360082133569083252854753988187604294178751863299043135354570082564007746663036393199527607992779120465538184347493526660440394588483632281777895387069945556343231502905394963348669203642114820295126656323738765498362409378440847682053016906208161366854529270581528040383145765201053392711180031443870291567999908013075604675094230496635574069754305477376906718279524738024087516273267887554909106149458330419004215882589527371000533798417181996023154876617630389921588797024613036200914574324388416948997451091057819226933264769950072984780274597082461510633007856568811061032054703357824908598924492907252953269365949176723208737110505970912566666181533286164786125012518028018002897950873959107761172093770045753154028391653698382269486646689488812902193598148048005080981413323561405350895508197557086392188666194082193752850209967770284128720150439988507825297774177478865128918972095565606520461851036285536390967743427437809113682562609239855304335355451351519961417276475960544612965395943614902070716721364392363891552555639348204964195024778004288345967761185153755721481730486760571934800602231178608924318034107413970347068647583720032230389001841862050858025983612387804540986535990528924834266131681956369844915112415645380835762362088248937587888018436649151347360843960938219491127918230729683567746342397792390244175926647080015996357483542801905872061296832788174844743450888689907414039203661468900469044581445348592590456182552374298796462784172896123404000987836317783920915056249166715016527049514097941062581920424694766933915288679961095778043980806029389465966495089345093525244090404442269748660585466161855441419326806828384322426780583120322575975010054927962426577457929399572023539791903473250327884209957012293554682428060627638371759090888450070358294665460627092311991438164429133334983433444466332998746855728997151736705962179805324552598229131793089525103034532278443702377926301734155214637959574798880984244412413828561093449845434284868805700948289928777925209289737300621881411901383637484690097027305927448312858429477849227580952522847493823598945931386001988465335242326592725733249534985322294805549347843045026234764372192935019598224821562082408522964753237155709307949422247439289467070631846568386393635196679942678949820769769159053944782068053262997687942131433607417203074832032950655942510816496479215351393310281339648188813225123323027040598222847709284924799796260159737220965031735680830594695345357906081724465592960343637617113119009521366082259956047340912959899861623457620589556007914718418328050647208330317649682039438386702880479617587401136419705642276520632126471241391499068759321673652943285713845188666351751373961259952287811941718432287214062593068464331164386806188694184444222630099592991826782697118567884855629426580827435660867762166025312159617581929902176537330748764132529962608924895462487675533799231318757451882464411576227963454043774622256948178590206830350802534441376395249962748338135592615754951887416375974287634416199187121373165937257404708492398096055841491563564568133401775897421248555416039396623423176582057980961268878365511911992052069909804682626844555442066986033848643027098290197721266521014969402644082163480255299797564807846200038146316325352497143410641318506167163805672438001226927136174017279618332881202418133926532055604360564793303949470174213048672146727077172192862235870553097209580869062651319949262669403399182252787724996832150655306840763851795617283291481375366834325930456187704132298892918338161780001269314967876895427151339923089574947008699593627708056057931678233760151106471666459893938508215839572094700622566021607389303917250106653609386209745206807594730732548431301406604253566367320089108341205256842574684316061581503161536828351735758932839586033006833424992032690876736181304504533232661847184608375653784300836527473619846526020950234651292078396878875985223567721010386492565173892495574813018790139382433940821777586071371571292849225358822025179586358398640567180044648201903998135716662165074507809759164624614491673538137420867202632796925557988040928154181763123564713344008110033705201052053812390729858794503190702509076821018974965544208739140755628777289680628696677363482063276640217087694223893607901101204203474077325068872594488367209735029911071748958697834186428278383157355555720476631127682393478897198301758904554362077931141631586106339365983582714057083361853341454799184264096920026570680187877589239867519107835315428922468404351136758713693027673038174448204224595731323262066060071386215504054621161358278445405155674324669048889030114508172675665388753567750785859435377022533996726389715663137849722803005736932392681137469336851896744960125445520683463612434115660498831107655692517373241177512627769949948966710472730334317453916798617235061122966226693786768841191854247249889618117425028384385383998781849577418652776848959193647577336322869189806895578036762418364279562430402239023107607815052855630565317325950291366887946497007411328083224822012243647618723853598418511715178348404448886149638548184903906786945887090246478592298488263479157865891630286591957854789313284546258217093931733542429989989128759969380804674021812359683491484472145727636158066856885404033601094287148531792448601758994593687506583974461862804462844008285871850778407249825151685727708779823688949369730409265193234534316273058304011414779924125548739283812156694941129727171583520336550231583890266353243814275583705470381274933339864697819669726304729970120278758626930783242879628321938841911308451382277950718358097737195019098425082601330639163073907508464550934760973815172311310842485656736319762026991456913199572747986337598846680187991099106204708845129445803335127320701934904474388158281581661026917304997583596821526153451900531516422241484862986546609612324753058672769139004767767053129351614233482350079648722862023565986974911766834605245772529721362091457702665033861667419154876527606771333966380102843278119328891581264426369969161435180246342406704797184135127182332518462690395086061690085640893877413096618649914332468733862862199829492007722544676716211500106499379954711875244587144726202304911327700159038890024207901899418712423695093422689884099595756027708318346881337143194865961878819371181990858763321136133895095155629498030750662898633668516235937555252618030449399574848808761422871630605858527663776205795174063262932722088264453547402756907138304452352854429027827590896134519806490931636260118176409717274933281294770981227742199860586605130578238774138792968142311959487386341554233483189607121876379824834654231731437018944221156174989764262541832962877001171507598018707750986937237643281444134291231405306768614096631850930506098753939435301174067305172932446813940390717733052642311431202868187020174670012133830271073201424681998592150581914131467748751917664779053897840918490046340020013748041082768765996096182793640608191319334434082153386078522867064922809780949067552716770481393999519581318942547766302587612534231937684499227606269714432990159681650740066034545051223462489253024500942689871637504039194832328761132586690513996023514656592530686572023218756317168876339743670611952822869544950136380105207057735797683736261087372155408423090110200874167812565877656919115819311932954336020535025003666980713767010204324761268895208011071219705954423976714577441760017018377186987912332479350525920462233334012304153565735655956478975517934584664609224244798238347937947771517622808850560265059002122349769936306909832366664505440655913573600398313561209857595109476184279128030550652526375101311262858835923030550712788764533079347722922267415006824231463996877458157281638931231554137891230238339004058521099324432544759865956561479745088474334998108904111818032813369466756742661790165958901512070433898478991574534441036499981479460319765319860408137878465167958665857253661666566361537154417793650953780507237999443533450128937231304378794278888931877050351665128964604072488702410585306858689433149750637400505825390155596714418296469466127307522761033018647192909654516691959656075877484117563200415429322846934982947811005398333759906014901221866766316399181883113489805611297608103543367215288091669585120625029098166105081787598271709789596627943864726961990457774315204388031179611755092885265888123233062481698637705856555930849041895311681542770111708220347183801029831440926398784361705658574237657284098212350708419396792851592527972900234600717578634251939387345682344056260443736996750222971635870605797845189830445678409095147727132333849409818970247961766502522183943305464253297047692736374732815641474331329684864488314339224022214638124109578325619583666775492202509233889445602951466516851402317379537155109835483047661593445733473982823822598447013788579633970826503605535632110014426963682219431193399658740389453019820913208804607386150283403056903868747985793059865130161365214119603165670064206988955438105787402566753897505225955370508204284762031871897415885503748833966182206520365599236642749463860747270337129669684753334127502083225137057420858021761522704830303854091470193687131143305240433743817667927497893540578536844212366394572262398853630617984491783345008168639171589909121617412096337517148320888119783427906767606741243144990304922720811326030221434749894843440124553798758688270962189681197483820087503653940590672251762817520180289934981633662940928952018626193059128749829575930627467149793417891613139316778667795458008884167915488887186489737526115173529030375216908065127267079251531581009885748256683011589170255502377084754383345894019489884270105000310328565262117948430631108688517500266292206704594893998822463623201897887082323296835770853943862183128980123228747126998946252126566327296623506924985731344739605756101150633979191720989336087759494298757371211336408388705388584701870967289340288721438902879340133071435104181055425473861794408179061000775307712062631762517049610145990500992265028407180937403746751825539058547497460876892756267431070587207909162550506974499027169535419260989400408512466254757919793587077205306400206523401718035113797374628463884819577112725065043528924855051223893594390838880482602023213280656064565585723634060473487036831358457369091342502827216954840137857780241208377750648101286128837251855058054181127047571882137943120317957248476199662911065282064859805890332758771122160833970957179470098242262675196725925136012479543542856547293660213341236549692489722557706376732380714351514778367225494713929091019967074388220660793648622307899098632285031940846421028532625821139867531878253982106334322690005986098069174306175811231861305163773070339573721330683686027634681993287918628071866841888067655269336345295407995600146587633163396590855601307435522332918154269747931738500652613192451050389463409193203169795855421798544434093057596577855262678852184239053176623763813032554615717328452004925305123369575624982064994203824899552487184384103585479947131773729772140259765639574303114724930423225758720430965165112882203607086409759381781234363047172683843324472119381269871398889380031906162254158051769539821275744019116840288670322459838572941511960448797904159397547034155708858970849735257260454481624578134326153051128784745493827092244042438026653162518998321370528988932629573990406250251259489243003134965497782284599137952026592598263350176390398579082358278216012430267524186989494673603136644583558352607838705103417281575587647270308537633183670978629632039809100663631898979662309514398295976791691237898462661845296773561735452318215885314506337047369096125324586841997487716261058742409707846715535614766124641604019926455060900295325115344551398727254700320250022172700192937553136811235337467962295127666962657176355309711339025542969266733419082124816334449801763404029951673118141510470446428495104908141441612291871457788965460673354395491281080403962446594898580055768399931350180968375107634439661540907196224198674799767324906157203823112203100426411530456157917975782221644458462482358935121617068511813867993382183576254943845965312847245791942227969842962288328545988217321098485050962344228102684280563608946738748082787970440343487190052472072758985695012296660682230023559882423631696475835524465963114494892806163201604882675788777720289884697987512374946265266507203822934138761699960930669471009812964756259997205933560709375305117657541925075499915968931700891986557947045265492270144026193394408300512321014084011632105860786789992959771415201113980848438000916882652170007285984030418888364614725674198794376470155370481023342437229302942826575083859408595426028623606311932703644383979879839499076155700848303257311597415257602296044290601929387879549988362658010459190409117391085346112253563696335826019600310418177924950821466777120439765839974785619222938264845439554136731777312307498373657986788651926747882640068019468525570607094652580249526990723884017836525879570555276854952912982396598334760901836818534053891581233048515707840843598850786118276154644618643999006255032970127685959687084362679081619598269153918547321059450079702427809720896697487759675688918089954265115566049418816797949435314757119326972680786997747794804034460654322898979046638025052464045143561061259203386752787228457213912805329945750294541235027301547473937372679156950336363025465838227394945393407603262183919040298964962532642689116858259232976516162872082090705219731270980593674537123615324426791202126865119073187029034455393402574199389830957559064379488632859750556280766205480763358259006994130454823868329410185504350759480595879097030568718078495262272442487597577195271088627823355570161595558718821156993269958895336920150875003459351445246411704378680312348649039556374525401326225581098963462744690826654294972010057675524713611628480298568139105876602419440817093827873643413798336667178744968120728385679046064879006917629758404081291685252915371742157318598024393222143422707539969796927082918197885568154265737128089867249032559384590733905433123178137784575128750353117959732715074886291160403529919052959191702878341675045571046220387598379211950901359429887248787200284459227176375503193627483230098545038937514475423181312901548409419173085946679454164770758401980439894598702140655815069973483490533711782171192756094388139254660762956305847501032037891219927921498670829607211860279083340735833791843927724722954774805382437467342142105350001002409075563870232868211529740805961953498012272843054974857642858548882045247921590470763667660453447541068579726443274184164300474735720225413051668062244668176019631678708759985170262093722324878046883261327304455128735832482639572827539598842542324862321090334393116980474506525030987068766286403646924406220309246194455408034754403571150114653686827571942904661270517742394064031285135959151402120248259648812718559336429283308785973617096052705686302196171872753871340974276067951730833424461965929566622745058545097557814352821165949881611513735505109830149568544567072705895274769669391070646232517473783996269932780126546559089830164501940979666879093918196730744175320092073055649619199552506635096853604633379046542490004770382040288095238635114124459012741084399090411872327629859128682082408426452323063884230157236880175211237587550003573352545808745583928320598545286223450849011336862830818897692304627069191746689125684168986387465707192175993762337614699267058939864309866941007400413578420969334850693754379367328172751433428225106605797621152853593333349639931067235689902222934042208319080472359881497448033651427583234643293238321247521249512066853003760135071080759353282191657874986481929564932542531782126987992092340825825088002983804178635601586479754076874475049638775927993846332952805486650684741035791990575557396325168915362260962353685686377062766060467942546220265697078812247490512420106389174843168515288428167467242616847257732627736662963070962690456003001160568297263790108040163080510460918884156880825942472817512558850466450446497430993924076676361686546774713175757654799371244020519381225916082727301695725885767532949145552686695961542260818542591837287442873929384120848380631755601155590168359616777582889819652550052279490782740858135060888913906074737363969545197732205281652318667142695176516896659955831636445225724255161740790262497679564842971314533247917959076698183326247890050693593301706111402183891105853357344257595766645940146090133561927451131364373212280903962965127521562047032644976107421901993750236991636924230460753173631460889293408398703500737224740470220500848676513431361525213607137561192435006546547996299661597832124069284189405529258763301842659221240183353743243987996811285481140216990929664978028309526057354744555658750594537206322352176756146777193563081698405837889355807929727759135130175250901159681893768115841959819432965905733034608346925495628766023421409206069923108108579775915641063678965900949067070955420595288684452755189215071100484123777196929157700467504710270006110424105254986907130738301757169172115647603675929080855820424964852427988324185762055804473552606438272370086861804461385795835590728464613199900043114721158037288638583677534215595546773958502498180598172700771151818216627404241705915982127326415373598763689226780397136260822791366003148445219906525348256245675031210248050297493997118028259877023265219649521857777075091492597517682059062824872044782146050682078320271735602633770412435966075585251168510926884370698817067615524813719718494659201718359618095445042810925453170002943542656718541846085299255275518836480480535835280710837685616203862635198820306202444621875220420030162655936345735378062377472614838336151621430876680285533375797249955723198386105800429788997549796046682229191801641736559408789729662262583993818393014236362518985666647193668730249073305597260941988703955996091100406596358818999709595069733745380276054305203335447136136230564085152318323141304935533140058227211719054110272636305189660042047884130172836231409733449905167689586297308888644797250425075512390791929927865046074950137939035962368244128653762045163112833792794609793118003298425327335195193078731571417639249385451698364980866532581437773448393139313934409521774746369039020930101036643675775749469528535756514357830607178308933627280957886795935148204194196166403173014822711571665952516022458249600510742062372295986985277864064497136512085087216138969936680984488847220738161588874766038791624397347883900570296916331494361384200275028103951481881781470813337602826243931996723904664423310580776831055534965119925391731384884826232839985167559855250560014602161752372548809755738119771052376207746960225504052489574866532134880900561463477911028653606765600383205221765866950000387663878725965033107574562052406479418503490425084754993133178324269523874464757836384303392280783871211385418339170371247636686013171271882892440741499586936929788011023321916296909700754805928021311278943965237726705119625705970915334161848764885939508851361396837488759999843325350317619087328296425979510148027107824813707062974807755699992600085146001356069717999921642039596443478325999614723655227062552901832112392435994507378442168698604487721821395658741753264581262470297474543401239793818763412460732686728950610049347256142613054968636811307758566271311636743251482772370577821105447851409302511364713669910312038624994205701850905789962932752438379938058182531071553877836768754859300345793660249224134804694977795572686438628060891205295443697239600724009073831120089183354213429463432632948476171051874034618403340993716159508051437325919561551731761660182130050498673117221683880589595030660031657931837372778947429388712357564152519758484759800262983277080975363350416699688465489864324647281613685596364166502237793766872245635811484500148999817567432343134839642137937632285535816905967251487464139030125608583735582602749043664307478884643499898582191880319408306828589380349218919540052381051437143822887069955783261405389875571441004847834989875414039910897966371115966469072065976941637292686631323492993908323725805263487938320217161662459900850544372285877917944145404616637314261079615578823128289964745142418346593122899318701806232787006115240216251329247165871320333328988010667605619405114642128509977957383041854266949156593183688330217549637675347962064134100160317454893625328027048612356433066130101497278531361658534103833156780638682654637895830529322261009287914255266650651653806771954025296320966768706436440004243389355328795880715426971482098382204802010573983647451760065877165352271359494270924387000226631604767858831037860965827801038894671867485906722155204074883444150872426031816872663645874850013169431479336917073771768313958315893605781604339523444790626544381838641012178642477718387530394963994857902880937431984078059181821935428880030241134072668226260937349682275545985723204530919295386498222859038237309474968053994061488907198005632497597778842663217570379240920250500106607999106657015408110515586333349496351966663534480450165269958737729607626360432709560687838130389080028831888906687375943073569812789034495942889329817616114922891070247320699347229061373209555457211584071553042430776753601795322092254163849797620163288730246809422364914940152747195108016000426161202409820744711668057132819213224888177301572710695233703253165363640868944799200765848874591114908397667069882237540007337541577700780781923157987625988383449398668550103313824286846624911246018883758389635290865235453606267542216810322157357497122344302067426670659722536155254449170631582862850840407398552926098349034060204119874361520379933133821661850812788184950651088458887353979800572754156090308754124306883195628229726446696384732969053965260134219333477305756590396840052368675874561743416518293313459390707575439657115159908727827015913231285743440410506854735623589800428178542956502568573455669457746738243404089676907253172833834397705574549829535875887840433927500501178930315951836391682194184927940838499510042927890766076376660811340379296879924486345963828398397337211989187537711391908476252475204790732172007984551091677934013931615947998714170134100395043345104898098763087957822540082084884392247760920633150035268484649351040555148765411407681070536223290186458954739869938219013805699000137435460291785798257092863060335953350387660611467036866255504624414603400264553544533510983161252834159600912242406675610305424919322945556740522445763348132670920304513131553473704201972723830989135993368184766110456726965613290999241685176283760779631953207581023842816149461060748437525460086998198071119523777531679098072694729088406675630052415516018859355594579442499924002291795048799041571282391487617303635683580119215848240010953456821946474468140484818569938496228251511240853913130607599920168813710205135933581963250128083994261821222230459052025510718174860588490912527221744647235014948303855867151311502938006157445575880017678969570966864033293977423299063371696524706752696600147751711998978943003198410573948668171175821102869815163656878258780464962286742819183798172343434284120746744655198896545872787330364795970632869845449980359422694526500169295473273682578379959187365013186718663225786822825120082308758336237843709085562857262836978439629089442568174804120230899550379842112385856118092758581415387927766314301827717655069656339545169021845893869665720650766312940299044503388682999337307368357005042865017155089220422303514245107308124158653869894362754279600935808054276790868811730267171211475558709051045597009164271636285012430973375932890741095335546442105226692179435443981777607897384767958585724293613198405281917274277751493081078243435351617409486976544200742008270056522593636682548965577065222549403343189104197330293237689894387476808152839111712935814778203202320431850864441662639726689926234994647201029082052484370525566264341738784314745315444388640298154962808956978557363125969006265987089892890768232306676265588612927561361000412235601905803393986821448693782259425519993616707101975870169195918005357018193126366433650033967466325251323454616474375652290944470773111681522538260515587828669062338385941586233010687586291387049832819191358275156941359171809676937231285367347887233825503765901126585670671014268428979557406538071666451184927708727895487838742012726941570488736704425169775801496344231384929126662072141959857182934547813452714422777575821344256350869765775564246479018756176241314675383314406415407424922395458869413616590660055444839826071714872686812355108432189966104836673098668161152097116926692858340958585469076671017159986654312415347274511985073625818856471362214278436655960120681848362353897357835650819850295868341835247146165333584679665963794596260403842996309077048302205087956294182704036345139623576030911423725113658392760633542199048161256105556773825559937110476241433471041176673355625112865014433565845158352822698813429774018503838782305953906695208100668149654586204617073895706509599102849139324577115126862182696965363965962721548082914894451784152696200899570806014007330819513477699465060309401035147598029665080416687328142974119148897992473504281494267674438786840095500410693831068945125258851665216607596110226156258796382707468295260142224739548992412909535165227286666859066502123024857277732872602645136314024811609694513901431738881184003419733198585790428498307952358297413533011825783042253302778634741523884863839234314994680859573173647822784743551478197660255182312617084195508523069200813123864834404412003921573739352527421881757682937982780419639783100907465489454769817745115497286404815075813213835160019343765287128001889014400413450213872956556756272148099513877173640021252185931605551782286969692480510242202962696969316793848660789537832571090883497624950529306949646877646672158401057355912578254712011300753719592650451840308766384803813768155136228316488015044695422136665394969954544643967426859290583081655614733891540986889903543839445363031210786396898801713898236775722899709128397778232078307840090160934341510826817251291286910508490464361843836487930075636175894775421098837247931522009181732907700297045913114383960410351133505205463375930745298306320403264600985092250519381640490469419697220735547794880436260629079896660630866023049515673430343990563465365755725844174126355580194666851961481025433433881364295765863502262370484066903194007151915338300582938923358428701968549805243085440212622739630052839977271676900896966739743988224116169031414383915953100761900960570206645813927760071075113244903713550626439215328289685479993362886573987705241527476294927510711324285152099709861079929606767654171976110246430714431685600346300427716140666069797892279217213062334819329766272086738583713340579026031833790416588579186574043575823547324825573751807435020102842190437902726477282910444978553142596923415089177338423136207269928400924994889570951476490522986926716361976582184351738339490057714078397794300961357903499201958924116503587161462623905504156250206959337526471592623674630475441299552428502857854883375319952868059399861588870330332111564888499917982601575892254076153438268685166057916758857516874393223480047750114461087528123934856442949477210372436161773534853758229402609071184172385488302192327940681373794944407337530851486779903417253204601725118618145877735727274234902737686893777715710114209974589695271098740480840646824607358199751791145963539172128767908366904619197410511611510758235492106054290281965395105793351926789013671976320884184413878423591602009650825869720364808627340735142682914806627818571626586766901260297632019432473093494453609817265442893241280999801294437122813123523985845127272834008285611653793620255880185704797026590037228875931802903283629849914035521008818887443285930993738685549150112617522453372263425519812930624082197679619232380296480045747495122248545592796499257803220829113964376641245102310495917447521071459897200761394330953987876650933054088710791306943668376560104061794506350965218099311816287530241305886081088042051609032274509165085202849995270615418911374713870290825176000398455971159379714324043395008394842619172510188650914407367492192460563821564788944601327046962507719998734956757841214665493187042392900457155283888428332891514620815858347201293253863180060686365877992773222569773190767664072602527403766338249180964495038659005573221700231118265381753349541632266074419121141597724732187810074351950299797756763162398841955775504210691536111952449956298503387255883226657496700870427094455812685057190786964683760237505308981682038563630259899242237388463602621367632643158223125597057669270588296567057491910523371093519589956588990629204259386994514869352223345946484621687394635185383830948325526184239083705298340833699753566319414498404001877096995272125103401130594308443310295309110508173038527386033239755147110494466204827232171809006517254711881325086099784248631451227956064804302399005412094565655126308151343905964552631274097408320765756894879840390663064070608688544520909929753931996537105898425955450861013140125650406663907300359007261589672941114208250150326973607810247487053571007411048540182334405585370935638428448897178712140301823824311239432001711059223901072796531489625010841557106598144515929364876457653147334343675931395186337212213728948727205074316988026441997270819894593764764205499913044134948633332579958699766195982043092407294641980415694688741017961345616181716990087821364567526158902704825612807126939504463740217604481578053118677213027426971485953668386529326128681064214849368020913399939417495363435750780797482641691926313822296112928768854984409572254478757414827158267492058892895046321502053279586979881906614835209750471706924131354439049434159604439749164142973788438100270687417487854569909177372693437916148966719085105230971835265012685619761607726913026165707475170456445382936175597717357997279613435644980425885814300236535897915701923963517627397350330515439732960679451215731960613751881689531271995000151356673368030548024991084428226660940807992973941291948709737324901573138648497433001962557556872006969419663088049176449459741823221703410983518991626199725681979630362706204167941344838681350776278091028821445299893547876882986793232482160600956159622503319577003469678893826372101316946346759841690821538859232577252724696795031146219994741662156605514516726113743080995047759935838843680477761420358507507247509551301940837781010234784453977592180032285110051042780820083541247656041588850553404126493692726446927975347416264023368508665167522405582676987137013788285012373813807667485720857686374689496322235827740376373768370922915125724022594987065210525181235860634501217754789742209987691135330401295577390308723947358099281615496395539835026147896082742665826216137395293470168089910489364525345494031564297476246965452364983732154163809660707064023389941118096901822960966517336048054357239546451211371528421836877493733945397002663524367109708578883497498587785987343174711161985987504678615670693846900263504928673346564056775401749180130992562301784481108710051077061076343902278248840712087140472342487010369585948615302268958236025512681554326760391386569055124509125816301720048571148282219099290095843399065587293421349408735410970490678153125219164254501398509111975522841523154126194534099377374711559526226061538684459354097937389138669130845282629713639609119663112180072517603902696721324214998756944151196677872532760772030160859317296719272578152171344302217488590992169924901202608466809234353733264178198701485442755666071843934217314166527196710654604190045054696140200235040572874619904110749848738780515189666818708087301519145345719665877343036417792727186885435025843073435910185707741663612904080709826673212778933653251503321586631151102559143362037204112170632903642773003220441509014341391931029503255427494086933513510804374888934945612992793212400487400356708082166560078432783753396938154657144758462348716287250276829243675481059772929192387577279441859758134961783692938581081065437644167752955119264821095501387053114662436208552755893555283704678260564214398618164005729064864939050899855889121631473262305634257753141916719157462005975378584778901205296751413597888335575848548029613728317699579042122533386063810915442736427806678456637547835006999254845003343089020561567424637230885506408705588799886265809134997632313655490185509706795895928613072526829199169935312770692787187550675105881903150659913834503237167549330663090524766092976903212438897556229020324567005635705672316654290786165382403660892006246056308326046916906617772238992539246639981093650201798001465385639420302354224162480054316005498156135463156653439694847829151652607282926754246352545923984803134013918149871281043638571429263916949292525722525206688550343551544450373327989151380978195841497039675350096860400952707388079715900296207186070820174931945697042029198017655306729676656150750089557053711816042021374125549800617331771067591217985474288956693627735025294457083641229712600010671096831885061825272552092085656366309845397306717183994928242717002940241259713376994584272377300705294456014778137253128778199450641769270933420727471574350197342170813819292353166812134203472169466874823171086637786093912441182574273569058016425206440592095229958093858698889343652122958164401361058220669499218841953570756668826282306190672697669787755075827849693199694625372670231763175044611945434960117186614775401608735511654145830545785830156903505614666373321723984507995323970832853698557410460723646892279523590307553555200791872445000073792906132265679318103896535050866001908843529960750785611779859890745950418316743176255529052023603594080161991655951193285215018918536976100643776514562251303157375691420460830709753176185879776117274125705737076396126825104061295064854867828410573206478706938463776260609259833868445992864333752927731868571753027356952471498442962046409487869666303431015459807557830453293359409463453144964870818146656587006403088982689655908419359551335865084626720787469971933410993509655943815522759759352840024754553344631603417822082421042798715023908257596299569981930500426662471720093698370375649945558516713540481160488035630690628624742312096344683299382811732915859074536701429972087661983904896788880443442803404299948688229491801015000544469751543759235028587011660963785462592597207512639295698047673886821152884263258740896046262392574494735832258317640638949563131617915811240858236678719823492392840480878117720539401480917612805994987554396497609659154260775184377268628039496716307288222031895979365492897064809755164798877810858397550343034170812204616530466578203449635954080026999144885503979687211333530478753302298250648180060784698061665261051949107459436384529778785854190139129342985377388324244379250334989047665314778214366208157950768006960647595126108116795596188143175972250562372268700780111899682165338299952494565012799043732167260312174913353624888378476944154674131875369008723916803677007222066074530326516386154916505783751651162177927901630852917783408574202818436114616761876255672062482807801694839621272208172402754649172982527710883085094705512578115915626095581888677634823965153289797629853319817876610242421170912102045010824306689138987352980122011685104690764099319550518244087856033903744454837535841111106571960755244540198245680173030264311871156479678578206669791306115321403492696657481170836106048770296788338748177410362624797403542892343414165036085748833791052695044799341349186668365139439120851457338118429887205306921321223224035633186109687862246989972619575110676176124592436581585890904925883005792236612258043359675175761488683599617170061978873956330173475779836392400838051158766950392455999884841874137956753556771169781897400075238089716963751410522275677863619526036194600485883398105867663324898012994976432983596202715687480749590843347463345518150012281060022888418063563407844662313150805482110572442910981181267747790919257339631173889224907543143135917711374807056274181835602347710538632566649574478965238889642914569049036291264047107151566462439741014748223085947314663478510083302455860419115800547671922903840420922218442420483033011728301326104386885105208692823539253749783715558046697262726244506671218411423161063545712852383344483602650180126455282529908142556756063785006101363952726261937073670203970608403720692053893199520446375751582172156508166417762632938459371359738451615687291567897073555224188617210061100486521936612503497517261514862127813480222303881250717181938338941148665361639387572133358289705786734194054904355296278242098608000272871419869364380875636576002216152679144262422760765889137882073550274151171680002390900716639527796459681060602591321537036134490571668334308583829431946577176379882732267704182152352913748865697349003141347655825641566702600126975738059001796441725289104775106402772576223003621195039910042763491125429746345488857635487111721720066948450042475681655778797172372756700471832784933739772698199874038710795907642448234476291123906662069624109785360927544684582411080835697835240972136621777321752333032351724484051345152813999719618904250294781562223108226166904507604536188377749658039460143616317467778266311395119654721810111766346122245364647586588052303950494069983938965856335416660962047622977842725049925181440256554467439641828286260339316190301008253072332041666530601133968901351349820979843848373790504338568954402963174641684897240199316542323896004072106568552682142933454552457154527508254023561394780929416857468158851815657307412845652758892057930449830766853703738229486142442371110246581542400785882459723343521365030101343205574004393218082341115817713280961185316128109757496113181107563553708643361952433549923453307882413431231734978498184555444900087631145194358832859845654138715787468702746214411116707637450833773450983383754846434590855951559903782292330808468449537588030657672387086101196813677187533616348061238951719140426042608650625246408696706694543003408672056413977317540398305289057421332312612420088152703250118118712484156315149569144751268292336938431937176010614614290513351141397102182067775041277804588907967964878184185521085312230736634526322312610430179540128679349539902325213594071649691705388719786431667971785832120552039598026852140236856618839759955504608223011119914230015407847053335891774034373211768908239717886101573476714191201723487061736257131314041420714718611899494076502961287743674234582351458651541082129605938610936217980527022591787636391468505666902056033802106236630561828940745513918294999859904459248673962746900037982222440172689494642584922031030848555160429411006856326025302265286874539419662775094436427887368777439816156739642976958302828044612533474602610859136562012260683313231375972929216149094823949138648038799006499010628807483968302861924715777001183100377341614727953794967701611946113785934164304498094797899749880977704020013967680061364546956900453901816554070777990238110889577152846558600306066457571400132060903734697802141874216568399907479794310104003463747025721676024348773131078906493009135643893067497407975725924865589715924294872437760617026394024911279569402066400579944418982976688410671719103538082796445025304493337678584141557624247599420238980066509298622886025585866702934564335982135543065947605161953147677816330903390385650400876941736985079165383245645425678670223360201063785245180551659936023149516426205326855896397566734152778009088221040663411170688661544797724182997362568766053260328099442924023089784624150331092781723040635431742883392054166164553292441173627719108663269323909286801666977048600383816518936988238721495024798260516547031143223076492149172570118587345509046362651739152029236562218967808683013693347220262238995011411237590470061974955149369015798450203669902348121565467486841347153275413481577872095819601760500117465250890729467812870349504273038078405247688518827897875849554769373011797076926764458383683283639240736885340932086513008617951604446178358151141723156760895111678774668574878200266386869997021446965193393366652396794502588845220522870398505412319769222304909976267340849926202027784230868105401338920668516321022058293046083479261075329914382772224839785047631575734373255258378746774700536577439222833891785545973278535310006053954136372113526182971753831342431314631042606901064291776638104127508336011673393371683979559667540962502348546644236747387455604704448951954538257145326486313819964199474453710707967975211797308531925288677096128069929341321954436586586815533240787745642148032758429287088044140480396446364720366970596403701887178456485679819334932600813513980049252774242940406046178194940368270953915709182602704907425034889049621886293430812482401177904912781668775833131855513949331221882561361976554165721987409951036176014677612121716077262669098758230054449613550126399365157580742193112760960673204576641119798751938321207415528207988751188031497834145758432078276858533205597952475032504136047881992277076636218007299003600460748286873575948856986708656291567136270497611476202955934238301730226936577027893525528534501489649288016968804846964268067455906843712834691456935021583834044907455256087739924275691901687117912455746508384623256632412148919529579650961073312300835156340550087302020875858683038973363648129106189166111031987438844401848770257157950896260658215167627663845559547646066442934744223242270325991139875643434802277512024576682237488510008257016806358221547807988206289612240232400198871662233403500165552377713497534464519189425557951876344364278277140072685978033730781790433057502427180132087879394183008544189530264474942604129765434438725284686226358201493390064739720923984955097358969462501243438878488585401823444625844889427239315455496541220563575618290962695620509914006328274278015294644399636996664421119970151008281582501451927183267810652087699165850790791140777488965066765927988049723903794291415927265101867463676425699014085280584529667122886116531412807598443576021202276765164225490817056101575082863175392722557745225146709559387186472488273233071857921441899044318919107588307845641445573843764147943567684700948109795017711888348664413197946121741362677337947532003710214851612925134825811570090155206982882005682821425291739117927547147509910160845564952708428869578872216114159188239540989187873660964533055640844151078536173694570542839814421988309914027859395374765369916592874776334498942357473904991126861227885330615136046036609945858570155528336680080198006745446293525776367960375892526876113759075693208596832862930019242463333687197705446572713322802356537164141840244870594393484870700206020920744081158184656726110173276781361426447208345610793701491573732401275530093147422438560301022918576275715959620607783966710555978715886911866306071119018989776836166431429630054330067487181143268359315124474932494663848380935886281041871374489164764277025170142602050599733824301300708805152900565290351225797441775635087268511198966212082204130436797282197614739691126725387384916618073006299544352646908794228681325530932913155356442021894746168468639443811156000609873009249746310037941390358224027923776762160805149436575945106710741953950864258929095087293417506412155506652768762138876514391472968126925040441007567555997980026102942681462864722719608544827128565393040864085012308528864868332777903947929829253822295513911370572058343459946576673381946230053162869001242296010912684408336797983615816472970916633909371981981164483954276390270086409204525759070683022861046491978629854880033939799730560308599627377955879169674613168238889807778362082842989575488381705976106741821911966175898994238539413595972226848788868721356332868904009583294281542064865198383043887691362030457676505746978489584431106034008543082207933582326967705092450417353975464169620996792267116842158821510183308247948104788442898190777439637882251827290076779881673794539036201498745397811000468587709148820974532071683974152559268606238894417792626473841016164758408907197793289070287434830755701202239871450521913209812153016134704437826325120500802565878044847650455508826975176212314070687828993518592354761299371321387068941746214386985979128762169589322317235954337326380116213514412806628889863237358268311780179234878695482027325838549847301980067839259339185975900929903846472274191446234797675245736369087880247764030386052628389701363379646458553674945084857597470516110404895852731005592199300670844052179120914006562201405357706190601361884504649483996708713713830136321355323941699626025166334747302674346245527784086740719715879894254040823710470517144080078339318536750253842604047543570259966380347551532156829447176693856574116436266546718132369354989534826245060468975664977850106094759855453260327952662448214173179608611913867976358619217309686742992007199803492488097842962817283087697524411538568094088513821697432152167518604016475958875684730370851441403947117494158536186683057598873885295033314141566003183502667456986281995926496742073387129719490969954711010761156282274067081121381156317402906043317622903434085013871478573392011628663686358833405335387475762618350500082115596603788381125597606335656400456343481673308157174328458625953438221025059323290682030252435629212600278132877892395112364902934250631902800889046714511241298309864843301318728557086190069652297091748676676391930420410056034837814733807042297050289810609687865207777563549131865857424264166301698156021316808103282738884942671523289354227186205266182178137097912367338955479361107882222757176882552846412666877683550677936820254120560663867891295267291601823593101743447452479335839090985973442534305249220772583518223485164681974689528099381147065096238631248662382261714396367896661392095463200612916830505466493424849881143883235116450273541406967417436314543823970662727586550022110826789342082672721589250611312245956438213440951452508927617154672623287570093910268246695246002122325683791275637885845908500558962713035015082149676589417444021722996605749240427144206796439169623978170021331423200031771121637574996451525442075699398316991581607600888776251549899646709359968051239198353843576957718892148499094709608720289799211159507610252822511706395722587440818154224157632891277522541118332929630131882829723582806403286980311571982084731376203698333889108745067111968991415225602317643782795273000526035018297293139213103579194708091824611898794766116792726683546600005548836309476773135012908608376810254747080457581855758587638919198073544951352609987402167542550989093411366662476348958972393804783126780919907052226104020258330784011751467774342004865221127489832760335194765975390645310635908636947853535664663925058271683186960421572343240935892840770059795384449523244938959199105528805119667202434535107688280140959699741879581548702665302543110208744309559250507556164371871103684993282972637261671200432720692666516086580900500381173428562813154691179326408004826885559863375731798309018598518579898001823832044452090927168982492569265726494381079371309542057750697593967677231832200215622147903254818758374227625039077797375360983711691327446653626922516139203173894584116547621045007100468225884095808408360995921622550348222948720149883674069930485965606522731333953539047970880993668057953439382857493220426234948068810040626655015495157728557904383503118155018894709889715819051015393379087890657320099389635839417372988260899438221644936542360126888256913428277714304587934227334623526290928242584798034110027160523757786321460685689639266576109296653501655350423462599744821888502692456485687203705451025011482989994911320227623561371177668710718911959538312840066438708597344513106915896325819842635604686885769798735646778243295596646659458603203311411651443092380224118047656063038009097556156461391767106009478407276665432543662126695655097005880878958281924994781059277693659567734454968421505613401796614584145225512809959511173180995086964666212483583469487822246803215037706730585217139633231451533433332310394602904646783455522994364334262048616558082820760189534120995432738140003300191624834473113293636903362311612759744989299101203870386892458758081741983357553346058336488871369681389903642200685512263456848634752320988505538161736700691486946972840410837479817363877524844848288607683288253679889341455814594132700612613809808359649102743593921608376480590537492355232589987553098128218198830136522375299702650991433812638893289003142067249698731153711937055015759412338716752747544118658734593665946497595970662491804382684320331420242434665105386657790107370512712794908850394934324360378106342803550669569934208112020091785980094974343995001854174259829362960480923592727217508342329915677303697089196916351034857973671951255188125255216990626952647113010110846865075144694950284687691595975002062804593447234814668364611260565433175103163774521009852889408254088976145192377247485299161534221179813444040115204641941048367488462069592479285395833005799947782293884314632540229180772265470315429874673827090447308297619262757508293966536179285217214288292308961500546861835619114917608817350240310701930305944607536327752599352639595014783797102345292634452275772474295234079696997392504911935806423820339225506633757789180106731886630927675416348965481364321396580080080412661058172400419526278486618190571338712233879307270385036985734320628106619770302725666933445287142832705893653888997736077658001760191646841301126232376030621954584504544237104399058763847109657820330935894085416940322573175410845494404183186551259919950668811986466288369113324298003182954429093323345545092365234148723782491837850952613762078005366701153971973217664046916197395711803919464491146033777100467237404043308860136645630048412123947704563757383251345850873006894103940538357959463646335957523761186781677775709156977151015623223394926910895434382251265540578342027407502773369781866774059337309058093391753725906775026924250173440096618270728072929329145758349469721086318630763556657009139390759033975395686132205529881333884262412499188320695771543627462952100083055547791502691188724419303769133455168256684023973511876699865168205752322614606478257909073828841948803506297840281186001552102780473566414823865392470197859808432398868194638085105559367056617309484837639597802785364337286676476625745596204063917192562506505941921545183850846491987164866067950066126977364078890772830096910489769476302214492410850374820830359636006479560539954226305773560455504157387559084490360495177456649144580564364887455577160984967815371167454931094405882105983281294415085850310549971479214922189451498155779002508618032772504819835804237367602218638191013921959786639989421223354580703982607986489775968816511311565278468547692427358601687033228888189891987610194736499597584894719343115925321758184647382611401779873269379143577965292256889686772484547993990759640333445751648477637728151843058433064188218140467284872625587903834070114740428550305981853153007887611020117320349161537270107387588987497321139669003407737873160627726559724133619645360694569397080812884452161059474144465587975395442569581911520316932272465505730774519803771100570444252919026485901255400615659839946125841375129548718130220787835109838152386191182278408310608690077976548548537583794053997785848145003815123887105335357638100565925591717955837542735989523738671802086867864042601220313537970236824600221969254072086374559857584685766229093679192894623195859820946044690257579140732442568302348475606225780167832658200102066557866682480074093765443388321794817243713787074813210847767810906792181710081484137409483780159028849981740199094863017971379360242469324176860193437234405808740214526447886639376887233145466476593755640983951913652692133437855084592962819282476289165639089896531930564648195191995918689876735910720824404899281180015305915462856545877169494084796820933408966046185532442574166747867074180506101917728989327465162650581341633083725084477044629866367082188899879162864752101082201919431998895840928311231926389200954143875462641307717950005269210609661499230104588146727064844254288268022239013810980013893310108208370835980025811696774118840797329863121189438098703613596501444115721479236212863663487809473143254684654415148483583299893403666655640793500153457566759255423351512968446803942356598305120296354983604441316748171354674379441754574943590752355721647527483666308825398386789372451236452736873850489204751849930279408828509328919896389650117785113739269296610058107238728442687562705123926097157619888660262841869665280821186852509978919720228876627376325867102601535485371110041010255787751668782559548962265824288972307636187135017780458968442726655376227272154224428976057773245585095411720175796580885077208620378266272044401878656253358904912476311806192663128375853555509058608496992622520829607236236777131803819534919828434519504945419748384240872023047085162545075349880192298982746155306419837505771597231214895669687784292160150922983191109838322750357528988703139729039892624660546384101843473730385639145457776853902953951879743301469476263106609425751738871466653372892972381333933953776290655724056328929395986113061749144065963694263456080613812105594231219891261908092311759122041659193991945155107033031056210619405624422240334103353797544971654438832568204513170247732185940680363813703879480522097319278607861028599414288033775194596212961650666227839316062226797994463366609387936115286895731637043599461974398732493297912989109914713880876983771215454910576600880684384681905927094077007035042285895159054256212905950820044525086082549617465744770895427894606464634591580569034797731055576777609848356744772754753191314602052560161551089377452652889734432304942191041752461068581530397586645158492896657282946214609560700033213124589754988338614282040206582581217110130723390421652960245634403958159079101568684954168208765035421779905622086109851514946403125466767978543618170880717527060648673999619979948688010461809546342003281003372135926770735889906474879604340968438529872215442697915144138300596236201855452152853052295961913095598388408003949820490538719417725974100189952706853124934826218528923543262545037289036334170876583847939884726812797709103141027912454197394628169055801359807022638097795198989187786764197486969093213716693070838902828947843906199956331345399866557425657549460456586093110319868446305508675840800262172965449913422458326051588997062749828646398178062157436560012227981950868613382914154166781227610761030044475458522004029685898793043803115623381745086323071759019833614254607573730257230408758912118716685600542031720272527707286026285382406800546703154282488432384355521199875259543033790456816660894176957992195471942702573598771904673784023011863986834475350504872714175166986813315696226232390154388354118764817992889031087390462414970790850146131640527366987627217490790179781197413309162036975506820523420114203028240522214819410760759001201670809225517508370332258339169092973106971665202810904824181712940312871827115688583994279558286944636458781123274930329951401817701842327963732170528875547536482580398864356604157383543028796205311997355387944992881170058745691232227324631477415231098531234446797203748908637766505358234317229744772266635398490401203735744687826947758315692482470791204030538378655143992649146811790365053385000984879071642365182362165096776929264547663040271737433017153279422063083568960314285466086029782007803764068366643767768804614403775442070852564746939765934967832683773091421846084214694706620746748409849657603687615558605470377269657212145799559419020246859648987771108878561032238879763720325921592245044931467728069443390560308835099580756711265549310611103278859108753536597128352034559218007332973032566032418091407094608733981910097606366507886686626364314862041614087324457318126649316676333706360581263643756541038211683238780374535048893381129351687722439674545585399231130638578731529946400582859749880121929156061052510116111549638882993136604977266364067840844360463080024815472395737757313789706132622055664868426506940694921409939419827965158506917929794703865972246108931296394975235090147342333178727503849234171575535311370429834732323652035621698408629858007708880645396154228199184009009902292950182174623341791599777424358857215484453491235934156830675841013837928511955219195121866726493084621112713324040721788028531938631150135388793180378005089736465065481668289027918278626614525982132622807176644241878524811365301000174523380678680445223183974514574170603299849047111913854865744194856426768122275265816891492687857373011819967850520389473514040149461673054450333142485528399735711670033295539845975239833382113684168658169953561536488696696056940247676061322755403590041804379287084474198440816413010997622937769148089522915657525465609710039013763473698388227199926269555397673032401527694397520214981175060688343499612466893842137844195409764521237878228182582251351405839521665277060766885587378341961487638961524301138803413701354159791056560655434402389425613334895490408796566098697779525538842547229654010675240302053286975879516620799872494674470774390711688358386155529058703601733271645056792321763748445245813948706030637053844599385229488557693850213269765703756730501352223772803518165802833196390763136608502551770850278462874408046522172605268091789293653177725349001290459562517713618707386678180245432568926819132753023017820558295508764242702549436741299608486457640059307697953482742907195456568522432136075921861933480079996741830009574376534482451039037717175970962995565114155834594830659392500340319856364055049895292781234900085230054178762872806916172941735705957924951832273611974462935158127799307646208548696903653357917402860090324098548747118467728255724646004268891226351536843671615852756265817929153087286897586026247621100151891904588799309327039471390488161308837666422120997368466803441915156604662202587653805738689470049323060357057784921845383484100323531364824578193504173883390220442182776255349740394268271377734317367256497245814127574819921664837623134304232048266597176237854820298915587431508306737873321445388302457452443989622353650855763736228905344993738752883383143850107462930096002568867559145402948820738093763469087423979723840197977196707030617408059685547620397796296531898803187918191950374086083944295010149233390862346567355676955381692230706699819322683352012356729200981694728235282551708633713461956960706835260830849875627733979670224846846551983117586659236364842202343255760170504361108146402099983747228610213597986332759396172849658130345756978222959840455099904028831691878002354487767000633188487938927531059677829774878912203266834882687767560232588041179069191415585761148414767710096208758176822554014003169723675747324462667067514649935556257078933631164245168282682791459639830329887624355315581095936032107393860652822434839781988217624308168266133252204034695591562928254113146265176219087145801911346493315624295944064285683292173252725075814088132769193309358138937161409104774173110012263803161721231687466402896706327043183454312128050394570378922543172964412560143818246221696279789869755080376111472523852699407674278956991178809018823944540599905184735913767619934008632986594269852895083980496980930136342375638295196763491531723726637561209510982982872172036257293775706933090287422283406549394657913751099147898630721450419553470911482166442594263562927424816473663828427937163657136965346505393637963817010715504021286959984155733969286226843174697628457108339134748347777767252188211015108460814488743103885179961364973157652107084602752613542871749718359760589576356644940005127001491793430378333897879322481910486046035965563536661752022629383610407531049532420918507379793915702798866333556291779025869529021375343387738064132918505501209907429880921002083882953022408309193510350513510391292734965496509540390546758296670826120804821636148186996522949830855874400925091095621443891567086661071291680771765979458415847719635404721773606510503628700450876771105375257573029736751594220977775135293630065934929129603996481348334288896007056158474785732371999032169532614891995422146403958507952114841960132690459070558753656829888144044862865312298323725968744210325162650848792623169493845619848311894195707190743598320472809296007850130907488772601869455196478504295728483269620184878868016625416054235600796514167336521319764461451029352627509315629644253145735056167499892437213770698897548448526053531981535740599570849914903438126092960928644209565681034906805935627867849472266612483137308478903198119485944100920732148231985750035352467324265384337770701943290634416131330291372579113227469568503927527063816574354385657514562670614431141326406171588539677668853803642419139684096054381311708260425282652829326101978648893848266419923060628760725297447054142694700694706327463436710062525855622473663563367259937313158068536900856029417865528475090802539962004633276908425874180919920718707615419781635493436540297587938539302362952405056666997324087973176239227215812598637957668049705352147809886566230561556873616464608939676746052657127165234782329134758120472993762806281068539429895967810643715362023091071582455914354595188129505999192789202838799141692659800362151782266181098259262621151083326236219651148630443402887004235084379451279580185012801577517059767246140739496545462059863896817254563960542866111101463114368047675197765513669518101952640844083542726640461841082330144346282061327552282958862444261186479384053745486262569768842482975479582953616135821360355814548829280077764819744411084252782057428051560578110396126888034352835686151991814046620561712831758656509531752453566907172872897229732132268977103835805136897253184223933329514217658776476633727022494694773199705562871578021788795493132619356098209640844575975157700287159442357384301429989081044224450926960643415426262718667424984272454113528316075262980412178573151807429621462384455357498755292871438185861259851726382686373287229065858227629559850133866255534375530985502208535618658271834911470258803444416778092147079087030506304823005269397982727443492915841105087905118879326369828013332044398647010675317707582142175702022797133047126715479836034024144596258122792600940390470715604103957204088023824961110391851102491054087945472935029193418443419577548549215125077366428517633075418397439005889928815835260922375601110729328551318428941831133367729820295111598832186964958376160448344688442188780224058788198270477883980418654275590089784885723290443092650005170918884689798992981533453751595256350758818566423783099724102684367740072031610811404925139141094083449576523146082233925160513738157216406507576661917038935585874117772856432414610154703178053894990578596055391007156080372967424525445372477257415438279628675341777543637409708116933314796232354122245561521472791164182096282719303594017559508491298677658789472347231020231403630710592366036189947597601240194716755635408823271412425139977594711386863465621697902192018609984195970975197516127938733054635486668225521193199738849080486127473902083892436446869428896921446728941213257531088373587396678045978650681197581961283855267075587321485899577038156950012137207747217833025778144431542663518795722180113286653061787022597886707204516644839990749089278891173454922091242614833506255028041087065063728115276770720433968931803136006194426777659674603482142009373404916103636807990975532470375116151814029746028031264492979513587801184127791774811530066347468515850114429431118466880383224088721199398760749292434882638826167395197851354532308011104264211507700029786415214412357537430649222774409649609754671083625476198764305221053214262687834842037953564563794857248316383458780850655926285117542237944298494564659898987490890317292848405787867121979286425890864433770534470125570629406171748154009127766643592132816561704325395037420746287448892613617470973938534501518383884946493299870688188249851636653550087205596389913558003142608840907764894756772961452036192220671833852542191461820148364349455512521219546259234988570441431767656050393909346537086547366460858504381799731151299783972197644925682215885502997913965551678283952919517695129098839826454678656221602219441811990058076067086097969883338286751189137600745473796737079046875704705637975782046971171334749062542543818852510168936222262395599542213281658343492094721113792536670495177314400207102441100246926490458767383146006150201640647402441140154914687071496033172593671733746167782362201755297721877786546085632482859593094570108103874563310911893683848739364034960630955880614313203971098692238193317411507656821785393217587578295870909068651329419117784231257492079592083742964099148157435057613789992855894358178850656037798710777832810156533317801597734442458386878918558613691067002084110747679739848873144276673729442310066202586511165613867377773855445679164945618978306234203389634069240463865014229927653914531495403159863844804750990583171880588134339391603381630039615584717835849944116682748126738277613367424651716845794821283083053886433401906686771026608996405758848388572682483637447669847701279049684334632598750663802104513156004865002257969862337351675827793630661507153338763176735535330306003972011672084412963264519145582427856262425059799878439972830400020421070436238582842231464230434310188408780425442717146669969922316025216823591095821042942182058644971146022747462331289443511421508941049444909012858625400357474066788284839766132177272940003127020255714560703165100735045649484978354254661605173437296959275963689923417422798964729755874712283259656866278966995153220058914513551833852728197477443020124785914911640729095624515240588742019166495468248649549635956182934170784103580710531350942225328976275606642336717152919078944611257550047790923577194849613617544071201890582430520307457540131161925617306619861027221816211252277198755059815229504123225188058399749953840860766925218685634140250541843450070571061201108051597347644327967875622609468329444911131734086378884692600033121038761062437296569326620223629190268516003379023666945225680268049204399592094129659347894870869503425880089672910534436053984711886039663148274717034483599870674246767120677120326734948832704784047888373420356679211237308594541687013643193213621335945094935088683055914206480921367367526052621199664035105765881832591276458400934563422493799815209837253770312647892160860591050431578194433784476494479033971543606093026820410524451759413488511734922580582718784774140287699034724730310115085323254751138981574588639852796353767432908819338415753716192966792234237740156786179662792286999894167308977657716426799214840347537841609693650503156617671628328236010746456052716934913013058714662775482406698203114436556107574628575628580444723314055841725614389720098638652383968649175302726223066905792522035618019122903136714672686811177958170190747334563689945022496389820437942570739265982930528298189033798139221643104602790784219165022249959252207522371155172290635294786484484753434127578724610893252776673453126225628695169171267016349469017733350967684310733667132946950233700546709802183556662513959579656467544443194453118322172871710048349903621300745190435964768329022210804704948539230689194725866083793823231687849039497602889350705126472474249149277723522775606467919128326617981123784109881675609153944165071139342170226507501014697970630260208741279291156407979450837577064020464166098067537050914758011517850235147592230506947453730377995357385522950640536131150102311764372056735973799754596224656089864460210189111895930649616663937272051957721981013607130344217524230948920882119441217024095145939160098824759304492213312957350307427901206675086695088767961283219245464716991420725232793776754401455487020979647198700186516291278286938411899232304844334070937482985373726264497233226840708972863344896256577936694409086736677792857656995857549941468793101119207986743033127009935287070804017136009735602712546334869395595711150934825707651956406858273499891531900629832124287821839644009399607482429648451951570196734045389383758995646112954015969048495133144914690158537585557479463999783563988207598224626913333845365984753247023377966570121843470215694158170421486610995188965325431110147662657495244667730660495379668266826142559159748372991066652154328873105826088040770055812992433783886712322095032798787285619067346865200243613819767810780492521968490144639965145290171550818939815217159976223540454253224469836900423236414307042046963033598366450506289122681528372240029640577251138285856505566262703082211713052944891990026565818389594216179467176573338645802342269846592709876045591869957175946317291261742332415317758573047579707587930680207756222967423261495328529296230964926508137755013044300164380066027556283563433948018407186358565822399264102740463825627855906940390311392331119972937117493743135169798022736419577601397767560776066271151189468687699145249792461450995927267363228959094805587379719874142283384574528156873020862033000519347322497138540939438419831860402797312799432301874975859226985610098023496343048079467519004861934773320653341498963475859908956752179268017984627900198714903592360701133786059289999445280957081904392009386180854020028391116286921076776464949110573993860040019738858144281771649804254377599885658810840093995979732385916364891310680043455481474888509003199326153934548428079488234375315409710375170073222002721309504039975315245967753614471767259994206478592261517806259059568058305920682949164972989257143853772656212670031008877111787250244695383497153633048885965177726680648373712826032527146589231973073407369044232110053659716068115819366562027680400990824552483772670900098790667730279489415656849288784682097292058060802277877621168733652357052949336035671878611685450298879095246897068871816224206636078204010856387342537309408303631745082920169316505381009932209693275417330902571676992277661450318682003856687192076594967748525413531826425735876232279641408024398577320035608910870579177347770806157227179610862153005254066537615567281414323817675381067664323059160410681376178854269360004681926296485607981874560359218032190347907545662044918137429372858714967649645884684447807468896031303490079463869349217625377749686659346328273688671282857432743078040928677875845679666013399283692656624574302234668845752201487747913348053960542858448908954729785002713797861174283747919215654370412947627157926694079068466804415927496069099775922580116220195588128825273440814979387239586152466370669485043917056315983582241126346968718936050598402233136010052937186724502957335191972120805019941014428943249977457437893136982011573958407422868837435051729292630401919536727912835270338505771133812731286304795174694611154621104141369540914839460007708358674404221052618078234969181917461666283361541084404818121361159098079172770480996770216834023065427455412970042348189309734344595793481006455637145457197034558435206062308321804557864029973931814790362416747429942904937157761439903049811897491585348614895863857706950982588103837533046783259847827684854801505213772651732564244182342991036642301439458968558747694107681416366305290999660504023741403735369275289857171768100787230808247365199283005432515823280704496200590533133558555603474703109985628471501217424992633024419146687268047615599384938040908078935970678931785720485227306699904090237903212871907975409609738230035367213126968586357064563541289367802444494674005384999449211317062978010883749385612108395859528320484652048371261094312095167181501636942009213175603922334302049841825395790766467473643552817420746449137150936874130088899125398900649700141350032015509465889655690629582488609435031112002349468547030975947541794857080091730401010752620014930804621202207373527883136093690195168821085997412265340197821113820621813149414299637922043147017252037589048188098316793522852073748479149146089612542107601255463206950204803893537138192685296195465043554743241283940887727434314775438987093361191712784479638289523160635608728760900301403286646265181734220226930600589212018136296547353884911933585981347563987012996590518400632689567100630045717870850527970004258681448266223670234709936439146746200996148343600073659092877209280617812488748041539116559800134485698291895753989838772833541432083371956568266773967618830486450117928575863311510530126910908177176552370322274295586710799107762570553851474986757513943465800350947242804696838274436491081063011938307096079214158306494199307300876806804587437222129987055799006420597736689043114516216163365855901404204167265112931971830286624979166580602011537992238701344163242530569379647202498180122245454814277220683668432304509961958368888870590394320866646051667660362858714986776441469866334968199683913620266917356372233567333437894123750682717649013899784776952329394667274439378154903708395012974327142694631012762715016320852261447583656760397345883884517184208800417818685578209739977520426272335210238199981569818961772324239301908489679559164664717501186775882894864307695372708014582623239895239403060942913312599303707376522338633089141142388247262875832196398126988902646299497150791297401917238512504714615918197492574797312436593168008556787320036046971861985149746269458692656029627382258553980144098870785354558120830284196964228412767750505731713876434189279102214740406512235129658442837519325227117753282955977922909035941588958348348671581794853676731236126088616717810470993472595974717471891644403727132252362123976299441331244627695129039352448930563194285667161616223136821148531064641207757950790381094400553974253696974673204399591925112046872651302685414669701126304997341811820913278055063602140146485285873513825029264965342042558072149864957692761484402766266263994697693416602051563490590746032892953590257353724544046279512027570546662705511446580507258061411619764254298432992388420340607752644634276587985588873765944620038696567848917631914296249299797213929430719513766469676334962601769653197504082021930965901739046282697532201380561158389581459142268132225055991161528470833438033581265946398804318341216827026300503234592197027565871195733866916692098133660204808505773814934864501657305202479350610790408785720659845008708421630021845959133781165850855006311232797813696251557247032351271509267750345052715924398319863467950441628392458554050033402330134043737694093522673764527259589448925921261968170895699914690542355322054151275707609126248332316688033369226161013877804012830301301925393619784020140390450396709082616661098528707413972528185579413885408121437564943047819457742728766795440125566933202904801358317874377937878656767193783963031046321830061494847370172364551009030369185042974045981083680923103784224238005397813687365679951209404909337188741483191876324468697977233744972307230878224438358842639953600653172252047623760806778366756086754648327372069274655363806775830764849399134370305932255700100938294591142179154811570158603029418049128399803483153356960893081236391464930694496256166178722705382461266819128691112391103494403353364813628859987496713008671727069040092138580670862132028182119384872112615292977412492883678292633005316749564387948315515842076598251834900196695937663067190372872983712634022325793813906506454314305804458582120638553205671668200158673444983615090882042922490638401411813093657485373062751595331719500680769001496992864804745329948951767174345108380580355750576128096175340076655162073727007007218257880966420837109545250282650845616227572144317520846947311426845850376427120424905803893145198533550777710326172727005937493704069183145871550647730084279744797032365499235256671567654285363556288261401056652191311261396905459748675203489739809841635473393514943482807599182447465920406512797213627267258097448465013524933368618964502045920188530577460313744148409433997930073204948339542185947570392916883826945412972185874897259858259520485361626418137786020579777908953485690970039004164244336039801962613819870244248512551221191351101484691441657738614983542360810312215878762539673759707585601003023089770049204267081313023848509992055417677269608274310128959398657059732943688390069907725934633937216204934795371382404881916387895131670751968195267647909450084505235837052663903841590462297246772092584417532502871790651192475093849114123911356387181938701703017053869315389849010579691171370193044253632608412243874344117394743954553059298430460131137694362191257469342895329749249093857151593255037930276060282289648584357240826252800203449757533101669010865100400630499184462358713346001792262978942278910224839409436012402639350860074124318139242228228512645575299762675949497667302873348262321708486806362339345026284538165816991915703813517700308301378760044326266399121084342012063466731756485242026326334063178565179970790001332869198181003169132920922063214032847740745433941262474412844967550835562330782515692574947505882448202009606212787619027552151968875808602896836289847055381469428474335399054950906519039689980752197085315999722934179226106949566785107154555982867130201853910138828611371202160969163360574220507333351061502593223984315286399171353856812676195116521543567028667671818711242022441348923747928907150584208637326730927059055573831624676625433098423496998784902574252265784758647155832245510073437392209482672555841562678125613918732135884994901877598839053045237742988592971200179990519411641233203724986019454800739554970327223254418516935183010538321664713555873646948212400478932701088145907667363900399937004259724755848321203784761185197000490279644853707575688598483638193249477912802740108085945546461786363766645271777160096348686376913604998627211534526366955977965987544808603750369500492351278069769284289751725412012110591198785063117402455073779084086172749833417631353449656077028541639677460389386427851548742001040597604436531696579182970508489538828811498192647499628857785271776717997829074982183975349517822418812990164451368989345040716510739406751864829655486193424783867110859287650181204949512893147200204798237501575911868658277861734552829708719365891305182585053720719780080761538638802505250765481468595780697666285642893950895927606260540913366536706428813070099909850725266953372680813481794256487910875002409992526254336376283927896170455456060843068949456048955037023180203659389106920413955916771739931530277248296789418781543158150268301147234626424269551086827320623040907552488504656398461143807974018044254262683605291124266017635371633173765641282393602557710803732238913774500044038003055434652339452318111978411971082869532668092473580293677633803314633748078154570644933108210390626659455900139021732567150030600857382920323832580541217346397003669239067698555884374531917966608167497477573316645191141676780960643744424005289428541725095145873634384608640743908439125242428828341946128267248990421554928080398524401466054275405478755831734848292477819090108371661042862486381456284196343104178679068170040830950085371439301112739969915429747043613584833090552206955372203878234908026645777997601170382176718112091001295604093655205312869697995147919117719265835473885024329958895765698663513900647320476882164242774573641477397762311179438236220887391655608078774275793155744133689831883780308102169443434572064726656310186345907915201869502015502386454116177375984554507448806129430222074891848295524260612098488543067988767848313438821412479450600190627587843349359536018890697113421222316514148614739863825175390211597900277550691114767146726216009987795543019887712932785154934215783684557431430889106563939606629477642545382646610919519460060255553447152719190296459353158162410277996788157474919268540405779765345553354877246063363192546250630663816982473569215215776995976199088057191565810333330895655274920336110823372588402445606343433495538609000295188555031048084727978804076221542721771684393838254193975473483465711089795621120517469928626686927739059726179420250799544588290092447529045322101561481425861064450935184338813316121323826223362563180519541981438357644101949714660822797288931196314584685970514152048609192266473879284716595783649580391477764739168823616189888970933351701413829677900982659932925062854950846296976226268604412938534800563744139867090737126296386579603846995837973364673178082239417886425169569079543238840726081749987849313750747563295493165502313540211157115653224318746430651238115463119736733691292150143612099883758123967009104903648168518073785151644756626816534913016478058988810016706870957788034802519758039935244225444476662397910088368721659869198405091936287927348085558924297498679562694055604230570733476926430092862883016868677145701817999138238849354981636318921316966821110516894253022644098368331131324544116015586949255248330873602842051697310138495036188163291884471930839030781550803374280909578653718769739592130992737679398002541473239802405421715696936121322001910822697517677657579664673263030002351122660988431238186294011196322376414472994490195585211233138082719765280502854593851258532903664343628542953964681651576694728049513756410684595442883088283359441063660786086377770184018770868891213869277451515995162492271202975889911186497108104695353193300607040546592095705087995509519326598666567323113882607897994998400890388698654258331434221390242759656827687856458752928683972595753285154351241992698452658398933141637679574449426675366940263925990435089813074690402454090188133459561601473697207597762685517037122006028746763778716381310710140484357791574343607207481828412007645652512868716150412187360078351522549976759978886943460048478921846678992477298423221690001632836494048441748358574749995749562948289880844545432974405818728945575374598052601331882546034829286403164521780862381382044539049879414966357431794170806631297855568094309742530561641028866080802166099312069902931608476207777932627405751531301029022952183716247548774583996364804798569607811102689663224025687695201296192207543070227292751242005323013270235218743181748146981275133458649728399046186826590264254803286906617151682940494889406314618507411966250468237849393528807461633053599585223167666190381571318057278304827272901456931359920316127826617363204710740488103493770283516017622731886524636152507906673695022215847525194524811710857174483005630438725591913106056652138969623935872926932393883022491523811356193580826617367110586838816331582617114177473009297588686405914074093417222947744838713194408134310716764361911928978246540806478919392505242901760779814903399867939860905905279764055319048835927559446996977435757050233056512539540586942560012356378770142358696122660829211867876637486490125456427098340191077524297521396716484361872829650411866317586821128228348499719178545754922079898828269225330697943369146298258199788414406357487101265298377359724346822145311680859918556198351761683610175015429444550058971941423267384846807059689038834480269716592164646849418711540607952252110465474421983135687759658696896057913770134436690686923208042174740037908140807663729454210160122513749696716006058441508706176291015989332340342424469338787874612647659853690278231185910435560534680620603350679292252462238162118321086774751082063823561234958998511818081901541905499707079759915753234580052448878310400579627009048741172445879327321290425056770943656526836369049083062416885007383127073268845941589954386464273395232671694221025631318060667277118930656353472684807776969732606843982701436889303302114314460544626268237650828750230452499451995679289359121773389028683996273223676317848109260902027599370681888780223630007266322433631714884596853686847389203723005204437077424962921808051713239082415492441582157363871381217824837686587756245896087818103271367574242309064434549238921429195913439294983675467547493780103417796918344161820130770907208618825614475452633040927730243169691156094780143833035698354443548485107563640327043600013985908185634204189594485588534576805764633883075568370478600917120943342451726635238301261729397282341096814319159809596442883061845265332735636166604028219714451836087110936933655343665819692829416561265060616593336763384904608699794858200923793308500661211548585838327696748344001197531814872464471228274027099941473070616938993423046108165055719696663076512503935952284205895874474743320684926314237125105067441452658615763219162967045140342939202702865256072082046439045048935764934200771112326505188927363788223835883498259891979382538008256566250652992548340504309907391516685141381539574626109970412419512063146832243452151249513152244904988360851567945081276011262661579313267570267100585228252143809903594496562603016415914826563772870979023653091203408978708053090066219979916485611501371655034457063052422323502335764725466208457973931081309656198760384039208469858296825108658279801214950086106291613829815894850885578433319715740823370782139242271769932093120694389372986219995953847729567732091608419571202687609297541084075475053116803343044149645257502025837009076019809651939272684260663657097757192410827563724281423994086852814900963562524362102824416765263421375966632531316183431592253231643278937200898695152609788114565372205897130563765125862163732947254392167456325402646593242584182871670133366931844255916310693670053044408391335172323224374168287159104069341945093021570629490689378679819031503235398799026756284262010016228312270654653649800728351850114212380962476750649727643122373869920186048603672539037371177592888939664699955792474306852524968992664654001201141340432041425458779954800081141079399064582228797445549881646581987330373118395194093851976708458848615495460005050486805253037893505485003770992624744867824495176114090881598911289828595579974052592763268904459643732812722210694578776210455343221511187920172350135095813813951088946356803538412387951778192839347962623940313705262354873297086086897328271371806319115042660902830788078149520866011495223384465538031177417956383458774099198450263724736112370014035108397581466314506698042683367438419196908899584117523759366214992373592462210567076315822578567803509432095341021457108322486487600608763901070437534706328319646268577508417981632700717392047453930565045635076743906457695971319131798146616512168350641492561023850273360692762501591596673977546403483893368759762029642304616994307209712591428320483648343151509752590996157365849289463651505517357506592398771135906517286644783805486856675787076204637178948239034985229256465278062868570921052499363866865695879299873222073528615895590523998973690475973454457053607734403868740595703628856426951882006054169681225560764067402253955024919914740853799017861258161594274698915446679927612110635636478469862185135932691459089362434834399909220656250264006794350605961483250980777072711609592127362964641972891289476034092882564133439636108539012873935250941422605950927246921964580896654332192897526597475637571654654203307630669652305612428602968857351303754685093017653948342804884321845450793283444568311578692727850133959000226365931836374036639372202287937255003659254643741733582476148506572183632511400399077457084696549133717000833108422355794050215655439241809708502122585008133930459805696833225201198256912028170272964072601503150729615510936412702711731964873211615657322725439963553153042218161993498420993175496719471152962611224795097486361368791715365811281276106361810405668613324842555811361084611602203196470344416402551092383220063262954481983219520824899895480195978054356076630502157613458607855774766986175651690422701944700398237969776297723004636809838174865665392414413639233860826721970685577342569406223767405836481646834393030053304989082820160279158833480453849238926028633704050942774854421966098295484468241377150487512726856006539415747728065160790281369018767880801671072084804396777277015674814231066512638261039581701310559880547249738702883434530857062532488741483804902455765653713197823358582516373385902147247545862016278443097993319336029928052906276365385174290168779370705130457023665214380664185661786265220777914000224238359087509131810944300968189619480913115840820472048200436428293288606140818588743560206343222674367622111842197242024713007473960951943387030856819210000447720734880807605556068172571435682266229379390797403596582475224306729767109859675967223346622434404364030073558914669608339524067826248665480544423566663155706722592858481574157581524645911658868113641058281385273709638706386462972247185526179352665541347600437626629553231105309378369119992738029153922525006634570069478731377336316506506118835011395060724384875062163172243734573544467375454175987364743460206727900324147835928307374581086381568161943633375140356191290449147505702859892992912391649458046121134537310921166371248324168969772146502217231751523929871730709479452610894797783093781101416048127965716624688382601709697931072264510845092899564978089130782201791714487868404963535733552457760254440057746774589816280486150096362734135531406056363816856245313505644483891335903357411899646973412473244937614926358997634281003411559685796191411658533997009314805723389989000109526709709092276550082210456280980356345667155968037071559050188049700563886286700682246831644267014447423067919939124100240811989106508751242016681944414782254124344951330543226463324943758931960033900810103405621313985743118475916901231212759033593049462928820895315606037233799180824866634387785422894760701074439684430254132211531143802297242076373018088709152197881979747492201101494888741146091820788215525658406536931251222410657694719266865337534791763250768866094570186311091204361055309497579479235916367404795571018093891655515570584229135389002712313453195292787403200144443302617055519643432034198314934802255594453637919653033448586716938329434393961451513259158308417553315889624775218762358686665337915275818816670686736964162198410831709199765667385552042354454189362934303649915108159657913250869230676313358995799349671029866863810170625891389094814798570397500816341850542577584145401220003665952520469321751955785109246817276487058628606131460076271521696404038031696398931591636180572786912248632114169201151931772063556462669883348364159432273202624695531329239553906258215543923549824748134893118996056226867119524502587816103718177187824585957789447440736240310690600073115633590729003186343923552720401635208772317056292125139124288169745217963897790799226457396873379645391848658667703702219776220900620587188041153908041953021399843758454383719613809311314445546380227618336415877707454069323366797209832180816664461568388152978118436003496349318563558176156720914565272730774490647400912613850092237918475350493066372870122577202711204091884434343379143694026370475573508349943450008221988995149089040865052185842308982257225719623658426088753665774880720418637732891091772048201709328446391555356270708364212484201052366118611856202629452342777398682333756129493637720531851002681835573687743538499034396444044029724007359892867454615207438868688940065906198333124842580688873985938625558798573402733199464484987155510495575679970379656298396588108602029102832186353004724086345603481812670981757940078232308833408232401354980999410044631923945401553372530030162896623882671585350655429798168743134627822643380874533693858816321314258990791397822390160008654641384434685055399975259091851023819632680684237555244404509128656209921028950668328750963210046823450049918255667716811644182069818401488136175116946196712277338997681203207252163746179213464105751365366618079359584925522334773937634787472302395345399293184984428239681778098661781119044898637130282120581108604334347217098229051255632766637660994696850772209370523298575800148485846802937920248603743291480559492076933615927718994542182556601445988526023247333848843607524397684097562816248587307921542408804736032306323187939424528936578753777027819701615344435218668290832537893766211382796500546657138175400667911527283765114208513764763011212423237376156335205564625130574709188894416963716220705922833061966341994752689239924162681545211682511484768490464900588897580402716207345270715898572049209732830864175229426539241323334272449436311653826636569083876018145223950857521412794439161376283741152507872355118161318960807337823535144678401683369179118922416418251245197251760655612152143776170391413751912618851410390975942482908307265083455490960180763968888247873097624197183583522078165649696558711603596002641785245547375551561507461441034091234398875676448745133040425313237249165891169550322659835229847531784506528324104545774048035459225570139006155831589481362294052725519403675113032041725957208476715665996424801325374999943476511138197350653019792922103561867785249393078402609850258593378500977581004611120120983861725976258945807605328525208035326624445501875747477202246406236132644821518186651747781956273665872999071853571582250338515652798756093684781521248190969766328330455478931036459923348791108621822436984839223277567442824868542098676249342970139581482512578041178115609021780894672068389600737009795019606423721603324871939412897092040960546749312753845104015150211418687981427936103122469311652112080492583458273786747884381237692008486556811268514214551048485068015486223031198339507417514785299483422801403400370970324005738801727165150647301410160593782559728111895447524111547432730358730671180478170316978581295640395011033857706524619874098427082314234516803673870197246809001543341595974979487963871204541665126066929092213998835647632016658244051069405546057800366310109737780974615734066172135789077112323813509073953524586989506180627113607296950991649235088577396327709375741637794769651920346582649846500921018923004576099449507504758157827048486769296782642235569837460442047224378118442298834944690816824852194755468629436471420259470596268891957006858220523104747743643829650780770959871624412229954796578066594006219544060529673581402428580898627188389335298115708003081938917917211682021601108218277651554742797924807192005486606573047718124128883173055046092445650275818209429712085852813818922408190585058096202447896118499580608513469111272828253682334917677194754369943799424342286058487836554739676899865186065314248384198106121169823813573854652557350815073848652380540381059094908611713306937997892076735745335256630433046852932459704546657429784816594394928385032099341448385706731433914075995721571072173657787181227177136058238604681453013973001175746299527050019526674314326274495158268094738831881141457566463785154917757088374918186508804520081985805900245156866093974647590203058020947252574673378624264179212207500008359864385619642263497852986974965167546423631163562258280562199168295547082070303436561008959602535240835869258268237824709241228790622416205945840097295942003720331141663770957066210011875493000088291246788493033068866845144869641511126754183041162770432530669308663882641588114335765662371009287809750308592040010168078995335496893202769136742653388963666209399885403394933313068922317463603301297998195958583848468037637242798186558203591503628052145014263726097052716420438584601109202435858506511035976970878422212953975112252631285522047378499934333382916571740502462891074650254787070347687381806370889260584255934599368729858596377065264811901671937823942847426238477389193432517632029651031389858754620427777975652897962906500802535319355597563919383382657231319586559784301758930258094368888864987917776668122130429906902851813152162773097017846463908161104590759081112336132651974368102114842320610638896340623785212717376424619167523194806673049257545237112611497277474284546228475237887463335884370891831928136644804916775469323389325195034547780996035265203730685518651113573404272009128725704031565464641810623414728934341781829263294073037615297008905591019244134290096268376374473494269123915997663083012089818471099057806183257857848973337323615378744619571830531663707794506079961218573236924137162153207727218270049954735943725621902297080357060171752162568916818834620476404456630211238955070777199849622503910379406275496281076834070209311531569208762311724267312526093847061909688404899713308973329612709487964593138019291996966755754397941558748466535349685149569618619787624811744738507332749425719364448386482728919334815249421518358916072636041161488015503236928809289804561466762842541223580418709056047368653036111951536928959643192267738141448712268835274722498005368512771182482121697312066737757068490357401937564005824257377777918348485317954303087371393835794172690040406147638702850307682940778522094483993354722110195623838742357227411183519405256786611861976266218997545269826852315801860942344949509198492399516221190882719754378377501283584254725747043295674621389940451139008806968685698643309754899761551043142538260822919769131024452598374449086661083839238164750190835734949334890594084359717549393554500370487666246327160391175849762707347388228816113884448065933628917757690288286215611014887472863184076379340941729616210958208303965544439067773123819038247121021817585523166410899937846472475201388712304258062708342212332673871015393718854394504479178875420162434394760493446402729555179126464611413729671365187176903950376661391354445266355490168998619532934249371829527817688713749005754345491718439372229789184119431986698100412456593888853055054485567656140203319575582583384282950742334249069280722070970651876145627372263015287864119027076062966051626069921823917790870867025864253673613975743696910984897428327667026926434285514372320401395799088490003349505175952041373755456657338230034594840254730281546918575399926023997824567870053426288517787526479226620730766098819610530835729178739057575469725460047681328461298767472366813979791088264977360493604797990998611938497707788769969091818670240226277832667038649344527805687324078325868555144481779517317047159489865925580327762401880632711342730689434561115188588053238805797371507035796064791572277420727053824880154679057243435514249773502332263921125100256660367938357696375993199097590319401894523215283250749658822330131049859304995976869792351219716820497259571385290466042859856573805862574810367372304644681835895258038175507725965492718590686167910354385030486422868550731952386387677328692261874890487769379765187318330587070932266964987733996782747786480803646322437229791516943631491807989057878146190326105806228729844333773826672088785575379329940822858199261624914448137540007969223007820459080378455038396830948515661762205207347717512372069531068196764210348612742786021038141345951657890933658522475705807808726112968581347368102842085525460622402853403872942248237480025165059136950481614620279183069757879828211933218274478048603390703898940528862836217674050870790462627487645101302516657848610477940294413993679012548187631064624404794898748685854706078240531126066836905504933884133950617581710555971990063112075226824133279038827101547498436052550221023430933426733438895560326680496590067091785276195961915648474457053250657810916300990774080321528085514450281399758109821718683125434929368969511406935905577459432470008786115778730979479458366458185658543697213451487376523300640592591510824668645875999583234009944206175192041051002361387324068232477490843911022495244977164456444473032990272226017779664148324698920262858865031638944929762536404424385804195991467251797968948778846800857507500987715687240961817029959383817615005509995711673960751622553849769979756399776563144556528618188604290058217098820387078046303027134766862558019085643863795110980633380706192071946217440342058653782284978731814958725873519813277618737660556588158033339520232642456266330670214508392124313461831047045524585516234908762458593494775171496597447874524851770145683551299275097317243639501638002166376737860463917607540648206762278561452206738034708950250497198130036785236374506660334362331221745129381210003554006215864002821141656524713857662390712002094831556473513756217068647646029298060102493788224828905633210608477453459009298451387329071593815441259913009947608758397399442455743705801679256245071332104928643889231349746106255120235908592292914941101834283669634863672135257876527781034571637757494118921162651299390369868360236412472016294256396474068813415010235602244307311481230750165898035145046276797498584436551292434393685148348380293752081960010139662780197117162253753333176408282365052289713852356094839801804323954361898850713275583908759443960668447252947445622352178579456989392914791549257150580720812323549180873579250749605311935025462532111314703353651687909604129979222501219261219337646820788896687379904833212727255931029350034959859730857062802907183527164008234344695197207118892687983537963146431935402639385679782763462693923474422247191119876931034596633706616773029222141804180919765285521941986924806275798522154200787093542721584013125191674440464161188141292194189464324047557893737590779328266934416497207286071991646519570331090627813265030305558929397961402845818017712368373741893292820835057429159885199879935026250190201932710328206291897311648208151950156849195182244754638672299818772585489127365531916803771521883956284000714961255590673024389967193098198746109908224841680044512030731451798619050240912631455149760215440253411846135714904395077924783709305429765833882913689222379183865652748014896766644681606668040604948170246753085623537539441043894079416266530932768604940236704964119650639426958907283973183422190764943177526036122358489646629719177057795432310123792524013142307449647372394408974151277464717377043584105389165850670154734588316718610701989642666929500502908786803637039615801145624862804358003725798026662361841550433070389498649314549697617253634653600916717358761931525048257736118032493772982089186148613902212220373741105074220543222838844125724179385437556818810998662068752821430339653282752356631369282432965533978771874605634101642761158978170978729837426710531523427391539439921205088405767293017737688158545642956455156431320717784455998405077629153024178655694979406579929959069860971829842144003850222280973977737859658846866264432972835434047997795930659981123398077591735561788572192613210681661880866167474985933382131402096393376983767833458442756145908250197616642237090796691961164904270969809872375560486387095420198947395663317131822910094385780506632583384241979288635973713134829582289312860531158642418119929571710267144615479067446413756185949930518340295566429115617784506931248810391874926731100037938071879323787521197612908451532722780472145918895733225266364397760104103959929043866980514484724986353641107866539108039763724719494238485663670501191715989779710816404118192120482159512926470703705569937246282165194618938747870080242934469351052966775624585626690584976177100840364690426375518602345681337185664392779947174659488458096576136412531681367321127882069357262934841182318373749495424600076085272297933057421092157419336516545898586655974408399402047808718869768635672982081774076975438436325877788282906060143968054504539685750200661045324250767946858231359818552015056344466948698222528826918122451955338342062557628082727870914292706058504564587759353044820022914006032914796571909083829975371093050197083375595301764130139778547223998748500869554282776461917806185192232862228532985311158745748521138536046252370360288596547382485279122628443958492283479967040435047581935372155793676985171735155023122817420677827334208772749140636475617851531696354586989770086095285435176276385556641693513341665373425870776065337781992930543811662063205594759867952755815129071158959012411633520073793554963954156328887201588893275936310221984160909219795996275285517040549856647960609258673841380486228439661023023999967558142530982388456810236993169948236525595660766473110816832670453987140521505125222486504701075252418325861096236107246007029726288321613748722833865309691234218779553638717470955871870139838765854345207817625281666129065790668858496638617381429140452113593950588882194655535283657299454785267234509379463717146959939696717593061841913812412441408143741632719998748371155696025650436509325277983793842300546962279044602904487688888581469262437267028097245175782603378855374295634613579609808530170489765498485588473073353807957772126808500808291159736870711583049637932668548403338950660576550423197207501887749053122576909949756874104253558137323155576488448792894292179729972799060718776664042400445615411090196703967317680365524593888223851647159554508797798527176852268944863223864621488884390089413388114309888055179839518365947752340141512346291266445740216516562859839851011771519481051599649069568890917863381615364795070214280706907570283742610857648647059547239724254906447651838322585709687681755934547067053483613254686481626551098593702709808751177078887570822452388966214076302316837764750827785433681172271112687428469022542651225928378372131152662657161431884112381268108987262211507513354563981825077419778496503412376271430050784203978726128106561648061209949523160758921786598148802269735954103679876633558314880791476288660253386669190724543624965846855429534882182888342178795835598424312787165579230627505813383879878613286528435250763765307382902215797757935462614401154641071437272053255322602811817206272392487140697392549264027175970125546890010869504111957574672718229760733349679502578194153358973325353520763505402344551698810518825525417839548286351155009842317673915869218048754293808220388923410402984444164105167455457583548264250168871262313698541533825681367794047976608175337297857500547070180765270252119580169832176742584309757699102694546818490302499482739784851497581864253587892604811792970492592775525409645775511550388930477745035836573098218003337015976956277808756587276221155496151797505816908685993542182224467651626842486781505199817987017075014379466701713313259416568054914726431698070441772041290238847166944187005047732412652272861790796222789692025670676712978409517336170459808991250216130503999596347991439298506912302418530208953173792563539229293980477627932064538792344660179033526173726848666044214538671797913383849748593925704146909711273817787362810813052757242954769629979006591814918482527244084031868545561577622666196353084603296943833607710716868045016692284859933855608628325007155983365368570021469027142763171910613786320670829950286301680605165380928441467756123088669271963070504507336145447186202062872515047890645145509410327665060639004399085693019731264262764285090578546393052864625243437175234099977468263536513359697557344765912735117650164917785610962457928289520441252213173068340339314681431908034053896663165735331185015919685808629023167029638615362371768016778783600947399970175848985463070583143744429601963446160151227942701976820120246758370073019753390387057150257492257915170436518860634465927033916922661851683767382783086631378874161671009098063049133889116424889155517787174764060351286617268457256410786350350013137087741848673236848340965795873507510957463242173642986906978671786973872634456794014595086681342810489198381272211238933484459320086893890709157020769903931838540854556196107412159248415342281562718510027827129838083873026588686770687731617006871131878771534459085296113059962853622038922710516433675855233413870388016229863569341299057849694877734636449389997263782777032986368355472502774835399930617662252752258077012081082313491637005473994137451958954137505778321982937924661473466575522706083767186938951502053977982483220944450806882522695715353645899178847918227710341059919506333532687806476979545597494804340778460262319725029600898787916087059575358853724689722301554677651250624373812190072489600602001167108106406142832934514712550492102546078501574368397194031984848154266088259242371558067214871190174083965008369596203169571979769812707088570595211608408480296156382442971829952075496748822121335433881964150384971036323998213528852431815739307527807721636273161055003446119193695043374582253540791835031909391387330968485626501668709157094329670439221770082663068590855082961503963549394536035802874951977483459209350613036759970960563768931365844226415771923177926700863784102559068501096928572276311463018915786193856253113132004367449948191752184287089194719997834945829604067560568974656276720193166951282157083691351914191684152977568675449839527393730239530575018771606828572970602171578362329091035116622506184658715772861612669240272849384418597529111381726388145194596142051212836681639217976865980957414001566026870728433036360865207938858951190866715358709501008484520951178550267651256692776297607929345333558847195797478599135554325489310489239648263936169526192634673724604836720955837339039280363646389375773179376667986521234241057017230931715351585477829380079159273764401136222256573317620522460779072817365793712552159177893712468332783582623613132003814416894207630488436657777476414542460140030571111373250143098711858614189770395738812436582255796028110860471970555355210043998294612334769776763865057003603000605274838056532052894078743004655340226598111764350329028797857559376140457009286406255999412980456862009797835845204652188486636492547318579205095447242934659338848964137506065948662142250080764102171224817024380704311752776096217728813857687455484569451394565503155048166901650714521293328538927850703791155545414152490727479879552719350397089776951397169647877651318960439551201576011377628978524479189966510568882913264144393100694436807685160358057376236964956604845987454975439979747192579415682202894397573478196372453877966834167926368588116720406067669481022469977756128991042971101580279463109060076993905077980555081305765467286769693807626623856944915220385993431581683795637947263057272582089423663565823651462783706228955317846351008195099597164865777316481824120783327667372156272061999387883145313813715997050758416290282907377137909179669355104315700602147744231551612017552473037720884281008694516163742147524694616134548542184601145942993203912784798958550259149122503904539657551333376840576909619951877426659534232579694763058420893374238199379850995095218837586122843457048520359901012725212738000797234085013547358944932008891672557888311493749683948597460272089946547062637077582792474520688820055787369522768131863189623680049135880840860079491964008078305194800413927609970080237382232557452173228600486412668640589519277787988680368760969001219072321809189048136092172057522686526380627676368651578675621454158685998742890136442750730247201718752904158667092881838348523824073783746044721952177336386853784013316882850764053131742114177199561659402904417876551353417026321329967176350691244960014519594851672128207102046329869365277619589206906517480946159017631615034495477619359836360042316521882992829731902279791149523143660827847046802193059561385482442812129301412268509933681920677384417021082850975544658527735031698740696313191269336298315820854811189664332546676250973506094755407058830600700751178962511630499441371481778505983140090005518795095892392359461179172905073344230705894254503813205759178547645781321017440565782673800965183850526812110815940508936882441575082673796312441488106265102917461769832569486813895589951092957629323509599139727103618287133839767278037418596395957084407255302584979877543517843264904462256529195833827178308047629952394686441529328120941961368255755560594908372750110261420386485832756902183043901966386321306336651254486254383143106491534083481535709257054343327378166870451607010939424680686258105087665752031457759900549721064864927007358523553734666025502283519571806623748906681078032763368123572403635423110004315096694473243092376118359417680374152836290898913499118441203544535958612467595109160728586175098718312224840156163242925381082629327756936533488226256170310673169023491779343025757011375592011046118461618330957300717370085152472698098222246744358491273181132368203764993303946916079426515039964917379439828578531449805584127734930767531625198957840663118359390991146619093444128313642483071585761500921639565473494628382406356778743362390194726643987723936678783057332331257245048851244201586632858112541918071489226446128700252005314150593154175803640879920522640166568862881647871102678329150450280735098653368042407782778203723891257571774472677344598006836131044681503489242817500179790621974087956484483264147656049495370344973087585800272469010445487604373735750444287414486631942915714320929890348309543461694665948463318286944566561303532163337631344176140892285874460514694391485062983377016853693203689031496615652690959986742460269644802356396966753017502054559000399795626765405816416083434904225031975968340910842221810777548793006740586544679533569697543123629703991543540144798734418090938161747930267525472849878950425161310487679698484393057977064664179509888915147391576377485613758055117052046170654697894781958345297962181338242421299139826428762494873634737888682088813846959524009136576547508844292743116709915617963618838782491396797946349549761123812663506854601941763080563585865503051560691666955501174552963920383198599007318549915845511456450006245616684661806348517416703150300879657767673919035974793421567244303127810021681984649075342561976528486633921221715622657183626655002976051177321537225445396059918512546044830220037839770383943972202164017045353015234939164146218948166532885731222320567727659281205439241291958733727469414884286882447375264497546565971110907313360450933362483863055947396446902647812599492197357499323466709735085843700422689360889792414454248234969019361895738256783652226001620668599498073518933923475445184865378137347932953177427944050156012941412417400607964396090638363615504771126136390793938601338387781474039363014749272433464811733066665944246274226480272899278436615853937112657357424959204075484960452548904616054521191704215365236681009619996493700545636396729795997136159303699562639577049375251450696259719138551015936276212078212660145313246080271250460142873285978120451073382056138695804853357321672490520970254323403211897368927089150357891798404435097823008353997789968407097265670311700039844255289560343097767623140829825330418592529454165074037006007718095351691863270533637515919696380997469406848384223989572589833380805647261655216674044783633573353974394668295149028891713922947403771466179016619209615750510999553721683131779164989991025291217843285289849827228790858082279684789576453309400773685916404582058127159620043096812352479496182254679140503929368125712011370410906109701596286747381865978513056356243007149618419724013375968284116483134427799011905909778523714574805029370246674392928482893894925489241988021404906510841967008793300970825810245407395707028671089637899375685440659843068564321649719881201794658886469262268108617256229858513398338181403848701278988741722691140083736423938874452868500341795622019383485942034401787598237810330516572944746357266502281124331973351245517988574071128193880402734191854192708779432480949909718991773985723027422871922220967648242508316029524609971813280373977553006236819460043357676120184490508364175184963243113852048231723400240926206473381605271806783885647836426811166321053692122285956778838435834367516231974631296157914179131384279178636239624612840328592581095195932998284146051695336562005528772143942932670694723862726467503204160400915369300041908342653870210013198858680233168323679397478476966217485847934778157275200271475414572178135920290297474070183252080750095055237812601552854444351432714523394006775456939558477715749656011615954815198217074052032570914379193190977848601324005780071645950543259874945706720815413614668502815363965194358533822299104888541859855603158184551075369442839496656637156030785915341576065567566710336953991541883104140127303187816960894432967594286774240397379865909760825642688132312957502672288727914785944279397198386495185247144747764217366052427126931981165696849489573978937143582303165359813968715442843211921799220068848779744730285852243249946249569785556070806134832933962282632144666628276690803906003339549042342389963657692796718324891821620945360460991767300912056127819806158734482137947088512631429204667197201738266729519959526152616767367717558179737041570476807289556882503839703040315462486677776905974688719195919774762017855413018132884151628007641794218271170549903650681501073465934241034123080616739912075998490944097868761647478303317542993421357192152121735891253005601771350319069331879355895671579508612041885834520890350017083985263323177314393502414318609613145186174801622134453697516894108999065436491993858471528950304869885778019597367730430556955062678726496561971799504053957131710788508706896933464611409191524690006476104449833163608541538055531547482818147747437561354714129218982742404526320091066857710744824452882127564792397402431284257051533059264461138659181600530170123469799332615026114480899710305896487382813045323752614386744857759477536878097390524053931332624592366413900290957075000789497919044579497393056595427004247236978782109319559704463536670652569139320665060688126899509074266123509690227816661537212474210154916983864289152688380030359933537253525607029818895416821487707755233141469249905571003818068618891587505814585491294061735148946883251069246709594958755724110384741284061491539668986488757119201783170579759983782206198266447884448515275102753569257748212003459093994844714419909625365783582675581049272697479303616103044801436710226218541600498352304486192998787227005450985731455255154226266680877896888574839674127390522915654885855498459484228249992826048591373737023190532301276209807853419193192576433121329466201335235641178413963833293429804834799296357942120203946201277423844845664548103550885930038257646921427298090017815400980685427600089273202475430026519614277552193309330776421846426015526758185025857492688401715378891510028210594037166890245544724907431633531952821287309167027526833337686099977899343414411571834853680444477103786882878955690574660654357026076098085914427511197288835332894280762911292817990330868782204682029342765249052318680529649163438242836667681933929455277546983444770947204499380529779036744592351400963319329533129978099822873898040322204647558751045734504210383051114191031116375090295510239730132216714004856792909224203653795572612432075043822076206292882198370532009025813998898243712446721650725263422307741160480939555028254145337952385256734952433167707294557639922444571451929679224784851613648003257573303692080952750661396396230823630065268330801289440884668485314358935847982939739656688051174938791434912819224134317665683649320050508177123669236781279516695237978070166963908723055678672977870957087636779718746396235430237214905555668986324699514965104531584336165648892639275795914117923524496499991467656646646194245088709018067071977545715556759495992632958253628722821452396431194671989095256432594102897593192271722745333559199684147400807673306342401393749288566371649174821435385278501887131835919554211373724857401082375347386329883863807107745741775150840512822732793925710336606678711155068029668543174482067050097667158625664326546166675702644325350187066531434669785124289940859101447903593616258529330366149838100420970405734593292024858224553523870466478093178776475656250800151283167790707992006117969493035307067311300080481674971692102515741911324470773806386965760521392808274106579286939715205025323696097953465090086070929459235405642346138836511940407459637691768443578757289677875843396825461472171898255260663488476338908297651533002942855741448865688451321565682142676548248598449807345109285977144173866317706077376935937671476284578046540032582194033004441308892733128879093550243304928045997895283949789328443848046558437658637239639694264120658201721681713020205138535905153633346950852858958443685786763285452423751257850357764231805431487275348447812283149696128377390287389543786940501641661843972987967312506587575521216095472677169482325449257309742206542172979558507254099803010146880595578862079027691818735520609360677491985878933153211529907089098800200698826964970364153738491577985314136592349736785548256749452969909607101834969136463694282327051195846731421591542617578770672066150669691202600625032475841724319151780613901207714336198577618422783675848937108523865228186070653904581219891523566322510113782320439972145659396774256858134097845329923457827871154080428355520719273285601492454274942399177728023616079758706618725249765048645676503574265236802129114119074332923340775024951461737040881686678714668218015769993979477368633089845411193191006314940685001884294638702055502195863445340607226567870837183982527056938625869646703456644617382722537108272359317059215948149398546196551112884070481667008119791466697170855725196050993859647813282958158260443153001231124356630981709888577163954419153456291146731483680208523840755598382228939602816836304190483661209201960284425132757223630290234261695463302109595758569209311136152705913397345767026621700139107458692262398349601431960524203135242601162680398613899089273293578708674741020367088674357950362230249596655648675218186632217656176921612210283277304346195320623648041592541382925654091277703383739979339355278428824048908376027618268814170755525130904676697728106075876620785042510193216458977924164118855472965026609429278684217633762084737448941453852826997601344955538536301948883210606513261214442616551889755987964068767487367736647675787935384108303667561208247626500863504050137549354736001601623548640372006083900254756082655848268142495183149501335537549432230736251166485745600834966613721867167951060696680929185213036841941038382764524914849748254893256550489350206944104388864228077507985492829855118329570883513616488050707530538587073181479732463803880164662042708268047801519923365336082534931311540959187312433012440780020209728760474705399366301427603983413024453611523838490635442053448135919364378488721557585814177386411319802338345965358862781290715248720228797586393329644517290154634093498055037062098959678100781845565578504023635299531640988409582532174150485796019333744533302404075618252993786789167873376114601637605768997195457799860742615310331796171493620485715601442484694198757360316139587394607627541072219998315008990672510303813217173589951558655964730229412352969117985909455801674298025619534774409901302222346834108332403574007832133693395743850097727178591169395549039013561891357480214770692814147957741019418848434943942228420368757252523688167911578682489036067998315120756382616993464919578505478641915780302770541745957611851696660117933138314858104627197800138724015911406582066519155463097890968774868091822496039031395606596783568449235057721685140394181617687442761028552630530643497669755634160421227424282911192833881330348347367592451844706393828858422365220034608452332246659875397996666504450215790787442643210065987974989055018955340273810627029581327160899248499088107197736892610502491205418642390546670783182768726615581426512925567248133748917606197967956257943759059331790727366491445894781827722479813218402624704595451328777122453991914325997361742396990915263464475172587775713381409623129857714902540927195053385631022026295285440054864804538383894614408479921244907520590515311780318338490460021289962958888695984594348443708679126115938385615648143129259614299519095321629816494257109546611359369595183874992600797536203338988602360253660968653329099717661739636239646012275823218184899323616072212697589824539096693717157364121953213506157053317856462115319101061138913890408522341061060551204177354232055538235585843476493642831248568700231574946792129298927081059765397155062146344266551897637323375451550820018210565262839356782274423884465560396803208215662768505173155397470171174379771656692064816007431083471210512572085776819993934404527881982028657723287507817293642453354933267822188709248418792663852629446546471530288781601392582789731922146241705530372999392344994015998792663081684144591373976179919516364135651719321328780795127911832968662117169752393652142861836611173114488367118784863143991037104974346805671558636060921393190119502670917864278900289397423758324118295246948129735100806300086615156771501623494214560675393598536009666516703901472067263658882663706812902591217904215233281676090507418785323903596756520238868832801619827571958923944395746894750514745891910489617789078538993548181152818761807512306438998892067367460264839932238843927323330772644261986217812691596283949155875470083351528954411742276258293197836873472185111376931199556770225593171662416569374742469324108655184038692966006858219013009644317165674875117728592001756577889212419267174475800221003842278557947157930208635832272332754177204403731533053796900076894994197156763423855115915812710614987747564609291388061920606218637649483008627488468090347411297993729524481938661725669294959258130489110753140550621851071263971813052169447466184848259309754315005253337465869848405394981295650253135133464628434453111087537828002444011166559623605803224943698515509001356353992069659260874283407533458141144986201067048216655082340287954028163600993469474205157456357430844498964441524317347632189291687172014116940305173809958597031562366468560002248998559539283703063295883519174194015288009702973226450119471470140550998844182006266549857909669301247821599449103816601181877430073935345878471334543423214835434063964574549637522636127080153044865076631318883450433320273319896904366000358857300328029918805620411817448656024256927073393027112892439122399993311684466146637638863462064768636937388411779502931284184169362737701859975662152519041575147517667558275525819235733329142028065862744229267044241158938459576463503809118111929466218036567979975218453036094839285715697463409996300542920574448471671393005365586127846119859474070451766056649146488588201311435398965838281387020688206177163664995423258102011612936614301225560690780597289265064589993719753942797832841566211887477304628979617742487938833921127753183369480017407067365827833612076747155237250432728954123276190275308833141750300503381317281557358073795221658908049946545444734673432354666446077463068869055034717817951982080143653922823026568174997648934370874777657517744158500459600704011335499997619038972757450469865364493058706817845169125882594809475111537734698720863764559535993952990557109608671507841830034625412120131084764380342686181106937704613596661725244402682917937280436613569359438739051399050698857782598292915200568610911904003233018263664438851973307423671231714403338354994829458859849888808059439044666502844368948648450979039531232646453559215851808114470327435001524496225168415111544772870555360995749347883524436147892272988135880919405926853620544605894760794869581867227679555565008420945985032538918341784532228339700734752044775017665514348174296170307439086174779645152941877854866954357182734750718338974989739717876516484265043817133345848119620777653859745874872465271952327177849321177768383225022712960981099235917857546302487846571201291398367265123399822943424109860075619896040406193312427177700415018383966933628738563624679894201700606828422691823161376876877932944891840480527027663912881330888567763230133143838530664706613136015213898027095181472009346176250945435583708167640166430564738045257473855655675862599877263665653756533225715027259788337305667401276565614560241106554965666013130644469270166311736008296424555766650948498580736992111014279759278856432318869297831597006371193588477496444143515523778154300914735647850032938307249883219129652047567970532851898295464880166887342964786826126984548329205894706287089463294857531273037219116158199235117757320170971591337804513872369835982533340629256384939857090047265750563785850746518613839153678337082122031326035738734499917197665900526571135534208117147301299545697742253629914374123779953022037466701667179832869355053444531974346761495286480609463772175434387055051445683094187163913576844037819554674128781987489311975983938123549878254757261476636668455143996276380610508606798279201399626540943122409676850023831259428099940668726879884297496312617667523486467357163891244310970005425558530043397570105986700666868062153156494191014788324881383500387154267359272042109249528526970742948185064433256747193725807099326615537131215024144588691781555258926679599957429371843117506501181767022134322688374163443877975685783764457982753493993509934959237912685801199804102588870778200290941907391705699937626131343650428652055255316682587863232196082617666113501711203306532977838754823048842472291054201030830763604491191082467734362579417068424428295872862438929899549770173584526288303374353078404713555864504789626074264442886162208391926440980929235780906894729918119601533901129168092066193488237351316776445125403849204399497828271771577538287106844986593059394383565143766763985083196793601781160189758966057927777470574385954063647633671215176338656777098248172650721758989998365794625483961323394419274186527853039549075691986229035448066265091948688919673173287642210622987068821259943953874902934179738984328722432285586236899534263123357913859382381955033584999738195115398200310743654349199760611114068968417296402329861556846736196130844004801275821567097096024364144258907737958788683963074671194780240356762833087741359556397144280451994456464912845596460128173828796235464574940212288840693195139713178833292735494563354021978095181443194464115815344234218302143779356351827453870715767568853996576272285554625008429273791619314172781976356744017508168419931031837417032590472940330348005525185553674501167713519797411769513287344127747609157132742937169529284457116634344439714818831574416957723206711422459387151543144215478653712524057315851710531422151602662699741550335579002627124328885693118507258043199338101892373728040784316762719012293447825726356472794619250533732098679779402065036182580204969942312091390609006920898493505431353042665887512905247951451135294835346792775136277117504646390634155091921473116570078151330745711235725897769753277427928993164508491897812558552114047712216800198398860774276722980733917599944767425814790649265372861965432486750967562688822517015129979635825421469828592400309144905977953523700679476360653420524758947752473858853434090263695511091514249735244271044040176383391580600319280958409177282691694762901712439680753899106847433990501719201691016065144460582219255208586901743783758134035811558262912347966879850029225894457509197946786259508241428479025185502158535866049107662670481910494880306262668124252650692274691406106725941606761191004457251733332269063076977256250599957727282879761984079513496675827633625062762846886340452321634736758690621392125135373772480074593372177234636833453772984899058203826086543349105742227856017554622849978180660749816692858971323226794437348085305543200558266915788049186294934261667579420535079504572831758650644667214581722991548725347938258371761299160740418709053927276806352450302221229070256968122696698552143314323145935427367914992633408890953847867696809743801561408224012819791651278834866063108187701940237337855829870303571780060409855251501899970969627530725787400619315172115340779179306123819449537643372965317118884128424749610831444961999615970214473248548930285315060358677458706840634740069887984982813571920541832720182496603548466482191267670647194459589294673730291452174290251477728528624637072509326065966728227954798879443521373921214750363896597279860736155898658568711373550274824297484935427838982555621198571513679580741007786118209062804725569722537611026396982981384718792775914818513765946917821003590220504625024056858093827454301656057074184118198692321873923173830111724093263556916102808149523723125935634622108409007660882082266824900501930186404211370407600845123652735870238280774784487895743192937100875049635259889235963962230044175516423197291802570806970483000477276375364854847832463287358045351737135694164110301684457943506765719374678641177678374623142178495348323448338543183661197224272035704981849391772730190362782949863804310800880338259948613527805834418260163503689650890485885825661688044896242664490922842181833843233392270787414994785839778506378104574332870414030886077732562079549580941187656993218605817685338075934680063175583076618965739911428085623361860522884827195309368210860988210403075379790973899900653306935771117728021273477907779522901447757515798064883829902245582256161360869348123064395375170503069482280789499666208183627314773262038564148948418350795693330778036744188795082850515202443355551384589466263344569946438206159215587789625743547779127574288163960964919186659921313443411590102858298934068792438255659103768242520106905687397918330309670960815979978069302339098340411600934670025535624246554636155852558464398676738439625693454229496875197400668920326797021121633234816470134133063799617590860886516333880029419098468224279644121379590317627917930171586666493524817535020486181628385779080050496229258977638915764399247149822078604901682796026196505120864078958692007432808471678973462570279548395378540949978371413328277473011625446349331332821856263071785149709499657130758531330962110619796848192431919294083501528541804625179650930371567937252998824106684521683802719788706060320664417474228628184025137851727573719667715357861493661222035877954781616448275566799459948754160260085157184311759125578616359655057182868879951134974213112994188532795588900172471449705309155917618727735248561602745440231292874762082228774032077915661761087909290276078593384987614036043666810340072008508113947964480581366163839529659834380911335180067535963838557597483552937874125873941136144097938646807240231190516797009443670825789249069078844497416131703482811187070208801135318090688829181879041870349393024679782476168878233286660340950224544565554788927488152832305926408257917630033324129235400870550603290639050609571377280995490115032956727694459850768729852527021795102610319963859558957582804052197758978187103156858171764009876880579216207940128159633377289326786727193917281668733772119578834841899875576815925535845031648240822149320976721094545416581126571133049798927479446654539081555553488398963629672304134515569168274494888218096191990383023563293316583543827069620648132827514857762528739748925254681237280518678137001120806131439263498902580906967456188711763415574911273558305834096770562097721995030898420253813150341480220637244651219446926892102062816542459870616710287262813606162862606882023209391078706944602908403054285930877623090837790060706741546886034043185444512525368763308099964660927117391955644993817152225645168000845970735693856579984024632170551108014232765410129045725528661273447579987401432143682412458751162616104310228878356168423209431648101193489414647970977667963849214056770447905269233802998760233726065205676275025091571008454136167594368129160534439698510944995169875943962831936847948352413437740406828028983400835717772498939022912258137472361781339514637815241215198541499819017050875249929446754132527284744568035158196533168731049057738400287215313290196731992713637780303854799454944843502162188411552476479713758178521805416998452010919745232077974691467113616141359762195013847213021146961754342636377225877776181870379925749290815059918198825875518392373444117349177935124551751875112084810682200738493531553845135758997756762317382154478431609777034717853067010424558932096598891509915160650821766689946962524653820810560020986226727144373937328553812230428210672641628869379717490926804755263056199773483681393940278324570271939138452193796357588256940977945347464125629778905817144123935872935260948679619516999034069328175268034987017809094490171325711472159149921474135675678975219762959397747954662211334668828452837308594006070099370329577819889671977563445469794455056787575058496677253951882056905905601064965233730763386064453105519471693374083578989045202145149148446495124190496617351566876812586516058508245022063835910579138277162659501363941068132321667732817371933283620286222559897700742301053137656941002422667409603628172696230126531960897419843162055210922143003492041015264516684154398338089669681251215045374880148167805168424122118633130579442489948584956161174182326039983937651863715118234917338318064936400482776996454918812888031786852520447999605472004152132846810237450985827041145165238076969849884499855323555818111612828097955141319281876483209325458240248881477351869108844942955305750299670103527825371376916405385848183176966361395379884163279454220448175728272338729937767396103249476013829029885542051582179270127912975446583723792056972242493461853059994464765548247144646553341790874567054766025660702434357741663284576863416765444645938576614861689521661865061626302196388750567418105192424146127654846625276087994455017819799944411841570584091183618832402629895124903741959306632388152891985209643205322518720111461653839826543236203344077962230395272668038884164501604124042776476202345980913337661391637492657270325406891054321618369906439125943637965757053941658508383734886053616850365590820435095691762988394071320974025921906602623284210588958228207606492432448792562086193384119598075661266519891969695764267798525362951906984601955339932754933806533193624156519592331903729511617352565555824377151889530967710426979321289428835157569342538323811827328975056259429012477001710053854187971222675166888812493029225291771284257654023615878545025747169313570165177307986211536637997063581991753531950281261854436345497937404492590240453079707637729955043511569815564269238255001833336548236874658884217044901760402886350898577376924723245746126991741860049435011845466472096707075089622757792614113001358365326276704493965653960675843551875705375263024982541854308776799991754405147857224736839618004470448388834769215401899844345417058067259424229036549260798590804601156537653711608025264770149175183112323297256264151085751269763624573562632719253146927835876299096327145725240173954526775369394296280844809204051841371249266088163021433545938075740219450920948524692336960584740249240592252279442160910615113095518332249296802665632984755396705200298656118567999424307330320497847335281675403964293483387736149553584099674628786951986189344894465486505903327657614114707141953023731516341645365948623672998612222679288839937280085653099896530764408266896099617283632679534636256065487045400308202671211725947788080202653281610059761958928725913922016731472797875145079358786387788223911570447455771489107582310261956793434362673173275334693796347043282019843726977130418501046172721331123551595700783558132286054942862588182837268413518877125332410395216594344032405460527752033089494677520142407791180859621269779791494012605502475670046178759113696301693900169634912468494936371074099567918044115036333455908487366111796140821463414781865767272599661846826173180182367713073991079932912823383087405385010087389460044479020609534991903135806800117039715922635321159540813436407432788451353538555172381790933702005650893161033876828673355078108951501703996065734020764705855899666281536078913063001195037698772307207754726218409245976588789756198668509483822054149288289727679148846478460130689408542106198330052364741658116842569505217903664276084820478246689916551066347434662622233498516391521261379193017115031884821572606771109330654580093144606409166376195214284600333019148656439455604833776029005840661435478439973157799797014143907363390663676549186400027942115761936346297662671944756510999479397688951497860015563615321290340784001555948828342428767112784366374371694192722469789985686450919623668278138660172691205740940005337435336885128706934794271514242473864142931333598524384235712118994670067589748439318473242935391389626944004393598504656877729754434776891868685313786728624388877190051920282444813764028202966408884582290569062141472590711750663786511563131994786952529287002678507171576448599839300873872413371035191910303825940133740313646927503447781109470945975223638498526040173098889012419739559675558270826726925910897006012596326225902001618700926537193081449354754594156671834007494126026120968075700904092814259247321718730536212578026803812459926926693005549118278474351149270521365699048748031535128822753463732755721370446295755239355706501248277287431468440501714298208909634485086659737665763297949429217156897896139508668898980739209276937843233210992857536037993965928979325221361942049381553440785003045084386716971127350839177479103667143113168065393480647006782296687265670092307581291474980561474591350776666909501732346136734156047826696984715605261050526746277221500319393130798642323822312150372420669715690565006833728199948147627804502277016449317706895208923564188727849604599214066216291455718655127645553381628215218002641664587125228452408503560951176353378948356633520638754359797812673533869245385522936554337482228673034111081351347148740108105469172997133650037347178414186996568985180007525600162382378593690783747628260170448935878322309573297959288986154529772907084624129660513734597242831616147047261582638155758845141399778149214317018713860856740152550342919914332395331556456657272865080371111289685968483456425153952497768093149169904938477358886923042896062257601356786621118271746560187818474772807508281622108146382685570325898446676980799811679543546660223001622017309400822997664855047898745535860695581471385984283621743945086647363412050666715811156674654007792972298280096682885761921505672627594649008996179986291924513993153987716205998851689133275717805142831313365100117682717137179475431312866760929277870458782993420548512442633791209617642462369731809923147367492066983972027371925625377740356831038359812386498251409666451995187522284843542075471650024539998261324538627172251031083791345188592177710813536942196388358781994710626347602614649764821654385650163387121705282706267135554248787791915231512993833175870235361304368090058678745115785823181967439197868777372149565374633908277780432373912227233819344105374508968817777404746639095380611396452805829554484869611087227004369312927699396943489534209817988296101662347859433912148059954134385618628266613049968677558387618121033060405566704320322308137002647641257835098414230779016698506077015304331062519543266277913797851507574464449602206160177942153089064350316180198934803751459763486003441730797672138362313773426145073356830533700174994828977217657943619669140077255454526575233662573920460995729418227732139271867393888325457771811884732724035088767344079824980188514802664626127677575376686607787799382704111889198624618322513200295301984007381503416517576438308437950429758190418813355759362182064733284416491614715796128444191710812083030844994562452512452896679515802644940524750208493643397154514035880919893684426994050905467005872177140482300435377971050167702598706312260154036235203791679787147150488382103331267723447939748003103769575297117754769607408620096937002539231789771392827013996010427890426117649275686369266791583626324948751930792674706489634612669884864981866140615888484228197730812754646548521190532906745358774969723372272773862385731829956998353947393943043945085285494600980360620299808840939518838666242785740336199430918783341764246624626792076458271202718960838453116380980400800424589254419193526762206967005691430144590641249951991638387605613799039630134136149638008290749131579842991487223516704775861480560749957441611744023615294655870850036234820756899022559763240647095348791052301983468490413562791038846976018379504141174886205526594666470946043165421626106929817798576872298856995584466927274430213346590252467795779883970804925455143854856384912811567687312587526523312817595336108599557609395734887015726901898520654429018962480759770415012772367024537003245101184251486459730149826976905670374392824297346099570951224405986698024318810068963718031743835590524518708897466177533818989354021707229796106002613301920811296994670612955457472787380155259506936805725383876574947951015785896953828203695733300983875560133603611025965015418985103405801941953444880644208265961242757130374056660087303374555214357604069421603756931237005501635910360358161903651811556335994294278455651284968312394976230422160746863224756549646898426263208181438341153181830009131966500312269065746663746631107904104647188349925247764972135620643766806898081073642873716953138588136815209694785247255505056946858297029572841555530818212823378038768417599879835306115424063812913141366724069595190293836863917984330717605303575075467832230322870347294950007225808531250341299421699288103204974962977133027827747655898203855970329375434627591796024375335860929097024641558881723705569715827644924569194723467424256650463635495931697773483790075814291834877630194991501211496959779724982512629603772804807944509098274467763442176428973628914027560364776624660940620269330989995527624307575922534288892474212458339163214772279075674301592366602334856234725902662149567323645920200076687179246575598454293967903479279981968618310265969873274994933824534532152118988933325601884420837641622720177414977497808812850409147971341738874045398583417020557663299354322092968982449247963043271302588254012803163496210121321497506350694991845219243681388407762212339222660287810611064729395993850265779166223498442965298638993712729881478039909178506162255562154578995669129817441409507994638205618119190942466845440437639118540489441527331084421028858088026208400519366072820901554787927345399016179143944833544813921359353335781446429425366657096941808395847814385421778253621426995573380135037494373385779870993754503304327527309005331246102075757111670669618504202461605651598356169376615983513173952308918930491606796384087242491685581319856540838518366195297522546133400956042938173282464302945233589201129271569329941959905681451173302751120311215243205498075940426940560878211700509664397537028498667351754248600168582464368686426645552482640081997229912177943527475362444598546782108764768414643193754885844024496421403187648959958959468166551966391460686994599494348981346598512926048075142861421644258549672520901997603987221379128459527015634496493469879265007860762324946155872500620331064626614895826597233061566346267318946350286413573854188162674661534915309873074469719339157336253389666719930736780522530008001229143968500426376124812300014075463480979802194876223395681789086730298201279602122926121872111451895456591682211315025309642213900109199392056527194392253731456331689796502256254054681453975284594079659829524747731135184338871034687442304522483729239168523177088019040085908925849619474868434962304968918945550005673547576119523543686734077000364478248673043340315961659450132073485033167337659233624876110667023147188705898186548331806296535223042584729225433153859705074256977777929533469254813804724132063849892017221041660374621164841055398871852586504989486029261037091155381687348944982896683696557031883098297573905362100961252792792362001180508135256900634354749655930686917151388817248145424904859539123141270556266036495552754226810986662978682068037135597674802213993909540082245673010906343702513560511656854362791849359585811285337661451764182284023145040647105798838338197835531916068710804472161913881903171059802768440447810819802238045424877997691566608279789865578585738619538183073520252753978091119660840829325101335153470098688561323457771488268611179268284838925428021624810574688416649122111744564634275703409991649451583188763069475369302800432782754700968460484921089910514665695155257540494145288076348690719669927530053132335639405750698279034704785610810300614067315846013662286380715972068978960539034800301041356042943225761712417886849257280428198556397709670065424631067140013648764259741380178497065389638413980309702846505985696475711921308842832594176173242267811966343740373858438504969575744317764963959424907883071103374754202480607197995151364258424009543874634343392304435883321583453537083043471907257467484390536962821666419107183188829893182435350260150376401121634505975133471871107731168392580521361626083338442121024105996048230461450793264816542315333790759201592845454278787682483239169720693077147508816159513292627337130787955327488446323242628980490615100065579009684599361046725760791680064243906125868780024203617193138308636336373146944738677170179642470115149732319800380121931021752369931166453241000993445857825384265497954357351222060229675799827842673592299209722653374680067675782124567979858468614999103584227161345019584603014435859740726131397929545632682070544302813098541879734126856048033540493189204433645799811679756493657311026776335266159101712067091754282070864314632731123528087367669580454943404482009375478530180659022292056042447203917729668063010381155722680343632279612671778179434201129267218221989884552883305020977947450807200667350828777598240402764372524116557786610688131673003456275802278114618805471954045624620525396091579310487401829279650290142259083502098276966889333360478647998012134884365224596592707493390849635056653476861816014978694973030277202295437276458261774438596473662127144644114664756843837931101209614049431434608872484564290013159149524105857522051613884690410346667815568972023559227686909528479785926178838882394495854757384349761502466350658650073915716583577926646729469191450761596912323709294324159042383863333274246067056637663299255859578004355841105459223722678071988578214255348797732421868896564026079551219753713334030640238479751195292596438433578348382172824010115551408890452872694664040125983039157970226110092162254402315220734254595723420440572445827152946575527227098878787752889225090891104088028810199989511474563571749633178308473161682496091046519709037000182539647318616263530357041172973959965265087328573562059102304845410341172699924565667909240851339439667749986134485560649413443197206699375945064895813468635072120211777428301074328633347419030006046422358066741263803053919987337016063668688261672723111196541067021776733020921851027569554577473539957129197107062378914883969818399837190190738595413572250945028238427027778892606717960119528288559380368444409502768205522602605398344274893896928173660007549152458384702182206484525017715911364927301697396561097209897664134019223244660022366981515870769318272130570285187357791526564497162061909547630132062682301823931149536719773826055973239453808318737398018705725976485047091860295988538570496139151090141769524663261973225162848342548956254363177415521254183995542199413000449273843083377826183217102587119206394201291454129336954043109297540022253634570310186995440158405282221338952301277098751192366474530183191769348011216854464759301337182832427540571367893444545385724442359346836087617617267898468202752866889988497049440269882939429501558889486840882281185955012328470610580340216830400228451195658267271597053300289768061762567737120319059637771043563946743826840228000684506647511989700260183944822108667444642547826496431820728783490025012288676463665063228821086793301952312128528142228423146578967603851767789406634192663303522900332873812336249436715986093865667793262023327378057902505895228062461740440601164743940250969463770876655542929335938748980530955270297079913897689787202740966456140748078152124576388131558316761734614027965647649793000593454320173187332390131954268983338870632515459355488876091802313156929383908096484151518960372666321851694074281251538157605648864104631067552588817049776442059092567305214159799036895010105109132848438456099549507865326798152355354341893958225400067720464721855011489264589829500830862640628920369735103623331784527850525920834031953949977874793857488743787400667374409956270583242820931833674040574577540367739559115780848982670102158940034680465253720339365130665091654107467501037690266293132397745530145618845081813874898510326543044389110170157275544167906633193798316993239519129969558606722679984027537010913263793432964210315676386618536923627533217852230756257992172819751350393635455458808584997758571874528713206985220674764905442710761259940590023550014046546012741532535876408437078653833615306686159336054570271823761956368098651218230786958499308099376964224037925093763110027160261527693599475035397706494231631971435145504866828137353763221809899067806297248604054788238106606081278543177471210256536496954837268222478526774702965334208893080878305778289672448007291661179795809356784851230185211960036538594744250300303905143172617740860875941937009755926600602394947832844249636419794684941106458714218894846423359558953225645191123853807344658170398308458158982883555961185385103717656693897147049579110178931882555880937388413324784261827748899768045284538694754316739968197252731433166842227089575042913347677344548250872399005163480557973124703122967594553928432189707208510047411880472233640624724307295475822971982374387055539434192792640748165457668574455102769406303115199005747303400351645047495591228738043514956599705290378993865409653783225863736569362870095452169076404999212064056116583486457122055605611669314669062745228027093624598474198263771569806599359597738971712014196260532175910178848379011112186554632538834718866504080591115342863115410999420587990791540252036360756173139525719497034622735489366675676669646272029440375246738676630506505917140199509133568123588803153164537356580088455192706890139592165153913817793264978523603481498306807049203734908318185689225052659100555144950300914921520774531349178089137296570011895664376434243950655280964198273970245740492121812256501660942597674950610270943328954142364049707120700786186537162919043685517076442119448886188679508856695604172575293398654479384484341416416124482355046031382294086329880880376280449072079282517553756332332748772353105982992378091414565785967510593506374292046764360376871391552684750566999181902213400087119400582716893042725404043705263756094011468807842013928575943943582424739155013965863932336015468479863658334662645052312938336175872021324777218502066734850786879439750072956395066768421958932469803862970608519216476693597324231381780155140616200520249717223025430415872265240099016091024906785407215390723237704084094953069588894138105153207867725046822592925231261475746928778224619754809176487894245248171706392635531239954997097526253537716291422962869530308486779533767494347401363336991752067847283389674763611581572635839696792162433930481209946718079033120580054693840635202689390631574925576764017994381321091816390257916592436754427346303777355405340028218676765732921035563298566845873838484245858078916962839976283001075356089719896619164631572166490347500518093658306512422450466163597788734024942895109832286474432416078724396014363362730856588014983579788811782885651657210024824761634586446241490783219181700697121992066254992340126461682696961365566957469248854469728523755057766178086374349143496451853010498618195418635350248991307600584562613301921084517733760531873475471610874268589047052277362594753730509101529955218506721318480519059893764239974246379856087421777080399667842726666987552909654953664456952939094264221567889487093780245898318694576356693815346102239961539072035368715601664017333874868031489152989359063828367157615559632821107768873958939515719802483150017197603366412898667132215779545222812615946355909722885136104999325693494529748518389586362983177684908960200000921623204030929817001924730059569130852372330933544755598072233343124548627274090593288296615307387941583239313140279924135623141913105635700930333698366220415355373105138563255058584704959754964127553287618457180772142030079366651668083057202750974491153517636309008970202020258127969899193265405598677581781051122906111469418388634035432115773577971752326277167208037360523263287294167040522763214418262064461712303747321450635252873133942745245340277641059399853850886827722057016640151664543136017580025904104092333523019991312444646746625908459962505976744690973526190275405428888019213064201833437337903979938791336052691617442797184334606693812838595791458922739261655964187247019589182310701917216612237980051496968711593717239894003359924902651875699588612539072416581524748113812815086174125242536909938600404095570123659203337554571653790112183464152797190322907278938103804027104901748410870397667414397467368583905460695036904827223808426758533104901618860566569952349273259976071224580428617661912784686674184620719481589685619252101538303171289574565188905819690102056138557883606714017160632726073646520412478526018028560149869274655567056583394054600573057157863683085920157221742103335555005868581104811365528784664583929737874086897662466829019163156760595921574949494421338261233785445194159162574987949520330919616119929636473069047746629980665195746835469019929431384540315419996448192448433983953754034596195729989947298511185694766085540232601985119703133420182636369105986435094373952801308410697761528963654954031283177113365041969800038858110825627939017261403374743679468314176034937986437612817065283463398886088184550949139101588041033736246508007299344604701316792340895531873752408270751416717973746188300874125000461108721659135975333403970998113856543250939119476361196331808589920701123585857044382099836525338050938289565243784049648219221651905362765746182192854848541592349508041561704926199906313559793166991531042813442792879157082521721740989005665128047730260607394748466165577429597480003596132422324339030488069576321966001245623068596510368739938639506276754003602313417841023246484323091136689639937002877734425838250318883146161481293368216536842030505034128885222606710551105575744758115044423494271807592978476839786373673140909304713572379888885292639471481319242375642757928712117206086691694486962632948811444882142869661799645160631488185373795378080731516550953903167288398574558283027554335891050061737754320723581968729835295306579848928499479742099990505155047397505842263034733465725953112234848174042989124431210955202731607470610856459481731601779186433927645417974136618883325920321805880777110940539124265971600757392449319983285288518113273628300921932032156937363859641061997064954705873203271900108301205401123399926985054172553973306413396007070194735537752313166783139633442493311165946074645873271689163539351176303890048830540117743548655881302515666957217177404152905052150174761199707175055967470717716871166186361080687682743194056554870156133842477943385256309692616056076803900889542747847108335622814733839822670623079949077648110968312806586111478585845591774489498274376845007847846227118463009911867372580477407787056070764712608481880670540051775878954261047281669594810252431165536538040644266657875466995777406454068489572618017684865506141017708537714886654429539066381784038094456234996645923792380562482270490784364067257915365744867498759015961874974609999526657741322586776759515095331459678095462776853901155627242679585036034280430360479452298830831565698595570149022431756114542552691804874132160390927655715826219028122769199871521684566401858129975457061637507836020117436154756859877619192601619489107212209266003823291256153828558649804959304519384071849830526088722936196061116582436431538394835292653480942027105742499614524478992653810077306069223745364517052654930752161366098033631478117178799219241672220507319523044903053059253831758969067091993145982770464260152906696683779988898469806788892395278154898656917183268327391857687965795495583531108309172845192514005581204759398981110204627384113092161082397231549034458956299019713966945669893386093795409870436063959176228308983203007233387051014460986812005643117134254498174384959875007978191137028665189062849535235633450131198373033414386009692335875646460227566255282014816657281691329675876429030280601794307460822836838289014065766599328419778707323175531273777370947278477256776813971873303474212713937991980696640310157038314095869746955586391533609453117462854742460411617094775271091589402747573086809060543290174975472742318799292203038848531502175039499939371390987538869044577918266373835624488296800704855570286603661853185614625601181244425654763824417069186092346786437405184069586400978714269926019066942421863274684884361850348333736697546200641093106307648697258165440014825720447907317545005313445423492163848250808310099638249850221071083348285062275629975585919685871969425551597283412088756068782879571234620922737673444269238644442017441064573021278742964145878446015571147190132874430335286652264814113282236892991699160615311640280304311830212594350134368902914071836312322316625492956854867276405907229362928646718095666933460743791977050624369229361604129207292023665881686515844649822996259620026215252754445695228079717850778440349850321036094977682974173579686870475684567913616826990757110672749394269263966769141089025540933839806465223730074335161583240678131606597273781392830170450015306458405600933900352757772548845562950401250581960433897699126668305661110651037035411069657005662887425437225319716423309917295009037590540320392314708843008330720868582738408152728180970976283067028252607816380248387138361769869534561619855340332069764991266644418025684439835683055856721118038819846143839082409873982250273281132694612214213581339228071202568196636113376756528735186399642908081846988602379610655489804411158947484694908391920858080944364385525259898685637204510635633448744873362718867358975833675786256274405286486240235603500854522559763318220848945058927950329221177149616659003006048641539521672582273196242553938250647117505640358873214398065764515610201169318559752332410364683844602416742934575174627588181551905332083650183236265435934865093444073294362946774730845015729929989871152381928083796631252861601254661941116558950643393200371338548057285670986449679951965927719306621179510629225221712360445082525867678468874724917620288699847963120728458159625768513279887011818090576506741968880243685826424045761011622356160691473072545926977975847333352196641243709446818458109269550849588642349798504788751821282599971119612942176032980925655479862084309945866908723952935202138529595927041789762946304072576204488436239539266686408774410616131702200088995648133181468720064554753163856426908534761796057118050607428322377775606297528521120980246844215315847819858901510952383052250571937395580921139858707266830333544259046480613639985649477937816117907888700230745034110372044470326655360243732625197215805013539842276076062898901726901582381493174568831219374274280581613323684164512258512919696624214808301809103965084474290628160507975037868014335064382856919584394125655667019809347112511712663002779714814170533872121427736836095888470053317895476283914504332394481867880963626500467826332254343560854239921376884404063468095495421672527455273403451580559467266519926703469678507532650673131556783976789718455791270219457268229639041523933148600559047265699666135825707955885260040241208287263188256233330392634177556662661490958426844758002841231586038327746914584090012245999094329719775102664664101532712787742168035207495921006662369997528082260319652619446252365275688227366510766328148223433056676344226035143174855195286694279922207307125129043220324630495635967814505678899822454724849998076918090432740135191258104286954629475789653467728868467587007635847829546431568495103664793042415162816535788740426280865589779627039103335797454182087920237330868196115044140257825717037820781617724185340628801246879585009711548071792324995262910211200440586563879836074026326326421213325094698963607944804676424995266004396980136010452650216808419794381036467710377158842224684604418131880503410848374020891314389720161083714299834151307184599690534300957071369397286586561216603949575236692279124965174265501864310610383762592552825832052424850098673981919762258993553878158542624358454864153447582817803413169267183877095181455069169110893739750966986246535220523481545475017833184417259125064322562159684996186427261365939380266622717438873633078848024726470195064760220840515719110413309442413615012053506679271590972440034078075302590081565177698451918995804815772065264330155312318011121112785212670627520824324024629656954170110684509549490108843820960505972306981632558447445395856333477757193564829691694745612972429964975091229107321437262579397813078648188948795461011117801759832455888669630449037029450008250805144352857117446429650230946863562079423668254863798066680854409787898361378700991262685872621378799587409777465679561303924828029032942673350461276495714298951141844127778287514125862943973688524929076156273019867217428945256340595958380215666799167201455588113266490156049101234363589372791155671579936410719371703164868593477629902539529259816244197566784131963753027352783494824297283629882346933310491022761785900796959553679664849058849459368183563346292128421659001878457174589415391182317766821586214978480475145485019124754288806054390084065335931463339039903757309109802229733354697556259601323793003404170669130153080856487283350299818234140661317951058328316622549409647645440406308813938627193666463317112555329437278512926913895472477366923482840325739741021050601501513607275158631968166760606141714126334474897733012750436311099871734791645427868887627391053610295030806873332069676471219016881022889333134594256112310314289340539804639653732899682723633809180220088800630287097323695297610793758348693643010931615177146464440729950882866702528445846109364375669257632370088383120354056860387946991481519171109290837802491052562031446099545058819855683234882568707794052521998489142554167674339632177369007433158084352593326167227382831604062806308869623596655981655345411906484958703429696446222956355315412592555114293741932424875074272158933524960891827818336036998654940125708808785750904768581825509070143834472913468995540230466347610739481010599966185099089204706551213372381517542488635672212570357616321586255050568914716184284412332748550387941299447825327465350918878402607970491484755446152030268726415991932922167873573700605308637157676523195086521338166464083853277258316517462713094290141024178379521053127606333908729695603218569141517765397419557382285387677410538697072191347387979849208173428628717923477115158995961108926415339003037028450044595007285591600790497138313670949730477385441952397626390246619262875963235071331625995260881825200126208635511281565686491563084715181384443991523807110654809871139913448288409935750261845461786543825779528179930090478501043392124695021243674918373515360016052515634627698230764806911560649495681476483041705193407161679632287434493463752270589207297082516505986556438816976351673386688055446918184264901339018410002131200120971431242342550679228805719936462245425321172392879584184389313149708220450694527748318059425711091079234121541079988656254561912987904442914256868143196096618849986659171325125080579041938234450872492866651152876027680156413464074845313090094591321231126019470664007881571828431667333543089138023165547163245461238345463796969510876555408142846189615565388220840151378336665791265534437766815358004382392348078936618178263321764438749218945471607063073462927167303898432269861420533043256755765815189077377902570975649443082525306092393996253173936147579538909275592672825421765815896481348517958138460340950843242246628530189332379963711535213943586275690121777673925170446248886730933408887956311847636786648311088817330079087841801168501354138652490874451703083539087199004379569702263178485402992559593809835209157787757080304422679436909499035791164332527028592551675671313072308276766294978338381492060707396850816635937085361097040649355975806407122957394475564408679825327348288621372781057081039192690224267418814422970736580554431903170789530359446305086322561286448814050690954052754488084179336812520026884088752058335726455668713411589292864664048967399793037507996477363129224731884987955744796429092204937069822453801187929511318204090556060138066964063961879892604506883022488271080430171168189559588324155633535452657941139020099172154445892922540670776359551048073746602269197949956390502964288272023570258447652410990153065957567774288333718973416305789842192528672729632628975806000026989030376473272070563447851904442491261267825775337898951216445245983167919888706780610546071287539269158307694819431744775093554337871376387343869074439467424007720043889728129593682981363844787266389115770033992174882841697860462345631680748138235394322999686985251084947769421141466178862541559424286466867783852341346146969982218885915778930841416384123136742152852190100579211358408818892022933405042432886603892681897935922071077521191956526720063017304193514415184161713076465917689786589822081320395343880937379381188637612224149283968275198820303011930609630688677782331619739034937470979312676365178130642174434678753240245903845172995518022154071411795389902426368974168517568210372582122075621610416952611209694472414496555934219585176066471014347172737269838528097497349011112056571536618640531191506063683525425876771052704989231294808261488427243770704178204826706830415102820727060866028184178060037292396611546202893096465210294517565051570064953028555052967571269445961841762710996845132533618841538684356457117748787471441942229040994414400959266711177260221562004539982050207780723261394605458035184193237923379456007596388094186578782623185779947387998759104242178281132490571132181029878746394112664848415710656630565033609589414304181445515776238505724478327003617290321465006764381728726348133383438860552850644605042230928039861221487487557958209891777430504948303061406274978325502168758949359558557719143084559156147983801121251183516088524663123072316950878744747240799462602339793952729260509840411032318358469072196792662532551469155128928629252546794411245721081609373206371535513063388723126881380115987268923844455880248520876381831313602846892351420707058172451710631012429374127740024309699502668714000051499351577501750420877469158873400021491203717033017002873109081409167428868855079504433783350427743672810034476700055137895046401699316753435066020908187903975350537140705549586352251832538696076586220413173259933489736322438110082096835854370424474173378843009862380221456332837612642159570799826653608996744535899915825519753552744134908585379865848306044388133004661447761118719180921274887255755439570967367015730952367902528132851632936356061969823561776548316920182475573536144007385778170149945453807450516177381719121999032566938379531867044681918479344764074354743251525947646240709759592296108338841828854306560028618154197376173151987710809526044321225268249656971842808782213692087635513708743984171398992502876420933690914522495023289220659846148583702060602431691748717327075643007293405340175580773141227333731275752149139922884303207831812354100032886787620180219513908112972889709436526908656448365744805747963724150924592418160529862204528808962114730432887524032757815899010614879426279055562465705531411674876162873680274769620796600327007380986322121000831519805705548659784958919257194615422132055811538742390972998102489061645862548091707253981083699379675253301310286436414763556825954393915316863028110657942493139256630112326087852709064999814502727276422801004250019499070986184833938343374691667887697069348460084566929009308220290978919906288194114750071667346259209867173822825428121230296115205718477716253657892919115297053566401992402163353139081260389512306760382054468977432928340041182636266998858197427414323761227541802905171073396639897350745289229353780994123824314469642232120385640834447605590489101053541015240575397830758871329896849449415034907602403608641590996247710382183272215772908665730617394046998263533896968745330614114313316364460824855273234594661403054143528068183014304512085408696661320117793879080625050452352234930970245577446454328209567056642754534118547195061731364128877744168663865688758677045301660040713989843739024989348579313737610884420430895763506444465197273919657073792170005699201653602893973747495055625350726403341588276859679533304455304284948087604975838269038468926301254879530727528134357484633828073914482993430296139343716517027150004702113986339448358245526960322868591110355346945787715235925669596373973000661882555466357170770266403033904281421697786050224189790398598931899099771796519051076288387076805048148477935079329514389623975943689127665622062197386986738326261814890965739896286027340690028987235898043068078720589638704831838376203671021320065237804926991264622308238649895587967786622383350945534762574770360139162568179928099648321354964778949425316708045197088264323524577761601379096160948584722596209179327659057098110559363881761465397472691483792973088187458125373118739029913400255008862908234306914993728699053075386228181030199093430188789557927561674438070971050654696225657029641143576909095438872376228304502370619981787281407940908383914575076834614766916651215888325259081904811779434179878901296744020882834630530734485722315151310986213974000364259999185674222852325983295566888844365077547838401637532585859608881399156214578917397759283909255501129726287771718300939287966630842342104327163854052650756270899262756092068995145738777730431687039348832589039881509719133875218639313574393412872912471248402286373229095092066530674890547386726489297722389001674775273571860164489353896103415596155700651427336093801049428050755620238720033859895396991804475068914576149949750282364237951692083008064396016873909233924535871963972025547011921892516086312951147056981456518237826944528768823974747253758269862130629717266115219876404025834913408197284146948737298691387038475443499765232676798309888853345588251686961591403284721118838098075930286428390671514823838769774029467439579088029622568589444697669475732296705568317710246060040319820566024004500257565844233198397377292603668594700170942130618041235275436319880471920891465287036786084679493408779259836027849480921964905400064636144454029587155843210063769455954782705816697141252647753658667121345629281981085306958464078153316071960005667624274951552335649989723272396614173007235541889117459425186011873737876751499113729713809475767394081508723045852326525280269562273289469344104676969977279230574113629119888985122393852873074839152503089085145001787051018072683754446407740377253861008138693963349209779809519346211780645535682383891425652323686024425126121563719495916216338950574238066407475838439876526777741333987215341840668572635361678376188983319226045533101253191503309826121818237464499442924486805527838989238849785105681167766478424854440172222599621525647555968849350754779216005401800591271389754138125574180853795781425460818139686222634935395588653312314012819010900903450793775408265403864332303991197866636640425300547285935535420742505682585226176478541122379943601123681230647694042694909874308153138499828449009501251926952475900404650133299708372959537255590141433030950591056725099149675205172859439015092025220303005592070410032919980618566382880032301893441167037969904433171676308600823573774732739745015533370391629099018807200225883105870382577034453902612347577308903070356761893065767831633739980874077104752507095419338150886819645904173232994922108185873175086201155939737404421672943675077067501832909050118655814967017983872390157183270201359629870219090122216902861817416745906792352456148594058618497603827381779762989609456882455895117495223394993160848886759509154468034323209947876349839337457754314302938212131826613979719105975435045465004360969018905730963770953129391074338307126480309554651332959961684273659154158917121590271389159698687170569811418207316864094732922666315887412732907030388855979340713887035224376293003196445554287142973886967738058904080196165813507726541937024771534474512455379205314626585403771452998759832193375931651755280123362741431592788020886711751813534117087693928308848207457600671111459881865127566472155280334168618937237454080035213523072604809566464523965737972407704167548047422590426984213550151638564210274329549430967741098456467114703967146657796792407932431443807745146100547553951851959051002278474435283199536128420455034840880453815093509432635539878345770059211282611107015229744207565452525962202774082459242160152480866007313598818487510415482076854173876594586372122795056795206888253626937403630576900548425277404220395464030465346518713345673132412216542789722786766513111387551395131641962388970717347063271130973743453317127489793607398590500529119804738783538785489983939741059641800627155152015791780181498607168719173144711163133838092798608943873917436870340308118258316997173365953389861009966761924662846477423619886371032964958928944117688182897758268589174779424976837980638513766108818807762883192817534712469174047262688625909354764043068514999669096831615588939886323940749590539029499961520115442047360200732726891018824799236888640320820489641680584617957378924161215270171448465664553789437769630763754877423411759498816861750547476798970045051733245592410926502586980488878198580854878305406788035828860287980140961639217099373638288886286001686358299228252677765436428275297964217525987722079868857545605953982226125171165919372504127991879267485533531183673715775504570841136637156528736936344121586472337268395499841623664581261099587996462007392691238812907568274467155791615093744351728702288430065569092004417674672657005958211349031160949875607940411251283060296756345698870357409329766259707313939425153294131955408798750924591255114460100970621129054959513669437763093753430413806173864092870065577033730695977448104302368905469417020979987845839284362501144822919187353382357371556090265632249558632297823444596439250210343671496871147508882093066443116232813082111673728903876066876430170424772170962895077441464414114075254520908521117747194081856306375639189075415084538676507083715346065048567664875022628669956994385780634854549055359666454848271960085625475920244782756520417121132981952248737547816709472883730365579079283528677762891677473336434573977879014779784962283120765182067258535321326093321136912553860730273046482264797783315874991744246088738160460955374718554888349070159430360928172491536935445656924445777793598742217645199571134729529695245602760157113068382038679594642175975913249292187818503973310225623908762455619306050938791117697422389760269942529495023829096731888260253025510188328986135786757380454136267266404291001548496361800522038934368689962603507860096218731978821405039705733847990132082522189328269116513565860624265181715022838537925176973631281385928217699043331075407224104658869026511577187517953091208060196335015504879701517824091025326596723304874875402116009913530363021854105527557762367758955061099565687038846366231470904632475004842468673086058531135518976789166036403350107706810532321909297144171640175407787095073267816079359527299713159456096490794907282393833517525329992843586746509358225654629995878663878993873425791929706585964596929692574762608970090164897285289440407503067960571413706106751016756593030250442142893269722715881164564582322114239559226520798779347898538276974392842671668243401733230526354432709079985620016193092817316005055380535164884477466097705416137176142841821358398082896739612527212732728295345953068560389972768349420679653562081494806958697332917504884385045994560898872584011700738583580034617615210676383356243231968825601486522626722551417703674874100188049955870185160760192325356968603340371183044049298591018714213090424774734197625781328220949954516292375284541330947098589314530239551836135399096516513702574167441033882165996139235998409757167360636395903243432430572926857514725515915157293357373548549573144137869542317346934379236783831604839899339265264622806988255620379007934722433097967172489230870844088394769854303054930465004126721472552892349295710492849440970994943188995809476780227168959093608437976454837686661160035650698918132555473878877803271328365637626616949972022447211300247363747599325075657224464629881783537854402674829419116192944971390394281794578328251170871340355596114945733926135631015558360965659922368761507524490492359594882868489248017782918121896334446099912013432786785843844333739435983363041809475777365029059431843075423945739846178159931819746318802803167911841581531333616441463620049855595683452158574743794668422404585221090481555258453992801914045080396462881776358876360845978265117816872410634540723398644687267835121063785807735919458349098914570129794441754570864579546026147836212434564917295575234519727997312911110785365909884965492184703496427458646490316705280443499236907066740718901816115365500397663252473036657372394800087743990265615592660360826028932180667880812077325616580405109503373220123390138070114638836306948257589092033893801820000805225184089306382964588626950939362051966721932494835534240840145251517046525619617954720117658750849640821863079595821696582535832458018919270526863919911890882290812298984779956491277583167231597419843492112629766784746606476156461591315609383943957213921088585724530646957685132927981128677937326846574921411790523005206943622002936230418949727798245160352529961295182843079881183247766191584544955123770586303427757507996129997333438774275516997145966022154255474324731441513467608464066768667936866130331365968135272491645753229133425859760232233698012770673415339853084222579976134997654940472819667551912731447984477134524334227271144383691084239070539503685969965258880904012376546716795128519163273190991614801947174865632767529300831553032710415375876801462298671015398357508044854210981220315277211458696644658434774943565070453614906922546223380044577412050565412835394658188477072702209388150107358450134063119693895716210132384336855482987436220498794983328172607017701393744507584493960850309217837639066445338640291721001097597094574145243702368883890590699713632244909783510005972119498699555638282647811811402262608002031378474394198127760762868876424625211822782172357012759393680183779281718239749896708337158134957154376604871372901694214557223481469450362401209008603193187536748196447005910244467234638635392378101139759412722975601016657188077516401984169903776668311172216705027767178399232219062232501235117234971432160958729165713453800381977168116268691256373700926851185246745973293899654658485055312108123009698440736666843448673192715253883287299083697468404739783966653678732130429530413728533354981660903308348800575443379184959961174093356825849550702206061749817186936637661783831420131660824572715812794911172901847582002118393528296881990206521099173755145207747806444427059244909607002297290711223306340207457530507805591180690804783590785767712266086765795693652579004570785339122860868356600489717154045341593115397967201724306702297020757562423782133929687346203373128514120417804470035667001630245552679956346385555275492304828637943082050874236672555213949992445861867828520110891849752970921332358405199232239720278796153318567741596526980923542405696981093993938801998646963734146645858856679957515165966987118479245426568276973196540631108270908217131100508989367639096452222913147245839570706740351920503040452121681241694290512744118422239325077571830729466942152197152128099596187023315189899877292571177953471301100034181776378541161857971826893008141111862755153982727884426155858019657519459757949463491717247899460166938045249290328105381472918092833270649840953620297914134643978830152268881206531082529912612879218974138673280877351650078992870072839580507918896990901441462005986687649458235145235773801129220408761376214001298908840406380464092186798297187404528674351480165924794149390116975551972914687397632906772008146470764033302050287175532828339717721212031493040656174047235909932682837889371670347067145019307290603999169768374963637059972507185045528207751439460119582022969648316952102091275199828795753708011478061829048109190503042416350278741741823714458599897612373403404994532243460916606839280746699090102999581332937436365254098293106804996834811508548308601963947426855600142635089677628718736353127165280380504783734294613010945637575285029650880655882199596071414038879757011725171599174737916142356443010941313778636917685951920984957829833942644504236392884933115917742809098331192246733077828479529060959707723287163653439855133420421137212532316013450332549861985445778301708997238517070496376591317568660057497869135061525540214749393736298396782703859289777316149493448624823385666594735055533776697493279961660917993934912928218740899564041333830310700034843398928957795395275909251235906659206184959686216221048932553997792886491978911053955812200040372203532085790900691986571067232905735534913328776061149749292801905417577232457956359582560745702652905646670423041143188014972733657973656896636518873086527754079107651486228313714162773066588619900155111224334848128989385844737958593005646152257350047579047209054939371522958966003818656139711184215225503845146587830343549882154613625418471846923752272339551318435587694803233130661919323096772664392721044092695387450971266652688261738465051867934053106006120110384940079894880180194959850783699357633097047688765371250884670578125591713879847344208566684878512675968432898135474807554761077270403096889588433065152821708289806699286479654159792659256813408622476144959541748480714374784918212119838707222867906318840022597543924447242504653372540259321720213010246779433871313416190235969843204768436205240189798810362729676381182024370225944281465306374921309220268347937432684869946301355518056345882110715312781815267792571384138500867462890887972725853080468493914882545263193535990049106669577554820492655282332735569809264914716476976019368559071857514881303883406606906705000596277516344396832839817745568290560487903824143467703217329152820898900328529575448228258277873244138063985125139717605436632912738791048705652490087531967610268443594808919986423258606259057001028701612419740806048172138849466984033186888027622376903586975843664880150956307853982536127597014632275667915098716749625167996616484236077721190108053884276583762452476887140454221433241304883243749666074385635336828782519168683938085819433395499673393851687209350546624391021085073125278630322581208996247661122865312333049649377898212827510785478971429404132759338429559095768112532892998372408326509196636379696993570555698247164696676911936614443773440934032352930145616067036043025390817589620277106286999847970210427381584539787303783946984731731129310162008386718617127598495335541346066663845245321975420448080038838938958891090131489873676151615255614650400961619639843925066224217673555312520658255543156467605166035481136585758102041145135506093674120258953454898691666737015993223283886534151833297231398258932399445100914489191514417589170009529035991398918735568240456939941067340789907182011698024516015107713292962436716655309652937292351460901395627252287909957646589446313313805791109648744921758661990977021789379796206466261371386339235963262081985765175768033247435582951111304567267646294256453800741047232286155188490501831782396947653116500804044183430096700761792831435984537344242734260557798241241039236498364951097629114068612336501340320801371146508922804422326540682819319468802067676050646781438741704153609674552282933615142742413022367575443047939524055346769038884833350518801684918829326406377828402383634300367883324029380505897554338747597319371535089381311317574970124928094547215226240517531500233770043658717035913094035989321972505952400815830827506481146437818484021520848811364565054024154437292535773580506662310332075530937950409169483716390459089577041175172122412997233281291256571330033398926960768875005265456997922410023777727718827681388133388235369039021330450795525579341246344049259296870342914441092071973898241763453231567966836171066818867343556804623489402105476525369429518102932532913548462102553345193752607832067022370400613170516993400204010051904978370727330758462530139382689298588023424559081851658961363063570635303043776374058093586270608798173694440862542122049116874870343088727886105381821869845216303044050465391199658688102082918754691660529439634173464300121579017914681545825320560606176254627104182506044153437804642893423356522384420610187733526806698542388296578966159041188603927672762616965598934289246644780043353578432866627898294721952008283414222104642717076432928804365313981250723872424608653734822339967962860027081517791285183945757194803170147265227638988752321145259015057924328399765541862443224134848197462313125044279673914926350719401302386092583027854233957034064245092969874949741900194722446682730594514470126485058613257350939809232580623489208833715467249210888914874442731759007927493803287054730004934013060864617957165416213083268006376366036086312888358413484020894175932709887934688795966776235096638606477700842862445122099235147970975410970479099515053312951522546485066950348264678406644869013193090158693493443316670709238752644595431545498725803267367547423774144107745259262324483569446338181931177604540592276459066169955575866788683814047947520901184337864300921516872038027692234794876391531448275942525233144146465275931241322173052989109464354094249161519621909734605056277460792616777977429681933427480185533166687149659807471207324368111189745938853683517158475825245450180156219379677178358438754636069820043086687197726779093268623981471880928034058854013683832110165585458517909805858453379580865456251108804515027370801613675548986985470559868512238152072618200530696860174798976348978522205381549369746929525004332288498329258745854541345325045399919049022626635117162479128261686540763628027322237294159140003880777776317541450940982599424641239747510536977251966513710052999540231585365617473438159666211063581649949455202057749954924475419422818387403257906911936666093002357101311129877841783843361734253663788513075713546121911664219462141616046362780723630200637090419363185222092650077613848397395531464670359325322868388580733539226366595353638031344958173515930198476134463507649187405516337217313210014354208073632650621702664150772344478315475187477729559017018702241756796597491187032350396111741491118662363000039626501269846741821196495542494935305376106886925648923134720401859352729476832004468689051597683083003996658831177440085945093245853246966294213272417721142634333271161866348421393273462313363722827246920623808446760736867204217762732876510417979326381765659186033063711985418281423603763313621883390059370405766951826847334721877530091633466630299381873349585181057021192403428041275529779292208905156192073988872476312209887741188708716610722029558708711204773457975750187353629204692963201895490452593072639490125501497683033960718131138859124904420051803361741236284120566748474741385995979287962481016825337874937782533771818435324690292683573721837567113563625951191727908040229187886042844175219668775235651576478836559882930696650092653330347114307113975566465609425693407029976255417236093492633703179262382477069568762665469188665363055919632962148993119464064271176220687384115436630062674503296052657481516539403007414826304266079048001897243724731536687502268875141184747684922589674020658904918852913141722559078549550023727282733217053624678632911004837074094334048988626061706038346849031149775818669023281560544604636164076663746429215791980771836624876264079544138484776302370093369471834254082872762114240044832784490777969854365401533573500356852158806778471869562729971241240326896789032474343700430343253570096377473370458516541019992741901905071784624908530667940795920654949833581457555160931428523873433572855185420519628724905515612963293071539682300186528057317843931878055321180612292262469584759887538441024557360729827326416849551001335677586014771341139556727347133486007924289262342868729836894516206634551318127965437527124561091507957249912242502602618507702831141895973866638937728002806238433468340677106029321028179825175825522807408180045968400397185766208406853955291528282793127431369651470061537074967707152091084754212232368935918746745014390047562885342840786232145394607171563058857316122815792707814450330668969593654414498194124485574896932226554791230203398657866446416266798193024283329453651802144535096656233678446459294680264156550242217132022989840823737068703960087041996892477264722190980185032801542679178371047246505282673087406547991257286307428963529303083588266875898497547848683405809400434171253811812232562046591490114634071775172502753688504802960318488849900805580926651686285173217188915066262116023796210470795818208874346428839622011676236556842549580945706223159444550938279675505181703567823838293100074614233150368216185588226052677149711047982063677456480131614881680711320872349280428260341552895792071673259809455328405665915817323498849877523176671199540332607728679890095738517785828289997390756308164256290926091949283957804026823682201921529438327733332673754401040906242990225449624850057820525971767337982964000994189787401193328359649056584230658116572762083341259653932951476299927764024592716351468275782593963803663183583022867816909276730756786584767511104506100351135333532778661635474141186787350253528547401599828038246594322563479352232653318777278829358286150545544773052121268927094598263733873199095975808856948980842956005749286058764078363347125828666161905402541350109669849732906668441150711571478861640860845563924930014509599146207623320413235641021299965020251075266029105270662869181532206226073154085764100127162458764744684701857624596440779387310718234832499355031490589390462134405196531416818642908269929763399780948383432302594059524534452573490871536325462863289435836516150500960962285248211743947018283201349665134300837340337720906579030660387227294287433831745596160453921610486714288577826994559115064039349302609271513912491463573982216146133345997176806676667573632199915074435564695172277002159695313137617282292427689893474098070935586164632259402209809751106702642322570228104048692573744717108122092221358630584027054731619456646381444681005791502622690632341986198846113468518574756474198179670380363722309609212301280579589711608102760794057152702613076347824703685063992454286658963182085271791295255407230475173492844669700161308143054006397940746430804110920406600744294530615343231310604972349483284727600792181835052952519140456169224750882824491520989415136142652222435021555220317039385107267966021669107539615185942467889067286672073972728598160340890244522034703912033688824964408484029231013788325351732064132631623588091324952221059224047694459081079873276899487874890638863939051162529932619005398275783514347149166219026618119486019041562966696810401473688865131658203141272725221593969345484216374014167560041412595648266235423537293483742497392687494819405126948190929878520039637780040259790720269868780396512360543871492713965923629160252934209880552410640961619178765829042909239166905850975425054273532043432803784742532022630988806594175079221834030662719181247778838245924604968442442886576341353517409588238512288132169100885734152853978349987019060490568629491481202615965369965208001789794378397127327401676705152444292895446110196013809747384395189705664659910421005666068989986300407288443771358512740292544778802033288341004661115683389701099917202027440555429847382314810044770828853814093252287878396375020522741474407664619893389526895560146569723978324496812942774236867222809391831414159922531931818804387327510324793484002709688208519710843200510093623659877798587389613212694395588639780581048498572023038357960556969393485160076608579254762785727822605920797381149839879302965566465734310613284495548537483056849389291350818834250433434297514855689114111795671804373881267177686956997111247819639718677502588730174332482978342057148663514666283549143336961215767541532760020436451835404492695807857666661329167195072419622347646916227381030869655308924340004198041463521021033086617119322618790730480873817488837361985807981317885840552833559395113245555159531117819769974320274691339417005355635178662048088698979144737846349941920281615994364460183826039481162775572005984784179828118785733275510007004826631784412933481689229082078805805178397305665086545899400599218466787298063453360077606789740874146582099116509150908879112051748976156736395769911614786285195647703956473649990123138749270539679265283473442632378944037215473667141433195512581158977321933211282227435802127168837918602384395611192205060211945934987287059743503366764292625569257487746694142538499866652424322690088930081574136764860866740200546663712664957113774000383414122521215538565871424450286282790396110557842641218576139800796471006543502146753223980411417701050133526590781041131856673307768346167981184715487472757254516541027024386697514504361137012887983127926882205519402850152024639437055132512352047382143035233740409835714134901925943214248345820036294338088514203807469679170784732420570757126812238633818443728507121541236823893358373846272995502159510415538884823544914419385028911153928727560284890827230490131511740822441703775543014178351713888138045185469526646631321218055332617263708181753168146188662074053925386248446741711379715111933409798438137366947957072703497859649723852809309193804677633639677460062089328303342429786090845851849081376820489752555639248169762484853146246022346511175399117520915492052881494528394685986198236195860589228166651805129410210737441204753935809255646500783692966600494132018607583444888624272363354484358085377079385941518389977921321679521471167098626279145593297129951716559320611245666977444739521304567355019944416435463399807256007965341716726195902262235822634118277678452152009288233354543939332741171568391365879982294058846118535793923301210703351506412677169497902799081992455803068238533989766728468299564294395901335705836743673250544981942897099264809173211620388080375007908393027608074458419568109083590618797536958982791172138062592933279089635423143598071933971110446607955468674063810131612717151456830941827484084304564202747599606952440665626791388802476427036121614098098504388306082476221947278421741224538453305439278038300897878583800260000937389897154749174243706101191497776410385376986763488025095055913584228149745529005499069184584671616587200332039914855333278256011633222884463304129348965710558972189691726779949564348742469508457832789750270682113690365853661359067822066614512583284850140487291057053136318909155820692056869350596809964798164413816284578055191985407097243535159691426951311013452696071860320095003772302228932355049274564549956145620705646977143439637068391440852367615348614707394426456856795467760827018483170435500434597561468157223197550222928632086145871640661726222767653999813144939188029171679765368912268339794270543167989937070287334636987663173712374478304998555084238415563721727597825040364418855121800617856603217972666239505620333042790248915231460428648967612215535557459720919224474070901656186491534221177538075960027137543129874789171173846554300309820315064792710029239989724311322361384592808064420920871918347477955218639103974502921341339767978706666869247503348908014400229265292507277073667606766296448677061739670573726728296196161572008284970948214589728704761072472638227318726822040874519017228953363948008218118262004184025625723849591417567810945993311961081253898647302989736588660751151812778734030175762956342917924305244205746786386705648731132006657305959129114923497835555247092761438384272881146318368338508147205217831870348459146188057251835699007454898425556502794744805753355861553336875316945690625116200175317235995222605535607537441068439711321067976875344811831394728376844082050823004409929110270106480993414731343060458945710509178542190816179474050144542626051598131738071719446693952153823557901625018862622039223558342250704699668593410373510000455085530027865589299426093945733195130322225258987510641344415143245958551477063310253911556618832827840299088590961450658512633630051184834080480886452197896083041616264655277763231074306337009411918620996873614024233886844783265327345196964754292155181480739279583137292316317863213864282268562734591818426460896610733298195899628989044469681130139448511675928905878470356436945641870149266094679809131867945418346977667976374600501324522813333655824422614794774850643306033200359390011747056404354236181282252370739047672358368885796699384811327113047612128618438722693552699789946662254912504673439668376828311077413531866431438219628291929794256204796200459923734057632353220417631020612589716373461517714978030477516055654860480952458224615078775197272519560033723457451069131686986522842672500272355627260177466386385127628252157112948712701259712933867679857129252932305693518479817538165475010770966695074491750110053468174984439012447676433146191012438213838933171173871314773557083227180313862345065197078266819523163358478036061981277881095620653225530948652400806218674497976263567910869415717865361504360447696718804330616382148274944801655544836947668191876957895422819334870363299200798785983794257967097718419604394541720732652563868747583416549480816278856756341352621123761546641014325203769222835445284478871725231919195530449703159829715536616225700310970273551356009585352401538390188179684232860183073223291102866145340184882687497741084337689521866748971331655759650496846974484282609843141419371132454786258545186087414307425894004946391270300597796745924980434332811619510147473437160016075822669322323868117416161505499036485210321427766880323936754137807103297504766929594130523318748730743667546718984388776227619688746154710722455433042858183096202570334650246504039826064777149969574355177608704040539055491571342253467330691359961083273295405494096892316490826813998929827476989307891968738058562550440405178486590674003479825614868400415046074707019277220617329772093312291667701183809061607672910725806616923530865047541407788137096143122570302551312482746354264711032579650817954940158209734103590407140552706821031795862126939833467051601793151974847491937123316314508903913859142898869786094057853776171548326155759969076017708093093694829130694525099688779767442370379182366731236965126425314938836105538588391570833039175834271829319207399231527397132413852544688962904853518087847801002591451717017101522703882813523766081083370015845024622133683722180084829709527741454047398547466718292156712084575573812080449972262894971844477368615689243852450361074385768467747647570762559084010427026373070801893973931630451702862853364284768146616953466813477600019199276601618036777704971278841843983613902492390064156735685432289272674522544372681168593202081845647020332430753350805356156173583894244961032981626333032661396554216110692773742401190661683267370932033068680489630372581796965439267213486958890278655619527943719997855629986074411147693134204619764954058500323122496314186439214666188568879679875326112907447905247336208801434036578075425969428431925083091672169934992561909183092312712984796408640947920733653678676063445486506059834375960295502505927481231649886843690799346006175827026822225131782578939485737083324019808409423671171338360343274984096624993094658624183946861478810456565201594649575175867168189208609749157850448870834538669117139830697621919209428191478341827939898699732555102977784189700135856810781769096048153391252477613558986400520712896420041184102448065526970974654389603081715953125584956062072900372156501350094550785059599510670919676825070602686784367035572973268697922080003248444617766181947724827415809432243947188392940060961229115697848931091672535780811854434561439951695874968878069320394913226045155494620987571048270887858672000298518233773048360231417671400843428590739028611818058636887543006982789022768647216547282756043054428642407128203853443208481402064452677581984338513703636403007405954336541989790798359201699970669643442398912568747626605255672271458487804152950945256383632868441977136200844040256105858687828199340172987937672234444448664396061114911919475502419223096931270817297316382562682532876115252546316998841545180919236863703225450194661639881837471036523242752617228292690599594012808409620011723364969104607618582914006419170379354549523703826097208052712451633116929259570085607481492521386294085707420609604305246650108155178699900954456395989743679810029061322961103841267720909649582713906433108641784571337204168417505365450781059447821985102395221934046853813031872128201905040750306580430219205849235959631378540497149680669082169173560442743700038333286593406878651421010241166847054961004539363187579615062667753145011512731993019855574822537433800610337876358149398460573619449240400873684129309426513142087019239474011496967485244310600212861754599368674522956978329934070441132807943512824254935955484923110354495926645167988807508228831468931244899221062085895603498661704292589317437701397848047692893502210930505982362847927363300769104220995760879142061865846641774371067490840424041481589452387509698006341171880699758586059160854078676294612446097248596372826870751945892986511056659930619049372706114076460013515018651344329773751183040028006509097669348066902885872615475416811694512190213201460450841811831675358533365917865652711580883772781806723980425057174146146405693797152514548071151728684824534948768952982011564716579106966942841777775793397899917045343003961229258729065415844900168941848883729838068772029382805047471081584190140253974878648159970817843156390510725358882881562491256409443471299616439346151026248420351002802264617926215884177065381261056722718413233315663433389527183362188248313269532697116958686655166135130667484989391022709934803416599267136619077762162370041017202968014580984456815389231941090774753691402836325985139243557694697780640359412384554734140726822943726246921783526552574514652165850210624252413661905965774571169570203294837827358348645678453635061234407270822905026265346867695629531993131505645974902267635375672987933204177248448795932122316242784438563934362408204320137355628887553723884541272386000722047662022618702518607661841674923161925618053324227305757336350123310404213443503973443592029673159653308591714273412151908138741006863104215844561210189885559011568644552709797720759702458530741385028705849624531702577321641828185483807522217914587289612472212826758731368606652490278476223616476902414765355856641928074742269290108635818695563602894982747209883447049401962865691914357588429994651129708698672565455198912373938657205984792706197348584028612052738391289413115034926998512682493150183233969673381090892526612994769685170484907935122240772261029423262533252143937442297069468071074381419136069784844426054999622539170993835630381774473863890841647853782852243460538236010604691987478016876532604161481459058416054996180666060904027739392744403094476807448959600268773742130201922520925807711464814181157472197729402443975109147261691245459511017788402261344368915028251219428473151792330272835723448442878889935541959914614998734091829623639209508435662569020255260398258385530152193012180882520318003610430508259019753748220712380005088786207411195880410577464726129641155603057137805413028671432267403167276027937091893047975231750212997802116807990519470466974757910021418213807769279573038853936461367641939318272898825649961109056962060225674206984884301020261823423416345339830322172809279923308129035068355315207895818009996322944661136273170005892551689530666222887845918954082065202572635378470322588146643960814824228229817237182916000949083631909294612236195714866006998589982449651123095222079511749928570323484989771464502451004657564496045511740464492645860748398281826055223788320298253027811465893949352106717812641988161355828133713121847208223337175436589699354768341082000040343970031857259276767980680447280773436796578809374755702150671635836360983345094004218156392969707884275034248655956696378643211394104182149826040188832181185622147691294562687215252630593472859572662966489004626641595119228078234876440953829624004340863249202264532652938099508258677368423947291958503899006619282354337469453859851703420827722290914884290927231440699839638446072367709715840004212003093116377482651869114657401314427750054809470918412751593338409391332341622237806776596853375618557955885179369805074556980638308849744301124345968213835564431798417227887793273918843268083094470119490924220737487688075437798351290359082500302204569239308303858709856508235054489220741036389815034284743776476820020085658866959192490161536887723836937844468671817354860630533778650550470930357894107773877760024602287228362580581723249924311482077367621321285561582851314728905167702942413671727135331730117199384086854113498404237208414488788205239957426567306074258192793472556522599362542485458017740337812470677246834576336967740034405270235159125542502170663132203726968090772281997999355104186899421018027534429469650900262298680335318717734309435799028268516921827546792841621818827648711646800783786317542766245455401049743580597148672128543956189223574721915647587924403984574024753938181839730885994987620859527612185979388161136413192232768919576054448393688287187343036415030453596588854407873808942938484693219249911288397210597824073653692705695204726364089980425813185235549721405181307727449979171392329111516402278801826138729657584780305537291847121656810826236484674281488840465275200907924126329585473859593989943282337169125023983594113136023049966078908326496932102018182775361423590570838946605478942526993976259391152062146327587458080628203618182679185932662698195107699750294531775317544696632939839175416525756984046731626570651511594805311513635367945551020309728198471808089305537011744290040383269522066347639537631628972482857039119544321574980103865088194112714524170630598187304262899947024987524195877204108879864616167875227250522047651474005497981841266164665016793103428674834464942207366848149285211684574495296897287117492282411795426945188331532108401152733071343224829500484366785733840534426077695065580377986672686513760733354955519420079542001404408010145261975206739260488161617236121438421247814658032434156468473282371653804738231741338126978408355759403130782696642663666668888408362224206394932660929024376416898390496922566594042380072768704747570659567234804033441284018882084015210516813532530744847842687375610795413685702744642350713858619840856860411592500976097904636382375670655745567067921864021058125901634256169638902803286043062590030272158259160669591363063952336951863548369603945210939914789702686589161903398214401110632886123548068969012149530101662980165939766386436397366611891497873150848925079253116589016162044183143920412957584424486277982708007856460358279449147787544314500222671377034687529436694769567072016567611077753775527366342166405644895965791863116306399689384257355525399643380196310285197094708161017666000123132626016091483490765398685945809688007319015022453625430092564498591853946777670523532725352308008443453167998389542110785341382423804251922355588270431089496882691106091340456864752500647074331637242256865722550042160830748864473553131646923141153019865834408930242535056602591803041816756777032437561428969158040201796634901953421472544017340767015711536132640668085376727572393914863167482174984158150505627326445614931838887339854044111437263039337644077164983912544847488894404131719418235138570625837334612704319477160202084246727673004702044980521869161139804080193270788601398851026775282455456929172049929920361030864031299344667610864942284025204963572375720960128060732692315259638771393390972450606969398136115175798123154128200860100093277781475759288330966608610101029616934304780663944883306151786180677955755022879387824822355237264755620228746262819149590559991940973197687562858595627008061176908762790677397009308716404907356300016198274397631908167518342400297656955558073821815730638938882163319209132016736722614120670771999159778874386027884059390087782864064597464537851587540961492984746746099221932178591119705743499005766668233944930836248414192338911207011480854125293430322159186836700150777662582958775970817614608208106736166263003346969432025994845592510766063387808019188905701419453237482236621027898942065449090126119139086796917626441517531408120550304852027404492502209560402590239784086984708476847668249583949484509178390984545605289394208902784410450714893905951316990972203288628700549346286737182225917909335319122242931440865242467767119626512310279152821461889526461129399330995216792151742448758020693055976218034253371804417530789112182673703193264751021993463339907192840900108378824844733769082355187275245425422616737073217520272655555777336665295808632851364891330839228696545989445619871039538032749481221275569195133076360779924444463832804570144959727137582724556507375575104205991356941665847778959297727340335688874069888081457082141937571406052918359470465914529943620564452087795561467604857744343612452835487012881514465905121708530847516807632442903475879252603908147992573982715983636748672538484276157151540508832276793708320345973037616028414993612421755868845217499040241232296452992982942764809782013658609797579704051111997725472842885369354424361855607905736317831900271554411818241634191982339252476810071629763822375480209212011475865033464569300577080313170853320630010111008336061962047736902332798503302295361313162056884183616059037660272295379461486400227246242577476969595297811220374209354057553643879226098239433789499966311332933323497612270687673183053857021085668440043093117294494615149697446518095533785552838423347041311339369063000835786640416736154117271115332308248757529301494735756350458103613259925813970094492359756994687976332373307800211913028100520329711986202634376292177723702907197883848740148338293571370609388648404708330753599938491544557264982073986542297880172155045682324995219930088073914813041247154860013882048248957173779247034864720610703777639773418918059164231591382039711637882881439091829263358282712113550889827562555184995906749366239062034224182745079879505516730186157115332426018992827225345047955333664051908304968079047300671926097194694707511442095999824295632129050530840468031132866534010236989139831287762495135343832993321590188384114715010741832396927914502405079922508260782740053509789054442655138896999825166288935385728805984087081831257133015119222821174359219905478609855385805190056121793879895459313730626228113629208881677032146183223976459772100647388394268448778243128090955185458684100638848389954573902173508360378702569564474644041459947256574720799814045194483864466468683395200186511223424167153501092964501291742722708044079440466181084287906783412059263000901621547725496034230331065589982936986899615732235277338654022532730126132594275790525221504133197391529434839489329868347301750727943923723704596839950227038149696810938175202360635062955525637995779853941046496368715676179575292686324000239143512178722241064946114676432272236627792559678210965455894704446263843581525925209122325835311869196014552357922373791128748236555897732354797628956204889317579416850364280390373201426480895583001377233055207863431610581083647248296185926385855992871259721119109900038836311241946953397125957522858657317438429429480674038984482017264056996660464520853552188715964459888703449528379007744634177946409075449108818839266232507491390984241167920230856997236750270320683507885543790886295216953830314755157610362635894974526364124032827693896299378153941825672701538461665977617886180949680892697248984554702353332156512809614238861658244911427408184382370738978585929093132951788792943325201619205435878864394944335668742017681812662853558796452316464265325170922214476425802398275048961257699209095121520367823902332953611817756724043749909403831256252008035269807691000186803517861835552725331548159988944488017200343702364192859593997155771914530647422746802067746479223776720605497505927781698915001360397071240934147073056885864545500882048211459870941264073883010937846694595055692799073861469782822510077605739424608163287975486457472366027064130881466598974570031677962850110477204373889689578516225490277694661375248935267544969768011499990942074623425328809632825378354220873681195709737491790581127793131858182415100885021473904799410967948819745323875351313727262113052358286248599565841798808090826256118322323794288209968547684492178218557206524236227833160491377204660375601723825899152265476819737617594700750641351680581104734130760124808910951142706244979042982688843031996552472751533548346048914775454445737186077858841521237503358081639805549335507372542491523360697712838100585149092655453040037141216739924457826043016976357552756451241876916248356321106870177105242395070520957354836811130441617009922531060647449366604042745106820844107827063910180129989664756707016303296964159214738775055432621826819092361969125218649179858872820905896408550513310243628281365462024774813292429807052387174848998281054123838131409923330634988211093944293526044218998807208215113023508414575175124364764511236225650003173145002227006803817221400438944247448601623695942034168666127238247193248059873579079159961685707678797582463445161630254297281802709536924153808952811135399463462929309372431737133029518722305416530082769237279510525589364026191624682441426424624139100492635235778992058403711376889050209909015751786438006318907536493523947382623099954819586898064668912769287540402113037099109063584279907786921757002301133030581873365251401293025129593228389336150833382749380661686390855781181097288414807197373760427531150316619415455801523701263753282814239615789820730682706624559496811901538101906719501701605766271008621367073636680037106057470992489976719083962331596160800673926054809581248047362571839612261725859792092880741503614464129462412373639085800025725009599797358401836806246554047233146540949427563641068882846497031487165939705418180025873832895295685609483069271485144620797627227437879977386377293174638059331646173193591870897511422115147815255574283575770924235582926941904522504910910831805874336201099110486531803090811478705324222291259970155400551160725201879633185749940242772622045258331506366559312850056425795975880056668608694286352733177740611568045124398791450048683580371779257346615296632121258881136432321856020156114915318636205507405090463730767669347315081635205504663906008299051672432332422090806003928101196102238298036885220186708552015308585405457163522321327677281922314002116864951886188681470784899568194970852538071829555388570066212568276958797746203360824730367429507701064107424866198432626446647939173140890731776992195405666171687337313947007557431191048722943036898632014418719862620710755959516540048366758457746815954346312307671739473110475961979245678898192929110762335285211559614856707163425749491448748982575723901895535677356488267020733024084837868542083711388815308905696095343947737752779252871514253213662291445341759377106854084418497418479626927251567542010475535570527137676669382310452049988187074917275477903834049631905265283348242237431031885605062270398974292246127460704969114172347700729301836760180776085285803889862837352582618612243871763880058873360879497305412591821617289108951629960199787231114103242270950993846450008088713200684093682650319302404332631916931903743760356848015672601140020217857047762131997332161319402058459802917056704915392431437737476000952533696953621657425474621298752218664301453417931211766761924942675614709420274861220676767242035375715389850598957782253363834296393673387331120151391389222038278787954119035872406961256328711422667352236236730806486010177910786351719146140501588876910426596620271343670603712018349492102629800797663532348098437551013512775034371400280199815904468486166081116752401144343164252100206699138867427742267085406764066413734640248888039425857425431337504911726419047905343259206913342830028276933698284225352131830829855969830175283390665877568390866853385670137045103673654201543205808498598481208166488844449175720846485893911802427154161442149059207813705551114485622634371513396373784157434600456794326684213224984398783158156042366196703308400720977353415898069238418329393256592296521322675448353564162679605515559507978016160085350761941372640689906088424654581714365946043986143351335124850175682324052944062794405511536267558117617435177052905322792331523519194298178913033317454549745005298396122127109291833739773012315734028757203772787074416722033264146821855035371299753658694240937546070270215061662873474798790751614409152623898944643587975401776495082803166668061593930386302669223255770500772738622489164654932707568653517300477292478069908098545449714446385401999508806827076174824189740423088791184906209177246093028243416140751063381746239670628920635416381203687334923322565631694419446923777316216775889117421770856643138286750255447289761148824803344329603454040061861983850039391292101763029624466562312615554339323473708683187162082582456577479502445855965676340108224712319393960884243473758693872443750265229650450177780874244400287045279588075292490509503206772202142308847526514629796695284980487543096327126416002775481923839045040214785371404785744449372782546650769188464721999252156403972033095998856900938992228667403858217036918633212672098491026230262638095719323204085668715437376846670214588195215459547068328209045002029937672619367717462495272801015121874774358810953378316811848892086962518219093416624633375853735587084412377779212738989943629816976254963739014033584299185704211041426113669348626538410141966053383042696185130782553135094019728458436397635519321557051694305172561396283746211569008669312655542036931891527882270318946563716031134985935809630625470924389351278212756651995584336772468578299706074935237159494128401615674040394395475262517758967151642552827914723706324375869770025579383641477689592120161527256779433772679938725615939811624103717359580365452970405826007792711247820388273965337716386036259347761488817358258142937680593357536495679918346263402129376820318063691364334193815465163997771441360898849232583470243950871562120190812978775265119739341996480771185528369330466301935636134125317416068705241490460539114913514950172617665364725184911953358734464299251059383680096837684043538678307146581239069832008179091548506825447286899806408175813992712000341327256411174275319768024552170844933035910654087553730331536083844625674729751894002003943062497773059712388248118361789373850336284625600897050813123771696530692223461169271147650596827269382247341656735632823167348561598705035045892915000297396907996207964325192181115729058449258307403285999134843829557487660356693457633587191983417008619462607210970846732551296718873527843458292202941195680315691498448238325138496076519793587443012950176037392375773283406501518863641555665336548196565141693441985514031948710037921403103039300229338752121020239822381802218029411685996664786934830676445544226512038057264017512024569243769723620261862388603185556821308074065219347685192040372155420293965662388446095348861457364831604297271829128738842030032178748903368415511143896654631055583628248299126678611572079764297604249989405957920045589930676993057945619402811989177148188289673634841405921746497817325455935786269235150460526422570310793784393226994147952079247444882833154764363387192461289816762996666738539976421351294272652775836504608867582567727086584457729307167329133817949856199425006223755918201554857891598340483367630145922785434328207442859027032337518342344887483294074789043254159086175934961935379636438872984935703361990917924036101357818272174807096389841190748799260296455857611602235733333977317326364844720297047719224968081510054225027054570842278597600358702422917844286592720486562000889984975209633893497316476799203398995240913051705865807713638170823994229067023111325866912941282026916109091758247379664056756621711768310637239704705784610611995980276556587551859977318589277069943748946088659019513843259676413605202486051693789419281065963974810877492451382873550826498666702469919997400090562357824988153101580957823101745169917583909815266647567636743882177097409389423764527886831924697990794899422068404379206144317973472053603466689072909415003136123501389475115754802544500042718029895420815621703319088572383349821768880342012844110560263747638468478417982597482175599498397681887269105895308635080791370010745221539273566894017980338591575592557721213487344856112379223547473492922793246275321198398544187713923226612461743615095150314398397260542220789028322979305325206425244906545438921269274223545959182304690625845221298883762656684333003658683695673464458722911983621415002563739006211957709277058133624846588487464943368412512045930744541338730760229737291385268146148303243666422374082271425854267626021485232239022567912545539023972937759565272796252406912597771545229940905391925943816787818057532231100795724551461884069642409949632707516366375701780897424316896084484814332162113131029468363194167880388679521643020948025822883996340027992497607091461462608416527800705610041934886052772553106318271205304252251629942618100199460979367003243216821347045279584726442780738606798956672968463036512895941812917208626677676073892572892112041142907727810243704122150958960551015272278228559109775058123833887123034516052619954874666116170209368411969514461230659333809111756468567819091269209378423964686777460752313794553202306491919149806339497765462781989216760207274990513929794507213210112174127060767666549546193294195401852845502972745043761787208376441089770775275129594085174222486726377892594231612698194840192515942425405514790107483183049925079024612170159802072556206284860966510355984577476220582920530376648045493291933615465658547769463400437169552829807303164402544331346679122266563141750549303640214322270048893775808827641183989510661526574041682322162374300337443013055632834751764427118575378627548796841767504735314472216261280386941873132678283319261791947048407586130917651518313852383198698866223162932981960605956761749739177406921420032780625516931849433897418362111801307387452428386956639915986746202270751960522772744341638582385351286248172384586024528813283919728593946966579550289703053515101407888634735502137008830396170287591740530138309128218282159141394766329677812118105749741979097874581842461409685334922942615034894385713252851057275417488936196560404619686499168753295496287645451338544463199765856845608110099108910268356526460496951610048324912381382792298564209076359480808286127762591467112144951765141372262305541412982019858367711286315167253774584218811471835379844852739141689466396128417666336171063096606885360506387142092761792757535195141031338397434959616203829690342446320385474485931630378012510853122141080993520399334726286052325748848785623992849449956298956987542303444373436552363935919053956424787490924254389091255450177028790490918678357150315906825999775810778482237352438066119150914154781447573367626177234796410175057921183577168955240421980741975992754081373574890843076160967457226316877872945642573608247668135719586009015524924423268994266197475704927886187115156240809953403038373352402110798020677475791071218963634329904480461933695610072012127711129417223295123542515355268945793645681636634927870843434344140918944745651043064195515338234993088135113822014921797121784033720778883052759145826774800227539913369351260166791515570222006634271458647179152685957888637074123844817527086879914537241141189089114332321883236085221289583197085250541747373331747941836224500188902035889261444978107913023055214406314734962149104017623230879647375949593086960820892616942880493065595884828750157732553762138814792513629616741842145391286767400186281306169389980423405759288917842672150955829232706159115480547405556480045443327994469491848304894076707868226410509943348777347736860751363474136945400335122111898300765773520612011959806624114662726979270151047001631972868368369907325872976391568616306572368563640027462824218075953367958283033010362368713319288645507021437592419611586402257875267046266278007263886506413770201589081318416675909863467339559959394696842275790192498718995682323437465670152583578840144767085212326687266290900768557220537608443151751816945271959855456694801642205188640428425515417007112186922132588244193629633322203972428676846444289169760276452323262435464349937575172948740459317789419306010377902055582616369857930372902800598039291919440461404189358709904840591731625728777961395907934460966116496193426776023382666272928909202847093986150387673831232936960766599101578941505791688224544926150733089858159500560697703285847311139485473884186713605708686005270150277717883865110251783149405884439891282348746696710540325880233820476485369134687295945869140133023367362108307001107504187616528431644957932167396710514184114897478793598647742274857177091643122196383261031353385611190152089576142938077686397447632923453771374595744722924607267100490631192140116453329779967230634467151934221959481141964692066983749265984124498749389625317655842078725923479000823590075542627467881636149867085633993304705027788205835635405004532029492227727342143047023960172424502479515600406262315335941938002542844435778471659248772297828972318925999914463516512891654109952582988828752187706005912847401763769459599206097244590745068171821604112378348409281996540062359108851890931732038289080997692069010747613026364209370468916750520926057002025219655572179325104940145715487032066698479094409340441507677641281359307695831560696203650888530435725669739743776824309589145077202429202427706492580012401207993985332299807877057592432986596426069416315971619757173974728233173879750907432221815063791831095042036574590791896684553243687782844330294216418658398992339007291176633723636122665194117915546035806656211525957758052482254133595558566646934682691676970846562369159452591285400377469583601430315840643634185143756516187512882830364582306160961829172945830994000198193928222871968941490753674331065167655060923419342905914511626229225949176673370150499555455436650156586606197684714990327029574451195782794727830772099816638892669471138372299102460669050143377411515183468303383120073422286959374703121826758971576624617703825644540489264382240534427297157918222906840216936710180688647802890467284734822033913693083993089686535582338787006349999589394135678769212283248585638991321326854458203276867515439018364719085898621893822367092308250070910282760994257419250410923893196232699286808796644579357493278173555685693127109028774771231408725205945330115604774970346816386261980752944690964149078513053806537445980066326183226395047619647387727334834965780367382228569403528125739572745708105044325215365514119712100942572685697566508390769220005427965913641056642373595169608786769007823033101328989144747406072001438240363818985454742968512903594139436681581224626210499530889297162038324975140336012659378464464902925934213773690321286114525447938865537159541113134031594713490579392795795115817320451494807570134900193274320330230013615285003590810394929659585202731358714220516316946208754108200003254609265353293850835437171446689825547629489385447239499675952297691477805457220991801477876371381494454679302883853511898707165972173830849655358812675399887768913895444540564029755959499159531874604583712015932144650719847735887402976673506429826111829136517803876871080147463462193174424185430638473117932435555511546669700222592756137887227170126362076184182552855558407043596404363888472725943353004272465830669893152368314358467639178114382450536891933876780472631275725331883320595322012087291714894539268301075693930170834110324383752378439237831427900506847683674889842752544916314176724669847757809069835908256230465553944532936339479659718640062219668913050179920929944828485982893087110208548509527030997928129133436387965262445002853310427151843441130785581405260670748829843538918890484154192584167360697744557682746686956781500999918630752654487604599568274615782970579275725649931684947411226763572974869413332329252030035303531891606046882030345668408272291298895538214947803602306100499345857205948087446277707393252582989986849582959210423460742192538560136057069425063119613754181937674461186065490798078402658154729515984307415572919350263210553426629204229216207460702963735261050555837008835734290292158097675596055486487963838213373483771768612471911246238048261494973345454475348414278505823565037726270049988914160917720109432128684298045057216874686217758389070492116131951484023478176760602920273176605446070075490602767068338839705051919655041008844442516387748837417068722487144982695999586548524358464356573330097142452059985545296677649833420246564136160866486103706571195553931231178362910181970780248673967811425630254753813358934567197429650179446812767283985062887719500378496887148940201160083289384523478627413996452610891825732080774827668546892887650158982971309193727602455227912828868541737448532539831024826085152216225468363564713156445358967494634433153902927154220682477806175999327365571561860379824616449920720133123606354416539895195167447697334604814504245728252602270968720214182505685180307000435313497137249038623154636317740778226719881846310390043722977682780830170641642659343065332483244859858661767543370767245352267215077530653736832378649878117491052822645586166946291514782693020388292651979340412759680379565914360222595052421191763125639415209077654583308432848884385007621179689794512917626882961950947692627065080321152040014097609012883150632220362971485879987213226391555027849273472423523788164313788463513138603495989947922773342900779475924211766333938199465620103602226437716122700504485213166513201489956111992630891585618121630048286384221591600365621196231681108636639918481882152375234595159129184634744158128984944924166438060118135627497246402698995498412957034828850548586910860057785633449286286594913859293755447039952021080236250617964599454842667855027137082202261467599968795956025195170927129927942033188914528058926464721274232068583365906486927478265209400525101212377647118223447503263102983101006784058871994166336723664137775006113929568278361959898293145340971412984779751754868725538913311472115156350030193561491435984620502869639217842640463334310953179797506852951089181172785392656801159289840476560211008287378594752160527521357055711325894205730486445166583528945250055755887388028698859753931882957259030982139169472606099213535988864921150174422153942815575344875156511700472634219882671688559778253182150136153972761543371139443496300607956635581686377003735623062594836237988470708645306725586659164072025414006733194932987512127519902092178064459092306543210306359344115405578931461569280384539615407240740777899872336219228530298735010511585268969974202576048700999320199686575093269825159920241795876178255065233804558651857515864623772559937208045796378717892511948275622223064479519907744521203447122282839572035068488264933912495549086292135137949406635407685515516700322087845092541216043425799117048111485006320262892910472339207925209380138834824796068232157266766088215392397787396604337430019088348269888174798771668879671802655454177137548163664057087341793809315162950727609409856389794117473239272744595018504580201951515354825847290184391481239758954724732517563897034228549085245841247986993758778943379140614746637897391749307179341945131206311657907142797181076994392468637467853495982695571881755816207355370669759448021276563009701380090923319029108501374667293326258231930032592198059434830561647706757751460391701519103797071037338823885436254748531990446339782688782589080904636188773264974633190413901598587584680474685181596675289774467179652581980908759749209989320634258723767070102778388604742382248199563075070187265461913790925028541867412831168018117198447398528116874453866854320623606090818163493287259680366501858164802169681376636927944453324912731803095474319235920332996848224040484318840640181445071287251106380573647048886347999741421208325497254498870474844717123075094032832507247421094744841747695351938481256345733661912970697102970672251895407644208717848088254127886474788418863910414119976560816323257073021075486719770389543786435872586277396424104355171727570417448820402046670571093051688171151330974560970786258488702195952855453885359532346149400786143714267713513641920541016035235237575698848591576362939597038603212237036844527916314831827158346776022297653216555208899172854731382022378697637783710390373616704588253042482488411362859881907916352481233276086847386136524328763805977529887866908029203894752880285279933502611123814309511413448369723356340785252164880286273033913112793882328715915047384459144827315186318229607888359001169793126070379062336589852892091393992575862528159584360637569831205162362866176043851063993830843440095029064379040352707117893864353035596321499637948900068503195004785898313753743270226081700385183468746690786969535680603354991489527638693491367487668143807054369278928317315998299983978143084029847696768340517733119689105335909770626636731299695309635114507844897613251242297187031837422574946319604004882099681021569781949937274432002045389325549455259377642059763395171821796761089828460947981892735827100213196444790412862259340102642467943360479221563178112421603015674688870924530820039631574644490337205896817244712565108374472677279583918505935879879067996450119273172368035785988737742881546687523001122199208847744748629933229883185187816509255118108688472244372109429616340761030797010895050797539351487569858952007756683705896945288132731077923680215208346143587981289487833716163433402563968150610888152398782113878054326960700701896410332121774295751944500053341753209362299895355657228921116802298204458096484625158322169986206411890590164150285870807227351003543569188070471721430311917356373344453087263383422469965264508208568298998096529681015972500809591145745253692848076106746141513057736286706138257143970164266856798706621086879425676039515328235849860272275708418633683409253584481408206798779412593053002730339607455240316173572740796850977961772972153164277290378340388653285706861127973006443814959046359082898921214961710146449705830728652808628683654686498576793685769054056390028032640354571355538007796649896370779653008240370520175532902796611031727136941146636716333232925198613327887180632039715302715472383248565880398705387526815587072079922683851216744591760760541967066328552455289439284323460493358721933883769862101758172633760215766671087014944959079459848716799604437560019762810310767151445148189605666172182391655127862160763707798555894360845706715983279833170668397290189494563465670784855747057753253642747467078003485377746981463678792731628548135796373719147876909930561878349155903364490575060322554026098835468784001002667357198868152566611491885018660865852371499952132435188367665265404282053167169758041304500900235392225980331839631132730999053229781474490517209807346402107565993576495458235313301530971056225851218194081673410221217364354687824891608482249886196542640778571941768476391624516418002267388432173929067472795785236201004428908328967692481529894764198597052208144799351566399191406378936204393333427003623340450875982295505347797397049737847734517513542663891691608017989286537308926123975861741521829396027170450494206800021374314470634262014494316486757973562562081887052336847868628087535991474189723326672063646959062635430488842580117700730142607664006863867155733730120984299622505203704894051496452696110661930731769801567434188060492628478578853013859379737223147476927322344207120647781654255532421522424181266271626391515281920181715449829001592151047654092015326186849490376715420809949038471102536408083264767538689922369475310664972425303366781890218264890204749958670203599036057839488670106114820435367172516479658907283201136629614565941899545336207583261872832004059731301542213851663585326040895168721859867834445200762107832385681280366222064192687965604414553558909177273376398583509819771721924221212225399316105264419548276377842950064186691854507833565553892726456804541918418914933976436904935254904764050838440843547593108155424534311967200506989398498234001336710819854237449447134297337430684756135887537335914072266754446526742555067595667682838997411338930620980395672708955850459751976257568942713578734841698347337406569037950297131574718100262435390974711776754022942766759566483222194074202195925866138910145391154329979723576350340870812010314760974192803108642047582682800306985783132783795912371597589446968645485077002812592661013107781885242343130590247116919436075867544665013508378787327468816847174247286879304942499586854570898821191502024355804170168885829905759393796564195545315576551211800224201545414217174430466083742506968204671367816542069880992379581607534308558436961513512317050654214603490355304545327436659372778409193107995536534852006714733846171811262746739214198477419079652624602340678234924188022376268962563276474596729109475021702630686679599943948538999577389682885973795570319250363034995881954761359124488235708561921948511173883047481974742314446779191303408839144635897027658722811927068454871299848543464506515868630288300440143368068972900510579164448682487291661809390904963019952584560544337442966412793809243010507374391977493585973246079624054147260243068910228384376895782331007961907619873972520134850897968488370451788429691903154172497542736712729473092360686277031936906354148418134523696906968709312207668009050983889475013371101068487034725783269176933035753795728112849678020571056469027486629323736794083305282368501300352968915013168535026323351883694527792036231761691586581169632668634218375742461863906665237366571336768141683153221359726803832594400074095552926452520461283528115875761224777983023695897823109037519483610778816647516752901173912235861013704996231242358438282567887436671934141679068113053080691106569394322644824623606717495548725562047284970161135582581138120199848779524580952743550592051585200477376810688746777135646266113113876569049760930984070373410952933040020583919319214292951718056397108756579985324448703924645135409988964983729668203390236963960783363924669230944365471132405211082255787418416383500581364454480287463293917388003047346002485551445711197595818032362138086933069481354236147004613271562216278030277261254702892794122754629167802181948587451864038154793557567650467132385849552638948183466479728160658949647797008370697935484608926153283475926766415246639159420456511404578681550991360361543903548939568568500117692553134283220357824799780333540671315984566562991081443904627915807457550911047349355337608481544274690199811289874154724139699629014068379674870074138574556564307770823387057760735424392920873415109776450670471293970573908354948822218878812404276785071584013043402080136883131882712580275571367908215366902279647003903872917480090008426836569901573042329664276990598246022181284342646874503055310194036250037458814694809847309010675933894914827681020864072395423896699077501486465317236822305803955907739939980952256157430386139448426950802738580714839384666612239278726935541142295339158750277621284404830123862013027197761593085547407835745699868403045341585751753476564459897808700388167501476183880521665069691582327853699130518891151940095376977470173292263217246192241349111764166987987158489597810644353938598820495542383124796343696593761109023206950827335032046904490904265262550504379149280005682261567868753463860749614475748902219778424327400557208818396545368922024536626543419735733862131491063141737470906919348996362506551890341436829727316023001347793710759861338727000543274561951338073147837641764413084788912388685427103394028993968263312100484113117778715836993259643850185096755459330976846417940207698629224697983818882913186102224866163633305999458208621631541736499408112217308065826762615360950634154224642530891313868982633041731749533502045586544413042658892119344207380115620900391357613991583381758590163986316784027198815709889983744448795599578340325323623489963132172978525087882752351081660464728933162278899300991447315386724049346643033605195169444152145019631464929241392130549649617914746928825626865883107942073760551017293280746612375507056465713356450723571434617430071957232150727152532947912078167346546591389391438593034500049330574089471686652872063627220479547421740270557513616511763608363486312794392188988654229472980353504958286452242967455962932709265194280214523140614157606462042236739681034413384580122711833304609662355400315695334521687847081935593520862105981513796341172272296357890008741084322385714402345193068358203365304039244056610382408967211192088953360525347122762112870553348790708811665136812388516469198160818404625131081550090459687497986395521090779949000685388761317411463901046940676166450007402109019510059410438370774399453754463537059969817062909360663145790217706395685321672370716865630864779890130863371386717647408949821954660917248956158266275956103126972393975038613638826633445142121432080045024437243991109350845295532448858287430598660623338272436141322813580773967532735918195896363392127186693022951779539490826970916114941707787881878906498443449594159522167668851282576626465095054584050545883705264602865955766019859613652023526096383304283408236325666791564658090855139919606658187754349315537348405109568584424137169967559089660520688562279556731617080735931747834824660206595700010975683351133446116638271727102037120163607950701853740467961241706778160083103414189597492223154223633000111148644882240324239588042581453326288153012902512388276436478777070392362770381864838454173547452299710026517393000620832308638991015166832703307484454726337498112305666267392205722281082949723543519593448690961496458609508664010999410277603354737296568611294500337279561438732597185282220425154194112813529903822180355157408994356064766100771742617696743058897495109734504489746395673409926966789532412807834560717255927958204171341492787087243546045980553162614176682225311361109742936003209764092565909477490259463594773279059831866751590082598566399880178635106637931143969969976050831957933421399328943461523496640022001900204612044726368634964935974051238561518777832261149760511293543069632813976493708263398660987910001900302812354501492137479920271590839846890166763609309890149455078388430727878627302073301103894435512571019754778469635351761940155673502545260533075208283457782631375678746533780619593867853588439874068406171612824447469880749092385765137736063178292550441127067941667267730337002971750484432577701666642183116857880390761013022062975161771402732831014672512741709179547743672318880678916077820362127375975305721843064688572846949120150993928616869515245017266015554410130649849109089007657630827895715085427543236103111331657606592354046290413121210457701110477482440041824363386028227751498699955551629307034338433995529129738666291584797730737535283121724980881165486092213265989374127907854685506266609599852449841984140849335843509390301227983585780875514918149068505097697318033296074535243832639930072343665059582816321463001100719036748443522678956341883614216528239781977843677730580148595548769464578749959568602642739255153850562242670330340571788310417916540060744061837653514998281656048940833065868770037197297227561479146869736818788236797991140941625883574996410010555912270165927461075400188984432711218225261328623871445120075253509954338265851748103790932375899177201919972576908230830836485997561900302422326225572653099213692427337154671581230977767588608230076000415306251207415167042211575261406582260382070988919819835192307134940262158116965888442238547546994361494540293847083194360538056816135506888288582824388808419424554292482565931922340051807026930234905010022867469873156418402205898940055543473565714346284489743354724750080830482111459108421239643578436490960314537311485520549578113306801788870597536279391704456716064046268117879279662150463167137767306907893073836303881384349317052654140646457136937153834657825843502189903772369547738229851938324003790812613740594709838309094572996299093271848429066049205968889265627256792922725119346435559806163412384222054702918493243085526761638452304931641434112242972554302860292526665875399687884148716926623257874302244970808085081002628709619448611089748769314215585328587254612553372065656898448495621175073099256819298314534274654073944812854197426720462547752037620121901925200739416120863082560890470027809150512145088357471711288624648706148992303603656201620828048792536740479698418640029510003342014941444456614883994813578102871251336320502208534862659244108551620097831319364747814361141603560696372329691888260676878637182316598171125452149017093831158333932019224820387339775198565667664583433478117122390787943421591974928065429200124522587292098467229015145403762072842522298477795993354529762659838373573829308872875158989360934927710960681049824850046564158755699157561431854798969300980391437219946793469519197379167842536208070992044213716367395860034012718512709025912473366989088811125866388272546738356490360418352021395090844358724495642074252470531975220742737054532668886864434030228306235919280909946764107535374263018494946210118082554876494157978357191797862031482955407237403323565173870300884826385129338898070685144350252369116606725402585499300832436382384092497610444843390671807393391329191320574024329664951919953329613187623506480903020379234204151376529603947758929050138961719056567393159238345340880813152096548298260814510603274169235413343676181746683493323109667047933810129605862735582536245467872509443422449838906668597405054068114839253533598889156196762459283353293138499759957626778460403153138963521298928784803172169615560600098563800210848095447648132239728124123327758833194551007403801087909432559596935568150201515538620283712258613722199332522840004435340848542244823251171796826598535159376495783955228338759610645857333828654824125828971301811072961541048870844090179243513030012591016809177642590257880084093032766624057790593238552214730211374633918083793027038854117437174821561615569578780761121351219003133770459931223258578297062583842658179527817609090387821068568896533406976680512797942730496456143795777827847768730896747387212730012206597190071770045057616608956462211171993221247302132372432006184758129287999304872178584552172088769361808782409793648123575422734346343616153934703887823142751746083921092285597284965045709951993365374069368869928825167702988243585371047571367827730475291069138716260829004384102398769869536353588003167799733740577849711552882601411662881992991322175742500892856087708519285428535451937775284819469378289983221948942450923256523578202041610057860640879392055770703487870726340583523900302993879965885428418616720895307503000793811697144125519644900538104280467993898614065996199907299029774981159613860893175227669419752224795666156030896204105160592184129990920984542998577121888843664312371110385830361450024776155506667918507045920559473624083279038681970803656576848282377884513017208513569462792556339309229533051592450625350499654644670796060301204575878835902294795545744411101383851363478908583589983473820369371662847061981440911462406415464387907112638985163796926341113501823920984547950334965944691046030726611814143474296229590869169668287667924494601275014157558174974772123825485075827264039697434634322214935835608430968292373839400714557640121811796377046100414044913372344858606400076031754440481325052144812803935168261760789172683718340223813911896919259781808343374397642624225424464537990413375268219880739026725110425189531965897877975529948521376120384540927871713577582316070747043624214625321128612626366218751268183703956126520744462919343107690233364939359243456772587903508000504751720286260779474843620374735750502841767575832464145341303520678993896928334026101801882520437514933654878502703589759150140460522698908914377111000937682721405057505588208724621752249939954056278428237095355854192021540230062365352900315616798429190694600143469218391634480570130100257701782214000226823214218874963522015133228940432617203012046360769805730066391297630756882569141901155974043340118993633423132202920190385758219023749467612311389637534120413067720165161072917258080309934007306358111146002475438306639996590366769775585032243462048769685715762846873918819534886216332693233213126502176035765260233900142567816374027004350681981296282660762489357870843246032736860078841900579478704057288185289035467254417314955593240557547608442987762146393035122671398310783421124719869919248704834655976365433012991648726382479483248024847616080232688306715887911885158160923250066205997389619608166871104359239101734780817493609349321793762661542228217484892957208073193604069729817102597159134778777325190706950924272094797110356460062589128506222246662071710696220593361917268873688297335687334465405408270913981722337174691270647008496606187458186420770148251595869796980042370066139735851227046718255356784127914677217267188608066089541077964158534509279298201738668146264731481086961664147087328846423196731848220548889714562890817110375268484055611736116572724778851805430315494379370033914550612695004545383572860067493238292368371365169340881146080891458737961157098200971922639854135946425249322858754501556608359215142679172731159691040359718087247342916287467758089129762003666647959167645772882297484420962321579741420112790732024334678381358863597762912364897832790937856667106689847429805368979807561101065846509116387983952241480200282376784170420889746441364015129429873462359838517126814111084807276977186628745265887157709535835427806269684951791363612581348181464732739956372496263465243013188464378148905517978092707869859426182630608565245488819713710858033941999847696089951348736316689926865827348801707661947629655066915521774380990856271259240581934442647417474037703737911605130781778380679602840786495162639588484841372035331368938502593411753447032897488572979151379343759275563147750049752279649356269751526087880681829797188296820184600326628715514039768846325289580515252618949322341923688809330468770161876792516547126894847408448218012375920144690496977258771047152036535307358359850345270766409692502060828467387496665220543032704500694493685923058603418717585772424097231634234958436307617334042157564427707791076589785613172745439715358281885612473223615932950638947977981132017006798884311747471636038244640883909146740311011152047563397846311136742966933583194497558126600445516323601159989615783130821850461079488134236255299340399348060890901041497555163466074886485505818686585629205189310389866543359077058629819843363581459961845109885055782969283529285261195506552080832486681135321349699947730059304029529976662274866968688343926815513450068746418347138009153607532542144073041862113370707880812536144457448303956686039545818462998261758551130905526503744560231492330593129982474216151580465768239580235132381141327249757278214325360807073752459923949548417739456893734245274145282457274124024684219656419394476961412298260515611661625591797543905155036143548322286555069230674738671083489659336774442115783882740763131136862136966950054401823455455284414183652446619051018595461462854209840637582747860264196361706415498551972055061848128072501250317695464833180417348652043977477551770684489620423616285111730107799883236789875396323351021667264500745411680415526762202151797143628137898028987984859005945184065250325052528628396429100315205157171262797962358134962929617247613115515309417149135382058859277046940513490554878485657218990111407403057797023595094506349973780122514268758397948433234779466963490265837900601565270348033556448224061703958098642401973070750228693712139292027958032879687694021178513194222502431149689582730514665215554324906000621783451019531978743481075108135703481723962080687288846244498186963964993296136965847032568183950121219616394315336853263311974007751321855248313057914347016422210385303427262173478114037370428553100599058658537580185980332029339621355061596058427438166499603672214133637170306786768484706333289758575654338223915066015733440489724637051935147717073559906854123087686084054963120990846961986036223780405330194353529691182322338631478578867327099887411426430577162242200775595430871799074822593870535996162777298187106360412746762915650472901582769177736752794569834380735452024599082143899366354583660122012416457631478630581811405079094619354084089988806382585949103150001004643509207294280139260513678009308964191063409866577503324802053657634068120961912634278434360242521396935581815719298227898306685307868491466884827883416531188670498068840410356601924708915922727909197589967640709044050502501111321198413107257472915501792670640763235795517359126958276887621412429869630366412157898019396142662352161963319586471678847101794317494342395720858446044016471594434900478481025380641317616215004956236949342463371984793668480896679056120109235864833166125265803097497506522486888283891034990577354010659500285056038545782247667813927050235760582470681145978576124444581279141594170561402171811863448788050221515432269153787875592806184765647956681492201877439164086109919680071160189646471957960728443576098661124524031555906325983065080784489173490287509211854125799730184574422421888674067982123410535631519629169194957405975239648357657897905689695256759627024772346356112086323067156452763427577633406169886004479273763278966292688631385181994285383915447799524314015781302041128668151867804197108135650727563375238983170246748028400621385943964982431454604731587131600508380556056162428467143165390871090747973304376617840020077015118114493210331825288149751822692231114330787119695607056330418556100785989387211949787013090299954793682138080431354529823934643801262460022042697871648564045153718499651942147817703618812594721544766569553664294630600584667263185202022620716433235604818070091854961147788807656015772934813719974388753478955858726579783694165289112210445405513802860993806481342112698609177660072936773945607746706665014588783390260522946599723441801543351966398936855102027003867247357451740760710934614292038490385961591659309843832583426819792202339316471325945311503596336048330195677503147114514434097589781351366970122142409264257628067626901628179068640362961657400546627717820067866170017270207148668151110440791344828239550521292271479108596604805750202013251419052522359667434397586621222961444564035963303059007993478645162391412905756841836063739083351183566654943879457961790079146318837340024575346025964133975198446292515013308625045381756537050742400794889110022675671395947598099498844726636471007378622788290270385390572369249699742066849131607100273256569490216781543711584450987462869268666062080042530074584176779025549263590804345055362432833050302241069947025212823601971817630998885814510138976715354345963449926057913698339221345233645200671195610757469752868529511944028806948314309859889178131533517964900307820089764057798306574243796975167956308862802875493072195843887664282242367235409969643457466114458961497636473064930993470663340283483016605914627518494663264673619386349292653322984291017242866719331752062562742537252997970575644809391499281630588408914550004268770694389029531316783290450408273451912410183841110886447923313828751395762782439974449361876010895574970353557891483273489188471030432230999326660337844069763669744980079875683907995594242474615551049025478896775062371994748898562510442948459412217351254771674835587341294866954647027632288732317224290663152149628731983386828383381604947627943984569939941715122508823654461017892060560857636740340652100174816371684953078411774524935889051179516044435454405546200782530320396029886162161023932632950909816565926525954001437434616408576874690140271506341845702701326130378368595328466818965467704816526489885449185860732252043836400480041314947145625781334185507970866802778450582354641302277954117380101345304888719836003074183459484617605011917922064125105785429463337167893601637814387809407516102833421174333120014736456964309376338345386590745426965881815213172426200772010436629520082350985190674570223395892594351902489686953522847767442282535830228867956900236540568086313592326162760668668980390357269425259423120102172667652864592930626041945732036035662945045768548650981995986750742180773604941987911326492386229840496768997859672325899414643606531024472190402295973392311622808661070966221234166928814330220723382315883015865693404193212799306345789093958728634260199214848520513090020070048115360985229759980487058708300733612412494860763036203367323751775331809894737866787559322923070100571415636677247016282184933168769158789263865153451440529359300521641504867026759035541377583187315614810193920828957280857329658548495631374817138382900136736274201556769959661809561781442747779278541511217717609967816236852311058704407032376914579522775923957581011898196401923946821281285637762374009107711319414261072300786269307642801661966697634016205112872177914698386503847594868833343628436032045822208664694103713370794499009313334339084620301904875074480910458884924914151247739949707736682006687087130074482650111053330132812812122464888392368783996447827697200997970087751792155319101443419862594935124715308856577856609470296753133810035822082986373578638655502572237196144680773565643492455258189548546529585833007884251376315942043752340801907443516966942382285989962909470424704443455503192150386647102292056349196562116070276277196592772233387875524482955598255860758799607755687995280684394232440111779240751074136688429293710115480765168998243167042627776131410269691527708039446809609923340029513691975890581264119742401264678906896477795119333573358110650665080142229850818995874070630139143464046133882348701014326261851543960467609349574439391214927836119965449176009198269430385852281298802377045756153220686475974736621802142444013303806463603497291108968927168525969045358426258604733970414315680633369229847607947859452482384674880831505720375103909970359704209720896926278425170288506278570521040531436937962572981363190389460809614827374223312906926957110691416221576440459014130861788592311118395713166162658821763824717684042622607794690302616448601421046366091734608871757368811297117963671476880677667169683661268815761749157236582943769796849913337933998511661630913566313591874660892324900942327865825779234275311482806721249195801317629974312542626801574868171512997956101297820587002378680534145395906603310754240068698601682056601152606580420424290232949114349568951708552358139151766984794782941638637687358123640364720634508476471903542722620838743161571714893948193350631883218291650914962530767893881762373502553991459076912496945562832758548130160849204075453214339500222482212940794846156640134540209288222965681094786081603212820552846765790490477210084618576673550766886726416681802480841692246045106699765382936954070451320311045715868756974680766138065337866257592869119453414063644934213015852146974122647404311018741104068211331101010182078592632417815738712080991576793774935496762533967873855689504691481022477458711018564252591289702488373594331531961662784287052886103170403449569435441860859848049678690883732142093433887621310701634187834078946125652114514328759634173842213151278564148283950649261140823515899175690746756432684443750700014154559285789975910930632059461476443510896341554047101393863753531677976295453650462741016928088318181572227792059831509060670205064177993710420373503762959736319276190951571735877100859637233856408724117016642113300604844359088371735622098117476633434302391619356953175249377881454028312690899042227351757881769072662055400295364011506211670594454765597392641300687733978186969475090695161393026825440169421962123276785159325244843229757415662510410138918649811415743953012770656411430228842849061443670440963153784274060923862676402017930837161989750784266784126274384574990644170032543195158342881463508361446963328692679223098432997940013007699300825609450219795961533911799931485707018030045095358312500412877340505614861773755385493552606941172481092094682886972323681620339011471748559007870472495644589542880553679486251501350762281344722774106618487652019503751385012701382874181851342561699893571536461243770306185294761379768377886204275967925728496005061787363092627228530062252127576056204716039160139265219479833605773723728112861544863368643981783621972400347117216034497438244877441467806707392689679132223367731458662207535214576405002896982776696904817601028475425232524408081301048491576190379788840042450979972664931928442786641853033656345014567859304695760899147195237351904033177014189475309189372317742250772380091694171803625162842287873904031741037936701739506604162342444057761658669708974342323727954797231238678627804740802986349138499023858360842247487471419010377719208236542661225883201480151464240460309518490469855573492555964130949220466713236062399656955576068442244169490657363897971265463094982263756547842078173148979418232277983162126278319745576446868435277826290408699598233519153719490749564011278745959964735519424688496215054577867759020149058256638578487619940011417737195677384904987813442946141411428725177042061504021794128383267424333231492847696279942238291721777691041450068953736412287035579481584098627397826268744389400959659402919866416234927441851262388553685356126909747439635211858387406356083838337407716792924873421277315869249669416302833530592789005404706209251806605362309892725427195986956890927469451454485124569549099716849925465012628185838534855887958587115696912899014211513049520594751609604879851653336785681538839367468716440900071171593340891534678527544411631602737870178917721375512942177572501143799159903649663227524366748450416092599881279863839162739426033422500740517521079728110829459204438553857498168747411190997701827507354559931677752492995732410922011859384953285526321008960214649945383349174164805741277500332995715520959555516120974834030714717660357626988773123170245110386391820072726573782048570778427985960764830885305869853525183404130717238762700729376171466481902856445203362083807608604793153006911274248020883564650576996130596805762347128414382931858930024248783358641314878529837176519868271080122534467981811816218503736637455069621691910863338478475797475407136115275418610344415245881557046060660658914904629373644009701369371771664521133146251444286246001511999992340683634237256354407125522916059229872960094582841239690499870291792137429368421800500415302864321466745037394295123729681829841807241579233671511790364994345959448587002455192013774945669071779992211986977217802830527239308247206110056482548415439323470601639285345072507398694750641207706557963454614188625073275110808188617200108749212273282458955806833351602823349417881309680883582951152822693092557569330758936287905900778602429207071979201462437736380479869933267691567447306108504034231125877325706110776508656965929934464634400352678563882279211266966864790401311050892007302879169865466937863096245664422154882385235616479291684602075460972151342731050235662289845638981809324144609053425920893147494042021754895550969054380849297237860146863849223123912279345798925539215883134099894866076364710637896864704504629825121849829240098526401749951702532472810660311836328857044762243211080978839298295317438565822013827638630230958853822394040664215042874197018885669168620646168345336656596075800030175025384203432650966663627950216062646265527994452411962172839273837601615529027381109311505424195398681744933569470277434870677978857060077823832813186891319810898229261070895175408097975488985319160157884426755429863001597982829192222204072988164138449288019796945621250584361256730570579128611104874986136972786541721638661272264783057109539289098674527529084609012291318389233649764043747588591935323435202492508546785460492964579408830731581455184284922170632215367900281210817861358222148842660104260880538923341502349225529927013737867366606608116340077653068914672294909252813976350480712812764542037421356573200055180757104167567920599091022279786282315442889907084827603768117654987581981727383583762399472196977873717327810824241904040802042468794442871531566678497864236284646434322768051156844419418531541637115421539959917287805492065341819513712222743668686198250258296746457522087551830817963804571585356651616573929809743891072076238448225663260835200566666579541255119440306008411113828066208682795529472163283041212690825098419138462598352142148962639191230169502782570207282993672645552681116392876995462467552507466285493316775942237945644555055153373803284392040455770476870909392093971155264899867894897180042484592096055356995750570993658089937176193535475151771784000120271164596243888142508727639275084148564442809675767603380022916384954381772044192290950502142822948730060963006176175292207114866899779175678171454548709470787568296890922799971461870867705905088392760463423039883252068759766614689034151028161838980141622960181771837955098693593722907037971700336797677347526700991589353633064844362554966452929017490822082971383469789511159683933585374070666938007325618299110154486754919553510454005838525375050823328001895095106969934892756494504886609891180717161710729541505843469464095735022292865097907212058055113066938783289909305726030118465670090417105391419150253085288769711780729904157688727165347905405092090790186535933158950056483858148095136466531585928720709398956188655363578971090514922615035611956906273176062004637532402546647171716542673533796076330763992495594793523839712712214251108915757240743193330928229256139661451295891416159570438361623337691603032807683614707978900546322007290003314989637680937358461288935623660678583558763004780606264435124181368169262459143689690454623274527268227111010169427565051917249227752037378110358635565586486418561525907800946824236248993490817899298214841143300098529160455526052841326066663982972573080880737128709414808939918894785048767204883754826185681890201891831712094547321857753347723872176918960706189212031585240601421368402463772717844315219116054179330073510233083256072249870001597836720724128588479226600843371123192988493343501532711024020334464697206451015144416742032617896121476426952487315343432557196555522294743695827099099415317088346172288335210061563567247255447611118613915118052851712593191848407668256030177786970156733632330662526058142324736471272840143496121788706208916262367286648182316889247029025616963989255727656012641517583354172975906004516812057746956182636855970212440334578986069841104519526760702439824183280529754312324507329684119638297901709274794665349412834506319016451895793086767436636838409932957895762657596850761401595447493587183107694483865395187467878925580669425626652885732150256919974599568428256798231993601389938475859388047019537539337372194244086645962902694690452244047778384820213549554192495090105465874327923098800573553227745349795977511680949819486243835393781031532487396572527429777156308062843519923226451044466017658189191463946164406285972959039881731357224486016398768105427174510547965338072271181208410218020314603634637672627405906402440839171731029944872963539571940179909433151601721830083178914109964503362122817644679659502008358982120268648917696469110488964268284242079924145381130624959785115697806128712137613107648949859520266641360491179629983038806015556469267033081501607941877132664959916761438548100395405945940280739661505201554302699254261812551350875642568012155805222049635556894863044327187984652082467645720697533655317836560415167424645985101782985027887263285435492871388525227461675120591261861285073461694782727146053808152267527211685692114598958331112043256543822430998694641103613080867979910854407544279636284194165864225677807664747105578283634327663895622457997004489376619854045636220975449947444331347917654780515753902350354398527923877058473868116212476574798061024388471602127234611615629044060501679591872754955408122150616887156531513014221070301668003563638503143092031472906224051638575187803716234441176607554233155749982862893583107179679507079872302686562874488327452372002915775864584465590362540934867442968021772793456384972286246532938043159722166095068770682041988708037046997837104798272045670230310412184384284733072329061736939060515622195077889954094319043457594414990005216587716855375637601676687859591150403129778413938233381140329950454776455650979430763291707323756805490567310063015685600737187108336582720133918991949272864163973973437918529872955089591884971198811790686457562012989455435780256088776260694168210569957639871078016149757707550163455251542929968788532782731236295909847427272413170151620774481235667347642242549825931289043743209421671401482777303659786977903081008232919111220165158115968927945160001537002569293417488446037412300842102146107941680334499481735973121599751887293685286101221721601064059470658915889291896062644592999682111876526970112303460779183756100042796208866907655294180578321311624561367523117710165104308222790586830809318897720835423771711925584113497383645220428035745808477710251064680712002621899396870012995718915557955994290182332540261516604242643478746278251888261776688932293234511652562255853055102350668942953038548746179592495266891430973298337931581710499358144022162708684791281701813299123003892177502645766095087471223786000674660492299351557467177751762171795038517921229896418603798265949094917993718907563204942207064244391698522142232822365826620159731275113451996383821820237942915256248564132213274319680084420428977272808043913273358692378226043769812262118252015471996650397611785506094168073570881888548355304367374828595164264337552571480896553710650212552100324118501320685876830550349384424127624746910976696535217944222280560416435810297902147776149906556402512898408245977515325272849730535252078087043546846393141150030992781003996625961775240944351537263494073499890036520455546175078019928701488261695182415463965871706834822072844839275976100775270529169254449604831525787842038949108883640446385061161420795675374135943556102379623204575018416803381762643103498169042034317155666804475297400772056901851109836788094565722963841780619059910293586262926774827942436412563342569980654705288914799886996096121333393771691957356280722458856343146589021882532421739525014539495097543007540676563371659436633261751928176085598372866055537956660236353231822727027061699976098370536000201812219627512564354214489056450786972894311636115353986418656015093377224176472359076349241896297460873694209750420319775753921664575142567401332904020785093148288590568717562048846706912110351667306877407714529844477490774264368894374228248432368072784721544592867604151030417172573466325326365607856944863432084815586500624015734843227592234632346346414021493694922794934841667057333365160808902240813349410972293720056618108919439378765456832327232854364432633210305676256483188917511994640312729134937193553629872987350324131888800683797427892439215737020090525403224720552699016182811786046242503803621112416237622243548123186236858288246644465833650977915895158187748019987206393350133136643355694508138012722423813979065830532150894887995683326861850996313693244438678831327808328982810451886656656211061071479898475556194213228358979471617247606553599655061368567546796965922085117754791022172938666318148025241825038080716008306378509987725039937127709940589965868597675538443853454330929331435954297028423496323406831241579426061858660521206367142464843718755159329585141861223142382717932811009291382144081281265752176128382046527750333552300418810237420640527785363816649127081940962762701613522617156971832010252402026544850734484382308443700346320614793327706651444336999387089969295395555872141010690038386766204482782645620699718136274338856348429741421214349131545887820236123345779542513880205174284832520941077802323484828566766344149941129811313372066842324430973336473358321150233877153061571275524694075267005849037225250017237442427685752925947734689378243717888970920074890531452978857113417990479312275400734246801022794346859609177789478244481095613535352880674538921190113487431938698340810599423817260865761612450844263612075876763590912801137831989449137797354548914235637531427228154892709959865207724980755255404344335881584015279495822738530434255219388872249564405906790285472881266953932988977153612686864623244998126041180582709120121841801564374546639707379296804195974891770790946500217160163547339655727734212711264016218231173254215088345976626500814425692384708620913165943612053296303740046660428584202032733285347398290816416222288636141372886943033088475965369173838170749970531107732007839018574911744453238205033458045031861411570219912423865368706349337113180577792134272042576317843794354746917985515552414558879382504952052768329396165854543659373430313238356133552249283688632021492458968142039057963999907797982205310084751443212482759581490488860116227706707618796057976313447622223008883425352721497429056755375396331028217823955023163704503515452642734444286634765833981570855026791765843104205419518689903287036298423345626719678184215865280569600784859853439531564218191923096742265939893757841083996236736863497202863279549253839622090143237232251136521603679393939179714577232789073765481018247881679190442583408211517589918062798449231425106405862127710497539752954585406127242226985793749157597819536264882417956679612146436866723150547882806764852972172240710801888115088313935249545689189199081716200991443132737557328615755934678886424374196818877959731597422214897498169782262005206911737850946914827273274856015608617747004726982763068834909347080137357126418879768204203655761034851598463581557425351645142830292732922355051082181731831322671534137340940684514477513645216364719213024797150060202210418925290775801573606841166512626873650823233490832983699392209470661882476160065625885188942955616713425319616039962523024292698256088936244945739121538232513653410246185545123514608386175337647248430163507130760634195282485280511870392913389826555784119088991722206708228722902868298377982258734329933768902464732427740881982911902709586794645917816402202312415028807858077698166487983697242972994439284589891573551064602550291498267993799218417190408227562177558245936644618861124343078099653120978852313267413258608185283157737396310928478732617332377689781331433025261406541839136172745849154275313974889854943601422708090675154974701166022512740721918275744436987169977881751155086137291882507174795943190308598261590977330733610235913895085393528900305983384701120672027005221227183145061646961768703422164207833390924913211888770466712034353888787844757968842548925654079033968485785493585048469835804572276710419048414275444980824323837369084762666523127742231908556413663550410512061459919519803698017926770555248035712312826344735533642709349607795581099777245327233083379367547485820974809025957709634803593296438811390940593968761210385381923998705862973091929986480860612188467234690942770580501286850376437772656547205645906619830373837188080095942867170175490866677783962655890746653065279441355426559345398412601684311046375192313044011299503876669768888925857454410789943602690424259883888725893499538065651734553812120382317248875688194908281053818714209469222759577522071640371186896477533119918453519171615809441503340362991614585918145807634003418324541418296111213399777410426881240397023647616871869312657134535764268403963950303624104753587866472145880667733012379520533207369309101520679633358731974680254845652829404376515174445924180914121774074604561384660138144345777083662916439542780605604779888178186280138179620289056436029868593060468876150729597459499804675008291965777587474278862611179313696887023244953387571577639575105933921182505732871038494752637671392475718074242938958532685814893993100080027550953203739151061991096167658756572555471709630258283474471854603884200107701566134366924733481161791318450193181932254655226351336174456521496266460546012624014697492020582848434678654901648254537652659437659591925277087483696525546551256913627863134515952754019966194964282016664144723374448283411259607130026075207640791902061094785002232312022441696968596766062931176123657691767422713161597265590317331458294007468099653767246575476786292583794612717586493391832477347976388910491209800916805985078360349620332065483721396789977395310752509489668366963048213195745514044052042095986334200320782831793117510653210934280384414818613946006502953090852330767849786960304545288100141269509764050919933964787417694387306115111307025982303053136721347071490196450630162499469837029773561721284133042643928359179939485563974849736104547549522844569589703350021605977570127949277272928234897990454117801775969581961215410196681139327561213309663372823845722283783367362124761927050286249097896668937048118700414775763280566884369631081634227756297942430757034038143503768275201667564510958284015774098675643999907026289792879277374909573381510787572019461857002118377162204991015113595583279289814843156599809481338105166981389736544574151502132020513894342750754948750096310917360501214595496669872407646926460115248508858259040411977534977244308631711986496035799494130219082935773378422101484398535555257599010980198211863569563312711337866901957915686468912557574040290068707099885039263931680662146857238695347365980658097543898313905126544680090268927663306937810423781337260901267770343799322162957826700825903653763883550087323293483238224524954599691519528216597266833579510302819424540455888056045829796728080771043768446256957710606679922333143003000283298351682547460603952370690362277184087077423611303984109824097359773658814492525935106729643525094962314962002788481301069762479156462503218951826071628235854637476609005388895473051328202049206025151890181819988840864150024654114182340286276200354659444959402089262185865715413013738749622180029655246430874198534487069518421425041535332229944839118757787328896242414458666114611084282521136563013831655524229915202918812515422098869498436185717221729825950370247491231674366855139151160778585187820793741409913464885804975055040561337407483815013256918682776323727865866912292758057669441265903133612117497241677825708667068656287271460462667895525046626243323908535851386746480970151407399644356571093654357688939228660389772287910969494528823546980387789686332106719019870495076314881257327947318735663503949869766138341792280466480262099040183119419688329485673914006015490332803674362344362319617855455901115469527358419442616508877857774030351873841268558539269022428120335152544275584948317013417480170377280238907722677686574201619806992597431898584097044580364461493271827260310303063641322583129128705221268642606211152260287873494909230432884845228359599545344067271262218697638928667755175177516848130608346652561734568725001230206210437512997318425830318107209262735488633743495887930019276562610224800813295970187730683610312743995437430818948481007557762780433583078797735375452300694336223583492028036126139632898685215581531633729462856497028980574877810170062356268726314800757973736679296430741198000952955858669956046282115264063853663460241115785926070113191391720104798225665501364214466541158401405545357714452750131498113953269176805652690855763520810494110937590910871032136068892770808397256041919359250817923081913381106501776124810966954974819782530407529081119032870806969867805362448254653073935526543316293948011702633903097960139851294333140581152396760298692528618373020285497721570675329596970413512982160858093005008139387208420184508524506780816760335659160366863142341632474140349537930113367924976054359637068319107202927328284150631305938347633377860733966180750910544864472675263564341780526689679085458546378994627239210985926156197060474591732284671965480978873741295609406245563629305245815022039378552280559497475989641534880894884325295526913915619055772997914274354766507917749729884290125142621092203063129479678324600732840825232763152776074660491396006199909966776129398775783670414528736073714701777137755542231848455538124447701169933799270398462896072930683213000114042998848896542927925064858689207102799079690136331585764113147075686680235799091998869481757147962418590583355823841627977111297051776405515271434909808801029091675065586662878852917752535165981487297516324840781905643792873079521437571301343395068530348132622650675817139565602199091838715670446325648905503658926634434422370222314657117786536814256722174041563493583036769449146346112124605116996618161334365901031621968792307703065893275439471098970138476610179492420322334296096501559469201804214841535723831139104564101136121884548188081215419120035095830011818332391741164881082763938325192603351583869653921816962548666525785135697334415022827304209622960889825235916306990836705641453956664963167550295912782548669929526949531177678859897810074115531226662594500389129671159112868400497638018243486211218055530376597588831161506921528945979686897924093503621877974645598967679853655152718446412974818663857093578315745330509389654248546021283808602998505114605855393233583764073481736552509834728718777016411983570189534213693220446546698887658082020133295082443941799727874048598266651786857762722091777998255760319910024767135644734901876418363155348739304192283200828462839042405267887425618804623065728241897797625748157816029483635391516465371309369214615134093363947250470862681044004462950179479645492253767767091213386694953330676568365862301963752298259322306111444001118670980347589944600041243188139528912160804293258253865205101059034148120342803595207756111855164247147064655886907708612920809438251326444704969116735558768044794845856534692784685837814924206680882433453459436318983431978473891163441806641334622428180275145415426336947714511551782472712908055988020159908624666423852262522027784462108628705670793594832477441592266210511061385792408461828690278211112256176334144598930689879146073939284172182233222603917665176930943734915298559552462820852012755503036862733816518827033160520036116115941099712849483919814079769019766780542944416004060143612350336053510222650627349911733268630505143106763587957300749637848290214759291763494865861463986777040005617837719696073866667020506833032125485527595358901760680162745649124532358004614753115136785893150886146423884307625172133060316768718818353179037690952847726448135232114735572480944480973783442768647049267505924228160184345266498494563720373460994150417513434791454075402212868841727796017441694907519984772256431222589015645091088908794485557619628231386565273610759884880097900278355876333221918440329546396414467866397847351670093246396500292797573990435954066588985297670437760386171853134625311874536584505161073800159969148943116603920359951384450325309790761578789399487793155155285218287942571194687943407906633992454556573399721073728981663275769526589170219961961256245451967559435849994720733599448362595163675177302838254866504966692886108280078310234244040062945855680733380871387565992592158314400224165494895036673428600078293153724174682064854920580640736869608215340480909674909236162279619010820381350069782463138972735885482828124388765719906047003279624420119315698916397182392197045795971818377042140624924447683483129023748857052439119550952190528101165798446492345334321200773178666253043394667695905150863370769309627998532439212547926489031306546549184566888338001452818760662061833140555187674411071407455442815895739584991452747432732686698737413701998062476084421431069290076418254478287532219878209768561946716420820450048130217356534342964802976125993320344827011125673528383794299213394500689039918504284234035191897439546085021113494055806474063045762143134437673811688421418495813798098029208053433762309238321509869732628702296537496046775052191962395371622423671572635456071065056941117699570878684110716820988282120441052177969898512355183271843681470726747388051814893760482735220753455996311931128352213496164974587862712388078982826734005452372994262660305449023517777706106674532336516426255974773344052781585207080582109730236066027444436864602489228181980689949163679782150178536120891577264013946647158762090233330253739585219166315333521361677310427762798045524849371284759606080846682892871350049973479332906696137068085182245433731123071674476095834220983862295056396297069689177458810026885732207928760859665562419465089042216017450484221720303027819974132543496268311327105995781152729933152160080997541084872453566367964364438771908285578017567478446519191258388072225485990050573311003073239585611473984098820519662518065055585702481551951893915022719484668419690474805655372570240391238339178477330404113167815617752396273949916712776708425596521710724815883062301242715712770747548809970588929211165098556002892033779834881017401276531439555819410260616280784201695671277565392233722770767560312160006371066632628629592677511999368531440013270420030599650974781473067573190520395863520146628281636950925675064797182431658596446970997801175972526241395120170596553463302313042817976335567654302302153770926008500829525744545975382957368506832364911950311279520032891381788917090300503301251183554228051539747591894071251495917224309311450281213400557317081385136653360261524777954453250026974686284026015861426687455322098609504963585747298381602671506613105187890859533173231239207926443599338825250905243015412171321299164635834468875689551751100391705303072070271789846682914534648808048410058333070313815889781859751863373947880430590458983676047608468076624809141930084807779072369216713240586023713441145305232177658011796332393805398349276037436351392475599632340650154209306189078276951008692302549521866989360222383423035249455469192726560115227373213789618602619334556854090587701525252179275288221682114765699089843060240705251512471460274213543896583441552539009446961163488550281812536767074353094748493755481555024890146028380577790648996494214002096209049507137711946759642087567445984409745560215818532870498747543018623575431152333712598869027320665222930869674543987463578912088166750436501556755055333874339404613519954759859615849775582225686163827953729553260660642620453607843356667434997350779139449736228924009834050207566713296327747038524985498322963364595578303713440128829465222168105449494860510402516114338648860909346608763002912107909873089426665578408843184178745118876025432505728557637913891053295049383623570738417185640756373618713951276596520746484355667610145586781351696810109747277073617410790947075902689447504555726317850485467540906186420648210713988139160368699568731176464338158747991298614069577250700230887950141598035119361097684634000587561418771135834640940901381030098399156095345251156942979135365742684370336572206783247987548708221078006308191845410025536365737738367238723748556998052212498416896949474565981861023193666780592611995004714270598841838449596029981435965920577695777121281778882623750769448549567791814448254458796060202487643896986333376573068497314996039692953045972475379022615792511135943673170445673282926037378081498686571770376303292895449168798844509190326294442865364864830461860892255660929226017662853458968215205196822598981319858730112339497102658760282548668592572239418542698090056966655067962151915471697847198842061803972463826530735198491249964692321255517372675278465714115147827697637453342077951287108353492822084531867155393695462553705624361406660528196288265515134421001115274107918032631500050697228419578971114979958465700836208774201563521612513526903308320714572268063442513247491779247692088617723907999151726972150530146522695092210930782071043121106449798383860138947001532711479169787107014613526935480017049637587173011725023904398876079884769364503092828560545406201335762654893260092680314028985224969856366844258691354250856800784365233589965380910272158698989157427077909685827719900581439430118820335882811186097752767431721612412953565650389463193028856050472627886648049486033070212335580376787707733817642309207516668758208356352345988539519388852432704749008519204426054342481750814838273276273222139915743625331417122858793661376390228712415278736204778742004040852417924234566542860152598020847792586301159000546399309896097540887385130256497738531080877160549895689447387097575049359984425413796780479855750990980837369766233183149926204896233383285770298840499009286094301005143038238755989786769907273577758299396365160494971697817158030765947924309074540013619640623767147720649418101899027085429705196114927227084128254521393909162589033443049712103751609952568206836856811633976641531149134562462327039849061697659139912339260135923594190619768762975029737305320407615572606894964385848952519959851143255391822676720418633444149384944232241751582146250767610112651424790786542183246404246268188727821051580784770740257406946524500700376628870248652887082339007265346285771203892943210104385742917153787357816455712262851300508518270853402531962945458810751057046226185954018976826353505678122592151804675078764588036060806496722299741183761338956661428656259763189626864471072200747198227469318647535018682785193284906123179454765733643161843590835289145715080772108273450543006642606527179141886161285217126880844902664659472913316265247346150974333003608464055955576703110959889492856606739449360909558292947553646510346171312929581644921719636737890605996062663452521820799264394020719673358144586551643122539988948372105900030195585109043494519999323883732699006579794032300970321342983878476031969169730285509043603482031416315685864251734760223375614392685326382254784818073444961898749901073257461510679624243296661094207662557539940154942238137318784666010361133596752872041097043666688110551362902396646468857944950470198441860753327661261397113974155607206819757107753118599199836096337646052365516858494186636207732367166183020693391638263904238460363919703583518648941954775942525310758591924112065175014363916556395245501351044489044326157346299464249484503879302353756321029914455496581762327915248790821460302493220642209570702523774381275200701010197215327158528269535253436579751149914374684493842238850632719431170050466217620207440571078995451091490987432523423125425943937706355153923095214062773235712489882210883352169951788052652620674035713055032681767382572277464630176979729739334302090791429995054096374831308778700310294175638172257455859366086222960452223504743580172858128279047228588668173141402155903256446290754174501114775389115596950488899987117137435890858924758567635332599378503352824054570293791546455931095681246616362943039122367175037924796863511680215566896316143810201304231387231782851421729156937131310526068407415042834691267396371409252129557424557968239326860674619849061513862471872602617245603659697129241773135038579813868597775667762623655777116304011609710827835390966076442214716930722517560157617937634569238167364353269675035710275676205056758110076089172412051444762845805616917156341458644205296496437684080728807776566834629480591255623375273955703436643993842327769321414917062036583120354810117202313965964855579452833389916410371179805122318148476797348178042731035728681059967778781096293308381241375494542831710736720542487007414105812682279741258858594871718349091060681460155559429939510808297369914297509885582010174959147205237132335501371336403505159909827744719448217808633764496105242678456669298116538308255627276383581863854008942765189635174789317283521338303728680122682379835290432479931685335895863499698884966737514127545456203472065249031805896460875453808816741194286538214934197440737261272471656630545564752685677946324918343283913666710171842483711427458050863901079403544875522714691035090718351993459087822032782504201901897421763707187189351197421426506048321220591284267815914489259869078340842606271032093953106166609855745886394038778800533796540259905197060561665068869536910854087090130889388980260718982793567182523889585815448783317042074275093478030456394152446514632598840425584684163068994879598533113169441012050959778794960514829658291105200347113048128187019948202332134175118773737827426054937157065660944252635308540232738978711282656428097421112520683230842359833176050624972444417096938450650592665255181087493525520567667597143113863052277901892777958820592832917403494357358546935653260485935739215631521261052716338388883714244148187207469458539054062549835492265108614608334389888873422550804898806352427249109013294562091834130756195502452677272157486010622308308766996910448653435160490074538225364717318368773903285415865376676788400193022828151346521477119022441764014902614985751647538141911985649035812987981709110024037833465348560607638431226508018543630007049793108393196088094973130907043015787687791122366521192199293175304218768389762155538163978619298545615538290127193486693492061935269031232577851225787622477794454871287976384183187712575424848724974045851686693346159960176293870033795325284939020332078211894257922613283495201308335004504601492856824057811091949537060075765838319579199089313715996076070798726744115677049591511643733272359688559438745418949686457698326095189219651610352885667981147378187944618608445059427313685527838761504422393538063723481850025400202385429162437143788677534090042624087028833048736091830158816293326297529987629063805018400422053329165725581838901788587891249584233312028487595781521453372961622045854037954502347503948100350651561364651368262901985435013371787716030354382133312421386611998269737721136072283262060315951066561678162455113118526630007526293766762311353083455926385956007945238980897044752437373615487115467463637306719079500680172810828876646616046288202403526800479046268395792997507282244133906652153689150162371396092195499039780553530185421097141490178316179230449940056150957582040547858683433092654673833861078668344006247034858779940716650094856306834522717936384270548481450036723497994603826812139913214121766211314520918904959671111485054468365214858368067741267495564480213605528799131100940346323417448120120831015819054317663113024432446522776043300023360920348097506069914996268441983563640586679188745552042259561516146824881041963701206026884051128452984787929426757283852790276295325504942934112506635710386799412170333228364828691454181081247165185351807267397663881629016321269004431140398615954409779476875201460799413956729483013896253644169103377627842260168244107925416150209019150561501432236018903864854557743952766981328838606446013830956031076477864202630435129367782651108326418127802862634298652214854148349722680581888187308575292835961449745634349710351992048601350822573735526699845208705740782278271934405748154214009211983911021930053490651696975632056915057957652847067986580129596092462945290018874031484825163798149709590088806485074802261673055089413841629149883096849819072555650115615080802220400076620116866116453940017166834531520864427482538645950429859274024002697386565766800542133576507940393895131738444120647479558055071406319617039171208180245367432521284659384512997260026948121281692559796613527020962426089325991046032870242496632822554306703549259801350775802306717386815874126998330385284947626995643280080116528493230707507452256133514694018989865604454304242602578911219476705368888947673074159194162334772885900748600773535911078842259529654102704538462461634383137838901384720132532198260245350073718780391060605201665642230465619747634017526228035529390577507494390462850700919098596959157373307288361616986979206929414389578883815221353324817077692453744723644554615690157026328458733643482705642921746649370754620053115222568841267150429321447769826705193247157406329762250754196618695088562723764076305479126561616391407643989904863451033357023590930293857018509390452927566861668756981501188309196528059930338168535504560298100325534693874542466109764019137747576085267205349565034314434395133308006582627129917595308898760329976869389111393584098022557275484389887422890607345415132748861004651099680352743590236082878257100185474002983283665760222390832140702139400911182074593119465327020973602535185729376903849254968362852102999208807514534459220720226674669765016258395526384855648258715514652536522484460408453346787270591652264923445806562670557721264846820500524911658796940189227873180964106382973622069956924731105326063881576935655642556519098529355792962780082344139296412667629321968442066834985348104502856103722730587410232111392232204862071534017966321269734316816536193700426235034386100276034269211820191585495280290744951835993304069528254456670847979131632662023130466134391277633173516004626098413884156720939805009119259046921808970039147083366061333027597993098405236726984307524744336462871351954403413440874354203027245649200433522164563245344733755209188110904841254391036558859406055589110113174353173884166372964648069730853799385737298287588325375158159119945284970149849028556404851058650847690029633768043040376625724597087758244408287987249289077484636209624446137211924669716367540051213879189714063625601949595254414975469579861556084049460997634307131517419656563501081410148595811814358749367567789154397741937356079495488825341594973637153983245998192969734431679180673987249160880692520564651706325097617244849565720345315882032230680750455592697011260208864051828675385616238987058956588188924824960381122888361564322681978468847389943036345354504970929308977960214107131634131230247584307673387166384656410450760033583804420637838054925684323815352251067078002825770177058997102814307668003924138251464834846006425668820541325086738414841860886651909391847655799605481689669059518645997002162768920613761329671266501104012404117580841836839025051349922048047043959502690357969073339904338720918300397595546114806477368458479685281879008670422389825482982311326127750669335266251834204282964124162284941874012379281026474825178105502859252029045494350900295704237446462980679641238080522269557401555674060192343101576289508812121734572102758603447760416374311957563410127686503906997499202893238642351389429395341948448446965898966027558468231099522502166294086929234848780106729734995583019941843816769468367888004690901802575003691077140498487059119129588557541805588124105054309017161954868207892865924080433421335738284578848303072641929593174776237197552396442747655835771711665864051295829770871061969366499028073372343134554447866206275267978528632603571541099929850818951268213494622880567224427271254533417841717516868761441037322851921716290481402516496016352354413895646078331415840711300524878635101978133029913798579354701392057708429219179158720366052471212370159384992127923148650056245433523594820012162435274993224492122071211090598723167796485018022670595029570402914628282116069239699039314777153851767556179567001572052565262711363015815279543888014011469520160771783538526670876066519949023235980902186598148853964252687265575838084907567667371946972251085465263234741869327489770136118133360781556494202712412674542310571093403882173417874367600354539993209755535273067327855616054261357155039544030603215628805380282498608673074257770951380352366623880593359015531864816224717737244958233203630486494955822355600763849441235526509709838340091928108329047284381329873217684388112622652363197113238420290108228583479605355579815087247712256306479481331243586297628602489736279789788380327043028727262909046991594099273504342350933613028504628699097474583758054512069146603632993097872239694587512485274180157834935292040049639972545187155593015738750629688901979935381846807771272785195834606349382765952764978137535873330652060932370335186571021658675378048328384177402119677722873065386970204974503532339561805791726532337446927188327991416907150909186391474060206931883116358481079694147019490032777497572772070148094203685452434557958646894245054395105059304078477681239326099638124913714453378222104013572268303447191161485634562507890737489188871577631186276888520692081125190373478956861773606124341595264716837738912964195183320768102628977003787722043460839848020128292586377962943487396183925517190840173044385336102052222027625650042450207313912490434730727759193077301337054301222646772159416172591472629605522730631611529225577303518320578361754890372877230666982546694437605501367699715971295892808357008209852632061893121504777298168948616029984772952607173985141015947389158582363914332006829281741855067525107175500175072051693467092387255487270585571155202442292268223017993079253697881063017881416307193161639307175246713021077229449390458674657059706176630281701612338613381431048320132201715719004089014093095053889072680752814769429144520574276663730352148763361328397880918302544527993090351995324716334620068122911081548183963549270520810561577288884979398802625590334592878261332749517768648223209190282784522953887534002884156797754776914722127320600154795182573907158059213796199572148563520375690786793346313419235164010155636600016536074068567214744485935035257113982039701461968357806884408756994937784426268585877894791538858040214680972610699979807019027064350099974078898884182270185469830169290355858427451559394404308738769434964169036513554630573584544546638156560751021833576405541972039524394699649033014147740493120633721738072965417814019061974915798957672407119842032044805188401550065264122823866636240362169797176370830070152694738668948966431355342220534015162348872414574781996707881221544288209348536958023707881918852764551776381190128733323858472475391068529190954477891512014020622237705083953380396503667516227972465691972525639831563336122347426116670044639285611671884532478632265108709178112848326278272407358523075273869103006166840634418708315981116413861569212848294993858062666508205080828700042162318273042922892678291796498682875224152016896564930250453203201216441526883594404350115296118524485050184705772589650883255279098442277436857951042949556255715131246531281457128143494425268065229147325316277289317261262096952026674782495119928236304723360915907430918393155533583526625458563724478663752871810378358721531280196197760893980787537221464028993111673572065840445660470717773124973704282810957306742967420898712804444757536901594811443552975494003376109080084887889445665115383595066802310467410338615851338957222077632675153661806447696590403661769977648580256081555861377395905863815413936126032110748190119285631289569827875375309879099402841069995503802071617369608188169670173099100765994596045253570523677030814392637456668153639401151705566016621755079915037336211476257650150170045229810472649759965071585512181165795733642475130860851604065500991022687682003655400133830945280462203103300000186377109043416021283963025711120622624893935972513301256776088563549302969355896594487947966725929504221219832438780908476587568668639377566542351755941798425438631638666751210908656927398894473668807948970649595689155079933049870345914358997373918992555743408604879530885405605328253257173827115056587989692308734475007411248148081096423721409433800498464808436813123935377471587244109248281359596772245945368995399581693490858505868565969794605773347500584131780280466158885593078794377223138806805010155258966566400964198534794286602499629238007024742056317284479702562399679020146019169887476853939685420802074025225681276425070433824639344329607609901517412632651615675375794627475098944611913628155084051927943562024180658117446730014668100675424116602125467809820352627948597319484096587563351304397510352978915895483847353883346103962805880407977010879321523307502168253390120083550346605756990715268895620087363685084091991966783056223971936031797782863203151088489738386696123916242517886842455266369940741802071665427929800737112606068922437364290444045780231800419704609482189933286989564566367870378802031136728500433477097553425518872236503856444244387962448498539659336351393004497364205212356139174867507357222958972121111107543058968004561185581110872544365530279330955136680447063126140147918996107278901047991580007988457494406100182371745309566142303333694030537813787439769062624249584857527902635905029645466606867957073243554741582495363687158665413435394322737984728779725388433613346285274826286428163666147522462645461438713521249886608042887169061677970497937409466418879552319064247674793240542364891090064867444085922774885908743911544272981033455709731592838660666004539575972203264538751626864550908254988246435027698291850432070021432874709388754333263371582355226360451464914677287135849051061621003605381183850144042620844400625057076170859494951080955954241546279666775615855239333650668771249119747335022699297396835446787161500721703894698967388692252097931021267385456494016515829033682729527715518653295137913524618546488540144248384665282645530616248740413658669471769628429656947678209802698742831999509157504701359981913735464151266162948729014634960578195771962919069806789331125228509937478010493152123997799116708940917708788717752941930210312916912428574306103333817298464563499078517592718593568566431678218476646009259511337623717490568341215092263782068124338438620697562329003517604446782485820469733498048822350922081216156415798772740027936655781905128099442963839430042946629583132866009506265275892644483682282283292554941441514318640867143261343918437225650061970024573416894955337297394943369534124155210791099664459791689427679121185413413995896681505986189060672976782339747048651012445741795916743719412210436685696677576166582465460614547907430800095817663962639293399225013053559203829251682984057477765568000284453452348774486040509774054043458547675821084003861831178507182029708589797373742465480434754057469301574845855550998068304455677412963207706698281316417340040263243137153843198609255229742698731641439892010402680545401636613855279593983507965668512824321835274002814043243606350618273667821247701921522871637480776014534135357017827585516688721520408377939495180824643349663482320522558524868868535360488798691765423517565216869224327545658856578838513520323925183828560780746595209818761582392186964942438826848259372214953396410739661321093054184890304337333802930428606658630685626747512381434067895898796901822591526397536499238101959641565324776399472070064711209519295461044039320920988853861098433869409218790265061494707637874747423501812879328235372974535095698196995405074148246090908802947303440379322694334906530967062022245962572236493716921273832298568877202507784768548524804838325213738633431555466964823419592141210917819974811313331429167094264199713913637473587741359075748568059897680811504495740634728854521743964426003938694365558461744442074281804585347157792247208738283097088447031093297239606185928815615817445315762224363965093290624089903391345696345326486174671241810414814572987538943444491479903977454048388776396929602709630284762495077035256403833031868938748132265958028241286907460060447032810430221939333729988603251207180542063646602339477500131162695138435346533416094529025361728299743049549341805578314008029356546353778939742506447818359021988429796216989955441716576488517554662941582086840030340952257783154343123353519255377034370606631229423168809311007617247133785941913110670070463704650587765763679946333774699709627984607979825225140330432031279072066864468523965478371795554362904590329000779532303455638374206097728888435340614310217829179924396441739926010159920032488661388706568073507634981152108774469642249471136784197790271439304174859854914682041659368044823544874167094433582928272937020807008157994616098155606551491443193751678952628540820237021849482490603866452593215807167976330808284477286401923097512494801929868970263739693185474916578814666227363778652309494513240793195819463301581810543571781775728527021342464739407565490747871249769006513770570248916601364601866451001329538940572167598278046955240104323949796095083479079724331870300063684044878216304350984685566094889696082915804346563689066771647291805994164617053672686393379452446963174581465863941116095409396177261008578512008330396934177968955945835522041084161776099930066015007880853805224382388267079106518927915315439779269659915743441492157904559248685592908625808733201287780386937026780658560353883868188039171117428682905820620527920711737960466042658111380328345898452272744088266880598218089280644014580126940474540766746821672186181000093760100330566425269312937122590297934169574880069004397597251847657353378562834507692641336473727872516231865510705680045126373951947464291897349313656236566800439249534793399005972094667508056260408511493493442193231456834500605011395424830400764464836258448974087644812504186997549580533445718775272464848813490335804555746800631493345724320856037673726501157521006857127835373156423828201483060161704509959561164379352384592051988316318280347408004382085936199813300532109225266524843448853686906573782939460453897876121474872674254119787422681756423408223010073835388113901897950720592608611829929551436970520457455726674168244705577880290156022660860705055326061719905216208972276440495947678312763091651364728336945140560910451118471090699365211731256361040375399631592620220330784314549274690403316291815539331656877052795773873240256665822297032573261044964949660948833488416321312783727006731202216802167764100938625821471043188464410594335405550189954939987983852905340558083496879136061556523420484749898681213840738223011363158286175184664592031968568253572399931975085930517156502681942589379077797077750860654811399107641306255810991754625443230812809266349367527978182012299702438853721993361246657996785937504017247331344480184065726781758190484579741838746692586110070678152264012649990677664488376488434441058249729255401635958481284065929874133902000187251110955159441333208659864933124984587817916191518337170321897425611222597021081376708327604319419002474898451105792493509974680278518233626535562795801241704550474130775601833232089102740742675011298726849618691755239780560945622298435219012446068377461574569308476919064947430655491677708888247083840425272587894882567681383849452731198547302263310444683496905286233902591000155185074608185635846329720258845179157492969619656589497928764831205479930018661914154018653598071223671690349103779731863939613887758502492449826529236229457593811252972000355433289605703034255552330603695140452299010239467742977606450302269628221663052715958573559675070338307153554729356524520975200640520256031359992238751946959815961736763881906394926223638187496143137410961673646902405341766367815704241792084094712239315987967698502799766317252921505034567394936304557586907047253587931262624112721730871121287008444211272341162432683743413653195712374585058390928952644795748101286363400164946407161696246823116792950610444265510921223593196501816571974212263655390624367002092484679615901824278891482777511157293469734501482067153062465855145741731474134236852082212702187536939185173288028631766247643586442870677158030984443587401878588246881600284518655863777882481573792632357229268792897026671648464774783981766064233077032069808419160092769245874302229402397547357213422611331582734782444497848765423662279053163308585947543508690196693217528524146663647716202578612879288920013165269697718622530568140638429946974426469031839107443328627199534069529664313708870289841951798810019068741352402462770619755416193726039835124164452380824839841088490605251501691138019401726888281031621923610018220058464142990893908799217601627742774641087226981039808565338602842163479606858791382197165047604373522275886743043921717126861920857087386911302525415855323455212848451811183705369742521254983418054868135075605207069946712079441652611788687735757601998417600880139055667091175034312861594519400543298317304347324984166359099942549336437698935001737429259595508547679793851421089772359196885790333463461515018533179308534670448591288782065879004548284293330047398305619545997262672838116474685998481430705393857099719566628510687917480885021863133197993866923001753596739693336417297810744912045173337870801492557742570089110218052210713662681440760355259162174706871325613227495607724362615805675928827705675186472624196628312571263716755332425965333362541322509600919910346501127100591403887351872005123628611839030432861065402535513067091809158530403028855211290182152704244271158232611931211042937880420374490187725735788799833696483264582322724271456552340111949843933722957649846435701082742030673298392480851516100922581310419720886424253421114337358594879641046999328402566441310631077450292233017760455045845038212251997112776816890634962643887371995402489864803933639578232659439613472245884383465691067175712857723420492463255530793156249149236754167971919759229268441755720765169576009129789453619291482423437030685700069380131765088979027905528928989749295864786580760548606598615440052706829660114227269347561781424099880654636259479132755859271982887354903420242668859352484911258046272301823840329022138579066063632611054761094509158066583466682803891703596803877929931171029536708805544113551814618337963314195280354779414781489865305268387852999934231760134175054402014833673220542146116934941453898979734228904546390368221520911683359942573039694689002298315125079797945969023341599472248020724281535785303880502138853240370069000620822216228491770587085873268597334781791794687707301162984910911085848712845688048084435241076351668260540303793436396905560149736184341791714405236651166370280567123319209202176612737873406700262083792562640553605737514271277689928436460493011976208464907973208514964610884445204583008006301946521471383719732714771636337944558303059751913427935629400398137651255335849433138363572415800313778061411529841108667633177783354241662694534553903829595741658906384423599330817220384894030335704610320559672501505549356123347876636662562297177858559104282405167037651977957902620844207688038636537635910553667303666400739805373071737895630286327702726402761473340585122235788134448973733864053874466545695703891559821765621646119678131951935205764851951510356218832561701813646428564902616574172409848460703234953946170745220801670049629440498080934535067601568855452196977009175529428826616289996171970506803434534163098651030762183794672736166590226924644176880117365353764017238600572419388096186426483279631063065291418400219687365729432821655216330536718802534644738913676661286289438830342309509755856285905833633517627534033792816980132342645818670290620206472606244516505938029723634264462666226267662795848413161723111509963276712823078506219477551007525770906594422022725011396762230656715200439351484308219200323049152093679647193213955239809805188806476907715011474530735610607630628893118664331561726041257089710983512886663124354390210680855721195940951976091712827533685564535805386802471997509294710729085885314491600056724436788761266964592230809799812824507845950331698028208188319295367643630745557465685942630921869510706377664913145431805083794774716303392366198692367343546239149193018408567767127354968537718432111331650203684400456512590607301555249471619723066096265694000817795008204269475829620343168177179499349668836937993092165935533991448885119364718382685464645342732604709410042395391052402044683750423771329302125945491419349909466070800685919624289480381777578993852253020959455273920570629984594750914949122478212527255055920376422890772041055124639322616018476610834355115281587156597277841875555572180093004993144488377098917611304111915860594569459831546455853642867793442630206774216682425283300385780734616300844119496244368273953487617067346818975702170818778447297018519356665251999630912435336679468550342250790122372683344409336092050805902040950226972963991276092544412472978635439938973494216626643858308574086016590104365305316368344578604788823528995001211053198565304909097135660443037366464193598370963219776493411518786858835598551160074489152524132771700452362068808865362317514386413674717070179682348776307108503809743250075983262049955026586028208802316747138218484606118097449045621053916462227688264751270765755920262582952206325917797225386646009101473622133410568786336644880111483826999570060135533408099820003673463849647568910522587185023880539292537920668134039272374688241017862075621282034194449853844539723078683689992630164795820193024080838395220243943187014767162237628478174460244109427422402845648149560476319546589386771031783198695137893924945293253192131020321098400975834772568474235022503423739356914476026076880706813591241977528395891088639224392369781473611732266813051987121163581547432016971287191369293591053135132941930353067778379307018363735135328236171507979749114901947921920748449259074720984277247210621956384350055188639756838608074384888671658683740524352819832315652795718632905680755396933870192867834550642899051777941389681605631735612944618115486810608095724943125433793493518324771493265739699611506885350338526462115020649283182926488161444536751635240530812457334487255282916178956705929047489385250399572434822902165796839813165705555341408911547268532706611810164682963137551637441917919766968753966686130627284474434124942034151588674768425230248250346293535962521094435175337177251430554861764500306643777033072414238784822248498552280504087125122004175087502972626140352848326231930688466462342019121184301661867913637433887608776707819628327620608577491649716695500658408535765143089881622680711018907397152653598490333539238885381037311229677353116890308319240462481346146059698858807981569176768890315919793039077982121192723601414673809733567428453719206467257641604874982303314023190586431709729093638762278860721796820616379690562121306791459164055406803276204008815658925324449769885323424342882227811505857951381074528167218920416513771462681811694848580960391129450962442918064060430204104194005365410630546911895036562114922093974712451416890198973301694482668626744351385330061294854481429908847843237807320802431892054661378743671324034595660007299188608734699647613836899607783875222896798744732234387645541648724066148718229339984076310072551184135047150935442835872649390229278915195333685498962271419636637230541204307739953311883248368532643250037556214919636420099664946673275969642368308188091536718690283551725109563709000568657852137400558487207488916196987432239552037066825087952979744917038285411468876086320524919353818576753175946635329945861127507866025130520831089831675136272894784376675550105754505826113016529876913101249939125439524236276575490059344565028405972035813389377415585368366142005671874112894414678370845692938274061837415924653005087742532785896191771337208993885728491111428007559796155860606747390246835800120675249724469850400572179727402402050927915849894926452121675292511652579249745690312676529597712095480739595417437074490444829728644490602606884780889843365385853781728651861942790892557503740435607236894485948461108277790047848722018512391836271189002538830095802380012793879125493784156097933041773458752214672960849064940659358005323574238950159227463946439501398356431961226974618331826352613044756259085563163949192986391595285263274364178979398834751368454108767507728658332207485821523388999227551138358406500563228427925880272509625387592185691359535420258099807776972220313813106095976473791623309906568803653511692412043755045553467986123104130149675013935154898289686349236009018053428283892516801719633369294415739874183989067795556232071122777059664179130291087153641130276585813835236959197831350360943156487900351554153217974495606166080854071074453827690685001269328103659762118926599365865601646652983814866925687354967270122402580231774674324362667243417956715515198658687411027772876166225112836487979895336717499305817430207569195666405243436969784337326692662113977640484907565757086047889064713382367273025533613324437023553793138372518226262704929256459935842932403314332405968165456041080666940099026298863109742387112001536004183158511659411645401218075031288246425337812769216939670390161783691701268920231679033981421410577039842550131059032664943966442025882459205161227759243506443744670202707573513560663184649746933296055947477599240975167832552511127628317248576023835197339378539566329136450781231218167801833273505019712769492877057024238410950702731551918813364966669860682254580706012569734210892567148233092374380504192951228456490214240103165889503087454043430249732787790691081810901660823034909274554612745722785225230929755423115953679140488016922792857767432823418598887204426393471047623813546139419317876033243839213943209345572317238444283010208459004574600866487683322246036141727033837767083839124311562988835191333079208343222029439553703635037251599452465378458811423630782773738175947549666250498395577806975160552925738002445592776949546645638248665601979137094429838824938645794548865568374799314397378808229450530480456632843972305954874250983284712519308114267536650164741895114018616358493113346856800859904760022322343333345631534628323592807477650617324385048688085211457027337284861827386242469443714610222658063236837494655606665547039459200821659922910240745790296983219445129733225576202429655258099684901840192536472693152767002898396546589837693264528923171920608057447058334934042237013695757206555860396019529135184644840048883374610647982693931256066297387495431941417347138117346551760729263122495283826238920062019638177440626761707558004629415351751965620186762802369308974383355126966591805364413075472334100874004845930023579484078180156090342322671471067175481939562726836295155397635291549094837930646689847254390826114448718459754115472214863500555793526188853769022279990183732124159717530089725152105473555783926363320222174085537177920262462088479193099997292334055831255197888023373179327619292792704784269615810734786123343054063646681873322919371074119931690384622474033862335572851752603462477035515412159446183335648688946678078067524621003103642756168131139603304592790977441608996626911556457101657634854496319408894802333420722002095634833772489576173498177012416088530862211865947769025554640336085315217244304352625982013757665842790189068102662408512961127459119797196612218111266399454601059815083726821661435738469640081693034057498372499150643510551169865145016710507683856713808638314245995350270670186683251699772734460276811851624235844959701074772105311307925274700706814473196412191570435077914174490643430455635229941593656992557202186490323781906649515398517025476800902267114153129922677292196917798538679669140202489680787468375246211128364382270312528407350142297547767245684326227802495579638765612862031422108032338107530835380982442545561541442769017676687001043784922730903798397501569718680464073271474648427072869870656861410252131401345662484805751040948722721088903059048443335142537192946312089737756013216178798705982302156213062147902328914376514262567421717264225631375252190876782149909579875847174423012842593165131526255860049271172843677600146548960402695327444689964071783212528325837002953065903885757353828617163027523711388195785109745598195528728923755578950247572403726197149243580361875779641348030748984622242178426238924392564687585086519835214905495807565987011864223700562593730784721187472443336135921483498827895805853216027275578151876604520502957324316633784514787942591766634947492462837513459616501313107734544855274296528183572501893225682672591148668665587456850516076290628019762874617403469614367218149309572400529111544853844253465175947102256724059063538890179350099664527377934113234867434121700504244178352228101058489732060293232743608887510578105230865758506449619329964179146826922008527336937238787705395780512418885239870831602299409128038085715774499813822161173066076235713125274057419837449679886935219912228243931834715569674566255097603887120049387761215829804881230394041891258053498494617652473167958505720940119021914612078529044704402758542934983485634280437796955663779081697399618840554362011927867273451476768005430652827627117892641822226574666053272341924921744002274698994836371285982290348240721391428457258945536776329456165759666725789263114766661957165935829209848837391271751547188451628276383477102701320948178712491793365524387312580548246037063733794987684009843428657545093674848264749104849822745133551458942947912476937514718872957623046327435695924312911579725072313770715463453457842566165425477681073736377132391546862021815788899942204068073714176709019839597751366046390426595457762981694353523815691881319553451430058851804232356992762412682888165746079172524651161981583624827065825453699543547191271908287241018850394195030369925488108147430403116658064892317182407099994984271201927419752949152113361603748234039400529681159837322762684310879368610164798103923244390715905684768520668222179268936177616252905357433883523272338622985543999280067352193059301290366057525072089652305293554182429094607252785905493924979670988539727462764754047998499071714398580083826714512827669298729984492825153732479845092837707393900073177962840162302989918001250395920139595703024238568339590485526337662108960159238043649761388588120483610688937664559622186104077190366473149305128918882565123280339710167492414504192649116229335069494673800026210073301288698179033347754057311223801827037240186751515011718048569615976648532416594175088104826577400867642261330672411072310142287804672713355370041954953536821934840084082694775673448678026157810724117437723751915742136420768843937655342605250282716447356506110369604077647775970417193377347965088776247603372846238689109251637247921623276548350469747990909694140607317977821485898372371256054057127472616687584594928730165268155135780982539187524146668753486620705376879424997649631861804890609547131459245583203189084780840137015507102238650693096036582656239172139877459071261158972870255916423045678590107809319711242473459542531438018068032943607219464756244699837297741642131099251632075245328779838249831291217321844741198085631356429282370103018359705241106807398740017490802852823129269609210495130641360055109855475122087890371622915620207336992249119029845456581951322060590383751809651981108193281364190942576810527736756257851716622182292655622576351790206780779139562648672558535029658390161096715065661646308207232795966710562252420525331950680702988730366240012632968966080371489102723455577026416155639228707416012895104530808321930318800196252548729397105613206033139226057806442508143922653863979532213074988438890670738861260681066207350099154162717211861084228398332312580204336443608410619922405221724620709182975567488651663702448593151958352230148867059169379466652201348379160677696909793533906521679250892262876661339569358263357158958943737750471033558755905808318193785569464197453698272521748454014980766880008670313064234399031900986873524201963975643777290532665980013401327517389280561900420189744165074612653487868841349511881524582002470152064134432960033531806319592428599956860183282043194623370244156147785008696670077100812082519961094016061302491070943085521944329124397877141399784496195889188514067143891461200575543750349798956910017541917703582389641737164867071843938860067912534621227022187810076277110719230656688354393467552285145085797201840337508139370999990896810166243803901363118947386734676495890787027453484093947625692110789716389655805951834754908390749732461104977011294391688439689160632226444351890843243157799665651256104912115006482924923348829242628322751965537988615946225269969902053018071002213202699309439294006691681823843249651993342842052540725042469090804582311021477759247341013111036550781530211945847171969376550046363548330305552491000007745638796998926386616958236661841450254498115088381465537817078768919812324210640669681792615911027916325488492582334057029761506632033376443689689505352239792215523773732493499820143003029674137476539676173140630104077768445123887303616310385984574082729143760018526446787402618705194867267807810636227867230886959217780607707232176622985528586423468176520760375631899060079102269997108635367885651156730317787912190304188661975589899437183880548884536844888348596438864212909925623068976879992722045076512614110096699393156770881755214377147642105982084974842288318868320787344292995966260268580564085075100604807921854575256728381379240347026073397296647223426677516832110660414053265677064865950585357166384056448001199113480456754585277841353074755072488952742796316403938447267347695890739809693855457196955368184932038489051850569352913412333960738834530370134675177619095396503900439245980639550107762582163724087655374009226708784507203155546192093967304396588677510066729990410522119754241646314172963210088765904751610297487958573362476663767618585341859473139530080228916062152558909066417417000972704183243548995722576938753510074453806737274444286327395854324100371337838623410395550907549734834973794335841281642419270663839827199313731126973568388038894607857604581946708398000039604694571699676514907771422347778261236558148830253684505871042194996562963918333653583265112709374062747362846775084702097638761826385512902135484621398879994359762215436014865385738757735972026034942261470167841100093030741152750490835018932930159052085423245484678225860605837015638583872538789327957092216975486861404457493627923048366797632717572792344737409988728660627590746390465624661003804278322135115604350232217255617371180903122063699922986498182636108909601774279032622490788383132487387182467447271027817458773211240837845779596567303683293824348935345408689616117820720068617132481784245143343492633515562284511498742655143219529485904388265882088699260650073801491474016516613614762593645581904072836906228071635562350146365712413909592263481170967864358709353068649168885427267111917096517633968788289039840393356414988680384330046959944470360236360398691563096149045519325597580223370943144166604657209119836450805874998073817863792259371218877988963333763710828880946812008172740785515417238857018649937218779175324043728080353243041546112692335005782864387532894611573069819961801888210748358600976503889064150113408220337210209930235298563203815766985422312794572344114493386618707140624171076783111390489350034679875867314686079627044371036616582762770765604803841157731801959387754686003412255858657467063720433680794529674964458829740503981483062165593024454213389145015388568752701955076494609512326666191325472849154195153204215193298087289901029772078529935755898367168333259821006840569342245505031568903081579092362219591471933812032246093680325210985329334290899751675339575520949028490846290014315387937360915110810198459935181288275697564760080726211681923039793703270680608102992089827023143370208703944676637566244523931070655989912820457035975147393937285890836702988414865147169650875397592632908372756681092458268234430629656376942873840317019321259153560457031914790761590585035333787338383420107641233118629847602286318906297507008618771687950777043236282836134582596084866144159074729418883945186219810569489446159039542153668276173174412977488807953292621546957687810441811834402668341751160429126387058012609659956186393621765834855796187660154823129090746990822670233696298111156891587350861147766348878401480813743328901947570053167697104848830164865999249916618140257409540925095231320083919137875040013711473715172666912035648603751892704827671645620229323852528241010464468398745160813667289991672225208229087162182667045968326637553226293959191503910998189546062863933698674387588403732357742157234592715851783684788210760024416933902331038323096411862547437511884032506198968623742599681660537078399475677366377080115363554539803981848529403728403809639930046439207655659975429638299852792581299764943465711529079933885615262690198289163363959214312013642775148017050982297843377409022186646101705313343322491476561733779308238708855617627504893841031660885687172737748489449105090304624836244222081013185149846331466392427701661387459385909110506801329460313549322960449572069405663344366279970503537530343225279442103117211288490940879490793222782544433559021839943367298414521963491507009211634112612114250983875935898936959518910812954259071920738625903543121729900900197028169955446431421942670752714624957480536778607778416617832579265594088131347785439181536058980478247234831821874210875920075168121182083914483093478633933194119286453371907186546555547721457302332440016251469714951360053465549196821065922397542356393503058233208017960753829651013965739836653821306753951259697158208163904547945695506338114606864473875067931764397394593857166724752771665277728801923463199589554171069447385887295345953649663385556655504386647398409346760006447664295629790961262406614711140894393531972504543216514804793536403773076890642148904199512502578430059919854042460712805487558116333629514276851632153803853714081009029100735963300926009938408874818305896860853107728799112105683899715495749428346978444939580574507938168647588476219841006193389448654942653436192537549795746068422013545514910140078340989247190356278247479937028274852385289257088682600945838084641123437925079381147772999378063396867129037407683119983243717458938856460333172435337758514358428101759625521764750890151101685194692751327928158153183175296442939614946203145073444705295371054182775787967204447544882116488427597834818548344725235363122848850061999814671953635218903048979441943794104734076270672397255511041358658131301384186913819637683472453886328144836797973795211412770763147973188232530556900931130818384987617261995013131624923013784890582380659248264842281724406847466351210477685475331779448482494288508207698761016858294854467432290999942668342546226112198589677058330680172648235251401614444250155969803344096751149007147264142804727455235771781784423705387524908306884639060167283675914000940165068433768109108861543463145346871024781918641075774781406612712206976654786253127250793969384622362455387562925544911651453337466871641171443691536493285671814333091432326131816181578886166023734126075540223833367364735636962004482878458768457983413757512922887630296225327753664150762088805592197461306920087724736019881037809607010607602290531000010567032810855056617959079689717653320094693701874561623470326617960958213669732899271653246127453013816980739472264564004617555698691273721690914604940866976751552101408634900429576650302596713610707226297974560630975657739736150808351353381313153427589904960034826348870907137807870593967096393149727376319475997267943766466185331019779136055570212071080125281778865054347007803724299828614747921869223394363949999883156307430405200697517750635999840708009861451520866903340429452440873281646806405229245697839038692857771527583867237120955310308024599519304636784923281367012149380791933818076584168493347008347218188763531378282954035564518058884439409170745779010052659365674643588724991315021814526356570202065959728811791117346756454843284683519746696569554746111740968075800448168269794866550449930890255365453007453818025742507540371719332689631776746451289293402325992923271511044500235369218279008664411198014896077320130908671164345065349108773490746990546324341519798802856202582313611282803689135229362079123485316155039708566845502981952872568331125097973649571235726121255529985012720371217799878594993000254648966538905139018887448499438393835119767746117365096520101517516611012217893057255167897083335729486133565962974134877645595688917489266668961634149530142930881446202880604987936270397758553954481046747905826556271272986514225962482482998221233711670422067301941619903916317094264337767413231866673055439687700864979128163213271386193442410029638724843693298854305568171940735804557522752976800344446368498508504582985665467509495689189985407662764608391132344980773377599109634807063189056837723114185107483702715160419858048420732670539635531647538652820264523339994701042321608380671763990100947897943450150256658549118426181426462726575809270043378043015515078476198889904682819417299901281625114752004607929183677732688601668524185890477965303214531228728158774028070842904004798589531859477850716421158631086137846744726203493266565287077770331515854777609455521735937666928639866296387392719491350876762720169582234764499183779602430120520638540637185443133420461047164371601802847848155936182256424879991767850693633224072452306703960160037125554748510878968479140275939716830328405149280660331419664846406722828662831058110277607928221271667592702286271503000971719754734669127951330137054340289607123561982324457257784659078093912340017849083342398387395173176187662315324030471819358321009029595800887743117521735774501443174059049316067192701522602699449990106189492164835048508159671270662198652012514988805335640161916035370589679768035097802376098964662469634492473239628880296754141554063776272720215055589835036757585835021312930103023444005914473668311201146333480670106782449720665002549931424484689261601781143654240735387731355335918017757081918190519983938940928461341362346725712461093964912950141897980055697432597199460457915237985310479697228869895326180995107069372890835049349866486998422230636903640289879009297407982560732871471937042430473401262995146522765409310631294484076839416468676833241433430047836450375872203981919856758934102603653791883343299308286680941643425572034545566527238177722711994390757974137815257436088548634331554096038464293391763871447169926660074494137875004273936352806847789619946599168043813354723904966649830190483808918822226958561768785587453073304331485316008949242744337089702062779899039675040597681332748292423227635555664365240932493968561605873086899616696197610677883734469950094604676771134148873014255511542120027762002669189064110903783248730462793898803001516390777543130127278506109989846755489688961159988051859603339314192537070361176464137552294806792854383669611811966394929049542700721116858169559281176694886237384970703143950243880190000432043099844864330349080312612029045009498033759313027417712154390913392994487491755976529390355787374546981203611026918250229465234163118348151597617334651515092948908021922107388234627504577327180672763608359854504180650455539549125665193000477425344776853492131744555712422685767542428306768493338534251857994800596498088285754116933395746403452464491835634466995308713720142269140777747868720092097084480169423226345711819119553405527332099417246649169766435936263202500392040531838803429915398834409810918953085473394404486152145890288731821207695590926323580485170160301855229913911743142194877011441924610547786244495787694711447814813620969338058075950978011197360298263967834297007346017234208070108069582068687552554343291021644202968042581939908758398569328157687086215458433502186036391316905553267747205108081550548423781355753126204764848072336160328850858383681559062621493495921261987078556693645838035091041998199591143688139933294077563282617793812753891861733097724380715390581835635877098483898443487877536396652207823214134720172642406985617050040760974307236062708122842648410144222897380970963238915616521335059807989291722314289397089249919704127359460248316810366334920797252530240361267174069305307910878115862809532311788521917518857317020472499843389311475542924409671428369418803195642323120403824275411759861934159930086193730558657962249870096948384145841528703549899709898194052778811408565583630800921726762407168814886873479007710745984328689655782743153208532023719021429080359773502160811376957458877072189852608463267426325185589223722202389635296116634456169150274270665361755722290567740202740460693743247290632022328351031581052086034572125961739654620725355455899864783960109060864530306913523051186055445077950658100683163580309743257941404318825304983960603801192182605102389339098661453901313032956980339520500974735283507808755241476309888206143341119668397561052799925436126429708174206067981495170451973236083131061631739140155538102093709401559896689448870734521490345092329743186297607574179499798179165487007106385084116591836991172368708632527815535894016560172606897044431468704542600760434432154596067432966796202809344364367026254457515643093338455683374582152978801506529729912353899923123967456439745804248820908906126574546797268024713924221397659196404899953977160154135506088405654179143100896797796208232184892161717270185798573394736786160514588332514067646669385369938624061871218297816643435185056151706494711064644623865100664170059006280132150317435921857389009320266556255115871248945389072965508758441297570513439998524372835135255412462140341624268291720281984619405001920705669801978868647155141890425956396601272142220296731719872597289103236800007243481392667146978608909785534034853749754497684686002066879101977047014119046985648820669029782744819133480923084930310697020670427258831777988672419405831250853363671559963723521466026620295697785834173347917342059573328618210636525184036175272557247465553330636348597364736516412992752110689332125742002394530956803375309079623971627285413894635961856185785408785498776840641385383867977502286029047081693711869203562798367499150008727162883328593489100973820516637172147666171844832582337743026632213733936791430858350595508789875073337650521777627037917058150722814491114894629614091102684924603185530514745509404325091774726329336084612492335844601188018205715565367704686697626518393746865725877307720776605825489003496777547439465478301107455171244212640649553685100547383941034586992245087864123977658301542372970444514451641101156999918523373521810068463149236812741164775110937600144688422975838172804179710990642249413253178782937522242791440091956718270049381427898786139915267229843980532665474225667453346121423683868959159716589330304807012649615036539500868920740501549750094731185932898701234428556969671153734882560063729111403650774112678033055951344431827916976384725181427248947215444448770876673161471560306679238365060236160003999685950222892863603290061960206635331310135975870260042819134342782554774611306053302069045292424812274929230517645704238618919118056100241939087074672542906667514406779789433254402336057737290717008786457232519600446691044750459384164803556829989917747509290998609806021316036801962303717594671723586658956317111957372745488923548274291114591078925227498646175637863304299262799623975919666426555721014542681363605435796880438772538663951781109124884547514252095920522722489902534128080608133919202027345519792268866387790084193947787650876371427053975593843051462268323330015369586336570968901073577204319729586894207163209907638138582945191803305307665720601647264743938054713046975400128767273397374844437931718155937833307283887812984231044359378770985933379250997263959869477808223939812010094041932767619414958677079526795585454730464853420941913282061222701405656030308451148183037584121014397779223880756405013467435739118037178428416888505734138059111949007739004649796089644638516355534477042786533766894019376614195445381753360226783689117651271875127704451974346496920522330832858249910385151998418090852374621766188719422627109505140303369203766424816812052265401858416748569454731016607293447499118756030360571694135214620985595553841273084714238256109344033431845857412348966046404028563253096196355271488268075521180868490367331104857014097609644527262730277576208757206878652825363457646983614143904749719274529903874922412836587726443997922736968771176163502373111002810601411099237299407338147131308505455917805813460972160440579978309421963999516748830094975333026942674235433202665939545705006141510332050892726971450500971504569300542895626541811738959738322092960784157138572769585949446462780167748314811468527983152482283559285165066744740666399661413782664461967934741490442367602449114644986649138530485585869124421905967910821133493132716857363173977437520224836651567335309095755639476079332152915428421507798917618829690787299133903362257720517319814155543244441833310707018723597217983964856189138051615203599472422790577954556405531380902615885501890282312446120999832955568679429316587986041125989387186420122546128018820977388068379321184422817343773251141357763575075023249574069306492207855187170477600723225733834679539732890072186606509840721013880522206701181032942537878183476594638256323176358561111383299672049852197251958527793954412260637797864473269107872629497375480851133261210036367117114518916641979625154445952166222625892449005850738248995038234223129907132224915333290944374878062532281678390624628177581398553745633242789177221659411157668190985465050105855353011892720005508029275430022678735932767279620617227150682989869818970201003604873634789096360711940628806100070326500412518499213554332119577095228646389823797724782976700137181629615069279417431394823452626237609649784052256290960577821122942211041401098407278581739583968949504890550933213122890090754057820473100771058481648606592456245424304540661116662791360150380892773231823785062957995965346890729217118145115205879523551090121439960276839865282060624464031695832169874120623965164848184460419026966789434140879882095008598679753602597331320806027891769526653738629428746010937026299395999042625632103416736324545378321521575177410777265513724145619993705207335956583506531837984709066377931033812739980092383113254889478949138063121621033386672383566095458963213547683011732720377340713250091801949946116171565033752925577264423005724519326394880463433173801036412890016152273089573046930833735704422916442529591996238742901968518253789192166348075707096721087687551327334649869781569699950979888410687288551169752200087615601930874331198373969860200419454884451816973836870548078802956608702686308042094979342623422876410334131004981623705758548934025672318262519025778674414479960980805478085563574280023738367475139269888887890058490987823835116695405829110538182711593716521192700457873032832274761858197886248908183547331414180383481832740302340993116817288588863918709826852797878551778456732553774346103821835689282721987322643146916405715809117359450381887156671114001939954945219210493561381460269368192284278418454032702977136517101414144926867956210409643879129782389913030323274046210339258741408528610139209989622415373938345616309705799752508211453036901762331169421407641970250187010442457744787626952926535129339639521429324637050172769339355111063562398108235376459107543531025156851190580730538117433208137827422003132510395311496702268586074770628540409749937711823827187137341922172969391559571613815667032896657744694654929751712755348313349063151587557314525803612617777937605692429657183967399061976081362064544493035553093602260540337104968247812847920440151420969792926966177924485840476453797279099974043799895597890104174636998601557977561873509505333517494360539257838870335436556257072451075435372537402335687638694669440018088440256809433404976850141316564240436052106811054500740968119183325393977016135104959274378526268199843264342920063484440445282782607537322166968016984073437982181826247707920651315963856140898061515813679001159446769099644798437684399948962490320448286672630282718415373397795845831471642635710774398914440362918483834640305562465425335810004845483684401478224745333964854684498538567678384142390896194688644134202758411736762008769977453297720680184235961104534289163979788365841479819956056463797413672486385384235738636239072810543397078126938471819541717303917731061786049124091256128349961701603123478323328748575945914114536026530851693483911950523268724903345770043429768731391506964470502349718795507966797958239397043073657669304762002079044136689896066253929661856286745513600534525865223875281189899070534912441024330997229901102175580297429078401065378252958692060436862307406889910156301752361322653690522982095136674031404899316505102255515732226097115023313394514348878233322287172889990742293007980515733036775070937415960387175856220590644439210922983673524171432517567071261682379140613408603210871105911311313034057087993695661171384158505457103538381721103722953507473665935013295003155033272132803091182174268639021972453369446811153247982074225781988037850198073277323631957416358167088538196205053874256587870903602850915406887728135417714769348092183259629585765537057253763874373524482584848691695429403800931440483520602658577091728441511147618720773850052560225789310964257314883895682474599147265605027271005832277042336488037102464354362422204141555135386540859242097435698688179235301368967167944864801289668737264020725385045789352568719706519401693607665214416585847454706622561023192313904579148255163868066735158023201411030925132214517232556474028070657926646455859891694984532952629911203117156297206966357814305529666374759897743725273722119483131781687528154727949991229868284566813927578371640157756404456185809009850444502908679953737758180460826938470013164765381732453545036500228367214548490208980374546897863984639533811526973386478389892597937425100450975377704034583128993629297300625195174669221414426452629115378998871238071104955665691028412684488706902826985807921018394624441549624087611857919962041233773771247210232853530678442089536377341026690412248872462410963302256222965809761858677010782057888354687351180272086807913862348358748659898782754094006534377498185293612447284928908929290473528332351576701248528760729680855642440713294932704065015681743576800436235849685677438757756075577554205541586632020570731172703410526019871774805330178600224641208089120937585264905626107115555453562765665589034557582219416115718155455536023834278767685921137389848624046965367754835586807986858607808763260125812158932323643626405087718198274226923250988330568218049314420648230458232360530557187185911188411553062272236795472886931734580766524219288682080247629408356213317258695620337326711778212719695803055774634780631612908429748100979672049351151295541530150603035280620614157365545726870197123705952027878468096428755128994866831054261659744016865976180596561237435573852982440237676383827851589287927263813214053934083203877728509513005669439177422971108433477570980762707446699333584172734411670392940582499483373409835589809739122998030002086549121958360798561552034237943333588280494221076397390495050881189409539365758891222918172018751111237993049000715643461084661160454109908079334277298192909320615775360344961106430165272008043103550886842428069899299286993340224542351983837574809107158605610228048365131615772613659581230298122121838770112763792074028377161572576172870816928382968944335435179279254137515859256368783156995823550550637040862294616856810606764833496791496266337509817547572357597302603823087586116073234186277666002100891698853630811073446936297259052047662108451792600027068428133302832345643792243701689990097053313395130576900313048100975036190228826015937504160411720281459708490347216089028765480545884567338012887917534341117461805053404722557517309891650145529705640083176923412220107670883867542494353576086065928778297297033684091581464157490141189483636786703029346864387766355558156114138213307225667236658135279918019266809797220539560070582585455992214835976686649938903225738938495898356448081209396027317547054506994507532272534191352103506034044520776258953310050077634624820563555427452812883440858591774102164058824057017061946364756973407412662977857386256226374274816175961493781672052290918184736457240872599138222648229012008504322949585094842882382938796179248663773542218314189708969416352759236121341406554011398880632405300305401370564116262771972379065096728339324067471112445994045850993367440579063710262498383230582610879357091773416710000269105515455942574299875374360099594264273034068854169529748647729588710960604044991150233151483801298616575006875293320679379592254569930011096664710965574592252647497544245824963763660763180503854777855553895592840127513998483497650889226508576076657064024820179493102451575156889392328431703636460351643072329935026005992392023946604644091491888999381989435741806879541363630567053824529957342526648464303111909724396684268448045419036409621184371143909107069052011399219180878150199510436611622444918811518234373689208799447123920757680502065369318377315453009504469276110060182871537172772739602153807230583979352904805961424399038781186335889394038718599029999063930546709784371102212795837919990644049363939300191871838719538399224875739306574682183484366108144375638154540298299446446305403022157405773994906285181504397154492828581272367597150519772309127814554883859368239991210668610945215694671164340842558006407504014015960363164754282811319875040986036394296355626992062150019380995903856733308222640457501629574388197259237578522936143132752273027969877670760480980773010021315573652420828999401508029952536906871684986940744353681439389636601138511590969222776198617571888313855111432421734512560012444046877022711055211205153484416370435399157884802093003473513141322159550306100886211612248078992520874835157640117979200185672201446871213729994048348769248339507007928643044034086092408838675874790044793253018680830907887776336389012608853027549968356126642921193496383022865389887302172032852879127178970108900402012773748001214566090526919657015260617890496137682376829121546315318804091405181758481438071121799523400686656933576809599654627566909352904448374198330602467339215071131830343013214072220469078631700127241176670043964788148482331996855074930380013067771141728684528965648150831713662020559440575805502606685977182016101147203523181765295901517775887650264805838982822202756710820786161372357663952512507643634994113173784405595358327202344715765866055537680140988069309341932661235975667414183616179969424212318624874965132561085729246141080072919052291317388069388675554297420090981941188929362668200970387611006987810878606193321642208367840417824153895572331654336336660474737117129269081967271125886533068457816793997355767797331133502260519103261465192439004271024092314441936447598500377835215768315642571108463276277251432494636267259477692204728430662096779555445838064161608289208118386273746629798833066514742503940118809802396722972862742491156365981830943554436134416187152221298222882745284974566729430291485723554642827369781388715538676302406629875859178006455317854995851533512497197434778482476386082417282443416762523941459018389267610055789538495091663552366317727426545721117685732997232051568627844416233142653048021420798530350427804003232415547181337721002606425532438393543202262686023841375417768793618472035145987087930770626995171283191339390134929176217237457784861108320416471722012050395745768451837749462145251437446441282268624240436524044153778448252933377164360161413104126299075514299675625392591990811880263661033326721554356617636798405598661200439504967792189929256491474245610316663962169343923062947098568442723132453255920558810991204336898051498910674733056135646190018572929656886152625933468861140501748105535689401250269480887394744684640735246167711648851077310184736769420302540929964510508793561210801558643535867016633013436143129177292872439343826950215652935102236359743430188772043010475116175177164722522507383110243845324589686893797592153194646800915598823739285841949514726089609940712552360419976719125227380767651562472661155664367314173780250767534427175906396317823544917456202618496868257448944460680555527383024339344901485966623572569380077736909361472855204540844546098431492507654036956709971803998680555919704385764588910730544646076263863565886266166706744679003255696354667857381296664765538985537095946586225193975837853955377669474212522530044048299710617456570715185901348177606138566101011254038849387232084535728896543387487096404862478543639217546040391937963559497479656103450471687442328207913517256099345832883185549672127890904539871893281765101681588261521156520012551377438290353358232914914119443657857759865182171556642883736192304159962237337242057970541173688703375571746724131426187668220357011459762537886265884466744648998513122478438894326492396152974808944577455261777456069078038304445276615887203004622588926168575426236931214204115095019754662901942845354496526588315620678894851959212792338732859365353126649766399011628158358921269320922324336267808749384636182399905087710153353356724898153838657050793203966712963855612504929597501256486330594679058557521162631663784605904880429977958812753933505477646452084845101080083057082501405206373175869793993437696785462774719975709022090095548459292405680585955400715726359483246807279607502857156554416146612354596089322274821077566837810050047565736288353578962386236394746524364913232810218310000151554058134805263846774445333630268482857267298229465822948755259953231939774204513618836185642016939720510345747240019867095419641021453175584303534574248837203872503344243472776327332055268510163476940005537056428204626848704842117549280607770091202796623142038498463739001496528600441421472432449940199516731297706719188706191966213147318980178297005229617333922986125433567753055537876846631898977493000353901475942852777097556188999443717818343312527503225480165660765541174736629257730099370042512270824727647937074666756651016608464769645233394017730463977139205208378180955900774054145004939449346694493814952072653092362528535702320764113206465728627798574605816567359852033805375240777143874509640850727265035537321807800718346698628037701849620827799146518842742254196166955883499811993517196171003169458121181213268319120886987184005293241873779694691792419258287373488278926063650858735001623993026396790165280185166155576992108852909746534152227132360504660777902658454692124503444403876212179229795633078956442316918741084840075986729989951385415839358101133029639920469338855290950455448333543903477869879647230831042610282703210318851116784062030704985094265309227121559600520090862239669469953618876875758244286808312248068780202409316700541924694756742991979104905254466384724427403237369686605625547836647102322188977827501582162537381365972790354067146515456071068931803746677553894695186302699599151175648420317692843370556840852112628486842965296755633925647168211787216062980912541266371746437991173253409581354686016154417633062064767708742696845064134458482973343186950833000463201802486420915921647988365473084445467193768355502446783660018914911104678972763309383357255699557375373824104186770683115434528023334253533252376979565173938463433696592416363267183322299328885303778181364174331256679417785946860088064959367468557653907994519384216734867952665156597408428618239660110245487888614126009521649488424561791920280678092216708663877403339032778327113297980055626640923659182551998779930056246763639222244826606928911557031101934140824558077016761968667730898161375384458255567459542868177803457403595986233484321882456133004869619284571402688468211209178450286642629417633219951784307446738726229742828869149179301440924448572493701424366163204362989924488219706283988682850821752075252994975790590148343420416742145639687578077615380568031981649488138924332985572248220703251512542242535991817757796593154422702510658135912426304278897171244780881238480858244071542566093804777896588284656153174311779893834088180081307806776032765727861837737426628375682627075729704862579909880152274062747100076570948881992728328496414684968780380336975184458989870492435146503958817815145185402206907690724746136824003758936881203699615882473898112535296844122433790497042233299979449161456967655030325108071528094273271925052819698925920484173965419061981067577211917421355141470510946498789532519174841400775151865769705737512519029002214586043274194544528379411778884639820110893362804143346536414502968650534106658305331518783868255645406381460020614288639713120508241409825693013484656542476924392858593385430775607624403020424227974998563916688723463905005460728598833367290267600142521314229358923935831907443405717507005591831135493712867814359796055833191284716516661436709622320930180000085674005475886283927109680618975881179142190457345883730579536738179625690329268583332717718337982061546937197634472187291212886667060560681049655585934797489586167768753058456954226778507974869791450641590993548752042160517598889699214260389351959756998057682161531706333308088011745884256096451733675283941457341362039317022056312366710860552474796099477214308652926220475290979949490264845978109785109876083535615366377745286870177319424310734520059964422020785761229870931590585039381555044448042164730311386852593979986286137807716301496124761426072197660566199973895105817967343756173141355682486687633253964464228763954582350556317087496128463358625598343702826498699237664212485070570331351725428759710801861577060633146626708233379818560040788837872446987146682157644059828200114583245424209891094144269082000350780085740929809169741223539285736691650198308673951567025488095551621556932720232345504400174302438208033833526593370443170802501811993343031559356541765194280619005369798038827686053430870617118747656045964596624294775378332187019418266523870139197400529332879490355087790515756303466655018602952403039487430862678460464133839415743794369875696798433891365642852247988977909295153910874694135909920061468040418598257930652028153835291537436942522360859936093209879330769496644328312779819910612685976057487713016217170514582979938223423484499125127287741807258996512663178146574032050474860381216697453806074837159170350776984105458829844349860821409340449759789180643406125403631251953514828588052906063607811833266000750617583954471698515521601487730216367778074273003305186768189125674623584800666615262884837896071276210875343301311596546454118543004325666533130066939752780163874590199483162148283219598630774212115034789305049894125427521359471610099215324092972139951029235650385229273622211895316713172565940002305778495670759014738645084626424756300493528472865506899110024432398657082496703619461564799958388667474477522313064629436704933874841279099190580814355337813067450460042862230264604436568311873264487131246428088171945726655864949302489610566818493564460260020698782342577183250945172299963565011539961183170436067375671621258674005532713537224572374020962365834543244205857103692092856531414011593418526800697895525870667425723912444064393536214220633095092447274396358250477311264166840402596781167098871030828281087231835768013041865000121493536533430785396489145236144794508209428745527149983525535146533756467934586834967484690888114190996546912271133337006698909294855126471820818271911281788306772924929222988986057464027678563515151035151081803801525056653341574007873372947758203990834969782918632703048997866124458998436752926018065275727401536708331352462718887913946270706800899365155634912366938100821711573618292895573453430517654843364089271828954503542895438240785742099198183456251267049045200866296891783281638552066585603031336697140154759321477597030138721409506707459663529772590304919541379345617285844858511137672947931689540260171097057257226723148398556481482600285698329562796520396440789669247779548262997336805343394392737847674129519511810878029791731672985159366478546606392096193834756595227670642827631253562463933142120116275227443852121443460554542525080185537910019434007653861884096752944367812192967665686905405660970482558396209757661900034189924385425813527928676654919723178892750297658354279331353845594166302575220385058899590313769477740854486004344808979559585479708620852666428215482926925282547053154483962582673061021955929697320476631351929922687916945989588847303705311737890277553452238351701821833730631806576428379549337397371761254909331901905478073880140947681439000959863227768416795778409930953139481375097371984313540660683891227024687574471633990780782394381015251086525684931467948634126962908907147742252065246306628339696506633190244246421678886004437217074281135033196001044137700977257082788693825297775296495032918153482623515475164274628166892013866249364446941738507367128288524070921882851629342322368483226378787702194554103565699795407903166058007370156482188512920161597229501159205517679800220943929081641151250424461811656745794740178698102410247818143372299676125856906628052268748166800665639121503658597350464000205615496435078755531987410250392336466129652297915283378470582114474627318390689048308232620481462804473752596093788720673196209198444723776163525292519860571678968254894578021596691447659106396486394261060395836085590655727724589865579615883864408223938778634769108515136700258009240557386481105388580709801780889790004187531740101812529788884280473473646305953549369710547744852830556260696668617038551905258446567066626096228620753725098823578106044481208716625037957353182870080277596036060641901915479704498916753242399598526770945135047819234529840814012206126793544534768586871283167131603365768422614206744389108380215417232058105857057936395833013806813103345061474395879044795625047641266182630805556026680634334606359160671309302038720668014881178154565125616275339358852563049196361686744874362060148566946672127080365541152411572157936959355091886039275951246533546476159713764369675095237956885001433076761808092146732796991247929714112929149705222523133062134018528993510714800800026036383136037062371419941045938852797448185776430446549387490893410931767040869167451260045497011498885672261309977517846189703953129238955502659531704786221449056872799448777849671007340010040029967056008666799714855307817373726808166313242849834634738613458775286639044298386686945428446500469111160008178334985745654293151104109244766277107808160673344633752652185536977680272102366865192238102121119803326159399295039281571226158066040108454374903483762160462856769354247192506929869571706569865269608515567706767549549959815848866186322318891492077237671279659892102614088943950136684046672135565515616621790707538800547499433980998932109972222721120885074046041479152540210408596410475766262573232964872857013027649308644849898862149104022111488234915449238840013629580252829462713623196751439450181754706281681988064071652524555288232158710962877072630358239044879625428309252281508692468787414998406042259519154341929107425638305426032071849257820120565025133699941306571004754490381656570564560365198654777927500348440715101292447816595896804611534184074462283740007506461088242201724912495316993357301969990526140711768894799635912142358374002907807780691247727922553272578467536901627667147115539841135809083453345327122735163810292104484711556124146643852666576259516007304437100486023187658308474509253121112377224328190047525338744367727263311277896441635580713843736594321240451550773384780037796029891786976590035750160995778358924499323488878352810765365955525783142246812580000825047215216911184243609752365918181765804743118100010890268681759260575571227652456989556739917150047246599836438097518639789047126284073370333857398932551973630690273395858919750979728390061326500831611550111154110598107670514220466044831278348798060627546343322218324314985795246395971274342172392767681775486388604767869497344501578833077061617913907885344059876632172598513410368824532612489969975888119555236659764910823775252242837283435701475092902441103489062993053256875141488205321181357532500114489395871093434751432711126881992458812327544769994258941929874198280852606482656698545377429569774620683361193194450746202439765637594215570495682546327461788055273650873282451969869788949945790023430328336054264542236822233903638393663576492827066609697515920881895851480485435817606118191828813478706126116557322949061527280859959288493464717130332818819975891450163107817799580215504121826843141010199032477671595941790889269831610712406700874699108768743915874370810051712140169203942169029907392081255630919293209713714200676537874802610261663522627038322835006890447489795772853623565283697040055974998591221294262890569734222846702423645518108121665988389176995153785499785008036182929035352493856929121021648753303847023078225827893452106096018361846505995053958336646107695999784359241947686402423092824434824961804142744911540135290324692915741658385232456048884088839026247452666345430826947620617706353019441219196085069543705744799644914794849539434016619684281464020598670278316480404306638005174635235836148366714457462926266039458914679574657461678315274624005004266337116665472603462283604041540082359522266520237326513844318825941349690744919199408377411117116756064988886857503824959164363069979740681828244010795084170905016381604559929523686631187384493150561894511570685667140611322902701878539226450837997518624490265743922323512505908380499743565366170927537431329279764539654616503080001053819012273724443230081507432914883770041148394452916406272527022192951941615123023007059913451753580112999363529287593727949354152349180975331797935646541164960600298213595580662166630694503591562393769726573576062724539587332946736532810852755426957891418401746959989158473573675867623793005948806901071206690852204843930064214891175025523598530100930829119572726881975471085534043734360902798688502209796310916096883216724125086376228725343840566441466662052928146494662574173993791229896723798900837807212208267998507013922352538328138059905363586021406920285962947896901778699833077694158824802086744637194602521834618550601526501137707608138282963768416047191989785377734879765359455787028409392792703291094100414023125498796232942265757397199320600572724783456432474297613970724635705682435722723096349502897058456710205034584869710315776542806445516061093190134610148963673576253411315133221941358002561120178142379564416978109793561447636255847708373562077468089878719369742550667740008522786047838732283381906575666444974326268279938289905382485115536615950786600616684369406019479887814948121625580943277392750812505549327050970064392472501626225591420895438900976428951599588828657906574539889085138377237040576839085483186258829875768064647462382628772553942407468019465928454134367868715558269828214418179572969269789247515522831616057925999472987356259888377055545879457421106909679581687789044836581235430244523230861569702545638124521316516480972470807638718359436657262983018518622567518601864283118502989262079925975016411128466899044273387234865016270913882630946963606275745786144876383634037383872738889842227730466827514356022859684004524978670718693028772852777669878106548538504341311213857389013190488203130137405113607701683496256482846606233802292251828072358790138118195764106717536806358313299561264127070025908585417703655245538752184983993785031305330617826232839118469016720511083554013270070114732437610068074477058583714960353492557276212746883419433095802397949195994918868596735102820363916072796877712879865392007361686383674839934524411830521240598873872451883850499714078159082923948689048991984695805434428859747549071696855106736899857790711001707002772289189847253601500163411457733809899416573889191313521800346237387200755903796833172541333336404466615752846646870133606303778417963171378235824728502652477461701848456095926451572776480487809358533146406189302906571909152872959148985125387038726538774223013247849867156769605289478602545895102426276653506584519875263961337662305989047706848551678950134769354224704055699852885658826240690130379525811612830239320281262916418319750994607018466027432234583205074724215978566558393850599569517354013905202273345169963974270846697627433943994791926330180400208572882971751188796925133771969360297261266642649704723518623849218202373512614317053843581948720264590826204635721437629869320856552839661630260687036382934717687550675481693940348673701446968051123272970162306423124034741264439040370311128033683425733925447528980671388124919222347517346960037752425064296598788636801071899351742447819019929331066252722264942580553024235114322267585464387111043892744048740528670635199283911243379250964713875117264944321256808751293274244488038205153651020185112563043245508108109781847823888853875476364208737042400654852251989216097772269516919207698900986351018007922257829016216812813304725401504524307700603110156833897014430521731337646108007560826761440544480309552618836043119014326940978613625227955077219071946821219386358756591611298803441081728836801634980758181892910214892656871532596583938024630339195037221325387305088275237094141197540964678750059589852897585566563977181617323648448730840721104365570915471650601650230521390726026159170891301574517082166736580862947836402790931933701788948372291520942315696136390946964408770394342117260288473913453685554746062934488354047776132648650677184776266899639222204729138619585855127654279049743164611535075099083391430073150238670728365143732514049475568126694606325285758062533559212332710844124041270640264829077608397967642732316487864873318317237794355368103220229683418145983781526960060888250277923633400998679557301574935654556594160339089378508150819987976015720989792903892277368644529098543429053756283734282858895287624003359832188973263068132897753245824888324820881591701475144019188336823426392551913865711432471758950096016309137867076616043514976307663874423174506858114189331254668571525320667512096712458052090923838941156739994587462491283971504714869542537234130078159693720765596336110412908008305031254241206780282801486573855783317489784806814416182390311084736575293322566497519699440526093599126479504376185444883719544999817808336693789518763810582371604383993445459268508020583090954802668383578279796299979005348052774535252833640493346911120423803367446203030971408516311218809029280079555903010190983341331555687542650919722191847242042872017911311256215627398535394356675436133076528954729090206210000391632650490563266903753063965913476475709372944022502323030037872598304298315390001958143432926970426551568330810331686085778764294485497067779974179661565510559598505253972912817067508934312851704108348496122726451738037806367395263529622561411770177036080037943415044057099361016281929877794696137123400035708154584274734224077896717015544723650663751142619256530418955068440608182506780904514104892477233511444049509138699652747150339155488323700187818533033539985929407794555283985457334874035884088011418686417190093654806481506064394055152043923467009140694125723140913528581771918814386855055900671384953045348470748152169730344392340971137947442399606257268011435893874939569142496533357517257309027859244099706068929667485645946243925537647351188771862132838071942767474708899431665249866816166018845613738075054964984780351995645372065556967562547229261495097302276312906239856335115994943800489910754636374349705810216159770774891698367774407959332221838858988425841362234335872023808894673406443171386739663656094287349798217898058487422615298129586767509422846217062001942871895672692593574055673822378806741376385682013175593720121151572702276705786903732455058029275309957084360991526500425405054104367914034656909164032285722173830468820565460733772901107698863392833228026224440236415084835183165768564994049664264961034176967540221710561833300334034490002021120951247471063745178133259415446890951457105013251523627409102435629678974387336889994573467045806337933275796130690716542426760531202815635707966140602887432561906881772385367974017155225063979070682242935742768390316976983319533029068928341371315063764074126299610143378304130442619556860065455579251986810091206987738960636868073448951835626934105481077737397530992998289710247951354942553162239058644023368854032930471384549738085256219318622563703581854545450696069891627350317139721110701119870033434263111557719962408264843932177553781623608028327758446390796291800157920264362549580275284327856172364610072214265496934948393256139851997303689150695376211342788090507192497989833213156567968873609269307204099823702845532320175690980432857743205925670923035453156527285227171488677563750544125984456292884446190689676122572020732937242188452508922164768936604222599625175579346438134667287230714906621340435394270905590276437110896725041883221519220928928197765421775746489313204542008462363667283464642412616095520822796616457698362173130083772698310182579165849169426421563448369177823621985274522675921824208463072905584027522809574129307733499527216849100294055047985167449724773660918163095019724481766710607195605057621602701951308152860318160118817510960709133167848679016621786400784614463325582240475823675986646245947263582761539493805318240138758813533419570521432235217952552100717556975183930374303321484482485220203192598105262989091567148538429525171828430163904247804217502527304157159955788118850191141462073756143558494865068655047872980233737523572457421362602157408525279180819214628759763071681912269277735067017063251225468099679796255434187143266946030208513891467043162324765157777332350231088524203288778485783910345960330165839087275164369102670900321238192687630014406632029521998810038846551759300135286136658364440784610879608959696199378848597681803289748196795947856158961469493726795494942317134109151185779969032125757809976404873423460236638678189816099089552287816156572200114453695545642408417622305989085610965267330887962888987387094826411384366446263944677357261827581338418615779793208849729294672531514015577933758931111146976244671570112517937659530235079658738456225335987300262290848124618722142482719461490435275083420738613362709065848415802734433559193805878930085277563680038745862883140203447557863908479874649014211361394777388199095433232136238486725389354155529664046483020542872931854003431959351883268792755027262197692068268556247696483041723406369033595796374569786390396039612098885522527403437992279349919029036641160371046489305219770259884405660027474659845995553595114516173441097690362964605248379244319174803214562688939113330980885224541918286224795577812959003898573578326156820183753135378258294412271640783651191469439102069110986778989695168175359088148763656605484900337641381424225620923922436064000639357861760510958257858743184647708175008772361541026298021972667430701685305476049844866457086516762320222973928828243202731150410383926897404728938599208778697585289890976698146204249890282757486280463819983463558647664527638146500015495411705768719280865056482186411026014729878969705467215124282924906831708254754455856828354224293869848805299178061565087572826492251253448965043480752216002361645543834341772968028181514503181560047927458564421765584116240719355588567013202772654011280601756904881734820657108437471938645503716413092963961259180145264874216178919655312667737018187009973497370766861182314413029489061718812955519831239704051691895126722759390341973847003038574954066279933037026657787669239937321542217594344651806811536715401355413997970163612964268402935497916018357435635554889819192981429036400308358370861367609925924397011897789957158161128237393194773386371967651109133908350859154501188671582173447533500007619007595410450055340896512255503252014186461950622195978768835784970950483768903710240925664589386152376954618327587355619570724060694065529240973685586937478436452438823648609707852411108120506366373170450436317936365784378056309683372682882105286169003298726979349260243829879215120893446409264972641487840775528114234880346851510288272951355930078330527555893707773224372796162109645448362213735723078799136138026200900009871199379272690626170917363191191715363976885728319349019443991866627971840115085837843610211125911005448035890627144290837485287330866212749029775854147276710679950593114343548527961619390866447063392342371818718041519217139541226216689560885378464469050965016316450946897249346277090639595542975017343931612317765560818462031812936726452826926454984291180927081815354896087580915838862103680379685834605351651918525757136061759724495352199411919825720926218752003642440778924586028828075599851941487447763772136146564802402573291390197759628419592457545829728919220311591235020440256868909013700337062005524708275444279719375936203642642549437673328723965570454392839305372879433428179866197401880959339847676935580329265906710035021788243178497768968578787601090547296494698596582608521591206382465296125084601590076074440418265644201596382845914484420746083450528282088386706980678703836870422312463450265812369037199283636564426140711811387017523340869637710652130712251732685971014150034348921784251402000261910026846026179818560714652082584919169656175761813856409293814893564134124030397940310753715946399687139176217535849118940016865225858969374544702060954355263322809182293812236959361171807077484062674111126801721379137198991320599694373469649571220918557502671765649096802338802794061756393928225551190933076175712740581030335718850234646311283070676296792264746905328728051101043811908870144137663988430427469666435185486067375067486328925361020676303158764669609939271736057798208506020852232218495429928113334918907972110148753207417876626036882377347962433076343952938744095202287778839908249832832319716107624640933711366768691331565178955133715501098684546531661310645979765529576728577648219183344921031949721919113635895014368107023859272715955254721979076352186225671579834699207324580302107430701452479921955692919188458774783285772595717334725614832838215254293568945392473158835851550878725812062690713051387399231494399157196903519044870755685026197580555532592508054820750832752196632778517529122754986989895205860528687917129792969313459479589166609410829560872757692824470368959669610325073343482273859803239356179459411565752217579750014917238148692815045241628650247825175783958861354225371614093288704962112632925309273101757737033932139070356727641985648252871846987101337463186341463313927425885055372022635929067268472911127753934249510973492853181395318334161996598429181077048845547267726417115903506872531798167020758586295718483241734478220305426131588851696263068319766015025082129559171983122864039828170743875722303119675542050338245392031825565682210102702201819239540121630976049039795956567763386142981610031854713184071366305571223091610539912147735587851360421455378115025029985098521436590973700531043628863206876990111723044274418688764355772545734405878826146449095813571244535231660372458042582330854297104731232768747706362065942268411318812423021662075898200576539038427168208079056312819278881752092751704876320650232363312972369444269374223442012975623086868363036009051659912668843621239997781925710481456170516290860763107064683738488824466185810222155157850205768009677905874727620497945184234985671211569986018871258197129870166767592856866301014291812194034147890543598923404556719104149514647764286843814379963582846801849752198253411255072499373526921689098775462777002436320628616002217387032667396927567771532728209730723414416431769646961308130986010277731242831588067708336320584985828140765776988992160015330016762527163568298490210476237317420085621720193833055252777320052995153167575364698873285430519083959581510073076502208066855845008544759834173394830425920517524413731695384764168745967205835953311016089405024852857142104095165857590565813741341159221431907359951441137959233055980856866329101705840419854420319348380973384982929853888459396771898132565866892811977278481362482457754045207361095636790616992171111409157173888749592433481092132751131191596121229943461644614307450059711095116186112643362358491586027481131502174034119252537739004106501748324681306476792635919999103215611360113794847104360478396541418015701663884597887308098167106465985037997529926068478128163102387450064571101367147720461584553057007884441736350171061364615106386618006604309562780459634545195646487894678035537427976493264081176231833615469297869375206850976245038711230781420582269215146604226245089591071527028757310671780276049538271251724414038343385303946944649487023476226212344619059830615817921706234047789923117779109508260808003943765207746780939297600017998546941409094962015483495748694380927782018556772310518509265640177969345917789620995986465353584009854618383836422727322466259696399180678971721577792081196711218884338046882206320632597699566649788553235020400315379896390623619973803467050499214932805689623238166540970244245169406157224683374711163384721254419408222727773822486384812194922066174435393492572365961966217390368473759787844651776307101048916705524683362402244571881383344995014134419979166396232095252015381230647788708434309162694625895058003007912895715532329577001938711331678995933982481707073523483009993998456496929938926027436205460022928476950312866437750824443903520655966887728404826058148607994591516381906359577012590977077816650594294057468295944313283007622081782882335077806848700039119775015180113412909595297229227801056530679344873890429213736204459670942515311220192045541863445557035508277647560854698794181273477000364129262448107494553020118340297307877789617535874133438780621030116987482120224962235705910795347546438217028524857243855771864471148762183631258457197360029468961675671172336056794862898557291203577789658440463634661440026749147924347548358023191864853790575715823947164578908025274952116645213178019278075797192051409255890392646376225066616594220813037654075423969632391021814574843959834857211904534671992184030417956471698493738606758547396303539298190975314096144029633088532143017338241988281564457295479037316692541345215462197728009266727298856618610303045305682233670525848331201347600559772044415890294150837780925596252438522286860260264468902982758637944013255928572945506314631054204041302658339490328474961098277557557059349865532567257959121362541108616380431796253143151273118333997935066018306221348187037907763643524721352657142118387785855552725479893737205589423893526674844964054711690263443180464261598716853487288055824426802158316341580685068228322944076490277163941093788452801268274111833466070890454889450743966150264442446278738939546691392852985971438232072504928002226903709118525426492780085015135077497686138554657202642993922579669937536355959082299618382919567088354491478249493828461220786035820928854882937263947377019756274376444340216898431519078653378779669857195036216916087015549614998663598627257194515492072783309857737201815455428403226655229538621531995202310037640307464123554259013528148750675429461518659718181537427273212945170087588490389943048502057593027861083742793556611290551886895892831287188671937617255965420481360855254515803207847678440465741131955802244788086241741729599566844844114778115249039865520109401989608530307507217811138410076415165624219684983995950582443774516784495594967268374478154523929297498339776990442574394534114118168550229505798671471301797751613464582275491488181134920676948905849949156452793119100584964539843703364845025638683603630627793387698402376703160380966727570693918173066692773315870047737573269734294246290386111591251322406725213804833562206907711603175455259831796689093260061226839640862424983989589594573826658325328660956389692568645418960236406792197896567704450011753939572110397881965298450313215284009919718397672039285475766676889136912859294566173404964385044606054973209880606836969527760968472334046175300804756741747056162609987445570490429473124059741794293537838576561292587880262078110760472945315906587748701553802849022079807573783267105134319744210923923469008651421573035481224793383293008279712733830110825157306241544606520491125756536728164525923285661195355800152877600862771984012059807039608767270738647373850865517417230816400366230663943860149660954777526688915380307776915453514760863716243832476769916562207949727158780428317262199531423688704502285285407884216565542873683887228871024157042126548937303951179136786250254467805051060485143335662459578051948117992217390944976930322289132166983884677515443338049300232573868104615280722243547052834845641696756759842913354238708329962483558319659049268964722783939551271375833318285854320797208921170252235693898229318520571430553179980786445909406509953123833824657539069529751420410667612417105178705717062183633954579786198266093616413438157992723669545113562089071282074540384846879709959315260773973086279879881206061969642140158447269958852194788592035909488405666875953124267639309649180634941801969201720565129204894174681768947598283948463298971373720075678175927913783128428982759055684817589162931226678088480615303456397538085331555062851645837053551827187431005311042792940580983858736383391376053646368412937063778354475348086189657289659055372862289452853363521056053559816290305140052629836794119885063500592902102337755752270728533122853447875274884056766806032791006469934481780317489236102481794394029982936401204419524205961933782208909664320743742357349057714197685958757295419536974111862802864246806454713468367296994404155368085039232936252379932433553719558830010139295514464591204552188524399179255731588678164988127641110173541417489395523413421535904433837344532591257638592675301257562114799088430105614937765936403809904628372938648438369770268199994105425176916978593117483134288021922232134150530295012391906036246818247277218894010904143823948569336120648967973919241102969161122186872106452032620668534287731470728690654707936883587798701138787881559113314482414154648706333524647104977563231799878518191193834925062953934440827262961196511516530659086023728670153954369524769775999930682835748612505210996952293301185771692312043645901393424519058379134534963618293804611062406032929979735266090905260584051126333049384609567239597142250632260253047859593756635749689291693017183086511523806839230059844600274716871359456278116211740982610549816445940555939140570455015677658795629922450363083652397990510190487094909258850593377398672454238917311930423061517590450684035575037552928433555069502400968743821053600425242570600259521291118815759513024041117483254886143494133359970860077829502843409683309198516092435029017841877865962023123040516374129753051296844313786047223724383411916022354711299404303953515242229370215242040232311540465450078876718272352733951177124659838303383004154399524031108478812018956949504450810752391024539482154245720070209480297405819381992724668466610247399521238869871854187634590245901299495768279565069361242650356905574971665567095411753393117803417759302225614105191676822110479924957240473106450316317384419516289935064231944047783528444236595939807225049791142392650624172937762993831086929214965745294880966636360882874417595044149209696564367819570426182860187195128761500666439978138853266844336691314582555341081952400469956694427288752883365254941792738153835893682689181268323452633819005574263095482680561792243365217549790832991679650555940298845966170472684126390753177594915318268232800575444895303902479706249004601769520561302552005191340211446859724318193091309518935700805303956707803008632531077332313154067816592732779541540690802140505649983109916656204644191695848941015023717268722632329627566742179242615821910941047251877048879182187310367834959198365625872736698718049242720277177300545812325573591485002525562677262747940548164419852804136343007917300134101987777195406282762728585392607370399392574864082656651146851452451277723962805199532456504187247790717639591534408425924615774578806207942505518089736185489064648953644179312550587324136523671346633384660493394080001305617882066380006669093218024601845898954511671175001553634126265547474566360427432678110871681497442366222641396765921898732751716683883875156112210310938620489555422546155464738509533250611223572634507944976910760657496892067307764322696511846197447130910492885268584869041058829632371358529827665196345204447945463902821492020840831669427923877733306778531561292604212209259261817449771775489088888303898655086038729007622610988446373826338542349005300602559756903257930781747128749180938575580407389431644467505290139316831421033637300419018729295480616717423030156226114079380181672662323102341206515334079148746340240021369875899839064731387795812085682395131558452943565393200713382283856828555952488405629225326126881528295391383640487785165832474917121508401588093240184060547701607870964853959928897011557889417674351083602024246054311720430176237224409367389985758857766849871570041126677199030109080083628339917697097974835437075013505381513851651932559400664750929144398687087269236814797678274934241647996003316703755310928817002576283010264427464795368939739720497106018288494390934407086850132552236875078216756752533087730880533722856381264379575259921303933069995695515329864263332770021977199853864048455338396472541872435575457514659457778152107821502742696898459218023079547656615587532435860829957397231434221387999174505712999084084723954448075652861073999118759962805731460535017011618782166884376956163686109089175109016071495649367072981066287886159774371664207953633098955444777124803596791510600447739372778858776674941057524627276749256270317702152642236365659399643119686483575887626844806459341793872103345226904305550269503291608984986477548019618502135588033827111607343871956507956336062333195887804377609047968025562510708076666598164706627606094662288397041168930513812176811032101939679543968953371219646346330247469955096791902103666506346605464122777242898493337712982836818986040238235723401619367675438015918148969210263776289341394147276918994047217996855158353917567643074205733929623823272748449471577914431939024965720602675558620783463896702096065565445619322035506919089822591861352176669795877346535047212838683593079172012780938783501091686622888090969207589132818598543111818105240509699601226703318223843420502041701392494296688975244105160710143940884290263460319219432774254628105145412762907924157429365626452054653346258155427505542049705680358588939442787446883649523461755529109297985542599213964496781817345508950029929411777959914899449564294180163211388535398256690324966620217992550077383585045876875644787333490107817505518785102235525649097311702970971731106343300934583595331259185150231055482307028013158902892028104662975473440231883643860108598217640962409761340192924424769396589386060422092314961350581039502072251862845963912493638550757057147557640185427291405718651949581626878447265954429323264370841189328609039130535588286394020623382252275589424376113237019619496695884055845156461145803278895574600611727280668655796236406066354471052483696384371802809652001698261355234193713406494760819056801367352994778619836108967065909953588231289320442767391950380911697757240643859706182037639864327873579576918754898984839927688151805941289705327122505025647707402353384566129796902736547156977869358296158178684362418661485196127502613875526965626668410358705739546724358584325402070783885111638088796538147152833834279622524440746157102102480757412340196562097341788488166970912340465971556356537311595861990972049590471851239692478890745281969950592374223369889020479230218660781602242582572730935417516357218607972561639016318566177463795525024991929928840263409676588012023238115139392098447150877083360433844691753292953427506543512284917460935243446931208176852763242187779287026890029270904009706808643401692201858105527832795582940609272278134545968693621675105519043445177592321067542991847166546560153374590478030616248201541228163647453486977922876374710929502377194680618744825556137108317240873073674032312073655263437186425260563534054771759990092915156115393188504783246543700197939611105383542473725925220957817141640953383095846451544221293949923229314759218981195693465777896365398293080847913253335771015107647580934175322815849281807050880746319257888432723965867768110571105256928290370376951944694814403531878471557361755973080238731517313629911899023359369379800544408526565870449505323573685650440739380625866588474184927739570806478237745719199511812967513476008781436412978943422081339617956092309517093760145803178932033670525410576304508920921727568183543024021860581973223418925329405995958011566568140599049428458987843309889733255145710806067164200782046422509699736105705685927079285639035716756114009196665407092942612855661555512229498012038994558506733643039178711842200131984680034619094369842960551829672905329042145342515377986403204712142239802540201268751572757582850155596414124349838316074731936097437760911968075275152384973379610378667499957452288907189055156265895578002209749432323882572396234007538884276952746274015580532236559303018513729918210907062909980469387501386432621930849113470040198554126527113828683161414902457293577476515509036674184461213378757134613492803755524750861586272237002337093355217348006145150666890893198670527547769230371071470692151452086317734698430745421094803986597962505048684949147342850108418445439086208553142435651859935399034097537039370793816997994594465263542526793064675084599550278630617749482501900413747291779924394693044308496625151933402026022396446136034319555822364714056720996688019480682781599370606531985570503124482272772499846773698956683051862511277368582494675436323469017693522411757421124424203568658225321529110024075234582377520303225733334828660447491839929339321556149377355545475012492975421829509705685699062541100778637852455070499317608245258904146384178897416549948261537091400093263974713317848542966476974974751517075084634246584918960950785970643567008170072740867573329792396441570402218426202882208369284520249045975213172030307108211434950091550271495227935591507333773927696218206408462873990734221483254123860293384957868662889893089788735605481847306113868768084833581432991709096823951463506457983909132418902448114267855124186663475462615836676807128247798256305648161804625090082072902766779500591051467339787869459389043618152353678096687713174668781428678807893356840718355501009112614275094318228741328556469662352980472398152038269696025046701771155770971659821260098853141182673446768677936424686732987550919304040731601094966027171259551993927165139954301303771841823814778377125447274709441880757315813136328776743672751483971146917931700381163122587075446668532460482641839724649366886742772740679480369920421871954049018516728060061018819123998516792007292838488717609685442703825573612883510928379828438895321286765880162265421591309427149820562175261710574480342685243898394400916388129185281272861159282021507182954070455812564488480651288596044652279611872139162368060488826234811377655857667221299253564820712613101815692182458625660274604744570178017717849329462007020322951715480304737084660361598570580900707100302599591916089878166688548612280455671016294078167560074185574046590544314455039260156510123478892934469707948835715020051111730016070861941111230944110903171357076327800844486600157429090690248061347823516955217009156482905154459470931657718495036027635144600460833289544470987644100153043170419423807673170710623945052918852000024429854024875639521171554218166945654448478966639061578471654702146548367749373564282313485026337919612716288886410588495338216732240853009991005604023011533075710242306757664037131648472699602854764162007005922421092661262056047149943602099335111672206978655292349313616084354066695122766316634322257094925368279921075898257373881009580919085146732414664571497604785428732006097059136200946900146769679166164065695839409692509047645487874639773240071922763175841053561100786980070749024551879755744880801872045775109515181317192398359107595719960704726942705815528488325232389249180614323206475253158437652329224977873456865522539159700073010932189753581084476164635034886221674538396958530305860955081516131114462740100803797360691946530328447118122338683487160810973255316736141175475193369128531023902176326331156070873249963660915633112639987461224452755322471130095723522218313344743445187785035894803157305070180512379979830297225880982434887024168151298062074568809312410826336886494471123527548906155732180176076467150787264008466371196247784298790915470866096892893028976266073395515518035233786057457926656740005186527518729627394236318505242230206398889388185006544194013550213581387914853381593981087211456064919439373673588496242590014297854271330783768258184238927888301206600779653448583389284229460834315493006648790292502682546031312999052290092951566806342522794721094209666972177019795223976627300828424590718037269924162586584987160694822597948480790319206026177440101427688573163548225400382390061155155995936320097730967051606180908456759841948044843579296993125536246316118916642037947462398020022951533281136050227210675939816966996342740900822126626212660584448837890026264205863285610990529853678972476899673459861505469013884602028264346922030593311712969339706357760696112241826210515521178249737619617019208620071449374333299629174153582451249995736630075503213319091521793190794604537875030235466307610174425813660907130520447565298567779139184881259908441230359940482067451353477158751769739326593885716948130655780580684192534819140910373306259043812250729432454247658600455001918119632308689730045470781369233006143051981202075082954391489811198455555838860525840228984500843734459799505915916231885015734502839362500363756047538418530806671132891138047159476708219591819628996727606660995303579750676637283906475056856530760399074233644072632824974592186982121990671470627480145151807926510473320001341649920522220058405294956910068427357335635720797497380110438076649805971446049953685915282120917350242056718649793097966061801642430476005983177445270496595585577117946969680057566058453584430074283726270239950004728766122837927425235764717317514908060138926202268304275477515050622772060269795855224809974168115143893562681573335069387102765671088808239630975318783061312755764336152487025375116064628745210686337205450089480707601643663435288242209421740690065728766574593633787218634611142621648255960388969967244346898334146657491584139610675232349592779279901791803446849777170129455373798603126072341889175272360489077910084118698885628003846443651573197655867649911467525417196995690290691279128723235313163189411886750700076683956480518258965348099011701054538062124949224672360003383788643953706852204053589410212953656959531126469699253864809801562055166222316453488305687250797699828288905697966081671231139299596066351748248068430738014864278933005047480299622991937028649816060575463987932905614710487941534032283083868704931584940242698078842697855367253941475415423291435498728922717652995938249208370715293345869312991090588557137699802902355926831013623159061104011562229134762689747495051524351134464419665996240052444359865222631704927549863099033713502629072317646587227184537893189429527916758284999399243787707028592285141725478823683995655180083767062076580921054786528643415181093541867871828916140175598286586743172847711357670102547430001289346406687527061880883931316333009253332815070749974175899484822913727531869046830155804024891862386947734270671196579461020701852045183644937400157083259083197343343472311659317078906925257525105075732757826146074919517891998612820826510839712263137934962288113435673111892660273796904473781942020939196152822128343199169863635224932891012140984386981889345266848533265843386242983720685845449161408752972682206076522499306529368080888780629004320267537043690193282931793155095116749440706927261879394924712094682333528937601473653489088268276539695738022990432019627237894487542442181514168562191262601606209551929776690360587907666660463656511253679921904774081933549877654540594966670095748950735166968640079733106181203587824886060659913977385452366607681169121534114554259304526686869641204202170194195974145588996913929315631232374282935517052127561916358883071241620840590619369809911588817916753512315373580572666330282137292836218363985700504533031712682708672696924405617857902103672736048371464430207966768322847291510589559600335580803936400415190908324242800117183569744129650455290618094763196592431080035577230908325952158572537592025471201714489953946391990041424116409782923362283032502507513078396053071969959399864247796126339648138058486321199416996989688860073463677116578340754732257500181634676527931100800862818602108814998052716786156021681614750860960972141161569362675917947973947497473370642572406705097092950435437785075574675080285816501909310057938924558719976119217808087048248054463093940215565905853729873970068202355247102700088150379035861655989057796489353971752973120862130015073740362307695345840361466704402307391521795230587876153850917986504132565802376840727158300251251769699499996419302606215667971177219550816793927579158336409400658578644922815374944581071874514014507195239997217229314689580109256640254283295333228403694305894586079403642962886436777582877136594671319852574059838253788391933633736804780105056720563283554305597074655896175490387485033448030204330346989992820216977978093807338663028793738399231486917321356247466712698433005312700129008889351363512101999285815801630691474921045220364819819477808627587403418770577467365454556046130559050945366522402072463188141663686134069378038943836368402954788121290951926014162871921282531814423843805669143598832670156327999810117924221258621454141421273562382887770342962259112619706045740963850653273448832006205564190201000760797037787669480969211234565016915309942341237205580291204223109764571192577269806957436843450142218694450458688414636334514227248343369039353050959124651314626593213530328832054003237943216791809731659827549152444953486069583789328349040629427330675140635578162396202678161749089670242530089990070794212666326619004964860286624317757542422562911884248583796486516669305422694511296390320909674882170778393427519903218536423287590361366721361471127476921104902754465022344639120074166952395296386511211611321919800875116108507216234385036817495113336984572264245449527256471296753943569774533373498090003108577312440357619790931214068427390581184692668410529841162530380861703682381508950274316620470557723826394739689057895420273925691394743666642367730810490836529741988404198939303170291657777981684477408145953966987593325153784814584933043393342470187596078903544020810936873206145804530728828553605336421361950122541033883643058100999515811883126136060271060826669275501780177011017915449930187677163464350361929543409836588434539028896289596695277027208793176098348720955256350461433219368931174204455533254102827616308893878566893960434054839401173402432920772300700672298194195648558588286112559508788242865397765546784110500510139834834650052674103629780639745234777721922234607630450570553632058990048377931324577375741925554472249843052943018965203361865368469524665324007063288130918707288976529380043783104060196671835951230286817003181967246590807080506906032560724047545879399472741519950419928947526653487749240536099326972897207879980764326309003893213144018236147308309073154584924863370196444089942887686638769798207925770506418716825354183229878881372953137983965625576430901784833245625278823755890642542815652257321240101328275226145984737631433171474132125109988480424637424671327877544347023643727382614844328202107232932318219642114465908304311952995074549631949769399491981850976517635309381509893461058286649988170490276604843318860033983646308932966991244270416385887958660727967807051027362669874786804864576271588818482401062611931534390266032292461181365809706920359979497207379224660568606333444840790372736034539377971566511978642948445197202693545490932106253375414763981204596347529885168588196604099344767890542885637033392695143467387202497233947404796870994072750242542923583252856140579070613086591224153216746652580945265344779784381019652886196531582433315909424750114165835070545515635011096094742566458756719001053544948076106245301158061903602462296513348740162243074782269435744536786790985587367108039803890263094435244027689029989756681981838509799198598785465597580512064714087674536259096653763734723414732350829282375046639039823021550708364261839092843768393536531507919318719377569451287711066711752360764303285832284804316056681643397506228551426388251585732658799603080371941110412206497367488435277417151695948079369474376693111832004549550943522791837527501937330002101267337262533286539353989370592100653165611476903635390041107064559511503999036285400109037560712737312433518523631056082861609317417807380004733092444652262453212114931822665413762255116780173193519749050775537967911860060863017333483964675116557478502876812986162236243083704265622512736478239598532652738233181760471978350725376750025665356545674996583571737951237400089147370601404841205555745928398461943340538564552751161254508884946392565312977841451266000473003108504014715368003523119364597507392109451556671331338547011059512008819750071509539415910623602238914882832926944934179855659902325999438124298531758527081207525315241305116591561639851261611018951959365709172119293750806448658484121624497298872428782142745515452212292478439491793248487710314261625849414867997032842349645752105167616301141477679531429702089495675859551868496790521738136352834749399727843838407671922399155819899501678889522377263939028980654764881864469327686906916530640220078611887425012858706607752026305019288790351996764222341443506933290399137832550330051766705469537676688341910822180944812872482840397731176427061552998967403883354437788600523481474057173185616023072288807684413762088514211677825653602833866590250030177283542774270823416838200160231195555413732930848174138211288676597333136918742580334074758386537859573274684976497577670043230885016504885910080894023518432484032352407065242952689491546479788221244607891299990658854666723180660239767056111114113777153528744704839365011188224592587641163024969801539268023166445969468748034750336013109777205875000334358543895776923334857009829286631905303106974080203543370958206419226566204351141053668187677805720741121469721577255360083158341062226003049331841199030871794182563236091364130311656840495256033674804798851668387685237420448680493624102078467887589397848377796369861393243846492370918358331172736336438616713987620930044685688241398112561302037583227699855683991999294420266123717067308985874992763126735009963805761925522012149064756325109590386816569112206793289348793007793025189730879090612437496805476657559270993356783590734631682298249918035379273777483921668174775646211479918632274688570950118417928182930087171039294253299628017377439963342833273971666560383127493288178495484080352076775050634042471907149313039263288937757989239333148797900767672273786521147908779132179484933954800613484363283292570910319792054072509378518677101480607845927336652962200884255819582073880228611688227630889438359251337705152097508577814400062559040842063542660749038514602446406849864722600526133543956338644365129738800338124333306188478488907060389780207475572336040066806829516857611210738537904622645765229011462248465602841900752605245049209568931170686541848841869407833947781123026146083630181179357724208210622649277973184591196164362390570863909876215549516085488266257078975919330876270499476638209274201614765852000556940739894486653014483144657902558606256617106741642192339495694647754084762630689669225804342672460332662696863215101044874794149210248291291289270295791681582920202438834434095546711564382182037095227833748868956161392795346147295691945128910734405538209027187094781112237501282634706876697220557326079504507348601805593049341315942349472633159149488992233974787804787436200000721149931770992045880869819704014979181394301205257944903830374696063183286407095327432250528433479761197083519399466264520706275149075469769805716818228146322813505881354435975934708996930354480535472326235963404716146767683517365085650995620061759199272846771074881764033468292150946847373643737554149292580264552769289908922439270061668523059448567357482709413996301043540344478610704036824974613510874176236585224312272578231874401797141084715882943635878246409277442461849917383731038388299192752754789757309106590266166552978664336673585041461834489386499684325951107212858982402494523202217451740979262865648488071145458581241144618743778388139032660881360799225915215522914611205781711753034298063109241954113235990107214494753624983014216711331015242196790731000644983422675117611247902727384499799116888923506978902832992199920045849452659909212822797599120975364888634788050314863487275508634924823301173715490273453074661958111174963820163506864569679732423955267851161198356747925478523437279891444289398248795017723256857187301607933152136076511831169261915702227963792302731401218580581470502997193252892734138923432062440678421366541055971498208114426318306565313926761805507171103109582498744620173415578702891363672528754234901680201477269263898515689109351185411689030560343738159198235743932579012857384002286930356412732105959683075149759051036891314172228384723000774545805546999613411380312649188608902723502825425590163834853403916169801943595820632636106631395972073580912970416954203980651362264935929498946197069277781668379997796661427438967198393720816412414306281573945683967180170656083796482849101447976858930589779048161448095256112588641750241294493710283568512093622448457443514362241280530457582950137983849811719205154641307382763832935135761845689119907708595438617270329166478656192190524832077539453097412813320753607445205815399631235502207798554067535821898615066942805091764587212509085939237242444775280029918822696404437979638218714087741191767212880355697248619933747423221113029633356887607657289307743942151948441623288849149361512297612746190037716865632547595791153230641190952364952915566249855785468030474694855804655430618990492510550008768614050975446261566828497523529080508749705153804100258510764883148976366040105399372605903417065534441387134874443186449515513222803971091691909194192618057665969683963816308563915191624428416513092834550160542519552214658381409115289144390597997225540355391959870632442110817799413839340131299578321067193219198259471248904816556861277901537959234727404776372361610752199722316205514881301078762652227741976967259547323395313994638458018503231842581862221068742401178996076501669739484193311778205966220755488681587257713139995126969913320547856354983082867972155825043839755620161328150211939973628893077000183733202633149429527393264457884411092368280909200169664044686387305303575986866370665547808583072015154347268660934466730981425337400668068674150772910930223342968435256176774053967975530130360124292105766780181077628053368620083916139843878708795193335487650795113473933827378547006877388858158934735203066531138386099737208888951484321397939524697986152629229375890671465865798290729927861843805228833332593653089487436658668655134480214983951779215068062210063876638484483116333180010284307112451419192897576273230412099590440513118751891131867703464240228898424821172209084328358014699006620123692314647819420710148067888098557277827845567422723497425222952041435628332935163033918094384352641131350554457218893397537211489889496240346622747742013617791880870179743524917155866346668833388340617760057565751276001625590588653141942505317347347688194709681733611562325380083813145328907952829085084267793771287694802213790417066601989941377458884532076633468055471281612024635362466861373242129207235372724235661058976678651882071384037842206992746335044372110951861821235648313526495838266343875717798312951966545866790393443233429419268125321306207728550751969491621375189530861671650039317301510726060939244737840397857211497115913451044683462451387169926841383226313186411231959015237760540002569017765473539293735774850512961395251583668206978813856971263242945869896307684948549639571022605238065958696112372945215406275011304934949251383392989545870758990495181924197175944632717648127963106550865045438938523547475631912705642473629490443618524101936789314185946480434890498987692898822952037958991640056916152766754229172109686481623393862957657219248753360797506682495898332709160082903454743750545698634334624491566349676321825134371222969314650371335587848902271297321567104356710116089317066947628971679516460513403820366290577748410587047535911397668086043762845962684036701736727145704678885598171103807206749793221120053370625132296775389577377859300344130255177154912823009714320788784589733413006470741633264640568532943372537069661193437950289780646445761571286061486888347309742985685910489478126934657785210447427775311520199296125743958660004735381793367905792888491347817048811212561135947232648882129800790810565129137492239292776619303711945322677207525637735486661361245409812990950857958310510180441017732079061343120891443328696716911704118748161632323886858566636028112230961236800481696961957033910407299555674514476370226944376136074987791711899331760672676697964888195787326097674402380911435337123265015272957881863398650577547785140778833568723013373790632066118225350195954987448390303808207236101856159262954554982573687642727187189765502495688565497652401369190955844985675899139652097671563411969509951470223563574191189347780562247950806478231499953298494461323015173968098028534583863255506699122940244104714726994457971098449774188894993382628210929507828225856857064284389701885069977749713883082602256473497701933167595753020765258851500680120456561368416900695809158313157984403971356610544969625707717558059250651222508236218707283141867266560957185799137669346102519733158532718470489677252458085454498513653344889155803543664588419858311891612017810912083619504432209347920658817067126136068700282128862186284862709344784917480122916117149866875335350243372267879483260895650492383732689676616282695565486176068381289437033309385527688091647340379877343446862838697931296657984812922607605871874716372425758609935385646917022680270819067584569543603114060719883342746503596246344470522763969704773609277660114701742781926252617118260192193623363425686297780771612237992109193214924335923437869981408037406149774914302237090250909634841252512321866490093313833977560462519441834117143924136273352916771053176618705543045442505448086707267083367073076868833502505034194811026166140424280024710052168179169154354543686197353736222292156949146210973351282792966840115159285824345862718382509970536322344452590831601862005777172976366271459721699518669303869875299597160045784525473586846276254333155345467492441230420809772567425023878989025128070643941121171512761996947387145362312346442896258340640454564263445513577145267613935997675683015971825210035332287871268792950457074730270839452375150516320226985444300841119624445837211174984593689296253317790755516426402350502990370085048715731751866365675031382200523064185814624965956908448822745291006553190678499572698400324072207885065392325245708731670844522451347023819564879642473541939700325125889219298898040412022068992928671593916776766683672627083963748961375337768955947699232768368895942184537594591669355476290924554984622526098574632793410491168601321999616694812408545939716214235304000705838974527735335991628871297408969541901739334670540503498086557441684115530286704167047739412541036318591451365055858529997022327524207945816199164707148086916455079081249427929389656784748452728982960515231755076981441964613318981479503997777866330339897600809419540109525168021046488831403552154306466052519982352706733474721193300287377646349306855622427347326572629455540016395304299748862036204302465535373724876167245809843894020854204716972817432664521658346546302359245918550603907291151966256349380599900054749082898735246835041885947720957207465260870767813523820037761082970460439070822499226765278938802438745260435701953392836648160244267901833707901877928533133180203677643331143464523236295197471111766710467712452338314703039125110302907830495351171279311689967252812418340110875446300737134845769807914545183714881192292298079228743915162015075177155454962892825733333879750022679386509502125533552760247794197766628520787941492183963961884556639728006881810975455880749714006386281654981793786643448692278680281776391596638021912024138304743947896538464212407625318148179876584157643300374172469178955313919730695738732313054264054164879121596754970499543108963779992174961010480721094021819531164886557289034036280421645685714601954764360441190271303234988055337555091642426901989365333560092052533746751961560116209470506099910853338426255916806403847505960591002800606829682415966893214961214272974697772612286096925461260532706727660887075637751467922234690746086906589433232993598791729089559188325205631839103603030262199373812149117970227039358148415028330178442136044109015198488423326731359164042873520430825583562135265618694579431909197100969984822956929016156143697349141268299938354666190680144912050295271592634177128707524546675673064635216236086202752195379760012597232672177887869023317196844925418259267318088741873071492121810649664481121502817779068529098602944922036527216790530580834571212245208172718831817991602079473340348001728507845300517061310061405039983119639409301152508498662000385993318804248996890977088062474789015528022324267020042530628143513839093018758493738086927961012320175282117412271222562211172710231061555553180965136505290447044870607732874778389088837979520027523524249730887118150966701201638085654308301796941435998855978805120853686156296460086054336512484000254037289031584479529762560691656032709260512753866882792443235669234067984952488748591239398438202736258530599333575663183669879590330654445962078563991612530593232275196140933482036230584030308505816087973976462631080524942681016384128907815536456866679195675234496327142777633598031551368394055801851949255246278603892752532974987818775420824362265436999423821046117868273761936855197327239536983442346251343995031188479613093439165401122285919326703221498117378929295360321695401029276295957673196658562497823798468437625304994817258099501497863622179461306416013452119818819413582443124246533579449688723783418481185053788955220197594889108125786586848778907115666769229168819615547878726540598256052039396268363256020680243446161274802216661204288690530115979656335632149820782165750761363108844013721062418170381314883589547297170126575872063950671566489829135143146946126808736984034378888484329729133810524439511286883210577189501419524687930827086778964447698280865190369748854304272930824932147538153190387411358208616867647636258293024707310126556149036023470620695285059818169736351200595895768295187089962689073884298728236798128687385290064055356675951884563919791826342595414731650557879723175831934253361522762748293223194915771408546373996750371500652905291433366571637421077319505787881903088427238304884470309359618650277891792406566444777493218172486068758140956768535847045304972964102424230524441081919394683005189354342175231718716657051738946073578445917397755965902331860458408410210486431303989359384977300536431988748603094439684509743544879757221792154611312879416209332839787920322479670585069519320960932375638819200217965358812508369032649302795779970389808726335798550096125896750464889954377181065197650663223269926174417389471745606901643795604424270207369405221116941573752612156674074804504755983203256207474431327502073610280797548355383416417831283638164095434671055278281274351781123379403434350752657543182882728292739814128616649023423976305581425324696137476030744169969062013904463369492867267873860860561445233550310251489180688322996296734639542928358348057685839346707542014848933238378411041968246374866385822111850819528946094095089924637357813642714580814753699285434840729609860080701925522584779619692618382526549114256748510209167871685494108252428481171306861509111233779807817809957999937622805201078789244641803228933060830640254559780559192304656315759304898616940103543946922254201737850377624535298983867090583890783154631118098274004030757691292189087365289179294336094406524773496843505941745121387467347833722812119612725211199946493565974217328163981168605944442800832681036692742313753013198143054682635330989324313744703902921071205632880269234166678245951619896958554324923278661276198808996944921753015304369124714205961825957450531200371287512622901615237416361913101759139762339087080809319139782274736416748187590219085680825762652692632860388290508596114244990395166892810017575738995498035165496049719446329393138277295871588128472888104713920062349664762775298142871188384792100650664659177875926769523951798067584919130387738328612034489927670048183617624911662879059496881063630824216288760970084823937523845181369392939925606659064159261678353468388846129335228193831384707660781029250760500520941192104885970142291512472134298149608175818623650654234643004540133975417673431035877212832765148113286124468107277946968422200212863639657400643515726629707022152163156872656380420475388010077736675720748890536530697710101698150998653930564264365726066881859479917450809038764346217244724296044440693260130867321416895165650181097053553909557120731826639601005033970768465838047638572011394192841530761706109481772593572965635411702514368968849675144336278313554476781562509809971452830708399254541977342149772824763471949911103716394005481288637272275961820446077545859862576986761874835470811946391687382393453249925865159221709861080120803437862037806519571913412946885409658924768896768806646751720664400231132500246927699776472061669018690247011663303617488870058351873474850545326212862230072495548690382950985856507659493104522959714234246523536100182381967185423659047035672861930711978479677027356743501668541279100381745951847626726414993950737495383202572502155429893142390046186488546892317966614706334015436368878943924049773181751254171211008790746086486783374453178891546688674804550332695320769693107109884274195117372267638149429687949803327671315074173754909877247990853701047260489609392387812300219669171967478679621391704028375403332823064326502337498922996263923944679662515282881752917801446193243330404563879422218958701628531937533111584164756734898872579851207081533905535085170492021405866286184407918816268428967681196740724887093056930778188601203879194371714914939354109058851781084251106643230939012769813007357809780320233312593836439345919863035450673516400673979422053157223443885591763109509936426701949996924891553568322517137540844781625830310021240440923006085041534716515694941264459305791625508295657744115926668435419783273476299374740387295660020134129912150122342837994432906033636702786490821911769033330936774479992743499927941744317848852004915114243134131696110794979958605589921109448528383705863892966825650940606804100604637214462202313527005235073455195422726780582056545485208566058474954774468674963963327629857395830473792900994103955564843860591942415846423298723372664271270976963402713203940755003652018453617585790647595809794843655506619626803337890221878166682794907641865981473367325166993245807044041050485178190484320848981100776757494654375686906337492756462694114271333380256444607331024948827561105333604443482850584304951455636130153310435925082810368496866178054018622471631181120044978507433830650815817053285939496472223578262151932169530592189348324478762422867251736115194410876241347605204177975934545074346239626617169805269921601589717065225502238693366526298322568287156190673128019319668107299075944444227044990533351300897598303348680075180699303221548690362395426099938684862455562342805096490187173973351699223389077990569356554622251537153969202765763944680711270907086313766496117606544277601252538339463175143346770798448529831781094269801861359443462617858960918072595358105699993761659460560783425571564771553074032944011884124165288952420184027219326342943470994787151977649837761273018376087483372106538548253836496441201610672331796477512036925012178334842830020873040756745306601634894855004635003408402691168394684614736801352537003577336074217455038445491471959580999587647017194599027743801544832294898865833308279185271809143126326573836853817326058666305683109746362244156711589750302325622477907206283122784411732652775908112037065107087489536340141349098041443659775890678255317066600471260489388212302638426698352139662965835665940501780456958149288290408567180798709082255618491366788476385000988437869913421456280078504038528713089435785934336533244532203839893110202184710238955989143950881146684335267392286290189488814018457693622312166708167357919086920371567777600589761790437205778816772828218709751424904166789812611659260491377905654187030054473101474064113039884545229783637658140010932967874988843554681119650062077009822243431902185279722244159883566780872494572862447876900545020882267257421649125411951996121121113973276720140033437229056088643128969154989726995502327432880428643536707361767279411334770614967477529763731563191790862157338652426462199730524672814058430155358548922049356957492698636078249841207373421509282050105157962901682051124109138411111155149350626180288580385154519697240394441954926341655475074964197560822940954179205392989179785676788163891510272123184721765648703077619894704490270875897755784921471991630098344986210557731768476867523216840610156088529974662266246739645236176864975409160456476314583653596187542785071282411608431225149792866088671432923939230087559407908676110540498817151936204982125387935882188139590983016725217961791260227299206606547147941878199332887953207378666767837610819157233620259572753198151271934117351254502559166312218398061615476555696444417383976222058646615427305321048231733460329216244347375972553461529769226161156251787640809198102575837874551747902924213958056855431863238334053736364159465747934498505256084887547330450971548764766713785762769933214365977751883859968740063602999582761725200125946587882392731228436375887360905434021196456501451763165202148574153194097462398487926950229869726635652792851391045553887869233984498236127757077717394252614533372219797063460585590243234674839232573166536871018623957252093501432499292100070635952293921931914329150872789655208716667588265163014170028173595569352971805934330062200103235770484589152390193706771536880343310509142993043171741109796941792342212243375034815401991396022694123365302756368378089799755611265602786236906116397228362434831133864264722503774015889504268709042512773887598201162147430427910895690848538994155732664901374938867650868418322506195155397618562221168526633329376388491715272185376903728606026789614603075905070807912373896826032600231274126984868633439558937976825663450182726427431054014538425961633018026597428462371270669290717575884405946803833580917864470725117250779368243392694704641822368417284062791473379697077269885442640515936894148959200157920068095944169493534099995914720604746771772420380992857202339523132457082495859146522835946810197441920469939697460195656492858994262859237968150109341840589850203212460811122742511002785600164933657126619648553533298596366040631058767191479757677583046324335949627019424616228262306968765337055162535563685014552024554481559698711170196971411113851299569449108234901305917107875678307792948333705285833805025356060951210748709006291537250880984092011461789437353103011578009483483011274157064288335479546301097103494236942139141809148012578021288803103006068159708434740053918551261765402758506133412255331205080894389197572592778650503100161345524807390118402949512241839698032595732871066290456351855204257664581157774182227278115615055999101087155392384159445565101953332937830441945306410485923049993575696263100790534761795856537998241049766160760427786683850693645752074703992351507511392966853239811381993989424614495500041002275037367781902156983931228994949345495144491293501776757222978372697997968368203517156214222193741236792631848032797717630960792250889121981831035716347238840213544341958345339138976344904383759936080743662119409726779048347479782934936848285646491511681704568068051323694569023236942379296178009920965708364903314792182954703570047703157098982267577585962585379168394541065599945905995963913107451018751167191605303540062101715675510555152911714463606222969840744479974590416864982716126129013690622612373576561057505356762605757256379493282982723909789733567512676809687822224114128218047426393671675199346622350430706316528123333400438059299593708108890158665686904650606045493542777988756631743843472930430725649586366456430542551166071461180178944798744505558810671295998504909059897288928271482776367320939504450096876102494875301456349646701653235683250433454191314214002065184291602238044886609165791416593019651401598991435868133992220463437774736145841970238053474969102832573448342677070995879244845576979806171285764776865588480834344405503701335779412211188800827081662993624420139768806314315172395751290806570383529674219242256405757543494021431323948756395219306076621514984811159039724965748513023019789121368463697536986892164321807440200502288902049461934729683773889303213054671641545808355435185862345498959678465855100891407166567256954302878655673276952913434312719241915973589676793299126431911977729723177180316331591952606948062574271374351958310751497210109352611984448543859576722793641999714272931233158105243732571736750692880573901195357645045403327350673683486711716619470705965776704268391312284153867290441706162391403394730953279866718061724756383137279731064784254586124108858671119521480470766718002363412437284925636880867793903681313498029353949748877621698882596886467014263998461327601253070763324980216898844331248542447481504779241066168041670342795020717377024614784321517620870331721385554204668171703105513826305643864333378443768540772938289694311549923557053129276230213966368861192509567106903391366403319786458338499368324812305791892709388231065958366794682192180109230806400775272370313830057398800292998399187901059672966246313893050903638628976383496478152045915878843102268427884449060522016074770387348888669862751762347923396200595321384334131820960852889043654116975807751296786680011498889879587655516898590345901208973383202171912054031892915691707363619421267568765131551899981481174252804854321430634022443877779882612637130267091086805771592133103087318831668029134955566620914814169668834324716885495480797218924426769562257590916680045595401240729840328333493545582904348486905560910931559206911874105625784559530624464835162848817178393413583524430257366587096830212664087994981222419223467307244390801957500699275710764521058246129515386350723458459613091103856460467818594133242167107148845200420441639641186505406324903854917078055459284191346449600695702304813318729353780666041380474964680489427555811064430325883073506133078455392494228730820910684725549090804943541054093117169815863491917901195583776223731889719657064754403207102070175747388281725965017283643209358994494962726321879731821530914203108158437962063113982503158612874677087780987705365310568426542995817242657216493945465614162637307478123873312356232904675550411430120781092467464368974008582552487550741058365829746887752733680167599780109513038362647527744951825733501469032275857181220969729470112112222297381981691547303663779832702393800247503623624116315597907967333958470084361376045733749604391102062237203191460867756868798558575510960695296402058599128351703443371910524256749838335080817414728725455909628438822113081205679901492993388622547258347395406874030497211232070870643101252518760600820971541617635017298451444596551176123840371622360134326570123989667126682725043321846560847055050151260207917534606585853635020283953245790499678441521555369463522302598170550091113556793392626696515459063511146189822665308881811723273416985399007932203084706058410149079483227962361623214310831714255433797550135716603727295511481514895099048730996869923951346356311914229819227260647476473667470267476455078109616543946313539691280070415037989628771665446800995630514709737132639752131319033195914566028993555277816294872401441764015948846988427375980079452566653681154313665076243084402869666479167476426274178136424507594936832500157482493373066156791970156660574537534999320644767864898918391378867719015079459895253567841199831173415668378077862539881004110937313021486953500063080127281529215145431063930039969751345923870815174065225023222616665916827689307047054344039398477522314927356476166847102315898773829201964009367254545797398232045373064115241749065945601129048949920542198242879801313439460465695124838247483050892838045047767540257006842811872046177632264417150948662383931343922971658510742760379239379412223076316926920382644683961020545068300486775940401797737825058605783846169795849436581150522231685498760269825079606798088750639642581652716950768630695083793163079360723242404018082894669320831959665061694027199974732919949412263935423392559531196318470628359826207906078665104103691353463791528885565108591677564130102660734244336193368246504373615224611622778558328084899512721699173925870836189874349028688493176840058681903258456003534281887407083439218522927327625195093201700563175766585107885577194154556024532284921350094252251017492194883337678424384857971428534707423628756960244821793191455344375660874589430270055633901422201351013378108771363861379049473832057650908433474610124736709652800742499718194642432981856378756944225583675202414128261981024839134622238980636957196865838113280769566156345473053218013978971923090181815175567286993693226531339986104758866357414655323931485040813123845697178336300173797862291341223254214166758975424417405179459259937726582903280622048528654476290649908512479687082834034382711907313532907190471636549673419841095330394697880705678586804934542690798484820082687935144495464760831181122735925714172320300236334537904857298819532824789435960442627325420802988215793274317571024289144355333358560402551510824829281098933705493583319764447677598909066699094636406708993195143433758679693591076563595743908489406085364877818604309261485525247759231321738429174563732648390329056933543602912913319932213998642607040429035739441183380864130540190743788917722818206567846801875081075613589860641207013420809158978708991840743311145280072411560615074227592574637149649588261905154265002824086776636082137850711236478840128500820959046961824656861693784106838740712360958712227798877625569041650266371724849397571392909810108341907194413869472828258832991225078995141086113720255556531820487981193104992091562541970942652977456504290405400033802056675626969003440088095095458794668810863223535008129717191607732568610524812633584578364203033174433802541055778399151686271150105139718062828254595943774348621152853196618831378313622951956153788624380671845419057039020356737569686891866627026255652701828468224620380718693505385323318667459772280765364270244499396357030356862393717189100026462278224347551888165338530656012727255526726125948027249552885870775161521211621623639278044064152131265869204156993250642369915597864113151055011430516052059270103026028616012949436717878149316749560578344459531614173045474246803367955362813196217762118469551028410063081165647077118647939972284007315133446657560648905918136242693561316714636331421484247650401299342337328881730618004019767498079721003850883384349344093127197658867718927833967925974476688913698192164195013392422008198604354491344129033542586335448486121755004169123721509726164790937944313144613111600013462718972864955323461947863195246544608231573583725477483871465263803734987433458901569352663111861488832333111818023104710355281872445138627461335443263277636638776468318354797496115910974573225171125101394920683425212143585798071611169625802919885768213049057573209903274488971099181713631446141748775350897059208885054012650439526551205192802805380756704401127854408345082943305440114568988762205248943415019719907809865169899806946215483442349720182063497547503812300346231682193552850416801330084459255959100991554339074409610850984119981888111575929868516225215459725662884867063136425873286727242676642506269751719270475348410909867577811201984711643970147914551919177998630215181108733785566301816326291557062362578830571821087881161027382206440746297058797132304135235277119127545271468019534263479280802663890827196047311851606296912907710985530663731551527650217400296369635654853164707315935186137556756826976452364706869435324121805371587329319988139700180893808778884548370030128834485501291124525071802061488479042958102357567079379877442482643369400838523989451568555010611320478076272319134798458534710863267417306471381943065590581265812497126192522619248959726017855131635988643790498463787116524430799845438631509196651584586426985634019400743389011416661507819959319759157984777404657223680242314843641032526694399662467072933621229959208648147098224453017753506341958723530084255362610125692773334706896590987211216548554531625506835098246103492211021365080465506428195912526051440493420494498977336466511378852186358354044456133316030286733671552233268934712590573024972881232457241364016998048526451799484981648900059366577210054217910735611314360306185729943771934059872368502428116664229448753785039892121064734717654984317262502042391459774381213361205638527043145267512887198275223299301549083485749944027230419470678229738321302616007513372598277231514878775924602359944928673013717520516191132735844450202877551046493855030655998042032385667919818048121136661678975610864537060111610975306720535783013794524147223910570325693994761202806335764089277252233907793298100231483598391036167505180477745404636261118256500773566199628721064191018600701888592335929733214893809807585330236776229567984350491278582513994677060527295954397826052135491652806422659187661733559184779640351111593948790377399631478386800284390966727859108741200874556282411211539994219513469483152499255386868893948154554298227997286819482237122381366819576493661943090168737912725040136832271414658748027762743025930759151540769766283786942147073927540624691904594100885688622483893193131796094572913368537535521541283590807268006044946386043913817367216362789983811851746615206812153364198232400813959822579229898637632775203575886709791871692128619445829191385162072768408887638122714625184045336977869059133803443802226928036691931924653791239193070668167334660516136563210429829002655616305948849794640131774930494119293028187989317681206651368363464668723544383259194415531241981429503107653851037058875651695750576500858935824028686630664941098442609179503872589577652389068519677930203695893523601580267301865510713570070563778357305658081524639850480603840428100851188041516123325492411671227346808772196354504947194440611150656204610910072350316076142493066184654015860837237811456913214561933855274069182171396968633811484139103792932539873918953728352095966125006889299289292605824472690761305486528157662721385389857871240834785903101537070180673542100044134484260908121965054823254787383749758074861499280842641120554121751113231991949198688301659064011273447512248206650111626447394278743753717873605407134680238740919582674051210679483179293001769641039615534007800682675975338105772827768789232429443190868253064229697373531696394973025383008379775604858504264857161455301929110129839034911182008270367708509426056912337819410068785228873431542681999062717563727502362171211644601069084278788566271951807851405269721813387373268706310829087414332953821261608618099497614509160703771622917781648724226301303197644314634764112508878522464899850726939371180112960481402689738178128488110798235444867926230650100451715168138698745976403391207044075582918221992760185120079441883914767919142135283394765584676307378666721309737442136487249176177807438990840034691282710999783696851235503017641843208874582921076145994668828311751671157062364562962080964282950876110548056403178859444442155889297927300430034608650134296043605934945116317960283272259745178639549688887240085397650902181382067843974586502758139203160887056848313652394628836125027064106407548389851068852498649400893288912702017996757659807000946956285501665994841577432436162081970159657208398136780710578300920123229534317058655543304610754018017213035073249032391665026831058183184275259019121448695829788114592755030322234252829382120151607803215967078089080047981891147571477167838062246802627150590568127436467729915191324543172564090153853532864934653996711709569230849651747974908591954910267330143609367295271080844192670216981855220661067896078629628510941995527769183382031351639421791183222390037269394710299182314269003223736615045230889686171216499017547058958582489299673794587477722654541096504515697391121576409674756772025835941453497490217627811211666610120397924161444827974222028280426860669106089315926462168797499482616563813094085892716904534227897500194325502352902170793170361552461113018461924034238879299289344649139472562523912391282960186515995558783520942930587031946747695033599844327063675034124382638596026624390202085589916430232183147383339447246012989869222503020077019561136545135685284305067090919873513412917587311851510791817902919101306901760129503766362051999022164337077899758055795980000727035797990524244473718772793543738566998507406405732922472577486244815768783040050159960355373416653043620432144974353510748778478369131641890499460351777206370771295868582629758991457658203761574078322166139183538655079186534293817914282630022976798266132431639705792326845225873733700481490090890421726145910207497027026471584012565067553928307160309534504507634804483047162843142387288426687638870782321025728483202619484669016566777799006534950446618362205785524219032838526958360045168807156251919494161631543193362322878535124853187866908448111017084383414929020425086100430021130915941475820674489222920114595116287250421723082639988976929513973451848644406661009422173163389172705454566426033021614608890778598498239618526277949018155580662499582918114889762640922457779068876549773442178399384229629182451181356734077395440329633449590617546492019507100708555394912130208719579345499443469897969914968067093992676086118159879378936776678037291642511131927266958843483097308043068757114796493351805321935306368661781207498760401823743818498538265432839460549241951907776188785301658841548271314092908213612698537273279220631808768013952243801051573221244065256798598897365850886642773438248954500510824119495632937758828398548782267440876517702319595662605014959247145748378755923601135262577117894630082825715186020797290965239089393232589512517506705694838993896273401892258416472972463398818714673662909348063373616636607982818257059357427364842933461366638781665060194953484493172624229239168075702145971178301760913688090949567375699867133440021434387605464184436807597635729667368338025052532419889628918964391601586354761894999581184690702713422393590424115771535132342535052066672464556056871640949981272053641285135777691715494385293149322946011290117384868389041323967112092761858154580171116406647303710226753468029060171864691029301945162231047592171356492287115465212785171794978183015340339321860372560750388703339455036929024587075074107974988240344490738977194933133354246127482667634658965292315463262177125062109009453896685913369839450228672242450251628145154711526634220300331589988186586248976270118505284402099136800565731770243358784391810433301713251414672518070986918424342252584272626553884999983266801700888727695554962333708318604577922447069601660565589790893286628050754019725493632793221795775395760812608513848361826760757001168808090873807527661552089920904385817060361414667234575247459409411836453622140743079415146697640989041868651017972960082491154425633335720181970327561888446969672508685112077792248451519057701129747380765614535908463406964953475174000923983057378133238522639825394927018384949990301249022937060485053712319411171817486623680493897486091827349903053774216238325364604569303626165975492241462191297319622829400937002837370703187547667831901877338112203846273055695135606391193981334023481771377867441215855281662121341001050446465203880865442501950967053955876814261884028008157458269877443632740955311302060027212223776082090163418805993688685013277158493655952140147027835214027731131097831486136884581187347684467195901030767523383296469371285513168615537870413385201611454443080167487866091737674875688734406358082105551274597634349377096644741000429069538833635992378955621617824643830139810673632786374611999380260552298159931161489917369619493877315542856925939480327430236673816805343003257809877413506096797433567540506048858229921127263943776853797804020570629763069061678156003834092980927091173152993059303787691081882894302587234326243328915075729620998195844618559590689027506313286584580065629168912246379399366925730752789840187579253935369309821252936575399646413184489009947623193512612179046472143475624760098056615850242271868640201775039398636604530470027028760654803269924826159076272625340286017566815321892847042844942288880217207243264437626558494174248197399123779494531892721367581434380351927852219899353447076101010264792447393210396732757925592897718705700189290940519698541048142978308046100830491271557843885037913451260898397049514667543765953643390292355051271574437151222267795388483122677863291346211345835166310637975327470831716222140061918757196029248195382066213374977840972677433137922562577221502419503231188628975923948379194905679291657613757531205420510504529408264517803486448369278288710692025867606979823435355033244599244117436001606086365283529688593455119964066959391768065258830497206107632316877355781196833790009693303773386033423098345549136058004536299951014933471103413146147453530250545211311513473773730120118718169217310097641921837553531160011208938577329134944465006863193445089671528778245010384628503966502480361099319127190642376717942525243258167787256934451360157173839705905396503839211809467414227459636870136249902308315744490813944207727385552300043463098065303023496429270131310551397887632743658813838947904869810776922249018899695648804578065657293880045616487042628906080890350301669699483732746706798134251539262863810635838901647217310062438797063119386991633002818190760081408093653817375190573752720227516286249724996965721284206824623318895660773270063165607944528820135178530329554489441001028644731271737759298365888213171019683528794187824514807957220050850850632840638722104904051168084811587503856747767719410415901321894605612468731699963249927186835185093945401387716006329472732597585705742470750401541641058282141419129181928453851373789489436808193960958207641221588402017937681629636930909055882562674119456847432801440732414256371092831980286602925094776700351353397630811275294450151807464898323100209027790130302402637621380451809589192050492090764779666471454877345940764677602698887048352127264758369885949498153424524638661856779361985598063776798724514713888434001784316935879309292864190820168177782162338521393421703037561304938560478493433113391577635973952026997919785604145259456633999613971676436752026266932991739455537996877107459425960890758073032843172546303834414383255607953793787494731986087592502981443210648950743568593033197052118015131699832943471990116268887749340944923549617179992664660720783043649681545032754460889333989564370653174824254059318232697480732209390625216375980941615680830572390258440823684428307671011635780687528776757101573049063046334370745414701242450914941225672434777737039122816103069746492935470761692035835693577080641040844422292851520755689493473650511265035308503017319346453610210641346348105736889438189265042765188570964818338229597318394329671726324073467524816811264938242021787430611177209219300987369103078044634218913841894431737608660552132314779644013031347214025917351136397411125092813221103136074938416697111542316207421610197791549564276159409474296459787437693496180518801546879952351594484618559316425809271973838632998482623458320887886026810189573294600278036211665439159853253508763978292073389684403549152852835709109367013508016080565515042513743411367085062727773162974451819868790287481508944775818569870710576436539520359652027147425148094396898802979667041161035593300137661932921708774812105578367636693352265266526332479788755910083106299782235206371213210958552577314208991933772379015887381240356854674684388401102778527148680191171982271357076731546905726537368046816985608827865230928387590741562426450284579104218724565687774920800865869826289177239124037663410353591065934539302570225150623480741988883813924480047916251255738750242803607193786874868828030918906476041820525665517843695145046773879111672409996906889965180976592341739194798075188114336014759171037086823435411677079155696697984272741114349757683520911190614366775922794245435367169851196389683966708165892934720096039252724558524519302481610789305853804589212026068205311447021825383231512318734368676747789477338490199642409247269367178470954005742165953112745557862298119819728345463586831093339410060919186460648885294066468711329215534484158491700826352416904543587642800011995369573589902914361582764466114038104979899037984005851244667008484803619323212382647552989065913018391633242897009702461269172980370402420745307406902118028867581442872554593407784181536675697351094710237248103809214176653903335311966314848831989805740210307681399421127176938308310640005306588985434339623820517126007539786167642001736027277934278563787094325764535425519882022039057441415463730337454313399066423421852136028554698456173060854197446240284520733240127680752450121049172812124087092138233891588692538206160253310865565262686391248780962164816160477975784005641458000578795743000635277282961030197572600572867294380917234352092551903925221238345263095661298744018884781611766003780601210620131237685357167827165754678956794171634510282683039015978623259233949782052088622056737725821396250515119738827391365586897437990067118563968254181908956695553997072967985910026007669206016021870042548578397999054565941009152230135566020014113368344717371117778688906996634877789340465365681986846364445258602621538635449999011208152167250824105508643237757090157332464955725484332917873219743952266423256540118870662726126570115345490921494392992163894543090329712941035416346355021582767097384062032473889551801201752797265846183033855714529644235901341619601664045364297691077601457788974127065827625041928257523306533903418049291464596410953997614327880970519642810897457882198017640940564521266657817941574537493247609400349086084607218537957730785845415598127321396029398681032021332131054666998028125657742110147513464172107428263724305330422391420812820974362875417631932101855951759815755736371769876207477494023926365172689640862178593410447487637016819489324192881236539573663465916063636156458582502899473794181193612127276272153746597561693711815926839231956434730144970725082248101439727985968167942021344588671446995911444971827673963126888263213035585540335799046335996566834189745277346683590617101644854884270035383361042923653765226263801191766873299393196420507386990213972113178638971603852087886140055720280040698636836689300149607414933485287733937112394148279681814990069906448303622335913473698376479930611265202807113273045873175522759804133828072010273486557412886395523825913444920777156816739608945655703910100031782753823181409762263398012317639402452643069571662814686506784429154322995001273463824271714312896425221276041663393620883046165186134200116360909675058530091996330217928306591142475509699937480456391548972749234142375912507412809722647353394599277574360530792623961750174767881621230282363712140893544205765129074814905955794528631964027662529951183072510446989273801788023394149293128119442596192301301701999441994924056257092936082610183372072503763454281616528754077442547008299021981678346164461849821906098697589335589678864035235334074395757343727089265918349219671318150966788181330004606915976586087612481530076789482416626012129669571862989974624212778412915512109589372877962604043703146117466154324839221980889502885681515905872985229939713337758932091346702523639293178763513545829421542590483333751319604602910939055208791254769167031035019525976002613482370917618880395855168226106581437313907962463844236947705994700719479703341446960567755874834370939849635383630173935876043403694202252130876687574789532919850590839402506553676805731104596907801785125768584515445391525286007057689789250596865264635410757748109636085128653733183258220111538894485072709586968011097045694107419206738412951994467318344761660377642913529217473808060799728397994190961197436198596789608721493495848522068760105435131213724469820097088201155670945659537386307070439647804399536544224015624150316268169774275229396395723502183073470427954573454368501742908135326978275548443286537851473080103314367576034223329094798201102175979035523448615892686142345339881349150356380562639061670150478549275360280082480458367224755870170091316548310573960104578393805930806879401619433323010901947239559244068250606055179314460437544508224259714074950617323869835549039939660928476436098695674213945088654622056458808098835751681625440077286386587844730453069316714703314908588680479690308614086377468084412480480193745631118095791348877401898360180402771600855795166860975632615991113592035238598506634007738082101748508964376511366083124010505627014308767904635323497205024604493217081991339578592653626189210071025866523099591889462155032511575127220297247394933308828410553787099194795187309291750542717009697286974492223678856612088931848796472881346116079914307040615559627573142019655934781632835272740448069916939489695304716593061771419535955612893893241532087590407336552461481629469630968884117892868095635612422168164120688149547967367860079122479650468404763288059145269403353074841282667274853680997906282365188010058920786930351396030641995535007406925014470833301322591414383061214003148300441977030681655188883097652137966916641284216684504647781222202584143491800580725095110242264610981674905679839201976044335036417528283898176811514784313386741245387739805463762100066936193840633866240900366161711648989530247730783443868156283138321893983975317553255045656938193813430438956876084576621577266505571954957754387693620623507786880230168458819781396053157366875982772406940925164653804489134479498524551702000230541210618668472491405198668026595996486758355470045719993030160286376284323950490598329962957292796721872950835803289354496261085366053742587896522372694100556084610208801752479651493107922596812844978393615927917074583157942745842699132260475381726398345312935145681056787260645957266082209217609077322494981532896850925506147440974270871750493018758050177492051597379450187814699401346049279512231831674201143682011769207164361241353302480778850042538626077519094905649004111172878087237522311759959282724666100137731945908294385741650083212217634357901484157356734779700744196433113201191303348646716302004864174184980673743407661115414696495014915968383887296520002338362997659931849138187519233651660669731237325015593598579791825255114962562536081348128833086721223348224988610907774496720903072184050782071530513941954750422064963233247625283781480493654651497198911468310307047222962268246196969285807295957121483111324710725159246754206848879356767348228678954957039829674977762897410175447518224097607876799236774027150321481525682614033128286949665689049787796681950854096526232277296206536361063415679290629828184541092902528701588869315304195704132715286483591816072642051244370397728118407892867930895878677160848930532557540530341551429436105907320956685484409362330768122469655292264810593865649364812787621737686183126113029202038065235807292248635727101552151440484472184840359581844147818882177039041409445397481259981576316542955612066947585735985452220013568405479071999587145067351197884809122074290443626781336699449285531827440892270481722280920817072341280727879857721229258697511962024717223788401222030767501029408300378424517810712386994815435295387345309215738714078483032767494105018423823692806016604607522481674966880593597466898810876434519794177192447893963544111560410369904378439799563789358156610527643669235231554444125188388497565501400328623579744436691865531505082682962624996551291642035188110078437015418062317015485703488525780127449670022529654406545450141260446521858712845708911524530149467883895140923288395549514535896506723283253330692988402881559108610785393642698018018476725370223578969594988758868674725903154521802839246817411855462748436742045763048635292368161776341355210791251374535292711522483877116585365780153391979084689773751222703801333687842375621536963529095683196009783032872589928064634002452913545585815047880877991796243261519526688806386213435257160811508033622030995450409747175768539697876124552186869044063563251873722297179911814454799077535533255392198391944437603776174619295391256183520938453807819301909346666550728402833527141635482511736975156175542821045967925957079678639945226646035223281667100039883264272438291148070619183801093915627433814628054685420977520914806614757750345473336477651365997047114227379260464576458270379552419267170407505227371068650758037044473181157898097882495190923413132490490512222797039911654920261905952209666732071984815583351698390964619124155816393496590994898638619890498187856852482566987657863576483663930400815831466460593439335463927673957443983275117242305629934067465151510536520835322990683837762209410770397901531616516598165499404317508562528484994796646349105643079094409138617360072969313192128096861666926742231900655569755651048962520821183095609428240290947183506262561201330086694376375297948977542308665535281113272082139793796482122388227804969983299524355456643186814477737317548507984585583276850815631842799308023638067566827842270416494689438266904589888307815301386011242628411729744787662499064524786352682666294074082250248719439093851397395172488478173579145682800777783222727136637941637785629050679558701681186928686436607097625960170136982300003075454866948636350034020658491405080103062439157877191345573711358175337219526175221261972256374809372318084302769095945012385516126655057452607931357376347060953812217769425189140270929075877613672752262011948070333101101182723414028234654845460539562539703659894133109474040431861350682118394447674207339484301101833709180055763183787987116380969491130548189924336976802871131430586154386547944857234600622588017930036094958466069801526575600912282445503769419895878628463243823242884914015654498495371827439995962518952907472999034968234410647609511475930475807992462597778054157633511498483759500683414512583847249865333520657699411374598971742868116975485082159549514971296809044937869747929257215612894711601403282324117495733073203636161357296129601148136987831171346056169371363347956212248018911666157548917829222430024380477683438016830061747945095647472460522213271707372430357149514879082670181377637354455229633806415165291635132046164985024185070595911851358028746864614415416214123102279897610896527503494186576745497524460280294038336664011854369198181271168041647855100786833350209724506639024829884901847547958729552306807020651467495607545215229299242860210163076468057538481234748166709729359751264667255032241126933530757031741948161778899268745532196119940600958511705005515380627937111536717842651909670300005085572009277559321084327482727820534635849348092707826229299433836338950332716384527368196438909920150106739821117721965093869876881882995269089046402100704420481164993083191120629068248837159000208236741322774514059203674858324408174349391011260161485368413074575432851536397706277704376277708433771403095183308372528230429081122098184112964710645103539516434301891009686200454002723219874061574933921020161293340803933701407828853620540034426637040237850531383894692032737714866079336363817117166223507287856199295745588950982558852674286465463780954747589851796282785758541731017477881317913227370532146276957704531500401329828194811630179606330236632446116565874677654581246638602320200291969512292220247074986634173556020578122102414101599340949268708379215054957761604468546961006653057701832426368540065200304783745517640736375531761776179717308928692697863224010875505532402889280094459875204038810313242256310840160926652056280356891648023142357364251186848476053978016352773240209536101246572475646313567335338549856388190904675409824749555203257042612568997282867508301025042156898399365122987053079280399586836242527577112653946069634064187106915419173735044692973731983465056970783224888320716061250852345262104681254932931749443309307693889583546545370464996612600024488949392889307058004779385459505656868223633149439196078282647191261986803779524559292287887037751764995378020403919358567032682336852724287930001951259883236812581182598871454350860677967582192669977467314797227403637310962483325103444813351996607704946288041428133780074883599646538790048689002065487402062944879237831933275876968048165680185957062215564744952553121858394392414281639687814727569162288953545638510326467403204594216030710076169763117859268624545864726631585523608942397545000529830831182039500344292335234035254584724505220676107127137510330593592123912705348425389439095200826956138720307154210346982527903637689442801118278054067356512145055801083410492659188191011263448436926309100452904748761497582465444401240203039976385583410659612022138814988287450025592677195529067427024823712866562808715503650644650351063534112948080554091683612790079060285875061789258332047818070150682976604757026095516112371065180596711665489843295669853577960090786583985416924057782732976289552902021223083778399554361417868391755369703973470765021615106496950571863846452761676880666365938434580591205257687025138002070933895188378265938002746618655661461051082345832518233168331387198429572340148184438630058660042745214120754837615448171046101430231382007492249917729095364972047944352195919891910513582960688330593943296111887509295374823284870456963629956233236178280634598464475681399663799609038343161124756196172183354498729570523998011041782238044328565875393625614206977182513675810733330235221380956120325750938026070358824439862463740859248889158677701429554020184779497706293837922016344421792038849702829583985551050756825782966162481920564938679519665333821030268177856654833837647959686835524292032894461399105783355985339554635157719482147322392224143496871325937717577669821135852239822707619126868217274424662184915630502927078992888174744277189880182200364451754838560886748405300521384965137933931427306027601303978519441974903647465705560155634589410829362746748016042004943081114392092160315508538097630445658966649039870224936525466418906111337918156101623342601624661028024120490796814557435320221214515821932459518478403884998066798817411955417986016119578598648307138291232651132945581207220406841611914854657096083623476407377140956390355897503697314511087922969457524109150494291715336693795300219364876256820942179944548849912913139057188291383553422955225677428142194898848635148209392734491656326339651976263108394126025619470288955974662734044239309017365413537785369254668793121506840471351075414472837976456508251840746010690343745560896215872705817563144079250498509382679664762739848445703157725568433306274990703260458036207660414170030974035433060255064346171513440746682932041440295603011180136530381690715646871989691133471479316234173781015740175325938205874664983099944810825248383052495223147822540588572194660428906335990066692279605730870428763710251611963327688509732247252007129594768720795727230297876420748327882889741830550114836469035834655035978925162287107311777406370906161395462951385298224067604798982516207420166191240471472705855502717502517030240711522577137432823693198254151539317259489092932027714367062463234951013462054584709136169413731974059960360008149117256872595066276669209979159319953689222056819314705178198797802432943535963095723822287235240120503750368338166882162105373846886386632143147102614491534735828895125059967891436200820652596263442226541888219173348853131848623523381122409952982169358370881737516757375819629017732355358164060746659647638982223564025324376429566699586137317850230824005178866642223958383628448386747761180159266763632209204109487395721056671154678849588037245877377158599520194819151200485100793260389380211116255416176401425951193315727708912781991834033688927618640686462907065292922632295595914602341574597503071498811992218795412188723520518630606864487315713280735515350841496340346222132529674073909796120434583231970372611542832097767917771631375878807221915042388023190253629158677805771463178309941437059973946854086801189799676742621916649055906219646476475389622914327414379838930999684158177428639197958624972102579532626416935833541632973466068108841757551377371969580010819242793213676123517089959106705158429496017394021261816648201287333840128995040432805526791934544664070536820695236023659701702378644002250628637866607391159161934692921837282304436440529679514418097283661330016257287635727565192344686702573864134576726920663805380793406550649013071883671133504546628449206893704803927120948709329540527750758818893807162468181625341576119615790818178584239054538301548412457133182201683937749176873407810062483848596432901517549975984113371875543993344318341322770060554024486597735905785021764375042371169874599465950438732097835214601263498793253117003374564459874076756772485305371121120773076511840180770034330015420675716823317911979801400529932097184502215945772567129225463411977802206992231577757891581738823016429709574242331337848203737324324077366529566986332577464504538193622913611501227431742119290175515261275490285273951901146780672360228198719713383609264087175935452439660061259530037002187494654633997631947605482210551212604215949562904149887906860467156332245409347637858128992768278773027858432963592813217679173748054040347632133107468405108961693204861504222110543745325497781403510245305299636633763160529321934709310124347987465962009374928814407495757190428159044220747497253201376834635638992729511070710176354749974881276904096028930277277835151978238244654071958736415009980888407128806105112621197250546038100610686758716295276750624132261672778969217377635616365575492359171734894617217008922188593875426008622603249613828242385540100302490216711016313299657922290097983731318569765414231044855942592184459041171161686602813853528180550613010178783774249158688890831424993176304656598796041477805933223855624728889523631589545366608061910706513370917414800955056513654768077388867093990683269315997901523461232680465326376413512558361315719287936532134448647293729178849542284404922430466639771114417833852306818267209057840948260799482183045562179142550768800018783129204390511147664076596005058712437970449701234704471722093731759736189743747461955271186057705926742647141699204626696953451735715943943458836317230377872485451681056845970946384585549605718567878734749008778586483727286505464177254332377968231398626887531384189803444628133443478296548202132963937862171252490772363731627096405623505641541425330958365311144027091556006520732087933189119357627994893211985683938642309523163252589643077590398335611008450733693417712223677799274839045520151824279999145519282648793857581663363979084328241899414193630031547044683145089852898454584719052290945927049020093312589425958259734365373262266669428448469179430486251433481078864789531410727354833174469118044411240237288681954376361444418840217183666338548538256578243217829466383709150587227367144817016726861528499325956939702886362672927441389548803060560468922019792088187691352084589553046130687036826799495354369018204016170568670236126250178616995538759842035471402389704150207082809502760091021716350599983590492486534966010043279956638881264712454971280056828384648262327472719116939838878322793006105690754734485891880510032734436902518332954036004346400276057662251696686729304730517867351803705985607735427278509233304715859253203724430438528332533216679707177023300654543429493920744614067021081079391689353859874046221021470142760870338201824923183327961601661511693156538595980447410795374769247505686427738920529349150339289358600649690746218089054665879343070533197335346254141450604280465315481030829014479917025999493854792869504782988691160449422833184533512074910235744154010444427083614547994858480329831295817075024146513420636588341103111924537927043028012205472115350043775693007297906133787304823721264357563514845317017689179419363795859332468786853081454031028367494204533450140468909132707914988403007604655370768237777974126847941555866430963589095983019928459889516133028756454141766002112828848700054745386232686364735163278845552914278857099885727318406016898882783868243769579244084265209924665312953788218569133981917125786962922537481344596281549604791419070545491138769030880260009463132648995817021375499791376104049138003650944895684910849555697466776553158678883465548098118149919538242558757019919977065380067455308031726016046753553640153306937583111961862321259604151500818707371985547236316029157134665334325667891516829343674877341714898666873655253842578259940213484292647652505810687804700174427698376190727774212821089408606270515978799744224535219003353723090452431877474800717305155829502254407076929708929601906248379698731330497608819303169416564882678640950129458647323882129627514189972957009739124465066933986562421237973646259363049174003100542356601734097514435149080805172497682309551119813197168419075972496529985898278317707543872548086517137349703313242364668940571179123956491758303196602243979522792827591941927721311541207504608471335413649073931104114905582244718100829794992244519472440223747956771877834418016294187929725281292165784765068217988478205757473690778424321586667543692019594105022263681247627408909056367593029121414996033195052327734541414957706463225085829040930756215336344281604134875639549527662420553201162269199304330186596315239518265022660236541760558893164057585847721546154025402775299273690605292415702703854957356272946269116877672854441464454313946337944658323854700638114644613814279565433983795877780031488676465285712379995620804239558457735971253209372311600045271871617050768276675871572255489691817831616014316985718672083562379276640645011944205549196872435333241379870596207475936657254786404641041220355999278941831198632381335103823509905552822211424259667062122444908243567558055890397873379242016645052316190527085825933614400985857629833380713103619334377253628126627164502969511228939705778993916349153681376594095912527858338399203267597271778922860853102521953899259875021923140954003383691650700908955057525697624828996166518133522340446417821958751656134251296446499230141041806794924931007625711959872874465976262299677818662063593172837324839235386442765919523214825895331857999771059010474365269314288870402658413740428675132697033753365535634944938629914966920900751007983758282673670044028890942197921352073250727888429114506337447016211006783553079490058058331982288012375682333558024035855685266546525174909730374931924413237937965190109649148299923947065013653329373134153850977306097868200716536884244548500613658438948115684012240044270884845752157802841230800623549084758816907591311536370017115987337206657868748015447254676395105768983499307960290789917044360072086592882696343108983085455189934152340697972553967281887210232893325997352247302164622447504627938384956907422927022941383181647405873892520543495914283791235057100161617454224595867220957299386309542978396845641354793828332784731414162571044626881033295299418260388598926222791358845827915548483294390256060269789021676283463741197879464896165117356198850898807236671400425387746988252862911036727227016086952811465545591803957456724609201885594127491994149113937314106991772107831813893499212088684121726619170882547411853161348637865102006222071184792433906116201053177739525271582868007945550872368391940529063216312632571172331868036813804319929795364141515697042683734753826547421026927206140329717723097416742080438511127475248727785499972458890528666397949688222262375929967191166149493397190700270429288255391159600070083592823192353804103661424853533309437411534062195936113384308697429606050050953053542115815953206456546151616166299473868911559786219996306989470730079815392247496722709175982593993655845628359417614840495737007330628495947038594037117012563583314475824864743868616072592984506368909271998780017054464516989094300245732031767669284168612017810487123630660097192607606121286434456802225665462885899981653952466160851056544936872759179966781993440918031303791873826175884746886087803312521840539262087179717740426620908265188026642832017702794559932217225175518168440692353749639382956879993826751438312968503488810884276547696680618031309553261864219119382898545482351964096409485927892847494728728925829021230585261251988900156694904422754139506910297710493838137833842525440793378580940060870271701118940197055227505280316141686255264108574433208726106055667977389619738218494903202961804572538980237610870350769355926407394881780328611199101557072337319960962916758041908029232872052851789815514030256591373243876669191950824025840338945832028908100060707734811241446717913720788721095625210241631360596399907574908038519619658501783717896480499228055453728576267665109848817052995721957094143466788378177121042283995889090070172037338397152039882295025848663114104570314306737995308270322175615353371251782580447537244661194446523067158226094097948791462471775249681826817126916623256228613195213652239731227956496354147156978872579286860309616803752626733079755130337843689655175155050584515204768881727079712239176554377184609719300501132964965533932706382835004215114211590769334532410664517748380105318641848063120049400047048934717794308088011136110092444644143845912676179737839745976728494383753783364501471591410209023651216567669322109703681677342817585485132322551436607969246121045172948442068083851920007279450457101989925890251233983055930621749899820570342936529567033151942273270530682339727805045625934599308589033941431113588206794258315097219468036832591706146245448394231916327449345217545135926835786822535230807469294060927500015629855944096980928690674737879375274332836730163375095541540672083237962127760421745487878154384850428865841430811419905119326328338403406236880294164040719825256820560422876430825732025636228092718799886938913415971671352410390322964845607667396717565802456519459222966247784947877626208656505603690842144814822890894418512086840039455913137306080168905893230637674135083623305137015818330424715485212368316666641494226960938454538158650864706003936214201319552691472897851557679935480860852954005123111289196957831206673221254304158661728446096123934151647472328078193794031725840119078068043080255587085312521773493583442800052977955590769419184645385179506774074227254139158251601954405671425619528322649062992062189192120793787986643430321624856934769174472424078653886358076135498724659344192258509443506648343083768576412379495393178047692400173596912761801004420008196172990433275787320868495728616583671732675566122657620607414801416305202838338557410263002293988005953901303550611503765236248047988180390062643524017489420587358419936140651584435316088740786038038506028741298386238337577389449105822496162209624060440880787796903347809454658704611295779424407343521376171306472503853541116356893858629647786055538092880229948460747006974728427122083495854236322615956405769352454104880096210102720050288915939594086469295950859965897588631987887842597908361305903315019654028741696851430252476083163433445192102308625961130005952803630773229198209623544253180956121451152409541223834660734650515111044706615378869496373250779884635479707141708867680254333971099790709593750364211964256277746469310929501770901870377249270102227129910634213001370817517535556962277960548331624831929693941776809063312705782016182307054692410253159932249137659136075330790027076896823018699257030628035570822476031146541975506552189532139308316683349893449683830729971294563926217247721274105465323364414083133515232851184518424328040089176064210416004146569803338337772671083583113702277889595985761672469753571638678502001054468750882873356239380327819382276387638849906306871868043585904977224169280649039709497963003877061820642507478217976222735366485677004722199137795449652903341560707902052374043666507052693984629871156839892969659899089166901707055667765581885103567737519409097251220620843136713552312835834863709852842283115076680936340193404969384258687927641901704968534285706844613406319807197051085333196659861760959266900760759793205394093544679076310575853694718953999383069266792723628881067435973693700339447817639566254846356128747708947637242810889533287198194751719539050828942994124657958319509278773128924048930339912899219999047380484451765545679548352461596023579491630081198565390986670432293169855311372740599006533874467872511999774370783751000616453918457111600937169040879622930158437908526175549310420586735828361612672470946395012094173554527227306177267136736756227329511862872889383315500712981938173827786013732314281885243108006012017622232241228247161098512457764052841976908683724869659043253206567042517334485445957497360599150626648301745607479625150693136730129450101306518219819267764676151202547201401480435977587840222896698570303974547372189211884476059984501561744333299076330387055536877033554655565144766398996374063513607582544530847538479258805410133462443130576525154110294387413704574116709900268962836720048380673849325709183320330996145230529207878913101032688067952379875414266530022133232518041006010434292740296250582745188010685613887604947944295919320094216375196142604020829158705123077258798561432623891207683717779326856775760256930375177586357395780562767444591704514859565495714520163484462531099887490874957285097246403966308982752511546291376780087284030088536037659558706888377239877824396142339008784665684335845271579941124548212139964580639465120982707442223118349709961365043424752800441386345521145330033589550911181715310058829055984347083781459317396482823387771360034283946104420983486353823286047223288632224848214692905499013966690606509220631501602731771436605657458345786585040355222812292135387367314993617140600615942208086243525924879734974213133903855340858843020960269974374429689217545915145582222263181500764090997034217517142687615924994431408926455708310848555726961347911683013048389685855277559693748980266875507135517760785315118168286866576474688973729255657143783153783080785910040769022792425429399321044154648452170992692095755127167472918309437463197903914688784574767829918116381212040507020264836586452270482149387097747069876698294680117288439723944023656035611173877838225967054389228390720148033668393190674713994445168578816021388900867306954486517557230202331013487913295556485690926061505571333547324245330682868793958287149543612880401821313837719857998774398894494447137545934612342229268962661122317167171641608326721753046301226609133168828883933972016952151300551010395983365881877808125908567365867580166382777461391286359529335627522015275569058295236774934380711210562321196430642974663489949808056978775279734321884909064890074134585151601363134884089422041649083370506517423083011676262576149833911470636326857312453347987903362647699036521101931231836156443900929168195679996085624285875573342211690917050583922356733994170465862190741098759709161144888211351683186355667769503567547939558867059589025122396516218629142404768019040543547567690972007986835508339164348267051405129959721150281954115860053014822876672679813094342202299437329832530145465892845709950455033931680899304087738018344436953068781465463956376287075158428830985308976435538575419273116419020770179996065039687450963511468713112097669097681581914120295878815561003443382528616248190158816408941263436291810049215408505880072571643243529786904667810278311360207257647984026088441992701871426826155562547093441897323609104711288268525902718006049453596387630429402588635186036881938846627127053414407942181377979996217533117913553015116881686131558394976201189509747004641405005981000448345097104984435780065605364011108894215075859241538804033645526549352267645673111450410443578893212692630284116299484558736422232680851802695444589110701081635790888814243609187624017082133164442787168775638820341779728569009019515975780323840578227353409638583429806778145379583853618858497772643400740718590951065272215641178578057106207387406314812607103641945748632316707892073137081422739555962166708287375848702498864073867835110208829929644227459205304609971741868352363511006063583335025694229463242455304880632148537319078521356491721349368752659540823743721909456571420082258035005861683848549835972701618755982987672288256273498291217966761954790875184583359079475440708915390647455307866664552339094120285217101892401862050876487548927702492016245707981083092165721555644363679964753559024473329225235778130651141040987576964675323729788797350707359395018718003861577689204815253251666662119039558091824387994865032516858464971208877509743606794691623252190739267031551068854570100382063284848125969703342479944063703186051212674837741092328425215251865666116052830527148334430848585113139533668385865923690867952394084370213026739530817113811326150202361662386949301431797082799684434889776615684278750564691190142449712826474669375298966424297670067459172516573737385086399704440151028715359347032621174586763119294680303086139269749931623583312152462269376366524730445657660796436165717563327674696531713358601362383673698261971851935728775481015649988187287435889968029919223982092879975327837582738890262950671159712580246691356587484404783280759454630545598044208421135148747767811466466215627848455655248425375910384617519684599863956135267456492859264040958453069249878550902548956080681676666883575112128779094353268087622115192253038457729799875671767327615037662847826090764976453866894420399187617983819076765433370905603045461089387224860681139792789770964885388557730958103078225099353951813896483656865682885337304232297289129916640938184476604935959017669064851414281437185543176526595872837623438816457902081531342409470602554744269902717727628644094398745019892935258138019074422621863662345928155056167640699828941620270796316687425585885092459800606491660964628801409535730599698826693186349569992867375395783344477914116332259026375122675974492827203374487446933796102298445949159137364551904656918685386118371660404724667518123972611120937897868331441586937426520460414634186818923013362613685097585851684157084474629529100567895938545990196397299755130232886591334134820783828862874563564237855556592898351779623493944440869988368197751235602465455099837844644022381795858364043498418245434368590425272419056329847232059567617226479826843030716482248288993418525711393064887515140426961383752138452570537295393068633989646833945126213426260658103194060705231285168630379062899339231220890436481343497223622808797678268447883390614687955609865948612951370780891887117552721591859615128745413439772844442559614886242861487349800757346727184207499722191304862108134184574638431040577222563951889669531948031183147807041115574894205043674167450096490352840611231976300839637334973069964584744562373017383503339318821241905930165417271358989558716253441066753224863929030805580507902575273047437945994276391224044999976948260464694434528618458358609676375180076902095586579442560585563365322616355112159066190563127025919778638658206783557910766603982159523098569401720923467080442058242171847486400315480000237314073514415941732812260302687280212505934306167611160368776996050550338482159026776010478208205516746969907173303688227117019841479433193962330510934587269023393442018070169835086262606872238417225826217120416656743575157513245610384267967014674204542369037224195192868290230413721005424155400398225588081983357812905003840641070742845650317238234762703932386491281193072297589865250349757684956846036709144630190811087334522315745825211361955486278569895896945018481160520234302648838145420511452912463622503065826643672728069125781133131386024938175982529217576943728060068546126044486805396458448302703547971358319259978320657662701265676405404093391503553877409778651197876703866807614207655081542560398773467879707775133606275104050010760494603842327512602261489193288360976688585414327496863935858388831643669482832947239348197154104451666466137041335559677580933575642847402536580819327655499085345450533241242332559703517525728270978369400061008756960013633080589068095180891969095063459200558493200581942451464998085168578107385820557752243344284687078807252694184875505053355735234825807130732014531053586776660014709014462871028154375291731896454440736236978029781159602690420286782404537072142280889301477425252805649551009795731259994684796892550299959664653916784680189796804604933826723399173954552769891731345029722650421712221488217792291271793056798755295114806070461359664934308582274761639376275822188676650134638285734300586325980617822913698602851015695128545040468359785486835524205674176889465405207178798973935463398330828536956041187111284485931814458240280127046773547224522130260698453801458147039165767270049173921722779863350090419196705909060157445540030862870452304006681623670993044012766796307774148325457583275109714255925310334117319972401538144210445164503714488674786961975341284448142746530919674757626748956691239778999023879603883954394095627079025368181345946600666746899633564284089820406982196919039461048330566291696291665622791624724558931723022117488510649000684618278387942274900596385520147470155245610111687450108931883846543590984603824670972168814654392507871377440789073907916476731103091888934087938444066984021525512446324082342772527310766617228181050953021904733799634186041936933383732249783213468536358375624458712782348595757793793447465718877996459287913749227170556379774039733279384767761030145842539465722946209151241001996004645550760846458676767514099551437154758708393328275181019267076321580077959617988073889618691462635509206610009452705156429291311394891142590219150483859202085278027374448217881027785596388019721518590264084470192729365468377597219693912662227495655625558437110938908414040297029640634533416706768915735891731296701654891874793308740571101711757251743245213227751316087831365358558331340833157919132619800090531568974996938766076537878294293364100168741123117881974158982916209850383807427624000723129960902844838943021795952844851728608973798039361301315339292694938241762774893290632048926103353535605364996123123957863163849183908645786859007292111841523463458790026524715779086285228639718700926153179238270663464728381578094221649859943459724858316162550940428464354831627973400184227540833425608349618113887147145933269165344980962639809163342869254854021143933849397228820710316377850160945705545473148427912689425947339803933345327379787729223903146804517869762091097733876647415807827119931866261976879953076312845095106253548385691269823577804031209235531779812660864355232640607083828562193589329921164120939717778338784589541123893326739598046831510784333566220349265599776628875514714109657078379528784023796144956462188123830827921435265800739834095523021722702831816076939082798214187358473648738694083171944283651356877325743461724301184682160600604099591402549373707661904525341869259337114516194983063824105470101024237795453349813751578280824353290477455235526567735392885952447095638633531366562983602204785648102909560367954243483452919970627251548948867060795395336996647253402789886245391212785974515817193370379484249620858913516440313696361525774421101657386978946277488925290277757856144104506828870164176261816039348844429964914811137533369151796696955782495087133799678073569815948885774985559209295749525383223591759891457363234978375194018899079034060408478883466553844014740604888714179728121720563238678054759941268245095746271784392350788806717731315420484962441678623696219449980770564063981109494015835239268880884061663699263137222437147930494436984542283598413373607881576013442546190019696107168816786448345167670188835959451103374301029695674649418570231568357681952640424201773475921146886379422043591516835843921295792642870858281966467363870384332682590348227034228120223945915713892496131053688665747085429437826694228322310399588403762715899843791161548832440527385472121896337093156951087168053729454687954412542746618391556785428233464759213147810097517951222965992409959339365958201942751166258853418219631295943333458587362632608485148397258164868955812957038999703291656706201287054024812025024351695212232176460380057875601356415090126353954020141285592729225581965871518233249483667726530488297579697800153779986077020579013745205584977793768023883026820223966343531884452940124177174915711658187138434004973227524435128178756466605679305122406061877614127530662835881157059315474062033473293159186834051919038842165631728835543829741592540597383861079767832294031319531727242378942923432541228639651861442652438313821066362621170475556144239123615469801288151484799596421402930071406812364622946344445906307742488340453034314325075715257129079537992695203856124771058558436917388254660567512712684583020660076227095288758631818028199011900343241968529332988022623924132884252720696755474586399285663181190492148601148539629681555429329091748259119980830732453831554857528672179832898344620582415558362411643186582087676858274005741294159583068135228775694906406954709751650860652431539821072346604978347129276779289564253008773281235762059838449348258727974428323162809243200652780921776705978764007757665960941092968966995129691440691289963732300006251325746242010405815026399385197940197150878388654131036565253732204875669566363878451241742003679746190724108462022486568521034150622723831800347160550935832280162105642848338650763837358562484449852105659488989526014735104452696663631681348082429695502235439505391770150661959700911902789901058094973735267190483655858992490245188006286433980799010124444930316633349440758534797692872933499870136933399298101837087425457246728370766093156544057440272777519935966105553078873352996507497446245231533574547116549992009844609064168564335916066372692743117948590853470395315385844913269108922888531171614800626858368016964977503890496775224276797284101741704357368223291517665155333312643376720256471108930390743269077920419599217237388090873823048646701643024481779850525905078882919586677481095951153900758663901189992215632750065572303258959882756899755121803415293233387113870910938387912695519766730037795487837142872058487825347871353284393387706780580919360011058146765699717123996114759674311785048262675711813325675902836737047366264684042751222495848320291252659758099018445091335093051986843488236153761154711642491094174043445965351629108463504295074846767794805493191491050454187814397831825752755630306624657389712701546499542615824827465507810999690552282018551119779821102368028702891301728327744038148353868672245973249873010618294439167021156411523285946095949147188813568484890943941527207077619703311921119869981360711442513176118799430141655105946868081980238316847608552589391124042002740221557764327943345905656520141487115079171918976539130255502526022709922145163579084285256796638159991576768988373095610758051523086223425463337410660446905545921018172610274210301854269070293276120831583766822578748009003239500034466069473731901742731824324561194363644336681847938686199216438195656987067251628874297116696160512028216290485340409504749175991362608295188816178119754346775649115302583309259086932385805309469248877155210867759836389489162044579054395378903891002113266043243546227306032297715996576635975240993938080951876680054685638806647234037191598265545807630429965280432344809965078415976725871761382146870704999946881865809421258867659002060219757385506017625696339999164655220381373634210140233466952589332618494200844139591258068530387211520196162562688269743021429361794989670386740868697938560579216755695481048375903535923518899032528928110388306176556205318179710540900370874962840401772443168952038267558522800108073472097186799181850814792712123098031425076946236389244669482979642513192186728893960962342818399650766216651218733280147846384482775956374929332348305102316352076838612919020256486977203108902099296372783651663868175949179952833010542164738695993095785534355083737270476102553427024275124990974867210963434606245429971113290969446652037297858508258750627853053706748472660599158997877039266193160123369507813650892217140384053346562849508293227799488874183856555054098930606451162599970652655345820895360733848810092602537673607107107376037466819619316414222692025028918846678869475384580749549212905708674804360171680594110057327409382353007612032387469313744957862079592163595017603738440722829205214239079799304174962304993206061037738492696127946511764033854430955328301000626648873411672344937131291051776381479978505852288677851916439704113709118416938798031160947776099156703767630565787508435228226612343357365922883276103062663373160829940855338244892035846138167972271510754024731093377030410244242329529069788389434365665142680524831875058325922356525103830927369998198407694319630951951140007605185548536359121253900323852880014325787323617025120188564862954161798602628722870063750536533390755055395754240646420980921561400758472609716991441478641202923861340336887601367924989746208925790398269831595778313974280847662399833421803569748597123512663913598408473714123288437229623807899632846822813558224199056119108137300641994238641491956359374092766240073001105793037681212496775050307934846995189377347943513109209850565340781200619422808326583180655742502671615961337174336438128215430950879247021602747376960212107110928454863084694006341717082936346897965999603411748630891919104912343342993462171228286705642237870502543789874371014831358581078112690094283350501122249795548351227241851534650909401942749923386455662152206182829947481291447709401175128501148616311776886557541169402314929474395153525100509130174380633723317707603232350427898438394975443211799431338358112417027822547817701606275161039108593783120082810314051160471275795768251941107181718350428558728024842551604731317095944709020078280797190986968602003194943416781014699768479632851007138974435412760056537666812524612754707606959687320829621476551250497298862556780168560217484822233351211420417263609798412113754349492760647193704708134936635452774606005879928400681730776007918615622851979771587480754507362626577893182711128014434038917335582204414525664321257665771941176266062157018116253767853477372528553231756238494723144994399768669524748913153106704905070058527312806912656746197945715673361206177487618933670502937535124980925906631229024718681709257935333500042389172307140554127411528786620662332760400304881162076567648656850699411730878283493156859354419155836673769442135030337763427795158506187937080414383053968039929090366314769652162229709021600249905282776281216979630004675203898996462143519768843793187571169401062938914726979335283880657128114312532072802388786034564312056395501114255480638204589335414138004304477217686708727427422439613529238327573401845091852510638583688428467191343225395521131615558004720502978223176919502866903128864559084492351668510276080711136370269119387003927515554120105640187227099178577880355090493722931085869546784500706212353890579693617745905277514415897025769839725213466810998783597393434988739505091136761447466449837545473100174830947369492401602049842997648370577058529349681861030055969481845119310559954020660823018873134288207933242750860664034998127397137709469811480125447641933064247702391376651460425941543649624428807994470565878728770493976247168371283675167760906074221203190145265314914387411491198698832925437469295897423007087469528008463428763700601484138241114317051237428101724021363728008373038953273898962563088471462486167055388118209769010567576617552602992227200684115109836066358710915966592813013746546583043902533056459930670527050346022202210550629247243630283309372139045577851003052649827393984953951713091254340718628669868799361507031827770800168072650099326158759969460099097366781129867278121271646444639174977848487971492662344311774487810205571312537601697826956204511414215295437594279812273687927684486962505001291226756007421549868355468566695797947677399649974004789953887151927719416691774820830255203743289575336064289193740274135765223921894234595498952797136866547285812408579803148527942302216965134313772780658082146776272776236551632707397227565207538328744019454337647089990555140037006799243954826645747591337624924406636761342174892599101390792556980770422281351322252047217414824570431133507504709044903158969199490450065538688113553796267697812057388580806178683482570399259893409079560043145901785612912187509204342256743125005183187411110942123052460889785428429006085449637761605964738865428668952856519826069333720400945591778767984634203404644234320146432233510617633906801029115817451936838832414785685818004750032070972732335535900773855438969101047343896451226004676388087904025502979701126258796922559716453793040242506369003097131579945624965771282098608728208257247832799347197864977233351358272746811353178293467332616836907937241278351345763252989497454880170074272217071708306698779175734947830547818748815860847421107384743423400243294657545863664222052223272834298834082148535155528724681662113704536264216923384176355462014498991595747210561520635939908441222579890276468391513594786305154616152425393227939744989518075407968133704373584292848209574251170900612220209677519027374437995311896678599430338890919229425883290819472741546385438391378401281060603678632211514294112290639035752752806546310580130699938716627111206668563200615605414849898306117498411038101997779106034972877270295949231534901121638224248848763994732452912247826382946391415491018291496074428069208668861645639554498787242043089258799573176584271011262388352909317779930409716196958112805046041486334463952178722215323415968101407158249705733491578146391890233946698381336578206318193999335261416235617670300531173167972778180230625776443976761803353105787519339969924447147683236642775048595591291655782980635290987597920257303833470779646823717035735137712756542889024566079717310773896641461560409035176556847900713419512779699166874726936452491355534593215992183084604443716692444823880571585729132474713383587183757629466721380620316554145592829314078892079880286164379577918690503322848415101375944341190472561136797967983045036323445165032901171588456496485343049202599127477613798856968399772757002993923589166562819166457534753982571796984549391711280819669685822273499892696022139877830494896199379861038546278189595272365363070748124911782262485219785762156253383036978101519822381934448253563894976616777616708183144133408762373674661516142955484089531212596521829214593933667807124379862169779952791421509493854763884868528341788851828824439181887178942316035593379837056012004033541397315058232567141409132801973971734861001436555744614718710494654838471749773190237424920103321598825205217462508652560131977684504092806997913692608643115639209069044453086916950642859148902007365866639216449947766628566435914896972054549949398057548659238869907707602412079358002136114943792190580790069217796846704620042949895420737939417977424202585840570842214011327989370158281208403753155345747207280792909602665813359851803644397522148903340437689592048981199747319861808279296746111711533652506732353930364765958253334840743442827174273873172753751718634514325419897827176569363288844842908902921150004760159959279092636175285041605061015866254295305312170498385372078819839364557175188851344684721068527929137844186077882773088729746666219770887291987099754860030362379841844835137933394792512897096162310376822179353473042209996858558675944869088349488604304280142103714067553452374308887244177263247846190213691537927801748345035624756443395036588076223844574912664350272748711471279055240964665547375778170644028056846307719260702825467281283821392998527126572845698203309466675987418224365847631591140074146547973539860680575528395300020563099600074851014277957955769199662336526992425419031400100476789852815744468511592931377879805237109902047456154100034673062099964948021849091482284654125155087967564317561865949304818585017030566541549708106317344328607141541479983111853797781655658264772173514711318387966084426363404346754356133635118122403942600596890112384942413936279534958884940988176549194851880282726933878396983179497942314442990919853528172895470112141038481721294630197178127235210912766304203930041517281193673235718187067648898791668479070020440601457712937794651346306874128958797287347889099106252881986111092156528965544396090883664092658328862352421111211795563262431416368439541175896812635618989031623563391307969945038424787324719564351964592518835598980553027817508541986439727707405575038595546161721519019933664511357084474433410517427618798286097208535789014066588696843458452730783346748770594694265831084499887098395546975505692119951615540973840004948543027269284686203883230901512304684382848820474638673912510089748023154039412454508825718374236638711001853262460187093861816990586755023218788584201818309062659179875298353741709119965613335924194303529052396551025082298141633863023084766493024727011181472547695464224583168492136343306785119623371446006748303331933016884043390459674598104113739769012013478276567909046743020805562816307728293896421699677192185242167375585884307046303063274251795142022939246962333732861903736318316521003123017353692494009677602122652569862434196177312560118932599378392703567938239858984942388694053249543295213777110221437313736456780695551706610099467759709785808257650778381196853095737999903981592474188723945619627550475306474666812739965109843061457305861984342513616809983859208605935556365246971281819918037599170340415541690987510087813339480576183861454753126939093985701627964990371533889939542747897024778616662252979232944720588948833490026579367756607207097143982516723548635985390236055080114945804007138773129311585450565698101360225784950373167596041410037486549263730131903701435967786681935830785693988639158650449062571295335060360682561576192290913913820577629711156320959287412467691500602959226518939490698894470593316684618864844616413390181730138868145612199547833904130107744289159118084678256778791200307314372962087580234079893982854232959365412306021290051791891474508009103743642455386815177919263209930970024289172127420102177263256073291649536080845600392301430367500044034740063809667599967250477131600423036177535354863823549607299528724583056540501427004932961507229811128412153474705552655595668849544659111415162283764218577764137857750913586478511394063597838183756011485911335622156295557579846777612330271255062533104549330863245716139231535071090232453282339363920826064740175561646591153766867132358934291681730620011640497267729590894433362467317748379493738082865077467256008805800264232412466899650464495344894911239385561971884137889838979008544788114611127039632218259811264717240044393052102552425036415865565474136585870985089922110055936115944610530350898339055116227098885521202312980710344378800270965682693472674295945172744944859762537159986076490207194447406614169311050193359826922851794404285784174704221737731067764658232636084499368420674869610276741470518867805623810263347952681507318203294651960809197363513239403646413487631928374355773089422666706116925851784462383073410735981198929270661145183181394655810891882923939091353288597182587364876982203532108552934814111018091507983032993802426531448158155256890227129798691473447723235734915167220311885121646080103678623444187044086569916681099114624902553478878618914886698060455228911505996146589282009505232819780775203615837918057963294493930613050914005717670189259159034439836063782901557659412497961828400967986758937757959016656601304660362427480425110019664097707913667340373256046573022148148487878805965003862889880359176504479591470657329970040687422260999090588111108037175223006157263426186558412930558108883009188958159926869239311717074060552218813917226361558169944682228039714271765203333564786078469252673714547443463731472600601163582324115679822609331310556670123787556432401263389164179434369003693912063333376634713129862656202773089756824401038872750608444017539496546721199024539235507077474711053292651055998189700229426661419161236117726624560991893541569872056977801350872479578618373518663659157154725951183317243436181289825216474697954878406270286323628407197328053769334126086663070195840902957772518167783281864578140140262610625728565555290060508644210509343754548007876286287880120291312175506323988403935012861577684142219842880414154061446567856269409757256539625200403602716465616949221621160498667993397291033069632014551212650036987334938027230068089500777494075251973490854259860345781335306944007633415511342822905895722018929907210738710655981419181742089687811300137023735555372976662539500034613255442648211636378424389831205232253958051290816515083821395326729875784836367275994675072071302322710143684853199959406602258698496193926396105188982609782243830169357509768791822729095032268739985119078870567160708310756356804031207855919186834705969585168663596845527419740354862025892129681481776550483282834699027610851439288413554340798286685039302454578612910721630997075527269302570336071435312912183188613868866116541984185043551325730297788275158430501728045332074400355429877390272214660657498543133047024647682669273680647469077850061088399349510131429297277876431080636294628040889068246967923892503068814316569651130210472325285045715082943894245202652458009127657652515500614384046974566561966262301875538666274228546730668251334731851800573557477904239829473970697594393108374158468575638391211628563412294609868677680079776463487336937190383153963147413411991147653893883007042979163469581572091293699107342682503099994593430719053549138021312786674973682473366430903333659650608537012541273724438296993212170868197617172099943623359429068576918390345223115495047186579079232173037015989936891815479672615467146456177549264496340996342460495383328270862110692335443745555272463720076244813802040085671329142375527860576385878245161816327474566138796941484253729884650318035239327485033766228566355497064733793114427511925168855575036638885402334669162440444230341699484561744524123440043785723728985460592349668193830428306357620660264960580915089982547462257885163067044940935491781482059569472024215718294814833059558086033077366318920366977886947011974896535699243764581935520860179426656135428186736541603756165529519375372492358650236297808777812173660052904873858393726813495851592218488650880665058185877543848042615352859246645856655114989571635466836831097565068487283144676024118663354431330505633739026358828842861285901403513798439483479985266973830918363392917155449805282654633227804482911797720636311041244867963764539919359282797961865794488228504793062732698026692248879248260607772991659065431083060613619192856734408472917495636817343329669568259546629847294911364934963397421908474019916582527482502457040443766069962862001938570365286434529961482205184310021566507494307088108331296273015029215748676347586419434626070790590270039095275059267485741559811845165686743675823321791472822854572697377724228119647766809828782038265853672591046216331524349550806537934311642822319875056854323691920254609725918987574153556486003950294275306772820892983217010645465866165693169966138654199814464545315920047536693192928374407283813002467554855522294242874260302610352373892815826279852461808519251702190071099312178807413521266412490651715813139934646368081802112074907012111145493489037876181535490016844436099455369859788808917273722625901916211479121543560861154812975655864530696504127002749953431264859070417774286550540791254933073561995230410006445603242022086009331295629193634234229803342692625528565876188964730669974231918407728558143080473948582918344112155017234451780540860960511089185636368167810340429784988636522587548548053417237403978706576130433246740633271597688360203755651492449509344868029863797268746889306832236964708579819190740349283515810085656290880564144575365274743719749923949775353242756734440547454516138145800625411715686561480717123753688224198486339944843777310642543583050029863322979805099919581418082293900980558017522322701574276745808871593644179478766867172536412192920783000261712913486358325025778420535173856811534319329768736239352067967100563426274996636352653129923747134154108515642531015205186311942404917704559806088206819245530070160345797545857903433808250222796549333404847363651171655716733337546634440703952267229288938532344715146545815231234949801949989216160849593301733191434782247077695953390519799197948436009233056047450588759552363960707724895998738478196519161092006530403926515693592933944038724094949949881580126531761728009893578885167153407524735896954140486729689792699917376179103775155823431117760966550104106190569126057744591680575197784012297211208366022352204690154132740427140527607481017370239494969306475246681640330241511605485386625746903391064482717436042579419087834715524134856740614613246610282886636593079597436876274533816568995739789622009754507885345867429666841748626028210584657504666577172175543961393715463680084542656134347033975158437423129382673600228824537613224656164005596057320651049120247771928498580287086651384388906127930935754703560612588137158898747698474384219799949585362055072499495959760453532263932904225911669919691062627369401536375226608599423131557213283244609378743813618702619024846738610318133828776522760062317925532994694833330326709508682134981021922650593965112045261831189043674375142336124645746157715292904792500137625719223828324155088500161972299132637317502029732262891196012673169322709675899619911391579327902433379649706967771064088907086136262312465793303955629792471106463269910538724933083957636973959287757489122747378137701363832806092900322748230448389715938639249919046161981808935622495462522404268177102763717811589073564731408931755810191378270554543507644041760547488346978129170111219040369989572290308435332961231586488557650050087888047161140374285721847879485257812845076316758266396761967734521622469208490049210687989340048918485869309547898186999029107775047087811305040467194918997945188496045592071835774301045065479246696485416014028589045726824806864616055289034243783559294897567747651078741511778419478153352147698018611767400484486226717216746369441173321497042270406181828117353465532564318800460697514878028896766549070946980729512449666325850613197439089218953067482164895728029707059152111031132715485488929966646780470524667351034694887596508356984414110382109293100214096876815070882106494915077719180502274058540367790779369898579539417149029022784135032349393556332271310656076572388508416800731607313515443918095037131832571317659097082850537076363076733250553999207852026227012796753059060193540904190001324583521209095822330009868807061160881128498306232798012517915582173651644342773586503386988658958026428045745771150002658685548058996564529075357154960097471454491614531367668543448870843910225425863194459405562115642773181888797176095155609786199383254446642693968119936261983595836567057190388405217532640713045763387289242187469702736341355684235320919404959961834186230830796624796318765926883947300770047390220984770855160995477365570343770303422624861249429973967703296934793914096177573034360289698344491645063919373503534711608372564177794300504316339654733555102532795503473169909391238479566418611493593260618109360287021697898427108148460381876427264185842569691511357279654718911896836753987827209340527852649100633928604942926148627043913817765690789722010913396162586081769099114912349168683388259774934593428190345963161437385550647342634793020915262530631887126004179774741596666230777181856373914103841735616228811856590777279749039069797399744755571157351839116395077060216862681027683109202354461798871431716912591052161523585481671251314441419460688858005811130774195176564879382677145591204101846108050681547786099132022087719507726545623889791180972720493240316433085458826608831660485220542252099317756461100483679267752001620861897718045279444472715789754972121012942074273337795409257002615244563443854021034698816034005918355269942086341959101740200710119521557291884156177724640868545065642126142804359228144952723051251422716975603946766971469581366859425202995176864657575887680600835055723725965778380538049366299133903670537205226631538883139957711527815984285394397488325841839128509891459871629801621248947610257061810138331851521343959347550315870375432594276689430685868029660939856966235972482934596147034453883037701730548379043886203914254611711807218418973337820209369489184136380378227884340608520328547691287127978029065831104934468951293099994927741912854366453213205129829273030831727501174618369576173747053551528615763069195432991031573131162378457883791426722709299763639259313275883540537982776961619811068415444192253880903305892839046932216129412070679112150214033134403173778673959142844525884030172326589045248429784504297218431260258304062665835818805348459648140199943902759137771738657393876506965852687142376816726436478091226855316049589805165071911733271085960201631414729615101865430715082644814963686996286591743798265459267196994713886425974883538566421626255924812122142342301261462648487307824710452282085459125104444118038628643063184112743154452892859741929289521938113036826213086268041076280745903982257272457813662222229486615754694637729653008562376791140177752908568066759266427257707153450558237731139943152923124372917040596425842869440858147229518284784351308840095008145320962637568251801760092308617952829506018649419492512549360911663134452887142667150770582999352136845610310903004415050732084908850794581039986649346289495317118620345166742341115605625108175408654325768370015599982951569020562325882804811611675095544470618699747787240029539289465063409267848272954660168054016597968121007520238427689423625741570000001907253688215817052033217855738426423057974427669703767665225614409400751113398286056526161048093486755747154759885425358310691944281757349731180003188751053656854924638774120196807228108151450524673894295049038601135541272323598826505968877089916121698613491457840725923525357546824034396921890562726882167181542189851701384309785925950228299111019751729210094454243354867932115808726395710382492959123519164037271291074810164092377316508555782571843219523165414254808447612851466831992639675471708489657514504106109897824254548897628067337890601336923161473122836145284254046144075750373897943139039129128786331489299204316053515619278212635608072259589242826713407383621679487519047435458065095794262644674156516773724491640383232512415438343083531799978039471898147312829699570552938489545469005490457149587858003199010423649647389311474789224515022477469028871022497459613818454220913531228010715073925490906614721385926696025872866455249676550004076258599203160835809247993471088940070673333122932719994222437149477688766542026449737964133732322424053268053925282677963569789575081497271573014137842876945306230630837276201161531512520653884776797993143047546129588132899949541108054024696357248797948610434065955248409414226375551751927068112019051813239400153445953926799133151704292356477483905717712616476050061357286190971786722532324614333587695360445855487099108110811011856687048496081181108051053203461452276827337502962094809776615020411765733468953210761356273299292299728904550172674964928442343889538070986919859321836145294770223681800437360261997141391768631740112302718695177860349321161593203708967813999180040537986982825617008681117261314243243497683906864578307726269799639830730582003311121679921400965050485008401640303513725940667827051957829768718501856995712297945786030604619290463475920284159336005316816648112369106705177073339080631312108897480353414317349641786640486819525578160638234410529167131303192054365201249857152735201357418754577510747598251604055876844991855869941245922579938107892097839205168589996869248633566773649956026643577153038920469584995324770011269525059988471059945413518406034366421387822845736899669755359599075371923751132484401009411340389106434224373813850353736721747481042821283345690761815761633856603652323181658223460533386612333667329374455164258741469401390369132853344011004778426919437608278251970112361224549922767405678582003770933701176385756058320262871025928002231660951417653957928977206813990626891267368217691628777630990669283792458078101846877811148669160800058171379181287087514770626551564022063102370482742344815041793409413552393575811706402278529810715822576915850672452832421308142683530484312765901484039020733640415513999037000037449434349170521270070366628653015069604000008145685421524935181588998359759990444552079987312065045008715758004439040908428741005020078024037597540064374814999453213510088928260980167993087259912014095197749719283204693386289407101311718432768191470380151971094771359103509132649714260557933361656521955699622118834317747102199761595803732803186892727887491056527669353829367465310510376860144978600709460335504770629460290639469777814979494010215961204327868733546630950178902751040275388832282949511639915466412532659286287472701705975983514629960552375565389653725042215420638390993827161206890292270704493989375872222818686906391336739245602546790424497184105240502746510246867874331968765564654249897761384979805685655703795462376654488174973528337881319726081362978784588623053892799641928617302780929662442633989270067741697260833782120967403266660596212187377171101391688800786058351404299627462613930789456573809952937812581655536155150936209904375952119882718659809579703863152818407079929912298400437696763315568929373853586403748065377390973536215987349089662786026700678257590847033855529624746011011873557402633745175913672972541830279575792891977822986352648458867055537200244704511538912544664195816566096185831192093445404821245984759389970174074337137996966422366687197163993738488431956567263955385297198018356791636003990479932176949597370002202224983141860929518383302431610280541637311743549881746539941526268760137804949399481538485681300245776912503505052149013978419834057449150165970873402925472540164308486485917976076010536333902514586486050012297489477063900391692530800437813920324701273608299061422628290991351741828943096761958673081414510086634713038436700378882584800778797754162426035404334668067216591901854017442417225548046479520812223177930800883041646553581423544928494940993295786246568482294267162908511703327889992714134229395702932762025856230434219157791811534221334581729141723987985080240771390735103536722108915792640567233446458060597119550185163012380636072646773002024219155347388866799583247244360096908680158027052140037581226720451617587198564384798066612027207918000674970206134317372367842822394964040801891507877444991519668152495247351107963300199391023525276660180343528572497233274107359788306691218529937128071391769025035966745345376775714031853813391578786339365608559126459772632096296043116383845131663051287085350482216834900109972148020416586240371311667796240868851954722181930682829766139975238399418888393112696114233963277771998170985833670403253892361712204681854131127743937091734234700972885069206163588917263883967706822816284889979729621607228943403212545276708370865693519000017577003577143661589943054762473076970941752163669524330001432197298889336892286000688954334142553582835414319965995760015537111365141891764071483574756715535829886863879976028765654607042148776740453071418481141537698794750004424533356542069828718980600916884663539948848074769468168851919690134659788621916168413998736062973754256342373698716925844725790373770302633769586300548717838176934027418062242055728219296221368143996853052434006818160039429238659167800582952500256716070581791700834780781280745468781553417271717917526937737643371557782123976111000489120725919124167344737730510164305545277449735156920102254319175994400410797731716471310569675864466951841821128327391333516960821734292047100671232011101253804156251480358278563144070507407363792396483205993529704305226719344135920990143692869284791507159503336155550858912333756867414182564239679564256937250330391104468720842523443699197345915740558716056513806072807539615776638439353170759210622495183387084496949917569655963430628917180735433809735075265885489817573117851262255278190461732965753433543658095916982198959886484049226977007905316278901774800740122141070010304991548667705461216352020558943503391232637507921121146750985894858769251252047194851422754916303995017052319254896986537985583632069180153534747988074206305265894688278386115981681869288065240150009485722423777880491378676326527391943510380160383982233346740370869122477721077275974074541062417465690843195170780617233871598329876446892107440958929055173423847734918693927243436441050089592345224041450351038968935255328775567780193604505615758488918433809027592149065570908791731734821294381678309895687980960476958018805476723329509517262316801510144067109145058247889112244827938252831099361802512758018443014240668210472797302711785461671866665835824560633454992152403846051441101075617986322725454173809349054315838140655013262371418770500496372401605291184600508555645700351100990133618249458682278060826698008010863645585498213215826765557439908002508984733885060073510048953204653297841932309884459547168445459886154222752577421842903786699549327781434883156286900241734194683294868131432466347483013853673359504901715946402524615358534522381151036121131434595445236916946773623544697069650596848138061101056578533774282972613926881716095108948537488909010052156846624592994649999655281654664917548891333978021280683795873871718312670991739563571668788691246767708709424324052349518700808110051691428646610319205114261188049084774195915422045911662965754824603682125020665872361165875002465114917123494570706380059709104003057924828705608106915365014628246203360715180670587984338505068153776250040167763730997389228824010525303601149056461785780749048132996559164107165316274888044968806505822182789264789333215240377792834306497262902580293265512600290589380670957503182550445934597564489715892664323302724859023107265198860884716559738962402031144332107252829946393182456438842427211319186547679702440849198312832750349147031769102017918333380434520273507413882405912838050768761227265335540489490181134565125108052946833818533676551250937862559942754378553401174592369290507827170827318494360013132506506537067501044621795393472604245924748244231772106721206151037071361849691945529614813971262728954306919014637775934085985724124981718947744316027319949376931741306620159185079677736056655362785258229642600799816125631610681998448670580716381575368092538286561931717041413611787531240065630275889639539006521381813775916070079907591666971575607099523103747714947234837760129398062310657886540862284467053493885047115000348432093775503645814129469927470944469213900191111294899177654892666424244099094684272267930476070203503696881240981273782631017964530213108384538282626702110904681328584643244528160340394257411109510621105435593246342644104178568962099896651229851799791101041351278727761531749083705626799383097283520312520166917154188198544873743831418402380085213943954282484502242862415937764708281944546637056579404808083464415264064160213600343006642990565965973679076193148383074530822496950692858983563307335395556080100067581538123451638216526423159177266240489890369726446159219836779887375382514232105541880674704445699946985220471957408144177711500599956992751907290157620409454330551917363465436129086550394044741659179319249774599645931675606136387453053716780590497270442910795405371081606615451630960717112967393394651377096547030661324056594306030490523248881136805490798227718952719988055202881992645934507258033002913556812933127096066778030697067393374329738199394813724682282800200079759315318584536078346042819664590904186051829533274830987184861579774042016519128611228655247565951659124912225300861440479237382473330055632243563681488385203849967701764006692490674547701473297360552216540732595623077293715747530874568217399359307057199412184857345186541677250756892631726231761293792237357958234425410952593403404479627316225369072816065741572144356560909065537454739424994914206456192806657448685354627692419648713941079644207978969380082825129032475542818123694467832464502237039590503624630591093575056821623635940118392538878028993730350872363258253980929086979424464156824335237034538927722670399147183537271933253677957396530255711103714762367785997615281503427393212046415500177727681277816204272191070957454821121200069452156323421662052997844500140145052022547215797526322659480291095955984520150227249593882836746533742079728760729550286347548006743202734141448183499405975419648263297211651415858891981697020703110409096126970952425859915864428150723713299287906799969909592932386653845926276673835740440886864291770462171338726288631025895667387881032662576980129440926145595426036636097763396198461318592796309503611952596633359721854616642743575958190460450881845048473727059527041534092176924203469385225381982782816318633793675392551781421022511209357484310207754108685928909399124040319487906043985794624041086198804097772719219539381613403907478662199050648294272199965825096833375003032825749165464500723194250906007933757873655735945277095528423404130071536635950190672059079667133629431886399894221530453837099413243781308094162277226179939258893270319952159628520178019659948949258420065304820124181809726828586289151573785546127150813778811785980947354792625661053798674599348503517313775163997179258793794943615016099294662604771704665494656680016527692463868919299127889073627119541815283622275705639192266386295776320051493496638383842394201145665300102649520124388309672443905943424647908530613142061672847496252371280691616802854146591740191083187235121374553308877255606499412717775523333272116810096245723380782301623233692563355183903745145781907941929800208368111482158506344940527389348658163117284764468936112213107902592798053447010943751137922123545645063082756276019483789035336247064515956407986927805444693015186823929135825644560529498764999545844153161709616444033316254014164249729677246788177399016305369293689516945666990170978776278083801282698123564912065818828105383458126788038880020015610206955057687408896744256800077593503907048249550858661221079287233761557533148099989346249949143436744644412008963959647304174887683773969363406019538248426116685304691195351185121974633665210549269226345770226837697985020903002021343942787822445041250606719911009941699020246348796766037178909016700665293053448488093436906155747092431070184856528288507480921613785949899898321405791187472843586251692791529766108008168792471528425317536157797298720145177543025851305764135963464679779002379803283963571126497777949752137607400547285100555366886455498342382095042557811197288003669522430442575391447277821617574102548242950572706383434401881067906045387089976800234611840914914238561982212468229134535990904106649890440650499360754648197707665934913734004401967237682623306878588067224009488202547144660179247422688302947133780681366992923581395060486030039611786235523157371159126407331502038237797216463087068754107141497526987357763992798290252639324640380771581390819666467884584024664980847529125717812051497687196619638589019182154877164966270125978673642351209146506194235061163605973609579971017656222146133793799912701949637224355889160968670839648382750830852482109154258489088781250060441238103708625975930270411793703819628712238149759674141098507490590221932545908793471573433240287081537689992853609110648427767081852931081334969064432008173944013294270411302529313720645925240425194697075773390240172278176350820379040721536004304962725209783466531443888582532313432786700025109813606311965410603670670571116855851780815488793689419890259464127675491044462636703246085809434666205316795217742762605348146870508610770842196069201251352407228987125176627872707182743426059016823260809381969910244334666689923754452901396538550999499432041641812813134423860651916194818580875687221303521950469229428625327767194391037497785894672876420779879885124831268235213028147646027998087951723644566847915226751109896848928387501148000350259354044788639718248717513988259203397215179784713414654824646568016271704013608487187672891598823406174971136486400122609754130061704139291307624664194218498569785843768074889607017244133698796684189573497755298493507789620527295676977254299028327969378759808549426194391239946171901011606959389922328812180202001930373684107931101515934978302455322590816952739457149301670027024773788279068597907573435211949712254094007197863025585361867578580658131824240056518351490007397845494548468361752315713862389627914432907202965112683204204941045209197359164067094267663718034044658273998752775079003336753692233760996683831481328350821566563681924723093773083027889052016903493042741043910467668568723836428760242720613287641529023220943369369354174083271301366031042721777473387111219429860112254465824540516621592179986669067241366961469776035786692645489947968176059106771498334954292753925015059611154655581035409585670858094863603015738196344302269661314335537499805506993283045359702071031739739995455208551686103756463319175945569345188985630133492463954439477434223982364812217914808737757577432864860630142802825716326548628236545979477889693010034095025508448364034145572243464100103084977314741709247408593571113942458953403773433383872655481849802599936402205726917535004979799733712929862915761885871597077857787049254657948045526376658092142982283457463449886286424751513343420871212077431886619903277967111020114074670778504503406552591453530202439802136969646023686120879242377485259585571933621595645234178147387150129614846244145549460720146343452738470264887395799436165735130921916616891869746505638254828832446822107238921586069184215879950678619997702776200396228433431003150785705985600207264556166106147919955556719606781186550487384104672959424029251238204740379355530849031040893965070367813489101895018076127409977104227683771039419562506273460377407515717043043480516452526731372374473803157228329627695661454945508233650078285748994915250413855038443838462249458587369873736930118498297617897394930193330193325608447008279152495591243854358012489615574762708137377754356771903646213304771452822232691889365226468066316711972379726389551113155238556438105626435532723838890660871475679690540627290178245001401293747617824913405772093197864562232496703140895693629293640666871540528424216418957723456081738446895442546135084268756015060609091282188161427251825912477254084424028460622791801186156586617689101217970958222807985517981456831204697659593363601306562638036004452205552142162276418922887668550500552651718017179923666592994934083621547583694031539902170062331674411168792656804988760428605279769405266324138912534982048360765407626329475588120950224332984577304890413774892685085180408376329094970311082221185841199517903176686167958282544235743865257318500828994104911901547923306488658434161913969612272864878742106506357156198131795603731848872496213490406907789375076635686181407778314534319622843214292888896543016838035134289044510507769021967737161877265592800577177813469353583856010435524710965745920889026386486388196900249081214933706659375187565534657917862604007062206125990354868814404152638771947482526453932478032414099095553670154166895241020165820606196358636491144153377010766705551378544407292012169316824338681777417333495911384661502450368326194986479537549226918187230006631423222628666705118071399645723110719465395313514873778589332405967092443529724732046520320938568543582700847980715716327146418285902159562957563045953788921235894733545479117784148571446475738253385261416528879666079630083471812286502981252088747043860439469623511396708956328275240355066489325435833627352049570202717957373075938768485615127998556001992519253676573906240328861396403713818783161880934624986036463951116616943716792105408034806507634734493302598364591089830665095997532257885531452354601274875696159339670384743062411615097384062771831785097561922862313087191445760766156229565565004437987297961424140011408235016162865507318996835335560294131590939739505062725281955687474016330683890306133832117835756622264581629766397335881831821699721175089310232812770162320340679973948620969250983242850175435006369188773426769304581824123193939905255367001637181772014975279723048510717656480308461630363437143226230097116785761061341149440823292889901087481380104552232338859677512673066265055030875413632806704363091400752504076675425320277892325756073553395555844753100497375451932351661989078188113553622428742602663241278715664124568146063504666167081205263341385212793314958493104447040297187591053159179050988275664701466949991656780529519510937514802246253904869154470727283722149207711261456997931002770830598118235446519045973970400808510826973140035594163528032494331531415960390523870685013962661876451976850651423522348462870213072650350422673462675817886568660276574832038809930696592955335546202899940440729581081710956069638493604043552038930961286031337498744711245837429399469076033968000145591408202702220737606338304191199974309165623520310198701667371879109615110380268689266070584288789376341522237995027251593193812415940438422949519499146260267379394322515950077734541809974311691257746674568773183399020198637283247018012332250085434327898074478372166228527218323456464683507825698094120428416219145444092658072537169972697227823116894472168823675017964917930190692015560940996960205266928058394399304761898094542626041730416418500496518290690324173327957758275311810483900349830706401480521318303715705553373427502836778567765294522859059906123128761975860869586720291290673582056042523411342320082515998441941328944591512885509000123719257689681722209572278860186347191375408318198906772735016452779116796085482199871393146169819520790376936416410918139310937880381420651231034939777327468235824983489585912789896992338093326884069275841768972171862830299288883714471806773309586748205535465095085408982366759521294250841126771631968676898823104002394064454903009207570821896737259842472145427693749582515651595925171342496755276266608432504170664770045011194638530704442805441577445561937999222968281035677708633521093156606996510872260335911241354136380971696002476077019122816198336778844986703729788525245891852514670617557601449881278790406117342399196958159361222026056037003633667439661639249529015304576040697811280987964654482415488319888349478125237417732313392503235356948246670559790834172853525591549996690509553840409570612678314098635856323255356457028828616636786979625716471855704831265570171003165370682405324147954015152924094562262243301889260332668566565632573016453051176541801164328246934403046969865890353359207156730098960089041568891150747063674662215493877185692121436513995997576657714966981063809881269475754085671068980416535250366912073868209867429490932420377487183620117855423299711158205807193478305871842668925346208299215932337633930264089296667609402432548803560632780840023620789387622487547809445555472759471692910678351555462982808369730095077281048198642950442353621013893753552637902177144828409437448146736893022650643188915617839396696506423799992158918667034200942990888775967703345899521550133128610623123510740080703333211285808682115869738971367991646352622551175357937656999082328984728395497498672869186550803098521033007942920609005427140088942268781762604689476603134250621820151964981879188223604944242019310995766816333201942079616732020814759564495024865430777711855006121808491529204865704866046105723976826985088748006381453048322860070181954693006277365393467608813409544580389579050801596338438889448831825301584746629854661791848888015226011110064754557743713112940101475305643350342575469537152980879155366799409027745984892743118795345761540956435629395163613337753102624545272529313052498331583912350778638569331067365248394853438578158552157059060459758478243427188300134774126990662689361929975251097856280866855563368344638002909029827244722144220214767498822306319305652036124411597454849295908490176924063636427799490152612888083140644051540163102797436025896651634268343298781328693955992590463456326855050717119836493743334914888956407644612483126470073592891185950658375293817930484023510546679064733056238477163745106695012291781490391184393636250622997924915872617857293302912360361512738257483597293712259535328675781824238281114750467094673165874650438473006121635189572983374285629842484550431375764426959815129430993741610479257074386423729065418107820889152087024318182328569606131463281997376698850298519920579214543464587372484907576889721925857191807316004089190132902270399015645916317973290065024068418587119143208264178158124057757474042483817580181102754725659127401610108372316459243731311904276125454672038651177758571886185023556150960178470848384304118717639070010236958257799070329475549671931138199581642034752248947555510195427503114067384861483149218412251072030513813636711677795537869225907570921109539872977166254857778091885529508073005724175726760679548963155311883153458158290880871529183144258741391991048659817993917711009157620170167306809136991546877606207925083377508263242765424891650531479681365078987074970825293743380706823260999703684834171980519722249061645067314997523240274119685875212392703386719792705994539024858975342375923531385525925436046069849368889887814215419732886713412178271738685838831329454795924855473921632960821189443001370985927835456203352918779360041687839431031461088238019672403389890129126050088136157396569523194982685685799876948190991663614129529052198501869575953694332406829998712993700876620897363737074265301103973844734151443023068783099016112929478680339218324748368828852743756450958284850466817789604485153713975244231846037998974081176315373078097993545655438858147580020602169596989616635795318690408356318215486171832817928651280679664977182873385327034017691269207848972630596321377324909384663688706446836946331749440012619515505461328743782034893931221115876247789926590565846966551431526703348538459112142901475044135730206689445575026577432523469011635822854391359350450851565444176702402496831445934403040308064297780087491148470551837695838274545792517521275301577556697099601837895361457347991539667804979754236129653499102605249554581710988659485741612468943969852370524378548466504977441629660805721558724262835572095747972682177709593577569323320049797732219291032687525468665472716497785738771860514968282199826118482580861044099560110664662071839480453951044836327908538357259788853802064494208774550604265154684340312721692106635090319617646205142639083277188008744343261546516712700559245433681707194511712596514277160345229076310627924250508166552762909779331985602460665839761522459863053107156202647867698333671681066593759605831824804705284444355764145978352255901851295123735026385133003881492238099383632045608324761997176400594716205943479396233960986912702165634957187972410792214152935010329565871962655508137801376737945317842358857745132283949471081998457405636530067517778808167125582554310268422675115639282390657139627366360261536844539465080119782901519500332453430888765486842207655465058519850569920726787362468931624729070417461127678683006479713484749378475662620196486086416890810816187034275694752036429931672849448231347103959669581615650700390385810309187576739014500030037154300019936133142527801718221271596086843153740047558302534675960961881154345189262345048354498667487047765459399909213415779391917152941448668347314594587048415150067152334584505029707228329601139904647442650950420722485660888494050403377100782475773146962494073847809003494789291054895721753424007113331796935855146713979292456605515847057976074330200175779162353098946785859476822214096571788282468132393231570416740835511875569447966109873598467413276535273716845018174608598564844439650084145705734173342794607097304009560172807064487445886397452032363061760059240375797847347623322896755894790702809588611449185542346526438524978644459596488435785201447739274646745679326946072859889875502338850271965456439516070035437542020375590601604659208274160279397307587152218548281536876878857445358990252118024782634724028260911764446481263161766097243058148914053695616549839729002845545766259142162381782714743544855987260110255136045869470894548186164251979347943732160347801943988417213039368194737840407800770010138963339665965920278061052758266763527299098743753202474877644774790099394570306605471651002301141300614836682755744716976542364683301182506071777438443654253283484457454740296402637920061337601133163222685577173932989571298532044049887179609206681931325142282498502084536804764238937126781865047733325877141921223565254985103202397662705048460580221161553172119202382175746581445919239259611493997108220546832143392274861799018203958011999514315284540218366106059814095269480062304566685758201998256747766070608735725388015285993676399877145952435816406656100423309720815381348627355324948621842526429476711494061826806589663099329108658965332939587632724569174148643634864240092678722358069424547388626324158053129462226545892967737259541588692509604070756189328636338543034916955978506848158335038792518819175532100225106390267587439976481138400955905177631330134473382991724123133783969983677690409967526090559363748602017941213417612672089078489376598551229874702699121842741888735835891154249232267570318018749190844383015955830168631713574760587787399763538550011470250187564955137533163845414356035400296231726072563331326906478719333628997542786386288058762198856419357241626694874297282866487823502208786785985926966680151101971770238773358171091226351363707118107052754784248456466557432995706368134732445029268370036503180215443647683383249611605278968344734199218874227748242057229041376172777319432589342905115441863912995668602763241484447834091097125285288210997612671733018979206937520118205871027183850022496861287808142533017294682913030035586442950585718458187527005206473066427034967127882298893237859169202324533829500798655085835282652314228180038340124746734465730790563687674377429279209931237932079571455009944267950996534342060430940920217354241831527974033509660098121588441235046497375152287227580934080052070062010093643674208268543779933857058997709941182754012486992755674412766989569932925592610361467878176038094968682705062673505263327344537569160771241136426421612776927029572986439186995412261945117453970574611810737736605704231320670623709071595460705472874812339352808967246608028211307277240725810479172773171202846359035706512832697711709720503902269512687060550846252305277575250953223178703070622407057064516543299649572385184692761337495615727252933483677512261032755145411520411443481464423885685489766163336047088139565130203612630285905779415021649284115438479425011479465293490706496912558237799458534564898730455964049859792500670430637650879586831994430259801014876283651637191894738276451941765471507992413751217908518109432570512688634137322024015560183595340968312371980905317837467333051991338601884611826241819756671802251030501531390139888094759992471222076274765434633206307541734696751996010826483215109860958516902937328280897786195207726292514173209443195910953930924439264342481692629678072078870947541635306092521280684761117856986504276701426719000127543989327314550820665704402407731175641270547866129311395965140318767984981295383782639932915627838186238031370279934614515185764805619679502170335071386760854545502786616174597462236193175494514369541727223809476673964125091013310856501982990556169111273363362532675763218612162715703975195141628528011630137348235250436535748753762604042118837199604864751256030798721442607258218967006646443670039087549251801348670176315096733264110821915437036690059034549525113697407336736163711321077974461067964262368685571978387080115728550393203740097158763403042015061729636200328680352811229170699785568205676278236297765710229507490321247519769507950632669346161602412227525709210910993456134183303765252824059519779964192351541805792822401220987031716034870810777866633430914240692267755481416709223915342057539130916067093811083791723792168753986940253398641783052363591525960434833285886101673257189718958506171413711010756352818411889083197768541363421603594433884341482171619195185982330803267635532691551186690337248162041419154385185223003354639002462319498273909097138239113636602341706689922346203114765489241859449798911509825785508667665094536155916368071106278899252697896029543951141185048343976052956957133491305394509143455464855181253590105622150120550590126326201055405408580793323415721835998853148730249008649289832000630245189893050790809759488687285258584876830025500134345160057812005959456207684249237833549315052643260233681811044755703944373504111447192985228039096048318518396405045083987865267454029826416935368438644505292444194875882916366472149218285477622072705399623456447561715262978114104992839526701945361724203763302862889845155771081605049221711362454727938021487618494615739479333826337024084040600265004292465869991514787351778652155184757842884446093995358594624074017819812229135833035348145341749287330792908784241676969079881515431644778375426349177614128186821892229112797051482468562418103427568442359304974552116148935256732542212226962901456079123594079820492999934960890930613785430857421632245438130409509471114039852516409921938045616549255363619247215585529143484403685447199888080057984368774015654562925116121335641111675722452621518681245546825060018267371900638088930270511421319058432803549470922664156841767103409411115657973148449949641920633755640653032107447280562671478900364608526444558078890259777197110728784880692336885203019396042395512965074671311544542017384171905782098139874060582470265420982637659209324804870624862401512830177342183615439549832811344551392393847830397331923524937245728070897320199188168687783336538923227418813555705733078597036970368563284223264239388018968827305512413942393212849134565898424581233550065801861219472280050488116783445113797505451191287855687002044226873704087702926470262912640041558844203312191051469061323285840055671294002574286662209020408720664272487342111846539019474588089389731349891492665134773383221725014802814110885199746722389110335921341817206197015042451991169977379868267310969431367875691089187431304994880055026836525867740496771430510301808379690432334617465546587316934240095966351173624863606408896773224152111164831633836680673663250565120537508247134500188458154536906842771124976281320184389433099800643470984998374850063917907302972745009553668323302683937330911720022209853246011671016105007146523195812165126875223144973626917691357384112122026883456407935950380618016555781339492476383856709930973280783772646618687686594033636161953757119011153430000506387284891566773131700352366044819733608189679389369181695033911221732403437744444951302015923508097985004540826349527600449693683179777085350942809242687638397708261935151857819055087454639632016529804346161349576716719944294290320538597998890853755538324096493842564327508243834422078453851495481195464974493326962006738397107827201163417800741482770515587989792304062770864032131366038736168874040394583826298316338885670502493513731649886643982175133274520570448617019025662195693214600826594971041913257620198762693149749471692787197909382547909861457284958500513368989252931276129822637168507608438201421188229964549248143307049342295226328125495149207377048317775386362101483063856005507796041721515061344603803466969564577038532862933630263225936557789491955234941817651767012153845814252529371647013636811178513705737412598250660573636584873246300867956489101424966639603305491201561843680743020005534578950447272880480782936177981669882399862755243647959869158760822668096642348390459067257779194544055752515545718420056757731422302258431431744958845589235730001222912894416020287826245356019465974820373961576614298919325380509122580369656111518466062778463380640202147563809913638533844124497010340473703847737317805895613789182171357556359659813119112940024711534305736514229117417043292390098227581788571153226168433158220815591194673275655351206136896199501531646414112523146837551240712491251665605017324732415193823299173477396590232596370704382991488671513918891987301075117484122133010546267089478013610793267901525160215720197352118065905368387082147021419464230437964054711744139292705537093240974071769723199126587823827921492845974464044490167752080477863377245560921574109031822605794602015604626188921212545438486195878946413451754591800425490633209888341346667327577885886434074037018512941710040897733304896597301824455722165793526342098187581262317879116030186303166728326778883058642197469911717011865142352341930212105030414598533020738502892899585324598892208299374073993711348283391883732162943664794304227966476613979325172801152885971476818283330308413989289237200204803900796427616176760673441987157353884588481643754128875097793097293830308419231800027015839086423520592442343630050659927589361516067997439964742698798094791716228607984856439212491645166976665430001839346189461857893573187966710469227187581769012277738886842856479473499846076724896433959394270518573378301300689113706595717986316159371836362242716176366803699836911338035661994430306760646131506887651649507732041523364860630693571530055192719015103454155838835236285018758434883968829086732351763506279185319021933383435186256453019296456225341892631811785657633641544800989132406024417176987680317793883312045437276239557859493136728153266597620933893847259684409686836967222386607491876719218484715839453204603410246205953461624664675093883119249512652881099511511826211013590704120759267033523975325687696672630879006491688466688340292786995695401752052662227609008264521772265563621113645751891984812481949948028504032471468485213416333241571177527743688011497468113340902426406296325609598894684161896709249880625310491950440269310631163219671882625204237924619620852186696140525228090782642658148036605314934344564330452147715644528309770539570952905263860749156147504936674062423916471043626650670852748458173176512438475214575873629802841545805070223734000662634667901026749353210859304552804320722989731674493843041949708852817892085376449979458981898837995556839407037301313811132138851313156441378897253529765906306091423443433785340987056435376758751583790380437799203021901206348919145178316403387219020278650585468848319725961809278650362106805080861896778110297922308650890816499443563337071905546591721352825363790406819251685932009163261859650605761994180068817570496786595253321982274676281945010820641456398646280997839374197210212697250119670468466392861473664666778354857475737555461118406939500968069713824371399988575762380604011454315153757365212190789612488296695479409371892093846260307242320432327519008858761342956996793428046595418278544992843402979447465328856697760178622946866316781878469572922650896110505155566676483344048104136293598451930362600903155952257939247909149610023309640359063115703133425616055112211793658041182260763723208139376273446625268781172857635609392718352044883540756041653880109449735916129844332815068419949325591106316818883595688910070972918705974290856721869512720426296435921212735333938027800999055656338902348785569007634052877493285245267412650224575013797716029282234019213666237997355569717915501135889090189347820058569548044260957217691602022889561035216780390564974502420788145328792477342207204922514643929566942470510251325387048932223801528123824634130224101082697885386827411312943219573395371007258830525964876687488289815914208949308964985826190858372117798387303099197569163585182297918105275352391941400554795727585435542970605208250974936784546094167791327184862891286224494475953198878876356880345603173077532014852571373909646490509526894280713813461065505891730213662937485973342398305615621376092032768191575575935527113286628794302614961592412896947395745283885156342123299278072484660757348233210923288338826757508099985241950859863862375324761744044535988186225996065066270268179924353701400709195054422394950254550126638411873628078555191091484785854810832475437587228633857214194798127126629533866364378305325791748701442246676268548334820291806822242691943350060095841646240470111853243370942989572986447633987224287764975871050590523591024683467584548623643143722049455786081877891731430794257795272283078335042167912098454347850846141605051651565259661239398630433541561152174012750554076426455363885971547353237466269286266171272698432213534691650039099861478822463395001477390276897145485958564308259614369699404047755799504513407237618099366132464112068594229902955142309127512158199548651094323953805478338424011549278328130058365003904323882175743870524284626864713909476255466230880336693624404425511990841634782917303550766436343995861454319884163939355166017543643772330715092708974365665031741483429156436748620870734069135655231351248485803363418858092322483248391861704218884627897277962964654785693900898132124191658089781460238942903148417436318015083376790043185845028042130236720565686482793247447264102049197872555458416816209860455213721421182185515065541662322949169733336225972860673636837354523698197413868346075241463911193825060300572347389545765019428159021595825466701289678411493420057619974059095948591133814473205121268080093252655902233720169261236513737836840673511625586443411481152540990095179575110373447839625135887868399114627901019369553746253298265710576993902474989353340519862886798516098884403996874467512209837818750188075456043062120652527875625551405880991535723238971942595640111781256260888867422317325596080844944270596192292091566606662700413432733128843961064565764552663445528944024217472549428932813420388393991685666544160704063947182806515748210981096034586149223801057150994757092901988870200775636410153955000448592262911655841691189428510058254043633552422933463296441084554283113290226933890731302742549363019979821656145971872670501964126157134489547847584064477202485211268493224094481878734462554267014851421406016219701479308046434605760009045707130976682918131096276384958853080336704834506620456241560169573704344304038179030189096373928726339267076599397394717175331295615734154034852804286203142716380117650227721792483306838025596412816022471391617927177332891077158624358567275306302945289311859498691630432641045321829087543624301659733292757583820218115382718496213853940785723156505263979320601149209043503879988618360198813029499952397863869823499591083898367695167654501785289987260914907528504609484213060613474177380040728330731770699851877896949560775315692073679423375927524789093129212356359646379281300020599586178469291131465780219052258851169227456837315974641631526051351203990865991340671962019025871735140283823646809472333648524577430499523330137054979919464467611833780120748737879895612175519975016819280084401313157890307844947677286908854890259669760633823081000030646890356189851767366477171336306010819483711243499246164211448856677645062481146058029734025641715438481833572022712544289469090414702696440848111648286124635480346076496933735505757862643928706321995769172673761793521483680351931495182151594510707565317753191997933976348174630137686012320957316625717208606594540792556774615326343769198014758769613671236390450127071879330425290013624137663115284525455345001078406805556209798551416005187167167883149305263580641329098048237387741678008092405755540964794456989017697252273580888338193559380665619778824064036234128073834189669344322965330335167778305336155826889864080488459493453047300379666201892180332033755244302714308419158815177328409420506688857738591988734100694651053026688107462878414055862816956304438712691083025134842373983356445017407948084380661086174106861485376181762574460383159039795243551698539167150061168954320855912042819091501945282175420076087076370966002541662993098603270729254730132886712857275143953836220639739386961502928696943172542183940385701572927814195345898687870451408603377810669083018435762819264169483666295346304106431291103335959568865564045349732853070151154367488545094718430379733684938130594561723483459900185178179092917086653639046712453088799439830614569812613843039771513572702712740713769970068040330233188592452348599189896456738905251231855917480945505452584411431201135879655966970737032792102876587430942868210342870806850489817319859499922516028102793783900204931353644332976448960171012495380930996866256550975847833006643300008596051070983144307684207108144046996924577565348419868175440435374273302222564251038191772242855651726234128532778597635089219474923434814310865466631199977697605406596392868418890849368899340033157226078947959828309766968871195609463495456256447600299294950925764044033511234207398147366351555987766581273050978903046707337848185197308835535961835625528608316287164706232720412748353420738927306409403217941991764457629029623943378359501332080017562311864911241450500815992125851427349367963642911882686744954820788703398971380505585307150971888526846418311757613469273552731817900649204243316630452123876611731536359135808288896110478748225309324563538102339544592906628509194874729989601843154091449204300821327411299785984033832784467814209440858564341213784602659953145474834305593546265761058968889446044559696870994925246176016830539138486675853178739747333055095041984718619335343837520049007282860327385297380255887999617265688405907757892693750228422448747342178806887450209823126871005105055738947685830842877050743956041554604638742214374659472647764304945833861067820126753426399651795868491483389226117223709269886012561673645942465963215308808783961987368695306864761308407406804095847179332047802634724222682808831670148383369821911050833659317576644673081423140320459597265021741608290829194952571882454170205127850553051381825123059499236005686094697671788587786234408661441924163585945402034299374379226440341020179089981104960907987253572515703310446024391939279481663856624580837908687385170697842643361463513454589402977651653351557792201730502230268646530988673260856350579974268028361249774814683934816700874160116068448867985603123412770956123481307376855985748629889468176609666423863155518729579712266129908543264315378534062461696915606754955325833642014475593599548439784019960872225815559549432170089152243313322389484663559045438660609804308743140881089970862895117205349240688254432616084646452729133149254593627667906977863418951849294916160442986853602866626849920832065043777431868975151752246626477048208480879562293983027197337266206826420789452998931633110009671395158560144707482512916430110333401680592549675276357611360795797910499286517360403637508757512695862280547712592898022283096148268614265908617155900035577644589323360420300458544447485289726768785111097733981654081068065979913802139282022367620775784394928285825945140664875013176748797173564388852469527854630908101506037577431708782837250009426751531286874574598164577476963920210545926752062537741130713917199217578157114904260624634169141371599964326529914356760404050336680142597021459121114161144750596474826467201447020484055895484506341495594600126171736619158484534620336423290691385601056405033166329631765169459045107701914244442121087658933364148638303294081828335711136651662756289220160109914511735199005476453784832572530882161362299780066196486512050721405675001641986660956974404582350398514443338540481589445008752601594624859081164240435413508014849902955038187366082775765851916776381901984943978697766752775601064506459383501079110385164995633592062105599212880800437931139349992822253911491220854035840630822471806724237695660103262084296383769714747343991040718731769385136279404824136235571234039287861297178124402791660069705434701253162020838046922697877857091931531453341195506733069089777821347875229397390714547018721038286395204251276286065203550821236473148568733772421165202601435763675214281399064896042796154448381355033631716243131917685380201134086984362687555758640373216810611845975849936466314731058864146065256576969827918600279253336948405898032949566152654622228412014912799396932253876164545701352638918501430238458058172986368585006357185421649268184437128102498956315744504097904735592405867874308181416002346863217181818510771166933318662401584904783709223574617808002221338088869896775388131646610105751207153364250480898498923465640033801158484305657763419673359411587079945836540742301908393989829330801227281522518086122371958190377362958992161833168520182203377861540205016516287594491455722888993501488330453056210080609234052067190527815651229221464968672730282784223387057348488956397684553746324432920292760098491866846686213354208525735839048626454049680221740519365280106666625780528249175539099356544850530001782248435916429175735731486003394047726759218521911057927071492332772868429241426727264444994732052163937992018551059574401411574984148613880834361158890086394727309035720004325030843445109873949130970230327729010809305441637861768792761125279751770045153175992860793264546387592814640931794740886797930338596267869471592256772034238149833339951310576508720410733044896030086974861081753117307064151450685922417770216623655061036584352259655347727681826685916023411341495703911957496022180162220438089812486701740268608224880177387290660430215233395785026118850143116967284746925406515269579840087456141233497559548882948693409940458664036510187848383410520709432223662107587918880797683009213460223637745091632036261150031133820781137126129555484125523588144455685399459767348842727548079913439024724112224335167002798619202205240416653670173620059496315432863522541050671402197616333360980041988869130196230963118991545619938569527306433533047776290165712041522324008400914141547596669818275149875042695325025316219220242658396881024648342362892612547505783492621151294727528915958768070384913375025020252767240697448096723848693633627902681724572816629139603078348260561233507245755015741727101259596182794175829133025493334394408046658181655662468870271748067549886518852129827805411567673087603701566339572400301935802134336617515642072420373664473302758701699395083373325327917106618882590038633367282199170457809702244608731876706082461833255000519477119395004994908770865543714447081751724453761705865421678922824423996563049432807882010419441766901271506617530720108045675236836030922045493356838359922220161875922810881604040465479309567035143107896638048509333731315860445051463066456447553752784006782012226108068292824466042394061145420508987239030494536857774150265996464017563676152750549571740764840713573058710803939227462029970261258223660701390723575647323332853692085590732416002210858935389605851686793875941684182817560351937105942710596311310007513805713990057936059419781842296779992193656726390422667306366407611101224231084798813525457653475423392712608030281798432601897532847113010989740399809644026731891966340340569181468130201499679814375791648193869390922384693737051192559689226615379065598185931806298539577450658940443281845096801188163961639064432891732658552652209737629048088768224220249712398783434063692184991504507189149909721458345661397957925638184859216989512755336439808201216341588417614249431889877940697803763911784711918093976652120866607706714546310012572731495915960427053778141217238932460599414538067803667820820966105091811523375246660446432193525801865108765170835962147984939019061951932121201095877781257310310940886917780119882058115565109880339612518764444564488476925650970118889440104591337285565498383231327620013681433534947030476551389549452234854886013109004555604993215353366638992071088713957411109283553644730712840473921596644625453107110396883721267774864753292276579432863875766521478046500040569619653000920737973112995262171394456626173932177064828970374581621082851002947238377253209795636717813024517755097200597813522541063573442524918635178633383307126331825684133432600540309292426500770432199892031406831656410517005738819241408182354093200129049259075770773559561939087116199084063849064709128289134218268552199255504252067019089049368803064569541450662484841568103583623923613864860167026580131293126146128409390821778623280987362138651151185243624806280809446756139260179215700781737580813500998005906209743701594475921699734422596907408839877762572516442795599544530907314512745177647931294131929381472943726618287393327702253799971358598626950439814538891635897928544965558231795899005363723555124256360323218807737418884630871895310756849755953692288133000495091025223877308353284825217491955705796122402044869018134233546989344517366273246973038699324541877466865413881700696796580556713172344879221499965115337914613710634635686662622901814180185060674411920703347467281770295850198725118763705502009579123035794283375961431989114554394669942033137219214215974505270396231466640381100404342012628645569475838324205349896530681669826347799783396853281315487625937066392814492830747181477505560123826149428499743237733741369560309910608310458994836667378930990271534457823708015383202920466127379539653225759986878730426212781523709688496863454779478876400232778599530809282840508752758385535658835099275205202475034751693955943781196974209779143204370705175635861988842076981205264971535112942168890617582319395260752244856193728139363701625405664660622143643508341397386737473890184723461132316320438583265254774079950342340052980737984904814125623767725996741692010149793226244700562818371437906963055074925727322470948791550050188588407286592405735082868527880254686227332869402139291957730748038617053441888455069053795549432782537540239412854608545185639200977240932403581133284861964690635627217302116174956196866989325797358939930063612529277219533737882077364068119774113086509691443955465635269644185701971762480624620948648292641340799194586969728092168299047478132757241686954146053312998815368175505506972337270547492160116373226651235939969090934830305613394459016865451905551582755011744587973953785639451309048759583547075773009251985984283422887920112181530467981418154546858808869496450380934207956642867847751711870951252062208064474848145824691060445338715800911851157196921928626327900440716579674521294896956968963400679153382232195735251944636565965651292578000998220440825236307722424519917181903335801731467830406722190650171604677586679723260875354396806899314651151014357392313458817044270740034150497652964161642270181876751486249848269261786168713451808546153981924725909294943740039658079722088970071375853100176765846251001594214109467420112619263565372050667283404829133851062187980717925435595924131053747882374588806433982719565440629970605405637473731440442299284711895903337869675106225829180188274354350394994987817284095007634816837017261094922063670101413552455679332742942146996850236963529342126830072683849629298218539779638541444530330563921733781338435861603014004868544545861987549898828240643117080662853144135790328578906677919201019203666104550952972154295752342134997876889073888307621553827491046850879921468974771486964607281531635303685158527272915654536113417540463125647868999638318116560592342679253108886630642058481284868781224258517583472976602769439155219066816258529403052784754892926169647150669955893481362806214846148428084821109815609115172117019806776168480243586520779914557417137800849391819564827194914731204740412686382563429823091262719640626058861603933329305576005302765472015947088323529125098615246560246303083602527239811584801840838085861343715913807244724376379016275682690808689910777715364213390994988975911678918059642921001174826284444834879627673182181424873453169635127100012920716327770305198238272196310991092571871326255328447600864345045468991327464053441079797455153789641408498134321246123590432308255589503183035164171828890694688082794411673665589214382811939999665297299145458077195530877949893747436283814532067596443470016355689868834804829253344112299823170320636352361054811972366249838908166672767982949301284934488126814415666283305276489085555627629739382494022773654088818741866242947620364457654903796609947393966114634263368009427757521877542265554780305201419614346593545296466166646877271935460164204845324155983236074177112679239806127714684205530840143180810309047383579217001199327444385871958719898292990056905389364540501119174004128520852870958431091648897633723458921592725793652660104140840810271543328653582616034330403520148099224919418282792850447153225500181206328056919514080701714232628602536889861492195902627330033076115465031289808159664551177265464018814344816308065221731129553061854540838182384867412018105496865823623254209996387774163362592297380936675426841632175485419218253183140519853885615429715089601803208870787805610821525634508593918169444656600423572960491869309728934692101031433253379691823581707983458127720713689777520395901346527864800685810732713145721777787787847627801746256549623336367894388578849606714378039833678368729532108681688419506168796706632698164302759396455580838946641360813126652274801272266035772675784913525990692305015107936473832638088197104556895986586583603281736274002984036511845032603319731987257748536806349588190048470959281249654398203433919938903705516761093876851435145332164684474649822040064250214714689278488685003368988103920159741736533116546527832305980051795102183225421403363983843363990241436131021610244036062331901312856654468682702882379540161340985580511784038433328872497848211482877183857151313994677246563423296073934216847116722583743260580975950861045407142211724003803067368177427386418001010770301321416040218851076542613659208729531862073186892981062772769899849010105811686362271806657527692353641627069295111021571012175133388840639371597468930848762946204710340123433676297169767776171722243517852296013520994862490406187693527502162628018284688501581491889302882616002407333597718067303152157939047630157712480286838345693414795146901719286792788840972682981479723284556698398888159277993772303836914218150410896579142281900660322074389489723269641106304452597377130239980097356005478553673940987002236075505460934306775608418707119096723422382138726465116534130919425342791552856364596924987819536136052224671544261702398864477396188085030923292648332389191769526946461573502039991306565267527634499563696590131058911959037974665388171660655768868747496647418409827395150477334841068189347905411849997615583907397650028762027885911553015594880633748309153696451617952008085991240856493042392834882200481266916352950592754391412389300832341727674552651476240115067926470441104941343446128182809145432168016992624905951957655370884067903678757862735095573780930988621173367081817238190314906180466725845523912958059012189567085794083657352521640060090238057514638782305888687502968971670332373499097185951071999188760447971906536057719441362789627187328100393053158596430576746288976630755273000462020333794776225567337851314968606065500767117736562983408464768071097770883083222415646492775831240903322490071994646709264683282794095033686672079786243911330622740136998819868013372256942671957570285420039294246959370288344407667768472169244139497168859876119166624099579205037091031445756870840632486223646761583293079647717727045012139466922287231234805985524614735679863961529061794990103264804675404279137708000152447545320527085870142509381703015015361433510130576276660871203829966626905669574908852197044987117771682563937187754525478717661659409221184739121479708292677666577791738300833612304607938394438218284294400492075426361182812786861016667816465360088585513513580386572204643606396401597148707634080694038967536799834957171554700253121537593965769121332425551952018032514778956967652350584201971596600949844427138839169760210593890063507943163376023865588920983286331715787255460972483797294057035152752684854511032510240464560488647501877173686513872965885862850612884176630655640366472785527468634193506295175944676119105982797048828091433624179539430350594218139154517476067491901751425341921780350980103619343128134583835762432313750899106799466333333980551805740423040697499687227811038899328323247594043087301010800306400374507053982093975708460294964647879991165059816701378961910461872757268059556418869982827920663118625643750874809489934880263979692291966876527225828914977243865450835907023179101119577001695159252766916535865170413398826680926183675236364050607926897797949582829097228762471257336005741934517237337399237252526650056519055622463885835193569433522496882145953849478188159934575938366437504900364145821131650680646362511099549306722028172992994312773690539391502308989001484259365954940617854364698749844667878545766396815900285615789992683061102006900028838643186564968596963574233447216246979149239462688353507428139940820627047680956650828388830244944131826125462136099839639923778011807159512637331228081359426741408051555982077912438073340785114043208786075282805345034597402655577854575186166393370249444151374806224398145049037146285079554033865069235516370215818632546080783894260263614989588535226837039069938306533480972914280021739126284884315795588230862474378812530889049702315457984120429401909110900809589954359872403576577979301069151476422823716239175964313163073846221377577049807382751786620156624705309074168785951537851538785786840798270352395215471578608401930265031096498450380486591333060583107757960295733213828045689118225392664691250851575879859139847080517707060868461118194632683320015314071731876344610599434043095805472413743845188302260567024027178344106839285188176818013220785324910625623138374400442247279149660817029610750377667137481087942015634998569303778714807882066529793124594321907633378733780543368066845814991970264397060400521715239473995603505621530698825068532383205405031912971877494946144287239160472071677674646058072200873999502940464155949439847843016752531328518617622440442902521247735761005387710168436345763236584496331529956038670520771039445575908262203416024919313863665953775192109818784451701308859797889106699122414341760435492591460421315675431350955965183289415671535595106061672349636721021563686952823097261207232675138192105257809905278943810974904148283877614012221057802943306861011954545695354007868518713613598390510784341311190847343121438686024217055003677382463100860398529627398966946477242797364681541971723230745916508402834257516665725844147642446099114906121236599633393104810175813305545354980229579953856823389280822078887183836017091275869164188361450100132516720033442737022273316378615977140350052452881796293482933440553111304214673149846089414523351929171932219609880050687437571257289545014804708024723472026150697942518953871987132246060194235566698118294746142344337791728740287494088291236775270288150500418745127684549676056524386654579673191571366002706735839891477814591082033419616016799877997997617500528857789206367944095687330496468861333575555748849182369039249089124950074166719356083135165397804233989597743756984693052294130128267622099249603921418674031812040837727546344063447198864358470818007290156359951568773189591684532227080896916299943257504245374204836776233332623895986624777867756623742948961496288003271151723766972117942257436181484543111578256520465306565083102424024245044699899863480536464676017975813462234043498193690842086095281262962474630585484764076140133987461150996882746413826540938168817693844748755339568216791806476292714157962082484468378602885896040053584447501788055581909142800832235968923071503313606346642325488387716817160141444478764633994750857505402029453467034619260943265565958526062155410104329391992999317613378495282346642420288390366709077469616790326059005815073146194086627305173010071328639031438235310941375017597889097606050676108471266141143541092944926735505242863819497575667556766326579806659588905425254317367761256280897509310481421339323256036087770410183469277760587211180295729018928063619962007708694536857676719615205173066963215829782423631430961394430651484091026666496143797341970704417210542436261081349282455634222024779774083274809172884500568544484998750996993725307123420060611916619034226568092741548770341169318777758000711565850018132174064305030805433677633913845776506657059964238602613509305127388959487437430192377607502944177946476768293014531075788988783523707953766539040040056316235439161821419690973218429583476329999955658703784725173002028283867848224040111144842787522279191828375672042499946903061264457359162063073591250730062446952951353019577290502138290006413783290682108043308180105759773262174462135294391864642817096603265972180466535495793813613096592842148881505244470741740651728405166077903376459118565253222579438644053907886265721174789014883272422335187250895525704584202475257146446885156447662732348410539143587728371159209942696877240678139229403165128565395614180125979299225965858061439487678410469893772628313170101356301467270428823058548477281867679139013025331152090263087792008816836254010070238253739508257456554073140518844251883510891709047916766878810753582754536997047252793254848061045196209785678281783080327117126104874101843302980525307186415617417596825673852073298833575814716630657071999418377583570848974507027269628105314077414375497046474411448527893099570662767122651999915267440598569458834476974574980818316531851360672904103789479904808692919493661892326454430589050201120940347880399591308052537339039007787892696664978609939268095047699405815230951041738567532691064798500676311580676688243647726599728339120868653769103522385277334727417109647552891813470778043164796663058262260980659646390548190632397450249960263272112667275274242620647890101192562554595567168990226294582060272466459096353340636211015357182847657834380068944111352041310714225527482155252335391269692389300370636805112986224720477589165304396136325019069912536506917959829488266906964588172829949536122717447177855561408360200077622128580126928273798678456671373266817535073358589622009124987610710075393730433125444091358056698137237220161181550566288723045840161204933037372881317647821056713981724233479016808720517376275458694441566206934228250812802207149071447710364640730031054498241362560553038813843363980861709191337762318624464849412727680360452911212218240685776907813068418256227306703155137158066946076256880780698268618885866023971590328813741830332049025495861399087860966341511280880744113254663055475397154365697241564695502731168308469998020137931278641768149589081481945078631518257953001191450507020350253451565109927276435724820690292156165729211366244340736713774703488099413799528598069806556722578892286107594808729437351953732035303268162911207598252529903388325994575884259325366041697533675645172776623711308638639466689218823177154028880294375596497872362827252210168599811744158630302559938987776352993308975059690209774235320876672722181635138572600338021741654696434467758629119113928692122378165545337759796532332286527383016906727316172503887053284818157613637156277424469314494901072528394804990387946721654650275520834815465263377092290933429978417696779232777365877136459247723877813286676692863127706103399713890806994609343970983554573724349392738146425563804568316485758112956324596818999263250916941742687964843432294939802588516512690808466529141563366382746949292530497198735199259337739609842916811304985952348301122221912921068175331810404977646015983205055194244792908209627475953653866876133097912312289034978870627691254515277624169189627791829335456771125699254491795122251830295075469593805840995604362873293937457957529388519134285975401908400077222874076089468363979871346786150347664743981681752378731363900781272643288299290686206216249149591507787531954310023808501421747080921028399556710673506555093948376772859704246197719385537996031691790523797001661086713936063671711278752104805125003250267819087116031585595001154507734028946383362923547918401418763821408263880841398833900314751686051703311301309806259528715455632790139013880574514347319464291768841569913634510154055916952266032476318774077561708672738916146546108678185821542753129617606329701591013564468237386569064291434169083405089931722047122881897899558996574226774118102353349678546365470128226052079997691022134087133645303187145518776989913273037601928803942818409213489297428054116398141207641934998282322052764088295238266776033571326975239950155364533156694353120979643378776533324792514007114269723837581660391870799474645460732535014699333012189441694431839848390959046076081028817331611058240628759060329430947689183244107565100751055360456173385667739179447509784323158352696575508268150106093269551044892961821881129295763115833503440973652200711498310818655119702041551878193878182986218162254442812321636722169637881276327060494862554223155220001970696118137141568821275217823656288396442320186580436566925739233659523639066632444209474631844179507566048545825652336770874324791410097994592963515475565358884731959822965630391353375686682968652376014745631732771522041095773316146776480533782953988812332114350502404566648752844719682425848064284676805262992400167865205369048110495414682700754741226850277534184931357678258463651134115444423106793384674811656617957814368088002584485715111406171682481106847895842216926797327580687361480131928827932657889354888216330552644249811689076623065014843483651101987791223137495383555072773515688701820413507182393594005035774301274478685511957945031637398142719618318607569144485874035873776787319547919684939776387041992710160387655680007068908130438047384082871941325024172820024198192995603864298158765583827354383803060880182556795019197120123034779667650722498932911789479797496063517469193433140529119482652906228521534105465582755322578621834441835333239029394515453771106689219638101922167233287271278798031320196547730939606117977814882730219563693800049962173201213456065201795245145090419834881046003902541980314570405583167071955284651748408737742209508788854168281521554688226489211839683150550804030060192055912457057500127335492987554434196572140117688100968794369062276017122176282139643401551357508024705238249833839583943209606996731007902480557354361051727684524312016929676347772633137288059134934865553889027067126810594834497448705304969551956484711151199363888592309444606736285014858764174103089608083368402841250532605027400726721634156867629603374235539579714712899932940830020727893479440100271441310612045948426807925468053596455905341616915038750147060542456074905088158989828870024766790525219367685359186932124934802555980640247198387709740792083923090748437537714359199745459523896337497916654137933462999304129595894812516932448740732655014430841896443030808423354340787495937402700088790311187482270763386938567757321267473935963819813448658584142644017847095362633600954300491810616444012008859673020915323339884910432792219766211633323334656517097040377321160751308295533497719286284612375285428199062171869981161977536968203978210515462661415582372412750216940945929970629492565605898211827506510087074681366800860841574776462053100577913792392439195273288052845163944610820269126292718977982550576597513707772802502727754425967413785903248661616724727964599638734866812967264913433397378282326290252687136459611250301582269332083583956812845507572595978115361963730129275337502179269610924242429697190427798178031747884797900768859374420826425493857569919067279093383146622523771225992943096317330977607173820950478387416125282395084462824332062359926687889016860722595656908135967120378712428496014327801194934629536308120610254795768095617239154019855057777833930714439491630095990904818922904034758584836009673999483954664606470467535169280556989062823332826543984773028071103259697463373176616452810352082367087334332666152846251646254709120476860512915536539138831296173401464646284479220222932189496149564106718690497731819946404578370713284507286504312798240128345038411296473120725746224206635516678528706842963347766565650318355233889877852088239296272798506336153537510080908137782649606829005196290230146296505085993237416703021571955416364318547421875605451845207027322388949321171894469242352184596734106139033683332681123459880663494717845444342932805914332778081357448041975583124605829391815148254487232145241167676865280851660723990759087954001096347051432779178395082528377331946644840929007898477443719712230852567378101113953731340684008114238931639563337407158718387150253772705629997225406994735722699565281954037646012250750874437863979858464017168965395422564027475390482989947007080510916206933561279442043135781270862652113835470835245586317391932966825346039571593710617231808538705058076797259187565815122952459228346220119391266777943994660951416393069396530938601910024572595482042887076571293252087509444594966001190349208014504453210490901352624873048419262564418725058771778481957158217297525234819002488066672986531344955583834258361460104741591046792689349452858754326442390365522311088805504423831654915081223601391707718883792943077289799416431091974157697021332302296731105631796344777803031333791704003161024628500575388366178747345348302017159032305429380138297538284601425597263528136600107028391067059245955174970890998441938141928731212593224781912935795134757773217046085231748611667482435112698446397251876904781833887657604231152257920121842763317498668063935044375758127684459621453553079976387423818312121069417117957473641048431904275757267942439151977999496518581056683749565734108946076131089291143053433308027221692752862256825423019769120899330494673660121334740588833786562358798716898084197673822820804179699684865706759328073169600561230974844576722041566204923277466529582026705124611062990327232629088317622911273791938062728682079926028130900162708915384549224100424877401788328807216339467145776130443225139306881450910357652676922095902287268248051115134962750345766933498690592761050236872162810299352059982166884306755609706454757852185011844600739997075052784969875632490448584364090523121963019410952178842349986332357552524527199779306982657761295785619874141527738599002911183839265096948379526360406130046388906109158082025196288256237812029417498495486267034090117317297129605450696050793811375491059322286502480457965856691081477236428262856918720999462664749434949414144456198649809502044396019959015403052706906727996497105559116168070369694559616096453703451223302771679940584786362568569525938604645766562467347521411700187247648666314132329399054719701320914223909940536767291631744358843430605297441836837104211074369138641844281641536157177907432646429112777600551067511685651236166394140739045105920706189049033959441549920581109678126908069931874665515229929444481914106098092587485650955802416684784829974501165768382020673093938872550441091933575876324410252883654811864347570436154485923982906646119107750296618795409170218976111455260401915057073801033654740514191101475690651247826410475198785716096279121581364840971320028451478920332873032075299478437550103028259210330377804413335868441441458995497503876782673492950194522717757467266615027234368944860226271778747281863823337815440151635662032746215403463631574733626416051894853310349153381301109872758353706930976400691006649747971774308605245252468109014659967405279922031920205655447916889875915941629689358147777853136143564165722691413829186891937445315723938804816424758889570082109257981780652823133385740712054749356440991807890407555186019591378191070329029329266378791417135481731253341542639657884130580184276938841305035158447153508798199150001649758103612854085854731446720921318647175939390426380546777667867775714830015287396387572248305175536783007813922371165023045638079752123493328065514253888993189929693502655575637849322048491589675198099372527526577649440406861211516171126388626930037303346069015927121636763306381406538541376722775784689930656828723979572190228879747722864847119336075234987364403645183347919648588386302128860559525436109134318705916545149920254951199205782949680562189549996112141678974464525174345509308026909283081149096003531933646909049630174001211869113114628036301236929634929941330835057052156920101854296951227530134667127469816786018299063005448103121608842166493142383802081171891820341539432991729204158756865020033765097313334329888389411100470039265247240543488736148979601669185633630106391539626944503767485167170846778614383488258664760698956849888720818443986539499546963763110507141891860011284119311755268681736132226277500909814667225300493868279373991861426756799452881009045631316919111384236164874416282365284809874256262843887415761742061768326202192526661154023073625796665773722809080556544754976763725408443346314175908853081063543038466732257923865299375504492606782498219645501690693957627806177343122548793390225933038617686184588816105411775489130252921365660579303248952215090242851529523325066221378092936917408575831947170295967851503374213070079348165674122904201774324813122212140144134782645674184192544983381345844719198807275170659751684796622715914368248677597727912678443808696183082643685296690354038725777250258040291840828587423085926111580259974663075932874703789553720214894313416716068704850234356650283063666193435573078372840138376084762173426991216574851110676871723700208877277506381260126750152034733548044484809466751302709672798405459839877380356341750580528116727600195904283593459970487227069704197251433790909206726993205855799378245276615790788264713934072177662206052973906666947887702526566551797251593736127987986446592109264219234078165144879309764955017046475751668050040900600515750105727110891134815409149176421972708242290870025726218997931313127597910068095624331756585936492860854677002320075920583180070862986270278944688823956667026230105239032013702441247339087935140483774977669518166786419150951849151116353408274076187625062658422501115984824763977763313236628516511414302601242115604318127511926952324224211623133571817273748604774603661020464944548733177050347737086392479080811179665174245628481586659921287504686863190441675289020148983945815800059022367538117042979644817085902887040956539135355230531411053671186714520096380768347114060585836431145728793071417762326633388118494218674234507054774627471358499062943700485351146734638758157042122892402566780963932862236304334452718450232659651559804451280432514208515857305591963580213420347220597419602059644038690307772406994407113318214510373224881430737346067153853432778819178111289817441831508037142153219505994120152289181389264620448621444002278345873694449071167484327079874206278020973322577094606938574709713482220603653489743911738001421132322263679555243128186266344968419456374138729187750381430216670222927346370666109839250786858045732615111218230554113786008485619240258763524235242808126333897369439735825485626102481537839824983606651599730518215221220211309589694500530328865603977397544732805936021084401723524028946691995135763138807325557547706747214189755968369210287998418943350037986716719695684008226311328346634227678105929471281335231238643056332036900697171058521127296438245117169742152510672356314221854560197874061429358311053670189508669051853310035072710710986109607607009256104309608982570416651302140498501483407495417702511463850484633659234250806971085512560420385006041577678046957349958486166535203041530001767257386720270797728982595742655960775424321539423785806438916337001833896441953567681772072534257717977458832490622033495048814002248618045624310505114668353321181496734329163369985888716837461228425713331338826638114951439578217220358022166786611019069676009046951631216395519904907154167966263144644571410223212366130471517794176114608871768637241013981780705535118700530688977751002071345597525583398889880556024663961587196272680540596979654764764392768306130796288827847239146968715888906339202126024179322099814223833946977984755759839193540054500170879165370789245472725046005060122228921544947384142687617912757531101787817525692267191404528715774851335101942273351007556484943746220381071611605223671820211491167184840424751423431366445202456675789320157012124992513446503926529302941261637432422801065042483372326371235239886319935373921427821805671366500946465635057781797452529279808231997335536246972231263854639244897898059655670585667495477401258729285954199337340140348813990576357554385317598992699617936122304407958844426251176836390712146550650375644512128759584877128642090542847317429413222529628476047920601358063579232650407189107136000690346605960567823267839052800850680148930990668578841076268661801936667168545313884900079981283425858796142994051971648029508106757434774314976967488681567268920995615294395066920790793557739941651658102325741263007423945420554176703815786178260667939135717572479958415920162115559340766548700628306266556603488675790976959568509236991429068209324817013384499039868224293120007631512686090011214185679493594249954889023109902929714856680726567790620198951932773700047173626384288291876283389152511461407143644462003714103645417387321823460875181773696833818174247837122866292001778370337925922782032440789621759548985743088699177643929794625404241573494598587138213837549575535345021638240003382969215837742793717632097497585823374206539874699308860977536990558156205308067031109268499843672657562758171488031056407173840688462087036294563925625303026430514280793749477579317072089362016386479458752409405188660504298082395841281660999077910926916318972213296602621975316639716814816196899837984759014869423624087415146637662184887324448452973249398775099375118922418848218089042403935201111603869846057617019519699269546485055632907139915444224210302586323415734326018501120117845803843382966432590706019164174032852960059781428017733505637179536073519195414739560092370497135380014733559891954088917602907545972181776947454098223843245150492290897184189190215019229367038787527176049114646138652663292827996750676551291846512989138719548217821636736395506053575294636972673539114190473759179808171716018978167237965082285777587003688853166497648520072387861691936901185226745362912637027783376828818947153551809140060402919877089176823546553025931881954431761459340784184456566691341016956577432381764802461921358413104890006997025207957313583001515084031569794878372600037179006191712062381172638785611341974894951590762181275112563919042784139403640656459927690787451819895011214466886953022133457163542104495268596936339911559934890526088327369536658554159366512852132570215467559035902207285732548089285316405759981891362993044753464316201616558604476081848960075361360435998144589393505753521231091109348943374480139385401985214646236107422020568448698374579545441261774838730446006477080030596462385209869035573752834387452263648625548837139701677323464701345491594750800256759946325749399003400325510092510922638186191246616826454652638149116335123312612899710067490453563123519639638124915672788763106345911740369266534646735300267671185112971104157860943038853434808865038785121529032524101790552303903849190232836442147444258607184900799702028364326274669403834091192600537603349740403906265126947752625344635976813389492777989653570577301882010772465589012431443901093489488155166516915333411755840686741980694666143156099876031726352183852425903711461740189585463135075938818942230751412509853444816938930769740843754186311584953681211263315250530255114254053752130072415081041160410511466604473489330325783094346683016340090111846268037742726266578650269421029568393090075358548667251631082401828145525738964800598520090722224233359301293680430048261070714919255185727412431009591124783777154130188225991876471056103135203452155656473994670802997934800549809041425602357149707673154878232251027995005712095476951335826171465480009006489011821495048445284103877867680173060915221979177577289175365348807487460791186114563973366935382484877953932437224643090586370883049020691626176772996954874341477498052595839362175283229201045899221515669967307820523107812982759042139056464793235046192434488348750374954789281023597247789165921015419527751439123810337700722190833980475418954993650920657727987639711176128934218778412805086036774834944258654442749963933997440103921265284413214725543670076346524587729460379955543583312537261572111028565674757582699467203490087791365816448597045211037765817449160279966310657043115021966827435810184560251140442752451892899445973993380999151042443400898138459322484750412344529013239941566663989454607973795201830609978519391829837219097936542787782416738570514692832324068761445878800675292253160258943109527817080259922054607504602041225457825286616588738454875577865295350544463557260521096396994983496814485022542774645878924432964504913916022168341001151990085169955167165788250326143956225385162258863807550964291224258689664394513139914782894302712038274926869395257566756090526784081959551683356087303626405718582291458905820879241888984758788508387856313025854462678794910962010137552814125369052784927587897301011526252318237352155682514430747258095892222436112139850253540048923951201059036979468625942037201414604533694144499086252606076622341975644974674263532070073689880593635874348478952925782313002544638569155718394978625314333333247926982021508386475819374639742004423295254178068896813431959266375164363394591256537664162075300292340006690794476046179066756151280595366096656304046515501068784407950032848624408723777759913878095165772152934740003320001397318003791166438665114714283030308095110033664641254446279180748664771053440393471600100794921318567725066828803303973100518570498573209591189057477586064443223240222454865573149485933000616326941453064928922005743261988821030065784702470689575262418933524347614067487980656004418976413383792135513465476848096042867636786422609277626434148134587382704115698348405139301754519745376173238564219444505122052126414233136288410695405065683084393698745618326089257464990731526418129796024505237073883549890634972918449793719534366932638467724857953132673897445944455111349326063632234021799184458893839584212148741926600370124711339040833015054375134560974895422502519549358977815677673487549343404316143501157228216173645071470655614317509813673620452342003413899523601150223952841449095482644304666498919655746307047193984213909856051615125213008662084541146956234827673839473513351574835467661306636005964659963472496520282708551571962152846161688454647755311335354011870382896841939214256018837781321059027513738263802536754095043995319794946580064915490915976225288203215485280500760962650264700997820973113931789588567637729483796762378935502454449685113868035724048361079171654660778846459536402488831999863586232508298440721413858329414250291665202414991737907657932680591705620184122009958750581161667734358160037948273421946035926984231119217747346945486974705156126630963214045160585650747412355145596597321780507083980635584637746620126575447507361509987757666690781183210466791127748738490372118725205167472914233305849618783086992054305944429652245873649535582310782736687478110420940592508952005969087820982450146061937219522935732910694343955438515011914841720286428622365771393365758450617137232207342512207795209375036901040299860702733650578513429363418277548699751758881342297376677705689043514810181300989545513514029733291190317432416908579870346354967376272184620087692259618329343853188186927585040905690317108079534686249091687170564799616811042537153384884210000431590533139081753576199980355608138001018673743711496913660007379371431497916382208975573130708619333308085086311034482683440459917322945050796274551544770595926420971332110155771180882396375192211024026646323212240751210323304884033729124085901091686543339981395488371615828889021363380033724881075698131758657219852565426368410238192538481570346367136942636655454766190696544881759241897622154273817130262649722244824969842877462174683833177279927718570198217832538548493057640078339511714782749579501198808262721620540543981507652284768367802392232746207867201288367434554206200740847628490748291428246238700217645594351683467913422194046815822267721381100243198720369647656013325243722216516819291317988883891524254246212527979770152797169420720541156160659575625521007753330496331101961183766071679507512080713718769813226964827973295314142097784485971835144413289618498624405388984033318112481448087196761354918668679289424510355370962220489849667840883157949817870696083478383533835025456347729106599158169602036599105762785785708199765504623222532351351972007216617515118583236098000702771915562671700260762297815085109726467150400081245064949394733919834639572066642538388154279739671858985390323988478668974364016889251226417567497633849016293398074993386131324278757769297931006402863215489027604615890801435142671967654631375797090960686746612750571956052187611414511817414858284172640158840554824854036833297044101007466398326234622291677695898057322957017047832777769611598281130656581271695019360529557028437183070038948937836576393034916274473688008044595890223074297012702583579209541802800165205380352331009985443861357026965206211604777315575989122506087510068373385540512037038276134103227074616205935605703840266601194244508996462990577725329535341423244268514582764857283301103499053014087780008761740790600276336553991875103163814357026348359098514286636617861738045967830430773778336419217406724544005792363110800272350258021749387112293259088278906801676280389375554325379560226614973364732867152501529956385257497803963930555379949015879547752930729549182090592661557554580869857861433741729788322830010703139150781882514626688997859936724990304486412219698027745840009179314614086066959674696376102201347475291525525472957539168391621718087474582401573253531538894188654100020441195309265272996203973953658267810380847085957723081157702676327351662981262084697267973327437846200732805035643820666706658118574175797561967859392718267276895958799798040286115890641076367734691554202294579262624843773900449040656896113762505362845948618932330781135241512596479167618834796004666242739635102766056075975918357030137112908520975058210439198991294325215379123446879844659932446880803261253660751176603569600091595938934886950547785131543284133508072801155158901231198224496792295078232293296885218863363817011930628196807246506966430711777234771535334499529891607435967065927151685578528052086802563388755853182714731990511793346722665112202773822857391864795651749215100781115135821348863914619163781578728945185250562123643212860214889137264774611225470185336062640339381772580379913587813417722888435601537965670711127595231143978658287829376597948726423330112431583794116617710731562632580941061533775957081506716391947949608281314127835497741201124686630328458530663787598478360059907277030345085261831622518760300151072097859788603375467718751357039165064915158947343074275735331640465214999593188511608245310229516185307483877026822300465242930050608723113885505136292093143480881963073365464362595350033562886590231547972882643378010800819337060704707134112177846196913454171550370960560715357991989878732050821516705264607346183783979423607659719217780922972387153259289917774230567647148148362099328507153885470069175515041528470466858191262745182357849901907674087450639683749997496715794964917141636079346457483570981277897477147738028765071338355440642264466515836677629689446237942428102352597024648409467602105080120665196370036430198586195724746888929256072030507773441641596618033745830433170940242541394997378820118856326930314612697924123763041949642312875170886963475859654340137125546175145319068103644150145804221441683714071438236391694942181134227757472181556286552220913241545365212426265587657822334914840752261614795573330845274366363304554284649563888686170657929551595666182408191320232836718317896572084139973228313891445835525081550990713494770919393348644160564771533101839662675239387141443186125492634867699331844946833427759359389150508570236234425581565724254026450215621254109735803300709306915301298753031645387988868988689415529693839703519233448456028806710655571996144752850830474430286751867711054169003659440700890258629452723180622378839171999535654940277729365673049747121353768758888665959439417722048902409593233976531773885898574394326872122033739281497442537009903898377266213717380699455787905886836480073571284431195084423192174097327348265271962025483154482614681271011149356592058385593562630430681620776905235886852357342531989452370043836061844984199138559455015217752479519944179378731406441833588807584669617853150105003951855903489876700531919432162781935881807675831001559773275490750054845096325365510150835580803439373329244992767287053269763860643301302909384390962320944662379940834161700867850423611450613288515064096823606420093589207053555592360676682534402762143221625507514955518545766068927972380054147840113391069286932404687649355680611999627830281060935894614722863686232609087094230456735492534094177088556530335040191505811075193220771930192993438844714711113999252758542303070946224135603789671444033327649317315407554995567412212068566853998334186710992365556871964428433646025141710440554827181901841480165095887040314012049684450440364985979900738461235589780963361898393193406227462838131041942421458453694129909416761435606573971250446802937519997266959225449315708422067207901569477750007544859781647176582965565076341107310457932742719310945348473664639204808964486435405475745609637887066257105370779307953200875105609358432935206645230920861037921863361623172700585461851212321410892237745089332308244020705704184409803280365929857444894525878957166627144406952373804652888205001712331707721903800922991207467857626690460009511220294137151449071189603429679427841656624664714751084781340371003956065037084589918164313655830196519692538173092090403206569706891205943450768828712835401155718266505751052099293865772618322102831677404754748262774594133656077414206155816576019497570366649667794095969480030965162563506910959572672638617856402410444784587750829635885161706835536095128932082816494316146671783845962495660511943935931153201575555698906558240989665700442084755102604719579373841906230366905093338160169167244870483165121601179931859927390251164343039705264345727665377030960975234292233409844922444414952450721999642554411188284132772898817660146868866829610277972495661945509784518222038815017512014571371990722424774233146282527007576219137870832079004319782821800710249034965253285959247838429783561399828430550459855860793233254469101096750637254794528921277400488440530029299910469391038191093188531078074848986983645327929521578941547283289885266882072185048312091118358279594242050563214412519832906106877805901357322451326868921347762563728503265429267359698868130769645164068180205706557785989585035588438250443234168030533443218258443898125013637494407329547946222825201015259130302276520108071855346677139964878080339108430776719764756470807486524509364036590103227535325995668435349413093509126187457507364769315929362617637483437393678112255582319450855405845979051535172073825572446466878876344204631825543329486773253853301249720098708236506816007017731960910686673170414347001457760414821866052126244776525883015942220539201318260868729470770301760256205532959788007969579472305414502238731259251723186103870455188331920963102081020114904816825543990241596208990914226593762325018322895409827571290929283391500654358134772869187114037661024544977815873729070284269564102891188990477996052661706179486707064168654041841868716121461507218906847633945654618767889300972173747556175386375269808552238865238427165823631405662213058894944812754263318754351192626748711032202652314974686761377752172865281812665453265324674114528575950442019182919941341078953361319045597370159660441932466299896826212699281716939955485105800054424921968595288406442231243201860676461065707073821478108075620739623540264599984906424630739472787459561220737979218648632680404537223199232717688524872364048313319399213604349865201060329523795083984967007733758021893817448161680957133612622960874456993445548509033024409556926740811094507564312317333020120803111914255175875032652430045728703382757018319151111039980960092621026426837959686777887423373628517144131335564189437022422541531428502649667955053437921310698446759993688817978045300236792864029085786325165646631450403353634914039649530440530017601401079676607867895418849815308442714038464429050059845136713455521289170118564737976124674073350508547835388447882631064524851416063300288437169030769861415335408302101955649545930968364576800049299561656544400403697823821150410443784423506918333816261046260448346281309755857164661812994918477156528508574181399494934574723570034568669465780257176528285214909649259597608944742546444783514390027770760807159780899179217754679453786568188189859710778001139210640552793994772828704573877737762933311766312603971981988017080252673078417084516132321492304424076917668836138820215043319141211555806989511242974042920239404919211589030364861086226552116362318528697005146885972319180472732058803441578583426776164833458395053463973368205918171993028285031648641370233446876710379638233095264176221857053032826881778866830921277159482388293115749523013154115474782041911788212316722499562237829743217377348465977187466147872002909415744627349843878899757662991908442815514628823456769399987059588694717250281093458649685629263422489144903634854953267086834300377431639506645962143481819159031872399786910664507262583976339512707247480872934802829117746359992115512958098404876918869726885808863000192549129537441843826056128618032552840443990867787620981218415305011046391353929323426338783889058536702363197632380795639309359532277770190451340407814072287124147561119632779723361738569620691129638192454080953308464590381255229901332839743725403033034103531247294413284720674074044009213258010631991038993027734461315564526184715942370268499499136767959166785449883798834455173291548038289419117864190904610245966215920639142772263141022959393148053491545231648876540251226824383706891459392316763494663517115948497390430096384387035622313468748507154538771108567285917141165601107226897551244796513252550273778815652261749715467100219268071425739346634139847871849534029240735157061997231816274283914167551232991944471361289125934998545904881390329657554803494648316042327292937429656147903994352835551224763903251451143024771870459770169056578678893723238424947624556682911638386918879334284680792367180575513383756125240762635026593779140376854440305236672675151843697321093295598668673275909073608241518545471166491595736781836095494192454221742128110166592382689334323164333262754324617141067161778463936210986147549414398073337680976461296020686972460878492862051575766242650544386431523574487018109553383676300266713066550420267781780010108473460965025383579167187856600821681295485593664188031807433934000411641002609587899362358893054234879759661681886132838855808424348641456064526003352804109000080930568370820128891173699697384042580247922913918494164797014530977980899395138778046873121195716649151491471294832719636511115445022187849625902656799115399831562037766130657937405517635165921623643303101239588593453402172550500259127164527129665395257947322991475520119625975501603148339129117484505731968908688694384018306296208724254651169736983961701725121765259688162838133590169413894113504548167947648344970668619663813013727664901187474523362808106145539898568581970412707520637287745273836869943780814868976964950722835527046966138381259264560129620929549506829996883904868290524322485103662072063856986672776315542869480562197116427138466979010248849426029459274968495832108742782276318897177460253218873247129505305962170556433436874624207497125782627448044103463178374975491864803773302497485132461784533147699206151411481186885003924274177343444703330818295506682366775286368925115935070838544148328444020870470000692752956098425198282711798193715879925143216276427449168498104256849858581314609608025640121466310822755300646933824994189746893354761409821328520771613795307802473969545092150000869053571166392024347110090115311928173208075101110693626407495400310786891174176722228796617516717308063478054104244720390919152227805191933951521332002331193651705735344741244722780211496900268559872720913208163430452579883135847190288081451856343438316532970956909713664113778163201964872256212318848839110227555653777633633695551097165886824975891479649128164018578545267795898529780196061622156539901417626521743168815895719297061448623058443621731588444646281667626774113806721275844208415937060185011225150311279671718811756603607164998164451471777517639858541356130885788155726843790360865112534228550140813256405425830470316477016209997115859968011201717765236938111429937693975715463592658405778389895817983423078290601750764525115175480120388305988210640945563933810425024027846558307356449161528265842114416164919392984720473163138563912860580830412368611330398426348150585921809348771304941730849955402396282136670768093005063294274895030495343856022993806991996876855071985500506896106236524265090974718679335387478701534173570881038885606982803616374740373389642199178631931266469917048250759501586645127712284776976315076333020613069770218741330572962450095810996620643071901190879523282038378945852672845185994145143850123007735382765347031655017017293843284940063520766088128199586310594912685642463657248797827978436588260696468770296671314203731993380774674076921048841896550014237050939648730020340111472379395241746088194233148929143721352191766923657911183232393794555749043872762066456373924665796317500972287647895048027587126015414127862996133413590976243647691885540294338120886975978759736194153354519319801956417996663982874638146412250166644459574639996859678444219375448401970729064250972918542414752583347075769397888812301611494932390621207682174235083351856190089671589931943999930574381248681298512610630617952066731727184203942597510386573620141349240821517975834510284048151982655370673193249244615813992902006768060318916721844870956761136189711736069974748861964143535012637135760710524922139030003622159028863841114808415771814036789998762259789719512783259285079778755663157272711464732060359737965240328147545421379387072900912047641743149848642349412426307423449496575659549303557168566317323001576852911293685038830160439624115994237986761398055050903167028247371188049178402692210953437852484581786172119182415198424111524246451236467905390827021363364394152915377627849055747516621830048520968820584931398306646545074513682621181279882777155334187525841369010007621444238738043033104805093326551220658840334088936739399185147399038270003786593322095863362026203242508919652767505664741500417678843589709630549188019968627028736813160140675655535083493345966470908201551549851456363753254831683728303779873983528682955234802505514541411825889040914596205821962841946409726612091705672782718926207282129853244147887486505881784849840214139417356289491360756090443616045679277608303217619933242660492754465251000158560604826173142825420561643763528788221148885366260907000666411415434829674221554780564271442078824181214031455500915559659934500333200309413729552475876019767639776376411762199322312594200219296913471097615285656316185778624290958004097552574291051662972005506362311507366299622340775913285086033375356154610834022638181451811845449723073225673682844423702624494664901015906288478497932293188421354801372351189459762096280951491082677258911037441892094163280531856389795435636615385674048818478590756700375894097651328437522709042541831099065836012916913672617325715623862520248611799106867105152739673078696157397392488824582792907144366697122256089754847093542334470485698383685991237624616018583103429770230602267018073000140038885620857094263869471379882349516474449201691606586545810605549020200780926739764552894241312048266993912672607807438396731204476447574189365921897631509164299005054993203755475074915678330303468236517808757840247159827498622149447664156766061305850731246018129611736216328211220228188820767669174228440446912277911250800612552994399011085374910599672200856525172953734432064170301282586524101260453529126657502336911173671256204724710656837954629994338016414958076361315152102119300643010369679066721075328976555438873453041232794433672425717228194575437414669728899803933739801333652937747056689971520239437107262279876738591516571358311914441195293161107675418347478904118935372839793531300415647083575181483151781524812064798800863289356175037734224598231449611720392181581514897697092624871519422989476613905374595679628523411922634068336577373336554057895358710041463294360461730110326717276163401430157298064436916515681275302349777212223534720863857944625268181247974860474277717142193089923838291873674673726014885636154040390771195288421083249299465399570742263287009552721524986632571177867424656732152056538970894338890643545527766523516880684717821989531409640510607779914629139817386477918758548008783588040007700668825440904430123370448521531726236309917866005766802795141159962270698187169979553171344706530747176915270153628771746859893332965522347766835984201741886927949853775707938391298790716314917228374330994206410638261471517044403514367552957668993902512222025875378909787518443677715977600280162890489864393772470756863815555320680556475200122906079460286824956387452081627281076050472442013090644795470436702894484063363172346329039048480174267689448782652883670376649657948239380523183594410056648057995496227473210308888356070254173743663707464841765253547289549490384216419752483567314388552900644207197362262536825006653552971838170380984252532689230019773669949751880230393981286651343861715252410963190612182468614984261421106678937632010014752838688613985987902259062717531018272111880757376941636332495114737155078595391325223283816992051311020696603199642395310389865695350065403095571147922543258871612598110246179705898196675770967901786948421685389065288242310163776752937930748489181885295384091280131591739108724480149893910693122959691201063060252468749555739211237889149226085478651951464047963170712596013486888418840898208337455743609177815349887918606233363583906351225866174710061826040984344880221803522271944367866545521149869957408016211030931051086365903919350924661122582528647585212702174902993958575789505620684021068500953687008967526024101284490207352809777681499240550688080153400073357427607660575545950469247236061759253217829653045406353933227511499650298484786850686527438961845207614111799519250768515002516248641642562891677905732684802407688151826780877919670022440234851080478598109483032623808870194940000269188542294119405363124782794456018852913238699085794143358798884676660396450354805015923673489117138602954027517869184992621767174340698549244617716892583767840356345447236922686738387024682100727602174847667869698633175584120037866864319917930106947224868102029182008916911878085170984378435471328201711477970119679937007558238932994060803436290061093785186748875629506791691350996128527932563323051609150359367269322028840224316278745745739918732427891605790588556951138038646171895496036687799601485517506276089981826608007505362356072446811782983405560223947850876429581291067944324889662680339582050176679424021846071236160196078399953683291156457191773132127899099889026202714190178591644752191963946085834957326517131485840897571063299933498194474896299524936193443321708757710240095655167003296228793305766189757736448392464485717006001866862925109624164494103177696474054788526174685294519543555409893612835544780006555798210570669425157070214899636945307252259040990076661563946716840943891395324488820499703240686649237462905003073797093711453888270354924486083006364138306326970567913739832004655256945049449951219729732282094978874466129350351129185429911773973417615198334559079057966560099839559352233902704130308395983992171858852877491815916371869015294338211790995925739334002563700299465515468967436867236051969598782001033108115369717260997037398936261022484263329794938476100775621110093442828646960047250403589322443045069397981735991688124232672087258923491779154746217972025851991576017978039727563214111547165644354274220563566123221522042019615388272046236134821550958039342783896714558855329863669248695894616347118509354573433345343122389411524521989216430558291706214977002627215975443066385459133043107337336714291633112473604145946748382545980511202052300909374256722589441253927705895431315527251427872092278134017769061844809016696274313716884439829820794575266346686676627907349953363174834196163175840423805481534846654258288722954121684208155799224738101658026396732174970638654836745876186977151104883617436943414497638128421249505004559212481726601148797473196156281095771183293453495317756216341177344906526995759741479267077202063596983693931742689532917409031701969404614773105436594962617362145144123535441844896155035827096882032555171928762009724910921974373281947930942874297831121500336937848836331705878217270338808790110148936469945844724704867634805471519801542602570538522495036767506233753868021931927841964121619822221468258464985549412848697850313555710798970398057786068720167865609340773987684609772886384766163275167956850159597934303328953331910044205410451064472037395295780206357751595583916598977793705948805704675788915346345134104678186323379053795473942221260367138077557503662757431405291204287000210912189245494805091215833320732718148766849382906240403957341855609109900366876050568710909628884886267643456313334094002692254615839818213121440769908855332429940639058676231741079855304283942311835737987123273188511017913131494427253880792178015614067678181549782807749997896370690455999049698803146455629711124096227845446598314964810478135960133260273921996617010811582037613674219473504394205427155234134520498944315646945716950694295528523262333707452167988511912656599160172192990868594846713625012986735928052002298873159031206563261658407366994637049951458569896603167690925826670444568568706383769766401532729164952555740031042981392993315993422190158605506900055157736031595842717122601618379824914224026654445526080999744066811023689442386982496825977655358610129172483534114615708327552455196938559422981230270007048637302541433010736871210078185542456076622147456585587068715692028570168857860366794141468784087557056435139941647802942303359543886050065063273649953000145087189225030288988766940624585757591307343968849487491071241474555127774001611493738411245715711135751064058458172430914625919856830393681896727500112076273589113146255640771634977195734644472000038249108355807042727479046116036613848759604694682730114443984814794294020045145342989860984884151938239495591034653376641193136541993544270792130065212944708803336112020331190284683508668659205836857423500744462993831320693506856344221008821057194690007180907479109078100157047022466830118708331318526479120947973589887366184970371676547493053726602438861649022032668711265200431456701444588286816074561011232088879216721608874719728284013893263514363450929431731027700917062347361569836841587415295403396787002040339895040900994685146263034807351252212664670491947521714969432227743602349862000350710931778833447856668661385107336439366849034126658845119401028154129557681614290316189614532503261640396560809465973391723636905848045433921460707216475669521208552290296164110438850001396054317094030914225381511540512616401682978061966665495423208318706228973950407104010634410128457651565195321037528065334328080197256056673786951730458998176321599086048943753896878023304729115998630262278461013418581299563877928069779481955352441398091233263236481284300138843159645427230798579366351178144503014066497194596446955541776678751641055227223109021684310849040323395257685143626639987443892343123303314585619968865079623814161261964653428140624260145290576776808050231433789828576306661711223115602196073953736338438298832035126789921083299547952246688717559446490477539952417272596241130626808188676730765326231807615911417776706909505800662674262986766186549136130954122195949283654396432641155149361909093671778373298133119948095661510799846166323649767135695460666194961728964785541130678463867001140106195375529188710633039175992358993277448800001444269800349709708833371502377401815337991711153137332456427538774141465232373824328196498563114523853976576904031544094121047561066370678746660030659038106375753845317800177491053788843049352477317888691415933751013859129705816714941676896914591305268220058937018381079213637333950495062862699370033974142868248537524577169221823950125170991880567073071241107599275578871548969249860480326263039944798213826746640987859359877435723998220955770059539263876347661918633754730663118473956066518522597265275492450905005608063992615680417544904223623111150690112997256989700841097555061750301587739640517380215915365272620020419959443742379999325795711753183161574215589235618842665922895604193017752694942611547213254947386520240420521621968621881811677109014243640188900955264541424980103896733444096452091757139889812796614495558499061156846956865255829946277654363776613593327827893598140061602188108108944379881783582046525038151779546222635021467715779798587896093804000877009502246507625517609120839925401567552558501801884082071491052029689269677711117235839877791979286892408490397199026978911151337058051281091799971244999394157963323807861436756772632143384810412199787894461303519461108633402865440400279942615878348974939498700550391609890334238712535326294460311587319525317649209233383790418608765160650593139547518596355382650392268602822859342348435878961095449474034130538855199053885147904379717418969541330648300503021856324860278484494805696852519667593739767391848348137097764785002723414639739289828057156306843351667864428434509201516376801939546956369652801053081426520130276353630910986085213437201882188902677933375453600052031002790537757018266696323191845341702140924475629352058085243272967544147639251560122964451658486551436319882970382719009428621598348638109612484923835119602822698940612346909094258071058748260183608532288947080624480717812519653035085834746235613654422240711950785380915516409642033495711334995816367767129547882966005776219072421537179303142215301056316341510644154210117276246706760280549320506785086939789988430770141368566885267576086676301565499782909889537371000434564789231552992645785536097357676299319289299364258930798901234855746792870026402125884263785883094640766634303101853301082967986795618763887366174146107274734611414713614766982127425989880371766034973366692747195016575538598665297057940577474579598875291719735228317841470148998744931510383804941490384242355686248640619325830479689195802262757766582144799157566938484968194644294375634350422269361005502761831622341037241613217431020008235471792501600828696909387907873022451080046094268256583052713340721031478795039585373427021119591670761294108012978835144969242169771437529386408278507266312696275248510300191325249180363904878272288685671245842389964773331246398202495024454355497713178058714640642747665757748113544816886792038630851022069185021707626301798805358696698127077435036573433706705465715441400159783447332753102127022090609217884263835934064404786961161192954320286505210696686432466933663221678692934383383051657141105431117389288668584975789411211612836480327812449112084030119912710573940927764980020164334087606678134305235256289648006762939391989248402876250805852870488744345551229669680886128919753844260076989735500714185284198026275044366656116719189221818123277124933740540620813148672412579016047483741960247611623222389103232780422584703080044200866605025527818375562846945683981727940839337670647978669086579498593651724152052211871458189038421435723612768347121420818879634215370323423634801618423283500283585351652438966633279396322999303666815731333448834924533211117917278239065361003081402404346681980472802500715729672429182273130457094055154697220245993549407848221104104913484417454682410689615902070170950614053085079131946937444661274772447713056193291483265226907192641187086258143470509051230629267844230217617723328492135796568904121773232839420471117245376413033374670948295212270001871652449747995454061075381388774105194595994659071146185267350652074859933789266363079453496007913738662178202163503023119276292911325206616272701276042346720036961169401634328618088432348022321843071331150038371258764190446862633316055859921151155750122360652863775997558245444450871632266129618891482269087620426310753716072496708191505449127831077551852592810849666340326963538506473216062443177560408276030524384166527627002647035394910977070710344821698220354649192291448010808628472460385600995753932643713304500577593756456117767747103714105972906364970517836615168463188138986464405964136816269212677194408350687557896531674602976577757776962503304612919909006037400586720479558639360447260194645817457902098592758000634579799349096626197769970202610365907073455912741493386006231397609926247915482891816082796475803967202452179288413280274285043177689122537475821605680229209471491451234910082786667802199244937971559964831763216723465938748440708792176697984140983621084497762541655328764184549650697849147802233760482324032955474399761131671497604511492888401688849807271166641912860530766311576937440875332651870022627439923022154561293072819639437010687277853053619102610923466736199862925810418944515476367833973939810605678962222679713284848340808576202446531104274332763606466897670886015416453831197638687925889412166462859127859979476677586390938521647211158670251567162633087544855636436172949459903452320239563857768574758539983541043093659210151924617083016775686283914484366515274680865369430658466488429142492710406607475002092475078323950349659438096447303736019019223576292588288566244126124939900901747452827875101683683901933444985782126026914060434728495440490902198697076179801316970201815902840980727820342354499287203991939764573345432024014535805519286538896914377310428420713029093239790626055411511410141174365995848284522024741073755357997888071423836484284266130860882370921173359130556132742665415704370550579943143757689479360531497243327491522437931138043871376234863473851379604423718159219606497219741888226468491427087797590812661390022155691729535154796424054358974212090749234355964529508638186234442958747893270716430249857098272091485407635257120132965415250197413301256834141602019977298148144341292843185494416557201623876711380731398838086738722909415955840364845279963550360234321331198579005373011560082422178723048390067629318689707530578112055117944697726445935419075774457142640092283290392389034731346978262595735938472202355977808033352026045548753101865763816190062303472193664855896430724226176574311359465131385608752628694890369432903109462438928441603984271545947813979700437955682302232182875695926899919726922283973523627586295967198033666983223763189624000944814920603416418705749640284802814403328438631096741803032542259990004233628298362744738157493244539217924835293010455247371441771572750815872640683803107616599052407799141562320213225404666941218079123624618960784441767075950394727321154717187945085278119448352867708039731538881935150855500870502678165521928310843691244864786752534483191254453133347668735212297951759910168696105947745150902352896397125409311463000195464610400783721574424082264519289344713743731040279705313163786271395460396440532263183522088485384843080883146814952464712295572105059374131587514655132303459690557422197653559208906876918588915600984631797757889743581810487056500074005989593347730156498431303721249780691382757453809808004434568457657441747448873970778158969378362523078897694090384759494018704650657585780005723574002005094964418929652703620076727610380091502259787465976217385877996245139822122060687877667765319933960948068936267567511170103019540732912911309256279534596023201133174169580689524269859413137778914209332916261195093191845361760152140282900541637806809700903819632901197622168119944472093451827636015295353428630941843365019939328600246870253200838785638467841562582532797323060148346004806856906428764543642682892784726892893844300104292438103518468163912938619893097985576083079150872864933702988968001573680612662814939661121611420067480771888761749954331635416211091388770127735602388902598837347617987230790429934873968256588714225559176745508064575461774631117071638588670958427791716106734494200688104879652223987647428435686285418521487139727838597796671020610876478562357538869907093388318639301762265827841223528314793802414874843904561981908327107562158931937103657990664364243218122538791660763648751182853832368603258364970369365045366905631541016078535485944783061195294760029931172411048441710162589049134055590395320045229171197000978411712438209594285960350532591146266030324747184855482088423487921241143057425103955487444563300850991191795242461559038993721390199444018492516043727746535958555334658712755379882313879099359559315856211271696884452840016810388779627757836798198681769237267078432817069385374032688272969529227748757774890327700138533217064993016490546642474929058387145663962896019665319729642281376648778928705235228420623350732130842909166435523046006253428430978092660314463527291018616763909561181041861625216516782073161731229168222402498101397186389186209324986096717743793907944447792801258658388296966828177399222823958362660644765642459978782844567537073943581122690797373471585738556301538952547593652409666229725745847304412798822968276614076850123310880758755515610907382323611387980851673730955191442695227482157677057426480963293545321923403879697628550320759698512088865244404751038377748652230557395241207447739319230467577426064318226983825910877703638529049041653468296531361408156853719863202587822506506774919150617186255147954987068541276813524619534157570989381747533049868382209490060413445071443723370971783905490238728311175702597791370749633030962399157434640728468814698780818463560540343234063732135206990779558770261285134541636571905500675392583745218676823014124431808383234166093102907018554443019896847376262432120360893434341807391178511008312985966019919867789692049008227122789024894201452765761898189953383600373747516367238416435811413879542843931073432249499624702072779724251083477735368945470632684195412509443424778650494722671458925109886990882769972221170715054438433034145663562975348968965756073056070575650643418659425410634800579292531244776136138400486742751911418960046020137336905868010209153878345440587793376639751941719822889067686654783462569368241932479327544628851550290238668508450937229182894490735646324548161787610632939277374195068960509472921792852430257286166896084551864804919233501975217439099820549072869954167807147362661705697864852440284637954849260316847569721439889847668370365625697542221631992461754239742453189022339111459805209165964585283910569010394137825498587826397783265205252770513321691654324493239482929503534046530116070260738039948355312173097806951522581340118244517471967428842632760619814152205754754840999171836984317621126394020971558419109636207834061224650468638746100389151459586780879091309552647237947433126156393946212623450549272457952181315587177565612022520643453509173707720348641012000041967120165400612115587083369776914954935293392879855409728424425888866408471565931025874496429752601171577301899750134672825004611849390521293139491488892088803279016062124643025243224826318536327206112553835451694428606854598331827317570072142316221956251933322769274078357021537698869403808209970448491406358329615634636425680388086903266332366551754704672874961693745070642822010922334512523824177617440979037108127774122736830443051194501108830606455122809894299900605379575649301080209372762272310944743313835140102180176680468340727657044530019890761492488678298511788352016984814813588455271143108854928415065928490656291829422736779409638735124472845498281647282724615591033698470905733795466983099816350606966879895314609928541305292976943386911669224596370023243118767428053437530120198495015242914055492843776541756994949185458529952338049951224925297745170110319750026190643950790143698872677745024388187696138590527547166531379473551019017419540701323973309069498954845097870026404985732541189245117302544303419280818270582738500513736822526225138330996555533691609837587191911771008218895410931291580302277598371741108276035062442028220320212966922458012798708498028292188914913307742060285456695914494414636672264571239713078776660200255060111017841193816972579602889463731522968486509331947186030683445580627978440318100729725357648253054807382150795734097100436964890763255138541766164586935363594775865101671995001533128433738660614693621158134757162843666957764553556839866582750720257741164604528536927224487884803905215933668520515754254979714003057545541301029844331054426398973095610959706895073547019757425400073454649279062716646851709890318328588069963254726325198719443468607738334393488799292184288127945424002136954578558389058922029862368508651081245436899041097126782936118856998713818677987840322562549101134929241479099980351365708377606730103951800874990101551541656478275475270650719669230252064430737950787827737092837962804563421830581063741799520171805282771238512164200337529905142110761668215666206369338899625304375487270933084772865781037828205242046217142460798033426332830590818743624554059936037841187380009807500748475109252023825968967715173890512867356093209823967152043950494675001846413478726716507593400871676076876704771307820235039680300680043874864718517853140704160314113835594889299011661628020036673696727084878148385722881032984698605637339056429082399572285937463194526046061790449599531025412375353167036328502026373038543991168020740739384691375501255518002030540500793612180404798694627052462661079322951971319312782871875851117599415226886003703017193363526822603551982597996565317310421345769228704586029777321709364305295846440717677863751904768176117032922872921934647205738842320113937386070059999252297710890137207065552877767865228478980922947342222756206099937415380052755633158080028780696144652630432261653353414971541006918948912252788477560407353845221335554520722773561585923190560042818151334300780956606685806787530610601578025689976535669008544584890940071244368215101499126404018036779808389469280352780218038072135295872866982315396351898172671127569550753776246853912571023091642555410832539178620925927210450410633832314739154821542864781361733639590052369677768369683083266343950569155174379064329494908035031079122616012813046947054839366346188579498968637606056079526523587113740680266851867588002234589557723874997976753207743921228284527639808521223189420465154859396536579660983212176280472652762445135998792780370951544830610460172150801534590939224922247912980564299230380531065394208479120964538394745806774298365489369836581232864385672490953134234529668723611807816680774218275856662182542766165790570982657132333793649184955830081301137848192625692041269088459551523424146233380296002243542164490260866196684813538193506636039493975145453983680514084609576040688464525014395596599792120760656077287655032580673454091583826596281878756826454999698513163474252393788939883390485875832309273827675805349220824624493965361855262216130442611542376800019360354952264751803096000406382165950496064471106618283631216514663685576030169801581629053260589451585142469169683185657771587742458703156260369031232670322499606700188106232217294868712448482139180057617157430589504922297035038724463325150779100887571384005348536832501885358164955302138333621597380012144973460997502359910008442319802560179453390646164342621599645823517926523784204204740702569978676911036966153752107807382602574723882444597753988403993606528004009795347194247342381013884803365339069741050402220469692939521995394484213720719933297100539300631328471546466873488379605598806567902137463156638040732840288053629696662782774409159520635274624461788595530061227721295364788853506220728638632563738580095625959284450984663789657353758913246019143983420782095005056880589522574500405294312258807521868008335610992681695766675742353176398752591815365819484224629198198243375492607919032370914649380132296842654874294792086360759819990475434425231565932050494780400456372278198616018659766761940802116321468085923733192395374969482365468224226373672644611130276487995068726448302416077225123192450515503368936231819282077043483836138572735214269408449242906104657647313261698317467103483858203654636250705858446834901247532792094936815486522048497926475616756097036599212840005466274893756128004711822536681621916063365331520784078265846350809144302058264704261919151971769439672581179784808538018955506512742604397532073284911970031567672993707554255889853152294115425353813390496331276699168357163663724047984799370189197369404145170401032807571756942309114163773090410722786230966573693371079874686458536800300661787088991562048852090073298633353577478125505172399306564846904806544635903412164669475227236597700728535527301279570074501396344320737171894891619002633845355925608766120665424673100789254468662788670601072102115961840793337067419457786157811674722693911675109181867768742257174132603864107211009353465782637890390348536077413158456583537184036863652872188719555684444319522872557807730332133199233498388781029345791989585796244333914797521382094991582700867721808912397656820642442714745231623458605195519086173141002329925198440855720591076079216931905528759314130886809361427222621689763867319157123226910757916670119863802285164918179607899333958887681068802089144779841981514049724326293325727241001476894639820935813631672712453797985537494176827074008328005209290521652670585200710352304483224453655053437790279398229414938871357883339009039483634389423711640804777912386254983806526031871039236605308870447680389280731606333612346896311226021370218760050293598416111698731622656984351547590568671216436068422144469618313158285327926368713741359358426531277343211905376114523607213326836500034956697258885599107779672927115765078338945286256039825922960892606628611283740237785757967177194758636415788294280257100602437924759694957666722260743767117056133497195012571215483491920220911624522689395316626193795631043019379930608984805193453966908680725078819756508120849315026161006703553444442197460038789728026499406563544566584592482788426249980782592037040552198045549305194856146960166191751092039452208890773132602823360491181225484755694816817058062364477427811633724195929671214238218546511836402832290682965852165703215698455637619319560048080997158983106562129408763428577529109072134604480519763628859770623473265791466147234424957242287667891849125940298575645397607941000324267280316977478602361111159532286804516775989584185240702674297418509150973122045746942094214551602793491304314976018916257673599934071914485517583630155046104996618201074018139439593152078686139594585515089138196715208466129365540057828721572191491619290029449460475503341214028421645451098679632959399049298712111361986951161588757715076714195479053133875902201721484539723689474376806082489011375257872480405957446210142564525256602577243221853931780338447322646751223142319664830506268067031947943322661479631876369184641513334205440007691593567087756693555588387231149512067344078499953526930059803774832158522380502301029088679525112568815613615675110518546897762199774369943223909730341709770839458079231300808283423625463377534189815919571646595143617185666663869011789162369872904735190029998963171991889767182750239355013890236104815565595254029705431071702149619321650385652296015418978033018576422918739563902697835090971882044967178283323479475602539701802158956478082471928407768806014774455253164807068197368348096790621052395704187509729021267531396974769705014954777144524758101744139819968999046412389518731071307449183244962090723397221174188567332674119716781974230798814068317351129164889867840888784007272931594128057135499035870902043974927009049813243726093723292915885466862661075265459463541973478208876699654285828146926701087012985181986706688847166548029302163414330634968759480868355784044551629233620635991352170224527339882902977377645086991937146768287615500351646378594095276568881148759765195178341529812234937723207976676371195511874364753365700304726991511213235788061143938489141999049267684855692534234809266069705778500600914369292285197540994974199452452207302838113305874367718033213286421686498260864780892648725679079661446401965452353893997720548247307891879489805805984227117417747369892229203602471791367734850643206486261147463030854206414543712067806722040640474481479047034628340029989394075969247772304894941483413223579984886440280136941146386271706334506015850683901836499608997629332887302198232931720756457165712854172195116909930405104394625197145908930838171962103584809319146849493846025214580049793718804260745984944699308713149252448250665381653499476236796479314712390353713917673385621309555897908700780262213345515633608879895980087625338229348714641700589522569803393470651432410262679277442421430696006369239885495936424227132623842014613951422645934191545289388398973374629191968128979305979932861590131451725562249464362783848615397424805659991368623520474460310085145528634724224795093537447827198881129367750990309465742119206622207696880743939752314885806031087683633322330171284763317567410228796633499793091552474286377619432772875570974354113735988265979047454335653318792309765296919313477701113419528358607332071288832222183018404769582995396768357464958568897360203581669092228574551631222986453594746325295424498229376411856349743208616520529022606850431791831539185859171223916532483954404419787096867150671404268414240249982537730850657992409821254986104334908688064569717044413602503648601624540172550665383969469637308880514249701954995445163421642027386819727057113765615773233194688038936167001127884988124967906889504172300248485122901373730204508693434736466189235690829456281670352436790362769440851017710754911406046178024099309939869283672616085577796280797806779095426962660137278579273899041973038822675421199107226576863268529281178545285467285826195030372964371389126716396455896341205405745525478079163615242938317365809682176771538099689202307607226665513027707451244693254896178747127034202892113840012171518549670971201432942412855076917187796435756500946555543738368139142917516596933764655329369348543435221142449937275154145509357535160933914409353949523988950814246313748729425859214230263869151449146504518081246162433076397949267519636740251536579191725694803212830026297340848559377890794660129782701825600290655556728023432579082754605515144409051535484044390395189436283387110186727735001915181124757521728829796968618307242096162199417086018280629705020840545931526362026560386654447069837028065705889452169516624724289499266134442332803308731610098177352603496099208311851274785209530912322878730673623002148356147076592399577785265172395253597513422255468213989194068130041006228264225641946438549206681967318381754437719918634907624446326776202853436135075784617261384388632071698664158279588938136950137111262162439683221007150197002992090948058245075812620894457163444954514747687731670267384741011004036376378742773949281111398154006932827009356518087652294261116508988214669788601245649865534764482993996800578031277133521830521062554830370936470860348342184761518150385497549519158477969994023219836310156519288067693676155864573952557162642795849413459684421823240594274697785903277042280739284615806801093696216484219814971948513471923601201282199430583149741559043401704738807401770413517278932034982633270406082265332398026669501380601276191316768000437618688727213838796304029267676417267668511719075844355847921609525948366095661459984629543203472350585926954563251824928439755388241164407719159211152411971546379516823341430551744590450424037660422585624462091920066849683163952942864923780790320552733093974828261206459412112285340424296096873204763386410952917387303632751262439497594502660243170628808922562668082311718112490041154286011861761810357325899068699313120728949351954293783865415975042899912089726694461010417066986534739807654572564746433666129451289952068760630864622324789432277624920116825979926420007363076578811329275903407142601857804024951078073057634042320776206623514247820734459891263174087006731478621677518617204814066680752047807445437908243985600516262590707590461068007642153911229693702042713015480670758621182816272732560465557182927865407917323415600007080127358207728031226497016923133353369715615384048210633734423755894288735871332996243044860567887414604645239057566613676704107045062009589321558631456755422638083061974241650651013700145121789081988682494549777368754612419888847719812489308567872569314064316304076410543145878889648546474943113904844920010239712695990176819738322023385122011745282214376741489319836149410202432903613254446281053143257329656608921191235117571958373914129622616275486630714441165898646555498386640054118467716236350238204961709250063151652624140721377812135029942115347378529351745710620538308265477740806810603165966151865105687544993211880607575974943327473386856330722031469525977486650148212732950333070438121549614697137753797154416562350280365388135070173934140062726199432116535424680298981765428192488185858430782896570800901492558783149783116281976561622999333472491825414116765542504806542283723085935760460086119891612962446702175680144015785527100789517052196547984335292693493171696934939042212124081984542009599722186088641644750129288213842156339142353808244709514420084948041412393520861352505642134488825602888006878314196997365833408650516543923501928106242795776882542379230052445005423058586973118913379529624830318204588896501249247223848952355981282969659298988708030092275008628211635287666962218215614715794591572361264170486969553534736416621849776210655748604172953834517499595263237960891664098291309509592469850935223825353581300655800926824068217066680667248315655613833348857921341482266507194452817901787123846840435262522426177214355123368803302445345469413709730941195661681257049576421005616605461723477767320102785426966380219345895567919962917590242230712765014308961148591754926421577727404322403992939052590485966827368312912820174795454825358625256029076530148431409022290264762953049497611836507637854919520832513107308872177960472837976256272611367572093498373232874730566205229873841795884223429082987110352739586591925843189126636499215024148930983559433031380555191465646996720603704736591549907421938576193373201699796485468189549561727894349410469766829400025313097045844730121900683481511229253623687428339800129958837750432224424626198739412145978476125243441195426727314399857052348908653476854169610311660856287982180307302446413397262366921112611102974825276639881499343665466903021376786444335910085540792172681105988374760809537354555745779854196755191791302001403069932258598282637070237825952073603418219263037104808730128674247010036430469184100150284534071923706198238404852728090511010082525154356961005417703049639958917796690351280823739085649865184798207118386579067967555709803017423906279132590471871669387639273272147831098270852065650044825560023352327510992398062290076686752773025258203907600040653891996002506533719383384895687953286728431868422373262033560093547615090946945396254337699809101649982980476238937880976879681690256280936381842985233935555991562151416995058679428500628827733915326105130179832964196064542400960894686610429596145488057601675443077712607914112190271817282459338252480947705386765599401840433086737238675405949601153297278327159158055360207635462863530150528745908871004919447614892101179483579680749495441022787354755179154399799456096434395854485323244337958951191219215699125600172156415822770216869691756079189831183878315571212480436941447245329101318960158870585773974425051834911427957492889017591967560194454339865129779086406009644329252305799743664062894512191653146583585114478962425120309667216353880872208772323265390689629131550825732130405575814989827357980646020390490128275157886674762230893833865258926179452725803622277155480540632914813412784004957936388906594904942136456368299683064485478327359289659115630300264308489991984944269362191857066113474077546011413439498564595056950231270839433048671769803262804400241055143719581202520713677345287673392735036220737027820473918348238548053035646153171008504068145003772814823089336325417682369789309032977736372222159007179980747992176964612179935410754236244597034744497690702577142691071530591801156082982436987634802048252172258301090925153578710923851503880359085495404739256551412191599764420596606736902251212220804676634650154370460700792357677500717519015394978784956193798637617267804257106945321410015728307660879941542148958012233206673118352636827305275316991867350386276575632822607517052654319728277866453338184832212482616144574125540384167411257742381181770329635783757686027940657656220758721380471935632273193901184965510052185666440926306622544626190535521526956789117906588546868694365519336898023902786140186712830141637300082756403676821912281690685694246896003789539928690100103968048243209496082395597467914167408050921160166247885782950067125315838330473613365499176817301329363035634911175453207469806224767449164704383486611025496917111654250502078956483646650925194965062477401665988338975600451534963365104527563450265940295224447602016215979191289549879411582317653674345744023811487507104763411767331989776606199334532878102751437071194698168961464890361337178123528113383400980600828008238904974733660917451339151568429894403517715601660598178576270768535736458862531294155257728304959081415064402210201420232424963162907277415680877106859298854599473122672984521715300173410900223219672203599577832136833319625648030432356316310153355578919557006525433591776707418732821353871716113000207490018588389758410631116444412858055818810029646609083621534064612942572085041917716573209920577732275597464411682549710635115974348818077434177923906500248450702000661634442839943564827970582432363121856279501496086963004891675413921924610111214961829854300293804868473557079080221454355973693357720327615368729202921098574093682973829812279403726657478392126778052942543081694711479317503397948432525352445158924699519115227408122501087216837676544863369853021112846181251540619444868095393437014839632793620386264578727815069256080766543362657797183358946001450144935315964809136651999035914749427528426484416467791612074845563778871004920536276601061367709282898228311209067696697274232312001133766620477920466109161669667652717478031358573987087944787995606481148402362988104415250248979224926090676348428202656166403735668988496626138513596740101452830930011703610354406518702640486410684100548069969694880452460396544907839811855865803986890103593017259428200800558371769504623701589381915755974973136908350101353357737693064268673019444354871343163196200169706948510649315770176759480858559757999223371342562425518591996608520661002450083137196580148554855487568565541728845249373523176324494539496271726862470652706588421835890594008727482043599263914562178676675045303445355099084076207737998743378195546233131948782943652489275093634810876352070546294901757113184951994052603274386138906606197301798791559956013954090806916255947102740323610608983972642179679867903564017196897784323609134162801391202573884594692523838311819141438324559370092786445269810174610872938763373889499986578211381478636827353718480661021112882324941110715412851939715087356160054429720773579812720946299831578677931868102659811597828924083160703207813561649366350467027852299704884026072997974290347970856146827131475817963441376333837679645686362711139918395396630073338636497022649007019283685700794542508536447560957399948066185170553330591753281738102965819574878680634816199563492643878597728286896212305458793680905460017566087239728071333419510895187445199836417048559126026136589577895363471361624475709721158160595085727211602445723656711846529176654304393591267150266273114886070968956846838903244843456983896252646573093028542226615027796981142696744955203996762159065626802433240498468846943684746502164617152732321699414834622728435463465540478979451881755262679318475613056764401822614657942994660838432140816273412831023321423235727932012670461413012395867093279721994452890838916039373083601833166035333596327006050805204300652211783057345997737543174394222437899334981297146184072282831443501885207731710842599586081216367834034693905377481008742492869154116043225360967248159274432600271218691444090698812603644102445036171937591137083327328330395295393588066962125564111199285082411242054368421708511484816059991573976833198111886356893825962827022623170941013046132994584942292247836403046704658999706029630362006988944596930868648620239048488469303196565107572291599830523629810694281264016051208488542454230466830565294855391676577520670741246010825432514643027854248365496447770966759366976417762367734386886126274431252743990591161135929577686825884958078829763412792662105671380181730607059425543613959078199257048130736616225134331376842589720996090625979829681921858832487746242166132668066543775765221111443420465621578730934890152148965873547679816287274688997026983315042712107961774124648072659642711245274307703720279199506285745316024573831981014428599574333633908928866558790517570039589080927172875974465678880201852544707791904859643157959515889395794507683134408877545937546914534648265762034979156429109696431378708022793451562991600858502150910051153894935516126586900430987143834135690967495973957645645055627284187790716658342919188124071860160393665829672330586599637765362012105059195117390141947921872791036844010657604843334077953265395620223273020701813430757205417919880530585021700620975589293128306966047746471353566752236669350077878022562353596028399555612281153796178710253091882909297228513775149811855837577783194847302225334513713907889372006047383879608267424282886011536314845279235377906035344832200813268774148587128338993025187588626277554669198905738361179057653438735934559080872430064757030759045088760769258878073663753566298710293899644673843829631625022208912944036361665487312683668784198858924208226666124699200113262305323068671309995901092541749033884014022392292099606500492856711548694917720456516454444667320476080598336945104894928238995761944561858700631518418339541958007727983797307287893038590463854215788893841573667715811673987257758360638571092116825445550404893206782700251040286126620428729025307156124576278735339168306673148832028025551036675906653950296653379516846338466035921652863146623514416732779810568801541997642774401814475299919949839317382822429749462876403902734881821411264093992107978086032901345722579103575032062329237915420509074955415080549239870974907850669285204283117637571120841992855022243076254449644785331143871992998818414925496614676949704226265963159722567277925842225261995306250786389029969761427937407519129251753372737615557975453074301157910644913490993680409786761234774006802915806379068584799969919061913870842927162587136979187131728022668348535477802114148900503442658567167447523839497085930352205781648450098646887327627131923207771258916893369871572775371784231000333512870723098510121162990285880259073620899681342806191872338116388254257312614997047676607864687849954083810485620399569065643090817824508211879120851303645937193937851943002776865023131382572849082259635042119531883221745814576516789389322658111460320001486033405421466736306839043775520360770272500846624257634371204902796941769325154352118397873426325434912846758695608231148573471338015269450236137357138553116138469675026298221418619165580431041507183252868719489806423680030244021379917324815786127581118791009198882317825191662068182984159006563718551119656844837502590569819244019333942034530353854418001773091854884328933431729548999943966193876649241920990459449282516715195167451052498169985741089339838383465421226538083154678505984147875486010292111857540344607353785167222763601071057231871519108288163754550472587921326892567078490718376294706220478355657395264817401888973182497274399953455359497812888078676406394300640825612609676673608695197636396479066159220321155797936527538984224044304432146813634929619953508619200744078412911306801396797306283555462454444145409774232270598232350442624322125976918906331560179546825213696421058993004422926635389299892998548312482862487474078804175196450917322787642924464884303636978203742545322823483324865515092173294683183699010259044585856569048060496757215212308076668545660176336937854153078492356775709429770569982889603628014856343401297225793103244184149608743429333349996064571231015797433174847926275337600774867838914839799778228891491319409681978598172457896389855662372696729292809947591097701782947611420403872367087631349899283016376388706074668004593114752646055938013768944473024901198999358304952467512455978719911676133018819824795893351971257311835924370156560317573809566736523119798694123167561463249447955402986174618214495371577093662807380201114019346761450471355715203178539801428358427937622195821304446371574118881866165400546409378343046639597930281074132547917586597530664313231876573761354632034915769188423705846460755126763372594470989800325415977127315705170462616928016769476703075193037938035271614302305698612982535883905736045172929117928126753276816744387565429482402117012046085215711478197697882266848774996098214175848907706537293439692064359023280813200470226871829248576962096411843492608121590759816681397423212203833050259349469680731648489577244980154076334173037067147367913911944014075600925487676380447578551761748024265124485624997091167244887304180371358018648262767229377026796645064141398755117381879324812466247943891132410753611827728332687701774951608127137332672111131756084278822988997514862073074314484179599680912385313355934601656571264323709734554811228175148495978031025258650651027286853175843466425756072167081427638983044303707726358228600074418249603005257948861615829551884869556367339564263121775746181362064473677891271847368353064742178559649033871226863300462304557097126692252609686378909978417159922287229903190389640902436853180474258198043884898161993422330223458328943594303635174112243662241384470841253245166794855138995713918859385151261875540571207204194253478737575562533839777548167269734744751868729823442209350159175011118808018315841541641696786420020285759231661938902176383441559132125270611156571484290116988783967454186700285092956655969489366461846107656343576536348207840437540015022600748468721850123263903461871187136139052224751310484985017458585612261626924286377744310826956192625117104434486964153634425000257659248815135175491911041342641445818590682365970759420788603713182463380873452740192029192340057360010009841577978683615902259721824078440909607349710842027441027749699722710394412339013872858235409141939380144310805174171623505723441577580476614724514077166637223097195461083521238074496372129970534269613549459387286852340074755568185321616942018302540415052495980460842683830893231153935344098593866768432049577666975875400004132628030533434762056127557152638533059014958197158072777227312236954826735305297091973536618398896849300290894278881296716116217563826044659324662598175996471297655540014145276206273810545538732420263274009183615479409341227881484761977212901711988865477547914475748590114954690680801352073618023926287275606504199680224738832559800545681523324796340505130018469375418460977108305852752617791476260186483929381703823175623932324487647938917432880684411538833141869321403889923019794704621167023841040134647039216593307420795485183571832613131496451827221020018489193616380793443379316989191455824306681694234073479226172305118090471508280366327261977183967806138325940720649125617695951742734764286870512440284960312099646184564311175308046773071900207582065490811710318013564573927207776227081373865723260682374009705282012857732084088459786110913621936171122239945843678461928722391495992329005972779500331973431401901151577811662663701700871137805964706241354863749880789159556191599326319369158540416338193365363678403188542109143082654739668513268382468295617996443078856882914900373137306350715891564580326663354066153847290503166429015942710092328903199109936968150777450403217958986290039190981393784345435479162303183758173682172051175665170722998495927044463822017229842276205971901764339961990761811674014927516520158170335055849239089019930639757288541467130159540359978489182879655759339519215476100222955070986100031555676950483115181710050783231227789000801214882360854307405393942246394757307883382401745099307002822154352050316694142458746306631910761594749853170276536972815144813131360310183761418107894181018134220856381093797415009188602318633777169413645664270995198673784353139342544817095494215380286914937132485147147744765901984924825531344377210560813836390284541990091343005837381918893303845924657199987041438470459075948407205752940335531400412250834662550727345758381640912170186185380067192196123987549326067113746124923825200395483926825208748491657790656636300191021203184850380406433137170423293175187811935317321003410836376066528487832405499769140742378060226011709864273619639839961798702158940939477226693893604695533803859570477775357377117814888993696538166840923721488843239133909433482153349344306795941406531142005828829476768413596880837235096828579406051167083527644081053178589617783652643281999295078371530503961037032115177746224557006526160873935529314923868641063588490927435564728715535650172862002812097010212402144801101748238564887607439906248771119369653296735843244270695762006400403759766891334559773437452080228985393081954283366499183714629747483879774742291706956977099938155737493901640242267242799732181583517756375221800745571495037232480517053898307789533197286311371484883580366698241092034900088888448442694690235142291215446462299088821025507851355708068390481877419322366645928072843128454110408768651475124571276577965913321655617482691924589583313719303819865364459158271874316461162583268133887882037054683540830695091817078903664312532383999088336746815300574403748571831848243970202894850922998232435747632467358025206568145841637467577890511720136137269776437231209733430935593099637553818508876684248705996241340634502900901314638885234967388180316861729576684198071738382231485894723034546869333375435094116071582079480218171252611044513114592232484122330881212872660327119783344328683486077426673529092256284266530256585264643686769767545936982218075509861570345761174433862614517262323174588941146986174382013890824794502590735462322754519961578423554585243240536094395793554845075958975758806261192167541651559361441270181554667367633415979272034025836161759265595725134268412277338696634028187813427824415301481605046996902321395237115195478210486273697344225217797146852544944466888795475389307097481132246535429326675826815891629177145563895043791249928864095310071799740565324904223222154005759431060400698093663956367276688097042210803861905687127110532214838939510436318660571894283156266653437307643833388445521087720195485344919989214176857658918585392494589916877703945724195271938607118708459267811715124722584258124968322837733331407405667054444490447165440941001919729922945915925161445443462502535742169141113795977815820000566032605706162363167555437460196718392394298166837145322676775776898568437473449269301241785683071879227263615130247465564183431334423201604532831372997611877403269566499891418572814239392592535134907950859175661107561162925116937373780335565956884907180531250577705175549931606676960529965560756724186473489540021624238050161829788520413297777588756825826328729708803668469617286000542153110454702804834041232941887260418910748589911898980077548755253153651989821973225321662390874023308047939258783181007719032181432059132703819948658995659636945910436562898049538235323767716288408343914413522755353533237133240408279914333170888866368973056241894219875291003830783251370088019511752505296752862847567170896681828230050838525079136557152726280966195493312015455799758410368439519812642797463979719879124686008601201272588129540318556212090235467728692888171812978773693505669897538077284987588387640859069670563994359689337621040870675324059543217211340671114567058179623767479104815665901779132894421069910865451046092986717163085363522187361708913293876765876902061273581601406965778272248273779305365583532606763344722006670535591652993653448418019394265061971540467768910281050580499956282611527351340933293255204828654293392667544355114729604027037218517253387258867792867331363640108797485160444678630820072209848091313821593379416388922472305123664165955510520941899393830740627863011533901104185505079725433659752582810132467932052185161013029380631956911715357077540158297886441385865352235311844062962326751781708210332971044611121894746848398371509206461478389383595573613619108686178169806045628684512266331290747823487051937718438854498979412987904218477007932841898724968142647473151393437982952506179163806006310439715913551615623201173699382589804566999708301500339437661516426114745933810443789948508552365614691780039483274919585294756037994328196802578776176610248048927540309585031582160386334995294917522443403326501538936486038441613105382442136978901216225207570018482464227287230880242685283648413125221890921621245972406790750715113979092949325268498509712773519709869819714888374157161460262472459804510137917802124063715625857516006707810693533121166332381726601480093870173942632296707431165988549529508794039553124994643082476814452112201791667804821250344851213514959943796111535793309601085662588797242902348486816625483433525715141233790787415506989991721746314986706373989371522101764410999069765294671801743776673049988919205451240120152397194886522641239612696926925600503347854762969299895665018707357710308305979527211334857055086057264865257343400877493082617617157176114131237623943848129140006062565723755833466613384746441716747847874818817924004263273470324888476285408601973046180598193095719764759811302701327747542809197334146086668632876810930069275516358102025133917040096732725556628508186048178068734631003198420126929111179562776734614171586979537819150149600937513171635993470199295779036800790030827061186772963335125069307599789368427662683043759262869885054657534170495723201141675212932116206656851956917437759873142903652779406680999612172034493926144632853900473890663883661897878868125341578512188926839714565538485387242050716646352823633936522273407586369782986431309599310897471578723260783795916286371167123335531283486956636908154599328061232577015880220447815810183861005684433120024180586660984444508476849384023630866716527498940075449653717419627592128476541167803406450749453272895012431650871081192031720401866049244918588988744026595049494258939657365241133839662791352749196880760910419153110308014286152348729103381061479620993721680273638425470833283056198315790690949311224927638358433966370871895675438311528767454297085868283517465503598346858062731917845843512337465024748479586136908372573261256351302066780605401542376715059786165053917634016812085326931074283334587598857474948206993812820270915927568970688683396216693627952927504977834585276080665767189815438740930319779199504279419590186131990222874484633042103377759223751920252549222861062889760503036658693663737573428662507431142237686465241841310120140284866755704948995760209633039965009694258202068547205809513932897377296545569614108522313682879109548422932270679972003091569963021809063999003727958117480597803466543851073266603056454266027153718030072552776843168616184985130154351116651479329787077416411221994409138775449457874213337656056089497264098467969887423452515813463529397858823854638487602656106866682199580706884034604573814489524444093327578241201279161220368083909018892354979046366232973749150007110508416233182077345001952216746099848410069964855976954194393084801133357666082590942400116572121670521312631519434014586504835512582341980688159493419335979062150784684375367810123497988071390500579386889075332007500651152881485302418091698587971695063179064221792625967616803964906268448948445479929510000195306037734982938893343332582996189589075243809544996621507927030603640637738219288435328380313796018013034654947112823845643783424001310531542132959116728460482060134865426035545090332537127061302929978280266479214889156012926162154326216199013592719640418871268832800340270247023901767435411021854779883650824891235673633781917151417584338265121829063880420408701974593086289901476940662017410662436580864396018333853207083078566618996814945532198697848161020356302223153317098137947833822836103213063706597384616142158495733096574857071129624855232047507150467335140300761169021385467594510627880061657450640313294395441103093584729301902679334349753346049439505194784683867224528043204904399144077998037704984633980757422654468150738819579184828834726975027526274557586993239245661114744030928240158669473348963379478332383100229054886043901931126870560074882990814920833190023394186014764408828508819117080813045385467409834198730731855373274088850163288138180751958605140509168679828088991743440513172694594351532712551035240504176145830588417533048978913292268936110869893269402992089685825790945018213914025750553097786594237766728729089679930258597026279271819034307524292156607508353492371277626281777760715581744194257606926356489180987771146317428683322469449497679983795719912844364413258161695057025178839383981120812645590650003327852536363236833258584719643954781636795222533289712869521002128512294733235520151379437821128494896001133335848989623632916487959653343755566750319449834501533481014723300478518420308330776968979210935101669393787469731640060784739078957910481860153771117672555341802477932395911228720867514911573410832571582880711699754938420900996608513906289202238084391622551814964400392400129323529341481798023076425538658796727663061745268408853363094488154965472042887389474124979977088047566928622608825137651863945914104514660030589442412444311261484427751240993631658767757212518460018198238280994632323583669905049305470616782601263563650943981039368667312170006117046363677540731726574789477035123323046140045513983052123482789131743673284326204835182485468447473266665479443581676325734046161993644383354238216357731155987700059454694133915329210206476887968235003676564109801060522786210532057599833792738850979917652068980096965950636287807301199542737801407137576279472067697003267386979050441335364753157822950050761600918285546054233185252572432820014699048720241516349883275433137771866473325798993531155066831448866416491347201501762897168572824436808869667548511438888591826925584935361073278423969855797100405371628203657632723066439746087281328547527915054949136448152114508827081052956062200435760279973403307174148299662388048328718668489584262691669067631865916140024252471907135605275874005951099185507525216265850504816936186821054631772490592789760980424710692295480179169683931499290536223963365321579948743831031450133104841209046262755732529393077685141225679356567918272802393703779937598348061202520227138918424813687033034399098670778451038794468527548334807632181519225883106218960341284665527983473101400221986321575589600928941286050654970979552275303149582992213295234449601673395289045104655919976216757022145360890591472285782214756177174902393214910414704644147867915376347366756626547410978382675805061044862923828103926970749452849199377340116767010424015686041401688221872792943624079387770727997384143651360052705593255562251772739289600581165391610249781755247512376404800061031407008883605760652301511990991334659166153615653500702660136710849096274297257419482462318969329928527782843170444117234315416184554694436456953375850460524324037203636073225959119544071008541564760410453372654707829650523676042449240214902159905844595267726547911325786094961968890893064957566855108420403157901840222920624941997291648503115728629455532347343565535383189364300093181942979661869380589140432058592511253863770195521805733461761622619623018403441586456452250891328471423904670970256629489953817269546768151856632144194583399988042017306626211186663133650141284537235593776155757820323943303759710672753116252595752206145368739006648609343387900237666174571934748707822596539375667196639215266319002620083816676280148075193499093839168755709030419376990323109356069747379545923046823999145165958750689655634294218287668425042531031382042761047426932498841640525454976901069971891952987093459848786292506608360287203047409113997378731262901375586402652291934917092479275540445525923152074241602256179479777306742220567672613418173625198463389322073381494119079396318882134876738232644649213260022755884750115944913030194292153272126364616552459070886033260023268029401811504358469926891087459915113305225909705592009379605008527127111026488970225553661293293024587849178387402646675168262093486422536389159622210260600840564023585239938144427605741129360126982948318432631914564123591481283779709545138441112302681253647379163448378303542009165038790354112853650256313400370021953461811456499069648097124186911120570040760418450864072114919795826398449626818158038443078268040223110237486068904832786600140342295316399002189726692935890835238177649922509107288450758911016180161867254564175230925839733789301307922484626320587710657962991254290439432690947045901420435630858093650789002548985392498407293695854827072247381022414592018409282902400518682780147579850401652461116748934654245382258826155546324889330980359228831593234336669417853714382171787823099892471014732904687280096518029693783411683145720594053896217154945050806707443763578809964786806500585182395106982133211611408858398359872504713559698321546627620317191133141020289342882218075992066476427789948960140660329591624286453223768026248486037829103683287420298039139926869631165314007562869201658712716744887320321009831163851525888037298710186180816849656972821381859979713395372914470630344667721080642443367522733454312341918962014385904109899817662510220338641580846075242033116985700128982176975478062091535113400027402986689429480475630009270476068754466330229154446062923578233415023811374225010620977197431132493027345292765414402049649788776254230323219599173817318497716536001094939164816383898034410540709071697503362462274361807542628274853615846246566615512644187710920661996480110032079980863639056317491852331116367167565453687183552166836484218418234656465262707125658931605799533034841951718353609085469783984363244305512753085442174259687387923944188277028183222739801927144927360985515912631268291109929048834512987475320704338853089176821049337980547890010073972544284874881538339439370539824338375720935492006443932064742878037167067271188501717108823861340641128963801042428250852800836788020521673963668962441219580149704569344167082688871694747823333225624722673207153896133900537303748630743734644968189378751015411860342635124292521044709505426383599843061159313529873603992068296887943865791360497658728473015744099072791086923869634474624374315368838775696956573288666645415001905260218577658094009576766882782473798398501416882946748307772059062129387641044765384451902823264247012267950391008912051525619594359614483884830129610520363843442208824826719465515877200257978277369931444679269037851147239150033371758874810902109926255073976934457650743475439808662543559717172502883899464888553449650673574984872253487550827990003689363810980787941952224984629458126618198996988912666597751303972635993389649901614752233165298996830056068447353547193231128008384469094313500196428536535831659354561354352172838856986162516641899145804280105492700266428339018604945568069303058317403452826315073572653584604825363546349492578362302634920920633613256321749652956358730897113427879726608196519892007316101710540424139276789310480360273473238496764837525089276263749024008233372001619199363833263216638838437558583238664450870079795560581116618823818728786598643532746182380753943096373412305014955208861605481136301185851588211805772029220492934752210681508105932930112318251010814285740739374317806495951960233940087532306950516136425959272608334319007745594536197532363493188878567137734618240627811307945181742976916116084595753883797489741477960551188990992671999395712213034226247427184866551919662300479885407826102145131072074380569552386424432864502485499033051682413770209162641409005039150743073988238196853397724967573465399457130379659685558025732028344207321308620914399902612171305750421977121858356863118191114930031485663993612508395772162320146856350525206013895703248176443482444478341352816668486017660585682249722247058141012278097360359186030646763731556771218732521927169564486550217460347044729831337086867631038464510301761551837611225812101170255687096288901954015768858459640137708428896170728274723774931399640758331464320981442463914243355210288484009139547260412667780795778086515600246392725757701256445945877050816408478883013103907618743931971593225406405107663458513638205388744946103879034058092791592567206647472738151679040043486985973219779219274708722458738901762094750005487443564954213911709071878273993837511994467666660834931027107361575700485844255676272192936905817650725184141943618048545652771986829175168313699898186681876593650708591658326145703771563013405386451226285669228715129668583502047606776369401807945843429658186083562448377839987260686572115684085411456112073068801068830307447239377810584877864473179095819112130556800212671713639395129372749428236644610464706326552226423678211991538372706083384573605066144983320701397711993232453504114044790564191765295868297407021348566002328466959586502475163755699918530780963295623297783730467824811942264508784188092800453698094913463051256969241427418780404463999264774370493595720413497450332314372446046026887101067922025508537630428944448125392989717945511826488553298507385617629808546983110189388193763481188843320360520559700057111044418602002539006905374707802011716637664993359722293193473005681448164179169384587560560663978722115822876603675437609096884609466216152491670701492226523659256667508248863549091524321949915549441103035092165908669944713118603803061612649444372203924814614918023385861391916055328013661215627568226768912812543100955673819628595002296502056429616959136106474430577930502524183106976425156959475926370373269669459086065618506071806684485482151199924775714122993691684774568655099113836827054856043773762122539743557981593924721315787772738455991201310765687473810594789227293726693176290713760321225620852444041580650157809649823380317338352686073582829234883511336934977063953735124703627196528469723144809537107596896127153785069795604236978285754931177027903140081000301134850672064612344840771327638780185112502410614741797704113482286358836252609181899461810958791498523133270735227186236460614033538617399514781196160439922319944051807211631739345021161266989875015545459468332588210580162097022492613924152771931281163967552549885608215583299138929874769221477988172258325053253057326509452464400468834278486082806396056315516282316252791538122213653289238073611395832158639578788884950942610210048840014169600959482744831979224509786172117924673659138261922549408351278885225257484167461806531299390666700690990023405754738299859176809918345029744082436170095591037613495341662735131137287651538762366161684210195589095706851682872348117160642830007704004432225776609215141875241978368755428885820460733587523562758926369768134692677915502417684763514301078244877418678015306677000692839985151912016150765778705291946352357696975132472261236635350778603741504441264348717045540382653378961418359533562473942592591236361189719636415263929642569234711327975230837935368950877590652708418888183088290995422665263452629622080838153131984829248549294930056678138486256059237085622446957726677560852382106164027817643456679717065805339145916988540756096885923036977333332825856098668012974225895462969948810926200601911063192262333365348967314678161510605966669118183980046036928783841764076072504771155678261393759110392248605475203682257345936315603892798425448311693662024214618908128241159122585236169508677749969477376091441093604625094363134710387375643137975273743222057581523302516650028804844019282831459761099189868498475550937709121516039998006170458807090791449350982028612391854480031923452338008020078931666476038432769811879229798793276248239516632689679391433077355100844528741522790440275723268282528606865907388694582786518219668330993520446359102856878936722011256239646829480025889445059318959073990722003559680493006080866421674360096170598189354205012554528360770784200580264163368482685186747363637066261025957053238712784640153795121836799390106408672350601269964526372479617552668353022234790558999028110865354303546992567842720372281061860519643915187303178249129314985999460329542150826267997521159540226491827113351357985612766039894040696592995120297365897774413156388091185054892189873182757629617146815710081365275010384973066805110126307860250532388020160373932158273463734571336339686479229067520940038458684737708077369620927253284412878551663425138851162876777757272384517226062917937368844849183559310631490881418194208967041988055995048592035814421375112016236106846174277349810199428884418964511193419221435502891340776911839586043346492563747197464729503183839615554222111982436621615048633235793381951427132829740847590397648766859900465479236730256612275723132033834924354045229637181403650652764322632805269681583490121167341040671664861542244594574558331037642590499117438019288331720107694441065136206881340981352470620335268372118655501001963854320672721082740980661569218013007007573390141112005154347022436305628155738954425348605866378260931146416538363551322275619354854339394960824211409463436140684434822126772071328333629896335669308789670060482801363946961307346936666147200098250491095993171671760557997126359623710307028241652094311282985240698603271103400780747004761160411302066999126295740728831875881515442038217338403800335244947264918849100647558784579315910837295427668485806755420463862207695618726093137201990584126144174166089934672875827290182977903251603634674301754591254740373458299798420886157147434595933276449738375690657134262836758604628760324830909071584774165790979426585257068102353645684506376178920070479396307181455485152888063856989209688929205389617192026555291684866937123311715524499210316145015479106496010556904926964192651943067401305962716114507840056212689501733967090712709554224192345821905556024511138242757128432764247844241436391643853342268788946324039123901530933753677904070595279075906094123705364090191807144779778594966232451575875751844582440785123289049444275734587845450002435298756118139171540485812312695202580332436502826815662588091902228842409488393111972079156933506000266120735749424407585323064880106793902983131052684367792079510744004043949974525490428083295915155029665886674457234221728623929134250756575772605967437229665177700487321694827557131642959935051440173219869170900732907447442618824979968221817427264513838306487909613150125931072092832367761106700972069100042609308202267674693350700050639170246927106939932059427508584597913980262903863878105244890133335767843117594944644946111381923521873328524603275983303163564044414768289587681329823349212370022359007053000344308169093303063583343658469128953391447057286070614506334662072151944019207320059663481413648641631677932379581613036993342459118653957343512488270985494142600985273732111353059500534680788142581418470070146177940491876519610062383055974921044920137558525551193033870213257228224608190531705404640333825649058687904514505871431284665569587923265057616193962205286453558405638504081526543063283951774234660615642925491241103431959889071498653753461092443397559633768493850009551365866378370739486223105128344107851011701680913968170609246356837279128307294523260104913413740250266876329702614935341759059575153626034978577585601780831305145961912316937974175984802234049636506195777066285219179558381020408681554492396902658047915216807087792036248032268440973078688326199767912155549193431237396480112039154934123230438146826671649778936036577581179900040704476511584109775258951146707500106596851119909384576642387859910166053177733745721231630787850155825888658525920073031572260446992876115987839285843436106789339373224328991836764372447781043619805343200943629034751268348209694389072274158064994106183329540021396915745141271889147784080959173309632889858414358484368763371263011081670450952658174332589967904414826458033727843947133166345479993618945164110295744041218320843402360943988815478891742361402415451255156514805134661134603225939250672219048262759099339818735180107658149275362377170855590181040354574681028459738793582524205596985606961078156962104552956494800411256952526305082887064571793432494174070916857937097154608232396642013634334389747050541337767404611074391215596144190580702240423553692533323965056839257967284711958161234703066239564230244262663194065452557441200354943940990649543937148418807206391742926361378036352064145031874593396789373329103908611659638850935811167875351856135976712574754096882888012772898081839869517523696966843031516714697196183301295587234087639935825789077851291646686689101260240465261252651114468507455616572658076176200325892884442808542008068505260604449841311557663692714037204831111445630914194789393017607342380216237719505056549496147474488916297103100045713172907840825232973583277936246577432280811925974193869781230578373923127097823012605150507665778937434307432042117975438819936389088388058209882368076697030334381848143182147448179224669476357902625129492862493063480012120269215178511385785453230282133806046690741805391191390021216256267199215262404884194227592124180104428318383973181937681694574600557741190442378591937752573016748117649185422148666564243977336082816923606379664202086677494468121980772088332647204088085648458077800730365534628228726726674161084284516733445191844665523484380324954499049287971679575824187027239738853847872904305555931996469921287116082496943864284915548871035935565532709821283751009825023983112013419159078423786061725140703051705054735499368780286526741248347688612900813338088424419775245841001833597484460069674202468712265871901538901869014135356510554026816643311147885015521837563702387769679320618682813414106412605560562242200757390123947236740665182319334797962486975125360863217181511125890659771194749448684787767893057193458664723344592584571113688834726886367214962202110675512320399546358653514735363523522918360201863222956699380552651118912494867251381314948000229686741964722611833635603091100356098153174724684855510067617252409697816842550297703104989372432223909094583980979885007879500817227921640052739943964353456959888150823439410959205280436914603335745728156788465639584362661052770680486525043169480118045527746101756538302061389472901161451195298699388598425781971453866842043662796429407487945388864458469805491351518832842555773433082692415782582219748950192388954062954018418420509535750233782919501687918947103423214490672337182230425185025518208275776991809179287901276934296600525279739740187038571979667709038458512537882171473072310457785415659357630440376085926822113296822929024878126825163332691604225730381042715664940766900142756431689173013292418403538593599564716115706553710609170855382102451178114430877098146708993828435519296737002243492487560443338071137214166121222813253099289124607729299078640153702220935423592920955393426068657201033537988898250484250312282364755364836197381980698949879530306479013312376327688106016982767588114359141091500057732347396454677140227528808664109666928869080245193576446082305404965391374100883864751630167685519131558679098288677603389098128294760312479689034794253176602989502482434652639478915455213667639975859594168393953134003512313467162628348695804989686211747819213865242475304792810869838852965712213285252423624314391339778715401563439734492813898472195436910364365176889795718632846254851257889954159759784382140263346713353107016348445303889238598154649055936805784366471883646147971494343035379924051141844221924773180255822752001276759149973633971350988431866859852884359790721054858481721718899632358078871223994164243138872288196190145639073098369606343880482222400208372360900902881483241106728220174016518627712956471555237528474594268251401419581244143519280681254849280567024214627569408418935825098161835468567665773292011786819325681479530518807130397035135823786559511567646715433856373991275120601403827022042487557249801121687934910183518205236166262988947800100962882767702704337164748283782606483028682504110778267297958974109678319549216361470539986228346616499413779605574054904591727346066387632912384451885506992722855300677815407157856236519341992361988759029192397665976993403582741509139147816750228218960988234189923508476608809140384932888944073195471846094565322106668665487403024592660706711550312257779304141216313080792221572453179582593423326540151222813705888386512983200328459162939315744528878818134418177272305686299424588466092747049290367765952666539469570818590136442426321739905463467746822411651254775954932782008129634377960313989521249189968208275017831037795998078447390436813034191945586187384359721884059924440688909316379287209613088127444670523248945911924748381568584198570541781010582481016377840458922359385182504932798831635806052239876249579039724306679658046729554936658141961649254294175934991165759896890129200162684696035020388487893287798721064894129833758493060420418259068279870432580280033891089228720693832365395575818152948403427997679728929039775528389721939794686738577470745509654667315015453278013762382968036831673537147950001990357179080327740575831825438310877249487951632390144071983489719032419729792056804877361977796574660677736541876778082784426460389554139852921590451457887484335003143831356788344494487498246815471221734667696405167321990373115709433828754687027888505021943807089254072087568814193092728411434178612966353866071655813754833878680103072392292212953685928342167246872740613144673820339040060967337014261239165811835878883145331860146219511389775738012081877432282641471386985456544133769113182553390158490431749461975080808916365332215658654110635974541834509747254116921698964446382886756375082238905246987734786025567912010879817783550136765540587566422326934997159717792716657511417285581898018277268440252218627425320773759078525704090720070173126196042836368735300741162784334344780149897043005070954491717993910194587127994616200228070866777649522167819824708551230226182537221700324656444654736273428068542961214119902899855284680064050681507171075184076533122772199768426026348206815723742415654187654571983780167412622220983103552165094930662860296323360572476755231061897955582437157250623537820923682174946936845789577225782849708067425919659282301848148889945919358779763204031889719697662939280560588045460201709128579245869214497183930422523374186543742098531030130323847680554936034632422421519164344517311419992831294661124530804472931901000062555901959790421708788021827642572379747531032326968254597168120945607811663841532981121559464250777061039630386725649753949733199408885842789288677152962692541377432036649415031295546504418221060242200315454120913675118932830632148240262091513559362463804674095730081003624395465056484273672267245890011842541656341568467275654320417957614206574681005250013758275319441349666361779858998408403208707864006958729030107429165765400319990445472662098518675233477313997503309494923413074191395894714202183134031611257449064937826702373147979920695128227720601195726189089582897892144014015277216666990367870351892256100940519794942335931962419577378643959393041705785406967203182788628334942219322851067362336637964861975863601660783512780500035108181589376394920396430122734163736375912304984007612869517798970789142170472766062410341295496441300632622161772149568807373650709747213431085314430188664137971024571652961556672852096347616343249697711708218251712213087335530192301520432803959119165890858693353659325346720961696680706981468344995131192302587119228653926944015114248224074823941561117225318495204159146199473889696966996106496189077600188123570356409673137096760056700938000674733435604385768574648907602865469342818552767754453922791528829267951474309498354447490617500151021800929237343530319996536221594265984435958592247089663658736974980690648287459587031321631277011862705568129782012368404888593373842043416051600625567201414111601661396217940802222773609581591651237489419096993383952606765701174168794077353737391480539615577272484168192940707026221670677873343291340317342854711589269949330242706875659732703930829507662413620105005006847843199501422200737168672569284695607445972240711190576031410586716390601555556025058380063772806356321734290751424739031356579522084957629229404473365831279216887520496277582025304293461215036220091170498997730840434935961998256328234777345862980188857833801179197914415668995846199519477404558589662599049660145690307266859012788970340841048542488817774882900352211115204187766428357992099662904841063065942640701586839147077219237555825830423756707335755904027043639258023149731136723626844996854087727634921289359878913004298863768723119038524374888684440303320486517435660438435454369439247675391798917564401439042388597884729605436338911117469757090338488529627432543404610854724218745265025196382855267944222351883689240465313365873172454356034528704927958200669008724645161572498933485766982390933728747895678429155318234220900031593414910638973661079853107128079017099608673637238457393806615080870182162728761513200970897189293142239852423713902970396245796255156251969311303861560917193653639515168847198854350571197108260750917771568531758177777997807535863555378059347194007793454991234693813442784366543953050368381426795907415709357368424758289537954439048085877179943763848624957657954652301790683200837796504603692283078697437177497230859543261137174545930459958351908132539738869346009800691028188511796418133638287921310319463580320091818738845801872755081742785215618493134581301919687312647542370418810929923951723079601678544473190047427529055220008252198729539096745871444949487272082601452711224403193311379519681942327409327921926544517904593469603469848244945459804052710758261494197441783967722414167811796899864794556616479362726661073900484747433244056777132411402031466220017170902331577065700912102805868673103777564147918191723025706739757462054685129895414924452537050482669321064682566623859576989483243235710941409270344776741970850782981811837152601291963525215807910063499231924747439459098315952510234633467586817873435144987390587156766018260023944185115827220940146787105629291309257917411989156440037037489802860671285640962030715029364558417817437776766144534607345456834705579035105250939529791142428619299983780552872831406416896505748700056918463429148068173803119640635988452600068938590415131965987790948078889363516784788476791377448204233357039102665713882060564663977524476292872873774232436887087038546009965789602807047348372706480582329881790737006859438780328022494221495444051558714556035365445180186766642697534966553354375202333931579965012290322618427816840091509783903393337379161394676131964355358693620683775025357250839896192876500152599301406124542719925394978836562924680268067460798499657510237497594155427866342592379616487411283528644427522706060470734474909541799223575473415134808145743252667757961827701674876080343223889114381631104750423540789549062235245769486823421248123207682868773789516606649610748691031622262406716542716801198000627026510128668537711300514460860502740557683655310993134299591563427863267389723667299080019605903392666667831476983564475884378566401734525572755003792159223101587665251109893406022093950340764975214899176526001477017865782917616933908938293207003708666377102880750335160195735586376187549775782950411438684614124429615961808889274647159987073885049528110374877999805229001034436684351906680851821664752668017149607104715166139512913678566964304492550314891105463747201100919384787700274442394625882106818595078567616419088729830037678959155363925427332941018674024722041776627385527658696987436925284649696197353257178110113150924176193350650967844102534326497746584663516638080636468868993774466546074500896654547777604158949193514013563267665160720267702277224841960439962194449240930657214763614527303279386728481217401510654695067356823494665064903023675855909435412386062481236273187849132020245081779998835597199984555324101036618404497147071329300287681331701932781641752782821620443755844171738251626332287812722448752154715430844824285289764011381851112464987898588710310023096891720325654954754861709625543497595528255894248519301858322499039698974856526365925200015365716744543613678165695184603434181139360074168809497370008432519005502911763972076799822112961130494564824119887748386648747261447113249230844076665388582899458833371594826118009342881765949564425991956719639757334689213437368145264854845615047499869064601032903723031948665337472975782092626164077860787194765866572919380170474548771023348060873775338994737090599928275753196580019727928726219740629572285151661753776674459253519392033032930703771746349982166494405726160028981912490541182605080520704394546234246286563211829164026600926039783934375945665260564543934118681733066418923196761568597238999529772483150169905507810193833844372319274373687371799257975023536316212509456706173454622709725455867938497129124491177207425125151230850480623170146757325435074946043546573314770048287722122426714710106858902830717531275200047911715412732756494702298897519662221173798903087805027293552292305022095748771695604434484187826607287284124855182064866026785749971512192489367601423989004264072241682419415199371585429677501191896149885160482778182213840589615367190084126973833932324111427597810026993892860963506128936519550800700099351702883447476510156764175392196546930096161364280576553875156968295683384290331760228723093527278406216621730152468209162906371476066558923621844511952265760150663270621542175083764540519591397593102967250710685424386231527609280637486975432534792660534651832499653344566475269978427072527809425017178858500234748228325454845427343758814419496625221074981951538958716492660873948428001651935728797051623673984372395672124409380805774523812661571482768988232011414261479200929514841426673075700591270063194235760630687029823410294633494687894284967147732996474899831592069914782957743644740815728210355020756200280754749469301019040051356130547504067467493288493267962239403527355920584308949023785741426039394260898976375007247380827893487125353826680674274098867955433386391390104117318272726476491709153307020367081068406740350693868431391111457970916984972232836768354176428781356560809943999759750737338146124303969062422740261911419895474211816333123493780715726341150141425680737941318402600136320095616483542688676640338353658009153349799460922049995959802911050065142172491517010354187441948113276423064294529544967372915981800460262988190956886895630952842837505440483074241806983682391011303288897379642946503557562676769534423547409312830084126156773321018863604202671279427395378975828625253859278870849831197282009989301294889175096546045126288065641143338484559285869362110873987614126026127510448512366972122925502763982243120747990929242929333198012108502774551005696526008435265637928829950033460414525899283978541390486696831106149233954918711395754759665317884373782401706253782541200278189642107587209666260800538181670253783646348972117163470143341825503076783276495346017339182337274040735264618961610297056710855260318762347429137314833002937243415253235030378554775231674334333932967225128774254826142730816619803026500799661770485568473603978159147577582442512353593770244069274224997330231387096213490404069156239211405478786421158147502519913491263801225955829775109789427279140000100073806532602342187631637653237418954469514865192591229860604295590403021262742024747548604228297002035995179119919016392617577822924651525445485107857522117257827140566719669684490084974865858978061073053832742117624783729547864409088059095528523489949102862451534526409353069694818775071798583493063204086228288079608583421237826016768271399378152691089168274572266313267491155611203623547797190416108483546187052163921011067372529185871882420263886631930884979459011592602996100163699862307969701245231946893625796268247602509892162298202078703515681157571894530836990214670838650377989730048603327362670443264337946760683982809865849881215923535630515507465149853887943067326737663416467946179911591262786147328308343583559548732297567961251379010568589493120730239298627030461261225386876092132493326802453705746101628232548161481509901490223943511034843530999843537670044195105377909565518012120475287374176404140044685044253217278162393608968472793829366725490942459588308113804638636819922182163923110581922723844093197150311288979193069228019932989442445907397934281393848959468909903994296041824135434859824211645595182552145454275380111344661901069224408345678154545070750002536560349719749337334407793951200785344570292801854864069566417847751434871863164611324699968657095616070270299947483341926512451087771371575736451154301492675367300481120086540140007168433458641501534066593481563006572161979564086786160847897097815538476494790273496991994650410186772851683885635111547960614594457237067441445205558796406854593605210799805555457259743417891086898649619092396763149270982755146044433022713151404372918602560083567549954375061942141983232162525941253271769429346666740918861463821937090550007986511581632030468473383815187099855655377153396930913837079729528015150837877730316307713741102240113426919020416953994047289243087380111193582234931003480276470464530841775823938172048784692787201426741282848215480810749303069628451635393150111042943249488226037666310876964452231911392180258494568461985898289888811098747566942160106860175226008851569034533658893909186949710354369395182974839110798894005921582257837391457174602354224531900715327379918227183338308741933610459704722211152628946090680878919739231166903728468912412322632804154895302148900546886444202507233313129158440400507830703427838124943217440865551565137483601423011180521371976618993428134601667987216372557821777406537242496399344376085081197449656208747771668235330705831486175307320027520346912790576108642749107569035804761246135649213606198435176250431700708547884208449377622473424166547896770281179725004715133446451358652140586862234278505240035447726100147497323662328497256639888441042769887874291706138590391132226226243171122061684471060055644252600980447959181852473314409260747237494630654373986130097509835571001804086864823247398442894265704148031318580753654634437682608298453555116981600584165800511220902167671739609832841135939076498556392436234360789306676155351506162908754395310940703938354280774233822350423476496101603301775571367213071143907313282703839769686394220680590032272310607679205680280281105545573246760354761156947316484717108657929038478110580151557188713168161464277458339802217805207967649178740678497913978068151524431879200437975580963670552391500057038192651727027755395638184733572506106204729734438811768316547695806721265740082327510908164184980816689946342134224594889406378873434701118712371416313845432519094167884237820346641011464716324526784240916210151594483093728224716986145022490999876387188434467745942487009969910761837656045450805306874966881750032108788527810359201195384040348654556484331075165191619300537706928232397477493821077298197851201593336907700097866046060240867114360390533940810757526858484103538236710035512264991628591972327654850962659219024807368842241641284169255895025841213218546907568420822597444315186022671489788155893067534061149477040144672018487942738600089425418827380476201972608401414084387455509653759149157027935420318458492213204615145038124485540058720770259572564767063268925024087765192472342628519346410601663179729633778258879887310838579505842670714388718212160733199971529936954836523655698917882868272129385361690381541434754750954452637788233735287487568127615633626568043403427380527109868222101339321857921245343216300229538435441567365879706149727070608136071415982600773867534122163817003653157587727459547532682864833419940690282077334201999347128761981088929870868134466381027033124751742674055196694826730887190000736766837179007357625396417755401119089408114879687941706522352195689758925273228522636972722045463711854557379387810384578756910131832120793650126695595047234640583657586703303611210725480396170066058795099518474893136728395496991554301088381673859159173132884913767947004368078990763607552990118177241999979261504433804628583196083362321022455307833942148153164051261514636309595993269290862146236958749395048518134650012428513248630840198683649638921798878754173161377027918306314934650885429052791648882667459172706096103786711674248951851666564363558280952791002967724606519249987826459996611529235632908791040676424835806954314325931238022222303805092339735007749143747390599251880573434689983637123601367288921391926589773657906126682245819407001382254238229935449239844649140969756690783217263705520418534475519125833828133662965067034341927722347660664646050941850837746532760123934848377164477784362052372718616089777434067621737398425390947770161550551678380606880261962001628905246870455130919961130737831953317707993779983048976432620860899105373156409963400623667843596733396247134736697427586947288294267139266820925467680372495083628592078668672784986890338475681955046431423415095526229489410913334876079862041716108193238914078163815834043268171078639223683918958960524600815282072076716138426029381869674239222318583804464227591173873805901934615594272640899621506003163788408407721540700155891767675954501367536491884210799002945268140281686992794683513657208333258842951446141654020168634930185153242059358666851498035034460829051293273249020685129822762829067768636778646024441297178914957733326930641329141878191533092762666389706008841820479356172569387781191925831812788098004074277252418257347582612770926439378180356219294562683670383468617196638817715018839828723208795113153067569181757088004638702026001131967185635041845850647763097065688498377493661593338992005743681410477988940785459483448372136158320382295217549633010326431795021668602980422603563760144156090767900393105500598685918265496310434431409316760965614920556585427290844649129082681732139023744720720218924583301924989509433457309364483811877400665159020953054708582834066772804874845332304124305295087236752898587669597648741553605586142028981104192504045329463058277371750220077438452362155939245645788931437283548291884672071952898614960955757743252452884547934457049233622817192289171869726003509930865084344646002181812572391577284921913783763983427764126051781694034439190037341439608644149744765393956466718004424155444625850646630697481023146297690213201207245753629474949379330984655881945092650268739089580082530824117135455503113605623808449107040745709605130566679393451486216777137273778282969659802954342539093729394149960546841580560919834454293753460267087772502960409308904128448370662394962980615423946892709365312684547909504796030246361101094975080424518501460319335510271482121890310038224273667872241881870798780362468204100826147632242737743673738871878322296911508839217557003700090362188905909676379179105424798078126496573283414252723298685895740611270440469045566496683651929968574331009157822824966682048514321465238199612226093427487708917534392424366332567384784278769927304766224590476646513124497345969413487049236756933881338744254936989321584429787949883670519749210579182244720566567140510595571412776152233212052845547492944340249586942037302098397060475800637188983956713347894996929201868219272325205907052130508575015835337866833424429166052472158936438602345738203592023943327623785928129401036940193184375745768088719404131687618875722983355619395875837009497360817343300174355333016485534386472374568464282621809041855299661558553771319562643866828817149462240617516669354614021042355607435091003276055163817715201879557783643416107757618654783719368184599155028423101525000288734437792961404393600500021783153919503125717132289821388428737983907784815323155016961797473781004275755065737652436979375847523280073515673113274430446640349099999538750132576955451665882235965939602800144352283484991737386030212559363383688659513843774461843126269291689251968624429047198716859238137455164121174884955135785762348517497039341564705321872745099272514989833988870095387875124260999739806737455325620292137644845177292535940696076353003466359889296713264228485322030089692879622085913288131045319854501453184143645969679194018307123531718754455445162519263233004541570576388930649802904668777701687244498100329982498335103440200023411535369634774700580900515087163234083665809537540763949307027505853815201148748925842735597487615280221329235802692573310220603350861687978339894820000850692066640197226277234754268132283540093717250637967149857291833090991753979055103852757330327992851318531415100693039325223523539764510538822652451274698987168799940576373249993734125700811601671761688441090308968468012905089878241405727618083680933404812404298220047181548985427602316864770776330037863978433214990941092502384648603875830660567074714763242921841023234623740912519585590093675162768200448871597100201186516570517508109990751329840630533336443461504074617316900441840667835200066347948518356284852970880084176630409506165944101730954508231167947187367792560673371652867378105175324283559927724721348109299977911721556902717115058025020432483931292970493641739630670070383002536533096526641216880350702228756522793225251776042461167751008872999675356455450966531492178424436952903333927206487416907506089470390690007797903018316369943762759833368461351270079561865818301141600239136466131602172555470639989162798787924548715914760885698131381223756143873270439904862349547721065615930665404100728111505851382092787355595902624728946729179740895449838975906738371125236284689351539535696615470747942747717706812790854817257151978842585841846457387845434628752979040727909163394925311359669776537222038738825453866414922388122713977187913512263909321817479885514845132397971350271418287993080764608056538901384048816533788057079853354417047873514212193873237205204815412757958534656178106191619734541919288302859481984203082889505401348494026225671628525716817012723782254655842228090985458762495746233138086208765848033727575320509528101413398312266203094541422854428158659589805627709998842344364547969444946503773098222382473412925041684158113510980382543283537002416081970834080944069234569674806067178087367033976475180636378212276140175662927685624662223765447071117024230658920327966238700136944582121416926524740944629313721552082731147945797053106174749250172800891333812672271443765283505708973275012543326574036788636593695136884759086245761787857732511426145116468639846941301064021748859083238837644509965545931817605090274204886267122444039191039978934043266202207405176967606272858149384915587853496635015202941471054289145779714498522690476656588495596145272986354320885742176244958837443916544857984930454831071728787294376269212073846779684982952464813204324176307823154802680855919174805096437257264919360064202165971884435816536822241980603247317379157359245813825480003436168788619832433629197247429897437845056238830876473876964197711013981895484199092192473223416128332940844699630708883607784444146018460175069344569514374759550699393557090939608677655450435890459030187273477286855038280914050248656645326985915906665233891816518869984461123293530586335237940049468436278173459227987709560911994414904878705379126694894477518443908923928150337265129636895216420197463348295112148680061706420146770266575114365035290988528846265898012029138936987536159208854428621110895491811591758029586662575140406237891065832507585329061307435104777755490281461742282003523841557568118771750000709874988741766141593790566452755835623164451839595850861321758469456510177182983468895961170492672814840335722193425341101005521561223926877999277319016084431561441088592668017493314833171096795099876014326291253285276755647315026433424478668383600544834849583260609067747069381207274300511123951671959421352070978361189344064086381847839850867230365546056340472200094171600616318770623015323184159205060715282403243961541400515949866154258514975833717711304055058269011144095899720453660804936249902041055997262003559659253194418840149167046035999796131698492787967187660561701720417344033701486001622740873667754939400120214805422853103977853148671850158182500088994762415413547035201522207109617655929654675804978815339679898402519848329081184433463365511814117622438688380024398435743919411776670132136302790398384626593423032124025388473804826879804224785406523484523340908447178630582953932980242437832403264995091176391595777083253163369304748583220265035851893510093223457413387401194732962067746770047810177350873712444154683089230377660248418279801774810526491580500961872593587973869265802744983778964999629790223941489476443877723135046049507090043051272912213199799405652983228533586271136173888178485063064009975833018828943635868524988174677302802346319284656352074042653143022960297349170378363768842440135087913112738582512359916943432299816448037721773197288378205947976548844978152344890213397898549899593444814692964874375429870055526137020067576986473962524251602194070003659940088863660237931586523691344002305620240818856377793284219300383501863789650574920130175564187396460432840602621378746589877311932036677925796580850533305452420674151022385615451040160965181246848250529092420641920714106459392390591185488763100190480424880827632692787937722658667104832826400550029969644352372770848952818556255929245567856926080988795322558610240996714459875072807073727120835312731458201411064662244122114264658239639072596040246899244957353565912578375350968036923496961749462703836958479624226719324424836631979948232746719067073049079631586593238617225936348776896383611927321530021878736907996221245563285906515971797270354107485848454600274848327141434434747611751923611118064195174824358658311368026868420430344116262815617966909276513854510352493200475080067320083357811290708947350313262539623151619733038987857298139672823145719315492749747378980470525520492172348451568876326747456453132285797381374107956333335395279347103378117891749084987719311311704166121321215912351790460409965327643351352770163206977109731218671978385366583541924492847465405917542078073877851471250694560410058427776506329150214338502913534544307224959166219527388632794038108313944095019813235702827337586869967168079322619290968933349419879152709912325579723125101510587867641839166698763537641571319498634903634126104373597148672764733449564772238429229238132527504084735235925262128187750207468957082549180357189990701261148136853389336095593613544214330594582663634437334324161598639574688004204710465850954704214457505599945610337856998056031793052168222288182999719616787640333880232075187730052666957366644944413230346084310610992960740746541072432130520706229236696535723953749629638312460360738571309523170789012410781611049906864363071273413152467133875935510711755370667376018432249596717958124141993170830852174091581131360007242027278824019878658029883343442543101552436623459657716808628229275165630146637978976943755381631032311799298208602253982912920532118312408523076940236613401455553469851075094776933679944001151304625975370288644159364963939726648002723776726317113739154757095423417017189252186157296937946340989597084706353525884148432985033084698424145740420447606603871291851336849818447864849758794862617095501413614291726203908773401206543465973657325821384438653231648431702445744987222961188384156074117671407033176570210525851948306129048343298493059705746763637663762074627072306877089048465035525755510075902720545094336826420907674412517557183491002528840123399985069174576732071266837029576369101949897573722897333912026705624367618546550581341561026104409717736215529121228821164092463838627481271957460501999928339229373723045962684071666872810049080990642447644757425283526201382869427154647328500771239094040112369455823496953294397262387264404708291189341206579232952097629615288608558312194347762567590145358344459257434348400308386426294875888909768573191836529947725645781128949919165506353331961965785053177150371509996210700021516776699952014594667823261280279862880402284161448854402043126119231714991721907967266745686096296890746475366404165583087294451994893263890304898998991317170460443426559334745027961341496134616339825709414337017223652147837542538615558813308525642643156232136145555361576942374909691963117641973936286564804734161265748777147048912209300845403894709040677899477910116891775625010466160666499708576901811789739395053283271968557466475716992897503858319274465870390244671409190360150016643959375417764336503282503956354865452077529763377284506448071715914140622048624242171243144916671241819995277193546629562134763887537668239140477580045260939653912870065723892767738125841117658615189083977835929655322440927870175219270054063645125126096568411026692085849521728625261165071792202809902820220569003436639297971346974627059217492880748944393755878890863248793442392652814278087539020846763257191256165977468813129011434834539970397114373296031952506155635102099106583202572039243521390290951334371122173866321856134501602380936891574673377222966711417319372363189751833997369204239315483339822868938327469180659345954123517489475267628211862297631720600470577620314537212724240324061760503853861789182867500927814491485750259126532967108370474595364790238401112348535229872132344043689733455757285502895058598378392331768478298238813623004939815016250707078861425532282062030233442539631235483312210701193048480473977491345098307150903146329728902239120579621006561267806372400468538585468945341352142815258566036811966983326935453777521353499512240150293115984636731512615322609517495811451846472468955729739552204520067570434681714947210544868042696948237051658517020702270080624878660442148396435625951799675729495257002680035101146488756112864095536313799652020562654074680781786223529977552197944655144917790281123252309936392087638052731329872655718694983826371050026763916236512220939479139429782818282487823766654016444636423890677680910352998323430644754745360150668057928365245286725093093439476492214203833953092157384264169460813474116302841687819162824846618192651417419667654545500218072769883375440997271309854796628732458128300000990760333223039692671600321241173260121141859350733640346392191905256650269132820167663584028782426575891006055153764124227384318297003928881860817318476444276111746017572847753167592095950738335450204959659729369898956398459794585083602338833356774270849946884969183811847542565095698788510005695768802648032703619522900331900301864124988353641279530282294860898122522048995512742968154064417681502406303436956399385513361810018691296634088391998995472875911108434519221244225067220397274907081470136667949426369929671349884787734245085200633917502629199857088167300747413709753668716461586783735033496462146386082201980442108574212256460464689676930407686049398133373127085963229482311540401108420727846672028314109215327263098167043535315205094396536624081302073849206612951567460786797672280887035515876763751445204583792222481034003328542552204344166421302906975591346207985336215462918708747984546249378389460094025485969926998956061839786544762125142023739358451744135709982608461266541935707812292919725919272200389615054630558592992406657865237728589320206320041836519102783987620699879933633467285574119693529720328462886691611957182727717323405263113561449991634773146553658116746032939345462522120479122307928663627345784707682432393220592637269001254332073319265587445763973167186628371157625618879526566513932098880662363179294817713319932196446233210358905483941991844819402205958174366071251389204802506896161006952456381899245972373505490921418597592620836403230008350319518856482662523574692410705098944956332090547881661017193504748451279326746205299206562407554991154446519265651697529997865765242513137732793588705603988112432113134886180631879944651822303329173803217422630163004014046122766999321235591904476734605369930501234949280750592845164638470466695763845212574064701408068595875949577715639265257798090414135211356660935632713980131381365657648998794974121941159660115465207077545013911937522789325436243848546910589296126168720213219975903504986782288678911022186332039650747297956595951976422924818861292614536416434688657725592140044173054996964251888063477487701649601438131699651746026007198919892348768451942354806714354663246415325064330409332925716916119993950558088235747191268874100921145364208744718895938082056627337705467867819621930823630837434704803852804425568570289673170920160891866112044710438079806231968909595538230621029246297114380630834428032191808076466354274711385027567985549085784144818003306782297844754717122558620309409816069451204516463421931169871737943227734825534473731848786533988267976822913822929938148579470118806252418393946611638683142251896480088892210137931394104694579914240031578481285999010696156260171182883832470700395731833388151765891950923511323316071306973713312260466012430010709806903266333078858007101034705198128143425720476654438240408511737270375832695568764339550100753403809066777139041636676037734270252219099629703547493747345307358616181024644398299674469188486954733902417452801841373382226880108307318732008027424377164696350723037997231979479333784556595271057757845729600345641352941792695470253765771320595969219938438729828424627859225105280375558370717159999135337454366977489647994544699488861271201696320933305225561112381211636099913415090387781068297858269042322640061834450275702324049521092976126837278454282592043374177404023010565873731127059158642141264605052571340501567277383128566335104808082139175157271773862676985868149925952565844830878504264221745932897274561614982137548978766587348121384884185014541214076145408560409371457113037412274534035545252975298388208781843200454605677134301455516841772547790714075553309761938459804818532003994692862298493049232453072237222461041331701320987342104909419523099940988480262911861218986043012901717456308138834880230737859194531142580072146210092979040080476289545680324477856165931341413235964529309122516056992635722304487526777600112574942130627359689473786965666521760402949761453881135544370927939482965883669972274097396586196384604049928146237302130570174537168163316296739003308284076972201213418082086514859508743357618488688350916113004387362360146795881980494566510571174837449490767879784456723103869453824228652791718496797651584127136751902462231676608144138199694429228688932739213587581940364364597328968076153091001294428406852629420634829137705817949414829021293044498386704576126512105798345459443199733292113221256800781008093927088029874963882150077608544283617668839655197876953194525916384644967473790834884805390952685823922818953946470393854143327338862079756033135543422832588902952546177878038785814041154403021381669563476455733398754890601954603578095145934119622194775352040166079747870154074094361159921150451803236698532334271761279617033494067090915040581001392574177064628282746192189385541069424983623751818604097700233724771648105231045638020033499088992666042023018672856872756868294514619107125828756907812572011911168149250906304373134069954882914084570941139450347778462427650754454056116212602034562234211323728768614269575406904334697925192293956225632785175390858699168723892354698397153340492951370822620418470643692221274052477686412724995833068206823995623082563972550980262943783319572642461408697447031483944948968966441940353616763363966166089382407108491939828015967055319349205741833310161521012079786319488278102058622572533597262032410291500516548628893939125212999010983524877003174067372156137371366919083071194417559853622835824025366288129725151194899367203594860761961049246729953039111916291205123317791719545278813215086415278675395777501419893439568829858514277613912111916129655742073006172888285117423943149276892978765114470042138893082459450247210857946907539429111784388667245365977937547263150702341041697137367335384258011855166556029850226308606494128819764364519858020983795674039889259930150414473181304370962049749179432821293891489345478942526844695736285662781381424287857963139222034188496958154213926948412919110683636012846650464615515936165602772611726022074477476337280489208583751825906009144494826754879638135930017800264923662398484748868664477660176659381245980451165427733652874883854248420772362870502758126174724674657539217168581059337683542706182607091408693496891057711146771344683059075453368739890330668590435509654713588670757040123035201865179052197021319672145344725828250151251570806383826349179092715780028895746835014619329077361629523891959549002901038044582805501779256499216120189233180713709339664168567762008224307868350609435907994697760761879228631151027109558825223831530461279475386973335943685003672305411672696502962517633950468079291330614942801837358238576511733494857203598775810629340937914392028465582911044272896573666508200382189296494783260762292768494135255164025550844520410017919627894653458338346787425882522192082733534851883811869717986084925108417798450618862642634482896773622731103450772624260461140026261450774545754924018593701236643013641100172430820750938747508165702047855922151554333521006527880375671290816536180640628396581385300590149818354811660620580180956056072341131003567592029025575847795657233283729507107259597769363451713815887350471585915066944721386532901492915647343952462087517807013662145090568734032883800717934759573786914121641998753144389998344614695720311868062181611097511990578728138873232171093438307663002651755685584893130369933665123941523138575145557395087929450936451819488615320678582076716685842433462635765072212687113644920299029026830092435629199196593035487087624330485622312855617111710351538447087444212294283969993763048828380123056631357708965225941936443809553899968173192515742172642521790002901902459945348970821056048987591727851357567107485194638016820423385594871130953290489603957373993154877941075856404635592858785358725907936138266770106817311684259273497962505463019893370998985923695910789497342448317751824994101123018655897087640888771864782712155334007116163307122636045480301937119708164872561403978329552126935701671024314444243062303670729642572097038835595914952142454525032195845370678797742310950840426296278165380494844074354887051790578525317277854969451422003958915051434257102227643260066302847180367521902026865154207413425370880204148500404068218536380471695193365192522456819284686215948352457691517443322786553284869770803594611610552634572321630056550556778748667356522174047716928321091948126375681704525820945192316765310970364685832689028183354451614607744557877247422383950932310276330758846141839108971244369700516679452098545409579710381301942257733748017788115804503588615243587741178807651243127157737856581802160570857182244774583856061461103590225780431206647335945734382619058865818661729196079210480844844785061765884218478538674739158131497355506944098706542952747940145882265588317601080444726387646611808010809242211751656316222094888857104988215961100982112494237653043048873515314944641013806242994702938488093759154803781750494121956650913358022214048605290277288211545850762192102777426016523324586162325102784412594511761292142675754730404656895531304281345385388108883487291036845566341110253837902085273479440170083660884455718110250430286657438216205130776122431351154464360799317538341625518486692792987111831263576971690106185807778348786829766453809515857950485773010115252048907169281856225708116375936623112556497845663107627982584258677695585651438599080713213618777589650007774095625663912323653040045707450295135945296245504804413417203752365847769250950766313108399725645528666944373306068102272631435534210540353322954642661753219435489858759452735732228910047717991337237367921957999006401576028771572186693548603766363809734453031223916156339302743022044642546832782680453070738255242285923573752230056350408429757515742014494099961732013055012512487758790734011201830855165667321323283183066490499118389457482545522745697851104599492548474445843814007277283823923885211870991275750902007099076571867809191206214158581026622166642863628275486465657374925120023716984473052217803502549487631847207767276463117593710466503480559701014008671001171192584872996015945560078508262207007022823385039914238930957511571995104673347116983899876745391817544991747003637088954900205558493558351776716371586654769352249410780388895021895247483198000695794802535281843207102788844297076203551083560645509215109115433146614260037231923488378272059597068706569169372322693300743853810352202530307192640983128931872461962751036830527259796910072968886177329249294974474979193244949832791139345206538295593071906969283267912007348074648649156068423555570888942698722802565487874452376543925036874902015780617147202944824580249384098034748193034602004191253904637983754568672902481374328600278192632627099797868698420008215209150492160202132451653696730909025720016281980100722822197598376784712028521392523334512134478945160984271164487125192987996920136244169350982819068447370246243067545165244387262058954406782897537985996543096270137371854958029714427478273056406613805164049154375116875424676647420594325840357789968854291284832098149467761224918419356150486997271776309745939654192624793793760931393292518850135334497696940885747287627974512229386152905163967630720621378952662421580806389075385009465614629859696731054655754778098682060487857998408564244070477961407901720495577237957026996618323088040992461213801816878207563121795561586275425685851856338980170875623394075578400945518438786870671498577242647644562894666932405695846035405567267505759248941696301918803253200511154453516450113736253017698151276189045781701202857855740038361345368507679040881825863727823559677686572367570881306890779979131997664610165880821937027222701040455218906938597513537571053823756370781417091013681810360127557367611267924776572986989638035052636062599661213951334652082863947410439134331190104870839001349952832810003898475691527705163857242795721170475076603068648268761555267643569742597929111481534623668995848066228399552441054436049218363908721614956423632300892746860478099855722936242432469015748719912215384428100383998600577045458590416274144871953972224986235423208562755178382505807079656760854804590775422742156769280282558607737599626168618811771834251934143601269393930041775055212542687163408413776518094402918896276191782327093476029550883366167741356123522258955880196598112558483725735127925215312250544553519048188041543949613572922464544642230914162465680619108391734967963879930274368479229941514519777646472139071453108104909146481625421721980035210107413840478107097611263806959211370275639618637981983241437925456790489952266259117283555420608867062876936268601856828853446027480628943887268221282380127948102178933355238554126175872491544421003119567628111705956853346239010651510118932333797588929988547878662333539195760877597820166496347666154766700550179608680198469428649347416366989154976277029499214193372027855853382510829583149137493065950609800169059521242601503261965046414237498474648477784145507493337585377275413467999598869999323868024950427355393452591028024541920024988262809299609187079483435733913092375386673115516430847457931536569904883248936896238378026170876958970509024048726129017145103405799963575129746775974190409560941250310822726856003748443081875678394985726350882375181510651596457304227218246378302451800581806999566210003198234185075788516945096480092247197509669649503628483184980376772627850772264017464458433310448693598872662429768727101684907583773783006214354433509540994277368990979058316471812908966533996535573142886224777377679585063983530029441532690751813934597125562488309714381636871150749271385248770064720618503258100219771482066981421805510510224379363364974919796822967678626952439421215695894401654902153251983528813617804068451474773564211013252224306987244491700210603231064275539059832289785594075178171945090454963747524529694177230104435521972655090063373083556543509575342619847855310057119336241558860669330703522699302413709775486039021665803523590976631460643211718927289726220444147950944891551592056305024126083463240728185044708155505976804859575915094367228277935348309525105674759500180537192213594496176474123070648830075650149178880501578683303662710349300571084142806943512458243972524145153840770261960964571938247721402857615821257514722168179556299406639692394981080332656729679041556345657437536107639255715936709856368603888733544146105303238851534425440893321746174354670836743552879756681513287306121329729202335044030448879009566981932171183756351554844841475466212977351908695679007011147926317024467612725763140237713326489898628934910051318446041839615034594734212835762124550224530267995655881021558660167647240992913881478722813929722930414169905523116612362317489546857910873183075327712886460656646634409661188284860280509393018143857983600870809506130837537246583494660986376965045401227070320416750965783712601419041179855351863276763142973563042392961767065818440747195501657693034814383448226732163747245226591386198247823425277253745774050414372654792588402185424632373127535470889892391673101295771092914567336016035868533939860408585067136676520062691045147907615178810812124325500236015345883995812706067143814653539516401124323678273594689167224249877640219263808545082935244553367553819930310219994193272237321335305987595360012450514919272361379183872862957554266562752570897846744685601554719425059903950368926680975644126079787535536524486507135237827285217562792772738159489742859261000360039298822809773671531845857681326436670592940379543748254611365103130841907972897484374107873874075909943630870246976054912644149255734494566227172244311662039520166793134348718026134418012593502848440651643858798287218322650221540834940679636752615043969258861954677368810799991789472895891705564734011404804712279283782109337708725625064695274728032016137269032645839681781412201416683258009875430438644247224503180193616049795891651877313709522203934388533323471723160225976498803480878694733895809796337396176587823497280377193925214404221220252878583082598427832138183079997067214908842677641173252323878991180808114586689867523060650203697473993122478596297492184708780803962430411990700951779249745012200091872087983647777521756268229350129515715745767368906485230592653214890443015230899461317917158866043705513694588576396505658561088602855983502962632996908106430735944189225749829689287758071554649335047701507931586030284079442111776171850619307558166407730669820533426551413781414715945187440518045433809116106893250188482817997947198120366882657092065271797581922986741259986560917820300328837525325710208419560302224304664411804797487915696434693156001022623025133399405278634428979084020261169104656954461943621073487554704174524212687349856316712319768797020945216547932293878888529525848491100103395931487949622246649516561445767164168324575830894505082155386637530611453437568745505483921889025863834920459343753000613059736554781277466743617326227857407893544043942005729774795459654146301844003878319927606254247608699808908537326206114277859511378599558255268715549056061803157553988360945111087036369600105710003838672283625350466618400470165189943292622318011253990635317683222508884688323389669492634649811598386634286579864523515339946277150750432536692090453307112843469083049522481127703766451699788870921425591824381762293014606475238408966898749730007472784483490677553046645315247507623729755804959435701463119591546345964450755636519285942425111016257849792972062997278677166881327093712499036945621293089874564140004218991144750129966933631189921331973171146281919022225803815253863057449479684724363750402828319412126602048151697548480225746025051882613468886900208052484581993850593512066772171498387738156184154097765011917185181816019477279947686295013886164328032092350523024221052633369553983887116787470894498793950553417471683142772618388103459547134351396027236633895205816136342125928674900247184340857719582570896182643197913607967590038395213035680777535660827738525494049600946273483966723668588506311086712917005284055104816480522461806842423036359939881319742378933323990289549375324766636354867484779512753712316356323251352913016781115321416876104513235669898368486345803387607426297344604751249184237158011002599886346208894971024628152793883743208010019358176729248846938415377866384718326060090071136069641133067800276413623620311927546486777106056556975813863362015257561882003036468485003298011238753585761838848547518329074676685616002929980721601431151797005590311554132458723460714284559725524014829043999512486845403336663632677743971190166529982995620521783602286160421900789621764757211977718795591182273957593986827679213446670593743266155531238085870438311596301920393309672646804394095987171997483767431521609245941995190609035215974935398095941281369721825964552188905178516015533986547770555016226505383413996642928776687158183486003269695259014133680736840271229408669758115826078406579785625555820000727015824647391432505930225528489906740258818814245950496650226520586339814873975844844886981097149028669170197667607374893678919854572778916668818759086342115132675034601522174758554201072933670260423342027303495185462052960499585516645186569889970201868843943081714810854669062745782506760918372494837839583487302620621313799648297305972377005613414882466139810537236832192015900862522049532135656985814157885938911374948654410827306580981922862440083051320488913170393068543041176653628380588839526232149935933055627882495753357372924980965722062843826440744042390122440038266398974331986782908194199810800495490124226473146287317771071307189876823614404541732027098593770397087065247452151117003589509039562075340516086926853014595811600014093183548797617497339556829844059242894656972669784491744088917347840066202719940539800434611051991176848016350151983307699165892211205221195002171217063473063735309560402733364250663859773717412247413919736826076609007006667919583861794842034648199787631466133410743518049629538986578120262854911782063572605647054981565440519789242014977082421104332291082861126519503964088632103276498244923673162867896188661794030625367462486428047178154951609424760962326966568654757049270354358919936815041368920942539570168744697787215786682575447488706599273142482224127462660359798417549409425665277902845348694227459999067125901887456704513213486999466440275099364053961857706635345769817948253243716280174806961815842526106981840497886960830134567964969970548000174935008639300723222963141206897170750272635899432037493931233869397360774059612728205141680886677973006691848808939898619410711208360734165480549242717030595510603044874592983654227703987361819984333905956921410835809575499123416342751044864078230127383229488421425153837693325844777645903333469986594449370868053801828897114904773501431861038831091629020984804127301113122591186087433777431962472267706700780555796927887257027860090032368429261048179188597290940534835468802741895977499335567585724320463752748935138705677040903703791114014637466267514976987913009935804606841706588149288763091082695910954561235337108630146480918146965610270793121069359125836093334488533555749077368044896817793032298196208008786606705370589467974711612189971091095693509343280983519656706156190645843677759634521934135571593014844607713993159007588663547943616127628242093958441119880264185417531323231950090073636727854378008783789937511682508671194202143699994395253769111086728735285358440378064555630337442367377395445694206874017486136375935043057231560060151487223882589156914239569684625186646657677027190428750777292529350732683263407011466583461930685759478607863957025421076581583703129904251455189782753995908898735779607221326508826209902315867811100938993143857668853035958899377401634720392047970254893441884794771690159136809330864447373243338540976255537618177534158291835416536042216868923274891195480076014399482038002670135651539553292585869111111436501719869721146335667518506021849563330389183669602003923909039826810164356517925473933128683333663292553911522676245972127886526485667673850005441508413988250601483227261418199642554808814596207001955632605200193482683508330670539937164983202024090937598766387857631872054753277015093481316692679080189437662337758527944386560167477822256745273232314128803493292547616356077999696564229982651482152881089919485986836520210817769144306653806679858582857543125467369353298231812390324933088705594432408409538332366587408492805370064641070797174833814228609824165924567992739988464418968327003784598459604948796178615363499427765627175852857521206285282201326287881102971391484509218628139266874818374282669630014336875661492188455741877881560031048673295597272083108772902471868688114082547958499298009791998804214448177577703342338056665185226207588346969582752507484259071491283996743299046875426982580408821257259373463292109296069750807966136729816937212016264700225873868425776847796073014300173195155166188717243134151977723835539117712504765228233396850143653319381894844397403246104084596407084816274106377745572026619852186305235448725559996454903904277202523864971249915838621496232936447834917803427002760899672365303741415235811288328098790791880575242298407225556514763011907298084668009400309547038263813753524293421824907091512932922737892634561730046096086868928439836191150149345728972280136796701250948499894894625391638918711546645769073388880483435364713116210008392792416918940810702806192920761441489467067260218415699591658985803763882911761724725302123460285284712498443603015166652401802875793708805218257566338372115918950484756580600598514271288655845258791456718209768229799808701855199316666733784175124371078589009610502547939807519967432830032535351251037226136194197348725144550892859605885877445103496318625437934544216452110545126824339243699494896563947696130576500269227050772546272854793595017316019418049151702030749497685488773473224106733503745378985427881804277619707720853585802664157598854694727065883015351295897997251965785867555831660504779158987963419098848782970302197241205000958485277519990211239040717784364016618269080266960686061624709349382704361976297868698525070003154074054871624228753843291738942409203362829390949423228357702175135492801394179976532241592028990175747463684245481677993479952216661522022070401621354567934897028012600696361558666717592358864862856335753482017759737328670895883201907055448377986441115927340454051846273811949653152733156864177482062613777717625407027962808653928536104221719572479301469385442327612709275704696859453637624055545240560985753474840072071411551861741416392844684268265740538301009996537821355082341713847910612495518624455628608092466086787531359819914184278287729120584170710009771430258905269707239994696007741713395708196564340702057067569512583771709418783049834910331531864157004642408979161685060012232947135169387519365109748705660452530440759247182969633553197195759853295218930922103455817042199891005324238735307816827697706201961100189892716652152305156794670314629666392895953332838923264897422803600462490142148191594300241822666998081560776688924835714074631730801677249657698988582621464390507080515336741124037114039344567854537792277982146351044294167476225062885814926892537384856427750059817020185851693472069727458112228058773436888185175455538392669201718897456850409583173176092021511166684094744105408716742974801836073162089677300797618726388479703914680759856276077671897906210169755110979173702537037671947660786693488246170322203370434114687278180190727497259372405050649984715751325138369349336835693661766914030372038859493688844177717583706421383680133487884298946951913117122536635648057471172154172980776632763453875522038975109693099962459914469893353976500781268016139565740578892302966890018755091941960007482491391645667763347643313336123869432060377741027512947877996840133070961643465297313206455010097346929118430815371778977588606893479452387485430169670302572638477266903474852881815870063527084349972517097294051897984546692311742714639451857973951930329055868412237836959865099667031752539259752816090392885346992675424470024962803558154698166141821101971594807831465763438158736395330031372277761183439612978683856540798696085903281210657058114747875462019151826213984019091204734687667341982203603252431974750259570570618874684447785087941434131133725165326944996924070092167000701326528006432558149970728752382427377493206117749511777688225482137651573586176351045134738405809877191716627293943930913490644277226808479262028458309196838773790140866179331448304336587318181989244890991112252316694184745530216256936929062309613478906825303203966698947255523397446451719095614249684851091185755961189289106091367467606539488664168150067043241612664907799467643096553607211216756734944337686059155073274312495003465610856664094693605478614568452783434380135716016444540785964048223109784194555366981611526195604015489217180263302072731904824555828736132584935806108083920782609633324998597158537343745740258917510740002750114211181076364518440590526707436949894589066109596863859966475704907215184258044620906418745988345655738847097804871266619414240630532490989510425111839386721506115034141991771349391315435058302767831677477937536363737648843357985016208898424160327500373971637168347970903836267741927040739104918995697777681059939971441876280079499165474479614818191919408741819819494244560855299653321386199605806539141869746728349623691241478192830845920034343184307730578218706980679930045735229722249253299629432665040086458207068761289580459789469595800145080629550795560526174837684914484494419328824915118904002748353677584627040758816741666502370748875796668644928983087913454974691365043332417885333059007384556022175678379113569787741207865966952792381983115857855387862442602947712872213364243160835619352673606009867096765586934037342802482775185319017185623209360997580608656372102646469779112325351048493032578370460772568341509391043998986715490918679847512885893504925213883010111521359511644440066398376406853718834610564755145593306945266854054665780391562206883429307064807242654692997560248963296095662899547028827011889560719826512148227653019032718091516855839614218505965671752429140641166918323592593474929443741315617869166530656487501430434948380803061927969637588011929768359807677686283827208869140160042712973147917314925545501273136043676461120587490586600404167633260871082873383364234153733912054839945239493835459450797035989269227945914708822364846637109535383767419246410960658643002570415925732767141517602652530834119679555290611002908140234738307253136319563893250970049475950605419768115463021294716625302692928948372841030559468987160031520524217936410790001452125277256783446263527112363114915146837172370362712929874432797330930047269901223826081192328594177066145286647459202491657551786508618278770842477577914621999407229276689231125915337561454546285427171435430601642374500817359702845703875543761823963133907563840946801906888068305181794278166387279110074451209545739157073244584192335262276796877521699262556984456566751743289303845972993739218165270029729509981301808554383984494362513128895206244010185910534261298982004201484117047095084244923857068092609665429754626620234414582075794018462397493398888039160816573602978853075586308159782427834963725725687513269054265447917327608110673137132579636586361297171542699740392374821027617307559921587840342095358605458902259671799571651087058072243888511213702887037192491139616200163393381601320485157214476230254499772768548221877887307889010490275218882154232308841321628651702463529465612765666059971967628616379702230236985941265110617010236925432069082334353396291610711586353219650351688692329259333090505949590224604188333613602714961199822561191520107705562122075654883516264860092161187192566645989775161166245308557449212608580648931395033762337639628654172543293042038958058747771393433016189152035582602290926901647446188460198473240076058189016525671443297124205874746685673052207856444829641237610015529317720098890365070585854721903802664907489394064159752751154330967684817902801400755586700905719956668935807892845614789894457258458490351789637820280606635815924743696356856689377875872183115300562354294275454177651649741891784904698540034915900370348106531717274433913345929772759255302569535994421785419225639288199460963032151820290864623189519718383565697571319121668231980754555275586623568972861309461502863112722130095306461830106825926811396995592276209434950554370104763909402220418713548206866347038102499604452436766931452376130160758429254450309978685031234211104887077124057641090718923760606041003032395431191050275849955765638022332645433593124627749248776200463785529660509401142805547779662254964785650239425215212575722244400227984306362247781680345445180286971424158178657575421782478459412687629666328033708767048109732205844315683209867234248739292820013964448499294626619165748074724489239174209584134026672384631207351124561368968868889791979141612075906991476404001682636674982486375705984668655870192927326294809934491878347201932006484538243065332857229355093013509065387645523024709452141112740961062402685704062768780879440324950052738197271552693504395291866334550290059638717884527646550215622101231514497417996737139474966155915163993057017700455275968198257945071485797683859463474804643407066781565502810176248946254209751413134913512815822373108600911768545631450574657074655295611724876913202389931374833627458378155795230872477991521037812032678991844982791467996134127023529485317383701137633390069187448148069267790851970627832614524899474133224178289992736379803004033965662910279730503672652849361757314353550622414892516202403896179484970392804147894454061500549144545892196767853227598019834502895975968577445052086624322831838999228948166112000605448092123209557104822387238273896967205357192080156233932647424982482580417816447474562247415356611195677992448688699002742287813786314633039418245642817859015951019767908061340756338058128272119609239408084533154819989191341138262228440408715625555093051059025069815140235560326671811881368363902076282276360168780232730307178224027014503105142414867870327320007135796545631799416502133635216678239666582360178980907127672467888503839681711906191054284195661308204682658518099002614106529196945593562128937662011951832113771889226414297101928226559943218840421611893849188965745764621098930256675363916330198618976263175719180761640817417567202248103117809699306756732837945365664055078075686662255562005135216775270479744866959717378877524767378675613082562826857251234719881546358548557152001483214992836318441381390552916417952878807727694952225845435692947694373478350381080811822629201489366629649860990197553788209164043010478996110568275294252467607044286148415675371841562316926650309848336332038184009746552343986899571424085172061964297943466834147022242618781552621344565730833619781531477973267338838901287058517693790505547407599468038330645380498957302868475372517095571423807985420307174710390843095235635523468387579941064360921166881496864328059586846861200744597363051467142751664547288031790366882555969137711477671483202149882090897462659681120283359573856143393343491080705787137199075191030921634570394196175427768321766384460447739062429237044174472588352163412858818847596175485739236431427422222862118188079950336594587693413701328459893072463670744323757528280990148973161811012341988785928733061939759175300220685166983151102387728565947008363360669454898756401305483814282872011599656393651982958801078354561380446208432723390588318003822904569995898681752294046637608977371151809881103178992156447159546615414969534093786895843454696078049449319120388200360186661291493565208019754611884349561455986938199233907746484186748711967528834898641710934901712250440376954059286355025900419760863963914584270951139872788629057615946747861023496280968392981529302009609908658570318039433011509960876838574866323730021841554714500805849143909138680799929021386011973573999614727356122576239181684336808212119007659247029660747733342616569022943839089372697282607479110816209574796305435091537650248782275327586021629122472871011022194057883057782975292826525169029498934191557043527289617827237363191332670877245530157710895277663451150509162567055670437038551330153608100471864075709839426577426473331564189703128188957582661391461377886520856240182545886936318141833098055347262300367502447658867441981934417545119603079850128350183837340062487378597006068708808677123892776185172935077867754764880261404483431351490453211998419624850456626480150398633786474842999078739650730411414111781637547634689829635912378419648351101538859028355399784527620431633910020470308439632058657213837973779341277314960721505648065472496417906159426397574946236312387635576403977712364657751834605671610963878093961146100709351871238630298053458117161861604588346281460806600498902377985417292757500683579513647131480610585182353071402395332492117508490619121804609671797465669869626803874620470420092228111999700902742262605411304711138663791743578832543563899205915656068236617572852820803909508686019716449305391632079438434402206577012400254360706567832915457416161937849485240803298534454394128208769448222096425534999635954046442735587717987422365497492967462029126870254738949048201690348996724636167839653173974109337533510833663679835584482785249021291312387457372885864653259334385068414848030106462627935438309062353727600334517974098598491906376397759017068794485981526254936157825820266869431708692033870477204680332120679144318377903204866459232561652210230575651018520139606641596046978474114230315296933021358960005040458007830124888087561156937671970944810566745245152626693801143688462471537314101747620024239567436129953801226138128130558086401191475469886740235586133966946290575315143804352667664113546689240145639342485619273568018629568531124946706019334332649315913073184442916270375700942901657602819319138543404595673486886411612615294814605866771097653373617423987438756587773621758484188532272564525159095440047894833916160543522466644745578550258015359506376057715394794939436942193987696667414774379581120844880441719523400263317778121675420074910685492878353214229752630606392668521756659883333824444325074055748224584953314977562840252121391560801125496504807836485561616323976640403971652925347434686736810789619261176189520663365894473619244299079421616499167724491589790217773574512270778136911556570732812097893747642041982539122858957808162360915689932029711041049867828500739397184532662607143600516881142012578176424586436303558469023500313592671169675840500348499328782528715090143070761191334984756505260580393796873702417526536467261357117306391418144163998993517592884426284843918664480227832444324183824119280653201141034854716304411447706138488577962771823901930603824250818843058084820361403123118227713791615059961982103829348573050090026447520544790889629942122400587800435466264071593629525760450804949548083040826910694232877841156803464990547623794346888483691938878950477253038364269800283498898383115389030786284846934210571893287842997025852083232424077252086437357107091937792927294034109243684079735005689535173091320551953873679255352109879271884174575135346219424489222165105289440551994034624993779995938002095201160552562131572384980133798807912302417586803399180443375832785345323753828683235816969435763077414172987197887166150721239469477621151071458724202542407806331425024003882815415926597699514022728211467538314182223150729247808799513380265838392109868951792258281702329941513595920311998471867470515681890956836614411348396908645752530762974692681734525136015698930003289693673223189333213683700075765762788934481057755016445019247145962752076646158518650945481112695466969587935837618255992785790319328298944556110066901262903986780628371352208081222569426353471437151171701130722817447726371508580086868708237972397723742147186913292657565005301195140383256097425179507971002928052378267579654713525219861142230418093590736324474416134260986746168984808610731335782920883120073951180852079539009574351777626423517310399476230986310399837588123047147947368029308524140506328197189867098712298030729614582378212882017932926422625030204205974221236224321303959844471167230291600074386606031806125110146188941978041901155654528648940098065048283291449478974740357926149367092779244312403320796061876943039197837813805780506720537136325384499337950668484712437537476717084753170889148715633182286775641949845456044630826906721288779422650818360360734247437253000746132663554653555696839787758256961256166796313363774535011806202512127440363702025596587943198854676554767769082767084583051085548242879110419961007187392773956035377591906517764872265839545660765404162931851606977946179130580471658306192576703899136990835607607013640713899788470520676108950493544935360732871679226282559334030703820847661151117995427343719839015804957195662524928059455534523480846689052448858979897262014901001319550340617917517780907435034638561953873302992521396419870114635907081308830413976864931680977395887074845810033526689745504724805901441423468608725243827447788690501583136661398795208551251498612159391845457053118855877602712709220456108299961502652184489904543815212362124795193000627772984379812655137011632475224732811772619568084139741925822395608313928587186107978447310084021298192758245247352817942239102847833688050534229305381604493784235498498353628659735130254485405753603026900424063138884713164913258451471458367820308241790115729163705879985980520109402046616014882865236830555526388246059200575703846285882783342381499153476183918975450065644263315752444512739156719324813940857773811435390284197241885869703096420257322647081647936524166300354600980023956592959801893593663318483271210317163936896571982014799554486766070588407778643055251513941280704028391575381088719104687403508170049827980371104905996856717028238501638510100890024255885100173130430567548398641370163642312990760096940727476506915844469561683370670358300813058364699374557584150327647668320372061348256405637138319887890686824653654126736490169365894637846866196358718030045481618452739383967158574324460510202094646187196832734970612837500687378638284784681652627158332994428859443181209095391298229930046437885097619879491154792505091890370831824727301228578471936646568441345501253382489533816503300765180061351005215521285273250448397110866479386438332345796168027286216955142818044267983711878607361291409297280447455260656607924648237241413579084881651166919399502385816952541191864908013946059998960884691665029828977944334347300157028979832360478555087932210846738463043970491780405698037594370795475833835043461385531271851241911923400630031094927121932952808396525183245395081488322976618646537866143455029028936174513009287656884426038482387864753608701588553289264188738278458112166810817125975855482270742757099232740703024625016887224874084410045864905076320167071717451594045590958343192519735052021522862727995947033596046828031317458500714851353226698661395810156782466370124913355557242515575882941401365254202655392203472678497575727512637971319196226379687186004595390649484429568808843818063003931625280243377257680966666865661297718770249524371024517008510313555436332211931466380862012390440523364861532776123838036066887689145666265490095653969863952945562995455630463218421682556867355968522644298064955314536421873541489106019637664789907765646913511279759218787761320880086653210106012087860180409652236800110233208922339856133963588842292098321156754853262364098705029290737166376564633476913667927696233821807223942761558746085136034359063288051972934098399249121909518284347010458958994290794523942404016825630217839774586667701269698468463086112682992267536057622399237505833308121289630061563611509552684259377219252826308575137491199424317958031081211124897896190375691780267584812937533153297963291429058911437464328384014489359219987401336052872369967180698350659203692391056237446923224018975025516536056597597726113842276687190856092730309555962528366332881416297832301617260647392246663922954342254111328793054812432486491649275529207663062011663743306149460014659294134700363448643351341469077020868863395238452532276173230350730990296009718346554717779153975817266108209931270617912333084878073877306503493831702017351080657856351142299981503314932205720809615857824262932666200079840936288163656821888317058723759838320328913536320506635621329198814252317272617702589769006098194906867803020467272483527510584149358632611655394311260443622096508166525379131767543659751113469060321621165229912616090446743883300030401232645162866100997259710321202358259064215434847883892498917245378705667133980798685526949974991247436933916529642636588830525648817558668564839836360113037951255340226010897931708460981446813476886329165198559425949837126715789329638106071351968052618270840192634816216714369009432315431338042728887227428830018553055735269365244840284542980520324105416137964947945722108712146672532321293048152254049236024539080547340743094096670613544441277436495314764390247749339605847316751775942953869913356443663529768137328668681463147938916657490166402697735828109703065529197497357088402391416327046350943048397016161435285737972962602679714229500799180921372778595270795940785261373785502244350331481149727517652560274274078420638779334137967445447082504602556709494309973682511718131530619715247569978776946167960789772903621392619419903802621635938602605917708929798187982089096832155596920352489829184690411938411899094531957672145959107769715683369802753335062282108283644341258102547611406579740182909215734847641363466716615152464034945453917896395404834308811111194818955279712811291279222235853867876337294112360081133726328462099491737492673646539537228519266553509087851413253048715579117347854535202101061760818070292557346099243540965263472133734125583789112569173292451804673652436674639368668696035969816424474648665942895779409400526001065894954824463502051136973039104353872101779328893117725856236614656361897778694355096465744595705069602237573585499277031588798597067874655947474015054613787368713014548811124397110921210533923412034366501595280498234342879497822562064280967770007571277417713676496006371207784737968387129792419190452306155355682327981639587469191974353886357994024462490779015536453862860560185848748665726553243186503291610665816182416227308564687247075526826659101408812249533294589134034381162014037753459751655372319377348309934920187746499987694819361564297020207081400217985189778044181592427571017725176392791379998128599146355237400368042638787309304720467927494679881669784135942520379439923100983811506050433117848360626568167634122342286457918976979635960352197857531597984273709493948279550744920558629689311383633652930106130365565243877391446575016795878104329593929756574095120812457069167703475802990368284815779624329015092513836389958733048960330380631210776242825570947636337092534985479103104154289276458793998436592369767389822325585891476908340611372472331690855481204274628815669818307738207224940175882923764907087687666600200665709344655635536383863867427043809270430445743497968457586384919475806165144068022864009233823216210033747871837014694101220494785504280136598519647366222400696145851163881077630855367611281604068861241218635635878666805903701552346026334118807581060318110138763858815732980175929011701073494727511323529341773533640425670699306471305474165428609643180826540505130993408571864688824123477451087927093206580206126860207511202725421774933459830182805652569712945505550983049543909757542094726407164979391757074913278399307520107382457900596131123517622740489593494041705889997579645568415792853009808286506124666875060351145134700881121659392084147975063211802351522790584160380810535889472371341552562017008869125537418584486509522347811259302673447915750086966452752729488641862359271443965319699548025370070113112836380317869498131592174429205602591995331225168621810981846808519988992458479400264725379953398748900987462474538863292833113259807489562735743973576178577871210013247282287586079247044792010265452380757219852862341604760504161445674588018350462478311985182697606479671780311255387591535375986644291937191652804838081777915671678295983244500169872673608073772562685335201435019879339432890525061381414045135684977969461999588360847737436524092886735650345267458619576224690277982475840029700753985546475712523745476533258347867430928913125463765722288161307612262895091682576698355320719389669413949500649018899141025367685252548483590636763222139838938381811117003724337458991597583397020723110037361983821198386076417370299346305159495680269826811126674770895084855732755897796027747006948172477721938126668226286032987510096554587758001497775469976547775027452265881561184005271208668185607724363700829414652025767972403244634036336189397860124306885950936825949315270004883348051578894299342013293229633828364496962800523136894217295407133539020637133602142070380283011250473729307107126844535909475193320481048419559295312287315393690636230435078002657019293165643744686137307244124051904497354371486342571621292742667686656437253767056738896049166265031074614669711948415608980007460104506274648684031174830316818689511404994356393839460787495405493550399421472294904090894023337456235356140315738682462538072821536238710925191112189987160751935737060799846199462447383490606712255404169392821769585846609357799636797079068668295157554205297122408886129004871983921142519676672516093447298863879820807920733504190019964872932088619308512228190826501952417045840608079717036211432014225091247673415016704177942110192115268421653662747331307539122002350182118784643116005019411937861381884376823099814336096118418875218662026937219161290617953285367595226990569066757865919745445693619021090208910676320289110248357679637021295870693609475542852518472603313591095450346509182898150960369465098632664687246080256670720352812462224754080261729407678017712317282803962476557172235684657425602140463105248181458414682473613875347474877380667363003899412329643807719210214524391416203974386129344310837796896424945196967226641372753732361130194826877555691218147618355795458349513174320389852832980155493094265981376802287079149973906610604934313087848725837346983822997642208682242468340688046567800125828674910208435686928368777813106801196443163146753879946858666153111689627887707077063238940272092845504622165419424419964267051885516344481022820350275162703432556950836969471831513289078793772571959641365761802512001233914047316590519809281841237852035515178283406386979223605790913805200055955409508406027183540581987310460591172361756754245172482288623523637481872316727959730794866622060768337917840980304808228331115486083866919229988759249504759111321699881272942370533338731230318215175641820619548370003706366834603070543912631911713903967131012865938073765508586987783657279255456315730468875019613599133925292935534028378302767157994844967146018516914126523920064492030008279027300744956784525968776700616718316806572728164295093588994359666352897341825690244723896730332791487893315441779335890716636043011856324591253926218892718490771978431731019008305539654027531389270828386013226412830359754329116902245550285994856091300193173606390366727164281120951970509994656844504693519481133660477012812062153899201116883238403992741855773740020569256543146359459252989565250940364979217870376651160973495224682444508214103696808454696137607783685367449301460016985923498263968812295347567043442667443042746395961275444714168766897920479902375264979302198366988167831154262721594968760603993897454246246307273215713190406071906520988161908999646763781730763417771846608065054593523091162926509708521376300101936563836638939311451020163462906178254399410476307869316220686412325820772323012534416257714641736540337794214696256359746767995021838961030516481479928774237470003583625581215184124199020131931440914323461326209096630402453987788564428563731794851315299714513991488321672981130272580777526779143731956198936522809304875551325890585913603122598145512094766663961710961409001191940351120446793174272327768548697116303557354483069408960189092318046114091237059260473969263469342613407824685658280285433935806172329437233409436261065641783903736717422331789502066562796986680538093200316675665056488336547729413613132716742136789428777673786158805886479033671863403364756402171766062896769335902435246631701215272646357378330538080560248290067128768304885696063660695651806866559015833829627514188727817308004884650081501430151377475314099480131307959954697102309928789723101316451854080493965618363955371222091416865994852082527964922144371589140316892933105103577057865601038727458442604600442400194817019814226067838854155453618153213567829835161489171301663716791667692772577389349948657913792402069460327368017555779288942688885631891365218062756609305013855139942212029321879394165992503713804523930990912059771458167233169200625025555760949260621608066263586566225585334526810775203084149790786086781171057411787562857806717798446830326251428897933717868544046159699449930843023269871943231412615232641788366599221634785054041043674550702465513268742207140096656881003845853550963792376125592935156696699537388434373165620775347770504952529058021146560556936471061235546504186421656005990916293876345222209014293368814739394241430213281642390525301750316221569513913241037253793812297706923706365210316323485915047621670364906893187400294823553084890078936045292360127156552733789854406255349397205501034967742052954734775147444973167604918719057606318548875188388730260042364716691453785129408142961333158084217585855156133579751522500502431576702185033549936742035011810116536689314818343836434232955395459952553523414706216614919022977799828372202967234877119872122537267450256535763482595035068177590832076663655934113023339166026920084847985897440451475887223014739898777521629736411073155724683527570997007214603471668767163912616774146942413705158232416109596918898487964946086070992487137137852450168403390628484517209339147660916951331876852298724394786077578827521996877292829036806658142552821904291991467298382640991982017755853751563794928023866552514003199018603306119205680977798695382553341064054986161029167802144002767122402455429837846525271371929794273649721889943122166684701980035876993486033284789703485940436977323946811948358994928347680682205564276747444715455631999754808568281394429053306744183086929634238192686422250451742651495741779913366511000735997963031973620455973662923474075084246270835089328717856154547522707738911422925989941543218208206419657570543199485389842104962079438141447342593295261707841504029027954787680990616134517517213481127586514354854175122901234042269292136149815857016221692575058238396031565545034848243144616991313168193263134981914084749662579003484734489297043068908520040993141737028360846876274482168301027095537061234093645678499326256505645646673101233264335156188630248529024036587658274148362000353866056068552614584124566757758929816319363154673219529376708605144720720162378274619914118515227821866821843486883336921229464439244277121741309672975449354098339475243737383683424106266596312810663134307080226838887063855837608670842266703022275221095195288131631136491189878792861660357002996135505365842483521378294172737445803501409538812454816701302466388808637865844887833512958232058967297339535032399110086464547705439747748655762356487438404354814215130476902186301738215650474871409680752275362526522986175216138038692236394430198602117280408704881686687555678063916442570443716629287440914660397813769471907971837222196556084182932288726005048873612581733450659116838122320644236288200668314340277184241397350935712396070795719664411483387632316494073452023679459494490487874254380636754957498351478246231138049769018336357722612232991683348521563428536050625151572410966816986805187829056094102331389215704397020880337519308509463880305747598724036691434482869078348038479131913926802208015706892752653043190539062010840998327805515254643103816215871442280887690107599620923367024283644500071585868125554127367333976935394787825556969323937529658592293928363188965027927932005887254528416627626134904145100044841528697769847218755063786850212411910208902634916561989736204449712935866540340674342676329394628050027927207257440202949598528179771003734597483234562953004004691048637538175445983866153054142762857410450930455488158962902653350504569509142918426231595261944494534811161742313666530670014633172143352868758731059128491500864134914110992110359541781773682577709893609556028019330375242363751681411703796242206784955430605165260676513101408889303880739917326755895211671868062867125733581619182972398713478044326759366682687201697644624870301381703324280567923619903340166850958292324790968705971786145797499261723135017834323529789736237480147510455666696227459124752497128080278141215311425314377251241729244064014509511864163119890636451708481367494138238921308819126400563976843881017933287078343014262103063472981462128557250888092083204894379894170681564741922413899872306541007293406840582074974097991886955972320217260747411853955239092845269857302509902526354586405300651579270918752655294672058072511470503759217871111355140074452372883418385161362566837046336971840281051407818581860378304165433065902873694735547078249632090248131753701481229358168137018897684283115361775092246240506055694108940309858589129550059711353046341181182712030708866855498534245952214611091195606983559998268052324183515110029920437901245318355600263932196466434021152277788502939720258182523159848428509455549977439568360688260817450248527267519285327715436450033087733538116126008484014169290676010896057684955329357166885455918336385946352454843176254290688671612267163871306842341178223872076982956425120317388359898089486160989862505865776818827685453393725393316133096744639302537360935632154805401029680129713446143417342764324718686970887315527469042527843384632080499987398215161296341204912557668481566370877422328157547382289575728861581083882535626765205631437010788280645765799428326388620560641198190560253945420173652312845546645920864511868699267082919977187193956023555756870917245871109872133464575663024055765677562684461910457404256545848881503673545201043334593265021377469483095296217146495430491539756421871530931111253350161106422304542843908721196542799982063167025393684260624487487122025560199071331771826930726490469171202351502488045972227015467784320940559636511863580701691449493569200998350903181958035935639106170095312185568591132667228802996911548913889677338990480816023265728944480984805126068731275815637572157234891697355325792237015131817389631832637775328616892052209001700894729538193442145416289246729090418244263312600215011315755293333839964751689182600274479087644828303634550038996918249567101742916337585016769000021976652631662524127547869193117829001919996311326989683413285937874081151484023818673387428284460101800585673471533895144724719202511868924252572084949229291715124511095861725298430512659966658819746479220835265065111743435475406476520109398687400379305174216508122177450880115223460249176317300222724562395770334691223829227402627781411881665275866116435567084841902276837739610181353271909277494350650913971806984508086089228892257171468303153363815777608289532022438509907582529657953932377012113440422096051199215342469529400905009482519191333506396438938374621064609208916722882850766423447146233906743691759819197558617422884761998206564994016651944704158365723916640117565896959854730946833277615659483878146289161268945579054566543987349341235395018637646573671433674315887427539711041267649732939327832582387613213554300273875135724704374385226435194807676778033012171268940529707729667523795201933440210768265710876949840113538113091386274154257897401103370600731108359449126513214705837641784296128254017576876333477635264475240003993599315080937975478246986623526115019274165718920871297114218545455826906360441419127032721606700192753360327871413501877427815759013200765703834712183654690269671305114610798195458632628053146281387313721768083305683976251983112816872901615010384203027941768271896267425624546151332869739246983579832900592078802971045634116515902016687972966305368294371096656350462077788590250164711423358486675439980503775791377207313837166679969180066279002422471560090903420243657357778453087358435404658169019361024576538820770348623223107129975994928040659230126507492146317911212849061457990556870444511918222924571218124301208218106575565255777181201779751086749064524557167281960879213589034896180733923164336307667495485519381367082884619114001415804846872104061691867581848735939032351161483314974622839784008779846481381195459131311862714479685502770670070653352946264593926602837270401232633639312605555528394203020596265472459170619598868135556813338613968619310651261096127166080902061070401818485502696768107464642497693724448043669432830309945073912483704760893589846625585127974539051267467345293976470999666718024033515842651721642911456108032221785391189734897328672319337911209593509925150304427924382714132233137542914172063526785124135450688037822163520816133016118833190477739817169275474725283387181123922833672897962682014459661341368502229815894377161697925596971096782145132424600748076527426975079440702424721681514252936388643266374659468008572090644698014005820950090761313133391685667995467540926913490334124056444313903954437402015548650176496781736889162277607168276994585936147718310963061326758415158403770198775673261944500608659522222618550869589971456029888424098551874015083184853900082368585814415887515679699897765859715415916180970036275990311463495231179429621719756161439979278926343979445141018150458129380581691395817987395154588873700457933433286390970043604540840630980665261412820617167956866303882451386850589225486518846089471488253644004299964374090530424949736286824414732083160488494618354067624283230247580148750879024468907361347594559170433175046241838869337141671447979696963267849811061999372243756690954346808456212513716865399237288911774054731248022762367668590214954355213576970489914839988255122137403747954293462287163298407731705716149184050585319816790050675654656715789718465759450508569889597925546880970749450309906379434875821984609888595081524279263242868954813696981020600305855675908621070815991680155764165756540522707612450977424303602977125993426728805896342582049127979517068282321128042508570440192672452715543693154713379916610152347096331725470607132043801185063082537161382638344987692707644741758353788985040706143935083867147699601899806622430098564585386054992269990254689483338103410011134349870750117800204464142818784520181836960209781853184872453889039665497681728816297949750304975980221487552496045135305593884756120607469749319695924597757978106379072368037292733238830835805788529712661937062650655726241514536726263064645799839313393769884963703135943691022986656940363827538991615075095648720115885483770006086676640582853943443240914679508013176879678677933702597485028549197782081897061844669596480637016422392285302838179448745480788994033297913977931723503721537284281112785176267704804467457573378131473754560394763681296010555006070551759142109070613942686934824131290161078496999107035144808363198485368761928804529757272995986740776101563117796247606375379484499293962912737362780484639508280216427318458444216149699477326255511196488370929206859597400192238236129611951838852537154342692222343781681450319142008141974359223747266745491575644757116064292021527252615313783908717090350238374280787472868574310207497225120894841670607856719229746426826785119625657641729815687640244677044421785137829480201283786582595648544705828531597912614592320659214148760490566472969857255817805799502106700644216239476465579219526883401080217845801995850480047091913804662357516334787436568887518222031194023188772992822452205793722016638405945304328108325826614688792038601477804743660629527186189141832355215630036653830098700792149496610141898260532739113351331766288695550135069731514163545860323353258758271364439961783718585697061257897627204743093232853772046660289168629807454785348385772856844105375757425769786516862594263608153000921747108298902724661349772626958973736660306292737279768239910664254662961253977849371379317287819539754248795936729836481001239484332702164765368816836913290905228342584316070055987376752092506612694705885156277744811717227655571654697022404637061225425091964829793513803306539101470937950507344254668306892320288909006640010386490843318772650391989422299667273204014589166550721674409165899854211719695578987257180723191754359398354922089636125012191820940572866062909540016180307446640779508877208809843572758549253057199984535207984772852028324987607103802945148195272549451079250140534045555281892839273349326340210527181200505675669936926846148336392785794886412189247800940467126577470981121322142406797420317517161010906248734604476954386743734793550970750658346208908966589673713909297611851684266008059420908818600667188139582713757614917131125155679684886702109008489860518992491138931285246359401307044071333970797717134929301598031057403793879171041524604748615549811288192205820871568987874189893877335924700211925971727329803359418929204615479165002530549802204454775996756578046013661759781224491842666231821158519331095499790469965799850425086599407681458438051256854494620006202488225236303940924339552895841690162335053835171428916768218239520566329130348472214521539657702430987334383722246439207123488982576601085448166202532542534533662500928427913939455897036512968712166901668828339373793943829520522472114328453260963852351378320641142709733917956188441526373907827532048075328426801848071832918784519255249483896988543731596751903432568252517599484642597778868684253060514030338848783497278887241228185528054351720761578385434879612340995375195736734611774225569359651414125835288901806230381076184525087406730475383727563915451645094864484536083095060199302711644483065685373824526546905952702198834471211299433840842654120840839239147603687080400340922082182149108288569147215437603437301266019988352085380915675731051461318572581389909983544357551207167425397685297376163002140020316009570093166847059144058060592342576154781204574671890945368118941180851123733261280314508455565532193515076923430237613604965571717583382808088290391424181422917970601986275830636174130740408997967870086672212017847727433264604575501506966725886319048456753034523534201110331635597906649988634292764292282982450724697840528367896922957443624651387162927141390897105726578493063653470639052019907503076315177132697848970715913601591926818033214220615133993756019562901083018736977410439808961040624828191325325200333355738287785109796059472794621997002294171708527544809597713030632884833859643896704193978927854784906932037442353586118420317197281114542832224414637484779131579895758724643631035376148610809348074981844945603709934287412918173735803136468350805761616589560191500945046111289557010831790629449971632861044965496200546689324840756298811978794174463556598233743751134080225887215999210024826629148843055577553820122908837993425834937561405356812204169733419177552907631043722445992296140202614088542601500152413168600391897978323367821084445809833310980743492174077731614801190763047606897610930463583615159805549693142047711318461308170888488658162723793169844533211999849463347241060489495148195752518489599925208803755623110384159079901550739817606580761787179768591184184810928331433002397496204358085108599312249253140187709568391246908166572176369569583015584583072726654102174920469937659633148002609588941821075615371595347071796850078192135912306885610636086536217880304491020527215643794920222088205669573536360204485971051526041859298557214012400337997583150476779313514829742709776742544780614455252433088108808700335757320796975971301195767270552283311201471192474690235644101247291100840659586490573952444936568243532432534937149412392077303326028645180585258560199353416365898480205548461009002797660213074555776440510565651862264653093822075838491935281370227501033394903506082789293603932274020855707709571719977776536119411944624075527863768557022897803698714504138497864109363596958771808568817722945660311301885621153615454077457961635865687088764993979584674204471807036543289186269649221150307182609772402282593082026285089175201449539321422530042770144564171726913391839172181517900120702789250424966086751287682569905952129042379595997931845820052667946263036510149863233122526764376217936107196242193643787020820404796815695334741896875390917372348895135308363794392147582532209532168936290420119871023684078037623842470920712130756995662308163574860552847083111210370496793203703029297056396344958188625468122549276591668013871587747824269010179256327397233189616663449948342518354051356351080868218936668120184269456031470097141281616274853151612832335279629555105289198881611816036785900588876276120364073096099377104418589006126056368334586104841044627883017759049210494314474073101468016379764385494067566597990352554240137330057886455273659275964873001499677574090612185347514199728914792610330575625937331550611082014719478061969469231951983768967816445946168634001673087535628958146562875176288696761088554369522915765639250366788896693893243460675750844324541627590411197120513972034327624094477401182620024878712653923759130300736578117538729552571950001996078176535085781816690218422334580189252296405078658418608189043639606374197101892552278875105050318819919847132331965090828036890501174762969334886516728636815830914381188401394956299069311320937967781778783673319760473903535989766291192388613131723395928399733702034334406145492217294606827874930969692175650319867508026036069912064370259564758508511465844219576618621557236183834753247028881135972467128781260190309718312568481513096711179190335030532260197635610513462710489112071338263552055977774804006004582721072167664421127308466675091626334952267035687237238754574703657774862086247270912864681762327131492674352646985972540768668461617591502022911063552310476908843338220820960322943098732243646414875146253274814245119099309935654582678313434380533615702761568172142597603614175383901898445835756875788217909092623652417984308818231238428900951735453293384863196519793998516170556895397953028942767181183192844085740680797516335673100306385335391600801892388659132040742292719605301817899641576183535397533697119507644048493048328707872491518948056003246144314146894864789059811035028297236265398636797800233515923539370199666865070155672495772364055535180495363098520735597168643956724526160043862057209643951910655910732057708413202012739288083650403383846825263416869475265910056518596448454788446044003528965084164599051563687606727064509940115912261764252604830987816146361393290434665152071024671650832496508235034243844400980094708077656392806422866908353170105566015971408997626088055141697678923612555631263051514607824379653907409180681745525405100547424616317429754856830643956325134220080146337042702698025714642167193181424395639338044250763465683577723111838403691432997459460613372944792686291502114469318121615298297965440294688274309140331814566745189903959292527159501293867906761376171086197351475040708305826052419876159083580682025791883244672327089093930721622964275764962681872032264760775478033710162332006883116800510701582312611613333827935545346137718739716056799945164278948110350731432427080459105982249291137669457623402107090750132446848080270756974452685747684150411474203799887139386732430436849029852268044242222666121164139958949652764853422643399451647661200556806536615098537603249680781044920300972734782790304080914994151379494549345841573513288898627061216578917170062594410617707740495540251216471976613114222106399202682539150371918352875437154031823728391496890854548092084317240314429215047057368999217486909600036525367003670998297863215288644521763240082091575266634722198105386899669717333332543260422228783691971732728233181242309334193240704959794648646670732159882081649868216224094466058312145924715742764654815417900573298699368090733556236529013064208131461605552569633284381000027544127123284272970988625718324470004352161845881463118250132989387407271254833691856274611410206598225358291725008269038684012674567026826500381024328879791779701502532143288732720018084029644101396579431721190146021862894297183855625215357507985797044752283067379703780782857059730053150010199781541540029792802326796507243604181471817983285267691922780622034412306109867085269676283437261443877122322063550573429868861035632403634431969816959148042387707419829965906403061788309763788504863132354195101941994504224456693168223003934471260029018721379518964991541833183981788742301440090782380177604867273207881476917087945501296732126461870853036101222853781704423645692669834820705378552607545246968741605969279872070940123337200967165435923653941148682726934016664819328616432465439830539645949849203992327433891357856422230062439982819169486431853103323989961512984960633813169482699319485088931611789046015223090343266962630033380958882936312890760999460203744684943369300312051190004378099785732902690061011087212598680220771356267218435797467246492478373006064399309522381138333972522919391420396631901604531239009482736330217445234724063290353686452922326674659740986066087085373387142868118127061489407160888415317423462450499130672824734892651951988560775766686226079925522492674041690431067895432281826093110961050940858858440787724569106964016057055165737197717647307607955525613772418254858381054960899970801935449459027155945933748627446488519666232571552782148782956808091378116554471298420766882581515436580516480167439326876630794538243630798238562392061336132893721422044937455517368874559876052520939363207478504596564712583781853095806940519720617465782482837370449607023359007671459329253439545089682456078894756136466282347599952534641594408923522806648577237411632881376473063132955181897156059629202917658063567824414999288028480263497981277519306285253016564171727213579807075848435405936914468023815978723860939180034191874768101387536761128452812173208324221301488199526163071065817946196186330835684859481309048601085454466657566817531213794001489086639079394512792374397007188822863210392978244237115860222645197765052985223363495925826888299415708722660465341474634916228883560699263208147569351244445904565157571961244913548933626096448052179397818099881264576733742938837777245263616524444074911433391549844716045036382499582119294473313926477961046058189934314692613429439788402969942498863911703498957266376431176741465467806522822833636557275325493708696304836397669899329708629020997999990524643204905212657535105913932229022720837049471956646947312927936862495890942874761378271814457341907120378663411903071293433929956413070453799077778665596082477308418463173326645598100562755548439916676693153049981603789879682536227948875794175143661250967623264240384295934534042809695351664812219211812205616474297265458714258050934152755726173746554938114778597046359047753522536223248352162724107401136698377947268531745822647130979329987713150886073893062756558589183869726903052931095824117091806532911961131976566523017513433581566347300873758652021438603876345666883532600573583893655763177430491590502760881941130927586835003605400951271948404884455821555659158049692283861176573318861048702683491995279766107437074188095018980978268878072858296441253221225550437890308042978030831376486012932056444635391735770998830316607811353173804863570081252195352638001750811058223423055148677734385066528156462749738709845506111312452177391455630593278520655238435143991017889011285408600662645956113681535473855523437851853450406009578062781027821783836017625911498464316561109591701869192479860281558878115789710658563922181013410770662704291103981925698428716607323042057761073336660529992257321284523961858944761621577920675970968612140808513184084777432986479235402610146565765936457594412832172894251263507315860878984855112543487930466624620352290300685260955791750530853559090136022944582616071865348089000317735160976515679057898967180687607813802235814721071293136154262738236111572977074501697631736865586813064414515880817869955033403763103753656407433825870981281527920198019069820882872486782795165508593001544157682951371168280022667629213424178327539452696699447294696287295764463803614753790413950492013210823418105489128489689322255263721476717302886020053246104883994700464383231967571676259168374902594283889471114639368409081551791618976726968454343041244047852699574048840475160840500611019743633274845013939521238696115394789972424725572863048831855791707180957691967931724280673137600684557019232994749439524869289029096134270603470132771160041621564028020010667847399836579330073188408606413040401743459120453304795435521468787863688480381260138966155708751971823899947433861873888064845659767333531117081969059076849827499422963661183633473732337819868521495471841775398963391723207510393065717673491356774721535768120583857431797209744689688642518331619776476086604808117775235308687517187200411286035815633990043357313799179715065402641579399851075506656379051174794232681032601113672626100632204353775142521907498394349642607526788560404750090176391837609322846012587697878753922006586250709927208108427623194239485821683271257565593925374306151209461866257867149952664987853264920723520608935932842927017540808565753475812375569375897247876376118772898790019034241939696141321896151520073374053155885539100574481854628704154016065260405416346270799995771922598063279093706095536008157183712860813680127651772758107691973918385359626936847974963529351719075418922781367199063282835275974198097147641559309372483621865090550306228597489833872663645860203922248257160755739911526779401917021491856046268589895958607723765411864583045521575163314363526092861537395620642646482585398123417148472532471554271346457755830160252111268063593770227206293648511865885285082570503797110342250141198856323979998575173474880885510992274482035603956698576433308231926452460598442340337150223452488415289056231146886688623530957714256246548570944521731843210915467475016779180153431189344992475880871253739547796139410489109747422847143241771699172539217704139074750226331581428328237144445731641963592916653441703472319669693725162703797306984748934006887590996679364845170254950771363464294257508168331281778749674624613030929034105937415070114955692906856738857243670124670142739107679823055646675485755116695141185492785321444499681962167951527015593787362457578517860642867536781311887341152983832476509843649078192076322183283683842369531228880604730638163574033932862501480014156831492711535226488442419708744648586758596915787271052617287972227614561880423926592221607258200869296322281846441815245055748361853543052332847910525833815644488516164565207910885804566530040170138126521989841908780520084625452138972051236470601503030990956851976410883892076113885729329316530489045789469658065066581725428051760408668928022388400823379416379107368958089151068301347108372900847534760927545020114188486662748820796103886722486582188598257652053934948934382161961450362341095375067297257791074325899467429954245841314985897766064874459028540424310461882883330450636885373723473621847321986346556853309571045477667947032691434392315006742749059412967473722799294769675139472744069147590909247924962668527587698239813440133224647855641214838111248394662147810346518726144251535091230814883738788627214861107385613886977654196499812475928776865371803142580815954068191306556751932251634216710799665173190915648925120251191694315910822265978443627490680663974595472106537027150422216441291780740360747246054539006117101238243948162370949779397044035885340579924987888599794889586341372133008653104655288534793924768760430718819533239699853538705332628994303614513645970916833535000236196008319754977368990749460114915848387048128631295223152746532087991692101805666887784299239537116462741180338304060331129645508615850814283345285142249827423567606494174331117780551670728614527666080833332216272659472656734022095956025653031381600050199297115093018556233957165685766928388942461718207138994152090081602189380409671931729608502084777882227280328463552243657185370539275370145423879459994450236635571624517190898662105749558450334605279502867069877691373587363022596294434709176807945852014146783146707352264793886377111319570273408222142681541778869037521922087402530348959623765199996173336451523902102200632709405211243321206893452470526649426021129092853830228193321552428455876603563215561861527150768366267721881646417325968138647081976482868304918092538645696067441525181524232435090083619988652852847704719778019220243851787788560794362194853796472948347392780917877333103058958923422329260977979984100163415835713028824438770223262410606904157057260175806969989686666181531358988456299433592946264436118216032367663767750362082636177949613799780301619787186983508725654586383164485774115913259905721515964046531852278192410852266129128151244679679878738317214011193162057464414583127807084246827056008129462869873258918656368408689985344986658630834897432242275951469465016667852990572370079117229592968377598813904510791005406200154936681159247919258685794581396514916950056843041210050471155375406096380845587065552486992778857800909551101693406025207446695279370566481014521576733587761827136553657279149291393962713526760252357394759685920028642147609013047494215376348803792930681241393182966677461722106454020315366464813741608299857797954016732924372247933501661012152921825816830185518970794511502397344391669337147133663118232425095353165737123745425293859948927558012013841518536814526931359897488592504967116513203513761194372306477871707882886468662835507924409070772353159707482660276285315751956759428242916842057398072548663552555300883903005960040448339111263626652696711348301674198278600734958905334549378843757615317683041178517303618155127543294096825809678508661031096018644777964494395937326749521715930540427256882650854376594514378859669834346754184960813309346352570490294256021163115448555951696139613069776696404125444098576370916199887809058419633030092752454130138605891964454755287620243212111853303880056103718869720802774932337446480000480722624995934392453241197953927237289790693008462029157228415022391336274784821979399310130159665495220225327806604650567879535839292882390591944864145979263465028606632796112419323980125637259909844266678707048884888533731306860945129296887565461127999924842989328574420374419359814946941516395701158851529432685607662289111460639726029640559879939474687068206655973461711821508503498137534573900925107693327873004649075444148457372922627374479749577581317257547718532614477603759720845062084814379474187343343563239501982094654026371399600777147803302260795366491349194440099926323206387302795514498724819030170919046270595782709744796159354493537206489667944346996573574051233015088887818120630341604268932030655775877609154521051338649374751450748592667852748481344220587466036084497289822688137667745656819487159448074403434020237824417333053547703444602924659321332756596069005439569896035974425387906630445379124369698145694820115879063989111331149825836508344184994620978149377837325422183947488425118255146534572924122867313233794334429641505441886408872649217033553800460272932746048320766306931404655427698501806347538923251451497358344878060242819630534253664548232501519568363760847888233169844129785851296815958873396354377110333239466882935298787386627153655028341193228019115677615255991766751617148166608165574132294998960720386719210705771999797030022326475741247494764784164593954692945840563496090063603554629885114745994629138591506086608923510313044018587990081903094721634997936098252923542520763499007758262917405435764721518825754704442870922392712250822162292253332337223359574167253684451822084786790188561236496503445205125094161340859352138521071279226874866896254961549924991800592264767541913772119748140905724477721578193946208798042806261312657650365674201428150163799630390826290569953639872974752152682737913419628735962902012549371235868748756942227772591184567461953281771875002341982775825293263001719699607704067817480334009147856664373197988447255326366121005815928427755901829021802768957405066469944286500928609956308467215952634698135957263045042521598961420304746933510987018453744209443775569911659433492879185614829823913864154500466519623212934785078440925479879485927484071994357617055117364965048621702328019651328719427927578132643117933870376964754149453686774741575861117186903735983079551897499905677368394050410521511139844445707354751632580225287207889385489204197776184544010318088318543640566280900676305194493371115006708535159038936173508804523336500893205002934093622772144971206616395186122631092127950549742554832260399734821814613763960760389285462650704880511420943582641758806275528684004054788649852994236227142332646268351475719380101086856740750607397301298304650055715956464911452418202833022245951337364670306313913483712730549620757687455426301994700478178203863578399416177497325573057538457679029402667144507060653223330067104806564705738817624624869347307610186031590742958004742838269302378890056860809181364839793230490894887386019068808068062463900314021231787725046353016590114852974862196947233632792075247974525677976841581289106846098455951440978929327088244852763600857654397999449383713191413911947776202873106176944044150727753951883982710405202173761611931975934624345097695812174029567842072802986296302108718611008193882675238664729176833010784437276163705993862696550304712189866072214676532823560310223878127341093476195531571768392667954482811130638471621959867177011021062757333253262368387999594540883443885374674222013236255321109706133991186994235128343550244998857124421377856339786771939176393532488143336138304444267782681504111885932719461231199721647636702704940274834270841379685369076680675553762570271969266456381405931287632591542178723456110240312919706465106472410003230263885234869012041773155612946036558154431607046303473196447062943072323896994486688339564424276410780452550793582018171509715980237806723639464723024827574223143847182280662830128421258071719317127851289235238652690261083618689084535714725885429700726730616021533354498777410057940296243911036271388086776282747851778656695722504373485564956910442982131059648451623964783940344639024734461541403588135676263427355341034221162827340286968572662592883174356421533847688713414214967336966189129694176754838020476985778547730735251449506572706391042149987891370729959013068327990081153259381041837451336917676362705751407710520480752370434971990098965961985699560208958615490823105183040951691301702431015804380181224432042026765199548264901085523056775792775618627923863235194808120048194897598323630839726742911459789284670804026278800753227219346840828210332641633648719461382170575779108574167461881619053974114248233404925072182053914551139112435443856932091008112881682041761160095022990752280864637344908322800562670550032012196446279706015747565893036897470581694876055333850355699163056689658087822066597240479883666502356858879061322125043717677027837518821000025162290406884291873529542398903233812230566747702810812896519110199241176693046176960783504961821447727997538449648857548224662681117998851290129111760610776314122592204697425857466434317767318603368976225779551095097857821013092992133252074417897338071418385778120690602630629389198216719181135253352498794024780563694169950038487164230462308614659852230526359806653740233597419699402919135137380493347750118796678948039175602356070618428379966309875449054835652002894307903529966605805926364939979694297475940572839375823114517859810966804502752377475339147223477533233727587891071209022983810821284946896264468462678853899305434467577014338442026415725157139374687790947770477987390575346869028143052056118004123633182504777502764210213990362308341342606568324158217299154294851973935076760046571832247495937076485499635444141198736804291004776079560857562906494651817809054881111140285911803175014610803692509418710723696482888828008988618606901182715607236299478018797711425244239156268764139800814499434976088278045115102678869403261812445434073306334571388460260318009325084985386526769484806033326177351626614246143185500239358842936405060230634976061450508898272082587441761409958696405041402009214761057346623500352799408329307089116660608531705502711037431257660547137645975547971618475451764953937114566914366295975570255127347992806601486990888798436068002176232392403007948213448887498919907050338743458163905369767409417991239068259602037388999553754172977923653491305287529991393893615158775125431662973892012537697373422216576842794239030448510535938946194061079617918267962312603021718784732747995714018735801177628403372027971663551590110086759414425898067197915817267377774615044172249357231471622569506619003644688555465354080548357868625955529950236109409363157085046198484355035263163340363072998693702819265676811493717400399276865210118146644017434915153274321104501795451603059534190619531001163263901758735116808147467630426387859701614657610287011750203978567533883616611458972024937130062322032465227719267870287197843533233791793396065666065668793036478615809423724369248164994991810476341341625463608693712774642149806263497587207305519838420827084827863993943937101922739932969200975725905623147134508157499531425248807786688770873427086281715482067145854201851447604987466950185357798188642752642571510181637683329615308329648505665083517165603341464100096057995724354542014944158468597026463022109614350681318636448577846439127191471959646481104643761140017098445183529521991389335863043449941299764514146492969907389611372051445673482858446963182980586332619284509821567886985936218366352765836509038146922018514722737944998152574836728784483469777443093913917394676417500161548039548004245464151222520943916022331642364343920555211806588331209421220937585968814702350213524616557145067309061701649067337773248087339551223498660153597509894755166402729199264861089670363086456625864182427945340906823298566033002098555552777010076793670569165334905972204667725888921759233352718246519801590630798378629161591633807253317275276661265240128342843128416110110895749426759001183310913735558067518084274862201141349401552997705761684480020308720021907515705586821146251906776048630948329927519306097717962563713131459586780166242599288054739122687997546917006547532510228226890255358605752345615210734116149043443555535829989549898175577200259774986176526863148257826595290747214574257049061376136530125764121314066855027233569468786735986850495209423412369690311058704731255489520050040493439969526265872906260982423498031737621481716980584951383084780947833285026186319643750497289712698780721364313605681062386301184587373415109973769313204779456019243420740906176539487468700591431083126241535476108188847688107373464135375948639215839509902436830303475076171237038530760913877543123168545429850686598381502228138920990794042645789641515700168559444579305372303158050624103363816294567131831132296028050468157317458978912372274032001867249698692149410020528906277580059506191726563227973602386301271037642151105534741012604046739882429947729467673478761851085933348277022915743089662561862466475687499014228094447660955978967064077165470647722881828072753683416841370310567908246450231365894325714056143052620493453629679017061336333263173874326509595816820187421178188625252730748059579748963442045133348801148328982855038064307880552923061054639285824708291282776888905277271994964617808080145730300997040270007951185536233678552772253314385173878615234237238843207964086688395068376980263131823608825247450108823123312285886954313992426690300978581509247618876838448694917968371764652900203317830986253563837197419485146492895230474300512468444092272064056523789006178530919606328955554042873596321696336562995724828469655286929023115983065000478531399075549205634948567799925415228859421811579837550930881142092272923406722411838950584545044157112354762518521080179848675597696655410106786692213498293105300417773311159296579225892260589246779134331776938198169812103495129098127865736776124774765134874848572765798515505848098899997479697226545200794720165669998689430996382681863178367438505122484144758096915192454296393821032858800631762094236608041934547213249304761521221381674376067541168432182749237945814026382195651258421280997156848404043807261697561289372511435973537851121287636795925853051039554720504525060789168970856130240675480334226189170298903895095244527561721211425605800377820657386871067501091428944966729092181240427475862165109845029718460878606269680965033104049598784499966647704426867952285391213653116559473431530762249493283031127003025723435786595563854363420478978315579719730502094813092159087923278373038298060106812365914517573953001203223922350115067006748377651005871800161575283249441817651393048300029825710179857268461524053620224188592189376477946249545134299427169422757789342080199751483120441954383389479156255105377703458027985419744199931711221009514054906944159753231008660219450457504853124049829074976409791815438473025862152657923001221950626843047290340347045481547454840479005152401554780097016267466949675547661959162126492384550153840498049686157022508614709044353843410255668931677917979728760100615237103676550260911649694869316766843881287295052023227934811123766436609523207479762439321328547828729063639783940457980520243145364981252012482141753219664768495405176606204101011056820496772609793795830456116587009670270793527569223685122770249723169255627848939732406449949693979575250820185411596531844340307773675367069239679320330127328043619431595049617965125026908125741512268741510482842171239295049106160193107235260218916556146064727438819863224270012215855969948734803564591866337355554875004290836580860244757097948813618836353330106560739026415812297926505492625345671303534331020569732168057574949207130531878355088573378591617248408397733532726502523899915752630697583917186376880733207988891668151005914766352110359753444649293870048489065537755381715776586526909010198924494392521334507135347539843939067364442043585053535708227936953604719670403586444937298597635516656517470920557772568324463050608267447420837397582210137608715053303249353278450548743641828788890863789052039570555715602106413752192275512152948904989207286836513742965155221594029290622382619949911700311639718472793422285182022353931077163539357140959161478012444633810573465853894346316867503584245654133154736613061388020751980595767656243712263291803473316068944700660425064924199570276952199074772649274079295263038207569987945705681461997603196144001088464805561186029660358358146635743392609071160994562393586719168921814996253919214550581146974091413053175753993000951470286588152050719669056928899401674492258690279905124561082506182194278089828428190375205523048150643166485086216124557428993233534272747510961928145644340668843777647187496655695824649164629673458913820647796022398131892269808796848098745056853432188518549082252474746262324884110584379271071504070725857613868898358558118426640974834747241045154143577547447551169198206980478340484756569872608254651760538912801373756349996232989571866424022187464270726127087998622305650448388544372001770443267725753433397267893215948175807443621995259640094091024140326960077958394400772263355183715594289707764134046378234170573592388771724803738535186388673433214913550126809115720002552938413934469574569055495325616257982309722063027537305610754013603566348038526009937514503218223252845275256551161367612825395685051892792498398806929838513554002002955850862276209118875844083717814024233554122735707960813123233648831497470885396870898956493068283082297798252599021828306004580846163740125250217392732424982501548341953143780778757651125875903072356275654422862861255410989385796700166048481038011099308615266182590566465081791703248339562075420582802020051058807133461763345018092448635498815878632194718970920044219442442838320609015986022793928585528861452893501338722553684858704273369895354410322364226763161818703342842251657626506254631191097930051323838806801856968481866844136967164043615750763891868508768284882647931416576786088494270686599417961810296400920425991475018226840389551145743230962953452606937765407206291754983255546601392120502089703363074629142259166296466829951218297624825756546283110425361441886729223262675671847363522337260073212809369711996927812360886395579584814179149804155849389974547795360937094833387834084725522461916012750902906045443799848947675406360287284081479458299200066814968701420815583817723673835538288924572973613618871605893160440668254314184940053372565745026895376989603297436140877064754592985011414810857854255047596757987636338606755441305905836936594469261733379347547254774918221566058451880466050758716980720285098618798514611750362263351929096100211208792114361648232344344992408537776246136237081117403801609506086894016184268158580715562746911723769989348115273452276383805333539021677665739837799989020231721547820608723981953830765683435726832358939685542346442035157623310349599774338942523868408714972063874107078530606093068931930230882158614694738637765864320302323167402766724579954003778312552381798902528815563290921424298575740742330987868512620230163507501901458450864685895892612395168983234267466818439251252077540120935893564049532383721092669128962004547732575393711572454470844352356571971689788457082443668732190595583389383744261731453877768574348669391515146581106881106792025870398992066126727069684450678317412373695656369786033285406063170179659932791178340660329912622526487885113997395601181200960012933421169147849588622545146053148455167414869787692443048841378898882658709792238736203383192255546973080279594071774240008139510424830818783530425686413617373917050988215206213059321431135355671728397009634705066788628009149213993302154108030799117866236950407017745593707833816303866454064237690486741726320057172636327411409207287095962267508926312626589646458821076633968923222593202055197961477806512895665003904331690402163507820827302290291556707505305729922056173918702409597500312268861151371444765025718768461546654781763254811846972013779843104512666962755041268474333125698532592660822264855572516673646249595169491770368905207903974620491452824880780333879712765217622396036364746360842665829229546632021674017510691068103795792410142292664106232453544981181241366886313281826098629619569523560228059792998832619672240517095474274309857085556583790807552420704138852228890047708092020684007375304047930283707575970117480886540428235427769845961619637972106398745108730486742880506453945659040326761277317925817371458114752786512023407575753466978917098558994969972963369131180567289171539242572153000993998581314314118784213137311374115638925432487378003795615938966658076126338165487563255027746037530266262878367063657004942011591715414318492427988510341003355581764796517850617250003786835466461213882066086006915052949355924202732170185431221931511903672996747632469611419470602974119961788431360386272302014272615408991444628409128633840079245874178882827602171313969520724201272992966369056839029129600529792027578691813492073468313943447499971866985075652967347363293972101168397369844181908202758186087192575810435017166665312173372686212741878879640329867813879867869533114376010104417409670393055053017215892032993174834543075653202232852987164928710454567954887413444504222980483513051170999521332617654219080907374860925943085759666885439290586472890345863310889930334988069344714901145598999023280243097221062539605220026356477346275781494520024546475722766556935118533454654205609865302200743307502182352312605879820163516733114556082288253823190518976902582256423831356555451925012876232400334395530431619388999578173985078881828858061038389234253234180529509560129829593362504927874079460151433184374278104284290731092267573922680046374481454502451484027710493352989310336910729286725783717583516584090779814971928362530072201191691070280711537151502172425343634937856740650757374405552142069518188362911000783625845211440669174983560219102322369128641102452419350944228884669518021394904955730210214299600675716050742027067435637024620025987850807649867796695582417974562801139272819863911316157970893552169331187755317677847672539818765913258635161074933420432228034248066577446985861818207018275216149724867451158167049309654599202972400066598633743179106720474716469221205445053585193596202709658964533483643394095900913088558613630839686495494119660563785270440901808201062874539260030100274015693513421582309170563310023075236399879360114881609544395001307323956573719960788301365768200602433300045566208238118655281280698865180660174542400440421631286109135405107199423837382138826331654048569753142872514967660777428340776034470178324087277554587809637297032066034013181675676776654687967438406156850918532978505266690259916860483316481198159120918321949975921732635897671601180274157501972721207884698455872290649866888145218991120907129791815063473422545653270009699856998705037188314665731130011226247649157914322436039360775157175449498198395549397241682132522359985586479206949752971845713205029977974667078176570030493199458116353906716599751519812441478399007255857702356552645457182954139060218503547345204262748160891918717501560248487694907646971464895951699133281855805793975916189020330355877923982900923588860682972441353864448501431549853158545427242363487342822335679916095995420555412729087210228395508511622725561164051269829403206157309080252076623320909393224688617823342916207681143470166145612452989458314498686841670521587145484960585178086040310263440246893075727547948237385421296928937625673820125256639328831093836723959895766717071557591502996438507148497303612563770687265049174096681060720385355292595025253682969320642031474254719762511778244022517541320144372650722161553424570590306951812211735241757225793041747948256584079085290209447280716922506713703473737184576556543951399955911294550663684579232011478220988718096743239042767594486852752094603287676942742158114771529078065582528446531878573407762005645103994788531721280787680015420738627081352749739072483741039566882512836525558767208760274225013913808889696058844196662404804182697033827761767288519895561477284572269045989127191231837241360347348734328263513986443022232484031147585192939558675244459852868911674899379324491129794281298856679963447833204654620554273755986380460704310977085970511405127919636879766557842100078878504219058092451680331611174217799963258248800598579262716787133812683736441605612444512380708112475545825232084100927895201203339396449532710692001231142131865391194272328484583245034722892447244397524762322546815790678543256033827451006159901300704065005874353895121250703022161146285054217294526369953623230988425459421573465591225981772392597460950089566652620976549396994543411319798319419855557724893603739725467121945035073665346376619997472575600128115988517837005554505883988996363477056996849852128133344550192002889247774483140152711100862571073351275749604438867951365696793016304226772201942799828774621096265088746427957396195095373196702664621760378052110891410755540567921067972293408996395036091721777892933754453655962099570595187834565276943403860987094739593560548137492121299644104308950279145327379247337667982897375628057835520056366833069936969427653869940533989502032050231939107523442462726698086211542453029844102766251699205692066694390631388774768860525093306104244689118021814194765048611307863468169501922304948200197045096721477666453510801779397843708520433405474029161655084593960044003134142358016644261690420818002718935142132158924013325398945125732102061109908263617834669836309779592575164996892644440994374050508000145708742992693497513907467842928301779360046396213391539968403036744273633044350516769753673664331549908888789362098739264913764166889878025503018615187857003518835421568427991102435965318234411152355106993806844780422241811804251788806203268279595833099865454784100062461021819897506869567281429466679098357345303969930727213875738162023540450151072817861835412896655761811600666772402487034344841906842034063372300791252066585487677051341077114090999956206616720181027786314102946848415163433050341082820469788758761655398881525451989572480664759669294724547994352639267746331866145039690627483874899417353939039591624361650181373929473355885967411877524263533079101313137725335633589706955021969522585606334332766852000935432384228512335280876516796273960111556581397768486510965762734689495637490771049798749455917270253943935609332460335191513558008372433392143471668229656403032402173530114124047714250928547917200686988302886004056281357346896590633585093922746448889640171684662557611042104516049625701355096435283871156414670237876220856038978737809372539048427340456923472267626523703377084564065851201970758900617372043728305732796362541312632863675571198931887133755369503271782529612383732007484384716931348476871431663773306712174398744862753320292510913824631679087384521669540226274787078539090099318133659834383295877878695154863575587806935490997483895713959848646135849391475285616297361640472233237966561078109366852828866134746529112104990514125907025199166639845380647244253734950506521605624073427994153408076875013144108806458007834678907260684661646784207161976498184264819095243227828199480046603640111403361511307383661885663963625621768181154881626520816855103293774647279093191977838832039814077067727354997937022788620156819200452819150889768284886270281975556297437715258072684778633290895848131467768872348484292195620515923010118287610046632124025095627181169159872514077539906393943821032780345582357483786312248037805308380876750859238837472319622966252975712018680087787156029260172740590082542713135532701880159223950742043928566934422072809087993495971091560030732443343482314618226323833378695944005964505314463527817114541964938862864783313522236118394722251598972533337107694385960091593065878553839675221446104931391912154741836376047020197435114021591409072953049584503648226403273412134359026857586681055291900642735144917146328943145963628294609328827470505978735456256933525242572446061870759519160848778168952401373004954903969341690549287629388447567777847283533123591600028625444665202735675183283450522043025464478400994245768116705357781391290977116126354252847613090263102462841543821469865215960719356374787023357029014013346856942139771346817164663260981274961129461450011862411906067398342195434964204136077784395694946162201089748136934750433595470376272418912358292013700249788065016626884075319452650963486123635282792926805651453417128979156210221757575129683951600192413745961797585056792778941134158671902557490557531552971600344495977105563907980065649814891080095552671765437688869118000874221016722246002929310150491672857219824702104890735052295192680266420912264325270243854132691420517649736015251279559087084611295694671189362906755483119890487158755910331533316155531550478039208105627995883459804715029680543924415745043499258187304223914586077433660317367881161855433338369250102044715521013548345834842756660007816920137840649722243556711282932618985922541761237717698799121725695493645058191949424991744949669253789565514025582110582251413982404408327204050765977208709120580631413313937269083853135707201408189376828738882135008491343336731385725888672874129738615302422396618629412605744621963729785795860576350230494634972118696512106043256515479612822234337218210205443711692374467475258269754239755475241531099870647796790057351199333272650967980753560994247936449551148055390571032621505528481754976524951025171785285099333179564122503788836487102563415817931697702035948138887184329501737201462628206056141157822736068621273624306403717843417228841565170178659086210314261999062798672755466283231469826317195495771205385417646425541540133548592635674046582062472893136639966070939864993028179158919981367671317645395044638014240062290781751631913342451172332019609823488180645060109221699478348507946913155891337377939080404113040066655798917293033953310992520825195584725883256094182046211303593590005955910621767978711168991667957025310054458168134502187142358043307151236876554807204553896120224900337121314640220185635187252177435611202445834279745081695621807563834990859948671024797446910521172834747581627100695796999067255993931449149626037546165916828988925480809278760375396425630373686915001867789362490747254091991046021254866605096823859869768876522269484875141813513452937069077994048779578634282000340684815839303166718230150661931058248779700887596207108552799885397714576808967152916300703308435685065980468179255674244284363870008869370321860291271643829122911413992537798829687763292136224607332111775777256443488639157299181783305782914730728104454331156290417921226454599481821320929526424616279543760737276717532548721013664130147808661886119782570539643611657864196946116489758642684757797596019487323897660167925472630324744339089232871565061313888820608776341457830479601367747225744734501908853630139263689277190225293156578287108485327251883980823392684493293761315285344459566300402116349630576242629133495992606802861278884931698657925268581228148457072123748380832238815368280493985262000826786681916594765033817531358256996063522888978051987715781417050393998262521731304192692126370839111585543320260759550589597748290559110009857072992861411281723987064743259289856186122592511673412372419516324036283221041250794693761426414643500222934624914780702122015328363273611855751337006885328669712395541881940112538326777409666380781426533891550625617444267087893212689026021716931688482129420072507791386959155359371187338053484611772038953898694926506102924758686796310051096758580160922603451164756325268756848552446534860673616250070842921604317628337230538041377177859457106123498314920666133573915932703952039693990491506508579843533559460815961471757080556834992020942075087344794572985286553860940418525646953266609498645602194499000467701439813770759502522716383316569441441316875434537398010532393133970791999118567253901802222601578674775563824413463207329602913877100293483395397027016877683479531920761754232539507441022013434675462963201666882468047250761340074758486482883123953972652118420848943898252993880863732734771110710591109784837799865610876470210541035654864236626821431390524552160592275376804116151001906599334915902326147769724104164998780039038727666203523067615146954620351138898958218811973115403139079550002702715194207087885406462565752259509059099132992067114761204548868038552054737488957425981515150189532185683810272850059964369546821258369990867518519124620926997161122321023068609282082188166137638290633992535324027278813344330907675677978728422556724265191722432404190573846414683038218822483073318781137398957697421110955951610280295889826735566955313990794843263191772293820274508194552635772318480418103818365888243994166576355448927677664277050548017974165305822243642714188787058418226953000851631692229459376482095219857590485740915334803760477965026856839543956262202007616136132831133915979082340315083908852682304075968595847253113290658723223066482503284710372698712737285758920562335927319290054823154913859239401900005814902078995034715187659525647228528104964475369489390088633421705206535918513443825945234229132874613201494412750695545566790563209043001008956335524609874131378808533366339960936087150594661653847517931364685231396574240829561597539016251247091394775175865752106876667199072416306591115687789244095944621681503939709217736504914904401642453623960476352996552043293913765272810082560076278975102137927298507291661432560068841007753441404584176461772835677776464730992541762026777891163441429985618069741298010542213486310699488797159450745942278357924124037068821747585204096143227583552663731534391143362518320955126371530368482699013685152471774735908407641321377119305983039157584995106904243787626583733838745778319125269793363796396090104430844092757294780704668231307111600292357627090303359844258964052965499939052817476650254050506400387319035228253270406568749587748444201183578057243034771885345361851573623900304331442600307541194481925321559912853175177278945233135891872373829913558148028781387407678255133139651727055825088239829349868402611342212360438085834519892489338401560778474447169616941516004400832213723912961946393395759274520140456886329358615603198360142166146243112006320422790419944559659471806162904811286396249085528569522459639413786397247032604564880675316826573618723719915388264944279397935657684949536954041382115387889370603842012706916500055135112195795869954096920892930285058727392865059261729086545124890897360814507872320302505562052872694736360739098742453147963823992693835067181997386074921557505769151143049333367066460563664595155367244114354531222516245962284667827163630213096761073404370662817748750923374126374836778219673890237292580723777399426345983560761972415235831050301094112015678609185329101092233689317972045019712950370478564333809258297037298524742167498018251021882110728920090937233534623553092680929837507865147069698465663189199707606493440819961981562487139861178643113196265633314625693240643937227617292584759669952447542618917904048817676987578891613420305626932088673100463816375879714338720317071039923251770403086099882692443272525579718751016484389766941537567739083846890144953403135489579881271923828227836719024738698828005317515175540747142340228337388352151307985918508974112596045850320966854657536528535900107712812026030024470414492369561652251828832278138907103881162266479385704709694948509182893566828567782820837843790173124506186062942566096252278510886165472104803135227610499243640317372371695474901616514552440818196916339701843640048464498063151467670024147517066664577376439737638158380891567437835824819218730407164480953985004803713570724178587947267831894432350618712073024965626446159677063648337997111914277744470514007377166226246891322062301777676103153027982429450902254256827155160464547147887204394156027287480359267416850756594730088237882913878382907377116522573693773671201290177389738286360012736678151539388206577303357346902879333526939346222918433132262338173834741642301517653550681750900620587646541143668589879295284673544548772023042445386151449213468803108884222984619679613246866747865690264640697539472129131929762790370832823370781877918219631075004067227605247856697575184139330327548623154421605447349946227654358766465780685526717313750076046771343556747195614642059809778164240646032983927991839613743976066415178963973491729077478683801343893398613470696758279227320475813568084753271996974385365835374815376462874724182954431030180416505417290509668436235898759086912514252852492440435432180353483847263494085253705384846722353572527878588889483064998073074656542685064272501736313385157546228658617157266994019051423760303382822764294705022318465612348767727409790538086658263779064702246826285503079731939099465057598990881014604577683017530071761254025256742979842536332880110069430824358241231252591078112296814275883759667193391640667399971067670540724660143166286327722397245227003105724739882371474394640460566268705136430973765706690611246176462548129336928647951626628542619659115437910977711544612278224048658270321330106079015702985682981230984185091007532402538686827599035637524144687742601374087562304685536441487447609457798746262914085886880434304424857105743595457455327522703498756799506311805781037027993473846495611872817020211055707316896803500212295023724012954835196312218172142386843137717447102179866725583982994455255350797771910216263475174269537704838467343393252842986615785841495129878601903632880978821848022129619111700078232011939394358552303187614866367126361876949896797933222982243550424896997206906981016368860926632774988688910235432938923730929433337764583662807455524742697194046004213361646631963801362026089818642838574865252989986792383974270639666689811986379897126365356903204442202830928574418924966637891044040217714806415268559915637457340383410768417751298086309774524536746499847588106839685093910857880143825966437379471318393811469726553891657225619509782746632675445448442492303609127811435554137619539790354733497486649235108987205168622106954028598749384988420206959407266951087946437694633695901987040221281140488403237484373746218163635328599469152953793760688918270390243651440767513582653306011117032005429528985781596215386947326424971579205161512949332441555505183168344201368372594366320753301587534042564127444601046348215770110493120384645228599711014677463270182793980832400964966899400693642714928288470509624309179353799634244658817660948625131933074657914101487282978377064907562942129167661783005349013753116252514519562559587157503285875771622595520486957314616215840070174821283960826122913372505656695563593037736117404326510901568651908707522408038484331726288347290225103862902867703569888527750928907719226598675571207020526239895319474817845342705319978840984593713185283429978362924879147627536124055858489777027886741509965492843405030769262590400978260963561854186134156666526271419859095389681981123677109691877361435405913381879721787882429685711756719258966883967722241139477133332055896209134454571737984307986348146179359064483575031616738941718943613736353438002596041334873873619477719432252057697774568807495618976137264464620591974741076437531985923933616647464352785312379140720066899105970809534297986629927273303386682642031088016198498447694684944400439467907213283383109433655904199054758060119395153817340890427634246967967229081729507341216530684681294846041505897644057294221333398014606092465636044489940881044699035154557664616476383998125167321041818886049991073343021780130955873768462215551983474007874870048884083488728547494778287134900966306053061820887634964561794560864247354241319651163684959468764020238092769325725349071087819778427882549021837211105075546175926300136988741375420697488389947776277826530936431649933793540675901889787431441118779490935717835488839885501833861905578328651449729047377046301401214368008821117909471607904700247182751246284502544629104248617507450990373876756515386864985140330211123323450697420167261974943419604433915050637796508501258020588563205869565276190638123496914346978071447014466629520551239075257573487866000961370714108865189891060154501832745770367994618968746729962935618865780466713067046319249998623094803451339031102820533559238134331891437142045971306695421213453319816927662377897083422035396203493015316561390553863344453957592809045781401504417624868711332630882780079881217779540457954261201764704660008634212389312918319618342162059531187779832252923882159110671270585710283365498089993988188680304017111978138957556917957284129787126185504913877412272865271715527205691592739911070027967597589517288540325982148910557236227085066314477704428806359482665613083888748193217792667960511776035405412320350282846584067153555360533743625727739317199034618066933584720321207375661270714730806974624985517259189847663592681815084951580636603896941240273153391199813461159422075834846822128342001884799917601927976678758351743304066063342597358624629911113822292998804145265703046759917255261328652489566001128382938797451388885226283046455870651571725472639003658336695050530905317579952450819881217805763122766681371869315452335366650527253166007589915079240465288746378730082058746895187235590855716892926031890210310245160984635106073490454219203583410435152773346261698035695434983760990871904536402297261714365761953735397962586266329532677738733577862682985327097506362298760018753245041020788159649258681872406050102366125482830571486979999728068419427689127521391078048654971579603490527781731911285990414643355982339306445256042865268811137835664592131605713961369613191408837536577529890334137067253211166372375572472496363661429173190047379496586898054465008417128180653689409476795847734955879584829033679702689825505274225302164253411501772865104502390792130669492531998385291041795397945232710507706605026940019461199051827479025287108939281863507551100813141870423411299090862516175072292223642773911340080581368891694802889243887930266331852440886554070632299118432361515193426666562682256465794378660652131076607270231548835988300216669912685111357770321333639793984763119544200348168054095909408949638568368618454475250647013079557355930062276177068313790045673394676599675305855324788050483302245466664020844343361295811484540137932372014890350037854688061349256864580473204479628229956205880028510980262359946980238974444943588207860547796055660797910409834192555337362960987881178648569565997490597205930686891656516190566330421402956540309864631885584229051615337566244070685534066462572178861586179040907804980716208287251951082114642220832773851915317179748024289479518865073033616304295524863854556695547939871605576674944688835207137794021799286989470081064087608538820902356918967454494728471687280921614729719518083038610444678396893602739513902901512079138339502530444515978751465385278782378079424489034264363192175437189112142230438111545890420523820194413502743894817727424706065305527449114192894737909461018761403486365249929429078438559807400787325355275621657168399770632556301565753792347196580068132497708411570141623178659888917983297127179299385358883970158362543574737561991765163813379441645863584450002113342885515065992319749448877436961702360493991760851841547264425488434715058069084494661940484972836544427984199323722423445037710876196279910140066358850005311314544378871029192494160519214333113607095954683655616607880079864051911940944460728640935317046236577591760523040493146692043208391989823671818025283740412421528877736731687621091173219931647606655072929446634840784710276055946842603776034656878359395626834370359363479213658568625440821372542510735374319359203093344639962439871387800710975051405630588168933386406629029218534150812358413478221419701004015340278450451636394387898047398819816316928619210943357198678917423193169554255372666067111218509416974952959001653694981313029364136386006473354557287966233645872066024308483422763762625990756478079050571838550183977202403925637683483170677336709534177403251189867431038838501688876515856544442189136980781577176870895633574390220771812665192499896198231414520164867364037635804346777386948492916194577116572214420403957208966475975939193467867239483822657203443199034272131434752072822461721192120530824277345920939268012521738846227133409353390490005148104982895145604970973414192198065084884130377536165155712850036701383912540383461524910301236194336262313795215123152936829543421803327313262371758733456644149152426597467622177563193560588200835565283930720136187384544987091692988897925903991151996765458649168425044667906279229528743261285692882507280676232221084203964995061065112561561995818792125353983219910462317154998970009876909237641718041322172730594914182881521065435512778624321392617418672534405098449932520098598406778715522676059093133661363035023232461992708253333817019107531439030805536237217788544349590154996774276589838174001630283980345434204726767878541043505585683838203568435550227794625904910712166612003980905394764410291649597329416579377973569143767258789222552996808404943487128313577788991115298429858818998446392702436102228756502451743335299380378094099496899395270635085880134671711974744637435249503589491163766792282578598555878462881950971230571254548697510959752915740129796275979874582029836331137961851745872367227929218089076741828029160332934692431640601457854131673490349745586475130607490136065028426848080067393889996219791629047797472756717327141192580834959711382465393050386717470470836239338486840076339990951615622782540510881305288620726642435426355113741515000187059599638724080550517186021244735614499010316701942145982065051423914566300622417050468221655135391114556235544245332097822238451124781184910248345272632295035788566420349104275452722547684403662935649467564016088375320083290609859966738332507233852171495194191027475180658703313713700053486939311562052238324239398644072553578950820457663104156503395664512899834616584372594876604301416498307851722379853105422147275956575679422508951682182842968222651164899691843814067293031052678624650404684978770598876282819000372805619702732199519495527667964537066135026482017763428460054653715986734835830488631046571421676592231193272646937085830744899304062504329167299011362963864764841298450648751492724680553880295197125887970894297925733123263710154435182984630959681863954954784894200239594584946486254256927413963166665989688585835162276586665864471130177931789135637843098063496357367379241944780865695298443596681904236409566812845104323501799908650322360658631801006762368947634113180203973361119031901507143349788339690875716820890770717723878963578587035175680863072641796763687884407616676488645644033122075745294754737171132562976342721351375774135679737112542079475651586755776991944342991090936858052683127107900091061045146108879430545319567237204862710767320396883408747989542975243120344033649365343035554343081240430132682462491710555556746722199492818122003102086320213038088425434460366247536054794515338303110003102049156959607428305269620918060098471106376053860764166874384160315386041307447442399295600617936959186329941280861567577859624796007459311996108669400040512628492793999632189064611934023700092653658312825323924395026946666209582899779598344763087203670434513715998220177073298652324832662918085023561167174365912113570859990800787174144796237703171762431259581009384614372265968496610443135821415816260783699962422364674978489048983910207982164838857318666092630856337300365731687599766427453337696782481454306791951999201627275534221783124965123962600103198957244098207686411609308930794897062996086672660610750212547741841694872267178140492145747401296099184419601898263865674418125904005063923732688237955504788196249029309903619179610272686285541795883685471360034970319896763698884449100221100445040056150827703451635750331117277718638676364812408764711273856322535478628600788034066169028279406325836427678199090630989863208246343143470340040945086526857938726815438296427417679249763464578492853201700273458131698595391212905325675890651701329305925013282783215215779624135624901720316658833549659634842362902796487634694871490393615133397920837225362133453946139471564968747805008942903428946644730857323720818206697704131316285780015735772572604156710603308201557315053912836673900665459246301066648934643705181317401590972582804848199468371071622008197035613422628884369268195641290268405095125542231808016442864643870359848735780132555022778787121793723489563829818198906665092463678118551965781536284768347601476524361807847074989653995325104025065500981317482330308634857347795678504856035173769067874059123632277127466175279105958989043998273925838446247520303805524014977603459877092777368198465689547729898280626208596293900766116669399641692591661933492736403340398722646807412085200230328140293474513862459870230026070691633673657506425483488640918918493907745677468147055672000409172629364853616461952195642337139511388010298959736378213271890291127688826205763873548657110646542937792490454703452476180125615103356923704297246085575503189749987882160715746486675439959693084646289315977349305150725317299203413930205763030642786986353912924828598326315206989249577011128187880983857898092218562844387310187691890419688833191822110897841171579207738061657602156485439031919205865654491410485818916837653095794322940403612617106022373160893870914873497421216079196094136965384190352481512826135708927676005666299409060864581139731104492133385085397768293932140863872502628024590413563236633120492577747186709086120758879760075902673153489219822431913597079100453468367886769500311182383721820545506044582383620310698566630501999678517281294823948847825599108208459210620333773399930878102191716433034574951345912937945584055280292983281525397828809217570858740453653264313466870047355543580407159684172757215274360733097529482164284189849036451687419063934868325639798400736786602961806959050969459890628424076740673181850807042678236282384637529196834239478831305372276620155174055940853575118619498896192038505086556788947771277018513383381723436034904726572427877851028054763413178697710969095108773693439110871345381640510762624165553691065533389748106476647378649533143864408720372147744930135482181756399964326016584008108969521713561356385888061842416724044637096847429758418631656508467567308007404179582070396233833269996557715752304834497366069128532898801320660532739170552605903211185666264617456723483918103252500427227714193468981738110201299127276965196256320631468138579645550543159008246521405343486947748623521383739895519223184167495670823671400751319759593372524553042021126279804036229448386877600758580781905424120681286262620564536503389125185601474818380021040503289078363086235837016735429090930040305554532548404051983899914164737755707286291529035322114314794942958472465477990571294350177871266772367843814384881205598864139862922956606272343414295804005959340970192034399640940955152346787616974047891537376704959984343178229331741408048102352794965214600740301838018772611055922082594362923171233314070940341900748048767110404960981908448444626591207066208571999035467375636798135441310989971487504499397843313735561092097239675837367563527170699567651316525539130765272759510556223154155643570717152106963678389970530233636784742441940034628924314888279786009054960712345274293222529065069741961908972531555729838605677940978067906164692924208454686161613644524228652825513819110988615181925998575815249999239390210143927820785955124852999703325453301551478031803307767007766610069252157153653453570337121076978423218734230501052957496322400299380917541919194845406012150717928597333712135222614661382023719657511809839637479205277740830001647450848716735540716069974911301000894737438904166956213865981411444059145588355985323406527152179068378306787300954530005625950432714474485362785786125060105608940940768101516712711937209129533850323184666630993925605705119193482810242328177945283100357814508530719355095180037046280689378155143266816260073149052140440854639166940027439441439680000330122376310675830628223808097388818989543638536777319021511540265265468668481614573705046824184147621803902142685148888312859399415911784968124512173377339918131358437315106963122791628886413207690898288066563072783686364637589997284862111538579896378280168630711180793819188395062958443561424810122218625798522026348582422276888175653072328019721483882212367902301013003355520620122049237484626433748749677168977779669356769049281356560855602812478210127970722856057124075439224126830033941316205646918306429707551108888495294266000647250959592227284358120392244965971911632128518216231917787284781739443902557025525332081761884345470634875919737184804974877217938210436927566035025635747373038181294595152432164925936034523507874811545434161414854033512362499751113992685858741745438523456120791134724166314484977815607045303055696704665215602799421489821252544303216549437975953239535683320592244854420236805513599661992424508526754582443558996701124025045581049558173671831840639988002743395036575264991106644232268291371793351842869732029288629531321084354881744782061433114960395452917758830930657468842834210064705420301996843930238440063860680458383080782221203496933971052381132329107523058067728018500131635549721495737796521079022003347331772447102733599978545381594948468582156247493590021975859074771722796442097439067581990738578535075916565012686259739209790114402979899648905629562081755762947709676568183325779905556915641197244640374151556967748463417518986002848232987883470346144490148549318102612247480825566358343347186429589053471042362387473239952852596083337716453800944028816966002523265714167678689258177952358755876248660553411458092577949351374555255569026624583249247707997939647488476726357301241394176248192179702531757458495725649895304542931026183216542047402325272748951358480667663136239252544376395242511616779120198468969333547704952578106374722086684221145357466364484327261024280329107807292749537986585773996303929623319545234953065410445955441550780768247097057809391091764863244570092824230373448139281573915588830067542698494215737597845282768312626353709388067145757954946839618360519547512397537219156320655865481158044054392497416552716327862967968464104371822908069025596625280086614211105383053703538794098492845401347121615733743064520432037870293121715319342322630088890828781807454614875320337137116851194862334598531642444879013680494635704151956939127234228862788828326310984422057628122225973289505530835701880703308204811212390870933104095098671404787285271114325561722875589549921823109900788129753374580267223831406862536732616026187593220148772271629084006328163180264623007913684944962257589925495182575074889900630092716527891219171140205272906545306248153452833060923905821909025294129991233327003917753475467732651833939856394080214111277725331036906584639110027541646060376903006850269183289811504985383871565272125697379553588390352911870660713982315302393047171626405838636906437950159162712722634189007845631414308872653282229380874722646181109674322900565660997778843311009978052024173085405788959464572122908923427481323174930369006712520927185936003503318177261171718330663517003631226003584281011327867454620104876753471837799476529264925493128512294540839710668483941893795896433564238732381899924460376922079358460745052228794421677647814388116935686736815197000389434221994432692787471071846685808074841840134674206991053690609829161809705326113850391124300874267719045375165522346751451499479156869583834637251506925354490623410379678495458632491717618297979285666122054844774770282536811277308930546709743693906048326923068941902001520225631830609686877779283400295852565641257737207956068744265241084386688430622933873192142447778940796214774681929997001354727421418597820145587199850035765705479533163197036748238760786744391160600830717807538557009529895628923747937900338828219302448727221817347973543138173927660443828626034400354870771872355916204047869378678560454877648008005756336719406649211824021799824899505128183401961065935110871877208841600291034431861472285410529230889946224836314510775622369947777549521132219951124237528805678418853466399113045094530149398318398902111799105377124562160888185458326879952831519850686677695826584885392370039827714684033144136424395612230962161194139398572970146403020817719612768903008701062932284258631642145176901876322725949909203976509547132602031436688143283970757373127752005915624824333437089347663214274693069012954339798542004835577129288706259883854431150523648620585239091717570679723098361459588657209335135183783558779142522982571554397102673113860417858435072395558096294283575063385193314241788443082007663202863836740146089584899304601840662648744466374373376595870118096324514893759728005078239423608931970790142571106895286092376409259398759107893987769225525938289871713142638765394776125817486660654048663227243338589931592814305515604487765912096029885384842682514764646405736228424664893447235634025313345847086081023012163086983822797561521157318988795455731933318621976986704592339929272027103538464058085069371992366716078797108322146735478207536362142097689356324978489779429176062302195177964075935954057174469050112390284531324432033980940869466657347233815098415588335198185000595162076336595625266811711953530527858159256858818137303900834524703616939228548956896594359531434280160842380244140082967057361424872315115833774398157271837642067007524287962289468859436712612265367650243529374731697379930476614253345017682874653816680104736080903256807096426428904158758016961848007392259023164708538412659354312300510417340614120609812359568963189488159139129074961862880069849155953362538813127659180587640661202632780139884307325824268605444369997404564730490679247805859246089514119458372691632523271088474888785137811274417439348827789457288395674068171281672819240474587094507932482851106298046809045229882414236947283690986128282140795643533301455630825407509382873782618840847934597240342785565317109790082560065665189864627204284693395875667142900617423709182973622972235386967005770971819190149778125531435598999666686495987358140567696377277602635274017105626586795744070880117615831310787862001345803008312989839732957541474316288852931600128726369970266348645313437611496806439606635401989464873532507225930488596807645506417626997798014511297387589780340078755951797456862420735766358650492735820028086202109111502725837431790737349661431065283500538978492295440126042430336280387469822161347097774743175702804537135020502641371679545368993901755217278537162383984851770218335057937457072799420342863735077793506952404318593705607039416310628408437250441343718850954295749848312331307448869668524455484564609274135703216325657499673058729241521376178175351263421684099868787342532273945248992846656892397968905506132276393940164887215888278734598328150491749123822061038889734539268455998044260508304927550756680336771231092125438859283831261922491504499325977571108116604107267730894191812736377946062881356070892100075458301551637194093266293159287851634550037227671293032907294055450504361668817912751561373875827485944137735635862508655185178347155066018885081579819349060791537866274050621185219985040501475055813587994798346912360945333281486449021333238315517060327605076742003684207783047739067158463675013784980976061209437386689984903022871165122927142332304276130789249918160471445989584492168868236292449503961012534555703128994995581262628295248850759050486796561682400864116720629742432050651000326081062743893726360902339761910401906804486119997548592061686857877372102929145265066557492118430195502946787190619298523598310768234895627513016959406624331040919997702807409676219753015157354330227524271225338016656194442219860272580494891239972783951445488435805077496377569849038435375891413977675538931917169987668335913778465498921551659764178305233121051594769387685567870381668723757437118594439208540552312933588105924881263106773107760344654309829822468470311752891581354024188341846719933415836197893031349709280456227663657433278475186177277595468795599120044021464309802756729011204882525311926284286829165269676366852310080271234720081277222651550547657272343497552832287493344342418740887464153184904388443036502086921607740107087127349850801581822211926043149692043155387177226524766161928078135095715965038040016473229851455256458765009357394147740193448931896037593513566499302907131787363788039425871781113517939051129255553812780993087858109118005410942262294356047606412166055616238019630745690129364460139576857295537913163004663867766134639044274482075317052106904315358464895612292042319471209278309577269455059620255670365247046038422851042412753910348063667523500443298151868179099564024606115807123521572113216375474939123279120953162387442443400176880206715667124040855584538948260900453997978359523280998966396711952443427946448310136807059081021958508005825104916834664870684757607744536463922844411989310731542605291229261373579011029597538116921005073827978118015469597177303971223501257664751120509023898202301217087793780103529508827904909555007671433241909503188866736472038280155079827879459549696627229594318934187332317920603390421415070573558964779801366744843220997078979133487105178107204964515487930675589132632149891616529847962760924095100102251740633839374505261491336409512036870384168141198560297573285741714903986560361748295818174097777367437003538280379213710280364933028973634572217572021712690762761357231008817294712935456740792885570927318233535636662610784662196177046624572513741131608657656113785248931394754570001003901699767238869570354021284470842521659772326536334510031409953037631718080577325658656119263869641958239288376514814715172361153592899251572071621997795770943881204689208710716113313280590409538951734468602867584073427751455757166648772035691093759915791891807542004501901332525496712705080912027008548845194514578466162623733955708329791859540206425202191600495856352936457044890169025063965827335426190999952874549465582429101290566972394109532812100129689992221004762391733743879453853422116081149672913244366841352713953290455743753831102492272595939781527922108710461834579752079774202531079495907969591620222935637628958107360076840490010298441768650765663788560775120747595206861976767755970724194294467001240143165967293332557668178163002824517894436171231015763527781097615656451465063846446148079904852028175197558951782151287227219609529184689277343434743612069629712891644493996381867462167169936879790002613545575182427492345675631682601767941734007914860393874351457994712534308866332376771343418396188597476463764357351325389704431241517368515925406156769195916049338581004742853094033731720474630650326034548730207665757316731551784792694595585526076073715269733218209543947392529202573527207673470323125032257726308130588757500892481807203078050814922783256174983944626167777685684119396497171765604188299231988715197045904810813945983857239676493662857471677977604110683320039910013370917482660979665528228802195290925993701990970637531127433111035650488570358252036358568506884572776779526649787972966816656687593577853308407971142929078911586986910524498197963057516100107123348498219320344310482981310584322883841427733985109091150070833954889751231355170985259857370262484483909974368838528316544839417905131838099517033777509238160868993943186870341875960248518159538716240756371552864906393128099637629222690047945096804791718565610423826235874650782682233487135101551530806816972174269161602705368706895978575750221463880590684395143316009958837398109710542776479133333939699794363285493104833268721091003676037973067200874759280912963546104562390670883868072290686350479798514582949326672604719913112077383261601097940555777718413136968376201724003417810079248486354863014800578878961815187091968025594216674026880973735878449468899283036574127905729163400367463550639696668062798511421971099942338703861115062937920333634733155845074775519601955212280547272495796327276047454298237705298432863772779272705556714742663671811588301217600592769248257149015607379430532888003066005656972267832523939281658646852069923667871500241244903608626550467590223929932034080304970863459113298449580915215942924471559925338471958693303841783414897718493599391856475841770956561892993613491315653645466827225139021514757217336850906106597219567656802843801163463029806363304919365511360614239572154443687690747383591223322906667268471221930664174957681152161037798216527794284066071082213599434621336216488033647067181648029539772106865413904501801819901819062389025388767720041770758040098708174710020957925095034341204316343779255135782669057140025759661484515570918681993516463742362509540237152258787446912514914734857421651500960188087618342767824047283593726447142497828272632448901085697211112971099967772378485197110021028143636810690531293511428218777651473141868329192974657837068792986874259901649485783730971386821780889898445599546057584223932584709386525158091072483219057040763370589765978312605763887347195509420482355604407004168508955745132783876522933974801050776331913317774724403270890010124863824678306553112606821849348395816338485948863971716659406899452497370214787203968051076600925333189146188408132340196888085574276886549403166877589359814702025785299607639456027948649688449053162899134096067101435586174339552513385538673737959593315029931755538004334066516286774052023339144488350340353727352300646799881651912193275268349428139624628469941613143963179017880544361889275757863456028438992275090712305398764266922335102877049443074246367857494061790668970794989576375665476883316384683341907216427904927237893307708317567662112090012212677622650823468728083172038894047497042457488146815015637871419609301101400320046561645000889065110456841516990693748946453095535906628191980141172351674293226826581761786363830924538363075633405541943935997522405142970091493513737808656659570567534003062384255606834767161449571974100534777999940222135381137441010378044654163250445557544557753273118295224601439833931739199907634477511586456600132232313868775757889689803236036132393195916023714376309916339201631338118545720354899465567277795835782514899050640171986249266498766571218832928152688309460288256807366888163666032130628101027253393484647581818622057902432561042573137590258623313647244286484213038938579766051968548929784184907686244506000234664883478980488922606568877803918730896393227351549821682432721406115605932269553481234122852686098414938308425594130572387742561828614745199860239712753847195405267723810403452729252297745397208681033334137777356215555751051069714417864485971956342521531688133775678787264269253460484308836599039259079426084746882687204274785655387472538946792866927208521164502547923074656447574427825374242169723903820451530900406769452425416933127105727626482403580973357728367117339995581820765985322980496842914173450117383854955472215067120855089699927376251610821091476763036721089119522406154701356503844706898030933977939089287131108324258614797105718112608837004519682733765807382238473094024537330318292848651638534617710761819832539796068534595788411233626505209010126345694168218932545689419480481940248915352769678656323398293697331436662216860893015413966075744811165069124381347782655133603582768602268691805127965416479522461454061766045916667991841486972235266940227396790622265289814697851607542786301428954450866231671542204261650814873096088388436645141353698940996964252403366221910650363305818236200752964665196762082983679998645913809486366181562815526065610832215489138230101907640833197750415134830538981271226924005557066056054251245778458005248978497208005177725438804186117761630004414425394488699029124834054733400789275251464805227179862360473243124330913794958916987797724417838002731307107775225304375764208874491008349786143284625760568586634218106774432845744023913146132751813643546100585707083960185937202458908185430245064194977421153774899521097265084036154838505397740491314176925426415301938011688860376256237814198966073258276112004414244034644105087648955434030620522792274926011128159411037379090765306490041102112715494443004057777132003374214342059853258665403488494051462535468881026287561644297905081861212740677336065756447182143723165148058175313479156103528731478661110965520942528923343626109494869040049289789162520503184322330253413677335269723835762907979109505175400281556827056880984187167363467446950822731632282788106944802626103782769932985228212349014393449681140326602341549766092638539117766436066865651637708068742749773374040319068207815348890315921114501522511956134847531273918573879283498534969557489969822717900262512152706815133689365252953906258333159060944509948061595297720783812766754464968740792968152656000904321053186213276516636598481735940403857280393627214151895575576233863289672693924603998458733229764013319283974364149395037201452543085026336987622772425228288904231240409088661310346382826377780947309111610559025395481137281949479638499753492545211074351104768408498537901830012200224286417114233202467561972571235411500145492229176900772365131462374817071204634687603308097747073586960960821627870139479947572972486206220717509774995172017009870220417527041859383856374363923101892226407770193351675292367979852987036124332343670849605410185519561403497144538625199236745263873722151549510956213104514843311757451990729449875127090552848488253038139582677974996369048687599521638155585891510909728153704066526969718475310571975988143379847711542622816515870100349405165124311156498697511071941588711246246489353406550002920367630107919723549961241418175985188431356238527199126365856349900775849528922257365626145786858277495785212954814287390372580649668356736980101674731539243872600767686022311440441058026604080507554191746614146478049191388050846425246079350962051808571006392273456936870919627109673997743593472859115203466730734573236597946322437808776767066552995037123679139473696572503527303441980185778440117290142467103211849488664093771348310464874819170926970417893123636142805157239697979990317719953374991086226389832280832546006898452608620110531990440250029071658545318547378136216365805663390383942604197345356748480064730754510425426060762060174060341507153403247161432810049917849796764941686036576477671051594480565854427646983365558587932889765282659301755724533597340407028205656214073554423901827872085506085854158469767579925467310260439520896676433753734170344857383734255280405007241205129661008254581444402533048082714231761937032711177953842579016191969148189055781634653567279958661143794925579249725155817402006170982211859794372196030853127673806975991998128389935045892077257079523201683154683706971679280306318323357929845310741546757431707332141663624548004154625777422377009300605694696717022188262959419903109850364469069241882362831129483943468814088831447028911649706991946409912822418281745976501678092914841630901024321679576917376612847850760512925668814741690297027758048327974351361613163500462502504724251178115813984733183909087976077423503968860734585024288447082056637137879849234974375784770646013951878277061528917846312136405598744970826533841781306324122134459832526522819814433230178993106908607343986381310724082084897798793192316088372663423363089392585808089562429521103193343722642684162190228131359632510578513675289633363702000931624478390548379631184343437735254274178247224043547891342013366434523173255805384154290712383595736401100672498857474094731013118844029487284926466919777752154679605137840894296348144218583033817035505563724018665755541574719166776554283264398465203784577076805417916253489266507904601956343321147694207235394556883577065754923941129686193306313763516571906924847920947135939992048843635174939215917470910987410955360465328687681844174514212093425840880692111822442962616765077192927604450276979879893811383538104716881219553477517086953265136366572136577179273023274412677891909067619062011487985518305665786695974625029550074531334373826178169118721721344047988965451557927204589483141515831452068867522690584455935833686723044041594243656986184763743033023701772809792528995859392174181673107942076946938494226580084380475360664837844539205790753722726755195185309543118078940175479424844872093641969685337132108413861566370325560807860337698367570181714872944257605285304064613057975551296787150481614093494161249846196093981403606483772682770835179889101342200211297538998300273194697293878785461905109039133763881251909186954679463675369403192389258524498618502837673074927727930520583662179338473314950000738707740300397458754612612016061864119667951478546567796473789430413535373739747324707084337223471495030341943309947828178229777108349613394924025202510142707382075977231815273847925769332194334793555147093316263562590121865322417101459050403628682245841718173775350078040592453996994396786433438893835958755288329885951681991108595368858044589272467097130264392556641552562371554156452853370464963407260848571693452669612305008960007080446167393004721527773272888453682764141996842637300114381154687012957738904391226152309564216002978526210550798183770592787600863380559961838753953957339377608686560407976163629823696233879643964808836653695736531143533667967196233182454206486973392120543705342546354310597585352654340837150513676565207028930270597833803429492593537732817123320962641469219436544942690348336571307002238426839950510427595693532794255406177901168337008047511082279388802327957614581753497366339719839463395971310880240475403380664517493593247983607024050164786717397216957243935313915007298085321324228578238842513429867778098131614626765897404587414731590110353049625230095795048861976494260627606786187229913403681859885402689113884960033143760217877612177058876010621201296582101996886687247088143853426269860226414465906367862646548904691535008313073961266635900132907756879609390846540737346170637858090599185307351878601796642582837628609247535702424533074938150036921381121154892946154437823831702601236153430446559680223885231320907555958829280306982424385673146231638001095366880546965031354660506355343640214406971079374033754401094869379812877237736148400695263979210955094331758476847231317955504912958550349828408801331758911631270583810623285382158981367855786738750558206219132095329815599178264305854195618407963874543460685724436093330082907303367436724011425631475949796849223950514036566472759418251767076606613504990378512536202574717895917576868507960108329710111755083296081472841993897950826911564260644934473333665282995671877840562133386256467870899887959479181565482813397785671682552148381218533773631223216018110763411800219039283313638257592892050824094524160563486320062083474168222096719772748152693678083056269853639043454368214419441424933647821468917908816856169189740991439108644325308706235007808447688593041045336183077025501304323345629648174353731678796861343072269804333506457563990684645665125287387332627476218176758339271745531764819122131365191171659978465906231429352437259721174574330644396266682399837393160025263858573959911489072725577692352853433696262526929424778416916355746032080507087784396799359638067565127344390977321573817730295667659619046744843390003390834491774400515806329765397770088106295601200589804298260561332048982854762751460781769734998249287582053381062883483998307387458200546035922588897354832355206349138129986001362251221056604848752858348145261846029746315963929228875289662759270152535844731414894806201876737676393294584849048559805579586899334944817115419123362666704522984675851929082810803802034399159566484663157701965287593414572329546462206147559745714400811508753182490901935640794487637104920740696806369438722270702228470308806887761384358773978812219930259382985719608845337963031796659297847456740489351747862664594900670009504960677089757066859586140084863301028854233400375151879241688921914310996130148532796484072548562218863430284964508288565719275271494013790618900068755157716166970137390352909116148848743346366912942906647413248834505669117160747728580687631467454010255115533824315942602485240644704963055917438313246300112286084921501685588601494045487609788695387072483815435850598688850807557070344357153487639705521541600558780301127700766334654000321152780706636122019992789337351079714368511581834749756699529556522371970958232024690054891428206156077677019013959363365071280592975146267941003302818104162179423682406987086851705399452969241234505920893366826732954011894659320870378105039104005276375631238093011439778037121651588894512489154031044706131934499856334689202778439602274340660125313156184176891982895631530954516029837464279906543311190403161903295261771500392164933368526636724871996889524668679546615099128587311095033243937510898295265774854037836303889826817034434127889162712261171181010037932577126284044675631122576700937163445559480929706166601622560411225360506552106662069457663333465721236674147828027000191439779816514211708046615690813210412374714160294351067268895899368861063339947901417506735259235754152571370496412633990068056661881802001629218911211326395892795403281325264253623469662670465975437932687864038003034659143945886318654937479659813854037094188335247657409191891064906774602254247254718989315094586791709876466526218120281996511110224265521086206351758550842524775009239637963756199585109522073662629496494455094123189440142419573337528967630955119686285892607126066129994302136575297274834602181676354493562352875053408982879052077634271401254091254178848154065574569691971802338703066479680983688784892668428039703938890100163946372277483290940634948206462817467554914426821768683925795313942872336576080251568440593603118214106128807469736799857265753579695724501227207371858748070361858693697694381183702168356164458330411147130013677981413209780862965324204221298557726635954657039702003236224472477455829945025636926423844480104689197181604910317392782086745279994194180171978502239541004369552898958158732196540225308021985666595838287585739415677594498294932510475839578640947440635730209235641848228867622765817271965099089577224446783165889448747860469191949378874152013547291358405248064861467609663069857320822746283785722274562124109267768069684146072758820754549566810615618694499239125216494584559404830497816390683985522811500805229728212335999769347612084545231837531013569173616392886662503494045460178829034398013738137287382464268512091209513174835662346473759905784674058809106906342411394870260384106335945928088722003064584571137856887049115931510893193953262598733143897598345365396876250534381791169627108610010040333446472689058840191732089826817197203018358090916119256326309075587630107368432089366536238409973917352818619292662298708930227196001482360114519558377927247655006771778010557957003708773450161926882266300519377805629037230485546464201458080061789636925482277373729075031057042328460454539590260604586414330883600077415360525710151338828941766823888296882000681050007213528065951040986104083380400000964130129486108749525551896937886545270768169859853097793554918423483568804520631720344119490631611581763814312148343805622942692961769638861687486327485974345046927168222949686368793514585178818404916083641632603562188549897332163470796340198243744461872011485932413646754005869173209005519692780657132386473508980837860487284311880678694318885735592209204065884741793008026138507181800585336764413303003385988354515485925197015618165504859311409367622775607907890033294331997804390784384694124260717877638427385812988758374547852293031808712118645235240919606808986991280381364620514930735729674357958008817663519561293604359633614843944866403380520995814684080488741469428714299003848509753382373679795429923885285319302140992642978953764415765373376388093325251793802485186504086522392539335876720792867059442086329774959966411119993474128474570897229502803151753894450893558578203141455092000590991767023130324886443510935228064338092500763864231708273165346762184656635067889094210848103931857690437291478164146575987223671001073001363024871349708668546991490947705761736620995706389856341974795704328361048949651386504258057748048002400137627764076059584171797457938801928886364027377034587340587467277949087305912715628727380681342397206417996502698390721263847991112369409020538782744550546132124404930949797063862405516989187434928173112226163531530121976902659849405731855433142157611383285236681340533186907128637808284774520582452344931313012451323316129384860829591396087962329780200254256640502845187261184590108943336483162793050693857249103750576239295516565935936553190146117984904297495545877803445410567541486650702629438601883948372746507533534312800742033063193464493879291069551051291087037870194105633589315987244774287192225071592961493994930087515029428842014910560025376993473545219561965702306148385609562876291036413511770256541286411171863083675314369823931057530342516625188127038869721318959589653232499698440752490456992207890707424663862094651670829920095208497316397117696492744500940929186025661584567946356866387594517496665545874544318134229168270105225345997284744857637588908519744323133547638382918840042382600374636769531368127402256881229744668385639465844833030169151372474441905613471726402451000885863479974299261104199944345331791707729899557725297755560021944731901094710886947769064443417900890094543653525524096737264000644270111059523036645649196264604889411069051906889959113474157715239083117268686896775489359618257176280964555707654576854926659203386608117303634590839492729563238695803523187476274709855779005188483222860456276972900708691913053768775165692382193322606308021028597109184165890648351006801339837330090673217025595931734461929691050061000058446465719591019092053384484520865417821031407431743504050336548417577933767709405893329020837696519210788352471034095930568387575364647496037660674226199479225266166324602943162871205401448851492258433355905062741478987057081631174614229550907947167971645203667345946050417230559061153210772614267097243916528081437346450368090539365640379010356391300685879415501683634234926857882099751296674488072374045886992814731023602687113257179409597592578522632813725246611259750938884259469136082871234394028865101128325364563736235693770794747341405970257971512984797561017567417975083764247695222932895297698079560166903672884465530005287194217745886262691448057757342461109932011089898392369089775134566186859605469197458393371027185739642928589892182745860640051093007907678283050483281725769746456770743456477858274849333971944182945254706943540585408861794107051714174994009660089273865672956485751024258995347069699720178747626180301396438397089905562361215087138945863972788967254706272658190286054190953626393850220925489423553800400082509936587961342801071057539265081022003210949332443099730625173052823655225885758654590869202396965721880411287308948197987639920827839458804826361688481823457947538956697697965820847276319276116517367197523977529971474118130859360737029259771613551898705388965984859839334180075422693436098612153355866889189684303735150772940971602840457520062775456477299654360008685222466139503947139389552319244225945583401131042272236879013768525161465020591488985051456428955341870211828716634595124965353486930844995218534740080274591958189044883487956780480803110881311499461277200292161940426962813309769021025047132338806365076256524760485158614588499278545438152771712487715403773823098765201718643494150036245076854769492643493848264779659939397550307961428138653669462579257559774873216166861637305189657352757632936923877111357239222751670085116952476716209125915587087477269666588533789246266925500119888145652029775028965918255389500163751353411607078082284157499093363741206647920615323897995882598652519277973422854129209342521859153073019307173553468161368720373230293022420648017551273530838272778729551641403759410587505287777446094402633303983965940390398417598300181296030387659006735358662307585411531276601922316081502974980870443864900787246009595130072979739337279198032687760845171659614488767870793770989417617501499777965964238665533291101170790581674587689653668866797899840926619077139423440597122855480297400552624398541731128174519636277228034299240351567428672627016464848664040566985190757285492289565303326574759787099881952135807068964700549311717758893035068472728412641395283988599872834748153041367493195790287230732071039293616450326768516024250867217384659029234208536017467642631819665998832639975241403035993581775343007371960534840647232888112485642610182659582763234697652659207033666729337167987236732574211859857152249660655089622030511337812844486923643393867074225639419524413727265834503099045551818289746895748358250246881424293676202293640400389275327356483597113601764859440555491282797667899550572064155047908377320902354416985584206051778473853035059437911615634407802417506098864474363099992760557415827345300598905161399948598719133233867316754311335544250708560950857521333624009687879416357037048865872126852891837504832922558925955516870959880657093724645058715796231664748159164766314023506829745991178340437674998476341683221258033470161064795948879797806399463369739094522680914451376435051733307379452057861823895475011622218216782024709319274836389370029689483735113926479501495802187451793050650121100972126468849917681479905569680058483193120405071646801921016258667824421903147138247847801141893834187381591392694918155402467428068335224425517587362908585085656011792530118081677106703647592180857928677129456060541052418021091445927052907556245584085113798846302186789868290299237110519879653305949290678007940980536103494927767519728544678038986426498225326668411732906189781494873801673837206912260630715815964833535971983017890173324632144992420445562615578383213455774064165291143458634048103178317509765478732253036755300437273946339640408680272100144037422516533253388885351707248441333709005273134683229485313557082081799721187302196007137979800567793175232706057667131541274198214519451986100060202790182912563982101832057547323871147940344075573138879197560622673764023876016663241965633158819147499385015832109365068254181369030057947542406993722163887761417566391440782834832060233771271538799309732209862803355074335518478906780977185223328393840536003235687402568946882090254783986912244453433089593885963457322181340223128463185410786263827377948984122071827601463161473034475138057654523159706877131150774998333512739499124183617465054953839738732761516468610594373117696728821027982161613780890475286765826007108028313470137109692953162220351902881854861392263510749680054383889482461674868504460047974240420880975565241452132709714302361150437416252039636332536720348148512814963469834876157006965410836550161626307925835845799993911507076686506741131822042859398289391373538808603326701439330003727458541042704724479531150631085289052209484264447028695394832464526547586485885450694820205022836714404554355339788174362430989148166528030862429852534592355657910532912679368958069076768497676357687791930181366493423649496157795851623925007686930210402232736353492598879586575147120284066120641573483561736496386170145629162428867007028881096080609102783335848133944797386278599878029275545227417102624768913961129735100682076191250226241661371163014771551429199216508199883368740245134298278795689532146333027205435982307955088929045692282161294117614302216027024395145629532014106200572182277100449285519320364308847338664404882130721716026571267752843512593562020780928066709932095725804422650157136235099078189050983987864586527562457406595351730792074979394610916685130044251998345818328722084558153965535559822484628372846451182604338069404644735357839239893430730820448571262738099316697061766929831432964504460739064633287045618419133425380496281368169419831812844915715681400698171807770725509848932583887819859767260222976878974572728785666571650261107393552279241297388716323049979961951549321152068368700936456881877473328378199079869098673892547575455568124683760600203476317033659212742318444761977610189275364048078478867190028294884172537252662272354798179213601322854471963739918791703964872329283385200638745808785993785281171295441515665481999530671542994212007868673442393677963788705946287601074543832405353558987294871398252810697192604112912112610811613387675021528537022269198024769657961171062945363548049281212528884924605305990063073336327968971450045793500438833493887679345052632334818692280184459565056950511234482199478553368054482560160666053730357044351012293556769020507974863077807441662849411784953726348828133254774767490887123101990064158466320937236191692078534298447951927584055055437919116926310524146066615129886686216623907221722243397662794473384630530873989862665279802123573623810440019546253180254600096064407846679862602825184856686293846884051992401730226687094453963990998971329008460125315880806567411248369030492822415650632496977640364030111060074143328013471593626125908906225398708051319745340956369044526349535141375790291901331643438368585485322106443004385524813961917413405294590082483374229246427968646437087960731244199343411490555193821153994410139968562393948883769049295174391925295252863920266492616616834383722449557050891219188430501038092671224646829228887560049933903463413867491921000209011615509521215391082803208207144477271055153561818069536651673848405381865376876210881281823468163409724570227925053385643220489192074713572221631372208991216877258829471216422454944433519931018998994219919519748431686464866342315357847422760715968635606175602589776889518963673082357009856702084633318391021302175076657948784726709247564754706745964659898360322808924464048318716575525494258922230448714940307596885377518308141170383491689934298311512656683154606862821094386831887348453757890888957321244889064362237073993051139254944747445634965567008468385494457778354091529149358968110403843605336956763949366460559606693254899018671486723709109584737961660920875673271943550574127614051706126433284048609917890349568561179599332605977527996866033923173588319995432640302309045848221218495812724982783687971618539300702137858982637879879170899099169708903381399406726367581384042440477559930348155330879606671521472744238201815814808211498130281381371271901498902193627665964474768148375352761081577477836365663634561899053258478841650245548155427657634987221040226535150800011409494107024277188513107599844652244411207039695693076027457647888062263988651266999060696460415564210161436361623573264988774569301944780743901992989327124606705838238224444190926095771927852659416973019881078175439211433745701164257615283663991192119289918664144940086210122494476938978737806604346876041954924242145841172003860715055727141417676674482781840486573424503943109343528030450476663284479837742349181229226756846583768442304568071435210239053007411141674652285323749413817192114963402873622343939522774295397103451181378805027206128587232852937160340341726790609042752682363391304519154534081169964042078585380926090698613476424832010533925384280963315480299719560835280429719052079474080269726533473687270373085162394158520813149399649672953212451562711935600321584517048123504936041782547268994620210085518885189910504391060874495183099912690136663782608279629714650792023706166294546815967170519983284206666867920403822248961012588623052074024694490314219734250727605048799952339580001701249607177455328516247404007761215855949812604559620246360472140287730948459898072465724792955174990554582956235178900197825906685398648670256684094518083874827217412493545780600287822487483469618406247795400061672216486813703799364305002271453253113626569159080848758813240529015768231739514757602907956851509818166631210569632443351809010532994632714987737865203793762584777317523643672886337472413039214965779550890482269742798779872103739560734042013190637687683026967931986544519960922076483619695357809784352813227988259732250202692514904968627453191023798912239774888216831088921476204761001380911002635258042047659376378565095554038219108674825375606801624572944991138704401064661494218347273424273297383283344249501632975567565670454218301811956640127295458942724228074987542961305277815019014888232799791843396621797540428304065677000644100885991636463541876529606594308007630905237879795396510892872350247419002206617349932901400534675881357136693071118648995614040090566497437768695427130719763318101931411305003825802798158289103754937198517986883624656428704999197328133598552267646476885499567227303456081586731018801412766010231739383830166318447881842055433826547117380202511548057736426702613968257220800449343913387640297421016475207653429391795244825768064995792446058911323417223814689438663205064785399783402644869612834501353245285160661478944754883107469683939537420297574223850879555523531339316058204374745726947638700285612891936995381241822039637833321224710307913556155041078253081976644835341361671705984153388266969736870916047183992768666515573437686079109489669098930378069229079582079458942260539808655290117221985631849665615541093329002838530470435941773485172307953774946765398449742595251634826797184745526648741975471377110927118388363906221345299900821317814590176666046305612869526241291102305629577491366300682821515164130020937100637329178019532131978651370324999107768669657406846084815633388916479228005337200841860456825913647222352331917704351620601475434953774926596451197092657628387403559618728497551891481604044189075674106767934890091684820267269746997453415633632396838697543431252562182933437240345325542561523215312987775421610554850934431496365518872131634789764215532940161527372420508932495241039771331279571868739017493976695222235259511300513396416941220524731443922477961608446957423435356735966516210491987561314413531991556547461659730937323033006534492454630113082849012668902580332869660561390868292903522718625929067140391103981335811074532308423280365835380193398419786323054087289460900486767767502877251682977991523012622708505339675361430026819267250643976595238182708641666745505969363062864510304031668419144778719481570134663771478938794858673404624326299788731006206783122057788265793433136019205810366674577798345207818970802619501088041227860344715399679160506661206045913868283612000607289727832469022588648023766511721255458271207537941898672410480632350556379850554384497290468487915616710401453567741442854427258899349240261883841638316085989078043252149509226925960089175240717506841696072967922282673197786366704314629732345698799354378478048712673390718631683584492303106048567668568963424367965187157245324684942347494566389852478895490279873972188634512656930627123244360555214446297427622033737100593555986656373151106536414735193241766244641727529309113188067244708889010108192496791493899662385063117711693928528764216171382383370867980415401727678870989255215068355276689271795822514605026326847582682484830785196629829823064503689690712186235083261469116970752032123956198969660849941975566760696359719992498311567929217362804174324926510119758063167721618788691173794114511134749080963181765997990924290767080021517166718209429175880114944074800829481937678870249223787470327241026080760356428707563028247091463032202949031286591864843166440649499447615615133007186712698902808804037714000375686101002348380832030313593093358989331556815231153334978454114221842852097874254973464252310123057378897179129056928702132443526442600656343298070357804083483056777617869928583058109243287333302360560466327194660587468045752966044190208167337361458735901588649288515049767162381067218881976226605339260730139332027854808264199106420610949641793369762865418400945499306254828763367211879211067851619064804197974073844897848430403524195487417102431409659493951149214761878199676086866451304901287263520528631343248389832719036215006786285578497694496223046534567405028476132783348904620261998607907949509254193403813176444864707046763932285342389275856006010056817416585123376602295022008194129215851048828261101289019589591931362171559491576549709458379543888762794127591789630081625524118167316811958992659011140446243177222661452794554286779536121580144776444421275764348807125692730453788856851176252430558171468628584856621914223532531773023150723987521696066176089744060250695171608166093795969680445381454206667814106670037318700740684434162787589625440131415890898302951348029994600914148992626036174832959893669195667909769694185189565121810932866463407529675045773829324081931516436171129382038397827265702579317941740247955036865516822884539114573224690575626839789579289706832189829066182146524210495815942132359834448229961946618352560551708223847276786379088036436640456138148643345861856025261862113398527082662540414186050652338341635391899674599013795381785629760693043883160300379711336896650008623087708274853221184223231195421629282095358077449892530196402699935143376119672286737792146340965731447836792775024429482554283548760780578128483366321208495723488166385725668766974061944184374727135430297847376820445420928161386705546907431155392240376952897723314753300125828239619706385288294744245479106238121833200649656922371635701133746901180274880987845409725898662760396456077405574918267799231975329732165343934788335719031510940752482041411907078082156237598828334933798132264913824761245755571609556509836073492995577689905858456518520047183831820901106052138268200094248117823263754343893597015984757110808305273571580762705995785719561361373469246307591012651193340261160253361714734153551749238463497914526206335404253450456561995834295982492709576414708802935768305428750698025357815968646109414765993502827496655286106144512097563820057647312357280952817945402586146768959621081803903656992423143840776438436906233211603852131114527577432208227671359418925395504592130402903599233130864543992267831808268848363211743895498795548950721773391367920659438061559580361282768602363744128834640294753681480059039362506913263194054536457445962200056467675653497367427715358341007069251187956743713550027157030963767365929151105448529981387290903860869128058945687556468727185636640565392992757077997341418496640509198746306495380164985629884844695619778075719818129307029511885101309674056625860160519318454233548828832288228753583578323537822561487107476754008167347472568125362978859982509617143797386775755609984073892172557813915877745655655906145438590975441168240148294849285297169517946053230901107486178345873819606818745057269096927175747495177550538197684301645623201310325677060710520097117750803957834180445976387249024593344690297858216179033414947721067406802528433778771213336512504413557219347038087870319453011803858303690026471999305932250248353037221992763539036907153479136228828167683446608500772614690488450701270104449702688028928527139907769760611673388148542366904977863313026222169097316853945917223760208464729811108831456468916506275442629164568327131104745516074978324125060976503580181738950006183035990682856748571930038497963074931148801687754946812737853739239615334202615824206061997842375887523894739371486361860301155391961763461672295362325494967921646633389494450270186400500153342844887736299362533244728174665006228365433547297017980806133061132368876832409288668112104329818742551782229505919131749973863607205146463116334748920051995368953020172629212177193626366372930320824923452356164686426554066541836461275647095943932112508075305065645528369907507073543685154095145603843889122052210439028381624043023061052037029989314682938781816176295842325933954089468009661015661619802592075276701276091438283705358475661764948465974175091723346050499415542168623929832019978295168694522387063789974167248091188393127663078926160336272817612347939190054313144043156426606364235109615241144570365137249718309601897824659896838346373896280572825849515453738354860002348654783112744547292627332649602301918721479528174246173048691907956923370549776704738395014375455899061838877265706570981383695810885109596939643879255004549515938722266899209626649211965263730070242370904441964054701662227729571075252269008199724418503139217927340393698980552022272331665674458999483366637299984548984980072064448505888654246526263493651870545420620023189419334189747940097293545050256433151269370467389400569804704453286986010020375072072374683061054250243443308428829956011705554231326604679682692296777315504908565937557986231548913264086638601846917618963659802953278594677819690761709318545431527157450241048090983768711252644491496374173592178951126419751083539360381079688115451659541489050478189780836199079327831691134475203620316430655014229287460977964994128099424464481005456739222186680016070845858074985052883227637283286409776909529230891430762884293382676402407589651074327686340805827916772320194773329989038399465371962290759776773364336127269758743565723370047470270547008541454876995250516495658362262753971921695688100394095627842793316913748554088680837730704809975966551898573479934757792232139424823528540385098522913454399706214237368415746764601398586652088439706512504087591134486775250570670517277778647416151838147701088512653886484439963658524889657017924160631533091746472215446436634733048285350887093293778396390730857617636676621585416854270487212341464711187265367710945322546566121819001122474544941515769669653890248443769989049181869116270628790316904765688577990886999749166804224031299470476264788961565270587579047509828267092546708805754000118525415877359416304857763472239086389544545185379876462090021995734839103498203572738358279081872406699151509036967999219688348194992702691913407262151603272533851733302052323157542278937900873288975615034997367200897057403897252964965165600174516241089411959238059776675591149480311356342459632435747028166098322779116681055794670557858529611722098246438009992920685486740161618965270139906367015558644339147610241229518903946768172719101920164986256877801426476507130959922923560856763194216400141609902749765051396567537249064944431043478097701363535255118679747838585525528772251925111542490574284959260013938755090111713446372635315904568551357733328308859314484229546360453045579567881315072458557023280963069041714704845722763790945208121075045188062739581247533298173236797556119786662149200768026964107576257968021124675364613136999383132292581973963497218662412833374113968717132508687910456254798752599084470096478524394872431342627496548674635806061778943984875175694193028699289261399449816652817448896572970037471402194762412848487544381981661228438133985339233445887637712306850816578371585170876496611995717589723687826058312890809596967565857262986978912506810437499015769648205254725941639202203924260937092126364991625259802231617489449465781932584270549078661397225964836705519221118361136259926072542584035735582759308498565052614938932586159038672554701746228850657237454894853406649386034203376342675201345386106800483264417765038823110560979308438174382566089617939530248595857471359288559764158732335076944608443956764157641799601024761081047462409427746407295621454912938996545463479909963174628911467749589690554138108488113365536437023916118740834238616229753363536493045769507758277602972329985800535188158756396414436372217463036427561320301949143610310942061593924993625975391134086935773851291022439885462596670478202808812457722389554926837733272165491478589367747406857369758402711321653594234869554416631158886619698546918380567761498498066685937231747894915052654718118527730588948158877136576327641871006464239334488708072796901352185285237063177079734248085528618877413702907558501521696340035977785110919056338549869915255708900272166535865816719892717737318312583777987001383480830354530762664415047294717050105018540181145087683795871557807280266697704889153754680536894830360603526532864506095093444839614434060447647985619198244079916098290870645483660523843820277829182489969387046476508522717916270664454503457339633166346355494939049695919789424140366067170728046777201265632028222245473343770686021533289790311236202526365739580173433710853704277356844620216311121991985773117503949819839416113576855822303847181393048055045042854860963595467584029006345339366957899924999785562198255436019309429218982713128190544971241704589784796675615467542267176222956186674335316064273177605682777480754522727720708162145513592306097694862405752435974745078513738131628445368118690915378174036497518884596654542226755461112495062703203646984032842149707404701244733310247056313553272027936367882022871183052339998526750285487510287436501686410069602972381816127781779117121925150361137990489065642311352102648370430706021059687153662005228187492825523458134036346601553997683728054103320620803249778758435544969203158215934930195456433368198546126493893892128668251266775326925658619707345314843350333082470624472032708619543406058754231708638172174434173560093113810232976412218846276992902185901471192067504166367134011304925841236312254320504582468315873132205999773231689227392373041097073718248143252015987737154253533758763326388319196883638319238134608423992455021078670228370537340453869702548004439698224624375951801879120678880164605866326014473701435765308685838644015928873528495111780727545815793834073853311246597649667565071267398977925728403009160283709199648336876906277070915276073333545065437647541744514034783543981497409558603364928891278281613241775688814291040538113210206400886544853754566602720030706995481473914199115221583835912984804434419085013600551111765186698892300411548697016867267407374978837866208171909764729027563474875958880931475271067934692595550838052030560856841741022041603991929731481632566191739739242887931936251543384410148394319482948788853647352584332046150033684617204719948555849430593902531935081692825881484343723497910945776508517314772404605260735290944474481261410304542539697214254242050671041665525602351166110447281026852009378718878172886811176131032891501649752998065834184727527697080715242160081387308733336633452671456296294587960373830260890698218571430473839390060480082372455205429709838786471685989349334231891557477766026878874050513797025131226894159088689814204202108044047498771572454772042403658227014371048554438799621607083430625020857250739788411140410183033323415576835229737757442604142375806664422329567582578352002773931033209387807383413958476669190132662412239761905418430905806062051076997156235338165693839632124301688154175596261729569048821871801105810224931249415152284120945093085188694066390564688114130505322358939562971785513020178616131048362824335973086874838883749518993459653742981762243142049730145441304624297341442661047278522492053745165617245441253036225002222156958604932018553111102572362691332672918011113934601835784262721417613743911978933975261235289632958320396231436988779633131810830354074901459813373028550851593278924740469239466119284550047471568972240387845456256872619109181094452722591376438278314170805472671905756285296259758874806135045709287221486253680171242536368114795881416517237571421648672200220588738660436518202843582689055926533602337471116658736745473023755437802744729553008068398493159494654931399015449778558744420009226140583838515358868062885670601027841024603319991833650894643600196763100838240652837919373901798278183786292864968067176390188547431740991391134940650569194641539189530491453901259520856074989081804637039955171145510984069721839099810884216215410992057569456294433119326627904009733812614167778799075145408356126283859378200800356712562149686096455886749344075160174731636253111910355948029661161787927646047357144504355909713722086239438312094379781844294813296862318067130308553164708739784070523397973725345453375267100688308254861461405619898651882278130081425864033313545168965284194811331932216674238367058604445739363669085205255697888098016985611939839342298261350124140979799118114773883642629074829278258968246802546801830785072084404702096224927616203551597925939523386793199877482375037342747359443378382086243337388679127174925026742475446287477035550078356985599495783660590702895027605457535774006844840458736678859351371388488009193640612281463615939225800920745742662036583827927683229476535286010447027473047236546087935764785956940438501580888576080845432081381421885026760162344446950059764535887621145529254376213049939966342017447453450925226630856617570442795074295111348251047783489648092039731611612113830071941018234410851502560388341013200771535686052385177548950536273866579891906255352777819064001153110543661460416961518753642008422798210484469770114148022821559769572887887018110958225917177928928903669811463386676585084943299276858561828876983802398629882262875408586778577624621660633872989370946921734744591939861744816449346294798523748094279616435199116610071597503967373745000125386159698357549897030538241037263119404936252945189506879599753986468759293142491297462446240800177406118770972155370025232862703139487952798347506230101839119057804460321379417740054421748834596486268311214403951431040984799408416873096190983104760666045421988152520443005971883393954583956721699799199506026753666542980461504292103919981178082455257307536996374278366138815072841220777352245139982597916886467516841414800983112270450560782826718284292083184048814489464141651795619264925548753694708743138551773174557509774546640388502031014679947459816698464668226230002557349504756294974458751726980085334832562830055937463319421516147143899024949976196507311349691301656356021895567771368915182535691961887239998886805129843955180640461086850710371272978332668826265421280086295239206748506095084502568689784594852824751369190903615947964000026874734248511827670783157039796015480516154216395226735527695829706466603231695892641272091996707698654505515967096607825779411130330478825519183847948351926322517717134214189980793362165288639802660511209626408646033323281174154497057168534582628579490379252586971290933824502187935652227492464319138323830725939045838979940197928850562151750025460595592634330717138562018019414207299825716265990089078467859188289692024477804684901774871192473252081784588095053867884983213971946159267928201874029028460518914355396502639157970483475847552723609780022045177812752061112506509009285327407859613316026705207650784477289829445931567151747781057566995260454166020852327690638557636228228778689073032121216631685540759396500961268617273411288635391264840950116893400857108330919559895288553364331693020843186077701935058632722040848295779635334492987302041473128337899334157822229114675208582836717153624007276746605964632898707217959240393523573023407688978982808375761811628464610903548650080282260080828294917764111661757466374828747535359861579244853067217343424389122766654735439459627580453172322333315261917787323006152154094378172763432591305591800026105488682679611645940397895470377973765201031140513944048490063069945709529327794770882838377947930811465107164455903726228085515808012502813842033022541340781293758808394156405121767478339539197619405172750445179428707259598529828540601877405303559868758068767877986496482130773123143748108867431290547744848117584668051808259092845971549829515758747098581821189892072524671544740963588383600238996501109071843747697482374746073004127775638662821720726296360592214571769854268240533541430759326667301048956642410017467708960725603641383062296295932823054999324150767836357689981076541603983689585498274292866195870245024960975330110053211619272621065188700470937069136972579080988376378775125114614454617167777494421188546368446088518285746443628891544295699640809777941393768115137037240651626906741566704748060742209821646697914041990744713364328782741732772195840151415675541070266429833785002195412631144372016234757602178935874803374447360660744398725586411366132780172339931757557425680315279328016194550000027229768721565998588368408498229316335761396425052374617839672920128651849470093793780184566214180655510276667237365352184215088203395215830351566131820143250017595174301216889794824354478572950245896495348679452828480639630216336394829807596663978240140359873008026659347646074755170247952090831105610186293122923720137359453826089061455887784748509937941714782543838563124733853254096691885314234605638137394859004536067891298892672858439024642202438347059575563765418427486501613303917837324218662501076099236094485588623064998852833268589371514122870123687961792860812476429499920501484823036414193157646212419483827606103787358645230913433087916309893857073989163546021790631865055931919575190720672121743227493837345726896048519340721018108743970246383373943708759380740428209454356483759134582510261251509220866538715836689898509373172472000853742668885610556667567723922656750692737604255693620091115204814147645362309248582540884943325651853628077718079777877791242427484059630836988734906729592294268257031477625758406186372909780257522561176317986493286387333019429015905717541704193943440386291650722824161334471166156439205542534016074568604801995496955752544886276438786092269844373758470399963509622115145625985161325043725359107611870730125869681139369514430393456727076944645727816684560819615092061508756090158024762816241064734664803653028930992857996869918800533308680667164936387333726985746619684110925460159365684490407294506376792589690751436618220058234153326810841656802718352442617886862200573503861895217564814155566468449293427814787059443189212822803121208349625434805683334454895878692697249517720675303851165988131091069455142414769895404907562394809694260117696526976968021655090997073998745046777773831011746461978897746475377419190093041306911789928691899274423024142909689830148866851406253433973720851246050380284190809684520536070368219125949870466735681100548288341697898443293730426278154451493757939772493247987793388849929712315083322070971473742767476159462260205822071169192231715040358990561089809883463313333194490302118382234190252723055677785797657773856054129138897584638742980095993958631720551675579456332758835229781145258462110310607921296600505151937416654760308962212449658392639679160637600615408049882497893099393005285676764974518059047568370858454261139577029277389957453614652853207555726965130359543607165987673748504376773780231384406857242291269465404355645674964328518998283059364171296957674915914675786942281688176665381482797482425063415971346326636108616709239216261320356526125267551340010259411469863364802916272999185620704363108587360598234417138747195542779251280134638714467519686076454160733465130968282903096511934458251746021094537390234950161528637350858530065710945891765068838336869875399465381972315889224458673047286041618185106768470089208843115916698731323215952499266543000063359387569843609612891997377191075077653081517875044173671029124559953979953833982635759126613548617781338049099601415604479577318783640976698503816020505563515757882274828154752165452038995430448770024991615966474671416762962478126727061426449744521570266862098514788351557493267258002945063114941100390085914275411103717042608782742236097588980024879996670798573675923407470450043194152748140618623853115320167351272874057379326849408356166907317070492038187818594173538567419388789385887101734280509922808184494687680742462021054035656980300591785494696519245620230858104411460276618931553571660681609087303948064214760804804045269465701611708945933928659083110944333134097477873797056719180292871104648832583152435197990861480966910504338879297382822648608841973854142811373905250900920951393172013636427214283963237357727757558510902394016452206099585430713498218428989250278546970162139046495251160750260065974037032515975261352607440467953382030669873467747905464521181198841762424683871983860618665781228986535818203865404828695819140607413415741064717398268561074236561289946212438411851662202570403809589710160448925890061054347155018957927844227577422631694512131658594253085672959903313368739474646395977702092850952252510527714522581001902888157230150913871953954940114092491984344227929008226453360510295745264663764992695286521044049451946689949498038900569964306696468034656961434177361831388129479998114924090033529680065115888768036150695047436175650950525521745164951736880237621555786520654891935839317601713807554542595683717430549267090147014351989392652516287895529332590314325584010044475255848351450914259140917402529546475188416749473722976501916320345552363857498189395923170273043999136139199756589245586233842151921083248280641253699656107159914790641145979711331073808315528929464573949071054943303317841205299496694449151325052409028162052240750335789798424147654375144203631188242206798409774808461073590589646450371352466396170609688359470290420727355530520720806582820256235846572176909909452314739455651344092242462797572892587127412136342085631125251611224799578290287397005582983325712827723541400056693045928681453819733356977843635166805733429284574787299785511457845914240403106753166871190830690630643547203963796730012012668245730886688880434069646732462179279439979319830214072004944372640248741125842122096847207143345815442888844911301477537225270670229678112618269078560781945755896217833601734727737768060041231251112433225390914695855764428117501052980511181702641210497970962614566202917266191429723092870284259196300490848260424041197592231560777854181371786020983497903274227901316201252728411002631465195579739317750475438437583279724342889882339975478954206552649134155045293068412380079717264115305768422272289924725180316768747374061053318347896800690365127891315413666360227396111347740896339664650367040015867092560545551471524951236933612649431310109991191560045621319846219855146276946166014970191515459669388112719992541766485547884273185132098535002351129851669851131579923265214651864595694907436212289458159934289387119171611895038498760619210164549245606253223916700456748275449354786225647910326900755133227161166168628693027629638705089060838809779623576057033181056932569562294487996576811417124367282608015435979088339891241453300658533620076914863937725865707050924082708630428067766868899911764160040849334869079876485482915899534801057947251044212019319217497114036296041929742159300414033238078469072832689054945866330166506046217750204431961528105854588609641295802673777930625940064459581349252848556480133082447109089603766192374734715768816297408431609466435077751989986049841202700679908104910945224102468478232022541243557235789216092819307701599174981594048247236652269895416590512187574992489153691560590452879518677184873223538916856749425135871936044046031496310438536638891590196531246987772907947713561927305883367070010385779886580962552606740398053990615377690711555303609373186290603619744390635867377263132795387107073702155830153045201715963743585318363436494975742072069664852966599465025542837169027174375529104218543530228213900613715051441198783952074712785105580700940250331311933433757610127070538199807851580835532163379801067782678786218817174624927633303528481893879055665059094908268593964553852418886391406652372148015533009695807280167990965400506748731437532411436411443287990577872534111051343582727033240427039627806117833241511638584974033311173854447300804317134995490839869519193423055080064644184072198068173271944380184069586226724430388964812432024797833188044624886592844462208856410433043642333551607465666255701687424750352233747598508250646283545464138340261574479360113692386794878516575807456005046075625822105889395299713966015307850212592987325794107504843178061860555803652105445665979688622038484137206754147752482783757290504759698145561547711379807666176682900062341716340536233566632218831655218046783001533759491850459417286326944505734444324627227868508532682049394563992760043575950492527635108341853825422512214493160978423379483905106360884995709862986266551032904807252326592444551188943732874499892954369639034355773390763061759603837093068517062942558472254138560271309359515871493956118340108118051915522798846931191343622491440668767368995863381551257027524556579678740634338590924923835651811234207906028175974167778614583738979492156571294370370942527096801049086268059544165422170200899666390965244788523685358054914452047410924472945549693529340530373551577311090388455366779900201377282367502967787985962856289914113485359652997949546754869825403762177956269255680546408100397522921164340775856456883552610338738564808667810053798466586887804868547644725821739719038229859994568747118198237091503238084106057759457896874345628138562277826242223099016751270008528940763567662635055988797305920412052377377869842026810878057831074698886199981952903780774498734001110397901461615381852853794499051923225902802978876948145314906675726237530728620253134920183164155162965161690823945204420217040982682957960848855872234660844686556218337522128859659499048052955108515516663125786306816867421392641013281142810756496023522418190008422363186723857145014919782319189916488918272140088039172605672166806954752849248792787653621640218475251611245731768929241268863200355366922210711039539469127637510068940536438102127144332435805942632629126232117152266481582576812733702694702967411574986557746314276645196244227840414979646894523251775446889092804327136683793337386306145643470047581751312505782312249933442353676402016479604437651528939522031218329256659582715022273352201814684269412347557569448988008615691065717840296226974011194166762224432841112663180913071821633088868369310607671295884870136241526121010868420462262545835915539234249160703907656138855092760796795488093620933129573795325387413537556605009315549411397328952160154815301991714630077472931454903061319835642022277280497616194955495196467541747268170199664165741365833906841309104966997041254703993845268548878440953310701445140658926714793050930321442699252910833229313377761147870304277506413480521694239739380759263503616658569980004155040219128812544749369972913773680922118440943914791018038558371777537167681431232272467663253512186944405931982336169644111114643668992303519322003926774388686393757792298301612702723032070441458088775657736043790677202023587008088286417263122852056058241056041781395872581464784735256336770397014823640253320655578350709576030223757058928111241560089008979840681740885357525041160218908496423083130511371321051808452906006523995411474405290068420755431513786889927755996079119425951013455950524083858211781675653961982948596713684062298419899791536035632815612599353820704256368154796786120653262417741671231161771466334833366815826175054209088195551471463892874268714753475197553790060136546332159264761263520594851387472691575813692078806637585406897079963373605185673498523278809501376703348420483990466776083311551087988008297310878537864842225368209760455472441280496723116996783884840598024189394807063908543989388174157748769710694546073929195019783346932840304214325044908760317570254658863724739474962665478914163613205089498931146541265892507789821580560655178446144296810458645887330121661855224936401654234473761217641655939396483126124245513715908626588996775708747351101395233589887144758607111256284572519141623534448562204353985847591870200269614547866871734774985465654054654700375488498916205651472076131947227911319111789401686893414422498391978266198525744893660734421091599023409840948554792379277102591167236507883082829378078489278716412206914213278860306850517150129657151964294549879831665594481264843117662577900831405640195163618314327575581168273230757682837911329347834808389826695770559089507087571283603386003882902193254394870665441945119478538867746826935250776279508337030913084314908621123928377870385871146188312468211746880769957125693238309308446120796140929082786311578157848334176326816028623742964048409752897343252262423474607517606450662595939847271084730555040522963493024178737885613726603773853364453995861845369122705126783405833601137501873477051918597977373025080644053282056736624574414435021510276347664391081409795840783458195145275692308394695672664149013315487883327529438958458479343178830535545680911381993225955298014149569189018865011229690648040826676870617639743124656419383694463429035280586117034074869694219365263546771054975857316308808621085218100862873428075856836425811398096246459912280215901985657447071141045639283011034219053485384404991488287841377652817981236384877957069704546208124894804337407956477750316620748285090578668036797399394034255579702262033767536571119724860984070931552374895825982894574494554461536953906193854957916547970218687881422424710709981812596126320423618687099036073789736147138663853891175725944670224604160716740010642790446436817544130044242084260903409031198370052751409968590475277584339907416209390289604569900843614181457628155931065249552996795003515502355224274441613492644154317824887077462412195439879155761650248683100076408033926420308871110009928173318855675728676586938538007810596693887484504879852870746927774302932306585006630548683989576328297005446996804315960829444518287836885127130791485012287834292583990359966610487538139973368805294893863108112614824153261400026523578535136650044568637915611005205513119531408091254416172213358511714751353685162227070663305660755036983642694462854867983831554339622274991004639479053610972881328310119865938391566383522867656939029522123430198836594978461817279093161199485559323726815701724172643668537786265902486208016198059101322878718739746508200532014987474365536233691697171217954016916581870513405049250844815696028459199352613464752324198509499632808818718786702672279867151272604847589547103273511879407122985087225985995376094802882994547782594011328110833518902948022431844110528047544302017690776672458427404594579847120750578258160452754128414013463053902661414635017563910821904913558187674355948710854381350773687710284230899344595806757122736737346981599139519088951598008364542360616248552319606275232125896139483458331302002456616787544194823364636166032671514249345920910446009220925804125891128283356847590729644086220606111729801898823922457282248401277068831132448011181271180698643940185048488720590257140717606191758493292175349924008402231565045324929512157711548585147391079654643512379488047911788334185913485895622825498112105733828214202063712895268999998244004702569874679421025379169760308280151322137107715021355336039051317659023825946706945801259652366612216609351249642373874365027855760666252665324675699076107459452190048069389493248194346381535215385118929140411017538415983189864601147745512093584118648960394703075684661564547119098008742162377564985365248928956111950403748100466451839576678508977168234721712486471400176211739249666583390047987328420818789997610492726760984241954458410928446320833669132780028724906914464486180112569525583911082113623521897790596546527530780869307475599454957288206000436922000903998229037970692660437727223783301234946655632459412627635104071121409705184897868635493396824139697264727165389693545217245575470510091661539630284304682029271305357105515246665349487310103792146886773555507901206974318948275886910052979930645601171419944752041310302943897891697781856333073341335787056185925021349068730809251427091764672750415518319865554952841792914218596430025147561595081649974329651629640886812126636144232736388782300828084764272252791965560403002510902460418495945092299843886919612890354055053313964116152701480131728500208667160411412185480381928038504284782502103266306140245894985445061137702434174355388923543925016287188183109249005213652299505407341952804163396243479255133199203970840389952111699812071033116549677618113354560616965439022131029035603247938949991303683847526985973027694507164494264010271813894836143348751011381180219804122757660743364521126647767239350751982749342642454696622853183092206060752085680997385118483933939041611242703890395655803463047968368199414041323306581146022795169381189684061483721804532051967863570140717155276703791848990569162770968919905971033760890474289169089725096419537963482218810072104109844438716554413759033205892768372746371995867018373061674993612060300969015957485087390694051687486487215833341724918894761070524990447858116996949569618801714637319330444069777168140856429580183352784031562046255086988244797659193967565639486894985348682327011151352069661475015067029024607603612357132099503031200411974773599967512372121696512378190434526746492184629078347380882690235498405166935092287751557968003561338023510556448648116139809917479721954641964412734386968357363088858486616136582104672818868004858641444140003043379664572300317191897295755021355365280303786194014079796326269842833572276699962496630378550165242596782603378851615550602417808653744108005391878971819389754036469265179540711741251673267499407760352709535366552175043425744871274544868378367877780359187112660418146077537534061501568650329331493235886903263904898739889155529968472321828024492161998037648904441649471463125400347962689460065544340213645866621053655419380278111241742692917802274730196817379799444976558285469090041714010570236069037032706695069231251333553402473703733070602318574835695747964224376150895284659216367945939865370702274098644844741418102795316142414878703507743491061780211719509516244262098149858165956763670475124637339595326068880013279649974578821046795364905566777397581720682194682007986211046258891305296514650529260288148713035078525854232235464393429309077119527139652202076577598497416059357737411421199362787378237467993709954870170308896873372765776431386847477357373462792376226418756265734983580707516526731625832371741166507478557321971708358439827284926550232335978742683484079084019136880494015777858888049549631430511074564599801439057492121550912354738065008096705531656519591941328292179487447034210357239787608950707335437612702406639498602045377611690283566389038834880370090162015360323674675018703747687476168344593414543901145176380544884454511523780203870513983497336744793443002480236891073602738387621669893991323631990119153993518906147587427569854500258645627496384213433141013905545484954898881935207049093746065287120041737931205017587394927938811361200256726187438075341348558113195553097044620415373689891852538701175906898964594636847539774571160864776438645931063887730137267848596583144719758285722623004607203111482740055694622270605225755596581351807423267267748587336616222885453686075549295065192156443248430432992884443380633017241255025178541120117214013509204827421863447745425143933539902074081829403152406705593360854683653275649150036670789836938711435913282344820845833536089666486873419468165605229742491652516903893972032826405872601357779058143234102212727091328676837858866311252387250613258658653830323379897818685149906512828115767447343512197269357273502820890693613485360503227059717919434033708701652197405020490235374946766139694902295992412491492234140486588177561295465642085822854172742397627553414151021317569893618592362385916041716862604295126249476226722280402106478663589055745232566467642570952931337179386402850884229520655742909769693364514078446350295596063542002298094728213226703924373541583338430695267235255228400676355735455081590467437016055626764828004732397367465991757864108307458118435678958752068773114913182086835047027693664924198995552270553519388878592527752723630054509222294683882327413793493103592413525112588779045840187069431584503010299117670242540155783667427138534264170528728387678011908419376592245202411486666150664903569859542529814092228047586332579640846918508452165804854769732672163205759468796224456128537632247926762038714829074267363065137008152848924418528841640615192638411398902927175559861848448070012227104083106492322910519541630699970888645515302763495927730685637312185837314991454904095877143763040182731823366528664656379456608874581937648988521956009779572401545552106033663870298411633779717255960830033017291002968798878130432363980893101697027191303956382523266598905784283210207917961065467000735222351367050711085076300654723818032961459473496652540390530220614478045473703451282980886386712120164132127952839388932840584289597495842057954770295486528598091575163486803613928860486781394712229997918750771779900348273053311340328303045972670896839810280150637019568680909754450108559635177595867429774341900828602416389366835460461429729969678333932805722546278998507783538469890412173263249828870705243688541590122095145758038253201786457751106610711422768262923059838824522596008620536972386560196096466550159304601234589384206984539330857604694408832259971380472192273466120598409110982705163076549705409225660565122296833877904243625128399155062191848325583723216715348707367120526924971678399748442484488684663269772807959084581581000760780729648623227502041861064837935006801590058558037774114482974680257761577105826730135589326163111329888292193017923015119226269762173786324783465004368835393996166714214871494607029807358759320294776139597407398739289234135734508637530225772597243980769460361641384851951094870060707678280921459523267561213189649021766094469323792966311717579036660412253547563981598702262865345356724557778321664483544577175309913942723641303634541026116001813964263040223663460696363379087181299413981746892592607599332932153069772750755809813559652511008214233575163050819639502836601545792176991211620886371224459260948083830494706659677284193268748571424811067040671598225107907050693277538078314022143049219881779823843316256977304763920087570601813921236428138233900079168925880244733561166952904298326226182252272458239677231044564997203020496641170375960183238306305190053589595715323337634880450546672480298892240899467698738027720882937548407558417742711748161952795243352494259516835513139576949509521381669543706878589953771604397905828015088993613234069025041146317710675002450436824867836768825245096155434881468415137793366696293059867559357694838100105005174240741297839533355875929268554408886814147485497728245851637194934883704352171186361658348162939247360329348891958502444430993814210920464303174020247691503606537283021277868400803808622761749655905773711344665136824566980606800802765797067944712805800858570698596804751689047923502769944155034944118048723859749184055560760148905828132308287172182861138573951639743010594704019420459123024167483628637212745332583288841827102669001860981421338354267527565841629175862579594842662015057215021317212516145821957041266039612846019138913689821635444524668271045322593361075809288625843749972851847557459796549479312552137755124631611948622706886300557933932227752862816164378337702404002923963898716653656945757167412666918641464104961769297991569456622138528844177808696311162457213702486474870410581770244387682582044906467550714336709266367053039184542477856123062436436097802485826162866139749636329499652013294582457803764217135320829253415326222432200973954641016040698232051589115961202484779894557875890595773557239959600305011344742838861755428443479363546939271726544151333577739082927525686525208876716745897087926840285877848492553449244586604732737141704591594692555839158384886930751842416286650136783240206980603306907242340769842464831538418574751023689843665534270400618929421057295727267278501879256652796849348804518311617199972570199770496854734271751918135825010474200440956026300416923021390574530801225187304735679759441710441530644356077598413514707619960276392538410771580262359336580278220528340072556629141975533764132788801233442181288409281604398250944606656843713846106541434803619801178801276116138262011554190314995761445726134080674477076129012937229315378961710628521178376226861884784341434279769171369840087455149206752878778806418131510559528050453127391597715448845402487545558784991740758941627844980131231335469952306054975600941814170303583179977870526454589241688704137620275141522649819820722122711865557682213465702032510009425807266289901279902786033738936750161507664409988197146184330412191566749379586429895804966609379082209854353712356081602446603283953978604325103271086585476395549100698412766128970704514702025699699395128211148642404322977498128544281771838280804398428883023306854571765402575491040457312300597196637280026705771300344681277728730558778084323674387905876088368739640604516901730486852411129990085293914058450351229048724483492805472009025346860711701858077723879036040814109100975950806869335476772303579475958524670940133002039765900988526697761875455562249644045744864746426304302671780319802577582382091515178696216632354073551085291520986396125936593252540485431600859672804074940259173216976219211998609845561308906077511434021528615608071648833980473192114969438218336729871879691216781378650407174431004986732917570460295190696060151995314584209304856203278364987572870367586201570526827584549497258101266235369592332486829307092437360200426473573279141750480831502390463677100371389276453389047349921047141998572334423092784149551403020359444414928631669873167474579406278442055363850166839030355336451643663281242350356740959133126148981286840037433402358201854165348586962663125561001245644652209856788566367513688311824785702812128576403902207984558507291680567489858847381718315083826932900572724386618528556532036452490972851593791214057576824066237273165616711010036234132753021979459911134606297611514653502695271503829048421507406037622843257900212586330495018119175173375612007645099119790544858852077373256342650545956092955188986562061168446435297508181662490962400458863962887813231750532126187090347649688746099738058884677324828156668521687578936186853780556049780276287720299702355686698617377873021782866763981560119769401225220391930845091413748883531908670518820258186433228695254716955766452830532194941073575485173808248037847168485310557581823076152680994012492624889756739975790614655447010822737108114904459860958184023401614125390129079045946127628538987343909827460137389496556493705940148380504728398675830909393938591970002579675127418141328536611060542507077513459579550721480115169021365122174876576627344156429296744002740598810623144727734383604245246151495075923936538814318642891986435133148010931978992173146456325889899394963944187202276273126589490035248103927093045027291356477815215607639063504387544991601552450090229942743766334179372406638311003745834068711644904947561214644575667145853230333041955369778303358473609098626172179345607076399583049264898278545480865782731850560228257386337953916797811900542788308979995124633324907518886295236892496503489988150930730984197669774802520410799035342367740839724581561134167680252744734460973081317696898523561224901711243603784001628996947979805327029634988111818600834663305948420517185440237334150464481478799332903215672263948267345760030395276335220241232063976860842097640793976506243712790562849912182210392671064374785623128800028407359484007715370350020739831890365780163126651091065575473500039145988165288068402302661639047340439539873842171263963019922346683705262259203519791515768317221355298815867931319710393007262231313232777068483957246169295134832146326280145491241819305295272939864001782969181649128660266935646465878712750972013117994841561311785784214498340666629629143783536771607397500589375827308218821992968977888924801813098276401587976206387715018652868814112112245226823606096064346999247661000671403233270125399494636936268945016148942599954221702995772161403002045297004445612747192373680809900200084822006265114803557138329686859764324001183829250215870364400699479433491883936281454071481346447520709364141992380517787627606752978205831339799960314501441767852767961233469808510468335686310187365944727728353522454334670066830769190066205972090607307190226828087879999534409269998807675791270328343557573142816499203217246848178658753168254951109049381251861210758425199964157745911835385061172583626783289562641311790404271241254367227292956437010089537297261496815298436521289015891708433494015577349698238881026687386881069988026244899455889450478361117711389090584184459715301745460002389243617187234366233204938606885233320665000567031529720796721532171649158176493350550490141275092308528957789204581559905235547219654582199771219313292897947373260221297907263277153049868660595102809663058377428582362995572187633005358305574139157372152859826712041367466214926759219768789798816259958140087098224498571369403369933491539020292350557306483029668701123420590777650443919550612422152828277285328734483470997868361960746540773634462040498307958452383423093101600613814373437453395889686210822486747345897845347337866914342686496423210623511956530018951328358202988090514585489629264743864948221108292732041689407554891239167904591120554106380729376154336301248857122702019330198195073124807846516779370535896541954187909778202314319198261411002567544865377021540540073078690203761420079181125827301454877697041985620492409089648035927291676522095245940999876509943408180640696234162101827409925883222879031353899736724644486310721465770874485679344634658556653597311919708134682617227349495693477957003155591685061746965790338933735609031483863003673277659744747185178809512058033394272929777296340691083582180358949836036703638331888264651084998033296635943828844414411122996918909965581794720486499740233038432568666863728399881495237126999430323955813110919882617425134593069214237725099619525040042405103253738571082002262262936380597266525773921641240215795110189448117605581434022067082981275196721110092109366330263285415311947938967451654028011936481216427895378798414475772015997517819108395266746377950606041048802573355724252904824205509682380587384211947074596356351030895332854048502184183140391948147914845590219073066002100695293924717230246346978684833483101747131206417971583712676519346564087399690623472872822927038979964654086712920582466246968903963413630635048147850288512174663718216424025176676868597446881143595583323704904012901069478196821357088440357029150777343035962649894424864106621432295266971486389901376342798456997652920583988003553403141083398277700737666301843856970975824030522984890923475043156729525389651484282347124652538580929095057975289322476771925890692481540210023778180124694891306241263971511599072530587569906738723709716287873639396158487578805161388568218660848453593513715632972810129296462176045023186464187818845432131725963717667977485882083152998536932119748309388960308825795350880171952423735349983166865694293100089920641533015434629192070398538002565365913560679930900930625547485297375865866121255535949833044272666911173527762808302408407323606682234133662659687755004110879896369850064347870050829027531611046964305204367102971012922807942861406296381186096566970435308679095517550327875623239033635431295697296561103709111297915827714764186147846140356487149769555991285475788886191241438804697756593528454971689444359984349084178847952256511000903285299434707717026195278222258182977006531332461818244347557548905823949546985833576236570939864482470859644477222701697148665383888608688683145371795860935339017084072450025635674872976084569940274726018772481161065143111257941489355719994363983087291666015571120837386592253636638784263502436786923100512679897360019295623039703364338500079367750675553522207531454111760063527705333429724775498988318702366708494436474320563844448163243231308236929737795411718073803624305999280026237053758419511613870122157281611551683819235371579053081491037892182431385524793758484702784289981643776596184834387836973065894534912350111613586420846030880811308879366062439006523623606290172827432841617552637607645604721458963824973140001583471675400306592973659693903705768458320810911045985532737291894213304429912545932496326129284791426633516175246521739625174780545926787195844232002490484176031649771538176181517958787032826588042095086517843388075730651259138358135501898699050730094510544683115884452680320343870865897320397403606640419649582992247203159817534690027661685595324851149438344617446372396853049734671681683906160257570332137415534953510639933525071558720569665384378513730700758125210980272175622783705261926941622775181895084977543552215786288773120905916553412179223013103308835479538986828820434600474744248173347105234814071484662574093032027130793842081052755864253557014198329870380110778531916936277977276884560286765824925458540005038137130005861143220760694267812130650249667222119713127360277455399257001951762816463275216555334966684260179175715934520949327458074150245858539175877270194783302402305366198523057514491880606969905810062895481497679316717656385705939390442033320399554221869695615102656949358034992882392718829417367823669400295802348709303003254481687631843643796187861677424564212244085919056848736339679938102915954662380834455417924031723805772483392740474970735716641283670308648330092532427853184571569044250706770585252518201085529951296021148993447619882095430755323812146813451748314934526303582829707467836673134291910945147922913145526495442440629806549052949561386691560533221844105817191585821475028552684430661028159378084341882069467309547612584613120088029391093765054829708243350456665037216743694838764019178155019312262500581641588651149236692328191212982052475553074785622742407653144395586868933377868158229291441348690142986929783252137908584133816152125469586531943777085574347390449972634479769405587760902101657049010795692605649178823309523925971100818842443502103169341435985930101291753024298286468216526052795344010839644618524797953067869515615347773556036051394750640525148887616297026141260781170201560466582359631039850248987940761421676955918700709709621183370726570680310568436445533489997945814879479338725983814418767569497578187677555746646448971629678013965091056312273281963769130353669464445324830437902626858303974310764032812460856092008693918619547103196189963294633656582069293093257765808343534137867344841981751738636814816677916038807298030745820966118117514369874299588303816191556804401775782936491628533735518845867724507385073854775078636234150523421071606831029053863450357018492473543484116198723142019966290446257965290467440452049700081920789099813525928566327511098665244074001043437197141508488949765296928003987180299128558078368724439583778769211646896268526896773904866400676612465187599415021192920782393436024411671017627559512665136742721513834513094931919969123257924892906923389636643501018514790755143038699215407802591125485094912417215019078493437516135012764392853160405790644429841791744327350056951332918798063024568111273252931586325853057228471970588735613007743396755307925255383031460344246330250498739169478903131190756291755284952004491512276783897738759052309459688647501296118138768837683439788941301467458957689864029449158900073239369291434773192898493427086541887811134781208112520502321144015385303405367621413553225240920777402160166471050495951626702031122094947971212962046278759781904080340084257449722304786458695763309440141525503384760651058495521933371172884191242766609019572925197280181930251094603698477915955159150461765203221757980452512052020828066842359908897327683081002324750872607975079009995096117130259119832551953319555861835862244600378496179268181467201359633250414911078966204380151083766502148861911391144812963481466617591094092823164801863985616268035298124744654397573709471083817026471663253756739896605474735572412312532331087395886428089769128582602425347161129753282303730643124378176891587813882082985604315586240035287028229294922700066201201250792051361173183825594703352639230853096867606344371009714609287116197853622653105136110922851633235322017807631576451864001808372474441559053716240343522760100854940119107579945518922614615018716054479962034136630339439095819158944889117584244775561161708875740027406272004218997801797145819810259319161656823532550878104752033983266418846434276936376071232266452591587384930524453220801130149564552563447591118115325421021267872174861937156042435874270112659873397892874110455933557597133470975060489494060127400139832842855785524129016632837936729574233727416850384221904628848073071664291885583917098443459986424479267994832965417725105987285677887024848627117066009532481663770529620645782609479785981990261080162055291077951943430555432190017938948703519056186999384694242175428075950709773592838987945911824750869833102153266818633960215794037434482358388709460527159695658485910222199356974121558615802962496932281196966841227601233718151355233828968558759185448680517945229165471381938825785124546668929824765846028734968142940719747515743647633924977494074018822714799687495515696491274853069511566695706751095617205076118398112258814510655706493331027450932188357431487281109510734318497162074574164280210540223810149732198245624558157443533036581948617502786311982929519155945755850380956805416868749904783880467888383571968190833946651064015160604025556574213263763934542443798961887235259140280171433287276231494228883558692933553626943396076184340849161589548615922427997827653082518877860400998820499275489142687275377280980727224532613844782836988466803979294564517004445701839470304175629417605848254952743032022557701907442718193727692788357167359239144051949051776246348945047919482138473704942735596197997945923986653491401999149270902011264312776698053730817793918666169375911188344653538691781857606804917924722546535289913327370484882328846830538595546075441594677472039917901245943016193038534256257275961778821365727341209448190142879136584970890985668787391599678730370723773858931433637405740622508847841424580463375390758487018042930940909557135960186401671734141614824635823129349091143996586500430183359286756011774417100767684047845672789159571103002079279421643525460359987616675263293136784637064498957560414409314974896199174616114450313548130375349590070088301827683827633547295038486937455890360605684841871422398968365317446284727785927614583158773914117672512075111645416678573861508785796300194255072363278333685163143349690172424313247500092944617814232572139534582235745788894172484139054489431875252031118612609718622284259066928653430464833472199556287985479825115983146415133601186986502554187965191570859070039496322126291661248668343881166078685746059433755689761271712060279402582896944330069812400342257664840848657019016743659446153383352109847862734155952460857857741927353607251154287113393592084870904697529015019187911274646531966190036495356328572615541804780993499443173747950502998212245127010538298416598338614295868888067179721394364241265185593345997690943155918095243403075743698454775240921348272510495855913932592165679257328129092015750300573289641784673218058224899194959621106040836641188310023150241389610654945509719121030387772996282200947997771482682585575566618902171644122983201286579638006280184525904741076452448720202726612855326285961180962804372517661760890940046825214562755074987676098200310407153794398556374972236214313992676616443293261482861806753209517868324768046508786464244002672556045693862353677740174211523125902111717040885259226186500433194213837586145674869178539105127515861279263348008338111188744055027622832721832456236138302124841769965383958659026593538618774300418299503896426507299277846671571803205006100281399208482023724269356134440917725422729359272542501994525984500855664964769534177418374763365885571469931413046970191544201583217919388219883828931930017605407858527902837685997808779542619957301410621755453104798253173017051937297525380769312692726851268087956923754593260024799350773898994587245746650177243589371513208379758825251822252005386326048865934843001372673651448796125950805158439262713430018834232733796762319734749968204670056005839936518103246449760367790504078982816316928871944996859776074798100408290867757945175705025506993634555407987724058701352709087467927686676545605432545903628239110767676716554076001335351948716710693055254923586021929752363967033894192733040335899430525856667622577647763376480239747318702915272993078904854802860120642115343729588437766396878356716764855888273418303076589742906347738148067930207733527785705488522866989201441905059178554569926522946654837566867903556196202451073519403812829639391711212807140320123859380485719484655934202303663748601993306331187610308316938579143349334515033337350601379703923710805402401635782083157300438606046691357667709187817406836271450424506026917276714008514753119151902711843791753128594720274027142922269831396300132200148582082139143799893296660741459900554764299407717545945991760326982537084621792746441278093599868388969931264973905397900959798006318617047327796168705645615343605463156229776059910050023570828079507607659579015542080602583156021907655974155336023125031185605886433039324907531872066489638653458045382403982005329797640123120236253793772922345180749175377042379315714651366193059279855039034501217048692982045958906957483059885968550307231591623484420794031483208142492184865214276770765323687157944681452717898116744346898029375520100743660562183421866075918229039910204812862489961791091806942058312397059223556435004979795091926940690964894609292954158506289936720766580615860581229403856295468801929855634911561952316704224387747444103025967979578890667719486660484452452706011731042343314043420320628302023056432486050400157465044372285084459585035903734609940795795335259493141277203741100685029254886097023932256852250850673163398303554426811677011346663160884097413940509193469700857655987480940698779372392080358779075685428799929064857852626704947788721195097700049001492895557498187487586841758352718968551891946354608350578703776595634998973195885916170344790371752795500335835699945394436883453129688512194180540249965579846168520212024978599943130310792259880536973950118184045213163407843454547028013555543135882389561478040684282642303519252184869281686474978562353995162833424859408401244896970182298484044462083667958661758399189143613268729166120233932287720845388232201581521158872854911074185039665096015906516434816613035092305701806391210637708574506656589387043552120482766601439692001229678121024036889482087023780733616090393286819489080315355088466678851415002260528128032029247691743894042536629764084135737586690747722083721760436167659714534776984072850495280912669218128053657731556577951712821295530725117668239724267404332610030488855788995722199274473677595513644837371868021101468134194292343704350146883490294875806872421102681857023303426806790594652667333503440410524493855615011971598253905195920662056988972235236892334304423313685147349183235516296789916848163632470076130739097160693848903736718466210728249111221502789264016749513528795334683447027405611094799368532268548047450258175174494429555926527808211401044123015066196678643064639736960640756327861905418771909439215584077507653011464272301534641596925840068098562456305833094303267449267605000592739391226028143854814848056935852341994876080532928307541728895041484650540594974431031817381730441513799500405373228544216038712430896023294848191265674199701548345407696427587557537077685616430782932306333984943629019111945575096789710874136420933121633082676177351874813583289104428759065491128156567473986211960681947721997677562675190426218284857474160272487455225499905674951156312207112067030725207237026986162322996879613092800507295075591961501343832188646016710010554354461127119485991558679980778172505673673884563313074840473348827982484977404586867982908396579165837481265421173414868114744473615838754976916050323274566792346534349201892688386612767379778135987741728378274917706980225739541300450147114229418002937123692878275469983174648895829102317604036620659643969489306591586463265306923255400009862357835860567856609109646082607144813061267078711006676687595464680208700862193316025843750021072515768434064212551254551243888629629611214477169246364041928978444932825252322380688527559224522812693810717002672028909814809798302099157641096366070021436013404591778541459160098900389268778622704366219727854685774554115695700194633177717836425511182173284294370653935428918754329991288001947803874097163714696464391284188560616073821243045618128846986360425605126843560738509456108032765807700292993350925117881821226212946379318638093783497609139039401309227020288359336496324613669032145228508398652563982117361474604717681341654604059294027771847369430435962090264473330036441562261085865375375722537701682621366590074251620221620139441812113664510901578422388150684623435799015294589200989134732447519571008144473998738385873823870859312271539373694936353751235167805628831931588452540372965017793341934853205819393336164734474979532766594266164637433620997804220667503100617558144394930903842698465729353568380950640865645936788399611830116968484468866220162409371523548270414914043563312400079218447426099013817725491754755751049511468746911223085992231134109692960539073705498139311940614935822600182469437196441030906757977321031332780444120469453907374245767352234596639306029630866210777467504629643608895105851911867638072282289999591210123793571358424808713824760431006151631587110025577276152043447581255569515934672742835840153525760262728017743755153030894141458658864410086214724407466705519698180328324571872386750920765117336801536354499147063412540866897131436397437786184153242272605838859181148713099608109808671992806807288827442262459562246089607385602746011804192983753903422221152586281304034851274237806948061594253710846752697326529582820288436852324587536760374131090281477834045125925692510569095231936390826849283478864338908748163965147720602539612923582886570187857734986294964328828080665937319227195142572140226663785604708858871011794765407498771842673876414449094574099808857685661809688108193508445604357588579386298086321234140009863694807322082601757926656472568700756407693188535326093185286624858559720361075452035572830096090432473164382852225192017807784515197501509899708348165489753112705721689335278801399201117120928564200043008053219209326512182601907998226930296441653750417671397467838368676865009278259214644821653798683510072166901796069728561498327109685409686524147021467108078419913962396044736561459688119711551589051381120890767078298390028158863309750610904359797793539426721932188680676431471428053159312648556966595107722464042196612862455931353419612247190477192378301879031289245476601448477157451908423955173322967695997458192907642600359698526747959176891551833948723950735023758808531147858779415154617851890193852968747843090856596117062225826491750629938410136545694795662722924103276420541836362943947164961928371835672820150338442268923447561465282141852568939993786577904636618904433496062874014827037884599666077403385075832786702677566283535432182252268234730407960703389141121521329825500552792202083105345587847802631885495444485043541431531168233664600268167198927846311469457336724731372006041119093979039976544480389353295534160056452886628621586510110411283935950107934448950960008099914914028310278712803061515674255972516337760505980406831767640755904321817175711940616154835576582791513319706492460145471425467052626111716451477587961856234099304778094633285126377008196629278409107074759899031155924165693048576922196650723656619015197633457420429170789080339023935588560871192629314244296786770623026440819556631244771862226211222458647304153818407755036525765270595750642013241541292725395750279229251018990473909919480922264521170225395147454788882169242469843291557124488482500730636700409003619329008490952750942362326179811773121053637874385196202234825535892832793566064724261247374573596803780351013171241555763314804630893882244997825266840830363153881328214973177973125490096966298639688051512107668204121517222783773803782397384055543931383920955563856550304446654499522725620515842386752527084144995712559698542859245289801099078650287259187498487639682121909588555639438482052133098563639539609641475593929350338100036286344683201856180743682485619649461021849230690045748162504837147388099910642784811686095580429557465585117717091736506525214207141606943147162655949018893815430771592644399205908297549664025295215967731874209533546314911427770178608111686779268523424472405947253552053770022302932555817474276681069435615879351399371677270994273342494652252906517311905030499568443126605472331179567470343032978027467585707930331591376374159973877378067739314248744313657671899181155135315521701555475053120825768748878906495485475234501451574701167342505962429098926636933603955774050428882846395218339986070351530040946675743359826669862054490174846169711523542692734895656822459546515217906673280753972465066213374990533764676334958163234893175876649986605142390751499836846677593708556061654934436077430006184187571291844613867355909927782167963157979553047540776325360400160503512038637132063515708355386334142851981996048777771907189977985044774468489850090936102934037078334159895858849831810939629140244520006387661169409507295679385900158673053058861383303678585142027658563304439630657105635481298584110541723807375186292824806396218855230113533050058926239644034732596085999342844719515616518720185985433647090930341469311738345142346269315080962184954488884390228646319379579469182016362027592687171596531052001271081121028805985482093133303953953456926148572993978089212664084356771777544423291350201326822156883215822218815766896870302429975460181464701051788194013441567114431713096165294674056183711567686882333128931518643541026208818784660255170622418917504524701718357367325949973206225225271017471519029758322943484789014431901389541330498634473640854600163584742717550013135948843847102923368183656621564890918169177295331951739677980353503515416579885974382239977668411414008749991336339668141565291618045008956182131657094018919411217388010937424619943419279989937793764469290844553033811180833803906775988346822352810726242654818683681134339608519975317172676235909278001895564341756162225536668298038174938201409830902234875360497264136995880961660239054684231730929248803141067581575313152424169212804582008472564701612903722434738504115807550209892458304416701888171572127608015701797276295473795717417695551032394732718581663036348659366306143979731580240230178437773732803044227006969343089535544521840477614980831947971312198325782222359295986774203741688737031892604939211693325159484221024857041021020074629400904537822193641296192894721502327032828939760347585212066553952886527503119212020587922404746797785950006080865146989424924595196842755531441456947396115604545482303912548683831118022245058096625304704022869124898092562848158188231536492130540139810922902285421623052241078161185323243573954649439827892045686069386946616840688522336161269559712315733392631160827022735183487611592824658086419896308840693394516545637238914299152411163379229045237958652545315108190912005550031974107840046596011348882784031553185258932601868925721428813056749311826108250996850648048816372068063297441273584323662891233999095368027308688073887041277156427504756788245140375477345311151613623579049905069033244962723099331971055190953418811937959498157132042985354260993663792930307069338564661402082620504311115200635529114692897508510429429901780034926062730717140487844249694926842247694051078655277153365348748848009779329283808641364662892571008291657415878276471163663614340226323662661187228151798118312362758894276236495754615414911150558168248090128025032554926196963248555568086287546981086598267920445298332719738381856141726375235756316660660013642773077417902952452932679928846618160693286393721637997107491846695460484631182069090446182369627756844861588271575790717030046424342721975304438872768940981194926316292454865954753083623814278226305433970580333637508754764191814503184952318913546301561213798002803684261862818024888534038409502210908020190611352514291441332286408344275042789672024964070007375111181087252802871739114824127284910481137347963320204199735995319638590614600195050635504629457962436774731021939794707239587262611692887453006267929488915546650761337035703011221623252177262387658634756096831127977362926564228782197202099364301327183399117082076745572898230405748488043226579343670478767761940145618742208861309159508499604678239347623806041580231355946302006607307316518650146404691961946198282895074458507881882823817332709438321721620567658371184020954245524427215636455467216523765455846373976347112120859927273336211610887656436899854979792148045786956473919214939395104298813372593607941943083019499767955711065376637204431897294553340274830154279009615407323063567722849615462437668094978635844525758556508762746999557668723822621435677443582843378051256888349173358924017715399873647236501008701108065879744171457865071762074039383770865046460197808616056037464706761624319650499198697598856374605042555098851655797562649589506850235634402693312401764590072253970339745680081294400570405347476561563802312815308521476257149469396394452963572391975787639551883496003525361139220684660310885112186975603960384117226880535647319944248139369697492194339955062782398093037670409303618632271820030214956299006446903030441075501822089542031161745717447594383608455614084064298162211551574254594154055776183011907072328776304517787543484883744435392072671250363390184747736156984560345542030792704873077195209127548889890702100420095199038706369809058478048290083325019332268661341609098104157450217222156652099030964633041683273561570613530165041785354348861252883173933140537831761518027481056695755315025684915157010917601929326225224474428258939182889605971513210797774673089695699738438185108840305924391770839850433140946965642567750113323385281896230187554879969292821032170676551649968195872709193000490356781366392649678825902761733162490573860453220662159522053591176396530227922687382795100486914244833236200649680007399825124445193052761708653053374318929704058307173882816594464059377394832633082931806383905891096817822310424860211994755847704454877520787966206788299248902963270164244744819880855893945971477711168091354241124052653260342865902986742920106710897748121151722095591117518028163027488051209210193334437732739667747490423817896266981201805982900943933206870335686011817398342249660747190213159076150407176053128464388408567945897755017958498269957325394240885931170663056635019069609650204074609860186871245699659432925339606608884602462540794019594385304712633015473406732699789171568583327307871538278737813346980149092924888026290251916243917295798428320207024447890131294301499771972554884545313788428600165975994815566402275599136410535668857568601941689171494589624213736625394136272328793458934910291309725537043735586567105889983030666862207845298266865036250173250574820593070222983505518010070015049734182046441989285512024064743108455248937796882174740949933197166856439545044421101377396007475930392022483622699364432196750307142093984789771887048026363516652611902043066764155096270122200971107627456484947453032407530120482009108144285987849392363750382440775825051411778823425717993666344127072065071309241398683764156111539934317720747015988045536017256906791644883601522584235685351980075531280229750436228840412500793960236140129357756506268134740715742773450153423949396033476545742535917944447371632041203150686278662260237484254904407014637675884215327269777558509292291391848137614689754829021840211191900131742075285940572670729025407852730489183113141413149437467618762288102018990229504998739513790242309181465709806760130228869237166340027727974600972068776504988234199998763839855857385780191754215762560497099165048901794687558080051418202395996317161002459768960199935848588328365142312017146817802473304410979340678978593445652433935304741597683383996023070400397744321866681433540208962277858858486051088137142277341867724018817993413582714127631298450642396476880466415778599177831327533299700427298449897215891793791077101775533017371306123817872566507638800691967664122189219886759701143652884490525469627766297083795081632921898537324385883232575165374946086383812452189877073699216083235953683764856959047080939047564310095072151017395525582714954467252606559449615816164635627635748351567021424571502756030845971313439117571062634837079282511430556071765989348342229457695388027907190290297045670884079459030022048240022376980896333423419765619934887105797391478444026011715383057440599538233864734510552127780875186941842797583990732547294456330751915536076579149021939664095561661388535923187700012929244187044466638360295379450991583663210942370867120553136390519604527561188999880679266434964698065919855721490074221949146303196516342547375389612406714691668908836425378422869516774893907780088933679311925681122854651898536401006180123293792539823376586556197597906669743425737957710184340920923414064517548920568261999808598765707533885960846261793825466233656675825744029414681109812237804176834581144201016811611489530694859805738220491828730619989378650413262649892546859869107787692933413562467578034499280177647960832226181391310134437166953868187925602322191004083522081699418921343247050395790471531544391937011843703430215605754173830770312250837354372902587526492376375846786103366832502134219073639464707477585795420650014872890622125731845779029101689864731875393979062441540642146552876889905372830125861736235734814089999656893401873115696324434236187178154112364591595197847486674706338703212012848701570383844887910972681983076340444253068253726550315134807364953517392951429600925245440521133439130669997633343035142948485109370725017137771213143729134121572617058797801554505006907640820244616080197910106057726459192500345813661700086984366938869954317306380804322836426129921486361652958679599261254058300308429410420063057635828658138769308129114446353505165381605503902381225174902899790944424461769793950154572932741943375011548585173229224760948700750744443082556427336336953668123140918055379212843061785669380035446767689802377316317379212619849687569625553188177701511452672719895802150352347655634670225864719287955965370861390413514706427330499278527421655508853100265506118611885311943972691828036280566018179261141044232974140860501716174489430163901106553318477988947874060138700184375006451671482137399223608903706732681906379504464289381699968696368216004425715156654445625993411803111573202345286253134985207285001517837593641686115757180897846659309528165755484709221179711970036957369765710061183892194254871864584755419405559796102290978621363450456659018740566413234424467034238891657606768885777964512440556070634056030706762069846001071365500798107808939173376498771361067236096566241255848416128276977582660762679676522704684960071751337594858683117234977772447429723636343692333700247080090708075656159875801926302715693057366860154918898745253349092201085100072863705104280183936976999538818603085975312988825930668669029426624161925127149055572823483064742343845878603114524401517720350837191118361938005604310724864712849693028610400501379608505454612958872916634255273149439551670080341301638307762111759695592319423516806820117077504928774262681504208278207438686930492560137591408706681574651483641243768287681705062241968550051509338739127603994417760932135664838081473992419152356189593153483994639526086444842241666965726897468087382929848303394618591873814371735011260164737776481327770234346733395027180326619904260593647949785778331187707111602281859405188527580194250405773428214863924736996256561957158062285654993949864386628996784611219846311764804074803900001557943390800166259603816568694049481629086576082448842501907712235522660131184152216209868843918650136176428285143568004938606178750943048348696969149984239380382968545552489375187156677107341880497726598004386990804995951338852747113241505545373379961875229914560609711089459392300983278073161245233183807047419771353813958284951638172684913334743508792386063345155162262186552857814720752702371621311733478197462903988779062252427464243130121310791217006658821250029693875430448411357432880006234363429467369622613876785369196734953740558634470000113194266269120252858450295791614574735355535863112828887246696229414509061207499689668693367114328515073602697974816889287652832155218518448414437470866991584788707631253583098462404084065928956927826053811223484241410965428818149501619163377108325535855131922561668528576401243772818686020397105814779983361978730782401705883828950050065713790142091904755291413827134883022706148285051637336200271388032337769351788759612431857268222606202787461387565458252232539632190544373258067251590529283458672074335696931001014738506545265346805572071951106473913594847106402513948681534275284108967221785694860488711331267439036444424513604449414965474031868213724742549331152737021831779307827571428048268454883907628415426763357012459812086392211149497161215299969635617320901654592079795938073795902895910529902563735740925791336495259170096665926120289813053187606083790123942490341694955841389093494797985268347020436876579218971893732636187048636969511344270379218368239823502967286946336903857766008094873840424520033761736593937239851952711802682251888935463730663709900195127503927333431237176232785434686460930273912372680799857147418761952548019589430197658283152294795070076035449903452442708969324356442737394520330319997524967503531669813132298670100538873960111068078948311998032185187140583745654748095104355149997594160631851532167050673702123701034974897365058806686451747254032211012190591778308513480952144718383768718133550557877950367685060087777347460856336910570446499583796661406152658650191292439036921543937802686587632608115720834418051080096929711481591486279945134771925902681320620708074244910111215964487003587817524189467370060825760387865929805195915031667487197017360828069917186987509418709580983394901849256348547909296129991801801151453959353277779798385330888598471524895788643519886739076434672449427962781363392513198600704339445900868388749827462779278138289498634962084849718141800154045753628552299566639324723291144347495914733999550573518146142781532376262789133627889891593494608633380737391121183179153724432340593652205605581929645902656545622158399893185736391449556036792755817523359202870474384780534415862892475052667366056521930534247008890731586461909213785217657026083898050086103984602973628969084689976857167235657595740793187889005849094354717516056508810432679632123710320860889786802483966371945913687840498690800066270206541634663151318625761211224316133782173529841009349204851309466313195214792452178556150287631233683856427946562883541799019807135565601818763259682456026488607261449647247300085568902166776376621132158108443383234972621323332333238386638867466686023037425868375711847050829232505714429256644285136951219544203574329447515647061031741244969316130475455326696701985755782550709098052970716755161481525881663517729468657281577954832094251863324831788528482754190786847319306908172605803306972402982533978946452640082284202918566823028088569104983820606540454769408635450643991157038640932321551080980461072320759091397588398860288132388469482233032502116851878131846443304162139249177297919040546270866844023336830355756706770319163236508471139953527694920497209696218618267112312974995602661415940372404557659677022331037367558046799439068152770857370982775493922222305774981093443206141252293242739172802905636211971056770572271790577857092500085622256988013834561790019450168915307478797766021629848600101815893009539606528587540872973771306844796706083079506372937122751067407891178789475958839194356883183685237111026884824737923322269618898827626019499527676105972372381095899952052155606652000609220521431812262982670058111900332282852035237202871821470025005314698456273229879282814043893369570876969487803071221237988818689605417804995399755490933425650238113944886942122856097299292281207667825751294191773008099499684487453561926572381707402081673866641563599016104897186888801929701535346854083052666836054951282123797409654417906503619053547974111415532281789208565677820291672495669680975351841209569706403085735782794107785262968019671470841920132758867726705125318486876765209804204724659468492859190414922181846101686875576896460598542212570646676499922055077622416734082670430841776746444355442445520488890210543707254057268385213035683231539505846295382909843275851985625739372698334307015701797859067180393328178497916944337148555886062741849969346466950908812206112752334844172943188240968847037240734145937051783666191443300714958068482300035709488299694689283990430854070980212826549139084288229745884025728806568018424401661820380182925507155447923445445550719769964276431292590874048572333280889415074698740941501348968163325924288792638693182040902034726627058517633818528160005010700202868877775261122240774459652423321627675639031283881769266683488574464182827050988262214877265357986525441369757835164504306447827480624505532978986100628350624562248307804321869666874695735293725339274678959312166678051652745253738478143150910636940090632316434758064640746583148247967676346095904963517861601797456049921098921185247837010019201592357754524685486018951397661979543944275800203384326502299005166914874129092912402279579061119615267054410928639536477220083642419312968905856727081810336481807971699854983284893872195748898577002025949584923651901130297844582873319927619782834376003793845649442831570982554929635596486396878094221517846023238733854775947953334445575831036436640111327582707711608707032112789183298884796028572416738131789281789464218472272782361181239006163073649674347341328990424994976234926043247369737626144013448488501276296216253713292270330107369251853787074050799949766156807131531364145005253264596672979050379544382727756169072497731721892272429444840291709560581880069184539710102106800726947374151696455336902048209591292951114969917924473390861310658009012190885525462107309213935578422069592253901713118181040232952214532334962554931534884132912217053395264687752038402602155074571501566353130291909635828895495057128454272762761851821014643841971067567298857461204017248080406027228284362867919472648861790699293704289413865510443011478535387280672741456184774895620696568747994153469669278316186740212483828146179347637654447119959253116206668966369660468722817802878878877808152725343787836675521823685488222606157907266803179787583298128529764621943895140809338783496334961170685462311503497646734934843039148814977204853933176890736175599519325964225827072578916055188781388805627485272823845556070663396962728100187390734627839245798015277612068402572741327687975957967555429498498905401707367203999856011220978883381738996143575203714823744246073263648926134481130314685868152616751786022873234014518910546533642784225237718502634691509633910108674385439846799099968481866879771196059074792355093386642763063232420952482417231255034624236018901115459704816383577807270800754901208712324619794080109417306725016642898013062638822476778633413899037536221066849390290652423205735954763282384889636538369071957203142340371498127617099759569612883972217428941321376692693401356005845104030422299876077648159095275260075336058590280352337338737710478960516585311519070539319108545644569125425241359221199405335470250493211897701832410651708234694786657116234741586183698658914402181193805214803915724181863538920979947180551359063466452981455506829821236746889469853755229241871564448221058074785072583635421116733358390251614197751657330988425894330164140251354446197974861946837834150963020010229649530019618783811007943408883736084447066716279989049847447642523587880659193806497606373262897722836171258334552170373154562120220380792076651109541395127004525563621818090235148631289485290695402017062256468235000792627366725191443390430600857004444933341525557257168385071303609897817196530964527344184245567823549818284829193980471115599921686164442654456168190551229661316212189866085274870253619881622607033821974853054573387329806112987110779231000945057398618894571924841984457578806297824203452438524454471687099303290337202422384828806166827007131604092167606151198891683781351014543282315620713784066538523368296382937528099810445038489020655127390674547638330189751340991754833750730347238464158472695750321222906471838612927015205855722086103582559905419796181956981943769007161630844179584650528079596915662097368171073060308535928756495428129042007383021600832669175463053930546574653518797231056971448903775964756264373118036092820779368857030241092792101709115899968911164706993692774494004906891995451137082540743030553222683365357339931390382364140240336147166921771852547766145547372360950062615764595124704716296586305647382216773505081608737019802216422554687323333413841964397233499161033112373115601437261000613228310284469881327369980322353981791888414389558705595143819992321254305926193210385170706831513157522921758694226303964078143652355356919478152405590291705590601059616232938401591262203429330341844398696783320517722971577226616377679026103152873366910281493885895182427424764859562878721724543224951470962952998230566836522296514538491091890688631337278395136062037748602432168024380604841235101052030532375151647178699078853795656269683159119541339188734344321225406489312938803828315406306448635107602457008839169806955580216836986133469627497005823395991461489881319842354079563369791550968156741661449330023787100757530881117631799544707062165513638775003187079516671683558366573830522123380550751916082070594511817783345314736439255796729326339873927951011129529127839685573315338704239011129272708152036883575165728651168510757031963816682564497848434190486088269931699357547013531236751348169523313990677968741368275607937855853029944351875530176059749256314674582802792710542249004450970975735511988283136366640676050392924840937052431608302986253432634895787593932891471608451069963803729239892163610964360203557673089711695611972488496819210775019960590422238511755847063565350332077241217466498554098120368290691477909748034907450466594311669706097493526708860005403739135457389849442661477392167388808441969506365585607465320471211457768140481433233189047049463276428132068988116000187344409820159707908558217856331341069930948244493759650973155301550839979740403415612861017373108317619967236305950424296772947688345101430680155558654491706255187767553355718945096894708627515585675171255895922757945447163560606063175483531565578239383438283420754984039511846491251204329504427755341581500096975056520414417426595360447813070167936546672324865045197642926244306865639833069741227455673798105053415780407292657583652555349362579667741944712242307819400102118970418665108513106164912519570301316161114537217575241874929438564965811791076491422762424850899469549745461218131220049949875233269885458356549790385878182848283591659510487246745376477833527441423729821144606242870976646369768255414439261109651601042641228006898177982058030171084911760506343086025275361907852355127992689518794404776392403120877935154075278090389772983813792818849837951492031302846981306161592689943277474046199667856272010443081112157381070725832832207684355411175578725676276993199899862701065258082446840007367244530380545769120103097052857854671805529121674520180093850162451107326888762309774616249981161715151949163847826664459054581648912290055539663948860012113173028583244677832390651158417804292417776554813986058254902387711391131078971532032103742435977102168133286117100353859207692196199289806049954456712857162831593509980496109301082929691253000508702627230478950635174643762394018935281156754500730266913195027637253571724962444211420868851645921897066125829022554207307128904806655373532101986330168154625435184357246465527599819447008514790067944471426552335813400339735418861040260382078991779400798498280978988052244100946419296240474803092282869655535186247431097732616278101366450337795135249288508922192443338090755977467869492567275564493985886642289571913532612133844550849388622495896740809463732904051291916670833105419926457786989357225494844841922764167810858135643486160735514469381850335664149441827872993917852750102495614220039261544245540058539135697224966626924639342018305120631186291297832240253713754453885022419435548235840975530307330984409153696024491859686090316440796856720672061546659510130603324607244100676541854071383320086522298802520070975571427005042075607905944324642731287902372664626951516555580846208327004630603815945483454665844238382753993242850578975710382213165851807981618293833630720029483194962374359970240297045148992533297604413783154411947191889418807758496039793391421821675277039152652070715266131645255853942510033435268980603739565524404744651913635725423606803857052923130172204868317876152664414513174901030882227227763189836569761900066595802653053029765688127437911847440931437184284880230287245172939068668957213278180060108109513107603004203827584757999065319091271659445949875660891242876162044673591526481225770298687702385328011657352607594334033656434897689588054355533178690558773593523260048766749936613457972063062121163647025224418271037524854894804776182243411486563984702482176127932401619364544779108828463502225889970059895023672693028507140544087694422628912869002827926451145876984220314485504387330998141473863621829194627039921498765260317295826727753350780972195516775248448077601830750376018635743931230266191123251144597733787045570155017052814828397315365276945376956269392392089816311138478170792718873656168049526314608843481441418418765478095677274507858295904222953019734676611984149701280423644395782635212608279638682730192235113127157812119505511794377037737631375640283273486982974779021393936243510517290334510174393754126576378155753955139282861755643072116050128193326291300547901372678307760372125446258049225739017001933301260650071263262818358527330174443236317474835392626821221419644161245732305829033827165418739519319730649556341405115160515414105987219932225248082630607266965660149343688060994194245673312755361190345531663525580681933853674706540275718912890049563342743946298972295758578497419295714322391050544654530214017224299622203932999679008576702435499975273649409687703687849763540666852659110519659579850898661815504029647209906802464052320261444290031140892417794383230113757747728397930358788754148912685406798040345173611002104440411757736467691662600144096809489745844812790186454482448108846745296520536527120284890505799415284751496181973002247090702646336813463941860355898913884438735662547141224607399263386497376501891445582051138277452406692064930351388251001458315404308410904792937267593565437427450520049871356739358225703851074512702353272958202353509219192042576341015171536634318407432793793474484872644970466518443640631067042111542416246496376598872998395656885801837113858417075637307450940922227752696749229584923483118417474139051447661184214947884414274005113404310573111151146030181516674426214785139849818899286453227498324977319539338319669519488936271571878646611473910475377390854428606894313714149623952471433333066097052941903926728878349658477994358692355720407879725962162709897067421866060350953909239274763548184966518296559759410142486913111857992277118625219758089708131054802028540747596022142982364998753391418507160584299024645187975825796553237191671048899368747954518020284878090450540036426483063189910248541553273896858531727176881542154497405291752878072616717542162793225286918635563884140015347418416461604627733648525259196520563403929414736696116683955630059074806013067985155095086436185288798838738716564918539852878009097728551881766831467995731522335185829347715468335650111269044960849605088590846521309176395986068973048494164157117935994539768889667548664727447739676499973664657771529656268292670710559642359550194840359123487351373243671050567934108328216291887119273980077498649330624798826918598106677185886944514404698945192495444387371251022371992296422189054833654268134298691954672176144001735709309872157502555221795710894515755822265831289596669152127137098883822271032726851588601977200087828755055869820730063736848397950331105631286170496875091103316944254301854840750849262075111364996538147950876662709637261423164123738375428079378867235303677674847787951594195070276570578759028298472303809475179300592066020512032281455284005436663605678050885668338857772283267090411899090161051570921579979250713113012503052951838047281140258801849092353052749022889221495297490745487590404361707717274506268177508764710621440462336761170207927803726689897352667393514830208053929946526551943424261850278658985686300822282789608094885588174649087793948060163402701369788352949437853174975584985557503615070337980959671997003782875797242253852866733450601462903577571700625677974578916402497069016112919624692751531202020203055202349846467711759698029040033878045980020566789451940174575756169854972709352106376292697281336956398113691673610221344453266544025209923403469518596903149780565002783792559202785202016957067118108179435055190093852159766760900057574746830909759688615959612962789687374656799549723777528284101946772817109503304518976641986890779259097605059749271011419038159647740714912290404122674907370781369719711597909571248843992413381047759931952499307382921215022739784593245834941263908726659924749823870370504579449322713853197259342412835548130594409358052701883081684964488715538545796959693544583916742329747303363481503186330692951510416832977446397209021834314653996789482764443742767323845349712334039543246482030726189377725725731331198175586539329751519967116730166720593795398311758580754619219937343202435849764232084486756360685668353335662681973254993836948699613928304650532128806948198941265776761651940140207281421542845780988522086257791944553450508266256544349904324183606710247989280555374642103188232170726076716290385514965421675459883717418596753560551909073830007198904829005774731900385799035461026459175550909967304710568634347929942529554883473409995509676445247438684680414659111222168205769733658292846352717259824966403263413508153026832544728773432431487574485854969552120441412891487300832659560822341381736979692355951974970648273726338166284570604532016891946456414931027299620882525930021463775983028834740190254031476256342759196436085464868228110759675438405767674617930208949063237017971129976185892595364921022247526632279454693619125364691062772874253687892152227932952916485367625047277425505303094001682830492455734270838613443663088373122545600497923246556075603547938200092004061377223747150772838347334300409325613920285547531197281595232842494446863629860871785032934251433895438139578547040445792901326234213358382167737599292382195766484605903550137131846023134550935186707587049666780319603858091819637458417946608831259554200605250946005489101984994552265760413741689545649073749452828428494095383664073283283993372298428402883675280453311660772067671362376030123358712440000845131396903446883927678299791873236073860338691292437715295426317853579095890062418928582853350836968641726225368247036737036417125139565155449151475427842076367933955706773810946245665944313562510135406226939243476501128040201194357304304473370026805175145599547265612699151461759732817473347105799407331785864897936556303092232798277992713856948532945919453839317013815301435786960573084511124366087249595083457065483605416529497918238320256375934663450312081105582772530946507803081383966577519747118613111242322381480336592677458662675279165542482120766677068648515500194966049427932849672156335370308181005584939787405872930663584530481676937111583354101220912085421079543222608074582357674535045570694334411527532020317910242948224041320703888708266591099207524113105324832827016672806309959961007188866905095349677041648978977059059802249418350742514788227284661757486935305094268230143869611205034130224357918627059217241337137912140003048121376066409610921213986846944175027715609723572597753739602409664486625917221105759148717990900483457574337915258889684015963637524855051524725563675446983606452790537143018312324961129496540919807242722831401266796213385687739732867932517663326564994495181863461667476860730803173658458137226214998514264348707368989113843155226066555380843519022581595582913564462401605180509393348251011302394845846534937079966257581466188363161550030261366765092380275631561281544503407479971005348639457378573177386849752944491895958585999712718393615041678048117778247516201811547946405968238510822015101738701239629837650200460149209931813145582905045619288264323050132143516967566934385733899429867420443189812746439689872540092727150591141237223307003295299917732634351961622239851602102283243564711697646866375449361769006409352783392142724205675289179796283903953804484821191592327973830072652218514038975424408647732936648169779790041464045508781105364568828621843283464339633442509068831424563944858902456326532341977824273249310262231901435076797767132065115712357319693700188536400569212519754753406868897897507845018278295438132217947559784001514263554737351008259045860466849658153909120951199360648007687735915454914468395257055772759486137160956429523590378344339623810999672525331990865213047762068896359897551084918920610775266617913049146641280997234593062883328049375381881315061427112623722047142169029721469910796590234946592205166796632296375012998211469024090391273790179900930546467181905047197367781447026063395782090422563670537123478889770022386497546442003980663479682222097889997819700784748489567429649684873698558294073287172698090666577910044807400159768717194285146342683184262845230388540781335813411065933916766435894318947851584888502004869846367108046641902123406612860595194021719163604044668678614983722019743602228011394854962021271442532143786030377589181120574183011984121562447594650661529565578262637552998049336231318314060102378753796638153627961014080254098919862657061211961978398703343171878533515843165764895965233129305231598749913477489975366485628483601314306518943180517093504663185916885922991789670329954608377407045648552984918822170540199398061751175226926181717828055755283178920639375881574322871995408750752269718764084514428088473037840465989661537419140116124576153202110329665119411551763561640311516046933490131139692239900768407259039460442413899655743639941806056767767166204939443114469154157123728477292120119404934947374019288525690508741290752136396543280055494580748373172448563272561668116416973765216095381835041568289773961449475288910414977859974273221280114505192146281951620077713554626680088817296158472177867668137053103139638077893075461174462524690769432556514338224265586092263326384389047186798724442725753863861002480366405902431393407754250614771241549048678964655662796674286144982973629937068178359400595329544827868085625376170570383859196568091040315749787737949493951963965955334550499074608379492822086958512475618600198247683738788051844838108412869232317616925318789455365919512558954504405100583072969588335382705285252623480991333440866879556205257776422474481742150735953016372376597598412646608379200958845133369994802633146613303947112625297094484372724503470519180340888314134051718323708415826584003772620299565601502712394878852257495559601306188738513973855523003614049782359579757240495020405155970223317329133458341672883537920128426185475033206689416235226624609120520742210710398048894838730245809132168292926604538211815489127631475769951928160870709329213619592952806286067912947264962591007979551668056767228002989721643898596623638345174832342610793021608363890601481499399580025310260374195788895546176947913074035748127021280352394595541372226429174819803874518267055778925264497079212118328010931299888258257879866148351352609941418630002999381143139399754364946438168320708362039947179132726963646984179458455888654902543902156386552145594239560307776686216624378474438771637853242307575329921983106886137106912432946003905364329521012736071943127034398291361919835860408125158704272113528645189906909108621967866683297972113469695078517842941531613174014302380245240499016652202038900485011444559297767685783951325980628256755081248352424460841198973250784341193100181748040605135267668792535739978311033590127040111665293339220173065442930606984240670594035531554192671379400686919060001434223711703201726755800204204990336518302863241841250570745179452046728637988264284561952729554744736115759020108430698325739733815058225157130103434274912280672528122568698613883488041497034383687326596382949221619840026465682882590866114097713770571127580887588199046977826120239057938700599654966042672037283414002261652978497453229091644129867563237156978301942514499800083571386767556715890455057341184722660943507409514559666842844439949747319136819061968745882735906956768538023616726481830561792247288081853544764832183766726552582784999052025194600426485478661565392984206801203390754888108848684725680360820227227638694185578949524782999187707528588270352729270558328562569568920505126253086324869592682526832012008043542205634951079356957194279486299966688104972121398831931561403461114586605454597728654000095612970150282773682938097310017712115253614919546348060005403829490134389570649351383144027840593554557327417945205741702118418885791806485782656874802178821466144668992003301647970691381522481566574886052406168373826697448786975288295969547331336569601067565900397670440266819361706340724935927580507970914014538894890504013959433765998885985767288062513866899622878056173867360581623178116274005097453500297765188660531518841854545439647596401174249716803540762801930965408087556826396726737716567072404266110958675546793735231253173321405725473493003127409687287754804884482286043981702621598032546056091933660638931507669385239377963275014085948423304383118397364393827071760898455771091740415651718142723504373160282944764032905771444808531676169312537187719819734951152230030335648123795385793188336094781598182064877836984768912221181746968687913071526340680446566451085700969903587011685463525226062132459137755820958889200760899799120145836569111308530183079495052008356735157981966594255126941319750190031994873515735126715280691529529226961576194819946233091507125273832936943736249460052985123592932722728522885830487214924930808877515366072270379503872492346478225102325001292955809689972277027369455535412577430518188473958239160371885777037155617594710045624745182508329664738217820214064714523420466859659760793917727015403394680725916398026504746463271661037428298807365858660549718559769265603229859283002635502806574226991882431519308441480667097066896327296484588248018740467421531231699705290146292351863170995004367813464764857657063902411480721324469461171810176161202625796587080547456004656398411352765008526321398355188965594000664230600591957295852164843192094857464410033395505928743818751657921129953969033829806892100699180624574367898911073186557027756733376059066985535212164541424533017963571723348796789818673308433296120291444007221502330754415473626760380116463765246258216834405508641112623965544733576071350684839269281555167795662547698288868722681723337133349609120849131413284586496075361628236236297896401838070334621446669721573255952680229109007928569866364044998193223439027748107283457164637561722077801145395160466844153535428534918190475548506906349625986172826460612318855049949776693657621660956305909009340703203618924699966507305361895956098030397735779456815377464064728858746072499667254366224007954302003542244477286924700875488799122648040176380192014135710693470858922598961570832015403448667439123958696681503390769867142833957308063006980476752368840942407568271515072250510656196313624034304390104117288473461791864257145084995605736216814014793435807888388261523669613242462928255355176518799255666660294584922541771054018773174761228478301607711699287873620050641235118437737288239537961832504568060478953639608251651981748356378266498822705307518371024462623762411543373646381436651909927887381418047885817729974384319654362884426498002615403410641440945853654171168765029308566379544026626142146401156958091799943742829612032405387833076494082324913501139771026014983792701410979121197805331529650927997716552943287093396582857267867487785562049233367054077683431344089060784665654338853364828748681636077641954753623163081514225639545185026850697664001832626435070503928196891468600267561429723419767516975533532607149679673615567604346041681498422725422026718780502164709020332492198475335452516227310293670079126105132419962651443402720073904270851600652747871583129207984040656843588203945160353801254241932188409559404595466550406831286281104156366722694045151468424342841776304534354019601778471731361657265956857959427020662254155286350363922875808243868985191296711593110296862866860501298922848070195783310281295859802195126704522333442575039727107033172474999407265660013294670680073637279642685122723659233115351680683555459140330879192707828725298889775525691432156984487074454293838154648279325093189450011517039957932860497308237912962625463142547807946633712163347940961015408037371261953807200379910067747314469703932841859588412154619537723815899211927389521528625186238940752415149699392379474827010939966634817263467433443667434756912793083919326790361107084498330257015111932248424212087454842099946810930839918155667482579517353381437934736101814418709714237025586469659453575781249900458834175833951617156914359837430077308193043570366158059628697141883534835533171409347850883887437166274572262975479372557322968514481396222273485167959209182987914304035216266314291282458102244799788595868041652981178178043927900141846289525843387316457180984716829440603965429918764860137277924232888918671808219418784983851285326421224060992260494320501794048577580713906006211019903473365270067079430202327984651728484754058795649236580285578054001552414511006835137823004786883003218664257095485815782521231222539633890951223175047445024059056281297204354960778290378976904354959721900542814244794894232112438174772492419638188046931104232043969778095253569492773491490213197801493109917552753904856444517607393628875529492673343376370434627391941297921933972090273739276475124994536013135792571466177879096843047919668707065176484939167749433325630784960274061682242835753015331802186264575539554701754354095381266633709840301492160842332361483996929761203898187294508924517975342505544350426633365081839164228952606536762331237490403474874057760031394002197148294379251494225329024919665109031288822667165532388247480661907630959369652096477996599396772736869391285618508506943100175944506092472686166244979258771293309286927183781830970501464327777273224059776529319542299792453387071137590071646255282186011718229214297517900495121075814641817179515254213186533691194094470296196431281070734892111346012900915824187870988206624612992751665090429481140706302778311354123633475823586143509133123520752288289971807469105719330230529016168518651875752870481387956405618774577382426946641172284191519863050443104790304310777150776883120511940454245862247104098026102654007161975307374128800588560868560157623244453076676552384403141251631148438574832670941143329013873142204282124540751399508401081089765808689964016628596260363792426368744224668296055185709167199743515934164034837804762377979334285713714950418633867893903624144370533434586666765820444484437006943181402523620741593858613275788749965283134898341742771375686385164945727527020563761018661444530510763666936454292487193957293935489958537585846050067907250600741298704315332749471105721870423745926905705714665689025983096866041583669457180801991698738328385540884249376766136410688478210163545240693667295288618144365528519877658279583853368012478890103412690926841186246538925199555395506422540747662678850471211353676757989401040218072158103862805526321285290507293554373516032473135540819334046877584560040545091020938635033562188429111859976024936988438545247718711562942207036218006928656032151146496303087400066398941948226425777365500606952082987951206228479336012320252091481136774959350988706906175029040447082060392042411001822233392059613996322751789786745822685733458672044169079280870134642343595111413953591277369460568468924996788164626080245629384806621325407055524278891588267936178630388695589637781337245637241689246135094117987454216380813832940893612131764124738488233256764992811794673984782230738045843368351453640448319387276877994588402446181279843412963943092299270332225173872739416091014688792969229362417587440296979700576889450690821676982504581801950298054792958423572139187168208388291379802508990915689708231972506465461977058877846837991766320692160840746614066633936467380025520497746139726439878857103447385778161666118948669681958904818037244917260206343434456492987473073640813901492907651111490393143072187718230848751086229045788227894057806858347885709621332182395628444670080998995118581181386243406014215106865689489503042890865704901919841963783447567884442561913689574246597509946458935300967438620849944315380278471119734081888990297647152475847540044714739033242926657459483797535883309178731074674201498875504459912430277571339088957408176539533266798545091772753809014417991398363906280795990147365093294139089535917555749454994331239098647175687826136341723727399040736385943110758316131559534971243745771321680443043415914123453036816534685475197140716959411666404209314607771870603722257019898981727799680592822797022314011656718585757294703985050625574288940543840911660976099718569042442060478543322226622167633965120211807125908148830878503663613963211316546125491053130870171809838361641244324032611826721041400916793627109104459974702799416725084270287143646662396062415430621526292992684671890275796534328563890697874083456556493522765931016398383508729156571536325987797659223694612405475643007185192447870677785236253001856893160636042899269494686929738927346183555475099290717702373320228692841327684138677632305009037853465954463888344671264862498766972488093281509078196085128915441820327290412744981546811306846592084621553979873029645981542150771549900126980516569501269179833724894487261939587052025702694168731552051454596478285820218574538394502021467184537234197538936528728863793358768399088068570353101018727226913245580379471262116580990020211554257153414129348700011485579582891318795179553921234902626693323693606485789644824581482220278986993136946121802991956963461541130524531421285237503106335239053817253148442693049976670096925376033861009238147594326908808565561005455335248193862518790760377559223964277050753782327161922884409493791036240532035006488459995099312499829446934106704169764339799490184100157383534633199999870915967878044892464254029494306591003396040191285849579627836107714740503204919431658042461289250452879795564995169893847032773225168300753526833432637533476428831446938967936379543641471558902354425505009041403944106411187151389261902013144831056710526089111728027378526103996513330184815834627495420002949497468568810472339778319742463701327346501305337537686905444587641512779242598326810778308147639759716110367144560683436639691960405086020011319627249535888084196570157271420365020860593475039420196767175133170735940256035363546636535477359629922447037748065545408039643744985538974178324015981319327283752896377807261790371447400900782935858485413641122549107381971858170673204987155756056956983618187516223781448048545756985164029344061004743109754928636699690646032340944151215750802638864980687514515717950972478036101715286490055924272696664264687077881719977055704089044438698373853177502726710540373136488780786161563480091431212712640388414451606627049966064947372803690247903692095988074295268684134642345495070382937943013097342071503750616074746830822633804252420706224070560687944469378136221536861903189418743048956698805809369334937062247251550642420027613879501610836599309025585973875035879920479358201787408385467322225281482384613550666532875578080587690038598044704142077319045467677336317262074894131528293201761183945274962640858085407013381117523398615855350292347704619048352154760209115227525827374150127994101097749103517182798430541281147380550582527070819450272430091315801103848626677253223713225456301713083268759295454924741410057276740928005476956337328779717690895094171322520542351799150011984133796705939160105783275791356321238505273279792034169988302418728758269157091707991520421822227363253079635890820064254464099207250173534808936202587691116541675555121918036720142253216599782162687410528304411354542761898548461067721694056365072538493350312233701679599740760296724891861624745037028173764636726307486541494165809809568647758894363700229991982602817640783570976121621840588556147234301489683662534426527770237399375178791631439477052951623661618813200547224228643362050714135134243469391476723241353787880194344135351021698952700741733955589444254664277279862941038917300939062968004426021866242099725582750917074584026845087479964201149701714653024180320038909712524307251015053401169379050472105938641812403245795454767305115706605556343114085441455315498401062594479936473269251082856818307313067178393716665454772760512823116307638668473653975176468992736948755595669485940700425238200799796002033765714063213859262731398802674897902451714808050665413343587612839291170334374368139061702293306916268536175341263886780793088718548957457003591858264338137192167684954586311503787245753761791488838115684954991931252607877347471443009654168263466074526424894553547136621450662873630643760090749326659034579605998859408248411490499323210072670382322637836425468772984817641626958524431711301322894114944316151588280819447175497178560874521961283179443449673490536607447251843277947191247251082067527928882746855813030256351906052320065779172752355288313675834654195895057226770169417721487939073998990303088801922451497335155344109831869547524699912735562600487704810685389148542290947867687700130332981471807338866751529494926756838292271006348096691673240716609870723977930927933248558476873316576578474009041345607100483374239065010176178070080474196855050101349705777241158804167250568035709115315116347179280068108820910029695581835669877671608747955960520485860477343338201745860475595632450887297593989385628392444233318459728176560564501302052458587843181768013167602702077834532178205512320451449721216270057213539787666199365817510738192547957965709946935282420735354711233509630958611949751405091245845539967026999646298727313435294149777139631366889052777062678794615431618485437236311641120539277495472043914040808759144073338460814978369752542593300868465089168575576480428768864493065254158530482503141825892570201580105162274428057919679430430506147381206041248253270298962946187117102137045995712366459732446659933225238819886740417967914675205562861725244974350105170910923602747776542053693063794088341675018930281466946205500354809732596509946957431429978064549108825986149480992974629517831513859364202875795476388105626379981681439615813333182082320036718055197198418549943685370770218565928690074409003984127257671285396815088072272473676386995113347074777346595099942300545302469544767319192007635173323701324956855765121325154661564330804736953749495342995479663214738423314262850214203569943715142598089096420137192945820423655311610705877798826910126960933193305794680165668850111848169117685557545827345844823647922129507160547577095195156457551946018462826717678011989833534705833915977175150564454414662352899699997189507895813710821555127262458399239834884614823212102628927941645409528343848466867856126362038211415256154195833383265662779576367207456246291493607476396111171078141924724317903236534342066070052476667536133701606614758269344756259844922549303796740866916150233918476641866047607337980411359254725046867046420832425462751348734214609747519165179160004042045654880654929357681289131794234381398754270348486686268684430910945758449413274921579585347432559225795600219891808583785089506418255324515715444268270721463703254093057494169399155739605609053991438016099752247278850621783841447568885857436565035346565300264673984297228762448847067202729080571320245068557386059511681767644592070955624801278367328506708110398456681056591462006676637238888889563582307123615321591811961413207180493994362638327536164737142106364711666466711624198096710585644768280057753865775788705604932064741143509576032296086476499022200945538005091514661921589788272459035754094621634338986835751796029201535260365868141515444586632970019780588686470943086647902206711905381667867528401017116316494565955373668908005336306859334787473482257158707942223909680386194076475683970186994233240962845297582636175391643807268787860721855063939711396771073713219477573410374178848443171673422876105219949991204106315346264126873699168506501416052393165197414967444536924747143112456307414895491931375815865754372731692951986778985331523883480429885013023971899210774129749596904127207351731189409094743266848137457325602314158406543286693451639826280116118773212007263051413859675417435346136075424594001739572189200213064940336195690703112409885963738952542992570072097627194586736857374938083542533073487750948282385614525357339986598360716193817427018354159201105654051315775998340882187533201757959374697160093756909830436508116212848407381780261723637880322750684394822903234870151947026700065358463581884245771185505467540516970126638460721753419692199574313317607421404622261298028532607439048571942774163974158712433465544251789671065048845160705254865272685932879773348834064805433347184313596296297573683055275802183690238836616474326283456932394251317097507432766073506836054582640455274669840255620517318498479131676117558747596680502464903574196314673242445638712715857948410504393983460837551401117478024780743752568783583897209948790099010099434622627293409192101916134877227133137626766154427349481343259586487688909190040445928286066583828718261142663875190285750301758876962766685004826148946909944318360206165911520225051372888631238239607405706335196770234802863371987984900064489509314437432490157070765160732326851477360835853925184438993675898358396446388890755591903105615042975466402043128964509250249370687982401897663895746193027281108057348246724769477062888290832033385374883912559635035624357072816015225302872835405678931425854737157644285022094224093809367897603653504482896809210777128830950174232819452725407660571603495519842479266046055632840361893360879486796346963223209055740936901844221496646116159197651629190036836785835474232705006701797961332277415005239744045764112656858441885200884423582262802499422950193477454955263292490026257538355956593472030229397697123828384806792444111113613801279576395716721533719916590931573882435149926166200719467139705667138920459633230637248672863171229172846280853818085364982107003418720688730290100906913273369315423534040766382862679974352207905310978125427676074078043416562999303699881164485247327304771196489392851047004233484632346261389609208226276621289604732936707555974857978533611277325901046751720340595034473523318695410079123312369104852972768282415559700246790272529632548681048000299104595690167937437623635548813194136223493151215140513818693036593122149912045306559529435079295343492542747919506129325531922133783538667910506286062896246118887724957574811323027640867262538387766389427521094020182126261660403084297765146173315620048887177333620806158685480031817285049634709894493515937868863943860674955037457956729870164237663757135321946208634290912378395258018748627667928726912364008951462587117118886460774920054279029646161171068383718850521812571610859014012287060205894302890996259305510062639760841640670594008761517217304788755198732109563727072067983540231172418411278614417040207659081994738522057300969057770458945435554179341094430372827386169870814751216608291571007708219577780090486828961918912363228210922057098649048543278289683144388468182147949848155975162469914918310193445897968459723642556448262562376815341611564223436188520546110132856967403878422331438326095929066978674230794479994606217969735818103092947478469105838768319297037034465012778437195226150279807382249172742352386750797790869041671001587173053735389038565356511007044786911950558562315093816304665198717744365170953010940155618321348694076051253895840845744466733056372801650415683173927604345314513627428891456819084341190329927750919811062634216464353395436025503153886588387281665343835494343197871705194619275924959936527994147895146382208548933062886313081414346835294824374136017426413721737602248477074376484150832687014025773417746938484864022047150143452512458408046825478775054474755753173876641213225968357070018768200024656675223133388699474048122509962096304303176574670468505161047105531706708804233566161389531788374553554395183443880457788319994190721601146261347283067786533682039792261289412048721591032967844044225415634509725327285164947756695037631865637637142367673998312583668464888139502618353192338779757885496574964942591243553552753971334939174534519181058738076561037286356246505406846820145799043563406859217279337159542277646368159301096368893754511679162008457773986577205081926639027880795884176365840383226984378621489392801378552877294401886563613618561051434988735238550048950565107505943700118895914201619245757928030819559235503211594842776954015476146851007510657195262794549422248112251538164392168372934922192973069091563703687038740688507722428711234307678312096460215121697429065393813655053875436283332996567490138554655778885291184955340042551731337736047290599248152644866057739922262325655273345382109780770964241457155000626528702403794409977378898599685277288453899240882300032943696966333006249674563616466876843331641534096721458046162308426569828084359189816954435686634506360154138453312032245046217391398112715178710835207935513766442342261797043136994309695022564784666283170176671986788920091691258900189865703762252631253529523629326117569707246584224524853178743471920056458135772477961094611113988697472114495016922831024425169396641580964060867954127480894822205151370851452801296910546085773977815168345274702044682730123255549414661865895523443737221959612829114170491397749052370702435546510250309474860952192350099170210388837211106432031616226238998721895310042037510285653428966035039055664287230147303711636297016343486816789487194447360280664915134161449466974552897283139718367242883143424979756917506698721750330877153905418582533987060126081990585528678324807157443105282682942942399735883744844725085390778489127619440661219326844109697565991988311798197813633338167418374299279708497718164599457276576196984014681140081288667717441558271293946567598303896233095994037336831759025817723459019539840400918358905575577957852251530122164229019036806281947144268654522567607317304651478092379177311021265010803186498830934286497185487404054095153993220381131112250464239631578599912509301568976701145117788831650233719241639624889301661595691804251138527423529993620788667596834402688912505148884759748827061587592287316410311131120620116141212687612716062937455867178096783616933159252950659632188041016001015966549906529481900695107472968982711052751925728543425524300602359012402218189170706068269180255981458039426552402725066687182705153790602477746664835233450568414160037747763240455787889430279965712958051965872639915387917384167483068498174845890980569429074526184051953313317924218883790842736992538328783802177100874027043492893912686442557419174862074769670605691279097609145598767439720386875165584726158153104402709864509596410743886872821177126850879806016718260409160591122308714107400662582239678407065884970737550876432484009029138754406912875219019395403523703210083325811419059813678419085249277050671121406616853589159145060675512410137932907979049436331172396150003612838295826983764155569055584328856345746886374296867548340832996107260809869714515530413369826943184804629553962138105101372744914914984536845964089171407109960403753425975338658733920843082262564823233003003428723230255195319324248904129803632839148758345879749758117354760122886958306799470268642613002416407269343207004624069440401053628766923544004946521563593096798361881275172726700975657655004763028172627488406497916924549667177116244067960535642864541588018338422240682844232406443003712767498250900157784070676674751758834249116485871251315095567414143275946827145148021149651398572717467898400276041960227287613098203993978641143286389567641704686736202833190434714848582518556113677792871606274916131458539527855821600256555878843414256136413007165786022875349966211961032660951035210786031007778527909543789455911945753375591846139239293277573875658184998650208862763758704784948795127919334580756340715262178519721813571749271992128861690398039250450393732674408476541372387706883023546323947811479519901656201196041759200824021587351043687977503836466808605611664046898322987035566858999064570827437484375157254936988728705173127478951212674314572638854559513031467227760176103184025119256217322288259520112455703351761972627117175787241859975793128883314867435771527523666374150298372572000561202019783682575159268168651578683005219265211455462376431533913387433569386282706228311310019697164347060163393322362676636911409879579357164883572437984852225542673645649780061242934137708605994892254623837660113648854586971534406870785748170723469770234424371105761204973049392136777891399156027219647619489236204028365275993783923854095310227009630842718126083068379288246240307833954918262565412369638971357371548068341587287659488758178496922148830595582659542609337826691108912555187013321497164858786869146656111473509188210913673005976792185270103817868495325612060645573622124847186584515548747528957932671949254013026723995942992633561643772390730979229629991451557533026400754269726055013741748588432538025718731838847601552595541895393055002999537511427806622634521894127043218790149012053138676177235972012085782949485449438135665666424504686276140948646482707666038728601526311432510837054789040047650899834107131188055615045979421454860161656604372354707221278274618177751170073874016612993369320060903974950920390338248134807207538943692663198073097863593045214484202272994456885006710349715833455963511577453630334699543453630504182475981477759221487669356492461360836259374852610873406185976138735934579928554872878795261996599951822051264922203979558275704087830709258185290021615981464934105061557481838716364162080013241253034541272214002467313555413753358040225716876588956909386724337769276395252586936218872873860411352070779072143713413208751979995313709764703972341885141709433431485762735796264815680756124653361546851936373184834413809664488514742740135749006646118665693710878782351725596758397320078916620513636935659223269069611426083179496151799581004735827197029325384525556748883771007708060512963053877228426297367840811627793491454094566452625418666903662277069474521211119527640993167614142428341615550928481196428458745078030582447658959555829564529776390947344924589731954515522780089258128658477450769282053609172360852300072766450566304849215113532313302270499638214960774771593404519294758275482450310409663412041375569027722068687400660647110113885316102186249135139265830977829053871185389046341391610760893680977641366847416301934588698161079563918952688167424778761084333684064768011987117870099074706199410634961255694108609985808109334350327335953427170908564323028294207380974752859962141154890518782792919204709096484244525494319371800615070352266613506379904553997044998456045998087535459823428937083082407812489609968879183449808393604853094670800892049701066393957194579891404775798435920527235253861239658457277468686698488144841232007064354525814129220357633711246908348162542680321000749636918415894086058986400703197327277052808499136399986046819055865187058294417923309317913928569416644443224619251853307088145605258880880678389373507819857848970502530930854574357775433555177490786311667111989327764840423499225493289779970820199218031176640618598268709131425029577256618205428481116042512145912496150553663400832865367287371492222858767652248887972624999818622721778752670819245977743982878937411510312077362977987118295389849115023057274098900508781455951920346355650153589474222309456457614255411076252888376464470998138628967435664177207125570277838287826035682854000086327446496615496497845362276546467530223788137217857053823742755278222799605020579344095555825373836311627011908837217855222869962932344996051247496410019204351622078486772617551475833569723433166113090505807271661165604555386484733978294354690652928920057974144029608932734350196136663931292677316622201022284723433613227232675542714423922474323913560970835833935129128093451515216363839211909559616080780793353940655585562136106171768768246157936249666221899895946240044290954257233794921539129788209098493554695243869128034946469909101050021561998261589837902093910525797652268855713045769025911304183463426920883076209492214998719470304486317507945531518117349523094352164345718162250215507678393415628710877207964854048365075055193305883476991189790883801924994992047836794091673325639706802676624537356607674161431753773815848018737577951346102078543589549772255768922187009632199505728407702074335480701980937221322527397783539528826154759793526888831699545750107240508815131538156031552050952087274215293637566289393392947326562720319350706679849692357311937919962319075104482922262738905389345830203838038380749970464883397016527095110960590718277886182853418833559596101234593935079637724892779754677050269438950047008884793932946242666511060891383154147442440137862934738104459654300722852427588325952402151704805636582608017945543853472525245825547415458883806523055121003643287513917650040375015788917972112511775307650872415386971957887813421759305234331690742328933121390012332782948898090278398501971586684678573466201986317892396408242712055241718399556548882210029133921798315304772796007786758074402335593290529390984732030044264181706780646423769563363592586928931359571508501849843325463294961873660530112372511476620233372776999347986719873037692226907062078612897623963613970825607324561155628479851086356601349115493774152348580705510932881932819205146261840722657235743462465665932931314691845108945475025819582887104085837069106745011564335914731442084086559377679631427377496784900335305189156106796772223671958959352632170491623931475093981748340054789395589134732645467650166469931820498185829452434347150857269945520888273823013191686647341656019838436716526343271449377674781070299552393486106157769530624182458605946085065827224262743993754764216403283991349297642650976492121515313461771254839288234953835444762694058597289558382091681703158188354397648339351583195345573368802591874195030047998296498820442194842355957917433965614617053298114184609508523241029706331571113381764225909738332074402048389910560284706911859118161858455111366235385641564412004145562051351544690537934765765387511985845196529499526346658606276089105055473911849145663495928842338224159261585164664354815637555549081903775349959418144745705071184050724924068228532058971440847653494681708607277419069354058310763229814966507103506566512876601685726919542023318122496300647351298632918849801545416901978690312890461840898525127615437650053446634948239120442488961104927009348330237466273596132066371021128349598398259793707164726690278355955977942191391584730715336782977025417494893398744908250690841194397051288913163841544409420738196391883143926436718756449144389404253855975482555622239030064304853012723356086978721615319212503731657618462968862352245826279977231323338767095295391804966103381850896035161076712285687924607763040493895082960340738613259711745548930250710718058976508787019193026510872377554679379686518512141198897530825522698380524381116739079343360613971165140728609955949886036561508125195446139815201195986656554660716904685243758539839883471416264634736416168647022219951364112067808589011679648975187586647544316305678020813036179345995946982632661563981204548995385979446976911338305754713029150478678257376657929946724428664242119203707500098237600731929102432188715768218502742983971409903657876795439723952022386554152775013955428036398342066338334184856857751394187439282803379968274197278936131098229521541922709512580279483585341212534295367646629239879463661400717420770026987007055658639238995489315757411299109612790305895924217161381979231312196338167257837774687678996106359462735478808034166519875533109374464522103446053813100904551283394165109287965950056480812693220068454422078674558991141723068290802557728743624674803356918975961434691671663530834187179720081704140448035748247477952895764688226851158247456801648410296764304509712312160054553413693326809184363724863093575012411570826407312891352266540207625349408802675160678922000858159167051660054121840176697835217686802980567521828267660288884560538953358983728741461362493780075217530811018991590853689106305418417453046865587462717186708746111851680907798991500676972034688480585509168162988067819998060033359829311954881883997715802309419951910190155093900544474932996396611828159507746749702197252489510838575582902210902778378358209219870297684568936690601557214306152788233365410119710548390875196621879454414637102432497365554660240162286953738278473837039759660970872908364366074566718519017903366959559912437232759331098871562618675011674894824014853873715289770522413781406018401559625165388300379373816726971406751030675640441092570387655772425411685912375198846054468861682158266299019500009602208248351381280966337639878083583075803967711814281082475358168091927132043216875725378465347711635633955574128812932309646508477639097696917858371403460855945170759772481923916992409240265767473223679950993097202608687404709273725556601400475404342781312896963172894927097154978758128485634161526361547103328803784008993255314103418632262839705906088089541455212417474326011304574490213475226013502846412027612141283755957527709494017931480881723368693947224191055397841502994143232455660308007703803860353572220609146008880141795876659541092310033001356913566100084293503260643038732924575213109875263781137790891807351519916704126184231185222256598876466099569407601860258482421015572383582621654192493728111070519467989727267440630100045485622542008566865875045374862898583692149078141354541034163546620939931316341058377859879616628509922945187815924882607975455459176978513182619800010233084406769680402239926636088633117310191158078779718238374748517618178374372843317419592556182597162438497822222967781714964820865139855891784786638292867906857108181639612059678192165394999721978228073504523975863818902758073132554739907037657505698423470709707477411700930962741967541634485567316008671853794435725344314412977741245882519475230034866035751611276907365449806849071015331154593262041357460107767236749352485469961732187185736773827293819278875743748420599433962574807624911415038722867918705076035251066921080758742494954835373766807940967441681770772255786246430015375933577106986866656000578684504722005967741001755740822172675992903826051826392263176663427990331178831739054995181537728483451710130278395865201343273361518946261630517904021541653350041216085145723075223119601079306816007118089391517079753511620825599919724493265438121003326585705681804257870730495109263104116170954700433124247890759364038999209141220131874997979822382580315588211646869744578500792904511351060171431531105612670416564958225112547207465079477045245343047556966911476751639929775103634566276774696502300210531091094666865995219680429178741830039935210260112325236165282991783041136747484396166163448164750088355749349783140559076488521831605876804899429941008450578789518824040954922260170518150392873343063650674309312874689631302016074406974416818145173904585191722279198815690558199073881209711224952939865475242998653568425310205068831431595771542541390731792507824671719184140470766941088551027957064455879565935810628446009562140245557426799879398024601429399423603922870145355116518816658107841507392953374455407493428749214394938361669504070611463356414168649465093931835258876143867884452025186518670441471968892375993471231712285632509619955095843189661242154061398540099624618304425666936382358409198131757902032242538824546603784399613274872856676676893027691461405226411820861324400351770955701518702605198827320874927319525756768730165236669293970164801859624919949553519686804961170709111292809279637447026274797070158595563444865522442792822848463550707598198814068777220445995358974288575033898020358968482635245222770234353676601158356264053623501782477663078192392854598112998025464497942367019486253963773214772775938186990238440961956507472461800686899687239915074324579563476945008039249362761904340084874622642459225324006156735445171798936742162108733676165538647612250734851338153399018071089883541075237684382959705021384995187229023341212699508342418321451219511859906222433217691852091167123662331490267697022062370261017107050578496589503845650289045706824510952862439226240791832204190680969832721767846742707873436836582951074389000384567309609937346032607872166592710934350121311699378895109292292724899631030693790502962089658662300956593801572221335981395722639715869561985538705910967692239804441225616897458453840048881188539366348643022019307451650695804669776156904376133250145481711584235223864731374553267848722817027071016039678703365175928251695170599884706081359170197770052008247110219555169639161577777730270364669639843540016257980038046621050143547179417751402702789191688350114097152081150539029700078972942129559423520842018449896751560958116594812910386334137684447014528753927746657808099750205526521370591235670031821042493959316913582642680105798009483256093677020272957659330523136858333865744652696456327090282161271867364793678527053539122278315449039615200739039068780437593436454200428016343560998857001516311006200866378942750607883117628075330926430199947527636323002622774816511288036326403713659804831066767369535958978063717530780729715588893160485639845104197530189435807818447761311149283870858283185194536251947763052074510083458939958442211102388534002128821879380492309724004555213768712366664576523945932384439559745128719105490994174536108197149205042407075940127094091495592359442400538302369092148867548766995456558738264569927641229415152046999031248609615511549605504841741090013248668925863388941835950045452493774707877699755141231785068739031426738801702130394116160150789796023849960831198030690686813616030438750543823712317722287199937243359406336478730871284312703285104754698427291879388016054526271150977138260528426478227481410971602564970572801951145026170395408359587455771681765353567040710621168513334711287197252471296286813386967637449152079903040951871422053594927489871835393557168273034253436500110579236267366355430886915016942073961171573089666091248504018049056498481133697034773008303405941238438560005386688754522889297164124356381004124131038770523753930802282919329843708118824226287615261825549756727409144549798435828173876257598985702744490095403435826181417313414432906018111440613322200836635740620442105946988324016616016521454682367237049685148095120016683216827320336552699141412532391125498525146163055409255254438422434071606721007356571056109976605648217882678096663796079665913079024895779649725405104947576068277696922054969133802732954653185081610875142092399088559284715201800455270188829394216030016036188642236259506294386804834209001450650584002275338456527945411209454502769381808608235826294970546468191894486965248572870526348797898785190557607367385280432118788480488310828220052523792926298785903434788068208415544486917495558432294729793590589419903150437352018113751240426371071949393959557546469236635493422119207671030536468514549914978364541378873497260274834858598017329515707232018319802710999259903083422708993894290614940483933202463707056323167226219950257684897141061156822367920562853727223015624116970204965019573964918589675948864564194486664784935466839323891482396343952541922012473782291017670090446559294484773353683870038460422949945239219776938420575856798866389998778355909719793558987275645111990545850399789111406347550537603432801005505642542956134642371136901473353457824813668842764411457087140709756743646721660899020180672357862764627686090953830766267026815577612269628619013918366971094887530915293687807042542368502476136063265658328905879207013051916152555221369152525147548763245209781411489106575057454746380700861345940061780810806239997729308987921839231368232752781503312483056937861853737455951222097172190848108825413169652108367066764201884090090499098158036704723159337231973115554937700797902927388496048146473994677880869597037511187089296184116329051324836615871959986718304404462019512876538228956707577526907013769566170900346992905557843165791160739172622090690552418138140495915328063069023943539387138328416649212932355862334378636494183233238515776203138705011377101548042055797656939122328333495634584937372786570528999989963183297781390287082553956252283768817654358877198007950370457522992276674495019665925697711997016465758923263193310285899000209854716969134592495537114709217611111440717217223450168593157455218081552496973429848071540191402672462852348307800024016812930532492713695419644094733419398631223388168507097788206774615182879953164841204987779175599267587689225144529108785320765347349653043744666273757000123230786283241898959844139814413573775773460175755401015805667635005105936518463252428420119937399540983663176149331607529018276517848990121503913343438429752685175766881217321020441637227814959250769772882556664430491148119914486350822492618438549345906179504206107017400238530616201474245023808500584382113884539269664662069847525931868937424178190635286257771711248870718582243499000602380860695213751674983179083261612105810204553679543734616364106032065775783015187751358959880299964034919678807248965261012830414761086293522164910008966160706242811973565210918006432664049160318372640006442361440836813787713087704088705610971579260211567486049740558885550623225784517297382940431835589233616413347473940809843798254342129437651536583188830413648943703308044210172862291194498008078421683889329097894780814650387950555746537758589892513305620653253882710339173365867224738114812498800938625577945913690152539515072473367634995409999477818992805012537790734221230418418533544893530324429994119693909324293470616276658329278866086335840159450427001170899706139309117562366023604155545997441647435184785963256118389019401745186749568365809675854015861446647362361105282548925507796955472381363703824761236992524350537793706965699789943449909589891714098391803779780314640204586219905080510937268109318475586351749225586333495755117866259663523232603297723367164388212792366542193002339809342388162237736203461618109608421173441150075991267852334201550990697496121445126751677813512572156609681245816169043521844135614588408080883792905427494319012219707262505897831113007584334723519013378142111163440474098248190435494376885950738148285788234133269604596963298325866431012635363429678728025446745947491734319017504578602775281805576755800698208151567839512992982409195534004280926974721265020496393371302486553128751068027135705115846916526608302631922965207325807426855762720163956731926303872295593618721229209950830737636959741886684538213046162755040109278327470652616269437892902121676658049583107629757700137307634987547773414272586384959250735783175521271613509852841782752602284912978375712078756656932457734859437876888202093854021815240470173352831950005457276860260973829394560801619080959560074022983912663750590984947752628626679173840467883949919961728047545872558770305384597207473360454253370819322224974080428239206825701481387601595865188544491134613192085740744106313311214940711411099154231827377625270573467147332858125559113324692263768678415138407287691713525424793989670799927024390937743545265584960326151614550043089019993083735767368400590992694880426453931157044002777739010404567147849559208654383200809472630376583749409283192158119810235652244810774627604686196584414871186404256745115206723872938695370740409121188021681049153185004136696103042473928380322872627765792681272393546901845457965534217194302534055486414100927401219765888951774102983242999187561213606682173201673837911162966723403866860745592770437067754132870678636626929273513164526202498140127851269201143559052344412251543636821828395995184893529534203761045980974621920066318921205155110153922028168297108743420095081419217867404451743777792643102168956541096559560756129839842694561042645637482725479301229235921605267745340893761285365554846942706555194940665715193632910825000730010679617026526699218722290293310670725420794783515227223188432500003150436729449752984023232381021080458865971163791008889687725595895475015861026357507364734108157031232253038892864162482262278566901804910153415269153818645031141947138810099222055256518708731502284816750720349634962442636948385655705257410841751649378194200595126032526331227479605238222680174820952197486804757969567560382988817274845559557618097457139674337199835446642207715881725142023517172311832516150044705592969014238785851374655188132236822927739777213120121408702443001932949036888080203284939977848500538470950420924683500180146994124240216006033598935371617945324720716129358260734828686635720879443702289036879421144977870551985628551177688307610500374903365816909557156453704655109029951526387907777297530033016026404539177446505897709106646132257279937361214618927741409080893581050098374552820939045136175410861283002928902112049709256915397691647776263476979031948922404372771621241823930049964267706573327336919892859980831578931001392216410054681972693228123046365154641136735136449277094085948851731995304615479081346324574783040973707275824163796321631247126967675088228211067616677038004439144344452726264934528850751339972727113305718730484489650141196989539501411947212407035562327267503907856741258628725673744556818776839505045691767877010608307070924019125180902828322553183537060927400806896721177349583845206965132728519498149851646238000089516627115127642960605307038214116574857976634088269969617152431443797761162737032653708369216337686842170360950741743067751370458986485732440191006165977965181822072021737937429059562391081332600747434636622824856494147371783414038701988348520476058689016098235855134971740364958815497261863664280367297108638535050968679932590626258746529555078915880319009317908535695059398884781382295225854112806715242142286072160326304594297382938018205303165860726135239838647221322891945311859918144960194508041034640075839633909462761474270829838376998863717018762747182491010594487577908416249144022077528509716667228087883921450469113768631798359974284939096307378838158180404884637125575077708281703617309291987542538631210678335358191224389395234359261155792745596778505193828201242376025378198363873767647076999094125639505349460503345970093602170976590378915429609720639504046986614642440709215907796448511228095356920307127075765798179310274069596880816374297578395527649055592780114751081510166003532339180092545560497107257491607545517031232399755507388231193655446713609044302770682998448421177802536639482642358714826725339815191204982477573228580708115901682547578392897876127553151544989685265211870279961345306585347618171274627700695071047005668661367503658554382523910284887875962316444506693978180873359665238644762409591366875990779159736869212526632828511396750659091796993327674328334871505110637623074755492782131883839779415207741156838289476877191323577789865380738616452243610818516478370377788351876840377535190432621907178593327682362968578607199627639832191124705921619719575059958653677487602861063301390752785819087946953900366643810625223891805480354225634671746192577944956549611812862379005130529795500615295032338487524628370026008955962379921200224651031786953575459801838819902412896691709493929024505643627742994469950949358581460571482919223961473717301322896123777046615142077817627514741547619083081469977238018953339384778439163068894327154238046563936616358292149919095533996252369639422265619764350461262583626415579007420545234889359026055266321557336007836360162056609243815290747670775129515167066592008879310360092144827626033267299734596935874423827324119414013785769163107516787525222629272258247250004519567969302986443794144509376929421694079504410707415922224246860400792945626434820441104443805374246798491502799422087418475706448366269141933918477658490664592490290179569472094042188684692601841601268457374212192309068992934657398303227493908850999673918273467803293609957440878935029987921875331502239059506082607365670060972373195167252977234714263943780600313954823700193408695960620892813339658468643871865042776805730233812246976284252639190870046200549175363505434007483758847705883325809279197685116376410138966466401733748432464208105616755603479392732067721853052879980650072684619240813623094413598420584739111246004228133577460507162014198035638249086913117952056958686417603616498313727750409023968424418039847054851555880359958318433333115427152647085571465738782353915108538885551018015624977605951875813713813010812898574228274699652177449379486344220575839521239641258716055251378832842193054637089825189187087800526133062121146044986654955828529308535373111147940017026884338569636512821679425080845593346101332582207213475513823474409115374825674136461190486152474712659616020627699894552194313638452010935772405942884272730721820868510427248010724731890250222508151545175958354464880075699546620098924998463033159282905737397721310917260006788435616752869782767176461631872838340306595554124788939853780373387342673389577033556697052070150651117790230599046167004712963541964706205744342452947681281490904471017549602709574535932193446938954061831385429005088189402359660978076800397512215086866299387344454443706750566652042248311007255154102438146597573782005063000580637754866584987919460040168220255345747755365129932787883924012762391741896541006528846644877681689436129794153842787840393356322059229554081541301207473406785018013281296206744844298984895199610779304564784561578248489793482830944024032034072405509832766742439087455634959221878486290666646244444267213144342351672811664658814423483800588393205893022715332704183109441578874128159394913763795778101518228086962653543020668641818593345397741969701421255159486718942751942086414116136043862408108784540096697917786087599927965306286344614800470209188484667370468509654138104928699479068172208322279980108470567752851062548264448459726403064561917352368624676962446380801481866645281232056494873431888268292643144192628058360895871663318102656610635569066197287393538029508449645257758795025375175383009969271409382017678229421200950785767375789619772932375879467172180160777925087659661143341355930934757597509329035306315179624688039915653556206719790328097628967373419557014693099783332685609950859554119827484803199248854168358827484166648310895142974296736676546362459070100004581678772084589202694903047784223733097629613881472951305462125447271568203999365668424951862249525371537552067641404265348693997559035871032577461974395233674697930495930304260431378184938974656763413302276486181562275733813112015585284517235178723801059477026258110599805919908536943498296409646166929772273047033184299025005739097215914867655682344878811428656202168584635810691226765687559914853274020041014342851238348107027789263619540400280560839205504501439074729441988315725698988890772701478334419138054660106972516838439903243112612244212089877612110257853329569789578710486991627798174391353220429710672519279932735941148726457682456213835118154397572799490441418722480311517578112741219933780331391033689774935045814019330349415142063672740420083836104102331248925306252615704181777178854509033670945127495068598829951709819945139053415414908293321813076654785606614228787581180116443289615509177440042696371520851502676482930554034862673639034649671320868939627058856098971959901683226548356122086569310110807096866225509547878942081211849581899995163502703174817913945066964084536811677049647901725529773732827131934682813206963901362028716449190240696426260286496743939283684275069308799094059252281607025509138182717227310930524750546977142604386638818462662257172221414758916808891472343908338744059750688596792816307401135622403058628514533025969047367677664624689102647519117347157121199041224877037032439369662838257690517532735433997101108559740913245069599283643801582831806877143285672651563963186773489271148015257623260342825756277747804260308521493683673562797665288211696645461312818924552074370947747013447698897088089360209817900984449923289955708439470255653603585483334108881487753788565542870145153452496013198694568021986907972202952890321631497862399141462452983533023607858601799919684409087929412624896093196374407122374351151039569722614439644796044896252539646941560543059888950108718501793086507957391528171407039116473553054924250793858403495841192447609831765692586969459719814741714149377577359644520242271332033845113317410777867681880309661235429012179237993298209871853056630761702312305061356467844577258959423334693721478756658636941567312939521943497508800273158816531537029679522740848567774937655952888005926340847233795854783193816765548614467675508475279303329407039326863368446366728510592952842438430518604607234390634947418938936063661044032280182368046526284666715707662081063627883737903763556150455212890949570270953061445972890059983085720393534234753574531604771463369469647602223309962529435489657156120823282023372696242780321185964067311425287556410840882935399288899128212590028766033309814625224316702238934231226955503428042212360958701061088741240560945282523125712184943635212830861610093453999890350539527270714024362372567322489219776197607099739250419823181009518760212901818606993190639945010751791371466933268012632710552272021831164615881554925623819705009936755449908949609448082655649122650074861983422275786023099437269398814376107599769455799617920948948876516569579786490992570469370319506714275773563724434262003869839938643824020272293454483723018505297679994187195341921888071367217036810752138401583972041722573274316936520541590130436097728944247622515408298530798618067353111667685346553157113365758486494500598709904786731599367437032666309597899047380527595383202617008534002394438238430607549575089707078643639078778728326291213638270844234146226832037429885688231234972701967629642800993940986711442160432771070769480050958351666273989744482649813582412516864875125487151981716914808145827186630681904554304159641943181494052004832170090464189783949212082390112570213223615701885764954288707370924207472042951390190869096233466825558118084259807898193876195370090545147004164214439405755125951791247730558193181421009143683686182646208399212795992130736917230278169231887267457462384910434639069298705084859913182095625695952207841967856209277487025763469245381988505116145368838838697183355346230127188530833277529422477048192339178422686839362919395295526446265159073977669129961690248897807107955361505562233154582500465130094574111064796666806370449018938677814050739218074427844499470905330988742228673347427935439373582832500743540422502749927282190728326501078575890623392005410642401684377600407369892023929931602233016128074665174394214767930097214130324010002390411535751571940734413120511558881310034442601391845637891754033625976516188362182760201889509754404902442437053040609306105317073101874723726716076183545823195793457505548250775326115592841694048689552901075052711253829296418576948910344684060034157043149342796668451690856004344314052747170661620368246125929549848698243164833090079240355626744575398515344453908032216391015917211187018354645359473392893004800295748553410160600370883327605053826164435851794559827354411701429690488438542434527490445774488460610198229468674823009752255382661476425439548165401168205599871425634430857463567625356790278104374503329122513103675879690948198195656365580231959745395286399037875740444887924697075778934350757280106035477335765360816481576020959280457375750686367402735609240789089629386011940866765819401476034605156322865481633775542851452122395074711047943867770725343931763263182432063460758582854795929078197522518627946184517993333577565645233099770448568980248151855962545658432588141656457362371182001559742475279066412976727496455140676949488524216474317065327146318044221837495096223504062464554584532212979584141739766627635204655807924062762002085666902945778909299956567821917551863987654878977190813310281931980912970765482719995064711077652476319739693865934494792006708582237362335349795059975827042641033362918132640889001225535022255896183456734638509603808334410265243463705738984804792372004925128269676834288262599925515832104610345139281535809542651744814368530476769763086090851102578623972412598486646125662464392218266737834156494128020698349192002684552777764560280695609588995118418812551863960384390268952200567500358828852645222362576509331947710419501172423730640401061389956881935845373224105016735909648393156751413682020059184937955824486096608515036232339210657606106191372069294493190772427753763599784379329232361384951127874686095366131162844572306958757016629381590497223208082115355807967498459279452675955023979854254832434579036447360584074544036007783887578603260513150866017177568557583870161612901578234175838632400110552388748754620177409681297286803294994849121421272466654873530713251629746062095976210343213190189455326414189283180879901226725363785611184965057314871844509699580464916735627832250233002481113035931076447656654557540158643707996014789872688264056677420697567324973409543511898489505866749850083086144048583786368225932427070460546935361605406679283122792471298557532581057033353879505624552582308160232353688743011256675356691770421645823417380746363494193408348248429634473010154444193673402883816649280701266268983888008720722795722444046395644069995653574851048563419630983591939228790509080861315678583430682584074583866200644472753468852412841530533492268697122902566148607690195345210423468425495993050556678315745500095903005454811425966716568472382530827341797411629104047895880699860385210441285989674411815922771832458082651148343188486223767929230609594515363998401342866745930658353927986413136917639489547815438920976679764254356483943737516311792421547222633034234876785961781506113654210655237998745949227771158873776382261941623591246697908735857365927785206639240325153401166163576608187584074552098931124081581731518499431278944617435944635832856861812952071527492243044649800613951023756796783788435804174368050307285337156525218329350597894910121845591673075222827755007703758948413317089897092963105095806633710405754032411854565350060946602750009414658484531962726463194064932372389038810879624540566247631057225335793381190660422649299289263325305348469690981157248016737910901852930497633232641314875017674243911375908811685215169957614788937842238223066041751702308971215317941639362402132566671869605194590630954738891869521703396840685900347860758201042645251326398441893881320490438103909470021927681807494172187395048246800880350532970308711905483111782615642042548114245866784471971924180212326858721404302886187553680330329764980130199196703765033990326273825802961220482729867100551746317688640507782509853474481128604218593515187119849542234982365933493019298550929528306285679070874545917119180570834643801280371389521527023128871459886140171441177506450950311023106052293574774632658677230227156662642948583672521815979173898970203665181575410243960643171678202053241754228021294564816963501016647952001871197246790349819244149410204043067828422260281087780977985865968729840717531605674309503619350084399482498671873819995543031839658313379787492483907850155340236963215729272430319355110091301549372430807541099026704420568078185341403895375768293432898698483675884835051452356360636995449968898180700905211921832199951129133232720678892613277371776174357406135026814814015109623927031625001250061442829801424322536833073190209366335960520558717207775704060487055353495050261993307723521118810756443354391070413891634107636375626115966100048771317133510666311981700492317440860341555273742926191634313423424618171766257186531794570393420714990913325475357523160141173584344833093830761187528194324081608762030087747698226953928276216771065173224338363506446910497471184089047814651575835994780087358147393507801255846207602826221240701553684682746420082861789387286383238237927764843060648821679490352521360288807181227125851788508697978799175639751218390098839791835069461247375337431374369489660945837289407019078568351266611314993199999088871191651903828724103154071463389036330538940695129788043748030305367151097135276307374449056332387101302362970358765847067600074897640964407971573970763121715053335044098957552049957619690054327238465128047518908620948803249333972483979063290575850297029782509239708596461355150052511717311754447926962766355749029166611624409624615342933562171639122739046228043789548384697239158871529080394439207931176337322171912204695148088513497654909708298740660287505623168052876967979446736809783450820686061156515338688319021533519266044877024234548238079871525476042769649525408335941078506952692434345524811211700492750271794160450406514097617637854747873611208515725891357257227681055893825989818879331199988714715278329511659192266564916956594473788003976919977438471659493924436384226894141732309667889104383990564959726187626932110693148403954108814458324392433573355279736456356774892525561260477472798434426305947421572175996595520269859467907787382431508003710077036542790354387852067483973509062963828787925278850621789602040666596839189748927584016013533454383602122299323106194067248048759080911459275337988434997577219747970953771004068202247900964429529215775602080440114331759287648968851469344618915500043238277214279228849721848079877607878266725973970194415852998714198567000883480216309930722634147142369449928947576938568836684318059136969409056650499607257954452348417455507870716050633796862052792203525917716799340696577604300428712783303049073607214669041905067442809361845525705656362804984372642115333735957707841056148992908449753036262837631798819535963439599619608939586703910076143899317197108444186144377113242717434864364557243328796765311919746305006466071040419996670246788136924214985682826124582084594555235323224879818876501852992517895667245247144386120277806484509957304410444238613221613205276321694904824462867566674703223879309981099808236597671188633672848584340412743189986206286396565909634244155006105232060917532427225359161737066815242847707567313480554331189222341591641109303060504640362420220416205036708901551800812515534850648054477256595510419498886136277065034863244899112519824073357921709421440825945860885916315031144866062422944682358445135621888474210522674004082585320035829758507055368228564510776520943715702150101012244410803215586362624907303452646434471333721262261760748236304766663766747058329448082933300159996800088524932877601900374096091684556956323064301404846550707886190431642425527447826841869225529264667017071442980258069319254546080808210041710011486827520166258190585425466901903100627193522244777270568425115478435630831748350593469867284485224226669862788237723244857115344371465053458471998834718541271274151179492268078663862552690982678326414116620540528199047154836729917207870342088673036426583848685524825302066300908721709382824232649899569278534716776901937301519696787538345423420804129390253769438243938176116039535578507872617383779506210569064526491094450935070632121873607093947712926242922391373296222223687200394394547462084401805042875738276400789925137095807498241834191215107591241851082084936174325762762986068548224010163129754108504167488581577856495697204680128914997277873725071986652088976205809428586539496023208216834950305397862110877618635966860944528793557145555247443022471535376112294473296573987357653607791883421987656640227009207667766487959213689690719817846643671915468834848596803550753598228615545214900070129961391295667769756350616122936074838153923613762371356037391013980900316214799063028658045169217653054076619262977143067464755390811638096247987710521816690543130094238325306853054854390077280628701334265429806927118372501865064255583927580795633752051024406115347053920265668857406727799163085405792145168645430072383721577511011442951401081375306917610842880729164112498761596472816586248540237227148118005967911087516922085855612210922424451842324251682244197987990554322741971231936628880053223518324081744614033823035001614076947796978441952290434680434256313554838964016976473508141124027262829814903956567968433325817647229128732364709295448005040851750862994217219909399128724200729532676078451522891912612003675102742129077792219941992320700196613504145223584320361288998928234534175748488983503374612137850891400689366440588035346824523246834680097791329804375230733018989126374342924855637592203223078300811689062159107772310611073153438151358724003276768200293102748969718861113976830778408446300260538386017661592999655672442655018858468047013975883743296575555931283335913774473010559439491088070872019083492495493972056590392322186957440199555307132044701362798691126141738705487110883967660354004750773816760036397128190440140200068396966373086508824124173780091617827603750734426397530061034161981452587212813647240168855514184836552416036866073760614650472613147443979983078771570896704184131551877939394878842146511954690277480764556081474735941525605815361844143687816575317178857057834650607290150311499320693581624343676905581916423441766715849401865055925499257404568160809628421908970246856515063204943194107594589661179320977656789394831759538829437550683665873676219096303630642489041264893231535538428890659847313731969395938727328826577165351354249445922559064792767943787242795058868388425854034875524901424653324562779123432796855421209079495157846655677501501665146446210239909866293220045948479910519356538302763315136012172510636481906738135176432926197896717982969000599165940623371764975084495127539687383144002598139895409967228475195306128521113042467777918912514670728255011414110049700116997821422556007217965049630290441299715131635849483725369128216525772599084530506372708426865979754898456987758508013532669135320741623773496442760528613434233766527698914178667704541232022902598774198972276906172648680439863009424177170343363654215305185658611123411332752480559840538288286202541590959059158698357108062813711976269069459361952002743418369283340796624022444633145948210917160120682660442181298038991915284723097182856340728218356800304611525154484911010791384630285555922710156737104006109490062211154494677483944223180690378082770431231236443254348112954963407396788013670834959708487191530981809831869373323896050121391965603128568225101391437337727759364345161664059780057031509350688442256459947912724154347665038989155178932595104632717150687041820975759794334492484379577887176843851894590371988249259138030570676244782752440894541038864974731455689288529810795858946230044899870965941992343079538377905046395772672192996554810038621967137874297420939514772067513198520403726022483367986443062956217675962762471848816904728317328600859063287722990732601305243834618134987848815973933893184760671901534944642594106505271081476967883548282602479168295300410479272154220758646023979681865182685424276432174700205623900608782016397465267417889028660606811631849501988223709960453166839116852477025563699146217700402868164359625509972188256241785266434916199394709279898297276999169305770246516683160885131877623995186102459101283686314916687393151928805555165713431171807376287182313156759164708330348806776082085470097377068245116983207159300779199315784170144037154562576537913881378752838811874306829650459122434849582809999419461689612562949352277035191861448068469907964430361482583434362324998304828839190545119841920130218874534256870781773689104857820241656630685153545083162500497573861133510869101011671060536232777241986340694903395253760743015102932487367186278611246932025797355846243446400810690776352270763372608144834264514833578476279326093076505045752297616677175204122860840239914050818252308980504882878341896817800917705092717352955216284956611065025197793368783477977504437099349035490269463645528064296002797834680831256902326272060572348416565735373136108057761952014573810821166690244691407674244832472148458021946200904984353478339666751224675184299752707265294690735669652901378045003611160779317017107851226752082734518261742391669766588395579184441952533805982632469800760383614285923161997254135914282547827344007504274837436343493750084886211362507641999868739288038317850574170549377582422723559405943173196287468155332342894640520716699314316788683464978920603161971089011908447724201812919573872424791382188782396895587616265971893352745363948605316645876787483601619539879625844368340165011157469286360049138667010594557140984739149526971387230525730637639665378524384063492055475661232250462718787096596260479995926479788633180512397821929246273280855174964829809389805431402219634769589285927979224477905072655247591752178843055966280181918467755955987415006197278723596837203163077038743954772629624138343841170150548054449438326135464760130261725689858243743604453880651070062814898224350115039708742044739241727830885281956542458978227019405843182219690226813716799771912021040242846439177865983039302720014590516029893417501746340735770946097378265691873609144054200178499317901470770574701604144498731063424106907974846154605521875470857505844320458227821406523926348516175089964300993790812253010428181381902771272705156845788247890985612751057997769374851043865844603324590843627375205036799267297859340984004809488091431732899825289039400539969408079365058338384569291823088129611319549614302360365409361598728097730825207499753630269155148564758065203004602321711245833392708481548247669337578213969404608652525840618569127471602963363356506023638877655954408622049352764564004209821785632634488296353225563141982819675604699864607686425468775569621574556660671380376596371572036543980280174257695724029924383485104427251172641335478911062743048029912024001705007111441792038189935763051591242604582476207820947279329951291570629602744488629835682372153221395280747562411151065264303163719098546922286494603324317025645344517416106086976615257582057289350818931782545266389867121480440204903392817831929517324689824246582803358359723025151051689980073203597771591664714249623043936327182495028061432715406231130455646589582685965489191654377274318936240690221515530393784816704206559020267008198535979627857740489452514351055754481554232700054095309897114915250318100553791162983329798791589343517461899053657087241619559458434837157547506616128071565661539120593117076795322642967551314693798630101971493144032950811442155633547375945618140775447972068788463245836820806835611151710545973487857710778469713367085839333810458280316161847240897826048604598973711888095757612611660597025310602132632388865418516145007066677863529375934749196174049933549925262681087731564846706610830845945886715576306374058628428803990988834184532225159976667823338612475254675654030319042844383807418097522944417487567679107492192334016522285721258080747739285288834669543816918141877341046080818340360557382189224834144535764139945728226284832171614069458198988272846350412655291273584906424188666340495047610420151306640149203593016335035704307985848336076350995668048743785093156816165256300547354760534507046308220342299453457087912650863217712761458704475487518224437261850713478941235180997802038007717077300232504504469597420810056264576733143348484544487757009567576036686044372221467744456002727514095184487113844166703653934199402457366505900915886170720600531139990388054284911227859996398668282049892642231907483425844953911375895805116688454342016229550110175600998062856667906894218905328491470259289384287390270847578498011525192602352111486953659891572615237342671252239014502292516181018714860563255204209628531166901074157600631177703863460263429248728454308776227403486701585710595453694967878121548977019712819002658574248772633834705546197367672983848565007798385113713293242112747353151825830621330162531372279920599868817165114478976203718206485843356737359512243801149332940990397220714925523733346830814173580080875702211389060957421541324730842520899844146813490621558297582835047012218592475775926080124555407925203474422831915886872060375063423239564448023225613598994968111545154862061059458708774651239558830336034937910319800676464056721500500702532128377208068814398685623543838362468501487190814956373834334405183474215808288594855637892685648107669785517742665845438345967312712482075434114402064906458146663037606128299312876844144642014116379520490401190008899054619267843935731944030924006053317927236211605905973405646143967450987555664422440330477110691100178580606016839692751224481112182799128216455950856757428148880102287220475699149989560378538788974698484993602111166423067072525853048634799173962033448977389099227770728373186702874917060033484522906612421950048655957546250534644017772442071667385932660687846924260164067716751800796585511671848958042232291210494169637650227770901099476313853016533692622666000872009247864030284368967060215286442338431908819280540571717440442470639202379618331122880046417631685497175541141668504951728087408361426426017700100778743495774017376619391490494343417774460705363642493816097946032673827457248379921217644821729828667423610809298589980625000520705831400911225803617667422799645393576694782407807741241691336503323842837518501841862852983587091949383780967903365418357618516058723345835425395369441231717573701300738721211038262321805705575435229684482545153419486609392418612346737698057813564974400726263356454653995196716726285554226477212559346343558991750954511910831677458505700675378409506708425364946925193894236892645645870982363883590953785247047844224351995316002716577388402982813761887693215575224210032101679294818092093272846405473613059201010752501438157901485947236877115351881519570635055827686999712613394509304557777808044667543784934276616309825285476823213512965986952621622116495920291033799455426281315498162017094798118551486320884696136210923686641259796944735667958219830514503170576243260793558360915257179206040580454295011754333653944383547213436847822690050895468442063313143420359186391050707167463663445380114206569265295643362744032333608952836709523165393954533759292951385277038897027395364483137143772390166685742211556035182712010181743409914212953010642015374270457428956839137164563711386328578931893410487722379731661479854339080278217801643269309621540401383956869663982395812463492629529851915215734276420662315659476853042970904417710864861844285494657099364100632565216304513485765951257156611105470511634638316206240885478568606437343216278575107496931054443742353857159113289664889046273669212198132624443163873408955395997483207706752109573959360488391076262793772791316178006845388548350043223694329070661187568890948914085797587410253955913919803140745889003485161368980585418981369545204550564395114979039721181665176603097720226515421460346308177352117144959142212294219073118637987920459823736503508876045791906047635289851090362632738007450717309990619565153564551715193176106356181343360583521598744227880906436451545047993065376312347808065840799034995427780913549754076399134170715651657631902052419967420276695721734755142041403895861012374715788339565904339821134812332676754137045100284612645512190812388723419648743990089586946761539747025030397330744395808088544917384182054784776266449055225996134037685309422742746357360828434958613464029636343668907397383423665093544339941967103248802488936014417200648750225102352358382479311330332885586197566846057353142501923081853587548432058368051844157189491624921770478739330721108992510766224331928555772474510517206416893516910824934926434446229108512772089606424481239520176566016739385575299100143604148656044670816679453616047890040955697268397449582885324985213055827119837189527056997161288009517131020558684851739923280631228528772298792354799763315807742082871432200141347786730827125178778240055007199475619960732251037163006303036423859549881188295427482891535368049462098882480162064751025601037229457884215598525340680804301205884981376025160023315491370570526856867914927335988671333275803596459982137930151252958889063666000623134109218575330574270265386495943572209146386652162202259001501378362680391912103861126336646008460699235633277572873656491804609325849582746695985231022333567803605622696300704770243689986617946387632670093277814223273701039354614831117220156919716580089511362486582781267157616019062368982263191554193878566617033253896358133763029931244936293634118837616043234584279022064390875656164662588246537177447051417114879330385897177373800252060212125565269746507353412195139032023977946984676476648370733309392265091768343625567969747424816660628518605186944860652461581340663191783124803685054769965931822859213477602393568914449733283276693806582326473094286889140112699972249175501862868415640084128965073449068036903667615844659300833620995358292162146625944839025407981355123125894474251215993284293900348041715116105162809291011064000157037726160313361523111250204491409552791905702696301867996398121645655758625081840492964523195702319809849934191748131824281554351400497786522629204319763534093081042614363136127687876066394504893180928283462178544936361870364531347049709492442459285382285541939041860434113170877683774813268799899993772091127360659757415519456523018912892259515692693288878099245287055558796264323068279338995601981963930576897944619986931497454017147874633978091669143891851804868708992933576716038903277653968883347454394897130993556951375324416806025924326334946897467247524616410176562836080899488716192456159385301801146894241944528475352840631243445538735858384720867968437720101551780606447630626097669726404561003657779057178520444190407016013888667187803171582949718932193076163279982828264817540698580389155523734336839951927955737314301352208443034233059599085417710536336660280974940937676735867894759744129521493149409219858479618780634971913070338063850614723895823700500357723214469704759159927949521739252359310959920057029254622702078405800245826805318394143383588193761095383491094343306487885499279504146584562132806980569962158122976705426931138358244719099527200813488193312143647334479788759782011193720737293454762098658229354563065353718082177289910094750904104100099068432544789350421223272370818934870903569221253621272978308584050613876521686341693639005604963403076849578652184402288500872356555737959690878813912762158082561361147037383193997198705220510117057639860798150552398444450404019610535806086731578246672577592288276707467113240545871136681974432142680371439180207030177606563389088140034174720561514199162397431207358105300153211163788705367194383008285682083064204566749106313823500726405041644788485571501558816325546229780670166471146619113947294482374108567633380877528642377335350553530149126763095259239237483582478641993499005708327490957296021334058755440599713269562809188868179706501676241843099617270532551947857851118862381864912726191918805161840698900590508312361765119585419094040843976187548094155902890557799495133485404480298424401340499895437436500578741994268548294911321837663190309504714474620655821662418805325649577428750978565093459179452161635460307714962999672462744795766760868653124389586452771788021091344296945514596559256564105931778399361543251543217917556574977225179623949467823373923547156883983339112658546581800568770574357662165858906750842134929054854364595032026999994783029849116333568030864957102842477004234191237920976255545273176625384967097629478817417443088115922396952941686632292634186005965429999376970941563146865164650508255969679265596584279259780561398062098987417517923075384348012070207941077061206123273348564603776678514518598604097264883295495211876942453108226779134110193962286891090940364238395461289450821607117226977658410720399732159405334583181590054661740123610465349634096804286363893684565642279647996923920150217095749123712800170082236595202718131687318837799366091188313974171290932250530580469255613117489607737412660877854545782769568672998407286455724524725886677851648225297391014900069396602580550646345499827867902168069140775647106821748255583066412263920444609560604715528662992741829483661112072717280206456614518099217335557862263488000659411321293358123032393693720948089562898401065306180897713326290875025667881730543730738944246961617535719706634403756556675136566264119204583646217199704882916186984932940531197055314126220741658547435875369421804936096442299072078375850826249915611958747489029633231374294961453968697295463586874900997986904864345673890051531558547862999128213409691999371989321331132911865526592859703995785299119575488836939368206961973372941426393675371136474386702225105343646922063807968325493644825061934663621533809901979284046439009552411863246018654880755195124656575633291729074180438006560068736839869345476588768572834362184062205126147313123154497933399147113291584691234525010424153962942580510658533029094116357623020951877103396999393921285641756049962808300583373580456550717614833199536382853385889997661097067933075506331686890394872335526987165314741578804453776945854554319462832664519481632635422258848492231979043170782156867323157573447017678198536347380325319960367963541393039882637181937079652718449276311029734311528107027057883699161197749357823451571254555130973209676338968582543165923740292977863662884689469831563630497767226248105347820778064811503690530259163920841570143975246061627779160383848017913394071248899442317753757364010007515973241925527514200438697546451933503509681550436109446936104824640581194078209225211032217387772616965116817025434812535226011271321930646631434716199336193158544323339428472198155382763957539985291536314502187806610832303908214040870905140088048181383338227858437073817762769602600211540212904490162307416062114440500222317609723023075491999154700143659768270248998949042880591106652087104781184193611550441570626179815102798742122040642494555292904202139854919241039440135968003015438489950657851655123736699348265147611126002719585312049172254039502819588570061978172178317143795009814722763441661389653612618563534627463103962766399568368284207046871544770262070619706736995443827396504750489456229506581456221729541118943681788940237408043133837482314276563189793895484408150734926512051835056647330505997700037060431172461548810247283496835253507676711427770148251368248528590544738468980422672693526977356269616690213022717447854994499486806373536142179788140039033680855795648396561649547471627740873360094867778307170661062144386092669492513828865776705199055024373159682777909767389396283791180712673283003990877625989254829058211551591584824691779095548875565358118667202201085608292687755865231618690301619598846278020585968439585833968320795677717353644968576714419775275616054770783771155779150014713890496048151070095842164610070555453887943826140589589130515509662588874935269545781152825435348516990929016207528507269760280413540594043092361409545102901361454228977833873339420921512498487821597580349665368452379604064068147961282335185673437786329850214296146172878625503891594863527915552751495011592550767980890145156563165221989408112925255850219841770168598048401599121946489896049371836291901122488505774750636475380471826363051236829603715052523958866784345920736962884302092144705294821596529476325095466222069900566090053653036792496110577841720438512748781224902282456235843160294849676268545977755229342730346243952172346657610949106728207873536345853161895683097958303597390689578312482327447864485244226335519828139840456713366831656670932059551162839295543160365752249377831915595773732884223304474428932637611210802230101712230642488377300126366996311541959690532601950364258227634762424319571265297607155359730766748648858006472785982161129169043370360082228563121249697787446431923601708139987237768145493898576499426095705174853126734175394979681977101245049460432585325817097610111406709771989218084574891394909936086692285869660795834543645653296105520424480569003474075430593727304510147794777465066592727979371787073377360521728307691816902823220087661012502653710256100192015378311535190541101962707147776556821450152696949661308266295238952939765934391130931171411125304429690674627406896674168890506825456809612946655345930238305241567576242240177789545512999239803653899427966225900103924234695294893431957446054187267972542961635061896334093644809126405365513079253568467749274311076097767776472636774516822260049027284808309293803466983403517792707998296126729889176906728993628887912933491595250632389775679498466807205901639319974443508159749236763177042278322926413742479280319542518077854133969729423813497070208025688177745716245123130435892489036432135651037026618672499228563981592082731279046376535513379184494167965756074574369453223445635987521734961353888155695991402279510261088046413640213223411059454523403338536243349483816204623350816372577665706606679492195502056324361623692547603317339810225751468073910840352913178895365351299839017793868446685799952330748087604228480789612003970334017797769086171339013603487292951771111054487102741884961035937533254291298095926509577641738913747126256805346761819421637323467948828375494243795439850794158134205122424063607402135669440248543462317690586365198077540483812148095342116251483747686093922304369973019577653783246648765333654640107124977037040043700844572875612464873533789794944612976435943256530226398995917965408642157591726260872262632197511645676697935834936766773018068630098984617594514082252064450247403035551556246048928519274395483538937755055298737217456302837799990237322455154551942473323689721906915477932920334839948962273859469145035504369198787182975741632082927555167537441470503253119299068379807553034903145008601155369443285364743378313957182027894587154603872434167459870383310369571867823579017222480776979008954533353803680885907230885672640378254128168947716094721065185136590588904053350703481936135615552211022478950436341950785739757260076112112412564236661157809547784967335678682806437510945576173638472564743080264776995715901740953144076111107841989222738516223846732578487101973740048119304911920022356886007315901410846592197148831988759395036255357984081033501648650337289378480725391948158434242672616939273206177853916835896715940045999097253762829693170968196657655376291855442125237335744101296863162017446194581653193891766780990462871671521784278461797503210237044936228144337577359509452723069901924040190373877941998358681183882338685550733510045295798214946549108539446104246426885084399355900037772928637536449403035475372595798672752931108187581588826060356642136899757093085171554672991590752061068529454241092227114645785933710289441047302829411734118733469286907489544794695885022302180286256176573974609634516745393541311820012171414331620100517343040727824004550379342789853088049120536658457135056126878261887000901328055520887069429350124351291866825154654388858116376307953026922828448425155716817649957445502619375531331765888100511757227832295946859451834759959871510465665784017835545896955295058517315031355598034254468126119564905439468427280240158812305312576398423386846015900013200776112641874402835260270304264095459884413290578677316509471761498727747561913111175788556309353632980571142874302806224058644077208204913384861469685237724854203115715044523409202537753652918791369248651182048086492981748021689205107779630493522624502752829747115684908982431302322720969825916371774865454283378088860561732465690814275518903913672064493074474846859001363039458525034440319526012855788116794775312562152399731070246504119876828403298158384448817149700296109002217770994161910576567984210530214954014165343244587153074054288867544043150672433409041151471223088476837154021783214297283151982878821263468438219551900288504344480407087231905682643656802004178251767867815024700421583163625842411161480512092246873534442410766483026983447770584003406505635129793481279056351779208234675547870392912919191914121612952677245872928201661754824107482045449511351913387239694440255315714900018814031902674114445180844222867406312775891672403752151418187712223589841015173596216676362726068636170024005461967070671062026477176596332980940520906614839294354034406292738378845360182105229804757569978513794027508242014223073925501591378510181312018420320511040306529063098105383533949955274260666081293667262970418877892613204408677500942857295311546171947304217156667407250383012783183344252088841141621202478710259177839767639632608480384512615194573611803855283179171902274623437827162076427639279039561537041777323811933814490548279846380431248661653617827390593944647327731666328489241522546630684072677642328667410461137469963705931786600044269105931377235434513810116525445462219387524763047267698084906820340459141556611431906025192772171482874376165214773548515270565233952351908586387035692814085511733355467649161775742903064712590064442655319026746689331969192450701971759924824399608790798807995094658911361928704946918040505456432216478754051788077238998873010489280986803747395836059704401149935113967981032291760380046430768282329186358067585177338745480025793030428941426093975518486734912310010491577980372454375857897506084135779577663614638373837115043589062788640538409967698845656942533779777963725681574678133439632875356925773419432790315593702545127411176354075196352428099233565118778367510240737133949383116837703514471151125893248323657375530012895194579006139867604023729573248959768663237948771254673632127490361249520723787851959623526447085217948591745836990437174778993253804744619495003911934858292950053345885864060870486890815227152555506465161655776812119337518057587230063154413068855703028959274168564342290154233746070579214394289944639591671910716085780487230376252093852121260205147242601785935484347420334515585191172839650043229712169415504953988100642485126455003781514642262926163605236951710648122257763351452140252122552875761962517771055010617474853415908479072472639590839146601793200076236069974136218566348701234776790476525422147248023991976193302979251189108213362996678864111920080235002832575703986424936260966450788675205268995504527430249683423374487662106353984077841306223245228370938985905631407208844682660854466906222845790123010789054678150577405725598422754292726381831009026809126985090574187931733885253378976545797706305317502592447406396744049458481721207912446800974892424409447810933260904960829332466521930063304314333341767093425605639080045260980548127157476317120222088266834288804921284868507444734111555781406053552587347752046702664777693512474516774063867704022629935401324698146851109578320561235111454170322405480305554635989638868958660010725015208396829804609894872698170570577641377016842140409762820935604819031275585774143218439412606378268046511439834243274200309001339744537302703149093459997841401633472364969554986108430851255398236352643253666182062637832818376173370814912542891107692020404422887261293827613393681802085799955227919555215774194489302797827372746810825087607901802898706137226690279073311828672005433548679723706244372269525244460876698165529007221590667685316994451986932662009592528300202400270373849064381512839475982817919927891900852005327145168588737769343530166833479189722877609236787473213995642329365441174201845381115257836911067276755816657088047899766851764692397165904803845616244391675626388833501984046107987634084885924948215668342556093809947774729297798165512152274693400619079556464280830025436476553112962386742162639422574056403756771914714227843031466264154399709682780292758025483314933275113073901973972831957582757274417419808873537926035472320119447616290899647831825157949047945328671336899999305935681572752683708329900817182874339070354838753143007694004279652147657211256554724188811132903797934082027779480276751271406605956541077223497741608794829893171310882758284627382138232337703046675341530934150385638859622631970859582830643553014674472872665778666574333599212521985040536663903000606526231443850180763163862194019501005350428041858674761206157990573999916924032262474115544547713401162780490315087433721425072720268282583262489853208638548169008068718527992552140886097201015648954851152239087359262972944872660048104403052231832985033405694635367553327794454941401039797089395098211979418745729757667214488489621366564339222023245250877650458268385881322538860785659700444223314822225505147949684611674490154722206141883308874648505456095976233083805114027470756045242914310421807398130638117148655311367157750984467435528047124606334106879930773196977188742146086024686173001779195228468376852414537089827437649804662402545761152475465317738443476858535874180693127641436331441586188594152841302647951587325087080355462259641580244126520829583539017616505917925665468325354087696276167073981380230308108543966745566000779986885334663007687035121279439861380761537309743207448686770328797968951792586229203710828616837940691600137399505618668893447572246806753302539442644970152496994516376497899112961301837955916601487585494352992538839282457307237698340749066466035841628561741856510749527284100244704804732761194332518737842614855495485020562313459484164625206783796044368140456817902265514368534936420233000544644039677645454520426314918572217232217180340347801699293455045743502650698035553530190341689390672132670464239923160433054629618451435698287686921691947157480191628642239324799474488148894850313123179620817641036876044563991575819349301854420772723097045190658825863270074631094877048550741913562210102651403323023070299951971736990700218575370587546667138944002229619439195022633130281902099230063561264363465453065213052692140164823619603624026826003829280737206066098976648691360666370479557307230055556509336654674559452628922287085260351572005070795960394233334509918308060331997922346905223616756916284598689573480132460585151990903117529171353686408515891838360099114687260787932702701524430899997237923196442545019891844493948579403474431719379778247468145768667071137970982648456554420523152840379077326141506076812480514534428434054612562205083566771156162954385916772893181809700087757390847289488276663539990918274308235404834218305089626865864355831308546082557990023766867289770352490276422388438553122201498018747955640302246951984534380993882220495649668099951588597505315803754115041173650236959604615907579870930968859317465480180840693780116599103720313076794001710083674100387457461611462142718306399806149757075941637085733051203669173325945397579264113845394509660501743206658006739921280309135862609786077439130764984147432029393013079519820429392104855017255669913996953017246724288264578121339956046096900876016781011676293785230465969673605944654182802927058406984416807975682875951735523733768446128726830955004648918764279986693561676943058821724281051066855867592370183176885669906600929414921922010248044114136291623894871209466174204346860766708313446048118185215429593943705605686636208968111783455266776971984124553003409482391485369083737277477537833136733741745510999221695807927161746307397370098871589292238687069462807637157821610242792937394339376790132993226146460043352603680000592750588059124094972569393955667036926091721311764037310797003330248298276387132899744171276388396462885919337917312086517263340091042785743716224828749283904684029253725283003402277877484647423605132716072137942463550701785493636008895220260926871480702420715318047406935243668912133922189090627455277693592125725885562677976279965664642301955991834754258229567915858850602695592065806571945256963113217017192170223474838900244818254078433907236432390777814229816994890152569728970764484030374478946002729354744368217718176471269961136222080698656034090388022878313556199870460419337878084613356682107159290396413096635476401407199363438758795217809643992685912411819205329044162524497662301141911445254349003813360458380205996132248503080940938605672216830931266948763391562834472776503798764474870516093282783979637941793394406295065057739189960181981741590368024859349430352211503748256894138239547749410217088504234976233820538004903130307922803644797445731199182064739609696646804210031050524011392119854278068922815938018046411163291345932932531061285665893203175573934145854545259464923193718316967798323927658953711210963700571679124899074908658606086752066928742272066195419519744727776434621016176922401430019861741104544434147144244848342423348479978781460042195299815429539456874638452733603670954390129153779887361341394310217751150789736074696644178933897350219256022565650037857152216678534117307067438751127265320252037455383400142323100702406120483926743460178558671035930276161275513064821962155064301005292758138486813255886662258110184101857980263628095489673863603341212043613689902126095334643158412063317585048114189441817284056581150425960329067303591876721959977138389246889213515253647037961293200657356700878641753626949098023287059647606845263837407287775062254225118625375857834619418919856477953257287129739141133772638884509827297877716777959368448225278395608356491406379218179308254510467980628183402750814729396271238208405049573829509765800011222376432120432670945324101258648535653114962750052253289295064301707915894070629358216820576970847639953213282512728225879707267595922946880614281416326396865918499192842199820157951822469066407160798120713684812552312163314705983702045528739162792435165655230151243079019656785728801633236425784649182160598117488009090125019836091700957123290609545438936713639651782984487334946397687479389626780760843808363084363145438121754996440438232042319276492883508970251909575718523041366735793817966180732780808934709235721911254813099838239289902704302683617191181048361276475600362348171764293338515801171834725204159199453859957287382841926861209907520781625145363744157383109851188779961776223024648376894615318675797558644705804551911361677180967980380006656663622810894137842089726501142320202468052066712174166090315006108164067541745535222032471269923539535268058580512633522796553078628375138826360978928757826614476976531761517674077999506311288933080622393260867349831950412797209047828582269422687516263563697149745882616801500437643792529972766896013059043343778782890752476436030094142610163841252347872883387482190107975045102712150333343225218308544001629648627921833524713021203718946585295763493935050761843825780703030333860995447822072962703820971869982830402907268191742848755945852677710528247816320727798086187489650033644582248246922409483420983178005698606586380846959993481749687139108178047113410848635596433186245872155859705791380376366868833072562375998254889995885602409398525898148024111912341815225006877230060599497872344487599288091031100029501384376681688885674874869286707815597814340057088261106055101010672643732681329961211595872485066492662487429981207914898853732479873961572233928870509210633698167112408618408449869363070434193210381624732034391583975925925534021248791060885227300563733520032365532516831871907394268674590892758313365828659954206083511607887721059816386354476968552456549916518316248686458711868951235579416470287634070910961755182870201119123860114338389530591575508024078459901283053400449595650823848583664192355677884143747655756196888043543174827967341826342907485002202921249378458277981453960061582950794289579123356291597183248405813004742728362301392921323821335812163134462641149333661151425804691862393351742884908849471897256531690109026666635071575919138054633033789700849243233300454036996676328825783166097320236694177025029525062557303090489844105467037819893228508917179027057242893733956346935360898388931301759776385549907354623581678012755829145884735869383932890479364404614299678547867413641044129598518195891977583737686967909299923224882564006607306772030102777510215422557965287740278408113586672309143161808413657602830167389317964456956414621659362597448128891094853166587763821307086067926640170144653266090885659747591944960606780799466713276603737382377666490242032860650171419480406522915543160150923964929284258149770603963905023481095233438821858623195243032464801667146654502064285624544148222564317016351547484037228531684819054207781538506064880567474839194392361199104077714874839672078083141493802631933694881060349198896163622851065012433094384936926285635339133481796034653217147181284788907915492628144552844496104149975780434544720634408446484268665962086276422172011727547372617657576229327648195655288447258332387089207915586663654130447674436284443656343707525689708750804589345647008081308612505360792149383375483609997773693089950774664865219904682645915368392054496830273387028092300207886735455321657355031834794399278424274889234904478661441684636119507893254750147534265055778870389550680192245860130146758334821127531073258607115333721132567950635280327349943507985225414555381837412349809978061051811210440376107595617649473713481751295534936239543190586697377549510928873872483634830328390362675468224467141386851340651102270422968604761692257498098500714649811019787241996478468805699422587893635474426829491561393729661073284535655582422431586621730331821814898351061876885532487300909347422805277774571471961409700089182448361574273678464453371110287858661142188611094132836293909583893694584585988297576490668687957023861216892275995993280236452649124446673346677266877911996099540839424214069886392402892700276006219198386861894199858556330375580752914985585400031814716150988116962191974404249164382555629943298427574183516890170136732431087156470562662643214826350993133202675728520013536361078472185307620390275376167787528013487522389197299997325109905623365739478084504927989374836649118140078960716404942186144014221435937802113987448680271044742632777501610354411704757796357001643976848410473048864555114621812236755707526066716556884617596618770368762941710463496110771463390769993670496188946738264252144385486264037006190253215218189120584091119598973803562780853851656717218505988902427494903313708048878390380420272648041340363496183968346820980934601504774205512351993436111654313689047551632618242413143395832453057997321790608055598980259641043701294043217742147127768456364083975510826427154072505805530101660940404115319939781545891944389964548311144224685709922014560193307915255101639297807053937644770429603972040497359519815698686251994469878350990370915915679301257820126654769840798830912506440990868072715554066884686450903988464351759782709329933025180628993382283518658031586182320461132285582816017506886293318221439107974512782194098002835738591319213366467835986998495639510772212466123146201575680636472409329625915416443271513683407647657244701222105682222657296350420696601152839063695283135509731244942059859462370244004922239235403904115503574353541114577252838478305626442524877764518122128999537711283125196763912142212472766403451304983910064685306824096928168319368225929712593784689371532894822688164202350883884699339085136824951560448870659892286995528081949136473059845464950682076491866189191170203218906913039538493901092218024478750991814595333055532986071525542393135006555030601552167817117550637300339870475648932142388503203970478907462001736121006460053530577417460518185130391595397236151978991834191324735956982165949723478665215064771814596616302223510163183585534077224466061768016369106615761287634127583028106950500703593465531410752431674183307033375745696011230203001860618316508818724650388041370606921933449581277049690408333661863335841102368296525590148052063316724940137670849580070034190645325707486067926147173653588913542852250763177480390087096577071953734659415018483402319418731681990292019486691426519884863473751665962306894424440471935430160238268684797358879979604602936218362051769433332822091547168046432001714492489274113923762928445695727766792707233726788479113666077573255053780064737672374436430608599641052572675182673756437718959528994981218097476038945337344119028991403588997163016240444972770538876264477091045434471800838564774603560985371063145103495852140882090177820063107725498483738201240955203313080516980081344452236574736095657650364841649002288167619347141274340273008571774180507051029648732430231588499656042335423353060191413998671009329285006343143298217144085172814644587523607694740970737247333250286761368667642042257631386992734096544995390609779684723739337707629436722762221855811316892760046055193071313909365698586840007699774634254785706797218898409741935216197588691142313093232852439465189860100956222747903884601699989511977892742190544719155983371065066791703047893393931191710971336110005205682589197158033322539493145889733996645726914917828853420324094642026207244557301123492451579801402864898640135996260022550525649773438218789068350513448265843152181542391735691286478378808880132922812249967910487904730681923085571580752882757413032789061214944612340653353090869570605850766034573008830243807424677050851529905203136428127550299818066275687224804701901978056202787912331618612028199351294097458384575566943912654211847742193668718845102853882615834301042335755318900010091521389442974863436389044778782795584755019451223860463456049178437233946282726449336072438715495597438577761494728252022045736320299616332076947788932542461161429080513594422199570365444880534379353678502967194508502874932564949998782514755763102938537587054631687187448215507052528648453778140266424932261495201122673866355575670836313707714816764357372656612524425889630024633915152141273885334238936580144733103317891042979741571430425540497547409455579816210184169148416578096492534911399969883599031973965503177544514635997958121423448545420852522977306841477939415264185456992251964295085639479987828988348808310659113645871908948887945604628619152403404658377414873276791406725209337010519437788875410103437898829393735694272630887618837470416410127878431328760789638275163184029379685088626925709935994813201201668243966460962489173655241147875199184986720030230963074883746218419697686418590852045563444605761657703262841465585448855529282804694540003420413350451495227941917879967515363098726846783685553981299233320291702050698873755867072548744099367901303005731910749942280909428695125992177752891997426614224718937511753909743462017469536920159732848841977525595168548416077356358915455810650131643693792868349739117706248010093721999548096412687234944013118399744178781173057487573347028889687846946918485295177383920484541678367203643699427079531327348852666803465596871411537417951802755735204219200159470753152902541203468390113032358552969277514813268211889190380598397397026367061726493218760209895213839290865532918626682490752157189004565473264914370687502403352047210164348305818050997306350694709691071141871853022949758391811346965693397729617535562825629164297263987013596207022360080452926645056662420643092889048643372901106584771696240858985951242909713498870623521108003967001026546907265169507902173401069688916074282042301412132201633244681014110479274053761005345206977646930950108681422263823264352110041606233397030774278035204798346799840625885020314765879655499002888115096709210971305220226879897112834717982424734690703391239044137556884504310021004647068103409414046311653365827969478630170589622203262493625663778239965966334118319045729278766133794153716656001516855372023382245371613876278687507594006256080987959578390925608071006468523446029415195519950432203618369105917499643010264110513196182413360290791527548343202928293343861508064369049616650922875263587652718038075244642946412333527770061185942000867640626758988121707251030495838455252742867409920856850662568058249377335114192843411622485642754767143925370784047901029013195892320264318062771179269838623181644282660462066389871061622047912005810421253035309499765779493037787365024052018143541981325338913634817946316495613378277537077375380940906291092143794864889802110955403446254171350103344245766043191113932541820886807079153870538664509070760255881822644243720641767578830838048809366635477150534726448963481261333892860212391707578158246004444686342531272705773771890687389414833860763272326125619826564651241225677404382193953442178143853657426365982103749077377264668301384009881741985225448978596736034830884758213565297542407721820624692100549489926410708630516762046960864383003862079417150771114988129235765425783249107847822634007081659644623672787542665902927289270622395986195259856409817478426538372313560239846846362447298235323605244665980157704077089502449220560419623655445163485102111412897568156391722333114970120618429679949215751551123747227299764920092343062845167534870231826662622308348726007043962042587520780149958152031859777214693733059635990085210808260604401149007216333619037630470585392565874451259820680338607364384975695418194131636112002664878090338368725553344706135788675316337532721954143491506955445537108522322107218664794360270290399196492490339859803211793539107082918842091092931045964272816274213178194865371067658158349886459917883352705151521582802446470278386782439630972512022838421272744802689286442259786758783199926776956170844633497963785572732590453822055537928717513026692813780041020937363182060386163141258574531716844122089462173579108812497150116802324215204004444142736743972070755033099703680208337634953738838903042841990972577362486448765051165444529551666689712805508903221791998800617278583485665417759499940418207190375323804170339115872986953131326124554802730475884972424189226358192394474068905521782443492792848550040882623810997284523811934425328095354897774353700426846744917066943680135939261091433156957016350369984468330548109204178525826630829192656166654080510413405665107450619356819665272154424646705198529782868834536096195101581219057296113207032341797849964576925330391781989340576420220150621593980355904072499754803889695948035595294586590392158985845394867554891817098005366614231818040271907130160308582651427912364529455465145468401200788461871591023963914059057082513515056325661137929834621817498241380589484262384268403036586789864601589074494714967970588186976776179317932908828895430251766532253376003797339452669084621532167489265590209179903962745508157955273409683349795051353206239386531951142898172902940085305120491299646314169933476735922915484258050940388600662249463984251189382022939453046844165612971110261538697775040175157111522368920020407908762109111340812142522124431446943183688604748598359209969268825562492041689110704337329044606158902016222411647514652495518689264361965367138056983872124327391941699156538255805045874653021027929658745120108903653822476080948772995210800103303257055925750642119654536175842457984388676037035006040667715713209619966137265663595720312396022257938118651833079867096602171926905318416976876189039237111048508007378818177546590162693452097940725363073598927567950419290839960281712995902032240515279600373644415699954670361564829705949431227412749876490631514304881251066898613786360947964195808341196683396953783676110286924875524740853905302321175530418394767654890264856257379899932950947176935719938145385114186914163967590487044977882487890547861898331524925902089010906237124393081529130978769738492396220828517110221564116503573097886421540684852690970071007572885534063568144423474955137091086739484147296482872372835661816154271281153735981466548010481227829246594887955706154255778478620704959596802627146677567870432855377882281957478383923402096073873172846680262720297816368746750043764331915158715333550367972986515110070584127818459032916107632997019371541148810591348495830337262623965780006196721526257684627790831727113875401823438108054254433090438915069561832608091538352931364877689257585445760800013845921218577314059381376384124448912963516224014415950879354252062123285312718224490655549019561743827664633413100564572837717171307996603439018711485633337403436148968637817505728298181083935096595777528930943880449437943652493032055875461113940237198705851319402147030409854444482166702763182814084869596913110432692097023552827266620226848538498910353728746678384198399367954853044415571491938425347508709029846047167747386730740895763037474429048266336168279325294185488120671549311127558474023532012974297310947920320045246298486720807483022514063751874878820419173436748866175157141872137424371373965782116319898054575381629330627397196762837807651652963707785664670578211306970262462559360798073720208582127947312034869690689487353119335323983953868384127017760715186451984224449666311171581194619632503836934845436650407043848004753817365963698937190781386947216352883777854142438745424050305494500366349049464315576843179542408424102725543036212360798210546258193107750524553889060134892974072007805092106973428532960886729089404991875092141641264985552729950528058031306527572406128272787985256111826946570487004667902476228694713902250989362918708234440621318670020307784349603038694086726180534097976756701111589992342226015697607243136715774827751157458447972264413788570094685760148661216580100198934826066297258172013409767079363016918427353395406266392463735737151288508247294707848433723486843579019888159456619115495257329343149090015044678242099198876002100696185901164072453239791954842450105310037698331678911039261649104449716033662994156578599748264119484071594453810110650887380592390800443541003108637049172165441778976053685287768439397193481383023409763287109476802288247709478529489504544226770782519249600536401077225420599245569093381217800523640478460128117518940673386961104124837631707894104878168138616815585935139110049878470907724408660673245014450052985465296875459307076168031479761264683815793156612983784432319215015381890033130909911672150806884326202671901076409390189870673472947336897964317074197087236576520690721376319704594399155098615665500280879651759393326838062759475834516998962351119624455217158601942605410316882359284578600086597428972427721295731642181327492726694528131323386381866735843320824118502905392028845694916351565406018480448723476159879232934104241455300146225906079017727717533042086713046051011573933231536685434471667003856621759556057394466538606802091065513848230062163634781206153971395626636098218741706462892429002422877591822593878982814314958429957391943241647875448521430179355866181892283003691413873869763436458223533256628710993266248590512133101407497849165713647926777846920145977779037525662283662634523980274067979704011353132593326463855525596919298911465522498367191156549010250855515660810371566849720259259001290578042535116199657677774006533381435466849334273917272697939254371355762951149907267925339031781782042194121148433194119847087427226517475363991007632880044470930123330456450751113228651518804101731557406183933293972586300197362868429143210231995611105301965061423306124395809114613023821059138091965730234275881460636774736522754798695380400050875625476692792285044258032235094977647686470208842100265830688827126607264521584681564449014372862007929899445743319447705677780544243807598937244456588510645022050805594583932630137984485701231321535593175591693233571744720746678864000618740007034111273598038865765889185886596815532061506073325133582522303471733559540274120731770422973475221978993763370750637715827115197093186285323055492468742431441749829823379879011585981675902461477162777224789642271474404817744041328339638059093908882511860452917170666056108452658459175958954143269950157930725334031441790296824053010038038601995052875017885730296553600988306456677626176932388197866511379600626219321982643216998062620128039378662558668550605715820001088500608818998060754023510631271639875254546919821467734639962739605286520646832660624561218348405951054890236519656347776328205458761267321489216462122573190005044323308296762546480851803502997955536246220519916348047955715440524150862909728151215206996258733032851954820482259209981174423886478067563351156123690654529752569685707428549102302573831308075444099270375384832512501571578776018265117192965781381595889671778731977041802840233120683147503214116014164299528119915384754624452966212712193834716367547581931571634565053244838119238599995922760317025852693642452293103372556761695133596549936844582121988648622877690729900163156275022826160583477963017172162295705359721250885451966967396136042781131452320634196662311788278873459088997529010668646381489378370188556422437562542799190583443616049855833256603687820925077231413266959856110257684518581676198039244655839864272086160291057096497826116821656073606220388087462786111112426297562515309291565113689122971522059561037340183945997495941588079444859479602488627396033068745058954259481836661711001579962674928277989684312645549084179795613207293298925873645207871492992190852985390186040890741438154433359211644042203291591604240780355993596136723807407435360625810517413151252846637540281056352467272704891357365182800203019379704632890052337875085485495676732549958973927360641485879810799847788042790987524273062062419221814836420845593826418376946548805453036722284650761893373721673994277861201912140051764629915170683707121033689309868265461848991594189818964356778076576506223746548012273077483175548696318633569940983971320806068891283901035904387442811041177622244973677707785059074175732622022694964280092096524894242850467719229685411022080276297999883295279178958100120909796880307878159660494941181043316080899100972015284301461355493101966786791179735762568671454812066831894818354745313340373982737260867220080621224358642908573438142951806140804695157270664060229933898756106955406029321052013165353562438004528472778309490676506689183054360676864969316966004774027534455235347214975712749107353114310611570432044993846084427936548242459103214877560102989089248688939244829564823841236678902849232768329879064708279881930381772731470450838951204152429447400281979566482569261271014882588065358607272971570689276627164743540696318568141050032282198407702304587328956929204359720275658783526817752070870430205881229738201861344819927096523276474013234271573351672538749222922769202319649106240308036133925117781433745279484654276670632489358297776719154928326235407222516363473785920582494139770616889891986378051436720467824670114001717928052140970197399472343020727522694169054822240998854713910684903987082510453087952068533625157642248727067366430790209033382681632778848208428199162539208244289205210738096371690851774081208304734483638860361398787621224175978185705270894171324829301636775544868054939579531742646738046991996417054858553621264602591839402240336685585406635536799141625785834962274679084718725632627056120905158275329186909506675646231615973104917808620897063207209797803823681665727254329067677797111387217898934828968389037576957968960809861160373787332212689547979922702899547358846969676889424490179247402921867764340740610614703538838196594933325503665193483914958064004667171365777885900570968096067019056373013236144653105002775265754906535062444003698810396241726741199162633452982589483646765972843153106365468334318783793112703671764014254256127449481775218977719990846683622096200515816051600408414939359536515827085246348906010514473185812351226949446279420172755527487923277918992244446624459569281173769655228629444254412361849842191741717393251328747383177756157729492961134025588793198591028075655185066236199831234214121070331552247875857260272040291339040705169771864465704927694665992304423495687390628720310536711156338440611958286317070417674028797882003297226975708961886115415888849919361501507276600074977062489376701156825784436332857660950455805783864431258006244670750843898337475568883464255528404232049168954143946775787145092652994314004649813601605259018370842845271127736415177858647955548278731486501972091834617347698916058932301645595449709661603681737093802978040452878991577634088139629220308155020838694832272343549391128245774990469341763528483844161567516371352062568609714469597363936018851985550455431234178794669666906212756957193436410462008609782566303162205391430201592205720565010219663445763591077469954008069371794685270942661937406137788258816291795601169135323792560345590938990310763422038800598098825061118992416648066664541047736771303803782220361679269997556977309212224463780945543422045213033302166468959580654199469856630417264334053712923379451404906361938147627727240328810493679580469968521178448199854871029828132589676384493472787300379801881387330186924803326287023585134643129251504181961865762445285220887596976538140580727095538782655893064410696643846234037236581037756158205253283592879951622869750609378721601668105450159321824304883926650416580333815852870703784636822872244892510888544040887534929079871041630393936102322533993472182310263360653671097367138050948599142975349474959446982318253269396639947288948231709075482575855149912943055128724602906670394933451255999488474343329507877348610542467671095605355191742628293012800917933011912276879861984206320925857725377956440180397560780704419974539942201474475069253809977352514112347953619159011598308789440663489512824815587691437065333459473924683630150081993063788612331326189507036475395848353025897467036688437211916788883307092388353268194252851508609442801342818985204109325195175165627133816201432968557338037412077508690000060638485293097222175177947842877182887376735882677190384487189076621538151850410585337567853914849395794965154763434500907587290862534527821583024107443489597738365842947772761022784606966453348684742121349546411570978047449015504934714597353646067293669498835582616435114929334071997363512149643561719074917642102147343309262879982399812933235942171534932593343382191976968211478042927687361634098007082162507567829030178390127949492885511706866629198848964517821746956243046720052204186580413219768138795337193012129389973317521750659511185206184192386885230319016866356781303769729232754518218920472731943015178633844360046554591625740782229038274763640819212764154456613785547546844575460979233227912552367867696766876354520398956772258588884571827540552889258932809241505694406476818199353409681955299321380693359540154234720787752352811741651624854376809441577691003016113149704256582634931537280789541740827506441243385973774270233496147010376753433052861674351113237152406823041781938152942192827223560930950842056166290691117622306031883756524955832876418416489242668994957543632199925487180276602564232513253589254498905339058828822747313627202497212945669321014943985025144959480948117866196414683547836912765591240403909390731043388080922593083805645207607412431987430703044732549941205688692945841676583970656370062153088949538715651606114118998261300111678072337508711824944917001336052994294935022050433098174414622390130562866046028368957244281277721677897740516400259010556443460517861264312956192879243526988897371024843437591320214849810489575142489793949419620029511417515410220475773324245722061565981770421497686990519247715919281760507717304856428623685153998644658245670362277834413331093303918960907958259904475865092981315541404241776825652092897441817940740415350536758239368821238242869697833613745817990422359056047777001653011153625756902715773162705243093600429533874188010052354353029438671212284106593302520672724336847948758805681493184379253034792316144963907615978246609976291156503013610458311021678903431914305850272001819159279593077512120436660108888012537865812680429997952156065289128166054468316595487975079166104618713935212150031094945589184794908734566289056189205503117441668418188774228328921412612876759026035794440181683269041841019051588412345082052933524882044038630676875683330778721081488181011179264381637932005246757915143730076609439854914181923748325928498081268047116655828777229337376688239479608399453769434814583985340751654673644288611779685296098476977489175185841114564263243670637878250604718022105417576255248542072180613168134252684202702270914489604027537985858063757405918668851441485644014314750521617366630380733603697492834923243113733045755538714826443277561411964485804766530128346578396008142301393354988692674693075319543372867906443459734903225103959760608778059003017660736250266241475630522509786093829890828694491896990520284500521597640740367970597256395005816570620379995165103224324472149960826506052098014861001624568507356464316053257041500125826498903275722899688957031046242482220654027317196454068923710871715004721879192636020504105006393785045536933904204348143214110398707578099530251121387076250205404570069389939731390364881706251616277754614309562619373002618468869784547625972679708328182470550629436783117106749815242185174816453243171453479056731701025147001163439588882083407788013533299108653909692575045622325197161318367516173773193503084190385774512720123518784976563830308587861916473419677268400351723127622418992112905303897470217691609820394731823337602494287915946787278521658030627446119839960764778711328820515311427755553832844564357904399624658405237707524107140473773456884113103160418172622570134761501227012708718184169256616138046046269185893051741151799368189974065239139746977886350518760278273845616729304366779667324021561173908615372202020252824653690793680633498417041368878637694503537615593817891882874010035637436136578537356828539103579019468923851117827223943774534856668245479256002160030552208564392620807526402625512842800477352369609998864024912731782826394646054786847826962403535381777686161165729977208931130263525023187564657539421711720966061792404612993957628523924573467866132993511040138677623391490731688706594393547003542214429041399500822488781569004083727176005429967698505951561146024166039766386389242516005279204728430511672628906526012652181861318514400709663194801115993715058914206460173122614174380057541763531994534113798086921186990472475626603291192269282004928430497656222597137965515006668298842111042396368676592093735479276443017851436529040332545535478127652593480895143868997086844575734208734201605882612695842010089565571432293202458762219120946717367760523744172782517608593796618117386953216931944223119044821522134356832760482847258140994153708826711047037096722431912791723016924174706715374454797507528175208474835684282156259968957981132573152254637904976230187673511124850262722864407338074630005211005946321467497810978283034878699551234461311728600471963241724156623289170286882255481477535073843987243968005205979325206268383637025695586087650259392566899526965979360856884132167525743335430361665126731168513788050287848808886001535565446762202312175566114834981761544268696373420595351626702420535344330176875155272971893867718134486615616077113170466721828364206258994772436944171845167465693993206083717086221729560704211629357731761774809951620777868616647792209470481558022347835257881219026249483434156546261275272031147269551710348970150372431014113632271231321577584223745707307164292708352498376724550635841317098709610505883879250138681782015121725823718993622758417524194372596460936994716223209544135386445215764603909882609440299676278498120573765293527483099987059169111211828939331456300592005850349957607515858077764284312100398239985524593625610972451095944078342606839763113658551719990697776457699733154798109222199830311114612792839728945238330770337856650974402064368667363186349430428182208554052687263622209673280681451185833353220889897383871566350988645604782180133193021857598638216023745809214157733797243490987467431299270837504242516850652756606546553042811818136005724449396461958377386094381898713100038330241628303775892717743276879710096425477106041047749184761433475834915434675147161856600736939114774882846022641777341202510404655504846570350161938616721656916350163357039862596403998803320058669209201988053623902106595811582374803320009037650173439818284338433460456654047471392808570929795441134772830820698226487846197328986581198068850015815019136760903771440208714434412862472607778062039672274999502971628377914417047493628428032351107511255777517296683828929591960104233776741499406150820427829015519816024565810713168673518127058227776241879066051083849258652425682731514775518803888401606754068492520034830956549683665286499711543611028262096769878446468325076966544496607538608505979079490351355691547107432497783109745827094095517978488812688488528536919879584937658665372448328501637453273853563095723823917348634967923529888622783566364327378822934013668316051826670032240259162468582958959396309387928755474991600393721516503188242275958827313004874795376828513632821855383187500807396779933913007093226400654863851063007180106324812356996615179762862335559252123472311886863892852295169925170814787787349796649784167517452343354407475658679957224254886982423846765192042874968033073584137305651757017153627958690093042592006731384322791756562357087086050319861005583563612950223920185885632684514271702849536308575250444107831132936534378808001532376367566721359453816658599720417437777589472455150761058356231126477590800497735257509420845375391359503424355639000595258985533715732119378778266350467422009566346073642010542551398487318647288938678571953910841847789369108033544736480248679594245646273519945466485440914678351845764680013934734853436865179929808764967384827961858222342167035798223201741260660744395056573597315490223003602903891236282608891458336902054886389236179122896378355043628755367494862648919674506892880357165528053422276958926369017199316941154982182430872653596672829481549990947978121912794503154551669901897269555310192563527678797455950326954023582115298301507197436846935737873790597892009398953509572640800608138367528745316773083103247451987250800962360575577766988029617070717417489001584834981709593462773377407049796014789667708811369266660395513057603207296334935192117874262728701868815661540214650863707670420406850823248035675873438696438243295516668311426793463975801417016960392722414278467885674202079167047708883887231202842111917323899871454773181813876996749915894063234473058934398366793125651408836805652558553809957850532478877378498685389406323646318438160255555285575492896229413950753819737208862844224635609169307257237979329084260083891619328475480656931672016443322285065034305727959018620245206096180651352934331306496489384667036179418990409203868836512559722657800594816266172023496799177583002733837490488937837858100835758771005553449643199649312261361613228486324572021351574828886481521106254794663957116587698098171627308548048238774529083440581316032088874872349867454680118343730752814751164192852617763357522369217066240774998085809856568760721249357135288682138889368443054292303678318635962583461239270210293487770457887304878992782714467732960292665206669932199858520038698867603043519559407959736992283856994572192584032487178104490272434121680804580969390403485735418255149427303290466414881346558705218204213218620405556426091501987259115248291847892989111506830733787006819551265309403763980435979369227534244737744222786530612315424499839099883955394462564319557843056088203861671130836878764727616209462172254329163865851294116594328421688039030930221720866938951494883812772954645341598704779026220858487582706653646896669687452943354171791335423486893097708593161909158741831498411459159237365040283048686884954358875774153902823197944636268110905746811378216865948959806172870531071634062866848945445482068822379954530495450201353423633500781023785618171189567927793860571719379463292998803449523769973057899532930010385920907161415124254943908697296784606543704463282000410605480785869466385630913167863085282938595147845421825134185607403368409810647116219510450423819501310382023732190681209143277316701440785933113504110395115390821471507333405101677114220350975982076826841283204898984150557761628008927659124074679085015329015115747946700210778083045460260132824793693055165455858982786226337033649264364359935248226773872578761329620203597782451225173307779323296019398652681402103609629006496118909816469121143476426377272914553781827281439211107411960750678066970374478382140847283007433563321426881802092659631807671346642062770551665502414021099706844234115224105491384068631321253635941864956129898287569093658410098883705930723409778378427226818447491549225963257022854488063661723291185365114845429529127099413189149636870305761367773033093335471187458432355223043309649583635908845126355287590904710896131485191058602246870447334236842485966665830578516727236486145487547910792932323069439691680427368067889729662405775923951668386313026211863625742727136676219276478740039953352937142370828649852955793612250746716780952297988866331631003773400954309383748023623645740349605776164524837238738906272420223773697126283536906044092440677620302275774637118658769116374856583461068971909109448237829549446667847073318780638890339141042778934722202126119588180870176160363888936242865023255608895305991233847675084029620359920020942087109112453067833356474155000457368194982326697609567397097002517157591027467933080094318857416984692237732845933178240223346723662262398075617955691451940776634481536206077716971090387100366361625787793849611844153194245585714141682641181683130727894338803192255299510910276590329540728112576847139884618146283682256012140053709400323087730088725449441444440180515650073128594910263805885303347182440967887871246111808095825807589651933839557453484659666996577001294643265388924825400462314750558819761322740014567290523824577872248132037177866087861391724641897246875162150172372051592460095200104517438486277750350011036310145877887766779504591341193626182158024909757250339452620072984054493111309006616134275330354845165694564182758207608591888464586788497966125082042867167999814507001074814289227880148726915980491369064816156115160236132571710504057104057948647412997685766221009833229181429311209293165617179591065209268614743381551104051303859056182290255130562670583230408620204720445968368313719188623289484627759569421790745313759913209543857847534599370526339807995873450861956117769739686676552249118242594841547874172253761702689343109241693949247577430224477818044966871043560332336084241635969199519443294054212439886468893900188105910582213508979151937235934512738999002975433982868586444676561928753124907254774182551323740474213923385366841554229029361274727079558685339022620493419375100874943119751375598011315583851782632919434325515726877816725098885331736010476697607289907625859101384624471695352309323699411166569555216913382359434741826953434716309741731084152506850739797888948051094261884947087409760541863104821135017247920943633600898512795015694772324771003216413515468391379076638204469815873860980413437209351269029087010965014512225742720542427162200326339992701589979784342661686271263354904745258446580420874233155001357797017614519077809973934748252770311985946352108665905543959636968212660675759252747379901063361111075773275035341185047659800166013143451383868317844155749632903365190243412321335497221168081524305266223857548107891849155589690696944362027416146815628819538028516356220449662921505841682621304487113169405977773711605822230482173328863025879367728164863029806647974032440567263544599120299224345861310297924562561826145959792754971703246641064025694403176623409594240716894565779280583507328551515132181390307422314688941879284713020307782676215827662713647393761447487308830632488887188691140555581295806714985302757852800079317424539441106980252346070053783757638156834978355534825343330877822294329250701431909640631940140756254773956817437103841784790226076589481125072936890577704176492920817778486760425545218868918806308593333926220425617539375276478029774911450921700128479257432650317385693190155558247868486156830751445774196566870524150416258596154214271759158118752582286177256345258104836134981352388585066280213706666377588390556904594988909383645347984647413444053883757240342935003197935112922904900014897011370557863592739732640791877185393926266710076503432715277834792860141843715433923061082074422122153419126377756829213527339824614755510671023493663822806858878347961228187189701983140706055585761248979820439318191722117898976779551240665130759814725093093445001754761129404281183988335318156377951857046829670528257643250304884021322907912601803046131181767129502469781484672868965858985025028014080453309990387148198586978492635487755657330847216074434195279843889647503239733847256910290427871556960108837666909582947760799075586029316084728874672159937735878093271346802406713400741734359572322149992228308235547785973906650713959233630096989880411253339749533799488785146307258247991973221404839545918141251277521573185046483436727842043743437654652249782436028132263955246046899172250892360985067408495041964205650797216272088135890729146982551762579407798833981919811849502792908335182336556690449922030286874381087670444358122922229663945965571447252259281916228135995396398052736015606885582747231123545855229803064326524454584388096941395495553465684477742910477770383971223410077092990276718806541473179926303349945338390800936983929585134698505336610086280081639484041461150993645220744495695246458594143571157641123836778480679475170599280227708805246122987553938390684950611568420145125073660314468326187752160421272788381977669272805418199945432938379321259076421470676850518457380687435593855579057626293370177951055290503312684083633536764311104554972659754401823625735140049002289800346638627998889347295160903015349174634171629029580418808054284927587501240440252285323626360759342136060332335254002464233773733939611565980125402014121097438725956047771676621549272596972169474660297905151632691858181637885670688586566603503989981939587033626193597503153907956405209108121334392543041334255934716455435282256537393668546217641123893586474689141285708282603832115073555951325246005392615537044121321747907259125996136729901468800604764142262808903245748893205567531208776775408068015587156376071205218851851839101577148920946788626797855220024870949141300418857629761002750594752297931637693989944993741228050091327348807850399958306126000004983547228835036454109239051075005204854097349128884143516192834945626107633567956470889943753196255974018065893135255062338370726652844529383000457302039636508028369560648388728783448259164837893150881266559508657525825885847779081343995079108241144426967631653557022981142935503757716244330841473950633127944498939809707342546045726333328219180246189618737877225540874596030975029828826640035902902922253621386557520224521934330585529852885247502556485466991381378568891963655623047114628845994339920322994354107681108819122898533809570925413254519009062209355545814766538015564950681621687755371057685682609121720668298455487009461162631547737428464917075824117421176271658741279556218096084833206157165008689284715270176711020234721474400243628054334913640545102824084305227927927847645611188544602367310733974071145581002625527336013662522724936498594998248723519081902004123787788779917123000040841349453849319370595841703526373796094486567331755633114327054753985944760221557268973905215567530387045717421119130421761621536398946220791901758995323497163865352889853796517529609443585719310161236206965430977030406174342793900522109858587989568834083778703607725142236517862758361773472175840336665464453924631540541559409115430213255710729280168791721526495936465002105136579650849766932147855650358130085067609843695512787323717796036854933686477420766938745683416375042128364958104158802537954949349389373442018588278611834932372866874168502225095295622501862695765091270682403128415897236290336766724154350903050792407690313830296417957603117007943744937607483163056014268240448867652704313986117839399903913913240651859368683720951804783320797457003278121130597805108399660505687568072434064301358956569480366198376421718367167282691126300423405771660033344563869849419455025045122325438254408893268114640774534448190261010820467118593650229520675251452416241534954577580221992885555620129973383144113016893988664999963136395746122141278398687222653524293398690362423951136778021802601807690360129322527991714622372443086716798904083787351410285672294922337467896945448685864427938895425284851417003890220696141397740683935194897231655359725880029485246656287812531968120274712620279116861103906600416168760586350529045111215293128625355408620579333762871851166267822280579281003067847042847416147507295232114182445196768747735364566083250141439221874140466803648045557739850099597724309949114412027026241039973314575034152916518663777672348046266663373304622651338372583427946122135074265742890734616514353751342760660355033359814225971051094495541047125729431285447671718792404458665892355658877772269118277706652175426179787166012825730880322019708188697227176537970630498286470472540838259937051639193151479926812299122780626351320380335420232386081518113539758305279497024686140671099915742053090842317482611675091998329515033515751766695930248307626511379393408787454257954115827976273708176054164258732192115847308882201993976176091510010617996962147557334705968560246610734102296939101786100735124036253921652145669413760587004275333018036233761292179232655049871647981361995690318022279628515717992622086273176907237188539266283118960618680865527827053642930109491307712508722485183855759756610316136888918663386124603064193084653045379021973853936659950592006333783160595676541998609797309320078446015292492120387530372113698958837872997578511074929024328312107796557404349114871349541112984547944009740348228993640727727779785388939750099862270544357842199021827533872641507821608061611516352224054148777615870279762258721203758998239076479297574936824041821854286834727237250656072254396333176444692472045278455023077001446259850953642352232663922133542588729458620037880602325860140192935263095816360119526376278817647964869877066022291968137965743126812245034986921574637258880833742172918680960437601775687003164061491644729669216486308847353675171456157581576500214911294170121943681973947736738481941957967947137932383555009013120386255934958994825821355715983571484974386194543881358743273015399074669690729140829223522109901448801024222628874196814377500523295849828638238865293262309403662001971477466426910991448766740190498473845113049325061698455620072878513961450773859659391631814817902870564775132780062040586990289851175404191852144034043288557887187026831732009144751137478687560008594077541242115263990559335637584781964758703008465143304017007417057289560946783867947904503334253435342613200179633287516938293386599778512154996963683154908738372419161220020442451086834034467890090430799237530227980094018228015484242928002789624471939041857223709458322111650800510565478778315529720328820380865206848909699606523095045371585096100756305130695774713287115072417910973754747457374562826649676169319429728714406263925265884228828471101272640246106281661003717081260621778915543808619772184870342764583116175950007231363918444754106159882667903380313558342855801775203949537271545744067364078994252241659278976727157055784591404675920824473741889815147288018422967777967258290854356543610436330270491862322348111154008287268444633162654135543639696872591414107885659894719790106651902980850793075701072847192340450167648733428342426209575689359882644650587539539978380341046504931010755053133966292061202617460074624387811823186711129959876889278280097894000644684480158500605318294138593347328497935478937278075956388937199845394864881709778825384672660044103829617165377397509045035723882595284699012151398103728833451273895311973290261371713322870137190689306074307736162115958501907664505351856766008911778383498863786895908898490294157470806246524354971629994503567361419946720970561697813726910584175326896988468773017311398051466407031675665407082668622517648417758919521829265586891622285494993861036707644251483304791944605467599207656346943684039194712260616327095127964280681218372959106095962940299603970451526586931857714750209213513448250183508246081774735072092114423804389579687913840679803653266383489435315973590651069779019155162972522447559701715190791785385049016185673823178725156130414428640761352074955150556321561508708634414218823218256901091682906013852404902274429259672340833779359366844980965437403715241619562785493994244237666034158480105551007895271331620737074213648484570823897966015201398256262997546207726817431390065859009329656243698389150346895368810662850767696161486614714287113436521942454674898931206960050253046236953149361339945883045847114087906429511698059283448803922010397074146180068821515032865642310033713534438826794959849236378516316201758737542008309774560191137709273498838746371681757141352790786893709117749899330847257511431289180312384259565052956232494001113948618515939023180547906483777174377494995032189000097071725931628963458764389359724722465167848692712185890232394415761680426541319420052044664114345247503266604033654035243567067412290210875410070598894857223980904933481895674589605854602957930090603377965530468946039907407983043845148806268369831431059154830779765867355831609838435022236801094858060992493260222937552908028426435131862656439616246561259062654493494163343164850008697648228656903610275585456938125208026198771975555559757559531139654835035461940095595594150787287334749396136067281434706510906624502976145682934831020259301500743322931160907150094361546906995614518203819071589762077822130272150962837377784403682842287812882797557844279092912442159275680623990612347794175509620576237270696414748257335574140182939389204721427568628404231821910860348009888528697903811015738853416824921650243425387951125890804039334343701346234014909775854523573947817097025007012613277505390428567943835230172453111853324731185031855754553865336469717094464425208300913802860834427938078097405569318352323463217573161248543046347748598375450162308222694355643122132415836512635869457761208069653448009539260838239861252290324250391753565531890520804748702162278230240036467743842071795203368599160981576807011595866080404988671061993375212365199579556726573056633023570223205911244041131563392190233312159405073115070711149784062727718619243609950110611388766256253846831709072227145418902754495593338447757561347544732623381953729067675417443723532691315271518550544774428250068125817041375435882465340272954684345310613133680185709196057552469060539212728025954774955467290081457362130111458757352061711029772996369019493047463493082636511599211484503677820589669255665031501557590165851691315887882742373682321857190930815800273488056852546277799228740311238140746905168556979568902238040575865455676268549953402663830729756799487354033007351913902158714797650060071701847382541539303431927539897215419985058629230695091357813207275753207614944774285465953761319223182035115509557083204587550652127637701186730996070756350153266725715275856422655569332277979378345111612838452562022001375858928065743547187277026596269237870837708214660157020203511262173491233421678733339203069601758777861969294514310779803575865309410732639259251656177702709849491752739075969806378216868245959573128310335448558833575545504943347643208670998709115707965646964056348194260648274746334100304427913072965465154211532160417981182037722707205404353644213995211457188161253658227151944538494236805528132787229118228172132830449306060543023772568820243727799848616141797793502176232292942078657117492236657432065687103783928704464259815832867636344459416877545431442116106918811908836289663586233303340448052465178733879567012532310854763658458065657948628352097366780646348697611623710563928284775389179810895902204790271472093792188335879426901896767589511388074828365621860786958825517699883479223942616486495102548678006443023468658224839588644202866663668341930828451806127131129922429716649690252159076044788343764561453476524768579782296848927888232239303712183739245516323553609453664065436959017383523060581363666564392176269425146176287306717714173562786606767940817652901084869565977986697433573773489155442897066133747614615358336666531750742335162497470445246475124658000309937553459693924770685402018551662929652288924729161115550266342040982613897337470552056938269063445736962262631583711883700940664192564839279517318620888242442351190472353720682772273368101958340599114999765318247599360144252271505249721183589078605218843333907437720704225833011547489594565196067523925696494511637441898683308468905342481278507208442058880336816452670656968967621040297336588965603737526654935593352945154825395973057023936206902920579096857553599847198770871602012462455508314721942412183153489615604298168742078444860162551534954344848368900809752360514498767314946918474744583810739086783332679763937565333542950467928794190331352512108066211882219075175975320109499430030686638026099140695989543202479618722821131174661196915859111272644028768666141242617535821926675098964408146287894504210478853355740578254608468294341845705956155879749750187360506009488592622947066185359034463949789274337967063311294738325608270326433103597099559661919246669162318171444287357346796023064483918132829820189036949316168278838935477218144609142392222167098460889991388995432429901953430017350376157251115827609921876337883953199867632179440378306001496829526321471739517751674681828360340609346755783232394357420956150160794375387114713792817420722701688117445476340747476589140222773076148453564035539541930148754967724909746930990819524025964125418022224401461778350669882801916821008949559839231739519933910274836015005813265913375100063588499943520798426927900801436105868073592512355246727117908497913771363946811645628235479634945382401881876397866320224978115267667935115434827867763907833225087621344636252760537759224900163247835320863614558073749198328923032651636165851761343541056135725917993405901955676043815965849576148774662878709156891703197911930349703891445754274589891030378867439389176396143328903747101017920502686450388971686122990241593900326420196542366309508422800529975933995293125113794793408681722091597751176331727281825266751388559844843209775053137588627034169895340364375238943856292795675829594695543128910298476838499729257434074270130081279172599696523257271194357030091285054766889895189245958102811751527969293626811026585422485291586850702902304202758743710080092523285438085765593281238036021277985347252225831759688981196879584326249346999631761980864273434380817629919103698717253648219029235569636682812805927892500690983391747468551416006880979574864382618337097602427290888195163397313499675211899480256503578630067867870332957914476834316918661752237523004790522707832159885813771967105281684388195542179552846470957228552808310162656340086072262172143663969515456690005073124051086681250128189883684538637455261451371668077403696382810711792217960310417263502771085302222847817574119636471646541429703915454424885610186626082416996044572313218619975185668944527427306823923904806377082910024324171718341021873506359055703331216886151114632833276192557952647054005241609025677116284446418479791594917102605409521117107276853220963316608996855295203768374768055754130279741178768401456453415022017588564181103339830842071917906649511932416373743132091657139267853207629600946910506022987436929338357872678244805715649360499672437774483836520406569750938630642993147155972839606169271429248810239204448440694863632891125296958155328920414222411275579019849483905527135376097138151229918268882438892902955936527427385572905098315307223675068444542871078199082213136211692381645740533682352097639046692161337398741182590763341633261439281546762423558090336312525296996931736785900801419393987109556501447940364935893534721622664728699187249231783875734223004823998661804213667633629544282327045628864406159597500240168295391979239030957632255000132734322028719872095257724142314691230627074320958167225173749457867996240579189570145617484063598740431450967223542691709092734813094904951466927828942506215805130366707633366927260677321348190553162621476505833514387101333216232627013566522481221110055726210090730365606624400101327624420329398199532415235737640100781124825642607964995249766736122765605747857660767173346104044174392871450132837954811779799578449774062718621393641580412741146567804067704947045036143156254977385391972051397521652066202135114791732194126009677984169394481184393087423098495105419742640368599544759720557768893677819120952447729226283992963730818072257051098650259274346644140253866746078508166121447654540338650443546336368606376905712809763304546832087908747499997938316063430448509621009399201817359568459724555037534030133901368238443810945882925416146383256751126879071443689819124853060242542293277837297093671741655049618374292116336519161408078131264382638613446181279795006372903070501959988162971298892850242580994905549983424290115132328796621625831902264309376338479737828533963122676850601945975540989578071180727715720812418097751147252478860175506079892142453789726398054162238817803871832748846888800056136991933729195524541895119474262154137509812181405288057198915002988633563840554482108850892569459940520120167438758560824832308708552810763761382984512321236426752642316219603810885093639966295500215734058134142547286623628963731918373690293560159319374643601707115430910327851936886418723795277244499719696958209146060100736641796173679887612415203928734628222215197580799531694259397593328936390919357584870904803632983130294945791467363020607172543990713290445847990141913171720787510254682567904519324197179689249770468329180195694423378876553556672006446954787873770147617192412482723557311717717693660297372969062669992031334351056919797513930685266936039842714169857723162056856675947119319728660782468764382258532859383572516287350213362546327837797579084164436883598968209375888876514351331921059398443293486973537040030780549134299200437710134551191736006705809974439481324732981090095105023508896981343460808357939350819511934469893075701114452460144821882826216743071123353944551364217026706776806776067919613055350396151790589373474400283800447961101191135730451322795020963593425616783493638639841379587767547473040610867902787339128672650989231467840024697763148367520805996304556100724014559169312048724385773419973529766282326389926151722660308610840510645886843926620368447930002553654287727702131721169704923385895124006744565046465607127516743881612753365038398006947837810687036984238169120678048804594135833867126349551218288833478881629702024306555304339642167445084906338691593726104613209444581834786279594675489673270468564836971781835560895746663920450627523065688053209838018247697484656301760468651769969459089924389134987494960193873196862841723071327855961742132061620627766832469299901618238124484873293244996066507944290545438023969932184668767875313590899058707679224058910093468730085179498426183535472595012419858352377132408186979154405782737755041897703854581765663110553722231602108021433957615321619381346979196643131021298409749729442784564044639963272180591157928923901880333229705509829354487108900067193813240952374296253338224227432622181732427387232113301687712820581338082795036536667502406218286971394112445909040550310153145659753636377448568584598733238632981453500390287045366338586559642137557687881804343523230635438846455255071163713123282377390885305829453706974798627350797124245769882936928489510005550295028424447758119114076323315691617403603139078613073437001115410949591045642337684635263420739098753845390772997065780677573052904357656672681076507699216738123354936314300867366270131050964773905640424940747320619005328588235943819180565777606674002015516729873653570527324446904347662484423771057891112893121955085736786080406912055730491236693277408169873834339230410288995093685491110140791296585589855720052550575210049973223542440596098053105163704715507800182714757244646951392113962258540785101214939782697071046282263631773771880813957106150826405863440604928433284141706680057252313443148127139725132215772562920213170174902625860416902653367376780670864080843378004205798592765139062425698359439112364125901789060984875729344679841960701560979883701513316368187657301129432697199209219195032989446046187450965481486894142574482654223629333375203238797409295364245194145673805834083925589832687997601714042974405069134191494158734385894508084421946390367439219782320106435692170176728579824426472330655390888185733685634216220142709662806909795808732881864594177836027207221180252450144682840319873810762758206737947234438646888419366199596148479302500923530730886555057795893086727949460359878706286942986763720553649114641554046820100477676628159330859544671770915141848581412345676436018031529402478796246664225287654905218043010789998466278049068843048201399336773273293960985683094319594674466802702301659548214601285940764506213043402664772961580976502172233578734925741169989860140359920213238933364058944906729760404604027809161162369792131837738650249101397815991681676817608612103220596149137874366071153432422048304804060495101932424778043268560199196894178147438515001327088329212174238225203816813383971757871181725673767383797608293567751488371004945089124759344963960914542042225686549261768264284817915240893552412314870537106704536271408815722565239505619368508474783349113660726378508112592947672451132601309870898835942580972933094457357682325891124757600378573523144927059150818886588262367529929900914196299867347045529245469139804118457317616582113715751487507572138861889171093551709284872144168816905803771592395581996947703378937033342978728232808309141558060029021421494572894505001376768848345082489400894192570275751792093188315122651657229780066188581139273693024283013001794017933007664948643236358221493324841417930710647324827967439052813060291107372124939977219152540526850058176120659219486709168461115277256794476790324338964871322822292326165571757862592437201830663547082287434683379898276082089995009103453927265731303234036530015079885451861984583451459965026533976333279821186480451363257752260009324241855941971034476258184758775523530803309319336533748568341082843920858106376354754850919035693961217642219795353009453432274389104821749953269187624293227263900774704098300568180222869526111349307410855962798602985277190958653307021975707068228142214113883732869887729568258894018002301690665694558298306927731400159623542381058842727060943931814559189344358177334630701512997049648681151644873946798800667329005918187182101719355614173762977446438134851885075687195814826620464111790218724980768068136914991503965476893825175604142224632726196341613807793800095691567270155559766113276542712120027399469808337274305302106505363957955609872664189456862038850338971056203859061682617266245062706785371677659194176095034123435133952628825901206647802476849278843457737322871402759126509188257569156154036370731286105984709751713631868067451144850674222064747241583515503781097857926855305743868406499513416637355630803709034432912256716151318545035128103421997414401115806735718026014421773283752467210773750432841296724632154749512872243799095350335080875593739331350170918759657614495690566198974850654631146647724310106510163225102647694721617114673153360189254919434814325218169081167349205638836150323252984200110383465301087350723958743747423800213576028565394540770648159133810229935295076911779251089965116878984494901782958293956363762703620047885909216784075175894308087959968148150857702024485185367162410173521630013681956340551771846662086253373532809906430431315399161501201770333570181577570011314942762128428364621333757700710700802121241630476654146361309013279912769906680491230409946136168744095767240566684828997434291965828823655756055498209287180136302129854110960555267047007403336097016344326302527292222252920015318101444242778346135304667815361139634238712276970757105761144411968319879283894667497717740844987423577070251989986999957691395191373394883078109351457501636139815092841549372229742546627420051818806903782232351829032082531222014025930668227035433588556700529530808085316251985126953494127781899827783371255524731215276281415377422629643471123804429202292440601180958392951882298901833491885209445673561802321782312105088334188198426734245035844977339147804286595083615583280907495155460658164860643281679284838497827676391192628091676344903005265839518927158566533762834504273995329355714933322980023366760228182393107920129221832746715915888339635598525716183507387830298677671986769829007692681664604871915775373334174260191042092242616854601231030247253230692542009055601913970062974636139783793263594755421899818178972613686398125789885491840578738296063483703107621019743981151448948804020205824771795975734382792568852890303768277702411709358874877326034229356367873735083721599668163984026369774896079058857149270631123873671803020691518271561831033199772266630083478351311686939702140387780026156537401095371270941326816562016786065543177180810352857510256120976852829682574564586583544464386624484699232314837220330948908098748232981437082657059737848601612688677266902644872948209304174265151580550664883395774144274224732911947025491655874784421087016895205978155579886259565614093353985880837533321105507217046981135822906903175253706156997012188957000447028285002769828171292809983024864745959260742539795577885831272919773575689562108623553069246790993177557168468727192652500623703341230676536596744981442349362303156287343270066088059233822567685917904620477460688413733152543049647966566408444784948490384157881130137721221193718994892047643034468861236752358576802934537225596749494733760467614540395028127045183294060122193009337031047838759188825430027675841152403712223142372794925801121872712322721903480321929368111075506165147544587758329184185689316703929665010454692722764280891906429981799271777288372463482714079596624816721852746217953093048756910122816959623072520583873663438966723550957770164361363361222666777619698066078347544594664130222586435520068371157336585178317826908582625795420780955834219418526805203346662784015707133822214351334394882830646724941626345005371424882766400758055988635575929803534688293215681201673145080327201303706657962966077812758851106504278528042873923219168857456621319400938438674727603917290717603358887882575747960497918252806416042230277917568046819040015190832746214501209515030215429512063728559502846844255353946366447147098996187036153852202115496510710494221862625484651364295178584489721833935140110610402235397293233489931182914562877554083957041754037616241224977193070273925170166296433427094519528478545280292225116342947141336478446346730270145842396621135869808725412642618517597850720767410369171704905702695096902016554695086567918284208075066515845637199445199663437542472332964007674644203951397592361951998937541127309936147723030711105982988676214415105742598427677163586511481365733909429498699039802385387355814917269210270718729149680930284353982786634478138164488748843481593693003699508159324029144657657030515117006389860301404436995318616612611294996516503352521880838087808542633596889318908063566228258904422281260383043144055335345857613775238402073412647162313863934848806674878733137406418855314621724850829042418529729126460619325066409429265324474677769021808984169077316422009667096895952859960582030400268839914723995535377147089733884787774336696458020377972956501521482717193309633381090308634176085734976524245316787263439336929865767258909948148938108842005497316565271345938137130310708173498974514331144829689779030411021469552473772411286536837660049469415746451782401391032798925238635663774300707094773922550026556708018299928606234148160640016424162235754770383393978390407829494536380537285141476466592839960535592365874473490125812472509247397515893405023018658756759681089769093583895897967806867972925835653659760341867874101019975877155469022583214188233353477211001159922106029875183577953504599266942610432588388943593957895392316208431368488358464984542663286173721762128910742867680600405372565663701382096591427704912951967375213319255297820079438829086230901241191045081881205161743094674410300227842895899893504395161623140468563762906988557422269530273178268906048531041607463261506601995659671317072887530022576406691679145489961038247827114460491086113855969209736506371750124021032022866856359120398129673578911107062293908601677081929447100943926637717147901483680034600626192538934645080379514135022508161949678393761720229401985790005384496060215870376697328535996906950441221594826157736803210089969480623716195244912511125433873671215646672562795872640252078221817292245679964264476388640229333321588274818483992657089437223673632503689400535018641970749736860077517561863207982881124269941442705906060297880330273702452613605533824086747616442894315436308062700855108745989149445465334628514640232595983604359731692596951730429985910265694950157750652450095378376825298014798177812417037584827020789931537245686947876693059453938286875053932423783987332383859644466262909254891289615011858754308801022045648126914574446629996389764649767348616227072753978616831799253207862717777215227997379690742395009418089700523571522313259260558750062081618075833907785389963272317138142382340737753859516013889636184463563576907585749866140247101661632853017807860421296763042688300814635655254038742658692893200722989702929351422709690516372695663915986151176602714054261799467388048253317896556998120341219345348960703852072727577518081601804992809114207966090219156016124423150667808633458779257245750997863238729332549551998435027026572904175929925749803469070507201491533942235067163492387277352589255929502904466377225318629814944901202560581516771266904172886718922935730466882280794995325132731667572786973057620801477847012163518716441093736167613154108178735548703294423573184716957122152949579648383835204309692551565045799720182298471511744264091653925727847856919947779525299552224276598916793838772679779808694378059073671466763459969783281274309407102481286634930419245941308699574758712705950252494632693201194677033388542551902786570590050723510328196549061038595900088093893094267868209506475250586739860977522197451467269924106736008930941539896953847243843710280657518370196007231853782846864819158044249828349201564027225051561344960286618229670050226603850285985193038847928356933669588191481733746058529604858790391376574583955258373415997620149460757617043068754484053534248651345737700548673975012929731246458068975106178469637649401659242669157798109489345136743265939174791126000372955048838544035373741494882089218003606158221996239762658087518974652724459962726023514382037741825720801890567783379178762708719499857712246292774994699396695428240572262701871186120557077051492190322499927282570288627933865230483095977147868928117102457255074206129006732556235261972878719287831695120553175596239423445059815628911884600253173519442377788395282584143429956535528186268346735270825062292576463222792772884889900635227190252560335057454702959803042972399171975106530010956941717479665330499073475125591107239265015185880267475093181357254908827009692057736040114844388022760385214966369620808986613419880703557748246715398549590300041119207463556446634770008907259451169244219294902484365996514705729301185037023223407240785338556221777191160263456854817058537044104667757647859746734718038776971429458821579193512818013163606466255469350083213612970641288738712822323127823995209112286359365526426517843395169292634749404040384196161504684609812224608402067761865778683132801073491318903552542653587825649726928343655873274276378947566630037882543257013818231401792020787481738047697220958237957477466907199242769639537803537540417920996737774899790653841043763587969481190954442385400447727615139012849758002337322632563997937669758144644491014254215471578814379549904944414666630622649931631339332729511923722192649069320669080807029708076947290248806586847603886141405117606246199454044799429903919276985841313539526481896792781981123546364118073936560680737520893221401667894718255616138770516751058427875134560380853984243659220993957551013185632810192224535402526412469532299112785075002880394019241199602336993459765684955666189569297441996046121856635435164434841992219971957162073148793631658639424103472445970062652573423587150238522863457581892533297648933666602226281836675338849234087897619737241729964847894617966784407623585228104832823813955163019934137400930980757511798944587814138884723225484063431830975688429678846272339396992766598748633274251284144427752034851115612085933917597470388979761676728497129358944078557085613248216513536871570594625684950832146803098115805237928062537931379701226890955410376860524297167502808135215561762396646390995676079069155760228608707212466885071695936597102716443136841439010183924751849129878497613519891232989099533549013080128670310929995996720725030527741679759556486929851424804213316369821150360995830178539435433644175995633713243710272384477705095611190094266924260630106923952157774923024222890985387911121437503637301429636459125938173683971019172920018921785714396213840301150248357193640493073946751981527506701551962886673689342253920446234730081860523696903415565097070440396238899584681113877105035020010361550180913777553203840968525820641840901124750692537362273158060307100208491369321972132623426114871169447259737323668379019554280547474952364984797550967779805484622849325441439933895478755223264858649197261983641776893698711783117781209274435480835537807717592887902191306389546967715696324703376553060042090596094259245475136092504593445031906753883757897655227336965073145700879119971331995265504047812981371762861080356593363349655895742687389618931859289909318258533835615020262085032295924226136920555340307705672422101588541838124721583234421118957981617914685599932330284359941767909676254531963064129790477328094340605486254205232910412115495466962776122018776375401912614945734712266622265787959866014061914115394423842883527871147187562874490286974006901988738334115799401633079537445532514457914653283273010221769054138596336120523993288261566853046773166736945287079444633767048204526943874538027992985066321228394744740343797994954936556836130569412442440629604945149346008475938754353834565257017180418731305662302551940158682708198774558288534269787950801117626646226930786320190159535799207053292703862581717616614969067016057038168385328880482356179356515528127750715636807685393324551549179772608962302804916371415804346224969921676429219762139112092848135437027307594326947960935646341960446695894580933555932371842363135215859234384520156577716509144174057459364805938068368618915898703815892814484746266286758868842905266327448317216641879177989251573271370062390173681922758084529517677027074325198600227713008270421505299449189296964632007003721589909858420107691902863272890945999798849792193892186894126569285600035768844213763674588884066465219740686948550774680316133467096490630082929338509524301320366661984422485393730313892169399523201070294987308512655857223496558810587068246402495670760629524533928041259146356167824580852196632629128360587701245701467125888591951993594353456515542046540144486065687767365393227112251464702746322301441093127285451559448702153739198364261572398413288004012022139292059914368947668355806834366707730588663392959841208317027794169406975581385523047780130603117132724175183090211851759854324664699121693061425255256282994677759918308857054157340741183377467479383308683253446590394224319703817932029371429432177107433306266099142851203425766775648689404436280700067930735726110636400369162742422525792066237233317097368830803389367210107488273373354101696564513442231416786242008046252041706757382544777181898305376044673537209458246681858347089283391565830456449637215177294251504429008804616241554225809578099904298453413557810698911700846341669063785488026031375869097570810743988107195031355232383437036259801117634650806956327296448011417884366697125693834380452000558778766392464667260294503744562108713895231958239687483023188594639921708511574738517773879705783259352216702081848175838785097291166334055426704090593255794708087365694498828031997503536902038759407581457513099684160757670189252128125957399007753776979898098266307064741545428523442898305559354536736198721841763649182362025709887187517726197332852258070789764793576489987863894406646415431250189273990138744648995185867763176533421962366663285123422852940327636155648812715452415895865422672895765830536455126549133378870692788352692475530465049746093579152593230131629054048902191366465840992252483091994832372706912343344138823699656205893360393780873703745217519172465128911248255688613894802329815320369732125776357204199054380158866126371741732948442774707182368933507314695906231824892246065609787350276842363926219875136606272041702227329434862775917454955151819891638834057274279992355476005581268597751812807622404354135890988033633459540779865535772778047537188805653383720634381812619327751413157350030911374511302473657888215485579213034206876102831283178557086068296917243581791477963346595264501098095016595383142764931668698074681867380931195981080895574143713738829792432031756132415990212706410674378216556215926769729428184071875886126485010866997056805458281602718010456097344703853447678582739300066797514602472161637264215269739790615585129571337354477390235442018232342129375104672062914202659745500363605596574007866640050309690266730738643847045660761055921378131107514588686818678433721224666523302094103396499002282302564945343302828439273620911409622851353919927242708343647334876823421398226464176543276661122721578778357764742762632797313010104203659783235119871799758710377348598310461417957778972324966497589352610739583244948397923726587723986629736802833069731468403728067810420761493938608939799658215495993480028071192903853021906750357187444426926798352077853274034339596635676122251267817206707279223598217731831002244171100933195200676190488595461929629823971306995537842717394754671152585507430768175602676395161191184509024219243980262239346495626950372022891520635579537441741813263966736444900516485462388861297955626188867969500008350461448065680917241149855739649568541589855829065813399097814011439766776478369183143191844669843589509718118555260781546586900334980117245914350671300995566652996521424454452872634844755283859894834195470991451623169058019930205659078657413782642720802287911465038470918690048901479838137979591077353454555753393094763519580244969537238487373296111663244385865539350135263836172991316793529717861692938134815879822378091658697774917601033358754885629946345042986214196311010655170449358165639588937370063282583662343846219329121821133357930691196511852666201449364262789072000361388540647511532000078471160868776422445646193498254538306913137715182267278691762633616219237584461650035729459979270873958625687195576986066587420329807541876858970456155420062793470592626192917357648142945133633847375688841279665770475070678877418840184378958701843010846246285970936952023731262432280897210549206360446863565572802703365332800971669092764964598083452877506001242815730619164093084289559725755247197242422039619692598245852102111723029485485389141096184782456951257991414102122911899699289796652048144559815772855706772628497934351202612273337801765495030448619187254017823910000790891952605214529743733655316515845275158287257205413979291706049967683295412023134043547217225448818129149366631902978031876511749885947328220144038352332684462832884619010851794926163712524285013248787239536068847964451839839452149047391300340909910522570336809187093709152929267703921289024157008050991573803301889985258224740131391165077128692210602323627965836147578568009608370397466173985355638467304966439879495928323741570164265891955674276899434061960777976714623303583823575795716695075903751602383825368078793001788771726953258935471879813231527685303799026064098765281860940184694371050987039155700385769862834871826992643413085820522505574185586691649238104112334930773952169926220484757535052886571489056741755373903352062411459794525768681198603563430288880673472937976809621495701824953378012774069473180370461410379169805509824965208782749246383024380173836439063889192121157403979536149356921588887597232745511091732769977093720836877560051964741728869605328324482742295192783676316569022454830781129463539368837847319673186323594343093670729621876708169062825982925920177231951202071998452796302160094670229649461083874444633212200895636120766392179083182212763883578031011766550089983039385886006846602774795637307313090913061334867534286137183920968402107847645197545913606103306923096777290996132533012474256255298186212966345252220563358547990013715468167840583966634328233460054548744318657482154684495720066252042250015447434919330403964262339503390543054879532524984824716168608746999323965363908162100405459683752362442988212170599886265674100856581271105482494807666523836394467876419203231896944947345920098581380490125286302115636165374858368041872078447335532733769681091515929351890255658924316915378636348639973475290262836074717229154891839590644550481482775928700010887108045302271025283359407863472499679127346850306479237177053568205698419914313569349354151507311519124941804662497824934041477004272072458998173482793436787790681106534227123889863099475144071943172098595209063382553934383160244030373889014772417297547745858984461957947238513882150041881198111192022276172218002283848603042274889558844146970542860609354102944222785891216439492524405827208917913525051031916841583249065863313361086496686669778463273462595670001306492684924841190554202844267552264958413931949030909735497806434669720623832441543351351469680028389550371994375715985160131395951700464558067852921332354528089726308917180972313640541136907912437066527543434854603184273155437487509771680294465159716832159289391320928512870983553731602919858315344371045363304914986105589494718509214288187047246990433503658035550755293848732418362245008245293343153872689705427594775934680696439907851482281539195036041828183656923704512798256614374426425412523908309347202975440366239433668486512538240021872999386151229324160921491458740792881938625262521360738613980729425867535170865016482780524618021469016329642811533459031693113100726349013463093252688192517403770361326925171787778427570285459582040125846334791436343992467045324839469360482559011641231218540064910208703810761651851075533665061498741375653546632705297863471539177441551828032912270409182890408366069331148189242297087150725312197336336250611938019066054401143741705806564465641382891407928516760451387485310365703986395220272568226000824593111241722358220974958322439073174842643947329541948050047173410787424085746420873024152927808136158127468535891226611279162250041102231526411469841283450122716355830381836710796250610445262761400181177816239267603221501982715748941203536226935691545699342173045930090824638658614036133533886898370763513371819163143130886904202563961982172899797091415000141672529831955054291690591401261780646788573477317826593915951245194313071466054748457671893515232098835358324061813959337071868990403278227190063670120161766233386331772064258860783631358035587571516791616695715966688145379868786429824585071021596768279515017808701095993678085654636072030135376807904054834877189691668110559693215469458872078510208233185557462558805483115409581726942255519581703365127097288767517946037459220005280490326647335231828191021622334506564994158966561778292665063870193483266866216499136234944542162996921311692182883378454493181034038907955809818744173133251907965879264224247591757000337809201573341724376400302950582995718723008966700065478949047348943850701690579188614172425877507527230397947073006586080988242324997830512431990023522846635187073397703380463864182338856876724271975696072873625459138590228380226373255699741493082085386601709736024363180561512358691090504939010241593186136149954769444576481799988259180041872115116394105380151756362241369074314508214337019615356811750614479496386693709278432000534171103934693616643879200408706275699962085999149176776177113455295982646177036257788505842313939270425445429740254031254451061751794564893074979617077563328033550154921727399116662813023711575487780300637878428480386374156130851123084499069802237266592459472726533299822215450545306305291902119296242612731420941699426359592881121831808310370309010472760011749373426884455914033305828395210537040020492085247548041073689228439801179252924458914936181285036690001770521330208358304508249575979001610876913224646527368887284364836430087225668393264103221331433997147081169505136134880916439415925275095340121358761931547387034107783951823322771778949214897458456266728285625912319667755222015669848276392193484769596255428519321949275317090274649722644858307585693311556984709533934477681594084970278996929491799574206099954777822236623103651451699293153458538844157517232892586141144284760283619005495717000839075825750305704051120577530901558593989627421616099062506757876138588645635701681913733016275730720175578360018775528247658166834282618141449395585539156329992890690814642800486663142290818271729052911007695606777815136225877603865347336359675450536074870421845504241549050465264597689035939625966833054377938703119797119221817130285422485437914741814696683659361185481600184625847635413751352308073037003654547682838029608036867719364517227307580206891749901362377994778664119193113744406820573233592527177086910865095101828850550360738070773115305150905177533505707221044415395311029579347430022660574338123905907848673454432995801284374215034954691037836531431979872981876178150971324154821954662698302770735672499330185104573971045793621205914889452797160806778727598581818416087731416099632630657574612477013298241001474538206598709336348798657898690418155318905603283967093482935540563176275792492199001885685982998871703517259993203273013297981226885135411282227230882085871477061541648622989809432379013869536055996028290423216148525346874180203970517072604402817698676632984107138871636829161838346455116974723975645407543415986083880260322756084047282927766688092447565618520920049923805724170943386256511808415146936174682078301911504536455852611611445351756171306001114706819186353166991119841566141506954061166013563204575050267362987047445240137801617084876285398584921672595267930931328506438575699375814693744303041248099899960775883304255256470647987265380362157681903383058398993033625461716680127162060488078892955627019339901885050644643367427885205860280636829272697051309081360702734744764002034427150330470432874360754168530104146197258363240322102036666422360139423116661382789116666210374413770194906691928302031942118454316324823229569557698026987247989625777428815660791717142158779870739409080314021449068764220241693919584386819744458657188996133393726879765462901546282829448392399758604235779296030189160965337217304962037634125778649027026666712361903520929884859356757775895929171828027976069302829378961358902474515664594952582670149428443663586256761184776959993113304150304550314417761701971869523069422540350336263622150829850525649826161589151942373173402786858227075891373695003897781617020537736548654768790639803476933162062386718057288764136167140399845443662312756317432331677982626412385106974957694865810956025849864714417589288121141334079618242568288583763088499611730047008757641647614598318684969579734211007498924951084013531087180410648657066682761427501830790312212035424434087275910575865630423007688444784718452618914342781315058968248856643407389146859022949140145118723814752909341998301222387607627329167979701001742269766494963969153522385188495449505937148823070980714873764558966280114307874253182104717004966359763050057775898658326686914774129702223518361146566938881540865903355285808546199852966069520049769905099129283524388927214202482405536707486205744345939225187947177374083232671295221315511519838858174609796866227676532152425795185723337852056161068032369944667049703912862229039872760136003384028333793251098198948332194655345542542363156796004254199210205750800221629741862633626615984499596354918833565662362859996043898060149532282617943439156935342913931603468787532308714508797556369670393444611940692766133888247653602535787451778930174537219839647886115336865846090645105569577914553789574854195202073369757975404749548888453431179469750054305178655226617939240452361215597403968842432967377622142448273435478842308295052633100459405185236428172201850530699708587735365756877399365070971594295599103593757686773768538349204829236932056272163872034528022852287751912534971852447461748373086560912816254875132799124305209100783861883364677288843228653525720637118669904282295931593950066907393109752746535354045841946996346114951977458456439189797992811360561534154440737351524050161851980777238278350086963418007100579420653501727318386714630706649035359670517306377009392358995780981200560304891262465407149913225866072762558399754126235103558615363621906225401149887220869587783309136530784880493150570251389003598963653659779020996905910606784281163203008206878758882755130636952171351390455361870353650082600313907928952176254810905099451387598008532726316037300689252424681840558452585241658486339848061544016508494834695548953588858328289943028693411245030455360644537135551399968152923949314287272879878611961667696908027599807113209596835144496127276134018678899343542111301219653963595188481365266258762582053703332690515097707326759017039878035074711808928805436968646715591717032903234710093051548767384275913756197204793649459153319211062293223628305024100787397303850868468116035556250908950042040462690081412349400616649364465923935303444039214500091024609844723839563201606464374831603985788945889379365312500088678989517840146643083234323577489383789639068876962431626756001982406325514478968084226011073841642903141140825999193308522885377630816809505429693474611723948606056061478545811265584235215190626777843777434148552660587047659222964542300657425235091917297238603215337291901928446627061320706100464521466166678585514068495360430279753614618580487708358899562879699470795288175698561740981351350324236366939714129745226950320006795307498149562740834326723404932784415114345588486588959209255005127819427839345715886933662315128380849433063527020940805797041599441351255859306515875750006282089996878876905567300199802347729243755427714197226660612697769155123682852716843141664522626556712945025414503684497632566889285083247319981075559824052468634686707142945073137163734731159662298567506927550863387006226937217209914660004305345736757408521289581793897936978123782148920873722595320221977909273939275075651126370790346881101899591642141293851786565666635398860110866118050439802476244242649876421867259354453301653111960763392925853581925058933858570789034377662012674849900312527365844384600017969114034264410711908566722878322322948619574739696623135051810417431622454708786429126466108050569357314861858862992722512899998336282352392552678629174304179383893283844741038552859472427117466928612288492003088821612014314330981331836042189763352128595381855901210649910995526251771277857198016930128494417979504958714969372961666891664582751370955677926481438741842445528114422672210470453375067203374144969928234046613609220825696235828425155723309047597961979456326396377476757917508564871120262210330785395603450392023847218811165027807698380910075330761377622566004839108214501409579524937444980187861104917688434881658066693090530436577926923435212325345518829586627042795758589905483220437298700521088386143986538693576508805637486587753323718806878878870511380413321535379771882421740143579532823903364305647173127083180032343872858191291279857041393213866826841415731994211628362618580219437243784617811061593689618129433412649141112378215347038574437038948604403937905653778212891799362635877722901567904564665739741309193400401113825776987774439150696714036598507142981100987181905202967771237530295481577120114272421201739378299998249515193216084953998435653530261991741795040035515656513620528281030981731601044539237652719613008065943901536998656833611474986020698351648307175382530288361145202368693778047645488512665744366406640915099308932298466661936519042355231262707753872193592334520415045833511557581237207413860038036341414411060576582781013393731123409791108074921085067859979529315250484482064965509321130791197980583849909746315680169369438303315330328053549672714324954427548367622668594036569068599688815766279333866977744780949986187920184196319269251514757411826535717995336005827505436848353558206858945395200995426654514152158259611282021562606684879351173799801303074249016074955677561688353332852021397711961574000272565329228730979768530875317600938380371753983292425850611465457675668353081039357758936646898820269573603911141559148895969373636689036316727940663962937424071976708836480512566685738463821087203204907798538548675332148733300176977402436685296252424148751410130026098278129378130652170488993771724762565718677605158839071622192461254959375157961225604791139470891558706462531372923836983687349404527471067674380668768135964262381863319821441172211522639400839786267841528294625285661495979389166279938778252818674074093667719279880640932162671187934119188645381979245118982339386867961758801654260386027215771595233457363192287127951495327385068985299449259700292301960140519375415820345265491204784035583487932289448572247863224429414037794851000910471969677994343648981237981312160891799222972822167051685203778756026324147811203873259528242537080393694888197430055614323227623521927777410090945205029746094487760886585408472950767029680129969964173955572400536411918840881735495794521466410840852314156006632501124073277159619429078468774343638362491624978602341455563124222443060929470451985809509553271129386310888407480772899478424621566271315596676947991290021110350025772163375390362698142923634951426707939466026494204420353606048696426457047105449443040376837476544880341626279609086213837420132112015687171351776301128165586084830626619594079369793130464432019294828375176916287249713624189270894104774482477410108525800107682140881667887389126328678417350005177833699385695212084877751887445476018823719207080693942602220701452433842983041523544982897928211053872419126791996894739736912019056263073669990448628608950550875005868423194603812926780841362558992317622560048554106562992876238565856877322817618933067759822023668285183791876255747174388114477472204022780848146462697538986292012812987820358503990606945894773010953837558608204165841300519679978590579672811674689690957101190006713728290021085766532893836398955651334252130157725859145330652134675661330727522134014832767489407181864285228265942667992710136652249443262392189113385011983822478418269580087978527359897313301320143155375161540964614212794937390478976683042181504523643945811770676709414039319421897152284557660726301181323581110244244007113023060408138523806464283847085021234498603951928287107587419591011817805768285487195426691580125167699345534464906068865897254898746604794620260707176984266221796379442713551325356030850100318114485939048140693650651833070543397713999392702297538478533910539258620810873511072672149218062999011540237625294012069037257348028357474326391023749867213675632643508033585039349289611537758903981816226216140688395465902464560009404580348818744658010393713953382882055458557794156640337780866814149834294186551126104010279051703601243097652175289577705992929847687001823386287077225172469748772176220623203537535706446921016141431627058999286431276670849575302499435253864696916460352629062574271424375395415323286998644621318477272138656135767052483850722903258579462495728585760841920414715670580912010363427983743669971190571926858375043859460318350800642063472690736661436676150847283490489267685887901300003075205591371369899408729860127822332804123241253451851675507862593758204820212580804440987820454943002695690207652203087340836561278197384703234471944715489316763349034735674368063794013209551749434548713435733612132110469104320359621863594472641194696668670876171487186084160757883639277723433413915397736540149166405773275705026955189625567886072104708409619040229620509727809766729184527095672109995041043913436952067126774530088855004086808446795693878338109643262499565404353680429809241813036884659804114522688985312451222973888348332903008219526473605271075111849922857904040535258113688916510826540432428153852030695049176208673713536932453821193046281107115873807965435182127949130932237371960114889647586253873939102649789460473130977310763624837469985980653665340713787702628582908718183820959565991134238585650259507610389010578298275316615325373609818469099543110029421477420745821708559111758577448756383436719182641927580405664427961513944133969142005084805573762512039847728490099096123177450515376150751260786112227852792946954715020396996459510732964514671488388526658896484564935781334638536742904814295354911366351289585648271599913818598636561876532135832331552305512598170787630741182099177710299863111462288335606618199895013720228295806197274394223198435136292741117487425836688951512986902136767938394433939276147693491527766353687161557466011814916721592699950225829888717095265698018620354465839871450617623702084024679951621599382242067376093407139946067392094869388888835261502469149867558320646142240650083651598927920416385524525848204826710672524975477606451502125526703052354113590403047739751515952016091548644555879416253885181062738542364761592551729588458582597850904987007670254365042595704612296558146030699562034996484627875311703257668532834974978401842303313312081761867908986524352235512955616012427939573944901410088036377513341671724637146763749493499387920687730572633267459122664921421651528811528719251813621828800492456464204904487782715570031105001538089501815479298717919000517756966011446792440212616302825787964998266196483469098894530750878772636407722729856035521455136532029799572400571870029139251467557544323389736703326204010058896086869820751363715473144374180012027664177833093094169567178574767720572254516635393761834045347869700095006459208420633751877859747901872709831859032491131356659089977329277477849673523502284358207582516551610790986484881135631253642849581375195321982292536912145866498721674874486692320928904598584000941485343359850166083398188012476561188003099101701613867598264649237068302863642222143128014143773655249695293692475759437740036140832679833832401143532161544361629848219017539589411012123535941673220603354864470073657769797444556974335864076573325390427117442610871393289615651840339670822329623630212567949812196856182002972003911994660161132085507496954514266287217170692670324023175888335267498151176422344476251318717900076117261581677059553675514018131774155292264256178302591697768745832491566359228821257200561351971199895076980068141713098959256612609652717042121414287664671234993270905847132775450016511272182543544172799196049839863003102933592669283711353054122534826625852860886573233552359117534671536968083897863206321480661278363203643579366355135781749943135017706031532405006409226490750685389825800107753529993149792171580759859112934453913073242056482944125296760025181013487980847539543803571040785104456050970746217197774161345657837890473171938737531701081589529289072935187515968352540984261330143816511788588018192480191386476491405587388127878480829798062348781074433440103459159076234219012522573912782354864288903961810853981837311230280895313023764193761013898944990491807935702882160159494179242996611821591179853380212401117357666894079661710407916909187740743570545448560884396403405089918883967081772870796210404272913422106948078536829668748949329185859510956922301084622364283770654652044791268534368434557096931621309577683632961100881504839519197615354347842818466367164103630547974188822667197122851464555599794813125058111226032795776984035149515186352781730503071075183007238340573971242318711284599034333737053260460397609279229188281378998076684132172525005636986016008501332654278431042753056387689710525831536164324094209263411147052086521356591877710165330626954868100941879605710098270665608867178435893338412191178494707616569802152933805359907721274030319403437417081308323784876105016007676665418797353795783650890996351864068776871288030446402492001991073524270983574611786681744704361642462427318248130718251082823759241206053863669114437570368987557633386823592464650421857694868896406880491151389838221135263321132198059413327073182226490260714950593638894582703013721110675433468953442772994985278901856975319087856317007773176423407294387963061294343827222716444479974723863248558391451195620301229829530466572380443293077758198555620034403762485119439222391860038840693762032023563164905334522740764990297546138993904523964823821326173290722115076027819869504675565198634597145573046004665610092058153878152603103332285141355564260501779123388745230164328609506450107269581610746227389162773387921824460859522221552829596652719935763343551981595108391563080526614000054477874322163611924608435865186437547908337522137150485275925819786962951194797540161986269225332278743842967513423893021613123050395126887707560407993274691452701594105491430263184423844641392502328278157766188077504271408848881040430699827497129349852450596097595267140594784442839589205652991018031935035588319920586346303548228551194910164162634724283002218488247236335332058029494381009449644636545348746834702006845274504961605566652719770692156963083385746551328562585784870905364408221906483786550171546006090385842048098578539737039008021467353373889778250368919153423728799169808485539955829893937648293350089021073173450223410867670045025889680005599784181354384153825478035340982640759335694495888834302985411194632250856396571886357700895205702331008067210782013576168238252965355362736411082973790774967539672665323134694321329217286675506488074251373080211290737650207827160248181832700556891217160400677111967523860992868181393277768645635380459681155606253207316902960872284665563841895774239485399552079339335239123270254591586510472831204417658926602119032920362872313153628605115812110713805434696406829993718009191587114146050634070973153260353198329031830485334276961207529958353144491945172341263087689722152622299110576534771624497521285910885737581165582784704269419457726947777746486176664255137404219651997218094041419852153325862181647757013528054770442018176383826287678615524887757642597688107803673164787721028087306166545996914643451065116051095506617659939719600783587201840161689668403984339877565116159801440287332942524656593455440630468506067998922988463246520649219435459772932051770453600021786586514976271893481500196806600337518519858212749105210510787358377753801700088069378255007045503020071622501250851982598679986464433363186118538207280188667360439334100346359241271453823603726697924447296844812724855910449035933549759650640851814810222144043824893271699880308630834311428226285465467591777644660510178168589172029144250516305866255556983662418621464457543650583234392865209185215163493294734534873783546562155342937322265008788852940862423495785009443870220082939715553598440010456997380156730853355113688033910356907439083030438224268575886186778600321119019152259336512488070839620139600806747529913662819955173298735088581776898804377570096352659597942123498062155661829566648194314287698763028425704772721213940792304878909825610482479391053075381775677052558793091535552594938240631081989611357628457643784038100102795392795595562098665658270403232324840195034889044292838489125218116675901295169909891885749932135275342828682351571204669583279920202420646045130957937494289420580196350925480202970071255782474875835522595405800585568546992858732988385777458894987889891564799052709284218110745743728222076443288230731749604447162479074361342096011982677654581887945314163863428064445848907705398565769272765906461816656239106292470606843989278948536150805504171680224125264154597659844353902031174280637492319168909446580961436933179691388954481516694182829357213066562973101483900864475815526044986489632777306600568988593325521373692202133900042359181499370362979736077066742422263633273227599959257757845296042452065917882546671382636121973666516317922306216222001903729499921922791051685982898798867669093805926360866049355025132813942010880560699504464973556576867000108913953121050744239074297984176179905394817821551130311352313371055300867549659509772697219620872528033637882657227924762198531976624737706985501951714421643332213871993438718320356926701975731541888090623169961897158007461171025783998531181127083916949908084315262271011457103221991921601049214861851225999142752616704305892533018328770820015451269841577197957873197843204811675721764780615074370827019107014448997716207774990633036903204657101789785463290058373637279314949266622570118858103698466089848875172042453023185807531169483571605645374988342291426168599908977685739363620162267520963062715077453617133626692305874844518194136574764168599918721000102072310772874667551093574734946053969422432920087495943565590305324421059092000707369260832676187774491610066366634173462851196908495829196253194967117873395972563897983507860714912258251675973288357980685699429258509749268958051475416386408526439882315125580530920551715876263882218398751469101825086774384174085362663120246818312913643559064258934252188529068354741933954383019819019788908222442102617533107520902885826674956290798244908141585068787761878774065756206920224759686984104725143507903215570870562898760930136963582908372515829272946918045524256048095734182315574274465851433805770238068696885700971478227964042016989938024526393994379259678195951884053082422302187290211382468843728797974640410151825930175206679417057826791690012759749530737660670135633773333941611495129872231733302773419949812883906582466419124754233152628780197919104651745233002072128106407102252716960884351276317247006943862048302559091234797552702407852003250688431769545812200004949853825108883121437616462789763345117253793394064882527890409754762866019677158317867890192497242014688603623369185804535422928853250738605929074646390195028550234121382025214709806941100836101708272618253722743789259507019656093710609266646868024654985678507562750560958348980713494354105155531894753728082728588006231107255112651638765759885432170769903734407331773697591774891519523874598194698079299097267378730387683731896897233141808259957739719937554098949715960834624375262365961875582733372909852907382683652086814650279506442706878580473237292059025733820180381810419104472040959250681591621654962548943521394589565136216716642118823341344466529505719213933157842441972183089934384950205906845537334122078873095895090669998867208812369225648592835469122766236464152604427783911020384573575620206592529252936249154068857789627618031945881191819403839664787884580065610511649804332262210725325449624738778976157532826456237761090883917511355141404932589343059845285702024372762156994858531992509381571099906340428169308507754908284335483960276836167670864443082701421281352748970067012157531857977668689842537577635558482946840844564561306355267778600388921971355458611963693355661790523973144554857047151525508296131635348651008395400979219180540096612885630065697104165852944042605641323486949015998012382105781303488239340269573148219656675696883643130773457126333141818537058756737011483129320027883566567113340416359238588204738340132029693697967458424800635255904331592185568546473234295472711247192719934866602196552483216441014705377501106790047047876918183838952854788914168557373729053418073705624143393099805504951925004358612696246532407987724913020955879485327896634892694331592381865520201825813448928977931023775995595182779726914634817253975767031529879717870973157730863033944134545000291352428973976638430263360850102077219709147522975077502321019009556848634584190720246218004831574325070155857471088006867826206123495554098920852803243089663494508911742235592262713383168296762738584990856295664727903036922371186876193279290105257812090778424894132645661593088290888845622638093391022144131811203606346886434520424264164040049415032262244571859006061144181348605543851681805531215121301102504132079471739161823094312959743665637726802407099117623165635646545767276086572750423488583410276774419236739104177300020982608492745320155358611440524944559257023659311046794601770722892875897105184947609546281336067884974451320633654175281224802669290675670190958646501152456707919752387671325803019519075220920291673458028114941791882922487375903868779675339254438189574545773038793948482201034503677263324856267918914146956882799028954033804168386003764120766676818951168990928922021857536748167774147024076057049529869331865043862528271817133671447308353276417071983135372634079257508427168169371869336018866613116437552687662236935552777386816690426525964794473969803837931786424792660184654315177875056164608030846665601668614390856676700598324926872579957062754876906364618200423887181624369693530866829064919913072084504211075017268464165633512033848445701683262199040351250393233405632170599826264397112379670141005553793909669767929092437269731115944894733913068784438984665479410561005345868861755519934578036900206250267355626851413844855886962303271826373337776601711654427368355617258076542270548719644833459346450682333676572002764187205312466666320813775836593592005920449024871639120591525566751525639022655569050921490330707349371733796500805035166133712715357045106280476685961387945925762279545265279601994627487610693767500131590785708007864035713541314267842155794261154412584357794927974960903192255478148519374045088482109680281153395272693130770599517694615400484649669029387651494381273714025115792165558067063536316228414572009892060024208141632616181617558958753032801651085160349985955834620465900964259700375207834914587486292187046531376597492189241113176421367947564607233024633565340952693810935702993343463068086540184395992910059871529831872998496969846722550262933947074814516124263286790253648378195173183198184015572308744698107895570370254639348230032603615938955042733597404724300743126941545820168642522056919182735447315523558130377047273031599805664180665374788093531820366806708385265144176115811617235352329325509538526582394938311304475410315534990801777827142695407475578033769989652245954917085571209386522482875301538691191772574974514146713819906105607103794742795991135927762941387441065911994296692896954618398200828285634645066749654054853951251999388394576917626067702312920679613223408765116152490511941157192848074446035522792407192497731648300659688954259831031684159151254865367340881882757354426319635966218783859977834000303535660208794201246149977960731090154158594759647735241154682774282684179191646948606544938533658983556363473828974941633718341227350864260599270527660933436347945295301801417277206762229772552729319313131494358677233902598511061879429138222373066181479491177137001974985633966078630026812374694381104540676502415744005723665705402301987819889141273051314184198451424686152369062473749518847027482766519487268167583966795147120639750300200684066251949127053328066873344561235958588747026548605420007833803456595987010494380160183555411158455879294148078343865061051113488659750348794303284446619575965702768383803091548615640186794253982523335340951942123949239237787157894819950898709654119416869639023517514171945094085804160451643826513962572941957215005552766351773924858360049892332972977229206412281033291717340019219687928891970580283565421682711749970175782662268317246097782946509448571939337820395688410974170071750795140064264756061342596238670431794253210018737369082395971752162172254271675721756623465282849655020555776825906272252044537161250941664075539472303914560255004727317098732722660402182370955054198720344002887205921240700309481314965457507588735101358843259703744174887969796322849066112744844207253088329185927041729464099356449944568046425742284335726000108809755479565281848205426749650551681020656187251104597180717631086347434410514206696966429227540891867711611542657276070416764221097023528299448368227310959792277799191581652134198195713344378273099242284318519369336240580179611099216132344879323537137228551673225797816030084198921519944146336038381158852211404428704913048600089608577321133863460913369100421629338582116939166280664983682078744001360193337231182751593662629797775222846047321091293169261906820371710882663523917232080474829155339504739587328922191325786888060077264391587370575016400760230235907066606936182995804518711345020271108625473575544630157389486019278049638253670320657515617723517555660487228195878738482766974105095913510388492017252797771365233601636607557313072156270437221662002176777202191770690037749404936581194555710719029767356851843236521765027820960762570467148570802231152284575763534336626484547861446790711814465976566060670471213539103302255916072125464851399696716783274324989669580889841949139228848658135558091484896956670451612800461448819730427033603781179850306962719687610663154368933031028730077388834963144820601566477836316001621830826256312765253301901515401655132179566396853713735560611696704685263648183015367562351498990099093118349241476879825347506986895095808911983992914553940875790208627085208293911476041055891559796642500602263706588493043723144606660813129605190430124301855588269365671998322990649452012954248281024867868957698392810352329812432560195479627150026851619450258440582056606624278448776119282224281301766793877607415076105120703918732218222270519225496573972407103326505199970833095709156900440867890637466502582936752802107562071369819620574501313035889309387586693995120161996202841014639741713173792071115642767319335876221404896717827373444775747532200967168251637706232890831771347183506023426436468569608487535324303864583620989813314380213186397509465488040046767667920349960490798965339941177807231055434291211522600975147075238521414884854547769636359972955673139270352634100048681406491061834306247077932860723966152451926442093405219634934750254680540555397458378945337237564299690663873568494991422185263201515285493794768018424031394387014436120656028452967240584368061470646103476881095251490717811039402052109695234790627213061794396602360708129176076973223380505286140330926343856868909877581694672321287326871052459140599024848907800411100325136276258235237094117359245106717298178178399905213851512918998227568018662342837697254346913552730095238672378796964697136088339089407863141179626185470959751973506782666698562310281614303599892918342351342129895056748065372595293807700419877277299038473658469520634494959930755834892409680392917334254905764729064593088783799419910161667451432998307845817703102522613584341680336485804696383057382805269601659675588695039005904058531536111602311860628708981083052577861776131796212320056417459719075394115530856765959258633452726512332713524629337166917690315902389026411792407037269735212898640127780148124624632396214165233723453485251767394260203156440507244963765691044391970994070962371373206069489371487529535819538894061033604369593562263384108427196987861399911547684005548908063340953518485587775893142873032752529798556098396423634999679445777890171395580954296603038045161560485240867553418835230997664716449473700063378820345824684558780717236660922817417444162666979591346985679469869487092365990028295275351679633289758986651802778947741875599732442112123281955351186060641137378958793809143760910887556598247927731200079621002313006018417368462963426042171454042614205171997323890263721195031733924691072285328923837936065726342473042718939746745885777474967452170557988030556060578414201001296807387174982332517121897182044276543277460542922562603980146559012793338988062695631625173635205878298361973129472065313583101051681043669919485508150555047569494318034591871005831379197635646194872892620414842480724888453152496353263873941842869504978038104217415068173867912222904883080454021514265484426580820024061720221951338424998382076409573161066892804081546039871980053894851386778366889200839672690668378787112456716211459635242619123984754793381226622828266545574138713768477580453914913399380426099196338091375870333207332347644112280192099843430471131574454975178989550394029986669929182985244257269189718290492390679487521727607646585134529830517580455283867323349336950393204505092781291700492265746098481295957265678629945351104075083728506228530757880673226536088735282138538972926273917123392607473487853919580222878579460285897998424495542168748438868176119570193792255879556356385678736341489651160508393049077432753485310066127287653984610812095615815048796148069590831966348366520274966061785971512338454607327955801813616812946232595402591411450977526300892302127509505281753246397555946515977829300381619242683137823314686581530833843342875626008485599545445244940989772574362365806741002414117175907345764522035178558261708757435166873683710628773436541607315630190959793307445724478037025168883375248613014978290185707182496190160936843659872636312829902813585168574910222462478756739234518040746874748793495945840245369187544531228372172336209430292363165567835955111238478580548761590120772740283325223838141157059296543364208645092396102008882972266719401416152033485330649651263206063607876016064845631063913228203729208532138796188071939911866482598414372131016938769043750158901619710939289223139275502261601194228493855662811106665365918744089315094905848279434733198331051955148185953637036178340072214172992470758505758459533745656630692187094871564963409931691941159338551598167941536454014895151317529513915468383558292258243983620441890816624109324228870841111342907805134406654607585411328939684838995609339791207596626182650722756908842382340651179328861640156258792026970067536917562837037000647425790806613996031492174004778898297914844556217103096151184833143951022581499701302780986068990730752675410157388918950734483903616497774053125123005369456043028522023082632897264001288431022891227363098906729715196798272980436380292895300710263125707540311542139188395436066459578217000217140597059926053432791432687523103174055016885798051068797461641016030285841404251339660554402663342511841919935292590914746601720272295002841244018898975458410836235967477420688313998508125225727563175342000047687678579563617673975150461963313449449343971812352831093953654506601508742498538129564799552928254256223124500723303881502358015196345902818142436938771293422156723048754507544707315432853593207071530605856874879326878349206916420452247337550500544763006452582132345940242591844865832854974085136666253612451346396909666394342371461274347272131564211821835117493311647562810491474944849378816163949059904047737260201291572035017966887136509361949299668774890826413428708540639789415967219170201735452407442128166872003915292891180989181381304297858184917151212581055056767996637935528298155212256784532687762721832523479179480838259940899668398943920334130773387501066627030586989596562937054228573162707637578276210872068961576828618363916911944928203751126783767278001144159848386870862841733154944497761130616285387686515231428656751864979558492583877407504406257076241508474524185104876664868075091159213614496139079851707093729210218662231157115586613536262919679341129210610248046409259889653096651421850822524617817979046716167280522610595492728700406550412753882122958339589391789286455433986967198643017661270438981309878798568933735214494010644179921007435150805591217410885731279935212714012690632947907834548828491138955923573557289152065900836258082089982601588103875800572365771388380255794654003045952961101395921983899963522408257510062813006836206697600780743673283231768509362354671409761702393822945004096721806530333537399402038017271024161957097155078270645337338965008148581601581579250264021980082159629322798435163462648523689111994997375222205738540729757803576589231107012107124275954766062541518678267729739348588682339761735430332178169801007002431091841620734340143928419203325774454381575224500477014115529673605636623211227412024262004062035020647014235665592743407396105946027807897973394412151697342842910634824188967472567746466110826277311277500427996057764533994603116285194559275664455922331184420354413833072588773940661399490411777816279685979187180273403383491152165191043480757744072342346569308544554139241649502568077628646285892396814939782298238602799219761010432742223561440467593851601365092322173977676470408363136358882601703700524954629429208271883220740923203337000286865780313246510063256502332956464903536603843126750025167735060853356884790733491963724368129367371385559190067100594450341833916494784618615673275288140622517783754337511838064270090950632970203634072846324835530000822181540353607967420566998024627640704638222430914721969491520803114429049874539914485120583697610619082953191708878653727649386121970839341678237904527163918686981008408935044269908270134683388544317400863496179009019014177807276251198801385693176261918024049515990354652319825046262222936340421857000259258271519392335728550309308642488636288046462771703614112784647869902343528120488076012612951647575057062009619153188652248113576641931052629471113302546797480824535414089176759273741904523368409765234731415771352274626017123284997843077739190494029712653625675038793068614254266462868787469305217890307255358056370589740730092300033514374124819532181748436388765987128932211138317332530457381740231742927370718961610838590460659477630512060193281808115029972470865608072099809706202736916135898126699145231283541435660255559890615741239180826197366489615489922108469854957387430484663861158294603163011261284101849505149075454800126306279802201631698372342432882968194835661599114926722124903482437220521447177978558570420856786643522847562692544130955721020782617937262395645509211676998703377917591634806484463115411814936897115193842528426015945064088121971133744777896523112624043335698141544265747362622683931116857828325296757444950990213498980407058012408013598189318227850061974924450950310598695879201949272733082418283507644432936873225846607690111769369329886441089900235864919828138025778353012571663931547088933742791035611226594421964775878314849096947815530813783137393488090459232561445592168723623698115895929297195892570197660077733157440910465605244801333474662103779934857886595830156338823609716863952080307300448443189492191802835825100532835914696280553285045519236956853653246541508876458854829986332560144812947284549114492162570466729060144377770577236858876220034836631422761768390270828895276412729418099791263758561260876016478835773026417062088313541364376894604513530198921673515532857073956715718506292090153897291582921232875618053243756878109214496533112095513382202506725894989941365197682248839551441082209340031210099477186383053307892431605489350895976609771810129479007854174554188371882492749650900975644902189912852446885568389478666394022081637799252605565268957941277881413207696936313795607660549155480863360487430760797960278126012559810352131567920722247775059725346962321620353399092114283712711396611745374908784359025025923177372105637313487126466287861994365403099623211217182980217375050763992520497581901921815220989445356326453418209054907027867334091775098527667677245644234422120304111562772456504742170140814516438369814202964017623779738231021316257090593373207394144207860193157918592278383040043506870636296617383158665928568152799856227828235508220399528838926028418032241742230969614294212600830882315679501795076633076410888573683640554582207869372993720303846412035007503172783868887703216181126808965596618395886925057788466866150796510256313536287412452315450505812516246666120934312406189085988770412028075614115363221573673690029811275511660755471250632049511094835483470082453600935114592686940776242234270812756679296938374158515261428681224360605412352610382121176233791085400928264693860424314317763947864786187770419139719106004330559775518101722181983536173548113556859139213084202804614266354022226375485890006918135746842710434515361032443092803099970002950385601182908749004018952228448130366031991988360954545336851361617434368292221262761136207245348401544841088951308903545585860016591582717872539323251206961062737196332271642257869376709666849962740531710608717658183806015357234080562794239899954742815609974752089337084862597978049524877657307000612085147278338567333078766777422339931440565392804408861347951630520726368868794479180986475020078982272025924576175007984904088114726178431668089825681485540792380796925538329912513984160741446344687228500696555628024169665614306159088232679106280919647170684282555055116854839155311839964760212088499069043566425596063080438999721291265437586512459711421083042184492371010081960888549738628515072864904195718695609756952217425117298908945541032730537782998661129174624402020564668297513839460191993763809886862942186348683462666408601753581995541983730828712734664686933677295408963414018838878248675104527622025632823553221469921511006038310738156133703065319333474688033059338413294827809202012915879115276633087047085898453707579197945325380729640987485430834985213460075710326384392860041934468501576261249902963312485785975665328803913878059835957080990425157788385414086646622117416530561108761982119626378818386633848014112277212614451312426420080410677702866997122437021284779486482823820395311982287110106383324709517573071126614650962682926443270709319556622856555516031675109696727024868735358490090178785582463773223108773812720924637886597281654429497153021038910797659306990635568677599277193134877293660343958398114895801332251537284262342012881317910609735383293467496495130093996027552068462384264638270133801447900368619308601277145352084918614234691573301822167868694760952568674155326208801214073668392781622215287821070003344689239214244255479438398297924791739605963654689551498261975736761677021797956592666903108704720217240370956115549155551751413611702249887415570195948262442156634492139589347202265111854589883636759583562138983290653443942156853664753743262164081382053112836481813356092029416565118978786887490175211395962910665591422351689819160463263445194771417249042366100900001144437485588899021453450910240756666794910392809517553275358681365282195063959230241186916116237905157521213152025004244863456768606120271164991249279065429324734447823078807076745525956518775670014016150933157129126082656670374972794667299383795314206546664406289432146143388706316885629610460958592965504629295216894744823072736122133358311778261522771162533014900457869026149367357726800620321850707415253639664480312733940551223934663005989025163292316591047700532718488694189131217794670182529712422643895564686257173219643767172310780386768717963266512608527340977087698966419248862350096902621573763881066898527093243158239762052518986050899403581138736464811585062595962519861807424829971984309347190894586300409812039686301356463969976863619332575599731062689225199944984304867972946866427832832464686563206888623280585547686023636357464513112469922638490611419268447058170562269983003554141720902494507978247559760478812385541534807312646292363011422812605340627910504957504921392997780098518600204050570839626061070499797778552029303674473422173378470617094825131895026276757088093028064936004241794713388002746753557725427562175747181207151350744550279158169772491914066110777157756200887956732096801986726644782491625402313504335065818340926876810041225937617284873428093358683656669779390542376676481897601239479986545665640769250224827738471062958997262876544767535396097020191957196554758171831980706793297105680319961201143845979096575107930837834937032329337085348224711956597709431603203385374710769976831253441369548661028229731062133778114959463806489047517329733029024774490855662637043352830833792403816353553909883498258864756664733235176859185908886921338671670386097128662273548682000475759347685664854816257227935163413077110673111835175147861040400865411625213481015472970330478456060160593769698373102147166474370179945593256280412031157551141654578790283480894156624140653020337326072648244522421064300538392097991191252376883224588646234737121464787106165004783993227592539233955174973621753302269980644861710315261502209346595939607463074795572514645894239940429495119943051086287414340916656242973894137691322036048053006719273356196083241613293929616790290896457497486802596484118819686745152028137566192607758589706462969303711826980082752215266103900577670811659166390896542691517473597431909015570637138420554620702702634408231632215337468533811436935792374877098553267824184951909180397348850058374374480327507007696112461941207469994085886222332277438406365959271668899040293828111635176414137691485939074470209913208710108841194790125705727043476517822534096325001857012168096720269428931398624806432797808538055061518268031018884808088317261173353220946414494682459628994694919706403000959848887145221440449112424240709837405616071519393378561913856035594852306639545500351691487226962882188096104729298762894644455643533407699911806552243316605549478824767443627847397549383508996775340089933281800473537601645854732299544826988338727924231313417927845820795235690014934298318516660253209967165250518207575171952965037759385340299522330637992613553910570193365576411241431555771573465004414381976870883502095196158457780631711858843290744387520851347467374325537992494632972293140479699290526721842783195051188266895985345725791640088048830317271302323188916519958378336343848579413353530732887375784458840362695854913207971414533744646914814422275231708250212710357092304891745216333786314144912416394296103449599886177647008556226692679617985666881727217356150481987835276915675186297280823058170989721135294131055643057251577016856886052194718756532585294465170543208678351174218435306708031026258135942217130640240904680112194975761467487035494923114667265020258658435120364567813200866220142389037413088956838110364171551295137373711818226407073763599273757291937619748571326663073182997066862496487382381887538365550723097231103824599737786210778834163541685001546543665126530580653579485891531220039103641608529975317380825134907854597914214966688042596117316736084365808899190617512368626928393868618465252957025785656662458380345844482814760721852879499270584671281736429545289576932371975289236027477968791819517480564832273117252761934853130298398720202702714119119108916765049624684062379447309500170070434827108430835708195212710344381732012362105767460774756268962079404847884674795294593850882957235287726576489813945899713603378378602333747864999433774832238528807235462846783558191265882011038569305760282647282627127228846735599474200699402887961554345449344728369358327042984554738362133188385818424312139558821153032853476674560982666084648047702153258664922621881740133453872446322772766126483884934683653975670254561958962332336521540949328600505809958623614570778726539025267508322497382880914501025034809820173696103779451952131913539207879912677411713977826663699582383626671554139038687190794405975566983602405947621991227993644910070861625185711008825378992196871327920415115300633345348401321273882460896311394262539029626433086971227751755618793674031323545614813620482254565412949824796181202937358601708333050088724592893185099093465999396117895498343274738240001482158624474707225199869696243510798559953569265809336808040534608773796475196481147565556513202194111127886459931224052396166156938705307391685959936751099487938360894294628408958213027988532347582418710247075292737996347571224088895961309256230591960187630998957196317508177628587763241649659638530332932892603016901308713539163812734700424997473960403639480025382561532828254857155139414518368251393494999326452857746013922472707550539114888732192808080934901871377822911863633101803231458533552225350274629765691010239524952230167685508045319172594259542279689876252824680916807026071292319986535981358406678940026483702779029762963878022625987163555322329439164113032300077041302053492437788753484393021679080286357802853787624163832053259962177172579493840544420548816650112155055057973429007087892598146812830244476595314176543403852362731383374827032060333291467724598426417002177984335747401868086354821149091954293630646936309832296942808985111108689228293770022771496967723570072884507406590051996729901707979724510227277710232850160021897334882786574398589253850231344624142202671472387311251719145615060735815984715620982894457968099211387117931566412991429518946012188871752372398433619650657672372977432751916999064067286876029696404611916473393326346673681376133855591014881706674771514618020866533342037708294915784252328536661124426346727911612851303673588226983397969095203586206441718428777766809177814299844452690455032085929737310608516021049976767951718417620910207563194637701275797296727369025662676237853139212406825381310819225782061551213539423476152771364816419000339246452316160422413828788428192624560248351874192746792908104477511161118278265929935807440782681955173938394807770383257070752852984318471054983723170040436980525202562785025287706588440831820057591073325703433650852849628792761217339851494160043744610619836479321599470713251060495690359839369919559009899586059450834956997098452086953449743860807071946938235715234625554907316723557948177209772508090972322804445363710273193006754927442859469469705138711484929165969910606120979722634499193925517073377363204152118916811560929545577224162054115795005377251690933830010863701854497286514132918112307908498201886652299121140791341800225015702598245377969182936049866758639672212971527703219862583494273205998007865588964904508211065898415165257529388832689947643420463469987053465378068837011692588802780241925856420024293977991106365162910381270506215467768209743617109708627720377632592582335319554096706918885257786011328656883581684379809761049252185715680655404032314791705037627847041701997943694294242046237872462075771949101399831873204245831195530516246884129775608971211456761538720248035870575639109581596557913307546640321239639281631443818982855903102552879003064394642830263963986440214916704160900812109571567101743031181801580678830660949955489711231150715671493023059303775657066908245087614270475481102474799662408823897083033387204468880398453989064379589655109432259575497815661690889867164237595338994659739468753486022828833416416705094350177089678942088975393029204337677613567569383528359786709210761625819616606764764923800251946749066894317627488296905148311406726053787387128892085938352530296244013771503043439404965363697419137563327097645821362651303140309045560563166224304792640441127902060805183769143122973744988523489597260414835871580387794528277845504729940203776956446543255850773724506170234812114935641780424016247640496787113985957848459341990366798667293247637359290932458026512732675783635546346868728994029871850911835665379575469376336475252988748556660253730342871551305866021647398128732617434577864933186589857608481973852634785377551949996155804572574985785019090479019869669613386686697836784692071237520266142201033399601137581499017952458661762333365835820401824370000940475730014183321564795168222784810846580253257340976324443840957730749345603823413271145850458279829226002886335463227536225624221525892944304286428607410940208603986992333868014539675873218803707071931371507857829458234510903724524822494215654063796750530300415543243474422384177935731087499465158057848533128267343450057890272913862901977839196466500814748964727764398285390696314633618317888896274454929628258714102729699919125309391693729813994118055201507826580593893549350420057227249656939329580587329686012967280460068860050095204164701074496534847841703949946522620376593570991427191576136510344150793668466578226611559949851326480448318304633781283628198171115726015109116065353501629136931266871906965391092544987249345710614913561998996837965993176881487309390327544815423238856988183082427856709830846534830031177229069489289184612656048911097601930487309901100336739303775590951858296509235749186313198769821384128244556964532840001776937782241505463125324450611312121848155085957068210326099807818177626199885895584031162401381642504333215181411637230457653902721753532055603423504792140756993567765125396328997876042669660017475241238265214183480226346548183668518061464470774347795951577994336598672903639516515419541002181864446596506534308493035454655813991442715271017360360703821036514410824813171266491596390165906553460096377322818298351637988838595981276842935890794057238864732115811624750798084874096630857825690515095553753568386319628760227717576589553460781843180211549305458039091018549983792502550729205126210661927222578172986782727077132438435972820032226808203046786123337153035458745447034293626075472710180029075206459375732279001505304432376133671767652177013175072394291525284037576957460221648841915717239955019118934583258137388240971557800853235543302927605600071937481472814414652446449701775585979222831715478522002618846530257323586200183147812937755565333267487184052320487040936431288519738357099227640115106984657054716377622094609771493310732541972075908096858685516860426074815098060428629427959056195454062080294207448397852103699255827927398884075080513667318579936490636707837074381140132418858580285027928132114319335573821286483824452536483682322241902053587414451362346706291984081661074041480387337046192024987077948943043651589481022397258591217623263529586476789119429025529283630888478771495838813998648021837887458069191799796797565549528804386820395964312888789100396079238887391789283078879726143000672546817795507204584996961691090919501303312221122790988967947867384180869055394498550851477354718131717674458868754600138042941634503995750188307316739849008204786035792678507703446644160298097650128154597786955364527698018269900164596288973101287540019004663783847773322427846582465820604457200060560168770847858837991286854373631816462573597271646454348803183915876451568946341334140800388276768338644025146013831865456011152914632330585252766324351890361988004615213890215588615229423112624279394795411205334143982920966048778456918268294216340649965051751278545484210591609270116021189152011322562540040328085163920018421785657519542198834303598351674618416186304772922872505713510831339366440550956956863746820009069259026573438046332357765336693234466025427508658594286215427475823414313042449906696366249980991933449966772590186602696677877090576201548730699713802503636617139934302058505026050688346003615499661863101743021911979647248546230654122405937906953927068033205798997134040394159977084676042597671408930259929894980690513878835268996622616565615029197122794548767493925598297021111599610835167231631499686970197848126085624675736783418481946947185101473150479945413369636777285142787505118771556100593376563392955578410036511412859309203526421046272629878946385298770194426265003023040231144343699901942076212263090736331144303064818537087056138595780486872976716512847889445376896167610416560662122953596308079809336398381747826403750887865832120143187246770902082569357826072662232335020903719490212301055527504102073640405174984834171976796961821304501811034903543967705655193179044552345774564706650817318671681632967302468413837868687070197575636469198580991014977913051282783141313038399205842270156335564393711885693992820630869839280975791493078732804637387011430225541333963708027782838986281220606967797327250133007195519223522528053223023128163845842843459122357140396561731603364932332811590368246251480674035464050564679596027976571890808848492681524070532426179519846613001988975388325500242873167405099886207402451473009224924751707915869753058977598237056826977661013912677309503946915073317353825320503991992143368088881310210642008818110578763789027175418390481738063540785933425810765508160130751127082227721640888865550958264393529238595850258513584749317399490321267383410447101372211484928467459468413616393538650910654817783847401273872906580301362891650777796835444120523393055699235291164669874978657184677720507917791669773436207562704071901576757083779644622929932785966290832904544369479556002256681029076916209993311035423974690015439647977008698083691918582982322455863751445714817492833586912684519315193629630828671902005077491648290191011583122539600089583204219834872646607103872255276031430487477729056863808499854321230320062658613072776920927150745448766473448559264610229518518283962641825188660332519125529140217036710735335808512874937899188939462627427418032638276370974701705796713167637785034087732426298131100738296170695315501586943821032378034951954480525571739105107040046886592388435478334641069149085672824957615806837669903002456297570439030243151723138186853911184238364555874912360984441402575169870785409931590735596733170529309019503372159604242654429728268835246250323448673706754306128634717634046967804184010526551229000155893137745560190747782132448140276432443024210444565464281655310031379463625655034566645511412968638899282539701858556141948075684785725910941667530613619196685098283742459491064364561764800052847416822945479024317650981386220427040942312454371386673014141606277792578054114060831586533205288317928293500399309119103974961316762119911934521693875630606676312812648960430701237022632292912688029172172124065172295368082884222275824136760747797615033600594473937594142730645566140611388614190787824933938089093517396851384550950525231122636519256075538705035608009828180094239877492764481891520379352448062816514790964028076860136964949049649828305940695384979759728925689493805004516303881622418849228337053176872363051361136103193397254332993215881645193136713657168044824115063508907549759764057972692896544499031588411940700850216327272318384979520041360840079592474209972368944273854672961957275098728153238174458576435905184977532344673020609553376933617005640672567783081813714036810597474810245205533130813295420543615532598656934028811591790487205160404587826990060108317106085576322148967018303128222612038134931890531931059001016290626524894268401178838937443300101454394032097551332536484719465530680391614393131824255568533882760007666543577782716964128074323601858869543325395640997196214394348068739065020258450246508017800142555221040287701523794058381181755153946064418222138760748467079487092551847288884151900212365027526295134392153292910566630648082423009097006176612412075024369813647085961997907033076984616572807354894707489118656880155467402319479664898684745328339252953345164421986607237612128534131372142549764104724568301449035592680001455782309990158820040165817687108363098788880341591207634742969152407284508892520863043329043508618738992398136679588298177924803996420714555575581247864104280040724492740282794090930616453159226066427907766131126779225258659999406933055581644104147836414956886408547014132910111934274858495941712847511142925994657281080331994916990539463890803333177587129880251107004698822569466792210027209368879004238144593147587619984831746347366027101527764978705023752543304327604457992479623029204436100565903972503086461027788304749064252440745274473495227118731637623128276540559114908298076370090047024950869410723933632867419433835707639085364047157096569682398834214722688238300723984507206813590123779216755253890979280705538940821194955112771987305600864104775879886104107837626430674476617692912549061108748364206251410078611369541685546660621108548207284544727949676178919776180782411300413576322448097335063925764696144863552331378534686115092540822013843391173393812634194540225477409559318648198523824554774775280469446263406958760964365429994019381302480485455379289533668321706851352142687788978670271888320344408055413952689224711762221475576531279067334546581945426157473250783570749251376893392006561047234603321456907332187049951515736457057845724105360475093234744345586017614917958119214940109149259075423182146200736019868447849815147359797070945697619064161291108279395447441727283395986199695811281370311505216106408635447256231748403541152149117467399115464642697132464088035870491117929685482882309870074662734708785180482152622026478500760031863954329007254696895660854678138440863129855644861003512781809416091561448296141036281514168432413633616136371843435805788768554794097028830206249624677913389317455105541387905325425625194531929019174581696253233000020988157447732835218883663530729670304434525674489239526272960207388574185652868353622219271619277262442327447772653622954490229914098392088457372981154045831467169438575810388931002042933074347798313416313913347909613862530076637360688145052896228341522925410183273390626518750892623313615419455929887977773427680432805432080987070920964192525394302947788012649546499781119464200324922078303466972068036012140849190133343065496886450549180433596087184637860283657889199582187281054330404048927540322703279413243188462763622696107059987341526101470560204107733191660416107590248072633598239711539609588510190655107674336178029667447427583206259214669355971846022057519115636853061458059072516740860223080901878810179723581137721201854244010659424223649592768421916037313593716681489751615900605723495192139217236239376466653770635589767488453091292412909411800872827094134445516375331056252696339224500994972393510542160178243172001025872386112631208877635209718025723099382441213373168231173996794543869523246730840917923426957984401066341703158572130197374481914446345572458671184684435679280840738914046264573328732657216180895410178236197565108147762293899009044334237345395056180680524493304776288422990365748559153331607627874299029701760304304836438899045754643853758037204137038469497315227406552300182201715514393322516805485106474305271724383669130178378592072206058657911454074307663674577586005186891028535186217176922648283410139313533653088265665546995740050225072913280068501908608111508733663147468736645535799680795513913037515048190770415495986851633579483591709755669273842338408202232873820927261162447690610621420681104269766632478513332576240652988794591987539798387825527213646782746689781870993825434340106134222392438738783456328039371020406042993962844685799856671833833911257563210804002797417611633151863312755071110112556840738735265109339852345880628665313272663959622370410725851183221194736269748201683142419167166088475032201635577248260020508706187021303081359552812304879974446692472609980867633207664299506128890322094094028636276237998947801390341167776419635769982915982266208479993507249966147864944192085859244920596333350730511919149708911993959082108848679028588154786251272759428213764353320355545235721965954624793487652898824979608259227822400602812576222591951288322942119442410787491669055809377417148841618396272907146352109444188611042167008333303686439396655536337790391155529043124666145221230073043178479336443298958536608485313936954931850269905300537827836508038652912538427987723181781274701635446295896292600863950307734866144283402477837158047936339436635059740674359237904645089807454428890579371051961543332238896109777722004003825414630758467109666133294882772775487209465843598338243224682012628521983125474998295758095302669411452181586757776541684048718129021998624345825918193654699721576091927636754545911140167315569114943514867126322194544330821843617573049001512153952453259799736453770812723432322677310438119796809277956745980733695023784744133282482965318177420423423080617726577536848921930408033805594700706311574986456917688382887293680454418153241718889119784989918264448499328004978075349919473535033251095897072939597638993643577741115213740390559983942328014610551659046135663358812729479124704224733573748811419672146279609447460652159427587266131066508294653502065429855524668545079577768509230791431469855565878198305087368333986380251586013854161465501205750587961474601946745722062374460410445339721168441756008506927326412718276328056464195878852119112760586843872013043054709966791904994048351807032707099108981019557332251881382609921069028669310742376264292180861335467987664079914657725782035358708651681002321618815786373459963292243515126929818445993059738825590356707951199203128867697658212626253063989558964010286691058120897024013338010882340679312187069331946096349652629446593501543821941425002517004889698609391219091601527751595107749705688252850492795473679330895836004149270314571553158973394126942174355761074758795609480660739820505176537943802226820030564891018236961385971260929026390601816971693500494673934284841574601552417565165411629239372412669077153181938346656874909462335632649254635685380447090920301409367680647016656435379359244011663208636327113618140193261900375633119917650302832595372738602045245783805707801907757467407457494254773428224160466320567959271852395936101588469003139159020712056631939869996685407452557353224839608192424180143734689285525819078490060163275962330141562129524648716463127818857330318071149282292578702408315668649390005639112626462470192478231130470085295168309438575157181524261363532863623887094435475236780336855850916455883313808648854762816435141177060369439758140366439562823655102464034602041294844286510936007005854992322446959719920632282549440650052270108771541698563401577608107848773150933455961736987629409279123660951483950312900510181865421637223880022809628878683893282883208687808034301747124519275588735039006110171226865539356312035616749363414923459582295597964375959162133966291806720213153125980579364617158100586200997839194601521114839010288186499745406507969402331588754477049893952076576534516800798723570894146701513991901328633923186770932625256263847852040326321815296313025690704400974622835568795636274320520472542460938644101655192484898694130964207392737949468753594242245781860057370175703600166116331956185409047025065902363799374637304592765888391830189753659564606369225121501438604804149592981535249646442265734082552512844862903598844320182847889476166566895899142691839493732878727237243725311652674600722998631573336694535919834945693487577144347933322910585960065806779598180761080284719610123136653998580048369581130033195176951136866821512301041510616524059594126849605139971813326528816105859345690647775378876842059988694671518774517024982933304768362304243513157542980261386493595391561231457174805093523646378604640595004589298720708555838671543848219664007604084067874936294829502648647153161016311671945585478539960421438054835097484213885498812869407763001726151128654815101477773175194102758558108674400891909749256473206383966669508775204609948548085389942164766473073364603675637746492578699792835898838005535897052463905284019005970925206193528967379114026609154433149986478418304538396134967221376880429060209116823629535805315952313723917630778537463142805777841061794076352927167260595651889609612823224591188813271259303713700862873829627890798915387933386664086635594550737197494924304021026744543720421271342027285335837690993334414502106072041309418819594711607214302261167579325238807670288899741290394763324956380875259954172395573622743434431033055459792557902411383197022876872050326200291752030620746635932094392332565650829867218235074141068893704486424683857053712037428976550197176080673000431059712420992150050991123427163202118512028341241583342757446511232525254048111845049957643153043811290940460327554721757355065168494998063630363439081282720052041559285692570351180244799876422614126814149385379163377884996188259012039699450265689132805212314775509886409872926112688319627770031221254824443603590255508410879160720988446320163285783342656874764822302939133159859354625547136633109191559463151961126669475652508836987325421446729513581249304226267197151826568375749714263207067064726910762938718277499244629773446505887767467533201177768140727366580308077039939734712628442221346924352438555948212222017915933879067487785754362638330908398479707714197638510550337962363089712382149324222908417913201462852436581714497497170670434046832890704699696690639360907374846289933496195532004689609011057104596880719875656285128532471395388818618594765480422286374676460372683129061938626762582522489521196534819396106885318230156195985730778149586229432419797732232202218367433784649001633371067850354954912464878195492937496881313783097944227729909052401924989266104385941104648536216363524131826482988224484390119011365891250049429391400934120873996160755695227476620827449061266289674892973667438441371150203598808556211770031885732618348593478291917118601745659963895113236482036114098866706818526395987263569147091954972863825261616383932373568438876108761175246125694334188789749581219596856478215440929737750746242364845838411995542947452197242784455872430351353251266828240554852354439472006263731249559622682723619846143208603452101539786934657569908141024256833869175736299089168147450395261339442242962322264126870156995292691580979851747907062832619981842879386591630847885219260007382967574747442152776418316366527315997837648723844990247992621631006419075191386367050250539637732821204816282033000311496473610941258568439899470314780933102478133986439807294597125528731581919901022258120751081873405564876120933719665967072416517573847923645349628135075780829335964560893304343920195890145370270706381511204427834435032177557634305836212905259002816935072913679078235101877112157026282460324136931750920051162124123397843017370286773458607321870798936117342750516827828157060446122748671335472973923220149663398807443271112570179974050131340982295388793045868507641147807112931300350576599535383516466604706804318049550212858551309573436839193155147105893914658388054376317634247420342036776665448527208944980885315664834874329100074956552325789281028026983406561765448798688627252582900639616421396863043817139914490674355156664149101951254219892693330318280312330837322917895795332422162323510711714057828479568781828487045698269708823088825553677939183707460573119938494463403948795022955194272402729514391223012572096167477401691537804629980823469003373976712369214462010210727163022166059606629130361289002576852876233153290471762947153743286151047178755919507340619947921958930323396025711300558996476937765090198177961410394702740014946868792599104415817324380666029111903432578796171168089792032970132925862364978247280211029249476265686121024784228391584248831877066038359966114854134346852702165327954901831289707302457039937057451188169804408824189206534943573317709131259882376080008146006138778262205798463991212839970859183185550139828060386312368816062810273242614441093547817185134825290297390001201120540455733134847757211281739605010519591863166111860891332974328405647462073853377444194020539172212063011881471422345682327354913537352078013863809187215923314285818444015099587000046462131572502668512736749598925968292517255941189423226662463805412934397388599736745785303095242816318702491889729814667508888051420722424429526071439616535848449747038720476083096122382998580584978216386191578319929437051142191300775108812692226106766345434919158467805926537846668947246389151237893875090465693153631706343452009517093970048042674212305124492387594793361807011191654290651824647436610760078479989990588596207968417387430204276349177743671959200142396274572668707891792132541078268792896213984770806967593547473810556107140901907300360364885244004814731576853940995626375696616446550051697987334097156104891663669673061341700722036164603968013858432095334308828157832802893031167052686884666677920532792775481941932965024476723052565226843960953202910850392911790704779422134418201169067252294854869245908722830040071741415060009179633564253981407146074555105821334489476163719177062779702097439989126112642594795857718233147070957047903556631442638967469442143928224276826607673556664572590309715734845749886909965128474242431771400763568000632121437503266417249192631457109541744735415501976381240772610191415479031792281401423498636766534200311471849636694781708292636370410973437881599243264904540138584867806007843762800541757303723174351935448838280677606897158214937523188921940947727930179794406829048118057223230767930060421383660959326181509983431029553620622784787731111927645255325887986539872064462522754501751076059626082887813373124544632979561474680500788831294680711676440220581031815228330986734164056977754437649001959019848531746069216464809859370007639186012691660792627173417245947574188305252405453184892048794885092987138593665798930632962656498688412019865913639914693474684997671882164832021433606192137894476824690084926073758626261003313117213433623755905451097078999342619383284589275692904979950794352502802432944965832286193851624468026888064449041318007667434825657898213126695265035095075821197450682374981076138271234406636621893659804623430755984915553538449671210919081379151052490564157718407430830368945805227782894329858024562432489006449986163984792201584045926334074880929946736348145848645292302469754715288508717157723559010138640631500529527031671154243626129516432816759516480909768357918582000130635671035497088452775862596115700996072200334895734441854354556087467001969417187946249212637419416379232197831101024180364917689914394324358398593589142877443702668092010916947969558540834465277015658664364350327034850732998425601216177043531700510862979854869080489503233520031876344068299606455256961890021371844002675027831477756789526604970605058013654338478479855361815274156223617117863020858513674380299435892023480753570430794246814678720571094154940562235780646652375940298758960695672111172237248549104472931139430194891729963149532154750007070770709043248665559179103301525284411454497173536383325478187879810898653788183853226232852747517343488002315189344438560834077785536051633474029138229725590496583144729595940022019164414604994990695166214741120281581653603632324041620561356569478056016833589120615235453123067036634829575420832240730321629931762930868057516512032665259829115839274403121912789340236539300218477840285442305247814971338601525872119257770788096783542921329071452599455564833004906861503422404437207274032514252221521539514958356742842179582253417494301572617800056548707881939793983327683691043343241722609162160553247622688985550687624767332927508377537309370958061506466136724864800752434302246251439909238353774374238294054920879081178738528959937530426269349848208342892490723882250713542332688572644197141304447955574220062716929568921020686492579838011367141964178225226289849181455340289571609761690055969655946959002049728775287430053469822590005751975558267029452041399396613515090333883754346680524988661048484898263338064549884909565628369985176144251604169634356590491964192009625678641707894774327977824713910967610055075337627558503325569304100416445454406696004752883862809767744057915246692508496335494578598357458862808160700913919782078199485117754921082173693005234185962595487154108594781629474453318582907207413583229670123403935769643162053285960822683844526455301244718355060759733369958615061812580217086419703268885529001366518793681757898840905109949035722914155526358793401215121696545952774464829572310673267527187362125785579185557025097962636712588082417747965515209355758549143517799612348246764346644016429217034749018483201082098248564801917071554904948716472233306800699219412621789953084391307676642597737637816396349190506323745051101400545407091729712713324226937203735891355864389433427655023013885703700598916487156687597172450329447041549325675766349978134802901602520411893637011378707167046651018360474523863101399667539787382100543692803713592521119735994210581985960749809595114456647313263744480262002861174512878175200748949395979526272958147296944415923757265991343813730838501218646855676434621587790198786435076578604076291179634373220912173929742800078476529822831585808045084937810326739529109068538921547920663443315940947497880084641656395735044250849801520942034180447850004129181949847525327134798497339573096483507020589638506716351306714147848210663144474680259446184931897860124209097803602785434027096202978291212661923768209397801618527432793158240450037935106258772922949933590820364103821793701689890003657675498849883581471654626041581666914665480188100082349878896353766140931609203081725626334303203853611394125101696817632344575060606229577790222093111550069652658763950970289671801060824919612633782402021677968724429957181465807849715523854824671996512163873394184564900072412172921440883413075161819789305663259369549233093679670526374805162228648648776037927453026870069832670142981785095745774544641936475235213732640150638341306653474849959219493859396377502290453042860781792655667800533108417410538208251610607329125517598753335938556577312410282042609307467774748826302510332494050322161877311906916594608536378353635785630907246633053135974452480126092585887602946116235857683848829829235150183594932757217839786841171989279445129132753010643995544972067764788559746854835403505250792736794853246327369010755882205468897603668358986905989870710164570873351406276559556241239196693071697022321002599758232307944035983991720203720389398836500624878747139037820878587205220076950303398765052990244704921122174595443045830116407444291618372309270056589604332153612901972913846291204894558033305206490825329394944902083022468169677206206331644291229969227010388485261926788723066808254450427247680318693153008157188877873162944830703753106935312177405497239177056348672426002820771550134087515832736183005525981281432160208163350762307556403464805598785860734083523952306275247622950492554848724274302166697489506283334269170110888924921215879356230239596712560360014575557301646011091131715226038237568994402046417034436292413471549765355469558585348601027312384503804591381363985903253653475805492459948202674022302587878464922500408665132271070800423808753248174416790357077158487647621043933509608559118578394022979001260439429951715030966269661948978656625737962200502912979338211038480789187715417560651924359667058360464065464565499576881646184864309404421295474054899530955207238984796380420263350208359474874404913342897193199947709557433194525341485954890119773829461282707528463198343039877796833226390235206725647539890670523317074864734891067113614334249168285648266637155348550225033648578624715021502715117542749681167987600727218823980803749299338255556679846594403284526578485332752272987902798427219692789987455081359051703965001028281555250731921426752326202049935781400066716353054593739704479796678917701008392702525225031032280966531181043907063770063809454022264843211542677553708391644328778103704788879931685360986262240245005573278608975191323549406803693332122395229453503183101098420823232815121154890400936773884968559861179529278859255730509896767108429009117980894721726349023434747423889662113162118776828599182861622425582662170346120910328836650429146546387134115829777923631060684200689850540126835792806344561531504376582930020767037233031069808269318654764894597557968295098900041694624621282964488560366194939749344013499367162812647117190931366929533524045492328397274796823880547248940819402187996282791785312983003278682288221128569144569103529009150769166086562340614613532381949222957672926909348559429641404108816271618827244075852221550248306536102610214329206362328506490017393073504854717346558528864012289505530386093349768246109152199476827198152200676367159322640429581178406102194496997512049092461673071062887913952661367458978252097929489778499442751213625959301705288573345936071819319690834284175764520409926759723978791972402246356732644752664726832200287989997178414253331785143997742843981917939001490454966140358268460885875281119899673708740137762409622329363895924929672119644583923029378216998488554968531529421320169941010978532872870407412584172563178861423368666508877036812024594884734897555027572167227735137442761772595363003755920640225529591600946870737579102349194294446848930726714901552390043544232554891404179033059352504295267292983729822727466883101659591206946383899557562222633647841138352649991264976299364050708088625441099869220037455963921020256794496098787747274581495933358722224943769863715140851704369413801305279666721278600641574200623675595239370476649184731843102687437609144663087910442045207594632720878705085674675257345629695029629471635585207573838707697602381106905459435039852608213402719005999961233271456867903156121903931209217067419144595298506001519674690897827617759074771422845671871205812232072555077108014620855616514656168898498784286048731707703439328921910970565035383076243717524606984955765589328369671567554198609547171974248700493785051630058959352616357877641869860020205266291507114676428570516577057344812043122416180549218027764947341385805080162611540123178426817405140012469676351653082744136822988099961372367702581615396748004697629736585291868567754477680540754958679449741860949459318124761865726608914841931421343837121939309511262395005917157146266028331335714683305402875400575423600922245298089761756054030266728848785859229978706037185779264889547728143337464073938345958312900010186690013542054874602474714430474501926790657986042912259929719324251902818579376902274859102626934292082963583654617145687481331053520363025284462393019971868216835004642508745359881759165652274591333956780850152840357029413752391716693057916010663347414348545009788995691957829079012593843730994042694672491307741874506684393534894742924848233375412467245627387870922731300694420663315903018787231687080363404326036300053623592720774217669137966750256378884432863014872896478338330998018135400447284776823441221522228688033329204345229105051419191087780519040264993255561889842729723378000880657619256312945232689807303577222565528597082537937100563595553761280207340509205802536871265447554170539671485833773157026704945178841875381944165873682131819626443184102333638261808136054193888107752497729163305512291380767505827655657585174312890646821146334018037810143954918957694042197746697881482767187322747011730506744962693379487079185427513551044796075650107731366619721700612581240714905442849162908105340477432976977986615096759481331088287342258012428396438250024127332579901717866815357616612413176546858669364050668192574970232276035711127428724649215444898401626513562976100868565557649684063983779834206503907738876934789576839146618273797938539516553697191971685767196497015716948632280640732629194728978156699914554054149052370334084607562262780402620515839743048687726791225491155159645775239237440566274392602318452521908137762125877697483128412060796865203125498893899021981967440385637673008483165589352477646703338034484181375662871452358065641290562233871334739050538442728040787998013130825616999611428121440566509798561988042514307103717384150726228705665011218078434636683948745492800433247013567222811570353377341321654450078550436097281202578731296985390812134009853846331521353826567601533812042231120976228333720963960927483064800787839131343897878312252978425044517609469580904221514462328959453654620206180439155041732909829713322129057474510762005956360325197147087373593720298607036211469547561481361120771934540446920122422220396275333857194119427736078169041842067306893231008652861982010709114085758513736228269847487669950812306325985195180850664133274499558337418655641423879190883844849174548772759947549823884406123106445854518209468270432502578330618333502972851834244530888647768449637775253952578602939600305857734356056764789731606956516452878384542681076411860550173457542883634943667396511132283985010594275759180236244378235997541201044849834550561628678410991582994813334024305786543202218320442460253539879867346469479801962519968806977527205334453181380367616541232707275933930562151325876726683017741604716785855595502980721757838281097970902098534875763807006340533955590160834350131159576403434565842424383706815040220970703127736971391210149902136998655298279038988111689850573775889917217770269905237830852744726205152643045903564377760821433604068705831138457523643009785620919567751653433182980738088954255390622582896005062157829912870263782515542459837664923574773608547658386459213447429901518485903753060483607673946557005921310599843981031802246985227408387220759568283003048098236836043803355901152797663427505715045669657035660221610964111721581096450835391308287007044501368228891409933787873818440409790866135091143608710323748610750851744328249662624432381259873076992325930203038935559452712446713986713616476693571965817657880689355635035678406415641710957571484338697401672593823335411388965780658877042889417542481048666958075366502721157914642598795285122823776319640833889292446787468453515845743486613347160602538598472864582023552018830881649050748335901853774994628374941151613418270525191734995397896921369914352050625136702860604519959535929448908539820228226589199779210077079239462302511046364102670284242564088828319771314075420188734985036602395004688827601937998596941440710924421477000904883388776849353650014534913738587300645477449651000376906209677278417377288423594615156796948206118186649351719225895848451449238204009743203285949463635465187878622664554875984741208056189159260666214650957479550878912007235648824988188209506844698241159180478976366828172899561928115721745453344770731852355043984425399641473543281659432661117436512345336113338437507548155130868356143610236006646451819448539813906740390505227707133180202053602403045165317126569537976885880931107537976136799185223924817329572897041053510797539049249723053025949141309231998550573876476005899600231250163134108533615523459694543751252014587898901557027090036269405358113931908081532557509086242744207600702990071673825160525776911850858587808488176886408049686234072024669981379863357044108756815471595260298182317251865371183050002953487745655717194012819653995741068353308167291335465037775204123693537774468478492221073096098163031082017612799755184203555447622314713996807020594723811828290264077086870796845534978623696507460764625407133905845689490229294907421087396925315391646450301437946544125166586376854218840185170730822008880271230592393425659517825018663051291637486553713182114125857502347260885688669528135215644882824354300045114598495683821078429882911949917055486394119268428799504050999735410586161771852764507677589717584311775553129896046106516819109690170395743636839072623489624417907855634996884162457529660446901886623121360475626218296795984194658987395843100353877385141250013691522420819825342515744232843997519353662194088748991168234590440898177288708916390132039963742208432130413033769724616664107715083950323009353942070981670209278805010201908377804103925166764919788238860351750868298172044342472059021176239074503055334459814211684335896156507345939511389327001072016536019470143768114795238870433986967341113326659058030272120143276358543995257982974102592101176894654029050240204679110780951398140925995954217617443772239522897941371053180552871930274234813779645186656743275050222351435459682328062329223950989469386531210108932655292771475437330621802498587033478156579964103360739691019112990770155507334233934833284217843871430816505296867040303738939827986474570651376271708374775854028679103253711988386479786493545055033897706831719512750562436143735767144220572294469426249199544736641131540031444150525370080921490359235037767895820850720958176419571875358563107101693821865629079972105316260302468770227229559397992577918195340989471632194201768016191639800751105953580720706505735850135240494819705744041155506653772418678350883652798632882610944117982715103050951941566982938423404886843951151960625783492159282080812259265981422536778614133179191270350347481955456712124014851074685738801581994455167422140067929965268710746740300661100635816909514881074019728082186539500304491417775332119682673765967202646348634730414769946719367207544216103286401560099023060947795360657231111230384694776366782920396983828001166917625552236441907619802630279625851029714374946737027876751741303344278187226455118503491557214974686206474117966080659772333820591129169121414906271874221434363088879155724720142125030975451286901959724003747800389364376678897063230628244879482028956422810578837187812257035927206070885635698525188733314007440121169257960671368169150119485896798763022773383537077514295369068903043287442683256682234412564241088938105248322218288793105044163825022123270858153832973737511443115667345658413254720462291795727238122172007352703460908643163672662210714955003109686368615847815790111688373607548196120412195099935723389676394495674019282339690897953483507137038162754289605480417624796289977253454497280387659401957905451466081143087540296998007756629516243550016190285663555226938424812522831816645600152100915757866619814445141337979277001788827568542209441558766854048654732991487944414752443846247455717903752231474401660269791045106494859161004581948766482955984718771433299883544760230417883310109785896635783746686213083212547562817636107359265445520920155577804302111635506968394450216223913939012675098320085854788296775115145787795297337115811418118636525856208637587265380237820388468200169795559825861658240335196118869035015038827590597727642678103830663919224830662214257830885701612248870303906309778185942390394756136234905704099154919099338551134837735544021566146804115805558475065817721273638992009665430150116451907019511934529240098178420835842207454389043722636582709912076892374175145365892424289118533566992806462272488520227191233425635988292061712379721654547489472125272615677069622971718424701156395384807237037848694909878187469478554322056910679367953544485875454003487788369864195017299435201983208842618189553729682044941758817397227375251158801566878944244349942608036122294366557242881569402693119718515269221477407738356331741592709576929408310444934473291484777524786480219644361108850607400865325135299202475783561573300562760981733853054642425296443823734219954204673227539997208557917856826950257515209545016807363395560556022377777066435456632990434475351814501528066615078249539756746848586495523332355925963475323082418668460665752552468267289267289650364693497627737439117072652563214073681173059986714056253308886115953131378160038970916591777320045844253088073458014452316341751815094848922392277025982544767559854289942524472924081516258296038111020586365504508229646392854403891326157183889837333778174931524682044476949560816919486700631737598273077347925207959082227668696027384394438667392525321432288256912105471947840253752296481297862648566150525793360860965543287632664248269746033536142757092942432513938964181419244758953178244152944259991983895983029046969018125823097897854540228570242286597875221715822936717412548502666810931642909499552434834414689860941925785896034144256258453361089420396708984507111623270910351235944181198331947654802640685621890869632108459654596459752263965854363392811012185482637359879926067498278294740089901607838064313878137597633413338299251360094254897350060386995127244980997669108064894000636687618157686973883273415086320936006707431932085455981190962101961165626296799193746962310402545409903592321743431398646832442174078480576177965303511230730521308090840611029589322408477144964804672571160209800790672522696292452645043836655090941812566618751386758452366083861529703727817508362778581502820907171106049638594743749428594153137191797711545384260501868641584686680731670210503135562489359983799411494287062959434854612223661908137320488277805510115539811082085698004648110901772480805270431248973706349101845859325346111801797578393428361761757107967267355320072385791490250885554567350873778554395385747370035300890973319931701060114693734671765593736033505207838589300510796875658849156573212047167185794933905658507370222523962058605637419564410446531737072981440677835021108718169388789704149314123900418243734769323832708191712038236229753147882464157748267347263789498199742187543843253180464479253569710787617206503958362761720890243742118656416165856842775682161553163714496355045162382715930420637125045617509805810474914550311129643148347475233084475618054019727126431965562458525189474311719129276137092380067036403284225891041985187245080849697673548154041527927288164813850371090911015566233328003797739700576701197756101286048158973293363098525005571942374017356491839367169186385938258636552326533946170691044264222724024782662648311244597077520358422684834805292366132610615998517557376026152911127892409471504179787746401880749195394552959884221363021941367763440342576790066380128201249520036839313080499294763820028372269504204032289344586642059923215729342715560494455778636237996437690167531139894740525512099960850947605748599858124252724150546235506547959214000351433661058056838355291565698457015678550422514617176299673400461416244664533896273862610267833997554435061103686845669002886051170595488001282024029999642593688251373168338212940154648904967894088437048635727042286402613639039397725169112630345903945730328905631642763654215848511729891131744296178140465715322538902400057815822195262185365644433429447314299002724314970523462844650363888088416242283589010384086291011530760912306573614462548994197053242661757908846263124807269540394599738616199214693286408952181177328744966130410072243815439561885351914470386259717334725508371321650239729448810588150968690711567501106382671447859316761880858877103866565942144467567876576595287867358925184614622948979459733472323580576409534381923091591136058727383468163236538501076068182296570946357727790337600399010894799025693227161950249296555003622288188858692027287136572365279676530672855108763026399513024542110625124687849591414845645357183932418916498805461947569330013694767086539440914261772651616176820949443719435777912551341532486124086636706480097108300352320936086432159528210386822524415420337031163838238663531514953746191651740906912840190655675939058474571702044228943945744336771487327177053586424906622076912141442826212196953345203845029817941808954708473707722413004388148790826637792665551017615504727437738074286436172417253559025687503614244247895246314502053762589656745167723302732209628123306532882280308929064327815604603837049088645825662380097603364201096655425399799398439164460453982186289832308288184856285295744292203184717780639934360936756327469506897030966099270754140189155835282330154344199258596433885994728649489406052397603982174873138228617603663403741985947719439092593598286977970448001683645850303994556466423960812086142617874510737440508960128706111438549216380575389646140104111973406763667547970195048998814868435797161489079206116548191234980904466311700749308243753140835376935111304038045494727117214599573120103204753179158108732145504781930997483573588806134341163809875520293545412394752251305835602735753098467856281374055031767068385283498067343681813882532262739116531610984926927375827776920078459336580263331772667986159720013124492601924186724034677576016803563198104011116746916997041867359445887834602287673361767544411117697663882841636825891276564320081195137299935872955393690879329218610236300531516561727374391825274446903094250895411610050637032139421464209730432665076534800468059051289354839816764968669154907219571409771420379696577290211652602412734160641613062956271077627531502894427353358620180942080962868846379099191812399079693880359112541344784575251457662475981929483350588029897642742135696500757399975168610756532301149065059323027066221093049793397517371301160763247757496380979782974348169122218717850121022130070720299419320829198971581853335631243825904520942248592202483808607976525802291755238501248374220315998994615995996145132638746668876989441677513214503324444989259728251221238410178932479291280499948115704764446843794058318697630496803752553847103355570164722317907950346677397071706847315900138316300548933268774151107097053705157456440971606657677419964964579123525572434842343118941438819734277877065945172657134453999122795294980687402360705459760713027889340270108858265934685346817844470906147971517717242863340410631919416197316577708079859825336399242132007660200651818072743223279252191665497593679025958870103935428038029933766435890482380988283115317827215001324439039128340031625664482193354306131652227312658122323594087907245224996201323809765149653991568633941840137611801900828777836280040901023275018510436284639402604831505590416236481774185198736280540826438072692683279596846675278716009889796412431522222027653297307383164165508447712314212645359246329871078549048391689359703157670413328516882768617572329726980492251468460310421169268075640212106882788894751617426490808366778056460148811189906112120650300721443017329999481225672920178940407513014871395298164807977958759586140252584560883430476784026191379686925341759738313927541270311951329202484604801918085130808099025570987033260248144357637684337218741291277647014283447651686102656739279715391052248727198025174112843495727302874207721799736642778340112711976723477459749811241322052195391580003998341384694989141839118871714866629760077482050937012277320228660687267671462012260574463813720930186183518273844210905420463028939646315543273631599293994878470350554586604443552645897479603909047773694256413043151837099566754121915535422867228930192243618683904721304762430945716676475979359884971472056154037571976431495062275426879377345917424470790095739064955452548064386965068375535002591137286540983104515513986638246386931537007842945411512804732278086415313533976414441744279126631593218610790804452759917258255426958140414081229070270817610586973443081280750166628077527972973879314429588419000057275849931762682857180627917615187482461752133709301544398353425206649847327600655018090650266285627631701494779309941342817417020969468464283974140903447389503310987181739068722554208728787092446079461470056905036721530185789525352084134397454034739000886885551257255745595393012911146963825378452663689768709634360031725934428231501100692289586664161147633258800407035886279784749245739574677952021312367235280777912288612554682783666540083021581181265901847691734339104992157522806476366223973232369641539281663806488740471993605753744316445995764954572264037322184888689917931670063929716207899330346173134058251166508960194320817812382480748250990249137788367910713977082374479299304971553274491105934003492809297727190233995624838796133229993448102580203603129911892993394290354519817353587425689967673081605208989009848297830232876923857879368817547599251263747432176980833386396591441999459776907824551830098449656527326138030570994246679392935767790620359570359980243667441486155826836008222969447349360221594379091245650325344073137123522974753526258860588848724958191858375541226957388195965003025604832415448857103865197874948462321218645480621455163288149682568517069429745149478475834629234090341350769694116228800753772622444150402757587113498723817350254345973746502108784174537357367124274523592468837682174174022657991755000800678366300073264326784524632783004737906083489309375064588979599589566794432010348178392908564021892309089541683393471552233793996974928880421036755814587353645767896124451468117938533721689576941073465940505475998918069558522262250713687455149317862185860893715842522103005553583207008085706823932451108818508183669160771306529519202545539456353160573866404908395352179676406330891552781353498865134406423411304368211007802624019087185535061195421773043103282674421027593994669778512113661046716080256257369976806406382516757221903515425386587928201725620593003827994347147347252912874660807835315592343593864172127621605297176725431172240950740931727790202266752933417456729860026101939688499343275584704185867175996819117760894762970539009806327522015781877850957638756104816328482219471646514280029902112107027297278654671317114646896804724988990961490660857070509904353992536138483668325703131986586317125706855597965146581835948893020440505401432577796863040372523574396272420107497580598734667790751714693305545746077641818885347114841539266231623010172566080094234197745921462100279955867181377507651325699596727133137266396611914297401621313939133185236783027861028429662675961023829156477793466291719392448505800767794365955892878272853973371866118930107926323844846415778123921393404555559116632572162693848416343714997013230232202699301714069002067122293327938853545909322076221447966637036579920692176564899425842277665500623461220100991661087967753637015477849915595699186237382158618000063389611988593913427383639854314491084171378883679355246679634684634092284796698811374963175406805592488059369971265432804653275916709938070732915030940945087368402007758711122220685383745500440530265108407479314219948193002328188931169498981205335417247224075033012470717950446840292847592876855763679991304772515498666199029961763664400419311509147428099313047999021570693369735809006359698298836961582849047298550396352730296240025975906140990750355996285136315794932799858054048039301427355616859254558435313357865241359379179953975151111809163280686947242930511106452577068268005912204007478301322642220313271609558030947712017507779519181291386756006854752092263384446707071881732205892617374810262641337827551001249138025924563718962246970081575502607459232181825392203840598056330651700936454522371304512114825916598165329595741585839822637044095732575447832463332078433569384266489565206415418337869998127651914193996503854200105090815311217488388053284439220039654074059244290933155700982144015902140512521703413666762324015700201637403063796240671019301375074694790173158042970437108206901965665268945621701839259795392203659934877333011304408453423437875574218956708205147354740331217248768274156403445593104264761197551297727143488658006351488503032061347434946186645283011066304670636887212430553902329627760029392251876437823129599525768654007551172212904296328249122780509597687289310260993519693123987537629758594447970205362021961414484302121411722907920912071439388110436606485963467677957641341225720740161371938933292353897855425276200321784270612706042031216427247660428759090777031013656091614753817743464709055463677563719256037980757515506941655239239265870357791279178753884242874799830594741667336436039368930947285666577557665751315458059355761917908203200263055224049330985500583283515124874282260648294329229400122247528529404824265756386085383546183748379465876540108337754260342318814260355618998488244533476208823282601680773716990468004126518017841004235521528263645804177995888089732101970063509065073208959478233161625649756490108909968791875075020963413972916881028519642036245535910497624758202399085839279151034703960678344594960539042495996273305564031102403381881237146095367109281959496446370699421696710515783744398617663139380292842938441708096883428585778124709858387262332791696896109891041439469183694759734672220500440278761538768359678204363959804335623782121616709349768760901876184133014898206678269625264943590013381957634647523333992352875092476073497591506623851888987364519886235849774266984960027112832422494558658260250391899647598560536565553335472390476578484935095222399183428309065668895877671202761325691612923706068997315222088389309560619774852359097291397616121078001667146336234084410392697552751610210523381366604855728942851776033906570095407207288755791713024831960624650059491188287192455144092178111022217696068612853309612194639047573757642238353628085572199753812462983553232867879695000102781373414877428920172699115948195449939485472826301144669362110269317553192244692835688092373655487715004600854192970834217899632828756450682841389175351542114685950179455526265767376153078585895499091988142447049047124984791175118103452649646520832200621314871999996880110605970253475476131065270355331354856830794888705490879131004616728215698530062579518356737922845151355523713048401475671333604530260342634174779933473053285380138461646388957302662910422133192311994008493157184924565455843482555874951019967584205316143117271952599717714660503212378280453989833348130014759723623074281430686143366685786298826584109242188943387818202456831559827564485466724037247420646341560128602911347335811529418686896534613466411610923100917815091333277314962854421594790278239804636618143346445005165874875498963663681672485957826767159484356237489799352766528098551130566189780638111056290583105450739985378480362645463361111364222249527484292823322422486962685980799054899082827328804828738020626590053964756650888722980589230366213389953753362963682988808279782074416283066802862280706207333728119622538675725187891495650377838764280796785256056600719552761878302340938727808909677120606715846700526690655946659543489914317606301212980462386503306418127827836275923300571092427224675398492272216632459338668282179148629845146157308243720602421212437411855302858693036592851719225127637169080956568680128736760553434124433656222402400474291588767247329770051015185351286209193282360642016892066978152251918033350456293468409261879489637017398806066361943499984408288319481357647145480576100106205567108401587581185964056638588065394555993819159369464934131644995273929533484518853892237811076042827925314174242780167685207931938540932297854368151294148953980121819698188206647320982417342566550108944088616186401067327663388945788263870794675900887070450430880274405815981458458554847960778739513805139606830496835660490110014534405544429165691266884971928872450462448872979382283155335512484119313636314803751512220660782711367895097915751031880473309592673572285919851817350925456728851197125470880988101787998149473792971710381272115399230906418491407466239725374266221647524933437575304141870196819057940596372031017070203793975224752006801664772028892753739317666000665304136712795443738558949529896429052235172823621343552521788945391061025049906532358835745766298414979610210543664381431335165447946352966218523556771834176248765690592869018447161802074502949190635463308039916886694290852243956512682683724939730693971204854879938104913702046157508302155479569582937118497522048536801057119164910944975838198472939850204095722067132149895423720334273608810942911260925289562105848055663333159587405116686035613463908663103792671627177762558616889578774989858035695856862809307200707981525476225119429858772969120727207643350289113357371260011613426270062629348776079634744911974744830348532767622704152942016016578562105419016109828530828183767272241409120836422264453941228172889899388275218912385216804804119458691697752185277438969359352852774027522063371730825226240375371538338811954793732052690615999683773479953374950872686982192146029542783680865281707389230219751544380508740958598287760597796377149407348709345699551990014279505180164454907358796397404555252088061161154861823530216649161480223985862383043933016493377255906322714843386266703307605236860561654307855123088114374725493335001205580021926617495447174514484749112402042191947160237328813174032035484476476508494020255448001910936866630753586179649737841561166527244921809403740604643361088364527658287697816633006367224309931466717031186072605039895956764125943053286116941030731521452659412899134810794998152070295965182579739260293196555697116208121121334233656287703314259181213182909645032164485669329339867436672354257693027821898948645993771784064197808601582259870981297027974516828471907375752975194306320641260065730390585815494705712294843199830907476648831554963497403287791477935307222884280626501902505454729121869605120020731805973186949255134705220361759877357949905525478247634300665629367193670813945439303441523474852321895985485425227303884223147574003876413611482081665358403439632759214435573698112713245624090376242654143522367279257769262048906759141292956652853918723437626015270264900323658206171605426116007270687617600074719566539694765544952441202893177922001492536352132319632052887140524880695014779186281617168155355195769135796587891335742385351184130443632011950073048755501445939833254972172001682238883994957222133206366017862535451658740495606176269090595534803001165110590136722105247796666758222365689089641830890852974668810160513529342242030781136101493544344927374720954254322628175418604182831705306385790732806816124664279067840373293908660379020915899870893255860996109179942637560329756505747260275831943119293954994124113038828343070854849832217320084184798650890011986773237055650020548677418087092410300658496284768983563942091650033633905814241980523023660529797577642208789814042631905948273472795096567558667970108328883051618727798873926703386656451287043029575544557334420242517157274701323617569626423494409377282507805301539720943884729897178865838159976314696081034546562877863070431018989010749491392331374155153897906210021719116279145731764771140932408017848434782615082132779618951429009428389518649616199555248384132795222005572070881570551550012968322609938451585352604343655236783159625126448505677954563460096378815026077458524952119011142385698890543015114055720524077639116847749325593508134914209154837251856056749077453028242213164906204202956124973772604621211331913099964734613889775579774914611256931017376480819430064129370129708156309492728679927588122626271630816876458575908890460736703910074735767146193966219657441533060653436383031801531992461620668939948496699600378924367413743371512204849853435511099711329137008269146194122695923544172118026712113285549886971986212480468603173696649483119615898939686902441272103123656300186544687745022638026545273157750569362697168223558167896259329267775685712045239700009602118679266338223471731389307735297096648136868398668316664755867083396701230810335082674525988560676394937664157537225611845900653485929709471895475519517305792723502605711458955628619023875747487380497963606709978914981722697477888881111580182492473232299372686742713450995467946087126356241313118716395693951359329572402237387213192386402943375397251107905490808112661045963210183806951028636878480296896999220467905841615980494824154604010029982334215829397454910120059471680682445482746457604787861783310163323635807433046404620893738446827322363345834073725364939248037459863562464199456386160282858614762514634530971859567983461774790871067658434232019025604690234138568846358166408785668253975064493805292562092609061190521888709578300260666018442281712201363948410177627671993070088658996536280151582303980522843228931290164987941165462368557511821331972561518156587763266394057642560329454052089049550956469028600909513282289325973006321714600299784160113724111031526055573845673292273321783019648317582306136834741188055245956333095854754159455165261769266535639882783312128021441947757730329307085761122525257120900169114904672770826143598347319652111535706930243468524166863826663046551860243356054929532478611906448501975101449664540675472638421175494194706278658099190459839439371593137843885150765058184875846044333031339951575082420861052184543510100481242205787835215443741449793591495322981878591589203150317417612506886562695903100935077634271734167780961239323061393134205651071385382654608703620981651686196684073626314794336485319966850700569261958615016778848052812327290061035354980875852702179513359656424921786582023551854954749362968227983685680851733364779077406295724303174406847557026088471992504287591445074426146436332179778612609294156077471783671532946883844983238957126399014541888744025927334258529600735512250049739128233977923903657830319341236307699496948691114709618278349695320473960805370258200818971604546479279147453841044386933103020570018929304402536012665145563769712270716566227179549713199575047304879173914576963740330032047481214076799611358068826593333744421396350642448077984072190273118209621177031682792626795400571693321098111361211988778918443759048857072406630204685835218155555825694961566025031124450044448230892856952439565095427405541146819891773871743921057933287690354316585912584991083578398318051376972989903439640284247885854161716112870788290147786444755047939515219599059769370514441369268399977769095001680969488935147860034583608256263062941398560450173192196916754866533422834768503677626463638019283136246027008372217690447275017695358012599474282916759138617491327718347157328569298358752691612398121372117037616650125768904022078249287823188651112615874456846714811755336889419955066031498504360693179376200784341036562907775278432656761815003502055194766356324417783098887409221864351866737856954005151214652802285292208572349101835744382375715307141204914947154464637946626246679490434754565829377394979661264074577339457390241829943782678006848191146436066659358009830211782039213120435825956980673883388315646628143102071762068407096058179728407320215294542321267894021362103924411164842914138179439753929182681293958834906572692575606099396503336497452239782143562856529465805261310396110047414396647407874317610962075322261905624523892319085272733862756328774638642050853966308420605084214645941454977714077222171433181798996811326085479016972718054752561149607489359976588803502190256342582694281115749597456606450766597905716591403737419150230714782722259077372003942518855089841712145070161950450283475290384843921918769344446370991123142371524105807415167788720798873544584579760195624530032153386523628626427949592511010342175656372422305774332705473461419668045551514238720355166766469238259484839839938904904037576055961313329799791443889697797415490951759097145356044806488299497413867662952351353754158837188380760026341948071751198995832391113210887662287953874993023952951512774949768442188407612282480605490073823216670705035140329894963125172553987634797926152081038219459779415669892303117704255939991332217655300122943967623621915417216205326424418289812891731060756245029244517758584650450601123574361782160430279673321745978353051804110590115903266856212627530497993938464617181592424211455469562492898207594623714463610451144821740206596759895174103181220926045128309156095043193309237436958696838587007438657596723481206414783631022207020523663772195666122176455204579479508954781366823340709970906990582706912025070176409576840934701934734719586346080171978179383140956403724799551828083791791248581972722376983673261803236702272068926097157588510339842828443630350878915814703235650085185424134142570066287428591991242122702160605462559458071124048765155057256264387078441082057986752756288122078866361335975279010120539602781072297597062841834418225615683439149389300546311788744010565616154396705619813427108422257813261013098216496548227767735043474731823103531880761696319362738460747499255915213615111206914441988983610281233602325540471710958204591436166496031108215470269139148802089001958469064230386189072847135441524431884938929012235493082699410202837079108603409634032968457665272073035465436681024797328899652017180403466804079247936082575178132160595225910655054255978603586385884118195201572849390589967671702449369811340156185540481053110087935256361411368956334363285835875482244354549718606480238114913873446492502812338626229765051072093002729189086989319411049323426479148622912654816602713365149414954188563179720870166011407092211861696440569964049652661018639505681107109659382728396627716723138635020020322024818880816919233879209155854417086363730970604894006239908817984968842252855660606774258140318740888820699353520351690105388836928763173549318756395933882702144689289508677052744196011288695872370074486576540975845886511354874574817334377922846015169238299971001433651809942768340034101268206884451640611333735276827508443065739297312967327165608538107642077587953348490098752479595369718890639352596821394564078149784134664982059682865336438275305700355178797709820728950363787711158840665587147112885129950884438063333688913730680588636411384872405611935733350978146065186724614695771627270012211821721896453133899070610610761228452523512000763669969801010321881185072753770607907724594212762532241478415222063653792448720006127968033980649199339558505952947247872697431064193325196023857399257771531762998115784529522360087405609792453188387048595931723595126005340898142110884068646931134060867055586434444845268682107231866054135544724369180972590760503608091965502657246295942010287270299578121845353871286162328470661625988002293678696852315892583328975132565609030720899720613037215307165886662080857479279610213822117067098398378929344485307644587627450463686677171820110336973008165522377529510504741936381494112645716594369468809108765809370091539050786299222817885345269814085359256710576824580897750969410785495866530169912200515016264446618865067302852852872024972801993556578729833218124073821322586696824480592946974613590138553328884496945253061373884272146118685511756119057328161210108099033600942646181348785969157448871505296583197371883430060705776848513534815909267108133802156471362447748265539746397023271174321704881727577099252695010043193565732922331371224310997298576755349652261373454817848948772644370593352600597083376385537230525352051044056006629605412140564755613840260338250820195086183188923783413945540016893278384991644920672013324982587538082016060565435057195337086415702166688295910204521934574425189466838549960879464231976746132480533029642602191481512507237097026998713979164854280812764288051643623818149142459866315542715545128594284390047179674538144774472503837606434895064596300573515561238675407041341336374044229346475308584406929509617178857834125371122251536741745947161906523421020407577246550540184561335428270238929753425402119284820132535384844315442879592679755555469507156206037273580964402534121185753788157375927513705918177972581581029644582020017978428678094332451339684970649554899765399884606397367602906366480112953615614238505116984719478415074103403516629458548423033373293999999470892841058442650357129966711715348792897327382287931787275324443497444670847058658856476005945358980325469905319022054694188541262329059725106453692125448977724579483756862398081938041401133760346135392292459170662668055477378799066350570887284580008361788878785946109342665392705108825786633345324274094158873093347106212790489435300645248790266212718094526899110967052886453602056907509409958811227970279130643114029301711075407591981493676299879223722365878659641703795991940805434699792300870957902332914437179600186850484083447125847027008307160647026503566674256446341881242126353208672163675722416692832652123723721788571133754884255162400582322135362646165996943371317793725219223089811836620906961305122765875769360361987576783280148241842077268983363521632967854987282326859588836880215035694925693723963323451186426193528138264936830561563435508155125537534502542127471635513134193621751231876061783642880752559803667604389771151139220902862165701735723634367701378047290813004832846997215072791045203749832786072656123548701050098838432332175648931578484107677335165720853730832976010135969447432629134798453436519167053660886373881714620486495808748669267545082409453427817711886131176173636000264735984607186156587325877750768516588300955484520123907922636396240222497685411139238180966909077231443886363371223817792255463943735776675737996113260992418132578099327827514618528888134998498520833292127078497369441852002528659212657088486702096950177160574724984987225467723500079181050143968436221004873003336856893313382343005132494200766946240043667685952599570951027349707145499018422776725046523858275008955038011246344693532042842925025450446998543923791486995014853756802968723435292651573428370319756738347045020814329456221046602010733047749639814781635579570183867060762095492720533998505399536053389807352025232326145443979832932216853860597807429633714769770617556349153838949272351073554023228818122820284148153032119793835183658766306390242631436407453066154897332640397735050920959589539939670271225648598890891699818133196237278078298404383183076965315269835257301808765831912118985126798555314911367114567153929569344578968208369809511554350648337257575689011374515132923423699322926309164879901924222677445120337122730720825429211307949348883970381167036239675165099309391094835365414536870123955464960260790151214152054406524912778844219945004248825321532673246923535665038594118559158490477447933025514362304684072824221166711609268795154259403897181362411372625637861487419116482848316033850643149179972918217343634952055926693601277534215574469944917336641009801360836922964949085566222915871435573230961231927800788779479547746006149750049442483053075526523700957395902464449011632190467167075640511041995525215163100426728260733055898955087989239960720918422930732814354472913552813966682695499561586223038862236980319912355381988621938553372531272915027764940066821843581524131362610883451797213206326653516838926162540931818659420383842139134385786024064356751891765127042227392389647775912341828390521808486662147670696635348769110973708541475785819134532958195815118435779038170883455988899649307863754753253492305696159904761976264286704550252885352421981848165296159262070588827783446295606556420966001101929950988811692168040289011519503993930198791628313678081469151010557197422731922306699470929194875393280537939937271803459259319085138523848787730446523091253287181343920211773674691804293439225155105984973442050008552270513887685324151506699336221712499970695873152224116546021538948752389326423735151068532685497875169673108625725700401729163926979639851952688689335577199008127710818929971353934035155043658998991382774859121909715250700326504026610800090138298008266640357721298051286349619518821840152121639184081900784866411017207460236062418063407213046498939448954651252960397312284456147113473070983655886874781977130707405779637878569084999796159808698709145452990759504328117270371688373632832849768480511714138722348895154821824067584123735280925217780924214044571668942984284472143504410079944180864746412121046388733981809305906871066341292818005899172235647210557760909158091785031305789803949714251025498434444993603115633035584239688515118701542749333137962146082783158625368555196922198614342360491185465039513491196491887950829172005128249864839246656301915316163256632580914096990837406128164423702162796086844759405095884735942251266185615579818421579373908261545496274339906676510436427445191850912420588619177618141625967424389280772717365476081517716886002199205271573536200456365329167898305226343615901863757811043988945441339675455009995800517544010920584978288590733332375316970717673420471904166591259635387379352128517755428439315483214944106915047243016690129121553311274477522550399980603968338680430022804589770528788524841097039764176890336640857598014393574714561118043077889785688663867692278285812961392568617319916194955811000795256411836539094574276039898714333347545699732354293666397320140189078591397818042145180854603865504422776589412838970429565361060171377761013893857010825579122360166085927405866148148537736281776775484546734684985850357453857755769002161991551301035563321078665819280252993707837920200058317110275986088393071691834899464747425467516497352224622035801797446559935919291846511090570570973200384508544062603091234133525180330458349564269937204922791028845511100602442381543943843640809436660847736271194751278153043064365095722733125822751972232007800991975252786165563768525537238177438966246079625828392609574691693433875075016951932466462149783444086200147063508911835563990957880155684755017305979861566037631130104881984322426585319088517029305551584481469712403553226666123639995855424034022792808464933511201719162371256991746826564016698763684902964483386061832117486748188329863068786214099279430919129071620095799159447414810684033023452576014786412467863262810457159902180580592690067596448620268837179716556868471627802111591684695475844055660600258449612696250859674743561246461685454165822837144748575861560344948679346652806031559209954907732617906816093127799183938036344952521814229133807916082904788906780390165601271410938579586982874666899486970432399407696222325625367096478318468815318348826843290833193396690000798642889200966413659371662277663908909911883127958418112466786865354095802595873272007035120254154125244507650379859140342346178805839338668432641984796950290694958076207362132487931737067947637188074624067505825019747009097958596192380049099356778670371563292475497402444063290360723738534021493651719230729571484531988282387559717060868202775118172663059016531415554660111546498999867161910869729062291684507762403909500218965408209332184389915926710912745682899362814658694790558855410962187938225521705390114908901110607624533961832489392807077928697840055696064031933064853624237537668670425894238332422524390371576943036546887693980303239951569816362197629101087146982870611892779921834419490682695691908273444943468970407499993384030264864479632774995006976978625033484645981902051774204310563215901475596682966453911399859682548985246730419351477620674824877118950256032431212131467771090573142698956701532994348057764126827930454445315054641733573244628060235751905306275544263522283566202411448009766699305553596816120524157841961716127733847585440037592280064469410391941849477597383103754056661587203784157464923798897815240440267299464940408069628832524725457285775856251559801770800105370766312594049766415745081343506216094962285766244861905336705205016789773563480426778003337547502862542671417043483954415361938611582872244168237294042004884258227099315465024318100710935305475758937071558584829635964773481922043799881881690195840107996018033091979714033846766636911771370206022809975846193593106257824802591995135634032365847440700209992002749544830202946224786894605027872720823255729752136572963650527971492855283665594535698349581856377328863553189664644193117627750012422572433938298828718743897970181806052226869944271592357029148233538930482317684514427193457652896429352765469937463955309434327334493954182587187520745536800471241350728221414629732788489832003238107786064196803282389764642599256538111494861010489726788777709661310659353262677360925236052975443041985983596192307243548049216958409441119348670430768909326785399170249757357097643056117736794894725147402536526809311035289476298850399653102687595593469353125750443857968533709587565222423155293573020262216823626707724323247572850670374110105649778436839742237275230126768570436339443277074482172588630702506985934539261560057716034809622893404462456623606407733665775134849539314736424918474351235879442060405838188718683240460244455795020575140470239122597590850715324692496969401922280715020659760954680965215568998064981157188014280328225647480779798618389230804727668629136340797109975041313995861444876694920986090943936292038691027138149552115143599176938150462384162493099897190654668053940501051242209190696342541646633511365098736151622863791071667139226083794913199384317289046391251839970511889513365809001019243264545821181401654468836039192844665212007717265558358161138052346458781195690941652471454955450084546208763522508269973373025848338634289208185869540507870403620135202856446998929530828544388529310782357391417691132203306563560761930499901120139810642256830820481137216549088452533099612473929289741457205200740337693758363984993346767863038532207913741068058799594240441597509193259549248459096467177829320937432349653284184187529394086308630633652016408233218431754105981937065355957848747606450655229539299705680579037987791991026357472121430516738946520891782218286916652845503234783096572948634218929502511776698091769229211474807586431227944287538200675642384211253612931861653321506360017985981516959742599536676530729910282383822936555388728080438329896292911161079747238863013445274285718004539219161983320393952438561550108170401010986875024871385237848626603894683267428749134940955350745015745356283226344013474971709187266729590294297667697376377649924974441828276722762528601168967394217974039300022468080238797217659446405243627788963784138800736418447422071981953355598055934284286710098688923402140489287396216223898181760818916252759516771436982980142417825723959790988920329960290175230710521015491638011389340816881261941137547177492510339765362387034266902992961758507371157372748494044035412860391503825174414702438056498913963206224733622125395218385906154853601633112074279477789024350642774210339614884086215821993730691756741723639776791562887322594982796445535707799602141788025738399015833818330383556934929914178779798582365721656181858959909291907600356586246905680850954429519789736395099592103870662844756697271049354535908093192316887085667569931037276843553904001089907306690867876690327751386082190312916188773410061614774901461105418685330940706517237083669097951632475005932951592041428497086364271627514538627380408584503138680389210763021838781593325801710968717071226933051324601468008251998104532919828908416504113500061637153006179591272402336755219877346350136457986288960198999654131918092900400465878236206091958898245057788686729833018540474559699590954662072948793013157134224351773067147215895245192847986537999022194539297090923039738998659380276348956313709761968864461617633978208652023849067923033981754858757398636905333598464927753048193083320723945595130467996439640500818689676214685787175943584026372537479342594559016160146785454320278368911795407558450671334678827127492814036598935075168353896351404600941703451409168084080162873435763973285161038274893670953013984449716464133785232291244575433115724799709195493975751673192111970603858172943341817602058235935433890299479425008325808934898893734810141243701162122128365453949281577313559789643646491465542824081131745198134224623472817943631856993531430754873086042583724571572292591692177201036693338084483886176391220537929393571338161909389664321326332456171033901605879411362988962468485767749013742499881743995023276455046535762503228511451902277818537349833057105027019466405023651157117405069473450012082950263929454156915930698210846878185672064764880181880959640069184375281212497022560534951541126039101529196309817275076048999918312317811506311521128666042609634278042119119278906360567249752617446034979603486985340350471909249778093421386263539901548755076779952966032841766721791203642351431719575941064519267597809564135979412997064629450311723952029320802611711537008106488272940758148507275357167159245496125980641304437494562847385203182719683301482147383239929665195290375895385337604767906713671153958302106960408118884654323664784270909501813882975298514200312992937499447431617771913606878365980197190307179414022488827958631751550587074786278682379810692981951162680906206242186341588188808821507083726687766575385492809702341887839453156955101600675229309132366264677383178512608754936345635542211517432741640499924381615864915619727816819004086489761792187658662692625337315320378284576133648634560177442401531719646571714512716760201266508898161850540024669108308874091344104924314851495623645618064039720166629952222362012538323621957640925428458416140241320488697049617440365939488419975884522712449590935484163033376029687442915499093216200012093422821084682671265036286514093574877645420750499024816634660931021813072981409225392490426778677802804204257078563871875457687802592626215189121219254869547144526711093641969731191933988713917252814114722505359191287635812919053773508235077382929457341925497241673268604574036212288195545083858991329126439521058509261221144675246699418857377939726641402173228367830249274117114418495124135612834017736853710682528583212300852114117838769235396054953523757927584122977819858809048467311704129873001958943005286485705853257914169577257780717579546796018965005582854404200017691550157780656429890821722618264783676225761743497990363520772084034235576177835737765988615010085550329423666165798637166484350199697308528462249715167974289284448700217404016300153671438934187796521706205703949237407608129780106463856764743017237486314791781944089384073562351682769463402616819685576413455342270964551367150147596562882752125193860581434206626695446859390572664011701176073294554712149927162694117225124544863198325845813470860178674784242502235571445548736260029508827568574404020447838776785916759123383754814339394839522316616058053335312307593525856050994087209677580372407367328970835843929799509508128510721256421190818262792346707295127547192236806854188767892209137424083557426473111357215510010393218911717221347063946766413144534409055942484802673600151076170658066476479575115882758561865080671767116688753485013460670755824811273581342598076662920551985733035062309850762498636476526042975285109888233955489961761266957121679099601988686380822294702534836694892582378396829146468158218245041228805149846717036019738148311100079840950360829771080299535341152003375818623268062739497914349428917002337377867786409056366931255603146436828152270806474686125135880939012688266016140546200032339759308845315905407916876975014675691920744888353589230323070725506055677438569250046291570411711634875523849799030433041400861723444573741833104746114884398442673088674306655494650640203802296438310525699261774913042006181638847808345265840495912213509061234681220987615299419516487709772662155974329333180842612690038153273333379465663168988951935799150588399133664340937821055066071737896867627084758051599526750730327249116532334878568654678666486416332150326540949595007926401182578335904095529506100156809548669601829700921377132704050301504313645467981125789664244345363744820603082417762215521785892222910128894197564621936438976170536961160635663275673840724318931186414837496539131911911744581097655691894261550137832370555005478696359862556783194929349146932464488387274622331741534482392631712886476826933588243208583951007876492625954713894713875908880582844850538496991183658269797287633782388007941050915753130635495132045965255243170766890145342258293428317468943149672736912610240785964453635777334622760776606510523242808342176117885361944791205985286777248900003793222346507367086451101423511477027232074143669702082146947928032911729245507573405128406682951686797182478484491559377763396903399119005294710844612515958248749417043232290259719744954338797648392187113096136330617410936839183508396905048129742155514504629703142014336337142582746588513839343557966280820533808056048773840067728001054809392598166913591739930667375240718256484612175394094468189395255481277337303166466891225790417679694114068072257080343570701012941752952847367235038838384015321961712776059626376449481408161308852470680409187958637742742230893912408513091987529123692597322018041566796738268411212261098072798544835571642912443912233110942978492403990769765805138857466528203208532729201836329301735164558867355829475142635920937772340968296786634851905082925949803026981080575836223552611054243450194269573589518298067688637527676637029691975574877030917379418254823139830906206721261871513720087506709896535626117079917014673142295235832017843798887578438642883867823797605527155062718702009913209237943526287379573197907982457148202126548152696244716158360584083012503475852993883933916244944927233338794649328541224686771633938549057870329584678525278894226292265790168168507875776949040184071598142748017955398348833394594608809991292201188615618949719661486863949016807865811457403527791275869066452545910091961937778510377159927656648470914190074747969135962776189753383249779501823614531466302870312988015604326409983984877627538216052266806294134014145940340193692609540598772364285671427379580005886178563344383104699036628265505423523649112664170955862932508941976952530872217095460014536373186823963480039482752797007228125320460509724466858263719819475433258162117386789212406227426460531650614329273796626828890546904544956868643986052104613296752439918690484908683876498827934932650897184562604656977417624370387683327375831962056167594764176644284971760472488320049861153872420385379930704801778120273781249141843570063841816071845757886389837197228585361397862115050427898282854385778714036174100155176853436828174155521612393983424842262042037862837752473671570990124197856785043545515500151010610485297809729007071158967523435131640578245332267977574146515657990711671070429329866005459347304219524581018088604949258060745865116148628295442419865359347532737215289410982465293473153132715497062643239386565946041623723915257475506278135788551878412660131096172513189445963914385428703029538202905716108955446170289741359670329571488476878836118157586154231232216550542358088476055470852473121235734386261092537900030315781998618588114611059604374029546165593924418099393909561941328107425890010142352739740103733502643843424165968118763441444043970747399973268427752794124706468329875549543051334246097474472808853657043559293912277265680960330764580682908230518922138953500449920284954803759278280625260171451545395343330270210193200105362289990496585522696584859427580895266656129967777003449503577373609792591722398105251233933798383767536137922053342558051188215894929532721985587856479123727030547218021743298739384312435108487896395272443565502236711068065749804149938731143506456520810828827353719792418848103423237764809336187060816437409625591569706955318228939685244554702989878825445259675290115120431261282487781202029191237454827350554842290376771696257003928471512210517956727679899666494465319278976973828566120462373850067570402167954550269027346547160432375741907489516124896251425238422433953898387530125024386816081255103539174448201777460947629422340519935946551413628636254913212797701509243586852200870950791458722177158782432213889680738662580959451787285721886324227737632573495920762723973434132258979475656588731568673171409959592614468430274336303981303185261110497582876182051553193527702944477337203872099542695490357452480086437726260376227225039830022159390569274585871722972723573772285819471687252451230283216779251551699339299021331106858071669143780529734415579058329890731798908046417247923045742209117396006334495571806797952089620904705318766811948209152053627753012508431651878144424962405696398541083060651248097594440603041238774310187876705225396094648650594785816755661786878923017773223487423528153275006348061854429189135804947859636815469885193739209160948154039463966822427844888339797133598665251327670506380266978674863549128502733627756406869620916307401911140261015098259686403427472142923947010930618261732821114097898437523547356346624958220694690456596878025847421612108891229691470374620237501823722049009530882991020186570728204220309655020772027681835783043030408154504687154562315162695886892543103935964812990840056509006189634541366002635795360171863640208181068130975321103041892117344571722146279123584856889994154292723684351920209609448387208437987047391345693298565393661915560918046058220441400839776817465291491484920664944855541638938377741491595216235073410544190201171179946298429021847163341986619873191156701157123184658330320851453112156630252858649317225317502721598166190352040358297400843830691235826605135781575848642995599041732721780590043691154632431232934089157382231715112850397118293662478353482043652149457663295068349829264329211383414055616659050356820784092150962592706821262642822139078389054562670857746003999143368927486972728557356851164221059179009407715878338306969085555662038298155667614230759880148682559108297341103547485737816249810623601336954913749951594590518379713929782369307177308395151201610220625949246964010905657765047589835204405406119249770050280290493262673607830453750483368716536088206250129471827151829607332607395774441778739681403674552956388720484652227798877422394581254831087966385113060040338094553238195654464851322018977317283475630707548014360009949496006134737333420138228430314763020922302712977774199411166610052697946637503759756984594747574941917774882844919763713520843717199102691426523190292675460245843659709154175502810000557150919521348188536866365109577982079751390735419089924698944379706653006637657903299440311744459631484389248111781594613624117706065180407832576921221061350353583447392060190420506696720516884689915875838263933579953125118690340047144898445045739163296199447389461700345736191176807924406536917046773200828792838241866390794866807412342501181053944426661442651923418093834654958787383812796825453063775497046195275810202743953696773554818863805873751308218026221461967889894015498891171777470718074092042084134913879373243514402161038758404999158628859643659541350450779912546400277014561921026250083044824832450760722233991468772106837371878219117316495596170154782752615378521744639322387056481321054733733509814251872321907124767162026057201520073746770273723737792463625656650874876202566698531302952026979172745784915259816938832657896117082888636145131695832348867414853721956352722891354706624513266791909117079718653466778411802984702147127852070878155388669130347002799590741752446242006504256204179962460093868524000763412882783929507732888574721685040308518526450338541561224287021182152437043472296976031319390835960986281545080031231023504414675332443098865245496191390163614847557774880107074303661134839250865872109279741151629555486824692572110854422108994313694585209770698126309799663097652093098935691649866162446569976209127291126260317995114606964661766408554598898853884862031947330816211075722095533618194943160516590340178428126501727363231507407802377187684328155081168091347538260778261087857191653391015984735090699338757132769074741191527882912554841871092228658260484597989595429119474545283812112175493559853513777858660577202229036775083238411695113722315146441733768027462377829808019643911829032264025136980556607172681449944963434074411527331206818589893315991124609839273259674213902483864048182913948295618931489007285339171867034097221222672453558590263477301711721826201727078769993331211375094433080188514332526389588260433645394031500751311336612044871133698187436046197306371524170898845848707101292652770458873139239214821253645771596537193206360728450500677381485647178366898024430492781532596720762087461698204888194379758615109988882157801842821450928952603895269879015164533717482941146386672170344932901876920057201305984148990461071783658586217313293882163241433560299236795755740217199848949807908192545869990256681417160759840006840184794742414484807880736254837909253092998555312982524320637818287844072910790987859700499685255377216051522226398994599856435015485427980550053559018871996144843816120648113709602151632561940685066572382946871030307277274871311060279398671167822843153125925110205985302166192385107400341511468559573500328590366772619042332141982107396055291070502002700969598553703830612206367914831932755681192852759093351320039379101060976421342312796865598447603522097290604822196115589446260169997415513560077065580267652927532522974208956508377281530716578506970069616284060522801913407239784088259803703819842145461342642634576330923994220066183297121964461021187636964662899735891262653834226806406657704015751703635854723388763444361448012294628129456074329328767959336779658042751369184528972765473561930842312760217973600327004123872332471630166525777643230744021637726399623113270453579956066184688212423946543810098113096669316593269635731734268636581921419857662190278618281143378386891250348949338213129406689307908785527998354395652849556780785200517709169293469463305044027564719448569427714884871852138973522703278827707028196052438653588200491872184693787775573877983426583236666994860838297751587821061159330301920243530127495801937691770772789408016278719964023356763424171814493228179514825023262347255992756553067061279414025936442501173305012952633369087597728294922452564904631861533854480797760850997939300751090532372679821605824955590258524777304941622929440309344223212585554897792736228533674343265196076336879477416776162612558582553661666244903712644810031722039688616810878625958760876606003942729014620997930370984726763012546727783602288374523578960296920170206030965085550462133497189563809461898948112743846188769101842643480614877180009961608096593779273715028332038875886387095290658703331917314117763293952061114380349292032454661349869837218784696731824319950901728583429679426931639967326356937520735250865388650380855804007998631916323824637568496390645804013789341168886214210632667809486341926875154859394235725440951599865504763538301867461786913163932070078083518083235137481049888417108158449780052869447986658501981031182741776279256850315317124755510770898807731936430369233769396821330147354442018123768148296379948971311027241195124204744047229121049531393119649132156965892116493608555177914125262423344841178155234954473511664600806209615408408316583939965973960250307257246357806041943875088418525425361507258666590310106865230455392455526396363151085256856153492945002651052362192818888035499917769238565454475815404775749324405433941054617747508963737038433908516136495817007195267108270866634615732581856781905291258874957181768068121940599955454894093546085706047361211381097771356418375685742454779373394005892293457695464149061041133109536024702071076807666455485641856648110081951005697594609685534000090621963792837257207231996795942100557067694889107114073434667428061113444219892417076516142811023221337441644530425145343917584223987759244233283439182040273308173022971168192973129651854800156250102854622345169787274414386655665743305465167449653879506028122888046745883747878407595536568344854409495637876706405399389709628915772811171827446448000269556484462980545891456910583705895661367171058321286626509137394087629221750245439836379822173014533218732764225195418440769982831749516780461057177139425886681081227670927840049657007850194816220281873739917079776034290729692300342910878937223011783443424754103547055883264670064349336009410679646006646111791877736300158234166082718924980322825461724241174880063719531843332904680385395340915747930620872991774174286630687401742015243638788975440047939801920294585512551360118132966387732465162041296664096500877559065913035999603854603514110626038115211302057528175145628700320468258807191770343413105328471544217047660068823132204761431376624163625981810325703671014842227611185495635318637965922195078454240730290267848664662334308414825703199498154819320299925242834672262520360421213975415556807053294755604638883426626990314856696093402912943005334483038114772780944292231249107804246142053199977478084658794695249689822484940458474987482730704710661223067734344759234485464900384001795596951012591676348565914176157785700422780943725627335827754046722189323994359446620057201000790480117621442591603629829051753485325893110674753458074315182966755649598306845429305804126394825061428174057112950502064680122864613263147478982164889598918268524556522643323281181078579443779075601035439348268288609062403900671484298383440955856091312191936061867884327240791315743191875703907991676366998097553075566611086834495193707361127582931743513412072232288699809606978661813775991006377614939277684432552752335854808826559814333866477778756396992745422228830283041035418159075807361069324257588049837481112433499118567502490380767779661354384269208330729063110634287957302230768545425308740292322012584606170205425362980708957265927254797062115909008190234719732327987762980758720843893030424669910506107602919843290157956663764473921621096111987969664576437706127773045329841384702880511292032251792015178257023429707151971196607263506250456122860940723404206998552622438174265398115470360998186558847354151386816323270859766082141346331524147189192908486777125965215611289441242689088873519624888403112485600621801771956710439965828507566539671328752734647214682069844702698576686766757818214120129159692254086230677776524216604533496562668961304277812423813066845945183012295960384157091255032638505910037882024001439151018133565829723616212922409905415994944832643437856415250322660190673230443229054762229518773086909859958622226345357158307611562646441321295012815227673596292662000050912784156021245016702631534541049424224554846364140095189648605442103337074787522050130789012447566741909124967814564959423328583955280046713659760100978369339291457818551996411257956296741277810725966707132032510420697814830815787895542005360098849412591937323373500434833019805334226004441732831043105513481949370591605018202143170667861293586915863680654461473685408247782154051160573873682336973384728979700430849427864114025315412935313605359897962159748102804201340078813620969149764565511366572396455649347055870422979152836902900026582093904925738187545154796416371508620886487604458892679535298781428786780292249957593911775487847240241569826529154867446461214903733750806124282634724145968507662555534391705356936970162299322884586811571643112254516278634975102049683890344441086572678218670095875232909888618567664874610733224000733974022104632448723215890458422836859779921369351762915610529434859349441965363689144498946423552111186432328323092207583917794260579631085330161154003604922170807965940664503707772761229267945714997352424367275689528765355143348527964001754577454258313001139287309390207767635635540189692190533534918270094594879967938355155765498159126931545750201802765784917722202962970043726803980391253047912333222169331080371427689013033931380345316578048970991038550199987789800886658048490715554682348817464515700135154125018435597616217756048355996421989002392529641402992918974906025007453806178951498910038019247719642894436168649820608950718318854882550261894563796956449227248782857463280808583847916793716258732580412531917355728317864379403143579153232962277126490764597900640641483303554017599037616439758236257060421337911332204938677067517248986097164829404032054431139946005657949399349323701371716109932615169853656962853350653358256075647927852493698655064297790824040641568014522699593394935209040484259776351789335950173073959407111056400646109181198216719644664559502294779059174224545265051565965711558147282225809121906492238999825524189727223012423205198536525313710081608149112195626233260862241358413315473664795401888714982544664500925447653555422332580742774274705487968240248311080753615802376524717267352426562649853300222264049875990554113746306277053248131293692806759882056514950998906949513971122542738091456379222695449461004053550977882558353829810787885863268271994913452571356448013083745323115815946689259356069643863000825839834600205182325141047849777251977144141338777934931799580849713231734133210233133594845105481857221322559209972496870253937585673256161840316780233205773316438134238910137592030788169524448105060686563529441907824747499757987693975164164369414319453358755512623716796070665625832190430162072419753618648794646884179725504204303199448038686858968165155338489650653821048357453107971103414582061862734835706803504734561252613390284494193330447449186962042279820010688146182638988927810158236200065108168600540862942014463847082739088829057710162916863244995844111998060463216605220902457820162727277399564863367018860135416014981378109193141125325957671870302295453190291184442091488152132975923525249753285313482291419987498884847259486053831690893501595481208814675466714619431391404515880039045975122817791830858029304362398636610852542738307172981705971218242017469232091687147205398500122526009685998856602858347990740932093984916516027911325389575287176353364273825016927748586342312836109828956089961516224636528933423002674963164603756860063757070166880014522687260213084843060236766407456694146096104335064906247636119171535861503976039622849343166399733057838309907566230087103365164842367193609462543407025826168169432883489712765372792141039946173240211326605978602875339678538044988021686503551224564358759107559907266728043038154095609266510921270776311547496333621085899907114132052231479741884334301239498398268172021477356335848656394224364611900746333993012580373541059996997310907426986471193349253215223145605745237206556351690491869647170271832624483423821833688308821147431290299867201535976559261467040404123138418330972464680229551261605357658840885581628391462577648763018983669407420034458440741629882702760353237634646905502818606446987368258452152846205008495351524062691551662887724186375116584509970578536036906608070864754679024158645745574332366619223249289926822765258516999077053147273943883521133998809058354834597786674024310752462434783236204502762783357006219745472680214632295614474238052434976265779760985553424247470267678155572025353412745351239605836910905551604311030534453157435829703162171560532272266550574725029695554389995118901417493488373339753122547010816579670550953459934744432637087286750384760307984099553475515543712291981259901978844704628291480324276235042156416470217837312688568314323357255585137152552612183424563206133767391873814014406583135190383783228335714845388528414095681635737851753306960594145297869673989739668527197237048018309332389398330303523754867201116715618184799861863599030738588587444896309031819417212993250528577394975877338663532186992139360243758562204633391311276723401414864086856403634072752449760109992866481172894016723585894705707591999824667282206454177751835436104150016877774430430137767228424839542956650196571978659518442537387088830909016374968373220311260286861329141916313111326117615510576519299638212154861425842559357671214518575193347202150901014743761480649625910511060472372283089473340256307038455144761318285470541590347665702478175491685615146751987503684310936148644043913397473484457463107136766110606123998772374694241782635125986192926175357167752522540343607043353456635311932914824183280808441917421390716543509983864731373024588854229697837154554913911049188191791586184059107520200321463180105632955763035907618503726802723666732256442303350473656535679860409782189950924739636581095554561458882510131698475300115595190598811414698790968141948649163060291822339708548032863451370679047795562381698834072604310433770088512561370212046764921654170009193014053159447310608160880656922761875938281782175373368071841301394130009463727300652099000001416345798539847075978185931435366579124389606731792776080287436628809725035498032927114314374062049337411073681354955655406123428378124730826587856209265597558260768561552821952150390747219414093406377867995210963105461538665357231531992554958639123934689933624843582925688730094616527166152484256895209654675360604220943020309537235553654269955551113871893811205509519130990138520786564144148075704635179839467226769785556167224448374865697131584303121536619186149318788512006741558696551009977639777149225189631092109528814171617339052844884423999823934234275353444527154856675541665911260795972096085670927363744301245945217245778707416525771654839957971087108446992565046635399250791651198040995912093930507138268895218780443387945296467488865467329234879007884892747876474859425314594416700444257229231474462814899182404973057793901257849760545506450770589881382764983900122201357248469463227002371466927748186726307356648889158176878818443594688490623082062986310751240258343484187882113042744169963942134943358578571483571567608237263451269492412475303020525285019950396680304702101162252348114631604760854049335596039824481084633740507807613156051375960185064088115610942881193507383644474554561324317249406828120679844308522028400760033851509693779819455450690144805321253731816146627897511075825798161847743577161729269339238685305025353553266287679481959705263182471242331798964454870654499028576730610742582616738659241317050912570969840609035332167204291047834116888533243142297972986002697729385828072409991887299564388732303945815719450409457111250241168655715424939776004515185480997981192751695071774998328064042240395204726844603860073843144452125086235793147742692366244275428383881074848476078864058055725040366514546622072502759237633258676266018615355117634546189899007286184580339596134295348328431863874198219690286862026400530622430937078499059719731567433107500232671242342824259105278672846719438295516572601680482860919938452590741141400919753504759226418845376848720478169509889976823843117605488083576318576701761609478598521106620607672284705769090961152138156727237622263928713127099490757353603323020939916855649045424764565520175494629833817282290952678661118162030558984086961624288823830562606570882661008944344093448039763980398465132940010899514432204291315792569284296572985000127210103041753825508462509753578523917075739587417109577800562533478380561104139404103185881368968289435759817422395944837398904325436838540513229185954428689534383710686497953628710949049396103038284771547082005338282598539831619852951692530652438014145812574951243155651270054344344480275482157149592771611079222262019096892307169003446556441612714065955078458629984481690702076425936695058046120734862558417942310830587169746661982312204771840800778274087102952693677233037398204591024148968069232855136776858383341664971242245867991798160190243268395577854368639990693548446946534771205806671176589320860183715809677283840623365764614763427427951753991401481956232682666652371927025528933846387265888266789776865973990280704292357307680398914992316405553408729855478164190130314162886203936468620093257594391833103211686575944978356844191895301690798907748650017452345835994933075736605356477258413980183440665840967121225680895088170081423310193097235966817921254350100533472884628330191686380130847904527308293096198845871880041348832133262853631134687413130748343790205611986132662434651825465118930681895943169955070709073065640831478272810915592267026736301690595558796603659203037691756095382999862272221288427114578070904009936661491069552789019273899519541500649969554481417831726684440859723601745803823159091472748162938494028010713494412088997122392573822693002559136343025975817751479369117582844498543208016329439192816456879220540521222892569432969113052509200076384494952508316095131256903128626374886106640898715629728369476819489002702335060832197145865846772207874291972932036862450824567908716933366639896317502784570688592905384933157566920132171612724855107818951298705280253179479098031178525185595108611719235520056276236486321368535599055010014161448418164704328681000564566297275937713519648267585470677594576544394359187749463193475761464993996526366968314192926454031247285098653359395291178408771492826107556065716724552377227384730019108385719538853160118880525670095286057652621468720102487203723287532967034471786126834525243137871092108170165945828996733555584133829150000271237246477062201360825961741836242204436720284923131481784018634958141043705545106037940367838753205991761595035416653766211671101452364363017373488457875931172092608385175293087251043946532790922317839089796088893314901490251488970910685070452395215894561622512645760239893204302996322859312102182133634354439518991308451885296022290408287300806488930052551951555125252387943076037644431250629989969069116610848543880258707961565976508739460822484187098578374938953469214961570058323694098083703847197184899994332494921799529921597841799166807729145411832852984373569728871546254800944520336838198691906141816669363176668488858980139266541992732843898565733733331581543115413187735795011519434007861381707629595221226668318168405492020539771300085588214630885201655108745255995326918570248738455698947454884192578861438073256683265802318433601651990174078417290948760844787432679079227881266472003221244734193238077431741723065664537666869028155488198543512079452353890455292517603296960560430455871031278977453971653535864803194214288030249170504459667276647705765703314201784515216045631358416288172476939224861901961691134141541481376456075453895855664991788752826551732681032099467570936811332808841533599105744256317874926399614634517707127230638968234860528584462271287583417783465028909196479960115816027405450883838558864062163477022422813978049429290615905986468795970214917320051131806978540121903689692510841830108068304751703107704881915531797830794300668586350624531627801826480619580813600115585524648531303108750549535932887315621168536420568660881669547332218749049749540014082740359716584984192040944286773255330839563106843024612564174824610174395507931259504136465935561053838788878256951385069636385461593594001164555532854987368488633563364066655534423829722685828515499526079793707028381724676288944790483568516414891487298925186255816346877816911231692692685955503965380371828726252864291635130406637257498553160811715934088289872695537708780002983073721497205090296354888560472847207513121495403212505364944975749239318216783803123616592153029370086395539613167204698150949869826063222290482275813331350705976489063558316603255023072503136833608711697789051776361285619110012076707307316350036873496960103484927715612389612976988291531819655040870928835253040596571929909741195512447960836754446910548286582937111426865022241394324289949986948813171203798808660413716658628200474671991580968478887115696974098516096856219469537712335551981923104889328976672490005677336894661837380607164921531035609108864408102914710674970269579934347157912104637965488324974193367535500583795289889061309971581881216365084266063433953738969830674016840727084818322782109368391411146910218599824311066917565477293540086653171770585213926217301905791991875903209689346216192499969574956904850561951219314983043371213428282106738481345505695188954962500869622568579292960748371103962252212241788288477492855534991959875020608912762605577707015359310033129708177554171040340432578249838784121208298007691688068834011075205140948271810575764920707632718903657183799420977357037601549548089110834171243104241349126779881628395882799165888107402926860118433672767018271930245860949726508896315262141868817861261785371072719437479899259996939498750961172381962702035214874688149029295263499170781417262454771374975839523474676051724551852061474949716651746113262294008170979639227641929333090568093309651581186236510743347815721930182320498164450371774751904675479726952911726911059301668270782565382802457013947783221069605779423867193608341713183820950706925698846544625222650918635867901135463614380843997288992775854259626528016835193714282124975653120171055933500732629446759595847578339219055469957418538114006474752673330092810696212899064916627578493773539146952644351705378831693054910596015853917045654418155753016103166711877698661112865097107574640082003208670007168839453022347557658521916978921482849550227033325941110037697355310704351286869170870149896050919408166062135551833522201961249551264624581440316816602028980033392343983129339744038577235546351087324712022266224510004919460950043357782685863236014270664575104192852030347401449761849085614580536161491561161364950144897078008989314224333072509988624083714086465868971571834911528222588555255474602726192798610746409750737728076463057255184074969422033249916996933843397025712741503769651550785601122582985615708902132825717657578444607846748696385566491899090873347692160785804399933392738416917186834161015531884725050417361940123745617709673090037362784265617516101239313972556980227473468455808809252433098662495864419481448229560968440446680812878614022426180403534698524936776778488922177584103355904277597149861626932994046426622988103983454527545332031732857144221358230962811873481635121533419057237823047167806406451191389325760592229075524042589862865561615806978973851427847430278707133611086219355505983380560485940591411230673440101899065402818965881154126473987370801769253699477078330936673310566640165315368879180176693947956691878187978534758873435938490609751362076660323676531730134935811524906693770336795346706085994691236841549328037866171361443069873110570425945063804913549295263732731953751193274586422118406307519841336307696645903987759937320852347955236447231816309280038642944240883656575177518822883887368491962209382422992055810209824584481874024044701988493966847540000037556096600506612728166147985037056182015950616061265442362456561371111280290104623569072989822957708554560084254511782806736975746490377903190599575932669492593329468114390773258432668221772948909344576964131696955152275688534581668290742262674482333798334024178324468577534763686877583744279983173970948485689747114945076379897839970538352668682121358550342130004411952913173373757372585294730128700377681899387388693241571238306067605329784415430845804139968880368969995118299111203907143869128014268184587723785733238900661782444268573784485458125140226401735450439844866061718674475852774348672245746079037201358337968859300474615787769901989750927035404340099280212459557631087814576566172716138960957511461116805779695177221944608797431841620596294372072615684895121084175946292433690016753762403419433310825980154370458422215951950348093210920376876343350747567038646358604834212351856740542362340401790140748829363345196372894814967525804450041824368442133729898532583822076643371591210508918292263128999795822778288582496779431958585053383925305147313727356687388515866472751082809220977061421427853390689937257242885832157300424851560659914268671830453144888100715702946105476019349664529587746670247347204345456364436091480530847076080802948563243005750109770313443155578762906999694432700789005653676181945999852578944193061531598750383764708392458126497385374926372127520346525339654066461658857117385466084633395224603058955305244336631816756463472174432554867627351779724373796780961661582071703528418754756633988873946833487540238852158472521188642660403301370699942627973213535720271540401368350097572216767404327686218117362495166102915795740632318666973832890402235903672613953800664568192586631118938968294529189372430772659022757243393278987424765739246086631481927825962774774089654072996125618374203572000664621745917573932045523776792680723918907285306644676563761285767482468443971555685985499663390775299425782361326618207394181781568930858567488290510257703874456388990706800063977880563257021553256006446911591471616154861242864806735656557725011678444957123586504905270151550434663947650293640516513516417930571827200976008858236233865294346882365356900033258109355321023705428335861754973803715527217974416527071505823595003329432990173863285915956396631254526679434040829962326860078313817527235372681378185021078854454299826776113061356505467435828303550383931557832598620351084748848921406015361261745191775830160374836139114996747419319770128049485588486155552487101334440665574167147570336762860541996758538642525770352327692872551661859725047002974463592007341806782136206100775072423651405702733568551846763469881812778368431612761330345565060450902836582604911548462616164965094108866666134120986122128204046868830421553955411790068380700999842638054869960676873708762172566585466777514084261551933219580911298231759263050077074334451074799370221325379304640062307894180548443795010890495697183076046348422112767924270109412211236340655510825483786543193760891924456940375027510484207831129116490892666394278673054004630975620199090185390426659495238841733020713500722481977510865240970614383869307083643089073302059754896184691812124307831094362518548119837674571679064826565505270257437830650486110435050563060853380854181645114902175023258078974604852564535185770715066716768580486103231312701459847850700137429183389824170337405014987456592093257438374123446404997897132941736677370701175968520145109351256456931564846803433893072553448156472324153653236792366905103647684376727860902759163942098497325019529774781225468630109622960342664799035706950122753179971277098033013381641337260041588132852187608133335287080322683541212169659497019292207544648492887510467654609801295527128977856010427035085619456021613128301984585075072949047291976701938244530600188466157867199402214396826987091483655052357189823815817472327969904540040975095774371988407191834225954644539941970020593367709305291705255440902663726940268164650111029349040495649947017549302723115004179690415796561206962207728239528325016467895966459767080965041414435131927715807632294547211009822443490269167638628220905036742202216665708973801841918157437491890623613223102164372855992171913817380178543549475830433522448191775730684479103860317637702622954193031942008544253760436981091723554231036042049479978088297768015686982778698419138409462773266211955258297751873792409752028600613395067418115435663653979730735855146475163332986097637298883511212663791678165959550964328287842826743813952662004386862103628079849279628797042622315738060539470479270816873886006808144722213565259858782624729764210115942736064839845548439533919261850865667454200684547686339937836890149538371024675393180245654835187552148220430472671234969365395979467924130713954138473912481864039054451158663355629348445437122194461669001009399159322436852593848556110845807873211337108478670996335873265901151080949412972903043824828495086108032125580960441903841756879236678793081199090125169906083699667751407379932025793000160906070317759958211006979485998633077587966318989565230888047017672090537492058812187739745142295538427122490876266518435498029049987504208696861202816541427677458468076133595630075076891794291259671052968037020620474133825634758054797150468187772633087416480594208543607004382215864260879623893929225390073643876376271517545748798192951985713500385264356797275533293664643333421942737413581182920034425921308228218481901646749978915040347124368630077746753574883741036133482625468998005784780652012284683437538403903201363687231496144550844194779316176003054337537736459581658059505277230392164982917362312755555610179128252380815872265750670903990987793107185470891737949963397298464415916987093831176860181579860477713519286301752335209981048505911851903106683968259108057930262818513316887987743921024129966952946220742670466118768914357063507214591469636875227516692809645369860816800314149517591860100512978329806784657328139884932484526796720069602691808863960320175890874311665645192993871370064778608416572931624240417535449682276002661976107201460545296193416986228360653416385624718072107128628692314546853364887362042290714842881195372668601563987182007257220175962755105182568969385212544560308158979871221890913367187877206557509644285454880800937711395967193397189827967707678241893128244233054170248790722273568093648449689549489027834786054478170392901349102148444871693004263939046496728995817488511718614048504199711220966160689125007248070042368551393717369008649532716819643732020030752699489912720884605484601660831623258380708660449986821098001035891737542114348117241489032778995328882435662965660746544104542126145104104486072362750568687279067714039016543196576764914631231154073130606693808528242256467091218654948912497882319180480928798793259370124782626765967777450285569028937182232446975173761088619907384285243619663952596662138028109503978718799597479905280853244642358566838089092367444354761111705877893271036062999354353489125811762905490906621661203712563063969860979292433506376371321882123804060504518226082451187473314951285003928223932418165879809544819221237569159679215517023126210903708013449958744689069407622447382507942643273609884936112449017422639318619187692122018879925758429646486010696066387934128678748257741200669852158526977575170780203692761577161564024287593787318874955219531801584367060390594404788448032181501186762083462953513556309885879796216640376528989232035363161702890483916945563545779475369200762467030004479550396595530562007411264992388489996603701194557855075190753051674533402996565380743516664130392338989844448795238235878827471951421102791182718419424523907041915779645317340360398806986893687256808945311497293909491548842618753689931668552714119525355423269883531825449388526453677814183052696577460994660493213780558072766044775993179596050835121014024996196099933156959174086114226811733594547695647995170280513728566348464424128964559008070797941750776823186288482352203523407179264927841563637854496128715646907487411421942669585721355416090131070141923348907251672163467307002620284739344846972576400645346633598404618097348219787916708309423678906667046640748385730377355097554821558429729614170196515618633241464116418365660233166347971556345151297128861098974590830669511772433475779879208626937722570504526404937480145139598391511080170644710272138487198669318104306257201897052373204009814888981374583853008572683129562891826562311679222087583329290620468398785313933625268479014338314451938267217464300342390741501289253296519599083038481462067422302101841319752494225392454772561362539414247135458418110598461513109514821123152329276993545459414028068411325000363526613074200344428837030317440274943645938841194932785987367124171730576524736546120834210800333824367642689849788549837866317457161205766942426394859355435856309698687678583576260499786863372754659265589337199352303287618189319055489387049806721321995664903808068457050798755608396734542929004127928553115518516413023397805776603221489461829529270543123232715509537898716029623679685537843961854673887025033611245570359617325320183288620469603341785850070090446765665378648820148357486947770213487019654719607342351131592830652778881490632877261755179147914179765701439635820851881318695976107100825416073614984967443992262453036634221777172732678547241921811392215353312310141717097625338947712814882479641975563968169444413819781503532141626644501197749436290931027304956275226933370754231546289093030533474684174517000875179774434742913161463981736766593580583321064848022210685066195466489060043404340505747623268639174467342823470828296818981692108613551381732882257678059807141053397123780278019914195485325333839835060685244551542028602302535058791740168314478859463532225486420369266350789015735853567795996591282259522296706197940750790908009672106509809411332147850982612038790086556369642448191974900033069129645414024453790791511352649521112779948925509239645288722674207486432036906473423053630976780256619530293622128120167680983897912694977848901887776883401406378566174072322126602302813207839254706919608924643873695820889911954979568737999059077086803348586867218838800147930050093094102476501282595670404011985817989755826809529678032844381488003772171999344491200974839266351557603534915981404914144408551542931902538887942665732078270622009277928791298425861405042706790472275801769796080746289864203037869991527576297223384291726704982646892484942232052971635864752025952084713144803466692924200911053185780748454280740373137051235695580879899689132550828214154695494804945225104104392620540925418694145334080308355193326224550158668317757873247849424792114848243930188524091399880620607646135092978796520897986138453106974564687567385041269809192657668256352333843836969794132769175395335480682398107431209391051833028114650158313543053310521154966127907579336850432850192247896950076846587641279404497786376526138633551501101944435595666144949493284201710795342746723966168676265427474616821016201344080859390725826252103607756496018235228261555561916338393987936816624858947848164034692536690346791319667746707629749136784151946401396532448457404437279010408815525143703314856556650271321451690074478290200670830369868423801939169820961360924926532814722046331768437108485693561953420143798396665673030022491134387243505159309510299704629068749995380691372180478856114665861829165069663484051658124288265930237879209739113182072414301197447959822925478350651377339525466674573354162197279324402002491618511082546826326967402024554374839258500382436411199340678872944777885693302475142502058474280145044860674098068520044858324758568140157538309307322943804432225412753531381310710611233981999324717908666145184088674873278951520684559859416722896799441924476412936337240916931742242769989657414198320090323096335614566987498797244477820068503331025673113797094942688348988798335273224899131008671012661978310451228740953744031821606965047213833307889022597048561108420503259116006200871729598760750610220113905959055225975690013225353227506558036398920574840674967554799064212506736334616032648036956125044506298230842572001964824837362421624182112945778011732354087476268669400790870697292796433385497578737367659419828212817552268441482147688421829241843485076167110713013714345425808984673975520611503397832633026784268806689696041145279753961884481645508505252689921776496066263808183013576860716618970005947494182150683432603070765496785617266742578942463081034150806055227429434714272318030883633005454689897295450601592124096577736562087713930586287490598285552411040998020329000825203690402851869686290860995771275018366747093772461615978304790340619199010131384816018279490421315854484823757366625062889414882567881550696619598216935904379784919450984544445758908581701946070607912392370569957622825754498010794629586761867127628719940891419782629148892452041589821382818358582203121471313352799190019274996663170451548027185911760800089896470932843629173435339902657154690629717165079956404505424459651378022582221815599901749288739198160356591365399580389770588090901390707306618666944777812131314866482118248653383396050476745167050366661198797475578902642843519175273553474673972729635497425411148194974534093431483870889863490933251245330405731340241477690709922597586483844730040367108834912234000575998896904672879559104959518438321314562187138292862664297947778642379188235030028125305008907279764174973213678538283186616224248040771459563911201516033993492369140413933433646826594205280854075677069148518380658379903667727301183992965746328024626884882307620425303235634146739099297485838636594277892399062607816284804091467436017635692487309790626105434645822051237400930352483938630850366047826513836775740434020640236160687756996252223919486319290053223175020873709711873513912036095845446130012980365342550852421234680589106534129335711185695827066303868768514491807865252365685236229450607501172869450363222149068195875315023452108520142187190867039150084266404181649347153504399252011077543472291173552090277524702252662458321407310113003707299115913226799781350659075709623855911127905238933198370393127557508715135304198558227114153787237977526311379013451091047703955256250760996841776829977477541905515606475851633491890976529835030991179941257191477204978796534306022530542897869712335849596750825745202141409432202057794216276046798636263331284566108164569777732293253854419781489585373597707839135371673549207869051129516837549708738408091343758157006002151257237099887738886656188110138131787723297000530854824840972003736432438481341425872492682777609792680314845713320257378935487171234031058512416510506982119749000214745382590680571124005900919620624510801098479708793266606721917920461593080704432285603915387927648790351587135192027140641277718650092890380205749433809494239327495029435292201546133191463468606199100890580243804678010459551779449005483263824094557049313884544120263854393359267821298717048151545152138705513522360758989823055219312558092557870444135670751814453389828867974636768533211651631827334827341577498101536028626518851608478035568361749659550348444587032266389933407985304183529878414068769407770871459717378564239666791722381032927867519658215962911244833762170912756107680680570690383889938125862090616651331323759839225770152103461480251588618672762073440201430807461022979691412751597171593139282021938057106016221964352722706336753767802388528959249665717358727739610241761859908872563218910297486240795353375132156493139525311995470129497619667814775554781961346581105952107194898914821967239389004849766946828081617471843731818360080002194523764628069925963862934627665747633599618260056069248731191038206095473466016823055124780535665701415498496794175548967672805029960483888275111892464767181737480151782445683075170928851885362888850199594109056898391875996933553268646285096425739596766579548629095409083287320143486814992632741045404218194957134987483147574804448682576036697015485314070300811415281926456654910206716032172479092173674708349347803806284359054558601352278472560357752072046989667706512641718679729053011912863250155614817887065712010744469627011956913722774916027192184801906278631309788754164565887602158766301019472635111693053952180614152030716578202299143598135067637742709815232098775130504006375870570713956453347379468307145258597644168589017715383490117743632655118006020109796924895069002145310371495953769736251296919065629353225736905388173365637127566138618130128229450728420199871129139855022524543612785458339949670052465520412164745965459758848667373011689469467154078306127360184818338175146626434005039040527446363251394212919820699468244763341561906099253851435690672535225947171477232455170664017490826782269023028699393810457202199125533906743859632624591493470599655355051330716857507289916426106790115556464957672817197732002418454789393816786645453340709597189800698946225664292447555752877512415857574909684117655260114929484772753867078699044311080204183345921607027729144693893655909529305140270846921761330996578567929930081218058002155744178704239178429674691082124295551341579249269630668065843590070944174727660993614189118103631411183643427252827791452577096963225116781759226805931855419563931752709822228983543679692896692093242985227390918719584369742582641744870659421183158719553711224802845725043994493544261055800516226456111635549546544103643779785441333074520207749822623815047985720849726291948517894191442307487707329937105102992600853269462653184889255666144068463505668327731666218253247678233136474380794735997145351952345199759379343839865387407872927426887023047268870169903395668870380516513285440287361084387513144248587824901760113187865018933275237875526977324604277369753330838857762822632711039870626787430814488546720053115707198954418799182122776661874613767006036100885037608415832532586604501040663393362273588050190795371862806135237596572361445689273338639340985580422568877617233513048538063030244544583089619669625701366327155992008787294631843799222254154079528851641354012293365377929142966473211156464903442612984873488072447758133554128099369471734214487857691389115496093303249146680660037771308023305266745104490567734633035417824413033255358968178121103289314777419583968254867524861711328540687292450742892847496501273137219280439492984762056821358259417797388376539003971285813246465626583616743668169705774584362810831392442531404926296093489276238592189727534231473938773526297829220545718416810643019836232551036989558976849989877640495456350539398768013815853544642675300025555537763932743166279256222056577457124378557929689615700044576661938109689566281870676935073153264273323201206195514499329265519615340286916340433357264243281703581051507531079799564856624993761652783703034563522891540553240632458849292405202525894307104323372241503136709974845146634896055258027422351128959437219436633695646840423964218258854160405433673168681618091089686936219661632521510533163815642350229005609648979408276047818046593917295051151485009215684093228726444613625809537486226196593826734133835178767760301992732972338872579330140724984572348545047355782596209000729198342087451072274856564649207776048011105552207941992759748308751360572660966999760364699922256954080806835128676462368262507858301908837795282630584538722782936446630730715318819883679874216561056522444441768850446511582250820300573283854422210635043639687842414771548047538019458541284274296260246400334505406589968501556114463385743347518648118620570867606415128146356950469301789572992191982879146018123361037290558071484169642312087017860463934051590840338025777473102221996446080494918875314085686269879952449245842300422402145635609507880941053957084786004521452995269383912325782241964304888832833429527342941747555651322999809193052975820055421097279972921483338996262967922269990690201239511457183026022248968848973966922461075607657381477305825387492355669291358784053283454173838160894470569966116003642205396546575376065543690956746287482244522386994901252927862016697916776655520616976498777236884993290954253767287180397997247147426706778534275743661854292223036305368798727416678732693169362102107559734658608038756944769024797588579831239764141399147184881547107951291049000694247388994449419381812609003825302167101208433992770001746483505105660499938572405323962712051979304088464497488600556014015558073380464657173496207547372985258068716453104465352922487199860341330730907107472195621197052594967362306920009646843467857990072062520596374262320898634708975229895889654104907621419670843554999642605443528139154974971451575800794938423649039376606462290507297860043439751077046243734911100078061238851084528994362062228676337012809814380792524461348995890269486367596538248733085614487708273915396520058977207025392448829470456110655442544087344867737578436709330102941606075688517342510160608492022758171307887821743337931732374610454922792099521482268993060006675126016877968779712546099042252195643426986664248735871440070856043032087105131935305553077010861307837531238086251318990803285564668312826895460026321715631204681468201219049139454808003033334113042929552249797400655868516345652589643596465035667535782631191644718142972251642141773468208883777489808062154189955001987457700921124523482107176397582865483487294744692949046747228401414213312987408881896762959801006234905971266988312920245749007949834368641855296473636523558134813331504963141720732593976885075041171243926728584620729413581783344638042191461516759200726682088552143939787857910450836671372054454092624392821123986482842151420543916617477636790468261906998754003138037270665257558106025085878463318462683876293581834768900131776447147073623117423363845795993298237326119250223199360470154244741268190382268650571861547948067808881737263229983742045316803386140251335395631283101903828835524079457269868300034018710449693204353349649180649911297009101155479056514041358566802147959444502395245975755844430431840256633634119810655317603317351118752192104563273587927365815599932599445050647958672503159662274797838998188124929621751299133802296966612669477653836367246593416172566982573782837402611914720958440504609280652223152690033218483929699450337927386241952838458772699353329406521913949205179712651796573104463045335414558416107810268107419236705311684761667578926896307719741738653704268145620497326203994593170316666325335496033891826326481360402259238079108214784137695933396736815964186162015241324288697377614710050566346900517127734011320535285315412450326282004198067088411988194431287246305425906774258019902645501101089461378967005572097230082923785686742451234183213300142399723307892461590982231046703501601952430682576529382029740237701006495632424086483688432633881224137154652510948453542004201660940061735871008500748573797132275283191142966274137641234460660101374259056597712070685362956857203887539328357533568448350760304814051942114535544390616149069696918794207313114312891962795947164307767067854949616841353967124345232745761024109795263752895092859985325822388886774023960279861136614827072390078603875367594529378628940287474823071641470455787972385199914819997482661497961946272227055585725596039282970449036595851735779831571105847864840560299307672328708117734501962427839924771169959268948258284766177749154238932517345872335535596028049150175432053346541182664768123378636654432609314033161146858609573343611511220374215877108264557720346920501995728898117987325633426773999343275454506781826447799029172336762984221686444668218489783029947985483528348386262918013740463946369643908769786400757697665164971485264660906332924426477393082261855091376010095295413598157839557041031568146116345126851759012015096920359819095637849861260456229009964761991039678813617920486338437542420973566055957874639982524306037591560135397260979596050902426891550994655404397519185337431858385709200724143573244268787399661603987753552220012883089634299869344155833426781859900669198568897041850496511700719064590998280905033165979476163717446232232051605154937194746949059367208907560471406421196003360358061918695794555569083569853547195557481668906545541591892804983483153892177911568652685632630142687301970263304565752268456252346158513982739946492758412003469210866343307178738169540354984926017332632992463975953217129532953790843274865130923049232694630071260979399413176966077493414951453743600549637740630230900282744898380045357081522617739629890417152801330664185225565581551112242732974573121025706758120973379012975955201948531762579359182903742005011812440207321630494500494187676856218447278160735874548353075483264435924262537499169611797727307798270450009813038793680755712563405684518684062462420272887412342009920007300972107541176055308593808013040569850505629100244467835400432125518981204307508367447405245169202881351988519866116605776796424461845519136024342406896804135079703237481460869013739389785451683405745970125529291630402758679130833713760680998202984146759138275228673383044615205099712196011590695478850366278290817956081029085371510072325671676317584878260128317122716337058524624375926551472762838088688073007722550124368669161838026501851062289606568323478474335848359363410701419298848928094484080947238025480674088034927520470905310531789200186214658637327857123679388836681185490427259358222250921263581185854654147514937417354581684661957138573574903277711581957998679121710986950101637344645180436394305747349581615356038434165193267412687869511396535360635033626372010504963297184378855559703326832462439968308965537263438141565775474098349505253278793652612186651168388698379775953876225125004625596429748622426866894117063776440161042285370723989857983828843660238310458750623968919114895334388131300588413181780640586664747148916097201373190201362519943792304981753933795674585097971661025710421667124861792340922432855983041882076932245181868297433566341534227655841587246202422909030273144453950167276781777915669375090807235878909944662373213447014365809154153069540266029425654987490084392025414560804958753338392771915513869967917047230258650540210621811175954188585939431531881490496257826842045436206774650154451554381040280937211457511816097800853130329342319584646380625255115803292133061652668547629610073928069506974179121670836589718936984937496027997349122645899786858275786678721389775543945269673273485617759499217127077875173135216035130638649736105195883672914596882742468739532754786048470442888666498975878601562216373921153531029941619880149108152882951109637039887971663568322247041191286627827391881107227034954139682766246334526962951703222960112091133836018555213632163627128115112086444823846728346085234250554921005017863185439842347286254398214280644961593949232380296066138191896038489098781877020346847764997526598284789595677824345014645627348187729335686937335575094153322903626242975021752346038865760570406446245153851466770560775299043939454321282177509552956069930166282757201411049599643788287765733451610978285857039754675505956023282463843591975657337594983145255471539705870888090751900029235884824419455305443761790240837579254315339886785752853775497826773204423622954966296441050306832713971658211630724610830846876183341871956753963576975023929457781059239814520909689328330294709906429850440248392649189934227080275774127713474047105392378165790232205101554498709808903115632477836316869757039952227819671108435617945563685121909841903609375183130521071961655904875887816457387224725157614708719316619289052872856789140691713484164108265108029106511865889309562904355965914848787966905225471851999495512527435001525409551852581325133816193836754653333496952909489457136419631054336447523464117984299035800606540883492540626422311265402255035315463847883317058185768908471743256587877878655143058915812176796831068996787484756792037434481083824708305945048064347033438432219704656551831235471632665033853520301757372345534071501740489685648528043267714333688473969878529292197585705348900374163181652307694428984184593441147859044677338134905808291663991443431230158189646612337307560025861088788623520693278911184204288000817146689447982726263946934860775540427219603774774408142318268787574608284193513236331748638652232104359023560851332607133262854055834196528730359563151130664860424476172563197139730042351487000210197976434726045611546745116779533084089374521029992337440586450583096645529975487857333210282474895960376677775078934860142758245573916011654245095834491104408682638922047148294584379517339240572530410907851399076824011903211853406348010242353279351031895328963194276870782712752228708938758012496086362887066423135931129475188050218014891069791627554919780671696721044368775680030044161453122784319009306237534620581065430510950493901935999741098596939570696604080328935072777309595468445751438267917244624598326799297845721683850012983016177684299341924147817826528308053133975640906681715066379478287464870347076823469538554228033299710881213668776168714103042673312601439982157776159923725653841731912986500921224202975030343027681884210687451862879494338305118788051753070260693787508425006780246442701671482196094931591638689677948967873434368408285245175294581602365725067904244516114098984334231402450134749919600371581470618566660866882149644133234605456564539836214487075021274170078137063075126548817351317279257562315842883864353650337228802472930896059550169779557942485626741797709181571432700913183904264997750921293300298191212940564682210402676341693517201584829257872154050060304678834221227090679734161221747627642618286564094288538649886751276185869650465507056197555663232567148509644497139796603891128246235518368485159278537769168183902410205296271478534805718892461247350031933260314311572871510666741143960502117497294467165981861218179726489506398977216020957113022781619389649068294438845686884535197147775919800345516012563778185219944281831893642247545503785672883057386267195676892210245702673562160032084943260807919260338265374096202960485285393849142274411081097312440489689756073291374603250717990061230204753901035320229899949131215506531503077583306224280103694952650620709419445493257100791745309873026600491280564418544419884230248421182466356217673716464294661499532646859495829681909834750979331508674552888132968035163512276841757369481074927320875081696868563537337812704550491754850296141753268835200261866525446809007187478663364221234127613454995551176751007973434865882859023834901957070966601876068918288801870880370055832078525436829515424611013501423461316708793539844450051446230887020962175195905882180266026029795128175809547327622528686971331038428307569928195879560404756234126640030978869287456214823322864571433799839438306178081792874375632621622715536514802098613644595969225368735755319684694684099562455186254738647849348140718585639492988295553817986336577474795384080937952858754990562787201831821387981517902909498153407532865814938719952802718992889215162650892620973846511952701709088790182334736385115136672471507310249197590347565586860891693447181331329913979243798686819200234008352399718236304219137729115539315158066902866917421604338805238157713592446999650346566933483714703095877015760984688768494031543751856086048914730248989201516031856502339727126999963891368147696584914621507215991048091021064735399171923074806196919757921329140143936374431807430758650680210749182438300506909188346677322378546715024613042252209602305643235789435084428361358271833464617487923496510641345507355618184772198284767086829629952513276229303311113017118612176376112643986150077055449168680122400331669745459357325659837038194534231252855216183594773116253104438417032397638846036622620328798143500104840700211121230136540334212452445541200041106324240717458499104186139102154558312123526942006778579615190080094706227016444231972875158448926353373276037460027219653702346679890256862463597394145759789756804897951462049347531149881733882372510537039009199356830309030180715514677237263684334356093163648793855419803468619847883346371961231191810258063546922597569012059581634003485976553159392010057441066655124079814246601473468414784975235931492998847931884848723752868968804727986706587083100429955800592258537008613985528271490816972572466593071852650621665495861418948684263269846367267444296898479280097656291435555634145925781151549251401657940755895035401157141206087655495132332299863147316456545096613066545532114112734032095092422008606701893918332988969253007849394483460405589001793203063631289017523327483936056771199577627022573699252896070453913949405373377007785397282800211140322537668918296488441675807911218932349682274535739289812782469178567250810390144261165306485158666940985165266999657534619979364790935646012468684300345461784073188106330123348546771443454690858273357820406205796480660218298371820684276797471650070558924406121821814101568982372230106793474131838645011703535757252603346013748744969294223849628342255582818530782025518780515817682820671470167590706386535198657610143569313646097652948513243004119936165592144131554197666224142074529609816851180356394834139177666793182611401644994446666844126112709852133288272667530110096927229910001564344676375150515896419713688706806105577607759289229432967817718131896325602177300127680627379876481214892117226257989116405842571276303038705052090824837465091519215112024397868318970059460418361899519633386689289023560896033431126444888599234495859529153961613762084035467098643218259346988521382044474630110404632828445362948687466141651805792291004743693302134043393522269078966101986857294049623166752313901148086730434910460103300575821181990493890402957170162298048307148136277660262946401800294222652102181063507125670005390694778692245588405558260194057035874081796166887948633767388129362829748627182374417800649883226825005859136365528592545187631090791098771615370786153631386677803705023767790171584539649295713332374352216195312683152431727766917336525927378895204559499887302804823407334277071950152204468981201405128165414455183985736437997993647133838360580211642925283708887276931777705803418420818480952007791465579185871696674681937570720258018847363489659925139536355221681887200690728678094332294132956740623466948656296086257278381233166245358612115360149348547650336463234098365667069151718390700325736532834852799031693690049194294885398726491302109243176241567219578802017454516326609947320453352167984666555680622956822045476298734686653007223408840419763911288850534956913146120208486558195085601922250018509183366477558543202052514121723347679635145152824882724749013416839650269736345572739148835152880973743794222041842875476557334941016577051332202961381562396484350507066045955164853499693269513828013816968589384745295383506324747138436755741391568434565271320588519978119971899532989252943602990416492963123185113028154027543036131741120843398315349392750462952739311310204141920322370974725284118940146397235713674721677644525967282304006649955827085329487954851329767132790292156843178404988275455150376377492853602676017321635356883701905765229578547289140862093885819447159692869457966779859798158993723800068882070983537248478394015482335447494535417998744312250497311588012874812962308464264274666343944241986376310599547741986662802923719056977632363665641856207031443997782275296061073174618482366971826179636140394847064939683742459298809190478412471240882924478815121946632497173922361236814632074914052072624741230815662613181831288463822531210051559141610682154702606629159827484608281099102118021230699091997750342425037435556006054262190454601547753662957600676901940458811621460925113947521240677602282865512709292282480533671399025193663639761498928349105410898111102705375782541337494077250574910367682728200317386170283090547118497989266908547060281176538832923139916000528866277320608961728987438179190657159753261948868832694421235286667307057927904367925817619014708425776285549874280675269504247562929037662452028104716498974992338371736566270196565246964636290699893612746757758490458861295519636345652888779525964602414778771308611174389897450274339838842837395725015547418336725298348991866079776921612604322095901374370000501963540705728357891037388476281897534466067049141496502867913647918654026153925258022931083590649268470025885911668040491390128188101967083908599474100181547375661145385309857590259743627634911710730744199181569847824713418004005457516507733460127236404564843082510103450506722877925335605118561604797656286597020690011212925296239674016581668166628814136664019178725423276917422011237715561665214916425053156201154080653767302048093917257647037863337841266326740243651994633016051739638017889019626354125918635321243486273114398084936419027821962785322167673571274136383064883806626343886151318533921648956181292090980725051274763870342150435232395205409800847312733502929329682893075018299210442436763900862400161971867625367605529781891085103556241102261162447031409573998188532355214357941927490139673163644958972868987648736319035191781081522310503651145871105624363295955350836324324789553861953919356852739017509369877267712887263178417056949446181238880062464150306017741631042195033095794917277860576473748861048093660439896581550228336290693097222524355152300752928396270779027723396368446212217749752069884578668221406600834738852285173429028127829402989443459559468169296239478180607502429111138011021730885329570135464430790568974887517052039644788191652069614153996885795697690456729891335505478977449091491139839852626183079497701886299273327277210257826733624704253863270723024329734295004807471809537131079340197238092039624819738472922599885722866504840063189871507219330940813528829054536118112142906383334775624502314593630659284550811113548912305480735738165659621192821992098678306545906135219390194802550768305123862661407279475589937257622543629119231235102286980056401452410311035925078611923654179459808714899589642736399551766701461244420437134819901449343886987007670096340738427287503850447361701205916759947359520731292433642460176525377937993036239891960029721396701018252440531747965407962155630427415491197895654495976350796437069126869214805693023489810081049443391152893857975473069079599992442846006489753786163044915914377017961212877792257775708379517971762812046869546224259725638953019442349966992350544274545557196038845797972002644518475597194813033212556480484553611452752252611526928146237459767954903621624509684313926950314686559846453088644608750091725763914331898592867817058029700378231787610855867757597427594890392972398314791076180097390269918778872008248824282180922163443715752553992726444289572653007693556512416923026890849505310799467200903875111057289848636836297126719250773117776465645792139235416714448028292624764461290123880819609729647833688733251266048237166870742220534301944002950205402098976515919972772678579157356281877393656399271899079301777265935803993243576104899508112411842463527408665360630752179403046847203323740090300722746404079858342228987406471292188893821069799509990749443463947057485578703768129234086226914563835228510045420725471699974334170757322107668541255072759412688185348640634773001611715130740349581255225920185401702098286555744583002422253544525060516965447142577258647995564263590443234108551385060308199233519860379982689305722385210303229568907524679320857610598845398219355669844201449067475159909754829659234908214101353105695517595400394805975886323345063835966055549775071597023986635602652860253951177454090191764025321359140899876585524099014554130652444678089472570170665934591584441385857343115282803625782117657295026307653813114774296234182091968802780525277522740006425657722242696542933551905225253232142873772892272752196511959771121657089105892777981228140850908945546713014699660339139141761901268517504601847925188955567306173174630129192406916596930770433742912468178974104432063099447296214458448730858984564866368349650572363611257561021681529832757925355406833037549149836476936053903237564629627996951903394615403407130177256035680932852012325091119049565978018931916499629440403819040096095272127606314627686508025314963609645863444030137668465996316974891462485586862551100725865760736845213301649496210535200324012304475151452653897045098373761031273252848419046060928236476628716513297464888278254057486772778299889799454444207362392219965679687420272331269588370991010263818536828015652195908387118587889201683711536801351563856983583448515360653414659489930795375231153781219674514293865344308564554864491228118503123263231593865269156395465224918692539123240054124685441712634516685940557948763199102705382274846586082309208624459017136570261268136063295194241247252045954168757823491343100223651069908524738494129946444311414679367210151528225463793348915144091296980758759185762173089721352423251249170924206697499360853975410336982737424575466748006760041204284130333152467561766562939048056383700336847512961286794592947447276972718039909754560199555637442809194147101030254643830321109209746231982841039968798491662886465591503514539827038511865057967664007177105439000619876398121222766209553897248736249793062804123333264005877912431893899989162379574100427726244362611722932701629875290058359570254557360510763999015204967923338617816344242901928185425398424044427687348480077072869912363089021012220778596306038862855912673629115885547380012542924318199392493228846663829757769057140401011213821627414423977240565204991651512514250403855966610747691476888422166303222055366905024410786243657631334145523705994877663817561046966947583639387296735430473949642676817446589780664280306498897997336884244030695195708736505261256380830467687226648244841618598915393308483839421656764974710676227790716018539667600587208198961001289040428713288608730760479458524810497883166113447332764889962161758556627953283298158522271158442748593649659150242425353841131596494582339077340359286394675023806627183151090674145338763208479962867339365526158538618752455932877532227004979023859784935950390373430880690396473798395529639549896507235383097043317488338995218879334933988695324231556845753190896164398808635299545810324414205296568744997727366485171331412549503748520178345237637816816549839178207550930477071926939211211305585116899560589703678376918254424236447431486030488087643643440128021673860458853286963347066380516213136703001021577540227991588417642411452691361316744372745373578989494931929311489603439361287378717752007285806009950403022824723710834107576911408007580658383067798471389063513069299521517615743403212837552635955087117717626509998115951290268450847059362011958468057722889636908328189428899670976285729764059398259050276682100349322201099417537360350772007473638853705880600128315762292399801809608132381886806641014891328217951359481366483936833475222493136984499360238561742005281558471565620361513431822889393280868637530783034879211612092185623318756068871561049307272353577500913388059195457737633924966564686727550871145533892882684181724414616429626225352914434866361150092269737688392712022115581296124375925251441330498873335542939560713421453353112757447663871163950435296715836729620942883444237894606065052066203472884407205855975488739124908141465041518392915136708138288527923592908549454228043050124528120670015537961412673629127981658283943480541152257130298495558199063372471995470137404574912672289075606753911298879834381552748065055273823441324818721579093543851127686442883822796621596593542195745379627174382706587638098353827813835145150926575101411682147609267725356216863681765036191279611775738179567389803716393924462408316826482754974629170493746314965006048075217877744898396625466570593894472964215287903927045088247774591048976977063710983226019781728971920098675653824540649195507198616160256271886812026288760704397600913287469717660426809772745668555603092124892058272761991625115685918504829842948145603043341994830474535650281435392807318722369384776290060479848331691480254820553403955633123234999829540880413030379524039535681319285680679067250322813746943043607888588587724143088790456928331127269229947031010712399871760876607142732727454314828782618022066231839499525467713797988520392229886208084473519255259078980531233813638386425077082827691097901930237176595724571641392306402821340412568951740507943700242503766309468794625962162403749606925340300706797694185674896562436287381438584252149878998784388280062704646132749511159277770248032574516637214255618653088037953814986710049126936067914184193725354543468092435257062490165288379549314199152267435458977411508963572656058494371493452494260928090083073460479684310514031329319389465695790094483591573291692625133357834812285586702003347949169351180391704030780712252906637328604312184471623278174913785418410880353563272958328311909032464589920991918182331189550650811056084385526325968058709079786134069562495683416704589034203890606882148259650330423475845986453149260104585833698228812869752633689457159389808603964106293026264382097782791929062972867607834432012311403381151454198152881314104492580951048582146236039851164793917333573967419161342427674615243740428791901581565761327636845256517905682891615399050311574556727555675027197996472544824885917404614635331880613115798885366874169423163729324991889601346401731555845623821321175276569053578917987340707424641790633991693741202247551677552997410019142095732034690211964176020419501722351115458892505022775566718464897207763188924727569710831350746522192459082632676074194365834712190437668411223242171328052782200402457131178071127152876504104661782370477098240427030322151981234498743037269979634687408967355705583390073472395142996209909160881387184724986465521006887506821324979430973961136271146709648743698459796857496567636629256719497965407765464819012660235742311317575999512930129650190871360844411380815737440696145300334163432514097578465363779086566173043559649695459599294563697740599540527681838854773371113805396385050214286607625562395924542047039172173662812346623476694802242087445789164962881733424051394915363836899356062425931072989177726558834310353349499402264948143018197769314405782136167435847971250993069294125597376396249515767823838744836270344261219241761812735456158559413944953307613401697254285036641061452721231611821410773429690374686434671561895476190679528337347077616351003023981824840360975211612260346893683938258675047975177193508490222484260901248492056284101460324913418889451883266371791433601733003015240448602714643326867435371358971223446749806059798558911076441096233487950480527551760363422483358539174329672124252861811537124132481327406163317105365811477483480124752443298293140754165750247163852113584020566990526228864628582847559220482492587596019654760403379430356086618622517699937247992844896167663284915065571803095068345252402605872629729530349609714157784662203947368183914012643544322046126455648050733466988341853412086058435396668699098679695801068690895117609642363510914774179038559798215328394577551980924951676983296096311072772353817912382387023932068776217254566734821870212694593882216660771311609384425723631883086296971172224270428158359781230037027136235986600816160039198667265573261513241105845284716360186198903768286031160520069434334424780082764100092610948693624241978309153314241370292634886619290158602648736089961055611974236068694918803183597087494807531966385467358821614506250817060881300535702433656079171681873545799725255609849280036887341568537637057393302997657772192336349406808251866902702303581100706605774449543592191328897563259781586107841806529979384308449687643906635556556250864060030827942421011317920187283293763723608633963739842822324899271754648766007285951186670305112707383811868739119574546721673049047377895620579035542580745814323055532433322768550706946773587385036995234781122802462957856225183593519198584814585788292229313174798057457844921959982795321736771013682889325001738942967249325799467430427040907137545870690738005519341018058751914458011210135703819620755356362173364780022200171628623684388860774615146327096761600725192924734532299061127845984774178847282392928170833740200300818557056923839812052592298033384346552535196781475663603559191635420524346389773255714976132965594207337719103493103508346714381725656275653487578643551400216128189711555622790465868793231332212077684223447814758201688498588915919431174969546645757888484868562756364304749588864469233855034799948199528918206255441512885454220936439310658594224265792093613632055007488375118711282205929954944150888788378012210350994487678604892207021368545252572721437284740257806974180854490493532187878885869796748977483702144357697625446014933558869557963684005852610038492508378507244502518216700116268943063352103744204997944819229588755183340710923639644171736820549107284199249921745381885018651648035779637120329467270979403561991104647227002909684902584173916383237643370102263741429029301438496210075958890152956074124555267990371560714546652844237330079262731666805898443292548925307419436635003775178156747076920003385302718345719842052444710822964678886850393072532027729944042918961337318261666958044164854158340290914037753871591059580825074495836607587970599636598567329437763455462573910701814155425232098934312072715017708306936466821885097536256069305322338569118648502431495419865305371480072614814476625517585679459288069716582842205189391857847981761379123506296419482508042392594335743210508390628023857014782364478314150153855746273354571412128153641061755213169584860100686068615888534890436310561797406780328685331788741467674767893183686726941066381009490415792951885605832046869407149473151958865261475702267338008547249009242723864828664307964094707164022039609773251353628148621329066434286336724762855419142260047836207384360189020021854620121572548133383827912276111909597341729227585226759052284993874913197298631222346380244189110000009791791295297745433197023610682649889777126523073483941716586230354072366494127293762283047805109401100564838761948427726067147803868926117533336812538988130888340073638329730524847173131216517508015591702001639483158406033609798148999302327623334152019128762460169290157807065376057539609333679088628125875600554714962327169100608717424190963765752925778517396756776593957558158192877108531234861390018959222622648309456653239329902410915116028677908248664198560534278332773470975677314896726360943186207184789532073383218649496483169444216079722174363197627219292031298525326651986125002621405753619700624568280231262072958749670245610763769916821270035038619636683556337218729267977713461648720236243918628155468129298859630100684439625036967227074738673034446809154463546208344372702270038134762483953839622238189539877937476669019994584144338917828318850597865311319116223554485321781425159430903465017635382963838209090577729843055479361306063283919007217974567450731128855033586501908635095014274505144280115581355159808144484948655538276503314950259822676563333350660354842182223518610061150815447174887375556215537472169452933086327263640785513259515734698995595606213625307065612993721468780968354874296336486720598356576740214936357401510125386056418971318237146417838264744501089554298924514482665584149018525228489759365769704538858664349101765652226099719711031474834725776909475957111363271377013958530535038286616563381758046151585287518464777937238169136551655480773670127809938248574123468918048807337709435094998807130935202117627703237280340831842208984635616273010686740659213794411549982564593164777868425322301755861571321049071828465070459779895102649558078270399122586972784987693265186550666257102964310252151684815799314739756146891311048154240851618363478139756678157555023039852371929978115804551345273242812004526477301830546520768276995571215769849795098264947428294179238783016591766673830845538576223209524511669425523866319812181551882873975049102925863309542919218307998810865258047140998506941201358250702987382726525348328948470999702161680917923966024138813850419075689909384457562531398548928312046158196544849071575200256493980968504850231112040956369607841010852644968831510577956019795231427859691418271638429841416723484685007558136386383631886960936081545978240057193355062214106118036488669669012809979390515201046343142081035349651673103871230105436130986871765816428706605242672537112624152019333363780724097324792081356055300862476475262069907051582200340466981189321058740569392305389957405928931124353425399374631363490301869159226884368308238416884641036750846453563712694257274660241040464003156458334483776077558120491556140726555594819190796461264767431820997899064871183581223873361554474511333609269348695688917492609116651455075019503491715064892864181914556963342139669409184446146900493177693301694978374880189784787145280517623822519770775161543978266860497997764734533394148261667487486544966738282300191652858880193750016149752558060601254157614947167758321984377980955950286511229938144635863112756218793297785498673428853471270820429587208439762544811357677861610847333918558120991871967054824461995924308492266242838690945542100251861610074432966612174311782351920778196815182657850441337957827318650643294502237863732015493984600160810188929245291607779540214756109791451352188143681775297816631481760530549349322142268628262592272886048104931150782838140323695276869649431377431707376203115083080215870286667060799924032503822398737793684051456200256390918586847742121667415496385264091833124494991153343733387376525013178783406047952479270686850954289743656890605251632156960871225615829998150581591833478761500083922023907407555678433607989540479505500564260417578459907023320156690603371155626607329134051235710950451581190458915381378113335755694359746289567994920890740003987425699806388375384248870181627577337892330989895930966696923051033742208032924641424438782570860975173970943475390694539025712136182345891317157778168619277502077262494618127970348844730338107316360784894832791406349354271450748332707626070261314335972031100348606660892399296021724628436738749728445934693260870529918053842103119095576508693951820063604380506678268195398946481714000024319603158183976099373298137162755237297287687939069957663184603753752926961435320038907638991406096669567263781303443513277941870515034182474859950453223269113948220967014105753479694882338246159937394193005396806084469791101005782668320302859848915758954987296913916910368543469774908635054301531355495874471004107753892221468761475111211570408571238594966518887513459798881636199384533960834138608798924347475950969453417627838595993237347205290370467387411227668625641864094750124497153076574385773242493915975103785189793696134173197004896372575032220443240554465332554973189182598355852936795268103665271356161082055265243322042227326197529856179026490344036979096737404322881773964067077900338747061533696685729030024078354465266303129791361613222083309634219603211232288338032383629304308735703539019493355067768966038420337182434421235532199243056264815219179477055806350716027729478778611673226395897482138433657073329681580011414040853455692806231067890239792862184131717520987698499836447346039662413579213420018249728800427606733759761095096985203040734427095732334703204897885067853718694665038883734432499491028447906118946776023859364157273017452206645768290289847475839761602197081838236488334033849114425196147506193118044529757926473317058024409854726597179205475174556137808124944668891577678778340627577962616945087516556232520678994100877234919840527236718963991313399013510938760413835369479156653418308029367062178979112302325682136374460690305629296459386811470773613977827817616736828247080080129765798766376658259023611661684321111407389539428675625563546235810233014062444672524446233969793415594658069935922543072608130160863932801686261734841691431742009113260341090357252949312751666140423716185061366573879841605351588115606835574003604791081319444219888497670928200505086793540202777066610463469170523366776874409668637273932853557587064977118824981956433568309239701922119260124294868827778262903739295217355858175477416083403475036669578214052048550731794868448263363537871016034812749267038887097926710382746775651852645674990904030422166622613000641826004681721359088732598835816037963611784415545916431006211202905796443368982297050588384207623377073198254810966146980711737653723736211740118311144469244395222062164657434993975708734555591215313397960419622606648185434542302630682505722622690785139925181973432129746645828642699606914443786501092212309969762986570111605182858150762663608721968467257049406632216498788816246190659368425254810869970204400878320068672255499183758512663084336139983587061147977679015443932369571709259291811537096485906270562657449423414034375824460614916529355356484728452765045919518493219548377265721623280104938118055730278750396950670648286240077025204298394907201601518255094346888135186249066057299084380336382685913345988292765602889471052217379193230975645691085554280909355900325526847354430546124800103904486506200022547705934593963404942552798451914272091631625863853102431074373012114765533724243324858702238364804738966358884652101762904406712155919086396889854595847216453474579968654331311347919101544382360754780662737821202131582006693731844224006114561654276807057333960275778701931685675970343198766693549513725118479547840007373541605245706384374563435982251767046150979955065612243424082677527933458963779390788701837237484871797135380263871687794279388806762817356365837906429778562336181379226474035004463553204380920939383592617225717185631379693349928800605396190454504736265556838126584492042952800691990136118601254986064746646372459666744933584853610041807560850616251725427383054602069905777465406053717432071433148054731782569963034080722501844845585282199306001161791991409261128082540116625280302341352163558956464589731159264650280236157910940722096771902432499453904010905653507691794368590799190482445806499034016152495483976539966341396674060435145237363034790171672060376531508269068501037861142273658038753056227529381954146935234292429864899352981002523452180192970870443987522904554194757709326505317939355773279463368544694262834433880687923199997457006322708899365134211286284121120533771539882483619767146879179856723023386942699288494136975583802095566928104666137427702670306931168374325981374787155681384732728489762414669136257837093768655123040105704364569937796473640289472993532054884096792693769838029860417145475814184877718840448689176876490330809792730160006739960832883364555254407212626783894874007801026769575191387410419365929379694282837908941350660302519205566287793074669239784840847116943909164223185189767946965653507454883869147903828580393807417814628982657548991017740297029815406379568675163091024224690662376367438289020379394532684988274367446446516839548563793390100345458183869495356943381147052132555264138217031631257137641452562914427674350790676641444902669522858739568283166314016876947233918755851474509040643522071254709936406889221957905468063775119080654151907254346139564477194843695648497721933729482518175587714049827153361567695157035451989618122717862169746720777236066246306342523996181268538231695198769920212449817509202885682912548985021446344662268629483626228865362512325820402052295191508244042875470054156128123806956194221246633989625288319546744743618613842424631581082014727106474280541719445193115613556857519318587757237433393987789659273672742441226318119368827402536289752195360516860526288882091864244230669819553657426126025406207811875638800484288069748576831265890325663380643977342610366857660151408913326471019148742328494236900235774173054309984320573880426443009896384672538138885467170763289599063103656847922334732264443488198420804435112792480639578588797571695510998757959728575951898060814512526332480224562458892285129901249665068620209620505577567704106517367520615013015431937948747362871755052324284255836263015188089072161440423176833895447708019808429764952880975348086405918812726785833935147449058974374891418032339535608715948576003670419509602609984737265157428467316397479223827284742395823376291873613205622307245244909725574590866581399822412375204645270759175898494714857617351845524058298387111074235115850862181711439145280870134733245151279896692297302702162133418873548128631762138107486895478358306347530301005076775128796130917297783611274259661564224501920540564282522882098798634473672252886242053893712890743400357045646669131102622814749002755075652340614411125634702073005266775397104088418688946761956796836709967059760153451423869490263828026903650520732173652563877000124403237414943938552430865271359571617530214870976839747935352230863930536040637875326941513976622920163138463150441196105327550505961139694213753990817267369963293129589320916086810529218843092998138853399772105959243714154908383392443901460256648352299570122738253435596580905710743334297878922086075256868360720339664988992130772899448193417416489785736522151197097534859275453105889328511858046248637007898629275804646671580702702192402240305924129112382938733655628617528627256877121044230938263694785623507222914549463949942930217964144043596543228269534476434336667823116962894186986422984795083135521021704582910394188635325838581881254139602285702322857208621332167259647792684413926502796013244273350342644828268612172567131110851275063892761569789160231232413665025755923373186264837831782344954435946086044428225405046737515833866912957320772737745917097465834182051070200410541483995165804654880671296224554766591515686252884692456253544009762051343065908611376020210928642459598513655705763458067173036546218058896072598717289778036404412610272863003379557676360347139830056422739760018672943738615918957611706467938990153183211422492786279177922099070283338675659344529294375076507887788415372134320722025505936224693739661614317924848157917778903006611379330885153511851162270535600366760094280148784637598024385952782830507315555202761692187530173584975461100821009211922615960122283378014198693003886096019447030032051973220274822178896049628699523394845166687756255886281229796951081700247902017171511449770895594490921026683769969468745215055713107549876687672231991610336058659882960588947157124675101936979119128956602421474824023675939411075184918947777852667409905276959724095393550842444262570827637319172133159710002964621544279524190084537377293952194831891194106046757371733930300561093694202954097834693817025131749900968020435802326562499972167635311112645995694013851948416214266433747618119479023822366841456962425639356000577774202568914259640873912915878443661580293335948110414534738308056986666976978707751518248004824928102347787609204553691619102824824211376405426679098957680550225669246358440716431913356951646587891224043183107983831860133073284334942668221137253620855756328766917327722428146151196225796806822686026389001607866102441491786172404191178285478690221725956167858859265229471904713329578379360693802545525216376439172728725644451394389959995882290550709699885216924112016251342706649033746786017382576812955881207805872402832799806922070639889794055724838473129138616231626521189862208707278014599754296969536299647380726388615556716432737647158756631366119947816290021513059483094647769886636960598352392456434699899887221429251646109566319427737827072477462568585221450355655266538885000054539366082723374516635514046530624416464293660164124288669570662894041481451419630085397618270088285300873771954522286500278920311752928175759435726399706125260236857194395448387404588685961941638305402085069028493563407147136921748954979875281819741182338971617382934687026678796029918501144054591385585680756194479783897150015134150000428399669693920373299680376984334924360837655687528489639029775286675913510020143443382905452073281860934368990091472546080228834704502263593972558022991238465361334364475099808311153161234661167969834699054845190025149024862978840345959145396208914142750730904514522628507320198472764771027964689223152252889293248726713323471192641036052398400177039827666735841125534080962381371434598481212481466196875251332093954155141350977035441629517280104221065944051275279226028050306163426019435935688110200601747479977740884754501453860588197761357898501756741316318566129743371050505199806567752988119574970219654780030676496839826808936415959863318002062321834709672580537396734575848153915683304148345946220130488059136144926624596554245105045922308490621128040751712404958767663715995983703939223159162947518573759634151749533404829192842978724987460241004593092493054527983673427801156010895651470529741532763396661874982348469483869153796234984483354865329860673844121013321597691242880177789007136604924810627994563227095297518992102053065274455698210680420338908958856209641355696942853229487515322310803898482975773163829484634234154689313449139875102504085783797879995269837572145772800926619500360234312943681467204372490190193873126281781649928407226980008559854304980412172217225091731828047078762139739410438729614700009656559524689316293457174788876067823128070497967877643671546651438576334744654753367552518089062095011864885413537476560525751748904919821661852385665225924707946871823584108372301949457753554424455691792833963149289922981533343574370573040725177025352586111788619770480744867869181096696859036599134264833473577090424127362467385557439502648755670652735369116569213314152917220039654357579766101684748616473719597496498448767716438640738728151632788562230740883508790946706220419345653260968688689967779194550863254028059357971712641351361080078641155357253942164231396948913941452140146231255857686939232837084422525058940809939336732170049554938265330419133799220273512568870899846355032740720434691295687588617038905827149928252311285896443233507641529477487522840570314769669868918032295797202869544407755354601483898416345440019148271418627855435785018703974949776326746748792216187079737984222863244877869532970139799633665573330292747820719076950998318110591765702882940413446341047330671848734412361856019397385805499711188654808121158667986853813526561758457140560761149230830866637269103613146706468689151933617192376789448779919762970952846799238249389792373190681853666977144270318325683557099191224242644337821478074743184485023205349949737784390548236507292131920760150992337524534331187742650232261042329121934901428891772755010862006535281572276258472520516029943252988480242323659040763961921689143686898374589763529541289583885924127201917353455254095867507184811262916044264953742955547460386633726387213946335069533435279079159816853291737427663945006807059329807881436867454807698630517044641554209416348322775125556803841464998671705187172272066695653764466849863726094991437349305228748378193451837902286892481504623823485443184644328036483155549521331591235442775223283138078942120349751481790378417684507729000368043069772245129514820186126805680874368985181869451927286961474223743530724496903131988178880453683306058395622094450386938380058431582910180242166513444461105425669042978356472250608201837605688210214375999885893975750153059605636815955544496754345209822215536325642459946564662143675658462592678914354432325932787255420412981439169336326597297749959169448811284485723945006387955238325401815496213310919686582456159119674182767301221477763532263789816121405209637123102597766885499541889000114667259237208998872269238800953424746266843733948103194121812176742600052426763732776827744869142234519492053054642485967194935240679171748764315663034121321133830417791936887039186961911863889882329667432747554196323018100219195842099719229693486252407901957261977389036325461141162041256867710842095759681128376640267261107587918994581837405864725234019584864924161520777952090323795091096870339983593197832337445985923693216413608921749892487592395096899900687001390711283127400431874796177802953150374394094711851894148204668517230012168755822181825377618039966314468769641733619130964909474018643188941359923657336802803073311257061549335460757788472374100759666652390145653530166585980891172975538231749407537068345418846812321248608546332304110726688629451248435639951797743003554767482497428689424506223535408382603064842286272242204326325493041985587866757380555616874009276607515204189113633988463013671776708389683460813634620621835989544880900157982206987000964994193478706470994960304922190813655708346774286177812112499881630308132636650310833773712679217545770479423895243654895914189435103990983572618901871867313612259290136385729569774014264609063532397776421828466653700769290852333091671736693136203828487035938235349845823313867677822660275083181480032133813513206859140279902252661763754132772976127067735384049182943100619970923612614367320076723767188595708937090448010722388257588665763906442398055842927679951225871457649879602463194671538851463233311950044649071963228561657847087703116268792860068830356595847530613576880623784167431996543025391278779225881429300418441384651593227015741033492314302828414904469441808627408658583484727639682733272519766319445717714641786012332099109750351652684414357793693425046071661966744496811814463021434249967092052661517862430700032402901958826326583683435047546286750887037910403233792303626992509937774361326515057782840382429130105136418545686704607741201594885561953560670250497187887124524254587263056423670548299204507144383453777001441825759185323536891037664088460338490025039647530689442471827889277536759779423985206456455493557849921386033178735959281689852985300784351867384997227151856004853772647090250384688224755546938013774068746629466440331186351810731096718377846790415336254821275997297588950216957067066278007049899227510707119592292608813589876986976128946496056591186003504340378789604367677416012214517579850558920132305764613475388199789793111229256901104768988114827123633531201012442517575324196474925024960979280561538560827611908457883703247129666095277354409985322387421579909034469446301521997576634323420892903905802954200484747921191563871987162816956560600973418215515899883616669573416772139061632263194040385295081399719403900700742283465006679432294393588437463017797615435116160590093011821620111584586397297421962455606397465264482152908628199777403853080869982821799255613728970980238081501678648892652956161877654961593825537838139778205394260275589120185280150691377886025774515305738514551323842978663511798246732022384480747694151322352910940496932411426385055248059625035408461740009974354807043708232644922828762490144424928132024878784050315476373278378249831998553026071213993020157542105936149764274184184634695574781955790142715658541003827341583244366954585325880008906233985082857769814033692066983438904810723070751098046627496500893927619032612143652325540423560833577531539399471538611683551656838242850214344511086588348304907707202608662812106710197934001194655387591889422641774127776355877500435178667321367629392771179654775915461035135266172800661506053051590073055570175262307256261373649969815022792611416156906404168691000756984972987182810860265176166502328202667912493907276848766608508989955205706839134492794295442166201557022096338275410228525340205026449559907857705379728868088870388297047418774132126331473778807909383997318785879006831859382266871561634876198656547012404197716423167224511617693314136483751936039291737299963920402320269892336694175989593874550464687967133755389129530404103525868494392168944607522576293207039096291342013854480201123489904993289819088626064146055607869118531979629041955575051057104599600565471984865055046139788431281400782904816984155905856799234222238394428507184304929547833064890884312521050254834808860197370461234083565377249916750806998805595016143330694127161888848721669926407385797288941702248778376565868232025257086880083439029399356792929944528127833274233033957981840056576881162591021580936302398059557891283219846879650228615386132964261949410964816128600418121532558581208160131252822154573071856144717406425982692327568043545419909923329956562829562370519729709166125317661359837446238394412431287228913567826677221446309801062957260652627188044708061978062260873265826276726695331793547751540138196235892974881367941602248764903472840857369281807476981676048853839882059080193396791385242832699701804133465547581318881518299505680863993896384932063343013735947754536882216432453196433307733742568847177784501427597624952957698687804918574876705525752152538860811048538635514081615582117317546563989695725150445783488727401096889383109480361620434842297074958499087687954939519685330259474155431072599060559346848931872390600763271278925059360297609874449967082008700924502917326806491655660840466823897142885587279264938401997888818566794633099659159889758643546689482998065891564669807807048447093646571740095704000204164405637619537652982907674904403665629529027660261908342320797954500631748578751954850266513246095152547069844251523271396043269265240604184744376135479273130757223873805735613652318486637619253024189714406451868543066534769139874316388643117452287053052410295877258352753390984340131298552395278957381750416224342224838194922934383612917202167836508856578688993607141172561619068680745313547444705967443729797049293443115235734439215535221524892656883323640970280293773895566982083677299758322781042134453934722967692615057414635394150347619575872167868187175373406636733946429081882825419981204504923708829562421330139896394576036012561110916969034663667774425906891882205957190925242697617306415139418879780710419405834620254169947259310909783548362381354161858243637686989349746822823371204683006891412152881201437534354866719606453746200865036239400148938874560941623265357901675792235032480659897960719520851003168029935262404807550048151945712138055771563128404456767154551236627883518841854682538565674476695224691112634289711591678576569762046896347863499383988533519299377281233758750872467311465012085547055660043297436967109041199862545838606126277513038592859645008574794727587801534231709260238595481779978963376219772649877314655621019267442116866299010190776050790947981599829580463782039147529988332777418687197140743447573032256904519221497009452229466289257087741737598907743183386493422011605202065575441210354137476938533627883856092085880339846405146205665438875617937908570369012664868674735839691515324217816365149181276440793886719142753963838407159398461629678315130154190182490466459392810384650273386564400759104856165089682189294490897305197860266591550811433538246359161916835285883075698947585926991901559232810681263243454044222739403342932966375177995946363246687432247440352427401160252085786895085270801029015345310841067270377097418052187945993965031095027906197118537955257609569039011577321303397843154582645501480915936948392366141396818705179857700254795874879937441682375182005954003065055908560750040118841098164758667486506778191275232974772706421368540695525128204062709864366763638658649239376640515766340665721815952574813263122497438353508602805411136953605071310265795587233557699448692305841922657785069580712065813958789019591113615921278325147818915829618932115782865802860153819112224332712061380395138095682559153165991934466781396329714840043778649995395371804044514743841745174405004188119504270362305130644282797910145062684425198110701816479713207265970635705333264287926517378885881567916730905318253802987863138482958726408753258656107411351161639824479508904460236365471745085835361853265046462602472246269138688880076098625540517412291754287900841011811810365537126334565434495046394480808621164357152665756139516192070533715723961074825250864646762791911732992016097234882780936378530747617985652114434096427398926613365059870241036016798331506157793458904517957525060307005776597166508144775053187660043649180434751973497983047197847801452336313407046353991502732656926177314174004660246710461805761158443272915330592974521616926326587957484590519774468885099987178385334132346866899156273610871909582101380968275459891692545110484496044057160994796882316035623811538687981324311962662189635027126223847266314406547630006570929878543837511589094511085239077352967319374540758102191574022746506739260861121361135925077718346634607426415182293116428214483938965376987002000909586542350238373554407063948766439915031737698359733941552022737986223376202944029721114392990706484741156794770920433675786354890709336654786303023860638498801756828428650900928193088945082440112401841869085314816850716619806796066058168894015837101064998246121088982562637390736826788868420229484075177076679472358706256999842637218982914962169193545628509568492155222394105979093745306392775094192087164121496883532105383675262608218247030492398609927042019846813921170856547503812930781276749183137621446799531522509780419726585382654055379152425109405139150110168524709860909764267082153771735010177831123891369423582876783935798125957148977571992513878840759200787256134074044824480900077667677112926910471749303314529674241421249176200914803998061855895100107558716900746500441741384996248192316945077422426694106821722695214102047186964466133603346922367714929932742774853098665151377153276113688868883029462590120515667407471425041377104663629216857917309406154568488301835534922283531723890717595730102659819983756270326407328874984224757864099037691472375631871130879959575209195653289822171426907775132498645246311722879514264954325044621187084439115590566198120710202197206979798925988153403382204433298313726652680295063328753199830566496896930921871562371684599993524134350028380541034912203045660526698700209467374707941523602717003506079738082164966032619073383658858422769232047744053209941288479531441911132112173858961214080115462680761828469508541592775625527710628968631112995153410652337160670841494661055191208127373598914414620736407619245008273281343966830131369949005065052096716391687104001202139610877979277448125061943506414815200987165110811385343084017892119991406232840962225900498378766486040306117039843521039468560364126266041324934192658595786458886228049541032434113374262039301437867361484421582203473407873177593123260745746859704844000207887836779185323533126603461534538835358692621473685630478303697840500471398628323719681849860896990808413207881683398934493917184509315194267701877067757621842204875623181727156533272722243909503609925355841174001379312078020967264921833168066309069751302043649666976268170931572608179862003677900774133358918943238837352581128993015279810198865584826318173627384212747084586091566298353149085509630835468267967994570722555484549599768529247676608546862844281967573965732568854389347172427114414176758563950819983412643282239242825391727233589226246141657716524809243899228065917611701183091742242204201261278347728932292374503560195788173457981943177509504146943878605840823977386435804181502610490203863426445602716068997693018970000369448960454955190351689510028990454543695356212079715231979889008076270342810100560338172966443560890838583392977039761909468263834394714995460877803961878206017646278959285129447258406998694059343436966730406076900819701247475412655199462027673836040814842136624295595332331120011532490331392886410833327453280115818801167579815286543612706325426470595124106947117368308254264774609908124664318037698958584894720043382084276056871745714315151064692397282918578323052151792436497781345745069653929949570710672036468429099335478536712973704740405094810081759949879890969309912062547763239016254128683685124068480576587059360460798318908359593765216184092946668860670865863823035243590652826310171391010940250514225420301127740826968478523795463212933333941608891829790590089574182841267931240099118916671772838259063748900526615061804491547347226231949471608392110032913188365600784519142542745944803794439844910095444264438969135019741961318122799760558908129954050398978118457317230575328717640051297524187733682925662774016708531047072990776675857733272195617808128200355433050948991724510041856705152737134091572245927780478606538539651579848706994987161571684005366865872450284686124298494152247467834300242113883825960649834873523617133184868032161250419372069275707924432077698269724186431665501874609680017093239145618459490799532555798483173672206990596750923626438142218235864006210949745179390872212393339130752856336590904464132271960512638204018118220699855429074394297639632035355858678557061062472650628370600509804057423846634690155499688914168185437449195125893297133612639438452667594170307941473075046443315804368724181433778412321141402428085143997278393973030129974519440147343597128928914559802920128504651065515007973915331203412002566257330104774575109226732131370427731709748201518276226318748734302966834864986616923106669831944075429609360090598730376660101261946490161529725025483011963910346649894489421655793175608979263509215034682248553233733873187295291527500538839529385333574293360269821864103923608306048145388879993156904488824586454185719069776655476871422092928261491087695990938884703418112857416350977073302921550678399644835541901121012740449735144225712845271685763761525125325461463196895032654816130112598468674560391574073537871619102858550093485268628061668974531401845938031832155320586586017130273547891915457977408160970449871111333324282927316471622220157478312534410409106583626166789712230943675939208964079196094618302168210592611864651313393120582456285580954756963795891402875305405174359575732817144158170917577931068667022003210318823242685642511219907849083905189802443030172945534241257574309652093943301638150997324719589415119574938727519228755623936788499227441733012121050427561184421336803154978622442852173049319735446461108626446144409204329753233367269246964776407667578770809195741513170469220892848442605446948634531903926080968645896492398522774813166955928983834729023111939148126913549621764086872450782190448183265857831919980899156240813537107136473724672966598681882195954402134363927479895892799582414298322500059923898236066749470023031034682785383858899999770818109177778513815797672527634713627434633486442472386500266390353357003173251434133554366220691424988093438182170491986511658902231446074691230037924998882206143885563484880028849203652643465807304411745645672319067538373471621814931560676236723986265543433297638425264222754412884742555885341617132167130597617604452669440727310453649995352363723692227922808828803371132830466840751203642360111406100189006331914900687963943260041523702240290826759142132084301727309147896979573542936388273865583626672834910420984003167956342736601030698443389802369179906501745352440773825635793857248701375065455916539685194100533248665937997468135454322172493617502144802844988923694604195428444029679429085606944509485740386512887169050265642351124058833874050313368098031305788186715827684704162333623251031385537236518094700884426980451292972640625626503789504188572333405844386322208042727146480793464159669635013106718848679089049649422460557218938805998761321904342856461097719904162271058658690727152672064505829832253661416894070705158142509003363723384494191806373219010451270881601635270652007093011191175583463272113408393169608666964682901557385114267951563352815699453206663934847613441584321852638776996319912027846784517978568186241195867258499989797125888851663726168324466874421433999880170563878125041093088312052348629396596422933806431562114408654712623813504518344926744224287403883355890264677609527779512060580301499038176336529139286870323995125381234959085757396953399316671947584554787724548998385041069689618751778967033463368060104552692790375175094661051984127094513368460102797536388685633176950239078215298900436060932263239033971092882590643730114144986385358151959529200107747502391154399279966524067410961113754545092048003024639450248141426132902630361803455992239138982194551125419314034534216287485905943815166596165503720303407557302562116124015627251537246365298680573954462707479716596338944200375290660141675175341008201880250310264212152277661257670771324552296630894213674835634972875031869007068410629969682810065075606498638947020191742848224441432709450632220913821922599287097629210024188233377310615523231468787491059140538539737977061552997565505537093600204471757589372637786134262819678111156095533866493920660937221457933645307582978981178612426178942242327325048612492177214547070555838125183166912791750195979844080624247420977170335185267078722125633385437389821829570107177329494727172353599554633400110354822404875094485899946491632193227522429844749982151276884766202850775353801266431154935088530107322331812768596628427337298586024534808751506067573741959925205535621093156878032073787829154823289043113804436923062852059557019760446432420528600030300401476137976241927162670714022705020471520549548485618903546710766226437873677835590598736916956809606778875643603311055161038354500604089227584475882137972468322806620920912089637549590103478735550557345899275996578065135588202047659662322641443839613976916622693447464352077682393156800056088586989658801423024406376117733811953708836549940673909309750532988605336814799026665688974871509870417294688605889186294929393718244242714811546199522111931041005418594719075037861622610672970905922845024935022510651253233465842719083889889850438691473477986081131863490443954543186202774065255450933552975617083998293986356535941778983733497375274890711799350529800214658822418334248798514703703628154005100391836294556234912043412289761514778138581675492252697999874449323228954606322705776265471017811306247260317539360434827742979748785750404254579449013865635251428377198094120880456003029584900135662886611924467893538205478641760101811654360123161365316470072354008969698355074755776912797893776221829621937334670172763866156048445219128442821291800939583299198178733989663826851187210839040782643639894473463417717930542889060868923512146204903434306046464043258616537359444368813409074413705918727122688485271797838632199407050122619140212548371127703309702038308145724548296376266167184453134741917558702340349868796553692607250098759709479993794130193687263563999559428120397009295699753610871319638144465997954593869163131117525094148907571400039453698478615658377828153481294491423634724225330030565177172836159765689770809922356782066098502333126696208966738016024936039202620237769786554143621729991739718064338780605871795792469773154013792038771933936642463888808727661930463683887181554723546898419718823324035807433108872376356893950040689370272119745663014304913263184896405649879611898575653873005067640553418377703127196051312256235530585131298336522775249062966537680694640634807918214997957074594259681397767855562643029005370934069036079414992836196712112235317960698110223101307662000663817783497643193556917431481884623183485389849029430985445872615043682935485896579639428770951249825767389871773949689181804689769083778896539829278771872183620631724345278049231702449610273939612008457463686672597685336308002317357548067826546697606734223223242667856955224613552615717831930528931725313950506601881357761262405153543405494845354161611747270408282333494015068628027870665932850265155816484753378453415265105385353833689617926200334711595926695312050912538856017011827415234670993115617190079181032546156902088767901435933586397604613036817102084860288387910095728222858936764650039118377161368294577439189247568230361767305688872931877361225288449860536802939105772146838035200576040723213329050964627097356476583062277008799714767220897770651947888879947770526880099636442820858461850883478701433032044060846198801873506213658866043324243304354734332127596736028989160034123253924056443873560896139623050724854982237426638031339816952928661298685145264279455815842810400797416433155300746950862695722769339769842383002787003424056325691802569402279112455901367944780634315785463954352415709711050393282715517853298156694546758774678939427884425220999664050753713747029659083415437351604753531738583724364769501775438115548181393131824595709376246264226213409958451216707374365695314336108020801535612141266151434842582944072991041961002650498425095299551291590127512153036872286866786589835906734854080845699361963875726203086188280194583149317378419202070558976774338536955456299328224445682808601042357375204125890215861668244657475463744280107257513484070875329740878483568671209058985044871337245273161901371347442192761595564978619301230016413386997314724135950846977658786211993980129529146589838323197927168307738297481089782008316960448402492557335911633596393669322842225765937403541217029055270693154446129135760650056587052388680874914976283620032245913893555392592345180789649328598289178485055990438115015751037045839943076012463810108761481855684632026945231797144092667408605186838418680765446651257988386761904867425712869487084704375124073184320084621238746304358790470039914357243670069826147758462847127621879644309121916054064717451211717017237840932180012556587554217737737513471176239743777935270566044917707641694468674638789238293196433292244147418064526811794350698362997282612217057002664436176729589161947286745396714139352428461270849596510048089815284512213561367075761173608559659548239481602118263297592268611345198749848646953258248621326508073025623730502044440311071402385846413189204927559328688237732217893817337097352643131116056029065832402439413566980680529123796560750929775528791998982356383725146657756217666409389627436779981246150862396549251867290716748843384556575900155114949215722973511518011850376538923911088433821140844759841672576791561189537373043798374177456988967624831547649469287290482182144209955510480495538045225007114228165262826295685797385088391177008721339112117590242066516024094635854884323839588831034140853309067189864808891652669890757118098518474577838689496643490809107816940904172029869387139847826281414780161997684310222825379624453700946804019297167019192058896800529586941336172093602665959046749866677642964391636780771996533960813193371468571429582102159273632008448516112079915032329367635735372361322011985021827670655926463903346048098149314470934693803855773008765841668783792926175577544955875011227510937949455658910773013211389515164194989654570986800668251354831758217017800576445155133458813526879078302785618295877548374582942726471604496056127714052777393738158426810592236453835851387039710210268432457586196242759319823812392604096393410646480197533337185217848006738743232295179004456558399842362645142312281950797730066654115668257500046929538278413007601384783061102338363893454656807906900383964457902741326674812114191269294559755591812056581750930269802424621226582885281951540563220864132185936496943992685247004729829974374986689207413432230723921250916037089637252928540790493589904913490301404013812741264940478285259454084812433142904505949078901112649215028628510109422625907533982466790143650736165442912711045930814301780891990717230855146451975169277593407838888278634730248761000405380233927179164524648515032984872879935479739827930388533794599142042267252759124139155766821635579038718261269130499706280771077147070194664313685935692669276658163183936613762753825099318467006222406024108518933019127598990227597415508711693524458892709109169111957327545882195453473778877140435376812243274997311191810162006236852245329749485818662171831430608220851109920169661312334941366584140886200371166818419904831439039028227871449656290182978756424795641796257965688431642146287092938148583497029732722728566862881300286819748181048402385924916117338492141145661574986284775280062233798130427853229088340678653177114633048927722315921796726295178764954227155325108144563932722973977347757824947233617268043356569133223514670833785267938855395609455458435605028414948920567231982681535567081247585174268674352379649193016976789977696258076609402529109212649326450503837432601578452331072123223118042548870741717319553372546989269253693043580008804485264314987024312984036829582931258652643407609674292504066223837791584969652014145407678301802590640503315532597522862176837878259471821098017605647063155024029715642697856050700083982189258359881718146720459193602853543665710542928809471204422291909773186644052569208773962096294906433848471100706620043852868903698430580365311685394718099949294377200238317564498975359865535362875868490955951757662196613155969363491865323550904835051315790779112333431105676319575302186592595955020692758899829015278401578389311754154821409558966439961064548143834442096128052719035559033377714715571429717336313458450474885324325195354668645933503275538749098428188320881488892868410549408030829550960660859941589638663134771609079652992212870765690675977463638163586846726782025764894815796959472218765768641235031391263003794951508083538460295090711282238034813758142270781757874538230222525971867064962821246102692539039827010270316180928761997608167423625423916098778661131365646174399767971182611605228000013663381350261769858566087863031490959199341050211426548991366484391357142852044213096058571455410485443702136640388019779658725345700524313274244552284209233278506833875576021817559136651431092204250204488053017716490611985113633984190686575033154189939635752419022195035383190663806566389043864026785777950964081743231382373245933062574725061243237082268859176355351125804074840265902130552290924593635302910600235980684750560373817439088802424636719622190574358544745676665871997381506237194486012414585446097451480011437542039120215373241607726755334723011210141743536703454747475836797334260130686881555272526646845250573283328885483377174048018008119487584331967897252800400500065688653214688993383132923059989777490741604953252803279454347836153949810913405058045396453989204141363465448013907250468759599085206542360940218508366773586263150720195932236498147276455952765928231039655864032122293572487635916738596174962229144717943509700514320522965471693301969016220145812884496646718367959451534299472722629389361284293885660427160364349312161979446797777873670809656958542857158468601136095052894388953867813834874491895488184116828803824001432796387925639700339694577398512603805935708147439728557333632232459297140802468506631954300583465991333579629055410031029875506608925959953646176492118226955603592332689207613498105199748630593422282959240082932407596768488960282993778955997935802833765766658551155997618734267654453560933988864318241545645915381937780382687482274456477336839815626207108250849186351991324330804085894077503490033378907104499641762103310553690567084069499140406053754536866501171999634369372787287346255073188062015025672690612891957698838006019089103401902332399648778399017003105855212811036346555919098239094727577171540837354026596142390817746559296904106909613571611465354061633306017161550962383210978403553173254979142860786988836040770947042342516097208078557880043078822306478054686624755722154058020682247070455453109543352742248358366048579777492709211822811051103564290102670801884001751887144713045446146235636908243024239180145009998766172848142584256506396292271467513615689645437120247585025303960452283896258411299457786879414740713391061142684031544873091781991708002053106028416489320663446509242461962538653996070963887905984379812001541063603429844939397225844406991744842716601219607878360242713332618909834320919824053594624413412344947927056908946259729117174661716346644265762373826088229546034338717468017963735217034963292176775384963042486010739958495799700600064034090213030490538658431257757273781622657625673877646694477212089323965943911947364070947173891921164174032504097706624188145380906206908392389684163430206193571989349290917310844771148374809198843628298730972360181462826026954500252327384549946586403469422846229250401247368152596366151532863706861748783625982394776702268301045505468247794963292250557696915246689813296494092735335942720015336927871806595720571930100434293087683489240969150121851691116610905673008539744920197351861275469998612813852401613016670582834763963717719020776971059177947199299934228204203795366861022102594479826826649334296400848557826089293320348920468768028348199611642262203069526853978190111814183031387168539074568992038495379424210116126161845899001195916588811212733736049167853183764214254214201020858080809372125420806620484546665480146310794200451814142887978697639575400615260488252162644368195737277339366163308863222044474782752458149263406194206252415527623347886055836319823594542036847004182905965217250485671757733965217839537607925435939612921260293223487945266425355275967611400064382847323140160752637142402499123393535975968873281542886639958251418852767109393753614732036373006829671214211590004482511529432870449883519252471782771291134316874495650734054563410453148524462370186658056898021263250338813001435016451993693142051989841441529704009769169004992499787247053764906036516948987160687607987174338057715445664135194698700160913020292023835942531446363724041804284254239856156290284029038150815902655626593702877712346045496810896335105374296041865720447296870305249762999908006149143051969022994048441572387716807889966395838809922044632159205272918893175841370566229964487573040175584473741064853279770115617638429750039125687771949789205220058875177549398012756592554812435856922147958586094139414060360541033440867488289458125484528164508550952143515642856758282262773435799266280920997371807802493805422409397372479854696964640524988661774459801550606486700504019370526715984619629244841615506294757576827036199705115315728207543178642486853187915482946809367727409154542544123257381452854405882734760660208956896400254660737973790389697890969942235013908976513019155214772301382428503705174192211212388118488169123563594666665442883810801339776909500738957537412780233635429420771538142364841732393099906372588880363783566986733417777725118390342603918089578982880342512514004476042180330151215556891292713354471307033314594880941528974989862322740595276735653036705979025813818585893112270321573460198188236293541750076152892646891308497915786743017087667816226900314184895261548972981860730837235129757643287443833071153747552054671183623675942333840278618049638621257547237846546307788152178143874317456120519566771121610696841042901966830539577111913601815318177582632120171655156536648106647723984930019213661126423519881311287207828406891692689354136531593670993931932595922685988761943596822047422940065225169803010076318277917377449049252294578634181187708313861547955486605179645652871830361688638892034579064717082317362234725681332393986618142849792340595235473432989831432184541492200104404141120933569934388266364852015582250185253155940167559390265358857564861548599925734261314613698168932439720726634078043382605772517563247093123706042932470724462564544727239111406580220376711268254452263288626864814524407189157954075429417227295426291432690873698444409724355553061479206201467243828863699814371983447983295188477088745719704052584316564259492649165232845105799532349291111133263361548607565930738330214815367758909115513361331393764331409627825872846239874674232453009910798362494302153370527815988967468262566896708255791934474427465391544917595240903514931044547213202007901005020586394271579656799847958910407022306941576607267719058352184810145566332840092228587976675263325254545735577032845581602697219434810343859710790892178134359138081107968402025607590977874362878911481449093553662257241674642348497948576548796377187225187776868255116221116241529429829964522276766375412584159817865363534010667873098070029057383033958252061782310809630575561773355103765094813661292358324667545641470642931447544344922885757324950261385015824409585164350063381101551447728671028924216060830146550747779725627425023568580670844058359733614673049446793676412111603448010777349001220255627329482661872426552866393640489436063823612551376191297808144413653254259474617545377268355395682362459120828013580630120542735093761475487627579337949452768569527772970725577991206329221022524161505269549739162453102748156648632091666871233379880460458389506814117291210741341089772510827501649065816647147793288761037606544861473100224332867924384874999699232324084604164310444081659356983607298617279850043448206353879649364454723558643862489258931070054540208262670580889697437180361143253702079026698557764480324535152426171757425516262878359651353710772873275125070742662574283515232238201741509473561656481999787635287451848868009862698577775066976055321362947903798810054146788996811683609321812529067789012398239689392236921451244317140778888804003098365855339317270624479589534724407594608905859537138589639003974785197289671474407000972985667056711865683798786627866120626669417085002579770518894563844127182197001442370921957906100033852091749058793714501030061784735472209468756082452563731533384153116666870925529106131597984485742267523464105890239735381203948639501612863013350985930931060070576569317439310665931637499716074869732763956521094327301358201704824363623491403933526250089616099346198804222756020055847405307346064362195696122150331319976721875447798597976566349269078771193429339046169099447728673553387370104396710662380176179946439416542232212445090051360033391376312036858669263222810023412215504080147869696824954378992251135253434258418947025331653035740008191119279728671047217196931599928210958544140709800163283986884256358542817244401309391972229388274335559694634915040961618888933709425341890281883449869631231964515361317169185835197227071477152226910132107599235103855319999776549400909522425644970394166113424091801041855898382557542465141307327798523289381425855982976867835938861111546402391935067924221611294596246873350089842181895939336478616199446006915275171115384043337877633720101578605223382183256226778077052468618399419444723171021773416132899579299745205162767354498400930261890764437536613148106378654184981310967826494171380330738940041875154674881693491747342794619676320704527519279728921349945384185815785929251001180812197112131618647690456927603070618782911439361779242894488376637165212447844099361295647210316732706778318589659315496664075134916567075494333565641892792886457456729445538824330259159259950682055665501433901296249743245124547404624524859800602660162700706898131688152466862321778802055635935658724098701806028378042039418560184844025322137279177765377615245546307412147798808821843285128661458163313542377919610269858996977446510685629068153914626806844315915039188890897947204941526438339442312763619342199638684563140173413299560511356073662797734349394981512427362613513994083967440306037512436272323588203117414083754643068660174869554550279305345382707086530502949668866667719177877790761622997956382123593014792109084246181909969420626816173314472086996185177760515931358913201563107885634200625382254253834625027359047905082048422502614689879667427863925038710406194465297772569860658840600506367585434249621503932224705040700375064935447374539288877313692060253005936592786693019482153155843302879062470701074869049242952538638183071500351769699360945668857571330264113099624786387828519983763615091501786270663778069606153926867786298889099242860641114157084260626644644844348037825990230746159055877469792717169052873819563146545781281081985333737888949505539924876029408766083476839922965205275712611341735400101662719153152757418724461059271647053193596262411104632979171200642816428391892547639600236127064388378001839804823278945980302343671290477054212346177025498277407680777658174301258331126605617853104449746207632346624220670527911450955830537099849263345681681757747235348756765933396091331350460717516846256732383053559560592736553378713532586500147228194797297773162903619031796138145709743479753029852859270537104718030583777739252482718762844026132800372027131617753171331870509404440849888077746440092684838975510859077245920819104960121806729849218974528337671616222709165731695610380811043855332224122310455524790441241579624518286669098746621436204982264953366458343460857889098666613974020410014593293513756640824370224234631267541770219797304700129199774245335169837026118704564407381183589790065244534248341978251131233883532159084949974742893167701986184092570365022184715759851870016561267234244927816173374950066774796461806585726706455098358025654352671810497682210738381982599654683318589480371414804745337955176354847713361015593567573976611100585111212677933086526231551195779853119623326669106620252123775748406424730192745348858788454642720841974629977064769828217005313944857743363525108775526204459535453782502012950480723973775251120894227011587446798950714400403927495497532067251169747844227013422040036020156238125889073281948266313171234679841296072606961385327301689606022988679109618201687546670705674477364280529799004434174636204233665302866545588235921292005839492821125753124245424616670000130206563368619756075683890526655277215470027928781202105096916870818500614856816051092437302633647688912244467710227663868768538579235834049568268436082224915923500048570684835258488645758705826860148301336052751730170797207350347460430772956304607380752798709491863330995614371633335285596893561382686803966853759575040541343658755451056656403221165680416540548501216717165202099990321704031957240096657572054916438532659582342819305250526861904996876450189419662364760417926796596879541476832306697911592419320821464387353062061378233851921524247192522597381797635462830338663828607300575180881818387459150318966732511141581772510722019421443883349901511000855992471085557863697831964280468608840459621185592016838477169020787617633763092368542380964482417502749625175506140394061295111997915670587231131693639835130139294896065651323380158261378543474635757366451301474941145283532000770114473275280533195222391393800641687418124980680330620902894188971813083966295426225539951665742041008827868193830759596134116787177002600824516832794120555406938683933875164613429037785141818235984204065593971288375951969037994944165498666651546610736035868660201829241629065091221068014407924624250061074609580109321200100407367133543633929889563713243226831669392814198910129964090199956231404838051026328451984124896952750332401298511554653526664950598435953066035086675083145154799687071016783188067342664005812069534039440624317729612551861491286646687737609971018817002262440930864920712890577118580921337911988764549036318425416514536482121834960263759461808148066147734056528403870223462242619577083583542746022253496216795306304812136634178680339028039816968048078995070176433766680915698721387131142459909599781384667007082797572887162337618812128899834642227069738352901940315003495825585822879894673089881474385096218225585187235196287740914033541895375044445460263512204546849887186791347266428820166285003150212770143884409985999622734974987300437866581992431675226488445189976695451782599297148647842175683217321507625038838079667431100995526050632393998921257034702338495347810578992601565889630819784168432414101151631115988394798029103955783709922815801726389128260579569603621475266495113157126118702216902271898579615084945035371880507326292648389436193645076708826172579883820874577804067069767348258284494458512700897717883417052463493246954998842831850136318447940484899657073981204104098822431634012708009246294693649961471943121992972013250020404007325094945706585843649322003959598947920845328452749387323383828067165119838946898246912633581697711757041223248974541870095951674957718676457542566686295981521897185836997451199768185653206882786080576611727570568820533874668022531578880637971500320865198650086563011495508973263668638980088720164222404300282310093322378903080450686547993396846508833936414729422850057547092831171918398131241884544615804815250376065511572560804988860021026165401730958957489222739182525085843598099608761922162390487004454836052042251800240811104115702485163947967532306399090998538742239600692680311903432480159815118084030644282252104654561664400561927128157024934932301475235962902745863243087319329011862597646198392476171049962885985716107798844223051233063388788302209998654180088626062589945523277608308106799355879846926512804438282874875165849975410996146311993943638240680489590501336863516818278572169767852753430886966506484546266233601780859179691342927893715088051089931761738445610036795751041313497604868577313606924483199597758276977182747733572663087203698934796443361438162065245984567736737478280241664370626174035544232937741447055934935432450732679911104168083822738186795702134442904369396784383283166877612869900731532913461990987828253344785234109329408428304822389697967466871185340485562970011921928103293403094903301516538292285997475210284709883041121186689787032854107394773355405657589627773281817817356719149124934217656877805526980528717669638120585630259463705376930123557471648972967510915870103778084983810196974960954164334222015254813269479238558474043290743449141355171496151793512515349315265695887554860166508299520178089775770452544003076038181775683757807957404940998880335008736356939893429630949179448955692388966898238123733816471272301128975000796901051887641259398033395121204584841738171459534404118892056266843721810720960824782282672377374239835506077682304200432074388860962357617515233254246237482775345164965000302286848517874446132323527789112449651766212287572844799876668693373617833128590591377670355321181722225217719111348720803786763253716219993010284692632945234435185413983996314216660489280660928478194427584313073538274152783282544521774792206941602600031013130813029863260730351356535738294203653598538347488514194851315169420857522962944546856671426407496071604797369652841774179019123870974323543862890899553741354378898106055092832400553939880776772038174246431312049705599889297357434093597424080487573476232369090614939500688590793524207781328255377054337426687088596243167275894978876094219703141928542355250093968305107491470311279996098788686555900355073018993890982997427755951867660905816707175045272905959995534736820633608663616057876410636910842071820391463628411004607184123752097673393119073805048252342428771731280034219233396595917662324457209276497314848876866907804061789628253205923137958628095517625378773790917696542092887324747185363516854035272854982896441133650837233092042876445145663099255848977136055507266991012273418918022717088455609407893614968639168273700896398369511292545759087323702865988763051420579739389331542763487517765841900570014311038964665083687952816957233507088395764166662260876642765768224753044009540700239822101760218481486673784905953574120830336590443593774888456263376959305535284009604413091412458165568036270143820184072909809180773998308700193274482779191417865505708513498472546308857714238377508478096959230926761539494830531072722318857997580136144937357470428438186214775700104765494567432757690460406793290166998820676836776815983298068349280732987524490579387620844828158702252861073120961624680724722517100558732855121987404273745597399507391627259997002828496254376637897150006311952782742877732163997305842064876090844334974715795508028756713377289847360834788833482977153499887785970712252747717977602941107720564404299192885030175993009270087203726711851986905359393097375573400245924888765169796997798260589860397475389368789927669334094170066263504062646925204779332313292902499906314873037881596381858162008165807618482348805755282509170046962052736026095362616802542447380287677851252442804818522183840131978730209574255454382102096946610547892144974435059549292978410499216288775820603087388557559063081112691216449797257400151145040424519093561038115493644946306675685054896190691406335906132601483662626433567274779077157063696195664527068911893922510449657361559507352431339188535624746726319298274947120366238678835637777697303670922210280176745425354825534153113357914652248267559592400104769679281370254757664408793309814744388100282765780303859314903643943628134442247554967083334032860270566946688567257243246417297436561109060428446947191039060592621871420548403303201513791817402469743841941513556055563523629595374259771631455765543881500991072853520042745518469161902240617479526526296235537041432866659380583300738764805440716980521724089868511061912220580313542409887345047462535637402216422957634146137963844399692194789390205992085034961296894445587761152273779770687332417089578158574526852942900127797654966964745963003733731407064861187667630906288657076157211320076198202474015629019940215838611673922183168154938891647052571294949740207883270986953750962653963300916346046385515219519358169325578281455475749321735096104416185885704211607820490474667188756142627361643589841606559155861068347838578855199420265765112599562390435665122402909682700910082449488378935174217176012098410849174984597861711257436560427148893415854226204653338107599460288270324062041949499914594645994126443156988315119180598639352528637225362530923949332763108956146410827482141272777245331266096638701788559723083240451680914842600375612634247998261106213429017339991406847035579282546314352457579868858985708108407120869317656728740462531450486711274943602797860480486112408067687185548969999545031898948897912612042091910421314556278486653870282446307011566045404086330797785787692682103331988755740141015281000325921180675828105719660175857193137103918177386718016470849496367599980109848735641433521905488202698578824277673943146801226060353496614742896998660005846222130219599608527949486334593346700723549764175767240894976674088853973271922341095807954609627870662409237562776093768352261245925996742216225028769042614613381862551798326235992430458747433052553286495255234203464069882966880957467452075106582975754209478469894309106431861145238140635532849215427165854947116037253055212588922753146048461949563049570234320066813316311032977752119163328819137989674108804409973321328032810272062460251049357242198822001346285180222720866040976913935942802675929004270440164240838969742094952601722963621917123906785269585949689866271199710127300734760368813111916070699743940487939724912304021550567561596731066728530680806434990303557863420121561053023911649845671885476364671942886824726643374354162022534922990365684683124406606821951921335040813885372111295158824985228531539148312257141089023547817085588082452068950258411897144809049150323452487369950359866959063297575793275770838140697078120776041092730733207572701836967492802999487454621416014683734464643496448513044748426558278774477538826481623424553091237280119746943082157361756983668443814236968867454028818618609770330742593773880029655353399085535785639217448516936799854421384663618744035573704599601788099573969015378764212700223689999294117059925878190705766615310642342117717662772040848022288310858147456799446736505381916849231514004743702728841748188493620188414524939096539865944176733371302789982629950804705229524377407053545228120801161448179989900997800794423735988973469644041055080282422997231718227097039687828984149319060052187738951613497796845895035740003394539036512311953505242953574776509022327119235334203140523688055785287056687330789169410009186677080485301774980998586595155089080289108438536988777861228664526680957737133922553319745464924490175225606260078125804345138193976203395205814222708087465940778744104332013347130397375677655758777966499360445207549494414632686793562729223671571001403011834083622708584647172679932836016680595550391775484581529863577482240122547404324607525818401078415671938156240748349959177529937340771923486208442932106324219234162784990201600135479732361204823043050861291082072293738810198205432689346573524960847980363508001518810075291568200620276931963352778006626375047762669434116127140726741161420350530576436762252404239036894845426086441402080407825940735327016244879281636570241993428987953669323191143886766986196582398112064908232450994391460658042078436658353958690775673334261581361844091801825799222496078646577296118522689857075196341918061195160354519751194165979579391519689093127381834565744642744321345585473417282160879602314562726616758045565718139921488989598559683993804519491831493767172521571967896218503133121216355641823413593902974268280891866802560125556040373086957171037725577230652327863232645312735527219868007711258252521495011989289138183821298847415966224092695950400446751644558515897647698958271641940535587501835782824923305657997545507948713109908373135855776175521334721922384243479120336332524327866849413363189288887338806687672022518431887004686928399484576903119891546716751637999304792409540282335375806099046272381472580360380137273644220275207854465037167073222989853380369267454909143667157058988496357080834801713262831920987820205804500038358418788649154781755368988102995246706634949173854729870248136518230341790790688532602697473382204299671898877999131901010143055762929246980436334610383111288579179197008596623027113716966854076933700956837946604474580908990127743698875586574429690790281928672397834466170690982222099423676076923434947305923487445638100925046817716399764567079735600493971930748304002135992093451763860506396120226060604079673343682585564236459855761611873958301036572798001986531463574562917806778429056462245484280713605264335168978280435209299639964306604885986850584366641146641041042806112892385322983388728780839726426462775308282580909101111448238160478888786176359562390917701255586754557934057391165600926860999268556515853914321665703937827684776270835125008173665378135517116027799646612263339861516997002433227748028529864547285556206853985624514006324072384729253854494477256120425151662574397392368694668211049977356599494621207916974913661123888253289543469403607947783688553336187534787378366335235831076573236092925155852642881067328948643124573208521544580940203964045166373662572025790444016689162851282194207697574138970098603361069997994541692237368044173520709704536695661694105302724401452165335687743352944935486402837709219257794188114609157160589849420246758500125584967434833967895932447253837065023108212759074153343954289529194695573110720845222860240607287531370318135196051999242800793004084712556202581935113414481837078450194528938159870932690331667379738202934041535295441573141974395621473428410950464824073029422908129008055382412470308164353425085319873702976644826921543283375363006065801391743889965527827479851239040711853961920704113785773495733349911192917626039024839169600125625459936477130575787655360541337274638527585637327015744151697795028242958664305329778842005843757092446583696197851385905099586955367853059072371457123943173379721101189592288146763626865597561960019336577701852661572409986394651717036159417546115282796406029278478644165014590432817265893794878094198300065137464868466722195307881076109871990009600135326538366359849559227877173819675285539981904850393185425996201390435685748686160271824557970556732097133906565883886723191294687955053065996847746395447459142654780101293570494297667860200601052113459331777783426945597160695138366882151981437998809400432635741407126827461288567500980221694873315199015942951417582332467007800782067399283304400791627904962449853410840003418686493585472395245913354510907420002555029839821114091107854623378122974818093493717119134577549580027592397177607414459248443707968378893895020587574711003896448944175797324013232132137382645690253767448795983730654459448195038298429901904086628318440442448567010478142996724266870691451950406144873860667135629973425033637526149288641954632850092601559518409308630051651488475905080444839138232857737939375345936250323372930458329375103667324020617110043823059127494445397581921201859186008211836220921400048156045804553782790769562857616632574763137242785775716457308113264027830065385662673158702354681503789369609531605593476738787354461989658489392212066665106971465179428439927238223104048782513436195431449839443337615150000556985577690868476528147951981028069826912133707876993817661423031083195348207691202582997847223272859201276569506822577887162466550767294059370129843199701091023932896802947084730205754890020158215284729479321869456946688743813404880724999815421924046187893071189514651185575983027362423718873788108253412781865959674679455200725501307798224541127076289074116290830718279722579764854540643836240016193304270670084131774112103071873581722433678511970809997345076803955735797728694288552451641652105797615016787054422675511206231075163547594973019504688517035384809065310814463672528934559562873370433693522204428752838821661068502330178737268841726457885985532123355986237613483290419318181294343225499768014407391341625955297713169532059342286683105610394851102767306265757587033871122238092146456259158595921546532294599874648591603655443598610812467504133577088393374190423717017790957500437365971085924579720518936811822651707048564737476655308564675108077327582560644309778768806619498416755641798831527406079709744168864153822769136199628505544915416690004469322487212956035045073063449250360723524773109910244157709886761224686642310227873851446866550297010169145249282919508110938462038548680051959918773436882533200752560602193300451433326591180648022794355692929046867017656029240789893170757641655074969652931017187666673673961074605987946123693974882199320631091591544638919830348568831685164818198603655657628512550220739821695868448245256635194428481130124670404083673592796248297186765920003194241363166232606898982434933512531106722323147294850466500059882226012511056134074422328082102548173203225730435108729035871875968576129911738302391255411196706776860443688286873474662659211129983323297398048744499811975646738250282803322741597563632473194929858124981279666655995711767602359262011453030725217509171055664590484068780377295216420393148908713089891428861368525591081095699707203672238569742210421617198690835419018860281588842397747870276607601079106383954208477595669502376327093434982867424307902294842118443092946994687407164893768617443706676081941174845263213410553729961190578575429377831067941508518895816020028475870226385125931332873512084250205545758638891717302209528523136084171579325718717902822361461665680467239998501296451858061988259900719175794240044164881286765865813697998697385747886819782262399566196679052552496957203446712249194396022274632233494090611212044588116493770766758228663699868037534381530927987739825589162584042091624557077573508238088467972421055804278648070748259339374828709317818147306696716055901850841294261216531988607783274945970184059291471478576698634444329932885502283043417842326901284896601149560153320220039905436459826333216248257241716649569306141160042520410065049675757455711285014648661652422499690727708552124685376464771667947369867934749709860045929403812233315336422915925803565628292169105752297920740505842813334685230238654763156675576008616480949396242512968350794333634205640324305452063146175548957190798104353478088027926258796036438779508697486865953866218932705242554529422011308938740344327426850195218505507126457037601488582519979597577683082492319585856332432625545884740767605781710621347394261683572933777881377681943275617120393762098571821046080597864833782440805538392768905545254243297391642660482070564966373725920311723326709338946318507647009719037054210490903168624821366920701747758685964294091938018201267606913557546929659189742306415102006907449752705403447912126938399350911739983880501184958942103130514636903079188823298399404226424391645749339662770777166899653069393073219042900725168791744588174224669570901314913243469777481056668530504125183169677007161957189144633757283495681856390114074195188309090862709376836553563644534528217673515395599127368468387174129371432492361229428094972453550561977716903045562237090705204679909163926426158856440533620089493663723899451195762058586347310622942996592520946611307750717972550810227281592971022930651854528427077301654003876001061919234054965393394392249321800521413649665420804072581806014230656620021019058861666126917725168543099987880316589988535357679956222685590184718404019688716117006216667685577666166495003267102479263152820519545663495273481438941793797774352798425095225843227603431919298128457193635277751293756390407259866735143879967592691786000632410912591535618682309991247317202403074548053181325081240790111890601267770424966772631453908916667026739301564493473693687751481066803200026906512780518038251349863565084744297542155702968649208011105727814216526260551814654745616698437189420543728440497894865946626884469528268483880817950619258320381262226066656870195358039182845934524218862576778185848424373297795691497314854912274086501064364496542909204436326134301144161381396770919236990065577788833063830852686461804745068607234089946439131212254921294510454062775341102029273057761194949729581373261509128485385613271793965738957825077029555834368642610625075777474033232201148561409390987326299151641068389580610789807147207544229723021182321995567160192754527384055893592294354953528400831428261204855167923797740317101474902033339413323582429613295579520187398320731984608376825594353430842237800087710868609651928689564617688895124622512254677292230285176553866156717103316767558641208911050573054487533717342845599736398282632544272098426061909512269260697916801242314042637271573568192605862764839842750621746398907752219720192614809728700753228829338553944298718452409565679471131219056905157532044683239133678884807795149349816085641342272236916395647510513854143104717097292154391072140353029948483563362665223630791691236540731554377015578494575661979430244185205029108924283477589397192901439261175408923579578921583093074478343759185679556649643707553751031312024072716517052172095685106761069475440080790553245581837375502103948184334558685328583894737188375553710323425730067486607549092695368025929013268307547510937966930613067733573318033218440507958639481122956785489014913344711095274294281429919789332780685107208013475329792980468682939557774139215551830082517593265272993160259166275955537218117794879497901232381403684273032591714161082630491857035039108676305002696414458482545179778783419720271661230709841050695805783094181650909030183031739761901817847029502637422487972077296203716093562476388501560289936406305953148390923966916909659569002479573743316029528306055969695160880682461999302095520321650191719945470588459840327375916017324890188715280847991202659376564143347076327241425271092245107231506134861047279150960222283638262767714498401416048513218206463075753512026377747205038387361402582141219825945365697362274394968287742376066713025816479321831219889494934203854929297486575852513554818456155314481730925289759103094972890647749619220138359044782727279665099887835079006058145531943296426934989703502364823847824141559459899908552001232647454541516489445930418412088789072334741992423841468831560984632614785300690741649867273574481584576642913566130168779092889309688437389791609314566223003571901096863799100761175382197546314444660339519037786422380191438548353820623115325535807054995040332515905079217159114877981247484068302343709407097877066946635530069908855478206853461339822661540562237537371453678679703214472389321405950710795228162692323092307954333362109579696510993062673121643623530533397464382368722596987497126100641630914556529467594104377366842014720239511532829963376598489343844206714711292635103231133612704515523020593833462438618031369762494960509054983950240834170098965685020736909426075662600994276134687238274757545151073902695025466495663239100494488517102409515372485392534360041850254004420816933639365056088708086258578577779796700728870879178399113213711522786776329767337559843495903718093280160470043504357647413820673521948587395963651223687723443519605162072841679747110109431480039453844492371056167531204957883636159228406837713668993727798493215025136620304185976259497649311488876562119483397894232113288962045633291504396491254286571627686323159832055401391155503264872846390023080256658133634298353254311970381823864167886623573461843139682203142804484319018049875850119469132062573067065273706442669950790151448072762187510928658366994916104522905227431071858277301310758034966713904154814742331140305230418042010016273778219586484553902048075084549969002775660875966040938136140695764482305320855218549161638809681709704001200212589066892195259657333099066628066656773930154569015965121607758748157505194082337973689405713992190278510772116069493293366235974838028897912815916653781117277515611594538486684386208063349230805015464653394881900392729464779658702124780639942406286903556399391961773020392770559483121201837499249960172870439229087738839990336808966385780798593947720857979307680160613018695589028232122798818796393987851674265344403163920182593074441880174212333078303555190756158483700023542060939066778292405523743468197598043092907633074635669341852984104674047394235654678440714911504168149418808405057364807349568901982248504131314921158767633449597576973317912012078600548536607524301582855585524021317514545128159299875419875195797845240362498492547421438891665012046772800408661652657694300003693059206520857840919593411256508318962148743317155407532448148046570561357990410228061647684418694313960691386270463339906955242268354829673851340310407143214334762887006782483403765568514116103404746182838105699268992357337293051560904646586280023343899783316578920290480060686992617245269484183944470910695496364845984620976708417910372452868396204661436991910063629363691013036422261686050220480109400546082925551595026587539124796498300808655876579667498527660274503445817887735955988092561712775280205269739502141528110691191826562171379389630742763508416116630296331431779234049372929941856308517638555044640521508251460755444029555672150770505209269779876704413652918161494947049567936218740329062503551967858050980048573113737442610350875989659136417760303953871208243357985091378525316148499542138183772255251462962580793364805871489691506845113878365713980056263451264166537320922017312650050542974820286731125737039956299092816961393788473372141331209111156024199864372199151900602629669177413978307142258860034865618306875303512997464258040635420457187644035181565251227201187543549212530296980879831030676809229144385339982000772018945304933654172922959147237187230480834077083446564532435794820862092772004552928304074140269926280398651783467783521640860666088967352160528281462406366849254801966057958820350383653817756013900874871840623356586916019100752826131939686458730664097751167192809282447171276192404427592751633249482844058455927197977315807262590435130393049860642688389100270237073573348650457162689077622667008740056894829758157601291042416325056717614757409991649534959271666303475105604352556427834903496797674088846155608783714395466962043629005357217251054479867357076990746782340695569346513982865311562728625584999727495426508652931723451817975867647949472723137378550597299323315412706480566884143435906364032326120884585913804371262266353796323094151937509327268275774089154794102191840870197420164694189836723645942964728713976693481992038593143466524644874962824428737409291412017779879255395995935534401819146659886481215875981795994628477505455903661454833960643550523430717717052274898358170654053066823712647035089070886574421734160339686202712128775383709709296311024815878418696926032277478149391760249818181777972063859225056463849334352093776842401444338218871005836729531768988374730538543946502503521012507584071302664747691647239204737834726976570283883443508997483429915104356482165150473509167743551840970671351107509213245843570125375653721284471880159559185412239573999280327376918185195901581135818757402100432186123773279538214434579978808177727573027709161611701374980392916034932975883016807691259913403902241551961060730366102227642787483408922917584220412085058920068077085885558957935477999551631986042476139898923099669496112942770908011247160468274486184937563120057158519215012067507060762618264183915101291719163320252093047885899476776081568731628685899041067320273448376042785156999315393327330824395547369435331449282465709188497846077304521815851113006383962969714011761329826161303164335485109737540410984290271721893727646326756169103957167207352477784336529128676151797760606200491566996294330049374076005249667030008791132893288363490777764067630684197734564604156083287111626490039520752722745304508516923736044545666275680033665043614900818725737057514620333780075783233033202630328944497678253851333155229471048574462421716158724302690753938402322663335630634608877648305051650640106922775930040868111901726203794573691309324959062112495266800268110897804737344763507446107941811179788046852099260158504846209334060560848649778559597456892285424148970087277504168926370732661214942856236196575090450025261412860106736851888228014517300993910342981160079767614491233888678696496996325430437739286328694356717786762672743891380681167194298523363771316177455052972444144738599866364071788608834652656986758909070548725383403175130058092883654585010164132775204950555332551898053885921477212599959983832520583048094548019031574203472684471812885676183591992421105921456063820102165302305701193510860755759257085861521129828215517138122486718055077511772238339017011916270910488585429668630561207759750779722449758931765625687933842879197918568280047104906300755837499763575564588873107946592020642910008056044709704860214671521232693327805838708886650336400104679234671125744073341506578455977677742400536378543432733345124877171049591115253380880883134752941624370409201541140357759785022401821846499641642855168191532790363993674866607318480496570498115650808753942765764787333728746774524565723118953643925249397281580342005740946430828759788807838935642366397650656649677663836241286917293676136101355097610407694264830319935053196325430317104009052564138842276174152454762905576835520378582173872170618546295914203699175881705391453707079749645292438724328645159250012856567019275691673446430299261215354134122820308663382756220026945537219918116499842812937570363045347030422415333862611155239534388494918562694601722323525011178840913225303614201255119541144507636746045572141598956758294119555869520294861758986552886331556252164029395969567327693763079182565567429229985867925964245155901726429624574822211329083367623409730051205249540718509286064138262021624079876730195363865797354398676333325255381843061315070157903832262610537163130935772574700522742018300079512752308949125482836368465739959009247930600643830467153013204746749746866666098095156821058113086749221714038877308219850899857096759115933620028787686438673895224441788719659625468408064671830569932839945044985217827030584372459313358823634824988778476428817071695607862406378002737549912504856723736324139420403769444660131625054414653085361136647258038964256162464370963661441370630505503565484743276482806409913196595053070599373647202491871500548896414528742277981044974637876259058841050059636327999905347691748106304336362871528027969354354552708246812033841209712368895344051774279191614325982196943915490888131077379964621075504145200884821022916262659183909525132488625825851981663319755837159622981098036404543538876495821425961640174299029092335282659536191900346436975221721176677496015379632267543832324215110250885113860985376915623246638435918992442559233682779305045411668632511402525914505961430545687702833655932467697104826674689851989935498333425400329942999822923418289922480426341571881550958151846876667428978317405373560698749738245327292042060529788678830785445604897515814507171380531947761525487266830918087636749474883810570729219562735062362756824044018354868946880241426053415107169096138534970384561721326991375546742004420826918052481188892277202550052258303999515033121934029325729163689785411181616853691614701028097613294773891963536539506103286458168394945993236476091870330156642685680938452978546473022282246492370782452500600759670668469677164948648717513974349812783240074688274663039208032476195165039787612087685333666716562213201726049346419047717953454218266071281575796770557242818134907141321525919743030985236524713487550192276386528456589885697462459043745626147011449083328374625210167458849444018040087789955002572501219265629969337959451392278880546495785969134362125571091916270405510443655391430506838215398024654804707622580570699827794936856880771908048250434507550172804431164202627629562876155537611599917996261237773175705363997405952750702110439615755155349521336293657303390537972712379123325506211367357878198814535142277470774169094156675814208041750663361657723324751317075147136709394667132331004936299917537110950442870500100732680663432540989926855596134661446943849730098646887142456987020770323228153143953176171595372790997660019220334953268648918258317304338459207062075708155415679750403682267170571673146209537309803618191613887121271641100989233610588750729899441487977200485976601833715091737233868955085930297671438743980546404004322974481746660632604553446341912761917208758716249278374830323109158070588271713065159070210377428071133463329460266476661239504962826889420887179546955774009665035738615423555292016481806776221096083669521305396072867373031050859388874293997177704477036700949068782130292036926833165855727724860000038329336145256824858122482710517634702818328611122451961511866446187653788062464447027213999473079291890302865416485364400073828230358609728720001220887358867025619248211062128720314574572886547413304929085359770564442400514262192429300901876088770235266622341132339816132783760926837590373463833301690597451793605559811486775988846883721688345012371885217710232016474323245365608162536860514410212931373030163898173777192158376475392302989090264186989298811772814790235479143103175830683522865121287364637908840789078018348559272530435768439772140363432116431604422253715921520489566597324470055033930722573153703637775446278111908231663697221841290361084684905387784185467533647195802921529901146626854351226764192481524040584398089578337820106164781207015019685036578470359958984357611647317366678076573011856750995134083957032130410622091828886751813227797031991838613180897965479115724556335589103323629762385732642510165744893079043853588424048929516967608757425115657584147166921202316934546229403289164422598049413866617555646411110516939741625237481650498003600411044320160407428496282273924545019730368437844797638990546664531027869356776625151181026507949352895937073237645547669143820000167680631768879382856888719723766794036425106087991991562547586503314151261502798135851550525797279593627319530070190191235439594431466130219504666202686984266884803232892345465913632009959427840206149324796965171018349350178265387110147520842951403974254773632930761026000763450270763194628438554447090160848508876705189470921596120738760132505419392530887582081223754260482747350476863911476063884607961607946261232758638387400665418993008573058695856311393018859639475810892871036062953484127357512151520444521897092140193158887293794660535384511569777727793054536585262243171753008232375312875712734166219369962924529762105589126484463408582966614608585541922728492291953597012335572087854122605887911928340529665316448031832568232474167996563518436701490835753967345473966090207744112765844096639276736781805083256270007195065008719137098529746645376142859135524600693343141208732090751960890662797456115665863411853666101516231056211921286701539954542122521720249793572160715946199819792689748130749694618761481640621622570771368637681990408203789232741290228986027951616106082917607533284592140214053274424477105683503233942055113775260640036834827270153602850917796359971014215651291294911695751860313039103853036232213410900962884410128377957520645626431048270223227411886866174924278902800726739374149983391749223353765123207345771530252670239909118066829379100205940614945980178255686183841181837249269189423263250107679427567605862596945990845095118463457547032797940654192718628814220146520564093281281829735238697875912888195153041917165331523248512457329481960269640891008035278684919640052246062513183374860637753084286346590297531203722190517415359496890548363912423286251110756488634761135594949939997874131220212233827508184593224684502622094616562289537796512326224435596424020808848046703949906542372234120261678602932443895269568052976689075904481547817685192313605658718558545419234650342582105082746564823223396907467949743247506671248590478277888324222819909857841522582136646787419310518452569332873723013683699270028360535568885103422803779027252138319564805389597174854577202344567883896945117528537407886357565482035966716161283569630876506081630562140629746648165352848701782700014710183500849098429707515156753948868692297331776874785484646980073818052361696330478229276707025547746561847484865193854010719834323171795565447638906881268825425921966528944653380447489841945539419258661695388759797850240685749827880996499235461610869449237382949247828878263122077978534872541625187281556547239933827509456906101822863642082273567011953209687485346936682929858253769219985481145288919147478006924444260372081968126919834578045318686363583739794228689404496901836833905049360867237663660757572364228228082410773856623020233071054361698328322433652213348705384286551026953357758951482882382670661038583551941492614708304727841345588396165031348725059472845227023215821927355942662633334234815394661437403654698845664295116289793385145678199458834153580835078498279281315008323735681095164198970494823627196734136239854011524744399951907571115820586977559588936297107366749357956955661062373521229202269858079143234440763239016756060052957693669881637188638446651042973635843950918749702609417570704792161536610477892253872259700129459633783648795089383323426187013668162722144487318832897508921804050123114687705545104564704702510029004682450415367981141233922018110698666169050280292928987818753138260018208876389110678966987034698044024754472226683994434172812735023251919735681108039992794098829687376247136690065160278357742564826754567253258984269854539310560494594807180674898150552164751561194602534622523999386320570199012749616930016443036188876680971593682366967135042179580796607725127767623914142437775266925675909978878417979874256039557577329297307571301290574329285504637580532033865216819355941797145895900281568941798505506413606026435574968300557978805751570264274799728520176747706067730570002356010258227335675945467174059882036598498657850454956124720422497069821202353804305518280250633537723086282880622650849749180013642208752439522233951759664808605524880082472999611202506697751854457936266897233290929442679945042504806222669636491991940519684876647625602894602359120553672845141479159822823654874474698072263966773334167567118881390823009057083701004271791906538512535366466719057600279776621651221311196243756791612686392452232623204336855314298286123031742409738332371306633652312567961306309207938911617754014665335114095259751282102511154306145880600841273095118941059986539948919564548470849032022992755506420609004808806962495124610608037857050476144275623712629289329430119315148301022841370290171038783903545692918328180350848678077297328530832130396638877218816997060388649631270041961005357050678522343807473973504293716726647999284100083990894836025692645255982203364347454584168693040251005845947018012875261894946144481484126118810540449611934481805669437192452356559681211790936974970546391221481994347814606676606362651663207966056923037688447549790717390231614218535941278419536170961420519665289782276208537419125512170807883354291711848621825230288939598279531900647854338680955521656382272277284305291832818918218055108724817038127159582076275351522828432756975566158863548053367162366712760491236224861277546513801862936264414340846098425212602994345049445593109591382941426034046398757479335717919811646348733122041644120098787384057378928816097073672878581198291563124139803417543387648865834467453442012122856505398718997990587200427811436925328381484632757946008709359935720445320317506598045749056613187934474101351120608867755942642111551705617241813128172385646430199917684671295424188122421428007992617385263923347366956927242777478381057556867944204333764975933273627305391686430243444830255642917448456978021215839573122314234910404681869369619575781416058990716762115387094822573244355760865053699883705029637613556002115112433996785242667071101396430062329622902835909806413070940309425629645855885049053522330724056438140877626976942343370708647180585421278862314258864757901761204967057647538256949110370574695875998142288952281344587292888736996415792721058500255067814377061796569101364630895124932386033320310926355188595174502175893782138261880075348423645762522411865093817228277298353387810153906876958408912002103805210563528944609580153391732888734804534698000822840116722913315253047822968213661030763226841765342609497117961235928750089709773193377273451406187437634475559446096661245251240239080612207199280943274319129210522965850309959711317550223657926841537773596864999487380590096573376673853030675179784336900965900559941882492828474432561018333219929598454902367680486078298771350832374706682110943045543037293916791886048479221315314174230332009852250261869636725237468207499952539017761249558745120940668783850448767507774963646888650916407367474699106380942681284482753845448375329874903970980826114060568414503097894292625975331525821439139141620210261699847839153690224221604111741300494187996622075044987576156938307993508752486031269256439254019923450115872710023636865063043814343250970852917091067593933484773329183240038173891259778822934053094893345512460010979965427438145820933590077421357355945758475322101744426736545359926035130229831597535171580162773682658581618053693927750738476645257997984037532473584035164815872231974711675940415687865134291087881438340023302966663595788668424883356586702972028774296469234311354664150744012156046156407007189103475775365453176789732814092116763815488286993024501914553173146000117709875787422977055599745964657285528907665574613876817727329938219091904347611815696897063433892576607544840466324580938189803242524649632008504796522773100589312010730641780806722928935027238209622173750078182406391499335422075455806351525052155343654773644360075666965964675929029876961808364492952801076467106769581527105355852439113920022757547116835543530596979066507377700160221552390705210797910864647329984218667132283689842810613716576842367256765449265879505523935488653610996525591693393754733447598456766441228706424924137779157892142263824457754482168464064098736878957732070777945491477879562893692721517692444028769727218996584715419843830211597494212717683337887651839211013953003025286568064168392186164749190372187257838148446304355451345070899760549989821879464859128649889288332544755346907494230698895348701874344010889840843577316704370110643622545946841281749107941025125571850100900463411011595730021673486335491892710748644839382235615535008875033666593366898551164536812983124254135760408859384377982750293082867946725517429823763421057774129493983469240877915628161357392647427947407362535899219415337844669648923103292430553357676853456763211561243750182501236284337612143119197617971156932127434209282512499810741344608811451430069411902835864515131625839707589112794949120744719899172661230184328546805313010073111731154440840842664561746286276646039551396370145884093256837974756661661772175707269616036034832763047099596045147136200541612142597210908768493473642384017156146661470390325060608311255692685392506851098312443641925308185431102214061772052290236443560721766382510907758072141915789094834047306468155126043461904984627110268260067651268958713949791395786713293484800549600069964173159603343575318928640733098162856739217123845985787699673472009252831818359455318247514605042498511352411036732593607477928156980329041402576080000403950769400097243353852058368111540043719506071839418075461814906729674417065807829092904720211022071431041864539152948490391474442752144063222294390932095393972817505165176707977155599898288856568507782277804153078281702893688257135858930458043751666239178119525395980122205260222115691005844092532207173005498084452539074884518675015131716336855785620984513958119895658955495548947991054338437681898820034298243323079404431484335685292512991302288218269319667564562748577239275784069059543173650229605141720655623818462814012390251192494039398599406627635723530331897172469303086127344589639646705404431842758860571329120458416174032458088985332183846926087032833862123776331577112738975468610938884564665610842020400957771053934999682210043723197504315159315906752806183368249244530390253220766501150000754230533628792466998623549312129657872920294096248175268846554172232059348285590953726108300891510982940950120922138814214078107653423915050665551748912964935842138471056177747867208244005436949702891363654284272045046698764607208703551033898704195450622692541178998532519729687478002900030329588027495332508584266609767575849154562790847166648214050358895924126804745976073033428174203018672132856363593219072500703509087579251382131215374635854464156950945676215636115877475934534424327796314290974906808101789775279232652463549435038099096847988139807425512562642364606796802666912360211682908340257229147380768075167361867415447297756282228346498221706813149244631878230153555675482845792134826575674459852471099233379808471710856394797954126849441578534980563801633381231640376294632995217406120946011686082802387835594118474208659995576290965210355652106633431481085466425712785968616798038508586058580239061858161898688240736050251011581824766092464972110912899314458454009237644613766653071017777083675211183329275320353254067834222086300242499734973066278561659079619236217910874127775249165433855250840903439110525088048578268531430637560904707865026544734873294620118788974153539883416612259068818184631929345907422362124955189758337647604500414841169630801898534760526013042552779311395166891450473484541393502388899778236464563476108453149050381787779789228432093065805413797126978878247847730360778435440477619616859736195287915690728882480214874980809975240668720041528430450534139867213322406389640332808086496312328285863795087497116285876016847476057386830850480540571540607293526027119975787478953417138242720966119356521592519550418288800955985243244225766782704238960791213727715697002073216769868786942159609150637389618746208025342836725471345194863218908625582673472882053605747901792223617863230035611324044622338424891486340076741833195166397832447462330431996902753588438429385756984546303240226597272375512874692269024464230251563724281874659068301248340405221983645908830874514387184215609093319997560377136546989625562226273433215130252039544623371675926360039779520891477454446660602989347952588815800972387132367196599453644801656692243417837133068550282437448839106593779845225361397605843384799589732365880313215192670682841354864872823512334550817834696684146899829602691938342127705876683970975378802730482712205923116167745115743472070367016913706583394778438241941163478619837553617910013826066247954801172505459415228341365118369198954271303239673509298047143209766711178570817298731799890291544581566242116132680733051207285769889432076057979450961545480286594965365133624284719867018620803544312986877220388826313811589451273879465651537067777304708436228688714295009918732102467096024126431701167408829747792925336844277945673258020187182785177295893227841813762273573427375028713157507687724655925418189555469562550413378546821790466181723379503742226400935410678475948099189326754575691650114177220582218480332090932486116159851382078651232673296623935897515217836310889847451969130605617065185979167187877167550923237392297484825327509351492302347348411652318640726783581065056579823606975182291594694791941282536791183469175286155854337980976445453520174886848446675519758432441130313609883987210630278930296894378523450133624135436104581890054210992313092745056566575275693942300705360690130656211536662450989515819484732747325319908959827846296434376783023653255565319743331949968280214161655886034961904619832475892253438310260973272846141523812753806341401989352644097657187663003058628725806762758896363713330662098341195856694789528820186103613383970326048916098238891805101907793098756999957024669436027155099182551414596857163384674748755794456831462576710419871343608301391493776397962457728280439463511999966211214243860771881586681028579014839613189466186708528341081007488959520872727575366469704513254927801987053448628448971055300010084894174253161274271359338753685620187997081405896780992348741592944997332448979959498887815323674219057274692473277326660313789236432978201329885625409018590131923809417783164408245594107995371916669633329994153234350034972818990428773716736403059523698196777369135523436919222495079330331876293599215563126233007509918428418134485272850789775074069619151721790642330842996827062539278542307763700629775551685451922739323206125598312804604708923579967958562288196647738873515010549159793666006247359457934768321144421139926163024391309518954638700804233968760643423572054507892009347600574948591859246468563366867198853568637029852485090828190778523060098315812970180046817534504843055173635971243745163214352269011285903567742266368192540227267277586562475414412604813088882216300187473038327705218825905811584665274514663836971959611314776433115828266572769774743921025398940946481420577042945253485217779887368893473112315799040013736635108403532496671521237971558791094998218570453365576857147060233620738531264965641618889812008496082680419492689890774210695666158263911672323964890647100503620750592874865406678862978136419718569169358868887970477667693568091789903266561430020585191456297923744494091362334552410795816541443565350139015743255868354236155873015468353938869516385680098727345380392419886126151297456087476928265296465719242885715467653843258410456053935046791342829405315747208518811985910067243556811115569428802961098661998303721886014556532833702708893603752515552363643067384497889848231033190302765417066250260693342173452619420530034412412990890317999978089268977536920477679643772263159942048692483329362465854262260150084177779091929589559787270143746634446766512156659106740402276574749097828852986373635234761150820764911703109933897139438231771039506773988173055390285833331794171569979226197773108070973797355667010504682402874612516645716495510679079943639886497391802334009392772851528965948325188243090888941226346543652288189044405227430969835445143396359508974955120597304014261244751564009124479018726529212082299952563428814306589792104702241588195923226553163880957716217142597512674582798302258941232735706384921492370078813444876386349190674478183870746858286157782747128354715766121258806441575158876191162191803803789288656152078323987194520786250857211323871040078240309856017345167402573356446610088244342453206253081099819026485394662553652228600066163825228889053971410412293823998811948622718486895705558681868720763925027471495461581063439035675452307182556141639920261413118040321317222060459192601355251388874311916530387954590646967444585485144515857376621000448514650842104946463385488667602730079555532310421764963118425949470900106027330573575299271684743346948539756907963980813846236951587271150350775342740738348802795418488517548065002577722140312662055763283340459450336301702266927526173019869760092797679057497237263744279069460921320185684306299044919659808789380913855252039316505655002937766913132217745322383490559225139034971761172763320354034797413571375139311287081842933906801905663412006671290510812400381088339002806779772167261240715689950467484261470573533057497896044656376144741504549203032281780623230778559119724114708764796157123653903225620969543397039413017230404848071535610721716941289336523986070426787226830807632296016862816242395580842452305848618534035279650222537765135096004061813033428593243215785301640836559791095975426508224695903432142852425317477488795915492980369660837967693622404419956091830283058909968740501468847721952241113836736817706793790486777786095530898095101405400457252777343826578007554558354475565801268270534303428521724257145021771862662584375806701638870679075231306445896835162597871533489489213159315250442029163802211226118585809527622740934920766806415427609488116986721164530256319700053872252242292833391511231807559583260804703103907526444081481889876163774672026437075676233358248361693940816018579742953330221934400300527602733465510874559124837542875731225633502438866080651563914413552422718898804787577731894481818153506131175634861335043163408114888952120855815666829102389934716970508569709372282665963859578708231834159583666640145278275830163585899392016188168660536992543946666888841972187883679486871367663460655490297169440669129445909691460068481821224034332804100418142088768668284275350693643406256993149977750596508282337624149151549869225848423617828999594640855252329399905557653992855224992195254826268658711432270696001304096816536292313140439559522907234103701079145758804197348979565345163552019706966015787000385951489629052699764084921182364342190564708617470703049712296700015758078457185659943692275169118351398024586921259934851800314552102503254873173059491819243169295285440228169004592700250012285945512163061439791078814437557797776949904031831238852863903341345782028266213161681134387539891808565563383467491326898974821155267848902352429182459254053729182677259472133362068567108432318590052534838035273527160201129390989115333966093247279756910052353755508688646808814490726314641017741073148944406111957233730737275550065121357344879942285045427664188338474662754946043885317079735750690766612347776379712372399576529820393112394530994042484450643245495879016485760452650797944955074444267832890498945087233632412805997530187388808842324120616345328687883491458556539974180158087785069508159652505066441656790190708477734785983275071656496145431222792779395926092729179508728224909782264141442276140523926758607561358727886909488072174465617991258988232049893968337988376084043241240860330173061023166970616899459639923335207029354874157989163458041115372549367849413812494707027655085048545489985548571290098730946086944569847860229112233388770697731440146640768874054821258158252190667270238987158510583153112531310402527082125903237210078054329643956820555507460122098723979370421670025844363205468042233643798092300183534660052239683178624945037491474446439158799593310169841302092376827439202687958374681189869422748263756971712917484287203777436858240471232074126627720397563861555247967600391605339704098570505667577279668810601971529919686690312633955831935342579708312205328905399594939832110655738259150607035303959311016724869355131176700297245020394255891207867165117663149750264328783329777219453683774093565506258991302513486963498146585794659096104193376090191421746799451610817209222106843577060065752444716065558807000912837718856979440494524995102300071535680561171349152647014179831278385719138416098800956310733460713573638172172914557311075220864372761523415024279620348189850486505794531671546555660995283499937617758600514139445547136523424070167465433706153756922809035092230706553633028523942273932873024280612261250693764230032475471166553139554286794636583664074842407535656551340931183469143359150814472617522052058334279391008402092328827410631874794843818407956350621115482800389207206352361932986848454523164221331167552505731419432598219498619291170807753335076479367601933613376841256022964878528389125782888642537822198151666382237583627682541899494939669157371307834758598661866111234928631584895519372164420033849880018335880755176618190562671801233238755352039230978897136128510014440990212094761461663593707660159702949471604952337138660957614203872368048770471723821889492274270149172477402534577607193800592239258182584806186345790838340035817387064337380467587471009998003204925820419985575803218423985277196119667105250200101374721154648764902206710973517195951818755518742281660614503266570101262225744878032867400352491891288203689295018388983366573747677433006790797048840307108052770823168680388624817923731754331778503942361281967722979496599981390769053648828970395583292316831942364197012816416299697713407604611876933964296981685622847465076332117762741475679375412616547655520865872475545618270584472484620585300284281719304952124144678040472731705760729329538018459553418340217831652424651004051661945866615413193874607890201948696044437641902079917483993358793887430132752132025313061506429471318088151207240740875221098865912585103215865881967686576979950396360565391398755568010641083927793823309541032749467936514522868654950523550236349574487016055301022816338435045729267749576824827690609318106870058439749386830405200561978067485394431662199315616035553917645289917332058670509377719296846715136643438723744675676674023471398757870039503027077240028935300993139594018367301119802261190940233875634294329276428553977327805689080754412941721333724529156312943065880437257509788349534525270852066321247839758943966308600507018612990861357643240790246952688562574249574538941546791149444331359704865410941681196971689716826504472845675576398110634887931253915846641948060308703897854097388867479825244213646243879202253276514186997836776926981412651726877030231321551671355262635188887901557292893217848104495108848252768407329923065016732954895412844634184701084321392338087771964135507740587335113013644819121760142922563111160653187979129464367170710866078094141292405153906994659015034795208633951207685323296316760736807849270686038991951355662477318385232794231353375693146248628074845237474213188108280373604878856977572191223276139727386209997252611324617280741060789468330125991141302553844362780070583326215928373256720934641803863054618301070122823248836304011987681068741899285779817795970437881349095675932108128166664709019731831596476724368900607459067512196596998013411453582012477055872548608477802562545361567314921859817597719591470613188388768830677204105603681486561175431912535570667042591717364031904171871122537593814087422151286714997115021610147128276836381884854338299966917803780218122940340184351948801330814750325996269914624938313473822137942396186365195183817758759986984582022681918116097576572672155165705176386161836382253335804723439476475410885675087435857620114518420747601753367900555614614412580768779299685513293679539474613723269200868630357556260749555645364428842512926322479085843576341418037930872091400565251716672458688560469876092981249146733839694232734649612658150413378772514849053621680596152442387849629168598548589429037726938814185070471319236790117285803307032348648928084651944550916056363328838267462308357044432784290724148499625480499089165148781589302491219561995890423996694700159648497207138090878320876072539687666693043288750497369167938358913598013972633840218888916677195264619953074480129241754752001246803391205518103847312078224837236413401356909188973456132380717548309226841041801762725117737461109139321544818823083092037974555076979460960337325365210667248659440191574062985018330856541040111977005051228249508973949513723563399998634863246543698890929876476795295121517200034628126250961735021029477841304411646816089333463009725827820971084983281141025928564184483424740870147833394507407245767747472534088812661227674832230279655273326955274840456173354009576052277548259437371612651643514331413962488693319205654680333284470210534705440353437298534332485358833876223351404051856195139384997309536327617161670701611698102747722763437732769993805514559661270522596396701667202259461584159219514810883820211543829454548415384801905399351304834660607076650376438904599176905785851622334857277420083705521135349337312048961798240055033038187708613333215986553732540890363917731115330125910284722265340864886689619989559741651212843541653338440645951384231055657981273784583018030547202269328471782958516067278067777285221504123905888161916575720605493924329118075211814626482319558832827195037059491026635838662472607160820923024970560582431498052634905185501448208229292110751035755876876462080755618405098106571624762816921362674346793292849313866524581700399405756413716875917002664432320213567282406299798328020578825078255778446646908392718912159080392018395884238925562358982658141672434090257074505440206150380187723671439228805956432724566165361616088562298078737077564028634096981273922361051484559709859262039000697615366470134917268322908177393812639873841519404325315595689160929384051978432005506145255758188300312556562050723309591710631560995772920006111851419861514157285917437842487455543668651897521806720138547252278723400897223436298045463256181190612932582695936437074166532322055666885468515130458426529605404604824920972187842749684264403429023277900537765113934254457691058538385362515069904242083248171786618185951819410536601627870780294289396529604643764876623040229138087284175377492774673458685497242836347077423780871925451425250694353425633241277626931365307718042097954772574822198300243612150936474456399286021040756058314394531790522376064272321167450268114777025922392365461813027477559595860314288879510722980194206435030673108782070905705161550823070742482472383687684065519938891741351908750589069759135547171837657653357309401649323860313964548282164870488496684091157608491644029131251375777676311084568012454898362434623239994594907472895822890451231297640763500776061052136237975096757926404452341715041673787217801990943242881218192083424983298789551826926141816362215842839334393093408593860419289019807754430120286163380832684083058685442051008636584774426843720431596229757751285439971021950476728754083097945587531592886854916066840268902724208293023587655468235074137998806175432152199441686763474761426732900968121310930669077646154930841283395906462601732142591347933256402342227821367810277960416381163940714382071550684924303660175140701093937642513682615480313137438882408907650270771488986368196016503367806500097068490081944203784001238705009131438859496442316184989036158617517256847699863833636425380371876284903744025474126239254800866065204744783315969383643688112462594015636230235943376806518499838668823169718251796243869323366841261985834035999561461006092845380869489069164387685695935948832142100646076652328426129557888130098312091547372587177025283089187230862277815112111763740642609488655497314879135055279872545733371143247178117868889841254292204344473446253923146255599622224668873667920603816946266571618809159217899527322536701684109290356389342719748509307144777131342586894492372437811304433825226651679038853482768005046362514913977097455994853257813599796432176957317406362847490820059591403193657216713589956403832473408422172163557483459470674989024722671266324205958951870987811512615422262578936032262507075283362242046661470123016442448419127221021216001791866878355630478843606492292907526360842767552487538202246338435136009691440574508340667631575134933446974189082282120058213364591966525051777811974927947793451241887707192978098203775511945692770290278885340406458657561188000367793894868887818190499472538238730041891478760005886931246073045911847353266148068549882041671640618348220109175339138331152741646591829271025010716379183856404914048581966507675253436739333845896117424739346557267637598372436558068880266863219632596323477957946999962799319458667745019082479166667357176915565502398084463733098511174320879887334308458569384445455263088779024395307783266340754859910226418899013263857457474885881117036176428161992130586950814444568503179979716106299073344380988541494783410907390805410724142363229564859129813691963782601921196202705142394630800099976691647676923767238891191711970008068895510034429357384543743371700065765399701580137137419376173957318990257696238582490367657721432820462133253893401643743597573027731736589731016377715499990828385202448290354754922116352984789619686502994279251146810663565295407658477624293879466472243998466427729759016274513207192931818706577220969695811652394350754283857073685017796545222650924903499236535770588205247762845873574359680500972057746631307398943082512190902399918092785359302952045783701334988070023443717804157731311405463777448283553197221235904510890418343826357871669957359567935546655808904648281153200888280703507218682288161837388085103320000936670671830185416529461437473181149600524871171201208864702218160775128472067027264215396140087108827706104326004563172592735917411554609469218643743953693473041145047667792743905712195453859899390226960238549348653186434974558730657747989523390486736928787762836456636576666445054013477581863996210655937211059106458407816227420019391312879120240215849684327062884914549817745925478769870532026320493195665366271268640894090893501066754737241057711668534978372450514756352220083349209098204763606116036362417882188820319695521462334990347907637513016302310209495863635782712515785569660832830915634126505935102192458100624117536525206485952298052654946027947116734595143754253139164578761277843539434399032170351857221863771968564499131383314122803732463512864344146730996593623712691544960793224730465536297525205695425033059847329784488337379491725497716816222420389813149418060055851718997149822219613879391206772021382542851097826553050622317573809020445671274498806236238797445424546171047325658799885389616718430024516287679477887982007758268547022914866211551643026755477926626995971489687892467036394058445268798244802729283014685166665483414697069494815590995287343249224671317160689914112633483718934673156631523207941505813093573022251265432396807016655142276704296000946158197797822846395605059448318950032416280565920182880995370824270088275730500409317706594531754303578776122601679291213808407848606522437924727107233741792541661593331189878742441801751364557462551045601356433076953035595031925291187142760477233841356314008698853093975100911928830056454642630395341031962416024963744994650989151002065660074535037949563257212481122618797220395998564105989819630413966283124540749948422969041310497151598431059508766846278532473251561769481307115425226004676562390839467189746863230246649259862714560830827929786316540883706855449423830564298222491628693419649101860171888726858608721949216018124325228286125293387391615342625146918986437253537204050664539374580139812486079054040438928779795430563249779104574602268637382946236848612594635338866606851232299453617322188452972390779884834787962095378610831782665303077479713810736653193559992562412671428280439596032237502087355282963406793888600781759402237169803371080389958293500801286586826112237330619236683475896603798635790907348630253570442388544735737772950511658556799333911602081019316717388070411822029102594703856682307624514509241759334606941356300599680645315517774422558883238095097684931611791152392796976955894756748185870391350174335857182833983955579884259897721855656174841307363907812749394079556808729528834976343716248927929227829104132267670522048593180073055845337978426724761530375948739664484811028487618564761378687120575680155988482982505786065836058942867467319387417206234311065237855523038959723646318190475295268564275969417022323826534548432907658854465507460274167628501581453214878293591671227478573945766271126434426547572191095788104489489449823678087514537133701618456380168374843848622112119042937128913014583533906313975255810383139699296345072393935146942043400091579523493163589501539532877658778189520112126603981156125900516935574175702023125392495630442262719777643301000434534485012679619682251202510735109360091980200052669139206477589516387734942213878859906282748664784469297959888010809486656122370719281020145497184761564087889101971746474865695899937057679634509382198778805541175908498523405588248321674096840717797867960822829451042627193513003061320010319830518702311397612036209934698119735584937230787836498234025574170195973343322888208802651612942022844672716117000425026470091087854732496507861243711461009169950616980678959953217189408997687229115347452905233916630744898802917886126151014538048645270825394798369701787320285888077071978220518714493668899215532698723965483613881118262064501626295606842936134478103789618304946337258858645865339819313266051638444387418131612854563589137225893882513726188387390160036874157323834953598364271843784578113121671881926652276456204071940308185284657051168791233337247984316064746653811714388734949830427517812862551727200591688120429148259452836105701902933937510220825224488808364311292066146448350100255188935861803898305881678396960335090324268783616610773385939960903099271571850423715713548347639948595364543029543979161139846190156751492193590683951509239539156135475038804667042722326419398454778400178914442476324594081506008095716327774615908800255762690938778383581309006908476265668448640393705511467422212409103330350801178333588612299346555889192392659225319241651726441390124262484772112900931159729392891390764929876265064720641303263177400980493818232019553462328030254334650823212622474509186547398552481414804415831062846383325477002472267665467604330795960055630761224050358488436219807037485738094266683691773542819802128022480734750351985968382584113369040071283178955736179877856986038459543610450232838487354083496851110398676592042519486014404479704637935931616663149698918053941978081994966446872091489955792083963233658236985135924093095491883703625818682582161748780294435922508255279656264168858054454280877235570575844086022175253847569174865872535019815629241294690186188108954389931845600095058622856433583183743852311899850042297363281211262917941644657384051301959262021896301189957488652792317921262248337956290744369510039111584847392592488898609112946788600741746898574093272657850232760591012430831916133481119055058010446204508308526149758202030116538698432949372602615787903736197985785032003963979393460882118123620404053636938927295752781606312026268331841823175405967712592365051947802431678262612280388616362306076842710397866020823990210163775759594869525401279295144538093723424520540040423960245047855454254656822458339797952782688017532350387631367547950194888247999400640119485200966026886505932946343502827947786930925222292348580665823352960639261126636232041365527628248698054644373434934835425824369357285601467302353690922450771260790927848894716536371592429768977419149516696142285963621913354722367777939765627840940512564699461642569644094030757245265975142990724888191576782809552231042964918702883664557422083530657492778716859528147768187444694039841576117908215750444596493647417400390361724524226649867622554659426869017784087568237771525715388227371313868991025036383236404906951040498358510446161938148489163860260642897697916107593133432088573940042915722613226419219092016149088549232693505759272541530849764226641004868535274261937693789242899418719977179122885432734830129422070546477406096293033794965807555659372358617138755064305803328593710472025042223879661807143174966140259093793295909223346683258590597066190833409729723060942480966407223010704159475387723047637524783439404197500543474713130412084724390782852512553519230480679046298944553325085172055413169010981153595735356983379050535929354016497976402333601984544449932866492476144857896775957484250941965141005451180441433788615378601679815191434399815394216266155424642058423795895039461122937965909488800985635785347464219499716822099079101443626580011907793560063840154908141640729447507661109843390964628436316911790094481679729606395146891852004350039717780122745355985550978985851870122988729019394392631872099278030260825747250132211258594662909912096274823834846983141906463066213095610048459227501530138589624977774252873277598635730548062780867942123739785449901892472884646177237804653603840641896445469619751390376605188361821510925345599315274675389616407134563636643095094461200527934565755612692243334032432827962834676999538128026124702328016067953349437190338471837748602617647655406419657384295315736133593735414233444889360050183964242886160836016925016002726844666579566591010071818536025807807200776172095059447219360286460359723069015403622778798239777799325405854917293473436352129057117758250044425730456817247910708386744610657386289759545767843422679853540538695755197956871501403445935793112094207842527218104092699932979475926151731501115960602491348258658811934219346641605740218311510139071042787613139814278853071724629622329477557879381565178099814546354902212491915389224780158019230376230176405782979581289253734981287547720068342474605289761681133221853598536640569885147184420276090827771342185896072252583517911158078090696885902979695408631649725004382233701712943307465453698401548126466295280571898602679952873400878411513248718841757315259324091877843573811340816451342669907047629966939463897051177520341874461338845610626049727809101923234661982742853624071721513887568458976639184838391753412813987128513466315597704763522625681089674731591352325219920347510565248924424011982319405005734386912381022847272871250146573505669599586531852159142715179487270828076046573515442202813995733368468947637573451938160512348872448200487988817885961445185138472178484277978255556456329986558562797777287595178479899504908235362176502977154388838923896590383824244709429304687620720883289000223345379857534881383117904954374778260684244815106224222143856848604946943351675152048127892488465013977934316240920688043787566732515860457676023219023595629447274340852579964454489628914435677254777051244600367809215844923361819982238617438240021452049434540090287480643782408760243100645530090734374970657143757036701550255437643241449752033329561602389338814513360401011134834638360839613642558627819761173194344970954981402521926458056665043410901257778799501475725562713765587238311201051253600856212480908738624849853884084462622257656610796133338993108826716194048039250638952704070831053111571692114725603253291198342133290544400855076248586549381557333804308532782687136764444256567894653063191190775379538741887668122585381916984269844094670720370023974119705155555180875545408578761268276348388028434026382012876475512154321686615310992594506212973785967386622866636330885877813097916059079106241381408377534114112637373542556664924175397342217612452171068808238919937520019627404785612499281501762054329949189513926736924814111156831635289006729184280334649486586497757278821451061363037167588275296584783320116371151867752094006653487352497101212775729212932199458995485163436984493297475006725071165676765918897488440198892322963348190519768134193378556919579142398149296466173879492897485157496925829356736986391714288870062430544585610463597395316546885010689478993953963551334412230922744160922769832131629235545640643216618597107023104802606573685428178209744721744973409176191560108754196751797271916205290099738732827779703184066123103489658981388671890001757721514919155550853990605696030069065869694185647649082156076290396446476555060942964022347762321659717243377963533672320182662932263384180064150887285367722818713019393154992616523624981273134725031724670596642969572400752602164830133810947648742621271642852108661836214628733863714110009180746031066970745770975430766821999838286318467235915220637209480736209863419906409165368127594512298317775728582417861213342891109689829335764785331571062367787455233670694173877130945639356523451943260630833050385798473046758213992867682904935948069653698832987915392360116844856048508234715074659710389090973982558687628842820833489367461073824579825695852716273532534528780612298157843179116590978407566174791335326911432700292482140356107337648191327510941772530004382556411687644729450493700503727391033012916882932058262345090715323667342053442580480012241512249859430929697694164683108945023020078799035062660399919889616509581526050724948284347559393308227897433281309039314260625876081765616922254575456166312343097636167446008365671850727301290647964306363159982281171938693321238962085400570890508438464690989926603376641231869887346358457345281831593423145934624225664405392604004270891079982651267171421442847215667449995774194230554641538842863831549417484498540545001749798685156644744307134406469651708135039021447274248960990899741673253332126376877376029409429182260658958561448612358620353254126792228898642863607932181360858733253136899703120430225877917690708886420383302827776871555619170370604244868971140225658970919430753442245520509123400006470673246526473654433199934597858840499909376511908475066222335499865313679193677454413932936145006759892478311962834934579619498405045359213810791254107174145021452605502314075412744051828546047095274934754090814458592913179016129789013697994784719008156878897901569052656915283159887971626228983352259270077188019261244610491951332680577753832608221556946988805813828398261870498148444571033562044877673526194909901161970348483181955428555847135335366267842621431195745762760617259451466069865672316334315353451851706312618408639808452411738136656419397803081978451582344519760281738227118528792161912741014614882371055838946659999161339469809950951096007162360151558228684650504684732106397292675427625537058164482740031168327390378201713990841930102488494012086758770794193113903520563979832275775740993607869833383259805209906162613162900074363511597899272913563083946137193310503923686041246349447472973966362848084082431320135915839649699524053261884809718164995985687582665484722839202255139043090135361827360782782513359508712318018973074748315125637391522204812840885830391743216924248798654415418552069752278720198474591310109483168151812842899509348870919798470128078938268181792975710042393918819281383294736212373011417952806228130069596710397259001322727466265677405559863978150561641202806512516294196618241366802972661706510028007910418305648969980556076120849698497581261185978534768831847878063992296510332364204793079757693199000864783502528869211599135250799313326391497414596213810388611697029376488041698374675597714029281445090605379324115294090797644083100691833427561770554861901814329366562707186466240462232513969045901089703183791298407835025909202139071219287362907744756512392078985087202671981180888303525939550720886353269715914210191387867013022643900339733852050416885347689076111387891115115179517404123988969214589281719665955148849128922922044277299155606154164808436588141669342947633405010728843592491613937687891401647927770463822354002165281564891529941986113304632732515888426358057070048064596848063102391095236286521455985868776710682344988952232359630942758727867738860920926276999150058277815321451696124463385595747046225157499890690355494338428129210067918596948468342703636338380704539058227582533593905544685160824526476192957474761405806367298421792362501398123255021161323576457800982236849139866848779974809861876292594008075113653997115851413935728028008134276121169553119040930931766006877605916728349243017690218304442937475111258975237676478313407883994822366433371141667914585342857430743003946488114016868271169231481351738496396604321281019180314343860211403723747706382140975833443488482425506979744713485250986923993282886752218015189738775573534166171630849205018365519745741159726557393369341780939358991180277822353714810499177724388813022566724878383200859683127208110264233065372742950615645300034199452988678036472000850521975513777246089910073903634004274459493051415228125393855771497088227001162779259279491898246556201216574677850624004298992153176361273564749999474338905555860397574044716834942797430455220429966278468901348926222970861021198189424343134647430586372752366198593500475652358074255432447631584028949111660378583868788686883010776225802771580137625839221819302331335460874273830406906193376916280024375436967536922657720531181191594426842396884892030165758611481096042861568137434518783674025994342495555386250059513689337277984883570085592591552835837758465706258693045500178447389538677286679796761561981576039415456212146196572947096309101614687651669112475899501186641217297118310257719216746034827940589334967507479058405901268896564124271030379941387421903341115747685629611012298644715779117971438070513771521962650271598257218882503586424679748603733495011667597729462116524570868263979463828370032542771415240829348348497968432277122333202300564349300831741984931350762783340969041705139148005528531473771132485116621558534736766364579436574127450445373888915218042748281771187186697577951895326569699739957265628718631650945633642278148275550878158825213625331669191510704930222394505196015951687081715424024177971077993295718598520914889261828688393396966524942109274612283781067518267214124918010314471713295496804992158857946211188857745667169130861050363019516200904816739974681536686002242387121236601133337075637725946860820645029370720543841012343364452682820983073532423291573463231347593950644951749107371186737498715957352069650363146185309988229421397891317846113587319149385232536962095116574129349816490916994013435633884579904765462721604690320504463651233736501708960952524367916995810913659166225733863400696713249689170687844662328933589485832898910728975750578577506994096332639607486623898440540551118390836378789983447500834624047702342253817955917583693310549971985878495846250264103300633982703941871536598343616837331675771415929024279951425746077587738521742332415606225809749676205081566724276095145627657414970588270154592216207417167050022395141506986043682864397838825251163634901768084571850062504206783569835053733254661229249022090310274550704183890195042932964808304251200557887329240410849574300864168621015626740108568699616670156178361749181852324910220688431165679066061112200049434912002118417599507158044879718072874635642763233880737322488260395704841642908863632472815067847763486051592467156472015724942246097747098158380611547348737714173924294749888746458586639896121103073226531211225908732245232432114687972315267954113451836081605218523145631122280063773893742089079770657912342458973033258765631320574739006810649371075732860924801890759546017831457693375195639114482747565087713890292207501146434262364350135514919040437311448446156044271068697538859401897370802533974298591954003310008824706181732079765516584875099428543733960883418712957458446605644614552663168374908067000588143351621738423458315254022729350312555048690886962581286398941354207768417255567733662536656970473970724034617108793499491044765308881273739038203469924535704735749870053548377435086299494794260877446386163261104782337516249320864974074461884232014783038539475511313067218031772484023449205549970624286614486407642035935095571668391517651519620317874574362234522014357469865243806599320419894748946435180536226942360263840127445945469960905074652060837049499453697933398826458410262305072744363852339356373990675794793053691067707876461867525367285289370206085517267182134052677434947674898111658223747140499805015239943737358216483283116055186447851710349536897010083118711143965076867268271279711657114202307985787871820897530208151962324308021414600212576492109570132745865015382973109745070234103458226310151953236831639091465295147243320491406216893466076582300078463799906402728071929509580675446181183420715109139996385773571337431126590152382685017051097151855951298477953794314998227460393307669626951054744549960956499968573638014386788072425731542154262784246611180061849925496144709925668086454501598773061751424509164984440039604737044359951570796754863197985707314673491449777895955794900507262136049659136979369956628802052626809079632986536922494378667821114592185601880518356133242402105482035357480237923104333421663622727914903665122791886706597626847633993432764822144828108454323014788008673534812664013698693246976341972674692232949474217195413579521755245482262876660624838201145946661609306250457935896162588940916757505608057438690264251565391985124980907335542583249963952431935086252564950064850643149418792169231940603027904869283639870588954677680206453130774116049943475690219565207887120911466686582540461729702720847813111659588309490986623655474371683650889238272094667627504072627996724179131779795737014030473665820191892398257486755034529967628234828300814252257568215212907072486771724309881436526032872322446320188691844994029451916440066532928551849380102572244897862646510442267724276066737027594784379225601569318814973259802446275367815542136395340256840857590716761286275122810871811640994148110095101227396108474827610448940157421927859941479293339971316899336101778042054315460796110830790911167785852313803802471781060867972621450156697621675245806206641525744423981163271396093286281098717767990360763840017705475905838598908361236685299428905177373875632990164219151855077847749266909603855302982766982900766723783238129097816086813776184308817519801076273615289580801893989795033231542644074720223093231589743385838087471842743735535733143964575839023000375472264137967970452109555953094640527395423498608749270946678655070937109641513542450859533841882487691416990574175483343145762494542242930491916860160664901235029589236903625557529635684399655502646066498180747200193847121025511227464990792826202148316707731337898805787305903717497399287027487749589342298895749470034281610891577081011189831719676569593630899509162760946387922081375282847506814660919414732448690685956118007832873828494808498873520900803563783313382566021226965085318728965385690111269336483006769832164585011873286916069763669547339932843428787775266133563323989447488342104531460883217725728666270649982877713287779398520569734311604651421200681974787768746237358015191867625332231156174981316461140205060184746782656791776239904628862629860436735541121319621119525271957545225141014757424615398301069338115105118783378257197271715954311753615712822956532618187557905343235084479748598156246449811312352380164485507897747438917021720015376661032140330927223899534060896608339934803184694019039126176324941296644006002276193681332820991508651312506278135323240424507713068792803634842459030070702413832857430435387027076225236159837658726320375913177804940709472793626233238949131890778844469650789222134378076815652320365618332577082591982477416806843806196195622664812945236221058235017754268564571294395556736872814469495685714088679177368048202189730898575521577659921837608039015287386137643065096331721146441769509859337054628269659264253774989308659038747556445314324717823725741595057707708190823139055022160936431159917036423015062319498444098029720966878546657636847510005630254478549008379899653012345898508369573044934228328380295221304840005650312504610959117889257432216472420339527725252562924198619877973652459075200120026645044719500633839503382234273625411072420764223671243301688692059211163571058525151110361715325303402141422472121687810556099836203378802444915316678789273940984879590517741275501242715173094041692596381936404371240381015398645247374857116381168834899080905566926658141936917670793761008054623371936155248104133897598467870830578660343649359271830467409523945890985696140207423723869780861065705118633525573920567750950074050589103637593346223105507837145289015638316429620505109198506829396687325938522399512924858483689632744183934839471767982094807245012376165097094664914930782605214157674357967162986705059484738612090580994875694501510396737305097604964745844587799427696321126905822553187980009550384208570260836017786445071733245861704139031189702308946821553344640440223240425148425605769467298275036671158868529776940089906692201824429407206552596461988707745432156615285435198356510523900707075850125645116980717086021627790980863318940444660380529513912704762345852465037974257026488703385259775025699160306872406318134845626826561396114145657418290209817556343478252219418100032215267923669424639556928183162993121387644861747762263247722519267756886173571012668248652494742769175395036204186402408265179799175497313976789610878431467932967899111317121596526838533277673855552929043715445288853340795145484195785485746088174783356480000957773808428834093471153778941617699207362699931961391535061882610892252880356612899478095578758088684172637578343419923519438605906550281079781012004487164112959646948317551157929874637062382591352412120511578390728325096530636314503843665661413694187525663835211034194076837934425500296877488549497949803013563670154872948229896641368531603746436301972996830460848488001455365321136207377866073190534546518303475170908468155543506058547542042642013148100666102975681192107436013979922896091422393645730594106209197918783062820123460717703787957991375835813459089513721124642549105470903476127085621586792401625356541788975020713381539705447784816989963752194222923221089963791754213029950238950918203086786081160810698768260030581804691656787973806624282962198821638470895499377123768178743934612734352060354609904795827418319493434380619408191382654036145003035846627645402151747076583879146788498670121747256979739334943043273386600126771613435800486229103510483410175941880030130546800182262622178012973528374884105090193450484437558655978294005503148646927476369255799421761913908544458397739924375795211992358440376547322741185898533986247849783202140745768101696368465540039121229597681891710464106668682451663580119459957160234633683141460823490248164708272328486863514821726545374496589148305132858041030074860558064044890005594587413269973146293969473423868115777350777312806795499612447264695080253973336051229768503718765648030837126940252177770670944433210502510404537898400997863369844510323547952794455220548588212383784965780231206730855889214123104649923620467128263428566317873119485529587055729598668802701342769297243603678997298454723669280263009764671900943976962488465969986042119822228408654793553497309824205123857185493554973881926305697685101176627947478185537714739620297951621440760234023385562920969880883440733316022885015676371828195562370374158655503409961458491155247298033276882899459638003415276257349484600879162530969398402970549793641767335309218181634307913837757061486016734104181424190997567626914420069699346681505512015707964140699793113922158954205538003322380248989898366348310417318369783506424317921552637188099111357304721951698318744231540384188093248456320329475932124210532062065399588549575334787833898649804472997560213040989141294084296581050126231320607810956277554150468591550843780087762882780453373963498730059665604611438797420250865923858206842029737181820095031854552251178283580620955895809246836425990098852450496536495385793330023225856278997588395488165468983855618888993389343598721757872962167206227597999242537658754511640467042594396651095703792082781737258265554197325021939369109956627380652416632367713534768169833156920261851672838691870823847772256641860065798891130279377231213348257853169920941269177736988107342561585739314870316832909137932675417845774467669314616716472115912534429612624658079260417169659730264850512137238156691253297815160381642458693459592230129673518279481046362453411394347147695996553904562190780485774287303664762268191931961051972123135694404849605606675830395016950037837580899198281749584092306422049476522919124289448007428661287355322691927030994739606502982145924448956043042756645559130883945403504958164163757903525550368493422060806379336299045895617685646358135198590791426896832799167150067097130152925072258392604274875653444127913489767945166239713698441678998418334395639212569857397291635200849523057497774299534988685696237217161122951690070123002055677823223428914444171155318601258577421298912428173235735547289104836886567317653838286708323349532456903468844835379312904979645744355854571514597825189035476087510640505687149829545947360873281186185786332045749286445798545882697916045461391849812401188200900354086083616453951187080400167033604602171757705822399361267501068486244708754829796486546781896909589556805039726043368557486761194130024750158991530842033485456737830254854628287204738674595775713027409160655339518427547919184675273792938647487115130212669056913280873037640592236186869554820571972095868477349360989658477095203722910302097515970204464240033085728644458846600095868074759584312843984976397010204442041799747685439555605923318537379828450745857164526208847807670906308294624884636020578211388020196285181074882994677912925548671041963062231991487000336773136141641867743477616211068274965740298375764796698027268915398872995929791384634413830820813164637429554007559040006519762792706481453638305415187011650914632060300345383388322119650962472079621035392228786342535336473209973501896143074987973871448479943698680887335844754104220498667268152607381517297637993857116039092936991811454346782791926214482068265082923154922457590830256201686062281835054007351527583927545556692000028960620920737884905296842883008830723403775774471576999284560197629140001174930833093453637226531608032633560590976663963467931912720072522086124009966558481751579547182004781169416028334388091483885150097404985406453006257415396151863535646602489952127578628842952042847441102268027888985308509999215549072367894055340187071595515629755674592097452218400453231397362040155338277326547622914565448819620971910805551941368309805914139067276492077965534640234760846397272619308793917414303778034429008582489706805940261108080081018226671438575544576111695920937535605121115549205836674024416208039688829325721115913654172294889579503793381011057239398258331657684831128447715052187849561082028247863557178000402286913327559956589553555387111933538572080206373396219155942196168951446195254817518180104006209374889367016937952443978743313678639788760204940253856982476975843322028197205802541855966371235053115931579098294906395273600072122907151176747373253928039209251615467010651282874880336329044876907568161009612892505207335369179010843580667738071091772164348536576360893258713337736765909053415489222327928597241544846803179630822768534299912767549309465754681398927790920547311905710997538754104098469458749417183386985198881908623374572707473807540896395226661729950156539709895526765357039556110449485708805993307575655316155415320590049278829524182819257014020312742818630058071204967986173696562542901078384925277031593852452424426125081329328947894643956503222374363953051007757005492458338797162941788348884921865359124005281345984035728272004006642116052354052724954888212113999830783117622542585527372046833373590679519911136709537676837458925524035348714735911121929292528980323402348486294820204446145020684975831698699487253995161573314139539486024201427708121584028966752333181449362119190695180504608239429075519207822553261007067073290165042210439720440908154879213589460012718094957232058463951978083486130232190617661896437587584094019042479029745401761760292063623324773094626191559640002871211198222010044931812322748460744694066683258965822352565872884178194572705363407809239439498133337836516715659898897821004328692264355951506390899086212470730487167314271729826335549281349599932827000450147160408115622282196577037984878538230915281104774209525181313295256461975280227339847789199274077080585325544532303824427456623773072863196764352967237878099732097820830800025299164440198753969837685521098888083760048517798256538722134658948423509515192911396922117095616110869427869975500443910787199456241521859014723309226842266123720221168639853456151167834765239613093995396505333428550036247797903796084862254643885939179118965886491013648616577026469909708322329936860997241715550825161669140554143648260694882822120825956675248207990835952215023638907025617827339115420884341383483947310929516967697933106202281910245559656717390558600030582211930933983429937641304577389046147993894859368424964569540265201476516413918027687819876246751410361711664621031101545018824004170925796525341190519647669648503735967709743168256045775291738583760269425304698921449897550384657719989837935607473285696850908411084115353375636920022389361198912780182344225626980451832805783187795338342861270571100308797656596927997772613758993191753150552917982978541833768307236666774262572725373084748859085684397558810062029811281608401216607434756085608937601207273991960754577985303177844070362887699845406552140457906931919921503325103116256940230402229448557187601668254382516495235898106253756658144127948240855708909201843864520473298723399893228975261213437582431363366075422668786526186248205036212982447139189162624368245029840497874751266983642732245786595757896280276097963625366846345057538622149298210027629494285564138187166491298181267553325796826067461284348671507793180181042764179264703507352099377334284453163723131948617961824710835725484375630993309205706109845711813837248684037565621688774864910417671906151581409660372004923610876301370772823182977679927943394973795308508831578372553383253120365018665219808078120752678926224947789451729087966639562692019286843919297288138690451938458032517837689823851703746109661502535068288403633398662636487897541247092083529524553032908526493201245346506145014004949514456480836426285969623981246850222372582444614693543757505721337516872481995316291783165418540993154994796345656746496380112038342723314822698943432907994564563135446351058182382011171608810619202325166784162806697139412767358789156379245520796647198493020798558505562153020598448300686181265814504496376710117768491613052910622060246120965927695284112057953420496879087782406790216754982792134475068684477393095259267780191055420556185014979971270506232819278191158269160785260237758930337957701291835901506256057211896376928215781998197589162554247862235304313218048478820069844894508806112656955075776352967936807091432771720594583885241135806944424943241007515813218338431488704455318787635034191347574785649408582910407647002996883794998680868014835424129415247380343082672740923051240190610270554825265672573911114044837820032973907309005598393328777848191861097347070673980647075150986290839921372237865478350832484352048203717018397664800944316125931371739443614695395250840420765683324093598739338877976692113758487191038933424261714756831139589292164071191819313643985134743119054003034687660456782683068331703646419614480907407543219728582378843135764038087718140083088426880999330978036497696812966510049538436191745056611185189936068001976951004193232288406838588854114314740675391959808678551156845789174962889089526449966750371502212536234487714879554621089568745309984685267010037399947512266303269482862150492137153236267470153256290608170430307579074799280639321142880738401570170298570758836355079535477068158944981918318969561089890182809707279391356173054421742219554614329172719303635915159395502206255879661060267048015424148626764317339962623893341623398557557477675312068545810148506929795695581156922642849691337490336273603977981924123511374175530390274346316369058761183005898970697106260811889363174780269118696490243014005342514695613303087520229589800675217463466525011403039416644824381195496510826518596720535587582924792716696727973938021993192018823350901982153518764366001619619204489953699500077950426398775191912439082550210735781615641447587295058014606302219007010472902302794248093523562579367871262759473659804622680791213563082487499386320761160274241602137407889904173077480313746900545613254422194658212321104575466881722826662743290179381624029704905614915124270532893655812002017280231613858960852191754046226498756582478072282540825953651965342263791556345565228417738177731252070625272072036756943925695273554791542446961927028143614773969056614159544950382741943405131974288261061505966574880806321937970490728123312010637943672306657236075771788802011344877922705775821518276820675565126164070162832999110045831041671681959474219102471360925477026488596976386377106397429120211030239935100911276072406757884341150290776466707742541551777630298052977732968930063297257786913213015933911926214259047243664480681417102829086970905825019021937524981883365884054772431027891835771353928815947291501873390746143348789643988688131818351262923248811341180724213605527101396381000722283746660173459407900240381079255559000127675745961137520373269174984136424680929640317673778777791147931320360056808968866808210392186754619668214332527258272133298068389683797517670871234248295343249382224030677018528014917819005149842482162301969828715163873692062984668460252672553230291156265283481757115841780708134482868118892816099058490606316401124114889026188594111197290867868315292131720691866395559392607839474620778406695863819886210923726415553372889022807520869379971065631127389391277905429131467440288953223697748143068692728605400565636935873364320974663861538743334953826846455907679812744701983547038663925885919969906422499571394142794926664133112936297981976258127487061726323311592146152316553980114365569831547475285651119446695783637080751081246799309418511679239600610795973329516154800852638003372245284988916890118808523758417892417400186110398631330334301226983093127911209847743313420914094582288745060128620926405629316104910082874119833321700847078706860315540943545038523685600392911731660066880100598843625546586758967180245732765013748425474096614584459983813913799949082540065309413872749444584125755189101520241988065784621080792508089602333787974308014689734591822372540115585122763952942280976361630517741785964769415059962711123737860106394905083363345611014681903270012608197337250284420418444739580931588847151260996939797238372167028278288583183020706528644155956338740890401600150893151641063805523660473081746633342053776543498387387089320021421076848853762748841527326422901191004988808306176493151448593082462308559423648798013053874104887689318196438326123167741958798902688052018056123305506186254162545918117373993945409150348263299554462084478505726511099782198077797683822040947341865966007396548472007810848869229142995877250431581514170035976234133125546310678673132389021846594859047681987872236031444715256549772634596928656781386743660484819027040006678021219775828834569361521498312875837810125978211035279523282803942440265545164982227440733785542454148504107787715061646556385189322952598981147682571087202032323202103674793172091204306006511736845960383410039689416778328265785766929652094728537597478506464255576079514196939456809532595467124735738356969737551773212526616869390552237543393718849496924008237834398008128120873766601374422816277177644168976969972128695175536033635988646518123604402647085969114084060836850394732092798452929269234601171521990152583886225469002671030461680197487219932899939088074055452334105138137784319018289262083601901104638211450916678821304808519606994180345739723973792309227091753376561152914385719571523366048103212220422876113220672766062499733354523156593053620380497431864367099935562769762448668239399961346850221094002700722326530833546645141561117352254813660416860841412223861459584662373332402008091827579516715924662707399601424978358039557259858805762800726286539671975629690079830272701230973691116437786654933195718551802212315938100325507004100216965030904871792017218062778562539623443728231314396906502572031988760386657058723275984520805911398758782638613885575156960144991614883778785931252129970910512142355644934499499130714198629498909458769801671155038599090443147665430258981232296366911013002270293217589205366578372411145348800440048595149036349969304595521704853847894818702019808876594726060343676132853518014359837230107897722883361079257549835649385590058342396908269194390767202531903892348127056582785253124823976868035273539249040040157563589917494224639885032475756777033990155820328913485372045661271550456315149077279947273240567187799574323386614388003116936215537298908295271726533363827105068896762485698060015542202118600555225696003584364696517012900560780689307138987650426032703649722818588066411190566776869251396197718148543179936600445347519350891516231418691877839322581935848133884475947110267164694907791309440665009821031717003497122549276986067964889724583327723518726405346216164221638382381437046499665795998985422226329645450738060364581738738210096188271907223546635843480516334932579765941176324820886638287206425277624057740475924129761727217885958380313790657966954458673056236380387924574067991520539576318206091286576320424948938145349510872043103544743556461299151166556150243197496540809458489673724533425982252556860837626038798091267146163204891089216046795795285695071078108692901566922239903249422328528083921568482730248473514578668017880930275896635804205704442253062412723309860732299436910206348487313402412731845113187950695695417455904288248084136017588061121586127939127293570983554626603842791302686916137164772947391611930369860224990804797279115560687880942744140142083211751931684022645619245016138741276985107461958518435183612058868332309976195458365558390968643171173540610880677553377731501825162324019588265857072418070512123158825000921622079673402095412911347688566014166949644358923037711233674253204119902808081865283169704068286831628293306542593119298324782206962948138174670765246391133713173366884259824166978819940710880857537369891924363689214521557970491785722286942163006500966520058240908323272469000649285381877400251600542486352578211611518138813141814948986627419719530659472905047887038665348034037366141064697549278468609570876563728063998304747760078753482159707805150477571590572045105450849061945500451814579325715805820871376015991192447053820883975578526211907330805395912103818241930520999833764482482161582669770739808994082691332849068345059600824187240422302422104829140706129626027235592782293772912719325944749930997958536018872887837621030124259999332156373739868263068907905918999992980771309294179456480500337105049157012068353057572650421236902921179948545025249567020035733776601426908465184277050671798870772549795048417384916762192855781768588207858681060932659296333268337801758862807645095610425934669015615155078447061213282371276663565091330566621230646069915414888263616276681208048240427148403995574924347309326120094724315431292220351361140399112547332714257213960064928476097322863704755801084601030780828700357883621473670221742194605435108294286559396740383309756850212365302764039918509385350599869913201504480422644376040179699862932769113432579451845355476774252552225014859809074173878888777688063527041296484112510944021676552349365805217675914278407935270964481609754227912364664715143831776520610576382502889940939420583418915878034646350927178169012697323042264342626144685665913392902834501001569309191993931535091985899587234325091903568320579476841982332857732913863870245131450261713776855584157498426238968077088065303856668724375780497534894438215244464258218911755733737072132078123968919845834873309170886519667454877077323499006780363422997883187417208471410998164597904599544231790439436628825588031328145465136525117477362695377335869802306758952373301836467451626970744421381001146956805613183401228375151488235940660970326666624905405257707074944478608853431843349563085858481158718863695161734906969591401985262655549679333465881707271427138617830612748680512920500841539542976848173917511084210875155159557608525657090804348828962642259006698339298741236410942061012261106588258101009165322483492993584466741462046827953842761563381705095925716755271523679776341271219385100840272579909805402167528723262103531171103894693527464746854979727765723190981906157936637947075884891451389727936837022563809043780281730069981949957333966335228428580581348584112690290608770896495884362991765261216895160381394831208308570011133528544164812313686775261241850040690266965922823403185533621715429308250184469001513198669545758023585235731693183257196238715688445771663788393311159328375682514149696350259747893250662586468092009070992152776974368185438186676950616176871209481264281096469908606936027886075683142923571837960237295557499939955700566350870537847053461798223239097418918623024305052640730031894037366911636204161896550573134080168490079932815609780162449732799680662292255340432579066679746565934674418019601512730118159533499790638583233132610802501624983654372538771697286461599123781424786179726253895548778024198965743197332606192989795713787197677349399267620546262552586032228637891338984106983468079491466138902225539215836516639161512535623131808266486955703725733337337798708705314832374636439621015846678438168780943826493810312532516606139264596753806487680420159621124552775781866218081358308656247083107834685307993421172783645569084307952209160242054831430438409743481431110810880179976756595630881294025303444770052128662977073036459763891586091752444896767808275595473925682068784147648930061984757533700895918325361946045124667409762352261598105122294703794848421953278993379332239538842247656331642187754766704109940959868038378270011409076676082766716741387493719039493974586523604495000264491952765123175797398885527853096320505883880402762176408279891096599627088750745600506896334179186417813505605107414596543051167089714199663100197757780815427916438449654625554635774453682742117242983357374890938168555980870890512007296922427880089069156488098493441988880655157625615136668526693153638387170992130812398909055324464753294226606091292651212260419361032205302117235607334934027053543358804073278172785941251399153035858130022939119613105825323908356412713748210854577044040851596001980189261376277355357326429083544963481965011894165840676690257747220284335977394840817663640426823844145071987273254210031222326963257243671759868449507145986040307915305923631112517393291708298493320811102015429706901058323461900223919741656823250216284949922175479768131108698205509980862493271487842355309397814059434877990040023786397278814236017650898175616286909586590289892476599073831183603257074471751226662052244228254745152957768247458200102491311722016331058965906279587368537573977479624024382728621324409714860229320238666066243370886379369057404214265649272197115580276550096191919782293242461580744073295501556924796127085084777531848210168202739530604359294704536457973774472442995316122917315577704060021687739630275744575427222793405200056736762994502373710938107850456277225533613459115210248633860831641520685509435738650940190895133052763262064359220722623183641242024756306926038499245436897528367214502044238560446415618435894178039626262542148017581082316571609782471402316966563002299293146756801958258324863465016499189931599632206314636096359983320862174642033138751864362652403393911211626784092621028103514636753000294928753634377733650827508560129590820189664302917866213902387210978280811863501333922461039007894141712379843076254531349027078707875822389505025061091609017627998992289055022363841934222777596062591158462842580399660149510455368012950568186076314865505012836432871548206989467546558341865855711223262009831094608014018157714918513224725826914551635773675271675469291368029746411003863343807890899969433066462903116239383452083888329354844638614153540941296400207138996433389902300511499000247136365173042733209337884451313824869496950553828563352147898097871443356287461414451887483192536011335073470364603892095557374266668984506442769216297655759002179915796528754361807075922927590543898634144762766833484752590005368838280200103758058229053230439501806028525985137499286022392770469036700373378177902119753789347936369806558627253021529139531068798215120653743277645837609528341953065480286776188889411714287300295610281392117160035021752097804386911305870398343249092560535450837465077409227454456523191439501890049353368325046870642220287066512119578280411561505441131931658167282277665280750485428737197438985126341643355265909070899296768505463819330202672003866475699780681546789208468730712210115926273841014871168402618134733433432456781774405756351483010123676049617548266439847899216832059454110948850552917943840437617992392181248176521567168520198505525106488329591078053891026135324302165810211610313788606504866966595020541819367854624487377384192074539023258058249079900638194817442857118544355860149388175769207402002735352149633228736175280149793721746920937983732252262415691196447563662683373065197219504603508977251929821090372392577085197413229363085039065786248595034950398125890246592913322754760005641812531845631021376215226773735103947036698998622684202977116031785842305856596558452654543494020537873965163059985431962019104515286147275333200099892175139708274645672938276892554278523506772741797872398154230914158618137619833857012179101999523324731117347625010557239501948958829801793524804758030410021509731435621044224459589197565697131301083240938535309863328639745916655335245985955786399042375860452224211865288110710459142270564727925874827130764919139941824994620119379548692006300756659039733228073483989742056101524088681118319394170428252819799310042593200681616881703682268994105893236242072666199311465889484447069489414194056784044712590701246595354783069149568345498040259465790760161645389391331905607204151372365173201981304852255792865205388828293786757711953302880302180303102711975034717468063828670763039948472143822665072983785679676192916210099860171143732109593361754174779964788979011539387794111779638388626996105863600458673707542731531829031217504364248656536026039616833537759972572191721447481029785295392408575204869324249472877333294082630503902571673257344539144992052317356694283417331297380277596089831368602535132306133426256677021470284908991736136321118760816338079225486112586705989775305019204184508648050825464355208641661386169233527670193506282720942691091063420166787923210257159210043243180889140139943481690147292805877539211439968775233468738200093508252176618007622688358336952836544561571199788451430024363033307122826827089864932663345734452075813381760327558602485581860789309717387769008095395647299864337688446468311529238068083590215971203167771564441950235524510887260091995859748305253988952335180861060702205973628301913290564634845994026799742121118197301125541372490893601186097738099373046719909059648429438955435566115521909101820783909058751796588893618837932403972893489553121712363317818871130371906364623547334622857102758936233163771874716945839268368919004122478402825445584417663565405524718791392572938936242850148292088251841832922902908437519327468422178212076310611475245043167600977067475811050658037338735448019784230796882867669746081132491624687114571719389521669638899383752328989600328795276677598932612764137252747126151020828693694217643481312856052583402451270116738747403856161936244398301495269703578931837106279535884092313665196508477729390012249812016654580091706307415501822102290876717737367716668938680787292705964581639135762858978023947542579528919192938704020957855431543301969804248250988240335595223592693972397062907856007248223473992124618272056337048375953521721590432539041822979938691554491608529236475371361498174939226504379761053118209022374230752948142853022116871236776333248465175210018044921895277382285520071732468881128997243146442152391627846269588194671606765872055221510791560739537357870749467973214024519703681251828018407040938962253663969654187477464201026276913025641337633848225647161843820660447165836638069624029957245943366649390423991870719445323155208398928255432422103689071793120291034981424641876431715675993346593062979699373588296177438603002453593508222443191458295691513100165224944972756233439618927141730101578956472469174546639320620746057086745455942157506562048082709465638710820567745167840942879006381942987373687178998709002035742823531078261644962806430856487399535385544382074287904079011197207945613262865442984344909309014310575213249980927821986382576682517574240590595356326491527298146365438629066994584578846162805004650769170611910549281906221629083838571155762197535166776617488875316452548503835904571680704053093709312426292916028962586532401055495720378400045158020151016861477010395876758776756728320855850623406796323284571073476337019943528178200443679439493585503034735551554242247387875654088558496660383525076120701019507531396843964019900955835838283661073424390048406987263885639480706620564593311415917259857349452149015986933612124015198737037793782407215906983031701027008955742718087657038909147857109083041578763567601451624897734321213303382512940938508707508551007263672637202482436602052250182277809488914452063431037597730020620973851732118963447998812052511439608810436960620334470416615485113414421167293959284989849541642463089763282595384979425878409721032762844042071557902427996703181299102173208803963269304760556068781080344694479847923790818022502607756089255967594302489491938976741523881351935589569800512785725505163045899722595317957005003120015821824305763238614851760374182620613764881863179414902115325620690056749789678105258801977413433916353939085677731548475206096622633628797606091146697383597011272257591326809359463521739830445673478102121330632446638211601982385071167930644866334972512898841015583296232332961660509381872733337310787016213811107177332467805963034299024458690952352632476272125706360548957373224799524749050817185555170066208882247915557849599826917345119917969188532251001239151388576845445993700955066912768996759116286695794869016188029273665132865457562939714338666221745582301356610061291645103472664991438063562231618427534099482176322009944104952791685853547083393798392211829128588221038748334525076891146071035449292901576946846558207931773061952783894950906685439974719596848171377407704786333933548792334545521082108516405722705927541087555765797848363163204275083904475852238476467734550158994091090617378173144115498289344622297200079588485491450485332390211332285089489356887893727943116439649600157183851622962850443302635191124768037784778221866257138166768956402611286732881031692475488892339940458743053212421202850010392936825932087939745237087317663409002253171876834926422573915064867737091096739477406639956501862994158694566238584156320524438338861961472419945496031989377084109977188572940691481549768347914736756163253861986205188738222982262426080940632742969869843026397528656685629296799638963894821343054921332645303709295286092223630810144329079391520916126802598783944364904626738854511415877820980421390571836508845432321344726972339182725663129102722175987693098065640014504691836104755883914010585990973993160605082733788045384765748980624284514323041645784278059941946490710791502391317832447357664337770176351611876110778305972425561920028685475230980485968911239678883250152807080667376409709913787061857456572199795150560980828075182289484853574431776394618649018721269247140700405868808567655779772834792978729135129079617036230354491245669756645999076510180566866796662022716136946992492479726266926797999121676227195013082115978897475740785002239223632966635115421555100333878133988712365397584054436836613983657995874296857912740864576019404197096702596411659159356191951720612124531091907654269507757922129400661195890721905625523805199201373909593949649808796613533807719163980947376783150974426855646943115443867251294990048994013182273553764114600560389910028543184270387205603063759081567591248632412078242528112025308047986008418343567755173027169807962888105219667033217208588864512331929939686397057607620663044206766949527107690601435123794987329018233021568509801166347997156061245268399553844465337248822584502826281206913275273589675583858611535872601268643094317722126299891363272589267959752776212610898896055665432937223859408624881006140104976916739587785933834496423400449790290682280369191390584007982861695202741689052896520553073304208529363116011752429251539520399863890524239748184509115436896957034148295492946176173040299452120935611621504316796544341806452330046084416814085997402639804195629351836737537876709495316720781837556209766848472464968248482789807408706594771627415454963067111133929570340228405019994374072646021700546414276451330874085417185345846086612273343054398379059824540494980417281241428291376761875420112126763247129536525596297076608234003269274826579768497059015988213573466132099521520319297644001380821344466278041020947343707398089318438696095880246613698981877533134163895234269802070397084127884583016319563276603972201083404592704952907708938228188227031092956199982570594571171666823032408692484432028971362536778191635660524341492181601074589431798900942515261657907925955376785411574555966644654358725909996847736819756738536085379566540389529855408281560802510440134267181449061465289891935483075022860718104385953838586398274065330732549445596042024560375343967916039456455314835636076975782537630860677462498642601741555406456593664050401029225903023485615278604419392336961066441742307871329135104238450237741377262481926757067161308771486374712842721772992896754586023871728176652427307574140080099526610577084413219715863279146445479470495238362122757977487326375432546922594136650628856329403827584657083465933963465083457031751739466573428997251839949359153429274742432717838144088282376480977236456004246310476566926688429325353090194050825962853157651627410906602327165880875139196578687934793353973625603386217384784177940352060806460180053312255594659843402927097099734571740938140529229252506847343886368090913095163595855400642427318978807934646868987878776164532363215480127229173454677086955497478651802533441796257235256532827036670370756930741438898148443667292128014041510479044856531986401845182134761938498091793868689681212294469495469140039327910631122596991716197521293483327831403346493527206499723300579195874855155588256542667750103610418739009733030644636177505066881366557340897373582293967134532243581811784401546268031157563691602614800333690392290637705149905803528159591101615974705803471629781579379746878755900511176327469431559092967441882603813374598012436779522083657237011274703754715156176571374397118254935189275181200392023085181236522766955248177313186911276912332813675371079855142354394711126331300485918755723054863576631739852561543465706058424183723118127251968754887514835572604081825651655373356757607224849534487998569715083040327603355027344467252041065407580723552645081105717139658383216417290309919856094526007324358994659301882115371224299785706872808345144238954146508523189700849125682521560296093657552568982999961596796372924965011557485238406594494190713822071109410763199860994697418170921022136781963040225085974231424303854457486258643729775150441690390105882574002890809444827598074243059800070196946614278959567118979851476889602839987092290419273177955452977591301502150884955162282582040888240842596972065209757692575820439187390469591733524227401240312637587011935484566966680572081458755669676039943677669341763319263138643406312174644882351296142451778789786176334136066631077988972985635252061137694297592944980416104903644221514301393923957799906752157718167184580993903165351913236060802879220980276700073236408585087368854476419682940992354096638229642359005496689078255011626738126040976781659266422551057895163370342554326591557650797681288074303891248030982421201480693163284358604391980363018984984866229353403528429051413970062045960034830863242918580361888469951582217877582325820490188050773016864671367594384914290004167411084267432483820591090696275851802725639643908612745795901712807460022595069308055725165046376685800855884902470700645798228154711941253691119830143639141775474658008100870813446094986253720081485314782098128221599341643831146806661578938116744339798436410839788396084372773272660616649750642746544841376797402407049888738896478767169836175308654645753873622228709391832218437948231280939171659988316853764124000672561960345061536221409433678577591303720728551137969599452693680617524856477283234034474740565474296803878212376142581865406249761954794219829685884507560871851788400408714972392186564464591334645233206519505457569117902390638343006002478703958167745128271753649894301321905840956613284831278747564578103851522767186587991383358306324736520666956758785886011706626588987332088522268332166493391732589904519603168063207591837021946920475891329861469176646996419481820234133224479833967764251009435083702381962977567335637969222812537742915385560798017885783096391003886103545232767159954103535234575903946291252700390015243216007531034560865631042214619197948875255143258316972295226083307876715654202526256764039119384388027212320315312133038053940861875184031382284622712095137657299270821499710361326659702311526762872431208013491493352233680789858895471065407282214152136377193523279063388858603533458272266397070791874877017918266777997577462274701103070106824619655029936554950527733878323076589667053151960700876528661560788720082049002295538331452468831415442376263621613343767561602989965051881223575276398892479340189400685169812988687759096873079024330790167144892550679858722755989295872564388905237781529638880583401680847576878089175962635684487265570372975725450866661350808034373477669425436955112669059958226167039701806864612548321898406717153489887189957569122506899960082469753413712263133148971382393665198200272336825356154692685909969016535959926228260341806995305077692205955008789838625002692910740495647845789969691529640074864798381655181294141048052955588617014074479799960180288098425023667187270396706395627737537050044073944265547934670553710289294409276034985996213740938619223203129619613925287961650658295149895620023107908928826941777543057014806597948402025758080865188209438555023998969774262194431106979723859756088971777270203915102298995992367708931184917201974481035508675070037260599651604010691965286372611133464077632338888744439276039342849141404235993551869530192932672567345484710241577071940105547758225001113804121497204515524329966583426759502684389177890645945932926876700168456527633316137502909768476370474501348653191036606781861777671539271104110879903021107015390216824334884187981187399484301139198486551552251147349768982844804040492620949520303077430997900800824039656517963849836617576354999366059883910242461314055891369997722503557777172763344418551180429478882292270637581617665819958697734062587485201244729815835545190975451733119705603178879260399814810988266745654248131214780189265261185696438892382536387727869784538108032805294139890886835665690222621323682278893041748890935600781764477786840232660632357487719679875857046352594633773331973854919194767356131707716839454865171722233109133006442393850098367573749635703483397935785359429676282372017644131656620106313640527367692321073760432454327614174916725088117466435263261349262032140153479747339090181747131995137676625118967576671756672305390862928237227725196456892038911666956835378616899309751550290942425370058781139008453270890902675025346834861878454368173377826234127244530675611716672481647963591966841087950695626837923517506278749376019128660125804012906934416311503323286166274577625537757969466898779788895151614729470419808130411756128975301268369591214207207228707256717703813820536017973561943901453277916800520829979867680129598622318002492388808924087142800845135367268256558003425361708730362657239744137449396144389017799678305160606630349911025924068425681082404111002235143383043111684689157392707974057940517597887612733015670799186903144353485547288575411540613456744155186326046726380291676463526902065316032453636387642385538787459182802425900366890718936295103399434058307020290814215243652196011448916408138982888727119688907629950409124367482883123289684220779597816451277639743289694289878372516904522106485485257212476006233674502599295862479088077253942399891793564849643593306244618522674190731390079761135198840846553562364615248689643280176076300643962817445974689576719891504645603637289482144931899505406359607279450065303300306983408372406774724731392040397045024164193808470586077171332686479023827221020443406551776073174885510017899023098514230611093730094680903220876707508805479111729917538522910874428782368221437292142921315272909141544647010275148353254827422188758079277854530868221038879112634127003007184560458496357142500021197913039764013425534707278501607352516311843701967117971282331744052425866068854276469069799119682521207323144168116956803705577038482891534803643329798692319508759284126533000626234137094402503490047359118815425223684805179000400126288965776684500221581975674298521552139696709875514025389341289260823699774972611404734860645024081598187414335767758497869389627600426399294033086158592770185116418085832392245161499708392872806271319729953095366779584920629335537318021415769923137695288333056084092066224874293997806833315007373260696437730161792169860936848707800441936628996144012595700946716702917488227140360925917384189933910054001573771477253321235425434004453072676931621603646835645436499422809493873506579101192025043820569512068154666588823092438081269711947629449363403814178515255235920285322147177033341158228834057338528936059854596297972168735191477797873321498068660810133501667354765830118289278599728479682527864914049285772608211009790918659655384370340179574641715050421519937046861596336666512894084723712988888537502999091147889348159733020897066868956203417439589115558682694885583459618420923728267224119964647146143305632032748153604641323545108765115899881995351875363031963015209902206679915798196566154667225646427139870476085051850810990781110019175827328527705224906558118602354452835350381542946911671346670434843563692847970847855289463149105239478821337859743235901888334916338582597643558049244527310089005347438436117148818409824083377090417579235712830468881781415946637825286729527281100033722971807032053572101857299347033927570369460968669855271194469690473285088564260030959173687247300677212108789360868101176406791861019377752317033416523350664875756392543056829213595250358527326429197139565090016041281581217094722976047412741904802712208831274738020955636093336992181293569415232469199274449985386411781876964799159622107856124342880131759510574004080366227968500729928379499869923445048448651928675951566179281061410612587824134602859211351904966654893660260037008204954744285575610622277729612437291061786625019621927951043369782782182720703134236634465875159895315982237170071712430185890775439987227710761926977053136376718751743026804970001583294369534723245070049291271367820293075243057211673548081116007747939943492257264588788877435062235984056611491525377935007870344278306190346346178674298957047021596917816355295425677218455089309072246621221027158038741109041199703076752418635837522009532970171508492497816270572520298168813398304652273288698518416729498406678813772767575997757852030620353000965053634052563543303351972517882310860878830729613346375184938949835916257099886391637031101316942130207365070969937685723129747528590148564939140310238379930523640482612542771365328924150134259572030975962995886254244568603256319629893737888392519232290831054005101669567691773985246977545435845703702574888301015839860410847418335735171435346613694638167918946935110013754911938126276953685703496711154931990024859347636872914981566313587377740754424419494787178651489871657899652684434398025512070738978064464095411629605182515120344564260396194730138673756591316457750818611805479452815029944472233650947248328140208206212832774497780778112130601268365780590780912321806521707779394756306132194933305367391913793776090948383156052322730999004218449419338673708651574788939731606074810548565444856890792787968946513775359956328668879994315280246867548958189843288881287202069398344506673347516720523591471943625695001654983349331238339042390997319240167417988383057752932470978654993943532490532680100409642374701320194511735906828491674662247430575370772164587132187632074805962140008914875780697410793966408718864340742700268292139938948089982480473746677690454605936592524137790838167000223265669522531707422541004409277163251893868820690084783289450600066425908810028273732208511934092357594350312811959079921110127220499911942270587071727491274334258837437566241994226476239279897542204504202950062361757876075177888539432759099700262453787260782777178261434541267485030492663945912597709234235050338408218346199536392564839222383037133996682086495733677031231873414077889906819194756016566836323890563788681108583771744678642459132371425655831023787899671529198978506860700070718872965938542747528037598604203126195240151135593557233970264819078779658306536204929040699136985278078573959972966973126900675625803119558340506639517713228678299568135918250978764799249286684153039067950430212740761886793781063405134363395192086644809381671184001125306741107801010005156420159249052323873106538670483254353752485404166974233892450512656982162781148643911458283688271453225703525357256393645940010938438119688583338790707702855196665783902938002584989296352971845300965861596685499857588816172350255581289022083937128099129067199009677766795935755461557255837939508845759359059513282553290170501322564663846459766008679572052461843067111321912224810892242041081178503214389472212452113748607647631924602969050318738496506445412223616611157550910328120154471464035090489179478603486252387634179638865978763140736016934672365219668611752877986770143292194628606500115780729379156767823846310920696198267275179455381839969780776619392131785060646268222698471567350281175138101236281323060339745466547455063992325984779978407411415369790840176236301981625130681634602881460545718158027158287749453287089247539830073893546350222332355857580713392354624191035937954692657356818149591844774834061399475205155025479349082659055006055072272089197127460504064166788455346118194604631908850173810626686373648643499153971669608460276371742846895453174695930863309969119293742097039086346268588805526766049444738294366802031333973877627485823989460919041834454086779524631658487598522926029754297100301303840572092658931173475016885593748255395773263219462417178856232401175292730011195299225195276378087661907270381316345403566372657414292976337935934756976786478227366567693517094021374101299536000363374779118926713885227227546462966481045349726635227134988667705728381480176877965444532403624482990269570710397636228291301173728158216944309874832202537703498373210045361376034717968037743630670219570104242521160579041195873667252090816823284015864550508145003286467210714262798480301160837563722142101923892161647130465001187981774923862382497689853595912196958950779421429573385209480934866850049761474048767496737927239860624442413984644483192985100146037278799495551429120274103662900015223368460140949654938611896489494231254600426222560532526211360300150357501596384957372905775194723546389099319014203064654636177878704292836968946237753480432514226624572676441765892749006764435524770619278303236532297677283048067321070035082869359447681786480787462432433209926333788959256101751356661603824410168557178256797462166583516457698240937245568210951614408778553792296463897468960720939128163113022596860458003640028957199725245118940458519910237143227893414955579098169238581699854152473583872228996330839920002378952108048445828351190055697960863407038227855551423178432509350406863446111198743446860301457883997325824086575874827690831447741521372596485229596107532643542397012344667814006098921791883684950194042270387798651349970235427695139126684896990315014846620710674296166922225436547122071427900129674386291149276618737894542749105318820621404723667751522561201820475624052175797212544713021349232635179668206497528659367275940262757249489620581803956550780689129071394393165255551434542315421933434715184801227965905313629921265599950228762811303013947321640892228580126808748933782105891652665973047206885242394116705055100788494648287407695903199692114048302340191777707326267922235179342695394829879665737062327351811385276240214318507730074997370409021038005954769168303373197259515565785962301864403761494988337602549935832128866332905765730484460532847588482211462123195645078728102562234111877031187533761983943197435002018998615624470689674190815796475671354593782984990079925169426685797533153466253431574956925383530120790697326894391207269068321769615377085726429158219481555983414246452759275301469991344701733879993006314429885191062056491850592013111521942667167093295536098613149898517699858011364502561427565630186404672682246375320776346104227789020092927421904130124393221681262003848587208432830599857153220982832223397510162300436752470728746709676843954808769677001012039829852491610683508254753190153682371259942800517744078447684840415138718249175093939624604633109099424157344850178339706830659527549867267024966925503296170252180371657610003915277083192968341072522511292273638511373223549432085197684900669012252261471173825889753510360804945079816068694870645820698603419642914850285861141264621402046445831324078162443812587033769219078245702958212571766196550217273020959424733173542218234550224837814517185208034491617339234002333886135090746234427199160709126716164718040204476611445846159212203921496622319898365794218587170807474364866167715963346245431210521816808302338183168524790121372949463473028443644366059137262293087645243997153489746172310607313177567646965892387890549529064725666759430489863615889908000659265912105808320645965812039391252220302996502272748672430845050544258205520819211646985370569189210381086211607650794717451950653342036079351902449620562335393130329956982657945866903703868299261279341401769393311934107551593408279538686200893520013921228818768088836808129316425594534862588261459268454475217064141902767324654949125816898330623821431364437455686305607393636604831433386203536891236025758385476006683999837771095666184880541150669484346916714709293469000718461543989125818109910562863974409471017362505148150142810375360479820252847064158315787709669739137825344701516877873824701733478855489840185624516050322415083338839960578782618410741885539019849465466714806699030982626510271391797950149160009525851673793487446071177827512843220981785517286414331165303427157067779746980353276156145346845060474246759845179131493833066142521774575404055375616847741492636138225124275674763050687133918797445000738986267536561886237467965736913085438075708201383189002258673562006125416685833802174285177729423777874879392874575958734131410579207500584526964220082686339500376400740383643931222997686979649974963307078889123150957357432314798582386342263400875318999072954679511679360338864328755750785737058468271745185294892287553168337271940523720759473608819607025205956576784576882690987925064929008308526240834269421186878209550340884375065107527398393498905583685364794217064331940317750349047254605909047412532039616484473914633607794235069443749301383988744672653592304263013994357720633111068334896660470350709156573422386982129521136991293387901221573073067150051459832678271458498373320762032079500588901477396185585652973549960877233599633477558961597365169899637482344529756863888328862751678194390597475969314725709477388936734889035497673239023588288930793746925325136416900832772775847287458795313007605763421542934266603434412894578226634222539020739018099366617801052779377265828642390334659406347026521659952405274463789206386707621075723824751667390709730162423793760341687495036324174673930257364538479945385902151860939062913680037135885436064889668037645472592371308553660766241642455691500209324172284631727838682103635752412854638414993626112148370343040985023958716834990669785983582620936710147304093984770882691291520064404358091184631040795782381861175544624197237738675366816533620308096457720615758474034695744470081836219220260750061954020586859605332459932313326129376237109111259003587849400870227992300379998523555205984108953076678415172036319232134458333058696575921973999814573106586273130414256860692429449425383340177587405088858234056713166520850155044804189948745429002611657211092223255558529534735695224909292848152260582822954525484008423321813009944885268446327497341827915607531209554539205953135868393759781199282303634949772946555733180111742258732311306533085294051054719227268632774684794284985316754809852921302622249213111569522366490066400677118095236468077793562242465279046802988840712438593185152892773358514766641776076283507853658453722428823573584987472391505521092369226221436981771063025793696807428338492507606915662346664584730772371720756265199170756583281873217146071005978329484981637413015133705383194774993554786889794446678610262064835769875283048388840659538535930880196616324312185786929717344444233360774935635003929465112526557738524484367744751558905390165886626608609299495257295783560237424806193694647834705008132041243986298360515659128821237773486452124369106277745353846274134834218699973180579663403642266393391450764330855778776206251085179728241969214114960203446818925348923088022935727924879278821236503855285868414706292095498010543537283533796390660599705688084981592648746522689079956103398094653899255429814018852859510531572030837179015542859301690002614378290816512220438709050971901981562896361002952128111825959188535034214247643087407567290245681970345100363686586016783273282919872698551224145623524936946702538223724671647735827494078200047922523032082184531093790572355260728614943777163628748356142301859726395815216339144720840134202645203506903717469385067195294817393671049733836170145755486231620847610949838439060230988719627807636048866819952635709296937410814140060832571211699033347412185379944775467138111761635951845192696697514213717463932013766847828091473683373926432851311493028417307490527708181714674866513687834651539474478435471351358318602546105258407793238836173594481283136326348220563799296474408992263137300268336826042385178065626935985641175890746798604635816145754673330123672257208991752862952853499451080461055777734995622285319252347609541766689948046069245400436334360379301077234308145042124310379732626027054862651115631341266106751850161434229519896579706282448862995645035696706886686631006336885811069873918286157372405217915691087264604640834922248597645106033951542563780141208236492058478093792933738647712387703064414038215393893769671186583265252497652864853854524866404753801867928876958608415399935964202068548579241955574176169041071375499112120723172080584643735162673627835409937839720383154619514441138243579354213832827385089941372224087040609197211091099955322655893499505403971444364697586500533193654177498094764839911307355651320959217144051292177800870188285924186702211036083791789395971951799827024014181058664938892536006138497044830092845278943711901234985433647014716248265435866162393325402659369086153189122617124526099875781450772651459664541877516141881333262476550476573544667593674242934401179374174951278899739659400686874807250872947381225102460777919631210592189576779325130247468890364103120980067756273248811948789194927213630860656446231525413574043295748459391075328332265550996740229236418034951131201322846819541371733178635027133643163603817184139743417405764990315216334976042602196792906656471830722435042999718484233106826399087626079667360667261781683777308260254428274667154388906828930195346113199232879762877567552816446464735732646671417721010200795518328047414749074144283491776997676167010369702421033346314562267163619486474285265235385779899652066350457760586902063117382602195862927881142829440246402184716094330093375189877974741352141178079820620507904568148261412193992527724334812624610359271954273451310744923027137954601057369128826423424287958251470165951059803977215061243014194042218543191817871037191831182082131544520275762740227100745418989204712381425975255903596339259088774324413526609701048227838856063284228754171924545685858585072348538355071251989862284766869980159814522947344785942935093888742321413472615749319082240697285756368114705595901248596096803332768611963939364313589994068868221580304204447944284715294658546637307674423971288487380517162643856888697381356222141512406924844046837610055501241653598692040581362071106749342475805074690713790677101019271805831875543412534821001780524799672461033104226604907802137367258910520017568869608444205214271456851395583159076731580701110952874578773935721051185088192881783353204568757061168044575254215284377318572931465139921352677446600592665640982560013875325195092577779088419619788742638783699851555923216422918863957884531022755746832736905262167710323347453254818234159825634044864535841960294313116894643716506114585715095773897512277344973503722977386285213576060767078057027578376728368019447247861380710523986183410387098780921074941502865126758258162014689075783030808429136535626514139512099986302984343484970499970761587596448711368803793097147672745305264005563626472454562116256396546429299119740278171461452067994747034295636197078320167594272868188725535573063955658183833365428794169125089653411009732364151443052437327748278886379721328296928166024084767991189902272221102700018409283047878851301410234758215311728379750969887565336035302849527023623272258544338640763545752060838787437317493623187466644553933968876427478653521235136687781004863679119686586650906936635004560281268993915659077136038446328915673962299972900924604199042645971873593985423122324767201608277358798142094440747052397890591594818718570889579119703916711893439108229738392965066701399687099054485029246601797565070779348503313893634919160347217945459610243207655647332513549961126192152232994811151873649374257654421328751690695016293886397472892214002429272200572737285113547313714671993917716079584086037305403464484423372105383199134221037897927915976969083493983613290006546528310472693212388146691064231732287536051808406191675903364001543632052635347642613145680466430068269339212510556119652985160363157893594087265473577495021765611137669829258044984288255731362767552995644383285938926472795195932315686363453879138109101651721753834758251076537214251064722574634081615885409443617621175555410175809963800534472238834754317159611277376268072173371591090530950054918309999683256000209436894723640940807654664416576714098984669757888272837611648679957190135107833770968317787326568949398479478382007770609678780668973253853059545886800489203481209434800425314691958901310842459665370863855782893111309032068202094588422166639085686546935970229843486195467775607733215107997754471695050770731163696874851090163272562063606933176032074660789154765911412605426103354713244583816055436403080052122849730546218586099701546572689770910242517325199872237135920412782395182045764865761381320411675030596369610709899419927734086223302489756607069884749102593858265602974665435608099222911211964575149698170068031195323812763099286019998404219643959145489993275738747511144060098238152531252298126793162223448535860718356191856903080882047847122278624881635091880936288378155398967346564397213190470933385120493317601328439968899512935013679688749094270173598197389119443794845889305084872154905086123258298076959649892275419423014475129971912066249881335888146414324016028488551702641414474307473860104212125983437298143092655030399537133125869529127936827240446290469225145413911570825427559598472349433921497507683962484952610580659772310371664143120406045385679947261231043931110740268789294841823137933596348069094912431969347884056752488369341124053819339788050387892688297182441310285672306379036209801233767510338298255478152614128281879159727193404920550127305501646250215156728651540024710487106365627927038000329610670560023733785759245496094316787520704686993673429937410043174130450496472350325144805333828764617918006429872716819440828340861798129651217429641226072310845710233761860740358473144729851329786845210642265907309603478366145088408899538968587429184852824292748303984969123708035722321770036436290434128081962274780817738346434379195106402667026581177475683240939382896930635336664955730676626641081929820006401450027321760173258484383621569418338251568888425673702183377426678881544096735879488285725224909249993084859159941600546849781590720913031825306395881784587047025743571209441221387707908743098277827302178072476750826306321971992977153884046055031880260274473210579440279208716232612186488577128133432170772655124378120162929677746358939340689030205223501800896380437666759330959311139279606976007293091060808572286591669356905518827709973994485319518659330171413536041568700216925415322372958626249482189050394941121640121924246375359148119531326105290997499290557577695701219659876996925983741525784120580800761486171711917237068275794318058450614777108339212407599152396317167472953156593249882091515344285240884147321627067131117198475062866880432986658858621285848871865857225131359595024747740506784780771508857774683391819103704820526237761602953062832233515018688580233018340589714039108847704734191037018250243247627454605355429785260077752921212382778579688580697262219966897887447882459222214255474190439190434897251914463888963249135582056473583188031636294020363405626672554950428085058982454870939838021242192312077410179774709771789643798231655087488838221134985284979203384147275658799301849664917034835327003169897046669449691050438917553469227218817300403530859877146947012326377738008298045577793606307865284593745575789025120549773347903805869223824408555658786676274652715273726764359148856463855185271705164826403407380235234196045812158818538844343363381304626973881033198639058375020544864647082352869078357942521586141217187091449644817129287353740668234580384354916237321450768254564082483593309886458381969608738866176678104270691947474597898238823116253429350117135479973280341505188380227540016093763394429841051525225592685137308909969817038606269961578486009207650975836789915289549384137654149594738061314132984859135697321159574542885295665368636657866703592008249514976287755147319604981181143097851942948092758621127431248468679658153161915964779515556841434224747611585664570708605265505968621179291318999643810562920973441475807160947950163528256829173316988475669508484527729192092297171938836791962517531141987173625795772780093931011441087510008626549122530951730254293223015686664995808319847191261593717481386292732053657586702173359377182400889873815756355779799706242712399113355293990687981592740466866890633417108368347655369459911287958195109578499022940404716487905554206761569893350345410018904667092432316868615173864759511258152994682592149594096025274161061666544619374034791667849419681389852295773214988032713703335020754040036168367670782657179942793266843082173026695339526306838079418149196030199609087958412480043042356445576681698714761979754953053098938242418058104019793758233867961015489201746903810030967550430407262769063005486834022108133865099805646709359393798929147306772495386636898368102061203469196927041733489004315366594482865378269476556412688603587728226195218296675148569919369321846782596140405276787546793671270906804754248501598410394863812062705198600139182473307025853579957260561851212343518137493809781552024162455201125431861163422837029716236063746140916081683324602477286508817323652788306201818087767803992073197684044571803864534125898524714739437832805825617874174213565818030609787871221725984885390383107346926519065645296079680614903597404976905454025953104025976676460903093264237777225002945051740837209146821495796308678219100277332456083715916922153137284402279277637730341126687765638617565736490603579447609271131680738519465877983240255377497523056845167068969269865860882699563856933665781600779974698260430004011611885748233143458771837881637841191085452193361125908551627697853593329529457470134980864782048879555652327172344451169001247327119800587545015760235352603932269941874025854272945392262888551838419577676444165226507042825189874576006292863130523092670442685165106494008101042964340072543532077507927816030072456496177909735034890130919732398259972178563055935999368560424857018665202026892891942048500139999861190875887963364211955377127880877854499609696367354822393943327992424798746157798177865972523342243805477636897283225888992999558875146725196095271207705531163889653487143091703769435032062515718870834588762549394074455716567232674902026991149497507719112801318661873700667091704865792274333741496835042825304481429165474850815252086186477769168390815870907575137927653902102942754711713501356644908855367491768223419406031138616864406894600945991517718549211999852324832344250630760965568767763026205871886261687113162093203926380473361107865495417042585276049054304494588186125564842996611660217579522637853460443694098456717838427570640877967032197406955187041780954812806668509295942128405566045665582669787226800436228867347533297417922371953486749049094022123678312916115507247883631590618394691568813466458553315620463271093529943088254195208936881611723573991874157620569878803675496164512508252030350960588123637201178842411363361152295196320483927487177052733501625201426731914693592327235942340167048761603602892667200794200394635190103085085724175996172202511377257687079457839702729847936604772607212376806957096776716480917715805385807244052917744921766757509045847228057150369249341527016521198432623928674526883591022376040441350396334545557384447202185995803393190893362275227937539622162479871214364347243192102794912956225792987290881805564560909209164534441016717027061392016330375118422752448767067358659585114374065866957340446943277921101412579099284819903307237553430112354602322336230622932257177749702862237579478932600811144627055090340023242217645094710030914649194102090015690511530114790214372157630847009629236981466747842994206534678188122676426611676341020820134251885432213947942305104970847652371057162002650000642701964169234809109255513165703618047983269904600536782847458992080611303906078355317234242082309147370574062496116281424368267088650982844246649140194006916328156236391124462025366660326348085296289059838850944582819809500262621679576715032194381941451162294656165673303243848243751782802673697151286394286333569335813401145845269026075304543257750526813968616801102608540086597004405452356029870401616786479972802007885141627491761822054405824952805137727249875705760417392118551516611378508650103625311537589963292700546014963761424987795693272705470297959686194221072483136809421272661850171907297710629160557511381445874468076530342605494127943355408443921822857567030099552332867565299751894389965069992780641368300810822022823142489478601022506672570065462090877246605765292431751209353139917411715608086937213168639710062609054129321953858386535961861089914901845735007167150938762043658715990250517800276956244158888165660537360963149337950021442549773760249815073312376589005696454606223334583706610747703437633763551712521855545146139408435163681922621911566704855956618346599320450927211016709754469145624207166403808109660068365094207498423553850806557025745963157174480256069437924774570939713325419232470107257379658111402346888136222018858709849506546985289096768575020802900843200927605149165548820664608864334288741472703514895081899300983993576716425543585990117071414793243240338253238802305054777899383899488094597845782473130605994648635771888474501613041415629213311834906483086807978357405324769042184803784541636506971918674359684720034397378996640464043866184540103214593197699381185464567221761174256365287836318102426392913827626569501437129127839091001946178194811702762935031629607729860903368966909951470788797194301406398083366744826087086779015637910604483485289180623042646762745455695018556034268832118043974543111755429463286956885832029122679265487301426390928297158931834942629109013769885704394644697482615733967306253099351879085221476744930283765292294575578008243072539951545567791335600885399954005020779514815031033390200093133722241192540086870512472905276142798861981412028978782838122531697244159573722489247772824387495105568086570773242290350250321563336454880518223069393627666803751090762838516701206364061198863492416798540096996967244213133359197360825010046471457636393866512878719399236759631808520700305581766760447741274918720863975875330053474504563427838314187783734526734245975213610607377091550225689600927869070960711227861222896618684539432393905863954016731022111293620283711224679435843141730057219189689197846165597529368512805749146992127652802144172305811382930199565575200348519457647507179395943436140043873035055161899059896063226843570914657281859483924771115174605166577656110922169131652665123199017815485985286124410884987509561658632523933541001457123575408761782326740348810389675140981393262875207934159908898963433467621942973947869208857411771400100979878640746028390869860917836473795127738527643329361818825407904746876327685437685115675687223668569591064266130516054316544078816279497339838913313855331041599676529786159807159828804218517460502456158977476232565945762706070230343689636095440834547403313003249179635551811068067264752048557987367693305711132888918143539159258460477733573577317353052321802554111721807216140575394911781042489101557916389108780511772480536137797477212887163837783673777415089895817832286238430373339939053038375651151609277605476376052596241880433404862447712111651356705632804631853113326744571095327990414674818995777877664920310587041689068553920094669029958681869326023231796187555084847215755812208402198975229353421558264465143354078485294814535504613774317381334743985340426246319826750595040239217579586146984541358286384984044136597520073471088190729558455359188044827671640977154615996145719779145813065607143010205340362681351086297722819784134065588640794888135377426865436804847728006304144897149753191054599485639765446742898058434928579933426236147330969607383809160251350549479572759942899551373144644229249823624947711809130364719075881667183936600429277471217320834574186878165420940816626646943400545201947364509165431284697587437726332063257399927182248079782707831324600741426477886150293283201191353454937989047448050211039286860160206179325972696950342957968318516288538178549624846077753386815090686342463005713668441253318973113027046138659308154253992159031923736673178873099699456568956975250084353945564951672358895582951057277268295498764346699403060063441023430811388261730458634022971165618930145934042082402085145464510409620116916784807335656825250819874197135720453830397630224020973549346817528423667560186472341612198860878637412475201332686369511001200312675626859955950696114899589136866919055262710342280310644137606328035323667210339619360389454226943342617051363841401355113998725622969886348689459212817804487121102016486397298137367548305258893242410912287212044506409733668556153168140823177167340237769924400998984524238490964620926523910487068498420459508605289130900966870543367240510044278135099251738312326039184852916105826506630518208172971219946996801343330336054285711747860670461147190271363819984505762354841896736591350666828074600864742353568954744690295748475409569119263268571088872292378928361685801661219118233700489999896531934114992419668063266424302533977925372761207232103454965849570500442184344378356210440998565277391596695446953788009233624875619799300530773136070907197406469449492461536226794805345684599955084222203110750008757745567801330949451163567920194014825047073411103520086236388172388121475824206509858306722933023794743234568425111470038225483154124751257825192940258311551254919655603708901030440023204649233560811925599157108074924524133272453598329846617057244578913291824711916516715054003385406953253736649192847469941874399064284156969671473030241188467056379099164163665398409856221791611921694341137789620747281893653101631803222768901468293001613316844602877696336414913854949625458158072551012288885849769792883015664951180784718693187704900507878841750362416401400662919732500334671264965125771073128348632307539306631582176107817535056754137098318962969083475852635413413241041106993995289906702850608383782157473423278411037676408953415113905965954581152609202922637949034099484126701492389085445637831828516032966785285754933519667275520818287374070583971160002915889577197801988320374412893416291412362880642100441049256401338180962003254782915628296648437517259156015867185919414305394154162812613578468904878058755819268165126143777631631979718713349736497328444436909774604140183592312769721942595780114907182572949984244819649953019090920864413794443035484678762354567693717022520661143650233071424539978257449780710870551527681502107690832604248383325496622716415724115615419595962991034536136161691347517077200357187544257626588715502959489550230294762188795892902404631717579088673062104806161989164432672984903972100244756085178472402695255567123224956929761730371470279454904651186816229223038053177025544904728525706502296111191239299658092078313572054460198119856392080841162739071189499079110232368198219411933518618267830155136109229412646419922373153017859606660139076389800106434959011283439683549210406572963844840192430137340064150432880248666120875512418518118403037266857440471396342463758417228332579521334200198090717051261515527726366299865737840063966446797435528382845182793404860934810276915997910664859562568566369558792409551413710107889231549618522837457961995549223849051180255484127913079761546172917156768027295414777631135691078457119419939020140405399900782308755840196097944680523189739270404202211356941444157399819031751831300386277099335175234207676560531451549965273215444075296918248913762738084835000189901128048832275013952976649436321233525435902883714126837370647938051910813033884203553538681966042417332094831051444181746325475650442969353651470519464958850719159176671605550378127023110711823662724784550163915019058659237305811365593474029921095015903816241724641924589049482263593639052540921938787512505418487989374595288108479347854330165234797224246461192299818772064444638731407999430595154173902882273889561425565286613650324282467765220258875388234004717673439922518344476850300274690281755429161834441678077288531561832494589057363484213052688771985060358966063284061399544130340586605693183541853175419341025263083188011078467570375022349623804592675482224027646306239244198478983559359439891525274065681300021240567862703738352158910434938344012447787043610952882907940031507584234670239071070798532634479889751970640772912056116191893801070748166540185297518734017361121934952615923163405134493577237414288673001368456461571131073053324552485020112212665947600533677699748620398735580138433291891053107139475047577439388240710558901976026953731373965235189064380099868265649478683389388844979939258615969634557634343095369680940054526698884580395598971806395924985808023847232045940276373113309076243641080767007773980748400050511808762379142653596931880295877110485819045259439490899489969557452807733448619134975749565578682771219382875206244370832222414892986060870073955230332471013890071772101239147519333517347781009402920696363478027934531160677207087686977870632336306800637892687173442424971333701742603035892740775967742995709747034271543583237507048205464768378633880098211410995587562873963767200732587078254864612536009827461670895754686755538664153407386566166243836828694110154547879290747106840496608965820364827017725291149624161319456233437445456376763426097356012382986937536789396137265582527940629780805290519751944201504427423780718373473390397943742352003963636784993176695652463398307652826802953617328129657926026071795324480823446854555301183217343359966267126648653611933284595637397077299208482176174263192493070880854307325956845726797590158141415845206001413627333382201639451546502307131384797504195317488167463591139823938287889812455379110067753987347264992550507513995323831733222827739933112823952121470053016936852165904178250173908895893583038386490931656577305691629539293463115567764884128895711910690199966827674221940192294966211809285404563740313854608459287711915109532496975377798577428673558764738984715850355017149987270584126906171308364500047125430915551088163999320086041858738364759304704326228666376809024106396827641943833795966690509383834092265646698308449350051226461001394295282255827540898844404810041482513063890982911257783708857057484374563517291786473949861549849448859766917406812617269205422099598023090538341982974371458720093320916154075376512016641554593733210705011093092010093507039378751241228124397644026286109351418670805924931219054590662292862250098837132830434632862453980786635079265515760373752245088813412424043873952939048853880576756053901664305164120457103669238088776957182855375897619778214002639638078634704323264862654130849773654087817989679541443434487984807373638587993779458343278483949383647459276670062205620061040604771954832449980785538384763729130341178721101591592012226123231760903398404268281585092537928230232886301217655153347748058186594882285410987878612692347477934376759059800977344930230513814880963999862797712458715957009567379420305875690019952909994885659129493237948096442704535826092022945264572412803729628557083818668036725420064910271238198501280536028745839954085424776917185887425676625590055651790298424131656666463457706394569478589960318478014583530451238221304928675763448048814370052538133100838105469819453030770486995125264220082547468741254304351547681458778062799979859660755553284076179170695359924880222381918806688451388411308243426827770901959397452352917421189346116772313374428158253766918793927873227331243097974637958879539280269085296415995903567730641787363697809045039170470671083563431869432082392485327732573824897953090146133395926773249987696442209759448653409160077600094863232662969300451239248263536136941413584452183170357395695807703551628161588023091960613317507531389048082146169092195800947397076281689143183574789545297763203076953925514395315667642738390630172196953788593515780768143198225246832132176397079586823015153631738254764876247307882775224037524308077369361958764085463617315308131960834750430329396514897539714597272927179132538131369674682476698457319064211138527439411310326420215656270436177996073139429076152227729442555170581647942995464464655571042732031100509813150336794379222901056389146601870834192878659070036598245438380838748159317362610582640251561316409769427083213658988511659581671009560392390958078499287654924805669806994735817499921101554553274880966956097307079077693640404780589112093577773434770498248263878806121081445209006902863135602444320481653173961443533222638061306625282768315540446262489739955200751213448537300254695910436016595190461187653866208459711331856961822992304661830537130272525172511696172139864539963905262841953816937242556801806003779709170556904218055521451219709429649365443746852148841339451840770803649284531283623401267183061485639174238724944583428931434781568902435427363447337014862171238048140425249750961425443865929029753102609375016548702627566285011666573366307647647231299094277087309456546171573095874041211607291021168675354837278686408247737643967907273914542528798879535663139369361309694124081659018198586753827350554566622283029260220848313533818952511913845794241175253178296958708528080412628116678585888571575937405285338636446979236464985617858795249115939945452600979909284107245838955121228559081494236580119497320886371937960253795682650527450804397922876827782751163993156651696027455454895578217723377176257033673064006077723803557594204693660104224946273308388865948776719455608581847114205321038554978045067043910313306849323691816196651005479373172970995764551829910995331714503484638992086651258872781474404652947013051684988160092186648900927616636907052706882313334754184174095674118109305674088272261909330397207780923713794864813737080674776028750573790848543197747270265712925708542975812461584907271999519033382541101079278881534401073443198270258652388053871717255643736881000056079753993754691409020689661045845769805112126335607360250191849225270311336568588344130873229055687358883925492688369080705115490845506845549293190871553139187368538995784405829314391351536484484624841039324834802513673565294989864422023404483700110740114552647484914588046162498121956064020689111112187938410987960172833821478677634924646535169976375375640278920059111067396728091746142895401444400249835812222367634086261055690742337615286127105995812674415390268834860322975500043044414437343718590252622668566626088068337259599135607098703266503224061601796246256769172618644975854376514449931146154133525700086957751166814848296358289349080399547741955250176803888223311955032810433497163753797492997041098945301954780958660940986888853665574774745694314954622047049583766257513168823453933145143829685549976835186171473846697401111481660421213432832109528519465177660402179201628891813855975637497868992604728433530441458905156974889009049867303262033580238297265142004252902761209302422698685170327560619910172972385424329965608113051900311435137908492539860381734292521088506863008587283661422850753392286942865403445558524172401457482542778742947757323639159783184251528602114477762266266870409555570075416154551994803610061676359969337971170083302034890459978489657288693826528332426042914420407140681465395946783871290753069229075739733213782280310643320887508742104952944387881147117604299869302585836307116383132697723226344576904194913742450732234148975581810504496169763012533229207860648366585567603977788324063996086093314169271287624403276421507114542002468633348852391554808273717490466315705957823193551760619293938412546363553559424281739231583933646506916540774824979850981947919276548656335462867696052451268164154624631153961280432819750922291570554568011962906248420842690641994533217820024844849383030975429885895627798768364995478807636543104797154498945478556738132340540891226291944263004538022912656471229891485576442863588361909024522182346665117445605047395974528157951608684157201191722145883460401623094037660542853530002036148611874958664001794805238106445409656290519903178509626415955923399129380083494657597204484626960233943060246250212010454280312788316321047574866006163097957853212072121788037696629019203087490464539660850298233575952183391996989500031753068487118237815046743584615705183254105430319418549856163417194461890140147277827306411059921722724068739271879901256996646564266222848205881629276096081490819458487788809079773648663418259143584132942559188836024646017927794543891237730224825219345107090105701012633861754042205882248920896499149127330617249434627007735062465160714999759296687723385083099293970964101847883885120341499575869601973271677439579965937052315783285861684564192175105817115546746784804816272192798618902540215147263430294009375841805484073458150134403813914612575952641122386276016981373656994895772912374145865478491155070485452399611147272690760383512886930443371866416044868547636160986368753054557710885372677987876325320426800861309051385531443816268964279579935716647641404057357708452218441315134687897985686317324729237462393592707801128439578405319068815589177662767332842897718658787458406090960486576231636160313223387881205581319869788046817972872767342082218803061507771391371715154965415540598903949436692061560822519788843979162047773676174992330990412934829715232780579239070120424012353965020343355671090724115953027738104997797748405110526812394379358151313513712598986583190114709377170216436985141395601353436606256978911734260235354559863080713872584844032117828367173959409929796667744508405281827682066974896550888907172983703513111433466702052820139546625651416192021530003643696293533948789403176532211328528710453042108015851793025103704367665544439390977055409351531679100327491152281092367854961976013741835574683563576741113230667276194222537251547643339435346121269049283385457496144415886125247131055580289961972688717462955554382729380438094522753397598749084199765974550236474209658856512766479855411903779325770302203149317873341302718624942639360923271082228202047732672387884441644933493487486576003269155303266362041141207459056327289940444665565786567146860505776733638056311961617143056936781833571276059888587258008435601652708377688793873195854319169846038455178279816885770040125645465384200595088269470172327053097189467465801427410051250510757419094381608820727760992827283175919297995321864155310979391074673131054998471711142548799371464144371996184592540231372580966343057773505817166491997139912975491391771456709622613421020026272602760075360323994068984805188984025940482072523957608323512602059957311038317752656130027149525610014471561378017567870511460380614516072992344678704910221455240069397815032281688617586885285401934675393078165460674644883636378694447648105696499405501234505141025497770568994639766435379525867499101143106567047293424433173172739868531499777727756869945782739094549364415680159936621306483428762911414578409117618785715185313023996741574363907093715998913852085279704132263274539211771315538323844442115481754340505772168295272382244943414807542272879113639360470341905787057858516310056081779228861082800509569945311077752720542411593267705081412623707465279406566708593972914477225459713971039858863402557603746576006796688435627345518567193850438906829645911080145991830063997532101745915468706390497132878735070417538311582937027774503436747730733191349305206766415038314980554951546821559915883500890669532483894264685754210297673766563783999541281233694658032702541868516375814906796057780762588637148603885396103175287959970761986741358753099036613961560763145923493033226100836247601921045110439989169579701484117335843192638945116881348824293220571897346901269318702432410866736301865154651980253683455465065954669996684633580270452513176231276679720598065147797884259730306896785569180806376355218117507503971740596608943751619671601872154471698064540194193411621819400259535827106680602035298522224868992310422306852189336807537093518752586529224540606388177063946653681269517692563051055940552611875894034031592301727484461006086409063509370089711197224775033695141183222260269894834972368053265446991315458392568804271722878978850562466029555053074722635547526391154217840514084551000512104668523330899273399040434759762205025174590665401679092519237889583793854274565259249338591126940266044546928490176431007549148269409982877149948954523506459813755704892116587436049861897128365864297816192073617681904673046118378036565603021080492255673990833514518341439987507120356113973979611123522715754514179385474803682626469868890203856297092281045917155444503603097423056192912007575995060865658896184622174271210518118110777520230738242822549309747391739705950249130333653601047469880999242337228068839233795428342901634264270462699112525328283285531658470668718184790749223849370394329270117589233170270265690676761439610603799547922633902534182748601128185071696700340298881285149280826989861852784794742934669564068543511903721647213567730668592406070576453434376571858920116424986239660735855913290477491283080468821220075167714144136473032296340748640429375627655805568434457281406003734074501253845641638078449675467988395755399174575106378165384988222829966246986190526566898925926065521008844364281649540908611528672740476884338820351781437827944836000943275939444608976251248109199904721876125527069008321783417811342246790835257287435867794915939195387971160567008691685585743448115437878585700295609034320803260995013767685869250775489978556030650737335327409335511811519846845640902354298225674073121595402253453535567535158060248722190308747499481274087489249663919438814574584433255398362002648517471269455244329662572476114947712847920927658124187688814847836824882314039857894845016303926638692495700187483749632366954592966403933480034349443744843532115259061033546464456589166404950216001910198518196427187957168305347346934232973080199588162315555580880822878710533424610592777736594203939892665619212145942712287289363239315066000153736392120188789204752504933514305681455424525800495250200921877815599486433974143659290030990259762976117604754929536780480235603309150077388360994343235420310240674923273098551955571041314505431761721794860082270273297261150540948294451331679179208128713533292151685224519852427771495480177968786539671923182545823343924463392502709251463422676580624692338955673101543198954570562743706366193416942451577046053103079659848513075732411014892884491817882266390372400821908264450683764342351012726152240173048101339219643630549324711994128109315423009283045050374392473370426110633530966270059624881341790194002335265425884132775513252981519659423345985706145467827853823503052881262604792759429037696271835557138600671807707913921998503582783316005161184960434971606470288978387044399143264352266836724927704636249113777914003133892259247309506121862678005565229343239347772905932645253449117093092342062640437436727105139693921383241610573617065202806693941553772471552546093391479606715059939289340729407640986171711808651578466407245472461086375163870023089194240275344794933669706812616362925752497919742264785556804870860895337560974154734304113389985195847159044612947336164829747652230982924169322757275258088832441889367336161469747185835131620108343498475129853482004809821025506456113221544919576312917051209803604651837373059745286495558695416965142091910494865667793318281217916334332514463735362304392305055634150114963557543992374924907364402511884751221243773402511839023172047514913105932420525923305842343736489107893570321800671074282916670464954687547793506669512486630792911054933577378283475789825811565684148739495310306490008440949815192889055467806187028855881759979952058269035441528572797098188115568416328057061753740491629040745822146700262747685784704917411902282829280834502438447679591988038614916499325303688694591541438497937069613625340156270244049779880855471984503937261109313738478976225908773271693881695906465551299760453607997847890669467829266159098247292899359487223229411058424445192074857349814641356823891961317710120108194392403582609961303600226593293262070033144586632232670613456215874202378081516356865580725917085873037952721955451809998257937935402303279108901302874647908912604408781973537747202181357330050599726440668900254091194835984442197763704772036283468521749218232200946400914054890748227716317429522102474366973178869687315393537416951618353594062232088666133131706673450820921522025926808036052389613319457143684291484014900830269017367902535007084393174601763683578698468870617881338939013739678455599278007611690159002780906849758509317315824328805739819375606641135985356720732137252021653326600597430162291652287657251696204257005579760421059268069901970811168956675435248341950899636228674174631821086788565903112815216615161995339715651390768810733994591676450565908675384040609990884480219855338869239680367149277387514182242974768868107530496369858377355493738030775378841502314072760060242379289158155662191871288680102520077991556948520233447666952885639516148019161338572065481384344411927874628430953197082202258777228757371170062490872416628108168254588473417999052303340863097702406044330189694156003162883546830195044078007491789319455609439178399141643933297330908222697132968871117170577460080125897275809134496648028319006907670553120252846978792017775448179925639231966684229212748888024659538708069612346124598301896802419400390555994583848188708824038108516572403919786168245120274259295027740462742328844175081451614275033375083193798979978952908995086306305217212637917914201564265471654836155668637081780307075935598444649214401823842450783637662390366066776633842096779358889972182864375693974859509094986702067372170197336045270587489987543139374389832133166733241717739663136541141610684012569652403592874735079014344621092023536322696084490998556447647351449457619087020049594542166101449745934655217919250992357305198474014560299413334108784028299273628947904650062548501029074816151882577850793108237262929961494196598037722962349479937413848902713392892567986730959845782317418677186129722424014835794693781089030818584846642945269586162321548937816171703106696416607572507616283822639350166460100652307051430914672292344992637093174036533642682390284899131623918264338215439892798764318460450521735198568940737842311444215112064283695349994348889390214192034509942083669518693647495123719089153227786985025931102219502017541746126084915655755696779897657285573202955945199909793176659592427860695400581347425099857599770633591748479684077223199971248459778579017341509978680379266749399670885544004780815563276252852701755377819079837077307319792967630467497340946331380595868635285992404825858405583637391116016415318983572156019662471310005550198503566271631349680182192303626260043457817137339531741473902288724381637397728552936315154726724232272708708223673389992023057341296892375507109104343760998367381746510243983065614097432886964630505802958317904478955348070253726049006704369725280748384268618814916094769817019648977464979135928054151698599375040617336477764671464114837798783616747160884689145229745335736994358682190560662896287485871796817763086993392772435718736781762509359188214027343236233447011972740740017118017501023709782163232003083013027130780310006408325102461956805766892055440918287923338039968491430169033588115437410036472906424597175908648561121045637285433660886361663880330159975993999513647239613745153843869316654446046414125879855804607239045802720193893442110552273560823107505644682095443571154519055181041069935653307051611223455251073697548906253430992409297137605550121030106527787621138810886042240312526567112921731835403454806254594968173871722279103077434916325122328612871503244476838701447193207013479698951938686701784974499012560429901603061480170831868705495177711547094211632838483023650230250875311881489830522129900875797805105351048140743067131067085359883951312307511425925858753671698977373177415700023165207301732006921838295198872622930927800825557807018834209768262221162404105585687829899447973948301182312433691081227282015901209414461749791334051346621526590283417893149270063379869991080730606103976646380029855852437246143916274892429503486325180694894658616818822190809481223250836547982715686802460127571818745384503641995489596814234747943106571897516036913824466662510932768795139332265039316458983506400028492215671123227409141377003455994628282976461003835999801400594426929268132750868153112152273847909745164076804352173736130550910633618295026762574106189158838108440220483560935983990236543892843175188753076232432226607079323107163185776283060234857458381939621354335301937702091368934565398838303869265484860660184342876611392198697704784705067791819658501119486037192360858029385788173062665581917108776269430930060141890196373805090483950112299870125927301336219862026518295476724671495042625228394664703461026551508026592981073932614138464656985180208844188387980078320796064220950633659853118887580906449554275199426704897623056132392520815419161950009781441071837479432027390910749569384217683440630461552428146236504438017075718207522531101785129552345891135462873588616770399281712083638788381512441462241214374195634822929472653012747373439561411209066635334537917769999557592055013148986876189406737433273864855400990693290171558782788621041603871991737903004616719874275621869325428154323506352420938257855354534214988986454822490482253788691215416154358302552448983717182208248372347986647233778391460967684722427235149036099689141474266615279138760638977481989237951941995652329632418574080902242856556692807867502849055519531253788878185958120740747024597259172777926878230866585472139351388343672278172466037201102513116231000335981036602140353569634921817377803374564743573175999208667250571999624377216164341204703805505368503101310575132628970922417580188750368742335370245655910142229943177729794978063326435894475893892191517616134139738899394076925229616528600339654553336168993489889489515077590287115878968160932463538358584602758498742092883939821467074102500567519650323071499791837849177938453049459588366970000446194085964142625799131549636399754628543325844945822521193156293219469037850078634379389404067363491535776025259814571283017259492298838434184660206565749856695872681968606091023174039822277432069484719978836061663730341319473468510170353711875387771904766416016879957425166225258151201894854650663355889622584666404532818259067438646217509614810831918456371739358316924883279760051399899974099521175700174737075778106924311128919422084704192866099393655426309583138202070522738781611905156032557559863648390688928796913953333167120780993844108096460263119450154468684267391056323194371090214127038926797168783189972837162436203744259134561782190785733080524252513023714061994607117711096085908019947216423610166761750872395483512332910880561749517088380905767607163092777166522193169797991801022904620590879530264260538029155354236288771842160902112080851287440219958295318020438234163174062823475372984003040584579911644422141790481813276002794899372015044775030215312209557645179888239859157914650325994792812899951852939429227431550741260536974519140569451395751200807260230868619361112874246087868619056756218889959139407727626182740080463481883064036137457976887570849671109164612868289506304219491096542874258131094944641235143860858174392620001338188151960234952281417509434398364862794205472698263445538127798103790712931369790115360190028824882481835694935106516016785633125667501740098555902079027985554029600123743705435196258331545989993813990403883090356605708562645204268700702152367208662602506311344470971951049156234879788131517588518670320329464888331928264308691041699305502400371606651117938016379618412993793228312576109043416792918701672213908347170015389701357261819379458510784674046226411635737405292202338960211034797988951307108119607696813959085168336402480858116126492133599428142722881300866629850318435495163509577012733030367746563773662835001211768071673716563936704893577199141996951960194403753232753095452676524264638783610965785661067505106325435276995191150691359312050536317839876432993421704265656103246589797388199058510430402200665668318578762603303435317886167885342153146979543467091161313869539084871970661101819987981977245305656616117751254349769045710593231779708088388948656173593016032941826697883015691537516143565027206413255363169047769589690820532963658384159792289157832763194351012551581706877737613384020834184843503275086388472499240334451308859443984718973296745260195246425844746405139633216175717996935894280444765899712536283740112016051101188708847150762065997417537905020823908230105822292147100771946902276506014548734099445334083950318375040124066082050823847142392686213455100917932985652443200608983030769944136971730897361769912242489643813017022095779517227858802013435476698545595151158431868091093011243518596710967481366587060212413410130200845448019568990397739361754557198681436431860572802397828493518193627843999640500765560288712815577183489502689219587464802130536483776006682764723775409504839106816862068569182700482507619492418280150170879128022181182454674821233224952790756336920002496529890014075718334921608222464464874805841853507696864636313833039112107458596801477209750985286959974781484934125073308832880551137937910197771688784308622484027816811919282666000888293528141896385717517715884775811301838180049691625868537993871681411646148889372485607328907984607815975891492573463216645560122662894050106746703533954144820695950549273653412742891564035423478485460719192438733062900025685197008175748084271361467639426019963236248562547573487312103580639522746886405034652005553083690276064210765367959253245859460170081364988897143626462765491096056711651028668526883451776352513134993052678391282398867584724502493356549167774334534960419768990929221750055874925261851342749997078823373460865416530108426398697515085034139661877174111745411969140351215053804603047063649802339381155420962180436366950539342418608017687254887188641841400299552385323016572703354795436216469807742298907539648486019139909784375741485000698085925704439848611687959634358767490211820567981713802082614062075034002941702387951947817400222498122000729929460704378921852155408218905929952286407434221894634108124079867714012191649648210616842040370860701984712427468024617902275664998094546805608676691803009184627247980501777788296034148528034438965105029633903286409266942192748085822463679870252410358326134992764266920641425021324839293327428066528738739401238006231811503840175306523554678601347185528823894429585304825458702108803672508936372791714327526809925051902874899691502615034147613023774310709290466670475654383203957649876829728118822351737556673741577540648135660073085703930474834306151126318697907497033742808011054882737457693597149334509311594679632006090545794756622321820203209849674755599393637053703612985057509782898932329769624443949224198949256477864660159992018805905959455501293036976966308014745729605793774186554173764950054589319263480851873928473578968515249434010314489242855530013866991998691827665560170881549265337531828429609772233517753315962555724700937605796382008361806941030781982872197732535814632363490406114103346678411383846727677250158134106930428324061263523705115405693726328518509367377142166274306958526885252246720509934530386263470170693474401612223204551095083035287363065649491341728129274041841701925913642611194826520540953473311714056659067130502154713526882603107829944036352576297858903021741093963895906593542165384880911533182712287121339301532386395584902228895927087028491948103332365054748199801885968178295893954079428052276701744378130692470177641440175948950854379329147861365260903909060092416755664337804460950486734483818980938802841896680063683120878365407608555681802179727254270613266207426489145690165385446750196583683977020691766010620081247803021004655334900858202021999839997005815914080693064694330375092675097081543922108843234371898076231790515526865089800302336236724281026887108726312832339403904823779363328769015916304926410723688884518563089584222179604702617524097115795128798076820735355197364804842632516586237164943485371159539007355667584689142407496111409344141209338269337789957874659978681711263326570005459960788210386314715151104940667630667264213944815582278560174954729632957521526878398007165034026630648373091141337976713516891454488941865131944259223010543957458689503463718250655660431665284256294786986499565311922673707048617357987651063014722536269143749659517013279141119563509553962971898176455025699194646338737892359201272213113987235456388994824156463639874499923486148536656338609470248850645904438185736256881208264099272263120834756084536887192002964805729214286183919549139795528237325984412541655375813726234144417735607374441710707413292160140444017990727674559725866918112834087113051254917051544253757680307214329708070582098022157139653566869148788270490003720056315668419787078985310645891659946290178234277441998259853558560478995981436717920500884603669340526832716244281133211366797950737345515668300410351651663296842716776244162592862954927659623606275638468581411537690850160570986899055360298144181864590550637500196182031127231897063343902064452552299159151067396510248779384790038469516877323074152618781867084038688045275036493080142621206898908047764289222969186710833392589967409104523225313285829776785986624429526135036661036662489614600311683395243005901951521908618215862072971019133830158302598267045511025500644292285472081564400942859245231389550321601927069623664845591769269034754475937525846664531202176949498566077633428731728429529540179354189358726851157569488020642193011185207041587374050221842849397587976230462069991401504254430653884067960368442053895068068088703260039876430316608032211953693779384378836895318686353406278249417920296137019493771900071533024984689592949404147685454512665292400446101463370135933256171819243976506490670182425493709321416071967137030641601518922099259701156668664338872753382001967598708735433869808398354857358754897149649931986272661661747949107955787969278658647884551791324647083290641859570230425774335446649037043809861148045980195636914517993987436479155142820947314934275392594366861278366595295133532139866921307959277124111529817238026749213231585920962777091136481768144883396176943270003614910722203715524889285824772726236943770151744968939129033300520505639856923159858914400072596283969032614980842550254717637865694401318073030147204296348213669605082467617142601244732241103729622635448063187123764026794558439700855785988067735127155299749530861774795919099854798070264978290056538450231732340053215118090269915422303207634047746932722416330054302170344419550604901237541405969241432116893391650421658373455059393506608787680990520193690486716460633783816775925766657058737252983126062486986668213704520210995297076279678307166435994943498231950396376343054875591246856605554450335315423312653748188429749387931155433953638023202553225021754411339217001970661595574430029558597667774942060333712198966064207417333143479615853422498313978493331585210292236642207888951261574011320412584408161117618313949779888593456074134231512204240916669877677681548180009970015001458695211162119738356585162143395068329222176843209596221001319699866996845914530055347536190334063217088193250991248177317188803733669165343841917556911788817449316117521616978578474636497999930596684381846426801280911179790443503236494745389863450394019944944698798300741094471395349651829565918650189493542077941151225929252409788154360881427289012199688460753076541021992849980262106429319066303187877072432870461383583808054484090601419863937750318679176922054743992010309449522466040820234153005980785889657897214809890117711713236862176242723267349835307353671420572784998277480148776262725828098946239717762646249571442652636307080394141514777878185741544250648099016185634794081726326309640321757868533051303290096925322320715429030987928962441210252771791705549399230395666326988441942006206107206542841336357530734546999477851526174903088851552497788427175090062096181913214296645788000339232136718185961475711467424603058181076438482565268071039549973402043470670984397574864635884121931199688225618315541795349055994740296731912087718094060973307433759815174304425481128906227518323083885747439761452992442620256462976233301209678438758249042183736670240823957162658314476093878727616821514453954977824716286750703166640568825057043250407529442710616555533307276738097822098516902833433248019767994120145592177421422061223114613012289345915088940695794266309294134331412269228295905531258068300875460958690287702627618343512261969929840463627696180600711653168467713773889235656685616984513304051539493121998588450607728922219205057362210650759666549279430880052201001643144018216110317399986387988813527155771470212341246204132206336782120213879078594736731379095463195614339037295623639862818435445626967648351552777660983932852675117725398957472325998689971415014081062953200831597788248455327119652901288507606780984095635552446989786829110556155079523520909558118195948847658056545685723993010724204886012256089123494592014134607079583220610131198700716500449551723522374269104126219935743828678273292602599229073834977993566004762834789123824185563394923451312140100062504930730817673913706751459555180841252132525909889051969264518950911795732982653304249688080455633962383400976947701541724325955832064814142360421507853555034406046584596796203253118200955200868108626186066909341644598057115482571801322002105161444664524249961473747544933555366692245000727262071388387114893356711156676457964830531324251697791921036263006793746538574047026174749889976900887992096809498124934288787023299472707983439110981311892365265091193807712389587419537929614720545134477519916650881707319405245520516890988797678760544381398582864213226841503305796437562306895967368044015052577528754396414121129901280223474693451824761701285221314849023487488991778683622570252082196920405263272962475243626108680334062594299304089997162100945193968791276762164946876369301681906599651104508464674844190696888184770155984879043455135209356638647771837356643029303911315319802543434493817752443878860994774785503759909876714332750332169097498252318472398884806700264720516486059587149296141223551686312221344496708257647757959686572441383841060182699384720790124729699685618620034566333120094156191274804020962253037334690422712969431657173670890175779291918521557312717727136403452662487293329241980261361506123266638329798325444221749133177297224786416908218476255072048913652571902897832346403538165634582176589661997493589739040597137614551656594981024081897135266776589212117617481842548571094747145961846287581000128173152112986798792152924880440235202017776821481947234819389871951381056964475064132907003345243040796275580592050991077283721131317779928742043229073932515753604532906383337764286330854526342499540962489045393470540656392469344344913941137603110803672391951529038799856731232331544010718638893346652343299847739215512294339641760600320782171040503301294806036876384802536795462093205076789756356194167473921931106073838804820214958491219755501683697177713570129490918639243778934461955681487230458344011296833673730797305193993656544079865349387134353855959306851530421691939742416246997264192041827450410948725354897628582399653292744907779276988250483051064451686705375445756270445927356113144429817840437170835678631229180901181042697922431545841728055913512454749053101619973046870593466415962287749975107562182490217810475265258508922118782196076601616786115810769545276948487822587615614675041352549972504032000579732664490710302818695895895533832857180375222314841675556672338980839339476078145594260814238137067518726432416872847061585926382873478069640995947203291840894397301101874544372378586002922269034793738917778831610377458229496251433660842174564752520394428453548564040702487057885913931127960361854181045411072599486614725253672370402079635774805656587147226662208218778674852945133717410508158686687734337864530154296980126541346469407997809141376164248131130856185586613593762293509509292916929286873836270255076361952023344049061131072570897290532243401512940423788083629911204000223699542344182519803278409043105433157014370038728953075512495495395670887195048246813727271109757112688417369188265452393036471548245312614037409521593483285346441257324019843306639935529750288730417868502833720351463551220641143188981958675049266435116322450662824607829470588794668305175338695365622942130946273546408494447698411879250602002546044399243989560740897100712288084655556293334522526439839858617860291350662314114408854217804820064038325051687724047257683755294551634352717653475801358648812439694573195892101236669599772371439367229342782321229196935586690847207915933672841530770180706851058898736859432415111349339272784580307959179828079803265786490186352225645003347897006560622588263930267334229255654784353427740962993410759499958605575558768847900745476169588221917688040552108403548702107180595177846297717874163468482982459978831851303044368874620821978137652020464607868645624555204270771262127699276866937782785791639053288867183991815188451878477868040066124542557900677146194484200639864543026739907144642245867710936544174738730727778155522006790037159012251827217265392353557705971228186586058492110777371518995570528039126726167723420251902274715872565326055341884496830446151921745852639776936549394521767687741911125440128282538421759684229766770680268463627643766346955910869082232294375995856514015565262184078391465891198039388696583916661945250599894512996434630326790387158131350810504564303079209737671461874071849038287166956678921655529858778358938659575304393590423597617820237688552113619901847429274258449926985326633556083992810728138641847802350259194872430716742276760063886613938511051020437786383321736780921194869800191866229186644857589096064359557704980053456706817214847918695482146511984543745541215589280090581150530986836212937768360246010766141463456151093143485042513004386113660561462141955272039261264985019708616754735083766631107143747479629115477512679025375629275304879131639860750758064466093102514285456427314945382556980830157449343807999637939931798841359686223677850690530349738041594867559603346365221676744796583139206063141236032529582131195883858245777027751591548894657153197939840439735552824207829731053760847007240732084783801121157572474885332832653760375815893967042447327627942432312656605001413178956058512086094187521015557618746813911325022843975755497455863331966697581479481161449135595471802699496489569393171244891045082487310748359190380327064121809448801586904002254629328957841964344747129518138296476119871837288667164435856553085566815273698709276924982786098998745380804308272491602309627694285416252049360792598740896776170018199053111750471990851463223649244826063474573911703848963437045446499935621910727997495647550160164849564179283202289912583935910040295897102483503270785006077404417582883195380380287988822613272767568473372967138294758471432144523757231967589178215335760090686930459265653728107816114586720808072067343654868547182687893499651681053741689833392915703114088445927260136805432301021848725501512679393326518367973750189058566955540278967832923530974820955036632806718605113853841369193788723805163800240387367233925871550992090675911905540854065432162102357808986699238696219956684462159633664605545607206909872445814535088466098786603998425965400174468337708560914404517122509053233546348637582210707130709350663083602023337241091679185814887097228290354676874754012423055752698546319818501494117724086551977091339542459094858096556818963449299516588394718655357046600930763767235501608702619874820190622542175803631947984204599439481742708123036501882148459249075461213817246778953677358094207388582821717673147672441488389246675242190982599133049745625138090820244556556693338733075466635773376311412666595021771771808294070283968390965771726625503624178212474420457064453693084953875132399782672897199967418521286300751029602047800580651693317294887101650471543300935495650358635201305634302381811704801114044897871979011075520317063346257131154487359741686935084381777923864754536254068567230025019423816498758992151301792876547807690797156151064691846396630012389295591323117622629004863693635505255325480849310332291401014607880449347524720807256243440170645188637453004928340097257235928645858166124448942108486331734671847224097567597062955938719595723129398522222480583712547280223354636156877051442135762746489411945127293577552274673472437840556807059632954609401558976781380672275890164199039843721317708358881946536323983166802887314513798490981581687878563484341259800852479541680454860079395805322070138889258914673649290657010231459675873346804949153641976635867185389202890890443881418276307833840106340538237535196853788200660382436598840526872037071238360845608494021096620642602984142996122371052113536865718966372538684247909443407593524379894474278454554617260176466828846831682272908328859979096255253072174506630779674706108306286503601347710544354706249318080593615453399088271767539681003868108552827677893805263442074154300654405121807938622905033382499675842726692626288791702819689236289708226127148886811333247339229787577812173333129833481904741675925845658164563523488883265078850521719476089935654382618107205325390942898037980304133853922112507791985380563098298906536662040918194713445090353328979970640650128674357370596782113167621502269817080899840826341249319412751179753513772143856205645287448722021913893451126872719791390358378978982291253248452768504796840632879036962041528254644760389764032580059740346405802822586912194528218927760960172947145013641383388723592788808593826813296121024744551374154543451862299059777229433043935187271789245377868189482204922662472379440481384356720427147910631901334277549136575711246188511157378280464511025834187713887020294964767127248853995497785344369672059994376355637496329465121587711128009522886908557062914064813342346767811303552587296146390678940734590453466257524894208249621862081032016882862658264835378238232022139722951152032037579299676767723994501338953065137259489780420697573240246816216785392294556458749598851541326077639131852995411164369015599104134632519967712099196060833767250722975546536117473101366242964559445278099346785806342500144253448612544636642230803268780567638159187192279327368164217240657345865991998936152972285073423899654670848163099817279429884325818287350272836312924943025537810279470789753050315596397250922938055630212422536803809816613532186857109041410179515338238989645088373635325950686709091737938605296129256564453128964009062255305135484456080790112203331064690601091134501317911874495782066970255123685647800121261862358520698961929545147911240957652776434224536445681562116372741687987168304133826948739095214312717379235381307606974075715466796543965571500229015822235908720115225788435210226841633839681001883625783600490512986107625449009113108560471239165546189380191583967214257376343365057312774783413866507909372196227651081984786208365461246134625908318291581088084568245867900767001507440656624240139718425063769793303346274633977918526195085867561582513843125047209029258635034868058724471721223831050213743735594755345478362271162088819680483563159090047268359278266453967790985691163696590285528299917984467668548322839355500572121949223360288671915667662165888189890028341887225662245274379152231596720227212864916117375060069488214292429699768060047486395129783208684868794408008414316187894854421568207538467038617230443511907261437879186138537856177473079344870580638000027806995410397585779108417582278249076369490322803912740115309927259887217695006195566205827962618192621904761422305310025988398199433549493571358580330379879832334210125643848408437778215406496280352861204564558502278832253839989351954130669733466886696057346419316054843751829290804193797774883906481497900090970131900202392905000093797219492113256457577921159319782342983317382221681255259826120492954735657491188796568311776885231930892713697337346790258120991939486613965833104254775703610170180384810428266273737373317271847093098975964857442528036540576956107631081604278145111866568693588023843156465051670868955440802210449982611159896631729021302186898198541472853659303647193101930882153794915636387029738508469736364520821359619200283767392849113664961344413775580018835920573370122077149961901915520594911601042307284895487815514258320105862318778421519958847632410869064390307829906704824131929697478246743128087585894218550644253532478506788619551763101870887352389708911686658148956518900620122596625817883026937787044934578170165788850534570474959549277527747504010783182104813038280012269170084651407190240463473883252240325538781228742178017873588771187853085685721421232562641777219632386616494453768013181097958010140399639622947770364277488114580492412297514312461910279903706456538359179114800582028219205933227292102415568361843927013727270481876975859092442387430129126024699616920907723033605733018965738223881354748531870416077698502105457704961839935775924599657234853749598738547252233105929849217651210657667356682251647102536410022766769048168847766720914823335477537884135323337446273991643393147040261673477929851729625744277764509692216009329479535374974307284693564000726701556218794109566512298556586892125995958075706461053228189844575491106393748949476643369132374284500641523828790707608588197411747472949264763292346550407240430781507546419495521002050077380675853226271424351861876890311729684725946147343249106484458233546712456222297706695413215402406605732218875493761335767360593021850918648646249000250305848040523994775003782494024707264676892175291065743461321730485845131711014866973936024414459839668519256570460770586710768046067001918167064142968164782374358043585367448131657691548069497323715304138384346059944809234661552117494743024502974118961220186765642787717543639510489862917001595675039881467859327694035630396597443141326358712623004369554719768971332316181172840372838984489652406253033930649434684614889583801462335551279281128076851951137330877704559623404251415285569331331198805253586403767146047455169764404873102904227199555643254347933766372971712268879693187415303511532833513439479745608820027823484491261578895904035611136122865073129117820569279230064549977549668742314734392983235139571310696010001068249515310238054418944128384430390956785601617011921021018017268628434689966094145578455293867288738455930706924855848919766943231080063802932283240345066358756241688953385827211288435742028745297921431461460999080199021631320437604043119257080408516180028777422950171224673376578035526142407860533259929670606373266417436380407825190876888905847478159124581483533042527356751641622775356610517589502217953737395329868311167386582479098317996868156269691044987292776149433092184360516561761699675386648819010038362593749081471510044099577795671976013183478023822295901543855000995062528895930147078086171689531160288064493285348587801404785314228391522352749735099019022793038803445650157841741739231007225479288466050620635534298435324761155170687635414045887866018275334493060437907604853674588225711030370126379084539498334254497970006474401476767906364743544541226783975044959505543042355332683371408748950120296186646133585652315891330880781020563658399551588955305000080598238285213275342444442682886770627688662008344412797922388959021369537413435695861526928896554260333534432034976780323678269723886446902739985021982285438663847580786223926662780004796101574792797436291833435662373678415395726057909501988887520091636533071096033598338874449813212443192786137571376987848871613306579916438871121949580985638936867589844743793128216317421135806806474567040086481023333247220927182176039513808632687796047038506048288306834588940098666367308814278083045611195542059890338051772764099791047667793676416340507950112212954125581619695940442855886689711462872552035165628575242024522375523772488263611912669797816087670544132637532030306337763059268147191410683198676381761446483635848273602028072815242575127932308819060913930314634704717279248753965240863039446705127232152949602637671135444589859308337984907484283491303859296071487253159771583270179607367544635302994335498231193169746519465015500497572888124300681924251978138429621126326697804305587919354530578075426425465478194668801807753834970356137578899046065799226765291388348522057731932100100771630615168247673412837429467577374801673522716475192804989650578203177074735424512455278308039358498002768279123359482963734508806335404501016970343336909809982354787018494501597152567006378871227239350536307333863404325986198998364039791438568846133067821954076234445357974382222120177118455619282626145846726709538869443756911612301205731708420530788926890523413831850087860604033982759388836635769886192419512165579957644020051175359684343513050818962523846582981251999739116631525255288634955368702541686461680475048821267988699709034283464307031514496849186384098647550490624226810338963742518702622503134225943527669360162611910520527214768771965345257470521655549982379466815311183113196304943670658977825289968952985024574124682711064825926326252701350787461547631409653333061200259719528042702315601733682314810701166800933477261695055563781586277738777176921282710208510421674831113151459381321025686385087221581960064741414184989973000521041711374521583846977144618774277794284399805218323953371011460418196400220599282440214398135858334023190245541744402617874851393224392050050227868961417479986321593279455280698796371627177159053968004178075779980057179651065699649460266775946626406752083000243861301618435985482383719868699839199394423118170773791674063530338249256736838495303602312456002766803946417055358472045868433651207226376447777469035969034355763442290051278377952231416340522003554695427704640387512642964127820581786359804484758571668428379707506665019841135739236413225460709801615663514817631630046845301340738939451610661666332678544056958459924889626225140149828257095924428839317411643527451545630202753640185989719630652165022125226658920608464647161692481212007391819258333752277398366328859063220460850624503326644528738437433896068153173273451141555059900076794250952500131907634752732879927259607230133608009805911746384300892183162884904598189370245227135497685802506443224364135391727792352114823866298831568420712893495805093428083365570322953494245826483522657709043874542023902786176835569613202378054705371732281746558250710323994054398148269293467378505106364690524541437101402680982880378806989039954233941475649317015876519305317469864200639424953607313283489876298940381557684427565264839318679520131598295229485822933245893641013744817533988958309184041036514258930454086722696620730894861510539567534594059258549017973442282020299529102447656488519762106717790398088873002413093201613719318862676974451969388776271552071541603315028171234684611804621198911285774524568064363253528358320928633142913997816318097277080182732719423306781383585787905438271345067374770795810765356150503128183556940082815833994086381174637906047241016278803497188084897559196931345350877077250846295120846620644460676054104793145457528959530106458005060410955710466517643228212005717657339019963697664922636881391641927409025031445401137799166608312566708944219413001879178521327632666779582828950395344389554246543075237785337295301008824135133480744946211911285675978470503490661013191693701977307479310450776401717437102028800839773844080994030174571669067845300274200457672242949549494656829965860056499523597090991269660552950135923255107004977590377956243787432844496454187267578319847037216238858523805154207525487992267520707930698747079087196658556833249788986907893977838391185646380201068953709960958845152068460182068769816259004658562331915075204255598700149944745630223275706066513646619223203377148011764947337175929489183538752850085976828129517454590064780589851294631972067068354023408735212326586975298398309400403343502334717296077684662831535464084626089685782782105339623161081245977892757878706310719538860706365254084366548718522472239713381591697316552717068736085286333826961603338138018702226739986547852912653213955588193249308026544298504289410113461560103891560058237106410498639209118090377490010956295477394914501923248207322012264837626176697640327678844964684221578197890643244554639349660053763412852627968301693404084746978156590846994837994849649202924846057395893578607138471575881069766153751921540654293233437799455376199660093574418292481165370433708606581576206111993093949897549933762188841036878418217707503310564234116427426166581706915885017436914181511592194688852455476388085976194521094142635662885791404593521168822147946627489822770265196949783093661344482433895570665507252955536342794277178714173934340113364964378790041237170466907291925884198563133806956740440928658400550946531425518190142002174261902675190927657588285907215100003724620834849735475196561271503179759888341407833621136546377495058756435418988014615382536986217361406836759012675199391429908962665765313814816159924815409799667262349837796580921373124225686351425627508848499843086039504543980314198410241807671962886015770833885471488081564981473368710674093170088633864310685947684901096776279405771098115438545453767900303273729472611703829509257347814582146632906731487047157728497382383900987056284224642267007556133557962849664522581303217145608838493079141236615840276927892845475126556208859796794529792508178100604434494823636349409320603266108280385777449560972730016353514117610069820294922529173433181351862304649505543353001404746331531668031716681609099537117916800175749373597576106879331447412494624414320391121240751903258635315417026454634174986930916651269338388612925788265996114488591950601548835257574227791828106919821142989203384806971989565973351729027709870162573820339405071301534075565183029148396446666003510100293188458088237525284220090786134733145779019308155597762821283247171791779484230218177782434967108270704620102651604321513777861588405136638521786315112122295842336986775297240661848502471604675600498673677906369722430552066353606307426838440625988760303237479417797057226275773060113775021641919442817290217078765712865054847970860141259587828428966599528205394815504108264394701530938549026108989868156071535376073484841990413068189976689407559154277670868858141391976721678540820388060975840858669418200155348332536237165147909334989469730557493798595744623885797253212165141204937425806406277357996640995523341520728643566034201499955005126867309853126897202460520424213133760670322738861661069783812288488677793379343978776907344182193695064241432854520432924266787862415120696116982411691649954149747765264134311563029250496893218906928419822840745285603311276957544729308930747587531366871064564967537773767248876623832989847689334722802102687854470401893230263076262723465892269009622332132242570751211934698622047576221841564368249332211471878314397518224519895468296108040023506981579877603065769104272844849380092949582282961045345950382907549551768877628260481092983381796947814199123011315438082335452913791107472092312458201945601359938118206476299341234538041061871439260743730963167107199671385523062102191168707285722346941025502377718340829246983488311870386114653432232401656734151610457669317409359376197045137863275963882092841656672902932778731957837124885091136406700303925279834490477807866997875229753335514245930956459247729762557531135694184326785435920350316304741692856121034538821216556507061326560147377938613414601792755100803089347109857383921301938283993450910903950732477042033068021867400352180846908612855601222903688150227591657997242453647067338926071027276376312970287634271277997483557920274104771388716184817507696801273783362083450709390119021489547341526724294972306852773782076823287050933795849698187197269413107436830799631417548453384835968374704478018093834432425934363085859282789927623658441781239847663784625072287154493073446792629933112760515192825840048669612542251020886289533968681030260977885166240294697350301549477221299307756244122081649418360141095984309074558379395880113701731937571982785927068004019120849281697039896371859039308250627572891515672261343907719144866461316916548285500888604315950405817290081952574527162814883271329479374102832882678524694631442074375313698650812446312448549831686772479156777717956612396283849818054388322335822387405981885115113364656821428846932894765905912971385885025711431202553499548284102387428290757826893366324926384631809524436710167377535436006816280483255140485042205772938834161416715797891892753247060962543856987308599500823376957177015957328542454505348878750172294865080174642509690492775644958206821120840761860375794394914669823311152052152357274915062398656879047022674409878294314902727825690031376801596577579305770369762026915245287377808332451708335029183572150684253303484643042643958179703819910016440904201576261204778722189980528639142123142920736075888866920865629094084827611144791557470950847389019978174830290680870278921000808378965565053986332891784493740667802696469297159381210498305998496531771144010834678827435943905705839332193296030145604695806314700406865496017562911949468094732164637302954783818563803273783829387508183600988022617390376176598309529047381763991082429672313843754518637518754665185097213747906120173079710884476979246160042640642907216072747362443536711962859367979193169394408802060819105929921785073200600749496333286975775145073729661340589163659299237004550595027045322894158084289448408677150010243259794638709461318828782084601196802253697699226629481322908765281749413161594717412118938555097912741651808008166798893902078347606662644881281736587927660603017752877743661966615634532566952465314721780297586176311672207821785477503595037349042230708644956280784699998607545829712406265753647011531889144252445699241211083180690653417450517636749984694277121672933467704968759720680834689686744684977000487152262564452480730630765726349202242894567748645474932982734332798330058525179983749826046506452593736981576173574562315992759051109276299199638279154003672680879526198053886058470917121176816920179598903596481908556280820839932874044991666104275790166992251978600012351872461830486881185505769548022602782728664583491933587793704836561642220594764939827517062382845949177130832568357118272920878188296034247135961178265488042251901186008186330803775039909491219287207025763560446493545999940312384242919346058756031334786995916054474650219169181621727575540404451604158203565843993811104531805923224985216031702489145780847582494045715454187454094593005031520650379989869950141662776406447324149366044954020057039981969482069847055751338318202846165394990517951195885380236295372903143863089426612064611519359495525372636468693464708655064332294724431477464311299430876831396631609277850338843561207126976270768794581131320032982224964905310194355784976953374482510294312439881394878751798767553715230169869782200059894972004060000659841686002428545108019055454769934921810509384020443365092858416632352360490936032391738887758560698707928660806039866625655737559823203652776978818018549491145046248778147551695629637556295462069487218468207597858177597602375859560290005065100708406036031877377682064467293502159102609033797115539457746693036415632573952926624679062646416613339730975398635499521907405119133976513104378985773131340446688636679356662002725344035102128994727986689079360909402502864371922148931897920505222203829957150109981506637616336899930501862581742531888322752354160656907289548334845902563846173189162103003343676769369892294406058216036924000639741875044333371385750847791980319027380503201668095986785426715281162803611687912201416615636643326455186375424496909312282146305176241691204457946839989059485094265073035515171129738069261715036711889597326290720049776840484628755663956215197548555530034470636887367465932954641173787123673212324456298610240806796338499529457199872545973602781408164097725059755235116071823427367255224418833840699237393110305925575933476671477160252774597734064582932954355573102165717977957411507519494125304183518280600027207856838962973327442790309069594045891160648755511160742058567723145400341261311870834077309796777151794514658913822645366565606143000083529363940465570100405112794519791595337900063870237050670328963745774765859935931934497671078035606610934687714886271963712842719549736824144971499747710147488136934672843600700561398210007708016742584524493457589505035210767955508769014756103765464433761257536897497952513602618974642515042327568448404512171543121845514045142207417202461707447179171392271771535475362727636340483559101686560278389060502262132328301089888502017939885299111248302964160389405552823579707560562782255385645604097668353338257053283562700382941725785909813770372186105993044147760116287092858011579169600782766248478101980216203962418036987192940477616034226765261155271814904487405403711840260668950951679755279657738051457622008940850927231263898818075120439076322421963705240412807012853504007263129246102881922987109417191318029977047952815061974389181377430800197703632419627681645202813725756348023978402772487775373817343138243758274026651257732332202970892629011984779415519290493386511182188057794237597137440373540126670473206959167585106044313870560795212043413542214438404738912674131065093763913463520274852390473848306577674817699925514682695190490162750343484248292053039907030826871442831118764058139119483399166149475463932055035749460011509417134098392113951632957273216933223411391493028120090543418505628102712458735815349110897781857820973201970329458763111780243489242688004439899923695255878843472898674320340016538678365618340335851490203320108367811471321880604414900363292189722194623074543916989032791215001882017471817221401965123593944983191265602843053401262850222988097265398144659396639758711890193808856130930904711014953250464770927137017359298874522669095369976979998409056676336347862973083481955255263541332647905963160919468811390017678010421375012878174161772378915284995212093332137908504650483269264504303182022667964484463180336153076307852341973058381147118354718575486611229229025741905203611988634899177613354234534243290581874083911429985972437243792016234399764775626438817738429698786855087325127892915770449230376923813005502800434087373224040085811611508679878163332177628932705305864349175833026656659402806327664313306941054573764874158698727068005158779900305387078048989784493976086049047426400477547695325890592276527059038836189178520682690269642165354481810090867816956319554802501800432692229507887894978898754494209143650044983176135099046782121581946567532364286744987373854580745379113466009878426363522346082718222329863373113610606572273253766910296871815957173256784206897781273455659027962340875632206458073964645056009613039365185311675563647616508038297685462977490346226656541910132912296400453768349648932269785724519337138875454025499973648810321438089595185537510516315287376570898537834424123252318884611709336082469888797366775764954515888698661825972204481623619181967840114518263732622707566499032051284386043969768678368370133103535244745598378228851368330469990472088587987100931281480379498247780490180563928938939273545521650214054991715006682138952305191145765980847134728567624795330950423126981462703071739086050374122953754066611552501766906915786603763882311107436691481104334689197909077428239581464922192788466792011858100752907129594143178739573058216388802118693886324878783831249189887183218792626383291613987440566689774490273343735550688775950721236032779259735721552010629930409153716873985790445354646795709762574742963939445817874110958351151247507288716652428373622018618817938755359361354266699954687415991258580740954595863708189654742938691390781387435470087873482779717430589748674716752570544974273689346614516902153144816129066860668235576808832856136304894025940059742225399520365840298923852248585116779581405587902659205577677936011170587666866541881122503250539315690474335331740940233091309595255332717450554862746802454024990848864071585831882506924625224695534608658940216050664551099549938349718810843143883200131474539379405124439770608936911352957152353434127929111655822239750224218588147138016150998600312976281850191267278647490049647161157310914409243909114538072495601859049034164574623828504063793240980811452805623720034594812763607638038391980647410682755187047523321224221613240008952406374240525770391298841044843374044725369031465915288139632161849911444581224302508600347659826627219500886848154081372498317976241264985664866008350567115698342070262160371645205123293627109809453540610661940975536234445055808869970264627034058350512161015099363582472146966435885741807731262148674692938362844178737985910192830015849821498110658032356492341202977821232647411754852378155424905484989212965159784396037545806278902673046189208416006978969529994847538111038751641743201615118154262216711130753313623974448179779730343986189819327515310946565312715333652352375120908301234256793470128655901558662005014772544303075259566023331272021348636731179323340966395251554910045110974874960400788170839261213922113428765891261661212869994913951128616423667875386293727663816096317258717928169957422634967228932221978438135853872050043676254381347767116005457352793329238482017578984258493961151031334493016953009861600170381794170485840764194227664545911561551356346855820400011440358709362639534878424924182210579067219007205395899776774082569147319475008528537510487501052430053993797431075614185565641194032793264579566925472912146140822662305667795204629631903421979397944562459894806635675197682290954216074860137143795959874464879394676810649706607157586503736145605760442330725871764015559166349274940772307164655693458616286194797271600045500242445644844842436323020824293465843157458651102763652974134855499025791169721483253902970752214900682247873292380373813170929646714918415331685425832429676571170814484440275536060922001513113623579934959761536287940336754368096378110233109107937461888884193809862994805817234510535293352812020382067205110678681326654498625706049759892834032986916521230308897777778971233486296794234750886869633914592562263957507927733004256707584013601334524123518109510734695544338533186234280511878670617057807027568815486645957519382730967192273602576162610130440021984615162587120317965647872511996096330247054169741925957119638905855780739979286546909328058438189116876276501494249959622281308822579654211517209150883873068677210666736506729325882560974306728072174799379575244823822557419997242145507973387883396848391856300539529456053877327269737220053883799193838841111327316331129084887342158660042971956025961745737068553649446533779966565623735870920116027603533702562778363377352344223601577459307336174348870672859240848365083810798417603160036422733324397133284212726819708695964858604575985760706523771867151318513882035464714058364018980777590457605401065123666600826109404685581582190929098831853458888732402855290107306334903069245745092245565930833484244735840533695386966740044892093132465573206448189832324212060225745093822312068023276480444474894163079604890257114604416361514195642073713467697723259888261245816657154054172498735845359958703152652427868488281130817304221222026118869448546145447115200903030980636024995020031046499765554132194680523931500874467364826122790112452392121066870224395927578489587419744221914764809773594121347062816751020274111973336915727792756050829700946333956687644066890424760702929008745452420210061130090901638889986097049261860138730480731030102798818145731164768833908315157036254649232691563422272136448770159969482195658460860896836625936841845561647769955322134603029739929172573659928057246286046768738218337017424066103993761918224760053568033234838749680295853973200980527930788768403136840661073223131113304295823143090520144341042609001381886955641777552246442288254782186070686076227803493188846566313624554284330898629258498558615415240865221748850683589755444778852583783629813084781471211469048080144322238212316934818910284770640339210804052143136460466861618167573426287390936605406731270492867279509597116038642246065116468294057365020998663387077666303094441098180028680774654087781055702226858043205861242097139474488713303360463975460849469239536386479717976946333357158220859971359282580841928381210421397486980090580600019837754427493819887061387852606731619746780920498359193383826631841661813906383994011192954800956268405920089918056177233638167209438562454055358722134888678234183716695571426965115585260544833056295897371328432463700887613804996694432804402407843471770045589623564968338705882317795152535922940451398836469434232654318653673194930414675411186146864149474750191616037090688911641743640496616067068169697701202228114749884890040924951691452800620386504462116594411874846909140729503186275490600186954952786301788515505617673560473079315865885372435848411359966296019523515332898704874070415644646583420802176755188061842148928791331705683930906053089282053678982087615222226891867871899016400207255622764988075025154794671255087732533288118996522128315876810682955654358971870546810635851743367883614409422822930683298530894878336729832236642744893604299165603502236075107482376728665915673422646704181339564898043274653353341071595611233783131736326241075561786217017200291256413167479544057027414341673741059077614275516319062351016672062646096012079160321924379787605556142079904587667551201754505784202362907847503097753464728899238013914479889691602350147523410746882130506526564510070621732404890493444191389292379070405533584104301311998418165600545971120211388913359110262573266534769133447771568685319364566111299688861421884298491017265422008431206713783666573164662124374776426391318657618591013611034292424014643160388028874896932627953013601836922976390721327133956235692824524715141919903805118014073027197201584023642092183747677429862955874347588619557485368762327377607914166696485823106125045233647058189838782842884594632560427321379430940386381375835290895258996338678232507505368778759198101405918849337326863018205488312181564904362297900065198497214145738539761051459345600099080090485050901074670485882620507963849654040785937299197421377656010416864213544585408769424514427568763502110738065914793189014036471005964927950868868763006171218839669818872879430296020791559155176584759503522778938817488611699201730909219261739836833098987579508253526132747770457899697282804517365952432786177103470694612230305466635430228119109950532140521170059035761773236610193181217590968873513221561165304795342966004989681354066775645284149683465540679229970893547853439672508639107005098492818606200403585640462892400887086529180573760435463912374614715856759108759053116999253506641549328536922264427017980742245264615541446481902356160589607775746635623625271797461464161209337410288308773028357119280377475056574764868940676676993857003370401498874824539194527244700017068255397834408108903383031634787802285944006825982511123974395351745203870530599485373630393940578782439249828498070630683876333225749472441913697979397799344784209543703104856277385154948449736535806089731498008368700305386977227666648218654256474001423425325936306792138779323005698072860033705663311006181863757052113534339406995069322270665308502627579260751905008540871068921450223450984214646335974010696473938298575863414141746960672240787629735560736217453472274257076895105220938192981548220872241206220182520093342817532480726271619001861509134261396971174525564393772789971215643075382432888795610008974418036739454305433028528290952692817342116817683920638704982468078172166507040247368252278637328657773041378403351287757628620980999184020189314006798148668710241572638264271141357294943872065003673132395755927891345485775235842283166474157525113164445517193388108570666030318472721384882700571953846164171498723815301013522763011036626374879959322896924886725756970303958030599993990218913188174169536308506744162610710324374999750312120747818695380745117922469316528394136764078535102665538182139095349612631136301130236397781359681453242622108140330988368950081743921422165108367431251123609923540103690355633825337790347384825224611990364061904920648706886463308069746513217566095296161159440615805860504279269609947057402951765923912162883216010014020420494995944046520237692163286998412685932779792611007294633181922555237526381446186687483825773945407162597576010688867778434845624688957804954801515827287584639642594716076922809397233242357181035715436010229394064490617616368330345295340025037297782134459717297188050800401216603258145335179479936127646126483495355602310093836283235443632917469573242567946272559082055118421802319810591942498200472488815739968619351584469407220890554893265401810514494664006810886981356766040445903060426288269226500960321278981571954055856900919172392611485036380804214132777836814219867851494221733080271534550257210058155501381909431155615358384460018172814696348568944885691601186287538929313453857226015610573761202565345128924144115779049426554001793602174154819436833913340874396039038103681389489054033339112574496422038009675171567047675357579385587975775964761076914390369627824050890024294527875718801766458642415123587734404739382139211085997370690285830723902892459289939282786965018450051742079470204608331772048753720893715757512560700962793306396147999436155950003821217724831552966620973347450394610625008996150273346022834123634696051383505501331523426496597404871763697342085664973216357409973643946157783904165683247063928278422954118912773951708426583422504210087301618861624390863178859817231693082486710978698607436902122600310090920172003951996786943627232385500831646213149697033813388637297164576251040387482066988874270040286284833606807838068841112593083250469268831749595551448918493693514793736009676816215517286011611619368392006119160061151394160702564916856480485942153224628207138088362443757079612977758198757757046184075102656339426113439686383169016650052766715900997053019564644723733832088627045032379055308129943222068529373358096595311912280450945442683326412448737524442051782915732284242822865876360786774988406298272819640677240482891714423367958866105147861838470060833585974710029105238054691603643474280047093947589687908285387258554015759766751356985226167183832270930301724981745662233600811070579250371356250505046016519825126645327225780661716774647503805975059375506028951174218462307378823152876875939003074757244994158788414318130657908506284396051754675196683808934714853459541516595372371101506494300539041753168338037458416415961764849007505541307682639155929309626035219949216331543167387460324304342726035107780759531005302086351925172882649447336762540879726334201074453978232816543656476800632753389144979842038952373426356413699701822622959235810030373573944615845295164523573602232950846614358789824876628725952427873218912930866789409758980036739891761963145758922094605506409085452649013794018446242805816574812173722088711584175755922006977590798451232251139526265276445755050012252537387515599881304121949712175846280156204055041799722150990649041494326313536177927743895084259276579821738429161991805102158616214111696455267912539869480623793248354565927299541985296843774282350375650231227721884283024888932524089107433971647372200206949902208027417179414897603095120895248008730665868362492479662671765252687525021764510261266404748212772770441236175039461756659561286204499514361013482584327868660098229522883790157834151987474113160742127462578901082261139269182655691100603246583025152380979023650742881442963395016505922448834752475382545963299568661802734384526423614605869655321931690497056943279413568860951276429690951005470056629402971379967256287269492927757213081795180099252207085432568103993273953642779871356273223121046712980295738595026741659197645056359399908071856944192192345156214931718866679881670586692649049608062683737285488402275279681475799844212191284057441782585633670971778222511208958525736029494808288015509087115355249491783694457747767221400456985406817007816925014300725521571140675859584907060134242685098521005770863969482557645022563140525033174917176407357414351684157956124426707170150223658585980831243207761937097266096888787811050037515465993892306476426270654767882745956757702928681477195008250877414047383932573399997575505885923478524120541888035042590854306431476355669841478028974358941824586626103309030531408261164221110125531449188002843109031674867357073842917711109162911286999049081392868425124916847379516775720279378128452936292757601229302788526297585585026344640804909442278145831232699540906110529915707179929246141775384385885941771053890551882757165423627077939640868304055007831103833938716031703674819047544262965043841597048802473309671047507281395730644078386230036099238044706914750633347627364943396088218727176431425925726294087597845018022014342519734832283893269019574490734707218927542939950983452418304990159532644435817706207219716559940373506366690258553313846415787160931637419207877143879499764827233747188205121025530968236201045249122778317569013001991488573995003476556170072011857924991805605515047271406596855577936091996359860438713574286114284938949608275089251506438347924536443537833630716792654503304839181577628012054127238129575870959310233499125300602163602162125168568232345998778064092100442801672576414615282481235601243491491859052727775978282081121817341566727817184648563828152566121142823019385581354425717709500278307035078058358616102418186932517645072082861921324829248057210918938561793728488215859240306655392927738812297818071325976053247061902067368998807396552182730228813089387366566751096042734325435427533471866973419918477662863817564437570257448584636714515650856146341229990806775020052281499452198117929091572116426425435471886630895692129203433257932023877257560456261468004992730509333455002218581202339735812215766414231304969152796381137218237589496794178445740369374456104784822501412640865472806234753728755634967013350047650810520389340571202481277861131390728706950265970957354924752869020857357840268730529344060330701642268077948444765028315976170992015771112037415095580158443654079866715334743774858414489350372051951771225954276924695338457480411245048937840120004356440274781566856825504691663834463861051912836020650309553258959521837695287373476648874595993060714907454787305614400719141057340391095075856323919160934345615749270880027394742207649154950797100500591644810735038420560741214819121627391099132050737735488526955203712377394792133518564309939004612718189081827833707274434679015554410366416717996406060592968857395556967560734012385396121749876198117815238272502125882145764609828486235102258283085482931874096470011964991742722152083274627730334948814415485235671288777053433273306802050678925803247506531476777051466381427476748419806685936899365549013742417130985685783209265878450680027865649937799586155072395707453131741105718938106846978988014863498876523725177882382971613438544557246158522872875077048778944221694027121635034289588202306944638760888764382767973601153349741086724117207547658806660960746495032022205122064992704692492227307199961258099217682702300549369155254888440864083880452863677509196882401043764938183208995066774212401298753469874031257037421727630550681690401388607272808592970254191673643371341472164844458735714420613968131754634734987413364962913863732689333201251281512777301596954452421780227024486419547686149832631127170697982034331469422160796610410660836864910948836809184092595728046259294088630975571780172245472874510719748858101455141259921108926882594180402721377246596949020552738385027567663507059903788517466863951844682334543236641587123874434724048556677992876657240750228026989125147190469408285902004067598837659513752353429117792420410590886463955593625960186410224670250624844161865318850417557899203498199629304500899403281796727854545643578432693071728826063220522403165552608874237795928269212800716692917661789186810931055587727429860911456422333914595678018380894071259836595942731970008589081929676126645552959550887279758075779040877278215853589137108545919718958094088448719708113097083871915673880264871568913735713977142136732100984313769806310834526117192251487338318152388346613849405681861473434457942709112173915228652513085017171312394088776162687438337879263508222060796102537866294257069509393127492298003098979180242848166547393863178968165306596917836257200089954770233808546558454565631387082172453587720588929979937908903574713881213600487006662621692644513575037365762597012074743300519487100637338955658798104246783114536857264657125755527511820835190351720316205158989179395131281644151175587549110911127264769627761278857496493531785516714695627700811020214022999075066544706808936066262234381879430204129552254085864522300403231683038050724900288459419414112341920256328816674650352649012259460678698374612573630833534961561638381246126010935281780003703726440837339686016275899808240864090049114059725257601569244931105368133104992325359617130088159968133162381187032935876286771107233625769937808528250174376949602139044211771129874733083026773136327954908871066771422347141819147278736961138814319005633325383204197290399082820184154457077706191727027105202092951008322403350815207617455715886559621607994607928448587904798466763039210507193917247539261749889145227462821104629657646634110774795873975041657487483149428597573078155323949551688591735044986810057759440609999985454655601752700303780544334576572564723768661452232363671549698716707134019299334825669936585688742899912659611024936155811709492650127917122930921893636243390036519332028225430343246909664209023687155290748637875700260659955082496166997542402942678238860906516390718790742370793677734764584943070520270105272922625187124739243717236008184852857072153949944107812023858555659444201376600831259141809183788174031399913113821288191228708844054316867851756400173302708347203228667199394515896661880532814721299693579931945907161668889713533084186131868818512250677271681112798529707361130802644285721689529647653792558173002006132970939271987218564666263751928936841592873855793304982542864884390056687614529476758466049032069578572608743581194946020110541528754579918400391044583068670685607777721965171474479934125040383335175624362601311568892818066905895273181642852746835391646669877321995998231523630551603745421642270871096986072139342931428847815619565230370855381450904351936644077288669891491427358850850590519880851991408878688197443435119005817018082157809875573921329629282388931013382141030564074259251453582210703417575549451767310503483854430300766956858119045073372137833430604146380497435347398345680091890773087157379571946509901543946959829432417893766359220253105411112320560101986657691286897337203446935028493695661974146524023655224931423817128866909571025211575236798438116414506569172904191792738081930322401961524791229906724687295888889584154724437189240378846641955971849127453370128813453234390188334714096574948001700546069698075227129488995185332792621154196123267824662326032215268307864666302946269274786310313147467633808233351551099047072687390253510810019926392405552687609934131509091271415577734098808497491369810861828815391223200644385396395418192439795123147185583631520460598968502613655342079663499643779855415002566304373872313095926615226238927019752274110413261631084276599159143457115623958153417225801377607635226570774899563830720494121084834421129585372736928337693773607780348355574973810205447338938890508760523619748610379202827912669735520017637948524133191780228503802219312101025677237732028916761753478814863237287823101998528583643601619799488667719441233277500253244297248267958335241061578002635735455028430175024025566025898628236150460129954924274265077980480504409434166660673333236552773751912795656393266936410261843244945546426663401664679935880234802472279688364416628530463250472933943207736446124264506620606095679241687962129329907577723426606157890382430350175181505824603459700270143050023067364058961224540680663430465060225216030413797613629250709484573140009869611483970971012571237838433432101517105608036858767268485733206744899864486909641346647385665104400308182531666089024774666360602040637294352892479471952045184098394540762409845861108807220700362494647849455963782637899527896145393503532394013321959582302818138445898537591200220961485049456726848323855947192173959482153848813343012660105589191893880985431719832537477179533258722774959423931271857976073923474950219021101278729797959260806073848938336463197082971806742885449479827746773251909928003445191396813304455048442479230147789004237796525391010268042078610372173569990548202541225905089859282281836289187567066693030948622444898532238616312533033171621070098658408006231500159948395807628499336096575592229812264126822607142037140928613907301682121670795426551519045248984619625473981004104286689205836710684477931223156434019880510917653739769154081027827443692634311511559705327993239402349763518234201732234301835539929937085222989432804121834312021277983208662219498033948715085275118544033863277026247701838209542350512279600883354450291419428210509704965556655122908066875942307724634641831996554716234275499733545522867097321882536036286433568094864544689165459758395294344916932837447333565130716380495880016415430702760507294725172253226497275222728722921746250710536034845999407644058640984535301412536573747901331932958467663902017445329560868237632427986634318861599057437085202454771796546373742455043954477454005704445970019143099243698206181296444773448374056337482015334500021217421331076717451736216545836072031459005644326563328005633665938997796365613768367576194356576099794128938307146769742195820870138385891228620149462825098639315841525510780589137242323245365151408024075819274444871111317461297186934125119844437052294051884845534022371177666830318708410519623533925139775538030302521958855915883624319663988781919123404229952957999222557667327490863038730345741135226957818835369993306137783002910194664087543930245858993412247443005780707533070226539934592298335883388448326529711586834937671135932474425350808362920565339569783073646710878217672183032338078180988256727082724459000710799488004457929154482394570173986168024888143040696751967178033543715669371047208900299201199086506723367279770915104300143862565070391376019081784576918389066152197767433399006798244780354059799643867116181450205834013279287907683129421265048423878386319123794133725906335011664702572296676459153990145795215784435297531086031251189395757521926621765232212236020978043539012734701424951787408612834531086096558916225712945431570876454260486848687022216856070622846519675376108198387357017380512785691541812188045387553390844250350177855195779779031647249970248294998962467769672682248375694885687357474143659145612154307334801453412407844645921714471882960120314575413456293480561906121459739488614503615994998734172587096221920759447342155220740291985706915871253141035967946579736088158211179301599613983679000529822549059790357004909161883127518098871005906137728149855031372422793083193486621052461606357745707786843837308820130654108248138190156611253758063113333882500586902122162340920552114090471458675205485615140218394691591691386918366050973224947291042392868388697415178774652869954659929122818496694896348849561755078949690469536322091925757210972187486638148740446447053315912263817931945689999195277775054525901931302805784196521387287380957986959998969333321207260370773684999328915202881905402220768863290308559942348370108792948512031796293910754954103238603161825363192217997195480403022130031090599758046493474243918397002038134767816189576879594523743282622879434011235299917116434134754417458837755607182187438895427293128161343797234789701862849844896608824753596131091815439056919192528975092071758051851956111785186361960099179097189870433111694358592095590604491888050410510367470064518141929258522165009954260125815021505532545639764957394804224271281150010276058013640881458506419003342603202371928532872857940612575452979946448737673327697178093961119976563600129571688782914370983035863352153914519085261416604387157222923490964545665142720286661933868005401756575538368794145428472156520294385239255550708999028269046129582641461031660002533969935812851501243277110215686197799073559056349066547867026344915067961926207627295734186609256775957537234080312535597245905389111400204979095078258434276808079098502458548978100761799350249203644785743739590258595488440747639373117330548592068587092812684560817904075491907452250335525649178298650365772550199543118788504274762116175217150590055978613136627889423475397462275416251512835055184924873096797598031746459364976016051726939806301188681252895078006809589465055706615430276066924970551258703646889397158989311632840876488489858387883587642009172189804209518633756407479873496986316475488224970802706247897625329023369816269078803748861182004865078954611341371713434181037107887881239324665374545301957858682787439495451359856598833319006343542297087842393673171509797190244806619526809133095867425182850628375002770050421034834623043252966922382860558982759866379188716924667447651936443091862332020759418083574034093266907925107828603702557080281604180783258793774137864204868096319664784345812371548968271739471202833899966383819142812873412079263917675055693632839061624896528262574871066475001615997379450407482756565945829299217724429361121667521031583132739817326808282350091989869996622464361523244276756112513047962006717832594949142162075140247145748277936511452269975909641918316319540866716716332152568658595011374003875954346277501960233779115185640030315693667091456390340930130873575027774671895837400082958583086063439248750143141864719486889365290382057403181906210702852884823990661435274851234039554608663297669812045005838802570955475708962266837559762826303179714894981684033863368674715530388777891447491257697824229801880272625343833416781597231564492194191182016863489345286434364864921879876074089667285642852060861531602326551713961428249292416684041250550224150278977244752062380197454227594981798088231217342194479150285124853377630223732446529551673719326708102670413629856706732900624658866333507493637748665432453767575443444123261081080960209747567575088002111915320842766076849783770141207820930190167444244652517933763827233379354162176938028203514321219145912056589499099585470983827304653986541363613275134695966249779395962107165396062538301305531937807902795507862612979986828959606824713330223223593662667087788098094254086566940810979617833306417742193620963814208014371304426597596048478792343688268970600540671981642078980701237647211278808922880358974259933933803117439713135584516776709314787566356452987129327396907737710871358580476617014495706878689907794165744453362715471901423276393066494278737833168004649017736025440093642899836613379506178020492635335893290067987551363745856724289136587669393908157583930198946928309763089395236640537881906598304537895833516055764928450700112928302745239295699834408853398239582793896834662881220987813458231802040746968408206743268338246062303635380274656771861043334704027651977937173802759131769516235694572877274967584469041957563912693965524525772801396792339253783323064370052085325917920243096087902530073315129581458883024087360418262831054736796058864787286257656167835987626779847842834379537581348238143719013487413539037488246119723942175106465679691391381238540337258929911023647057852685884524671861635046041441296458079787158706846872352151509511357599709564358348916822276580420978170475375113062877928852265108033148968358035153761991813177579814266943409517091389624555035756144329569067092128444568445761479503025453237634188247080611178586917223892655932885525327401282755784292202357173317973334376938288833370006427318677027688375457044248515574966334521362805170592170492344675801926642326206416383122539161682334952324677351400890447764815211320327918443723350859868383814467677499388285558685332954774585637080291110617509785367499698383969461752520728966032418385696966121062630566043052322046431409226624120613030778698586863918938267244600165585395080022963332289425422747236626981515510409491300190318513075344645957934749362722129028584863927235176910850838060443755567788696993576157692836194754564661660093621553697597667011822220754378748668580573906416041252011712989912391753267911728844196858306047506881069991960586280260675639042077042780513587175996452269212481308919330618345872892606842564302529704426773785719585618751737561452880707188574977486590498569641640942587229895567470076708718473370990819636047130996397875005659395326426803901381334922259871963334413488568966195259784831768041400195843815899888715077179969416806174032656272637181010025436848804044254073603117171595249643755271429490116126471541339737486815328222628916531304401048319668694334901944975023006262719905812380742614798973929672896253074470421829324114183834336181725161093597306343681076510185234709784729882532738196609004850240056030644520082022646097046718194560014894813927304083941635326163071944630819194639240611100566883197122063923989036482756921273150144166354342359353820809811182546309409795051555567637419060793782940571165810347169174818364468629613851597818742119314769691116055213268076627216643782902194174408803174659592295883270391826612159939701163046232156118650146605397360716495850438209946807544808094208735268375782283500209879631874232753862857346729092297546807101438273147112781821689641270956009882792477999730376999294443391274418142527457375263832950217324182220475463446848849312431752409924972092856865361643222181335146794689987228912644045970838666518754662279369944967344706329515922050846003723902450479876005499693435342483971443913669555995038483506056822289205600996643191157616844602358326267677183572083763127293293501425069838991484947755666220580788173720707369931966348004617280645311923166790703284392810193386299529252676683841595250863138896914820953257042358450915825292592713476303427687825541295723952865253618777774792470965526048709087757711847382563604381628374201591093416337668495869733995783417257059400360174595238199838581113514328301265205825947404063123781773521306183846958037982545705686091375003246882372955588792253798211231074579736655508078989626943512827114876718471694737490020862195715375140582329616100280264099086301036263180307839628618511656138636163737620847849671855526281518484790523353238562032777981483637144777105712736771466152818008933252167992987140375072424962346406084353346671636343833735550384292659855111560404820327540360490211565662533414077226903416240353346111746002622107837602704201588309673337092051516616390413506382095768110562315790129915880539905772601617724333886205260246787441424431136253763662226885515832840544424494552342465629681080569799123387149894037419847420803541804477560870366306912649541584323984949065415732813918828232195970490339576335934829012413534050790891374790185624648656527308176101780078440529243983276770999273914159006139242362951950523540344808974552981756595048613760937670162268882346239047089648764172116517933602950970329425749896843510828638720603851830475017575019214943251742373685504819098712803321280023629797180768822148945644408153543528104402790418641378819865528072556380824506098267149624869326619298555861438465852718667242723029146520212109405596365746981546305701265985471975254301794093523327954343553259541378507782828077821422245478542086686192423816729786873511564031958521169107048167061563718718596006436283677063786126322728477005548142620351605153500072235195730809744641020870558968803460986508944464791730291873600652605939424206975865816714041625577663510453173387970437053139927617148588361912872834968067321863090037334333679502005185617823357606270371341860187801753188392777830195458505250977121719252644877727372751393736745558841544125525539662682994863306998887854119218102563922462139051170734139054674833133551560218439948223044724704628693205113276089809974991244001725991460103190906299273174236911689887470229101502088590562507268467342878554869893137832149855624141819166750201131616866619192301344771416890072977523313408886295395630825115541667221605776388475141190789434528476778817197167007642796629131929175108982316007361007363902630116921771352195695552130125054638942960947974000933022909685520971359024796665342543755216230694348333992233657799278283718415212851278879566818507770512386402387616491637290406935108730781305464677427849801053014595830342290381814795056494447088589094198259639958680770548086345829842953090119910215517949154690680185485055187557077982151889942778334640283192041979803522763875026594203616655939420945485279535426925218343403731297193403902081469442244075699358340771159772721087848080919015706483068622522124273650181101230737902476200210693572954848911580292860252423804254266577861115176663147511499851991272185634057460329144368821888592158122226509966519098864502191390889508565771634506745446256324999782669107969027264658042852756166192140764984551066336305685391892637781857502722894038012464933286767283965748277302067720671604922696220302591635968608827535303791864945459113468478445041575880187807114048479992403538913378395148819174704744300134890894620680840259786391114994110514064935518034891125155093808304586909110906485306046956518809747949910993524848803870621888472725072910572803038340516686939490917739101981052619290126532886702721806406452515536522420952312565687915822382310961441761441437069495950328809246126734757583046339606468533661063451374587104395124717915713641745393697463745700676830342264304548050197895661304836124328787350869503908854032158693407602612695966425151193912903239811899471125134773975861779425496401973813370116165941637357481577834986069655688291777381622552409334917382541303659022838971910075372823986356491242580383433101819325585460380180500510387321608443124668253158122397952251575233698690968350138563405967885275659274195384133796211097369846079532582725990124501567837706610034037085928673665838500961695835424128291073555836905240453907254088936714928332093263099145476425248587374580890424235704140829008322353779720868433905765576893935444440564859600899651425989793740774975904061210952901352557478407352153658122123779462295365163244817937428381906559772724874563688432994213055415267780480471802943187834054078459784752347313585025062779456497479396776907669030824097221054793233174320735069036522338585214215681247537350858806803562353451024023500968268363029008532836405388357509837542979189141759893006196751517534663318914598367303901712056358901458200416338213834066372901514453593041999935690517992206886623733304348750505373930044588807473518291969535947122988664469882049998739720991993055457121732122333087481159301318123106031642696752718653898529472875645534939286662642489383818626900757128077913330837439831026223475813072117126598319456937821465475255119204798168923765236115145664178026181550084548425035868413514637100360583984853023163635508591102809274863780652679067121574857763308303942053901240945297268980271170102177430697774665038846782967515340495418003296529629647741286561864181022326677802599239205861400237702252614178624746325194498126588039901999345178908496050616022793731709390046576768223901634786903758520721607055943103196877163394526669787053135320452003502802799747183780532742107006229799356597487850690333284764446845147785078804407731400884497897904112608991254960620518760457237629593165282236154449090549412636775264964251824828675941109228054665498632573441285451685925101354472888754855252494644524380186136827629868941014520347443302652018375372550028351674709839434801402139325327678406342419174480547324379587223604361275787792437473578268901940408933355345480721243885974112919681332799660911058681978571084274953959782333302127214198313374354734079828839419209506929126295544993315726121485273349938905661154459486819516750622585237201426004582743563662528927763437329095416202340065956100059890807811008826204754531908816532008575027323528310496782266454437097165325893038841467023338661476892583528436392108208983695970721630715922289765298913665581404332602668668633078371546762752142549568923246543967763637071796638975905198761832626763117404879926854024981829714199191017464555309960393199994490711242684686833768165581661311314619493225995402535412004591098120850992376924185466328595537251862200778053728815095500656952291938060679739381183323858403798463395260057409726567718972545715100528951615491570681325708765357908947094692772275870801708547967005038281903004710437156668300577707223166259796912762821825051590707512148195218581529466366837967451108162848539118909105692134440301764033665363320324392772608087230329160429193007081910926248640417794721832484114535973469455317511351055858809865544234999209136388036407312570623666220058925893911238957328581997713176477299445246756425975939581721531372906993888563429325606147597638678684888374945867164121351317614657987171388743689715426419572679279999236484588009242190179954079031738672219941792582600955021493420872589275128930733944227095251619562404704436965561830149156167376403261036779881721846677100346401242962665263986425542227752773439722362369802692161923876776239378363467897955175229453328037804163610363394165183701310002936537107539437650242126959959896443998238798531080069604299398446323739488276040338066658290688279567668291099305717686772507452257165867920732608988838043865722606234893691458820124024519758979216204165027490974082116006081921862452288134641587490319389955561383390838763894446073097611655862505442351360278660792981900441789903471904895144324244071515698160380711663834834867470018382738792252470488647104372002003326711356152447622788432687773177226314652734724652932649418687413439822257685390709654103937397258620290065547576963522010565956567607112281189262489016993833967818035225802456377991459621995311556842468010569520206321586836261039937277631977810755079358602942998798902524146728911650398129693709213241249136876934058937235007710361056861936735263714670243867031253782176862963048616669802582859276861220635632760544705848988247592328283898940083476601034769766459777640855896334459026353928151462760107001079489090929154241901003555691601367258388400203734416416218238420904643761629584618682396113110470151921327935951754468397299959751292783494779877831168998859146605821265485660743735829305018131783767651572885790309404067300419671874143741926186399455500944196669014739878903501443936132151106902192928254763376247660957140101705108919887478364857913407449322969920730078167264287727671415351816969694447060238684509393304082639682127736699242244657122227124077991465411470045329188447342730500004623147443934403572715001552192047596506018704392039614154681348583084954085652734007034522987035716976788753251622934228415076642590993722677913947294519541687363490348286453270384079065456508440380354282803267097929750650410377737141367177465361627489692115859912927918288472698034205094353835671294056754898700465666786766482323134382496265779979904536031879497910700811387476991848176648527383482767491907192624789201610773899397370922333774548898466131296737715578819365762317303549556625126431267628704121045395101219672289969689929416752622688294704593491207756465018073144966695839957570547409394079486677430142016541066623079714527924094402427109975140034129849885996891363171808695458557228950259921947928790031827880033680333054041447323080583883445635773821457058845307967299258175900146457502699073380776437175781252123804854574428545212099260679776295794593802762378338578568946697020786095450815021093124264695412369299953316431208961086287380612161765615403168332959594285679333812969133652233186695236630601769062627575692532455200324380180123935247695583425859938697102731479346641584001055035425259176192913743506368238895901820517107092599352805544123645595775379086308675219702578597472732933439770211930677274994334524158391214232291881369918943401628766399663276895690074598031077056878209523086847671580424315508188160935593392428665255305032684908149765859931798245389214384917786195598127463452005950974153242613360492779941156303598824995558387704852114155386421184551998673409880612342954102545327756516787004927853649890363944229522333860786567637025005011014660451847940686292427997566930607925637357526917302423334828880007883757515586287419835392730379115764916340564181002548282933209571067998874944080101991121047670830509009044026090040226904778964288799804610842575136086349090780959624378992934770910036003216989256437988977745609001018301384388539015888934245124244056577012785301656376232951215715005241360489391543741357673205347923972049175127205277772274543753967241108944130039558835670041639662143794018315996441742785449880091190163222797441252119314361911393855505133126028740367852902420088285668020665503793069778232134452034819920200928815594337233670034784709657313062372059964290785107077490881607735661440487717985958302368617092777538093117143277358655895963657812529786643886873511824453106431447065774467314736938393358551773625478838080946281660591445430798579137694349470526477161126497419335692505449251033163597950856666574634096376040168166634061178895993045260348186813338733693181484140744538140212503222758640931638749062439146395463714477696844772440831727126187303842082995965824957731903833666941192332380010812567106329818852178449823258749384722309868500614325112997381368168346358509272170595793252882315733827270644597528695350015500010607986925838072491526200803134519123915460698767313912105644541924110505853302393437515153541424656189744807201745901829853510986613999820312269201996705112066332863332306163418848159452031746533734425399056372705260489336848594695740777071014166812153207718432107070455954900861604359732487541392748110685966237296596861239898934620126766743382622990079049274957703896235301881844600823371452168421733159941125859401474051907585448720239550111883546615748633778095633194626821650467477569436523106436918200490477555677716804093545255299703867877085686100410006194703851286832060758152733429929079039201290943453226154040217773014349906893718228677449312525092665313461650635618028555409978982327308346896984730961838403533843149248106722229785236000140372684163852220603801875501918758056709177132933059885478926421073642375446676640556846940095919616311188854117064837782286876625230290496249085796976962503427565879851723615964250978143622315822906971365653897655722855910139974687940443587180892763925306600346152651562034080772901494591144400055809389983287436216797837383952337007181695873515043817374691227388957465355427381746430352469926971528958066771448421509838837591936696406882875614897673926350991715882165176139818743271688736736980448494501503219341562148881623765584639230349430115827030721984365666001312187191756744384977276360630372691360281730617874135460329700818849228948773353672068458052971359303216385914629559141082295030969943845508064722440618123260324288554686917609206084020745369369479794958013315144633053986127256466057592913986636506545246445401590838656820245805164394573127367168889556827516688261204880073430037065092229801650277501494342342085504520856417230202671368225425035091270951851265788305311684466103101371107087490255230410001145711960411219533243877491090040971238000430174973970214594548003623680301367088138054204455117036566092766275810536421750239367516287354271402609496352593064133416538224162633182595814993904371290082543426089310080220802934947608922190901888929821588244267574655093666206436269319616143823316950075949729026473908834774336989578118079902505461443038886444413187009862039429338609156922823240210820308317641723269922153695975827061509749136585161527322123477414170468439315902470345094552081960486571803390678516938873077416888303725086793055434516267116901282116820629782297509656270082803628021340929854599693498723505269571033333524858667395767565776951869550250642972694228971295616618611092677713926201435762397775870200499736679818048326337166643861202319289024446894189961188243466745130834216219451917633208943574594689465751096876552426233272062968441247134010216728461703069980268461610066500755601615834764033710927829516613541791194501844023999521257464311774811620173870814357264062418152731212367421612417923419728273489149931864704757757271488341502333047735328374400566836360014741097905366450602203987673183551336776292804543575591967238026204155079739508738059001882445108704982697168487978172467268222436570323140817306564837576097151427580278786763723730611201418299091764993915839310937057264740474668550062731499871037026127107476950447084166370364703970752989188127201811612293009169422620636961329092160754998165163856410166777364346349145858154418053483072896958938969942831716270797994414112929068680513523655055956706465429154698954480519789675077090062248200626244805228515054993602034056587776750448447084161987950215192872574117370809351066258436116108891000905165229390560738564039618860758749988199531511106977702255677129133910578550743390322680420258076670770916997217322272742083197139669598023456075713170811976817783149992415171433158946953719558946922504557773587828571449152637995114535975081869953782772642286265572153055611382873213659942726928607569920457926477011300439727407640865209525249013895006921175027301398853463122826752934087879065687322712181097077476390060274482235322493627689044044703767020482719568772955613156611743841098216370426550564087395806817715916091228089428248856688317016245395581018539090771984453999916298789107042809085323358117463308410946038993997984278135709929928792192412191040504464146998522332340893293363366660342746182026124011868171219998575425054414648352589040629599179536120297545579429246758742794898735540877028731793503217699193426655674598372626590312028422230209588176902932068444362273905660011629728665422393056099300591955134050370423240408955572553352756345550554615158096511990561283829848908385992303239304626653346654300520108404686597331907754598393966985130625494115956339910909382944250553373525914657131746617911194494200771997558133778508280492180007442383906424626776216846931877812898719070618318744231048150628189659222074827432007077569707148623959248557082923837012935511501468514805443170538573473101491570680873669002935941729368019789102160961030144027273516917905383751829030250732198664593462444440431113268843022609146912332986519635105857476724660561794266068422382282952131434839248697517358194909631586354697442857446799803450846864711648315287766031328793271245038831479552557154219266073126177879952021639420104074699463978965149817302392604332787224595649889576691946128868409037804163842001563056887345370007538415381863641948451280618019124964335352378146298246535692288964215355765231291961253724950388363764179804612852743827724926890941065604174527365637857938520761371371032853362021380609377105765840426389335520400597984352949194071831067928682172476269296232735306205936471405022778013193865888965800371309875564243351210282210981591846119969959349558991205400480950396392441647070410156905781433680428627760507009488489066258151682340126690808944368945327871416319153955807058282906761571668636473731708901813936234936293027359970775361372443684583981853498190071659078321669720826591113400535744492179055866017542577857246440562296769847363462621686908700459912234548936026738950366196835862817328700860622873665792076068880622858775046656857002704074289268912796334240662751928117960942763654943814126257183294029919910340982979389216589618528189487595858000781248259280298222631535410291780059616178960063624362974000275169794800383187401653802774255798991870951758358430869537865637214749084930338442220336906125173014685665155251012075080517121261254379204308632823336747268824602069950449971409964745996210634588391100056910189901472389133275523648404847954929200111499420639792103177729222807015174354131529644541211401657582985884569824113224826585386248538310533086168029068990248068702106658072535943827219161112112017092469554658108297668988353094185823103823422300750949253415442498009644088448385262671063991151422464720471267846253862606486352024625542210250528185400486948621920075069209970478347904714412926968112705229480673645575859625560040691161879989391580264443947302084692440699221561536224567948453577972980793245056309482959777748498351665413920114445924334797910436798054179530141146634605897744962479842550519572265539076660032916617341264894379289398788115414363591525598033866131017033222496590476988035455191786460793352248129877021406842104642293940399662991447415802921086126782048210799144309842739958444174577140237047742568987996509652199347775798551192163973977994264795424500681993325350162776237132356425311021824847553689705070839030671690491520810886904524960241288438941685724570871798163554984560027842802769065698720712698258884517082594723397794796138812483809289213682644438060982039928408287026855954162658989845324119077305764024908843465316912265891429506454403767527799711524720132552036595951272898279544670493606743065912439877912518506426358849434345855550854169734520988383741281232546946291483842532146147519323731138138714976582230247486243953691652659342611080345038690933621575516472223045013909861069053661850349572958333652221157732234207331265743004066716456682275019738220414716240031513786359486754909516158689143044329055659847640257813743055857117591895449089743045667730366969190189368856439402756599798333271575804402757858151566669779693279915854601480641700176350557332480862858073073414765745423999616816115784469651583365727261209255909635970381595456172486952668182171171258744540084299107972078888285121388113213003143445710447199282623319355150375329786044742535262919768530302785951932741951338161931594791021533337749189963049985698305443634188413941122899371294644557274014695367402939511851234904998712549070364131726406779670460629937106699907368669129722660266374301856632798915373943074661307745430107619821240464642717659396528955547597975979269711354882187427592544448713710412595139169734311536367169902332426349867794098078452291051026771215109448875346349595907733834471898097617127878328488733649041508782414457257725846619486019350163816357541251883793939783054783484867913388671140440663880348571907891985626670345271608639629126468134263680495507179635371547228106990368097335993030810629924150267923291110511263937395141524070683822910865700223306046317752426637764001770560689609202468859995281777867641109699503936882749062466383102810632884801643894833441451867787613677521602279769442512037915591770239471939416259825552515111022068748735986252875728188729667454865031498587978455006455759559901357415848762790577798712041669102840192861458303755050159585200891353113811662532162104857404404634701180402905013793121261034119654530625244724999734145409497323732177865172620367308760741481062647590852991421238977727658066155694233259209947246991427421343417457173273756008421766543798563196606752808267096564771779005365447182193573012421798049036496445657076790866919460893800958923163118423462039927268500125653907183353980502109146531686157801091570624477247306352846715141948997001586204067939651924650978948653541608479675100053394320993219549046449175182625693761629453231251149645923851967021667198037202715023666788686944696536932669947786211696073103338758025993877724073104788974081826780498029510051017651430824494487069392819702300814385709612276643242544188097025753618455936940077066510183915752113836399035223406810495040201856229281974405181526684250391992030988270350392320432231806811560186122870383901277715127475715111796161365615055883448084425749151039363218799647337911544354149117321330664107940896668082587982782059112342467049383928990683916322587795162074708161780545038969058824834681035887913080321739817782724392490131988220555362754716376600548992135201219118643594108357484131368873922872975302446769656528273197988357939240379831246013781247549727639309277826830720262220286568519252158424271839092360830970552771460799067393964045669029111869043869196525826343674718059609802683719255472075386856213268874463961348255541637722480010796441810902725619951387574236247322563951795335237835654421986685453635706502967978308295643163022107983165096688987427621859923306186596872944862455845148136926195052750600122162777692769347025916928506315685866298218902643406332339210525379194887117486817039671877551424498783344480389098419815090145165833926432396732822246652470852008318149409978823846649370393917904188072158810579172668548508508810067457611293174057116054736012524037912642070511037076456378864955072878763251303930296289325199132040852673376714167662810464588025600326156734132771876557185462333924925848096463551833433174263951605788353580667558144143812338269334050288743330094160231208970111114968866999127305634770230035242842173097458584363602835340268121652372213480337926291973544614804846392472662737665310498645587142261805938750971506475205356875337245476730881271446589258003635052616256993392987201881821729883944748158516287411828063126972745514285036438641827702266298668649611882756781660984621442479867236063540783970581754776832778270838274372969612255269839433096689379855202943334401966855386109799327147782156366766299653046628279421966539813473872043337877712310058287084511056127144521026184792784269146765577877102849267112070121081763216129663791634782239983300042319084684060616819478325168506766200172460926464812584571255354935738725782692434480008086191503866699065051999352562942420127112507828602124009152349221770081041501611085053706016344426374747139892780857319874695923664749997527234579924224182715464311534307745530067319456880048821441884481991837035704086471653949281852717178049312593467684799207753102044779972770466511371941487419721348992826743546480914023578802729389289455634582709158249233208507383429022448020912369681968108318129477792232633682181747271952152684017031219385861352373446873924710769751791537232895178828348262118910036646953213685233185503123214085221371060121054334258969169680965945746649493685075669062863049328599194653368440239448257779742440060289391102324796016119059067625053371106961713296354169540445199508019132816777560413493377913195599922120718303551322487140647813131324964821084039977874252290685573308883903309206035641773670726416846642428237199099965471160347980454382185842303460199853971519388104416074505218514507217139934312370968645468920234797391904038871967537519964152777405796689305482161595193401147731034912961204697768138465970838093116708432897099759671922172333172836638744115204166326756183823824601851126871766233146306309483438298852390360358474853612535793536445448028665378945734610618336385034496576157757292211046934630794344078727272482859786526495267567999741778901970644602291788865566485650651518581067375274470959226416012557977061289313615876664489881593158987337532128527857740434963010377628147611876414928947792743828617211122584815808636420801279922714572714651898010641997184208943616924114240403794949617717484058329623236030139844033411331331343822292930988542187200722775237339214156148445002044523790642938015350579072296689788544499406068384419463912810903895189360847768682653119874791466653830716204862176725612608188643971842522553998007623582498465387820092770381459898135375868236000219507667517676575744663533452040451107189786953270756248979699982479622498225527276904155079804447884416248386915996957158527015693279203805998826353139473271668611915490394120888307026861462326936172912973023305502028362738978266204018916066996691362610726381843557155884689231415588640825881662372642873860642503511101349119234544278381037389713618007640574000149826980809280240512182580594375378054979695926648548870802712543845929736500097997935011221069433933970144235540343192853417228414762069318534484834169355728880702719967121472244695791401742809215993661882666049813500252283278779073341606903554978362921138734342302781039475593520066518336121083617894556104018514008365317907260289169752679418647435871307348234095124110273616089613714703276411763365310060686495225277779156360160512014268259576345331685038530140992102169050488795656456570159563421197144477049540068698766254794026165114601609873525462113836525193182015030797147560997830687240087072107125680864538502196719209441505371290733226138359291407014722898097699882512769848294641335596678738465594855123411750925252358677870066993483047490157207075080976824545805191654660049886274176196100334818228730070699599044337879250939431395060053185048331196756728879695359209818043035369964820947901935162537524442351690219420060785392726262057108115794271716066714006543172512416454121188874113501627701323022633129474737327722342711525832041213616952646595229154173474418023818009684501744253620467893474375199393570068414490141141718633723063759658807972891078697654949037949094371043608392462245288635807302550023723411373800800033629696564991640287325659874902161976359711452280218464284681372119169031903081569904467158468467717072954618312674106404892029029917123304476759478492139298927870168556891500415747089250419763159706253633797633247715192936699208345789261310975627971780869483961348340278404019892899331166855679878967360976002202481400547334100227128633510039063504498673560894526637738884078762935911435861432179525845443667804744534498944809789814065058636050150786681005228782554645762152549436631248619304823092364562367511034354013769997011738701700019030158023358643231300735716510294971225851191393952213386794022178101180244617487413679475194974118206546537747908200191542970926891990940220132163762687373175993424403189793951429282888865132447878627600977879407492729974987526720405387942504169285207547554007557107416978353673327455330790492664317039306479633544303401696768781461242572942365308576212996426161919590108665919805972553641617348849041615864990784110412236755929395331106625136464443175409404256051096557720696992447854014361243693042815231812650767869433927791734580739846939436330243677703390190893486109773742934431221119520474903776698795582951763912214895998453665111085866211222052637582206560030314720188667911284144069322115548300063426231326743594922697336444846908936249138551461883554585046964799214803065762235840835497713298526084660241605028407492841037086806742241319798568214270479807014139638766504549177631314981857666890115808815763832016360376478706867627136129014540550724438462821865972369291152313750507674989928296632589980123436877234307553139458139172914106708629615653417958564127014747480411274544270756367506281867013559515266389507671217697272892335312240564733843705997926969388088060981501462925792692657434953779449923097097377800459753863113331043319968539668413716597917629918121792730157386607899589961389442067610397334816763339500224203985685334297858427572358068348674888002674592881561629117029791405927194937716068334987758849565671823296680732787941669785742922977220582187846536843540860772532370919278198766827042514477875361960708325173644149899816651192128573424644260234391256104157461949759756141625835150861519142825665731771127048751556315284106910093694841824268725180915712988771290221531842822864796635936672518929708907219945961889860645664765183836452126319435479217607351580300647435788079232608011547707126120973711970448281253288868032867106800093534220732067997259079860798676710388004491016805809573247525457332130831643126108763477012327363404418552637202561524627140722389269331240575121397418441079910864612940384970736181987773430943990220246810053241082809089229484649011205259580929273797071978987013523722488487143521937278281481696841132324788619808422643806628052524754066176025381434253875043780308828349040018923219185353330351941527197441115959339048066441273625540251278837866707839881351103510518740783020553231692627317344398736621941454095787464328927342007344156799834468984837995730750148892238949562454953155314146992601070382064868710931343885391161426600904587765461297039105722107094879080566301053491875586896036473861865553941653163722441839243324860970348156237398098753666039349236258262499274984327883195679050474101988378159993304578855097149874933079035261265544803218764591777741350054301016031361809600425189475233233010035600319859030329228125225616904739603822925547349234262625728203721877526869605914852944537945674496318016972196086586598857796461564828766385294868073404256599251482454181325485899900903975207123631140851160251411260353053618884451933348527074602678090108480256124706277900620180493225487824269672791157678034088202074891027525847406165304982878975087070895183524064730281099518766997217326574219606913984769277237636605679641136319091537009361101056158517805881723032404698826416983387763027245303173160313145947245192577864478499429605153704835160012170809661683227763755277174261486389563195811339151227915119864033621870124571476653391013864183818141898430286737645971392080195046435459759268505850068209398321174663930062132126169451833640430990016604602139041160264989416392539903002747333987016195882355895092308420363900628926469069766475884850627537036960457576215543357878959584332537716091441553161863490077883740727219604497827760045768089447048353527263120217007894015537344599595135069249582303662530100976517959016444222096206006086702109353799373266580769727463493688133191593103709559111395313377134022934225950927087971191069962315360998842326663262008389242860850452087011969964638284255492919738093048698291884505430036510337149555089875680617420325521618657036715193099774713119224277841391913190224607071066496484780961477528976696825272799227958819761819867244909415791733521968907301218295210260251886102457092490811546373511550530223742958690101354449274677623420877427033459523361434851628629250498675144948740479632957732253941261172196916093903470908599076205222982637274758526886130336119194714266292396397830522481213859909581877573468723901342814563685681358592879783268459288377910117234535090246233253766409666470673055652974999281090945074710399614482329755747245339269509824221023212698260965896404927636365870537938944950073703470171889995206346550049330148903531896782059596886095719093035759968931537913122055615797001412887605749992335425181034496375662699460852268253428910840241474099987218599177933687813368224165673836325843193933690250195410396085657782050366733068826641331854777143323450095104138249808452623950921090887568164834245502631034607655053676117444797293826474082643192472111618296832196675295554126903039338329848145623299424140911359451671653919383728661029885720674999473026264514676952439419391703446805861200732669180929688336563966271095058872221330620687148024369732287167641903537729837785615597690734474518627029503474433263107300339675214320837256452341810611231525034610102181751890853506777436203726856851976176659544050100799077550681221543563224792428852273891586645342636395784389619534415197786907064009082839455798248750316442561335223311505259832817454509126369731561304003355055163817274961875432171395896967154986667561613970432168652596311172461094131133447399821209573230477794559323858735421319986899088069356341639752101373697667007367465132247989174219641252483795632549946774632811569700747464138712748935208805320736227604130753146121056286646374175847594582392353211985827369480172642012768424304416455026538879178950010214785548239983955986358452274904823675777381095363242672599809321186513356300337345778287472032737576661157139871813885988493544189670797750649110669917963326303762547542358078101973837450039707566170499594238687995667066357686421874355860342377547735282993365617752735184434256318695464009036750257272526416444558665026380401464537174298667017026787717977577959684494568376040818944447352418723559377941805434993453030812239668125388650095713595892121312932939834773990627094530061100923482333253910743282226605973482321472129055871846072188061442743365345180350832337562451530398053534993208031571429156525604957140657491928683684696898317148728178034079368906788356791846811700385666319881513130913039774300297835608718014034341708405446228803217833834403992509964558386998260395362544319060502435795876263364324195172260862081287675456925483532593242015017298154660068542490545071764839818116208603511872015145479653737273925939959838771807059295084754632987905512418092606211497560745229202305214952145221697366260833316237636978942751879876396850863499468952296994900470035020510344424304416605625135987275637391888729232096900720677395014598255054603208065854405559863572857919390003910985770835326017232651070950147957765201033658121759906013098691968749449853758930187052317565597971492548067865816680833351070757105951623299619959201950382077465744599166060788214807776865957403054033458730182262826547159498343835489859038748618026880312042180805716751389959986436200506148495131576338244174395215148456136448167068554873187107247977305862670145464396212403100056717359367745968820026502204738162520616928722215307615334463271281319936377255030341811767797295010048932963659869036515235774472111390433219669901008327030090265645865474325214519713782234187169572751148620648575818574275583259747949334262572509366781591568050463188249579544734693408580420898729946832756470037476935229615812908681675444341581864737344828351572050701747244145285937870824921484713035955283756053206092426222302913099404830304420246582625873105257898496665625080234763478344201032120193833052399524191391865723481209878113981249848719251377156576388518869314335681846377963085623518469382607801691756750358577019670460606814125787925405621235025505738225284721088838481136261982017010244258875822836978643802185165148142862048914839418943352381486371578382205578976577009805669679546242670274699469556395806612514762436609517589216405411190364487674300860686232723387476043107368818957160602251057026168998178496732859587188736468286959834210947290620842720947010813510491972486645362657207719926597303130618948186012360864910205546522484236159881909038269248771685298963103846394435513314567411297679805214199133587691200777812106393285453667181389612223463728720547824199466257676997135092714409971258115370821602404647475616103046346288911507414783448593053321068814859881971620379213713063265333175973964474354839068477567526515586382844705952645505593697166532306277624610526809029762134030580042352773667876050316323669902677991707928827929727656494082457494787708921898787486597656382121364586367284494710347422245743433999522578512159338933022369676746793568201336617793007522623619553070889241581441285753734508440288156276436743373043622585180867346374406030565880888570092970966013543443848576332387379570957019435014656802134833548910769179125689204094534779739183990684285127432229474111155422487636249390794868628982109565707117496710858929616930042773219957170028994559704926776342120912648051045560446339055441446499756815269564093028553537467581584546075632008879278757419037765522841975273107967076073570592998354728553472294542569269815729893496764753542510102386740657074442632141130858243213405805595780112492453160765847611305325076253692289903816341119383515535452259351868987426865469837367607088206759875121064410968407167357446686743754778759445690781514837762888639890151760466890489270779005936491595112686930926730652714444612873238340577275712536978126523410987326929749765420526028269033654149901588872730509023647681240534960231656301396318698283157904406094809794516946108669491117168264810176394997034990233647916332616361561437737336316113136790263417730930967461728461935207043923232830525831959531863037189902317447652331614284103723061628975789288644279772907315900223499272222496126844359135138994399193062091539234694280422538652386024031934896849405424010407370615519071692433138428067537772767878195451598406693706710143237959719051783610969165233285601141124400420327317179198097350583481623132340558460291875687012949922429854187676721276079913781366932820912024899223472908719955032346445042986506930782775150244990721952108161058962047607837867853706838286710488043435638789860529161928903604028786343130649085204728161677830062959485718556983100254751316283399017928439293363858530004293299651844525728546481548526174184018078877346938599023758297423311373675476743669980887838441887229101078379291632869360417680187867040088429097839341856335619460160690416377594869126519626116590613398953361862003675667346805125816698748941538062198662274131761360654864655915451456153450236656831957533634043330614991182773176305366698193962050428135580097710766799457783431693908668502401546714017222781304481159568252913570794626133268636054937483511008300557067202491318172246053363638280772304151135885888731661366450894047769437168422447678643794799147142014766630521854326040880041979741957018414768937479805877187036988396119748467046953257542809629650026376611504676102046611358206069564437806596776630274457555264258894295145886176805055535708691484173485599344636041192625119453308829490124382255749361231959508879552373211870506026249144794363561220927499523997563206834760470587364636467636002526417614859153733776124591959771597257712538592514145171502751821071711560118184247386530104806144892932462998465167792343365653576384186266601735424612964876737150663779962243348096510439275687262508296632408902441049326551950022175172413623512172404318916025189036021378318746182968413073349428119601016594786105250590209286433568704182998273915026539960931370460614758855829623778428484370286449465316246439258952291803451360122723058945984219888271607916822164356354480622641638900148192751292122530650375705542645373249256736564189438146204797157152582393744186706456705063010099077661559170994602821717132817780006097942278722397807445561033857283447261352877771812223937854069445682851288676408636964099089706368944271824041339954814593926233175484080577221309761508301942919949430776675196579695448098264437278619811846592188799655039982829790756918984220144784527982376599924336840297419174610884757991594635649849142445558235427022726196982056310176219729358482886086688308694557028761243313390298099748641421836367114174173174269996683447142905980087623384995983019382500407084745618367040752318177668476045268603603890186816182023651455712293396538003049105757261803394079276763929313329554927398768307691840367530614366647880421122081239049173460232334307024837782910577452056049146189275260448028310111494349783119608719748980783430652207082740668037933593373655070698601645815353962765792929563409718103438220389923257793547917345819471371550733410422456570874929683802793800339521579865564666703736428220846475586406763373641238222979899894035138617909707769160612752600196094062092009225455807577503346339852676523845624573839006326533120597143907579797304678325166454245401219999094563564521431892757117696028314387300084405734319601928249429481231923200606720007464597922998796942858168437256136043752251741037263403834078296272412831836137437608463215352612672797616609061598803991790647586833801247137068539784525583720947864951321947990589213019692673484578773427269542463114702428024697614115227190525818347852480843578523553665445361627558181223103211508659258635161954489144516110371007804238971113432675721099068074004382789474046106933193493142209475002790964343635354447834497241320827318110610994278561876227504639244356804514673697104936842457096659541994136750672879561452767576641054680844672220877274218018930223489038667548860802088524411619662419089499723673996451374381225897963346940927398413371656367383952820964593988460576799372060823069553093912978672625143226356823379380671815591568226231434191634855374517851081513352347401689742353316265781740639625376934963749353834497474611929174138412049554428532051047127121546057569437714521991469300830996338657021463469742889926441187854561362061042200966970651865056342351384828254787998321338256537504404164642336013993296810027000137698913249338918348343918666437612764191225179341539566415023775523618135528479795163504284056990419574674202828447397242433699480349133327124957040384435060267052233103803511760729750175868579788421109648466520551582139966373103870701760324795135652086982482292099765102591603104298552210831328334763902989220579440676336823611526704388695741882751230469885693516301041660690740156731346015921999686816167140739541137080934987979040942002583820827010401611905758578049121616776000887600022366331183103952375712243661607666092355938560323760964838437345733775867003804226075945688944366360283482511035069427421319482015553891014601417461060637650014829691605292068054468665617818976155612698359106269779602088478147315344124867850501464077131420363136025927183101176508547978898915509997157809861011775179902280581129117145043269543621292415369616066173541364184186778054822711024262161403993606568897653554085189878576980892179518973342778666940643908135819189884875096644414176597115900019214587179091960507852324493563058718461339141550444839364856058377958275283556927321134411487131194411955814364161019336895596995181993081951829705983687513546434263472859248477535597943685485932929348609996411335395614049516928837142120356612643427459835579209340753628377900821821943180163264345125062168614877485946771478241690727997632678375688741218088899340944005583085444053914309091868826987760076597184081709530152830572524740460088322257813379394761352055993333487784909392135549640432494965886859785503003986221795986362441298364611568498837767863151469730579663124430419395712868332996730748139682110641950499562871477078739794137614093350590101551845324368064952652647486447169525042656426585161168770714154258748777876783996644667582455024773731671271536998365964823809292535970586227450600364958893823236698908360453657873424619509056591893575856652979164669390179551557818188135014088669977288150895552780229774503467460830549570728292565092013979976098200156215749239735244287809045616499495739205804583809217221198848079900181749082967730671954270926440800750890549105173453100666381155532764683661605703758083869741670185678524647957464570210598227674264124678774437275496556573597251541326692907868687536405931001494953402314856176129856326614277433565315083061769525177631502477508168178949374899098305719847526782215607083318807463461790358597332515086912834959996950229886085513648805335060896249403748555641999632506166427080377556570479327115617460738768033328961012494392482947775267968777849354037894892430903578533928021527742232743016351485621353166287645143291688220950688758743894514068099292005581166945786335644850872556340841409434202160119955669759643536677802499348833882973767816811898213095350318607883127136164077484145787214870177311301329659761230260197409468019736594931281558536216456647232190058033795327869004404132713299779594251008147640901891442330940129617331797519393518992262679025537406387555923442428595855229832753140219148628851669979784820394087836019177677657377303728069298157818111596029008213474404907309631282095815997702766466305657976508630474303340645638356789262240030661046804029671027795957546077543335598120303640025871350129737376451426771218976890859871714679873132164047521876637887394152666750748325338007865560464482335577421947594767889473625395605644448754673836059275913906566964503473792562006706663994774341687144369649155684051098738274096800974576153352677922239384480551754896777202238990566362585391155352404211099301176744322933944258952738718642502133047459404490939926358090227863065034539919403885749809504703555762405711281468387328653830296809464377978008603047268835414218410684814978187793677576836328988502001304074681412076892251295144011164827407063500964693154868263343970091317230215825197098031614573623084457464623518399290130710270358586463727061596797992159965978767935709335133775422981450374170371113849304080168080107801008637734866318577138212633572219457740031384253736070414308510836589859654027211617455436101067116791123448931522094729766611633831548946896866093130583334089862644274694595813940302562791625546693865417154086775512742679637670402739611576346693131987783782552968864236979270339690055193140714492157149075893992461142196306966657271524757332789553061647892974625164265335780757318101171047653592211490924553060550690130528930956904613713516988740823101119344722393745419601920053703923899919324935367213177241876307637355921855755538707895468477039680044588797787572707729552399350789604260339175359554599555416686094682080113381518694401971726892421807314616696465638906762817345945192398588672477862218339493829715250817478491351611476789885266248310245145118869419535216951198968313393350754631365159645115708107033129778968561084370030612033890886698620804677674404494429726623651530352273715364545862363630501290356811118527222275778050205332715038663193933679386014633313894781142385059676485140040075580475830328687010206610334743686795285000297379905264831985307409496500489679663922983480838160965296529469760673478156261965933633559311257498116170673790196719638131284102408205258824929506441512913640761927709771021383240804987432024699480967109628178779387089210729751252480651066290074723338071356404433138387402362782679121187144647751037967866186385285032401206337609303374980825366060228759375496481460178822254301297237572148795654623252575119436008020701728901435147936700382871542630310403751265525293181389144304302535636770262696315566177152422039237126049809190452671107011335977307812211262929550923210428421624033439608249508009977591967129345968717291005659892139218438747236975546417280589041865284127968019743378918794184942791734388614919380877484171324075667704723287858726793996899595606177532840213232041966423122211529941652439220890119504481337076193577477466096752745841729229554167481501936733006944048324883048472961698365950641945341718100732005929136767559171013102932810564102967414615868740228747866930575353092013361533849577304973474386384621156726983042942687826036002345035446433057838361459077564498303538347633885919509549638316543057259796985666153979459846190898480187626625994531423983665840822236151293236734828656115108794906917178020607273019852674577023189378304342375359640251997433221921730202985528173686174036912204877212663258456024539176078798769424285053431185177590257474206465550282029933577371262339074947852600855680441932766298665656578232767301083902843949495791552269521281399770939218383805001017734729896092819181614321736391005140170768643188758470844938400113249362434880084771351388989805907643161219239764842766973190488065996371198011800647446450992858542435230906750470472859404083826685724088930695315955042500449216418638041349999439462686362717277400998130933663123127172517000064293107308466564346850910520735740484292312444900162397934775462389168624136844069002993091203785929508956117522982299604106048268560740416974841756505761158045487493307243056864667125656314289391145027684651046425188061144913052798584290153022077222095063714689620999170086002460594060935282510766105279259864851462188658007626434094416346686806225242415634189966075888617505189921318293695825390850599191754649394489589387401971975820168021911365558487075491568005753585887648373078438230408023826533892598434871301818530859185995227088731799606499532274889991768886707786615529389309240567104725600494231200808769666883102924542113029694690102277501295034610599009511483960362031304914578455241570758069255514070940911245861262402875670436112306830336168785451103340489918215864138765171115380113710944977203303534344307382594201367034099248011180066701384409342702449266752007832429474609087959326814074280855754634402037213316412156596288123559357530809789369304495571440714085898101508150762299129216366655705815582936594699867047697204994126851822076705149463687247924673438639417604530054160074127275732335963434061730715482786194311576776834361591566815077735186858510723620149543369403288208478550326570861832972460131534116492096292542890421896155018718215373494983356382360968391292628304599332575016273380775153835614205820856048065309512342802863798384588889051108771389346801805714246963723582674539876575111437377094217917948410302901874410321860418275815840644841409793386447880515386964401320390112968318328515233567972170143829779141052758334320903760201959786907668218972726261124369732780830703036799895492444200500686166489487803244107116069249892025066760788397665247190844048115312301237313225201374938812373036864837596291133220323546681447645395544576924252490524555243542011254980099126964375758959512521987448965001988681157131752783402012514227160136958348774667798998936610394630022506969972211496973599051526772037706916467850151973695808202414683941533074327254576590168262629745813609620772310085923469855590296689614175943746967014821601949409154709757587314024612600414751036392803276165729802354077580450813176851147505256838035508690978283111497282797389540291563871396057046379459160601789899986257240108515961071549260907666619816232984509031089951771402920820824355974515483725474864292219330449506102527440276504003596147523061655544674289719349464736248881997923848679041373991888430876881275781543653335057086487191651058172174715092223381370265081934708052556881147218559182405193813746317840989010979544020267004983639910686924674061371401237409178275131020442629909408854403720162942226509631453387837978538612874897867041491135536529834900098642814540224817024197295340386619658583757016013874473552813958661089098812119760367485038657125530009037200895424471079824931284096415509275479763536855698152161529134201352758071220559865057188221875067780689174454651789780999927985674143130026088760782473823028183773474947149787238966662052412156686236806395282713052015799586492692932736415564350104331193488393011839293115607454786854848909541910403261151128961255168321568598619599317769999055884916837892128086260317684007691655650179210400713783871139424567780180863171973566012987439532186217808779213867645748164026635186999851205542319240544135976009479471021967935890989996590925635537538749601490855620411478038901763422536285172294556241294501657578083628440487855890626365083327327820168999735531726180958051124179543262126609080697906002942607067346642165130138017421834216005500713658531608115807040110591760581326207335025572813731013354236475450861902901926382180768716738605400546212528885523219397013398323323242857089472391150075563309526161030414100674647976081036454544326874211047709893913230510073073362937702023653156498749220845507483111652246680098422789388662397304527629362277791253496681143928028224340784858302999144469373170657489736954424003140240232696724640189347284188228923645837471563773496264963808877072766355629500403177185191830627615662569904593957453423216203112807143469599817564708248720734755328518538800983437938952886392859666911033434310501047619898276007473291694095099119063594342321305519520264858076075763444020642988135978248150814220491215280668271796108542838721986204853002422456429096047662521335861050320837045462998677187307601522166233954056500659636718458789636640633812937649440415319669973947164532456486563906409205525979878966144915792204900000452814130582630424418278763068864915270060152892663741496305395005535462073888584356570892320368656320189490937555817260903344518871254408004410316080730012965974005324165825914986744646458043909801608532829145691870986626798434643715019631642046344363731639298646461181381348625008971097235651959339549175437560546582256660794461464299367363572313073114177666396671203836828742865767864271060118639657038667334772673776988536041497278619312291867271366390975324537238578117826547167113323541445275610346584753982504896537276824922651689386442817166320896515370702838546912031863853521732055010758954387842928035874626242970851513821275411813203561129249452911269985058363784513525884251742807629275373896105317971166563019285640014874797378212943937139551456246867257230115317640759831975565736566929314144671983717455908803499984205496269914003343227137599750543718020663092925841728091897420826943490787760066539703677887484427170094289737600328740910954394729456679435389227528124971470587675218256080517384936072799776359366554373648840036503394452142555741353162009323701380005091919185549807369353902029943424888853180516204985649477333887525371388812397273741475304438742965800151061558107826179565700880316917656755220617077204676234573474529471393515208345711218914051079915560582675371712681965187320865776230415374558349715622540001212233972840146247610006434766400408421096128080386335297492462359969560562236326096715078300728909798299985255850582332861701020124220482433393973802754786023468240024615491434684807223381819478696732295738900235150138782528552361831388790728058851559741715395651223725179364026278491760108036448217337112919538116932182341819553652042281891443348144749313783191295329015176691921654364391521879116892915688372961199581417984230708599871431875945489473367591448046406733475537941031127926027147977231024299322782208000122710054383807939440346034703239098519609209212927948942840696783025130130152121547025876712560553251676719563133796360993180017922193324576212986447625406380224988123362594641383693479795081216005654243193104311535934091499927683217216421785888534871021591953276066280699993537726929527912977400892828722208453522244284300235168038942317685199167410372062140671889509413688898758286518332307651801100745828062836567658302871753707520152301864320178608041576947054954210586569865986697797466196748159211372316828748983437608667585240818373443754553047834432643756493017536852551843498931952020718316430254358598615353641268897576574696318539804034213995997460837367948511185272793527688583365655357801342768738224122161821427794474172935199273122828782690390991977392351253725357843916801243697641122370402685957432818345778343287387871616778169014226728950661362812932501555490096145619899148668409011125482136192731821059780641594240578695803822431119311797118892084368163027895963111719853524691672242871132987302160941901556717882680183847293406412066329446730636608086716041773388504271184782803950913119125642992945324579715091678854330143530050368536831984110966463698300758751303355015421296310088121782252691063861239371531225128700673752723204700511665673129883502936566914367487675128034836585017431014211721280279717998572468148079625895829182601997342202758805082416753317167130718990801655953301963315205428300629881727847080109317476257387415478878541045791987116081669016682677513428610829013242423653538090247007867929785366298608961895033149806565894329954009832903646074104913161338944761180166888598643737800086419523397599656689470208537669344526859141478516947775899762766743452139842013041536433059590535043311305243419900610620883696886945065901885766331211628941108059168852124499271623948441914826011546740658499854181099084769908521745794534740051822502854575352092435815950230499354027873493225065383230546099231851239218724081870695396827258729973935403234154884258750357576131597710592728293181145699167355301540264606127747054705760411462738753855821543050332592422447588866388635074464475425131979249479036685250460337511813002878602534154277009651728547055567263538546295721476669189001020422408794040477029159194068082088126324998529401737023228834036826877505566728508710106316726795140940655377992519410470040378324105560281921418157568625599547525517495806009546024318458584176471820717295782908785782245022831445124432305539059924458655060701828215336282439793542292269054340271895423382251513038839333796838648630296657825345465689359154756990688965143560398308211179124673481311343734931307333904665062041118914969010200494038878690278943068944658953428671522141270171880707558419711332292972637150929781353315540924920209821371333706535389773571174707745791328701419137059873289116730342941940535000560286348111671108810642179701243129915098997731807981272286415000948877575925376500117120711144726394376604852383157374079970789496521574112173160121582650702968166138026130256185300492129468994658789097712044395289085682288559707985878419242995375204559964736722203191748767601503855035268164891810113904324538077818971489677639245080867064889668834788488023673583394877510207241284022655928440433105111229845428225840165908466375057593288258584072463865831351381327830946723617710487714172518433198550921754510033142243753773549517050133081217725061276287496789245846784692989413321991722341537733335766976592854321200298826193449126041999275528278452924159843005050863005922183885322673980386542526876328797461221024699550111107016313821642759926272144258000856779147162970537641331803157885385282311442411404733975555561182745541085410103907919807758239600150722873095158500401626993076557879028557411330086068691681948436693354350605163515462061440612002034903458541897111804294712138395692165940255940364316602693495800931508811692196703214819362235998047202512422407271676559928709838288541659633500570957437301369315236225586900860523887624015595215931419227262926282143176659391046458064285480899687010540772745719759593147148450356542978510382338716627384504431815050804686042962354097261037495377949727938156688722348433282000671944531278863797321458037099796416361791008797865383506063898633073799098821068648983451639808465095698530827805215915182080942780769113483467593377888186999382214844716264259978377872594746798238414324831677536954729405457819750408430541088882273211268348090678947098502405907429930991442899840139473082312383638632142529358999542365205899862827047464660215120656250548258365446661908923251051915840186416329599047618412799842675319737803933799330197669937842664739358491388398148379323710890258896302502525981559158877042952120550817545735267698190080720909385914357135513870033081116325963646493055150180523001352014116422003187502084193829484582374627979609609657130817937695834081377053638935066767043959355151741094911723409318066386189040118010678295034687566539227275209059799643718908154095454185290606737092740289836340557741862747082383574414700152887322128851468420070666385484871638781283211096580040016203631729695439509824485041201504433722797926866131420643702231271345138189737001571062436801242473204029740622468245772007687125558606993906329150681510919707770179297927180864732678680862354041838627459816125613981702700460359209852936340060496579431449377779902730056656502470797335201079948620631882315889926518938301476759654475774204250708771342385490065684075759995405418171590746201657130968262380640162244247005304813084271159309753291429261380845488499377721459695580886749306750462564097707388905836654799045935110436937207024357021029603987040150059824345160609926736861245006430162800284164416450112548325856328708109977346072465405460744609290964430956887306846263321480474847992885833419619846490143922655445091528553501197093167801938369573522838090865842617289082691751890619538230001028565338721169055576608106227172867410008975490753912709257014167293656347133939385933717496722389551435333236568855445309440447518683210478907355778463709187875066452133052760637542786744892839584113964289851535831432333032344698793249872108166288764962639285151433771868788151297626625655063289199511495817588051548194854915886452248946169422276574541751252369341458262396121547950475198774503232045269734024252481001454697006176978879050512160281758521792144200633974478697249875542860095106270786211798941343126914814703781329419618236034917376903292335465735677533118680263420163165023091665617335678982731641668848800784067106147490887248791313489311457922679458557224277224866534666999440137654324971094924525244886498760963949857241299678169035944690771038142922485352922733587727706732294442625830371358109535466073781069117618205141827941813719027199841653786323047733183450184106739052485401843329263491093081817176118995460834794267638767916374667650769016889709902570813625799318809229227259572924839697473448195416118756818166826532048709281770272768750234517396332847319701370984090415298235710596569239111004432699106643827958348377992096432269632210112163244422842189887286150244321292902438712996274833624945763930700984354438556517926970785494174943603520833677955247081768900388391344415184761380442003874914012856501611535669873125892957439793069526136854219883905115714322285225430939574758515664039382585191190889987932200127332821479438377523084820727186102061191256750139260866898280347369143538107857129820338315763449840445683572883347659167258220336461304722653957337488219439050558356613634146066730576418094585430401407744671933763652115458439580965067169620128612894187723560935026575442249137520522892723419821529784205137170760625648839358896782597391241658727091699320436714370856970125598345723238046691974725020071430807201509699327920926304224600072073270496645355210130725467181599055900731794146121225740980538408778914131718491514994042082490438177975704105953864937231354091973410409639372813515152641533615056114301297785649691472237257600321121013761070111989256668870375986230955065104805690477913924724119177551339061323724487555013496774803166979807813974357249296802650145246201457784816866643838875334424008416371741908313794560384849368727638087750404892669195868920088977022234761697482022172015299729589279397463411716760434539934958470607073787578035127296996867687436433037142097975149096658425740660326952475925493669169107351033925933862321869340868429480837828226485074933699228416780931236504668376527259867896247731821794793163030224656029431649184588900163658606554673709379189829678763729203030306693557295587524187167506363616062776046859963915912774942746943310628507073199223035185055439922441492185959721973477841701644985193124840157064284490537995695790160160982970833944604018588726151183616075845403384420664519419873743882111317959874324967057525594808994855148455249455999212252142213823077881506899987617419312934237791116552965304387348473635692367891047237945364050738326648355875398242466479210702815187394566910571316137330624637004501854594040938772091430535997813022506914594394677120688957775674819423484184977960543370510334309050129480404769494785723918010281718915939637555267507718592737127464848768760280439413519126593864690591986618253495510745568863925076384187625308724207639819420402446170257737387004865679748971406376182118697025509816127488736231655222849861929448090168929353329742470432866221145913736010035370940603676547878286995035507754554293744051162773460127071808898898278539123576428610276627708003600645648504494728739596635188809699484366881278969811466936346119724520716371637441934730959536860349177934424645298880041198827266597319868201065014479544416429162349475881160532146177686860518501271005683054635589335732563409408901386823781004764353091395221289825773132667553908463289384222385016090469971807846999957528763638767583069252613693648991423385728053884156792693138308957842932938362741197884930463644711751875400409458404746470936037628220631187407218165377879885851759343355227237142768948670633730325418496297023412279870923598099559221685907429464618832832876713660968733949792913623597128041303952725195131468572467685422374865851574350529309223803998730675193045701894902033835096845094149012675171179500162778214811107363037466211777624443327024941002209005743772549110800404023500850588093895546570013644860120490211340293028302350250201169993235355312160672276103201951155066778254236102003531927751801695853373409720783178001080594315724102013354752916122133092126454222593365194893034949317678175211218280586524541767119055868217392644023793661885433139826678806339476166363209458022542913425728171100721056514016758422766155507358927751665548045613888993092783909658957695481931922526727144134099617681705001683867259291453103101041659773249187670201930257476419598975335478517544725931615940443469510712624116884987939633408927126818221166421523128789781611802524268125193515320368775736835144026218665646017346299050028458107734317607885295569031245183263465798686522681918220508063862780146158478403410186688852036400107612220548629563041212863716414026716819001864726497102779479902517142554596575870186566425656424323072516865111501920461535629931387340772711900138437191616312557053148691707607860089398934077689099083730487480173059718460957232297508670867611520917395701602380823612901818479440873999686301816093499299028959392315099139588253504046947186211565485522081428168997005469454502678129680162909067869929749225955263869729721615226254518427409312253848687514172049282757670018251402579089158670870725419080411535810203025011516182503159963127119806500848943093437276886297248451399869422188001939840031240392276684773178845148767494007812769087943512803558658005881250510185610965625907990077689119097156855036049137453436005131314106433373905987303314602220356688702883643078526096660485617299894780102187357719165743831109456083661143056523242101029959259015175003375517216566710336225122291493587109059494246553847235815974383390069835286230285659017194817485521136876403314849516629105938324057174313089535799314556333437557782909320098979869917070617941853856650622136955828932089280238942604663157328904830208864068394817017184709759110921026790238170662961753688876604786674467409200506154928705713435437144189538189961912087314727255957713486319533323248609015975755471394256539339223785418074234879427733480007261338836988485900669414458779678168141245586597887217140292567557308665301180673921511382802464290901148005150209269900038958745404071634490717615264865197858009310834432574229844816027744836284087546889460736467599963232766098035741249596948911712604499587946526104519884785861180307029835251994375487069967844838218459042579505521715476662190094004616494634862623857586147172756108511518195230418586674563655527977200335809914776885896114520372353342398036165071543187982874433256834722531147214015203014054478637694918792269368539881672713996381055497118488055332506413718713338231402489231786923044907021395725733240108626920444418891821568958450695525794677600161904505051160855396492522060750899275551597500933132463268428044531996782201555170245337074117024335619004976093597423382611635600826740010219914352029125452291691741720989595995026155682000985871552220238226387728091953293490465721120106208623422140848455835743236748793592478462714740956652421774717944747735905015785392930506760365711516157660890704083128369983756207089218925173907906368970005254830611786527156174687514691697257718108541141882224168016079015418081150746624457091021744768875698833640626953604487099461446013820633714114539279742868949451242510401604160949760880259712852139324646008129101464670675459709517668078760038616424489851858869583031825771755944480882871612218910675839704252105634186930574411966135990232372804803362123729051448995959539820901157990300960208303946752048077842902020311786487361305073851300065605084461328286563795780293315262935248832239054835227475588267005400913101921248244178396086082102824806378058363933930514591657956576983524739537681761423458572484664914279188183255875824325659717675306615623885913590012664179497271459152546283115933579667744042059537072924968835892044175255989798425082724360644141912007550591674446974462713301295750148738464622635121309645656599455279673389543400943022343508556306589943598196829749377839758127659378124325003119281543658741074383977090062536778657203655135752823778804110135180071676109489004928546833400769538461475023821569483161412654825154955729960664203658121952112723211519314731296982701827730150178996499945341269131083823537597867040958963319995562918077160398003252427089550200346260989019165227569041321761142251334634485210320550837083957128532154908244106223416154355253778235059489723984695371134753171075143979279746764661611251755868859019178015910254435567500638923513006555418297565561653497211691742994408394215958599015595644716796081392851225883336911598711951110354200069949659109567582551986542808919283304110338216081890559861056261149768804522807110044038247496449980544671521901724647551346395507958161415074747888175998295605354869520519472127542960687232221206047082799427913153084137272736862131812040915178327229840557322252497422782236468359876007437634415927059076190111518327820594681258173745566613521580810206992685149236605874180456548220434133671581509956944049761964479506423769395164018802768548632629559140889388498063577809978265758206517558014851743816910266414695897153323711352487865674654514993722719220989679451790048431305994108522927090917091171688510621195810342896952690625294830128347138188461069326940930049687717786209241312053950730449430410374126723822237394474938288363326414726979700304770956306310344673644620251375166944276939492134712747529114407498157151344066900689381948269665657094007093127004235431610413001051034600260982999357529434551811534364072183788895806584747964698006568240283054444534574009184704933962449514816830228357765751971773921344413030926754960822603672308862217351351253030674152922411347271587597226741922053931031048781811605526372708927227830945981183938386251823666598009403587663493928058094575980120599374030416878132755967931384666372834180854495468862202040751534447106339415730939247358117803082374157046411624688624731940605349630029568430026191403985609721899814021441849570673136064144668859161936223787576411196912006731660153643192583331252411654362462156544270906921547042458864390294073544566287871092800973578119091301326972168662802431231184392102643726873855830778331997558332894266047176175912405399195429908669164248775901904493510649486877586412716891501519965369576828172823955155992301966280272032312808411102540639966667063676397595025659621463564101979577280806104213327584036326042449664721489499072528351470772081229353357614600417468131633335717752230745449636633045533382434200243671428849883439701164119931269986378076655227251759588902742131919276405547653806552493198960690421754213002799229558684378749063674673326807477550185745127592022296723230142488631654062395239613282801002436660979011622801188730834916727462650593855012909350613384757881952523476997850714534965085875121575050630681429729109904972142771660090499406712223927341743441331051427310159584095450069892716642679764994674974787382809764248755018733963555068323761214442145779228159540997516247192500071254370431278663918531863207714753742600168424547632658223456611563753123834705951345143073057207960967941204870535033088933351082314657768862105544386066225971740500558332787362274741727090285410356457120979766538636090315514744533798552181024396116064273877009407178803552175513231134283191912669674940028219930276001064985647511351669202306808452198241146649704673936328327644567981486441063949988017741739916711832567930203096000379923502123475961381152283880229187997430022537434228840290623869151761151479536743269774934653438051124832909853726621226332069984818429349315759217606061343968559764151668617981476743228909387265276126060839676293108467516111271996151795837823152629619656622697182950231676674935952543630498221563885690300640060220836341481943213322708921008326595959158233982113547155682504549046847166390112466611514485520636595836203977011904632333941545982273454844752145388737889521658179241620014157221234013083254810954017261069666082950036614391603549390159754063022323162029682346167645134189538542207026193506863758032365284564856826295337727000155980658513187783026482127945758448366714842935108750988700851777948485195352974834364905567550928503809075003554151500512421680599301861670915209112357911276194310556225926726885385147646142313741590542737612138011671788551191246333779891833971395852940387841981549919924584427498611963188428867446244542074256225049944159021638255438914549893969728186434017934545302546791499329413145035549264346682002414540978907921513471857374795671236580849825448673143270340850904111011840592131429910266064754808669246997984394763812573395072346632410822904771597110499480017098674846313707696833225266040050289872474605503345624219677000036099627360817652769406449117749011535459684450344908058457686328272261620370538171970980151947970838335709902884909801428474353265511748906727928469694545549318404078361772880289303505965881623801103884094013070440612445642824567889051920874359492277742856413301430101551855018059179061033816943093991753866170707283834076483373362511132906694477394370729667425817957763288136281968359775363660180313617087640011077697728479113036215221518396404707903257949500755610047856630259687996069359839422740286127358092479087684395378705772267958386819046291917771812418305948929802285587124897840721678723751254372884094634552648068945920008063249403871957521264229040845819682650751197983863841075700224518634110681565344652094159755807949020770175301742999960449088004678026009839427254718907752698984207001163039321909006123011543353235529721293457925152847826958668784968830445782525719564935746317937061132935190023182433950009253011571056388504363656467336341963836959375948542810753898402269077794539634379189413212284957302199197304904501927142044318359638490980593501800888949964316615218961163093516346381105160738577454776089088573698246039201892781174524798025262340006012941258899516841193118415512821364983348852169929945734835913275800988693798510229897030277431823701985673693366046880781213517948717276099343715012323374993911917932105026121187858831701240524283540200612644149202978634485972102730592085508766004571101863290655329697185864104733749334433932153289592577793006813210774773522318077368243105541276251043711605428246546328138032446971674459011889228925199468488111657070038417728790502472618338669850164810061197657740805674932716493943284689708598165587041826766343343845439022911771670947051452413838245736381955365699948581669872931077853629960507174610608809608019406345595666078664580734517192566657248125434724064701064825306451549122105512290618118085332574627677572557028960531995703459249213456543166138913256317101560613317996199680608641913156030610941850921416719029256747765185512385504879344606522717552500255665510169299781317630427414114778924218890854121454875635753668003576118911034555811589169464800314203906746002965846130063397887455975466261718272906050279446812359617090556591582039299895861311540087792939803286344666056755550786453318498933838155315981348450056858470920407570179712676873172970484401880318165630752871926586800483891404520643810757369361154368334530553784270263283068980391823929624194893859656897424627358842687278282200240066971150159008585785336822944983699317004627928760657793949518289889411321238842936915096700460513653344793580175532662187631090181318774835018310462329470194888600857710120425327598078450505911439401018966853077507352714086240910812103184449156730933067804403752577543029468568347014494169941009513542119938885407221643771938247933255195859192895467098608926935807451210206521410336984347209832779706958220951846513647502820030672322727745353490379827256638035439960189951973054030836530707041581513187356698378695032859284091565327226782007603754486591547636536588810674990390337756881313121034983498377892069964846006138154463728562405247383370229989763608235637162600074793386553879649491705699860714513556241179147363481355243983786464653466734383445494944063020273705639458043468829111448341354049142034170239535960800099416068464543786642921568027955999603837485839975444226822846841140097436090584104435813717669906091965076785644645112565406962837652316519537111200837083604511319354916663834650084181492693967449234165703989935825072571409075559899882830250696813742208973133643664889341892719513678777988677032400181133477850783461371812259565549272725149234839904468565427321115965890534044110253530048450293581883047828757040038050935281487137629305061395805010891333214877922719527543228663017117127286900628265388129471817883388704600730993020387275355375861367949333356864498300302799714640825068835641757428160966580596152456849093117877068476976161811533168097870036080687423770572947672981797840613243027899305438603768638734170760453836377934239019191127952867105545887397924361928848069705272534068468835006138789663713194930989460159989036220224925580537823864300701941157122816410359719732742422135747779358177999447026857027690493622442256964976758371755504351233514648474111079626177543459969958466126548141127476419243567125716160388573390231303790876435242986793199677119373107950026234672508726529768868044679056680210988374424862848038283979219762682022849872547627569518860760941462426389029982732818146578988213554844913894444073854627509219850861724471354725550005898358668511337565478376144756310441987793941357134674650884797740001814146693797473475213119244602916497989890318205585660886883245340067021067448404274204450649836728702151708085033520202729635723344674106413571799859640507348261580042937801370681959733895249478680967196340601683981775911139295609535868949491665735956611383140581166805887604001262415477139299894900126336829037266274702597070365108411286244489172311549560505815850257705552514415125435907700964935286999850152971841351669187547900765323827763351251471956324619343764022894768274890147613000960081603373364592431608957853954787489314444928569233333275582191486764972630415166233038164423172594134815299272486867063000663259184048884540637841990312788499882568628587382691788720763389084598176114338454439173114052056313639644970607731474093021407711099864278124287363621991644416144028480048225699907561757712082480677797814599183742085925300575210811816586847674226028291238637689892794916639787860856283177330683800276706992890827922265247642979965659471749723159857025735876878385775364829286677076431037642760907835912531101794909659259033015246221488404161482324704740919592164977069736082897267095722457046014385150922023428370600495802736824462386197196591286371905362249549614296705901333813286043876875719981788601557051893903954082699332348884846593686051663869722236470316138740577894520490588928625000880768898754760849756295354239414867052401983643319366034071672131223079493478458087209260785510234977315540323266423571631267034419333416050169035200406578733084257423515001560355640001634978020924591673669264431262563497007433661088684938703328438745904571528283507510921672854458484367245781314561686664268896702240796284485509762589695339572992926920026240513938251932067519523162976681423513730568686342266768139316062959403591290256128450666547690458279158623500414301232231137747620557943065342325330258433011037382309976602551245800459760725144258085174566480490426295441589783031968435880983426492488674706159742177583779517362701512626416969358153560555932773298868402199312966002797510225222870090653751634319571419992633528009205129278566602767367190132190926893400843269015494085696784988878293187120667090831903498512935780854633395252071954889654616964658635537030641436610895412972931715750401040441634236427096759630000519489794222546150337464826299226872782610081472385044039764543769834647413567132809201705818638664270124869745422583400969066577602094529924299481821182912288343704508938423645651569999852004572663056366398938862055174487861905305821614954627660267860765311862968330808257367153734470492829074326064811234180502359996816482261199401085601086305090898621859467788283266247170732460679352565654919181829917847938470378735605255823064461051658525422069835873340826284358645454810728278840858212742534814246240433412465780568897232572233917580980347843880221640811055854866041696549475219635116634714138650833994612127299069503014926720147039591674950711851172303291687010731163241734979107365473555757984050432304730757029859583960920021583404110941561012444904839410885985575231943907636449261738424540544572683285628524929725651607967811508812898793795172940357118509632913398436981267512488792164095847598726799765176629003441854252661533047992660566977362323276715894130958159440335096147166114287658019752687363384173677818898126923021811826238625555599852442491559640765456846169573891777138146785830965525917659307892808786758027142337935344304843998882844194074748208711326836693441941604946455833562158280451539809596984077884521094104522403872267096936230219529438329413059907236521011612103811033642987968108755970445061745468100692782392231322742542704957870285404094787239255999650669269067018656076777841078732639485102876573075920179722960404808883764468687883103454230477487161778661391207306355898256582872314670304250606321660952089855265694176608442721834017498036457392050192818739041158687175766438242412627439119109868446047415861341360296152388323605587100759653608075386291381172584217968043002780940725701981125853660394396174808062690655457458378302967258944377210276103808518332757260959681382708627847425073931572644968482556814899913183831462694192464076531016251779892442349269724702482977085926376679455581669219445754595794036263290872150110743775623124061916294809889606695095886469326372286606183855198217102771146862771557154683462514290939252797013208246312410391871449062180187773869511666790178548173991955121027801161998090279833460691605467964564561295162797078240820988093198030136599523720526663816096620635944537298592521433217285788444725587147044265571485086384678428154125284070366659525266807337982691352426865793336608192682041855044282096060140214391831085382396313783477289326519439764288710495927387659942747791830829300582896226373404800640800485928722181144882262819069195402145573047430222948395737113410072538921216568768321062347849199763319957450902315253640843060001903108091809945303831947628548241214815599445343095148064550961299863110713724391347538482578257715909420639818153689140507898219061457420674812948260937599548163948996158483986692706439645444816169754041959263595851271095258127597737239331495627764357913047214354490916986722028228968460029900859548646431334733823099963254772865234552860885216475543584545493034325604752853116631618016990565861263374556523686248768386335554705452201715869681222209618865514816454170828450662989441059356553289158716779055479652855063248308504902349408014841255218889326101487921219266002386305249399296121164527011183519723236388226494435075809853457521029142366982623011360960573934328706289631349011953634348100272794860782844123710504059451851226351799998508774210548573429367086523324329424705879545396099508870244209953358676822852936097350172179803612702204138705910517601220381117563419864441461927276699292058643266536487228951638843628482459579250627361102389203238488404916436112589513692021801168772790808455495067587400266708127676730022851375268261389186312744979200558901262367210694403491859842172476263635892859443706929768184917346928788783376172147438181027212789461959972514045512671114760855575109822954149627717544977777312761047599295931488347385077585141348750866982221566782024642769619362749026540703065576135536331992436759145062336317383927798318037169648375414543745379698290723394008539578351112144087619197131651895642311401005388573138284734829133431534581966155947666528055248586937900211743921231001804347254110792413821349065610265115833090847768898202802637487982816559349305781640651121629030531045841372345936747619458895377991324792789389071846414995536954537238696459014535891598477520130768603156148220406229717963182944140544380289670943788060091964455698374656419653045981658016193159853792953329890955799707576113184226445997697633756500038828252468539519003664667376764138412299317422394888280061837343779061291987289552992279577649982124453497307131690890401866027697867247101784303967703416478835424512572729462538287846406052848865978625934059223227599302096455728136874918350718030275176041023828560230434619268472302192052439423628034555754041083764471665227227857343897933266642494405191589243100158376175465602063429213609649451277196085790097589042526901412201441873097216665148278930533371515954276711472986934786160664653777336533551508195286413568046993705728247078171574995476180417975083793793812851780499952670924167381455013168130790613434428753785671377145574898619326763553998868042251577566992626847619774173315458368584991086585696943632018535585886549860792879027681871635750669663248448823613636028793323226708363946269586829957987415081241229630041204773864110662037880282209629375353331610504120565797848646025414037882118350797322622466537550021335270872625143316568509704786339228033816985565550555364913898957560977782939091989284247368082395011759392894058829164704046838463330265641059735532480704061328750662034244435259737151476600740588772493264293519584194664357179270821887866139005616087547695213083447177707334370153322262443538716095896026616365086965475722802939166389241831090043870639848262575901683799036999543421133472450749192400222429842520683981175134347599230298523216399154046875205044649795740386689289720166722253375582696734949470283278166188589017663049436946466337090850371576027114114712244759927281402312046136432343286516589320120670297915370152608799521246181067140884524629368659577716169405402355293625835311845063050050864802071132243244375626048013204859303156260601386392971629882155878012791234610963600162355010693023144592792138080934128713945859171708865161560552672209453500797994454315747838416154388675470274523759529418624657069558277203832653245030742063009371776985014671292696311063742539246186651896265154871730578986355967095674775323795994009671902042619004957251308192834855071588592681904668885656607752189807745217836820686669826855614635275607129222300807260362702289216160772016072401440413141915544858241863284535857080411704613402855404913089835583143122533886687587925040233916049632773295476336180463715563818302699806482151371233431041073669269916941450320802520574579948962738909911136928308905315635039045933947595790267024851406265526786372725623239319889256238227835852488926671338254062576982614282853225488542915179075463145662355640683213716532969707882150238527086050784937578395820010551794835506594561055161595568618253392943775373895089318516328596557854094419535987270855852177671411293539276317563889806936665312248227597441622125809115200428295705403275023100240895569309479187983871539347846253702187926921455223898031257029940969560178378136903257177795235146375353564834929999838076797567065247030613563004960575497998144099302621458531655862609479015633215466866154004415140258480349926526113429946448528952094570097961413085522595799772403516966670339926250340631157881342604500733630985041683870542883339792385367165735807464172991956969719822602446768210587583017851277299786855464969979942242811570791749597955229516359600723037068878377330327951000120570241438759541937735465572701656170582388713338814412847957497424337629410114195201461600600510505617625678495048287748323515582093870413320037213310898767383713203215265175243043011820651382042535744536861685694559801542627666902116329283188852398662792567381263832375358879464489322141124617652732801304084605001317510245848867170792085874669329018563603061181706980208893361504302916336586112921400105379393501927223986229987427810461071888620339758821597527419263319286444501617616868842518110268227332495703099458563674478393228517244364524344120667888646806300896503346842521193954949747229492483547661389790148430659812525703984966072830344062834138487343254955130446296773961221248706864219715878305811189454086976127320770916374484293769524174333347462752857977504943027888944297989250949470265068567238305823068696900384846962496052348703447126713108088659445763267312921123862683621929116787765361297376977706690333343449475635725658657216618547419533336774080482595909703919459740507662510150699892315000657216183605853023766156526026591923851079459140575793870167106240969973099359823391589201406787661129746739465914343413651352524459230367995728155428503779998833158388351943541043610206378473765901301364853733384670485657160147347025962263811126471598362831957545420112241645103971829239951239497951442953358325469585355531857980830635364266146073886087175760386646423721961588118095712427762531105171075937435477072065933653269162547156145462826716268422073017802128059895938537973270429720433742475253999323828253436142155878907538791913004464348046123210107922287272691262735200329999984337689159822447661091915447998027549952319745220033168776081469718848746851489794276251858687784185977082390405507185447574678106123303604984191468708450251182120275563817888421709066703495632858578982793279554924612993906170382775625839973608116970889298758124177487695790694848598056943831967032057194117839137446873363923120898625720538799150344309032167317869277616816397673393099367947742044561082171387345016540336928019790079803711587049717981185662725063857524099994470358551260912839365285074628343282708257835702169632290140032810758201991912001073330214912470671502142854969688522565964913600508921690393798374768059052295868701900488497232178885526768459680157918745394940807929654417409180162552990842584671947062750634705259803521353838244487851821536963871535623243835006808824755736373423875173720908758572731568972278954236758228245041259215370905132146335214984588765501011049460875524266875498181581061388346604565404138080948229729291926150776706398925056861262333642799821046711978350138563577973695681215969461308271399670328115942368964806968206817469500919619163074746475685456828928043271679131878846400688912979849670240743017887070545329868331343962177427249074055330154809940240585300385286754199348337935564836922633219393256565431105952119132146817824528383748478226843871171265594624630625296170532089542030198507774502500739160836746527469866348863011669846275144638761897820936341952077427922965479698145394529855352342041402827130793499057340420620891967046377115900240704097195650715972661109918822365220983420366623610668899659498212041704077626859984235689207789578930030751894914103973715330058452181710437391684177619689728577483061280493718427828779490680024495440678932476539448704759458411681803978552078231595512668986821924681931460439576853499323219811182416730930221443725745693693087494911323616427073814249360584878756751822859213492162617928001793275032172029086458185454037601120419660529496443184807133639719183003242879723774098417399986340372358111337603543209357867056077136033514899842774704117105428423085795828366170877607274587415434130180299033719170381169294384355235296860120769018665931476059192534408942502202625958463299142846094020128677397551997040539335511577662864649522287699783143905591553855931123736966460786605414882796946895736130501693465877813474145652626569965973634064684040351411927314520773073533261883035213367520025996181913031126112604050327252973878774838900518056819589810528838974428125471369914342753343687479991191651965289278656921800205577239996866027025165271410516171183606679286060976996295624331263752864131548919545154028310536045308828981748938772932555613077779820195164836683000740008214905451530829723404898696797560755521637562277619247652525175956136589548441025904808698294548054835212497630566830808564115528511884157132552439189998771425470842354687690173485876978246690934503153022195415574189614665797484630502700115766335324521611235128881292364564906292019698232029555762488550484932003654572183415986040128158521911087820613686204797616928173276851994231720224559173549146060022108354322267511409346012451370089440965308393174914911405844221091238590090507811307878283445564404555692542761404480342350794638932856195366789092276835640266021899552960503406711479209600982197117579057358045926329567996946973823513136115846790666915848291289172567076151242271697811983609662036543725002405966910229703000020466038337592333044989784985078232749613171188001424529219115301662869052472230239303276976434193355634839069258383431192378539688375244312638495920671482231130714251882095836612419715447123208568233369228646382601842089145286108520633747751088558444673503676182977587534178146355652962840817582423128527208287361391131336495509215668905227569005963582705013284722753757036785802370977071326614022606325052906579137372667311603288927933988019847137301898394952710093101817826239556644280189406156022112579173383507003787160315615534639677423302719365221992057881207687627452671267128643132035700401240593341066478141629277878255118097674244855727567572969600662976779012134869647910519174540803851070005079957629619302673666984139761844873522833924162916247987413371995733577101972028357692118869849529004719394200827995873836425145680802915234943109212606773485772608088058988573170576854364430302198016571717495077421979591173224980387232086808531007868364862100313722622934416369351175786620329971694129000137736197891894526515880212692450198754003423073078949308845612815034981923936810634922634268371461710209180804222218629117244389403747993176823119362231357239196935299482325523123264567336927619829654894123330928526141899615665160327591672959474407032135313301810637347850465996248755989046122817630934296804343464001035397646936397700015291600041623595380276272511456241584411344436388007105766872488031411421447194985826319543937022624030324066997838554404081778870050376584665691845724403477750811969875012873192224470812780512718749944898403244780536767071682474805780277903876760090124930697446121209575176936705262118811803985337233588122961219293744834265690310649591534176636433352469617046006292041879235407419705882281789635710088488476844875293678653518315267937551632927035237266745895383216457965170539647328866574280287513742959889430838500123152344369657457432419919369595809586812338943546570982601967263800632352576534318972769156158686734782321481099507352114610266375163101245099110158042322407683642555580355117113086371715302084989142970147445175588111138028756560813572880926396487706754278817343461500884938055978000621839341260996844582099512243828489249030335858399497172203306469022447400843801372566218333552123316421744618408326385813503343879560313355745731217928296292199440979414511809056018044464762137942373140337808191255170661730704711706696566699796159435465572651715927555479800446451916041827773705377900177162284309017234264220925757851100858366327325895609085026344085973856345062006731836801463374563508743341712881769336976429151967269120683324132971107030089640262611932666968708498819624948189729094740789117635017361536791835368552488997844619674000136818142062057873124075314001029136205739743892136023010200656918849050772675974208078596437020632887210011967174560009471133680708376227349626864761838173622548977412552547697099806814673548892405593239743197828860124442360430115850159619122386155299535677085734670199648313026221442271938798987232689474768712860968081923413046459790585074415491406677057491571250545302739808777332903512033818456128292559400230224407898792866874385545332701008922550279236707689674415188778307048809326375516014667738101277444077862335483338453487537138603828836291787160052662262770775473494796501498539289804385778669397679869351170097781500254796363326684556910857893858989399964284928783943062744741673369840691412384551885085238540556371678543886005596395045973326481996122432475587358285679877143776446267803717794948377646638296387369998166830472628564350108605152506569442213712602763426818654318109233515724239603810766288457606989453282215183859926786505532416926728938130560268537533544228798282029234192904983031852805338904066328220229045344041980985672913610270512383538151115662832153544973722601847057796862390009884393764983151532340891775612115223855610958310905122519284981463726828753937505379829331920444438906843330080668074410685480207024554026848563187505876459577835018971360976583284962460363692582488478553049255679638538280651931613661796287611697631324150183799624806777193867433881872027340247216139049294053723848512589741451169990633942756304778951328485065323601790950212132506685636014866718301892540921396850059518716155545672796873947619765854262447993515734854093464166128955359717641806432917682905438237354151921347503638098967554418871278723456514681218943984706029471112584222308037107231065290807480684250660968653903014892661197130125057467532678323796467391750795186146296530949599051004656964770219059416309488895670044421043665627050508159309078180022419057739282107734417636201737236724526841874221377245437169660198655012244225028546058437275272441719349978767012881025715115165167360492409497690991661917888813365155938830577857857855949115945172000164449623220803099168872472058482660367075042324991835189728897009423658826345663355216322098555413009000230989044211853014537544921374295768942879628703188055929556336882490710521858909131077436931500662338534203697036423770227727622881434036145136371360387427154399825963845207208952929496105803367012681098244177274103538814238046418290515288665730611206433579617317257374747119263915564099386497188345915341960484681863908036942763573334519507230806433377456860172878298630957052959986344903606857725270246950313863836719165418670818477349758783185271768903209183994798453355967235417730827484294672255610166328378980970713054138000723489387608341917806554105655833347224610077322999121012252554539776424023351475895803390033727095490154134743729837872150500639045247063370350710329791409618767582844258645707770802757748921150671511944364003378189833055102867130404865730736567795941920502863827415964033568960845031588814960677516867412227351081452062518967006154139921976332730874906215717281951609202235638245911768957557942101456071239181460268097999823574015021635986433875843848979823942074444671589070984963470299108875811136753785402377511614082783028419419262160495523808871864026937984882289147442690965083673177789388388316785634339919531651300999083274887858376176240952700332155494294726512027620128310584439082820103522056952037808663402406890115338678267943662482079662413065686786398970177354990993686602672572726990990140294526320693630705694806962468288573160138246175339388386866068255165353066758332852656378319568601215062058978319218749794581500150544901727331031102596807763832480936909748344511777151054838223630362588736957807520925511040479814448746215699545609161964147234822238625278199387653138960608357640960932908550622631796403452414361103024925861294146630432085903271171914986559795836718057416360127249421571653374875437271242899904346351308063497854586072970976283325165862391579815822269646366438810011325927076156544015370497244810527263316815966366372718648675712525911330658170767979615629071564055967197102316650361852411425489773023365134921314034557561436827537170061305490039094848379273768939415368922167339890580637720089186061551568837884133848059131731021329342080833309263498699150896476240487167283812411312818199712681158432311164331682406559332639628833209176204213386250046203200414644355198733617220950386544073114247736816817789051742074644510064153270101674937047925775240035256576404837330386494468280591687538520925041990482541988324903546590958589100247070808923719421693259599894509253052741922755727652472221670596955536382771323130513286218919219769065750951467436358371625251461478062458570070615291300860772671898486059909261612085447474026327809186527272013101047622313331666809555525586059948374243921701128549507823791681197178764043963342506895204302759137710517240664886727539987919681651963463107819264229914274706145313881671709597944728492011228262911570862464753145781776504579779672822610085529098953022977940555467962343653983338876069897417498507990267788600963104114233695980867772787795671740004211576337721509293847868286037241586657472450557906429909713991651687392921421399712799430564081229086063587049168642765019430088852632825028225629022280165453148557404763142269655679955913968874517650188924635022346964630551893840718189572649436861478168851544259300690688395994573702474582178254772309627469498143285297326256702104707291346191405276118313399917459010178457146209518909202151374965833636964133850902047560021718000087925283199134830008176964820901846659994450194832077966934348646946685777238551180166181803107999683241081805683199471967457751701594763904124643930209406277422567122109537017317645459683334555440827393547231574003642934568170583883743556177063832284929319595034133836989567669458209295122399832662835859089250376161082193383068488025561530345971942661919746589221924857370886573417250846026291808276303668142223630699671365740195926328299214409917916474724564295193599887077399717911997997888232958695262851317027112229247293389846370824099614889353612642260404443906988602548049898911319303029407554977126411815845439853797810891387995473792323107705082564479060119690165253565294489615350124332101073998837369357019954562914090526636993393142344614374069122987774739138146269354135764514558956753780927663749435902198574445564146293183379257082026714164752392145056629621783384057613684071629129305933923663148394731691137453651468559383919859258016730944873924722451640427412798776108012690815529951199576086924092918941961406424780854980557230011940050174750037718625191018973031567765012817736518333865323545811445183521454054126233225500044582319463186608387921561478803196410654496038371938287387459196078163385497770546657825492582836027220417083311991928072340786982946814356796166540591969577729384972727799475446739280484951738144109789429591047934917766210922234142333050260170938285022076322574613454337602012407151873032970832057032683958640804983493208774201627951875881380249542549802173522905276671547801447944186780103283165870766296431200708907043160217883747011608140700282782320997093892582235127668365398191564704701820441728337040872495921993664797209131225908474516864036741214427378477302953762860389578807164584688688315943202919730713200171000787027438020511754917804939648394137115890174946210072477098915522451751782477667192158394538232585920262158689008917733796871933835029383218348576136934128668513247914758183821000776082399164250145214436902162533773550602097413611606055524288762776823045581521277568075039110002880409574312747272944790940817560414842598298096918382772470059762557342966430829597073591763385194389975845774390677721959487345316686490157161858564683306445748253341070847815379281393474949281821047553269229004921653482839747990325257390167298956319688504993487351728514728029189397954050354808862049900558269269927788959325207356259105121723114713307367441089976108837501740573544549854250848680097674270488678100811446630017976638426147652036234144775727217346896409948907126855364993288917080150462885733054874480992279026860990079669685154703538453983116977416657488093122783439471071828161907019591798038257359668078612398600599406240931760599294169825308369286237746617626301814668838232624900294201818449999615237869884029029977502191133433332761838912392312968248355057013003554028787517930657507203728953834682585428915488723640976166248249743194776833475456255124276916522923579355005492761792577222506152943215217900271493162135553590590746236146039263656179568053322362877991133341549318670492573935683073850400028105620216215297256925297558614232613646574761730156177665954331674348048322633382747653683426348187383411287273376352041111277251384419801389679341075690393523944676233285688160317366669080215937253795697976553831479675820657311500966216212384034028599504203621851495290908233478133579237394520100379977147262477725809679824618283572314302080095071187572860592933390413973401116149957591708592498936805476834478018944160173075824099599166974653119843261989875199566812105231964255754202966916560038613971045619275869844038860236775622406848060309182947687941490370930735466421418901756101947583022564983365256744079169099362250824966581808966783579322479362910707610123260930800232879184999710220565809638705030795239045620312068859951994957849960923352742792820274287142283524133437969648409424777476979890501560974832718522560920579440760863713031194279314834466018618966515128752246435718279899926976615165602218020990695616640867864535982199580005562625105794240109872471868442361616221980386384150928244163497324156911689682979450911537684862724227071099970644695713288807622362567103654609647245457657209937052665708841739574539384615599552471677175629083336868848750784748578435837766249161609674667303286341123493329848073062660663122423562986747252695397868320636738508380965434418595583327882312931562577733946352411277517651435435472814385813085475819256034984209951561154025815677738079930614839918392668537664255791964996941621225696414009553962430862555569409452091935398640006415085802105648918318306768291045848205900840592532635303270531156203474740008652038119031951661351273666959795690605363762035124932423541265718441189500663390493722586920986169371823058802835921093857092059058675775567272592667546710480115229067329606581379843834827190510321941642753739194766577358623562188070045257272404391833368022177689191678800056890069967833387522495266775293643149949032526039690374003900915572630026940197000127536194404903154893092159805100866212837073647992344583599683059398431005612919125749308580558647431768132193434603803591151830648606895824590805870651547546645662159124162193065114374244618828046699203217054854581649332602684042804305225827858032720644871560180890187543683921494326149429321232380201640751269952214792119551414471053593470629918933292898773435702183134547801445982971551225777813199157628786813522412637326492150298474482851702235252453924143811212138758730482587053302893229356541355866383790335860194448734991681323244873586320159188600194355854718368677077453693259820943971524111499589571421602175417845171858366983772399145569520404689565962294415170572413025075490367783494735077087255109214949590451418566787015701425901924876790594474532032291462852195993206162406282906407045175027277943165006625426129341529210132731925275741821815447000615181945629802654471482960293918742119419919475548773908770958618758644611051493792767583329725254917737517162626714500265572095100133251642715985519204607129731938784062528354627620856553238214845358096217817383940005054909615891838100384867360207320805121298884640030508106356868350188105075810468509771672678694528334058608011784047803451914725923767239561199916712032232804610883536793504635391818636235012248158301788058515717375096147625656800311965173318234054512776080311597171714895235645450183055052922558444750814801056185621781245944879190698436618930424391182131796997812578739340723294201903566025842160311386893910760514418256501789904375779950443429808578097011049975312275694608254509400519914542800966317665154359358118447108645004062440063531621770575037154784792766867181664267547907776917268523214606657145772534166917020233020694508142022454935167541942409138564287289193901255879859796508953766596017031593422233298365272632080386094420033891467149454990689306876132694826569130246614075604770197492448108689458753625597342923655583345023187745412940783292408106728740961558665421877226084651906050763875585187496391958751273633868285416760896766397355466386507525083173996904173018559491581676104407163654317156281380083378075645090924276802789923855867083406381252923813168638546619727671894119201762890250259951090803557641241757232460773637013775489678273414903416836871740053001753316294682663837881507647436204993059309533465549742016329378565222775767862150072778922202897319829751629289025721220420814436843269725743885508330222342203098530743321111560650175946690812210917303582812536445697055564413268429074780771428824955341880912704703425759351253010781923637919101045412979604487238131299371350468273627215269765660584630239103735347969367198652599172311127848434157563431566730677649309530434992609543621885689994154237551680771668550736925099090231472020243002181703546930912693390636131625079264070140358835562975521621746654581740899565628272547379775772944481912699952037714849827099497336691055268424413982118457110332893996392567077700068469293045241433321905427795592915156219693833189291568355529080167956328302576412771040870296877401736423295577823290078243190114991748610560601127473855898346740744443010643148886706864931612143461772985635467248266183347495365937911843303607289217930620722567497956547979813285063268840269533262337425011587252987060441180930720851066700144921497340814951587565658032176870893049163252651704678487121513871048617776420508286729974603564687856141457495409683590668965915427853197572496115113736613326627308174559320980880936993885517018855157850237484570482364235864517995507498418295155269718866510248830677102584732514793803982782326230804064995030269368620233369332096944063071344774610957245592435737148457287644238663029731104372885760760216991924454425054232927393350302321917038249118845128216608848295781995275388413217393690744641036774684405976821320317142402324604219803085090151270759562470724147219085663651105302235879019122891307072971508964409164709609629514997764332473560732577083400652578351198922785714641598759032602640740057743499837695321541956738337438134999883869104934910898793702819297145991287914106138604910552626994879404482067383057042310719038534885231931978542674823190438129127664531814776358665638601243636132818223258468964338103056902330285305143996823025374997631948547502283624625548136147137293761597902889672488588156154714372837373187636732182015837669096086767250743377747791651360853796089815273562655397632485505805804243753326646082693483302326213150116298787262292941263039577931752997710456270344292337962506567376204492234971404934776259325550104669381977320970999240076811675730765985005870795702371131847641351636055667815078704483290802124764612493022776809226422386614187311138914118063766530557229981247972060376612614882409067974375658747330758192727052177877721438269276750086343397514439571783282138438915152321180852511852200543011661902467625336702389054262414817719088406569251157849013593364574697194759134839249500840964488548818255146637783272203175287610693406562226659053212210992863395112557205821408867964317566784395939367458952632201694078034842173952845937335277538878918815520342722941702314433318554201232052784363650545633247535456117153682507641205137881476935773403943013818535009935114208948114402351545191186736413634664656316703774815060953372350046896478079024599731793984850827478830670471469953927008591604486790103196863978660154173527854783061816881060438002166593975874753111033122000821265591387166358443815954366006271148057958481494237133301848650696012821278803031017892458696409432170656374692273928303724731901283794052776375166718409189330905487176894132728549626204090364847723007416171927980490539390704491438208598675331947220584953163212007156827813018924362594392737040849400643830332557815018569610347136685778981853514512268333640898565875906751941109709319224293229836907111373579300467216340138239122038724618278655525827102651004689658641614684630540081304239842552551453784466101811458747577075717577017308342133270973861750550200266981431773879038830261328698056544955483792451563826289768156431250256163671300695056566973798937361829760604037022941076607318352370221789438720071865507836345518768383608124598776695418059353103345561784885084199431479257909740174385433942265445498056199519688344730039129613077351332824241607598938880442553112627398704424528993091235398974658428913361272359983649070393337828212420414781805297544623738955041602622417168837112805415958630330152079173250804209318597705473507366503593104166491031788224545452163321122843069904592323182720814126582131393638358158623158298746624477052201991717537757198453049755662750578288747395611653983653012088648639615059562370139195250426385159260349634086133426874014465722977754240025244230736648405225524673030656861778474791837986629962347983693219395882991983130493086173104987080414122947056818388500391042638991283828070389044120220325874365054084824810998631340830518034498787225570494448876702206831811741041220058373101325447818905139869202217809593670972132912572494813292642489927300209017153240207208161663190955624453653921817556508131539112191436535814007601001121801323320742385363430409370493100361570728336190517000570875846170336648737731091363551620006686721412812731446423127460847007720425007392326814964507335312268015807096867500104093701458184133825657624818181495963672699068736284983766868490300596004412680139430328842116435919890916900007405064214485410538804284041067437039462925929363280274270305023985561027762784471698139759636363120560837168617119482717453991494351303371322111137477762222468024987634725043749042993339775491252579379828405842466299645069237522075746591072619101716668010558457978857821302221606765083300726922186831073401822917335678854020852004485563648595196749572840929088770507078492567378611823895846201102189412731460169695674987185705279782818438181691313067123643125661536183348393221991677083560363816913109451090377357133904914238986909694606463127811886794667059845259777735322106062475267339840410627219803886366022340517284836744068095446244852796981587647562920608732760706345695061032640960001444199455713273095640145396901087493279362922004987409987223491436669174789804213990870387147369999274330453898327134304129652493746640816459269224355270880837126214210591498308867686365350075380143124731899315683435159446017180618496068208123765672990963256457210426514618977488526973239198775403616684365696787193019991506356505411168424126285779502770772698965629280227307208155041696160717559721302337802051927413165337069088570440497880408210463810817316488384056597879830550768401340935771838289729318420157338402496021513597805105669252190623111346273929372439332085572877711917290276926327728064066664556755401126891255483316589343444645482922196669397232107210332797761985224365658945022941068669155170422418794091301760627608298255269429788038933581694613539522064773307452086068497207481933413930710563058167165280779935226619140784741775772700331613225739016757456600252200335438096120494463413727321713959771511288384688649987117738676785283106817918120621499128342930368993549826615939818552124530652595171147686940613139908650747909984509535555753705524860446725058436612071725909991473925231932078392434690788576573364905825227358295791165964011928001896375368688475375914002300216253057741739786824835390669630144969228726883101181848070485206366073195854384307087193916800221810810036347903305159352452368809417676898000604297141734449872887544590983932424783192146483271005759117454719688358202263505912326240046154385919315348458089898206709154709582767323029640611746297950483894215912130668739882005665251701825106161685281043314482166580774295427146228840963562009053318733230392563454319723558935782946549152459956403629904175536339490694557679845223459205038135929112303976573650094462716615396220870959382856472878459296702954866885631738334320439831633696806916359293057670294975447310740158749916921966698107821567238480106794869297770411918900686536099994796176624164362808530356638317967121722172494665215360502357505096191631058821892171992696784393127188546926249479440880105339536773038442132459911847443145697039068299409451125399184615368591477334448817041563973935125505299455804886908102147789918233215614612375977213558965592518165126773076490124317082027718651123963283509965561105184195002106027094142625714703978735450865216397418981023031237025680407307488791082066375386329480146837014236634702047184586103085446294118511128877772532889858039356159874551080882826299414221637879702055277761020096188618296014271715464028719206475169965743990817747644844129072709410920875640889555457743218187966981654661721185010335092302495977015282015777473038889408490702472824344832400412082427016635649632214597869004941139871342527797196877259839576210853438313179364668004629409078795877493019384778249973881330436845780350237155593205036226759262182996954339735161349693931467057043672183277820804613549582444569280214024016999471886840904640836841164720928235578848082878098136612071385452050444466661971122088668410598376343095380072392404173754098887177088283825400716701809812545073268280817868053958509744459383605101292655776031246352972320164246535546819365769982774698520064460704251512642818120892601340867112123679534635209294218217627544750210408235952917432447755845965113829359112903550777628155491185339154436138762683056117773819830186237816727493100148074969379434810645636812544989616654912746457756523201499372312072547278628827090060343744487968207328505406410058925766494784467975994102265860678667463062033561366470285519598327754006611883810137343195287945859654866433945534632439778079938125620533241853851384969592891804222710521184260875268091459755826891135976780493692829524506096276268719308990816208360326468985038439249956213284572939989408604250634411674101731464028621408601909896596186583616005786699498303486874032259060841298110166733954330071194117287049210318373057942857787822789508469177917020840158334683899287144463815724827710094507523234628324916638290060960683792325249844937650203592002578999888573287082116276530184719992233849888185541555884842599106183018222988498312672018620813018143690952543553497401895599192690000790432079612291666350502427757199733498264534165268849550245660236096612193678065580580336324159569958950629518134577693171549083940949231731542746037101889018856660352923727594922741487068617996364321907879092996933005641998313840056336027056058115091656974545621516712146107764326335152208088114697264696803873122645148163736388223094683207898066771290122953994931785598600793628323863876033255119206138184100694100829603017116052339697820963343862634948654937600521037578456856697496485051248638033917766940733555865449748914818890051146130995342338116100950791019736655522476031684017519681083649905901622161877267763556198093859148471926977542476020467220407892666434567882219164080751569189204616916532483693019612669678142205370600617434938633341304383654301590284478231250675561039658258667068742870260196181077065569031466222745041798014137760537180231967392895240603370476855806574254791456191069204519039860593352980164992922232734774443265724907668450525505752487846297003598270303029130829338650696464241461454714807651631308242307766531199927814431851572152654393468840320979667523396778428825471309130435282048666544369979223025945721203322133671142076057265461920573765449220279648298802465584694678033492566156611416180502959965001785484523857675361998322446330612646702809565806585843891037742652015535413585613310346151087858145757467451832902590076420370797719144896818230147425370775370917690546567140193290946559364803235212840705234750132057492450312241098359764189939238131695443029759767342999360291781309508158958329162584663270644186754586340415925930341281541819415855269979018219930027168186158321408813846942908888006158128843824481820900608290206999416909391248566778795705906129209823131641848350088618209222853449214495221545458744553554220303352540158341582515081103345949884973625255151672559543358894932466942563647131985022908976823972729560635817831150039640666640927922727449275815127380761886721191361298309175221350809023562097827391237727330878067950495754383999336231467135050729920032635512610180854284148134367166419376806236003818559033487477046123576869742307647463755950790690862074882658967690317214314766918234003789398329811631020613128615594397231948785453136858169425436313710394221205675692134848509515930345954962234512685376574317766466743365664799166807354802227234833195918920663283458264463980315603280796209651937818383114016779366572077787781792387965703682566193841681511832686474523343174837364315202584846497599421402805187524397326064573535927331991447146479552668336443955782966772813565165428166948371829164736889072111033002423995503970402969430616323153150618834937583695230443540287396756085177978860141110047925747293543249285288810871833537451148931824985606477137922751464713950602313036378919044685590979991078991946845344483249920535589938093756952864865370785647970635239604494564690336042484066084768223923959870232605397970347216597377521160047480912627204619057134494721333444360033244583180114604145117585581056350483335976875398319031254044526252018158572962193239872067560811370814644141323130708369237021789791550155658233147347446632918556786416813746303172634293114087706963287982692719939763566026105241371701987978625727668070582542461496608951216843225475274459297024111776931997882209595184668848880617086807795906688121647530348934536362223031343001310712759607113642495502732329118377391705098568681696138702799621107122417242687788881356774612055779831605220653241257936422284379711922986568906854855167706798976320754484751254052108346223099309344560796652154990108403281616756029539308625206621517486842719676735467456373339567081266351845751832780886558091486289362455216114981646143174297746009161788561327672539245265184257760265148789854638929064668713663177141652837932967090238527824540117999206279485484727507499645607028972367691787566716952299037925376763168249703788087659484686501346169060232128364161365895685600907822784608836732070894711471056153926827008398740733344238553984923933949281228439286857905379261977858451948244614800976157236063711958145919807011922872973750594991787387946815454074816106976231386168098055324933546416213752409700505518835092340762933933291161322755953394389591419290456420976406789793245305534158329249814536235392745075389238051815677783811174344302633597052677715763430895840055599811229358420105414398450624270009726315967225864785248592788584615141290799851972959030907397244996222657463232348387866772967174123545797050866187347651737995858984103205296405880049806012156335153900516620990077760462100159554123406493559988897651944808870873826057282993476040884420470629803314978486382492781455453607679052317991428845681832053400823483840364814622012445155175465945845591227940199230551885990018671471869129688315807594851500507613425481091841608488117699160954379652484233354729877938371254909814647736548822096708675538980532038947128749223134707902398286346627081723849412140676578650553140662394480381168974328514046101835650689079053590217368453232715613954237863252728833919140437655280358113925103762984855493551654776229001955356636991343933204150735645766228245280299867114253639328227609259085934230189484499311420535700372093410367579170668024101352555189395207639269937071072638775792435925666664167241031531425347144201015950177242080629466741369452183038706126369006316492957972795918820591066718234128408927224805049666721013197268251564546937692325814556578067064262574846527815064247158818380033670088434500367596081817498757822324386371488610429583245194178151494976973678372897713089955025169543252212192888164213254337463125084868100933853483451693319717487695394930912401000094666409792815157402665560130912547211574553081866573960419769770685808813891170437019736993934241439126172411357344557455163666814570491208376343166797566441189964303271259363006696013549271114549275705767574389893863971647084620430206746717387674339288457194622412068531130483633333024935689158674878674329685699131722182058632436655196504784670147974835434539019838458087044024686102610519871769541177077721592272236523859458207073809034260108503674578459774972012419524347097892677007603955887539533947777237994754144909449316935977327909719991692556025791947227786565095034644851118136237311047007555884545567913373546920289565532635884578697004745575869658424583684262421638697840859355857168879311207957334044481343664685277098708563515477666497235114520613921854614481367851043152245221817492089709473872310862443668026596145002796438107985400443134878492809924153596780953378057396838273288601697491037507995789901863103587011236763592695483802116612732823358600705518719339260002877639978043095630864730780305140742341927746366390554901977697865581127641653792615087817518505904590824806639738582645194160601745429095996203915616912494653215320629549416998034485796562790973949091768892993678432356844201763644101341676015489000536013682992222335787741568752227071396266193311906749312601261733220667726425424499283547478049295163128414587649288812342328087152663447700566127394877340392938997887634426672200133431872402623850300055113034185508663593625950729516893096836249179258937596422659378842271023949124245806612544331002005157024306773390253897082304147186955438907599219843718182772986166391200354716522075617419115591442944246917646149401562829907233245299808631882973134309095915633914294319515405202902819324911715783350044823446703771139643378051070543713002746305033116590818347124869614520235268211511174797497326733921067838368713399543939757582102079948551167613126150189488352530313562675878636476859211273002652333365774817683088022359549184223057808708488978901188799491814855907833299666012425703464127862359099672361702362597310859065117649665456812775669842424584487280804623862850262134820845088201356344473435124559256105621793570612444482929638646865741719999654481245246368333034688343114179665060879472201356431757978489338090087187466458282075300340966708606577013782503315598478458218272781346413748102511018255788155266022153836921319844790128104959960149303676492858198015010102206259660470817041481231366007881170737396845556844132992280513001345951308346473376312799319366902505813423785753420301684981337291472991135589927352937409503080959537459769086715960924055643593214520739266310239849553802831899476555954461973405642295092538951612308753409659253694576208870046815091126890817987204485090649753871388663007428041732587552757554402744822754983921668240581772306198182266218527581107854716761783341175198780973979999684491486214704935084605459688066960462810888668524887332537472907816492987116577333438009186807880794927529736620453303737948706911431142559462122418445837854940234401454356738456703183351584117143693218516798489732573881465524954302033732337863010351363050122242133582876118265988149732444123027517352349294846782752626039684123953982164924714612004328354109039108176186360749408498470815342599576927972070458708264700776241446367931916294856124198606869815393095573318211450739264600983904733833020025430246072928157245336960198249822254422454413684210702706670700883394348554752071231565080941385942658472321411951809389035576216249690176381275462365872626561762024312908730569380638615446757851648148801741287676867598986379669831504154883107437074014515570425468032555047113015873230984574537556823934253840142750470693139731120295623618422813824114888582756765277093342212802989716980432664316805130505317281666554082657275289561829342956694709400657378918897791662644639348482591817393769916586811214446706583926357126889022861413874480850271296268062452025644123841182704718628084419034282348664046238207560342554747593645135012372926002683995111912645027389201273455625835970572890419724872479534208915976863147513736197914285846977598617642503673209934803585772618148782021723817485943626466104141909411246007335716588724880931942860184833352867624119922913040929841041265069917865079124427631455439631134074178959239936112490919926971427275686582709731979336970018007661152968830567953647348161582509941258155399971085203429304695083808022021375031247789280455486365292596463461798142030540842298538570730499106030720106482369769034160144044062392631023706900456299364509111908907835177183514616091503358053661832056404956196482688515347479889030671664831935848933886513868235604738584157162950724738447862165567884270638739593840068567088228794550839173798190768063748129326179273208153020465121930675571522846450672982694183690206259807344247750626928121221812470203297607745915518402358623497905432636611487191469023772548260694888558991904266607230501235021264919406706450932224210039303541411953492738091097560403409036939740957958571254524867157160630345618725691438443692555316178798119789575604516699546231751866852566227809636223946229586192511476339392300553778606375577300885510896877556419204789512639175483490983096102648405493557334508880418023460041850046394972811111344823827440008911480882806812357186381235546859683221620791130010101565384847831353256351022832011095279288831154590355887246434937167564063371039656576123084511904638094658258191958889227837638591696761046844040395320985798496653657028634509478718474813929953882442095934556642309287122670587683730849682032820352741527705767349277353652071535962526949526517344613777018156526079650188673204779155232618824588086628489215070784346778225352802015384090249924944745682760955865005196897120998816923287239177012797826533737306623154651471016508709084744377289666085875042981700124719796597085576343690432014060199420199660834328277202016681052569215375577394363662168232772949964619649895643542905005049224090534010471573152014848375288872373029008435971192683436319076007989466459324562329848483891599923944849177250461800717432688643429796479769425095593013308663423636515593354615602064111099070191744976571797635146969044133791445770770391670906904582057045054715616560101700038793927846351354517008767911469126992596716781821439146477188847152549829617455852035896559164893532516988079893103902245869745364700976438988181246184731032915039973284687994389142846494190327583210112259959378488183842333597976330149082295815262458605523411694326173135100481299143706778842544466018478026568686450804035767665725052778999966812473408687029602805245319969529745469942310132509014302522138800598539770825645292393335006601111031565517844511420119335408085161507112296779275244330549439161515080151516752140678037266054516780605135597487792978290471808662199021085715914559680906068957909746158314984004509534396993270134439771594188875733158365976169187833528636432870207951713893432786398522565592369114141740411475949323494104525673566491737384409029744396832714346355179209700374121971569882818557697919223439980313294812725446013723042915075073598869323722356677734027261236095081423796319087216514273558769427591126638547790268980399051083913812383755897960369916822302050932792327701102831842530381079822069813790522168513678487257061681483228075222979673921337390307795937299456498077143217752008358041684853091790183055885955367918476951084116066027420714032871147550392291560394225960736640971783041166710323184647966396855068266486926254458096591583561552047682703020644356879718984432944543551958766212066115327447356885934672346198845586296307847729049446810978236336939696068714293346620398111977367191693437021890988379879175884965911788298315016556123262396222997842198222609199948516955661809401164368661611754121715350623388406466897665013099129306541701513630278853520994324554703357397035461556025550553269465381715718865640623056881188128076208238027734679984643888368699820428397626644255357143930329729995763197744499894557237910345264392169324464902613008340290331399268474912837635178090553082129839128676001129221062758534677757317193847553932407972064430408052088460467342034677365237775219905110963667095098571439929496712703457231506129317580704756508951461649372253306108127985956022409913035239126270147667764130187923017041072624713136999725042604055712098741208994712855526215010022076354475556065157955357927879882316831098050572172487183565090930101831194629451939903710461964222997218012780494934318439595420646147943447934004570103604842159805241973097713645836218492370394364288345713553679546982085442068466240881496742979762757117174488893762142196359798797304608203094841593981042109941309480135934710723379640166192463815024648457218968203933639699682010375231339959640386847086033506672872301562581396915438880250340362882920449414888763176872673287116902200350570052893112554075569170911633528949179394229434594845040917670996543935606962801157191842440897028483593089478984723408344774060778219840922112868177640847220899669648960187637959513756395144414414597406964554988656680252809007404670166880204600094058558316407293328862933928746623298654228135516207490715428710604667967964967451600554625735380040893652993920445516050108826181326050313240142725283123500401512786931044927408880126777736576589490198002775090495960366990853567672336837068695587563919520899534470509147424462540220936952324089262705657644331912362783504142145110665793135147271743739716430911280595539256483202914967497530186069492964401977833665524284912967628731341961959289527701045233301575554395895898698994111543378098720801814995527467008098581048765381051496242183998842846805885643036579720796724128559500100463447081301102799603511429551647686475442081539417743897636284958811969511083511512654851365181471854646422068960029619871576479094877745863937298487947295055190739819999669102775609489992837163113241058721653851740881643598194825823020162518997050543354039202131793449666299023901488572701889721763611327537333227077192799516027653951882074046940133640857379283070202828740954428592320603122313699449388582851886254966880607276877864949256952289115997824783838673353688223049712638286711081810373514594334717015794816595739628064204972850122878234391748051930609668267649642610569850393613811984944663263696911647811626435996718656699579034457899510221450128522983928274866347507101039862753346211419002968349143181227894919510310276853119218705101933007719539977768072854777953596107137954591762665395404771546723695760653962263752275812554551817727961774419322074869871430420638178613003986821880384595759090072481066382521988942489592787053096079122932307354084331674487310968836121378814918993643199142023053371153869389457604323514310246593415702620277985477626500508812713271599442680759442552200590416694195378151633040413627666526772574348446994635302046160718614390396358099934073756045246879248680263066237539172275331102152522911207445711897259933525709266746908070014188343703632399056762499012839067203869925313007088098975759247903391536196020382569657399962549956540564081093399563842867788647388728464315455811921859469050281409198486752926091092219312322356751343156446754868546487209002572842517444906923128497130910139005991126677717203305186483870570113249290241355860704835071195267979326330997456193851827088416460252314748126878995015971405522072521311098985270658065861225887265999450820340982723856374341493677942914579217196151638703790009090263892494633521810328337092054815878297002181959191799657968001422994810323606075820837968947226350821014041083807541653899370655514174431322176171487750862923043803103449952797173147659895310454439913763573656319794364155763481091908300272967806112226049840534134458049903757943855746518703889659908285806037645568713653780621053838737797110447390284459224833244842588184318816101073870270898207185686986350783816896514217918394774117115861223145344988091109619898653323019048452688160652045666824492612487461517132822975303303342948336286300491332452220827602272174134954286135508857452414713534253093188938963750732141296136114528882281346424399780861584388402762450865129298417888036271790979298784234913329603509117469030622090588646543782336733140609900799012056835761324288486872196482625559857960531612207375371671678010413896257377693245906146835804383248831912244390801338049712136857200480820249926599467312143174918596417224890336650249953285094801157034907245233435999851471701162476170691309561576956623272382018027928278186119751532679035890857872279266230558721205186384166994247813349355100322506555541250650975534904160488525670942344540594565091495257761423348706937505028591382208107473673197711790365984327009056920804332347663625364330495793136236636788651568779696877951578513431133026484387991540481250330422704881986058361083765937810253675361418846766325368732465266668382621416442316554184932229997608456067738986956165268269113110372661650511483638092416723904106985849172523550464280548523389818472612242336809387906026777007784206048134672385752377270282063372114881460921181176005323914609065655459974080727340655040730722928514265837719170841529631470648720025069064414572032967518977345434880693584392668455998811935542827389215368187843320693994191737001622765519963070094114218523824782249471638330237101835076009823942783277168143986378309133856266682701549243298739984857261407622629531209394707778542920301444299538467572410517398414138046759523704904764480024502990927481318251910634097735018918582147677533694048826741605727725221171857568839892989861417710025405658405364376250090649869153567153329626722675796484740474589837663912409191730718317082228767446497115156584772207995844602643710667565560700188491757640436757826892557201405157165196237697274859146275444602389241715945026635956585447420745255782069655309603782714353464554494513857744420443399035880277373421091082894135986238615210804222362457183292563894016612157513132237070901353185202354489782046533220725550837493343394801240501895410331213912641243693470743926312804891475659383443697594801710741299558401874076266203306840572077355635088991050147754988695913503523784077883843350287854475256241093847814806470441876957662100207477988986611166233974413899895654176469007710474798245576250074338050461301846991786910612271287844104297035762386881336604606539374416491178540744494199402553451776637257273546198449643484557138849322846501084920677146481203763093139796012129255248849553095138176762933115292525524151343151155655594708236912130443468444329254576169676733565483573384006295702131819939173225155729176779926178739676587066322910623683768457663666881412920651693173275200356845923743893689990373372721164173572166064490351272620126001437783144029894319666487468189333522119027826408374977506901483760033572070613713571618988149132224245518993307140333495940044163110152761589271200495096945644858624825189907780032907414624513022002275395637247663508243988744293960252601634648402705303123763088789131779752056440495467725769715070732806064407062147185021502027165770191433430578738667894441806607889778783925771984592960661817375962657545982587764466678127458489501306210245079427356302339030406801730360614753157231150679705818535554088613151984648618996500139309319057608397406499566684196730356718418303138698017161775103335245595692819458942382924372459354648448530826323514957756419294976514552307507790104232754553583079158272692466822478624633713308093892224498974242390116201671527296201351701288848965858190312623617990712779886736116866236093721867294557910580424037317311796470079928363941808942563542823659536899276871708635077965893788891132372079662596237573934899473125733898795708493905286501576381212762362880627683565464262352431202678244318366025167306187323076623080158643229036578062114557920056056840111798782950948323520183927387961988935272957151434492553013449575843817323927044448094435285308566885660423938275484725036591932172445811582194083987477832759167676899515597258545596644070565243004355116963091139291576303595702164175421957190618316444249944680093623402143853396240144851260309543593911746214494495369770029133933461234831078171321118679315671464058763590433057099226224059723494471007034668166578580010969107858870769300545026973050353841991101525278299661863162253462423268244150211148115274616499418789818654701000628516942776493684133535140578408417962993866826271648858189801326559265561411854389214499394210008220365160454539742430771385715612250711984123885550683507090165807045074291580794313148061730564787721137843164069445287375535277559770878991961503379981552815020869923983711647998365251430984744344859995486741798246993051597402876736183071064169507840838690637673041778706517256545240311700232470509862966905276110594285926414114379751687409857297732484775631268844255616316676409286993222312308310624041478471104520956946654585328125540953975964284173329975611785700758667037117947076949389718260101495167466434835363732097634131463409004736785052726364785649763953346538968139011179582739518196805679316650107115054400485847883556467278980078973857430742764151383235693586988697783581817366748298709842589923631679747799904034466832561542007279904083460371135605859826275720460564104594082392910535927909292557177806316006731851400268787406880498413230525000069195792208406662711667034169481840289133493746317160933469449864577005899988128915765245300123911092290485332372369709952409607925361747994086756273833732270173501746226151666840752269727360680405775629204473673792868052340357826218238219111287443724359225188428979023619091617042470463518053295920674701118475858049474319832907781691306638317306856362899460149783956558847156938260328177667551328785865452698046721018715967329005187059462980646668330364376395356416633289500096953992573064521474220321779380967591376762974784095316469117378314972369023061837550160447346466577827662156443340759790651653574647628967109714446585870200314265443742219467760123549615128569894244185058589825603470337348504034360127947988186486986187261414574978285331408759320574189512179466410417088254376461137218603425906360253125999913218998278656159084915882618146148109069308208317253642377069186521383484402651138092935507478190154995794120230882786189322312980996736154152458590806522470907333716807327962864083020163468167153748103138457439583908201176265740918364504979294675116594921634425481344092767973780890284714743727612923815485127457006491629490809327440769988215791599915040400173548940445949745281969023513742542450337599188936920864064344825407510069215884768144633174001167507109519637509137372992022558393006156528744724118196943198674623821972986843949697590694712161667303570093193084539837869698200844897098212817811528650524527881697628641506696794720668232929171376969641557366541895830443075028115972100666575421897490550104218133028706527100511888381035582305222642868923645864689136731204358419445889704711244939597834960216309647832354413442655915140170775724540704199011201230054892774600389113207719005812839251915230417018443724202060585796391829356426740237931123479618071609970388314881227627610998934288677581790332145119106274249870444363817661066218982632303588751935898902431096293127830158032737474828324645472127361426239656244403467093687968765801022638998541703708910162270490413235235798483715827585225599418163213141056101596052426846424507742290987937622454502735055691360177658507734144278968073763391646840364344853830277718076721272914083049808092166551501278473323540030871388824727899262041643938023197573537347861276854154155531388564423465015544689235298722430113457416728815319454789754312774262383140238443363438754975272501474598556093122782797574007928690158930024254276229190991898315273579646512424577585483896119697769917384326264005223325940489729553714998775924322482798923163830208130706484813583215578379149682150380721952001161460895460120662623445869097226879120970386872775962002365018358088675315068451367236975506498822100104108154640905876621242921981226814836879091293130371313106614657323927966315549240788293088684030814002958767325082094202948789793122630335433745864281476298888034208145892052903822911165542726857494145666052895385961791567924321042749803448429882214684173309308662342018638633657136611621639606520021593504876437778675549718896941729000526115919266717471920743088736607502570430598502339297065545045169301166325819321870762190923252111972301017589404332902383605270099605891181670800616505707535116086288081803545955924530107369711952194472609256923513044967696846691205205106445227385183578064215882642406779995518229386400862498023857192709082339122484365452901514745123024194313489686460238142455185661518509988893906677714203319694110733065584376049428613987557400125368550735166137108007295264920845898295331736277945769644895205340324939172107213017697161387556933477221184235369024220653634125126779208024042604325720715921683261413379998620302732403907276740619481565758459343725987186797084759190396635335098270559383938972856803950423345369139094561737572922254187803535944353631728854143310491478901377020704835800556579050106908155030877404075639091459326635213319471420489722983506336879523361940963169230998340219034785235736776253475168609269520215700275411128052840783778898029121511886640845438470404176429603420760328203139610698249487138744014864410948679613748597802618475501412782375195808769809825444370742592809749413335146222409586262090216333818962643244544974948589300798980874570961942501694492135146419820220571813031694406575347873779862684763036969231003274365861158193588317123808493149401006469608696412980404712942092581429731295790479343255474467995218590820421124918661807027841549536454062454653095324756025530650376007361065034579232557173790028371222070117105538389727346676953245621088785885793885453595563247087971618053256686772540584306639271368819199756575766689952881607979356524998127087336066527585565871174866836853610447833412904734995739065218007095913214477327712201064762594372140575538198303231277631210492324836401807787483005178772350936525956346299600699291819331498107214621481406437754420904311029690304811391107043918696880166475373590257652611934969882762902014677862403512300160298105385459301598909083829980235478139051118659548016678810301970967225250641003641979349255753789059240537826112528038208121861943786293996080780264875989254291693917380333085309673937565543312816265279103342431393983328534600670783446214097544754513414431527135596804106165590394377311904253265380549359973195280816302331021041860623538395531981798924621258274740400358958033459699505091777324421572165097035824485535016652822506855980056717918810958117063071612726145218399125539221265189590400061804404791664934813484665567545773445594721633056466485374205382678368247240227034340211954695496139159001860137187058543135780509860383214341911794180851871469865722081442750251440549772476619975071215457340269162980799509573009549560320139118393381044166962558689965990296692499147581850554819032856587777026239478737838992715005201978110600572820035089403116787754489626455766136123897415628066712746372641443854855467347293925754175465106948921429888384518980493388568115975007929723353916388864487194647475701641780528321204772328550884015585996391536307233952185396862001594208421045234735625767403183428871284406436608747196942916554577047244522180984955170792764358794217868802808935127809382575637727912524740836210616922497062226030864106436022849131172090260422472995574515692452141374859270596251406017222716349412709179879793063043369031313931104667034836325682014831281324555124095612109378507127707186568259792391334252946233708502923221737447780916628916766451240925118517888774632833452227182405998998024829579835352663900522047302355054766480535088999924215034797415132547579883286885925940577273780344915378260614249184615311111105646759737454031088902128309884644700261400943043092553395100810448431770101613868871721300449101003607602580439116317228084290744968610840163537964448156381736920190220278123858211813731482050078859244061558120262402758005198672030668062342638738321691736654104827936029578167046124924491784058886135319926365555264151130819383738010635853213207599227525897411749189072616210394693709376431321541384414186593170257435070531891274586992521081462819406871599011978779954632452304479932156044216375801248669887397944682795424615092422890483007190876464679309877776272956730219423364426596747708825893522204417220166810775966696846250701124481222658673357065833921340581787574884592234326175135507100982822929772111998554495172880380436868766575483490350502145323514489947481183667906931560605361679190312259322387136393203611399196424492680569283860659700593086348566107526412837193459484479749803840006057101316042248284493421808688076810761848645854246677318613219196598086134059976919567487276760814782228213405342549580769639141776933828656580880026935870782303117362730240208420004777292323528700708236062407154309453641103477746309456301484171642410371615804159861109637057627984878812010841934021590058239557708784035518199320277312474911374829350484866827163125666455657739692761217566893636148919226111418328872206666301659870707672847583311703858322040263091526948700304566208348967415542299912600524335921474007630696147521445315992135520204134212048073178652196488883949136741329993818968656376982005325684723629989668906917845777320888136881275994864633946909133407757378717720773832779868816914347411335793800703472054763850637390088569310552251101398462658062502870896152566083334230527512483679858706947415520943588880791254055102479852486250048763711993409466882422945713033115944731432423337890782584225357609189053530419923520407393793299877442529300636435218157700244417001701860663349351864930152458788753244417913493201764411784929698785292263606885237049935366188049250740158675546969703984491872479112305925481922021820766159201730064934802378224475445728825651756165805402094322607764637070776296481062555824156203928762351941643466082189164424031265462147186257330840333860437533424633347499066468355754716833644008889402546185191107633642243101885030964172033986050364238034282886720866038883534632221083241579430706753025906754830515862154215495085551985872905929245718198786183250471856353336453076589467884520561426054852529326025359689246582438013734317597510160293359233830243126911636904939111327461636166294754656524104011187363087938781799042912237249006138553622545932246749670922596996937824812513379628786839718997618496738827124392798830958587428218839999919292350087914532342494161257445138593283773991966064869188514907498198290777220855916945837972747312850883508790976583860745007735431054249135698226470405114645204548912755647556753224813424185862524581122192329650521371967283332429638105189710943911755488793362014855967799347777623004222491945813734905168998809677292474706764652416510323873982142012820772758143439437327133491777964264988885214456871769375054923363304037833708473155316223560848096668011667878914504935496970038483277755411531944871993585530800661768136022385676342453194270016483079690477736049035840836520779816330102004007839259145062088035057696657552417013395359355649535942667825724448571242445442810827956883749944524390412988939754982370977194901168277928279868970613982370734855107314392833104477154359136750795218749971813678734209352769358883207138080393692724485059910336260448955222280020411778941638877193836328652768598485512118295183472491484337702187085577768955522966269496802567127894860810222383578864633182453681649874045856029079908651110448490119793278872751770503377798388302946675138755312784232096693757337244915758586004565418442929958057838640582965306317994768770590726092728682398305259847143473232542399167310600429093173594848588422311313264456302817894959707586516931360323891414449464608333869256033787317294568767159956914274115236051211339586401527697767574139576217900110420409552223066936181932345545161271338464249718304113404275252629587819021264976162865753182408546267347649526697447329683285430481467254201270194374404014764328324208750932665004534240105190052011105304277324089672383024997551907568038219711338536534854150864315031556205046493906586321368749136997533649372948767670040777776204963822668646182336949202490743274261835924815528255726480981662626703439899296793634401484632006674668114063649444137441576646934623125806570779090278869874113157520401563898573674279368895891011862119215775663698229166067925250599120126876028151460433823687949863380361105706418108787548101674452993873624559027388375707648177221817834919544728785097290961487261636680171380441100659616003653597188010423314026542818165605601600181841339664351966606934614423563169144719161105105030208522469871137320486020166116695920019271923799394345277197123135947545384676088219595222365123731742688044806441254611855422930595709879454948800564545468919006623194265165366861863735362832927504556564667530893016492672773723933280270450112414496480982786756068672139357701895958422948809297882559863473643736144641123552794051575580197055896091777453843797581152051042511121110526935447961864962988628520699719088160555641412101181304035991640826630549655293038342748157307388362439357479571863615032147776905871430792793981286982427011119052748336089064884895692234218902000431328095295109768553338183673736163159828782675158088082172857346398390045331536568951088021712350266358109214308464385326003735154148047392910843430335089504737767691822475472522369280449443270403240140125980271465919474877091027907977199659301618448973094859327614792506169438266821366144945009313626452745703040159360145942915057775534147600222097446634973127821920932266124453717804076155203881399570744213004651013873756971213433398190386546079402339715176659509318193589731303934439535997092244576471109806612812440140126640785957708617890010796996287245923523956339089932968453976844275836031692074498015163496256632348109291423649971174704218223206935111297472473315663515782083328370406278481707385381071862403651408856401712370435684837921390147662207538795670267264461259951223079731372253639180586452632534735713801647031357331445208167068953244465596571566467101607890906560655074022916141422520901774236852997857993985441978674418170845704742480740732778715348991700818289779584454044881412369974965981772119069236552914999105453820025374456096477846149567438393245197368185194557770578688997680712578451187404891412788675467699919259275476012625387660736793130686828903740110490937407763367425286187670690534167513081470825634231531528656550022811312484158859211892597759440226630771940566203583031760411007495664622240713670841377861790622726340458812347545043023622665476850967607942644519731875425417776580361964291353240792417166487884713132785528839541850894607640346116492421588876303498308143550222861755703472825363309591801350120895983671882918909677709958347624032241042527760243027938362141075682343420304017394692143243660151056346044188153066025988081869404799304380568163201799775554713495050794468808120110658171605926518260643891505849344634096474746613015577156778917954875403826381633197318552263365836967790245967250193882622516722315580613871426307251797317195719218530297720929357944195284210447286924060174604960543296163104740248597155775701040077727594069484485046941839049731257254208564771718564300584407389239278323968136402691323229864057453173107789733920808514128907012142794720417894811157647155238050469718779108682277375949540971120163581318766234119183951652460265299324478748069164109061666224231270372513259792010420748403318023241369841716644869619393302203014398807646898929214005029041983449730744845646125787734594432492649399562236284746677197351170399819760283237503041076336975999057128396480082623086505885808656475228400782684003275797924772977757651477536479848363483198121317529077323284823625573990790659069077977429133634789121191443621757395529222768822055430240239112350237361740322187955965750949643645030701306842056832029550570458655319686206708633179755789871488697431181343485036947784569651212991292482745344169055143250243999537090432363896522393162908357622722036093832025037213741905501331218387129490699908518137540794768688701097123579645689407762590071521371096440780441873724555624325998585672946758703415257150265534547459090764928282788398833984375752812704900782784120351713679698645494085096077591319672680094417761387530497135058501376849181990018810966150032500860415839409931154090292631515467233064559568603327551587507762692267632937518173353947371859206663406841194172118807569182733678024407239877683076381401280685809186814083947131283384625682155069349345889609905450813161819101208281287370488269775516338623032929268263792490122442046351760197425077367681067257481112377987907347870782689571446223683265802577369340136748044730204742216663557118497835096768159242575467370757105312264985627465166320583446677706686352155134679755432046598498714945261572559379999963979522759595656401389240058603350799268603386337898718504323416726813064527862906078369877713750889808690242335153732056740743429772181444443803923793826482975753619312636740395250652404193743760122732199698989050783923966928112240720015939943279572034064782511068221656735350078614623560512200772367194636988606928534444988503682725587432038863184481394205527569990477851451882628285495010516830032897805701693577241520487582530874350831020244806560355762379203226200711443968650574882581758149486188529279993255658481668120421396813143152012693805661720852881050083015128206173035935587268789630522433004138249902071033427116801499355108417601454567005889402990584832413312052595183130813188468601938796574060885093319988761524881297543611435596141145600924305176198778687521411154916422937543835387785586057679039426550938764856262389236776494388036259015847963214036661816535765196516258946826000495055274278421842767992743492004115461985012576730782737727453665902433636730686341786163321713711091177181798961428845230040711682322248607019803093913285085824396603858611328794225266243386024051482154551421314547150526194535234668069822170394426798212313237453007698852210984217404030127089988588343219668824284301568561895053090239302944193104509607254134233069895071687470499720045313466392976621013213295504397514632430150703920109201385000232310578239593033623136489125831353548683149922340064704814789263518209920565568825346621194200789607225020146764839248395812001248947372374432069493737925595839156187637253217343713313179419103974709269166906725716847790185044297407720791697954133443661990667755548111683422001002199754099191628471902611708637045033567875251094455097289248323722137265915836892371809462172860034883227599813785583169650305405004269402762936441752772170218160985392794364834958100622453227322115964659600908147757146744463148685442969515226953362804733264837342019806684382587482059736400176919257606552172119920373504458752124548088341307743674267478894536920091081207174921402597342596867164744399251163248575609283037536220727626114944213060592641011675191193882685413028397019904579194335126859881456699752903229821232794082486035207164269430701217291943700225517830073757080780614291147192892565862477897023925940669630059857006640946247245256509956658278341534089131197149107377762422762720621152744552975095127381079532899420385909471797027634824481095343978095865936758599133816215733794494280728847245068056261356982258998347576144910573133171837315357519394529777980385636057035027378742093216633634167418415734500046689758139822221679049181222170489570252407530729879381387587360959313699208051324366360783461036958910326202418576853265529382863844728723265338386386719070104117883546970517780318660380285307926707895369005768555090225936587357608383126337198284795411760468006248953739980630974729023242014735387567578719563001106528567943302339826813061712686798098425619738510839524591415479036621958617677212411838820167746053683910596925636670236069354022333774578154651974357687335533183179488403733566837731007245546489923289862515450437781897705394064518453533077320791677439710865130370175254730102916705557129391472053403942612191625796631473279391492879650268528605146199823711205719346504787655744414786102970204438546821092356697389981964825422811931971870715352818750216486409487382131471815613352685505549963813689932649962483687047265108818507041737896379459513437032554079139915430307533653877483622505833452916422583770754393479847163722055872742833381963944699989350801628876708529890083278456035405276458587204366938198106907575673655894983543710983202440406267331120657607884965440835094281856079637489057322230627405345918159493488092995289530908157104149329578329808257722163946629040892036828334320363744919402802447791911718132087748596482904993293292375705975131975990485146981058756459137395642069124047924082028586251316794681444756709246543934870873995386408848089237146353221191275337963782440829305472460671546530418363566065386298455645807291202939757369649260565675776225488331607057030674521927901637529343009007176245829015096638496303695724509347492442893193554946111676886124262880818513528747989005810140850755000679337582413026357204533107972978334427061738760703320518611365331442048681701283653874118486627031882555204310939458566472610983683095266177562195887739287602037624235620777132030287401977592979060585547507606033827915460054333777508147132460335035643972794670714892695258921530360168233598447087421627327019161356087150644213548586302446465090130564241889220398319170562559347482340784547215720784381662952393371276213047474090549575396031679692542626194789190698599229702719750617636420520936686596477426312157829789332519866073622942259396608601236234299039352306215960958012243274425543447057812127260779949404352039191730858690713765722571264213583100583618347708223219099399117809258066480955897724153388090582464508402464268138783008541382965498180773896793388764333684912900203725118076884690786734427085407934379354609831404519437815731290629877136802439059451221651678491357110665536165348817081510453959583053960405263562766439800873661242521374785437909078974587076564077084455040098711852306824398634253988846840268689652315518224414477400774972203784299665095264534211010787973634656160979894579090195110140752992462439341852787396741026560393982410675639556558407564547064026855950302115402910488802817140802111472464993578770915930868505968899375222884054093523625742759131400309309348061596267528170160898391117014870492863700477664368552079573799959909706584140655934297215733366043572996558133393821756583973167696602258796425140592335458931653698278934691979217964120662073521706177107174902252654254992673419781457605564744659409202817470329428977771154808484025824044930825233335747704499994212555953285445666524009051098155765774820563969278689000054902364972000264366527283218101992087664208335615738122890548415267095771797822314248456580737758581210026395308621215046603010390160383833620516410200805945068180502406894722836641993869376369075443192428196038403106652863300786402766289711697197496647199882600221594627743415856964737420856514520407374417493501260191713355944947707067338599915507595834000159136246452534093570097987808904745349023042530063765641204922581471993450007037732452549734467075724679378556352404802113886974368159178264072625906571342253343115253404903944213586068952188435467116066229625147283040849791336885642323555532978239299194002795768071474239140160163465339391478278685449685917495700739662952533281011368751999865749521791290962702818958351575052039023116013752778147095681374162100700274857800893355577288887277132706414187687575603462263257346372403482233638400266700926763079283280349083000676297884539091685037400807414147948061212795927586119700797267393153490407450905639874462757996080131850508475780683206045991586838349257818294363554406478937397948288669422763434878812145952447484593381235850042718647494884811996201816056109581696827720429884546514274900171437681238957017169293933945531450089421672284528931803055112995404438341235014597009698438903036490487208172590097216065290092316810390777247316365528885520136148451493319342973865367294344470445620306909269863129144625767475555797958945885677100741606897321353379850455839990364890113501593706217641234997552980821422894633738355398361581714966783101842207335728830165419395680027907007362523056376325870037321830669559939116563203961544678384156557873723230890153183662418892476259415262801821677050242510989872191450967473171524714199135411452251760669711974005664309677295586223393873259687734647020713477755102273468528327300331517126199816795915926047010070939897244588608003017558830774327274694885380939195806642465354331721979450351285967398380361531318083706549040756635734231455425681231900660943366327632841995131827445493393624516187838311047781096494825732044851619364293777837739893172844080033583685989678448910547327427373240664256261487428782994174589678001699674994973551655404033726289075583350955579765145321411299931728270445631762812113167213048964668194550214275665443787168646558596049564366247416362512675694330673933914977812089796864825283044195114989057257763374386547873642522314025233833272075501498393384393335023094537562713266177697757272213628584352363995038535770755437379848191670502131373127004659092845844489822107964702757967455296072527693709174664002068611871283729887195717709439512768149721098531090849321713797997061185638440480140026129650880068694556388910391296925724894708912694186287920770949655037901189517908592478765249508309609392238029364056507686982525376585886660376558222799908864839648791313928864464811728738994537009535948687434998079722009501893073216966008385777521157801509768502972381001983376656343435598761112856534263161877743302946244495533003674418506035300501791655207008918864760018919023181411756591503893050131156487116683391247218652784450523096349668487324802322291197701504292561492049711219966242078023087699549126536600585400189420187394322806069252507097178810999675331408081294961889682659237718186320655322674292819324222649675218313144311465588593384623856519878290649316016156889246059308474260319271736690382891444253498802695487328078979753822495930473050358535359976351279938613216398142798954713875588694778497908491104866457869954511828354181539741415769656112748203229691347687889934457232914979549667085139336591745503634306608681878692119244891742878172376443488360008652145368407754395383861461457778029677547390017916931597611946463294211233109746912844268914820024091225123754394926272064490101819569375162731208315460450362234397243290517852861106732431638331134407902542043407532720034008626940208995234240247264869006222409832757565638511218668784771888107026340199182010783218686761958566127026855120073965061921087756189248349951967056269805972438284110079155402949257159989182052320140002362553863743807560214868146962896260360316939279141345620939170788250609370078491818235692652398573025263271475546782492486326668621769791480586753061754584333908753516928249347119206399677900207892140256370709219069742077670627343730016266253091894945697192991017854463747737661243822894211597658846805129884898978612659926779812477621214897989748281341672006041533102993122486878173916392966451348796511467776773980747518634789017523197028899231599461784561856918509693023577573201634583893973114389578525654194959245267327880753704471745273929262748371525840732696957326164767890214493070647899794501714116725190104494941237346268737207816087967742137858795905585748292584942926921111886197498006378856432025046445166243085766492873813033407522896467123166048945593811434677444192209841953808544435986682701638199201808753196130340950417293797450432632548261400209035747047208121877463728171327562879719438165182496957168233238775690056739513235796402449518824810228037730746807099683435353910009465918999175287309892347043770158378646879026105560570224557053272648981456678454507613689030063722554761926922965471215838464822470990740562069014982298491076640343628936899142529849129070025674866858893694370511942823474157303985198186079808137645788479082306699181093180856683408346940342892276276633688496302133212803738766055845737331914598276271298146898312655593529664620789603649558118334858820801779227160124338264944703447400043700784739727730279733427728627990114100071694396425147045720346000461826217411212846292514350270922528534571549126603223616808500597407118783993573636813202346174417263690084718259897323515564372766449505800751145393513731061835501665366343407385718057941613173900460436217119943292745224487844025093666893660938464064416537917683390994984471086903542741832923133691594410467263430939112437672731591139213473214761121769903471786514595226672392321160315939217474107575687769313767808988909272711817759602512675451777579857955721998568762372280517789340561315771598388405138198836435955145470669582290046079322582657401956796279372828029913529315635808122420457591886341533757750538566508330217562702416985008948189984383146527798041122414345172090278631020568350729865096452388605302756039821997320415358064910249695186873324969659469683315507608127546314623405932022393522898792714729732205501982238148207556895447035704036396828594701368861082001048730432527502755672286798032255537106953396137754954916466239090211851647249546913099977649249343639969663097817753743224540443648326866480724321610314575106754220873075489841170285646077119881248809793345819937553072787341623615967103685816194972712831515856280700958865117198317021004748566978119597805352913109862995813509889128113773808150425494130022809132311091417485379072891352932107944221637279771914952780801381429200477689659040213415707337643803091497128183436950269210011999018391232178951009324141759886270841877541215368279850384765026465135281671195747714873793417878190291988987825250552008645285633928591060092050190743207685857355343598458196259995615206476277401776657970891700415529128336035719951935774999557195081416768445677959441423007106519967353139779267047418626370329830772968534893561985337319302821962080986446906922529656141073414937440077736682074124750216506939184942406487782640589510620158665811988556096025685070193193388450533721927213681506881032831438867508398786170762087540354237863820727652891142798430374367857649618739756623849142399553839455805326886946924572906533939330490204188357816527027266220303878731559688791413939433421219145706953905079173702856982929305260112247159151674927816656755052697527935670840096140602210952072837438510583287248307535737021630436023691565022480764118552173987135068788025370442986968766971646617157684988936234089252035393512584156478609791485479014238480456044918800018960819220791376987865896019148334035587596169396626578615342895898866027973808726641023320290886300536330405111315992331983245447478267162426230512885006930002001098114121767898334650572359191205080307236730750281546083757626464412672656612055877794091712098282647029686815017120567106886519375387774654052674788381898430773295011551426393408941861116775416979680466716191497368796477201562664493780213572003150941860479361127747890210845864110938919553058845002682804917153091423142813271011520825186306713821227010380418047996062466729100631094093828125516361433784629521683283865298796927384494025809742035427895663646486270222906374636452436779714453565102829964872342763095739403876457006326445423624869444380774492106424953289356995661655001619241167256874457984581979905194959223531334145695031591111399114492689397890133680334723696730883797290146438849095441622537106602406762236945158514591324489291559942439788710288340222203057984426053386170034846553927675020682449738714429980911818904734003982537668961994566821998619019019172813456261212815027157494660498333561484298375107831570042706179850096496553361184087070942804099925059685384126581959442301558189830608925242332628131859359384283925762818282878637985551658362069545326296077555533727858552911274693976948169366230866127317366681302636312861856729438587922330950817719602584904954488529379005483182124984029127736722519484218102251655218905761093452991566756525669337604077362961257571942490795509099767459420775789416471832660132376180940087496888945664131828633208923074543397425040408074386149754305512091068166248617942674807741980258616217831548324383009704942912838321228968821209040524173334704349258967260809248220321958500357449273524586530403609607566530920750049531640384028395823588030141849979734262657962355503033482957603136556594197975633838886278018419690313338549146347567020759339016984036323673927210991508625401655852820673797121138268661436893214883149885949084923996763769693901832995394721627024126443535807803103179628448488638748552158946483331224122470445284982472786945446499002931425900095506602332122696629185693321273370416999500435504684988501940138753574494125920980412027978640347203744718144845206792336273871543796522083220802145199924226376594746791005490481482248362765803466199278391671114074785003259240295302263351686409421971529046453139472061781991659069299927910841981673333251680916663827207840137989493307730793610613396377903456331203092759352531211294548681706197884176872168144047317086617992330463532071459677245722027504034798452200670663039984515414740801147315441719078077992860846466494986075954393641332238610226823775952595932779786607014475718392961384050853866780964395191352983550866308994028602832310715454087316151726392903285673138000232259848900821431767946393939671408753649221179586101188153246412564611528593094649979397029104473469134594892977033762711286078381898782876322068841183651399846998503896804276863040688017418091380016391101342148936013997514725880699792369711402045633230861292823720637162568306127645130363602310353288349832256537093130229500388414617484961478916675545802147908240024238723592506468294164167360000623382714985503054767717968726868667573080644985954297211793392911096504582143571558052211754747751571014166707835294972924582044217064858378757300259240819357157417561087933993260973558314156047769896938732966791313439239111073051721271154852110089480263428726103971519749521967621813574941956442063399795224185073305619814156177704809991597445586674714242910295175554081822568875117315189125124019502070183959312598423310147235835503417911571013879816750341276287829482103973344733945935298823671983631707336376366575630345733731252754720051810757653979546346536759923759006351730343090267937805719278619475681747348801543318662744251794220896640092190000323383928299711109413509771219442622926525094157079242042446405598507295127294365311318506892077281829324536351188640650732041535743190867663630744620888985971350574355347955872298672833545681450374115758665523915567539007830732083549444986319817188421869463537062091966030952811390120500113560728199087880220557460696909276446513464048566252086239543887046640818775708589887220929262770907011891318730938344230147211319486730737859825307483494363420021365214305952386849971685808567660297218408118335970847422187446350493022460194202837435963018397460990680297975685356243458528802285597916838209462707227068595763235935624968710355672066783307247239584333651126128938226388376804370941572331347240594413803577012795507850590571913875401996740856203629788337228696814756896010038211961995808575697165116788229846652579026615148461585663382920187692515577808274732386089231805362196212076810020309856050109384892468171736916924340213637868736002826304104568459889700304640197362725262693276835900457054896065377108086822320889637590689284215967868254353379940011460016330203983897849147612781452383910362509192248421457743780781193914198193770481490980366345234721829222556955771082724824269525297167582113609273721934193182426694088243924744097580764480357991232592811473582613512525964794941168422279311276453881073776388754776482418940545621618082994254467964541739818823718038548754285668963194919430431875553774230851912873940404959600237126147567203782438428961883682252102361819343087383801631926993428976323464443088378591635685787884345495129153146244810765480982950061177226836538072269090752193575784866975047193701829559379233539019394873433000313978191697163878979201427274865095560874418370480631333884927874674090670388029701919322011243955390830847721286711970275802416421342791568225240737057994565551139670234459796837786694041786453439829033178737077117548455919364362466368330204402167773391730055827841293980706817238824661089877152404449072932254590059408681004574788563383641894459677923190970810566787838789138545675379220927736136973751995587956352907171564803795815662863065938298891903478642466119265395851058015208055955054501085661915807237495186170613079276772487416234986980534287050935703890538140389580621552207112200761052779585880238816195519022596289032655813266580132422040563015647080184830175745429886015755636711379827368665972142382654899281124500832220201749598420535255297466660517484625930046386552449431257751845554446553177226943640113085056048899773336084694952904480453669262942002146102648257112368890000634362339810577548903469795406503357590470158542522762662878330209173747393095082085195470964325820625658251271188405089294077337969829898640894053475547229513453396395077989320608943468771040859690664236531916194670752819998443155640566817784479244129113872093986460604517819073678808812792226970152251861000280082156617722913393363749590021135215518106071404369680088014439799331681815085303519078721944315058424813831478906883068416622921834195233326726775549965167106614127791559827246712116291400426191951695807956370521097106672592636064974769537291811084870852673012415309574690811102495258465616260791484347851988590988962289881150049402757094590245307838778564839456024271784697741647300840921677615136679924393525088990818736953360062589171899011302287061684331737813934036304542733715508307964682600937495976850261824862370554078565963148064868495964217760299744219594235409922532456416300528975571072413477033536452723071395308941987694388094639055947333083087862189427242518795676777961203646058227589950235786145086598979720493761701910330598622964418976774557240555518189899015882910014562822772826344602481191011331073333439742194509467772798324008629014779687711659947019073501596327268023803916982513321150577854095412717964304809915028344283312707971362998927927543188427902327326046734612267790807278232282994455467429652033466110136711983231052224075588884715061939867275001365240880121229950174432072479625642721497602976780811821474571789180411078860535785212314467253522013247888983540636367983266679514388323663542792843623029899344754549784980801054268520786109190400470566301314954356080090778312028723394418453926235955859122073575360096415634115451040904449639505333463658181861527708160233565441279426524664011404655064080400675467103664105928092046461426609233092182363556532921458458246836472182532755827139650224712987668894763628971903601218964568201124531812684074407365220529761094061093493141312527916890130996542205754099962176808945054869216568654859838971285006039496077722832583965972747223377972980648299039105129735934648225691872761555170382146586826903854894895630610261220926452646470554400297558085042557860820402283246488584140008040833453179486093064299215856458260567848419586732454824952993366082902451020947414541129724920504663194697253179161893352615754461439877507884660350404029992798029203655247279171685086667850904816225876398803691234305311490218431138495677266294250907884923400515713718103328038213373709200519627893309754899582940329590151175856372059289306801764623922326821369782339129322947853717279935899756072124264717109321751269073657053464235292241168996480116045347087875387487061689277838321938085892642891958274974126178940757265359376588087779680830936594654745990306062222554687002247386991856190248125599133636782210781766404007484074160482405196924512989320649424743707378731789655944564619722621589572913184566203587982698796455969527835164781120264911312668016040803302301124259530795955202376317465088650630290901633687534002143536578903852404149429754957335054442722255730281435022842770038428763788590597753359150305886230188789781747804551960589828618566844268480679174970644623409420082131331379389484805443645237738477232478476582315203001456575077027749910194264956245750008188423957930240439678969256178391640282659854988689561544030072348133948923834966876380672531676959527168027224488332972152508996552762947482801797821384193133401188760141439492775571959233440670086230691563808265894727891128460202849280945830946397674176981830082621472258668408122267385100123726958110337298642426184250145859784510121396835151120791443890351224008214441717066668122207854600926665522434179904581906956674891573675599049096439192559621367807790420297766824026435763147367839055197095053096615925197489039145922362601585042664923118567227451276825797512112492181932560299829716485948054832065835003447283120341615294913599150266038233760551777872352555222961114285361929902511538374486654132802398089598989333446388994562171539859296912075429399468858756414011411509085516192652104081340589192938087079356371333728900021735388560421262223544362038038027827609953792201829098310759612641682919786302675032752098793221096809319811392921531819138046054255167720545066938861651564055517379406195735687606594705748572127824666888143535214415048398530326441383871812226324862795223874881080400317235396708011834090599154192888549508140470301712593969462111710273266808805232111325851036851334122694900610654041545577899583768241639839597322395557550322592465887487575595893084033451033632236339290637850194110933369160382288332222935862097312151078065222998010700423081986917865905781996329388402725171171549231887434275468666002526406369402178858046299576293429774627876521084934997877938321410175022645615596059069069688359599880270501770764350032113791559924831073905752611740279524773033160580067909474213847500929585713184944840278028417301716877451030413796517324834340404217678940067739613476530521223366904730217973278925680662904301906886738705773770670749525034322407344089027089024520256961884294393410081039249453392760561520274634758794811389655816643006689234282355416055531495548150968893564447278004115167153215146502646002662188767200124340454671606780071273523082565892420460041944051032622960424324044880158759477888609307735473703478920630362124711036808513140762425287816948498452539706179106960768415468223091013393472066788809999910895865233002098302251878899830983979829240225099325108824825180966358797523048456776061628122431733470116480202501785868926915149100086396998283238210981224065323685386851979486628514148670014781701783855874678378488475987455004108961797779623763508941787625220496146537827831529787961617739441332769907557615654548777153378619542875917520407205892368329620156404389363182917415809309372757804148529240475555254213765340398789928844253830101983952220630274278571326823637735369843804283597911779506843144519285257114847957908963003179776453628307735217596950329406337443848342614528929331224792465085501310897783547148093428416031833349597199073087887909935531641717972609764052681779878464431778959625830504544398602958178910671008899136976969694155830383008193340714102381440162875578985337789172191386707383173493734004306017709380797106903852978125660936763258068668966130425239341909664061094364824342422588874790435007218769944906242311583189673845225710464667926785105182341533447691903554423995122433114765316300935228323759668130216469523402039535620696733560731425765302437656658141904223561518427556868387725734263494974721258607693817385282444901013444168246786427586228252985666574451120456633703692873985993675603235969718391885276258392083111037969596429723172483812956861307412676543822715253704028577964996518609196893546929864662543247634363239280146536392012218098498428924711111556003850754598816917108745482406771909478592823753562334247839903864416390804415435907998553408578525530392950470504836186647818130791814849232247276896674701398479873590203959320940822826359209179542825796865782974730570444394143861094340173461632284309002870342387447932057637942826480719583209828730661535211229382211256088143744975201321773033953506623408883860324386213092328812068343692687998963937429025753408726644360603637561415558127260509555081644066330701514275960805965201110804285902354457660577862729219683861101444967160794813870278079465040346713518234471317303391897473969522937322201217507193890582285455852863109683592852786161107992481720628091696692979111618894751451715840187112801713619445214496199884591982607244644934603559603512644376060443648414365560993008666536982482472104824708756820021910847557265942389103668615573044501004349238771899943452998899689851452772086586206291969055135379915256597177060845507593356314585697073915204040600408359029616292328985475269389551545523775509547299065210648563856520978661269972473784392074985817664504155651957872994903323380262997855255778077964124952472514816347594845534277146313935685047008403587507556121826682276796258308901017768461278498639784753704470431725474939916536171036418073046634078458417320269054575487342730478239685596261805865059849926287918992219168577767758816408040585297294482419129677375010407934096271975851313374055862891293033421884919085868497690714214623418012046030466832885717268688072147291283900045951442301710954406017180359738903070279372315457809503177179063002292268111235801107684722432842233585059292650410837609576684853369785102835349520152600756561528944878938549414852728205029816353160902321959114119381980265924672896749085008880095223610117613596164360103886696103847182365431917639791167959431346654799274179038173985581584194356474206458814716979661524718081183899775341459556650653037515933941594172878448275812420858736573438522059729207937221450567215388425313695518156702320677842229975338511921745834915513622224256151239697232663883647446134968213351095217700847162261913821150047385217317954182307418641925566998361787860165365252748677946889438343855986463064314648996383034147613552473008317725063165188500074096908718301737287229692096670445025309045899684537679228611300654780110940466859320106915583302920448624113816768173766789719689958287277823677459930656872001461374793663929487818805585969754095603800885144543673740273024660285780282578459350722647954217056538044962214904786323717121406960972756691953830655321431375580343650973299379293677681273265808331830124692874860657364825377873839350987374385884918319015076164037347037766496030191369871060548055079821971790473250736405348172675217335885148086236485975648473618781271213739461099366336889218098846630829738805410012993089258836228839891310885708813810672992855256239207747360620871712379218437657268571077906602809863236658822432504075431593784918303905785760632389799899353474473295101970555355146316741269612380580539497475522729596149681795901909737621091851577312009543430917292818960155970740133371475535046105470377002197916493594198253987707517569076762278534277554799193402763024076098545036816570890744809714232183701465268397602213226068367605880122644850281964422773737303952998745939991857006733301746710814689525364537406080994433727233048226660590080168253159729132801739443747111407531672741194549277043508062115443608542416552865259423507728825547085304012845218867213507352688056912924800775081326284081077643955585960618061395356853774337245659744184939718524655872427685998105384761512631923415486599898528053257632007693613673953653750639117427334218979639460892326845579294424163443080583122691732753431251110886868095308326661562373428086525469339550372869124733524570221559869147395977056054214547344006444208250740996588709960187716164250991749392392309490844254971493104707538207128540379872987550458430702801717778923819958657736195997766943404677393001001046126981515379137537490873686419577870517168193152267952143448764178545265168480826105285770799700942679832962524872618456231874278816257323793412670828080799174683842498760009670693773064769898887682057616737328713687069717159956066777005849849655547462160808197852296859445557553734368500626323488343663190196485849817739439114654985726380833672393522542652333829178132829874241651491274923754201003733392336701493009400747544693551489658024014676599779242615677580930879929585692632927397203217537896416258554607866373619757270542764091911730338925204002509686478671837178274356592109444508213653365848987152041097162862919377818240177747352912305870616067934190534419259585864623394857521714253978614717524027828516223465137575086678353187989406223970067014208306503441454525393235549565460436648055185342057890266087623253671944002196069990314093483893147620509975834837329088653696977800577617349582735716816587467909899930329754536384992694499389047919077194749065276743246300500788682248024691559319592065526956644067963610059980229184973713582564499901336009455819547074197064849261129270242055044017940947254181288589609110495622866179022858421698766646948101959627541461034665240683082240202932453132225456168337388927244246663100558073696736817036933492700504839469301016101240463686078226233567212217546393777239388287824539221820490454475060705074144628565918773657162495063101717237789539865954120953233684364729571902815836132507236973823542287065465961115606742635738835061688565044580414644085033703471807016721380157037354744000823287624414412944505790934589250640458226276991140863133125387752173588972450305038436988331498078056879860100498862869030768005155593668381986548497352502301453061056627669266690779752420630223585019632647153130461890392283579439330483510703414137831678362522980951403249310809342561291987194921885414442404722850827559311515447396913874984456994270125364367314251794946032387964022668778689278689807834670179554013329656970038329686202092204523866989244238757520798759779654809585718511644599161538146084197618009169605187671080700482610592381422203160772996066860388989836858714308410505511667333374339396997754489493621702536369215288199508184027405604424418516707903502176975869316167196405280675449902832787033572296718811971234485866861337560054548154994567792231647267914742074928788342916461721376505244869946865043114929816130923126417942843144928979254540049192819361424246422060062212654832223952376305566439877456422281334986623296668992100776451099422248116834398539687122507337235269571808144210998721419525079390765204073848722180743697582361254316301544048814247208995448110544204233444057002609949275556371200150211795145907740401458521895513318766067597314708219218493015638509758055744880588150672039571742921386151612212552367002227893503578072414538843340486110959307725117444245984930162370369524518335617556929147114714000157836330155092613281698770276942351995186614033810776693528355741021592922854328292863466833211959094560021928187845358541438516345952433763689026760762255975180788593473502680603532811150391484971912375072682709712465997801484437774901017613771612022543509579581229610228723282371978724971847354988306984911241262450532749275401331336805490442744798628463590766896135515175017914837390668867846437918137701803593256080609224207423627066611140081920635640510912738048076129855186798788112672328360515226837868744688721855789974084253532845942312319200458865596316450826437707847755707342314437606796899430329032179293515242924749432848958282558508946664044820797735149086023426702174496911802323029233182975385947182456641300687886745803264128646806942145230362954289599109298264750950470332940234434329863442029203631585126943548853405861861402744760624712060973964254124685336602587764197325403244410317260247633351570460320770224435442029384429720124391689886671841413239692321649280679959348841432781038503900064506454127891885244426448759840919853955284283735496503763169310280832690353222631105158173242164045667149045310435315260873848628284373263652962498873112800180244353079923012265829507116915122287054635853845517312663195216619218855552455748358288719235281265717065696627610004257791005463094899823271041100561209976388421664341618380020148416276454410201906430121379377244292966988694824598143545236953038320141547337144947427358430791714656364243454162056345369054223157412679075475143787005299367176254053304510244641318741271129882384818474842096482326142489661465093672358500580080071210984248095886799578004126235875626633940968068207457841975261363891813460088351159212037196630340726448063596154665776959150416600388500314285792538876313056243885454130661209571061903498139035100637804500154957883081490388795458695747708591793998549225074040503851462315759792217463634438573533640387523955084927010123542703890335040202698306634782557891547185711626971390657095923467169830698445129324036816985928799926630780804094537139007611962621093967500028912567511260451439596858253008229862020285226616115295933446443426965531855702640665425465043064143351375831689620661902820400340148292130357191874788331693744446768139197084337767860599956950134204454030265504741274396688680093887551059334905834545428842244281983107977050919096073526491501313032018155884288289509555530510626632161033241779968284780566455529238033617972554365353964468628217153904041723512233484259528534598771434408282951392091098851379912350717429144445730604005465094306562390788604751958406259711796781613403508139950877509394255322461902494175688583036149397628077408629934013272190869515996319357828891296137344243667005960689253648939972669740634588547758603815484605805763929790546516857288475081233243240650375861126356259142341895197764359182808350696090739023398690348560685251894500522443028983428813287996653783027484053697538878876569956151290237843270749501256582315098427468300430103493771376044408327422703082361211606566467825909690991601436750802064276858055611198081687466089710357289946158486674034158299256536215698198800899502236209350317486338074114484402063020693350122986919435650643561633423592060055517780217789313968441637778941139836732220633325160692404311360160880006415805702353577234297329593572726491332254548727049113050518067463277267372236220914704816954648662793792867934619919332665585119492171770541958330285665138760918208768851029549462717877370604654115344311120544183012698961826530283032637976599214439491113562148366757921153655095372937365761514236475333304759460769872864209674216765107402359792497951607560057864310158000527200033319805910879693836635111056410637660222078367907077565088562674685129415237505696880166467734200112252132312986311934183738897194739630307887664205029326329490695541389451764313194317197955562982421731797294234203995680543320250168035221279154305218991364897029705730672339376890349510442437446546191026138715860344124630763506864762820167009311024767772801641380366617011623025465513781659213709231867440502911445447538652683830181588404489337421170253341227630708964760173639144567515849456424082926720935258959916131704563987950045492149585208026794199905530821483705139705671390625494132526084366206982627413019209156622553230922721319227501615462470909290923931193793732379327074118549768139330884827226387112574790419358353046291567688765061708453690994589895991522054283679941667661961238888540563903900413800435264329654778389739199543814105223393775222939045453292509793332854704883095486758131593118567617133723314137574745313237709053484270654964679597576555905836969413745849592683793536710112379338848143243579601522982242063428035253811970312543603962494628456683035182099061366622477540397591905904272209015768703738539848148355874440350737945643892172197578329291482310777985355377286065451327867545777825993527977984808763120210946913813783041375379202160880667250252631003247366310489006173525508405515592352563146511062275115872124044148842482703923665801375042565118394370923113850667347126418235078155368423381064515584221565554356589186282020900922036931047537620470031880709495816090862771827251371185797555309183513366927487984590463595609525951069095609378909548937047318401078839633039250243971615667734762647274209834607497125064263061439735237092776835183493633707974175938590261875056760113058258169802583915444625271390378240332960721786747158323736534369234561551677764379136970655993034679312516305711979302037198961041049653292918643431235616166119372959172955976728160992600365572518784030934412096881704817580056200278491997033901443551788925270335859939598065080490298493314461128567148852440287929041031623161331188466360018747197559736007463788133601971688378359674309388910676869654587412364721886493080870805825329384814857289308129847272387742551239420399297621983511292393460355560657225140593884314817092609512297087446305045556178550590237728419905424816894608077452642922260343583156862916016935408292045706776168126810641927765476402960897601637718557828923506138463364858006530989592296325181970248810058953204004299541099915589161757140389499636720125626868175655521549015241163879932693460167599446369699560293123656270636541677711824980994464124901538492751060518181559580546764643746870120724324531165378658373248886395690119320962175107259075638951912715078178491347270051803959349690575384474345775877853544051937759339067979911849047873548400755246354635716759405906477786062381832031755798102371121104155697813214280089736099063283227006058617022708431102859460696719644836944959351296530529888772062825610938240256643963201237612979339915691263470942917619896080150593628860353690319729671790669366811678572670346844772529960694384313248155232721691143157754192695011227931346043690671642466951027082277527746237405042911672144825080372364195619670888573894420964966180622255516431533017574757364699997961743254230118738847660545452464325475302512558325048490546246333622850247731446593360631700873752757465370746197750102575464285893350428200636401362241921544158021401868702795832685290973931423369133848168800753777499539995756921801579674300180724558524849611841395244900175741915277624585891662863951946501128422887836136451675910868816046819953331118034168648024800050681876659852245995843545718355291171352076830079677955236833918356119678017404155460635967116063752532161992229375160066182742015597913683394565661156257212179275224455248280183339730986482582993048006567429732346025397011689470171734899083576469474368703899080109934982171304648725670429386564876027795899040032068759381307346599044733841638590711276442501189504449334667641967310733476982981352565546510116901500203668140213375718668292451333535205880365515887696575370613547604616502328048961164310083193123900530237306644175302859962794144308027478928869852145846461988224936445934200399394678026402697467024566131696877694130560145681591483018574853163783960224968468341848024863210897202142289480887162118328606204998245727792479335238419461817530508469958550338820125574284164015051992332365643432255568790117762821470648541993654491513967341105325527416096574606702473548371139839801689987089434746345806907745211674959536262320311110388639682923733160055967247862185585434726352193576939106674206900930193294307796523347433656968731175611112537842931715800925047568093142784080572523080702271657754003195090030641378694891538866469928786273754109573693922910207078496018548072372150967318027462394588429688779837701060093014306447666482642576932747977861831107789422349691570429349276050911073428495306935050206397059062690638683341279365108025722649786762402186389257895435674515998870841362002125987227513441581784010282493295274452564280970668375157116935292833134942219834802565743769174837956068924103144302430223896104623740811077124940724893369868844882898999075613475811859324151883697492515964610542219163369825103602252246547567374221197209245782786281922149370245386423700545988855710622998210563243462521942084499349088049563580537714151500490895009772990733756903350372072604610476815471244409147157667213210888729581444765087057879504310946090619136155962743733099679074661847436074645045883945463652273449678094639124389645019462441556183728721535016840093007459134787211014080337302776306660947106736573206219422094661756521633320945785884682329595642443084292564942291912642220193181854052731350956166910760497420564133612672433011542836714743677989129563864953598339867969987036278277021187617265680976128079017744886489927787388858909787332002295964352720489646814153062913301197944543670351464072277481492077590714805877888309770484418717385894204826315759287715817957846248386278075555441631051654729285030133945726116068574513469171874173696207263808322158413579639292006364040555073529539477586492510467992530927341966246622495377948950953268343276659401496183919809109524481707460135680682092868463740580689511150261758341918629178324979592296401863516990756236364672168131815959879439877982586538803945761021548611802605647801463858980592093655176374110867229314459277083211767604274885973675000319681748916863134197294849098216122467371854816036617610483135170578516387426342977447496712530352072133595026418406245883652920417808580291044541627009637523858089607466654001000254075040304536231323514612367504737245831606828659671686366934075036913751211250990933119598406422713459460355308671104449513543865531155129047659357150634306458992815093044076822562778362515867691084328017128705781097228509525956963779208209917092945679946282433152122761689298234795337563851186227959828673497391582416741192130198269714809035403646876553499112521232699302859578728629082006962584018817629091049490209546355720910015659045460426367724315327525849572568338199108817956134134403440480476049117821527335230617889390341612990118042449945069383561242694934481556480216637955514493339336782104278096595128086540115781398326733245358357234819450651677655463232716338306538722207423964963385166249561917717280560455912047367427936665060125638359397038314387329971082513066385820276164734441475364638085897066820742029094554538368251064427484583986968931654187398225071329895484470608509396058892496366385555420947122687064730778538217969457472796235613615465832927345879839577304287118899135076887924768554487830948847784348872068170853328282856556967449234645659199029737515518566768713975827948182779399378971046004767817802148291908431271040525489481775956133613895607413031158859017480607129033453270315642265160057387031804928528313589380578441804458654290872533121091800293128633613395721621981886574398195845559046057661634791293898958206738802091501173059615445901952523555471001793985738296060853243272250188786985621372694083642639677047889348872665020596496834660249398679731797311012521527457965489491782712561011882816218285501596272053237270256797060675081946038009117350399958916260905110388228939494312286929249643590629131579038505464935924978882051907792082927481595505968467619029902601823201412200391113865369675215278659124270126739444528673675544700768004353483345961749515077725430904191545498469561935268071090119850993683476516137680293286744829176538624596082235446139352759096519577169616182943126633170594599024425547109954864110681116701767044721320726716395628529974648907179101833250577827055151802658222929884458121266745225788002326689156678183514231841826163780640285013879906996041479559891911150928348151485934456948637454277582855255296632609366965510047289523232049824834991958878092168759031551849899251213846659328208084736915639634886144623615633351576392715069789555531288021058218215486950509248479392556430291587391008394930011563579479882386922781327337765542307221116386711654180208453595360815373106222576285204206231636152327491339700969366597801759943193419833753071067652367518283183743128166092346976193470720822654169917062469840647664538899528759787904856509085333204383950718952865820105025591269246339758569482811254662105119046106636483372852108731519691210091799389714027039279317394396231074912067227593029581191800043642425803100682015947265385660889543693872740141800524746891081846125478263396725314648055725156963022934988539133871574970817632448129977766436811710079150349922306899834916200892731734231125064755284131259458639219189252787378941750521600889338708759394881712317707960445269373962395337401325437178803034158694305769733417704727456262841634403469408178596963895396145575257399849864975143571680789020801867767881533374692586939349071213039765841513886584814568935161402568873504254753960545863622077643430690316306047343579349163924912136714841368993586349755371735750660596808155432832922738719256785259478163950427856909060786191228216853142760080416354000180763497607835514059210132752460155667378281017701324394227834624270778202865946466185511638387877827509630348725110221919239301291379735169480892479036320123661511934684175640040120579130224984939799683809908857958020693146285948933321546103712369015494950130941671701809818189743922197100060871211329296668961058584337855236126194877178784011391241051001382690039222037646284645467934638669410149139228840643411378529600078444466775279852357948205302821791756668989724125361107888455439436482318741592233936266184848332847447107501799681288770362079742343762017822731853629380422532187512261084301049365674758921621051475122832926144977580988070263160529718340698430573795310094172660861517618366310325060511400882452917108039186046900841687677490003276519935377358613604852324682423027294774503756238489585828771472885530590265851898595635701683249549234195198764357478497883832076308279458025503912064902310336692236966594220445657465715735530406850835247257612386504197515371663337445302064398858936982500311851557695775014141378549242907874428305105008369965872583295917229004545063931906369144266248313272583009438097065468698728387206311183697088273870506238889505264836069904298389167933946794510275519089564690288956333688522945082418168645222282882364964634867889369701451566366458711249603142217074153019852680789701003160087746792625792639527320725318479778635285190202415042698547919315309259291552684279458189977854934710661061776007936923478465163864255494687450921443871256897271359613613634750775054976076700446017372367578540514015560304883817396248267895079650245908849017795505638444185632016798273294097337911340167347536945768567486074964022420767332636151740988695203439314544921806708905855470673396777305638671930840424321755147468295608622935329938956440451328805742946163455136860729876028744463747998715135762741112402841962252029630306258869310596239818467911838105351154377362711596536886852208432108035704531512955348910231979975185263565305795466453454893943384999624701554623158045751242283467478053880117988221948483722954575224415865298498252151195481180526874271047013203730174589460854253593986103638666001951698993167596418583305050732550941351644714862980822261588598346804352937007922141455673790628320212787938943865090729346550020975765744076194901390591843436294039022862427189265119266916189081657723420865038608085377007943853782609808571187370364825739294665645165463055380358911901330494086207834360350371375830080654736344132240770752415038388293666072300094658258801931718155104001475229202032069714620506601115477981951788747314346947407082421836781427469323069534078177674368600905989966052161363522619585635161395840671112684754853775983354422930128875080823371697552144209272622317595584162232687484402289086066735091935820500575485485809608822371579329129617369645398756984993576276186035549743888245399984887869611951492870666504112567622560519017906187488126952215027179737436880097950334957487955275128291211291725985969468799719084335574702476786976145032303973034217936694920022112245330232055674115100890452850263268927227464580259615885936200583514548277729947747453105311452858139565344108865339472084365779208936486924439819970889365099869747345746788074248928465801610366140948943133689206520906844401754457775467745774431179370213798299100636261841668473567981797757357963367221714224581281861044715189797432723373047899066457823367286200020662981076704216279719991446651616148856013382320626107156328452132003502782025402122162710317797884180991021637650989131459017767240047513452079600411359502888015923404559294589597310038657031744680131451681894460743987590303550821781354677764929343038441890909125502997930653824959978957445523974654838980971007761418092769375019907238291071082563057598830144070870253413966900706885644780561896602795506657371091904160555513010019233850361298673346367879321737871251918657693301333977100383006480536218819394801766696473155988059382800030435436735181932762491929648310110508296002022955829608819402418115444233297161830155473383692635076617455642925702945898269876451980766084580159997056689271724885386732384820254841996514074543488799698073165872442984960056602734219962992179261362048090205119973578668788020595436423839765733844416601682172460381995727839885343634722240226671342664342086671707802545059133929304653461624102126400561762849855964693762780771640426924181930262983592751320526797947298910523075712932302809934798810121778789729770760979364165433407447727080330058853013416973897761973056195124486694439925499345050653837445203760533056554555751937193125302629360127916630839531902741676076367829278770991015052321742933434970717426324579648340780100445309551759120527258191196925690989630684321950773377974373506726311787923495035322608324551078686029863449297088309005614534875001795275882058957875424348724716939716097082827015409055752261911061758066594623339204176919753675311000819049193999337918299422735288175450619304050045617456815266657311656101551237639542192774678853781274054605835695594240786001741605890624124091609823957881001094973960818786386000760549532439374459957278242283969983650749886677077803029325326737515992880159716910187112493651917229971848907092693312582867993458415188244122318601020133967378946765728970409388626662519121080133163420499083232784377956785369671705141680636460622533859716275167121991517050581030038467311986450180570858765829273228966039862014359573683068074490284688121479686432402639272535395569192096836245387620013302885067175403529866844306614489980604628494633899612644015149121679633372289183019335217486412827659280843306266756878121326337732673907026448512703586787018562466850705127540702174656832904086171903871201222049652551186260883992091108412155423729869664507660091764578699101124978850836699519790888779123550250719427913670053757807368074123020917723185182234627632191615043048147804243994972900989810184236131102414577864817572701025856042809605523749785294911282450023578390428930009050092043537683645161289252794734481891407143227753349446707394873674945820003168906867341737304398629783330427963708054175190123472137115489003783811908990715237981515253338350484557121874988933516339088322049197693548141018221131728838016954369276234022127371885736752837840224767304323459157545869830202505864341495483647000057866404860110004480631337834937906959880952533686706504180861030436288548423458397441509711376192050594826360732333215322230948993145823325688759702525039588932724779751032568628905293060807922724120869655262430915335326468171569056287064310019510780179172597612451683340172734483969110027941471027845538111841079678068369240951066384752190364603136680329333774214829159989007639707482647220446095908687450337444332803410857974831865447082976098377048204259079388820279780966701590207883631395561092685537845612119132903809256553924826931411690863913857472488336009962097430023698590727294712430777664331464985269641940734181033968016772467193440351471947326186838684581920163791957978236983350832991002378562264261956082011720214956830730221002667592086390079580683151305828904461445320029825666771171804016759922232273417530970691093041114807729888395380189403813309108127822054881120169428990374210152054097991102524735151375828268898043032937084101843202422822347771319666574787827495339338378636508405922222211093291086253309236483680567701422167551184302901223097875041198764712628366648236368802342622015625950319816419306355113728778640863839737575377525676897781199159253264638611152652367250956028930776793782918629738202336989775558224169943948213204435864488508916713748794507991503495539828174799345555004649623246513497857484444884249317976840529651789205355429992538672363387797137147173599542774046827260075271254476146632137528664264253759969371985068546982041063713826193835160165179198707149765555010471377335069819869723819666894237728960300712544204787186551951865358586961593584997561657620387552434389923504134435678727998188125918668886872945892300200945972575384158483601306211368646434216417151818172488922763798187497605595081985607451092460229349988601998042833885969928532376969857177917465264519560003957029186167304384912420031115075476672114605496335629240560128336534583377646319860628287801888310253488465366353039717693841899738115488061465885977802546366346549792736829068648091984804600553975799230904565831951173714056574277900503081366599505192460495659721951537176020667813394704956869202865321301715478477997568807542795225326741192295648869313118006089164781253838206428666614331323942904586804317047450405399068501052643544152595115375393197044112311568402419373350641111354331027321958402365147654413437404712000582471535730262031472592594842302967357349266225317751266416678616134335382807083611114441523954255259137829657209142046648059883930158805960142539225321991113034332616547494261960325625002248198650320144248541930137387376035218924959306155058844397430032877698865566021986072344925278344850548041172103703612772316342108492036295636159742103248578023399565359143642507050530640771356898728899373266910063139222246163685773446785274815544941728244642165649318600408370776640100077695733337546467879842949578010557455509453764008695522928181327828026800085889234166033915946082388263674790711287912283730300653004638280100423968911075355791828214739629571225787535837177651444075777501751177627951047410013393786354220715441400283519602760920069547853568881879585566281481854104019418709717104821055256395663377127109818675654144061048012376534471666275163828839648796066446202137779141441865171806081999156544912287131898417902085988854392577936674045377044138551570184879753516589474970006643252832302446413933666241910878365368116796179397322629766939744525451836966499306122740728219943653386454026240646318193006191847635614152444736838326974893235224166187593982613714738114714550008630645086067497367589403218844420142842679965841888181243467599500585287708643682513960038765784614609722964318686149687635177434989410249861089442087984286341239964025959664766879214466327786428127919530654900791657244447358408797380821821751909316940756855163902633321692204131740430206066374606342299225089092504545942160375285084889703904004399568776808697052340987838301722728360859948971931020670476231992101579691253912811750054980506675413590656125285108905130878976510507692818232119061972714965940995507992323016395392789058252143612436466541716874376038387702916128788246978734325512893297843340329894863256542890306920553449930547090362590368232397456907220645197194793499008013594878120736414253322010688385728593238503484654655203952055533045664774650769818345702224934092499075022709015548421796056893154835767494815624276793822120502899644687965775677045086622939289379408765999514393973755389044093253782904728701989815122112277658755024019030185196807989253600598462551359484602961754247886062177981247948076785191529574738754983743748113235936177809037175871816488979210519471396042674896201906696666062543370436064009739718509247408150324187213336902955288069770946717633679724131777299205848109636104537146264592528605925744653498004657732092608281529035818396702630823191993169318680250830486807639893399165571678973143518100505410939025156074262249401671917948159894022231093586745322273325778690777689145800816487394654524116674344183836083999173468645693191115030635909513504542292711126502735827540885045143068134448592386597199733010447308873740438155052012519518158078023520026656389427685920081520394405271378457433824402891792293700268150158728936853755248327047859740728529282467828120854094819532325092874658630455205355163071124527546177023021484217964344392511490320642362964617255648378883493086731976948936562019285034732181157880591528225409888188179594767208048875875145328514583938136554436912353422427812883239714612057458687216268427781765181540424027747485251292879402612736848610736952698757444987512100048780528322474808890451047672404500716712979751057605921165946175863874881082606420496611866549884029221141313040750412290160924006240285212246109974182519470209464962923013893488657868241257119314149407471604446184749238069200574877832482067307413113572936661598065768944841437323929918551196107491040899601121935380845575280783121422407224227256138150488928846244419037257000134014295357791220206940004623923738207215431848466751957395951642789819092041812970055906570071414648895578057947854433663633177109678433829824423148413937701548059470294407747306623632432509507333890288233774865158691914389344629831719566730820688005422139403310804595844008066755376203766930495876421317730319191196050006592379434066420792513945394249594753642781823473058449895574404242384608363007555020721901847474550964773108235368227334312331488271272500056343823857144096969455639481179936831034850436369522406907501104318182946807781877722084958947042193491497750622643257552862475339655273009011355031714521275665898734060246910753401116297694275022936275150879128583831265144272279986241720485786011326397499109352391793274386214821532408744931182003377384966378946664177570936201197082527078486983159957508347802678484704457448259866794021764213169590308071368245178480729916827514833296803910070161883314750167818976979123424802338103350017618567313205517584749288848211019669129056371052281291644109944865872909526533661238111736777484859089070158574305333807440957203327208285594353436834028873542912608904551041229906838881594177766252534703020924511326168710697580697901304527183734829712972686218719326143002180962793891958297339687417858237350966863142049407813062768541933387231666391111798799598658590593088124786398954653343829650351775124466460282867304929992545505896848873146556480258471636417782905250097949414518791803735413220354605969302462921396642851044254642840667531873085698560916615830771296598354229711612532510651254224706478120148046421852994328690504788010728576937889633438713857526335820426281922026442164425882866622018260195698671640121380897651663648602098590807510403953502408726324746483780974251069819685027761945258041854768337214901623677969922658115379969783436014406648295181874709278610498064005573991083096182200290478888194176823459971099548181971479859441688686164610795441789198106800667247209532439813437378665662631778687803492660878851845510635578779623127468850576392962905512780175659079076826359607151711859027873518715312725218046298862081508865614650689484854325523449764460864989954778261425109119385259354270046563072382923430647748056600757508099358787744526990444201799774655121660996146164036811425899963542400388660790631143565850101248359418695918521982264997121154862548269531504814722887162892980927876576858989750600905492541868756403802494800681827652741408345013098927482413482590727843349682345240629142912262970692982750916462564058218178663605043127520923061945308311867040016425315443900492379190975619536111515512473706427908505884498201194988033907874425088448849295051892071283663610663973618129391192287667648280229111674666557307547247693581807324219557571933390868732289246797455282250546564363080969590713982317172577399870573237826269902520589154832673889138410914923003263141752372311352319518863609614392469324070032871148202345365297381755095407287355843847520208840201357325713656099343539512704192607286469993502076520751569366206503623438415517501820171558970857995553501454613976479288895800703791130645270193841955412080744017850792643116562010275700745576843408836762391194814129507593866431009639028085360999134290060330880555560484769651965221261644302060074930438756797785792850249118507926463362658243987404783486373373308874485372517119530507327274553930886828753043869776150625672967989253856591555472139505605149876949073335355920043131762396878847959682418547504418839993775279020302014554363224971780824369876419964721144177786702611651296682319954292530168135354500955560765704809411762133078563447301324621471907554973067911591325432222052958374204145628242208084603290516160394283871490586224572965501312518037068550839122608126526527896423933747036050317523664216544630844364500049639509859357407850444154199869042923056870681157436992652102483627963485633330321535351061916759493129737255774095065232843936250763254550737963561372165425868175210536110037875864903928632491893052026187206322957410395178898834629724613098603862115294190472993112771261715624632101303014467324430269898337777013256653532748961507244977109945742234584008524270740046620926210207302465352968914723673134203304950857460725518753728941215474039411741862729664222214202256284948151728650690924386597125343858044310126162759261236937622388379928796155318839907806055892664265550102678233201156884499390363080301951746812369832171038126159659676996986013389404268092257700477547157095172496525642689607045801637228071913962440012964758005689523441341547678260762587048331448935208931253529165582823030148189533607261091191524357333108344367465201508164439515279077425090118686452079135895164232674778600771677296665875705252442600334466410792411496308498188442576376930554296160300772974345684213040984672323312599447409435981344637318453502199232849644237380163580200692184597265044963602927611427622406194080240060540921787925242301466591658223941127506627236043274030035040328603815170126591012350274522975174158369136967982331559892206475887864054197906488496217414451880468984339416528090187309950456490200214592134220018662364071213415227562598956389404803197585943131385462573301213730314924929554492618372417836576893378874628980886513571470212406151463961067874292397275369656135911294938970112760444452622926943680127611692028251438479587831888625732964625972148137699227681273457974875318294740726651693797745035607033723387177523743817057422707148589808944322287965620715961667896944079211184932610082581619350686526022128115204757915558850250615206880845628879776189306259144571305942742039448281662502734391294498446971587736985203658844823929186582184170482782461275154845706960750947527753059192992541823507798111304625883493565048092486008673389600066497870984221251115403845939121522468720602695146453065609119072753864273720920482868032954115657414556593601067155478031923544635134529188785540192957021785954853004002379948422840627734158693362131752075001622871705411460328397808790822734313018096172732675883285270325788762421260837643695881337101819296804098656895329895596152016338893713162839048628439386097818875432619575706260510739343804644724341154553954152417107402173041431704047737258705630885430509877807815843833787658417127861572623960401361183544504149043889673052861694724722156156899378803362024469530042930906596365574448843360779286269759462909768630335325315621200257381459612455326923945335212826302495077344520219805964679131148290856173705428909616445590191987001994049569067244588948388022408559016153259512351970215180621915260216236853904366365879245712133753006298820374625579132964233876065814268908682932886497915274906190850137082668376365520726734755147978717806542509568112010235525635591990078116380496271391823875640751906570350736214193645541087739934585743943729850206093428571391018024920361772760775054976311419408407451183183209102476691757848366581023373046044268485146935488275877765607451711051956715535940938675015664562821016568435449409212427016142106880817327998779274258398981022204874604547804764140900188108422889408338799569428240088136621026714463437445484207759945734395042719618132974752507681933643883331956218805627727031020250366993833994059097951534675704965536493321956042814683668181009952932742224441503346090468692780313796558676302491720125372090120498625198201580711294274970686774170116029263801088172718650677300273292286405394016745861418219232323035683531622014931013717094230006627588945058455707428613016813170742511830666839112308567662186032426754872891232066456800282971771132403836078890681520994300830408640002485100008844679542365917975886743004511243259768104851756082414685407845917296971534131452192337916417671616879473665620988359174882910360469757843288864103687470275484664337167108764458250846738945230818141599478213367239001900738502539698380465541498887486118958186356170139533752314300707880838182099240027349165636434337005183970182446833175819639297285907190542631463578073412411039984890022348278702916801271643729084785235438382829476932315190214406518426399017958213865774136286547645762345047390718875370345362726956841455016497669077323024350625917817750531118097734630770761208644639920308395738086734341342442296507604180545519306826626813977673192043574866645774145992572531816428070606536459857406498815975289653409680297575066740738168865423166832075042314584814432632274872408100155006333660793475796199524669649899961881650760613673840163627578952660857071505778032708333918933653809760235642071935548140973778721322548437839077789882294277529099709838506786607516388885019844845745273747353674449904816065167118955799641972255823611129463471478585786062004374537767864752682010308316430114974292462930077121232904656115734946153784185913604538359449117749134487555985056194807215750694717128993816239269257469169008846955324978376510897187271323529815884250394783089201552277190779830960880376267086097004682855903304733713084327835694186255374637970721936147845045189204230913864250246931639472451967071717479813979607903834969202965248271521874553266806033114868181798717690591312661118471940171853715427387744501558531991993467410321636824746251920416721139788201060973383137515203826481833590944645968588557295373833663048609900321998058758342407167515818423254029739251423895838891020966189321375754052849326772984413463916057721313665693204372998218257737219401979703469109999846974437070255271678219569728131906024926309232137755602236107686286843619278381725849108535417518185534003277353756871486264802310221839256772203709266845355775391587474617092852791666879901612648130015133978250053033932256155641827609919347324359354952461483190548881059250931371110117932478046920423394922477440451618074112910016167572076605662547896140592145884890530269950478235554648166087571827086268721292066015445040912799340046739704097585468272237749027996699681777347923421850880600397166172558655584602505209330323286301238840171320116615619736763303510417607743561733009397565811217809470407369913483548359811436186803847886111574539776458143345543807835882633354767954134876173600173820509093686301604013921399207548260105971070280717449031106981531152599937974955841763099385363845710609679734416297262291274389533969730156129234703992045899445247721170874111220240710081431444318252987675596348917749754690305097908937718536520624835631824613624734636484755885204626608953704998429947245993525673278200809485438003272959522421839240843473405955115212558159319864421017359487535312924148991244034408557414292404165547433864652829593613728624800222785792720999245199250945436216799871170992248071716688620923352722773100554922930492648143304060698455963125749635584667124955105763328462185451995824439041825544836897207985722931069898283384430241330144054400161465221654891937591933181638801400633197177176246456247562520018487899442021310588880962427804094153797057676466490479669332990058389006967718013319618703220226666368083848602985638056232119583224408730264261611649305426812638352405743027626118668997890139036853570234076458676756500006593132702079546532372187451636799593111060735959891313018715410250504177909439860180553937597678886709556394647873832733112471169640809249688315692794965781126046814414022114279494871442246104180608302464682237540640071891289109796030396114272500040432658328215736320869802278875549266724634625241567978014336356895982929921380752004080884638177042169032057273957726376107196948453028615231747843240402687238964636249988720253194575442080980472883648108779885325313666354583108810303562073662522547275441011451152136396288925885590249213261453730174153915075125386398659527863004272943776921925944273425974377075106494003088438264344487637728662185315475592990266591092886664417959801809578087656029950508058683084577765906357557953022192541250653748065592070093560656289367740150360143382781625138422084678310070435707607993251919096068231570646672440073671727024799439371734418424582238619620394707447403952072230240432623587969349710860641607596560871889419671809060442679065522602768571202746295433451398472081967405152993795781078262167257489341147074248971920736819414840371935306613943765836213390675855315518207881051496342803660459839776066350974308070902189132940305226695489922745826423096901502696396822168655543134963627239961295802154381004646778625563615954619562207411562266629209165936671409900296701106936626981373686676239657318437764641908468654977373232629699675531118809884645306470428217594028058727112710707167119657133693646705586478666621602402712453916869022921145888917312059270419632646211476936128901062495414288383471090855662719910907830557867965098204854367596417720075118358695693201914890584012414049429286249450122671992646812065828139447011757136653504259421629863026258193743606174558880793038846512471146770123128970532373359117446581063546826356987762072879071464743054117674555207858519431261369168448386328578684844563671822346631406834646950350826588691936833962272367970729770501713133975448481114241078748105844640349929374934392260200255859040441273706534391996340553777986483578665200640016558107787386741340864501784131034650508230154436029730240754087342165477081518722125525357041623622689765022990221767054376262256571843430945319683624057716939135567893604277293956493962624164430348045160145795014382901974195716869093382855359370829447492139171591330522568051865519790635396216314870678733163528280857504445341431056362613179947409835425825120588481815671067929896713545447610303019114698920954609976224542332228588741984657839525036513223581156724052961051265492078598624646573174893854579135230498033597955073647414301416942205402876021170044123978999690166607496105851450183673044192279598413210460568793276540820898801990327519671446536547484849332868951512722634545751169347507713508069356503773460074904261044555226429702658569878175387060104783791756820728186324430517528415565407515017331582913234025612061692198554377899727866130052145406674145581120312510633168951958800105062991629129008128986869929801032880363563581526128460147577422262153654654198979185574756754716281167485565410919460558962023896873691242839854347737584536915645523855904709075203677135391204258020401495868845865120982471356109477780501153710761269378158281419431553299171537113946917280991921527418263213480501161750063180543552326819287698943909030980355697839397028317134548095990170961093066267613877377245688340641565560497924462268757364756515031903709829211596942901732760669330057981690396310070612991864730642369065937681150989392359555634095613900099333273220460023408874171092005413619552415259392855696548493706213491260209827949524284078240149210441514347081696798241931654385118381771695659067260158596856462369230142888644478264751267957921210752229822286571587413392474492027914503026736105291221093546273182674554143333050389486218069137060359486830949926011176902229043635589163647355825126347408397944251076863258519109173614203689800736293885860703997954665135958373025931515675750496228059033451487159751926251608487087621061769686194149892892031436148226558846425101982022555172746143110346494501963876681367026668817768645804876075178241138454334722723449700392364874640935027952828426753733162071366687139849195074307015773495688981426586146890076634191612003851756025732962608826132823472410158976559947240617048792345266484658730243680533997677072849901130794383582070229582919946957396411555546839298948487060959102139502739728083097794135417828011980720524564395735835724775734829858156786551420145845470047060737103723440714377221419704781510094668895965576553490609257375970947100512880252487832325674417872640204861841066207510783213253426447180632067334465263948105635016823362808642157506639832184985859247999903605986835223250555638221261033085475907859413658079231124740293369683778585588396521497495442769358641451852667527646291388175718302001130876406622382361024223060170173509554496209834971814257482355078379880700154436946891648965006485518187753626714985764360697660326575389823993404605549346330662262314966235347993695267565164525787156150079290421688182528681951369803457353266021436566491893367633577640165996439423034172199470685873734490688664281459540587779442055388148034689611835030016282297080905863193486542417699468403722270683871254645952621897397393521681836811553120837072743326732895921193125554366183946238459732971245975973038848359195861890082618115477415074952720949038988636600320491484797063608104522808289296108694243439614423168082722418698375110126471881546000048690687661047307385690037988881345932362395951304300997779698315559466062498360407614983425806313135306675256963741906570635650212457546559825508471155580518808951715384526889972179378354312889418864246599567898916256945577388351773204594511217895737791362694301477706510747970414817365515831803672359131818872771368454431179103380809922177631072321259201707826659189669353754772894604675239115589577740083813549534886725930897981907780915120768863599971882093562023491075393530696638885086399469133116276757776189599638756694595317249429868640616357553817537765824206919714862899509925707190152917948055190766580587600516857395959345662742646322277615000494344956190585108221057222872635691675888442988703237105278975562849407387931616615953744481949383020239064397580267477953418849927162926907153033829307993630149925409733163742326804916535263936914457366633657921608233358427248099364845289671721768928095496181541436387165863628942345122355479852443424422713622459874328891280097497975338296183810094744300097648916904595392015108243242184162141179705718609041534878426609408097388409190810109145142420785250240983545548950157436048285282250603131712792583152261989973445168328757653499318135081528232162196334669549218755139627668266779061562140320659177728039070913611106084888941695921050922582698842436545128749915798258733446312952191515255974183502646478479802304917806842276774829650398297125213847430715995092214649177730331960787283593175307692693771486919907083475272214244005556272120150678894075478352687144902614632523039367513290434912740987987061932294540383725750863279096082803552975061196788040615169605520626356918527277887209031317216111286727765505629266743319261279218666016800186160145050429439666301149245488139208779586795781276958368163007371033612011583241048352241764293751994020205831619011493995705065490863403467557297324819374927579492172804497848782741167415542457829564161349819982098593379449968226038726983270650556636190831909617108708782818157093626882157141516029598924270413362989347029787855709249013464062094284609630157692499140329729623292715393167022194519044715130804496938286407628670672658366134619987823310325382008016724948817906323586192029109961401350226231559718635958132558965851818834269892004312018430894320938289482916625753868602069416699100300366457412979567006376817182806380649764820054417591695500491695435130665590277126948123995278903931978335104256159854089907052131253870694682694841544898108441656659088560003573540580776334057434811077323488049740638046416762109664798106081175327133896320391702483559307460793278079319173249608127845613161672375274905744186248946447767663713845434575424753938293763498044812256654233478330379324635304650979337741176195659490059268512747163760326688830374658498441426298625304503328917579025718781526269106500448018098545344413207091893567691639608842132329149863388876988308230284106386036908763819408683208646581787569196766311683023399502039814834283212317130066502733803535882051227559695904203696060027213401802416352027316792746456017745622570762262687535445316609932559831471784497323196574707298409519966067329754640674055628162885888253508887336504468199222739023919053050435231532467952279176989267723852577639487273598464110231044221447948788345627138570533116496906605306435807764153384804971715692966808346899296157514268327906854097149533951107648217603056741402622187959641862422404630646958431957788888385506715669010239096056343988453841759162968373244970179638033675264794180820332916087357581304757997309589676636390789200116441239321452560706008903774769594822766144694495052780451483605223531210941589244603847835103071530355221168450429281760490005541331790690363578756072657052642863092758785190982721945334946454975450865314050949945538887984379401522073679089660731982787754045736067646413171306874648463961767090565008682106608384114588718414912369040500628629532557794956351405048347599509412379526406154273562177807987245340910425371881852575614244043528525017165879794746618077681711937675829726326727339063907746450853706391789604630685723904245812020873934718316706667554301244286714300768736786909032559425786282475435581116224538138570060504883022597404171538443644247313966738327904127294838301715993048817566379968487024809055001127418760088849398520110963338150898840679378415579779047071632775020179610368468283300902689222532968711341511841356314125037493762783969610764175795227754982082262994581110859731466140435260050847180965675675736867657754606630001146560331000699575545432364202734750687749862288698813626911053763247857180615112538229080112435233502593529881246363930215378977847139837146700587692167298700242861213376540420990709620372010493475542760963066162820247274728758715954667083653278172232346607786965385026982458278055901755363863564670635694678985850571934547904328904865672073437647761487368924752381855216128476993722421306082752972670807968074577041273005533746019184781853104117366409369564156629819285522067721926465325015603855136011282567411189145729269179510396852019093885852397450755903645448271421404135092030996869302471124385931213122623721732105909718723902121197454182893425245261576469133758488645219225395053354961451247307570356806936427407902746132143757121301220771543845744607805347616616003223468312072742669891760504170459504981530953884679541594010454358580383515814090385160395824413127531393925594911123660360731527349874109861511609091736288366290767054789386534254833771174716768336563606521672876812457804811467567488629890174381355259625911452862479657293306415864245722763269972574555256812053372487239121266814367744938096098684526475053020998312536185488679710993876197995200941494763713175313891160724925247118995651114990425269420691936860561676408605145997644058657202490642699731168624924820414755291055062824280458026888780006369874549912706228420509338028533899687180359628544244343822612629995482904721441343672655984914339347544220759223847665723053076510549487772559949013472864011795302307756455552824499441867834580794855404389860689484615320970177517928580213431368543247568915405368302234084213219457582628938745755443643606197839062358235187091240212448685165004392561077926215441274668320569286234142838663556245965062190878451696415688200535801181953809130510191686164817317032154704492037514956983922107228418736082644289163295454793324534992774849059255423709920701289659021896188232667022872241173551197665562487318254029339372005567279398799259847515509087315837938411115710284161983722553939469720066522631097730633646937848536479571439099378016549946779886243450453301272316312149984407826954202033974132836409808659946393570266898540240925992138455775656729180001725191435683950166879036375986375038546008492989028920469819488666193886815125732226630732068354463861210593416308888457078635172335244863096651757117643011395919322526189248191547550204363690015679307373774996873673672733056861293209156918919452981790958308486018517536067419911437365649476762505048456580555861186906485333797646769100458217653590760904807027429123416100559216533261210331431840289218848816077713000510548716304580564305105647500093775583013767829312156203457546064751957648922399812587942350023655546774280818665362053587503361868228302682236115002068810962502844743763811149399607073179382826028245884331564757849188293588578328682915073964362267958430583779677518244802822176542504173067260897947415310580710528468083635545830275486561289748438286279576740261721858707235419991980719190954984925634210383132105479157022207505566460892544208594560315670622003139352422402820622695207214073130772335019166682188167195867738989798821372875264245922756193692890937546647900408120192187273716877344955055847091994010974932687605986430050190935031752168709071925777394976905934283346859503749678358345426471410535531590808390795157793721360432233747880614255212783281610922675043959825046352601263845888463430942003643897457242820259477139500923228116541361125836410156488019557602361645830883893496303622049441121088922505986389359059064700848243304620366444880190147566974145256202795188292074513476667310775689996271944187975669714095822850601350945933472834441000859375095809518622591764882839963648121761619312470117998736689540149234908562495222751767063879126486046542690684389010500353367211154199033264718138032943796199176581961400685569162667398235986010450420608051394804746262735539154450052034819732120611522866041632659112008183197149281781171321027836737403856640454293898902202545128141416515618312809273858518555319425106432478509689887235022625582079009397616806485716158435674653274102353794428127702224921177744333831148688086928869341853642220180445859706490626391320416717483626204797706588415095668970816664956941181368846054275736925360522652726865576606876842981492519324478788583620079500806094224362873184209855215108615517321059056248110804683743024976618928537943731954841030271082629797661054624759783783583272739025445057891143227613374224074268559011457802984195433616139155355173624788049780021280724836634911963125957993343571074948052183531943807196691681716423802888985707024252603861063457703629253554182926959135922462577367633274592962810314281241882771039218795422661372601317597009768690379459093520351902220867576865192844431459735203077045209456035306800321947188858184199620849290539832477689420418530511640063567918204710293535147966176153964221565039123249009925428959216330006817378086770058366183642755680096714125116158195996472366541384461962193327574374335637107248652888740792878092097213786744659027513919194188512887252936342521212645170633107229187912325905136894922505521598144988224595004746825928803600064160384823965494203526098336029170058258585429807990373415514483960361748383489075771500495182843023341857697334615703694892871225895602682876007442122988700214285854472587876601273704603317568967937634271780054100142318353202342887843036568801312189915878917512874482437008638488962101489302426811326782949919479418402459127704531704788145113705245849128185759698899436131747642593185311350564791774068223706391636116648273477032518025569442884337165648529368106691100945164416831169340344123463896409592693780718963392988374681532744455698958707985561287593987356269127617970913512903104422847783961510578020275438590735125221532540281775764035643956330901485652876610977801814941166266287133324150475013674584355638880279181708843876727190944082939557364578130390563752901121184393707009517107711655127558469155751105887477080139491817626472145382283183789479135062571776935287924138013037836320634793423501250580326398696829337919508409683601484322960529071519128274074274461834882689476137189999477839205781316091293420054707107068554761523553840711455213479791072804650578396506358718505652242373786099626307603673649515893854055396178494248071852273623709917480875465670990157817971797616110361610892132021381650138421358879886705382728771400130555421015393569763900730375495148931825554964965531477350247908117722411295348957538709296360552566959484707143498331508471938816007365208430417280145686026958684789958272742857337886738765467671686680464240260524151812094573428044871834598679810520074228031458838669595449338190898103795675487105216641821806110168794383053397274141030228886105045936261553844952723226222856278656561230250329749386867460132888270297180858907036218864135915408208235230022102233418303812196209875317209867412473868440111632594155765518511968665610687770481225951903858329274506104632248243480007636589704722854863588410845179255738979883545597378477735542366936011140501650587036922578845122554460380332197634465145603269671592617118760799233624124190419931851409839987820512728202980260514254781979794941708179794486940092000958290391276273205456359008236023539830673693225478892256765359993196699958500805017158871740962080736475657605281619739538971032464900796615178781618632004415239163683684003761538069095299450214519906670537812293330443646648046076313194935936648497953080915137006914330362131951267189439186335983408766921583294662964952938829254572324469949690208604266664895854536788032416314857326115306959221952324644047415318212094389321537412930326516109596035221947561456161516716225198624213444827023645393617190966449414313130111238325888995205093035782679740002823959236240035620833039400727165749425235123030871674423322755220013377876386849007986693373161821539466411584913433188630583284702679777602720803161050228570605327616930045003165720660508629695080919654442459609111320254399593181073226737977252569719842249611511859168143511683318595867758263344691357159330362166211260520539950426637509964647149263683268232451338579544623878984416739120344900205765866446409169932923252310433374734151589128692955402896052701425993867713894762900630013035671292910804615617592285552397131261308517848514478084065579946685965245888693216749044004032091955400387744583394577131988586123391721064597319185330042280713566558362732764185194811479752207247060088298474066097435626212165722902125809029984940878897271479783844116153883232346258201851380153946338899619413939569400494899789977772351572198774002055864060980358623361129845241631465324916260360782954289812533671996189063107412023616439855708361033560853571235100458813070924758558217005653481248064998571628181076465152893083603165408785247759828896688702463060818613088545141645859719372135671956978059886049248522538846161942044053845114006331212093589452906364612140181663935425477021184758143458154776791667375778930209558883668530261507263067356277465551307450417394974029149258363794122240606962451366965153119602084980798367842337898306242461520660764288532532233983050802936621610393132972116950313179183378891030874728786226221289753332582166056360743189680166536541016138402478758777126477305266117356786624304367286619828504101874471290886817324624427328253719566598101684136778474884140272021197631092295310380368905461842899222650253230488209144879466232561885931298764344955391312722656050908562806237652092573916964253370262170652216237098089168338710705199395050908086210148366195224581583848612455448000066158851963648663969850090270485021098347179939657700476222328384584301539154480313068507974226813520830379028791839199040231085619960334067504456447270920259072489137699236141733197613641398512284186112774543059090848761042681736064251792559633685166703171149670396332694641184434047602368879155689389298297190031314141258465509412675184594497980089030633471673015808107281943215404767420509740635789472325432379551773941374067958624138181385580004787947761281951238528618115104002661867932411588772683307228319708202437484989820872494718648004311983946970530859702714114520750773811621303818801296926989135376359987382988697143625794083654420525030733125665211925086506027324154473752025858179093660017337799532716103506837784561023204892245361459870641958696968203124487053751451425515421866821479711807853211509252174361034418550386691260544773810688394502639799213967645084130412271916680415641747193544497917615394778382702617419346047351115339613670831170548651965098125274946811977718471337299547268720886099316738374775269454282202414944081443449529286498879571895195969539446757434140457400048388546678024842541226025133209612695160901584564324622263772860768790619450841353226814629002745439808223065809581701232625258804428529765799238109728569599264807865763263803349352220590928237098834061483230296653158302379686074442081169760180610639891967004686589386435410233641496127209922256025830835593832441365020619817229089925845420302443351964286110572089180811861370577655164492015616261167399204150352943854358086467439564135394571143935629794517885277522311212088180636551395345716151402496636221382389785871281615953268104420724838323025733721113237214981792419143498622230710527391145942145616684357719684111747130300068862738363555281779184375047503997616448480641728281446520987230928592708235082321137434250886998494144332496199088076171176304783254699202137796892825873508894763872089923313697873064581272538440817404720569085618788620848711245768021701466522288353788348109994781675186675403081625626314181176563029798241881417098990745070585259110172080248477786278715843070654237805019565385213647394556507589978911869381498845781917820203852356953721054263681455346700547732077704595156186563971931486884043387699703949743515355305731719068525605004525522579009420732656632548353235138193155758456773879592376922901835902341607683738989948369400183498501141729705315571888886762108545539100354370844592110304698742938755733361769451027164551860038448051484051448200665346515190208503577452680574957329646086023461912225321021125818237575368688720957243628064456443899468647913575123534192030143184152290802812366044821778907779801005003036742288132871158457848686219350812962980918327177663550708668549567080649453317339146363086348349116066849648488884221716339527810052051788368269375884457494536162505250258306180293186118967008789279309675818458163148783989405534550467419017747686356989009550604914071538364316008478445044594288370291403198171320794784822802118564498119563321894161630459420580358371688432056888812134026608417636513660888304538200375108861244129512124022332091535616511131605750671290118227437142950401528521274655430887164015875634464474462602925500735467268413635062432714920302337518356186063891375146706254641046179137600446683238141990901369772806096436808822728363479309010952095982228568751231702405887801219401050118385236945680822665796004893779789257859099410453949430323075001343064600595214634117702229531699175010270863155155877308951843064331562382972416322151106009206768747778045187098724351783163428915402855204276911417936639631165611138057103716552111050019942505954800844806384782073457768854421452969383505941768544022495673864363114988564857778437458347946505492681197418211630140844732654221849790665115646128707510365149516891619708806122457230283164715869624833247060434485091357414423123691999703682158942929609549479112552897337695977628152038138594128102052210151741762400366609371934153346250116403879599425136922078258777842207688797470797001256752401544468896204329440752006493219810899273944222173134085475487825767972766235886526955488694060206019237979447492480530917514916187894786671168728007484634771855508270212340042986044548232374329465344373468761997085865052138147628299939583950581172806677559742672880603185228890044865798285209408210836735090357229015612137857162270349312418046851695921454270076407687500847689711051073292986725468617932473651450617206142499274135907430599114895929807523232067674221413715949144428360400918526345556676251568415762311173897447993681174099298581307189355793627459314278844183931031042300491945163048698770411359110648078595064200790938247928953815999535046197622156192653526567331331824662047998179401401399413644372649167597918187428144715561998546868601345357974525049835461759083601906817374906722306819611548092309597326753332526435085901065309260735620768205100224045972220190961001738797696132797041484421137008236889164392593053749196250209528847417618377202597523543433104241159928426403859203737627995449339040889991131215405586534863329620889130149109136653579290992559377026205824218670014793135382508491365603994131768355590512926199186652716782163087603179982379504718976675035849073257568324181958463165458845206747239153342348381008160214892665305059288087940927420417229351840365934231555230213023948854502636126340101327421347459499179571297776734790862606682049520656372831369222065220914080234356242333800763416224235593260596433938136225249967865497135812351345810699301268769308612227642954795102437119427185109335208569891572523411181973905963018006538050069954881799972979483082501597513743001388137122872210154601197587782008879191214502129687770014148779966847542973783444517391562434145813490841281452216508913426766211971505517171949035170905135017224530987863709618417202596884239983523484342610076257796486084011268381021897886786269529825102360639025474927989005574330478969966193034865635974330369886778594818693618579532256397277294944006625790736034700752962811199497460718224228938899971947935593955940283961953307279445276496655610684589758970854622608019638921214032952830983521840418244094497155414458210229082398894279657874521239529596846119901991380904355465649163741771866308737699345614587011043714307806716798957938064260218857142157951112591910542989536268745750653720440558547426781593026794736987275515997175093305564663740226433584765959748558692478636387557734629801206618977158940356472822414777729827445261163405088270353477553687558661913070383222399814483773403557636339904585078677958600235172327740342010773905131084626727927114181861531968708779943957444856272508722247261211682552087427844528531407411768006013998424264191182164117877487865871294816426304258901492966321572540246176049810106516652719217423287420048008844553858825517661761783877636811748413551315643857268289059339601201621821177424893453355612179200921424173127428768267538563245974806964394025291806822554654036527426254117196517572888503108926119711827777251929302170130912684215545340721733292407178218209140528725253706598785479065603497638633991358170110698896109064027961288997509175530619784563496514938889046617271529619212880670159116157784554211083478322624881980427391201673266744720775350699597541527736324679608390272972082879975552259644253313734085486483182254438656050257701869973516673633359722145828824157385574598972829529964105548870295666404097450894817261887105669635585759951899322302802233435911574612090056246928276708843991939755510110187804796338786782969590406824233408234062901303363604122166216667504282278680870147896730393216451763401629731047408416699475877801127371177703469064351309031724411379091932086883836785828971406361833268992348081832757056217813373293137386470848717110548345277043057067858388943232455813377053891457952423300391009153098250720311201885237324425003591901487014062559851602765229728326676767627300712803090408212651236471584311271637336864195427106935834586261883523050369697922637496878847938306078021461994658653006211332801993571737736809158529817295926763348907252016282764351570868951357002589505199705609481135946994371669628901088046254086265698657285785058723411723097550884990878006992777544762560096971120567154470869988900233905487047054103548079777868836433997080596989612211806226583676169227522025519180604955477848518535133101098987026831482789955066804491729378372624658838834600021325029408984887609178006526510216776929611974080493080293985104905293892656918983529914621476350785255016671307494609482969585129342698912229347496239152597931845428341415622675593000425409327771992590060382643198584110922545627305790148258303913755533934494209774764025278648833656135312336687487453218773784477073269852867778028963987227848444324310246463711586509967307884262842837231440000841729255937089829340728910540523478833958468041955666046621044600970908589866090181673674275486958192906299845395160676218450761062223007502080432303946467563754753578529340590607254525169632548269697095454637081031151404126056793651161974221142196113674462642755824566450848015237873380370094648358928429346147615340225140200261109018866848743341417069608153786758962218778117834241520261310219229853601090341908775695260981406702428619562095351383212984164756346809207496471718886799138754266985561673253562661609029927047808430397213560237831276488591800249452232841069556236522776817175614926590637929344848095058844966592248641834822231094356925039992582990673239107915948690057150848675526283306212584186375851519520642818162900001427674052588051152967838969401332985510641942856612174879804194513726249192820839413522810926883073435951843614930431249812972883701477757993205574835823474052755876653887436932647752782722448409549989612991391629882115859925324433557092714046800934751480228176205880343634033893801609950681288333940587772679840801568188140437468744534541814844611625677263676292890230549349999811937137461478139104822645051891370232422113241663721278920578000733910530431676532876191376982354772126865135534722216296302885413086667726148154778371550593349470811890825920117441311955584252851261972061264658541668023172960206513720312819408768983673845525323895457561761356254999142883994754818944804738206266458239038018031785581679410449977653586473173607375247264124573506419433899881771361987418017044633008804259397942564071403245081734074969740584551787149296570502363077207703032069778899346763224516194540715886459789450982919867844028759741910930857257110181519785074368710772135874987074134739946659412978367229618355882151487261410703073283930573620996730357445781980369900532444581305981908964136254363068048991227251694686169422922602762617245771015878920457930414678718738264626175696639424933578957652165002936757410780856724681334224915566691696216786406444924682751043422699837109680963999856589567951285477331867375713779727317844043235457804204678613037952499133543396049676079740823283988990669169327428472967688523785105346781742438935594698143274080594633536934883465124366363221774680486879689507672749630034293616297980884612525087601758938505231777535788541822374575533054246005795398306155937774321273750491996329719849959747493781034427765484146688548267269717166728695992224965722469750737273141494396356175482881497609675361033425680473276631200397884763766259237093483129586722725225754354266195089009384316502242105470801727094995978515542481216054861689627197063438531290318799818600128368632488709121625955661820578905985733928122399238069762547359956432281462823989780452264626228388303797021577063674412012031663503954617031139729791970258762397437514081196812249420789823337738158133536514863744961357201085329416407417232994713723995301158153871343656774002541057548539052279269246589172435112594896687559288835079828700110729234186876837215509232110742019888195470570933421120096214512879842687559996153407088917190836613064820044522445965494618262041422552692790432428948097190747089744233892844160612737755643110333160139260137215426818637552073755200785502896226600216902167654925330553498480648292401190601025366148407232335666908243407062889424045948060630435066666906650565222529231789039973616072465324992283981288347614642535297376807004295900487556651874283902688553977498203425130168885531281806800843275159923850285264822634986162839804006280397709852502413982984942310974017246215849948600147599268715619401017426765026008563712717328091977815910200537527245391626062980829114378763726202144575579835063465600551777101763701896189282584003607874089059932915846810026764817347540845309952692682832479557576983881351176779742180044934609861220069047108895438352261205491604002682341287205611729457159986406065617936029745916859394482606542713543443586956577253194779918536077094595865332389933577460681623868122260569257182923438049521752319302397870704014487846793072070944605055883674505140850653246306924718241035745860274485509969375871498951974607161822320787212929410915668185363518705468263113355264077269763458449999791877067769816746849107240001794555069216068020968871761559962378682683480901160240760130494806205856436302673472409236785358092302283916361086833804519690411183641483797723369752604781674122815457408986593367068375710458683274149719317821735672391478191671270403761011672325238020054440693195810978101622077903174484337039757533613235735832937574236015845515284413931792590654436748656990501995078261047082774129897547380793362635882454202639095810391960226596045853484712372907058984921693408697100997101486266816863234162201461485941389286914229686615742737724353264031168144028769074647777593268771548586434121179918653364516129202485672659397469424202827356470285112871541111862666416205284271090598802145744247075657450125710938296163465220479205924289914471396481253754795241723798630367059977238121504777566816870764722604778513076432998895443915680726917418637129632526332077432238537904969609879343019280977850524478465462596542974953394804729046561674706804134697985677182380300905495967568201566846543678696081331734598899123051073667795452990398134760361860343943183553511830000546387000088773874512868801772760978967942765128734260954361211940382873032840434002631585710486510346245023208510432482958554330776546380379562196255384822712043847180266393861987993163929994189209262346898037739438152841440727472658050440178992110779059879834029479315145728488725718211346477180123660669911606622707872670570829564502715577159486216118938743989263660816646746174376384820216731160764656531880040099942648631018977676257083637953074046801850131035483411520807073572885682156526871218942950383661417104578827877510742989826109502437491151502477000568254456971816906969250500169628012595737279497460793983396400183839482350484218982263349468383450849337580662797267642392516785121622516565548631424799668999475183816476283439147967865121111869393162906133850388182397410001553537127478554941406104989248689592757345415948982752773120584028074620186071322073123978304499181749424897355483287448475711510852335785532938046258814982640520210036474190371623690244300621321709153397108462156779107249330223704245339261402876262284219069267117949033793887472379297300094847533361997654549840011340697349866750203830150757573465853740275616172267509801050935620915031625970315758096515021535642109391788016589300616101976324196304108620314561379513454264311077535775721941038377062401574534431153847334302890562713709989730463763481206320892821180885564575123604790733723621886572488634550582827268188946108027376502409903957547151679875956252356646462379986339159095828026651206499905057080741337655571987433057801139024441317181136456834874963837960180288242672799342916704961829712802616225828605950879618035902647962017857318987931583995603499387548325544304904913041092186011312400157977072617050963081527825020267267301440472445944678723684235165187025246916501623172353267234415258457328567659563778415655228922221958904721673085166536099369670319671481762353588116031611371738102266104493450102126880827704822681972744440011803130643707824351071514284744487889201211659814368338261506277744069277408932420604549596961137580707651325256392462658893206585701949524579218933106613931021522152873481089975395624040114992095219957293478047870035192163242304090109304397372453333524978583397459392194188337371898937969725612597049441166404439455123406579215876711800134496397722644819018698661515046146547516347452795507023555030714286703067747558760843393759579925169838924439546174328514921709844966043532356223369556575554769601620153654241176257114217155658010300978900563787132731149942772775672723779903217548995778397969984598569235805528574703127678928816144695433526964498360040422853270964229789198123065977917618795749785112198070651750578774860090350726789132546214367175071532966909717742132257494384623542796546277985552370263931451276781669777856896652389901681025752581532080640075756311755846544347345131857317660266916062431452363858018671478447410282487411641265413181714352058420085488607630453220868893834459638602957371512514830645711626177763454037524098017768126715809061417588125767575339500526704367358933743803391648388722815013767171636430883935299716507735204761337003065129774573366063736829812169816571661871691565496610427582871211114711625566508238582006605470670815565347813803804768125221697562808584825484748985732845756018877594269655854536335395462975289744293806452500525034438835244796261795724578372921483569848356964753096338472864986024973990381362475212170597994677031868812148357350325412519024655123173022563922173963460578888967499007386073080343214151472538290110689279806968230850918205414464222587115095531216730679542234889097880183035864862995124276727403710443728429191220089882036048095553820149679614208650257829003721389251025755126889329945687805777970558960311699365839866722409575924418411542264090976236053236815444496176773987761842458717999982094751748682585430124937537292298178127828673768841123625638294230747088125807439278639755704826556946423022550728961596537318231630340796786724208915321876825435220104600620754256835462356040768380628357192931534413169568627541997107895268738251143139053638979711926432705379932414430647384466578221803794182083329714084929347517242785181992547234605598566983067839485197724857988908891395500350255238243670791473139684105838863207689505755223087990573050705994182483772392409842680342088965202439372407069373899078443301485298312062236516865501183273978752133157895541074966123325566191337372413786117008517473372489586767984697127400019613056370905354984316986627834871563220579075009128808260069776223725749664617175509569956178320613067987068763971509545394923173889868755160113147988161412143409580032234730986463010071167535834214746330541551598155722173545757063417844717994583941354558736497967198572216302957117191210535248026200056704845303081785390029305545580092349950442761873482646362651890776748103542230330418778211223002274603758415901969812876237334156924255508897823741011544752553331168136564439520124395934854286354173032798581659391636872470160473968520002486716800981915366666620472244345688543798796538404553488958667962255882319133175907241437279395285271740379023940978208124192972515822812746136017124964626003032766711714575052394755903715650673605958414031008535178905117845370547193210177762175600741828931953681213224371202903394283033713053705666773067258700543729802909817331471514566525937577875061604721659462273077767479265365883339959386127200275523474570110809022525706682785941384035517096215109256586428225469275371908152996447936411423476487650922852300917664616162142342900323776777661426984047071511360436423670441321195510337268865509766839429870402068244958118107577524695669013675331902162262472451439780970489854791593706967979579518356549040706549513133870029820417793232965686098708234963985385327502298844949425367657973473668984178197963788118540509028485885548187997094759242621325837666745920560644920817819830316206007649712032400239187363905922906369510098268115424397864391527697745993618810161477524490127603761533753795687914289024142759966866570840753838614715341956330733657821786736383119910790626200788039449687728379487887543315259904818872769105542345663339572635456020230666416797280713798686592219400532347378969483844883864187917568889305089794260374500458254014251645976450422821522548289531933226371316685568335300586952300000449707134309841310797744623974159237124267302040038035807943311067647850682619950865743441940045580688702632399921339499482916045938194075025015143757124891551770577039326485718041667972245940708966442839098040362959254127065704728015737167843501108901457524282867919283362686850907371058625868761596622860405357348732049054405530064017504579181584893358251716422927353268001536141414284270417456118593533486452409061849437454172890944759732017229390614705927513486088645292635832034248532178226600027540429897130631247870550350491564418285638870267692602389607382190310105936348840306163540712397158854604109562435937647066838870343512269967255569281848824676423680584188593571842706958549572466122148466761894485366976280615776869977173407160221924194557029475726264681602886787896196572948838452950293988605959525504162967289188204818213614082532554731328181005160794331235687354254818971826367705518674620099105170789430168519360004984546477951679174810674288024220491768234718924297903354659609451197855676793957986249566006875202164763927686618710404950641989583522455921392408944434681878601332384918980923759248198006228838679220995341384704478217065971821482722392216717061498090430462815576544704039225791069709633593382246540657540988935919151474264072421340670245080583879910159469014716180468371634214357890040562174629343254908027537416336314401881950701240358864773088551067262315866512951560927649698180041326568567695716170386532548749507446822918848527433654772094755029480962460787686764085601128918352666965904141724602335613496036194022778070192791184925032939881796837811614078426633471568181862085136202192636554740705637678117881251250697487829649533170876729422783209211717599137078931682971047895688824743003481518144967597508621414395723929917046468143482415109089721220796297183931318817896266881764468661244726385823766670475390584420516948295149046941656758974217889581856919812682615478525318949842362084323845871696020885923097112473482439401457759452399300905602052055325022153235189840636555429844660881476299765173503728054085602129714322019159152927320789981244227160044074563420323475169639716342414419379769872010560904432994556353744906057407682694648368235046997329361520968762100797010809782342767913746883037935070339361228759843460940405951062714776926107239290852132897708861925406888880421703667627644568040439072885075312822178386078150080662305389248482471673164250835384103003949065250860565169410376524979537585827397025818442189344737830523346660363503580582262247502573010568559726292474504268927434820405861192119631756921575846197921094447656619232270873355395642043124256648509851419760022340786674757126861620460373949530064857850436657363299449956909184817539786132868301742936636215610937270167791786443010559126336269003927761009039829134592321223519804547059996852590884221547605759521179400971903883755053916675934397498443020996155425368115548128100992150847946125677260492783219840284640197600628797336191560484510328970154095461944936989998516899390225670920597508394888243636724622461529177412220527641141543801933821814007892653855020194919968467925991336336606039068273217497765407715247373840456165047371194077691283259491555996101495432499483978793290389083332404478993375681050887451681527704464178997077083371446421626926979874887875463056013519061032293055138537456133457339523260031947799640300293620900345881382722306716170300828742185334758187995662709044110179964779339302334623711036624007530081978761803529899374482880423291855868744275124311582864897479988606964951870039151041172922556616055396647631992075829547846157043534160799636545651019134046683545378559494871947211389723726948766688587552124244655413680351833637625249741092597514309837078580343849475440196422305244556712983713090323554516473699941544396763158580973480189089681851296048371428496190771842334803093727006774792048355433987206919462949169122717635832886621918762665519866032769460654659991760582291269116423922820016582284289988210819328017766778054074670203026546158775767313024104721145008459217559492660160849838971915877531339727116538300383786728999121283802466385794297088988006312520269197873958473915093834201993662128133912552993506840569892522803417371179382630511521318099928557734057144531725166674608701830709322171430107998149520116209633347541238160237850864506030845467122322494363270120849280988013222997212394830545752847929144625442389016539500069605030876743283320233395517317085750991768935755761616244170827227403006212309880139128361924605644041654564449491328339106383169842815834542994243864062407398437839221511550508619311265177822923680020185309851330246830663819746572470981682864227300284011685043001377872659571447417408071170931006006788339994420760426739480947634247697910607722666811520356029569561533207387091471558183124930792571830463845294068514442563076816575222148523564360483031766079314209601307261489809618844535902297990680273513259760613528758085746838827383105885876983531897220587680359032198396844594171501099233583430105228673056602158827623971330271840032354359343208744501637050071599804241495080654980101743943706168278621398733045459629255884595001343280431927158341418137462662385245851976428254576187629551524644214632511761608807683349441299658130300557154881117582968411795095777467708812845905301887326305209811023557838895977429182326530603856395424041267337475966611569996297079607891125633605741641963162738656305479939186083738682553904139657408668555090612110460321013026036574958291060037331269252669292568216165988351043363681312163575415556471970067323328239290800681395368008713722155622649481533287258022215171967082439765700243075883360760317456967318232898568332962242979621542137656163090645636606312799860279280539095285714779172737924494343321808452641338514564855066151583033621332828017523666894969664465098679384711675784902467792133969267037908676063447501675520058565335728803014322612673933208089795667145932202425787605826053370276105129364791868265596474357899561958074305708101150688705495168324419159776251745639093491845069176680679948244104134345609796911690632672081354280665788530460572375504224260426537873804707875795220808247254425849977636385163899073166995698757814069918808632145264773178383500736212265633349533900228979514569718184499792217483429972386676076712423849684361423418511299303332689209503942547254283237731049546579553584375674988071479046624504502956417484505427975530979131899009347189249796666594384818200810126857308665141785587723007831567928698936222240470100503500930519092373183038225899879564355468523823986946112387210575649860547806593991555428171291729681967149136988267727704384841788072277291043183683334248843143431243552992603759661347402774916351040687852659135966708437667188412257483026646979941640443224888212044321259436111866456279001686026195269824569082738148553701872892093665469786312640409987038027226178694478934883914838058914476458917935591640101126758600743478845371314111527091073116054211378143001519533014020716998192773353289301951147612007596508968436518664567816162398252899155887546209522079388439650747687860581957520147206441801522769393226397944627485063973159384709995634839069932181775575360439971455931109065013741656836231060365543374972324671382447827950357040010516387410350864971009020274915079131575794802664150823700445173602371726567668335532262110047833974299023317315508825711525444315701353784259208924063266151479956162387132615740556324778402836390285422769879667184601229268523996238852664469949765141586389924732823792732714517931448331778266656453456105321447897815297482600553721769215942094932621769269731825774837217922001598312955723416420946336050935590577223102570248389977345691822880093897357424085044312884589711350361307402184381807778376769521429894064845946001825853468137750211344806589434720705718321678456781018237643419713480158850548395632661489070330994787956164919966971551542328486425895358243796958002409236222066305419755493996122044244467858469527143107710039634116281305248725105693725424933718263215205370781450846067446919538470811825386298526682706792792443510716990626831173263738796466643570734296172193512767212927489712085900171729869497663444254879272508574987897873603477467063841824132200255103977420561250037432276055974030768265556766361593057702746864549510996624739429786784913398900122184523500946502037477479532687691452616773574077035948075889787771384491979836831704765745415869662656832419000937878214065881199774261372504447645951490997893059709273686047202601203797799404075987186361357413329919253130306011227240512506470562568300601955102820140112817573745577091617224855413072075319469053876354488634448807485370058368294640651562825584559443696714484253421976261554647429632378952993806171992077617327052206971369042066436554041620227032602413915973040474879603876484768135529724854864543392363842572474220067629343293263173649120784922630767349478586912500775267716259879879974997516597864540836302550451796716752594589255007282357570344053259052812767267663863476176956376194276512739172491713774657136428708384599779255263823916641688810039376613882632427716091664178017238034349605847750983337727264160569539442679131481990708717221102468943615161253782701265306138219735458437346991334538284505765342647295037547091256996666924411871698447038054617526895865800818556664394232510192856770723501339446573711642058590896687915629982608533688253822667169325985205381739172323278149830132187140804020594999876100924551708996991321258833394592169638503802805893176180683510570475946471049800409300192021477242539354439896044647120770130239133021859716714099989271856487147392652508127540453821693461311442077412955277832949662173818925473173042935891834235273609215982755470079166819981736671329129113676879163739463463982870638494383451151155159661564217958400353270008591004585884512379105832851084955587311117406147263114597487023705372294237079949708336478777039468383067034830586659815007717865880692568913579700767931879969858202777856838051718756818171702254899555034205848676172178359678171333280436846739195562988535558169193184996259547807545223247050256970532087216365694738607188610573930074361873209992874462386308889548747726871259470822020907869019406972344995063354004354967957886122896474203693295426971458625650879224435535465379218201439045850204987485218995077408328898457446776873437693560107018536294293983919950643637093623611747635679051345668998129236046863724251806198020928108899388914289110115239811827047994208631958768627725995455696049673748843908554948098277772913666030135310711396531077026344145107969264492108620899710986848183376464825734956830156066695975797239872435217277824851599308270420694539315050120604026607012704362410379620679168379078244312621484135718084503288221532589458157787366524153307713560406729527260207326543830376114622099441821486788951608539846791449062110049068128651720519648929448483540561414638090023546738426366876672912536168061281123088582155650620390052517759751870300525858048456507747398924753086476699598570777119668317558884725658778807459766348640143833147649335579069554465632880363413550483602110787949152942082807981639444942134286146613754784763893076816211313695909903226370343511322121299492796329724918672659055295055131295457394033656896628665483774924850971412584226910818847214738246408808548350917402714959672322610083904270604963739120191088192519435326372851574787894855014254323438827672865756101394025211006316462433309723320151037390006728857005573611472983824522340675560696558954752840781673518227470931779213969932536503918709110338102918779666639279762969004796629746083104874765832670202935084240238678973429235339937516908894471027981860874894182994310834236370404228491154650334908061721468460687197385838727039173835671616928893052510126005290150788241376739377136301921804049136318649254865900055655747939100198191816872785163555220090769120562901703733374624882350869026695293246975415087710227330029041028563760257863870371665200656914796653511412009758700847244344919811286260026660896034903280205432687763437946826368404754439247003313804418050541016765860059821127438669819934091388845891226882715757712933108383948205023133969623179706896061169430536722075619792402305216434463029992057453449333788893995701823607523137446941577616166549705482406047061568549992989480103264130476384072875955228756409836495614146573865579731204086252019890118974192400597428083625550316126065403034524169543151077797869149548769876970213753365017969808584273035253242901483789877558785542868638561838310733370258139106185848281199734166800815108882980551209017337792551996531605403092724013218019001102122176993531596759998717727954071132872616035417715391716070353594560032298537164994619083823335483513623699178383320420650237347859246161898706193603620368474122808754855584831262978381877571199406714536115956619165224124331876022547378272437297454461113298431198703706452750466284208035691603363608725507204674324466862716053818800413283490734679667848636904424063932436588440191467564633076128525030140126983535877143456435771583834867438259382724357952494372634174262162444311334282363708214063508545619172183682109581194024669387218166283170664196332870266880643663279660442187891860551634623429382353503145398598417939294565560036696895576413800985411914050685003652408667435510397231463418453546321596040122398819490028581839587098102205229394104649369169178947802055824414530562968793378050169563560243248882472428017268637980666962054543138340109605358070784108190121746818920159432706379999863902514363763544214887312382032620218800577199476903276062896594079957885372223187428652585763905838815341140803056177704603376984634561314734317037374603429509225729947610891641258401932376779467900073046067407462686056334762667957783911411385474856177697167764090680400558024336637957306575872313212984949727374982256617063522907971883298659122013056621970738061559578245604869343164180155493622684505402319811245881203348880253494356755488617446996439188933810217011881763169523553965335478326686025328582115158969521483322476720134097003125104677138106720734032840054134480506889419014360773665074171685395835686776872482497208603132636014253396205069120847736984946039541888024173641622982011129055214374942067796764976235625588782228601165160369070720934115805294582141950456788221179230700535727925887682855334729758711656076772532627709165062506564372381001392709776384972372157583673527012286653520952023857710648534492289046874343439582769638174316822100529909995178885953894129613622905068590781134972891425754854133924979184963206797710057175433898012865079107208864368433718930226458919009723870233384885591226167505327534694591308014405364023876010264398105606005998667834523693005498136136199631728291851806101204525170400089467236019085698094652330409181097729365591307399432227003820323697402110124645293191074918203050965836234688768913458681485729749782136823587745349334748574994663662942581566108458239334083673440836137778341469055294530777058726799146674442195879466537451885692296397632935662569365943358373683003665843422927204758211004484019593129890393318894184534848254741941052086089480990530795858808529700237009919163910651845334478502318732586416114789027585588941721311203515874659593823960140738431233396654110695268822955178152466019355383653880928853858467692850629769533923586542224427405154069473854579729239555616767770888756951977266066653000989016501730040724088412921265665491380344569200258198062293136556737348123393104567528054183685323035928526507106721259760915536868066493107327373701587912908202905358173525896856838862810390759195176102859393260095531666929103120953685716466111164960363568343732129712757793367898243379831948904974859147605718219777696965766649899625670081607695191717568178306126353505339453858332942713101438368080154774435568625254897966265767709107757691100227427969770613112050887446853007395056813270117703517776250668060672752069359664705425142198665176520596594935278631095035236965823341879375810581245347438270487864036750753097492846414295860327129199240647150148105254150647386428804556849953695433253173598187080588290090590765378701654097663253075202085649449939362985406576360450539244199508217409480159234971891098348767776063029798925651899789545637635699836674404949710820778677611515741703529159429472483134940815926355311453959634848250977630315159543974900339493333755270853900771364725757070100260678777048109414712724263839693145372057752536594413431058863301792996062838202186183723924782784594942459483342097388595474951731521145418665594015526802658119123602875797822520007299919509957538784452101895141260660047139416987220040310667108480634992377873195566800864522275850175055202957259301555758082985984072683673700539597483892701105645601052430528612582862323332060897279572421064310112427070503021863664983752343106365436951943837498869443113650173250849014571029957461802885062877627644745907222769232340115784297447338474674696259715279751428475238625110535948701114150915327736286064013967131956402439698837174523357784215543646291865123603282625435296153091609426607006242226726813102488105754015748642979380231909002015454318227569451195930856836807855127535376017388229476368280056815163175433665254876499646610613137168810471097156764589066016589119856803781653161497196564109661848055001616470014061024308890956928728005080126797807040753042309952303718707633192242910238535178040873080233021023298071392138658873832939551621761086546823039381952684820271853580187302302203370706513454197016357565241346014698831949618437612877435486072103772108704067876115450059247947392065004222585303190841104440951252643106205497853971485017803036025458215443461951089695950489459338877282799284526852693234589159903874426145505903695136140257884953360473171486350391359558822667058575453724186836477761636899073412581237840093340764925741650533602208320417158297323047562150718395849412358408216266813751672078905498568372104985809659099786617386882386066788624679151116149460582261370780060219866388492942344636020516094278324487548117585816107399613229982124025402748505887434139236984429973208980568182998025575603817176219400175239770907981981336130804978465139105633471184838465984458575173593827993610071417175679722030942253029725146281896762347176300289948601800238950622031097597434159545848036522883287388439424617122109643761907386032336397863868385067214873080896933459808687189653533341220870671156731514451426498943019339803619648351539329402412653929370353987647585780838177547868822817783839996686167048014522013111765184672470043435188665249548881192405879132336777485802987002293737403820925168479971786148820539576879834419589204715227768323897255534671497203323245735670849020671420767080648170390410433632552485383413955865808956652059803004875583712218965191284459148442488251391211248277105601952014074429814658385179696674354780448909280160054165207098733383096415287844573237203762573915209576099376900075172896523331858014265620272257103034697665704371518405910952764644340621893366030295323265580894127063406750995653920549188688671478656642346535127618147160776492124281247205697901503845112288344182727370968508514798190285650596607904289862714782474733204311707001587043932127992039192527752656157879752864882050589591542600742093287681435212478107052213469856969300419090441329444699468181354538615158929894315853833173474341603073486316681209013477470331560830832374372852509506571180704174743914457502450522356008189173254930458067782477455029644931616824191464980120056372415396094711439749349648627887314506849898582985632136901722402413765576201710630766657339552622813459218434987676152575276976652530627566081984626527081349147512448874195134947412700272273867420108649855624620873823002831067182629075541414195888378027339883617548662280766261745042829384687301353240271851385081565364074509521449088644740453717581661157337724223222943451361520213041492260468289729071610631746699708157401059598498669828239550051381553435970021061346320412725681764300831798564951390308844651995097719672430559082322721079275328388777090676218332436643031911737684666428111501997584903611965933057176648256991524279373171043502443438625283164521784601786445729318080831212366228170906978400845366248291104193872809092631890628133326692207384349828132380604159727527954517798751943961734049267379553022508830398149589789412012546319583937415854096454342302150089047864944422165386616607093798464173913762532712072112206581861225109006479575255922063158543282048760613529147998619886746473390879620196775944203636694776301960050953421096088120183191717357219760850217899179874442960167578260951026726448276569571910345144482094957661395737002137573144288740256618408545600729785818666301213550699326900768973492873674729176956882656775662641541785095432301968461964405198217673831504792292916276067522065205384044183112320990472511816590881735368531986217093489561456040084231204743529850507123153674921919242455955123481282996344798185882637655908892295091843650566909413562291357538530033692587240932060500858550342571880095116883733022139429003547040357946294354564330119377290764749296225903704871867269336618210551981322086953190465910527969245740536254973133272097853510437674512606831635239356893049740480713297329713654857184150381262888091417285115966066560633979027232725077550727501205374675868889652228421639418738779704146828734346562167092175329762807574492886982134668319865636094942819851966155671176724199714679411183662511084931266861660109152901089140711615105713189402375041486608324467031341673135552704179739886042704694513298357585493780795999311594309467057797024036897095026690935793736790203566902037062053587258213795226587083682943061838564765168263695402787458731826985208821717647206441581230966713491366649746030460317117838977605739528630040454527225900216371699471522757744983881993950106397339183089292281479784155716286207909730941067599078773019854428963296456946970269283625298105516315711458124965642536018131720089258258261668640802234667907185984777449877380764950751654319497779870313580106409803719871588276035205747358538310403358144671085476888979355750266065903233933598396038468053663061921996536215003225412083708455291125960084365260268905342083827158882061131495707589522478089971356872264457295202019851450051133492670757354810967148440845604280823914863601990833823169396171189332321517327491257164583234717634516408789527918623631048707460361573180819982786382693487081922092898533482044116561247273609342202133016159187059524448577606472674723644215678873052179338897846763746548363091869751629113707692944182597636666714368793413622449053131653144219523804848283051054717989611546328260531410205751852433979730061529088311208332891223088225865671488708313891614657598227557734940488805042135222844575037416000943457449826907487535083458103015888207458726003553589513758053814155032686102663320545940733246903296616209966367642107825607525424885052042982148147454148909396126668106718189158229889835195178134306639672258124031760006436004610276828238032889724900937594219032562401213218495727723369063105259373128769746001752272299339217314397765646354206105341432781447590480465012295043258144697379573053901111783455537972272146119636772362733994514343065766828802702850348276400921849273351240002780512452136168233371617375610598375139988430165766330313292174660117209266106238214436185064688263475695434529117298012102237048157966954147645395115590897339453812524628744391527817513220358304941084745864082703055870217844365936362601578517741883600340082548253200938701799239717967563637944562772020479718096129776924363751161668274323205059997067066399316923353438090708376077549575786239489423602181050321268152473045892549198776994918003405280417415903871193531544913660821645364324257341287417769592755647710139145625062829677854461131346806131042772011311266090306065848164372888474094010959829089736859059606179073346509040460246939833814288393501760780320468039085909307382060227875097554648280303413280752988735663507886105234013482105501405700720873692478297194450966883364368038120831133408015771465928892300889704920576056585122017229552563726238896735704537860151612081818912904754117118381717005333531037118307886553164181197426319726460177416989466516918635079264308439731169739006316511776394180039510851125430978673574165975965265765979266159007613180875524605256411152794179909059984096271795861826979237584088632736943310842341753290101013014383889473770400276497075269503246143187645461279939688767483928909878366739289966446549902672764223481988445253588241223466571964880977604686885141262174726224678031838378157720889406432666589955143413098704747748238309710801032956306625819266537034913350859064323522411942152375611030194798663166191807156397488879277219285164924888519632253465669748575209906180448636437009705540829985242356166214885528214320250672918973343829175434725510138291408211809684601204123563693817524218918199576754440175649403316134143525157499078198829008025974490941383653110883007072795312000280873628991508316479804121544157752536634091765345252621666007902663809177425050640058576120910461654774323746823168455154790436009600682533018831705039771573862154676120076874851800502427084245505213896340158866248847845070486131545044977518674782908465241620257075030825851361425449983730076926693561260245987605100259420437877956834980487127408493034121792687566627478937915162548759059197063344351575726517021101918188968183184691724332461048981838961163809800418634575127583268239400114330148926017648485444287870151259724056077419370241256453276373776101042443000701032696188684794958327460921135477091787680803270012290238246407448185210449677281331828953170137427800504423489091028344284926540025485210186036775955065715398307387648088318013929853246395554205287214467959027661163321320978541539993510056656679375737621976992612248850691474934962546360994400985094047097508929966407545954629423271533327427363858602582275375636163825437207851892866969869976631993916530569495289434688540976173446763665431706397900143968970783267143030272831334674827102808943631191992732850796349394141648096977244791362040332091790223963563818084304637481243576059235661443511350309878907609374521931497709181448470747438212374251064991775009181978636878846040279136637779976759273681260488464236301901722033410615765799893183417471549794402195990728722743266789177863027929127037631499304284645713406775302804641194726754668419057925205811688924586346023578617270849680791852026917190990257802388031892628314165890318549610993793401374468093674006615180395153662659041007442640161310345647833563026554300979271679833625931663759415196463361591077148275167277800793167837454175086215099151086568082525227229872306957621122569705222919830999196785181716973545693316937304271801965984219019182115997092577515000732060849666591141196762100727738401326722847518773043754103955835700859475619892748077732348751142596927194431142206216363218851308840665987141998921228545723503756242247537950883567506381235188471145102478526035543041153642740877004842481594177402151740292029963537044092098400713788059069864148587670006254923578995656533633356562985921484501300156885303676862087156214245985254987664648235448373544715297166531264496812129011156522949486618216117278738572317468252016349166918421852247035191116454922656471885551858441078006755831987353840428751546597942525201294918281570582733191156595328573297317999199189798864443119237516187938719302254021551420129912932421728071581689408967598856547092183818075470822562775397138219111689025725268395257052589523189641081342994140153578157707286903439824521377832930539473140939683721842038486965542632453903100337172911277056794962151128800341558000491121950050024824208759032302680908144031519335964025390498887250848680035595717872998280560304912818401680910472981488153059984260365096818978137566867104848315011779858140513576564585073822966066892062200863387204184757878873856707622704844745939270946444817120921278053589894478123046726545956396909200742430421503524280600345707369554220324292072495832730120981611520610531038051661768325897788122157898871322915318006494690891981182547012608903751878398867279033654118492437536928511858657628014779346703492371453568405154082280145903621240515311901641990795278411631474517480741988723660785874062893015070026033871242732256399135638761305986665509529066971973929649753056968657734974057007357343575424642578802641040236182899362275478220951244303892426480379022159073444621827474674831886930079783401011330614586823306573409730744307915410998490534913130943068319190967803993581590546355431674446712567913868785857135166096063337571801393450017739574139672821217938643380507268824999394721330966608962308473512632392853301477053848006772448712926270432139470818946138453374150748054097025570577174430496913023152970363703090955560619721206983041583685153785988570839975513901059883122381718878154515894280401510072372460726274566822838631136196079299389086585508447422255695979213781563237310399711211960781116177761072335537022490326499493689944748169484824628446379398674302825108270710461080866378804764850900119467187134445007844914053662058581497531433584720511753240865870351032402794209586879607644458657205531535890142747191955515203128678256511876620737762739658774653670421863911556220886566027739234348865073578184925442231951183082385828286535151391196939571299745811824341489498577819294663378983009788064223833261680563771009702210982486368618082353947404801908293346635136603864263901342741638215235094883757685205708907803839659760970510364071052894972816697921617685177976294438600916886745387234743396320723077505965495920108970409797821998749162561340318295351809166927219109188811013294306636762815847109710953028907478938648661589247278713405383171718941370795738328131299870769407428538039565717029631651870043293409860407271712789169198548774214298424266039115408931695517350140791966159226325172003507163157563597909435108671724451288550218117996049422740838185189677630349370471540636106949595608634629833389120471525029501112889577316293639734648442958048917811407316032382625973584485920962446288037338695318876308076515305124795760786334064549542819848857767591629072042587628950091337920373501792619085344384130133087840042256106693093127779240653951275678436746633906366098609800478393227917988798714165632316344192811287925956735416742915866118406159624998633382507123400386422913784140703744255927598387547782081791082806072378441345960137686007772821138177288445563744867638812462616073579902342680412290921300637203556525154612647599499465993755036241053609546483587339812780490880220129678240383067281757770418202789500435064556480573588582349870585387101217040647813154903051107346018924375327800944368335524492781973981887413988284464929068552174639210142341635843246428899371421665406666563544424462828467973910118281373546675067037036380354273178010921613178857423169130685195783897814997410977679489057995082825217729338748122378910081585040497851198581556782227426189415684641512659960771696924134832792980842942273681855964598994738349791509038979429927728694565846954749027518420306880234075091132007736613174857090997785071388900875658233286276660755310703509007132889072510552086566179943916438665632863849240968893783900560591658807665593891975566159194659469358784733051021584976967931109495549820077796920031121370848196284424053965030753447525282899962416001291660430907959554424953732465793483308242740286453592605697036829192292437612038844378567370476461623886654647435946850824639266630279595425371207479868350701391145680897243907900417547699745952622982027578492681577674772153462084155218015704312828726851679465282634717483266818582462626386781367081192186183042653784333360025924500860767880029966110371334107480828872859626452635627387054456365314880267253834793572618816891701813105082829143830156683847616881512105903889878529200673531441028668565636837898791017930231638253865325959833363263459452203766194701033031620853106075295240118761607989116601531002298892645348161065814005221836913152420000521109270072512390977061303208822506993029975745566834448821892649519646430575691297900380348038310310792328005513979530261547931115148692696675615704664684329623785664368005562215643898802858798742139705998991951531661127389621013412576787844407163482618584043787845173447012586242350544145683735008966554050434857048884815578204660468877537222248910664835327043580035795055179443048231386287091465754100258223349375977985108224585598195371005438977050062093631332441339494584924638374133512049971032293274964907252988637990400983046492083285023445628119087537835067400121507329814056094675586020640956958959593451056901695053906120158750302099088493645941833829063010515494778440488809354709410560023506393486085185137531391665658389191618791082012127757577278633924711963181192159852956790435614539050144262774345418831381819655398535495720775362325712569323636033768927811255575830016073677615616967059611319406993680905656653228890054131413955420853076186890500816556308738669139270969020464904732776752444601361742882805242373875640515951660685405781001999705501308181693959181859075584259294268727575679289604286328546754503485692024045307008713735201466370299645512273978858947273583763725191708823251393187864859471592730294338185659856648005115058601925256368009370172023889014403884997740660655190610125047888212525333921782375056466524187971773689600101885088171389763476502555177132208987396995253154486789532373682405000229861513700357294231999910263467521299305591627769534796599957024028210517737616337076309797062695374628427390042730774310191559721903103329551868460973820687154139661410008658132064955218069728543936084752342105838081574270104730317566730008374581930266630272726634058222670336975813839509979523131134011511806539307146227787237173593281038579745189600594064788816242350954289241881370528666706649360319363488274750303269568365617063501672567065166655972962695136997379251481041534533346616792886495182285694278280806678525693655706264933666587592547359588402228404876235361232809183235672260654877733656719422016257865760036367069041231999370661787326063433160023239082698935734529821949288551973706905186990712469221514084349253056951142872653652862531248395036484320424769018597331922030365437380261582274655910109564834966169365015158695627976029904942586051313736647710629072208010365212962603404734626454106206422938889091140730533215251808721350632912615410670610315162504574061174498465109135054268753322076582012674041996332620086451666318443405899295715498028716968252933066894386756328475440257026656565549594840527771627282771306028041637182039137583323638570378325729915145460166991610972527021160872882308631318939584327651006273463439331051360711409969029953495563709897927863096697660969956951816674677033507000257850034298391382318211716041886373262903858612201597257100724954194367297014681495534352092909045869183230810529814923106373952288343794243416150044659056916729318963296271658910524558579091882289233021109038013932603801563838296627241943727679352025573652032528574312906598358033560990323396127980451205492345590231631257789932014462646713380539505717086856672040436002768662504920101078330153080099596665001162359485018286100464830644369019510302437008522163091389585575165041131534512686716514049291072448198432430382050631734746177956933666327398144485687828638642879873867245638968922996917177837004616566341405312969133819448697644777784199478340301814994961160263010744840008754129779370591428776013083016046927249587769157332336937772737379017501466556766352117065901991449501816606126760784206989103372963429060661593079086426145331022123274417180123133326333759233940352467763236794133184865111677914721636697622941319417827890442701163097709296918057648932616368210043030229545486930501295177686680773592250876786924001915101592300936524664111318760056759536913319389293219248263558727081929225544147675979313022223257610186512182674151478362430809325260607481914451333379431114377704516857609099652562205274661747044499662365343768655099384525822767160214455860094233970560472046627395133611597631393112042545767265672483298479948589181039827509360406650100381038216747105166993135152404768343539660516765395126739562186602982747367472510176634810135607913593484873247835061559415655311826531422774491659524862697798905953376982784358430725642222421162378988316882440319342837509652773657925889984491832900865358441894287426585265124365992445949910544665803329207843989557922617285419534594641040566027707655030364873730585437725461695701418990853748181263796433757638706319797264279454074823075931571328299151957807798687755131405606546641649390447963959638710494163114438153911316298016968883987116296192035491303799135135379641550060381684829465924149037062004355909766262166761788589015494628146620961039221696680932681014290092792519684233496087253381164798271864917684987041753128090807057367305129861661928603211168682908958837512498104815993887374116871575812707489519904888171297879417129950383976954793825636439314927003090433880913532750997278903741895170230804105062502839433210019515274156136183428328110089490735586732835405149894915474224043456714562868213403534876042622737173030811126595908049110691709783516872264504138760037710371004964065272187594880665004740898816376235128287058842721220700758368027695587147423319779578911493607860528575333539953425879325790532966654255800596119710405735749368334078163773480515293112333819996281784972359897734796282600183481411171711449860078005758859173104630465095431394527160354870346361290901935562953363184281414901111847292315926757223957612106177142076232874425905239607638967907596170289431700928568787102649295736805881970123102220434888777437461609325848404524030368073070625805052651158350820869774210588332735302130291879497458232954503193558216509949977104257814140896773223072553521483442130398980354500584917920139126619478349941071185423740614066136155769181073419906942618015548042128269356284047860833820451271306474041778219872797605719894201203703500162914281587677257089789388929258093774744759569657800975336434943830134265570207186889974437731526047350860387674737029313927339208585998215228698078831595897893190593444408432550589961087607268750981121156692031150882377810344676123692141315755705590906372379179664757068332997776476174652580571497052295863039997248424129238916912659560806869365801988549323628611419801222157915650560670561685898380525283589489057612312238896920872733985791938572887621336867776902598359788587882177349897438047477301746196719077426106229682736121572147734719680955602106753794806689165300364829535910509455406242971589216059908789218706264013959194832971921521157543881062261841638451426722831255774273274941013282087614435542200766260895170810549450036577360126391256251779576567192947412794838676661077112097344554021146076516265707031503118903194827296066569076502421676752021954860553797115205014955257991066321347198784460696067652882203620325476330557816954514545192612666854386281788452153159536668231595406876513247338473526729955501585140701846939379705776672133258931033283165716929532032393878419280758562651158151741114387339774969894580764255653624668769073243191758780696608591957759408841081299393501848437105881447968111853994306198069521822478821249044767911191524626561518777699106873708898814381842850266308829048301713972080489777428420425207680064248596285733101767777571346511802191432251231431208909748152885805381820412691705881978772058949265061135717474856904355313988934757520497680561020176162407696696671145091423745519490684989137865098288403708968935277538508189415885944608303508347379138891378833601304031123067288554996064305265953467491705613225159648455078479485812231204817388907200100403420704549363956146156470632955683602139400468592711924879973688935203415549844559700262611329510670297742672959157070037792514373356467304887157360895865595344193910854951672662013777814937154429534345686920518607637263165282135908312863806449944974606028751158725692203788225644836054243081094913474057932269790456569365109256548844301361809659602246573315857602653943835773440640279339568020891339259340031176850594066797111528745660389091552174731814710044328901362552534312698388755307271776676325723770316522092110488115940687389345287502805567117844496157662819388357723146381659043087217762538625438602173198453940835146247400328605789027874839714781090665466551685356148422092516017033715590708043574678819334040551603402427339902668331867047304592121147412475384668345995426853514729204092136782674974360029931353292909387109102875545630311753190223279059776238976821650402045760093866798316962571691826647862012161563258765847699647399054280477675314981057119463424327165314141529458024288139680305303903386188532409559879034354494539283151585261163649312311366879209318239480006485876921403688827258119085761621187584151042204775195223601275971889407739336182385730568271211161652554572931251440122281128816772782192603468570174547581306662372874826355617429489430998435235580874346609942801085845731120203786766457862934275322463019651020343747139322248189673292740312029447139079806701145911835361361270505420899059794276871567095265940865699630004012471407059405846820988035435233446059652937961370267330558252681896602331479015125708260038214533943720983606791616564066793725761402829930051832467632777779590318010868673543708132156543132885212954440917434060716820809538503268980389382592030253933850524020379703390895129349281318059192154976910266190313812113456661629395790636674782495654465805975455264277481500479031010041121703684297714975471745429681285731217987255581823171956846603903683191318832844987009373166423905169190061031873228470231467893774657607803852577009068495371055518858887844449188857179864966742537824096348606273853101875171004547087464089530692482121692904946413449972955003503819640489364156223725046987917487411166632234940972740269933338327202634821191858802679459140672430873426246244777574757951394745652477837541455224363246273743259761075106461346289246536702957296608902764734229463957176292815208459800774974827399654272903115995182707690485591291029295053925187359334481363267884867026675757365757005888856828518471061186857968326919015953353631884934526261773487485009146874782730266969401500754887045630154208507141941965847955340396151344584769502244646244595286931061276356396218728049176813367182874661027119181743132070018241406940759138932924189971740223122071551476062272993177575745627010364606718721364409889136117300540756379294470989636031265490618708540523114556077436618402226770220261480724789871688350443998172335690057987485659080599231171241986878015304808486407574489615039594143375561321029801642234041890244207904000596610431238055412658859332129289296811841789361735474966162876520473449711899687059488469193441600849366527431117239834967890887669238915832557875516914166924232492240055451573229697010794046823283206082833241854921597595493246001409635285039695175746839678594197017837634672944582920772448071755812234190692145194774796052026010726464701421734595691711831508682670360198122627454034915515743037575286888663970875327122014007441103963489152487875732823660495725132062488956728135985658007144272553193637974010619534527973910491409437015091760390766589040141053195181103234005919828999971654345596804725646421095805054412047290231891533618113132054253769354054839582938144449886175311371532695423143581065023732408147233710075776604746460941708603499952969112239263655380627876923520424214567803839603287341305971368347055839889388359635660551622930536772662623049564497107641067649390905948613116644374440517494922906880053744463562387956892591069490396593974018957475636312380299206670821281139722270579547876650938564406102345444600280508306737943592104742833473263824153431992354644944059342206126136544430868113124387053897582982796387805783959823646969862667594783147894636808181683870325995971106868747164943918544956482492101066987673153632975880416685882935330563857399218037506671888550387843057140263167797732488959504992532102957426407512531066297456560555749627152732297559350974899224414045178990819989874003664584959988170776727092377924088944073933461821534914138474016681258389506082837120521100962063932147660182644675475535392683536272088009328754282457634526129733148921199316049993807000966739517300458126098976321347652989412737742658098970227348943160247893423512281436777704109459253745584647245294799249997462986763617713147198336562956071291580596919179557483561141580151406206255761023437227414009046653971153501964967865137793167293165186425644688099566235507796290985535384314353966759859788304837727146430831117476124636095995672789875201908581929310079840258959969059962872709014928620373923221772934641352886423804263755503193266192780994513936323927942329390812127903595343042253446118060767482934423619001687803354129801304820503073553155914245007199544019076291067837844405367169876804091355507775060199150109868595157362880218475114242639191468848863039312844460369020890353988658420711282015384493651370236199496998262533713998325610392264300828338489466284077316878994187227997260346785335265116440584310488059062756678236678117324015400796971495259804341851402022943434288694423004247143507774659716621732329960790987434908377378249958997003743145751029735687780261240521872601140912130049277036526827139029169745799537332019647522582427598899269509456709123917509750516116908104876524881289154393744853013074191177602633293572078113859871439316512898103123782211876728022075600645965787629216325063830872806545225841050012848952289624127619134034687767612326395752501248018066749044096861074812219527068546456870358812696687661987441173319273809855145911150896842581154399847112228904114328485142840406053980250951250949649892081996795394847810455601384634113107051652185753621532444766040788555847859304002917498310581546320544524445611740686016486569806701330141456723759061509815913245570801426042844242105125903949886146957857588327334830341626326218505938209285990178063020338431413491242274910788158319198988700373044277210230157233044703652532050523043988042764856830042469636804690528948300402709300360143123837684247032735635064751796333753505174264098510478662781612003620337699555260106144976441092049452698418713637652486929486784130168165352571992213475528443827726045993997072430345575660468718659839148546798488465307103167682110554561981108547147401967992743722438288429395751343540138443873689870169464476400913286183040182209297856065087229214974519902571204297106190817597775485329231349236683289909482438065644633082832925437306033758131983799936850136334109533023599003489719426850546444862390402491422461238338827543010990474339280141660302563785948102542972640633135736881234650385093711182700151742633989665059033235528934027643191892305945120768723014060888608630994380778293881228410807432270182665359913603926690315658183309160964076995405342427344222253544993593307441431363615852651904602064288460579187685404058256250941517377182527932184817486237581935609499252831634243851590800298212331089509532998274679213454632936617114201077063783181565471016646983092062677512672582856676275277842863998207609146909783291918103369402022379749142901778114472970345860957492770609937344563618179066208100880337021892469462055920074500259819279979854224028949328525673165805799355380273949130139108613811753326449287396069529264265971474704825981576351983888077496549115481139943811938956577258651958422663253690736807414285910489342738539449278968909754131656844315859806748063773518601874023995545001748793133462736835823443278105306731630982615708724955271867839583174631206396006360282983969650685631279754894408390393447307054232811964534442433005362780291742105644686314700043178771859850353703332641812303485368376520260691383482387217161033766661453309910873870757523038251634820157752664572403314609258902047653330896858114187887518826388738151447185672486828811138384361164182079326155862452066681038825767983276868190705922114810823115931050928759581318302433850871589411841878804538351586181944269364326908289759442292481532647868700996312411667273465520951189654772158298955714162191640497524409091140165450198041288801302766979192658897590766734220752568969676491345458962848224957713434082284641126333611685522851959101936011774999516230555970017135301692923001451995378850684400461260359376417952871001325299170120279536448474473817069190529825662965705914245356142896415313042968122530755937479402009829367256704369325504917283398497369460565635978144408765213352431105659581596676249149607881193280531047515866561449463360976758304125614461474308528139792439942328457052961022523265330769679804377867365377017470664165254226150514196676408770594391504868068635339560184641406299793647311336676209372325325386676326482888505930627006285059710405250842425825782036413097086536179219307412884622517654902271299493881720361295403515592172865877222296793413204857689857532307934300218090273005359791907759138103885591329538016757660559417069744391027487965674286181077242823214876272694287619795279619817468285178972237999595072580140025436466842354715665260770412878936936517121523906488001111648180977887108745316499999748362009499810651573146241004223261505104926115135722531857826669403679214867564414793336260772883348630234003671297182655971172167518220654003980552363641440470210164023354944652240528498895070380371378554819706474075731235230274807138683412581913410722959724712205642412135355423092253965435445164401079686082320615140676826661026593246851656249976535657267649617701679068850645338507761602257439987388022589188886733662789145110945022881112414236557355069780950274567537083011508180267277453438962173764747019750313360332344140802864562585242822597588768534191296247060797809850133532930298685975381130988986989222246442538376550929522974071050839384740862991800176256142707074199817191990475997470001980170234710824855173398284920236401802740951523526677000614392518555001610608640471461102664770818092226290454601626103317986847386565310970383304857370695530012602061856999126097652083539410202481220228931251537997405384708609431820803955082196335476315272411453897401358145220319934852845107867278354104278190802298668282945603499383365680164332395974356011815139710434260228550212681376330628392536902493277215269648610295474869999956304693177658361065807039762172866541061445833779115370893251625323292382772362164500550370452972667701316133353014388181998586605424459477014234400431626338052868164015771217308319728949805880416802293101327109636996933556644137648833108805967821337762121051345579316723672064964873993767551312353104301924216003069454701443338441774922840059370624836401826060728323790202062053718128483802949434952470895778284779197189690137659477394399688957803676113130276625491038068135775787058283432409180642245140375427901304120714821654277256907250209300593900940544169893311278293464530683412230653914697958362675024341752856770347064873318102042394213043914259816427992822469074619644143709358493482826982478485402255306979144688072401857841562045406067009352571368402952519194477807261524170849066859261700474611621432785343100305326519232772765787505905241211202319648144424151046291028725851231708726716088656454464784158126118435943303713576301526455433935117342490778776094870389354181486244654379768549995738250167747861875619983389743486446348044341524615129359321402751381467350745524638894591596098031012956552759031639043275395792383481741863815599199674640218468666934108972417854316685101904317515872918183374667377113688213521415414122500878044684235477135637806696120117811062166504472135763164806407075301297353747463169620196592432594879921329328493236381694933845710725631580582812614211814985263238268509669204861308981455955329567778099670031472741987249976598520036396127329759799751446448737474105237146721148646619086096412563227674910503838180409419359537193888875476165652044397937523828697276090055940912162436687560746487664503496907617171393822180765554481676793153304225970253855037778610685609691532325137568980155350275738933591500228917098144695089176338730633205344265697871641915045032852250557530299124871687595034351682283102571080646935989110054357077892436176273268001425184965037586062417971296963131419083211128355635787670995291420980105081041005230618535961300105988791614941571489241453155527776461636134229263041921756910807234083241765165695587337493400553507697877104428451258288104715723243229263550552337639401796101336701463288061268175185625950258808706354446916154581612591435030288345319811715004070558902101534727110317062608454954512970746145504083591548118621332699272802504723827267326991119811585682983705483602001323436038680566672910668509489710811035418119073356790625350539594481370878393610232989745642131434845891273437717752998060247537270897813613197885622564013181576967618846768909173366049125202384457902183511898348689565906524183111507500703915369794224802944830528591620181593738309075429446518009067516832066657882636384812735713917752461807854552443375454992236166229500308410677400935469212944952918736556792855700010872246144932558582593052019441564351071708726916182363571670745372961575714010658253418036234260028277861266528345365348072716443848535477194215724147889051458962105351463142804879972818555087444407664529732489766051228104144031921808133494951117766397355405645043311939945684631535544205934551877512523360711513334760819897632560454337551409892954726234211506326749719686880110653658548346814389212588595363015542256518794264088473456136278097998731996717710464588014505787898078877102634503143385753574756458799146487325524734538035497898688229500936108750258516430778811310995933283040621748381316882474958110328323586041911983786599986881005382051685261605935043227651591780201808016207938832716089625044547172891484337474774563809182895490974608394674741217060613096808575203097688758316782554050214571073237115577779466215264012120628128753667344239178870343075421553396631881183201454865393462603627060687738521872753806104428935432750076314768222429204512500001163188695572880573806866671587676484333467960419989465074024899347827358607711842632209763700333164666207502878471612209858273704739151981611078782454840640657598846155596645768444449941730880396253324620033874555547907166683857539850163543537370387712947030678111109878178756344008880248802889918961631138957562407051306992311477834693408706334147582073499086026768504961586868564448952784971355162702158036823078946821203534710125734276210267882522864966373221483804655902593461573843294939320069100809087873435431017480491974810723324287822341520346548678826010729984578099190221782496061223287423432067192614247733999775608437861295569144668916702077327685446474296439372020391319427252916021732205589300343546495128305695424020426528702888310361846354294491058834142862659600002217578746748649191699227330826694085125946074959959776292320918924150198442513811290528053996822373738634195554597899066643386894907721304055996039008588357955852295233443753716541970426789402821156339609699534109437946498994462599962555219231165227135086967265534665784970102330489003855753957704859687018448513181175205443816684546670738277014505947823523891178270600160586799795539682331507276487455381757045586913349187878923578705611530072510411920141580609381308084045368970558905446916964243636956240185213100239237466752581387617480230760089643758429513380803986649204755591221078183422154481161811681481302251226675507422291324743359332797702105877293040850307688395107818330131245622537505474883680562575066892933384351279295214520549273627530959992636321303942087550936886087629238655866192563616773992152895305648236166625108580799926465034516547265915706829606410102554799504336066423087888166311841148704838307572244661615256278986494240478294618910003419379229424255885711804388689559551462388824961604153462772836017783104268539715240808467886695102530066956015665928267681786198336202866744930411627025448419104209779413563898304402829470669998256512012294571473564110031978579579808590974252837282018551857315746647049191223293100267961144556707659728007202846563663724845597832246853582252005520017506815358767171348016528144382825602817019385399567006542520923728083191089637063458170478979306371288479643312059068802295390167593718315912460357078556505321117427780597362688422184957517985787451712347346184973560136065661367245598777142654457358247991089356633224798803427983333310032731376003621837354211818438909158720126304718865563853008875547960028775670012959442876091828631025025881446403457398512862075729855438573388471326667888117531906168302736046338800527312666525937207824994066770193142288615157067007014758207714256199987183261221444856241918986948702341418532522461891072032824216278594822431509063467895884389315763871005679061400973069927390578676341419817736909022556018149023629481412932366009689170008822798892538307253604748300889986740582330502423987252441257887100593439841894882324767090303662229956166538586829496566832247030124745684017016174430255776173881857034750084031331286191882563825733925574158957946296971523107126724633106782872691078226471876237985032602495035132266202835932803762825322497592809682499556962186142358815562887671270416638714250262059246136459950263097393516438220354753729836576388885261913545131006818179973018292795342795959982659512937300004379180069982511943462388852780183110986578027412917243759452584965498167539944563929252011883394579928129749846061259218810521439196374672332906752924049393203909674917986701629512596234796438260217341569943452356076416870083783136075526173560211957535779291014911958515111217649636032902063119549939010852562174123375935279495493434454519785896887143093927997458169992416169001256304853120710005418368333310762452683503812374659162849045485451846883099061077691441981052351809191685031418912705068384445610274815837918301892626378864400745315182246403079780099800028464858791642604870612404058339499211123879064303712397470182060394110718390773287141800405110523457414244524939221964172628560552291381927570599850237399114471716054573817923062503969717019405214136892913945443382885653283603727085694453208184300021935440000813510618814012028312657233296739875720781154948226434617889679188570472282577011221549493018450678198326551776137974045735372036620846283894728303426385841519134459796229992981000966806305364138810046387539027937660142363012933250821681385373588857617069746267244039279136323130804491337851093923261112458496132145608444976864297687580966841163516646322575601516050361431992176434919750039990415327747272885320090601354745599538677727411954324141341059898134584034422032300384361906925795155708093298231327978304383319155827923954913610823980036048743160645672842747356983124220705623089985789058487706061101679162194160290524407353051058785247707707706499319909452809151721951547506480315126088422006740604391033320130937822216649828195967485381972499742207190532184725929254124525095202854527385337080381574687345760464020635438491617543513074604525061957469344594382689762895454532085053597069976554989222485347398736252025716031876887822621923432281684932136956812393834935976650668272694752455688484948845647890136705083178190573192821248286789222294889058702656211187044573663606568955527530577199899008262105655364584642119110223918687930972982854757735446963625738377200976657813985483600414153114494965800879198045825194553533548264684667926360717492965153609008962627459078192797945826871454046357941016357416720053214413933149318686242637542212259487706829680206813996087711225117442209130777851222069471363028940850516992184086044305142877047055137804721806063140926723876571121631902212580130882717962388428059185601665369838121333839349384854931053426802045518151288951717047635872267178544072650202860264806620818109190386084664510833426332661399131082228803780352458064771333499956476475542608720987858748530567372968772499543327113652419157864841491816246126331478706454106278218873749591115280638398648001656648432105880094550398236078605058533528785101746140642981796522124747244458685747712441171414463813605493576295772310507836606865900683604427820269116640010632786610165849777315052572882127456105033231113736750310008388551233532113502636164486540677927311500837833093810919813401732290455371950287650891239282287548387050430063912267581807777092682895467115043616939418331002386697363048640790872009581437861488604822015555722366011667380474977699015423432867913302144238590425071400418123793031660514062366361587891210513055039986832611542146702801871822020312204901929542479409719639925066047299092518531307908220472846009519472653642137978639542578141157309049127121758031107140137173737211399510434141730228149481946169791846601960461966677861716960188052482623501923712686592215865648356495537774212118022040322234419505512688299129179265012176410045004363962224252563786906389556551304889669119169138162951569379928931079993001933907844514122874713637522785738532712933472561013216036499774021836990683606582659658570676262509054584272816434051632819925256450296931324224021430836683477433673699400237796348870432111391113195663940072768515698712142306771684083778449657387492712137478522673645722476941115775303686559591710934081347884803433036494584135357710720917408700980874605591243854256810178324285374592551579302126064801962105251756509481545239810948887399633754719403294665702424443096232305230048912178176356207655349120128806222492746224724639354102543858169893559483387724085742746114613471174418822225323990695068555124642118806656673997817508999525874228845385207506305851614856060107889736612070442624857717693971592081705018912779381848689831240161338894552483779057943627658159043592504458888440351829409296156323043968842532468417907411714524443932368835770672088524729602878824289409636441124220957130132234604130447461391740838244057008435227545310782221089134282739091104684012241085429179147619159365489783215379180864265267564373171798736508769933814116485823543282703273336534007589646488250897458657978257675380047387499281855897182208729683357824830637632597892467887760294260853767658225637720558888866090129307168555417348693288564293685317179001695190875577973718329544484262100683141553685808610183806703180749050918884924785928190956189473132130497693427077613347629597142715505941989832533091557045651632915950268940809831658583604235532904383234174950946651137861998918497012946530461925561203265340751259850345765851879571499721539623025687951284071153359259772912540211191468051127791934972230201087645722148066226377986433931121389475734189745718418176620700543389876684982954160255085145818696312184012469894526932202537497468696522149251505641968899587046075406264723851394243352823292788848665613964670719339661793885186606402285046893699372905198912156196281899124249431672298581067289469946652451083293544146477678880486376494723081772088444007194206632699978319408024859649138782186180729523681512061091634919083693055308111825187014916664746894854327324893203055857958253740185774105100495873932513981519873565399790664652370133979296294104884005039022622115490143004150857808114915393679876130273882754581309091873191016526641298086487324881790922758121203351585650601859046037673663466514581088310808524646181764471959076585160915840128001909497117267336611790461981403125089319797773977380777411057238636686659441286314150130418372652837786877573289506554095145089873426631716921227832549306749184294672314621732781345400327557716729604022195278892216508264718057405403575617372231986635455931410771472784301088781020203196881449799520571922853577927153242758071724979714016835185480106518908897762197772113658490288653492425841158662615716363373947540258731568574223573566474900870563923033873362088565132859571639183872838048653218187755654014438971031658919513296823101372300860585330246029456592967466764471773313792163679470653136446587906209493069004175724833743620376113211469129194288998347302960529478031033389948568230377413825302701706531176311319780370543515002593097833233777944992959176161940867436427117421633790831216033898172437187098820262816301363985977153975849433041126424433118498528693519195304178135547940629291919595553629091907082743468291976923653701518742353553135226939554493830533199362897806411079083293576096397530536309919488127419805851156314797750933877169327635105646894557263053175614492940942321337998761949505880629414459425772515425967932793444639928423466064028833372956781106274643931350804349300199068793932337348828558769483380603902888767678427357837558198056268484538919254812346582567602740057680087411878719823770099610678749067478132497603707418788570203424836092415848131386316020784609151463685364844078020563740618317440277249715666056312432863987444509035263354563711402486178777460858766727519847476615897825054650298182635348757625743949180388000787585107557963955870620598763431218103793069524985112945889131082761175694373763957481207630282038333606111363329455926356127616964556803703275970952037526478506608148172812724144322365460027655550655942878073411620117868013095571012761981822281399063051466123936024321043189878535153277664965228801751134348014319149009877884530036945903102594125173632788272993205825495294431856867988378496118915741618484517813487782193700803066854257359270761912797434227148180170965103490706604375714185502603057842346567879124847373835256424756173224866309746754599824255352147958245209035633393760297634579550369354482027555335537318721476053604930647553057454221898775210687263618812336985504877610763825697926162670003277621186997080937163183715861246973373895578479130832959442509760802548295575552973876840198523306098226215998702869331701539070834164578271141578973252808460461626140234247978013265792331707076141796771175070548299542837902513939887006409037296017838199033635390949858280666937866636807282158458398537943011941744236877268398075226345189598859028864361581221410261699564142801608591442615022525743364569732054159204029375312264126328585417749877165672223992974715818979615766307829620271921453660205829397433154772450256218737979038562440107005967727469873874867410620571351944028203136087031253748389603121321226598873782408619977536658769628720179140806231519697244605171595552264304101314088190322328556137323314263663262858188760832002717792929534414660713990228495620638792062129242956335755505793706000980313414175351691194572889817214041319872096030765436755938621659205685262730842306921561271158468076679990045827689127757958763392604927641299512634997275050497958643701855938567146288046275578986065217376376906902113517610964608749654913551432387972819444957673631680788209349638108235402701257158159362536560550973881627537056543313173744579134273856895075965383495614983495583171453839341573807455226489501126048685813160860460569499498156979837089012402307386999519798967454366084711504828030005633198922464525291584503191737270810016153976687547531332549663832496951773049296075274330514187581007198837695186679585689911173598471090718012225027996878168902769462182018599477657663126201212485779808724173281819501685008924989851145075106191489723151605484108300775465156080041404710813240090623353937067296087222744148194492158639964959698370231188168877256598279750003142676478969192076869206541245942053581955479163250278405303237112735097959018844763426642097076959436610266267709405950092303773743260318441351021392051091232014050868955482846511326342730014707915185139195800543647088463133834599642425883923428211752738138358052138511976102285700480631481493453927608834852812508745553923850611764723963134931146809770621212081228919352804051851971863140478265021299826633073300172451668675863345656383243431332800000219542260987691005619543382440499651357305712636422474581639307080681870411521415969989781221310578516224169164398199708030591939970840223272150272869751400976617478500754027056147000776375068162773365835335488249109106767013803380436536420748415624190103697587223663631871562329551762975134526362202889192322459633056707830637957276830369374052161433446716483601330199585986102640501659184933958697178761430901788537396757195969512150810783049442636780645785440955814429291352663236905681592193747815118070621864311528208543878336050578047216266068774877129642162766827718205049039383040774176560562921932885794004649471089833984163987787632563936531458259200355913596076410864627394867673774163356097755715024148932056107237797015516504590823738642382162429943672738130815005368340858476786526504134504223339293608974015963234530494095322883515896028155307440869713630786461102883177117087277348476318304200326074425717453330223112511872610820146075488932102604481896447571992049849826728998455803337586601720439530164742142806706974911177897493405033553385001458214757667263021126672743706421202535724732339246281007128027624504541078486805462117206184091006044210053668926384172352699031871321824772270138823346729291158344490683146839390607046767326245305226830327631478721649566986859727268546636028663163756746252545502157877620397242711333419773800797246582222047541347055573295355486031880182711918542103403042703045906519036531915628679600626649249053526333433776330996161608108879482795395978455089659937341004230730663548070854524086479344235287626966061969458197495145094719364016289549134116017919208494457251927788637425868427218574699628671426473837263726367359018555819250691981980122515266062556868026610022105289707375380122413026697566818875992256749843898186596920558960081256288150142049286102253484030202932857688789096852779107241247735588334488110677825362716237653717810038586947305372586132125201021018200427251947232300789881041671988245067505767130156083515451140540535772135544737496314089470020637752718135827314868233136307177818610854246709377852555027368416172522540320628858926034279235664589348137074154198434594965861204095734749752010590761252099405411292595525856006721155058796403810030435683518753039807094899782346773209517880752206829370535451106530847893896685666477131157121990924933765894593802950709874674198378394222997256142181834865555864946430896031721411079598984282700814048185331587158217797803525565049642951888869316308736524516019854485301434997632579567043008196363783966431123162497854825338184578345314218041858161428928163313926374999228261846123318704008905632560518131234397589901744751135348980000395661632556422123284946973341315139452319778503798426477263843179644998544661837283897280757483151122955465724666228733287457146039898505748994850436903601002842477955634772641188420307374518886486447220586535549345281108856136830401167193266296668442810639563578195457398533398185793597047360622456403379962345291096447652658042876178465020635072512379567365551339862399424765155033938818019864853297544128117557234479187076993777208619018693071676686976202054786786586751390042114274366721047484480088576784752705875345713167403519209609452034097108915728080744357935778772004656132917400574877188458496035871978983326022080869943381981814429100465130004098380587397512055089345519958813593604550935584278185754993064310961609902076990013594337171405183603138923511155432548633597983974826366857889170246767727615057810436004737646478209721334788478032577470405896973963928756554765753803435667136473800919831383503511314808124756273176255978643704088619380366648918653507326195679687281174609804981789682783693144445383485195198289505784096984272315479290882758878702019219147256601858907052068182531570038309582973470682108703353498762131727115317517563698511880535531675268764162751480588988227217965832203548982587005945261843372849787739045378225370892896252637747649818318634211714570861594429655273584417408076933075137790368087391266437058671654835718269797600433210513095325638800507961246714636148947111480809656928096963623745033966063861985798888964482369187772438103180805931469240529522078205566720457379236822769010869745383693938330744658271145560378554356372031779792394041624824658666785211703780384567952903401481701334771040570994478318181188933183994039840987551095510758643427462268166708568016077251139595263884286548163124935239393177616198853521981006805159946131070382571820152546709775963662571913274300696712945978875150386106599824503362166279546972481810373171243783850416247938398608721159703050603805120778948697827653423275771687347482177241903995037160759012730736936443368131569316990279908290420996737924327890421617500583143253632337389651563478656047046349471453413597115498208321903951025874751690719609851824155685571420002218710936802703794860772394159777019485157428946763795884302403989744100960473485256818325591332352826211355866677648536189812493365487470620821701658104814878786045528503015778770981634825456934922190222803645523234984340538022900476603256786986393291252903230201076369027019909248148513753792687697684268336903816055742764834373168702263445636197448596606743494999140863898972369790609739345414708925360927267472485534936780736275648261593112450798062629330774719144521018841127907692939257496001149651499453667081115302925743869491263420683566687769272359892538196514499264526629524554190500735042124960447200573233420345139113839816852693677411130575835750861158365312845439669946875495790420399476062137549844537640293466876118482113472368329775573625114388991316343766220962304860826383368603257112642577669112725088493817784879250932434326809837268789975899055824074264122193353975076970623226689254737552111082383068672585603242044043954977606890918291396785273552138217403398635662287583419496130527281594800442842332253326667315094497954518470997593541798169963807589015793994333950096131538902132581308549115894679978726961150912884226020337421876282900433431671623841771223574136567710455801141901188565990569412603211261481271481697748539701646409296688142670015124317746994991276726429005200170505530724819540468671745481434672030081664457846018285030867160434667477230008373439921776230589012705456120539777953675883540124158552927997310291059902276333831172822364825186621105791878021881492242981844072850261965998439406677263485812440550598235183215506935955778990958349393565002249241430229449780918321053184541745821512043965122451001029409547283350515503166412280200008609116196032097614854454270091749336246115551575072052577395373411926367850711196505317244631049186959334752219226150654394600965382534841764925772430780224421729307132296010180662598603918554432446484487065323524857790394368460448718720535666861971846330456484550536912838933795811172671808733453911318808392454186075600786169382916016946535911579628579210102292833867194144368980318398236481130203146787658124878363886074150204804563424553244246847347558373015158298841542933814090732111080771812653481424684551085803240682349375405794086258431069771206481854242214888196352810527166543241103994233986872430182098126721139048223177534043455161965763473868806206054520317271493335791676929840924598882900886027884308233835106553276507631689222913011376511866295156091354957699446846501158588232618899672694855714243314630693869779454109513572011164332560973439847742436180992232585647336382886580787686661154762748162643984892408295513726479410035530593330522185012137058607768221934951651116639092088855526705974938175778066486838397326649086169382569146833918383840025965749801709120682519646792880337503256110183151653137026924498340836518136203346271040999783352057678860934983576922865510714651948717967220829245749558369321760173086251171033384918804001341348166648240721284818427790391840933926294208982579356329337520777485508625685042104338384589806542678255001335938119203898907389128614098410521936859889654358425100139209260082356819100616821785845676011757215383945897824461564171518370351929991719438002550155585408741596870738001951554634160557715598583135447861349133671590682577347246279705692853443626679683376459886382317744497907653821024075623612971999099815857931714625890267673018198480062843435419096826860250951720275772766718642051262805632327075683483947439845601037925984730615156147672488657477985032238021540122748194937041853025411663724686362135732309928472301260114873426198873976156821609073939603937230079752549719870310482147037300529560443788258397618000201590214954827949527934508634200318945032238264796861386957291517449104188423988971830532934850716403698472495848818402549444940587545226253757299987721735057343642483938590015420504569387229139699983528688263457567108857378609382620782707377412769363576044323220624394065542618188145117260655899350800130440158063703462556298060895644731714828569730501803049176755280706922977014665718096077957777211336028005420157360192075531783625145253850548801286500384959878230844381914776341023963971240702265325591443851809217881009410342994461565689935859303131977283774553416109211103151488433112342716104918117181937644672044261401085138957249926886260317888791112990305424809871127479875235506093211020910998182001976982643154218249162046377596100669830157237556452539379764522532396286756649986295349053103862805309694280511219977472542484309903220964328535259914445026271056486161741721044120429168701397469646842873951077109957940023092003972266127248966857311572047272318838676614049380935069525949176819346035921428711533896342148563103674344053491765396628180023057303225213168824611687432260690021016516138829780095261258901085893949373405152357293392495190424661233556493523314867102610513674445574411303745207978056427405087144429492756534059566759085004067138702329187090044079592370376448268289835689058010794558324893563100147035001728087359938100690910252815084862274987067227914534194834156838177030934886725658632014210929195891862875220934828923193227835318711309115246278775829011695008533823318187194833606859925487189417993760406444969764734892210713446942948877178710631875795673293851239858391638359580725347903167183640670752476310079563569727181665332615722385309536067782258452479855139665358052692887921851580217419752346943289389647251086414348768613015199834876216198038657284877630890430458848730521139789536244018039678953617455443885693399339104216920808505582422459395450072986798220342868005434774951356310628704006543515914993282673664083822035768992819374617884324015117380214247482136791139606279018639131216985061780877494502378654145007224453474620890383296895816151596052243884727560606440782995088753462039520836720486192318101571833392918145697598857059827936220614927893514306040082230127713209193523033418828533415652124431403979111891695918080477469004362586445895852158749942693915921308610306841519981691078496030915776556929132010373927470046988246041573579957010808607389997185734969494666987525365321090908742544692438539191918386533554879015704931583404067208514616507680506341802069490461763346732765888124536636194061280125306009717198754166819582862687069614890947795586028676403577227028319026111897338499075243061625551453654378136136562391207374336608054984787893379073039568288176609452492991991004921531756509242845835872027983989344393462409881492678050183284118212634583821923375126774329707311029723997100591805826654847850221910911372669708015940852633401006719041241155542733954911543814810381580817105933471129786415271154237790099884215144075744409492767749311432027835356741342581246126930086305264140195172225632316421304220705181815077009607292051263949317017373639203245550944327878089704053332296112320664506353852984660785146686408712977292033627126250767582140753719599851266076278563805300128810495344176806994949827276817454128981241943089952345052452059609283890753094910939689446023542728264161837730279021670387264088035866931618932585032832614267065329627067228975607406950108459908069847772133831793907630450609479649422468202163328831123222207348807001437534285801963037745865856533689477948647005227927477684109513905294369190359827214442698675759386755551581609954965889670660305645128416649023058636685067259452895762186134629692726165929058070831231889186515819240897878368900581027162266032968404494612713176865499960653014919176431515187689825403793588651188957109463423731955368190851662021918541867086554870138638403081671452202711798139048009764718909751846507369117774586162526949504220689875143339021508385346805509969073774567082914724971596334093260062031372337162363110065756880773194349880088003991262954775385962907954633142707927269751397140194524711401129731569300424789967255366103474933381834595861555481587241373520139441980740612659496592250789365103054762064337961000441148467543628773833664326492113326886537904480904297790550701097968468277667829179568470739610297022006391142211893054381400705057890935870254037657472827682722992855229513740413218655209080490360223202732374175651249955303541081063103847935480346406114915804724919706261568933632499049832312086874888213100892196118197448152018790590443191087617343936901406633454425711362871812506342850696469769934477493775293166336867808464800573136129036680901481238665058130796472388764946447471936250256305955092208653224238914315105237393406097875669464559270152251806491451707433543916578378218065707582079543367848229187237778973879642578313187933599401928187174977321957556461062069053480591875205025380091193700741991837433478917827611519828260210235809196885805512655374968416893990712862155672921458417998402533917018601517132486598372646703835616380187656143265721338331829511774965619064152127566599514560098848031706704871144293508618561334470844467998316539632761002588606403117706728252512724636537519482650926447306531961620477574285708892269535544216752358358917074957706153062683172949744784921836429328111685079132785825765307276910344826904523012716978946841076636336180971560825348427961955789321681700695528569169051505921084099434705694118293442729217103035149670191191045726051519895853528270802451545787154057337104506415433940918774025699942665767428010348470293987456665520918527635315842862307640264178871132624712485136888311970380297618210093119327547615208324966730594405211408212512768633373197611500553126628567237542585737812431547543010828659945966282309838839089580972681937528524034423784934257953573177585672544684170706512285325834039241020067993452288097613833698403703773600693119619372538744469270269155806280759024777830611993596994334178113968265244528790790498332475536813225362364170058698734226497130727413078606742966192528125713985954455477000608197086689528849750952645400912595337432281803776871532323709880594141333521577378416789116572532055266431493417420896498354854082319923130020133267652917711722484880631768868064850353184741382510317691539278137253454729491836683669729091772364521133298857870411348223144499970725793400640835077332052929220643257730407057298814700047657020070191653936212759184903593838826522345235367032205168397316047711709700081147094921269790458440313379529316561777296183522966311489056748391496222060174623914681998321586315017916083205147508390779191064012384596488296526994411720547434155743543434205442827172821058330303327919297318935845069309713936108240235516370305500679937805445700821830864332691310736758525142216281637058189437728687548445124418342557514370691073039926865174002191026269412070488949467749489455255812145861260395812261501713615052567224664546452853895007541954954559557820868195068906986932417752110238721286430403805656257760039192324816101357453134169482540599306730224005657747580817034122174485187893849870224088603471214020485459907419377585978165293788879500717232271221265675650822533066901982414519805733141839553232466736906652292908763471175745371084879846612245133859678742927676483139546648774937772787089705637573720949824703968268574528053064065528690270605098856725456426092745509808587739215324596789337633855298476711632556094796138377149915596532030305955486402130023401853141241012700159961880911283568359540312683770357359602829639673573599850697300411481979199074333859309525208572366946745751166765582609905474179053082050131449088433586635505327449060328418535196079425534262240592413466398238671102229772077132216559654935667700206157344335785373521908401218629708472777350886701237767222945303635899779243668765035265136756324375892534415829946700999503950330602304076372915278995885742613943384829967068279989585278055623070490314754541531403762346103312912408253127355211098917555904273257420470070780491291522541653082607688746100811920718580656698201132128295603824181688812414354692542282534377025709348965349888276275687037890727503105084190925530019024946611590869867338736851323815747308633829951637210826194974555777059753882139121135082042233268968656523568288216099174993598979566282711473534951398045036433765302039285466583202253214990885155478806790799430673349318925426664335407431255075710172062053931282600909032663603902963340227666323426222237952142966772134673729711186279524829834498304575339289215000668310516633895593852650885018526575825435092063078281862839210707671421600178689779071090441462472068829206964484257475721071381810207547227810407109790518552269999657540136021356860601897539945431959095680275944111052386128364390976146648639277184891643337253787279929175849425059466489560350207522147230220330508469246896300353919058388100219966720546395796142732239393122215928042103487860431916107134047231857534168312857518434009465134266455577095964558908410317247312682636029078999230094937487483472295817453834942002100644856744797903783721058978209690602547680788030238430948059613656923876006585369257249297251086569482014758366455964889157739249514125303650811750448305726841439450952727062186171888657039887588547370144838507255739939979536076734620650672489865861587594163713640864947534387242868823238426228747318026722190678118915204276543215076751643630458928630196518780287898850259521136228051706630668903193292535906806503185912787165318564101272266904988959464375051788987097435497784335909105117816474698190808951569105283174319525758188911831167251972075485114106330025685003002712523318021485631174491737942962482986207489977111968502888183433268407530036608276572207771438193944125812811502718912920821685543572660052319193233564509745456262366504565252753395038141803386048952471673943807930786110280948317598203038934926001250799439264346562898225363504497808576760338894497956644704395334734180620415643111753262168103216192447604408798206111658835215683540125157302657039612128041739293155962674979826902420850039663972132183788634481824518750836090652541364539357541287571895991326522296669918264483446032404578645509756634773963009151287123235968679757577738365996903494370172279206729102214880282991610194750448439390464094664499329370812025321767127722925633289530493236462262514760800917107428244889427670850271153414154978642773784789096649273147049305526727848641717337875188861008913300136732532255448359879633310853096268267168765222839566706401481942707204851956717906082343259872673434132019585267172088399029590042366060391909363418155477696472443066200202509313977703529943797537869518494333737159796883334124893311221973622505812046030850783441643038203459035347716634823138257492765014000134296573995192946263535015968273557669306000978949092729180912413885031274877660587624489328263936775966002000891099020730191105223721425601301804136836319894708368733936717222443985021469639843837506463212322817208377854787833727768343188973947139573522412103664321655130848938405628408245680045792974921927500545111753916781217963995756565535416782626250124590865969871038183705131461266803560552715436895295206388705342320078464518096180647030623874820457943371702077409457868041329462966986260300365659473022662213564306714747664069630636655578195259263605103603031238217552130216078776960769708205894262702953496470286520788887161712778164605077596554552615878793453121575605922542274564263871781153595434748947281752478345858536491263255484101115215669109720601082410608702139341591531795379984857990860557924115028115812623180422306145311595560567367343072381520635239393356029438885742050177602091527010007806927735762626173386402232170270316516961634805418028356300932026733230409565200594945452334187766739725367843109579531387108842470123099538873263630592223838874487413439953563595567429680051324490521714742111780812098438198306333228922369165184202512535373317857593725354072623699506869174074495200034985314389279375439566752739775116449720987580314986869438367813643964372121467731680479333019291615226757160251578855984721224624240296368205792908271964150498418018636721221907426746674643763303500351880401890149422197621695009310487099284013324768339588827923006120844572790560877444848899656099434118827438034193576950451400399640090712777518952204789718900295340200718769922734725075579838859960425330507910685095540800445178733762597594526357532558845532704701791667925899325430435302769485785967104847489674870630462883646473488743959009086198990879480523252422540912710820222014977003193718005323538778025492326002232847229899330590789404494692288708611793368303073533871689814525597759263167902605803132246753614313954690922892171455929359121703361651477265562686783096889614190235156618047267864509650840161939923815199391350480019765369898317945415215148110123507658081211651329333520829968693025330406957618976055425739035065972572661071786137552834463244651787826098227533435666983583722480904402989347367028542386672254877651494199083111448075629358237361119036502082722457841642084410050268569677840703049808270754398795902540140379157771024706616619960354812737295401223406203177043644108101612002543578651653154648259421166280778525126829366873515790642884452790684379720154556490458224680698032660382813824546169164162531206586423222701367327262368633371353783337201597418667789394897603700279429720080752147654287787338726374467632137401013736529283124156081076323726382780337308761016707929051254088854416873358914228084852464675130748824244958165459394363170001423525439148450711207694148041087353217066347531985191745778777565450031237300000671038593472078449981648781748314721050605284742742143152874474305406058541637609453606759893251906858133766220288440341083488721339538078489656103651282168186452633602464559113089586389438389922648281352174493517275048782419535121400268457646076339336307851077337321204531141556131732306002403998996662614923502832566258965161154511401548098197812583700626086611434422573010488624242434083587358439973694477772027459093600582773933062804891742709933991243975491495337854199194950561198846469463096662288444207739353069575558079077934320581554243815878862566619312673755672557886881039793890018695845122544402008187735129596652014568507341461034403338995394304627124096726405577917004097183040294114143853157023560464171723803604846781466551996107821281708478279316542039331844431062606070912741673263100219763227920183831414743241612355889480647036927856837647916266242815707936114814493892497846931609871056488584927350633924521904024249432357641527382080327593852104916764944163136527835208494939411072844414284130614895204678282623872854421647573626117390693777686827826376464113415967025561322250085706848556907251165067082134837880060011696984573911060744280857760284939456779391903363151232706591544287211580007826570076499977888406432371866903074757458079417234507517272709830832191957637854213639356239866973034944540360938708527468213192844409456347359772392929729922782944019535840481838213879638088898176995001445477759211747520528630478474674929418457263413824304770183540195491444707661649134057890066347192832835877415467012308245075878639866633228830201344936580737083957760526723537944360579589402928428516781044550968992236206155255048382340851261120123205113810185450016871336185514656130446234693998945794471672287616290269893121620925468006148133082745413631965505769498130382009503575634718736782823571633667066321293998211595257855705057211648132020208432069125846852080163070365908010846354266604781210441397337186355630512481327566831361292035834521750204222626570780734164357091162062407946592638707684671880517550803957242329008765892664827653833332659970958376129531007961341826539253949211019325392760748828452934990113335616030446374418450895731212537061335561838857034655800466681504922600667690352070732332735669756053806418668226630978735891119497847800913239035461568109113487413005605959995568953751085795906894030427744068272814818114884056710974538463346919948853231496904195004683578386873296166862272286512667757650641945542386068146590981141383763047917106054300700745420675175507226411368723246326764223561754570650839384572721663978984121724261311522800237057404256816195488711347253333611294041927337019535898603963215080391494711750760712453682327018337107334514465953309854901437699499355128158287605418769530183189453553137661500613766068019023884697196652132761466429681417506955453223406801284023774508606320684365142068525997835245613200846634108629164486142464421124803735643563011467219700088830956939405528490339492197019883039343001634095664115643965383391343395687624868102272390392015059931759656227559532339425206750560106280920014838212663834774784891801536654463237842653868512760493992706838741450922844477901724162419216079763089126287379013017294656470392339477687040442443851769270018280872509413361963803584900844664372235033056514791414536247379914369840024317260194350553888690808099619210328232400257593575391497538016710992697338431924966448376305406868615170410981754230872689818468539664872517633510994619657524026913454927063737107705391140549972448627197390019083189771987446534075639067821948126916122025850431337470797212916707191444703169933478642377232614475871457673292329867943471174727905240153414384673434488654515424564664783079653895601985559120427729135054264669872065240248073967392216484141635701538712090244029851436241560043457801743194400498202660091381033965604743375289467196553100397218397823041841232488539431967161435212357019598984293288814311017326799997914265584038572216618232528912224664690669685782662404980812073502917915457667379401296954831159735760454934162999366303703115421266146600007323874113096150887116482338378414935050381759467896399907902869664533686783057028969318361742423420363319667610808514003170913332065410380266335769345551941030214123268210830943231508832001059661187217309622732691437258100191186919999460805930445951844411448417433549418280009976625879710897713738090515839113287102734549078308806760754210241596715154248463779841201125723813741125885900552337870660176038380200927607182310590832389772371348521396625495463204102998846775611173388454144952892020901584889724883463772016480248259458315875209667278596747746418989251310349469612789216172513869842296728524119278352562246009164695683709804025669481176788621395689960572735349187947590566966280840524836638759369304460239007710928356047567702728974482318708699257067417674369222183978556108450058982698027927941671288485211266320217995370955081932994013876100464564871127364464106430190475828690396609001398249193458516806923285401856707789981432602978191876478700460090602130343910982884718160090750492452747159266147415482830034299857810866008231808388155950240743642538179865590789540738906956250986701663638557339595446377686036904849106320011014427602617251762001486476105260776743722943491974748334098426907200772549078175251964395758238848661419590468256843607594579834244119499361963983283284959077688530334683557532280448477657395426698269824031616603101014531412591864073308747449774404248552940308312794201978766221676436610150938664457957059912781156932635193529577794983069455155037656798696904266606219223005632213271383187113965655826062607771407425475335787261463648593152534595934628663736246327370262851779838909540328492596901111437456611226955310856350902426172725581589485452535932973207821369047634414814276594657724750877220496946971197835344662745839140878159392576245514360771194234657683924491218132753596144640141641844320529619219072623271295286169180150105446777330585273507383444030904064847047015042293740717375764059861489197173404753291647933379518423215540730370327318454432657458327595689206381812052550973948953384008313560016550008554308294354892640415211432090266323591136784475499588099398058091727515521713039635127594404831756785504948226183977814051310711531053433446983733993184973664567629961025553941125400253998769201946608608555569728977270407533093892004390164867328601310203727217105885892215874710984286335393363804076748370694974460224172479009014369424413306064827473203103282950841454967102101349593471341195641819344842564276924182458934677446081494990537792264214897507420991748151757672167890119917028733288130151475228167943200543087017515532924976590166950150406127242154557654924622370914984492051084620725244988483002855737623309831000197762524565351303070491670347633135034698251012048926760170354945964569318940264533589809522115884214157636069163615722041334423458172747760065557412618654915843402501884308916106506581493721766525867027114461367835300227962309369580407573079121526866522238062902671718928379922044246525610021958729306075477710767555620890664568380122127826275960598271389723829946615156456277674390406289142397573774833797711629720099812483388583221946131948041493945212702094761427173885077052590384053263941141300840178944837710620248001943541273528465936455156060802398926494208038047206138039856493202066530356741769060352974983094053434064242112769635969221833484127424473325987913963148822138037632315365697108545242963551469518232960149378763837110786581055045406826099199701361875028803493672182034859349433778486147428970259569023092339779326846019611402397632043529880285966364836990283941327598367055061289322191063783101401265460217536315540542960136704204302420891170174927647257643054107741234538798937606031526194096558220515711558204225876355911905433196449352782099340375640235167107424605275234866959150846238939530081821974004433919054382863955687182014637197836901893285421163245145649511683624999067896087719202139930556647943347278520040733486344137454807817958473510325335002534558712060125549630961607406242600305777242134309625008754077241786069379403372743952545501023873565074930824069025575900998830802017105702474624578611172256024991174521835627733070515586268236146072374762054785412059672117023558115818328114627628398440060724917865597271180105286891094911807792615279244488205125575139270312671765094628629967713161272943158061269472995609822133372988360387120747915278269969900260265960742001821702822493423821809454727577583376153726099883386469940232785881672062834198350503608003199792510236561001094170348772524197766325925572895785447238381942118183391626042665104173215491988593405666040386455722728634766722357474309164288406928361947065041665813866836594645865549361760228534793058592927112718154329575235899826713377710288260336220123131717613611137835048545789460307027472062795338180005881093003145132061008741074227060770755119512722142482474339209355492022586719006935391379857789160774570937846596528618140384323229201230772480608668164302781019624820613204351112003872697254418358750790211633092295626618478077662041642196363914225443185078826110689624759667389962846290687701783077026195674620729902836771202046372573707013700352892190906157210805045553477496558033968788147878564580935694155093744818108413603251629943748580252090447714846663584388002874068451678944999566119423558639182272070398124450744170532070121982301488793543215792384830949022547411658058607457908862581746136328805400049089647004662524544636271105137081828944538191072070470374971428495571044609552471647532154490509994615406887967813493591663897715653570405510859048123733771493525774874252058558547218909555301636281299272961000372174127213006879712730491992665510703721859533242284860148491089401829994189170369750279523989514687614900400319853410289604539624228204248558615807821325526394099371169230324494465916307191764750087817269107866713838243210691703889133281084757431921725908085304955833225675436837493926470038431716598011822228240740386393838035208319227146642046148649043600006388749181713973939226721131836509475490878738386241478157975035175430297575915291706054135204890800812595025313755626108159533001436644649429917433323235292261860648389767553913799461308061847943529343768866011560658856519960537789360602645684333643400855758769492611709460186481738780554788100653874236638361904581417841874212377189863980047625492038596463960026678545327844598233804375326490141930505498091875852123074061617226695463041863548756369177430564081839013045319737132189765493951647224252880736056415744393890861377497429406311526918500269702732432687451569390137303398029014883731543946636119543302258924195687515948698096309578491637417406516720545176321901450631870374767989915620501744245375221504343464667864514587410515809506279789237406605083513005850150923070672012911642212126083476482033724599842888750528750468711174065743591029637016198090212608400532519278857069155734764731685681355088252706550697479503666104119569311602640881192766603890535261052450988212112273678864998127262878608155451151017467141215507660743544643874691863086133826959153359351737754736717789679779618915797425556484639981950447504404145010272338794427863040598757555158119401476568324498630012930041283540352651786482585178423765612736282145945099714994702828458084003177011198404761845219405033841312196819614610015945893798714589920486193344706153690469993293278525498591200759678222974924777821134816427235366290461201182136264558267336026051045275784166437265452580064636695936770396773765365801787309014194169247265739942378961444880106753509048056447924465284074668714010087287741290393054498043973063111468864002044013347897422290542867825055218894799316142028105397879245804573087215604615690477103124510358142815801034897500184321020870229835536148439600017819932726690237579814834339670838784050028828285809000864862401710553446598717699042872981031075299282796727629525849289304651733856983609352102606693721285646501182485464615818769874545255792276119071401884169823510311614331682757638275708133826153814573772366994625730913285931591038584083055427463679152661453207565340096813837935064662944636723893181661011606848983966740442936477925365524050116990620030267281257166175379378096166303811671967448613177187979894386492703770124154146125007196815949361682742368333202018632429609506860311733248706767027204088126683902218081288827428912238106970713511686191862150588300502520176626585599606416893106419392238252527790228101669829147441559075538813999735364905148354170650689195256989331687999631427473683080113822421450741685017446831444279329083943385420836087434459451062595029713861782835411650347444493262114975935360271665585458701838540451772650143181812524209861002345336044533124507559214016819089852576379448953273486738299842832688337235908469174620872450888421589639363117795433693317920090431944471489775236512798727226081897220499176884183247317111708716563739695155838717321320768302316657168430137513275321975500982553375642334798764165240854762799207769220671446826979825408444480781346311385434467726418963943307708850936349801432110675535390592412763833622319181883223877840323180192937415153412979556851252076317730761666342340605060080147909883885370240622779048381171863372610009157398204339680228639217439443395769920032654237391256152979842569283908977910390435752606368068987338983221333513432091240045066084925113981174855906782758128615521699014976151684399246504916178373281732697911448867076920347709001516718185194366441178386258500344125329699168880001920505656252881482994464565500591895740407058152999906076519479542065852869241218304312453506806994652177398543861980171471778503920651748316428898152387877676232460295821365448606811975129934152979940825708303112811611588538229605749584765938939708860608739044139680596183307460448011166710092647043348307178559196206776784101574679455797861878782713877473765328729079584275236316357282257159599858703724616613480695256952733146059218449460204324463647875185611665155556239075687135498653320749697997361171665501323580024248075099219997492876718350717733981644328441972065974474162490677154061375538584812110257099498637314072075979319589515678888561018658632322524969377283616001597430265334801592808055269747402468134390671790564704275554253931888302851972811884222553346255479709309235915527577070451505152133926256371299968695960914496164947627762765141103492807887685729621448704771672643133011375191074180974973493229298389330354934022939445143063359941075343229144657852445604896668763538268452439682138146119312762855349485414305302727523690790571431393164898042394471882930970110807233431812591997881029111593452193577681344611746459012030266811995125708369845387521711310484730293234613962939960716081264072792977494846805208888967476989082882041511497697351520040597919195341606626860496412977095228772215340300166022429260822041392285017383906054486211512938590444925654529817499199424162882214603649028849948152433146458752028142350869247369505340108127950832887594184184479600136032727289274803925496949866146278657249880701067841889173758814165913319968750568257428817137833649076221516077797464954648350191951390287615194129883918900635389630367427942039226926986507110495054880169073396583350340162027132203965464533144108125813627761146459085474746797122832882775745701590008851286154949500360989708155756557791930833840152216735093152225649467965306793167965618393162853827351012474804915312870363285920023687406957989138318780075528796990932967438940380212609829493623452526324479576893448546394990425902705059903584392214775222300453942425009479624612432870934687701444119332469021134870747608665853698296935991018523742516403050891171509718966688620331609465592920981961191703468175312067315341696628753192738739063097545194460310232631940913111680151739071619938404895306928280287788060059059086595670686353354827665011287221572964600269010178490605720760240796955949988296389390734572137899798874327634616637822456762737876386556127708009630136065603072771458603973632388261650023874064974343133599112931829163117512938216265499566591045930369207917101473513897262245689610552258746469869473218128830137080397755029097905775062305396059715288820596365969049015009910930842384090164147903662232412020838630839271054011543731035693346780419280696231820130966124469093694500825396245718092111186941513940325638899963790760076642286141269752990800740440271420532962148097807366872292468812822898688407995430970251499646798021000181575679765361167612459660497197953523848467894204719873538794748996386991956618379017937282220390529650661638970760137420632587470214916856079015214015483439829517691061345290615576606398429468472975841102044843305446033667464285194414862448584333156496653657101595921155623685559210663521893139850481473970797391042819614185925355950892061486502096799697099910383231778637190460323766123011951916770635285477658534986687869040605060371175332912818844563182272122261899887358568077836560140987675274927071339976608831663614057153297970473225342726762409448177857552490789384659120896135071989651456229448493414427355916369414335421137867044971551813058516171395153843511317481715190761158725505142354755743810065998074406093639509039082408554275403479378035167770084915146789622652364914067283676744457734674536398786898381214701654056046274955559047117299111281686254793241050204906024932231601612560863040866142787558310677011590516921104853073195736679357978333967937894777795614172906557870232817640750044281697915556874336333255852492035225118819564698467815375506434147153089822025893275065939654371794009224252366138853452152459205940665308658811668623965532021062077526048151808689439490976439280534956163608549094772188583906102716014356707219974057692383475669121311824844964733404201087117078459615326757376949647055185389602159134206204039654067955364188987873449714439011780532102328739310226917857791746376301978608353674056645336632358959942457060257280717301329847155408038239800672458176389312071320113608857327887666395903183891367151641395592569044166371660867451229532877898113487517476003118438364780962314431559128831527779356006413183536174816330238537361338051589331338858154192242914255107226853730519028392634851998996265249509368153210652232123809022953008984860230200170892779749801594760293413509281890747432967903114209222331602705096969864040830196101128815631405470913047930277396754317881701209232886289112884317424340800884181946671038140279841502824362470905051095286578997191979212237547947522851934840668248866771337721159031021832605033787830055868166333102433748792503076320876121319031265480276715172291996211557800239320806110090967673472575196397223819013627718742170183209252712044459644353635849427272973166006520223792464434747309391731310347881251336988627816512814806081243220776724730137372128205619634760500767542506484886331277625388161827659526142394435444784674489975837828022934462985673593711737777241443361866105588084239429475916859916719858607551125564877678078477944817807735601327181353740019259764823509275269733993311493771627304677137352659104812543360693873570370664311569124881242385704928373246068787434455032218757324761754568431369842617989206942290512997701632793500469881013029744376056546711559337688716432632116094225997717802084647590957446069741860608606977523340438482772418180569504107948956422672446590097425697144860769061701861565325780457538316086137847421762261269726225688408177546377310903592060510631226046213582547688210665832759668808731851946900383033867209087143976462457246419163952141805497453349010344296780066525373956863400843844245908225986678044928734121868929666710821393053498095281136048132789736930347821943783285531110551805194981545799762299411905367178250204407991436462116495736712537652488034649355703426292431449256665983263392652478541318765011581983707611161750217516674971194338067272828514278850896035797168224618928237962813971837061964965093177397314249909054770583986649724089329957650382580707101073225690494969077117109798489587174653848526491534175431425223738672143029848813332552359931648469988615373817862759130188605699241017461529239522616494983551043709611136945869558942716410735966291975191828343241744637206049290473029792948826988361503436716613820750175690410459356112726662326545191269270222211712316174777920792723515025002935790215786273252683511962752826465659550854415596311412281803066890177901963454269963012029563560676552549430398075739407449365114667565985436402332508649792761293206260370464890846505043505547759200958880398382153337079185167200592011560699179301468361814955110635678884866767237807817629314610993065200022305100759795342569351008353435298323471023688639504500952713954958803370704049491469464751058841893996025941945698015477284798335633386356424632784040629086510210893027265566210614498391727156911917043220094494950459620854265597231937560261997426526256416703324104698324085773370159995941408953188088325744576701138331886046577431520533845928445227859943170723564220298182241937305088719871760215974736199831522038905166026523731527135707663605167755797646374856765661207796806614019108905928471717924134918892898884380965279064218686244069500215671780384916567818199790021870122119485529746244166639573733127408601003810066871537767256488855491840965102749054271123802455757185315500813332312576499224314661170595295178623831294680634239623787143076668983974441388538146295283295879336669181147628595137073955754742225808883207657057461269411330459962907910241793343769233491107527195312225156416273487085260867813058441242776242957639983354884904539145338927549783619712065939102520577890654428373388767516520400901656076202086042147888556404120920225944103458745736419531280114633726969983566860038441951784789111265870749975930755129368300747193639438130498383763525912856934264381651658784484987782720957446261870921943590541182914172186095591212579176674964879316700307673705800562793508675309663093050916527393254726168437961513303090080885375747946720821646182214609764709395800662349218614640990307543829436291913577687873557768925243241008973406175137605819358849371804428595076384063135551708528395328305647551361203013388568666340311522679420540963998652671103705675867934187851797745494419254463053881472880332109659655429083197458139338890173667055934888373708219045472705100327848085850967003604380818359814713339440237846513287347106443190072198496245047982171943993072183279432765694656303116061956493468596608026979425832477027538948491363942659862012117934880210438534964597409309533494038321533099590813276801945994751592797771810641607839538166152978932338637839798823982235778622627022354015378456909194040259404136883016489672172665785774757359040376987867463295359395491205827411973828445706872777617140145872404837318860617593454692734490244811257652606254667549175641644368522994445056680095052069311392638104837453261077372942636769386381034785854671527174715199681116499964443730689477045776433265152167276746487686802528192411677321294528126079291365328597663622604118823881721278297972809955333590130874610010865718745976387490246319569865201773671805165088807950069221101474662669549986601639700122431405748477020675418660392614705604370006187466859109120986639854510865317010515425918321873249102014355535368019645874560779163174932791458830318368015033691399375071159196913880949230996431520274112743943450305733504113259411381971868983396828841243961413880685605050179555849547113480825355042861296606587116534228119660243093740005703146014381840821514776469055501511604279820587880910568706787610930694710445279325333851410269774604461205539582538854056755875789964701328961914333054654744233635631927538836347047802261409027011409283809271824576342140799156882964212098841608940933895753342100730658182292152921235439210587372294405057477085108982624289995187373535149182704663837102056729170005823444284080464686075210967930439898206711008104283203119259943462270363527700769107465959974088427662096043339918993845369006599987097819936391155173721164097941694949751025490673274043443871305220318254475004107173030970794414474375584532747046633421687734091187888644164891057547758641511078171642279231683253210798559119910565767723913406207887572229959433756537381967955158492174670808430024704262666018512858425923718760341655647659033702760099529201536054751304616043455330917896672112348125824392638655912940429601183130633665609225230620597322410326492963901620928228767539461967772115797882612713264668270752367100946572511037718375494328907517206118445055936452319320750812589613621719711652138730517135452391692703250731603385261448576061488544763989785864601505055763992953688441664022848920468482796482137472401071648018457075317848436200876508951039693727613402931283543065189588711229213312344054151101118464706489646620827820900019856195145952034594817061321883014404347017462525629886363406563118917147203553478281518236544312207235731935889758122141075466299481147668665501858646110311203859112387765488938356925284158529845481955790160844558896744279586121320580520726059500514324674599538710972347650664640373802633776711206512228095549339929436413259331348514041688023145795818069611838744506289952526798657089044051608824168601218403618555487281605085206085077256720802833940649598852865142798412832627416016709108054516392532454232661790312357639188776087074422878719849894742409396541379982481332902986860317274376816144029107156892759659736762918302556490748018797867593949843119990177811458118238243385203270967285494832885764415914419014069331806673085863121524558067413071733720390965222557597510535373481056657599952297039494303256056286460337774464787021407333066186795033249186296353299677609051754492269226567258321344090998951163651296735952175533021197186592907614593918284451301015064557600835127081995659796460521841125725041276920920467563941316688340902439889291812045550727127476613158166671142602189158307965166922264548674125710595619604012433697093157508221034780507262815135739121579670514747085919697696178403112250750954973618984661315853860576149151612499180158929090252133065190211761958619738334387705842975406703676059801266406996831251306002639193380119106900542982178487974715565907986513254933885864060380436242292698317724795544630937801921322518112645374634012092009938538179563979759476913706611573522318084813968298845872513386419821719742031453855422965060548542038233365947353998064642619759289900825882009406988481425767189441257425689504881100368469818550903904697655985503129599443641838961837812050552358891370234251829669322531410553191335624735739746514855035886668232351265625960509306054497386499210779093045840799134245521231316808568177866314457330195430722119615049229054296974052312086644813046968627102047994418710808286303095588664243144331375437680325718656969055970692802564931617098206387531485827366076491730021591872542331599026561404792441443354536521260747283848110890088253608400282748510282656298414558021456818896057502138992053584703739138567759468032742008316876115099882941013781171286235077793062866401787935719508464968097747961964239092626283255086556296416789970790493292000405680494866340362899198524989709596414613883401399808260722977298761354492574863533727948860078600069615629964970555939857712243433738752870516490909565403897409757612069058586177221939016891330095211649286613499900127385845366385747763169316948760136935653628042817946207365165925831496525596792007072253047238599190380602879484695797548086910838553214140851342334425870338384993140075070247510068980065541063854337821118272391674203318691305862953793339619131167219179130723797209561581747491937886911549707261306863315561510245175729586971674152636503778019658488129304147896265042895729250000079491256450326577746570705731894343297862407905778577758062315279266857011116471313019913544986932817068666248569186682415066930019960719670365381324243959592638484822036442418482121897109420483991226206921124026080368041831109152811251393429840516784435410636765870911341203557886625691848547087193091826934747426676857204211970523210371252134528655107427884263243031778594000853227847636462440409085271120571096021989893958299850957113237497725539832340579416656383864612499435167107214956016863654147968617721197904501012463201210752379633878817664379851634829569381556129323750321275353442262393457173167177422936472552636203171968255913284691147812301272832070053421447868915066730281372785350339828484786249013514371782663575241426121742282950442401493728774317980303891915741047166999207016063003900638139061240528938176281767937684051915473698761164651948764726120590379793820884596686039915552586773093129557307653812549211772642038097514929027692535464298673384354891664748069836597633714514351212804872454121732260139357272724039277475320816561373261085261789638949466402242458251400472824480580539567431951448153281896774008653335440533987453147534785900525876549365644599173196215235053704278422238483088679257931210117064006264316166219832804961112315345028421197305269330401102426681244010034979871420324371362908700663374984007417285981829911749467796998792088156131308127555151832481658290511771520753896706855108211628850593968444569043766879232574498603643069320052486297656750070773427483072352255818400614517208630477973509217410853351175810692188932593478927193478957857620589895195340102735178800877798097856122798757221710859661018747390628232781695888624120483103505732707621568864863963565889920816985247230210551734335339094990310350918756019912799064388495550107324205578888909075816517565015194041720105389520282352287193471349247625707649090342937521174449016899624022268161180161268933413988858006840466409881150165496567784106399366534969942619860043897924600597648411210003405348904939051424268384863236406210655037191596170665176476469712043346922480116703522993795953398831374859323651258764366262875121977319359326212776354752620602011004550595929942458067725472674454843416642330782492650687124827968721123604954151170692030936426860130755001086880909755558877887928637588067696595323367393222794488204863737371136533230191848661340762673943223482870401942719485727799318650323598899774189339970417595850142422712183599111755608970833401390079984160952663955322909035948435743660269727658719241178239069764121329879770967633493808125097608557201674748927533130102973526536371650396653544394007177943650764083114316184430662393349839309853614769541771796842463750984162727409258792346164574912960841026927478656810706741333610440349015294294483985907137399845618387255687891939113176598095104489834552688296965653894319528481713646747197557633086060680914536064331909008409272357268886486519005832449112428355153627628582691856426031510602205576736558001310211089152837337518171621298425054382768639070491295306864700397378232751492776277276427941151939935565520754656806156784990984557392356836404614861528329239004383843448372550646488878238317953273925530509897804254390418558610562803104867525123893734665732863390173671769028894062289702556929731439219261547174106769210654518323909282869289604439221445187024883781645998402315389868901364895263587106408018612597088880035263526977636011771624627663617528062536669240479264392163954055984915761258475112521301021821088202458370113079078037388624344357715061584984396653099369169843793064650988439906488226089030036102934151634170584254778281389182264679389937858731666518453956237187139648673729906014149717197075747236524034529641823353064311792718127628994375251677352207912322084416089176785163403566185255265091657801358779842006124098401819434513088016217314106419087658672255486851613398265474460698758130825989720399856036383461763072353966580421891856791017382218711920836051220203855819228476770992157506072298270836004639599046995358404232555661339789367406241822008929131288702656292918324999465118135017684151719880300022472552540988433184315714010684878270363100774407389044703859042598060253866743172340183818563777870479180571605616470186340388346288699764089001257931016782417563488655532935930983351983242721040551663530159939111895192290234588657145936480123568910219109484741133055708582735740929090552425216684571703088248677349157088770575207636457204781288933344858801838649457331087790651929582985220271570001357108818895690299300883220768246057785025271622585988562969394842990217718877745254897244952010214355223045599347700329551865024890391376464276810997903957890167332876710709563650374504467791968268168231521358681523122914437868424872864597920253155992243487416688394124973160704983197263543415419928600112565759620267820468818912136867113848581714623127252676916797618188027385966813491431569933314663292066998335127599600508626988231204728361003629247740758649906830241871460632087524272634236026984488914637912794487999528790757676621131907605153957824411577443101051958969300097763246273571105610744415488723892621179614655670673725977990495728330969711697186476183372840318053804434916268262194789501580523048085030816090659366853011719971049599859761164722050907497575246627240688713474552996582796831406805373614389229166935917853563407074256322416229346664624559802122824624108341869440108859379132141168923152218148500948442492852535353489946828520331160134443477382054306710973288346799119416264375919024523862717860458022845374289774959125736273451984567544460490188814797709964796449356398445544793736177205293492487394407940639897784486747074735672161016663259505882420684135803118011193674966739831132852160438042726489417276730471916688683362765173344678326290423241869897133164433673444852002665823248821642518457228363208805976992657870129722391460866412611003736967226827494120621152740119258551220873278942054279866252030185770283475230247946182743415285707830371780075722661136644080613521517755701684463466962508834820771921016655984510979186113877183082796378105281182899631943220691531699193535667052900136289250938885002192850602734744712979467659439960938822105648718075242665258114763958029322851363486648856840473706043579391330355462948423257569979424221404424555841358396352690534358472390007411585219557907338717033152123765062417617345632616246936000299061439633495632506114917287147547190073217549885780676022607725346069037859167778344067866962718384338382966664256747251521204467900308688364230165711244904459690886400008695554667938660858492302490942745238523654011781549086649082536262372590999853018445464380305697397389810717662810149419589801870907727506512510784540680542189093871076179806386977806482787996217902969234432056251327215242793098363675343007441838528611756064947095276224073241386735300689854632053994946079104896075345484213812641989890735012638887075833974519919592702171950001387905099773937543026975295167955959554949737480287941222939130626860701716741238180318336296024503329131953831884641289017399022492328379135867197764404278884627337919706223852126397391944070214488785637045662588962728236903749055939142484088459130467681698884101804216210497383486172181631615472657894607331081174789832857291624841966562628602753243282162182032182233459553826983666099310985566875595368908292332817252460395065270100376953310255840638287500310650171584536071059850049499884096002577987294245758242042084924107321702084374702255266907196168025096810277819635806999375534371805026685842892691467687639283082869700739948093353074255553465160734131497110951530791909898030728987490717789707969331724722052525335928396224535935780328864597467190171162899222462747931804813502165757449894814425459400915169865469315112054248500603546637529311211048280623125515406957621372226066775105022635487416363516262143785268955815968234368517848714644216370523638392316383305241414044855591996474754320583913518011419684597715402361233189198804830451351510454238069729033909952783085607869226452872883632712972451288263911979853123095793075333270212512752900900708923303406515967223680354765800816403556759435686026835418782041159029399254967999327090413424132600313441292836880206018738715231389509017998313919641468346865068433909148172084791598521770111065166964814523667831884233204166617428126451743680544604176305031644735774283433082242541197172165073965841498094144477219274747386856607840083920028164037092364338622354137760538776141805031975645513768398111848629540742619024239281524064584650886996349295803019485156874341124013910347168319153155618373721795083717072306842542930101356079430871119130516596357127782450840009213671620713727917064890405916624131399072688255557664652826609114104335614170756524685526260585652697736340639087444827830079947643689561091910786289833821620186987576384695549759958838357763954799577718742853946027998084885403023261469624507970034972319957970997217229736943248211958782135303057115052053053445241937254617963218970007740700831786658022221018317135579336123045518393947187343431316146313560948076265448541946303165556144065355087896121819522169611043113924044184717572855615630785651262388523334995249139974453063388662617072301166700784530021492323988667256467854461840031307289317911001994908701686574573451679765290419965309415446760293142081289868374117946930835004273777492023298948556489396085788192268211565706262632044948136778715573270874415451374179182215000541413936036010299597717864095447328379062485364596879066989192874719576322309388073807221121584941432110014488977677971492694204290703134548814174411630564660165075131067331882197131653109758171094631084326492080749020811788464758426737798601350441241535010036715180573036814392366813005230538045109799095621334368399188703038582780589699236863332454668665381642110500545354011933885478458415759437702317854311379437364295917612168198345129453892837215840664134498206623695591865906810193653666516336515234521217854506975089471596809061512237504671001175433646168592553054488425025906693653513686656182277665306111201973465255753660355512806620515662431601263642513155366487099460494536271088003563865487088535877056719482611721308914677164237305513688166369423881113353531297071178397322471179241854994821843951626626429893049610181501464871242020432570177564558041854925745275550500319941034053243756402157307175556473390040059388467453867536991032489868325718551829417565353470024631345532913015832911544389794113260383608924329285153779568559005865907216011445717061133064536937181885022387308663031452601806490974873978131206770876708827660668963850266502821799559378456346278396744880649068616555134919990370691584194753090209104245090784117147108750587638688133034611389637384101242616415975810434310805404296560891350868237586485575266045294880647363475669129617556735888496510038460261287601426732386500146282105915774646774816536726453469582596136632214717039362176016288085029142557614369104097070733418566697901057885733817184925349904394659642244143896737300007616245226486688110120021430210724007513380938130203898308251086193697450742449867164395328151919260008509070407244407186980954135254559010960088049776502420685763386992809559164858705472081221601323810793565277007234581219944822965272372527376938292640663496950435561153154250013249271286228283029671865889750370709997926677197967011331321871718128844193361660587318778925528501103296310064275863540615480566892139684872727470658132543097013331740963392952099953553141760843823426514275328118638698788774223239002702155159226921007291918271542309821663239461556837902062435079999866514872807071981736818021139406705736066821760085737268251960433385316041850027906366431776671917953147924576436444023512608443660981141319535437233896506530383296185797015726916094001604708209486056606850989306802285058989275534214118860157485524630127627453656497215499688936453878291571066527062354829771784066550513026696786362510925321483754545343550506379966199238155980359690660958858212450387589047881937531216599471952244965890684387283602388376736040228041107149294509384944872402692724184418335575786193876501674136265754424243730313196789529749652934387435720935556862115071184655534930137203384376285188153005065044348067159255792177246787453808211947426908543395373123579739006516288283786734398989919615483585513040217334377227736717125900911353769524266025778011723772014323887006438118754804926827929845294065729506630494360952578107426491451542657289719517605029724325312953301754599813694361504672921430874208822287916237759767742056102614388930646598125471227468932231561436929174064180240636646281449605203422068031108949052406876289265009662080850730217995972565586300776835705373924955986223462210354425746057811508234109217531943910611826271585925837254838537141341782103341943539515345386118944696560197806621344037043574428977001110452005238759376923758292895182695915424392997957152117489168828776285216025677048381679311989874564337413115758454191732579669196661433388717847006882178242077977100099322399560939434529229244745999514064810192201889748995697381626656365128002327799463487890337496738853330915429782834355003513300883128171695665676348745313469158206497411431383116486219825314469401631850713198963839418144122234113291173826194231795662415082843781004371027897365525487756305039871787680086895684327066188302799101540878833505808163772546405214845073350119498502012239463906119627723439854205847574332944135047016966792952813546669567883732503963098660576934485418452984448192755250103765725412529159556430543783894273491520171805262765223874565996180104004456182008437014385464209910360626611826926514329051783355636734565247831888121246262929902112846487920550013952496407616172328757003868647966989062917312163303048909963454074561220582104758753334732633735175551359898372043719495695879931937057532176718585581633994748129462378945256132874297040549420997856075415426302434877340013681616734967525983862653476772748488192380245601911449759112589857915805264586264485446335595201572624210668135371875285741300450489542326265121608203567342315081452783507283912645929544334519636311947516950794532493675348521037508256964910332164350719983203947266035930333362944724443360862831999802934895471044500185998297847427602695929542042389234943131733389157330098856490237343098667716514085709379885657627829097317220100895725776903670284711207091020162597130754370734976433659916366877835069310460268296400271311410774383760479613154022306301871558432181142662338281618628362591720310811648273206991194335437415315182532865058896217205400546264768059552789072633201220492151001074090448529306841945766405896013258184395457508597724682509819675963187795514790094359251467954102150937029782205002312129270866823604266849709869604015337810308641383053766008331737401880263043963864987679412975987210005507619515251188289059439584185923887388308675791437178445427858712968341386211358840859596858437517131546492228686308778246604611777514579902566199894687539233248032355838519078753170253305853444376481736889728796871113544973335011273783891366993901309475823067162127406799854296997508763509268076555388652102584035762555759980044242311895588554956259765345587145719592991035392288941272888170723423463687536452131004503149177289854929722778291382348111824250014558753398914091888006648395363768216038879927070730092041459880072176806430059690500878659501114028391018206297775241310813329096572973628003109403345459160750152381888925773498163060194198124342482596141229359510626268374567112778068113832877427802356445139892423831945998121988998281273715665243396796741722295468310016904089936517429246227596167962342186290541389195873117609178340458309047864695634271877724823868777732960069863163718211307563712894062743009657866204251815857391270728558211136605228773302756557713028846984500791587440485141111517565071582611860267058651249564650025236233268520931782622226910089394635341827897988668941684849230931720836519241833955791817870712425273873536950186735674842312737767582680516925752868016997829044560175686525061697145808918444179849972577774891740215437023745574467279843175017193738441315044297165622206826896519870503073623000622251050307483340093143540867032495311914789935764763405585809985988171603336048828546909746953100791747085036032715417213905155429680314099386652376285634800536481677716784182468804251477830849225092417746127524611059728954333907654090533802677804036469830770052378401851253260318832850850654410184075267704565774880204074379199149520915277925149804889266806189555576705471222577462070549717775004051925991109661538205913681451518147579637200224445314694562252310575566721798136745380372762466842712143286725531026785655604410542972408773399755164373032317872569757023273953689332938189987028743299532728657590217553216036879915780636145507898807225723722113943575793038060166474798855671544528613040761958196636787330083057059642953658849460307515304004217943730703911273612103949549676317065004838124968785400098230189769515915815849137850520832830988460781195509736629836784931617404976305738714083735838605948719515986622358721424399759828023916302625078008681118217374011542367117056848273120943510438166556380769495903674074052584510211969641332574300776056945694809127703438167526540176042404264437002621273782437355101963232893307933394154054692789369892771050226315572212740727847723829662873678904131164337294807804513935819308614167878457508734246214046331154616748090673501149963181619029829773522248085965328924210593273282472107484874937231145307484840166355040466712147139316208614513616291330651963452696942277542214702581220275186664961353852301796343094429421776527731946363833482841111947945401920088006401505810464177412233101901712780099714835866655632819250409179130314032624448759819634127749723369836986673285391593794060856670151830760309002750335539774799363171581332107223704297228115379034459537982314902178506257913547899372647191230661439570712519429432784373644321991374060311610237095337878169776631899985806117972075554558281166804546737008083542634695356631415367902614652998288515479763297746208745278344701922197444160672599312564687610701898311599220885951734124777869799576692876609173898231325302830470168115718984980774350616562798309054681855542513558703263428825460749246701289862725333930511790167673492987985119860257738492914941135079764012340464038492859819858805188493726809741741790033659407260898652613956958978565171955595869231860560878923261522966271860273806226137980820164302285986448967936238341376512256599304213321176060245556215561197754350264861686893943302641384267902400113265050636905950208043857998215611234356547195326383029744865356716687598212585484167627559836139718093036588540992176084604144224021868512568683550188742188672252683693899757027004229890503441118982953550813026246570829430430389619700709571126496689215837807768800856784132523221213527791817694369474223796017544407426359343742226752377040145279692166685950676139880045913796095163081689845701401607402170164595032526118718028224666432827107970406476930057395997077413538447956392908738978754397173997890847057791596518113149819526062540273582490388914956245674535984502073964899760412547893482536882338957781582884812457154732136213422981427651359961163164472598038815822772485235910831135375380228080726213300558892252769731995618978984113994907550375868495244151231642954719871931754201784521813309592905393924734246229994881679666677308561247007399765053027106110327526466252116178819199673621686253606873911909072954433863994177799889931337895256084130586564499709809716808292609687325325344300888211239627909547785108445812012365461262874144200713817893945518398736595575448172947771322620500152570917584345720626397424229927313545732395940314410586929669136972797620160493162502963779595771577901365009269065627989430457213545688610890109159745212431031072544464536460565872643113665558448499505798346336653018046483018032962125958925980937214357674423905586105260573705153930366775577989012373316054350241278890690078575622148762915446890503508883825816547315126675763386717017758602563263757157423414525976951725011849706434413604027198601808103190773311715483974461345421636210746136215626912145949198335926557255422086123021204450423149598834803578255311522185673099663615818342578174971803348627616093659561028789009939600328794685966031531810741224302125607046374965007524304592110195050956322893654366317152007263452167511720587959592856564581336150751511975780972549676665494281236064875993552742380107520273524732271446769038156780575393310910390595880565108096815736968953945268149951538777022910773308496274486034656878329035174762150999665648830557819352369683570617652648279735259850131268375032970974699930986497617866093079518091327423716506972068171196689192872815976214914445977469000698934179112136018799836376626283650431186265500257159962169392175398594447206972872877299193242135913506709226527845324214749693962933903827496295298207769210607485250859305120885243592747519571197443236792552070942825357893982618917423436364226885131229786997293295963876841248376547136126224034750868041781205522709724097254169392122401039169952395495333632226065227616425461112068901537311293715161631671580592625055251946764818106183793454002205997938860565288720648854516295040873515769127774033971514825442691141697531548802550739890325149359716993574433907892131128038612551842017107821402544369096153305088301106022216104829265232949563741104512405127932856298290063494613359431891806382407966777715437765031421650170721649710626985400720190581593002375367398467176909637765490174645144796809865699017405189976226820470846680541441843223439005713518706156936570205462445565198074673987549410503362712620899761361198199379595888473257894772547596477772858161941582653638460766207336789380329750784210758379439683992080113764302720797289882737230243930100618320165447212253392201301527401908806640075174904837559919929131879204184163805909206585325973209980832682587866951615858933099249258583062881461250226000440840754851840460629927139629784107165847473632937424446626028291196868093814294521726353246829115969053399238199204591622078798537548444918788070395604161451044444638753802956702784501303807196233755205153456553977440811850320500177461933158978554101057873275218486803325040083240052986913757455170540517094827608967607840632556497336948319062788083505392322148988679115184611393580951653196173295652886180931055599271855774577395328958400671025422471241024820848549643962604274524705632243760511470840653075871465572672170932418413996961792986861425744395758926779446947213614653438408519365990045811924652129586493898995627465102983048818823856409010614882516493469509527353724324625970481328093117959692507064409107909755383122406590242366544050709807356171152438597831738433282174252073497726289631518198342077947723695765684043187962962294598429162460633125690854684118304715679924894081823120820572417284746629978622092142617829754658300397981528450797835215284897139089975467258534760878251037409374269692566798201972119649368783179029532994104373352440039282473738443281608296333893390250218281287506033361454883939159902569876800265523417246043959136113083674488748109661414169538798965591753609158309151524680936700369220791195264559687440682449884288240317210666643406771426120957749609638904520805465518103295967754629080662509326669419586520907396605659702710044445118456528794736659142795566245785093803122624689056820926650224972528952608710301179599167485646592205905549126380866728723409757268371689517217000392716366914442704110744186651937913854115122271532068717351754577879692100361731930378219351514935660603791010340512207988600945924260375501935837138793578958763603058788189862525635616435955339255648051294267452913523730877272557992344206407182558542567456288126957663102698509857187975294570901506150749815239058579626180311117732286317981910341868984653381298219766884773901951029005490816745831131553936575447523871491484785120422497820179618801539037635108481994862092042953741305471227054173641506711545377410871054871142531205857966664194603302158789416745419499515825930263150957440491913039729819280509700835175917518189271797153141934518594629997698874124881530204706208931255695025152218946378365064689977003228234444688030815384760989026722153508432596996664017061260119225109142312200016328972049409396073258178408171357894969784362075176195001825888303062163357296477839439677094328516604293489682073766544184798200918894356145120539740320317774175816140356173476269142547990069820424850921091998959427735889116328208449860694452574897569065112137905795858731051068117084645090712538754298474128090200577785032516835910972528615143292345379758351839784340435716848533384226851339976134572157793487680817390574635395914345400719406795751432986339625316383783464276609909348385143864938905708206560489812858161799144921742066691644654127268092961627758683445162095346328712381387867467668706019594447862747610463815704534126146241982087148784309996462696326518423706774148653403107899011300823572232882530878203337198191383443608928507833325063294979084508171670399444951334480689334515259239354989016126992792918368821363900392332996032358219835291734602430012027041943374332916652015371598928105206340165895737013259932385312066964387328854805796613095530986843306920966025900601477807304883367036865015577608527974980017477410350398840000684284494772462762868537741840392707355325928526422115129037017462317991938747155066668766116572853498303031134216918789918502306710364326215824674101670699244105610018618897514559669968173080202210259175297883631790074478641333197370293572734372678680581945760266600565580614477144384157968471924545780815946840027110103155278373424298996978076025637830215969324712252989545637816769309958174131029214851580643712292892783260605760329251575357295898035129556204956341139991023767820913967840900185937165950385358108201107758724246199659801484544877349310753665330536311304138562980335874262892755712860443575790449401688177216326815039918048083928336728796565483381569651578195341017099725722051460848403240139672139461920358710291037042857044314802060276405272958040970976967877865175251062816381545383925169270828912115371863641703021748012639577082343984363656684299414483783447794670501124557793728082071013432278990895533400598131920850497284906438419400424812513686891866285148806247215899765244155120288428514699358482693265698532564263700850871466763439944358424393383273812867083841822795844599607791740625415274310174287929685125111875928949526585977677787516840784577552550776778638744298191676743719552802905446088256864992616422922160655133658599408803184778288969050610737453306572576964786216105716641220959007945939850483995051966863934216958712394237967579053139592134658149403189331059779953139050280679658936542501725338128702490979744195291250916742417756054764698459553039497241752561695541074573546056079448325900266792517871251186335998173894939414728436256626920789953669881016172327039036575737361071181762584029362367476767692826807833309897251123081671759022743187938059557772651640392745491188912713456567083070094067617560491324828252783929393321439269119697447693424293533761404693263075316009209092727055022092501614891644997417979121834854693215297211651629550877972654642702158280048671280037837204510731799116428741820054276433101937392404053368051852082057240516245085590677340252730177352710942531746573418162109979292867249220709938541730753472103066455197691539907781787847326250556533348993563552031304691896674399146243691110176732210927736737679469654246604663115588554421928945157551511154196751877907931660125492689920289189775883764889355380094687950274554747061874351383626853503943346772154880005774898020843535795815789166075181884308719933888684128568700637887597860864963660824948686981358683857186613158982856974106693945561642071621755986664710403121291563840063678136201473783594532486926831108384749094643010430008083621208486302442315506696236609040339785113862375285129291736003830794909600901909662861390855635792943394467064359269338959733554714635180500534362293417523564940980615677591525507101563140366729337705613332772735101517588145428724785605625131692951018503474384053049266224460377735769733970793420539793993514641604301666930578449671918114312098019070385199744183795146987048309080867749131316654033296841604621244736159461245244377515751164485635993609281900499583075872165546046049739433577770516862988805471850375747277256066669493888773391826990426427711086242093675578915905659942999989818509610443965889734839843801018007794823897129580608912132939546569168768851920482937928439850384630861263904770177722755214877885234946606531458291214498883289021240091845305780590583952049027545907016324601864077780892658222207316484226187328420738078108695476455409472280091355994595962390923985559008768284987009106681545318893602219665291192864419237557665551551839039572036884545859940812373985751369490791512218348134320913083144111953218745838464325824541320338732508521138098890478495969785858235412428669148541070850305392368017385590609590679695824588067800900013141864369546466725254586233557865369899329451882130845807552368947872826128664171350591963198095375315618847946154876073609509665520471961124134165889800539672508586619861436415726181237143894047858080561821541192401935343782804602261241717269853363625051923530406313618893729875974796215580249411322982252108670966906660803238099887830521724046864944193254806685137378902887899743618798130310967156349127831406475408027222396304050119916422655627309267904734787295869597184824818225127401298770080642463999957611773241609472398674906020034800617208344747686861754155688942584937552997743402020362111334638365017067210689589407016948134096225870667857717242683402860098275925788535414112023408750764613106734862056224129406294027865457881356547865281615358102273493273338836016343363681471987001812133260526997986491448719658480712642267450680287273828438528708892811091085222967651808901926645190669491788678337672576144056555739488095033598392110714625442616736971883571674469104444588195504170904754549106279013569317326079099551214126835418502807351768471228072351658198415431701982448285812449295589105880001320631258177697456381486872747504067204901665103590633011367942821912141187366387442367768207499627427639913321795031615304504613866444626725835982891869796516758977030071045189170096097174855626648827225606965014762510134000836015174636272199468987521905443339551473452084047569785493698973603731893257935718863424482857324508168536613136468302143764642316633961100594531913502935824073958538508331327257549497652797874650655536955890736405549838697490118574832238326176791069390916496746987948576322871045452442521329277668008310079821808538168411979465544614402234226743643855570879085597333504531643369573453421682825462984572836205662937502229558724197608322925904904123423400234422466259943814809513199725955561740308226065045210420194665783724552595822981695636159701380125564415957674927028244562390252531106899785915318871893513087269412917925826562193184615423272873143122903366600981901142674580387105956821911652182072992184945687248945357444426046269856716799247054913995573724496033498974818990889202695168747859975511846979508044183775775350427481344243811980759039059998231950448013155163484102486982231021901257670732308316677710325053984040882633674655345762212774095980983230438202511550336888210771609035987189246009801146241257191843702532006096659400571096664779941614659820610853089243334699784190641235907331266486673271271434125961027722650803440232068966917746149020774517075061089496311379930617494483209858579110822990549017418699442971467536261362629143050891239993699561205649389820192858310530150456781482285088622212619296713820953679492519736220562109171466648810596048319450160703699370783099535220809413864267871809732803291213694993724529441486150359419480703051809786109259797792858198201843246616387034220409265215720740991165808751806971777016099893030127677711434208332608533620686236062422088130485992625110282110514448780881231796482709591189038692535624312631224150572612783423309445269084933598547276024087717840123534347078768235363139293227747287069832852904304773014523572918133068994732551536711572352261729523142982673846287693577780394820723642185239215655526819595729163153390191363960809672852852945371202534527613355290873700217789958178227384646635848030108989901045203838168732932002679078067515684442433187664618879848612275068607706159062875612396836250159554391029524997298437150269038156524120958821822477698994854291315529726128264257089505596286761995948808649369913799965516144658780082308921409790000627214728472085693002926725765892043617921562576079322181847800338062130999994162487109590197214121279077744322709011444644010479297318560020192341638690219263312990439304948679833112487102736644035085780653693184984413634943411220908264263352558889046446995382302290227140756216823791914954833970004020665861731241872853461642433328265190042198120224321970844035780027600298091382221916147413834419364043183809015671880307528377160463108651432432413012875544117128435139122346825793657698759956716282313970749797097119331102291367954566716045722985098683696150709708976491174756791360094362684770286333964033182270084030507921528735794165908015194830287869066741831443785832726931976611339858639517027670921918155626937263820526352711357182696501787323475567689632842351305716447662688825321136836798337618900921213960327639806364726813576821676439153671619081385976753748363765771976620942735539720466472062894214747134521415767316710925504488246498784638379168053845694570523097680712480946338245606008977513251818249036674262303228653405802351019478144989239745259861543941731289167484063066211037363109164951163289413060229767083095352926893440796725065636009070197367711725810932314890155640490890506080170708071342968306930963891449362471293003343850566600328369898279822575306985082318322380279146667568419337955299119569140385944478146658628504622330565958825383392066494283173186078706984623499684836786319025118434450759032414495502266264747374913954277954512350873289292864344750541542603777624364645848603178764352626861367328550730511853001304966205988841588277838731669460425106339998813622155150339826011107737863085972989060858377444182495587244754049108124750977362159451496119420749571270177750517113940404155101761346276432471023354968230204759591556135516189779001220009690926710323534356701650977224868817677097364705238272312973535620018987824605180890307684935332728498565714056835766985316361650511784812891406273807407992289094634852466649517442340893890100998815068155860890788655508436577848315900152448731641294014063667048570213521856724050182830778414174759867849704095633200519536866736367354970264338106386358307108502601408843498046099432353444374906628847092322523639162687653977633524317769984804901728132994099501719164984125943758927001073866317163481167158902159253757344362568655842748143961806586968913514439797078385734329026303358263696014999906700647009447850943844323777982607244151002989091104645429822612149451519151753733660881482039979081402826993794692273810418826312454428273621858127280881263808429868773052642415798363904066720732317575746387360415075969938437904752178352618317707890684677872269704766024276335901490231229054835483549788354685504485062018773433019675532454467357472888642560133412427076843915089465629148703489300025630000819020620942970332646098626204802231591625912440936790088441461696435615318038867552423532092788006202037854562936151707418157750918099655825593571148581179555288669271687277993869800790628806594126665321090160460757669994941299179108583234594468357304172444273632894508926899512587932686015791080830855761516739855770634559623219603442894081339695352997109258437839253179699569627201701594676950399235150635353335625563059270437863661305801429413132564246299949322862866822888679236138592269669905993892913278490507536447160981896483469386898163009516276857173408633719473371574143225337490402309928184713658660755591767044101520294435101878335371115917941372092436319095322949654036767261677931971379000433668564854844601836401342011104282130430133192677455941258353658452569125861071948890662323696142450767183092227081108705150661781606114415114542564937850980473507387149194862265602782839643024122580593076046633470393901137120749341759588042926163365938865661435629773399013791223855988608386951123475253102549333391893130219593547722576528458244783845300994409194672641497234492857941728574027022097169257119250743374880169660378212599313293999691833025542700291011425365016937421206812635790033673441590878988296487066755435935675197711308225975358229393156625555208557130093551103282066446930617310858762387548731854768930446889830762375453847417327150027112528150627825218023986470896185350083226349140873047120577779967253458491914052737958940229889940500645363532748426283371476077183381950182285684860498239358198529107562835601511048866810272371501135402031137376007314566500632578313349924327924960382620522332998281869162520215714793783547744153235668735425854833298959593695049177404408229443335701423011084076234680996681045950472954990239563225922972507126356266966202885708629540436521226089046243065969134189555734362548665072417703334817797114248639847217955235604111778724728499970477220758838593079247351878785855812774070660569754658929284543433713315045244383301872588748738761847898019288937526754491800398512311236434362648772673522704750043295422620588293170819614337406570460652570907631971594061154849849895291194738678613149268255497861981822709529995553415380873841347954036295736040770905127058777820265791168403688345391315935271853155313891964916508004918527940788667718246622706378019113623447283047947012514924664352927396433783178151030033872931154034832041765772533715136109216177270173142860646733949753525613144175351179975074709402592010361129483913608827707834951157524151883914143185271267099293041687652412912039716939379602754417101721129837561251931337347505373430046314311603117011260350434223811700139679461882267012775923662121863688063769401405169996840645168194855236083731351397547661097819491538620616144230680489721055911725187091720981543925057598949878209287965930359559131459042412757836782762788717576080835609242440261084616364008276276086007422507076992322740446102857189329057265413936209752426178854654440445882147958719303504877349894128437335741223673299705253625580020060040586681165854589479800437014705812705289462964566144675166119423263461713690319908256435265129412999941522262030654892640848458964324784627883433214450229879595674991033252584441851981128666089132062485729633139581616742272858567807198116030218102063154837742448133953445146945422875716397905392267491261329485750962665185653636603849903088738728389543264293391626960976313366656664776082210758040084994604130336765984715512300769108726114721733699392265630137055705852699804197636638105790713325965108526712745893256405037647522384354859770164473017275477539366963683447022624117960555162078721765552695901900892902166248984774567270255061583363559546452429237974863103362258390912420725480173843935297834161455628975555187344369629191223618386647770076595844303740805861421088193642361361394149940257457318591420764674249097811569874098017974250683065438826078102795611728913739797148578173971440684703519986307422865842102869208174766099339023970400731130937532277576143258465132411957740369596192103891606479085349250097622140840849799686410744508941803222276110560268377714463156231509203750964030163831052459934345222257757111673727552112913528074391639518016090487476412645140174018997097830070152694358631732463279335256272068059924577989768696669938566626850805634688159656668403175014415379012219329614322865658799816867986396231246625013191600209346042936266687714477400880248616604857892951095329743612307766254837797709516844029692795737475644147869738307217083075105796033303591180483168774959439953397414067909491944110309135362632105040711638492235275700095868750440056106211321294318369904062371650391133283892297905053041835248064721652787001611699528385295883990807012969613100445320501110568728095117873850098722023452485040134392799549131432638588736905985976350987361165974333748121002919270667477019530740780734952498298139210260849112898137440181239963675419341962619683774073460619222568480466222466169532959199473097796773799717067322342330093681417582685477000060878945318659549500237989728791000818570348567682271133019821364223778164059975908481736217249912480261323704421627989903571237169303124931955946123654532331765139328818046657017812951984583099461042717430705809810728776526689344865572467389218854871978001962040955298382967712651504541589595469592852660801977755283884027728009102459453128241953806556348604546510295763266590227024098415379206091090098334787190103202062842146920136099440392814909930829674038687993515639864062091046247929901049548302365592950181556522469953709096280254979357549410824841633877510152702256212625121533855081544747450372570869274251321339764656602907060842847035981604272580081504563326176668270101979684060581047783403661684846275109913196987080451037991126006948007804649390590913470317569562971685998387521816542031604824292833317983226842857596129464814601162379554337004205741625389239022362014387906638155710391927411984737460803007168746625244292064021305885898368655812521205447673065160007165114310861037571340662522214920301385189768342460371528781822836278912265886061634564119789750304442791502520131253866177346670461203598984137052547298695702859344801683075080161258403557804247013126612059248769807667343912095104616423379818060482151211543437525207358639628027640742921857012391095827667468146270681006841260245379777261874723875934312999551738715906960726071520676783197633343620156005755456219714131893781857259922509586169543879850657378561245236268543367114579706720193021895057336325162541668321089521194686581092691698612025797607098902136408371973062493316523647495591444794242550868053445842178288984684232219463462981126673228644055893582505016042725840686509542576691541397802562090710678564917804716373909414003514619289736563393832849769194636808051378479947021207726257317482948040941253565453168538863794905527904337043950541168850457237976667828167303970957995089542443831950180744759465234258909695587191064975656288682563837297793414156790701523480249991000490763616481652559716835011868082359510522538139413402834153585919468563445558953200813209734458255119274103874331784107603446910716333867193580945219843817597200038850942669467797214406312445753854457278793470639244030315720518484979265346988307284557059315290182985875350021405774030775679355138206406658301353317646936952552636913444544959681824612333247863908442441805249155193894730256839214140160660020970762361510038732432037378709150664467613973081049668870080908605991780163976512073854213167551530406967563368043803986625533964701448041315423949217569272242143779460091990326580519620241948291641134821124154235956095887690637637173931505994617902989345939676652854104726080619112551096197349641715690673859404576477181206169185314596174616369019454540429276081326057672319120756524022347497525869513016997263645143520163936052598146394878382768632115651756751710398240536410809934664250667449783599682652446166736501868549120332819808032543243583790331129261942477391813960730504881839312561307367737506493727252420658456571687940988110649773025915199878521710441512015453277701901207983537206889955475933632326843840381697274387464213551559193010744071827433826585851578878857384759973717933327963287846455245127162262648598200963395386740924806485093303682061306029149599499217756985789900488039412973364007631394330838830820740027506358070892145777379056205905463930178916468898592024926948537364716859081592515861741823781651476775564348551152924961058740350861837332980290674748211671660799593255755265651360437948596183151868535192183433303013901988629559536159466513423053872881111427257224681758184708058821212894536585984163712902146490390065653489094821924970574375449047217711704747666953128660883708262495426379194104402702552665697371420423892680597498262619242093577088157076790513747256265057009753184271468954621915179392622582969234508322649144166194867403576655601905108856713679044873885455604742110586620924472847218786528090891589237909548569376913647616064803978947603505976394201032740436726482537230804643499403669775587481814875099321170855443877044007977680916919060329444157309029160607129748172799161450608606663631271566066679525893300390870345078462469246136802866435547688959706397686532212340579634198208277237620970345079694951321720142936088832729700080702982714260376864920317145150105535257156047398172419802041872238685286325193992363293318941718436544724529637157902414759840024298908212531063063835427352986172501251961388794316382815120380002896467408489038300034537231753515315754080481221839998917953304704895258894537607925484746484876019041146104205523538837877313569595294195955331856737067054920084492245167453495735951880813314183337385489557607907049876811753565753224112132308321764374146537331022590780161610175933009679809625027464001941043198576401354583201929911815593483908071579222400834899210613333836688956787032018841527162303288458577228277340710323898490669417949099233591964088364145762112845662473902071215989845927918034669789017869312075922422374219570581650817130523239438353065214503222913918325021482424588956246321970625124118128455726592390358147259431696700170946088515827859315880152679784697837252780714524773948313032104744039031397918183216265682464497070982119070115233996636260580320449856127904267958114540405414873939512310654503826887600568002443328236584172706800416880498254106980973187918413750360396299469045966255676666307407600647880648158861330239403903257531840494633836673678936500333375298647187247948893560633398352040773892865716765927502766518254085781702729088598709934512731807965742573679745378944183693734309682407700868685380819627330999160856548208138785400321422249633158827910713422372308124906587017850560740957497693591150076096287354527221408844193252916549466877918831644511146040166177030562471510252529577503931777134833442173352183364036080786892206007618139418723092569375406446601472261955198745527081273005161646733831183451776024653445584417892769878396923200402230321141587174489361251713743535514883903284139527879579023747133246456833604335948811981755987793863893499673002261464660875281252894929423228511497611182298976699198827027935589484451503832933179257420052077265828232137291196446085363521099742427725804470941144116867985518755767530184196396185447300088060131247282899888075218090188522533428483711706052110301406575049952279521829054582837437606259067718712870594489484476853467081299746361518344513920286629797539570930193837963410270843422375848304105084840679652390185220475326321087184311727864400668132729159269687122477289889435760645437270509335150029050163070662817948067144598096621547509571633110745729806609490450464388362339906991634411114457913617188427980502064579020151615427852839523429481374892776047056982694155865933871784488268241013264830861707570027834458985107439307377270441084650663086420760598635016195895131869996866064350180264121176880684242653783827047600099236529038491688732910273934869828778261847003666563505549348202018488389702459041000414728539662345905157625330299162226334723640996630556483413803841938476390943662876744979450693304775135955379627416203326146244721743441216016529923605715233058834707584500159215016727033001127578998816642252057273601899645943344329123856977603575455265322291197208926561715895507524019754329439052014799529835370415724567272284660413768314413081841590110755609577290734927473209054316673921011062290027491775636568817252818398708721543173079782429247092584098430299738727970442780824157536230402853416546256887120584968807187384512620568926321340445220075743502973758087231960539951670341619510089852550940426052432821455681718825003307557497241310476111829284785043005338387839166596220874278420948439672035894971977159382930126162399106738248537995418255588655155048738803621001174990587935512547503952719242632745894105167102287701829520200822851189465469098969829960415138592054682077540660824178285152263167417016942673446977805714088289341098945047027247778422769695325685736229768563208479776227405277344924639120048077606532445394187925479111822416200912008148524093310112036691986879436061097708232832757737139264069763325653041809899984732491026861774617225906820419652999846474167393863958824047584612943145022423095298016753356726101635514490657590659862657328058171190453114780614392015113725104281150829119362508121049121781623830157851774944232874564007764879605733144879577831235180119284295318287161622039024262207615982458265676949455793373133460712248285606044186059911562594384661717744422529155703201712156193306943946854990003869964999222911914751066094026848005509579481966672056672322639190086945606699606208695555052944124248872892644512151382380766937241943035176744294783966977969814740476585326740166020393049435339032705534849906055014568740828409509145105135257723466408248228781490055225173831730141762130971035625442686292838258101176086588855122066160952609950986576041998678301877162222104183523886413061732546243555626477119002218698240151029576759029679120384732158084407176713606791960804567611329466457358402671023198683957610927795036341064985589603358438089676928206860719775517172032629662273772748646323204307940758054317819356811394441891245406783567716632198898796563754758583632312031791137304264665471257633353102699672210519657786530518284530137488923761220370456486368037289741837157601745893007833548698814858335265912224751778328560561639502003379754631590482770370494314367925320929332205516678775475231856755957471169330912898166213683064969602821380998616076421958457659164994819632558887320715589654598907700232354354135733203416089941909441819958369246161994349257903139785002745885195836133512983024440623449845825234804682762922871208474758158105757227403091240534108061135189499284692813966198453037962839060452362864374674910491431357994034170308215995813428157288060179601752308068261515517030139186734019031149305504604262906824506933956036769175419069396137854879989987459093993128104152634384932736700094239582820506018618470122268767906291824931662993511986386715910734978036807769593562800329977565221743665248576917233380616145458296660937956461649572334335621517848032281025536689847708062960672072966401210520718068174896103221906859768125588572339911092930910748907094271908311827254556235792916651294051138827140198885585823227709520546894314118809193608072360608560817993120873414324407479704201680331858359600799335462072718033749887799753529449458231149388199000589561123661889050339525765346103694084810831668789810709403125562702843036066413507901261108934526258341488205554977628660060546861008958683002016178673212218879189574913706837375076549536823922664140406501127929707378428695758934164154128095362063965667274803052553774858657981439610705026467527786633297583270903159331356269799842131453751516130181095698956976659106179483841993175610322156048599587799045771089763936985165505670762562766973548926943574522743169953105161447519769313078310507512837930716041399499798584900590509044474908104756575414902661016691693127452557637225546134950172554940737281009983117300728609064529152170637014294968032689411098922969653050210962574873883872210579523928417149256047277133739864929571489062556042310235852281492155284800102058066013382800235713280881017017321925668616082369932282089695149009294765233399388697521372162826116406062993443246177525406380217521373743193593722888437633846002064611891685915185090864534041906300908965499892589683565372875281858600106711804386076716188692988493043833243683258658209059465940051659253354581931726801986051366376058578203121837635075141830733112360819000224714695061179233988243276905770910434645596610807586380469554476945329221458906488581146180550344197670187611741009295910533206743252406130720595316354875265654507665670119944901841145653618280144461433148861164356808097168794663192870008863065122625649220695708160932854527963084371846858208890943840076314388096171167907154316877675456195603630615515888947791864781106441763120232955337727889912314071293510396782034145491400958762436799609452487753243011065948193437352068789970156271653924577577266303018652257839150368637867089675802126659804432649364006691416453708039397099160476128204003630701033875136082544135506719352420910206131315395985749836454419354327703408584969644362188011003361588520837647465505303305041540478385329662821750442038960631097050057836150812701849552795323212682995204614577580461252440360785384570076895316791258939800903149512136950133201900894981599894773062830109277614672486953289730830529309373637627285858758742887895359468353063246954489362444808059412992670414456525456931970926820121002558786482000386091133755216606519348785842690874496530299745469603699275106097125132153200013654433014069045602616125769180468276481983981416409085487498616660688846118305712123063942957368570374055895193329307315759134826403230504394454487328510095953116684220603011596858591333511398692440799024428094712966061082033979844636028229656716076056691814572205418182067612171621287546900490204153533154038538292206888537226525892450635967254728010361026587369127953337398151852967695113029784686676331600421990691855530708996599687952152004798264995489179677717941251170593908064655945721885052536179380383289517016381775413812399195138045986298507752655545584711910104528965309166133383416651485310074911691294056862752256753150965151483043281613472975847447616634450695808974460251936244635788492264069876806055316171366738631576199579665153064934894630024100779867532155407203966399355712767174616187446389076875888371726050267123067307539405757672613821651632227641792676810734599335601212257334102846698173461091594540499862617150369480142875642756903252781842084798428559278926209635721014233314741770337305995933292280077641252899023833350101074062027775938820250083252280854807949566178235017654490128303983685649560674787526325875916126996619577287381896365972356553839532021528796346713012151766984317254450707175502979413110205857086692690511236131219354792885040772524039752476585158856266657869636336192184857373548962997872051440106395358130204360733451130790721871948601070693009848315994646971944305991318237770866106143445569760534187440596775128650986193104900954098713402414141046064141904756243189493517518506886508888400142042708978144307975803234412853875730561316191197134759947507397406684549113856108584046583370001510091995397916807462899671054827768042187796746121028782123635027247476912869731745526147805099989980084400023686822245135038990903350933850509649528100151601963309430895401132106574071857962346421833705514641801191767278232086528643738525675305750044876387461876331136638546875359388651708643993650035776542606522905543136738234026668939194671295033900203567741940765157237817748558499869477275833709332278657687352303633104471329268869595525437015125961226647862139502713679857375380479530987363799133682876502229919814761083497031447781601020096480298822019095860669564750231377444318145668001292357443751675880391958609021436993163638400797380051406639552054262674625043900397651005225405141051978141816664377107707643557344458366328005368342015325409941532310249999031037522504007063580119842186267675910186186160668255076323031363005614791581031966650383261061211194994373772923164513253461619696505871863647759122662105630370823919301002069022412942539762785156998671325457022786482844593386179076130961978607711450759423021806970081309988050482144039607289275866779305295263369487277003450040035494323385789818398642375579857895701794507079037139438975877078779988691059937425119110883902747138586451541602756046705035439502312386634631390975690925031810654877070049239825670337629518004099677271015684722509552145623402178756410788433811438937171338835687286536101455573472643945246899473320663707717317806749582811945426901954203899295508211869583564596244310380284222651623485080674843886477071060755757664515380063083572768306556702608923352186405458687816939262120609155548736384590241980188197290138758069913865657635829622927455403994960650572071868123055183157754679744503954977821287074751470056097730412428778186442417371789732040669851283887371659774834420957346464540975360453197068540795357191029970046805660424883630075347047857851542667759356956089324426069148198151357475110863099899546533124017383565820990103134703676129673755719849918165828755554579305689878854391904209460429171303039453410397098926565672570229202225230958914366187930090037305840187767128903087067761579864318245353570444214062934371114089144472915841739095279356914876694109603699572490612964374701100096036342515713798876357349247616780074547348508541916183394074265101693954072774826912063103046955286887724197173920935761704986396364927057345256799552743405205981708090526150133312820147239775182022387753756258436772368839009173351097051594987284376582621068470749852463428406058671118695324098683291259607327180510878490699615740940792331221950490769366769641389325758202401345655345159167198902565615143104796286350112894656577220063810747012347414948915930926360239841573109766364726034688797729722364861703864819703923865900997110936478136911819767256492951878666594869119128325381407769989143820993070117750791674726375107720415352875311741349725947150633496138329346751062999172609919700424887447191652633974209885060102296543113305777780880496012942505616679382961181812029854777477812282804465544669603594178632395420325834617803588982278237964255441714284906763445785276845406624971052403485613956153272117000288727337945990238950014649498064002012541895014094879428955187809126781070177283417887257104274697795429921685604136369727062807637030948889332896481181010538797556017673562022641277458867801823899986287568265339520449671472078150450606483476399512921858126496081063943041471869799598202153612120790724157483800027538738483617989974581613603365768619707499933016586262769301284570860004424146711159283365711511795235462390476256784371796334428921911556618533113851282555466748373396651894726123422752234632401902205595878802055625151733085394941343178510473310366441730845806315641436739269503172725416076562734313786855229994571388123674619189038009224903037327391042244521711224763014075410769431011140108833074760709521718159643179878910960678606171634720857048717610591554771720699355518362248594349840746067025052554555376600799343636041344727081685854903991713380648631526095965649908183199569085149372778824169215514444809590665675567601501766405877457873459752071813476676709628468899029279416620555230537548767402858259752792962392364598505260482995029846422824212936372129716274961607145812533054762866174259635495938826028330388621783964512556975781319956047692778149775890146667285896579238959375489266722191859628978236634986913104637559061970582553721747471159489385827471416430155207559094607781539413340408382342241543533266779929433812185585251170685745296793597332741654360386183425757466291957178206921246986076260093821944596300047464112308594466451498342299468818902641818183645920547620741340773157001797035739134590140277872141782481699790463536454818764649497814387408973870740523849376480836793810197684138555813820425337435925295348027323613919622179152907592217646347722855654711870720143258627440606133571952375206240730399335755103068432069282756393154241996295251387299114228303668952982089667393037143311364130707658080598231255393081786717943344116668007381191551911206413127566175822019218259777806570690492701614738793675700926250672474233552134252094417029373503378757343809900746170631456544207312986135238508148523185069380443227432737674668142210046435685441798842310187248403543619731672881387400657562072306485037610117067738274908822666750016552671373153414823269524883265058242015905380763753728503895687347010789331773991818382767701245034800819811407420874075757628754848552786961218186450579716116784872875609571635855516777278023427769098837831416218389096636787670300604059131798648551263977256832750180905739572523389011051647321043007744075402484070943737294262624200735645026820740531937004297530296933215864856496923821579535605412873547084147886818572679942885054833501479747258643823622414698309300046617255915730443109091539806141451257634816864180081163836114546788064300877975210008161133029406797676366637407749314693589009731307797995572872418339282457627309333974944918854373353566105912599990474273510778933431884566141802396995635011288806112923837859292057561328829230747732186057684113710241371380134102824189437159784000811993309941186664946089133830276785879857118478004714803758928732644036260477852605795273855855043949393302204339001685351239710742229184685015102070511867430742265127864107560283518691106058094867525326704875380160344925179182240831754585235457729006599893303360467017986999327112542430798733064599318721930214616494304661171358948457822798481477355448812699328316699294809054324915438572474609413874815549477563577592453606980598785515947888578149428862019615965819722241540364353244882413479066315760132260623561152614399506912255799805930527989442359352753795499504789269325663645941291963648417370187481474663343327658517986280940782787483985982782162398875167090249785971196696759508663005556186362723274202350109842584116249550366738226292241384012247235525036463957445752957433710940123033042002412489689549911092797338851048806220782085894822896818738743835293687135934008100836592151166292124108308625131302889933529334385092820750695375103416215520614782442629391264812110196591701162983393850715120433036918101847151201753323044196550690175171019075090090161221428363806886256163671018210347601111530518999833713328378528680244087018804476232437572330314449213646350516336604628755819787033925206128491944068185691511231116550618044144014516487309631847208278234950270152784828492722203042987436933870156810516450527921297577223152110817794362127123935845242482191370675741474238268612724502048302670132375894436880670921190359585992365178024221801424149750433415860763908411324323415942454935836031653937995036501723051162298308605493634395243555578498767240906033334190993764511484862862069006154140238453594691437535931431890645758224735496793214239292023720528490917390852720603061666675342531746288864603845188048562932407539407302100401839700255759288190943923423138529831538059577521377488409912313249158597445384622271780610264446976831487002809808902216979668634009054478322189881840867197229325699145602901092819795603697912185183002516844153616862101066733913846321213412073566657943117823473240116221504377374790408855295953085962590727218219719696628440284711732022490282228017746529519863897451149053922228274431044084727375827456698939812491849242645093116282713433775887990104044315535092440154684497635208753501992726531071432694396146899752982226565348862907425894250811244157470415090799361718216007315184307790157652094488135781892566774549175530162128520826843544178942546237064402159318216693625125492825267826878673418706812899072521431743281637518819784210444276143396247354656720896258281806201248824828378623882856268854658609773416560295458280685252644231553793501675300932647348097372505225421049038810248512536103712499728649990406652579610709767434633342798959794097484382446861019489336618780757538992609911062899623786773590444306705297299074585811672467000652164067156082631331355337245397418083929810042605019558897129001118575024075176884925387845199363581522690655294591533432206733134752991312167714303467826266011483389717484243521582475325956497694471284007943210748575060500963417052535262399843671031442811370834734166199943682345762512103159458224217198281721193883330889013670311677608707318996195800386318027104621136288939733533781517693116912638919307485487177284112765830686284796102976298763178689921317314105405350099256482946491845306175128832726865293973351254971899506992213859969557236802228735761558165904696588934071229112785879516752462741608775740680153602716596204958394226096991797980379071632840196268584799717558854191676320928604834076010399604854955617489015175780960739807861797893286644010213311271279327177865085547647783610219684774421187284206753226180604584928835876630277686932574730051233327987409845350131476915426617578373269572707006161060899552584527529116439327142363403465745489514383478147942057752195365717004963023781421630890858221936527603325282270095096977134608707062274203522451085991003218573428107939608591768483857418300980478988585124842049394262493456222449335867775796470341650866948307239600635485784183124079358534820979755862380884401802771009779885987051857726163720739960089305298571051772457125406206507445997451565942835051925929245046620116138317126991739185741782790251935382515450640069187318826157344888516318556932838083665654435573632112788868839187502899494269058395278570185485396792464063125089468451888969093368905491643922401054077575181111740652143432407582949219645715264108289368855624143294385547457501170595203305552676692552570291081507270764413489389141650338774777973821651573847830951430267171270336118629285612459970203546214936710348237755971651504233645085107570141189797974277493696976927328774076407931964051822352250883699904034030439626563853652471254370631743935595975641797337060765979544001476199551700969241407033259769192187887461614197696941451976266436176000559101410522622495079662709005183176721267688094218398853456159594654271109678010455073501494618743960231651935020328904357260684356358217807502047219775016040713166484990448786024737907476123208846486692790873734357693223989963619138689633797045800501525661543651680160327793596562784598135662820095188704741056135296652404691791470167865808633392664013944326931256775692437769789679379823887553668065260616037178438504535940449353786345536660024448378360486268003403056505695628550963212854084319011410345665425024534037682685395982678650887311697180470730982477907580507901880285159413211089449749135262756009677429425885160024879536586563733386749853054090124917880039014693059486051651671376065328264211579762091844905713960529523087126497568651596155222438143819068336696930842473656486082686621868445375611802900120129161981779859638000683588027453567702550433348892836030679144150694832263304407608601786301792988992773387258966201266874498359417226519970119456054904667758178742970027970371268433906248651992519914742531234249041097683395697915613864302834894506293475698446808526674656495251721924583069924073975123286067765191167084979988478911655568049933986632562635480053419085596936339396030803781663852422031200818618670911520046933421206670257680858680142910341471121398492540244562785634448327841754871462009784433371577816144441918785512702674319695094394843864596883610228333886036323193126292724812200410187688352254994741076829965719538014205325089444435380574381576732116451680280653933942758826689947138293077980636734201933217217117593131281273477857611378023319840725402632014225239923362036449865404921693512258033301123194781806274580497586908678012223989140643756376877494566090442477449745008490025906984520009960597757379366838729091721486367135017308961594584349207913384008840300673305728689147498117471771903251285688826148194081191734166139748705209630734127142276310964931230107387296566985677956304827640306468802968134819484863729615461660017338911677641679664888002202936500142393694181757663652293630340985285585284724212718212240992102216122663581055872451502514727494841472878630726400359748455155676929926627770407548988052835599148841042527746224550401785596444685333799437542785446178493372721986816432380940547428484763091976110577479863371379668810870609012998830333692197834351929655464149330031813323261820115976297301690619896796039515789130820206098037013439443971908710789773796993136395028394275632027060279776420506163873164265161303742067487949735335285097655185761375437644498837122608996126539605000426626966732847563110192988303097316592748285731456275815053091229177407030324376930128213150556740391188011773637405935727249452669178557055415918812809254759468056311573861914963470423983905491545289606120169712545893283202346829053113987468288826067724116932520365838502693522182068936998174708669998690847635009836556026029151992642088577088612194521177045286753853006534422753251839235306377921867070830273505753009614065560231244703302892402288057829658502230304325087901115621380044942195064768129053391899223113373212582860693155163835256070035063406390474441674482635692189250552533445907009457377342376170642067244700279777148246712434713812136318435221400798036151039400020229268103559828852433015593049700232015762937328126935254171855373074407501578671770503307927776988424062644902933750269816585569752553350439549968508705509556289227202805174368572838295657021577147576190962028116471105752176774372820205827837302627473472070538425022072528499932054726198345706092008837392814213340752558784665894764444329838315283213765859623939310144618092809252553459707137078440384875866009447213843177329525023425571836974535020916607949944860995786323800128756656554783956059817761241476447363602173254441360841536921525770921136539150906611344556171308048735188797638680205065569734970207153169182338321463861504347808710694663054689423614755001327259163493792479485959660980370717848106198901790633873538021294880397879347377873398166019789226400500919029746899274536565847811883604920882281961264810747093452372587760314507753518590463626660079028230449674011497456568935299975534508560729395498564631269626828703388181639206263566867821157564310998642765136461698002500643356976636387021835840113375296767342797069934431164028093844206317067980939940603791612999322195486512817404347874581979977701064867325900544541868261359694465380871119789716952472541446148829854802675088231787805192911348403297087277064742840088794805829906290314503736016206329755602253984527365241609346547764309475619338375276094136750247443611985326318989271005406052435566953528162689131672353023433244828157593464076580786822208940170033703996284983581581361698782121995246803788072216583785430341558083015602161270377996996479461573592322326702152334249436169674871460625420143073721980804800674031939103432611470569795470795258976962133328323670626999827255693054409614476851982783020624616013601013466796390870081071028902348902439476260282238948136370831267151339470380212377930476925122029621084987575292044151041924618834509071882256198942190943041834986933633346152212927926956471026720884975529452797843512881485029762558677680240517786065002212499388602811976996568468393546377514382690613571469106970514817311129052582953605645518232527022046660029111429003846490267872850987960801500250164430094588837589780731343263336546855759631676274385849544570379768664529205601327484697223378501031952997182539819541570822053839772242914444318439070984633334564717871292600588044711506001469722493693067366717663878330514387992325331345219462641952187385435884251208393723629222764716400962621370881758114580965710409946745653011338848643164986057147414232012072941136604716574761564430575352937017095606622183651098264155405894871339075535378298870043378074920046880017949120080213740543164841550003533927255899072203808030793870457134930135201962614570729908399007288335967688213202701482769511286512082176689248656967338684510073104863694596738875338926070001145467768513255395791502607333545713272148030834049711859187752155489234082104207723549654671602496827783060213933127804637485896844384535050083451878126820871264215919629492570156742453024801496730365699384232655742342761560616629506121520862417748981252658596185298741280295741955826984047339846429838748541708142088319505847027894643355951433266983333784146625442803626410279333047667493171940925165835480481406344376101045288419235709189105326613087942291492646518385350988116854005680419488439093862283300224859125443623675600427143399965905355745042328866196429456227401104333750561331159401400625838540368832774941652573834776166134857274628146990919025842511753541278141045056313389493352405864274012813721958454558034794863497355671015771154761541038314046922135167074095827408142460018176775781138076262169214776841389167408469405454742948199926452250506747932954928686107465751251093852763306044966367183942159940362278333247750760809149381828374146437905551230756259902526791727653172355535226771276051694296895716604201952469640620294975821167253019859295288729006223163160252934714326097010524058768046674807885660182811273119736219445909218410830888154679347752425303631768927589857817258954184942981210814308952915698425801452924996097346326221904898259403720954150990363421880157663677712632018960954191383124399388312169893648598956141431430976226819169431468094321260083951570056670241565569271099975013674453080950163163338217899933706471622334437127093337330058703783898578087848700959736798867865166731878331066639702952902113253451333998969187759738646365971105686114151007759458165340303033070641134150053815258182762297829542277964085159117386007069874276854861474833899519579016651539792513452332985603654036089492241134853032355356974436472034140004797810524495436178929941636475255381271820583764401462824510882610861726349174901753126054517603537618639346473893242733092496723563024341424831659077585390295809291202892873936713458331365513417460447528270734947038420348023793335914778395017269522032242403440432350776408099315762124321210828198060525940475296609109584783998346983071984100549743544182837158746235049890572371667995434467555507568260497917202920920262175642317762967244781794632544693671370815384558467746192813168263089028200211504865400417106320777284077899143681128533991311388016774773385012404757957523970462773161426668725276878268655910604796896987440390340487575265201841443100296853750153980712078140613969460403756776407756257183322377692688215226179059238736496226412933608603891687568718883946776866798353686082888691100057627230958571626077633437766637347772407237812590259286398108385387460537999049665596425148683751494759507449462684526488212529586948694854816630962807683369430394584339744448929731396227504509920887082969101549646873330986129726169806078995582327432896012193100118891855698479523890722353286084400615332359482503650024149029848069629473379393345981513516726442919859575542562761985750387902300625744762257944603825143295040863614894551431034741794481122158499610489803475682964999065966682580362254507064500103424335860955985097182122535737983427477349711113659008345183612788697389974742702903342961442241346281217778771898910178722454050948316988831924550399712670614861186637496476230227925175496301465659626725601233470594738458469120205253664317510896252041798056069736477992475884681985631630530675090492553480698281427605514846618339718240896258535909430837740229775685770355655826155796068377399345270350135681509213910631788772317824887296489346903496385582984665040578549807759462499881524514182451867894352075693586411273151346474353109629511774170955183980331623745087453114619393037932711573943688514306196262885293046324364581201095502552306330388724202883850986272058873946257926279713316226311673974235597345735363078681024132406539821662799309626605798977998163828298218848444901050882497420315086665226172129636300995991742493760176508309937858957371576034452972838424962939395022025666703646486001134632867757075721959837308890247804066109611097864537197702340967085849389824393584836883927553563342698545762150077597870178734297178284534834517912661934403201364047997185757791284959710240210905355182854220545609253691586191290224786751900012095736336112717564934210426655351918532534456905742017659978893628414018519806707494267809158366894793525252447238129238982980686432239786075901984016184273279792897906577010549270447499621820492471358456555133076997482653335327045646389317019737397490143394714595473234152957805466722881677300188442993175676647758824678038171743973681079396812407639480641616506791065006356293845536593573359568271100437400355353176049727602398679430491425038342358213451256713958964612269833711912453957484307886965727676535627966171055495665442512223529398403363008474366565202406116615081195252123104924916709617095824504709201922203239932978825510030949101762326610059543219391305645367640036476943421851229951062564072708885571935211224898805710860456194467782752482090991691912627621106204567272808909638994933072692043882741139984734718555050964751839587607552644415771581926649559301974096104132104557397794118955310776757619736748028747621874122956289152354278263169852973713683265445679402019102375788360823188758214412628825930908809980703206779858788679458693217350404883055343679578190088177733394984920378310123354369948552198006494070851564010923395523762613846300089524134510372342714514790911602509856258729916336519630721034084699410193490385808837183648607584196662382620120155071716585260787959659945315402337347374779948694076560461659269953987436307500812567497072060177368341594104868064284107797410002761547538510944093107091628580263932179298045555745815082683150289964456714986271066849421572754591333943381613067619418204920980946000452665054757852233969552750582046236658939491608454725351016647668124720175956874257543690181545494712621691117102485390889188142187879165701613085422195489808789031021575848366897446179502309827774535693915113268414280371346529985636936061148963802437987579023693512069852185417476472281588747975264045731546667320407895200505197331108194761988704176816130528453218570094320178516141006930078566232037291903115992386194359894492359059803112779146885571826316103776018046542945071903485145444754422808387511532284767451482243089234503214463518853664165726031548596882986941954461892755091207844242796367569211909587652850236625811599348815898438913864780565138772778973196335979829951201834216603155707646085582843689129012998386974866799083545156138996227151557396588527168964595201507670132234517681963232666482525190812688191630307959142912909742718002837415259826745432073526674360306300218862336510790409604093572214976261998096747931969009169054217907137612198848823226192731463367753560378319473297620784618829015085222560855604502594682870708007137897759651574619208430624802570956135601682317694674263942571461687575695287866145475640855601088267571361438526220822984085431612603481165552314189162699374884987606582597709165246149002629837673259335654726941174274571670379717082135586613753839125050558339930858551816352869687560073278033776676167405322804025861628981100177710750569184048014101562537256734614235583191371534224630042216270317969896378563477115151545656946796902890776849704429309867540232286267186646217775650479196473102235752202606486308813308503147926005079681848117653967199076011392445318877907666793477524460881390293194780194272907106199654987517309376435524409089141307042254127452605598562525009079021474161718080962744053219849376562521713222260669661143591111387506204972322187637270174236910071206018613495057959392119174676741563897010242443799647169321210736017680009818131050882300716912072516012967231511058866341047810567587902457164339475281911539625481400437227772117066908462721345878432580053365932548643546406364976652727127424645118887768599534507636007406725394514187589515307155241356952531974505208655932278011724360087403574692899300325563966240690895796208772520213946117036705134872208160655411613804804587022977056010529103562592136825896489341058618899627910750426671912516386806830773345379427880631798294609235775417157908924256151319242820422760446067168070027864534897287445251802715840273871533402291493182016090516556139038278528382408401536554259742398197083975203080978536773412082316083292627674413040536379883652742657639146039894102995966809296561243454401440230944418741599408151421120995483944374608573208711423410641291189774989211621798192738734499826665730149234703619479584693002952044437427141023151571215102786065630520359711551609938212474524068134838323957477093863720368031447753849354354883393174704714662375794734310764591862048504037459845767613245095691829670375111520239671855965959502271556183509294039199484601520903868677011710692657152895398364763719601386504661381081309305928955433533177063181281893581950486102255224370561028460114725706250588818062594146121473850610782438192051072454850168956025528720565503558391762848634866160123777647646477806908690391472105155468359322162878471244712555746662958721010626861673896573917479792132913447622367578814443595950495504728845861887866544071728493866865283569374830655100412659643777544053244113508248716713329870260342832736288083329138452794256820141528732375648250371640758132614139902422671543209111801763772081851306814503444018466313129100536370556387168715418225327070133531844452006206665958631350337070865518944567927930090460027273677877251352928185350938107640361062649329430442544295507284354830467942582940400145313751910083983622845467288923030831061038639627437015882735245894740240668382791418704811296285486793847210263399973332944884515130026356583472720227094385362019625498711784302715939310019466147424193487666332282757075007016236675408857800389407434496684270168260087633503715244052455324356484289614154784961953128118301608823617609458890166222783807728285427448579128863945093973138755270897220229496509370575356660213956598005569819683588155107561496025868718550901856485595909357577151220933271362915269857688631247706271570005628562740287050376641447668598258323860685726010746402345872960448157610585165781751962656065912655732905590756324868937831551276729539244989672790330770021027878071467902833884296082245408463543248162256387211572816943913819009934129273739178965101448384856798764014828466197520033414459100908960536451155208627802737040267564039023133331563732292352120119054428319227390080842531303771216960075598846042340610929551624403242193977695170337004375310797387645197336553454574221329948726931052216706360818003493469529365467798367003393939943181085649646856442581775023853524389050355884285173524630366767483723529581507574507178674757660892095381578477239114836591179891558472884370514801956968676366028415684224837942060935129008152328016835045055256034492090316758418610033557307928194391234327280927681728764301270165808867093879617579954091873742079012965089057648594868224131903157596556160593861581142245158681110983678377447490678947583953488301288061055785045199489598511043651640027237416015414065794059096955933693763974838608396296599985305330708549101900155130383781431011799579531777920706963943882433900291459329030366574608856317958089479134996346156621083144092782863414564519049991997403344789887005086695232039995020465621223786067929034751669647904829254805577068284057645627232918002840205086305591493734329845725565781699686603422972362725536287584274217097121356176834360660217411109751100591459873818735141539365562398506693264644058881206108917111155036906840025178165654520241358990599923732186473043381426863848001448986884751225482877819378115470254782820224671354539755084255497690661212313624583047994009959086132025795073192390501218289544560006334467408963479100270345196747796509591744167048022716081288573791787953028075694133762058435022449599612298786814808786462611630108904001892853938690711370577451874938291685535695649125654332437645437450526557525891952800859607483100666267403706623841525190215504829394636851499393482282073434327507218888276833606296177218658560365673107143690580141368048847482030210247691846779738530891076622859451335826366551262313354841369393282510681255427462265726347366624731764459924712989312260736463919658990748844166530623991524122209600631129157050457629699478435004447512822775751894091051521078003750541300103336844909959794928925972613778529836048488047180720711614209460909247641899917122741802065040447348943919347022689845776229284186203584797320051624028913951179990712568204643000563117139433764036854854085691544667513234718998513644063843056596885912906275295954665834342204459329512540140121508364881250280549299717123845690094220092649541226825900157467868702663626749918360155573483049163105266352676496961781809934116167235757719222607903538806771639042921139907343690694750572752187993287741172704212240323169062013768019097981613497920058143359014518093710047418390966023373250087529372235980535718009021802164405284398588320545509581209378977541349453033432473900321911393966296692801007977545517478873487803369839799061422921946336894776687446023222601954150291529674275334066742082242262247148530120064580840765855883138185366381458359678283031345136382372843761812654766399405387177245162570458980465546158379809632041759536520059317402012813084140060280118918058860826614517815179838513631084403592990937120603410845416966587777258643852467884186558638887274266203789988382968322532001621435156232430742068813145475182759427037580313512721874670017004627694932394891976315758675455522195470379469982273637152662840498939085403169248593382128964668151531297188941933112624020590404047684936078383181947045324722287818965393250408951388487324916333475625286456725077099452062885712256843067991265937371375016751044390812859275824088331179675787269183864591048420311466425460142129877258356505969406757754954425299046123446701737684478666819846415700262663395404285853584709576371188793745420054758026100022089018384974093298177534960086569758991134311398459270527898748714259579197858377331563060020700084316982496431777922644167257330713191941121422938795633679939261136886745266685933305596885802622200064453276856645547423834051839551845259794133669457984200139203453077045307813955966945387962958955070846217156235865219194121323539746733036314667370853264166740901301088731081305295727078325988225423569443689340501004114118944173108065300655550570861392269740187490125525400405313270385805792873011933226708989299449234281230734469134103744844251075197577300879456206797808897300553747011758110472525635640981677703028292191981228213706522167658736372506547580317303904973850125922606619900248972606968992337598810855754963623295902354400602870710856293839678658723347814222655193121930031075530622126294471510443239711660157093540275156620983089624189149394405900872136791676968297260263576793196454942004162670659991346002930610536949773581647329177359070733631004488257808527876182100385797197139680462734385356147215318232118321883052631074673144058873634339569032544297179087232376649966817442905516198070247288673909537957106515577823375882691909677190649394098917795567954231205032427856734777389609078931657138879211552328755961620531140524240465359793536222609920553495137284678703748619919067525310179927937631505543312957789067999295564140801051460146610812903341575174375063433467315571396267600050665928998008314029606635755100278503240849394233071736869071668685814494588946383241594956072033877182502977417069504639943618574311170153810582138611899340629909143637816906771343324490105114764237168075382790543378601066364726303436771357726713256001184548166070808963815951052015298233116189240740301848084844310634012549338882974978453069710678110348219784419145060698570164975503262603857261040486761386699691906975839873338440901568308611628458184933281687582284020978344917656297314256598410134036400896799982636313220016143106809463211639233231837950260254228632031765121773308545134102058577974762928871233848444814175803937021690027568901165884532593993405834168791502475512162250069357958351575429358345440593916190694642720055920475774992855865565839627171644331597401648512062496382033713891056814048982523102182436841397440258749234786146321746179009341144358768939952175351118433282167548654875438902019783654193635851190220924660332687508634056075607079061914304926698207952137052191481378654901967063910815013637456128890413447493147740417414382320898263774665855480573053720899934719007953910536521836346277283817316956393359474780886535967923338782013774177197863261669757535107038563354238877268546790654299093279173529162391401027774164165581733688751868013863389440854480249732948769442867455876996004993420143916121671207383614063393532692381027008818719915790632667187228085007719262430459570231803310151481739528009688834568576664320218874699968893384807077640026191463472647252243251212175155031632851689684796527135021911962703580268467386975854149551597412010327110811721821953504847327393767795557827648080913516893724823396556990661848586050667657617433220734039951078193489904299348090015928061147683417405561429587650523483661426033674625536854906516777188429371188322345991753634934195039675654446100023502153914473906233484142086614397102362946834881123384146030528764091723621623173761436305984450925520888438115289453506103903444518443674050096147795398839032666243619931167547150902349918473605439737061775063829757628906830164808440146809373221116614895101634846030040584913574541176336875191094829056132343038723407266590244922225927795263545189002756173677453993583882905984370714502618939463212897278582430130365064470127089944763132247160107005951634420066092495547497928633920853907461648415245335472609097825431403179174110113190289289900920663174917087517172590985232894405855482009463772439149266097817168043509989819198601138130069486127835862739080205742232558731712946868669962104285186501590313965618811508707991945267169620886429702561816053539500982628573450664671149637336871792828067660182607601949465103325114658882853999282972244423417699551328305583199964732569625199974624556279623267827468248772885356112310346298347428137108373788660081075210507938461930054035353489021953788096920430670127653529948544378103448173262891350501033097390938992365628073880226593911493403554172461509026971813750570887887326034939052138332841297568913304757805113242290561612721856137993460679062673742750229818991424396737905732227697954852388631020409472389150504268616176567896781452022234569438071442524115517239221002419830865420606475218367860434986783372882718738964148624637894580982580046163522486413099646639102657553421001616522193399623555912666901174330213975600277754357137918800314019833244514094574140681322249662778925058432339315319239217699295348792516966694337157267021931815969671510839366997013948479171558494029285369366781757677256069498111479257908881167055803935186136591507215709809669702162575619085833825390373071614179806661615941509300415879982034624097392565707608964473791847171470050516181878576928731690386523544376444647690696523149676731416983353505204946298297195614002602929149623339010698693129548192195622355752844376254956204065858513216216692279062162073396607635544746377907713560325675239982123450197451745008253342266483010756650858058326584524511572059367625201108767196386426335434115630855735621101680609806888319556571931894525111908190152180817045183283184313736484652545894698105848650228454378052552035666716123261383672495493073081409830941127252195791235191609156550076739092763891891694878212507427685781244307810998782745822613109079582850945488428886753848298915067175594085787714372092058573868569650695049174118904095490428452504826139466215987198789926367736268278508245121436039529784664643600653175169134077896736061868859144553336923223522932851305197698586556959314702489073334160800571673666569429020150321321488826876417621527372619168574775035184742004227125260058106654540835869836820082433994196185557759490326265714721553829721334608273713293677762332993320269432852520199219589560749863287892614317422406152868153530662833422695668088768115440063729662064002421102517420273203845457140287015387844652939577464081924758283707713968708728907972844667303930922842783959705936973490122329359980106632151697639286650948278050546820117578215992243888027579685144827122105739036741149561134920865993099277093831097872022192990525219982883289266410242918611499392496012505406816734873728321193167543939962323076087060498074989009224550259159836465492960534798204045797296210492899793027417385041234962320376953158595438035316091714096264954299022856970120599623679163877037153525380504463395764764997056533680925337172807208206046340929642798140616235747809335659709204387135546655138195020051749234033643527955809708414436496495147417622413449503322038742635510256292600953609871385440079227538785902585895281250276684568405523001975821853101796711009409211205164838115726688098550331107708169192515648220594773235613562523860288732985976171103302960326143399316171215127901528316879672822376754678971232851785131967926767631701706747774132540704211602133357459842833939990106737308191387963037515450100147367802025257009349813255721365376623782492384646228484095228875756352375293149553551291012181444589948662328730722341964097452476767616885194900951113235007522338964460992921997546555666306955631569099115810408762569610298869183490767377472646377953720467600644032427800696906068767791452338362904039679590265781660432484948979394209208704958558290407042255179350097535877867065897932443838940634857406867509559096308295367999850614283222328835433581959552641989377777081580656740472537472591683100953263707559632236704695959946980530889907763641849483563416156407804066401003331828207545404725854242116037386068369859220847369241072597813516378610353224674804863675205654050857471952500998150527033899152182359836825728941902044721197912837801603511866170535260596923296017614312422454869989863636588938412318120746055171192340536982360919366649802724556797937054402201022550325617194019186321799863924933203027395582024654176359433446881769636836602828214546739269468499444841299334513716182608098944934638874498018720326338461594305073180264008688638843655466769574094795981915843024407330245848198712172398062313689947273497111424253792540490268382763550300040645231884827173767056944310317002031615165382173103846779804800150994617544917805959321157632904401968024548116452523081197309418640809690961928744333686957593332660898666474555283807157099852989147378378566286156434157112614177782955733285582736424120826616307294577958525368862251084258357125554193322808785803266511914178995985163936719714937563840502646718858402723992901099729239488170572176767212243409617427420481206941718716028784934823630393999714008001390763129599925760386295122533241219674869167573540781477058141640888088200010673894983286614387020676674399486444590749285276046980897171372216361302995152879142643766266922863805872079817984041747711147467046592114548333640691635937159463791434830333141540417261948400965964326905734516435794590408952690412585819247338944113947957065003966021324638103529042628757496459158357008279840133999780654541476586308484938412093593189798137818778490971751563071723383775180958056078549833506988199964465926210289367150526300248105330911073816184971502565964849644801767719934630919970299290730112267470004904818633362125925608340739484744376457531756214931068903577137552864089097044794813317416130941572889020401250542958163570748596807094062597471352367765734228403109913714359691365668501784344896058339888432187511252691656220950437763351244652757714032182807890127961977026645818064624795749125972470334200950897906465675444357691511452179807859043334935709286420186016490692832334766639532507256353111040230606642939565116398915480385688773897888927389917785759698532601952598654239764645590739109718077762502916920905037682424452993456195964930627254527385248509694718567059980201077765394408713910566619753183138883864334482256222828541794362510176865274714146055638685786802376725168418683257604269695535021410199473166235945199759259476666802664853162699953869052254746623934761132860545534469291412544248072093811374141083064818399466207016524015681401057749375905988267048820535167124180488532455042600555521555300597377203850557150194239531275868179914690277792829704220005940409273992857509400723126737089481649074313669068585595474814198509913568398779303528353890770743449617230990493379870689457580562940451187330245123062608651885712646651111175758929748595378222118528940709230950245514779402802538966912773360317365689201138717150132429175449637924377200942949106615445429538187456017851739363039622992259472831932125072753271197742794953768466050513493445759173238318703333065131870530567491385743569394228598602397682192750678875977893066271334354725523476437216534473378860923337521055340258144046217771793513975059175619050703088484091770083308143744088674864152829141956391905898014662627240815027631667025533411211811817898356867156343969749387769501097165784463082021384400902528255412520810732070611324334785965654076069835989538670233142494722285086173004883591476783934420910675567391599039974371301522507137553382365272546653918660712402616029202722173515036678863872923764367323017746518071172786782476151194863410191237099186589593605727560874327620133643668120892121429810275229192822706166080235023298985562740463599503210658117912558457856390580082784004977332158695050165758585689381315701625762967512542835066767836859883115767576612962391702217560983382830175402277267513884323250463054015426535984405793572506719477327714240014450015571995362604027175465527063964149807256177784605381241426075821157954344012473927581691264206211779648737686905292072156932688497893621717082102018785388320107636631547871737971155714896788868491669530309841315031168595344857198910335602978016393562091829440385465047218928540925349439519634867111403406436548598063023138826326242537116481325389033668121025075504791419291532334538870174174943254352066104947545997813142532913448882952388348922950476750262351061932997805530627383264152605981716140919527504218722703756066007296443596845222421534465969823100307919319946964325855441366671087790902051348380614715029884132599432279010912086192807399217252931807491967135560613702909289998706280008451772351825880864406941224528238134435013568463077507069639853782483989396781710716675546261309969454938451367319529037716762728583520169876444745669596058600205607771785490887926919233996745162441727635787527195954464839497281571199926674282309654580799831747065283986811629842724117623009788305057921831069518396671573129161574740191373722506587429228618762244521806318087999736341148094971257430354297818417189200530705295158063682705564384421940070114358838460946976345776691328358843565134699199207732590559681208863990944642224524250294968346709468712740812096723634884126549887172727462105509173911230819346363802584172542365051452335945223195377519966397086632547771390944259943015944325398887591780715444241924117791213966262980460444014955486312006908863491540119918311216169792324806550996743553519126911510189039801663111282790693502835653077260412929019034782071617495061997659666414434749736753063063358363531611010214106921898186620514116343303529316505065627067210873732899697756855871953913614046590784468438102889479742576781041752258675849646912213350468630241291395481179133385107201581918815662809292110890380657327080709130073781505040901959236487489302237124019142113610449460003716762522022577220530179812310174427107163624657259081045994490242470278579828257102382346956984814123087531824152010800125069131623844123870038769477230804779574574937070109646854001982014475258600299912249727808323659575098340908347802848830400646427967574977557348279876472165137013034203037565273488020366731211600510360876918215199921940312318880350358849201082195821026181349934524109023827338697993386118272789700536531319468305851794846239292664082630250121337080586129142558029598029478989756541291034485805913361604247718915319993992002434750903310446132934193392918097415195381938265741717995785162047031519530910459519789677381208977624432365777877432574954360995644192817906439669293290363471519890293786172872932984007599954003714045852648509478638404969708331756427835166837354008504341783226830096676897622093722834151909779345511196916552760579977682204856003786585446491976980294488418646572504257800965293416118439002240435068999864260981150681748470326561967797787946397950943570133185025760474394865172418993529548157235213209144950042842556223598688149306235550585953234974840803626386929864774282284066363462512098690623498767276930977311066531628606052176479534064438675606191282569114775042094209633828861746584754412442583930722978296503662007186124514977968805211069958018615430391212634077927407549805641524441432546797936080395107396225147284397838808143021981014290638368913071193022471677719058544530697247362515438532634264323899316473652350978078242586873614135065750618041294569464545522374398693422802806577221598940683326873018636055253829989627537396987783473960706597079124129945178980743437693431868858403845921368165359378561678809203943014016628469661139064347301315131376061402393892553319377704208456981537353554862576593849081278042607877990764052027458128696940222947739276385738660284254705124730167580891092978987188006110162275218599415836421129605040865053553659051403089211393562342489423593387129457853704290730901568239378538072187522313994010403560825574166434416107476737235886363214542421817049998045978036248593438333096367770669239805768782839866042902135645085894409266099593405725842190428865177706747364313210460814700478668581238104091905103560763790726319421892896280294580070085151834027783681834251391691604749273754713789568416527673272501212759407970339374226842088911592388951821474694387533005992515851008808642666190844318488693269284594300528534283986181964638554538972783460966387880923733661714112054844628044009842881091169352973261814924699853066478047394157974676848700135474976890373615900614890250903833052568040822685938783894239109907652248731886896203616363934312261891376400146063654809812040781660650893760841393226836876563750966413755332752894433959137444775444812246027574204882446770843625017868274820487451700301157169890865340989453144664875997175595064075722986284906972929526255730688134827504332700757611216853722735168804261128302641818342479928821994220617174845140521084704471290107602632677260676540615128888731080252323485657652926084777064805292384750493001446061283635137162103272956055847520813734852317107236371770437249992779794595833172050794706258025173075444706046657855560183517050936490474666847230125249159105462970370756029293749122137024976451122225787688800373372065495915139419304087630061251353804641938226411016252495748350546510826703456250338922659468223904860866342989773824643917785845758111394089202741435175791683015880693094896821380689435437417232758531108964346668674925406698889857483581341462654719009210647049868172425876679438325349397101231571588643795524074930640541707245241775123009817577833741722207808472841484065569387339287891356282462109573787742794636966231331411010305071809279305414277457991370167435808216268572682745543409085653528928224493325815666281280128328104747262522413372596539434984377984958230253177454800751081885079672336196460453195063354119783490193148964761053900843705865073684947402337486803628628051420593673795761981242791439623412987192860807119049477074241020377536697082167922162654632657531425118926084929245944718227644556690353745686932634906565088648497542251130702978356141036559138698096802972257783552827683304829217298164884665655467050937838489477266356534969429918255669677492666916914302544083384365114499036670991796554829906370452439909402947538197253456407428583047575108204564864479071302545006160669387658724192064935261645588172515495764429430532922241400760914691444097740181663560012547848231755407891528009212304462594170242816829993030578254546652042787731081007230268268483528345364757073442730994948493491979266329901636257190100798561514456751005516086107802822136390867717482325191872041154375136091951866517472765814882621110748760351657368325290670248280149528938739670800707331286482892292280591708281881557327808433013181557967909140180201605959164377215885925961778735523802223661084088078607996378214846398115742834721202689295727916268315893837561867681473222229681227763312627136470878630662208371009450619972216076029162404031366367962384176921257600326676876371671118160961330804146552715411307867333578567688133831163118039606850389347327389073149327537674873634569978683361724513282693014876660938049002471779669691680113097759256715720279198483500500648177490074723818552677001098703670330891671754103984939356465103950215121632411562408911984807603714016468399222669027875906814280440678233052921254909561119800591619012752966815072802963098307529112157091265080750222396822861497893141078956213604095830652318103268086401964326262337816423483263795757002366752660037187872644226995509111382610278366995903485162576107765802955538735324507716436616530447705365750441562604832318927097669569915824046610112308025856227298466184106846609297232081458786994596392359780800375131361930669005147024692818790640844593657281755807832976934707179862498029894970835647894737666209293685675427062672508215739629329201475548846880706988889218441381693226425925667321622519535787682728094314806250152999145240584976940058963503312185853873740752851509829912227932817394509621447591165638394811768020386312384720889011120419480375743395987473444411572855183111362004162910060944040000639733214507205821549098995674755659071776699355633499615961421129267787202486385997434121916689619317548485292579907628541039158556902342909340298660869586418129311965525833467546420687668986868540091466673180323615370650089166580062399493983954067513039487594825700503734481055893690717455074724867269177972128746400487057752631801636857747906140276969979719814695638731001846880354641217046968401101290214289258778097975930933672306865542274339711356482252950089494056194036285718146602602011280429549161941648700499944483295563146884616284227931951460173386945837894124662712642002600375464788593517346387234675735715756663056233592222773820448589946225412188746225912959230960550711868172347086959299741827191721325731263670527853203634618425075934727818689343789366775489413530464313379161010861504894079073079317213389402876063515910579779213927562214186966000274503163058130990523735925119302567819047308023426791682697920653372528749987673480421470063816554344968619242456477897099789615377721587227448025852163697267543364447291723733908905867267847372735692497786458880913868143649775137120602559383752257649682987390200340732575021450722359069040703329310540924971282267281464551441558722358619378748491509293431684491129822672129698130139495547919930149368147479310981097731464106674451576137503876394234402870814889824970134949660024649616533378472878944681389661255715355079974278724037239126531943747705706265696032916115108987065160969460434975570840021759665957371531772466930042074998068124711317050697123566524155820081803011984259081992656174998623297115509588684128746760371111778941337703640151631499877695318061680272826817147215199717725598607688735431710333062665097095895884008090978440265747767546096402212760806151784811142333274625334014447762257806708690423482021654691691925347423729711737655143559560393180919186759914196969933880039826201336001868477037858268509435008549313113777530003677748574477904910581040388767607974959226595529932355408588202350333419522773056196334756324771154429209163577658044617683945826288697964371841377699285304793463881627110906736186582379063920250062559512208757246846088624960598713531520467593380336687311889265684247195745021180174665806625570292857606313560802262243592975303443146068595287811842412966691199535995132630983837422420850169121448329473820489852278366849777080719059009217469205793141469752120350394214692405953755729689310318559268178006348645727025169214447551838850758443286235359747240070270214168494269565613055345046949479518413118212971785684929235477103233442004032065604301292101631554811005918599579741447301909106903287108022092466801137464742078496353073384641110701989587520108973349274607889589017923141709531269906427712245656449278737321405267269119787764234999038699869938928955828727071209889655900630136947981078525363879843938642171380184657904661424480293899848714944477604497175166027562598705704724622455693970623243431590085417650751134082371909979972950517921159129968102807446940902923254252902559076961150686578523917405154403751871088562840612736360381007708860815627841392043171956257310404854735166561305057156930565156679188423156517258307723805937394284764969119088052863723308150382015522269764574624129674736862499247422928180942319980136307792591709141898007169736548535624271455028783321871723061077854706007197643090232174133691280600025840575344525767937731469443593098046857515848711121957739479247483957301356359875372134280883101663324990835474435847746115959202298411216069773994690371869447811645323345731647099607001206992043572000508444215176861946130432277215007807576422487109918595682839535549059222798039371858152063326809271765546857841905940109810105732661367374354243400177828388216498972125578635144805201180051341596033720137824418295067346582486673156501974168868381670075477178624900837836848985239374794021643262961390616121451277567264250638568103259523489479634608310855929038402124551300406166562541815723358917239341039003973249897047208491178795852466534214914464978053428774037168757681985483170250651692710792953087336725546110468297605408261228366832477473272386421786166638890912182077654658814049701811740748002160534701117704057690407842084885046249410983204922309029411677188603241704683305163533995422238407538236670026811023787286276228338975856770029076860374611686975935056815540395903223340890255700289642908528551860588242209806936760612542557324652854656671526584538303483738642198667095388920940338166996751750755827981005361245722460368857201237202249275310934289642308580152988254018145986472902708116266313289223996278661866904602146039254272027048883295649596900825575983187345661792212186375643892291703715065807917798023034531680690821879149692167335948179359944214056547799478041191121207933050026810368582950194547228857130172521552555705360945900081665965483745653628215976037047251246422640007937075428979245140531283566963395914164498527604561545559832141388668840201216157525485847249606680369426127583533077688460943039798183360882804689205867409335817660892576322018723508815727492308432834620623823219100175378613707126573783612090227989509852704055864038215654087616200328164283516290946466498947491213013190108570583572454512625863647619711351905137027121295830190572337918063186973763661547286169681886101346298552926592718084855539079251954018953844406494609503786105353037295727494893835342078892277722021447163399010513297694414199867799996100625676618884930067184457153888816735700877844531498018929778387599978526426889043397357525559383886499097466872271035924211819559052502525006283657619146036735864240590987793768644701864985317159974071910094069128100484011421362204073456267072004955556266234529810825619497695751404348983020377454652156114551232561069807501914457710671659574994135531524896227873778865212071346096311973753800520383193098246850034092869344338242768628696736227601646517562520763926702963772828365010287671742407177277697184974526994216694800783349182663509034311458803097722945166030909491970029123154299065847782619247552309502369735656928930217557152309738518921413117879855110380753776378190843886003479003362264491939308699353401068507868055880688299165701786338442938534477270355340881667845542548278457938993707115543998592309368725750225958659236614597620574362254449676445629764616041038805830213912580981564431101291722519704643822926580021895874206161196290541416849632114904702871820148058549486725953888242234765860410766859432017490057202496351064606270070491300100367688292257127022846714295553777921222448255829755778221603362391577109389267250034613075595429292735063540394924863259242013692506975107561514759814542101644477651999667705240432327131960151436686277602585570421197882589890031172634356661751298115779265659851763265907162039710639024320929030478957013957478277474874831311255334310837199241346148610309775751935246253015102835229111409726825952452899674093814591350128141120009106229677629413419539931004568261271841498707809047527928852486544942601425222545488304277984526031197663716887048619100713082342751528398941418076583172814740013447774089218082576299816145193537088363131092894901192879544724853538740815303891953271748870386866790745276781878642847051735608300844913631435592024543532515761707612584132340175784984626043543239266456658083344584876639014896859573649235282679722369607145686228468083955314535199046137157414199799405016931190209468333970507987286662319705148626308633610234985821411548812849044643500581591923329811125415868196924791979814557645223467168798671845058364612082079225096885775913844765948434675266650043669392882352639965885442417725293986114785649565167218485844226305222050719241541116676604574771147467931412528251576814680507401328610146691784775045386231949476707056992326479321962535380076936404956015332269041999407973840772853835055300560486389614210830573062046973086595885087913993331146114419980001053259325680522261081558773415494394286493562275657144634026091737747396936907774510975228204786825066774802138557539784186347219172741573554191349539146444443652733563692789413400966193418618358677091661313763652448200046898813631377900345324942496265615701697244879703932577562226282507668150823602449598436642403766164405352130253406901275319830176652705223354435406371032823002369497225181352731295762562701230960244884425780374053219448194343565142793309370627563015174095362371806193482834618090670707490888541956259874003381128743464607975990200941386482081593760957000862947158835738203034826188374538565163977307917780681928649912765771028802514566997058400096047156557668647794870686924604523773802830106602279459424339827969342386760160528967679070970300929223181832553277202153761225934981082993713255368147369679157886408692908109603918229946594345767845623560995827481896457443582825689691246126457539525542774747639691091851042553574613180005172804854206440339424443346226924180419846202838190914733864679402595848781418085547685843558198326026305118019159521916006697481808045210117111008824392139209101587069517820923432682043612943299641115484392747297675789480782507527751706280355113627281706149734213192801783392451825529594766039765379574130971021372759694344209437802907605818600683575246357789998347096893176388471842431147003956796668493616087940569765336228696344280108929231260811877546007849120863079767676505925819880625778162128660734029520073114601121678740200913773502733070456336736213614029217007493203964920001852803751601385737108181922323774498548651839044042094093860448701837554230818636480137929391737225499210184187271771877534391752336523144989619358203311178665635237371905189196125568569187243182966649906203833351524510238247997124508387190512460744706304872025089808096775342610419298782428669145674233240432471280975653645648851756922659553495501194866143389577001101580767507106419869409463637856262901032425834687357319483016169576980365890526831467043979418398842091529426851875632788454560924985298094038524267611688407532111181007363403183687673433978753220315858036728039943542026461200289472916801919741011350273422034465794624701797735383118580532684059289058317142999258798955443810239314709358838824568222254444434421811946959145699054980808295982281468240970421487559763226897152365092091585642366146278905583751070912072388549147278008253098915078222379869963584347924151184189332071119382522861707835975717914564759844624414396596926757532717578218526605701727844035170783996081317672329613070305217169576891671052278071747236999423888850150199522245264873947595318416568311350898628504261422358489287078972511829170897961526899110869114273226914003530613890863900974843334167036217473512281614423965447449438229606552362065705489816303707879838322203528753647188081219728341456986531846114949778154510601875891953841544533505415062535188127157695614721232807293077978345739846980667940581957307673294107412360165418091523741072249831091284694283188511127224120080856028282857552352935849801371592706367180192148093501788533221835994281269625333550113420124600486437199278056747598754294380390335411620510872115162046353231201139964233770281137710446889933224088504588768994926739316346026803483858216241130097476537941432711035176274993137491255020361124893785448689771583596988453448672112575533857280381915645651828260379416266020811667390287006503343485111290143730147223520005713140613463308175219223511036112187040595339603625196364016268578321805187685221177861578057081948025420052929350611024563987629010119221713608704590727849602447296028941106812254178420899041396809144807626767887648757593053845694824800019491056340150805296158490354856397016012784828896335626467347574950402228367532472584341022543562275890463435635950341784803472801077223504622172137862312992125745478676322014014337070536714120747602558630146035042502731990662663878428672414700845616428614549748431833730430527183679112057497810657927944483696544020135459984744617172003190533062305913367394433262735957481861279668024245483173616333500195075493716389993900743942433615951150499376714455857172843897595701860679696962732236499371723396829671975242550923128625346835277044991998715548777330364172537235307927378366667230512848489889516163993522201253829622466562296944403520378002480194757386168693269780415699773779452036427815112357125026650357889637214450330231194994304862625330766564873188413577035566675203784454015529362774925531711711186511149437735291365305099417076625812287613774810433662059518969721736701868174522011670567339449004865244295508761949369128170694954633754908045407127643133300150129537458288062375297484362623197345038937365465783938649539159235311873224860043784924346129668052470062598946732153861825410699243375286442743567851450275430767927596411633338043216046351571711184585493669393201474243228895385148041751526330454349862121441329093424565543452583698743383928671298109341879983333357445925912687476632165703381097921340574772962615481913594992325098460715828231010569264049253894388523896684114228265103872752083061469131374948881417712581390115176262311316759815830385315376570305981047885421774729491931575909520896974100428914348465020164177805916531742292040680258299110721865291499793229343731906700051893226525002476695765034887877647195280745631937330088315912036128359879174551191863577328530798176875592131734945590256685860855307314708651961954618475458524319298321535635602568423189059890748658496194274043409559386668274912586354232917856201506077389885122494603541419560598338395337597929487541539649967100939642682612201707722026616442446764074433637456062477880643784582194319853878137738801511947505169926975568759391252046109288234896356858916818094187919813934573808165924213075325142477836668358482777803183922640553533073694622806741388088513557934110687538173629679303249920882506849509872336824099119508268733835994017969713875978288635073079271447842889626482650867248091483029535239783610963384519464699583242755349082058100068927178216675067705910864157779892633107799252376276999834572677285212054914649351663605125198547186132236408802466377821788472799970623419789265566105651273834408741511468571209069433879535856350995243067338190937920847317351098597854248372221123608601424922829547714762941850273372750554497939853167840359496445468562699790522833837838154682576725851043107807021446189687252246028873495323388693801449567222443446620709163627460875650532212745708235595691318747644800651290154337256667030843293186555916672564165212077167064487344001822901754671841290231521615810837593619637659326956159158358957692897388857945676558871347686210656795887747002281524306044858313256132327803166177152331677243368220733415388298862397699030810227081875076571794237484292894720529603267494440841154004314486193096725464655365903514057177644053990075994174449485684861302689314453327476503050642574604115875316315974427948473017367572184671637350906395041271138281071462454396167403732639008677572643925127150326297071044542789676010958790865684282425561415621667945622384018486889058873107291372603935057085681042149036422270357116560920997408933242883487610462805115508749826333360160896864806578872056020271116359792229127007903831644903256446380614923303536100909722092081680006084279666114233485831787977776357054859107856687267486216125245038611793779763987721647667921917486361916822556724630482998282979251441085729468320451812330133532504764668341684844033693044634302175715605888281969544211395525735486513110699613514674833548436848211370308480985030334701523539012787030963840042065714695485373401510155007541716011510309662622064425166465825135464558327623849949075461766856236846992926449153086703451126719781285233643478364177075328421016886831486517993502158988462424111094671275462770992306184007207009715942087818982427488784220356423000424424529590002131279756349743510504440798235674691966586589688369542538590895602340677558535391102224736178564110848331593452580152166048723551042312123708280833515482837602748124645417220964850793062847540320652837730390606900555665866502690954056582799804177407280531681637039508372460430254695582087141406444102992370404667679615144016392364630092313764259932120875690066026427096865489394240537907918796478203301183342262199039055048943862060771262560679898158797061704883531638170262598116805715518908804174840361508625793668457931611392285196448348219184881933108231214127036038480643373040866039078585695027684048436376222679053363518458144712370535155686794591986736023287549433264371176154989346834478569927408212572130244255059453588601639603826071810736690940827772429250671744442419211802404314214887363109446313489673500180513517425204609220593568677504928202241171060685404608393588819021056883679303482497855286930390121976836515503720290845097054841129922946565829913434867011339351627639893559776134485567927764228415465541456287329642456638187906629579208133203439733845173917734860464491325737089678316089424786485963163708986500724839695456924819527543911250208106753891854034246041161695165555129791316137172069197524196025435100715001010969296865974390079528618571297236925185961845389602095318646989062319035884217138250763922012038137920266613221626612249655331806107652032639181058469041476270477349514187802014944787769117515824569900779339109298677594077264601415681721524538096519462208188975126860045517888220654299256069292429432402380284673826059000763790700191778011860708059030298038746356206145088558478944100570009058364040756268419519645099540446783251670836874346374166357812050140983012151425766988878718784284670000338665600384932331906617224496492658335004653934034484039849086098790391825780153115968091782253042696410971296140232969700254035986080164810237995973126570784603159498266424167455892088019193124683807544730303536284297775323985466180997221500129370646999888267497462039481726849412434536920294912441951650106166860833663808490689630041692963002972125679327317091126438382481323061106142169713330476768289180132541713395415267238142869681659770147396071378941510286433712410806864866781205805025813429558598080089058983813546253306866838354345163224046134426536113725557972728763573752599953331652059440647058730641453638130159697143737202809381869894170011533292942352699485087262384048049493917941299331925846454368313777483242419398220738479169557408418267037868664166154079774236692839580145528435579115387046278077229339346185046859019863976634808880618009797806667994194515361048625691693227542984368561010206156467712738218906174490753954672764365170048163259293851119854765678707682594973050733463764600457091594412991536544933648228504138047101564542696571540859406760453446710375630259904999534461012337780642863115378788321124084152929421285586068904851642914103843872893299522515968109661444030422598715878732936594674377173782702247264436262498711655430961877310279903804126425783640222514845435218040130195197367744182978032907916008795871371529453890959562705942866181119026947358670303139699853776564394824894649573683969939113464303042885638000046030512235552622305929613456533307677928196835041876111647012459510771680584588412330315542062278260840419205759253627227510351643793257151612036151147737606006350285197213504750855377345736485074209032890971276957303266110983198455257724071500491281511352651939637449099439068732375868608324583763638333815929212061763602624795423761665809870731327714861284476380563383337644452920721723315515115068693139050886276008985766754865241677025283901772670715304955392412515860303357966317900126634953119198398617219389817977749330384158333255816158186247085909175436504817342396555296461987838447177717079425714920453138523189429963104384678209735612180681839015992507324634697710184628435623396796718624987541088470421763533556590283405655665311399087848073433741935681526004471200326965970669348101396913241307635329544941601638785227544820861042222508979584437174016166648183749516589767411297479366707070199942519642947913117286749268707908572296156062077884527234472398120965720586666548627672538037773668788623029614601481792423614001016000373339591332808030903626266025473172173956875433718984295557374069714944968276740772429160961606123345213338909152857524957091991710485849305999039194157239167291515216902693588739298409906968307621826858910263847215366662386142069460276833962144281878205237800947069229292172816701590724909201001092226955048844952844073300852217225835319759726131897931023557971040741072019465141988941180820726669082559963314448169180911253477499574306302010957473193826463071214970116994271404921975133380383538051584117382870788736036739807573661715788566003923338217181383993064024391374264247114323849328050526763128707413765425396711761995759701790437597855681415653887593192245150208520974288102520781390946487197806179746731770745740816709816580376935139794102997173466862536876890894555346444237355338762511911071528500539026548407795285086662999613293835902951000146461561844330772437522391050385985484825829686641197170359607796787860893598230180468458876091898089876884854542282729976854798275595674708227422794533843835660816746718302599400967726937147639870208600979623625158236271532180372473518393684933131134581738561127497528486786948790921140026467925766561955190734675213047634903858077481876847702418118547510326280848238351222263146436755514644025958683615536823481619596164775673650477400244665218813048279757909830945138935199731416513478969464204918139138298160601334300570251074800944378206545365204358361733941747390937813932214904104498785726061436519297026746937070818161336653590350617231041725247511574686542881175108386229149232931384555606088615029421309041790147656613643101178772136918247170193584934648659286487475245422992542676533881287619125071800674111971996722801364744089670486371972522613095202344220804983975158674124205219101116356994082510900266184532708274439399710380132147591113586627301061536417707195806006820177782624487222541231594655969329266237003484550820752996497403491998584879100307295209952550778932489214753641848342847735183049442898084904452867928534487068444481366019950480415750507070703363567839516166825838074676708515741296905745679340111612219164377534724815233926472043522750456666370785088522637134287099924588372001669114095521497749883530890650937195698557714803007330229081945813004726709513161736644052241319724854831960418105050254304918299663293074343517028831833324640151647110625053099978172354851201313344883218142261250886579253028509548517371298887951557594341770752403698675593193128451841699595599702541009580873659049346911277866821575475782489463421239564851923495353741077350392404990552033573171889423689187833451331394499586846864022065509406367081542639958705615397389162669892703332740400396771251924897333124278568354412807994968167854542620007557678805440256717806035635707507694872455453978144561732855021873894795844555913547961510747646668410063958863702664711223239974312718793706610053056920961299576129723995152602551258110016065836569822798222421293523118559015328406512348278423086041149128446541954122737042335105992928404093775373268414842024492182337754124390235377903216670414292709056903868256098375154207625598617257536557459411883680484544087630229289884766760271635877124220298372277495257552705166005288148794092693576056011070985971301546482094567327139844551211178413748632684886502378013663946227132094594216899146902877336542470304064212758115483037109128759407011674919957551454706582988316267025901884527395172802206938747162361454303022118625571776579871485888875280967412652430068022726943540636885513904948560667563355235765562472805507759843349588289450292661512146417203237158276786245147508112049203084626824146458332844561625199456252054594104252442594266615789831007610654640201256880220917556332510953559481611636476922794485808583947767003149673068651733303451190749611732185208113354281711148679355037901080233707933461178012741399677439845313871415718452380593660584481395370362432574624334359887578406720881212623441604395601168630956463452429047523079191294112228858315343932464360261470809542993253102077240511849683182459972189512513131202814618487466728304926062580565732735607647218962525763134811013050301481752764715288702981521406598369071342961201921408995333875620920128250399614971176404464969157899996822419981744008015349925976850326842280647834642001158035437893253352401678662658886009999165699958635766677359259843001027117525976242355171840893711151437603941527204457588494649195384798780459613380978841743481701055677742400169181064533565218485676693988589351599647304085960937566551339123905069994818185293716627452002083475705435787268978826901065927428666895127076212981131299231524497697785762632994950743897841602323740799715945217840404135284807994079446709607909303909865273364471020460550665913403565436260702325127808179734750402949079380908391129422635100493798012410097840891513783108379619686938369996046587936576761141434956258982630106462633835715436068391465003570382509878910436268316469450488380430454460857897975201703667972601496431633907150677001423015936706275848166397957174015796147598931700805871761965122821791893879792695763775942332336267455166432801511498854044315789098371578007783316837614030852039068743188427783713214637828142790274483938343123074101735315042515062210600465844780520324657346721394441848351312593712670036837856592263311829766820542752197801422317128015619897264360606031624213591419333573759290405805999589783466371729494121104719453571411381430270880640698153447946975134719099348406673558590684544473183055910887933673941789445265865374237864798487604707032852441358981448851982548508826255166683250855553797806590558289722410570273974297631543703945552983634503207304833020915409683709027880258600941418961308152318341604146340720969710424810268109825249529292294679287968247835769868216104306495889372977777255357810362828226045423654310588725104471027767347301576897693132753676533665395526712051195064199362273437922258835999011774079961282614512052286597847991659130336031666742726985283836146148460129570400135710296315350766030712672740990255157755626821460937902971258369241099384294943740571289167578580934415753171645153198258037033979535186556419249877461335180813665742774262904636143181698355955863625959720846117643270491640339730994606929822845179452955635006584011195494713490743871840215760241729458763970159112078494265960870211104630528592598956704713054948188266191966386049853355450802038229129169887901417042358208029414868955849131175976364419823839643404827825152997649473413406083919286131861478037706322198201448179335251418145106942544459416776106511789423008906195080041307896230445689054245137589851876723241675320332471487875487337710586952588945975590633393865778965579726880903098073364508032258502883249595324405101970050307804680534341096221289864169952200419120887359641655366663025886743526168656936643924304759112998655179027032998166236921076406933692011810348672005109869862643609342930437951835775544162040696732989354477555449351126855277573935601476854898381712837819003298376424528720960408744342590892264429300719731020825689829522085685432294466256412797040264690233895088274591735566045271785660371511179113166403848769915798911978771738446717389188787054187882017439692965851785352209518911288582666192664120348507266687917357211629186801406183461340988876326222190372873558008784818321903012615435586097493427989293653109578406734243333557080806413000771229290649582415438981021988839900973037743523022274919437289702693619972948717568178991495985923446258456816567505916559394608821041076727742895437203222615862322059814890199615668764076216209608869326267164680058300531886043866682104256091695307160269313999053450955969758656953313869702319001175411098273285987580300841494342078519914304233330654188620105613032394301372346890589719460460507078098198365413184850155557545121793406327508108251222939376794736282019274804057525339198085683834315348091877587211550976293186175161966305429084625612418210585258187145186065057612957746146138264039807943518466043629662468125150073310811836455921026149605017017316485022417354723276299457793165577560698542127325625386658254543433815579022797797092330887750401894207867105273693959973236944668332724160635420677339856725385577543228626539324531546322948349889631723433881509055332866639944983253814762795586069668224965460365231705650063943758729427951462771942261829540999310082389123991129859252138496809994536826779556441031678043832334820132353579046766326636420308861279588190925949106277683983004649612689814411511308739137948508651121494232624601187592106712209355375785648277923179809336285026751533087604220163840679089948166755914749152114243077062584692389694995823850318900960555081249931275146003241718745366925358698077089863755409997692977168205430007796437818785772322588058634048470292479196087448749665444143754469748875060857255376979073100245776888381920159639440505121641772403532343934612056207397451129732476982236986182538225496474321123892433960087782705965422913343796490139187953690889207658053936778806680767572406787569052868544970786364539476303556045736097228574310440501608817094853984968351737188429462582935830084785278914828857187532610698348044271564684749408280430759813167434320255603139014557458501060888173375487895532240418181394960099758914329736783681289720396827866076850783931655289587617638276817230342381105087479752851562921922743076670063403553305515896864014863816273643561068641221058561250737781421486446334882881206984323313973176443873760868727912065420013293262089236740122671637563214799118418123122408308067517427083946857831720484084964768352730176411251336706511909270316726507941454984666668904257887479009122314490316498839045676348071626022435747882446645259058712529840704298346860909643894351798259066700831015346891262612376096152906555604650730161025142016442717514820652416881021644877845411330356848454023703525125785796054834310607258597328615204252155721128493457157882884294792823663137863220164506353949902654816562971623538147985542535180600340101188109905483599337451494542383649581978045259427833077950778237458466749260936977803847302477221711694195483508310630326155739267179971972573526238733579721816937318247072682434963692517425382261470003109881473514199923797807363422172829878807852660069685200246755866639053839595008535442831841390485744653402708478251326172103615795825528344875589845605683767328712985076921664881081425761526959639828910908420799890090266383659320709915766541431445708016288491841534172334825358722640358235869576767492610743274332439120521481399415876816786170487101285441318581114682680519852570522861603818528072987462200990454428416007177222658399403649310567000860725526796921012931659825262438923110752505274244854803114659382010712031964498652977582179651251498584857228839078541333470200221744225193916680493906508454770622501345698870304524853569083491112510089892806999118583103689179033365805343354715751263840567572363635007049200488885515051461153447634240099456007918425047503686561538885029380762704101371741324150754872864670452506271848316020857381888550416205441805138382954864480140618139952304900428828654493100958414295983957210875622372961935648095201834964593241555592607226622888333189876304864460949752521067592538932980121143946634527128782062610054457138882894551010133921114149260732492515436812754114514971444446233151072902894372765016515895175344078630704726291695623783074032529002715718322799417286431409770689836396925557339131600312841635205970123633678996750886056228277103860803979378127072071467591146583312952685968520384802376134968610703867094643672169728142826531993875145564676719679411264377614063829414086048953222966418705620296276260411812745056878027130872722622183231715952110481093350325904677027690051267817812506961265397167046623471908004743073893467529074190834534042628182656827884882119063610624009167229139846535788165331684481349394504893885782944398314615584678818224822571843509252003343611971821817531105327830799473984414401442364707946283777104897609727640952065098827394899093647905739479782508890819825300220631576646117183885015422086741552752548599192858042924032537868202721154118901956472809826068099355393036490067379090600162347412478402245739899580272705809333339526784810438010243062708700588793251281114320795102862865862462025375041396332385645424004476757888045310550965824631854376288932074784482902776378069012037355368245480665557229611695585465883451053968255413566424516946143677927571822962106376477511218869073670331599275798492241950261652655048607504970486279628668306601764419733361311009803424934376307724839148406308275149980321976776571071007438837217660124671480391073512277743973637355066496359019672623903719661087802768563169501732429840661083287373869656569219837058692250492504096519789099325925580395637604490567517513396650816900052568055218694940426514238671975060032669868295776949946017750645395473633060725386803455795653210654474471264697034924371300939999666258339041422215280510452660988334098183562807311494285028086749518443021410834784258262176723932343407466807752657946781913911865576283318050811080264999511968041257022162783365677386819828615434753690484266206959861656868956413084628312597227713654106082890258246829333805613287948309819470116789672816568346771569865007534512867912296014572741484983924520107548105046741240173978834787931583090790550175755426572112159098209818605276188902557968116075983986565328695976523696221420194862467669167384056444659597933433412026020983425261061291959869661763157699279333281071423945648676717297461323290916402228071672492773532365727840772084742410873032902556377121413894097165263922378548111900471373083995504632573746206851239486119844073716101003898779747015189551446527665724236196304465228054996352290801434932985331897174667926934730110056224598777621967992574223998780194428943850694954065881355139802488045662604417475023652383949242809912092184810398029614834973703602064208447380677417213048254086701318783851548829862370338786315738371464553636660270087904402820616202990104406012038925829666980950403912230067047259150858018106905201820155228405022910958416497486062540012581157631241246395781357763873622713342927129368097775595877596272352307009258617365342111182796222807244951691833981122447330787942980262082049323475848302935158292035377641185136898766773449772642107567778055647784061262421219754802351251987751164652750981677260665703657423936526790148100538349435140097197098304743006290076090800699994846178931210716362285618826932849511681770570632831074792819664508742673488489909646763667364578973464267022943717899215732904307590082950370167256799619896461436427910302045940040379842049731205824359347579051512077921415216637410364149120855108077059433858763405251631865655124764274532462295783978555127735848878606864607551756015802283796974207844136811778828765967572729038335136918245157666735327489887865745658870861475307747524546404524346439149924218900942726790192157346087379587035776491952156871521566425152193724536361893321075371749963223843138966132358016564971273317362613632479721442225053693417253992403570895499377799075510477544830874111864884766309437143122922221934682415659108816995617024001373175250230498556185555219354049092792787972346677178060606568378831663662257613766708318454924215873098783350590946560819802454531096185481085678046931359928402415310150740998114072340764367063174148209113584346779585022771755395583815471809179325285604393955746148054536857316338323504298012266620017863031900685543137615654011447548656498826635086779922762464481771581894560650281550539822844639031821189724774444769552230324913927948715902645692168344842389446688177760978661263316612149434315894438178629082678651376720896992468851929881890940139101945351291851299433045655904903007673383898454473376057271466242258019485908653933729771216870536236249263048460184292655592658663962054568908576167847623577913628052260805422833553385757112919389029462117313540294650006471030281225763560306257252941932679334645678717639406074074839235272336667543574814506788071434597626982912782264850327628656893628713706395032612347739853453497593907335715106357048349977083164197446895466968381052142233253407377370304364545956089516191252428799969124106339962783529325317779077120862925369867828263091335169261929679047918938860172480079000959409034171021148518425538063305308922970309471770973907979769436705690738021506450693031314558287925546281864664256600772204285974383042790868036528847096453703155145007343006553783247694119499368565063363388841327575175979351282533159323077691426031654082516887119116513130332032549483601995090874119358995919682552752360393066182659114876645136424355167859770678784614464583629740101348002424710341493660197395043028457278832432832973407749162302053248916144190626358663800729135764682685856953673493575712309370268450871402469358338888073674720955066760059669241404271673179948760824203816022515117886816899346238254250910701043221067376742717716765135483895758668545906749321075539238714260537946689785078530385383447327203524999260349472560814905192586269853102264014007739339351978864640446841531230725001522930836613765927248361819691631998173233388861795659726482467834711674714091297711022628464382897342057049152683252237852726477203396133939262235474547565188941188277273459501753389494909952624927713643989689430231347644565429051274173918475669644581390674187005061793639454198888652999702000238500368072165330344212703562174430259385097593577176228957612416425926157536896412078717128470983408351091131732302212089618927012284584633891921806586412884205642633754623526004402527634856982779067136396469417076390169166252584729520079699646940870801502495398881602755350924620039429611418453816502766488268903749620458609250401887918497127272185840272729957581994693879833119832812500855997560349249537716575110157321761073522104034447449906223308382468220069119491422193312771060466181846241925993735773356492899518047558419327059620923626835862012864717078231237597095260381321496710270735566165967775922651388161670242161744699435015810624767359066579103298303774861533965280805739936613965920508013525798145739426011741439104874418377967011035540296258363663928803807789596799383391144264585843351172676741019685408267132166733141273605468326713408693649340684716858863894154108447915687164699181509284819153342810999627509906219813338864464980990559285819845820810385610967815688950410075267039020329003919759216289359283666565858881111878111538798535131108094651094325508526809821654012266125148815217285844211617803151917898065913810213377015205944134180472644547695203546479234290468508892373751454778333038083115810999280182844162236996083838938844788951369075757122770488745436562378841776791845135000521023332543081487625448714303690460276248504137813711205709177205887605228031653272210024864176553994349862422954643336997870043708894494481715367003349258970857101414602706060788972355186236281756859774222163805573040558188520500392450606645438532853421462158157731756186006728838587357274940577821298991446827059203560995446784875711356747970265545343686936076758038211946188574066208601004244925260054187770783004406692021124847344380719146689091731523641167374786807641458882957940698645252891889042077157925000680445984702649804930811791313230944766943260104907366535558207036825560631374244432455601334437167527999055445909300322234528608436186956085235931222520032132923693256588462615072697101686796335256556218552843239813948719486082002277440291295742214928221125279239771377425949439725653380092520627821219419000422341827759356784540727788842557581331900261909625898409922584005383802421380450900281620825226050662130216822335631391892472461510401379503204846773989546589862817524181335293127478534787610355184000248343882060593406012349080977538802824416434616135616672247235345454772478527618979581111080226018423989522733171686709900016515714087486957256801810241146207489771874854033011390771565965183548744997988581006985887873958952968194128463897918155513577344172290097628360633457058677419788236330597499926476291792631611221637113297806194965419832740126057425793852835018110870509239327282316396891945337376515736792798336353507044268320848981296631968961443542183868578410046951326534344272183753888697003526105806851837903100598904997235730508154719540563678280849572363366846651349574542185000540473024834456268101032388758508618806312431242532002694383424936887241309401461502310843289739521419006706751388839710227660829206552661367517298600352373297233766788808818981356255566053355139281588695838814375762013833121391012995944528034597920533045224556083952119259308073788484184194193958189698756634473191712814198757949947003469784019687513669753957345846576870535337161029154893493137629940065092650969148942557127081561338618899699787443566249069278966357539136361016054412682885148247481925303109631117720541016147719745283754962962844870728099190957560599016956212895861336796734172367704269796552318712478440425650366330990806656407788739030031565810157986574206520024442584892615167487157112090719425863219498868100755745492553349652029966885551484868903552331371096132343893590076253096608607206354201225195551114692122057932338818346954764587750296929297871018846181209561589924569562850109638040002553583665276500484894498494760682556601127239313879630479381200667781150532922057296688358513377704662705980703351363562565876357589725725177510368426958446671570301665409314892460998855046901535207821063198967724579713556187486241644707978289384191983470572233638806059364286855747664051672658134114519007617071486187612136523926982390118947190081680134841175928272941148494382833614124567711344637367633400643375275839863331796088281164913374381588529506634069723461460863457956764122313241490627518135393644270480821774045202891567902059139483393907974150632122059408900665448408051069371956936001540966339639591133410480792343064339571699338118254220932120072728857428957390613774905994284244222772482338650564930840748622518195525902193360223223327457676992333195712695005344100390353519487666380746307782975499019091719485219959980614484160521576080847425999931560362844154104838147428980029437911437191979670140201582117861120296772403754144738310153193222903434960326282262835834344370457606891321938428099816608731817020834876068294656058954704310896417649407001087577441009367371534726971536751764081363785989928052617639845558766600107791280164774926469433249225124868453945022393683819296160269883818506418327903757324290682550527871351748434454180789540638985409672880659583195311012614037055646450690351999676234955074900399128713829987059754964751727647966081292168155431018095252441506824765195271996754443903253496615068765785733883793781855915764857168248196906898946777292314815549832241306038747617005970655243938809354411452100494916913907842104396967703910924756197967763438464607418476113291446858452150367783094065492216380005171792220093648472710964369520942234230609477740162494638721707516162021790991459248499496207467103533531861907850683387492833540412227437216993352525315272750362685265722115916922852363958989776275437395828012631845665511319101614980279575358179382667545689005687550077350893461824912426807754269733569097600260626743667698422979479844702625682690312561055125479383316819316319520004187057949332987758709920992498375017435623368905270110629652088065462605786592308810281104435745295648983089716064069544700979768463516581497348298122567503046736399445418864592292791217366341477423420645437359167303466701555921759105821330567419219710756675366355850582331705933912569412948187562053616691526858205452719591498450908186541687978510702058742614763475165625059670471643118490301099664770738043247948675763906008161640762855889257541305118754439754619773916640900944094571034193784782201038593837679336228069231787901933321556396554571212018709873345015565311156397227360528861556496248808023140918545926520236029188385102498916050623940351345545236092335437476753547692261513079066358319156597165378105653677344451371250382165844996806952662641428029069653455774776352698250704962288734671136049348490396606595435599072139219293298384766060957111295390485312187860651940189235478120932811275517919879027472557690290508520930339138878360907202516695499848303398920036471716095719595922250608573819859556531560709904520397742338838831488951281881261453503912017005599537216665042930926205429262461977617507419721716684865794750857561618030107507859616574635260850058008627336436734656893284474562171895913157484945521410457549236715011834758785945143172941595184461153687291118068257803159457686321842557453652156181703514819087475982706203987127262933766947296046152634961797251076375384039539261655154105854764706548081052108505560418559401092277019870623335216008156290030569185197158692912280309847717511193396170817229040277943526506880285587659480066479664353383843258959679857531342776741100744863111769539449383383647184102477531734339143647004332700752981589854427537029775229291258651825137552982095918781380536302040042659926031673288933025346164930038327732302978629714089608136946764064147184287432855362413340174949644024637512037366074414148595722473573006990447310322603107859729928475249258755592638417653926060815903022187346577723335682040210388306912856302832091535978377197103529660651853248590228844597039131797512078607001034195419377203190486676503394439087859283351549901976967731529695216138961004035709966545874013197502659311409767431376858646681723311824945319358001410796362431208101073615239587197237303229901484174308114143596108602932760727708150954717987235439735359211520414935801973807986013452755397133197161002774151197639871918795423968452952648960049187397085817324180291658928839533963174678957407097471108931241658011238276442292846438073393427300823669818251273245183584894950161913649029492029228043958821363146201742663838571075121316107373410738096837666756772053527320794702247656829474835594890302019274686806245323578448168128431133528160390595972930521875970190136879226725060707400022398571292692720998595347406905406833969975332342228795440501002431978840540896861328968344127652640114188732288333823499294484501409937629100111706887479585824441826949758341597345224989066800857947018466504091909380156090686140684672018918419619146423904714589966453598000964449890884618926648665201173740855395903962065387519576849950218961975655430714905357852878105774649764219620121312440642202262600515865359397720172099764309507451163446697537186729642213903952753862868637046473983489146066867080074776598831288491807150691040054690751309290677029398148343527181199000081663939445943016752605097991051311091421992088519658102110967023169035681165441010580116921504966180196117389154733474309176015319792192845312528873466382629336722378745800854930982926137459209555150111847754348597095142962183241649547958165293320153385963749653323558105942398796212462538494022773336673590685931981837576721866654683987872711285769698115805457695213024946528665460757646518958049366482488042789770699972236089002130086828311412954489558449669917568811679099675983373913321944978228962381314228385284643547547288782941682760634650339401658752107035280865168639567504155781837453933174338055248732780340115142015568715786278060624772159749740539104044130613608990480251306505826523695239654100709604658333308210811877609193329469045666764174069718540288484818314634197994660552877636814303425548832895355609349424931536249723632704481130508079122832967382911479931216694400106871769384970913836698871572200834210437097453563884552621643088216302906299576553227107833531153249468533378235262510231687814621822440964202597111491930537969553439125054036878863784428304006181374376673147746996489816528697916979804571413171036712781256313481325447868023475274866910575634136457896512621021722355900115488546827300563159422020535569276429499414514646638921474851728768163441725694579764374697954902683401874748731508291965929539435380147489806110755181599676866104512546346318369908403154627115296151755734706839873455534928080796411225694956866298890822205357019692769667897958776461377145277112122719070734037336811063842090674603080451351553110314837351490188115163195092205612103500296451317326597822833476703642597038958436208663673117999448615256119935407191616445526122730832039341008602807523014283272654952859256428180043724182657431686551010263219179854935490446469634084086491524816627842350147232651961778311491224797996680128630508193245378332910606034919727903752621251534964888257144024304477835297049562928902349495663247281374387222351020779083260061780083492335950413765836273451746215598589771790044821411926462750340573591990993032829948485057936271812379905215646562885937575774942246729205663380784072489287180523781594872872628860840016903541402880681129721645831324231193109180881348639953815474856903648736306516557848734769409047799394972519516060154452953678258467119493128000252003202583017748147051514697614421171971357046634039265052319841043774666776863261729407899159606893435708677143646258894515081930621278634106900901069223792751526364402075607938649295918725536352055139774844362079313120129863440345391562797683634104382996576053302216568600746588780021504273008462255035577625244113545841699909795966201473354039059125126738880701445131129824337279490812047779925479491337222200539016213009496771981432929566899226676053321844766553674187483395964394818471638000717264232270268761897532847010069078901653469417216919374797652844038456713590172370622499854725489961488280627230331995237698196356760522541844989998994617899549933983698767885888867211486391457960631175059459086970283094242885850742770449533244408237844129873689809098360488265637957091703443051357476088200554456021054472182099332783391126350764090270273720975060665566794519794280036225896462860090033983718440685314980759826997298840924665699298081545603395770284948794572678153803874071443337938123779310707170909554923634616920554926061936389071897017525754580381702890942883775833684839720115020807477150304595834039904636749816071361473337308108784279191527983061464798804436784799011123657180583898841034322585613576594142283008922026356467069457298084859398666035326064568986210524526686846325763184067017568392978128684727602144708920108506920371353836298389938220127707336742336931173246413048950380796692133695300793754708643119146247805192419891224288239146501495294198871752830720137659779955206741196735848024029947683411425757213653986050623304520831860923021737468159648246660348308388709211924616372490759020272384041210196335439361515807352494379177302222377486387517236947706842032857747819545591616245399550129991536270581618917345106390347756958838937159934587139455074674487095710649431235883202455304092813299729825815228423251930897436343511851619478017077986853705070646501387409871582619199401770436604749893512424125350945516029593229792222023514268915893017767812938561763691942908247043919660960832392976684071166904970859815515888143684373678335613118332296557897100995467259532164843614879957954612975864094251392075010426796757124575360225727763827464739928548811250270769848548312039635314056030859818478909039393394969123041811167768839089730461371634640055990547446746987585323106989833369189984657995816679046419417906788284255074486328770017794898451885653647824840374911701742498008307859331027652030542106548876956247157736677620375394567960448102627886741935729479785068444821098020940927242061984195362560345904383287056171652780702092903522698088413255325378091646936317806511563186714450465164141902842274733636484027519067188883061517924134616226612655355505676346269763664875609473422772217810073003747648328391733606416097748126355010320708619206396195802504803124842459197228500502837174404680667461667811596776067537377138135645385241110676632919337811821830516080725626006819407957543374703433501586934521595991684294697527884942095982194211355460781573988900393095900242038781222640139667123124818682495539140457667032437011724459158030134105497337575432392055408296333393995401129736032944852826870602026510728224819938662607058983696908225777608316586205805439806162031076500516893187137402260683555629454477251274828990829397957345115184195840885211981676618685728054989148129367984515479894515064906962369017034600629503393195162602022046282637076748969020883151076799262323502896773114910767563405090076844198442120329684064283880738226618068550095213971234215942320346437958342848507742681282002168647094340269969646847139934472936873629989086343739101726239805909660628700392803352898739022216779610907361901594262950273829931829721626096831714579093351969970766444259589846277099290677664029819320005470467819052608162114718411127168816351743294190428442554553362384934709874624099334906306915812199488185804586670858007141395363053334129862919217066832286298208415932903500342906117221841108590111970301812892535062025953242191564996959359741490493692965427991262017925694280270224516696688436943588291189801402999886691261738890331949326449804994044000590333675014478767497218718380399382835771537039666863010757996414551934865093365408281125578045108354720522116431769675579425208070944643458417393083032887391645836727303650343270886417930022297566503014348214724838722313482231796106837702470483238918391919958623702119269158858615012193573562037319323652515636314830562455703623452229030198365926183551708288222408626414803842100650721320926865660238983469166927731663515216578689663580831938060298899158948903039499656955296958756906428118267362730996576571698916925755201104915283709598209085487925630428498621807074677474162262023964399763317117135067746847453169772079367180925039900354715829623692872911709767589168072157487506659955491690134607210959951310313068728921619903411380588808487689992977083876766949454635714133787797593920052750942593711214504347831713567187323871544792121586479077937881318868716898167788367926152420266397795742662801484452983806217246609766611944990957073943314661683461325560748199385723314600773622561494595049242802806396967562450389290063134030956084033348671136932316239777228629073121723283919123568723400018293574841695417216113182466582930753849276122842648127565609475264253724927999039260488652253948291688908962598991569706776228061941896919178506269813786349613616869053525328298275770817990794295031809690058680668328795983244409070818220046950975761328994221017656820110994961499002801305474436427981209409599279238653251627644157235151333538966675555112038427500025870093382885260729016119221708147543826867248342231922352278072161246620201721749234435609039928658485081567343261615512754695859967724911656104337851072181495719764709231540626642887697577635345134855022487833944614867816491245842027107261551653776731780758654344841564671313634489365102349604888708388642885855146860049525622661900793269381690730224489281302853202095031057978631248275969245818542023298212628081119152848801655717931923557054191015652905001350213739992132600544637874094483501320928927937636421776134749898137973162199796465460275471357172363561584186752091856453234606833422603839849315154863371464063622074922400081221619605369520420359419517020346009821995446538541544260867423105216298823799761117199514412324502228193991988930292062352689069198621755507619153246557751734622946636712387238245795239627766521292555077775956675845165433151430550428362393751932894287665258755303614634432943174079045730268137440502099233718101671070501276698756992806495893379995271016482391500517625314624040473361283185556012221867174454057186923532124701600188887988244470797267474283930566805801443232691329681799511454068917567740357103353342131613292616439360742921916990530639901242019555951889467814793804875820649056144051366973877514066614622009201457387730438813906904626869790568076720322198023130138212826367391901446423962852617848123524472636293807345477950782376240730553256436663810944914758646164225028155386410199059600694133304952989398488947392251487343800460714968166297998115436683139510536364964289264230386459510969478591214939094332129833200369884552521977460443055855051692831367644906636023538529090591265734338829777784530131881710196942905841454446557540620693411823636195745053735733336191924187703392572992743406502526679523851920822090047398545377764400140322308856522275876520943514810815208820044324671792180025052376827890775162347455640931006392068017111417032032885803134857768389474379510399932783360299555694442840278507788476957340646571009113769702079277739697551370180702002984540351108688261261564969216779510762984658629090463333843249897503248444575132577057183202656823601023579186374952566710421541523410422776836802091555793698722346072556035219925876189679115558798676525853023310362993863270055439899244852103854350730582570180007091333948261949702125005820875026675281324342486908801946324848530718107383071140642984815325292956662084226187792340361146590331011973712612024134888589795221148048702727950825009255868257097829514645187588751769771794766941394086881209149534358848861695020012190455068389627861172626428855645389342028669928553436157534705337490807723965780439074417489765794533139214288505717305554005397750260629452038387795129891299974946040718301558260382388259537701479583710036657825249647159189373998990852043046440120444491883858997357486461656854970251299566012502072150494619925019448668042914368022785308745934701333075607273827332831470562293255281168330908800538547128219170872672139588674175860902297005214733751886191453616518357530969673915514279475462131813281184995384564027498641632867231936633198711037039839004353291443394691374627645908507443588990797023054804637043093021827936223928380390803261473915032976988917751367691035278953986053656539868952766066607494082843208312464007528765575502553485748076692473672758303277130941246892381779939622515558285386646784291259890221261547846695339268020322690006107939884660636489685829143921333488770279882031911655040194149848181893632295291550100537722472093965484454913757883162468323972120809160224857155903254796216443431857155894209418002593619295035787705274868180257511569665930372890554219500814163560117638314162842649084562190790286461107070960163987858310397551301947560128996068093213222360811493971851667730078607604752462091849836258451135556770009383894421535757088880410402615045487408007854999135475717409922907474887809063502240135227836951396383779806539510642808423361160695898391321606459735191553268251806702516424533720839998144199462417163138606987626027841818396268749287904364275703794713775006544497554265829348411233744057419832905596578408308893322617092385046711017612284182358808521669564398321813283357745293548772709812259995737211958813389336044117234126344177299218664935134623206670360640304268696605532509407958552081244250034973251440951671115722288037543406165148312316372927853623630578777452753137348096484462908274002773749162857905505136981396669630460424950209139971670375853646626304506854519565143657359001482353005803974365548243505001451696692120494282845256341938718705927339814031264856484834153627979032504920495195929703598339756062766083374798916342764334802057285125158423477521271912133458173485239824016780920831146426032763704701589823299928613976264880024920988123351060152386165782988297903503990925234996573040815444790506683688112841189476152905980776398586640854626603982883910702568535691198111848861275276122929262128632986987727618738502874679992345457922232875430738514657677256233399537124103497251982391976617878199800855436375098881684905516760764868619779191310298948253967264885240873848579383352923431261858406204119409385178604387334947149804796554997422239691767843272343910182568361703272712402933046597244054143500207615537801379228375281719050434035352523336380836406716548851024824705509601074675426621940741103619517616943611522162733092024795305787153805869197239542067167170410583212642160003140453548730090940163813551452380666257916424809706163457118980098175617866803198935006525115973298330341853318172937587505864246768665524803672155723392489893634014222967482422457733019587166810829137374338731496869922626356656907378068572662338407729754592358910834598151228583986382757398588245571896627413690230200807160715537733262961374846055704993263668656939536238657412010960399909595387592581058199513061598966287923671023768971751485176220181547471691608609577830560678579514596029685806954641398150530669089218024069387413269751302773966068019012122105506969069379252998496926678141041788710305036257236676691581191697411968700521044610366543164162596911155246752688364154544216620775836957362172575221809867499186030439019178171372685017157862846306931619036552453282686003001636631669493505963585588878394980474659967004886811897423209693598367073516615147209558206472919444271433491408084292707794032914491235751065274175801650241529220899702011335831437034032880612664241205505199083418597675025766251996514628492251363984628411996687669963418425646759306443800557874718747099687479498347885244104861714208940273338798537048993437932080382889098335099491827291575931437964437705686704470044299577417724224593577947969875599462301626128213462814049913031220689101508427946000222873164367641164303356547992809370635784080461419089071916616055093378984071477302573621049444264437662783439958281498147320583316395044062071002207287372968656592324689825177533519348656814629357206146094436258928355567665536945250162470692106689551805334507639492180796910875622057220481284993591453782119952998548489619706505591435342082487104173275958985087111803075969290640002653026501221836099918135650295081196623420785577261873811445929480205263836792938268064445133348082956944522825268754168298429148050211321499783037449267541420979484091415118952309878340408221694471004989467578819882459109013353713962412897032064851118246214079660541368400101424400562679088467665790106996104187288869881951232077293646508964021299585325638250069023044085233507518627070442573741424519963017225710987764693587448108865967307173731624135284842588341785210820196546305401715182961658901102210328802603320723708538567080977561263547374531957571051515786910542972827270319033920948749884655402113092554351433226147308935539444351698113624534641891161141069788200237893248224230716533340119221696370005127136236406083776716676203440853985010586539987706240415568427178147827541718612431538300091777925950075742329160068817199833013339823166077656747927780810218493267227215071070511396176564948538167939350658186852684408152542868612612450630205534414470328584142598764528374641827636441074958247237834361007075303815164520871104103561469929491926611702987893422908480679946902030258608795373671276092712629794210681437591562250341130457030543521305023949091366112777447432962272671929844204613237631483073752808978871944266620930814889415416405114035693640262721280254618640696106238215514442175589707394946947494719752769412638099271894614844920207814512921748526208318056569731743764213732427466732408654211973212161335359614075903320463635411061255675268416825934068390730298209190950912376731051599140396813033469051065407390577618357643332255380875218348248000269446083898235051701285093180596209262587030304783526441766738453360755205978590113571498329896335042969656547691159543671913836415916806661634460638590171226165841709316739011968390749673563162790847497192759112717632837730717087529633872047710293651659491404607961597988155594895106656531506760417098335619550666667696774571458196974850752589171824065320474962662367419302379941626266981037726424813825371559567791552462227086179561436709473807776099288051525335937118298928444529130301939851422374704362213062939776039713963084820451342482652038840143230294613821572814972798607645738017691801838395153205660795500495050369900388524713358924925477633659937761844962638332843150029828818532794795712352114704941080980245363799110259136663868012384574581560108420119312452541469542219179018396497611687756545924079660846109545166601277814342028371071536053047918090089761925853247117599554364641122413163605634835288054689274804095373128922127770917009628367635372502166507644946209175754171354908639571871813139808629784876213942627363798155237834480287140403536869862939116891854746639508598276683995894770034195472320580270345708257649314149734925653312035923763644923612047885776099077034063819742955027508193502933267813236771172130183362273278872944926423058934836158883141674040106274139537295809656425175065025717370590313485520536167367573199604714475746560461610073651354875487485856616177529666223633766602464708976831149097957547498999743019928370393834049582238914735491134948238265093330202611245928082634614918955772271150659829161175721550728314923950428021472188629932944891128812380890089139676389614736871674125300090877671608113343109077635333851282909946109915402613534504861532072409292417175122274386184523791607411285534806901248946072067976385413358395652058552361163531668056412472675507173844544979721220529757930646566902486012695311906752787379482797053628901156234717173878047337664213923683138776795543028858327480492473859804920503749550361011078301694846080669162637773960358871423118187276176982482691560839287491992668325597371362548308424667571792117358706484037988586885139464304755674457998336058327562513300915855812582661891854340852672706599722873985277721658599320642287707288452971013085088790429797933403752085633398265518462965369579084217291747884443437486778984479837122223996640555624003558189925927952845606547786997328869050585927440217605032458362264056016654925774768630075800594039678828742200561686171129957535211348878784807998665614808363399558246652917849816363222979541591447521507024578539244429696224586406880049015944467465529310375872381685007266888384289124238259131404593713802337377873417142339984008237032993718538858644825924377180765574016850162252776335769451425442951469143063054282175996333571482291663861887092244678922083594631189618893741457223151909927156612850735414988923057574421764973857299250098685874284758797212480706598086266552917188553009143683938578765991627201644233409837440125937666809538341045694857895107829339720277496063874455259047402901433911698893740267258680759331542890152171135685827298717673965639392666452706599463257234933750943826628815142959017111547860255162244645270790897588915105759573611428716443021344338665564537671895712962363903757335292723416157735008592776739418446236764707854419747026970783556117636586517886289959855526083255046591047167875359347797804129780137778497225468631978848468366314798881700028159142782230706951049627021959856926080943007399214959774566062599809891589058240686908308140158447813086691197693346053341097272754911070801833250222127012453240281203160416914104297068970954705295386565543903593029691968883520588441114662433575119118666903153834470222684267944994771092141838213876712327779794516313673779310461641584438779085608185275853272100567346523653937176799226437328415457971173242642622507912104224730326771699526344603874256302490851723114949689458048604737487217215804202874127258713288013343890895810070884837339874335777960789723764940347306600318260381464152508587623675366687375700961252977235320068504280465727927644233636112408756274980255733193958976586938617980816294418296311139138675023213990430673251249153782995344674086561445002338926376655990236735181993840878121685865257197840164830138918426065285679623098458581615038376502875577587083731016785574826604526652693479092410766188298705096122991010882943612164885493241926199142136492714264217377417121327376684463310258749125882064423134527809992768790866637739250670916146390271687762188883926932779723819955288258614600161941404191640095697379727791247352956191722998018473358453467775815025042951406177086838632299468154421372580950295474591723038499390455318523375708253541778700336076304662505767717985263854131431994077762178684331123797733305237233149142038942357087939292115048681635426384382354025244232163089937029450768240745508828493000721359067370166608019416441343583541503314704058319725510391219363292736827895031375347634585121510352172916054160251626930534988748598142837104022165933137998679978111829301205690298741119506948025864230337747184469046676858999122931377944375011046518709113736044239464194881152702243300988069659347436027749170127986574901564161637217319831670040080069511088305689188164931998312261784190450529568295718440999927847587420233132114527988738557694623615425086707753549009435550256849874648553737080652706200238930407141051083297464520099681999552166636694754643988679232785329623433330226699526964385187195880096664670093825423119584193509856278818976566187216078674319734511218647305457810623144869681722440610494061888017329681670735870125532914388352891644385764964208594899821377776319186337417658642323960466078011729426625818239760373028788364609581312895774548172719528301634299638491884304994782419782880800251528512613809990358450125818233875529180262995667909752949622277225250680116187244454641440359951937788018917946537170245552585646101556739033792334381282626725707370217353383956239911733341550429859725536136840471626702725717780739909796426355002607289231966382903900301080375088102027167599918986842183137864988236725262221366782400736627782667914734845765337867372027302317743759906769130586023291397854938696038155056989953312631853077376451991358860593226585821265879951747919227434646805743884676953086750269368855854728830738611705075770443425478077700334781543570514762813279155560184023976199256746290684911795187925874144852305044782288293056094185994559485750940082346824072844220385382702225023204858499000485281057665334479144350354071001584587813809068775198152159783272946558243767473174916759308760798524700238366944891574655003346232750364132167947967669655401325953714961627235268087637242412820504054337235447412196300925434762978223330333732889096616894399141764071262881010318101111337204799558360808051941610496857051667761169965370745676433990195747908250076866027156124275950822194647050632405582976730092551887558592510487740286591961723965211181869272795231444742245760634579928824541314230558484377615854713420264452892283033742995767849850738246055424923703648071988534980316324919123125892189186878039985334084180176225876817927066284516181780860351721321103331937110629871626514484143670647097320342021152389248405989281297303333199494668460205098730907862196552290553743398723653976958882323461316107608390678374121507871804696868952745321195906253640611896538219328427364347118290083755836698947058907530832210778397446862004970514151796099467392791956809451781396639762710995020510088703540134768539898066392952088539614546890617407924898141570939877182596112077460578760657831807141540512610394975417884993438095329402759094464538689583402496719150463931149833239058137442923149569909389332105000867162715122985933780623871427358514473119436937763585522911981679093475711774955073480692105929240857141388560462303449189174319380914049552677696153288044324883530182700658273572803435062329377125169035415977012385706010369303860717613153090918359454776322443457902863279300451426103885559028948874653550527507808868804700323504136801975383896475140438736113591804635665411779609498738092588831301419050541164306650608084020578839528720258154590512042248427751558526316704719087740193996304629176194794449255527835043495486041283064266758341149911054039274477898217290681174556905052045540691887987923382982436516750850522090961919359873710112734514916240611692314678052690278405175237683768712437012451759670488220666164680753707716073679184005832887528239653714288419177762702720257450939030246363463662810141996148346468846712500686160853880146285177061282811312372719963151259010810991736194774608510004549848042369347622455750800664150095721061290670374211912137040297624907797619123719105622206826519135491707834326213167121508151711231241872058132590386829096398078806419342418312383652938210381821496520940460861404367651334412485850424324635206324430236873988215692727100521482163754764280849642266575878392193656625204026008275656090498815869681719088107983633586733964838323569016910005912793339261450518031301433754515088272913993244658864230702155026878769615542605715568645139653998449189009610593060917142893937662318754725702528389081708145776535105403154666173705705518662229854281027874883737374935108012999511862900351509535849338032739103440242699813214340019712881695607993226008211827551432785614312796785985296124542330520807844333712227750396784118018411885089229251298696724337269977080287038577053848556348173387437806870266256941943807344131805602776449133677067173830078863945990822349063509939361993218219849953161415576374281025138922588139685424394034653749391865178289311789564606468805312403969384219940672689873850835807892665750547627073891258577051608311312513384506455502562870351448572046334051328112612248599484510425302288472396814136786219402234742430521996561825092889146683506383644766484356535844132787305138922116705406013735743755347682649489281182593700468056444671112826127752919490739393670971873151338924229473335792236058832049781846519338678569435790163541636051912956084367811729371867403119979765326741787022135272338857553430668148017408427943966310427336347850333179389755437994548904507582146262423834198722258902646659297137798803179543141426882439788367970344657053864878097466041930151455370696602431699513458600596979302080493571345387226975196143291724770005113018488626871915813642107006464769309601056034887273690971682634368527592249468750300664844223989275870258847292585482521895707922997350773594473801107927451451036098032162264868794929492690882255784808715376153657367805442924257142451363285262113940658866754378125855166660205418324072248264768595555137860656222005737605482207894271645762264540120710062116304442093096694012321412600933573954635697689075264139626157827723154977193635725686159109596989352606987299652854770627751936228231644067130996291466786436024841661757361338501860793478180898270369746276411863704908186848609077460708676685939027569009177638231185901811109516938354044881810968924095920402923429088004305098079228311182216953364533040518460152552058122195909766806739827641847117044278572969072523345633883174706412920882724821429523489545130968464997167855438818898238341454494642469237743552131578815342367074893985584928572407021572810390861825238721317425205924010719369503263466496727131944140302682072039571282904214072254592514084665346261875425012164469651690467432881357356632706930066810799508358391388533693577631249455137740079724180922147968055673247783042230561008687940783817068593705502329986494134304443718264804305419024771553080218302478435798354082375973588528219866854294535722787913634755265758692336184440106937505537453512599556612994754475065914922727461253449077554840829063127286665653020559830764892796190777729127614224088595223610018120725709163301084811725821832085574237410899492793815988898998063928583869613892985601888807437897888120759052817351130452673954803902057486922156420698042525690155597937789271783009954234559631140992651335914072348000997455566790261238668174177969653382200637589446978940082592716683603085910219662120572496297607791888554593286273890653600950221360567878082655595692129567274009056563167942091276158788070935343737578008963063459464730822801924413430525386899392829566413528032860405698406184703984606736890206645462973367545425193940803071387915939382312938637191600353752750907608517477689347327219233903932036247924988266273877817297882470028489800914200736413980727566980745603138275053257390535454468640476578970186367764201263941792708164983848437733260194596234658132169840577862604580637028866414896087646663820534216214451596165693107766848787975937132593131633726084344044029404382646749021232259328779103845775175887201642366539660329426722798507295748188521676059154724038107674884311226148746006575337114037135548098707533402335859681682605533423200040417334406317122636538830990668562029692286535053649873735413414124165485977951700109658607826953558544827000308951299017373522462081308685185208148386600545509525951418171297101145926382292749468344192620585540910166487182364178008005855938516711966480248428753390813608051100851327107996873372332288219003292952375913454297123511919371421170045425164531411143356781672298900593985684179471247559108587780696287659710058681097323585094768833481619942887816769018439244100316908533842297000664915573731937688349584626459807285011595684396107900506247350739527404622576276685720948581438116376628218619030043291491618214726613425801917660815182752336444342419745247032152274073282532913656968652587721849830070412779613826649119620960151152976704993265138577118966976107779689493178395704408007043420683922852001443862560256376549556384440662594514632308984476383636136793792806741725540564803897395852878465532923710121147603890789434158740918808288845132696091505277842172056545064160878196371105935907117297144502796342046983536984297356768204832291156028102686378554455426529257142114338190320795740815926315021215286538300911582290225596552963988802861563059640376924043190753891191776848203054060729313403177980129150717938532988491700904604309257450413960195791095144521079383513734220669693074683036784787715649431452531928843255618594822757112704673424388452925920976371838709117874000161110626141513929471403034801131960851257050516886557282888470713294819385605884226811929434530796892204247261435110159397755026698348348503549536092499367655723929000432190299430412629735878880169602600041989800222931853039952501023631216054532539345011982468362997885775673909294772105393702230607113277237017673468798802504400900106588062876782551879341208553630649481653349108316059424513251269217166072847048847923348631982064283349713563776025116862332377799622257527896575967421713009867761436348663636947471068420755987806548349503823306928107679554854697106254776958321033803017759326425180798454204484602961719687265883219254989151504982935035049423675292923222273630854242898540060226011630567594491343530500221648046660250902327986151971586730023490636163562220436291955487949666984091676981613774701621212953777939039799593631566759411215561707897930785323084877216392035070235202562029447223985277477530990518178161805978789827681230297412029991352467126908884545153887340907142846134230266233220254758495148671006297581955865845389150167205420920724805631724901963815436956110496472726278272435772334644355306619108943702019470543494965545363483781331191977959688485215948475402261082394173774460900959452186418865672391167938812610270252909952194217275845488520349745146112662722187133818989484544138857553254877553445392827750255320207438729585801084352669240960026689639656449850862777316277180648872348550863162160234393145409198808199207829361865024417978876888842268390854787475109326169758616264280617253866508560679006367351481490342483004320854198278157843336320555058349740259978046410860682269873532957258474799705550809197283294518891581485305855199771863512582343786173832454182270560948821934225837627906970472196517065814511409921093103130821965593712925738599443090835390432764763513807842480709402995979586060986671846636272732359805341050350260472036276508495441693129269697629492828993891148548179148295414248789291860629388828283600679737805693191725656172908494551374773895108235997163130734859362750466655438125634179725197637023297875242536599610070009394533560902775351213326624557421588510401376065197173596389137397609792730699396285414516610977689217933039467193738031094878616778990458926736223135503633486697861909768830511067149103712911769252851246041372793285879002569499929280262888674435303478262256560980970166875840879707797990473982325545096293068238842195589375010744768083286415844839018064698231732633206207644012132703620056362948530654001393468441992283178047092515623742988600008107749700502424129488794829563286767608705990401507138975337206380543451593855865720656746356730026965734239141424486585491611482437615451489959997941995060525448110039779188821807403768589488486052321546706679412167511453957919182219791590467145112341662171457165507288324750601423348945247375395858636226238209537631928577048700383630980160382790519745017896308831151273761297608113664308178147430576242120149316804606381657576287390999133631111291715981371016703743220615076589469174939873648225858394035469432512388888866769452607777080862797003611503337230532344276442173491039818671309963163216524762798835830172605510262936989820027401765567198697217549056619681207442373161949750941411066977601062006439806576676125038766588628215067460042649301856057986976343109875110524838819757496028188717290372845711407536408504456984845907350610144073325983429132730474937076147869331681040791053603317908375317692634985614917560227743226311709140265493122706175915285577675241041985168503652221904562996629734951285138380065746777285143613447158078989049667575800921498106159234483140654547075067516512658376280607315687088666073592967870225728253314861421339077554973746556321876114299658715773744011843735605046137657721398948922271740038676932186147792018523997241450256199431945177165633835471824642154185004880610696674160183267490650346442388026483795292120439393141481973043749855906690912624519674650840614488049213371498639677036793722998326968514201462397055214889369615927380672312470061669162605959502371349297334122441590593559387653161696364045324710983353877371264123609701474996210057061624408019352282528812057589420470136538433189687712619785224955320416582165215989454434209045825382300152739867413596386419349617762691474539950180112015036926176881071514924185995403950480626195273509365533200876516046874320334003710387999103440579160137256597826791082769928206614154723354884489684147632584787716195205019617740278536021478514637707119722049751471141646189443312206268006575902064826735695828089750861332057091422616347783332199972187166740986760775856658937080549281466639572825781693991005227639270406166347975655568133295018693121108230647575853061348511813224290247921596482546823213809066603571170212087127587532687607609351177463559485023457282147627026905334052025330267959868477647915092268041783365830097943808055918153205528925776659745391681026803748570153622807832643618284939613187350924746187598032212625921604347933101886849844138865554953410945184132922746673995131200584823142681965182165262386429525350423006270175710118982649511695667868484335249241319622479147352512507627520104926833909874995852072486895526632782627311902250692814564166632436432134128351670755916229565544687452424697443241165934486994433619777303727764704859323785503836571766749759986378929712518854242797476379935932653500238426911195953854894935871880813008272574499630433671261485027558957921363377122599145415648128803793827382707739195603860215987291180063043082181824266291746193342405897552726161713901484217606771354821922430090146344998089816246928751887445423224550115376439668395096127054942407374349197748022478454525759547598795077262170452769404410824539173950021053750088008075483636091441880781637349048818730753741729639063136527312981491853173545653940454279090553680204841489951084966447343381094074843976749483214588374819912281681680721127673223757244393141124150011433978187230938442897782994840068128268073209148711772068504893779685852216524942752110300834675559850829201139229430125587372136926377428822750828493625180635541825759009258252390322706817042456533109921454667997459264614363230448340605222342590795893444325488728788913440660045864906354968938046257009275667866453564772465202182572839911800497372611111028206144663180515805271863605664552659245059692862053809065566638430389279946600266138505276083815705115699976689076269413484076738709229552707177800877342740930941331016074293333508945280609818759634670027737418181680469581643093232881413302096645388508575604426738857282042288188111148925957928136539611775065046122473410384533176632460419792435393697618613502461333194198554169120803443632760340993728472404450688073055814813749562781384779984783124879593749152934963738053427427534250585501033269710864256804018364181707376532402124079590451851050045109816749312799153015090845136109822150641148990995979074933959063987680580456418485406181121436304112501980974710777455913013825128493760730164344264715853430459915977351155821508590182342595910057063603070874159918354660315004828730684049169489796310897713266107517252361403340968673173626917318445746244476903759041796985731763644959999851753379949316468616945408758517680984336853264495606830235690652945754062008283591185577862352762490955220438876991389687491065193073963611038583837060286235944646439672146914500458964866753719396094865733959637390681724212128441760433562846169957072941058022121356961537181370935315108100215776224527195770431607682262269985453301844440588141856748611286822591349114298667017598168012004800944643084959542737200769433252542149929782720832085877102141288273537230778594654039652289930927501001058529749586500699055952755283920325857012014369533520206925688689732152164776921148954189337051259693796307387923944047240774992814066872734000118892435365233620422912220121622766165661098124464275722016080171362290332626336088120136128988410865937435907699734193802497948110487112962910411549662329034321071052517407562793855820537654665788757505376874103492556704965586066150562393104943866179383390133160438060306862837061472438840702278256883191711189700410804059106639300414273084472687904386468184854912064112263026300276248266727797931370476579075079480819617779884885260536844469395663648918678961052875523313450943275604639918701640383538943641989570272264193524298365335404935377761119603100371275921383432367046548454317842434219469086241855204311056401601602993836276616343513787518164426488047496956240004994878060151367478918011642888082324152498142860507476199217850678358922487619755177742525576004983697209549239088424840108613541178224104581084505247413536300889037125059441220055529975612508476683072082238324271703582143295584953607559217223352288562529282742599593446851512553874024428142370615931051980021196666471290301473828577407980416524486472925657241215241193584021635664389958204590882986072037734757861994161657943008161150212524774434444298223756112184848200650518026850552468325942505793860629936056778977307815975753912224533680711548224378982400987091530488444374001708030083622118687891699787007465889041743737506084605683473095501392537098582174187011692198624296524067138522455747555362001504410321672662857094419829966038246608120093993045037386437583839586322854995286677958246217882906546683554605441790222199196221154146251895965906803679231676518464677731165474571116227842937890557922045495717084649932280090975146129439121931276631578573538991005366023143564547709565114137934565517859569224668070637198471906345652255165255470883904167663494853274055579474837986678286140062040826709137335378940952441041787366105639060920567205263889494847542340155514069279108316828080418276238471516023199503947413430589194015529365249025608505691151927255666820991175346082562625545612221575984455823819524404983094956738282255842634917460527714115276820498679819759408368730170442452327663588445797683503606488780741912222156321271660177915128418818948181983935238242314637555162129122453990718165334841799751842233533493277403869147011004850978701422863336151328395881468434357343833705164859441986839757783096709054617640282252893874950631019429257936988694720005957686140065019858452098227967455458245555494910685675722931439670534913507686827628882365049733024154003522851358578025115748822236693338263640881177804371575592156766931790464075144793030527060854584739105185339394290612111006603830111326618741242128929153235778172354304201161335053647736998350111247989756844882827688443743176515342934462489491621086723668001286665000149552396372829511463038032414006319750578974918876217139767362683011547925722757893231122140621175769660695345377324067312661106025997431061976997795708457712749964770334086930738200239849951743668314920958838219007063728497019017735378684079523349288318134186338257169826844554718374826681919706973699916789443102160478416530118157338218582152240720077305770843508603217440881068571942984341325557022904508557859430432354585824139798421760048187756805288015669873361357233095563847466208130010552320757833758532411312165680486810821350575747831893209220704461732363767987065385292147490850657907726036454957726647484691522538886585491329530119545479413746955024675811939096524153213089994252955214142184104729184149794638654458703213838153027196738483463976296294804398611016198406008944309138597538352445721942758491069109059088678504129172137839117752102743344713897793453392470724148007066053604290954639023296660191385825176281407330943844066207666835827557521698529431010891008195020685415742205348578761661647266976862886170909883441096996969181807993518709320068492169679026535104231044516310617269436344267410454139117908005949933427344126579458182992398551278896587911857029071455042172896571322638703112947123272633214661007771278550972986293506273480693055280343873404587768418092737258746203088999548484055211691563004152839716177543993572045304683764731862337064794613769772101009788089350400003313979419787053289336550207553344845997243380309357538548912408811919122093460409054456733219759552012888139819836851195441941401860795118665992302298702217997443149007001212295203649459672564794604549174956187122766860285297842065135413863434649615669499828003481031524026764670036542550302515110997217399391333426084995230578429680001681452600413714339579148877801724492323833082159781287134726230798440130764019617988305520059948210984429981913871671561169995747759292100120151597628602857419854689043421123242489752266493525498204273474032896075501745038566843548459092331838418301633676112444656043296771900250336786474654638520658884036860180403947090136525486285189233101802624469151668562275338691842094982533380933969808225878869783960169669954750965281050661533064167201639353439086224955622347657684320634186203281985851170104942239292060328147330079473861902200828877499658719493041135064039479016985511474956551830649620161068021253952671811801121263820919321298206036431280293614117351590359209032836281608905390115234637643529049177551042020984112813048208666597708934721950389249313389396853530545571231073764128619246025218970516661504578291877661537763498971699630234786349852098582769523630995720443725555721456314457107751309172897662925252878076234609005698105860571950133847700698991713818080595433466985127124008187494805997365951954607734818458521795933811695321710549079224247480316567232255673658488571502426782408379911642137727854348743965760797649140416163515973048475060974034399618005402722904591970074846358046768444762054815499491781100936561374475752058723252665881018014755566928394342518332271129537529606777914982676118510653618725196423320965815834854276675179539110408236721513391311262487895308202056256804825776790064260071430459419042863931661186621928057686450719720853068947274454255175418364373758762503126903957440706646353354488380496145964724607790301196688325219029562195451403180090156947844234672430690771204511847881463204249187875553418212282811176204788891803803758340023639904772137526787336227542776516344660321159359918128935668152777221404683485647442082530408317128019730358238839629535916327366655712035972396741799996372423181063058263985630940563123589803025536041281141618592735987217056867561164148300294960668459996748012727327591105353335392742389999320256432851199659747889762025541436565499942046899248747472710897640094454256119583366108598193703301474754349691274505567949770553774941754127891746732510424553315726910995053095264586609330860368963415694134849287038811744747023225961443899892120776250647493027232718335794067821287957563475265823627250754691387068925371614800069663321492551461762404266316041643600052145945042407532019810442084244984683384875417588244297636944308563859405372736059537986730068120985723320476745514155433887915721642284322178402716613317499453644664387561233013998171914482293285468238326447243779669889730784209435984511526017253868202130601954261056779244748255158877796934452652847888041849298331438785653639328958522211285691291207384175302856908473439535239382171065459089155252214865307815073942089686233208091512033954917518601899639381772729612504941737800848396506201136212363294318783863820683273803904208043976769205847882261492812853529863004627127336407078446559908537697227073166810558868033958466031447678839584982897773037710966285382413786503763465186195486855006549977359651811597504357438545334668461906790204764137246062745714567722204022713472492783322569610008843648376382844334816137600883567667285738448413539114159687888129415921706547494824906546919671896679378735206432506374318224687775143863419143861158778851947840139460992670770715830134828258705984768157785771851389226713511901084575153738941257032678611056017327625395078117402116640251014286714296651014435900699617318389225792957584790815974369233664005743814512876421437436190685574372250788868328184844459213646859390136410213297319825338755270759624700185194688862234331562692338906481435549223318176560367913604288137719963517608585667313831793263450158394831297296401877443239432135147496179439269476336461614879482665941594862733038645903102028206249830253764292315793774929717548303131951695310227958480757763676809243392949298800435807205147857279386085181018123751883869320212504218636512195319948034417898331684264589104839761956381294091772692308083207909403665790205815279217552624034759240817673416833985007217668752829268506091821273301087734954038673579674707445434464717321898389899353515549741703978482120739324476519171857447701916485107893998121242759827820878319671276675078509253855409713098245135070861275821167283537200234235163790168190773632943591108889596335944350498936002196989138265821057775051231700861540589015012440528709172470526860929310588570156824372891926099133741310378346147724016062911135119136668133240657773458789822692478930831753059892442591773794891235136315687268298336250870408224723111083760001957280696433408303482187703250378190208809512726390786007026355087502175820113583906296865461771766380392392625759765966995918569504389039621029815582923891105772130333870204989733996072159082578125833369450962848983159606344594989628525735671036873256393829223675159720032810535524406184800268933806758896238140214077813559048578713562927116147542885805718304061527140735864923436729698873150622649819596700929192468673968443290934114749120464778014506390644825716187916348024026883628834971353372636713261078723560569117367714961234535013248029598446212317505754302669323500250434121472619764561686380780044864137890783368298227297294886861857089816568078189382307927076124784042766474117938012992445752063536013627975978915855202895700245121931023610067870093513558466761491238095826890884587151661612819016511359042959650679802924808855047816959379318370724087214277293183354628474394232318827815727834462841701771134561173065761189367485781646498612107627310767360484837368631647547340259506232351472257034501719007614775613734024967999649406016117560482320299901531551434526396672319386776084650545872896872801598949509011823341472899520234544365303555296869545260877796447272869958660707181115451555463317931134274792710639357357289607771487955823774396412996384918138661565165030712326024706326627310228611554581712422469775997191410098905438992560811051576175925577424151444439245934942763788350652676828887185256586919657741101122240939337412554399625193965590830312373380111119444769301977305050555774489698081530195558973927957271433777918963449236474695482471393353427793048441370762905105030694912317475018782707596055085024469598467665387563304893052234387384219618113497881250976252199795044960941180179587520901216745349269571397585812351078995629538398221208203199211839748075387036615039580235147372001910432952183609452063901126385355041839619529104353998670592948622542272392536253314067274963407738290010623398127400551001529815611903893243986302620804520875662073014572512459722499723550188171754369488404995814464555625690410187678330767435194541684010192964838889633983702028363009472930230636520390977929382823782055729534654948630804979809183653511848771394336122843833564349014853162903349624703080640195413853264488982042949695723085259146171902855623496181390412917152609267480113299140975045300063304208339091656776131970884072115253074652063722561584782234783039455934528899941230424743992506174005970127934754177582749378194155052596368825326991082666818568271820914097177833373513256603017954660415540036563418108359483110885666775227373985039940557625740124519018785801645011724762721010318260782360029213053717995131024497680665583416537521082141393847924429133076427201481384779024218464095396443856302159734161946787208889248529027148611288025657640561358038479202506942017181000922869792024790253084108819365501250592619384556995527823168531990874481767008346135629497570025007966914455425809625346522633260743465179840365069862862112909008370031881756714854930631108076599565147999305893826882863803287851535725748616490063962460235823972792916060962632106523136779532590414932456878795683275613636578921530645976457069457197524295760762617814700534920734190805275164306951236662009596649456979172935996044143096149552277244159797277212590394109690804912619048390172445674416243755450904750422733961583780580641288354054615186043295215161335156873688266651484019119915659874273479177393449643913974459606394735273012212951476418972135302393795031671739761158248202464536100567191066025266278785175850077095032126882051811190281198400951160241232270363093213404829222982526857414816975905957187217469355657426956066592447243953567544806429168856868823840873327786726780713228560608363256323698313441143076216359802253852150287306555147308904096125082663226882706994813790268311920459147785496368860283332766113429775121828982636981690943665213495014861082495304739677889720972144620266047186091541035142391921695759612123859861498898076670184688937080600467940416179711996079790875167029186587948484982491538624105359936675406606614289642518579673423465895371749777767477350054472199379154576265356027232231052961541534994208873115044302991292055420033071142183377413425485051081569002150906326242285776979043708820010495410427112456403240886202794475210379388421953512756066202701153977456060626917226749796281329797672247558512993190149815034254285641791072124440824446449237137363110675182527015259874406799844662687468374816290150778128403489745384869422316139637392340362594861953592189186601689688295179788637358695003730060000836163258104244197247754898227737765901993306875038107497842559521853420376229111729985664317799123240663486756142667391646897064432560163879303349348990125346759938497771947496613939562545589026726792039334129058395154160761872306068954710702440305424857171289952275233598734141668703197537384576960716945360320509921960746219824159491304386768236802161252034203264308196855520544764857686220837850870390237425479136175467384483265715517170497149874878705649878574671345157901569704670842339799453498999071862167900168555432545325998413444226429720084284192094090656381547320683004214091474560049051760718751205971158217031814740555334073963441174918670099548859550671055773682301173942918402613798703498923043292362144538758916577150250775444089815733829808913088255610979763606388850903034502515085476543461773564510267249203746583478161939023188445033611303290669076111234029163823169475929966153325865282196257412435078153725636478200537421404676792562168278021204262775747873909306094069489437371894669278485698773801557056267720918516267213315402262113060230011474777757952924541406697708961830444379697093370903692745217207088267173146399864772552446552994444342540077164660775806116890186034453077318666712129707704292769774743754471307736348100954236018648570859963665601846806776603139475514805830936889581431930954747582909152242230812041114577225578353931484050166884807732198201208912186562098705722300002508264633609420891549577555989579986929900753217214862837405183554863848259983029349264804866607402453452851712140931191824449741910208303826599015680468471068517405568167081714917460742416262684209367537709890296090860931293519334858577910812671363584579343416839231853239496980711276583871875274179362561427226694925079069783881546772298051357858191261496137808011221568776483080274406986349888780515819657438184113945477887323568658962117245828330399390118227152007375353133311064698535536935768359142151411914711103955747369161939444176990226600579434906650465406748409497818295870478144967615575230319256400201435914510657207880261463959002849212391402018381071997240189918664107961163010289793653388947311347094581109829530325475206715783730088859916016513440256399123905854340535598544833623594413435727755297104557760993398729799312017599742249940618319168637141798352380107213789525308541919203666091656777346161952673530622173480787459614057648562333588764212538022454420070966795490043818042564238481900394080142737244428247101422185954112883383995157994496071678662035699584301627679480233892401464418517690929178587078345066448508753321477885891778369366444730820612646967641563328699154395562634507608347323044374569132421812364155147104300339830191831319453789607578555670809633310604394347403655608662951910466689336300965564283964721901869369833613815298878121456010203485464126746480623532002240444797355588865217170420931130520826893139862492230060937769472418611847012719287098725556802538571682748260388758925887638350096204817450712962657583038150751597527000510279689814632054637543585803335726352902536470810622316916495819016756199087177709549517595046411344813455227771292845704694553851642040466639264580445774743540600149574797873841783592585674948547410797504695081268148026373757053587993711749288515974921691678061716182684485093343626496232869463265578449026948265239140902892160187372903466682019780901935519354821048624278384361627247194789815912091494382106575753792068081918119753434864645545710475625137387824737537154618878117378245103460521955235063554171347262338269447278938672254518575310207852735593313780884090372734699344144348087697996556953011607719660067021748120986137126738554402451708024767121765636602850479772632381287839931918804095014284601364488240405573664583578497605964421838080153016621427947902961107836928183101190092773747344653959308169031529135721998766292983030575890507636819636371774440610810384984830673951937365485256114694086309033047284950018842154026751676670525532597665549493274153136829602232268869680210191268585179026535377629885399145436169450038912880117757105115868258334816056876895555513834913398825282933393465955118056332689377747955419194527939591026343936226360751355372469938753575525151101124185158939856839217707832706696111009514443802171538222154889473824784450415936236197251698299364582748432393877938562446297861750070874283329391542654842884571362034686583013443011406822502076031031898156511380944506342251618326832526147096841324357849600669048242526335045524909625873396179627987829367655766790583186026136841931193759164721684231130221933014747332610833212971042805714128993053842132340397286884882122028607063606153612563323034638224513891279546593787744822802426912883431782354075056087657856954093965314964791713046537417811437482347588076330362808429108292438906687545069425152827811084193396116868473407739256835814955054263256906176569087249364782751626447071675426874757840358117328730912863530870746063518428121174070035104516761811089858003741312836897185596255389175241499875420874569335956979948520020562260609235132546193979705884718753925886386532837632327001014911688102388605866465074093408542204412880339111124004762238968385412426248910945778576763448987568886120500656874733908389253434436700360781201868082280822106180236723814979571745234504853378628508519065202071978581403653651617390041023021613189402256745705983901324530486960956206620127428619555507236287128058952275619999863301657208338439134440886050137022394346721084820007671848161871380709440481499528484411002147839602498133864252737260620237164468981953432666268255674500864483868255058466992185303039217530029069558659199387235389542353679567787913810208589492539439429676332510177804673974281134551423412362195430199425550626679244077943221965564728175724000724193689371627902214196115230394748600736803460161793463429633659728034303481292435434477423742317948728492123132150597490719358009815300281516164646066176384897262625538734519300548583646966602258746924649326434596441182880840646595005075159408938557570035620619746499496128211982958273168644266353581147480609692535047139575654214611264905906384163208198331824910368116347123455104973248625955505579180014539577146014767523379439963113199149737619924301070838961754677424834224723408065499928419281913274075264288472929769794222840355943060637395256201696050575319338130073224882527437388374134608335977121212554756216256875551284926779135847475096898832925873619087321449428712073538527583755148373881488583517827719033179595789335226084262299556219982847087789092071656965730822451744459647456277160234542983005227508458530721407756962429809349994491472906854513682273011555663346473757287346643700529691371873765290920098956904727347639498222003665315817518233466823759531375028247494555649805518852866310685661770803185129023346451603346357412094799823680526654578236020894883592404483986679881167051782690206085667907460991409224847907918542221103717340549012551112803755273653116578404551933346679973177522003681641530916871595229986763752523462160242078828541397535940624597903343852541036075137786626729933400831026180477031567824670987233071892896078903558643603206504523359703826262803046372471684172834679897995616780842903067811940880596181508072847371020154267174285026269453555816462323438455579384743846574005135662656155159858690408244292838953791337394383462919168782550470435000766585255354463867461328871893307999458390632078790688707873602978251948926648998340458307325308465570565477109608212187615778628714748853712918196999887366800673959547221778607114657638351398176026943469417011974250209754489224302848257271685842534729766489622778132129058219780551132714331526675865956814257756801982581747576172573965031745338143543108048156798144559100933676811434137138741833033432354626442084545011300299040208303859615215154339299979116251145235755387907752633053665798430177830897597173577963231277938496206558678021510055609065427764749966151520632598783492791094847088151074658082218350069949010405874731714518704110946565988865799029768603966905655483096060157215592634781856000530204840364806841341747337014268940692743547283461468391343325306689225064561343639675042807543319200708200992931420998309431938488850235913708827726443589565033706418356135167952049105854078984502684247967170641126860799151234113904028354386580621835789663498259889796949798740339818371293336760189512351735199396003814265613513483795613054858869686338453870623499682509272221522504095479882153064666961492616516176154452877765872414270126298777673339415021538932211213178410630530259027405929773247614195004152294187417048070189840026393410252644624203477561195898302904463661469201206529228327589532933226500586411302866706644557860945970346361271109685764043541160140898516267694275332423569295907213166865610036847392702872360473145670608004523781020498303054561336972734050297458956304797853818768313343016607761046340999093608033073659649841320527485326535856997876247925627396178040765538088389248660940880662197940153328186425884192261560359442949382234451134139911537713021322959921671809916865295072966008154589687207310592530760420649326773620517121968329965685692026917894953928342427241684908068997216363576278335679319649037573029570684024069118501336461465642956167329969761534996046127236451912267866562485867447785177174025583183678350047359627832469456444919286853948637823836223921671746953487760644290655724256415077257576858653301569235169659702683800794190268489114184908841201627803461388635300371790159104615427901611185883007233007410574010773122818080626662620594412956698593517997544610168564852694064420148070100224326098057830122647103213552155047053875719161010006043742850342177438754449092585423183019721047432369138278754023528286758484693510022408277777925941637346503434473132645585723891391312804637592953474712078317846135351926834577568285780130325715967651244584143139166603223232524798741623704869896306671694450253366109580128586149560734317519822560618672296373585106319891142785339034224846170184298451226720933415520055683136476968872523638435858858132902487223087221467184998352869110466136436979388613895512727005646489829523087700565347285074417266358416113293421813620832250387879453318262434477892193601962036544011165032023066311782909563514660736771826711495659858757086662767916416207739245768572125491548719348403612803545749075609999064860544681064723266179007251889150649300940139919430693008115695925827366162709161823859260846849531643197977658158427772913700563475254810341271655293222061157824061851712557456637100634381042094438971250967806430163326580987471730076797923906918044186358635553232021876481199193605596333114506613571783924428184667411767488484618781950174646467496867507820566671569127511146904427629187754329617107615839049719780657208874397106872461779942663198222683579602783180140502621317445037263911532675695122565836149079401288012743279207625837236284600021506701560398589189512389494290143512888099293433240811278651590149763861210318485267053545696869328236225137421349164663744015545148653218472789353931236222526225651804299844590416614811210993375883960230454445069507392163914979696221397980338783444631068215247847477863830392351880030630195659838728860919601121712278700408497101452135600177119001030610627228172241969106545747251900182840565513245756904907438379447564010355681737966543465029689522420513208394941229404301023046066371834951438713954541761153238637759487833011371847893154906680102984524463125702285224008252979256618026083155809323144090928988710949064124395729146822770747389688865614961149103440056320813072905426550024238310333560931859664873515228288181714990451396541109823414880017329293193962682434647593246006398354137640277977854171680306602522518102560830423292665713004674392601020115047910448493909077928468274229299447638189596866323871945563430752454036391342970104912116806211813594244901196474377884230862140193949427452353274897730545900261278750840475601508712392894071330665932883858034282004479958115190745620668924410603647980161050680359679979752092643618930023184209171446333829715273900133834526167250276300131579501652892406472669143159452668684663443108479711576611246134989601537237157258320216064452001946595330955084118400130376662262120982435742969735202778182069112197559291326500663508249688503026637584796447397643637930270571508541417978935725429153254229501341581964506702332999466538061043833931624814759428826392962504813426128198063810185635066228455686875109732823601052094698024907618908767785177351583546725106010213186424923467801895863720937168161370480770538150646460629704677398758188215235358968377863676194957249303586760876305681412980195575637556629865445678032335981200688087512249914770331559823622240808157966209900607113118376033322559107738768535726178632745836414165523106751104850025120435122777431882998159546513239286552437926626138232108878713768532270673735921612535147593491771640131911951952677621605683239891836032047004766546344290123559633593125380466766942334288932861243413081418504617235551249270118526501059677844274011815964449867256804668801592379261228253048086757771198119704490243541558540008544488266092482780255808696488398396316347808821476099564704088831923596283155310381123524795426509952955809624233078282045799017601587280601971405806234197035238521527778713089867879768555459426400490949168887974936757953319644710939027792681483501129139210863581372278620457730441714689879735692118389205210782035167973729465271712757467000437738262446312925474367751501813498248315599658078077304494615285214812692767153289069000221080621804807031367894561192603595897096575682919155601349225026531125395538439332008812290194274406494133924491825290042547833987150626721993165351640210474910476770237484714614682735248007272373512855625770966715333189923462624879632224059046889224950831077288078268339504461724324044486420876582451463873949714284289501432094487912179014845465131636144513203860941481870431468912644753126616095209493824712611970404396379563058207350371581954572922859959804849854731458337746499805242467286191466365227086634181823135480506569325888331892341033196800300141681274668938565164848201585281527597685831271245236048558593449121004947196520867753535921881575819244747847487959387130569589955355259082012829099065750334471056680341340942971523136624724789929104033323228837933411460689296852386737966006949570846791972245418363579088586711827004386312273215082099794240545640998201569453190137872909435402292025007709942381399673750408404782179037015546640501758032632303114396612334363065397690173817751234635632287994940789180169198850694737659184742238721111080150498221066059529631758668448369284222521997662005825213446905492461691289383867714135819506482143100280532798858296204606055776473128687792931744062696995638868691398872022109346591414818792405386406875597368720246462802852536414941903910105720498093466980155855995354539623189797907450297590819974301400486949504840278855814227550978189766898575416563821464909473950847588270145020881182329354270867843452198874873618579841915169617105707078835660664397613437757801578089027265316620231489547214066448846276216311442630773483832853248187640839633255696510575619924605358929584214282834852659492318832903995558538502641032126109046475615470327311849115234960189802141874287559020481153475157887161162683446021375854981794602802254918212011202592777270851661875618309356134899534916753835472684920175399575957778670399017553887961578444982883779769498789414244321369328805709171995208702738544723891118956622547839485586266809256609453711801416641073370999336915924436236518113945252262526381405477481654197450435385489084152860794185857445117284925142553156111867431579361694256433345318330067023133063815476638990143149557073637145335964048706081776253468212757486420840559665297527539512481161503853729790237275653010037015538905837006490477611153056910294180325000432286777619224174935925529954909584979761942016893688829756876136857848939469971406198638164987800290256903020057627448743532012007744541972692199743276537670433955823964257813390656359740671814352924739155653543677536390603551254156183983629317501182117237178191304404689394881499258000065357282287498376466096271946301444614653692882788883175670790768241618012067278666261238474833428675503131396167978335490233153142420011402407469583369941994120158716382775161223863082186009540780742784900000901574049223557903469345345233814880005163795191378000443304905870378201282331288322006867838125648818615549655649902269081029140903007778233526183689198637247188704991050894279833764428975454802598931667748597127963563266861919589220292374928848669812592591711430569193663430842881373259419655536882608282329598135912009931130130564948329507972779006453112443167245302559439205079348613942193862020460561437770767743590438286460014288519658363356151636372230865777303983066358785391915309024602763599010946259302055300803215941370459779803878321441915811469631802993852109605216859175841477879608881310808795565633842853595253401193742901592352076196440058554404613956851443749678524458291939815600416209756009817830296362580107499272113357086213853412908824921416051145593365890828047978143674525644372423367679029381053993291320701549102707555241997768608382837496266511835783936934149521236301264563798513223712771820459296501430009942381824396464109515371739549935601926059782522307196827397983592344098620223498501009279937181575513836403836912583221530213882890088816776641308875162417284563865776698326682838633226394169601256347535184454317798599658930074662890542898599099769133743025804903316128889316967987534777570789002154563811541585572416865504949626509451827091936541248397307392904900299595919419977977826587511399214728523992923645606238335394418049410849018483891245656601733008115939290382313195389924029734351902774285086868454891208023626519856057252956913431594641999802723617347124841917289929082585680662380309256369985712902160625432355807273027454042609355997177124145037327723802651735237192219779731713870738163447109867029895176107567802596528379970465095010286043329902207457106310022068799045986736497410458752347266032240107646254975452783132100902836209069611762020581227261818641455963318085067558170166717142504626348418012360829817624695525815131146835224133079014153552932339239286834080028421169554432671587206117614174386730702135980827075984053939158315122617885364092844461773962940493787594967492503981857310884687460839784836024300226630470195538856387745379946125543429225285117167055023596506353425443336798226516511019111290057844298036967508399350533468284539214064174952104210915639163258033286292076022802750874909525332814980843673958736986319022386571276386697908199230461952394790904182457011317380224462365718363377758435337177307790120178506534435358692740393542621387357950490013455274299769621438039551594958137710444658940336467763998607034267338653952197539004492007694912803639645645005993997999434673804678227245496158829456242441917720402266171087762634602343334443382470208180257159390473862101637670409537113846087151334267414457674201267283163321361305570548207484407478907516452391898925726082116901729826293929088621219503119582995618861082115703865576746472888438547422955845648780099012847031098387538673465097522025875412380617551733730445249564171924725665088713345103162538449299045526855083898287960014197034295413223753554712158956751876222306833330000364637294072627338918816313134625260178726262035425537850968212933349521052174580054822376211137867514148171789641436197807636519625780087743998193276531286355711345626738721734767964367699284696535376773731901745396897817355033888954384994492721827659005771159600852682065647521809736281820582806842498219881859186429150711427837000725584619977826744001799748718967714763213889966327680469715663342477373782431385253791395754538246974030941881362133087477717868688510339063436736410720468871557533148518298665583594375764971813384285108420900025461868962882171475897519252172876375517693594662720472877736966958674128267809260569000781630567341849032809699162903403851959841119659194718603365817832500933266512906141335985168615168247347392493605263839326918053469333754948754808268077934501976503301032521093397197600402293477090630880621399774249284086841782330361879689000257854745462959081738562163742874128202850288497582372746211199435282636807998806011946609931688197396948527960930637852703499842628671979770885162032595416990559589317881170683680165974077891528569478286357661830418517414506159163469318912927062750852993362609687082960315795248964995241486271025924089799392318065738609681104673541756297046342917584422015474323665256466572258309365337494618870302189984533829292490783595452338581691062973201803713987492782330512948724936024279575241221125194822974349887629309007621453613491622030243386917474196372058422357899428692349748399838695408366059813675901501025500620791200546563817886964466863352114789319994934509384124245009540531392444192357377974996996218759914295909261758643217978342305456052943028928922389664194248053974865721181040221275539451884050263158401845895137264097575696551822193713800138232417588728351294359759062068981729175015653607418837714819884162435932453936428916280259319482307096424556922239946443302629423991825099874329431383789438854514759892611643342341185003105002517158090221049495800809307788333672878660319152106007751506328398373634294525423023220403853090707671765755135817218619937808585619498007010347119346303907067123209698756361756016303136329690625602598789143148359303929174420031475969062459798770012456061176992230576158209570762589817099308579522052268581147942925022504231762090862895125580638203851583256589821766051761412242422776498523281462116786191436733228345154805877023255527078668991450169618170107969700387303683669569356259629151391752000498951171355409092647749248286244699472040156534583397840578142107376523622110987593607401318086406247487904364879927291859752138159501003159015759101584883701825530397819894566293715335910446949129805211629283288157306293512599749259161535804782811366782544752102729918344652191021642518999593249947040192488911316459504132139011902047484730306402746991927677047351466973903380473642027066023093674929385439005383315853367455267884014812741269881489656844280547425684409703889967824833977829739644750042493588813108516114475165243794534497623595946272173707962119408579007174030295088728258731950013934389778924503155932363223001948263106349313664560191017667693991033205416032943719649196896442763714323384817832099197862299193497166749429487611773063054788887233763839827436477561583576128745413148920976339931072037694324320688834520991452993397688879967118506685263280499434726874134665607692744678542265781216726275788094465099149286195301935915263383216001828308084265999161848464003806978302489554215680957602544191500557813470437731017075744775471222610860526399389541393846355158761990554282481651580666440721330755165347427181029123248746096469092169246739568361181949867581864739789261964431717374758709353127646218204624236973254003804176011111862857011719039568661002434023081457125922243851371991094730563771461910699106395840727805274846850757340263233049889207287232616403083651270579149116666020250757857666737979029595230617165722901034120151324313269398970632255971870097966332758197768455146184394124617416475258324088412644524623625202206884137764295571362060369298630347345975031533613920642354521671231970809604711061994166783247326787053273396144481362920072865933987585194614799267343208453778355242647022002516779028790591946884177531336941370666597929216073620205525840912706103361843928865690308612423248509555042260772572439628470509013771461885729123335738294651996028132347502727339327891741870331982974860078108989605050599384246023213705739942044484784291999642798189425492348812112213639656921699443398062793105362936398269260993895293745398581261014337754650145819440026694390843246488956196273263705744599544003133693267373714310551491854059046740877106133000485151008756827747962316902789355198387984017327535661357516317620003245278882341552620811234145279885628556814154100526476359921356993659268301528427594165199475168179787733538274087981251265533101390879363924820504014391514367852336669392474655817601615579267938523408000352266033939175396251637852623683580615584871275114220246133663716469824892397602035655104553888491930179247772008914764300434943968687607519366652564026434695404622654597674345971432379416938495521580909864265192342995385014882103495215966255030721651925041179478644760787960338955650054030194409722111512463031562601915785685613840367382264371302989147350627775634779666573592464250234412011503265258304416498419465687143038841515125023045406349607858438270518833162773616897003225512155571283466753877871129512750211826875080255260436426238781123016950182345453656281711204040353478098556936355502974834969782141968122694917529868570461630744255638980104977250399530015028020071242633180708715511960794945759951515193528769298096755253414126479864833085284740628569089189675272644693948143294909087465939698760069264236964772814689891601233565527397623100717486259427764135463106918153689830173202763312953327806999032882813795752929892278702757682875475053153238846576602357745892259675585281640539914268197857277189944129905144349392302966171118721195254819398830989635660375279701437012610926472859433777164827045180002159187941220684945267210891835931408727186107238397432081573929430140083217992239567856348946034743211846381705923677959633610892048465214924584855905939801232679269010784092635864709428375556295376168658917813080450988126279784599082969961566844535078072784889343555559277469848961949985585900221917749351434615949093043849879826726066934977070491489923912546612875626980587684364269051495058216689436638464536910270329794240624528351439197913031994911354544171107551747159082661464460090338988031171272562802885417375215026552125230226801335690471146592817214839641830575938631092524380599930669792049732196877560435691455144813042000360019413490437340949313990567425541863635271433637939457725288287206276820167812737362574364382352294216334472140451463802707569434196933410628925594896193165549627644735850983441121031433180349958645088684610756646982332047592378867889556167574441410692187191558220303818505470654162166365107598117426079443262298793188564206894545803222992558573476788462703413057641987674982803722037592226302690213820654940619870989565361003344348133277207932755643798786491686630452763599079900281830107903342865816914439952015303214517998575623677514639839923948012440626141958102075938082718431313397754810942182896067723223875477792911825783847793452675058755453601829384891803868634551413887481310455393259761511227207494228161793109462322461153740711689343837182648847414233795453641134129969619063493205575523546306349113028863421702183522485282082527163383747164828382259731458986564363254417530129075844588518856219795846516182378889610097279439787561570833198173757318856209459710151400289968415798661107378155882834325632985843398159193501804752805420576698160758251348438098449072216722998991403660879356510264466709301996844444492098110814274598572363870719626180274123008348345325419658930488995361679675041764213372129299754149269638783898258443496683896976782579475023287425758930287367034015345642677198249433524139011384436542412826704196733155883608286076734369268554092029257783148449398473094917322492489011578411753878397069019061564565613924191968270847331436132919409730902529115317698969646868415036866680091454892773303655745809894037700406143614010353623866218083036238606211171322050725971748381885562175658416452209974446449452536659601924201381464843971017604642607300521297923552327733744914600823595046025255656232941572861740362082221781039753608914910615884441116189900203464513218628376287464808701228188428268823219348306550094570414545192529765716172007607265804646414168857173493663994949393263234256646339861067127324474672489174446415943310582187530483978080822415373147488604005823803757109226323973085995674387495248324207027885431377123492471988726102051372742688737356271396285135097444091016607023041074500036723978212526929343264649055633485374305135083939024892591242260602441929085127544701349353264818925768890662209900800860362536862822374968203342375324763608415611595894661315884901921888163148454026283485585483774723181288802241352477431458977233878684784467762810148379404991606686586408010887981421918293609941614356960015927177379219365891960308368963777978993187672736638948278985172901416125563458650311557493696960225010856973103317153150543692339165213985478458724519471419144200938778506671680344591800873097282957917514804326069641424265121184163542559086338087182925868245097124381706954153602099779647411111839318544982737612989015249629702436025750657369593605719863049873193955810718783591906887112389360235484379254412562930557967037457430634823246118077380652831457815172040143223008249378669776105946407382327661400226269925502059838769111467117748816709123744109077391558482613641943645886438522673908989239168933190305741961820210935658463060715202353193847908959609064274221254129587809161065603820223065292713013820426892014110500030079308537799660443393440176322653851822131561696039380239300323197595430886241818979877136573065663877609626651707809531399988176270739028959859639114506120641495766572889675773308306185101746733694857577515344092261527710464457719855067188857429474393151890143627412689818513141561568223317024679524813380787072192363185039483488744011279908259637751816646756605514373375604943854397682091864517615140726092999209458280740523189052194032218124548630847821172355377258141107489328838514388045811832436344311983466574575991238509860528675943967551980369202797960931364828080022221301407765425597705905564473142607477072945195789282485336890103711874446035424469804299875042589014229169045700398932811613103607640036622775035080239586921049759566194781470451810166024869434258567784406307465116719091171431707928602195204927569114824600628763993434458912374884152188797426805119498101982744436683835139606891966329014015471939651246061146818576427932811569506643962479258274878044250243834548657505407735878308393046637098735641405726333514718175740798426895052191097637173385387160146253813191334356651034910374095025447452303529041170683147664474284845032337906490314803838869147180762696789692801877007273376513681139276840885897755748281943936014142982952746803093146958034171658693878700572528991295719663052622418572607400398852015945209198933333045770856696741088904055915266917047521655421458534432623357642946194101552888785688165162372782139159886564512080796306735262794823042621132284162641029539606813742770359866973900496061254681282387931883513234341243641222947730038983499206265599962010600075522579103493490890627605544711964363905771846667784888332769516129712880120389771648582424135254067295275323774096834270240471463323796834436358876552976990276530480651258504061352209079079556523240096653216938918378918347474095320004560804091875580334303429298062762034795400138250783712459446566716146569611871128343130782910178771739834738179015876447048489559002184123767634678307803193009940161407756731743131038890359941550621266284803921945595650186291608954932151194346155215573674332295270064116222727352249838211898395498992245503710475808134816577816473971739901132656066940243319259286871270778751139448365095869907058949609185421872554701653077858074523270842754556039547695727762870359642769715777084552442261398823931652335566071763724639941975509571625356993836160612258328630688957750554396283652728775771766516388022428860792171921620511515361635113306520418209861248891602756431186053801468203655514129302379269934317265636390379232778734283164543173073212463401890147107836391822913092707624089012623689960780688138139130733978789347419340930244433602980514714851356837480408114276523017005441375835987116671057655378588008934128611618473738800592534855347416713573556478128939442210498649308102401954663790508690483726037365452508345737934540986226820228929894663571240506635346237659690361034387820365647957793496392905147528658904717675203807818590706943816529649172221645461600772900088287966640203818879585776414436774321442412203473320668249266870506132365994458769361238035142432397663641302949379898524521998370477854833787768724008590018131449045686931280735361683355750137268659066112397577117601862467652110714016729829425287922448841808606595699311826524261378585690918229039927759446944311001996196257997402618424476179314406615130436954369213088228809837674713560760512541357583970478924747267751944897816133046807704294102483030537797108279743478560082747659018339795503784636880214820536915314241053110074608036905434716393624699288687064821714370522785516744179076278850807332164251799652244269007123088314842450454993180457344523689950899033994385543089123837699551137357750110306499269595270787854773522766077022800688573349487392894723053176337763903661176944505980611883615618514586487434468071690182640831296952958122894282454112047738015644730888537641143934065119327707359043959054341408788612841344199124624245595708042862645620966437182106734472548936721696417015806370027742137500619547040983909295540691695387425560990922662084144245912357836395423803537162677276084210756218256656495220645765285835062076661061778858777982643457380325050176306869075556248342674239622973882961569612430127506857345239472261272990080797955949885610451856572917339796835161450180892217852415776302221430023323304972916196700709246964760586273039605373520262747290359153667988828197416620136325192794098862672664049010235593814182536922427481187982241148061385488759158947211145073002364214350430812850791419537757289767481082388076816250068474602678076414790828497485192423450302233504333351657901335561831818184603079190655809430628484102726593950140019255733085067574489803745378716118864580011611580023641293142465044433382387758182393657785528285333248446938428040714712502138647898969945422064865194775351913167929777630139082036194784932903504132392244403072486296881521914861248423697653985109394245736958824428689000689505653354059170423052605948684080148663668275029479608427311127977202075725694056962078226073190912466962486450567568267755850323879832871119142394274069951833528302264457552911326219348560123938751940762488573823655941334732791696110405338553839715469664192734139304517704835750099278576633237628118298044251142404211043194200849146622915368828113148192098424577422744601465835525994382851403031027316537646857239304255982376824654068945276726167229520551071315260370566920133154248274829253331610953930408951868541952277437967645334469261019810515939528231334953924969385943995363732939712919798693723482591757293123505270096915774772589495129531260503033749191259809298873883289437655106915127968209643787834046300024402006332177018808334929319156703755891254432536545620657487268750399956515084822164005762704227674265877323117698553760408268155007321808007151150069894396954382504002040812410220991767902507138926085970878680854665599684990918951242007744465597106933416233256405106262622022186403916784947983721960848772260632142813881115005328104179808574373340022161318692780872157938112051213377370489045728840850325967271228712442386002955285172180059040211512564308624499098659652140454363481449610951477784991319872886222915523067126613931043509845423991170410993029408237607624418583712899142752014816898602628244809417822995635587619410040621696254966635680277820586594922283112004602813947183084611311837864856917421323148061192833549207963817288400422049848176720191259543838599827315347602646902360718649668589054112967364463852657479597661881710721567504673605517250080605969663382825365724560159009262892954807151630035480960365391537821921548332733664892514549962302187560021978042122907834377798259272637412174849264988174061232774167533790957421419698741655627680250066387576840638126671982830964880745975725798814588997582374352814211480482140085816288650390964495989954743056145186343312692750713689470182267927940815860223820639554323862837092977140896661442571147668286221404885022077932504327935049378756322328288842355837983882616204909702217495916775838845209166358244974630558722949377461416818643452866421835398361868624972801433125266082273282919802314790287073691859355929059837259020647035985577412968356471843729548747473862345899635363062167516719165075486160472800051974402416010122317670061019088109398010289984129523920900076313029636235681415607197257818701841637452390033182528942948960831051537032747645800700852394028804287500655012886582660332656294776702072404908868429987242633134934441989586068961597178423391931122001055566480268641547636421380710333164410737341005831610348808796588796191793642853656889467357254764927633028492702866522046597550344434793621277507327587129737832800098591527352035132910837649141021451449204637078398223842626008578004829969110527228690150901459516692838147332127323216744723437077616478343395958538048864721242901294997384666255648586190619822726593112396654290043154879941310639651431715401179327150480486387232433714949312800920540369558828295803954523048353602109714658903311609551209414686424311236293237603327529197829366281077921086494792654393166095484513979412426376439072404417356134359645532177749667346109184731046735046693666876752873956066403996868299106469428053640901411689424590982774620704256686111538427214361577053227307938205349111033715344099151307293824298823538794206141804747267518667773040538666889766419727136475177737732056957835477456808271751042861418710118531028451065815319404505172493939307852951996943086829717405588701857707732130461676504742304842722321713823324212103535070897329776905030213420173838242741202998946529284787951705133651386101370011678516829953463926225615014873638074415253300184778496282437519384393657927305106872590665636630384763796997690189929913714891398277438802519146590504961140720795432239757035322129414832295814108706675420365402763036862918594160968592088083400072063806868608640341131147975387602023037738686764857786991371761687120471383123088421104121199069791682270635570971009170871938634131114341075295569827646615702782705134485280054139379536169854975415678225577494240804070827542198465744005420295608007021302132105315974725477052208994335779723279902894059694361107195983044802724681890884768242067286390805959044945345777786713647872306865859534538919533220348165352644557651506040303669031957544654068873524657189991108053954424181310421261084956851509675983088967923956244753242552130835979025161777396706856639497744232743857993408832268384144626542153921643560541477202516665141517141932783875164373774441417240837813659075703950225360096099453313306387816678507275916307349441513812946015353098716877332328465130077919635891035817625609947891854204872700054915859998959515920865671139807519358175127149247498942548914211944160381541029083758291108281591466359682910867795884242954464657337233956516413765889559441582973297378547254356153665373453723747535528238045725125145852186651854509079761018125155014116592916915729122225161901978368854377904913375198375607149799663607197708595565037711060771797250012694239061381363857690053093787864178746788718550645315082031847991900330632010037063799782859076964812421753882294345055942492524646033335191875392282408824869267675712482287386707467888391794806877836725831987517263297018380571470584691113773031554081825831850121140001402048846490005608466966118733762112563435521142452539860167380155564160820289843529490824958107142123354687283722451221906489820319767300597772105166966924590013472301893173558264734317757589208502939858746597891719799535790095519625457207289891901879901175632612190134159605770308352628381233948138479331846159085116080926501576416951358191830695225076930018138178391660715874777196173754768617674930142526445678459823560324035719018503566696339562489246799361368293257666571724709419387726955962522869233778242173194615827904629699814845849251682067235208060368647208850742169781282433743587656281715876449457011713654781543796449087259862552174025796609869380018839455418334270109760034496768482627375891384252506647077021071393223861990182294910852117902161612782813855916121002174781102994437372225421955446536718114960024850387476743300604152854649791298729813532182939875284047956950808290105579549343959262118647866199992100169948247181709789597412153762264087801069258023677476885203487655004146739140306282434732957614941656611761551861325859766113629901268161480325405729608348350650562528796137250122950647472116816752955914157903647529566512368408356234810005316764818881861893185817180522735347432306339205113165537005761917166487815294109884159136392501648013463306244561671337094163394618589114773151411817646948516173734610402197322377574641884737799248435997271043650601597311030743464227547854643571062098272470490456145836688341016651509755821624186326720621383394580050745811822102143477661508811928272654528496155489294495518786165798483215416579751396036252826255591920422077322821366875862429946610879961739195063546137740261430612327431282593041898887469278141803920682346278288845618964360289955866438984586938069845937022816389949661465169736412215273729060711527525008346329967289991316286044935082175345063131554553859220346195330223749256211707514729602776644071297146670241087914206117621688978227246152980513802940610143334785873805561907444891809242010734970463924284545756241525650868560577275387375562645601118931567865199707762508565748405673338278120090305496783705338938249426482970118185763295228059850682505577621847262540795476916602818744957604477129214069368018436459445456597706811843801099160253227434860995088389432378368193748278949762154597615333323928323835604629046763555120536465588135684187272362087171829131113378941300060813702882570555196242259005242781791069728995191623659054068009763296734978508824606367389325494204577986920094127423843942409455318349780661607955954308854588083728599667078216712482228803587507692361881956740249765536390433832158087064104363056030042740787900117846565626892935370214216069934491553937843686116658202611446897533872889740653616344215236795107945207216074197690441189936738380849607862258460229615168236318813456267393354116080851343890189265270332900747436183811508638784225290914878564470447068210923540687166704729138223903871395931696871734762188740200431563924575196884782185597754268856442178540480993210227311142266876012373102128652215166369087822884017438372682607114579866025595678195573093140521795068722319989702393193262375146295837618993186763559688133196889658340748689529757056890141858543516067204178494614776999670588122578860658657370857633790767659887178135176687776609796594065152219573991717915371033963412034552923739090375310736921384050597725178768640644584440512163745573376026455350210148334581472005326010625425344053514748344657542323021693067021474697199893131110607114235950625028344625406852888095855697717500409258375348110820623410515042960129655429362003136005519531580484660758896633389777745242094422332954129578096495736666847366373556175278871906741748625071031486635356268953192312902228411849420448692652576520134742424556284241396148983652548206863683757109032217974644104640317454149526124202965165600820370972055878006751834093118099467753893921643957995540352805647309878733068549579356224254690673117698497607928680080506381609373350881977311828822013664867966748003062974095473274990754618643636642814664678632163876223585053938720427460009058596702253502731587904785704985882300057893217602885375802699072322149725065729900986990494725763511677971391488967038705926955585857350480389780652116048553320929242886548736239548983233375327326377784325749425412630165959336084612251694033137622199481846397499784208979353822723592834299223743830664127258486821630076256941035525151765987117734505955122951094557924669505486562861162817213020063268365120607355573618080684547409535479947453665656959888602580059970572856378839543257948468804594713975253782925956520546210940126718688015679212340497682990078361641785780383034853855890744378711570324726937943226681158003486396807685810858385712747325781557512185045527588802560864556226512733657205601398566736320534571992516824945993404407989951882206882574104459754095703943981839450084792595490756366871539471711686015302666572608859620785927376655509237281070847375018862205213342672865931698225384644924550580673236195169432657713952089298905797668732744965267715130876830198279341165068066046198033638870912095447150436311053337412754597821927520113832643163956362986379249676165503470883252501424796874665795758665645904051347182013991090617165749426378214024052705337295083033353208691855645678863762193540323543348702207368182783395846135735772339105893852126377428963990686996351779012267967049929297481455789815190226937868918479019652731401871982543845748250177618366617193266033314773702142796651903439613537782008926290910742860685769675762470037749253408409166324439269521842032243089494145772007848553729423849252716699807729799800366332925368539119227414862859450093890349083785857826657269097851144115803597406148782390226387992161587236045976359054144182199839248881269543991093457014784717465136210733756837632070928463006489249254628387437778289424528776206203437649442031101789360850257365994814446390950482067876118983108512569155622478141926671885847672031621002838151357144647249420497034601844434177199771162792751341374846180038481175462620253497989658554750514215723667942129256631412173028557816350620869687329563775280564450601778792442792799731249895568069134364082973774054294847133582631528631298556113820948208536217144694096617717323633881878105859595978583205884733594644100810925987889677059781502754740626499309701668076587377053863573082327201179652926286677969084994299508536158619341837387993358839482106840600029073428941407175088839345846569860989734722595992127006224965897797799903223167662720162563720168824329533542312347708482471713710498018038581796993780373522035972707292893611188296215609458645720030587201094159182351674072889294869065506935324687844922773979889839152932804090834245972939918550230476299816273443872980921365094127652084304035634222126215107101922631822461740463174615383922682630724844019453670145905651283765786920321831180838396930817891010353817603383900914330610024512286533123579991308328720209711766017315630480830426983938666157864820941428737243102289799201177543075351730892709812581964378810551610581904876824844740046969666530507797458620259721349485102425061301301982995863336067181921227785021965063731607158057278868850086598030396778779002113260556721402040548370764152496762016672840991692544109444824662099879990985761831551368000655999471951198024650717470659377876112347868948887956780734814927075208085157129158974794253972591452578650909251334507558895889044036402484518407042162701333943920394867361389655639385055618470236764967662331580549579056006262227569795984990889079988554080124705830968447439531886872227545059180822452301045971304168160224308268419307415027733951924512788690904134765415779938064548598699991186438651616943831356636722102262584964847066038678922606502035933598820919490131918601576367603554946627879562950641620354829370548383311451188317482301273430378242573583258768171811087259879491177264883152021683659697899982411336988951495244620455973199771415924535660279557757435426668399529691970922821205161835132634664058113174517595404690416464781405478090703193538174789563983422929078036512693746118003902900584148579477347574874191712059113397282144058848460371583847553994336729722302594041311930969548542950925159692531880203189420777420468820897422764348032311683684511900740833838485094590190677699696360773607458010507618066392138110363319045670570400090805395204476572997547071845032252207154500396035384353117531742337497950400591275594642889741724500198125721384476756124865178628928769461633637575701118926220049071174376099680797484861480142560410517939355963394903702947308555384967586160333255862819581556535909183321814516624541703669865250679983648060557864930073003156398268605376184516685139826861791943481800768039335001632004709226322418624648440690916778274752652162052180125649329078091367421926621271468185875249358680352040146294318681615349907637021026930582418354071328008617827042555379874890935333713941296664173459504548802583715119407558295169700833874241715019082907679625785349358451464749859295946386447552650905823160511302984032682483664973388173959499019394174404520564598134924353226317813232024486000219691364409453700887496517554663845608528198954221810289872076908233537160263837066954124543108368286235719335082088079841599433331673788637199850333158122062442272437743206431582014725899270857210690268128236630008811545866119975009528413430504099110356350482608385246115570621702157228956445105705078185011314302150988897633272163315587397123074411070867041606126224653307569614369007917203423287192609666476136458460638215208895052816127927154151673067205168031032776063367046768235054833620533793361121706503142707787179017610647960968218534961209977860843544378241475200404801092833457969723590298081590304798654136006212385185147114545258475880993312257692433982399643526253356108110246389993901305669642579787735416039303226031881948224240308887642513475725868386433316846398002171736950292822794624157747863126168032416613041760619890837516669411771967356231577931971924611637763303759493962797462915241862208481002162798828976139109610857521143979644022321726815420607976993753107482831284595151883210304548732099361796391858252470310174880898562195145483945991188231770562382160409204722643653493993679468119582504577804099604075417637886219448749322861818144112031597857258814078653092903082218867747211747264925878086889307349911024155187911029319459335361549748911978016573044390861282834946547552312520253661874177050995462649156914374407720009256753884252886622290402263627273958369479228586836937125065897329352800786211383700981398760289263662297912036368259353544956840062457168687715157639486315012293779834336726365400823014729613721734534142518592387456560996707512608159310683519930377396390982685250774614945601346237864244109352200449345959023991840557124629841905666431271144994988389035616276791426348125472454105649924646768486250599689626038838060924800933578547744574799376832009098016283639476721065739950981502790478430024786567836032016717590825962385482536707550961196821100357094680283150708936845516829456403019772861326608790769452373731141194082473736445982664381735298262052189694439693352471841121406018303879366170956837660397953744133241537732882256223422077526142742994015289395455728651761361327214636315972907669533725595430533559120093680658728497799455448318593208613350459071127285725943158530977942152493338885508895517941163761216973466700621286018650288306748251821461665108579076015729632571946440316011083532163860205179950342944959714595775930397861565233218245830867848738082437242501000209648666901967389239006503586643520228141774044325790510324724244577569718218998736023080711079122264482986357944107186655095216301553439991605969091542600550820631790960804406357593999900946269766679347383427363997685649011302513354274441701804364193553471780710691374955992797815902994760660101747758335244332500478665998778078556208630325968887168396121479526059912791009635934059116204870045693357232258775135926015490885697429487639688428904227755879295842176520483572508174525044859905423421293599394449702760368783461779686601929688155457020508713144607450998242397971991482206740404177010868698296760145235884219641891433906911251138968134632619710502762960250797022689074835920264297329819729878193387318985333738317674249619101285836065521041494878412954990049873536804839872678085882152844467360996503404217758219121183485026906043192812739540199368734481510698020126093845706465993546842590862950034721249055237937547730701157626390189947601111737208221651010130939960341320545117200263326779969718819554213099011046195351840749296565789787539986722919481269781581425705864027324683481760676669580935796639399518207118715191500280742095177435781797268911156224788539786396224757103876512326072355638372343084683621086511395440645057645289254848908891326893674420792168045995024142985576831368156686108243867488596007632098075309431107442265223998577094962619262281888486187897600991003527002069673095461184123765977738380586246388405301774488717552685816388908509192331708098423158491137762711734140905661886714783152914423940285184013398909752523777345312020995871391843406228563525315384980966974117144356083853812712811285666833453976823520839976882231080224746520379338708710651225044181537187733944405789267336050907353485425549349885467718879471181677167443724800068432746858559171497350482951648862886467732393174463301354226829978590716243662272312831590084764023448012612564107032548565178235074196888900367823474210862940498551650432744867846444412699331580194159022577712613105450243405644825432891217444172069806797339737910737120556970607959589513098726415426980808185326552881317251567168788034584956649416489833710583467882071406318677279315032422808357489155222819363818111863987297004364439769622162898788736681056420744464184535425144871539019296739457292857349735098498842977947617801010189189863605332237443653868570426319010549427411317465462280059335351550096727244713558735914132471498707270745444010623535747851029449940245370786411571902302999174997949838374239544203196012915049828812453822406762027418525403537864555054292683275764080572247016752052748003361200865460921412082198280122775708250440376512483131159092565112147537347151961176121944413269949247438334915674945608672978372582794954374318354695951326814063811821283656384347807669791809000713561634936664000246628886604529111821214304541530569437682857258032930769719488848266790286940154927993132620079943965712907619702768549663966910135986795965108239810726661272872484557653828497057411860075479581840109738662947462962298616897695999006485512927872825285441096793111442921241648787116001073933983843160833930652114147292146454338873903408558390234971940360927124641264666532664164604371641975102530877883886540082087532081805868127928800322470734414186182401946337104003244731249938977001576977689512529717435914349994867862887543955412757872049752829036222598707840932774936904716022145469732512041533245470317477590623666922810175703024636984951368008039485271959779530224932630980188397962296042324801694726714524014349179007685526694698485601619686100969091201294901760448605111943226263293142091413713655200624302841156503051425789220031869722913604409817642717576806841979949364889868146098119664195587857700909016983146814960799311662790911631657276910067898717921179115877089844077815133980963856940865293923414455133273877591452892834810004935190153979834010743873199967804817652845935722853198604156131068078220118891174188050055272293724054743881656276427346740535539533027760305399057709371813939503153602451199890513859872639595164454545258030321034701601906278862421230477151125604634340403084574023841803570558088619879587155268982838088051187099413690642023197578662032576525784090111901827464386631689652779324202493489926813550098437553733677641887254533022414716912269320440884741472891462618740811774319005118743218364295353308701161559649597787834230606482339655576502876953704410571189734681546254027662755441399301740779920270190062637355607534633017199786003004025416958639655268121550743717007100594890404944852075351021281294654209755493216905794826234143908585089487058103390469651117017531276066439673012440936979592587088654416356844842868603151282787606418682674376439541494980985373512446829984251219188647614366216889885786696889737590136269287416238919823422884444383682320813313785193703840492579469123408157946320961593564350530192155730905690470951607438496293294493392763467468247604578842998472104800764098158975985940136760283640490241865222566481818000710929585119377297027263720058514907479658707724523972736684945765326762471704039962282122178786942314555357774283059437890838856670229130316054159950293035562759231529606765581443475167456173142456823187703078626245147035350830203698148092182093044132439767431557756094215138383047930152768315724723937227774332834284702587091012695880853814944960395776882827722415834906197650759941164294235585892111754652190341074274357420480293304742339446565819070143345837905044653415044487656482830627276628666381326329973502260455862569288072538361398754676148423870108312537077303873410074606503654494341294031593445835574844112457398597268471321244743990418595490884742521446759037095864892338144010952743722780222885779792344502558349590859559689080246803712805752465770097584288988591237190299853587867468376352504615506319149618010552443654287266778162751598470371261324065674871735503322684148257068864477356397668049563485436992453806997219287306835581778710374291081267082750066977173645105920600644685742340572522473660940913961579458488543312523687760800908189346984727262193628135981674697695381586107779675807267390159167773510087269063101663772240586273166993127331659834033802555576031810021430970677530438189032294082772730300332329750302801662260228185667603565642914598757086822254318740126904731832583688349773383562734303792657798529011309932604133333289977378115305507411380899992483620999196293250675139137298818900037899095849932058325604798286842346134349510493598391866086048236439052904939231939199455961879031822964686174435407169481093294443262004430987110324083930011329585366968546459500404027243188387167880497695935359877069929766349078119343449075615799975926737568654048756722912844227190759730563223214518116291672096884956476436505679675732323602410868777361187129567421613477815242194763121532426037074910528675735885037310133664221717277329269176541652019054726602657327571131333714817153440565089341626070531612360005073732400035893141173394563339696392397962355785027204431883180582246240371744854899498271860402246520536357742495685449427928659416172291312524782727859515752404577788557898042768443267841921933753037437332095959414778484987730627310685929934883508472017518417364564844163284771595612478175982115169691893590973910632142793173950027176533427627656756141177793228111280513425307653242676573122996671041188260000577701224341557314232204885407088461991879967912910672109624763950744797251337016877383362999915474062962149508548672168506882660708940016505368483077248136617267303792387476187741527273605837243089109553413186717176505790147090334274981789090283478728049234869365415846761124604178520694909386906817989750989119496552888831162011328674115708642374867609204562829744149102359161673594918100475337877646060309328235641249083541588192314329353191113418477225993234331797495398050659474356286242160668761217404040631438391073977038295908730813670993764690270005777454957786719162560283751780342375949077566538736015774502995664934532174584148908722039924322246069926210937827162322678943547008473111873817478264446817805579554063347941320324855818490495542458152602374403404437284435942979471858440520109690663312895345760030388349648102195126349751110571019568144470758810215921832455465600656401853725204958413588103162067980579434978685328728370949399179973136717094269614815270116483756500794235893182852907270150831806825535727558061832412739952138078253534346289524457331773442375422195340081368001262570049763358576047214581686170388514277769713006756212978968582481466502877330360909660220912435856710028328232494316964561304961406612125681049423829500583334728202940625584841406565590588988535811549043557265114954200088043460442225844051192528489760832261501918257569521307251534102385815857193421108282824769153675065497405713035203681349331396879516237490428752853632252295411618984520791205339752507190904238796726156116337916789389469257044367631797606620175932565059583267032500891733150761746492016430077457260979940685544338614923993954397932350555813383842874208978114294532464686683499613422073672797407188205589109758902273447562448402954784949133737917954265168488142137177127757419858224324188707860959433063906922965252794579536638276950433030379108680237259022796553556389923429371506162011108275610064379945491323895512301925998057009870060171552158775313619955608142642553215236317808427285225614407033486896253469081858399067828020854008339636757328903256283422069081869403871242918880768802878784083908131104807823784438977053170622113518029686566753182843381776659818435990261139405505272904029303333425356962915067481061231018636683152127250223482835868205905787783237260235741601136128449427692579830014183418616088280835889518738673915713525344558508115525550053595311653332922488120653577451785542263341628663746265732322637428461303838598010475875724925041441483974763859439354901088366200095743889790993513275532768599261832474297505371785506245508663702689800115684712838748127051870307852381477978445372692065168239836067715453809401204665069594491475905971486572538352172498773662844019646713493409645324970402473208614293005317992045700873317496203705563553721634164078768557441143156113983347769089405573338497579842516449843933067328755677411732011440112975960284956034141559559734259944605002836124786336281143888754671410400019957815295019700963937250646632686514785633972849193546646941367191056023681095264265897628612720137477136043843795195159553005553462542949559297625571264209320683473352045393236839714626384056781353077309466260855366946534292556858805709411746722501885686996008480308726087941376073531717470970903151425264710642527721482174937806725621640922235592190797892768064709314340884458675727741982872333064548846885330557004162713870739073839840670790191730585988479593913676126285205869310688599460487198609185805389901768893901751197504217457163424049492253448022393950346476810309967718872944014365997303210242545944193474093795139792170422250310293416620152334914779310360115219273904120110232388589372573295606652873756668253774874603881093013385495794936999743636256378322492038523732950137382365591221074128581464409804488089434301490779064843129483413309489973598711482097510147800212805428042492930317522118108772140158053666283158187522208767036954659248719271750370048707671559742246328175536945301771060203173857023148928197295035550899884091589882954061877496687148840340081699766772025110040239053370489768571776172806467418407657971065818517927157496789477251626531781783335014623770516878889958806882587967794028125041853032331115131980872740715439796805590611073944113582217070041494506754205616101688863685173990146669286256178816436051196105080818561238181202001395901525884645289038283188856387172131535837536563732744060545714683966884684162176661375129317805868617407426228057246001792311885790315808417607855781671107381649019714077131836954618035351820693021119870839138124727564422519511467783251726675007041059780311575441250888631034805521208111781366742989200991860220134355481172957940784442018993687859603570164909213401679301950637749214766028946933191139416998071561907540251946790586824039236231761136488125525834573545345713404091018503373059866268061629928573637801800304823821044555775882303812692064606902622745991618313626213234934735844641141059266289981063252535318297650766116894978849208166794346746669247054275251934358650046075917931391157511952093069386138565245442770158650244463140344705722759239913994180894162417503398382422241147274344926186533400311199676826249478320742330409631468549131315658682771269860314568427624093066951609962934070032244832894686741639676279135734178847712268499311246516073115768374627644193253489610945483548144344402219930500434848263973055822785835779904557683593078807675437061252855239548772530488991997529152239987276125702682149809689337414874127380554337395350926689978814012234411133822985316894132649302568007670177269877335587034652873055814398717965088901864172162607687295180027517854374086038005363969932530581857800201040841304796012407106640222978130156859505570330188765100987303481675777504971314874598155870427071502984026774905699255298858780469045913510474307241305984389801703550153899225779079110054960649914023422249239775592037370376748565970744717110042910909446442429058837490710234038594210457858950772693710024493509867845764079802415546739542537785057130511825507079262504869254898106591828228823055277590193534010438019714977111293976887475401557455197038279194424456333899413377112658047768640998701567003466219993666082580337847206972985985638326617335242216392770585126562833768401306149062317032499509920527967890905399537023581667073552283237033208179667044690786686008876924114240395642408116179625396440103126894206272005055546527924604372275857746613455477062017708497130550243962268352879646596871509195507926273615347647641306474107437397823478787978254381395186876442254422458373469607211382452302290708264560741176647213263574549198411168684456075042365135196434053512619983281607296516874259777992407080241472583462602297327577127861968655777201462357091123147065160110980653570348732485000177982719401287666627374676429446163124185767408947959900713961679680177962099046291597573538486982189374645435137966298157183438586910226824795371937922156631021769175021450281950469777551089927771039911905432541285827440530052001157406941033306714820451687726167637623962687046532321739649848634822486014174647223455241400665668368697892820425155246665930629958758169040623686417546466881165994000769327324294365405717153939712963797257546379188780982138548601790960737570295010985072399463279065251130848813529846320866252619830145667539369477670619980062251985939125947148787536929788236431776875973930575788710731818566901223635251831780957344526807600393092544234467044117974557740712930626360946929464321725017462682645834565846090830218819266269027953184485676594653070522492189156366016624067520003300455673495537890345283700315955901838828219712057852154497477898761774497739374700983604169591110018861511867610276943086026211001530706987599365587267120648428211943037303926873679168403193278219006320948565716685136591852296352261918974688435493512072522015673817633755232244523252083312480982000471040439108021411163264151459355415176826657277799639987765314362790261737840390751872949214334560104280207203879434022409952457423193662321090408805754827562690430424842384745675744010976912008871886071076104343809763258171991377699531503040219672235089750494981194581179516140762568481058913568126961996546155143496955941060038579310126726326815240249858857856773678160156855887940903908029204092893183724821094753447785534036194311153592256504939690289068942603341248977206811265499577121532851251622283620260316601730695164983787243459398864198558488984675078473192889473483776864428819493938069756669307411701357497009463416897901381028872521849780372661317637407389513245172506286914676184342449919829162075396988363713412934074844602967654916660135630556440384001174915628049805690860084282886527134149127276390065382656097128863926884947996339590762027947075180999117072602562155535481637132467955910643076732599152334192099373058176832954084926792572129202543754853840599375276395978430147473267289524119378363283589184178459474303718902181670249647104752762661756626769367779083618472431711778308391915302141810226226627589717306276008384738752450361111708767842725321369422485702512363314076532532149924210680442965332703312341231289402050104047514771049930586477987524774037624733170633524111329333231480114352431414990109074912479029869940925078562116666064607883759748265716835426541866926691934773720550324470524948481289215030893065658672608376473140921866156934104895724160613089366305720322696831337671318540590750108564298097997505499472781590334846659157255434019656013735020095427879695185744427127118910839999162785995987285369916901081171245823439023543246368672919549889433628835418461801698415653340773775565088766541951050688052963210321198963294995253014355178985466928829352562542399745895353665479332822583224998596552811472439424934811774519104982553918182397988800454473841899928851250077486475550360220527787115795741380736194111039928625422295898104704324963242048500418863221645760057259960289780158420974070273109949540587698514746161360145671193947208101540458532598283719540381421008312663406941777851481058046231340519567722103833811309876054819112021370121951348133551800908717113119906500985665828301907273409074388186625576582072156082416685628219636077868986030077827656311753057462848783277014095758526737417748458414890518262996709587711110926302139131318343394381221219600293350297237526994933037716457017756005796131984651740595178542852766468945701045373418183837404214756355506819730054408837300004554116223677303641806776809047838357147412744461987543857784179442619359442778907750963058782553624287810840581469207151484595550732832333219382634059147153792939349249332082561684843573474763773109642345377648955690868967536324605308612802713491706250291180516427356152551036563340056719325828268064607538726995331218104224582300887320805362539699138125188872198621609531277672973644435787563440231817400418480292041843394535386574047618193952196090648922650054486307551093425468654033141121124316248143984530760697094050722755683854117256211055141733396101337655688802172280871160129225105250150215376825160123795330939436752115193028866611005030573380375365350927959538395400318623123012305387370191856335187645399555912663906377954685392410643115427930401302967045502765789627660186755207214291116596444139348450410620139324856737774596221682390031458645271307175239199921675147655063774496856193608017087111814850377885555694103880280928025968602874618403859990166517050277736649625907246024574574660207388061079789262564090828757524214031977823736078868351815485167642550793526664573402591949061314769571817662486128911646794575242595852014085320825608333214990403722814091353199936425353722362971865370264640969042485213902854162442033258882153337989947687296006634174735933325690806563483103027548523753410011427393555499526205032337950739502822751753438687162398479087550532587492384251904597938276603473393405584486863786858951981813344148742722955020963675805519109823967352034022875214609180828344759793334086416391463053941680290118973701107362036850690415925072010120609479174177641564782131836040188166423284533769821175873264063418352436079293481387876339109185061985191627238354072002831414772024701677930821481208147882362734377587971459877172671188188054525505575139018252590497416531279362736796983691257139884850244698036547478600044700498853882911487212811433831823977002114266834202347225254117808406052409715532973965972149056565812642149260933451559912080037923950811984595016498180528290943369281246781505495128330890196374440081539410665353652484828901958326667487887696881047147126528564792228667473205040653386130150206587875519888826479573760499289037781801234092574655730529199189694649330808656138991149372851861509440360431343248696102223848578469186946487140847164363069226520405470365382399007401996593025168713486195862908208924601565403064157760243839121954177627283725439841229040557879368189045354140642637194924928529601456645777233031681240079190387783961453677700941070719017795387384023054003236557886766623186316335628545286122239007227913496532958013287112047434191585506531562679158209215576589081756973338154579867085770142495457434118770290063796548161293948421865791134048401703650341708436036554774603263804476531183700836474789439090335873644340094650745660795659608861016148080366557375413598947700223431577842671059611427071306096448688474568083967006858950675915789669023470052058911224457701234317541434191108141864488469340795866905612721565063798018052112107871861907193775968253142554383962772639723153202271406687667032446280825651286799844551639445751004218550516152545160494218366479740910090691503289885477756905958885519401446887168851729722920191072331477100926529531798817198132896810968591401414312800493789676538082753786624115729799554471297804070919360830181695246457085499015055353966965431669199252455570930729717774400501692335506386340793212520191644160468537765241014736552419725755959569711272643583129379120453717371464163041687958252722854496332763561009427159758792377582532746752402446973711746513061364519595258304832462599732943818180282082094025204639685196672097018632875281157180798296907900403849221502568620450412435790561073119572149427797146510985934069339131861862317232912206865733271585576811676517772136838358395758974337938797930854617761836489563142522843512576921933949789597858514593669648015737223411625719452489989115310196467405736229683810397229069887270818863492023769299463917305637901094331002707232629848504188767176632825316298635891933127337779623929895537972916034226945338858104326595971663978467792689700072595374541765617847865696732740496829318175209729340523253026828906171672658629866987409283142915255413976488331201871865547779302297737631869938482971149297412180901477757838327682105771936423177615643422093164195611425409804929464990558437191463536617945748369014226239362418453642050889424525017987405398416316362518147107715636073912737329251668840941107107075050465463129825729694081313743181026777014233666061862113125205640448641271693995969751364534058955292531289581133476809153327625000529505912286876565120028708932465774941501071762712068204078214751961553380477385139206391544257445631892997393148464445407486742299400922058226519346487927045046831244691099704075742178083992189321501607437669339532547132346530214068405037842544369641756054270249136752731465208491675117747734639893358360715531934025462195461318071583675914634698538950365625953880302014260928011631468505298626547687261612486316912981651893534804805886399985457856668132426186586332867516038566585957432293245807975299798784022716230749997692872707946586574097182443481950424775229048037455902987620280575394047639304740649450309222651034477741147702640171659741547628702119104501588448614048601038770080210971283954244173357577128120704696577655394535242328912303342588181278365496061878334951786372426338271894085949664395226676409698867855619759602766863566443705448819421111971772700842196988530820973650367486386145566392399789430974603251129790794850609248261282623761778299438823276465230544226589442304798043246074231086476445180735122559836184096357105313946246801734868947135585525578732281746972323790509070607302143288188946278897199382302360227286029102607582165228939515108209810935095637682530606867434528749250408160556423070094725970615447986621431589511254058538330730452488665168748113328761507482807182382753492456374916001932018195999179352002893346612386980444007118707434694693479197751068475073203369643939008033605170191799795850516722300772611744684372203698520354317409940077768818946885131916109580759599102513085471567402996681948426235254329008485269433581585922336039453590811132953098207419412376054947866337479231955438616888184630302454143752104145210466617659987283841450835578035433027382680366860554567322470767865916955030281209020902096003132547642873889973800848037077641924388442959091849845299946850719799275527261027006029934048550526431737703645855443134421473215307623889605196891079650311123127018186457524338751539420343868647071076589882288227692593540203593882670629465234888777866569938860270422734807504745705035303475368406926063078104629534790199493719930685212752264647500600949033628888941399961872110546029835747740576676375542605658174291117398574642104578675638605979351070660904723608741773692513479122947771310045404989947032442341994186476358232167921102099712742918343314718583399100141141378222267180875060262265819222014042512659379292799170827311414361436929776086032176008314684532594375910420269736456377821277408430403752731354524504143482284403642591657806627906390697793821246971394628675452101254812947179891471617924451687913081389435043443264731284908387467552910094946377580055032415333807060545800539234106702713309453660372922920537074888653922627921908561327583104941684073810196633055148047623595864525699140097595453233330007999466604932344236000629663620342242439674658195508221523816324435008056035138345927255529196361898864613412991365182188071285557905014611784986618901768505998466126928429316905160211063540169691445950468704203104433719132556884271908318499977416602234501210342970798086766359451712561654129865601738170370430863614560982615188974099391640709340765734061835085234372961687032291668050157835055825021599280389073034433129425308654119783689982785022275152855642406539029385627450155015342810564866070344061028719369056440765489055488882835661511467860986441179220948365375488221414100373349563921621095831080879516051000744303742281655890022168094170167443810476548890136700525063754881604479923994979726026637296874381097735277780830636841933208890173708395247106822526660785177151889142014797872715024000238356600940870166514411516572258594326631972143686381620328102280375486069012219762228689973595271431544584823365181887347676693977558655453196730413429525765119912385287936692450243884135706775296087119578212468188932347430828920908426139223033654168242001855335093273653921193468352248100989848436038416194210020080249327725630678008067663814246956726546555833235856006952802820909265914701891619835837422058733637950100506425863432121648238612128955739880982435699237723313936396736325170700679011927059161692436976124119733460529640254953335059997505100806827430831404673372767277420558613415529859771618650214353207739250400625146374553018097884802593721531166706471352554790781453569000794675835471847428985999027438664753601264454182082832896378478340788943219344092876451869390363782107102120364454607592755557836020066709068421467318731196362750601669709102612651823095064782008562926445888336782632174057061695820188408784944568788276687208259826228855074879438831749553917967024104642597050364182612706649094392072332931598117698841739065118137102759659814700315517176183071064503895454662948600010276014493137808126279082784755665714297503415299496464426679684107623654368811377276628821720130553564502955051763826182880293726470060857327079017775571749451983906589062697428721658778646221901046555604936452416748561714663062829960089613980908309313670462379919825557460802706977425567674936201749009700704879143710768562529457121090017164960710629686082030277936090670962489127163618076987295860789273920402560841322284428691483904255462791830339425795273883399430328195663128437546097400203649126445218926439297077991600314952469745407751388064756911747742175012147879477054011528321655629280663553006852852555338675968940342957479313557386877299847125432677891719615549149461451638379247113533507932055293844034655740296906893658503590879267926949863142074669632224931777782068241914615924144135818919566041657936745610186192842641059092498861854205944165449506002115351368027228284889335261255050812922572454918534487956627428580259709210314778832605037425129850648025914384233423259501907291959954555049670569834092946219574169494248330657443639750778272225052174284740620717064882587175164728730296689678034273666365035383161235804366534073107517308116137203820205035270323165777616215186679158321189126836351708860668241561593187640249380864974861552288682380642454223040577868297863318228936687937139169431412904015537331863838570203428669783905849315570455790617150462969393054695684225398331489825296988111712472797096995324162189321838738582076996470505596470249200902653483869214767933949913814659234542147181180137058473652885842658983468720568871231825982042226014818265140828264708948895849374792627483725371107507668546022357096915114070028653498280786972784711627431244985816167322292022078559386487743690947956702868546296893548571987723599389184961143101098888218161147209097645375294213851527899673434028930798445800170248990290794060398195492970125799552549906005459059476441640000230800599785180194033042183181224214929188863357833925446987510679520576770665613294547768081242663407539147662503837895442218634515841524209579573820374701622660947025800931932947694362806414119240396887658947639206471193036225530005039916917366593009072077487600567494927384364441094006830147545695192871665615259295914331863361612786354815801595992249554149712334444572657889609240022257347940043400227472266423750398958825888835644180461689676919173798213436090187414094352804988487208963981233582902983057036745863789013410255612774580353726078151844210352769476598875115856704030319901159331061524660876668322649662178387224280249107760805033920321099836877546801651956790469829701608438273504009617057144394806656351612852550009759711860168990691429043580814271013123327518609116252442896227508024626932547086110419562932371724652496247744551069226042479956315381039075096966171686868653119364347716882338207220012026126310230446724371739591493724614965654921510183912953375822396139860987310003004327164517757773560375168603252945795596279762891102244056737830838435410233511098380015243726141111189651191189012231196192700422639155956876378118010763911834165388717744067965607600789895734510809999839930140327399965409868693835329262819679707978558132954805262167088596048848905135069199048247883923194483184442763794745475898811824653487136522092296770233801645289994172976825282212609667235609233023640918590251058169424287342002817535108623566959899574292244714431982064426827931175086259585194745934821179022684357612875764231524933773891573384788905448503130082736496369127679260431036813556626419714106162080675095760726166234461929212012054863861313880425560163835459685168998065105507258375212299595226206304826273137081098986610337750091844535495068078224035230682085718809414984800992104238567088498947967986885156125645551821801780943848472490678207079617524768081069149893628162605565187412726896470071257445369720786043221774224314358997263440408073368829462880142257196835771286826714034559104827785341072671926665425917182903561097870797790981675904591026238027221833489040896717935090598545983515921396508366907694885040680512181547626502541984971183722478301869738818767187551193737235466534784898620993008007236711526460096413124135343539251090771679033427517455792039791759720285616903202977300914441399893337824478966114169157464182154041798823415753332758915051571357326226080364979173877480681870359714129687726809702590335954876381199576167356048162032815136331002004646785756345253827631730907860984959069860528171038947179977965266122321166686268940833043093013188709394976907683596689576121595651552081758160911668178825023013290116590624256293587649888095415543681009503698076021064740514113720472621903497447842782719451290369937088571124042595860224658753003172336216862154874581768259680140599884662153241658395187726439090182464645596817760289065023398014938397895505396424145030227972336806778651423290483654208164873624029965466607076984228389890697854352481766118904363062951445814673471184631406247902170626457666366929848904371237655788588723605981709439067173846234126977087783020114593115141431647627377208293074174615110171246367470917728755391104422072457233047781855703994215009148487216517815609836894136507671993491686272236925981040006874884367875377887811726402070024185477357405608181720470338165213152122998652682189191319398281809291512659827296287113754027025412052848639787519950503860390071402785898104267111685651389169855982152000400441223399442200835973311785692391930610401055736485723556346975656051605966726896941528365128671791909188149607238136122676078971521307730079977965614682906987099104133643257932659134629288059706228002482835630560673361734696999228762009836864590475217876693382411806296173552263889473651897674404384723580745549886028671776106387665821610571119588310587291252528340156526967011895443512403352978116981091284842472176793888762487607585884666460790305501399840518942184250842112613933510731255217092795931398097147916129773962218724726391834298654533444782791067459014603474565289080504025422428799252307791923252260068451948626713212155083016515152633143211178262127437564402255950530570748033878276214493047475820938849773741904861852585785651224685498677301314576465504152727604404792192632596376753012914017520963753983611465752046888555624045565423669791785682606139699690077969938086452005460765032472335449113213443212129305301046827267048342022715296134304169511039793197162257085333249827230048167030517168763976627859179325375711628868302832433091098070691991665508793345945321065062376618716213423389424656631410795059984293343128860268131446481037226712688983380247644132728744049349493155133259505739976424706114480367204728570874716238975956574093492725218774008690495093808152600822075856488090258685864644261070263563021917861536666645535465370480390152045386285660024341711453722981762460015589495984425544195600146573667262481658792400236849631764756690685674723585307986273662937874824513955792733731014532263953014307546737895258425742907551167925393262854512016413977226973883996888530224039698155644958522975464824255559376754551188136562589191521594040823549258797950070625186500469574238478733173927362083627723753125108464183442730254709352101611090873691603137276171024432754581580775364969035124846247088488682130102208462055889181343707595662618380346622517213370924555703861663760296703715129987878222312447020735896190503021032334040963837449418411068363348516393988556703726151845407780838487985726609697314251983141938202686309471331979693676255890294131847130565003527606824192638356920877685549574140864843235401150447547147428841153358542899935005055713270103079551150663097941100698536325694011341566633899011627962978834492843844944579633625474646467853531692268158174076085208928486212958901311029417639648191357253888492602713911036544699743908748701302338167516527718440540135609653605037664876052614464180388806100551480438251314743488489567048645680429485919928929968929036210382933812017417055124383326611244301202565487061759943652393082531810314931612841216060977175621957295939115268518673714275863892985961672378855064095569449404324109466949680274044995628725353349414219647608717777291803977262233523249077710833676813280649992466206444781365604796480310693036008661983987320901007405973787557586504541885875904305330792429798714093691559926649450356975411153518617760081662029832889920012644264180583194283556730577935456061549318816262804343575892248303751217204706783949708079685699181886042849990946219600584809560986535782089860737212054521103202152047957455978148051608696052923276914225649679008154162621055553553528401853772554805811121136021818869259600851996013224515760305331008615264832143298781324069581378029301096109550575335270770950969173827988507153039284769918746267432217930043726734486258892370653964800003093650022451231488934950863746969608277482304034104994056628540069365531897005810303015748896863984479400921790750614832399175705704621051634458763987217490348796855889700887038675913046544768807946002087937256915081847905497802387079610765894693401790773460115281331668563086885844951134529138109163533550070005948281649360849526480382614223173057529493198661215890090529590371866936834098626246606370240584130319964812384444813968403498537481783850759073959087657897412931205051749055840275782813939749889599795131177213173798194999255415509486061909898658307495178271666816824451046010755026919723941439114268295168381123489605976330113471317454815607671679848428462479228990572676760549810252845158293750275627340613701484153468028632979016948821637932067830181165660123844489187667551189584245085812514956600840244602188328122379072870518138735977721044136812582141667078432186217690609021624558596947640390636874820680917379681278049473485054343805101011567902661259056424009007107489324305547825057871299723388197799846755577479456561384762119365737763719209442083446800495367134468845421863678240254540326424084198198000683377478571446470019894899716453029227059110702697433932239986573678617528287909532156224772684177742827296918457218188822416269103686651302434044534874521488288739959305229864016313492904276755681147359590989406335181421435814161202486213533865211909263299987249806387488758057157900163809918322378600113905595680896084747277203073822774406878654210877829415719787761990832397432444865622083173835771743842185475147722709143096845987277560934560636525905752144887721528841044543078760143439605126484363796295968123770496423326925161921716474655750370301412701830093346958376475249195688997199765257634534359021870280596985065908045896340828132896969251309832990899863807270570824727823357357851902245851657319334838283634971380676245943214637959294221558285652918112053798491266912925279511686260922566395619572560803190558256614548628947082314969317482339923258036254976912587546299080545814739119175677155692257032417005422900010830610186406751681900632396677622275419673132846766916974223433903727315790777368903954101775061607224934224379608334006941538699414128266117183113360363121151474742424952505516212689193047284779488478960834183555357921378341687482207853530434947377309605957488451396276119935365672776864107864188422611148465637156680692171432065707295828600752755425936017903498774141665385239899342284471757695311167666942479190693870687161350390730345946774816241232428179342573036489837917045625819583090517360337185381748256206284838596718847081869850989849423188763550507923940822037728545966698024645503629800175872134950358321207211530122087111343090723682243167180261131599227046551937747291001942953218134907303209309744942924357536953465184530908460824408278551420899607808594785394672285445789269411233701812940813571233204367074528477055046802397644093682024143109184588708016900269385179302060227910456407132639676286763997134385710714916444581045022007808466873662811449817272331224433625342172378346169119920456385583993451477720236641211402894677932975237923882170448778449945727012767581430572214030527685089346985365087736741670775410423221408359062914680270413885754543579243702856985358698773200379748878547133402143581881800430788210824271749768078791776814562322160485317400717740566565866250870416275245704601090568719771307124226812958718687092785114985028437258790919528855134735886987754345787618104162995117328311832785539648981353370812813709638105328985496320660624896949388638721416398713152280568836243786934057813231399103995005266970139397357438688914583248966563055028482586868593506468972928683702899944767909884836378891342143187300386786298390231397510130432715432436445386000826222410156914842238992744924683437555488550956565337704324866993475314133669614692813312964691523108426484661053535268478594245264255550310230847858816382508859293221774147732934787364033309846793775972121597514788745277468419653146785313448789710939122889512453480048364126049527594939594658196988545436260513452119552775786557619554442004620882887231260708757344910292065452970012352615353308245827276524671381555421452765669526805906245489617758743157240147681123532960947058329771402100007949959253199132049727675144424469762011661580869486594430234441560547951957765578223042085125027124075419208016094683746651269684055198111414927619032478812157918583455926305092553935420327567223094523474041912077011466479968112318954996968924772054593533473773805349460683341271979322520921030836039036030039145302544855342595638975644566510439433467163934196868601631640807953559353730675006997105773431437103899854471548497216613402924692130635466971121384052983377783253505213542332989439453563012813598986605309479592902647011979595664278884384315885141359491710936566253806339328188898404444759435074611094227821903237083881653939853196532114084635694905314603398766669765442188993333990083958474077837194191966520762597423123511317216364211868969437527276612720460845462945013756515829695203252011792892312304569308205194868011120829274427560677834559173453022381642882215605157390607116091941312561263535501136594907052996770584925832108311038373382724657371735171449438768598273382228291037099778599258730941046310524167024338398239151413549590863655240059093211539143715920589928193813437945659204806125502436141539051806244288492410868295898668932176271728575813927351987463750718033110482825554748627782359094358987952642912655931341948231837343730659949424230211548329099019739822215927496839154640568630920163333357475259564611037728275148076758410099623313603535595762138209991059495101186100696565494545980309837627589814264460917589056361437677984621840062803021535657557002627185292562592373107642172586321135334584038042951028925819597853679606537562842430953857541846593224879571858029472870943012304162379521173477682237332386721637209670158385685422312545894610959502684930575598066436897039143731531097237928292508306669631044970708175225203839358754569552796352120286993293813018710920204350929466392738962371584632911276427039562942424272412486265395639645712451846043717296596729920868986328426264418330913472379199397876567642728832895829531501697997332277344312282186198753233034685888300057971074724150376240442385839727447677954720274389884878468899829058863820828403182155290281936928633345410795469588633949660157512966362247291469502939497187598498953426217927989972722436452000069643586057888756363845223386338881245943348455040345202936149527336388103135891047593922924848155342953017456151193326874245751310587442630686646239026004756418619295992260226568142410120650787141372812094862885633165834686049000553473267109288947290898236489059594873992634814753762759761582576863581234536313132602106791404516076759418147600075429680219652886627025001494185338258700525522972522096882466329364926837199031282774753013741286532455477346938314428172150549670832491792459084310154126520042230804882933988695284865570554499940614622106378764989142152551879749018394321928640139788592322125287208406876193102281023056969295549810850635126412444993610104180907099146770195093331631598009649813240765159761449688282483198522542905220939879401286673832249888755212101780886625502357504288933718747041929481864601687036983903186490089476043939126430687995355285218160337133252039101166360578496914632456273966893203589331584964876140414479803654390866112482315016487571825316592685769725895301948974667876496989634741311309510528222307916802424835226822698109013661039662247920174747138118740296104049689287396672161276058130556192878750705721090747338003484099168945297999715265307648795643145159482373667982735574665224437910220287637884281659919322738692585893500889199633552186304106161743086140279645561610647897204732803126252083273590495802775696290731716315989985112187559747719021345226326273205320869075565132923776340315751893519356930306866028328089323383384417013950880549016238953378097537905193720498311604841753215169261050928410613035399968950943169047272426617565172651491456835226082110970456670453834474751262734434562706861975306554996100551019781955738923399149157619839846746064491165769330181500041187426489792677614340455137506364093310733479455393924336660268305668429655790045551706534762864139543851274211653897472728949650587604299227493833573326688435953321966653019041706308764355053555960724274307045526745984332309361347730580617961601201470724207882873394595540639958125219862779134236424605718751554911563078956960505947170478316510049460884063924926228834323406651154546129796207786221242552351312723482807749945890107413629674978928609240791106747502136129304042816524152539614174438131239283277987896168204327753335822593957859177035577769707313711392494117463249939567510719512718312887469240826942045578323119799917249498754863429775680686289001804453780747203131094374418403000498854606879903894163210132563003120890773916470952697357032482441212748559468769712728947413032870075151246382830908944787446757989790844644694768446985418150041550038330884870048083685997043123175903692348050060454449775605628902488796297500281734860181833117483564831062512764466845354322767406112536120100844017541070731862678857446586817965565427738747415346861730971923128206585285535873964473884470017562280245497483805393190839505456026544527083432795639789966652770618863537702949867077662929275299427856370570041796894106266981926892936338915873911587565889752445823193606283287343047201872708981064096725106011434601501390963320208724224683750133642937476993175336387578162764537498196228955266637385920343537309285097268024489457491340569858416964647593689522977129627099608129465469154964750061310558467370554808344495617788342514077706937387654813215757908078918886334453840605130214259038872713753968592568417703505804330632092322431012688533403434712328571023194157647161121321257330530165900844559427424641701826582785810358174181825962575507167696526807148778505299351292260898035070233493045217642240246656498162716641167896036795200601503984857945370969407065489342627147631332868682142974254952325236914673763802379738577775232542843394117589028762389708490498595424840598437003864253954680260659631545578938739113386685370759116002344831973738292922588582908566388833619097777139908987473550925073612869997506869743769305698792445359770349001853502664170716478605059260594087308608067242557912460648508155734653747844276504071184729857175608821798461702412899773408600051220003937635064191827811914309380280463180109623061826109618261930714710452976036247013291932947346955214255270035578467381898253044134959172651480918612555512460607488884059411541763084409439342262976118905363096730258819261611308065466081723187339498217362747679888003463382532799773371295773826568701245235349307165638030691549052997932759504800922526778617409987391556568579999704676373502176831697381708068739770054885055086207214199437728582609978729080722969004313378938475944713209705298087391292325958647909776285916538871650020009945839506302086166919780418201732996106776496001468631429003425406040905395668477426585595012973888679713703619475608437717363631451946281199557386966729261598508688694702089532210906424603331334092801147446535933666245144977042563922732479170404387380927299385901799437401803948961388567726395105493467901190346422181536828966256778834123068110312300863686937770278050332025769712862522476358669318783725923441539567790605349445248777072485900394675969300028380756193135654863574888396481410268910199592520442078118847553432211404139495708869725978498080163147501995900313930390946700298665358326235676664890483512871951949526817878719070460272272940674424418122471325318815123246392036169448156946937647668290507394364998059191075534522818693894016390351187097938907367525971338281418288339608769905050710634589975507899940006555329710652046176918532010741012054037662941726329012953456963930928888438513387812840833587417187196011728849702469723603934096657081696145935634257135427197901072307741890033649105413074587950174889363519060810854117301868420503245124058596188371338648482872714776387521295434424748323067726267794346177479740407859250079798506902068126087657944678945336317687559116743729751726799730706307514493119738396999447577208965000525319725404095294671612455413257369980338240174811853742154333315324822171610120120308881063735777215002521680375021005585983232303733393939782770738200040546054330080913716681824301674474193250253468915632176378691606606295048638760550947068810051498125992446662803598552299710745177533379888747422272762733600049175611348361531030224043883016996628947062773602550079181246342566435847335300067530716948794154665700583483426651271713949967659388142697890203145637331788838227793013627192943577808192338674139438546277370144842050965509074668736958295124100439616848115664803238889186264424093580252406215501863183933068837173447177528615729511059387697384923381286200373602812081933563174413782281541178158554682003584158723917329572593655710891381625157109938755550066340854893067639348562462009523387059641412033893089663001316641056143958251425057786303936717257968500567019834425946507715343114397930436323246065544935660598735861122368781906145316868559419695997664663088293922624937174308981939984897542235925617805390051498969027686248132516270372620288285937242132183754776959783347300245923638344644426428271508107559833324119683820295786139514460248761842146335323815120496138782397248689017917420380117537566793224787936717386563799974858019447348922531497683218143660783790285076930270737401088319642725602847649854971960354136720996074248625409203153412520901510481719379992022330422104064068416596111154205594978381989427365525482298405505394602999161197130966145344052679321231618507233516741821890600646089874505724269919377159898199127939798288435914204468863371603469032989885461929780481115325209235507705725134413124815500233959936408898100747927629000135874608752082505859815608022295702325807019859449312783166803489492021493396100025657259635306359099434522263375952396188588796977735012404912881484259496328596867491717245824249343760839280549677140397338093419922703357865284354131067981608155839703921536712459418053572116106826876691763438230729139636192197513763197103966085901432424238611717933533264634265572354998676327266033325098288598677261609572635359941654037110180138002910507845019914211581375711871084353548452182238410431315904026811334402212656031864161973629023614446798416106524592671639543309651471147585309831301385021899972518050997937534465761809274314727211848743838188243823532061947014076628409476789761004290489466015306774901242876199749498847164864041225595240304395681660159269784732784094037231905622317393050499993217516132035765174023160857619714292483466652710989178349954052715349422918283588389334648821125248074238722613994887051198827647521514010878178485112048751257924481739080856598389350642859518151654523721519484939682014039623047451947136835756751627778423716485697077937230004488526981359593840787688143728609271633438128287152678276370933605142903956022947893270089760981663126954582813685150053614709290587535615659217351677097226515317329888262841316037897281434563196329401537932268765809950781689604014415883903441524994653130980022929344401678710747897350771700713520963009013393098639297069615338931831260181224379719662378683853537372506337300135902924327359100186764184501109961583814917563749952098095383735617406302688919136461004485152614814182588556954229086158824082587031192988503885484709738448153686182801304020458009411915313793880306224335329279767591023170000137758957832338875816928956218847947783233697909356127515504093312814997741068001818368690471538927885363595869506303491270952368342549047637901312897681464523480648667587552055303887824454903334769476346035489956854871631134505374244976632349120751540458364341042655943925101408598446302918083723134443991554968014069804719158022502685994339170979838903832485467987226104127861634434099900934066882117095001787872554248699288994407570039098619098472322884783065455863387807939173764199199593075169525910631296899021594041871401848367924706816320229342334462578953988040223764304980965057649241146598293783353632321525726402001599895392154387619591411046597531913073705646593063400644000070225759881806560988125526905716989840734305229467816090792068073693753896224484968094654497870843820605773412885682773880815138233781203081138908603395263796368191027200309721615844358389995954992527669948555655009540537438103572845243215957040307001647748286418152381403321123529022268275028915425293611617264789752005689821946971055936212821061211289402580878866259656956057128566664651759443148250048148818779600398644735385913612915098236882208349423955802159077950860049333364768768637129079268254199251343103350167297044745645323110049785122080998281981696760259428769528270602723734109146548257640436484579336988350353367131718238464626017021731882568742954880011006581318308368087329172207928314752880871236517630675746214623696401234332976204230162223851412516499405835164405542864809409718215437696012399739167808431693929437214078714629451225962770988075395522235691437633889811361825389406841914581896304428295831553749510801175349082699434483235358854379506790695242893276165726639387635336904631262882379457425037417213327492263116936804442283631996964098100931142191931881775589213010085350323892994528948727896168950657444068409328051171853065141647248695983462296174071741437243565910362702237321977452404760894538995018752320073042506662769708383652509429364069883683193755978597710404452822438650541537483774791676411502342015448943056598357182963785210793417814138088938262478744526251776640054813981275250117261275721784517728452244162351716797590974289222854383600193797521160847128630616256832134881316469549643045060458261953879993808313773297619221782756631464038654156603618603909819982090222083300472644004304537358889897923967087774449648815054728256128229732485374325226402062854294448311400481814865589547266979547677523379592787780724592088291679615942823574887842505204707101216194516315104746205790099876904266493186360861712291107229518285179554391935207781604560527972151243308950627638523803851005231002808311992715101044228474962457541818069053062300439204495732767846431392978712746464236849130276497920720329323067746190438036711760499778474646438330216116181767908016879380630494635081314483024215907525154750156606199489850426063076842919385111623280511960458339454036907647806670503682855382198698744619297584601458970696283712793597556624798021503892079941187967543235518310641013878721127223257519638838559214395247856700680346438870215472788704284077383121976628011755221486928179540245839758361598688645227078161256996637142286745319175569444381734856563309329559772910865643311260569317314319825332704363627865503229503318645355819577052428520912422638689406291332027574268342350816000768591120924756078862173281945642624261301178366270682024033569505274735839777999294809213357584024602047056908813096560317769536209212740068312797567695623915003803292172468255047995315786619087420592209972216778995736063147794433231137573062136067425710585534626024444876199200374746504652499096493098283460707723839359068244064017429258628192530836097665637602703773613848838612860812053805913014661734268039783352912855000985973867703810327636120717109961745533189909019208496394564216592818304436924299727780158875069151394479750007407785530406478358746061753571936513900877407751912538755197010499913825048317487178903242294077612781012966908407393802067067749572449246312578249679884739884293344733746995810380745596306873471723110154819844878096250332357673070682700912280489721055230668234480580503459482869259856496092472277147525747273650405976280532410799227026125920676590150483078314098410966989352380063122858907355493157949236857871076115871868701935965666625482211315484501825841910219045488336163293727769498871758538447851084701384116925960454860004002539281911000332587670345274478562509531893855377353339290045089851037987937512161788396030179219472272096354291195591178152378625304803704565018056192701427518405887458136477306596892925116987415589448324713182938106164500757934026038064854543648859938015747240234068517059215299236280535544823745761676021471324411305305418165319466857606839884537108919258591383070287030297005368631831256044058657368904808087265772720132734044819375322317599746712601396428063344106574784975121117091308190912641301667481296754673397653299539807506863731967200003192246844177016037822798821292165692619470437185342937569702262278878849984052761760325888730857358664514787567920165111037270146722705660020571866439415629316083026401976070990552004048077931781204248873709377066202811465901818813849138901084853305659834358366564033247572440023381928033873412020779401078221738092064554982682472849728703958440955974108240837421898937580648497144440257009545401252896386454987828553293735557768991785465467478540986567602723363728807692156624707196274095680704667153504989142219940342912014257238926951513044866222691124838536740580511010901553734781443345763408500037045663516989490695797841086979957524963640663889889750902023234706621631989319076081943506654622984249358835042161197013594631874860483532717446003896093968628392867569803304265685551024755469360475572948315072481792260889316022826024404880234877028253374443107510859805473351539257330925625173707323423707561275850745773718128059230024188850977991756951210293632733524675869462601682333299456048841190996210160237017669244511742602811117577058481353093654659630300543423722538243485835586232239921383536648485079634268862789009361789317783235093533668703688709376593155451380896509144989494036293848685472885862388736794687230072423896149522878701385088769290409383063407069743176211315024413683870184065300982507768261806984262228883610799506620512046405175153909047809051451979240507780287780953737934432000380091575493954433929812363837355087296547804127713293722220863975280812253779031416199465191958119923786877152761274642658424454005271609274779300857485018525081627049524013418322242160721141232736021893631419532477313931402045925824368216361859408249576667147565562812912041718664626076063355173639447500504496355165319199250390274471553570769060014160383477750048622869551936810532665594236287665508832428139472550479935872293340015760690752350321044446305816909848044159448223289339714469749266939831250542399987099576171623857032941629765019478272132552161313879542597277065922171391802001992712210318161951035028005630166265369948334889117327117395012663923126482778372889365033588583030144198673179843782684978130704541197143293848605265180361327236601777772058189993624499774177002944696500923976891837091861298911136020436206954704388670757044013375282378262181733142716474509592982855055766081920804607320117446902318208998508265824951429375686690404438407658897779306711215444398106153880725986845215124218391352455777895188129853147051453338490955924184360288048578411011119775957491888285985674549775405799057599160892434490982490773433698801621120184602221095204482391703528956510518704203671021094070073793351150086059929082138739767558837932061557855898673486844589112200373466672258136247683082428024996599649749212634225567476181709291462006695590281044641666388020462874379019531039625702821998938894969633284618504733825637486316239946874872475580780938652726949163172123599688566258347991721518435275833590282384893560886275862144535967599335930098266952203552410233194484839357557573134948973966306950415920502069107630627997429375036031548096239104284002588568489895023442141596682771338480488272594386533345370682535117201333560836334049689340911215252725103839239667792065084466621504928085233869037324168999997696686577714164623719836395146591478820359997891917334266144934765681860710901962768383779825360795037803674483884913006667458760272038723478736366746385444606500099486444112231967264075772283940884122996678576106705739047726298947085235020026771141078127801086211295878265611633289941365577662415037015917995422188717785912322005566633007522238239804552145213598810833720738182099411849242034730699321456746437933924294294624634808783239289270239856847864114773164627070647429809222932373963262822632380231984364446860226211065290872175974388256853771162316409478384754528459852347153803940629163490829133710780933082803195600526967989095484363158931491515178938577649277274365419127687292822275459345687823804449868325993950067371288832832040237167144889028906691680752784185779776689450277322574977102896468809031304536778915753479515444319792924908215161453487658185732122344237067017499881326719984478130232603429165636308206605168481754892334224383267493813228833042986683539688231299280099967590105985922170639313106918553646507068384665931118040151055898288954158027150375471032672773685490720994710622235793413355404236506271016318350917876237655206599672465353761842600042553703707902430716225079459154342893384964700923916863937687849653801583990734645336372606743648454374391161955291458290629446296368973344325341232538453728853922976529234622554664414987549164652309434289997998620338855191409104990184211745179307879828695162018469117985625082012874586847111018430940660058017919007873366056112422038278916473429196747868560566984603646591929093551603539975886642581556457152363582019594535199474047299274050149011628147187160946685513293863393651586778736532355975218592210600260008572904891070256263556617759244724239620479448176893045986701433935249504339846609279426607527277849449438276761642524544168452351735493292942001754584173916354617435558644297653252022220171790327931405680436379910349522416753806070086637447388098915267248825226080052021550124604234582841028273479463046500177499682094445717449080275599808000653612088678500160609591622761705459275536226978921420558403346091553575461939371691214563519134225271204646413712929792436749453402151667200914562692170722163070831384457382093632069027681728206726133012576081459637927128170992816328467386068819251339452742871098263792806535595837341573890548776594141818370050249384152105404623991871822719616602595828423808093772622417617581959946260324525328437943099362355109824077366720281100630380925569343128028879674487949142267882475356125754008171739053317221477956693396736627348720946987669934462962888037608688246495958406097443252450346494746120543733745326188980698429269314012229023865761004242043810820661664747166211087357475504140724147368617532209231980950343431345281994696261812395313697408987004041899997777985537711551998135153516508617637171096827707111057023108866755659140476110298211906196644669041773705979482180397328632960313426288245263507075748130735244399813047861600114042032239962526008899018645796444239246624086357668670462174653467068046374623353923505706316054943783830676958317622437250375014711419648212847862822150192455647131905492083420006192516023782401072108502011583557407768860561025418749486877816130582364534629570056926752703856232957183425909375810935479245334723768627311667569264493209163738785809143462613667536811704655455949430156145870775252120885198187798799617290118653831413991353899035627185968418641914496904652369432828868885644761906962701511486428183917560538622168126619554874245894514062403041336202483412284940970050330694307049937249446941075941573697908363784387104343615913024939026812315283561935294685275692914533398353151339111715784386995822239702436773041992336848863326949756137933560574296922258257403425443887040843652120308509214717050233796830929929614342528931360931293785218560361369257960938820063791745976755277894984733145815506512000863269046085642599322790791793235468185527342896278734927973486511820988991104835695669601232415902572360450910999359903518935670562200177121439552778125460843918735680217178866675783082283099863534501377109036656392889934150495430928850949529007269889603605148428326717753551226380375850005260443892058203643547323444061613444094201100947200021051977636708935403943149958747058978163552509553590762662642426451167544963420409730296172576020397741484476332940380623779971756598739660840919289442661450120934475675152626554820316650688074907746124290171661991310381198084423588448006002206311319786876154493809858396515781289269930287594956952167980619944758966294497878323530543732866228063217955821491239336646569389181248223353730498112687878854405008826761077905652149932518760147870461494369746603092716708008089633059364624148201128685981315169353858643715869164694491118768495421049152904453296786558286912962930033681937356858376951622182061301964105283452904266969431211359572654566590430714769148789859362005232957249008247650530632495299194064475766387665847619123486884340371965924535390883515707310672600264240995466012512333436856507975853363958354572737739319439758648203431536846835868338575020896721616631624227317126067199915414506471250498583000898545601112394733436334653169615012155792587124884709046960554848327931067734189260832963398554364552260109321922007487561232575553404517631254177903303742417078329286495282253118815700572133754828236613402118461555704502571847671932064775674109775631168882874441365181111905452619181061743779875745425785525250187514172278245202407940591406992505008310062394961486893597187477082835441236823378728674793013612987090523154467512847788831559567526627846638103808200773594310552199751830016517727413115719563647595104534058335792218960117168013861367119346554984498998623681847023200290752917075848807256067566573828297308311941000561191233803131864779171618346062655333407623611158941995172744101502294331522881801971943233477909245204734444828063147596234877339479593467674407646040285068083361480741748826768028681969618643015416254089829476607016352771033063425896343547204929671050138244371601362668380724430187454746922738738902321484236082771363182463199267550804338454444395763476703400046547897814135617869476270004690798706273033517546255428437256375275958922559581686518641802257952799206747784476748619173662748404151739514982035366362055305190450805314317598598147776928776889973870463431340049833850369954320740567600246151915274695680602660322532936829387756239780206828517223269486352079325020379355104759479006562734933837242433768554868146970622433396865441601507129098832645867537331058030403090860695527663489250533818014003201358120553874301163640332438404236341808705717063504092153091954608252677414483581531548934550386943857623516540051115559814183667345505270444273483301367980383942835412906925751067964400575146485150721644341165544251416364474000418320609641288548829980873084696633793552040526976697197239358344576964765594511337791880563300403031548297520143061001628865382377500876419940128358713141087151068231886112770909256772989558414136593590629842112399718091280200356730928144614938891298808178397303401954101929597022920084090641585156912669568652797008026060538575550388393050983740162277321356685039668935901381559244292013634594796801103214218128057135132872604074225636487464752930881751833355065440100104301730481785848700505190103155210879933685884518503359880136539275710256369726575781787330449559727440532954911787741028514544308225215984830983988672145291590640899897503100711695642407510649449341648089934747887536140546426914789071928462158512467126786166732027961913727905617773761118710468399404800752573318077955692950434825951635623583605661632238085607727402616627135496887220204484843339680056914900490423088960865349635235928300671800951319901610387015809930665125941594696628122967650473771016630158184565453484821867542126196449246764057288492021549239298390951730830960118986199094251394976558747205764049081258222687725223922493355752120876312347657577208574360039041873340519592051945303831528084326287574232716393802186748679744300195298866876334928325246013582870848659359210620939344475478423106317349145504573169475386593565955656967209043305102241029430452585468319569785203746033975564488322933022649779224019629059301410676159970267490556808390456711342626930325564968596579044032912539727065228965372890414874993023579097044525814388558126660364972799628952514380968078045844191889572094397234486827143999828412842569093837943823452288656245394124376636525292973622102787642817803798400453266939561603763968809223579604604126194150193458028388075339883108351442079593781974085509288265680912139043521564542870026572655064955383100493419825377199419147674629552513604806823031761158404085607572461761142249259804683303570876744851443955415131267617895247259809544421844216016100398692086088077249615916614222509629578199317849774985310552488603604765119397877317487184157537422067578727735697238744299793597438356407946197264723572390820520572712415172407402338643179736907263991219446517952337122001184952444490341355383873096565981262672462263290460106211345900830573131888498773441188474362327525582029852389464491034995011523731434498018008846547402896526877680992015602798728451063305419617451464846206842238646573825717793170643019740226976838786643263429853542451109423974676657214030044327492123230908334474524171529004877761140122897089375881625478144026144370000171147481039312205097167356087220945157861216623476303197041741959533772083548806886429809537181052536522061204495558295855699039502618749518943642456237295376494254998121944798034082529167119131328913567388270874739148822129697482589076710481367098278189204956186262899684509662224064205018154724188574522783947880358146623716219404358798645130466919734246576577730473701002866195795109899788288679632743016126673989826057056948561646451543091516801973475208214485221837534230955095510132653030086041986943202238572205851453507356644353138007887014099805327739840288457203378778683942038427534341926704524483107640119173105604191416723388191161075686119762288682526367069972295840586513118780412883704632829053213684242491615968639696035276063138140622996180493549306149097610971993550872595960571541987758523043946760014552641432061984889901316992204652731210731660229238244308713118613249439327067725730198463457798381254229805847231067307286552419994061705292237506601554923412741582817030047395814757998689929392701946314744504235021728276633872366004051762966137456235969556973507442831877864659494906387356948047778789182652811882771974082219425836178370391043630595539221324466503932224941472627562087294983429824999183825119653843861836864721078017527955039566172912301760877147887373389029669819321483648052443737850211081885476319961660063540680550608779513253024801187822446966306342117772610265594698519962203592572630451567190707466675932149634509689028002895268070982487472570812457846164568774743041446242585486041621913984402659446670281031426797247304361669432522607920921098321127430317827736038622110687552191096674465543397013572263255254649042160627723254281012668880092037325881282377783289254219566574072012303007924901529490259807005152671398426662336965283946885663880473013832748790681375211154987518105981127667385414277117452358594541667305654684864602259174662849322941368830726278592769653970069923566456863580797210570999028410450824998308342264339216075296762754648931975847030717479346723090673790109271963463564947100556913228722530059048799691102482654312411132400918899564567390612334245068782072142793495820268579315049734391323073596301328164448913521437530754792584322474787348503216984976313167338180902869040109554378671680581423831494808139458122416248866299592936653621078159788108845937043223984750170230380471577996951311178395039256276700846990855372538280719305033305765522274469465207114408200247279365216162089996298358924354102996612976131417725584245309061039807655559293516665553314515823484684628793015425322943133166350625560205241963571441364666104509565309556117492727265471790795619707390699103482491196324625914752427096768727311912500948781555385547211626031101796497500760642512798888330520894965690496891859509207909637899535606713709280051752172652286145869527846345302330790881453489068639641691691859374171164931613621213904132252838219608314783010184270917899812928545830187822980006487221432575837895166617227515973318945584027245755255036173068318224495774508475659843008522929108400325978500426197365919578675504725862107830735601175118882243163433340220447188019174001481185285844627677542925676804931429725497463806742563671245283752313936212873890241540971369121383555416083653914853295557931938794063986876332375967864879801921087304721191809097696063470252815435310375414884263797511531242413631495217367132718470538686876918323060790341139805252129724674305336843755631825931688077838932469199968660312669890235796468923835309532330066407215190945522623075472326545419312912134462291575598175474278594118916304946140959420392520296123871781014291641068195797563822140372950240820099409030248469217239158949731501633386043875733040033774519012492949392666642164290906441861462125210895419237298584176419832054773637264812303283260727728746858624275070798812458672940946203191345222601468926044515555315565514865856512245983542493485786762473874969909998088061533341651872287723450277716044112009219097771129514522659039243246743914154616872030644179233676856034667529910968979860926816062038493265509896315798923514509341908919938194389641905878084686709726095769507784685705227298907986476863868327515379449575602929881758704534209156442936472043046348503829415099482501100107137029868556587494847392391358687510625437129907751290712110353936912862629391957173578317203180612209719014406984329745242311920145172438713496477141740217382003069202488460860667125637877226018889144566451591793508021395140317083939408553239757557172772832433916129427581486713814593012703901232669485416029206178773052395921834291758855749785056635858017338383685431052876730037642320022310638703850195779051526425557492010098460849091755787793036672213916884807423000166557186135645988459968143351300611385426942080375272306174459394326906030937021914584807914098009818715949265633546251598232997918840862640153055942325924916447465651543156389315196451317699205230714692629125003148195635036145659565214700997543102849274518986897136943686205193473508336988894786901343749450009354825255325732937455516019181662250201048086013178618991588804474374189556916252958573648193041874685176689008102776455856718528347050478821801663919517332593794560517623162085091356839043783170542777920867665912598429047881280216089752878972715305809202932477385527416040706494611453608207391598930721720078028312283664182846084942516451849841371210248520210687436667309522469552573233940830433968693208862683347792571289466993830233575096370989381547257334235792797587403418161336569244490171683172592549587973413069508370336875836127775640991694993717572423394159016492120192302267280055460723104588238577499140959869544869263534689485150079416378516050603775197936805586790999467572925366233455547452930391317355430097988349674603619581311835058638356162322433321696871076186494880613433557459543994212092376540257436087054344355145712358860444001176280934111811828903904370365478423971495704896257985521685955699792541289676526408230788696659372491057097838748941897311128930839412698152529027886599014774883519122215075844120892351709413925313137014412050416689538292975997933516157107457932924579253674182263167947133583661784559071714960407901683270596351157043440368086837175611490459461889585061761476048679894928141459314209685490137369062921421290632259130838047651529958877476597194160666364123154447862005454360081218013498766115330536051856457124711395348731143893580152274752396440991695839038666653939893142105459663338147151862796950821349745113530468964050758885256772181286456512981545518672111985430506384362107380250444046762180906508714865906110673817525869194981047629019237419151115812319200447557524804051957436648335199697941485008553268336555613950144690456581355485739941546147889717092613017047319257571669051297823146365842955057203648162975715854386674314042083407529666674051115430976122498528207267813105958007919363153967681304942234623077782543647397798049468383470472781939072154082765126334108325945132815686366172130454203149888021181762677029445727501865276330813923209611465598219275911194606619233022046045548051943839291319936776879786671301384991201235149398416907559153118615137955673401043390107133833757675129665365489490460425276196567235962723249109393843632128129591665601796158455888413955381532350436003773794835621346051638820395361841150071995341644385202176168681988961844005196041493436291688580444272268679757122925481532955075311762676891972834804004656810758699074274147650641568132080572547821037453352877443687762205800171037221301734812645027077550441094992486056859437935339523935532029618711304729884628083474921229611956333443197935566921059794394287073861362869054188350790068047962690609460776773025722008879406598671024253708328376344148602097236557784684220501002650832264745256219947278020266091147915034742285369878958342648188167702213115791441675816717852658784532698747982999631783552425819577507236093307573133853891470738908925481679529865840336526145033215486526130893957602250251330534684646112375536069741791287079277660750278191970772722307107234672514415016579368725137859927552353561229794057777952267424532001704919519054215191376932104235765507012844414470568828805528075123528003233058338345010767362838149180550420856114131556375238558982224713140710058335312866945945351312089577271162401703957423025381700878945654561274164791089761836242061464086986447514591141966842726812538268057588689904070862596188454530952272979850329571814505816250611829999934387877135562303049725219938348114209607962719756670942904371778678898300204024505038270434993098298838405877848149842660229960735396777724188760324485602781054439600535983685067446770010010082577745920955989957836791443511512189208050982663618285977346427598955031086512350843199169745180895457089312088862918899365153977575797761014080417168784571167131020663720229425159813871371022899791886641005093258945839901119013013907115867300225758498057991398956968732528405922640143140621990350359286123293190277571617633747663670694261342087382320017187681887290561473692087101138959456376805898104182600865429526900361670340940523854225168369196251978513696543554743081366596958889087563052424405442022272830265567207453922816883357219412246728535168062879647150478733967384573792195324572861774621712330916207560415684047041970238822194858521716992930036031949685177492587184908404132235133200509196226514480166412475742083256164145636222184988130794995945414960143358408133593936123273824152601955868808383075720177041668773307642518791261553230692665043659446849296801676661971394836653756680618009507078267890678376107621902911765869692730948160473001608482957608243269406264083938713642995698403988127258702922936708221062288337929078963422733108672451168261411500833978056605846694376018907397483727179264143820533657326114937356569811140943216232792896673082428938033780021736341296529090856852048642454039852127541680838235607591800791002143222830299053664648349747830250667366053434700463332394497491049726356729366539081151880908489692100799551678336082564675790804202684991434378696440522696764830996176090268835646329350231476111412072456112604842223890621472241520580295404012511618720276436145966320309341352086885411086274435193509655132097395201753629963602264702354867081308035986084850010719795723736976786449990143884516597264555810517420479828148567056582838727579057111072837535413112524606904094921102276836532000687804524777634346615737460849743643703521608454630354419505678390202401839144766349639338284044115956375956962177726803329371297292474627349743180708376725264602151985019542358746074388366184329053149134792248700026571983397705463230786177648208168247405194809586004032643816659714296636956830794778470961427655640425910157129520033542188732208734344274692839879042880578327199060576373562036529740619493886973500139928655136453889022282413235483179375053738872553232329708138748894262968352776043031588651914081261230158053917246030657126544146888895666453050807403072521491614282292294360826617332383871561705681139251148556603447316402331868301557281334435254811983340761211385585323434142662860610386732280472888540969987313927319510651893732281387133386997910294013317888221904302171171280269443507589025682753809600846018744537418326659980796754204866554068652252704737801835193481819643812723289222336440185002890855542142491461048442694676369764834949182990704937231136349742451832551917098073880556707720835015363795040474627662480696280770712363451904757835197502065872368965116227865231035438976715972128847573378884991181708316730345707328264684939347753331851940425900603076454399461308258940015506710752833342105203391365153147258584362958049953788946158775707847070329990993239679057161143112961950702529131165905031051684429637804310972868589782182261399704207734215785668799948942101764468406751268997638296791850561043636204393347006344625937509445136943888854404775149140899002411473687278551786241413472925206628977591525835319687614580969504293033714910062133194599927808105123784326033815224198969646240807068252079124398411129623401943560886478003914649618911412374827442090270886780018419959577591001288697927883337936487936628984088331942938077424032562744670518827379354497444312003733544389531501440062779994639241608766019130566902358012770173927574424367448516123057438420519123744480529441392950248864313220596991307209660569356512719844394587765756502742399172069231023094130112691056407183325542423109765791710432438871078875679509375638147476161842380814707235066967685116427408854622332689981359413870628794587125959304459143403195101123273617745186994514312681652337209828588292342943654492381079959041337372224122966765997729704181945498689548907718615971898643927569544323184459704797462460165421140547356111639257838198366442512307156262531962600831761378697040182997329696411550969187722494505226511388362257189510957817638105419537237498068552899697972451658813870806969432243486874981260268942207098675374637917570581132466719379198432375260986899523216408378991242758081202942766281279088867687781316868817080523850647470961888670348039992938317656890350503700291901727304621775117030212494849741203133244693038575400719727023998657164171953669375878801565962325759640448683354924864697186224469302177996973191099794278211922806023341870639563753748258564148810760547267915444653941979729981822823021616240651348539083870782416214110499823978232040640619385143688028857662174754293077536280968190753527898321678118377501121882467790540254621625866007272438152237398692607638827401017611434970400335514818576794673364402202279851565754009616814676258916415017849644001801375408245368336161232238346770435536879732677491249406685598822583344018834772364423760284059760461104853798013839488537987230854128180697336496747056523380381119912970840273519818815607240237946719080291592002654274116702493034008554042900382527743931866449034117472040985344768751064191247268280566398064280269110939307558221651762059912461249591389418574013668887052672989573298057562400366870623054493759764696640568345876913138474253829066975775914512409372078253887009953368906817445363933840190571486075451299696519789255517788471434480692934151945801276141716503299734963085850901091011509264556211459752536337123573884933802890729975146974252570587728788058795809221011033156083961242603264973626952745298888284251478620337141291972426959494124863058387704555252200892804759616880620151282692578331955130343972293853640511031638265619896264865370383215409345455468735660609279940546980823096607713928840701066565935432340356817764302709902999988360555203101863565425915464158047061372425027750586177396486908268962351743981562767627583833191887362661920066740543484010434830874311965945029740465949299631124707271504855015751022681885607696261381507745819201664511186707007128788874198322268182653355737268660383931015489976556679134590605649530620858795665130375747601754123686020029457591062473900007984546753554808337173620986383829888957174679654925202305310353144444582979339455755723308520159217691817455636255852680129909852409222201894179040465394109092947777924480688448890433249431596882933505861938848077483415240400229102021986648925471640174182442768576610107886671355313808296164861544063912508515368515758283505214704018041330965589098886979630179904416793695294821144012931943956564425671649426875932062010310558212776677640327449468932194656352212190632809409274601172909512022706510399175476193989445469254526580629223383769353924105346475659848740385070410140129851425665636001006041614074113385894309331419535378072849809402533199787206575868652713516278577736611686682209264244642582833540891044776325270495904920841158268574320618905462271456611638071437636704233910889640886682105788928607505987213688601684958435476724582947530513738193785779695949405089392139273711129222555798263742803197327224451355955649064807171965364812458234275724064420770298843087709199579903874306697362534577965312321451961807433945458677722284783628167622010264857272174822181394118635037524206547389943887047189289895520590907683353842795306469861914055212614123970446888701347295514503126891632126357093539213203829638761716380214978509602910763357919005066424609753580706381609195072666108216310614345830410390764448582806969610504171409226137135483263489408124443594476735814114905001475782798920406389189861940417139847637958427528541443289461415060119282767883171365205435500314721948627261655475891895847256236018029879323237549426958830734348149341143437559782188820211708046242053745707562373874043114442842284249904034045854334608288346117732620797247341260622375929575196018451752735633486744345783176759030317772940594806317461922523573837365297253363559914542352359994814718015133820679596758783680580713358841313878012190803918406923086096111980954926908677234049616313359721651735581319253137625051214387436340793120569872876325138366251018946625087249008289105475366123123018171984566664121200710856281266114526059808352305984877046801723225878569887445836827400975275292626621787565467970326331470628896413828601939279135266580181565845742602817329468585807105824982769529237077751128219373320917017083961674373366744617847846011093168204421453798475573061083926672927386088318632045319328730780622462827231343881209273023229524646550697080229717349403694875099466047354242202658956415370850284361766747444197409757763734279232009354724930420553334024705753351471989242669843313460956904741718096575076316731945677840563827140653381378163049422574385898935220065813589493946959671565865741010436083127638474178068497201618518980960661829900321379589539566020472479482084740281468608851349343877049096788954796796719970155719207837304815372719026079285952238649714710851868378108675256658304126365759886463067390529838583142159271582123669329830668062029777900325686462025936126169839416658620655376755067678772717525462781940204780888980617731790671580104893728909835774005118634546655969614193861579625968426388461395229408932211092878572693564875984261010639192064503592786209013854929539875367450332192673986066187496658625780494746322741371430873185640143486131355391474682015909493973979350002308032254920028876481211936626857266915389420860602688849934736954359403771594784963832714849060532816598339522856926084770148982258750831474511286359518376678781233488481862097709002323516066620795677555281005172575186655433784284211089917119749332707806100850007640732070900570640879432833757611532232823262774528782397959338490377927291900312870158395812278834356134006464947302468333187737878767208250221513926302395635828397876152386850189801332396435148167909031093824836967822983474376128915924328443114570643665467222746299451904891771469295805193620478334020666258140401390481692386460360728584751051042545799268887512502219016010225165812651459701487420343744708807273412665880769374169362028600986721551724898108567993297624380256421926805012590511221068505017610511244465148871450560888693075882618766112188951718698917301981265118211192434955541227090989456106058833177595160952343162826957465369607573812549971145240881600673689809319213896121905822933615624825173086674627795189560575693179953180094089414318608372224561904948032871769276563708392934685441188168609763681238020738416980839314429807406958487570430882247843647143844742345076166638940235876073853342192565201821885988384553114741283695905693618042686943372807066088816038861851254433072786898131253301594204571857684786466271201641599894994843032747967633102908609046438082888978270347042307984671790719366875818636695942766550071138403915045113063895350838262215887636115692870680976048181954405563033541484416517627623343144409557971737894133668227916593520282444861815441961074565122070562827927363135084884475853136106370775264206137060561259491604551741156942579428547688933515009588970083892838028352345127282372930515093271851914794819381439600981361125821991212289151760301153166421978285372509472891699605419786050954277882151986338910817863471738914271185100697340242685100663542458493900735208248269396367822114372365912578473327012196951446613151974343093359246854979976488990214002500993948487525034051424374658883005298827639624876112873094293095318277650183088149310239991602657372786271054678945095576353228550341276653650428149810955120795535980858813230440770129517248286651980175616731488843767365375680129625446586038387521261900172340080094489473903910651778649921824627018022406558275336424890696956382325241812946889119000100909748624604040433990607673069527870777790059544219560628690987183254819877885554798621797706345791819072702179245486071266964316476867734639603153597768782320849084811125241938553684728443674995083953348914713324387286459075842481176117257501694316311927019996284532588601474563154625731799168188205332321525939016407368841018352991476543757668738598710027508622413958234046857532566471124252857322858400257914748534099718989501724415622798201342308758571622522335422449357314409626221530478294486239741526476780805040922573456049705349772745287737203222932461610628107979046836131291974974080745730389649725183164683561430807292111107120698877631689763265037914379732610984742611068562092052216124977289735034628876833001416602546185653121654399612637462298076347466669274603265791956757864281071931067325535090970458458934599607026124476087519030109121145285663282914198624271236281409387489703336177849336803786008839084118578707666578617622593062950347466408059258345326653356558444322937413995211490701279279498469864465560487314910461488065507978856540695977809264842517894169119023433536472119791217840360460346282828538612178073224145467414817291571402285167287709602203354469032765879630574294260064973848784234447282418982687066519298219824131053122330239506131310491459328652120948477262041255400772633480745277742796769883922315807248143841164700207063843294756458352367530024043361169097684350069185096369148332607920749515399417712210948668357396924918092820258231916567856041391866165148387753215275506176808518677850665630949527698156175334991591521348563060263193890497207207236519628144277416793087217934744165273051789634681399541011691359275267927006421995659107443743933121816521157105508337683408535646873124138950258538593918865758845458953911204005616315004179603616631161961527010473169415146122688976761115108706348388716461776937138908914741179803514324307511638972573910229755010459425581357635149947467203810021875742068192949810285854072729830296440122829855491166363423486249721331102504072718012336057403277783376675124519409308273238058005145267065616006821655972874828457677729034159731609658535165589161178902949558546260034297155854973904124591558156386356373291534585226821949574082809373012788632640203930329768928304141957501925281250116200129543380406225073421353594936743990999338136075444822871245057917921649268965228591090289742497014567327718608494608500571682931490485748880479657485681863800245270997005267851835569844271880542250900013540314083219486320709765248965586300519650696942863151252047046156189673280327801847789241780316819950387097909076932971750752431959595923372592763138745372040713212450220905367005350477881483117564996399090363890675256127129119763477534615951736961785375553168173319076497051763910546310102602362910282105630241295307934713180528518917033666185971321692291320213907465531241292842866546210542736986699433412388334435998124084941181599310104701930224846048226215767449089513457604595786574081593020623911950609785822666788620606571050779694500617312125977270248995070294302078545135793261113593301030658435303691666320261287683689373286993356125840465507780117094676708880291905390459512381247760478314959162122530611861974760023014787351205873843937811288594900538619973378978638337876983376206843180774619244537993910903821885889347154956723695193484303820164964479115108768499618711383417175272169735115786470036533599570160620173221394796674640279504430934006931198305784328409374864946594140923389112533855045163581648772370415965790564304997987617353102159833685845834133000194662974179191757162040243702479672700899243535898732085587559962060881193618223584405335466772762958020295561285372837549689968983006910463129797329909496280401191791242123273779577468727171682664819485408655979784639923080906782754948509300823233121400062902613983969700307643610750632246774422329531195973640359555763311016469395859491014857034866082452909131631660682361302791385903748011853394059581894781809346855788482729511433229175279007636316643227614111720727376024302635000719036742412055850442476364331250854064850180029885032969479988152674578545047091449315618542799092541935936375502690405108966963054131240404878835263703992447217165593807747142036403576588578315485457427544493985023089730447396855771822363476500904730245643393271559640577992881626099241609269938410893573648644789074051964249377244135721991318749286372512714237563229620168639643993664028658194827052890347126021717658202286724640616361381498380122999720120537559288999812368989759682603554679787129420046998197834841572523171907909457956887736220304465567882915764808474620290122572719263369754714629934295806499661142914070863521768235458139465011540165274165695418594145650394876031276209321146865684628494828556000391037620662479568393581780895905457076110305249604877556611918418275034683514339958700700097416622122343066697380079686806155081933683715097030977993820654165377157390514501719236546037645513300080800920456901024688582632720229681612230812065868936250569321107426732137907136570106149626814798142748719057515107904020177130814389766870406801033466715901435145644507859437275061293291534948730337897176150886990204304676132689044238323854272436678427685465219468873782930640517475780640113184890759106200875196119231611238038462250413878920754244205805708496370539290447910720445069017927788632165400143173130182716034913497881761725713012045759691954947078945470165323312010258403958718990663311560108610512793053003482328953794666105351593302132997185269881979514645124727084159950114464325210994896725215916381844809573314006083954722805252025763595995518544186372756188754807164558569565185306731924563530673936296035974260475194612833284175473865712639879216086243170514957755958422230571920982661788089836877745208699029947089765144891737447939483980469761702371273697083509070347919155489140503944872273687566402471443460522813845422725636538012852942014934461684032851054654480912553566780768033274693480757952216286751775422300351849697540320469732250691850995725234352597885594646053936548405959895924505841941540057870457522653949889593659552144685885267230165417344503608779028546561337580488611105756233304933882433470728516180185156240731593799148445061222197022240173952292106200342026919651458629016831733691669722508676361642523093429506597145463382394179387169874011428004733898025831590111871101770014009666807575269571031750451437397034904271659140598519688769564726933068885783686447787154446237701567822641595334789019411955757205940652699576996468749029184323978030300900775145357676451006045254312881487291858586742286038896816024310398256563182921091721119560620865966765103003883850496478638841233702539727339873434311110102853283615788340845917901509626181173828243111130561614906607357891671017244330469308072990751996033685118738852866987310292594411266153296933741411855716343272579100993416137864270055662463269501021447899973923595429589226952812411372089848397490564173335125948948966661343389824678358849853435398736086114547223615503244023704801142096214269812261679728430700855069271566039781899368889088271123807960706982131656633103274014535601750671033012591434162528364148912320615578289264676879804800859612644383190992091877521782602547107749322370372101842450024594753217102709185480829165809796453263221522082687364390112714341090810407519874052971151909992944611169255689879784833393259352052449352820041505857794502168355856900783879683729815542740976194515763984999196293975231460466265179559722204627772263277831307262818453153919000673920111783007884241945529841262236365118182659941279365634413763552943001284164299238845387850347237902159051860861109515121631645663574191043620246629292639194587106355355267743150171960411175421709619591757389645002854804583370127199524774472361281907824382444481340193895704564680804226596862667415552776154436096979872851607706471018709976783574960147540138815794208446590547785700155338058850345894758365834528668985211918141744877191687682887800095010333627593373280120318743397155278969359368257858557375721975108634506176558068573365935536529959089783659825604350087937704861875108260831036380380759229571562009637357416400477327295535274744339915640383225654090963491516297522020876003028023157493572952243521142358559445087455694977248399566464192345898567022435039967805299036650409789442052739699517455989578504721404684889251874061135261503644186823203952922176882423916863602334706076281977288960080169899431264176790636995363050732506205952090719578473906209501855660855246883069401011097933571365943891145355049581193169311982570052087426383674001456773503899236709290698833978133247175740231317173382924771561119932735189940708774969297462547517074655183777191720866228675068344019151300371045831384247758119875760151190360564603449385144691542054434783235822127441098631752483140723822690897830482193375616026100583100363359709025208064805728281975439428049364082820502703857323235862220560448306259098571779606776954855241815976331794422757349276967072433407920051075257325476758978984247880292203239674877316065203552127053714372665219724362901513098879684697322967105264153987827694572521456641432158741832682269219616995630660097104083735003195266212261678289533988707997521874731244714272926734469488108852933602613808791022454760586149962730546602088266858287154272159422729305880369065609756647422256815185350622010894970871484945674023448581759108606509865620890100885512675141030390484210690110542866642249364409715732274034255077606003254887712904165807789207118507719456948323876454206764083812403337135559335501548775180272247052672033330971347499833485510258259584341894548703808023890831345308453962671090792712527656899589824280252950727538342197453024237886194045800399429608402919128933953897270455198153120809991142099056933014992926973526659574902930828698664116952073494642522075127747198358419841474175700542284373991625192721525897525012447987680403244013086784326625908790933529871905639800740496580517559849782122119147552053828072528373552291958622606640692928997099751781247129008098866521133203956884779408646090572568337766037038320566380875704354450710190561805393426044126391853881371636771502421231598278290209296072347093734943257885662539304258445252499677412625170660002848795615033684700235965171066038932690705415693418929578132643125675098260873231261890853685787522030447172366679468214215920630058277386436506360559493808040298593064440558271369337107692892403630934894760748553686647328220692834803028951615719881057066745743677488284503561150085912700615800210933766044996099321643802531223894116482264484388257486440454601563031336526187790273860692937010435299167334048588194638943535911358602813922110407083854402200198002692570656385618175190442921879693662809656356341441245325442534756260900299631543253873939062127485020559767280954167087941197920289639059260220782546839253498857770195856179861449899563852370045204689220833000548034099127596375162693686202378734950331234245835099974970847882739948180192152480110918581266148995082774348450402777681895629502390875599635858071518254588018614195654244395990912668763130585715161628503856585073629135617782003182397371699857901004331294737493258759074772699501649658186462250074715575100209388036563999778885411598484737891008789023151591583105001501670582420926708535958124377319885013328791673780743406743766231660607648307234648610485785980192182917373066113808027635506628747064570956255183841686124975464981508194732398236101128671588761286918772754081115734126340558665234700074846948907228343325795621445928591096266665017096031549505351597152021004445479662341544128622792907049501667095546846607615023466513253289690722852778188891600781277027867756983187379533298735459281488300820648063339509054402527172710925256817305480595622323782053717112152359466295188493992434659081487933123893975658682669889061772609735878427719280689946494196247009954605423663323987455280504893814920333288339864475824752687972462385058168010267313395215366830469129000876119949090131073214734976093537479817716680338724672087744806130875561835283748623445791403701357754470980955374469377196707923715510666297135544156158772411896660831083983018587146584290584158591421233334051548163109631514450678999957820643807305584730557360526300666331106353251842857663160612083138403514093978624382237682920977590487682256823114385329008919756132709367086547169173973219076594797469524791629015623363659629236194117724920317874098012793464476178837235598051640042767473813580568394815684640403774168888642907330811996137461082320492523500944760270799696238435686174216674414278330988098504187144782185827361051492156127032931311883762156393804450437552433567737952890205869788738146800838412640928067549613562192652754508932724281565099070365462795351096026700254377756122831960932163914106131114176539408841920229300661432866960031881729245024959084941317127990654555318867415079452948037714052454238224066628491103642669393103217951354104796746555202033491087301996273524823958055891151780001902780187434609056712550902544894146962950768193998547746619758827308118261916274485506563430510356940250109898537912833727078585679736771935159815977590182698535218904564502387787720897439584816993020340720101384163213804651537972081558967428190724542887312628826696113420419985408074990549106859180171254335969720449640628804365040005043784482995474852776086238727196881763551386770437983035683388511550209065394845617745842911039188870990765249679795577024712985447356707242774784633771622349200813428193411246077589379392944819908018639153387165164911981067764038251672793237208673357645375615970704523824692631613711264590544042622352794513429522060656924133129088646805756281827260556012107889312128920672963538776756936128697335072771343181556765483168424256391289619273255544500851061415490165187034058714267816028163289473571613904857437842789769356354007207807088652339263246618831509246233896286426827535075204978527265941000139014486348043430300125112197439409149693930936964491778175861845709730277224548397502459183797261832564580775060010996993527572067461171681461708007354901289654458632474187710656706519864577165949925474888543855398466645426478032781634329843133264443008957108302785997383844808840199422204268119829638338721289194844762678153443821711614267436019864685090733508901669344613123412232512051159716304886005306235522342410270023232108374207780875255225640493508015551505147824315385655292418972411396888458147022618404706578922999981589413627799105819485657573414806478260087926966548686268007626856711732439452455276448412011754469216270478286602379837469808273681574885442818362954014716643432613085705415551639216625689635767696466423676831826691077615006175363457073671784803610795721817723334845490082939943149322051568322033129348023140785822614647660827498525157789300793123949369970059203653061371363588482666140678747475751054350094736314293591879371781393285979284676864561427439666193711180889559328504146700728459575473362384095837881844109644572567616610187098022563205406378409659699623296827742484657645940495902229452160931569178269173474705371998480580322007434794437447508563300041145416342386843084128359133800848925576106847154181487870814959923524989693521940983796142940967770111234040436277689235598913469390924959594013405308403873327626425147654058809849737972022198479807278431043067976372496398845181289891983667807770336528807644163256228626058693936590732193379224966750431589557343072379305195738298112707018685456465450074448658021428214968756061024883757127532219825598341701460170680782544772858141919223195331135118870513778267701651618646271403454112000746620336134754271409459586628579263637341961408838357522061532213698547223051547786104424088248393877475830425573573750075298014109444324363783359679815043185836084035499436707311000763829455092230871021627694306946869938423612349406371524933265564218599355271928346544004610774590135455852586288991163103851432206482314335206553499258711011423932495652493876172647192043164413415581419504292768567047422525798787601687486688849765542385545772303944206451659068854324312738108004256846510380216538090563430416365956971919762654746850959253557865501998724658817215366310866911711573811188851303333415753467023073162995963286426531288661943529111934468478368436917081757966248863413246796438819721520468326052406774987683092359389575178201056843603792017961472836047585787648512988273696409057223835621421805242548042174076957213628349108339224043470405678442104382894315156584477727782585533330373905060579133703818908386595753826895920483154465939012261604728491438666799354583567516564466917212474796308381563771506779491265581967379236275803043089843775617377678693963528697268698823117369095266600078399579977774373493876171584212202152822680009244436080111250946036376435499931916840556095145051608347572986433407328568212444958785990100752418275438536920757647741754626303634528690095992120959503162485074639792030204512235805548852459967044719515218469802710071550193700849216219851666348360484929854647702391896985325563078791021353099924529717027484378335106173944892381486074910173557205861386290368932857235547062731300495865184544202526760438890140710303432819553761534667499164401992174163265508855895037163422027053594673274372034107845536865932921557935998858368019741823308068676803776590977734241118039590669048130476192526041950118775488165574668477135177702200968551390808546716093970994043147085727975537067971605231042880430445160198360488794420941775260531743491366407560727819661927711857318324060482719623243781443335123992143791243368095376832761042162139542250941382779582588237100436563015988984232261783985694451449831533111513150910767896864727316799883232324291451335090302026080206005067666695197260055766607156665355391810631354175424245468351063845447435655224035250771759809872292268363655538518312888273105280789540755351470027866890068908920782357914713642047346346677156409189260120231388557871999487963434037092187215193890001468873777408551056896002840476669150947945177020073731086881176788197701620337590406909569892323258523373369677119419842656405456395626990605297295814686918723893083629504996577497831491564341490527789705451233224196714644037430228647077781273408834207545261904660298527628188332791598626294005821029639307826285206401852308435518292397165295188131470637259005583369433250615190217559661647811791222002699679511134417999610774937191974752623540196478662968059159690297191147162848554275990705322980497516255006708703900549398760311671155316037847938068946213994291464233439128204512962206247854573607256709387542381995356469369036368984366924319300883109535187865042340354849436339589631856966910607750477904940463196385657548463484906896712032472796407878189362805185326319677504556669035801873103369511644295804435101558869180999169094146629162216209739108917729192636706020730375857571007308682831848583676414603649873753742681746242557935858883991957677374163545727471188998722844512949557244091845339111273622387064456547753215727770866358707226593117163138829087981540115859732482376548105578079605800665006008923090854625078509512564441606043897272205044044845935382215114388748137853561556885807640478967656527717077118733312328361463022969125661304189565157751268886539945162012052395697394228178682447250561713304749321927002455389575152403364972048161086153020217960561995961919346934084702862935059990613793720222598046704977271750809076239038369030508408861235283591551016386317657444105461851232992234864485538111108637601804028982227788617449814570486361712559388631533231081256405500478674686992628939890722810228785644219600162052285887612227789053955151124516111368381604684077658039302055317961104850777107964308256873840891578479737024852428745290829745667093051879780877033332405455506564111729594200850880264511182305566145511319378066931029056092527261419549119446175410576635255160446327278927682038203133383023097267307321019886514127238308456330972162735571221382619986859145657141528331193743782471598823410883954113915184439948543445545305725399295122522783546166081816060280673106081081855736729809485406705307947077363611019196037124417770898390451279618027447668772950382575652391291960394340238011836854257689074584813487668547999323752223425230839017084614546696284745974121293572705217631728477608435689160971634904150772910296033288612172541569012105118166033941899527253229846371793296865178426550861876069723562319446664842083948754588406776650623389991675639456111744432502465117066336989700865225416250040235488545946618912574577976701225712232601639868917586588273025937502561376818631492353841545408323160672929833510149513305285549175785461150747456081387023644370563838548961970780553740904431770806215679869454099284949546176382842576269678705577257032901482886733154927293017350589379929693929314774065204877506741258280758915538778661756981257934389915429572505952111659691040698106615227480167102924990822137216663761764312484227352588763890201853363052240390496724911988198679911325674757030725079726409389503598552717472060609754417395506214392515137752130519666071166967353934095605031278266828377719185474896112983020348062377293591830554481344085727383032413839105204400391493352377221314661445857765654725928107498298482875690837834610001509180329692937681745210466151724222044037475695643533220920706275833449896412922910671138525800249303784209988146562986460616284384887320914534350055170574683913215748989460616372001088236622415578220025764784404327790428220072016219927068727912095446780045642834874412244463151933914864510227015200032930375325182938666750482727308111114952888954620087377747840383043590089231092172895579268873399976826072377742417164647323072741290154997523518459257512366390605098216293904258456321946380620819087177184088945737564047491500132945913792079885464020924638185777920559708465886394840515511415393693129846290647935590428348492806281973160385223269409858043515338520984048973313344968983029278951450417749311394440781722415544434438488646139355075599303452221233734770322400969346667246869440293520666926871058826689158470886697269553737102242705238064937284123900101899893346381338018174941828013097467172473838473280820995467784424752399737781140884349795041201992526735201409654770223665348564062282586635615756384758520827099165658058250128393598838523153602429071238171608363317272558564114800980094517174594296078521653900563775062365790721200904823997632714482586633298911844097521562838496125968986459508222938067452172844318729039371189838157745720520041312666598079159960758532591207418692218973606606987362330845845311483490085570142980957027860779712360272549295955033187299833509079826804455374140013391023306422219577969538044539915831045733755455459795328163374036022355479245324837017751276714623505961145770643337518384723473193353032303253679709659239438862702604320647364933782412726648640791630890558114026944223594909784492788552236222069215762525653832132260825284688536212704944639451877545393099733483435309568070070323335110956697520620534155683749067881270232388766740544242256308486654825632973158115921649841993004295135732531190009472593022290637121829035683296657567248978939569743442406251674097816939003617872185568660248790152440594717794933444255312730142683085366336338780145038465822010465124873454224878329189543583249121092103912638219951032484666081541964025485942149738579761476096706475438444692713719886538665203414591964204395769799426274976536154700494427439020030687108541369688539507337186721094077169565799497355990858120502783364605388502866525839966231964147759109985574221372758420217213877301750485055339671073256419166687402926803702841958396487714441520250657091758305628963016241338838231172960153368137562703003914788071240364174763004193120841051056298172203120867697555050569233455982715051530256693211798413894517927367770868074316666081463735770138699665574028190432834009699984228497458205675117606231417993971887936562596953291807720931799036830567883541646702706458027492414318342254246910527353467482106032214615686720523285568938631914443704400761477199566344120545718691036117596666975643848732680674189228976108124505699742946829619902099853783196411523437878106747449029687940892307853530096436056668129164292768143388329287244187626808539137657066938170423077063718734284609221870466574564291512636729769501272004124875402674752554196250170181905995798841938870726541457590954960852265339031745208995922361595410180079648484541071980369108245718706180606159992627142558851911935512729414497015937248862496995125587503073183709439839525756563566907142651305182913288452842936091570511811532428266740115328002098095721045561636604894758688281014084980009508752315673768548711269235055682234576395860788667164487887570347880528420597571267611171727638067442345893592401292397834567438931652225583166541579620574520911850950578282530570244678553024394919273898782643425036832778157032331886786153746665539942994988764699379761239619080949809727116321602901153025600281505939259609862753410378714704465010516335359642811724015264393156384755181790242682408708352151256751271558340882491970095725481647661756298664408726555611371651891247788418064175794147486009050770533112698482305627147532592243320317382216729769573886276503350720265368069413994999730108313795255621502639882596834073186814402029299313383664252306207604062525775811322580529318942232854668999570319306685581133528461631506828979149269357280538983288838199917931353210436387062320165491327399255049516786196534491474379633407828859487863509267882628713689612691753769713673040874291556561022984617352235814531718892116851578080620263303340104019634871792290347497825220375256122146572370688250383648191483952318648837961886256660899798139982991021454346978520163328541459291617880356950166495148805945977976591333267126538130459807516690358708504794028973536266031792721929092933046468138552948702860706542890105831044811448826918829099169011986081531741509743703458849743273542587699319255989272294853995287746068750849717881774146165096835760071889557287971927050760024476724278739836967518857569682051539426947754235286277742831582499868547303912919065481290917769947838887616153565916494040199738533175815346483125393438385828947678421167077688648155121723944653118488038943482092114285577100066727219395911406170147169972136424210474304444935058775380724734539830892619885513812808956288489884704776170340722027710666216964021158821081668301977961679541553865591991288408902760485707064550921537222157956083762619107715033227072795068925251595329364625999854991423646484293656790663445504386438567229160325756103287848245207394439383214909719779162703274422114418204815552124750629609763792656900007645576431394256819210477880247142343902017561085527564949799593112615490780353130192640139467139764424781963620559195050022724374740574852827373764658243233257463680317875465190048185328602783600331555660520390314324974258883344735513962060588770080492035827031129873257762300779311403061867148189911358692749188236654274144957194247107782601222914443587136348685173364083916024799009882732764805686581143205474757864903974315671675381760738292794270669663890135690760512518190780309904500489823107474429952507785247286812472518310285755512464968640368915932042971615347874985366505173173223146596282032832315318617237600100203641008734509278897449131133088819239585438370477397892386255174615431590255097776175559476805044580237460444294495302228590499459085324486277258723637483497655755885351353001640370546533979782732969787642749066493148372625726086919648919587312150880222980446864535755254333410154560313895421960676777049317950269673511911261641232342157734813585114140088741194532377886207168617460149703458446805410467367517892540196567218730359266424685852463944207581779649404559966584195594195494208289077504408821647039754393976718099281661564479399204256853266703173124036121404514385071870786090909833206036214310922555790748715764206201121366274523866080673858971727113324622665565036039402158808949503390448103362726947372371593134931496442272754443283343292338225693419639650557675769545583912656875604863216000057680272746031151396075778903232619684992955793101987024386459124362304061845249520966055761255700066074431137244094755402131702968128214140620987785080616518314785705717749107878237816040178895309166439169786631000182672105026881293575125579615969672589484493731509410919533739369039759696266391811550466344329422379064278872458138952639810599996692187374863253529389847878754226550030733845900485860127830716094520543442718130651141297706541471452187653597533121832437849698693023857216015989926068272615614037149116090182562532902609676199293019103634762047453432957334105378249331872186840370856315762643612196762545892606591480009246716980410547067428651600400901667083590886590083368365931608021665796313851075056298021295677485391347636644736475297037054096885551834176258336313052045084132642561264234698841328405413160941541941075229092358388173509343256801001931529477878780026269809890935296291539169768307433405157384939004053278761856540967973277067440425754479769208066882119835374699053021260723002178151893643539389816016064561871841310404353877678479501234188020566363314196288974807741646283649197367289291540187861639793413045378251712932633033058547863674166133568761086636879049444337338695149658734557888577038485480276670468932464942534766093154033254165285945915365268824054383748567710153152508014007028743283941084145995726909615022884810256419169268068537994571115950024828660133918234789368257946130770663594615311091084003251629528553489637002688011017770607388159861249844077045146593323650752314891763362719749142070597982646827989938183883897886603982310516395877867100198774392138357068940365389953202927279241452880632272712169219219736234933007958460925758134084288933179871055234331411872860193438859043469867454235843031062111379842523647333903494836505405537956301599164421418538130772633916769643311199494568179395922362840204214780695530066580286838987733443894381518634870642716825244362923997603465753200392774240140901443728054915062540805291981917548729170057934999827052656020161822800264529069773705009368725088125712226254422243883462826302264237691302669442406123521783708121543523735451276480435497151680579540599221484144234838537567450985265438526528235661128063357621167165740299205049459711394781062381045686172092318610645300115961391472429251714577712255947222620265322164611908294110635022659505437981927996056878292590492895347919575294714652785382348017584184274074707472528685188666107887437533981718829464174203213290266725993881818821248427395406193623693993228855762676305620817880065556461116553688148965173581159856164546268174946482506596710579373730182968262450746752565705213111125626172865831052178079587159375317103249131701681699887359723669946993505204981054335703475974705935603163478667293297365226753466749757843207190383141193417514972117101058818776782190875726451753138653554131874901312432329709143874414154615096910884201638913558550947164328098699729628722242544278296730037897647713352571336712989758736167100047750882165945423449137592129303956895584084782002494292629988797582508589264443488629867084236017374357415985023534142794056039899513393010094973458501434918445029432361370408845287272329893748549306594527815505048140542916558508330790503276722421270463937275886037233413632573160548104958326259281870822322202526926590506075343679550005534659993377617240573920780105303973270652844603158265042058123278272619579617258442788156258411194466069932440961253696153851858580043825573288333539962372934022611495361909032834770587987100775678061897392925583710961635806800507472875471970916048770243171546553666164123833182141716848847612607440549020595394257462139037612944201721187226006160888005414386681360625016264299992871635079269905183614233506574378036021276343516750935564266828056826061466356844060574533014125202217661551817420026771355053524028504005727594466016821682684106906881654048893385154906010862979724549632613495281875998468928373800313669430804570545752966644142313016381672407979865944176208410300426538654558037000171210405875462227858414747643744146376704550370428152465520689759903725672095007086642797784088433799163532247818795809637923506156175922693731941261707319004778020175909659553110910721609016838165631816005402524751091703272366818536158404622386301803275429695992189358549092434418487857280487716994160718877644606841454392115265431182663388899097759629103560099980447439134857949624175692291955645741259067305676467956770015062479089423557322652430338847043655823801739060914239284037046341652139806807731807539563366983883042412501161830363582859620924158201257721099547678522158432546763154684427077822351172620413474165421839505317371013386742084493342801757598543089788008474609256368958263641936422936270136303225412226288142633363204335185076032453382208775370737923838459116810221726169261465246774859904028458173746571721775152186923319451537786806088008006687573038108575754807720862811920932107541918206613434643674680649105160992976026987533952965084305878234470990477323422099506071595771363744171435225866670353881811914405820901086842340949434199753155212706275053781855232153318298290067259286391934676286382730783890329467493587640611908103291197415624845309795343418870289602823720540298620194568544381485117479216107641920789615025431379134147271764685589257315646768368258046887352649627147167174176857470037289771813708465553595145512733042642139949938706347717997590514456384889842071024441909374910121939811721786606711109723657549920005284489821998885989830955537517639741253532488314686099837490406759031400985579489758101996304451385513155569477736496101389450022911706431888993686328688159416476734502850457294769263933476852803401930566745650782211505394129676559878956728215177808167012023588628993979812815885350653046687048720370016589654304123282903808049707387906191792881424417239301472522611265064704078563247069669055369517782132342135073770748192717924097599613858897298689603693956123600109520667803292419022597165860447785317684787233775027020826459282934912710923644136652253179740789687683265425483663696419818748681113373606971086228752913526878664970063990226689273734364787580633580119994485190304971422744120150398625156872966435460710426933245044738651499930491231293614986102201445873623002297661394589153225148291120942327360375010069706667166561715907111677106781905275161658697577904000686994359249866566761534088955042497704767302091009862836774270230408591505741006100795225053567423067279695106513353044055333035684671638743063736870391337622380802599235544328106058956661861561779686404124179885648476713985138955092119143963531415846323586938281484028580829697081339360487966818117689063510666309366209391231395821629999589878557507000362095487326405746440945110012287203242022116221635268342978527734653126880734581066249662770212730798152698144109561168581836041178894318977416888986347015480847940618012078616280596874825957715582710585791947609720624487394414081310604656462933915523167280007091029367263462780588427927531816321692180675272904025797059128978094528773819996452265139510474802772773655455869371942654394871544561859675674686956851740299541457036773283965903929594851571040405861213556284799017207579115289712618902469842700572243997517826185064917023164762356343925143909114653114249563261306420665876642512389368926955105042280408939015972743233883846885140324806336636762598070931051431119877920575246052344440763928206109401803498555225070170376242536805083731896185629712468862739203364014473102372659957961103260070617369414305703165971757602710051860846660037678389998212636153041633890967817017657919310062910732417548948199600495905230370062020082426656546395810613674018234362798067493353003069274073570390075354481204400485543250203634032290502357164766298251091998772064027319744524878689640316974843356262995700173243806158406084340435499972428943977844285639705308019363082143040674795574696618871019889517073581491976718311883397426003613946409505190005117694623144202800289190912480979553404638792472709174803901465300697838055444553487449258522662027948317890757970967971808272911366420835093896817053118607332390909389442725538206931751055397061112592497205970505414768198540431451071776558732510413784932942182859845324392962614935275745018624893107802689360752194665817331512588774208135611291197664092013422713040163760854134259437411931553459073441046042232241237479778010483162593226726041120076011997879742851826281962636064777844662284467459977363231154112579461402711805824926434974318537522789394187986772843771780920119973993349792493619051486528305838345574364772955503500920648103746733701080607536815744940226941333472756907608699263097591056894609065894449290724957698205140433080668303888126402419355414214979614588756250819693997325339792909605460505950040081164351508944283864675223173173016306788996976083194357518170531858592613617431136290875236837369281401357177511740853208790645659391659264720068240043450598290866429842368102746663528989278781652405975701447830326359768802378668940384718176964099241257654167615889612888524746988782178825470937815327089110626549682830110264985500211351301308638073852249370766866484834701313125948908977992175892353366656951621642499701797890124795637978977067119045746923967625421185352751758658577988154602798815968731740150033804052726611690858400648287472013479895539754721361082297590984263767662413029896496144234295446173600212876185949780748300931768349143727254898023536632573082461305641612093732463906964745953540831478977466196908091793220462473714989933942187669110511580902908229108714586908967330384480648163638339513407597180835101841765261414817484874974514253521047275813017352573224020663119814476481624931219399638010148465780073868537525271548228285967715387655531934506370776898246943818199524000329435784266921431480101300425166168200136401407989848653396448723099223675641510553359121610649076217612505398510769566760014976815118639916011588126151725000137118807982077583754322472352291328882065920749415249062070367979996400673842365005455954469103759406531927416512108278058983927078781607210166044028969953127506714423262005972334398185900429199368709830565812478675022637990370671587332456995852248995875934273644319314468571299956230545855499397587095298830952866251023741799714123573015720045100585222013345345263922285513013177431571718217194980379372612143757952774727353628556785958020259947006738601675303015427947259063322440890117268679236238555926312253046765546992440776263454238790137373169224494676565918174843008106137065890855174667737517067961703217311914554867245624472782713741744630180308790557078831084236139869540782900484341125237380222733689556578495370298119804137674157620919801538966260250345526563593465216713236083471016932366104062450459560362080244096731095239817797814119490017730429536938790594576514592741231044630357316995696203855784676074718388938756740761009149120019653221044443329217558298021449414490871746718572507221795464045810387364157396299844883198738735617814313088971801897887153123332917129256118425738200690340325766572162924731816565040123363132168639830413978263765035928574717945048076129767860427503011185700445288086863795831341730865470734173907788052946711962811443483954773341680828133963874983612806035286838938679283783401435647727700703609782516568883413812312929764998192646004790260107759234585280847187198296732032058132482297977872952658474610586924304845043181204412999944595636901176134330132975630944343430067097432904571695161387463499794847977260581134879998436203555695726095150993517465495380001840474977579490343079151432779029893111736273304328919624532190711395916413235080018618573073913768506059211439940944774332941370272176396041511509401192376825300285915491039296400727050847946513115858457588654299256690487108023512547430733304526811203085657501803221377953479175264574885855255822468376032014918867638264338330856180467855631181898662009794938540886106473788844864964584937362641317856803759208207409188614485527885468916587445884871814390414593001762254382923297828390670022357673122597178730589623018917188617491893579929281894996793944084849394524306083135191813431052082536209063209761239684817388880070684567741964265614493869692489809301641619476567291556395010257802292480018081634810547588262240600470576233684375034331529786651597567751454191822525635719678898020878772590711738448658798058689800540363210472293197634636635542202283203328176512241237727768822959890488697731896305511952052321242560919070789246780041334373545684984233618999149517205552176345991793126685025986368889029306621837059106168318518943977373909973758952944492033584775643874989092344798974268863518759775716457824618734164120339378225851551912895104701753853699327742268328705641986608574181562010692307086189049272692164889829703999376357110664593491149055303503769022135323254598978874815737129825676497922095135808248653302468953062998544625928538760509964157728209193476173578194308389020508265820990345116256193084535178220389309804934953175045892594117186379942891103725234684611429122409051127010340268480745190446514885896460379844153843511829925221817001592525118920131713535477550354793882983755708204240878547001342949652643161757483746298772598419877242526479961177753515222361166687216698170737571549232055120039268395301985230778637815397254870225863046992032319393434940690884816625588638359453114592900632070790988901329222002701644118351758180313125983689311367287833322823449691980449621032111193424059572111270782715317707484540299685234217950837567132723984497026397206997946191819276477355495514567085426666282008496642483293114786031314308229278475589077972489358763912913125298865550158092379394903264247393596560572278361645367489360421079396868570163876012956422834670635956093378622240844604616008126044477464294690502387689215595305058861964368246328463484351879534664315199051130289612640638125229527961247587670137724689260840666226390158129606677781815841117120312392597517834252489938692569852827833393737639000724265128525504113855645931949736545036901257960830786709907553755178917329877700047201282394146146658205727197821254011458219828992902088053849495671483835318817980325880195798783662369222795622760011583769373018160198682764279237556855827779757699742908316615985131225569998201736457205807238526566859050712919398875272392076399560016310857381091331756451851828486346306637905424875794243447628852268035852519173368238864715962434281504765124845442012850576113349214114104887836788121800079144322704875365653184028312857984419084516520649504447962108628408746537011465207147773312896555326856322197818856618167270094122115669754750862746228716998232538207285826305283071871453541382046581444909261625124919516747993729057558611981767363603710708825018986783124732700412505174327769572578047511180573901183087599042493601427854405315664275954216941794598877790127398177122216861873469795997121004106287855030334928738506183298262943992496375843893394175336337076105842916047216634122626578461084436633022240101826688841586658567786457810618494198597854963165237563053297999915054123767154041486447787323122176721224361011972324568828862947834196795000146296150968374865052689759723790466587233679946520709839611731003729740018116443163615481594174058660830843522190576079641230305900377265999328128412362027838974761975622418280124342294845590375997727103224394860842630222844678756025088696936481981775484266871869818371025508768798331117989393859705626279528369376573394568152131580868393277205911433788009262022779133894479348051598363152783771437791063349685642521445873584766913887257456986712659870763475355356900281684144234736713354147331395949427494196282080737477660839525880613626723091584158154888776488348847512774911696373420604369859692663548724124756145300641123976087633071976085991645583283761493059749200830221882336805783244504156408511495446381755675358889869505442853468500942834167467220517279846369678304352610169036422914421285902493678875684742462706211790781822210914015127057647602442655198307294307664047584375847703173597993708619458667160034618055940633464440393637183948357191946127298093835452088532983415049538809445404732444660782056084927885049920484677997256500587998758263729911525028199301789322695308928926415478870586388706757935926894061393680072168720919348869403810102082437274047341045534460487495569501121991185790821592682708482806031346098603154879618326564983265339456541195644434468814671963074783032686822226719191185923169966029985830398370418722172820891822209093426605204892892452557537007107931097706373556172986995217344072596858762529682479344089005667211611632208358896956385301990567134323002093004003667055603587313508548147176765897789564631789081719471104244779686264206511487183319978769518873003414470340539684169185029420922432126968829952171489322938168104364085539261275029246471049779406919311622942974201735955184948860048584350804571585260994707214111597783959988266303478378538131459424924692272042124457160294411837996842491993713299129546993836161204974695295421089294436303775230829350015439657983280888024969097598715740878290636268965253622903375009153861785892988693380844642945037220645219280452326430725506340966163604724189408151548638489468649737774408945982196138071012454194925860827992861551206269484903308373829988287952390570227792090164908212191090801330873481119493779493376581248449126376145757439125471863833928049033569459201950667192211626865246135717242405805072744798705908876401353505076995643704655187161073516566462410593114481990641067163848833491910245205979161195092007869186611486610655283972230525859279090671706518350604750026493844635241732079128409842130176089938810541311068593063623831741593178356133300334332830005698922263345601592451721998675670207265396502579194769334701042184652177771748588808168993320369910131286670916119758559262293714990603040857267524717690398818894221767617338485645212517108822689778876094560692719145822136171655308003599698040843797727558869679151703937909251269909584069896945252583722989969315838048681311546032628137442799423610336879908793651170878505270260769584874244975661188457293976030447649424408764534036258150748048832041255300988236031268472323082845993974403519760466241933125463762144940111567626315203461415103056848522523986293704071802005801508178416047991693517459911171321117542128105616349236555895385548729336094633404840127550115064387912744876674435167733418663163450541874999220898119172548154029395052174278565383289642708995434007261127961425279371529617167962774158014723567528372029445085756463809308785018448221283153000003159308586298833497912670997792035167172384955220227652766125626668676218730351576677618438068812385434188838078146815666264498335182174362269807092864885670309002087067249787359721408739893163966047159157415173211823936979444070134898233445597256198618337949792228301049523535310742457711512265498689127319063052214856681519732899196804823256699436155472961242950032231544382879752290827632129538955099085101476735388011252039621978936679888108130965833208277066880939150447614181205025538099977246904860747957707829623601278507507053244181550909373541760408199508589527219753332382090327850005262205695705567042790911167890818159626234277476021536205897018096551994068427482750557870492323559404663031293052618922546586122426063499432265258273715223466774940599422142041621406858021145333902910542277747272065810081145321677750437868110222421123116313827769141707629735755937479883826050780355536499258410062561396895314380842894640672056457916643113540054471595931399556508915158224834567479748653756449967823461424413571089128641557175640564740424161822938236401117994407454327691934157378367996764109104252985983066436431374540960667857951944263469481366423707930436926474036047465596472298596177376642133439484302400854253935871390547558644015409248675398408258899363267814995481346537628700082316540184135753693220196570512324106083387300608379003537544977079001800057166289139336874277335484220155734023439126197911834737075446381184102497567492300240938374643936785873701941371059317263912815932478872278586379496402814221649100688035596928864220144662092370736412635880592755890387995004830362111370138298605605219204996825654114623040769019906742812877664803201219729918926598842133068145541004265150253116093279368285126475813246973402713816974818188516537828810518835727772399068338498078803902235100867639212853129327275207660730651549274521650999002558709497543837188486871105159391564333123604824607243965168151331405652827094721484856390771003607318928857795925584184622912689107285230756076173551694011233691549391247507093520911551784100599903710332514116428591769024224907586755892492862671559765216637790321023612779055572809465738880128329297675318310321523305057960932957893899379604117657241256064359201835230657849002262548102185287564121585451611339219214226402065149069596197405266409290492930586907360972607650865026455498653896973585316463230147963788803974203297712553735779709133953234121927983133471564369402822355451557586360014709961648816967429993713921936621548104862289033570113099029741014704482400293888042902720346801445618241249593729847145339641746298221293526835969605744697917201310415486238158245647212548340496748898713974705981284034066947623112029915789354933695849982821101366768606739200588701225072494447483430583314176438306447019692070994343904968245970536219048205300810694735123455457183747722833407040488113947254295680467866632397413920192360928827777267254229133986039740634754390249293399181479158451992976624059747887229787328927708423073920973366695987441344748127748082232794199484134477308713718855631183183806869987090824350873441817283577531879696844490420880362851541370195180094818367314782232335079616230745208852658885668424000000473464018267620158293202812738900701322703919759522143411070325967784034437453305951210843026560868685377929780987018042570382723565823725034843812789776087378134803738407205403596546708822955378544963433339352344984363804910550597141074068587354984023971507011345733987595157282515852573738588529476722149838241833370780642767517032661844312144034778041172990768129609002119116749147684697286200463245026396068787490786924385660595075320511171701002328379338757636087689212072651277729206628180491521591093920988443377915414444976615268080271344227417863123896483882953042757759088087062734471254981490320929995235915458217427803368899559646715624792631111226518085564444264111012468304018924081003430529917809298952115712326863696187783905665967217646899659403852581926917591142968349582795523043752430469645176416645218970121150889735055670176610372943110995351774247514326030762008817142966716802686650618491981870354346562978658627374058305225117504247702209893820579057035355043324304823439453292279547038986882783992340659011950766521525073320785720677531898344426537127266672993497722673890268795290585395325840429737698717535325492222956812711574147894868401767722640060904761265085380900098601086334590779279442956185328427305667105473588439037940717440600548656533862032704558490720388084264312366331510159525397414340556736828819052224212490809788827758985494259285471164546455370986903134473057332579500680770323617127653208828947503007922087072775681368472891140433689988649213383820563817263259117125259181885775033697149807365422415977323836460466456534530966636208113138067378505862719311657017224108667693051880709578158490727868036200009997574649115686063772622949252815316323448354666510389119586748604946448311606409703793127853150429345616788751476290788171049485975277256975898313737955313698837509279880457479220095137146792512228794139011782095448366553505507525237522861306429114775687701737223594700484066720557792658841389920779340728668601450756639470927325583336638340498115719849091719566434399048526360400001679550886632196814383949840789678601252600405189490136576351128800775950522734128276474541590109934463261535057194161120774480116341099733991300108979800065829165263860196824303343041624359798929399061070887864450917569812443468727404311651940712409797852446712663733608383643088328499214983567014022939441201718274394540241556668317048854473939360937170235412111782730680462236815287306077423332046020575468256376668537236794784458360897837957266874448989096495282502357003216093444238129710932448458453075639746315044127365220971345154818509118714083196617535951977809490003020257435214521943912180315821388892895412540565206501476449889887470851908676029648016924487908379861187428063109636185154495277523429946286850982961531537469584942978677410068758937438407671098332397554564744173992816849775568894476897514665485443514006960654917185217016823189284429926400150495923883459953297390288146065280979209133468495065857796723652836845877347326230930671731322261637693430777794197110652768863993625992134017038736555820960683394574393310729884646927545888450825755655289929786988615956788325875201734032096895463332773946215178193554315962812591624292042139881883341537750338498027579606244578216070504577540263065853445069266735982194835258882465275374872355452107872448765669293862553217800365262994378432405368247515189873375985725080021651862900856273986919563850030418441559461090389624620078120854100605216020078589045738969790580225627710070351869931132499190987418917260665370155587504417750565631115716680533902905929079854832345310484338683505601271236539955129408225171474743098221840953593479855575539300992526921230712082662062360865562481103165448838883010155943453885218390730387050585928671688526518690490345983961153636139890726546921908415000307147689185142247776277370334329435819775754111813520175421385511291397277194139812515270563356682181622536366930290932698356294927417839745878211478418972201077528854220066302065256257439591897100704570914123758613528457815142498082286620564943936177161169346597553699824072487436499880431896363080054291661277062574667842515527579756890508288839724620808470129331763841153411378726252509852899413520802945299285737225328528885146152240540892461314224275384751305547953347228166113063803327637111563840428915540096842182698307837936914098153577616659486249453978332888611971613660515301533863545487374002135408087994089373675331870244258681496813231459820832540955135806897692395793154584410446137303689478288116025236736239241369827751961208503746122749881213424471440229735731250135955262100064791779189415878791089325709024131050618677717193625245338824810206596319553804898566240618186947597566826953478437700105171392780920817791815244735187139203669440751564163691602108006087476674467390031639251250960647023326170528322265975982263840310659085896457650370827449410160241318362832452142834624437533043328566681956396611580809059059230842375320373402352427296259252723735190622299621668789075979481629822669274845335595505871447140439059376191806861468149836962385940589271904496187042645048043776791758443992044453280168889359405789915680228377163802862667218714778175576408025904530407343109258869212093227416403248534547829460596764659897039728188998208776934825031181753494412173689122329542729310238030963809592710964226214039336689617363179185397363537355721160394665520374700135348929301972084156657545032348079904928018412245645377991282270832590458531326653539260203378125161020979266612967867581379764660391138688873140471473917327616643557962521550859376358053455036858705731350152226452202641405409886503146945823149992865232350878516604579008353774984527736624979613448192847994529509583233502402444809883032724531793232151937025715739084826712735443238940501381100205276693694295710156265561494780321487351007753772410343913607496882205614889376945700617917897276533159186697963791824808138016072992394368459858594173060889914560507297017229378287098027567687484928465107565934307549767944569123882301087049648228431398118122380541282664790074112674862367796842645864867160869712174445485721756596905904367795337432401647497893417440934801612492262371056267670340580483170450855988388119608324319381746770091278269403849737299597996179760641174745733151212501835452773686978924816082102565063211842454885481402190100200935340586704314145110531839569895536142289827192585087052070493154455026477391622143711528426976562024861429602795912595408158979932967099542777652379345198355636842177848842645292550062467098736654725563242066475245114776435992968179320547622041469532100510088893515566039418468138323045417545964058428143600822158478388767040190458027559710409963709609992516586515798340637952249465936843016947305182222856599828681816011660339995677790321270866238313963870631480315248202698267737910315694569847367671752944036622508102612043793267132406546153847443130962988051722783568554667133037296867135014410246090055736961111880127701782625622608140580847399185664405244990733510951646224863443803358988377853868776294024318422543043442910972487717102676595199520591599198642497715136805617728738544675596913280451137738088674993050300351489059429799122177508774530986143602044599213751920717069757170414106246879631951166276789830701654744397981274306499948267441728758887678831316006622617843611108309478277041196699159046955567090548822998091772676372277492615792237125724875479106795145634611691129308462829429183975179196344366120584125015530385109552220481096169897655363355092275327681955744880750004861749881313534809919672776911224464229169391615313870603877702378727802278950493332212868155090562728181544900517427511127414574829191099792843203283763440715552854071793021662554136138990076258861253866810728178707990623118318894134406568112013168911993040080806379716767375597382913340560319605451720494257056212576506902812952149913357247442376121138714968691961124390624670255584021596552128698481784600960527840734936615158723106037686461606603144494993901587382792210503170146864666221048275008599099599937332097630974809910937086342120209490569504886856817348868732498197949822803572218001397151471442099008631644203345201555088659564188519711336533883217882088392988788365570878655954350806190200897388046386897719903324266689560051406157245130053951994116658884560689852626617242469985958698920371962303174325891059863475632577461476693881675068496960166977211068620667114269339102312603251132843560267197778803611485346395720691666798114437414616636336962160568034145635913823911121724948662164747253245618084101240797390324017113813932585333217923074281380550272569964386768597018215800414248226539760512577297442063217063942103632523972961199371689743524732475377736293842981681417986775062625554347904839209655352783229519137310612438872263301870761188217730106806858558737415975001558342406036004263759735266288942381254349523663166316832755891872230591917481756421581709789439568207435171935738482633916421066500822291284115533689227453927963546886721421375000333220059589313495667827251291755899284991249146391939727606577304624667127839356673339293902997898994242298973928951484939989353050202450620717440337206723208175787292735587234832042801737014868857315233549779475808281297474950411387768342981263217893743199109837390026585877220061201914559898901616527235471337595251912180928244784965281758649671473039396777112821217104219230478505700382038602044044403549472077186208002172248783843136964771565046764875981422142450475832468481252914120214307223452132381008766347854873474437356389917617522549820959923280216314749522675396403039761881871145269087674441290727720077718872938544117378662404569334590925267285820300148806823896483398180692268484217276056942637505174292975810487912414863466097104357589596311065289670579185652735864296256990935395762631788418117039201933828025197326728043300968158696116485699122589568537427516004980756850600973193727476853842260908340636151122628875128016907711280973385581205573852545576010095649019786536646493148302998608558135855596335522830469301874116048851990220681120908663952929102089517107322504025095184863812328408968614626979162905751829223121231141877026636517248643563178128571422022108347590312193963725310857576589486044613096985378826595969199286800101743284837902297463015804668279707439311443300990941610885196352058403074506519324010596574579141782318794395719275112334587454133206964001174633899566698989447557592004032208734407873947746895713878131852353401894841962998076393256944775148607401874188904829084944452579027134081147890532529761807724588218068879324897310966703884109031381745736649628452542800730078883009664580973595153073771915740073641056582780696618983446931293321538533078149300896489639009520384558586118743404574397093622923174031880648903212543290636104467771366401874594672481404994026447209076094893603160931730791992659564025435367709951512249661115338890889395263085173819642131123233363985221241979583220670479205357263213546297027173006112813512985608800192769944768198118232134955961449518581533082281685959027304915453078357521654335551920134839909973068096991928166137977908784455479806711738133736186627327634385660451499763659236459007384138441989203870939307441427082744354291714201365373011892300624933765119383495322357075908034134922862184631678677738951010303530960036715846946133319733076098515843217760535654658836593216170282062289768868532816133604078972674903563565598964191695322426570344854013294052204052864385317475165723769790558300263608449086185197065491875670541173736183032329962704492077313182857255992959767277675220973787429216793907247645164287684149436744649475565552514049056115945680519611427951674265365861753544746779389343962144907409013191851408419079172356270502864537045904927544339156515668390082389846941519720242466389356494440792754753073895488687855869088172718610984949981007539062885480339212078443644424577808357285369472563968359875124306279603002596096526978925311530948001153787358391104600944711814427825691427716640842953554997480432133438211972259552304441739620767405606909116574348400059338934272741135238898532829636473782709590792222420501457100850992640409594496042111612516910195546105602616710732259519958305506891240539809059247763461968309817328919846708333095567431398616987619468184399101975916109246397001121647838626335797204357690747126397286806108419821867524613987666995301834351630270857243684888786932900673909516948754518560866993397357526775481749616421830414605711432463642165370647925499979290916534630861974791056724278929226264195287744626168638493563200807687559094237631650600787973385464739173953997889463476237056635618094784608224451133794537281058044092197923184683183930923048906160763134184294055658348502218811862670543019781088141384487236981498649841775085576258710816903855329647524917967878531044068965197326707466990090448403170139292375595133344012074810565562641705676452710934946517538743279201040024163818464967607338102516237102383439179933725185573537298259727381287480563442350286195412148078076647557451053451882257396469431757031863278007051674874687082403902758068146733088675504897179168164913190332753378501049740798290191950388112873714255210538847129250431264786792703033023982739300652725735132801184248709189819676371188027598085992431185023515277935041116991105104122335219777337145903070514927842321428722794844385815393966314881643006072408306491732657779244048176361325988363346151869633196810235852279086764795434209669737746557622607885422885400778659813338278043335433513933636584300518308055252777913127786661898759703233163561664208752934299544143531059091421042824277995948939998307930438499281240049533645265297561387013300285616761186968022737353367714793476533350328349785014721433859330575137361426718801365618888092694288979272453284384980057272578254673299365495118851643906583803164061171691669231410481711321904273987372963801090927677070621324869220945336298770106486374743729873775293249939451719652712096146523267070064921949857190103174911739440010069790128970908531645769367773204937709793576543967806880412877263516816188397901367134739556489249378867258731057408868013583679764907775376079784196219845571840239714862540148464747729783571834829564595353586150163714230484642394788294853453585715389401430486751053753963640717480468139195366128976288146148708935208160050796241920076149705687635151156580842776915998660964821897672013221703389085431832957090416969104180857522209503819188883516508980613841744735632439143134130413464146389958716446062752914090372804454758652750879979816204649118086296701100235978607114539453099019508253553997429337146523986817384305570652028173732053866542509251589759516983715516090067919303608358992172836033737493344497938120162334719402903977984983103894592480357765127562955035781120795444254829449746534547740928672644715785733942351995857043055876567633751170197232428771824974292459307461416616793251765132426214298326626610817443278847455595760661294492555102193862636372326084732437308792347777933471911485317422672621515592794788324756786609771439383925648991204027870816586106340279449056735203859259487331610837631608275266583761402772377910172134785398649973310941185366842201057999218841148704247230747383905290416793613131966038936434707838606218856072895168242990086275561263035683365235111852370467716260075027442799588070069518117641973419052803776206375625331455319517074995691244318719101269648168103356017346057438365467520009592269422474079705233453450866203498542444484224221371991637821567511227787261071568224619243867170949709496864405201262651440180867948489418082098463503593232587513991717042962263597074176018666664254616279618391234042861228649240419590844836427645218079759664315255802161788616935197378901457640414574099798490848975084228102174830954902843399960578751114321839352148645226509926290048959495330052392930159471526093065316490388565794498978950795605317131290223266661813275706259934768350841521512873066618535725663488811845773209534761487138042934562185460474755767883855856268070021224898512179082926050009506633519454126266960794658691445489914243753558752825483536890706462979932894026690328418028111206540883922929047435638876944528055590186328785442969211587766273546597922228503419611441792889628769157517684993965206858424380165673449557445301368612920476804929075230479135760378334827274852372626453068095488907850288550288035804114022469005956638940379320166268559231284161157366518140906126130446893385316838049316474199348887629070262786002491491302663972200232585643637204420270154298892401736864163103973973238601597637711100211998086334131099533597963297558917195978251737865767405152380040693753969108538062995601028093774175585199022894273842433371280135885353434664246323873205399453331657327076519094170939067996536819567759926340622003716916663722705050361850431035837952442681945972591160366088839750581186924573146590166841262460118045892919878421633327452820727048250954861019001232385519470006598610886917008038887863099622019209535312145276818051092936582973257276215400796928713686738425037377569021377098342086802834035871644649397987558436462212311149632314268328815813034541769935427995733417207557836242928383854503387424515088782962959810521232656599128437760850860504163026927319728715807403419552468439172213369419123778612715840235425237293207151166600301495253613080918871103839992473991631941246269543454252613763917255572771434608908252315268653577905163354654212230038842562019854374972031607145810157276738622695431101295210242413002496418915063170056280215892079458637299162372020507732209126904445695106425898427067060504093267363950666653013623604720793442793850252174492859330811875159071165177851378555851719507145665616082623903465870154344348908845621058124268563582664057699919440228492629078277926360801285164433889811832712805491461874821523140374047926071815943622540442861705845427406818111883100355854523967037812521189085510806202994373716741067591613251495956505101360914770361909818549172523719496853467492612773509243975135045470960393837689735949744680221342483713655444914690722217799992261159713041849701208734464558331019808691977917294431676803210257558031366964534026376215676439973845709258608014020668711650536074237399817098399710677724918641407516367898901467329575504907531192401196270246219146717474265377578998387409048497420646982632233661357419014912331542229832052175375737041103193554705554394618465525318628545865538650414210584604129842400170405327673392112737074298919147921538963723434142712872424142059871359736257714355831311199332451381032035112395170960129627209501615772133157137636609898600090869434934732849129321122225191785487228400982550826828028386795063131879658658747913082303469184192427668837933596928224355284126222475903307315980324460844515477919423454203605094260993077016457184062157184211848486901459189750210697607470693757616438377979499222071693466434553780221507287934960472457300485110593414230800351222683748772208157578840979124362743545939921811326618169175234162011739812296927887880768023493410950954531777970334874913734469898668163848615999095855235739641859088055405815524175985148965251064371747711380501748219687573457186170672792453340625078393928496034929745214652455731951489821090486774905094269257974476165735286720651508479735887739384897310517338351453850600870070847246016901267670758932960089032757792284518194993647969536005316111898494141933586531563414335358673504768665938340284349848981572749108653866988660480352213675864268470470085939787284903244628008508185565300267099733189349226742261232742934742541953088084270342662047341174065123478672849172450481937289361082420195007359069053682352978077457837561317533394876385869787345484940545942770564668807451186673616185470466707449270244735897767442033933599403724371461301824191583084229789063067340119065675304040505177632396065407982938862554081580078950387718884716052882626941128016823639486437717944627849269397008520975329581389913162827700515818526434362539192063091718724224478004051523794743075292058663866655985615369151549623184418800700163034147956831158080056231677361909475806043135463753574583254905222183150797526311555217686118648558257621260784583733138878180505953322952459883971684441737541195345312897874997031979868295253432451295801412568374577863327705452988015105121609241281034824187068589195005494428602354679203807305102774601733818101886899392638783661837042650132496857102174096278380922670198334278330141448688390392175210406904927162384235492141986764169298467586629464983386366284821110322750270269467514758447291168490750570699500923559591775344079570099491913854505172085894474414180650278155190686053271463889922493636855085182407717649245079355016304406186562610164289556549317614822692843086944564096087478416707976000845353922836327700200241258215058838179654686339628890664914900892046347810826821629086181787952823065387492103586430008857196039520077621378734076614154576830679474132414949875274253912680637593130382339565327449300475531684902347599683857966770598009521283136653042599423270671002846958654831838242171249244543345995338490251611702032683074935657481874522150949443780751004089512726490059942607329183210138155330403937557986610811545396895346685607164263940243098787394852486417933669403560517386908125376456990415008024010092250375355431755938119357673933852766652477526353233620343665767769960591777938593926335287013510643281568223567460969774601067755593712768805587706011347393701814510541981336614341205950119571504416740107726546205175334817528985692580932738568902449467689723147506386370181197933553200373702823758318815372729152850359526275563489408610380860226415110553241761755446885583086631021792483498394616053638955630583020848778831288396109922650420244988892034087046557976081645816899775871277770776394380332988946872541303393826381117106834319574993220472757279306222498905975911874370727287246526053455309742532229086043053324778117080377550769206312814479800700049737971512689155569256825390785815498995719606576946646491380902094213556365399261326340182594583853872368845620312846585148646555188079269972673516281831932773405392079771604415875606194644071136741100436930336130536066532126022870752335574820170914685113407014558720053053764233153992188322834529577917204505919597744724958709380395531753241035990438471258569389207054420811540336394043049730356426627850978460287152928783988026827117392889402301043615566628420907495683219330677671671241661797302789646106787497923288054696913465896974053563657305173648350339056326614484731865259987961047228036677341222141083062537651054462379416907236188163455838899122663283495741852223695856935664546104050572096198623068258685653390261020222481642006729871322772602632980787770781361507305386497670030434124062026799584827929820570568080629803479351375017590916988934134775562836756875024705120780283477678027243644755351544375966619552230718442568936524913443392207024171136038386615325829593300355184628169755318748038811214642884794016013915081665429383651947488866835650560157450462906253606293564114002358904406395322500130942988082201232742962007369656826266183025466711203497650270990657686884712151109827072535224826167519574214565432857152151892719320690513130077056600154414463910572922182044755016898707000443497344906800943868505119320339215863245118581592528074670536125448863620270654842205347058364519412737725523112586123105939071164807025173669655233267957430441536687492941367689919959418567379404289718774152917357649928116230357383746213991928291327051206041336693752955559810545772410205814738178584185821242678582170611919504445307831168243440912018468927139470850331479683040316079514779258006334557530608476727506753397594850895944345918564792430639065736848645450383715391361784369514806856275818745033206453549179647863131315523047761055805946958537642816888796257410024526133157508536259233805055289092843622736616707938255133896469744628612869495913295787837034929165635201389520934074650923842690356955183458951952313450615785984425106630719181160248656130322408382614317785563272391385734433385752556991085173793905692968539089542025947130292609479134517015266616491492202847557842098786642965475606688771335637681095871105429089320056354407830203503647799820187487965531668333510002437410101948388756814286351002680767200058929408491564432038558521069444153780168423518964270831097688142055710965763899502288385357607798430035036831938241830717515810482550617564309153676517980192725316920988973800114182852607888021180921491701508857446511598460324326987967709824960558804708423306153166547058236718814486918594440618952208761255812075666013184125623205536607643962164000783990619139142843918741535839172382420739881813434673078799519512978583949955611910322748328801742700319506224796160027789709409260991664126282609828093927726674497165221264186903893114897244524576893720250923418336560985789738248912176345671876339957568285651396416278103953331251597812824381574895319428456795508067865181764343253013363165700871234779617642112987009925878561889204925659242797453369361777994974643698879577880662766769480333916650063981388908293551104309895865871431217546171816138849981188564828220065850384111596748142210130495703265725617988868616823585633154439180541423474891153103981898430258019734174364817762881546313860359079613966552721235573389919839174039719354730928739054911392426273143193849593205597411730531623670635473076689753643157756443459009799657601989588097225868027324990952377525011218792819356530126704068368606482847454405736506530345798037456486457515579467929495050527471739892431106752189451622932722166400528328929032122376531392677253827039213673467314455134637714222872552660945674275345615505666802705764333827809449581027130527956945443552219406911343552793020258119865919353675267282738698839513904392762206239464806297268256333617884212825628026211806556192294715902079397732540704835145562689666233779703566300954603324921918845261603635266017935294589657032051506235122604370339381370395711886240294303956307880968285974155213975813236215832889809098563554866963277836907499408499791597712136795352909742513117987075606158221734582379767799292809654634311555309838016075269762927278219613099958446360949258873986714603328593594374403513236727135755845648685459017700918685131742272678921588162420528859501397027843594193247598058437049827913174360719536363431049158301466456059279877201132587869211237954896145380533447534341308006462842592009564927060836135320886130037851313794681802693748762589163502406082533679928135690759492032935549391245990317061442747862608209769324782283996371916031616372303195546426921386754820632785151037921560944064670810665480363187787897179049484969206238690979056128450773271471384112228470436830892405322823167054679860827700236269685537882162169439544735878156835443336521106623873382232822079206462102190090721325726047027000645440394392424494839996368027118016549920421338239230923596574440958030447577404040095903550876961945827737314608367582323459777718122591053193916814515698738039429530774435205355154561364584343586789147781274807935348854381218518299112485079765218393994581177283858119890353334914062455588803573613129477804380655406639751294065312978889847917555908268371296500509199095626942671793679027722683300253177685649919354360597408364956770733169353955070592293268981872936916889689501530424896898839017876447189321940370937858332834769775575449661710701057928952083005113002184230439837943820358126412943131476379224690314656049648494780223185857387311139417126500844329916320746881087708584377641040096238713298688828720469645181976051197638660519732006134404636170870685688639278524516885791796056095727388468809004255427678687464710250764837560796867477158816760298491391034508189808140271214587711628114696566350883292109595087398961790744205989270474897308704741297351675341451434131047809227617837496041819875318092874814782343851173381121781518709805195470117963546409455342517022293146783659062569847537889753016752907943252553852016772711745188457511956468117346272139962467241142760575250396045538168539363099745164226926107760068273657925003029425069377146916891363573699473624890073208730190973663700497571735390517217099722724891470368741460372987955463953169241061574128141146845776284703199130366783632649692055780136231287867325669004550692967846035983855076437291147041381119661192642743029736925661370353006344834810750648201021827329299552602757643077123782965464844577263784997637222990733866826775548581630463341923605810474037858916054398649238729078730136592505503960817190045560376305240172173643716224911847984535599717398856797368533510264339516163323077733872900542196014222205436138307908146194713416708111494762643287100574763577084024849283815534979788351922757338163789029692414612832854383324208498779532868954868759367307740819122027449794759561855074532488800699320440268442921531283347489704730338066766966166255684422415481769958329794291821951597930182853670559843530564614871976827698648584713211904620219114695999463961240995452214266289433022418635919630224412345598556190083516942801028588069233998936886575266967224359090762756045612303150890119836949546045942821619010633061916254831589486791324375746364902221176350488555765133332561330253784958639551815383878322331255173331236975923533704441203412127979348400958436665871458986736596908299432064318744925681558654530529445609567731904007354205460006542879576702084470256858296241834751533804007320384905811686266833066688781958548346816995192017541792617016381866089587375740208673827764836293256597740413363321127421658152573307792582751260855999610977659840214274421142070918628893996438092666162513752406502954854333308785571808257969594363259765709302252898586284526393003890151489601555003499705451500020759147588615039791403106277191040718201887339617191099638990661513283610602074706659703747678954131972251464010754245219451631481151158120995976474582976266879470537350831436624813149589774095222332970642954118423582188847809710745655066578878310842114580631777885636428236326746645313258793230093968747253844543250110281631046413351915077321798258410324863688271994396070326577673455418908411054965547504207599749074115713940458546121942124787379348919209555930186291511999502504430252948206364180459594210862771797195874395488296487253512989477833710227231545593134753696184308496221167257531095397419533122467751600830785506139662233126845057339078844273714030126569758671962341329735153075132414233923781053893915301657078901017763312211861211208232656214363451189225880840735918468573358260828147169663588873208468148064376630229186060116838047729820130177109040552161672571184452897442068273607849833561785120130886002436106171746342450201114444319083194100273005570549374959368483017271127901980569306333806058728017564877617832412068644927644596151720315148242874248721633714627961263229737796845642789484257975564808959995003984496609777480856276628817774315645065445263084086152622818584338767798967626814990053030948010702711954905836592171329051914497892703142421359425691241633929667527933895344229780490805231874646007521866606560002743695753109842800563689235333808607309477375243563617195371998996880051102048573058500707116627364081108785617364996767040674301303659787513948372484621966565073689609511550368472655930686492278458523572754512881834914570194151241826051429587616822193618345665856147920407080096320605777993605242449097732048852699795561755242516345346075833254078051539236880205791623470554821150108481628020660635192067658018009633980624668115747581561724332005293530928096317017543256472064442399388642320863612424060625429400885770328125962769905667406890515696198969825771832297855221815114485069233987701067362516942241545656772433853153665867680122938545731655013077299119820029460100869169518302092719817134307133830031168400142189975158989861988089212852906533196916299435110292866487933782867881209963407341609377332964147946485310158850136865470023731855746489709874297818074524887467083855357382143898533333428486487414066258362537547468116432993988733918595813956112131119021074556194850689973373626608341827695083058365344147014309022599008378608328916924634241431015526185853935615152248245058931706266732578302353029235695448226107911555398456381681203143564580860847614276067113445908523494568343346916345813599486723351491408182740525576415603863699206586502110236593560833602648974812374730486256401476693508262537103068764785684125684562596762531435431260178448357496199569413050643727239222444839498056193208223173289099213108085812608993982266940109393659289339351793029681845349257387886101320964694735924057353764166106997428029648279520868362421201416512921193597143947785614479725020710113990657953290155013649966382829572039418154010508539064482822645926216470124567469042427937720530505028283185373879913484365806458634320660821739274208753050799026574626021637143614071164363821034427914648372042491957763489722903577264377148579375397907417053388784685120732754814468799522338116391133201006079319106651563052030346186210592749719042576469600968333588330455074871736330198122934221681142570426650681066264497843961945374581369745380240686790407227510166525711524869792689869083381619291206452938192493784370920860846212703246592669556538900371040343053117416113983066735532996629438666690227506931371429335246779280714721897570108054328706653469183355290225369687234537172562266692235901025273966194041852186060221428362963394286387794307295800001206876494159548756852943771026117253111709099532244603888278071988689635888737146627827623206650822222447755215753627050462534511502457315154724856679566657774581232430790066129425044390415687654664176338906547811628987719436131426280172375595924567121965460899472110366783212551765327558918899205419352212131088580544768148565676073424357316991400294454900669703839193990743031081234533432869128176649067855454029807579816080757010423859152947495047909264908305465319067419543639199281754106889613951627808328253788578548189483192337437767550640297647528625369732762825129053885036844378736296187569984860564930828400198989393207748960064049135927332814482717817413257892372861043365639664136572007139027339834639873686325039625487606196111067732784618778330805177498114915352074627465436456115947835002863108957109705658650942197590188558152698648513653359672963580205774882961629759532652388858229739942413147513659017618691004257768404781023334257462117374609351225459867620959618826795251244315915279630306882686853713734134214684273055513199215620367346351283723257928304895306155673724479708116295540313127494922573302646826595621232970383475920800106280398325436168613321303073911317892521211330930324044586880067602814166055099005354802269315353026675151740188198021213863668948415374857068051003284085075751230147412292696006391434023990612695528447226595088633099655999257761790623956525794285327715858945923535419723272041263075408379889972099702424105220577014816175163542684123346518123531507504501832763056815663183141561388418790443370975029402712373285612897273401407979007882117083283597623189183340850664187412347401207137806536773524054939236869975320517429203956716422159475519519928087635042460682144008757001209487692242866808700856768979315025008924335066919770837906845914908639385835098692965104501976371156914468355351059655688863152559364482577275518660360751776667563907927731148178977658518121359017879041780087487410755468051569096128598028415243230886610931084574131003931448769582032893342990213135572171300492316236899308048265193099331371930679277298501001463365420412921676320902711456366645140923233913810373618706240966099396103941475777718427857361285183410484438137443341030467341951183114932592151207516910239895638536078975972461048905700038535986057850436994544098086358199926989623113968932868410365817432447237294505451611431284110272389133926166906216808576471817928445133724372039153827474586574787541935010511111534170263300505264431115576445063717468620308766722379498507777144309272308420751291499239906221309522224174109689065001058540759929755199156085522926663752899354820237269363948095482420909782760581985309666784380415360921632567124151708106608501100221947663188267987558223645180212181819378179140918482736211989265026806345107064645954680587241274999332415928645342810989125708306345974970676555067456540732318780608614699179151373756994345779985762271051858367905173244588511027311071098199041556261761637950454026491336638525237635773366185510518565127602939980528281138256762372655057940612439667179444312399909881896632200193031822345764798231426978369320957294299499962385771322904866938914500544987293878794761037956250546719568787983219213953896365689407689342088364373108548863942956973223366930057295198029652618310415961363588293940825229278937985826484127272405444516545528621944535034365731076092272753708017913884422136248707142799162191071433231104428673476029405133872153113886582302917726949842289490582974410596295737941739225064252633029545180224040749433608079479701466512660079665398306595504660429480954680540277230019162442975686302138005714599425944541069056373063025365486308604466897543782360048772611998082889829577807199793634363291271747192691681327939626996333325194934542543139835774552846360972604166413500214805162948064334003308206617314835741256517288704665872099480807852952570820768226710890967975594245023685224856119861814864901620816012441475932645274894103134233371791944627543954560181016482580655003734431103552657252902763706668785583187635731721116528013875031824491661642652189783567125119525937392937293312067617436839315854431313721225815499668319851107714396089923052735883772417422122593951677960069955231785373610158718429335756135054888699234474432660784442611698190479171121349839614328028423287692243119647277587126975354710242352010676721396306770194878763464167290585504309757763018899763991013833596455458220950719520085158833145861209772756128304471299904718482828680518722787092335166033275078803700522527906405603486513058974248780626721334978930459748320226169429092218183418793406785712709304941349998349135999374218604588051781484174134725191007099190333628180449229108894646572720757904539931669441514297942806293918361901929688599450811784306947581387696506447526529460752575020710080451556984577857446224846544282792784014125385580001416285400932280177038610811207191167535368756202702329527892709534719844892642093249096330531883526790551066147004971240426454745526425354322784677999429685109842197735514121697502209818354209630207149885693534722813625088975987786050466301230553308988747804900982412900764786560534583659015406945443820123913631823097003477865414914124315970651785922502699057226377822024260489154755154580878191667057893131646705044872836171752157370635863332163541881914128415003219715297733434616531742911589316966737121573701844966116226610044841262441267412467147993025335347498279136765715393513035581728995889271699079972716299630557928610230968044776815578969789426263418613002311482462042240246403241292111651814605245701998708879763151109870270593400585279525928974417521160016314024565779520653659292590527360473584712766995241276830549075250338592878997383194208952996529366040532632279512215998683040061098542418386860622156974204434997118517256054186787069744364657140076423912506696354032171894144563891915854784178519618812785497385568082726730760974238537305278313214126656768273878094542935024890547781107806724359163054396924372181687610265403083961146213321371186547648518265297271090948580505068650477129545041845510192909419607259741744382666639095209181458265469810346220796447670417760321655620261229796511596358531131343801216209356328343805513835661402422815248688462763845398898421656742798406429918431443591098176006460771345768883205910028083309179622283802223185014281294722165871781798688929341988296417625447378415392129427705454916370258804508785794573650629450272534464442724136574523292290683219705838047636570213934559201142542536243417439844608811780051027067067548788489554164038379834970660790037766270930957062502953776159299101328765027126980698517626603475334504819939504800828191305446746533843481109348267345253402393611945034535637043540566628643373416206644860940357477929703120509816414210227434483166510313831518469975385648275678770346000731031831439112943104867524216122356947098888605130648547405019583518300790115155443480382850477832315980646857644399323739087464089656605719372891158595746320802651568041258608768969764153519718805331274976514492496645450226260660444016673682174991047840084755275086710377349009802723414679755717026392770133637551892266323131611569404925035701729921748455326137219117456133292562944909836056654915480523124257936638573058229757805470074334234772667024871581052989419264317548883868470987989935354307916010663029737863478416892482581798492052838659358084844924291328240814752708804089826575176706948208450806389197374441218366430107706287258757965266137875693179655021165476279789238341329085931559092811460399805997260066827178870064776564367554822236399388969148895916722631184549865633485438786879484281413756285351004119094129362664577698827167651280747894317760028816638930296803584374158033010603852626758690667175776481434445025981649188036211684710166915871990171787892243449430544902624983168878748630211789622691688261846812343608968341772389401326336896941076560614408623608228003290460741677583360715841950874067053902905581016524639030806943595265561198953720227988471415202730969283384616137040294739641316332909356390367559110962149834363090053237442825754551680017263684461889794809705114574600216070140672657307420055962930452249118535322329188112712164848640243387232678255889584078721801282464910492721926416593210174338447028580455796963353191040193465750789200477834024247371190300625501057710340404945293643740974518032936014206095485103266897639579171866140571445559988946300721182830429878858973766756573181645473806865229322596447517586853336761418077257345112385568982476142395403122371799568705493446275635621048208088090499532527812712874509170006240037423760622999354851342105978941424557977207086168307840353055818386202362200102508755884870370281397762243158682606748909425613807096778496722666956038264613760254878564003037288711803205043714540697602864621906135527239284103251693527340759598188165351493359881421761998521289047162448438569344550488353271076389902193964251364396951499378159869213444451453636157460763265322984749910242413700874111283596107802592615614629033003091532433283499903903812459034897241529330238061314522136292093709693761086589543917080598774771474269397815334279940801280464742842730216087985527115102291522849615015099730634822490509314608299085273244061135084926102652341033412920853576522859974972948424076034266359961208508436754228461582729858384392980672919320725208136621077728177098406769836072702071280150878420579696549811778641205700795516258171983364510380039069227930309102219675967940637470418774140921373220566867758928123810349393551768960565498580993123804495754964970475844244798163866921173251649639596635433532311943753979656372167275737931326327796740531816834499538351866537085942866620346039402810177253253056287255407617602042851957696972364671729688688500279401594911169585261625825881188656569944457790071520277002520808284785119876522889806880900624730304469773753769348397092076138191410942223460504730124525976263444044048874546626947070297373271117548746329527022346429200099120155908984568635785258243224567237142622768049648108439376304225584395261077514966396950412954163965293950801575140186822750460919663018746933310881470856891496532406975124864531367660467349604128166254975869854710779693848831699179713815318513600069868476371920151419455292509951034500050152283533897140231220244439729769465370740533932421231924167447379032923575638953802174291752014096807463354003694510696497256566673683987324668359967543378150367146248291002231395461238220542261997466376308696097315826236922854048845149667148426613160881212414896262312450580125351486039672269982403645310043868237677228793948224541001705067477693239389732323709413870620470444063609831808188710226660836944815753832230840559582706694820807315293629366351204337501046780785067882038201064472277878379299324809317149841850369670421436731756511329869642339752303183078972541765187424170167311198309716591616926140641407525662376807169926296521873204581885338963540502605671384267435718087320845853815258242112145249946049608388543538225818641845002484219986581788356328665267093652515646335475335994895881906247259186795870868775719138739656858494322757432840772698702991880451374830332266289439530538376573791228513398560370199527773281503139284395169738643943264448175085867791811368508521979558790210813199374610548842667484042243840641478706645503944602543935292073992324255979271875351846008186721986389946443324592754523372126624822119422354406165533068130614823100836347695011172372224661467511775893980504683783691546267803070992724903571235090916420410984924330816209845880251204295403366720614435266792571818882627940964967342981013302514856052156220264644361708503232830281510788001904605694839578274785032952621897267249296884276478807564702507310674457263103609767742129401578102189058856667385243426343104380213820428660415351686520339436822577339615987301553679326567640682012440428020906662122725432033292767452143147364519724433990709819416710835119753957568841062094273253168660703234088341607098179618547992605246909325658108261044985965435685504271572538077201955933621847389839757484658841025850112036726701379140708278584967355893216581618666114936727620328046329177830290604026907295237579736541167816469933429193477974784124373297269087581573574341402936490652538143247231715728839118689179416962388510880354573433529170574481248522141990401068255308250250429094510758507631943651159308105843116031509476292178438514086909009750473276776715746015387855378394294726087825037427535440290572045144341977118912326851762006805429262470883052815654725919579948193381987339869754842837732350830253391250965525208023104530740043898267564705760319282621702366118455394839901867388385584112880234598298731269507628012785802040669551495624879602810428142676066557200994224020334555885968501426692384249625330564547687623377466863917362864663907132197143046076898491250281813994795122920425930709948479858145215089623722847778655720295814813262263691899502329525234856563449693518125471724302259899624921240911143195643986488018378269616798198431632020071812799820513252832994411400612722906262795167759488130933492993783078657129607366243261187813891757808425173926614858658430959716373532602777548705320621629682686920904661272014803080317674923795413900739392229697345405729251627421695909030122255189929637855182109294522185425194905644327314550114010874575319860966036381603981872650783619864422916692502275268085671342792264261794971478182964103493212649870746628782973262444377979338780707561280925671636026111306899049749991959143042753275908326386030049450588460809638838955202564688158194089400248034270417247874830801612304874338607630076010891604793220163612344794926247081966730696866051294605742505204247602422876608062821063451093972915757999706887626967786525957633843306798518756357765392971949341676210126958762950796967143800019891607020442387226380122628790246904945661619316176272042977246388054483456540221559768964186027564255378114446336926505360785438222934085807773542531782636899271198985697234189035222814839436627069273672266409486580756885750132888843956135467359955424142245811400909608639552291569571755937261154142726600152682044455321859340333735911503944016312625383969623111373932262705970062913042065938773763525006756645846202782847630115127868098130931345182565841089328820280693532496289714794018613973370658428333132382150700306854344554217173020343601783374924160251389861865730320816798028697299914072273999826714502754550613817776331287311204802003625278959472573991062523905764278238562630961345569330412142958576539249768140705756292187121244378587667043786492007297035774457720023211804444762420500650151045778753289078277026535352274486767785042722289198626690027209011801227590818841184842104375417922582087236029905040989069022474770959564220962533251778859212511740489317892670028361254369867041205704674781558654735903510800311409880528049360589784416028935391726885389220652745791715563158916808907158459074799686737225676882677599803794987816280307563082507252394472685114460398071132173762097047516070903961952214066975864123485515667722710350198825283743997363021936470578296761918538251729143093156200632267774607604686528053044696060962440355911148375206688094391558523898741323348299058780542078163189073702618248801170362352341952415984539952069084297242311497683224614281163752819024219358614498653214810435343122107657255175732701247230806954161892306788469682714829989901753652191896538082154910923137746025555038932295775618008034671057250757915765973787461764745224904368038291830180788659206188944045040674862272117465307469982718654786640820606470430393243510676755008466365275834683960391487536725900537094466316101694536734956677723456601839643598251520773800762187567548828347024850274011324708730725388633460738031754854888750900406068605718672476356643729237513376855834433032804861015287738983202545958586104351771361667477469043439340479779177358319569030219052956355321790368054102291298007173516961270911924751404723732524485765167448262585295143278707199125881192613552521038877394218110324859448218385593476140375274184553117410393435322026100859630854123088040678225379779545530743372132290744462045532639533771280177497220645229471701968872151530980685257671709378676969439012834009062250578197720092556124178942684176008403202533016872158535136760390777928514133290583258170487936415829395672849455711026760131688116001588463626486454805566840441801374772935552999923212032284558547037824343129465430195265161463402372212983745276827024963625612432537270744376723635214937808488153551646737954703246909098993228617509163782806760879267715334373438274549120435286451684925485176543988861258373941041493195778734340118729715358104946345032741816774181206806964815400594025139288768877720810665112252586682149015996654415726783419665640603144921871387173935710320014165537379631236882722520934689498365125081381802739990138992756169381996624620880345151857730274406649416148992108396166923673764469035756348807769446136620782304056108264811499603000636602132382402356589122159406305563199348431242945895097054810566545707956381680924520450456623783037278701962439758390553353380691170283121786394028244445197874689118432750111116748309132503102742089161268474050810117994828305582975099244821330743727233547039202573663616873334540990731167090545370108522185906152341537603151196490386897645305430776726487126204684021386783495635271848213711556060083444493583723102826110094394340689550903298343959429527439130982511103597560781269791738430843321410864645582643583034440894357916004650109682143871235804224838846805039349158433738633961759664020687277866207758797179746409849670736301670133982822125911014711062085676359084758821544265950681949325056865148576878683459789758757744212852189468217838053450341712299072040061625016758244445696360829786394332965458842996321887160831454700689846371086862740235242614306163660054983114185056331344882195802495140924933580769391089580948023997465974783290337121619545942932913186170440744467815668107777621444265408604163267064514491280281227808712001230014388257433140828677105436986886592494332807702731830121496927189238937493981627775847812111465292585794986632751788003790966428688626588285719737676990359625155704060941343457980772191402225345189734997846393814057116942288083582559444048586794577819563925220493719944715423319743014511816953758507454550657292016865424915278957778414274765406931656788137663449658976422384559144893757195214907545562696704657482777290570439002926083938922174311564459399260417793358763137313901070348372349850140544603507493285801500929386161929627051905046853191032061560823436795018295712145753774694104909569679669144178664202057775581989730511642618092119282189573943310484050278144976733174224123916069707989970111515428569211557529142986527421045300867836501561521946103540668986855535980733642278397015398327842679291393673135915554664923445251744011816804031177293510664383246204953399550723005454012262027962233674073421074209621983447341353575939117844120109331138343484164081065490321758952335514160674120142654861779826270097760166011939114305823324233721340480890434105176888252942635379297147913158309227738381393435217924034408517594771476114751357920540455371231725594524434174831204131267281886611970461223293805914787746580986367621629607138383885684451750871738086048756279759233964859448881274810898749308518340057158443062285479825573832746203089517859758776321498656315088410136109718574196116502866871234639822406650422951415749856702101537271423768713808153274656958750680579477506026197742230304007788339724742571681955037731245328707459173208731406103906017355440597915558739078209761466196052791643310460686072088977051991209914085224818920324927816124209046778536126641636202915352214439416702634232578938386358850777981082473416714105421994035850938520248884912895959163294311447286810951629978156801943736953667640252203252532665859618907445928811957256692576304172423964715522285621633594209787296138466162062428854718667312132341492816691163200869230459515220889100193811239292663215207250286952129866109859305962278156413519279364839409354115763206879568365755107623026226032718145014012049410985421196499859125046033519773875970886188638689324540154210597161527969985844765254949190956102447465622871458313506417129028188974767229967463590492205693169342788409102949465353652839193136762533365070772479470262981780928937508799108304900504172368974508102802051187052003256999565660488843542558755380156152934815002828404717883742876692348573843561003253703780407180417005016698158207782519416013494243921000321066297301019005326450494409879965797980401116159967187800381816063387218931168665888393815446727946203802524492226484122155987860467380203079033042215951943814571169064266517041148532043958491179791074029190458466260282702302024982421391692593524831499422900260340772072940566144792097559949949316471659002231377070301886293542387408135876906512763458858374304339034197555478705609340899185547651912351619540005146447334062692050600999459863385135281377908799943205213780715495155859580821334350586490294271220374117332961635502310229874756652304548632405478251593664188081975861470964557649839259788648620099052498319035729161522998441549371237829736757512009330096454496593789658133192463386508208635686632506095430649998664287261204579656134333664846848549460176419545725401528238605337897158338407172023468492520034481550697865107492572337934154370362790074733243198271517796315300384718518855104675496854619466400804866237222164990112015936697594543381969889785739928724571563993662251895731613120196641618563501830286383772932909362393343948814964795006235277472856679616944499444660174898146209605005462714261931678910197603917715735878949189026113095744878579723045338318132790403736844016102535582243816664120215747534483195566041893136740943341544704307575707355623250115813366699661513251856532042876344408953266619057650470889593961926886797781842803445366596272248653971799478460444491917190487465081483861455140073809632983301970600573329805068239479920688919913524742170416412730755417378196035637563566526072557813200455192301216101221950409655582450675153092015014991039595146991569418412381747656429278180902760371565736748588871560229337078687397998247219404582132344919141393181796458073818956579152924993207220565104889569008405500724421100970992587010116137544153498907740671241667387488205320085539493615636952390328450044265241190036114290529555659260513763182442984817753335071028123453445785934329380268112793772707577408337051613138422235263451596116298260355750553590036140141577811898324018597436147449532122033831157813449315570105772449659732238606844036061047496011626993889993231943453404311076299743371450038239946532970922996771500269569979030166343285529841465802902948417355084527754999259408304628378953641048714084553870479047774482762914883346869086285932291106226427179889089031866754724843737108577634443806855335478402998661881885632301023614605544346511938437978754933808743467249858850213087010369221659671837013704251928727703468396197833368932211660068823256802902770905957204367264853189606596270478456026249612283570667575537532845552922960371873485366122653206051545385646653480509501502293011667723425518157038753818040967312200734397831322613345173424546908639154953607507032234662380829376891254195295015467397214881365621309043658244170087324774932688914557393003653806851558263475003382923400363853857078571374183127047488224090902424079607222066434150705281417916622060778071772710386951668182623571080833862419607244162793625023001397102493563486446115205286971230034722008626832046892559081069626825773545400128082257490573589191860139342516325429224276575742008187300103353449208231705316364857396379398104128199589564960672902237600850780079522768795127577425421436612197060333904713171761304097344851177428693623540201455461930106613683934271828635429132815655927583486681993016394595161919391773177923691722532371635598386221045929515766801163105239809089770974067227934976896262651453077444118238973826575013948456388924659585316541085119206515880436794098958375089228912877654113983926859784187252322238297191745254266218323502395768096265811342966262090795704423696345548270973195815713398611993535439801033247996587783283429677718418118751665687358841729997421439146116441132285939050490674330956181451835993952496371337236824056298892986210094584537041804580417169896824241345618292764062650420942703469106988207254802158907866479479354518116996333485474933475188855629366166938773569658932825811453127721474365367717496073434760559853107056289105163161738972101154907771071827882911379477642077181694963654395896374059936721418625220960870849915951199626433975871563582182468396656373761702188573437887225809577194231919074025360251682716461340412559345477811308123135708103923939401939531374391761462400661534730055542716979602898055213254771700858538687271790259878504665682064532995640510925723993744797599990937456565876801340209734786734937686966222491530571932461432607738623794755665080697750303439321759977223706717728123501763118305720434036909640455639991618713530237338675060272300687192171636221767239619472535737683546043835268489348374433573992768980383233474698367058452443908693914616521440519164844521368055018360602934505413717797887543107321847909444274904967317495745687557461292766496314361116666393143691585675040272618889902757090914393870113478572864301400051215557742347348661591128772547867972332893570498015030584906210739000105376974796063200747781070706427112867019818063440287043800031301340366981283048897180742892170166921150769078966235577986313810589484040137886737228547266492046301284227344175175981248122640278097622504260917214304584378666363847245367373082064027445189834565817924065261414006375993817611017957976103733056203715117972123435573958983766125579381378600448771885665521741507816912955824165415821411792312323555671176063373386419485084211879868652043408361440209046693594609499439839573587418285266932098214922992398532795183851219159187159784311947165921466418379580478184694500915418504790331023055790252672065609073796332527482454499048799193190439995384927066391901694965248302353762878369043494132689537513909101580277984494958473785774215339628392613318026969165849452226613694051414238156328482048020022457367302799839724500898753887850911306546032233890588839748862205697663602621234451625401675688245767663551495496553122322173719011725105133177313285094610198117919432686428086857928711244314544364643546173091543128112982387955678450077518691000938793775012465582625683578641399712222667892485041140218731482898849640507239373307458723335570221008452298986190735614195609289465698040992296444743495108757521786316777561452384969601773618330582578013630918904178501894304545698345618604507647005750718478228065820570083652686896550140744690106555907787122457328683587698602796744226687517072897061795589457460956189615576578263473469957703820605605255616241966682878059761721707597804733693810471999664533345186339061738139851689664193427823207722665707429841494338665040846638329402623031743196269545512826136855363629358406747748082094802412525260476669632545110195856790872074011316945374132152411824588528023525406414160755232456627247328441944725769891512693513990006527928823512784791137827924433846075598752366464351399680351563619357193630368447466891141713504820304359918694812290560227524203229600091640684037133684843005167992131769285154733735641906889753032252622602134139142193138843067519719037469543058058160292716892825363229672582763109057246585851619102693068147138965939862509590072859524511913680812412347471715727388546836553643518745988305180703204548208149817901257323139283797704649390326180076771888214393690404253115777994940849094241036317644345397471831631610847274540474311452545505772493023754431359533181363430616165505434915345753456134354617386661521483165817607416843247742932932622376982957297230652234891407302605423987962628449677063372199942648380014300281067602310416522791302014602120657831357256047889308334360457630232757942022431618646654345823690696010983822738244576500834278157642925709047699142256615457927148254683887246121156621038367803531825956676222832174374075196965236895873272007254449740503466696020130025181585207506454462681512821194468809026891953906596805473338041182584263383583175656836791925264613909545000652783321654197896383231854636754838128551746368611608993979728651778363090434784347626575852916207587639577250953401447831038980146398768903427783216724171296118567469214037975835934563571787563183372852199573711513741105860133562086844837381437496311902332060382414802054952785884847743133415222620224392165212760375680656432401704146132551840782450579222519456119871017392376739686813829960737509104911819476995758625102096467304128842192119389832106649693448468551791945865254507409530293242099449268359006842372633817474906082161795699074900414537688870077425372329124265576236754235068651907824805390818086463154345313419018370533397898402023267224887873722347438501387114428125941784442205345591405962432496390104541331972183481945397428983809166328307884467229674263901350775016208189390562465419969912285197886232458594311037417478002766435018842158099500964042304996431796083227718519460919151971542545346740680998336318227637852745994719850664025291756588180261939824842433829830159308580617470082745163372800024849813545574109415072297866701749352342689869682162879738197563860162671737361609357504490748430018348290512994271035925747789981857291082301010768148745155959017031545986049366395745491965168371556219301204712320372588052237114803339747875773963943401089252019469372499479036698924910341042320305221375241113935446077021890068077008307379333398889690996767583009165880172509746706724263521457069878871684494254135878683935743119330135025910043014543107891077491943269125350136787498655755079817346234576921709287848751351932334426759678557553575566639194107410885660083963778461079806237245410601065602337116354025086449119362389246024632051738912853179978103841392484918973559061071609927562804725341771893800161202320628658516653799500380932249118847912450654802397541334363131719937457213369198554646250834837292932548054726188901160078853178149963833115705658981269774686197615638154228464571302517774684829462006583852205152848861049565517403447811502090872608734256935231290503612724370099553710985820936465202866152483498114849609166798603984749805616190231860076202740261638247514531977386098959965459680866096237834728656648068271990568956027531567765407027588741574104709996653954163608274151417659505985221104831605236575914003200762906608673020078501651302766463488404351826112578717594012894345429514012236845996292465478924746810668038038568439286284374913950168434449684933197604309270284355750975448567892305949440352217209932749210729911844602884580199963610335068985074929187342396026945617434005014807245018894143613238089667661094003222907589269499589268694173872385996793884796838606726039030853221041494784706355751021800148847887806131956283427392000778969085779114209255482200764455822889243424833872620091260420876047958770802478317156557642682651206361234274842922465023790954319105067293868357197715666859591545803062069443237466905349577905535477178887106425773033304572116629848081048510972610747873667044211739103815881198062542451627536313996679545664785450325264825329895918728698600186715539604209188013070896747534780238754823325295636274779063075038393417029240863605655740787105608509565417991926031617163969742266983333988920716115029240474616890746486711342606247644936317722154533610071128046943686186145646045062507748008658898766137287542737509098986583050351304259530908703052561846194083215792570850796994153476051173132871759207991702795812348368962385563971150515307510763927128303278332848219136512262087948340820961386829770203233456192127765792565504662961904782196129805516779082249539845436254468693970689103101130984932724004735533966102330707719253869496660667246991528979734384526034770246175940704056209663226003232565522193074502726559460200596027759480215438367377749041037602084741679306572051039334807665211022806767963996348803275545993761334045519175031624957724330124271416934611370896477903836442329831388552947867850346138749346252221216390867189079067324612755431586310682869338224229864741140158233657297727623264438922291742863172562133813706021580746101472085256158497416713058491933271567391201008742063008863497442881121229559410232648115230023986080872624830707913471147108095234125038537940408050631638266949141842461249803547709791060857180190923322080360820292876456730978735957278223003243427861543280496546797675543840407476694696140001919030543995810514218479783985045390839710589936303323670377156273128361390757952512047046850518987099961929701610636835805101873974877533200566314039294827371846051415460433031611457370996133097323116899022727284058116046478966456764031333210431335414151609666644873416890439587012736908199796670818955977998641879266873713350283557047586844389951122444092901671202241499458622437357979006114061539509419168312663718923715285155800843344421865957905731688968339611562125662311043137662897277653105037683369508983439041610809143103326683098199757485297843248481673439350092099043621152414229862787677384379261513715164083415695372596122015519847811513353424103911226942912356393870645440295640197013500771477753915169431916060754316968792974875638992181696700657962012641086784752931919663844176119346196946792478386471925452079324556689770906672233481379540730121169138367645505991767413278045249941061077222020784714808512054981932774659633745314426001844987086787050033579848065920132901991047106469998825931300894638484598405093824168321537308916038570847813829111953517553171676582672847335155619136737461012872603391458422410128294723950226531518445370892958613380090550334480712981964111058757107859821443941755083052057338604784341446432493783070466932106498553795136826428005079796559864790767750883176740145477810021814080630962340414987907793930073711873505169537072444961396539866710645140398841402106714415721178932419751282158750205140172292860555855193788150358748153020766538878337112420810119871209294092801821175343126169289640750987371331298014550927569584914655726196585093620516813709836353981581125866293579179798474762765344598812401174606819618847124240903105994480557846259831062655845738054096382802515915961400553670005020304225884541540865126108650200342793989528829643005418030480433136317865321181689354643822827570149504918174919166423671970827975913656779572636831944882962975652072012448290448643504292465561913587618527217213279865938009767194246751091857777710320220550193480707050450940733935990574714610193471653837859360573397418938919219658082991565248792179842157505181909814979255274414890333183065885359874371694835922708270484413525674221344193391616259662709186677868990681296055135747720489865734312108050807322941401449592932153861084282650183323018257884607890497045997711194512095122491692533188533181415958810031045516311506637502137417775594123639451295862279560116765110311707040619439813493792393352178727689233503485419883944404565564471032403185308107338913068683177850829865427809177330439418713841146458575789492596664962002801668210410216615510843108190459211523948258745083332186013360609986862033333338407056797529646480475508153850916241246246818915325182318218421441008387415961640144860684689685812184567229834098690047449801324299397116263612755095326669921510151110923555183612042975846357075289811673695301557399213431271983552323553447582344408239087861091633835866228574611463852899349524315140071636338156597182772296748493582291978281691913931172544113762877262419612411722311372030372073673032977647094225195530589139104532534763977953201101128837411279876876275334480038233628557141796949021470476701986536361480704852799190469777565002750828093520939452254134377936690423622981635134854295866149284619819996238597307663314158188582037055020418413426706397117633243064194083290478250338422233799928269266446408837685827191498435784834642622968107133229704827079620883189725264950051732831294749686953807470760728119201678038245545834609631664208418896184804951911160900839174169454506450328264461491141053404735957476633867526379544711153177070163514123763036117775632811524005588929817161097929600559360980600220102884087005410919317005574619807635472962723499163670803242136549524272989251468602870915403820755219864344274422702904989307772704387454987054577658504106502443073685400742155858502125210261188170049160448093052021233806346416084473581718132310408021068172480791000825385306423648781364710957670507632816132428814506234540041293765100282469301145067669190416044506507056925507524860410628854998061817690682896832564753215648260256862173150226240889940629796702532187674110703220182033323212664072648043769203085409058742868599000373699078831453699122808864384938883515563934711903880226551983848471226009617850139814671111025784373043505956230379015471969616906343698890291313166899475333187771778519389332450172157693261908000508866001954122347733171054712907367112965023394806801804792399704724398207612716170867898227539539607208876847470400028274979566903923074569129888961400172767680534212176876799046379098391114049739455125010466127883822988332929504136196584805572004738726468519356098821045300957407811981998955359429437871192027167444163063110953876028109959646327701968935267769370046907791212670482770379745674594571738413503276399196070040850940699018902191284945558564444355559808288664885233191042758606063135608440579964340055059244950789516531705503209904433069940821070736303738066758301775751961085162478885419666447732478727072924560944762996213900299469552637398974780260814325553271663462783625865802738909412198116003787019495936599578075795555779898920436168688781706540745583437723785421319252254875979492403818869899953135139254276222192985560723597858701684642687618284986908092661520588427869934653000552971024991288789349022523967811493107978252303183027933881334436225129457841682782343673861449813786087747482633922530213754612738416586791022309530718426120076630931220357628353694788107721237394331978548291956641060510165933451276285886214559482040944946765877291543320513542711062137886257643427123104542194249415244699268216741492262188404219111438674104592190178343690407255573587145820012176603885517730925999590616193222156685989503449882252930586159099321554550890883171111484239682601683818780037547913285273040928639594442500391254336415375670332610357501799223349829313277493853873990717950208740155427543536916611057768211100833330055952332344890463245256953794130070467117016476695639430991619210011266426554629295234354143321006191405373233402837682269254616371823359413330599796719416650147768500371510589284112565916346182922210541606941427217713845698513847483449216825238746504320151302950215269734821536574169999733085531629711403995510717872168750765071399597341149431438682406687029640370425106938929119718250273662770835593518896139333799421668428273133187650405271183339927364648662697328817624719893764236687021313337096280024259058647334374361100804251500498995365200772125594322745911225898965329650704587388637655037752347350165746640136479117462238858905368574581988410626010707712097511253040800651568423452493630432885356477178583706773074840443530581329061313246557067974399407571973597990775000837939071396469194854833200469197759449100324654343276405173903754957215678956966587741696157383724075630475488214592199976652870298733140434029356422351355275289263027251024715289555946136697006342443367441736474485106527072091010420451666776958347512265206116845722929988219853776326620189987305462588926344740273903193833917360477844148922954757770358336237734626775456963938890147795108271050657470663170453371560002291561287386850684924266746553545284342647157917914895969107411391483929220596559459477840248727734762788749432417826355520854404557863859340962811585213733685570570529307299104040533059636091740606166626977926848717442420302376235024275029429649224847339673492044009804054639420340782151236455450345229103110293873774319148028703383504983358823448332062000817483025176220161469170882473883932458802080150244110175069860620270340102341949165170020876236297528867610608331914574720971183807655807825543393846027117409090058916650178368425890414772803917287818687428729094803975769678488555443657022688825638543570282058731977408506720146611580377031367725678204963266883853852807265758549528876298864653090887543185753650055069245223664174919580969670885429236066019160843912660676905391519395151904922919956893753139944867339681588258521422258500984627264110128749464205013738757847843396292940009387863676657937689548999134451575593001204700398033417173307988754999922081393811024299355778813108183502566622208607177110152230943168790594136870028025671939201797576069001104048358716085884467819935520765664660784622971652682364842520917279204749304021911411353366939428828181096277956449920842590127789821794785102905186867072575682520623251868922615111110273684826367994845813518148018840962468571659414104096230638668527201579610781756944939806206977528680573070895933495811491843961026051059174222331029949224247835881357457226947049848551955328246467224635267409662586277404175095314238735218801168920293115884547845009290092834210067167542782683144784836804583173058277998354292350739144306523273253735992793065932338706079409347553426822180598575925841722335304879799459855985163360707764489374171038046382979415908944458245502564452333726994096220957998413661822262278205844613961371714591347058147110575917441959870314727397751108777705793074322599844968334060500558304287301071864261094739947553510121014304019956308050964273784948116336165716651415064698927655701189140136877218720789369153686077935087695189170402010392101642440607100036467781595123526570608926801982862754965167568064145300842548351233311442922126806468994918343390859330347240952291764065378517532636078719406416262279543083799261191819250944006150809112522388284245160640715409332175233183505203746199159575038214081255222603064624557888532853754273202720095732444703426686619272965275344386712467459257086713091722609873750965583651119203218942047300156533287718791160185476457470865931959827211298554530718711297875171153467941331540179334450996892291768142775045194887270912839753168381243144435838676419173522045712698002221856669782107986768307111501094558339256931944625533225901786384822858190925992931411794812913338905258357799349667229742461241547379496702270184533898362619333544544748439468855029339860035132771895514351945281379434266165075463629965584839017083538575338338777758035778127640307708363166042858082634722337351011259153795330108437691092956427927501191797648361376046278077081757052578393113030736493964608938056608130351080242285037289295289220559210923331520723238103601696724093522302304699686519258263149334710101592580639822237059460046724466855564305782897976957476549505755454108534967114141603449242390990083665786377603432624567273282095059602036085084779454947956244363985352539184885230885396539859287166894039206456658541696731901341266531046084101711336333699980511065557004735242482960590597841644376132978485150415368566975167993994199791883638692603847227877755655931106698793833449668106431187650053566998604613265629345132772832430536655601750005973181876273245560717793701019822381544773968225769444355659709597017687826156291292610115679273661369612208407913771530317370415487057854856121496279712218111885444326595104928060039437061869655617201556437214289689444036577937886069015929034436222464704939580785980049613539266709356772890073898107181356853270630773312450890066432084287436399780167200277280914864484945025446265609488545056057064380470874028222347554058034529998717789482428364737210841294943167178619284171528684306475323752247503111160481959621511031825178021939893266633461487789905250398621497594676914466839407781532375586450958867399238331271047849020100395403989037025843638113968076151634570370952838948530202245723834775743683204705803710220282782174544495157090028945756311051592541746074463519574294055519975418907675805082030647940157074307185925590250120450377111486661539294215639568575604529929737247660513832406787580592464621911460393152440751987151545383501715431320036677611264658186743114258120732877870631884682569844290941049231854781188911822186175833678869502622347537276843965664988337499045958036259380685096611393319894750099644212498787986662551115934889062942086613539535293250964680313599901443254699720672255545133734297285936244494344461098891811455046553994478806946558948505017416487421012458754215220434371116491052910900095958879830139582160393926069779471938804941857740216283019946984097607953834718101418214284721907779064185111337323633396323644267798924992752626421473762725077585965404873038191898279567396179806437375148564056764766819570329133719771776072099632829119959522830115614860477003980279712918138396154072083710978660359219561177370389233032553953783022586831037445761897979016161776438252690073912607320689692351164411065234496165757201815847320528727049387408550281221470210421187060622154321730725484196359135050131411870368587431754765990473917943051294101915709028375818833570044771533249817739114785900358003458787356351049838760453764117377320182850522341368280915408715435356929682564024534738660946509742405731361782771906120574105533692966586189781319541689765294590040783313548342820524682246724072409547862849021459298550216009286281220366812185318652696160338673586889464072551943117851471676662944184941458230638303243407298614627089671624485566577808731093984361118537131858144315884027462614725437100117483420861307094616170833788772182248608933126482617491277280362399290263503609197110232311177960667679821236784642683669659794813268028755276781320472371877432476673029772430428229521504098583859030528065666348863673071953162917559568125880088542267648682346171199734197243408805205136455292968565884219391634562667463094277763900007436341556646573083414116813736762642941055994991900998917095710166689724670208033753217845621654538455230082482232884708941777875954344847680183483354560028045034607122239358528380378755435800847336579986697330341711469785375019073898658060410610091630409158751693194196955793974958010624125421852130460362632170323875570494899698355899653198035832150629301981591423995345632269274000728345621125523773651698811453720879974166447367922120746245980964418064382160754893097742805827154289767556132955128001176558720675702092595298589118766939985613010396920767319173432626404827054698577026693245016614038659453991409419580153193380402666660377774083733752744872969139771670735141641706331184822425762037396028882316283263778122002846950717362695874245270039887261839454469710347854829848696596770073301772059782377935166743385364033178988294318025639066295496934715487057532269131030755078085787430365998894608025087604775230603372331635780179327158659819359744438590191198814327499342666451797956542401232040309225502743482375783704513048961614881194730894248076516337946048515114211092977263155293657262592250710834330211358753903177578593688158423877425600271782037857392810445058008469997397978854979109346380153165408077119866715291289409072079071652688288064428339923753745258705223725266474191348752449051577605535891659696329415496983086937275518906436627528204540528618167477429730843661140742834228709665243506062755535511867352755706400383965972964242350998833328375356090684313027317486934915089462845221378564602787554681640971768692890999924261059271781586944017325808779123462297183501272116258615781167601944550190667295630041446974274996399894973099440528744732747676784903727889269986323087503388007552126299827604807184788995612645531662777865734928531735300556268946541283435424617750688565499692470547696734025562131740129382452249475009931093903541528226979118423431594004933802979459009816198145593794145472243305882483769685537065447236180673672991014492525221661423573189980785595265130712034972204468021196399250458401258676159967768243980339957581214762893053648675049883679036550756586401424382874106452989577305865338013427617070023461141775439342572095735191427263712871788736647821150233691797189197458377745577612699059204263451365142340308210104269590316519324471492222116111280891082989561255995013021545050100011936272499730140870106909510047562982341211065357197466470061053595716344390355045696626962355289989679013635097355584665173506071683365407028074767332993220248976329071114465608881189059887146986282234091483031425546224365650593840857815615087392444675153818382085390029342379347695414624662689858501801112427723429857960821490971345366931300729040500550781308686018216788253486984035235777805534967509037095153779593134254432806552977557421496842866082729237073603530745961938520168087767587953639791642092482781325442232373770760414893053970174400290390071449580268197506770046110850150546421868630797941981577174436592361969341389049140207639384015401726231805794021397994925290191843862485572290484336350045023041952069009005829911862058094830673094854572465492892774726980421538964794032114768259652499502442263333229397344566960585517707544754846601461407436142776755023972104958162425805508290312040662088752042692054241581733030939468740407925715500630935095455049017315973840399504425297631623661329600404244992942971618212712355835908619633325486204593583216439752871348898555817464409423200533084694594833345692905749305034949550194354405194401477587119935877967218677219631551726764823819112529123448720516299481903558109034928841062134376830367789346275804605146283916953750751425435507322063276630257542821849763654521531618059036006750518993426780691087067984568134094372608708261967912421976930286571684910905979197939885194676663264166748168538828723391403541821734296832682577477536826919729452541828984422984000776362154576299342921286142052314244699047643431167282628491803228224574910409747008860993690401072324898356919431966540725193334351315013734482246057602905679167780715583060296812303614828482934107342481747124584992520192151587865685735012821589309052787445487099613415649523426007864901350048112211757345327067410165640720498785123665779420502531701549550849565138900240960417779794181762716998860051011845065442579702192640282716597828446198176993552094164740039470707409169927566735157053579037466427691710015313335627000813493229689760266859072178042112674948919123295198483068399598131066661003678104797989432407963762570353200975734998144624557847232649747270544084763995035354621675754811172959562809660894442534225569313575949385375989012512192967539499715994024261773876797128246259679085860834412103722645414766620614952421499589760249673581864109837572697440380865189295055132841200356380679131393629692330148129778807354083928459870805245549788497421661050773892725737818690366824170253007979061053662457999588143579081578119422317918153807904335102649457871544499737109220247708155208827724651542985914085560508280460359515736884709914148931005339658233139438751490200562272271177739681135100886302740804614702939260159836233921386315358663896838485887162796919300591484920711272739433024968810345414026733558225259573103803509903098127244506625619586504802199840131080545191666898695342114053632177955469884228890396673886351342890749255694247033603396243561442149534488029435058603842073378100328753406822624572160739185833372305725893737162385026993630986375275666178256558393758574259286390497035016538434173498916221202879836740517882265687170966656141081361797469922903870245942962606356191046949433653325748145078065228093605157090387854795395672771296496456719442333707007097477002818417098641149741302538292826914335999186582879207715978029845702018482219577424260337775986394213424150843325462072497985316654158608108224713865151544650922973828469769339969786927420840573896393623309093310131649327393357853920007242514550162106988942266765486317285742737391136152279299017042779082979440737258444998592098542344485990346325074028140970916433976281051459269874021618108508850306616193716116054291500463438142655515186381881001458089643059569416619847003014989822585846255743284966147853956331696290785597729938492854414729285132275260275121809014269102967969332853398581254399458085290080091774921438498000254833690067829967175601473979119924924750732108328291879022361121969378288449958128804760799053499865471272150901861459819847011611417059249741177925307303148126228714745057628976424863649799591616512779558343456723871745375016308849102999042964288476253252836596639725886034780847414108690218184982750014340664338373915524505111825244553905977992027762664379889982716570231433344275304290636347125075994496544456837400328148626558818444308772308678251056243010303709248983902948375484754895136346071543547464417430009378172945747782765663183383365598625662237404819457697536031535359496291816255459971568485697158148256315545271459611589486314462259083575943749921829473324606463297674488563432658864019173117722613212288619586283532757776847691157995882143165236300883655568128985073032027844697016040470830965308417243104377473625998737143480478731590548295333776389220251280978532971596924535867723964735329871624815509600361460816419281297761636798899986231973248488845320590757628067586055190223358332081607332673701737538865326255965470018771613184229251232004570502815594804577688576109279321523177289369947498778482249826792774815294643513226091222216077098751758030696663977957479777152106979903561453783149298208479773034568623967370734790055691801327436770318818645910603881764443183939665445159825349544351706957462113250826225368496484673417305766338751563586164300330550510669014126405288373850812831952422708195503234992534833030148455346544425623755064402213027525103982220808869732355014054905956445290019986589987983099242099515669267488851326269067302476595084002991186657404167433160627322539536741436344092144659890212215054329961323777080194628685601687156401403287071422397233254174758347955224128678791081415863451192090423976998709829301232604286379043543527169305192318885252935157022505710476631667920193232591461785833792550594304230219584716169727128721814077697812474573792751609956023342864607016923569705001686976353462427816622866336280061303677465921627007938450050188725604960453347887157068376628638157961893217273044386902661804565800335961177829669475530658190459330916201670194432856913516678669534525079783468696400158068794852234567543812373217570477808369628489232831142977772499552896491242182280275990389764020468680842391755167327961906365066750395418823888507072712731157616323681981447851206453793257629975118428800461529473438672210703775517177031861869162260038046625350109909033554437762991167052265339189793316135569072458712967696853571784724920203411641250842930377663447472334008919303224550202208651423109077943891570436644097496004414457530227218163135783722578916390125991231694721323758661540402115149841738449946658793003216224750618856444045970189138387136760755921429172631258657129418522381254130052585766966344526631030046301794132875130429640518365876657278642882263121933662337660193582823143388084827551576089684559789847418561696892912382456562322729987249509062976050052734036654441005690048829100468435630868482030407451034225007330480678247975097980673689190294174681114706145069655196841967006652885782036018849791757841088419500406057083313286544515670734637035430656604003764185855719601241741328252759427172323006333688084711909892870156486724735626890463631176956502631531421720970206850418925166559186793083790690772957192632511400780649479057579288157786699485905379414353424272857891655215211265812780359651248727676720599268311167030521817724698035445631731706087505429986633142651468621955663694870758283695220874409941501209773391376406759586529294087558805380044333856808543583925852347274189291696406505581494528796620518864760222010388971809369174611632166073088799330237931516457890298506612221980136061961900904575228519408129274134036223698381245135870653059511569259794889118253534894009728895444953890354426308127456179020773089576070178767179160677649057336646258194602120602679239501286832842652459704179210445578547330232102135400523741560299443623552943042928982871796654432012475304345853027307627144969704603970460763457738780806050853278532885369732881552881306565264088615764167468472865484165136932769054531421789721870515812432877451919411570744783252800302073900458208625624938984278722504803509675850228735032846420438358721040843163950803417836521525103666731287843080296940422970700489434974842905032128301480706963215773904583386765723480268011480476515996345825093350163320461908982849393882067252006041447747247064382484912514798352318159070386341412925727810054482026253893714555061652135484238834796569051497760405437118570567904009705507613570158356893830749811983361021327482219550746968456124440971738787010477791596904704476428582082364212118246497489302818237843862302207875804913247663490474896833920672257243092285494936539609299366872203301550681231666918660437036179645077060785325737509185278087162015464118304083146739127452813634570231154639581269255421419036686154490532721626099984586861266968574194679331756097791032616997885665775938525187621670010825555165903060856214639680683436285182286917161076628337512206444699235540768402316122981231830494396114754083347922897852283002568424648252554045189237132707244499847321866601840922253345423168467735194640536904772007378585845157484203330377437436481688851104518902862601622863493589932592688811797084468038560307019440506979693557854334627431707703501759385090742985658578468273591960878400128199428925138330321380952258145664834726329612139301830435208837389204649543557076251004092592070469644428523463898506382877735294813862201848929831424205329041330643311066276557677517514610414814083941655464931890749644670609288888037918489476474934848011024898739497259184770259948535960339028792314466419661878725552490942272683558041931997369366944554792939601858620160941885392834243067499205078517602313329346847368670513039949627215609367411764213757637233637174813789443664179105865881621049698956880540683935597143062680811049077271225574829287035994316174556025988474041573996109270613494461106240589307020447976670719942206661119565048215138228714630918759569042425227929106619587738565684974195074452983521480992598670806606601650836032562490101953682598185681764004399970690793158335680266883193079805622882396368015511489748947243303530891026122316903690273815939276120850962416041100863050552740233568201359471134436912545089479659084187586239315381529352277639856027376228134315900012839836247088078343781259188199406794437481098912539248015314304957363855486130361245852666970798220875830836320885871439872473246175761800355823242003987449516325662130376827684123459950821353973441864397930001127090831957252784725566363971427179127385301437262186765949193893048823540305846737901897313599590285257180729376545987587522968217416921485153330225485773942784824338765164236026667755947237477339914679980044412216017051891129765066210770542186022599588897078890885000784934464939162717742521371062690954242206388698997282798958224895890477392716351550249000408552517858180870785025888542187266025783052270637934661668847981000299466503908594122232088659746457887259101178018705230016088659615343277134918990457436180608451862275894933042917090281785302743169524425699514833680949318794599280763523937881560650386631734905142349001823542339444550365356853702230762499156393881046453532337456173799064197177247194266148858819206644661079050890830789724206788586059795887586191844312896940726343746461779000124989595727009471505642951617816688486498464557849727031320922816510293355686912673332679026941067554811131811680888283482379464637831936572807727206682310049517573909088478404216114035912027371532170363428607865975796067136277095404032382485612877456598303167234617845726287012629872532405432029830240597148357927136645911213342457167847546561774159667208084087678537021077968996654710087400314923272354347391240873546441135678074797224348803600801064473577414736279306526754264139230051189007645459394560775058885361681809857542323003770260878986188993816599258580933722970819217566503904623230258203038560899942404291644724002402613203464026015934494257121858555896614873295317126542228943671626825805244043310639449463936548197409410372539315594502890689530538392852910761365351827863343247630865510256449885273756784022748149803583123831980777595354591768551693545874597025893502687763449226345255943319917318304226894178808130815909275886732768322658848092116967990515765890896992828452255961640023057469161084028763662313895971581055503158308659073426014421027365020670686778655252705540151347762989658049358188113296025581722695896328006561342208023407408541827681584290488716212815838479088847466064396801492481052904594514178635456097007626853590932278586522787550181822503831422578514254571925272119244522035566258632581547447172643119599109636168300738479561623790266077507878004213924225549784101302965925297439263720193268966427687182599451240018564419521628188648564287233996365885045530917439628277493460965633122621649541402328793827518441007135924597377040482011048366239456173783905343567421129051910258022903513686663906793891802407358057352547753727903359759383036050530785669445991338285071591537112181517002175108692702462415775903480095315687928181904274677364090657262185565021630882977671688307480437235535577764376872135188912830343548855895705982926602519330393539022679577089473764333268825986193815976467518672850156610273624136532132745254961779419149741053319187514797514570698679701318114570295245991982630703828009846584857155589536639020063443043361375695981522347666320623979871865821539736064565036188858430376348918584133437845863032970883518576441865017676299828588278022554281602175260622847848871656348544101053538656983808489705055888020785408954518658413166159571471630957155876111220179174361646183334150516992586877421951046669343257049646733375572281593570535494856704772391268698268155868947602625210600973465451038939053421314689178949773314510256507117854968493020762794690195821887935106167358989714942914109915621095200826006892938888780884328442893508810711888841296471974931961691877749641630404545266382478223716194855307439969850096600076513868722658606710214550446769001974050037666084034835044939795860010120074838345886748712673161616782046684102644125965864041560614890138730785153501346385541412704234563419924661829926071849355528480290821624978034156245206412263139000055868683571031116969649132649018208787721074013989760610582696118803173831829858860570096985754262574862615287546561737751717092861013102549366937424981994379003923231799526181801145244680820353396951171018432271155276584661126061041853763259025574242911508363241709483887350671929826519992845171504512970861582478387253769947339978651872760632788902458332324687459970101398160242124729207406845344546495335231318947070256491831889032322748311083982684982304405300065789156457330748591808875774655184318442762718348049537720949843464908093431981598125238520736483248754606886342210431563079409949664924117825083178077691639015125816285312588934976053374980123079555425296296754320122717984352240446162097566434753761827377669437477199832053408096127713169143075872611364262355954217885622347131934146044188015750898564004145460078641544902881230657694582581963858591471051464355485310542719700564966944309248219076533186132198560924006615690047774092014819029925894264266417684488220373776149811939001507994091852191891666723478282813909164704371941324750202353546993516802120910258690761049735668100029891421997388758106516724054424473045108721286217809687419078458719445554183202066149737282442893019242509201902474568830295846850402079344576812434510284755553662443461166628555548010422661224755239442042644371418762199783220835888895062650962051038110765079930620721058729084446322032626317144061323849996997431653177673324064704929666651287384773512783789387236103238463506304236473577667545617610736843169446194932915135819552467647814032366548604979716601690061543357300856581337928532339576868672150772872120322247400401292030971914491110252651628778462170925632905616409733683409553787850725121855384854667873200163057615067332045525348367707905864047283718392822306364281313738764843836369739239729054731209544687242356979820594052906246984638137512904590146870651696238765033313570695438274366005188153536736154856427078184515840100367371627144484860650406233705971278780956488456203329066619266262713935364751068104227891781608112956945540727639470283056306161729451618834952155816910167906244436808466646018587424573941107160166755425619210149563667908911198534053707909844498747562855360658627908598087475913779917473082339312515637563972258012821705402195450312638356144091453307352027906943882242267079264961318037566440242267078934440998313047579347402991957180764028466806533661941882374304928657168893641067186544024930181840380698431721394458982893096573913325180818370976237221659582874131909462977408022910403200561834816986288514090525658086842953717801069470896614242358325898623628469741452061317411294235837990344257977118052891891669052162528169604511672639110185390153325511790044350630188592607185276072739140382122713147274270000869226045156424330979155021354245840737557312564079795499676655737802801784680305759746709957397803401648688895527858089871860407658384177362472684210311197221194115770386039636500372182492585309760900228422866992367109790061396302219214591623598822341713861974743674531034460247412633866157476626058074644566812872372684362698550962130351375781454856583674862772491622840161718694312418117092754675706306643608658404246276964798542440553148603614476081863306746601777018843169446506912064475142640709314750821624856238526101301672742400715495102212744146634140930158291616492462178360723675985376662383022106856206077030565186893066899747608538304638976581339115690860967546752312499236361628019486425898315545019502300003719683002525308106075714432236545456416426674543524627762514493857951363154081235353393674990660648171781070454052252599266298166013353713863389401827289167155478579516397259891006614333407985354174982831428193911824976333755116044564980679566162444917853158440613514485036421404638237608475358559523401729772346174159249503108713405555514747992707563443071696816368467891202731554748013911121229856161120602841413572502079970991258010072112476792712195349444799249386547288645460736044252899231375379461697818691466624354917712882861827845683595419760524923578127306659651442595036852090000048274821337018499321829320421477687061858861851112055072615210534883627167815650608690601155048826433702868437623180221324161127947944242514573372181750962007638468452740629930335223598335583587202511014922494778664407804245389350596827627792922704204464637974767958930904332575924812706342508532511492942069091220283647023491941187233064343410166602176552833104660699836508905828253615497313027540457029049849771416994702378666866277273063383623434175108074626262012266339591249357379299351646796124687848203530986274478487677411916911462852035972221945627968567309695180117524936849810517886214462147190177160665714342857878003486991993051916991500714916745810714146007832980952706112633579157704366779700970052866898762004969872789194513036786846172271545279778959739537403291959351557002889179820247897113471598608778183347199780657462532744022506834231853518481716416816217386960778010035305550351814480804794687722786532079750391808910844907767221339040217398731204261803367440597532428763803729994606821228133225130363452327990900758845116762903073852095561010115946392570718746018473659545208686077922684957367561053375764189074515777467868289083808867910511516064937321814734104654659653678950648135450146514630624776279807033900085395899795761616312661658762584935518342183194212197127887696480196464568380997920186119616325194529271899233769389807901875312898365414739110888922179361772127442151978620935509556950414130118938325976554465804476794416158023073286236265677842074543928199106083234262158875593854866821781184953278792419089421137837782235513402376145504733844801758547313379903548880358184872050189326609584556495305118204876738599062429830039752150053120121931090107962543093766745255929580421712342943469472034035537767039809816268374104974816704100589135168372720331994309371614209912678787509572313892864851291977385127199460250202731391905045486858051130178582696129906598388063304966816786147779976159535045943029816556822888683126383974972296184843759993926683412785239902211795910776532215860786832897267407097929064230304463167895928069361740038633698206642886430679653819228864559011676902445912858196102407843956687033675760863102089643581713681282809034023127633987617205898760896101643996290197422380115375384138364147630504930956343606286755088217488788189377778907781464717208228850064029543163982086313827828835606655182829033305737230673919515589664280347644341848824452345424185915880848775961410521258725069954135149873259895972817026570043470800409746582609539876252435152400459936357984061480607189969903503519732905381256509397984176336330845960183530688589256268268674750696178842858643641957732221364119120026259840277347520469101072949367572250639449147393651509355293524536742215023310344335630372633811992877733835972374015327411276951709724387452856469636218650413470689819103173731228088969330218180667006485781993185391946182378889038063694487989159586940247107624429900323504074893923258623054776691609434301405719939707524876445903022431612196057373658726379290976705950979202009321641232055221654304251791444795190907852294304048010016504889012730389688564624040072230831711916336163333794684345427305555676910813776463377026136963014174658923759765793489534291107184438359430301234690533162999859279681446698622809972748383159705866033579121113094528141874628396261824990974101746156883589875239327536824237493409401365853512528231631605487269943782109700690414396041454712928429169624255520523294874240026740856543309009083172073798020317146910655724107673962620490586458237970832923350515752000146090483394698431960895613205163196852408217134509298372980679068580050236969184138048873051976633154583161164728629777909802291607984970093025721369159710736640330786280390538795615594644809091861974732817438096118460095043052711354878955724234851051085657375071350802294930027084401289995347953712823456412345103652209466499597523887665740396441488487310431380289912112236797871349872118061773079657653597398812183556841831163366028871583829826782431245682616342126561074382649897941939981429917111401066506638801110230965780492799852513399956499745487028837162013734611216874260957497782563996369984266408996890806575665908080414554223771161369927672667818065304856166137920072011030707146463733494400036055337002058891400462075618043271995663675577160091403352967412814618479910285905687428265340207635509554181843849008825022844357432096024108331778869687960529834961582678208889539607212083920438259264460784907687252380162307803844596768860265407919827892575513650196720604350974489521789572116423872010548535746392315505048083917928436979306650167599775888951456698736623767880779427683253698041499473841980416347300921624898535865312151184580914940945385597496992175330293600828119583360516380441682400086608533498313596594571093258390467259296416018405146909049162523819166772766227860877885975149719078658392307114143780178427675523719557322275378962840913926883137002657213990135775724701345515894461104133030002519740491948654715042105196503140556210531937401747439950078380047822279014988129172098133406308398212660969650379490509481438884714548341577266891208850757435966432487686221891595550043031255691738860092518027614697705827808964198774716438990199124533647912567479164785256152095933341793396702625498299797128692334852839408768364615959820674904113757087263328996486558755032285141582537682231253207921049805445757753674107023878382061787861817634624086849069687920486305698464651049440450208189630357824507220698084635602857362322957036194835927996875961570852807672610405998350868032107828045873221819781134146472010247239421073085945349584398516504396827956687881947999243847568683042147818392340591765802515157165231098350910295134961837692014753849857820825044484195478801863874381904853301677777280499644392960693772366077746439355353377820517198903717199618104483271493146082329980581515516181766356199994003879229638303545461272691642899294262125717301615390884572480122698365115080185755330251978172469465589844989809507035401836489171451741029166513046606533293738820409078457924659169568670156366210671478606024819700235009976210510228929648169759795974042665089633535149682146297680258567138154181524952020749426013543929738909020170044229326332836658552530979777240563185527680128922315469260897845750840172339272666354375500960401553695366172527640101007836354360851999130516249981432200463774925981200078375465863458894864379726502627382028415454150418839945156362024045035378017354430301805488217683061293626613301153849010326926798125350950251064888984698151877113226298412642805763922854397589119634605019795794667390204281915623306511130019749055811805323542803847343945592619287410589770387491866482133937920740970744429595926755107684776140533557984571628089535996562962901794947818965235417536696669174148848136410945437193452850944843084641164665534622001586741018787277073410525456167451116948645421962055559216516537895214040801761522910276848885498476828391449414149685358226007713604797875784260949580450460374594143965661266963597585013724009432354378125264651094945449597810575059841357585406607316825972820967987445336113311816046254531640346246528622975067733528063886335401471103690004384427121054265129508771745100110268314222837028374959890302042669461851996091245801225691070248250958750349539215212243318895141114238913717365874043611622678647198287596497202226873144321531790766024164999539329365169997970691668167399479037595042400817458971067632856946901275361888804616743008472886552300168020424153867672867976558128242751501205693528841172219417721533250338574150953547354322513657106719649219643203133663290473769504540502277887441690555124257565620707909865011968471712724584037736789937228341890685091617245994846322426047076596630373543964929651399765839300424020613391503820153071768363863127121305701203739762593871703877312947510300377626653743553344546527806163071830509071236697328001292037382343510652666561682968605275622137471293149174216146444685266450388007686963125393970119519517186025039901983996339532616866850081292957265789853533283938717117670598454433973341593784738109023924139361442072787453336027644470357181384322022378713211305333117781245268587854439894351460246919625165045766468519815933289285981648090616806695990824879824320027324451474527034532132244041385404916056383266066952999958616440386845062446798896634687204821075334279578121613803514437105539498874395646056111983494033654813502394338434901599993153136951951301218746377043273153439388076370411833806213628256218269240676950924837330162839440424705890967535665878856937681220754995547298582062738309185465940406229608672956919924893680032587023730277575425977384783997043577048632861783646040962315368831234621372021152970198029289025842209231362842461122674460882468002947945748718623633982719269229405675287925804361935763580248920353202485482948863804311296775862938259642026455574392910996557880584308875539091938551060119246087667991433536429041257868652033075563246510263523451473679037516187317747849895643017979759290234796252679820437433187943887611330051565608886037214026849910033751494838093475697882527507637531785239482897398707000389752203225643867263503029004469302316883211345889419817565101060707109307975445058640810802106994050863046592891321400573181093614454767375293320683743694093157935974133855911865133082511835901562092264108071716545832056006350730824180651951879786174992241442858734853265075838486652402233664849012458306640315554525871943957441317875380050951024173684681578151194599111992060892571843767013453775012900032339040623098986520279304917183874545282324121287835190429706320517742292242013126146276768727846011335348612691032914478634415615855095958130594962391580528629288522787022926933068649703298695028411352969606102650220801421874662086467477198365361504164750709562235065375981221022994749898407290565438986387188724465341030467970290483527684026929045487298299475065512048336197030517504070008146084788282065317949892620201001886076671383898507624707961449856906260082721011577424053408994835209635212141735703760363726967153948338023254459055597077243810685441691371185869745536665254844662030633862581652665448264300471508648835764568313158063979194742702872306076024885075788120396318629274957801369347509904548682552135206108275524421595701027030509677032963051351858522294359620387400397016728179703404563211159027392660676879381125841213201165785272322083871195666879678986811152346513256701598699787301796518470775457516296971019371606614001377492933150386607500026517322383575542150633410423123781024573104979342089150076547433766403076873136228836515579679571428054641623545801932144012737617110466179941862239182718625588123548855916402820163763690983401767890287827259760550668596329968621982513122835812499462977154583469356105781127057415786998576261217364409570154301464289589501305644315430781644658737540917548895205155388622938632693111911523832880920812730470860334410233465059525436119444493655591266664347141994835731999808495844610934530201677881119698692623506156628117358559734746839294837042094195673858935912499189308586722030488566054227489933951163192003508640613157553258280848337334061533312509218528747196486023073107677284371600823202790962539431848057406642572643461692287921938368435882873586976925859880325944554363751811889626585943128434575602602725310040620916077816558022363070324302181426973239252625320959331154420782094378824124058886346777459393764640028554286379090019047822782761699538218209778100570297501117856842925795633976909806902987793440464848861459466192980964745995917125538052422726358761573312641777752683161497825020454764496417677069362034563445556541078915496533400975416785032406418449073627916586491217239646334254353931393844980783548937394233547387803012251102293770091045390667097971179927103752091977089565088992536750171743939253197017041048923776694860314135593395358698587883500743320716929289063081200412069869399785407254667696654236209630632176645495864752650924798869326246501601211238793631359819206540392027027736671873961517421186202803112549621574085438313901884504988311793618903956697832134017413532971190454931112560009713615899529798274509651325531375005990591738233770464373926507296833584474416022247817499585383285853605679756877239605006352726809873234451590659870955826386180907678892764403698362246391407404754633900023287681857549102451900914139019209824670285373868305199078302872094130471784421862046654273895278676562959490118765449956493435788537066747637259261066676466164531744794049175607104061699377265538737032295971470950479044231865821657207079106260992237486718056617598171513610552215043494661759165931958517463585551596772932681146414630531181926701837352885274907181992337844538121411719195318004734907906655638324378107347409437179168114214352389620961020936875469457027823102857022730506530556575341629548170413788126769271930911054453367043946568308318847246716134287367544168294409576527167615800083480275014413195621121240892298110602051774513368902722096086931196490439792577248384159664699857576493176489347833686748441128899676537150746683657053522403719674535299546163253501046229687268534210886123815651233196957924834984156333846123345941098348069287714538543666870507138040422914921661700906147447094974741856938526367801443905920946746089292385870940498117280595711851149933838611753849981647320657608287011741940274051059110274132879508085694217740084785795245459029370896408716692557951236442160798052404825844556943298280492694185877418537698818507995562877894493253149170052979681832907776230772027344679090730654910937987356325174426305546768167972905822423699077593073773401694500104681445552875539357806032779235473382534733161731748099888356940816252787162265505665127760081963057104458273885842310183688275201288244214798308236869848976368925101130464855055268338306750235751805856923537152569817825300761469285571742011093313874750444120457032923326252137320965699157013801399261467846937794697547185188230540087277009382748086471753436497526549770961717561487496245186175167960178697247753791358893804312716881640410247030509073834202969460770993485861047422183074303341082961227893483249042998055147603365090052381956744744271559783313009318138763345542049511542511728951545192861409322064497752949341967441264348070847515621901924922494704261163252413510951359246887087941813363679427402760147170819210879802599888941713768735914040292034868385968226012440854092642267492577569467276146887306807360020558272243805000191864299742128316252693628183305031171463827378548331359785972148166618446856449487015587060798238679542307924031702001696078349680892400535083938041870242541009318304702774091428976213265919364828480199370056374519098606928614988920381362584485373082551837815795071561219268264967899615810832244392280683344925984681646010397619822459085503497607119794317445473103578746102671569053318461440536518649211185405620921094757563707858822435903843177166098626349789394543427605350732541370434340112894141941324135012422179647827894712614369232683988051803054197100796770206563553860812463419761302330117296603199630102775448177238270998485632074689113385485734372349585296647344277639314207041018011806804904771704739487681200929017296233120452291478987201833217933912455041277136338783255769993953068764553625344502148354009115456629289689215578573243277031271001467462359242645978891322278677563758448868208250318652835098743620122172815847052823404264324539610945076772882781407127406564191771006592690364655526911165354631348350854938085273282206779439376248187708609850143142667262852373385234192215014633532931388531644855260322349029250376021151929987466333709611243406181861670734127615255261097922097200742850903590493389895646075690648981252307432433482228950496091791167571729899119070022356284758214574996197396252872595979204382958993726558119299670824675257953653973498848067935381167844490051324369222261887286419266579934224620183780421114835312616688727541839652093045321912078526556701388957974128982431607394710872314106187959761038058973882253543317200316289187527907965442077453255469502523238407917363110598913618510162437989242543333689113630294491082373357704140056469263769208611406546057723252405210022675006415171863230520200809286629862248837181451068633636532708884510067600267952293758560644354268278185617403368376513306718483902441505186539812949503081980684021942798171517688523045594091121752697678156815228254725350798421342304908004582310520615141226910631512989322046932082482660442025442063943669324459622669891578640758382413666476184622061134844707391530345095650550836292698288592161303149464024975923157969157524910909839617523522928633856330471610744668477186013860989047823187380011730991042789328835831145013933386333618116024137100998924135440015918508665326627704215436638745079090411505875733719441085517551086008306977980299874916363369477805348807824307166186850373835781092587207524939071015667757844448479879733038063266097309912844401458729280890357617246512068460259433526164526833462663443836542320710507795780707550662910140680450472878031634767721102811485833871298562380305911716543964491237790589399776554117201119966300135603528588057329618625064051999988258669868605342669194931746175172162542388927994109974366928916054755303469191823800829350385972637919498717881581795292881196062465190880062190561273782267481398912755731142929406196183478076006915400313521702512729978285616437398325506212945763993859778458314863447826987065679263961905209598643894426108515740088159604341372266478301516963474026496933719137819709630196225910361008900222923452955765842298430944872949950531419865515697353171748633506165282408084258207721477828380971509449594981210104136959021089402665752640104102355300032673179398656471683405518694632654955849692292964867960069100977639865577340037605192390333246585755283336121995056896930164249756534567068653375703852764805527270578977101983372210014094138722790653507055610820425541228061735499938478066427395785162720622448069350770970220575249393976429366239920681328749011187797374071423626292689194859429172641142355636595489235639011628287951096177253558068011047468534363701509827288691752205252935681972172905075005308577380741433217614737456223923811338509141512672090484198276488901169690740936567524809110802799704924900154565494941822561292053481085473773001960263791624333418340319029071935141112991132641969783680266165406519553761210608392693358142559735439038970026032798556567193743084880260387893819313190053449095462252005079499815890517369250314879083802567252563722005726922873369135908117928421248853713754888768859460490851996226668344064974637481277931108614912451496504212897793153532059018281896211062264537816695971005376845656467854556108063209256079010757921075612854399098855321145472210593955013998585540479931774152439007060076979102538029962611732267812179659895039971900788456326527540637763001246823464545210106634578073031061132677461521386055726416235988178777252726093619628917002417306411215757177958049027914521917638682691319537507760457200419664033223773631027412683271059321758849559747268995271504622277940314615634191296381280417455364629071909353359589622410178795204003295410378029689114745883444440950746296140199711239701628752308662653174996180296346102070794990828825188221093114052982377278341579638650362729300996929571276158846712147264376927823229088632881190811919777984000140635800943203719107296246903846043745299021605016248418075795244371032541829515196459381846343967548175096028814931185259029903970910953954256336364374801026706521631641622983122592015054808306799526026979107172355624443024892461864572796488879700796853746231417894610063176723791400491185411273381606593893743920949224887982436735278765707606801038747656670591897766432938120556753337973889029234489949774159948042821568997384971730395939840484751823711817162913051549717743050526136160823979856002142440273632892674884459889028736509051549180837278405303444282567144076098926259372669924259737004313446649686092394341597056405187197576454687406570296230687602462478678180331637829490786182933845113601342520440780653108887897847908129293121065971130007132870821735949567463404037008299330698139422728557827634091198779710678079231025014457421821146134444945525975325921657245854565666887961875551555100673436563581368998192180900689492830034815552271793961293215412045212970879247062674106617876655739347710712475972375125723243196426638754941979358785253820200837920136257288309366521308110645060405582504775313659652256263717160207235952285270035697085023089572551151876583477254451035410862377504933991866135876187357483674869216378901520752329531323515869417371038963427604974540350172125085995200000189723475682587122778636785977325555197937112558770929755100999550836853083211450034008526214532707403792197760359395037245977289923062266977637193316287459785584676371747811949820167090037120309942787515916667622158554647784193683850658562345513014730250903076481354526118795574973950155273972236676791618422432898816322589788445326983391741708529601557731807530143977983364245938345073763544760517089788327423030647721558164741386817542097657553189522836501731318354228762494200797530589645631791189481893008656409496374462642708737010366668969395964333122189873156957559659440312154392525949565983467446723106574387350229462254711358667413158562757256189268736286933165375814183174087572748584344716858774334045309724631908891648398563501761381436259594236124172533156168897289611312975138989381390497487392777311113283402349779499418025534500456039702299129384913374310598785298976842843184067143462658335353297162618091266585301165619320581450045856269139586530982961468258296834507818439587305899316224816379576632676593698702516670388920310709433475796087982458612785611800451204259170429726583993977945577129621976472238644612849198605688396395866162137113964055870199999308223451466219062674676651039404044257851552116673744983861312263787378913452706330629002841988701512524841505554572957040697527280316231977579910180121801472202953458496856011634221048786739395464098178839139361769880624713908782986746594150980757465076162854083361292667499125865036395400141709083486451280035127284172382886202976604602385160008940565817560736557249729536990906705274524920262690778913544550854035808256886477124736846069592140045615174394883389624462494598568027871220460020278206485877403839618530190023463641347063038593466849366947496851537304132095815845997468398922365646616936065629461216026846321606316287054445704657045429430337453968070819835616001860168136383009553316912641828947680829533042388767770314182121233778048103645242353874767159859092276692361685913177189269107070634991357542866602901344519214556707900718025025017599761485444849581733331128141729624910758128523952551567545701033857654056475686387611666013434414343208984666268600212302664107828080609660096238902954649669661392064940479430792791042594574870366315183547300004607248257218185722936219196218527265041488509668654619404658374346201316925200231085510926307144704657797310648884614243984851868725101591196198070293387977309267968699344555906970593215143309791291159513925421933640807341808638005046477662814728849805915004889271089800934120324658647749092057410715396725317088256242192550074852866418610725468605859659950371881801346796369734932373610563015996768034831260314859306948304911049398998665181847843759711356680259026395335878605490120541853021949803129818610873265360782454920958523759366504149480664014072408926890530555839445154132078166239337083237163932733403641194379370651208073333366470924790113131348893761238380789217703492484483403553159533577311935399453986540300065886501661912322789517495621288132198467400932842639599261568732553408204452954575083658287552514037124789412663376291594881604966775782569995453406021940055035406540464441033634624172742779706781534282792312672399985625902309837375269861019192674269943069675647805942101809275234802612628664057435697479399562591869011831748940541986436928274646743997014548266440642169938113542167703356170401587143062519671410410078888372177318577312870006340283721298079446817293911236624387049250436949067198579868618959697980542273894901329789747679519986376064653882075265801441102438379880327797781397287064748395927690177518562515201739306942394723417479439123165915844957967942422116013780970122448845348667301010692073417651791040094353427732302772936991357657311877988316558492801956209765812718106932076700295947404822002601754783587200815772391944999831382103230619179571863952899706837975805948161740537484889237407843472028330360590943113725640058523293910731649508841382963759171707283275367296616203523849421271154289819542505420735983828798496102602031898843676024358065698562069261154119558128086415799467126768868599139721169714233950734602347139550403437649156802203889497503053195975110873696846794202680314202845523609264324110856770946858530890413534286249289373895742851746635128996603761263339214514797707606560994154883554034551922842285237074925968205725948894149711030778647181166583512207904720083910415537070136598976354559918591621791242526541659291124059389449315809102970164606130725076484798747086535165674771214323229599424901191683562007316937074967902862154346529899750218621046984354413959900999354584999964777848336638254257685900094800133158613404193838623655177594079401159220514710424543780952386695995870226773627790861656988063538076719140118367757353929746086078309395330273481924997553361807869794145652026323298431266117407084999966323242845696708925772807150239491766546096225360569444256920933636800067108842069123337524929873599441620335942180628105293725492005974702067346825114724815373838511688492120667713291137813739112685748760370264471779465483171163018959804634770750454123021740985481526033856404853764680207011373382901488063182103977129096139626440638091491474466851290848060900147124051582826891035711169364314385976003606618564037677923517302558874892947454888092069710254209755469568025303825966837444703686343202132485873534289406428156386851329199399469319406508211065379888570778311397161171780092518803272471034175310232798615360847895010159457859113765976047314582030830854097451280330311513225955266795492252309097225277771210099292716303265317943517058383895274670107936747072141740889321035870425528855036715788382692935943755886406215710350965757331709244020937131727655778679910401259235693443790539946150420980689514737069250135901652032958355924102708960054918264716434508692805732095525010631777965942942312599845095489882104305063071862745465530331670014927568948651251901348735928782425154004662692659278609817235793486120084489245532291914556831089853183819424270721255321709911956220570065619365290528592106709956471733933958951008010385514061089421661183420186263263779847148830097699884177249387606669158528794847661186036380034939770606414633881759580751641313727316771522050578957529741849726153431187225297615707681592983041058624521565112400869335834932855604404049583890794794848494827864291654360101379753950637510910151725947897796027670400702073740610476901823813360009218468745193381954539803075618364724853021417747277220143546841101281325008472058667609237123324118683151140851168001045309807157443300204628393144548570968186762453595451701422472720040379150754224627422760415036889633432696128181088206790108975576062442808580958258183198157400708451514527978054757062215108148003858993833479836729333228485974243926252514647881915611500021684808482408912851705298442935984586835579456853724730681174977839032257220743995004734043456088509096892730437382442045193426203520657037119436742360774411742578717486523830209492347621381665472813792982730464441820524495757029457608342409299403948025659970224875198018986858818405078397228299622617962710902600393438909510734443904372776241828326010075651419148319548603503979279501160839496965044089928548885660898501914365048198518026197016856104107736730078135337970868898553569127467567296116873163033133175001776468608354793559768960194662403485055886667027832082235048708771006145373903061448817685086960203523355929099457442726470624835805903146643173242825382310707532873492295065517061373421064279991451055195875450721434373982963681243844646762949358372161850350339333549035792795010563118093609093552507997544513095300297985917412894791210538731255257595541646351187488344051095721306409524246378346473166628195947752925888586000815804932029957429245690435671169551171617260491887677859302395741670260002259655186387861595927971920743374753462773476904064215604947449498087034930210362603083523176237035424632747326675763210498891983393600473745142287550225060558624618811475931663247816591441695581742805369552066929647150021172499128205543467591971013081348630730973850793694273795073956523840131949885967491675791933733307172325926448113459609613038035965021178724610631846509299460738189809381540363174125812095466539694122878067368287178352674602060624359865854349455485674049102049243394835201714750013240736375290446425873549466250563436081430956789461518223372089792597953898143690040469895036233288818268845968613466219703501427261911952136482481777557708569876502660270781445995224841465574005633439098011995742513374114049325295155556396289341590544467417914422493849024668084781006048067819481345550175085836587248250648860690060717359959534009749470358631709163148703963262727818360548986208123176487770827708601380343986302967955371708426093971124152609210462389739350035928763842660388738520981027254989253412119561077713940682998160675943189906388955450771814508925441305317338481626650994769015987527205793026615788552697290323001632939649646210491940489625276050703527732435104620852579702159824882905474344185235609821596447879651380407146941509785808532830305421014463849283029959148166519449871901002190125237069145563649679951889246175776013380164750199406189395999208378087578885366436265708613679018501095367429029949996347379088327060979817257885091726087798442709300202706181780045526814644895433833086317199553336395507377811836142311703763184774057718841809964729829303323887195732908929250253955312365006295938503331032090489334771782003336682760858770886702651003244109415415327173856854333323549597725148560849328827664173847542361583030832764974884911504772203487051315451829181974805652688789528711900469675860690023257864279441171360483148262945656643058170131423775616200562779921717272835040393570484233153889997307503558081087543168986120199529299854122019634848050750170263466320257924209716973822554877402437347469573923758476504219058142361482549214551631471708851805537207667608457981335784896565886521533682808941926307528998867787512730686349512283916341632637153177510857717880337269139090036316659839959972880327197433942027687025787269874657722740295578981284382282866618301344175597007486596992040089519558111762271100082609744538889589362954347468816192201746869372531129620402401325409414002999079448961931067046688759359957968690212986003993005808934536019688632349626306913383905924060675349670214304994070180117868491520816275078336647501845635603295621841404870337584186199452191441513895896452916546214597415860600149143922852866080194574784500553971483968014138227553463150868772951904454576707950089915260221579694985167755390248271614904429555312402304192364135787331853224643523040809433045839315840831561924445861208820676218575172675866077683510135013091515495049890934086530142086628618743463482500908799846713860281206375131530700436616184188522025702995777585508515499086068591406981440883242509099177265439284526808243170043005473478662430625316524539936216477555632629052000111529409220564252127821966396904189351944427411699651943557834708267387268500439760878798507238414631581031560096351195486250199520402446510081099466769968820200297732531816146498316905010014104679789132523820759988611567232921713988039167380441897223527355994261409138860476549581936381336076892424316426526119821491729981144748992098169897741727874044061345201818528821901841223481362402342542509344519807009419743691225764157785384861723343228207387228880400026928472598650116798834634622925095314627029816113436924833762156877389309420402676462420061194786510391214363293400296406019102205573921531454947705364859070153187997770453547503634334855482894987353311026649322881762264947531323641550419756757535863506245456719088542974840735478181189423926114817389372821186745502842029823327658505256543741686852927134463877301345027294998266078790391868686181060745885647332748861121537086609554129467840511376956718064814705549742008938270949513921953137148261528209491774173814450748498137281569174671876712101474569833640332915433893746319778787896788112873152914220948096499056749759875168349289052877894718704265967368888601352242382273299210196389796375468470084279403905237140203237300686027363255940721682754633387048845317851907933630025545270250319294605925559292597771962495506786568863070903825934884816591516089447098055961886556419958271777301469874675753524170121035145916907619196303858186493995809998921125027602699399836536972172804908384449586677735282906318785716774295260144147349267775592164653044222112856535657122985842689291773198826004570987459592959401293005906913238312739571436520802809326810142893747541860242425951858257417560395887772010848676593122462856459045071611731884673814188177247199644696860526341556335372205480421780124087691910878208507769505122374958963539037071983403775382466922597240002636095229538400705833892698788724058037419908631806175427522074052343615037824834310910009485271888420148663508026582627852242444507661996590704727029678445852649724164163504608717119702288148838223105829756060918534383909773732360178170548518205750783292434502000521059557136847501300588706849208704024776714486641468612390290500902552590207716964689271240274965366214834132689189106103801456632365379501886993381688572895655025785706362124486436094246281887351726633265118313651242312111988647094697887084317445443755164903501476248925436885490380953842060623391872642544378943675545100370402304664448233521632903731771726577505444338081590909433686331266242347248543544010838191830875761033950085383507318267235383155330087422996291011928691796685832209559616063416200460276725420282805461945438697944441886272899195446004053151396281429417562488776046999434617809927581120916906143004738450297820738594528801467359296332840639875146014941181196002948791244142538414083384937392017212540015194829135432155941104676858026853425874727163981380457373106554947945471844228250117484199378557253228603035618971669824123875265837923796439244352620799783356831322846138143777903861875176358345589497568904159294063269076262200409477457329633221642419747647999150226736733153170386135028868668516719031744860336371892408389610259591695675959514523513477513427179848172797230731688379532789459646612245136447261178648600100887231218142908551057378758455933405067020984204576126395387485069946890336143521178120683829755164456282629658964476190173545781169979573711964038000303690681024294307560038673207940460141314030601086794583899614463845363949076071275373936878703397436088141025929996049540946693265784719370002623710539012784511871270226114908650450230383619458668875282995164819198317069827661291306010869644509946107737203555830591655820914621033954686935551306657676321594417243128487342536768672761654731269406083331223595688986700072635785612396310430267170617900487533117501631133452347342422628179854364597090957664296259329158739689698066745236664886027836661136358379346167721737316133979625797091310474171471479920632244789196460912365533263171258570728463057781814372515972246306275584266496621132879778967975293865373757515978166054322762537054332585581343008133352551273794108449690386397641046381566401474136801489110332580240802639885851723293013726336199804345515986073339763231433629577544007510201695707867188905586608824352144921501294483860320461601143851289676426872794128828847378176283895364045740946810191462807411580945386340970408370872057695608894476458969817531574976194809610200704891518229534541365538298795928632528267313298224097660870401778382323848900246679859506496754646013234574704351927452775812166796002049430688284982066490327548029503580994577286532351514240975043322965515443231128504607446869264996630642875781196648230589325828237813332162724815227296028246131018445924370530253234446073059254440640018775187849348448648422797867951333902952001853179819108202057858497467091385222034163382212481491059161050712245877014602927465887358013867881462465222192972448565170209625680673670141468131965248858379218464958817521569014773489180206489281563885680116900122957228919563714864828801589096835154964737794502843915436886368733934285462254604737188322320414818505178018184181417239879258775288505231069465677858581308096740415969425593345092753878125769285637369147901979894620024800528533807467076909557227161218922224486787310547530871966879629338503908370064431224585769245876560419038460410162083850122481375942133035324737406022699080481232107405070595473642113468802308812280719424769858907939484031379386586797605562542646308522870511369991519955627881956483915535489471317583153280004101136595611130442191146382741270880051399609686475514499586677976056229877214729035765056608875317192977641685536152431156791901523203374531465286745773697859141593401384967458606102714761054306642951997529803315905856445965888647060428867693011660775436456560615136364397410160161691339082282305680043725943697081726009074280191458374411284811463373210668094888955227435838741865030601689835525699859935432809142708687853312442348033913568077039743659246168300850182523025546913515102603092283793156850344226270643196983511479103386203093641626445291426782878656257410623862705801258735035664204527199011076328807007408268590911375253377630906002180706000613423196927273774450565930677560223437133560087565883788125884602115485015287676841284336848912262159576231454141060867441559255422839196620817386470513487216380520269830522454288845443418985794822418776853016078893656504634113283629571151860242302636438344479727879486631308582956943956125296717645728920550430162443881428655668048506792506575588151040482898222600405787752629999188135097577703018440539503770245282397653692548905373139931174193897819014115402843107232714073676795313287885760883083332619247887827712709771225293224636371898574456341211710411834464009352468146531052736684727945949023125128322279896675479555928238275053438510768624580103686823790927543220281391477564161670909172035604811513844643781347674949357119472186668572868993715617000876488439014541704081461593072814377107262469498880803347105703603240087672766247753105653408801960488000996009681616230871826705975016642564698073046532115619442810856856251398337791127772441383396651946173395721205716110522546789289608090409426828303581150463783454001480733815844629423311900035197460483500253028524778322261661984174868236758700695300565048490514522034496695737309965545893895901515576769579895498608769314447021304592217587171764629145462906527027182514785766771247751555099111242374747859150613026348329386656616465538909061796196001748885884363595051587458298272163630443621952490508159314674997580398458627417425928272544108521012660577982986735085890054054725954865702346336354297836462022546819579736465352588175347798369327444516969036781262311546874905048110709369904429129254615490240773238274879515940615200800217556545041521079854876012605693829915922033892823245811779244845161329192778604302584785417047616755900980628065546842498804082948067258809603797752115419917887697781341534392311330688012684165897191457993748436579146828139867069140721235767536922808076364495122192984498869952925251723066262724501592934022244653781363023363263388652401841838239330483788164110357324372602083039332663490675108624655829914080634192322464562820679043443125179010887834046076017766631557185820713709956429705103130926137237990931660906186627065291441890752052099655231241326746612121971537835464213800613745150850193429179253087308996395944712121794653452975548714929010346678544060486291245998176599648567224685995365487325028680718702390703276575212115600821422420802884655220252797559252807710661625201260527663142006271413338963989000775278050353033669445693373904114328140063276197453844312751923091704505070088607851722829942504753358247197005660999939705568983521644683080913627333458782296902392855028740804422691143187228352630572257692342351700242434422334175284033996273579305455042512788070112339143174963340999220885481539438588080433101651254860045824744508750678593627603022073060841653394791352648552045401047904871422350397779809343785925188670976306207535577257524837429216119258437050721012688057856441341373486942934977128523919228178973308197035965016295777165260656911793586947559178535092898041346136402916975262353896217663152539549143615060943947642179925540261411171790835293968938494261125490001677767986196614473765623737244293332954397858872187124258138770749146471190132585014289605010803419778553460844546714517792151225161801069315480568488266874167377723780991389425283215306163029267136626113904310291686997351470813641773449652947534896193942096986384444574784465702743238508942764266162544151519508156149674644641882550487925590296569034973543000820589515649805459081244230666331093735836732483758694225189366848083008111626229890971596306250449023522402977111668560966423986477340208973312051599143620774418910201744105053961307032235522063760146063492921748512807755651068926796184582849048065102938867882271196651399048560527178212688785748433024079380873108312781350209582750660539095444021227821311589178132322474446497508810830992616597707312176510029003483811637999117913929500176090531985705811685157444595895353024783170801872959275981174807621257785458788639589697131836204788043699514025192538139004086349303262684545832664900691109241656008178707374263001048102073159526395445851757472315604216220653159334912928737555305247441380055432356336387100975536538848231474360498491301289453455975798330789449812316621870050387013331606730142033897182792601954395947305766350541728985569646514980791125092700810923869407884002790656119191186015551650410574268883734816320311052699537456080300039688956161548766869856962378164940338548207627399150184056042044913659527320324921705999528333132258178229725949715781126923969073761017420935943425917490693649517439454884545840885396338259408504395310949049596751787707720801015431274235970747791556008690306786730398036962086107991984431145581443897963785879888469898862037571787623988609969528132496213448810457645376993352605905323703152227624113103303501450219141748957301981335101753713521116498565340632383224271959815316395708871230534157537743856846329910955167652938756768041284031476284725867874272041802283405412041628444694075119806400011780217764664132374105687858438483588361607491966027355709180541886832317045787705078427982154885379948794283898098177845958941397463864016104370963531428014063052153893777047160702885479504164482765784269535017884928435909945309516116518680957748404211496395181870036550151020610019272495067320990812076185036482615242744010423936415642407101657608879563967000815595254287504272269328976702824734824864935177823587535899705197365781172674652188405739791213634297765947610874832349906985690370738713191316892840240841096605977213047719725097966423054575492990295400356660233395221918233378451074019147637295105470504684368830543250640202270444555095751719714333390804843006022524671423754148627964297605287255817658894238522087260167803948382318745653809633348023974290189140217651854762023635481505539910959601768951712167706246573395261825024334256666183505888806845948995145778140981092023315954521149272153550278429727438356835604817637806449409439045792650295766303097751645474920219278322239006647526757329559097179581862754541054913680532208710981542210759913935696192615470974972653873501252868945228357288970677982960651025598391518018922013386895147950190501882537830006239290963138086206195140456622259992647716430068886966536975587146741109646686870457568005334565554003359655515146717794347412472055930274347178836683976320478853149378651847757591943807479605202314876295153372799939861070189887554876568914954356058683596004201398569743605047356513486089556487058842180394595944778103064560290379447314556271827337057652026889790017534922085240450076961789983576348082309246172563783458099624713711750392976638002848702024756870718604844572577188143473193583549237565436378625015788172001934408026582229451164249073735074187964736284724388791980054840142385144269598425080297470695074015605378463122259848051422592954495927693131580185868074198503281483884199667883588198483258344007306462511285449554915339387522011360335245914420109046782285895580904280041004172642937628370175727349991930252187579471487990064613494378415800247977914720695331211429227018681330739648399746105280145836238389809114248793901837222366216080648053243935600260471483785452777456313024621062873181613806419521471699222774472338813741611991992147527490921246178571452943748497147888229369605186853667098840308355774931070438158296643038613234664716393995358734233922331238924722116386244909542963726224687546420960726089701952045712145905545774934197437241191609806815876356692669783509551842141112221006539239531161626981118344013555728936804465578724099561648966765202952043125658798089727779593318479797065969578337483210075122475544607389451655281568812472294230534296073012541769596745854654456951532225536735687578061675323313610225982293014725415106061727405032064649188672562012770017251702970564353268934731565269990969182834346354938564993713163331352125208091270215563828174692456865371837768401180744076907801577253859988565934846749175941922089816563226500100121861280595492428419365472876854950549026473484764720918805868050355231776788333884972199724191636248402056879274504010188507395196166047910710006561414439117938045385038953556282750388391199445099476306369484273246160989728589719211997906484348118779718015531400209528815211677366626040981244244735789576105571050998626962485328272233347377313351270655135031126864047128882800409619179667271303275570203735960715437413369773704532587034100424232337430786774763909491255726691819564552246581553074008050347139230147379147368036014301457035367263205874257514570174232782557669058859509330600140113104548138669824133754934204539036740573302307351034871292233971274907634681010981427545616053244908966529289160419519266940248841251597735781520916318325627145471193276689635614614769455708455822791736703564555079084520508197966138545930387258620500332248502982878481484301036484650261040939808310107249229718507504620301325631441054604450605149262505248168482090845486831199265381517318359834056073739037254904670810576699273397838016927529313029321455601237740905707472636674555881544658463550768897975060453647468374574234691578144487755182774165056549600426361725515899906486168976206780721258058156942161981104719801204520206963164166954136267734904172450562611390304322289442660804568203737038139655143249623179249957622509764766525627560962976618873212334132927265302815298398318268399672273350771498935139974670604621085459073656618997122772169981614883761323270747826627459520203543015572499030940214413357363422863515011020070473904055228898334219321916456652273464593625699263234282800245971317030947369573209927756885682435295862130228781387102927069341578007073494252291695442955877934316628734344903434391751943186114349626188099245772457710032563413418990368618046595332294233087022495590532065960157388308408285892968916441514092620965616590092894834162231496699951902350748778339789483404380866815578131716941104661629463275469602612033046352056790747325819533679842971729433749876147021718042094714671848028682267552538464893128431567818731695423242173264237765970827238016325295871999014246933942840104303702635231629763594508856229109200031035463368810317988726892907269787765904026969462306059111822217553241979841935850694327127938782806623462333744509912577371308313666179976883911679160387123187036857575611988916864392885040363128850988148565183333001057149350184032146139197479314611623093157784621109896510505025618259814615593037155729375775229771983586534091641312833932684289412089174092700072688994005633788376519303060592526132670299816682773848148402681977228430505825476035187374750890060729725742904282291678888345603301799777941793544078892350645201894876032156595504933690205796253728125015514458668875609247106253625410013335757006211635211598214852486258153397254340552972446470190431094478612211262916461666517690383986942994959808381255581513915759715110229864122135359240222875327289887202499973882166024739741072953504138916678262651500672331599721707981709222133951285750774282934591794012958398055346581070276821648672250875930001440377855813327227701981201865927340060022012848833987210233620005235343594903298844199132371448238642955140410797802665287868588500064873635637570111447043910367876112042886872146195791093299507725583475476011502518197412588520772240867937520122700270630249880581944965776153491140772177891158508467458960435489428013890673743649799489271985765371922795647249467460627829409581569155360294673827205447814291920869153486737874435296430389674853903000831773506389714579347916920951740335274788043376471307096031596923386724050058931571129690299363988126954369403778440075339358496807723733697751085710457992037001817994399851788103577963586069081789600071688610757313709736973276160659427832596366863052525912844944274476638086169355070129104060952874838885153358148579783337999821233144345064710397635859762850111386640559859222381286131673269878985895335579441409883541237670727497989548645185784869277786935232252345569354393748389498435435411723556495490839397596166729472164650300946097578920776568430514545391778710725957680849773182829874102921440889765723985944057036842113881023287549253386808297324564146439205824013005167620200340036698045668545675411895421999323508146680092962344246614919361023583511796572987330695253245980806867006343761126768020818678684461478810006336729669599351470206047280122869532674351474293698167908686388521247753360853420283912422515355754235470952009069693732344094350903848163117393687586007260906353581993603277286546010137876992615364421358442557624307460657488738338687380530110116002804176154918628895102840720692892208776211381636033017483427586253822609567321662449715923229317086238489278804585797637792055275517950104352978653886405918719507928589742187011598745083640333278098935830006606114392975222972962042499628257263880499278958503474011133702991720179363590017744073678915320137887736195258701131109287201994932888506103640979129429619608449736504491955690855459202295114319579976049252310936098524822466364726045074553725250649173077460169236913988204855739567622727490383842379011318349777537016222710223639263069292745763174167306328710488751967391056438587386546340959498557070621099848111176776579348217556580824975438446464804126527139262530120597894856366868013465460478675007749257062293217551424951966224110967044708622980219604474976070054306753507535459410503622399860108648719339876213166925724822220740388761379631850328201219602533644832192028702939406094495486346849890976597970811231870121898479941093150234352000443286513743253013609388829191416384442521496805610456756289767959877500656057248120240032576052452944979214756804590209232381870640331989236933062840517971037174203298593687729768700033416673682602394153696327813248332097455986115208639758255894017289663643689830476127879294289510409231242273242385416437894713335572409324501924707613568888804898555879411365611980216309083967407065204747494920923197833407564877510680815061976484591511066685997383217461281837216279753886550716021903399000234618745017473803787509494341287011250640284982890429906700697140564895052755717943719498830166911532829074128617566419319609342007648092160634747381697401730372309636222590087908974046210841501902369854906092013465569410733227502292141916802285281990253131119236926515633087925733597508558944829597939210387713119338076622128625103497987802212606993057770394785281976261187762468319159685274990663987184090584579684874160194191059921084039559558482715144498918923394860218260758544293828668023594708590579837380363416360140897000108529266163779566799086631799415931703011005768979930879236787175071219852287836002122338560329384179428729955404347826999199565451962366628987855970635838015686181652233442169207697121510152112420483005005210924790980786158624293745007648745262567379636729226215126697321868012347857116912362571641638462743775116823917797132883465539653099948290894691276023873740037861898522668093424815001952386028893575071639825096772667260948035960331093967335228915880512909910501489806333437192733817750755620481555004861641994533265379241469245148267942562293368970252100640682966044916662012520896568466501205538568163084306340874900083477179491522522491004806017915397276222565899079873873360228029479558079104669370779709478537971918308510913683336618647422741787789703123300917657227486992016251237512033722910431077362558079308373462019170689106601260992795119120345815970922109974900389623404265943238290081706265885849014855747222448698537858903397421971404661399336274343775048535421698639606017640118173619143074262841891576830164576390569516106332223068951331208362684509399320943598707202623436720738175868852729650480639599026385788662585267694859280145352365117909362935032751546992423843020033654275449916507101859640551401986900723463331573586562675621420368938477311544362548848230295323129820833966071927306247086606565039547227477016046782118049207212796722969853255746212308867967652070237199955318358681612200957140981997984135157987143602663833131692101835063603719740664714012017931992652334477151995793493115222966294142321098734882346396033798289034490033857196771098315654476016121866252103088311916853890692359033838611698311152066176699703299201608604434897301339612597232798089438945226721839349543082472858175198325404362637134612357311390007255846699336419440036709281321011521150710113974361877494542049327407834393997184771126626336078319557376799947220245482636388108876435830454354581560920810644877939964619362684617880936177575093910822580745092196401445257827096786673011942580492393360178332644628216396559269525179763445533494427311740380777635875725721980008230875027260992452499427450059873341959962013400605068334113334691456611690041365274180795971884444454753305413083776302206252709002510296391452006952244449300108093570603484686968803242278612807911872670146093877391880878739019884609302342088124938327962404632347237734692524599033122974089186225380064722555169198194437721525411344593400079179956610680099755223901547093196024235753780884874985148634453472568692266124020083442249183175169107081077923516967496640071377232885778304687554121455477023414205605866340520813246227602772756443878365096410974238940135018314885322721958940928031360957973544513960874965693087185713259397416829443932669442232171100666885446303768707420228302743227241811776108391065336742938719710685675006412943956759120553477407393305156848216641689965387297796469757497498682682660009924589784905766863784953916201332019082590673912612605050668175330339828544462571043446949430771301915677726226705947084510899821189281828274273590739625809389356720871042543701576381680875801327619005200973399624107349912928984216621293964100567464522332912016927532720947908839029112837567831371261446315235531872116179209351281504480196426659724665190228774339842326648523748600835623390352909285617859251403913686854333711112784827955811960986222312562152304576007869983044803246108967237558215804700365905181919921010538407525029260077240302594687155937451143110816218693160608116494371247659101268791546583165415276571155635087541596417922234850455483833483574845828294010198128448505293031429565465139561097639713343140408820077368435555508450404575981955144943916191391333731137486586490736356088831967056192559740627287148939802823782815599997320315656483497238009107657400030961944532316890796343651328909252194002782462930054368994656729787121906289102007297481563955718709743719089706356299785920464001491400226661258862907556534019254813962483239625199951558894332801002852949368594044298231763439106992417256714778388710680206687878436759309176648007968607792747649287275849357638376385402478003787999285253461177394119061904266757949238838429248615985359488728556844480224149018411137235009021017490492103849489550438839368871123196499136567928946889278549289429036157866295307093621841212414369920947697620672645246993558956899081319798776676043020510969613021089163119685676815335728887000538233995070592713045341615229585214143010923316638252274458846766499915618347044537279979953632940586830905070973430768236056639405899958551795111429747663759935120575808685224215088110341352564454649345861039898113272375678738037038392145866352891992164707807082677877714872741057454697268945175524407425093103516012877573868799922497548713626064427545812338830272829495977270301275506791569113813387603686033064752223030483342429408701757199567436095863540046991995121941717258196411326687687484780675463331948852348897849382744121080648444560133254457592181498742907393067578324666794628450764316009961254130567138127371937311977168796677548933718078982162109631904428499384531966639363183375543300041044698855655318166795807905838554098554909555713817729821881973430668587004716546276575899723245590438188915994530304733716952343646436711149951457008476496131357956569409727895110484197905856656117729689908998312395853332312937153811943497685163435465912031017071357332656437649369375832445632089493979986666976374926374576347293506760672876057135097177031011392680380284830777490313392999803255050813272366720705917230475289981125097961891654736728624192120238881199315677206285222663027878666249924933121212172330047321733021152987020667359124559559428557135407741885171936962852448790987407049522104858771152808444472207881777410303332985182422213440828060263547536210384599574825358174468773656647650999087841584864251064222614054689491383751870232354422839350276618745412509375258244336413756170507563444030471650921085622059839560572942269735579231954435099182111125184851542063911296025993834657396000732019202540730526686786743554205760451167527621311249134921334102158245694149064840501722509297460903059792504895389595333366439243682856067962871749323380309318146784756676451659672745435576119326005276063722886672938902172797834556766063004540823147912667712911754169253607426499648059586017971851548595659074329419795284304357569606650293009738792410392837898384047795816030333055434826251067641218580385048956562454975293244721333038920818671585170335907416451639710078011737499812921617201478636867924625455409816473360898285278864004356836672741070641390312142721936069899028356925599657680580780846636803207748845266679464407057141995663613234053589989366790047339604462398627929801370306962031489534152510551863865471225035067025211230412314028890955770930049201143599168554391020084393071358658994889804088284921512905313156235242687807220785728611275916980853322858147612155777986607269768790159179542041692221435094458942240593657922998639930003787372035028148401020509449151285058844089000269872580565312859396448242344350483771713846009204470394547103776362559880706013822492617464870024555908548298725763524518987335810645483041567534678999212710254495264210726809283487562592850880615392686544435764529968370993316388915106374480433875927669762400950125973974928205928962397112047172445704742227754810456539943037259729894863076595912729587503870549232736804300514173007001620841268624076367601734834873750892564652552831303634653918527764310235234409222771538202640451069405852674592231872167186119423115427941137561881566062557087177693828866902967419794309426570134802557035738458858869844189206071594541642046487720952563363283433204100512159342898553206925018804922479923652474387953024587837192265637818626722000682450923173175886455962402902731898770164473739507786434728745709009751679123878850231567966319283754587201205408971406626072163877027991729275262096343197536165739049266286802229913430765049469812774741244583654542405192390034933977269984564978572009952701295450915493926911480876573625624629904643541369220221393006210674308995542236494603750685614571598433928222945850936615391710252185695443318176699605098735113192736498876052476522194120815732378153782761361005156841976603329421785282098942729094299139111333601245197872486120815047462393218627266287337010172979428784984929779446038614224255220916694089169008710026433546981653398949679128716840833141221522913544046412825333455226190188695124667288190492093703731806537085353489925111596216715525805344260287271220791805108068191200877076469103456392201945398829964983475611993536008796155093970219470880080923852671863055165960878767945357184180751739083069152756516155632916757260539842298873762090917345310047827377948178179617991596304026722889247399403136908692307517690115088514964201301422641075222704056867515074268950489640872554104996278721944349236590504132509384213159319028851678925552132747383546316075092817240160454592943496357554331308728346290048709086007552030957731261509448849435118375157256918095465226263661745578064945718860857513322460862883143920515536901929743096567796444868525545033608039432184850291486791218524735473922820813807550996007413747711602749709728216137643509088382212872612890471530730475892176600711313868102918773943610610782558433516411416446770921951176086946187210688399106807729320623570013461699395171666690323390706705206142238031365544923060035132256124689323380048109556797132771767392930147482599738150496266435144980209287094731990200845145644593870005551255037250045735711101515607643098178615699037810343722961121316466275286974291163129753939291350697229359120385337847861235772648932403667131609334219796742438071715867074507575905562477458300976597618834323150074829183520969526720944251436344455934460356630858845951977107802377585659642285630891786097841831233504435003716706318097723263041599132595229626364542222102957496409166711538444469083001846709538395988854777205335970650441561506117990611609219650259225127101391695281648538901786617494349799401599899000041764186247049984027430168182087932426616920138637716903335475485235390953300339107267609549092644713300703245801173290731727622333271542919136079547909190228938878680761498960151458688299418739707486103328759510575302071837136399181442406697681600788919883850460123844741650734874220750808436778734860645373998999789433898493486933906231796918338023562278640064218490134912268038353916631631418747922180465185100808038854348781274583719376923590134128653142439463252237569292222777834414805153087791915513207913982868082083498590927757083352811523838781052805356305329782624546044997467231532341306891564981808770444509347933573775954854296992567493789075879358723571171488011281615726567367571811650590678559059924815309628725763471835510825573863559671223712929375412319077553284412352223493313520767408175758694894746481190174074871133126450381603633043921821944894191026073212773500070132982720491782701350887954043852362706954125255180979703109528827916212965510046675531940763887538440054274586449371554767355072937224992693304013796547186465041528560271944856745779154613798608372916721564383449049310427362177844418937498724750731609069710276758526109513207410286769508865584209971533634609131867469608727946829122625952926753876239914240516803813142817022230280559848285838630812882499476456995321282179335137143575861875736330119133072234442590577417485194768981895774255915187651470007836747293765368255663952441961230033639179632261186638799500589883413142565204493708750602455478661574147890796616303170162277187987095054254524243113586752794508937004092665064119435820175738429146005228800481615441209149994637542208519963322568840564562409930735254617159140644436038858355246227009262586244801009987790067146027941445995122761965672452800050186184463619369022511131001738270983612984038542406612357770077425237326929200952250868735653677104828081375920764400708493397815349147515902924318287403981076122515508806103366603498022769389322275762972226002379213596195137660914728462202757955241390384632866782888456112043549234368234870475682188496833055937796862121050628785611744239950003317634680746652521473894995149100673948617603804317271734684729972063298846001353589105744503374458677738553212259677992569712546689658177170742053102974606852494233540938323691057498167380651367960719806386098427574589462673662906981577278354042217121114350419912870619624920940789513412652771573357047778744752758144553659937542918564228433134966933054532064433976160741043469214679666256122625500846676783560829625011145323770012245885757318973993305189028199891376986301883500679029788106975161930828376604063808034272921108586447906048180679645472449949022106408437561401619602007175938547961802439128184420540236085376268083237109998136391418679850187585234425630759601618460483042740010103010757131249103136536681859969375125211279054276097914634933633064878217602801629729799304099627655588219949420937708454646981098938279117142686410411367595618318027192617479680065318718514890593233407624928138993191208960630241322365786194085616676198518978871690059054660160426601826516885449827185898082885935791236481351591024064945052687440035080202914887972155516180397988204227000724599091074294786393585700142873504889897592519446492722152496271324405760493897347039356176144740462949845162763280137057379646466535104806625566556610837307534436211950959215226806176294204575759561743003805497435331770842953644445833480664529933137461190231757078313755873644970232253525324128491437864058365671962665377012501568772323118670974721276112942121076094894422238889673376870047560358195597604820397855143830442813718869229586646640541389082478432876120528838253839922289021523351964527028080818269739510302089142056091322857076673409449390428118974109271783303300222825736231461521807684193434556303523598233108873983703143942551320829340364111528958917555085654442025076082739219656306906202705005329393691402938249653202978603983117928342842955646562869592262056549593020296251793477594841982156157232369348157367872611084559412716843842806586765840072977804559525197116527336278672973484108722429413717042188839957102855215048532116951432455588668968345742163752442114564734618807303157169567293643288564931938031004164415201977471122921401181609486269907292350611855111959003023223425758655070807696065912779867029348910327040067623084295740475458310059966779163655859828820520064667318922025759736704449199912890050730664429208975293408047984660640222170712237647232756481685958285631016825594614054202106923029547691220202824184345928433387604015131492063286207487630861782800428162481848232958590736057218824440787515034490909965581744535535245332396655144661354424721741638857690190391327889231960546547346317928488445383546968486396242717224538940433705963678694816832007507663022290411672705240466920020047504791482415949155624752440451549851737837989881661640921834452779747198240145862251025891086641668132872528536932010883753096389340553724448819825117294124309436630139483441756786362264768771001870172160586760505679860047659370879798619714896640351505891400290814397754549596831055657328282935260678178314289110173306169908126854513253025691477397712092381534941748333740675954960454993945722561520401275507313809717727264492393101607512935825856193515751373167910657282542722178830358179228211211314750134488784987817695351233233925941399832501619019889082930321583207065238815267960557819472267984014704581610792002247452642107189006431554410785083663883664840013568094029224996549940238214738080187565601614408658024459109285246313163934889091210381669907266417600397855388284579760075026921710983714688254572691862098758884940026565172254414036389822011442200857836945422931682749148382800657550747973731540209258274737200632013929148757544264271630937195776053358947191423649784298817386129850356614328946290788054666329508877174534520741590245365934497578994227303429369852922481219176172826616819195258627687861581000327116747440185730401537622016363859660982551497865417066785869044035975494916038419556266954714034727782458683944987646146670117872120510050921360343043170627944452530152502338561445935428769713628453583046881317106546887192694377233763708265830306759363108703299257538902668396520622889742458948259378991291718538720001501651173614845638859811835133633043934538160535419107461138497121514904826350128755774520218714376223565201234537089598649471940086528174286221823338055468985949177901175543919799324007372296928200950958321901416399869244616714713786371526140698459608574102465080961845796546004980614483247872192617403788967033228900277673722224014656052360025654992264368953400285014105599683345780304375194346116135131001790611460065318334205935329795705771237283756080688734031997505903095465714542984479370452186960030511410010677929670762805478716958212066858062873379423203235893142045527595111600497815987919598595305931167209758368245618807097495915630203073894827109807035354425435102918345293836549070489363071641885004613989091893721674051093243570071999803570643643933136614947466208938312987441719813832383648839593946551434374733296197153546706119424924929265832666062340966718785124419170659026901220965220244109207551157098570077658238880280459508036892915532187747837331268143741821446357712447102695928882866074655657010896956616303221166632008106626389749346295410736861710858705936015956526852532742721030336245036519941861389465188696231807232320675873298119148634504714044965721565297403314953840747838629822599440339282403425693376354088812543401414125020723961112996499108319016063038643946121241240404768170750775074961450157358831304150858150198099731907397425405232251312704144464729177170316712912616729771533656109999000842765339825788633007325154907867987444021930837070771057676772966533999565732699369206556036263869445612110992708818578867937229004110062240304005253834241845372496348962246812650896782349284664586018511422641261443399065724971910193943339292059607730792553347863204803424753919206350641833864149148781868502885878855270496970588202246307755887642196322224661186582452225318520334202781525632081889061762964398418454565605494920761998463492339037645482664136077229657084075688657854164356814185247237342782307101271791352356115857183910677100721640774063807323959032899148447577070902887890854991827221171728932953587613082059935430449703423986821260288479894188220011510046148398137823525014182487173244134144023455522304374777346326852591765659432896072144984054618085311410543995136315834716578062867013306918836089565214920036451511836802903004196478231517932452090661031058933405199328819504488638796520342216834769902365786146739140219734234235714166064616948386208056376881900468811861489037448066222562094587075219450661750104223295713428735587183243986616581418506908427450487683881243666361630799140305172945147910205800289160205243274012733115210502817114895491493312731585840403247083473361392669734636810991337735720844620057513336338495414259750413686620122708744890437771151465119825722870382205029636815697427884732300596308524099749658918570694312279029632784560162712185772125682328392625037612956188901658716094444402220595038893552681458032909065513765898604870826010525298762739241487300584750209111433445063216304955886420851458762451545874669949427102153474778645900123923479772088121571422717382268101464431500943495471639584297533917448430325988205946786924241002651819898379349682213189202557079198687549138802946274015358858523580784053194697888259053556103172288814144809653189545512972019900060756143710437821670168415809811612290805819427501823937028806001191931509565279620775242344766285317887956139987485773968998367984304143672773400864465131509400508091618472974143828816186634528244594612893572791136939074338800898740896578562045899994349119320046645303685939664995854354363689862836871215625212088040761714014755558066100682070901538411085648766403011550847245759128427442255022330466300111786971254448704213732543332945222315556396420059377675890615124992452660400425143342922277825346359261684825999745995559713606606224977828917484842955970194813890208626599350572156357606868751542467572040120861084999812652764802906391262923853968055668898303986064370733274400092323538376535235969592887385160452271483595291332180699119962777188774931065004483981888482529687670996090592429294530011331762683161389389865089510433565870567114874539536324264996924874557470451961612778919544317909500823275559465183346210452448634362725816821719390519785584547842226650520369421895477605200349202263279358733161846909644352333457383301042396275412314464764709576152656887958216377109564407866800386469672367087676360422515583438044399801624964537573253809000223898712725880433808057630101493568040608743798793394608411853243959539902974076836185424844449472954062723718097490019481265809548570861042125893651901924620265811762900069658717480685754008824182263494013261351778771822110909711770702328759427615853470972897819898137129230053626630286378965400111943907116493131657548451356365197792416384831381010722532602433098542348929649092308797736226729599643214327063376078806383991512191616163698610063097638777208484729227357734731171016516959022628556386830818177886901259945361913173206173990156765706789802530310323164389366605437035512525535042400918967619771667963343698253925219640477665628005563637091632682772391176804471626151148753418407573333481285683379659513914791719191218535873471991481244055061467649083939380840773472150170070993625823392202052112769855576498874194869306239454852473530408275187734592797411088327823842509637249143723088881523388234042911950641316481561311742662333215339665105573133649910881808835047337082517431245813971501117432105770825190430822572704814307749444031017149697629459126132404842265315730896777369357428955736411091025453278958579383314030751241668841258758187595710800489320231185500864295142421293585536335112507406405148126147013125572286419521761114411218785996089878543459476786560477553103670961367218974388098459348530961626244379336975884526749091287990340707947923493590158672528342593402835517604030268329721620163384879377846298520049078027745943296638900436680710530870808569920304178673538897290040286317655489138638308815826033272125986857059915805085514027300883565398756643278599496759473728577045194340080878227317469693728142819393400728785968147994487696013743094130358851242950048379666761290079952704158990370068819635867227182563942466277387202729195851767332195823776731818630256767907412442517871362639406268813886971319492650680396518869174920069686719301546090892664447773770767520897084107398099185000697341072182470249716625508588448142467527454069238572554531256143298160233323298537899016480706186342883689018681310261026108397564754067842597765868192094391457992630866522417269385464901455983367683419055384193062334884955544674385057294241288765443579478102847162823541471402434119293915979838690460684687608098898614202950112590147941721345806079278675200766011680517384142416868665407375799671548338720318368522153690079491109072894369536453273025555089489817242360889781838389821491518702627277364426941037403287022360053101010849224586236183530836749541399250069571159950901160717196220156063153183827863270512467156466411157340252771942098738878299222882724647957295280047879269687646967935721951444848792445399154239245060157381030971202387384799984427382524858794730414094795805615793673085468546254890027534835965029015720058099695917404126612500583818264559936649755625075850593090384986735836701230001244909680602348317032124251864045816310454679089543185317612039883517213668998874500254488336602022901216710203988518237350484560478534714413635466802488053564211437891811214651865834568076288858256744781935956909589457270252299200761690317504268182064723085054385420536870151870458332739750637322311450541069375048101238664022276254882170283132286128762091627598771993164097864135264622993115607976644485729868984083371398596783920743629175048296496376237657206408825103585481278902451102970854011955167339628110324749829928566135032455744800252013665775172182605936967980017566684674051384393377561358272189828535070489335293190551014234013702412967061679435868066344802071798527991079295012470636328616094162057198432107672951073142303275739176535167807400427062588019933320186061445062538954176568230230115110584791408175117145588808005083511167792075921759856241746049351855052343019466652686766158665051243362111236905702825642255981373903573012183317845163827712797784636781042495880840589466807786799285954342176464543327257894880155480663105838450777107494573502162091794098138162686391279214396822778386772208195278347948905387323886300740415736117701668385178806477144958590492907120683048832564326540596590651832571887426387954634043067265783486175154347341386203162390911609383014121948412404873136232243568360947235701569365512276289088300522254299972043053172900033312422697983750422149301699314056469300551875258870323577801846679975592585761693250238588143855959865785685845251763139670742083201283731234272589481521618401935255628519186381995584975253464286747164483556466911303076177195223058745708633575342227999195925811197708405305295620111564063680643569775674727009275891540351242575821367412951041701545747051173812287771174596724521948368329258338070929601411275958267977748997828529265970992709443086220170575197695484063007481342546843852484084521558968397692225070167883849769891073950793049843325726320633690883189527380075657979382843698364627658250330366115783639846836073621050899559547960496501818349965168851935807594057074864730491978725166149693666795138547217258197760033381939773404099939261573549026061858994086855708966615160863926569767205362290562829991089807819002970694897792206547735651775894334909300839704022351494963986823953064515806558126617765942424835497589573548454772374401281811133102913541446263304765322444890845483421125047561126996150778955865493376327495642495747001968365492760169952776154035239566211572491786009438673370877960468438513470815133187332995167527469717974904139818194914578105803028733226761376202558828056005794489529933404341398943528484439691618097766970431396998445352061905682261435050886998972958991190518002041129377464268305095500282921794121639439088769181960442867688303007767940736546439782087216845079005371312582865895124594232453374806506423267701294228913571652049516994618729527358551711731048632945787112493735840926597190697062188038683641456463392492335935718777392931830891858107636453897425650226270795575153846329997233216735482494566182568405885085813220715918710108842624510106475834658197699780434880360610504929547183084003544087893882455397310984655871782014841999007518798178870306397784908636729704116846339760529176877916585890575970283294282475321810012772931694226846095824545224107736662389307481444462067884949549302477747071174911241716346646858991889522575791055773647034173760795412610203957250545573237531563033079821333768668899003187263302751446358653676065691409052263007261596677481515708711747495266553826888710472605151959253215001683494321820435073869598246190108559902466990705754524358454005443301599656772519922983616467427264489695542226040519392067330651664077208281150948983185584048983008514761815773010556681959953426203169362282939862296220232210411717971239897780681881328741304940867368908395811872280160054603563838746204158459436820191291997782522951800436164621023918851812275114387431759148622183509034730234591994967424692432957290330251796392026232765430912421265974751954552779713043405436764309241588566750146490104977747036181421557779583655719438583908575494703666604396723845732437106711397914870381772249178555753026003725572094061841941005365387944872495911567264675729185332705782843672665407949676732197944210154978672397503008260715538113625887364213770988270260836454781426728448953045040574825891754523218461670966793865151291204806233974332061302045507788625584095183818264544475889936280147180132402210786435330988570049985655345892430106301126873668686901081939844880984585811003628302856258016959967881701824268635542844854881900758608089788552574741800258586981755460590525672594267525691496264271218263908427536019639863548188592185576592237545282182184434909681137516885105021941657717423164367779437360320583965650890232705692426825760410765659572164472821383956648673354074195326378287901427600328449222925050960071248853995172428605862851439508829343343323223992760438172618544547218291627439039901512262531831176475926845601537777532595801699148674484620709002718289660882951372023006590769986156490597919342852956839316190777300244397757365185764123163630544449891010802193807177690213530114797294876326869817729289041686951827728624301483189714051646643285798856898471064341259433118848143175430289940372657256336499870086925608886517545594506682035289933066148645743913214984623580564582506394339850593705348607330574655471392360426383808348312636643432358340610599610919930298259626220088458263105924202838227688756399592672450629374024315097465855499745679321898584057786197568382591848296571169699902060827042408501536648641602699941959926656978247822217715237385938146869691130062050358237716118054530882666118370657523222016214547186562545493699277914420850020538817564362644756076348385354344739651603339147732841185192355097772354221907762671708821635906001695598759644451573095722122433465515494468880737319071063614524300943979034012727935553781101749850141481929163602310554804769801197167281205883035239140600661653225285535378062617364311878822712367585569881219771864260389212715969176140834192779093956116118824826316475535528539624483374971363031131181430950455881174690559666115093620176766898999538892615905469005740363155918369237636464941061154330648583452628384818328075639717611149545412330763597646475339030267089737250216899148022468564045712705310597747910672761961630427167263288425074125727670044252786079876539620932759508517896740951711866447203322211830963470850805849524421747870960511293267197957001029162383472647716249802312652639724725857061355519793713037726456287876115729320006514605584228629181193072599641578837028993707829916007301019273633361791738358510145753152687705497727200720178909165973683540483143864189463451237623571669283588606267270261277391400267664343218963686929595362633488596427695305249724966632013952614838990844291701636521560858130082629705178708977031829473179209098621828130564617596278226045261021088763673979861193387143487850484706958312571133470227806503652360878390991769432657680954183357681721578737016543628414520970040669649192067353242035490725838775857049360943191883023242046180467596039946273036795562678779957302704692000462428161426031137720814310503172299647707635373483564453694939222278745091005904033993274163687596700664834086384515190776986739798323145236645435190860092806003374340241526965162978679077861061608307568159262769993991412203572653394647106477129510802294554440119337401426645515658366161684343892891722812912298786576731183602023152820402541756320112549063388973088745124247801498811208759646285900094084262798095618733304274815571916713738977042018716872555021645463326705984889252000347997584882985167820942474361877915134879807462883309326620150211915031686426664958803955322471510659403433590896244006731133868590957676189562327778507858615156217889716668732758805056983192938923121197984249721993311092653123067767162563033844590250727745302072610503348227609681886473301983308236107823212515676505720195704179551887877298330262187144945154026540341698224966932970451395672485053540290561233225744161080524203279496508543242499830765887019222142246880852144963526484542024830652547445078328922590827672401829442464908531751935502087201895593496510983991246091384699124953125844154762520277304322403373281131931075211841587171117499332475201536407111546657395242140492361911116869352174976863247937935144648644545541569649734153264892063609822739388881448900886999143234134825225498927222232130525002122450445153872827892141107989934745968870783768942554169174046426421289550281754433903718818294809476858961481665256040758633963771524394594207708870696379826124236269537250022904131551482913308660173408979157551345433202203901532264250305511731706087921693390750159406018127469750603948514308859623313481519653381305102632932615493101692230307817885725353339316931983922369178749056438341428816585066214536749525901847691871686708092137116891968007041752797021139601773525389715434909432399990780742853154944052340863092379508959963517176656034834491198902552785594557707745028748370513612570658671298476438497308724042085732918704147510800125340178046562833915930104491294943350807110700317229359183663885602636786692466879495584537623141460659786190549055827894329169974824725014617982524149301550278850232720020071815693283671215419630718409646706806480988961386326932990287397218830724311547934941245874622449770448289135003621954628548890264961905252898748510861169390046515615432480430059344060200718204611535123828809871207397052397912783209712201812608928495079568773854575273740576381763442731611097281808432129112450026501233459216447608243985583883083620639257546079813860817768081742092855937356289147338693731166239861091195137219367342459959831721457964149843231490942318648549804222397994536681280052947260634990235444473550220567326150461838430409330843330127235986136949421204814607182080310683601438220470756887514682681394778311069136115579297305047172576705809876451937084258116119453284898107209243013346427887318301390172428438996007659353105778319234714503970172697223659133929321811490275372097365099005751670816079592968616585200252421813127669383919508777997305319185604741466395620552093486653344435371257580299846640026862749546295948958976379685225151217065882108890075784591368135477590665600418550442406119024781807163558177748372812480584389799707968249503820475802772197801365271205409603916839220034629764323914082264283492645260786890708848621573450225104471562021287943074994990245305770863007974666065102609970722976291562804944981392713299160211425793084067092336222922843360325594865034000839733956777971848104162998890760001147958204715072055734218191335226811494674091988778942851718080927622045294933639026006538564596850757543935481515504165645468659262417415908232659602544954237065359220954610918221072982251974817509647944646376452318290838921934641871244972891030268516440056648048927123867138166627807452408194228097755079157186557671862036547177178108462748610002011737410801413416560302817668242047290551791618485555885383797632538439658353664807551464122974890687929764998067853940375819459340970794817878512213981775185730262760035537910249122129433927011093888867277054425279413327706427991842198687272690790441385292495130541304061116681272389970475419283684689164241918653273792289889718428531654303188249735886467474239898939175303957789175989841990977553173779924091092484670074351500359571725217291321908499546713962471303118795329946602127678516850079611179956475509603373662911767545992647809044751801777346656505280702107864095623074776404867878391694073769317225726448803132320104745062821934512563377192542310132881938048109743882230981357573964648950577053161143316928778928482396534402698722219859582020573769785163574906295605925181422876540662159533502948937449528413594874760549279251686825309588890873002688201385494223690463183037987516950277983324997932956196611402207447937364719184732319591940560928483469230767029512485158793352726313519484463453920692234608605052873123706248209051216269431551861714231666861771214439728346145813389307942087266128458530588205089634837169713306034072690670781773478880682307402318984626160148503990927581443109080564341968769802363229259448686428030720741173120564947152336870645517494110441990585405885957786205513613974244835995113190298939219214471859200224562883125252045518877913468911124507570716127271495917976395064990617040217284996159259659389171461857911568948982663775965003367155936710409706815338371733387761918133230097963286851140898747917091709527509010475331863559767946516370803104982659032457033123914482864106017773313797915172364852999039300591408605597079788799774181144528645701549572533138778931882103603931187783219672119119212004962139575784726003137273552502966699627089780551160164201892913967573466359500136763357192087262468026956066500533460143207976362047542339191505006847968555712293793048067343407059510445269184143203372184002631433874666061521340574872395842620967469171552630640023700650108352011738939725122080423445113928293800964999248674444941085294100086178456904683282417873835271677369922138189648620972407989253118132364446545754950492784983808306789480917709850711097976530125989673197846601069264802424270781465442164453607028979460805889393504985712917193225240513773750857383187459119298397899663015817665084563503258334190809421348014520572504148066589176261037192747568005630980163519181964378929564063566609331618237571583035363644596138782306264690741766005290543812505576132787668720532388338432866910588904272605316232670536583668842327684867019659871104782457164792373007220023521933389815543400783820133601575105111462009410486555617845363209152759177644182840459435566725593803998507669621542613541401738473648141919930687291567712016713656993550279228555579919916007711057139441689051414005426818342485146154997974571213888571414493014604069334756624623257751147206593650818407737146968843944183009380917395597056256764516708816791344440301436040095467339071364747759398876662004081020903801560621581567025880821978357042976677303772285270796792037894646603315096315555942697078457996878128340234840075179446544452273937336940874835725560373790828048153561166404993709366369231210278903754797305817906037352929781779331575887454386193123504786227382167772342384406252381160820640704098382775271190586377486939448022471797435737926045023710113616660281101528034028938399914773495047219896207645249985101778511030050114590174017886867827256863670046329365736981044313711656371483864244518997724025405999998941884022035519047947745978963485508344308578162775819153029498957432187193110928138131927028695381294038366923285735984602507826869828016562256214474535800283285625867129564770787297987570381230995021262310893787684591261572175064262786804662469038466496200480245927554260594704767405208951989003941874726547362066449086554502695523108304339431735413258058429448637929897205921457529214364653855794398160409156717000619670614615987062272702659892094315835377378556697264786996790324829854859270187311048714930377441431024030971193564087907714849557198010902902005967602288720446920468377306111987539676975236409185479118262713603053403879940549582527855874754857969419623003260296270770148084976085820208238126615312470006462880087090892983445804343108482166169916222964350811907520823862153986370036142033042792002941487676023989405643882961561964596874498675591415030921451312769828028490895844785461640165527029425276729959452561589876924867887797054612776142515206858212020091858416641805726212716455496486991866629242266085699681287196509534639948279970103748541541937885562553012022104351274234013042912472338696530515911416429145692983681323596074005472166609071040025268368384988869458576230400188669938546732244105178705191688018831545383670884422591160902093913310144417257991656376189482662749624122750063223490413905383331101836462845944960758064420373072790294977342851270310349752205739500507196503941718760377286219052432492873887886623140968489283568336249838056020570334547271977931829511288235139908318887860667595308188636596379657445543858744675345963508403545720097015893604537500596089624586910902988425115275822532424533033280686596752844649152623645433313966901136926066037103917336386453234569191518727085735446551173499694435903740317227940947240429925598231404391957958710961552146198978711634464582093299686259686399142898258815293477142581095571012024390320550595542241308671394926001112055117561917176762357534060981818514145078274891096148917230134108917281138846196149521978440844032616732658666188724420144587854888081228260159807369087472220093392838024920837447264570940662439733964751663718418507421090876983003996971808944235999769267188187240216484240297587917953891060058844292512184210360783744840326100694113527328083733489985922694192504284225159435678087143383014403934844244357604239744096541488467997820089328295792947618582243687976741953728931685707350833344213100229435663546269234313779677780785825359205712635335673824793064791008519357764867303031826699839137600175829195056667972013531444616277436484330038581597908477685812836677346422328918641575489689873180143106909424711377696080130438610667591572948636267699648323106465924590980656508674530196323753503948642405949974844228910602285669241950134089395875969575114495299494535458786049844420590610088841660719794567403770048414773138948008473152018599828537708643732638000573013659433609766097775449693573347686407368060709006801347242675354249819447966330485929963017660068540781206364017331143790819246338299065017542783451850779682336692928594770651590588134353064797813118198783997302092918482752387101564705782042712235885743925032732424529744410296511262299524779926205294806881948903382204169477854184769766083830291816967482584583028645278129496410587860306420115025668489937813987905249555341792396170013415221815689867305952406067213891627127417075267688652175377808590503679578746932195866454694899421823309587939097999225809659388562790016865497179079459436589326348151031488351745001665126701115036637475031774075133265181202844279441701816189224463542404923805769306789004886840833103642877939557197315425879727968734128342753137218295755644778720218859621538712545913774641598268770582400194211603229841628135000363913949601728303842306488809788538856498067835143832468303757083207437785077873653052331370750925363563724010694039423937809076497244813756547126382331501569869686852534923090358773763962861449419662633753731737634700424099094808834307453721788361029257850360993419963344943092171063175113797876379938865915184438499923997276162669082051832144760546030700390038185661145809442760006350500884428468782113979520409437105595241307434294131065839753724430422737120615606280156206927239735681673664349019135110283491677809477408602926770815275824648925948239059755721052761393605210802887850455185358945748893432099818756652571908627008313349763711355718342178693121613700962502003140078355045138505125180516953892678442991358265750270656731498335100699630887795666907385957428628087607917130289545988743359572604808183118223898289164707433741148987553483479459136431937509222559261778942847623632832291706585130069065925662026866094481052380698973095542297030109128083952126020380464221935613168047658964256299603745680552913800783498642670816060032059104156408158291728784355126535923754497785189223187590593129553881981965445077583791910956539660117919644283437674609978042921854114234162441504549324213341174318496456247144759960260477762683333060770014949490648119803723297310128433331544070496276470277375628527290086759466736354657348311483407628368563303641223716926623181130871768026106341255119036685242030157214884009136836265036602638634292332389014546274541140616367303853546356205216461992050540951541755299839363367333085930335919632123225127367438035403362990451923090910611086498656085606107854182833185948428351422198901135788329200521904618981696555718193228683814473324934040428197944472765521985068359982776228816876271794897999619913195772402271977625206159485035603993436491199414909732860398855271591520380649835977103990666572638772568374130806243645655570798826570000673025116680272890508188838420823340463146018453037959935015317779839962414313175670373123807541199870932420288091237237024174546428258491505213213590973469950443369405424910955084307663986274672546501935592441697146927954729721592494927519166364377809806141008442394015883631100932196067525078081059615484852659928632599819995669760636732862800139136965219065468685016874616854455477537846888635683038104761511205836622668821345479361659848326074413062978705244756755466927405289724862614181437425087887637668104397178967989564727610262801074665260137389921008659587530670004761190476262428567169144503478404327750344538112736254644037457778230470444107878302848518879066873764041962666271277918630240390612229151834979253689488205145990504198457293572333450308816986633684976936876576919641518636223992375752761654363543515169172819869999921704245059744369990530720298288946318896811390328263781155715294508395466648963927043035048341769080126134816104801782730909359179021174713674481632652196032731545979465822436127314059991925705440813620285451520411968442311864041266615298336229682024390390419007034038216586629395878075378846843207080810761485462426365292343813696144222178542877759724558446648315490591973181211243432585481346332263451592993387418477212869302822275432415351357932435591697162651351442521597742238624465713131797555028785025423954594878583351301479968865584356428700889702344759177902532692889171367563299162004799926559248579391394265579802456496242720198214299070917938671466279731206672232093787659056212581969793577848355756560324135234300127859902004949063098964040709272646008744637748794353531706358714927825537512751243032104112357177088846771641993622325576398231677123604251678809958223103019486687313188822782747253359504319347513681805350573682644117607047263141731116417529921382113987151223389342765520281857004703792173693710194192250356411045467552199238369638491863505165351062313544786146409953814125853285822755227590762001273806177522934218311520289153439103251744708107325921414457685133975044561821624899891742474282555398519307023821987282984806086171490492353168843260346780130760338379883442122323204033218482431067838835828593401670792629578306476362370337890733538554170516173022091054048747984638933197935941636230760822794451451621005014693107090316689485046029002697014263102939774339866282637630799323919713160623869823947666189614678586020640696987803672290894914983391419913720653919367111680848025120718897025419322446870325912986056734718067272542958399768240381277826749322221259425560158330718661651815635941982852898756375013779205303837085648102472653843191993239294419190548000082916110346440084511054011837933607292054192924302253076864655058742207463655330022913453439103554185793741386615142038491957828129239971870122834703633746821198728058900437715170139402634421532824652002905869709206626926245252108641004649923003776546569187793660766593677820844205796519663572303167111079073726607225970376134808860436965669474392124171651516818424913778669560190109539716521643442193367725636547545559196436544248308465977821955533560173944540252309109653041318443454330342547566121912689825586257177252720875731243409501239863887629609423413375433545683522953016236255211966920467152919005270000847226750389963256663971539130367048542352774596521438489002440655592762507064465944474352281331214856943671309897399325712193121444980006697119975092985166502749338730259160974402032530196552794728218545381321374771859144468053728486284453393435765289725736518488421533458913747670304365202548121551297082058454748444834330816745549530376677062339096507716343534741838604255795940161672684104215253686750924098873778692335559825387466697234005522067758855602118608820992747781933897411756663815136122125485189308148138202475288666028199331180684863096161741342823740591237818138846832691635954548155076671931892926947795479154010126123319390158482241590635632517748153180566970695713018378759224497108074336517045531135366921008864211342666704008879023448993041729289245395372603482810117617736434137935440098725131773725306756596670047017162376516973595174904925826786701431403993384976670374825311217205083015963364753168048901356655834228009860637311388849253158470578699557693196002041508690598373632199342210053922059244621128946516894403580799324757025312349788300535986378288416636283082722677222669178523873874181448771726498726823873224461516155443604973670688363429982566079846327890355903597174760566096485677946631063304865053513696246470058014518541088479846838089309560615299388481657788939668000294577858422059637966065995733815427345420704440854010004886125157657858113622467564016653409131427185614025041711767677521058741686490550668456989568359085589730306562924942425670983396099674195247112844614932329775858729764280213056897029616886698815062064125224174546310594343002427728710272860215940803637352427571344364044625772859973165887887882614071371427784450960636385163603271365584220732955068711207968944807685286822051307959955958231177268571977843467830226967395101021855843414850266539973303428510909861515760557430918190786181531068829896951740224869832050234587868570451009103267621041520024157645003065786472957850961235693168856282992659272811700783908281561339356276052844729507631237135421540469889583256354764172827918434179444667844799974344552438340166257077269132175713231928753229619155968514356347002659448333651577128483086088075173714842449013467991718127851337182638844807569945049171897256865456508021830088122430519716389319331591235139382281292949289092050473683297234639055991883840869801395824768507803797986029678131987046378777810782049927290583538477164496573559808494347781424280922496644755472546809662460450808437955965397936827412512130529686809955838229649302786136681576914436759459243586048846951058371854244183711698838210255145819936261800017221123442757725041975823998351306103657529790508086426202865475468027294547352014261784954111013044910842541668292520723053170282139710792626214386821877330527995988539325461135533170862298127446140491149605014144989240522420242192254518562639645309288950763325082975687935549452688744747313573274422547844163187245632986712885626942613860866643351706670263783936960299194118325899688587946936108820503507555243033039923454068061737637270699170205369843089245077026648383648082456466779996131015515445822225214904819541004469722103650754667048556532870716972175869460053508034617549544354685964667826505530273123604450522000609904694592978315098919851368058926586753454034726785962919100352355251079056365006658394924637501934684244991785910581653721074012655182162327064537290983513413755199975319664396457861181429987338669964505906888151055256344952966031652109608751957711016578841092345835135460418582789452459926800864788861400744264489374419234160632052922295841826124114237402683577789210302880015174187789356935398137303012531615355692905858773572570237999818519077034994711057527280970027432047338908733782674446664198613192774520797760341782395904107795062363031402106640623440500676025301657662839213392610024123951553872830662130467440727154982114624352836179456559174296343901420331713165203572572168915559735690556304342701696512439265503972574641927801344689156522235509950200510291980032491684379997488936788945638153680531461145180028504361339449304389435673712071225967230312814666252148593419514799300383191918387178285549682868700092196309216421021428380244161950094358026639587145708252519046953965464177108864666554550192139842690642890458278317035430583654613528996864246189819244875749180658246341306720197278927138298650136775804762095344777691966423847148374004369826459132504662348413435376199655920142603185054399986303309055829047702585746952036511808108178365653946549577230016028590168999532738569205068412735747135029540262628768320858731829287658518252600825322230982882524464424260976225182333937113938805897572010851447004705560542195563725671353056532786429395311095844005988374260196264908174315263229817176872903956064750618685104768602803180213285030260427321348026794194632636898702977183494252055610225319488766116969095012583162337996115298787576375100291671390121812526537351987729494354385685895451983955489027009919560538528627189703523085894632106976257650394358013752667644673888306750429097228873907695560594248711083607338036919634594898639269440834455586938970182697941066941035684858462461300256486907247753825069498929604869160542499211316543090327923827608620717811858274911052945837748505346336546877790231840763858981870484071082840338890996920244225673289123885388242661711218450533682447492150153287492453367103345692075816329400277794423731638138417261838344798279014869583926243827645075453049986799868038589453479749643242695075475637070619730197462466805010670890112134545231888359046390083583243277458695431481716650690013516454975341993719461759985896986918689261427287728351283717740267194806383681218825901567804695657187199165301576269767715517239244231381959848152420902080183113582818192835832581501103386077630296843494576623797227670847309877365758012119053600587328497894315939570385160752247050499178566960625407860341029558609732521367585087338852788138468255553529179755570910509888487722876176009172619415288489001572839588231024238461471671418049354150792258501950488864797912133847174632112704735070021734039363580013009617892726278540612177123078706083134276516517245529110672706405438295642330200808059281993284056735493262921379326588463469210901556473810339398793501061935635590752372806243642038928808255756859421133754810327017094779788722994929984255486548024889383236822302060152232147518563391223352291094748454712262290151499731006119548775373326615916926932667786509903755360618925498709202003651375284514051549434651094412389721328410342283580979377040153254841731657809804063293444787472579882080989880373450895305659634931489708506383638027449612094491038901752637206955886696607825919693118284161999700350460822957677327147279254112824315677362721919008707458885399236344734418510880782613750254221542872892850370537870809041401894796750786780821893381830038125031007003839811568085746145371136528123952047351731976300207547389889871963608284868648810138226180820547486344688386374100265451519071138546860718373962254221648029148714600810928678522393576471881202183451598077738174362818545513842195401072175210873950873157462102882273506893829311618956178723368058982683489334118873033330464694701628341350242300622530454341608774289499537381678838106835663681618226816372414885389420253639695143849621092135268306448770962062544774297757886657317376465204101051233455318270859590929864708949652120310779305364490883618378737406838075545653467173326053215251924108859820378309010763919711532584587447038357945247304016187669729994914819268026498960896905201225317841805501354976481640395812809207939891832674969097771019625853713121796454185988571818038776521832967534555582316499613745205220907118938939663782422304487927517203936143808422154477964776367034189318490161292076737312649998237368244126844887035032653050367400012010752323016869940076261607737106415501722723283814997891961039114839840844149753731298265219394793386691756396508534500401767019527870539303763126394132455759378323949052361228932532798266355796506596923571979826198775131136843528809138700540927979851501702359096709218540481650366871889962156433556598242594166796311396619348059977612206708711642587388536008990688989680947213526047346071841015087255386303133733007411142563489684108683400717886300094425940870497513731235125997216601520693771314660733394637083448112506443179504185240730259569181518602708770632292377743064075851110103747293594668881063335965401373026459405471050614947271938871474572569696211179726773030779860657618963355345207141336218895109295328426474365709203756398260814517411922045815794268155477410853614251053055430634409445133792670846254177087304947135508652961859103399751842338809230364889329778210060565744449483490532545549581526244361431737293607061882452094382036020909560473455117719686593294404536409067341554945635536365588699262090700264165662517478194379198843354071131523645477819883524055153252249920964379291221196864102671314503176834090151784130972325440215189374592746496104609710213512208678953823549867605505005336039439662058126552681035910317340377045507033273963847525795816919970882095256556391372947593513054520627745609945166973046489227668026188748644392322782810816602168111873982225803414422589596742621914927477498461218248356275297593622692889720027982409537375853292077122064920956713249930046040165508709583033720166308531590274881985418999414974306468371475302404985182040779697565968441943451419157840389808522393199033702674721668813467651091140054463482767786980238303315469485417831786306608649239392264254383861689205379303747706566040588686650242880281268826221785385421090349388309716286198721380628941752705407606283312627891897128905919666800235283434253918003114884679003845992541491863531389512862680755707918570104889474799875377466351871569460042380678553177302560465947410783072542110026441491099607049248014327166664909336300632406441823242536777751844944598118437391524642443009487238563345855402102189093666394957072988408840888746011365196427934505351534679524558825787904386832109525565140861605163448587625277963816750199394928446897806131864494708140180372720254320888151480128246726882281617576367837628134543054257059434274355855662476198860828099969265167082986714875777498401043368343999357146977001471949890047702991331421009173871433528823423615773611139806746371663584953331412498877661936108001369660374670916132877988222776132217307667866727873498599735940556028694728572055853115542238997448553396442440637081976863041525041359321783135533939285440332859305735505732727561549041075341671530137101892280018375029863438723093581398238519203791208500862202123008946264999485702186735214872451107811931033859024178001716356766407889309200004303923126504895931327677305675858157185298698819473937355906700012551630131592801987731221783992185375265640198349576247220311808197295592383531620893560636889107960033283450547027665498506549732129330586499039741039587749482683920465113868867723454886094966719493173257428319746148940239166259825186167169917849128697335179838888705830783428957573412703733930300849714366780339705724130992044504899423859066049349836141899712939361243774904074294734004698614873332622507573378237929675824540280183509593464880760171865217093632732667361537518386438407946723400727607092647109600330766651922517073727270247343276657612882350460269639478157929590798413321228972445278899860260678694766064301814084755765919836238121863414715273347861219670645120955085828745868024586943359286517005057449446266159557150936453296021980577173420919869102753051068477707367955861924405877561666083260051137848944738273625301691675416379124003828732896015711386292541444018447182768886023154583259523551588356616323457411410750617708508697190891471725977195781939900482349279573160293417178442455842071235984092328168644627238744596302024151436861420930072535593862269904351862128316884642885502440602454626972737777606284576798023336240887629939000203591521182345476587369306619203013373170601498500501227649901937580440309445392178087940000374242484555168481047392792839099231053609047931010352628135576310588574657372804974235872886713439701065749455711766278230020290550280068631461328821340862503658194346032769271012538240118735176902791540443045743610841045981569292268636490960108457044542895683974557681295546739691872445541933607324030069864292367679778720702353779439476247164461577471617487260842826157759359917217763696111300178853932179975923731270336625216509517622974439425151396565147501962799943564271083299356157434542420739160601726074800866438764903613557381732897332724280047499131280194406751832776180566207319523668567271023222353529858622599592583733639702035226339216479581215596757747628641183621955196316575239431522999460081429571354731214747572020235482018832254841919539267748358483279264148272509021630066187999265650063554550821115752372811136143031027760366011838881246864922532606997737371190783986464718661502144662713685766383169981182360840846676164266151715685771365782782673997259737734458197138397362854925614316838964532026071608504896525105027267642716624390879906043108018864954179015033034999469905620184941355361587132548902395139476219503669398641337252056413195378237793928480979458112658348211817124842415990709663898799369253682808309155565397698574459283419449168244245900161270595336600468865292877501116347451783849577205024920773159902763820323838675357710701777655673375740885191763758451550992129214819030054184028390000194395707054433874473408390862955501968772562666062444646822637610089487012225616187164176294013866926439098322672724890585280813757603940626820846952941669018984123195240608191782305148484857412610342646629936167816055228539421810691679160220625494091721320645582787134567917348928644272818243676347383718271340601845100883654892447798266022769950836897931317478606115827660473012642328294892297802678025460989989295590457891511134381996843310556969910934231425088965642893155177689339466857776953880154381309901340909786954319710472994386968691773642101885763158423219076679831202316164780086877682768174772725944128078515355058480604291946263464414132352140990764953497183669884708757648339291016855902652542851105881354911479855841902074341576137012989363067876130836327293874550428239103342063149471158940003114836743944932916353270488068383050429792453912038510066019173113859888836471299688781541737972665030431754792971068169086512661393930708991307371353794146973916200057458029604201971852309678757942442692834130001763684646598071267613150170070468993142378680332158942666204165834671365058695882278956400873047019278639398505712934136012158864910455706634254802231821760301838626183033677740211028140226919667349155611879908886665001680178161125029159202157357380617398992249814708904713238576787857657775043757758332261121513345934832530306590410459000838317374489292065813466488967407722940282237822257393464894773558149851972285750027219029185480234724420922789877443152977677405970748778055930486706508885592016251922844774129510382954280139721789786928168237256175865081214934640300022505569880083253691772047318732327283379758934723922103855374770748262860454701945228986186520321181676337062862851848207717410966576613346447072002929524859572677426064741478657788102889971553975837433328848882231108758497676201372742805957147395093587326723721253920920161019234069526327374292262901147793316222860838129709694861905509220785820701461338124797149088694040266948979026470897039017289446613658704863193007116601441160359566210796930982371264885520991975894725929152635178194408283342620538632677788114788473198686013658100747852053249800488800645015513607242823930970662092422990064894428366763558075263791548763278233528133764356585480542718563384099490509866287607726551775312024090285343997066112935365377556612060881712903857313282879452993502741011513928598937270031460535766840659933170575469671008140539341983920134553188405076640117888917661659440784114814783671387975043423296383214162878826253374670846879556803050982707370551183095627673398101793436460317137132787960465625399208104942459090180739464601501239035310794797157504029916963349765277793848708685062392467795838631533728096356445986985091175326089030347940467988065607183625701990915434212660441571150694885199389286513767955446723171614552572791947817446342457570545810124904388262828564052785072582002027373771532643256356035753462686419510755068907286836417896108155648470191940842748449501500292748060217045232039441970469781379695341888991038620689759500954326073526578893960058842881279583917571133304191824092268693547797038673130558580384953338053040978934330643682883255858001857678355531907802576470941332915926246098098040355214971976404293100722983462866025228855439918886590087413223952638733649097850590280406925415203515650792113261491001245140642195671567728392892472603726158378931365060440728610007882511993127741701081807417146643635337812033805538452198652627536472050609611008376147983665244553244410883316671938039138087287989249451262961021683818768256201434935561959567386481666575560709384560736758726565987935697975207989798818457577688363884010942715253509962180206965648199372238107064291955402861846575902491116974167334308258613184905727186099172354415760699325965013095800305107723468420229678777921108852275350660600302725096133292187095128010939375123486470999373782061445243647786561237419112412874067099844518201540430183052174067505591216373547595630891616665921045575830841961925071000127885778071558528663350924903478894416492808139240207470263015720265572599824693363968493666045300315668927750913515559043627271453753526835337357975029979299123556806832662277794193653828451930431022975419630394458639432456158905273723511489252106357465100797990689814611796803113758331785678134051686598849164398911135029985374920007442947417622655395096798641963795388438463368821796107185353967223947645551371542297143854500244079750022493806749386559683375441135497130242982193104345011597863120785583975318936941110333184720594188647642532183031163640381301406253063302302429661705420234618820319119152233552899761242135194742451157898810343955078455908001067385231688063479546572459348902862592526377290459578506401496179918214995796957900303681145620573818728297008565443129674763453736281079179158708540548025917372689594059122100288977418950803920404170608067016526366707186414554036864720202612402451685094189734897996681324857486755287120518940588935371622462740131282944144282236561309889256239845421979353007448147665027151799004652665595322776609176963356014273348902478857110690876340765731663019863948529295579190236462656688714032487486922558602356394419149499032869738377864139488422597458717759765143111973710806191064147292658105485818460096569352002618230307064250326175157613155640756188483355973815499542350281089116265274775658166191399211569562542573147627162209110260447322829852856173759506610411435842649137657654421529803040822018316113438348588426162835166975367658999659189526465992419807113996088907817571912902294351677832099841456605724158156171024346792954882159133034872273912671086439112579576415658807217787579340815994766232632956809370982186031133156576582070987002997520157275630539049103711401631166559159482874438569401021874972463619369788374558780689721590409920125379808814922655556899668304587860579435049791493166416607513800472273584546564761139807386198331918831133159600763001852776431156019778013351014656511378247943478238344596810918837420348654949257701192167681306205497840727934872660155473987552691884304961617636296174229984235494970477358283178791459351511583431906149396403431718034519595920959870444678997173030365509674360765547680364158578402314196285711290740200661629934169188641650588883182773918639960942946986065470339336841988913666199927236772725815214992393929075345960570315989575812182611672020566054400434590906296477150153681357911840589437928134954147111786869805789006269042780098442369641063103993559824301261397251269680775888804531281442106800914152049846993071830764725990638628214040959897895789028516331976794019112287823747638567639074977101550982617242177673874924171286661630815667410078997841673188194372034543061520413289203716964407649262746257375927418352017791511960809500907654662172867141448293119158233348363028200339602520005221234416904056091908633414123183793713545561265694309313890034252934934183813590345176433501065241532574492912838080984461296893763193994689796478765105375814117181035779536373591773708111908412990418001992291953785911420604227599747977459068079334669750037841246130119781669543367121997413494566079186932921175050713893860718965781669418382084345864891653547299527724662399362887925946651615742968300092265305466066066006133125242946776999370234143796313582541143810597829688856613136375940315197329645567755895803473793875003245834938879062734936271892048920639993347448582430715967005067698341376244280925500215864386814961062341161273799419739255530324243618422106104448698981988910189250144524067134257842493525687338258334578699705672520558921739185526895872614430083315129317702631648110804591959630406493165683125539577361974532315838645835458760493021173182756109603853368154010614029226571034638987430572721134377897855034366814317797713601295131870414319473052327582685919177306502176849723709020267876820783788872353386654114118284352314727089958527504388018834519308069310972504773350416610585112973965010393295119332283618662110740110054368041752512783472268536210833931185884751643870627362285159820835499186045342397729314907221989510365880028825637677590562642706138571141720152938190382547183814322823436877798786164618131780095283092127589986998848779168237770972733775274396361600187691796694294778448577008623353154999465038345196081379692636468427143977345901330834429410908055987006306698464038254251607568301002840364231744435846259298019832731572509212896690168031141045229357891668289876788009426503558417793879671535317990422187986119493641859222237839953820292079658854182597420823916064791341897855927392383767899783905739983613819566256384124349230373049047814849689815136663599734382185776165537002124903071935652838559423462907627467063502783006866352303302868343797892649761327790515120636238866048956376973047147994818927150680051775302160011070715594152224369233110813250275594961125296331178372970796228827411205752752590875009351527788925426039312086484664866842377208254417694071673136218434411584934330216791131867210230904924885778802716635531373496797169462005199806863047092022459392511513464215863782631151249730689039961258708375530184780651225631309119655604175502363590361741599865937385997911393128633143464005534887532632486207298789259393990503324230186125133591616521811161664052878190180926237778433202104945669328199721175257457953061520675445356870393600622499274388258132696418503901786886456379551025096667066922399214648169209382158883427669203444208144850602697441382880621056243487053691646150583736489122891712698934687124345754386194392525085900322822481748849095634831757878549679994783120694022957718224279061888151472293058286421844843036242937996578660506764390353096263778805294872128082660918001161617078493471344277891861999422560194119851091686382793980301572574244732236943836922729099104348843925511063239911036421171642608432713161819041137780769582305148682718671279084790909238404243824135275451515070016549542833298127415567887954828567643307722937739853113005229833745720651525662366176514869419081415089672145095335097722884035807300532929078098859626100499222189043479947177528785053595474245742706582518588548070541248898597460591477023941729656936284448585182818445126201173528691253637739380945694172811297682093504345688028123726027392617195135802891535961719222847709321571991113050069195200135864063060064067624490644010898175768478861326823898915656610356168913429661301375690190257016583861769807384865804936779447272142690832258382738974997418080408446678191314835450305713764262159599454802612922549291205755611775600688846947055021012339853548567519655905192858791459419007151517341297250009218689277668893797138944865479373993463324825060607644366229835788115577912969214824798050990246064862160305152319106715084783647052982322440959167063508431861924057445687808671449984767780309653733324703766986247723391212478121189516954648659021536270477068885192822217914550595573064990979285975067437571514638590161647592005226730997265929292032049370091039684718599042537097310496674415972718468774741854596702531867580487645342428553534478547594734820922478068369173180820476090579616857455814700213064690274830092945054852151666791044755036034163410343481542688269895539091223685704747619808590228372401880072594713542982605027476263687525017375825474402381938362669339982762402266286664054596135146964450336674952690762683564155758685100955624591085193062741459266276584321245424512729611713000543671324228554120705168716576506345320442079531114209223337705775427536702262555040567488544597800456719622945808715613054927866173823447744067849670143779719521193630001831525157869494251768314377390724445447861281660669970965237487852755524350745446059846589171714487878337012094873799619235505408616211683887510712906025470217854378679283875071827020997489624285606711330630420355461724557158915663366920008100487940926084339204924105309732795219391398329620484347949259266843013935321778219766306714689644997063364090128635007626961717338086440427078712933715020217733837442221868222263424810962678602334951426213390337775013391401058590545661131498424205980604623913399266894624256357421260078659443090983717905369395895953119443149670318166714895186810581758831611145237458694033431940094921390084373213441954233709954022590736451742875674531026631360217506562685233298936612573991940613712478575823847112196613406869745418682228742030489882780274663045133356608039612380523593805106961614756889815814490903428020880268979095809812015713652704592569936343137399579562986990297656611427607479657485409888467403846711395335924173562421499781949643888597868198291651391274591714104245512696981403214151679374692425491569675121792907592448245065312255953027253192183176949908938752351052728214924435953621171800867886439740515425929567162801790420861302347839934730356091144365031358850691653053284817743717145774832243182391076839980501695590993074404085293114829693494793559471614202113765437262330279603457981754212773788384371422994570421334996045692020484635971945946893413891347886288185663437117323077509463590400105433693094080858758799912675095648578228195339932088091435742711820141367092765827055665328672014255852420326462373891072357188637997612095003419689461811684074055288257445318895487265399789116711297967031690083097442871897413840499794336900673775411488424512325863585874267358416729098883912581835555364446415679280388799095808053692282334877195010061213214205892882340025120872102702016313703886535434534540326552613080374307499547860022678933821690043504972296067577559357922688712234921403500064893247498025289892601496428735450917641022236077476896053526556673271367096584210260233579997526548351862535032395859759937609514571979342849151099541432362316961123163621089749928836717790383734118159187861533760426921148619321204984678874157515525884539465182014549657317569828315627997371493819841999006842264113311396152009657833838052371204758884458190214145716619671340294284410766539469356731984767148350020049022133790921223950364759410445029121669951726046514538915627176675311919129818344317667826583773898251546162714867229870967682532238127989760644148545876245067226155208342807044695670238994821218964113591975263784981882525300452304833481739495446930561740642216177301927388084349541151136631038429529841965742381992547887072294632197350352996024966836278773127963186701845242544299575518936520250231067017682182184099840979945698972690911897221557636021918129399311080901782240543167935307011814390894955007834171537728914160228750364438319553879772005579256038470032869731262586422067068330625752992491776228672974544750405376958726394245328067259427795239629613017625113980856757500711938612838880659582241628844973385253743513121493924711519218336777152691224158712673927440063263468126853822496314050452720036921736097084589838977385310420757146521199227893336201282880529846379394702390366652474278532909192717377096576536468466203272608072730270692254376523254185262034483497528534862012219453144290943436896718078122086970878162989362440114291050548646470459707971441517989755867584045254551291959917832473406722921084800982641238282469332353483045372531346220042633850424234606755703132010600827715601503947071136565236337980938366244586470944619509701172941566253611065656011827288086601758536043294819591869193518423797313105354277359789904276385805424546811482379859495796563058317620306815254203509380661492100575486645877550371178348431077850108953252969488983479029525626611104767251022364920526753487208589850525925471605726124490530776208865806508253228268723079620091685540770930722820997581171739180447475006511364059624832395760846662319472672922080729625932913570784367448502818054086115403569776326365531924607159378128440458964033536692054422844605818490480807156554760675155146784432223594059534157763449410989434471973297397601623873451020837127803227055312068090737117821821017878227224455237299307389054902458099225314335550254093990480412873815513505958505449152968563362564938879123356664291637515005603800644402144042726960534774022202693840971498568315535462760331724186423708289023717661318504518774844089445129110023610693499783379330593299458707429870518116245100305527828121567339966157665761368775287403173241885728149165940938720329134547568655341971710229679188530568035327495167345185219522906559212285066711145388381023784490609145766376111544157023913371292343538472981945390076473101544893574751367034763146792775009648518244466427872574638746183668388620039865534486972370168633638250440728412838049151333033378059813570614607841628624074694067612986707309445855972234172469391964610012777388553485804290091105836600472829802532166871253094875078366151373385345861111380580729738727113122343777549923759468477029462355353517030473907173930080081946758394720242963288786002247822554666746945432089808281469827265891443492172539994891363126980125943710505539747469386025506074302476488608758899682038458000686087312391678397803860951920254605653013780693370450024129198805321420817055329554134987001489639550065485283999333032500832794585893621778041013931530614098028208580983788034954972037634649548217826440582974598216355999737360470920145843735597735188665552270568499309044956867130263082553801820013615415070992488650994393898260022885954584510731636852125123698238833693843600944356515850311133275320972594432021687069562292826277646525887074995521088323834535444571924538378582207843110067381492852191804980757869843724999666727922346932268020349036620075188781358033028522354095130430002126579099681088214331928440338481157778235658494938448552189303612596288029469101089760251487197851733325026032614117958651012622081805586195861997753794694985143602430092900437505306638518421902824811895853608601948149354949167294062161769994419914000661415844650119897355021311410050659101239312301748129563112000476589080985357907028582034907540150992886492935111912422908707923918867733313531832038670877970118072579908496153147706119265895518003447386688365939920300474606231833934664470804362023572817135248776676276597043829522108820933641575963251981054976038809574872979727180985266791658145320496431946087712054390368862405221559961726701361211247917967335243483789581019395349487796694397690446326464964532087859514547038792853025745885235594988586562965434330805870939043102583877426323516384027076784141066960282266641370951762170367937049522678923312404300806159841537649267827701912638359587953403462613101742374146551925448430262928422939457481854435269768536788912972524387845491979074516493373024733210217811753927181014419190134870026650816173436203733282069232585380399351512104164638343367251257841161442558813728049620817545111359948910130886190931657449129901163670016986047218200026069424861896798038272739151425911428953005347978408887213319264194050532749398775427040563083384063003119445286554934851415177785911320465519218361044548439208668838501409602433257720271299721050039496613756412753950565733024049069215254377568828931566498052849367683540092849544528347899907000605760621509803241682094432685864232297867429984041670033346828670919487901909056825014426650334692071037302172787820844114591589015564802432457672396103822659128443317881071716477284311598893582725267532900124894042891794160743613776718170999109735928718663419050890717427316572184199823947595519975085255055869679578883682588673644888229115795677464766399979889861014784741802357514590252139780261127848855570393494268631980061506497036913124538776765782830733073414449423762236636904709106642508404040713731967761471722746451570740622308339176305835146243954961228445407503573407030782621640130944024559695031694555117378373241585181509287986500234699008806671714607144752957274383189523017287874186951662825636006319947712591290870781751435779275634366744697680876653852059928988175065613119223661188511650909374927099413605315388239111919259261577394404705835426700376790924284956836258680181396843330714239250744356165805509519572292574431915916032127423897914033766665769614730967837275509241049594084558312179064113112953339210874708475985763808166145370361832743369065998701322708839439566120356187160435801129795799549832262965295271503454722656271243123144127076462762532451093824480896547576988664533723252276268764866989510405780084741031547817183594807600219727848981639163312023433519465046060953848736119838468202951317568662915273848842640813611156914383246361973842224549937022859694433691289105596153159416454863570461855998307036756679175112583805068667793540469005407963813372904176782063925755112680421234606707577469889030804944779965192408710673696617971190798666417460618848245746628511977106335873662358668080223632164973153469668326456323406351437455125873124878934741812940101675618715522378793415792888101880557738354870762347076737588633356911365729345192109655537403727774584970681985541704689163535188844247864015190412755566904334504565468717542144242479593332782786212909945706388071022288095368604423556477224971275631955771227931845580184946173919511771276292669952447304391917779284575035039723329186072091958286974084325546030644939782133956689480680214196231750706686786049616647532844197607896672429964627162421831199499167573294975868399033373629593133938303051381350677086908843129041071510051064500866490023357945403544123894658393811435928708415075901665128648483488344660473966975069531800893974146481227678315514333511288984069432204821200735456428316562338667416453327530685404067260014199958440636520114438020819118822598517325872667606677829679818406089261858835216514812408972972068337164186314020014767542865200465506884206338696793550476614645417195819777902104422474804233141472906803425526441363438605131468977761188951050661150068255072985771955322196903176309519546031194101583746166868882248307809457383546604562233940395837936970197001359156211946716267894924690732354860976944731134503829863111628157849527797503484142654704135000613205480058212214488520220938833328016206082995031351181488131495670142714581968283291272702206093740519216876025723390009007171217377759445019032095947100382784443521477858249967656475366329178387666033715038911514082574669149766781259212528681089618833469506208483157357497214305441813571288196145008112841866558871062716368002876192389437871357122771563281303220710999091146414419831572289037651768186250665499569221866694065047391003237111894741195167748108095943966523364923367747747208963065951551106341973561181964590886141112579163889318203738544328060599060417796993242869915620621493413509649026110602060474162491144149338217938836761727156910063273487631518924126230816077928642477769558250877134591389698152458546632337800197233800345666439785837161796915296419116673268948230180956895820795778685554828224706427796179265509865082293801865864318736669874463553859858452954340372646467559601772945518601157712616260846948325227148758458968140644374189120841260700061647706734153063561585720752170938409644547555217979193819512379480800668915834372232497109954405520074485915958585679097928454272253712821352502035632953401157013783616615680654373654519263252914766479169864738270241347468964532891204673379004910320086101043410084319337511894256265208766502621961538021556250081575437397683303661660696967763981220814072974759897810659382440153096383521855320839006873762589543804526216361908621901138106693495163445766009568799965313710444835032130168659145918844801030596220208317147038286932241589191768917106536113555242305440935984580677111402896565843272983058373235820561176142640704760398562327454962760152920509395957891723464076726880223325741856089196077074325219168845032550338965436273195813395653350207976362073337568301561834126315655468266511045268526558230948398167559767836374618897303864319672834556140249322734549122290126827155046218268108677469908304582011527025538328592497350421372346887442828855039580674358905143366492464595435573725698379335082997637223959957263257116696697455985759594585127179348367861796159830246029692452839295640300429898099589781345224486321088549821111850063249168917832655909390356735668796716490509601589582290324968398856938381039725784667353464036622792698905761104029776131656810765321738742801091847435649984131251319628576068588709893094857434056397800177357770202235025569111316770392155816329050632250750452442393115875530896630061965177057883453054349190544229239772031076657321547830342391659084979926258064003574390859593944684472902850614365778222407684885858737757629561331489724530100982862309971776448286946007910134643458039451379310534404964751066324293903962128366171421930511100809856825595409742018912012752928010607323719601545632770648390387122937333417766305938096834102644178228974693718369159492600694845260285869554776422429575982124644002748254344830344974668656534694839890918518882819959222172751140335441095719185203726616750423614878105293094512015636897544890703320034820542901535077331306612489548119694414668232052013359084791431285737101264475013938731605426127729317445508371050999470493689545867082567843418889858737314045076726945253121704006485110634812275986294522932702475491393183739108394803951037604485138829369765370730053467435429123010973195291938209323150163465003073243480609204069661926532313425708372572700005776795074327875261951477181589095999652089803119595249485904369192033586181233116171100863666490207869697700744162479819167360891107161784856265274432475179249482773663444013226995785092227643090696893820682781666487095408247227942860048192985593992073338855587957165586940455605693539313585331614642405492062735291768466080733521138816862050183431507299043076624750166414384081815776351345768632471078844056457906517577880865476460517749038119981380767424143714039531403031725474536907056424599622768101212802978543210156508461378028040615578639422468874974839785583330538536287712524693979586544080961901311897242616502464471959325374297524349604905565984584822792992519233838419629590119981703254091680746392320780084938616433916666993126651277463173182890248537447273133739392605564360090275930336443587047741830886862410274278594895026804605100753205111225400762704954987944959204874050615396664514268922591162376015930765243555339418231130390667384449135062872653306759668736291781417089218269265150348681840427230491613937432945507281919203212340918091289054473964416905688344617262635268845379191000420489930601823824136249378849054631205819541809958755656385604759113016520648617391279310540232650139920215566849698969380802254077561899486444136770073421639267516895370379844847965665065984149965646547091581202045037982084207857586343294109731182748100369154560436813240636833334721059309228846938071794940144828186749301372281023397807694357374626892092986157420148698543999608667701388426163859396627891518668674692660021210411117164460685548377829843882191398699989716473800339252812881431048771616222722327919342242580413118173775097677081155611007082050318752994457784557717765873544885347930656742702493597542587435774630465058204702008495056815000189722433684410492334693778884961137571044279055710493211992483949444380846037005861905908757267144323764067799434234441109565563927136199728528567624048242419319433195982976669409669682710140825009343974482323865814409448533586277627569648340001132082410094513304623182612332597526949501487387080684006889349491778768918817894768622967765408259983598878177849601655392428184323867214853800913583493197189854545797813325124082233389029534390422874358895845136763810765151926600784520526209631410715291397099493927018939341486010624674720307860319906704648614864129287783596218128146986271639483835204114690726866555815244008384362998955571953211124787019755758378988565647790873974127039866079963216202552430754188587406007218462313900231098930140849185258577827034673716498291203687337098920112915370028090774003162679570276629724134678386286457937007183475671973073015997600710420877224338361409862908025195063829997179589920588384925545422393069790443864580416770147029953964928769134811361677835050199949109839859596182128582631077183198790781658737329572452262777878814343260862097555233438075672871837232062823621537841658068490982360382429915103550221794335623016337353870629214520772333533202065931600656723399766272689314253023814936710962595235117733078989208828229126734113313433265982719474204461101952792215834817824889945549097510828345657242477288109544152211946805785365196729009203249613616878835662294172569896566276132587024345516290428298201816434725131701909777784590082754898018787090829801492664650595853236692624957639909897793037580280057287210546105354851526084335007563389292437280532964525187608758735928305291106874287964496230440310561818877545150806286018999751700600627989969139790108183611635683471924811861339179631693154242819569301479150051164668130435440025487552154102793935446709533504151386849180474316609668988959759850387312803256193126182192231101093323397969920552520159878789748786124117416823610199947123188943746576781364476426080829454954645021782508536410823565308707971578872934453495567421863338094181800873654506300219456266003483202730983944297661850962732978843422291447869579222711886376474365168920153799913897317001099579443104963162364452067720432795976968993765287047322642077642107603411789233854796281165783283339734994766547001450374848572236265861255508448488025656603007781851695717161054908452479791501798281063551955934836992083552918998082934260673121280002354793963520339524113513605781843570681879921073314206954525460779565197629258482756794764232015463796615607785843562477946398938102760666109793634722146582381711163602422145278090808490744833036457918718652384326100641263701446515505723411708032559470532421625911804437207342997686185543618337857372943251795409486672257438636689308965816761198165121887211977479722408513092855733488181244745431549046134813224491498979336081123971570797644726066415298310083896857223442055471688425082072279253234934824305152612255959169640207877150245786878723964493690051796093012647676005698375507079178385755355308938460738010272659373632862661631433148455278237487764237608117312561222700053087785669649331618614410383393059821384219705391963613183830137261113886721319054207285366392033364914071138678058847457441102773623771035369631789167283108027551427366751532937183961783242762370095217551589255071858270232081707639195182838487702508961858182282000138317126504928319336365375918480179414879644220348097818935781448871807133199334691380667287003742966536323658209825362414768396413581818450144817639050959911844799019846670931895730425138556255455116681597034922063383210945945759598410139353014456455964682324874464442058176866783806931915937482031092808736031372224965302209345350393652911222753083533140043304904767038163726133766063463811052516016482264722390326843236142695642979820088299602255981693912856517548702459874810668079932573709821261843437033380464080154731502121967922039799966996356566959926150714182307271715520551016256095870814433156882790584521584616214078265886566397903999887693781023577221091511620090872701320572840128848693762684115864755448226015712825048898525571287178742199902264467479197286182675688601093810742841207086821317075815990711973297227435580010544342235911576787381352664949531151179622581542653665140886192677861572093239467808323736837206758383455683937706795996563279156664611746714591239784381663939248482741723490481087771362300375089288333337007727684322017075445253339148600609132768078415218704641519993219123366830433050917729245009612051580902213971594657225891094983797812965728226103725146008983545646074108339833682577911974620320905242373069297639654470997619067468682525652170317968900940007257807802111437129635694552360408471358662585792919274743139546352370491091029569671970670742211879467606706319897588473132152899335645880460351453820235629012771733581576239035073263158184524177020952968746766743754762075659704672910755265947115513387692487203358806427506437173415372448859007267819840178211777117708404659550116283914273677363936807234918221726208361669242581320377664815608574858948348398949197700718286155234871027002678501448050138771514370956948942647266797269842640476439533310628312371987450184808749130844355565237796226033549266959719987504319658988810411411064504944299179504280881540664464327240216442699660700618082342556136632412856956192827100338381330613130197476169964763899263789204544352285859590410045358016141345460878123167487731316204589719641535885363020869895227860491735506907138546264725408257929448311149170322019519603765528567546878620038138729556072316168076362472321083179839710802279964449527047266342294260436186644937194384374968154604350474901129469124329009408885979533636190249258235338965714436182249035313179307900378896812454356849511717305777671411721348325028896755953875894979324935594962260976977638206729540016350092648081837232010118770172513286701695391056794898253560315534000832338714171419854227249695121462905917575844103309187591156532902423796159445713398356775922109287871073924500304473033054866524738912922195688298802915072766994291702481024213774949249277363047590444829832065667742472971206318099098147857248854805689822032552205610436742433715082124833046995427860134719400951385317205921016836759080338879024810399142428545914583175703633130419398070402198245931323166295888649747996580030374188898235460394233377579738604322076037474776162615725791979029873937602777775796483888352611135240891016680146523457274457784295953214208648114464069420240186007620058081558686539216806494449108604833359438716066301514140228105817404561057986972856941604204991328433704355171050556603824526003536149949562110965636497291578217358284895059868012360168842945091136973667526712334829028536203340753754062144898352094392593488761048705456582816951914703462417694690408317717541128288699599833536102390350238092275792139435897061076019744755151775886926309354082647388514068633675179471860294640322283114714903657660239284567242846516590892382878973043952658541254954050996184483641014662051937112605997704498843128075575459816651286475619249316910258864582339646854791230620809842297928181568321512755391866157141260455480109511159995464785118947079960835921700665360636786208846510131960564175910834799057575195408432345966604107417956989840172216276961062116083253230388096743261219780652556313994056310467714034970267579791309960699256508112020213793911739261034419239661471503383819260556993621705209789760766565918586361658106263304232139300806371542253885565977296152589460678073885419631530421522453736560151218289941808542199569748364770486560004240522168952673136031867277621442258583369935648017918326955358182872947351473235989826707914656397474513126766081977395466383344480478548192650770803797493734870689327251508246283518956662167224024249495118655414076923718904550265171962352139836663941128253217596052402814416712922106022756199479871207130283920302716613908355103614649701502070216036205227084843289594136729289594683559496255081394301884558152850566149530029639099951131788218620206698609031047376056703203177835200824610819119508271182180779716414398115619476107135498795381944312543840386417446379965287847535807178439903072992058302411370879982421607359461533510978250122573835392822784309602546076597250736309002219838892435646784135672799491776474905563015229581230921705177722431953855594789106768078817967207899056707586985466091042427023442333446878942639372809314253987190921625565129761314615417812244621431189047579760595651027882535105784510572527283797841750506041141339095472976740630199652330859359099319787374227006897337558404192471242099683346076890971667992325480914695604814408460406271290033842716660998886811818745793536262705459235449488547100468851732105089727494095099887276782752332766162911112695659360055422884461729761984373081342884226630995712026616313936739654504619745644892037812954778604619872414107657814353186276835971445671131367115773054565661476750797700894263405073813602306670177683824847950066793153295868614445825701931801874286609952419246853458275676453949066314796708370699440928067968606110557837151291937089109465566756783279640489720641340214939215939183998593406480514050645881717967172695780689272356070837513144514718356253333428174902692108661421484492689849617856849330593454004926944462277979030752022086022470620407555850595889790978748620815121122450034060085866960629993136962201247541508556743157495978380545168309784477809603354411621613538609094251946069090785107964814830809771333098008087977157526698716554825517720349198808203338601042956859157429531852199557753732623297030357968938776847831672928023139344414938964560215671768342846393938471703251259962682204652830884453040665234764851798666120912715507750133902400407989123546333199144976241391940128178063772418476801061148954499393481492096028623765494060313709882643937569162000162841676299219586599375352737198261663739114581785640625919661918267530663201854469093098710593715209654153668753115358653389973842540352874385800961483079723012180366792181845161053200866777175137850241728623277881198226109640094754645572233323373930389905479171214968008349701912516776978120162408288208267287531027609229109364522122064391399149553301820150104654693059240920134903041600558637176378794770206207538373069040537471645286983991754747770191464934438747114323386390453906538177521730361537163469585924516109401791543040625562568672536359383405814642238701689281171860839161898807622693874924288740514180984755005019643667155197960042009487678093096304961640314580025791254251642073507042378342509324114028718373563938114373581515811376059042938452137026519988919306966208938035131906083042159733552752096776854392794565221060763907989160684420780688459335801926735094439448795061973566046104958428821951044264086631304846309945125530361662382595002940407371201379746886793047479390989945705359026107138407706215106872162777706667491111739663544561245767715968658791478972539730824847089340844748836035725409673316507996407127973305152735184353713979907302706827212014966652746333375441599244126676294906569529810535916284156892708283765095812211367985264630675159205966084394703131334590142550515455036912317493218747684671669059877051246769977006124258479810399640422525641712981242511140834728530854876375692996793210564564310531863910623205403380967140269471915461401215843906364862567474605758457864562652650694495740472726409034269321422012828598992793406005087122252063568252354273302862759527948738271871821225645710909046919916136664696935559961457190471305566024528142833263941505481867599970942431682202727387945060060610339643467379831979082556614276904756626284845655634322929015782607039549227586773399337013394218921143930586077440579960784614894011219441786060120401785835069433716425772937162642480700383974120245029190313493236163822002433354257124196848705676079964876353617741057333188338258836985785880974954533145859261087931794566233842953596528614806366263230184194472940458893134421103152735673058158844509790901579660524229077942802833631714425305426693257828375887914519903285004457131925619921141758539979735663231175579378892723736554563898455825647913144462896022675781409302200256159024042667265830294472780694767228816173005662730429152082764016588157735040269328308711301094252557911658363665638785535469417558293637611236058847529546412767460689035073587004026216766502112010621788776323430614204966201937131970165942243885547402316886556488700752613343283574206691944777786000796329662549221309109685301419164096025203684083797630869410208121135411468598876655717215191033258272294177201767150642847199042772649913399060444957621265742007205921584433588570228903531782378547999650986743399851729394209001404252761110662588822472356840660963363220272440146634845063452566089348580915900218472337875863617400219922581952917857074217495090936812226595180054959201733549870860982225608233279294744770096261395959240259365986309112308714547799352882268557761361106249339769050881478389051046809687356709868033128157596217966941443189864585177940552518836962286033094412246417892761838606446246157527973394121448750086476561513370677389068741365549557712039741573199804660319934232797816784498334050272011670557805910808157587325475644328257135428807662102778655701661843861211243381187359349644176587184527287077909903671067878051930672185287735432215401839792197206906137374904922575096067577242289175351902481947802292986801192114499816702247371012140173027035784814857162498401357545264316959904937139478375915445858886287185771176595235876998425740466372518895597591038315182785173915286556593945391562929154619276866193348202724992763561197448615059259877849870251380992580130284318959483267648840627198047069166704285520185626714790156248230085925898320919032130310517231734660765366146780940103807221944513241590718527872855486884949780979515921062851819921167389331285284204029984705287772656162652629181820503983381967911092239644921379880152754278660164528319105451296601530698371121057743326486177589435664572412295665347030901234768506682927967066591910668428297198971985390977115490087369560344599369670287005937033785822532624634314041387693572421552170441631612837824710804932103243667453557470350907762781096422307580304325032408864398578089969297018396762462807417264330769208748277839796702669335358192072954591348854863114083733744401014252829106945109321774399132437445271299118778503612274000428556322716926588102562060874450693673115346762823964713659964501235347388831117723403253848633079165059116546772816432202873549679945544804982178727075563552563523303788097265526034575673825723915558123658715127328521241542447839288782370210452815530658339401522916952126776908274033003001652156038544985015082162880334174862985924960692989047716666364459557682577384925480827571026620271626004589646391159663768126685215228620967369140975158682271523523448787011965024093142242262411492223301107483200555462335224626087561117095543663523991856439951219682581340581533948598643998325532505273416915730192317859530715321533808236189364015530772536467862654041277371658434498240026980107068900523874439460571081367050019857396948449917905132959852366058727543254572187166408047373032703939620082485583240027350938958103136326270845797605070914317642525779625581200229968733771816405887922944578763616838812763133839078798908025448040054642985406070995166653090475392722658550423836258451747981109959210016541336151595371950849510901607070456312476336788093572397352166814061717744174211212199402834428915963132341337816180278373522304901834365389831849779347570059937318318619305336286386187807535359428285050917667691310389644799847331653307372371751268296540286391609818721331197512139205616768618082181110213640488671841111386016738625051143821715824644097142615894437000701753424867754344024969982033860177789845963691785186354141787234677482955069155266555179590484420477991963656035376005230484637443429436803056980524253256271549242747448098826115875929845521845407796252407041787280704767382986782255594691159401324537855853106452947553533336407171404193925335133363560310463635360496560757625249068907642209959990547702467069969573289571018304924035134629936083973477250820223352169905310819014142792480813343286809669375054478455702771447438359588403360149721306540086492152879622306707487275483422934377735309750504950368906711542491323923423256180280398479473395779857461192438920541015757954457771778308942272606759874250638690268451169311988456830586148947712696511173728851887254053235649613810407518559072725524748300995553629245754810001717904744474873829078397122005335905863936886561057841856182161282080589986335759240530036759441127017540670665653379185031827370165059170397094262899982355954196620217451393654979693124077045994380945726907219364731055733580447485975776782163304739189531852094831601134033210341276970866160837720418694480153932956944458488279339389391783382676530224986313283911951774830848814541191333530622651126634553787746738435503051495026440837511792333437502298239655848272161555033102943171151828892570929110849563686895983643574741365615646858020239408958196400286030411505328781982399940625348723877692050048698754567618632943131555217825451241128379477010159815413623673419946930323957316360270901789868511043492870464241253956652062890961863819071985468253500069677952583822252268197126910174276713953304012587271669279591504401365296413798650541636499485241257332202160778032830792949660198022543003250090499404457681339457382271685670278975083913656199333177078948767909302796341143151339593389962615748186204890722982198855980457773125645262734843923641168142104871102386091014463895700484252738739283442354152610839843081971402915378647703685205666976354374705543804625821897279744975227522004938587851582963336718248147919256445204375564470942936373620624127958015222855488020898171778819518952143538726067610733966150778270477660508131478071476373169137106931186852339069585566891929934916957634453871660107071608104120761331061780431392173659700229187843687889670643615346678152859259547482174454183111202420626590733205725052709814851643256071290970058733296308252936594959548341719901281519382238212116166491632993163515160141277804042283609543971819951693766769380076403041850660931925019256720079977520892107897603053117518861785652198957253064886716379017748793490573922410349557523774436952470371344079581208820138422568124167346421111517100063888300060194034662585821988921821922862507743417093209866287287318151867546029488592299407761228794058365025647741953369087586357096365629749867234323416411228435302383414078520747609011964464620333419031181296347005775175350107677261613639534679009794738244132869804537210997936925274705159962023547152774630095179527753033353175953392127699053956541801394962616535065189450553080550279726063918900607110745976230001804719619922642554255442425467568420004728211243687156805569681384324536599552709500010615692763087248219881293483817458965646781315266779668317541062706449469678159923005406100756518843621571951232884820613006505324620798004120433174089329053059209257433845733716711248313782814611897838025038219175714994173040354636500203135038250752083722538872808776027102826064752031267747745111504585622091323072388009569013453544165100641724892010085602038168787553445595344381997511562977662541056359187239597101422977745934248372668935884319992903711900659364276828250526813060919827487973677282395406877392543632870344522506050091372618193881458896353874707992535375451675953445877590790487290530498534753769393950176099553343805315233318077230378115263921215853531266655765792324606237392046629086983270013058275113926793868396495732018856418322479230171520393955787098045445104839552072160748281817049598265974882645740813845986725845374123955043682558742885348266767524087565033425310113048180550342922853741615045929895675479493094856616712786951512151196709589746351998282343776152420848345658890758778994867612778692726484210759260187765798914027101600900472401147677399990002173312047815602417514817962545864658192718137606208598011962904623963258807226775676120571791242489271514819599247574038585585063106155173264257869875903861377092287648400460194919906645742628452468075405494194864593980228046684217338446836843243867745325462367170777960612035400028413711002026650120657622004781849694754642257443464688154714356546010384796655712788282979362770893663437483211631032612580282530659575381978329285232282281678584155638640492392958867531976447120697555873155835873636258665521127292367410438912011306635895063690638592624826311812845243508767711797900098603752566963636805128985589375714852461148866913384187108335353890535566621149160627660622154700241030538033918394421461299655729624138919331329441572987525685812746130235082221188287956613936564731170524230436983844250393738617382106150585136081228554216515898111251371621149615931489064744316228454753350369717343626416195537501725103815329457886043018297594706392793925088822061749720101040726341816327122850678755828463387064624002621987465163021350085452741524916824931526508395790322602203938059661081298455645258061879759891353870458693513693813516602492862385656283838684564934142578544127013330939771023672713852058463529748704394709817305141261410185117162868431647098820034011253207665915402638784928401238894138669674023618708928219546162404820067646044584698641526353519698060701320349062161935254716117307215326071498219936228996807470477413745923437696906374704449925630444631815141982903122819991471496689109257218310823133306356080651208053159992715919427085655694271454426976141341003328176526566094663714436147025041562941053435343933600030645300627983984425281143001258740703976124865590437977107794981223611650983848544269951576512673612016598105880618159722849166543272511482749245344793029709651535446059746066626490711919223872054933837660601127045879938815300045966082797240713911741164628311249362844068835836754979962039637814530380263706797780425632795458882602466192821225910257194146559315298631621363035792454151048234659638409482274502000351910686644699901794805998282441245563116986471222951821538858426132732450569571509313434054362507398333204576402869279669609200722540487944816427704712453125661348805894383499250069129522838316605809440763731808919930927198355948466149834086107688304086475356602472592630401361986435584958182450526767091822372634058040275490527743683105190526332692615864836940772734952119903858110111351439839155002644675527773663400546556939139696636272930543085665156660925316823611455943911766682675322720539005225041557109478657781196344524668968991660681086621633501191584460599736695687077635234583829122692028462682389632545246266742725598234398279212759466650412094788359945313750225840507192495171161738522576662495805034438492358691598035292480966151796566050236449479753328043954158707476766473888661896386663191563478215682811579396233803650636092229093357570545758928487728179634557492637768302767231855380237216208080858897909404956965855705416961164174201404247480703225603007458246113731481621016725609989422552748787844221261507730277641695339437052109456580277460261748917626274225868312964482960846554564882286953884499191804990373173974384527909719048238249119737964761407571379602891542792037380113110620607931775214743989754268264862514083876818132707619851251623823356200750268277096418962534129400975932166963415444112520400814816283739129569292333976878796538029453690147394965551276440180351938758776248223427507593425695089730713574001895158577788407630863811052208477993349355504347327938151634992252091454684118236299876627421370877668212901847924531907544565202555805632980563180722392350307220623635724964902453650035685025081939702867436237656772555669359323396634082703573426744048635635530060673348884087514807678738203152617818880122265842654049020994580486887704297064593044865885859647061652781543758414531008557160774874460133327598801484130774585216089362370348189327651444504112843064837330808013968957885247981826959449900985796052262017838872081253635644253654818072239664297246060477761678636422059402439617676775560782399318946885270660451639512516923011827276463643201735316815559902875318400649222275310438724176104280249760953314586188410505246591101959886082197604153277263439019247480596019741281362954440940158156255658000504222620956570243229347844617838881888458972853451085951950721335616931960094854573656159883620224549284716606911043608428624054652171889677359022614283742777968049363586697421390256336008323082363613813358100245393822850423357005208029251345290229724688601604081973588840486725345693641449759058845471920271867347330262963927810908083429934250868975742620281372283633244959949903274942442388044441753684183297014151163889267549379583333199895263443067837355683790391780622207282310231829178413374183320674637836588818417901184236030057017267496538128310860495007293627264267057573835107570166654706839984527912015620053928648044915520254109442575447215276907912983361486656094292061511791564642374719788392921641240874647806820035814053129771506080806104533136603000273015007795146143943208995034621024405669288848183825760409873038360300779394430838368405291634805174414657343480425031966976873009878429355662196622445062013962085192196900075962850781471615559787208437593872201613904136192628629247570225188114889168736815003334644198268940457264257235908202792228813939465141798433312065296453938867550939487325158185355404055831859697754937842487140127388231647114895997342039797625468193420844627832434470035805779988809500047030652310928229881305683743881749481187765577873707677729588363936149933503263905553270386599087390716906873279828523785845133187976490470245493260712535845142207833823484967063097525348268038108205897959435519604283470538920290738276277826190686902713760987877752650905490760445556410966317318872620965120131897620802231591461615536597833817923689029004863486846936267150167901351201177855004390174299474504808626942588632027033276002503587928882524142665995078704772727764371339772229874162555442849213738491738737486592477432707386068147330635256184199396329591081043953919273544587218021184538453363589704721590210159448169185156437172184085160009361716514658737022278872172967552353168610563060900261924832538757452034805115620083413205153542499918642630493326694184231290396041183421952928485718542579711968843606723950443032358068111351271368754538621955378890070425548682965603434485854344646496164835086907099518250607373292591564354097468147099846988080409325103249530048095115280737049862679633730440036387526014714744053065384433269410716041622073982706639749941145991722869691148327022588491336413067264803413642367367962177587114898329815169572915752709034417529485512522328012677052212951487169713979195806514287626157611993265852538128816332295504852076325339404040651540798459550674113915457908817828241493262438989685123862670588168090328495622322868763346686084607847527131580580408634148819342573275179763910445245562735022273770182233312068192408773427112433334068204971590921113829606753612441407760903369746831590454457247426586562519268181942351782854133699233739839456723177957077060840992179087174488405449016158692580047019512307611186381263399833008283676086546175827607121834254704102259150015359947202695133039555968579891801373120243073314688203084586203850731765454061687399507425101581804043285584867123224336907536176859016296373710045192770344140798274577807598933392870194719229326228040317439547595905403486695375156997704061138222307164880698240308034873494061817247342834972541468406386955068129482610247685694805601911971356504113168688241929381584735562219232194937298957469527082222797696604827201293685181383051901286639856994067211251156374075196983269054412479919690241684535747695987525087416746138266363161790187064009658314527570544655620679391049555265238255074536632832932258642239619094067546020565200179770903255550450111625266234471557339081758885047829825800758910938083411655455463817212563312213050277859844682235942642604216376971702112734517504370174698316073969740666791650110178963490902000973542019184872635430896990747056937316292685281780136429553776865532027908070571963836313660679069645297832657180168775820824890648534343113033093368491717929744942155950459849710331933398679349874908741918624833291546061539178328850140633544224709292525172127970269099945111359173884324241081917995845871314947733382903868943777980742360291476226884756893195013355838618422098121938908070942686395279620595281382484570561254279789489479330002119868588254867491815461277054300396051252690620538694728535607307183922631915314303865132309978642325924252549956253881660313394404971910766019808229051010911835235906021973652629832238863943946573674754663008613925983857203757599645559836935075952122675561009328898326473131336912974845227373905712764797494471412929867411375910576180964778221708808387522893565069663543670078936716582081592476087419844780554823035498319633095800360307342429162432081508038602697068935304266066897628909561287148814453929357448425107939071800998041293484663197059428131206440431557691798343874153121267616488793401384231770051705772575745275200150657563982736979654665051737265001825455959964946349551908609138597408091590836470138805448736996554595770992615361799859033211612189663653370018588809085816462341633573737135931677463156460467175720359452824013548105317700104317863132054028730400154678600100337846385520665429423392787309699522949341576958421645010489030923277252002473597439397538357149681276795700776236568581706356804395371286093954572419105370004090347708481394762632386557189732948076827197611850768190276252151695197184148944363665770845895662911994269602751972895209107272714468718630351641585564734422587289224264414393446502672747503006038053121161369292891720447576384881945930913357086286597475051944914720646450731131298088099250656847389748343209810389693539488491556057245738529076888183527877419969627247176392004912152609970483401798190496320141305995592495468545839135459927588083153938085491270374984189791989827018519622631935937432273438893837746610184586055720892096922162966077784090098460580696946554009435950748167663374437654892888064624999555280104835839266127057013303933574420147153900412981889045175405708737550234383100056923810705683403514915070467653622709149309218351830784438430513116301662417642108895790747313866797158724700222019649292365321232781580308639432679060668041656323744641386629745716027634463275339088245750988387417932353776462734426556548055269881194665259610326850148479124529517946682837683662327176392714150206416928483197822023588031429462654260734939784132337794483797227407399103635997318262439442526500224662287653267017864570672085453492403467478019625394288062131367075024449467610163997420787996310250821297912065384100420805639233676215697308126056633889412320115567533844557350046424767705364640966695176445830696082669351313329125467093896628117618216230168814402321978144633382084820688193612961529593540216925125417875589510013424840814109318161975110986252586656823535265419629650232672686533046329844325006507535667834048396134434351157200789575212261502074172575852908144321872357118027709260679775285175472619313247585606876069671154907046027549989980326712343913164622316109351079319417851365916784275889507220568761592413395686099128066663971508482761028623212921483567790381237773620245690855510344105222422662784796048302792210911680629124057192887016295992140984002572687576807529870012173622921488106597787189353023943901083681621047315331773344479356178176666150441020777873359700662623291267215254862781642178141063627700297664623586828142126042444493692865473654240792310096331866006067413729069404855475135144131628014244044689549511270002550084956131583237845524477453384021212821614456319325697396437863555029696308217368289972627180597585192767379764322573172921970611051434897154214771918901401846420301379967754834818085560444055214657396485097018376802102919386977633906632003175405838421299278633678985768606497837234696486973425616237659281402386315395202628881302449782822515554144150253198229794695621416104486166636620116024927386094866901532700092406355238936965119275806553592962048378230785100287350263301528391091304592533752809314428519238366675901168418098108791092076785364583343877636921574746315722314761528289701684293432808523860791214189512265494754434070345262767741361602041335369030038705396599475880723465214375635010970085394919878940767596985094866741558478807943377517695255032062272095413840113011996312326355739501734398719832500145399772655869779162216625455389259499556446716390197480427756079370686735454280091400765119574687499104635017418262538753430040464252396236636072559215185738231886211048482091095049557382931227246176361831651533159409034503802054524418276357448234132844709653535651055767448264117612167472661034346711660127801234997937706364436283687434595584110099008358419292933469639787549991584046583011672361577277538395414657274075394995344809801307142509130554953205320182387613208943267817544545863263251147615467720749384230286718943384175351991472346769922164647345030891213643858693711993805721259495375228859166042753248720709064289251967613497922555272109822988226282002230800236336081303214853251547304424332753489267107993490085303880922008296580978431154465286501217550788336247013942967403918107032789548182886042612776851948456827675128767941713638539218004271474497294705159402471360825245086016561161632929673330323292152297742716220292842341570914775477569502348145346869759613876830023237344442519337384723985782639238517017592225288372816561667309431747015910404592924053458596578317358714800395886629019421927768308964374816016231107859000143280946831308786330901392029736537277541367544998194331218820945210288933359008265714829990127929360041673495106555965717856935679575958905589157716644620617601539651315188677022319895368176160968215016557879409582196180098975867487254983258100457537314039697934959495561674485709009017633128823789191555612450638990311294487319337415254652448379815054037956383121851767135196362447485405905630624510965495749641714398821304655300238550922852303183028500042197603485612473371155724877822180419648696038724325270350691261993708693722452288201164653468304079794690918073841564662569921266632432694758799286508217432267036246830497922101444399110336859677960703034416867538925815417959028493402388085468307761546615164149520879452181505111986033775590346763128096390907890926947299315465326983894505964382974864830703971304469765019223165859816190952465569006445418775757678643181985331017471174629911812207516325043804649544182091768083974966778958460639350405601850834471341569213636521320623441723610402835291876054423406901183885021398434493312071293845610493035930640225613343196763975258938428781323511129941787066923443062410833971135553865253779267385820469100571703663974176001156241191575960303267132179151923982714181238382281937473730711520299446758681203201947382494509995005860619829318203720557119398363392565727081856527593776435678604183326163045090770710608099209457811337427484903329670266046227531271492992548079383273048120275199594592955826947550813687638784567097850949148316309853103343479343145224412510656998743131335900796972286282920274206117835698121225558043080856817644240829821808897379566950724556894154936570679545221380255962719370806944011557250709973815984782001281650457265608232762095236632718475516019959933172249464722821413302782613716098840332808872396592089958977976802944642464708934620240614495635031022249929044489009149007980854870236696249341508411879278571754688299628231709901817509030784251422037219509920174579803701334728887202947735014310936765600865302031182636691885151600447452699551879401356714595569096492087049365100257240859485887191767103011193609628648203231470147604567788500608115990993711330318932618724199779172290566110417479831818087078699665321351017280400538521810231436799174143695882902182413877840844986320790836300887676077204399255055819079318410979048617494308043315683729388874310062397033921897525870697105756025653838488142581644238957932988356374478079969392177386409708909033073179000738050984995553226703170940395813278229894732113893237280685587699559666599552562771723067606881830437443347130850860097668362470129153573197512905068852321966095344612067529642700683271722855311755347815487616877598143924948012889349099389717834083440105708382858833675517595174451702018396196986987977124815025510807353878939787062459233557485827461362844225643647580669287532451056365657297958316514973986627715094942378586684770923295540938608467231193777488320685320793931493200485774523501231813706157534260850503369588452789151844636182452344822226013370987629398370269326098880101612348457168042702732895689471267229080420546968630624399404929968384684780232060793044766383212768560380231621055821812769953117539712133749283930571931448581359471771613966091777146547264620702469386831197883700256170414096120352991957987814163671041182132136308528421931658004717227139566804812428894369040036011452009731278787253890790418956342390835985815913816933934551203814676827411769978829035376026235829893295773208373886092876900195713863330493723474997618993106282112361015173823166245304735179417537853380836542450487977309065675884828831800207677998858242348165796676619052560541993208698879565623778446007942066525246732053625225532722516494114456928342598149538579619344254358560321417631129236557975534295067951148958977361697938767133932520564089202012841445156651810116141725873999529848234719659074632031364083113866117792404807275600011488266753680652469170752310020812796842482923655210928692863824622601641429875646156126320077602353118311026214636888776557413932852215230196319064987946596701552015396259030236930260108849887972844226314448021521603861195836767605841852180262267801593262631549178436528731961544958694846226037634120342810110418091181333516895607537436989109517129021897202142662149723887071346386375030892241452040887694632168349016739050625601215762105272366537431453487730182178287531724631504834962312061981569719342473566894487918545884435273158703683955529242643290021345354995550648499137210747759382426505114859394404984202745046909550615634472487129120186424235859658486502966807102365911784028216287459118114379494383219509530273436315738740458801806795722748675130790930931254563348541017708321529120228274293130710961031108588499337351549058190139003743545539084054827356227950367245004923389856080202033775101918510642103820492964562451174066511907674692577613523013459543533432243546253979430644268576182001237818954763739724975832039800289530284706668028774291441737025784029375953078245367993056856977423713645515370909411342466230909206160196053676965892296735317729577305728230871676154858063830803547325365819828808721476549755315576158942741963120303093231533084150075300094443866304348192631625251675584051840765204287026613529627095282005452035599131870175717055121203107132263357386046665226119290449326375966436417057657380955044866901366432384076565913686916556553846185701389676962651493391241860484366829103679531459244252073113791704306116996271435720612466773430026479751821836180966521350368777086739160061707455103518272049914269078387695516169370366266663845219184899479241160589150995760479970844364823090534757384920847862440943958822985587401980765127004332828178429871053164302865369732877852050516557094562317439001191247879173779001699064899155527825568636471938924203920567873657106787475326916506303571169143678044453014944415215584071420386684031996837816880702082412849358482258799334956339094781607430275050240336671368152355981501984843988306190872752881976653521455865996031659793394405062594205428116330971706415022053658074794809411371814489093285085202485689568593169044843716012075653258779351296867973607939129002457123290265766727110881939904437220786026748859607075944513685897454598962043637955270917338757435322982917257360664884401882938320121359503137213176003945157333005568647694553010575808039422363951923328586706335816100678859608810510750219003946508118080172508162299490417039868755044453158931303139976645153283680067794322133487738082590733998686517660094630861021852351437875292607246254855962740509375707211217330302586969544316436721628010980984574641949732629438969710295537680854707892999775370209455421031314440829806509489867005783718697791223769915902536772565476248415146809432417494157442862498962444266165007595648546918192518504012281888935711495998376744480906604431051369701071328614464123681132530109809926265122878842576525882913226962586357728074211815471425117652570775545167896296999444141203341283043683721905853114875306531877391503380230212475423395424542697857176290335808912408744429223153186540166668436440566582441268708689769495562649004838976709715777702924644537981127655578596913676723887425010322507794386953183059640811457964907588450543811088759220389173279683163645893951365483024210620286199649065027673320919994017858922921171984880307263796387086652206437781692466405389735077654753385220496680702154927323138590930802445906864997946065021292293919078724759446697020847907509623318916337545799099505472030189912658753935093201458294712261440411738794492640836034140255541847631430303335167062830595776604668315086117700944979109921054960316666186088760234449827014733024633806417189020324790498904959250595114190717082449584511041601983361849995298536782387885264319354622175931740551708215080086785427410700636230608163610074247604767876455557264555663319190436191686058418531913909263492220701127412662057691029234033990123567277832796734478958939400359271680648297187363575961165619947030963971582962063333053499918116576916716783390474113330878462054323971560875314258131229958379959962821249606059517374001794070711124613967192443061361770429557195691103892523884838261305947535079803137301170473213418759242017974754559815615041237214022423956031676532650510465488321953943974734749234415494790330982687901939438983483118870384736794964810705889130320309608951463387526681713271641237436417509774997675817942230296491802798967974354752413750759103159881601548922555573541545382523847758968322173601053497420813316002500026970074136247065542923970007589340239005612461958150539319808289484551347010213863784031107839497429226893938022615570785240290750412769071304960117707788658353055747719794134943355311703240608491719594119848718799792898954057422272107695896233688401997477091114172004317228327197441396315639634963319832173064895442164186670896183507082048570919979989942328400002586348814141604006861096142347681767380864577168114995118078943725722984522482604407505518689296685081268232581602999995122935433942899097422781426225623645176398148448168059566784642706142405421350594536618318537097365771803047143081796357199487212252876864704334623935983485569571263434302568385290207694414724875700629130026210157072455703157514631714298157437657527835978414706253972048085417953392847698014561539523672850929911069665815358765736574166991083083207701189775068808086612397022607928725322243605249794074701721386938175930126858188046042387644022871887157202374032126477254719368044211003728179450082613796791001267388077793435424403029935260498718009414008860730981848724631652697409912064022523207516881443911924299729361122343823177383680430313266244031463544583458496614290366600906523898030214964147970157269174578142977796524869716161984914349799296702321735033188450124890177366783338571947738140356336589567329281789706959450490068100835021875472365520060219450832466397705199709442653838579615121156551169135760282704661932226946748436645209061198359957517498159100621547045744873296842953453430551777043336621468679434896836558942309268153456463577094931451267605041815821355425287769243449122843418589399064864896664278121741531174987679361152859472409360358398616079359424147626147151276444944012936928186162743496752768585069524903161628890774328492803708178704519345159346123130724152184581895875289870527162590320692250057343753652778178051927891310611445898597710825520356415794148458751725642811465094824582906606274514970938765409125411604244479903750035234626266595991009420536052111508566523937689255637156884632660012175778643810098574168209306920011447226521777509498697407945064714908582196046960523758106642963465767183850567283485978583803785429834668207723963789202815933224355261922141576997744923976037336558558837292889471500647578581203790364238975230455475055659446316223069176271176984196789046254390988918658627317038170833895683055164838373645585225833603669689646837751940414696017781582099101683180187490643468232229664928593853430913464739329768634823401622292040118889264442750485876202058835958924290389060369282410729162205166685893289240566276057476203573369867346092532556636397951691000001380305291686960970950941229076262959211732741492973561853620059002668707627257733623799719900495197868722560457252413353927092969962088712831656363076073467934542487137132404002710612442245308442436429318635926670332743960680005139202587184339428891873545339332911998220521820261568750422235565573662919341492247895870851056923700346971654814776845394534315547619150120847256669445182636645195221399089018098488183911915123080813977593190316603164447946728754265849192262495405984446671465997363350589009093643735938101761750062279688635784951438470959686729456120211657921038757587573775152324074220116342720396347019316693791885517050927706143308490542396290696406647411443413153687279535695733153428826907147362106152608623503222445683512655438188636530253766452135503818482687312473832288789312520901269487812720373211326470340160667286685756945674242019670260248645433129961838434437342993919652079503789911482726650763483174271541219549867953055478504111906214963484136865202668173109971356140493576367625136380852159547792644640576642782488367570295972505060933397136978737540164383380544946754260951624481483013042562502347640735250244172425827988967280396857843444308216560961441230974227715210484551564570460163729218423791157126517570205849765899008824878238092551804822477451918564524873233967613592770448288047476979382081148803987388933619417021024753264869706274851063550885815407126037794426968631728931850210606397412909000582725531092314090386367454663359621791696340909315001398057885659953097473957333048847304845356888556890068573228976930938217008712671846819804765767929316760154331721510141177890538009136693372078267947190933267343983226861290229442745975771230677493623852717671568535483281263195485650295180964917439544033861497263065787666075015790833077491786558886980290007094383721176485397363396714869883439076238709620344934565500578784306347600300403892902839390333953099389600508470342148326759791351709862538366750151554292016512260113998503314902213488294519050368610897519474434615058352420635132230561207244448498310510202157109960160980673127896360929453475361245891823299923860546363551632125594133320787525337657268495479911788542219658213301149989688620991230321842309772813526575257010427526462624411128508417203868629314974215207531978953615705461151604449943287847768737304819122601433799888475578077941156780031294405492869603243271301617090887063440400128707932580138741523098831161682770806274385689138601414783149368490729492177749314839721371754145133436566173016411466249857383875483519305305246193089895700980845001559450212495503556132648369968177358429094477895208676617744144742679229850791345862032264162529298843144261852086062126073305117648713885108889627007102226239834602400219426545586860214486563051318913819723210868940693809786645106189633407259686147956954728217910450586044159542693188394603058327089773892371582977131247996519892541810566766897738678427622956030293492204814028253728121597386536636689115035350907166988891686081728396688759937543742745329378286875264426881343110954331877834018720945972656312639636285434246947702254601172936046950397437150170334649235982957426472740843976055440198612262957070852600295136502832009043344440101030349351870709975257719353136996537500821494786470829953644106409920140711593461777698192764181927661267120436702113522609511119119010654663043689826044880957225009017273651904388290688648126059080757323290428364382390770473605731527685632074516991113929115289431750810660116960615802557215811780369567726652507442458570380845124562019272176299062948053316040388273781629863651578433417197739672656315437815474324767940605189563493970470525258803638893910225943400143145291154891724951231959911709419438506591856292233176173870997961072123983735619460009211196816789918014328004539644553880624158338479982817579839572288556510109593432864197137914585099926605240519616886775564556091967503102637103944630486186522502413709416551336754998871213772752607614091656203277957315032176649974618771171815048061755863903643461441399924995474342867923441761387957290722208316982476158206604574842183545986305194763678664596617767228062438288846729895486198201586387795571542868467100763854646423047866666454835799767663208093013302595044681741652421744234854015069416221846414349079182826582544869361323047951519234334304957364030187011542783345103608631581531777228010969708986090390448490198099028413964584190700874234252079494091056839995164164213690436420208340335738122905910417804816261257692017513547131408353386281602219169675624248496415392685906418676011938580368126655174778983522380089149459842835236753214885156352436510364189138064615770715935479238748479758032496046469640538102653349005808846246401346660307904027404932121189129219261486633506249734709607188042943974082356516891417580410505538271947991890577793106347048609242589611906264096830877843517188377695181357232297568461436699072199167517481831959617774049757405890966477271523929537370925875171027545274460644139092197369025852312321335061958109690979741487156945458986084819771279045443964795723016374323874775629225967593750751108814439455071267681830274807900422462265008202353209130586637462663813004139317808295066084531999001718719191641680609900539819990659776968069453522992443071372035184273812264142444052369915508184639338841742139213154460213223719705424353764786153208795835828755959968818277477553494025603390028272663896873124146208326040254908296623370529583415040279909089150261705617948460541646678619154187767783933839250488349591987149943056550599259186814720561974251514889148178115690507675994390054779692940344793101353278373863178703622832165780036418177256621095681294626667083011504308330702076717921391830359593885311467646936073934780642410537429019532150576881063213380599263140617797998048250843583443313440325268476555562726528379845381012301541334840452066653846946651366984041197403915354456217956052719854324661957000090578035622157506479452205262296637705072130750304971462170340336669792952151125082092343767554855558759857803468292385770735550054039839063575828298670966130484828045575911924346897618594307299307985675940083451575707147825904005235454588061206954056406189642556260595078826797480540875383189047273965635421604620178676346236427777229476108600807430096929787196976240447562083854980192443221474875873144876367819274485097461312094094028781337039691533731618350358705189483531721838416171034446662983147897821621350293900053814148966256224673514983039652914760520592405007174748034273554601813586119292062970382427826375415627734216208295292569022131838849942167103046511584815045438004002718417184137905479927036715710536807765840212502189933897182952294151682161111605237464917999463707846265065738345115646131603069706739642517808522364486488887953275313397597576939806189999376474256472278366796533245545748596719613544864763077454602649628412113640532851688406373550232398976222659381125099339863435977281160461506695084173086365241229440631822748572395046968810580461103083859752780557896915261346217447888465610013680472274361754579199352386518154673763129855008863906619209342855113908596022024813269820825167145183134862255676658733242462391960792418048559724111688613041153243672581540940540540085033170759389262102790523256370963896165427224050105493161863480870539033889842058452489972821008351692823346799605801936620842173777166690793594431427202622420910368515934852744941646231040390156755054139417877462792053610296164715333571488725768050991913822048807910580127812505657033385261682949942515591326824107109985178082692768374712564582730747388782650725515335238357314847329438610351230777288133194299155611592716352706324779042262618022116600129728149499745813447383896785131125582939141620921809223906552197873620818706260260359826624274260775393838536974492352956580486524995517730485606426070925773016310464080474386104840376803964475064277879847934199160339265160179899423420686598146582473382785215857869361561499129231790923413216428125740279304650908894153481636857433191072738697439209545627691807062679755823627956662495436093851496048324092356475147255785430586800862523635950025267693091999974644935588710801694587185305618156684184232412600645007842392532152560737739224946599275686618169143075732618999838583653753377019750622468723134117090532871647832587291096545680099226149409215530731550617313648565818006323612195862435772568965358121955931924576116771293900646131191610238177703763233747626410438041312678373984970367446293655390205755168203338051105002896443097864848937870006224712450970475170818499662544225728299250789592542225997741706119491473949432921240868671411974247410516882365269500704567515997792810100144741663558509606649562780145123485653500197717093392671604310984694883017557851099604179014684631589892210061040955893552527687137706149488870335112230015806917298695020860519208620188964307286003176110953736765315580760003544951027841272637538384153508592528546779191857833881925795406502433503400235827856548726024141125789233408374641980911504363439399689536080787233269858905284239589768692443695134092915715143920287093873236935571708967543404788588777719021811533321279217628651869401066777410465146078652168256938852172503397812634121727164896703361731006222816173762688453223992435243471718940118388381052793126537038498217607196077924862899484658255512306090546095633322157094203168825441552386160181300681565309658665869360376077583997064568484258588610182067016403662524396896528124975696427364824735747230783066533960381590474757847074486646457420918350547827510701438866038486139561418185441148829894215352950122342762696407871462602766233139909505778424827124242238363848185341017048578464984448356643116702753386444398572546929070031950316540669841635390475815443504277648593764249840681761612821328359327676638137713544396007295547202761687168424201737876459513389045447231200089243169234366601647449881618952582734071258605351285532751056418220139737278014992133676148171345093720167553843262732756266456248264417354723983695747012727350410315856673071866701158084454528745453568133287974276212546021930947224938497352903966302392857472449228919218188173601448062255735269135999489036244638987890241766186556020078829813187805858939276509366781753400431683801869333937194376423477752953135716723145060671734375993226051251046768655220655738220162509032158118206132500626743218105267792791904825987015583224613317405488779275288754510181121531339734048475279354389721604446179388643440250818119739925089456849376236372075053231993214585961970989553561575775279974987598704987415782351389206859918485494156425335729438478489952344080653659864211920740700853987854729521548474601715827088186998652736661605355287093985366366808424430863583353556554023545720241428429454285031523605580166018435134678839814113772437614844010340976197003576612755555852316643558863494515837613623194091896099639164528173190322945978609311722755487944725076962044043824283102682526814328612204149758644049934293705010422411604825364901016032515119655660934039840128216487672884647269422159929760102376542491084766960720525027168749198866401047663988181100123729386478117117563434554926628661255550196654923239844885544765050639937928177760135830111725673978310985437993959586543732980818839677226058846074331178527513833864556257020435809227716143119260392626150665620661681867012525283768708701150386458550913190837569315909863385453231385718763026583110198513588770740804835899804222798564131288657960551141682009316421901146709248625540156671972748846729868293388150557454079656679464795192532003718702452605942528118828337168816533542526841857757181870258999239753162336509778875860228986164503855426007435043742891769965185957921345152985240229563867695366755084977713286737564210207994133731075341333708348476437991921277395628328484042819211615668749354135133286004784886128835505373054956382384313742150069218241813792652624778980589956612312592025991790594063444746583180613676654978050921048118946904412181411209209287945633583823988656138482456509522186929136539633332268157611246424286429174120489996798665678456024126904742781023006856493484051031728899156164682324489021599222618255340976883857021648034332659081673680613807654653191719708687979097400604621817332386738169315085104099488824254759441377261922749710288734827709421850028783531815558608731644202917774794109827236598830216087268533903080940266676830892905548343498981580647617791518376899029979214021846473154125098074780146875723940014891016840196958591755613534844808451347730470545367296669586280764321153789531880048292765089263629845874952040451445827014324831936065208851587629278978167496942902053430864873766867038490748857930350916115422146748202482761559385784759831222480211214397547967613744866545437168197306243516319639273290042712796090430301528992103423832301890988059632742742575056850738155611565616408598893514638500790457907508802612851905278506312232974360322238081761575427330198234158281362353655818800061598836582742145037616962686620688896174688915406973783649203887181986697832092721858721733085719172618226156382042090973791469306635608679350336151874854772016398394289674116146972371826935779270247265739602713404095283015684958121538971280338727100292683346997000367314133133255065713164763263660485688311553862350595920872620080792500236011464991504944679851471542385134771567515573535118039983310250310157395930499824260465501895454403158682001600474019352016878201875660204995656795836128457693283323357367093339425570694452302736521410707648103405679351547055333708903681833989485917695977549890621026040659610159853539519497566569824655214075172074880948355785670708442823598814841224370670884889288739916005926484101100888913287852542637596511493728915351400747470956920915350327476801074344836268419815798810560895272263191896112766744068437910420380917944083406812186776840938229792064013122949580584077979927701084049208806253085932237087211552009072066908472201363740887103622727560282374334861625650475595208935409757089339803572636947571196941127917128421761167197281644647631852849370781357330804380893720187270799254233291965097489176395979395919914873112161601504428504847726256901271691750077498942653826960035046407534356341733404502558617016848304774835799800702856663200474994708190242773837882073752233627890574517119503510914004735276949273785274012128052409942222052832658859561545831369515056444644076115554148939196806876037629627956390958646189508291528192342974893704951858813851953832690512323289814128911696009375591452780335204473480492880742801836167687574586765233362766149423137194592447815398729879365597947560362852675060896944881898176443507821766307404737023906216422517735808974823167788784765132474170181420602580451478382474435893003096800793657095613006643154422123037623650090696453814198570436879574526530285212322588975013040824195194523857299699415898443562636866502918618457499801902556307156870925957819805822827993072199992719987818509306362651378697852461719527870814434482335611507918311009493283001306398465934163698247484660036561543475679964428517939578717674235147347207227809223611475998313095435216788999476795918962847182770421510181456895149936244239963608081414378186454211085521061545111051385834714712034397877414568533965836965716234671314307895180516044794600132590101226066551673134088042814448335166519618434136639979181281098208004663427377679983863962978755627690678250332516730840749844006213266854321590568921830837969075588646866035772654544212262956171477285793398239991374225639676077344012648826009374132354380946154580818810258081639901778104858067792209797602169532772103083679096367199957698462374104998241940795617437874984806974162275266478865274424271426841073447836024089179708010265151022217349266196188038510976567602914561703122686249254766890073743450077528905089611627802944791797816305721543539616408875120947607084537093278703475343702198471602659378222572566467898603551295141731235392276557171994150660654814571103512531594572079292137466236615406176473462336557414116276401727709733485574150192192251250366233453908013426394910168454970216448490890650516392898079936442756384315251338077580822955028161823736269373187651494510969173025973379058671124315835776107776127315241418811479802674802543422717561599564397486024986925040865217963413587508063305933997406942010814610649533943397928446175716589639559721487185869678491388387587834350105482581845473416540780298619156296310065339990498904526168299635731837989688530539713548526526944071508162446055144654963852260324334027508929902844196667753558925917680817491103203508627074357251103062959373637002385828452600551896927880600494215042047426663563338360608074557831089832709017664335016286291583333472791707446294871527315170774696748130461680990665342810297307719862513379980300917424597338576410879101972166825511135062520832078354727119807031471391688050910724993500902951087837157120540436412444658289664838039378975235349780941678290184199689146147059476078872242049968954708000819441917501968011226160418587268008576296931352465828645290674447883824843238379536181007549464808185027144038414869252271064407695372917238760964547133385767129113556241116935467885252323617881204649477034362928526151647009537553738016133816743379559437386669129845751768344733426948937748149479618332855496892731517156186715801794674584076381988502983690442279880360633629370474140436800796420342850298386725091611066658788507976582288690442403957455342346444884991983445343785025154553186504648731197134524952972037241791363749144853219338172794652747268260487271472808781326885156531963434770460069780348701556584903424073215097528494600344538967862918330670978860964108720146571799890572848732396016487862934379380752154327331895589500826282652880305840041128799885274231622200082331120057975326267578009551946419194743408907342502512667462814615963868858971692057681201584539806973569977702442701297077764976853856206362506941190184609856026888735587783059034095932218144617156935971487010841875399618500177078080882361838285412389654601883343388047374935395541005412074650358972510528604823979388622530081113091024838946182772287349682995130550160858036190323599903088021619572965297704470825747768673018212716946526709719656851104416482055194796721862996090749728148289213405357145823257309280952452196928450848271870174360640984082284450250210659247389001585756935916212502106469106980066999692592203609824368657337528853167661169014256568217261394309647323217976438048847634816685332851560979078671420048485678205260275003109445529295145238145087454320998187679422817445734700157777702573927146093914324508228613491152973986709458208529829724279372100722209482845055171517293660185067385614741815150963934039035464432285354009584678602485213043683862414214824492377181172907136329833662365549791323661148539996266338908725455268182934826675187706815316927807663244828961425410998485423029826794859157608430944633797519055896860608091316481582599204365958366318222228938768752133142223174811257913222783280676695607964920761088435237150097175033784052954874206058942616296875925599811734863990533518557615068811875466220656732803488217607824386191509786564632507581706661565514174754394024554146053435005042988903833442676505763109553859762171347719063778095642717228421207958450836817960600818444307988945899570563128813206333101115341692173046861744776463258896055475906135587632166914063741189414785998343145544248428279654971319892764542919051931984209612320765518112064062981091168475171578809223035370634788862753209727176961240736084559603495237237381388759506722259115270380835439688931994616082059580531212123035719664081502111143077650630275598698662326553119436232855770744914627586619791015260569656690422643179013842225361791603316987210977744803021819121494013882605908173763643015171161293994352900055552288999938501899078845730627194877609136577365678017909540028515013698987857438618650143700426536158616175355352484671917395527439772627619171481851795806915040602701223940144257726924187101488444377073324781189707317127703918953563646065095169790366698848744845369990012667707563511799860704696887263357070221419315212559293045085887939944307688284120838766033720230575604331486885845013828015381768337225434305868783190700652651349648083128613980706680321433101963459760171058014896857031668506012461006120247254151067899959910786655996642001852808588280958108050577419562231009251658530837237091122355975252838761011476888690636833135832352341079216195780836423488501976466182316964795362523513171694326385302535582013178976970232176325608875549386076960878384871334406920786684128212360139478986909297568946021284346785069758201875061816444533892439203590689022004922233424574287879507209226560160033205909137147721913116558133855619546855509159706993323221198233645761566071777209650256605858726019895177313865426731481913604024370563960389493927109986533789780361421023216811784668263211790614992491138717195487346858101944246244117794461177325354598734684572854702392304580250948153382174351213114842842227493668409018299802005415815941684412671645531365409162570238963818070084207861245812008704207205819056331483950773167656744149106543959250027854626154827198036655238978629442160551801257360508284396227243470792442733228897957286564990222455742915416889299123263767366591417442440149389493877663834283193927806211891313098053728530185101630350338272073978641486103616876665285068737490604537380613497315269878089123710341097642621336913598118666277624469434641704874396615534377167581350105595659170967959722107357335754284389017935656597423058196472464103417024985652801059580062630507400044622109794046453126732126829803239212463933363039737058222936284861912506327424295740272841049038931978212176706656927032980329632388298153240753261372453132446340427902273106934990587413182507439565002944337535857564537355959889143287802219184492630785141600046743042280734638710105542114568592069795681551673217932166583197290547694721541588862692162156210131959716269311025993051947272962999104866799815312422754171659177749689222580430780366272410368644050997673223036758148080742597006662949634663145164504806639032048501537672254725098197267789705753168695287541364617053815531849568645285713306977676843976889662593129868089838835251928417408034954451359220038208745411910557410153744115859228876130269670035798223094249057679329907172401176478856578701507582303418694606863632575665661984336717143071941252673842465946278451495059993158158208282239652914035217734860195646364312959397624760832067219914608152818675949855817256759929661351471614973544525012938808742296000801329199883570664667033753802469413712206974791320113587308933670275302054994866778593898992355151454150730236804632533738179039732680592739632537683703302531326624516302758970545960030827756338162330449170573614007643534129054925933254690816142200463174576063275660756672189866313162516700431609776393383363918651157324206957427190443192078239744907932928521234720429662234218227687444338678382869066527476052884697182129041740016225015540717005913623487087156667693822996491557558921256496348492519887488473359102465372969141582688176552784809055223091687113137786711944610253892019933829971419693025459524444422561550723295941551563838854437837173400259318979350274099401704613043623406025703802469006320320956726243784975757900356682373842969940784705484572939439628347477638991905683472180742255614378418752820502738515455204514215193937566965917206667310344992551922983488321780255965786920387918866173474567720305620887090423910397878285352488952073945939012844001778083863240979717365402169930282467324403813788274799820712077255557847701324968381904734305988104760165433213811140514847087225950943333896768303212947203908352248203494763326622549420824519326189903895107323533558160445807753165282323783424556568762939161696528307401175987142816465640311836980648408961498867113151159594352173054178305228245814814334610337145231282412293914847805607196233786643805418232915407592050870451528408864069859079080639720325126426282245404826057289100150575866637894743410751273718053871979574604263864206498024398302874005383120296653966903391084715085887744142844106977189375953899998349589665431673526101471712495705348465015767566133217677050393179926262505916082239920046415308504116006334563418658326790367076209443990886779018808632304828083135771552737056856355584516939351449852160580539475830666791579364584126400417512860832951841364647095844366328759077095719862069888405901741535212792299277500692129235705405786030764179554673749277987046898606461460451096632812873748734939567885355754498421111083668575308370438494767283922261936304329619186910976040716208070317887186433856882141668558901558610715672185196441226850404306927958856293622516973765132391309512629954964034818784406067407215556134752397474962669073106817395838102312715326956106864175156262851911321133963760272177415597645004587254045932254089697346208172430222172680031218120706748884609947050995230096431267733845154746286109089548264108399980101844958278101893986120013524886977179948923526299022108830956417741741808892499338651801306343780892344281819958053399854778294872387547789078857292986510632296812635240924103152266774269775515525635458519202688752731324971479010490725617193135423912363957248139386776225771201524978482537848696809159908390478021742158052265899452370382810414758049645962030609195753389691626254398525070280923671455081884037841371750272589230685776036730030877482285024443552194260554518217694619510394062958163306201612368494379892752122763882773601485250319474438951340470084181024291407783691831215707855861730788947360969655941793962518852625028373316519887710612555622992469221121530105571764929215557435988298847206416175920108375131231600069815546647588580617188644156866451097363093657971767668750848417174698165064248493499781020418711854817755246430212910073710466319232705090656765429920668348335752951256067590978091648755956535289526497913908188198163680930983900762863207771817776870527537373522849811173544655024049246446442068683559368122742650794397787850103478566287604729338893057189877375305819584651549384111856509759802797903311560988255370199491798891613178291126072412386100817645338933002089937395669523008824864991955993435840276148289475334941275231595148093462951369007792841986566807534635822846983597317221390009672581905587211808652888909397569527608774273559707786577200358358250436813130775937732516100800463102102698058917589546057508760947809253786280326656394946044972164904196090154045527321410684216502214314612249207142326344986195375700686474435281235473216009522046898784609568320049914213885047692649999669239087742056452461694393392226615777485264059018238801629235188707058218087387421378644579007237181091967501552916622560168888112659659021564593657076455048685252259522600611358360001146337902846520946781591850092316125411393126509835118249490396457937086060245432991311612395970274527968467826690511457967905763573167161557608243473841757618290272529127584963591661980884779684324568292245235910642951687354902117274020850783632538649763123992964712507890699438508676551333744121426742430072531293816433122200447947673804855657066938277555931072716375539859034025116489902245238210620328565502977804342919715985636691988445356066240372455495194613786180006887673298556904655022855876798450296300884759953050636941603586636848549899696928643206871556309141140219535331775105625184145638101893077258435547561386375342308175891169293540644010875529368013562157950820561408535841745061006699604322695335283126527015952970766332081207084659116887637582052372192737654330504434046630511461950888816019571232285837000609794125910097635878895899790688851448334696190427198286708333366193618231444444030191881015785495300115311640156399508338765765145783954601019851535986059645969072987025787166104238240488434215882146609840225269850441393888189738321662797917438386938922272562887195518000001048710526724236731503669853455648364609921535562995257381560472169660169778592991345523035761981830354790198228122614528210410298491010393832204254383018481824374713403856103494828390699037918701132240602526234084420792373331625328260914094112483591545515439654953224477985842591511186404870507561378814787616436680230328436190651121307664315598990881383929011072942333031905032946378418227616024296764025058339122971875747909930723168162753779038063912095902623816032471754831275209958238407361776257406563404261613729933925261144178300658728593719719361093723287613613226856658871448511416916010119647322072024330403081055472999362709818572572684694708922793497694109089431656929083592636038735493671362741113171390733559166888588029167934813963670488335806053408485045874741406409308875444489269508412544029830308469592475557624896732635657648920056170696893489585883600632872511770398605738764476816846703590473607371412678997427673117579717333376788899357592464484436828453135119991550696876428817923707476092904219095730876396525665939056919555614234984851322449657936618308070526965991754450316314933198632874727422969146439039222040082986424749157454766677112281755783511711233586494918676431243273404586948188302352967769100745552522721750436594923211329074760511941905473171457968066758659931718108425768679673803386518593363769255770809301789844006468789015878788624287392186700188277358712321773176108514462528635112386421867242521234162847668207702076727837126129035475636784014672627908240121437773466042360971480245671888860229291598327488188270527532436345508712856003779533389409294599904350873854970018200225320141869327946592235394673939459932210207565340021044825421460910175932970721831856103776566897638863773139765458574011538242534476032576772475928291447934815620842638334583058234234568025556853584750272043846649598181392574238108655561214698620333888576585361674050232000482857574664715460697324988124746604878681375504937522089626232388137877833227345117196816662880015049060657101314457731855861301361840886389131194229460554719215741223878991168018417867697649905809750352863245182762929214327432123580929568975113760604315003355587466726521246411210253828207887652671875376033384757822486031279124719344142540744096474941913467466411167398605022565586528144542670756261827268288044376959032500791596085101657591082822488462653465437852368285102198900573207457752546516515772238723548792118178887866913684084324785845476726615473711277617374392967918303829712049856463670056288235868981582289642091658941289813706835840959980494122825560479962586941275688431212463988675542877743024148577456702512950613713892552319621758811226974815350739499250254395424922273813280368120942635471283441080174946953334068190114492689155271399290869246874611195039206541966728619032363538781757427711189728882234440222289783137524971592439331636741975711206942006535564977401963374844327055575315706596968262345768211697791237732454786605589382822898588426951519153351837177320836105022264967108891442566625348534078940018236773937484385417537986610754864730669285928911979506858726779778695541125623781406863286095311036185398389719536605601700626555940096492464119836751782216336697723178953048675552891318924729651039072640261871915022492124800247412840089803118752375126299527596865815782493111236110733989186810636540957144239938622042683286781043576330634128039211174701302431217915247357780912702715848305854430696092903440829756481375361114732616558271390156791585318810712506641536130793224893982744848547062143385159797338119500547136361243103623350887321258466939340798389450934479450604504462626176621510285325762712283445980328837664732501789203646844705302080587422228021750638722477898435488713464165146982776425115713917987623684900951065468340590133055639704294738896557901033646596950249129231927469730850151305223691966167813382927172737012078903818570981182340062209059978841624976129244883949797418516950307214735354794208374512561360806084314297034972633035382637254184070062868614135774961251887382406352639141724100737308226087423982766678340246695597218555306402945881915247945328622626953142976338119453271168589663791056570616342914877789122691146434727270872113526874875316933650904330717737235013164040871134778602970337438480423412996163915982800770630764841428250410711668087360457062161910009668393762458652578591054973926609392470044459204116478062148257475538376009604621531448305335934039584135686069963644889295038283076421505738171380252239919945528529312318241485056309782128959217714802305185579458114475640333576853508547847928069527270834809459725993408942182924959508142650851017109938190346318650203288145364535219779428937646546676822387607587636006787751890880331439839483801691620705545027875134449223619567949642208852934636681884227894148517809061863438659879227569351864563433561443267868101845669495088240896810915497784936679233637503089791067604097591674669116188384789072599135520618193400210026928418196603305055149681223573039767076001436001996059694701241100134681527644300854647852702465450841478567679867114642589574932571210547780553053058365405105671443955147779376736432885692356775344595979544746437493467743607683359849269997928564971714751213550548227877268684715214153903767878444864332742660364700098283092793199426553367191629396898015740361235820199061670249046711813334061878166290260876770858120984757002874836219672262736268037357051976771118924371098660691066037379306250071912554450311903709299491226915205250144667582816225742389753977695774909072056165128592129292019806804570664229090225006401268431808993078264714823470878128855766421321853073303771564445437911144872208329911124488956662529160483760642391566618127455444186096768077036359808153019680749295374668710607987475758870389272154062605993495970118927928892246762490350599870191825771840055127095589885942895149775216514944078560055427759782146039061301261222618492787804018477305474834630012605259768982021727401204172200885330992341520923029714250712752548627797766733392886306666263896579171585047247422460588302380315269936651891354610537458849654266207960189836814124188488717525896327919729950454178379168081426441924658767446923013274167340781325527493259261571808999271011065542627956743744339550380046105255970574600689004922150850564079128454920153783949000717546944357588287101395605210361364304137870981345354370149645940891997532706194062727798452819095090129393203527385437256299623587937899898979197317767948341732053694446932085818024818372617513634317522178397534104073969806576722231871341757075625897753216901911801590252528045337183279009618698525482438678630571147818947814888032343720170749713879701232814170216113626983812576284596562947715379645169100513062047636091608515922482168250648004768925266508097384207313215480625909479182099332145995797308252469317018911535998878508379809396906183410071182790740446818388128720117087466718710096575710967008908347160845895013207687487476289219629193158007557598847256832028764265554215586825941438355845905263480327537564172998733833684384057814778983337760664847402797166428995778562118054775253947033344102139978133790441410360208763061789796703031680329993379381045582842470481508400187039938541451401478044500371745832797377629466488557755507149713810574847452400553312991210121184752735980081169813299174234142905592411859064294459697039146525293519862620020351723429252542777857801835441852320187156768224882468002601953851587811712908633228009854420814500292039512296392556502388675025421986643843755287930770520873202327309900171114630384721266218397747351145165233832395731640470476238280683738427380169438357517232703561363358264131437636946659631033594109687470552284399883977434694025039733452474942223301635824881692334911666164178544483554780638579369010776071273284793251823050828209664434861337532080485108657933241832760773129357495527402113389911988822111277073074300456531307785679358417880069233026674313303994332817775011940542761600983957400625460855897464448189396568757351401381358011209379979302336374605806542804597878834322571884040506864422921061682424889401681861000786174700912762977662805101656233640509333466036133535447766685549136470282700987645801907347270311919572941685988302094132300387356907772179307966041986820796807425444603765691334874165890562696304879160546180200402865231328061905097931944512837298468252858097019463516702021381087194607227613761379055381980828704613813309324704172068499397094616392570061293903683351284448410120633634666900888461643671605194316745951446510134404764966683358062397660344326720610309403444931335685080413454480420785288627482260883663101878434898166089152160073874825741613669757387346076073923539252519215278111607681856543221855334931575752624114210124473338868831351509808073885806735628752258904518317225932648287140970515249910935704359318378862615950127863657836766099686356688684304339653670029879570493137710737840213588027827517275610173866879368473466484335601290056729826180903770745589756476786939042813913749080019284578038963932681170013613557459978961560589290851644736398042868088037737004814299872564075221010967849311010975410233683207471524577571972107471728250571677347955464242055786413028544996799763610357657854915873974581596915742905072817075084470282351570386233907250034852335684215209412395246163618493365407288790770684701036004066542612174980229864561610579546677693736075153925759912529895983460553672654582105174443465831638536691018582787768463883663991884458019604715927011977594891257417340484569597187980590581152656643974920047480587992875579323330683880637061045084950321598985466275725066943749046100257207580545076437524908156023880803236919468927321023560132360204193011680395658676977734050709069617740416211451888508363999121842158024693290049548044416332380220305714630910221637619226222680508631682592523066142666088015978500131256497789627859204227009401244956695193472452992554228257890173678909061910207731293441125563974755811122755629952496619193497535750187633384587716634112426529633827872476055737175170075232850721981817950479771354502410816599459766980165855355698954911321456368467201314812146672172438682250407764430313437418565156529835903293719707119192367205434612991111233035718158385262569262044518491239817817606856258904361290612862886284311226993626315219698448544762264099884773852797978640755997236939399471093787326328639506465872121290539666372591770969674309729108255797590146917621868544734652808306333768206286881713522521031574666583368336870089541380240268497929413857647695768448275632754039337637244105917030721548001848040780563390229394675406939153843195067632448184858449250816097915632894880001026945628358722887766458629215885339774660356984071711031549755826506022458846288800988682986063684252383174638757024819614602216361581262293177697287777086431542780293199927330557263265267738641371016568547095582806396890214840382765479047620724900940116035852009355620853265772855837640526165543823184689478898601697357873412494412217507792108847658713751280202330462367034445216708458106901019001079860979216805216465588196118792543943507966132693071434624370028772646267398113759344133169123394894559150287097476149937456631776718437034858499275663260937266661050995054462328098785697804731761170709699383045215871381057345887667828316765981237684817131181257001081222715536353181072465808144834787485407072244801385309405434413763935334945124055740237561434471076711004567497994134734931663917733220207887632440579710096608090634149044338990217762493898688128953079802436863441230667931576257311147466874052422973207170697537557944916049951596295737569695651095701231220382234417055876905376394394606442844912887650805088330520982031188621279987576126856920942685289418315933362805640629109437707249244143141272174298491622053628420822619637970942990477610604079158424149025474364671059290887214311003844745117611155207681741508681579087115934989881073489303987404308370128777137577768395137001884453368849691462406714233702128129817880524729669078469061312407436418589629087977659918931225723360642133103110767070478957622411610887930795417303343353092552914090819103414436438655131899527565149608592991171302051562173007196993573149202913501052800337184532531732146714687990045518957427841092016141141856509705692700940588138491319870274594283930030352506352551276113024732942516656815163936098919311842020297157192142515642108541751857990001996197530053325821964198137684417521953998855581155253177150630794255454739016079523546611966321573422883559471949657332827210222226843935210675403563400154316307093755585488855382336335578662315921175525009932450258987103709529956617674688289365120075728581156240767020009435877175362619206719966186262153036696198811655501053891107702804436420263418614871693176780153676177613126114491119478557843249579010231611253198973813489163811190363165584546200845369656887700612356433245556832092306453725888783052460820316964195906625333544386333430568211464967732905526216126728040013016668913957554507376508339413787466022540949938292096225217452404318318033559214453794340121238200119349183967451075065309697717262494497451828865456704271157143155898145835451717691215604620540571054097173499634543657528262974193797924806129185377498888336347970656796610383205857924597501815088204082777640456308580449900976031704635104082176043457763801258943883851275044469139099646104318048569122414993522976816319550400734604422074010589543147361517592595629267651831094338704791119507295393247032880351592641255014734686759206672128391354755184971789789930099634884095405720380220701335745388853185541281378141259294829810303010896712578246941623239905948375657926492067182552757081412043047537378076637792150320219223754744251030296742992608556125677206944761563610358026063397896020600615190288781004742474951693826940026195842327825784816396693171305985972590418021833579235482725428997436150556110746109435803873205814436029722883722369893270695835742271503085034223807651576922162901470653300444699569342459030811688586679962667626337271763874652085623411401906399383854948554346270944777873263592099608435581346508113028584811558090426612433369676468945896771030217503004294843755140389644377557807909399874491129810616083566473201787301068475826054242069827593657368190502605863285277993512353698980331833886853430081416441792797403473555614992397300734953895999655222880096746198691590084858691230963471510038927516408756600955966365898370029830685220698585128577374866669243194473106848075823914141394560338176659256846888274557342892306726940801912046830010833056423349246482958408763660979657693853291714760794069645477465068644834229626755213735848555193690982814674722150944215493509878487535352881357474946530161534716916077020666744674200519033825394529319014147167203786003188171307801821152560290762980856393417844044090636376938852075942093649370444905764647325070755026926724919620558984144348787783028255425620359820806189982879920130104809276909648306423273280292685276054991423133704585096732475405210224061923346694189978442637293442327722175867887106375820389975314575266868186801020746326599572566432718843674659741696542337257765195057204846913679277749873663417363623325924748183028837218589974352670869467657077013488659679440827273548462652463812827813069716737400020662254224202115378991868854519802359729903104526275555834448338131038602638713464929223646636843351362408801886162625295295590782092069614413466325076133970069572790517385789968719687435621697744469487432739189907923869843325880844613281473421253088221130655700461224493947683471756880508183639626611155556583740411561889922514567381623144905900113345197900547474598299793106180339184822694907485426605475875216538896690941212167567327587436673829034890817655095506828581828787232786841213862667304916623163746463750991128579873958830292391325101916265925650480075705740712022852688597436564818758904890962428801899135834715897117065535525611818412658012658972814671228714185329045562786649563499600218593346504808213680167969995873551622476815338306298035417271092437728256893086981098926088285877282835968800390319485576135267523572914007123968889398143788402770601272323654747390306684214241826016786549675655490960520673148338502292227124277143647763839745225575729714390583320169943565768621112471847649615068546202961995195673826920018312397160289870079895896738527805870302936622282382940718575137968353193845042996542186365722261114041142079504399161914197536084166692315748940375173680937960816297264360764824480437781436595825923053629005177486717792295914746113324360135616616199808969624971570217660860807354051059696635191903674506333837169533192483430979584179006621389233062528000311097541942527717460733983595406228799669255307881085822611637586085575524689063543367972266542369756837999158779706251694903518400437480985006467810276247645033293796110516408025430664295469106925168046440635083947559614732352710235004425412372840723024221052740944643617890516347992586745100391554299254244793953576381508862676348275555623006500302312861475794936643694481367674796531768101218635190219467738817280410548299068087955023769645565448752308439864950762978411853212883435202671524053259597562700765647261654288578443541240163178805917465195301623252481836339613908004052750232094834925521355969836405247010304801260104764926052721255099428170556917793339209187790844612051809458749469181059336432022817931763750142413394037109899189002615453031313941826162962473622939026807704024603375377012127893970882021585534460526300225931947623598519765046380210471000968109519268025970517108087614859060061837101099823598705776687901345521010560379231078790000730895559419439902856517972151253425399883965425893545301376327568507938924025613773837136957241956188274957718330700979716438628208572906897996112878360305878781431196110048961203541010950114811165866949391333357635252705772734330155641865922102442043067979126959595850639386589114936254730448891872747148623347998436538804161331143265676541960300681722244841609284553960678268549823165430555637115600269474425591825564013337739286218112504572528685658865531584267401797418115231885671676580379182893542260022383814383615055858697611832914895747925311203184845403797281607355107500028603489593332220595026916025220471137897512970082848014966473376149400356188522365397615289819799252720256651385027457423208075008793519110643667330704996724615732971288949079605937295679804737582887368572112153216263443405907137222865893463758076391303364388414906561455745912399134077751330099025350468839410899672949915000751871474590029361092678535708632831770472004322250572749289766484390695206758219686056562302747982692299022965989096987005227008806553740626328383829305312082267267875585556036919544160697574967179064273226667611783617435228903764261506194777414676936529194194032898027103253013010468480750727492164088486702204188848963634677844931860728171503850354628881729905534986623756362279456150694213921648984500528365052942011805653854911235048176212440164880737575503231044191520491502855238866297741700033901003848508099784696365549273825814203057841923902337270704994920524741821636243649171059389177058388028296149216607292394953198620010520842759493592450871332585785898143517922475965994551267402368108256031574222182173498406717718175519834053387684780938834121802039080422877741668013522331114627569457144088294690047088787260773758188764192503132852376435567781184657428209065818703876777283678617744760784171062323042806843783214198998341073640550960778913902395793283478959731992947732116492888575978876375973471680829686409243215816997424079873200309387823508868887125348457669265317864934627928379662574564212641567688078273943877175407014882857934315055690454827955976485355753827194578460577339765139086546185945486967923293147740665262647879392027863221836149956607151607565694254418110536755657977390441122583466391393694801662183056427455202478246130887643233523194118781236917524824605367739896528778691080355379314825666966497951315293113148499549796470694995180458640816760787538801098961484483091135837127773248996022764015719131343446573381842762170311604388428676128538465259802079453585891243231267892905241754095154830323211548507558438606891664410483679594500036878520803861732055953828476001576616132659972418801937497800121426914267291281806631795397744486992755161466263360870646299574425015848625797009900822310197211889524243447185913936205640283145175369247892086575199247505390426638233065186197825696509475646905050985994280538939092724791467612982998303520395271728125562254700265659228977230773335492609123431473348591808074992199901014812813542784377550041158959019725308790265512824371339076308999031778085903773035943088696033417134862571574344258823267881736895043188620630195662029768479791096357066690331206836783624760932965421795884149216602078104635866441358655688937217312337385994759003890241956484868750876154430671730147750513951962793264865925782554375045188857178133070320301996810586191731813439878749777333903350583936026767290258228573903871156839035683267237257925683114538803525095299904865444726564666665510385582987058605003878789075229342383868832359289337055294228900603990516505794430797502425910301774778538412800500392445340386548280272089658944981358012426063444930374237634717588059435741861291520441750257647674868261106551807828369192616636972939197279178604051712739563127731268443144691307931694628173886758702175139150892613403013245795410385528788520369847939561073890713860714217770719422648768997203481707190556457507836614529929725460777366520803260694200995076951795378220001733769440975162227166334685206878085666384443102848021047573588254930791637651102420604132195751692262594954621021503711617804459944326169689812734931807665913856213750905837946645176854758169220040490641268401611851889983769693890595815057247906949324888926393409227899647249054680240367200739318976891423835884530553668206600993980904730589318819275046243701492147856981441093818316333913070543303888675270591293073968093709780735856669344402475028547015027415392458913939254989929890739956685936335104478222228255682316961441700681856607604210842061845232547070521808339925210431098998909373480970588074816140302711071330612254563292166994052801697468110179334205301611491660056990864264082734262956997246021192197167300179905465644364985051951356551214078061697769462937726865585408502902206289009303207880265378913687367559907049525934247413734680280417147346639774951949247747262025609346117417410597722799898258991551231108601943047528588531719280362962845965721278718245447813740343846299933459111207321475986172015724941810986770882621557799751318044496299111021177504409323498761948625975751033326445284737596954430881655037797324608752827938121467033323755417653860950546141578401064103430706666707008610589548629239306784176163036225338778383952169214411674807760180807620810913077993137444571569190818834930298559998825893985262451012714259192118697903097680285281110799016201839189379791430483922073582231574541376053462675799993145131048223120952641674899165899849201524914485744967441512903374703210659477743954900616093313251395416711388615209490639747936071022146473871698456189389491575093722070630521752204834996649574875292899195498110904190527765165130465794487415574180908221184449422119976374872321506114843445646203579734008212803112355587179817703236011649303887048460279646235032545962190969098398166319477004609744914237603326754426412443383987850102404555199853244328023064418940628180280014427412511909576603562486915732677384062328609889723064921387554049210681208820187550910085561064582623744350134855288635233589384449012188942729727300052960317702422424685302064923982137109315515202129724575860193535919226170735488369674775079874120581222881395856171786325280122725629948530625939160645428050147438548606963011773771107816328996007415238044154153027018951697791550154295196115465344568961828760376496522483065332185060934293678088867390151597584333255051129405169797776804207905202739371281026270880554268320669666254792833888830401624711860066505092508563573971927251126355470724611028877487121425210259768660372828319238910844795316242443151840980528343742661527046015716665601322722492522050004326979687388179399335752420856417650785081138407547988081970126581118297005565050513794445845721522550617429882268506937896980699613363307461160102055541893891674709482509812431773033944248211898254401764220150249703878724102157653229096729536324975507748749711996851073775186196778641499959235882139576592634999464655721681130751100593947880423593868914551862146410529900785980868531304982605932529371963118316606296823671943875630342280084512116497445452500169741657878912622058966025945027786146414473287378118293571071018804863271246461907215565949471107932108556117052021793430587745740292643628732238739368849330318838140154158689201324621635066028738960980784921758435652583327977412042473034713966957615571787375647805662582147907368125192767461225434478251314800750079185759738238499001082311251891083519716600203712052773555813748607965260276964420772304137098654245568019086725797942374746656638493237260846371804777845836733814963762855258256270475325325844030691815891122314145867114022806288141466936131561121050759051458562059888181860268306704243727158310554408923044084295101397793920941972589937923462835395478646509648800273287184096449280830401200590369222492436991636805475071172429345366116926681646160807937565907354388194306709541877264893832561046350031149939039466456323426418279455359094774803723271675222489109584421647494506825260270458126326594914287845014863029069287653173112825121058781046695440585680447483422837988008525353647254928079433429569294672209167739224502930664227854101640840587583152822865481601943696968155361159446079274109250652682373947984672983906934037236555359705325109323194772237794237621137702547180358498013692432513097932479637938729507465009172992596692975899086990154235566885023344078150225968286984332875889269629606335513039343502873750528026110729210899522052424019089715196257758795294485900109488307867355454560116792002763419319791131519015106089103891642875422120664559959556484450065648398925971583819512189925395912712559656430974491090146831408846820244730208943357135479697271274114739874577755187903824786899403348610061674270286964919175063388307526283064085142838007409162890355983575917870807494797332077043399999191935646294201105040169150596945700132014056460265341487269583045763703370821090539217296539245547075035035685885379397383034568706703946900514415442706029668990328484057343767694882620223003664978628026953286651546648123333358422231763882874833956805185117980631821432342155048897702324097351735192092633388116003049965938267857276157469065545947564720100610663109768449427189494931352294028913744237001580869167221429189692317656476403193777609935347082485214423678895029878429141224896408423538578051604791814974574701936113380175803301837722850468800466566749761720279751273131397323681536380877831569005513873720533867659592992752985521840730810991573065325019742570070352206733879436594122817107958106569622835791983391753764009637720142588011485236875843843206884762334606698977542718311697459460696832211942486462582575321835750877489008216071487079646649420838681341761377353043909910775612904867704308813382878941932719223564039482474023285012573799472017052213346823855521395128694404377828478634102487716830334222807239752909359528445157752037235694208367973547153347158140051377309221008152430965656390013766007970434549585603815469831215104912770002967410769132727568904990665201401100319809237257944963325426079712081746623183826863899584901539593506180695936798471978968232234872878354906219406656597119233665853980868665000535537041709001524188178564135409400578018973727562706318481673464353787970345155017379398020183183888790655677376154046251829841988686111587289425070252305237887420228171188142410388207279269790225533641670413578875069950348293014373306539228728310633574509585790883994542702403011350456181209607864728977310156934476458580084613749474960942603072505599277344946246355287711298846109072347818143309090286226079498678208996203226906380802224300297967487499518686411742971156735820112965244053650475630726863335488237489903975178400276781472696698075874879580688721015513074200914393319384600791259197254263612498221572899636801631639978956198512671415452567666444598891220145465090909832059474024651795479513052699973170729019109851630267738858564757432397250716556145519663683817452273572482094420653676365943589363095557082701622441174933634000338219670920375540143826335291754984350964291051873012270825670249058527989508683369756782963195213002469702825381249340633532264989797366688013372845523516802748312527909105267427119698410016082979859945502176536018177914139019585707463364179789193294081332067562316431989339471152104435289229757892132954081675155387340525043405947582047601426726920163631625991127358974567257509005007652919598221888677419526399290451789748321352951717067452754840111905922990745996788311583721067822929269131146217616807775995990317191939087854264532338233853253069412766570517166554412347222640162905041925670713448646062799404139462521543844120778303232848062769509159608317814324764580180183187478833649143118120988806426068428825199388648073127359438412119615310236004632214689274589622877019520457319813970465321120266357744212047116961645381058629777850839905927702941929112628382904054274370310471282293771790830647448650914610459456025335206989529134150730030667645529928700056797293810346019839734469847906102299678006782946688271387132699117182140450848420778607188723587075334502550009325253716636306832404418446302739009564993681782332212191925078587746488319525335424265571635713806678911066123137259198288132254320112867598965748137346095236508161151575559553280264281386077584309891915287070037909541394125977686048720694129018323845420545202975819907076220287204992091381585156353631619134967975472860137893237918580547094514556788456503076627018644026999749715462787165779192315964395965988414312557415234075974872534902875042890285450540416327110302610059907191792132615500895287946539332066467660074716662386147893982973462085187122428827496491222857838415558883552241111475674607539226446030202054541385688336323768324910223408451161508819521012318491429408021837213327438183137240933778776874354314560153073449979887641418164167876362957659022311846514552963832317625773400026974348192651307085718750824341720010040746289206239871437487355375545168474188527732950183498169983013131243909654693714938970014881792040321906817562981600455295739155620029917842679048087924242146748501352324708101039122257578322960872772690238471131246215761729801451002394077729566640830135632856762658179731608348617497438645868327654868990254353643133554605151360176254366583858959417807884072330806693915465114840677355401637178392733995808057884490401092948004552972874166970615240467904423636503320352964292878256293511039873970023186348151885722138634085375711293269453524380284806776081430021365692639055838205497569909393845898779064370608807712717776493923849878247704525973116569516563732311977777280219067398976913592661936783110116699593247438839423408599412100494920102018754473898836998711842040870698180026443982797550771376710128863592555872972871200397112245720360185861811150137020742825468831684906148846309327576410796714113146704677968107986185641561751087354317527884266923132115763229847716035882663170704009661529740184552949486724360481422495699670825767776291566530005024323504973794594155260140120714941733216870579573490822285194640561766394229630426436395151593860280318792630385923506854602519448102384592479893435169428491628310749484894320734917354036918560927253554088150830178306994370283535231529717664629808032558410773865366897693373374240501781555768237032866590387290867912817634585348619186711556889912395041642121640770460777225110140416164224399255850869476890719779415499108461973828562155131096951765791142770809897747453783560467017643264047215714692368610986534922702189425057527089270925245724792197978859865528033475657898186115131797955625220463169640377133641569516157048330721907350094028089220077769338733592738694656049341275065483523719627443008715788908614236919812647432093587982237004686301544386479670525425704242299209502715729086485593029441038215086075295500529314738305599418713803812823891996672843271634702492295188025154433061607829956697105471547091365892453560134533301392824811829644132234573081808963814901623801956039798678612453267604470221587049550053492725717916946345148906689500342280062283688942599879163160337307960938826693205041025305825094827732591465240825732962721059192827871331365882879611241556552388948294317968922919104536527033312353610078354182245698807338369394593696123311723417138107596680935880218813568336152483641379351257933798139344360668712422369590928790366065131465982083222544626384984868450444280047579278354383252849752916495545131531473439972796300944147616393719699136142932972408355226060624610531927341041747430336610620563209529176681305484357057684997210461915626928168266160760565010659813889331211374364166016240666316602451190763236981081325594782945863690855318721106498349540561622969415415927549946198580524398908216607238531658512079756048436145011037927823543735717624019513947730958983886072894343429669576417872722608745033557307061508234544971565892143235833871281124945144721019780060323944772899726648160196540810720591132568107208217665310123804936030469512774960251844608389590502571471376745754094038807217744847177939368491479504649341250269739581754558413784340242714213495060151354028125310302416330850615148236274453869152800583048533186840409721642990268039428338354193590138317867935056425725980774455910225955189302888743607519349793111596612188035698134259342417164629969688146718517443258699724398616554858467105784901231607112595869440690134740111068247951703733381484557507522133725144016622355519454692770867431329124971286775893067604818359301469667739943637917059072075091656029518607297011608621809649996461391672418403789436962404090122325204074695443167289519931331522287402940306068450349641095910569818419241936678005545764884968938036662781379161508885431498954859257823906321186340903328461925766858237493934296641485890936165932701608131373751264866061431023269728936869715097959182153571214168670436608040150769887452776020085958885441780537587222586042302029579630819203146819289520816803098173601003188971903344464427335582767718747604373879482625794799931219827925958253535658576121021497318251436704184577562849848010484050872702006334441468523183954654463149408539622526067963896372218309573103801458963153087973322690109751248838588821704590438553667311240945946178643687095384277713517553534702582340857204628883983814307575807133227985786560096705749439845248122634140379734156042891576122559423354970692297491806361908959797745222659712046241786514478135050418717694377085836315965314003083157534884135402831644323009897499302260346572574637197545433310238332753034914518821614244131511612282965651163189817092615932891928536896686468546340417242141664690466783497316737590591283954434231544841116783709187142329317530385871548809729060375887815049873904618536426731456782777850268822192805147610585979397914141936393160778893360115751578069409444917124769518627916338943094566002423935695503707711617759622566330377433831018322852028082360078769377879606599605438968885337082504495484368240056654614298464059668540633045393437040789131236003725095112225200513158414826834618757840483566938280028917862569083994500005515044335327115295579285048852548478791002411470848851790089242011701613539131207083695708393108189038144504656810334525896894226113778634679321315955416644889172669037164634632281351428646883206498893254798054446148952935061490483066545559517303466684852723870331895918549470319901475756888588155500463720872813394781302306548938983105957456733554524965835157633251869654185930095916837912584222714018089775862802918958147332163535443684047162958794930093392683695093957185278019712272380794519998387330426924909841518916893048917548597032319650585940942788377848464491446990786941953380913986641862547129028458680000707830857283330282304320237945501843766758314636965048223228794190546190070907458460428087166008376139287795493410246169263380745235629021798864920450279631391004085966171292914332648751936732223027562751663600487592208042881452566040266363952103951827280545486150189029820389862791007751562924836730735253395955423085619565580468140896663352228498707871796263794412672135777777256897725280989635476771242606461040927058964884088839463659722264136875939357704417379372647913930951060064756963205179399655243255406182362062447389995615479129718865552132900584205536023423726010097396366821286491073192287756515094605533433231262981755245088285691120788364344052370883157418948669088244487774601491759532996457186252343959301177627756340824772614486773500822653491865441157933661790513660836711066808202078717347939912897671922510042254314996582917258157969048196148953489364037589522792543668869197575244742403765494703230189361030202499692312004492884268355359277499436741073545847544104916533426181603080155979844109774688589771185439621349879821923587014846088706052387443232252088586504389468614971486861803203999713452423749729391315718021430362542781085232912825936749922287646223222966006187250903107019573043838593300812909835260024463876979071396447963735143101873673063424179525680203327998283158966888506142408093870796452558606188384764710931185159713284494165733061759058533206416709475583151420112745604243549131269768019925366643799296650891833168268598693239503136611941099498015290822641266101620378789424350579795378500197179850589420577222320973142450942453260006415343049010326182134272810204851452854026774687207354934155385241015332712449895477316055699755431287994553602753927281506071164241444860144242275453454469798412903608369642564880690106171056743387708551513265329462253911500257561647774347759383056764657192743788535944758406707103046594451645587624184349728527045117431729436472349046205593588396519070200426115854182640203878514110398130709202454899842611462901067100399834329418416341672497195587387937435273470940244593512707757752786466892194426204385428538522640947529380169246115961376184188523934847927209192924045845750258505559767471784175477571413751712130284306652300657088195302689473409271864608537536012887665303112315841396093154695107695700931824922715519968320736527533834743133750122226330112982792471751433794062644168461254586221517184329522150490018121836474514647960295744037381595069540887222884530300276491307590370762139061475167884570854254688647033508247775883305869055985942439977125356143535055928636087604690990956756971717569396299701086016011319990564759085710642082091998950003184800628786181965008319490521203163571438633649883655236812130357642553633327795822000824476231681019506859021145792647750545758357400620036021959657585085861738659440268161950416857164116831117815381134999556803991482250015469454145401058807455746299260543565477355862610192167333242095129238596930542376637452118598937709861307530693055791635872399879653565902218026548399675024091720956392780515581394342757120502006714704623983171045348126583148028113700737020549988700000105187968730438641741109922988690536219729575818440898211575044938909843907719066316840584597646540895106689747448307335999030366123619222909859940063582482775079467157349128804900695065584397783561590238117776520725989299249753105790594252807517421398308380231502301509814110609944139316998712466029057140070522403243626744726564685548520123446095225522443134355730616965595766718036341328828986374060607916406555207717065941012069005977166969559776666672842196717343975774199571150405560101179907287162448881422658443901693813569903755215880347331759349184198236821646745356013033541401750581684380259771303237060775174613071536184964138549221613022509885059146096871229266735638625462753577444266933443047398644538191310730872966287397366218449261253051159421151236354366567102653825358481929303230484837999229145555645417177654996490780808305970460334653515430567282488058537268367637833546189620196231250450328046150811142699508941417346765926482709164856017873788968083159326262183229120700421367197008689415062604961318155145218065710042254986017747099623469118846039251457872645298338576378341427289139354189956482511584298216585572919540120010748918207991294343486830790021078957958661476855812575738267452732467697518733821757967320630756478461438842150147406502429389670940765263113304094454995127686519056768516259035013542856749459094724181777769059897899771259529411831845783448797093123253907693835058738643631678774249207318917366816978488032605107031660545926485096252548090240881331678296550063121442250639250931954173791839764960391978471110987535115798589524540193588101551156329168188673099137579996815457612841272864115548678460588094690932319055730026813941589346225456996156959464040412113453641326423553445851680936904824005790138393291374472292888125219412631969900054383998014542399859771637073334942492262214562430504401615688315001575537205385933672026602749744905742389535845155250488596707304868982178552204062205602199522286515797188109837659449385452050642790261595857528761515894031902644128449386509160393197970283550760886457235462497373496227656745602937613588441772770603902932662263513717757304352798107610240769808919921050869408687802543963816307216442674872476047525899064559340975420923493504058595875435157161306772621563372169598170818398334665360250460842933575037385061700334721268362012058575182411210614104473153085430802544295300663833849447318047426807506021960280495373359688660025484463850994254455247542546100033876498192679368882470491604773663856041466632837295874037739281088782335155956121722603211099210689152644082043030275523181582196514423708907248485794370777963817314682334035804734221009275821397408416832320289062321694903049309478037183216268552082864547237687292443749965789386775971072978297945671412281661254147582507177395438494969965439046482506830978486368078024660159503952037377251353094425602701114299751431930734081826322564105198690100612444575084846839888543610801797468734865201034898308337031485440746390011382929868090403989552991367352362569419934138368323249089516950648605654681576804767642459395400325557838405064938472248927562966027710044845952995162864063265744777197300822057371329081678601925301058939349172917436918937001291011777934557735681941947949958150028114502802463095772883302500089320148412451461354140160160135178662450476988285117693509508324018906360996800561402740700742826792204727602778027652063024080242407739304648364353627214132368251518603574199709220455613575255944536078817139651711614367444016638940197704020546242933430925111249059936592039444488117215496397629240387045612454180543641501509276334839653396152818169126869612379973068005728880757035631747489495644023825043881114983612749762791627032775645780131634243706129291827084747287807717433564838456092440049051607981231009694173391829580430226302190722402495840400864302888114449357313774057369284938713371121037813279148011845828273160738861266268177227438265551756488126713657590813174067332934498768117598759082396876837609903252097272760840859799714983866298741906104276333239678335897512259941244415927309293947423359036223518660286464662741616294313931807104560036346554776250092349747137625931016417710679305998016753232181765418768084487681057901700888401703463453369339648419520420450879632345981362698575323614299452215299255064304915115877346781009303034169562834256245774907783810145879833710076389085996299628851666981607592491383812884656325626344611042867473896660091058997273143358954248720300064591791147379786984081668399029235226885556967673094499060302520028424450128828654206338747476810844909319523499605114906262732416767845077133733642278561082593986376587521950776637278278882589194587619036432310182877977903262990272272909581485093875821011193296302964972472118388366483508138377038979530155944479000384673103960191187726188721844439602860334078540660686863331336741012212116891843184877599243415620990994628228237818467543140045703041217808311527052581392359281559882407727234417805490659591426930480678992280512171990197413496851562094906266570750508496854760555412294019468615449351259764001356542612037768634577697346612940263646034303276744997025698365915113782751739494703470058396912594204983126398761164164388410471550779857876860149257194955110163281218029575354490570193396947364834012609961592566472205244111245962924856608000814056857046950796359288456239989607683309477705265134895525256460869083955475663732463196228442142452382519190171983116050758920370458087232242157338913168835735306783232218608127417561760229138421061766853304976228487940993734195736891111148796657794478998540597728195029714091850463618889269789860944664597736992831468911293065101442328304655604889725109448261192927789466184329224443405623751849691614428613963896655692958412094150113423471958156067020331557464077609991257463463262994682434105306018871795451892991156650905126602452969461974266922556508921928721182063430765616446969707736328761106427689938347682885548254088763943853887290990301976682750507288970989907157047263168030017030558109258678468313359096930081331097333758883861518921652192403059112600327342598928637915205154141409191897980191640262423821284511965086044999321238283245845025221568653642266377742146387414769816960055426479890934193475340707694337397798448537062303469533005323099384210412291602161172365704051274540382918141493048431584773043616574695890762646822237397739370529417676522853402126496646906686927888009854181279114105289565458792900886269028385857196070736317862939922908410468603233173191096604576517187501484521881132101807278045169555563982703780383445174689927711598537010704794894041432710598350141230325162427937094725920062512631480036965860784795996565687766407459041618040413036107011416888263401639720455596105622812708991768969407359277719528668246180066013708135348783832145991415855200131178411150104548453408890779828240880924857608591369205810263063850669397966075564908011765237511023965367802420891693829001369004546691927584602462230293769895485916774748429215597641554635224966099585768591615581800537696561842307661184754461417577021654349730136663901804155196424895067490201581603066271525243029872343639391159146083081873451093820511521548641690045379017573172821180776710145068996285920090306329098549930411754349709655500732173411486406200567477216917657121531525134869453303008876699300821944255714037558672941615599524526763609632274111477436808770223011375872857148873352267127369440619842470717500489784899452315097287510058749374288716086036999953319905121858673938814646619135652631763619384710225234690181226393326214937556181942036645237621406746277268263901548597009893024015280435303051017871113036407962936217417615988041204049916693660165576394014837231732093016791910125068567637462029833259172693639806853769187340079129602521825391611079288308135236571693010422084582968221342413850363470848348497852794735297073671858539681651403117846381861502270452911877754617548236309660236428670995913725324780101161402312816451297221980696261465624388259721435639616547434498108142034004830313125869018840686525170224362045084088194861265802103204494501015599299501252659412263771928002893801812661590876050337882569538233345708361797241180108565655348308789004096012623569443784183439133185607058524177573837493831872849019019408859950182664982613611704973462618325397714108634782429576372929909948492018604198519285152709542779694364715450168931578967620951245278969493162793356000606761618228534577648754648768299806339360549283880458715841859888813382271769714830070543217582848221428871305540235984523338371567097750240831882239841813633765259816166007738048807323954070482714704877514546325942063494663763370687783138864731134174072456533761767651950446450370045027339744603886104624259897583572579100012620311455556490022046525437810510988006035978692893369064737394754526347308633877120965705227131730447840933208455858240383021129703839430774787333045976039191857144176411573986786446846256154983056455450711092710479530156034520364244124292916843330692675282613678842983352876128085863021900538494796960172894992662487093627283325183588125626082708593556379227587783638035236948992909299661850013410299423749362905042483409634945748733210361034809008512263971285618120592402757278221074071076002413423760460723760601996324054842862724402819785069383228151667974166006981772966003294857180900920316179954359861423352798937382325709604154792031427009136659004178302256514943912190542416017110630513800609438279090448067243759511255710284237499123847904733022487851628567582569527481816055712752528737683737733388082637536998517050848818065145364096830253706672640448491572050009231604924219597763802665885447962691358990890483786895475882451673496156400859949770104205231135281547336911539681068393660879501001754428010970516548216079036338199000080590658582839108572748631284846530223240322525394866081827657041738686349003099980188114605005433899274527204543530195089675810591246387792622602736584796768979809774705139376927798374404673761413887106802394927056351190731298712823585243561992406163905265930876476779451152456522237576796289834730123704334270193867089611793098814859296096168478305771055792368040349363015640861494515883100934516709569121883596256811336071981058875327133573942916283849510577535413066009183786528953450643108904566435386115491666065997001059920144398679616571102371168636514903462340069248322838849702039750278949296071203469747601184292871794098563400999035436723980986350354316694373112347635395266099449790954515830062223471406119279066845443015342140196275513760566832679245605317036433256554264425764000958850591535081536084935637298638856629363681919065539957809580789666571643857381282275893279364154618545978136432440528845944067934128920324859964334945230513431340244007485754713306370785656586189566994099955218193987261303890788765066324330741194285404620108073299589415702891829655632737257933592960039416417288809858650052796919859675705966002083424928581191415695421105225103536319442360900226291094936362184881744730270270087070619690494645555305512367678788559794208949466329119057202158689527422635481119806159720424941380202982476351441489571519735501280949603297836879316901590164618522229922020649612098479475400750311281311313720748532240676005117779268300193386696649851276798762003006407914418709539901596806467500267671371838599886314188095936944612957530343728169066145818441988179396114800236464263551532900270162930616603531384463878478865485781236147481163279418377979925102643443956704252590090877695024438979847275289200362962049444886949118077931972848142637753878143331060115778531724495315724155051159480294991545672861661075555605230743090496222748877305372844395055562752821618847822757140157501147299891649023587198233788265983677503579402667426647682908345756164069139336728699191062163964457880508854931991864713835284926953469017624432379203051495911603819333326640545141905967379969331299644857670313439641088242447570678119110322023327492714433887400778530602281590800149138808050956545669191437984466812034865628473749296056887803620348364016047193421410879625102119429318296588063203993448993869592266401852270771692483627565479289403705807817659121757969122178575401694321878616851347104368661037877714440669878789307635808590804558533446541642759895858064722924017706681674923868250461274708011130863162092087575653155349540502458834474558102273378644419673438257419927744340454756375650698453854899350898082731355869280605216502826480542365074450019598721401447035431036428642534077459732533182859188002669943804051742233829472982761572479882464970599509504675205618854261552928729318732636163668224076009716186695318084031227011094274209909729541029045788792975671520460958970844544729344472056868272276303134509606461298994837174317056813762254552939289752371526068905383509458498704461436779974055111048999926078037087599372684276649357328210099307924419667980528581952778720689893625580549965732552108972642556284793908857789458611791354404950815569827681668616744031302493130080530526803027767128639218828161865612944779673266311902442140206755631567893699906895641915718422784779461808926192037328445650333360082837482228311507194157209446401986176189632689032328935905108122002309979129235962846731851281370261118338575336111171653532919956681043084702681899520895145084412109424383699860040622497627415850742780067192549464903446700533428191039885383518132160070953881134877570738091580941059797787908424518240820825325103430733049051240216441868980484156980645476559813218251548638870176288381628457294991971312958080629141406855416417653847656947500509667358885053287766781102389089304422754677863772903769986394458183010892307885949224415322895934776950983713672639286368317956344255284158373805504824012332776149927657708422090955675771494633305270176850385858632489083712045593713987310692409035915506389962811644120350375507633827159984033910614732837712846150060196723506323470238743121398460817610507937744262455176940948081654723122679631968680714177952065960186857950971546436362054100457311697729035315074420966388318248397014513480769239665653910360805329445481063613187645047436862739317474669917597315784763521866282544780335764626085816339935574368294881496617900971093007301018797301501588560271992984405203634786153784185654464931972898470564838695090084318501068301049143820457310130112096353886305949243087701690356924832119932667491882331082127506893112890079469047419958974931815445809483423981511995419152484168219897173429406971795377565629635339777233197782655508625299162549433633765518219751673923208453804459825953573709695724905690391134673653354705779964061724084160888288605108216617217523609228196661986346830302336450482716136795192578285990424482124123888284012009156831398698363858764416610321762908936554530588959469411095639950326595431122249980002127304188344757632412027553380907884212318922313751905535761805224290433942957523928192085820458324799082251663325477952662834070607809219168071561882240272749164648091350712319700079188401119324362814004760739167061532734225452023975641398892416813288373409549284177120160257787966926746964240310929468983464284705634552150643882755975583272446913758434328021702473181950533055256520961878471689141195466846544409654654108130798410247235676097533582522591587717047703000655626461770902747113956685358533776827029189167062685786958012036193414046705042920084943135248772980431600902809085680866192379875323531172162657711790719127025142572176714934343666847023588129505461426653876143119591208084777376617458082054124013840203443043059623264085958583459431624455332084195455361119054649705711596533720413616927751072535544495249289161083559918578952913956298705383161771750444720120761435392685784244449445472818613595193617656800350822479903000469691534003207304079067097071339931232603558828582130605488213398517967748982038533306729610331222574486607245035621067430239917982483402384639761919359930324273174523319051880469000614511495239081447968459883755383330947918860256994929426548377083898634037638115175624249980099032202161774938418272201105795750950300230604346578337724130002202993351253709992651249381214935922762703454403114723045075265683343242681306044051451649663011879303535706300507817213174905550826474575520395732979649697516424699029083122472431654964652773180119328815604579588170169746709333285877286301317078840227527994081402913668215764780500794356184398555695522430850191304806836273747169827130509421318440706853381268972749979204624703575811323844138484873459450939138888513055533395237095346097566255152127443258376698957757886789061804808069468463728828104944818178898737498823393329978732452052332804908627230272117367924660412747674563898001387538249706378881371585179603949077416107191827761866756125044643828727502108302843661222812840714519078769499335239533610193344931507410174008084385591537888281110216470440687692015931347592511311374364950401939000103969069995175405437951532373120187739801608635244491552572299119252972713804177792568995378497490829546602284193689133703840050353861281946028917634149140523537679635845899619335034598667642973697227566288226630563466972839793936275386864501096928857216038222547055375778188302118594131392013049798978609265239949949466274656515049408391706528574431279346919720237810717949181990724704598496792861887513679657435075511328302885414556812181188870228884623584304967195630835017590942238476714761973342876309072707555128769794468012825687042669857535932721385263496160925444924742268670653158745197868238325478730321110165817802629389891935716314491244288421146509939340115837116698411754483658371103493896546855797457572661275594592635399463138182272909423241176658437430538149917195597009067388651276663793572415240882349041358235753694379487426713880209997293041758877040612043162598424156064984511764826396937270611469080809742679039806660874719106820652532727262522586907444466311868348778700343116401759169425808974436057297787054569825311902204608454700260548502354385256959933086990866519615689263729370617903168192178759476942734094888652433865539239345888162962492897450994870978417756773483774562567415931995212973245695051398727176501222914115506371692361853835740405022930822517873549801101162924837203290111239181388521958632699332117285472029914541838360286845706776073852667934616292497324188444131927604742896048891058750441423174685897433652670216202755432794769428546348361851568340470374171054355267226780757419677700501032972543671623360899421554832919934637284596467464073535457495362595409471768629018339270755649511949892900419264139742459210254135786723006192435582866766735227394870237665659648230474764370729399919508247469740811118664664809252651952368248403074799843950762937974597925060761818606387575885031507342429718814974421336170749634553167348864485767038159897426233376363244076552586516302846285516934424431299510853984929891256717554635962608265174001746007229804347618466172956756563051935827108007652624353327458801224905589666710110035646963778102524451413701842701523667687838223495834296899751230614447139910354333538412961333108195501033751270537457042858659076572378748566852822884084257882687895216375517858500304438681909360920616807607044313016883199473011120889766938070636567943312508735316225234136191177799472764712611414170793567071755209499455792380098365415912164325030707177529779601681308077897158497166978983883521537215553619435009072423082048163136734347844513118519650802765952525850062221744845313706123838784224840860745060548709667935684785834693052951617160362693641855009550805410647241494828322862127754463615944888115218779051108728211142547898093975424978415965100488986886884627505812445938341791358123770979407262520075106101060682844348485505756500928530609687517630752083667641997593464346364584138324294204585507432213770270027680321527554291418945920269413023919309056044118796144256845612856483870901954974731307706454716250380388563193853371730804289610499227774021833833801576037689532359465321446016534463399355331059423647312632184607230600525172696561520193300843523659214313305981365368686505099615350373384147189214492331357745721775044291445160527413262080956359366762117972458542123724055011881330411937867897800297651462265463547509921883129527376858727005548753009504518114049056571048480890995899075185384391239913256815580937009568457758144211193332824513088445598525219841594487691152285700310411818625722587605321575414077485150234993463688044492286484307265236037435831336230320615117424035165090707079252203813578152967957488990405126329807853884391172445271877200184322957316241610375859440857238191939966935207273369373886797113839417545568135632154242355087777492341343066052943123781120595730688727307258840730898715613147597963801520441225336478759235935144187913087081811422070224303030142409500048473998072785662263497468310419592907994625540122495248142149547376427560864369296377001955581762264412629970577211465268796607840542714188821806645966097089957813392997440266918747916145922129880001573218458300859958573460899558667488648259495942033991002717230865230811960279761017464038579994853733343145368725156712360968683467941422398927038030625798272912936595766581981357380691257859035007885469279078264361818756391227198504866108427592714327279118721471528549027107190603755450019388581526625722466179883137872004377229362918406409624127915120962286491126172543677506396537320877778236801035446555715971708924194004498297258438535080141904250044673141001509319711227513948237109617062869541923335135175260044759940587168896941550192889531176390597411074429625671465927237251441806584186929890904049064755466188430680040710088353999097633888510363656295629423468883285632139593082835511037101108603761514011031494554120580593271632370529138498336704744017558907630265315028029782331097239680427952085727222829889641895850996598593006789448447726924004603637633903941820529515155258544984655985092422659507451598471559324204416714050290620845627038444587512954777520602083905850266781014102815692976698571559070519064428695114449735954864753061390962871895305380376883510125211981532544146005529011276319756916456857717691553469440802860338894095545106042371930232310940647070164204470446073295590307933640184481124129855207845440105475961352727438287253034776763922325716292434732598996817813516489277560288746248969866340428824572398777128896737800836841124711883454836453665456383227662201711261186555367724572670909106652999854812522089849156591950294135512187047001632523315327465052429370950616107192044983097903615435889195945728989162693453628054593804430225435498844465846418426001374087026814181265721509564623006566839749377684576304879289025394228037063640519492868713267998882728513585885390919412706213070958676309166296438627893350289258707986893082478795503722435674417266247648989182307920834024332394248932777643595968784437210563037583121787946770941251542614093797729973131648195704264598847418592356040629628473213360054071184805067109172078777185188765511904508958388527664243334740520973784440709184935547601690605092727016200925983254713220548141810024734219106290782010952832767430514603897233319105693956555971947302899263639133739759837892242457051296746549510779413559698192209879278934722003714021069449234197471609703285008966200144665226715095959671778547881317858594134456517436574146654797579442085429556077282040771879192632667248729983281015127484386383308270461156009207267717973135093693533790250217959490858268131303658495644531956273538378755250036994379171628964011674011659503167378486074329447488811959730355129954098960205894419421262929059811317633726681160902502929009780406193297794892461369414918969523211398009766894966407726097909424293664373316200738143854744933187014795731488392364780935918712237660322923787278649056124360839875387695445082869485385234895915196403541725457173418086212264764667223300317360813530107131785127175221676840792693526679664859102397922771042641982815468515219493740163599865490111257180842328543806156438102656872131505801604207095923320232357724092033820459235865355063659645827142423324592663888059631706845716922015647331885188658003398166099326368944376153992229496232668438978965357626879863949250187933638110443201710310998700920455362813955468513656025291245137953197390577856964699254619014853419840740764133043747845738918005156922616682817301823250949119802043697353644556880617114121428680533786060019319125151655804373516568516668047215028556514224457405538969549898443295301671295897909747031522659122795038300126795840965891782282962186543327628113718103752744049022607660043792102387148869924100522629089316545640917122504611973415973835421070358414754174367961790573224607716785163006957434417839854720216591875598471424127407615333085467246687020183825724580132293074813092413911934890382230154780380956032694846902694399908110895214097709597272940007063578281460657717323838524514943549327541986408376702962754683036424959917911232722196545076271986278970334051078934020597949029902119668994604546999208371426744670548619148603773343547010844174209854915380694864011686248970161573291683848677105667706344568979927320945481312433588865295519591799723401212404485021050052057920980644457438238949259313172982624526273055189598279128909888298423186225869836276310361557284823758583707867478222079214151046693730385260011065243717848125433052960750844911311311712660357903817379970166253619166491511057746371744022709662340563636384527099058264976002165995201025710261065154984316318533208470701152990551376302629422409490722816673447141328305493271114931590919500026613887471298841474423582377704562978508058864809126321026198579939152668646247487060143961903399827094287048305499207393068818705744164992529789118875705204256109104889604953940761785288324707155476395280530655831414583077334938183406050969061073030174897910438290931078744330370796115424444972437035258061067270875883174018652832833389552583191109198684709371547658723002964518653325091572814680922176619247051536929077832510638678582206895499193791591358615979599693668078084438412972231109336353016569210465209143010778205292145599305042493976699302528171287592924342699746539791890963815050977939044506836803856502444091396208945965865390616131915122570554866946136769323081283880008015436049250734562980509617267763308778360450202091950528549765055256560585323653616162521569645005319106574157465106040325664938051146631821047929122798503349482504842263654751654994893450952466644329993626517850128205577954144202107167836764712115801623891046944620113490601123111516056566168819524890234147595291444252923795881908275437757460337748183196625869769750732555203392673820924789668309060048475137932829917982633997089451036205450004291496000057810529703249149472791166126218129112123130802269846339379443599826734678936478722513165327573400387269585090524402475997655528260599455188642094035027405405666282504110615880813334611555199942123127377901668986987801845510624105765692114223381262341323522714295975711038367407755164292606428568289020840166390924484700334865472948038262099034776631213060965796556352874517814096915167550647679971498419204949374940450032395096029283359687550822936020908630874717894273206301125220282347660995025254420618702173904592993066045093366313424040580378323317351895388769775888121040991594954926645043739136362151633854538631745015198330825108178289010208648424247833316918412278105635340444321358845390479610595546912568633796515801159529793072692610967441672167470393970332810096804060600032459470650968403372203520984680205529594207291680831981117312490356758605172468299674954317175615552919445274673237500657255295886729999541512523399685771951961819810015605225083562360369457568279567449605621326443394717111091331497535291962122341458106933594736141881000098814091060151761896594461855296852560774849533461172439078055453036031544276364910295273153116446184697892794889691040004941140845049522282514603759920734046235692201034753314615148842598393592439401428043678949121249470837571941890702938175784189543005722335451760487914143699446613088853382422388723883760907948343000730728187090105419588693108368558426106521125370454461179987042469526044822766773217735001218877004213279483677209651459954080449197051478653907885181198442633048765901251921946266985365790903720333144152115856309210356817678480543312970219068504170534117254744883081555321799069427921851168032887797501436847123015918802208328236964387215223478722386203422992411604119390335954800821122472991691187319400570080755856507061306991470932898509148812584153246339627308170736305022930493222827676845410139799100732846491039362581465751419162584062934315423656659487484946174302798961199071630531987931523414152037602429243838651817387372822828010524675185433631864003982663139738499828351088792671818242940361017035463444772159069808692835167514002326379938137712016446335726222936878572094264060420454269132925679666668187842193266337447240474412459881336371709968693009551004309178231426096316842146045787952363066868676942330474291038037279697136176312994093231466110854112845653333052448416353924629274387231740034252701494650471762863919031418357558389890972612343003998261562775760628651858018759642452472728572699583920058465951726631621833973435593002929021018791940667396678162938920437222165058303304348682067745975407255051415592684003084330712032062425828523336228668400276886339162222202552193651332047059589916833746181895064546256512522675426776090988354402887845605796673110754286599842040656670196410916440912170513936401830165281559072203504431010677482741255635919369404138580098572419632607362842801822873161709779277792382813899359049224500535724406696923982974311130198306386981249403001287489011771280310386926600512454218735369463388518968075550437575175068207245794473261553640216814556841789290246397919181235177799724249684571048626280020359917868781861238674033579108330537929086929318630251625943753636231373123827786001912922406518030129012676946831588866693504487774819552269583987088802324955356615445748673880576921305927648363096526576939032444843191198389910425094800951024481570140457881623855643880896361214543540295467040686329233462695356923667250166776550507516138220065011542342078937547802748803501384641887550042952129622840805438937647474337620920497039756806451064595595924536582335109901812262688835848267479085651566443376775316244537023490051700492091831511926700584513492176312311658171759151933362722931239048619552421584351261959531716621009235736226543721458046457217836551391927828227302713718552399271004092316651676556026365978681868813154780386378104592006646885069559618869299003517158321625831277355370305607501465808950321933373292490945051617363318890140694183697839898754014663067971415483788744927788898592956456312335133523928966309672308631791805421722771978770524517684302090440654715868253105312176912891942353917894207412634566091466813387055717350281079046539500663553214977649448277464482313485541960520474747727961810791472440612214798204009628571536524080692391805210433592901389894409846058488251737830186204924945983509470883679066533259484609007113988682631636328287878213974145612437173783097982775360276514727924609185231043517917292969065013028097397268874471192558350841589209605137975005767973621506070642463122037192191919561542090788111065666462371276106775771172112775071321341428659224228591839559686940865991412823173384258208102670575558905908162081799624844901454409317884004415086836247501590234945530333641352656291035927632219153687857054346189304382036111243051386210764015193408162451152672203941163322889824655419387383709393251680899855289422100815450710913942191368551907528072418691922414738686805150909629805343611280130896387365975639146775761702932447632567199846477705766719611619271653138109313093407412804680867592038731773409986600561503561257174442372099373831466033561518048520914290625633222827978664500623718736178287577968766039555143532764453118184507589643841572360958399475317536635261521670202733412571313104996169845175262437793817848846258487233941758308285773939551116853624525769187583338320721755117223767001225392051040024998462408360620453604293968204516580726530437053527122480727007154414611762315078773771479677048351831179595552094205634372986896574432101976347007556494168852742067167094238132005818312326182864136803326413047768143416936397246790534613175334616025762714424766879685274246668179960608280403166431484055617239659035147202364359250722667643138748709539876618301568673679447011495605179963313982756942271940608780480932400470017135059627327161835589868752056328796170653435078608727833987033201963342813247437636066391086449978271439122704775463156955215206288518854568599958920784270450741786885703196108671726138502901362294842866688363698398865033271792268808259465681104597673312462808806357999927609519649050915405098584536603160004910424952816259937095871779631648696397204893911776493639994586731332076635976730490836595620346528869667015538303508195697485632074481169327853202976406241325937903567036804266009133186212237925746477310818744333915277275467322563632174943115408782964881715888147092804970129886883148307734491678147462634880953126778907757255644231367078455445644481037240950633417748149660880821034019162339570318145742325277913407083856320711569779006832595099307809414590397922914628796843144209659495959424658421162203820853354614741174940624721817202320038668854824580807353363995929504957151479643854485828870139563447165698957681318239821286337308718756591760005739611125530733330741773931543859651283309521755428018407853148515031743022357771928734045756719861649783783660299518913054157060428314146399900017789199558889608715922860491504552336843592238933263023007615917844228617084845503944163385627916217216433045954358419116244010070066095907318755925091086893680069310311495144768389673753471939708569232702117352509527832568822042637224912074280759842877739549764345266981978389482094523852754953463384459557410144556190035397982493282385521438603905417080791933057919198361012690289527465411448433511327947624087891640527899271327974139616983093299825693148206099526640244206189494525305442486590149060616201232440448475340662455141454130296304780901625971170299659457948197823448511403801644262770866301810762806837034971292113140691856979292799623955593183033867433835362125689991371126426295826519654444320431124638555867391049652019809429916667652416915419704278287423276782805577607690522784877811580781279797558874181309403203087374608842993440142945085389400009791663740689173256220861930787634310473150790966271093656238817886460825295338998551693150109176693258121768343397698684597559299590296626293628217789065693396132494637360176383631710625947361541229601444265746414555738408616698387596421666127021093137379330865140768829740425976103628975336691714863357038411019473614456956068867439504922952099337635493151862731361726020536569360556929167652319985728475692248965578755419164584891626835772302178442008056740427335937562749989123726795983650813611240747597032630419933094619675782969712938057440280857783546888238544775854194188462687290605873513172055304210186423633112181465897931850250968837060045233217120567746753843013326474666492135236679219124016123734562663837163368601920423139186829632049987074733169433856104077904434450879372246312561023034878019487853287477348988076085815237123325714899862686277088026502865275137209327972055743843044270392370177182027324077594302068137434770874285851818253714453981113488832614750960059787534608988704718566498208502758741098114885903183233577946321320387112629056401506489516803810916527041772791361556220214665309421446397098474404831237854846277549917738259628096314029254559959931407835707987994509765702195702495869291496249952223177237115341632059948281270336171911447813777472172065066210974702822554769692948753254054279913491900255691474411636027346831622341840712842392885014967634883160598880333511545501940435762719101495272664175157025658887181443548483626303912620010043096425654085069004313578068054265865202828691031733723120566398607315711571304110282533602110610000200499044232103461567986398375402048755261805266284008037855598980989085994281732355788064544523352764857981589553497696889642756749645391421101421069827409351673937675073299366648952836026945907764576373683997214758933763636037571393251402613619324065730057189299429937559305323364714414333759308298617076753149214993127813714792860244515121389441032138695857919632985804132248951962151678158545938210635070376984853976139878734060377029554148234656506291249698623966678935948162421527337286544530711452048240418493350427676204898290276648605703688244522725042131764618521859166757116771688375216586364491778358680628822871443777244075981004319463189425638900230796992799037987726219824492713323380666860239333458141355967170751991462596941271342469422978542837785966357411210102352770144351713411682469821924901377931598126820508758802070269871279620716582651619645414159165880680669928968188220659987885845451846855193645224443395040926082353091917048773493218550982806650718787148987438194098523640810205771762919834055967075667466379126905123731459763444492800871320984664920571563356352599920173357420057559033273287940535935698131818665018763393432562163666509050626329356303419892285944296267664688600383862515311822788430477038251738211807001248815382596541607144974180476755178468009848545809455579314340012185674008339684733553139374659896702977240604414372916742716882366560011897663042692033604847847028440595365898421516329249767375907307175954498825830913216939476824712785224273839764434400854303958888650287260187693135288529593869316393734538381166297496018935671005681097945381307077386547911671005921133531053579730598880483287397262380148650017797553617206380075340738900590202708406237309971541591346467526594153223484917807753311479493299993230763990686825778110429777563192640563237304002597366609890437910170156186672664312329686976001750890920302818768649389768070689581952923245663034520812372203749455264266542462302372560532259523656746156176249923550893839073934144241627703541691608070966443211771979224015292955550151042864585787301907420776870630534895129642793127800516190768835647599529154342159525005411575522399029512400230457055843039199206348477473454630240688023815085628869673418750084825340341651191549447614723220813603059740328248327871845922370393045783616298432123042207605696500033911458858046827874701813740567861808163591362238492300919964386697195050093303104194914949711733852709023441062798990495727637090626042585986334477731838153880380585540880592989064745446649482053505385095033706876541575288226467556412644516334627914062988084488540353339964485570988470578654096083650039650488935063380111059608639943292109516179039448750606976814795585884602123666971814251444222042234445199819531083311331475347334158441601441508068493821826656803414294908063774549850302717079833436096613452291820065236359433734879276283055037691835721044782676898830945839362479867568307149765751454970324503736852596062600718076293530581166235875723262579703028799485031312004841901849138674681733041119440966360011525584314591034985476706252717942185220890031859094978851881211417777931054860309830843269930849058927044202733648490902647340503762543951290957835511857285921291724905370079321693450614722414091966664876698348951960956813728677157820070855510484287677251428836591724380735240168275808706639021882475875685104133653159401913659086401481894894815115127746754069773217703013400196324543452625595677188944355581066975055212662123649471701687575824098711624281094030554827062621481573858967636071174977330819169790350085822843571256714366825381592406062957906916405807331984162499545800481134733876958758134942377657998159131788021403710417171493341410864120479778949992091656640055575661543591508157160867240019736256654839935624778628911997694778589838146726652064278909872577262608380855554456791273840655074872102141924772111232039391127371421363587837046944030866489814917334368776897447217624878194961688928342487505618947226291931265150253354758802516194858121787501791569813717819157653181669220267675437716485846018289883508027377743110187949255190637384679229979848775303901839204104526394865544076784512464759195144843255232406744540037409214196806121254836163585857414877897113216560495296235173330501233751299925265452527953031986494716089516082976744752157980380286211037098352769813063780329339023396407617695109350761812188768684423653961920714552879507578412523921323222109131157517027156816747475405487611247438107990226906549550805679038866226406035593948428332344264388866139607525604171275090511331795894653219207266143538327275374846981140734827415442214641047088315227644729372172477056431224865266956030022148804558376018314062358340598319465978101952591377613127842476502363364148000205665638572149615837847033265330755803772440166607096454525897688899110128520225985541571176870005551027075476404078522221914263229977791958755882630231969404651482833237728574361300406114413530599572711907889897231886239470162580890539781199377054191116314398284920195773412824940720101185381421557064724976938382120257811817223222722315324746841389396859075005140275240473727419313456588137155724834339578464076045670982460838103020339588591091513890094195130555473694332096441943407268014758467424403808744162135196406893197363297202277876269552380064482166860377525624577705089658004164731397796050329429871155322736048453651343567419604470114380923920389151722814147175751317347974494178234798883801504452482102630473626638758836946812810134132000564549228929434430050466492685618581267418143357864362693246667987665980671515216174957699262487626749446452297047979077413872584253017421928604845201133845677686310447425356881282052185100790426491371469057543982295762660161794986472777930341424919668466954283750174894461794990365029611200482413039563057089067644814045862141018035317691814490607434327788621485908965720972033032833520061125352901531681483074093430055839952301272758863409784905387889435243324961574858842679996035728453039251665434659936880265173900094547864567238814011078560331217285192009398742631494647358107008732767235747206189775259085511101379218105229131370680494145532708238875197529573889529583316238191120025519189293543856718072418619934422109800589272713245115279848598765944935916002782565913447458421206835312074761012934522356559627146106681171998197622358384947380124470255921115789906484489338879556900975329565215844931804611193263549643524730713474469086805762720666510870849867465596532013340530167215414459845425271152249159322051909805151442879586398767937516369198536934753995447556416232238115210450926930395563647341936280148595842949209917332386301997353962407177974897564146981358895725392123117260211007234337115894178801211598358597464550551678941518639127902949545316507160152749836393632976703959376110350310314367755031279895249850542155222938877626304548536405154699162817573805975273725371970759992068997015922410772414030791304973437729361097815558524975111707799642226340591666963238370057770679420309731511196944643410208263123251776929517880676304265364651321673910972463695628730753607509432442125419338146156345595381791434547852759033503944796423446035177387768859830684987228429715681291600062285752739647169945763901316268704434114901435272282901738754450434255644204861412707120008861033143890397762483438099449145817401556442929697674974772537799581308248685804239390036506781873790063702094363936274877995229224991976700296795432929134059614011781503755228594270365131087353845642070655456481455045453835794292518562048250161344861923013779605495153496823286761545786165561437884352804770898503868311160106087059125361540929095417323701702517543141991686324176651965840752293275251504726259624695326077016378777605124281563197417604731761999087397127889789617081087751372141836141615259684741781804342113827076433389265490178188835781015330076329654910513847683952757829696670128847184346173076829556343363629936215112785151184217769763482435066887476694647396482669564566293264928899022657907828566190858667485035277379584385276308993648886242224955577974090567072558061918424272652033265376753079004749683199545231483050467096954561550467669621242240079522162522573405714433141294076583344144286615120346323882056679591216153291555408879024904565013042029503999156420422759181584337351611120692703672557693344582755827107371895600918653123896456841894076619085839250539654963425753056573742274332990411362071646770443231982535662628824784373282770744472127894064161546115023626714889419058370642916377147285535931990257020006725411830490981303631563247224096754071646581952393418460191175574063544463017522898261920423939568499159366358389469623827489946726554881116284457651245770846472580874714417971411389250336486980692448805523480628873760579597782060765445016101202579465860605655058651158561872865173369128183731337916222167477060538734391540430954187779130623887969491834826764656393072976656410080060356781032632874641390635227258651350158427647232505928385994214887222734567794252333927649914723619623422085066770746208722543632253533877875991943361110874710764411616185757521685096491449817228013969890312413718594081416369843622486888300663097723324562678711224413099331968026376305781245480707174223947121678536101954441373015610358185847490125394528416195453600993383211930023788429688395810548888074719717833044919056957897842429557675606391071346364787844264396835581788164001215466218628370884187314696681498283189263975452492677269739822125277412111300701517333896600806787112422905786811778169417791984146699049223564435241422642436178113274494598919160961814792307554619928231964375817620731761055007862786368802227319385854812881727824073538024051801992077956070463364287793124235879254671102405343568289290864029540556730518556033900564187378092821360598414593404285469015465776296500216172544194115099369724512805527429034281383320387317722669756648847534416573322018658502992064867636146304045676847898699969198646320397495674687901379230412583016148617279230264595027031107449118954891152634091206380749222421278143417486517274604607267143897249706670339466867550065554478622770118633097275493144543786579959548197772182359507932231193842347406125945647449260308491284490989288789185782262604196951230374332648972631987173903799898789841494368514089186770056108077229583772924287593441901833014366932081690250749681641850853661331814841391673228203267358582639521686942509956536450919119233523791423870052608509316897068396802959225302175922665971748733619814211583143649271090708170415997466872291557262695369479964907185085730041514010837625086935568375180507155774332198051638735804933895249118672149550306800587714746023327098403375985553142548130859003522184745597923525371412418929383535712853999592794681927495565278980843206112112555795308836048014338765182639950743728491251863968211986897333208002058195433361414159998565647273172152009202761462145865990462933155679341222711597959744757098456797561018438076254599393847104502003080793838139880174998733655796902303003069342541231569213177290977575961520327876034613330078097322416261402214543307334822663285957770051456581338503869733224864615982800402610612704696803708071194149216615341137290446307486555566162920165419320762442870927313690386827800291160786752220119466016581197946621807096634103621643211970120711029922685015522503942680442635236862167376304656974157640874243556345304987200628539015022887358509902099498369488480584458984453059635553734540176663547659939212409804292886077185629052161264582110755521960586889296481469934805859739682414519664716499855223372677037032490378320518663499275211717816671007094999176119657447839002982241152583825236005455730328388304006653984251891187693255219468156253126803287370118313177471424585701033221784644287846074693051019197072947175858887158515092959095026559243850896259048687390410278475521184956651405290995488305961192516402003130682974481077254917317616599588880973893843468554214816322377066115757464094698031420667707581365988261649816889540145472639226284613496790668551941634469292262272214042105913813642200700117713369858579743326990620793975119149730955676991428368265271009971071314888617781869399089348612713093694007805074594277771871235009896922140731280264825775869195207152436301141343565497813033845992348351524726833556699952187645783607819873409550922491290495274508841280790943615438479329640123150297225220038378561216932830259519897350572089541402379081178462389389951895727182380690212309152751535528635274471895204698372065710045125814720871971636270802315169891740983512747364179293057194942426781706579384762607236111017849767542612697110315088014287742364515503893328349103028610377475573093463400042460205915782182423255235353027403010794905695515866649045690270994203482354103192305898420053094829526267623575324621608206878383264555375171300606369116665554729203209080168566818057671462111983369789916365253212122385249255273963116789060050154643752071983040736826989201093976305622762573963739675611278409490958428258424777409462929705410813342551646587747555806951509161257268391952079431354665941843008808530612061449451321205657939939487783875787709033706909688077620777349185633246147050148034266465232474555805687737900366284581329784885883251232025518834668291878893560757061760161913572936014642325132168666995138805300605212989290035376228058331032790064226489968741138976688817624780081540404547177759635319972566306312979517212599524529480937937967338549678914606063067907777357205584588090984498632813589420298253159993171763489970303423276639081687067804167515234098126311033607932899203144872588748987719240122216475660800865535324451686086950840278921202121003657148716815001663647630108098847744613326319591477052632346269042145459686168426982317814061805960101752163081497741987651404744956452799463776644482178046684558041768860632937935241086604074745208208810518503378744738262236700120687084149717506670854767311555004864381855440223924037343450909179678441145208297014136779124611528550069572985877722193350063393957925570273298778228610313773927204544783496184466276494305250738690313660450445157364500925279811238208644029707668349575944964118901471920725141753916781317926338942258084310540147874326107439489485645551096143197562956624720231931131034173857288478581707488283947999289373692628475462502666381869576537598173618941969919490566558847219537122329074888547588818764566647487813311218767717216913770488680324946333339707943554996002686602984889440602223320476099740998330056942312204996238588215106396902408068738422845946424610608439605093827330131413990695208696002981719824932730635328522165338287092959727867088895742688684614906651825064795799268296805910383410124934340456071905411114376841314822450866980131638017649348516882135548318739531498308332241111963754569628119880908099690983358032259792692662883962923163843023568984578535106931097939645538144640834931648235914272781890195683013794518401666642435695138216898619910726677985897601573746506421143737109007391480799944314985256489119043189738943387134484320150948497890993702474469278219127280000725424034802879981908177075217163132466672967825910738923268203200528618015617130833931576439758152956708765001343186882337247354886649600643444579472130779798157361733531193704590827743058229965404634262329848652271051161113562125676715562874875444612753753649189307092299896336927164607551841947692648871415289823546303103763980690070257254030711862330153304704879757328683773428040586767527312413121775253845698481150391749768881757849777053354884412124062009768509764082720573074229978272747539605844581453864107561936345665851463039934505431550226067254535160000958986576202390811767513035940565100057563977616227460218630658065127627949825100153206225899265564857651166668702499348203895928523713420798644210831143572716632156985934750476901864068145101494740019008649169961800577075625334162594215355722005594190408495246583952101130789077213206005593611373934781639722689396604451094505284946366637644680309043394346508630379077698665753105860589370055410502156502979753553287984014730628981074674879600838815658894290194232543299415780898323247348526919830943667326670554473151490303665588790808578606764091591002659746533180430136737727618877848095918799077825942573298483520370820354599390381678611672586184232289847294751219089084421503124529695062406830771874388123184284670661590249505431844873268852181131934113009756807354916383245459941862990834140130172966934312656175619489517067843584260049765987255874607512958726225366284892751293021166040446305805934866147314525200445911212984037428779619006423987239451568428458829700002807234041012294393484478021948300621829945573060608630636582503574212635969441117286345231753835669762021174925233974863617033742672065906261778775788156083049641269341064407401844963951957725128702835103692367748041480941120460258347523584336654172452190007965721381441141664593905460914696380750881540690819057919505223734885990873318620332773416076591711476160521702219438743099590969093352358139211981336411720639481945767675401906901116904571374423622801244064806412565268215928181059069720440849089697314829339067788094645253163752946129150101636916988966085147034521712956679145799283325612238202649866644113076338894026957275265825765636535730142889055371174059630268374483195805632180649114645655637524009696545549886411570530018370324881061458897857288061235822418722423484908180107586917579550062768213048522144038340313802005666163878904700064569870417747345607991791994106899157310534374441888199764652855624574329135850957861423705776550338418703402702866023057607162156545059273789344812606083456722482109474880148194246484428254129602012838868247263250502143812684659165803744003029389070296223693006062997658591967749043803891270687265867108746869799489976360027789136573204168553309149219488891811591122224263212727841812267166692147720272584262766191809198757222535871336876775951679628122141907556370419710912025474888487423103791907519835080273009583867737916763740971752179945448877030600327921389408029033092208438087405341110751708314565605315291126966195588626398405454536597592557589851864424879762573311574085065143037890534862905900241464363020531248703541673563638839096321415603164929138656963859617837663102109992207028439080491217565795710896211327562309497174809839988296346172357473260824638923419212696137100608570481961897307511384021830541506355292424412451400057699732524120113673263990007623540120196840720883379103464648833910252888495975980627916133910646954756446107294958598400881473513957226639178822502271594887400126842724833885254037710297080612085058496777378364077755157391090377854246219365473635401964247323110634571513220970319362726316380146334010524213949910631725912872088891791236885329254813382215930566723999001890142119130147890409316716983445427851102831919971176808134801975047455687850089732278834579057461198659596844251094412068152297407627217633679529391636189787652313960369473556428927397911793077027031966852300535662202880734918398791549822738183270253669355798157620750627255528470416545239892024087662761303518234060990910654889156190091272227019768087733719802584417150288246849650465526403330054047762172264969545682112619789069949304206104058556469296812788887741189468183103959690902470207288371499734134644091957366162427740263992284548163700017047460535509676643948469155384146741869122211931819914288549070266238975682353733597530708421317155637414201437413983739748086524938153350822705194403193232042375724454504537777145265043995864499744855261990207393378593708575177656279121153882075166188902043828289126916470888825384385542129122657553049597390302105655698614871309465675154330756466922892564842373128153006292095122893905279329665550549899896613493771355836965805567319922280333743104983409127512376371455706506561093199920351374469322761918771524385014456108222521861370227411538540539553013532139282982521605654099890899012432652287871508166749693150694219779821053665582711241339247110271424726800255817439329089467983155385309742575156506663196136142817001402855616557107536917846234250598812235369601841255310401795795675083266963175507323270290766379671783666376814535542410582320738608570846928974402533844377192781095579391089532636354979020873360241012998478859933301043745108105645981312364472501789409551976206869095924010650927694204446202361692462894240549997841380894329559850117218255559816302928783333248360209740863867041026137456329098891130246711650304202205275281553944155516430124696371809362353581430428956981077621894334010141832573961255224622746835529379199170440667337835538900626485956179600350943348580970339389615206348998924232182388061994203925407709199428689701001931426647711227112640254496048558285456075924308868254017909646029426548109633747552019204628237165573044268587062699346210375460488394241075508896978558915019351063134636301942111527623406738862781233738264368559511825560083738170046179708633198643632022732675940283332046574878273595363524418985723618506929060858426863280672202905440925507573383584444556744790250299826220997210036133717578569680481090683282087730365461875060617425800173016631557965851111764128953690117572134229432756904168106181301973511860152445882985419822484152461537472713758117356111424004257500252778463971708435869867016013504688927738583478325005969774453862059896179297934417561632253136074142900165283450458277617163472034686296711277997470143497817864668715254152152690894796199029859483382260421044017076710871091369101123255394378577436432579448505771505941215693918075315067484490306645850642928124512560187616272497418107726914802652830889908664864827659896990521790641219131086116061780012923657284885475107577328652239647313037504791248117988196052632608231243469462420448289557742087417470792524552643107842247901958517600727430774589522067725341096763246086835867829968314902388952666430782090648150772159796316783576149121724724797987306708583018232340506628804093892937849223240965406905100107864529082668448447736571401542106933787218232690388474318288651169877763514045806975078631583348111566903508665734796252833630459531175471484681741389902628417316030607559724790440840436842862340279567689751804990298567643103008729737607167691818567580116053625412969259962126097978164705471947549872437767599293293639649639534561218009037023135258187752867073645470864401826108001525152376526359221638194305007271358235918544306986179458701081069342614539421492108319450366105676851831599537947960930236726508274673413019839805099891860716147503578457815525255166773718836827111978280841441345863597745526379098504912161398089583830154822456362031177384264876417746614885292110106445611594413482451770558037337493536853791968072270867186836521556179039484175864345651068992636767434412463364844692940381258862376951521292485708198618723844187099794530793080142193262525535537648342208888546230574817454661459808100875536882814760473979618766072498152112728544835705206972766347255392030189437766615044329396952515483703055013892616835716183481949929157195166310171702593707097837039495889862929497663606638706993332749296934552593339027729736852120869256004714814750088696796769748418837493063414085893395394580020285238512062460980738395071500384265179885545522096506856328470360753638123860987804410317249530416943024484949058812165938853018007178087720977686769472491171168100241092359701280960561695331339713125911429205947598308475789999332679133382604051943614447612355575206167851590114568238359628917185399633258255126708022171895068376106278325096444795575075491506288741464850231480757852927381385723617592621292285921615931084030312271301619999290928434815110709775594550514347958249494165962901349665923056457980928237791309984076435446188126224144411346205934104618381889777656760082693377136788785069082557926820852446588144976320983509562819195109909107149057684470055220907849185178267646766096802116899932619255578223008970391482872491627088005331149303068360330161891476691969115399791050016030806879055336848081799641298663943519160900482337010657173365185511149197571190383468491365169719656951674149133568523835998523261287519859311185953251993239033898321934944595453443589019553832387555744223117004545948968324333313479460209648798563141398230472261829801340177360657643138447655408796405857132330933393902352552514679011232289788857388568877751703622884640618976587533628487547559275826731396424128595901898856789004426137104888871393624396941866945906016085603716872643471927776708452942417125309029171608974169343413793577993851501287020623138148700598397773961979576008266454768381563490211207560076617642024689182402250598352549546286599224310812778324069545334621263669548435444969904995917783003484990919917424896958689787070897728478948474412573323301710007739379747348639029571914959577863862465552071419435116382771889298959023310385094968661532304446493623296067666346082761824549972117717578325969193807024691153912591512153815356804922539676662006003132264778994272763994817893928135088478539575061584353547027580195866350317239833690419198402199580326099515581789035111704104380229323076886769429376429202992152929042108073925975480998770111726564806361168001814424045894217448047973192643864294303835878553129581077679740725954852076098809200967528566208079907058927107381513219666838539448912793158346206403060640237184812775642507293455374438386705871135808446163310262396971984944703342680707672983488119959699365578779618942845251766594852710827882492514805082190148416824101574094462613758045621416575452653341483063573341294708828823707061727430966810830618670752806111462714480265656715847971434391952889527563170024968087032097432792437672032800283266551313475941491477575195662639480501486130880539604729128582723133631634380855510146582119679475208288908862594186963688011948930482122102462497871338105292329596550237918926851609269017215078311767622135681379360522245143192650683276932773784844420100932000547678738035568311710294403902116540293641948199417081623846467320620534803352660412416986781453086533465772282126860948773667137860626279149998005764274114409865177903343885390398843531941879649781189621253159228055776213622538649386774102455112364635970104263743360670048682043180990958150683698204877429153261528754543656687734623633087834171381927802683153053424752772556475715680607955772447683303310278699671650213189954077488276502223101470831750935724709010307695734521128380912323441275149299901192610148624970844540844033240474161148537075327413098527764551529862503743723915725055280419303717702846655580350652574856033260142377778406290297027329470396804415680910834356010987793357903877782599146549316121626708155613843723891214197780032476822715504074092082401982277778966563360544659222622564516076793492148748272256852041163225959743449482104624855279338537054152977996377809613757768094370409065115975027670296779999870449426333046514046888805726463236438256341016294353862195442469206146413583677915186154100816843299832049334321008977584242568185020729611347085028409407351931595820184911097742218906224232085156874859177721364381991148264448301068101838382953682366431143314219712629701691866098830564994366241952166563565768288324918690625358289642386836137724009892772831319539852994212467208162965446178757028137009745142589552255975503033579891007128986375502456531351266706409157836906059503683160241011986520605964912718578502633963615765500360243661183683378939488573907463371195010628826409313652844281112846548322560132560669622957496555290437036291145950467178594174603722867927823704957711860505576565154039821298349219353463097220369932330225012719014692040675497783119182050802895327838693397315831742243831120228698864042600627957764766964442117681026668955727303604751901362524530137179500054794678037025184741840744018850666587102935062797332897475792446354246297477288222148920857874388979911237196995419907378857813036971385053815652287099801846961305514686683841333237424631778657749049491624795960874146184673406772640865533443095810569252475039956971728252835806024647248362594318128826322962479535172077068812456408776943529728473189367923311130932180431620853858263662099686299851832766135339316230019551203805258170294535533912347810525442980248478942386488976109437453137083189316379869587389033647573259409528036128798081893540586666534909194299682247886812525574310398927970058337740600702452512341902432667337176457455364113679410294125293564592454456255494631020418651424771562691651438793219101640708299952594813482673659451220316322812533493472722653418222461482846749611186971640051129986886510354493542154714038812399165266433765839389747917207815444438172627633748268635489254920971412035597956535246004083984331102318240214714770638515553795530111490305211986665643109416192236798610654227472252050431484811664743758748175174660054931586567486950646846687941047644504298928297935840457600086793726500585202269433024728481010653083997733922925456382785733032438280078322934254788753067594489018932109033447914253418899054846732357364672642160015272045565106509552272485941920862268477477042160017985713962620048984101057415817574629271792594576249990804230746893918183288493893542241215832373813170251598850044171864592935537724795466042376664746451517551886534223388339829991813818210580944869208964225599323606560733915386130481361059718286690009299077044484317768207655968088742598505392333825457995796883985865909627994732458661303236029545270793673669389722822749962842788367346304124549705575950238391679526705900021539635771996216803302639351727297546092756223072784862339985077752979277585332083055431528521484359138632287657629588704985057368226058729517573271817427692707808648458120841706988473815025177190769998428759951740346482502639329085964287303367985098899244587074052497064738454214188868277092473592182251317972085503900696115188378617182963684299978489326615230447993710989500154467439885890865069135660502774190574647352287448557380964155968524370045022532159616470684818957334102566849511332733370249481138514926438529563803477995448859693684814546146950112292148634490274561232121868844485636290104317017317313167244051937431244973295631124906529885566035125425583761508136892606987117807013892475700506883206927765652268119909564380625551483461202058482834157950647735937842965387639170900788180698548974955533927580432243007504417263365702178622137824829791401395288782022562563549274820928142258747459762647297519264019653604153506970251405220633456166031576791249389309219859883358273916627500279736522960094336168414658900752089908962369395764187907147359248916377355936003645736732152631869536796507930138021452050975616898112732116091516021665361237636704100399863556098449464450776095533447803222856587063132953062939776786955757836382968986816246363850862245364335058972997792353016388049084872953693906895611882664778754010553943071083653843097638039203479199087922838268815005947904840430749439233868912479297683119370659129483702923849096556952336927607847507892409551420875388548302949436904562919986496856602549578408066838537152402688174184505656538898907670832799389291199478445553795693381666857776102312179956190918679395946383646195755558801455284584084712190503695754549617161514831022176922308037281088816778517249783771340688064335183207868087337275893180146941150075917903949381927026241203801146075265864108064990971332293307661080890265931793216358063206065282345077616589174414952070688674058746335612256430857877443693672126693695164903641042525263179649748457466936559613254460369895957764018232936095128228080019189963940405330535871261555152511266207828097112831172241190505318317206651775124840689876673503942543267368459399552318769696081763777615101665782625028970226195249561251536226060067639367623512772996995338394361771152870374318222504846109408811567807314868524905474586015662937330229044867859201022862288417578135075619837278175826781366203292719874206075069189998363539961023684728481478097641914192818801085298688390686730698495490875865686841955988040947060735140150382529648953635443589042756803570734292623588794105049358967249305638401195259419636631522887569689150787809323573164201403650017817882484761114644138264735570699019550984520141536786165377296713662152755576237665676677833674391841181010997564761964343935863865341417476826185292609623834391644494733159661610919378049998793070310022903999289683421336170623065903905672950531245700014424754175160593893686719383456151418397331469888473950700752063873459348039828198274329005242397499534352828284805210196741923367010693455127295184753620993920532769423883282444745304636495592908521262202810184662303986796336102768859246528802824970814856364055877043488731927241228450910151918738142117624916421673861384430017703066980715944266698901271921353109883206497255702080651975801677189061616845070556424271497130980729341460822546104757195802978748808872012830698100867767852947135967030178731271643270598656016646809628750569431802032633508315346833529526165086341220082874510152270059700440999989423828025665184114234110269810984321569269242501396771846625619013458086914923261166491152049601925143223414000885205696614673492620257893480185713499508996554565294187698791906439077810946797946769245941323825141762951973446131308923415524200877447326032981972081991914883406204380331293228661864346112882980904061162064954162574032254924292005273986179363707252267225999282843485734737803432243199707124371285910637735380810035737940653933860371223252188150862518756942236471029168277742111296909886955152092271929789030840045475169725246352706269215347565261914418886306451051031980243003131131077345723249058008879131554019449867361799666739557279969219623114011873119898394876686945932198545305848044559789033811835950473312840254734574065185783939066277949623086752795178468560234892279937454942845901547203199815925206812110204647844855087941686282658040527080639446965861219510693665507783638766762775900139931650198962518283947271499283871474932263567271611955273670694117147170221363529333366889184913774508015354847142510693502872590512390289319273115929434404955325768508022537606600139243005284003824947427648345970136235898921806633944603503540014895115655715414086438899511884377477150810553729818769797863941220102334234645698751173777459729185850754439625810466330971418059677191107890288812709120611223676977227916768602035421301744567115241365221746639856508482531731761522603565147047080415031211169545631634620534034631790808668446722535421828527277825393322119750337457538885335046534992634222506503247492910108899324349639062945483482888413998031882370950924862339366928846027592774379708849374591437321240136284670722394319940000565941451742844727452194848856340693142410777608806195425054353323969269990492623826806236461743591896023759929464637856680471376332777505477624532662334536653930752892356067423700587291887075681078921434278480277759981084306725534928181136834844058435587697101375944377957461482692533835992914268485120038515313846821245059186570753292836252221207542649206873330684579692606386966267090066950611812862031610310460942061388638392721256811519525754435741959466243714906446529894160063043493650941792329741413277888510729705772155710337100860371080232077997661519561181193842677195754331449223913677793893265128789103073874628334131373852661501176061850096075417689586585549612738415748929742282224527214721816880539817047485329532880503236218812407665652161178340793615570786715327744989559066848730191450744167363534771590904644138573104669955631241320075773465550512214297687148535850608224011972458564018608795632551899332413573038689104325313037719942241112232077074516715820638492171683878048100466057577631018055279274325287822009103543288257210987440577627676600677462812242340775462996375879590285886878941969377395330172347208980674419921443356576144628969511204673616333208615106444624079851274222808192486919248678575354068492744691980695899730473341534994468821059487147023885862857113761419570586400179925705459175065532255377912782413273773793359035756622488385327763253543084543334984189135020258716739543339648791758309356512459728886564023207234593231383223462114904720386449865099783638823772241428287747843380756056481606025537647532734030287457644116162308983805698209576793938371998465371274708476131142206418085419008420348844844942789345616878514531944500450213313609810090699886543834532162703808375765647507433662823329833524464981433438549310224657025764215822691718567386512486796250260739246335495720163544735047657110181643249019198757829398339125101857022483050362860734595661016452199945265575103254969210828277787932087592415410578945540897260847732902907570609627815734025457191031626523346304211795202898595998802682693913897602382409368950706252577910516133503540418034274251004282436816064274504598291222042053352345710120575839998141779609729325018178327914042193137345180181924958090717852656903791712849700740848416370678742564208108914920576423245236806448716408856177535107097206786045623527884232544440845646595443454057600325370646082784384103426694266083334849356790859658401418489888847116285440291213448616310544684669987538684341847721984340409778543136074419437530343938107586072632489340443133316787287372803098715062976881314535438278183813783902306771699358341019768178902283521847828260981128657272871597908478225196893902991875587617726005333252857943413925761353663143217615105451991261931910154223108524740858276370479534036148874549751460993543342955892687343494429069835914780784205689597577107337815465199880817411813714565793433561735295646083175852534451219830507805164131647945461891954923103143703148641076991673312063763923013906528510949009036961154905382484792808538427248422589611953573740266628783226038937449230585339432490864532174076708879327035216781836358584962506627310328051006627027086767156477958036002988171690327078652621201243835834580702758228079245244560818582291307428024386015399782912907277895978034503810422194770445462159776735386733221417728136702254406475492516466945509874030329109165261533014617844317239190072508766106124923808594144335531071066400781272689323713197854329114576708709391607052869409295635415602541649764361630595675197794928204712936880948739856354491031035745728273168115107489683478275429467440930788767484454167057571270267729826297684290863405671034517149049533305608105360043372442142387780050966399283539424479765980588129006929283992367528980383159744833496090694111032381315806947721323276970320061888966236541735242567923199119211801142833847102657095105789094654292230279779040292324708529691643809291249112612874592822621665909669685480806749694820669051071939469344228420642127779522943816867492353277885352515123205048687241724837771226439947466579234197844258294763573385693292440337448116829434552938344874108072195813705466154011289507676463526921999340788132091099285138247291600015859557982703932585759822765555450057297827097892208698239179434657734724205123539950263974359214854261622308811228824700801851494178014582170363160542346362297318672426793695258964624322565093061943756452754181795577493891426130390399314546662138869545885184144440202437526982044987338486901324127052566286603116202515188032563482565975902773109391661694677053174711321083508976374283644293726586997669960135286716967894480909536722096240804832290531615737539817291815268885617690893253943954055910824763503094856285617889662057534298319336452387937102005366628150224406169196377811325565879498404864658862770861743815843098527810057816180802380743326372668033757411730892611225735430351118693976887577162254284575029818527581519228033815911110124188985918895977799729982162313247777709045107170742246372404024613584343991762441218707142302783015154364781652653019315901248027395051011660410386659902791912278524209023818969213723712005718665295051082138740762428425146027774632011033094052255241131737312344348167355117517537351642320749892077408804811755848511060896921741202058254625784642469948726594237139332962863256710274280716342693462173131466611960256284568904919930970708487269094284529344060692653982894953836866189447716479643939276065260436216735410525023684111914979458239731436869806813717871395552823763838394195339853774085494004064431508965663515171092100371232684212888309046903226717885204756363603419549287314377860153849178355610717898572277550365599578258667851285244937040269680906174682582135885750244924035032543972200690279100472211189849296189990393433817636557858617154050089129555881730700646806411227278344944022436487001242435911356441620301514224305869811395727300494091042005352102586724026658132579473674482667750006806506869881693063270248263105349053830855046327878690086292725973545398174288578516758636355649452324364480733867963544505877697168376531203593694875567192584255322367675835988480801392287249048403759423008115759202520286715637279758781632189349903880834603541369801368780269377455576069052478732429774188846839371206529845735297629528926685497424400239373509961431271717872677097325801143559501055475268479244620557090712268647874698666734004585000818858667380534550906037509939465989595376943126321117167382263033847175749275952350885698365164144319869884824021673986104323385373363101289437899315153504392790491490678614766244729665498058503498375160380524467947300428424436958248677521854553257245118821234936090315836293582771616428862312704248327334287070705388781550044655712547768027174935552384684561052833793299037633471546476985738589883541531007698317404349400159329904006650058094223543316456766770128173125360189830436186194817981002289010654166178352113954241896814223619158430515279904667974213218461942945130009550104979021691333848467787064805377549636721304585486932731279697959018960357469540791866488193799938558225605250931449230771525360238188204794223549118747511667296061099376619332342225170326575434910247512074638723679696932046420392054358228196080216405632508568463283048837632835799588639323095660855241034053229494605228291325165059990056376907775580259359802204399316089834967431115859846253715354394156135108824673699426684024174941984532797047962463640275959994407427915291087758401320420289063966938359283326744886395616857910337716322637343540694088888747429081554910185362063267147074622070006173999767684369728598728944882523843633893105670325604936981116246839209166660272534825754308315366039534451684936000217595213927486626136553944974091576102758765193100856182389907648199731735623145774053014801179472607567360746853709024107201890840366537694916593620613752470583605271781882755597385666581745823555866117609402213694906941564952785278301287924240136347952520387042396763123469829313940227842893036179671163824828830710134980551733346837362270940045026756257658048602310617645051527387675897843942388909888825512121658096189147310114255119558521129357164453810583443978674100605714580712621788439824738805787489311536184846999364662843485611681215971054762964813555062124237917822189875476365157176549420423089754660327806293963012213809935624801625584047271367480902961431590444895192865017173832656959184484578576225133505729267408195312904667335772529336406939883250688576241139495071424862031915268526339873584371368166995079106294800741921952589961108556593387810689564602868562393650220680802604733513218411119527248760851302369138153745203771097095827038145951328188810002024441086765506543752581997518906459668152446254424221575388606067614984997251950138894624404426941613114141488593419052194450669859262351765310617524569012364761593881936479308745815057490415385305080193982889163272965736934558366957580286332239315472632123848791437719324880085273089661240706545291065492847520658001997574299928010921177301057945973944788320888989976660394608129091341515735852607994631659855903042581728047858268500361781063941346166088190621508345100510028133186505886767246253189070673430255113758111334178105572258485835414318820127904094179580005780870719016060806235284070651926849826596566230000185032571782596644527148408956509678126671594315932648101469148774670762751397327350588529038760519846028136330221061771299286727879443473152032865460475567473312341324042866524146828617725780753848270004929109148477751981764309687921066508337349796949601435304708021806878487902749410613500764576587205734542008096550995736233667440801477509043460424561107049478072894955689784732790688372589403959473792201993306479935677402278562280859664111795713139050469780518820554486972953027082722535212235384800877439864439223544940992813313459451499593445224710924678368699229316785732802959020344491412085269159423859837363014174181806870759340575303009053565525990564527144708102051651911999090965182656984300836728802736081979945882989329651833702576773883085454674785474409571725038315439122739954694643974638236869362539074384392765848578134249211125136191159551818836956222423299524211967854004692587229637513031154435664613939760384717924630207818187108341629587069928965729972220551287357697273959108003616949387356158045557604986176997056241372183216093208674146427978423792250291359135955826083652447143904077973785464462549692761769910067663951154566017498398638287587868711417338663308135533344473365716642790272420727183406609495545499496186500699431515413779212033941587249163664085438863905676165422433284087024290969440529054565399859182457460998717719928072227253042484874666376729607607465708847069656330757127677564067287501938497709889979426417602457687603143139610810050649832314232049661542043615183319767395819775153188642897015314240035860898375264697018219367213529704707901767417585716648459734226953471512694862340961927429334711593500377647075533637522190924872625644099748516598216203951476553871106287283332325088771875877124830986308116482082916268663112765918431465910467590514851737931106668817555193900513729028299956666269217755645054281573630704495549469611721183570202980068368701643318265801085220269994648353386538685593777065919524278120683447282850223837255501107478127548790650238664556962851556751243131002943532871480796744647543559233522054409462255026620027361589642803492566007294119837526449452727034627030542027402917895840452074561942890280281778963244436336422958033186459598980205947753795017765332065233762404743512659596515574878343099649772573363026069505770634829150495783034325968905546505485248377679358342375736468989781121310894750808590180015457743739453699977100044548329138869740112321741427705061544722005034492244230354440795174929705096380519690180527741083649593417103681498145161422265565051135506017256259272056200904842233857807678696078710972508272680493791237528632596707372214642110274624637166478053086269252390550470535214472226208637480824226509830680165617864694469377924280469208889826403286134352034805003469817675618566661157919247731778524862421708552945223401747446575043057602076957598241589052520709301145647705590933856563523897996978728966568469767647258709558613655378937992628115495802430813041745276087409097732414363168513734226400761268256233911579730005839916274294672607733616668414822071778234729799040651478923689477886082552566425879502912907699718882962717415374162555354960500615269372442480963502141293856422233036043142414172633397621149404452691490191775589239352181469723807669944625602753463152913661509934644804014405655423473448516375437017508732131162584024937521416727115010644422157870197037578066405250474114065586810941873055305803843244800104411499744834878221432124273924798834574420062606634417732529979450004801759957090593490539815420171476394723956056409783777118928869500138276182089988854680122670875448477751628326943720660056227218274381623841570240073960278987730189252086983688873461498144851844155654312675501831546312206173066698030952901911792264438077406859106625736297530622364224665949369387734513851417530201753243321187516645452787891217882294289932630701522356873758804995689953751485468232409142057210413803377004595939597750970821131690052101292970637412030209647597829350510078445118782668765740503005266283893289386740053316663128198532602288801711919567781793957208097509301128109865416750561935996724216906414741875061326426496987282908664961623280678877040751698578518697779290928487251686919524829997296616404654261962801330918188630028100693953887012852835297530702814634891276803858101269991488599391336940030520472931389634734276895487109730020488512412751242825984922274942892291497120649870003222087253583696865415238179456011532460789504733964810894839149973974918345142925790434493402591566349490113872387633202805975458030688228451499324465067078504297910228507234736868427118658178460253901724883533992461124319349379383442081598719948862395751307913348630396481452949551496861579845134715026268735164593540746887706736012782805844842171091013669521804431042630456977041545147453924221697348495235936773785726817448467258807341256632513343386765766907013507094798963058024198408830691821604895557787909814277045974117123589501881414271683577636353160090214926041071305234189486919737646781300409642462146409360926443492258841055514532143446169703138795947120509059606268337883181748928283160392088207623290518888687330979406631138629529394905785334380297836755885683842047019307054448936354187944396473739771303305222698552058780021753068269564859814197715278692941628612789011859310324505219438595514179708450778564680442974768477809317249397180307834025432139921110336724407853949846020851485560351644472577036148774164526885247130837432322155249268560331858211858623905982058889931540285537355365567234359697107286143678796139357205340688933647013419042033823271651841300697231247907772591550163021575572537635971431795345580907665282592774242054002381930570881913746933322136988218774196827565203148327563043408695451048421748022685531805479873240860646222299675504790592285499337779830450225479789487081565642258294965778936369932741796346797120866583753955486015702122974545230484329143508171753823340833291491448882761548241216497527651206713195088148098764025999511698348787730851750025720600232740148037411516309578187389255259710159575984250149535030918787451205206841415231105476055907040463460843914395853382190036830997393886108788534157623040654938583235719575237649250666062118577582390646734485556996669838000143957376791344899142415146376029900168653974651239856866100603364433118985935364755857232761966893817042487529958413502232887783153024187744802318484511134329216337216086388769759825885736334980197443798386192292009432862362666403487706552000060818974270799988068410075167022244563594504785309200692701063747603798049090659440185186818449376254961175829640705377086790846877498960983575240672456766923093192353173824979196310115152998706012585580683052379772301642082074951303889898290570264664955919908671882352322200845009796450946288395563117116126750719417340599991200202066498159729264624358871814148169423086979807626833136192635930604563758156260061756809554542791985227398812188352580184348665403360891610180429188681926406655736296815844033606458368027158933607687624946167433359419055213864270135974754767741354247788249927666811911875643669477967102709921838189611966137580339181765176236539082545177852184804677842712181656643268296714028013977465604613326844188915627803586198135927646784874568378240848695672593977872081674245612908864903838888147152255548577204184049468616733730597304379844007841596121369550526039682770068056918284591056078759146977259549869347125415264143135660518410283692761419213280712129816147710574873248066871902941130609387055396957801753681358148002412521673394439740281618962872944494116747663781619016026060307785952353480685974898499788576689015954397750198715490364097553807527060081269912360602981078904380602436677282573930591138675483667858599682459953148644911498840469427142843216147880898480458508614754595262539877463051244933192198456810264208014600420219242704639752339445656851060108139476933033559670346992867074390576566897416571490537302293850780026690056633472937130163408645336082344696247879834346408735709977874070390815617884510501578449008761900337035864175772875338357617754389829050532013225775022873666888541036633773224372486266166114531699740927456579068003066573551234353686898642915387505589335452119313483181242406144313247005706938927044050579639125851205534660870241206211600295527637919475686442952956706237791182916174413156304181412910180464412415051143631783985535757594932587893947625781156947809042983767503849333820453219519220926939535127129256821323254989795865882176515183242080941848344832775299306772640771067165385710417916017970465911844237894434497151546741166060511387991267454434972749291652418371210552659362727410873320671696953399852775230129244122547219495520247702217087374524839788417642358473223433887675006118014768757773822229217342072347368064351461278104779171144248141794582654926925676151774244883870268318753540294105207024572118526978152541182409659998070150184556773037550094260373644810468995838204026126541620992655717939063483707996106789650524018589085651780457101159236742400870228895853077097516431518691566548074557789382885107630301479116631106418634219610975077652068036327033934911350470293108415059479613743290063483796983942837388933192147327082329536811846066088482663404474753963772241904043212310455432183075432055462169529443225620592975637900433756494125389320443847712253377538453110672740942390038575458029378440121475913262567300988867059491067195771901332681512442620315679315932605064086301303425713640443944992496142520025826636993973604624157549663128278585158607764374825987289823464417404997329895283345572193013610223208245811285152761370866776418675195617771380568558181744445253162084461510608674240423325727991086641338187795367893069378018477794697602203719174721886276315735578291723404414184981983810728227176765952418240280914941655533999661234395199988292907928670384065744557925081277716569023250190605557167465470712346357351407735887983008687130275551574858726210243758809172755076033801656416195344313191372999282043667036875076899112745343322981631973865606524710021735622511936515435682076108965784056476492139507618081663993893675031533785967484609349908956561498118456734413070741304416340244855156670024319891080167340456094377782278944727154711817228239994655751010691128385439854178699970395877219367297749416674997861262685830333542926788656926032181683980544776566865037041599361078839718944164815039436274640071783692582625918793825101846878581490435052205681938512193207451125586379720838167303445822052748449595838915541519489637369184172373967653214513268152430121256556479153011130875563658420084071517862181494699700178342056263230642910660628922785793609012311144496400638296474566782536754212358372501403370741831336011950503645482135189763604084089543955354182102006095013222305833458365265517555843662166574033518365941010815300993224325344076394275185531647869859240808715368742374312796830485413933792201856079533151111784031880832623732455326349902429189720730085393368996224241964772426059818440970027724426454567294189570837250000003452762292266215105115355671719104702781032444606671124161300797461582728703219210940997371828963566888137090250795634658982824552425069243702466894591937160394116823237402188759515866490976168039088628153218718073595880399904091725230106553306582214613354758890195466505431676786831729481194964008206924692144739782838217983164989400804041773292859770774850423035368078790734964469945146406383037652384534400444705315079605185307058605151276910945353909886325582408530064152997210464172203901513503289022114943727816430307662953104452145987735235686133461442220859169030268602102936456722228906977781599517470864867436481280352821134056014457389032874849857427687438594169328650651823553002234042622575322019618764884345052448794451064409548647758073171809569338297207633132807496416816342457942335586466255081937760559612907275381596737824733966517794407727708355221037824115851066016110821559996075697177521828376593133891106827906011400671121508233663692523769463451789071185640791545662774006798951868629560644140184047944971169832774996547852823304171195693863788660920202288443364215548323196014710726874570704843233978240501756254660250746682585788113986077467205854395252746896629715584379193463943179233422280611059514797575292126349356200142740525778028483624508199331122874580114970426215611459791955422082329715533387665938671823212689648286482451797111240224073180742280080503539674400746906735868616111319999349667443473234403624377373201500126691956690736529383446087306052606397620328352829259826890083145484800070871337922486603719421193648342575132464624973575319952461691035670616335914291850121273512258475041303215005501268484895075894515229015340272879916215559341774405432167558052639865986560643560267530468473054327114275430253485505696889192443699286914596301200707362449565222054537070894009418861654006422194621040416995558600656321032756216846978935958200299624916443950265127983946681135197729890577083151545753331211497734193135046101255304385532239060977422060470413543654279830128696349235734451932290623899229853353859232691506661229038469992762346525053420933173072550923580716055263113422929006939610390240974036195119256694862667084291308499317083403394147381734489695967308725449158445064564727342958120613662073508165218083090411762989740688637148492421053501202319288379545818927925423869757993534489623457620443459333494033265269849737442403181822694884934206792805306687950116669569351661370715717546084312132727068754335463230429691866532033740924218262338759489178316624849035746382228764155353511534648572379819356804323397064042835471319316402102333167572034198070884488061211913820195728465241237223604569454391558586085449457186126803020260151119375678841187881339492674774037032572229558942010022573519386535700124572671513531168175791729105585296785492957082373615241797269874430350680698716988556163385711565329397366019311807390825368622382385597202926107906616596665960584386983199090602999345113963039443564129673977672727956833480575668309084267393879794784021038213718100582112822984441985702841708558054644024603734385080191122583354712876002890366840823916699533741110359852743454444691037288462780843838561917978267058730971845258626938741128343906432218219207551196889783955635780514842070498330196463675873152610690054343264421829568311929241944847010760146944554656389619138574412413609030533995614098709854759574208884243845510458153255901736258261596826810847120516048179848135909313525190423463038948281421967305473848110620887703971232801015633666102892415989262534346148490546501698734568787620360925335113746125707478722738986011711928303084900134673790734435904917338300487385778510118471588322419574739045771063441496811242599777112561287496209723849876095307845475995087246271762165548857042239845265490056538286952869134381521509964248492197336322925150099303834348235937247644067842503353394132208338123901663628231758178597260011404597352859612419267679699771213647780440951134355273488454135456902810186769833381213188919550326055182384524677597016352046058896440837855429742044110584397283913701614549630273177893706184113126728678048787655422294030447134072826247287473018846722225564350387510782390697721661075902374069822796262268454361732885121343337966072729509124682732116154363205712770889491263821155766336086350567238565756375432582652072866916083244449224401551995974979173930459301859496780968263627785564444027520307006264993678507316898219607869614943685892562206309641276649481058941235371634680946867244554607998749508226935318330228727030928312336758664900602308193032915290397622845050420477647627668355000694171551499874925234011550503518760595136824676570098744928768981757530052516422453252026831045183907551242120051474605053402028136392922798257013528602543025347733896649349026818184476329965377654236773575075788942442394664349603563063236524754156020281580490797525364979301681996664051416133876821894489594535979930852188976889102541253235269479501949110223142098594502904269745302283458196456529366674271886060218742720180284944093766918562929509483812320381156814079449500961532991905127076563511529563934840562601336188585058089521538725576052963203590999376085561578820295082908354392365691958521292652521911686333197087315383018722950241621424702244987993140163199112637398802988906800721872175149211006201782782727251875390623705078986445449844518369641842172033752976243740571953678263371494242164861730769744446737003647710833677605529145943506787826530347396840134821241283722448695542439443595257397773662712582156187886103982760946178810247702288700044546215518717067560684042336972180862014875419059699839846498198701866245237352523531188238883263070422666166894593815032435135343387071861474224415776254554768091883461903886590746030095845618681759178271212850002916125891037333952818053021569036785770341923338721059288996105168938442021992174766050643670942166587288722719190119957215435304865729225005437993912458038778372599884264706371584866101292147578707608124328788988686215111654181392474805521624649261113085459426376438589110509299834882782013130515071380861152397967529315604741091031454919676032227214582605543944904975489200593272911921678963740239374797649835805923435045237031753993690050336969932780360788119862849520407506126899577815158968944440181242135708501575268567626769297847895274435617045439008936766797638755084894410410915498263640784127863910549980064066748553246224113880744831586858686414116734962708494543691312160996270787370556831478091332400131860762067746066889210051574330860329876800681119470999202633686998034828864296121492051546874642055542537915926200790094825388436224255545076313255711877971780382601299978469270554954942059167016133180768099197689792470321372116194315787877698603416651905619762311055463232288737165974264767941123529442960063422866063436745523167992228732101545057147984299796375215075548079379191096413896131112926732332010811346696125451232704627977560492728031553117352574262182718250356451299645067072895244602408229796089481951083638437363057161530772327012980448880125743775388265095822630172588800213579312015236336988084928633569770437338263001528654560169046979326949567217072880931857800757814617907187146967615242626606642065781208534172631462268616301128789251508655330011397669387469570677770713186540055400916691639554002287396309473875113541937849086548601311687920155475316214770416623191824708999423510554505291029797386497865386251184094765845472359120234176897207797656365269963757113864862574123257113195904757935711580775684587280547267313734224668143021664049215525275303811698984773123961156211224313140145356763592654828340441759837793948119661236426844700236521503800570940558415600984536356771535839473560756810188707634976204948008014747718222928080291892832842470440292082933852981695942235676665743664231232026638413126073549640060042138778674315665966866473482471359288348887998661879985185366646831705868360872686221402631657145188574044868150090389217453160322630277056358262398668451408744594891129719623958168919541865509320369860770038255692166583608748480460121405751854372751335533675933579341405675507385813756167804097103352726844550782638903119821836611893276855010180544072341293159547664436717704108364129862693231200686577501444045856786580940245272828488758403916803739514149033853670223224264930453605877626718774349312323211449580017770744621773350924066500885413295509027056997259455758024255762191106114300932066423749663271464294594287289960898587684993060157009542708025186933603415840109201789733297663417961751272507679686219789279814551654422109817698984559129376867738654873336924798059142531442123769461673385372093687489232148225795483242572010716325810250371865846334037365383672890762599870059455451820666065214562902372256813057241292357981177210947086719690940149765989462968653376712786371726048529223707567908447510743821618733616548504684503428111925612847643281703688394063760499882580684810237525615870877708271968836399378556375182177442052790182522832545160896939078501048290271226878431172362321457705506789893494434354113250038066036446231278660711308666403032486480750228939576590513288329314511286899939033793578260332359892870440525520184706924311525563138302787780113120139584932899861851458601232136710386353630050883783650118635230937377436126867957124715540713617722655225029738852050094608675854444015964905596926902933113183283034262760973886569197348866277727381012340265787793751955199831741629255753095774674782828479851122303548894140704903937654401062901796057259418361305128641594038245059313320043723944691361200941318988570020392199845211203338959974529195469209221606310917414468638984112575226823223067068935977600533427843913696293143393228260752835224449248102985877624935172807636181877730515838971998971651768328174621489191459537812746076297877605981635916310851622743007593900800934337871779612148673427063843253892711083790740804420561572001471276313297880927447511808476651312004827474767882576461335383081042555719919125134983318442366350349064138545626465586863035319513999591860516982934199500183573330584796891411825624511112134789688045748625243736752010349136260895942635573626014290560356127585542409267804210639203389091400747972489856621084623382653017445014857705337430446908092269772349739213294628463070706858075552555174008676368221944602328916222779017481637765305232732460037571886880881665058169500107080857287898480043002705879281377340953524126550530022945360250164285282479658130227505254367958005186702500720505006065912302970696483283160979706464059773573474285049611684912013408323388879753572768303992886789083677363268175905068176986318476485611020067008994502387076092907469557759339040375632474143830069901443926793683438868639358218525778222046248244830503911473164406686213089397225626469291026231881590779802895037585573893774478422049328312090888208420133507088960400934529661872185144756223975247687950047519915866301683309660351576106918253753414869069976516217178340606650367116040317479275669743379760466112676614194156575483399266207860048904364357173202411832871575962714778705007624339546487655220412423062521093685115877243404927474938181659265817934055338284743145890725551394995718959206009471344169321712270651519170096436027593189693505292057713278662238398805835191930504952979547415378807658474073036087476261707469239182394987808995647653554731924560458082211704080262574213951748368539991381707914942499204232069754235120042172654107155635237910203206583923879071773998985175181909196194635529144580199715030990087286380090357331863522505463061175859922586085856822469348668764891935516781171395724223997501782459265550517257272565135742130337786410058582051640773775359394194844673060125639085992979189635323104545620469894827459610008858762001905106200340716633338169036613772398216655231930010515249355388320686268632494196848848156955321277348751304522161867496310421817170423752910753998895943804013422383982918419002498516719038360278823404088505697150821172006975081077887683973280824945506716407811468544458192533909514864318933236740856881546842178126409609133598498125320239562586498546647980796962496565783048608046645522700576018629254098675051786022907287603100542641741621667419188297827943606918540557916635040597285752484791440777201273910454240780573071853023898713087901161993291617407523488201058435967388105547414012577465981720614503125636662367509442326965287157170725500136931288815444449207060533504236341521595279516937225545949073826926562423838945147417677434304406413805950183626658299708270377015925384394823852158249541989071505670963225438744670048444910613115862886181663668354129903390577680218862257294162570476387429780644191196235948786064066675134442148859938717509519964970384660352781187074078216993095416421238073154845076307260033109968504495827556061125391644072717683704467099377205621391218017302427499337375424571143820999677382289922396972761677043624193131611103304070800460491111933040511742136839069955770321576170888303603182244427404120055722828852789280407525107012169879995982141858599416288713483435007288156753003986910504496419270803556982822823016961333165144063092964644478271777355785664312662602679143983213840182599072994747919776673083864536649409893491342823009903861684019561093067260259891771538620214882299355777045819186033600348608941525828241838599602212913166568182252127769615957665467856648602475873452842502299371888492580387472333553853395243269204506330892649152129550270890741087906077063629777653064420519076055120343797762629177171818241689704624343428493410918853233926588454891714252183613307115544550697083467911002162510955205562626540231362036791896631165734221289243962277384537787466667039575211434370740956704814029161926149997913128927696388117176751749121956769398698561539803745101068313654228734286569694579496889356838661642330761683448521955089965606978853531491896164004749769355704484276476770715640312575095845756155227242113364360027828240391947921063875026381033096066753119073014099754550819527781199165813562753452825957423852346471829848124971468174953735127284198882226840097285640853938870320671814284446373491373706109151477782602705185653258153933569731715695238724853614064115180200214247393233521798890285928991604968981348195073324476900186921480965953925491882754070022726845498091412802371642993274920243391430594334416590201073339160000163101469094447505243937795860718325638304181656574288997789146278279515431322030281733329583741389915066882976831817109462956047220628567086960185279754720935640749066653938139216183446246518005853066917134415810406075243763579572205665932570115313152302435921664870147717119683192021437699438200176686358412706139822257401782802707409568385566813992322949718986555397174301995965147275927104851267769541037669102822520506807608528689170474434946624380390941343493601677830053434859109610822777626906960265892097401862371989170961679764374679995586270636571183764434789633835527390243650373378611459233921708944515728376185807797755592262196765253254917450420177931679476324864274325481003494008980923118710901029374054258553446700901961189848252916381391556717875057222383984833854292273443050943181588623838821737589274852466875327048750511990813856417743248635851911965976680541862241462000404314270543730300739566019383832664063233473999124461031714151329427557039230286372368879757376352680513831717202778663717220813644312240847469867971994399358882397270483090728355902574758417182038620385304806891912015153080991165618985792557286128878217283657902082259563873910980725405421109343007292554658063270696700492669465879293651580386412956064254826213250965655924511174203787209570395672906508400005683545048437014239650242007676006341315427901361830278855126834191846160458310449300233141399653747654172477734546003144879582079495505580122792544605986096649940823568115096330085367878270112267374220886569797206019030891262174107452212195589398539780145570408746718224966730837830689438361407113184536772136358595719655127422774808787642119235589426947411247564677922275009361510307751769654337405616725696358587407840631859022651242796610414950126091973021243966165670163435543535229662196530493942834891073029789359780646178721052911236440602653491086351802891807440840241413293658392972858442219064759172455963854449070435459482550759367109989322660636585149923758269948697823029478374726754917281468812760105659061819021606684254112194265746664826614191210143388014617344932585824197927009389464472907522567144830601847538324333958383303273850884453185793944751944594715251691222832572907397753197307104924297577198543302888898522947866870894250835821034064042465912015258471942891708576570117525672808188491703484531310672694067235102764295901567396055660832327356585486673360912363194159754329210807722061593283167339091481384369961134314239234042440513311556878805503709746662700055666321339229210820500166381202992672521686512738793252745236514052024988482900580359775524452783491312951477751569967686377748053916417163831635462991388453509046951288018522297908392329111018038887507700039017702236732083696191723138734360470149033496407557059015463920332445420982883264425637740687476908636367086480471135665070221965909827068368786170162642588829142185943208164000458175341138956247733737067019258536261043136788205214110930093573556452778806221254410206777484519201592104674350080451726570808386824811123010139207285705489909905473751241443863352064462092894648059834901516137826639590661010431769334362943930245087038836732713097818950617180894285275625113229502635250698620057202946349118993183652751711241659181589769316186142806790389800553248108577013601061584916061690578079672345930347177049854068973669014076994158686027559599892079689294715327955800872152378446781498034883787816228800407548362274594339786912573856581035087632205981851911979046338410375793401357406748131652746437993372534307292017080886111711668186519020182812449961076480616781901024018413735965374235160900783434283977217272968012249698197276070814160690348124882755960632155616539224017059799240076634276663444579044021824918406360172153260104289843838194762915603699471249112334939630535819856291348987415106030560763720051578910985574001407464316213662678499319869156691197352921812204897773406834798163433507699075780431053039271859376356709688157540473404740148131029831441051590485999014196998240450764432060822040173720097387836071841091507714015568344815062800985407670245379777386291137821066457883976175200909969076115122390963699036951571104294097705560309660552166993219298906646116564578405149398700769832770535149416959008140455164016413081057312479028729213137928257028258571088005230855272105574132908815712577974658656243501960809560676283032245217523085265732991738660366958492696291338349924386914337830817351804240490685178109522044779402051420729261689637778781393337503053629456581520096239829819598017163565499637685992700495250078840613839368733566553259542712122569654845241521751790377784462647974604761655031506847260445317528123718458196390000713249702678123577731999958807144331107713294992991843378310074269867922389203549308678872970259412913604003011217843017119081389345179118286041991880891466689253550173336304803512675076688231374263709949150369592599721220170219481144569621957884667160589014650843150821366846716300254614466800957649459691281074039257964247968021327082132685680620620892010557810024615111929510533947111620245501476762397292874420183973615358579038243788569429062145820244809171307316316337444262591890709545005481433727604647417825015148902089875466072392806822389227996177593940419732709821804158004201546400369374889897469065026733950100982574249878327049506224194194271694990463198630134501706987899815425010448875919097637778223551315349107433653430687148118379128133622311316067099033606144304333444140562583669802229566457731238263314117800440351544850501709019505787642459547536133553376237214105459277935754598920685208774625709391982944685841085663259491751279235213795118987031634164442596849382989015225594048687952120490026799458514142195087907761418741303574243531726976455399615508265304150474136617294646619723874869495284183400220845159108412156197492372706060271497669423097469363123570982270033927179815729411631287667983441388976297283251317274747332749803882558609493596804058164985561013354374165603975866509077309303519092527806271269818230775590443910980714761196303797971365793406809431753685151951696619659923550800369158892929425814503351415199806466053410359914778398428753425510393273556358614264136787562552446711505388879092802059418568711661157072834584545427765672909975056576176763846156176082250227371734552581553597656573347150279364190126042595255743927865960604843756218819420876475667312601809064039605343468684503714984218690135814016700579928255075623142283984716005837612453619675652461113980640802976411752729774725312643673066446353944928070277169408983241340653805325531045404207758419752943838086337586218006763641915087087234597630743265349454624598062532709438750847312330218672436540509643919475601221788040512254197835319810050181583567872545800351771290091831241354662602410355747980531815531161176379028821264304468725984586418958333390668539503620887802578243574725576413039917801618561428043337109350594170124329625159230133649874575406069332644148529264530874270683455342868512125669943225458737674398826738330169472247111814309435589295905526174096026559842257811321744057157182050864591537674897604233439307108092219349693552096447880473138213020290891491577793888200033238726835885910512587014278027369613840943714370400425034991441359340717824453546002302669962730606876369040983060168432290506351453890128319809276697774650943686159842735012127618558461654748136608367145417019282262124926832967197597910842457196115337108421487554323266315361350814298397851060436479826864435975255613602598312074698723893457996079498768934990539044851082559570549660461146485533169478991507835702554802353954300527203595328147896008756698844864167642753079241365082061200649502134389240792632172862127132276898597800991545523093821112493405730628699025894713432085090015987381029851009289192646021716945235922551877338170888337168960800035011345392548833939181211736134623056306996114588004220825992720585894666894020001107833002802465434949719221622057818060358301118518934151977718130763952077569814800308015099527648808096050658625428664839324795840689607979752807943043942715421884780500185129382461559797660347819037796440000489611271252648780011618743841230228549710665966858959850892314482357878432203617125727198808807212763239719191388523698607731376494793593165336568563152780960968612207533942206606081516223985255981167340827462673337194296926430846723788612942237054094831157876130004136483606968644448309903033670831857815337234666921924528668686360332492645100309306746370987578809462018315529866316157049572826834949417563739154801683618357980921483616253889193143570551396921736095817209097499901173804488271367440118343496433601287412361019045613908578304413351617259821961199547026961161059464433453312109100810291141074485269145923970615491498935450044559552645110757392357923247523052147849495428908001194244215292375404288555450444444968445489035289014117946436525366635251707483199849467532315745202164856134601338744617271848187859782304893870979271717361538322507711800560923361644810584145228587416847625437794823993598963197736126782378327073877908684942467115315054394796371892628269071418665110524679092579933180838500004381007854509657456525228180980951862912103899789782621594868117123470998671680504468674391095923185472896780566818041630015041787744388419659602778846264553969659681518264954829396841013983446711336560314953932592610553374298230805768424467583057389144064525952791169026631418360332842819775967804241124821539042415929132446943922169454386472029495756691047736605265184069246776408239352290189390996191931789637693132183959901480916170796224132281589669353186385115020239475326752509892906493052825270596881031412610244822254685898548221138330702684005490455656518562803570975713157783374040592641403709575012156271791376142014246323402576413934606073941782170257184692476800214826153003945619931703283948178869050814220404891001808194230495592272429368750997510399515887988174474785727302913567756333613153034425950668947185008660501789033548848091443425887170317273318676624553339182501604185930141229672860642402928582025380306507531366672864683301776820023566790745728280762526769747113810412405679872889974783856813644052440140741344935622855670523592299153630867316253589305036275277409556886616440331712356513394703137853614323452357631276787624315216362576678270933365085758619960525286413528081886979626572601617683684295928497306327880681324031137566135840771380509358183934142407844748591033832628251694986715835890390957253429842331188111871415909384041216583599892571545087293846589399082949242980667500550225901151097968441626717771089556979903823426267500337460694623127099193431322839093161453484786432955639467041548070004214260653593224284760175962874872947556586896722069932102107897439161574788952922978316408170204418187191732941437649903038396770058323627226038142561166975673526754728698033603801509149028787123213011883677179591892908131838565675620173186852353632292887407092168484425022069534884489278696411159829908087242097778884507499630376684703425399857833659511058783834023587055431033199671553063577211128602745135068963638617146715537279890746689407010347172945297458125348977465264030499957999107191595244138208327318051296676981037474981353626184556237208447384331010057039960522931479035686262101254020242756959049506976025849103503828395959227531895598801733333437755420355736492187859700335951802919540876757357015062060986380409172748626347452463994874913506042350581517932246818792764290245623554408517622808401294716572915919809489270327926308386827747447961200742746021059048157646219577877172364722428729509395163955403314621957614620268143848889739959658261788278907331388006227143062721991394379226802959359892682831457641486693692484405220030794824864337796377223098994875720353924649726241388022732468885488388722590325102893283998448231734914167879931885958874573892749274235834164606904541725156462083455138008336691600696822104754496553668209979409104493088820354268236344209159268822409381996871181730099518830465207890102071107221639271449050392769772350738077117021032624723573783782107402964596531366840465296446439605677494175252406161788440487153656122797215555160453053103592160243572727333312770587652926064605817143277871677189127464223810255146489445713376395510527234843088579108467217561780597776067085915392944117575176187846759005141288326793754849738997402618355260225590228421623418968268605550842063222296174803284869635524734598196328889927057710193612357852129441247596273129245128761269663732421553015537214017453092332884910183940327231829086861814747763968526512849176966794731799342745548601558779115344127488690649736778036038575077362711915287701373757058519898499377579424387955159294066029274347642429896870601462440357257657898425643819893513363697780910500425752753459058505892458752082310657778791296918506555339695937401082195679843062847502650036569046545401386253168422992187440667770409329100102378318012500383925419698881541660558129813455328870480679295761785319312123546896895335584917070662333878656716781493855963276165289023154335386992262089757721778776135324038366522636363556333879240164569807870200226152115543806830656291298001433674494266665096688923773684941409065377694429912183562832453531937967283547291872516027327024244025099688235955091906491362489775986504966882862032254884416900309915463169180171876732309337299504860260246903300228639798694838017266245122637758364658188097067475361632578132573335222524219228277267486984853833775251560343404749371917227421679973144633762381623405291771861382273112760712058402927928176141968212494580833443086712725464413691474968607315617486788844229663720239222705991323410745263276381486939860496624171616757589814009106410908931184475897748888023921340615076184785952418176219655615486789409937593593783088704475753447418761679759550222861122771664314705164061554679511011654758223715669329509608849723304745839597738934956650311126919915766550017310188557562748013789678373676433653949233055101402907784656864986188733156066471182984134520862183382180000521623229864522604747640468772866988067341210323469433351611444270513596908953505560387565164780098388607799178916062438536598007947244789990023702270615293196076188794736805714932391338968759925862244768400815926562823326301246488189167533398583074937932160737932128274291585210782527821270224956810426317008471974488201778548931146345487894495549028816404641410595567843423620592090283708805585147722913309171719587707058366341225939040412516739870112418141798813446285586284637379220865191168570183797536615729148683425123615068443434309695501013077072939788888362397456807511276018017813933550654631015041551523281167792196550083149168638295778958495828159850665627933989498085583621507322179936631115030324314521779546493825357241050971355100014141667732192580871799561483888976393310453808716122485233529905556096368229076243184041144928375641869202987858395309919570632027457761139939818456471092574536450333037275247499868375589120683458497315713686777595856404517685656545148424551270863179223700814634545277518147665180631510661683601257324000692602066648695214096649837530204679756689075472759266681116023091187628231998343777691804651186347897494896130276274671303292508767097485820342550168576587938533241444645836967210717081631501456524297693721741360031266059307797947370708734838040824728340094712107701815182684716313493565878860914584945627963408011663938601277319661934849777830688222634363879501035605222931986241459490635377174895299238742160362011698394629789505862749099642083229271668431541215349592895856684740319910876977340916587781119348744062205116869359183542297727939812279203071586915038619437754839305190200604755920844315725784163100349997484551486170150747555912914519120353067611475349429696052288841673904114404808746577003231784627091839280539252260950452900604609999212207643325370970301374048578145147670243781704186323725855561294722140459553327825277228705823468481668666626884866325162695951847880630746264343334771419277670371908714010127517362802569149667795018452129492691162051765294196418367685053229461473268899053142227880922486147893596913130445404382885616646828921361557673195972084279112358678744278654372549700024581276493490102396411086154043534617872558086073545520636161065869234200940083244123714845148256387037996685115105564503751328285244067431492434406269762594809089022721837329953592260795985201392394655208329069228261259189211842976931441401499323654607569456616924247306112128425969548812489139451371687235480408665926918359043318483551536287748240811668680564871205720083917158647350026667379632184883650556480345821792328750065537059384365060076686986665704619644231086045768932891951239430377099902341284491905223333630010221630232655173630218738550303291088891268339515728095241626161533161022876803197459365960302715078533850600816885063364827053738678531164088564595747155439067807623114974681643989400646176542166470325421548328883581400998353963308796889249667063757901251660446566110209053527778073682535591414642179077234441871183422467330478741854449413211010328003414647641798201232398187914417897682940745764521396774266684536993300276637109650293794872798591772730531550183021881674403153402148872885070895547584400151773926939689200182183867331033767958734809387587129629501952505884583927835365491523453941092942191951878428787762233974054956418051857657053863896055537449753078128204751554383134891181997015220429105224452950235303276099165603761963514322973316495971155517955537031777455599658316043076537705425033158975245537000578029845131096701105673276518294566460359087795673773521913494487678696455653045317322254647405037873551813290064071652721910345362409938516444886095857915254414784898090064082449182058325067213899133281015936080309672067413203561792558526766864912815725128356159272323458376677491246910700981508308939583167159857681118932891442798037930361693824103501994296296354575338323535597370805796848570631721654801665941498331470054269942579505942910339745581359799031011802302949815699179067200083134575542061673224058973930808876654272162050243890378120357633434477885054434786114109850337716996348305051442563798842366206170916525024627954763657781262818797214933319194494082962701709509935676916137123411327099699508819718039230453060058872582140636793586403670623969473470814176162984229982185532854583692498966677637261069500439487773349124488324410860604520417692766692025198691739020041576119271712903174751690268638512510450390691545498047410345414162594927802653838295619871201896553467913248424849320299026655982212484338472832675448002827260252493909097707731009402856890061360915154739797642486044313365015633043077768792789891598812612380008847553834415403288192857358278398345617774606919400269274448874905317691281597849144100180634750128389855364769952344487932515690285838503225099589838686295299279855734307101700535718281124652767058394477365517054941291370194198249096925475461707773997047256580115153309189891592955887645570608921393416068626365791444386309423175737580812022846449708584633925144432901832200999283289355144696280960376480139034706603974436840448795552507594176049823156544090660794489897299484542793559294259878731011446848946798203290575371980669854062672344233993488110766279504089632511399686161420471068652097806321948748840994339176261009401902282258695304415894895972351016572526571936066679193249230495807531288776527804279726048295917740768153010536748345537419486666741222812081403045276048136988009324243411090956525622199775321703452437696316331079676270355441308736675282760668281900119841959908508564957322658655800917261624620078610277038710676382547726080508795850546209792185839837509581790198668156581520446743688891946210315240193902387212589534344948377768522063546395449542290557657408355334195319266817544256300634603265210928422110364995143670135398429009230808854985303637728463693768175602218673391002480518720044149200105761087001529026669958852437066070278625655852390551666409323423807479444440813335407986679788566832402344950490948719104058236857486926867700190858072548698052655936606246074460914146239947253028932299395604637849635755207775330281940249437851137620251839057137569532544368796890421708435195665349664583336660148193731163797952766416677112354628197976467305654104974697933324639175594097386171205609109366742352004407892712494530965001081961852665951580342493459972393775220825446848227588638467771856144130127023746815589793182550479061247382621622647090310212227106033168401584894974565623877403361582547699717042812296435933932719681577090090673886344184074727779698325803434210055178961309882460965206965181165277536034975837055680428708491243476173520172663045236897020633939739560807427119813925522939116187907621375619197290624987790582223049420729297711467418015020408533153827815652528660278774649989684057456483443906533196754210702538218817600658162528330329100198468703382162295263532656920078351879257802815529298333348492835759051639646722776183566033205349142272088605922862898995277648664251210432545411550233480214421390601282762368452527677494137225963217873834646865543144637766196637262296673423405879237630469835395267392563861366520417896617155295496769270862723375292653074570834321180619004502333969261329387797565780260932345403423977063182574223426829279241297258561014139204024492603149433809308578668410966516281521453173509635623210108845158978756860665373714893416049148093965256371958618816747620247814653288916827992326134019178430187992510567491285698319375768989189547841089155241507735711254390355679165404630585373408515316105083596648198684981577398943885392618215363639001747629575371640387160189597081966631072325419805741736819184398742453960398130297690667631758873158612712027506838193984344925593194911168922586222907990305066297454732714172097358859617000120534000847428682440940016930114352234115452542155287983240958397934834198871757318185912381417231234292099979782290592682071400891704275194538234463912016257109726274077046183257046250240831080543963609809650012416291903784713214066136244168499129785011188728824964512755287055573893718369209811226436594645994475972369555814736140185463191034535910115762873354781861513670388511584741463065124187690868263423854094511941748357928315268797627315136434989581265464697057445695765044240710836330612797157196314922273774342884540604788327939760921618785570398417678667710805938022272110658046360502083038065649230067048871741470461784297246148638863660141540717016903025509710612065299367131839917334268324506590001369785680263486033893088321159908912253371514414102890639622493665273940900715367007817034450853373307681706293009606329882511275266626203491492127645660710066544862559160582815385902523821668133069881367632280933642570176286822874249100191530351106169785645279498395763034351038682546242088339493435218882623640089687280334795627270032189968344755066878181955740443125667815932303783526337220598983197301364869522457728053063702911218346903113808003864967441853680535901570042899935154389145300730563612403390167327676397094738445319809813058041386646640331696894168937633532979910937654565922460849790398323385884076076257073192373042838648438211879738810483885562138074651124339819513864987729155995133645321303472730952354091813128942319055133241125620789477199862778099328444472719306812327538748653115170938502609582377095189406117169346355457464219848112154486689903529054469407426754721092652725477917557023253532664369274826275069965694661800668096177174410318123343345059871389903697770618561767880787632884612050355887508974939570140891742058378913136939731573697649478308178537774238731651106976757022560535209444354702668132783679076022386345861237548644091274655457399105754884805008559798817670682154977192916091582048668345578255977459022649319934110433857907391520245307292932318523938250389852970505933321323852886374680424738973189960410918384844465609958012663591908958582165918336427260363526436836216675086827395744754699311761955879659421869872680542410362274339931400018034014605837658408590338946741302168881590223198365194549573194452856659097399148823927847678400410991015154301396884140434800880139737231411557346908119984186701855536308768998300899860921860579070635230230935117278641139723449356058735947837621973291046529171767965765133950893355482340888508282381795278565281865485702847174816167654795583286039132061296936896316333044806140855616863879335354503389065419075266910632291093561326496618181087865322316602969237339692504786920417719019197627096135939302127163152161913904264578465392018976482869319998936710065570458359384667148130790997569264932734455376849259237537288433870234663943194295404924256976008888784558420600035487373288679806868169574133344888031966236674821715845392687052159475104285737141902044242383999131882908454003104848159032417982784034292845635492860490056624583635015092574511004328074311154836902747672625592416976633029301507089862189147249193476237129535592861583796915817780388519901971469624603763377165540234997263692679996353264794206966210693114444464224941474046852303359913784473941063875680550854556613721458334456673120039560504078753950613510111726445884625314621681718968415588366348372036708705193287120546002678844092368967376897357220861908485341459463050145244003744763061516153744098855815405345693469945248494067200619084511275033094784436600221137957402338469489020277433370506834621111377617236217956000023301118559037371575632787600970466989943472253674783618698023128430947117460305925970081805303568568879607785084372322046922833904260749640649749914809251186536356327827561695699696475772175928026614670858738064965267832257485275660964197057837896575690733818117176213098949292215260193943734451001206406860355798400705996145394071971305074792978943053860531447803166234637077103845290878937836981224859842919044594271854603457146006550310294370715738052445333936077082506502280904693463284339818908737126841149599202884484727813696853337337520328058548262535585025861691106462436756221528912408059692588117629909349044975733775442106056880681392659375184378017079189344040945970098734162736937807575775821345054732903919481508411666028359224841274802523689342114443232138829150691324388880462471460938437577216933398018192573554214765120581899101282128035063355050509999398545638139137121142655132037970447873041260221897716426052958396486726805121482201237385228617505057203486544210887280645930011755088587245268045454443719221320042357196808657484064331773469930476661247307194299763109106018438214669061867086545156772225959672244542899538198119075851736059592605990484811073380726393532775358079365802991676514092519845600781476392345708406461655631560203792592369256279311992311869208794239368905814759803203394851850897377141169234708329004430160793442006469398495936918444304028969331462255992167145045574033001216777588031005323669482330735451163418261860273424405561006312007406610575287981743627764557447846953787016508260552585697973382144854326899470436813638431314737346956673359110121555716268254486919380940097935462412976783420765438331289360236664898165783690361357310300717634261713733144242451870688414529525208939689698693800397850774984611119132491379979223290574863870963361387589586651691604852401598018892678646702310197210783368018622716509121314867577445163071391567020454881826937882350979148706233681619356637891408503817885353684178532481076467797417102600048957006463742407211313512301274774809393572725144634695840790545758482123846598918952188017652990575098361914929600784562258059650015315364982755228244648783201120854868902926019895491623869956623116665243304655259908783377719920462875266804623544760682094259954668924696471920162922608253928236309947771576453556480936049740100297823854052778625426702535577739269353647866937347065039268594631607930294151769935694194897372485817237949873186584410113053532434012961955757894690474432767630972757897352268309723243771960138395967099391366086320001230890747988748391634466123361082761532408133449182631482421163590322049418746229476442984535356727403837455670569432206113586438427286672040615221441969193644671168678887103940620602882674932953115694718516103692159736070475231465714747378424686565253296057482130354989697572663810375462293519173446746233533364032623217686850659031027307049454084550945380828676076491118269409058450249541813388775085547505083382056801105525522213616278575021271091491868910524479421213243895597099435569011774126542342842272627934309560462441915420084464403666034165952392641474313638163850260664428994467562568525685451884478303938477964783787166600824142281010630896289248253373803998646192321308348254854849617187422068055957646106363549655590968009501242863018307933738298520766610534138367870126858674600622257567948800397832390526663973769215513094458690931390898999084003924225336245005513248030912835296608011299927336589898283248514820158005784956286311304670474148769884738180663255965323634240752651283724499500812130721946407445868816427787376836913019608344912645802739743012900257833579054323836207046258698372743742341658372643727014457396998699183728364248041275111114155423920390022419334054570815838281690260609171785686483133128901481631351611036773441312746297645261895998434254042944992543707574561858695453086244949884179159525188289109625322101893005406024196264479246977176551083765831082974195683990051162363053206666801945495316742274644456367141476641758676604801412482967026627160049415470737363196882822922683823508979536079641418737623651707920471788234096649796536229134417332925592267205613417021591634669271612021605794201091126494324297335085651289666679670414148317548361726653865911463140732731083334825318688265975250413737490210733595393751328582275509503676711529484091986285787018700870528471124164835486902656100484150970716215904342843346052164720514884606166166238812399289178203146621392198121748807531713726780070447606358462285601075448275500941676751802774469487915368932869839303745652972243601554634612327142731030694243288926137623861373468297687427797908012861379040164597712339446508590842491448947711864522663435651745411998794673730998435193077411397055483039565462844179909278847293139082170283997858798880033509180807793845145617425529149385569343002260792408793919995651915112054933241602554389171813522371530393345384014040837910884561891010770611159846914913717903328662586228109464091452934142160972970981309937298703666663393256832949974090822805792191375491806642180051187331277497235321724481365950912265071541179045479889975662425198597095059910092907039887005869313772884926788592920626387338576910205723978198793182733283242617378518756865273420261984433752878710025169787992950890758415257076182983041421216168915764528847504564070164198985670894275550325599563730034880097884827591664981165229732377296929114633745161662626832138482581275531798548272097287766531068465006125393573120217504670200303142480470626281389130797674389582023857668660135344569918778176572297877963653016371034399617540449671258576547752661261321739632110654121142111794079688800803830992246756058285070910748073823921880264536350020843781619041161556095236744316631982099754613906447669515222172061286799361318791588785294873440627162142170685869171438589104781170825872189375266611739448316678183993907962779056607438063115631269132110437744518309504495909742092435372694242887495770919873322359411100576332551244207472270669353415921514302153719752475416244944211598973116316800323049745466919622475204642397302505566147082182224489879313110298266085413221305089788161068923999391613144866476802597162031175925794014563877520409244359836789070295590315774929227364221800032415487373127916033190645835253066326407285146274827084916260881734165444959603728234293518950616859904420246708954620737143306052270285007636365834616027863623106553823402609612886788007976891561680262885025221352358703494912288961832941971370029317949649494324869456701880885294835708292129815071170193859944297118959652936287329111867678965423242204213028228347429651332542081786807785162697776459072767379452258718688625881383585724160845930308929963342384250659817565821406370714600468247521395161460564040341216652820266063331289594239111908742716479281855221676686732782480272193145908459039828712746206122820087399741091300784522503802890980604779129431246253796591805524828945210167905848431834604926945266900000872626326400402363286633841999683022161445030861555553757163631672452022182900085628670561691836211979818751895695354984086423394507038293329224439986075236858397336568532787427992877354677766264811602618933406226295762427425970923984276473673644907617530552121874259969173515400392972632295233438827407526661105701911270658772056175071564478999563518133382924461595290067890661707711473687370311258482191857216684739482281865774472177539845410600221621310897687808516449767667989986306938507267883844467163330129009478947587328807184040507805564562334517042330358288351598526153794571338029429330691433415173325003430577215294325006359756287968142345496455783948615850139995554821353980135482681232831457424146766318799930209665268831625363872495414836421001123924336826618740644494435886914737998026663152820424527930487487966052644791471036097195177863240250606683378564038452670951519946095788183990736882374691383425379566355810084035077352475559088546188678732323864218613032100250511409355949778118844148889384040403837759314675629520337739428670494934945114667767737724123589315202739008317506549069614337473098270700736111933435667975067565886075053937317364574125579651618643241256218105599470897355972846519407790851082810471113194173738871117849459431805056192124308455868343440999033192625399307479989023920168623678222538356144111381736893001975501198746159491673843759189468900428365477414236122094887854039676244270359039528121692415192743128462865415409685568256063536469024739068197351028034178807914408512278348832785661529105705268657471358846713077213770934793746028959005760492088763716407839687841659437087344976089851728784700685150491121451811987185051658858928421992881990985317733500416844217262341818220081696282054138557583423866566199371716155385607392981500539049315729124783898094579337550481678879555965749533679318977200834808959083220647297685150721983751055605252743946600704759238522689821033469233458041038311337756654799984653102008545355794123060574010500211172185572889732099198485858780999228326020842379181812807406616908664541358058422396054713094176539482186706353512999991608299634329743690047107687870705109608861770588763356607723306552727737272875674277478758693446250118644778978345421331050999043051495517761574175859416659866806424741214357742324404369410695702613090957191822883742637520893087501997950219065010026564384207301549011316575381537318248460752127045105848821453402441937932554147192249093020124924248508788742031826456291310107128569228397461863237384927730205670626465410543000798701697210997910015351552431305781868981746330217812930946713316936350741500856938659148684106601176675344624554963106693679422335131913510425285475604033960173173311508200187797042568253281591269904592527150628663072600611986357287311681817426529187369372835082180615129788370306491130222274823351553395778970230998944536541420842231060196499572774390904446872085473828459168499561209995181804389241029451818577131833397585565240564100180932978000513313225493426468967701988278916822700345564142948382465072883416663217255766466084858601517402905393559919032080274780205115522676857505534946303138709567407109600338037989972419855997674325753329780426887775612200800932345912764999676973645048435299661215796309031210309807445145660089085528146557626348160069898601267493763990503719659144325895958622410329399134598418922871156636243676110337362755138335548650064239981821729961099503596810469021729038563313944855463914155896010646350267541148452350338446670078765743131217704293857474802033516445744838127975182704235091563680413823264026036679236385794297960623084515723985227092372589640918806653738772329348341820480737530514393501559478647374520649423409347454506015250780198573389378383553315147478805949110693585573075415614661012121855441451304562702482041108086285037992101951480704862820580249378742114171829807568315669637605194732460667600110340407586464157933404548027792074664044316008619718848721002714348436684484692861010622685018301091244858017967881862950866393797513025067711423890051694283026337627680791337568481554296870835116670981854964205891361654602941386908245631548920000655327666676580912628117496179493235643434638082509433261955130116863963166483367043277731861825258729718789493339157781450035687210210863581806563679689234324431975133449397588624678255284010635066908792134821280186818006037258237209629181047237256820158452612294424020294642973407897108184971252522521425770277554185386323188575134933011834035044932204040388754205850428255600221095674459746558211523140685185969617480244124246756835446168318351947940576423000223000259690626782176972775990964195181756739892814740074234911150449468022385219835572063056405302372843240425647843343513364857817173379782949212208846206581095078404883482806077056183170845691795748871503463337985895862541839068883370178362202454203899116514765330752375322026515493677878164011778946224206069049900283022401185457388117305821339678003923662438011390580516253343422570970714131947132492422717063086184841985992558255190079191886908759211628760264873638201288406890820640468974609989765512291872718215380148592223651468942371791905454222035998263449538674509064459326495313739645794460833782189474633057448379601039633776622236226461549565377755105722395673618119678777403012708918470255474634399024481530836747481218249452746597571643547654827500312825883462867111470754832597515946356643271210636118914089321629685419434673117437297745767251992738476806388153357427905781830367102504134686623156261879553450713400999619082696610688314036783971437924540357743874610951744889718988717183644090010277119097537479503397166960976544802831579606232257710676276316237880259025450476505883228043992600594429866143786467020963481990525419654843510320177081894784462316532276025932926003875487983876952038556761048870221427648036579681513841173971831087976910863126271262787054703706457252397617108744006202120712156699417477864094181416424528581846407805105557559125433475413803658278223469360733400154485341205243719905919606019159403162141776407811004622171703269920100412673687088255062638381972118252927520470625222671683099416766882551256828195659008815188289719103607281425562072691597385967500246014749336453390633386389482679599543652637128087967364183490806895862917699579063963568616175930558905009080916158003292764300726776100421967852726861081628795688362437739309408744722396350642709871611902894815204779546256144228021428888318511744787109046486975706754217581463986793127536990171556896169291580369429615441661393319975474638470334621599500322536331335857407022792638532238289667926509205222178228307784049978097621519403779764192706121544918610628703330083374605480224024880813111252288332289929929354393863136437112482039439594874860452915103184500602612205985089312950694951684104356136787045313284137596742862718659928787936962735028380410937818871120513054661529342141061556420088007212327302749072061607373173375164124272072574354069702858340481009156298763713513421578564767352479163663059476242557977806634045409001715675801275954433168321763938567574547432785869632327399044053751495304922740153732529801825705846437484067059517250307804386609032334158859798044982746123010681327200779295164915183750740355039894996210094752285584568302619564818242251481953874251840535353228116473155525205080612239197627632662788229413414419789384645623436773148095020987342827568206987679865523917233690540634226637747321985184275706271178647325830483528604282802957570466084830165330723020729334435027041084968765595241984328214449678621509490052458495694192804623402832343585274245074156278475803984651973245745451059023521892314009173328944943566309991707584453953281520036620192227549097847940139796593678096343942852458573171248528494057362087649179423099261888328932706147954954017343165769809284301295933667189762122884274834348088059226836467282979196432800795171022148444559550514362452163121988926119268356832820417307745124738560872543691133828380665573613253635625476141097192547504514344370336594381625386743392390219373967899780601600825606157710972710061353073612312519139589059657059169279968287761455710906528674396130877799058740536076414977122749938428657101681145603040534619954385435331746063246111566610305292352599792883714279586698531590383291759929355740929592912255337803699437997099475871301344366823485666502896056581973424210417626878451975788172956444564610044477703386098676803265466057836313947031986288322200604670660578607889563378033244697032042201785665418889896887859499304763484663478184928350156340223144783806242294231151871499004648851708884198400445933594903763098519550750228904037830754311947138451609638391784479688397150334223859053006153102376444427428969474493607767529221160664066092207748315982066143940667772353007630169661824875529003078479900987560598602794491254616101580955948925988026056892492019702449015392470424413725675973566496819517251631574101155278476082834329415567207859147720096300557158105161621667661700501150227474738298414043204927983740175514709676796609063229484118319175906957142520881398339089901559104981647457397694008335854369460677873063267118117611019208970796636620569117919513952179395298750949433057999979381161999792936486021807944232906504384593738878076694442292149838320210200253092109393731244326898826048055121223551242053887608537758266751880866334571441515595447459089248710429448335057448775350084616597888983245854994168496444966754467606996203304502188948880339532349515011135671470624649542806800123956541938271938234680312713999405966699157968942538623460322416011813563552049507971183314271141382380250345502902403392285186286750042570265046668221584134583506295133896454792306360000961749535439809702977674769413858830356323709403370651890678712929214579329515416674790761949873452478821763901919542811487016891672996603232896278203005837268361821983089075270319794947640761443665248696188318673704238378186411946442556647793726725146335473137807664588005053555165656661942820475255382025632787214053942461627390814853927330794104470013022312738618318024133971487395309970164836151231204890096561711547254640713915686693546300431010397325553492430278952235896013599234976113501301419414619125767553960191015696964726886854478125769452967751543075317651642011130437135991236291129759485799202117238664355612632980252123197567967462931251687836575118075590917713066143532732822874157072407576799379731883034245260851695599463345844148951310007176280986990365702592214289057481577363303574931220708633199418766988803720543311519108735518808270296421526643769199766534835974841641473792491242772649639710824571165718190890615777827023904367467762780465533468565869536638677773739995562783254494459398404217526064852647097361745863915826809793959497026086941878778006640255266917236931640267110210192456340981053762402242191166954461946089179744984564868016225835012283732644960745582510395162613159133383725131378869738144285183728479536678555953845407926903038694816284297754397881873222196572203401444181672688924205074347010832566468351683579004280582955688460562544185674718248079693887421975316852830486574444547742203998753334935364038541602012424491214527272072774524583564564075887674248335501925571364779716137640834954738385515296043365367188671242410075453220139437742543462971115984271314998776388667818343514368445416915333085066254009560138873587427338940926566294972950792000125499491726144492276401524347120917980837421081117486020391181300802666925659691944126996952416393181741937789649863479687091400141788646941155258682368618557806468169888129616550279573894268821937531399198017670723176891899814483791898159501538181617049512059756614496296826987336548523519166064475168700292785398288298605195831474419743863200184160033520513617284217595378650642585464301682748798927856464814119896977164481557279322630820870203943849502138552634018774494063520160486149434255805311644772728522843594700529990564519080800047150786234626042134012556760274156014874597243967669468762598874940815309483340992272402699789340673686411627399566868937943615276004060309028930621655211109998424232696245134002833675782586732773025850110363649430901612657060843989147419948789969776308979080565823304158895391551625266216127729890790828768209151608994160977105452833821196222040592647186532000057534427497657489678109463055798835192701058813481258677681884725182012515557432744221968379410606119528513635200668370516903882951020544868604886586317927708354975062296478441395779280636624296604063412981301427862982565036623831055024053340737500430785304049287794992029995264999642181267424093678251014649408728454990340125441129224875178961089674676837144532448676032587140689028287774611871343753409392093412281899513426174671116070883345990574828807347564117659573642061863069916779436047070522610660343127280646462382924986885294764961865361539154618442537668432008259124832500780356065711525773497216313185141470678321984680297902407325515379975331143109500306220668898774881494477130886915637654421113608936557483571300348130939056273657646630735424406142895556704790852052389939070080731648256775128676007034592086035680261623249845325742882478133397352322532807990740797327245835401856435295988594943740646087320956348510499514634821653065794961539039646996030209016188681278546111008138407089529427273539340545776977819310051319009016066146451137686182117720662737985621661126252729654880075901781520256027579058568756740787256849346037738502193645257370969838522706030299281141333626219504655863932007721661144734790045962412203134387374531788745825909667594436044783297573722741594034632456127452477476022792280793461110769268843368767552590902917827339857747129638685483424957326942190772175651453709461865676399872070726808737675172464239361936321232870426941719314250454976962886357220236158988970303011561228820212646916497184406902951374842501266267558697357481952594766310234842702010012764671114467255388250473912889915956202021389808743249574114469222666089910568246164050963631599291762916471161978262579175312468950529666931746042376141501598335953247980493119191270464695216502724793001625525207942318749459652907591172226036731520489665679372407681579948763055263172615154449129911804457041254543001354316356277880193914107450416288834840934393686994910862099480980957197623602608327694239100064561627728073020822575208026411857498079724520184687213207073718336226319391622345547045247440801243864374060271680530986679053014180552687202198920904864354013315105143352181172705071117753091795699171119255263542500888856303210571910111892690544034136090613473468668787176869898705989146313194397443118739121823390148263681966058409909752778938085456402751293223413535246039913587079150220554429867820528369757453310351258085726638949258965856679203982633948057641860169180675874559883470853208679375829049897146935952665714299108023911600652641030438902571716826717440491833558782932462706733530003385672154673749144649836313736997992147026085782759791358677069972936719614307104340528446894553996691622275397971088740416206784687768063538447210897850448068887550048018419912857967124365921142980698039374664436625662323354624925193648878384236764371655671275466728008539503446188679952683258332694371775303821483432564741533155953341805395571164374081052403987870549716884029420615312429681199110813014016388446239096628113624402019954954398210208841340723024901459551238255797597620086175165312260013147822480962812641995852436251781318896647093860175109319215516866817207982827650839104902616152841817446630604226960649653569626854668528541111174693187316342418308040308372841173793667418335257299452414232057152919400653826045382262929415734324806754654592123948997835852881673329655450033646204430825044048253123973085946836759421725590107748248122376550813328486251088509905097215789569017014579754523205910651784241697797185562166346991396050869641443627373590757267550285839286736758343605257485843541215174144185378951651000312901457208433074890469961383235095815082811347532040308142657278482855587295874300198424523909803702151650704466447453830972949424454112978013203881900074488106332861956185262437524564956956869801108271560280388297909431857316302477275017387992532212082006564459366051006358663521965695063179306594327745072627563043825374362628339910489828004348811636007004497406437873643542984657257999876302610296942175784864949562032753446220450666650084998895143066165712434982996348330610851262293502043128776794501490259066638943730078942751806803222690694835333963001221098263961975686688713179410175546446998142184770732492032365669655807986307143242386921355034913754489145069095768986283715960096712168895545628236320731348500484462034345822619484217914295914815894464060183109931635112518276854447295165923866912794930334836376226760984015245325981773940244890402118149337677938520217611635065360606356574589772279788854901997103543656455723657071898320263668588922079366402057562147272242971701847983081515532520040410181842657645992521859204322339471347334594175185474925251453961190594331533641949280017058034388555964054238436739279195585262192952166031501422709545421710226823779467252513376807735243813594676666789671118010215744820891056054503284777113169075930326545898557272395598474347960099645661293329517507870239221354507704247350453059670483853948627075575932098998164267088790377762546261110274952903928713851657468311569220465519531359906784753711032845213654727868016112056665948034403757513779694701448268715345848581765331513422269882488640609214882987644488823681487607842863854821127813039098109722677423731382947796460180383959755370284243715376411339343551753636599286158317541493421643712708054307336885331415699231996219242480043170748504977587862370715777645870327981843052042655574885395268721315317348305087460773693123388816290080434992639645531760114278254000759925424741893528925956020692606312270469816383836892356630015053336179236074070553458488374798364217219145760693345759255001580786402320719370445684210433030538617952849463982770194689313246512315897110252285246339089042022316900733806832938510910654391417644241477884812661814185972549078919327976328548779405179973554571701330413297622583879138667247166537697461941340247279229327010156512262632130004444689016563745930822890214714298513008352309464842411664615614839433729288744016743983264127289469425590916339059567861733848235389848418159148079659995444898258863917735428584119747288290773088473018190897168691878824446021465936693779001025547700931287568870877747211470032552802271472718214817751736319769940629308647340705794553314012358418802143585976712448850213111878645424984968925216170630849425991490397375397025346317934176981879317685647527542977154745357704203575391899872135830390550988516266108845766060527655243727262131382095171725939710287931929033542838914020703364837191817955950222726291619849079942265661591182560849403080310029609328071374219540670226303059422521319313279401000312886533145990052408978169458067924700568883115535573055193984007804461824809239250470807987349040652418814473296281288408677418961312454477686708365273774368967324047684730541931501110624854790856087467670625172020345573147616110719412114519399836333251457496480769413050323053641781514311232990707821556695785729041610604060429720191732304021277230146032964745830328779555184317391337469481019974396219703344080816010111622588326854647919556784691826494144962651192389074585522269670490451831570780011130659183323613584876667611009450703470885176957678255578212756911812850081037098591952026352062965890229152475588435862438600743096222155453349704222288738796432624976563998310495868905701570319510784503608780617132173968980995864577077484164231290838551116561216626259070013116637030936753449813782617716260491505383195187036841381850747098137819050814128749701674937577278095869792984351471447278542163366752256222015729247830449042282340482892765250806010705745707298233633750380108768020303790833168301801116403683191444564010712311390290569080037801141042271876372034813649687443288352364039901312064513472519674790631414020961724330045908742458289528336057134308823553264150570910204306318891753680058559034578449720605476116963529136355431478998269677496623339906682787206501075391966719611634985221136353456217076426243085195886189164606932657445932176780599002340513756927604218678431618540295723681476352551253137072903390639918377766050012565983100938557945533543735730127616267696163464076048346377993583375961430443833064708977517801973351678405902850742982916714650524683260710805617478561061008294762119640039837640358182453959362822605014827063526320782073570745445690068416687928993753677144630579635647990419038150561358486370280487540824813427274456798896451280701599414067848479908760952176219381433777696657513421009983460239209293119618327227112790670561769555870956119556776724531617112042341531527696185962077478302010376967594011993612901170698054574432197634792685785470935842596896654013819729107418821867693863203516410615535090351280803637252112740572743320800686543634529936655427815787830754822146655250356216278270575670907622187634992836735146387251713950185021953833287294505338886523165408303150218969014765995074949969204895731387394504685520797759958835370473111941200041703973120284342147631797228784680309939486131263300287014263289676792420642053331592484788296271532094682016186252760192398649281375299474816856522053744911603858128326565545582173777888370740298426388902281595769184961102635500307575673641429587183580074422201906200382934420406744176478431889185880369571682965668250973676331117440674471880898224106846781821644023015491117678813541251324950019761229904911505731883175399822415457585109118536790594602785561896483621324338795297168948798809818030101455757528662470080258728919482470397189240793310397293733843940472843748062681620598956078011258576376958563914450019981836193093392394223593439112153673272521893311533500712363145393890566272590629404097916899184448344126509753197328546240988377035320606553608111089196062569390178706892649181658010708351377479820026162290237953471026569110275836023980901099799808744448222159268854466561495698902657265961369231399494312401628862860249482145560407532567085461099475888078803205702462350030819318570563276179922784755787157395977994373706561328054221424766799788962084598573773532152909969507354292178539064687298914704980739410870489593050752173182961499764110602486121066081853462138405725862569212887752294333352222691964043042762780583298753031095527686049275658173700070465881859699151520648739642622310151093702865654959563295497011772627557328337981932437035737181230487466063351589344246162263042576218638727666883930403805861295838314649872882290661205799168358639138301199480118666022396562360258076181699188600305477014034730802517452628491873085672272582249443831302960762464162209699007643730285044605497554938904005014151115908177853709688880664975475873816254034668665466521455166318164162258187417657014054498790053409080922090665232085757048265902357051023043242590440574919266739008297570823243812837305609112524200711521692028296316193050325065938265404339277049305748482527879361695338944380158751354799715871292813312474582893991119337698415550350462779524241634749646219015819100043797386365083734614099463234085357557382028437517883261719897191460867325124895904902120619917464506396883194535204046905006280620104671364170281496686983348236150341064546571767506792754992945039680255875581667127353466778684640562544388264182979690761099409943012083187521603332597469571222438419616975939741236309992592850706588792561797530280721233715542095066802202247063973423459432706993869555979863107232784564744491279456196608415526644805478723154097538785923324689359776551004728035956533914360835394708898677131597010866653796041115555423454790889467709988339891557058642238273652262307810778891941295373537386244423585090584888091843164011568593100974658091869033130909211253471754956686040050870784722103522547544612985789708388616898359629459712161022854888679034639400766819814495302440769101204836225246007483457372096198266884594607432961836333965629824894910565360990587297542993502328139797975236741637406907008241988298408366909148920183430973732081128565522126579663404618462491901878911620882913192311739617529406325723604418667885949059600116928217118451552502541264744881678584672693560759817192433521465842566670063030132528954314088207115419909794969720850275743728491792255871795515584832040713396724850164500186192314386984890398850314572212260204268136546280742661931031197243768833404716730448540482661693510985911784285794753925623089058721152843726710234798557262495323337253551748731152372939222261612135595175171812774383125044221190699930221663358432355065388214535364617846016828792490112808875332416125603207655228304421510522829047686325031409563505098423225904368630999064170267601388651068622044525848221981300635886693196607047213349450859291052537646934996122236543183990983725762680163411330680957445065716913398760004276222143547277332382642505359320556927428549859263400978186866794794256838866867876375547020068096674953173165236471935343912170450655654026228888374045508528496421898794412149934286603924048744211497180518289049540715559858597922620667424927795804197519195413175441984380684952090249575762813692389230892520147132744837924800906700457118664893634568599062827108890004206403831094337473960666701185391366232117901092718208907688425464605966300924653110407522591846596259370782067631852963807966659950125432720966689283699720175403705763183669145080050482979699478087188070334027629350998739738576033933933631194075361281276526002530716834141376438326439998772013361306215535330047561475410887234752753160109858588263913736365075518626046442109004787520884412306069578433662333714124376064509997621424652661846503309331583208693090176020279456421050262926396714538768099412929779010310898030407781936885543736908074111587872325124161036818315177699188573921447603228349582761260278582899175053793567138290301056979819294192972892297800004683902184090252359298355562818919387018881582306625981485949109681311861394731867537622005779983933503621712226786174495796562163138346710145761547850894621836419843492970605286544968439598822165181147001872230116152981752482649164152797949980748457687058869917865400960980154310102419155593597097399932702023221984278871280008576009202361425150830968942860455023056300168995360221745057885090512970022219010787987243962770964461658947100400391103261939155227132995629297694836322057793669869636995903518430945323984658949183368059396742981004230041181488002219018732118742105333066644833585968913759230986404494962486582513728851709014207006475043382331096658901219262756608173562023417882363194317278734505021003476238026938477831322297413681546376045326522798512411774299634856313852597478610117543873040265984950515923381931349850441347751039740823915563659881859347710616955749265107160387501673147184015072797467452606194423532203437386919340691168964345489999908758653824478174069783443930569004175676404768669018601706289852107235959198461102627619635355819279367559524969638683627662130899475997321976989363387074099619752193284840618986797736742941536414081965211809699008815574732438879851870791432816691333996236667341347613961981002220008716448982746300348721934400648748172858351272832652712370124310871034378448603506543341262272581166163046118450964838513009988428995578848632964685560545231108655252263829920134198502464700882350896181489036642115729114435269892830457545174558366245337008663070157865199336583317669002346972889572046704421972973664015006326159737696678898429586980943749098035114899066804864782486940576795156754787242643606800633981089717132197611556253215915939596884940629473117262145799329722359150506091886207837951673000456360823835921451638928320013630447489364657418372603503941836979585680560017800829145640785425508636309159756454833243030053861414459868734338801432152414121195873519994913603029635905224060673350508314114955176304955490659445437344861839834641381687860276626541120437286260661292275278544427944387960643623197297539298838938244608012636156460093838786707039743717982995988444837465121248145931345880548269048028879430188332911640647653236517835486908873398247561770296397019919049163270207866785338877449253387965177469931641173116620658204698473175081667899786247594585968347404616450841657511225359553339990307921742019340649616237799534813315712712421548406009884176456684688660538035977677240094190203130811144883463049023509243691495626244349238188505606895635976903005901654251575953810098563952976287102627600394956388268517335578321753353295635948949730328675924252971776870136381815013182916899631531131151255378333408577147630917613348065301213655141161090857130106600391777682157986557533620834576491343252264929148609624939515785305587357797498432479236662951790418613583509772744873694874254042484770372692653849213750191426854148877546975207704174401078232770756375756690354512355121942221550858385793746782859909450852545325294130222992729279447636817229880939429792925832431832992300517096883963296312508619676676350100631340109139976314920235660630074035725904094639257196786985305836633406111053241167753710723101064178626599623505324727754574404987373655288643535643171411327294621959519682496068737380674672258647091546283144198334152075649130724530871255031718445557273797264568343228714146115985710135523251066346508121052827363977549416667250947604176505278381546917556111967204306003609177416352445790267095470476691568504980562909219157599266069077817145791059186821707936735799840675639378051155279995378733854643176638021697443302198360132399593767735960111060363323771340764945240234356467747621058711634103630715954770263908082995067519222530996168081350160613859892645854526318007764803899352645430280309006725525677254777368027302183697592930253866310267911033075250883754523223972546230824530365131946660817716175667022030131752059391535724897394653866547996043630583119817769563005813518232536666142016505685698563012218018378598901768642018508730634109602951727056949020172808068273820434929970886869140482865363767911405227059633626973277087860711587489726633205541049717294705187854075674028481527845551978524907950748327525681174048217176749849349471312787737021818453704126422408416878479226860657993369182263246543793367884952412003143337041190831890931780034142615624088475175840839228312505937459051556507214768758743852022885707501933897361435784448282304840189984593980994608869312909965071927187545023781925467380075205940244900566868155155682151428060078597268781432226068477389814734707742701840102540082124926969505963265067045084910901597690319966550099215708514503980013370728317331006304048749794742560791110239401262077884227293328569396351186893033035675365408248712020070952061420172324144274120066876319592884514626198947927826894507860061262702468882731483878593640012079306761757269232823712910750280307110095447139348831537796071368724627638730513147292607815638197075024521378715314201225109058949852801036767225902265176039545009521008448713191362597399584570683872734763237679655461213266137467418232333907029973659730259615441312381965351006628689024591869230118043289577403121799366022265498714038104347719102951184496057004863321520800970103665133321535519122825877717331438669974006103965667763723513705380306844063938320153607401584501368443079868606388527802296253852685978728735888905188176821670426734655547569435470545398528604025820384032821714460987425626705818679013756752661435956722669916479721567358072176380266479976680500503249405801534284552467460704601430874971578689126617212812039689982342479317494560857001781237309682151592503521205620178295734087333560494296227326261372741884037066079831026745227810700834783040185967428435463272227459577592188568799989744474473659921580904543754838841140978607749286805194125935935903294155072290703419541537335459774197524281460614519662538005540368466631534190420537888990168216759763022125139200479623012906146860752822410678215432267401729069819119002403540554205532998641754024171559648495087808876534890164652938974654745600699465420254725408755112326907105746807204207066830375555872521450280663618530947851538498864917563250000097717828240540368000146773210142597263855320381064239173890386328223276839978731921780154352901177377334389732274953856812567121974248262624976852512514601355177838416126278890764282206325205362867961576668290902939457725865693260629833554640667193823695442105218724924705659835239228377687128427042993409613944125194011462518492182989702367772112769451141504841510931773902484740833968113452315057849552112607644835205155412498328443028600183876870001014934214271776410240687421373381720360108082879911862161952849818540639622610600659755091240727416217331304335282366225770644803676741505443455044335802005214915315914739460852052327007334592793502078722665281784177330232090283659653157693064182423263740584607240955223042365829551331328158501567877749972667867661550753562912247750954216255608611985574202280481873454677588424534477026883743187157256126907388285467283904036491000637597376108902081466824770867708506901850872112936979657022245546822197700393637035878486140692718947061227906962330850102139764919775355669532064225108395246384968341907484019049834817229587655817848155113603916994946617031879746840606136329800742737534094864073582934535273047827733698406481586589266600551676922063000405863592441697339951205718623632724669589362167421591056645378675777656566173580667003955442643005201146892395245469024693576173735680318943778094090883805927429144695030261170636787146682304267500024556128291946031424390307325263330048997095778877313110597239196003212885376417146839252741718711341807766457103446177291854833796760614802298601707862737942646880122731543404791817684294822776142179207226239741645535503397355265069324771692226070144440056086455112755537045271716255130747318038256514239269581613283664942862793946513009942897070921432069936265207651284822798172812214687234950106957714695941727844797189972002656878496820436783500886222740356037216656192486650488519958443709478316703929389409205154735402017162300118867955954201177018444119194919855001430324798774837462332380139335314650949851156370832398251440331326547829632330510900683421292517782110988635090468814266058548588983463617568186224031804840721344757266919101792107863249796896134758234355312581013615888098524998858382300958055949986332080067282798139023703972317044385166478020378267790832022294380937922232328704487715875157388337846728022236297255311810471681632366940886851805447818785599583509188473392971426878081564810903431950512600551237893087446694298674044647097735410828090023119971469633633154652966302606107424088128574381215558136615389333388048374990577580608111573056487993267066197324984583640339466887089512834870915080040263752097871440214517273516236447768108694830585959262835839006129487151666222794937175235682685528024430903338541583329511564563809811930539789551214923297290948622485741402937348938338154547923541262666626923047936858543166147208190811582762961087198113336928058385084262080485163894708332487154809137133915449612581031121093914741419370146041365351459287774730637981230367067852411629221574881448437116761813854954614154301134161390139599274332142018342579197687987446313564572448635762841388138834646853968304767949113685099352639258966006133624404435429066775000794960212962133386650995211461138711780205544735277496466790371076374054130407589209035128478681106090073830502934448746176308997814682720068571260041507632579361550997987416499287718607715914964513972250066659708110273062279678331103869887089953036215270119304225987344380196437714728135063963576353349353785645629844527890960792274642627918876052974696060316937960028286690495819985435716568008354898484390887254007884464888205563425633582268267121223458149016189696559367076272718466621191457010891087784685409066268542080282830814075608109277724120380649858414054457801273099069488092524484813336747235914028766773393245081902813661345405277156388270693670079095241343230926986442710661932505684598671843018729385927718836075725303741446135916442032908312321983630524134916908978098126073276397507620095361880213596261612726879824153159343535917583821928266418168248824781340475003342504034442070161058778033529507501842240038313977282092917653298635099637775116332320445786046059561530589970431541039616834217004429159884342427908171480532996276303489975230275393354754390982308684973387713317546685338328749254712654145781230076818442836886646104288641973299372941529353222090458588564429051453152590251611398720802144298248666411533449928376148747245358359331069928054429169161318621876855870771675524484802291753487594217063390551443659282369399276017137753864650709514334632792610774373439437245655522602932779995902282745871695978383982148277433357780235231206031338514473169577605443088654228007622960802587196184912901375774467177436605180767589141519629507267696762573545696530055073146987677096825932425352279130504997273126638344378385655323529895687813221493034553670516303313612051468487714318614318882069665987046133432783914165422923931342171955624897257625016581424072399549651427807477256946191814312700006000299700274534699507216908903299033150318805266421493065509218877604736645326365678315402835941455925229053791407577183800427819683616832402480501035218629705681080849187529783669760028665988771314893174233669792319297272830519273762720283710035125110518924198295174575004647822300937187704881153803846031164525374490198439955242100741417036360012668574551112788423005595120070377117836662076804904298703720066182113407067727563648925802468600509887575684963683550654999532270806834100745952172433280118282507860785552922187473111699268165536540164250264341860142968990019844806095672409583167739703190936289590257716768516617535062763863802038027618005508760053811529876488819416885220585746080446515159223636384213865536448649724784228381342161846808663381882153583462245094502573481426110175525957716710094881212822148979627664827069648470270521252995416299730117397939430174714057656647453645658274346989649090707369270940633234801652474750734628736249325148681687478368048412255168949837228417592377623652940209856345882838722284080970200016503437863674841353581704340011394050006475008135499170313025217233654847978118234965170928502144548675261037754324770626601534931215603985679783046580114472882209719267840885846536463525875750034063873611736917157825205111146719811581896496650040434303265343188672814950438847452041792470545640712459228696457818181214062956380370142939751236460885303875680209347985586330183518456870477507655477816956377231429142359538327850007385535723345561221396895147592568626905046665472872274135922458952089810640715285611830982065518192797030269609625152103428152610407008590154644904373458185294696216119095161522184973258130414090627036105842003135083169132056745236485174252366501694609047463342770694039338690311763544827400617882622583481724734783512513536145943734007349336540063049863369870434873188503131809539033981806024317642630136263752239207185133873588543470083384161473054864345308343592000604092077769670332687347882308437703642354106399979994619445557073664239742565958793367643045212994719388607271927904230859496077831878571712239466360533723707084038361885436862061399703199089655707806589558558863822431432567056732197604131152452695477693074031874629399147327388386121171561737346187890122992556356131503633869831324576272438908992195328002799672787157690340539889803941748243424768546856405945593566844458459973489528552932653869237916170969035815851889698831244513007104719017598655185091145143611261579175852097287028299973935721515486024258436288718887768695034145756383960555777617162269256888030745346171388583743291372646017094643885339232864757409824247388279515813885022776661155404825932035194536322641283219207554837748073548613932904326381130066421468698069753290296397893689583816840041856839363407021118132631470551724172074029124296811629159168834101678348163196478814840002572344301729753295946231329477295071943041187483125724013318909176792149087550044289861427731474017109479233876719365131867491209226138348285929826922629922887957343339855477884677291347220920544745903359122025988489262377889484252253503754780658181243665133873638885616504941332414075754942033773156467308045875826051410216814517009407985887016704998496151889418357449638766288319393547409777911968129104808331313778618857813845316586315509581097655170343283585243794173450182117107890880936091897709136110123400146025761145828785829927217874523275432715754821231354161278348729277519979640805025722095910196229314119353983274908918048904296611267095176811422177850848921391736106709663527595051354482875492788183663747215764876082819266126556296221591408137487433675341703955943171118623094008314758006835155869898857498590464083151407102778019041192999084369761387040049522422633892474396210274968995801575136389105482583917369948409135305241234320443896408567344037910557786196391093790921985833732035367552587205193267319491942985075785097749192649198159957511414498291239031696331895730633477339930311870850945343595092282670623313250696918260447707954606240390001713992575057889596745362172787340058364739548153140015969497703394398706255911368325033507236655838677852619623221347328809016309590427070404127746417660974637437017622601710525969480303038173653719285686661078282875667918080779103016546266495079862657775963880208673926727913879256576359514959518629430573510709527028511403460210258973662781136230024849557098941000225688023249444273629603212845938657822961434013037227991926856721204158141306964957090056761976923191851487717892370314203788957867022120449366268269600829103985831276640534306106002539103076148429514563859629794297800785257122464937954033648047618557482657697300128294716997230672614693785756524308028586576097825533245550398750592286579741279296426973294920867322195180556042264885397001456961901993751985385508877957904447692399198291362802150530338268278870297595408175825011877464183656580790900720103019441289335497061848829442618589188919024696135789309280049148361679730440895365225441803999926741024739054481984859427185586642336582395791776676115951432105647026913354690315536150401566050233667374217306902672393274088431614384492473861472650951709528334254897386562444517838251583352692939063775804144843874332496875400922512563957024345566625186875265523495639345432764229162930268428569201535800130113271409637329499350506073478690956353200242567726588763917527172360743113411420424338417585956745552345674524371995821017929974219722137531029998332720693910169741589474586944437045920914631663894817514542362596062862962188183663783821382050354237670525306103502839730141984010127014999831278446114566677971877694160912987418048689366219344923467343053852449061795439499871211452419811591501851035273388126953550163916957520329260930637099055404242699024941208570131759181821707980230976854215703602382348452038657577846255890529720272763354772608594660172589534349617536356993793701136582271834637912178144518460284247400920288931115788227027000919379754867048711305549815875551172040078324118406308918362531374643435315370148150697591048842086907153892393615183841275572546795645719316564970049509129522038424275876975758136538624069014443468569367022570578480733506198823509123019448200261081963488194439672396403516835475174775523646829592585044814310630590667342582730758910016561441683467471730504015022187768512697961027472724575306146994317610179430008290617555985110343529607988069395782471555403449587109517296636013432307390302763658070610756430821884710857145903233867853718152844259417801808318160184101936716041827272001421668390291534590762868062010587524759503163363486087559635783300941004433830879066024309794515737168352645867588029352786207978277416027298846678539545086003590375859009533359916052955750230722971999650741811949449585014547137193131616512049778103426480209293141700504967165806740002007125045715096717611852872931347667666701132914638052443789316984638632315203123532022784302022781077345745041568826564142731923238217772404686601787388386123922884579789242452664697341281133197346518636381904207618889008347202848610018812669025434352707282044151663056340793052936988736344224128637263325134499465260597343596193110710405478032190164587681696549325685065187846840842927595114079255473642470014545641299144860922446897953377136122056306236002009751502220477809044610078294888973880739374964805318977484903398582285138841040917862267211811945351992207519041488802818825561251080039879988250473258899484849017659249835696336965607688922773493162133343496330213612226551231286928393294201412387684338973856383228924675662874912772991427658841188505779456216232610083561393440265850833788643981754355194626679776586359102388444926550020073108685006019578980410785893813666958739751795687676656249656056730016835432779555789651025939191138207735551789771086594572464950761340089637532110703046696240885886463124245028684915471696481788642475562955654906015282356077950976964628186469939252289234658884313515755343707128394470119037118126457669403171453354443966101341612105539930384286977096200681651571910699574220321186289121018557164700957508613256650295298229481183531302449995690817970422178930672210130002386189400897465372488484029079675484592133816016591930874674253526247359364014799398715154808801816785293956818154398606196884485405689678056673896340985298607425647402351817779056557545502132513250630855321911319276753709301143953599675013023862556881476543620469121392087528206071647450929332745894328908496713498134613856523317412387237054440055740853439794505186910374423925429600987565933071491481123873662776740129251300495672011758546353553257901922220687690418549749917299987413876131470555380873726653155701099254681594484683283485619442301811510378696643004780554777509552510579744451617089341737342117109759424035151629476452599410499527032545556952947917262551028567455016830490105529468804248876484023806562946835754148779703228087403326668926963697515140507709287020707720521136349742733577220336934120886894707895490407028843257909702877080119552756281519846181402683214241782815710208140769925796317308404057426986055844776211611123997386172532391359933508231252000014268126849853016506795274318713836944178126685680038112673447896103804106664027630340163812456725283151787403968881084406762271750764198353674259737680740489845251536556158045047063365378767765512077696627827254047593216943463941067060045659104709449086037582533589011695058348050075201897520927953802732273963408756927568220439663193026033934352279565234979756800575267236766716231577232849100085070407337664837164763810604127335915515527145086417454202054341443604234415189961973834347911644872910043143962296827705087191977380391099901709149737334973532075529527742798494044384405123470959890974813160421180268010531985301403438475618474484614387791118439960126978869082790142571918289841186576013366215175734823742096774346901327987994806984664486011700457312864767016016078674723835822845351954689303718355077387562096008705242234772290143115609914881757691405779344985191310705617994788014570894651245190487571677275028139299396260626230099689550879065172347250323952874274787922708640572669606251585589040319804697249287914700690920506028972383314678820652792213737203594299394620441790365913988404153301533674587255238051382343143563225825415722023540834388801615802126701774190159487716522003048556771798722888745478073080685674899219395806707348901830920184434514578484903180227503784174301105838385361309060764018577897464399564769489214964286185669722727928361518897701966254198941588265188653443249640542284756667743075030714138414146164572693325514824971059166034126049503411679731911860446362035325383898423775672559186084285087487282811766202844717702898720653082225100545120161809717186887774012850803804813059923198198056050259117353056236736898338260202935419643229811436226603817404186675741793876081331614380061158327348367184721318743089142463782107336182094394438625835180655253872676184440077035514873297402581936762749754973633611761299821111586845529732271044879620528149770132012557273298726313232989851928674162912805160275760026067931223053645267827582213265187566139616860733484503603918704286307347002313435815002071333345177150913955864979274089989799577723262631225952311957949629959343497723054688644425572280964224150688256718163862504686676215831685522500306262563845045922487806997418152603329439682262583409895823032371663637289287712963651132137728257564354813414381322371098577926187198897149042369774590859766786798060642052261487125327073975159432950634652976046061701105664154993475422674860405928808466713103798660236425121026702758995445775543638542134484974941559277902634953899915428528500813700779941879561214548962137945698385752355396481375718578144428090253121694758810022659237912563763148201292968809349047383408449159330824642080963669108196707562799319131344193596235357023669311711630596085219814379655613550442090996762982201127071755090345086577752361916863495950193750092048675514135284457164029649988598274134967743066816872122302580386431681820151345649047481681438833515761755534649149828362061813657624096461071773452004948436543018546484809082062840633145161756713933665942749519054225581840451152479953406978217905942305759515073779081064371569408360888240110999634992494211708401248180897207251986813200193806399559741841243185929586295244851244462245804401754455108927823962373226539769334881092010992368743015510546947615034157991687057303248894463532084444059275733977425446395784625686287073771039200728177056682897401588836084634009886578772763680860176787992371357268387305708762364850843557009996247992922703718333134523296913981968795839414139724167428848910746038390996058513780139145668615662470808184370217140056856596367098346399525062991888643739123193876843418851560958021332767928169313139891737612360341479340705780914944407348920059496318604551383691366632390337097840163536065593136672103680468657309990584942474357607200875747093956376484117034856067123076905706134914313189316737804367412848713996353535967579027441325582913393934805214432092460782187491433094676388528182609483087449672802727135494355606077898284546773828645329607259625935635998298668677892323261865278439001659140203150910367831054063236181763702386127375579781914466542379807431618519143868901570926068888245488779151383318087962080544695109777134181585924075441645129981322051677107189630277089268051621020713129825030669882020067664200611312915005531603462386330490207717203991796068599237559869174511220062392620669491434739149351926862238136476404929285255129928594435922644305061378727246321955253268861562852290083727240676339400491814485743688555463299437314949324426046286871713625189419093402966042652060000315858995101171895577166298678490661328195949587218403237836411539289604306530505983449373648507407484868606609893320519369308663240915742249525191187922341468664316599915331402979809079331785665295956250217560379708772477684431560395651835998953631459234597607019422612350975010644219247352113519396491676823271724127141666458831206410078791815457314300407780343859966433162232972436686498110857010206539577369282831193297073159511869819929155628946216359690275909129780262404149067590691762079300692856066109177838890812034436325954180742792161468882956828599590419620679853305391309006267993852086890263010181089613619896422645067180775120089242715579008641866269629204820253601960151756350465498961472324905260370603276350317389603696982578849888775247582993473682204556361673299940311597266326687899108631495373786186584917643977621158190452293870933746987458552984738924578592006059183726508013860267880319432068472991489291478998841711023160261270258113799775052469747287496351417609967882703977782140720502113445194924680546743097960691577269690537185906482668204144827251388167863745570689715849309833402801024443026297348998283580749278837509834105666417253981849122158060942115989758685792286031442332636854040173553220463586704707742158441969475438787843894229605772959086462002269735432369353447403921798657064700172714749405435187946993997228604774390905214096195615501845257084468789154219758566028887509774059654435419166851054605272977650286621977552197482210006222892285912301541563186435979601524323176343241217422061336386873843332769744802557298628102410508956908995480335013607468306896641043832026219657581065551511783324186653127157765426097869455087221357371293395752646580692960040247534570855974373882121025904429427254352786719399672881434782461124669072287848379956275511899414190806290424442784473219698425469554610680974876147112293659568310496030042851030606359828354615565374762137517960636658581195457529933012160055980787050748070192856112657706797639509172120818050519572930778312346745758762617810293327735686780453486959736433148170633037733703758021225567294903610587215889045274626090715238736476457230085101316180860865757770951762125273206593909987620915370051577106899331020839329309192549296197265335014830232535871174374935452699512772562151079710613809626377347700298116350150937244531838688216838872935528553293976841702659017935424916137056009415149893135282388038343742735077744954970488583143937158965863464294986412911037831237811333297121303811528465673101900828690908970289752963912562291326901617066156244136063220525944244612054760028105327096829173874383160978750246236559521393823503237305942006749416007818276536578027548828385798519391860110682993310865545565917018579765890226341633614512294559254521249500893004086269888533845617693176811753231997002352006630661549218902354955121102305170588300724184563085255649501826493564381573717025774384659551534836032640030921900874027393914905498105656541997696495278890240993543106684879638678397022493750374262191481048956627331270024680800960321595798280851742097807532667227517488902187026550489099573573953865594129971844751373058107131775610157249643770726022819107278317880870418269727956788054224821876841367250499767496458391821900731924323233548039865725654613178742357001322061532453424931754529901738701109847399570150867585791246885674023050965001643288419086678991486573833739085236791667083161112190322143492303854522749964050306460725949289932637654659796579267883478381959462519975122338187211359425434305525580171759358245530225040314839605202505233099303911238174763021181085872969626231189731917089946762776314345438390009426151130261039392405867068449708124417922061396369530817769950245563934479707323455094145382203467282035726182863474510888795028499042579854352297296457927024867234307918028157247579693042914761464030522942608498279897233523846534711162286178107810755664863366423787033228309474739807451179758402241419132066350630194809995516180671028603444714741309003166488167657753825733025064346189916940592039479711223543350375835523347826106309061857412464595831319289937443053800541483220749081156765710758952275483263207030356113848008474816829147834443812103733482238423893775281638498591200604127702168303343027430267292227978604215933897345164017806498651345209940130858389246266215795026851052452690433920715893006604053569069956676664315537720029978457104310616868118089311037875064517512436438458611501251105832254083351036527506168242679011526157585135242386554131352233176452672284433303966783727566530865983577933944334202687742571270734157548849415960529638500997206123669862242235496763300531688693704680292205393044621392328158365895675371630729060799940898804179530582855581831449150284645088425353952409874896969104055627487409618537789163386900012004390347933102971694210737939727359342211908921244539574151435621025601708905865544907611552126793155882068632290498020798519790557779997046342420856000891564510199483534628471942614270312455551859837394132372394427618278154540268726534537411159633365906696196900761191755707249349162875717359783608347775114616105460378499248105145630714792558577526213347532274849742026970704353023742659275391229867505114842962109086405601978169671033861887210598966845778586092097654927304500634590606771027489037430252562171063191242730280861192438736252165868121534685344609106515506867914593827829928100839999175646290139340137940337761285004460998608584360517565034710103421412437283616884877307404558674129723433560789601962806088299917066903504086003562337901939493319292402284275814967468530163575631522913933678263197084083518629215020829350159599024145513281626797062727603885307805735112898302734244083086752133580786805592634853702605588802545553011994610716373977934725388089573481066709204179780525084949546131110634526896665269083480366048503362186968415255677518950882574359480690026637675990888050669423943098388939040293878153448004380061764078692299385480535476110549237016438573836607851204732656548367322151442907397378911259720312241024656380293189290919584242837083318896738338750602078798628309054643091015134923728222793409667538439567788351157089185838998810672633470936530372763256869407680423404321120875829757205444463136631371478674792689456479755505616063007373251238711296785613317785674070043097920722673635757832392717454105208735871939315597265571594545299900883187438591462641929426278012046783841444752954110731226773252063840027497868380402538020211702880984857956711904575586196609006553213357956921719196902694563900329280988463556768539664133647113118580514256388586101727206222185633310779128855042321311634658500528022099237322214186567727296914582121223461475210061999704123843491941296928270069467686819918766203835278573853428786629040976935221696380223448920307403337338017244276844617026132195633069399238682785699842124484622807992392316648318447203176271813280741766294000869214823120506738317647908907214882030239588347069475995718852809693164281599586152698999308561926359669910405830849031494666365500904682392083484993478589895794568661391112406621832605130618782944937239210273776437435559609390787713203845270126102471464996178910536429658196750063205532423739878167587700493244494564368511190050508917802197410986763821104175404189419930452475579543093920750817874843881318810613707374935787252318236709127571725115459880095748756167291928824582572636189280428976251949995302158603743725760099663699153714557641419535076146929475280538547713315584699107425306361400091535808920599648844958512609175193730183087186154942542704279330241101978372271656774287174961369919290937049472156816285926809205257214699715497130899870716663840497724609219667982117101874119843634302586792095755567334240684654574139385368659972577001307302908695953946787200298364184881495333447488359619095987855055281168900313486518626370818454129924071947844135895652406128167800372942490661769548139374009862774130127189759777969187675590244216353436068613174728035720901439478604698921868839355932367369390935087939319757779359601651397924883576996749281208629411887836955990641469528481846748992975532072447663013583350417252916142725035826246924612398335328875238930243812737422679974917522631018285696581024997108588642456393386878554910238933304783088645975875155575293306053036019868156213294389466312860878911636151470309815252699564340971449481244121928168569880809102426565159335963784102425841420088946189357161674525884357446798120591563180676323176073064270399587958092388719640005867593467016455542327570167287384553856718483304468364006024659969378323897443782632491321705069224453968142662293818885829289126101029639665106877403509957378047796051658794169266188011035579964634180842079042398301252180815456292983394444320600249026137611125748264705122683772249803651778685270720992670489552134500640275661387946488127785761062054742165402711779823813105000428939148568729064333598570400785683240599707324991131918590256167638349706781724915025667823075045625947966976917476456549071725255998742163095308819700110962716970568126724883261019334339986021660002520486095998573398439363852891916845797477774723830845117654410655689101876761508701092712358035023471115857107049074874819620321712275941228307652163676393114074971715576318158021749719101916790051350184063487795276806945799180583295577785722410440687918144021226601110341407541060109935530527016694270136400431736722955416513638571051774486996143597156416153254945193818707945025613818002947418634843843725345092179543676479809387582742543394440824901059688195181308746422425252461994139264676979821069174891290262602079106541509470796096340387708262000964638699621893534259825143710764869038728298863405493579074376926959949955030029842399060788442441505309591144606160918390416595042099575244004710993405664404608922609861785302694459458168901776766065679547611948343012713343670126228845954816983876698485307560982979414525527156011633218342819445366959931358128768049819228909711989042019491585942178893225872594774475604291084776017732414392385104635896865054755382514359446192423974213917279801814711599269066357298807081958359504402863837465307924452552811755645312820565093533880958145918666992851407252496166690426004228339573951401804201846796785644546042895499548253593209381185912648434068096770504628564945229985623842475832704809614730419403928142812676181736033692252646746521393432152331834061432708898910598190326576463162901752690183066706090068182194333821007965345565879657415318845065442154167947032532180082005345656700438256612155136965403430617306683100948034326076088940702896527497886524341526568459582568371839075832447928692629394315802500311861841371343668979093955244584154714389906186281374141842844921281270735732704212094802723456489895351057282489870475338597673711877409589285172535076495448575851456373898917908363134913314213717375482941827895523910287847650627449586992510216412114378258480950672667096064115249755568056412534450040520799347684986051534171137187485364144759779507118215790210907792753251057763628923496939661182747156369714087344063018760925358443610381578761066197415190575083742460581908265367708537009441664137262198255803739001614828654744605000086906962768235749343456162275141985188214973614336871769279904479948136618260868923730265891383915233957309711263014478188289432297936709304040637379216468081331510792947124516631295093267630310115201765166215135528524679519621243143796210258830334361107232677528727904382208021683593284848054637985069675931283217169686487137592017752658680332188229280799159265427894558261235070453037745997449786844453054510941247516572159475277270988120814623672179807397184967775009567482663567514740122288699097653838048794918702489264544684428664872710823060629338514803952230963760147335272856702923981138179499532635697166735583547349741621027132327944702919822673883965805093010601311375450253431319592515050170403035664693219085572571682821433212229049753949489722241261270026224206544079890671443092898422901691660633679804325173224947996198932228062510664245564642881338710345021771159767726115463243281137474134373715715374497901921402440217428437800398129254673127134608016009574643898506752328525435110188434738408008779687206341540437583917268797085268247346247183408804263368894963869333175152861984970529343708123845421002759724732602086432906358523665556396481620996079397098673968282850629801800295419764237010150207162291210313940457483313610156716225225218101748599483976864624133257268163564240433919456836355137312175486076647256515522580257348201008029585641667914979532592337088484428253581511608321050262053751768170579145013450702252939650101687742684178037608034623334321373216313623288333017783842278183656559603151368605829155381027918667416291851629682565018351848495703150857629807631928276063556452994223094737460599684572476190461579823553746207178298262673554612768794315826667923017782866607899432803097079552246523338204691420154680744222139828652747587785510434106454291580469165026450010891534301754516459844169848729623557958235781120340481861285165489302280289031705226875890346021838827311444475694326031517571187070568640166091092548345413766206059068347030495497770144816259699635097564379435543834351733774363876068078100322109488220816844268950789738978500021467727413367812311459561587978192169025812387688539850966816727648749917152569548430605326588497679271941337728596440727492803399998415809802941500973489280351429991428079878518901110253401599428973540211349547190220047602350361978619101324544289053918216210139684488386997653837107200588328358693518543900774654750139916420249992983335370204038541086228749813188218529722604679370299077804768993998507024852464475104814031962098762157765448836085827031113541141806152699677004348513752546955506747459374046733694429356852664054681383296525465010346979028328834954860645889387572878274351855835982538202573535893222383516235670213592226146425616653275365136806488984024850629575645569021549847823870998736327965522207407810427992343449420646671769098246291590471283804294249643726865808044149104966513484193562728432694102133346406623505648356770236887261088611948843166607705121040990787504591447596601690280928517022852912901366594529364623944031253652336410247938138172169223069269262117207610256196523519882451677131745585857548174272884284757868417255506691424606277194469627735156729592870406823712733382354907927151126344840473869967490966468378630521974221490066602410699990423873199274909687083631772742158077869235863205068243509621944840694082631283098902004967809106622162741387549297331561499254882302184763952740617945951377291250266214226224629761623579998750458402923023895043601015311576037742990987309235756153823410536921583275302860047461898287524593825705799917637848224859423800822599399271722578542316547615241642699676544558576890032027864846323733079030063047084208623080990808076795564933480767319299103997751712443965725803619562235157872080846367442193137525136098582016781940776321443665555038056982011319033526193640348186332012843205626806383934622629973384067221306509184532285755405717363352386775566059036167816034684633507323390321366111941268322330370087802431246143517430639077544000504045674643364909192036856627061222358904932179894304787851265263621223124601282860344467521362983399864492933877711224002405681765071740580390192845079124358556052416730565008314152638564890000510500777174539998728823245455083495628162239409296304092988030464452105307103869057548799378201567884855025020095586252416862075166307468794972541284928174972668663908886706646907326374235722922873616207600715155797051470722197975015126572922418175181507910250259676869932550702611549715773727701148872398789245523516129626008077470207213944145158433833323537396252582755101418940270223213360112559615102088778198976025222914366507976125053616082456304967604651071642398100501917508654909167399703405544156710700998969347985715260762273930709762342562441456482681831413392227895030668035572891074626137854167209610613634538151983650496833722013323109095753097157680584481922603831232931311981153804065516407300500610466824872103361621736253856291443275358987474210604676211251659731213812586238009414095264683527064183561072754223203764485328833138865730710030806028874455409253993376716373916656826038284026572410183456237602019372160366139107950758331214519195846373932880220897328586355451020975521619453193468480110974358841105136144880033802202576035214568568627291232318153385960337233544287199138923744947576011844836700188294272691129166016918224418203374825292340698613096279144239983096645362576146248101766812758345421638950311729831461792824587697920972915159620899200505129010299492522694906372188301446947448184072096648148917895951750993229734854974498355770336638146295864409317577478392188772778455022352567227899518597228385606446897768618981196758745952116555527346226941458062960494727977239799129996958489940525238311620838888241499095820034596655662006577287268415895517220202095160397305380560872843522035264938205901430384258911191626075448302691186241686003361429453069183902617364585036179493712806707268712450834660624246601236897167251805756986475081824922468655319520542818509522647225368294806804639703859968534650517442654669759032779414731468110881547058953887779032007683788215016284595325362901196865862304049793860300351777685256783694134029914696103653221689106044293589317648271409192908043781125644820089287972924958452834832469893621055881754638253503239587328026601768566772585763233570208469543684736043196507408420358985912451194558603407405200267930989870307421156500343974507744542579788556557545458331789136984186170274333602681986548859635110683997360494355562757242656979459613647855985936478318796306855174434653846148091444882382547190641611812954688193030124407278389144083504261020728113550284593485138481696992569017339266993055088110980872281712695455051271283490257299074914309414609717611505366754661524992831370470852745284944176154569450641051609764918748958776628451817999305851179207048671405363438056343433808372762062899156726264326124332315807361719415346558758181209880523280622726236265403883587611236777673100747646329855101279151500667516912602188234817012218403506449021205382926546035767573193552501852444336222870534836514501609060396700053579913191447577347782180226123835590963051740375675964431423772409590390214383166789795882768508383634096406750947549517417438846919162374130207891714937213938256626966441584181021071347265334584388501723361467114691326708793612413893916841612307243062890208100683654959433671347190889738903076436008597282112284927260442984226316979901088432180924262290272771414834727257950648122878500586250832140089112737845333755003393491616450404531917041999796720827369022403512989179800088003143286611653154027850424194013276798295277807053847471003239688022830594279387518892085749391157133368643474329890543868871296033216355505306274308113895417692434446532735979261168907551569643013413728494066725773222856152668069876841703156690125558190835397057282177788634424902438043941587163853474943563557977464330193622346223885067365138542431624541734506611965656065365064340803619143569882620141929741528282731234940363071111131534299054254025918976476310114071513472285942625512617405960328527796313847702595056413688892170976747796192032942181625792346550799523772971458251644135163433634090252305686521456340546579749348167306026196959232186266658688382349253690743642207087223760002190268848842470369339523306691280539639222086366755325572845189093579145644050114805777051483466068165709663266082407322478274111255891345721368369334716527998335166770679597036670025128544023065385138712499186576186054521249133169832134667134494013944526228501318290189487544941771605557334686605573481071512759586923009118062056233614503161168270709029604120723447010638124957095476446126811918020608961089500768415659779700644941417212217854787757465940158895373931633478926438694382250315230894116004132376030125465769579006183849893398850532176924949154087003467477324019172298026362884147139294713052499785699242614039359156990066691668610288942353121026003908539637014336681187376561851092792728127510216435229155697030112320390319411104195450908049187533614526515695386670676943749978952394271948583384956852194813590133820324299057990739059869942326229414893263878544012289359890039980293174921846887472836393356081324549622011898101097297035916711318525012087148536515841863359341416544269352064908889485633946456216264180771999031491118163294041103143263991802862463299079791651467441347747724319364732642875130381309010320426145901400816731163353401068491519679849841059034156432294718569454658266104532252576664567899769902798660840313848545065454597583907440614776088288713040036728230382655083898981350424564044353582770603554232467770144744489171733391235910232804140562853588769580881570944755319372850921076085510880866844327185519368054486557448580137786667694517305320737743258373129686606370545875441715044670471943371156522691443462952343408736696851427465803623133617777956704369249337983390523492598979502370921125581897532731262433850339869677306299971970449164959054335632687699998839391881456918142146123936595298639236045463702839865653839297298513785061137767091060696589918358842440489451431546090016086547526680377765176060661293241235350931706697358351251771364692933124607930770318986486506993535241680662151844094482084260708493433931341085917243155405564332443591878470988048802435712080460386068793904242887765004027753478597423952136020422058345007014429537952036978726382631678444343001490289131465457935328521627616583713155757844116399618704319274029223487303699579055152314416928582545966993491969556657847693480872013449077309738454383397864498944027567869624154963208517144765700905949367035809579775103357442487739614032221779660220691446862106663109756839529411746083393058108118155719934730448984090344209530787526051353758715289296926879545035798239883474314784320097809169522964529822621346824279378766580870059425238836738780700397561040386141965158548795188019104116870364088777636336520368398287800741989323614290707687857670189111715333959369042294070357356460512436436693658565008097797931306705416164884074738843253438160998605872656123140430200609969541593777240948976176570430725230585455979101214008868595452137396546280056065992250345859493548067965577882469316888701883584212188332271283623440552276089255752622173131704233314131578128412746990458078498703818303378311454419194823343691661414085803803055507346387510581958936660176753424833217191803554345778281172059475352698671248929371163070832610395056655627450698577976649051945086909517670479320121492092425318708676311206560757297627887603092714785768701097701350152703176692336001734867494250381435321663282099797940263847445206101521164349140176841954277625431670190823371857635581745986705670283403492804601153354124859682978706595621349187930027131227268752852959688327535761951668111172328486195594520507059159677722878078754641811156636708742671260076667041265189587566078016184703751378640844219777902880750341093448666480713914711762484567609207185455648590451858121967725054606991118782704289251092391712710621960951147966686687299727059151112788949722617256312412540584213016838571905259373230253245197774568845965400797773287302052269552969651276599383100045484702853217629628358110910621830922824785431554343335378778463969205928185450356373587329232290012655360191779167073852712439331308791891119474170206013050656319282186496921673539621405295490063207679245351048544560437183548470872042554957536738602284108610210705520365434873087152911800112048985799554229369595058008678486062945943141010791862834024800928620518375132644929503489434878421054041387239548513220216103573861659249780036758930019022342413284184316428579338816465445782029804202870993572598032108249326016098697413710502962787427281105622291449249849253264775718231842615332728785203317952787273585305557213100908053062120461275906916722154836970153001827345113671857306203693858572983456788379303946845732164383245456683395469799772534591411872185042593121921797492096719185962974603447149656666967584088781942069526040318794938268540731928933730081904354912518063420836219709488081409621568170268630079889391197429566160919949360800981574978646073758733851539190330929916771601555391805119780366499376029437366968523012351935001900216006512602877023409034244555914094660544676591591734805003564712014270029889735622371648077899285526624564310775326856299345491964689752040480429896544655341268465646367948179682181992717547729654932704478745270881394523207893585582450963876942948341081546568485659951188045675531372081538153028395115828973708137289566071478747562560316570261811158986729383896771346412128597190950037797809331357750808157682509343332294591521045520431459612958975794083039890890925612063820231700798396137686755976225719921752964079094531319519047110601254138252230679989657704095528137729321152587329401948267134404187410930397760482903582646553348605604675943484615366579619667271098972819459866059968468593101389728983526938855276180099612985967066547661616746597070786364508527725534521884642486150606357975301578306565267207358379464035979175274921672904321226322788834260128303970173990639865399222624290383630601324793790930924227215128643683780717461807942280298094645092836894600129320643985803364463645686665193432074580154208073240273277141082995052481731150360225694958356052609129438805214303777811083877982270520654261768968801433013514415583070822801829161441936839328754314940095011873641162901346980189860076358709742745552625526256542506524869979051538951781640706861635079646098387525479532100854032679582839006778239491908770149874139057776382236572874379723688621865306180693078653655116958446552555250114773462518318952213241640511424765505841208750460371686954117237399229172061382809359673302744228646361154057015874809367511421271691729872361956979526734313367091554106491233948711839671048050868808534056171674136768979591447397647242981964787532135230188900677969152444287770822680712389300905181997436724151745452890898800677181905556194154094730487910021735288133846759104004826724815717809763536015699765512615271477411076184786009456306048732530617573032217591110829402174639653215438390238348452197525099793082132955603614806286373808239878777111460945201074752106692491442899950362706618115933385660784917068701985843581079507561122625567766509513815110450238617239201793427685536826378447558978340603277508431400471326168016070879094483471717491039713157446213324648352524695188728866296730254375671545392003153384337207624923542992897196845611581516349349958054475514176579476680779876427968156218526252916424661230022078709021615254218837908539810819725922551951884208165127742981229799808819467081912382171885685601142490660869725297679786832336786403271470745733225838392196174508338642712022112063303578095446723564137660642932461949370292636903505348457075066958325982196531375788454059525513956659957547237270036098753503498421151261987375176888834969890046584807060418171065737746673578012720933520088671293160773327359264781183022745089258876439590636339868623693018880606496354149848283863885778873209093666362192022721602543146831894042760786855223001883250459382807071050276821570232628040596282452572664337214497958293502839423524334952760842456644489763781384286587472593762097379551943589613380745452040421776608274202156042929041863494868263400437584173317186525585084566097655800140697138235012301556533151422188556476695181675076692913161646918539571362431903977635157006605084222960947888346151996052836646660859452650752746363172295743228551945532552305967499141812656148518050475779461103994741388550745143820192016467026173521178941650837999594457974543110459740789160059222119854046582553923270273611031076584518855796713252791111826430666044611605405864594798455566947223189552716172282702587991823623806362719753086215229205458708882699483453248558553891755213701122388593323528838694973828271917507860506471984584246834886932310357684234983853548750238783778076298225754615130207931753163937127877369721759592010451811163011845628332690260851170368669347789319746402706521264993358840670371653359398081730593078280982412461371227872660151055640223057888468730173953897915713134710631962814502423567609955270446716449532301652280659472903032245443975511659778324558926248885320719135698183362191129523852760903551703055528136696183924158700170004257117049242354940653889665628738435602540369365035294343079262866813294861592989316738934375469863193661924780045696331655433013492453230040544124931890276675230615769053222784117870039540797591969169012497190233313790639671103184283240343811414021944938476799999391172820500912067578041516966164305228468009901411648098962487757009787599189496914116249902725451228784209351833246885850903495108023456148038387522768748740602458740028509984656608063838528669528885911187665471155710290043405799302340352317701725305239543664285419560943255378265854707494246136528858601680603962540217749403221390101330523153000945752411357183467972206709867641890528213982783243102984987149613887027419381303648447701572855086791031337411553376953567515599689675759241102591895194414891936387594455245443642695249064075685856605427097379145663106794755981334620279004048231382274186060637217559522750514796526532554627143339164061215510172536983960905234914472424651942329777701181362373733258491158530547033752472211449721782889447299741592932286334971104422111635278645402244928600069884086717596315006996101896664258935666982334061984672517774044847867732482736400047817077473270135657962524872452029260481934407079335434389408929882293424862591898499969436679243302812798476621142891240980013872980011362651370684022192746114291579133407540445358450863961323662690731458396299114583997652037913309954837054765413531964827561088336646943556815233432741616804835496286420416217811351060819482018646806571777607460466029414468064890020704703499048185206024297226878726540511284765998715565373796662039835840611221784647955250957982428686709669507732188606884578966496089096925329106262283044367113474861128037514891017842568819473406230232093263483539094484338480075701561766912455218070216434553475497958387795486039108124489330728236115964875887199802932530648049488108951293570332975974237711462511924889275834903237159530112291278652634590942514739752704408623950887743076548074637497658855298542160899421857052519342530476233313754597795197964333818989802773686611813554892308864170309598896704582695378401780632914184372955323210242913819858369484154138424345838412517475663430146887660387654281881028614115168419620416828447163706935076368112897206119107663102122575607203981547718875355595934370602644069987791010236504586319136538106372193560699369756464432660991265738982209075543575199291139090460160353723445574861223547552985680857617018555749894166827170633758727381430199890480035999569471949745118817329545607446309155390456767815080589391782323973022799089337637123282305417238114575056071804149387240284071000319987269729210224659138067682917508084600742643934015443385492157073782119248500727120411334079363087012893584508209639311675918416274944104658161747697742025982382643837538093474660008018482565502168140524943376984760323009186239416447756480829551665553891307759411028980348132258117338535676531205746966737005761261315516715196892420317738924924480049580115651276522672328681867114646968676714551209591530936077165930049146495161303958733868196654786919647517607779684868071140742890047278549761482317754057915953844091141925551949592833377912542876206072621370568231849420700136575136035449449078360717565798226050361645668612468920235843897409957324857938657573189582776575627663475902274477931218303356003025831138954068693157232281197092607095043111871315364175513929819198531558738552242759039902605760336705373100325590534241905566680229460247662497782207659626581595582340271656082371369309998883573097712562568217131609465489573850361522166173091849039427240702306621433487255830268620852969873249034913193928958811825788208780887466647343734753184479427604502056772022402773049372091719583737242116726236436283101089602190759091498749038322721948546755970301794466422626927711349254740333043436901217393982563310729107459733128773929453558513446142929860499044221808884373238232025374472329503648593825919201548475803027705056679465133898676895419392748725511043506553378970974737143653396408623691545809724412548585524973556873168115446673756416568312415252516056175886973609000553935494844684165366238625719165309286745751585738116199077898061819561340305735202585225963334978592837787479711196410091021374053823137674571431005100461052840728309494113759977046418704529791405935307036229633742860348479500561948955761464253923845618624683305235018104744202641254036969130049240220814787492377617156980197049621231355378703785273557976646427697898242013639316555371814439261688207366401639023516595930567645770924495898601370968622533519705393695434250661676529805979710447446283057216825137610144234198055969615716357871272170326831413704345293115859277194874939778866584104589007913259849182672840009025450880960005789893893260295786168550002942324303545937943010687715679999867164445364691021106484257806415553402157098983542733751594462783906525087620324386840941327024831640471539908751412920628429059135081105069478347514465418813228809652569132857139459312019026448716699032062133707259904172624496058424916138695919834583052042531234723320735817492350655153545856387132029762760122125610224559456296307160537399365069711780044979777730620465378069495903824292693548154106732694687599213000447233952133699200438801884817388833547872118958235642572951974250899684364082742916819239214843252852233711378931037911775012304469322248197307517489183658137172236798351971308218985959897726376499869569374680248229157725203025027573039507257871450094639456660719795894307550691664400967072793696996084389255211911672688795666368376585588604989496387419754417643140043621466794632848309598739186137567809902272459330148595059900427668790855279727857268935305605885174925598450611801186518218822300929056547842550795886309538764788856049561845381871782970660689565825824715958833509703508448486970159589405339683458561402348047403021446825152788311326272372391612347861159157728262501080072370609095711575327923580510237357669608846385109283629766418946532788459582082905055332869261713032667471600966842448050379613777675375934791653648684173517718742197162173923055384879049255888663421112308093541475474416165299865487555094700112934638021567948225157303395499512483258237541846489267729400608682009188625401608287858237831283513766852643004482078729503175960803550533491839442277955743032949147151247977036579302263368851502904321487612421406076295847361636869213213081649466743252462313556194885778221356408471784805827784521120288243069285006512492012515214985531248679986677624219045535416827354792120414316330628286005027367603372470738515073161689869351965685971753983281900207105750044870415531733153757816401621450043276559719766239568956926640575275078406472688771670224445389501269368718702737147881864172200480790343597977335192204806940477464125184662845589920651186680393584158544930762484109780184575611759608002528994231694111697806926490655685453477311014182939901829538973451478135042354651255762324154851124751495046575838684264587729078358700818585660522501511543250664942097161160736178636903856304149573340046510578977918099629390350973779503854147259861424607848614542333411054591808149141418716553061721187423244419152204415031017861659143289758344699133738055852073939715712811803759440899664800687999392404960055787328615139356399687839350594323346195561026005375651485529368083642931514346186482975823428808899782777480685773672848614388782637405751244685505910698550237280310723425474672099393159633724968492281477957208998582834423642476946585254328084609347541726297938117646540329365839188383090567286325950857728115616284516896697834505826340319606924984316837533912876484927054592392633348727924484288773977763195340274413571187386192988415785477425386167585037414954452858979162743411536010926884884136520472915322015481425881665099366429450683850260242689351062605818510453027234949395043121313440146362057500135655947647320454796264573130665450492172297396603778153353310737985005209715465628422684534975303612974626363236683421346434551115981530831893370131573201316516469381625893488725807899227546256178579448692128219881048544805138677524096797957369423370263236259006307999843666282965769402637655442038379114739131359780491998184530578739001038043655964673189308656640863094015016721680912511581849718793533049918166696355054673353521249131078514465260815007031025410707666516108800062370062313782299100661236135887764176132721260032593623396226313110125961532717581357833501917053930403137558498570600161082477909585224729258458875939831311919885402011605372784473901001452112358180070093870792717491906129344784709818324265467862681913279683066397395100996316910598132032104340465050103100799721779092873087834801727366561496136250984623567020174297283060019469538036419202893551640460146419977490438062286695504371672328958747366714554817288877939172523236975267287078159152706461597014214464374740843914957153793584769069414430060660216834663454561917429157640927977111450137689752189948735550079410371632476469899290586929905536726179632719063849996363556973285013056621458155389250839610067379921928311326520144322373062450073741831862313382468042648319492837367905336253272547109215680737698620126342389568240562743330616682230532639334795049875990279754778757483464292570152649718880903321168164067324597949380080359333387085345286183436838246897872503587573273187924494399706579563217272058385948843511463607014409577210536562023253196106563008579157087631794622993508485377940025160349039019205036147643879007462332818262505821921551667163586600515081077770833438935619982507975344799764349595024200253926522333616167204071128753650001622118015158049946327391917743471378797003457170279095743186333560927988093911826094005342375355426635855233872557520498055162269677936850657274375681220130050967596745197122365921252928705588754413419692717257422090017962087292588882347828382522038493067645267487048675228490204266695970569316647491492229575312509898490433027076481381261109610335202986826843425468908427090205063838737210440872030634780195638482109168546174244874914936478463920690460539825700088904662455137490371881531558742471490149426573509865410405281909268357341236155764563220536560838180780100365695250820393599131610265835457753900696447299461598767527296915436341961890903422235845483140508071054580635043559285763893146291285765541655163084910210398621798891767320312627495554798451091553143620320727682526940572734940735185582867321380436907913337215954240127180071158057663781352798821641315781022014935690991583696397048205758716155486736636725295948932637146467105945126901023551409850591574825133971523586192363850773642519704478585197509216616729916964813579181674547074799310284850805631470980448893277143540724968985181447685856821192498987114130353717365279839890072228943640887077206595292303210538941547111388709999905018595156801733032014910842662887987009598659002779654058019753778816573382995502691727125644589380393767170688896561932961949337645191414382478054674613756913649693267202287965093366814319181708993274348185538407969095219218952183019913419127195655793298444040759471544875400390627305374548349442440933965765449471619230909170860399599347199663584317405365082299429497991390841976389587540307538438621134592998971649943574433946790863661338550597013405469124140597241932226772338915558778629101171975927255237657132371305141183351433445331074835422352377875146134445792382270606634723067139140724345927155725101048617053523038155973119349323308444492671295866417482853638628912603966456768729046218711796012581118567564912332737222696495811789276083234873847918640344757707949356630385598596748229523615240611070858555386558064045604617384922104979920705510562772623357943982403994850342029805316398906407043595011677495621576004749111041211888553033246404583688498972708590477114045092990749310512383698636173830610085294771936916147873996185806563948876821878289108182457944976196032393593564950521274392840692531495030334537660604384815536101969382238021126907553035753170745701416882348665671397112420523900593645080077459836342777563196733385583964993714426854169044153528453728354818509289556199474034875669247442114504899563187226356953802640658709599192827468153095893210005744858625686802320264337713164926193306616653818381031277650952338535903351944380637975929455225700894672596962277576911046665240833974816339142579077933432093318124062944064161823934691016438911341699280516701160089068047174492544155567746960983035883122666201385054364281913365452893018355952200058296459691824839048861859216450504094451752886521510647448491556710397429958877569026853220344509539597144115109879131117011849578634347158883792562534090672678177257605504892893851887691296873637194193572111357918294078813847631093901859871065784407082270830580975742151180603354128978571395842280554043923742096546646608731254934000676687570523964181216900870288113712166811889554261942320170848337385390202791341999455118456420922004760074347075882658666803162896608548207421801873650684402626097092322942494460386509947759363502000500368524703047444085394540331155860219153627655776363889385368641738782229688660496211133535346005165702619420768906559034161355036039377547620302627790305705373861879717788020762331223111756356040434627304811120784905057988402643634551481337302587294435834543786538500540076985333941780638303769778653317344386340976256422498359106023417974353815394345983217089798637914641209048370982544359215791189930419103134468166524389918124056873447093486298421197272745870637718794765426872937633990046206669022257707535102002873118957864326292280759960954820132384205125654281585674021316019716259505854609896506602142019208825090807976769997696775396599360262507370499703713958836261279259183185790301208806439434354180065986211491007037080326204668892738794848872625265121166791938803195538809308299956123515774111871398825618374712871687824703159966961613591766218327508214304393337040548375272177951360893493655747040149400392221869205628797978151035810424422339902694991060043241636341553553093292075759807256316595375671125008575070163051685403826271171086639769521199890541281329100523761155187447124274421356543042364786875789516082346713499209465977332900387157118609995275158119970037595609465373297702975854615463901733045030154126181914758795175013646986675891718889093837056870105209218550135151104883481404891306733402641347900376595716320026852653635323137818335204663744987808396235902196254713417134657285173103150042304207472107630939256781230503018818727028197369199450263750127768359221111132398882732016432573682344494418833187181122320539298914903295902065351029843725566601223559815272678116254469905953816364276637687203883021425324301796934336303250799267111507591973358984274497410068150970403355924712508160537804009954724652545178993612466768868393594340654215271623542684412066828829403234999275116063915611611938585304996061549151731103966584759833487165357190480099447823196590768045739391558074804025312126680400484580797526269686466810993818670456782199521506737854654473252832471644842870861931053098748925081233947924079142771414623041335136406081089979157537030652844539517557670605164602983084244405058141978802590528070805730055521121431157371121181718233786964913882580654594476360836521161996379346046859823712156959488032324914932308399169169490289561876391820350885187861909195542220620482308664545357770286559032339900307140490537328500233297675930782604615287338921461864965423174168870987908731831990376704450040589125830177044103584648965250661139120904893481347243485428421633946543068674339243674483441594188676959098074289479968119886574011584980271660302162790124541496149417008536196159176875915844920871254049082435433614693679491927302720771938325792687212608371196851786619551447514318481073325279192116172832687387884910597434172558233783913247698642417468305096003805650773022212040273989802120330249309426553827828329113493353083491066488109197095727815094231028869363050114954041188767788458151829161313474282026821545086438830664870864336683947462068921252289818142782530425009282293683990146736587196836623438222909708908679081282545863868057615857086579078543202818887761271041381983537219280173517831435289697737571288734390126479924107998866373699795136392224882552346458105202605104645927145599768556195896996455291172275350811737913266057194375265404698507463824049241185344528825328325775186752241840047958616424891483834318372299546545922384715401296448331278757266517000989040371166887703083460908845330476787003736422757808113660189176647703149605315684023877485726310449951275232461552614884349118735296033187290526851068297928542219590674306566592424725937027342405604013962542763406028524079824599967955618125928315743167675862859114269360884644714516566171119169420372838047412314977487107099071442719255349415221072207131759207572319891960433693481342138993617118355510725249960375607085495899884669962323800088989297132428696839451165357718636264868511109707423999965415194441837076013141790865951457743611186450827613986940147986560877882671075343202203628629324146231433837537073943226932943527273116163086724834692051043505502635996379997083356410752384521939903983579801138723545419401106710163045329292384468852696122909984814948505035296965777046981979197980680058874703457446656089745938785862936646594851224696065813975547267590987859630300221405156326451198844373901563867936726497794428951836800508268573842530298612259556637775092303011048897000112278720825548729543844146568775729943583076977812529251458987217878867219695315016448896953545792201537414842439765679507706367595878285886728604763781128565338462515202079901962458013205395473264877059579745303394965983092167523658039292934558017639908394102358046548844107811654474844145169567447748347621551948448803734672762941852867832750567294412410435774493835641956277682673887046010560098477177192628599340014091881075198743890758570234294604801766795420750633617802745967919227005429022441653136968264182990024313022617262984318951835835629083386106345824390352259307823365383916140288150925033379199074203027229135579199708263478623156418358439031660484689855946517111030878141114139431270344631510694850347920957534903042078103735971251329453038307973487509859437017604022345266027654617338433759595914300857441660185923843247017059923658555837803664619988091984862613930312110520724041555268918586016656807249662638732917861121082986667998515100588457762461778089407034748808956146880577161800151344167717377467643491788917478613992788323756275378732596083543848045156832725322058604948385351912534926890205502532912138367756312589432006382230799796540526944437823473568984835542950605405818336473833926543095415895822646447058106732646369198910331442853859500609135288734105452404279406155138013313648149673820464661519488103131316480748325667768453697295945216990138153043434258752789096295060957182853697802573091873966318829077634851549849065918146943814776507130172584072119935334204815860024226972844487481473360754129891479089145017448155171874880409629821882119540951622150310826423588721640621991764982972707305854293520131654168637281102735314517787580271111498732291731180266888496674418266333866847237211353033250504024695151356342237550159980061017537843641638489499551030573849602434567343151517953686260518457764661825560720316784500970791971202431483238190794466233738256170295004035289035551644129122397139138897430980125325955319694420461438907849698783986457218607162169153917862291050164935062839383679576158191794791700810251524913228530227598303266457565096176030569790068501953756289983466579125403601338869714591035167262747178122071895722104334440400297653148681611836256416151407806749944357437311595896025087260342216755512532897161680743927470773205174557536603721966650697482687626259638046664093432121613744228038314224129841377649030160907062013888566149644629868884858341940798485871997328386614919992318645880418499668237832322730861413322258091777852631738711576024066533627600723972759434973395207760538224399846167870434253386611611760799879327673114484185044023755311244550704414106559471017446940714576413432901872134209987877633552963236514796586977490970968660749214614212785546766438925814893939074923109764537444567662165469728018974087281239892818089695557980185178429443732033803273729800123155491451709304269356068770930026228402502047125353437433501889878416052140740150355498278209658831774903643522587808675235841985710910085944184756310684134170422078225625811927211520461734214495854422167454798123563594096789971395383878189458787112657878918159480370380419478158537940376563738185905836784363784405013556548781121780857694177160680349076169241272933672656174234399964463980173307070323890638827936718251488412817520762861176669786625453022712393138124164001159643504508049387147739451579839875795835474881573965967658091512888094889449318874176555551751061417643914385989343214241885430045189486482761865580948758731948225331811586267519202555087170669812405735454208114569061354656981314565117622290903212391639115689686053679945496201791716419484892426129384237166023613143148761441472463163178970851302457674540177880727570638300270336584200522402271877485617063350287347815708428285991550472962277841878846583590132223139338642683628854576209955842346009582901808282103789444619972096283091937841937217899825619931824595065088464379585204054781449896668582743637407070586211847051023232647505319438430686691784823885604486969713551954537055132519303955377860643333047739193586741106428973083924522185071449742647482384807884159127487392569755533200959077957770925120304345658313736064794120986061619236782091832422294944949702611792642449979058761659168283598368439474592722509665758141271566710073546236481372525284202028292705683222353076424276472917391841227257384347590631546595986652251482253057710780795812976777338548543601055050910352324052517250775028377957433183747571500579462724717593394596517596835231061888821198979603092576394814361846315065883186504522395059935456142544326137627681524819333559503187728496739511485863566377165261516123495842940743623605920296535112412019120493966767652949815349706111445973718843954781306412911794302496995399009827574033173735281860631274214888408382054504450023919339481744688368672574949378576237088811522204095604110616107223498432032910056730232179526175502827596389128885175432818314107339258124640587207391476212502115493926190940117143797603294414405092114589505691668314550328232661675643033059113726845539030200382890705861517482754862337778938231676521440684679041309542806543855689045746853505112215780650911432325175216537867431771747997977781027185792198983215344004474793477058819322555099922611704231787396341747577774573802500029848923117610556997296953690893757293154591808900703559074943862352397109876169132727087372794463801576201717107888785438523889802984284646731287768141960536687341139595943611849747441396137777183422890903750481616852425896041236605541808262988900955739556784890198265967538830065544208017828620038082971236099192355272749398749812571925071973303196285566048745191061849706018863206546770454100497110675594694274674462588273710907844641375737056006375696179652506752282748419522852704847715019742929718877218999102987163179373433504816290332296933895590217635769081796422288946865591723757268751866718938477009072896670483151583126709264824726741911164476580051082225461612591470793674713162060041954845877112454011490384946479096280975843609717149252024167102040601395900872772708525907120080692605134312127025194341969464273686304651552203079338036439559998062528884811233896595327300227148726004343306107749206612992081114279700367497310069655897874529688059527199027239925487067026421755250466461792908499723876345700120108676797317095127653833116622382251066872203712071454651361584512507008027089925390892625208064345721143583645203948472134118700163069110791286363778360672687614733716004245266335648628469704848944923466815911067000862705796949904460500446341059999728742105575139963513518408147600461282026198227753615019282492665684397194079222913203064027283354899904067916114830902185619165474120971150525644627278294792090783223763670918821668996482427655262146999135038645698637422771342010256898397072025464289783555077096317608852070059609301286857122234370588015996769171037083750016649592434967966029172214368415855212632452807927137602287119821201500235120761998866549372321255324017111946360332215097872010083397768585179923967761373239562625565738808300294120130816707623019789238159517175705610926604073375290914946025836735831453344524950317871009325120672152425317653821227037550719388386858113473983534856244113485578308777965443988796077678864872801735261973228923243755294544970328037865186915684041042641685771660514499890497261364403814393713109735485686797375938618216165592237320363362728709484129363048192281864226195903514475701956282403763227114244858056249684917711395867838664782806192239572287539634253636458179563842189123260654340943125354497014233698625839132619975635623751174947648214009560210344398568159799807030977063360735800730863564037819391661981658149523704576073809931071671566280250593124700986258802038961738014452478971609799784657146022806162883308990394530056917662950937294156624066131376646325709528083523542973454919942215788654551853497476870915078872338305862497208344770017454829275491700386160072770816196453149772531902631010238676936017069080621869440941654964166926574415006025578527384378959553687850206235178950642586473504368610510741726326508143130769194800741349894003397713019676284611925358722109563177238567449580370402734716388125766505838366364954861333545686126237256792820346353171690103542368539486108400960878787399502140989560033207286476685647488027468805965560739634549343750979599395685483833428048945277613334894035419132744223520390921757914500495543630649584649294346720748033265579522790163439699894656342810344362972382582270829550253527571791767313847420604667817518448536599889942757607233114547617346531317295809704604403610047072311879939929384751699208435051152544313204007365149532909434590039978914141589354803960968877390833486454890551084305796383922683290986484426850820597638440824721005971757697987158941585512368457062613464058972076989416210618052092693871866222205520348168952566430170223538014361763759494423319946765634821715009322835825994556361416050862151372612125542068102574979994992943213803098101894189680237897775253072467974046164857858116711978180301467510558840513149352306557816583961354985184013662829531694636032575250463784760142980637979629290606438548780092975608840983528292366495745876803133717100352087175313188051957270555912607344471837241315075039861220289779713236375988870390614272095111283053413803852179387960350947150620026638411730404303369015209372276343890168421882470830152931318408760295128302799272295048468260103043923720730430811049122873234477108753961003967876405098042946685530151539596541739130583538654673935677963142341340623326369109166474191350371304394833370472533056801210552618404150150463260536173705514237550676405814983452882607587615400708761619944360463122016980713251159353154359002880512415310342817973239549618908819665076773786323782457859406319894069826467269552847459548727145086957496302014122989330871444579682116691000671888322614128725060345775300924142843292276987287078818232453300719091336725118886407508800417892442712411605758969900456517776934253306420434624962959431566874860730552564678035124604601274301853992973736215412869062575911110069060597974471372678129601291150085517670606961149190074773876369498425770555646346690649875885479203625962165642911520251422948607281216523899375395888234480797657812144135465315637357323241891528043336482468294246817026765381886075357701917427368451436095867501954876999226498846828891981864158485747164110255545867750805665318481804559335123686128907982526844753824015104437598341011961760970175090789144830673273502407716506280196155879821802488570002743120800774132013319307291837506119794945844019816643329327006395155880139610829707426540749402476729923496227532528534392123439036912908725304604332934890514942581928026489466653596771497053469574131366378390606211955782136899005855909399517042217134215803471877343212696503021811468595041155604689549481956103605246967366251220603782617078100210166586477028112491045956001622835235060436948468963412509559409523565689776694114098007270857092981675471077621765603830515720553255569585761700375321886139311055124318317890680465471908577876276266492291602554776916329437008235564687457458060617100792587141505409001112512757640805725154491440737608670941412751752203457804956568633772528455038446104267407627044915574404108882511019007077671405449758378493901292586041351998021661508601457397396901431487505380806664360323731282860841016628961588919796451564337476673928227229027938027530439080294810245326243676297331351854969236248075848321068420133587707891504444052044149563609219529086809260338591144237707376758883358267610822829867008829940247789478178885612754625820784221563498236523546088284462805414865066397969083598507912389299418242026678043474561339743393186574984302268692310757389002215276473833682365887022827278883754197337985189040283239419215897706395649589277391091280848554906152213033913938606247994727386176176673538604276357109654423319454475441764064147601036164606229918018985322713979139337653560654182669649194717881642271679459869059599072726460885426695667377026705000097338038391801684386546501328552999407589676644630292543880815163541409260138567110927879310858641249931713504884557945461854519744052079015667476077238976684523689829859836095998478147654708122610853492290409583546067232213824112809628752926417172565273674132235012190919998905824617235275825639099719415220502241981442521727721373256618438542720509371108260108160131381303278002795154199409732046863847342888907007252964254508134217560984910666634089494574977136530913917413847864057745732745509433850657630565291904190621057894213720063973989647475343755785264884984359902487681920178020589914308655652322225818270733911595833863327997427151823405700178224500313163260540418991154284219374063884453955157435229288086481334851537798768653826087770280308827405927720365676373158345462439783776225182889759793747129028727290797292792562257066214862489567179037825274749021911890472764615280057571760503114920458783534644397455984138934351106109575119899105647417172187638498731052316684055430604259302033588621115021239764757810356392690829315262513628260380707180789058579133867077522208497224733520322689328302704966704818725660517199629648751620763405398066523057404671187918115290827696506039676513983438386339545473410502652554457048014941929733729968386837885821897043682852107700429547917911063400822504997340598583109981740733348004174709436025606265326950781111636899875222978867849566666482762209926401289078749795634820961517101076594102064239320500913730857385780978234858876529143802600528215228454504255501313758177390386408463042285613552339793383338030132631949823949543107541633276754500653596084672535894631339379780019835285211621047650298086118555602616759173920263768125244791023908582352162473129798107548310533533640399806106237324537559486651222774795245537070671846183794584882631023547263462568637150886274011968248162579581953787044699507119588210666419425067906541160307832286487540578853008486580506147833871508845646977176582573270231963679195802689829872162004512464940076957856915574155269096243987933935482819717463644171773465704786671373469474485374645967971631550798060491325232610446021930743891661892307829345393984271882656029734055526458056350789976151990650856800946430399924480630605756707454215181413100405111677898650778704865351642236800031444641926017365596749979174561554654577062823814838882888839015509225033596109817086928630877827850626150393011313358207980451461576865354272267147952925394995088997156676316297793101173555240350087865321180354385050323324070978095281933908116175749813843181849430467699293890349025196526917420182910302680202229318004461470098370727119967278913359990967648412661108278055109494325845842679328104701316418950175819475002167585659142680830325112604986685773830140497035939844276441372584695568045683122030053215910258366951583316518639393841702537668196294897791379028752753403814380542909399824919584974019104091602424817099274943793247453596267955679843945351885460929628791297922358872671591446684985287252194780461705007091920426458713995964107637450807426425810688946167278988423510307988579294085803489626719122353508124836046364215159768796242509092319302513893413487034186511447236343714066073764047273314500397274657916912431292900316654204511030180403139269769457553922807873352468014159060605146144937390415765369040088446065992444682937371871384280776466169616470734555655046382433244655990938269210658763182609692140483660629465784465323057115352618427229245225930846471374831632572706668647726820651047216240920178576619400339071598738845409107774948436911290533801286655221285722936670308148693022063792427448116290504099174782650047844185720550381791177750231554119902125071313615787754124809099860513555100899964352956261250671581037262462083707514281222564716940203110785088259496429421679754492900175510862882412286152332731567131538918481624033396696475817505513213253278394689366277292057576083095599922278399984176055648533252330598958090559100505581485397275736356158256930291009184778684380859588310315087760955780022797219907533130859271034912185856517562778725596341321974781354295689904032279013022283813375237003685685147623670849946176481230403166774629607929672091969535934095351649798429739949367452277442588458977674422703275268657035799393189551584132517383045937828657952243163327290096097201747380914194816995830443852529717890615422234634310460438539163679943166780748767539060847387440962052602697248857535708345783906120084295986896196905869755066317378462480791754255092556832922210864117137503691456868664754884655521304630854245999302630319770940739254973511206491988571877525505092490048464921306817520083306206363142976589995075773081671356828627675612079559434287637458335943300771198720513636840005488817969256227679977688870102004754916981623166862884794159508035923022171429151557942350489371338563190259621684519013221302662843088637673621204281495015203100691102690788865445202918227019174042041684298818452609341595793428061901786942394649906291491883985551062582573253083830931171812078083019404005477792494129535081868358617199618085144114850342883147785780984261885063536863105017683837626711786157328091637379607764901305506574219082872981808501841255446001004645923389687489116237726150606720307454305691907786644750945461865193338682819826003909509062686610030593581535195055129991774665036253599856396448654846769436157331198018404663058445885252914874853479867955950021843457309659890699935295025112288750604236065333374652044064031822748574864611078645675809697155937634460754817074440054700922329809220217932103374407197343015151386614723200832471576224035142942531572460216916435089339931072197894403993062670709610804754591649138094297979673111717862840444883065815053577658529551738494506770157672682303226887084707074668286043524876280119755414613874415542534489928685860764618595645130507566160547450593303188206460918750865984338126099746777510750625089631853411088526411041048728337207391779299840052075916233393431204638809474589337508703888461175329738602557811920194370099516150298599428607382557761097388365752515174277843551621736023426098136464206103653497584722602494396356898604977743332912566075532791197358158044072221647550383062000924538954548011830384470883340883071338556904302530269857041749854991850335954542258771919774628451704503916476546708478537450821775487991906310058027983700975549438290860067170573592911493411826045040388213728515723014878924068642573886032334446532127499201191887640344245281352540458003970908599958600269003128575501679390592523301146589941470531908307816528858694350925115966632378282538998137451417625154282529115333503484445386439593237167992617490115577786295193337383843080348230560328663205966265683605650017527327688947970566605384126037573880268190728670026617896621069419131059138905518110317674486237502997122472430518754445536261582871236893576743778451212585492982884114722178354351105193058898863645917350492212597407657607616470435607878321578589758581328519175826672309557337014838437310316779284202259049390923971893149637358504222410422653394498776242876325802894161397902901826358273080151037602244634252601639310147806068854776811544465859972762759067895331847703670532379228834593611166672674073028236149266614498849434824473015692595271871058499916885488673181409587183434967281846636805989911333171807087012624453808890603771170164904750239830120946748589012856850161937771663939350575183669444648637122214241986656152842067423601540326979769401254782772835977595704247263800021377269480185945661149021128742781920065559268697192493009124373796712818268680241856273305550650173108589679092627488669502373510018864394072179865196811739933523367519440267241196664154149542139650958981841488806236375979193507204830800339604599760051266593110140276077070472508961249884300878409910055644306564166807883741014246289676029979647841108738652516083560224004391193086234930016756737615653983124312754243865390981490897255251191266542941500695510140211230776950922339054868530699914192949311209705110962384484416495660341545359494997005900753656312582654768317081685787744804402859292034131283319236860973062459678400862775760297674891953416681800793931169592477952843393620054029372177756548901392113792971485201777648606285150267181638069001519606039041988006181432374493844480514149329566927814621880821382472839204490496162677836746968650033504362356680893397186970734784411625955855667484202020627488804238508686841800113477847488239882287507148923709715270025347702820868652667787098976683471049704644777978146047303342293331712009715576866895642965926226406759244368554806237689333259238489944364522666287422293183901372191760360511963905920843339311291172546008679730475656116702334856937240033293343563608623830995411826213133961057266420084492755566491242577369594948127561809635125421716060974276703435755528204389742669151313718600872443486915466675548848757282973311952931434385583780015529445576201198616740777671664681403878454767122906808679421914815113286295774363980325060217219046923011139700860027565847426337488612691996561270581287696146063067363836138261798024996046009322586456932765795392543113177222649969761171784301337173458037474458775828503772091998118757112200626935376161505977879196447078164658574739705193531523657918742812700894535753127213152621943524280735699894348319664214946039339328700057067835610462160701510233090335177033698220420159447799007552382192519824591962707265260961626352834553579205837993053487220523747164816522191614551437853139227648878988646393667039258313621834441000146763268316205400149038846620769599255157251044122595955742984994934514141238535972372543324872855004275901656941722045047086363327982837748954707775569229960850337838922075351830240252745449925148659776246687643757068946008985640625516000234248712920721747763162886159846014419717644697327849775827399401062353760176986377425678012314017936705732136929420800732067093894310622900420111982986977940110690072228239241347428325810894892263036630749056842011823459822178960674793192348876646805106602861535660438875051582842675195501942943584529590608640921145701088366281459056932334818374530819830165507935210364268697260826238179345650201815782715715451862935973468063590796378882624747998023931339617935206623636279729510214501552733621840832284738785171356928888239346176920490426064876616718347460234361125990633760305460848161899086721869992724674828661399049459488420472343612064632182066270594126170486858428006303678342977717278175658772100924038817314375500131217814348141888337992730617943782972505513838975754585061102466395685520444721782714213960936053887354939140863396162039925047544455581428924519694638234348862044207545631090261979219869964449519483095255432219160371198173918316095896388156491077877774291684780980439527289647582507919897273007235638703771042092128520947354348621614059840447540665137177802607737851945121458870399145034058168885894645938743130182914389737422363004411735960034873218278165712907220629486773069976979420527647933396479834279291421285946742481549652409568817920299509791185257348510560629612267794271889022890911781262470704157624188679062102520569503023969686631984018382634270039045448184168018634693645656878346221594984131542222104956245371133342011791727520678605695700176222604489094481302496389320858441349556617475865054868273331584505103749095070056708934320500242209878787649695594443951637628266670365231837419890579735963571323303817811931293604633022634187954752891999824795307931992645416091826753397611870709824564804037960645276596091016884430626425322256410204733229708818833398073363716197331360720407477345882843697617218161136610140053287823333183624107564352969065453735481906199556129785626812840259505382587513851051401983504074971114145465395963164670158960769411107947961866218478522006823741894136610245970514227763207265235955305835131695521566329023956457583484293419889063522895725448078651169142411227038169548950103066419980217544403571930739534016731119801354762608212578527886189079493628449122689047297080518024499937110831656638065532254934429024877289527521238750027447818342192346917796802769654358808213900364840752549652095421290759564496528353114541306226826305387686130033947000070875893986580589756985525771543088244394222894171462013905650279587170838345278801214377926285965167690071744223982794988311751186132964698654281736080017695119448375927909458301092477609157003969536011489649578069768774270336280021714189032588869730065976596844754414839885929169884738671409175142000288969298109938316546096222139169598853176509995995945582938307753635241861246341754298608021589133641858956269002771770913978311391061151858430222767154257153158177657707166638771531810183189856428000344245236752751991287979893619820141808253833077479881628271002234698354531341032834163874296853098462205225613520035009284067422905413166855612321126968676106614438078275169895563068303925135209053906970755466076219079940513128275374480588601342057753045851489027692601178831059615502965181429374223786093439144244863683772902943129873610057477326447368281113537609892860529704762791489432555057203585643726189155554023705913360430891970195314380069793547508918575700082880520442579935691353073944597200484375415813904870032860824336981497766257909172293139017202002744543503566815896073425858858559601693083127670461020736663734814873418311364158921852179975796550847455768839335553826232445396799142508626877835791222413559655539226160306258956482356461582194040185623546624504629363203108916686718735155066732406122740969087666171287868397151327327402128020930115558694213776597344258917002577846880015788056363553613757607787879677713236314100349057196192851759934737643261122933425827333347662156896870455959248365405398440811210476024841385591846383140694378859901597099634629720310346270502917848989980012796661820148313000266174315472488580191716016113933899549469943963124885824642206500658502081430463167083299475410295813262436925952047724498983316273880927384664977036086451259592822284263966954900904520144559959894223381440142624168731298683847920039166594263059869082171699937887612878772120798532377619312882145601405899110285466266059094695280780811033571718006621608476390018048104579169657353874872588230406446566330360856067234012416097832219519597433501708564383084631763173988913809450898473421651111243075881225901075695937788930118519504851307073963159096118342046392973234450815077496312703556983099363249125254768268689777800168084589738166178845745710760740286252136670530517428172404307583359448460145513138660755322687013822239247337989481592128088977037319358658914683900928624315285924185938198140956064483907900469837337106363462679303652752045987804082597852974677992400829470747543411471311493587867451287412039817735704264896722055075434569246493228214698030823435150158532871044644363757518622445846318297063580935351170311451224124789556874390818723644313919828039783721159666179293224373292259998169960931035814030315758742640537930217912859574622247607977375590390968874201614391737392498861661806121272766243125609684341905494544078845921247962931990769129749701868216105280053818245653766277289380221160164048160541803270217559340880625650409224760526899629982661358719629466568407700407459296022283558995702498168160992424688901322472550018702334762581167957571292643010358305383654312352758004666909968256130631423662919085047474323336741988545716778037954195432887507375429599388908827341512535287568818303648968230850759797191161856121545582446206727845567265778813940102063092817910858147718297097312982019315934838746573200725582169792627939841710512125012545911540603815141720450773038994213433973548130502742795175342726684021393451180320996459389795775530110632149371125875177026519278099099250385265136041383824442948578714791152470973388537583742150138469722045437319512022632502298185083483025469659672125142859298245365276844556186886467194380540336745269451283034635495374108252582830677502543843597848285433379414846329875791109783161706337650598912380460942279404789114139619603274020531054833839040882696562731467581095432432878660078880937709241451830093101976274428990956839076678181357451147856163562199812039414687380716955981767045475947763722916855153807427164990443680321138816452799742401256224354523807340699260475702289266928209677751390110458938877940522782758877092462091646350182845834215043988956482001521863231263554257830091247081804091392891410676506733652749583260236103354476310566754588446854557417823529210251771763281890490631977803729462077081293417359362470909488241007701300490863189410157513783896106852923346845298946905862769476854970361850886094509142218105467419493752627261857745160890458271999198229283495756599435061451735359841037977711782873916297766014330944711631002758161739575181243627671037815320715371686184680913275830676567409212370130503201927683816291837557387355619477186745539500568776953931014522767184251049181620713669665949084937714087413585664393589817815968611976847139165518432427331239451324844966580028587840690779340377753454739732114643014916515964079274829146767054483386069276651115825159324756921152877985980140660447484437415755872677703053747466524914201120644244088235849170231790223275895189124425231946855952338887482489022289402888980476588838214131916231993869827542797868601004696918078824998005760699604159937525237167244241451553415002095267018291847848996973169518767265438991604363964759563164375161107065381866663713990336712194831829033154962134864060903056030032065176685980451804049993963394361436086093784981384886040789761306807882465922555224067686241413391261605179264356163637672729040577152237672009267120258717029474619792382870655170103721144456222001543821707592132063535871726337381865250641585258823078885182360204449053637602153020026704584219775084649536717553670075888930812097610703505301708881445277974019401100141489099235639623091054438994448349529082901105773877857332389882975597842693791171294615381124879831249286173783402846050699266748786713623675040694916735484381228382799748532013822067771861462122128158168571394436966878353162317578486309236967686697857343045733225218191125847039242421028126778141872677572326027451587220073178138662343626783379490660433329954064769376629962308441821779464384475374651440292565415687549211173499249756510352801419180607419937953291320111155888345056299295318836844243962765825718814619007923961866535256432141006233953325582954588279153158391420087720819616052409677998815758160823843194209863606213671211558543004473423572064681287501904585711278976442731381519749715717323165911964759065093051614302849097890758634565272476640801471187464984399459617300249213886547908999226975936271625506834934357533355640716679559558948472263592261051743974895238764775379052058445750348230027050513510942879702959233648887142494589413685657962167192491992104899191167973292255967989231465479205954210287957143448091731859654866989531413974417734236915457468207822413068993755728311254979972835819845279741191791640814830874678694288282400947360978069484523404048689374979489643075073385176555332717000515776688209139999797491084283898132827457092834293235809939368803213304556300651554996523554644882051269110053589543953091642266167917341288957715861732461568953808925730348171258339026032572596192486853225061507705900072724760029153826463675206597333136016426579614240204802806453913666561130507490079738569269167204403897449638538453554626997692767779669484902682507371612876716837793513411440363550399032097049256578765259475619230690189710136467519642265449988468451816348067176635389458937372041466451923045876285948039771515830132809892604782784704704441343596916942026164311876854114099391448718399973605956276317558561944372610118434830653999709879766564071481262249254780336991479345185499765216370306116380465874883994068045989236533724574627111322193155647668069446582810176439243513024591333128304418018011496739084151662667269986980059331270429639434759786540530854068493640714229708231620321749217394675321007202260784495822942410457561383425594265522225106964927602267475709989847983145473822528643854698243916840811125285868770699596408464612599139913030312522135658404927294227411342640751180424493976528903062136919372248131297114439028980556887774022890824650832433109936115773652872861926234846675748619612118859391175133749664198770650796701107417876984237153985184958454812622663228352062578264944708902648658813617649116826105215236714953816133393069871483463797673256118071719780082052767324645042167212790985264248471521096459239530716437174239449036114422179193720201196672218735100473115233152791322161933360759422529526259311413241960821672676125900132389340838076231074006441173484073559788750601678378253144784864888120995163311502590819060402628804297084968806668796028902349316632234128201951146104077400337839961878809798698784513589284611936837253068594348324824157449293183192540497542426647221373962887616578474507401200031302108585700544121191144569099465947805715032095808933180144790269146899146939609713661735648834702889418098187398387184834007813275900838449263462332481411420124581190077085529979735040799623811286284533629126493164650763092593427441794104424616556086285236656775673337251296480343938953253472320480663755998062298180124393156189147703282120113322301105682463641511784742280826540645555671752354977848125739405987126209302450186813150369786968106677661845125086230994685739569394526096155611417745497082910777207296388871011602759600589520419260397753234051139505581031759331324922389189720532520365666017320170163851463795653343774011544780852744381834764873920226591992057965287066373609822249930460344569995580243260847888625516688328649205400449739667644227479190737147767152648567560105095325203134996574048190869664175096833285490605834538039680641713821247964798600622412165994952488999768561307480443460229600061627460750800306599738180339291964081389037323413711492754766370773682510965709798926555148257001702642383386371466473527251312228520950347650792879816375035025887752208201216853515845876447948174636018289254695470850568005751330646892668819054117803652457173028676257364094863676993006855757714269152465170257716708491946565440364051743222953787847248504888774207305668670775253937862065310810403853478841011779250511403169613234047590719618505301603589204487682530497317284511904993371803526968946752990681896119013500987762738803131721459056391949697324687475619193227573439860815994755757202139709065307363071015163004689062739013898590815256469115669982562944652094998753425948401905456545582166455050448063035679486634930358731726741331442872076346689094311883261969918148129086388440548483851333328818454740777489080857382423140282563745465136179897577030001960918131349972627467871692466357758319300008372893010661605948210851176593015025770776116160007854938363346432593553848911050077989943275238363260749088636291317506380852951618053298914859145496910636783589042935488918433877248157656132719436633163741140654791594522370433461219130694796431204049607160596322430244289464739623512969175794493033112534207059095780086011463068591837228618699079745228611576217694539877332059679708274030152561786207216761571248873939171522240263349097025848456858693454681014244758872089088066043410435197369819350672339811377176107960960179406652693851605748081675668155896221854372925719303282878972869374426101948960462937656568370268161559612301116062379026185923832354879777182416760000573732297670108436068398817400179895159128291905166423156700664294350797745877299703635496873992727473082624566638343048985911944711044589000727582553592640638101268134834718856575643365459220039729317721991715085866913330088984430133426750738453700111590340600628301155420215065354808027852752943393818272996644150008506948166802213443068916579790750109101864661303292376716498466104922952549975090309264237399772141682975863999674223649628565777124861512475743500560091110140364071080477008464821176073673693982585903154901834990540134996922761651527448568021511680395052055600814959552097211278617929863249563594331819802587188922777186601705325356263919107994630255736626813173317506410009731061277275722498850167247687806613025831006867697207318559497081912897143399484891637693124663145538461816165111609188414969669067019963193853024273442759265995740525793278697236698679097978908567409655938223584838979300701596775774632574110954165922303095819009962692148889635881365003247067565457838320077422958709924749722017303097581823716839701344072856044657494450716121130670006584692331562989977388256082704589013530732389001997319743301030014964335629632238711730552017814256387349730670739828512166519070843726177442978627525950892228303067349070230426111834778709971401942955168291040321327506796945795272205796191278558614552177371381751575109651160300672773275002529190949532840421646872652464475610021701093774786982025233714934946154702255379537422191027177003438029145109029722302311501198281152380846371939635790849995144560809513038597618661202076652964412494414641738574241828578097287841072222327066508319603182014214563499395371033508367515822151318529965085258110871804831892852674656646419679115358696191436594773798125109221078399776934161224147517420909247986272594758633425207803794048693402229114168859444945193437738131627407598085201430976419952522163103025520011390958858813332166486172420358334163206428661881511798539655255693331083052927131167685496076316148011560827603671735775953906010939253874267531060636254197449536058991129350956094642433675991623627788198528216488501043290019287749184633184780069642649874874099732432158916558762587495525479445110793591105256198468262646390886265382731421983738146227478834422306319529576104971339953544510197997922085082599621595988092483572428319393135867696694313727683382278837664962163450878356151863587759775252940171965202054835781934441738444146718598441173350265402477413652140252126161941186305264469387596551530837859211493965620090668056930467911163542570506728714652056921822189261401521028890766353988608147392932746263129210302310323845195199395599831762875793281858058931700092550916357890168536338282287522323088372081809344793093500961693781457116164160127690912026532067822002668533907074893094840258145040836863509213585023034033716360495677590305803068476881689274942407167952506654538647974271334808886799172200729601017923486495771558913128631149832878065852243586857199458767470318237511656986834037971870739234681736579554313945865467444016290141405192595937238765214758085086453373194239235770180630198566324039985004203714551285259815444363112344062856715877281573378750102186923836150230915629873271472041965651246522291769650595265436064476410497986738414344674131158532048540127756136460874208114449606395443638602831605308244237907962674500809474557574323539700638562377572524336320872456312729298087646073125721722360275407093637889186206585234460668399570812953117809546725068310970331720141248939560549720531164735522370241212535975089379740239315125048663927315037287450039265354239471374954546728223578501808797769040266279296794272681975619539331105019597514171472343266670349318466619808576949899355995791757799409809347070425610426583250754703021143000727437216848837093705803199327100572524656031209398090496474502144835044097651994621513839465671341556721810728481754328503049901989626227672659584067984664492237520344780888768379039126547363359750998826517612692635687695846776171041700949719532691534446146425530792155229638983826584150464054208045871665838612003701411706234066620350821916385429533517259531079404572757456993169299120048749174760302647734421191349050904522151451020231511556733140735407228823352904580116113560262233422102810059824722100269544694164814257548200457999912859640292111681835088309614088864136203666574844303971074775436052143577528928504480917946163617275476070439136528360425361449192326266527644862706453337635968217711437412259798842902856703872461776186838238351598809601193752701239251960704715764046231898682083805547251840923297617899653442988238204601380733457408490796895882639058685383682041965009271650322637467972921314852294248005381178398950199236769760531832267765909817324967197766356364036804400696256905180622201559221196977314900290082236777926003864419051384790757135194789830512643092326863024033323365058723335863480100629111417354655307365805937408324650425838784590623870368999314151914118014949295081867785954497618679595298199565006357015701094815735701728456172112623192479633646589844235877446367681098660844614123230481164872602811924389293042077000301579397319859823716156623025301710834117540978533139296168074556146838223646382015862333946967910099164868691010471374572390404530763789715811945823013303949843746591174236487473605296185799019376058427615879407132349074085147334947555124173901938893707208596022489435039775742818533948915158645355052772584888516613203987268734210506805261510254530590521943368966819490297042910618419664120244471054338678054804267112834920038439860424084095362469460598165113640171002373534663296889244859658478882332326873894951828784132911616093123519264443781661081273508187396453602181485048628455191204371792601582018500622776165922760579597093374510020803528309378912186411519980146501165118139125582805345835502734364116490642447826855239242179763786050549662978220339628665830707623981698170700828993205567768883176160561541606671840814079905693688791908716143224069046801413169399016691279517977061645127891001025281801406956156668462166911682489285114843850148562633038452889963546216226590958364370617475058712545847546246426819305580724829808870443374131950545518913648122121356941411259245905276939168023673240270979564405882765935772271565692582523085400454552200053473531193136435296097956601929097742183756071671907964763297835113047221873805201467141350890791402365719280039353428331257733294653914405923443001480177383259847046479909591283099442613991780586102432196227519952989233593353431962871095398533539254572547758521036784991427897332233182507989015940466187737750035221424210448236412124247784794602660866997860270377046665813170270590119869054685817337155077916563205710138609088954353441026639090451351982898688172732784835470693733531275605898249724406935498124725252298834385284753920517899005008770486240103547594276750775583212904405245334258529404870549638453896304984413356072301387907521290325749270399233291621924464212945078979116267192138278914854964049402756470551333828969824322429579034956858251225953114997402791027212673377187594975232426619399133808957353178581427406179900043370904167877428150793681079538746565969470964583302044186243521151889325455395870696317663646873753182331743667020522523824837911791287327633631443510414812046886098290057240859979016415933114778310345438785583303032594502465974150483991718043830602836533962899853002228709957000200151492660299727510760253302990940895121723507241107021592980693122037476407644425997098332988388441070607632640864681568464702625898144463751256151013613605268611633870285161461067770888991529064086096639775146205637273450631050533433581371157035851358197487243389423150941037241901006905966089118029968123864349973548114208311370639807003971940357592920170797171841276030489336747512514733055576563313287079329589728498149431899762903077272290795235420132504149591806273694596749301539464735846178349485155821681879889088607350626263112553669207673719530706183174985192676477554253593118427727685291200728277499359253571290553455095665671250540741928939404744241565620029653469698659562456483127297257895740077962271065300944124776146576666971573948517473324612157120836141713566849384938494102288847623588082135826700530485389146538823347100679307409354277696376302579046026415764712233868047895931060164967918366531731646052108158550113685991234248078432329798473296538959096773121535135012270528537747825691312992547492232570132924373800668991149196669322717545046299283915236626586535667088381850097238655898679111389030354212497118263738809882296303275876724294295545598266606495808721320431331744925983181210896818477630847994126054482437813268627068237931604916673642213247458379851294744927214229692630707761827599535282784112155731584823732246085011717504503596607279365657248291419883839791802621353113306641462522743029668576085522422185901824622132134014378176301980908616055186409530810475415098238919229033104670697302382851470073278768990788288761120631719764400236856214271568275356766691355764555187785249236070400934799942127683106191950890106827080444350014656036543092485133808877360034547049651139773052689752590061436135935420596980288873355956202008739909629955267385699033517516514693917230025600099119543629010874213031981772583933203257449017754948563197789926804042635701701492321654519458511817612557949670658458496768534523229252919223458475145971398100652161000308780817061858665541278688037998886125330961660735310062310161152044286694773121454114609454518126456925848865248690272054827849515965604257609357647969294528561066378366616119869513501824560271692141631537494180073504471358539045047821573681395847098650352338013884384893666213555217808824573671011183616942109425012348573948429643662708561053412180723483971652266811310768856465089340102101451150292648982408321002953535513689715198994114050424972625581553895045001298908454068607009015136713466097711076627570404237051384047743117989124753900339029766287117144638750268494400847331778361472992557892002827844291857025999423488060298166907280390602520491123904676828316830394904578288915537107966204741336422572462110513527799785020893560945410337048191190745440202427820925040287230307113068010478076381576481323138630939866267494406387697585295385086613448077798776241224991247171604746714364314806065149655176748379412042529054746680250503829794939127279526562192322628344184083366585750909267055031750363116861864130398267347949072452584284202721829384788267948373857316736305955750708351279093109622301570249227280937309514968864938395010052688717152738612371142212229696990844262377103339522195329676380860169385810015796447775340296527434642538664124636459628558027732706234307393789464644777894264936044929232645176930787238411044921084701852405464747210728024301947743948750125441794573872686677925925114042198769452406545101528586921173866873186818327220149338193600642287335531398849419565939959528049379602364765843329651503908412278660808669083389744099580093728154067064118291685688884229849590427919855609166433872588293295472833088530535894767401127470732955334633651602226617786119431135850502070063558309728419933061839766431736563083325557543261531053320413425650465682141962985076359421408478707199039148441429043385916038421135110990692673972019053116973787599417217186233814211709615343868924276103060906215256169220183517120497344518315892059290753371767647603551953115745997511216883172946943478545706813569126372821359412755677882689722628001370445053323747638083551317478377017016853764692869013027883197832007847760330572786945395080856242562231256754462067719459558014972317548935324487809315131049849455304628617463878523631666827301124438558330060343958687915117699338334586969205473146337772646460777178014691282838082231428870758050851667319415918217779995104107779624947104971600659552225412133328984911285274975273059446729500385536195001602675357094584620602845594191842019987283480335665548533523476860818888163106309249721279727830526426782903316390380782623787031187512236155763146941412251217800065592326494866358074089582399519372119540898511862426174563180725901783419367200084986849592207850826279872162897341323357566416027589088431226906832426912825610144461198483273826165675862377580599080653230831366722561236193662648396831246810328245995389928286812620219885688221887201406495967644957996747728983057194127707322949597333628841603862094627304795815440369952252925593201762733440193215146948180193589234460975137896680984953868887719885784386276736516216901712582471762130410357366491342119675155233231641112113468024829983210787587497191286697464489592756310379171858354081265317824495024843655777256665838859675285909225341588186813159653594551907266297170734330758582635271971418036072152542320632010467507240137591483453599080368681065863754955803506293583607728678509665500277327043069255002007840834930382972558277572954685149722075953044867032344279972397324655640893064942480653853718127265505706410075036571640100858987051615722140277972023826743824221260437536131653373059877970217206717281886722198788569611222734631354160712669705639214060156463441849869787424955491966146692008939664040356726454727482237952773681311473844465846900190471964475252116016061857180476766728260175953138051936253822451928139869054480603696927933533000484916655116737061620720127419345178641624790742964861050810248565292655301728221585503970550079157119127974785674467388222267406637659922935203604458741726578549308605037595039685792992878810292200622443933267429171285184211604223303553367819189167683004943874176528800814969197094036909673249382931715166571889662010498458856241611705613875372135089382936503321585605215442606252567921113199425388831541794785672291972378630791999440474584091019551286611369390010123696799650412341064221731691346063212858083181171295194959774022200011613616359114030141553941438826675616346460932346940545412249966278580247969744625012044269840227269789159952583321600252642562308455644243805865495488668184900474386537274484846540866018869277698070677683881203248249271770249868152615751072094467661785340821082520626354816071919165496571528179697295452882653335459137449824592876977965260022039792853780269123584466212884503434174691088469681326945373720094608011934728294797303854082144129232698178489685481937746264030485576113626236714916994118079842619682787709059740997630339005389826742960860520919985944057498272579659759851572033151895260535785224499164203145907924271997307112070660728581203005831101818484428160494013960363262297528000906099943993895039841004488693413079615167211529755436149674213208492396835614197281606291147809803056077207420532775289669229685314796297805790741429530188969920335630279067552013201048626969871272956601692083842756262276734250769549962832742340225560015070635961843063921192784049386804461883489031618438339643563660940891150792385963130696704951448253490172300581593992369496483582732931411528352577681446996290217518681337001472175300230559675416519424700332957040240898852240961016788597774986806445376953573066210867026138692083141933449969093201729635749216761234331528979250135326632958684364516839996986999838901694998194846868100099066196938561538661231115748318519952448238178187618909558745489709945539134518314651152038811021246256710299491259363678510098789959908164838091504015476301718401426763241648949155054343391372783273125361658360702806781983436835324460452659027487134052471224558608016250699310476548140419832134632234435068013172498847562801896504703985124454468805955170918891902815674411745685704640684618237752216455640604770114068452951481748615147352716685459057970393950051549165493262804699401793156972149182342285372935651759294466523345975149437717078782308905140781107808748238259168358303973699296064342381202633275203441535920781223160440744303279291392542396031322681955742296115199421293120147041770497493011072641603488606343042127465254861740813818286818008821467830764175833098458427480866713331202704805623652475818070785515329627049100224725542304866766152961899447875798441332759398447621310764817300310905556708539790045785740208774646961413628248790186604172385843833341385482967690786123912133877287922550810802079766713581826137909931131848974142998323666715899412943346070917877917337403452900725289802536910300309518062215737439385929124018399081127517741626979805268975203851976157888629676193599281220337887962012447284757931434552011458939152948571888316878007229297848371834699861157325115025344248923084794696570097672204246771264946321325078391672277580407104770206331151019820369913718015601669642011174504401216471262656148286324392263838118054168398117465787609354049516764067513914809653555657463235422057240255254235437492272770670188944904043414747352024880165570370643820388806770126886435281664485590228773415726199417673974295845978137013355670560354465912621300683242542025654543205881392673240235741086426423156911979064107591683256355957509088402258768755668921299594829995895306888603073789470007792838997551429415552612357034062780038719726899625543363156071151139092934245068347458536118881790784477919811136196448698190928681388147750337220659366739777051191175186524282763756651237151514222035070725729456652378145696342732685032254675810920109219797782426839939937271618598769853103004349118480200872472231231595978081547955935975158132443039744238992255352382563347004755818316227562203935109368812006298723682330899106442077143946379726131467150626445881308225937020592649954872603097345325765686040595701970904231976842660032349145274947772228157228453874340347894032144739205344083829315400408127794243657225680144598304968586840962482500768036833332650556715923426300379072432254422458056605129561825158952950502267546735821808717302230409488967572484066342208182571607852451198186915708377700495965406972412101635251048020248166148412703126687128490437581950504185197544156166738196923262143426080971719997828427855157754685666290777352388972116952052585229220295294831986780705455815011956738953628125381908314357598157614203369014641585277961122456734769892496517568066237321390866974567765063734261435476014806401492660208911932835648814977839977087112764856832520625472255655337700762001624361306612864949135530974853770540684440154609941573866915528765344593977744154430043213589752483392844226428301160275511164488788442776299011932129434273858344759907026102081538661976844063121595143693359301333408760329397547931200508315631792258565718644960384516059915113297950775208382357383954928960421731480734713422764817955915217547459941907780657049082673136565431904633686431609438701707724142580102833913011460559460660028469504252990218787772696471547786038927318810419674408625189479127469827970050701347441244721829030383456894013144933414338010890348480362481306146354923691657877476988041460557189508921901977793200567510412598396937141061427585352676797402932593555446982187854323535959919933927376685483186943369695867513587534661582924329365701103653102487153366892916603103928119477632506530372735627474151754229943695790927456702621490686307173597905896357553011030503769873155711095047233508718364545106925205268462139024123681323377529239130479762938342152686942708829343713216978133532133786966744080232650671638898564256920447311287960329197615099001979207886323713307264023503046914364566034663360823490931205009893644714784974222841910005446196015647886101248249621422919773848446832026554858065157443137430462876380102901205942999579460856820651901681346531828237419838521863927928592605761139332334815242874081737738038959012880619441621556692081037061064993925733956960605778178068038839176824592423927690328586209716399944432295795148289363221868945219105393815627631852486862894904888583421524394634545537576625823385718402875918061007809547273955215917466646819035040948394628392838712673596313975071189898399239117783704411162136847383343722980152269393584489425846561617351643116163904825048447362894531362885281650182112605463664131246612831356011507914868189974699837281520238034696947474496763164128489878147359113037263956439979726967098320962234162664973600602021740803346400407529682474176677112107730428312717898570199498392155896140976715681818561116916462620521537919447167429174744809585646316650224157848208340826970769389603201254355567300699963341760074253889334537901119062593938570523792857479795724923896837635996911239235395878896423190095037618954155256093581242868925944315771593794312247035297791463203891964621027038786941091656781371354820810958866722068879014120753781642697168106991316663135512523040479565858590015652103341790086806586227714566186702052914572506064488981557541105341968891901062358333123061527433672475743399527948165788121665380673216324777272588449206936616025544725663688647816409547005930079127945318296333527199513720080874800958843047569569615227583554804578494793237807747344599962333039387163953076765877682884809614809548667604369459673521543463092193684519455041842284060795244085232513763037430532801475135068926509054811160326954069457271503022349124612221099776119311819810365419922363743821499440110340539851827102845202902248129202885020157763107806448718700221595307192713721052336455938661737132599899293083425718496721489574786096744671829932743663691334244753673822488573867727667476467199690771340598126498302079607649082237466249631501696933579948033722551677589685752250590778615559397498922109400492343023530774545688875917958016223939714811030180104955701673004473430660669069083616412696762377453743384733250757778435687949570949920218601389939025442333608283029679616859580081847988004309042268996579951660274902077867009061912871941530934790166415202201885211006847687886230799639334961912131930748180856885141037033688718567232413036167255857571467995578072779472163712542193670827291893663017110095911145166182745727952181337445876969978468194492872145680646519490901478250725044891384565741035296590559182848599383944185646180338725848937199942819584608954727314259253532828298529439831445164271203501713199558409458909377809726131768892451706295808179041379069925962673333516674797372101617021011522531886569251561154184684941188967034156181583078988435629061767546156845105672276613534917297273251136040605454169864367378607848578818802056694992751008415106902760203240958313189415159139242429698041343200333545339337648140517707882482593236836928798674637392525165438386257503547295216781851870559060130825036127234911433105885548138502037309965995571906464565377595933365600594724383679116317069997166268333480777366201103413936911837351308970132656880291881786072706002711981418914633690846263861434959006198162715936127486436618874244533360903543794060319056554061504217677071133847957410169723798606190969276834657199214199657905445906298412295148554219634335689654016745160525484861045940831155541776896192672489898115847998616705141189256510291702251553896716881778946848086082649847600535859244126261286097949863531378638133421134487886556160052077862020926427444712986968150958184278012173442106040965475216005088809421329293665608532269432780029535272009174768747976519417047622470380949397900312017748359918980305113506398755775919769749914276837750879737153503867007058703410130524222034407939182352469568991891044730230931781519794796537534893098879673820549882884711178107187353513373981442714407788394706093716947643563237725530582034832519742085321139286890575800466064346924217683319079004140996971761779671393112833957656704870424808668329529188294519661885035828085203856726500996010357746566346621395648749608290990306863081463416760972593730970861843240786410182543380349745527490712974313906826993269949056482950780836677531411729606586251800802824054367265617033522889110414167085813499084140115737177747106875437409757808835282952273322154967365231126943906553865648946643449643182875210835059800087721954060548159550175187930633650773256742045924157103061386113944456940337738597383214932685944629190489875263378597560793594337710189631034386284692062594423728163609999023468983005484039664490932518202536066078694691417747680658495665013453818035437144473637072999444503291453310701983859284411883036808079593986603639021826355432000869364691455374936429757815658139628099755040421358279254763405875142050881961688939239570100159725155164775275949684831372057439268908894114881217044233275555751353981956164204220421607604759488862265171806717761037775624544625609422159197086063630324768374918269531544120747857105559732991431758415646685801484819929872141865250545050192916159523410717591277635057021455436835977232771442045883562607499553226030154121437540063649924316584745087367900730297137929132974911689699394106471996261511668720043645369251026838180282113183489424746196007069505837722994358691145226998811179879825613749404969218313600280642974618404080119225234470981242466260017555070309245855675155880614747724957424857411468197225866654195616025756471755600931002361728157685718641451735085472457646266512532480527112392834931653613652931494946466359112216056394032706278774658044402436534806249656874066840955479065542149155924544383557995717948694568550414570760814128185019827735111158725655154051671233050712805848069330208119778595551461850338574785330307819619901012793276777948528947013719949070884760350621383484506164431928641918449112717691754537174140919047320476387786629339204319910416312506216435695537830753253436579447675871725016966977171769640350262707975836108235830249715643676729079719952952158465502390813459264696231070628220239326265660094111326041133222088081714154549412389288791205693677038839371699760368319059701296169932310076418388905051178303514760994960499447814333200611612062028268483713420415173928656487805392722859513637963861412005555182777782229693163347187298113081652014423720472792168623975553856416700308140491202953226601412877817021194781371411837830149284910384900106586249619815236029502210023284100890245585033707612056199080734702806072580674143348202361074336044016884969450324342904333554582211692250579818726964162286507422089223277288695381383724059381498654784445156876874970012242483723266733413466857385289545771779725202451636034962314249791386226894318186286530882203700699528073413230594770090615010489523020990558126584219996077300275102687510078072368256553569380526836437624212711653900253432081255936751909038835781033274306429184846187523868570036719991333322269432485788651370976550260416663814902816446973184576563634282807347537955840460131263449897669734894198951505858558025392614552627164662608207763212524276898708720937270858318483130418401421914491067944476600860140294410419595406802999566299931789849170021317586510574026579375580293759870805819821208202701429396928779564535202424058904843354678070558076744477224632795331116434540780876909892340817064539598231642406960161595609185292758197608705849497519910947108598831854083613089358111049046645378792140216384502369316838516315577681473795539885870410482116165486877986865912698101362947258192266483148575470351233884043030264537751873396421309120934629622501559747084194962848937484774190430040443502809071943419251660794038737925439186047462239311779622590173605034822423543864720715734271138929316667344898342974287681661628989530443826259945903566858134705439890291836673218777741221189056169408256980395282216761498108662129455715039100600432086699976443495196989633777240073838940686284770110025591438773772031293345389991999516582612360659905371704915372726777801863198718774511428846921649227009294514679422154966832553264507611673589147356156711873509889642215822193075930773154675308556541114715992558380366639148250308606153329608483393022604228322899351507321763530031846580237681413043963818522726503694886612190787048838089981335880116236132147172095364610627904974335419428874679493747299684022899000691510309069130136525447672678111177593084502892787120450101027622589399350910687077648301658038147409627998222563859323438497351512189200475300427225160403353397888254553999811086028066629945423469287171338478304108635877178115794459915624197211985693811866222300736964992435855810890618012826513556716576888578001276125183685233596013499641851104542701315119444698739335082104401270043210595508293439042667513748897199276306579104716901168734155325836761607118968906751735017166237483278231219011326455833205622654867343278643320490911211343798108341572869728836162858638653939749143130049879632588839436794010809967380691905157593118366711136036866391621790121218226558248980788798910731166180648253212062573399655234370150470770733684038720070038176600800634241140446338319975811438445613245007402308486332024987736084763249983663337294894925928916152216901640252661842477553219885430946636287727887442952786560464739491172291774465406291926394762875251989273198409829678826687468557973371901241699062180252528173284150256683046360012428169450306005216265720583869686695555631584092608348166883651081236891801619893347259586172827921371918318811125871780744720358176528902723167335822246834367048679793052921432071225898868411015834753002465094715618116997623924062852548731270395999702222835283479849397164031439059998939613299693278599957619534539654899631999634910523291918043028978265145854311032907258339155517863679991935729591343870217913545968759300791412791647415554926474654608385349753153954193535189494113877525593067821882444159307590981392460910387733035690878406000693165595662692510930815233064044982807140395090970264289149920912131514244360546374350580691586309805354314407274583396443146013234048688962672537687666318053768704155816331844147849824451035332056705792323587586645017796725109696287755730832848216976553811637118551367569270195603657420351876094876063695145062319153933736183349982956700542619951220414868588365169237472171086472322248219634583538575076491000479040658329411228821767354599371634710010476373411843850409355368493238034202372749675601592005105303812431082327443655053117759318994019758935504282807273216288575329216583519058768464824021070421950637882931480880607861032075814761371758606840606492984382861300021909237882767793306523874011245584621470606000252243919188285709113584404662029694528461102519557859921827070365554187534270143961305305766487410468825507132447093632169365761559780929683265943157118487128321210868994415044067306208143550070333533702605534864935428545378450632053654576427709544205984082876561920288817533237582230553284734792849410223175527783899137613273946594012840652468166832956689818581210389946532624044526825551213547600439885975082095807451400648188169013125776005756017399757164865234592835994129445346742290183713580403933583975415477171153527591905933405546277467061526504895696391168542292622132023150983099657096886923702312738155118023095427597426263264180537059668271539927676763016475083757386235527781101786717016550526356353799382280300033220810404519929476617733995007627484829387905737101241949193010923881027649729331821052043548535893501802595627445515760095133058438491446262751158844984012278211566684737966664215260800055656366935312391696843055041967326146341132813340035892772179178315478643654580412779007381745394390112804298742101810351379256701924004637045925128796171812749460809060789671892476770284234698830657733435027291964443532673048934090104119721169549614574220285184915005960005345260325028187657467995385351428167583317187635520787577853348903233291148537606585906996589427916388259294319264927222377924948492863474107667035127837148310711778548903252334439380632754847079607639802156356818983723401985055770785668684465341654103317692819745443266128907339685759169176711641063402871531706743876220714162499774212212677235568544435319195498542964949941534238723366863167750129567383956889842817578128183293645651031182363171958174437288833388745865436657053486464981940304849063588006178965021947677967118001594980530043861051013126982132025993751758999476254024463224529854532219552155946895195892126099875533470721888932718540368246774701648349025163854207255162708676570080588883304081046460744229801632813779926476530918035832339333073218411326068940654110064786680471457255796146929378390655891546492637891720819058529765732585965655595857001588523031385201948650177523683472373190989502891290786006733057971725630677476061055054234557178152816548223984520880381233295097267613100957028277768264495544322985017633556803124361513442205152054216808728906518684072365201439616415713403192167297943899886799698014985650537419108237833817086653262148170785129834823527697789469638017059919940470373965670310280505917868706585740400456976134346840183561622054070083558564831391347935129875419214542812316086637874515693075394426310724792592955295786497522547244644485604935697975280691182065556181828270712636654745656893178710592919828235963345845033158488963317643004427955913296924310235756798430978186209037944292600251795420881771396744424854187146040199641883037589971418155514872558785381333706224902837026762753571696070438308893710610476406584437364790364963993356834817682449059992586371173349123553842620172010253632375904496067052928430132799558691361629812747491219108711007614443942012748381558611501544678640903685356879236373325672306772539692239693830570930124867852697550270582791696539419192985948981727485304819343054312359234296299600348769000035318017250328711461431813887229411643943580990604441425299771775923608202740090290856747576776536387286554705981948879835068647437224999644889919916581314320028626794745539899369739976737819491139515070434180492748766096445960040447943835931986732828301677601295166528724441269412552625722804446578112495355466729111595971451563171448349573388243742130147728758382327190832742460091833589569840523172761048298120664806397734916153108258927105898363435362564957274878439376796395037242749529931340377696517310027416880962494375903284983024956174466402787097021742375609543096942541609634766959657538158038275515496169901028683898497101034265572053879901875915878450674571351845620475705053128953383490193030115993956332051895737866018161738782980763671756378586166558196179483158224082207661148475206212864734895729086032824671111190106343148250123361710503438083544273332355035405713851972162307036833935973068530580304068993681666884137377863796572556137639748499857061384463143133102104795698694736450735145502894402132423650929883553906299711326900867477965052099050501039720704225884412851673604765957369445846754261904607607926872590839332325452096689207206808131205937258562207571083068446409618502704229522436393501114056847975480759079602956192658419892430858815239783486397219599725440646714070049980495177934462147122364623320621084551885177157640226643836118112360418059166277550955108211478184886681461400154161977254611874449044355666965227176575446607818013456240984866130284615495723718392239422897583173179646242198579441365650078970467886213145182998908659894495509330820311873809271837614682541093133290737804541572942711415634988335805116555308398478575577711542107689288892883081699722179770905423770593444605833062623711167757462520039293759178925386065234127207564386584441839740463366022113825895885894651689003294551034616358795426854586840950009930119575200414619571714131380122272759066226469324818434947783633263728791694283951216101990387266935881456740108883374303812253452535906820178116565369522104831316889961022495279630688371091898785310790669554548305028264428606827577441824430346593999128472904756568149040916739726864929501557555729417685284792857219390822582488489566048783609399268307343740292859351160388004247972182459181024414469935028299933975600993516583666760750427630738270424402475481140233995299607906151063979581859777998303119777649443349204296343732714560829896378220882444189720772473324233802572018936086410207695405855388006292284984269814870192675665812631171703767765866791411192343587595212408151891626190478010382255736055393527928673710154570090523641846349944936414759224646430218611030366623851028197584564412062756743870799102742838567460321907932367016882614273155893317558690866134015953774912406005933188891662460820408837784558445705942679537982363383236376312468827016307643865927992420647918464044596525747490505532987047536163813300341728357976324344789063181731425289345692415512290687365230222100026815635050521872897912349431617090961991392108285420709864219704039524717539401382493668298703889050227901150632604284071867774571891750673225355494356381484640779885997939333331743081576571845798746051163931669951394897836523168198251663873958971526829074002377896628811862166859090000901777587701636605260640383378015713455123096137707058582602699525621397301045453779135533805418987588853295613471524510821965528065595563408744706865487795259021519753914180142451026591428331685489908298424737255698556312061179189047744358171684764804649235083382392065272585293520331448017866660137080154216054149504593004152597004522106787119747142878993607094698871044936042004931193838794735331885332009240592753651173161106809005158655104755252365384726353367966825427375281325243723460266858528047038922245623534237065093696463466884587247919722927291123268819782483928518590465793274916966798970057008498433742042819986140080299746827680856352881071541943977131779207701488954155397947007857120302546728871005375354570704108518071843196079417605667686914019359104513753786888343897317669541707591109856301747506037237093273900930867929416069861596057236403890671693802087090337378445049920440731933416845121921143775961134444531452461458808361591770304617499392085827899727219601603112590941317957021572884337518679797316093546387249798442565416291292145223146133453418840740305387625499254623732428612976876272395947005909775400405694908312062254888104210425279799262955861350747215849588361473336160428574269205881997892301380308032662065281042523610090750360581735464192323569907273996321664548186315441733667438590335927214944944025210000371423192476207305788868784804380684625829370891579438385820892306839111073294813203588261199809542592410118019799985647650680883205702435888237533299099279896429318282008501627787586062002627892341592584341949751273517859560636441252779550912810142569404942138960913495263130583046439669335031009392526720492309695644608215548293442517040313455802605252115882835483274761570663951656760007681043019355583949543669671333031820792877213190010223466955055869916655533934894606096447271523532297384846673289980543951994622820587284035639347100938784847460813866909816061086265602945743812418679175681592268645683162335937496256958256416382674666497612916768661649593539886555072639659360434403589297008805612554508893864891457077233629923377151407492222545623631027826564849899288770943807581829118139031530978617817637185599123270220553005200113138193871410061659323703656058964085694601521100659876387430843814776258358933297923358508241391726394728731342600964046991922268134124461721297269893413510992645675994672892416178037248303447536726701229666150340691627758946980788284578722064942649389131894639188472834124921078058643098025016537012310808614836960351746760643484547150289825170364494620947397912449224374596992826331793175968747682973449107085719331374708182013840701191343013031851482179182742580885316024739183049410039665802261613320568158787932081050786635472747976282550605492371466024221174036928879505999657708972349290659182968706327580988250618014957097088462615227872084095535048460461867039078289651310092079916856783587638774287913776063132375951549088982458571169807479437615095661599825565032554446875505471972975407008205340757843176273109501463927158800406391621784330579632587592941884743050258588681293947541405076469540800395367825842081580123420612704639514338740581076041668652845366572412059186513394529952988200554805160047989311344942886073559381250612569277572279693252537220272798555194441939515557250620114615528764750945198813598806147269242324172778324876039556250663438238915184630466624634217898452397996935315211638404250101353163448213709807290029920912242556111837979638876688407222027419960416456443838440077775615786725941580079946774661961810989470963925225747055522622428415781382892545221646641335343319385411550081388311639588235915739953460004143938880363380272518356495136506411941110368198109851744670470249064936184658088642718503330514681315041438978695454404671920838360085364860719654502389016308953045529321991828587913552832322392499629969872628684627726832535488547316097484715171980429762661268598853084179859106285460456927778310175998045270060024392561882847449086219152712495798087433731640612843705857007624056091426966147835508487404033070432775631252396159662847208694048258789677367585396456290718636758354027178468995230181813109889437075555897043994906667852068447533953618693102172964788398219301622836279151376759769436343709562471971329840061422254883679342021784383507666738439787022916962901642560520544794671264873007275469368330498361467517044980238409841680286378744419540644538739489789917948721327492149905416724753103384254250300380820089094902354506013479899569680885793221622742653859590293807617703091841163706686218129759217572874896994897981825614343408929446204537466165598212058945848743460820431189684257807350407041669324742763116459912486044466177486518948340208087246401726788870847141376521622412110839280820612619539144019365820199285983177689838185891670770574162788024792573861488887201207595512335333016382273842846279631091350529542634353482076004530045986211516135457177165143530166990977041579173711011655005020165510300064294714470420947892975704192223340373910784608141652327840683244921149206693468477437884360357521907875259055178415775886904664940769158665296279776067875043552669379542471391864588965761791502583224413522529208523886487561216689596624199603275055353320375087370279394430212929232809159532434624509123238962821545459737379408125086727226064731681575789202648534667464212256563092149990519474310085513428319617225267494178517989068623741912726054602784140537094493548406351995563581592685590606677236114848911133279910321218094225744231133555825963148070977553373667743672343236827703979314816870171659516590521560512432492207308909383099166659850737340688361328275686440200246182493141612194368886700895606491039167787364771464334291756758109207329143352881781785786334174491162240868957899651703117734572641895882729372915606576706410011746593324690669700698296093945528777859413346385111069721635669174341148228115237814113944952810435219424410501380774007612539726998252031266463071175960547457649979697634616706920542588888634119985272555398515629613747482341840847574191020842386774846621249847310920819439824142146081428277920471399388264439469633048554311393831827299706089925755030087803985651930175996407700216325431097304629617995272597675224637757424464918024676296475174130305694390697279202244844254024771003818973465642302947829586491180731643088408875393317820900615802903955152461486860946165094968294297780080978717183159770980678792465311376891692254787256156503633692162585880345429217362367428080942401533266312754264358628142579458625761176925900298745147014180056565199643358294371834770207880616509479205777783727386927232881934933498942808226543306098578141182919883806635769389561170692756806236984063647261069910391152598854998696134724617516140121167170458344281915734637783356667155469858008077782618264761643786957221003456599366185600334922952628441011401371292478242481888864778011212017319198809849876033846856167443592384147406754513655622042584164454348538487906243302605726037680541222546670480723331796903197609841520499841580422552039016967149525368355664982035112094209756163424420565035051908957669853763072415557391396403629543783869561539711022562781424890063776756871845327337860359794699824317648581157011339285077703772719278228802455151365487300218438242311951641250904981835526902446069645749266973233586260756890362566560893996573044786045382704111183806146414700813685904306501312155419243876737025559387888654320996422670858008415685248119445385618111598882834841227421845672483559590439099210661344206615511459007239115396798059106966494460871587987278994634932909361582880332330481508875348196285865077490169469373811043452434019813596666317541644230107289454910899832131344725191332813005136651425355527610360647062320070421615777533659142256109086662365629056323203030527992768371900030884062276667343259306750276215693414978757683161517009447860671322946594358485160842630486388998406953861885970889648162145318933247061941489415892960397137925676789701481337996827708562434537647680839494510376070663224561890883615690418893271510573211880796687675741019611748951993055590793764969533486980582632268674600587939668346215199535874008261474498885569170739406211451992004888169535778013451510258467769275876705275445385437182007216719507488891250309458344810593687404875234483197329371166026979560148244252471883413657856439965399614491404658887438582649857480007366667649710122044733788507105846634026304218204893957323374427374038573561918623034966019618574634168436470634165373473023024315279929967131541764400369285409064525348834160711124207004924800641052303392329291458399513870209809369073254588779990799222265455625033513516058633829932852000742220583142329427287648762846675044390357605726956890246435927083530562595337936676336926523187853731787848147508290791853416574015660934581185413769193870914319255493097855942897414376387367975021880930103870885209314293638977531985511771702102231194836696815963051941182541758050527648397719788368803420362632464499426026672350476695570539223694513232254626625596459218975022468324289103924376780889899530320313233610022020366301504730332704142703336639662381867339196656653850690638712669478447520453917208760029799360557865842433478883289825044442517479702988704151202954713247785347598414560771058357018923540245036668707071557567198701788984960172427485125032437166057014834643768511140735271659718940407827796297574844676765965404117623157158891308003992501581597243194335637984969414269550398617916621772926814709062685611102465194871584446921360816743477839540811419995499273536509000417784263941575267196627119249024582535900646902184416310172221255254462131204828192071538912194718613618758572344426658155816488416263462110487173086244794627801352578948773937816956914339237704407138197757643984549594575286261248499762168980247715706664807341395518683757135196132424595519027708378384249713158085812050948521917846403716092012862628928098772447539117748091030825005837382782988767313011564365316587334470309102032024495595008493210812840429955923591345217263835281003774784231756800291615196374179813732368196246855561768925805083234688636592464514442386696636492871708065593878810190494671909725062180408508155700329878539070244344750114235076624308093721603515645735408827051837341955621691126200136449550313879265378116240762179312942166644332801141447355967601720364757571675265022765136131091801402211077645746562773725681863093739056599024552692128150741732825950512584293473005352766192965006326945812605111064494269436943598323933261894551866520810341947217219166852313559669130173357777706335716425407713135521285724486490722729158918088393543122493093588055595919342479261316888023844605185398358767691520969539021102024467746857079623201043300207023121152649690301678587566494068365492414674937715581591794507059860225619941813175907362530533212835015989633932522284647079084964323657772680167964509403723521838807106027675492699016949514285186592791102004441940118822009925915776308837596453461290342370762697312836117443515384066544765331660977786241411096867745023466820467040131177442569703403425516479620968854695086392302380370596158743266287008783039666460180221409837870004498162836093946575723573673764608173343849094210665421249658097252817508319074607757987210496764523495338490038486658046679531394600405220096593670588520688705052907927080208232530637233816678692460081886692533506942840238760094943279644080248524364464682587471674246787457005756082322538880022774096366844193937728162534580894668600014666354333681198508581196374260536269142307172525593140438147216683230250678110588363267118113605854421410300387093681311037425473188591632678902556925591593023566543549868750946850930924410682561471529334234818419087585404483917515171233450901843099385293408256224640745889442855936498166523140738761564178667353646614588296328702245485675657056237360262529543067483916953927807751293766679009685838173848122643510622345033328902314459387468014055070054653565859236355279482662084474596499234804633244556945484211906702232103043735560122250307388076508426066221341873609982476096941000866337332967223631822078404340539585554428803072050360959149219044132428704783168352530201194982526391033901142326581707388009994412662971055425221086713073603995189921331800444528496676116057720644267978335507162070679530403878468858871083116394054492938324829170133891828036542947766512237249353132734016674348923530687261621406604489907676263463739204702456002639880351989964798546492838973398465101723987576771945523491409983607941045839141512153648577294110547278544762370221929455432513429863469255323620130427364065764158969681703841439079709998625541350438329908568700742255355694070298057173599138976984196588716776241416779017946797387943572930957349562553582981142574852034212463488994659768329193135810438138793639977518540384606823727773955424537771467783646179101666770975314262270240541708601601154752534400452430613748306742756092217025251326800952341843201671239566528613296473057887120875353256551513302856191837214951748752260369456531975491552392129135780124751706638649516971792663780911738632431289779663443310920150763782683598827053344768050774448146757403095829086899937003317163028400022368529234852447603199880848949300057981856445958740314630068807720078251799592477709840985144105721951063992893186973518431577865195183057637778830463772045108470681244350486045868193327986015566981924733413570511627394115229893827929159393329778016659283226646909214649063553903335059059044679168865945402590828501933161603374979145789294618659969879642552159791104401612607867381754338003406342881489222474184614263416342205614285105119849061951912609837000724030180848396018599062942655463340294749868874108620915060778094407335459699326430357537467681208195194548131556390890243814506892430754690607433657448931357653120820446007649530097386713387864640212579363309838639234149262842961054604699391692299586482216256963701426438316590224782289917283496318395533257286753892129647492277324261890063525703582356063961879584753539950302952337073045964810335074394423378400044263377056746610573213327619982948271045011191898855288969435152916766709665007727667896081358251671597179115957081140069738250363602066886161523769613480258134345524681051548225326638958508014618940647334486179867696918002010661711091770871072655338250894465680723797626579978948440555395312244212616942199555344355823345132095852673091311787969744685182567941032418490363005935358195015652653613678619512854041264134464930206773493099300146618297468356300632277453203542176639447416159067734253031461311924873331956032396816486212849989629100903953570364558034719125129837937768293230839784155335570397948912211654140916456686363825430874149067800400849691513240807987969617555902462336973482791630202632634383764320817804116845193311384758106322984610451244183949387913961822089975597419321472713956634734498508060522618248633356315892354755299251965593633993938774212004070739760635841448939182192507605285965078009041645424821839735445453769962579099065848132014234127440604698823870702190444132926087571908335920644442781082529362539338337858590643410262830054268401958145027540140863919144747682185461733869167511211280812932870807651006285475743057007777484156827798017524183790289260833205162846347115568600368080125217867335185134960444391871713965059671400171107096486574471238525866376463223004010246446678439488334445346464960662586456494099870190437115868366332102151104410496045353504458359452841269821989853784430512969802762254097770916990686817133810680572869739392995894107136427845699983349771537168147652846898797401548206130944815814144378150543626411648849070812568232659953527716785588091664168933520528960424972575959502946057777391613924677618441747293094480384614189257196754912352641166284361443175057578856409489772253377781624900018581383635600016777506351284845631287626230822184343650503094799874643868956783161449026461499236686930465891420788148242320777653985638256024235183625915848386631044951520782308363808450999844673748529014514681660269852792822571380054018282439332696374279060018479595052524804700323639419907919507536346306654434462581177764858728244609158717053042525931376201511841017895840156255236722530604118244915696893311878655236384752821346262465035670100314022729105608118261289306033901105707075080704725464657583251154738078856727360505387699529274956248036021952976239713838032925835612621729683262081914503325613218280054121841262338882510775019863658125688011234582218448004603648281954312217375117075310158471862206031259698347058098007325834052056375233892744253435675002416569994716720483685462934386714583538475016454284500508215401959205799500667974528253416395085346258849625246460705339070448638619895213396299339130372063825602842921569312125123306816894394480152705447212748308322347094261171500976512250380800488115256345742733191300907357334544690072366182945321833672625037295167426633953643642009880623656093648924324078884060395787217627951579146119242226977503848795501498569439190619083065044128819916502730524311985598916549042028953585278437383696044267708150012100502299376903824530194014188175577193471902735315559869332468323369201969539070423396434058812109099426724554863853188418293683938096141372215534185889897929743548239968951243617139321710812088073694017121653378109416965782329124801520406721815374818037145414200540476280381578549667271709143797274083737641291331591127744035326740288143426650806346213596962344092079099051524718318521154192433261482732769157662197137395763120042740227476346232431665738095026886795081544836144963931235312259941404901980748384361300238576714243867084780712240954012040475788399945243371056453132445327979940750365874123449763802617977184533720423067926381530550945439054050200239492507302089583768630314237356540790212242300735316335729541441496544011227096457902947463716041817575982420764667527350288359333615972502019488372997245280196219295405898993874967895670666156381686803508563427346004131862302727980680713493436569855130858650975558247719655104028547560003381190941723074731726019353181001505139899879750417568827912376009073058043305497745088606973030912651657242036857713272029266127775320529955957670357079946350367710056649026177995116587868045707554592210873240252821580442480195498520347859696718821907402120333213003246046451097965715614671517277738974108172145107343658256102228205380844640565899646642462011656751306876380785816933555122504361144090170666049881831982059799001940492700196387694778660670546308572071658749489129915432341038810802026439292496152452708564019848439823301084670770204950672150627394576616844859156202784351240239089360896000235832556893810729803564331464016274932677604157373835534215785166970632422687926244231882276164464440606378082174754766099852962249617428309969625995761316447827932069418399934790250910892711047524940767098480081935598944180030412639738524803782837213448443894577151479882428563779871608020517646085937014683739014348158024435146678977382057193027751279220010429678028570699652886544941898805840237518421983485136842856183710209467784001908164308180133473083834846405420948844153571936575620509302081672175886134945644096905911352556055806232016832644134909402227998006074272822123178626811163508800319159285174716426348386005826392067226527555869093559932310265244836591863531436202635174082219678539095816132967711052592050866891195458734815092118825003364078006606868920226224702683357791864938136475293886752524168314839013236655761462593457545528283948512409306307309290335335489615081118324381135166769772348188233275763913496457393086826454916214110550336857444411465890407661040424974288783870015695104997989077958740187377503462830932103393870406551271211342440621760361250851209751773139647352439048431457773271829740505563799178834473757218348127123315421055347555755300844017986464906823126730924769116237294818715196360362988618637379536250925459657203662066947670331737323531749225622137479835251111155232134746610533897062983608824414284635284488512018149250637385133385662742654943106957333636420746900474517382978045965725677397536657076547293593178381451776618673497149342355594777612051511088859618940235160565996336152965474905965389505549408047581282018139348370713779416477465047762681476448150051870240388117823756074021098772024043342683515893096785303226250261380646883649214916303873856711898230640527231576175137293822284571953943488232706557967309095650707108600802584245052168788882785302151144868783077905198670554574979765992171572091416127507401645653910458739442419028614473494747552411006882601978762044965361133732338891127510601260156913379695542111097532574757743351778988422914594755467218369420683201828452642413782620201991818169338129049203393549097985674136888398321106159914313766018439071209562984175763896126057708895986319397342035531702491399793956588063225101033563950934501546259962607145423340869971681662236486170710091450703462637800613682561326182788932607001573744531486504605773490156979362391579984920229054220612275066810791216767825704741102260644792232592353714337149294263941863948685761059121608603308236466924585126968655880874912789954564261596822722761123063463386372105753207880333024061298090580954476703923279804256015678636961280882174364508999957578016402427349763233089078395070010161346295443911246055905006191889978623404729495355001525627794092785651638598615692992308738361546211908419021714651040882662801205408526576308761156599836419890913272577111453648915959394498802305455862455442473712801836381524870439619328448138930814498058683644654785662265044631324540540134378763373172724821343602871324916492455370336686266906518649372213913477663554999826035363107589243054657047970517719945607448087437134126942012824227398831867369373262966844781376915282465306420538554539116003736102233616581379849802575473494244407554085148335862253020928632681218323319587909565830834209710059276460497714759565079041012945664399487424686270998144096427675533361744199089853950490916221153925025936268902070792419500159788362830689234299115815853140834425205976266917204758830023179440443679098191529715176591960054163410327457839831271928056390193923981095846858009536710981001120476247320025378285589026127910059932213589259183238311449336851739843206175251180618849505319584458537226891491134369194389011744898202426889979943819706498289121792488684563911046574677492024400151103425779939154943938555891738152812199545738643956485262965993546946674841687034600222960746307361529285402357853554448213498994886779189793874988180312969240575343534888224192397809502829718949759300197201362593442900276668268887604455284219688224183757822384165697580329961656067085167502074052141245857428666408537824810412542406777503646448883463958861157392583861766720416066046192254743008878105272756721398090103321500631399424630151158201980893678749569797334188201770074473977281986620664676011774978498382333312648616042219984662435774168186784730100034115945452229092588948991874423699033711169139534529830342782438745924530187325849186624378696602735768824459923890761036140095959926926896693627342925271118638159312674686705172221046203079977185631332430151694430379246321073832319426637452799315663885857899170554428563896383108551915486635113770513180451884777864451893478775870156758963296838283443594940888989112956604723102757318393205638586224654905641178734101754174266722013442119247616213708930815223740437261630284940936851964230295544230506750875899255989235971231562965412048249265241362262166383981580230981023585570708046123384255240369096462879916832616635006849518064716848863974582696401157038171404497886371283026476957118510948326435577879592982193889713675747519856284043090084023167355331587177082703642352936523346992168335603432058134361178795026790547672364027115621318883662537300615444708226883739461902456339009953154181227671436476355193002985053914790812426038772828740274001314835588427261543209273485318669399647846819151082951976677290680476128672590448420947305745565321369848672615375199004526383929715561764880029236926340501794927296204939377086239798004812406113578198332798745879742570635298258973844839967633556866409927537141370075813343802283247387799156714963730148797492899789843489183601055315484696802798681390764880282756198177017693929616347906006926726201370319979752515144271693548251507847801657265167285609208057240938884266238969829013304317832515697299030990348082630869927683898030486150444611098743899121022248707973333517886921564526503116178588083450374889329133161533575355799866706697621524464423612904850706637288886171551051911408991445226323952757512776386999892556727189477266011004872977072729196130507775468249867924514094078230063598202738612122030555844072992491656325909068262376342546363475862796051466651747650319828729215668262854087133683550407822344742390381051519069970602359014893372149856732630885452275095436203003572522670426258996157970014990442241456158594378521412577279971683753061695790414174295990231928242226950004028571392770595293747973935505793336060040741355433619912665868849978126631309741422243253931955005686785475677570249098085932472867950844704921642024636095831817488528428502054935710802099755081196191654532088126786980072934665710871853590242238716564627959032657494386176194445312556296993591052176329455198075470473405292284435258163910007081421635750891848812931053994916789896964514529891829920657452802664344727813341021919239880937756129043624156537448037373202849591402074856426597916592087066054626860860794396484334465929355831072061820963778790822367200758263919460672508898956518170549409905813786769002876976527400146008064074784550756403796333182668651345763306248177783473716535954882281382662659736694602378776721884692084674095020330479666457489445732180136556756266722233609358214314958994982096427201560642498468828757980243135483366281314093716705732251915248186339149943480890544069627717306323046056040646028282784459465365307201132638806275900181290425813814870969940033504105780717753066665152506106297007076895514096746102703788386213723974064507254174502409227414067459634606338650707733242036587116829696890065092340649457845729972803580878344486293352434535981572397624398225973430966993284752727869021024912883427732069292686697155400470088145438779320678529595200341507366371723430330499273090820517446282287054269300171139493229544391186170939523494040806773416510715502287041941084957881147911275467551375798120746452201335311449444165729145075821574828326378497723809808646988504510530617208719623216401278292384065530344189302436746280711839418057747903850308244632403768630646172956814427564162507747943292280026832799367232449416572566039251962278203481312245302982276837581558104324840375290092157932280565692015807139014471366393413527417623060721169086265487030164413366111853528958009512296459959720874896841998110827369246177327948668431052297452961424758716921774199169977859368420296702653786186507763819184053495037309516039175492425795653387272053518983355013550519616451532962840513697244778973050073642590323221259638971175373771950386491805905653329728618470458258116934884798710599825655026039928793316998161524089523386844874630753233269867162725926591616400516379276458642140398135738894230761899736884639439051854415782145925764652663650815751963965384183864985993430364477911483821955573839995681773775644659579907354670502443540721500918961897949161653090793649233500781509991715856024983111276155352675047818174082202212758313751811829130187692962325384371922528653352203219678107894606892021306274704090761850221244107649766972568179830974127946795980352317371328692669800977265087608601061360169184967495249389010317688820202613057293865174547120974697435450800933118569319155726909707168232954790769383699210749593269032650120317367180176435427961180031483381656091729259692199081774853921925302353848097327248006525616757147273345598702267931802431555620665778314915245064584260519496450285525021746996634361846128080510459504897984442441542672195656459759371101815686822364651687094699946415517723928316261411056252277956258956976812195230330614927613192067641848392338462986031506653756169474654361488235586218078349345998626138288873913326999239407466246009487343959007049852369759557020438415784996562444075302146334099924647502402520237774875620001817212534208643834148692176699068094174362585038173474352966020539910906982060913950515771510038941198377167715733392984580877650092987594922357186356565014469455593259500346201419562951324253584785378387477319765454210360844879194805667777729831859289621570555741554459623589855404001941219641635188850749455920415134137281349430144720779227276368135947920969617770581383940590885606947549014290016271642896726309402766755155288486547764799005663505275909078232559132105355674171723208349903775273824701239113723126144162028260911473436684723798203931299441135442071025314174265700017638218149810100854809160502820480022244967360361890111734165855273141168146808555200930444196709966813047030151216039015290344517285237538996513610316966496799873613691991799175159160009940314655853285045294262874418666337749939302906203514838143834738200942685423045110391859175966663857298408977551520680590515603374701816172528711404233753451503226889826154319614098804751186111944990523065330683569211784961151338560290495848576985583304132825305310859440626474658182979138755562617479834804554430318285044909633340165918424759255224164169664916697242431395114384729106991041248093337900560690849591423834442016518930468743459063777823426172065704996902823119055251320336638546266169828585081317591896506337689418188031300853206396918108969109404481267408866564290504892701154342468278745090912076754392922082393798959057297119383704653549810529985797661242736068181608341808708374444183596215299967715588538376026825655713041635251015552812888876770213063581343276825130823089958197612557312271893849431115774723766255512276672050308627701117404778350109517279978492829293901280628669614305494969859670521433915265935319373680630576183909274673689303518866338286755969803503593461877597064394315594370029238522817164521774958895108685789982295655787588215516395784549564131772793373622487324151619843189906955609893836015437947801976171538072305927691547719365752131797013035957607405158252442562451361392103012163295059319053488886887289081044849419370594683501895162998533238094884976950674013772040784036756943725399376126792416705366759597357322189456008218564479699130493400994696506768126783538236870448341758706283507495905775671389733582387334412616490009957699153460130449059793078677424073781382839309784992035507059898851567594724362441837962849917711003354094168349001123944237774402718344381700812138569942927077379867785136932707259146757924702964824628648527195185408121288129645597486029565756794643894111066089776065910551230945904636339170682941408331750671298162244539387226398800667138544290491506968824124786391515619990269971789915568945079777860828529256182825216731489459519976562215689578292747728087541576751311403726691518162164795607277132089498059152007901650717069098028648230357392150809536432609742270111807040488037986468532836107182786634283950369268184589150399044071886937840750932419891668926595337493728996295751233080855800603217120435470505388355978338880392426141313003936567161076588338316573768612630180033727329482064543907430799165866418944248647228025407408511821893885662398589730534193602934887576483328316879893970448082458816480518341459303488363802242767962372067469679768910504740623143791786083017001048968214423831366671300677863093591059660213602581681726055258133893565716435991875177557146720973792392628611630538527332238338501436333652125417102078256096115222052021044154093307144474124327643632633905840560832492009456918952491753766641344198183055346404395276455028917478992122916424833032607907035478676644890604175241935999146722946086281657777228054657467602405745889897462261242352141996039950301597662815607132734156744806605217610239717667242714550808570168849341979135274379315626679316844293280959482900466892826870426024528811183821419482609920882326584025399790017367475780891824776217829791309186648972453410857681302473697871878285317015629467222385830482595769437475352683553438555216923340324341324726239400939170940878450436507149092777836078062024937243312999583209662310599272915062647955094650731484885373708803909487091408049370004705101734475356889801105926509148426365812524056761439361648883840510173168104191468617039959100883180000318925981793616267631886678976451304495978588848907259492144788709747383509575554607278735529649893290999003975873288802350782837117950602610257860348880264398567928861913122922643060058076668585073694410275929546906979318913698637031064160673059366608081430998015105799576540759608982424563479389593872313965012757668626504756115154600736062628676894900694169600200590052453699657904529149975183692021188495474104903000211497349195532061176074319768675323344174100767379940836445544133187395809233755395963889511579981101298713715184774018960672235736998133847020141256199670544158183673206591079145170196268019014281772579284417112860106205788458959569564822508986581226579665192627851633692086518390901493941161221638290263995231733656360196375369513696161595626835477421891739654322510188699977438829316829983602851287295725559913317722035337717904269590068847145616767319335437150864012375265175518858442189585923353158551778756757638301069211341039135011466243898619437753910885286405414611321089596214049911570861964491198897145574389220009055273062984901691938480295066062151181656659203230229719105858909342056785753847062274373362470021763509977350986732694853058363868185147421714349851241811558101940974523410833332328127431741159628176755304521366648827573800080193911567756475980767155427347072194229990983393026812016934089043109589824921960035936724500222639138684545201339120318123450110815738719926253848990672094838387069908078824504781792224739343258915936947429836499626635236868783245174698143454673231281017942389454535271436380422246569820408064036088655064028374645678953815794399146437897400681702890733806507721946447484504659783826056936559860917906847827230839388151325868026892622406064524663879560019925870869836773615471595988994979323269772146171190497103685575606400088724278530584355238201186893547373200555178683637170825963574537621609030638967847427803776082158918699727648535227459647410783518282262178446974963627268749353533751668501840435478146560402696407683981986553824881906117865599642731833028091024118376323124725677008475446845698028230021151735302348740741631199485131992873744568180314581358239648356483715301770613044447035339764562445192418329281399579062515480796127528811937982982090807232887666361650340631085842329971558358178578032493550625918824397913511893361211230081334239523173401780078014962549655331309847730620912268549384959367141408680050137405703884380307513546429380812226986372709471633051804712617795148178102639077558889288464787131400594744116226719065169367128813933331530822164503337282940181906773402869457458889798357590105249504541932450265571831307694526883727012627656154619882457862874875348461690019922205274373131813240986454542968345416789538282779257086131575440680073425126711141960549568288501972551380500135796231519463096336022254287734949538501399673114771412317275465094268037547935219988549561429242989798379678243724417444507059635832100980555820026893929134211103818738522506715833716202359504613860073757879818609374002524967467936416784188664227982258866277132545861979392229011186836539521212933672577436951296109562883876179216372031423215553675847484365215486835096212501309515310897053829886889595748499869624134230830568146713777702226838839052507987156570502972713401830619139988008613989868955022755915001602568112946218678059200323298433302847671483948402710651666887410735154653761809872472104306128372890967172878259569259076620099297750714012870117719914246898663455425967835869715642634201550798138412859566817409459898578275293045203241285493774436791189367055771764646270296819355378524517404637695025298748674486254429010812879120019135266272877046844338490764242929663797037011370899797624657910267969046932512708314501486730062043816649875199699345376273253564821315368747037349841177293466294599161848231019344231700599126949178584902721722394762993937696879166099558672582385115000026443709869019280559142565211372302980024967228420424944973703706204734641184226669480530667618427767234684175805473506495927828660167735901243507827369809758192800056082255636413315599148616024948108600809672197143674116017261521985192664390489592572633570389019040720594092038235628062860371129068622227393124119058279214005478995305992821822765072173307399669032593034527110339752614524289602329250369682885980394581335002500359256242139149150874319529221895145331877756136290427230991245158394380789702750273698762261923872362321423478331400907738457981696100640966326409145527689686478719992594103685823021790566501562513344787305319930808706672651238123117480674164987471671196064551297053883600111415695500958236679796930089515119777082865399338977670641555444609776527879514153594216055570822505204601041580871695193629324523729883547122943371170337970762551203718290967622091963352476673266838997829022525914083726880772359274089215383825752905227106614024792907013935691472020508040194657570569127374329356453007188967368607786756984769081001956466440222042935684975691838234675010275491950801267860566735965963339316230295901978321004381008520024009720592801086855995156557337178371874905574482852728012052572584515314405485172282143469081359029777278208078214877487847443910457790884784889783538306689497970554459723788677890583513673541352301698973037688578978518900937060682252997138451029216129223028761906746049214285800295370047286961190348504947023227876896272412431680844439117195549254043485061666852423073383496679195098985397925618993734096879566411241791951061440030380730457797297662381046725478998099990402743505276036349607844897666988193949495508928634009470632887495992564414699996925690665169939772754545225072375923505276521614770354403669283800507390545352958901014918704724308100764693039538907007524432137669789058850988321013221824284687996118658155396927675067059637631710304700593787293940117381144351074770443867905580657226802963279871764952835845934416876946692865457976695830414158708630448038464881188790740476359561125230802176098610143171395810948395178705931896808309721601022522404381196767172125829067532383377337173489722899349117447024540848096374696324527661069494307470378359674213596193901643503501115672425385325294946810929207545021523208183888023909197255311981172236989813113607717236023605623010631912775951455202294157229967151106371906599514724199688119797220461676551706023352318357490135586454693372364804577190874781685940482629694284562320121934217309220258900882281170729181916834777798189762995088320049913744527536222278436087022518637886981480350898680302495316097384180129311601141879984510124388674287124603076066632789747121387299563898050032422115178799351068577582135913972263045684360686916640164838310201795772173671726027833333361502950881826634600869328930295006041426671227492767629107617574097382264195811614881367587315103335330380793935104235501167731824146677882003029956468685652682258825036485114534429380411457504702289132359320926203912571203548821690300892628514197347446125675293936596990272645620284634263818052144522246215269405175160175958236593169583105714933229090565170694798823764653591528331574052907019115427135595185247775355445847533329120121085011812814586043240604958057008721756342762925438146687901601487979796242967647027005263206975978381827833487477204631873604597543993657173227378933882984832563764608744700151007020570088197403366518066824105484312661941812274758764724375016036874300692151885931448199615927806438680412882400226924821014561563367663177387678890661802622616438648334262597843543177789256628854283425680037955187203702042010597329896194549332803263127295461356862500225623481891064476703555143442915448285029130070742951202707970530446162780680766427049228924337477176017291818600725329616749016120725672078307457210653381531209149279843358863196418020540660532224822603031869525084357473544342487570379727680475845879847216191765059911817220321587655802225208569692211538753561494600045980643491919130099302196744102409969893615646741241330445012613854522195900875170025688628976265089689895457613379360244714595663229672101776453053706874236474722950157899781841145836527681058230404438626876329131646677694619277833269868721522300975744588873071757604299701077406469199689286000589837243263168759957456158093739229244249218641370568079858149567560881418212280834190550070030174566610920934641039341821968408070212953288095362747478432422949359275415898257420208903471981677536934151436381231411546222968909956725001011337511439463996435116306021740988575137279834656910138544122636310406346300837159774251437122835245123206985501146744072155177497878204907505458071925823402524481749836966957589087542303003830544633158436105659059875267705930171486169324772712084297794214204472302432050773787030568582218449739452795222319703363742048563724717074140729310402627195016466479081474898112743912658305115743168785087386266579914903003429422775617970466456591716420983433669572968840147935665943978175514458696088445715800786017125857003974091909564367413329738689445108720930436373224361215780292853010544139666472466252046973229098841765260686218477520678021267842086774550461930029699777404959174240272846786004363493279815773985880578535466695629826742297449878291189636249968861580412879921106927039040732575453658786115343183046665290938302641118582934682968333328428235101897781421307985121711865996307519730128686229382758173096878133909567672831518471051919921195542536421677316329625428872884651337937882830662953969791309842926059497292946999358809866251443839993121744203641538473057495264289245735829982300620654305109587566932983168414219705585594748918154273714301891782768267100229015624602997020402292282300595002958554652566268876794744330749782060228132493422878758375132370328331259517574938349809588590450258061005349667900625107626287250409764266622411891216388728427211304916138948042052285864491954588925837672526901646881334656378918213515741779854563545644564064533786464159308907570662974601367898856954970026910082351398219546842440757344629650241941011328074789189813491639865759412247532829987357824394621013932115562136065765980969026847182130447383491589551762792168556905850801677130894667492070703380253162307901213278484243018807751968503629933555524636598738786498293484205671969156870883365669957552987944010479016463163698067973612776131614446190153763558223214768492838575692767350018525763195086423984765869362238334006471515807544086500609282632332968560237520498417679443099204323216992800660757742744623293966112885503402386633557540814949725856531648855524281591705762070685353887560532897984013473215072628108241667210117573509637065205864342327883305698507052528551106370800134257512306409246883253732867971163753699418155498897036232083434404073378395820126206260482923335863536807191463201073792943886250543733076246003540417046225162960723203402316849611156535571973851335729699980770405879639746181502340917448666164577886110847408214955840717000688998055029938917712435214364008738187051316205602745051333422587721895472605922450922168141856237712042060062231011302868509585501740544764884656500971596371081914734630250346587230330658670445163057900195415300582242149262413421023972698087806339009569621546760147645972804654137939607650347626740098800157459352852708019637940210751370595685252387991123034005602837015399157215109385141414343345378649625255909156293847429214964975131805429925038308665861911018096078676946825654827296399058391501138903111276278495930477153868598511980159744851383546488183449453245814125235368766486433075302014188178304707012349515615731215932160444400416316943206708151594816252330925884198357169268682754553822118432174655896483958342794994330186586371226921460975389815226259999490078497029811612369513888248769275417948789489898531285657501151606072991517573388190779529587431625892680104800014298775951968647841858459023911681927585653473630124605374879977975421526574483887006390036760308398676221810933924423531053950897239925466636216974887937184033903311091972012479320716587907553170165502903438564476008598716361595122441111395608915986091763862737255005647633721192181297640925275507547320912076627746286544657472069190172673335442554142119003597634281854715024110168221705058808925579201699918023455223390304838133278872182884712434828152142150383378342657882885635588959761138757765880992922553387948985724308256570083189790262058212694882987008608278578841298195003345177048981877627124529484315257416769827023620560823853756309411785608785393925431251578319016988637129410745638338072598325799460447557312188633019767501626624912036133992351727351890656061613504225316527842588116866662102164570399965628502212995386248301294338120857563061032607194054495023925603151072238794952465876914182529623989319674039005781450431569633989581449551239843626923013287758327708874454104450689471213826581951844102432222562005422145473162982358845865044298850986105604984084085797079082905842124578385952396233614239248658903705427403079498645852681510582411259948600343780124457551479027591019238356890749090553804584240081628808368585840054637440159652987703015853370047193309427929432158489958634350143519225767248066812751324395699611862631011715979538823612534552771083961274393290290510388833245450657602785882222416547829348025435641419278953621365693124960215927727545771837923518628666491012082305669448488805710558519763948332102770447235018423067270234236324409348244930513007939270023360844394968674009451433915236371396530345367017507866845772385747265051368097672584057190175492870784183870565745635844148287966728699814208482780060495981224129153065197900835510940665535057260502829915940215793462952482785956040015858627005747028803712537824740722819471619102332513588760657877906380938202848998217104136638289855033602481401028582332263857192279195834707841518468666722677465654513541967293726282438810396964670317856161189532688581791241925860251671644381221225778417698306851260333253848913771496331449571723332617082485743450730916598731884094769919692261150997931602193586029177755728495166728187275468508524666919598827310578711049893281170955698171700338460517418821704260455652431644262698186430446022671620937004361109277047232732273249587050604825730591670670714696498181287496370502250211061417616723393504267682691274215995659291291960949793635778587683140831597925247826358508785156805580461589701140380583351280144876172396716338021063097694870195003528813764049495289564676025950730553193393386189928629088275770823241662881007017456017357383260057578730869028454261912385951683188629165746046183863744550484308735102357427726361425005141816197180387327240777865504931635665245137792271360434356215488861988766242450697453420617664011801649437653446754305354133390876050159684838713103305885733936879154746728410438160156701556386185090282163541449340353682482570559136490791842708750281384804007131549522963409098412830245306785213490291229277970618740769082134801575419197721356204346724237184310400922491368811246986160790847917562586068691358637265040843995630550590168608671567351830989240783768207759998837006121096369457916570448207004682361776100719603135158698107417919238375401223903233432152378601366407090362639888841822015774693031811971277377416430381226715448319094100697887471080353554914395932257064883270439613550657679084890489414123345043974972877182456176382883340110145293120252916066170358539310676169387578167871494650942821587175351344313099873610286332969444009428756131206844114067653250212204441623722982187176106470840447123839588407669286182149841345825868155495624793546487487263648155051527766480948803011142216974218184206021171279828666644439091305225184832514647097736247398031533392337704823607494022379168152520824546855869690027396532246448081864222953201414756078327244185288695543975269440101208380414867236649234145784460220758106197895933179311416063258114143427144204538172463058110928038772636811165516384955529670689051158772710428295945103073803110689968900714444613854433505471266615863375439090169095599420159745225277195672580023406319779577557607665428660531867703592924359836461211869283382914722003907276724542330924638419612067330553859422666357293299468444671092666836319943678124651205904539256777389171841795803870004729411239389498161933999805553433039133621354083275498584572020221870459635472295415117903769158730061500509307537819235491715055161863882204901806629252504459821264639690853641642293283534149590566900695941910837811888504282293529197471041298728038565191548915091021358742234654707485413074632464672588288739372126516299494533978687930451430579258878634356863016310714476231409446498787407971787331662692479323476168945864255923423770789649596553464952829921310171639343687147665047923411382148424834570523763908554929670619798983407083320153072327591890883692428768546159626809622902343229956883105751607032629232426880604404286854834072015359791065208388148734931690823259398195658693711216169761149458361750763835707002738556609823820824589106171247517147976844394765629043842858695288193764564574124079307018057120081826281313849966092518789472783201855841709943949041184857708767769841441902048353872262556929133873273624668590328565571884027272655954381633255680667001189722313733826209769062768927424326754698240928377893719241675869850321110423435523090736108578086602268735642614111313621726168568150712330098881422232224938692071636368281501609821665991509887876843402067890796555147606227889552187101378789127166713859591302613565465913545774890360750100400953366833394114918317639076692646985693877674827847626121311683059716340071256332690045537374799522941245750960351852650096762189331806543667112054741694929237348784414502003534594851023474031727748015894853618119297269366313877066319665217009992981445687642502418848255890292581389948132324061178791412529222649658430941409110294387389351996931719787748494238903815161125898598575203542623382077929642408209311553238011240731479325799379502285149058189134847631219326504420726575497094278616097407202060813980034854131663397260117605450912311330250275396859917152956907475724253092669907035603019401812333511112148901509882305712328665190496683271078729372673727701552884328095255925952949105874742889886713402206134342824426973443355277842329292173971652700244168942829496690668316247327093362466126662747893635602804233361545722048744366670729498441363757175745799086623277150099065921663261888069313907012296977341131652843984450525969453990942132086597564923897604423151091880170871110784455823002358281105812573727940529992365477047649498904656078580480178782207504833178893188143564790415460613604255443504390425133043621878261096527012171434130652058754363153893021450447910270344362651663588640592067441917982727718203796397582311000963268002401219775637432611711292803946330395390856282628783654849987355567229574186483203686128693064487814172225069064115162291156568711980297049090079019375047688795651776552791191948452045274993690255272053564410823209746384466281057333855966292617959941340300604500960166617956005477215662857018007624397959267900280518515077068213290651007616796427674876394557728418964921811709955585397769843580416202856776664946059180684088740682084315264423282623253412941267956662564186026860253189606652153848835842606206069037107854806146234610522583386842666751957751120062389023487540130482135485174071638781290737503499204659289484794979350540949955491316918714800424700443384976033808137148138470369067633348991132942428701368902948157724040172534918646060920779314213194435641254984973625523712947996234832995815438270095106953830702578074051468608663960542241155625475304095560772942850785011564112982269710642104564581022683559852300404858390862898708952229571358102872947167206310053963934548478224871955916749760502751072018568384987686492472750524935634895073348065129687244779440466920194745215773524458480543081759619363790516111164856777512909639179805224275019970051740029488221021698849776147819373472184986819835862991692659764946575710602935349600146931652923690060599879705878622148438009231321516427214631821512711875133398367525888418675195141285820256266140439807649454217954129744469603044956082035427277222839401867267270259463791960772436713920259743269571445720015147902367821113479905454628941476588053340006030014560858524529407576267972413526743275949811140117065781367837150182493564312524517315878281436772509910760346381108935263464412222417184806473892766802617328368305318668919455102920220418325587128020175691932193847399668111155655400012960641871214439451174113694329886037260562143205155608985023197592272336645822512447856906076123937598187746949340522933949907479070187616474686519440278570247332340438740106689524022834889640532010138682225201318980590995587552231534823610448222438917526194036473547383788802231664513842909990026350528958208269087964187597135097266191069891455370288946577970537295228948389899615463934236216790983620739586451210434422017648032520143380440529637225101933011247905309367664063046571829184510022264209648796289052825304409435998064830577867048675587482274347064680091974164593528447321937230076053707091384459479939577716758168319580865623549598930900437914866715192616309973914745386960391736521135947051933156869119081918364873904887279378007630477721845202785066396339657005087801292577233748644861548627543924002784215506904742344783706768513319691872505809454730481512315806921293812316931307680351000193148389240796299924639676628896600832517345310418199994907544272779315959876310544228451449054636684847847677742209574329581346833210711813316407691849226083963032549160458466394653326822463758191128054227023601762419316863338067837325940351546672402793422711596738888072064336869734370838384155278505162377420908167766573468716136785045839096084577720673090846890969727065753302160320998602861614796019813005485294752603499046244434530380221533494494548342449181589160298582010809098000117606672463317603400816255645811822048090957303107636618167983640840044933496765696467999643072942895857287862939356244099747704946313803758188858055928016636338798855919908598514545649672785148117200685364818876530768987381727297714600982776198825454636778463598605448622721455000612132388015916327137845648745423211989159805856107749434245153384850588549844926212084708021456953189708699939378781171991694390748185735502687131961449322003432757031469869455427436185557776602259107058699224271383011666216043157663677801105360449067783861576043019507937068018566009391835001739568227999332579585731366646710226786155525595218734429962995983324398975711373727930926849760370190512417303383814850000239863317910618867273553596711158223675316134279964921488712108547479910334029264434785635772285760744906608821987380196542241665738496833025030727232498469497543991269646224397788060157117740021515826920684532021038739276346219194005982866549259890514644041150812394395768090572421275043744848218712861777919663383520726860429169065502895670935834925685917245109288442585835693198597353785710967607866200902812429049870289342458378128114336342657735335454617167446072688393284895146125778962637392472083907576973368299157028066435425213866133068224172152267037432883477373544748194285103005151013004895343890971135321472190845923403919096820223520630358602169671538868720651519773474255170999993046729067738692142039580739766278069522734459118629897965965224983335107005696129740882615012559419142240053224789917162106473705226885064120238813361514306541002905714163446132329195669376450183409981102023499531293068601077015054725623813394432442569617952855172254767876052656822462247374794735058962693994046895254115602200919846055181548301554773884567938611195780937705153268041253558165206901305606930349409450357031274607502688257053501737821224924757569597927163807704549208273711179746554035177978538135405362796717508673987361073742852729294791841135726625974286976235380881822423585891229370262185719769480017420893991054044523230289722993269782493218345356551800225965054282607651336773285288781376273848537297697734057406956190887298850570673709097448881170911925706955784462683328742539456031252358795411350538105821410015113879513636306253297625177125989482871461224105963683597349996458320095342159612008633501049097207971355872915202579755733662190508131441237885280604823731543465404287632912399769862338899995159594760640897646697161325128124273218816667628804557025122510170821914454173434358290295981480961591274647149053606672734556693281348124214831524788228381220659442376760944075960176845771540444362399344158470305262243474612107178272710388361094816033138681616562725092230986683107311228521608294648768646941580701337226647096070615683913805225001744738004527614457619438297416343518155816480824018494585109682891613552115758448256471372888020798286625241559941200508264061435969856705550152608760231054739410437919245646228391831205844883995510863439953004853159084859668894815341124448024442659594247068676637313528479199886714777945856841588114034948831362466903611847464524976193351697397151945508457138466946251862158336087125606473775669361928174475946140887148044777190336606327589847182804313112563772435036724054197685402387423289871775340643510207245595317212229874881581196861918207530410563564517678232432612858118330723519955723204004535276083315336483550719659825640052796395208823278424999265721214477859101037174201854498667058731715040992476423459851554925505387770963768024101932198294289758509732254453066545694671456460359243885001961037753125519122225502473937994524487425957818036455646697980742343916959839918871673076465570932800538483811979738543651356158508415457632736444454297872912000997764984235151690508022441237812504303276255983276986881648775600617301486502239004811064912436745101414889560343382413169914472070927497643463898828944012997537929771845453294537389172329108139400092187927296942384677381242626898943319223583625122861546280276877805601405173149549495819946657580117560256882285020433465000707159034805186655375181058759833237603230302868653978738866636231786666985336158145103540088647243145962122675663712912235660213202741025645846692841713317049743100635506500161918995984996804038938777405920436026777931438193352617302398892312508758982780795851078389113674750827174531275906104719615655021073771607474822096837759435866437902568666753047172591604113635874897553324492060160648116890146251226652591851640896598277568207863368602145688159612981312272057447324939882428531575037638414720609386242711528206275275171267786572552871520492832446938943793726917642387537524988413161561049653780378346633817660352210272641970129362165619232295588560208750907213809936131637526413446285759800024013669723716664174751857083746215560985609689239250597084590325806722382118382374256827880178768088281891799133369825385488147379227121267722710643224262159529619526183704164624520533027727177564010476138994177374430116804124570917058069734818112025811111258371554176646218542483970581994181583685187082499624243583335024229731130084763960264347130372617976382218930239199782192730732795859300193529768242561110404736875660266329404205877172312826435679766154317245093148350622619700430686301365211951748551925170028967119964545763496301398520470892603506435022224270909431302369558800473774036525549056458543980295607863153657830189879555774842041296216449551499107138078726565374496027901774328729674675519688122204578527706273490930935555247127232989825851272673867271972090187571403541871229276563649231782085099604595941635219787882068401958303603024492323240655238019877077903039806917245696088163511884113207446642531296578016084770531724740998891908757953836427591154362212142194440502287859025934035214539820446534689425996308350447485649910005526297349790487679812351624469686942006671369764435674694120766255247315227063678151664448573260782163837685730147582390286192595049054673810319555462713855981028400597734017816350312087435687890183334382760962973295851305020670944629857495710956782406858586456628395978058758065269934962959615007332784794194569204181983951923316737497549812700143381730248329783090509940616501513709827536713368763265718940138466625656439581455065855060931997460875633799443339339983280866394728158855759338439228036129507835425754644760971357181136372673353465984342670069464482321691408871253540638970113226056943713538787842816586156135880460816694670224258484198829859989043720012614723976986034247463295777518628933148487863214225900954789926391899089811232687927084157347740546139844646888684608365341349915709421066865603096267652147030196892246751653073715879519024460663232322319309420877417878794332617072380367273754159879316833603633182175613716034259145092728119463426796752972910525561502535344263790191195636941106554685782401991734246255837894131046463050199626545186564955163970116025830504068137368704290944287063580266095466046022784205100978692587817031341218975182822884537072764564656995219805049913536759079340250445065239197679180368322780895035230591411761938036913634977906696526692821812701556423662228468230099229047709861820058663998920869496206783219781489000253232706041482869355454403634576169336227304884578966986019339108621488850243231904195234139048617674280403510325379173972478813199084723614026231354600145470983071413076366378380255765802500236772649099683286254617979478502872253502475162318237958458240629308285722281623869735427947180959936432770902554750975855750932402274567233262540321209526405267314841854926989943434822774325215449546354717658000233667733917382107599187911616647142001659459482414699742495478459202613602649319029471069779034380999957223283866103658773667321048415418222975063843542177328304619147850254074705257680990486143890407674846772561098557345785368785397667491798308962265602056425022306778321047014171649622012770091908160763133860547265377385976442271206500493019237941698450220980818463489786099747657657915730896844363366810895144636546324314533287682945799394672056655923511859659913575521256689844339742114296318960001345338137959141496467231311089987427537547908206916993439629396206609691094851093600642427152888492420220797482833724341930083391085955019369775148768845944106973830831785058493258172361633790450668734658460303457302179841558460724783495059122118489969664295387217085917811883022804151225884279734855892343813758150611418343517041923386044952529302496611565648384121203003610128791442529532110079419331782346246356263684189087759661947710042971617292064638052322607403737693421347992416355305834056928259413687077178233157610782420790322223892850378440026260341672759622059971156508434197977020286170397816656220587758145730218745647301144359833070282858139986519286723240083093981045088009913204761772970804680421183758018694490081540977589446812797902148841823227081740156326948135179078963563051364503470590551571436878687156834838733272871058499746680189351131496334269706872653644410475006808768091507185915105129061901972732622486967506084533886744024423231943395672929905642917269661146115003398852709447737911212107408926066667209783145646537609269792119602441106711660191022313599120182678390300854263313743847092548779668798884065804706962628758020830280926120417301823188497304812086209501234010587763287657703556104915848795069462893902687988933184620307512949137982028974979860841956002423375106117710637070434288776249042383246014911350314649534980445481262491095277877783174379249570396921984013184712695826939974937708758024598061249167075720205747875030311591526240747663698240683917929017203410478193037296646163861722888142310446963272120661032518320526562426856129766017809573595517136007376463687541513507409296357331751747770855242048941092524694048776810225720499898220858379974411994826381573346978078228167759358362524022855151459711081336621760895402258743493653671994936732179942626700270275909567507171622340172087439479311046434890939183814683571197632122220183656271245993867663444844577510385500396090408311024867416781617457739233449865518303238636241927536133797683375825372960890644051258507535789013251890451816287891947433789296504004204530955402331226247079090361699781127091832602615007265941686493187811309039250631992695798734249092023469406430431865084523168502264966670743822259289300414029099420709179889914452602734809072035665054640108467591916298561767943898329108690921744644522103452702291528655228874563934631672358594706357379621615093193377316227132873020928494120622834674746513732811070462850686448422821113916041418727749544526681914466897509412026809170918530417806696714109337509387408678996530091587528836798869259698268199440189947544656215837213087506071724221620574030065948305063224172195094996774078438645031926188572637845434997218159088742031618600663588524770285334338503625680695350729516831469986066695438902964506087245315568548893093517818343907849253041444152079036348576477987472412520594207441238571296891488837330746185585890164313570348755652958978380416495564398575099108216995795996915143263451480128899255557723437755932433539169541418047897947164242953112923673817396684813432437200245740892679862457733821941057777254970036492478237593880893676858102622985985584881040097927873331558607962218427970232870791963205703952297871301833330703219221147836366382720992278361100237977609638624996059758506843043164601057685142972618073726062386196492200563883533260660956765823525609389356877932822298733711823135441477150158314746047207205748941738864181954781586818882623906254380257357728198252965510426712491742373806482687336515388395014645194633482594576058108894167237851029792273953974362660899139359364006687380294445106187491141833737883804504962528853726969358943079298386181973935389426199903728724399307046330234641312919484789526300333555537720167625802178102723978171699528895966262927401385051617653991560196379598462352699884831460009717230711565752013670077122259553539489172899890266658346450028852917193836562415884087958212975555263402830317489317983185569643810871535045398811855065576878421736004597091953003754262324652553587264325774138434647958131911578554846084303958849655585647239534950093715105688591132013856339009009433265145346728545786345348897907080263792322736748452114515185014799041939714925632916955874605050520197409461138672176494200970932858151085111208613672003205797387769952113668964299256013912611007868191338135063300625385474782114379235734928661312001706661949333033949419883034110239196212303413444077702036518430874807808749137428410560216903520470459075083911713708730765385715056283661558230672578363661450425419188747311277783425723352945805693148501346269708338447407770429931578515039470444764097876770181412969483453589620916371032289384007704559416166048891563652021692979464600498213709075993563991510615646206798139838273536475731824604436576576964248578166814935735898143520508937042494551983141646938812022402230178714079802055810051082128521277837385415315359743892160441155247292904719680348058985222262443977008582688275212398186959693773433491220602090867440059099069848308572441577763330548761716605752397948980500226720849228060323386130432007434516905441614612657287843370925807907072426114926277156536547395641047128653783997569684545854360073137847639664665957708402254495673852440917838864563493136677285135197088868493881191911484716571824392631216990583571641045915998706790277222644289451233475976393656758697355791767732354284168446865298453037844133346416552018228051713366038080957391701776031239723231856968241707325310173203423236774797062295188869395902864675673688441936326801203320323994876930148020718635270426328165175741323222773610989976388853398136733508514431360107027687454026704155910333310040239230850229341434404125633259617579006359340310049048380158604398763700828321356502960888802362524425509289278731626422013293662600619520868689877710564622316071338900059670807965042148368064520239032347754141906981056724790544965193509018559005845605317003545459230175760760606982597151917919856074386647921699148481866284739312452685849844572590697322236314360600523169095731225684151273896217259776604997872668423351295315140570988165855505531230018732040283372349198938683730487359614680675490258322619316353803419643622847346314607108342302307928724362406452633967242501135788188282156613752804641338393840660859646024988789102634232417241509771525303422525591458164901978055937582419388080822122798200396020870155513762447470336613442911232167179503061297007225777890898933376156143424736550205922196320733824668383547031527285134022802970641252156197096466784882504222916217757822357048224107478429198681788528447604082240613410715354956562734014640341321401293632981400012319549661384455515031850396978690558141482758824716357389797467911755425131481650514210984151373579657926814754029280605681332703355935471025053669931982079036507008852510361904364789507319131596454176622883645227439856691205287837450793464216700816434455482176720363248050612932933648027932061069592247692948108419299290646325709481266381425085939716887529377987511764039407230593157558459544676184755534419680457658512665190239396580238345551863056339302538103066609750615323427170029018904888399048117938030468430242994332026038946232302605233539220496427125552077466258988941894138801513509544601078408665332191755380624350399938974466900641204398248180227001701036467476825765041732380656841495317805510174659070391336511204944881899391595757880767524383775395673248325235530406704050846677349326742545498155270915092874794312991941193904705643443889624864170621738670566789315782364486544660955879387514066690450036696332625838820489609894392765641490235759476449985410367597485101913792224088253794376822070205000089920388789203385240738492546661121334838701598126961987983405479112738012496346098172386164062227663625649022218868993949344134476424935753104879094107910974078123150155280376851579125164848275578832242225855748774255369929369547157725871469578046946889326043908930233792322007658006324109239785317189045249673027647633150509257607857273563078443460586715194366818283214870641821205506228729108843113520785611106220071005799790094591622581906649286465033277266280075748313586105027079380129023680482607885689950024339576440510596862020012506112850466622233491924635063716856213978513031478848569058256091042225815839738161569206527607411689734898035997272495786721453037176831035529928312454236768487211317384163840788205257052714354630797237937835746484061597639109709053038563526216834180838089975941173410407154296992046893451760317033628270123190979927666479846514236114208321690825743988784233921329423687296964909042283383167167460212026591509075849268838108415927675088029195566234914580300813903522391710949349470016004590608775048545105663348842765963220129231366355057826655549018892714898171273688098655293163188876925501216058643723581925621203276670498317315970544070328832034680185484831685256855018731926918824134982818977973761110954154353524015087962167648367086009279660268584749144392022236798158824207818559366572496743009779385894424852503922105469721091992563565416083551949780281358250522743318997626432997246119757162245544094550405558255983126547357011308419091685385185859831071032823283721789608936601813680056039181011614759138015981394003332541072127609169167436385858021701416479676723654488224024059535831710495642314029017281918463864490560631385186938258410701221628651013644054369973437153281614576725360297267252925751497394364831637794752581389328860220373757190252292165443921169137657589668482114681391003057352435580585596958473462277539876739452647715072746946063076523530661715454027777838063649253915965089127956272344814109304483597606517865966679991269645954960817240528883954436086302687971778217461396151666975550993971767652892292725838912866267749166234058903910178480717866085528994517909894428541019406149959226590133154487957321522760921600887439956632790008144549734389963301019342952377924852685059671023017631424280412028563429804473339006669448815608191432128273741319411445834558424990986428795787017970924097705579537209639355654496697823675816017307819932799197374259534204803511098872377092987061343449756537579578951011361904583243272142907809290013903905697233223854272790141227372337952167032069018486739735352363584824853290911117041707038954730298045356613200867997494510243547630917083283354968985219613802518808057937110033922087621590606237968115592491700828225082115978750540614838910301841036275529078781994713100921329553315581573186713624072327229683187376751264079386856510704284276641057111639725074487083050881604178127148744790965881606182937817926769646072523121540845983502311902944706786031755425802192488029415744973243514234955283548789348256243516598679090604165129380420347221486478637484475038391382247877265597517282809577421849559801472904970121625036606035956752212742757744385511482409754154762684833486995017508090909820944244949708098048447227289886773994951858848620831481351750489445380031200805036829916736792840886048667211499665048043453815028837623139625333960503155526371062980177354825988772469572821541719100810099549011973996116202317420898659751598138736319958514928647124995888910169345782369722716166179886413453572187658162453821657212268378122740173816485791623890601464247725474421694590798750694832780345688726245619936995612522951839720324128819605946432222703096193063465406447796412562685806558706198182312843438973710305985235056403441851428058965244755544396027409834116292252852807744147281952270268768697054654885911178798934028239085842832101247579969478280004484278143682994601638825605519239070886989122850530090815039951215103745526651221314942704073176262546033933980346185442561695772223113710079514633686260928788144919932098313226908729461733202861869869887106125091797579794341686736284896193960380129388308936828298201947372491292906410743414626940197612165700416935971438637323173140057612951447251539281827898270277417534533154140041033990687877747336196400693881451392498904327895643643362545139888637580675024844309822663053735656028069136073606821140870463557686412993228526024944061389738828487046297767691884381854310964486760339927318446691337181894531651255339256538022056910169305595587060026120813053299138959652660013974873045225707408447226738705723119788725798377834478820296353635652676033823605679074428723886001056754396672453308779584619060323702349897034181361800789230408558078814717666060975070886219836651089337112641407260801319078942566277336858645417056630992186271692601721483215839032621083463481757845832433375109840120671395312822928856865190137241550773387562750669212943548095158429472336051642028252975294887538683878364143366397528233581859103129657320472048749825653981996197505467087389553627171669008529283174691843392435721483049478603273559156687914245057202896249709381258111753876563237641387309898692042012267381676217167337183941665588199606856948977851760898312322477102008179524020639161036030809823044184741586062379890631047522303786693991782650437752608118763632537542569842521496608362300881147149744745291996399543568947389995170884723870837260491607739413708841535505287994575809037816344263358160824448826095140059433409906408050003368759221606142099416727329930736497569063101211417947161627945458671727866806421264970962383617971893387393641649245255493498691387935550986096428111023276902103561308181216305465064193171961017867149868297661805235388027288405200769788772036046865200831074430420784270594403458337336860028865294710938960002110954267209405082028584100478603472888891870119801138096630487674610421746479288744493217280010437923624037618967546039131446133514222808864097184560992845133945126559676007388565679335241133451283162484524127372396797190849353874239510012956016114323328914157370131970807781023450743218394417072364384226990995071438156505168692961732283424300219540917362291990437794779117218485777551902436780680006891413126155890989769339591873927391389353024367896110224707457083439820145535497611474691577830112530997333803035714412424249403763307919340364129971947061618704625178177623888972518151985367444527863704911478674424102416733496169822304840075904165084658918877215544696951740227495124622773254962530464951209916680717659696797710176013249048399765388779650556929487744282758434962888004312188696865742885868086145684189277600011239012349775413298936344619424123948465716638224607454877622268057631880611915666224166940389655772523684423772373222011726438027812028452132387707777139966072663708989415826535430984719214992544035444735835359194944136432856719489560303288039020575679559793335603227132631632340640517289786369714166621305846980030190635790513303125997485317031174193058778995827021962445952945952969894879644606572899256426742606351541172167523180477887516979471798058449472378130338717249110502543552979790148343818111026627687420149008031963050493179725749946729154403668133238983393161301201918674895251494651634873208736102786656628648271633289821150854179446349825516502762938587703696840156616282202737029190715766720456899927540675920773446810956588831180925892071991007399863063656366978831853492003098618174742008945201718836884614620357718924118452532617597753025242959734860925795940261631171618673542118734412618819160792360223389969841902122604833627366250137482027744054274677339530464678695551279750453098293845029622255545173321398961430537783910069400334385256346827614356894760681057532614467627083412519002821010823302700686769274712052498962957794967309315343705242262399665490119811389325005396186939722537392825334410667760846098029331621868757779805122900882349344318620642797619918662764533491793585910905851898318689192797877992591913737465363150623616987705583991451355417162657204150216245577254403083240056502326268201623804526007896876208063486766861294665217961846083088884541103470899788985293096556494157510516675762817589029140098160554133505946843913573508538319280453045744447950153603688710712865710262816574418350496413394441968266979635472923064325875487562412668220966055021435969861608659322671600796464615905200537121837686639038020960557641238195757304335146078796921375656754384249409616476348930601048304149954889697124830394967178421365171662659873295824666286085011341566887457238319177788595263089921766341693803134889435587697647969757782610481192300561786581352160722904548258017391291944435016372585909129817165635193478279945791367927848268412119806017068915982350207622560577748792621508099424620668261316336803060809252914406487994583846461745593745505199007964000354381578110945729524559648836497830193014996640171097039171834850609526347057207886172072078488629169826762378770266144672823599655878224870982292861206424319147338443044381644697358420478276331472055084060545828009940171610624609745411602515025164749232745097255034161673048211905017640647763587065424917042520120443856140624798820087557354383038416638894645339726477485216758789206309080819310861230023571777064018202394084316017503117260749441692783103712007860831879316458063008841202853640182854081859073638873488076342664595457398926311342265392425343904892235509368627526776198802340357500782499531069634483190073828271828140144223703494728892033449666120136159733217009895227086116966835160860348396564911252843916052941165247735948183523491026961604248106198017679617234682000849981846015271164314292248124036341928227947736030041211680627385930039986037697433885366947854894947378369596321584863302514312845844098042902111956423692841542356002746683325509921694371250971124227624847315055003264357628445154136234662655025512575635710544021136499617995683857223063009993595639777710078383273127469085832101403867171290725514423555607932267863643255292689936567617028800682416270891450210664390701906019222382123063185178737433801295760164069484224081645822201710291850101468328071915245595699288755956248304883460802369969913699542664103863038111817740850479803144139866667464899021724368522363027279545610266730150467440338285624213314537519392576545443634519060888414236145620331003093535253490318551529739574263061208692285550492362726114023174645663047936922374146698658519010535657630867338372170430006613338904607326143870532454827647807256653900030654628523831056076641522326431003126520862681659103702967688551950608371101675662635402599301619860566140748385475684193156325618356884371865955332765472054487771005718962934867087194350061140567820927560285432660992979670625829296526518380639249869025504925107304081279215157519450997482119659421361479844985723436722830355559474019917760503092315384357847853493396108527156795330271575322446428695457467270683299834380613140516781304721971084164609127049160640673270061394327216810571617288820431365077535709495744715689600808219602675531791043962728574941370294648299540892490188765668512131964978840432150604098149009832687213819182967412416005005534089637194116630082132753181001228814065123299833760747327772270297010134608030654597947779644155456281202655596461969514554049441369521105755511892658418082702092087568119076027639513313945846411840386763762567564382034417026290472962979977436439103251353310842586472589537864981075097432883734577712570122997875423105374203410293520587418627192231384911142330262804716669159080728749387909313712067084589075636837326124213444291483336546641148861329717740485321520691900340345000678118091155822248816511064690906688892322007222957465388676073390124729677831310747463704074264457560755079205775084256790615278897216771244146747929537154926105478804804683282026500406634646005697110924995765112424327658325091339918636180164344568581229763704832991114553823437011161594433976480259341732940568205744293407563756394629831865932036218166150664895947106521478599745356013307110458304507002961053113579209491407227929341139755102328800157795556688886803793147503202125062607279889988071468100728390499472261764059334770219062147366251430220536062165450640660388522479020467438985837467151308287367343713633726130801401602332587234537909653772060015867051906560784664080398336070829128822506576770296372143960377391562343290233843593323529327316672578296711818166993966976213790161902299105401857511680912428890016843655996839309021771784216271199244663032398544819577383713362450424333824778553408303085898557658049635516282148927320035003423437753770588638764363179885351935635329864274103201691155913101447450785465330283358149147986185911517123906750648583146645513119325918698561692512258325428589520754687301745431551940817256276658658547017000394252183066190454657868230757518139939836257564128899494781171595616083640968286600886452375474300477936143924160464394805585267781250647508632438621453005414862227859610756268618515082989224725441300922363983814558955230782762586977102260278008376705960584177687694707994665331075573204678002965782444654811668871921802993752676372157109916172552228212938873386256457027699176310600818247749585154737785057492704912383457559810982336063603721553935304463527294500155706898870469831543535656752497595266452804774679360294669509960404190867571056112302729624607401182398658975000695937064314066658833560844707978445201166761634170803399085614195127454099330605885644119620255596274640279689963075738115622611065442599857434609016356076647017380493425463056586675553741832106858238724490933314045012764494764979636249874522514991523094122083373894424934252252832358311535552232626135532971791781773376695697440869124334109703364247868304278386537567780943665767173359859000400925812298220150444802101491037455898909550208780073896570065175795260098880667249560118430257006583165599489754710451833955813019231628791232826084992869685477418622342214835026140464241772182037468556900106350832984486891951971256066933910203136644780929615055642173850824386862894088049568829047253390162347461185501126924536472487882619723978129365435587254835516831050044541074532992260891318992531642186505340028095662652975409331170416739316357120793975114059404651220386675501730595628288628239678056715819287457285591296747451055459062206833248414817457355274295364552907097868805836607326227572534496420033635305315756890929984904836309184892534967884171252305801957585856858028084685951954819391584046909892945167993728390329906198512080807709212194736987313295947978263616726017613634881625623018616355230936874784885427268772790444194649786714162084506707667924835484625660181245983159674144041081879179949322794605057892818336006891492111071687199566339895182853794620857514386935346148400491484933590702251110366795287518635477321596199049137567881812329046577882345233134970436425516606410512248000142089765158904730202840008591470099055440331316076949084864384456127666797582557507660411570793956047557639476322157729812804465354038236283984327132890609119723753563897256103329986150020765829254838271280737750935314284420313108857620903449060921555036721489527511166716115441971661795799161857279755118551519543860740893668831719020926182294238753290599339158065599489963980130281531530906256745190233476731588570612597680279318712074650601176902025462770879015481590856909268426701593121879820237615697926160005569192832298286962686161338941596407024107917115943227683475530948046910231980856592284056029210659260920070336479671461617585326624358019268862698324158807362200927144933877944705008167098720228933448728535071377988020617690004398646441173774884254753224151920543993846732983552254237172761403667606153252109866875897870429663601149875215213927407295013508390784937349571607109178780025860983047499399301889020568174612666903770335134356299242467855408779409003001125859224930669478023877488931720103160577159807738405779621673916811328014886129679379087951668547752530060895878555906803627443873518531750258308024465432707920584383077679458637037938653895572857297465759574585503172103272046972534328175012427127248214965607047142309552841996637644017526616609750391615794501887455352820055761362954157789566568053221119037409107841093513348024434220962581284678275823471089378934112130750185362414403619856206949835464936641127364442745778498815445328267370011617182447552663113801045615780398452750322917715385661696185639795105305727222420991623851008301842228205934113018448662620827290218985265920870149717286577641120661347585498032359838856611926026105345747383430094115500532548606097457560233414680962561032579389885111599509072231277078114636847648199414239355919906126177123921274733627700595616435891695340841863603204960177989997771044633483787936967071530235299197645666771839799269594658118019250590438372120535015409008191278728613839207362091223792191238600355816959655563363587932340756801541871791129222084996419531722591597261629176782370210523979479379439475817561030648665365163402061743417692909102633684404318045191948589470269511981005602362672925296414445641258522875634289354310504239489308939217701827968911269111848601177175774502509184681092075856018302597035949315017941245718439943160072893299923450889615442179894244768918024058245775309140619630576708769112742227795412080136460013203352540375990439459184734097083644499972641858760860604976228220144010698689218544449399277328302235090734319027577249649635633965731164412199475366254120859577971328498146027619553201057617575321168109476313078832942142746579511158412435291895843355723486659241105289658104320199823602058122535701633624845350162755843655682667678638470134449086358989823413856615257990398736107850068053605250263734990732704394663625770207081728830138316056779724594912093803952777573435737275617057128459683671805076284301998175741282548718468972659412631045047457525441901985785950341792445588106999138723938080877717350058085132966374576743788368914910602132932799722414143110945407872903055948382727662950728391262949958516638444231220515626148856705047492001421506268387031108726202875136093056469259035068419104824193376274729987178823406430477832851730113455202012788437937649608151672037656286407660944948046874257309428463025856496668675629940850832743513308149517422713521187959642352924014166745165463594243729376829364009180148060083035999159573033535360690288451137931401034201709219735820542810362440349803933480474872888356224223155148801612578483204449090776466560291624680667354010845229980055584551290228530164981629291957352453179697774631758144333844774951427331389050462229062779763002580264736804827874696023760933180223251615337606857868208844292512369927552466463441497835117782361615855770805428552390540840943295399541020810477587359242398279393494116037083623189361151671379956814999068312616249480217592892413765998423529557289432049672091140951748381966127041904481047462905608744531228423335396603150796965517477667548668264137263783380366004567853147458630437139258379940980980859558898989434072530558012090457929558781684784745563153469528172474132356508308269168562058083461491006600830970090504288345075435942178798530534733683829497106188816908112120493409051000576667769052319703384241070297477705671994052938256505100270202693205952480627264872715166364004489146213688213340304724139466162076298858705510601278189911553433128586095366311542450607170238271571710166476801956958687748399197231474092322877484551067013872764094238500475533992850103610507393048787527358136651039521670405917271087497070442496231776684023254479693240685596656998910449109476299026474956631729693676549542783573602040913902541489993718611188705059646377159420301505031845113041072307502505861241844817538079087446359833331402620570624252299742369106560819463402591803386797601585396919250982399223203012917502651667700053329174033873755051340949188201184269807315872435349791136140539100636481270757753854236785495724187765739982908116953665698977655269666948217348232485265614167797203493854505596865349342971413253410120248656957790356977317326217219171718164550519405084121440914910464337729213960910296648644464784689225385028457038148357399723949081756102871667987212043790673012286789265850191496185647109392038877790486611994611958334903384066026507229436577825632896434460074545708781929675071575087331053721058866796073333032174104278504625127920721577188397335880871622390199502774397758845007128032443483840796969556386465519902222943060662033446821556613176822878439664343931472494754502051983763325029406900202600726701388701579589792635611127692872342231516845066198996783344013110844925439110300436754264195224115357210180802389894210584141727371310424215725552206610627324715728125660861941113174546377757835129602163440482452205093134163787536432397226636450615655382617343567919514762360263991972335133666228334059807146173970648866213483059254447282101563863525602135224125730621898905332538475672162073129628312917940624480128969872101259536057524771561424650194883675694334975984645075128666742944054305490953505736483728628784614913486878755609392293422724978320717094575120463226656321905910864941916879875645867107667101095123027687253979610634207198908822981492471791818831620361604510713933307012345441088729767885719583782136956008111408864324277127189587783514158045397615692310197219845816367315941081521347139715250905527689483130268202538531432994352927175249194890351412126889894292124877137809987760507461864979848902475647537353976232980140473501366050612262440499020885701907100575071304690523382659367222459997081135987606752602546329912105503490524506171147224858382492303277941061381697392737109251385870965840855655780965020067599944821277911368487697013791582307920863797696291702776489592320563091583498559975697222821509333805818411137207466154637079594145167144537882043895391889650914633290547082821030567557943639379541536277570873661907272927810960054681724465293304958004725702967778647468808555377075913355395048379665224766482145449653099057154165221455316959697174988610776352793340219053301194963129637403807345700324604285102015909604517664499296832656206433890740741043538655332550928601373789435881582750161703517373948953069030270943134311847303571986582599674911100364347670174773393326309461412463908538779212439159354233663307744782963912390040151929043623313538944076600204949971388655001146899848098917377391420274991180085448010152677333573112579025834638628130956114717918134557411918502227905729846069556301600843576017415600178846582658662232719420861611194632249833739261902096307327917890101677348924645926102735695708856426610651226816728725826962959189439615325678056731829148235866488339270550822804658578272005620370661744373382290668579581562483495483604076382031765065815453791698370087406579271426366820700700858503565896113610732346004847308101748786323533297735275819869220386705636714821464643171355307209602454582349753225843773545397764866586277220194367088702225662827059615215686581202290243758132348038743042174376700381685874839404470882984832149070618475624516837559885524061621312431833072578362565669732023482486627373581384412709247752026121815366806374740682569400624869816796082052731030088534778328783267430868759189414791060586725381573345519801123136414956012140559246871417810754042185792855919915241857404323802768284471179935610673900114182789414231525891121383453761454221867228231799618750569062580438309373413699787194233519625743040441644885442272704194267316801999435739967397303610564047758981110772321217844015847449558207209078506378668353076492495419957176353023466285140490262949310232706553454169711979990138350090887030713202795982941650650437582597312343644438586887412193948778777750728715746737123308722096339344807580111694473835818459465513972331380052195058674074239492035355237559052842860677246055221593785829273045789411805690430510055091883726973650119449185874237792053111704605005693794615728437453774154902346257704028017097846485742641762460876415441119489837162145999447532922256279724944192228668481240372721440402027256336210354784530268376456959515508616804217035323590508108126747080820873128002904916149600596772415718104345481824419530950408622209084354498740752629559954791319423044462300436327939476787561951608981628241296241130657956353824999904516400514078808608923047301582145582551187798934421260967893527466578149266105737950612124701448763657431775457795966659673227618953747112564016098646941899116998225680185230548008459665471883901928017366058372678396059568605162097368498387485004702624828805882144208053875503676249547530041102597174165267366053371209828131401332886497263962082117151951895540012685629798906765194065571826345084212875819655365454038756483116433259182292028067776920282422046668359415813540044123218303905135108979609886477305178097111432873765435212961559797615350863113832331724388670125986021285501731403083535582919323633938515843926664972352295870626781366556126184823998830898334218840332786518181210492636306181392424117280187666390296571170986934137486981127655313320988962373257386314272548808064393351228019536449921687212215738184855616349774577924830244125092059549790722675184307761485568155527471558495452900353295339685342738220357534899585067985619837662064762203603514182024489029321368353132539181409758434975340330395384156875703522903774575366373243135589574507945915234125255005803434227877670633570926367876175296394336302545090983397552998531599907784333920150533548643962334917698498645587668961136076881778328500513790643294637922992685288445901475331970966087200606170197030532291977624086162058635861059265774616300868364240659267330144369287774801183427041217833029786200908142786988178904513971605509874175778020442610425291398621523148408132473937795992518097082896487673572757268734984673108515935548345288069740454125710670140843310097394516451828648417437765488744952839981867418051164573503360572702041630577292389558854456196436743553379462623225944235048446330336808643950521348472463305423906821274793027583297458017226282997473588163878115422300734869515770701755038261945718263180898694740181878909608948815656386323490172436111635287155980894863387206156727792264494116039438536326842475431755792590671489037779160663958838312563296195106814551851240123701334590085934711391862516446739345803411356438764892465547392041099674074217465974698530668876331043105866596515247675019059048868226155724893678811642749453331245506829100621181951056479623882380668973904570683535825246807350181589809782225801953632237835812521804159794581442088749489244273498717960477240288191260871388908187381357715367753938406694324260126851219839327368637838928946534346928730063961153519199773426731456501913738493364169426336985506719168659872155893688853240034419421751125556557044660618921921821464083223940702643443083996669207157210939274115800399965923345706605276637566988103729446615717191037462901834137951988244240066526729864727616368357023687896215997008449460173085379045894028457329118698367740192346658731802744390777591615903826552174690313615298563069988801878641345662904691761077170140185368274194068682278898645087079852055333321857069271087665311988642400337497728248600794720279547459291659471147558999274747770021500658069286034039571262470170879057288634529671613042392276920061842220026744459144221117910508785685662485075497568262740698110948933445899039094708766004623526183223646116618050224457416922539862147597164630875667796922686113598871688971198896232984730145478942031815009168844628771903457660532932734790297571156566808001527127452945699195994033384579199267905619096308553797980111925255283682802354972545281251610308497224817184210651183174653418082256007401790718878736283272217032293881237779961651623480462149482350789221214342214687048065638416744618684692840264813025469729761936667936311937245074521313469051005479618031474918057346212023361608066485765172550653022918327125932256307988772159812932631400550762831159824814270171872902769689195341360637211968376059123687821238161274699499439139887008681625100680196041345282459169128384395561343387851050386942492654554265008624368405765515305138576019262508168310437876413610719039313941277123554696916742924451793640458374121727288838848824180502408847551734942197765678662042592365370710726628870514117245853234448581165811610370827921573230902655529740793875539296975276309216746532146267145100746114090419117600761084430354762399691042446307707650163126543005524246248708047080383151049618015414111651972548613251672442046654757334291430158437399300481849223493172462674266974546522763057316439520726859719849571716666496391350794395718779144258353148992533267004480248650507406358417787632200735938489082417432732380822346748913635396078238119293700111002883174299964568384270345051933084077504514650115691844833199989138850096811750224862080608907867756924916660944493649452709889694459144626407613906022225952158939066240589180261533338914225652040392489712440341986450575312056874691167792797167149788320113770372949650330224353961675237088224604508214238362748020049648925961591121174497310452573997848280924722486079153359897035410805903817312211778219042955548714484822669479439691229845727766803500815306567865575686652639290807175090125880112444375568210324659985548260106714801701502931088271692584444676406075067779426865153239062825992176164916131427455543365994658037066103912759930165829487897363681675948386632622629508285915871025853031347176234101245670286461491797344978687647208067044166451275829441630307631647016437938682778523532090489113745066895113299262831603798554864890586148499308424510620010214210494290081435136234875373605718374573045520478811220484332523523968284721129630534142478700068987453545258910703260062723107791857699393819644709118361369267679014146146118784467086230234405448436945872577021265321254381616381002597089353179827898745065122954104468386706313982117398489923731842143400746530256008669877358856105351519152100620454925148429481144812199111563453915075291734465425597794219990595407942551284696196292287615323408282739388264623254032822305606195737406443802090723531640374563976502760210057742333170203906384235248874465293354183373620067017467855202079584741577875627259983089463204485114330392271465990109893776546309411797398467392502685727444324733298719984706366820531905308749812178186290494892025313879601346668877039828907414231610146465534593829911839377407358256611915963832515131207420518606870293826577846282873275700421217168118628469688733709157535377963969604837845840560417555180170275100249263563104257295501085173873894126249541231089205741529341914796654536548025100092970559005269956992317673542664812542607083149890410294251736378963502126849947860679851467889034399205526427089309653581389360459376082054735826744831638045986447606406977868763223466838250165365182181956685493533728730588298185713887037881171951810740511670653091355527464384909652680264563711825529766962663662993071914376139553526033941480592065440905624928509039836050488374256704506743008157578219266125410735890270392149629184918302258764306790983772386329955369843961040977913745604215774743255595136956859951019089899709955716040956741935435207158861436723642445043935451421918686709680950443066552069906111297778448140586619746661521512862863548026129048508301170063253624292605333196005695766738753413521086919688845232983817309833274631662954256763289628497691718033851107825856347480239699015116965431410320209630954469968180669521290827028620896087501062791622280097811113299234707023998113258446436397532509727419964165219560132738300882867263587467771237119755916558960651460401699159295999428800335006433616920922975184195438846219144278358562949338112613699313334097690037272745855597218442820370898789264260800199392380699985903367398170113793054079127705746210400014304761592202136711023824006311735584675520166395992551904328736065633784241421497270642740543077608923794306060140816141344157540777453663028371331975649507614158591554302860084708571998102517792228051112797181649347415503191965440331258966783373690821773739179711008583018926155318192130590897576668530379473198247699367976066131843979872619154409749776753366229244299950574162482487551635856918137848435276154492331832000148607267800173334656222895493317071376153128335279115223426129628247544546022111911534566808242654892997697777893737153601062312804497263172601007617869362096181227322308618094340882402126699734912075346151036051195166475563726373772629511090920562385186888203863787875656002844405683366225635845273708675315160216455936578452559084592374168752492005324759989038317837012589660279122356576861694108310867413699996574466937238742366269115886654617953273587532350608995182027914225247546831358594954723756359894923302400983689739679335948375865509090290109192117076119249907297445633298536051453496397295301623312325905084793939310308313466617994413195266137244072362226202604659762220105610491248907939368485332183355558585635932127169926331554953316606067914327966522519235169352591076373025596887513521361787373730699119398495937773404279470051661627657076870824734062927965167468688006052157028855667174547000067401767960490025540195803421839519523593478491624334693351370808551572872129810977400230044435431634391743511075852960010129093417475496070689267085134191441118039724390520138186817393295019312750850190658002234838927551267208869783162962680242117023983201557958431331960761868751196160102725973769755159967923140778092605859463101019080773388148627214988069785087322425329608775777404534596435597803697903505956440952330325808452106631929894962473809363243808629641818187800150659095361607341102328927936156364276603074786664091135649308044939484140468956942065830671314101158083376554447577306347261084611043596251590356947768563908838258660273307677513770701717314737564870921254547458883077078983502711291831774895951301403736069862321498467765338212887014704393919286515519029436001533681050739672696308534992612967750395375326180542855342106235776341696976908039137078056235487932267892165748325236919491905004416505860125495105465887127806427001598778811366081389680631720038197558170041205494882260121877896797249836949078783369085223150917018427364956300033279486209397038228295600243775240356163928338855867181722374774684065602758934597543754253893357241308537992813706846025371217400210538973508502993585432527558324696161773847595534486402308059490000592997387633615517973603913273353942969986160946596051810598501018814336690881702854700093393267343448118389512775229409596162147825150030197024618683589352778298723196842849415915071993327417055943317581719556618066398625358391497622511755269658448673799516297389732560155407545914137994578710297380677199134964837896442399235012121957127994770773502098987456457510259770263860317763570442470644964132747262405963704202694433140491730681904046952348457359696000344228614926758493278647076543084130637499154693709022364059962922915335300355243142326608190224875353199503638179790356736418530980961586009971784627045701179405251575729494146364463942970408544966497543150013024514318316760883018764194713604612642643489971225847246998261199425613193099866167234242373494626190248846971297425107879612329949659184205503752281790904547401887351798400917631895067093406952407345145461272220581796378588270664821953953799239009880158510576790495128679449753220467181481536887301573324785684364966951753036075446076800970688804248433091524540933921523187049542714813462276982913380803961434453395830657144825646974203206021018049762934909491151687051231616537698184141077034520466910614822430538924337717242390565714812881300749952012864196942308899596623536269381174822695009918322132477716131357041541366288860073376517082824168651903847344927897353766986150219484965058781247063443327608087624323371965640681294215360162901219154765251490002736677923789743710022905595475778382567224746832399017012535378270640066585023193162557006772515041472552767835326606625904090060760261074697376383856449794025721485100738232117358966228432969061461741809395415045274971186644269524706464008539821763933947076956059059955107449108244524200129803909840544891427056495122547593506986971780037449817167375126283282960398758374447329456498084547610783732553242527252855325912887440758293593799980391073677306288522241546350058102178220175738437322663190639053693711896558965435556380376341980928306317212331559619335440764768211426352329560341894336522588952203798702913343895483110676162276719473610843823631161539855756918491423447018101312896280433540333415742987135466842926016128360792102243078793633403164710759768785111153593943147257200577402865084213123532732968691062305968045819535886987296428920356415528205860453886019187134407370965112488948078628407291927578613490618942019367069728576885742406103403817015754786990617002704085747438362676359714167762301691116602318782267498278772778752122650104176645803110671904947602071155594750857195444244798876010572951354359325811555695346087164806760094258403596615805350041171729011755335165573506708853816014316969961468040973569179344310001772188440517707677991194907664842116217883128285316907183449589168385320391051454868509964991018282498663063653999091073509438540788889091594586225631169785586886346402990230343649131133739628010109990003768624523483103462678577523841242292928526002011527339564556631496366618388971273945339835503615380152842920697590740069228572888508012738264854111182029493947263350070918266402684080705171472727945294529199468570144649718064246346152384558859431237266742591971802147824467590844858126399541857517955338898589644739488809339775421275225453528189595567489385022246666562270665741084257743576669906936341682136471730931325072326722358812156218187145067826070491549181446403362149433010733376308327357794414904645515598846662184703853986606667135690997923156047290437533853618980651704352395551641509277210447563142405994215247572346552806758687031593074014887347147059826150380633302704832823296594301687615027878258876561741489847252399826061488900554548587779024703186201923968019400507408286766866627109576322367028209159586982945488445771767499687585921458702758256737995487358912787225183767378834263768296701718416915306415286198159267383334625470992865348574118589412964778258953097330825525227819533797891751967397078711627852773422797030603923010929907043630024510917831476724439786579493677766108873937643419107086223546719553587614599059949721186255004627856312461388736910618906130283147003594477563195937738442050368066641918779626586457871343933091550482421938341922888259739746576793515090717543342789525916015410075504748189168944951741707641798617076877775858787511265282205945018398963366667413211897523309045887856049715173070017015895224911153001631746060912879036794604152258010634892065477498196597577159659399469937371764699652531417631574358059787046154319179653630619554381890413087017307880127768410697210425792282108015683777908321482232662258022905811192396921910875714305829542009572045320178499672895373552828612636750957748821797625406669975335241345458618665311379884915875160870338774832461760619442363494630546819542227794392683317607720826329055590003321446336700070759160801995632147961398278654440334686562646591698598343570908517201969889641882054995459782938760709510312175832918332051890381997136855505336554359664988161508922965963540281869299212348014008562059762826849925330848557905720195717478466851019397693412391721966665411262874706389361854507407121941252943260384973062222394916676143196772901275256261391750773600364442334908962221175343636727616431604404404581794689594802981681149160448563221321450925292967777731639678264679346008661573424599012078413599985377043984979572443783546955559494816895098319101634330435207186429316603196945266388881419985910036067848160006449355853875077798858512681404230361033039696422754933802815246294857839396447427379934665710484157859584194559089022751979491832355612525755940201355470994958896445760779821332077495020728688168479539088922989526108138389453416333237193089972414121527289373311594115302370289106683727757088790584506703618972676488655544927887312749010231147707584988956395196643744306505601657533899865565753652723339320237128324508344338635098587016334703341333398193807620394165416323081283240342776348683928348004199257348370342328968498567570091530871472262656869489596003797851294161936471205183281470133647882677101972099552445452054296329735066919432781764585723329854475461283978475429587399503700537194316987777269977606283225562715745867736220064742555472464217707856610680243735376827466707489859815663583094573755434999175705694564693192804329548593274706331765324133878486992022665095954699228687509517697205707245188653444014966627704835825184292151968183280110872440551328010280122998003934654487844947531162811337165813854382349793411902254939090142830189330523712974316701562635913834440628856166822832957639749103578187231650863347550782670283060956847112009989086414191615276313654866262879926302907879041500338954109383915748694222874158197553951418795086903004254383029713173645426600184351042523431465953631329372662979741173195598157159375538840758991935256509603269288856041532919447986649210389984796483332354806434282478232148050262071837591124857612411943101029941888042391413760339295281791892202275408627849114798887493739490856750620800253116970367080894588616215660510874356699474192657612037665453101444067047209924117998239937004650044417005974091265295039341607988519806347547469459701371969619506485324166396907191539697169354208105717790896644108061322550519400003637338085947175418602703070338242657308058523767840273094223875383782733769577217731806232533606969104260211184407867827279225803395530498630971485242665127808539406342837537001412281420942946027347898891887395734050939562009631674710093948356595628818424160248302973977926576563324000406549091719457974448860989309846283114659759645914482490201064015154089652868508929996744505558547868099169349091088055511366917557296664749582026226892271493408344307989937458811791987931488700755571713301511944405756256676496995294458767284557970415687828414875218305548803309485269503896198229143104159551748845441626959350554977871485762342014706301471704302407737146429716532481718240791689315065739130561087783675516889608552663508252762912180972673081242967851989133995964407053617523192484541123624554174107014703077899436449493748997466113682159729451437039536913234638792476853353341345929801428696121163541198773063119575883825602176415186566912378975445999801237162629866683188074711575255695330870325229735047075160872457397733524564283532712469504319611452279107421198289683427811643038250752616772741782597859704216467926362587805361493456728088410087148302805731966217701040002124113307724627665747783967465770708145838784387301663104749223993083763125344036675867856186000419450629665272309021183013712731648313614016850175508977549228020878375062341491636634572131346869324925763637477947659468371580583359449025212169620641157234478975575239717999748679516246197086384245512156795308039995706999991266677335028502754536649594932096397240549920253023260476932736576306737837768647188205379376942734590502363160723617075004977401409791772617002277118770345700682673650169539855655576673197817050236462155744805428044685428653433564094163919937622085216891885633930991936089358699430452332416458049115206423347848441822786697940809248235495173961802951862172380560150639363214412046911306459564214455670860155684547313196050137738679185078729810499540069269483021695211058103352957980382309068206910103547196370318044991946900046251569635496918231276551801311360227251037679207378610508868885885299103737330066772728064555736721808917706208671705542248757651938608345952790614610209581252198230278645518814134159425706925663319977201207745746166862766885685556679067308726503593258727203897749859916316564843646767295490520269166495303248329402039044939858404666580290064927355581664233583997026688153624563951681792782845869920207194394826280671186871843230275501503759817039858301390602308135708801833990120681899097944732365649483698167193395839046754329875367475740753055429380411471168527333580597207075044565929307252481199221156052238232777638906383781515186072288839865289511102109185323982408200368695892813531285459970536520752008964978605357083268467909781978730951758269705646367438188536999365239969287969562184275535141211456161984927053439662519866467390920122074314639932192719967982449002161915525390284953035612679062623957382568658922223162377495127747591235289440769872993177293359839796526400004627436585458292930177995375940898516147220740175381750952781826071626642871261227673519755590226802176109165082694020672933891903655786966069822382432629944251464991832635406364354766630009069573474029773049335670842709847086314417562982647077297337633609767185687572487368439033296912012283888891848580516445167446477326389388402240438101110434813061823221491974882432288036087088008137875920609858095914751925366786358378882289345988596508616631131381422053726915336693473084132476186999921228901861170349146789796717919453895996675572992345946801846777047827435260385446703184757795504659849319174087385841754731759635633122574416998835927206113555301127591310248332324416647867311465329770607974798891461759886298009098733524242495621353108529221476721914947544227009460401502871752169198975420899630419168023422015837060044450627437160664559253144431874357232318564048827758294341223507907420670587539861259691917234490820897163352581684364421582327925307897355890519143505702397813256284478900631515619000188875162174019522874777342327034299474525448904569532974540931479592332823850879931413167566055360792828541827647270117304840318928614105440644159670483063845669176523015182873608377078138074248672912594941793327165144539222602199063003042124242233517293457365854227649977679332991293261100178023414150067720420877614914798627818209578447725106306445127418192021230036367455862292644507514128020917334945580524174316356720643198254048211363469271636573941755729204872628628566655776336045767915132658970551324840885907197022245160223772944795729722067579579934151505653561674100004766197832187590334751956191903630878159312869136067586630818617242662354867501700797596177338098068291456801056313940211567360162732158519581705430627952091430564580233249590996188514161313588521936630778701024242447661439728224348501470486732936564373119587347139822002794551753410978843371264609129273452689064658014054526858941620883397324182163625500037943397441536593555681862906891319337078329913938363477038022357379955307428628893683842545286942743325498466736220526264420277114425785526654478802605898757839435091262510808943942657125015779775833383755248682360363788535853320073882615099158021665124657858040726209393053570342634716429813409220092558885784251916780768038497545388129940778100591013821467288564362805008621092311757049195391511631231629214391116405830965529129439457517179659845885293253332658042740649436008247773634375694117178115614450384630023868795299683335690324705809403481045118611750258572404639855007496791907705342717823012452129552777579232192448502775877426526716660229370971872045138732633538011579598199853318763676382147442085914330720096833386352330484889911605621413820777226049232312884656124365684730248935620562026791553144238128469641562048557465561466804926561249827294756590873616478120177289289445336206947258382871798870655055404015579737552545919978367749659348477346416275069176946980383036507681872292649527940297525898231750158367439958910818822147517851456371891056956812025347245736710222772115766362692381503387051682213156839263320663038039506038892663573090933220383623167917600640292445599576443323057471370529135366840419471688559991624380065609816493305868032119225574235297475178522511106879381552039792077018433111630672287999060092769753672510157084666579426086761623099321715163010513030245607779430919670308096341218011883308006519488713453222352038980692213121287516022924900726063691185801351928985526598381042726395110998505902843684443052821854349428998038271790800648985994607991779814456869259915489834229987976883224889654075311331179832566145035942509609777481667581169958272106282795526143846823536763368130772673469434565949903365233446185020313442746264070155978268284447168708754406899427199254052712551285662107205187660631313884826246061915099455578610353102708106319733933876865806358288964383685436420649738109810981478862003537876236281724110684868016602497276346610375453224071883694576066215841562562021929199346712815642718917624924182623421150300740085975732797315625235904813757169374584694858241739909638285693779222546273757372768997085007797537132195809538330099986384899063043923671698219570156431147631531673954841500999104396463084178255508026137645659497087141199587072169366520974862042766881723558666210102775686949554240065214975518341569041394860534943808815597865812839095374069375876804467484125146658623930726962342579317553003749619046073442486719964511159931040696801471187391801273145715602825859615539473903971723230009339567866295969248601774959587140604331649580345865923765457330076607081010748235208766372671802935998626236344068959907105711705592860298075296118342346960102824375283854887387114009966970097627403905946051650281687026651595507646531453520971597652250547074621202376201430797426831648099322782764079486290994700519207731979944845290623758505964098505071994161069817992497755104519087690079823600324253112303873775258658933110673407878277484030847677250454698345262685369335696080797080891917677432411768572950545876565862697553139166127057097384463318976289813038474893766475962287377659392191518937580151633405344188279598507032833120922070105447451057494744866790056513360046881187159873608578614288067310795379698555438895671953128108749781225356348836164957660402202400512077880950575100902197669011602568177380902447806263218318708659620980562616161968930795580354361880885241462719575675000935586643258166447207990959429229852425337992486246544642228782110085226230025524634871429877728863051348152344126154298754611660510391440638959486858962352056491376625145930798939234013878239797397050574129138296933775176103143831585093257524742755467035324357947812718733508184243631216723340486207087702306126391706697247371417608707545250771247193901743933442576481048146561093867845875896427477214802573927098063776251900363434449329628205733518948979044421770190102850937622858018349063053145723299379744892820694894100591031446256343341685378421769772365510811224265010219515397967680155614337783431574747120569628049026013748236914626833108260348707511862846084149989618212612586011142725474003465075048800920559226436756312738074695754846300506096303737992725429501274887737245299654359616593187641819978112488294974822370322857450807584863985924522772335644674139119007282589182082184458389515888813592474570551868255748646539288956748045528861523806228947994664120257711049938902984288018677724330593627042741017798604253452287792957535234244265822009660105796240021476078790427121191039380609858583919591735097653094974572891541614116307797105659111988546969971106181982301121893750742707692706109998151592195495380102520619600596241435603133774522160015473728973814027269261054182821961852359007686204971287029863581978837971871093968270060456634941122920209088391330041674846552331451921050621831571262921767609899848959095645863291756878482991374215112950343483320074298169490480688494835289886669766514702344126842624914013651072520598765586524369756716542581047533834004880032116941379135624751289779483154654959810138490497268867116396870482536214790063024307354753627110989330085992003824795631903179331127915428928083429697097637468799076403603555192109774928232552692729772244896791360576578032194596672407393414168456520362594754455994543412625631279255286461270946749509296502558980946512673267046439889551319371865590314624268997410774995017775415722920520427030291544874395951694146231904128312000782494633196979906031713697131410968670922261837943322579167861511057738095892504416175231946930070513435864071174029194545213780712541445680969718820706823649482697378291477657819775371839304052191062337783777964557523882845498756282706657495572875358028103135666118268556332668261247176334510232036858400284474767242412635910909395603354086261270638887094092426272811824820273753162041688688992149378888783427001213017564514973553687806816732974689379604802898300829404044227565408728764010738189705022436260019669398958697676822238890688880596158534656164480923942728427439956588877200989372558435091796436637569459433899596247701835069478334491725577984546609145038857042558887542701871452772740319146272302260232616488637039930079897006772002537126216946423668214297622266150672546957138699668543136033221670445001630598021127187443051976757665662605517415893245731230837454257340253275632933822571659541269303871793560388380479384166198090724608043709808549972176076631501267242316709629712421840742370813649447100316737367393094369638245758711975737530298791025404120111051103040080384846840285840024048769604248713703210886853632728803612043809006220678870016984848499090561281475177230176249632986645961050360027209694945345769640379133777113120293784348102597524443639676876882938073840576761340248791262132595934922220730927370405906708710233732881141672564711840559059592248151280117810380602999173965331758494094828251581416918028469306446034941944912999778417292039599430657593322567893954365720235663878470017484775876208880146904115753603602127167546091707509353158536797182870528707242999593373794495790110935964583894979676532888920164189176127367911173711655720365239356329964917957942684695290140826004554866803241705243466388897506153848309915335325117791087570594925671547492730493135671592693085056279757890386188635410614561407062577986223009819793355695530992268205604463138887518770961290589186242173227767845619440563707149241341467088691544983428296950988251758305864122406021391429776425772786794448626030268098342833961984055327781075501536369112997118069586540919146769855754885025067089979205232670815111162226950309936747141098213507171792672542944514580531610837501881600691157821977577821150890274244435373846215801482378622555409350315011140390789203065621230177957870165772452328943631036611615722561253989153077787535252169668814765874628898201080127774634934698268608077044360954249898716989337909117559336685720297624211042437492132727916790778744438241411276590470970458648609169344562228988673665221997206325743719181704946711216328334868017187295737268013903274929556848095593973097442210282035283946852938169419519009259338170322239803488384619360048340572505447796523841627518536143649443145152173945738989355317410309395280249318967919254910918211230189695266669009281959398643429026159086126228402892762420645217874345941425175493195683817732596637412477214570895654999792853604621858559819145195428054256359312811519700431782442130643295903770768124167617423283473574161184810785925259005247453539861469372755449899182073360997990501313512381235465929985580108593674833161036982057120709933935162524049775375582092772512974998289727552284754315786186584033880142392085217969145615226202540370436121618468519638017480683615599180070833270155147542903436770964917720648443533101884253013023102689316541287738375540708378464213846449448250175235840859139185998584883716363396243024335105576573840491703440283452225943267132473494228345507208302082726096794088925227267531027081998544927723907520967141695991828627075960973064308355706634768196976893860117976267115058124063178956294139130530421532285049815027603613646867553427222347350483154641550630455034145098835898671540174477184881188396148044216462049502183030599975546745985658383920302181016541310870919056462760444773657354725605299464493862846157709729326953485654046903846533158299337527826090369058258712596118798908545025486944668845407502503994867149014113520202733007767095931317252749424391918307568777453646838099040592575962272912692407761470710932042375918590158527091928759293334323151768645426462290560555474947251608614160115809204453922954079017643385917063540126227029417289663009396133524825939173625273410167243405792951885362320785086052375290508245258982073740083309260693260923225046176580084127808793884221526674333663741162777347881913402875119636216952031722454062919699599920052224156138839900088098757279044092215988067812251285016919222901186208445728847238080297506823519502058793314038239921204828492141636313002231556804976904008436941730961055647516991987120703977744238327772737244027611141295394018416862246348782768548242867994958836278547087627077380725025280357280696056380731442363984627402897424912358935195534497518652733053472477955679393720289620041548771364389786059528376154395234034912781252419753257157504158350985686944586901710835252595286874393295799159954481168210986832449966678713618445337548775436932438566203941487962629656092405658739331501727835455190268078765094203346726911461711442561316729101734829214544321595261586278751770366209879341267036224980119895366934238518636958400300767625930088059340119486820720975462649234912995294743066056175100307657683000402810035099363859710870203479371892044759122969321919180874387883611741890609809944917918585322624550280239689486530620700312243896666520090259962928334653961960104689702947556196582973503779126309463705880606021209418626288631774174525110306862553110243866042911296247710791354643428967182614846258344349963208502532534994501086937226525951626396518017363150647147833960207484514606298160635371802654860193725636519630065118250673988825991271795627950566304331093670612957709513398448436649647713923400664687181356297132195718470350913206496997109067353067252804949941212555959533778755944986453834906650491060944530687765837132972541912725003947522509937210682784367951570731723251371207275898016293587482341593726084521884788035007026291847714242520567346596661120658840251304490891188615046493894137863195451954091723325799888317682644918391635375570762273274968041346475110894505217835933607555409638707758275703454739065224326423150311545688653926285552754153649613257066803825358935816505676110002639436710341817884161939420599056009634541846472500948377211904722498051076781923679047319988202140024237999932160674159523278090494971454526075955122337861278216560444952141778569868677680681139637896826182583669259348636672172307154217818517495435829035408499256912929334167642476736853602352812688516766804275614501233301741818886741967548243026836041033696956639490306553640102713559765479058656365084905785299652884391276134566678836474179077581918036684098662721673672622281505200635701248581561442407368304529119906174382957646951195926842590787736966018818653684956386349428819524068690419114758825356641575504834665334648115295483213466818516088306713089351848109756265496627183862077712746225489906940630022538361386606483293801373240159359872955757624494906024702570635361752709878334216489687054414538040109119818854281466612642238960416486213573968497111975418940484726734079224933176253535382892598621666077239761155594905008835158723651344702080218266094592646703456502999272736793210961925056961970213165126713686342486702100563067476187340926515927134907838744759229946079870114818251089297692135043253309155196238657865643482941047849514858246103516092455727562289722457097995122838025741647758342328112823694480784848775134692154475997502612300167869372474918006119400717618680423138025410498199573662113983382309856737793049628911764041654294401147093687168175392714748905993155034730642540982091608105613995099031162202340627265493406527291564231916609259885641056765240722780998962994419954160750423493091083194424219757682022985556219793460723443329223743168183125782253575405097923269975834195249145422166731356742889035526921415176594387618963334695767138444545209149930629627704343909212866561289946274993275906538750504805632216463015264430821949928110309272128462888014064283236246835202792580797368407630434560332713734874276457533100426905746526554515113611733753513505407758853632083939778279969334292387547193676538548713793384717858029985343716903208432455269276497135830503973975618099583179501354323703232041825032161116501094974054617333157328762731435958558109118569265372616618877485333643850771073823249646613705052742636516283315338009312242306415465451475802243017700008226920492136072064378518860059702247789029723131249158592809571869185554236487783410834759519480332989961285972683914679287375692342679488706440133823429102217098135857738065795817512255235907478945659604321295107899369656460516300467088918067678701116794730420422388736623332459216263598459060154269379571359194270818300819894788767305478492912352527938288630903845596054317056607886503447771331130094754991552313169403721929715662389784804545581115584631795421344058993946337852745991926295987080790883480936327438207005129535176519723267065425255236085001526148934605286313741583664827955088731434194923962676101495616527186033369481352256420690297917992458753913838694188986271591031160917231512712300066674858289015637334541053712826622673570689792573743276944040152944893492459142509672489341164281952094003176727506385039109146870464371775493698854888352524094078725135927641961877011245544282661338708928937709542436663239301851699723537686812331566770866424421758745833325711622130503303197384254851528261973015270057529161783236774385329469640844634925706766840762455281646798867001279418798789115711412252091695653935596180480846199322704492317057818720463474958420863432867646212923093592159688921399274876422917609956821049050171395982159672810437843323875353576792799104638940144037253791808245280162616412929403436656348650447796535090217706619965045197303796862528955242695813154932287048885412362072972157207133520310262640343438087559905074646387903747871703653025113317290664595252547996308644678086676044846113043220152280269065248612196523559790531896819645684448908743426307892718816323570656072488396030685880485979656975329782721100430357911521341183573630775553780234798989223194834501715756889929970228690682468355343746705821944521971635105036077358767864062333265725879067990743040113046382247712163631560229976730462165126631407861968937819507708855672986356003201051294264649609092877267780637982845917537163651165812646410742211705372902746256035805576091152964053458254221024158524505503229504350932916131553120465700042523091527168084362920056113192972183236213703113953200139037637391116800519699069147874005041434601980449473989597285953578925758602588594283617131201925952429110444181113998082638515981423731934824946156964176679350269660646549157133880780894255820901182771100589594671195438556746037128136316750734060397475458581247892280433381165792532226389534698166281117730074209477287032417157521118379123453652977565481928190069008497340548090753182548822778462176565908654089642916687907226492193099016490792233021603249585661177738742172763974750721782759854251184892483409377554342495442497071802446375914669227425948736580360287324930490069150407137090855722249931121433121928423748129884583497862364494481919880371123383384359587761939199652956757116770364030106638041758381456900493871407610467127363032595796152869247864076163861923806084679761258959203260166301905850559742885612128506508478792676070746454547495689207163949161183514115354433706707053426823853713948755119491670872685374609706477726308852739089474129750997876614067290762867520404871112065025388732339748097535006599489631604314962113119215363518380407884869671684300675821572944393164871274729461008163972895657274676758476060719056554600543633455489377287725952376189059258295534348814178226937149590058649510068076182414909465079041141768490702230359762982545783664393401909886565401842209837621972480060179036276613787156529574945880591103944302377406299089697405166514932704167176680986855522264398763761557745865504337215289269141828330403196839113392065102515732359782713720655793216440128002327776772456887866626103147922297690613573884039493441978246613902592864556106476691562205518594010888493157553947643703095198532207604407678003420361594833831408417161734647219014526877653984340214825878026786045864613460833156983558068120074115298881096645716979659875631022989578783553475504477978611762403273400948385936225664160681911701449973999466526184210960633196136495446202835636789428612530866362647316825581702366855523675045994612887291904388797879718379626251265416340041346638158568926490375785470378375846908211252948877971658417530265952243120285811228653337879875492844939054186355461996396822302866540635113529121636093326305253466496307217195013183715441492543436557515717318116736881039577014858799862825474899215463657931693712995819726667629612458636639212739537343885528160342535211062815631920875713957021048484319876465767582409326243409324808075545294092344584120443931069636554551977130222367454208692659389756478513937517208235683833701953654069623447592109824377896685004267611348686025778217734163944158340327862240643703877623726897356001819160756074511056000202574674677020966119705823183626736835809315329598392071031799550625615807498997082728530119956424403656832873167871917665349549000246572551059111345829487335246703870577391347875586515553673491493734905723870288574316125479184142690974186538760732191513495650834251900464947864085220543640800028901795750609350503315115134716880242809054330450268224912541107891872488011514197710564507183164164317279550301406538318541456469865182682461746950510956921997112285369709309123853534121381629736381282696822945534972529370122477090849149710162965367707797690796491834198513711877930594760795456801190756930728441416710388876972808571649757945879930901003655796042701665569121413576168882210188074400917727535064801604758065905404592774270502828182064868244176492731296816319798250024755639464087039629983963095183328196003321681462773152888387840057612471377250777494254255160512372327670645190032813755640758307090671734906690652369293821333718750552569894972696899596968059973310382142759078025404672717838531537359137143041794875664736426954812578553792659994301007691556769034964335638481751689668826528327430553259183118223019364826554008356902687379301529451613218516147801877321181194898222314262940781219516115101322823372080311498885371998058855870523129223714778155045382738046195588385004680699460262974675170880465155714441740161205562025424941217553404766379750357155515907865450547770241721277886328987143428089145386449253075509599126854579618195819176846087640970177647597729221449374641171729355028919964527774338355099713730301225693144435945222119114494860321318069819872083551946819352684162793931656944698319624586983124776179823146859608166761856702298078093210298163620133638706083341037671167095881156062096856509393059770605111366543580457305943485059029141519805641465215183574217684950392973653886822692876806474404722837038020650888213041041537469506716306488782086722101512644943386625222542528175272742637006240338349405929673624842306582628940983886408451167075489354413888301950296273663909327016518792479944076970936035147846657265514486942494510807851545094358585419382846296881806814909249601926076617913332401191296927736737355351826865232101653663023791103454141413903756442024516232827871715216336705236260713393400527726851606594735511354088635102935939514641149004775685721328152440481532124182482130018227548873898700581961184105721406102132158155977484221527266192447157714227626837099638429764920007238014494213574161275141025223766634176533029882364291095936710493932906081603152937713898146610612017574650841600909263726611991227878249177336599220264701773507684073781333345388204542112789569771057766944855427968938652185717054097667722531001470997929894559004644521632732058998374231362736865763173568275008892438796987213000321338202128158753897783227161076994635635725865330236520444951126041268773022078224383678953295328429730460995922592271805817646319637879054214783201552898587930105458707729324477766081265600439239718574825819841778305409271230170156846653137137109824439474842139022310280247625902751912956591099420347373766362051309288166956363752066557944261587379145255666320016359680922797395063861616870882204380193383800651736868190550374827215007146445268114257647033260827832059234094038047172223713478075537499831807470320243551791345128453555653032733414011763191372994596483012357641614642805013056263316577111728608977712304588552867836155847551914839791566667005679381219313839416070312854056214974584165410412742774279941061929869330660184622300100253442182373466153934255506701497829361780271195253883148308201409973350138477077842922184954881492062176273295543455603126985312509117661634379695991784703784770263362505681631966649141205690074153855175069647876036879513065307612300617278031194297728032533272314090893762022265872068152395708260179327019777800443864326765845207225291682833651198115039184995408545107078291338507546070308020999282736445190208156559577598582341523783242128766355641173083221970433673058176133319447672737912260222918271874221995163865378997508475261882412134834901228839694836426500766690372505007949754053047159009927512822373116950284077037511509018389206333545958873533642685581698734192510883343462952434169007745362093467126132801826201898600641952921865514526872234482285618351359881407660352838801058446474511765493541466851435236181004601829831285836257493115188091571448285590895008517723246214704732986347648101173378729063112083969415463859678695589819756319147851719469344820709507717100014348019852860833812263138706885421973074728698164441022599714776229619542144033561684811081183920214563626710677912592506393179397189374883566889024348745638007969931060336225988626909197387508085391382107902241824708806083046137921223990600289252254532891778118745753608742502765881665921166525705051651061089714314313374333083095705475101240271531103719254314451841571822966938650657839049854410722530498314530366009428568660313147023981528510224943669806625074456116196793022507449515184003194318581623961067134518483942779693804821745568434409189733899876238610756966179973028445314837759087861225490844546535103947562823368282875952473181637820225384664484501562910196962926614232920669998356646715490287618478031515415430578819396961323053329384540831054355705348090350681404018590929045924174580110137513819808177756827374242663832088339868994717695855424184584373256712873426877277544907221879572065454369563266907396893088386876207772280858109577763460172954567977238448557649389012769771499314428887138689877350352266588357922859941561079993228058246072283292444312314925652579596347249315232203874213766284188333428860411429533945133559030944478691824002426283243906077537350028319202213584092265525067956614209891757281013091059153832797931215203834730484945287641674204059847196515753138253284020946234391639247780287670124907629486335265264439990458752839291611680717816757364406917251888420847729582754889969515857268849468867564084313892896389585051690795348135108022138448043572085346787405648892378930427978224634116388639148336979849814495978630589153785234408215328554808646280666792216565414971105394595198258214926014751339148725902704305493906310182415856781714885434153731332633067765184963613718177915505531239693047415224791247494981187734952559206305007981489960976292560202683529526368003362616584742450493469104498452183714995758098885965621428735743771632252190170475210329932074710944998621960449788002159239310961443248928061609164073492605599298884322984011754076912664485717595550307902010820447067120816230068977227871246204220538703352722923403134360217157165940909887942850873571333462408809599708327748500728337222401063546887719291732223152717180013644382946219556954100722215359225192959742521001800554735267147497321060099451614573461319447176385397315088530743116318673617769067433545126814588386993022603989384332810882913449160632390810584258133243173089424550883775466602838693279884275431616132020249170478147486248923499541905033060137393319262187195203526966552344608753504347361433512655020525368758074779158968032206197835575019339695365194770046391130208003533994179251223709016352334386255645814584763644473285190476557880244398751055579456762699933546483424400290958191742458676083096701050898982059922384319561934140834345779546659510160207334079959374228908110913028707567233669109144941580833763577590831640055128308776907380373461545553388829329299848853685054548606845794088260198459688961413290492854447361358589575749690859537458107756868565013680039919372720626614337348946084799865844578866757057151525528689976198069014452840762146486269598843836129743456970277334757704577690490635730248270158808135895002006772965820018634421955335473766345435741875745416399774791881704278480627127167873424758585331499236839726918047182099515350599871128147799580244661190824899407292932025293694113684755005988226982769199058369542009853728245200518147752426586975649078048762163291985918743043819739759426061190776829379845820950803926071233208515919168372640097674270386563137797131105408978339046620072632482656006084414655757455793066342599980643659142964729651998867857041101467140895218393529959873624120454394183889365913661772388967097667348483265268914034193846130361163097612014998842293681602348118231052379823844781625410899154732841569533382632889541890619915514020616483991613455829977712853670156947856378209679881187594449808213838201155050715114574342840951077291822414985200071143835298012470963348340220995353198362121446436492809263594419696000698857026595405452400462277790902375332479255869630640061571282647382758877871194028656084079567000313193006080756272572774153810863880472937100388317438738732300801799118844829809577219706509211595538076044822512941387789940578030687232952653183991582658812084191201631054015079955234008801125340974437120438822264529730900270202693062079452547054255178803841318682518387289082722982129924095667227753849547978577949572623621872558348727716087999523610602351392279592227165486807819383240626282897522977777780342118610600406487354719328249729401192948978705919202235152661761363918846920970141864515653982661993277918980301448895406225735085628924136874091516250587718838671145388165042385990643799328748781954745469977499591814554701720046337606406857072747343381860146057993362623391869093447732948438248186367831987092794047758870370050252531337123595912716708009670612109667860175504943943616605606181974851164105402753028921659584125703775232359711133225877323986618685152783658973307166093121075625632213262867063272173637040021376158395694067557597475206657592444810138636115730074230124109319582347797564848807340234660800230301226087234174844691102204108978512438135996911660793831663972556542533803718058871240324722526366730431588774597834220650172926567901542710954959903912410806090233633261418050185248006271983770169828555475767773980585106905028997040769469675950413211499843798007367290419081523367938827749706410791888560037041556233265826654217606090006368749361763228140752202322161344193618530733063162395357901087705552765784844003483061589985944005303144588752512765803600482784289095231374527063790673631063701515589959875260085766417156977972571239185662258057323728647205873419366152500289486883787292178385897776091763841280225398564549826497692962463998980781393733486323083065053942855534584306373624804805901156165994051529913268539683891165281292218085513111340269203815123932612265261633389284070369958082961529257249860203253565207579503782633958369340007558671096599643357381526549525878692549624421118607847563688582875494511218814914057055160141462553278737848803545532053078390376122501610668775456861690785402208026897166270972028698646913477014278974685559198752069911377711063147022848516466808319921369720381814115227521248842437200512960352058053795592880485845297765661107518518859461804363233722213300106338149700658956399587942208628078966674580679672216827708678440007620380385122046619231577569194511233033606361864136348583493308428555267183846302504009145463676271096582644994824628696710985330764271162919344351591365927064196279847859116543386806973364642431641067506604496791419998590005651924847532584498054907213893702419581365734884875914325288033444632847487629005330047477665977913561005059046453415000638599535374089783311039642258835161464578018727626017332787231383686805021179725783073021420351172942301390143637951793172452060083382701409233543933417088690372145581969080107238047632548537763330384163542507483998941743270117603933778646710310366228702673887957165262652211841168182817079066103070398429428158066060112741160677544949070017943075452777819977598254263843476209093257721791210851353864050378073108346733432750622042231095230552023997319684560543865888755802342524382534940982051215132110473526614962438083251062840142148134715343021088281935052829339135538589230137469837523920147264547934947523480532162638790216820261996230141399628937215054941099828568911083209470212495095837922431118790328817107304541837316439997697371873406580410513896512873969737042513625707096028721247462493636217543935306184906011546625504883947733131543096922863588229512419272689537176967225275630064889391397835092132172506646808344577348044738351929607476527672779336366151170985727331029539317956468301923172406900613347999365918416460863552715958297859545889826712798829142107400077271860391975955729470122762109800666134654055224408542755863761505738837299397289547170859971880984659181673925224812068384206691171833879418317159564749006274386629484747629954442996548124355178952030600409226622678103333572190341098667263740644723496971490024703089128476759703608467688084681736586784524363280833063611226439891971238433918831631463914350292288094021511518466225080736392296417892900498352447319688782208517910014776520253974714063429625452506762954777233556025466631451331179413923351316731045859469923557548079379789782646233520494707882949633124596946578246287595522703367375612002395649195040253440907637110360645919136887634073550952582947452006830162836815258085250611927785548949876974888030586496660982619139624609369643643442281074926009904801735835554904498126618565044408003683437663549076747689376499959321879220165871878906940021548208832570330961969955603444186718090597957584048707587152770886896374873798930613380164630294200201262114684274424451587515116583474282791065282477746590726086835945641361133482812923031566574721166847073485283526397043927856911907610605315680982797031599320167378202703747192096234700885324238873127978850833253281380061340580464337028894663869271550637108810714634959779757162019710659104923020530945061474860322187823573412129815240670104584417648472370819970544955540550102192453645719269332256851702008136521743744856922476011438028190801624943665088900489592879692647773612119854750470273479698553976349236459654850216400047027206241708872203512633570678006959968584770028051656638759927334000018519340542273000045011968705026645102561055535253989529317526540195738228940223083555580369414176547597389947929162670115173144264851430249283806726573944727581449390988731073897446541094298814775358625295782546831879303270677897968024539107104673717798580903123577013608063485249584955062418041561724525432724033097277372385473237603927948839102436585490882345943185963073407284650507413111004808831620883499482992317565875569165868433539334305702755208361091143721732113912924772719922900330969810871759923395255258728457275212607124368106377049623498299378532733111147189339979461442751806630150921734774012694643182279711872521539883325415557303006006354539624418754928862031092734324294228866191155895060862996279634809147975828359745838472116135754843307619756436535859018655793111958076165973936508745559756982308655611048798952519927146315458850471399690612605137544441029144565301908808895055064142637463965766342904825859388994581708759109797965784476062020064168306222497851632176659487013996381723098850669671666076915384509890596920875090577850870662308493790323821672759732173905591034657971298867299472097582835712634169593071256785223237907452708954816091393572765389744652817653755758908456864457762631782887628844693917054338566406670025488685489654505501422379652196845884289834797075537503490628693543393022184895574830930727682936178807758065046592710011612687312410039090008957059036035742127279111045425162760337494195803546979681779762922024071543833953195333555069332235029948990750508388629496570830629874034936291676144213946312478135467923202192856417337135308345217115869063979212370071985805783111893935687948660713965984304764707824421199976509953422153558156357412880760545003672819343777058210633653274890097462899163757713016601002686243682356294619175382533456323365533762253939369388018066374035431242983717920432904277806915610714988216930197428144152864198699782524701184677458848943165163680342727299596847375449685597068789727913793450935334023131039174912920141771790621081844879193288429152197163737077004728629097976838246014639461593674759532916686951102134007881659809711889685601942166733480208832796508303276602800853267462038069641223442376676167761867272899684379155618958121066290996778503712927108351741240617656942871143285249020905210502064354628273124013083815871160941709054840697010279953960623002447668859436261112287239112121714654650747863409418704049805181513901848747924056779861540104473027054581966370726017043825034208016808227053236285646757021276517584165188541916608634177857180516105200909980887369344821706725020524302865198802513824871924415319169047629402076242882101536609894624906311445230881501319981875554394023500747088407035564485214927744879493792041179674766617373484062932361348081320202599400261160693975613948108385372382372177598772906909358660586404555716066970315608712876291313186957969637074637591728876570457826292611838441589336185111768660106144354389836477780314282471141804877889370032590973707529608006280281185272211464367704978206628219739155453752826176371723314158678816618775680258642348916871930654917255098697089345924616165905287479839338450891884415912588843008714192392825386445050223074060337793978671082497145410790339743788037160746498560050486036469554050061573184867607045318448953139491670644676800877055046112227421181608892295898414322594708469855759568728161825273256412818514396859203522420179574486920105721563675161322502674099854272729428720432823625560630518501990582590606716290905498523512277359664568422223785460992816521265365299945664049402270128371684017987593712669712343590869388333412860406477697079507066708195062588110084087387684678283437826782662562207722941971805875406832558265200667207550474603483317586154969966442886304470474465159805363551463057320168940796141411370826451556473747053201060484134735577031158105115035400792025303447665548742952402898915586007789765084370999312063750396838280987282052467308885204134562296722018772379587245989929402739288351345105887186602978237317705493508925547886691572582422220272637089479161223700908136738113490289999396394223245456146499011910975581756826288985842934079091859017955879890564345414248996076598076154882886080054678670117380772474423727298616079637512381623340995133007363536148811370977903597028159646237530963260667030823168804760355861231348594664691583759151694749075768195553769758659042850638510145592752380905459322297770088784526845725580986167539144034562461960248361556141723621599297841890243721861388601481606821176583193869479082717606012337416849926141966927985668353419486327556224551617927910645391617326867103532584090031427350593472414130522197637039501558075038833276344564713282999282912578707848739775806343040451275173528708002526264254665530459882750121852319906539469756612416267928208219366793932946178617771993872299536692973720938921630457450574433076473284005771545489321774509544259425723161386211559964306419444007858566173556756623653428643300410735824701727957523269054132444284512817130973543298098952904871018559418190816060306952715703459659816417882515195372808347282490449099996205604943545164995478320403521051120799521599868268763855280109758575290413739948234616605694810335944612720840860356231754864419973492549238307328247105535779358061163320977678603007184335016681519962855437030948539805296246438760653516792256578507589836283221311415964479115453223759111429482767043880987269038968644010026748707213722409646622788412391928625718078200633015023013164682677134228933656237266079185290502591794225299799067251549291512664449895534633752202288139966123149161953127955150241484654257103906912361966958029797659687955091787418870787536081837969519436957738696331779605780406791083886874516371786235363142918993521680411356901292895202911504086773349191437751507508897112643636532577883799629782790606761348217829218490471351719245151416718760649606856003808768667230074455451089485959723843676176769548124390997676801597004754675906965233774238769686246368547227303036080644279198308221082435354185000319603388922771725712952363824591816085473696672489883098307220707029690132702005419351525436437537819692891665884702522002142294274322339014208699387343687968630393355067990499837616916529666956277586898665552812242245046894009357492582374166341418314983248560818364784092021507101945275849272759930446547733200492102830151070912104117857298110917429945059404646022339927166137168318004010447037803411982509237416585593614441956078127961274315015213450407355980301763728386575929912237325778848884646879929097053687264212599986231829441860114940284746420273855620738673696628885556847324556204447155589135424214729488644566197622749671792813545995534139074401276149332110053793471900812889115241902295407791992163759237728284547773539012573867703911382963094884073617382724805373437938075229157243966064276739615157955979147965258334490389409327499156307703199704713069330479408746857214659422096452617767494269901524916452404300493997182194367845449850970767969146397316795215751827599944696318739825560315487349673302529634326759660608660226736921215706723104640449135532589620164497992724166627027813079603268627474475079537550121534502290447420799864146854454016214883475307710437597576837873363490795864362764437413847467703608615489114471517634677269157514195419549978107193497706554471451555002671386296989209742177947626163817950010885579058333731519912626371021533570820217395559431146716450571777143864113736348605471814563210897573429557035932901640554406645732151300223764625061259979600120325764646090355820662058066939415221880134385135699316605531865590332933226861250279697154997953157063897766792409754068521279340932711163924879267884474381698812322780072335148416282198007356869199817937767454926451589279665923293595322950927769842509873456188057155342855456584786233431979978246683618011309611366728850367815327413595746099533444036308765669636704901448187441888528195318790516538146240679297744769262558254972044355306613352079696313221080068717603804318649096714726368964361755093963897429331911144318213087279483478144130297054755005680148812589597342750137564991813882159483852022686838382796487033969196846327731590505078032561720526311382798851092149881538515517873653673198012947818760595854341798081339271546307477472848506264200701569127220622291046534722418471357819849702583721289529225532292761948492967562541170013915967381857018592607517951117826284178134354386406652139353022735952371213917383864433597800958242276523201278839231760664307416379130830297509210101090606720598809276270845399469161764482464246292322252081719683447660112213949354640960845133282234834122659090008978005299090712575930020091577851126957111997756690390802341573966964171256790393228002995141820621443911981816425478149099973362679587036869139598208130501650220861308550892275792274703718451277313063306418845327660381292294995022354158714243358621634082306445095492824698182559746948790912075295249803269565232807952974443148941507229140465208995202451922494356592323422925021061668555996136060334197028474692795233743571281202178528255346209067751932850163678141164331142075119228003212638376824715636768767082966010940173517858998215298403549954064408034177824228956961526476516898974815172767346241190194606878920039157886674579802629980246499788761098755389046634269620280105397799326955902515412935841048879311775382721819528564963766693431797660379071212929290619884493372657663374037452707940086924385901097402410975845367325485176864461039918317254918072541802476257615841429920287124723536529770310225058123503420681123716477984839717396418897452170819042258027757542510610347358165190565124199511355132249266518753901854500037628408206833310281503029105682784428431150945633623511025746976702110799235104948001448508210673716895631094652703836458292037285818712071026068327188895416584298590313951384905770539538998529042558720048871535576757654813312157932310633272450264287562925669430507088183862228178798631446120487141388899817694586967188350502744989974078899425432736056217819506946612255663845698699826644692514383652314721261922824912823611844424946833470388172675562545221631520893966121753770693561542383476871144256372205489216557907133051438894540416340985165980585308415527117437536079003526279556888676089152100178340169762311939861619843086578686200533297580611338890428115362404893363162197688694509437972685858124244992990280255089684504648913659164909192119449808504015612863695360907254422523146943119203210407753298509000161772250218636118662438921494936835860500504090062608597164804766034303626783411420380584028112512244307690700983694936569190986200611185481254996384863076349373615347844188640522197979455414841980514069514489708551825406794529297213289213194600023382836290028214098718200924688851307558106698071477998603928294298982966976871454689313575977386571363578282304793615860786449673634525978101798324184463112727592028919538394260240385708326513875459478358444072745793142026694770401507121618051106229179874201286669875153396517714896666954189025460540962804570904637923275001703533349625785057569205668680190095291364024155673174588666018688154264690300932811536888753029906618671007537407358312755076868099829086393033071140297799661555279239446725557288177571128489299316145013605711996722052767370799592753215436082001718737197076273730902881180668054870847328000501557720573772576556953777607842317873840668488532519980837339785710991490633945331968341833280016043415595136382370182172155149564884379469317311590792855932195093154764868181057063692852354231472144436479078591203381653315431757701681326297341168552920956375653020852661441083046049091647480324888216752839519429324645391996909134567253234755482013494426667077992521439254245371499390947228325527770195958998130414884741930063572787522101925238421327338149419166112033031445702666981387850884278325260832805605951105271049285537875937124786477290408374273754908274711854375286436011832978952990753040446685516288230133357387434541063250540598362647891310937775475742408985483539656873294017028147452297132710269259999033655537298715982236646130451660769339720416160868373973214224411990949080136211734860649734447649192661940140365857545967985660124339971615726841003628378318659815366811759607894422770085549994528178103444816129734117054771933925859219565941732856197034641447212442170588989222575961956735720125433885644461381713491099923758726432500407198833706557163409566740092379279440705177739802357610241667789036770940000427405340345783389982629411291759191392563387565916428711959744187881540291337972383571550378449711974717422662660987373748674898771902073506588319846766074964579679079404554136098819287557180539516093222348404161601187756528687658960581216601249178944293200512015496052607020806501330617135044090147077962063872659783674353364138189092793291464504222453062760396068728126366418892749638197956260060349604327161942006130362546740048993640662691264983693711505034436196243784987491349530634378124637522937598178306737280647999362124164615606588591438145478676486936894327280207537023414450683872392279359310612840248613351806683063724786058823907929129739231157575727074997560076057091777537020126082233783729252038129756166713429877245271302606711204752265260094506487079257325541108239213671748286951065709897123485472668600576403403834534486748094270366561523552919981915376154583081423129996402067060613531652959014464905654787984447202505337591246445880323331326944837947872693103496804968334768536293327154973074736264847046671882538400498079975535507560001561224612029845749088613718954215920566935092279948522088163823674871589078855840868111392646799573174727736745750482731552433887765346792288219951817367919118154576319297772404411178738857743752163234990803794656278725310996933426203026476448640937227489395547497010622923816414210682006332192441927617175110912455342135010986841689081111385631425556920801914470328112597060856637419286928350341540251359194665136761305144443578272732541350762974718074504462488748885028208203132875702666418358575506634837627488288571115440258914713218092996797140235033256881967627707769833088447373385653123555406309590347926862587217499479082153678337135403371049632770711261964301921975056839372202834627076271592726001366438934384475465628187570742895370128425066080706727397702096892601209403636863366906947349442956454182125824121443421854023483844925221585898290474644165912663334167412629806155640016614220483666082508196160816026737796186260313929489113938426479413045080459890892194977751164847821181185063169918709922148945762354855199789826218465886624918623343831181392896765615420197262524842167887344642353269743322445128269747457820020254243527120290076225245690085315919444458392272031755528195519262592533048395845157063483533339629270875814987756599529200735950831797527462027898164191740427445571571284669175234196110053259641572772042663474601604327212977544659767876307355240531260247250029929910343646275117046886320042675554898366284232612498614426402604286261728390093001757733975299574469123668572922584751012348015708207879028899919131605132997314154234225657826498723827876351226965161614943202659038897382165898849366345375635456174480727758944781174940457240972712435666424982403814030495269179716854926276469517305212641527381281150083942867085929424942493158850191370801309580346324530079573650336677814903616913401587523940187445413747660456998226070792492430825864510814495899063561289727878521794818419850457251465172578036076883065436494188172543520418951936902118074503208205182605272015990449653918252826111116300423999920406545328121419850287340676688885242348867622553331436667861410187212309206056246367060544820072390712349878121828543553632146676532960571147520496172876154495375565333996341662140503239214876235168745395546463002668818137464636541634368800060543924165196376923564904874977667446457902368186633472070579435386833246950774428374410825116999421724717114645003758994628393456852536634049312829954578995129332183256227047159976211790359151449689179928381945003451150633745285427137315826748312224772938538354187788807212591023310346265139215285077045637045310875323304723495703421021949407717095018693025708336572444002076110139775804707436416848718111010786542097530423559804538216941280810775480636241532118255844350853330883894725358474050745911576404862633135271200039228080884600426664211195721281786833738818959353333850218726324456528763430646148179802659371719552402679706985051414118260598175911996073743665249420624426190506461763216361755256726883844622264113172674212679970706900604337433885527574956912465200246470771282784734142017748352849591049819698721723093807980782139754483723410077003719511782613497097528252882362340016809290755095613504999846597284463908122799023910820845277294300637276092200612409053643825195076795291752263756696402283227759327183115357647741584217182112694119636953712733613313257540278666431892128244596994704414447012234534072989937004777317147910998218684289717104862385185505279845574722440700082613357775819720653336819430882611780359641638486339069060589581487450594366733334978942774896658532639602816691487474996300289800227529693326391200946799698928318657237467139384816277156219257655965172207215008942599469457358344368141154688798966062345728186741653230375984600800547438459744852624658844208514580789617149210678965284026954132490006610533069887131392002024615425858335650503618426838607050195867252158136112478685648357147085056364604921853441466156946740095084161782926220743981155033779152305251794367829383172595471223692311117365841646309475363465920589637107424705087313042810873464523791089336125326858589150559403424816599800869600695208296815740332037499770332714951413924553156098924990762921085670474972873559261894711487658531388946543567445535762135294626688511147151206033775296782073849285021614763278298994181842078476559699455163616245219622996511684401627154540431730708091381388823758211159132867933042004119570625223382991641621269578151653537808054774913673039115455837867964886149462147053045662930653628185073236098033921790458455792878454752933762427617719804228238577292974085380092666461409036254020189001277305444767728202532023143294568725379692330107910584255896640771971411650157764983393166099564486206220934321838354403079288732953025958122525123686105588292763860452701810338720743390696797884013851541967142545164269271271156208313979783908436910553007675934823286008535519507744523895552857594169383445831163055663972339812259350667085005148270202524387626631530218001248391802945553176425875071764232421589654697971152546261303807653895666230537273244095184579275017076871927607592492960345619114067328180340787411746495138969434448425487842381695437895530343748655047044138076072094554603246897991163436479029421576124709350268489742944455421361088981084579624084316405302268529126936530074276086358054889528408751398788952776964774875855859140598875128267793144368715192780904452035090803002685224283487834216653368853445900875725573491066174169238610824034797732323879451175518675004877225937243534365424262215221918749261147082965352310037771847902887240978061743784808164109812893932995314182822485243124956292008347143971295683339291212746136302536227546461383228264845140942636401724734463997312037780436130980071311264953464180085601030916534049833593870021601580770190980550466980270142029211953441758466204091131785507666060846188827363557073821665971544559112722129338936905283708367758996485069657923533592077980519291735412380307872880285997323776944113652000333815739194656679629674016329531581297916775805708912077584594886802149461197030408307746289358250051407874200113266949185218555264905921987177566526282772289704763207085315406366408956098796108356773266994690922455637747382837199753117658171600794445305377282211347639574733401487813997718452565595018406713865812568088777567854839688268966498798050946504314794188763337186045550045635530837574947225505497374404744484687407941605493513045534176757141184486888650280459782627492980603517012629912279694179094546667455950984135233130437440019336630526021305914341902586015088142125101421785107994779605862638356980676986307021900307375966881268950082775860306476885103772276763758160411469782871223003131609988913261161551443230852221443835778850398927149253855971441464642153480415722999992538314279803836690088739147467489509865885649277499869446896646455761208381305119696508968498873352448557315417245683337033458756225299785641385648314506106431166032745216697411783026419830623570930697967364967144468879864990082712259584299123814337032710500624325671775622194623950347629290241070490854721783623671804427562803524346669563456441073550227557176315970373905646966165164165923524764986191551871596494173346565755413588209188399857335596019961373680677350464409701666417485155231716338551345120886106560352393524429759202525503541342708298891108761762790555573897975465195040970248547388354077441162248300035612035920463182706092588672573901436518664099196591462590553494755328090341996723270230243421197318346938029193048176672199323935751613988438349650022365512852715685596651197395007406244272901684138279421052033005708394015961346651540973231006875759419624371865395992443955478288895698573239224513395003647607447206602315681092941931744883530480402882752437959015963243019717629371386094664103854524952228487819226382950518326108645560268737504167449456205243809808784372095642522561521548608089366602121193487749044339383734511835778206235088969559422233290302492493935654950968260322947092237219984030627322120365658826801260799568290236900562068925323108963417656318652532520870915374741071702127770886581056053813920322605003772945042492844848482818593936994046263630599107575492604527844219766758052406490229235964921140305997083647822376521557167833972668797828518550789417906084610731900435946304813964674539607699779973456736000991674958466028794514696166432401964312489848816399886508472763775160257553927675102811825868438259946700433641474599071166826610430388785414516980684218855658681957989402368223937705981753234387918982131138558845082098747179655044651356945511508699937378003778296894674730595282261773174412094423227900548360429814067729831900776523473068715925077256943296521704641341684034403798146201232402958010652894263505107247884387840440650750257926438674644181746057160099678095749133066518164204845918027580549636548688707550429045337188802333954853988047485048575801560162378892392026804664858139047379501099471679045298344498377383390210758033818234170054024840909127092058546696168591552909030164524561415946167405063937395242533997104734942576885702251635077833090423436802986793868514885801291483827933002265126766964996009720380055268256396763644342495962193658986358485303844069384861599005925798722619846827575181574176064292732669234113414987890430018643291884614983202807928712104042662833055950401131806016483746803342288147378923988129743219509895954947301297638242261156699637528810749038366226322544636939071165334639535870327724969700310560413119085716213854329009498361251206820855668644473559804468607630718311726967629263980302559982862440370580689702260592861451775027621144990980136558711637313015132184393489233110113257834319325585802023542251078979777304361910643682605239895613769880492851338875429060211050449385717922480216054250152144413601052544410390667028923406548967770866470675282869033510200697519747139265783630196488838731521508900417013751536052810609347021469731745607661156279718446087086530141310197980175585782538690236579836539090085456300935273578154434685795456748981275930684553826320027178595689338228922457953324413192450553068471307719869456657673655173149787016377704755355006016169579960076565183613146001290502839647764818506602677854526753323187476219659760329313479746140684061974692468268814795143349503723889294580414385949605334024473709112104095353058806489142665205602014588887172848721710246570186621638508845960184419583324585531180219504502118472925297798898391487869599923800750931560261100770101994669128446220200726978357087709176118216509723149742737640211098585050117051940320619280201859943156819865461373085651424529639436583772215463331740129699779336397406538498911134705876863470259787170837279779405594016366633029137923576182548968716250399673980732640972576129931391107585038035826942086310839290252135544549672110879119474075908990035971422042655398508975292843491564037908071745371866686353099727503589565931620571531707043233020906993373500585929361489921530330554965307163106768014200500484123294710212231942776532863039295795179813033400017655442083250927674107429365524235626830711708398339539021234749710570519533321807409665245098143750549742445138863387433323564918025603250040416702907061240047476316128349591853804063722304969152978034966329662520610361099791409972602225497898309752499933101121623606093664359422599013846738553479675965382003347967386145377750567093375965896643908483956986829051315193640376758222029258422230086389735450636976280467170418972534244947806019558592494197202201964786067409603493154934232601481297040761947702978114939954273737960273802003553481901424200707618956153867469233717373992522515980393326245438193704638204589123070727525958509556662410118727361989260319300525964641772416020531953943737504239246136076475211766664200821873800780198350634187127033499112396155654898439479491930832998604009239480420927264972089558685545419292953346906271395504843934429687421792931167886008251459839664563275276422524368946966246691068052525659958168161898896425145379651633737608888424089616323737580177301726201014072716686533968709686466259231841888616357632683206980467785656982071737418952089701727084636103264782564581740815937247527225184769332985056672727555379206123490574122303888746581361140036397602665745607030324848851740649010693547028624968017377057161766025744004212864789705482828630589765487618419019248269508409862927667078805749309794487980621965704471954040620738745926521321020825423785840287777203765444355476638262409883249931033208223284898992731889848195713342124360197594084957958322310954764678771399959252600292303384833079966735671705937852862946555152785263463833896808708452192674762223187337583269065135215515562974435124726493344467368114643839064058577239305270379776174100830322326096835032491016126835126108703709243626848510458990032922756993058309046533266244508380131122788453411177136608320675519061800879893059638189956755592743353377867028616595755561393979517990358426668698850204399490797956286714390342852802741996298075419311798611302336836123558753840763851691579349764608004905851269527628701416419863996340983617221676398863766842517631347675789304239330314210379439320509923478692631728669175963231976050927960725146529010319940948772097123879884920404603466693676260522692421377894374468161133700220698796780103273060059189251010578593137792188329414689148596560570787027673347486748257770302649015349395367430920850394371313652427960771369213636305947159020056836714152725367199059281646559750118761998370942720432717296970538271622634278541684264199656626330157927898942045879560122653849242255796098229675170185453190478554123959801910430849456675957234498147497882772809242271146642046677115121281973046312178444098504813377914437581609134839704784132646660943028230442688100859654331119742526390169786254315530874991812934893092079428355594561865153196837907086231179927087797532303539760067844331856934800927225715462301516107575947528776183245151967505367485774409601784611862291764491343998116045747598047607707435068524484582177337590582790148089116899462348593079869569237844920666060835616650194354923946227046211167659026294411390007673355921368024273796843389176769852317983087074273788340111950124166265707294326507172987517975205440294482376225746906054750455141665097337625240039366270193458321199337952534940695648049786380728085124602385673623877413920293982395586906643565901564367356698167828658736427726059644097766163350101623722224531036672142460513720584226620529944601214705183231662480574136220562405526418191824763861773010888171817766570290260788033641154737836435682023897001247787901617884918224020212623657049806991515097349276288201564714584412249580409166735538073816503849164654390228680863488123101847243717888228891931286113831555979888952217016863689980236807212025140360372949254317850634328993572898345144086473383101316583176756641689965466411134438765939712775301246704206651159002282146885786502967535165515956870411979529394642133270253386480835576718169105694916592735930172186094735823272844793700511643895234138430632371154824299098145865623957211273724517713877108029613126871939306568804025707448710910568962587321680930532344384765380035830516867907827114353732102003977550151578755633392684053352609767616440567177096952019850417339303705224619203332798771015458563996347249749527597189249617997867397801486665797566456983394278599665611409811948739068982234431419491234622236309127651326884551794094788187013935977111908492863380845489433972252098844051325578547087889985995490531852587832778595399685184527945060705481415319455360228044638358771617938209135640555206537129705218208376804366595488640468391258978071596626035175066394875199906192502691134364342763667983514469768269678997420166990136249626198598534226899326646334393775944736163876053585947572556363502126801235997701678763079793520665548507302329247966467082050527106858105072534946240670657569194609686071432138551298548719059548178861242341606660533643957866685414382793422071594692986727818780957854463150165946838977605128527726197807945382946106915562911278354812538118854540746657187729059230502560362023476622354325677894731040805968391384357467083188672550417519735980618038839460877163912805802204240045696028147976405884671734355174796826086338769950451651093222199370496305356094801401667618402811867411570368087572555818065903791707687665655582512504459875175264360444370718490993980213281251784787394142307401856171711921196949855446860062452498152749593299671275302292255912822994323056623551004870737620539216910020338118936430045970886732041579042523207863858162736401753741210478420118709658794857968895336587461420754965365552088471852314126498041212889798713265014012207330747093866344386328918126873169114014729350015173356160404658500007328923376418910347082866039177900940196063397345827043989734137821631775076097154343790872193322957809418391590517484946043850226344026107273698343410876306991957749581532348810976543730612380040038775350855903791526567535423563536116076019555715096968821559999345432633874715499469833586242077546690728425557200445856428587451504715457851091198335065998891221745688615772467668262834961051294662607555121300784393468596209699005650722099943522936544471277544106906100978057217719139592016001489616385185968477252472568703817033952505062301453044586870893474862644992137806342412852696966422586517809028250475470730483274388867881294248058964750800259913405156055276467663077530820471031163545072512258840110877029260567671606016991149738288727663215838437530042210442629740125529409140914924583026536582897660288002899781039751469376401795943582027726860881623756613744263837153199536513654361122574916843959154331995135650467740416387984572806638480122737442470693422456719921378528341176928794925550038043663005450065050385361791778519147951147540729057301025719911208045358324104994484878053482883711816700512497547994199252813348891690435258293778024238052187401397029614594633195508781191780143972835692927660338983366158531570982579364463213118166288438765198460458493592828662562294462179421150695977913117517384955087263430274634366497680865847834638469504074600053253450570069978896937247032051068463385401886343506010614245927981411343632493765478868092261922112063512625562723963369143828399279267929105564827853801471481202088572822458985181787397055754336351506866513122943307721378610622282212033620247542634137028880254529433415988905856404670618427391902519148583162384321829262694500145860929121579712113177398955331075600466795482700012272867359069163812951948189569378051366184061729509852822521565024950979386867659260464094706690535988096489799703432030160978173943139712678308938368699104971863476457393359330805966620936932947010242314327062161409924222331790067479453379636545625200725485455267762573138109787294717139921123282889394045190859935936617427339874507854027851727402701890061785797446132920055861598882478536050805023918781379847294989807394928780124902802115810700752147657998861499172157890191820358429809084890514550222736743626357549381182351279463180516345902047741011917102171400596411163956202809540361005274964173603403501081307175142112696623646056922667731950088261106634139915909997192985819383256957628126043857544453437963281903382500609296452720756495706385804117094950328301676226938140736235516060281182870258092408205938116232933263554959808945524288211978117454148669224461334483145608703395285205906176471070969335458252312950732538940077695111705694135767412753779625505401363065963297951192382875839268655956543636377037725528110090781375288277662793140829215133332343885956486003817140563038802363594270450237651838512739398837279633945035338059636163472354332578180006705120257052625808836446272573180823422556075580991298281182728209959677312960133081669122801880052726449844718055555788599183070033293442285937320402014530285341125674086192685022226989323496506696769296889592997665610075678673527301547040843456475693920969236107097327600559235715765731160052248439986596901988694386560937428035463196287514406624947113734053348539361270017748446154675606809948308376226824599899745721147331831898437988170974698760054902360060809774587830415064741431202997156345327479659633092735368068489116486875104566698900769455625033854888535742601670230401764158540864156959525682833245977484433942713934936345914294955727793966300968904188755793046855389106012479783612223602609961356131180408467777401562071052141372709125599765643651448722980444547961037206710618487113414559193646530296673673836170619637929323430673665289067168920667715069549351640264536689059045869142707871579496443587856761300001299521259902679558022618685851470058469892777963010471283411164713955702955168491825801604365168034705414953680777024772039314263935631136848295397883315202225065393753136229131060414199259939700999944490505118244265907569901900424498712539777389225478818841049778582209852734499329438735278773973566118050899763520222682669893920665243709982618725228411160556579437015055614462954274872457592787535398109880415663227645298416876132110762824165652674099376319967337445120815738423312898487268054286886977917135999740228383064619606482169449736375865987315592375894353160343466986023160611731377358059491030384793602206269801183288658054219558708835036880792841469088103096226170570310937646452895871678617391681365858832656670863100210476454831516674040460824978643539184882310790182136404944073074231945157703461255073199054883903706243017022423291874632830773529838035465767488890333627161365358288363507388068185682291912505353606051775489055196911966916415427051505740808909867566026361466477286928181068533527306840883665070121350354538763222156630498292129431382986661738793666425548590453215385864507324254170334385457676357220499511645481496540136069539109150187805675341024598366397022039136328880111899641720570304343208315216107463727230398451258528655926490521113415084587491723812663900863245302449172329754161729561687678390826883176155872540677543280662888927441592075032946495406295871253205057741561242534885834104741832209501124966076392532387834966179591295556960002190912722789723915777546512187757664482299867104032149805204926132438598565580949903774014858755993372877308445214594592414555209065728322654757724187199880909885962880577596201164339343751230709423049849914201956157252501513018500164883548096871083828930607419461941295265865657084377372807411454745477025803364472358777948440589794593647775132580325611250983756560726946950418490944474403244882329229023903180890546047415281715230504588977669399997578073610905537196274919896566505354486469159540824984280003953546534720633815343902313927758744639321112754296560153988222437764382742506884366446557793233370139378731695985608305024304018823991695548375313431801261484706259665509293874482177007927681985840946656838302328328221098986615296149862576796761366444087514783282470013289867707029127776352396532988556164213757453424646679284120264644621911869391495857108593622240666844811563936428440829918679042806128803832912365926822440275722193656595209776613247821328840663550920040562859635890104856445623004288675984793415263573357692415136183179911152436729242508820837957513836828416351791523845333249614239918127400318004586320525621958350702802043075932696652881693982495366765919025147194728838393781731075188136040063766016180710674608308126235999744604703719367480211863513240260861633278861435127465336584123053807480220414417552026368663371196109557173676426371101547980442036653901638975233974892681218472284314264797120464746666537796128303465578241880521079977442749626686602330661935820779154997651648767586817352641746565146444552207031544215702977736029653498112117277715657873223341053100443661372934817215885272537078292113284335994172767513762406800212511924097624863972557654919146769614280238300072775527487122818543575464988026776440505516855028738669702836346200755290212410063610101313250990409042734424292920389157295706447889714113314717251239866223453505085082952903406908756813054824301363546109131611241807997816988861275781278755228354632064019973621088797368732369419334576494017507654435733357201685739018776429457461584702364326013425603741912248972487439216436791518217210380457349364089986684136485279187081840067867567976459873758712045237653633050734703546604926250077682995982326716466223634315016748211852908166237689671546013314169352575512595005230119815494246401524937339142776414023424693555478907093361242907645434480453404696692028491745958735708613542257830921394759972087647142832755248250262683901719779014717810682174436196552272674820835693161714976296421542624869072014333556523799449845440824189945975453684319964747013776978278861853626404156371843773767833302741069650807778630443564567624884130061030632093086219231228339227490172079340948739884583933911552348294903743134938728241181459659446256332541938412323053417669255399177580500590229686707929274920544282337705876200019651099350109336331984154812625860947985329470749045563604386080057137016647763522122760905935619541861258148835286962172279341340449803069797453583309911234186482615979103961794482857454314507264296053687224733460840967260152137885566035837553761766481327631150197198505693433657797933828057382566286110068968375427599803755885506894142117144940946600596854167738502672940379793892731436243475153209244306117317748903350028086417622960304633299613872377514992553034033200839640915995945521953955731183067606569565525667672600362384288206362478292956369072290976517213387529154367446722569036115385475779514559954078781232537885572818809700443121219200957774869236435642599341617384267876245825855645747954656262150993458114764517504584924906951433153783266596592760234278331525849506151081428586793493097579066657922463295399264536551659875676795857265607545736923590081542147985497596319611840684816756822472184131051300370639637445571908645348558818808853586834017226069634446313321643289102106331084453740917414145192070416024111447850416583347585834744178577946266775735261094911850774098580785797974744234889462954758891959850562191046974041432809031520351423159084736424331310310129041202661195966275717705615904128691158622780200064502689248063124870895212407003606044777410720001901939403074494129512077657800519692565706847384267794505854966877390446845204810518801606933956188860688619016790720630021557700190704425405629901043412922678870101749787688907595078267291416002715050518472325480993948307573671994336381279603846498401122509353595516062294193625537962215244708658104727062689477316599808306670721260385354513382473368888186678052071895973026981741607733522167384271045841305506616636450393161250324641104758790144119567950175357079020668325664365900379549743031228695852060460220005226537598119748775041688049446926599166885692392442488568856545623707705683459903337200911657390357896662653898470503087673344342153509038082979744185602571994290942924308628906634418665051463850291902406057696461205351567544484173832674242708994941724813483556137994777051093867930154122510021840866168740012487534102426952636933435561588115497516871625325634803261441777328538006959415832468529929153897933784954346493412343322498445706877071143696343552612331808276010342172146479685631586285264393050948198526777556506795547230054969867692566832872627741708644235992345964609709494505208004539430801825215769467298627901845787752956351577691413922694827855010727090422924801110817700907006172169045583707162309685004795345615026228248020862273389634648227559131941446287447388036324458864076383462167845121946551670587827108864325255183182151469071710681991905152119913725892043226039167542322814725956510224131995620703877123770453369973599450117643233522404349970021834972313231893386205991739438536115566249712751913520390501784866822615614221248506419768666885304423639562601001904813547162918155746668398320667065908845997303505274269669181855734086139411364816862144618695422912754680809810923066572139395460482657367664355699978322041882338195046436667569472730040721085548351755746272690414015970801871773768949817681009433762659631123075353554297860596237312896795512130836202726257180986555015725842867180337110908872621473391655703438060980640469857345288466334579870950696231910049539558847941599412028428895544798825129230646442286664837508553092978956617144291117472229385782818715168025096020241306756536314235009275289837154919575423799252077367203996837299754917104797985827624801131280805197171485278559676759191750358234879064019170362322070281255121606799594880691872514765368087243837389482124806573521262025288090665240972799040643052751483262079398811932724013281802214984786043124705283426718406249746845267002587727636789198006750620768620720860404890705526778927505603000011067889682357718230290322065609900617125132012744034185489803136217562005310223011404513638482753584037861010997558021078778476599554689691319622642019183689362198115436989470063075661813772542632183394941037408078197670106772099573649730667326766293101637710486425534861201064872799349774943508427404888528987281936534263155924985927139133823699489270513899085618685366361656899343213017921079637217362017273149583227945536120043317381557269413066733687065346627896266389246462656857595827164873308898576493710735923237195922347049542988195018868988093762308772066869091949539865845648570948241138254813443791108812762595547374219701789671158101836757672659183763702549455509802449279847323857366981809469341613876898329902727948450967630778138406384790478914617654438215123912247464692404194956226548419060235129607471401103367586743149952525934511448810523237917888603205030551115575448667715575452681487803731971470029946145907042096077603979507126479190329324575876552807887016999794132690021054016639585127523460523059216422885400747643304975488845635901459400363717680879773660733475734407270072981955301377930522350684408636937081708387714054151822515547207456987102498269128574544938418739279924224976148857975656970408322645924169410614654566286965534607715434224338714665821651406301001012588214389313498088896702541578800857416582032250069034706867926840091860613314348420568769160186470727849596657656393414441705301621378727332319768378926614648520264757131718719540219660461974344785945073992635123816960476747192066343190885147020304599925653557592456745835144361983101840987988257049034614328303245949189487112625838440454775978948338089036917271557143082462390091741108446588792987303681213388916663242394822601379638877636861634547520615217013869831271216406218451686209055838693738384059333820480226156381981854261116889647799195027401120630108426611169482111861832453519406999551436211969209126297023865208807276694781542994260495445358371892368422306061359134154638600056263191928764288502880548025825199876107525580902526987519705160744713488089211015356270095955082616695020305569467289187298183922582142373585658209437000203295494675805543395950432679416087178855197614890962098145647067788579698666396311624240740083908848762206039662423430352713907233700845895323933843621582842081394669389975409183974295340614012296965134173068036003646368964793868817711225695847518311863860223765904859410557331150171508747650729496319211390541851742388930621885166202993079671868871207748216366097301482224542261757446502026982748604933835443564948393621880297314308237997964840321030032887663817739806191506826080262104423103925320971483271755422354291077934075409817469287243542775003966408000473898834841580426363656985553738735524633458332026155453760061165165581721809796587617215147553207517901134098258702905348894974672304563946944613926791443342884461291272863861743906079458459762010531420026705410025826903622370094582379688642035661828176441130427787195226402953851675053623343642983425438815541393256052261224692791300894719938227159979428171712390290908292478725935236393757796850454939840929662041559579503565012320408000943241688018045680299817821482971244870256173067078131971117617280570957846487148786250888557535848761927672411632654558755636821190477984302016814289949244585778637585373868409677731567419901665568640466312000066945919013014429674602154325421889311442888018805619857622802504162281350339760332168853764609814109187324071905012776171292270537735092093063843377603412219986068130547689927475083473510858722465155600456705723418111936479046506285970520754113277775852305337901818283573765782223213390160482085254240360762259506509637939463264307073180472201786261363900408595597624573911817876935686734573199679226692002438091835089518500084347606730267812706855986328522263839109906708138465950239585598629134630923138126592358675719375656917950565784846557341397479877065069457191395844629914683298487785932514497717303918028128513972217369299614772129690713525118317298315366361116066521642847859443025555199237703387645351572392300697405008902417505054060148914236505813842064137404124607989936728310118575432101794514620183252246664975319958566799484953461880112826593214641338262339748685591545962718174430243574707195343732442351312774288371256110491790492594819365757493824852273450654845159983738446958088740408373227620994022139694891086839738599025020836599506558329763221178684239948077473279635390185210638025650169291886204841625286546700477915070757258244767973128280678431003804864623459023682443300089868489610927798522833094419878043092890066674466737433873468687221946302253829981612278307037398361914520545438773102056299755746873094486897923952240624111593128084772073832002442716138413646006594025119438535028204735481527946375474191540789524510763882932576424832432170835096170573038047784271538946392399160696781546196644889891084099383857036639120505648677715318372841683721683790811775572006801233735562155836413938444335201889370317853336928605904681742822865774049381168019866619415489632642058327663483954358528190666749880784617792596085015046033768650338525745468194586714738765454704515823670084606916584528455466259724731405388625546958138636983373649674335952755045227010204375883035683814514303711735643405197870822111121351631469968565474840600765980090230679628849136518685606173487951472750783290589555767871824271460538728434577518126988425688591050010599529299894253476623587051801661923663561444993608022285685308100847387811677849772401121932412393835464042665159982230444271488284117940283735805481300884054409807126672216448800866868810599288440325708668064340588097521064946125075907666919320260039362159230804842941057182744411379664024422263169921551420243977212985662792317285453966672067583382154178780205096863752978521322404212157242772811485928963009797916827212313000405169749120173121803094077938233800389546053631816666493932576445457289383900623658539656348512030434119505816434871732797780185157840290954069275778993599829594982879006287996852629234924978341515003531757895871620848540026246825083927429114542473567598294304212050228917783231698041136522045113256421149963374178230117036774041925093399307286080303613315764899078015829881880728710898233143815754888680813737107668533509422303877439134750983433969435740314426066169150493472363926445260099448774196059235154491317013131368244526269367632177727404195449881599560591585187238486013577473360479539781166870437597824384713686656945745555034107739572394723967525321453077875355716756114265509021596312874234963265195296476514518465258569503620228189355601094316846108762243494236861355457023878173442500072105894544360295877382433877063378572860249455834967760159676921072508092512881601544208804558654159616457824669915027244898306873336243765915473435911977893725859797637669674644697834174425899692708745768291115059974794286234595244384217922127290925381733387457372784365690145450593876784614850692508317987714776275431758170456295790952751594068999291253100364887286574679326174357901182894786609765748128259719241804315596797695710383884717708186306384558099332658051760354138796202386343627673188947215804506939967087064139100048008704385570763983318651767257017286781796873440935328887044714979253775567269522350913908132530180286307156791304003565311726535622535044099307375464360150666925300645626751467985826991095770708465537165140444394669001929535851238940312565598433678519929115765089667470723825766569796766395711831513695688474646640997518742463825044899437222286558825273817622097628645371312043981336975163372401935966366584256025319101956178533146099330800469617543739085153707292818942888460054087376097355296439015259924456898332237215639975625206586046635094534587821834467963168156942611207082577101123267240260356680646744772598176381810291778714223653608268419492206159845086446063977537221647346091242855275963143124534961632048569858458087538042268848153781891068334981268719775545675891641991482857245841994951386189154124575889434872162902084904103585081935362418853752839279294613184300277795320665691349581019651816613412567424428321193165225266140112168624808414698802967516135362518290744222129678244008633685801213273597586901414332486591890469406760885106217607688013650210566310058330044811908796247983034581534726763255033032794429096793301339658293129310498333176537142384026188672987734881901255382176419028059070968588495554798627153808395693505487143508757782661792473581423016312979612419520429952575572888081802082220727167820544439399986589698044775127609926581971220262980116536294565058687549839041323479691402880546733567174467756609241004139982062038329671382950832420463175952453494640588863822313222511723278755131709819042047038981614210947654893470194374516746619341188879443160244992642503297830604987674992159025768025007228217148480102129350866220208055019763904444217605462214634883064322701904009762999670507706045524167076326653586746533653282439843905298429570180881345854214769726161602833059453092719927331952179893825268039223796070388470188953600853578719397257062374200332770902995956630261298945309171113637898147929132376288433762965655458060429947882460429140161828603982321652794408684085496579648261559490308099351325958182476360428651350312556508625977727855493351908142839792995544148284284246031938088894253345466889824603566063195438839949559842204827020900321317393814239193086979843331950074319867148529870019971990492221411642498429044130999321030983170167220363893574719387082828053202194727510011478910979931866705560540965519119868857960491042982952334778388356324424101410126909811792824538040317110717975729364505516379397352787127478190776435210064738647278924839992758053304919223003009058072995044032085612931260780314036629176533490146996217744051446580546164122618763184921181392401837418460531097604552252952350292942582237373324558125958242715430843463244720968201054019830204403259477659077119590986204331117500506440270827589820730030371862380998889360953885979281866282100945301956261834601934706959864887575282510748613723839283324236910000563832142543197736542553634074378464903862058604026863604983036635254450703278155206172953177998174230538639872752901336240310603232921669336912012059287775342403158080667170952262149400976085311710453929266429506213440207630441800600101923427954863788844522890001702054060356856277072450081656152727172108495345288512914338804624529664013619824367667256889199937793549879298991572669146598471411125806334640599529821605291715744768161153921203599065794841071882886874103755008620989118761931062325200769186627216368327875159594574540056622599079501636952671738232750366820114073337870165032794524046988813163776302212972558567258417041993930763910009477038448884360679469715924256351200143417398873774219333472879757846551108688986479071409685897442378651850453211114712833271416230803500862824721029605649637416004431509750229925029169067681476932173612143950017616294598324794684784179868578808192396586944365941500780116027437282321702274088133562753192644883459786807064990621751194322523607620405039585454542989094159615095444232182585594897559236358051946227215162341445336263135658968847090709342580341461874594164988709148596832511837036941327900566084759456120499723515229181435496606124807536043059593651767070776484500954697754616188796050553056038212457305050357316891085864754148020511472750740121497134750857058830083709364169704975434842115851497206207131089780885107987547766112006491681414856320941928373501781948547119724712157673412021957404270276304575751333530846274644201173261217013002872690991224145835850762239396235740654812935985387691034921174120358626605318891477032749688204978371662057183929624142045320498764943426761124326812865901508540653188772912590335197599202833346591888877994585501073772925797792148937315399204384412560059168204008194115990768917976891243543049403763711147326095891352228668083864071354224959276008129712830963980719217206523872656214715374209657216018696973102782696386476444962937051446414795455516701377417298503615867403823254885863434819063049621723384647536131123394096639927193599025866988330814349958102780899722121143575838629755768639344727095596573668772302692641343979122766208508024688542026267729887923095621225885182180200238369121735177003345346608278275519732144279323269587300304367360870318063324877614952809819499763204201740491018734166793758988532999981442088398650632476473362934274391816644321154626468700052578858759280166171685661312987228582191724224014251490179551802030304895433460744307669603134688565389310705654409236598692762086500713585689474566137507987111068572056232134125666595530204369967465223275072939418273325583757734985090856535464492039148115447115097674339190801040368241728810620870750514223249857758136363886478287560756680834623039994275547920593771570953339698566954669448254284809777097849719547592930125966968355564002414541764377276130982328521159120735633082068111639850184207837367872768952276914281819476033357989007900857465045159351056474441886296897040240576299585439789681774756932181087848140570208206425015854266837485450017508754475900073459929165695177872748779402191505250992272668555059559883763524232292918138708456802492303159860954342072019523299493662744280567551943546075154079197426820988020143679139089797956778453295890124419422284138236203805585277834165397515151245564876579109473661162553843300630182771661050069027142457128514622717125141533282532169344285503673038546693838874823245720250100027999302965667344314624938922850713664722419692913475424513167712843574245842658470993380063527496755502464819252019271609836659182731847012249259602405755480795789217129466467543617839671236112892054517434185872942827901549241568252548485042242889763562564780241938816012210367554162470380863734804388361731039836977136127308366839446404596001439803082043581712828958457329207471142107563160776908071572093068273884479646447735628914880335072880327426962120458022914582519465857139910264606163701459024918652080503015334484958952600987675771288500148897031879416141619065630357966212995199874579676222174393328882872884120515063365920899562763098957668587449834154279880387102777780186645643630297560444340001158650236000649013848808981164318173478267073173020644271205102398673838852820994918247961735080158085398490210483114608190846372584716540191625068747410966794883771665690633194169962411921161619616959818304145706248391182978963789482109489296053985159027437788201327440405370917657083013737274053403812095532996988115281332781780762406134982945836687523226366067775109968161383856165954431050780857120530256164708376697549931025893854609854574511357053283167347087939639432698390485020888144300776564527251301411195300049638892361371203488214069458282731365120563285842934865700769787669466823606493021977547933325534096713915387582518133770123163565204705630631127420484084347653347452077684097994478195169494094174792511171687770904907915332275442308544617556582971208354181460984268755868558748649384649553800258261266699518879007142620188724069793769651643159482606579804652506122263136722501701038198348331998938531437021419489706648985622097053675833933199920690477791255451111673427133910494264327913640767319715068841752764579020920892329704358109618146689329352994000647988924569261832738157569656562804279621739205729047241833333790885009270902856103476573799592143578521920365109998323739945841478941658080490930788476212189841246499031842730917768231937445626011124159165910977637139859850095011633216587161393826246265388037045819283094684748706459923130626624765892579795471339749875268724893832630576459944816205620499432796502281061269325594292648591733691821425337769299410480357119194561909169431131533942018579589849554294930986720436653043800816141244653865346440817686006546223688449983721051420041788209106495729810223234916766497858743397576205532614594057812203224523216043400284475642933539792239593719669250412729863521713329477082572432129049818052274995877379046343458461978589397793671489069682531610746135566638561262471077813907694529985630473433156368624364551289447369666962265638150564603063762233446017998874357679641736960627668344738196175219708734695508809535066801931680828010313542710373049935664054042738138208927164474021232423223112329609838199785959695621679973946433677937271068655966288704644104787145138944666988327913999486930786121583608249055081435809284724768464323329028271911456097116803308723007107625691992452885533262010695562826615957560261799817805820779560717164308600825666034848286611223788936591318427985653808296227787830303427293048698752606245841941106533715734224181186995831368036152644974787641079866917553072565975395420623010757124493252776443848843946578768350267234280036138436418598891635091321298762514957326163088185571049331792552491904209407115056110425354197360867799909273555034788230511248014187060374225998356886462150808320350939163570728126298999164439737655028749344539037122560084918554345887605461151928219473682759296423771475987449424404095901177967114804809620946596181295687257808139462887765367654491347420735665690094827364012918710657867135405613147151763506051849908788353683966718778607262252519933596287341259496502112984943212396030955819503363100382650000754922560297393976286632494873847573206111384559028458304393948878456638979120702489505522734933726609002448284974808776027896508750879312701888378227755570528248758880485207483948948829127038430027692444433852200399121029394037437615883532069173014452693835769539816004118747059500034477007111613126576644258435602974355711488048415494495814407168508964849287909140480531828280654480526826236392659536715311166428925689918750695041864181677675586305451328716572939116426015337859950121190827012598736926360639519596594022983731505817255748704971157433901152552129837713351457048645709338349563928054562178482984185473568850264328139472844476461075854647214457610178150262517722679553089947566009027738828527539140555706904319343744155596715798012446919765102624394392412688660926674548661594046028119120921701104222033743265023110619758253028473860185749066499054984864489070328949256321665584644270060113083095829264588827876083584740626690255461685577773460533397312351261491922841608798849830998131597798942720014774954211217709502785170136730062039714344215856247821986958366222637176212779741164959037614304633445689741478754096416546553586941901182948252553956127817627165007590168992342761196299618747740033452006599857626734094720744959689762475518795672450860748140570397539325820207513666773678543425311476171066902558512072680794230981501486647237854736137965267407013215971340190029367959279656130181719607568643971429449164240818639753013748815737246662344265615850331771107889692684589785411352845374662474325925968472274509184976455371915282302438449997474016792935998671089092529057460371875143355264395973661563586753500502146181034885952101295927303627796622879273757824899043928660485685365965447117327318742772181307536878527397333734880263162520972451801236100929153191731503912425718717516683818036812516048103826289964902147662279603192279626123754069232556442800180469490485408071157247561290180893808059621093321015365842278637429095638747375722708522676004493847806933564343526299494459438128436185679938182231734094031495785912247275414265285383430812844712125827124464472744857584472402351052754185511066308066721870436432123100409705027931182993760413863897744239846365479066235830143335351866890947952210484021547076819093194795890482903049427629552418147942887455667590547925830116306337861858472465715254821623441276923887704651041445998013478103744733488733862262380131024840728509193349058345328570848049667513303082311487412231556622861186960176901220911881487810389346652688475078523046573469732395182459241342389830251899802948256111330474987257654123403008433701854873403764168632717737157592137487290057749254876814682314348590298097196260255023525117319354162918996362134123739229289716264919957250915540068699910464930028255851826784842178556882389043856665443501327142334613515901741674506223972427670491902186510112548426692665970027174188999675662315679831928929628461551672921866214812300102886189832381150461855567928857574729872858592334734035426000742281641835402211077836449686491781319274319343803803316241154919863807641232304973270521358499300343252313186866517931786317199515243950258704860619122105907498074051072778570637911633225975140618691276599365541442940240871881922805640045812248025389136726257003487204780429933327693604656734262118784126503391553771136427869318806950531663670562396252625242444652892927260958588585397016852375209861038155580341210972283754439056327342325461121120565602509742631498963268582925253346455946372496508738070055224879333202112778411481253687429783791783268746761751413149574331694920349820590781628668310992782035436455632609055915092887394224104364598022343410969846097577044679537032240950801087352343592543902259156035910427543700160949014792353939756495242675551043985216307771888382848475545871852635725599895076930099514397953055625280127046788115199485852829457707780070856316426192328125068769583754697875521862431731121962016860396044913580910161438088519409129130027465680419477123037789489739162901416899810931513121247593333216796114219885117201700233007216606489645391109766182002701840896690279825910769341673751701016672762958915203567003656471180083517708618337694186099274837821675334296647191931140047914298900481709638979549922579402261205477202582408338002892447067389907196776516462685265180864326771988953300581008361461857525347048780693522197900757106070857845303203019274492873762314149739320899766325595079455575072702066491656402018123561044370389738260775494425252833731887716640139952339298900242349527027731542304486390174233302011876452457254067301471001566566228863441164224703243446338920377775902513768605681882219271388902147082575203439875392638510970261441138312678354813706503064190969788351698108114053350620905590616708776341949461934833168392725515789780689103427619385865956560899626042255490540869528616810589207234303506324697806818269958529322442001726508388176030002486602444504235296391315285160296078707129144254546657057759753092792870671009554307598899951156646121994211545210088025378161211377291878560841231026206859671405834262301698685688541813120116813063558924796888716657185869615254742032561806346646707043654063748758575627895312058734215201755154696933535537117064878243070981254534123664452481765478479373754481642924737769663090364160839697184348411302009417937674406180600447703247488280030859022290464765335293033707449454108724269312375299058183454934312668329099925583958656301893728459255157016161668787318838718222102723414771310653986069486702787709110548176878037341854466441602795103884193518663410560792890538362765930897548262816430084065088411220629529269362613520485397555346017710743446900599720923883460567719679641225086277320081935305014227280002083924765140192148855475263734526980440107144093744473664693330465410503319692054199389663341313622203876528607676277446327079019817508844255683735122315484852628789656437067110941386768855229108845571811773073990231037275519078157539529141166074773174670386066205661526369687244200167695891311528927981046583743601340794074552400710886066988719777926688185784563955337210949872404085706339039221743039865022544941893942581669297997464789655219432106709443238784028146119936240644378164916919387174822147699228690569218761276232701918496288223835162378990857777067862306187910071189968101103774877428782872643356195291257635309335328163270769098899029264360700295778338869913047086535705570237834324740868061476992485378505445792501707199090422678603072657426962650042032802327154170666285126947685528226470501160964767092497713933027861738729827124450882999761642434309121456153930686465515398469695177105264615309483466516781638946178441836391965936892952120695616566006796959087718642421409015799561279431404068321021323104281673428085924903027548547333058111452686051045394843265537669455927046772958821076208342144613716940825405904507423203185492704553285486078136395660316843211451329218764624074858893147538777387784835289016249190696767561707879372779878779413409669273310291364091090727607733513355965786765557577061330676036325759421634790523450641853188787032898218723140217696384562693477973533237155129192988733263878643223664318930388075303347362363770255757941348964379499922533664518023932828087078457109707409078188130260790451998714647682555316006860512882644615956564439503248552411450832089521026814862065293300041510518617487611419329825438945318344276829545095622889008191789549247550535502873356160359078438735490809033599525354692856572909905310255322003320215863086177994216595701928511988511650381971753943217244618138634525094299546418842172695201978761105159261049863744147185264198529186922170195533176534214506698260607939002911304809392514931029273052600803485494853505082276278940988307992737402469441174982022903817392193169091349951254052249986795910987994051394312351081313234880347768472938392191147041384154655154315172008593540017834422827946014779143822320617392199991078678401173890752401818471032115207912869533338739122632079229010704083755762620727744382315345697494769493772304326666336980458199317345273855269574873598445910186277580415174892245917479378006936232646959115261058232794695369186123791693451134378374407867471175966120288709456936029152900549996660321815759734972021240908546897842159095579436661367073113106276034718968519043961657164840985776365287816200414230370329049589706430877363721079933819676428730202251760620877566573612241925947508183745452329479697682631340260784542064588476891186310842573562309917275779152403545854179401866460378106332119137869687827541336007498696002956241889627684473231034648967721242636162265590609485416887641490109849958138883541237501542813992585664254142077431722555720864285170383965753359860619358139082548566226923216489395681230699425897585943847192892993659028706788371307360101018529917425347139091356223413555215495463461680445977031991337273282726216221458750043603507181872217714330945111812815763113095675420577806206971149570255938580903998830440995443447533561332348893239521767121168845722763316314949922387851285930626331219347234797908478046255647431628298942167519799142928384816403890885183692701804393577372688974084987787577733234360734910513404687865587867351774485498321360038135476480710043030134529091640078199844869248737732043015706310155800826207019287169246381789717360103913279489481584963140914146794415857940965887058529834792080135024898346565573244164887550107108078919978672194479224916024890757304516186282977842447677796115511458805372159406142831949114462116409501044620711855215814817615442716553735501853973539208914927638696054978024263977891865079198046006045284244693616605764434868423378235413035706635251700076286065115155744436895520674608501324523310400323581242563751823720490470563364161181497714305606646618790659775204994652310385649821748365807200106557662730193393957732456357714371209662960462580028412581743536943775451756594693698159075811130860796034644879118900420660208652161635689411369064388507083031397688401061092564933114898328749837495973974942848205755550013616121997260516115257019213499684685349148707062900142328472452763222349506465861268068591293925500623320167346120861327650929862234591384177415089680474497772912252688139082900772945293633118435020268446533447780006655453379923677507428181914123823046285537875771536749129220981221231790038556676933340293044692742804212788975168047409845319256519795817654532999240696141351310778722944127593138524672038513772000601857205994615379258371197853411391581501249523510086442275598758326239570936581015873384913715181758300155338430586584236270733541840171498785164694040675835076324576994348938345217163228397726299980139902085749493917877820335540684793375808642758645836374446046957987968162900955320460763499356838356269049739155023807485067638983134347108089241036085866286600475812047017060167415723700703865473662042007381538021572866065734070964173946914422703939440945008066169192725876316877380653668619034980503718236727928716702552541058719423250844164984817665463705344366457608673439361921302360059940675375219222796490292248537407354417247143953222160593922560684588057657758402671861189037589326481003969815311774128370142394348250527491964929773066051982591621909117960739051943572462464418038436869329578035273421348828398228611332592426998479050139934439578078444246615359580745693999227684466327340386148215809435885694429329037481426853744365469271773153487504732640102864350733759802734612420660519345064555789075820383239956677016460132463645355167894216956251932062618127846786596644656994647623698416265622845690898244530606315065528017257018824117285254314870822240574341141202695236140013053328203283627900414056360881128481147936745395640251995899682125646509820412515521508978273421277096381273464839467754751398592606384168295709374621324815408432372833330627622904222998650725014605518211067033608270484002462410387091801666594891945455380448084955063792697455207003165800415772210556181474888562192377052675096904931184816258945344594095468308713283872919132480301458000318991998945981918622058176293631786007305791463131368247365969541292492342715920230807501563239191981185207410762918893290920867460462781911340780128733920843273754300539300536771041349309178507026721473306347352922368908272104705917911177202109781200526728168183928666184012398671314785259168553871732650855588028903958922903182588991103743827743394531382702547602148953322979298796235008878882326463564220647890046534937069374640658412569098824430412338158148415890690916664014576852447574807532441960087134765723096027100169380142185619675801260772612347834148911801711948233299930246864718825463352158540735663862034547154440083188024072047574882243503556862284695707079887145251854696638316128996812361947306742100713387881514564819799955221271846291531630060589652631092181354262305344862061864136876977662586237331522758785320350982405611400521547808699252117490849397886231698815820437949772344222460934587020817845697110894655076700810519014460777690648159191204238427434108189355491612199760026958602101583804994907253809526211004991155108909725746160393718568771951451604506277321593863363146737574976877624424411735650929885269063763082128147286726622985904726149063214318840935045074155200227185303295783131551045770649167651017662827067156884620322779941507894299626205574712662949799881532707057436027147218606019729101265704763387531975057342545829804918761449549338435560680925953268316460762028339104567139177924123424056265309444987408099745639790558264847736978584494426807272837375462896183509056678615482698521343198417399460286904713269180039515237278531003612250769515955716290274708343891884406672176198442486431722788178739331612891658978697616977465638113427996417100997483350461425294496662493208511646271074262780049522972275114683942416641419615101367522525181104666005949117680466749042230527767254072256788790757799366880270303687538612855164565588693291970944794391460995152978268608280989687205622650771069376079116505852166453126673375990390912758691005627374042317176454478510273632041799035863700825622024353166657657886779037977966730410669990152957145032077467781318343008752835946886677853191819333226703563223689793511088425691783579606562949372416605039929438993943200905431629221833973283295614709323055490485731934248590954087744161738789672484976993619937763965652658477737348237220500573299147889316551215116723799452757802208439664074590913972297014032671452590762887744401296915493444955931436765282007713116141122707058470692899510583405586659060430714101651686126656732615019473965226978078441521526446158573675114453216559522721398707009010669424672799499070647008696372642027803008430306985031128192806973512020527906270730033847410051249627564245228278259505902108945904771316299011103846945667918609180375024446317436663421178676774618989209612197538667376477532228235228366950875798073384521117301490052345974390403516757198834455279639478346183249561309475543603514726878783966158415776317348093799882035190505854362682760829181697847034853378166031757485044236089510165532659465320288426119324838612394849504736213686293195843278228224575891081347680674540974815029118322185962694249548591791020232543442390750097372166133175896002604773212696130571424155165603956209532434425552712971800961196078498431521372935681648442795047373577175932785007766199495488126194003028348031325787751845788834484215554097938899805734566494226043809771236639984209429441484092902537438600697477476759532227629133592404537023390423275845609160914260717703700448976472469137603048877871389023988286355652988678621932237387331772995990971510435101706509695055269715556840507231721776545846210598975562257985108262017794848665531182921813226441935471242215584374308806564606834255333126594334409522745059251449081611838853254924267414500818995531392171592167616311898402720468831970799102152115023928882823153238787564967065118620152857233785573337422418179349259104493605345597747265347825297679654720686139129975332811592878179710095430673282421421665635938733644446799455908903168326519067243948093340999430536280539444985465170322434504806401647513542308529967205980587089841511389144889864892718734667743966486714492416485326221693028677675394153466182202604249112939424155035066918808215706325890970540745356621514842076026080565440381946685608046629402041370978156941822893515382239124672949872030695319854586227580339160679561207033262551346560128039952823790674412618718135842307142781908321019159107961792321207073636995069245884864644533559891597836416497383841838997157305439866092076967102368506675464869200691128369629330599351756946270420087743963440268633053219510525691419768703717736462428875610623689224784526761119878233393666393994756282216422750156029874366906210282818255387947217074173660942316248359168614567488357035018643670967070633546744837369387372719034944912786859836324381737250459765995703380186338426936341815680955711383036585336757092699951252338533446828702526584530559614924939948664850856140917606592265554089704366954277103474835343520833650625650052818800401602943446822978740595607717048540748098905781321662738052817776589388755839944450975550930276394986265035745402766618524755117430076391784791453092389588287818551799112061654546427964573891165436966888915884758162118546672833756286122718521269117979514745312554601352951282936203936365395555392667825339904465512881838730551017222647399786789076805281781712829586396498872875814615661288472415775438527619546370159148770646073113778137316284028939581875701088768876153857792132838190326984150588679061975308485314116386516296951603250368484412110435125524205970320961577689928066407135526716948069109644690777929023201723423467052519448406208272469251277072556042633542607323453789881550220927006154846585362249878181128035343466030979829614562632629312157975740167183294924203048824570761041083500647929252474055320263863807129711907273905430863048799592495923194127942036755001000135096800486473041109408793260352014689854259617849602905789563660202166999293502265262536856733014764089743329096455139006878377916509204846554062171969696391127541422406012751851324065557276607840287779427728644663388315624805759684710776044455051240667776446739204161080945180246276335334119428606040477147773115156323997662986661567509643005053665053825340359556219576019025911634515926281921680789246725511257822394275123237428223078670239717878680836081501454818553517527574629476921289426439832745686815361721380975751013647583799335530062590257563219819964275032252598092355064885845404963089797928184904756757180390984162705747816474471672634729586746435976616948087006269559826014110555403849932230393627762500146198116124366719200111501950245772780714770597121735428500792713110276726380649995298695898173089770997333354021954920183667407347344952765713489207137884765622721638301423239906394851684007854714614355655777759598749888490341146624632603535435262910492947853087227143632362982670954420523103939090835802545774912131123813477763272833200845007498424876993739143763909136129591504598268129327746056356050049700675254603109264187105751546280069384607440628407520827301392226186121745327238105349267957695324575293850165784739316689615623626401619967192202868797021441105742165907564796292921475309289054466410622990345982793507578515695534791096479608568778308986047054878062159983212105413835010703696509922125947898121282769749942801098921516898581287058706224608030324745376536560736013479090296458637651481317072678691636784517412150747514587420351582733984349317256810210049950260897955088987358057631181296702302880444752892214447020438935326613742947573334819609365985809583253718127826013137810051186002807394636849496094527985038461730843934969926368164287775869427692022907276162318817016717549211091382733793253143683371821625361995645833213777315816282978616959261614534008181933097816927240722508397838170666694034714780723567882454261962700541609962378024681868768471633817754743492414296722802177225124851587050711188517565436768441269478984447075269379759540338396629362969612592128722527007488045202881284540473367166180708897645201540376903085947587998079815093223931698439802451023891450383938890514725581621819876959402646882879137076687687913991582614393532543874730353636135877075028767132467146583835875743331033668849921834538618069636977247499232774674238065929175247062433289237105452042461994060504848468058574481464882583701433866061680010722079186573952276526688764318998569907429512903030934073273732443123340970947737820477205303514117940737475131649436722970398082547477752769722680334868720005826765037059972887860671708970131117013624383147517466275069866733604322109399504954621352885667857713365781110414386108076666073342219090917588451095904580347230527137091581279238601652230435736272409023940875171038951127418883587320622314719231449640136327631660529736951444109756622452894610153219843743937439960618433476478034456938940939437277636993691810105656700900583480458625869510847948548576427242525425738811762606370348227682198897565877523711141079878477401947421244546473491959342548722819097868717121091854816193508754910693363570116458230237131497260590074735146523118484319380894278188903611701883101826148159354742311651224207889487775631592102919136268968319739490069653835426745623008893069480150805752544589606967204159755871092100444328241019533641399531754487690431274845084347988321386768071660065122642036334033016808249920790708265278711701504126577031792948480247183442301453597534638032445950288563678792133651653300117960703744378561229514258953823365791929316566069217350274094833339613554820028284909866346883104035020220664153209137372734760425782776559619970446917847707884017536372074741881110850474954718821444311770731300364785852201405609910324253066397129052345265377557875684146034878614761221091639763231241523947516006404960185080544977580835458310790531606405120024336704890449446563933279992259025412062128708688675396967105572516808892719013998712319073642017173798616721205358916888898144016701274228439868017784987161139983078643875525881882122057552195338865147954077280394593434650530503640761341365225894600664166286662755418305724227271264245158719525605716818052427524064779028699845112102462411710989923016401957121310329727935671845875146643103421715459717588809403421618694525411778609308230897672545487429714771495380049452698461237458190532407539110090542563068964279458762090160086229845994786259842791857496269988534678838054837333174827885566804856441327814676338722007090603413341353974141307186150108878552923341282536324629468798314774990699528929995431243872038766808193890534277226536121548043202294825507688779748567072112570299046358240614886367368760299967822685565098197244996882285652049133044651277286316368798887698989012811541624209264729549862638496858707088703776029668850995413745073703577949753118763770464499710953613764333413074103604842722472802051311533277849425606189571892735096841511148300189586357996241195540693795443727319965793797864269009772628573733780485275491701197832211783640651590337647627099958041608374105830298347813940050922434890249956870094390055055558108727347424082015570898943991006997757785025442581459471534609237591120902397043105716889667862387791992127652313440526744309460406676847458214960837619844786513416825769157244674368568853558323624339136203963009258116368787951286043443649885569030631579177578907536006687654471783663928555548254693047705298288674578657951077267623036502482452012407704893407205770343039825689172373477913094893265565151792049236762849138730543126857425821965828195094390853038782111563420372462534953625490157159484530495025833021315037140083315662141575541831503132409538582895801547980287868295473375101328578451115338349443618898501993600041704252307820174734282017863715469676037942286420286030639278055703041665751074651527525152147732390164278342574993394368583373763587582699415678673027025208587884740838468286209332435921408047538609954834730013137155267534639467592586620964525631714965761605490051736728318300794936550032720241811530813734156149290399747945941736405037884415153923179368971637583961289689379188391998922624279433661622666123343251960328896935716481598080271264180878208664481172411362352730005591582297750700789573271537960015738199667414554535071836007413971715390060643386805271493887336651389655043162478558396350165467020264208785171127755701184363194037136860385051673795821923084578562931610215960985217888570848501027913281604332061189262944033895215749982311992083918682132752322264355553955332456321814036658467144995057699974420868026965307250020750696212259254553776295683114622312252179684114228903315187710215465506528332843253999326869799979030876565001721641615490105794885252703510131463962816193904926986271582403279045984997145644851230830358083867012822141547096438385084933546182281965182915990329888269149705937343040513616374074840071557808590341426451225999434754339478957310584816673624614959771314386087828845241417564471310116827664913119428199657328820368551414248697269545485727037144628891626994868019948744527957931808047039857909039313454237840001131429668506383661622914142345854504262130496802499800897499780298632199095599031584254051600718802689672396088540792392219777650584955142412099021969319803280842364054448130650191531112109558212524989526937092098099795389410735746007790652275051175938813084253573551394973699012536448615196540285753839400971005538317475859571803385130773747869666985184456931656428072597533692737785034237199119957872263238642625350084887578543472827891106161059619065653086262499401499572793532378778213270791908365761417460853292531887626555432432238219920798500111487853294454794331657940950355361957260293598939829651088902833165921437411486270429583236734957373381719183655696387162596820781737756827269779346031704066721893857886685072666388665673565702300827654138334078426763964016023553869116174990756327604015772306567854865052278977626156138481116798420481532010110458915413572514541794830159977941350140810664506761398302007120502914975245165948892388634636969059711531123973166763657694347268279416151834894099815418343855167419730552242491422209526776063181110302196198794606935353287024187530635362436493728473379033278133019049533082357310280751036129288567946247921537075041708711042544323637038766583594338418149204888501356853221691984627269931222213986813064024873766166555249652947749923413310157077566535459926142909733259860048689946223755831505625763663067075373314686680548405318503026743907805870541604024961872788348052038567475559028428655440426208129256132123190197065993305395321767835434349494348340431835190690425656061900277790641052613322208556951735957393378823592231679538001527343803201671018915196106490649874864088298362824133591838958650264984453532448229503083645696093751716510253504356105921998953515582906232986938762899796571574914245585723999960962050977016866086490617374443057430493070116499815541111334063202025223774903025128031555216693590900147286834661265442007015429500434344461922633888482408452336750089388777743291295406024435801989676626662400716192175760506085535467079914737999110343170034413875200384647211085113051096436861197069179224062785901135167752666237610589629948778280526878666754158074511108704524581166365256054783213561238689137070733655448167747230072669809863237484432611603873013921414012598662995626558852080395982067319368841656229828826489425924792588692831298007475968194975891620544569522530910429928287320816434297133794901794084770556494720317744274564811435012960157765758078935153298707932253209898960450656490818227511424812870747128985067907753986716253889062037385729120507637152361396205838615580112256558328635547738841615328830744820054668991437096677273107601445823192394787764031490402422447461366219678788540507844738008736329446548483833868216506573064534717724966198275328022342037406420336925597654473916841070169138934417314050034712086248479156801178938005674546043918735221886272193361797769710454056380089707989675296739055881240407273295971034602614098321484001971165135060476109840655258177121323121314953249292804385615706486420152808358369507592477875033070568347640363389595378234865372864391627231500794122131985450916859343024236546488491776378428258796824255280526219382027514899385559338171658655691892068801981680374763994594893349262540696602919816658253705625870067650610346345572724466562610333699414212447171435328182126211031981277569866706274358940523622396622159082880958969280995462243646943794218607651749444026291585635675724570627212762069764532365355259929072368473875922033353357184820355197955215720002835308537099778572325481425546281705605857195613121939976096987387597190931175265610628659156492261416910799508770287193810759269681441741596735886183358083679686585873786820713852499549601178017489687191801392263586467731534026684505284613415505508230980102416719717726221453767160012060880512384956784877064877138732504316469148693794206626379971575640429597829301073391241044310962604814103948531822492970608749087745051022865101972448759387384830178921811927789901726473280799277663001408644643018412351641403866576499295972412739656550631221948356124953659082647337535097039123425647873133986593605509473371254330467018758712098729967019522593950711304759463432291866811639856813365562315779054414545343317560386888781828504748643238891148845556061108466939997315630117358816106210247073305781649157892533976546062817608076402465326295449441199694166351916046011086534661023870260168703427926099900824191473576786571487445687575978108547367835688816145903387145789690876158338700946710741831300629261332791303290548479208369842442447612421738136462798846372665347333769502299779015673374387433725977941800957755814179260617185500004606053638857944919388624236047685078671600303033506045888268255265329054747620333727439716095087346328021131972261525880093650870691479290134356859567002034951222337258510618809816938531410846655713258834351751160870797541946842162118493305489639265257938083280431937613260975139535900506402818465038751734224842732104370929591037340004796351428587400576772777785833679834504702454482799950047817549523221999693835068992102119296755540589369944441053187836138502360773972062627423528378252052637782495153561111027615546942573879995261757570751030568505702627806244674604371175831937618488204573825253548531161046520407346662361034010673339241122406037619657022900603868431139474793343794418201730290849479182266850291517472699660939735566136443491786719331161399261631360428829651658933667655983671029416105242179660825942315921725040601062742679707392382521780002049994439742038429157219799395399234348308078324674446298599352067325503848889728772954701199347819404970824542987858841214024214405062564957303761051158307845799090357144977895487284437859337463086253502692879245485410344157658814706204989389206002553310454097209623327587841155569272689560168151883466368865180732523345427158715877964132552190691306763159144328810267902876553882145196925630371652914039703639996616627239829724791215104798273160505743353031482544703797637802272860163775738759862775500838977594615595967979918680926133215302291717445636646071943845455044848312033923717428181570073566276008217143128666139920502346422050305941488512565771581661057491176044952446073304449907685336894838125102359493420085085101493245228243282661547987961026501147872381220926511892883235892637403160432840205008282130039165962033491756786389720897772288549179104311603276849631970727452518566452580797783158512146253273377997383735620254322322715341673061456878530493934541389918848681260953207988761736749588442756135846128285372416168822935411013029456958289434551423083566587884136871458512959834149424288640782408683669293951233457296206327744081017325039801796681624046445442525598759084708727385774757035591607099006637380944674364540674166054015001923091461791257919737569436581094635458793828810272758178997744323659102656704555191288983497217874977263919225780532193702743128234552865126849729638914348114083244924732551213658241433289482978276263620381586997262494718802420580172492284067083688828294524222801225778695146924598650429040251434807640838412896510766184277514933983009104873592541379690242948121185589850356892261497614172970324356247524920330844552243177211529001582640740679891164379052869814863464281601006941493014891081649838663531316310945977834797496415789520023448333451114320317655026200105804230238949538334149810859540650793169262269362656025747479409106260677001744433865924989942254210483799592241432557929439284874805449731457635122050408290808518689193409395527845384146523671213608932834802121710080293945469246922334166319673748094071621427887994412205240159588091438828834616600817419205718160081548651295482615419962807298593659540843502882102519784083315288452952417674766032315991153078482050148208863190222435399472755086257615982218588562961188501377506553634920332239971264478159248214117780911845711401925608197932355073324537611702902908397347641379395251384912390082513302730056175820582054601360582072571306846812590472274031236671165578670443517434427579897773307890637027305320499949252055224943753239534408800590237769913222087524580947062385825250025284065129822803453101926965300271688468477143693870740590672158942170848175856502777048817394011306229880238442833053143319773876620521460421848008360194083223152017094765339664090284773139478797384701809253607288390867770149675228437312337647162724890987477559497027669780310930667891604140246175430996453294814699593125621534869431839024795308639801006872514822501269852976740243324964622910380151570701651743606452220972067000419398921174442338530966308716839715935928021712421945077984201055956499366292115668912884460125655177297781692883692178147470451110702739493519439766114292866612641517107335471015761093948532341016829052897547313456572811061547894395191092854592956340616041590629302755430293806330309884113568802143699291320995745527181797267377792860901295999070826098008037791754523599273489446622726736554137061582748806381385284981442087237837535246395476172189872449872133560756929769960452117335179432989555998104975247847040497521076033639411928064902715538995581655452458328608354289185808101565596379443294181011898599283819307342856631736955525108455543014523637580740393832968169035165693442208213470576689410280071833893670227883474041265243556402442221070291162746175681871256800369617199717808542830515069066129447384365938930635962439094688571561500320678165683693188520760744936656573344276558002633711523254406044968933804783072922829834553514461355302530420037238421551905959791438179719504649877506715392664619405252898306115414170311259141084403744111573574093748936607046488055757961972927263549636872317882852663875725632482401654704049230901270394951216885326157559487598254758591114832321514209066445122402897870475150552220788795396263972162107115169052574380034632621056660963698033919757259827058279540330629355403855207378216481838125344476040467106524934336952245225099793098268321679767728689955723387839952931117685144830367610038845096560622864925579162638164703241449230780324864010472371806758919137295932689204449923732471254652192961942385330307425796345642441197340906900138761522595405298278719128447843692722699404964989762945312867113502291808421255213902498171641219773762774553514271153254166715769186108789029073177020237432066997680527940238091791180470655483012879016039894790299119593986007917006260439426814860394917590348449141699060432721001611630236043642219069389785762056972392031600831915543405565957413155834768809706402449673407972026532075081635862966963995000465449009754711909548354507754196026630608254321494057264383687480344916164084170858553511275178029477749148577578844071128784678262157309366872295340898097149547341327994320655277967493506008781935951980121905552418657077851208827008387706666637583526088086445969125141704622745434926373070443257335372436904846495909198851340230851304646788280579364966361972002090785694883381057484260090200209282328307767496507195441803436951206477988288942630253083958852129458781465444520233120849711352330264470502751983885710695120693485192906716617020038455172196214894534241085588770600411415897577171407707976793110984940471881469683759837662344005858610312011448957670368118694537218787933761899276662630658173287226413301997726549140364725431127939433118312582478642196372919516985954990020494377787078846683882139065885006123472635011166105128904689487162008036114452588553259630037174495924437069378880237909386289402284624426941255853382728112002702445804649282695282632418254733440289353900938900779218348335064741357129955802076651674302006721824334724596662289655463610156279126338192958098432808322399441814163919597458419747984181736267738797905690654652398399215079623362459394103532613210507375521525444792060866109029171095704862742717623631238222235136233138670197349260182756908895049484348298071296540885963043254994984630814648276811441340273049635148683721544279785657486640292381392443336273023153130390054888557838121405507126245339685877075042787088273786017982961882485315702927328946158905613469429995147475912140204772480445347295437622806472171387210528768934356153425907744694767702876585372281493880774961558674421362979337116380099493033055435524722637203979697468424249592087327874126621322817825097403659220989352288448842634828081430308033555724432637204717338983204510055755188608856719987713036034818361650001413997779921490807852164739423241238102692992801504989300497606090505716029507180955535318677404031267353919808170721774705741154340636199915416890284760681294114375024691780341444332845689131314999445088608184969608648537487304384909537620748890035102820913036510747590319208243630610358120814321366131879385254310006672357964751286796581163320151159182196130160356864028394055136119829415851967341982280770967280436672916540795582456705540326797951805795619049315480351145650388547038782285836237125010087517524358086972559903709855146916696240434526610418080530853528052268267212976705687692301888742200695274397661610643379292083134010855754719876346114611427656631746602422191908318285976660122599705501480609025949339958422604127049155280319898304269359249555541649770139944222621868320955606962832723760446409478953205475162644380990057143132072407332076457573670386415581782655329273923091060209936269876949673245498335308357985346621191212877947965467821051912175763933950358844099541087575356646608576246408309399460437946747020751780564422349597737546016420802225980889741467074784630337409765613420980254138474101292371342323263291031868170570143334664726241877372545265767453189542605687798712032570320907028602766598859864645788861880962240027488709860472529858302292768831062078725154948682460837810650448889890840502118392187713130680413609496469357648149601421736366543019951570688314149678948167817280074194206340253705696390612115249235695974938567724762502339931180612634114914150674816351090831191944819204387710053872881125051972323128079130459703778888300066167737370432018904815927153162434037785248348709247064558136752799054083899461267358635738497027380621752655828692366161182162611529721638383400652651346465276364947763921070665796188681158729764773787207328141593113832359805125302179193126202308863823820003863618990801671944694426414547640170512063228297139881563954554569092867590912373510658220723747878482390326451200681218678039676219696690478546609342788915058564320501987943773655056661399970409647473581628423812051226963237961212175812904921326360191281790278609735922152557999326222244853139770236438827959147195880682526111917393483600691842270215953751030659225522955006657480227802678004578198729608417928235546864620394026730959467352633104717915231688475371585780728428041445291766755947855481118510609545768532310505367744713671948896719777569676919087236601712437710490974412408512499423184369552517390470750288342044217522265244246121646698773044398354089390736235994905854277162296794091636080803726041624969683130399207051806234109177924266057465639156034306361882755343615669415687896262537751992055561374841356574823903935571524991151255852936972648790543267997020557924672406015851713721854691177864341842877555575410104374977619850609996961060372865669844263589439862954442787401902917020545353040653022524205076756367117093087809705936651401090777603069027408672392153611049686562520710184553741479423717110896539524527582096624738059690893247568003467358012450745752486444607021063919962134550850273792023786661550436195387594105883725477745580686875999100582875793072232136674238233459199929718707275075180737990572402242095945464983654309458218679503143157895218140552189636150221880764720920939038873823810285380332183806514979241638026231311360831585566484028453439163987537610404429943867817249839954108993739175851180288075733344986380995159375915448107354170907108451134653945491343742371748822334950952716104526529187476121693935139185697231086954710081179501932613166448308831186783206202437609044570462404887784990258932807979886711200599663351663949870808023761729192567945538689387863444530891986528708357025124530345306636529742207850506471074216697872300433214064178469440937685509451774837056051068747786946479974762848867166584033524613981134573123123815384502033138378306177392380228578964355477762068144977378245090557301225700591920455002491842563985753533352715560953705218741486515056694646783831996703222701790552358632891746232841083611752058496202652677242188119116142676877873759666994604169875361215252296907984239869175503211419049870756197761676053575624448560435871828841495301024819352371931623331699348342917522780896424165230448379791967359077086036081321003459389166584622122274931009286352732705191173460437390030563464634284353325231691752966041517715527885557726158950708527164311796106340981574956085672792264658147012004141468743190380016919656702011079973437676389412137151906531259695609293625298246721518100592612748830187217232082340150126900314001696066547901483500092754127372780411837642784857522379118896090915921564588642283656861452111454957206253781018793176508084447525997136449911174334930490803030450917842874941060948270809855479384911074897878297866426387190606544524496012998942003772401681930215193682375124986083730624482619859576266667802814835647380998542644009519969963640974070687133572746955291615011622841561773201097110729422284171021016229912041630809654722446448446225468265360889583970578355215800876602860179538948305163358406089627403864270676598409434463418857445793381396161842493670734023443540101160668240860604339577128339515522010644992552625049349404941451521928798475879438175319865561135580936905359958099283163407862609615617346590468915278154649527661403562334558184512963681919725889791195308539009229085570221105240787829423540975381382535897989314637721031010935026799103080439822006803064734243834159344355256333493499575940549853096157541618910821131369718538665436830651756104751343250501307185023625142241635147869007809646124571834956881304483351642807718496834820900389635495514430436709357609202661568021830819019159394527684731102112841874810769152215964207635867152755377839907452877646051434706966599164965953268056937052348358678482794757422290302764495964533573502901978518108496502032354899427839900753975757450192680510366309849581985847287607033052377594622308571738018512119026292489226099086619468609105411911456903304116124909594343185194033485982663370559560818058024733767855306290385550612518542791001369314442744359762552666344444380348612655148438718785291675129179477927058493261025636155084865615808261360852838894117779789390598209566813773096575681610489399529596232863324612106468449373805582400478428741746680338375385408812443998126166222136487139261514448347635163914215426344186513227712689300852186622108723430407342336910976935459402673296789124316621067168145160055595098195360964252210171532994430987433660670400857280282489692910874679643712092474453071114184990114937472457657705533786200053827864081421384156345904707134974905259562426867776999970621301204205242999692106541827701407959287180646568391145573863672152454258206600230834126571324352089546517467344936298242314609798099697603909777552986100176290348276452918119990833465979864017711658349231987684814946247323267928228068555358252165315872666910639614738980724910269101314180776561538888493706922772480477884301510632448351196097964266216533291927259995831697142934922929985591182848007557813820175686456348070634436118098797821607958229409576945294302621049449427166581454068695063060290393551272064292990287749414846758360355067078951401570839314998151592869204915737410572044061689564308901833246563368405187470033496763384118173606663976258337961053796520079768240625887490888217094470550905762197118168215738775945832261522658549938942776213575098330023324034653212964926324521541815654584661812095576415900663904467932258292786926269976250378141246494888139029871601976270981809559682038781863094228023987024562318795850911498648848322343875005660254903935580970743139474278332999580715626975611098944247848169062604726540286312213008784829543921382185466559969636538490140335525248622206847473849437083946688129292906454410027096642290531607172391461059798185646625369224903257314071691351410603673175426795271694939485148734553962944722801938025188935171313406669540287332007865371319342398562912026376401079298042725905461873866713449367401804062764741032012227992951856196529642531144976321270437228238960445308461054420787563768654145365349292049944094003177069669025625186075293362431031662773728043475243452422580019124158499151347192532913734936643605340181404183787844445795411047481786621502655833447729879680858837732234354187436873867007488719948368884232592032560818062948364914467652649072506863401446962477251710254583623048718051727720614873628906479995626032373784542900257379372836245937926728153296588753936526855154153691503669647580068585176986863747089467323907647441066847407564251827583487759249678990568873872788788778665644485616764496051267588879702392119737922852246914067120871803636390460737982518600086841673561716029002254607224262022140058514682367803975329435789269986277611788404952333519761440934099467539061784699826601987182334252618942050513512549031111950614599648822608340579188904656071837458251153210360737249635475479609503439343753088826963628300862554693973483041469672344825171304998958697111336702814092963692355917788209072830285448696886456210329085921800052229981412993158401539736692249191606117365765293756501031198258895645308933128691806313098003277975970236506250915713846698656384453411208043708106921061297704495123148135288825458845805601614754270446433519888420293525820740723651088883691830784162297241243650143592966292398415008032142215893746014466071295635895775471236086331517156651632498413656449890892642806916451998638479906828671263997823839532142342835234265277068212138514954615494064465302336452995572079497447184974130738821408955036827547173755450324075567765283917512798309598236430258921029300899986354773180941160702109297611213283759425979277769234722077791632047800637237936182138358107674069789658826531278589999845127390806010537831961505533727942760667294017275181674954533307505310023061082289290618092695755793283004919350125114532162347417006799710686624916635141667695818056448171022663421423440748866742061581481317389631730070738649699195508675840894877823038566766363042895388856109494616074287407213277303170813814210667569306149091679303733973753974965703882916113527711616829244192018724013422706636978598588277168884604849110106489251389990909284835858907752745662710971523114549598531012185855182051333275916033794083224702854951529472844548344370306360813802822144747805659874903062131553929747209834536170349544941946789924918885841692491511540131221391041250894401186477931032318809132818583284416259418410825534668599982947369588813458866396018924133428146240117263510165994471769816717343665668667982805983725495772611532404763580321092498800801613879502156065421188768044919301421460701229405056485515212974192078819372087959869261763075766189802479333039581131563202018455038639274091136841576768418180990822363748366720211152592288047418394409486662419783570331778968717006179092953124032592790446533119466820280010667814699415196308006098458413599764510823783526589662453607378744696059274014499695761605993871521476335279298747950904134182014954329937566870632313603001408236716948682068813172625915783724641629760841787626805147587655437932472864091056450879179242162692297018058709252425092107892709109588571155567375270193262728030235185720640042645605542451073209247603440825884502782754239137806640883052634623744710026351734283932857310096055743375026757323324356707595761954329783934455814717712854704400262519805211269596504519688639394640676577965077996397925075152916642968212777539421668568316963041696918146322858184044796852993989710337865847522522080461489729336611296043744241588068209479776217101078583229695564547193773495840012922305577844597338327682302008928853406130945698184732624334572861212376366037506371433267238708423474217836023126454618223577099358010582790196191114021993129682289580633244539957056360421531475285514452415783042867922946369943844093060540870999801529366834717475476622947901537744253436209013031855505086014627064991243844113017541397580733504835965176145090323973686201627023329460397151371708509556113884497141769633179978948308165455998281490431549610688859503816214246396905480258844334490029814199605218788904531698836219500509210234803158972769802388749091054808369588689310175643518535096441115365069316810514329788793957191391251445691202554604787490119612701198676911549307970582430977324201114604357600871022041002947491308340937895953484451027111344660581108006847573637253994129982080559879203421974277439178868917786343442963046574044176568593907395539270727626024090538235080855333576334569700812779158467636340066012090567003464625540319975568941116228707605579720647338486013083319551196781077376981065767453929871679488315741214572982016851274913351088679635426775630653324793619854472096902036062271847541198632030445445264275477527650891582777358768481613608701757564568547131760995481778536466276135770103223024815548747797274990571538579194149604458604779879513738392567797660668535114365652624989471830522749719328895485692193942140721807372140006510631268881260895922552418559920445780307788214028888946319101097459542470365270569799392133568113807967400497245099593006853084721515716377963837428806665024108744460156936751710848778433700553572916976815594668442574633196643815181627498988035229893459557211745384185733554660685638913215837255336333919722516316766856933764818125043925145829445237578274412494847944472767395633734715463782950728137331627731717439192032700021387370240503485392332010179478258107261444284334689750333945973564346061970872091787566695315489445482846497414890424898636250893122517691629624728586062564801345449181528034218553894031020720268565943977816551255481324611540645502417220750833492600965960290291283978003804766803581962515687016855705050863642104398068112240556814821075666116560222083864999148039742564174067732394470637776982695778582741647313542530021378639833161327755666612501177817375552176056155449642212696089706273522243852147839965814747630552377952268918785489466387061678933152355827755120466091845219576530839781475890928817086747943489893844806040799477778037885895749994422510547866820952966623152005221736510383702538912949523364853549995794109131750493505135136818371294124142916166665696362866154789032962662020933316530066566041306792149765373237961340620516202236330322513719137848082293920848276394831337166251565329741754381809318360739891227803517556202306435334416212179058482007478863591001969390993938585971220436829380628143370224617521101298695244077068171409417896434801294676020609262199375837431511890813421390982113327065482304635539267171199603341915200466832468824995321164523548609966443913007573369497629933425839059899804766822721010753080342007028203972174362318333844567459882294618836557509461951582796284957410075274106934033682871425593792214950369258486864027329203845427694977985315348387675084293210103108518169031834341202848200948701493481006581805587271214813177440093088021423993862118745925663884603694963106822265662055914735140543884213489256272691117923026531177584205367297994762439592686432817492432156562895640290890555395192868404935232615768240678563704684213856370036425499645946534330679522810279735646429047950937076774629030933154414244532881120509209471836633281634437612735614981046108175483386433152215195241525977326125384277087361831904792151299569133348323475149812114997727096033424473900697938173489501237636796391046913429451992101361566193336000600959282326628755506639621157951978931651033991854844872881996061667352266858011287488777889390220167707362762118600010692757947623307839634179928805435057589897276680250173805971527036401294005046480864286990270620308994524640291592457825672624203099840039652584587518115874183633382202170064483842233899720972709863146136956542685150659279708957146110095019790319966656703879630735785668495609551669695913044021097826128392435746077555644581520351592465632117997073594924918980734458474245611137853990668444134432656262756055495161346416357370344512286045362030980119687220541498756798320456797686832220024637897368501519161611831313594601314881938124639728765021537082161003469850323808357549753398130758025624607530477394845956932219864000538881014183813645219723270780390154359349614483496288398269787236375459455634805413129766415012675879291820717899786810237453235239698631235832405194004229917978115169983877307742532660763824013030166568574645861284939398812804351066174837946695821382444126810140637498718456579174646251729906463845930259270483052908254746932986632209091379672791342470336407319696253585911720598834442913619174711526193469804643997542418738766881364046261065966859362391375401240488186284183082968763407258280029216185247167277832904370978125945433618961222267083357463129470485629263340741100236278230632428234168946700766056956534204095421843768491379327691991893372694910355614465059707810427027074359940839374763853027620591227250796798252917147928848238863569624161982863389277362695642323327359094811058080951907786742217716617173477907272067999848817859273963980388566310548510560363410941687435191319695888115681534338217464463605087599179887285655295833853439430536783078536305608765715739568056049452450805956539556235259495966181483111227805463474736073478344102290858009829143757951377043350762246357134912743559950260634658998339021206944466958727082612667246984545470111549897982517755206569464073304850613140802215210703009063797884117013171490161086365046959884144833066119394521934962413681652449773933032724535271158212066917744774767490536246986226972961143882770636317984645321036636956035843262344507638202560237101019773724132275351694149448179318532610219190555245328379878307531404350508095492429705882877511995632170330784002492024392476117949873866531165511473428944218466996569539327070108816546630458244141600486004871993177982553956518278539505214298623708914257608551248767005304707542380875593001351772753417811362705369993905130742681853196377436604507355327617771989079615706167318948922373856132716835989912542892627106619543874198289120812902565200076170840992709947821684142267317773305609753546209019877069681488818364802574853676983499111769930684053081359147742633007773040036331880259549019745827594233525427025608421376134906108376507603663559102405695219797308000054054633720657095335191438787628567318073002735484833976483351365778397213170589616532276531390933057837173859785225055669900395547502291580482106105122217650391952582540301068497142909530267623781932576267461494028491463402743041653259722854927992011787008676297944806734636948444895604520760659572185482227440447897499485006507934359447914124534155196921217139097101762480839115051171535540613227294466612038712315747199792091609036012716436979857788695480199346470059192024144641796524490429827700928492296029075932909850095295056333855562714111797130468046808514894611411425469339197436080998918657778248920354560509576634953145919710372958058155392558929341471227173336070386560252088818794325947541331314721047736318248048102320127417456879436511592625589825420159474457977081235289146423256553540248508315147007934052017157071998647177878210736043171427391012795131050135697370178596527068714661428106101005775278896156361916041228548584160080408910335402526624521072758048826845576953994402442391523506472745373750308521376726470611570660916651657018139799784394472394766605354481175535524306060776719549255091872834638516336611113826710164061999885002431175999655236274204446903359434310478288249679987072067871659439799582428373352295172677105191716237957194856726185918459724021374159902866816736487128162311299420785297886685284014845611278908679951900437738123374300093531659010025362613885472564058239767514524119185882467981459717342979429205960567784387962382595192307786610770460004535519554920047278149553953338095790439642627504501265683979096977554202200108260882743877927243854707012131961513794276863332808841971952350125385412246517631906755916173860488268660268874757820540243204595403864932422638797527570953184414703834554928589258227463316090155348381274213971262971088648264543275985345338439804295334143489812466633565425327144334793916292691382851890867089779200639445241814326138988268358421759825429625323357737304873294162119753073303655415420954948942268670498099646148198640850415391467089744638789771517768124494566068993196020397977601437189089938617464357461629365644137817565949307830928157024879614105309561017632970322328773804190194864128340223918175871584096329126309385273879363426441015830360740987061307394252068477026875467812483372830126124665686638464077321321655753459049623152680992303487205987942611623350492533400730119180303704513560876791884047653287069982553809241981104337711035627641448069908087653377949744799116048372757738641430922295637062100919540998499525683400543555156362244584888291798971009402054115581661277740968336380137691604951611561559733855921269122907964535918751504285035599086013208853439698989518580705156298656313546053945276717212654833963522383596256034487626410313355171103175047298037772085629624960907342427657584511456197682883727027585427507508272431177477905524963254594714649238024014171347374099794186944275235343834443571123935571394471054635198420915712320051423139158489766963935586753772815225041917248358043183937178153268031601327214729431817888713658554697478060437169086706509886630563099919678797751338528192013062955818662576547430890969346425228201407209788022822111990130128395916898802070241947249562466091670249605988817227164399849218611484501211089961499363791498241810176158938230192487098991818904674027074232072574055628420602956170456281473550546231825004066818630288934861631630700870720298957255698842467249011149544953102686662115148250997760583746892476939737462612985788918222193235444780195590430773437269854028303303934389130152397784697004441607521811646074799596309273305633088727878814015279345851847955604698316797102972213268970217590815625708130512544194703011760491911428113851909113217601100558999727393687428046793187680896941681327089919454655082499054875685756672498179670966713557849100870952136663643508866013575505187967802780476583548021386749242584482649489708054075158193894748607772672629731120574782196997811293429331905025741118738217525994970980441164524318837916768651105432300115937095447559677084717895836001408091983103194487943153519680231410881302080175714381062844873095428346316980141002189818225644811736850971430501041107113836111460024010465267940708352659903877058732178497779522885038614894985361011777362125949550589244332183788630246151258004199053229422213219425601492514397194019578711928512508242209415269907851964174762467679612392135812113449230092350363980788559479964850260400920470495314470998909308423531320636237467914958500921223926729344323141530575556178815405606290510493104218532390435927483551800183158810214746796775224440038416482650874667968619159951593011278755186378056462519026783397439092313626545915809668714420926198280987318130578841014519944782879806537161713845911588717024794559126153279890924078623845800167183766201664092230817941319257345055921682814451167223755052038831991188920697290477963137159016236156477199846179535476105624985337317949561939709613231638621914200903066447844102849459059873467904154675954077651253849650848815110687396563541493074341275289426077990384546144646899715991419902981496734819947447642855169005566787723158077980128773413234397201880304803148429705987132913277966077939001367056622012950871723377563160864271390140227533626076029441225322375851990503146418203941519100497795041418458808038433883654360947371299920527515921012115713648799973869531886622268708619566920903950686183659636297905863426383484312479545154819504176209550227606124422771458762239501629400547842954786689496170689941662930959755658300318603260629857760879664672449647642612977308680005180618990458027309007488652239790956664406844369681688378674338967506961396986929888876535955221257591690335522655209187068435198577118648510304725123183766144541939672007353271474197769512950959153262618503408509721466594948410574436480447870403384937085610935788622439506291480603587849208023550744549499442459176911866488986048229620924271512223287151271399372193810984018925462471894531610381794442463411776182040031430131702148623082761501968592429769054017961967072711998436372073343681035235088760126648889512309729886418065041128032540710506359212396971792817467249557538124553575711828144515817253528213868103426291028620560908452408121074915308452510529341850314909041461929535630530696746614679964311816359965280763342264404969541470126430225490840618345563574677631677301363365556566521052006155322919731617432136832603640731344977996906906750820726870416474949552828545579626398168438180772589943230704190770151368439841009146586494828833455491109339308326202774385954491524778844134193186009001504324469599115585567463539456393176922868722448487405911226803843116993130807435335662087074073921339243849737110246932483328574153455254872417831669067120229420073014279341491927372805701130838283586506166626680940651138173666019575186029627228587224581014566114410384109067395128240108214805704001438115290237915154521110272595556413890950730146420687971280464821200957233688230263503962987488491693956748248884780094991411924291823844633307658931956823857290114262796399515601325814636614010194463849536885418492498899273495636233237497328610978565287719484874380203784660548635145327832376313249685985172783962763201633557019476758168252732601913007593100786918454645859062653392303614164066181621213563367515680894248053914847084716493793150688742945693428949348332743832892485362278480016418270272141248227957878745148321846662996117042689824363685909731593698428100872219560026526636913063108465251968233121842264613801492144598116657103404827032170553839430534069311240246788916762220864608087972752889253620878560366823453497240250243707423961665654592258990237853125140527555088976344627065488845757506162900208933240197513762170378596802512726373058293924822951938838228376013416193730547526598196011578871436505363025968147513120564744545722577453881026272343116548837334637851654649860571433421444156856852467395389731257376083356468648925778172490771552897934767788981460028545363866397056513807576697239581505707006088575290510722630022672441687084004581039711059036450789127308751079578552806878185825764869327084697864464266601965738377785540427380458818216992125900639979404949883552769336070514742364751745734113426136656308807145562677433056785679173431671024947662715089576358828605459551969748018040317480770374782718491500212396360397459728984185495421518442200178588215364693860547566304816302319169390687404647634257183303542006458524150461669790407618959412714137501754583572672535267094279526735339531871990601203253059400212798589138339498408238599058139902057613954957621541418359754630090896729211884769638943707622790898023266808751165262981746556288451967446622074920811196843527589174529954982873270967933396867703835905457388396444117741326985186637639403704020105523703394703537708209461447722047160394048377523590310610091576757275582748558607306667463876559927886484538584587372238568062915377291550913869826164749654445721151459859647146598754628972005533932853023118993770872164835602210568418094511093049308011380068059187069662113256524316106997681340044987158943779799781343584395482591276730105317929744112197605404259998639188854783881838512686079101714165426668816693037613735617341067719549442365546109099753699094990114006311184373412555294133564737525710035375708729804457025533842697134249635655257696615931965557402307700587539821215055036480923716980013532964124828470412936188290222674995856387420488427602196216991916241210160609556304701495917126715811728964038996262550506901102666925471505911506011876469618429303694696277414357302517114545452207998016120245071702323518720053053800156936028240220023612854510129880670087860077842376009211648711816820053578976471251741245798904122900447838558332957162169798167338716839671158636391453748067287206550103867411782452349097438970090021882939047354516580308244328178282598845573190982956942321801589219708447241097568298678906480365938484032899850048156800353533656260758767764946872306572690961111169025384892640822955692081192306516331603670405688268628010703929026365284775127566135210565694338607313541810429035023591567009391292000982311037886513848580942136024331162175741917542218760812219303630754266089333544909708505076327623794277480161172260842615454530752152966425327604473641019104492808665350482786896957066057633895535867130255198118599350595284967709363547581169552966034028194558440740866486804112971041134165998590595589928288116430038392158905047505241934754416316209831675996603297087986918962845652752090146574093528723009069621069971782042262979374750587233854599104458002431166600894330477574803484904029291234369074279378521768024458118840158952295676533967128685958502063871349707673591024016214861265485307763651590549579796796959652970640677172865382213810921248317413919284065957593305558284147385172699341366198817543518442998414012059619710143945832846433340570617882694234999472194412968323830778917231052024637473854075966321855215002390937997766705608564042675996355950648531227232943931376611758269415161389233167319277765334101704967663501902649110667079678846088999366385129268306775244196979197549165020931182960527371500634438995649966901831133866919273138927902039571305145679424480711680150502871467533465504998873807241964742740983171330564588443541336212520395602571776865955031526125858525446641051112641268575274917688148889132289772702489617051707280486575369441328857507921322778636301610331036271051386177361207683802099586326812138622788493190190419420543067028963916114610918861916663752091454020245300561009298945518991167745152265770665317230926427111734162862730895412530987858648172973109289822798964357710528362286814685153822016553670677894614402214681493122665742654223898864118111822868307865987997914483239062175118893073662731061306038439235615413194885658501745408689743684118474872720377756100207445982860269350425944467968659814930355131818516221795248591763235642036662181234055279134053647360714126037674787166170195693013492137175360898243307640849406896015740506290001117485379555075139526017264780683097369974165647957947199881991981577443794678965014278223828762676453731220862002843124805152777735155488254893918315914446150232860389732415012666795995987904688853199659967862550879543057870956500847019502530264328384601445458143920165047449894305251558192610904894320657734116549892089887941681421579236730169013191908824344657337819821488280248968368009413190667332402628439259030198273330994054224537868446813511518693548970988501794785492361706638146012573664409502754731066057687761021577649612172849546336211193516313335087921387041454025058443438537854679220803039056623354850034823292849393106853890554731831305553451976261992388568664323178474540370567501811902202191034838309730894662456622642938287915506553806289659971049679970914668879244249260446044831974718118343959993822073002726052355666159099961784229939969803997750004570335686187552837590362742214081413498529491523199254926897211728075247578525150021546342104712247330610108721274411925392712168765935929506852275250260492119626281489477300123278433700108297081952044633554102962211980615786404746200331139346849568657819631517412600366858776683898324922496048214585062404751513906748872874658769495359203021496637171716152379388923347516834579210974916094059767599896470394421223134492305716558567318650835435331852461712937610884490874373018206425801993717666915064859060008732751274092886721681470632569149641566460917676739022887679731608937700530247421809028317456390102588035427685728771735695577337633498391879294239667504668516106613186825310951919187467825427729546505105878724803849027874836661658575462163907654653331585181594196817471994274385315292249757929542715471170944957267890223122146042581016217666686788946147979579140612655968120239128378142550393892719123184229505104915508901311323914084425272279847783552521820455423950299920439274638840537181195182501906900620126925980653233896776172864040623049007454964513082969978726752867468913385644674873232119872065064498609314545191028846760884157573202024533458258736562490168805651135936009927323321129422454666145424334739638386888942847216497678011544405839981270285013208653298547491661829755968938485171956900446406569926263433515475366631298532725155568110075858291736142200460360602427324849374408713296055042206984354831366558677988789222456316771754566831795674320106585431257869984699460546194070122739033130166980992281525669316824371705507991445096970760275072875884312026835412492116378551939083254341567654503101404657443037066575370477581390720726320939313499628326239236476894363824332244183087541156375095127248708707979206597279783040932448338109526845025295669196416868626305121518131430539379956402462135004975795758994500284590871228623257035776229142161016928562696314699348692746766277525845215337432301015312264125811175405473525824610149430023653103560502810995521120428178871509304809983036830406017683436185745845508045102882308497193432232141034131017795916020082221847999138722965290799124635796502345767217914092518129933547775937067231404569880477404085353501567053893377288667229400699011046227675015042158274184595245707009800258189168501426525637673557635681938556708240473460486410423790109691255763990948675835831765818265907014317133470607008149408006856363602231577709763843455722413961460979423271878639242390366186508734059346623959809824721770581993311859523726969086372769802475781892688941611015956654152629378941058832284764381686207878922188724700590079274404229588426546330422384377026191830753287124877736232049082575802731893279231659879386235743698956905616217228703643755490571351399149119992364590844495564909390328986596250135198709632778265275040649769693920620297251984132840400495813571356213645475233659441520286126374906500657046217824642094155911994612064832134643401353131089876565912902341159822990969786507890178404919383005298850485023639858567802760143731350109597642860402511632196020913364726946772420298699517542314538098851574317723644614726600503923523781568323416501143673287748619440890613222479915670970065890833213909439203832259306432714700737949649401556246106525474551124121140185886756301237624237216295317390604434462073052030189946355933252076383772658040098010301118732798483352329894423591856587569585839207157515540267183741787844730913820160392355497151219821213861545407952712908358388921995034731454452650397945536867301697241297692104476318940377737023865318501981943549424582140561950589861549294056721340584539818454618352948008544390446373770591445045015430404717369834434454916678906132005379294474653519043863566699210758787262527118146889476738506703215755361384572135527888061796988246874301299139288192954330636687791554744265693256943441744168054407124269508237964090278363133384073453974821485449089342760412186950030588067200025760966888364661522830406314507401519559532618393975730221699169679625341423136517678560898657348573832570853143542717341822931207702548892108287821432570263604585198498595862076680651207805216349473653071000173539573672847103617930615282415334666884369286236823152705793198551580474831795817083185494066922496593657927791297489897899398937228826179162310858868957951742362693538278988273437277455635700789358607670399980771855034492783344843927009356750427794971884268905016818948849764526176241669038392317869533774668341548762354201894091832802207615315200846888032578130642276268873349049401846178823491064581943222782314814393119402796967169147791901275908144636940379100320777165175549634817822790234382879730444310001533455823172745034923832765157287937321148431442179105380074982520733785012308172578321818053036726730275547731092126119036841338916210572515981392206205250691278815931696128589022052933930464207274135635819367037576447775113918913348395036497176304803406953930521889496743008012730383558012391953247975131389318298978470014695346167279388556631655915325318483360183084208556820835148394116421113706022147392994935143023111887236628710474301508873404994595251924735549783894807020556448110215653325202451578039454160483771994188751608181430592469206895477291546172341035227494410529396056833769312209308608202921814423454798163529092705878099652134713295048722378905245057133271741874982929117792200124912202770813644091758966709892884078941998471294444147135073802273347676368446087300839518202052855085732797232981111139141724614960421376745504598790935817976713225758099498222393741179961883987052474444417296706430695335546824395976172655130839363822100791267444167894202668697045445725636533483597155708874768054827803326267213370550244961264696045966595277346340084023676625875361660936318075377317323460605394311074505376836548872181758911553438755839373923372470395890788917799324050880250614251114422903717068874077094605976666882108928159504081314354452862242410927679216455755075327273312923739014664566647154504745602518291392095935634712914413909534840801820266651583550526135286085807060858933620793050982605943929724256715155452969456590271783565363206164877687997474818453748134413498365157283725407855549909837727301051292388347013962668538588815116372976521625665589818359895513461677923201004745147118382797676207723566455948866577617974306019846636083671782568932266403958435867465184567340193803506878609043672963288341254212905652989511410504672041181996123989190855683101698733761328046476192047173775076872967238999323727265372546330712928529684693019796584836053176770367495564633323147863087766375642010191391106930105630226507387671106764783178508987174989442347191402395778882871543798773987176730896191215527914672069274727268477783197632091202651990344009065263084215664310090752928950136151609269069076344304185412706383760820586007515671454438006563757049100674030025202411171235309011204106415223574774891691494571308305031076036146393977856145186666484885156897640801142044551333158323555005940014375200820816817724623470681183629185707454315472634423665945157951942514615219471721680287689246625596116201315860008977049763933814927147460815768452329385298879224857968053604896254180304422545642654160865774218998214187349903792642628722339338841496600948798552287275223110149601489696960380263519278869507904028535220745469579943453851025836691018538912486717269678002879318757365476448525156984983710266679112680154322123320613593224578318370800781324431303596608169876461735681456189777841852581005309233009800433188801284967493778844098740226653993128266380477684540506201125109318188285965466620406015366472465376231141208791349968072882036563335725852472557457110815950176463134003616356253745676990303074284716980997244921112307526225577595992271014424457587358872900042485927422743908504061659901769749483297337406812129380273956896287306726460521555547727860361313636816185486735854151279962488891839916044477767904553528086593044445061744726980135015686746614551783580688628430873169567299361860899458229881585874925776688898957693570816510047111484562670661706013290712390718706617939682577994514081022832982158142569134862889884298750864653188103772597468037842835510627865116118307760089373571123461104506651725392154345875522548513033014506203431319216010989010277758702351187472163877922382761775822185970047541027821100353201272521400641266598919162314166116900647804490387263885638334364929417300814104497736502197890517887791162812466908210205019845281413669238023495956944007497864085463421229343019185400815540719368542858893849905061504677148510884671193220807121595307646820999835317639181530401958936133438834591016842036808071000920106210494802100587738174645510466170452644287135394723079228427208537891601206526336853751646379253082326924363978928733039280432990449056557379446491624116101670844076317293128201588280578131671354508176903405400153666247811605600705400191068589291819888459740924843504037903836267819564405772206042704764559531492907968603425214036903544232878992184474471921001763083497217597186526489786028576836047388306897630303650770283824777334217911064665023204460886253360875241900662237748708999128955384542345588821655742772950257813503054214837149373612765585072701541384706306418260486125309346030825690996483359075388039930967463640406512262179267712902948345894017348625684629924069440314542016244383779237120155220491649755343661867144955215692456056755320595980993272252731485578817293577093168946384608435663260598946488647309542108392506665027313730632237250942979523303748004087525050126355083176504837209999767218324227554652541450156134904457108798180418460691392336451997389054022875449428899834052707844085820234960689896636625140764913375245647207442045686002304499864066447078761124933371561803063490084480319726198827134037718625329533576887810786616672142790427154807187615090482331897567035684102135115172419842999572801573742610794330274455311375591382161909523224810623783122307488328440288203606625635828280905512526333280532054425287099567239032670032696206676022651457619053436683308073101328341743737678076568323417875577879234192276638519019929382478739380475441525057944697629676185492370107115584823417689879731160036277093524468555299629207271573965442507146991105698638902883042373170337623629658747772039709194505045075268537584154765335908153522434223204017164253882359177285673103689189626509827320229218904270218891529015088077607104189126698791601642571793551659500452418384244856332284922685896469864300382179038548525186592097281298854284014640390070166666129380869298186898579005993781383571461345160925954158366568325197626775212129795940312126950123669816437265903812014342249850300849683243974506715886928059571193956501753796450798008927801270229967209175195760430415549426779752822070334770819389144600400012750074913336330272952792971135145411641181645249888584602678067807000432335326215212785932337516102986814830661537734174337354177283657086006534379486869517496358814374622465078516184089136073315858570824058532936074878773257041653042871883935806557841390539968274912943988592242243018380789333921532733756942824609655840961331587454228251379589215315316342823025674845454542646666492309193838287126253535921088003624774480434445297937257760607734314325534852740999080360365970527877760836508675934699184422705197622119955024678273307103223387239135320568557037658380739074654470354659395647204543830903835694256473109521649861670220220141787490536520298178130507820650265425172242081255174273982232277824817034232430462031705438860966085231737350986106109623988437720498501109168787392273930284057353306473687556762283382697152366591675495282959358244918410804465077239370054866455906121054347818085441219912122911076088966359247551593424696814008390650231052555140213921688423097865417353811345962243729169628973602907232802660751703639784429943395088038254109662394914251869730836735168872726406593847448815625560521576931002387533662045871019595372676495126849417090550992333148167047826938475276709843188145125214399571608986171943847201365747383044409294046549244262986541594532735699863501807442528643751318233122616241377453879898575029745718244246329528657280574885720990142359723927151552669584332054204828570667833630812069294867790052163097671940346227973518387905309113185099259160350660805664169111113793307795425567156216905159160946893194797966365474984611018195944151514181611301071044051642871549496019816990823332901194552533282386601600488185437625983908614322041094537664651728190577124396109150488098593009159294609966446371942790859620109191851603442387176249951165086144830565082227305410354495687840553584625056839706751908534223147953905276511390857905369636640559524987453014419580965352235168152501959991175151281580254686191020546418945522349753190757037129916155850831290411262722433311032073649188121258838917503332238876032674482364747064705729234836258540597585580159360426584772625973651951641186405026474041318137530759581248375989266151984569498704733634471625470169384047786627710046179610463834372059190408207083616704642016952569163122455835968428929634598008523183725663396605078978375374763080926146921617102477317545036522660111352325681571276772521461361229351427608337818017711474249196130328980974095289725999050298698214337299074509096544917999899074577158966599077083640402502625353109462569486666285395726457493298784649907140263359118998187444715990820489412900211179518150006314190003035505682193786534503939591093165670976121989037739104819165688208793040884172255684989199162054106781519151877741013963596884271227245488494049649562000701766894327638274974578810301083785448405900828661810992975400636871086096183930243467454713371508102172468755573439298841217589209225675704374730822909560219334316420951221716279200985563408508779028857242003954260145956475070219580622860276795281255775756154107512479522869570057875629340656265346440433556420381921763350679284985920596922984752082385801694823860841635630012270403334484311316517684886936505481345927959107889331367688266865865517230106696197259336474765011080163814067684094795374465088820939542442585921643039576571041879876910663348760071194749074629125597431931322325002360576449494027775342398141751419040057672478993504744952358513319327950634896123662193168525493141945273798496260009145051321986309917381051239613961879963976421667064233890243201838060687508277820768260620344786641737221186225623285429201208165742249858613611478262434096044146348313087413712611460583941105071495179227673823473465731385622632096199364493732643364606206382869123300801819327790990441569454021673248196518690499283340882995628229060593603145510931349423911156943054062862968021697182855353993974041541488684660357359597470004757038686781060723414229523045102499113052985825120821416739342905908772048501497101882407047475376441075338764183402527187806135346072209421040867295775821578041072495784946827570385310140957845453363573363786259199997416215437267395368429168276009418416409787592396302955203619459371856406891216565744702041799239080365970710258389030730076817319503904059421714563940827592309712197782327352418359642206576552879358433037873460530268387317469008269219443252302853525980651302430312469926072169401703340553468364403627204200087072332467778756827388225132326627862457405347300007515255499847877692630211999497333515720960424738301451574514107328453713750616525290756751867332347837035476227830667973952011202138583810214634694198545523468096238337776740971321123153663341979053672137026664839127598889762374640160086570552928987476625380704485570346560752107628894055881852128597572316332806004840036472434532284203009202909009792744264252063210939590858641881526179860155759079271176980864255818338475609553435367645363341238568121465169978922933849862748278616269861714770284237619374881169136474622182883736692305033265002164261885067040357518107290779943925336960358099307074996634457978329928339606859390133334516556743199281298759670600464119511901782845929360164424746961011250499048031557586466664869700015447121535018920736210957082497773361992465931162502536761693525328232440170722368271190191872252751542862589172197709372406253431493758650902281071270845649928479190172719334538718046555688645571830112442946280980666068580968758257965012543740022926501575687017089433318312286956178260714986461661320436760218509206801631224385555897767185238059663755195358442707661936341706866848132681004557403778634510576618904652138753711869087972841879874142292445738655866214266439417600058762042618289305167553596029123330128592875369455815857592351059342107426925816627337714153211939006384954662540857374145320440561230029746132812993652872043053806581445953397955929926611947249503991386023751412232349989887698065969643796674051049004869953247592820381932680698028891421892349603705633280445348467506314602298566221502843098932245620664262630135178607254634466429961828168631124077339292767071100322322266165776226488282646553800490761014364739145853688094661996131647466438550386368050520833738567612195268155724512963666966598960764274758989121580238659207364933950991540340099757775831890886618604803557014782521461309526866770680448256083990449670498167715501597818691997736720475550018383734467388266228293109685100585460131090726660529119825586590558367255752572579808743360673123210355921844885545976858140053805226785807306388411290099131696076125288976265532210619952065196126320775051243113678331669591765081864678200640671742340163258540545389782700015078934561427629672830014994427690010621302389776546355937064788631303577476700611633741122629578798032776473226710973916323338543304659988954797573574640649543234825438361272755634952838722797164318156129945011847908107437847167444678487065934698300330354683355377266043584400845355317797948841412807871561014663048661768487628812689923297107137421998101111861175217880787133599100366789123810352935556649332922544312655937921298919809217136677994762928336350028028314139815918569008012385758472811880719691997371640029308218958868362444595250452115281424385527475045052259967480331487526852161266668314602095119694640595918735692154662675784141690358333060441937644806650392979259510582516647930623107533846475613697694526744272687313196244368838691982373798962100678902631273282802462917374254160248590123437143533440320038041948313323874936990839557986312179439598300977816513325968543230697882437696136380760347785047134101459170864252083047922745785865272629368491366946224903454860641874750786577767070772950747659600034316638683258464739758750612071403539922230543645852429435686851974997522422775049887310965819585558004067050642401457692303524560825822282865458816655660148354469859442582258932605017729179669650954119114043824171210380945673022165450076691517159181714612804813440237366675085460534427903577612975615744796966663446767241394609437690624815143257758010841208774952128697606859804717815169724061826133707245784153027393790073677192344513372630454061417121063454803481620674745081300249409810203712294377017833508036864933429936924929543028157356220995032448392483055119604030287446611417877012099834836844369463288444691135828346951992433104637534952520999795688409153663904785948222601420548140098076394027539073718519273494465956799424714967181747739447022862580695904624745914018918235791325364420756820931867690723818517684566015119863241003342955942261319829575462450383927477451714355876615300676433618305759705630382148058475487117465153318995940743574925519902335446823417101725311063690976188048441369009895893675021539448811619281910923866558140990477692526041129603326050236890366757970632767557799439358273828858071579112207107198393341022248110710213187407454821843907116309652512048728103554952211076207802093546654998652964750308401965335906340081803515642744312640742343219445303231088574527285751809159629765709362706324151777749090322256799111379801631678309167213083398960086907754744159958131357257414477879762587827818461563043721626665154460751543237795275327865315553720274543810217010200136806824760320249307619910135013684685806144749382445872988298544564695138044547691326006147405502631928153805705128358904293267971120572207766625173690964396346333749578182699233867683223640966838195411458437862529396877292035615517116600234166007178896582879791866228468475048078284555295067713274740362282845622868478074398005244800529256498474851661008130800158842174930259618429322525516538939952784245605856594942789157649618205487793375154867895654818814616279714533168241707695445767360596184810680442191693464380148535072876390379723913487985468104145080460728603036949205599874171889207395794816969836233663617999880560553548289390803685249148000745637014531733919459972361901509799438515966976973391102874380669453951676342957176491524068899486854739065790748501735263017471474915482578195604323518505753561189563055768936971374927444542995398485521141719094556187137314124070203647548616537390028986888617335549904208523937424289647832514230386354843343209510398980491455565324970055591116969589164878149858269509223251453266063937168558347253110342912451785214076327235373950053123663798423040660160655317220528408344307952879489443354182339166350850234542350261320895796502311169639621169615010872725246043263898645528867521291553700210675741976398728012173527452981092041426885356214485550573682353593566115888921439863006014698000297768510222627449162326341804581013006720208770643980608321213925229477493128239512325815213716604781981060332590858888725230311672705399503229965582583457085396469190128635043125499649984863607306958161431043521313906092451757462254127054793089470069969276334966681801138490708853964684859098397456052507024160328730720055222354549176066908268036551643267276045282897153715171166336179700683326059304461634945792458591062284424537264064111919312082528001189958656469399075374891590713563858455201425334868643672380227376103355194415232489108583352038578205069039832577627639624050902462544317539442187259304733845204718491747549623153665765040512841907300380210960107252263161568068050221514749415739350536869317432755375352711673148093770457631360616496710295727170256053006548545263465692197180687786723229203093141871840647807407542718504047204918523408409349689615654306837764778740256945739112985964582608827342179985187887536609511603155844363370343249373626599137732436227085491951536561568762463166420580020172997773146686827642597253173865214229912231714286604249649766848952353067974482966926160087576584523784600540656811119571672913959891973284820006076162544767629834504330740599899549345353061339956686771114084452288621496977088508078306223173422267348143396344775237183986327393225968456567621138804855644510099633214801976689926150219236519318323658585773224523952281437615728668059963427885703587208620926007813449582602504331688500195343273501933883451042330555572395427348619528675327399639901298471187235363678400735665858841492517934911747598460821036951638346111493449405266492295221495791446652113081244288558424351373062311920601623587578126624845778294627725056121041450622626995166130710319479935129689816386274068506875104952231911386155717754610437481156930619951089079267023009317773937550534864450537912379693129765760420182065047882149499959041642683333167190711836218848489733164019111333661557832930288310097001882153647031908164118472526024486827967383978164781961407285293958094730581667954824058240640707227864543397509264646271938527431016494286303609174963297480827733231838149545449588910772102608894033731489207235404976024916565005661265222676985353672605532324989818308229425518600033930876416142090739308049296924980925903772870225238787419278912204437106904971859751845772893329531775124662180212642941442128786255613717944392506544991398887507735425425538436607777809670328122838643775874742116910466307714829625248700630942115476003788610927327212941108941442094775152604189162367780788536007305479887258451713452809667532552235145190167622453862962399419279884927405225844104586878939949188939271660896609432336543073318938330351191809942994389242947342513226502871079454656068601937762385095012837788876053888330192228085777149458550821907719021888614457936018350321696359202364165873249997782677421600940367856609667242231730042122657057120001076695033702880705582844545158827677345217076068000611416305569220525035593415783019624189074777475711264926956670439824734520806866513336801717773916003960950735215297244771056862321841009533529719458675648320913372295178699087774260004742150426196167784844813973314260556099691741585000887108046778782921900846042777449505686675178041998178286138641303728000716195145257011503938229354530866570555145795601974850280606325401833657220301476216299823425842591523829919526509613449762533331868953848437026067166030291234506594502959392534244172616556831571143211977980906147346171620324664570448973931854282435690814525567092855584971681127919744887197445606929274620901171912289836283986397552415529979089357078708964882865833713069942144617426308068932317065572831866824093092728379962046467050966060955939710482225695563550640694852078212655069727720926901379349383530996973671920089100493718249640224582373510025081515960594246873763277189801589793215697022562523913268264492086705184786716516649136368684214573720093035816465182629611283256938001367178902941740566047655958125182857281201015925448741640854826299187068205030955782195821635692826757416483084042383821878742763216046025957272478873883989509221447132349823808359205046590084583244587755322495452601073518100196467563050323382352561460040144123371044436886101021482589867201566494140340674621974499811884509665537699205365032156957294189246293817184016011477052559430531541783690751576831298917095356629399153781676810666406407052733777176950765739102895911316702369961824499145473586063647004983324465549174008645978712126413674305641703959588037538027363437156481643337251115318892077826520676656465976646478149357356937222663990336953444450484795056748073904120607660844688449097312059105564343654519428684300851608182654152086390026473656129184716038297668526240561739011912349957404573453841662062842531865059075065817109045563828335080964507289525605066215715771235597435771483696455599500030050458741654391614440521823585209277941521662520434805852855919377830756989559998825403552794499301259780323683595149974031396199282969555203003927753089566397374788619419394374780800193211624155777332684278591269868609048003325319247377748996652037093266766975417389006890092230176569240327909192006607957364258151985954747992500726167985934055243000599086103913937749123314982419923836549211962230243880566831806311263730663707041264239720071903791453108116308788326159640880395377892467092413117011148772493147650055078533056817254262533808593737870064755956374767939644511649799983589797255925458692506826163227571695758015172492224334916830127835018329102708933716612744551408501065678483870321512475755481833797875955648994978031506633875717482122831418716320292101578046948590128074847625008675396928138931302191003271998287134485190615329716927092614161026376562636240019284054201009622095768700092676008884677510006618416238217446596532055869219226992593348061016514839199173910965263285974097123671208267749256910555132108848352262238336444257603697779650492987367251480171056160754873910965228408571044892657778410260681926634233323166374968149003328695908063477185811752769497202231422083819571630889920710565017553818302017914418251387290425204195345403719510073454180956713782678598327941773956783351651983004915081002467937290557595866171165437517216643447352880528399969118934591702834749176081616544209815204107348482797396138992364619059711576642865327612446685316998647257326815030704167394118668463296534710842609661525027323153114827381327987515459790409906136522051661140181911370314021428587718490088783878046916258046302776958909852755144731254807432996447823467242878586465243532662280293350680446696204062765859210163347532623609782937529287011176287316777821372141151895691549846569701936156628632657448345674256206497405279037690952596851993713662574535320551524648293595204669700514001671119017385875227060309988436089422120333984383716467753263526123814942207624121603559496961046101891980641651230568414777567668666256436647768549294396414588692069309071233830312087053172914302412229300085072737193109372968397346136001722398573427343247761487316586294167110086502167366592211719929656000965282119764747592886938748087765628834080620031865808505792383160106183738294772507330479230868518357638235215058982250035038745701250309291605731675399913913592312203148924798904409403356696792419351595451561358579535552631756259901342105125298660727954997135554072468126506884555106133588151712421240406651195539445531740857301879682498285585934430156671086071033818614625854749989522284333158772068789638237302538194403693608440231891285799843001149461683002997026706929896157229860005741541921547859536883077150762337300479657688723252073070499793245697614595272966780258246800696467045745951933250961613143590940002090194056350669678435861865019467112028443809853875373988822856704605317278949522163936964303775360301892841091664724645125821779917078323755251701820183175276401144153674794517509215979057536786705346311994830135509291807553209263574277152981945330238398910893608647373993749383724252558593041843545500138814105050483224466499310733955649155183018313277648214518124237953853627079800034247064550262022879752822747554770637942159350313468319157831032634015587066890401816461433479470128716232959184656727770115015996506370415922397195290406487744753967454421977013029126010428621356875749596675985692444464126697311524809617101572710512432157327121275301045529622891768843943022843035694441113632916303034627516983793826153234264207116500664287512167422251423787148378583926270727748022744110217610877432435217706942873704221872594406547427535283380376077325084368841943701995705833199324250384515287245896744637176676795475798727155810563782537478406165316312603693438752613119049716996373146562216264196723931789735803298854051063820468401876323925439886642714313499398499526193016049097846196580904913381535477391121067150652008467467302760761827782138925667052205084772038016092382721883437723305670881577377518540431366702673906493477990789397953929665104317386826357863851738173499512195046965348289851930845576622067507171300282350500743617090748984911631986505773472596681271894750009179261588639536066831362458251627548070849518976226481350098749291504583370956787656026488886135059776999183470332622271854974124636367365032332530767715303870724287383943873674309125362926824134619558274972999037239563050590213745165703904103139370224183806532072259327608936181359538098253611766107232643351890959574357909754399221390138984960433171585253327221877163914357572182211917526931097906934797019865293384752950553407197700242254189826382946546485436282841122559531723386099199354456488591403870737627948227054840712990682818513811149593082557684473545581652814367282890905692607375383902758510808741361495389217764759547420149706529449083819036159018546080037716769178136261352225509320886523980229218552759541677525713031777516306916211371846642850696877526861061379617180217968295991626335558823452703853630544765070348523532439577043660221672947207347791427382273631671425803996601988425801844451220680113414191308739671376573772032288087813293296317039849944407859743505540935302042720357299985994959129420517141961627785729243408619026759181817614747210952481792979829925335202092511977178011538962879762703670554640431161835209047550715693299794319729570631832084855842677200496236413383834041240542610863864215928656260563077667224238449242971378576166790764500358448710630219053537669920995123114082652196099427595422513941955714382352597245644374490012137488594602226873959030118864878205613855366056709879862538175123175576665892191269826763137275094904129865650916434683070587430743719377655760395688024070511914881645236282927239103504937759403062424865395288996684046806404113778274672868257930901254338627827944285186567201929536174065892848562060273505049757814326828084789991027627875379464240276151449981073129179219177079897955975159122069999786704491949279932812535533510378791265595810989946886880410857943050522649505683354003099497799306160226908543136274093897251790366178787102085074008006957141861790199338627297766257405173039499957549262929616212849540945139031244541666052507949498850143418932233885772219829394357342747466337921477978740828021018429148543681871648997766075825625669995522157021639076189834428192630644779912780460008185137509391581475233787490440024289863688207405549062866671431949322158252284786314034781643458474127060546651385861971777903964037430039236407330726643560081266840240580985202245178072357279626547817772501597797660589057699301627159469342486484558171524116735234816788819624562879198436497392914824254152611152463938855883678765352113968024908127893971639785567618774286985389908004411183820214680187066652543577535879912517302965929090072904861404540374824870466030018565732410525181764064407409862354405915593794966391108385905445165855600346671048756980629128157629967510053555267177461327502407488389782231546088858398015824019089581836343419476660140730939209445014509836298332034681830055052324456729786688247198028630531044644700128836124866946569383650070553185640376491609003871561017376560860984595809859992390839796047229121909033591222051020397017038169628106181031934753237400246896244028199098254733440968962174734304892167652151506470530588672205229452867277485982681810253789185095486297410254866189380164493068555269574579487110900581986267148766222776003437318129184433412210478227332670439433480292818057989024056677850410276536099633467520997192737071827886865708399462398987771639111310430467657099848977449442847028151230753817305836241814858109922890478604479952094375939392416688056694761591522247638430444893553260263783927419088246037366885248594235193944216798713379260988497106559524295177657660896176217728978774427187782176044886432791801938719271483688092835208570861927356444331022573399173091655396194219105161032522121065676581787215307903335708618007837182985159601639426872173522855607634973210728176462650955837679079793452673334134536950365903246485506739941473345359812288244220479606420386166568764316626481045509592892290590460746616623203593872191775667868020637503733315415429726751066824773335742786711352495724747475250164872892011305307685074512381371379808803266757897513102301967252430907373660933409635579372054165890661715225199681696691744674544117696277171471575830715749309867379375177254483706954814689593752565571347206535980454518483939086019367237607333716577047944450235228298464644809197316951573577963918735758479194267989127895848427439019297046381321473016444928801598698473288771918941361699748989483565149748662477788596373910698226420916010058654244106265345127789105442990612605142029175739137679783961131650254050132923673259540231875346459616008088094029376084582645481172028437349133007339039421056399148637760292683391158161865278527426763940388006846365101098969617858761520498425607954111357996959445728304059132376255526139105589401870474353994896262319056409101240550232962369506995323504721155372159153833111694053405646640087467971108071813932442041612938093283939285552233651737250617403972024846432450745703460867845136956070506088377756541221730707890323238590318719022408892833361530233254740806680292832967148524548535332573197978379439708830971270461887421643287049007913892369595640084553965343529273835536942870541451594569488201303593333785883288931294046851068364910170532258508164754319440275315890903165358361359527587255790033574009144909895515487081424121602696926440209528819194734766798314634071878939962785758667686968228229574172947035711225024212119040488789525191456221293834596192977465962465959611709995819117525127283656198033787277019802747457155827934030869220654089503771259726349897163405433183435703710216182191121356917807744571819889529066309489629025649278755269134998106888055969279236826116696844210157771581203894996227998339744752939837869900963470653198542582751116020048498850027546172589181584682379765106110999560005140921727092212802878878344254451451904272091441052735330399526123925624705987645735082788710688774816465714191410820477994655470885862467153404363874208654216058162413209925257922963195757080588017120038255570452344837281865811273667447797660707597181570488083410193227163553507399208197284742411140048452084056296976966356829784754284528096993235477683447981430071055903349126494606426166203090697815350984278714310931471767981329111711929943423717062422453601924350252077434702437337327116515182131865470518076713384319500659686763734657952779544399785259084876444936186411619026672963182685413062412101870455734446072269344386328120085931235141513221548347068664471519537731285595846804010874918035069917579675969601930263733157729438657198887856117364987883777766615587394128615652333090578557790273588936076296262713010215811423166052863813627512110282051837831584531453734103108953135116636009772627336875454630459168439996047174456367648069623578186898026376630470285950311840081851959947359327518624912962887086294290885488270905218796648245554396704549231921094007288264310419100171829606514978774141427572473272514826542961655834877341183816710645128037301111403891231002195765839772532856057575033364394957154319212527834778264457377103106943142535776651303136428677062412972475814651233202114385854550142355166840003224975755790229295707569312011207746195811032425960178499968319210981466593733990638979322199059110856874773182246460875345871371805368391305364045370487765245561254333263489715026197634485649271441184931159120784793210452415970014390561604329485082815905640412312311901606753147640386357448701491956148902057558360869914994356394647280691294100259971616431292791060619375260492030962922457905889956315847224409475881726934524261744949933621065576270917248493471009447687801994928484169331765003946463306041363100077137141858421083524962822206404180178350455285258798650015123468739605158128651081376658156042398425067517560952220757394610146594410748853236447237206513047034940381867891806551669027221318743081454116090142611936258218319745571063729215560440788041455121782131809539523424542018014925315738718216185714302302410892409304986248347518672595706634105706563547743011836440266626205690341988144463612771137343111235183236081503074493275450674717266341975131847329565594007541242290194489336253173685041024392611093240669834770156161826661562802527970938222333714629007555309860200597665798737170998442326916749287587759334587606584517351409601596643742942671519042274387225681468689906744058125987239892408689320006251502022641693315177873185604201122421252423549765399426553574369814222728845873697632805235369975824297169927810142888793821407212991562379409345435433292442352047758904098325155868722919540837079674634451569233077998163654769431535159692741659818733291163889585787925369584278387576580987168650842046696927692355244417250146860878143581322182132733244862725522205367741110606666142055344017500238129994357460585042128692348537508889589054785123757753557929395924917475796626025774297132344621837085579759436487344799294649725686134247267732510590341396618004958751246898490459086607718048535666551062669005814903018055149542522820557023844139399638084905881283302249094446251699625084954352860902805288550674545659805743065460932698754159688253998237973547296794454657937964473158088997822051254200745961361532896063604323331688100392828533198157653671868914924768687953624762618868865583574203149242166798329675253855268318442431570496928848328870398027174809240124588349369950262950816110447905013533899854548981741431069127560107023316376402586224517458563187437012639624744739278522344008911976438627916504841339968530276244343240221252259018492848432621135698230734442561771148033530580322944296975382442127284819896518849518993008540540791440954173234837475638726172585810454270445472467435818269626312560341900472614951295116491452155775091946218337730847224211178237367459633184328257524019894713647583632559383247955850744930739438827079974691347188680005289927397225306604885283158998314043687237801723506134849117769111202270694576790248031371722016893801421366742344423715433501277936708694883474202501635333631562561958243544391389159486133669300725810989446640041491657395865845471231606337316479327556281568285162072182617955800567573389417772002781096375975193268277669858868864989283102881997752959579762630064054925286565913094002047412953111116061367995041595779250405300624039715604082958796077823098185327902605847604533052033415086971867228626417502160963616002952532939064820210821724258562625403011936028816377251456767697279999334790267971717111389741792846687381871702108388139272817308595514268839787382387496361257693273289449858485501181283309073946739396172823481802963895213951137704507365044821689337260374211323585764635856735119559615673065141683084161246957238510963084230055796679051796399255926227342796262717899147531367080256463886215739499161770091048531934908576389082655004135226300779294945126614720798876363831621877875303789179397437040713870853114015066495978802249064761132402853035731094470149127413259134199863920193192999599965321981722100073618943198410071805199305209057169050445872548166710689803737627889304519254057900289425446795644566904506605443463753212970376099499384678750677565223728276267700652814973128866183295577497337891651135780248768903696691135246243691679429579483922792667958066180346964749226852389451510185014892840478011816478297005133658841654453497293629683956592353462946221987461643167356735314466172301283431200665009899901327581291873792108248399110010583454429212988926932165883087450011287457282421524436853467928373414497345855485951703933165236300993360350607059417925234231600993192486081206379887496771109110473508399936382141773592510653098406207667024915125818014965215327954092383562983415459085753748304214645662520715578773341534573754438057746830219720738702263150755708581117537435131936033098554367344257652166218860516829722348397474794493043648282849476378540314070373972243612554307245172582902597860184054422412365716441559954986119305847582328742932910685563767444304409018689061512152403385530562839337172800627450907395605758662886775323081211907474977358676394505159373757108773019054433308029556519960209733752847366146555473989066542494372113727467953295388764098667522451887850530157049375376601932532727919287541748623565580268998041285937239241094669203369401937726470059649539207354242504024500923614208993060460386016620726096324776026729878810149858914628590724140249543186423657020635106420394185136412182677452285668133717401979889536886398582433210578588158895069560156186703455999674437328177383675720813578097758240206521808123346483622810449097784239301021784695531894069211258434444675019937419238142453462740131327420091182905962639578594704322466023350846921443557175191721401253136012932273167041323563272347966918147346614548800734979477139480765886297185135275426793564916535679237705502010119961562649613664607123576911130178491690334560325544156610956388555936895881824716686099619993901905666312900005328420543489623744215887009808698711758974619430189813747632797339294782690733055101303025575321891561570687774282410240648419595476430898287715890044013009902904333270446566608422728313672268706762392228605794265816971243699400311309403669853499016504414307117575021236625588042548351288870356501271109432684184379970614743174516772066679489339216705560867823476908473209271976820450108967682300825097447738732087713237092765304526058157784594643300963856170775622398372605435992238855468808222030418654792743890637761026454742875116396656493021692865554094047097305200036148057622578451437076597855488160137616183184074885345906060226883470807605491976285914064600263580568149969745486593335753323511443830715225751600020506190705851452372003934825173319879859895441045447424004527116129232669451512439858452091983906621423127342430147721631784964170836555586921344851072359923205904108580574654283268092818211287467440309738796728957913362084088943952558710265574753689122172779861785591978096472611458704405503423447987727984040437964954874241406935997686667331983500221565107361848022173241315407496635229883227646959810409247337179799376500020743285664131530550257434362046974684077750030060894848059121397365802237038028015863978232285765374273100234850412018362198192269511419589686978352641825588285348951734557829462356928968898420142159382306000249993088232048027227295458874248251959380473588839983271220590155099484523446473121249505023905713939411254257908915522979308620982074642336020367554720649581710393166372085436303344752718894303798883487584794018654990961862039310770439140777610146932070715414601040956798993726964508779440304492604116768250603514173834424401430383664328217707529382499125877840015805266407039259463576127424166156794771360445922800312678591347132501671912904045865587159726943250546836267213521848741636462913171629776528851999843334767023753944190771226682140514918126331595131413573431507225215095772745469214001971625624138321480953157618898096937875438652097517554367812715699356255530744914431505533891666904279544573155829701950204279723092227310058131120784080756159063806318027878541781521633084416035267110797615086581563470535205868793885618690092604679641141280181088008153367400969038329961565563787539449428543582790418286961860453885665577853432358180359975474439275853443336132279221741359173595509538631467602855042993795147898744237909746560569255739591162093410678245789050091154024437478879573051645780814594956824632854437672978803771945753349030786966920153926669653398652593712426663434733509009891201674422645772162031900562224607929913025758516554131148100663990479920270915302678628670421663988823188290444777980105000929204448440631401388024034916256980974828552286340658970161382570000278265117017292115000035143936825178194230517817417441823767390138975793200600413750590830032249736681220833529507496296436564095543509017802690814897955923133964981692159213374133646011188441472318742506583882343211936750638230162618409505811740059119517874455452008018575399487470892774332628631979157789066253350777055526959256817148957654043295624459897710528635435706744645959597320096556288364818601042865801829931561378119416013872394032071018660123287550454326226643701142043864494367500706326386532096536743145492805022187989445959206297849197535778961860067371080256988091541975195224956945891861883815555346844272475152559866282692313354620853256969501131792845219474065510098657452107462943104347786395248609644686350557565524332594023084212518132224060035575606694977902941530430957047592434021235094709367897357011000046392283425489255062318063924260620568769239823481404106676967816140565040920108811468030789989308068988230654076754227785617148138551290305862425730076318751599375320256331707251430103229174737585954403836216134405077080586597047775046515497827776014000534057872125724497840856353398213075404522958413223055521394202746562664520983130008222196426415599480067630548707723375446332391952541620208732468470738864987253868270549349842812990510121750902751154939814547652574460794137260701911963191079394592018039643389379879201949881888122862475635758057840009663825979217558886955492038722874656439213705298681550768226825295656186907107381520015637588994928647257981123200562928942369619097900424325924208835268663234421443375870931814197674007025167325444183616819961294548496490783608442922306653003223731735020205474350047405167727920890229791477476138126911234184959416650205356651981921041921501987850707401318085228775557199901725054367619438589567746531286653125043893226736753548036485720910080273944982246459133676719239754323390517156421375987385465506757700122071365978578779680113064537805041884071142631029587933084946511820041845879760545637372700950505157847179776769669803942778779031870956663416363446003239335456499186338275809018919637176614074628210485824763034130222788691024883988555805854066627067953117830570907824782686116326631511510802756194767050840892450803072085498022902930501852140277182953510060190619669715462390704583021758844804096835088498256556563099853125675821583787821814921427329187870267722703521827053858834138464772005136062738630529686259092622305734174734294416415699269942930545272892067554315968999547349803936769520662893086326179184240906964405884336117857124807371643867495998228664278303184820458929083585141701822777759519515006479361586552605017562794216190253208005749897822508884670914843288961900584771700359321889314545201844165874003165728167423756936126493137382088906032853089178194135747167409837986725644937899338104986726579365062272820607814672791591906324279803206198415477291512815437890356083448483096999247581609042425248188485949019857630357451843593172056871180512228100427934111675330802225209752623046467863378563527822387280062842035519912641030541021120655618106279425994465743121613386070356598007910068516744723448650812336499621187413100812336977356960210850499189844743423215911931855167550164713173793268766319904640055650811364904025260043493160805414195818917636343134483438075128835346186498264749448516475164969974099960767542018373244154894288907962643317778449564786029719503272120083652905974858930020831132511255441745643578002247187141641914350080871512850873000298368136889737319200153709562756603186733693833764640693300319194473567719064072308015227624692231650968719998974395015358406182244877785610217340797084358073268632930437430597122512931702076921479559902791212942961094065937928762439802553864068039146088782214740675358625825277782745597012426888164320195067564329926258148709970242027258853132906016465260481148487263763947525888533944971007729474918798904219451109136238210906463345438793128430225310692254745255972345607128039216792339615929259585968024615179386741893406334638711422729036423146929337759402679155735291895195419121266167336441769496845943123303981785700361259796558942124444275414386902339296156748285413466515801224533818292717198441647357988500051541306352250777116752283970670337103823096362638741389323592667075208008061556935960424776046595400326632379920368360847850379688618138189708169564099557855591923946713416556514568134190914220351721103283106869631533372760244054346912286794415851252739860500707792494877155021437959506005662413369192484680698064676495779916061731866983292840422424413099864043816767760881294235954099069987479239071240147559096494689611503071086909729234047060786862929638067997705633711645146844444684469946136249953104713177575276460711069853504137320205024077234998969110257736532428794005623708019319207819245799303400674099717557457433482421499999743986918923841247355562649308730282732164372152226244022970261826944319939003635178137302142722809159647677389468845398851278791197208678215898504975045915455393592752497713975010984749582843814514422711341182213288523523645167937751525618167362513566372895210979628829385426859005102993841142344200129584403910507594226931677297006871168110080472142815413079231381636667677961491667634621114573298702780245965199963297211301077875999492338151207285016163002509947133456051841623648969777224620908285876758959737099987713466585942851004733437101137936023894411159983029016201301851232991848257891718231328658197677455148661130381963031582608780704401989981790541560247742545480048692626588955672991166419749132443949012086891998518188917652090710242437730863537181074075215259962027527466742897519636162028402539242112500858254869111052263180856094628437242978768259207327078353230722235157777669053989487978591407822176987162663572236940736153138650392272494951261198789026595179103621176000908962919110245977547091017246852229223770690988178710598619725731380262829608981346993982106574611411944600812480505904384830041356141929450863262310906918363874188448805342819321964175630671081539071160757858543966313440501403580107494069053064328468425209985817241552944171775933967216324745788846308520466624115829446023216938026972061499013861521476677481054072010800324297690693680307772880186095213742396602880665128967417283275022550357914479664209065977909727702975898553145668886512707849242620115927083987689594570565347659096461966216942937041980410502393876495555698120377164554147816842009519650796029497123236469642110730883344472012985777969580529466124900288639560242987686967697419285056466978167882269911322930006779625025035221104746989391854742936833527213708259035183461344805097904511662188138533072192710863982083763433266664561893903213019543780428032958971630971301020097890190202208491687526242375825524749047991651213460729525762142666376773254107546193707645119803871541634776256239876407664064513403252573798334772609473514176122030481539344085751525491792879614719326998893168638263810074131062337288865195559567285522195908879783815868716909231386064001577342800504880161032941484462087346011836500534849204874228094387380732548044327803889784574201082080343229453244112493055664771893102293966947202682246490518356755047473755691928866190608110423280443800469599409196578100076973173515694553676141467780526062563157107981095075870361264473486929915204171164426246392289737193969527542565503451771508133053559908254416167688170264206596584156853289377605804817028050767132324072563721275226968203007419027396821574818674942069314421955514965466544408928160223065915587649540241525172209065204430698609363383731589108816006425148215403814881946156178754968957623276746705123427754323092672137346410090534226890976943513729280496433925857930361393251868486902757085540260645888969608027922334928201169906574919570010872043703659425558761904795877915681850277115834391961009629146478105967009548487091086986898173204429367075315958494184758160437469155263253852386401156287463562200402611964917865599620776244269497548040122102061289595809121148662227440191829585340674789226742697973213815205534658921406661128573484868777694638958536446046454513163249668430823450173833003430027999294117050990571590921097153392037751882431219452736446286904735135957054972539979870293223416550407992048246654156946957240699770598944646087770671902598189844547495130858205143473376132400590772552861230018974748635326115169417163787482419133439863613990840833468042977639373429086018973199871643329949642709090621187144218320071670041487478423898833060072140140267487316431225149804188559942537603845396481452350861905357457053430163895732406894781790754679701499656098545975717292410918057218257720763396231954026158182239168066021032819632204047477181079112767955986321059526743785657132406152723888195298288390005296385774352885755635563257944397549106498383017545240678051945822595927061148363689271349707478370192806707731965085945798918779972319960613996852878538579738136545605944159299047220298538165928792401913370024969768451809881535664917196881630959047628560554479046672986310687811867393706891659887972983888439713264683457366993249733482672699425881947823902473292937129723800532553987698377158869120306828820384609151347360299991394913928644715049944902694470145903282719619724569600107585775127531350504408834160159941628419814834970487343247031361181318838486055766334725887467993939977392675316470120736658376457898794645584841611219268682171284734589615211327534220528321019986372162115563666286187633599118491425656352936831290911727609517662954169340507824573938389389478933416564331771652468541610366886124886266656137720626065264585237758222871960373658635829785459025990756361828679399693860456965956041791590869084715634627471603198648564646971933243938523274094279426389005238716126552810529526761136402812541134983230192828667894610058700060188546043227433943586822346366471663636803849048122910361445143219232475893150130582821929871672843425375634774214519330927190091747995557532343088258814329220278858438612159413066858935704668039524654877318341152423302150474839460664557088453447087575182742742747139769379153378730933870842756631857741212320775023976583081288345369184888022758145146671169134761569556956573197735317934129067001906070689826332157191873058416377355753546389380449577566973690559584274864722249121700385384458434788932870632844795702209548251731822523364902145456108619150742589653869250665289802082556095591841510339788353234732026062951491496956694351147579646314083592443242047844592264638252942242742350175215013754696235778694498360863509121902459589081164595960700588063380498904247683320467150132786849047829079828143885380260565264475249030458252320504732232857384231390831661262184511496038417852647217658029436756829344528901032253896913084177824392890362143634433187648161032652974384779562846261576437366326572518775647375097618988902445212228181276731022318352627978650336338436917296787229148130849291174601970866624139636438328978411707499457701787458053357226471628303048293313850477336756145090769143125418013925733170182341962650416639848151945939450716613656237938827568161179621588384053169319472201385851614508695488188328462393382099851105944591469555763375945196288020412171538403298361004482914799120062928727008326680251474753542792706436448235156366500911118642230142611033505191782079295214550222110261578259521469709463983295538647696320568057239521745727345196149161229935575226666408450973359372973629569871677220425597342590697486903848805108848401234660068725615982676127895297616281566035673458506726384184915516775548047818113435978940036126874125306772076788231433906620416889875676243936961354683921840834542602211033351038157622922091058559532122921707695517033882535109909456499365085845123223139038610975083195467931197455459570849401685560903097291428358700006559013327693526320943445008907857915442930176560087793670935786282235293488731702545009333574043106409657591376311124067337769884127303291896081847454885275102363757485471437344744854538500647918474758014609459601146694998099320936226335881815708773550353804970664390322442118093973239368669612041453052241900374074217391291053789211120972868944351789086337872071580259366320044732234627720127453945305585947853359451862748764791204372938574715675105191098196806877347785343133614511140951487695590604957586321095487725998417405267246412457331371199166431074468062847823687356784960700617666258092666931461731447290659890721292005103640935170292214849259023875491791169925811730915470821855769039102805313493630483080506298086259840577654440114729396839589528255739842747868511127322313949159964934808603959016919541203223584749461074493257669936825162034455006390313161793303078380699655119740275925491696869309067842113065919377108768468635506576254695322172562289053227393170751447134023043360919340226371469622559783248619631125199291006140445938011051890539647974885410452530952111431687029610754553062041287246344245862516776044594873952250942733692667255289888178074076217400079590117541095663310776507063866335809450529163717397485642611457049727156866966609305469911868813920467170466843853607257776289094484977151645822289206860233017582949666586496015852970585316715310621393471176137556888976718206888272387808517834706495984085461643199921431781498023621022885000324456662015910530738372656220463934117359030003302221355827646757950992208720837142357176492618566910350228620322952079109283190043302222595264515791748089430308648317926790359850907055335559340458465797608598984798176846558422259201921273377619745865195148173554993536945290041522929658068601026105786123358980179069294083890635816950537083604768560813042195077821523305047076142756596801668506686913160666540820672677630160226136854223180256126931243383437135011641001403947689025038571686536054587710901048017627041260307610315702144677146815891898670112827929494293374616141867663505442234833112566981288818288926952755535023368956918648924384512064855707771472949175644953626068992323717829871159695380420389887885921630876094069641371005467754542246566432782331759484753384544479763187196534271036384300662868693928162087966761575976065300265839045305887249917871733264640830008946957450337272991563735803467664978090893272688393590284202611336757877827643569289355654548015432864346793027947835716363525749435085045065080458734618331425983469297382418673456236257343042294104249095551318538059293317212310478739706304929215462020041265033216774411655110126727492685567689669276213996281404827023898845696976898910658603585653267264483154226645103449023436508451553936394033333177280469687391637298900007371421360507141942010113418088377831696714373753335683022123861052940244997950901867358292105261498995878893401184997818074386625146895392344829355613664322865814180520568532331112223454502527334234510951329028158521065410171950197908877078092416967917485770074668336783775668876136193860000194310203871109363032185631883234033718958091044378434266553576042473300712309034657826935874348537340920670236781779908303371914691658589845966902741519008099810200190858986126606915428812846549943511429456135135535332385507873445442635316116939288247951733815819659210344911496913540067603695069882509579009710010505411035364501861596918775331411269486481725184155384537322409653049479811682099459261638248429470774463494746046039058609296848686085653876954349599599027076341928612841422517407152976537962199508514199573919245549565608078962241583312652604872880053226159302015250132847384734559789341557804353993946709378575495023841523389518836169356472353907118732303895676723080436110816179708665069885639509504366863877338386736340706982018941317690779229136260330490441797098585684353776907794026386050361884157423476766805079193331632763960482554701783141227819041767587429539089088150943970222581211065357616171567882033156775433000003924715339507378960499540751463299780079849798037960455481469895652344219258961457431784727903775360488839318515325737630300912444097049821524483534840755623673077304405358920266378106106035961338412481326496829112332752020348708877476449738228941453565922625428502387152604928692951043877695475331140116857117077552881738771921865931532127321302981341255292020075761343602023805178736241315496248175007244371832677589424569690025426710845657388588287836936250279287187434339973101568839939879560542177060581824176583121995329899959982198912664509117174510919258522676816224617967988307381074466766247637501321230078836230970840110678310284165509094625913058531797628460911025361588442323585536799872999733000398291708001221386548620753432805351068636754201758745861055522330558991099016318641239262836995693706323470670433569369268347502380629428055258061310407830111431220621847022168088099988973630483534348128644921770776207302579075384693746914460701442198706403392922600488334928349151835860211774419389589345389467892884224211653809087461914076976312610775813321514073769044847560979279403081109391798910496528106081815725699543217911427208199987026956546305204555722261745392892426757031787435317791039259267117450544691251237723217423829267808948548720518353095976966930125734296486422878801038970699749611148923022445081789372683967919226085594594887027198797268773544382735285429649553079948190586632136881560768338258043797256252592995269838252878712328724806401602734518717397786132529261187513092551975540763513887699552282145497547129155736554269718963417144907427669985192945007168276150118943082274698300814053586889574317818162565311347885849859352277562776166841094158906673338898142429557139834501482473302033086891735949329169051379587419129125980612446119526548442549336189328109795339180009305401554218312225950011003266072934431711476238785178776950933348077037164603828862409508717645611634632160136832737036824763249343736727083568977201947689582513836864638849542401272064884339621134030691120698932249251185870397110358959735793475099434176867457205531355505310564751288085055842773051631591221865953981215256326586092269912872689434556069011880430076768524347684726094565236499691184943262124911235756942156043028961979844355800568391831672933205899406741407583740564658546724802238229050615051325308341589886944242988946994578241894295799486357064259364961937366447054367923576469431846881785684968146680460779749665730541717362767802367709404449928146959078864636132361016034501808060192671589951870063354529984740941293554204047569984574876343715504552398939964003094483803406064005976400353784027181269514754977251960450706474725627475619982019294307784451205241338730474448010938090643863904952125631327456611272687525897799989738839789269945879581571652462658549547088296766006299123542127923472284403106264796313092806460629136018318239064519135681398783758338885248878924064837288569893788494249846048133446488033739772563492239392303315141305343542217411045821018805852434236628068410061889848738819008705986207320755642276232347321819950345086602743080303125253374197415856841237014330590733739601971182270001655774417375661990199402183583174765881824642578410355233708175218246471467032711454983047580125868862516841822546860052172264587422355906842829984683301579793510128490252759087688913658401361615916709354780319818969410971617088987177487493287628746937092546443550209304716538748026830762249406212434097665986708232069389989844184335355610195652050212125914564440946419728924948349669525431837829438241621179275516451085306786246772980207854741628349337037792838396011191546522129757138238607449193421426648673639904737183766850284726244109984905104115299765925634726580784679410018672612977080437088289861485151671436328734009428540404382245712792169729798103746745975640427771901238045217586878042189443651060091309159058207727387337917122565638236875240431726727718370812351343060535351178619285446872256547829356375161037246736171556876441743562546290185378587264187813862291675421728692098574781611007802887471637157300371030017605252112471259371808133160834806081089518893218717302814517738573403814226697647218175708768779756785558246193971016838856503518280347547837649271768465044187428151201597795033142579272569906022876321392685804974737201194459762653465086544318985401251910972796348861620190808630689751859661785430418644194591136714649554947507187173027639736672160212632532540514675818251572658592846518443447492488938657102766231360664515636830021963368039614377949428464922581867525214416920404390641717901176748331487543304845341370078930167445744205856826221066684232567455213543668780884613203553241262772361473373796361342849780783335167003383958610560450100507297975921305795204772783206342992770743033140046108563714493986597944048102612723819669796125800762305123539959313634319442810856654477498777308704788162271454273092758002664648623736018087536538727415121105192422908939175107160831037347690485889367776084247411537454464822500056980305806038043570672233692818982034057800549276025346871179931408335804076590012985381729050134885123024810220768499912176948104021638816827926092105836538240239583758150090942676708289977889178277068347586427697071300066966391111718842031092324598946802655394479267934543903302369638047224580701698750748878796388823587197992367101349147493232836942157355565169480006146987368676358651961071879806790410022313131531586868495699608402770494866787147930522503707992608731270144486206822419116784921206762241042956949719011429349769162122029232908344045021875175926256109464275309558446477832708546673494219058772750361464937787691072011859765649206838509404803153002218791195074127933233559355754779112634898901481831668974733599850275745355412693139604351162452681706227177679843311048355754892638404267811326376723480166787944974887981195075785213263968883217779142651418207354121851752730143260152611526474114691249912390684709997798430997010956928070452569561679263449328540501010535694337917990694768280502534215482809874231948465765193394230704225292902628292834923230095191778540559165361638555721254205357845352112124834418797917177207702026405191371169218003826803486059169185035223861381302304042225496869844801035339680001133229866705157405312337012420679904122912502514095687494435651927197106091655805181297032417330051792125579212908253963619852636021650855699045758418976356181685805009504077109920012851120475643680190653876133469503576733542544149370546316769812164809958585583095972337154659765844617266391594835445942891759838762896555311673587201730131164529962983289130094064781316138490223047299877481694307157876351104295770819434910343197642544569633566313884206521174795027604265295562050196330830431554269309561633707838686847929181208749882322926308269882509407733574789749337812503527198081150079077135922632186449619106009045559531372653394612288862884117492022084943051579682511207842324832482083744045964019200501977386603881501132818565937631798753068477147351917385639033899186911019212649180604260612438771190358006587857611502384091845005367807649941421421038662464924914198217859371400525813737010593564947242921788402683484336043326687304001525890109961729058957495914627272451606916706168437861846863837620110066271427126466407622441040831310846968030383099169413529232995995822591323652469415598197018310174762401077759376975515333849449208520371096461149873498163242742941036064578493452688435128485071636466860872751310446329606453149104905162601711322136900471718154129534363213722601132339316619133186644693250898697153496300314720783798129064348228970131003935740407517036133759392570013730913605719579853670797136468327837944374932383847454648439334974711065150153541149354371627760290044254129246240820024290988091064789121564731250684180655499390414444229925302445022989206674915535544284411968651931238550796017816205938753826028930935136408956989252951427252651585735638200462720696520703773809143415200241689262409814341743674769057905321688362024274746601908890707645437321774617009099596249516631565415413803830154232549318944406412737841884712404295169205080146267015126791577265380485330938779576237479226705059821753698321114147270282495164351369868975558308231306735802488511546143542242368751173081958300338398336801507134865566177103399782612527792500574852849480295956894206612402183530571524165837722564408370311487352209572586768294441643731942903250154248821764536635597625468645696138926027462479638090586703336971391547102079539754180663064207961822814251240581316978838012069842150481751142320982463640665756180980792926386813594786610102326573812039877304374738530065837315094436345569595997757936295959271433251750070757904089834457565702310361839887014195240047956137929922233645677838454421152154196373773973195484401903840201206090387500986397596202665422300034674591825078768271081566583612317538691004610391671515218647182305030819862477441620339374764979623740932920435269080275759242100404799833362221925628128781078949436193500258447564159775237220765904688438654807333587844640507624452419174977002427895746032139856002342150432576518671906249945903649931273656343720494313639883109804539778955547561914171058723874643538837382021619951775468277397475380620115248321972286005345536766183702974189715538665628700361685446746357348661229188294145288857739270242450191517462156904607037155037825911566851152241267868967190300371581505560064219147640657137405686685973091740228185633166172023807841733633842112339968574368194935041386582307780081827470092729219250374152483374787103484018326697432731122369770651533152393031676007554147259001124283572596324516186389616387982498962454433044728307251131590965925604723075637805560502888713708266405890274861870169901837590729139112732720662329806899759593544403265603218505829625000989261906751500513057370457965326040781963156147920574838444114102003682507211201613275438166282886455471481548659464371886507749786223788527365988985163407421182327077069021366231522289291009137354508892245580578265803230141350104850810814373307286981076392076117644036870218905497123563529914818358382894855392567856219136111581690279353829514087021639973858776146485659814169590089513072566912260405257548124146641298151144246637497604794680158677655833157072486720732798759063973585299316317382406689851009694641986127549079332568797738127376599655030210371054856458503758483058641028516433914950623725250715448539506484486061139076274814604662292505203065212995862732644371993033917627581692050173520472165121103718941239531712126664596258557348754443250475493194262275045622080630487737463618717595779077284558499079961503184023402840400474304738392053297806748161727895656466311668388725384632449391021761376297863528838925956184486954999605278469811756098216167428356551868551003464518014390406821319428352467836763562807826568091202019322882759675377865812073400003115491666927012579666546095752255752777324830768440968593272913035647895064095279487660515312865357062981330772407870564033096719540326473515394914902244547253139961917207300768581238182992347168970177803464947985027492167427758349801092910916333195443533289893096047937204226182748255876251396276695906055661944978556812973887058040248646488501374752073867219811646501934828599692810868879021457336430287117811081261215478539509568665359291070238165820869195142787079699777162144009600633868462132896486817700154070667918249964062285619142176609128023730665798650418974020448991781467574597040070465868548481204756293711203305792359932453495500706807309294286921403287992898497758502529948821795397076795039457052517442427852442846492351820622572805741373382401174221295919002289226723139280633861210015494313936046847669021905560696943254653683744418134443180472963848180421811366527729999560518646223394252915985234828541738217652252167908088633062593294762545169747510699258762752076024246095537570898584898325816212549608306941909875594764432618362621172354029589612938786325005625581786435104965405632005269247848173271599863628583665618484903550905723920645338597416439361946088159057314927944956473986904160821189909120004199299909593614572289497698877505627143026525656458346913321163377750213798415897014726048439781411631585743955118024297360740624650694538397605908962724951150878227657450328705418313965962795399161491191956176408875313741290008341724688155214913318658425388923271093022301479871481057354156113633640180557749478278341473935794930457206984788370029429124566298608856767742956317419407037123219373748064640918102006352766315417191727631568556507056711334535063881229111471951263786417032369281588054729796016346659786838989569661456791038972440846684181819670942020956818392766740490229776601979328210694403036266632209246441336931041751273860572392968164666233047058475387761704214513129364966233911852777706844457403985239832568534092343586724109527186443643925419002835238721485329845067271381655680407856698636451540187286141974988331775424434121052247192231231851490396868165964776228906947233061956718415331546522442812817678996607860856101323873583215045478103931297783954800041296653455620342915204117078926867755031304377422186416615296679442498495108046352013701693934428327799420283354771828237460368397541809437367767507314845859888198939502417324583989138085486930611685743033106413345821577427191284249875337394779658479053450180794496097212201855175301868054837267382188038418534774930193424872800160801447010293380996626767811896587522847500230001148621138965137633342752596332939259385392337132157728419649511606828410962892853124550967538555512252416960570779695716531567233448721686424278904559375938945658371513781901313286685180788491488712088916093368400347641374893847576216813948953019561670025635161365195468583286293962879188856317735854694522527837945924783548177776104199541204327622750967374260528783699888632043750727784433172573353976906563575764160250236900086071591091513951034896208705529590081923570399534710921882559820224587361726494634967517943490840146427133819585239579750815963287416509627882971676209227941857718999621191229189545971769904115872298576117088648020483431849756875659621146603360243041307055175283536306008291499676366649845459306881041542447391956159848332143825034085908107907000119511792134772849302018861113861275837039971937251194101133668669750646836533072882860575494807377360947757908199606684435517965136825796608400982985227492898998749690326987979302233789422727555905433419612942078464359403408554368358558833481092061935523396182975165691407390665621509868569743222787731057353990446237020015525331737367515777276788988553379927012059252115637378668430859954076828629659391685275324503694873454881841920819284106214528554833963445679035891001178039341673558049285925817520068107216256404091420533662328513263393163641469821104123147045963960187225007614757369713235288208553945430044616565823138857246313633943734883417251401730800361504379320749165156233287393965724947169272695850789285165025425581161730502129919368698613501187930745486797161601630274282699944544802018465720247915611326448944650077459361797290100282073722819209163950004029963953432421129057415288562685548709183009397949377310068832993754946264853141628282511793901777336866898881373324331709885563463507913934171468872886713070077866278624416224358860246357529562231673888325017629715266432214464649193135922628022212063563695874590307175759568752677800998181013833999397697160845889018045927007472542139158203080736763694803366821799831445564945793323521814741400175252140713349889113516151587116522986924686603110526269451194500293607365521057703831998955029393223916711930060275104723140185783922813867858446180664573405730730106423001713825543126725571159119999096625142338779251775996150566431674243312048090298108981576177213640946574415641171572772401177134336734759053870998082591834442146858013326274524958844142423072524741352025268425427409168506222086519877790484791912128580744506361077644406624975158555707184259231030281050234171991625308846962984638054622787121148042994629516827279786496717342140214749671392071367848763085519676504411035242882177477229199758450424548465017204552271371215974085131339588191118930723817137402212754358080759530124936651623057193266286840771158588976377679678424499319868846421804506980994928522423632801290270640545606258970132195991618208550789809625628938706535784053720206167653834110450467898273106544848009720629374554649546372850261400877418131611355541624991405529329676043018470388463283595692435414274932322462094672391235263580595039433421175527413550355214319826317147138318260833257772942154264347314929640756089623366632263023485135004468249391350745442570410290388268531556895997833877773758488285401162459905900244188919780120627636746898197888139233601646417635663665756195883426632569035871320532107170099759542903098257445752835462681642014217723544893517042851491946024630290574364797326466246555766334184146713422687157435360911335825651198915715526464952442873581472253813111633762368754609598486062865884530733704447803063840332455430510128859666175125530026491145751100296754314687782684428492040323529102846543578637557340116196979714137648898585798342313121139622142410448828086532915465715165071174974224929059095567948174095774537798064558096518284697007798691122913578714389831284868818626267452690809731170645174273517681277850891861575080029322198651394901421835636475316015583192103562114882791833860274419457022624840466006530067822954488023423100963223284210626424932800063819719864176256913133027520704071480542368442122429553762928949575438192693175804984809473799481284693507792531990865576431888115566109299738559901996925669175101900183240431696508769584954089841440526652650982190599915720459454759821975917038287956523143389238123965776754286160974141760196633260451798112559380754278969381084305128133503311668298105082127137035186131165343850858146160440337182080887377674312611256238377098327580486643924557529753127340087544536353141044756596724343934659937559113932527583503448663419676519774643361922419082435558294143772020123663820247194726976232079296005613773113343565968480010313746212503312627576844686954161234264279637879368629222876497361942076396301366441775499036438312204189026920624730887416463823784046658479621688940045778468399596772185797313266038159368412765098612043925789307359771260057614264067378299090786473354385423451551234487138601497571282981385359335214908914944043988428157414363725778543581881634363593350422679481914177790797315591343599764012946513866401630308178369381602864975554818332900326601818322149871402916223345201677233695944048846460840828300601888069807168609600351298710895555110979860971510365149649671826319499776587024231868297365542511850445638358680132992798449899672857849954605199494350305850677010765079191822158892600377222988403192003509756906407549329777469304239215303711193850473637541658246900251603795242583650224093237946483475918397092171026768204294025868794872215251793505878651517446848557149837720415126450833422005322884066146133875742405343324290606216292119077173021042974168489756697594788591623890473548809147696754093548528315826233200732869766707555007151287027026230352832120495764439963838815462110712998328658724233635927214506264986842839073384166893969651747045565477732030958967990247044720125305463601013931670471778719910215938359264483814122955054778498263150495460405365753085748268635071432534689736714729435745319819409673293965260803291787213127355982376544966287406917157505636916681948282108270470398908308463619682419092028579644725876521111506761853474350220040461856433110634992374709482197918250369394309831698186533222096363546792313748162523053549560103236921073953737838593176006511551130793083075762111342166944313607272571890349415550948907782953980260256480671657103640187705105405677850841289323251644621281351656790724702828828506278569661217119982590657295994224394951492062215011003154808817451637048776248010337376194909426752271926846989483750875355263292376004839484887003237410371351705499446138334369009355089295477792795901290883390548222577024200951454373345917819907236543615403154752404497717439125769982571495935340254786557038778287670274832879500990392083885031809231819739332196673309775585370373074052120548961677558084693788093763187330798781561539375184907047890805223471817482583305926039206496819411856237718977284279039070699233898990880326084517939491259615066943608562700796580414466160663807095931158963632123491607264905019209370596661392042013160001976987508833286700338244434386324031325551526909524385421764883322173499778554776835781420099053443584623879697568356197007097427656664561406518533586126513026518164213532310561705123693699780712701955664511989329152598374064560796440986243921748918516948085193836857883922351679496850182396930805616427810038793915244067587599334936733384054703433133325283646848230626121337271291376566901500303722105924092693374803461549176747703285277193334085139353202733074475660312783501861992370745162697902618639640219437838797940165922591346542449585169169873185819720501693903196151543867265839302131311144068686361896319094675503788075714270422411109578795975836722450433523667858584281924534689172295732506919249950118263725204077391109864088644053779211818181629970809915855377850388942457711257701279267272040202282396563741532980232593335623866825856302489254618351244847865510012500849094433386019828880603594627462711158899319222393563947045865606127787830899841190005610231694409090476342476097182990367921204624632356292339259742445045203599192118371459777864515081036610591807235808347272254878368596775067247300864059289825000804492928047460401813305599011762690993498737524749095323550383918714723232806218229194035507930237971176284442094766588670560258615588718894551641436454511589673480128058247390353089659306374350386023060229301409390464260182295703061816568937586708449161283185390020148651677348175811848045265240027213680728036984656811406410255447839544836080903907710879496624357792283955362069605718252852258339207446269816659417177713412946635564540443119570702297072704447171298180425871015129623599656680658915925743135353160818196603337386828617452148376105611034361580123772212819194539513165724410625878199997233500913734343543346772517985007647541001598303987608519257308652698110420410314903217568133877108677381803474221176729076189168645182054825785227807416835492197342303790782217624611572200573641886898286638462857206692893285641937545273278450773549055000149828830659909270469137972400360304933267949102341863326609900988217659648279087786715492683208175027742628817601965257292584814786314066026800722989798054023886270029280858292686356296173809421467763666088441694908637872407721467479251337334764428704352882097651152814891053463778675594961396287301145304408109049988008560906240456292339372177947602610428561804464983278644315247118193311484568941458914634745890898736183918697061246911129486417994709393720803170056962005163692123922208154937860597388273573941283419184536018644801193097520532195784919507569574146739657732329012579436380100223250845140323085523946506244561180646480785197179097353519018166957337648485402449460135782157520981366209619960745694919876077022637712196498224798867976457513491192208712555130625055314141031948738869017940034455917958747381200477548494415513044019566072552757433754895730718388600154046724234008004960775267747918009129216399655519586406517629264513342971587680109866932765092471275294480641185126990387699494823656352584162572517399610288444452853207366185992642882092875579206305100059544277328633479927254714641982851102441790218962203610451235254361252550141289666333665099014123026270402973279577670431575171224991416248743262320950500819332308399446439562374942904528647487802883776800640835957599142958014597570137883339454381600409706918536269515840142058868568969823951726507300753475796862239929661351702564260998519649182049055741536360967030905547201482504995862633352984817408554719634542271006561284186023256498437170331819886757838563259782748201255422826157370566229589576266423745870660991571559908137857100625284500496034816497218013855452890643098193607975606843440816981307147831707630151277596848069520437070580481955621331015994509435668413953069997658782567267983454375651236649342685640008179935803518999266405745058176403370439313126540246219805268062171339081302548426551229155071444831542264437306453584738793420450445707427555314710904171408088241119696076480621370852287607656745058718526097926698736572901762065174401944043107635904078912717197464825824070444530258022584926644237376297584932722877216946548485308228217408223722745706675043647281229376215158132025422382713832592272398214065051454190416417357490036696482419057439049433941581348638975810614891141510136872037584906189386548660339450696808909216491692049023894439157696347328261924957876283670914023405423349846118449573409935239416909167307711356521892907523418317043606771151725756422059583410047024322138897992667951209345765678346152631725603132093107199287436841574332201083627425671007525205716099920379317730680349551400203221911843570455599138059283162335852323338241190540680479100601730937028140718195161660798192565988290112227113165325904969576627042722564847336922509065993435792291016003983196920051336688837488946426430932393210334702872596800739528198936264928628700058384372258088007343617993221724288155002316662723306966481106713545168675461930513818147765601540253495717129322988384834407320230645761963049887571148602318762740513798354005141655450731190375323456796283106220416022934343261400802378654343112039479975416237228432560605115077604981182324100261503185435953294128326866540888531355843868741032010126470674795855561425173258498236882203410542468864245646990905679484031264147755802207570502061530500384886854589384601752541806185616507235277936874253844208271295509146076832969157639194792405859919704357824456711116617631252152476438928442210294657021833736965496388634701262626858943027673710754120880383102175990688986038694655487151347371216899439684209438481853299451232698662371171845240639093110444993590461288448821177994739105027982640408164556339246156225472203741378120142594984231948212626834374301268695581846513760347000676127969303699157024757020715202355847627114315526252346032739105905667048163767264901916152411684079863791523417997023074105062060540281663968314179028844629580637924081365748248135546245235519927682926546118873954362553375437619352149451142945666833130692526073666093387595093860834290559286756416253253588039078376287686007682274288534976032074263031247907910577335672442093317383783774032618717835179740077863580111664035389960792642252524913348067709320379932328376400466659327380682010909374641590224469677646495434241481125450218361482301970781959280357743040040364080744064215027649530443044747750361600721086206290081228773175584528211304708040452239711921067093849417857858720153772840511027664284855219620525187486397555714403265716383954950267930704189266754268406612894437984688846002286185291027975980637762626702405532708271658197648157319578717706568059849318309832624577820402063301648212014426402096569007098526014762883979317424187690423295835868077232127559265563536224164678036182735709910509001974182879887036197320643471559049751803767008757222179870943314762197538293706365648216511602705681433140843649576413772788506448196984871311656064153476433823387858452548387722088690910527520097683011748695413727961101688499010809227162874624153697762127542769923284907894638115933530309494523298330765231150168446564270817411786808442654056015718887188471444884772014831620943880471909114359489966021473109928316636299510317154695217765893176030683262826413778758299427672189282308839272691401625749483179084198262679014255869692238481182732702524402763647576908095531616236554346327638365721480690025832949240751485309020182040129954891165994442674005498782322041152798375345540633326276048928730802029386848982609174809996311154626867476215000400391568795811703325769601291367788414870117479792977660670943018027672572265069810748954405908153209292362278700351569056580733214288716619899573262283123434064037544372855036839969347814841203576949443653620063047737919233832166378204683929195589831963985061969611896674488595880244063307438722597091433923314776353320842296164933447388972820753175739125150970578173845260230225964017434825308995986388460557369328979483253018235094249066231645912795821570870752950279818800171124628796653477158579926531781974775175237544090846775621886603910244535168749265253905100150237450207570698261947457141923882186994668761873854095832364979334808652580162733350829049535668697315018625189113496313972206913482106441333526864287763599473709731148729653818213616378834403082225935651669608424830877639246839405578914824943751530982897919509615586118985167910748046452419057635680798956201121793717207071402903995958699831694095788569952531434513707489701333915063957029433764928937864813468337263699680111711803741772368396230989491424544224724732603006398908212676851104065577051128336493135271171130955983426664282989395898913710979310206097238706356060391657929763896832976663865174822499983890961357908702255205268757695090008916277051410823000993865198904483042953304688857846652300194215319273954640851537229035383285150519170055370803247038447492013812543187712905841398549898651434387030768561073935475743206895939868033585271146577154905087958319029654292745499024250989266134205212000874242065223947780196983190399051752490784990190743835196924018366049994799424681958081398193295295300977143129980343862039750736466919442790311342943790223066169977499637850054999999103911650350695232510610771388265500724930072267453142323008040008806741230166324383443160132186273523385921598261958884444853110236120027424072144005912252180729817855266157053660397527710400376837563365746232201781146858185347463164662236875791039036149839463161343231223493796920403014155547763375104557232744038167188826654249709980560946296990378055110859904492596365398996097759215498980992885496040835330966194498745562764733128995157647876989401223355473687149730651725256224286827096952066737147075455568980083047015103606867243811467756010021134210386800683920116330566864695211748242356100710081015592766654613833705989680702301981559842671938509577582364082982802069650873653208574411403857328160744779761925945363954594790459990955719412653526102577758378990647379392793279560599813364154772177546785660228109569619669029307020000234132014188171869725669051299914259217032609432979277141706782674762062278631979248005608321335717160587942398900249862754076866450573487735091612812884858505842106937346221968414644967588165911295473719602488741697370138256207386308134194191396006253436980708266898068064732571268002336936978178162203658556662845742292793504270880513303690203719322837735411877938617056277054550928745691165197936972203850158077750023438057680040334759324084675042450974240261414054227618743968688724509427313562831967165613176453310960061445067972614387043135118250201483782202681792129360831430882801510994711722130767536668703356848714347046956224462662820149232942601200408618409755967578389719708900372804934574503066656689750501663059332334902704254527127937177147028594610525853758395162949682249002240285451479196811297343020415153361657565239771346310261879345230135136919831088099407815646263594864215963407839490803322236697859690759635761280022621983807886388274455748367419785535883733673865060327163333521557923881277021072805790507238459411130723394841790401069675530992013875843418100135736149819985349911934194849400651233779916305087401210793223438585428812662284166206418406230753933588604625976890350351939664326116229836154119464281102596919463096336545633219142495891228145603544467163907627797619369532403462314727030485139319564401443356830177795231736274645000150594845741407573763841599790254360200846617881362896204265261132519228058149867044309494282652701863355478007031760859299724079689143016305141506070271199479177716513674863618118439149352364301102488810323829284415078094243450521489190052017544117394012216238029769000273461135698671942825628981895784985152486847634385997283701482977653882948705405057679064023104571603631224509538216696824843730792110990696172598521538183102544831278321311637409112928680295683214956363384091939637279311766975492126832484327480288510990334283023581644744471620716030929894002433964321295114087888508419283686562927493664554938626266356531754796751237650366843399277572992294477220358646632573582721891132799349122090597916370066159389116118753603517923857028865597608455304110382622036136095717548449728589571538541201513029557294259370463281362856735539024220755404446600155985349315773208060399800386731096380738313939475710719381052687487483811861145311905907537994328789916981596691216774127151953600762614951779683334476077613494377475072635791268851334798302201672412533189869466903976811106939231288625258628538521836536293116308541600833961519499631400305175413869824434597887485196481446505905304808687086991451225425296382566452933294579143299325374810108850563026322201840892997354583551449293770612208740931114898938909888606107633441960112753336014271315267227259295537390622705898479152857184702752570590963061059414690922729428177362845232702891554145739881146849336770111076469155730191417797423897258246321741805943420052390984235455590310118901422351390149415404214828086420435835935828316294306448626903352054469000265057156998296042202115855718900568839433215777534565371555500787569774041525554304026282110168337823679605012258784381216866036387636969116577285444493129142109870143299461945276442986975837258034738424468949016877087320249927048241792679883923948581402578973885806852214650119195440393650061761246266741162604895060187584208280472028238316748653828840708570343692827804056786372254005933890190703371681825279630584564347040912005844128615004845447922841347964348578984937019527016143151607682231301304585217442346452254948223273983229618279602725330928840447835398445490242544783624440222937181211957499299994769894874928628559796206977442212437965463378089907464555447680390742765941582296153523793577033774655716875733242195011998312085347200031375102498797265893427463060418632303963921865776453715493975249049554200724804361959443474713948929082463339762752477421947176491187622783100243820267180855382814699633155674680504080560604573892523625007522323548134461013632802753616917466982746866307501038602057848782576762565100078640723647007997400719993569253836869773517649632930003649151518005649470011139179491174984853320036755145239211510334931627134085231568483590818168326274041153793687734376202981452878860332773635019796234412043480309467280674762820591700584599844129908860823451617523528375850136685954641964727325196740426097698268855673988449992005386954018997941692240084483101485446410947325985754445265811797718917116385197247640142759769914606282341548371717837984546991874797221688653502823041483521680443339649241186773040347000510370089567488377011191838412555393243040219960892962995896785644335374309912282675142557583564257759692851743870283671075767862259959856012272236648502651067704134810222257440100545953634095957323930621665733372033481307981814673206857441668290693286886211258354377367752691430036084887312894372352118293587403353705986492950693946614729921791273848851685632711397845533411176504662064216388995793364841960870448002141810460540587835644366540817128192699820269409216522571701179768999477424245764538522857670837274623125527388659799857943972199252005093623593571452501290297490281999934952364022894184284066444105655188853378085113342332865283194949898086513080483005435214274255898401905143191758994380998041219699045432027298696143922544299349586408034087075887283405697213432793425852368326374763022306667186116570417954920913199606994069143709459029841893493319922460347662777416535364175025873101316989577537939082671370832989197145473814856481847979181187753011157748003823315173391707502461367748035840060285614717128648663020598745226946864746801134010902145187056838086627261572098181428634707398447193428366366093275947386303434469541650959899269911672284466218753904144281541400475934206069929566423312534464005176828872594320408065276894499538206303261917740842911470939294578728882492645188054512185990659811970139601900409340886645601053310671507610714785731329591817931747311366917368076673244624915356069656966640428924241807751867671777958925807966752623253690266396164715289484819898215990230368173266916258582858967936243737746389387310844455171624620595938377485331250377138392650174676300331861139515963945134883699557518963371029322587354978413523716826119813641382344161243016231874454581706621815429813219452127133668164024997596689114848796194951727514900170109020964174924620828623360283398931127366997758149043870910769494478256606707922394286239295059367669838272289891822466053100787764917991946901563580543749954669601132471065817797625660236331402613951390428191713313188207948456417470819078991973103235709917041658202582537605834529529186156430939793976874232036966194489412304153496219920094540138552105288969841081929241103004219714242773582766269794583790503743171519977080299220652512727773939232515139711542690212186374533291691730969079839250307089739499150739586055381028726353753845263357655081312692485736289765080671503376099962197610693106385124764387685183102604992603936544841559824832453220640642896026771983087103053418208563614026506235746184671221514277013463919237994237688893635146589273854401609071877737622932149446901686411874800941037315297789946214526191914885354048177386939403861194397183290093809876546233453073467797247639003370691148394034879732013173198154537467665828368298349127723126788943360848954837488107077567123661557607404160652952166489909393229221184558822499441259891842419466953354001449980419781111209251534831284785536804104384949434431502380144798792028604088765309736738212680957498157621406411648784751903188713744462362928681781055035793940176340021981556595337101428088730438950941658314336063154445697008683334485654039385229393759802061659340007672624209807817709646699192671155763509941281078092556372074964982445400709283872648665029481635860660813938252897321399547044916662575168212410518171419429950466247407560794218481387780684277395832470102766110731826436798435485301065962100022211072610422144722142771099970324174179453845723234731391917934260082031476808101437092620635695472031213180957142325433394578486707362757429960281282985656106791090166057294484941890291576351126962347681143396596363189435834080549314549946380068878602040491701525484994429561060040653130674904950671617581770921872202490515787825816438302817887246216686616012172201337597194044992877122092869248105780226709349309600743272947556813339609340214381272803028436935988115763471385563724765212044990138648321525742550537999750836748148594708962458995561502985292706299729722618685494478164475612148521436519175712176219357322479832799970485598028553530663357456481162979296469927055793487556537744536635837404549886206500971899045268868924440812504092151610225990577767064605924918576441971117069219632183224712277763028592894250200714102644951442161707256852979965251196930938311957378529154854909614824301709957982664104553123127270020911863956410957756648121012445697945472360929773111162826054657998482381549674968089331132240457089967229129137046161079578088575948145178849478453307763660176140785622425643881279054498187099338460481613144557840146388428008776542780369892437103042616658623828556915878906903022021002610512836902795846705044783166832442466600827276776151524609548465018485613480495128782233750186604486842564435424135517790719470571317488127357056631183291453862954814601997247773000793755125937195308113291311919426654665628432295877377764099429285361696961490645399267915706560815036043971327031916223551206215764287175048762518009363957805476658391408349032831592889378558192985257769065236687038350892975130843399008532264435290223112892159107461345444285774979587145520658060668623349031579456371848801606746721571714317408236222772187044214739209945001078371304053630099076242474633476086795031532915541308336028568427403746524019601731331883936269415951868897905271824898388724711033956303270133450564511064350583813077707748570504454705945841998590008601963422795105153253581097457613649793062975623012147764466310659920534695807250883212205311769142890575959996366318805788068477854243201775320657141239948195072964953916360367150033351266435321163180825837843402066207089243586107243702917190063163594161974216071806393770720842555807150967156091172865896596722548004775786522703941145886179304711457078594700726121037288999655504510722321038940465395753027720939434832801546976995026808186158859166106389504766579032503089588577830077430411470315281134870884643758607394826005614070445639566359899829803656589552618994606670070666701217614970192859891732079735311571360803363336115470186611714547436493729758876384876046508019206498679246461438274097216063386796488367677411116343371006910012336757247349546732427378380347371721728549419983749293941353308538104314096613946164641832289692711279968786973429133448024256226860294485244215664312313981308782020405935031676617089901874845119090885711810763073423803572328821944631711127543845418634559844230896588004568632585964561561672978691332344981567804501077496720003429222428424471122283101372589937456502117734821054658981007647458601869226251520044921536040860216967350534155362139625064737098767407539704898879877796138759606855284597200210280874879592912099644272201740038878977664411127342112161171943819276644759949151163161710112553510079808824101702720903197860643563108076109012257929275942218755662407218625778938247712320450888564258943295698303791913281276808917185097345815995087397864487295232109376886145004352492106265715979522408716980697964860140714589795067582002763730070428974506117833407806640456806041745559654526538079974746884178212569763340887766131757509728098011909986801360099724167299764550784862129425165740110252903828465914967843901418827301590178787510790739665021807915488731965808506814629509188330445582106849189716322433010523875987923391533565958499649371087445964392504013996844556906755089519823995759528147708812266009354340427447503575379708931196298633791248496151031906094039482799105466545778988517348659945392198710085032187916003708911928752614663918237899323124932664035691585628101587190298404174713464785688821636368369901637968128061334525766908450508613537547714794107449122752423074892098338094691147562375625093993434125257317297994814199135976018040872602508947019622283893170531413754471273579649891956799164131813803040811657131380687599546005868874135843904320137387794857009194884736977253538859837854795876108743465095616548818428921819267613042298037261034078087675889015529245010386567001664962508741151638076433030202478170506064292036317343083373280471977559271713909110720444695089796237102877233883805115844988547223538965620582851859312961793737612302688370010984994299364005348475113718665283072889902331469349227424427905559916215606565542022396315665751908999874395236096514287527546446424462610567106124510262245349470509609327563174259306033490656231305842309038371150465989568943848128910260468532045753677119809561234133840969260304133531313750488319977799369869315671870558902059657498252696689264445118654314601188157682137587931692594526641905707313737912792091138100000388300909380823608366187017624263171418646125527625055802777046463215104030056501250524455779795167611319566109723903219265687440870695740421964301928024948479287997292753266352124251419266032176244828008908276553666502307375716443665833975121048530179415047288580612952388534489606457624158231761107941182809984835152310713989502586902811303550276877626953153889757999074878451092436464277782805050817349259075724044754829199917217854839997501271877045189265118511536833099920660046945219355718063139823394170991965795913725436494067147538507727797747017267266247939979807031444783341312174694994250905514589106121748108762404733044982870269249651797170446390814452016455653063979054972676094443798620682504613677959754733447520915209384393602593818754527840410780352469425876263091320094749072459542084610864807237162685618490096108858456654769910471046419771279450302976749641152973470731870255519655388725282572672451523332006743295525631827261283592588768115787865881714941753415631266060474890865659581013290050842158920945925450432971132060119794620164130287038386617702341266811604020820500036627150940824381352697754395138007229375016037751965820323523219794763431181835233466975443376592611422404875962624183625861148389381494428783620821344482146289969448947774230800286295288169321758798373861022975210326853556742645532482835988521346152110377888006532534404188282591798177933595905284201025768295329908982322934381126946208398163191339347595946700362275443182926610849203354272170597114062351196769648135813715326025731410752959374959145617767302376863803715112690731730988034057829973623504100730806947250221638943383055456130481135774598205778975081692902800258424914806591582504727506583168406346579805919002356903134014878037494000160573440298881090627464327445031164837816166257999993939851949777429155480168382386486436503164741868431829480207628491102298396269831478960584352637045523083232785927250871783577130826667870382750341289989876055060716903457389406112028211979901292402188533593535034632768938131944114007807967346693138558978971189522646729517103370592314166184685247725257097750742207876130653224968531624819947672937627279637717868230917481062533348916410163983099365616413700782167065816542487252067243862516368979509025707673139350457367446439156979111685943191581797649082864435185044875091556062216286950900846445840388675935999329623282962049401987463198337368235521153391294365424524949663474231383503098377901763364705795945681124912950152533856280858689141718306416253647079751252571633729500406471814124716144237649949102936692279207643064600877330799101063008887963508781536554763102320369566503265500282914247234684274892095746573647699300017237851809039791303525084005401039309150783741096291585578012597380100194186596779110881020931184702253593425621925196773084179197709899420592394070751130137137847049018552618968471066199943137565112778881760191459961526941002950439442187411408883579897291658365273369364765393957755973351309143805069424056690696303562022985587181155066265865228520793882362730225224251443759055011936518517336743938616426455470168631590736040181653494947543648625925829875675370861774299469253183175201002993411346680113198555410822024197419653672542916787068066256515176826902449423246227665537390116193583766519164686951704490790712159177956079638111550221889210428533960799832292527891280488589792880560956546773533100757178074313364610267147991063056012185848108322969270577877253157001286973559588248640573554193310186345380141539711703883803694683159619710883157008261111859261606629269500222655750348523978679682396186325320779511602170517085159670738915453544257075755422037398666513767666959328049955319429385682394291683198281458689144675461502592724194594191491304710367951928810862395262202034181680066315911186480128450847233011645837601639159061458065145024293541220837036077986666108796803469304232293385579993103353499390623393353349567633619976097327845942477925175229473114047383161150820949257247503835229308373932220593299923385627099223284721858405271688388517478765518624398147490082575731944644593864709666778395467358223897324440832361386436500053507304075686542867518533851656115831862094185279948794511993391352394756953098793969744855400110400458873430512767593801771683372506017117735421197252565618448665060740437378723654471988876525336058639920365789516277304516953190205119660413853100010081608475606810148382319371640081560225899826426553036302140226479315574503334590940233299435964830682117536542937805164655781042905030956366673183263208160421261936347057887288695122374519359688784235296615239166816901823582000161234742622583811969273212361588087628840952040979530730168489994813441202879804750749564977196964782263730471387845005500379979530165111491759089040351933871218158770985106756106072773303728474444962621858975560451768052632580244270375636209867484764251788509817498961384500402182304176841457286269630688932611948930372502752525001745389684810836505024318239143852981039873628349969802421567540772908856110853212807459406150601195910468076359804846083396834394883962498090877957841428546967215305438592460127936334240450208469269988453067673592743880900102742649260430579148742386392005263919284217425748922085822292549031253662028408252912558126360204670920826490627022501350117952858910122738110216345438569057763656262771181460566566889726758102856451170178947243517629008309215583116968981427220104648850409590570790463600288761787006075741963932420612937080314547579535886240675857973871802801540655500750404501312357036770518620561949487384516749623458804678932680941530217743704703031455297619640389920754832896864063002049791064137775725243214657604412791790553479686778891987623576010415375715912718511336350336141673563407019049829223348641680398200357565860746214035136155996475659834833364362948477041005993863768944709651792746251948070981758358919232987980396178736894386052342533371954600270505475075284583978938296178804678243884643242012664253577506578854558259009489507649360180732153591830216357415633569769272253841451300509974137584985873455541885794258360107784095153348075072153660128500482800145017639223761552892638774768378999310359248130265077177011164299501961247644428436393505062825144891175619483162029358799279342667198838067439374866796740270643575736645273394459971196505389985825494081292151982105781070942387285681614878447184427818955087475416040368053287196986395212467285002873269712984448400355117566365505948523762653822752924839840569590036529052210183710031498609080031527933769330840840613093160703641179312231132697980451070064708597181660110226555158300372442695100350923200860209974066787493559993554432290304316556489358564900216687955265766473331452292676442626940563474980123745903143214176899471746823995448258187095727940541089347852158572148170290623800365968391766007927488256776260587694212961264127932811633237873111890975334651976697546273647962249134113773625321073415395258862316747347059655866639685491145363536682056886707034050054906219077887844058184599198958038865137486245526635621019729749032957793821754596984281861916276598588724366437567106719588272555836636440119779457221432902113115049923708750736059297027449425061524488324563085037231706951226265217574876705569609572435220472744740284920064155734145093933281433343909765707254285198219649051204641824660910441796427978529816692380637617185416102071236789812225963189901811358575888550484727233209843840427494960146215220998903670494544578979842762237638904866720220940238680317028115040489862929428606273293919477549531794758005983037904440785669281704187637385484761632139594215636000041422775386064180001551121524374263037637124859951791983217268434565705219912291315311337564040017642865635285870262146239163272614146315604166952595120886348119290835874113877396675561805913181282531805117856923746222876996548458135259920011275609332883872962243175356497516568645183504151954442065505659933303316024235743708278282294035437373230347112270080879953240569334455433276546287623692863836179311090002122840755508256452974268240612144062797830103726942256582918694126264422774339095477706895107228106959770765721383106455652000939134972783375211680809217872571939212972589562107348273706404529835433773349479785736339953707835531645587767648070736120935666656201201881500116722214038301168087622924240563166034127598346416824249799102381786469458762150916474403611310309959870526915980755345637420735105056663972576849634821252718867513772839047665771854311401735958965688360106754448429655396860861463436105020450634688558507826372921534993508198018605597158284171334709020114728019051270431818548210326537492024760413249393175160533401309953893963847725512946456418795581890059667771458605178742565590192742014439028903544567826699609861916921561837799149782276816551560528878838630852980442108996353998238070761541955890871841532583842558973704236866199251674174472215199900004155242602124365354390911080428785712615527574113851702707193984530925826691075475996210213428938231027910355558317428110026380186096991728149133185406404300669288842618907236834392080072356713563152719226319069078687606958871130066647894283103475950699045571422357998548929512550897185740471776869821277578146148602177474226726642993432405113742455695176867711528739867435197732543675847936240314437223864415958715668193796556395866445984993218121928642803255932873028621904149244368725754600730915620791108191947125025535341587273865312132317141528475911658567375898530459862736400294660069997269734436277413169970174854794363519812457481394878047372005458937855268755086162195580293363479531429275957096593132906423747371649637478215785573959119886218780674744288677403017554499303158043837509386994405275692432237736903115281960761425350815573698582502409177515295783331722526008056319242810942526565762150003899780382810181025849254734304737723624320107612205811394376903901461441023909089122303245717110544873416999461247643937091333501476922270762455079856597022008314318283697971709838247842636941318755399221917679458789977136173951786453500864541704258944864255165673991182124513633975936445477355034771150769547776647060189574049609709942721192298241319310826992688509425460790729625181752372978114488240994455728823322249258599171329062663423583108933788857395023338505566216032803058731327888100248451161887052310165439835240970431302693373459145227791633941933922541920329583545624059941017164986030303771479342011156806045416809590114695745831310673661230758989058243634932980254007429208349310395256462697103196106810928323166562276000227310447187068997384609085791287325232687026966405804582142084283433649477797757645113761687864296270233018495855773411261410039850624857769742845473755604704814396576025423125768677761310386406866368202173743548998682256936714073414984030613993591593382946225395720591640852969519354302608923022447044213627926595511462102545211565645665229410559830870410230412476294257733393832577063332102299527384567597421657968840129308093084987569640148041095729907479276746248713223507694970873367009068682989373783784670953032327528561387601363389878955322128010822398214728215360745260825992445380003852060882028330169522309981364115195092950606343501006231350974603902867449124206248423148791595396818750694505658406968294165845218065001673768560974352744858109295805471491749357905458946353727220714063145654322563694910687550056501801881981957780773210547651602941214019292045280722965279863914207153949018127191465044781117051828022187499031179506175634411678202970971843329102731167079796334692725942366198463501400699852790172107176080599543842190204131062113961542299625120954084566905422033057835963689406419258841742485281930571288120762881507026887087050124948806443435470750874979147627061094565913743862654337030356554443562801475673875139813638349586532670872109985241909792256579353685388270975366178479211000502604909512529054785886456333540923618712065651746618900415595951555427418155943978039080122045201347388395967318698905071422303762917405100984347729096550618242297622854978044685561747751793023600692914085400466174146774754134093465740761845317927327572651218556544539494770536779708036896340014893802169846440021345871564437361600193553564270101181785852756462663061192279032387754142792343676957181579531862160317106504708100944901983963529477142477876722784247039959600242864457491143738266101776832842681173233330301721396499410062475761010467740959262922952658135469156989629572346823112567036708872185082489377213308502083499310901698431415858890316176483668451467249495829833158648622466652101918142692777594833609188714127543798444168773943640778763339399005992716378123860941538245404606996330070247929458321721015404016870415204553258637599681617716006987101889752593791482564308200275030855034666081925205958951933640749866182292721571745645423131270440468791761231491884222795700718233563676028028953298190397980323742575581758317848170675155579844033014011067212530280354559812173186900139536702288913372805333568355899619214500436325393335236470936657393734460102804795862497650364081281849246904216091513536271588739890365403561967374310338521816694973049858139450566342519114328227006683636441343355028554685786645224959068950011486068276825488627378148523374962132858695926593747883232018450834887802654331190786961449609742367250493906914128283776448688957150687653985373244081645527375118727907360087905326412328883980087016566122717495758937716824677841511314993094321960124018791983798328050946048496885100003751171258643796243321545665854234284330084867299778023145777172869055888735256734110525824381372059535399371528202115754116579437722800842533456472744520814195836767763095424117748996183191620875540235531805838083129768753685432049003371306991163096670839778829239632487322521833694469309557106107785581477862415279350379268743310815115514720145313760280283545579315482952309816216925930231035777794562305711961350209843252826398379746430630270781662515687142115388177679177907596141012154121748532280887738227762647837439524519847654302523504561313556659402037160259044431039940328001895826180273066829624491488799868443054717207214521872154305490950530291984413835098340620779159683844343660892337710213160014095971680485597779656978320977215434855150098226207581560626121561266200189326657693108160266984217023614096107209161211837583462968169019092917875712467248145233026041183787892971297035756424519346229788995637419444007335731611667792187278179614556619055468476644612012093497069042764354081896963472799397195520930441001113673016002667791516010772388071310893018488390924677585357156678929572368413114120466358164494636743103064853127765281611366656047703493615292392709899640806124711638034238192921470143487772553602974883078360546605456970017465255126255124905303485647916887594699283482432197613760296067344144791529536878511086761475324069903738668711504626729558408334692075217297072647227802047669784081169732472951500963371535777223598936463630704726171005106473264103957018423191774925480032173238040357827510327605093272192416729374936093686767188272114631473176397630964144185367065444346362352586878697203614126820253194431267596518231907692267512725700314943980771176842258650092458759146421012981900805838859417394888678933530331575233884522180297851206634076168637201331233401591895794407342704274850310308613937021016696083926491965574627805940570396626678878234929226196684494136436877119778073781690402545403165109677987048074303382496262932252781072112625887366207322684001162271392871790146953233295324891945038835618342570899064043865502173028878693823772717968414242281685267386048001286717040924059091631066184266501786409553199319089788158447194587931203181060718243375112570430248953404648041066450720168559200583664911841439210471441104569866465109879471131249205288177361724541314066414479640548353710802559434850360032192896372804797128328601528936713509654553269632625771874011157127269097192697492352369731831332624478840763550662953454439404519120823903523772365648564686002495166686430218442262519844547312666125482827690461776539348957112843276180980552239826416614672050829720469423648594142407971842701034351267519022879409718927247230730118302685770656867962056222037850155121667451315075331198745799597703885099365177153338073453176301402657035896745563678471387710514239719826519838108431752676141797638947018261361717833080825702264756877124213305538035637414636943965012237895618319752529706132566313204920062050761451220348912914672525538768233213172190533732118293940645392425526493839349217754387350889693294860141460740718763011203809341222784794712045869195496964673846161733468261791406556977798899090224878269602060598546240651457865731469590246753447156720105671772970127889006236150136607816199331076108563497458166530923131784404172630089752654009686726343739855065454811941658679523061423256529565107951920018190136942044688909521826252360147625727680393234127417118736192291663448298799542715823345508866066572593766446004940249949483362014390154644838679388847598137205131434222012998367225122060489414129186371813866751803013086623778756621874775503954672709032910944035084633066155989795358137763565371015120795802784742881943853490940263177399799396556036093577590317884065942167632590827006428982016365536100000800317717752408186425631136762252915406666476073575249960403873771123412321681382619539928028931169421416924459758806205011399475963992433552400389392378370977185825355448796005163929191057558011841381097865226926331272137869215393596520468498885486321200135611997172051652288065311965613159110821798277920249963163696359832131260280305537624009815857867654642236887372466285978934704283748171074823711795723048060497532660007437297800349255857284054091490315721043813789908011096445541272723383590786545904966425969210751844966044491414806016594726750762136502507602678152065957242132336160138602164644367230715384186983231064378383691169419967814431136101123897457014746533326452258962358976079283084870102290144962854956545508987431436475045786484827004645917738130930427575081665301320032575641848930428988287816579507814220574543043848564206125224744995356980190949796956147446279707547952684370403733371504470796801704773355818610330998112109975373030660341493433517771615554115835239887874504469065552526154746646739111551289956942789793180540327840801826617500157037867987668311475935477977191971728034076025187986748127837891750338911980680471298830492964584317098627031761322925101423402903849147299417188876172626183300872092216325322512345177709601292901823053359588168695198722588542626687670357087314179072453550386124941412490921958806809620609824443948493299663949387522688021208686587020239398442742052812859159836329551067808175107927585567793093591654051965560647118798595462924406208820451094006249207526594140208718252886655674685407723538252615944473181475049542507785498423859450382041201354660451841828294520289036719312455730675831912739059753543438924678491006668135825383217488643393594114296716713687189758818380716620778013266018413898926017921060707057151423086429397110873447343133717318740620366075300836933737873262277112918272281215713573217252493705051111222545667094045971076708486847629328047386716471982112976431184287754125833972974633182775582307251056084855983134479429948679578336213497726477467814139853797010199745430639427947157058818050016706764521356033308141181325023910576354449394191996441632112260486541507701401932808180488222486861982229638949701274934636964544746012646806292313421193158737083235402411397385279965868909131330844064608325740472841864921588610839333689844376393145323722379667940206114191475292072218511790992964824057967798516809824901236147694052210926552401095052091368264764072500905976033940794937475573305845757708342829395872870218828191151947561841234858440200295700796730303606267567627881868794479052046304176970392591269081143446067976923265727964044286984550020491617622611085931778218698431782381228007987381939550947073768997022474237841903854007257871518033046721152347453559702005163397294843224624849797149126687901960733750065578183867210485069158698224833170829115216551983091344374120326615213860725376024681592963571820531808571522302422344221620802195536562686642019282307462905839653353528748577800979684800188986322047270719084626337384656851941986771329993961569965988260800091921742356301693542281743843308206160704827641764548611689911692880786842334772358093125124649866294555211591091951430435199021836593434052018229220624676899419842363658970103057901812334993933499504944537116580715015020560972335972357779313200190258807153465536503426193039994894417137607702740764473686548914191765203533394592434832853065182328105354523326162545854645077471873292089706216147227003224698650395926194940405608849519066359592665981348276055682177463749553550525369892612212763380255856484720782389318765827679323288141816503440741237682220454842130365406497306090966832745933802554778750720221243252637476520278782202622831436580722468625103569348352977140146728542875644227001132100080329553868286864696681306854219544582604152365423815924412004820115329969892329894119686926394466018688763570936241795459935494727936925836190801343886386837782026410107613187686123906577567648355193219344120488311814851355926570223982303134219739983378300236913462398048091573181119487065132675148831260041948261292409376801026344557616232116383387658447881893942711145471129612074417000851833481571352644447897281326179402762211752109652843369290810228511888270625865536690306419592960780684049903101463810914029796660873029465617232080561989554056514863796686954870835531269977915607966266901860141429415172249524222092701532616580747220134207567051746383974707547414118804493274502246113519488465334583187549164287675636956718832075303869197127542397289338743368089823853438123677411336415431329345630417255013358216231594942585753369166143323630995010057927815475267664428133817544967638511732818932161449916279930343251198106370916238343491055531019023702903023506267316871608525249724745932486204407925411284114548138428128122743549870106245280102424045201210056627300905084540223650588745867114580669876204358390220387256392573324207244852579627799798372718064384070126039746635023261302236231392669073060241867507947602749270822552221093239828112127800166881525181801837642712809577717263268652729706930495192264005042717685457453061041464560339110349446649708522690005665393730543495988128438723924068997691349953144650148315163247723481227470695593146850760704754053564772234692234618193630331978543160960760642470088959240922401359294558424280394869319686215340951598591735108918698180292508803781204683150153069820862620935362391454807554758578205818032118594564992675900707876105274224507136110221505194834786046067266750001176972415693252286743364593322230705471345270109166077616056047031985472455591884754891173451883042652446033737297417451004561167068719284061093998328116899866006642949615560892770142883684708120823303882881374417631657280696216718608070815422659332383556148385174215036294017958278341048013142873095239284409596805558807805893325852941774604815275680657222473228022809394546955490096516322922915329829120357291709601950955131610615267446046709032561517094616541791860802080987291707505071011844781780329817202802388464231097565800212541248841817668567175226032297624300375090973142421343305038653211411582744834321220645752219047783170014156388905889892040626886278465815431067626982908244448173116869606602046814412752460363149057471434593742491971567097615714426147276869494999537178642937286682263260221096237398991849833640282924244158198973158518659659775505374631968491421582042613771497999585197887098691388791367019330515690423299235201129427240096718086801505770832794537812231423304721700400544220503604137336939646465341857707434707429730986111432643453693068044926785432845650528119926883230027036903820242886253026311968763041458453562393996095261704106098793289980608193972913522237419014419855397374835428991512223425242765809399770142209973805772710541174639762620610818366241405163512367832973651683087116933794980757857594348296654809120688684698929482787204345340169643035536146288581864309785647062819709743523346017620769896194147868100551557624183562204409590504007968524762156959268042760881259411056868509655394169659174357876902472766697464599230179533657313837289370645714154413345887707927495381368330457536105151832931883598221067794896482675164173454663775258073103006603495201512721582922654467367597712505157636925216819869618423008188668197805493488812371144360542921380971128700324528102151759019031329720665118488360885751345993391502008085902436449303304668900334302322532039915845054678102360565418541152418485578951568778875535819927392850389117420677765939449388905644352013565307461357052962009607446823662036043698052805696994178426996357198846637635949034600360056836608738784660982684742010326212634345565820381626982903997322705007606264389422198136319732759614399434518959213348413257013705647006803140044035148580440612487212563652820431762590609473367296051780834997371223412892503390867454482226072430053081911354154334060233807348961056003327357487101815759356120531578719821361175137357455841881151481510109357930447363431532521316203869791110833299251508069072567443402439998415224720012962068276984246182921798075912212997057731566982700352833301671103176439304549100726634302929452192815070260432173469904630658728673537768415682873121367296753340557965639001301118960769691069746367546107701585049718995530844493574795361316779571960413341871732880135241608573162210467042654470410472752614084064589941487432903105399446120037390751342076814026738280389012517422876189993756263068390962230044969252595291080917188399212081644889037256541114752466982840773153986659745976459979660206283825287794198492644902934798846526029756256314735735442232390068083343393512699315321957701560240896921334611923119524344572191730915226231651494469732025012153487723345055449613858728694503336221948760082146087423168086401632378772928167253205307175373155945426398931954987751443111039687250839262731000354114547594881086440112759375479493274267222182270316606176122465679528606344480605264351230297416037103267541304222076584516976071490763043770235285010387765518230310795834420990503558207282466820016325569072965109438028902106571296084684683517247241290386208308218013732056483140879415596255810767542216602911248701324426408452941708738157674517034775292221004303324815910754005629201503697361944418015005812071775998896370871776290059516872703679053874138419471725468353765076671014684171629067295070239054401505070681527931899034427667046605176597198004306276214401069358748759168320581646471482570586579256520837906781970248181684763208252452074647971688079040441141460910794553231576739527091203765473307830816860798447771174557027681571796662796001471465271371046302135297796699131930367838393268726081885614414957669824206110305985520948476036990814693965369749958565111813754885618756822148171004668562113754890330665272736335582746449008171063910050787068916721880455601438213099301617571778118043641581146137575219307918906323526506789717566332808019315842796486788957818233282896578120524866181036968511347994502030376047908906321975807129059720941232281289778312196983041562207582632623004332999374605922558615145176140528353980971292855372410047216438679013314365250700648508654996911891501647196854568254795451899719583412188030150401406104305121163746636513813032774328358303051195828896837810330577188887338444045991042382045817255393956779048760213441232400867594423124768908725922173499253886402263132547325710475527920354021184923869108739322326988306691617876402590197566027305959120910499871323084944631779608527101777625355983997822470308251927337221985516793523546915047223831251418877606424425541544317574858731397197691093320342048003213080860643882645089470470183333089989265263838692020635732765965324328796201231274805185429304508598369860103088847356082577875177753873583433725366936172227123734245472564060418983236908504083257871820605642721223989202758516490501123939999624040574976451204070469484149605129784776848715169837083706731924570978831185225950192930576221007995045793081728056361624782165737817004351258533779211726282895898176950848278327953302256187506266515925143739027074415913253094474610950088212138997207035337063000933890741711015472873695251785885723629157360862602253360697309122129229992636243339757224176069090664786060952225849405294506893479667647065536566059889944335085211977534264288976565689745264436565324136074372526085802977984480530028377945116620783257186668328642637359137156219513726531750638790296831173914927527318960725361122572266108774656670541361427269846192380382916112336829080277259643141099869574284224536689550376668056674671847819344541858937598328897629131740093212694101284220926762081257863388363373054379853802355419496246321001921456408594212910848811432412081546852355890625681173704623112498399894222758862039669002043389596565074715552215370608481774751951048609741331484497111767472060544389820054564630440957345416521223876425964975959512742011370950216254693409368768620377951215916410651192653525971780512729927390049607444543154676987513172424362077023724540460512079672672493358475245081177460534055665093061279132823196686925894114022218467223446257780808347232668800325287747622198479644732832510779785221513565874706244540866058646478551122543407673573780943431370851649600020189246550491476674885740591617645658782630470613296830827242538384520690855262054005140900947899456817297181571208694395139578552518320461376697706635807221856125953501215194463166154208434022507053757697302294758008700313431787524828960087042533478222135101148409160686185677710145594986668916395881934622995944017402436980909557890460761753078284112167258148958407188482168768383183047584469131781806307668850030017778681167404032070700514652124773225780674741023886738385897436679077059994174723053240259182148183498335747200616054501086063518288144888681134052698067375874651637964483542312849396646834832901101475461557777717638290630452981805183812733128203979215468339083075772367066739642295281666848174183149483264602010474431832952195077518215520454398792754633173710678561564033164690950405679698922382285496997816269470614605612590262178190411738367918570219984678716287513365877948929084403997972964883383792378106968887447964633391023367081024536930253205823396466069261555823109163419067359133073212299927138147826254757584384047915716155611532707667484412509548887261337254433027343477011102294048946002487265858365275778532692585309520125922060891884836723890217848243093435527972165762908459108719323813260780899061462776441427167321408502416676987713666822299638345727884394621518369152045310255983728420214213996787442759237580040443131911856487971775652900073196084179459727742011069671700896987192254930515546188610654563587500340331063566806406892230562031801216356878165083675520130144712717465385312810968424512613598875224827507932193168578853855087829122146597310247451369469781494465243571467428811375944993616183663421212898792824131144084631757140232691621371381221773199051114031607486565784184629521171869424844493436874816650151551356455257885606442551248379785343098497174896332749924760268513791035620526549025215391107070502864700319142900285599439893332058722283644469687963420939979614476431399055007157449434669328655526720560990041909434595768339352944684900206617321016240604950788860512352374898270472563229654670835533356039760570615973753685393367752020725728434290172835787497102252598410358603473902774680241620061300781493429768193321458383185522156454690654814689437092497760897978888601191559833128751404291108786755621934681575212843281319986066101040367111078180471419340093930081922806332294428640953326079843361976107062115766703702861275562904719286345693964670099821010649359276343697545394406887087648704807522480131610755919316864796046410584202950560243427935779222591305725432003084025771898148707723900342475728064767720409504470169596816883716666956051971962635585066620396149046741810539569632918473307327652426707526563521464964141483501726257728540285853669896583395577440298216251484438101565600573679704914486328452683309067047718587807501967895443409431630038807829415555890958950494987705957908732817415031757041792602999867542011624911563156102062845554135737560090800063684052109795502994189933492164074990212275225309259310438102389309595303448747034771732757765246923119270917172149445171211329593747949794738391863884238877032083653460338916960075559648075525920186888821619175696160985283267319187263666748983650347849804057209310555829112645744256200157259642580188467829307800732447717042587755218161174625211792700495480346194405964354640478237237070706231979315277275573930418336144614802668702069169149116169962097308556160372540566649956244341775439284537488270583924869008184488987823815136113148548254931782109858650660078573665275679459047377475285010692813785475917915755600623296582735075689671593485869306800602369990441967871613239068520623907007304727767798223145692923074139445595644105020816086645418402836667749018321912335378389952054984618887635523915327450703538285070866826375460722785552314840971730923544300253320122622879021366386765598526730514838189676257985121653534182871282083578432255710165653855886687113745856452285996114247320945194979812610595552677599408928512702287636672416944248934605901362736469167829994839038240131032932779055965629648296331462615474726916103449225159264014658930044249021668818382107696685929754042568491438325963253364413584543264959081934568573943567180882550959251776988036440277272262144594821786253249201465164032122898673389190005629742955530037128948211736259805355279542380044895937151121654114032475042876917445189020836982994054698642549374874409842674938168750904741767926422554463715841193102833856912880749119439583397250118583386208832765707321643832721696322120903366419520040852023230281948146733399106129859208769920045078267749110503492150854508760590825684720822502400127074313448670070180594664750428260132967299134022134431408959087942589369861786449910741998602788553146215033514878745819318724069423667010426298766704936187276223057359737935976764628601667514961297342688554172773541513929610698508310437273093028084676216243256065109987235847256076952564864967189828323299845790809970443236371714186360592994553167872987061110868939683082930983175611591382261407581132005322736416653367817180113384155490442258331609677574347551190264889604606656110444863354185147341087055397626739518313381552774547988855725166702876312792491824766096734303818535056645660076746236617575556684609799169595097900516552682435793025041683002835290599891503235045862618239506993474284899546338971323320203871217185651081011867813236657195363231440132499248753739699472001398550116448051874600344728801170586912171181056873391293471722975461651173844600323277409606033666357263315168530086690832580401571876440964465006146238112691216710308326922886537238453259124554430279301666692101367352991007389614558664342290575680728691486998688860294014241690313652069704998373232567325856653954974333643989508597155302670375448915722884460667436129742140835258753881174765173728693363992069740868309627572018490851348469128345233351547645065157940654234603318689794335909367062360480374335899568434203502779490661135836213387721286363360451222351083405969277302913755925929697692422836452309901839714888772750813610428131924633141530142456777043684784942410971555250630715576019620520808117606640660490912198432458328990059117488276658108258114655668553713134021860778402586555097432915570951934844511405833418918182465016511299190311900485044916204195212741218257991950997868509189494177188063234099665143250819377587727259445079243732650548520708733012687021593505753369239603367330733580520351844644447922678162913591423072611693349451721953153382180775172200654443461148926623057285313313848958027377573034057740154272900341923345827627035888291576179233891028067036285591347810344617983967978884895865689602834358067646635618176947650834708546218717424421185675380620722906749295565908469365637665419050711793885428515553359093727027460705886161127150233588813721891806543401272246571864577349894752800539719427258548822829244744662298455687166918574991272347608791845621660275018778767771793177208564868807621961006639452624851963446285092820897117833394129064805741626192513229318763730292432002424042871557171163477040074511083146592709877087637453107323169273552850946343601797473655732246471231682803008386441530343187464322091101844360267513973994036207842914284209283269496558300824453523511483684271033321739297073800107262263011126102147256800100949869457441052775273279561645032723265667699656921398835293770446107909137327299437608885727259996873673709289661577261162199868328769759864773152049415183684017387808900317419799004007713534683992278075591544288119308390566676280238835944014466130328024039799739396446843980985782078925709948954812881957328313376772389574040824856067350766021072358364637024669340678940363055057007493058471744630092894910410599348329593842905526789148208499419774965810136428440610857470626632555996711535132303392577406885700668984829498231315871713388592336977053391885945856273613528406842918159384968094247972131439597950982390507154860287829332631953755615577560613809796136360841684001804114280348879031507472570847907537236156653706026745499325126073739355815517654388182127900506737876659448187173822866309712763433754896745133020087272123904094756700729171231250111070382345835618301616149001366159034850558914608031754490056952855955938853650414918640600512831619416848737763861604016670506268144790751796695772149442684789599889974131871072436612886519294026821150041002484323977391415380543840484014827644902958237570325756714898043660801502787119924795815724535890448617501653881039484793456479806977790175373532324047136640032847030315429273488373482656136512445198631089220121359213662201043666645821400382194584240748433759778405889540692207654633387148178224368311065438320729006380896615036281049537109337622807077409115343448570920327186313054347392559538251313185215003316001280945522177014768405126887911904105375029328582294816714277458287404245526255380797695448745454059668640352919998695111928503013197336017978575736127917788045191623825723955879578449801454907055269538818865405807545959212556380628700696236218756321048257797004429868638142455772208747983465201266209074728743604575783108184157264617385366839960897247407918637101471952735478561284505518326248414636629684014477434307083467728076990003903134476939780911209572807782613940198511024581582192045514196193020904374937574346117964857112414538815451655297574572183715763781042061082514992904479830803742852830290031172511162500680678466607964391497475914058922318971632473617402195627806167599747306219669941739061312904678886044795671521461450655602036448621835358004285196745456799620267694974441715695905650092413351998625895787436089340097643582144558758596958701285065440693102403479844648687618420806883430210571678659771004592777984415449932500023622918533774203770432702667308864622395751541361693657460619418673837015330880252019437812183806507014683818545436960493343808982970589203880113328823965425657934941459646982405802496057876902175567132203315389842231064641883007442413372401042705997045861405057196362284782992422684261102160143734979346608099760537668638780362780799268283393887883318647897418814503990788710742231287845305110218335188727931510070974152437402653925576801736069047360527757339205681097566196833837262411450649642896875903221816883585971587578733304658219784880329567347980502760726741250914073249524269150813233983669897457685487164383732764495267757154936945301714669894841808063984361429702358314903034649073487702053434530708846148171826773223602492579486586149731963479240146118041421859112482849077545796370387346393322702143027638458860964778237242701173921032412497401490677239103535422109221856991009388141083984284575076579182629018991584259208124630738711857539984506078836129225907346114178712660089111568651016607727364883847766629752960967210450365865035795316155991518148434658156551400186772448287844747403915871111936230996758247232995534574362431934621156765906547946192264183014942309752975283554036950027290820211666508310793030020815618617696587685005246816647357799221550273835364128589820878040715375061619928385869955439215951068017832112279008051780936120161185832893001716913455295437993535367424165221549843427666735750966241742701586969201385659749640756467469508034840715842360062674993558615725956227551851613563532302591160394305953026085174268188164146254757324635448258265540590048245120365762556623364915492562431904573390467948158423110608640453149670670121878145683889656893898937537427128208014244878840355945343381925729857085055658903808684376406221807610170508573284930637664938735843827666650035720564074571967948412359457236478445600432332240833001495124905044027314064282633764698114192734511632124975997489936248010283820801634666335548390704720093616352685418121991412485834967019314809021059825499210791097722457161298157268012991765392298293549116079910891323626117491405364329031572046412147391628147371111545833740659556305464057827128016035448331223356918251272089531953349372882509100340296007979434960711596000408786616339879721022018336379695576037702037684116822026457470254551023639235753963868662429826962588459573519539536184071562130669222948634404464273181005309099160003467595724462617307724220815488181812954790807450689298138120962505367387068716068326412743534108365453372692965484293607079128263686634472935767373104634331562491066342311898860609587246959110827185832514918280519103994964961493045000239613863305572917281627155135913279958134628722328772755299649639652705605454041432153889217004935983636886549216783724064272121033375254217050678212812772823819000265188222100030078091133645661200386307821084727614231973814245460740034479592310611888566375144309573304636960695749195976406610682612488279672105586386155202867415700835510340318992649823555271804622188027526614068892245843249240904696508394212584842083406825062430807409826964703471329714247730055001266951806187115589605808023657823796228646696816554991309903167454163919114505560331189339726133890184270968316205734853102732051322241753742773434145948873064342231711759391465541721575178590728665000246910227121622430144463881507404588341550008662251088409776350964170274212311790752149848739497959551285741510282719646237871817049956185543697405201340233329305038962949563331672031428704180831874244484385150600690104308759628623169929932009361199679196793863929767872674805768942156524696242415812656461186568951266223848823562259709133682047298820393395720788092574341200063790579988190615754585890854392808990236763121009635755281703143801279447452196870713188906430126900097459072053312873199184799169567920926882272732601788512771414572927918040703853529431487561539107465443443604359110836760930437096230734849476403405903263533425675567140613033825075489195881423260087837746387347020437837584529912060445189444170609785460887186132100230676521917487731827854929332081564059379071904366285694486934276149301726275472762291419887460684663721283529685988822416739280188103075006156886408048488062768551319127053963363797769034859170418187237387369817109590186779759570259172131905817584079908349920081237328729735249934657354099453796698304765231394472263749426896474195373085291793036586013938607044327914716957956662322931256499108420014050697042377820852971057744593318111973599446720757023641654593802300192306409801710591071088305326728655996934469430667532099679117838698470417602498851148868254999726111381060658096221357551343522432708381794891180712152771558647183848275837787191165041016438584578867664463983060099740632309049637662501946738668632005274917540754480368333968197074758045457475672771415714949971428884314487869906705646018535680098160493298714310132239208260066115422929485141645433588076170327294494864585085632503154568474453198881317593026353008934111258316910863922633856398874739182135253700525033176283727775209898638146437613689054765885284974723063645647620179572620066022448705169421535321331981784808185610331198050930909100438462460931933245100880642203335901908737899961967783638526007141305002042675223822145540569389915466371640536657862623461060016563200475091927171382561153335616614354824573526444003448771228725917432005234225792788911962536523391582425934451509175172686529508715203585935549744018107798069905203821545045679193524355385218262136473385920989517650225727860689185971879153016672396745209657174311299867586879123321699180172861770439837113112651070416335202316499769999350758869121388031959878641166073132689310340067523668955336904096041697094711833695444047036790655817402862499355093538496393313127307282223092090724356617083012659641562028356348696890105047969687006837461398181908571578613084696410608152339897888470222612142900706679680104917033207152996066767217635905616807875529080849034394774062999980007433748609339807201392345563185619866407997070931569616602753482726724329046759631440640277947687021077372755293092851225662940317731609119785698097816696472244594131868174742953008317428702027275475755270386087586276480431645568460971936389552145228026202583877759065887939968088871815023410215605393314176171905842953861114961069697452029823664717197099364922600121509657105995303573273209955300940230709796437843577765990989325367637283702687840601851328325131104849419958558914020991249553567849370426606518495314167464225996589046265574684838029403621322545510150641855922612263352964786626864300078716799835255300361722009009699224669415935866139368304414308048207549309052921836742126004630344991901328384288718627195262756050681831434332839529440602176645130550246268843212147062257374701119857139553801566534175688028670810287291736212810334545890763839274750068096312933058415963705004922962637500903738059495324176679719970363402108360225455019200084744942402092605443354073749403796129616304757914811581741317571055900295711108068839846811912860137561431259664493903750967226250266847442373111693819295987508486921025480892161098897045272812590338968510821411185002180680676620637925151125966375996351736307680537930527383748845199653333930644084153506986530834105481290213932403776344699120428839283558373692289099807063940414848207404679604235332800760818276156093869291890896774166573509322451854402992366612798126763427856086295734471299170294987458587160302252345312066995595416950555646891603010353228403441390461318628907367510344269726305555386493158668285117320650534152122586693106964642083156571808049520420150149722807996706596738425991875745434224005679943408824946936153748426497846857869414646903906531943822610312517623712085782988993982591682064096975551569663500420890067328406962546239836103808954753051212481048560816641796192577141254972903372367725070902424682723612254267335046489043159722560764664484942083764874541754434796179992928825024088108797717701778662644810894474849319135906621773281069147904015695009943119312881517631998016586524886495656766141045255103613385012208215265769347879936901565408872185616361098957648795233140817660104505275146309141480392340436457177343283801236624985265084679143398337385973707006335254613642058159633821939200824785501779781623330332075303480109718242061256098094090960996013925190165964438584349261850230740848618498805069064052450779529832990320646938260024126919974189661402793552237808315630869721299304398825488609858787919787567378998906785620671277735073547591574859827842339633890587063956857538172490666311147442248857747238659404501837475495456261958343481890961775078149567493495555936525559065529945653444115307131528105622121728775280052551551532731821058892524812334649691485202384420644015935470058924232830796776170253425642391268843143838147188289460604628495539442918014931758956859111669024169476163686437475505997183934459036572590042829549984393257911508760795309169434287069469639474077145861390854184591955530476368969743166577052869611887460026347661744806340846194123005156564033836059529322558967824774646700483659983076542770138432592297099975399414893760998855316646390522690469999485235556857571680582114560715785292990317831069229461856523655209449962630773793880245392962066213675258287878679963186437632664235713371602382916297113038730766531850787872014116411240321938160662702363278460995868382013320180155503859945037482470327856193204134780887516169744056785302961037636523335321880864887747232890058590321131360684365795775368220856401627617629909196709695787541298569645833188381367547390118308807738620665555198100017889684467367456643144642882043308017715913954073749453830173860361568773936399359020764404554928996951436587934841404295423733178203640595730250029397760069602564287546068330261418233666658273426835926641768668836449865875840565858726400332556114020545504907760867180442794905237312324890508974947108483535869387681433271994435522737671566415770787700113428790928736746056444869932901161625545596868127249884148948622110682027552116672888732569633984205047397333122323394408718360780971468279163520984592552641636448382278127613404797720410214058085655624980977129273292244730615163199449560605139986852393548099537462439665254149296985282422092121669888238708979737321318077642242863851748143649710262703844916832969895788524210627986452597426007703749015254030897493785827844864234042514998539600856962654027601123609824543510051862097272674583595828244637434996977195267449897417066350785032680629004281339595456830647324364558717337931978590404624390023057456516275874150127860495392097673322185844789761431461418280279452534892570488190100578623130308780776874963700246356493998929569259159820590600882991883534766012030313123630131552578491583059004869568698453581774132721933388903888982896434055076258669309129636336847038916312147291574535768404402483890299352095357645710055794273093283367730439114503867016383638354649447028284262224641107518787567178858725763260701237843949645244513152261547425342659141881281052859638568030276736442730071158884008763994428952109088907551703861901483610988037262318322699782525656023795875480480034168751051855899875880560665935870099022091614417897183600136907034899677609604149723666408503532952091264955803377536983218504824782913245484218762121296699705101993592851282235563606455867063448878347933780435030901593511307433593756902036803363279194674024853061667886537275018841924844726952432334076995879970440011369589393590816014404941104125074911571693068339874569888137686436753827614752340416360897086604425116692481539823865214797527813051505793579551677136623711347932846860398499145281769982714978024435234406279188923340363362767655376912445672592319606945733467061893466428047060452843367679545577233052960011494290765770092038292268910488782608522168821102537539389837371959785220556284586330897093683571389366419947113867187842921309414725001740939060684164531286194788691003750095027542942181571213664634422476893686454822585595720847124403965922063334922428543687949847575812816236843633719785865452456875000167120007322574323037972480987982138695893622375837494051290476406904062905708770208754171406763249558854327704839916717155588822801868606648345353674505627255350318159184122252761503518025215307821361345714348157135669072462500364271075088300212601145791450440992851773650331506216355133563906121975461782270759935484465389126132372379540667058049369209355300236510936533000467827497667913349710966359891316494615860324029425949656713969355448090756924531211346640247834793296446073384154999900390517773035877514152317804775322757415435949926399395876274040394743632086005789606718273896290629523688854441476875989086877738885434857321361291393902990036602033678579004157390328272469010027278849505348962076166996736560909263653247974042279842470050923179115023190369929562262464662860054933952790034072257290732003174711877678473222574009508576877763016309034570468881677384405372164430880657843761494817362003615125005047818337919348751411807665645076289244468075774359699227175546829919416872000749286182258367913632978376565346607029013640156527842172454817623504944948072954908785062905826852035002211485342928653020406632088828983018477004685839717480762887216201947910458090969394262147170443318201400932272194128557542098945484687073691592634281769944428496158458498169006531747829729416583110195373147074974804488161479044972823504132059938531760986974057662543129289612919055575204891326880310964006309410267040820504372691853306486663578985215327575674479161632941503834757475200109066060635832322056743794774490662109460289031417107865414180696848780500541190718053645274516529950819466352278786841278807672678989270243444979639045958435688847752451810248214719495805498926847321459391266255961382303761568397024067861569578954680781135594080967803326153268007532947781347394061334183629498567581103815488310593557363237654972405441930647727105710907524359866815868575132602502454374009764088333790871822006204390753652865077832730661396248008552824799037433576368443058571284864686466502793942548142919078216344407624282154755701067949994259921003700693650051779316052649962829159487859548331739315247462176602425332742184329689088015056573707571504632281418704733237105654545623046152210427693257997370365078590031759323222511208978352377646818710800427005289328118513384832986557702025519188709509808252671887230157205804924881027718918371754331716157859552485598409191429724712537898004793470907032970926885017629599913424102623955513328949646015790717863501094215314138087415388485974932169365873523289862636948669708119976554214429750681137301142560153339755551840893001709396581821941930670226234904680840869538897315429609075808710653747673439033564306971212621953956203888280833183432208549304986844708092751508686321276671432695056081416407841220212005040535548928997420811107082110249667322988903661195410164264829724556765084487840568339850731562482910306856196262954514543564583128272082602960404008643551835632413858157978518121100719914222578644833520418846519024285006864064902244954384668220784363047810068340941435118945103350499333141307072305977624125308015432757825498016381461076220763248690705587273264300698140723073301054367724649402287043737270571719642974033753634918247665869197737091690110458898890908218031535804669018413565623022629646935477390836233733308129030860044346235380103626323397633291805726096483951026022231226954684054862479236391779502731429573935941786938808744960904072458314677412056993222464896943125451761176445716770837211228984021490667082192026706050978007144229276827864218136725506177397912505538347150978708177883104014621939617691787652618142810439922936086187084571891071269920651800807794194620194677608787154217455313847675684729199268918903933651227904455812210990062073618928441533232855413162985888113867446368466009427156000491044071588536793196780907294040738098096912716182031206418257060945483697355389098285216854176660622136167152105911017773263018611954076295585095502721370192155870864048480306573807139237294597883073531700862957796066381942025548373870943764748620576263324589730223225632809290269869571455166066848384423797675205961303792601525734129566725925965476698496214250507938540232353025687556752392543413435425759458557540180433535912507678504543159311002414142903726963469787941602962090247627888307927143786316070366692283937502156030194154641622904408866870116252011064789918667486564922434688221917637052822318112263165218196880930198871730802717617726137804899050901869923135889752118476247277634039370986077613175211841255091312892303511603959061187998808089123465965897659928731587314010670814591816543722225737288646718435101704352309788719648625521198459600798608453786095365839122310398187836657259761855607455801125441779263726462694977642349600200394752994687897833698115062714351116589823814939425729340649984671833306600639699194405739484345932849915138529855007894867806180650764733572367990449172157690915046589531455240086733125395092491892231327519841639548031605134807082950163011762683681846550308763047181779755448258984784430002609774768934934170410260844978594624222754376845095141742284747962142132711405116931262188580011891477613580549274868756379057061816511286257547311743967370653497679169861912053472684382497478873016045885728980650418091146009467908701639642811414838112185359631012557404701886339091150075511290282686026242419350451232455287856917061191966227105202647817936696815867374768181707872793784571047665578585920074962931177651404190396926450056815117925735086542956311818792801882383782782114736876963537604728146242947577471517928232475077207028103445848954039393197590364785201134563669153468258885109423513883147370908898430165162373930674127613208975954457151120044737828660580046923927704220483006513200521227826680926939695171623054247695629221171592532740768926163933481715900761988339867517687868999754876136803736535209644701274083652529677146816069646691929199860840710258271524016796031527787762952336024936275890827426351008848529738909489894353741439265229844916058205138749246493278652033784947519130663811380409057175926384481794461514452559371828395807286315714881715112579019089003007461335786301199914229098837897437917992378460540745277618251524467140051296996174576458256494319297228547814071423191437920499135301129275135848154135520348089963833308733132856993346178983361199784194549631201340182071266541301985997551308140626221103674289831173909016772520956618943804711291748115196749910570713963639687762631314280790922136689731451622732018945806464229519453848959782931461925414108275981071797139270222743818335122556038461424308470018400274019256065519391347769383057754321096979478113291963416137672749461620385177402482073554534748308084504473396218677034474627720817199106925207724252215754593554865558857213659709385240084938962956216557054475775263814570709880819907164833545697306415628562063045613342652298892183725925214851597393849759165120257774853025718021566638985086939913371583777752773684105968250797530111964910362155431611967028483220507606819318602642339034207708830749661349523718173943513467711968649504838416000529276088597944819759013523968144837879990776660179012102389766560673076872766334948993034942256841569879825463201655675713727629402168625220801040521527249859481635566700834157238754468672732480715956719388348090214913949200663495401974073140672677607876518773410918679213378448170313146923114066350062629538933457165564839862078124787837603806950379340883465812855250907731528244510229617880408974212058311303046630755717647176402853770798203943217011342296895085033612412501205263632932392232582493740971458885934631366219049705870800708747443387339357828397851761454397558020929411245673745591582980168435052121637556211271708182770963833092487584827591911507707602185887658894645649430106183413474081488827776272783854083085761829937286786773900861801227257532523483439996155937392866765455258668920300881323998234778479094088034526356200189886289652375869021787167355062632720480237543423803087773370096056659144581066564340641793451097072739320229668179658749130254339799720265011951684210032802213427913039183242640281881828970010034020137346629026252414044803421068761193170176921892372374726692298302144519686616844034569387321562675627987608979015974624068775124567406475975285591137320300969886076151971587309716573840330724035676770842336351401792418477090034126838046483227375292195027748831934066316689937272415837450335811450161042709626670936698270834500953427259818575076937469243489165349470007503014397912188204992724818797880620420771170372385149515462325671171018140353089051184229184384586614089939846717629076823314753339308941092337574675853499523945220843734989582808898989965268439559396447957620135458868461485851804080915306225236031542492009318426099102561109793886491759239213530442591794613046996086177994787415040831560467952451168852636613374337660595093288246108185665646534772200803224319326839941852967328006156707270407310119621891897705307044574245975232899683766495733359170036362261590128399427614488812710545944763198905683217846910159961374133001145316586807547266166710629362638066373175214529598474781254438725887933359863119395632044589422904434500120533653903091042481058396463034559653506680766178399339796391492313415386780719250857738250386964204806522462641306985805450824897300030088003239558271760866987764593188596720206061261921425929872452981371690244528707800406937968831914907516293783703658440753798368241313971471702446980441829276818986457462230275227186166383711965548536402347075637130418937129181468369823431430653828570515716435551524817555994777071088793058306818027609969290454925409990377485114415812139186302013997902592943151224112651435154565665136387322020067240868701817025495324873807313256169213641026482975477497819851507992392487707475932312634201613492218891855061106343220044915424542723747657412693863415122203649373696869135889601164436710636101285356190778043474992340008204443212963207731012492870205748370284869401158702628958496827096049576098637410949306181707472531998319397461371792439097038580385508264608789463893173126823704773283338811941661932353032162349428671447097808074183888033854287026101869027592892751493166148942431916579273620823411611198784442597486776598090916992408868571777483694634243092193757153637788593642008818697930695429033582155214955839487621813341581496878350067556990151849865592985050325034740177857317466683494195981142313658668321431138767153848496192172442981261045271445108390469135652947469397651286057539258492400013958151924303808483563252539585507879326848475367859241660104265872861147115188262644829682863336331324147309812697951320833578814220834364898863820815791089219014511055752543070676236852571848129781373272373203379095282222986713076015133834282214350773295406332154450539499278631349675742237544547334101712377012348082218391622499788246327823729265516905914437761520933695795918353436276166100929812393630840757752038535482529467238486046433089377024337262427548081857448749077854628878832958493069376224350160085325024010330144375920874678541395924276324070797555629408013522720804658725395715613049583261201808206721573905861024387756821976780946054113389169300592709769135126600656388678249275982156948701987664723181022468813520987466178417067136325283253771673531680636672455424042974213374234281413505176022965515959107676232762915903430816641191318851721330848296211745289930480495149917849210338472160518371988107242464551378292423751582247185418866412025139883832318806174511572861713793884652851138611945628453577258063627125668627249646283793335313377240158187202490915420538269977177641250031719018524454789858921870603803644024583915913924251518527462011482043348700565493656627626996887839878054864704616639136547894865214928508095179326870786857406047819593103232445371122704067931657185792884295508626840265528116527480871306908153433585182962250646012790466156450740794644999495117567788577955494729309943379149536439177556939576143483662033563433304544512967742519599821482432350019224999820295997535476326393792792682931157137315947232281090483880245368086855869139172984528172844739325400379647616102058832214030010947505805811380276184715354872131008483111957934755090753436671850736596723620977801931493572096908638184409004796209327468474340193228330359181540101676218553535465602749142102128642399099759410694331797163150866589230796243713338866689539696922805909705126160350040548769843792521488579726554753539510783194002416659448416366639972929526701742521137621377507469054250135277937191583538383086743739537871943410337897969466054884647800373076153546934292525297451969443832143627710137796657616478288261574333812898977004104819057788130887991236084288203950963240969717324396099211703421275369275964825848282896760016509008670827135975554357230964099141373714526753828444588761924019126150591287596392171380986606031661328031113487096956767884400068192791284377287287415075104644729487661323643988581392412146907941886864376241285584021395484860445396541204521477841238224923283804971984899676340860267663826954039515694959106798021227161982033903157394301946802048404428224976889459663863573349300011066329816387441439274823101789079077022121877490214445107199739629061628275373934536122220126208466536380183771468323223610744321630483226400967189925117702277987623072749295821731098805404905250192585510659690497536557923048453942494616247885952479340924952897369905485589761309060741871389734298791968777592656230172094235827321552228714060165005014816851860685778778259027010250199792864221366804000638837969895741415159399785043671577312004130582413089512292793137697119029868162827229476143002544960539202292824241487357644218209648283391217443998629378572497334332747681720291364784284685187462211344935306448666989090055786722841692265771559648197496904888414027411964580647531620748423756124605547740623903251104776641783769911272398371121320543239996350875725394642975882493689865484474095478054387782896160218822242869831409830976278939600629986405141669496810065859166788791035523193929730901424920532990034937742222093480673510069614995026189266761182410041764196265885911824587168944239112025687532189761997544769861131353682572936389341740300129183067118634981846705935640898978698824022329217881943853040251921544828554313627727485609589166389587592808024184502136585004178486101897937123663694268598037341696014322683812978116197466782077045584847950872006149406298572029614033522307910909399440534195670926723517429443832577738147448054605604757020111598438630083420229270791390236344008240161633266941806737041419933600498922804684412942701560884830681620640357439023722676029827812925801841485934138609536439530228938242177768998601192621264959660884162446626924641546168690359419639179510264461297782357049690017654244006981428358335421657910201088847983962427059515030078122686309066681125991917281668388506353583446260905299081417582444003575431478108038114367931318865409344429206973931606902270233728337806653868309621773599638487912984631109656754171230316876067961659892030819649964934486791987978921372744080193550405982495755920430071937280663332521099308401139283152437047687392528030947655536002123150905698918468975341016600992025126720566543967534106147854361401513677345466090636427830558697387279016260133000896086795176709290327703451458426890786321068751127977604925321664362886757345668570386426616588254846691463389154198848998755822551161243384094956257902332994182845477623721760592460596392983656322579965796770880643812923136872849088189550787398558961210395512302358502535871809603786595859233828163781606665554315955052178053290186823380132400689275929701201535310339978051012778886510259593793324703665055973159552959374558271895914680430793883662833948985597452753922796933612961159078915682744229439800169182309265636572243931315175318233200603150023180621138605448020016969242579831387519720364653521467259224283626774305957297359956861285323241657026697041806721361978092482876548948987558977568273357385331874067075545871934729775611406583959950183250174853145146007637934003986210926376827262796061275424736187676836548836056216318073177940298979523680310288609527528007238808180018687314204974202990169347968879556627466492296138877839249203179576609575624536415860124812752359506512250709401238815408208991772239903071128353775207564703917720239575979310680372540613394031460797024111254302439661429037615115501880204127412593299048224077952870571262480799101167122882964082148416953432703146585868334652702790371898968112325450705465140818922249951169212624590277407129454644190528281365929927720986104242041776322551408579526857374510973643360684887994966926551407438695197023367163416265507705898826422759277093475875835039795859523755703349054598442870030352203826964213774539847135909026173163530546095092045644758658331399662494238004936335091490641474807857521489098094758911276431216404210436147548796770421861731957784624300505292257137799005127802432329488667816689387471449716717320299863428127132913737581053673108462627087875317219617990756985640577626243864958438929268918251134643891925810658028989973514686011024613741931063040332352522807820638139403228916733815428094138555644511515216541968786474209862384486875062785638107900090001260666573542905700068639967704062295389596487722821255095477542808742452067401268599150665605379112700576938292295065569914514210654889526230150699659912572506393177021921409448137219836861620327115843097498182121210216089574512981123557868217675470642632455193037375475567058220711070305946730939492667884926049271566809496377915590782839734439934365821193120374905911521986269687165490193055919122030826812246282865956850031706459539993083433936328641435753868951014634915245413339560174568173433398108315462666941267715602325262959734202692879938824155509745818961109932553750116591660175959156104641638532714548268109010103150128307231707044003344167371099255612975932810334745757130902490177142920591208776024604262659730433371815720047185475459812893166245731889041270038566436288780033412035321629002815994329373169093269869664790881514468445127162247514600690786693993808066430537564520912478209725223493283883359591858567120453082194010689174960081866792833359596406253808460225066046326326473373610602804137253101724705352316138179058404099559156877972853639668189729246609306898632232588278407740271214221616292282119934025031493581952059034193771473369036803119326223673212305237268104404590185215106180476538038834100870628522830408787715635554466230776592040771661716843981910121269106040917042033353694652196837046547698529920366463401807605998934868437810790457209262067303111602699655619654573042443175830261521767882541811086818954475574727421418683540469946545223426051664427389786818440576354094875331032727549711486205313230505989578711316923680788541078212327938727626147112359159136588410995859857182487980635845722862129644703991366715961678013148275241921484079846846653867666461355937030294197989665132282625280174898193488383506501457434677874414037843771682194934327006340672794845502791190384762682871195587359542768576126424919287097704147284600684811275647468304236555111957502418695161537994438523810660234051324493212183297746268045136193928201297481410518413420966057403396664689865881665847893967572061380415987817197631266963973896997767530118232785487265209749105186646939822111634145603203592395287502413209166895819840861807031394454373099995870962765686509791899591831891858392596155992613590242044577966873778345517554638313635363054130356320340552381040423992956411444690290330196110248570965352717256713803780631648467602557503351006557254931971992039878467828526153018229789801117522975711802402761660940458317669190528393318259278862151089124277686149722291032754305788395524909971085552452057614180809673370081109035698518140847731313329173395574291845928892915787921867377111023550178020691284304118767352834303729611354412498747314087919340785977447586624347587629035402574811412536850484401843193881591014071948243464980108692871489303151088292054215949837301918701982113683569915301720452165765963552620393636290455118560896606229985749987215940819287612892247928561171229264330991318038897410150773848527181821398251352339645975317067921335864581306417788258844283385368962776336054150427696314265837133586619489695690299655560585946420717153536961847022911592788891679677147605147432497489241697017195182655032349100411535254016158876689580689503197604788620860975054732359134915117826969422694972415452508788040637976197061383042071981321286572648598424036218641829585532485114654739420698856370215857490424208981292643027805348850184180511854769757043217729544400739575528402680646522641003313780827567231157847974367930391378331640501270518833220375949531318814610286571949778470845014565856144399327425360651642981698291165270349441640378932098916396893549921348620503083850371286341736336101666818229406527542318924608385675146730581313475574515510455581546188929812018325472802554814306244196499455089377350246511980379674478812874175721718391276701991627203829447524557567590093257118099099056080968095632504430144706882310457789939120780136873614751691750043355770874059048798978126402963558173153418876167329031795432006961848949434181272284801892162935901476550868566994114015443921817003550563180475537929718583183177614737530894665261266741331359756918676744442904407917904534558094630624937606966881267479648561150050397235887399014424644920552529178140374801812772995329810530132255377168290422247632585592846487188938434046236594717587465356294446149625019514591525231368147296042211809453445438392277247988359733430385899563799991059202179238035897606257075637410069418660264946518051925586381984020509532029800630433134126554086906038464847697401122618096293790040347904155375010306269462863111718494114015347028444991494738057273356627671705623513218534857523461013088487540337419852314848290653807435074083550539572688288260548616622154661661345194387047896346467610336581446254662846502780220506633939955352662058132028760872613088352106363584244027433057752611542889585151743093657219311062754407409211590973753112988419375612535588833487061776332279749623190460263115986105143925160703984740869657571701324718249149039503641885565966352693419859231960388494308505557776716955456535536144179445743215376105720526294766760950870063264641009508755528023677965400101826603793583817374301341540927429275552640225126883884802908960769537458176626554361144323489745081659418353349962693867570529330320560035427090334532646341992564567170375229388358536223993306076853986469908452914344516999749729502254138267383142900625471499645873824955503085164028838200361226017167783217506077911948749634229307091613970576394765597676912456159092562013630478751652622774164971943277638011642868126815679964582724649177428017035740756348277853838325428908491814369486018252266778722362586663095243013448230652261029179725933679100024701568728360933156726571854604079084077811982574698399545023150144267755161751859031330904332723317419947933031163823960386012077234954118031454301266958521136352605865332105102847501678183366495775656363353498533399672415636036410284803055005490725995175608256510788083320497072283405887888046782473973525817524789571098563775870952232976292105588840681988241650395811262378969537056965082482516602135944550352278492959988341269606226871339066227613100560635457342937799816359904669738939684837250585791946177317025123200664433420828985708694894987174668714658167186583523915754451867045992908662872966045052636466298350023445759455981674447510360644449717604847494914505678628641644469301319432725833510428047243128810193524508426986089175080807363239317549921266573973444090206503450305101262156682448222094005997978136112070323579543748117123565774173844047780144949648485761451380037368835432086292976103229674720900878431505426415728594987449655320717707337153630282452615740374313778305521403801261361192760951049255803945071526342786826468499476110689933218592975421275311386234721663826820630048953354500448794903705851427871615787751017487081584856270146152126982067701217690920314862345412864682594639615813242862854648383274569039338859580075879651835405042941525305991955951430581287985506961262416357560536868876337852639228857264066940595711758344890488908115038807768817158267247633877487766783505649158725364487347511305970595538847155995190445483720455287714751986377418395550290232968283085592370385436331165901162942214053791246600246194200787432307688758283916493083671769506187504214350522603246261654539053571146937464118862583279680808599991172241097031756689028801181503337728460411583263000795824121842196524503373726275162159014607084448284053419106363666609984938027423233400602321744067386658312365103096045758581178706345852612566367600289115179691120342119251415985627111712701723209595615650218208125000304212170314056206981651214934318373817732190871462595119311279106787973348358468680020837341427068942548085957096934054822964673320468790670177362168147452489483944394967465599088665493232534568987191700909183290701017103264976459728094355337819269509154419911708694087476914138053153309953433362245493953480918536677833572372152098384625307883545524285182701114963470227535584021192530231160791835885042713447804602631600852828343104484481716435389655077673994719822954383265186195936203019652665347689882361999797504054415877864090442396249741424961990288876407486198366159367981406423007665707046716793018800049530911557596359528722356604442728086301771811991900347937840015942255268727105614310798740325107768588385038562090958605701111491486789528866384629576102801927327260492879047288579274139283536194909652381224903367289308517351377920684826708880794303162210606429204494172702344739812465106663434865448817808457942096313467825075194947712414029386358374050529793213790307452004529970654521241910703330040989622387737581626773899621809107304719596815432637366020232707160324781910180421335741475971957710981662482491337169261434996846102799581400186945005460688066692811577292200837373235675601654159220181221439674303391187680671395975474210265296281993796096464703741959663019841683121617144064909806570697549902454194238507955695199372013443904106632687918976095484816027820089292260644245423754911317705885029337121175783086111168036655819177967333493560022985572499317959755415540724630847436480083594413341382695695954470818864228833632103275803236146141860705949836823146065751054455003208957987233870617728468154588866582863961681630009610966401292408874396284075031111865101367354242708445533345770614172339229793115891821214342805547228437370068202222040338978394247636170481717579742621284032660662901855578635128908651828471646634160206460142561431786060854735299647844172300936133326339742930140689495215672728920683242403970832197645990222705065368886596434491953496836456278818886308850068574682263069396588922843390968333653778461262064700943046290630011499431084120503752949570829832011787636922877711028014345006845803427234047640326041539765989610501602796860280610608049460804089169399688317994997830709619338411436727219824153467505092462045007411492111162250237668150231224598035309770636792429451875992135161823555040435702166217202849537937763204477941371549437029355515364591818896685371587994663643494645548884454230612391025809580942082137840494269167467377726911482443335333573994637456995588760405304642520155993271721057150002251514250453490221919629833962707498307638794478666092512706429693157068655676631746243837063489414563241700602952097845789664154572705517949527730765776149269064085976450672505416025855420036301832964526710713252010488711566819843032363261994308346023765308224921177153437672845174256100264952048394063531474180869561413061155568377621449566410212772949282032534859533739389532234738975071954849207456196341705577778629028370746416040879514666848622232255513166998150830105882554199569721158539934032612912504995575707672257230298102045127649587082726518879751663258940222255877616560543196391183393699900098979152145033798660472487638123991514397638233089579470598029841437209719794773542039239685196952642786505289065001124773391920309922475569930007318244979523884150233088128508613029929906475812357263149385404589430590183190519916548603439131134241968375109088845058515891518866954845036896150763424618168598160338109843507386117675549198641486216923755537729589922418070808054214571166229547825041777238359047833144449072997875134635825655371310288040415911184821890390651369048589395422745124122526260302522370692760439009127857652943241371988371879845281958193176374116094214428498046968291172954116824640901077076373356316197530954411900098648314036447952542218657291739176895976067626650469917804140523647241360316468117206883685696955275134937722624644621977433774741748359501806215739667568687873215816879863117033503249336244666297426021566125496161709488527392430430678294820236467974560238074318982185522157357089283738183624695007226899533074775069080523025057641861900703865172539572497212496281993776008361856404699932929850701873256724493501679885296766863394801608010865517732156748836795111176660375145056757293204873772370639306258808667757478986179024468924678452951776214229731160086300592574211004966800713599085535306446772931213315985244974987438959567087209732878732126908322372630277868290601970718380829206081150213435548653729868128025908454514096270618190597479331224499568688221376557001621584566702521928947869785249332639017772428339207713558667931893241771827452441803417517568553470452007560303025224886953967099572892341148615797776470527575052985991467132505867819549830378145437068067596667054688405868621225390640601437617518150934213068765949132989073888410659096582038467305893613693644066137157586570765432445532911680564441246679677750631108957942391535910471163806963481791995773554365918195393714156210320015704019394971917542227503410649171033144195182042900890778646110685579489476274051663978001775009762758051761726733183986353992261872132793076705414806737168082500104303854966738954390363900933638762630241481820606916860048735158152370955120788737696000631834778232666202532198516105418984953462538244567117137466992324190095293881171432732500387914287722413944664740254998179186137932394614305681317006062798742156839461845925722054124573282846674528783657292351836170283700995094012196660355227980415602652570863404093966372855431363196239647056540036901259646932061795527627635358905272794889789561145824982342066912414021627511060211435778939004641290153362287346755049185758209163875841703827521505938171266081508493829205712402651422975402640863296476768192176679098334558419430996545254819283736915402539181072539597644289437180524689960226217051955047644244508898193624649669034528633262613771505443747427507542390619435919107742359390633505854373764075361544382362759655894158451498514641301281945354503102004099902582944322935886026652016607824750075837583460665146106343437418788205461754447141199776818259326053211237865974942955780288944043016153752225385964215822556825643941021335299198448722228877736710440831401638534402944726561966286539588619634434383954724932417028170271505062811100969172595472046556566257807951092040724493513717472045143959681114143102882346747662759347754718699285174898159026063205272986724723102620656082185649342252947760047576224201439361959452655247792831852224756944472573976354637848654624408094215354870168804194826081651494603116927670956845659092749601669246337440085731559898898097929013010735426488952255816844332975542573815946100685058958565697678387653628063652385198339239631172465559836799696127168180985593417798534466404013700257762496262721151046006871927597141592721999226941724125294411648399519312441323220105543600422101865263245727212140856735450625874967913085129752360562895126444952068871285314125527774248081035594211642068550038107800732803667559285672639982827154962821290513219402600743975613080801210715298298161735771363733674239975106055504397296358002724949901646249322587156071987655680496615432886388267867112632690378652865822214969470833744505746459505982892152516175905565282641259205360151171492532921874833361862604470593168410243462685325096386048142065492488804147604224248715716577843813872256165891232745899730822111415790746907113217746356236220585747128483272614154434962693931704344181632272188667589047064187965134218149607170757190307245906165841928102271495674678197696204352871555249201528028327946567610297811919707565955011755509096073061529607854670394742937986997219309954067974831797123771501971652460775857941748145643541064929602144406308133480968458625992385650378098505804956983278647166205973842102569099015360735486495312809943967505346865566458545511093906785427730365799638140181226940762884622009445608762884878332620955498373940633684411839526006396406599862971252174298110105216244525474259861357809652633777694933554668046973304897816405841691241028394801227126263782066277173772461586882494874221132201846863851516976726025619747283170562930330481769043500167873913090514815046066305449208512381519537430420751222132646548320163494527766636670475254082680271849819834155673764408746006531310880745272485094844064612521667125867046240636761404136766521283659111677069275404032322821364232138020967274408061202575592483945766028891979237115987069628217280402200867253692368325169539778167952377561937248118450979115812171517723567726360281237020609790506469042118195788136548644855111552748747337001202804231548633964029880562647010000010743616763813168532613974522958777897187487740062830878434788961686493903260472081853931166754602820656152067924717600264940585897144432708825341476551543531380644176479264277172270957627997611969255088701037995535824342915333301277320301860368370681001382525581101118880755402149487061361026741747765357881398874409589643457095832835441612615270353630664497713835279506221702832531981861153740184229844374788610318453018464033464169905857933668125496982172524419706414046022003035227885899719188088356012375667747627717907037601146864268153787931055223957750446098853944631569270576658114135764313447001621906942732512992590331402381252165505581115411413309462457247908950751627060848923690662668730967931166728673156447976537142177538215408669649305383842755812669367210785136803638931648159646110639552761871475653706953732910443604362702840235793495000630193548201822342194832497738401261339520460350453603087608784166152493124841058839985775178662326724305540241567382155140547323243008856512724513989402071911849312470273778507327649909705059553186730966102676486125065445941193301797698291751793129515553860747528997253877022982959164013736960983911684273576956411273045494954460476006109535113953539341521326797161722490039959186513950230485929744197586417756903476167232324253866433721664069925994991944778117936200813383139745428925472064808815436938018009539559696286470734586454141841872401296266148965958159860253691665585728908790837792615531372779962789498212293968925625634388679074976224852052524113390761217357072730783886875674172015525562982166923780734644052058119795135296712244091470648932742859543335356429434519037892622824775291140158421709551537575541149250247112152274823466700973104435857926139120655142108762299972824032829598614857132765404420703376667026318643758258571187153350357158244128318727097631384002662020388995439121644369270853753598854717006261514570202073645458727330422884809401632574625781952517794555926573009718308177613240774005784117487667910151412740125594576550697278065191754974516377616016850103343580250910930999432573900982473052140022727910571484043972000594988046561572886070791230777089541252470101075582605844206793471235627068962221744977654128070971689856567847670007262203087851448399684348835086220798654139027562789351658864695411725569993413304821420633759080435833262386458664483198099704432973584458606282176399141313650271289073002598220007946461604789162595706748060492448861559610846021354329315297318270616019950754103950711648244826106728108495288167247353819075245844482852538903028213527646321838747533190389892598913046379358459599142499168560350606025095807531318163238007031925080096266172223995470408285223971572777798594631248612248038168275681147273958389913964844802485649771286524979765304834927387770581725966158188740569616868387578447682693241832335270575091535088471114746303028348606249908867901116965230767849759150753169054165025851666462187984317010492917100264762388881226198181672832349087042339886988837031335112205982774035102760665632568406548071904080633011184145152068622340804867923502825126182554185572277656761056323426245824648582592936913711069155626524390027769740544699010605643019814105029065707659953646917991736099934239875092987711428676820231439544623481671723840382314666248555215399711915730650606291955887117009509724015192128741756235101978366291832243157726137666241415295496431632400895034428503531097139968441707613112332605508256783156267549974111221812324370602696835646596235747515913000412903715942415172489252340004186347546038366523886994180460560443755190026567996278024647915709581992210346270493179968430177647352186046046273872500639023637673352690547604073314514982675165771003434374118590031560934173005053519705469937021229780776959207118986322771557565085551699945765732107295467539337685899325512532109072610475762636253013160986193309490371839050311471412135938341722296835276867829880120970648950836315330116638455611524377604634862556022249164784848970706083418266156808787060282598876205506798440728492926234258540334107853380221485686660440986701340429545728231359357911981102283446341814130138969814231515887733713077523080291134252883759288397322804754369750794179526482300366063577112826212294659579664098855106976185887224055354636220824836701739226053051023157684052486193567609993300928153403771918663609523808208468571984170739308829465876365049427153157932087692752961410401263318811093049438857041140244155258625077877014836113107303142414352811547963346280923757743572307258347450718528090438368196549554696163706392722856260917113254504134623261323830389280948861744642234089945492569449672426776466826050610589743241058731511800454361137096419901316874660740627620513483347895591769953340455267852914322152113381451688506236309303517477167368168696147163712382574747662516575703724466849109509689693366039030955032040589442767157776098889039984739306147979445295389525286004853527557710498157153761000537151753113331769637820365277461118442874307112005946568258198281306956095693385268454190556614457975078508202434359748497557762465085619693693457244696133113276508254141959567844334549119521848689404626306524147677303805461095698591173803639418829515016219180978499161552683763611731720244990620183082183939684719891548309778924585483982268651637629545927160829396088937501288912450184676357922993102348819909020017616361110413081924487401209503350865622316183822858029379927627595673952933115125910735719940174666452096471925709269466309052561302212981055826513150641925191814290199528834349436010231355280294719386674574583737195729595902669769042705787818575858982949715056221048148010842394653514939141290359332419056874800012422517150451093505187368223589568709085952289394276190159761187919402650742594815992473087680908387761162916248336839961473817577602081250947763319350193756245503611912591514358190345885389913518767355848443126186837417401060838039238963709783829553935435295662623425516158633978181048188237836598142187302669579771097720680777092845890298223951155850683436697954978211453682866181621142686444103921621398729053377172105466197280614547821956582421713731376950045986060691775041630103215137854605246414832399902835840395305360072968883017649027386987215427551247306292779279200913325522422140292944535030238223502495114931912282493507330747718571461503164209421143491979374463026485594833325404830157238952541370829722037750582016760664974120661678076917871784096298322893321138053719729730491873665035496020798321894695079386174032999056479349622835132020700855646731306463373714731817470470324406562345178666859575152696521218742763456964719652333813651589016080885631333562513452927305894236848898565365780659496826199937879639487217910614553986202354358916317667108096473972940383422337943614945473476489901690384756419857320162087219869783016779599650547575807119228093011794648359118686243561481955323375460067627270937276387049197251651640505248286804044582366492651852792956797120853415533465654764826931642699849835832512980758285302198928322428116125490933575288304809703971596527692777916420399836448303914935425767448509572094589029039075584699481398857561324589217279612715082787843487057633222431333326776069639473296241647937406090940252419195988694127040624922219367528794840865127032297260291752330010676291207628173390537542229287120390658715841773829483395536472860665624288942790154325725843595450582879059268866408386869138685849516565180713339826177918303251935538804659320770591014035170072524703099568643396836451398341359154396404356494359046684413331599220559723515402558332837382473602344433042716077399665199771840358146345171963584388705662876298108103262949899671109234714592635299320346817965164891973984417617383619564629343715373713696669157152049126006701510909207452076904227339722415174960108886567951175752067499847778808165432612417537838374468136746214790800780560775948116719347381508746372940450774360862343240057654925563432138001720718452665966887671057758284809113505011634086063051017649406103955157002847559343832957861218147941922960511206683852236956357432406381377175876456167721117413959246509267418805920762656256115303911275049082384332701163763287447253940493404138587017560357460517066718196035314615529393232292996772844415131414669197267401977282860180670846698592699885176003067924498293674318831943668583651658390260751308604825892927865499726083367189950373247511197529078138259413133426103510345115639167447481637366226460301879192835482719312018948843911765476662172765102229857447245179078795334682954195277291559695624864915718448397551099030730184754629995564757451772998957666206953766347505803150653398686425329840837984334007475720457864084459198284926884864958220132220681741518006560793434409420605409525568124461944066868002778576043645407065522880907683621663752823055504379283430118630728943254212909018051409784344011764908913363669833082643963633117780873736440102704419224473080139190083656138157379804830950849390526293896715750740340059940108823520892828682913017335794358080691998036543010120930812624097926306331722730206251840235938861096955294238588666417370715049920265410201569368918152733454106461809005613113824794506695149957149160387070949992396726538012622953266460566258385439178429208075454457917994618417777625637760125482113259011873966633244876089318099224725413189853791545760032855187626909233983597762965723655391731049684549651700509839659306608222263989476660917269744191266224243086302956326842987102284823353677553966294720468048488101877475000966436396902806467400715462812238106034386359724916213745358242602509828396354725749916385201049293753720803437700291891720012545861772726324536058109966697662686810818421580161515395795241778641315318037578856302583743548665148982985230055306700652031962200309353710389445086670160040138119825657263338313779936969179502851840464591739322103078310185596743323141588481004612701284052681126897345245093993202401670687653736982079773419139817599197272216024335501952894881513969005487796883757584660285521021165344895222296762827593180424506872539158249870139410469741815382463732416547269093941074981183003025187874727990756355480738092771227475218077559906033732274324339927879120417978564276331626467642542618390725982908468476645067304034407570804382343238632119235912476954654612086175068464242372398095833854963419830568516170882447884789637561208202414728373694794120864119499384526442446818534448282150229977942308802565214068137950756756917739073316034218740312385402694637071056967469595500001564520662636802105527681762689812343873444907131573544912392082285964930642345107047214219242595080795660575808951617490949854936964536485588251914714575344581965841504659476966441459248066842266518782480252332113149400682484333973441142466069487738657938261373764956718691440771191411238564631979721479987113079182170802896130485596726177473069616388323822359663903659316862211689602189536658753359165999578826514560631153666937853688933881626646432871190575941718804596227164319721476933041650965091245400059867229214388969469819330567143239659768890831359098712909645753943036625476031593129070662787600064546720619824127184250881241643862138249225107521626896816130455588337846554870081157260283872264571603581642060724968867212344779839457748886382176373912369702292205654289034162806203756599302565697780258994336588801349657473594449360527123665192038449170588440202924624438670475212544187659571232735345068085233549259320831875088819670497224514073375199415064768388575259816728756452238984129849782144195624393853177896657319252226741795948433662728046566656166496499083179474571862862536853711360335503113755712880474724355976202589139570398335980866812574284940037090207843384335842695405740139833181349422427837132622948013435511099064996173752804791579438929970327630860540105486382741762562007618655980905553993913763324782096863904359072564375509604588830221729092302599088032334882946281756479253885253966887181027962521107888714601990944154593322052702122250699343175525302211343673728434016053036647112414367179206492719104249668795216801815643623174627371234577472843717129739889698286598840031592724786834073846476095304090929745802343877617194321608433297003691601690975035551886215904140212430672899608724695826640726492956528279082379536483456272794249410500466497051541852292804393906903681171809510531795260707994536326404654807603149864857367039779297132313398244307209406605226002201180145328478423588796838872783464649902453034278545675058443153413142240500516464878408927507752340190067558122589030829077680565851575591271269453235255905154816678794858457508548165748007964304630627029702892443675177960871809212656501748196961675801802078423809904529969238171795567364931698541104455852069044502800076217898449693789291213783487209942262715715412278306708182471096115202054903379055362560361255849231669020961059583258416667550857873971965023607942199844916633902151176979390613854919917286031117944919099608831035626189513599878435104035655207441160155638835926212022898360705730720312736904017064385209804142246998202552365379823017938105909429147608213676775554254640932700306985003507185874229922179419517965467606547670955838914065299052510719358182957091405095719125458350296158565331997240007459495621123133736346472894073444975193722248681225289629818348404216943796894456944992924899465568744822925168059631678514922182640430604883591847637223145466658487900743929382898025587239120341338393823743596192779043875420452143440713716060598366388798154144443354206380905336503958545434740365434653596876609950083547994083869311228088503620423698014923174507940824947789937624122472059467380903080733743043272842034158957034970628902042283045710158373968726356832784705583373047733434621973192665929866213673830195455974308427913936705108669839213403780488384416177803256810302585677443271403732710111723768098646730151856025518510606541418954483588507683311631823873533264582156889466211900533439952959373235231132441143749655156280879988968990780513838655366322801572487693747021118782625478870438405697163321232374480404837639389701218445561876197983462936897328615195278590341533512632529426969370339633040207503586411972213974275455469511633529315684181924857767965153294260959564669244870200618944804178355964994455254838853586916671976147764556764721241684073761326554434391409680023212971901812966708200013069580319621020888078016168838991925812376474613269721987515067124304565257036518863107836397036911870655792181205598181364705858269093695540669443864716697235705903738519086247309235956797276871154050208929470017921982061614083063662144848420722683032194718911501492828735962534547290288018197726613564435143470610138454620812956117606611521843492624100300896336500881392107526787904190359049428807029148140426701475162257378072053990344116947116256484176104025606467238851075808707597103392582447421344730098120893474777874359349614033008451401958052400549766652349922748803405856052968589472361965130773522752155573828221862085955949007745387474059647942640563347645426992089448525978625002844832402466880858411326479972763676859849373870072768482656640547601730524823307201692870236038052743817314211596888755651576200031184544234730091498792097169995811994295481618759097252960056769345159668397636712730278644144480877186135462384260840305539194312039799608920599477579828004835691708331833139025625770048121075835524122510646621227800493623935488924081697057885461936128118524598559240716771371286650993715448764857226943605528138812675494659639804928166743529993345664207785773325764203408058110359470376163179445392870863648941911974475602195796078006008753848998269573844726484517694991558790220804586262842057162058662811128045198254519981846148218525883151192167904256827146715207008206392775073705586542673363306679187770428131658763924312927374435013983472809037064164384434285779056297894223855250257507763021311450258296905635303474415830075363810449931039777156475497213136675353871950284983832697400983860727289835969845223630195275753398625606921358251072021119201823000389428154469121282653444206250473303098007143326133526633682985158923199715939140593651669025350131558408414989269198732036401704274224227145302493710698934416190351692626646270284535426510416401915871907856125132184547900778995864606810498686472517163015718809805000498306068342529591281155873656666464035107051267578925370534764018107085047653625544337660101105380596637544014443214228537200316358800579652625398834172483350608364911696883691209027601183929062481452655735982484255213691518018941055002037039758771373811883924535771112447740222585243382232717566622646647561641292802852175031388166283525365309011279413023897582590673222235793631994445155871303149152920727079968623652446123099172018111432220547010907201208382330095227542037343320079160080568911028447485755021641642709933055851512168043919175143044498147497126405045298166923358671997967575607059069351137669412363303495089645054965980978813756526377249304365435016450524282996707526748910020031387837649693576627025050332300683699757954635251145612720312406579603305506970240659043900884753899049262278641016122226584708663951541512351385619397617424632121045737788156435651477939941026010522995177069324430904019313340065484883534249875086661148208784768703184857887393841253834328179934227712148939752832938804260519669578448102779979414514555598800604633194473881009790334434120231597065044421231908523052061777931797267037548388971776001776252186548556210555557084735732622742999703312719913554385105016012006825271946066442608890057667058741624108048132010426222869068045470903737615867282467573318120969750018212172978656826401308918480669901669289576765633625949965291398772543643817954395614405252153970885100310483680434607835433476620919132727909637622679336860276015732094076917053307481689952018482231596220223051293535937248039000280909341681600918667013295718434212912131034766199615014261557709804652472960442090548590011677834459632741852280341565968887431885819240080973068641975320040170014198338967078659827692868592974934094150745355677121358093481135109481562130071241730868110135407940049843039683359200754621528152137865188984618183829959945169179084882026111817627970868988966578173718691186625593877547998679254617269718070301093666070082513887755405863457810406426682562129403230023642812718980102653742582290321086171216765682766639609512490135363607220244259033087486398728218188812453741614255135917379568388222401847035137608051917987921105647030798196431233888696458807185261430618061451323995978648112646459578245100698396948793061552791058773844320956876272563729996440941996832884327008663328019646701164171827002918369565757591079403771040039708834094757322793022741125495547706937000304360819416886310635937372201165423795163664045373825595397282149861091312667584149675060823149713488634476923943790548449732349113284793689354941879294429108646983963745967582981075336048823856257590174381902890853318050745197445008001049783890589312924692397824927751613727170662744645728971050854164024621379055866564989865089679084340829499828167651135608825487659923490679778107132831312248133760198657376917739223940183581420883135831281277613058154676065026255569264226585901833937082658737626953209450462843834998073138732296495721709788019360704217511729675445910651439094073499838721231389307696965705433578326728234496709786582915980839004540676030404299288772500895334710142391800372238666542351654369679239281574760977238586571816190980981204063452114940893537562065346781068451346625239277724677192049530191513344831011591772838083016300700142258659607730281642451346321994834080718330487318406949265817370465750139029916632583784112158562861701783219055845339228108956967064900406145773745660068151840457612575792541993251711669939852157023292618066065029505443723355055827347425351340074224699843585031310190507756319906423367309172330493248450246780296249420813061809686427419087895221084602518786137310670706546288174539554520053717520041930309569482490367851445234156287472073007989063111944250350331373861822304963203877586602295999537622802717837980429439703765299090360428015960488532138674036377732795831028342314177008069318158204143678754437778039954551358730222068451309224796700799166627627200414084920788843121323205911972723751652943242368417933542311224087811954379696109066585287730239384168868046979551323804930895836256711474042004856038835432020939824528341710618965988837720064846289777493117000568816270492836719112949867592024739377435656236143658708816953318463696976963753635688825258930583828178733655441501144076297503875451959056418503317999295803880470615264663597397881906066383436542756913192623779371729187022035185417727724657665527481088014235952167811576118536891846399706383928792802895395194816724058540538048754902973766886454772949971216596142892471100070078381910413589266747783986788525978123949819819936219260275283319537123891787398118426226366207912739988788234624137317674763281298174430472338494711607064200113935837990998545582115311985703189260657571371507599283017665786238120353654670566226795098295361692988775306771515129697965952700023035828596501011143368440446988451465822533219022623524669943521176999257310925247525796111059897000696994591018076762422439636872778872726918533597318191409366405991288549784831137518359958959738156309524220680376250882367521329500651633242866462099809519945644725231776174421334978000827141578927493588493764989045763356095824747390707272666981724178643719601137204495226716155580307284802616243857712422256887805335832247285285847928332732162395508828476924959179144462510674469016264077112545780396072008429885341945595381334965505826343343934076686639998627350162305619524384247485695064958811005653221259967988699685349495349092196017016770035106989271589805336207447743758200412713356268356801706319156238360068364371907306196898798216601975539284972669619405119701163595948097797079069848009245974304494614191838859939160253060013195749279568940313568577798093569189743438218385628389603964786320717208687544769725891874674657869388379851708653850286827263496387367514746814533639358488190842080634033016028225757753597934225892521026566207959654824975849743331375746028892615563175153290487369374816843467272368114785443912154986603378588934714204751550695032953535615275658378343926631275365255189899026584283409784937587630162490414656450662237838055873360242114779875155423945906810813061404816286426761943027910202570767043747602649440738017257034220927791402618941362929161277017443718961666824932569849800044747249756331864058090059697834731402633238845917937995474038199117837120577832100224064729759369615903509731446961045600206844005127205517029810949703731439315279021197105568285131550765503780392115693247573065541155069837372908097325664952452732039372292369753161911030105894027511921758752939450155740487357474775779305318802948521660224458463485138117422513035621918450269252196904567183448898319076775081166734733965955980017550936590329838982602535100593389835860896268972368022635746260187036952492921162680520448289247293236562397514136345532651507423986384230368915650428914683941795000874572780302351654945339609718291348587062332760108005141621088960910337129569704526457351165557099709891322067172610006850889765087514970892394564639909152714217214213922973315780803668114206609628352088885378440353313888365058816372432237153753112671842340708839393143229006315878638839927587389095406584002404677694681363582791674771181842638646595979515332397443966085349841846745447651102642130789337623802437924999671866130080759525775767195772033876526514058283848605204993018433669769093081134031174662346445459624818797423397268480739243365827939154803738114556109897474393177093972839301583423499069489812780308982946929556466608710816717947145087861355787835883050123941271110565867403069141260727732533100438553539289019797764535807664710871193144889341801612323595363053933925130391168688851344644679747398730599136403535449205115236227887284769878792993995668648568321140377917573350681694056391373221207885590185521694817438041801482321848446826828492642711724354026752938474415856344209452440174020442173156824170247954444751775438781983177455386503874194890751971447832736703590614593743854483878685639539322908900136540186933116085070352081831157748445787533536304463958837751827685878062125550848772404857400211814215452332850218391014353277121366910833793372169888800120607503191286449657833933468973806930461345825233740596280859378846205513758825434905884648116646771448428115533657526386249644135697651451604108223571431899838994557300213841935849961487440071645765225585927883455044906315631689945873832379846252934446333997198880253488438726730485377017247637795686517342052618342069581377637627341792619438676560276273628802542640425880815191556583758876634425982893971515952139410337957397375191375524709239447190134621792423984067883698271313611353351826252147017550036849988208879962287400725186680550033265575051973063288610977844359399929263698864485590645492381648049765393022507094108130128963313004463596682252915816748737317175009221004930664571476190198839961128688800616027563631526187263205149786324176531162020005155540480906800325855665064397094302619152453806994067307476553455734720688799316242434927376732150068162063182252764080455397817544039239928485502049202740876153729579845982718816194291938303868692965099621251768237735498413194743394514816855006285851021497976665011808663068631260539920808752675175095470775208122896461690970453246408992512107006921815293895188974791833419712526042828139613922271671475425275559534959739198318111252390450799098671016307398972516098956780386141626279153325815911309189218767801870554051425316217325196446501338656169782806037919870011252802493593264606745597595837615132204444317095118303547241264313868798143545060421033146218164252366744777040048542990875086188527316279722428144831365600115280787686171950479560914063975296093606897632617080255038775548259773609014517400702253390323958036055333691449467505859478544328367500637124021152489705510842011701832008890074335573333586788702476054097212277805651361773422517980947036089576397771991871331799731186987147443942825874974927487134107820831447944887928954594204356353787287932188609059848562818240649153589283911665824582547652586588778876526341600732406127051939639849146611125346204403859413432625449704097383467313830840196426294604833587770603706905362882192989135885548185894852693598694575069799056878549507524138692431017176649738313006719789590165521796076250347454215903424305004737213498458041161429701947333259412029047467079736470713659627090687590286811156230599781269166484812128579597162992724742009890863869449619538824068037192266020904398732487283464720706167797761804999816770489177896362300803739224745434320068058826703897030575086011744445054322656467504552095989561435094450217135512973882205771003761605647951218380921113920732028114549332219939974306040742381791572479117013436426013209957940855172278392977406498426529669465951080829406732453422481092305141655709923897979811402633727584202670408095799857533445854692187757882084076798294445721873605269306762541153655069554588691674542881832801623962405118932818311524936469319000870066559144745293470987047145304169466880223322735286174809368728076064323567128251883855837787572183155126227218208138565869912775838979545678296629847353725282246647602989305703551651655985925926614960288169392927691024629920509500167540479012254379352440415656687244114342322366939457356432653410152920771680796140685969062604165600371694152305239846065736364719554736653799584035521715738174616309096689269776204697647386571253752178499737878823513383541510418861471065313796510573807493921087256910368215178608166290283551781938032501674626113410773748810955436634132919986111358568415575946112187903473062219133118904369571488526347009207786914290286278267676677594449543226382386298745021456913633656995790612204656629227653705411213813687892495420080197239772747738583019322614254688896081438551014368176054943932583019338871441431147697966598074522437227327411951276147254632369283909825127965701995088170273049552998744340613425592408401335671767761804883907180634473410046128555846515851574900480900892760545668079251438745084759998858560137557597136529796535331453705160428641124737642315186896940452360893174889801114690135084776364315587929557070460073066362451626569310888693730364182408950623883385904346578494236734701940447720402928111591187279515731483756045092062546360537533152133139741172659356886742081846366187251682619969260032779149566334363587783459959095044087716102931669360676694638366318231311624603573236951740276822652584045166623798895825552775800065892818807475641213525119804151824681701655577001545552244347725353145135858158948208448988844207691953819664077076089530800779302465039860269641864633318238628752670839189821909604235992569874657792148523510997032808994585516682298108541546287316231770298286448224924218544595135863103152391335718918028918200895214635339388991312433428343117172512822721013264044963816534712538768130875618169720993837763666408350505544119399181054965920377966711939557115374434376331603809307967056882354911963945066735108185608080515342675698448406343022361552846338646632492687956777845005134197931686742954321478004993514761334163263705915056141425777328401826884911297305156403042341595598380894136451024033951518764817540117453029726142275435712233532733235456707412769581380988840838251487309410672170754526349876530623571943783634721147369983874166572897101889793028164728382224525149443068255387786770497402155553720691107230308047174124089371960990580510845855626794234056526745258428863540235823259097578579167352180206727276897658684193537697475422885889376533582900485119164289171500884854918798869193108806307981242089780713389668557009458208111474185247228118516504780401414838566284178177043708936676323659350012623306467157010149160380719590699270173827673432248372380489979422532966734492925118850223660364997151662363855024499482709794152593621507353233663692765496184392317167366029594495896826629771564691533324937442253314462848880638388809619250219367664161260659189777128283176194683019722969407813656789348842096731435683283527994293827490917778192175977434456693677313582071186995492489800616217905449219697070243549992981811993762138367329172693243793205812419922039873392937867400332091001968409152404568195434851179452114204826929965329511879952039016097455180634886310886140256261780351222553521944844083356452123244053069265768932845946569932217399010335033430118795837178771410811823476469719051002321540051503490887559446453301964596990268446092908548447670532089149105132887116168653143201938709658418730528525776186891805440012876900905708468635275090418913531971689553315407224352423010310804383261736193264378946096092311219881203764191512878640485855293144394393245186027133528299811885378722853902359026588545517626981626387891463009032672568184830232931404553561266564328769417818184648754346760744550604778376436568068626668362159200999085112366934898803513208176474509570514337920127074566149460147520451356337221543220196509220640373664518191177376600128017318085794378719720140195741550465322466277879069570165578671642849155734316037834440975740358930836844171323226849828051799721811940337758304252740608555067570146814103479445589722823110013526456370061842980844787971886009432990507603992359169115998312702711026295510784840918013428220747978209617020353035965860385572124510659719344608428761475668954585582985667839753022420011844790946304223121193641339559086279867625191150177602498625083295858899476493702196876945058434070838977561244940131023498199036998062747849888567983891387637537843305158916918315554405287966519793409625848541630250395410709342190443839244287096907090772717654777353627547752349392258224708432819808954080207694272764837507030513963473924655023163175544571280798949211624985942583763794128272750566623662509561235542041065118402873238938441980193991984768824336570005157816187218564926288734180063284774098423742510627234517535388558320901265476369445949646452345187709571256036918325080676475626521360088511157303096015295415636299247814006549347293755229041293386869586584494836098248366101467132045925742633014697302893172589844173569080503815662049750441920300876187246619498547537734536458043451314823333023813779061574167763719637516100573690566055220820771971307232330568934557548559166470734204272060804061579504704519126787067945872739481535282830257211341117490533922222243190754967294352410015944367259776456375405494006718636978168007006316240910533933611792668632861281487328749841464010991677436992093483604719696716065525270148459686606961399447560198826271465880825108861533299078341985666124589947509531794940291153918105821564077795843270449870339891100135596309494052196219013047327916736385606868264305148934202178104750099660021551190272752958915334307974825545237631758064016862363546245776517795069214483139503504364259413169898373925520405455796392899545191287015982909452003219335758364315607885715820495657108617242350641480156672022930132349657846791845776410762160471018305703469722873066030366593348370929672392860852434409224029905296609446483119231751875405764745220838102361271798392659399280213878865556475737108822053790330801424365685419478286629561877240414625223704434652295549829016919141193952259569613794464725698291698491729577652413815909085154742860964122976321901605655858828689113066986176924539529676391893861921801162249471862497837013644266221129169361496027629099572865954474399106168207101749002692134349626744855883695827729791985603558656610057333748647503947032981754532448885860662295782831214481194888686499614285768952074855450267899668809843422933257060400633517618616409793954043981279980505015356348638373887194373027849161822959867490980802654324514604013024966178892433031645493935539319172656624170123237205455821824686637083930555325872601826352148862701343716876348839416506280202458267199200786983960155683525671461016735816302088337342425210282233830459928069277384024768603167425732828833462924175925473084271751083149345896302287130491767609695572613387052544074834773583832883536080053061900592331487302942813802545261378185150472111287361280865204331701041938325709929991730538275651835147227937680299064203159276392855703919795193816616628967369386941098967846346408364606403989534527314900734882005307989749083370441257929183838729199836607813817062485434867004232023732231342119448118598388506004760151011598661106509042833502465524843191846674720203377872403905990821513348137043493258298996740856737297692371327518348817122879147496254777904281670633637896791225999757153592871308196511385400905597277539379524557041863463064567035581468257440520248085772986162359545453257231581585540568187871545145646430533182595420706055766932541475568511876599505951049389639709589670105972399256368149252246544342687580605866892964507584967508255774751696898039457160100840888909966015372171127115635763987928094121216192286025046744619063701449310533705383041491007005409668540547121085255391724450381537233054702093914767902437035646010597427243846358573923916617438889723477838491229237218907624723706897175612624528722755734502688923188101400382898892002352480082360412128244331543197858280948885213493212343503333913460908941555287626142545806743628713959102517581173467961526257815043655855249616412922921837656754215553645451320217955466891502758437735050971629922042316864561156211439569609350481287080382920909105712234780832147323351298648881849385510086451518329482901707137446146028321853742819984513284483603826578983753566119509271375961390838116485952731034014244702635815543915780957809956672700681848786088693374267094846210511372828322415467636315544577580661499908937505352814462535078368861398467734024108961861164710887323555489863977390713825121311395529958842686104805260670487733939445548960825136658327671775890265968943241001437709074403280717892000502287991287014354326661219410778031944332778057466442921925971050832205715489088774801219748354175105835719916492954269784864018243027119872899306756176306779463957215143715329049031403472779378985655031823617651729908782788302696894585198073939399097616341747270934544342613652871619494706205324348047216337628428428826266222374884978496758852653509639230108224613364199623210788003461780586232279736097625177978714859714771716912768997940292836332613851047304140577532734746633871654024785480969392389239717801269029745412777408502499216757407728735265969638501686516505280045165199369017121831632380008656068720361584367866879906722766858087577173721422580275066317779016976533311610047720198608490792097914526187453172148430847504828896402861683514611790196155360845693961908334363964521272250796530839334823857851519345362397690320223695056344876363968116395042186254917605147055074829967531085654368123821224664924734755971071404486044514838133706793394373261497670903465693151799617808117348395763624379649301212764385969503395437923989580133292631996075565072814279154305998778691508557440043579010263902414359929547992344794910864977360614809582648138915580009466563630361473723003965850882634369322408651646781481610672044320426544672606154305590693611944510654551222461236504911916775481444043547145280694494250819501067091649103562305489133014074208478466278266671145239997202390080494805138113909711071490157997373298643873948411221082109798876125186804168875925960756228202832773222424287911284848796623572765522616957746403370377251037817961396514799608282806995899730025919836536184016760853674773398857100656444900364662450388708488899141537898042165590161011574797203535188361164493041454898999060849245887562350517453899797589689891332600915701601137359385052061518197671541127808547320116096705465210503090498489505618899690673515106734829847867291684873410384322993483595842220593276240599414656640585302257179342650449593150481733727827548991420072418339364726680929972142595292109575522065695798945930039542507068837059286571855954583404282602071136355114686066890613166574277606707254499030436975390082988947646378089071506435508702607755541813926781706475925308050574737298276251514558546134152781661280699496387743564853289860282246594396131350613421116081237434260045868151774875508071454481724621204642038645678837336194356883417007164671268149697182223238508224375205424953732387667372957103913041126701171867473841318762716338544526485019056485601781906199995389157664043138754801528177646162008776692636979286647966828755148185494726888647683546316569183992422216204645864787616756988855617019514636554627542632792683369441010026633284384909751776217926436568793697225427649191942248549847960767873104689684456048644745368292058630745056594400379689064359666244893831927989619371100867094542166193679967529429209739133218662052038603982233105559974507885631157091758902629618266104406115688626920999827604398906461665445709179564488735808077209238012671639885228210972375254811094190646815916412701527357995333196078470095265185998957657031668313350034189165609190379021777860453207258880597617014317310461551087439653176471687462029789814007853898787248514766460236623657898091343059830575746766944217530636579965005075718033086437476549698092596395280958544790713372338573750466906182599486868796896818070121885587408096641230909203784876303776575032769295467520665150930904972563086727585267595877041420427393942836539846260640685657893076861752201544648369948963494110814663478404955050597154158014231355099587321639060931958484715320857297948724646347357453944227526516935737149317444502462514407246595952652464395211411413234061343338281142764442309997677098850122125970095349673327595488354713218431337937472730238978246894489095735185503970953654889181120248380344152282036912479000570458652611211711537207674988414082944290710358733677006991855752375429959913838060483261712381258449986909520097369447846882708928291610814261617464560109314243099468915826071883695855130591962294460673809323570316667133395642544847654229318957436147004533839252471588057781373662611936162166921491234196892195545772074364763562065047576251553471283155514025849685879571043223541765978612823478805719102058022622358584913658389614143536105539490149203915046315561770688557833526731609011454292705484125734177635714506531994265343784618408009398626586367619467950196391744568817467949623625547245639145250251349298615572851363384385467227474729935514364579730746354264563536137792931505432120238607668538802266925459669920581167917982100892420660994741450048995523816449965777441733189577575183329026849758793243144508987768278214871069260215784206788390688524841531067959840339090238427991354858236768435904115976888137600162738776802755079980328975046372616649132499026814435991581208109459600474078419283720052272230686133371350707053221416768744044773023245593300184122268042157817314178900745441646019400710018986484314359702589806752531411936080577385864879061968863256429496620487528968646945917984472990581655966809965233298613189060440301648715844615588649209500377711074939402698919410894649676916347961793391262653549343486073287509075571152713920746457592023559737922820456341527897104779878876741890531478790241530162060473576368952981530815884511558605156863008298294207799799471525196422337386908121048373730420916006407982201622621288570415990419035429652900757573503410697079901955562143197731936142302147709446328217161878230060343943444941221688581919650845014510410604117500719476801315178454487870444350163153541709369158561029400930739096884949293760061223682186987090921976690367200285053094615260901157625266661677955748749929286218068913536841472594177219372977031095197330658192499678694486577433870947073131489578848187406417893774616456416036379357305321206419954844013786428335349592225698654933895273670579803306501823395912930930709466359756207058027620423848727744342993531841842495928622458495232579171353763772743020095965204696855892305603835423194538023915198402523142369325849137324641875335518866538842665357675295509183872016922308132522822288762294090129742532752790048557683409399654953733066381451151649558755596991946857595482675861133226547278403425298018257155607065030866036594422467107038726364903076864375111833959466861118780306717193116841931323099066893690083679735633164612558874224989668288515908423184953276124088765095591088212500198616975023650217426334505409489468541243046903162307114527379761286188611819644173232277611563360013121771279692510528373850528389271531345764200178353636739714580316225640213116819264731202435040966699987667497119324573531543507678859599620169743365929405812755967255742204674323590877984971681491735728278880067053683750238632896896938975502866863603037845656619692711059197037398067734670875233426022546226795863752524174723787567609978235025679903119225004582544544336999143441985466011318932090973897352816314986089774795425708021136295206824611420183936778873470782057146648956772943483122305492972323488417524428662897791324122618639144605420661618850326306549162126258725940676930359906706087727638283630057404988170183702125081978780901341327150433032825644493837873597482644275884635163954326037571481723750587119451368133955555237592746401280957748785623123486015267397360009796915513609136386468697513107174463958303177732764008684940992812169442957101605492157988427625413601237240283961485855884382860533254690603172208375453000125506755897871499532674662360298363981254687790156453050971656426305906057791811795277816956598693484385574017811159788767076014769644252067460170593419199208748140003068826497937617998140527514350752170197585620595628774985166379973065834370303149555285526017361097495954254253146106773990958011291746466886474448062252928104642512713781302937645514522660028618860442538068652929606697483764648867659814873554599574081946256155359709880112947230109327394977084525973919437304934081534721914188014062918673691457963190592532597289276309991827267844240052079763662520024508216601733320138026989879483519417089423560255534385903639135553996483238934348163379054352114428501544226209025218899514344767370432361653679600941902158390368396655445740935946078333066113353656711536027272664195399403622302648397008277649628441174199867412209979805788246321181526990948938975088655745961446780850201474993480271571848703524886404524819461220942596301790089256724219169213133293656322800691685039164286159635473834457712412307780765399232175699607194864263078258235073508542087968796757659163041571773263969834100849078616797816085744867956651913587695582803329177353958435826677709683840920187141149219008926874933673510242700012232766626329001085389767686191899432731194746712057952427790954323282457753896058011168737805127310028937919113766079375027084776980821157265127887000410807201196062187657431758554850939493866475108906236031347333554216338869535014286157954600702246593743894929516578937238565214224741743257352559898398311859421720932411273598442307073921745317984302001196774621811224454152453010146400480551001126579369855044684588692538756175263352920562387910269065680053223055136869715369222154032317835464391829089243666213857370722471636324072066051211095795204913418798942614401576172300422832164634985210603264664118651318652971403490065112188049325943101285297328196830776478839610057037845713596440739099112678448648329391879228256241526270108109033719680462564931330052802323426323555135260008953898981895669840338782447015732665133104452647901564551032972199765677487357129062299235598330941890100873521451932492564160483682237996227664267378160585464028451995657131926406453227227501103933630357694843109957465689006860354874512919922422605140452268531205980478312489561680014472261266748376396559026667803669477136054612496452983696897403811657502079895346977512824415671591147704522334493381695791432586013127189726131724275819013517771932316859713162521105154500792901745592009769239282902391972405475590493910923337334783987445485214884245529596797006663737379069530727383913895848377082799911386295075007824397146589742630254001185446164005892895988193625333356189465168790544768416436049478201838202340263440898348261796197812096011618148935609465945709067144113623376718173551493198303579196868810345274934270024117768032082863763596792281973025190894279683381510077952718766869370734836081666161573876621664878915236874870699403465579211459138155755356417631390583769308769186642069031954168627917424940278902892434566841356516487042560368678438430666340926201449973985869926157406786188007920761955710181172997752276026141381088230802684187195985674730104570831194907339895996888420547981112666511249777156177432849227492315434692861953124815209296169030713035787941363522264261711070076213227623502572401937151157254107504490781688275092205576628789228453205264982003057372426439020661783562849275172152965672272284583324290960411527483140824882711469593539764678331733097444594496442860754884765516124775723488995836403678423681552233804350031959222852583346643930003605910479773429145213331869021099228061094391284539954091248125064201232129128121129519037232286844974950720456200228480515984883739285440659044661397132349856372882526076530322257427341943492651649230929719716784510204480975858661571830591001587904385895803237751692766888600032003802059066927183189863263645121086602422473937165544311650035547541958293591963769150751007496713337987894686133286828412055838412761354904155108559302296816781855874923987931083088490487968876456061334651541828163781022574702168069626003260934709205284596847995994280095685210189182497231372427904711368798384066713423195797568182207237442464824513794111777012009318164587164359232291652107438794885241855748085964905991304144506062914744602540133735191313688489808702318441961011221109716400982926741099212105828707107552959630278056145965885813626224164059508824414155213091448565344860198892832162920646005848897941326543760816724863949625038735152376903791622855468347784650282615202382795611070606014527729057081591493241575450373165685233473788262970922950806074358187212564715626981329403347675726066415035015299499177003562775285578572858643606271533609162341970583570500951653991943933640325932923705923109984962677758861977893993495183064908220283128374492327845351318489950056187449237452790317200368037334742643538725047959925222180631864355711973800980421173233750618893593444048158940226406076976364718709855009211147919481156296725653036097378304115434182859073914899594059763842778748337387720784492763392909298422073629869309219924333906505066590206731737497572001031212652421609127562230677648225058936508538830752363303868111348761172647982485308585339193549392049345545138062828298248906709387218876918410759159728452712191706199182524915044625149154566914745566116091743305354190645051921308620350865126776011779112592925841596226998787307419537687104703714317922200394193810054773097682458278846423489058058141391011310932140629550563762930172936987794319929181294758864676581107223770602423156599062600047184292958911180391394269271052613006534871769340203538853582055798214063492553445075576652823362596987545196973813638638262811524154480968271699546253669673956276870707747575141030062478468326511747390375984058550960179563818549086830655330272439436121327169870479931469722870277701545401745463674932676362161366571255563953489848787142502182041486344491653086810048429035790277682216649097392123954034570229952083755733191554806539771486152027226630079842155942282636719349282453687673024333266723965692247171249752488486649040003299809921462588893208499035227933785479954474990703854737639751005370942711363250503305064679441827068507614761254950010634382379010781491805856762865298047891568678632784589632776974528406098457143354075691915990941508829211685998517945167956886070378478129427034858788532254488625958037704968707103387457939241417735847155916110526646059838484577982242107238186436175806896154809376396638821983627486145909114873237470278266287508268169437849398968893505184458155366027615013060500401851202191809715906174584813484541161803993714129670416094828980408074013420026248197623850230031840048496027635027601708644411907350468899725698799802831952439056105035319628569177594369018862322278041276627170359722978876158969927697221186692789574772092962958601140688566056947637364735273338775265985945843800375535965851266418514645187692022439907132806603422205543053689107677956812405346716111777654679109453618946139036663451286079768902660066346772415067118918974149444419931118154188554492157521183138853732620659660235248924128567334090163284771809943376600275369154011959022866476270030985615627676395133516976155994111797629051801729658941155107526638117422215995023138890710865569373106024518535012934677398947503466189146406107175118342060038372551709994237509520561963353379460019906256713558665928758271161279702188212344783488058438470591351057312269977182174809788452060318319874857189296896009151586734431467454733705839617046415610575037064187845160222989211157805152964410161095149202019767561009765441003412991869264624098252823715092797124768629907784575382470921024090304510719603725326344908268604672704636478926886156482494832796637324734843520519005952085848388828914348854731827346051719395901820620257748749102136250582773228010548092638593401881490667373907946632610532510061362497280217327249367028183524679547306759160019982211326193465439145708125087106087776112516566120678373018407880663141236234505232511036190054076069872062163434301088705754592907561192191935983200643502889429412358432232154488317104944841055127413148242980494872664935631563359355350384217968953182895493919364033813998793144355878330088521825999801780399723165412906349718235034211035654018014509897273404819137430442711450221227267845090700069807122281140395351255028422976721617909132450367986094250410484201709143605154785067977810084355753242259527549046818084577972387218716129841759341601224337614054365390906854389687027851118175958276454180668633929804172964160396583712241647122509557419206703208169562009826483025802841668486438311122464398952619740922873793614865433126894331195275128032210250046017774019982452518783796633361172326320060185176499248380114438110837705246575669994569002756900070577355818566266398069858911123061408677655337036998581873562116293548454909494474549624759387977055133894028171982651372679778082043067041474451945401883122395735782210741108707533080749490342843037116113863438898907497684624264829696621463949639513600769861424887172990867687398822099448121759416106124259737800235427374512831894624853055120080375267580071544728893480005593235995644796805092722060276076318142834937038214954849592868968584215342598649024777716170940256250965853583178314176956342236819246131074183874101615642448844980942410603289490249789005571769786322635735528153450032032954079821440091020247011964447690805271690629321171721350030021057597898677116085458921299548647974630362507660190736729182410803295109494667123303374049406368959753590455116544001800007622001391756671721696812656026486753467914608910960201050740789087406519004441366758965887778473442303526787683711043653448259963881689395983519856666984146894400546624104825739261953593989707939525898807445126178750544627449836586036965977020548272676294681470681808081890973051965619034335145090491918929852950831264917550134088849073787803787491361581411591371084966193113250079250569951750068301326200637101593693964506843670214495145455597938382616244602003826476853269050549770200384929848181863143182877284060356045671232829600125986820961114585522341676917093759669054501403354743488327268831097480621388321848280106228611647492026652241201382285875060748070219076670141120636306807081696040224361051197848995248416923675309452871606095401101950710482063456365060349498429371819864612256635843820812276417219951162173430166987221288256785997974859504545480281829452240390639240236907830837595322287962434599207485162647279966230707087679269355857912723641223223682805249790923507547145952280925450137961487196802550561378784472141382037306792011879328493645409246397807116538866997369744072679894972680923173280746175719475047232399726186662569124419104881475898586697429577357395161337327511029119402926868870910644860627528599805338631554689922431039487650934475226408767852482446685447852983985193977372347075705484783879621569396324925850757089270485634545444203028814193219393551838570631468919360856320190056905061295516472443001400257028231542588840655693214186473744026338256421385653784842483219127077377391733139959172232288940747986485100724515583366821576272093480112786424682669342859309239448964200306698986116621820843422133422462144795248525291629245411268389603146559831649961370457280161742755045881676292309937554040978534391516038046548189710922847383098639432362581652007126542574945927222864982030812644623691941364373317865175166865455041939464500208479110982687154797290072565163672975839318301978994449385714574998038855084870029349039374416847959327366089593695196869713710564587121752380831105311664077061283659189013879680177203838621534298623482439192174985182006040818826873368433613964472788602792080144315667457861356481365177026377200628940264044568692214479712857567022446920847774261911959144113831698201061522610583236361832408484982383025153104882170176118807816163083343003067682373043213667633673500816144217807576420218137054061677896856900846961618468031113375340953951978710513966675274386437438489911901226730694001923562211288739704602182286993310328910596892566493893048985996253901125466023017912300432255686255182882028097143115421272475752339522849353562827042460785839218709477519126492048751268211206375485042834759461693775576935891524195878091471280785405223569859586055579640216750310160647051303958969104458854876400375967171711952493832322196312985429084210742554189109284879933160491603296048604667502399176849107795834746296494149613032085625922188954047194341084228023338804532514691937084792760510152331129363345084883259440784778301196834075930817243319751218319481157011774535401593577682781714549248111702768239947468441175917730032466621668948167469846809128831105329995519678520174952509433702384828602386607289116443261223884259385798625249639181668818475788419602400425242126244326805216905663687375519551257198323353377003739396543726315257087869482875159397696794935444895532351377537134274755289210137743770632270908042308049263545940879866190753995667620921391871331262709717035221501848599220438389089690174880368952761386946628640014475126374381155508352339036370101675049958583738545922048856952677767222647478698534520213696774848370243337756611265073292464524268129398799521956932709634817689415848650333898129741980063439249580253400935032274326126438183131655264341833195735015825164574004181100085504872819147424000110709494015384050276733703930182915359961303457042418338062288151818037726136857283526871496831515357951312725705650811281354046173234340592327455960048111453207585354877285078114367435039783647223310987127072777496635330851455041830917360185037287476318449448926483363753695631789504507951677832764369243873239885399783205560634527072225277000213539508831323400438723747956566752189250746402014337688056983907343078149153811112412298235902961371043142299417612128929132084901748335497282254651782278711145411191412496974354869957887282764216720706548666824094976084934159529844294600188167460921314155650564652711266829025854571235181294995407269600462113057578918243859383411464477349050880698179297854233176338081387436708276796572685853285268149893384179668574303365083184367060708276022607641222625720805857985246317825775480104158925561686885505067340575334640560023788063538809936971821070653895701397286193632782016885808475694793505571792286485480284840538666560584298526187393715543104011037031400472082710790166852666554809226092472456593268919530385486789618570747178842178757246297403828271578738418263265995774661072738502883578304392871314823006765771396966577128882334234205758872147873810306019626260549171026794304821552801667379126914082622905979531675565233848574663564196985224622377653047886179089262693369676083772785128742509988279234841084044420934491262616988393447437303613110997409712630850169442926313511060614322743356198044054606399386335647181207088367147788660362706788246045887910823713875178896721956044012386074671685788760423122122592835787686318104593555632926005225048882083094506153402850834870230112106470066570078000323567834948995343108567347237006065586747451279792511097632136884385835346854626287924972856944419970380190643748103112377975076309496177162809002227296009194685431568700162350274805711759956553913843442464284898084602474676685578867062484564069577649595482612176086971492916048268836187798880913801215499014323076582739873166014887695149421697100556976400679056012122493055153080951214637799301557158188138390061346928885762158981640367598460256239612702954133226048624757749173933163421830542720231575998564565691952208281063450507887617240894822477558379751308575925875898936222586667940813022473604870499664297979884326766996226789512545472436673849947545181808321477770776198599802768283773349052153832198078916512931804626199928277533381363533091199366043495646377704465434896551286019465049433025400284442438322878151975500651101673280856837840437581023909211226321268241125444715088238640192450077410846169547575205229983299901007520050565806983911011201008392666938933932106229352251530159977143594296981770392237899459918280337520067487079641255204519042765526913727765653609434826782943409034425693994510370803957383196443907235428629532215303319221402048033832685962886470707891078081819224003103292197574083589183707223230420649095387572196365804379068536955222651229294889643162116978142167356175772854759450063441635162898173089821209161122090365274418600331533650619655286053627570780903314767142549350611459166980981551035865144421983519577800367526466174042342321167280186570348387406802384857909467281528192726096800047986881939029881469220450138031644896369638584449203834504403228146010733217209421120258181752306961354799197219636651081124863384587266205845322962094499570368458677937853797005005920942697982531119749456462623593605724352580358451166118981215966166164658188087859907490913955235395531993428872927892386286487118777371676647644819259159845274246729226690801531221918184692078096260073445151713391928215690442703681657305619009199546191105050707076849412657232982499373722139175715260785720249982065103226188531901804753231450673259660234657683987717641685481466620595083031860564470729188668230168242950446669429107366374712105900558497344372218893123375632036319134216258490330707618448345316939419863307409260228218694712212591557802215460387221737336736717991014101533225132983484156348885784990111506747024988514659159334160549502226078175447586544573998833347145438152072314436424217646113594322980444384447267621561421220537953334565885479946430479446035606672809857411525869017704075241389965425061630911048546754767129371051302046276562397419330423502668403814727508997627569160162267504566832298005252249211594707620183668384506708168976216713479321324088143098145146876082639184418308237610595890179173918719509086783478672733006668927808736226058176705197436799930246453090137287645764043138205380551290323160143824089540198637171367537768708723649131055749394512661967088078124616944682846735365956492483096098319129413964268707716704654384820892645713756664034978720109338471500684231231774886745273736170161806725528604236037428991415927321262544504652600549295182002246601480200262401121752990618724972926663988894370669053538455451513474706711986605264181687429592874737301485143939999374632643328945156477567299745787804963642125344840702807538655115629523223798233297246623486716760545460146514197069078568262340895874779120623939882029189186571705543111827541684045325869019291703913365439638513807824314007084527466954341402500451449957842640572477402402422738182069907730720322728780274204165826677215383131220929288240634532892424216847799331124279344949769760747752943290800364212321727180053056944141494970837183463099169972781997376976150101937515970466889603947471203411687922932294150683948517025663684454000949991030990063284796333390065097978013376659012529827916050923381899264872354038349534522242189346951801664237888801814129415619366808953254005303144449702252850620643226813398403252304096718789196518164293011657238786954797148104637563815590591143382324300670853226547803345076840481809805921443218582788913272587779640479304159561248234640615313965651866214543266773237696716700220725846931388204726253052404268169642766520985118267797618659016853499749550117616108419607967048635101317032883759390232821635622757434789718983832398786983068194673886578066142365750520238321313402467737189587293741380327338737324849745201025729810179274041153333253256504044518700452422444689370555329253150297489988357452478802199041424132598186776571612244707987122585356637567185395190020949534017857446611468408448821224556626198562920807480733877223238373032872687746552660433638530779224158988848571486206125216223368560087801878857524750594515687258389367863309152185923712991219650610218059074167222976906720164725137590136876588300468519917379879292771273001342618282019541951159731224523174266220930367157107870894709203320805266286263652524014867390995352258433757870505102516210390879944170612837300264837421861163505520962208289414919584715175854724407109351748930972762310697288287655206547666311052648873775616490468542437282110150998272067091600206720096954874214065005376720099510333190006782907441903939952631547746410548380747549137785814825778438230561730499883467072800156283829972345319426273692455610195365325996015291780769495020478366762190140504374123095501577508450250027797253279891368661524241670723938809595393541209626515651961235271728767214005818563700870272473588949431352791163220269218675366461616315474178118023669880181671234005145082541111688553432901391420108243794393371007806747671354564824852618238958333227316530116215175614212141723129546500725855651600182336837626652721059799967563968409674778823314145816310081278025478511535620623672339318555622681811783065742424317284348582392421946100386973314910950741468501370819649328411593642954613967970251200066565076258432725488365958464671905669451657199459769742970880540142390988232727123408888439734437059777122845589262489695705189728669334877578760993755306396380206096488282605987390270224700719932978778740794646634540759018843157649677111411396424143585270728972992017071834718225950258188412859598444071754830886641142803619969290963755918990836314301921748776380581647725307219854796456560173397877233002189458619121185714320735982002079661831180729615343853224921549829603218778084731016127861980518487500937361846328369256683190916152443028019137019631337357777552672761177876854751903423598605712689255300411037997926399297300509267656860481338735099691515768654951951231437407526649855110018400713366556050822207210311885834996930306045569300317187603996209834997383333487303381890429609440768032957865426577835536907050744268806681788022219883317957979829919889525887714723081694397696271331440908664112737613400491202825999745299387538907127196809959158181528755570268936403031898261247170690366206150788749342000482676450669303837303944582102603905716908796148464051049286460147688266115292475448155415561009346010902446948689749185046593866236133053697419300663629417243305047727902004841307651309480464343095302119675958697402749627107124302522562645739234903399736373337393356010088570359991696195095720174243988719777603502653745207766510623604718170383165840661492038954599017453816024093417182269668013545069392117387281558093200972680713012969569071018804460933405750301832888043389289695661548420132076983386667234915879533645870267110524544355157257687673080577354260243611524605447964694246620198962625004755178130302994648815349976697654229361242232160392136818694914683375907771690367542565875844373030231629895959239452995329565740626835222484452645975420750128328691644754547207089066444343600258454678848352982290477859673024661163945122274403015661453095350444787643915543625141175428078426852237414127540016504013323906571814589426993405008570908058874343452978116112483487387683569385620549246909925209941572873602087177433929179680356318466452166230033365143130928133474258149487817194298262011397680807520539773105105711357932705675457998730479107077978514276986517541765529667912556615388581650627952858684074205155001551188497396760552182265238267834649051364555032163705289552374990170215910923645889850295114460540956215025584140499698660013871912816315285301026222869692886819200683222806132379297923202025956431770025876282501853107148160203269748784889762929559627056616295041379240598142963705400022780920778377648266855857080060849926049288292964749295073188197058051789189125863605097109050626580317194286589133274701236785910083832038596169364695260048189731415252430238117238791302825352845837362958609299076712330054311873191118876368936076532643104130504944411117655444342649274674842197104894863329227437371519966490763247674960333672400163558719648932946105814565685317913223722635140783923061042574557054865935922069156334051330817972547005053674500156637984004338662088024202102037780602690246412075551754304541462999761273689580491470764372616354222715116343625684128360154682768240340558314593819500957020359536559498190229559653498051110147696823861198383588810185359518922103076095101912922751379461641993781940963473496192413591003386028633534139977917599282355843744609562894668071074117809344980956071089012215136623564597282685010509374250610038844434124554710978680057010427647059212195860406413800153151085147191636485528699353213103992431238019490788936917542470179675513789593414487308741479318444026764102316713118807726292715455229153049096074159916020049452232600783712316987342759992931206509700042185695141336452429670780216210918084314359191645880242597497510299485726813339830122552298265682333264081152005344414058994721610745582314454863945373302186755599468808298820673815425008009436631280466382367020245163052040730147451613676682984017341280201171473443729802537249384641210603488205064866245167845311819110864619275180624363210187095108455334318733006382250163114754846634483384840991622825427240938697324031042781925266332881885877397360028908169587577767688967310717177274704857868994580100647265895699080727545303217614043396460028014763701737281434047377937184946561596939482002329254204105089643725233977555751607213186501134535728119566451927500049561582304841684017362498307811619716403210147252539786797902748980799796459722479970799473216136277941894355887426427663526319899768980201961160391280771840013525888795580855034185548062062094974925038713767342950598427024603807214804573853013969458245152479635601960340054739420260408589488600487211299614838446997133540195615243838378848621025082469359233026731027285926850443468145225544548014021340179556024765939274473865217305137664280010526656748449272450855840958328873757480415949271966436459710566683415895012509511796663025124935218636219817900207400424809862536171771817834812275134446649670847032875088729797776991320895332433129065502429561691734584932476170358119661546472907063470704858461842404785293042811401446212305217128448059941726183980214141767133243130783749871351532699422996472955983408578862211704003992663418026947379162930609461509654248808558251452690043406152054829829949721445560679290699225864021602061622163921434368639357521531685314833837545570392613676568214396691218110957342900671090608123456713886509379411551788159774396092287913046175906701289534627267674516934452158352378776188477301327365606001176369377627213294259150233439570881560769439157093232592596854980905105236987302955328404769519998059026924804687911824024404803452264163743715508595055224019088895744777049041240580349690358785631404941717577721715987949388128681380992229568645488401466963250852696508395515889721664572596254234841750476795480225555774537853923074358688730951717768684651144801099887273591590845361546524689431276853102603113669497730827872599814499039710443160584956204742330576324308320516979189497292045916291464869795004029008814927946860847383576452840499334350995506363212085448316596896824867406958122724128116913703884376817743359570965998244791816889182051944373698070595860138602224414294448485294029583896072978658916058014900915373034267363814126466228004406528526446300199819339791326354165869301281170742776955693649262685921686066200316375790393974235883831809251754705629184466585737813117200923514500213274388766674349454850853047058124407035496734091498573482867143269597810965244534881715009073929113786599176048902092580194436734136472636898107166308459682440656693849177636338951977824194827663833817818089545637074036184803997272543716941013385262902185282380908486386105805548873671094891149964065957939459332237059911545778453888231530826982968239198115494879696441418516700280840335783188735772951122705066075488869040814236246303394851185954777178386161337157916969502848500326371552728059578975028277070735081019284707455258907423624003358652170532890343667078600895063401686891687941040457072451635821599736066349214431488486540450119651187876772233582501124716618257339733197916385970258407547213036065053121716487430789003572219277275813155205368689157973663031619342361972958120699448411341037409986103603977179248381842240659000518387701805824208757332178381264672972000947516981064722277716257226291924792134461919894051642051112447953799982352992570018919649432741914049246024685734474560571472873454680531937590205001056729907242251237886489128010250904727198821119123967474483157435112159109510410867142161414138063799848478206896357798475005933306296152223516187674938319043613903628601097116013011965086945225053403117134684555944704276613033378547518152678882097015269433156943265421946920202709392966476777889051739247588689671411202854972657710236202487718346716588470349097902361603272917780863090463368952092736583525476693377633839193157441124615914605141265999354786197642272563534163364297130182033448428926816047281015870010912321533357050969227195085845293857211431492405194126050384051372924285447219719051362723189224163744601341145269929596928451703706864654609407559392185351411580802010613962626419182407789605054759794594940162099437404824883311358531951741180661501574738180498878689256818173758679091497120939698378558454048352944314382306146971158146330184559520107548097900172153476978526117040903541279104268208735611202335757059280147549916345990460347731922754769484126629765173269873068259680399433009233933318242835009009380355574909180698366796012905298683998524102542820559025905562628845603278322984407299167948983943787515564594688659424551370170364984204307015883173422841762025009869190919149187772137655670710510951638580326346480832554759428882886270416365823482072664128990324494493510185033830964161624138767405699152608562059603425542489542919973106804501497602244928341244812878038278515465006141260254921131643067477598836094524343672919303551738107806955600059390493245043499164505732455213215321360156590053533443970655971238721666939627746672404052885207358288032873567830102786109676090931942499656168363325535508318918777049800956404279149855713379236275126630504491681887287936065347921115886005935726871429581335065178095575321245236984187508221027770618534753879927583205787052362164337551142814583139159798667932519349721224622847594746418740291757152301434561129067145139328656631808783581226283467853424468751904722306980047123837614292624221026798500550384995516670329062711003545728069545241667546798995074553250366083803481716226991333364441021497386185182877523120600826672781189314877748399797953830367999623398627460688995583940250983587146067119173567084560165555027440276850145259601287810665341685789562767841683378630674238547234961798462008741196073934686417084766282325270854548674951071782153285479389505413634310335505553027199992514943773252170475722332138761162143039504273204011518311497026011389017235853678140691310054678605213635157689752397960552761622229391227309286261785169084303717815991592151804883632841847919899310656180443416952318532398675843570767772397559203364635908162477297775722526234962430183175068207678505888918770550884448961226661495140246165944295664211962224767706719413473879956216235986595331510289017039927085634451367619477284342077280660319053351178835492063813776569756511474408323725983845958416237017168438116806497191764375660580830261736438667088688907674025136155730390276951383693709243665854876684925934539968812547807222934110472915227452823300927388968940972410029444700987294055670077597043750148222204221989364835067550099370718208929203928923443351593058371825831405115007736303187860901372937989184921903628358653096023238059337839548317665483695341893575463988463166998064890601066975888775613491445306782479013141940848395299359785113955603895560623353386526733744120110935276327794451821185924305529417508416186278820759028918240019237078285095144282537112444101793054635877263546684356676203034115812216124397218462486599901390055279553034194521231300667054488443518400954248122048800777768271379945028023078094074984142692700703235741239825494590194732959220065892407587900210747238955420252747938250408388690091480595478396917509761818573029182547682376797972118373110716573270331228658828955006628309565813248736936678690130369849468148944182525906891034871650720037049705834422659996238827203409939682775856838616627513666865656114017998471151338398744456852351202200119214099731289148338821623910423297381764141578041748475333966368782716746083005125969960532804896811267252679902819722152297264654460035445681995924251736362961699210506215391159722177908473678152301700450449056209126224174519494112617257135838447086561857486957821457954565554967281038985757144957439269288902780434831259590619079178353794761633079664049566898101578331182150354429063134870367633380878844259032818839960094544673060149807025494137863115080452085652528591766350643464121478994049784673932884201478050479168580155800635007779496407287302964936684108177799069730387004471709532889544871804958648775638911424750439605237301241610340607661892545369580308755847315263005992580656483811829471550466605500113634338782272242394918208969016965296368836902695142904973491711985497062924448422058012938813388974121497557825114518479476458290460720407219629572804736579216859352446734813289816480304031666165446322129251339418873170788268310788383140896932450717690456727200861697441438157193951302689820628312143672195005099936059454421448436458863750603920281186929654633917613516929717184273453199157469708602898592403682948329881064058795997505847548932843851126956933822651053076163607197178267482562763969712747970358212967200258144789288778549430565589901516526376677826618488621342751431497361276226102844052904676635280264978123592560116454940708187804302374982747701661022461915182814514951510734874289254117467898472789997541376599133065401525934916112752251823111727432406444750544022510964409703702814937317696432307778284895853037752728113200075024563248523493912973861824779561687248154486858946341395659117606133684279781472203485183756871613398483758739309199230028355636784358919314294972989874820823045859493023932863235760324064146428758340615648695711717292835782494499175981243841163547151493595366562836717011696343400728478490374449640934002602267337002782544477394969065268424320380281320765910430263472170913935735056385850783952003174463029758711622853937420736202462806096056674963941149781882570808280575010787329145632045708166341409580886808689762888415587220504755683312369359377708161407452984642174575416022954061142428019173559471909927471356711112350955616909400579788649596244136972371978236594713121551871553619951155995005561312345718630726834243139852565517707690090049357303353575349660604910315201471829766588268017355268613593310841000535005407229342865332883467102459211406047581461981529209636556708243000424412063519556481455465289539549669433473307429038709655816028715279167898514579511907432730582834462830482726175183268311173597484557362708206622589582490331837335251660611866466922315677419802245593985462112977346508679394685617305269046413566693739904075493023651330503345853452773473886710650081823623660987488553625008188112973118002858317161264467189120491829591445071916945725911787057228129236269907817123773029036418301267298710066507831553492203732863955577802372203173507121597953019241706292795657876659907044820555654421498265491760673317742398863888665109611814357135286100715052926632083699979756194763328055861605709286096174473611694600811283809355713884063326821303646788971279695187954738476894859323121055601145650817996397261441537135441165406541949882633731697392618483812373775822585375509627957458074499974904135447185426292274009237788322454049381249496019959167456349409203032198968092797387465982313067507556789927515850484362171794968150843204051899052431776076263772377771001699619181047940245446311171659859427885566211503945442235980627388619700416829881278706344202546849312381149084248496204868682018300886002813624991860010068345783289171481976486734682642250745449960237255012642425980493577331301591376304356548119709064617123596856301550318351400056398144455366029339250843864059758870457083263387550089026605960010619929151642563214455677009955235950110755922667623319388120403611253884961931937095135091577117987857062522985708154835860447557056174469672456975383042514457448447470638968155519664863082728191922352749102733538125998250685544392798769954748040830733340351125960871882844348972146776544028627238967507579668409894162198669693015197058893000355155678959876399037588275089523514146513339091506620107653383988617032385710550405401063740904379895845935606717584030353484628172206061294795227959671200651906114805565031355184280994825471206866610673787923107613969357200551717527434434948374070862674108166265446410135969064093261147757782480184641332634632322104423870889222976854721520308430851500255484053306538960954667437524520195676023260087871902764278517006741473716142823930167899352889993667618432649652762066573967593380271250965847990636881648474258854295613292949411394466320145563659348964809556291267310577784457043437525682086689699916674521320846872166156319725103740752537630460744557316239522941914041392742213128824967726037262431179663097268318256782501759298915505688862642727322900549594295403340488436832203629162178036869399268285780592701052224797455592364564634946836112368458161607469096734555849118621500894737729767082827074900661277763044292381471291855207028481793648931939205242093381544065903105527591830281646996669577476496886176905744700451093922569120440488910637348922506704467029891557469075102917557433810174718013454715928799291684229425281796887502893071758829577133594236995201188229062702839548292215002265429763803161819273532079830985627830546240973291009608678858324757107940969883285125162250912932070251409759031694313104487005864747092023175904433240346786549959702397194871110605005503402374217729184391207255875718407114696227535416461517092380267504712749102925042999765194127002537231717222986515193048714196604311362776646308499943054746261607709409928673903655636593362488367257047246451471068974989457393553272235257550714677555860518965699970832418117881712800112469190862308201231315131641011212675090661211371830640966398523363022807925655099035140644286172445745061166721424826809488860111018880543636899074505223352465579576203495168084860001369233163499892216933134791359466488614042875424557822499689532463243019092849769746543905182392370705073430037855727769836313644556355042275820653716240109168667596873076175247656145099271121539987478600552294221325584106216306869989446624397488851096845963323021266579514539631879912768539306317367682546251107417193492661270874427811884599326355518038211517658831701516511220449420085456198035248395806891393145648958765926380026774410064325055720682426913561700851107870594180151805558076307677358416749103933292220451846296598923397529110146057309214081307591490668027582125050535908522328810612748549456534561737198690303522870806514929057177721738453209183674161985188507954757975748297672252229168578871633832320939873432047288840385772954233730224289094413630698838144139197424883701372895746418999034233735246313363725775942996955503752826383373034616172846534672806222880737937756681961298163634099079969955920663108676650197532461912120990261931919180220428836924481888407644194973675737578534262688126049090112485332615600082428275300951418550771379367573942085923249508864223158896030016244551273564244104836721552901825195401080064261529248586393377715564660525324912392624243318221086956216364595716380738761097621661491646959114465661612766689056624553067470053064810808567701695444423473862800245581566436553566140612188186019535566813951044661093943121344993268584007486580479660682555518930285468617121824592756691443788513398069723514833918808274443442983070635245870614424030522473313088877969581706779933345020308113537401491195504917972484890926007051304518088786038109302473539423106982992248916022294709984236834361294051770045668144489725492505869132826914501385016793254751656183068628514183295578712979342425072086433906491308993801025237579436052151298527671553447877039640550725698190135838813124822614584018995505071643009911354400634677505109658208394392710365639580390413809922671929858917195500261008101382655675687000153954748736472162946095543086482278091376375961952364748521109110439479385070611425411759138667701698323017867887029618266410581646743102871045519146464706309069949484760670896447345130243914600581901091489485630071717781912327351066097980641343591909752397497469211671595814854434718908098000074185485589976868058670142492892728342530139302934781301000234288566253856998261530152414809151312109690556328727201694572460863268927521129267150953978470687368920444937925976669427857799947051137115068359001988064471875052970783720580842654027385933320117725207573836847918717555738012636077654202008904748111348969880972517580438879573301166808345222676893914840940227123764109797885152484854952028917997474656210083611261073324260905891918492202395691126150953853774065896962159594687623624603532141277827023659228591388008668717579314309811316089275752875309708698248498177734307429256004304682773840753523238576407738858996868167848682817953721177849760421714100680561413390658074234625521971467048696996478939680846311710313110909961653226285043845960004325608088999561152577212801887715425522836759277704611462233313955820411827795047872722006711798767508330028580552576216741047822421548564721068843151373947308651886834028415936136344495902724294347731382509195242514132284305988783485403103002791707479771027743343904184738803226745506768692858106496296550525313100843619523535432432368431691655615294088658464316067356082383659043668306725705434688953724025465137552425913476008228555014881961395598969489912396624208342008956972929393310008976508543105429789188725918677027127553628246941946955430883539960665486083414442105370364592441779844489111055472592339607708221545530434538466681911926532798248188109552933288594593019781870456794238645532790831482078300949268468390476228262206202066889334905329536939703703433673474372092417908962323303252426059933079678316253963098656534235958106468449787734929178121041682629115829426064717594681936597603315893157664428656093400198478783604057278534667234966151574297501100086481182127157470004420057066408846885509087414251049347523088730412386933249385186340543768801512897868276420045678336306660848859732087298134148988707678709993661932407234424239902149771620307940029437170398512148141085616190615549492859387416496005785335162972989916173872411076924508558154871367082294858514342228286918246461437539081619310956653188034936355211228502567297244718573306724838094733390214677337780127882825300078244499005424460032353708524678159282848122219513253063185363151750478053620711349560736215715918137923978761013369434648885294414152473761639263912315695222161550577189999712159145535273196008037310356917454843359829303161922484830060975938854603651831816564648673141918658354362382774262517649272758468036060981355384349914184317344730048246030942277506523819568342578642609747150381374574235684579865448016900306655668703541060318248033686759544390930501877395523033620909466677393939529634792133019418895576066376659701475583019013753205107909355604583504546351309381746163398659842034997496247587519174951136546290660527647580690790621301692534916508186125468735111432140501177185766395915121901263363817734903640483095260693092959652622700631169493758995956939698031898065845667645961668100032225075683768449360692067543311148607578698358892643752572675189108380933847355987585158173058734116268821629590469118630473748200193215803140511913693937247834458601665480447365888000980060681566368929318749350742700549038744365180301359688312597070410843162462127879526688629928870149544262980974246611762844711338558081575764728752520654741870438743466884596769552008136485632438796237729233686301009552508216314180148914938056574285774425699038748304662619083959536805387430872647828869982467801684285482738806552642790581589415803296979294246752253321544790403953265332112975974542162756029798430150681060277147540666501975662778657661099529097758015188216607919989905807049963465690059402108796339549041002364887039187814205749611581949942255428077619722700072626344771504794117658316881463322042174713912570540546782346030412575073978542976908973256480060006996379703805551846740515067222279789010567327076573357163328484878574275350143899873873232046358064954841341253709900075908408255019963402031421693271718136145202231741875480526212651820695514995882711329504286796511626877265352494383427533866672873229396672023849634585867860855629572405057423386004601849702621274897919249702375268149295245617438996257764215622975961998062316718022423424523429227151078248736058780154865043091239166828268786680048258925121349775158784819392256163899911123678171444788781685198511056778246012439462085978186107396770628780447276422833555572938875110692515185871046901697717235082552721096236103833740947453882525431070653444766560915594007919509564067306915159216242858505235973081164158522992284305126794668500487143613352977705964407336693958872834771028242528376050436428539927684470961152054114455213026195882992615323878582948047440146367851490663551953698133476818977336335466616429991079341464854304956615775837918745133269625134281710046683801420279747944680843145010432182395459940149870541417212834594864045180181310479012955704253472721685084900596153349983575996236839958491293827407249360868773562983333183687329573793705355287633100274650343150952477084879984694343819808938579534970899767919458719162150243442061342549371906289178077219565393735360123972004333797889403349191488149415470339969357226630262860821870928479079233726045678944570703959460529421041747130582115885536790038555523743335879825465058006689890907560933755692825315854176541926600042135661008039469399508435914760738855218757616313948984155999193822057333787470934645382166693871772990556990920073464648741221483903829101168942866860734183746602631902498613713544378930660246574886488417309832556432675952654626086320173599761750574094860395035722767235695664526700133691317348745465209588346895133801067438571127892880600731641525623897082512320479961171997965924628645940872255035689893793754657566007456494760756226402880374020109108943739698126884095654689488313027221166875412900827669102522729078671118650029299377070011999454627745308347173024532924784739346395188636765497086615823347515339858138327397003279084849582862680812497187295220744084946035970301079555631406175862299048185329217062960373436385606760259183133439890824135871141441212973877625612003048201625896891503899961711787258212221244739375427522844528552102253028443953532228052349246915461685431125631212297218666890873256068254391553867987110160112339992352336913093405915079796288263927221252460750036368116404466633815149904846508652138673259712230408944891219314008730701865623793422485778686412579875930059313125756686476270387226390646136116892158163440700138537153173058329792676095118943374634185066075393632181868718340002826240443417534613664980518570878750965108830644293906950747924504005315591946457778833113781233409092481984018686316696076379916652301617187343771439292424195641689163959392976843287151557488207989723875181135019534924247547751013649389153463147798056639449189033334998802179504200108990704708749866113791762617871060904514260353756588453487461697761845394299010382701197427873092646962972436291346313434744628602002068482465108639350200896202491311402073260778432323114511984491333862334672485932998021847447834354695715534032402618385901550478693473261797074560254334909443505183646996218127463824693131896164064867902446181418672768924135107195077220833020648314331625649660369236013178062105602078546231144842120000366311223408890592580339483911173868997583127111954476392311408721773930223133263060034774284462163481739819438171522126010054147602370126637043600715358286523593377283282123717772280560735606878364027536894989833013162319618689507087124714461849341385117065841696431947456121538716603188516607742467412565952412747083527167800479671908890686521210569426298270518325404324953254967484168855637399779270996957960667792709177270501064735023412527990387000171968118661733882184954406416928287847099320495123673919284258134582904655528872636623722132953684584712744552183929581779791334446222595662193467436926078625092855225671149747260252008608897720217389501949241577016991255577213422085783341532514997926367263502179957866801368614455710778985406567984487227149047369662043997635950587358031057135997809262048695624207664540495434572251440225322955398321546041397074409675528789941193434587967782904975593861525652208246085074683623328742023523958746429365280120869692281183553537329126258552380795951359622132186437872962753796419921488681638025332582788195938602048143752398590881257101743872492637537981783418871083873044927739893361175114672379091175516647474848460404741966894746596332154313045805608050096490112344081299775004709216683300460133952323619863101217049052729602417239388795711353906054324600173988689723692976750001428474043509586920698128153580179075307529295561758218568678970924368313061913387262574693892063889071226180775102661169936350696971096004726334803392580098103573860748534594103809452909437610284007590030790552102837092539769927868688144539168573357480601765764723424332166704166233943005833483144921707591153838141793364264477650617516097868691444138509102688431490396903408690381918579510853772458883662949438963812254182614508414417972561507960729835440039631351345530114248471199200228067896499422941474064904499190213081563018848757772736485366408015750599423306049204116127266721856711044130192172587418147263929312243729682857223417680475530704444850061583311009868219917014060003534122009557904336909075376709926019011071764313985881986838149665977045381956775506969958108134837099592497220154562972121968311094604455349627257755955875765182983626347069506643008028184664416970784196400680249511908450829679837379497546091749542768795396742926271589513788634168498531781138490833820547103327829286324966033361963297293485204390627285683842367851833121912650031633510548928569248915667334408367180199120316021895470004005965179650664182200891503819909014137268378909013428310591571463697514265117325270897468771732852041312980584519262562728835062102040068239614558817167551024663623776420219179781434042915546213567736935176899176888604700356951705103257193933593481787747246277383864157500604818933030319473591739042641490607396857652063610326885840382150181516596742094212097051327379612353962328827006039644543020072248296327098621678109643691941883556366067283408466806670634557443406461999914185020582742711946915730019850156491608265501711622628861719842930553126348263843054878700556708298108990670674924802335056235332118464049471131733610965895703799800167293411589047637094413771889876690458033801740249559751931985211949483620796175029925100250761399049841445569616267697421060963718964832871779496452876859263686420704866322415282339090631996034768312686988326410984271691506228586812714110870859240094930684300586091459512769817822538444708007078491921428330523314180614257492471274947968448945768102386447613885223265337686556023189697151496437546100348420747821527227578883763461854039890219269831367475743054411503832829632652016687472380155656695600276584509982648340811658366216568276907718104201740973446779942030599877497206661779097365137998638510751008725456533596636824279502148456405162276688521215180567206407736828160386690472562571113390202561425058979041433770221518069568611267638780037052458700608022345340002238914504949594135840433562101290824928312097495719327011399831227807885933062347736241332708128117418850897039391914545610616746614750238314806008598316762333695235552471307780282837073579895769127941204887253494325835345624763586664221162321795588267894947270235595741479845531730078968195235682649153330136244842424743414612809067395109396642804519923313189929305610852922535971714942695039736771633732281010374880669468667903493001939834235482450954935469434940283899028598696751797743616340869642155569166824484159368289410252771517261275217582901992548240066412599109770044283521126634485853741465552178262563023434343608620457300651292239584978034490452460686041409104872709352303984368753878562143546595596590353661482596621030207339220484058771372942353694585886828778422151249964163649129473009740998533332702136386574933639834510393206803892357202636764921966853915838930898685563215531574896368462896506282026807961166798039269326315186041376335255547148810428431478699180366582319563632994825272655869067515130011494566445506406131456024650749073091728401863727169752485045627686422117214040792914527930971468705742991738783851433800131924264691999949559212784780219906413891716151735030067293048238592510243669271906142769863028046362406129968449792511934698999815125734367251936516222670073604147638060639732526345509206377203512750982314571685166297790506770258487886436369425146445517322444390842986504373657492943634420091389609850823648624029777568637477192689691649145357440171182740059173870347004895305833245597798965231061858470943755907887399516258773637892306067723172418935153986106784018791038642540182686730833608779288173028648484291293297696829948037974574453586753193998712658180796233817328567236351594256791790146577879673694172409470286658590346696096814793220442337331731926551037320486970951676986823780393127106103626469717656548623507643497325529258512904147422696032023406522990441664970494004210098639610674874255842812189467616140332113802162003637458079138865781974015986098810013988580952785867869581765907128002045875620010935829185619896654928811352946421658340056920311518082146035871263866552194528373937435033449560321980106614579661764066130172267647246120656413791030404574081582664744987406840686269646126178091999380224314101284040783295666002053890116669953815835495765663305748112476782364715371453160281985765695332246495998865601401626262273416304809636474456528406721660626042461092900659340441989767201034291175481604052714395770571158427562082073826407320567477157700870156624249975806791330656693325107920285184251394352314198814692107768948904058421114746607397157643470022350523802363172959246820761355755718224302772190674404481111192161109864550671274397972280725199730819499303858487979334699068492021871470593280847070714643207991485090002475149098633992098788515077084819718659739906621202025256710158096929649905446266852890165808601460113161334533655208073920724427479162719810488780287469586026389965449497303984552825796876658456802726865164653572318943576698348034141694018631875168031844602685376072801213579686842883146866760176291501016886673960320592842464667219932974813108442515164165614851756357848180752614313128825014123495904648662881276989811679853812319876050566658471845913096526993839006424502049000306837426604556648983387904529388612738736007404517601327699437566255156607774381057345165227092694099486235698174069413932766152941297137772011964523889149393061244774101748038056000389953595732974961952800300099578687792246663332398058809643514524278431490628793476563560587010455102000420118522191181035607297833517565360346781025670149774017281739543843383782048619768377029951697164510531383914267564259947309537830680342057296749163710108766488044298002631233894474503141389537785627695778985855125295441372784892960334240493471469666917889169829330254355233490999749586002583007780344280097470056470123868671476402291738599767813390524208012281765747246223629007863153601859878777289715080938032702220922265094755142528716174379004483101293723402696093055803696303612386975801997437223502511491671516670255479923197742834601671844702688895123704848924317068109813511459055162715098594466878602036246616790591886033730238081105940080922111927398962024388171188613970209601661872748797250964226911550361873712533275888700719443534793328454088560271480626278403909159785319096503751085180188870860398605414195436650739803805135306996099012701196056971649355426616034186820180562639276406807674600040073466393449380849367892295663690077997822441914818439230537004291070410556649699648266315310172773446012998396705442732006748031791733178527485088961708044101756890502768521473677033724899104860786412666355258133629747718763565890162866032403624805006572837777405936675007753251915709072923941182841299938964453681371814609184496003872326543462434339788589408732417501113329765990241997401635783782542433389821556962999684365987241804376427162282246129328233687030079605730501762045964986031029311124024101947145409349520392891758035906824863241243510167971997034108621478883024032127215635687164611362828742838941921479397496339408848058720311875290714935208108758047432531993321453969224323534009733880088995839892801239908518839342405732226213233485151865912537511250175073718042974413971692345588522766503940329921605790621596905516608703462735934981642161107539957017143059270632027884417263791150341689634842626403999784760581507457841280774198191055666207062058602569204082071420995838365826519639084990297336583244762330669756618344497160999004540176282093416051773570979309132106098016184252443534250236952109474154453398286154730150537045566609622849805337241325501840487636590289224466130231003980889810169124675935073155138988773745383675163182319081187691388839830907506279624851873278596210200284577085421237883532613516855481783879544466254624054631126791002081488283068298703574326065628060460227743792090693217332644038126422579993422397378231489596901957296030484757819222981741387561270510263218129676680181251770265871242218933824149569443496091267244427893284134590612210777033715412539371795623695029539199552525279111929523891200557708718409074708916244612839545290177595271860209086017237444514748167522248393243680561848265623551211816269826441535563262034665284694578795522973780248288077279835383288123738443621754523170250169246575777874564928975372202104792495512309755165739004589597331571061787968631069344343625039126120565323447813410784453725080848200096673036193899000964053771299625638170407992382623465100468081707671847162251637510115156880736703321223383231200237082304106475879502793753263375625123870468656857424798440866238374241024147466515579468898853514150910619542496601129658799306041894612841647377274823115254981162490755640923727709576281582013623873718346846913448979553654956072688193494806589479439169875770504451806239256284314261391410719124262755925441594513335466045450205332236508776599401076902083487083280032073107154156734301455414899833485871586931393426191825569664269854805645187103924499421142935904576467300515350302169318971280219725407262933950593495417296472596584594451682150105986546958659275941356121361772508185370840391254734258541216576084465760621117599882962044367449014825126189395267069628157574442862214151676396506935000601762301288659014085313952789262539750983698898607881910130635146435814904449181699379200111417986487085828961782301616655138490219109840952237166109711084032803555732301311622230479999219602932408188207766681635578761299717820644749363840052032247551094693231352380661703766531738117555937405377692288497646739739493679893645652576113134307879266476692084436219105167258665356078581358390781364157484152498915925756779207665881224861184462714862310865858888690294116042785397100093325579271862551898072200015931139538652786555879154150023910870332664328700428949411419961680903802577643972529854127608724883162209117199146762527295344075948363762701358568314121368784338284365307155314311076374444905719494337975847378537566077048139791018040082764680652155812541935414051254717638261445286222144615074844281002969159304397415703643265935247263122430758990479148297281421695117536474211128079452972967944754562671031391037332795355921054386754353449905182451741980967059473342988142526407326744320462781229169306413354509718668460687770406547013916443218576901347849923908571835438532241331740958897622989624372711458412521006243546202242456954543128902662711023958570808919286413531868880784836090503300150672546980465495567909654381645610778135241597326721860909595203761794709917188282997760214980555500364448197009935361925129942117992520676634894428705078166124033028101163973460103868047866799854289390459024037226904227200130036883002778289474718009920212242391390969157598382595679847961359142001243864861678009995582099337449201886176238352049789821186131038316155525714805798375062505495509025998002166671861287675666778542912232351421415622034955247109592837646967574843881630383932845203162200650565949464091018960623603450339487377462705691132120132030805368390726076389714149967633640600322296692185688551227161762652015755982952969680370651196422449380288625848621405154412587723331694764360096795124687901075845432047270141719204779316485945477614365506530861964069204958962483409498790543080893648285113394004123247754986911313747464687129617579019262607605196049582102612457581810401149318293273353340525915026451238044770069874518555877998526000084391598779384241571110866347787524043070829494417264116642371973977008858624761893911472255834153020005761736594663778172386322046100138944395101438057043811390442498826811857388725000703890124189865167106638092077067961114525277194826231935153845099367366455201240525269086871679537269584228622876646676658357161620722013619392339785995141674320477546568873063188466035933292472793316889342118324835175456848612490307228506858833503499584707467563987894475065528169118225345659660174449812997275831703170684722481147125483782700496046764126061252575052385849706781461466711993670445062256931658896506030894676634370788226510031772404035159413766865352333994097646696364388135597775887987062882463947233180450980418607885117103394155160455069698017343058073464322578225268134871907760480458815599095880920004141636526998457444197857308361010721066862623601665800382733426065090245447578103226502641094285688496704834592358827090552009395349800641678288670353126732119128398010260130095412250206153605993817067062981286835358957895889836926471803872389383160432313265705347551168016301806132904154766866566650605537111510730650918544121208752488151318339774476581550051237847622181249223422901502141723780135455567947579672505218932068454173088733180392751741532791964441345647136663168510196362067723495485541498814897914036683472876687517811579724566592283930197887777242351963114587397476300863923867716302701215766496078333546279073337698871518835559821114310869924672021241539203884888692019328304970182062707015419336640561908193511998217612816889988972105405568687730199638093716610158373931252877419089810087124891392689151927499638089528949026856317086891695555132652233835584968942511444505020746768195529321238418295938380199283519113362189615267231806700973938581721263311565326502120526338988486552766478073642514819662857230752646001643113936875785945394816279610633196846264682340256092958246924412574039678448270905124864368719829048091828923948419565218495473577162369662385316562915447910517073338095768247755464654450361656968670173429212326446786707490386693132539046956654533348200478306770795267432626465509771591692723304610382927120284604923762734453829106882236232980328138882609757925641757222782798187566207159522520536623367867851429484100830335611274785569765674384753595471592866454453946900434790824572348258896065674238700836031412717166991425364940612936889002364843248294239435928493929011979873674052862558660297414031138592467276407334659430844075156124302250845084831278510354682164894440967781671727012089365013546114922602595184200191393695530721298968862348885724588461254621562931088206097892210673848847675389885554922753917955590217479370114967496878423611067766199317885159966090584981632454357971069433942990300081617034740652490832221278142300599556969237730676464278459809380699877507231529636505950261017843756323030573244723217387558828078987065403414988577758142842788942540474673229480776136100611037054165138932810482811476387263385299315863788360715972323021900405181676630752895614208707644912889893845259263500070844370967608736962748480929908220468051806765106606462991833992661900868180552774866419430156647534680039456530056374227900121234554210312913101596355330624085266879544141426926278748737428991181626094339335059845030676324394781873261429153725906347063116013979478018650635708515530747690644795965436331453102214307822439830013414727778957248059879671060200798338582743323816703847477506648809217372984970874549353370106334761905548068333913159036483362230976584385069711608934486290893039065454362720887380953700455177051359675126566871981567958409895061085771848649675205296087427954956486414897523960368037971141278579776573365206042128455857022958272966698118764923302053030980169503624076854480398020985974380730784613967073545258888377419214768546053590115748639979338466233911896840658369035192100418103430360503979947223147439291954651764065781352138814562852752638209167209396136787063351497102173298058667999464150996778190367679240635590453398638740929703733046099421339212175436811109674595893589106792456587170505667339738219807041975832866085996170807926966377374561246970920773439594063421394143154721725647543052159595480129532796127777314696597692110805534585538129420317283903998773157250443226282225111222100742942060236826473069172448220524448134604777388082392696318402791348676632972383993980773316246883317868051710587531209371758656729694704173005406229061918727784516561446854782182821310565796034160397363915928022167576739658709776469447712201690147701236165772983417289237815804235948406298086918396039468263745022184576327849447151357529317677584434545815742466053452148964905105422333683999607142683231684674356851740722140902660589968760450101000581786548485283417019743533981247501362108155011368455483367217802672566023038262973236925350189232821681981055661862072483410268905904651388970500743471757566272795369237322437716439866656299015677215307313785102988494909595405795848580221043875379634686561882218791026533761326031271930398036858716933924016469485910710461054347415829194678489537450047040377048871633741382757101488321184850235760263846334189451443825755468732656918376107136469288360550971460328746434910834548798314639052305606310143122933296676356873082732489356385455410038474749638264450686230583821901025683017214924659024591097325548301298038797067085049270081902470233634517641197831986904705267311504075036953037402001062901517382597596403990003502597496902401687313573573504460891311857909459355192491651096222567019399899889603521859766019355591949924335142677587400837408048564242946626606318616257811728444291983327757423795224363193586282973956504914258713342348672284438507609602556746282723323500399993421606131227044034352701232393297095310012727315239470590279576413151490690184240073599577719611565484906482690566564263782725594506716170729944369675546776347512976242399618441602192265015053927717414772138089229920780586091965272263955682944729763433561010374872969547535261235445637276928490160995994754468659996687252559467566087699140699146243357815006015825684711106842005399860274888861607772830602198397549002882501749634844877215476209790153228094329126741147236298686322888850185777609923861239427916476689356488397974638108635355770238919365387018898093460777167002786110806524149487610685695849940359449294247033242687493567988843753793496675561324321089166789211114807954856847166565682819832367390723199677404742673027229570145268219602457726091190570354268250871330983124894511231866064485592134259196904063022889746357728471179073300122007412897824347402626728475879273887131082490916742243671978106714431138593115841926611782791257721953190897962958811135163849630419302319425382165215219704183535387960666560044999289624232557615292102651290942982541247283434633105910290933766787674593580249476672458006043077748311051165792892978805287808827745138461568797252881130799738989841894635486613702398219300437969858676924126892767247506614266894823964588785992342641851414298223722678488920541997465227048635297358333409952516232207081436103271423054302717566768314032682616879432384260939596038380734405368233253683727101412039671658709310087139712623004197940984116723470587072407953269416135829881589318782598376694246628426571830184218623600058790927681589759642654348848935139377590891345074237236020039042430565466364302255587232153349331978535203499438200883840431657600926131709796787601812033913659962631880878784498965152248148257183224903120584129021660225742919360819767565274814024375050839410289380360352875615101507767918863363173195349005589133806053249197716959866436220020544535090476687591157400939480197751364110348839726624810797794989265603081732181888128024123824220585199933522324055227347725022277480957102485882345549648606276845536537609870345302778020234748536151564694229051705991347225587140792178361537938028542050104921889837244752909477512593311258186221516653894426573139638143792551723196931906710084960715156711979679286359242502527994751777187655250349717348619789347695932522217897078236965938351745390307982392079826739563489764809463241245292195165561320807813287913093378557807466596964603230114560859275962785984174389763931886987813766282767703320909074226927286324626258682414922004056990013631168364970495617428208903121957548497533532913669042913863951655712311041983400141896106209552259436122057433976497303471608838791976261699276632567651837261470010866426090265407396601676057880286507833924959464349261845613851813896753456839515452433425284920692631156102628821736341857433552998354153174245010266690640546911348712207670109543642431964380182610109412886114428471135871142464349244820626362694958079136487944410584715286375565283322977983948111609849934409497761546812371723117700530778090351371857589594388571968026098560249765797821276955856783080687424273791732770984171611974104815093122289770898060100827646296965503032709445708810146866567690287816726160402021789533023764128790650128137560394497703158278943645479353754161846388433340747691454933020908838734597014488138790484581342902240209500319563563499761407706956670067211897933494200437057741567282020026068823031375105427052190552205791064960383097827793243461149577361147300169471320985578634740106346290159122452859076899902881938870406654791287487371183596639844451929059678924545530451152241099488487609905451941609923245260821642442281803704875412450915735665654907088752883172359239396395284757572562785694381551554957554201379299912603461793561447664656402927843490668807408760215237900756742879127415299169677334819490678182395524369475951724290776706013568897384989365696883606193781242780965460661955594271521745001917891527253720684555029411617518806886775285465994105602202213344301899277306958370539674978799904711780942727541771697916419681913378000859659145629396129078752934115138307160666386527452604709176150345809410385795290315358839435018984245500354261024465649015098754975588257328166502708847386751399914878681068010947444064633301013483685996743891449332414394210682535544325414204159628833381544049304089494833711147207772415640126134520737309069006682912551834512304637940498986094711994680763550370779384831745204526674841142004697815052130568691753098027113546728616291504593648057874475353442256236595458237749434220245775289641000301728854215450886001319920181792383935324076330112051875283506996521964019531580033468059274681157339355230591144398122525011171916746315628848104920896866452230586375645117828794432221580326384003063628533872370119974385352785112432815929688698127043221397445589570556273862070841637007880053965853802955303580874096337429833392151345518519841969654066181122254487217201386363640904591778943070282008722793426562054266138609012668356045143408669285246264097842524796173249728284323524193982758852184168958797600372825649519152995116236744839913284355785867982980382402060612462591415381230729198390664375751725486169785942335719080449414005611845919705459577034299960645756056671325632403100232300738444752185101393933546570424863124310703359616792502428837009452813221462652280770166082082298759844094549550653784491192132710559342847872351649329035390778616575898016686012583098544680554353787492149745507305404164484202409622891378291015559393448308401174891334418974691571059534723368280195000948890540767938161826353142400132180176293081648778079864819337332338816915832573483254088037517808214733800519122728931091630237020138785821740570611675922709189414976016711891107761552918883596913886645999945038419306605001662355224648344179048531022367041787729835347810224819594670256690539108496752634806705264714595368583971234158347447032329470195625640794271696996391950166460821287508729919347592705724530930078870356031214332584947245726982043042913637396128717086283582081742862254155419522655593849882820961754322352224751952516441351259744729965102341846295441740110397244691976140234702031649389143985362361017925955963151907695950911756280292646960324537274822128271291618406677849456569446241000816483999005406740951202607084854703084990017700577363595833373591838526756405605884774995974588411235507594876977028756520190341815964850825328398909906303602461537781433270794986053576558355412184033107470952979332157218270423082943205668303577649246598159898972045629920580952440334176001727940133127179290450847009540389024726953854291222388596919914653740734404542291601441713325901485790881910023465967656710431663340609139958051168025762988841159917588452511952200754640548484203878181525769021487203467932044912823884703078680405584874372027845016813070012583210458101004631983416028888862631172020013239417899820431078334332911687213535236824876866835526040458455001167172174182043488601573889614893535706264907054284631362478995094500078285136600812871067216591345146501102999098643564394396235440788567217025457413200447572368567435066427040958016449048288257095621659234064697509353225936091155851593341350643827046549066271926207789803482262267730900007606783490382451500896195113300785037542786486046647084989625062993620589189411220036682988891773999328350423070801385063146356946870217997959894196158923571827027122076560218243172329489804546065125348816189258772999324974285074687106615258784655292204061005063668230222563392943743731636008434239575390521592683407173065293038748416679808936189735598186733323101886636797202609292239192728600216954075798284635116918993995626272961811780896881773251756019901055676808453182654250886791612401998005140132845132671720978672041174016829003909953297892018231723383911623723457150523010861629116314562363896613838333044182477295966041217830031721580973477063260904920960413245136651299497846112798737366614467294299230622970998950398593112921184766218222941192361332651177796684332887065490984261067344215302840595236363999092255226280438510373906055760309953730984555444356071608612423904495498050196301109843673287724957436670304449030693750887408547844486301417808932972298874073906280551492316148044069929652968153684751449623884508466983301786787477832455843625942930599086071930809775213594197941761916985552493931679519435929843795896987560657670946301285652650297781550808194451336498671173137704574335762120593516432271380677580585307750876545969958218307724168613529110606522721907392628537319531620367359405651238001233330661616503140679046563699404253792417261261759550051128590809014170816308567700215736845324020419473447661634317337567092285661656742898390137454832721581243805191939338644277281521138827097759936758013099582909016455085247094176154951148523644474392195352664749288852896738954218548426862324953140793706801710866252375998497858048280543533587081785714013474063309581202790107334269298903000410577973227811109028546464140962678462086549277451190671373041163485683841273715951331656300597396652288380923933112609001348778184288012247602611207725186212988347525783007170966790351383986228484796542132914650662074577770053668649375105495569425199277296328696362698434166096699284647844242824929868191373149728748781176080937916635878063365988532623088214275355775713219740721878365344513019102316078138974087001740367114309437905731929628630473689340218614582517395917345149747203283990860747169110720803597291224950111613875874446466779139478315833122273396698531366972036268935358718316537179195705634109459339724301392250364575542684990454064037947563330302391331440822426015181303865864010401004059152394023565644988199955248543391354171330919339109143564243470423397039654178923809660370888449618975063018456049184592543837713725818291504990136392438489682410644730303028270793542811260266901174862078278713954870856737439887626037979536464350893475333431413210647588433039114855762415685985548168426493577070421948560523697403918274518632263122468457632068233483097668330134054272848721767377483071953491979810614461568487690080291069411905628758504748899625975895978985356912781585332435790969633806255586632015917713981637101215854759815728748579705799567792474193987821297928544258987695024555935646372806763092864165174980737447714341906108031112286359149026744369041754045886111500724952073344028105227115306876265914639250424611719204324279531404222105353819040997240280248382290083220330004025751175601595861890071459103765522833484490091853762198306093047352949858634024991939746782744394358615085603130849225037048716758611689599603264715650015142435937742274286991669944281970385163846447862990965890242281082716167898886668392951776149971708835625079341273573721161863481459343502832845716772009946206805225908556872191351478075482427898474597217217254045632000393197833851071480852859702272721296463451441614046461867734427905756183309264262483494036239761234883501593793745103733647245296130306556524838613929494983064870493345298323485563832570943530074081986014370065638406693093247723240186141353796294306060182837365072900271386697545499710628608486938525927247329380690000538867339550599631469674694064607944085483237744190647357027376502380362564473262602001346681577539932921029430294716202873854195227268518041072222545894977940505617330517012421294526958568218099334553192356095982596885077688706777744763942416141509646513746487140391002694429276630374332839697647469851686832748781724886604271078661281889250981647370088514554630461186705603999424543038874504773070626262209206889201796123652612100666313312382122533392700646821828480706623776541981817848364539129742235391510311919065760637927483309036623038997198790032977814392805624199347436823981911847733893648799732295732123641165987801951025387271294220044775356451028320895103603847427917756696302276280753436673240725469724221656461571930813612653566270251009155960521977740775206892532061261962639699442898796742237200725784829219301023271216452825650314814523252237967636514928992792077061227485580235959406122223243461003524353254400328430302170303439864565746173655109205094977769826270248560561902390444187609753963516428956843141214229718887650365734444495376700523273233212004859081314318105011108067623563129652462868092384733840248506513508945291655807951152014700655049389229131809171016983637641675556591320348933383076236634691016377211940604836567556751594825065991794901739740076296724493249754692786115406885459128392235685803902935463736224694605468254921794054260154264107097793801995197671433710516089825399745181575332126164002349037719502539568919693056445590556171729107788909211361589990060436998719278775508790817470458344873784690795051729017762583448735661052379234381345236771834593308526557675369036407921877378289026828497909348349158883972971421876640000780879434143923215231806362636063257736978666187900869542142734758044685148775367483512512012413568927756642356789069135275559903672597147090742964094126121262499055982234572896176736972913562503542226941251206484347965544872127605685503871376262863889033519016198406903668822884360568350407278450791640135197055299545774541772005268632875419821081566601595274363256740290437433005895339619434789290081525154194263206494062828012896506630901245836880978088668190144608483842057376341581037050838031568866124075925206216828739404591813031739376758280016393819131716219571531459241666201295579830261882566352749357566379362551095839233012156112216964453061421889053571617198953252373576970827920698991488681553583606489082191320137270078667979685805613689647273671296900012151978327396341055142803972133687410281227701616127319749417294232366341017744832876772448503579968195623432299543533587897686136250400658243370082541889789587696193597463619951029969580815310477450681114733284593326182753661909288165216611039724656874278915236736777705981271955194449866755237920594832889311263772581413375482188803575075403171839533261100842364646101011218209294326965863058511040073404322697324898003875989225670088172088593020740788879924368362159366588844841375318483877295916669085031392677706050307419496962252665518304840998628969224321156312728110487767193001223424145653503079617086510645895347410195081102549021039748244389842160708490404556626896047791734053949347562176450444438328030481821662970829803511323020511706891340303688630654364740243547361899699516177629066973504244423902283371463084930740195103622944940076293474160978497198450179718199000982317163353467560892757785803664848827810306593634432310526217570785559638151535822097937549842637882154713227110531952669501604462324016864633887554857454208760950035629105654175929883068785712237476184459275552064352580371684855709404876563298161421661121376632459215419192288922070880657795841781190770569110873640450959317056899730051031353592214248880246216247693464722267875670491994962869495406341466250604766816327960613447148220561466986256114900428373414899253954300363089416523237578931997086946640896116803589817926933012125458005545811649442742411673551559777344148753301430349181066408185258828272373332491923636622681930731458920914248984710056255338392073723147824486022044025297305477998195707235067994367752787122263201329020445202825824809712595097703431479901324693095209766720145773416392921143397332797979080493162874470481559811098641743504780938815341285495130495567655751076332990589087737356771402955712884588948574362523591067827447061153320717509087425007811838160761907262167702798689355597535422100706004420032082365844364165912073227663148826319077422937411299937211476939625925887817947753880648349834325040320784290732032229060513832974305458953587915353299646053170764267871059962702580176184515909195030826412053047349542155918378295269675738187706338901525352666936391952701374955766249263570322516116115244662180546310996687453587959814410032323196526739161707287429174986780052149660519364712990774873150847490792158643510698644734496782989656364528050507003265658029778241186866334732278650239912838758901133439750504375153008883744889750053949397422802614581675149320918008795322032602750999579103393194989569806578443426197775003532048899843995928474735494423849977205223861759518587725044579500204900686873364540412910162499229483115608079647579848241550218501930690743933548685976399883900690950429716993345454517379146917420814392298226713312793246398012993617049336066251627100858399193116019416481497728250232233444334581385587853906432024712575610970982555879017193573324895484906425910359838101351784136096860023901041020236039685430409745267497592006338900172673321886474587891185467274485218457162035798823539051796744064906533613160549206383775402875249651038967505687563053907972571514251960863579064554501251964556638583786985272977378980438500448570683658867264691531774942719548968011801672834460825576991261755684227127826071686166276200798810049243785794228906411048368564499341659819640714859832148251631870675389723792041715366425528697995719144808009439117426909010234022893651928548370851006895703379829467583350196263270492706846092049565020924591304118068312543295309746601800871414295454407798446501980420453699710348115388689370165402340830341954516047473879813147335320346988475015150452650934147947688438673104320784319187535299019083378956651958066018897972303381202457109509155136465630091638439492925456960042648534564962279643331587948515560246031203660129623235196584038181966508814690413269638173472239535439293505937592951701114784773688937589392033068791268295018899611630095787985198834613413450061940381653231638127014063608755437021268729897342523265477235820448715272847089860153184870209936856869852329219338674367538293788145530840672349710877388234140977972160411724802092178776596012855069198177624944221422874395327805653633268564611983363473883945487781342230623066271941773129809249600347261850750406809410888716968258576616565994761007473067723364236362874420833425082737155927026634785426800522529380594320121932085743095187482661884163638581232320095079535338712487673531665652885919051936492113535658468222496260943046136242640077898247681937958593111266416530413743717295971609846022620305857028144737005060529702351158649531281631846455081342344833518271190621890130486857706925531379804486373933506743683719664113404625059868805108635721758078143040607915665867349271233063660873306989583088639931903983978894508364893381041940577799409431386569058296204549889582997391887564701672925390548098968061352010286154518521128002660050239139762873920667217174299237778758212337443000587739689226421869504506156723082921558032464354701750738865448597397194216242467188226682765014113364477976320797228998737764481224299719694517039096853642291482251067417094307608099401774684456970439846729529048525470890463001160151565519510736236392855813829334566198115093578828905001487666832447199145573763639386568015265002688120147607004516313611344905862606517658560394208318780100960950136169021679917200607781776940242123306469692898789332175503102375544345017621088778564487028372413187243775471153879060741295614609143398842538720943898073329342944753269740666671431708761690830149907861498318497119045184844687714251934447440488249254607302985235123534428356258097336011850033514844909400961546241763795368371222010879026743372105454015219708553823352034153221932848342506642515130523517843704669552696597590619531177690572983459727440629436371209775864357055341156445949383022755693066718152407172604028761031311949487879119011003515836773980778679501082598338559845882786497249273410743968513253797676784049341803619096873961608071260165820021776592367002080031526893680801599483046606149438865907264878424526111384591386426193735159221430492857364465160228948211691065751896934494577977916409660329950277481323354136557293488067870296824958635191429754926678884795598142847490445179880502845313365468554365306483965561904008267561135148187081266079731922982762877758389812888908688259236935638188772373460743322824361282759366732977103797284987884024698759587945630545394347632892006351751184628640704630060589451671404076587542306783244553976814237596064916318881016517760349807618687517034041872075954948704362700787266413022589704689719040140969666104773504276918063982248284141246472216603092088195002448922865002703788482980506186274151544388442234677178425326269117875769231555615927937974782638304918593909602581537344850675938394627719611779563333489564584169161512761216038625567591368965480436636706268616423681094443501652440219831282314682155666361367915450998128674832602425442039093452970595874831718985095315215160604987195968679384187149142308451315431919336520585548723998028574398302708404659999787728924238667756935325573099009520876469508147508506695247408694961885864964235037025299781442593656997255937584177587346017162935005149468140146833716923531027015122669024232115117300885175873442661650606701246498441986388875934464348163096378691651945776553136134356933624630900801660840834361846910357888395244790175308625815096204723123568051390993933134864732227885411851715163262557172615158930056067837020545974503995540838449555267223896150631058243487381032230956439329951368171139393703202748268816136896493124144442093622269595355980940770447248210995988592327454720528626923707877010456611036610067729666942299834379216151860827500946073850546420939340914375091812476555004977102694468177238486963658252352131492031442002440614429016729025751423455317845737693863007922123690756283245123100362872073024103191311508383894307067406524085228615835604866288984048959538649440283484261745765762166113811201599999420152941151277475905703568993309463651771900206270035717510410970876256890436036765017390024857088937513183841154389573706290711299750963151157269171023283976597138522769216039654167733005740847380656381902547762040162727690060519545062045076151041658538783918572291829386902408616073156120158090421940515739612058654206873977031639542113239356593830912316896703128895909974809128001037924063152730186281950347652796141882666849873319651942192923351484996645373836660735054097854406571122212823887245173102519568605759087500078052827629025215590177139951564150446250438093412207073621435424927607352716928254320186489018170232253410550704055481505382573489098724334915539009739957619775154914102064182988850721332299435979526426545273902316823340403973230741279274697445096191991539046186279971388021793128636336931289051119768442577389718744881120758327295944768401746515377797040184830461865604295747093194806787695159287526862786772385738224393084241140709218878151653330545792431111781753003170914471536018569759902074990893833717222217309013097563966100590705703537202204384414912194717059904939497161535069794355607271794398972572605363545856887817609999836041738922939227127305604273661603528841244320252888220350009913759188125956492703341968986653450945121907648905230618480927762992474585132511835300670409242635854175297470438686890552755322250297403035111535506991012937785730728209351937917120053194011335462599833668216521241354795929547234665185071379322438226941860913682190520249570995987570836414925711318486734714180488184573704694189205936814361826641856889775645708147520848256207446061992568949206243823067887811202900500333403689987008644766361851703388592776870682445109897847732316502721467232679148495848263856375356639901977981446800340822707836801372027708331973231189296768555416645142894962375157875754406547539633846920870334829747866689344634172922834576529752415104697702496954894384443464744101565733707551740566674391446681867058051722604026292840842848650655911410146657794997885469529077444306532589672645167713084353771201109666511233019966747665653111410605457543666579051175164181293063529511602477076876229011877193063337794089406752817716269178093972537822611130992227407545429419023421414424189028959036054388850419109566164996933063999864472843996287011582664740283512080276445178246872111345007441907559289954658136694798071448237847996183080881359487074375136670335116922453629521892030156288236331982684580216206179678592588959473274127782683988975858095625897509477118377386720318677428434850449874463638646649348845564090399946949202547243567583948778635333373649568449725450312423341180482779996496249440168594965448547441374449523873714722736204539785900203912368890132067299003180084047966077406356097288412239183959809686272101296736565770699196209475407462655140443866149090173984563883783436295241437234896155372642576180511665308769704219836060019262394162979704133983532115335158172872100589211751633810196753524552331056463167681505683151251769306390780478275882961324145441938657321959282621223520732292724335364651935789246139395921980716626163842791758335353027416612714230127511627698909699344408885698067262134668563165451140074359270492518110450238567337585843366850072377359959909486493139461619901067369666283632757702514495762903424737971674649521242511573175301111952338865554075519541986097468364775540174555061149455200545916570721766081610622929083145156947278965812806311989695709691002779233929508710451731624631836134445715359920545612055652755695039344630444990562805613668694467755818729679579821885297505411054078445721777253059138762701601340536538754874196667535699438932637443000449303677663299243453227230713694145677923302405660002750651890853698250496079256093920435578453113384335114745716202476484317168109134899903405735251325920699319768606463815236706152190335031739501580961174915808964881728661368549046978898007359297394187667059515318696381342301975041860568188140350905691449736735811360902770625540974796568562337686171081499207008150578726593826116369998095499618410467723970104559756481658820859690236351649379262184891066911716690007127202677158551076830520175997277715854169643251428281575628523187650795508491896659578345925355563945759530676929766590463162325468216639264402846346286244224669589795643258487106948453932239996340194189147776819085152209272143835969696317805170374463086681616756994199705868019413559117037302566240134533341077049487505651887619799589564823772872092725637632896799929212776095243495347881157099621504298645140072827162124888117571141623581908157326209769122908111724898704993104510162004107555109531997294364464074600922668311126296247830290588296583216190841012476284818703672677571503370723869236642891304704624510100141158659723912288849147941619858305503627974614863186450378361465079143679916871785711822133899600024643601550155657811776234517472983650603739542971785110676520690416571372544728734194029837049056350333849827096654476962450350788488250357145614205286672441677816604322879020271198415385318937011477239085162038250627642832004751171695904942258824580365197937751982809944625957102187967151141443924879544371897278570118347898908794672899418081715790890159482434523195540164317412145856075381608310407658715032270307730245438445373974640161700090707425221927057269405582437795034984224106919301636035597022602751856339528604732881687428983969682881862107764456100294220845203485476662027117938695404032640252144867985975150755036278024171562028555681128452698254797367251279380132336168528172810931762553016047898216491408512103949287281997089026500065729706517259956762456269922146268906784696097426115104257788960662615783013676106365559181391076972024502639874443791270506577652750032032982297749278136681236214382970267158137939812962164552027577811603088630715133160013875857437632530942052431704199335125098372210899678242671050226744593446287362202336820896669592277248213893181487270598518466255564661508809930951955293337934391275161754341787973626825564130491952296145032468867291817094381408326016712758668898864218483889993774825247370640754604729725336866581859571941812330425334746767821744663991400119286405483968518800643576824291618394842814512196701271415006013270408665326337796827038640056528989697042945341929759206448319538535484177224902461991428309691630583903330816779887193421345144429661083985043508959665793067554889057783020995050958445132346903615968320983910946314276053917300397430869129209790870911479987655690280720848520093940847870640735971521101201257085357260962048283141516919087249660671198927043720236664589513855017400128633955209473431427820313959001832039748034479445233692872032312641759616646010620350577805717204159363944847122962808108956367189943463767713809361502049215776034330902335181778847947859613070077488465659259274772871305805167952209983479857827289793358476835968897767288324112899305807106488858332617760740969128767372987662591291850599182696282766390199407994322706169598261551577048719580154299888939609597653827072157434718430873374551667749406707553597887324957350915751645712032864052390350821184931416482724487966750888098392833761720410245042752426285062952173411083362476252066981436116373840746545969177601037836741237643977299349275028872654444004213160639932980434038063496861281754921121861424275459217655014976553179507148414222495431234201457922796336679594854067165442656252932306449677386097802638392522344483581042391213718963149455022484688867494380966567010642032465102667595836618465917149209088765124193182609721586230807483777158434464169572849397899790372041255924370075659741877202583606933241077716323096241838728222026449165354216742822954918176842294776475639570244592948272933015559719227938071111781640804689044272720348255203407498482510495213929341139234990136841856545320828052973638791200051095715076074914009208088937921137415670731841977052132050138346449642229812244296198016670305076023576505635715171713017953814902798458583827693397575481514157270949767318677631816781382922146271245336985341762932930536607827958431885677679742175212565586154126671413599306559583238389973633920793135910458389255757071798226319872211892693666991692797167018900221722816162267919937019338883043782619766800698814900215721776084197526271941090990706665959841492009959181502831980287731878245738840195707141601056259211684507495539492021555034918788452127535342774438437376651317566152557827582793355421143440692614803645216891031741881546935565434760113740797684522540900987003057892414784018033815046228280893590399490672259929276330330093315484060699431423216931271206459823757543216142228214695791860084854589478407824480937891859752020086482268356372594997482736131151195991394346870031688220897255652195862202297541775450108059449359800141653633892369526342967646202229010973105916789270496540166880195602801512726356074926727763569338873477467128337444940278479607303000690230202193715489395025982480586503360739705957944288343969448214306135665308554189248021432116608424193663584044121568469861157265121364573867219564211739294199264758351313590996449352689794734248019839413757865199384561240079937499682402111506569200837793504190165225484583063378339970200564002463172601819935775798452878832756009524893213650394590004762505460414058997934191981176017838978264909546401603508781282960424823987802316923308615487718245128620487918308871977334636421175298919364714787448676374503320518476449962985865415231250657128614630684975452142629981889797475932771991244275918706027935618783970392369386441270000156391657757380893742334210013428467225468198946810672544763174260051273795954057932538901456358324556759515293425338109820359340411838455203728485049100955392407997833212613327709227686802760326037189884801178738048316046107702447705059593034691982583767480896654822112931141611927023240449893128733196089535123834001525483252869515360896927298698055745203275890824169960726175164164409132085645765650255674550808416230191279442763606604912651816172732206300902484604311738483549758835481606200042651264374364584395800497047566809516068295279171647986500090464815924453620906588342179853066874282438271108119329629311808102566187462698395331814431464378651514375789117480229738740991520873004656071286895159115829808849012108069941777002772665891332570538507646121871619570520547842128868191766619498674947508412654266077183112869149514477226960158653179397011895328676823327931760312720853433824438339546957316014608739598702707935257792157997322951767861857984761071521422948355389982854379352912438571129812611432054935108512775894794641756976768912908910829609755798777136920404163131937071497571002027371239634652345299938587838382853356323493855047685830819367258693568222601577929184297461908832199852122197473394807099721615849286444084557849587403219255840829677737090173277462078537163493481737248963554437316393358070390582830218649878021011711568866284354373941258099388137100238400275446875312162600821574229799971048982671102250481417367077261735049696779309153128532352020107584329115960538293828546128338750981960757900879022314629193722127454485181952692196813106506844850087079263125029301640676888528882326713080660375739887064494175051746166814645223120845084862004309469265311316212583344154717287454399369486568268740113104164699612991224273045267325554473190595453406305568932991793258649230999497696715949151494898964533251666895554941407846731087636948905928840136792115261094346076104750643443802659314877083628629215305082174947824240291893356995958340841198237425422348321322296556753595199704421099628214000592410347748126953878783830489450067457459566355225885456540670919266332334956779012357468305435141445342609459785354138243039147031207879331340996558189728228267157153224566598687156135861280316979390706890516549421067517901492975562361558435430588353025933242510998199978437699417919411298049942807357431121483943761702556054602359970915470614963720203743107598473804740369728899323519045213552785947683166545708930002069375835857766316412360055028773577851411298578950917810307156814227645390573262340841153322877023686684779714559739464878624094818294951542820527242567189294928353623039211395599773552678767211968117402931331151292757732424696678290667130150451410797755444803588595906875347511466363893267170571577470726149138751598153565757535649636196308548315114334166959840306915543311992044621430727048066550062146035292252219543218889532129168842737372693219763836435633975261433127161681234002265446937405181327441543365492305855641371509086036801401367778375095497468178256052940337820148367648017283736346753970174383696940506738630698336294271917957102248294236306342901398239293902260282362902319183458402016289363219567890040746308372159913709432257392769882601512439170184275145142808559762331706137093448859087652058325380246454745483117756809141688190415333464902142905110288511778905489379520284024053507560826721588225769064064713773088889434392718173189316352819217004391817738565116435976722704061168332486050517316127462531945415231881705436565061105537261004355197460722011141357549147819261557802173551371028090067384490723146199380206223277753143490748046605337312126691381343019432344676476898944375082621231848321249604113901644460053114067181645113064766357093724583736385470072190324516644644063080196847048192664493931166329382737977744466263284913819359280441210219078148375347769339170866271502538780612388620982415065036643917542354057450601903707792434858834803082244176463924662317690321708915022878276925800396393988362979557673307586455176431092114955062682445372780452571741568186094569408551110600836140484006169252952202757202035494182820360969281097831948329750627204395565482522751831883737880543806738935565797253133000727646655784869326842471812523121513196696089431005127009532356510840234048082484373778177150408533705192317104093191086934982758957577495575542627080398792210778710658715289759937317108406793540729244857997616435768616403009816092896106822964301853027361137307065218220306904933787983639439772316050119202723109291968981736838172488530682400337074210535598329257228694406483441198048644864104428986681781718276525724113682551182448151433475983538899668589854959818179334071390184031974174461303934151764140493523667152454498001339303814706085713654756239306973229796725448874932856740382005637722592302101147236039057344734619492631434934227904272790098251083315989347861777967404616629366230340470155198856845321022428689686286207217795890389471760860053835944953250144935421720568666163537796046147528393922824527698053339478598062619619924534629223421142140012043633803798079113533893595633551389624512958091240492461002422986001176455361609044935803807047461586691675778888007521509267858989572923240895228533163179847302543468350389179076918247005721087002243206315880795323582380741798917121899787520825006531937759096672082389639130162918407330255963925580442978563671049012306524080153102701065502708487442838350321789172868790754516001953022176608411425436502762551851963424077758429828412444335277765499617528050239558579991996663458974864136596379315217624485895353508533493137723553556598073014888547188981641550295415171444463353116801729229089546221209801927171058184836173513725946921702295152218173802770038056630730921304474477562448838900425390767412130265792599237781301452215562046052862602529860409620846982312343451232473123974784606005846856369753555310797074029527021931480229388121664078450156077568571261156042023581215389558917877663113329806815127454395756345195456177174128905440911190700801708990594461101106580322015627446297936974272983659573977404854241118171825238843552727825668211730268522267451272233767683546614933229400821908156455246286331172567242525433514249178767678844288627237068769163135431164255049036135142200982090901629581391393075043841692389814298565181141212112038817635924180961563651519942473050910035397032001566484302247532062741957145971052475770543711007426005396763511399250854690905384277149047305884330922963585274011960744060146825972363258656220175280965660116745640555539766404512692292868998410126258470254918295218289146209502583124957174022404226096940976546406375344259683275329031790415457717104695947940268831724917480723835120618807489638394019815256031888410632165536411371973653491481903287709276494013117188514106943940860802961632755602505109153717470766883733700787627194438856901953569239197202604260161132411367368770776184961599216512472218445942958388160734243810675024557586070277827168658326440595886605586448173359269760447214500893943926373298468193331811754145262511911511575645936317559211149543433977452836082566644653953162774380191261287381587632552012600266572877021518124588845817964660635385980276339283282392457198089951604213743617239807152863829987389471402751420799449461889835712172351910708969657744684038943237357063934327314656269573558003698808251106500764378592570681678859418298591250651336582282725923495373249510937495286764953387307926796611580078898881017947426277295405406683550103253431923575511239698932538363478084795395767948314929458267484624410492049892110526620595102724553487470766311677258007884028718005830790549463525942937361650123849945037743037702561707328230359160257322659840027515370970653499208644730016832249425482819060810229538756828493714037403540043509400297570482534415969285471225276666440627006444690306068604303355381354902345066972006230261837262231103222991074473721346013852578999439419990833037282824127999426378902070627933835922972291253953830120609926374029277733059006285027981412240879125421442680649864656336569385343429501180882768362919170730782294604044466592397749095591040630528451600094045297487257055480582070416767150246286137884849912260375215474060650799023650319041603375707808227034652596192364995884424301276051117360575285928857396472569645590441372415076124358993206545661589079158103873576692168688112142104548439009269655901684994026148118172546531159535994376927290277447529468579934964941090993536087896440785672022674362177646094777821312810699612249376818653128230924729182388062394472338943335750523081430617058550964830796265969720567578820585686211750349293673290895257305458657833911605694012103827853837456674598270727414087803096065477312808837145585750986205086457083683320753127166797044879289490667656249653283236012029432248635829656847398473956727216802468799975382949688016824090058247646553718531365576397847693658307288916580927516911845694287926209851026915336528254192491214322630689430723071436668425327439925121064916206576284464498937777734195582345554087862055394048729426319044268307574264725858432692304988508775605679133697515459156154515741699068291375066928330209163866308515418252576141718697344141362956719983758499080885885037279184279210220792256302342730099515418956147126011418933924239954098654244774749332224733918746855214043644845465502014587155379781108372824067074805078619448381830004173954159774752692414260724886679991959986484382563103022607877956295394269129601316631657799260328541473600061555475369962044183640623842824581102998145227962557176733972973481467730410151598424926249339293805749290390241197536517056130133618594826311829695546593804868288157885370604523813297141660121542384539576569974771967992556199895416029808179756203555963406484013584307971572592993255613397304559747762680185515344429133865303082889760662978632654788755580128175816442756965668654581870360981711580124874150058801030499422134851344942638691224478061614960879306078282433678476825861510629128394216466897560928941945561667143458050043797817722172833040536240638459857057599108615802438985809739287201420285647354978395009506948174911398071507367076632541358232187176671529698982949210483823631199272169106623205136726437788446875556755911582492024358764746840618151764659230278505942746771482957604013638945624643349126209505645064110273318564974051081388267509256269910115442702594313874474076411914659446565798515105496247032844612232900154982365183995871427682677917577629198544621077221204271566262115310944923927462629516788109933387662120965668221963773348956449703417228529482864521292791792523414375757297289636655281980581893549957974050435538949234412710013659345867729459172007201007825815217391075924523557960542118559696611451674721877352066585245048478417438153590070160968949505245633279522046473970500824350698815464334749363352016662383346812649214550293392106071986382206216602806152245628083339590808743330220613052732442551359410514410629653679593403187753757503095372249088012032396208243912815360142431970450676416025681081099215421675071959265911946389240343034186897366578371819102233762743462603910452281507918955589986932158107494472258121732527109728374742552027492188899423159627237022263274802900885691210114155027078130628710875795097855642564929970468603713665586293658026376750869260921833424490204038694576408706423707570286289483476859780369704548722510596015314694855555330055322795621787228151938603347448730430317696647123908065079887980348057411336046138691015678013290018960708985329913429845202645260947517330949332768835039049564227985488306575082758754709319791995358606378192293503306489464611385540099468221417008140774182941778102722392317808040913994321713187448765955483051977187556099617812876417513921108349228764514115509338413439587360837061702590808662760351648448243433285393047817498309335509588283991041058566857884755214018034841491030833805102403584386424237020116543241724779522817286776033388624607871706793924285597454413084607175897778933839039706774558429207881330850855811755388336605223924984559739734418718527309635931014930006726159842361499994851836153545032785319585316499258403317319662868913235260751093057983798172314896034928423850695188169710662232830990624740975161718079540437367926241247608364674014639176673270609365883184006163065645421830077570625497988818515170463296035948655628438504439515505311597374438547642389665625546775716572169616987383795663043640842254908097300899383701185466220569321804956300202829676933833963953484357291624004829667165576608191979814818137667514209776867791097263508094421201165995288910775679073187509890614767188357777649949616708904127548139974614479928519947449548346570082589362242337306455309790197620786379890128356883056282962173999173307610191789917307893985967275674316400448218834833166481891301843744038142924910880967576564876123142276250882668412447230970962122612930579772508542311123214943704796376205386627878889243079587937153350026040750892116805978454292484226559492367068489190340858951673005288165869314144188806424702926317072968870000113881749436809886512264875657519246232504148177359951506119929964344889030186551735363486147983796756872829362961309615157359914915164144618775307764303584711033251720712303368575420276653710631982362868191132561719631472146918256233851069437807597885369469868639237112820973366362023157011461678170276663118492394922065739773305750294618195977038919499861820540049351725573288277858457571353883576841408530133378239668970634183351829434340232526703896337023742100663069847860740946654804477880201571123225614647237154820697360018620251818666954008819099498121663424973980350557893819225879580139031269451278021781439373718001700619685978441836185589545982660499128060042334587339056882390577635215677498804252846252857359279424904722158220523036133635745439668775259910035677711762442378577877342434805288130269259607352176514200348349948108259088882426454251891147884128080245266466248323185468403389286416261942188794387749238879922644438196533536090354438217548934350942644009495576931808564288897681389380400822292199650409730060911877713716818415273262560159698326346809978337222911094245385702862675328331335730300586693201161224429714152130148128607214552665564238237623590923279202362066190738464985083735205572704705413206370666431941883006289377157007023481967953881507282566425291272614077050627578648245488193438103710090822001052898900060495432173396086257071304644310919897977847108774503827112431806100632714133252937247187848506263765146391049067154726153640608530238630893639464208031230875232101840970403912522717644619937829997207105716440638910087462313903105881570187420294692932312682594092788973963514016215472643770010630141844462785315447991306720591768953769491014303385381599161549571443353595763176814087730794372735206678272614519107586635993380919743488662168398106119299530100441471477946225312413200570882802913878460177764049794837125780411848276360273201530720102568865269445599774079231342460667090939974828621789557339950910174350693246328110549854011017321898590041810754121333979928288072517495937609613463280149795317020448049177093432365576030133652378515290393209823287056817698767716480363781910107321008796943222106356843389952480654727440292027641828348644704099736002198869058123284205812077329914991579864959826711691080722290466092158637328053124218444098457652769707257989241434908637702962649122248681996553721077304527385752597758618826800462092934423651040394854605748889985600289018407245342005905906754125368466468979425676473544589827941821795840744787128068731775547149830746799650230717412767805593658703620339380827834736585854755528643805517468962075223494406133345685736445082606518498129713534639055452488856102416548964739465686992231640509706581182419120930635254261877951061380487712972979638795363503455448595564868181890961044638965507259441300577884370680997113297138907462683463697472750802525843732987729028870698700072857902981935299310742409971605094652053737977519903138282754463420806470251944725065103611367953258533363017095013386173471633594802073957317907012590437525808142852382044335624949263203985118347246447514075841538566669583283335726401409809919106882431847084407145333931565720163089900421127912881578473627055972903295807544917503165641637511417490408524438619135301708519810029680617253903039423989604569009495569331397047717169736316257392198297608858679988016586490399559614048691919777382490106685825109579939251669021993852735981717233709090712680924208495728676759162513934337813981100526228378105315437852296621772722110199003428804147298199513794215294835043931092609211203689934387470042177746175508178898548198810039658675283889900140743374077117518981395272420661795770463478370867799118215714348499340711929004204420509637249972239797137228168375537750206380766028564903686161631813286738447154734187602815679084570740798162688368843003524669493415722169222114576597528515370406947972036720220288302478592393192859523688788135282192356570754669964237294600174166259026689840846941868864376593054678974805353195432208742544413052114623108583297696707199218600204246540749708876283706015613922591857090251407352387184847068276553487748338357972019500153881588913672887075068720414130071717186426212137649778410464680946987030431123128286409464558585519128061640157887233637906790195647034559375523307319763293834300843737709520029392246482888924187518570810546776513280337524017115725541104451473706630163007424124352996212258494439374681284535839726007268079857623841920679386000177290837670709090143986397396993286664948466797250821148286883392045919684003852708107900112530768158501816535323943465653314618795294920374440491297029569882616273029323273749435490755401818476649650981790199283496209817497179276859823598534380738759578267777720132314028688334041015265055865717078285525360944687804320041252799226193025693363231679760800056227032882210599821316249843857095131935539103545086445318408239631374176957744396874004164957786650521680234612502061484656571563923170238814691626790501677239472923019407336926258972046220414443346574693036570733045046560351665744581312458966897714799656111439293299447341269886032095693743933871689284624780019328794865700690890893772085141355896637425710874559447198840671423427563851775156388763332844396891403775385966892339449757690840704210538843371783447417189140374750630889154069713581560501473187033861272773533200203354601739189625628604481227002321449263757144533014952052628529319920398891566028924869777997132120404766940358750366480624237925638965293979510387132132971016380767570710200584173872279306758727272355202160359451946057259635302291292057742455514067239250098649255698701058456621013893880752394093877832470011138082328495334358687177817847760938265806823513248506708248395617984864158777303845710416967452757270847034826646676003481826761851140846181601204968420421941692451864790818813057586606448478890444936939638437525380718343141382205002252789297830371440095353335613919469687931394146412942669311800168107158549989909015625680852368665645994665976628384747961329442538596656057751426062596820845741989243437043660682002744833239423964452612782743719329254083426349968292307813049095674795890731323494882251577199743107424651211243041565720702535335105608760150493464085843602736542484015461159023582660076080490104941627003875693859070191626983159192290931095898296459736317142402982305913452760042849776951193033514410305296500865945465195933301857994499890346355446670651626868461473303465891865484585708383696738714049202107092927087675928286149896643995052019439732120749112325194796946638944728145695835831925584858824393188809694663048426179267016512896329790604053005482131879204693917994129519643945473503910270036709584906828730009680171538292074309909519618162783262232550039829870246085547067322034649895893021920681560538571378412997266500755066177373134590965291437282745213949373874202723973726824867638227153536470380771018546435978001230225857869780331164624463907008954317007598318475743241608697963760903431886453949375111354844932053270510644831703229776416487772062627215207963223368271161576959276209683869328936141824423419885925980470044881003630022010618173410648441195956161084086503602529617148749921487234510913703657440453403469492711494199631157278414261017177509945218843310175113769903047528797216791766199123621403314422586175298000819681425968656741950130254162877261132741410737761930895960610877116416193564251544997618567436804535123681247270887871295040162798044792754771306354479935335761215437085856220191408468506903796027401477582622975008198620036202805430639006918125213023312374663510764501907051793623557169478806864591503222214983394537806849314861772142388004378673470709965501573380132308823377838612938851830642571018359621287809148193438565527072849265876530899644281056689905127669754407590825059997393304925473168654062445201153015670180989211702924331823441196234263813849466447900196794393844515656986921507402255072206690409920027615782144248358624047255170726764300345082778113099150318475186060834090250974551246980759021145298260671845695401661435601966597592865583229334360694727443340386037639730128056668189209525349583140542513683445258890425374394932512657573289799320006683506552908079035250778170683178080252896967422406106997860228348968209246842699778844435974313201466818197697275308323726395588304928790674763018573618365526970735282916094277292971561063259526621215221505210680474300935503494591496535443585199598595726096667477135962180950111529388767387652224841335454272122660677012006162863452757959050054748515492253038476502124641023835161357065397013185563973754969158760673755059948893912730622757078797045492749846477198009916545289199661003857756357318908139179659430591824804433147701959301988910756556204888699912464428330779636252994868590866371155596788708570279922586309045816954751661523688606009790029670160274588571407440625687245802544445982500003902461999029135950583254181879894240358468499098327623977605490165870095399066394960062483519424680142043952931442319287198435662971726639393991365328747055357583940637782097288165648319169218386757857142579522253091900665239962899015026421783972067214444464285914868579374760783203653027471345502961795721257604792549978633728771972301632121782269750778947790450381875219081327089387011474517869636302996628818255710970024605471349324058475033083388120726839552287478118861973113411712042372682596018314355900568493305586667337250333526658582953765193807578625950547555444719692337766759315159868016349338739612424320144997218095084599555684226406488493301132389697304864943438817427222610994032686400157355479653852966515661137787067291317759682601689034667298712052141858829637343195772303797485463974891819029239803587912629005107596391916439344764513185965339871451085299080944576822015026327131812558729858999428225965269270903920117359508585220312795147503769937366058671855798678396074403612385728934223489126268619191405004208986208034383388777005362572659963298388519645894869863711511814319271595596538212318943660874141525512359052814325360256388976161699728701635566090432245315722751882066128623460351690775354717156222966793315369179484500594464012181988133892753397381620675989763434248513887318436416726367212809244740110811507878595078072691795578856972963638448749201594691678581855764032432053230068244841555675497624402067420432196577389860674054294727399623981307041371622543584559920397195110315808619076515056012131501039838167497638946311571700929780215608592296627810970176327840029921016702713306104420458343393244148333919661464120142030634082339001586084769561008937308662248968738282875983418020277210896237681910566236136023590947656488638874888135595715723248227886619063488485978465938822738096138400325406713748817230448141549166888640464698893109140096435242447918595602508007804549884175897788575983723280401574696544785921378584644846581746335642846907285715752750671532055269578028275976813050284431874478906595125681283125841475503983746547844986545650502676607977578406224003153586006213057494765620909036139848781630104107256133580337439172952594171007972707125269802086501157230152707044125671447474624119178030026496559470365387950631532596339499014095233665242009837184627918630033537485536665989824465774081256386885968960178191348912548434531705234395414268795690575982399916025013838047871331571839010188896447486572020142098501634949919129904208842132159518705764857484892391396806160063568228843931333512702109374405659112409432721097196505073467331370583515061365367512285949928947393351654237711445485019713535472366900401964902581089764481275815113670137707137053909983447615188746726017976293646067847366152043480354461018923126501899755441119826598274677924144879162475040734706314848873667129864241251938883274066698351566524421033723679397516476386066926094325250501388135862010494678711631395328580046486565036611008305795616323291440852434470052366959922602250617502847404085306940353667129754132981618985608616393307093930665380929552928172197859045750257910311266081823341005947026040332411166773088391454381931523862607367619306487105631429218223453995224451432703495838759883017004331426655866794524473010487429360644908859360008560297919592237069396275432156953961322977034511049036950198505676203726282629226380382175946683646241537785322106341018446717614370372120456386211204926233573916062338875459543475360081004595170088942524052611318356250807745002150327566722354038344939426662971169103383869769812439535131794746682112062562170022838967038925301671430126565616436224690815556813331972019691127404697888738558421150549785761601854792515519392251440285113111365904761324640824673503690193565393895958323598860259675714525593707182899130022511941402549331097585647870061221440155539901386495445443050446005765287786955030759754602142205269715100224274731662562674798343282778900562600501054793858573910709297803549455864541624069497088120865306200422371632944117546629539350053999066868702206962701134864784783474928714169975754535155630713634504318994440157424767733093725412779033465610207685061227639411601939643780574513014714728528720800897667258111645139927282756983218728931550301967281275837035949346954000766397933564956799401609119935181929983278371699051810212787534062467476650066873136241337160902166420315138562403467687942542865493057999955890285313637756939596932311221638225638421401580519913312966808617433166839754685367031243898282597323744399877324095979395762888815324190901525498066351842123586164905289923353804017819294776331042020412516108117180055657814523058498502337250340820229960792881993634682678492059859689652894318892587863912497507003291364468808459872252675928211234078924586342414036837365936859697543086776996617047305890743419452689751134820494944555758741171785249716623505160672606732222171097347801081072728861064396767341422396524801623156941931385687126369981318391956034371349858685119543145244234969249803609078906276653771310011253643292208378510820248867362730947591155008487073598326281770883307397184413675805171458724132855948200781144397491957693596350189415947092315085280317097782702837306942989430647548350165108971050220941558374406710610628956805140981266186994800532894775364181653836112339742807695636142227759828268154404245866852875278246615506397347720024837095475711699514452217145715646707506516646497492100976275503756342260952306125371166008987131998990312498114529303023508051172449914221432862023870064724322940261166193244818434408534591608113439804490316444793201770429258985609583568849177668160079724498922629017674860829080988196137242185769815028498206660610627094247178322478265921479435874322330325175963404850712935674780939501528242407064193889632075556457289039360501349400896458957483941719522573515755720218431225814970616997094515157201794734966300270159196543986156421503833383944750679954852710271001439570953210168388779724764780951379925951523233629121089025812456574131986959800724146060553155029756605721458860022828935468763638842923653120656075238034338892039858442484297020963747859044409333259670316550712352844835866257070987270066838068616239771948691777284312001058981321729152628404414652334104456747608915343132057958101854527411734874113516113887636931577035030265636491972098096591862611845868793002250719805496940861939560395475669990332026463936368516993723122715141593473579875680327681247193304675500886881184672842111920215727200008786177921986549561740611520855101744423763571300517345364863843640462548922009579246197114602757766175029697340629451355959735993545859819409726028414502161188085496430455400865797326131134344463352132746725010115264879062179940674835399928840438142988859632920623932364090435906954296935564692843377087355237789031700269259410611752432020334354829888391589920143266076138369660748728254158572002435811930799566715899742477419024451231464312026717660124758955578721647751026274999025146351045861432014955590331870840056049268111294062401816469294587722537276278731943438924942551955947362689298880355782927457166385398620167051074981748870014943523030308954298712836936492316558992926282938595834650623449822433453689691220380164043435218209506356697787086965441951181989833622970366915602773024929819081814346308211342712581242220967106532336219953106683427684621453420943079862067404932740148720122906399411425276424657642548714639185754921143946567766163484324203670624581320569458216142614316732344199221023457700469046570152649729944706906607927046189002736803788701355314237759946101766352488094352963604375694592931212092901522178655550273982089460962253800406908315624754504968949161903456644929729994357802632808178711398508720349216271099196521002854160718065443179475794917749382565961298298389044827068106870144120195308654246550375754622474193839681954646169832510062481213666385067905590618144063551943275087600839529027455906113920303396380916935318507791497598531968862306534297931468838023267662505004492527073520075713682580537533857715060243837029997122657029947169312248682309068675804596101168149842055689800084164801613345949429607163669948834797282744591257731976524343039376620224816703359552729526162455804102034559606328330866152205778362139892012450301399172189983404884488814225356740932968234555867322562291350063126419117007608071187861996714725332821735553676315890403637415094927636486201483256775165285246774334790728470426876836648212270014012465506154576557330280174617860613713777195897707597681182959790116258539481789918114620745696458803620695751581734304608457140325813299314391658765545398642575518370291573849079732914850547882604021327451020234863476527197766115217134303513592390322541401379578797413170736625214937950326401816375679696026348852697251669561692962499812575994843054379466964760385067330756118662741486529515128719604669675870974209253269411112958084968738258030478006301026238097622870938694792586783627327786426578664186933749685882251514748015661742136451665223901554077210905754582043193759918354810984490366003012177202986866115814620782470857812873176742298269714514983483464018838262596438172350749831462914154354005620401805828846232746537922745572698604671328456294851864919481193265344280475455816048322698555401088565173681024696754102033678298454112477567639001704561502639647576909643774898993375237885769540604318928611677816711331287176212156713930927266133919001147376748995008333747732094124564794305707816293590879500215037765754542521487807341367564985236039496983325570205396125483657210962735742424684368289680838801089638172915029232210131215660006260175752987121435082032735468135641903824138199854939078844775239335496873567775504374450596549651772346260796709251888937004061400042889951254418931135879570623068591866211773848184234305279294229854816679881737615984156215907536136303600264793923439268493734344486563031297435551764465858211890209059427744106779816244968397349406131948351911481367655360258244423767765536488017784730604700228360667643989438427770902761377992743484829772769694714342759008958920129304477194568391450930053222851592417281150938635000805028442907102159136721179364798960193725238699744329477346226911446453162598836565658591016287602105496790878010693063022787031422256288318160864132101205758898730396187290060734304750168019073707535509723905645562560138042251575789488606211522271307694475450861255115526302646022813272537457734975808544672756323374329992660826338005668063891566953914133614829254490883612404195228194519895626150725071979962896351663684314127022791398055737118771245246133609615651982700860060993673997443314938614685323754348589979137342280422364372050900547799307780029355933847785338679904383850659683780397828065874218717820023761385722329590136263817307831178140196559648448017050322890967263912415745230549908363209886238831438996538942664784341210353189886448263685781137858209011747724967176192554669274728858581485237837749158936856676896686786108534459612984644622824753637401293068273026568559529403386731795014090424786009878268966091904299419521002398472467682714447635045020219921780330759075929318002164824278289836186570511532660997131921231025501097461374525301066371362951640276909426410725683602949088447891962825856644355418978054219013754668247035139040285533539194830964047097068100066334012774367980383762396059338019291072041371197982160586034299471843618972751365769062225125370991004052172722545028532306134212173621517078623784844853864167135853711415278180587988050665150257355744201019136970759980883709646508860107713023720341010466852002168097106874753579742779862678089209518493029665653587277569602320680741993363538706206997007915830227639548892834204048143712863595952982699368933946151374697158270843392214197306717353317043670228532459881415627095528412185179023819499667172651751592945392844609381938168941547941136969822987835761499516622624864045992028939483718721690388301996460868445136612380003819728017535773476443147852053708556083806791164241581089981676605758511428179548913102605573765446577232061504335499198468510274349230734670179244217950996024103487693351354989216643613784149949277725280646682594823970846520149109967316613242226983563315571559818132402284478240608119404785773301446487696853371271668220047172230393738943197726228345578686456893346995843845258044934765513628838817991677722786655632104649469573147578710110573899327293537099954259838073187126239763221285735151560510099585925240229903753800446676604532889984146531431680915634939867962062094512282344230983490102240573141351666230260570146805005851795928140091154755777411445302915079656399781512304115220635133506002256130537206032732799414450807947036258919947027801631916909218401538597323828285684875194896718646137792339418446396743112319838597304773618861257082772038339731173853414057922519613315182458349115202523658465361338572958775531709394938801156671455826166573502466182270022999646720306243775214806068170470232753148841237639174837000429033090593668272386173229532544059830641196374371932886468159644916328185693519436074813710342051028599018259602548466857822474309038805032065579728830939128607334017359091686790910693091501384175087127134602521239925293887604150705020622230184601478709746967567921245047722741565857627420835802463304976157220052283592812690552580551976985661708755451944866993732009118727403356870669645000628823774081874314579233694511398081154673228048806109092330957462384334230592146376854741711899931474587907875010108485894113655385478313181058860853525785690508108531157199395104886253117041301124041361600256415999329649043108326914485045117808052321035365105425908092179685590947392378283063187340632211733831505228196016822244751554098897785469096470843873542249392875189800295661613581245794788853083881339429805749370747379188026434441696997519553678079037119505828441917561399265673892992462528592537892927002240521041940367098209710126004648042769297499401448965763121750635908132354015168630908833007243209142713527190619869313853926754890187125196830906361610160515712517575723907056659978306179038152265507679296813787193832559688680052226105440608330425240060998781918813695251851127967217010773605670602660140943047479575839469746195096989957617197960787255349015865178660818993242234979771853226027121991908415216584849221233968338834352079105682967937319536385457257383746168118571676487712015399129895261184442769626848525666161581642226069482260316777237012830036623215588596895604542812958547525342455795501906717860970320228701394046349641281529719103095827333942719469132686504725821441869954920827546934902622447499518182151547589808398633323798192575516135270239916800970552626476039332415058497579290537864875222369403570117126117070086015671038074637531505898981521811918543629564298477687649526319445745755810923083671610930499243380577435496073822219050651612906577463600234375996577133878930577976882657559075727508112297504832550238372553662716056104341667753017202291484687235854291732241509685613514277571208478057770588362497223116384924107356307119428331195699701670803633735004490284748936850867679970642316102054347246517194996393948049759597453181801817459287122174934192364969667245544103575098997144390471616563013614208651998021552377530584022882498070675796705054451091995721874259579527325365227677245187790552472123548271478918253484453652305565057928897331457968257024901027329304477716301875349299125198929274543061575009143477008157165202652287060415293544237931367641507680933981153305353282696810603196170955786371790868814545977727509824102651572084947800524858993418127924371177001596804771012550683636412951145708954221525827515481332908973015655918892009267182009935399707638717394443505169456701938462217172032062976604964237566475394905760011616353740220037539535934583718236720485415198717031554392883139875924005557992792610842103546694652386539313911180224787617089302859676170519232773879144260679563274021908041249613290385728993813383569320439733558442458681263966662079954066015746397499879162673389056532067212419311322579468008152506059209040718176949350567831286948549208673635468668646432384127501084655960908693347326397845464072614973296749811660925945793369271631988875140767036755721013381674671807038624891077080257687058840573225097627790429024044486793599587515083629051543256475853847278951389144488244661904440746744454600437435092601693078925538241658614385926515152014891368566447477084702008148190929031550530805891180726075787181335462853305763137184253733466652756313765784174074400816080235897303013813881139050456544718038069590192815181748197824803788362799840993438038577242458680708041503621948508514564384815063655067526686055681634843940733963682843282701559123651148374221086667215261177779790254183271385519995669807671782119081400681452644134374611053820163064897848707517692964538779695980658132584041480274031364805686278529825726341206310456763692902074951231277096606864509837909235511372848563222279053100829092261988315754034706422437868365841974772835572002595962146111838247231520708212046114544404905013655583586938754159625685185836205472869806050740342509540672883783666047877360788625329195355984814424791786247039844001779968905762046655460157223747681395132106291514342116849586605108623617962304655125221919037790844266266029027386465851369377275966344309958247884797479835224495981376393475932174278162306686200629990054029473146500398320335973725661924673712799856266805828304143891889395928821524565519670821337264941481588495003001897840246757472838813492349207848853967243364289104811133512944425288515216870512351760527786190911246459301175917386207726198308260067237106171486535073364306270441827433381146225030855833807990293692905036186451951810751861632654688798529698635336896384575009569346113087048635032499210115671312700012601735436847885523074344402399524449531681257232442330728977666416428233412073437218951643180368554968271799268483472375932860895316028139340593284600648376324394078541990118819660384106209021208733566820943955063932317522149809915513345849094832443097918535280353745542755249293654536458021284540367586413776253151372324719012939951934898800609756435856635586983212743487127054946313977940543158167078378476453330953117805079541664190378322958781247832723764970378136751466117494374233004817231856210369991333749650434483795362888056297192992823357419347910584721968419996093817683396962369453029267007628110946852717567060346343706603696329999536664701473190981825647461476733976181723965624284880238553723689883379092220982671535242502637360911745021802792642242913285613608728453420258240214048799038141034617863982200817495429922407114374587199306944023062734370398569310756154296649629925186202937838021212310977413176226290686398765006719486059729498052101311709517800514623567320102399450368780164626376064950636885090938403176672901795623551736801862719735112950579272356554565973253798808256338472498061020848347611142797541340466323220962155525110488239819435320475080247339838835381185286534326700669184363035314911304471006050261703192760018621349443999229937954303672439913087962570837175874254146527631098786820038364325661553300435652466171911884725624154781418847635023165264898490294257137229311090651177930783655591781618462709130051513032047382246350544304452136374510035159506377480998139874630238685627464752332804573626148589992642522522874447537993653724090855366406333892704909200362629161160617344211650592787165752054951157629203232828186615148630550330377907641437784347625980794343123255060138983555737399669498879451247851064203215562083696755333647096238889485798384231449494211064857606422703906112261171054374896055354198990217521392954458702346581476704702008831045993144875767033459101457860803979322499269600410563315873558143458927413351291401416411711741934310413054644243326539403485553954453802838055810019206548861655069113726790051260560853787918139321232722721446630456330430879195984962561006577719802630752353735952023217704779301211759796820992995815118797681105529379233093150023430274573987430039718598782645949660021567702835192821835861831621809133156370035441739944326891255451329162485381371239731923869246586052051392307707558240032281716439448487014688283048872363780522286431579262991913279028216623348276657341944810056873317820957005876676974129294601575553013535358216982268159609224338662833657512043638967885416077496690044596841104061134632726199893045112736337234214156496346465080345035612253690930469942763272987568532730903814645711145405239259393663444537191994054908680436631500698994859265838552342108983541402659236343049099154424745372301450460405121845081818033104947575771560823641949974186600276628518445268093537394272182473360069397233517634101807315733726238794802725992700212856046297069125988644575211994078035919791824128334026439734260976804352480283238635894152697747499731325305906016485126711402319687926180135970727570588851654217210183146591646148607347306968498620387640172193382349393441476175741079126259468412815578291800545913726983802565362069609098398862414398506206449659459696460995517772512232608343494244421485664737415550165918551429845544318962865079214040306817048726675635152159019004210195366441945635742633650100588238833519001385585310294283472993481412686481154732254229749221026410544811902567886390473145591237677837981089248753591410235044653834324875352499969821499706183570918576709946735851263652692000898295915775352743541910856277596279700552169898174510757814001383152763846727083006993953775363838697697160982672755635445591424953752347214647859134365118537257047821771155287343662382768791007925051126928740417511151305689476180987013875593907248453362471531726889123332588641161811194762495122907178425297395275408729904337237922974100288792232104085877395081507638751469140107392386446522730975525358272040111983156486836072472641781335940900277913091702195086911169475484883575771276025265034561817910136097669364706249630950758765472012841657415955557476830053126160826612302215255974084442519368090775399990502911714824930695957838021252206886259437707913610019369285704828485872742787598635434875775851569460622186822703143083751334302805786217576502112667045742407939656160981194020179697065876094213004787874585577781888233176877038921949954015946846266101587522994270677260279043096748254716822336048382808093482147024069422090882975446491042035831700674811566181047857389510846143870099963520575467342667297480414429206068311681709789915177205155193197507448514243527878401711832343938542251714218948538372397044447899135961784094667904763164269925108132925230457994288622223807076832538221818062170209425992300312669598828294636841099281366424418755982757766609154706989548215993245992234197942262123676043634886217497529248806599254115136908371689075712133582921129247674826331547932955769600090275823342663317349176198911603957439456408486180759824917676052097047455888726019089919440717944634329380728863592498276271353109721056689753488871298876487904085585600837738973090989030259196562621551567335616891492990542238440863098985990927100678128223118591098839435236095025241880203736028601482330121854891599411913909180384344827438263628392000550280603644935195293631153110658824269321767453867152397778789934752507258816976484507846520279082054257389593051145605784225379103256141244684226308094820668953151401001071650897841766987159403436536112254775509265691165234810241938483435565381816976847100614278221671644286227884683948246752316139385911191593537945727171058253514255041881028009370258248753818862236372801160069558622866087366340994169774363337869660612531159620023026087495767743495657471320805355743038805571956630241941462124883287109613586895032035594142234260923506040128709849401008506597333514029987110499700585082552818025442056618077002738741564584512125408697489387901346704639549244638372046238457280282083905865250635304229372531736232370742472567993732835321903000699488872103727784435397347706430281965746119570514965795981604111413129456609392418565347778700297839865629988232677554824274812356295206645772188042700592934372425514717429598016638602707927087213449847101769191263838603504185000588403009189282077279402552881094345662980028622143229334189986983914477668857436498901322818242810821228196563696103806270560620211051633816329760088064462317275791444093430751073573614758436884849380333855985886567517710447782405657139817108423412978651173593854787859749540202813665560727081694687357755184701374334027405730076335624277164921428927909569383204248213875978039979706468813259012204010466126772673299310747174104865714938578355313332337655407894697056433785440776123476855835729600602893237133226985826085765769794005779681928519407523165097859571801046784817728150629338367543606766524212806068907152822519622618303688762422497139164099722725221155674171869692352860911183810427918617663977240654720873799311814907869895690733191176769596116888797082259234422727928487034725122235220433734144967668743539478150947738268276360385794090254251531195553899011193505893633999726476547503413024453898744682773951632917413971366436458832147806541148510090783700364751963920610884148508103392172460002186978959960453453500903595740913823220010019064323458032312929851404052530012453993296696810946547435959158042420082431897974673618674770420706969206280187491113639158754145471347447828534146039074355984493403137080071808055344812160823135241317092351446550198543774068445266655506575507801887479084711339615084827362513824301775153383560896820454952816180844075140282695456406463398611441042280806487804855763728580696507856987439594019282107666661258625615120925374242133645041192853463269734759864922776800986664966248065721036301810791344164457277529601267441557746264692167651756009161787671290364973499426762034234350148634686265236461537651389364011098563730025155969770207499833542792683041192690486342905447567512908642182094925119208689401489890744495929022547033598150395144194198283986469271805869821657177456780864199400950101106743227031795396351798384174422670991255211571076448079981909750848123961165184514950275058635952427392000990481396507673428977588937632729384288187963945833969335606723807576516040874382468156949382196820424277435942046027364983146981917440865444294096309840522034414896893625286769281466181474450610615831872184916502677530613462972132082961965353495302098702161374233947354920116199359314769056242132311293725113269075247120856100024631907716291142382161913940144475476526934965871322797260222761491808367366993300136341262383025772409832357630738101671090660322144247598755612107300043335687126876083438380931856382779577920747602044422036559736345203308708814749647611162021795959912921558340066844996204213985786068916543197344644552152405832836992785040812393447619409037605373683449893606725453205307401518755999090388735958829458905644904547215605355822737316015761010416630536058719652351109284789112559941895221554589220573967837875816035978273634846652006233750478637840566796105075141649309371395039085971042385547798168959368629570327450349246599277635724965359799306686419071535818719099564752901096089545236206325018793240507807366125649503135359469067946738054484127208707396637270286291493993109245349583819541908342357853473202064751530514926159353912516424650957462471326857255376486574404335192788576745361685792264954727937756822809051118403165455332226978127696704578564770535330607564400607769971190153631132241795824691338510381915195112232366191985827086266409708428932989401503068151894817255688524078116627278721802785621417992780577214000005224202808848728664290005523079958156525849233013284458409854621188706656246823010009173691710692684644886063066194968918734119465804347335123124144429834366773600640535858215571794901832984980553054713005555059349335906782265866877625287747778079580527554392487661667286059672994467961436208630712786408581999052021437408722496765709668716910155493112035623237439134850002639597091667773642180975767550849798186120724538749338152323057015120271705170313774360396738010996168245937485145829547610763250943341325499520184498369812769248824096108519803434190474056355554729799692301128056811406808171764831002753384179726573011734838052503885844028714935311665508895083288680399641619731474270715445617152876562084872351350814725219843889135570553314781662014184364169260619510774285283689621585149624709110454551450949321804912459255913485485906075144678905060930299632850471924070427282999622102056291895567053592009832719542656851020065511416857769445958758990647717098282554016051465831488548154034019056048850829972611376177799321539690401619813291941933666332414986473690766472400967931370618772020360006674096750876007449228432826987299520683706682872600775237244278150008145391671858062550039926158155940162073319487858873335942991734568788471652299128978809370519161681731988091403452095721685430888517123180425066748870866709887835393452953950125688800451348588449074426988535932686110539668572866124402756746175471475980666916490388258020234253082182784443281083052708802676201485376970557998016091363061421675946881675042728181365758553206717435361979792984053008572268764652009907991140811327447923393163562451813651038451086953674904420389633992962345003410440052707553316660910192855222181391987025794734071237296764916442826117304759757218317823138947264736198639674512074959309290692780203888828633400693865520158689294570509728381154225729709028431909647159225354236495001280016824678380432718592856028235720075489224734126798482656824777526079347182451473578406471108091209388435521489979709358622880003029169862249810335678474931615102922032849581394334674088837414813373030834290777617082627013180327808221747373322346767947475297039840695193059598499973940780159799685724620006179036121878971078342117275392462934604272760741574767046865045563526280767107108388892256365933817083688174634414412026741518003688084129911324106600171039332311548043336869636648233788320558261729979841515073005938629225131188820343080537960458045523713418569599215156132911176567768249901014988432641445103268453933263506832831831989353609723387282512526005758773510160366921976718993226644965372114961684933278676600987431134632180405198451348311195597244373809460620845460052528236127429546673559080955747135730547115918015807426844404206761700410484882662482375937857307083783153728939495404036997383683883945079012443070796715131531638830128753108682024663684133214493321684938648600460519623166358274671813800067792902881043557176165469249726090290453610767059647339744928402291346562724049818811291553764992717963648045523608213018503209926773098877267354077733161920667519098578682047441457935446226462192162387108829592226356385476298012604481581895181808885759835784290930932989583321509757779900644073534016488768351332225145373907211884549848689139359354992803231074462619742552205849462179113956142807536665031149051828657406466766311685344408609369617828479227278602743478217353726641512682498116457283114026986603112311987785187989724888252516386729183913985339539492356511095940630264773646432120681628906744574536277327799348139272577032688589635797582142560836636168320926739595474449081549037728349830949701852373934624581448377288069374959314060618473387810810324134624450768094702978588314215760351612312775176892598032088806298621011008852699521720929835076834301568160330297518922164291327419290651261956414446168386965323263237310119820648771824374009924221830796428332856811409686669250967970613469599922651178752053388053134324467076544848887591695630784595120459238333150736167561798928933085006560148587450660952763540378062404621484209626097925253436026282284706240409101859782846195579350935342973123192283168376000595736951216786877276284580908286438871958638934294590016028096296554420130703100903015063558253885461552999231795845845727746073381102077193606973122213072542996670708716839556420569129629244157956340868840374886113759896334649725891784898255420164621239195535265843843037890430068368432723387498947928485275615979933053746931772129812962717605546946941501183479402260430003691775081411897365058811578582437263628524165890652786896783832990591752339525406261216350578741626105310371241156279422939772476017824301859741845145385852539501592053130272263782830888391920549890747402609689671720059787642802727206402584590349555056813312260374516942208814667039464120485778352809749432529440752295299092489762996391612786819863212857453592188176751118748694047832210026995863545779986420983363585948939630928922258110411098639629164884130990103011981596950205063174958084114626093594207552209134554815008618513974627611339158577777153968858055930275274154317883237598387455463753307222528907270524393100888863252868869577631145992820917635179692899940041456521054822806829223128953436660992451260725259571635755389138035270668507091349426937923679809019009640821180414314648937028753049245037964492933929203998355014998459759349158753674709112424950382118772735656904612003589435526713249121450055213290585958966267183107596725355103508484276290143163457785526259904928868862211645281352822903395347414818392491574291857847237856835617657584067452216399822768736881618311265782150322523790674710290250660309231728135473979746801905215846825098552572344118081958547753751246942524712418929523860042288329545496649766670632710520005627773430427578955914296892279766501090518709501335635045258155999661007391462371606882526043639159032484262598284403486340054080291690558297870383189277228635506375973715109226790792099877562859035722089568588525359087629545299878875636647807948992172868663880648794989921314596840208653055907203429755357453572620082771879568491673146616058316687266866075078764388864779073451338835177087579294018669942478251088870859215392313043108722794186838642568166870840063538352171600868082240598593081225708619110602125703428566875636391554060594731712292057200889364581223761333615794955117488237441733785818588448074438117662583658654788793828940543627109915360710019382364545872429160381773583530529510351018467659483059018485170165769645853942303660831020034545453535856502859303499134871064309578598285221218623411224647781894660876219823022164941016789236021184406741161667993074036660515657135219023755962303636888867344269608914616147919989150938463380593212146254418302129986820906130856458797670890707039310092163813280095533415730050960811241873341252394727616906067943958734874549995984373772743096196624648354422482097865078178651346086076837581385780273039810530346461770198040238137232017528287630688848559059688840455010116114552177002892644024075754817733831117962500465135854927043783513116864903254043130065187000121832803355294922989725531816256073632211322767088655911935905444148185546232148088759147036060683907117999127445852400888535044786116757198634650656372009039530599760060775538899960342760425042558657506642780744296898842175847714715194322294379642267926217982200757830114016776669269168950979970723054368980727093111457189819512850943975292118410458375466916417147888452723914175648967844596539864625005803401436638011922355938388956612176056863399892693269641375839211815119153918408634701513042889366233828539251579429419746692519726543493246974632478244753567897694707008059071867566446825446945692879418270858062807464960410821576504327020102974125442717680421424740752400809109775882962465429241314339171294719355740793939295504623772616660839287127047594536884820843559489606712418065719939902961284194406465998027107790205502380467915059991906575804290431998833553240163623496182349543737124578848561985042601880107792396612208190083970024547580402846125002453795221411881674302017841908712573194677764991416404830195600319121455151625266173082144090180500766942930899194658419004306138502810713187021312191564725207838385373441982096448030976196378392292928643614960711447790936454063418147584305226477142254251653192968786506946499892889290379225451202778459090227034770162094848098418396778162540952390561451993842689742961967236824392838677383981014317133238846970933233353971321920569986436307642242594306784627341205165752445949993724215958773449617622841969083774797751099275831035705798935935419456072815950392687407556826964418050278618591187131265790908848092673061860775226176087149866122546915072523125551116783640904561250923087526639089506098951732684493346817070088102967531198784355615990964719181614604296477506563035515746006623089730867899735622792040327312053301717462645170479339291996664168607503252783679528799820254125783314902143815107480159652501561970918555893447379491063502255195244542171588648780174506687542607793116228685146348743564271567605852804473394425582406213497899600327873951285971994247550052013866455574395477578007413154340533182849880409160406866973462151572313680447458460025263311418280883759911500339764053857306238701314387939097939336008521855994922445319178500453595881721441049827321052639617508541667913143001625383031098948665600384110852036661013701514918284165927167299973718657531626715414845141255430444455860240616116840669878414125592991746703267573924050790099050256181034166309539649693293496214288478392723532207948591720861656511662032847765411939561934054199791150486678847567155024894978541034623049460602893353117191041196565509857300646102411292377796585157676921052177353466841620778405120132850088462781251071266452527727662341190275054809529751976435040383895708076579181323519481972988117937020158304626577921633964417321303686927789631095187115796358771207207360612168520896310472318640939921011952821279397022659996901957688511986667539530281242511325548847007181445043491469182348849665769244933306814561745766451471357093817340519164320052575443279561915666538732681359224514425429623532176062830931169444860179736094251106511576815899782800309712285851562743440987379343188287332130044185397562170942843026854665387459614566537618038240228385605243978854613517386875520087233357622398046430095775798356514982216638576045691535828017430939722235296831670728261317159252272898609882624580386632705198083499336370600907015028660625003938319465062081141025828034362582851485630357500818186574973462141878716640020218253664637925405483521982763365069039955642206453980379932757073996452450951289686065990549614738589335605674791476927521060509429787492010766696333475619423071238991408637639176331622143330272436494606174390553196030245077688722783374525131219102277536495572928732053346307820773962443798383313957322866674835741017521655667638577153819648588431033598469612065828947861024452135381376418669832155933094445930412599368806285776318209222872740547310486948705012639666904314086029951284814035601694805631637479683147656142940639921658402633028896081286897288630411324890517526572286530594176126602315510258971499852594014402870199996691268924233629418520672988103467741797361378529399611947214602166314512170833388318392731797274169461702134545507632915499248146649620083166128976151758815891720541349183070984006941852870196857197802205059215764748412738376750184001823798862446410565195066639704582717775381160084500325773861585123419518611811161500904272091383699819307095706810419964714365517503611661398568245939927928290673530457318927567478433179755291149397443213427708962388186526666216653152662380355417692118921921423296021175090378324022126341263776223466914107644394842120917124247524231482273024029465135505208144958271573901235383956697910866169445200117298181148733991253828245080720174710441459173953505412860032032986809112257453953573476357923798178655422954720456296851507457672546965163671826273679705296610623343718296536605437651658938994944868896375483449094364390363963927745396295890774982125019157447324370461251397986951868313379222445505316022259663487545036318783768276082097812333400633601439879252439369345474520812880047839447924638338936949567639667541927366606290392695577561912899649084770730431510650123299390297783955424047998342274142583721696480819374282004407734014776085513234150595151865079621537431456429355752295386365966168156881434310008409417056668961099574303804237788261520827618662568516721935527012780603418026298575873536058416295756263216296084458382480008162726312830454918545531830277375626654151634763146856466777394415552632169587508558678124156270653389683751324551636932636604194845145278907011358431127014519547477312217236137864361341604339843466764295233295377474794897781434223121561340077255686469250361154504605754651875459643043564960128435950755400119691680874218962863128687485636800105532206706564204516077792649052153237654513209361290834231320670031577770757503117017390696053105777901649905461324570917737816602208987353537291093300676959386471085517594952642440909038962537531955026834439886352080451967387247588055335835583069455638297505368401163919881928338657190360201644721931681873377652785380343959694072575459701534215828239877553496525700811871400169411337646205971368066630811219622686514272987609349230492499451663003480653059954968023279411675816685379759580736227391797621804950520736666189300828182423932259461732716058877343963173432899254446484675718203100386290098469341895326851956923619282124404968271149624157838535374179517873864592504565006099382820229189773277196235458436163841696994320507888709923765553752160232536958281602525083157924288032020001700441145490035940595072993880227626186339162028410713236265356243103665910247588449781593195494179133818354091177308089671623556758270337331942298487438516485360329867541792585707940147330023805539294039556074876784096402941036076443426579555080299178571648671126827180724528732470212545273980465653481400880758612737349327378538055531448011868630853638039530738180773576053936320007054044185638526387072839546494152498859164718320930195562905852714322045885767573440111832408700011721496866536123341199135550259066104399233502962283527914294236616374826908477546460011395115020768483343413403324099672463481237663550265606837527029441459348637332864435672679437324080701996974658547373350353751395028628923185026504967886572469979257084825828218733250772770994126829656249085158292270272280633089553400167882035410215826622556410729487986167340930209588937314331867379786950229067026406810898647005392193702371247697282618301496319469736520869430524787723505187571825076327074887167882323248642813047271886543512348176885445976234503673230509977120435921410810247736798160639071507571302980429211006627010692514874033120512720272675763347856567247251735432202415815661248882935881401240902075549449551932657413572510700808397112651774839874924053061079130106012563630009475292789664301605210603092631794410445188040070551425593464886574931585930217314348778084143068926075964920347003696848177419955050655408615340460886642379441485272492613970282930803658142052726257185782146485775665418541845551352486378943679615793010857694083858804528212840854861731779792557081844186925266230701316113077802702118695379252331023460470768458236501778361548111556530748008089341974480224689425708008272995033739381068793620371688785208801540758936924660515655144522125849817373067706500909493870451716688015987065783611304290510267984940017819899337650084025611115963347810262954572939834338897686955310845528631306543601513597734669936302811621006212154414842584887778810812298852905944583041982916058258318835668404058451704520733491401391498185996694613662545203405583626493507461456221641761667558599758513939533853735611176979460163391482048150591008898864472017150076219469207139833944940886156938894616023782017904072610471701657852917224609487747005935910665657478367788178985596104146552964457426020890628853554633341894440944268348789275278419141939881092317853454991355475740684826008142994839868545187473602435593912253179569706973707102793564587231714124991281181234704049513358813795731039651247268465745274324173889010740510023546815629273259195863503699652014616015183821696212888015522696482528529056311094985675448421006646299958846022599321128610443401230227467731087235251411275073614490548550585733436409587416365067698666995742557306015991051180491427474200614802222668814194118432913771106642974079844560292432213502780965562470444990885352391247668125453181697014293840148782815936476735539746186703389806710298071816950727706393303473066581268279719627383309919611891277705164748892351338390046883164630456503676541692642770243874359165856607886039333682706340597501509339098942667350698802152914660875921526961994903649276390889471699286710465328891738095057241885022406238520033234897160686769584187128600100111007148869709390378204314026102051232517829876801726777954776969749972633015078290953742343770493172928837975937259650101012231558614099925672448668190689043656387568279717983063840642581491344114320894575132158660876313805805933016671661665656209565084680053643185742237997648193020632767679478263407018980439132873176825727146793109571186139902637723120222570944798281347597070290749139844458602941888325345585477339015545946455858461974934327098482505769208127586050858991631560508991099676824361535854600365129196286921460823780565035670355758955804041742374433869531589789628947998757057615896830214474875315239549304320133008619653549675798163512976672207647347605304687922660088070651025856784518418315796565646749294019868235141817511549148899658302638609431022462359474802308356285229158587060986377462117179635572133296752026960886016420772302106259759643983061442527352258718337973807766476630838883677585487578171399157858919999035565679132832158038220685899252294998575793795781441859697761896873440499241543840434033693501466195666904957886721405047565250794655360148632541927634648574561829785726746926299787146067534283490394891340367428315286559736242953846068199675677557643367957658472357880996957613765932785601781610123208590070913031582862459918781600994707518903597531151477202075979545077343674000931100023488140044347611456499152227354773556493639652528706629527690078804712813889268696226221034991194378722044698497816870650702549359319394454350029151690390874721947061242583775426139489193191381371891391527878196484272720055928265121083894223310516351678681327385430871241489697521453946472662584496578493926514837278193895890803353017261116562767987923581916064684794726857214641213142402741577841730887053449166675874651806559289435366573437348965282612416468108031101422585059700142114379741210658992669412709871776656887297667590431795956379581024194823443917353030692676560058699847896963341102840871334356641596306387010923730947885160024285867671734426746916138998366862842939749332996045978344086927090977618362108835058594800184283215695062317838066211288918678470326318082759808115574625642055789090389210272469455419329515789681591567174790435859224548706823719122748620725357229730206868119976129865955093562510141217088417756954971030258634317575881577717315793192866346501358321525012415887063655163067463466911311258835002294194568283750396439267292135499368558399562956948760496805020618318777688215345732017350404479094956483027097871742009286242583998191159426917024678758645447472900879477753121384461843782041677879961749990384653684871615571992774447009686929083827531389423929128726629536435415740538732623640376409964310000857593429272351447658297275938757254665213795287095524622626940451517516271013994130425419554666299514813043557024118982786752556802532642801598614768087777976102353360038203757071774451496742736860450365385862014712187297408021320654977516240736174927225158160966919136886834361397204096873263601629552409375867431559287149167587610330727010935359392603135338433897327190885103141954557440628556534684542124408513139232477748165188372125173218537441757212864205542313054773334110985772183105363881280237762964562940543803299886981414947945375270935735249233643182323153593478929224789603673274258801257274393532252732389664575409871659303200662239279803983767292021290561428319693263515058426081754100123790368569504276743193840757453151424516208648777131039859134957663852693622282270170811177152222453757954360362129585760775809227869449012764831471917852463526664807238709366887207529518777354971482127639692672915013236355007774640750460487496262863699439418146611313812963898050833586060722591940144668232749805740755079447772781366885801277187165849117677642318133546010371608362154463440115213947001435413376633983643859731663245096755769328471385216799093626212084610016149189411907351050159793769529456287165971924724765805719267990433452133090339250105912329983174161220306094695094641441882084969053996259990065284754431116614085025519325205801481543221709307674306443523783073270065062917955062739373026217665760913705431429564905718230381022629228042608620409587482466304638569927054472632541967953924793952780970237791192465808599132547684043603563025192009067072555836735734185079631242506134627128164986272908597180691471787951193549914114677336128503439838749420231590126216553024733731021564139064114327875043748568032466815571354092622609417229594786789774937921396157158558198307784681294089878039917459276345951450211581625448304340197998762068722180339009273185804332596349696289248637312151841883943241462416242042692981675177855091335814248317746230869492767308879715948098517072486535658972884615069319511699035881698510859265232959368101425591955745986118597213452432019111633745057181958249732111936854306335358979888080794853485855706095972871150050672394517095426943134583262208776162170294655420048553067350203074782706644346629369552006063337024835631772188028777951540581207688739711437313428713339486431956068217520858837148994230802874170470502831456231784655736242708281464690524928689293961648246706483201284894918292696580252352356091456946433342715464553175724716780851699596062878001031668405123937191503090495766716012212074263956588340813447472285127469926380807979330537242541496375339718384886082526222176046018673246610134998764233325115107036913304596361656350768021059607257612147298742118096015662232954398306688788896399143443551715773491786314715466367483141345689993589950630593281417623559292119935381626692317897935644594967078305434495080944536844983428826375450451392575119406180909595652081139209670546198104778836939513905531765305157277727137536459665882135161982676484613094905065595702746883562133538272246576090451336357147121613382888508325972593513453959200723527841740492109302140612927866810987288213927492898758192248958129189954772367391550864282416388306484396743177264710482319501229534508736585911003638356194713559615222729427601640116598716168974451734379810829046890143122058444401621140709258383535005804591157433664151882050025065722594325703037058874541245494498971704298837038599972038316796202654197721437281892468085709385072260061139514318871362483305155848310270622757144303808215192105004381536612563535749381156255059315798010860424435687253237742682484196900033939086290592958846998339101027809329614386017058892229110555964987925033015864546030545935620566598684580031344674260725204401499819652483767354380494781975397142200615115575370120719741671073517430749847420353249306665471653803374313927397053381494199211120611082702675113712175279110464861976749242004819061441710097485058319042088019824084260755044985118312961433736362551353834846013998673105930527932509209213607181378155467166531620797821564876298601691867602577703353156591122460044677297809686558814881124701035491447486375182247635494745472624574542892410738324189044066967283775997098113354055082755712728567149738873284641683864167404203768467362987227243683240364251702876551908462798772607153255610351740514546775521862634239941807481551770301063540534946204818285374452934797265078814193545032221233922795714835513044112442542956734568615478767262614513169226317357786629938759289521649049962288150327958399198512679061590793980460260380025400246889071064811270010950019558403792023165802410139902460575832447539803500690545326949433374617717116235517958826286713933908272357673492975989799256512972132553036644535208822680952495695885702840090631488784463792023575619967564675868503371885579185260587410662109135522485678144541352845834626944027457640014436400110220442867805768981338159532777136354940174306620292200892239381426655085293327241903817727818122311612991728381589040915270308371106356988493166151016936620288330784577488254254270828744711276271950203730899404977351714665336115461743165940318771768550102639449783672344652992851721346199978692156401838712753328010731052169541625399458680971435274064526187221301057181385618929901066132035071502510033722214712177369068498226209341780252273347287963071492181608451572108422971662476768142068744286338712396195012997312270324167346739383302274624186750821673198971150381949532925877865054569502941225862256638554132124450822031422474020481048830493599855037252764979989049440460813946468998698497325560980537790552995372779974239139936460387714242103310684248178761535941232429082793498198473944690076304066392449573769231033313837119078258589716020412111961311858222227255999334564533047723155825407639238388994190889497407845788695726214001631446008884966462239944532738590770754974580035443137734805032377435556097846854779865729805026815815661035475959400011709675064580472957942269315536341319176714660583944399989493690029447872987684402882458140800813775755869903680371764595584525034690606459164331549886297678468910502171051649421652342323540162974663919058738493827685570860252404959907803295931774262084791306657174919648593507967773066795546478731188374517511472994552472258259369286243764389663687902487339953285912488855641879786019335293774953556938809298435254518536549599167760422083603225443929065160979796494459315267863027693515672798477195768223191255144542838087130463388656589654239671252407158003199993685475328994655839742731612063356938906976394168540241276020227564556556062993879310595132276409514453324125568077509858827916142490559230508699964892081160822498119645918085667044662083715544296811242384028451927988041071477665776291543579745408884370429659270454013118767955937321535692871926585666078913405010996633473050128666304399042467716580173888639162513172287147491765970621707292975349799596954330865133830524516411532558271591098877632079549890421097782018689110010425088809665580592772394541874844628976236027405673864504477817317983101051727570360271408772326268988004717252434197110003224308657492754047122356258965505024923999068807359699644364349600021177553467807250602990387888645681779455393056676092658090485853220020790750322258800784672903529953324373472148386335301504810847189319630850115260209415543949421672744357565473659835977943081798721615637548497941422001071223422995981227624752817007745317596570992531809887313266316218219856765246604835887195060632347064257791980975992552026820214068797269875118402121771036857583688787479758239067973907553622274505577695073889930247365602723676312929486370577616819259581489139550071913759252725217887714077728704584915477360874023414365404531431980668161398494258929501169988213910594372038834659358073267970616801544813629059174283280202159225291155726681573950529850496176552628448311986633519140138143642311906263451841426801472689770122935413654117098822866215814062684696515264281572113394312746796444719255682123189842124894389826328274628060590519535582390749763553953310779422701130166314086646142164659921360435648538236428321019220212731195676299307523152096716667782566196212556256878971153002229929331991160960091208269770848079488313659204412858206868089213311417812302432871625775083353374429971171760531665865605937702917762960514218074550535754602062170353598754231759817396502053934699641947074562158682804493383348861812053757526177121230650072166539304402729699772537283665387500829558057283636262316730038431733594296706813208091930086845649527849467255104107267220516945385369719486577499303679070702136940867987812171050826968354097545012961723102438671932390610094859665933585846157856324527327016763069420029778448768558305776606144822255597219461429611035517617686139240789497162148648067854996818233831720163497072459084034661279100401726172220594127815398651996753012942545067191590899111792854508230978604284049075263334729703438796429451221189109376707480634549062336047401457890828794217666121120818596326225298897877627097573097162764837360974086192025633276482327961487766929502194125734456810635492091163877074729218868845613776667371766519089039398362807191458447371986787812584668637732315190275973533288726656718639598147670449562378327016288645657467522626781233274665784503390785052821454768204697233087411315563423014456244664411554850079861671187571726082288527116943862308753716919377483786398772724747530518321414792910342792144440371343102187538670586379134032904205954127318791778313193054978219230571430493496441184647054123603522139099747090370451354284435397934742819018125319817485837630322624396851980318250955025315982771026212479526537464098627417151621923147113109679498209701881613872020500411963703223876746039643849142022743682070842043900357725044465995432845735296870808389306655957445392860990298900695937524835745870705090270290290154872671098729704253983001088583280523503608667726702957326070326449525263299332981789358932206248363648091035095448840061214924902224494361898114258816293895646043832478010783764442980006671232973976641320835143916464309844514483953799249990297840385740629366531359298370310574871609175554904455348305832922532221008934877988386363755673583578998285523293295084623727914492169417726096228493991692978568202355100358460174773459387412788320824852060229392794241271431968179611704224791891524540619699780463561930027230366948676850783467622180338807443519157733449994922997432400760652085193430153863888241407330056194341769747618057630382222834234904530122912703250421902210484351349240173596251035755013126375425740545129426526705672547726365438510328715835074612251749454353041115616781913441611591550331086295537423133269537804954409842721999951085937046998199728002273938520552851490013940651150048437029264039667542556974237535273757230116952181017151754194760661133285372904620809349782428280910656849493833373755351817616492010719645213009823261070026892229290714478683303950562889251770327880903596698167432619379800074349677649494020640461484160707582665692961075194401457302420816049469068184144921064351714136826295019158786689308241040234947002756961344508562477243013519299174717226366964284855161404015161895444595345872119775119802378577337302164748886621420975709591322257679494549433133865315355900344479765385698607170395955863367285598042376840634822301380325988008185996196134816172887734852611784967440828677414770768479263802230600651656706816388364900859910193975718290471264132559130665125431337529865750307894141788314022040683143747119457117837207870393465329004664779586050641161980724997883315286055055914024607225599734972471734646911458650417141625632548342491241357939861146994391293095349024140756507655530806712142201191705924517970709598751404479174323119770291201169987848455372662795820644385310816680451057361957472688936699689477400157682266995565510763599376706168311422453275515930342846375031428664676260194216151195153276600449084119694962914850866445021666733253103687129551844060900027149762154110966238817676278081436421253491416471707655077362074384921599136764281035931766175556214859617900018970561273157245173335561927017189194165738264055111459456774119193735494371986026214348865475933949781048849232378779121866763515157571257874104444493500862163927539014573702376146892955923746510107599809302276875009570714234597503676713147728852243856353134903759582199992128363352725944823032957422722301810646029099353234579902332892413003159698756103991272394249712384403868094062449240218903590832576671891509471973402461876394395507684391558042305222841855128079110889765327694125917303268844643337311776651397101691243894702041271623115153180126176023763168810015612742164687962013834219318525482172067153608986378041425902404576472393301612568251590747708696604687246881912361895344667421639348943019498918162403477162348467303211783478917119930191224303952779731808245679638426514309158338950584196879321441263823085838627496948335389221587920869120096900628757383083708780245916986033947888993810443335937741546337145751337739864309041006342531019615205147637576197180590638863276857559328965547169960680083380264359319428604535785285647091799831600132211005058367796017709756828349296262845632620638733537737847058900331510764019274339376608165765344606196406906584915624832408297940131126387852880970274908496007999283280189023426521973592409189911165166161827416523923493911311613000845384895121760080209573662313706450604110340225073144612968918531664267847706597398931226555650362015606160956198742565889405230533520967163516264136934131626029655862493819639201542707651705677184602823606296684420110302473441560769360702198954643267426312334108698161789926585776151699395820300475428537017314504141635057776233913435121983990883760774600932173416639567176077923029660954068944263272949732062583664293935629766445030891359548853673092692361488947224941796257135134072489794451378393287288932743116035893078164961423923651586620703206506143714448298712298412295392902188794212102148080533185950406740416177235710424308408179392992614563013298004200640952756273549648983221429931154554707057223494672986241252370136377623499965769925175246415702912182954555997700937985959151818295588280221110643764057032413498924828458253820802338272556657417395328429235871927141296048923277441372508719310635651170815822969499155540728897630709851914231172418422542253815061508802001260557473236161580547562092259265859200672140196024399096334351175348128571473912725367038587222265650619922158060891750583070413696412075170528495608491582917345612241417095879659281952730856045761044745262916585899232407015305506643445806641313586250925147132639439185305742241597189367255275812758563522491021987653338365047043183925116731561266124231141963047054203302337579557908664329907384736207286660967712533479907606297497258425402304409038362909370825816714950497410780700861134292490418908583723150217797208497212467268498627211655982368733439850516507407851447602498437953839548376865406818723901256618124171856882688921186592291144751528736362343594063835702585313603954310424842073909899944694345979835751731317457650969630947869619594913717199342293037189369690702147787481030653943700013194163424957161980061673659044195626314388862382511053676231955073720386851179217008010170636892624127857783309423423915246565318380346685399055431392187429250603797340429653638116248206422303389497567343459065286816008816451493858831551328757499608866389318716404279316590721098344467409533259343934926397386231337079032599410765745043288182893741608958042591918219597514151085439012896567621374469960638744174157429484194662489281999957569209545755287556219455622346020428788986370596404698845413737868021559086398926819118755485832351356825832148864927972453812358627288410822993250515623017950135462738323298433362936369497678319899359500641918205889405904008661657779945901462263786540223026060099624524170470299892895425290075177460671412049666021453357288940744265341492279033461708511107735115356456637628490050871259561485868923076895906482365874130320334999768013927575354995635886412475988759918235750294162889233582748681589573426596497946173055468916974716298494420983679791608745242043202506513136235261150088438343018552723094903290341864913078214306824684339581484387334410001096867572741676003654885735237454033402154252408818847529331484553751636704857773206316009816342822409771400574174939379509348805764110115295771533922243331866774613490884240855198266553193556503679279611146797781754293397345965068695814777557707040351933222851020661231069704784742475002519964092088915828544390409131250327280518493056311922855927698124153480949999921785308654760314197995617130765685749405142098100300994758972943632485407535400446788231990299236120887543352008255906102169528762895771270475211433238928343513441918242813528243325247427421605529541094153709002319671117007347955128210893329064694667694968794609342921195685298092791794979947004152770310741165748313069122413330968928399712616273469357598435833211995784721513599868572422820505106994428624633599196511482330016583205221406958125857240667428525221380965813475028438516722476039138124616024339504352041331120438926466170123710554659022234244101157798408793208999375172940461918216142105760999233355127173744170599325474152839559501019426248691484320528043530469563222613088308323189329921496442034278179570957763670882296090344415290341235984060309466164372206667121992013352896605330895014233404631374953747340290183018520515835660444083469940445983389714426288356441962357413933263239904301538408623580009343045032433685789772450990683672193994190628545271913742922115187445808966736791320396847751098601726863334827739325718184340492251489054165548200301459100685619093971865228321474575876547549053237833529271508323709648649963574388470492747657060043757121557960234151438180877940747778536243598357839318302775820522979321696520161673681658348014173710512368134127344410234653298420982126151675526890102201507061466572281651002872786338179667263688982646303537608319845966177087121886726402528456456972546127187133050851115885335083162706442152661914128702639655442391749496652942707616142475127026717643044499043275552719164518724222176687550807715442035266860675329703153793100435377691118194601108539401282997155063185488858348938675328228060005706549342800061893958425285335920769892307082163019957021485469423107818344358129299058837233170051786479420911015431547349392523558135958139152873883820289844303608190163169484615549609365401521370391569528779592536517456015712331388696910607760279396796864776808127135416023310590577796493215515021922789350032857959525574057020633537596678262822433612192417289413240151459545392725151976912671992819581129845686128517131945075858778672054338053318602496502708854406763289412073658736255765667665497412028041314811582371019718003319468603309638387228416065634424524103349110257134056518454394516264633612580910591393630824303761258743586670381330672629187590435452599676161455312088928707984416434462559879058790636469782209899117604042770150016702701409641658279305081560631254579761703172381925453599322892256882926259444581405420532522526375909962564390679202109820387902056467401009116519509485682119959469034133691002654875593115092028682409179631520322550075549263317762988885228512732138577606779122208371968803981498482275511777444985971941728017433889148266529897299888988138335901657599576146668445256794590400226823430378240425601626155649108563162717274744928404353983589661773288144449969489181307315672357664835237017922460019518125765828076067124506733622637123660827501453918803624432684744856481100785911270349514947526715542278191329563709399924206095987335053537391254379128406303479508079660789630935805328479216048353017294081079467229221179896762908589201024002447436665661697253428145276592802343753427224717986323628980771062344948105016878859533497980002824687665990310717448034637583440424835180014533094033258805326438128741200284758099615933522772432156026672851333838738596928164007649009287190816801815429264650111655170515265432337707333866056447571598705924063781626609960429469546060837871919702132020141219278612092357832665278751534144666548850377879256821735629355783745132937565133743360693210974077449135656836792201282593527051644009830275160569118409272783446041578380973350246846220238329056220219177874743561350269551602685566127237045795981560749925613399504133192607576527461951353553499984383857133365687907776322742207049012981787566068454469600984945581672410702684361838774910263372010627008662815503025172847710662348455506087445875996710902220301377937300737149409108041923233032842729395894731731274893034311921198359614974468946416881734803177112593144009169613897707933682350390607627078294785115174397927878219119774670370793124689378574731574276796001081398884602773542208220734947624274762157816666489454549163253101942118525744012036188357232094296203708758645655894830604260142262253485041737484097235199604590696229677474876688375179270023704425892973842204616578070175719079366388629139470998744411566101912522290355261809463865650441438577814667535348668337558124570981100769641565282689938070137457042623954944600651269496881697210910067333105231794887704716909495259444395359755517166495485082053130665561553475959067135115985323378816022669504810296626068872979368618001788036142390749571184865398178970657541340210693217696290873174646799852469667920546096669228749851046064284861769630115233488248039403623951300357777708109598432165752151354176212799791183016372482222169308693789130500163589689283309271866673562609835944513641313282463400797186269397051546230957724604475662014639015553451972836525025000197510420971546096216702128219643776172308863591352008360519458736917978015408453522421424782930702602094590974782996560589349751512921337954605732431507467818804472322839569071437103295963678079165322698303535917442956564033526183558194278074613829725804362176887231600396587624392944577695723486927115775155672093362945833727481700583316832711163670213962909422739642903108397531442071085254920559733796633473972774662584397447356455383153844977041945806392286065179543138079431669560463593890819667941591139571572541500457575522687188654447457779620821627248479600085988937303741707512970442094879985376943414470222362688635082841912164632549198372805103944312672244049798499010059600000783139702388535851150454022866313785136684475368138838252575576417104141322694054953215900602124853457019631159501238274778174551654811016053894179292601085429073087398970851560046767934883812480886864244406971213865982042813172236535794813940027738944746062856864698231445286633976704775015233082663227689653331992636619451542051360767539425610859521388922351566028763822903185158455116675927287558242225388566582713798291087587106765898497977856828795822575729938712002903029754447759590526529069201902261523755578354003593956584545569346536613932436023032042158548962252936198510474681859957342583494314022880143539903563868779500969958340232142567525049989494275066226678907447946308288457838813667128532064539774671413151207050189990759805917780329569499443738734228512779230089742804860281146145970286818299400108037653703945205824044937825553117544266792849674455404887903427787487373966868313936843632092143996783905405215024606742254336893605341078054403797624841067015018718671585204991044034330977725265990905410081501254198989968600954729205319855427438517330002013966272566731121358256746815746912878460153599958726064323670341866217402808062970622594653967165367375822388461248309416665501242321997610438361601545729764931873943291950516534679808388685454227613590161486962862361236426863193555420395913140259460467478803189394908316686203666337704886415544183273409112688949728551559336872819304549907342371377425091753869526204175907928882764674236397520074576539892455322449520410904147018959083443776136589863917313768196743297013380500955987516397154646891717924272077066354025198773831694796755128009668052189871935843759671098610282607408542164738410287372245887403280153982862038114184276388294637915760770608403777175893997932733959639599587217940322765603868304755260020377682298816724914774609087852816063644965721097872743119758890834435551827482502721700539344858372960037940562660595916075677723761660498420802642455994271707181666227132921965418004208775442776471487646852888237249398975058435939161542289151757882547315549058467466366803438729612142677504419750665859430056157477918375200925627143950566353816494744032501185675189571082290011640743196767127947190996704935870628467373944115087161235830132965100990564943329972662354653180513903817048514702478905755009543150929551570027439672831515177491084966310907066641731178417503154844984417370547648335424754162438926268411400337849345682911332058549972728027768450487345163290954767265801801781124479035481142721028336379158954550237662387479569257602400509883669150854199998449398845964191067066842411209218944642483197499702189631172489961850531482735501136969875102516645783347267231836157105202490779154826087462909409006715579554467054907758450243408388465613089067986374309582331456219054207409733700117133167240422857852241198349883705638926766781748327897063331056579049563618168213719878065771557422090888797368264576473650221664083226260082245242028856035370644648667084739598240883072229114243355311816916311248124658503851471617163088182876460704138448858266020460251711110677141539548512357125817109770997876295226836832026391761563569210030785618881058812014069520222510946590436532194927841992249771730799569364093734743070275433274804899096217517233969079457186932396025264916980296328755167259802398077965201403327770062465652488416695429712644676337510951038583496574577674953043835923850977779940143049756896158640113501863795576598720002156373970665824275886912066771255671140196240144185469686188809275938847715990748285455647818106183998361634946322479904388307662303126104769620322062569129746163818673667884302993901357957550869162414900727642073803101508886243882399332510617297797699297738105209466875195814336932551994454388737466623612000084730445513611260965769529809427478815005740328655902106551607684619402995976320493351259799836803869121391913719616927843043114987971115639486035408615090566696375072797328384848709050006405976555951336595735474149584384522030014227839037544824651031228408320350329969208776910977206918663313470041652824863375882066464887970076517423185435361313144303224569095090380273981602205059501312295363583749082250781118591979033293216368235517518177764683589664284770497745019894058341656374988537077206690331164642101041050513117760773878618107685178147101940772783357971760987655992147906218394889781571049016300625899284315855240709434756636986278517330309776156069391709152909060872804775165008146053751783884957762137571542366505505154238831963924318066825940649628474714947530813755148317092580436715526491112529873895199184655548235351715510855039227543479643125687874829343525289149692294207522753723634351854365908483412167904982362781282915676790080314968490978643129440340255417352872772479630458607858361874322654157832831226235564601981626621329140175618316311543243883170617337471241675611420874141044803334171714979360081837450183300915550680916895567401485682055662224021367204138182031850668416033782241486580448162265242631520135858522054274900281279395663834655543271712543401870872337972785534165638666877239779107979020374969745099722074314591318593003128770256363818324786657775085824763302864149908160513210438626872320313750757050637964570281145595309639236008708474619689201960055593070248295199701476549762836309374985311282401574945230569922160882736895826054633954711341423887845565610294098636565337523622792215968783640592833600604675588300719157145046481272225105471507297900619458716235353156427937236678318680976900792323890503331399040442783487477323657893396059488301816528309483727593601931152466232497707321043721077291717165794109195399187695367742441093567951911811412534375571778704712128576605098014679193998475074510507881734045582013015164949412652020640579457002095795775316102499737917591116784386569671514494024646149580413741084009869821689681404845606739767876352003991816969966550984842952549142158618984894685845713931248046791072285884295405526182326411257264381648460252500850723294711402753776110572342772836586393795516638063493901981085550437988761960710486131383225548111264966940745911312079689529693831352371178147074388841272633164918018386460559132100439626209262543358731377433299692624177019991669449164864167286417912223381653007635019591016830223750567846718597830994930477202383338422524350658525597562747359650406367065646952830581528464984760156858681304966483386156394371037116257293815808917036265411182855037351694044617338557410312717123213758824810893138940359543943791392568290961285504409246074197712372109987574452819526757437454273332296376231505164136066300207058038376838412569673076451580012289856358430257201402484797228067535049294538731091847963789571014459668989785813788463674985833044479734124881150697095237925996537632989703637919549954937038246582933583447840615493999963136799764227483454158686529529822510881348736891917234788811725258462964331605038436971105865918964938995188361001133457047009435968558148004878291134102696711048007889267471970256698763350304486909145462913825895883418656672494258663758435063707502627543041868204308087380634408357474204137519395648241239033328370298893850308111218183554679091520318268887513772091264376745104515828651624006268306605639549703516614030373495097351791141588184743575954458801554111252615952305309431519789948611602697355765670013081200058859201275681104221232361759575647654828465766064940839801750176033203534225010764660491571033690490026634320202600066477075908047012852983303335951801104165164302891414373432710213781273567190486337251867531360158591306936347769609977889484637530884747252640577970394899454113103501089441698537037515829107035653027799664758354746511105688645832803251431001130548808612735528727450632033783268682099468088301103355384920046630126208698870573386022662134786902042309409749796127108448698647963913421929294179673937314099860363143817470367749268172194516723172714464293371449998739657727344233400561595521853021831236515328508731573576906858771761361247239983299773919091982583840920924649346087252281300079684961815738480197172289217360960039798953178774743162215037003398828672807045872878923116371640811154450979859322837969575798168272165464871550301823660093278306813057167847840497709715936811585226968637975714000274194191852061889319975600525105223122432976823480045658356909624042460311428952312662375242119994917220635353039559718890659088223036227591969291083285752936719950338029933504279584868221369896190249789945425716825663271766407486649588093798474607818286544118501816440034580463989248415041311359768516711637859813341106313915768187669941127673752505761788005794804033378830783074579308650887487322269686396751467899266148806250183227227658775481953271402571321224644895858555104519159394944927785833104836007291599614773147642598339716465099062177959710641919456882188751974699294482198278612233129447186899893702636279857896303771148930466151421916274676959676931154450528531346974849382877583765284151513351293079217827684403123703524621866782296497650632843440867161183163868927885192876523317043449848064419366692110213202878802936482568030522581690606865129439096585489540227268684603418964371549884221123903246993825042666805634393753393441616889513785185966203942100166573532665355820321623515056440685823028145713101243584721488210949553669601307162754512981298464186311859584788583805555798587641288198523302557876864124830843038654899331152530224136300887266159706280732261072675161812645898106391133514354071812276155353743171915490053231146035301948109913157669469724136919618999290147357400206027291806174549225832882050694116284438432827953963184218834784282297467977726433833812608948697719700537325795094286157949476115237062398081491325801694633833614594047338838545935313692303765565944633986092615967040446628937683190864392098602794430770047657135891694108316752357014791918921693260713295548992154477838375780928717941692625953268104488669869013241247827567280285104156003181674677941720099787076918709467504065881390692557372929695760109766969825278295346899795459130665218752390703691465432309573529723641412437190049833329208660173346754265549994549532065026014478714525017460200292923771874231888824874141515179955764681289421690519286686604312665378901951793834352965678926581801213583331967942826753259305604194471318473663933471777514711277038118854841536724432581542898543097896214502012684145881764440807278778230515856448573597671517649166747458281515640958525186038266730936664106500283885916613200165820981764807663017589412106754776181041294515312731435397407820002900476202821734814007753723307933185916576299505425040199645777355965250560755149051231903163779779918111600767557819316329636843786972055379085631307865241163246102130226006567357136920974479846698790505699954603316914053126558748825267801758669391519013186420117245389850623378434118217914778026901078911165898832832519395526678537376052291202366287121698816042230251134112233475154228701731993647019776240340151869340110584098953399540968411739320073536226897030666887038305130325361494340206079236764380317492070317467616919431066373316897105814123326904443470363228365970193676344214768348130014606400247476280403149925621101602595442193721915993739417588090221540770703493980503763415797448098184926901886099183431607343479566957055063434398987041826476760010843696558398248556796212862707638474630041098091027423997482998393293110293413774577042624749425778933105936723861730107562727482091198560497475745027051253870877152753881411314129262300304138038158092848461042163428936618740802700008176134971333594128991770829983981302702451947998882103462118772129178104842541601054859703726340135782870021229398003960289985977290099841982435343753932079409224814873642117547758979409903118479793121984257542937550708921860810825510327234210235367435254675752408678896587831414176350305814220535771225084883391669057221854368211107317435878104642627940712003038553869826074455724526817158851369999896786247021413389799046065824330627411176385788060842951811569863775451265483224870124299931992637271435691888111800890933629660511201777714771043168595013170816254272223856332479138011070126154539834614448054430587116898947376852415405870272074737313420341439857056925307580804766770410921161951021751582625350513590379598409382745911162581524984328932854089377354218854816289713251299482069797292793499774178341944433715598310386233159521190780818145230532795836590041273935404380120734426527165671774764155010786800691075801250187400078856177580010522840533256605503725914595788756042898345976441187730511923286502205905623836778633324798978019150760736056600938409178174796840215398415657377607176758134980980261568284502833859226534964297372095460690699770865018503018575839272587829718812534408971225069306555200415507413585483719262467489070974662735507335364192030058195459281600699426520511256284723649647076065167006630346844299266890715250103164168095302950459867281375931488554975069883933724154202403672619755964797839224084991680163590836040867278545657232354623768291426731796045172338053366141019241416744663216157641503292192655329008997863868560009499077481556389537993689778529488307733453669498695220644698310210484853632082784814185012184877889159179638585147605600911633844781351327411349165464724597175507438604064635762868036753558716823888490437736993347973373253843971759822285259217553439143073068010594711881996327864808264962080967796882875020877787011279873151878261316476842006298329232930782791196814020590559257109607779338358912511421015787136975023381654364175336127300951208022136707443759497501799829785129269862420687066727702573269906532373418562356934903890026859421624281295554809205963119965990874125664433318828350813877866994939471133064016103751706648512454249286109082960887042914077857589456367659322491121428821992141717168648259133577137120582577527404633677806071970771582368976974775056758767455800745752617668862465061916584320556051776805347943653176722477402556326374609173131331335632727685654661996827727510702664082287794671454678979970070696697262651370885906800011710743432483237794974163395695688145186864216945554774547024167346699718031475379173579079001660941496901558385184456194734882550994014994367830726406788631342011121720587280020124404132131115224635212195920833123217652445698990156542804592107077054755223329378398580535169702101691249691040511929417624256897693210239241537174497681937764446521271647673974547935317084030849394106812894056399676261872762602789727076218796530540753904737434207210744482887617309135546834261169763678430666454402854326940676412486224231066293396555285725521546995881826164080204100956962970191509831458607488548187217544586077096683619821602754696933394641066898887306645745936261981224804394993567196602353947908802011695552193878001456820365941616609704223098115925221801668062295600605730194906570652450708943231699069300681310353400631708063831605496514387927190087189319164934040631450128125703049442211542423567647359626913217149780203305275851886357371740126407120507326303774624268117344936771573081903220000580869847413396572783027375184024316047382343492261931179942710952709505191883661608471911771163061855600356966232097882741816517907538315631114318123837397794268817200377467388280190618304521626138686884941133956069185346484954982340911422848845095750476700006261811005490610705302080592684079375159166931831046185885312844789531236074539821082776685973104168669642225242555891338049190026298236073879580857205175163270425250168148307490686224159040468738591178578181689745603161266009961863210420525140486861031844946206958081031375482156044996335379593736750189318564986305872565405256668595602515088920664760197043983947039050238818915065362708102938147925904945348058246290435938297534992177052322372169760132045024568481892346017262400137580960448513472051299844553222326352574787928437639160775362879967698430800504998912572948283941065898252216054992940497210719168858776007951940277062696653651310443689350165741613963606172596245786094874514349399934407862340382185626779656355252782440802642290198993676258481533237049914886761829428914618617262208619737189738509249653907042653387988451599770933008459761683420554431517350083392046041140392065956002240589499530961075161092563132373231127056904359525989880325497764580384225106758184129299900749978280590019276342186393117174075199832292594751259607839536965016111123888627027384056443249953590290387778035149988553547272150887117050618711308011762596278212235622548460089613837798820945794636990878769291162073375995009556754374350909959757970779896437286584248403758394962401388158090545942739561954865948250138713773502329368602876609553620274725008790843950328868174983249768852462206473410965480517831556443955690412492567312640072952515703355076686648545508075160834748693541776326622950455275546298438837316911357352515744517402234769905640826817939855801510444288718246469363497752924210095105420516550141605552968292692262111254826935735778349771104953093025758523345306948242423406776337555070285903976507619827333623785218503641997668190425668251792107669155919699657028728755277831434829422413927109064640918342197596511497747091552988082742288619951240686007007065618514152727033352650778004523170124588940461010556919583801134086428601853750789200325683104345595193419709441109340277647346791971433717521149933842417505693068050863318094928191956417805227097737950330916130922765422839817700755327950897044097788668022216834414184640880600773293065657267435073429062074258224592619833917419855735084783277843712768566299411757836099059656737486676762912943859102832873238624989113420461242039577906980141049180384834817215609737064911891104193558593561089235637548776289303845494995632912308664449809806221002074653013833798090816604775512121643044669638940936651891966709456737551110672317812485781815983281236509894934669892744003905045226015668251512809221214402636084271813842042995302600939730042015151860586308972105593039637970584594965620781300532737623865100868963160112756148091267080746516152650967385840671369090619044503072357681549081799861804400790699186606912451586634129174433245845086879439327490928359575511708529698054301067223100748901407628815943334606157725977878171146758326308427387119416083424386422510875875925788856879630616472181730389189623024304710520147061879538140276346811884989999309227933862139083801315459016561919603532120585694256579131468231806061980603959927043435889411718319647002535007691318715018620884455232257964379244561581038544319498896482427347925843605848288197874409459807484033530038095471520584413345577549284492288468646125203978670374874774096456357671555402693033276990281068838097337790538333549303851870425521418479208498399692020639814797214033377880277750494188816909667049189860589115810444763667478598157578356273885184924063819368001956565201287263930660031249950787507603452023772325968331952683615861602903666844370299241527509426836435143766156917112676122005679354955967587134943118336224229796979091196038475800087725012237721236751914109679080745451691887049220833550209730538092868378703789135763693574753182049915831655729199475391026870124800252148398864619271163748556176375412351160190331839965062957020599850548107560678803293185242633282773440604401668989938276832412201672400692069759070266951868007802539923434797973322992920793803417598283079702565854421220942522872009719565984044353787074530630529152574819641228066485560150462011454617864338570174952342711451047899711372538383677839323906076491202047177149612221243865943133725122290376520737651904580692786325316377376664433746399120385803174878577120996724318934379204950258587164376842720593127464977120021547329496094246455673314470511086744437794452000737993791560853884918300197002532137968068916213359657711230363787605324640912612063079693638499623461535530142871310812157890773550799553121735715854039910844436584118983479827055134116222467368080936272911710637791373570474929357252128565570268614959910054930372965478903617549896589263193905865160832283424051168016538716007137580415930073698917953854732644510336421718784419060822577768764992337411703077024971638251707306705640289549115581347853195576855407615470690962964671477696312004857930465296260139622093788271846875822253660343460441437374656825021125319132826790117201348207268287138056477243529758789820090317483070658257807664899604769138816013984004673800471187394793477978323459316999440256570590538096875159215833598060406550175891347827802326159515211539444764951443486961231441841698359950480234954663093396244085591623562648305371785370872240371134630942276046914100838656918041443250692239881276811045565462013068963433109301280667362323985945984898079562136885144998430329794033959349778782664266487720851901732177294717419680044971386300131430339909077176052943851089082958578921411116531792603690150076683316891467183986384846806521669995511733265244277080672663567159924192296672814998798164895595062722461356582921819325289090036249022118829084355311787700251647407979290909897000856889247413329745209249157198068320748516987115898053006610580702647525115290242624516992186741016831345605629459889215669980104582018016265519282378945536724485839884550294282518855974610640145534303652020538592599728578537899733402494786016185824211608764807972774952583668504513932175710691978437529437530934286723798330792933999735540478133734414667845667254095886886824442373313946716948067336674306899862301454481791231750803763777726326353130058591668197547027095876976813163284409730849926046625847919911124928177633920407546238343283592640073737155268136388118748119029034809567976948265078373607548143780057900227930603326027756266954847009316440212262945947592865940919240949356612519532621393881814464891251526399777783919913728972995546552942404076242349187495955961072415284543030122348055003469065311876998978606214848388472495326995918324898591839839966834102937466358447234905745353026800223809195360618113801557435344910554541441125838667617111520041216911762441703868699533095090204268950792654589408958206812174944291089888825152650974731137906247697008992735151590613702332333655968716694659775254891192293816917165585656269703666527601906824658885784320352431900817458661483208699534840823794085455899817833849792928407519862605233380032766960883956592148989100936234914799648842054322698267303258936140923988213691193354915361722578518103376375379593640951493195619316202828363710591973490316740878072485556097561953136104397427682737498516742697497165260389950619161499949216168494384325540614681204726086488968532785281305505801125396693904295747450104057568990024106679778204622517963577593421017690707532512675465863404110509544137367926506721150379996226357511364440473213813361329774575242941875439472117077951781164977296714047627874484407139151130077708914821274655641861812936768220843110087838363789852679349073151409283540620951253734932746777900957014209806981926991960136142871451264518489909253203247832675843496481115359757031843186417508777562270124155144542356087760373623391580432734885517621114019257160046594142557443176195766081990910033801204663920854225144382005737565612788107581837718941614741479484009417114271576131937420733105011045325679895822987697270772088128645249143178717034384538083649343299342198896168294192872974325369687212082922263028987519480760599707381887150823199014612960415541523669886390432854050217768194868765965888364403239801366885734951959229944262136833648131044959656139863905922443854897020416954912584272679710235523612900388807684313264544408661769095733310227748720436166298587290107636420588359253394223211173116618590405602355933154538168104680676105874562532367111483044155486839973516013599876770811986301513669057031155532564242792690418982379664366252216113665582878888789960698862539312597685242169050160938592730508708508152597303648768504545524957501220590210180156739050519091570518221054216837110290471791057694278548740686194176612458070600806730749910875912137533030957823885960542792073323986491802159976284859866620615179073431726010203679444898024474589236971180873464935197408901350689952416066713092957420478764595918205260992615033187240335389513852279242870931544707092350518695495727784457457322192450757738534764426527973647447615616282334060036500617962802301148877361789045855242212528054321124491463649546346571619898393226644072853406542081860388783236113459891559002124104177426766814712493955451618383133498468867164446975273316798648415515118634558160829233865592502955837234561595625586624004237037518633730164937645659492474360509897220208367840216843684936785186436905303643256185208233068619603207664270098920458684621446168877162849533861881337045418132890929234937367247890409267186557777495477719000610313421675228176192399419930964700795164340262458625232637579094928650526323715087168554087870524549315337773228188043669171168250983718838393045176946099597293997099331753953935451525324220811436910825838516507074390590900370162896744629330691491656439879308567672146720216825056322725470036005555982827855188827047879448963696293664354258980305988889272451951458196011667979514769429049888167074525646785466707273072234822546391743018147711037335614382524420018282986759072890648727389920535513682833544002932698579658691869934232143144684986994265998773995578880713933785654736641300857356661156822247428109564054576717032914272738505880892495889084788085905313136468906611963675808593283040336935700950712907763550190550163241000543499432675410969110347051713331392809475729334873517969304276905796391868064402499844715078372739856974908362317841525673056463774078759714681439676849034634644899244250676910339181244709931367750530554933642454857498433861505030423941290070756541559031660848004220540378598489583170463451382444997438970803376502378877002288604807520498070006180381619481674677314015571292578271716309230301974797239813879429464162197801003808000903226710762455595177982387395449612093372182008019570288018988387411983224917977245618548463403880523198155018812583882899684809203684812552092545563750891020171192442929082755353881429342244545792899319952311093295096529957924947973745591682293567024105524283166488282482186337956712368452106479073910187130583919957702944434113760835630428873848294997426008590492933019405787512217521191737396928136491387914187317462593459820030688442846113566413399179150035889253886937460068296468194912465126109151471498521415459698151336600382439705687116720475311074952291180508560023894887472621300650366800180290863583556602274233670398781630647264982782692394344718521679408271388433713393823071143294827602754431027881779861890594310143257593213134183498799977415812030605543929119663569542077823099015459240119618078544712872451296114070582554058622212339393122024885499737798764087634409091970696937385777610733921855369405693933115240851697948481862428354961250410723717341506768628730858389821422361416711038104756476098441768555063067869451087419955637240551069635908697545190384095615933121866469277548839605321603417088557974657365209135693983853492002167689147021439156757840276773818757224449325980508589964155070110926659485522849235235366022919410549257411439464792956148702630414815002790474066992978453591211622192444152071897746109069282119950149469627628236849653021609666443249078029551630102654390017896028106569798228825062926251909104978748685819835947533469903275305023704603178553468117056200376732559060139097148375902024382118598368063829173560755998366581689198303866857861915461608810968400142790923268688559590225534584093088469758331141789577445733926239236257784704206522925857242157881944674565330928246725886559004066127293395873467458162763054057314134088991493273240109930203510047419058189278564935416407388707764934189403223812786104969375916421454969165501700831987026382285599772242950094126663195860946879606716315989413690362656980073605219538605682296202190441526783906511980648959427883517162366772573172880924284412821162873762294348435985791375755464094994965099934410968628555673545911081494311982113130342796658113393977090776981479922056245762856227999421242506765363650092288112875189838371534184375921589024654874468411767857614221596670958609585042325610535837177954588026169036749536832290161847004140444296636169249112304337483413795426393819179057828460160730501630611752187024978478385129768497218421383046582429197881127198778907151427003116091925113051701228570148759717524578895687757740209506219878930487489075142097229301711298700181114942800214404350966487163821545681883823634802452999384766044958805409840267360729403203534297515232856132530742287668042937506561213652081172005687508977484449421866412351901753997725493702661724929794408005170677720567484147646110886680244883029320794209661698946580054950926563847863097360854069524289246792028073075415031324586921687999376673496068879758346825304914592521791307898124815242885787231780776725777537920950420724054369661240135149806791425890416720610379016919432382726349209735113402619955860946659725218503082423400874094656435501690838650421113680448370528860687689019698315658747642120838365480639888311438314879497687069295342798577083983080396218414828273022604926727195647979928522802765990214994557449911652354750627960411288495250587433137497352615438878581300945945553238560690319401354221286987518537969465383478366943027924553349031403797769853191048898101403443726712215453802287865049685384943675488524533334930393613473462028300832177980984880593300126901630409055586654686595327295787884371503394394425680772636473477941109649595242810362555508488767962170835453445558381122226726849982886056948806816752166753493012132752195911429132631686807069190651350384003181446604943990486511842960213772478753571498328727717751185074948894027404994598790746456681021087340858575125890207078295134204914309815476031678553466067149532508776305190201328527191502892413240108651819368523242004162431968258984474558381423963180885244720953377890096259041433868341272735551279756515447483548204831842741307991538693882286442121373741457701310515135088216587832197520579445921560968557861991612230452259253968547744502156474002275141015500710338064213215406037728267910571978473444607984477852731920969140939146151404222200879143632032111584730139121543230921752815237509844557592732594881980902413997619297522211705385186921271833875250402787559974960614626466670684230384811868686160909410908330916086228047992484676842390255050224473417828794325886548593101619957982718248261278514541531262392533524502658177796322437386477656904084869487879747009695529135811488252061708442941539624749610193827282647632498104294351879643366506961075149895061490639017912118465931552864373306127548544952625302917329128121881751157926505859282000222807571999591727342467573530927947146415065098812172663448122502619122312299237324661808587959887290960297717257912972969490692515191236008488510778554670224009645600265646649864293734357781290349794702071251202394711343970276301835513866914799810566437729165594253529278989498299780201864887656765053545586266940932815617536628895391541558255431950969772804251310411613937013167169877482303750860511957229844833077256700428543281587052577288423671731750909635787851720881745319968000712104435103828632216987908973583417430216359667425095474671362462906400907428123425005298466690296888315731945571163925251707912556823144113635267371513389122466392183566074790807552816409672801882429844386708279391320780506490355810729714662611888577928580683151302463646093759304011237011172001840026736880125276944859209100743447468681118484635233511070568244655222811660531003799992921144838886645014719350764828956420718682694528987203126520809948871100737634562132789625353175540377594295377179856702059618309839469475478292195294793436886435291757026491883471905559409830400671251875707401167427778055770985509295778988349059061845640480262041110403927764853122162144354101886779566665230620971278814355697245101002597801438334972310852775525815544767813550382535354062758774997623964394097965116153690394636009749520292209985540943889483543150962473144925744763694773037798292655055382025722057590001355183062402879607759020624807164528355168134590815848042887780077617076110855926159826324364003302636514387380722200293609803059202729535191359447902203966725047028894817682140803669849889339113483749580888951498393088350183748545578949393587668065842177402140954869798457855128402232348911626461981150341683344183824457842070325054945989914919851114092936566790051994619924945225139241841836688130131942481435143923146320457096461081465561434519408433299698157484011809975083044031563198670759633705365717246302295715994743217746433378255900677204524424419165416082293744309740926115408904402302615690096563038496702938691636984969918427341433267353724197581602403733462842295980005560776025614032831264025604017234596210367792562831199368979400602423690817994422056937727799780274870186500336989774372605640854074849822968806527237451066133596048799395544084402457317210836248978705207252602140864159812327590068037759569597147961559020335259243421744212514954847080377729505856692056079571597023956504261746448320529415275679244438266771680734900780265171081197659130320641503057498271621882949516244796010903247590929367299522650470672104405273216384899252910339823614463959032644604279137528999852245172314238553125815841365118234865554569926918194139602108199726637644838843441311830871063897216414035463440145868518917627371448475034522807663334538373588578549188200427104431858103706068958891413234754221760123880147747566005224281750275609303978025850340830295090814827006912892857719056540816077914212085446018020488668962787597323446575217739385400957866331614750814391759619797656754665282992186940582339337955994364481349363528702842106090338954355265772580022080651027265643226492490620129417036913201574167920838256167473017006316494628788055322543174210414191993770169769568459987811168355994449140083822159093640628880912039695668871094832463819195709445448251895818855493359698956937146771730157988284141637143355275613550613984867722338491167766105499126791461996308623095745666004708674615563378437038153852539175108267673735417347311578193081300501961827042168942876884223270622550960653619072539918772781047512557417962124803413497317366571585738572564099631836816757471077806401360614680354024581334585366579557638033557170176670706148921981580961958380756849727226193253773021268729642601599007412129991777377379184105314974129301677505702802749581938034454145659521960409295987521404912326604569813922908224850909757397446435968930276391161641708286969864033603989268700177123962342037083609665231150091048114827307928120568042550862213321920414515546551218851443229690242703526212763090445242511923491123579271188583683652531774775255845509574035722340612020730722190977493925035935953365659567470046321023814635071621621092420994957087365908264935282307736504683959513888199376386527350896964948179336034173296121802764291765760309698246813682789425412355381528148043418897688907454278574504186540082721104684992917623929838739231118440464835881946809484358460929016369115769651819056152064431226081724565800048599209708599953709590409713264155064580746214957156090852551436853376266090827169203081586743650367624105779146358882144797423654337995066418560327324532612388587584865311490198369585767350744021755735857353757398765146837938174820895649166178080342964472052520230202267765605172333438202871179695375755345995270350175931544079609835950614355064237820235389309686381091544691029931722458162631258538660720067966452495888543659565259743685829052226778226110479700980858106036289345009582224069711621089665896878551052133613647029838353334976449376608019578751167997636361286061332979502705995616368589451966761995719920104312900996771886166175768877917760989139645408208687339916694304301673236638828332576603536927606488281786797180584533027992939335967139206320777484410099623228967536795986211687187229807670868128300623318411490093247549383623389873190242092779022562003092712419362283841104942814366469082532739497899045321811322433756872054714447655050341554052863714741710324593688115379251462043050930976617754285848424534971204057006261792629989516295914678351587257175284773996893785581617029535483028475465140670876806652270413283885662346776732769343689274384757822462122548493639934880805095698739971701363328363311894670677014353964574387011109698300614098948498997210800214526136026061905404893520286843539626149809473716470963131663433490703457938425366258698325675634816732343825505450870037545020829701214074983656350747967209003685063757262125833740518792806389302350615072026823082534061955082715216702401907984536322337274252485085461954579740676257126409932622073392430867499337854958176471043727555976337295722458573078683501330576380345971312772930531217495053802946642460306940851710822306698924851545328229194366645080046527328472179196230100987551263494151057458954483618969100486791785163915082627153136507020593585614608240023331998162707008568577604862381964383520723938159406046526449174224698785370507014952839999070331746753308020093747896510717267620539788290403357288078393425801192425022974269309350000831824515671642318377673640814523247348042001670581957288133214707077349148899846153386535847264056818571976379917901721588337395800161203793561417915350186126044030037646362556872266634466076104077685790022004295379764705986883016171287631491874257682803462029495098632280378754098663798399145899671477152840531299061024839654984625512662538628131836557817438559955384660579515705022165222894804605322459442335543158456831786272067362706918076855184632037364628197346912349974359093572608456100895390160217535574865814087365958448563251912799374229746242198456684790634947812852248859464013452965702498082212400865467022486142720571065744593434179104998638080357124336253980852907825675840367999910396035266031763855313134990984511124651262285098746437227051360990543867598076518117859323844669516557803617053447614059331297077612498634962341501212406443022443082756701800494014374787017524117191557299041324765669017105166169311654477284137081443032654756647539516481789937557157464708061309189877791023446663416659694234755141790336381913627018417787359763256308220321680279052747674457005199772911661784555457332303046820517593370732760116466753489201396320975307403545738086846003441806631257378914287797834298682452862930541058556016744833452914307425550338620197486270206524299361314373761029159469170965366591471168098189348048822675943990795813852007051692062144631988453204950881852719432342956234651736130731856048943178883330179496219621427202925190315422175282440386996776171286564289914389352672511604816590329525224344782054633275952670759850270400334950197291653624462016528874206248059567730096878620891457710883726169223354421916748478721083263480191411322654202072425050113980028099149006549303445703339461563983308388217434196295721506211816495435418714841286951561424377372938369070544701435265704080015501713212708169473501829405349655837519347467899114014860397361308508837832103121212673311913303085655335271258400858040190644600703464498399256261641398055484153876579368677916546265807741516648396114685487179802003870398414246227089558181795508765053309951611985227290805683564862197227462680792735564265788829343366042403390150888049073210634528121325485946167514473368836196019150482280666421281982002103385028829479204475086892654996460381458175222935275149021843609746695505691496087846882978239168099173884370405197533656100643247608430557775224372827158061658895832618840567040956548098036359655550398403969364137219681098495693361329835620913643025584312982568995935310927734194410307284653520414508630237612524621595367044414034040572946544988373210556283509496272887521955534786556025716801959731943031010165592060391630636409024269812864563666002420159126924755148125256300426205254775257950701253175528286062539696159246600208555671649184227623669596952550705016736151894571274829611865629331092176137855433584858194762156978017807091304100686462859969049321923859569854774683711094920247199285654641381858993697773662055625138728437448593995477578849269445108316853013647001141366175236165056127817799886642082743580398528735783137674985343080827780781198726955384580809743989836136437316805979834959729482772033650091208134621620456351114921713837350595640826059474163006083910528658769387393227484486955220375686786341435656613851383823230014342757237427969779866124947773458550902188771229202662681634213420680458652753922539890855314706011210872383856038588550072010217226154701219397550322869057089754331372874469769347580958594930556936673967415288974750282537442303479616572499817804104870571909587298825829474223588497714456955890365815697720734796926007146041575471920841771634607412203871701712919380521185655533527913974801626224257188900576129249858050793753904455060386477201298782157602346471963281352176009412983487234004946764449827406524074960891869835351860298920335149731850755051804079714608105731579030674266982086790346479947472889668120835849296657630567263506475305555162283929275375064166300956948756973563856030427887874353784522987530710924669857433031217614346399987310731183652012153308210109713371041409085862967129770667814143319913422259671709154314896761794365269612987417818203205581969023280833209545070757243884356391338130482542936591640200086483158666625222591746558093424675447071262258392750625300905733531374979010353774105699468060252609843090196185253056990168686809918815172119838089312834392238890066278356111315254109059354402499951170256842426700406278242437359466034691138714384575947838217022594795359492730938987943175480551170396282335394916829619251112775550575330960974416560535563247428775214597935008055856323053979704202163061676685037290567143048399303767770900132015224316917968966086039123515469349423453330705561491716650726502749713543881165610571680569008684741747384459783458073972782809426316909529443118652838432827094866003384823244477414248489303865839510035714888940261454840204857345328979821947425477541211371946306421193215357427513838841957551003254026757564894992788333590367156908957917884331921843330003627984566216197628813954203602277391579485821890277774371044970598046527947566848966991704849339775357245973484213716230683585722170023055389808869760690110707906805220506913052462959618616483820332893162578471726307229510220442643747765245508075482888231609948939206351430884004687519534071563235273430811366399356349935033355955393567749554480135553860114569359643467771730907868149464722042798606232657405907897487838359493716927616350695893198815603834172983277949406495450772317848908442589970986999636115854027456600135342031693236054345282890713168853198063345729695450175434038486044875878422871358614250618742504527050997349223931685571191130265486639004794803023316127363141917684717744336297762736849653674917909465124659708226154748803076215245762318038266361627449167578021958758759029301370989661229345077410244860817902957310055273287516229607592676669544362102313939675299388178946922794384871784678064104011480272983318377236235426955335696400013022452806778621416506160706993629826712833779042551907801002632012773586394124952086222644754311310935240259639365179918913783554145708483612343518863936144735768119125352383163393532416780097190754410475640286463942174556551789976978134734003211599748984698310777367102836868747703013676788307673746263250817594825210583387530339294346187558482833983358068889552345254079964094820704778684102522630946773165434849311714128333768526006286950675783846948459906062660262472982135612901885454644628784214967502218827967011459520627959849659862990909606974486454018296096089692949618529555723538675956845987105585019917672662466219533228453681164978964486947530051670078274478362953952735300768450009041925736870291729222642211290652505255389109354175970423591733207597432824275267046437978421877413020662974915086053783774040214326324336849359131051299781990320350859944548519440014328518646310955344873874885135783944827617933088887755903520737434428315687492338296044649333003240441618132793617522522488108127033231447048780058269081689206363626742324381193132605614399130928514481974626091887095162906165780318559827852515125346807133757395325790556649898349932016927498018675972110378979669963319140400619073245230280481049488979639688897954171769280826926232359857476539296513158598532313780471921199272113466169937093916422058846505224595260069164064085133586180113862040875652667086411541196993673119275309290607505719775743231016149204903363188066623943643681404956263760250841782127770743519468866934746431680903571308520932966241805999989662603246118095559316270053816874459429464572371764560530226292034918377270805438493211256325982388965457801151726960981132992900866120252425618345189821241158474334180530941209202883797789816075019297535652222555738499761684867882478191696218213536333454197189571793603215982480730933445323542633280079608849344896076175763374849178776140045133760028910450468436582615389150094445725353038552646110669646123660955761254598160443105780751526855045451833899697499456952118037831863372300292664461204494920785820941433259704114281304825603339872260485693701677500824990695569623619739215050790445421805251150246449260321319275621386504470621212615928870698838356456151328368383286371212349870114381319334037495701202841016785989342839413840987307158854577291660885598324521589107651892940598706492491413208520988863720751770560607749098546798565544662242074974540753407258811788341240640165175525366798101205809744731568405163999027690648963347595536013821080125382268069871243564182832992197538366872173863906790729901153352173945253267458803869847766282622900059602315233027960479112372215124636387667930989809286341696864367255321237934225889480662650622288924494819924290221291443310387244363544018911807934914879620186901018724691553403758665103633708339720314737408793131590730216617855682343098557634582417456756520113776193366520016647349527525768921395389998207323056087064529978824289302425096562614983022359692332966520705376369005898996613226697207251929192532713318458418839010891640861025575669344844922696789898924041728459236937838820914873066603746692614437319242669544384024062406234614928252779089823992797853792572869286476921626169564570153978080258393809766245105858622718124020842637506307621426894814635453914896955461044672107249160337911045205681073477271760159345741787569899011773935792146910176938320861985233335265380395097115818262422173568553804293777494227761158662779353147003083553158053604935031312447104095950407073905790251247816746960071511558175797295585135837333138671387429005786957610726285429452583601058513148410317299672554630646777828222939813937669668272144124131607748682987292365888206647054787746107641978620332127449954241329011832535623690410890199032081735431614684108079380838736271212753346217431044825776561849774965439076574890850386825671830563548564116991671390106626924053186412759187608006124371946819142602173982280274803420542822426359643548556314267301034992153064942067285549210718436960251432611810468526100191695053453748304460363568830227381731676662472968809280066292062281047701627282423620293030285366030545455214208805608254626038224064313533758729908956678138126792623904924262459459999821999414569258524086888756974831980047974372858095112753777818189200978193488270663327117545662041407898580914016525601784920969386341606901968220899811316594472972924592341295171093339980417410008950931538022447887543081705078584430461757568348071103595707244735682103902836890760886576689604117726840357207313651737078685285978617396403007158968088050526243357673261411904312397698324703110397564273751384693653559685384987109303206410593640185514114862975839248216541223742713793217114299846764892897029426163593559671021092424663144536686440614908623862682152498165576311642884869311909637172584654568534411631840397816404631543380190723675349014112688500943007215118244742204563428312927685279911965761687436010457583832409027091114752070127197400779658931381071183184398585542941517920084483806682973736624727726083096222331108280545051822604204842049545382764741385260646296683376355694152396663512913264150153354248616670113503214840004385027604882286910892349908399048751219837480527746326711513671084167848791402874764305049800880460906840689178627027724895058121346404394263925524558366035977799200054221938349700313159581949424461164024919976438388315368696683082219241552282303930230319706321725535891614594276432077022788106969452718551985471498533464028522201109416988370906977361859860553437738747549448839284386231776200105224715982380677131484800154365911868446698862605866447361822567383882794702571541683625786376791075470453701629918054330637591836128632191938412861076302665527698451008907611966239526613887768808528740410863693522562174341746146633721394765772753153270916661918074661101688617923953486884439184458652438601212722287511864222492015264524654129655870573089926972439521658460691054751304686664575336531300904460058805262989964390272146857739157184187855202074376632231453669147268725287208814618641247475308986523463608528930029613957122723539173415812375656710907015376397382491832327593333885316473123485016246539469503356036323080626943531261469902254383393230063471751552810149593695600883617187636450089267378638339369414724045207099255305907633574132061464846272632779938701760087582030655428665106165589203346021399182285681251254560793131974584245044874336733315771044542261292012731222056740353469975010695529001733664792007519075444325682276737546066330569824350657116334640193378554984635674273236548601945474237407588059707505060837445283476956047927724258475899338406725160829341076130690087057689090767484927203992954066974762778412085539689304733393071537884253881474828831512570966882575213116559021432667282769896062632361562543274349675250573987239399409752450961599614762768475223146992861004114935961866672370302221039527459062944697590480036529896400901873028094701764839874876649245525665800194158351765947965176076778643364864964132667524588071829398064166442707168156766614975930135476691907602984924536286529992077945460705507006491670570214695571826952739582545549318766982996838879343563137876244019449913709102126651488712505935133295190869313250690163199794923268627709824588960422520285775869903516539634972088250090834182045432718651977886286892326921538102890012172092072809817889491911865936520325991228020812264582988778731111719756173338477585994142733025127189430898690532601234513166645956418592857517382846740512918575949555607110809207605391425534422122994301068179738642092992834999295019010785647389809058607976460673824490828426898154543424466640032274881811736141263744706368326116318513265215782198187128267460449226755758187465103123351196680647799934522894373548466065222476929259680744256130811121530439320859918660360320362638969007050967383850127208209314403655427699909361557266528702706157411722092650021314772441120260646091223357599546417326793394684542416368286411969626706697628115650308179677376630706721337555386671669113559606269550538528375480562195452191208041229003200092740812118740047811816826082160282160246434434032936657978493213960001478571089392274219915285487101192723579762495839102726573973013866421900483241774344310299301214983895639440644588423525575670580338485367561686537963034492844449401004707170357553319082453826793958555801408534184321237684670358218711121407713546498521851460025683998312397911121196630311765160236470342015143502234317597844753592038010300178185085004770645771755894563530939116436109577604984196590655650332521543735562394836997440949241630530685215056257883472721426256066205256498525839942826199542249849014388179870572392658439315290443750847466019347102744759464945175449372195508947705202881121460385390350582115484892403765970326551780286204431298320241690950518370720603456410593692434503175221607918470185076155543314565678665060842392424443036031994947399757897503341609535625584968581609897298876548394827309829319336193633355103367105341096847464567171755537247705626152262950420402153661031963063933603216946853048611481118516301616489117097514727015028152786861639160452692095176933060060594823344473780671030576756537306045280687736487982464408269449822777702315315076201410013394833897719638952646869155317047083087342346825323739719975811990716393266629437493393274338388653665726103777512655829244779635557023476821762316477978469879514742165126227687752653429960461225781339901518668573441181428480105399216471654135421106535638100821156993718814570136819934971016544702374817544510174386158717553371049400459336293200942692303555326170556597421651371914988254415132752748728708759095952182603127067711880498917955034778004488207756019443627198771342544649098557620761220217686114821364964031994944880715559748120359612243319535868597108365636658948236762586950644628724423826902461897589411339088380212245213315180396916741234749430956350887919006739190557944420512046897205087285387087792420839944067451137770359991019238466432132446054497777469648559629342764115000619134655420542162236609080247081854121184000973160884299637136580968759891920041967848125661256383657811290988491244920794771088915964842884322706619912472654187237660969976019929207933802354604020495403663240909290321220719862038591997010311199574664105486402911592368578220166852004644951121412069434802880315278046237286016790694468347439324410721671131509675545010264712084550280578316617656370958650231809990240569445161468776730179452242860231168000222129494629537048614303621271646315710846033266669572915489993735801023386580788026385616750348471154788176564130508402434525821543272629093326070698051592397667542408199071069131186227690384017529815322686844733549407095353061617217598433514036847043619017980511454719296441660634514318823848403787169523360388489643791430818119648335753251246354684205678593651030753985326829078953244274331015188409663681820722407947934135136924051898803711964679445552401670881314025933246659947453604725235169133822797591088420757272251766932544445506759134047347440438729408739648365829138957454986356434670332630317164070490653525678787203265233637728571924986602373966476740996011663086696350550503325295534887535427798176507385845083943180125365381276632414469310875987013804693473422719225462468353334479332482081185093290141690748703132440401993951427219116088670947073428427452671974538209582230975566463323534458912852192228925805572159921098097299467593605901441796859517211184047779872032474504270132130033253102511138551913754727853266997296728120481093134748854926244443019807690056859917725035421880063337244498600609137913594253065857941139682827899118754241398598193531465011222185983444414041104212566117958990036095355644616139451075329502303890998541075828000772319251128210359730166590207547423954019007986727061336307369391707371600105860048309672762430256085678342164559194135946891462404849303632717188210211001132764196965850797697622753948180388883111797898918607000838827606935256241179905765531559080877630920018510742829217351315364677223926471625251430291401142267204720970153291277315666902422508684689291663298717926627959653384214416576630179657717365956459934022864990323244914678864729423067017451696127962524437391076276971855985572373736700148086204052789349170250434520065046964510813148930017374402285586397377989226996272427916706002406836039802726502198554150552948497948125775990951807543282015789961363823744550841422992563837317619007654905096749112915894127393104830220605472242236236517398794978481999379791342046215022723171944829681097746474098276106560359920927439379639124532428362225449214891571425151400919506070935084227620726802679803824702328061870804289496946206235859757584341073519755213868521618831495436854914654848148912341790440737695165406004655844232094195636140255668950612188348531295010410005705322066032066185216880822309633508263626735309287404430214212605535723207756184517325968654707824899816668532683317913846059894066464084071717337118717196691820526467575505366988763218931618073698822728860329673231904891727407858431040073164335168702590475616764080988821457301149297141744339287056494033298079151926182563540075179521773502586544527489343256392399112342680622594550067716158442192751506646389975947111533806610399872075374610058507549330710069756011768883580409283480556259715786831100026938793939871768641089037382191164923601976959020743975167101238406376382089163627294769962635892073525034218198153438370764927292972861870154309074827696065361049692417557108265072117732816256442670514181395878351721337617111215217539774627581258642557408966349508411267642750418795275138065866300290480030485270476331949224764364273590757140048534311817489089725694715648899485958037616212065245393663754007010753454448035447487093366439070745810720536034575467438065922240211476396811310975044011159742201325110023351645439841282196826611126931307012538394953847897247690444183889677121873997850415991738801671670654511039076619527027081399926891372584560672261136102796370856485114711219919150208315544228022613702516739902409599364825881273261605543556454513946695361512257009317787934906778022283156973513208274671499925693482267445220267953554484984386516746276626144116225137505143771458603419649566119459595453280339747829288855856365003078088801796190990488844226031875173633798845039854182406891964512294546428462611690208766516774729701132995962600610938760953234163648398003792264351201119194403422575317887863220191580974668975363264448252043480362890708436335529398945874008812163281633645228576347045572330854634408581832282479448301770827995217478293089177968296663955777920020013430305390242509686890099462298669038195267592966267523840906795389359009006281214994816247413361014501175598951131080118280734632980082204987828404344092609390569684246938902428545043860497487548536280847687578625565097544795108323256714025354374769065698858438314129034822949842982900605197949400122929540643860582402805821833903172245036609883743680002889416108188811172990321258930766925310674517198364597298356589671838818211065667922098672057810170969167717292125524186694159683064929223343400519520737256582388435489833358650127785977166434826408761728881381300688299877463987645654270805982671654191351922675427045992065504453822086405829168321324759868341121160073356987451730715984290350210349879780317287374964162798427824961876343950688146054414536761926206792751500234515415626230250849202200997621541224283965158847749008591199607525554108516046631060076273629238121722858353848329186875098372421743736716492571791012948925698350166547275522656052573781839524634198075417099282331499261802915467238958037253982791119169048115946083369672423326673481225165725884989689044789081579497497968038742958253131552002655842705230829121601485368856950092268784048410959273381874678312148918351864474765156493482820319465170280568965340954103245053065318754781738377168052459158023095988522999281260005019918693040355080787009237452916802196500326191806207851065160108764370088469020737743123982637623765450093949473611656544608794457686588342489441490772773605294617336128901340697681337618313399956752954892972887936652609685612123956152776632726021826572035344381446700429776196424113081580546088412446627864418504896536579527737239858965606116932769684829318434580926728284753195129719752009544695819265004873513421893977009805718173999798670530263412307531602689128048478200757650856448247358213291179995340613615872252075023661608033000152644818379667962352287614247060224652023192731745626568076133416651168449580426690778045190956121022398304949744532957698046323099127974525832861768527563530634265830877177802145454601988511387309613870880750349600684857272299605365410465092742781724582960130143779904148654687927616569177309322204627087502151898627509133582624960245551665796916292681748975351300387339853110858654804562277618737293264679150969184092350509900540886794126730350688773523369377203772849039413231242805464579017256430612582715317053429591767457996565640504993371695593808342889456510671593826145613862836692647370136579995465000857311714629027596817264072517381946683149112484655374531852074922453459115423746937362880187562003016658923183036011954348257413441475000459592151713270200542279440649131641104589938931002871098978527531006765320194746419362238066544907580351061442897022296773189566329748812043923641194332860563919019944699560438371662867644696974982050737166003012387974132838461340685097128446300469166621016428759534187012869613618564746256130819325902091614798051992275762419579102057589598076111247247092555826983972347143020535679478021547517406949313660439721157629880127189474147845417142174814644813981652496234919331727444757164826301122581542780588716305857273404676039778453493872927521244324793019755442180637071527144947460416459151405885917885856254766979210152791101128369499212316982118795067827061104247585712199636375878913048196673701371269428476822939878477319686108369595117268360914103537762514484131878432333041357466388490209215292451914776369479801527950106066073215894905325547718924720199622674249103329434615929259607279614588761239933453539161900156779414021690206860123781455401920029014321464255074428338820436809814624309358697581161739280854137067303585326961392768666706713011837106017870084824438802897162505893777836783263178452865991177038087493014210947278948691474599258037526255577973111322008861640225351365555916328833858282226666833016925580229360734890998212590383402151751969031892264529889526018011801059660680035133092791168393478617253776095330793668760069687983950798088040741423106074657454539437049745620137662280548590348471432458107869028520566860393832233576989449209942394776895048344653208062476916245089091324039178485364563003055241649685208923083732593339355053672849701649627688585358805885022743849169398888668785494310539137065048196018166403715910682384149956780755640162264051778858680655129055866993675339775108772021480773114396554497750779757601810099447856610173966907690919516686286121753571954708932438393836659075652159263202019279850707732297484729853190413671869531608337313422285771400225569970503745394298385196644552599799359335709353309736147056116356736441855242403456291285055596307508206290644895915710777311329135542144795630861406971097945915828579105334904214658513752070676139162351510921876232969081270110947467234151403594322830273017355414016178292825976156883603617328377591790306942742523607047209294434220049215596449851334647076707985312355771616848882029940552383060698995164747147756936119936913651227325328389302211263798732980964964773510149571677181815720094958639267489129176183123619712455512326472062459206988313980170200193740045092412269751889604817268616209356736953148710676598380408376062054787933425170678522805225371408300015484575044212587881475390132191069403648544075352810701601270651958765557630565928299813525301420353695990373976417294130011383466213781768777292794244877206987239983514592531565300372713433745456246115396668814143813410024216056365712607159864557681486101377987663380510470352437335183548976186112259606531656879317086009260665933248533435021013407572035654061649631991187105539519541932665636848675222789716238014713855343781130893154889114146685228624008651710107715251548045219889715723938681556893327136562957051462310492243840860402866572674813723679554653658213823236104368454384979091776303711285094661077171739567871246819140077402930599549631756785109956341684822707920153934335737355609366398750348907924708917460237115614308185672090603047764582022855854702008223453908100352408104771655105243306743527932062600217535507113114082401601915124651108140819637162920390968801261241742495303477668737700770603893303583847630304143864316892681676523956075368166096932673924953514972364769515918091081065679948909123097166023533895478838040695606680160563193833860063632187486217455287821420230428652169973817236169304852365755851077023599760306260370014035629023859627672490931463959536690634671281037429285873940075626764973827700863819084861580036679522513492221049055465921948231474759034493807177968487171004676371423689373865010453566446218608511470931251729774777509891946051562940837857543031591655692002385461537337724025042364239611572277682231201155954620823707625682101166262410358134579606702725390442978132983687438462316161074533103845329929325637412979819333549096488693583539945167828813829726275392286329492121146885536379332737485295330158405300749985690665949037140113450976293724780037324474259359785045181444763714774351714351102799880301954781541631524417232370261869829619716484089843525051603639491303800355583398981594549316434431067987031017388777579823303799356373234617548500076710022414110153736655621827855462953319702964302915620771536784397950699795397999453423137303964967840241427055663746451184915383886311841912399141076070907158798071557985471657678749376934766606536572606017491049928093412460063366886479096685940903724312915045416195026977417777413988058142767634146197756250081476029999649266291046707136247539850940517593572942474137216628614221003099424353425184456665950419262351566409563162319159795292040623069758964864907280925437422001278457185531287902903207236944851139700982231594073083537046809360395945694386620549826895389716430694087624610922675795937233003266624532792314823925982980458153267209359515407949742003442316190726071600853338020497833665156455490697298680209536332173350247377565260413922182910701752138224928474931375422103456416356549318908248169269531815430203642162772370359545225185487061894694557912945883677534908389337259162832059868299825828420217011696277034254324885049337020830689452256962162192971448726626334304899641092937561960514417521995889266590568436784699850030106483318317978883417383736981838047247283020008079375633874955798598602948753201052103181660670091251074609298923757087419207671259225148956689852573454494193091502191374682069363466347561297908841951326637022660457552556386335849408767561273675974736304600986390333266813926270933776648466607980709391690080751771573340150583943973365681242893523986739070918834682211944695838810120389689868631771153794594537965686599763621620998220574316937962178875120538377489079052448962009891859701748688980063184764579053471392375681227273598046460728759179822577718296556451885209425225465908958762842650843714740957348502437049168125764024228397829124219679256679702940944138745338998022241581362471995366248469519456972563533417845289967467308479495865811506207790374630043525403646929100216585475197251734768171811598001724018766256061292592735471126836617038002218524589752128756917189216529570497033476130363618547505339116547326214289125066636793052337430607607424301898717222131011130885890105542762890944020236954573779818396688927437975433970641187445068753526200596505163481124551778041666141701118161310753200284364991805050715047281349663198947498982655778103217643635816087480466394211760319604705728278213471282251191935196161101703378220217499719781411158772096172174584823391237337121434981145787984687085764713029188195289964092692215519089559626368559088181258790367604753570847737043831646078342107323038556176888160459428604259329838088174322102074639099949175540295442677882794234954012938521351700962406943437091617366895637330361327846182649759750674647108188279555369630590782789070975405059581682152552689305936777267926703960508799230973163482631754928154854071956716442266852826341088483236965556133564523962137816663232834210450535954448003595792752677440404920347899784932468665512217293763903034025512905399477190032457135429972889034112974003809491944543210823335751908630540929770352675456439726125987170344178488283838544106151097477686567708046150794085167440153142247336343966568458997506382689589551220696079654526148242559586394624131989192823907350666976431582650077424644609750034139858860622550426291658694706450033886340994938153269419559195891042217099381014870705634508290492232799007708275758253405598195945611599949552873867797419339178037334817760576477975111338572731379615626552700398123860366378990209547503266469279577042280554177580928337772647032412663217955186925989612432245966432536155795072891814837125269363776153408207906249834639856960598608128628050971901310180140550480055843165528094338023873262277850221418377713339944766407754690918201343201757326669156249304118366332732244235051092562557739990594649525511376177827756827868712775181471513012836360020094591982456245772305275026485664831025878398373818353701461024845869814481518104863573326342314386667771816832630923457635822686773999091681693200235069422499401556190170623601575250587804765709100378074774789322610188706078805271941759384944302444317142430899144259327762645289855238294913495114883367705570436483538111783851999864223539869081280673797412500841241422648336752323427110034306766255592418145338057782564338057063791870690599204547555256279672397911564208897163967757372046872951854025662224132696124127458891036536480120405043868803035109342676044608263221919548412766485102380400396923688951943691243466400235595162099136322513442790063614817497085224425052588326248286643945731637285350252392093659887810135355182278526439611071285285711085797638930106942847641083217737463853356965724968042517676629517357694853849799644794688052251109652487553245155810218642350134679969586570473022642268504741464096364425795578431935998956527204162418845507088225131241664511495269165555090697023686211825567860639207747853721809572750905258838413894521091557367283825497474422755029835765662408212860846606918260747132133116007534090309320529167745581749579072514921435551603884467894201265340951449066425916961831862216463819345282804448591433467852407996216660495912003848548440084670163553720763459015077333524904594746668463396546162700291970692435837675494268918591621517161251992545724941182405128575037824384349599649712990815303924909783610102965574522087620600319071213605860067089997952815813799800967338271533830293430245071537791382183735006879640284688215491584555804513860584640516255980820876100666823121163238899176351310534008883827923870858081226684498469776676554543142355766669188492449849602139829322992135075556033130193923868007104118356261261117669452406836953001508255817542400894467797782618406282387731474874731724185690852439141213142936302542161457690411862309676449533974895112836924302000287698541317652053536268021757533343349812767245625598239623624493854616915821145714123831082272266825735999061227557930893979771739518566279590596891804315471568312616831735330114566014831059523682635193248258411161986201925505967087765667567632475745091747432458327490160209042494709266858134247137556095000582765591239866990981459311467616445737203591278380038214342419083006391554252452816181925872780116406314050941051712125868849427462302337522680505231101690897215827668690563393609245514701370198864083100902938377471362418057476416827119294398773005200977674454864526976256931663331044268131590563833601497930239173367774006392735914800562385648354168415985784954623140962186186006720759995853674890080870143352844897521361432385104428704839289869214306991616162185410911149826206575625810524735666304066591750447007343598382867819096033972252745794700630322557581987451364461385092876485326542403590253400168022337209252531021564005402328804166788793610183954752700452943902110509337518231554380938511259617241755469551830937407419873856447192192944372331164702665814828901714695323255056431796587269529593939774315366545277630154801816651886296581017630670287036931457652973210909922418822393586283666461159300335844727370192851254337897277287581514107841556094703000397195934892080253256282661170601525018372940839249198440933047249883795560292144026747827210103496853473013858205409550425133051895098862426113503181748891691109121914145472951387907906991954222453889192508960715684083087815990522204946018730111524441351280643339334039367537653986096066083029796579919392966108009566465235730808947548883364093389094520578904302927247099605532290444325631583035715076129680968726143903671846289692879788883684502189634807089891264552831512658478073982631545346211823146026557108945280319089340065138676842137172560450144622583381855961812131598336201101628687556208168536854644909457630840798495707896289727376273931358681182422676467488481382336318002266738401588664509408338442496809454543021040670187254106776675599063580862633476407569014063516900858881517887567484135835194780242052477829209343474419894885037920406153427334150588512968450832080001585167747027107255480866655247505715487123993818625766018138396549151574212908168048100383427618919542055279007532172763783447536246188943191401310864080553453709212468062862466197666168763060763984134948216838144651615871338856101284247888218190611409862499897195857777718619925984277767352930059532977892061574497176732985512847514117482005302820062520956747583063794406369682220165629505361581339346813571802941140214756965170340579743707819520849797867000814258941916247405825192663057056077549766129299030943675976348684890103967412663082962179123284477477202519193367106656025097602118149320680223320547211023345433157966611755512838342972827833666940843001781865085712459687098731336571190285338889349867894119197017583639779327740499479594870720715593231333798855005877055449183263793399925999892461138363684879721578226271011280485452858715861593489392312741565122705980672556934047048262323459246945872522880271555362300526292321935550747945877297383203288655770193224163629614252937761351553708304982513702784123071182216966567193494947688996211358634753989098429670017626703941776912684792897912844329611423449280300610466048532089202701457755886305457158265297921835428369975812833960237981652805082443847739345799062366473459106338034765130108278748375954699243398720980965201778755911973502412991862918927894886440689745475920221861276682312269245789184548970083363183739200141198620320317789800221447938088975315672025173739789302606589586291571762385409345099083590381068629673200622834747702814305701353224016988515281571830725706168319229406713202862504539158069084861448406620654125712419123735067652191962757187567834230820433276070168020292722958760629063730108109924628451421328161916643133123605632186336527452587639199403941709208793402834944763652117224654357396943303492565416175073579232198894475185391486411216082237717318517677013937451677496017866344135957194379667343965367936078091167011685333522293738496940786644149170455912461806978297444438959161065120041404961968928354523383391508246123566577067747338610195384245735433285648827620879488967574190111368114082770206262720351663226862694476167434547386654150907080335288005788239184380621164677919824473786903143225498753429691039559918445413689596651272055615716008760091947927912523818479148628891193056708790147792659096472551138472500989143517250252395616484219870327903866108930974926494362909355074307577377858466340600398443860445614424151252636950373169493014029215525272055838631592649971439688233864912082593144871592304631359125188930823659507154174643110221031482369792222577961219022912192510559803654268003462852985495099539640932934044692974577340104549239010965558898331508901785423383716273409587189539601625554635296714832158448289737881239971684291778910393256445289813823647409604202697498743807571947870893330539040550363060002516878762953886428687935694183724116509893260817808715443681809218130208388220220656147558177691671160091177849922638765900340932183388329707293256369093485717154632435846760388229510066482565819727114648454488577187369918914661145073515370109731637737743680902312700877094370949273978425877084836476105130545305405781647595026793450899198248712080267011679888264838216542645201862754250407623983358351835753712585272679833685433422090073444667493527867196776806869924009642953407509702029031427402730733487089959861286224845784772349771884739084369383274376595148032813292881736629027769437521412248339484076873445066597939602932257770651452905133511881891259539267778895259254947081528663763589033802939756947341006131709735855110889946433816509774491616561862957026561768603667215604752845583311668754386941873443203178770850694286584807616194173539142660823430872134331690541733517531395375875920265080743492266379132455178014488747166929020288365327446999521022448840253232930145777172008417112801798846046940348832334384138046816788415935994401013721363664610110182828811173509418317625137522505080532733600969445102214240272241785119878713892284560426186514266918942627689399882118909674212505992290555165323597220390951322198358622331788036971987877365369425752627176609659186494034727917560027921091149986393875140196846983400879991831937745925658770026036741520647402135357525017090412614871032491296155121687490137816245159829438279450643325516656781805885512523675624162218590927527739639859204317229581521877248916109880792927000773111154347341944852858285061064482306569960573197016216682800028687916961404133984514976487079533395525059964105334346822982524931532123768934311740517282310490883553295124032352711871792379325711908715760700656271391499743977086407980463796058453552518688930225765067406054436272510585729989112271444982372767827885477910012743750126400775515398295280434116586648521705468614090410128113617686534564802901213387949260607651046189817001233193380787080604807528446543642363742073766904100760708800457055952717375074391276723132774109746265284013328373064124626403592013663553740177305175741866408694508971015015008056241792831299813728957800623123259597857681406250238042775908609133939803891735273624070643292651103304383613295898359383460964283630617055984640742599411899528022802145037582121475168868109293814500536634527975554409236790336852160153433343672665072585316018816747510246720291395207872116591705021629601461023389320440493832324275130498141935254253410059222014192859512287162617161451680468143354093849428868966030863129509219895537715873476869915502973734545314495158130336458449222874507647447238841790651490693857799758866321148382614117139646239780892858042611696390086975623586353605501431470512130305977666372969053532672478375280937138200802219278053854806222880958513850987068225965980945263686370442688393515803877683659609371898337645092233761802635232848218084954621196701366197821001072235846751956377461154130206817751766570650806827337530351944538235817741505214489238316233664372939966918467675028046042840838475956191426184488202858528430633666452273149190202737709711550420503870506866043529366782284972857816103847506751213006123917698774106339867616771182937591935437524078139857976823711845447252401696138285112924442357353296536835248545036036664248576173393860398821893860654710756408719026759277522089095682732748542458403473694438247237638676156147820457933090771124432530146464686380546303745705219532505517918414392585291812463041120843743159083080128362173380482298886854170306453914532860507627453741896412077368971412583903580310169327208040658081753355282689517584713266639443907840879501251613415216678523919965546821298170482959051504939150067690179521850209995675967871734070207006147819201133537889266153588782914626773374978917776416263423985635138513035564927423285618033308778574038073131299675273078242289703224574694561229869870949421808528428645993977691469645035222289343573335185122896531311609371979367297778154558563987861278791913038803081918228837814181240638309533731426123593272514157975282156842190801383711458753374663406155644564840971232955862038337738229428330677948050067030757189529988659339401342116514103294469988589337346058979235249250753024571366011140962544661158443136861694423668074460074968679514576366399122284189098809413938320455398877170193927428771564378890044430194704145484825457650880079688882754693361732867478259147097010265552531753518248607550214923279872516282028226136639781918020919857088329149869805373752706147978604744322458190698234501802241022907494787977677794968609639344011310717475590167633468684215697784418710198555409973741133926102454567845084612382722157074985108359472774760321304485776076278235235044227003745664814412970469742257956149011704483537952841695970008281930674747019593152608328198964212277950877376316784516815313401885406896979935206694884773397746035576280249861399406063608027410847270769259710790775528074890794283486859535757872449381791596840639795727079487336873804683067596265304155309550293967618002028606649051789565652835268280597288682112863720768250786544477006391974347741335582889244226701864924739941764103868762270842074600657834426934164224946230020858871119527587752079865992798832272675726628783767629185095671964019051945176628336089221708517008690122267126772480624657974099160869326536940390165331688293093972673848477528163942262747581923203344940485247875210683828111036491640504386363724707843288855396543482102277850050698090084093491469747872710811145653668426792088634256124776099072654116200195940504822279455442023261679716588487286794197918740288919643465287782195396352102838300514889327969809612541145706634887672368415004910913704227744412558302482092864618321119589761184404205510733623115195834995399411135395695071972410568007416707900245799842002127735994629755501648107789243992913936420369039075892814167655944566677161015813515711663977366017234869502403750357890773732481637977032005611100921321779824619564029040059804030262484995124711902337776588888208328457059949774459286967047598826658996927366979833379831720535726918119154906644697755956355318549139279597239264920417170182152842148919647866117194012685029414922427269172073386093772073492702291508362186759930559691390416309337174700901766892574334776530694125817145892666918376646905716511513323136550452068887607533579512299308894891176960811557938687164265102754758564322845967080904040971327926122512386466553742443283704629546913610349625755741186624677001424026502278318261840940079466184249915058118591811682631196136950178679348420524867824590842575369895729585308205021113040793147596452987760167508112018466226234073050294407604911803466924999264597656941186251158079047011410694494078095604677175488880883585826168217385047133613516470710412553333955627590011399260193951654729124389583501363381810556255590098398789916799311095780733434609850161115722565317347335339190584431381755702178425104832530128005908389946526410976241406692326656534255902429724724425695100296411761770324626003748594883232014499012250921299948948308774421098228588492315256540104770672797048476200543036469014173804469460941464838748956470814106974941096174057186010991767969353192145898773719716192675844480928188849787680353680044652047253521319149241829882398520724442180638368953701254694178377135398068963790606266357034331650422298485351166130821135131644302519261606964722548584826745539011359325872294190171143624168680428705140295598696529288503648457069666919637492227331544894159688774778883394326275140772671485620946005399137916411954806069520006140718137036375014039778305787868275603777963066407672813873392563182731041194601102197129971793474840662918928374029624314528572719683171861828433891961655552375612081748640266212741996654652302854868187984543401228662567252306402942243665695904489553594272498606147881391633871661951524440760075971586056101811843871801513283582614609029656419214054107919549155449171056820220929496554665913623727902724559475149958726549453984493545778436715425047663664206613580457102949832697901107506992278341784649893927965513668672783936578342982129347355779098424273706482895423433218276219898929658268889807803301781680601711554059550392965090483509698316398379422499688099101090535332937688844223558594760593308974812203318314055498371001380150808190400954611762844945227764624098545146189524798448164473978253048117144710689527730958720690347125752338273190823174552813482688496374976249656129909141617448968083378691354409826192914022629371380385351426923993167971459351231324874420328252044959690763362818486086271936452525885341141392979210643593966572685336171283370331185718848809383523775345040830428958257834461190303736665516307466202093522681158340434353193582626346393115975912331013978525968474981280525536391888659446923790470710885313608071412190952573327906529810609319907088643083056180047454077715935362429212957703303923428435011509425102117120118274944461452168106457993671115755305401744261970044007554130920436616641355850211525348140867382025201811943484320038131360885561196507039760664792352987770058508176143951053089842364468955102094887568986315643601770083301339588361924872442212872368018229784212274670832042274145154199673205169894957069780373222418238271201144509387792848078596352288062547313248010646334587446331120752033284115144695115406849197698267001255431567205811539198929942503071116626847057202557128368973708138287417470522717783106254384068197719237757610430210855422574334048410212385709107263204248966157307961658079778614923473034837678597029271409313648483783782434544549774511606446419687543516636577928837689331400448144926298766198281768860484534111743879134139810249923983618240992130382629522236440969935424965807560941893454257162957720486333566988947617865632794724221079553345240377859163743130045163052648960824365505305333067632784313056921328941258763938781424871811834501037401531449865511258430805015834363881611736509959489416711273590583742260111870105114117731749403536416856422334664157478126950252103509942892333898534922718841829297311148142904305939623298630952498153670471165241698696262966235746483957402781897555188768423309558189518894235193572621909573771261634616442518092567624420361977992510325494211106515909711362009131789401172742642775718961534580838313201233462645881894978605033303999835703652254403530262393523869009679247865097954138827728599431942613505116732033599992129009394645510407579766688466568216610399657790633522958664514462874008061518026442156463198807671511677981305572038331115874322566713110940513802101280663498846501508492911092582034631768344928523245908868216680525411809908604104897654813554226491744517691223394498130712481574220092057399828538220452362997788407611323240516332998318502177268563092185672152998784553706822422203724493567876422918493676220538722665487675352692566976147948263196314256923614162333770581816222477263112173928629551374668438754484013185508026279955939528757269557929064727267688667352009998061754584274582173322078633678141194713728347241032595476232503466282474667120481570325615899191111949838727479152133933258589175335244715146202960530430203376557449239841114915209351927078367381651378931050146977539869196633410219091990291810662869922574582430162444839817699664310764743492620199167286985734838748756038738984408839802722449674537937981573545630676594251689821006118744495702706222041563676284323350856018835320887468029305837869193617084235162193514139177378361344597698780445904947660933884480041768104894275655238272101418058474771538338216550783300762129958204832580323329431361257207861766014032273349194039286864753530310958966591633554668149718880732749399047394219192004013091105053910119335485092309365929011286036231654442635695170727820260884149941162171550761929094728529712276823469178786416243853708209583372743362788441818676813475592313246963817891029948742483095334798885121755210755421385609890647191848394500707900153959065161111590535050164974135394335755929644690109493100977707176451685927591257649122817063507694929853879709177200154622059808102303702848016416977115992535323590732770601643475762181203030797777861892907446171149406308682814636340570434922297237403180645371514136584181715639013125366476906835029383885786517938399999658671312772725776666695382576812148149500267087649594930268724246326871949105377084550669242009420590097835492799341558085059377022667131993070440189894084537902158478381517629471920857525941682774658079773095356008138691477758260341694994757467791346474163506699825394942636233168780492939838419221656837846384574607446985441829652075420530448817771208804993982603793161719010714667813325315303372917202131534764514161489135296507795002552269605174567137472653235598476317420385303586097006866757716882661904337707826752446585093750037620284306046315460652476416338311570307079570847399195823485755043039166278279139703210590466167990742141677083607676886423371711917272954341531318575087381637418913463126819301373847919507518420924559026821056220574486163693787324246653574822152629874056786919712542604384152995326310188991701705485561187451244207627838613652921002689292349217930268224276531744921600837570532348279620307805536399216245101472323546355411803421899333951574851045327952906298991344094856508217550885416033570684974334172626674782454439119138690169921591099686067044856434072774026668658881208605256447536985433266123555772020743905648744929255690546840081485662442693752730987365634154333070767155277061517535912906714633112634072963957477588491649871540050068890951105355166565895021424680694454509182762193735187998200359320391162523546284098093897290955875568493453734898607072589666779475435110256333666184365725515756488111885839896264458132546198644294251361302102800194553184198907578357083393571761132095524519861078570688443099209061469894712235464606182846957474758600535714574443784850474655096879588451840184061316609068987259821371044288070132894784314703768067623414453305701240953501228362902743108478530283769395359744196323957389831407942173128142614459047506181214275567773828855912104480507825180964635750197388069284219933803313959286274982767279583929981087855945150150777545985175798362980252359483387467266463595680372663662046111822388818038041494649041461972205710245302702881762710030193083489205281437585067189275209947787142733238064417973912531960592828400940689731128734128873477321411166867491056460435567373507791686204782900942029107928535084352435324687873684513444540769026310044045486734465239276106537507114504458657605603947622050244003442058815815083889169896125926946307554617277228898878556132389585799334425598708549725923816613844384430312556324757378435815648799044693442594944720525450837093805452179885677428381544693157092453450096800212940562321742151857701766425155319066974842384692594297561682609925106718558544156631035395360165429163702667335950103487380796296290264949784604354295549881113475831253607368881351561355055848841308955247918210902986763825338454609563204732321956122241677046101141227667036663222362076405409952460055746761434742161863288492237445855505207057877087531776071479597470129663636951684111079984367813715045681559380513777312388944310865143468114477295503313294328512532633759275697211783899771404849521529632529099820760664061642363389769350173594768713979502882643468083628201407126853160164723841539403829111482843313300504925985404330312813442659762847150432458929156386482205750820892335346510377574714311836757404786074888410451904334525176221189260470311517314999439497862212856083874627197141282883950896326053813131533493805728716720862989754865367335280209403301117458643952409351090468635199621260720965461702082017178149965711820886935764414820517469294981323568512535512131882630873656065444038467452445809497212931589253209111742054223846348803710633741253375576901958536406595342979796471422841798316948168072895492199845747205454113263625894958084380941793296680034592289292784868791049356204337389939374626212704192418576100474941362512804847230687504300311794876701020686601572849866514100880185315447696896542479743047768012409974842158833278450974273273279496167479482284925568973371092081340812574247827769668358608245911373818408637182956354566371115281241694040289940425350922799640815976500843721483272420925038155956862094102992765007957262255830336106500795425128616304716820324305278211108318042077505549211357666976302107505836478695746691611317827786514708368010858991389373996930709476509901794325773283013147372277621751546969398386849092093044341918908872564089618239159419953735157580152060663203273496723463401747238018496396804263920700582140002755068239716075605677829704225308270429720397676329840616022837515610376383203107265395087132673971958498801343829328403308499652603151423018259747695277014048140165583568743014640911384303404340639945342154473401848517564980005923754091146203636038721752935005805319780084323763291974616642446381451232275414913844962686523147741084457472428252996667701659113355497181434931932378444092555471905828291028468211174675593353511202664006279585845078867531640006787468915663150539893177928276095771273446957217476217003597860361521432092648557173620875084482777416374678888332101211930851842365991339679852511151298660603936477723327125336239271176468744393357194571518363873088384256344665958702757006947907674645958635290008749473756359964529048954012857548366043168089507166097435756354701651181904763807286858789160375767477802235920031717700494613219757900275622200470699063765220307297485996369135011519440833989319216504816437517525209874544122735530319611058280194824523559681275183219263125155282713521572873153493582231123713604335074366857461840564643158870873940148408007123453841580695751650209306214527045522522516543093025512400139746272114597681869720304464178878751612238204008680069449736258133561416842660025281560034765763447096798045650608211040726729983650758951173947206378144188394238679926871688229356705084720463335984015428722918109552221834615264424791481549847640300188896547158462644941474473499333825995362535877486632547282487493840310396982704939466651435216889305556528043817478468820702411945693542933622726673913076889165161915204717316136127094604558184405567340666274846866793925328603549365295728974792710705186023468966377479116988720059092724141840633724916096016230269772135366009073044613923947402259599390193354204038534542155049426491661828711196588666583435046238497084902359436217745612894679505773067290861581057686212921640386946160252422201976072542198236968689793382671677114226672467179987985708489252782300493267739750677604533717179584081960076800738587239592506410856184092927653417261789419632207817676143554620992620564144832680853479372046802936135801960298473870281933690899408533543457512673999398832404042720979736610342688932837198540520347321527997436176370381202633333460230604767451691506013302550825961926201204310433545848187719301902111651543934900946883590318466818869269572837326259312831147245059100209331808070513739177507062149820587656099437018098539993547144458997125998506902873215717167730563673452752065495960859343280642726594877438915586102360138306597760393088675527453179612035588862242129287540009158289764296621334444578996991483353229830811518657360278811435090332154127540491343072401945364619710942217830066561895518383264328244287902816328744561713290935970026778285160478998420873007280911213284051216293329011348235898294130479610967221983824374182060897845490899277354696592406880057017440694477294728240629696163443637388109776275954145109931759079963839961839064735259555538149572665129270196202619630901444854922758594874330650817688759306846273608231968994661680836401402745108108155556612603332002137835249164955162307284421104572938268761982687580967130037090099756857820595768363846547409441769415133103207459052205610067416791817409064587501792021163372905849105224363956179702639169698883987520758714632048144815159718963251944824837269382898258874193277557756246873215862765570444858837918695095769891777373252766206480091698226531154713351710092693771304370393603017317735311859021076096626052136273052459054020238985353425487322808150283679511010250271092535708816010466713859342221806773532303964614757588215206603053895938099398352372205668053796642851401442215413206600434570924636366591729474424118992985997145293894145202089370146062103051314403501246293203831265292123236660132181660984849128368918130773406489285142804438538394462686686089321134527947999762135907297313417631003121537461553338175612366900986451842777351338570968301508320171531481404322156261650504447373102065184875076481733220127980790614914059960696084455879800313765733832656889836957380712983582231058812868723924285040735695615758360575582385965251125919574462930733717523103109544751063489547469087333990578857003071062061278251805909631695412958529638846920439812247576713307731793977615316823528943795227328286626655930756601473400445003800959596959240709703700288263079748073818527971045294155603401475625110258635489020662576360412492446408991872686742999645119690759449448610797636621169821492741437433415317458934129978954278666626588826747888933916379361467604904819563092136908022448888652250496990919831596173521044892139713346729258257104070012881095104166518494354841733013872850365951540155029895779300252992883400286120007778676065990443843409682817547879984874811857225250291552541891612132444416189742977227446152220839404261203219705623534502534363316098832071516510962196673866771256706237334049956767421233364010696541024621386684881205825670895191198798795196717888296982830068482797802165427742095267062466819062623696696548850430328737198445616748813027588833877396489615430244273745215298923642347409597193839294319798426908599163345991783544674006548748654159508275744723971261294709014148214611795203655912441857522797617568053604289289789320685496161645114192694932325017390665230552071028300628305186523306317580797132273141692817067175440949292172140936954973674162635258796997462576313382822922229004099702398718384222464793489919546724539857563906420787882716359122164685563758041430611027019333239826522309641834476823004278659045106617915168482023984876279849273006284464234066353151823956899099854193739713233661170733297764555292119751276360960379746517738978448691554622630343470825136766746625169332844030512328942313219104873493893050629963821966560049981233280628999381728066251588919016443815941304279191244758836068266110913692253011769696495902222880106883953359680389218273235099861294566990691872439579116980944400622569226126195119993060537593407707759205158206923823671213816200808389273537892578214799573260312605738704162788738914475177897323003522074414834535975786670721871864971360080991034008509965146941723679030691813570917694920007452614739344233362434694584873965911951735184615102176740833775173369775520386199055666935421915306175934240691841875749141356713771036588197875669153449498564665691359917772650421856825735635266084129995642160481127745942865021819677801180962552063717378652076882415049541039295921178970139903723899161904617774408021733448293352667050705593620577610400978680500083080925420025428273608418879968355175165604808169920853564725229927519782240156810256765750492718748593877783117276731962820889308912398127777442155870719813852778911787603287304132533701969237877631239605732843711788017455793457946642744721449173283035398630613578860315098321376689717994853477804124671975119307345414803738036145613870588710729764169516721283340083385391905478632204639477702961442891347044395640292764551295964121609895765708298418972735600076593047607439981510760766823820945718735154940686698702711929230506877877749655598420792738110005325968477937243861677952195479962223083312778345552975447026274583863295419591464252171065946661723807318734286359463503076710009312940778429786517200421659525325871892186522394767612450362923368077701463453882004810556498732679356939569931977793938634989614907026738489263178095666236854172796612505851200669772492478812793339970976134661750874100036751116835428621022493316696819520908828016935391745892762719093770506733233351597871182867238339227158090538766961692443704018495508868038301120072546748134966794112288763690685492389457205549365339947805527730239674083486987333194918720478249900007612590382244449477254104770109593935141551296391521808312583857996994510372612043220015095248947555425654772744731070429468873869946240444995263006330732771534563536409742836622698292301779179975118505999116755701198671524623763231958175329220818258034934884043189845172017112619097653937717610571507284320239367400437398494002853197018657777723901764844003712151699453614867730372796619391804346294591553486421837612161000294668830327942182004828596910532097487053518186663103668721613568314806864666456540687956814456288219354996881341013219109913503181797762305319529887272774610714673542616839884069854607891185241327314189607858339080789744167228213167663030820362836658944112996464315056529316065849183796652204804448131999157089031453233189356728389928996662773472919240830371189235111447187938429766904022927464885407764673411370138551325753662017334631104229896950272508471242108373290204609895248006798318520108195098152664227961068702026254589329818806007558458500521331906044259587438438732511117594172742104548172406877523498166418334483127395344375278148302437920711714903582498700114571460969468576549188002373468309725087418470851348261986033914591526707598658799141067181684748855562017446873698442324411320922399435721075398780364097861847366720401806940800637089223047157874450513797485307246133793193050026108473285480369406354354020707208031595573563952666450089188053695839248706908554166332156648163519675867737243481527341164702994445558778444624655838568466290880185722325613394833630036592399307733735715665192297089853376775211225085871572219476259343910633058334720801681513604466704268187036940941258680657942604390492198996638801837290333101484221001710374813647329363128776370231832563728396030147403127546793475192435430600612845290279078012437754007244297189697943974186249641425246676059520173144326973351765581115677774066634136131521275377874235345469276400971034189437522567199906356295784347624410447431671911636642234139072017411658434732940921285449983472452631927575564958263943043449181915238935767726379487212735909672871627372985766696417622752248626496408635964461357791766072882062866579370854041792259750466201979186191563443502464019348708543235169090795851924137281784526667021296481726712328824766696490877427857297139434737762841367154921163319207002024439766249157162488216384863480942819335009175350424033781283581111880375829022995887235158602333866863990331604916723913259665474669320508853121535366674431131045120774709754285135672928345691667312714351533739382390093935732011168231456579618934780680716333420716530950793376475651234375295315361579889463038629742441755578374188920666250820095026732826738549264233312193724678648207675458512105909197865242492072944043291096114062236121212984927153200065976039146396815699800613949645736995274291915418531342848012909598590340477889391806176258976914519527766424304870605991719876823854606157918961970334007903257691137138286133919841560621467013923325120518510368553270699825468696382916230309984780331171636564597492895596431863114013143669341702040471906776871370084428674965798021650128318579339343877450010882147221870248035161618694071765944123832450601768754943213165859629642219886042356406175901033793525282804396882623483240224391985535645603075282894984058334144768930472640486643639820253157380037165101484902748127927271362487481918985529730789575329967049374044547170318026162709749708693660039264698110441233436250575321420249532071757992089792222564612977352431872939715287345443121774346980322809567921220013466500317739996690121694650596238469245404344256440812961011157096080207930621105927959215835911586937243631473899896675993296748614154324991084658904276950621765143470755730394900618899448650287159852591616218178931343405192092170106482940598987909295980774043461561970414858149122041429553278392566811789596591942968452218146834944067209124843241329424843068051918656410949106021913204499907498295963956649903911531646425583589109775743868412187159550832642909324328805446721210774227854633514361551859005162320668174303990022885324725244338816009242775130068735628351675041944443528810116988134850398121705094753938215108036326550391224480256218005052311833343625457716150179107115283832146812102113934944383195763605769807174254634513744257983979050387581719082724518448547994127551543365166475754105288441614672349929017973897287021855144253251007794649412000895939269074975371427259542121868972346012427062349528680092926132533545986576577535214873616324092171314840885212125031616850371309124738998510655982953335501806993389085481103039312877785175527421519496158975079182771060638871109839914480740289237987050745936746613934858104276815602130145710745629010356727420540102288769680286404902224649736065952462251538178908622242024947909996186717021547195899513653966903534142832077040620274601795611122731143273227097427180092833906198821383843670564932757470481493238327669909727583271418665159605155529792490546351740303246497606795603772602829641669681189008530868146231032575012294862646524219272386526523812800378677814459679730327684660089704380755123656498695206192150654295840063345560990401015179842868430961108844946169593907494143617649425379397241375757695594006735194165359698542319849451286534509242915235767619786086812252941614487787337552198037556666460577979933162560785556439686547607722156345621805833329885312284285660853041971997188448906925089515135332797971316379750472214042971663925755964671501740273712414411196924886216911486815234440815428419289144029185890037811874137795281306899664492107946591536891128615653368500944755335731704147028888961050638312561803206541717157292768475336771920579780178817319000971053192086162268144706131715354691799937835069177242748364264780884304280149602252423978723254754452266693778710193915231084644119266984441717455382488381498538883408351794059207647229112445433485414157644188508337279202517021941325679186751272196990810800446785267388016006128211426317451349502603688126347067930651271584668897588194452827466885956684806765527119068039178115911734132191059117784850819075512713163975909728765800289054940529126382295476225828376634507502459776518726602405428408100948736974629658355354466963864765876841499323448477541154064944429621046911537125328870481728885718244141352306824681672087213159361594931217886024823346707121008464393741059466505627688787361516191195701479446180019938503119560621155507897755288778451351611273748899065190039035281880290932470158042424834407925394920991022934623434396814768206770342576677684301178250461882549020353448323002204190826108142604140359101500293893672699533048720077308069662309794974226620276674877367814759100064831223667442929959246179352910786653046181371892712996481337806862859936443167751609157630524159855871656365736324450788309121539186400934932213755058580140796614818705178446744959369190241934357465764698963670253101169507270717383301235402191914100893231352482396928770282993693422740469561388877544276497267568524298119395822170806395187068580013722268191838355392579038155013283034311521479516792567681369250971138312706970492639792418336553032528549434525815698174996946637656713005138629189601843396901942309597772196291088235386169433202037792856874693088930533496325439816409159994704074703777140512488258165779834516097308026871289812361850012969423428823468283172794004110985185183100767972393892163015886224077601914245343404823674581318253176662529800438850693790364342053299418933224003501523214658803055267200674848888794103461374938112061797859883698433938194654828494162625153939050256858734519686117481129754050546452058094732223566969306702204614747082291716545328413392047835809305261108609760357000556999084365506086772672380232198838786752869428406060027128095124145582814139870228643439077663487113748895140696909204112336480141210040101493617567811053346482214916987677784342191270783579806158150406105601833529230752229993938751174206475814945555723707462958475395775579662278269314407742004255455291565354793542694907730889217268109919601049656776199390531743269320108315454743937848947710035618865950715743599273072753434167811553481017599187050389948588677806792589612429508318433433404354297812869013309648515263440590488744332082861036757624625740667580606914153894274074141024934567950983531466335705790459719919176125135345977489638537959641589667358249069380989081500160549724755567894645761140858610893276893703830124256511429733438024878877339138396649120037169933100191992517394015268708006189631707595395432996243204433429442791277899811817893687508305643806508987595109366516514228672480159101835433256003245452858432906040450926567730789354282136389499944067392280290787263496490353963136710350321907563231202568664918455585403230607248243836499386198996318572021673960933310245840108548103898799485797910516622658982134787864258512241853302907330301126677503491177062837032807425270349355374609482839923335582081576275286851992946663657890446572032508749339863834274113928868936858059018150520856302364780487680696292465872569567085723299730794809607147772521963732575271344212660689201584393567731516246945345654735029839447275558110913842351165246253313084230402947205845838699356039859738845461204327626334769156731676241369844001660098995040677163296740075855580119886873328566007794843855102634922836040702537124125514258209514315061528959295211591410880792214055279295522560164755427855814654862892192292364191798105077116056759030430414161800797051647983616046884173655570100716476505099838459893791561980504883276996462540263533564621407494170006456261618182345564222746636708810844724942856690188070497667490451877576030571378531105546300429963081064269106100103539956365382022390338824188793816204931811988351914869894402985104058013401185670538011541657197451842145050819424900119378734477090271376855959917245046463623941566640775635723573074932487043996197994019820614672562934922117564106644375004435084085816666655059606466653173251581561181953794496784115960653455462074195792807607460016425171386535636990692705219510003003114551309289384227608630794790977657858801046365982450259526357586328638685331179353838560026104501646960406662122240677757240600218236666126380683274183489613084295725229395485089748929796047276441505258085403316595492342208378371284067176029243328149897453775750541693661279719760402934745618477126972823246829408294955476422225132034417582701395461710116079944237834588740935784350143142667776898021572901184317702069562560013128695461345633275388908807071512705121163109527611598461822849044164136293617084285255576387169271935777471845697080602258949299347847130533608952194326274805719505735018000784695598345756527324570361660709274981596438616964441666871341912033512511992474751821356649320260810960652483993664454072555339237249728153779257979752289787420246525083614312275404248545828808488725753334373689704790045715989208578077573643524429146064530163533298100006620473580019487870387200434338497892106614877245744200640991791356557526985709778233368808345537922037274135737448766568731153739044720077402864463542709030725543219768764128776171006935320120074199138408762228398326140994101884910392013117380792479653680646462482277542211504129598737988427012921349022521927576772017569715391010762713215451056334751284108173703068356409519619495239303298012415413371842333997128791262803837265505503685545048318934721541938174149712086572110377625018781583617236556301891513505240204492575184312467335233101115782066181114148934919743204433432765455889790678071838915795193727429904492170112965651475537485958586722821739400399213835403452159875365981984094899828593331759587145730439247833175550131534204294163728880872047860566475435129483037300404881407912912277585311508941582889536071983661264369072689228152774652983003546989011661927397619825665935938858641186723643992236796050789136727456113520304831008253316893166670958141758259156144163509172946402479716704323660326219428758387653375638237638154067243794268887374253635822846641520834465036926783648698395390734347637368377518845693852672340447660262346094229127102291881018581491769345133824043895217813994515731020884903462299238774625273334128494443660503444593660814115667636676103628225480178536567013197626389608269078444780017572061167884454064733743761861512165436192693711964462142779246791247965519273079753711683531161460871022354908396618492625332180449362322989038971300477488153176088545106477429596709831363095210380063130625168433965637242476485686321592390497864801503807759860587278930888861622144192735658223251603540494915448783777153011514928718823167471813527171442673217968753171353422883237886314054467365759620690654617855756146868968181374810430480802595310039484002894958965480548853407649690758038885448493686206831607981330045848554130531755615037719232421614057590019513846913251002533466178946399270456168087974226095783750100745866728611842621174104477895961401968410347786207049244574139157195926961324661017251108148320180459806316758564286532785430183795131466785663350941580414334918604718547409021939918180859232312284651349122759727073249328708621003651261639930891790223157612162185514206716535047854536097198992068500295714813217640633774783073524466583280759231424511487038788192568222182058631454476867476554622747680990051992042929849340111136063202847416301268192001113799727688622485805031154183380573642883421735702324279811576824630411284615003316662708548390241803065976788098033825623825694750431291549002960201207413485223052064862192687200854414309197653682060267507162843455034831100528031076575741270843106067230100305490391772478561923392351882551561976603914859518004796864256350913760894011208033864091222662984758211832244858085594170452988453328994485312340295655169496028942253621846013559995865269822190426893081413468708034197266927538220105620111585399168502583284839235909086214586181408741606587721732533015722303584651126052254131156758238607397554808609829253930221806813561607916211546541983944860698211747092287751122516126615085448692878572751749378145459739250298423240687607105413599118188563157354109140529391459666984234622737599977971250346335988029000611902389696006989081419660871181672116822667147403243724962494215596163188903018758286310214097448641400064645249507275472958973981876711518968616113284980351232125839214890404283951102472414020619796894814310098140646684717272194946871550990713515136532032790752375018442765675410166196054374401148043937172051562104375577825425802390740382511659240489441082593012709962574261653302153702180158026462128403477115271742269812258763829119356706449853239473960837515180222805090607334438205191120584010875425803181111404188527101327313743947188717541677795247768271186065799330217217166355478145607068988808592880762110641270903409894937083944337758484100576344681536702219953335236742336693397102084488399105933510179459666314348832108285662590575798104481083834130469758416797932310730332318542847775039188581705868339037667933778565543443081579606352603326994229605606589864392924120190780139808015240408796565963779893347000989260171494378784713785923665946797996389529190840585459830122474983726323287639908659059695815113995576121145577255797126687218856787567979917464439190518755204052380353721477626329406055049090917195776853487575095761146434529073830372723226158676316939958550495920704309560100894960113946017561059679233749347317171759715253812932553991217381308429849437329498194198048623792245502851354757228151555687527177937091219040317039384391584793020277320608882858235200383692017888587529598586326346083072596642852367425770453209414307928197448032497432641941213853514699471603823754008437574856717365445716011734275342793753092114524303199589203930432846446105040814028886181134420554906863506874327550186911270732188545232749616228384897868314225776573786439807544694078896353496292644912648886014268881908563747448406388099529431208358052021565933540847306620243124841701598693549699825152338285174715812017423046318744903318397015533150869725261969643456195745447561993792126521375111919495341244232556578485896120900589698119171825724696877773481962836368573397915732796100311395288407230503287511396984619240683989855370900693577823916227483905309385944240699549292014729718572364907472051152347533991535732487147013779660692103890151393019422169057394328324464010960106867466325409882769495420782238481588347184043959313592551320484861655825038621961500214460395807071739167280611988432784753210276652812147187681530954832023875616903829635316225793054277021037907303666293626889404566237361623671758742898330883440787339242363067599861023379891851179436260793827482723269909935530319741470883757823777016130074158697197601976462003193380633417420583149320507001374659945911850109507724351737424624321543866812774952296959153148432958942734075175207391837146441409470441616162967198782692397603246241974989525488862474233438479736791035728162565946253579883709752156383859573038708219915593657302889136613168431102377267750778491464949559247608856941950578474698091069309744545679342954850788959732403464552060806798195057809882060754782167607947430457310746678686237653583073691760188425795134029597873579491600015380459632470275664818886281995414434001424704556977216142509442456304660027234682192119706336266718221145033205861297705170125491624430354431901011405935197134332762658728431951015376311627974125000074854154932553108494801648956166443195936100684558920156726786601487297332114180686765132687505337667511511292199849355772869058311823690692568207791286032614445073436170772387302319769671926833657065566235706325416426858206247331013222173660666151089063856008601122431915622702027723217597410620453577207936877168965528185984615542393494988938373588810252052903780626735821026058399407707961809464085683906992485529109548530345832683504737673166188128615793178719399641131674567855369341533573217666434520369564449063364373107851995397971732913471051570311430178500640405463175209675280744490817467618548316920784560460308328792216203194304241535185491063438999793182647884444178694609727517594121677585611577696278687691498740322655502158084712676575542641887717032840507411988314298973119122339912539954063579013665397421827904461986957055287515160345087855080563178568332699723063122943509207833913531411382244618377864234801757358321346501831528863075963603874510310763863517688957420891851489989345389378902756068228502655423061861151194939063513276748969267997105293996822547526267178409412126998889404126597952146795976467632144429162396447541855346320442147437374474962042237279551517811453606749068759360107316948136274065431961424471160434061707778419611230003014550394503359843877198112035647127268877929112983333350568686164264796910897109348498092254951401441845394627176291226848512197941007924031863295924189001182813878175827554815507165439217611297510033076997470427425204310997057507538380241582383419013089561671446220033389346958313162290146797126805968979398872382686212737434674999207618991558773316449172206262791098708066759286593467400222798872257390924067576978623481671470558036971211190977846252028966343319785536457977957133739402763962483470289387726651642780481155447967028938537235454084001819163605276120254514228596434710346633959041727931341729518064004518685452044634868324288802197083310365227221702884506913197900591698474300858703088186148727883271357223602911844339956810478114529502318881301481801795153750086066445659976624227852708364619720790449752406619972154573867504788650006933526402457848171675327060581281781802130491345973634686517236058941381551009952231743047167902538467723114010873497753809392346559350515154034605063404410266227608338199581609113912195584123818341692526778120872462323016682481208871370954818327604230299376147404953870083861113408783426181740138945981047715922970131348738266858024988603791623921090091989498330405792272614768709921375896248132984244091588728631224972745806522138256476961013727845993574148676686298445686789023990395710343299068741493677257297422595691047368630650641051157296928429838697532054500414883378462659725281145412067659379109210654430092385638857478695918100375995457788986565398894738011473719170125562889411644876894496356185626697218893502813627554180009820517590936767552105033570432872419579534563831437855136900221104747658501735024167534545656068177003062114647614159508005631367932430191774490063282741452822242290757164742471006689632778060925613067210042708411230666423402620371012467185510338586287032219890388786971248897843449425614025542935163999131903016853725528859208409298248395439837841333755921723155081798614418625974472203513249726258032920026946859340002950285219766512090186045282907900031573717563831027288964741853012950675231768731480010989085451046495506298038540213967178587307233972402530724242208677999137768889961540981156036236001289811825159114883376549427521898054220829259058940925989998834083380228921458220727672632972685450736913834967408083668121361222916509960616752128287808174527945458285219554616251560346996185560985936812528570059010959725102882333494636165154603381619565878515663742097762376844347508268677327444271736433231142928831399942482756116668781372997619950807498709011339476432144066357766090425655208469340363460974279772708391986996800583589428943906323777696635826188693764738565525954373229918081243935937441292016283187324743895484461760129188688465467848138379843887531617178921424615311700292421837278228891756873110472993960904403234894898220707397953735208293285526789796005789041588793470798654772338493912285963029203143075432828868003047029977428738168305886032859002330965845657697540882407072581583245727413528656444251409192991312096700722131595684510258211401993015097729814359822913406873275592673559075794893832517074587154330040026145992710982033592518352812293602030648677236013940138707166128181886632242905263358689974029892701741321371227955048427374609413584796137954574927386068650117962888889708839955624892293363399585264229641358983532167797301340034530412511154754295004008299975131163449082405049850459654677426367040236806694158409092901494149495708724927069082151942699770577589428269642163522143067789928819733274951683466420731351529017110272353081097191529414010763581334230455151142394222051599865327507373045662489102255485251816427457491265370393522761713749112231702198043233848244545380999147149416150034365605350168611764712555637202389819439239792291699566396429543976920408960692908674339285609009060150253124324616221323307913351723856535844136647333614064421609475579309964858846034416367418156551004244699552198542286777545518253308443710157733002444372332433695140769405041901638328949737411749394636074546856670209555699109683694204371361713859968165848302257127132167396961861796475924641112423427941893830131899804604441718361678611392691902642258793696754628137720969690763835819565767527519680502868794763991623493459061549108324404743592851172601456470107057837899736126171371518312945160119759351289763717043539426132405071944489386794891505733589015584606265362305028150755622102039658969696156517025966970725464588077086427728967294789252062102958638856106182080933111371961540588047599901162872400612938853165407524942783365965881021628939982879781286300945444290520535569816208077492679749994609898743531681970735134145643110780559485900437445926269417440827396883776188771424599338515359002299763086828570264036273990387298597994134678185176341438713809022404526085195034372733337042437099278165182874782423082201985673749715713278229623406578971921871744345383659042694487382836087469353092270053263956967171803733686476473734751473784567493731692513776248409191312999984317519783856511875435029745504841547287312145455304721012910947564508916181735592022535357647377063856712271985243378860211371147399884189400640212080902848084876029781712136145847903218337776554309911821786419074127002677658799354429497696381315550971382833627957203159634689732024426948811711892842987875251119766748318565577327876291091747352370191118840951003449873317824748175204858647195253414582579878663028892234507422515103857681778198990030809189378784840979590490722887864653784806860667175172731920189458391626628854812577240271383830148483890251751305225502883480855494973975933002095743397570578939650166206136973047116949701516809159408192122647378131747812105351702875322176834413528676930605338819676102861301945257548709424896093324518476470534328778408860539510045234207299801839597716632669364911601497306765250606045120902028291065044485618213026277897229259004195652830727924192929702938986339069262952255152412362325465104932649221270493826546165281239939935633995706373882025674363776048116144784753736793298629284403317350823019346393535366482788156887749031131972252928962408565032021284181915668886870678420789812488044723226084545445412814191121376729887580289477172710229746153598576802409058897967850677404552167606270780908685219208559996029932157248165969321028758290896036095754529722055101738302457164403950787563283442272637261840844582111359914287036457107596557750796264829145872052416698392021880683630079921845510858234394821548342406812213550937825355013450398771474999444672844484544561691296420853930545383641452670573309676289198137413544402052538215553570968327982935631415874962203084402198035893249069886290636863358090870175021753133411244259194744618240769348163567908825449533049060332638892909979364535194897359623101400671218201787014228069681300008907374284295245145793236592096131592550549673892702570822018130000328368060756630664056065075874900825530836260022404171932875266175389400747593881880217882212279702643537482201816854006150872632055566062880527101259213390876261518652891728253407394404057197813287343718182702873923777393440465503637775616331271450519876348214418350026149225292655663345468476761312695214022620868795650237227847304197344841745812412692321057652013454452698144465023172696375133388996566254404331225578064818794196941090922491008477697613127683698153034486815505628762578162388846659452971300137085663417900647545447187425663653810299024933472197539640014479414947308022992186524112608282285553931441395312837454324432966373081124768752294703411081979805593252336838155014230238939883739646560336020492094947006957689064929828482185352164414846455439621769647117494513270660025270170255531288977794120891704058158842876907805267549668349663287703438073696935489022835706747585651622925411662965610346335615082072619433128366431276402926852607881861396719487897506915402582308977119309891962346850564094586736320396268802763543376027635012073114174083108915162757665466333056480247108455574950221707319542018429513667560700050995081559157656875314071512429093006653888478766986293634339134286753323101244865971358571802878462335958970861781478832695655259146812990157242350429693180765450454095324775661365643092058764176139253626448973412953647042008372616722759397197012517148476259513696854243153545386219741278331183467002647188478278112194719733826791715151830300064924029518772631415082088047787368862920612913670455312568932258713074342513950902107523472391106301817909968760128590474043277353410137090781456175599954533414057007678965907391920697007916662517223704647192563759388596607326298694537893344990857492271885831944697457014738359225017056912953616074680444270802125560341288684493857413376331804050373624689542135287712109543656774866060733427320014414749673262589339548123773754505345195567769857247035966344152938839200601785798874346331421449456090491276319432859494234899287498026000563971056535700656821142248681599179726695145341053277101343540013446051668851010518118441818976357335850313363406527463747941005498752667790317858152783061805607075452276732179750839815123505602136641290950546251183777635081569277410665363446576198794976473218024966287160170134737822753634456140967489238183847479815338811910614098600780076490616103538063158861577184438159244141772644032408502034224228205385780501073497354280206145099160927116481298929550343657923754150503127701772445413262267278049759578300756147305449876403678446173053443189256176650820015172220609895198884126511497597774755289650344824896359397461656992102613393994674457074709831000595786114871498190899420037655423940493848522699236063141901710131885466719119162516057107574942308342940205606668122755980683726476436763933866474380549878231078271853105488337981650874768081439472626636212844361898943957536987715291260505509947115964522551502832928912257363416944855420930259910882074109660862362794703017321680226199057582011575508855106474838064549882297175281431317959141392032682542357614489360224385413696243712093064238559109484310332997651941941677391350794388260747309544157201371421792198824447135012879324310379557439744828038074679979268930036160990868862070960451665576538546029016732217547347395511359125787676585493000722257438997099255518326574526532026752159301390872521488862267064030402470191825256382464526253482097258735020574111317624182627187937852116487217655890261247027090264711597864925962154545597281779728485788281345161711472622837536168555755447942980670083751268894496222814822403714802960518084795326271886265675506494981468098392819991294233357764211456853404223278556500708993244809571593244800207790932646492177562035976027661583429185332304819661911236532152265654553919372543963656313810741235989465596395281185841495065318542140337914322146360641672471920223675829195010363734050480149534862526446558347802953440094410042429210516938845159590332727479627752212000667748689178830474746439954860258711324788586572306416206425798896414193158053376550530975085278863118251487159910687696492118969502971345697715714370797136150642410472275343663442900577813634681802861077879430737561503273202328906228798768438401149241699919837356434660784418246790904043175037526542612378118673680826448597764002798098739414758851901548108820459106848511104131937479071832455539467142433680733737886838577496634774679777482431180566922822694411387962774883148703432299169492678083477548870527450958187977300113919932790921807268283819566055276792717017293767760664013322242696090377873034157953209544202352103378060517532001233247907332103297559837730102005164294667009499053161231271040765986632678197190051424932846967059543441370511098905945830579830469603992120598591301459027891630877185891582062483168169780215320096836024513303726316135741937994980887499744509297875060330066751712181372983456436106967072030389856535523559954995227859633450116708154805751926061557970995020121697557676108522042241076379514538599309910373812350670511775254826430848210851351825663083743071335468780957946733679232515035601355089435717316558215494679577479041364960575178498480701163434547002984002063713147011421113347499081913900808602161503133861216253529962635275491427746140024182627310948388599186931429038860353288234210143673499446105733971549966416410712110429089001186513013623966613671825053380508385958104439673510433086477185865241797929788309031745493720051623843169282510794862306606443847292046799971663585628327281891926995713801812053410769724938158515360179330859751429775349596545181035065556297435938269655751602645964617380356671746456307542574943116894547604853911461075637374276951393041882226691836654538247780640361076207988052834083287809661288842338737969422109584336205462328418824281711243493008190506656729373486912154908064345382574619925495794583627864926042192593687449762991983764756640485467966156771876879812232628686833417053902102592047886994864110387627812175523602399461000202946143133971035668362774827231476436673262021642667902789521124618164743584182655863905554474826054482346179850925062947095379426084703725112021593598506113102400224759126138544925709162676816501980275441126124751891610043217986996491923680642526085030284365215632679083457893050061285068173581370176407560656842309399684298389088888344870916301296727596552043219197527961222144242131236086282065860455189403606948823960245452317472716497717294048341009691069431540902110205751891433970860226413349745914004564649358773249824188557131259191953711654599745811429624586284970050248177974533763146477156395023401545099165331258989532106936293182051502327801882776828252003482846536758129785777390354850159353603308271779710602637068374560936919458077043041971329139684047706204849705518427987043844246813258117349157807703480439394857872296985340716009529398761755119773970481716263693025917840185177986135287726038034193665509630938018584254826057566832261363930972533545798968773345146805445668911564259398869430354083059442392673120767811103578806798196977671494050741923075014734396566385963020749642922093674288401781695844250206438866851132032401862133906839021032557270584621409122921299128829114975118268963594129241731786158571246275514306050985428717189219827559713791878616276375118011510558349178480969563070583693542666118410822042980917772417172977383749337947719917651690545552127693851826775689411469976640974902258257711853398161398488059262758981891134312153272668896217543933595416890064430386235401586907333595988712525909619144551830026566583584182636328519260877145592857432305050089253286763038797411741662447774161619920735146203089863534776947816394822869429119315903834604623775573376100934890662241784700851529492480353372593247453542358726423446459353256171490326446012534587283488763717902622108920448271191090732555528095706231678430037826452617618289442422533545474678231517427052093763314047652272281339558453061390311646499748539133959155047808695407991671401908021086321171110729374556701018678979867680353478398155095394485407601227437397011316018156330947546899681658619083520995103088331798763587723579030781164618118056440409041094271608807218107025360829860839917530761014099006007089928951703919565254157424280369323251909399550208376626067759682321971413629862631456088962172208079232298457049225093969832410023373603212888460733994454149565877276760393075408084667361962885393397734713270778566598281441333458831130841220558424262665470006488672413615408418078881247854169841193863821058600158638123033541901823968053533457850652607709203875740314467844701062510875622108955587394014317141758489072512834358724263954948771165851196146680050589869716610886984477830236119013413446889301273882505142056541831669147719660448995385345411616471803602273176407142202295662800553270270522904662936071582322706323782761059386126331315971404196894029263851976351752451366574535450996653964982495942615243059188516174736007636044157255423186596327215821300386257871113036880227435039206867249165704158282979039215670575344515629173312756756285794542184970656398545412346900918937831057722918528048122957746723446438449825451959800927117083200196208522201503094305913324276527124273128553400264107902013367575374736332703701995845519336615508593783115168888571281850683321829018072129638786630241320347901222056338660965884903341343717203257246340936868490492402435333148661927726636104266247529611326362482076581793454111318858393220080720425844152757996072034515804658622312276875728977162820304238804158761952711984517933160901032056238108809337512893931826463207627538650105663211586981079236767428238962703850874341464404330339753644263810108669201892320647469164285941559196557350725540585716832076190937055550535272363547327617399425771924641118080630241459211760507726399523477155943865618773787002984434914059734473870370895485135732927546527034756225738099871288582229315051565200758302969122206710953812236147755897971081449892180384277236719743689505782354429871745885275662537985969001603203098641007000110183430022143488395107972894984359465500395637113157718106103768931085616835128753785142165679004937207385316727156334373415942836779138922211373598861585291346402028847411512640866905408196575683862364889267135621188992606913593689324424413218117914766329461921773979504056412103078750446110334166063566825699929108064513859441458255999565305976806864176593823195716304846569318821579784286943374625485151556487701012472629346348805456450253950173127714258878788233217773213975380655647732536000658680173390441769493323063903160646075855080467311384740527215949170386676736272247371539706927993640095382590574438886602436600559472700840975689368829446206012468260074155323471953745964634402064267126724615845358417770772855402570175345061684317417251129621436056880631135755652760523047105353666517560839901170102485427520863912319124941170754336065873863653442751444888566085915262232140736499672872656611868574176046768011294906804463464299029397577024401103963335580253397720311258884227954879691919272174886487927210216274337424546195235804780709982592056800034895179423703853291384535914239542652202267364417379326732865611733723012457327993226267381714634879199897661984871898184038757072677803530516859506810753275989629482925812994640991394081678674174332206347396327835459843971897501430859380786464880137995827103465492751207237961368140257872848042581593318948172531838556958994393216685416021777259370494084564369059915241802193015370145205322515463482615431472915197812038903048237803280652392118101621405263304394427089764637004625772868187791097170891876839734749377412604272283588491582104693200729066964563941139036419455015533819878955364275638102103492454920532521770140618597814232646593528036881236292096911129898867343833976074479322245043912513876871239476777210039751908198667890784804656739052993895288934715847176822700258182875107340390228055225970413741396252508764146292223837464408852112677700894607263426612215471303730884486350556201185634957405429909304636634661956717110451529666878070198571577065031096618719027887041014303865636250125963624817245124835651163155909976602234651252264632789840762342497372648508555414164173348099676909685194540876907041064878470677543383259764732205966569271488727061775710890950633225473851894081630245898817174387744752432835276269561490790122705686253577501354389824696173136834385583040972487037162887378649959431793865807240002601807359478511854046559579447457938693646602806359003929659485548946311081520091143125207944479211418170842712682631582273226668980029044385362029137020935088559623046868447995035961074633815905745129315727054190548298041956447155155776741975212892197303201946656104405198434103949885805049600911856407065431284723094627776796102141114537749339951682655277335441869833875164851828576711884621937392021405807817736046167239802287862298675847089819027796712419933370987534888488722312174810744433799820027385364674153655372252867420338758613792499957331073179928902286503837680886741052812928819557483472226492206709501420098311546631538852530296025951396075561768192595801942951048149545282229145845743314640460816354456920402988893774205638420190222077591499315406388180545584714955006272428781956744069213658455000773608826834206933022368191245629048029014105104726432565457034059729478425152537211244661830008366043671615034019293974844415404887986259762152315890631575116356778310647811408529868429903526228742369702708406689621376240026094078325954427008772122364363012231290264292331833429295232163092420626339380051632581343175602709477519637138511248799302690950673480302766486103879870275944029440405046613032584127222989818876553985066225139193963955780141740608494257123473229233464093889751477490344705398827095919736151937608097330471597451904335292103624507288404422028858200306863168124231529194902314598061276264536043340658225483873002960321155813591102575767327252734997199903449240111773135997385589680043936239441617381188297342449958932828838624358087283134432804830344031081271028165556729419425197534575468824106094946725201423801567221402140065686715293474550169268665320607151561146618547696803622729036218568856004384636633265820518906129033269324382683648616862966174504195041328084931590718974448503102132130995599553603440011899925520451873991358377563589840013401217553265246830729888641864071138428752369021827561008249711021055908846104014930757350210440198666758993620390073110797545577705059101534547625777832919972132659937161452203971191818576038122920807017346343498205517471289516422109310619694915383856380943698655998699331802418472615111848017653644959114013465766496853474866492676469381987884856221529304334294015539194325729626717454985677366258153075880525847219042583922413992190512209029109168993258182501960249525675515379432606223101035068012740076673220254657118482282478804130855500162848688744678401148731703132398733020707603536711044963184694750776422727632938303452292439442294494470896151157999704396859597832117609276269959533243362538470415604495609848235585643723391185178004163318315929303208448506134071022701131978152924687925961350705090766341672068267134089959400255764737743958663194101219688336190367286899992969449442575036987636511101289362819374932460796886952900305392849153726129071111842969396688056928184222340660621259767126281475813509466241151122992220500335311236798320783179738255216172226466190107631570994971741677829701236485842353627269415771470819511035363419952361584930055880675323705645728202927963832122158670051703953172920610101450947049545727814816578171783088317449109918325097431396307906043459878998160996425800720255411685523502294748238356081805196674278660580296113676779648490453494455066976678736773845472925088993742422950463438376009139266001492760312153998427544867645474244216701425201414131526609489754253662977202443916355169102575901878637392408127306716302123432676287718434433243523365942921252853342756280727071409674099185115698844460729676085827790022735604198667228995846341070494496695602345792328225783411741164327844757788851625649580294899142672073459987867320917816085047255423883625753963511013682186286083278317783495864373411599662261621418199116418544687082931826819988953236886562162104288767541946245602375973066639047055513272089171564272653814184498596755525276471742387687225542066108437172538115035225387819955786336267867819275952817883802601542212310759783837161903687733185907581087815353709152502240379728262690245217869471911238415984685725357098619805708451675190272901148738404385775249592646299499642604200623669305477744424898482215259249322287031730915874193199323376914388231305575468855427554535854887448133791533563688014577201592550230206600507278605678849239196756857095082805185421680433505582702260742222277304138599983652360502687825867991260037975040976418459928497041415472778233688716496368647003185534396131470703937320957196700048818576044289171972694477537365622466322244594223454851123185819864709523700515406523278405717143547363015661379490300233807194925484306928780870788281696239215809461086228065184051360970580864974135558402240727955620144146145229908033518265161683189478705387278923044488328377309162207078609385341028365785219059093788298137867906596674748191452365527949529623705445980185502458154894596010471396415776081282304604645878348105343689334321506335058288892778317781845210998809881047762781358845054019926310264231423330774114898908116418231533532269018389165814784019709887213507881020599294895900698230847544764492832300219091681401139424106969840565970693423541960916452785942198516390305492713119144597084865673589090702445437343465203611533442954586845499546345030306549691514469138690522429088046209130744708745580315474269563064229281797938750162643663103033616104428008580879221685707097397274055229928392582494289917170595288852250956482354879613802313207181680165278147560045707126013935719522147273686187611390947787224253164658522479356481361736372946172127942603342256428852768870689042808179485423900299625646785589635030684575931069522821254991381874369746617672440018932733758450779712727990173969819408684404768155058614317772265254927274309960694099788104181592548682520039978352676767350625873426622666281508212522267033146578097664272950784492917431292585989074311591818544131700534098134912132695660807429873076155576645054882832722775855710477521172385119770323079417278344881630534295150599343291152061225356518483873533289632797134775313581584653312289411705778341742514189158249172491970891777490235030267295147883931708887203516807784207125770014253295087620863255894174749863822858134717286158733608421110437824981558166168462106163645628864128036133795835626669202150865338135370906863835812383617016106660223170499147853878980367526021001443513774802495725347804300624024665308922214406543971906645992668290100978574790814105854918483915005984569170971287233315414880479919920442918283318916150963754752504856866031448765328680050461635217508808141237709919155010985007707259789870242906618416257216125879888309306437998140074483832367285472979348142261124100629678983966334387026167388348091500598323705809499326932940583827858638885960404401962289154002059659148402620461647447529918257208659408447395732647360236354508395763026378005406328919617125678660563150216632942198333021138429436503376044639404521409923216940434967374944387539879182363164760383331531041958448599266415050075854393234565432731588287709660780075120074191307275166730687902875872934495304461804790920592072868375956091289272815686031142107731228725173229060651523649751644019578809398173828315156339158709892895357123253533592548445648509527003199475779471108949500262216626541197536355589547006647687326817556925013401286951840716629527431209516529940112863456090155039765849558387824696101213852334534008176266370014280064027350063911326414116500636388866266456303168625516823034596480040539983619148976525663363175929949085551084859067991330215800128128486570954189970167447611858907943732332708575239758162677098962346645688688338188317435030636336681741701500104634618506931637516905657145273089597623612978446537903733512968824160894927748170786257157919375750628859549830950048543239941335463667654316001986920312768283634337378843554036436984168343888142881272066350948955132795863500181567328985019316991700758369469200458322954431858254897509915392720788087479466591749697469592349821861870185552481054091267033535877896288756990350641897667668759299692610922641790709776307591463084886562191657774483415624572135822501961488386689551807762659467618717419148022712995077381821740203071160004263336959511748054430534691850196005194933159739437407871626754096954563603181730039406645247435387229165121502950686184610272000359074754506733083279017052116090348436361840672670942600820285938106139472710816070983130554475692254632554112332139839417863441178012206483977135505822293779248371094701343078416257078701892420845811017098934307765182574679974133116930894549383005592995531819293685055333414075991467142071238449914079908401153319779278541376700769782175341711577312983368292082572056000356797136682345075665056516383070019990800304852229163875905951928168815108275396205943817903822019476104395324427849084927829025862869198856354112133519130293503025324936117506421369569128742572513356299968453974864879635580593872156966733678419687882684152196334244903609136408875183276892800024192804019164945233707598886739870267352926757872516951493116532538949156523055418806857843295964779722091355210751820389237238387469165183250431817843799526365473986840223079499406282602824948091154818717476274715060837667886097267629363975839320826769182282566963646154383877015288300543041036414187967467541420475104827450778162704294514236157553906179012024116692089752337611990157431264323759443478351489636947427287044054674501648038461989017263919381976302044940160888320418039554287588028668701427741009856331829159084949276985916956789211827850294530801842119785766417252713115223005429003545811248411569132510491801109941461671089815265773704061819622730476188740035457012775835208760933484628170140888059426992107456346660261603513881439119847626008819949231717840691604583832723052706069628143320498598139698069372641599089403164219837279492457247885221380739898130474614766834470282397891183381223098599509760652887231411341670976081031359067546365979615217149831605402832408164295841369439853998186279307674980919350387057809353089027739222164938736122540734146450375262916473951019925053187313676439515821732867622468202480982212002171631152138587340585410376524447062880270530088948234994948071771397127742469832569763208610051002503253294669272029590146022826814604336506675011208517038434750494309205434673791182016101563221138673824861692847174437731735136901093609017756191972549753498980231845021169331094144419879619905809739620422729347989940598301360627124002886411451120585255854882643279706090469061713956365904055481183660214464482330273155836595894658283871851715618919685940519375103010118976067802215892725896541672964185926211279643399377092717332401621803422824399212409676909744960553278680162282680479963174992869048800432022156875570370384203052351517225810524575963005626344839203054568554175280744055098016543176950468108351571524927036674081397694325690931927384024241932229307785399510875651809636438583487125176812390594167016061409423072659550769704846116850758314513037794128796950767321926452880946097112353396486591364709657262352817694856721749991163768510065823786914907048005194018231192515759320414467387150879059316459583162144381100983987254626205870933526307920296887369738255209448154166045723582612134437497254789886262978684610119108933920376922323034416477778029152824459051074285295693304276273660448413025626652729118489460306410511460743844101165980821102279417235566243079907603920458481712306145146889533465887664796178026116019581591952058283460143401454465122160826558201938133585699452517852180861700517524139802912664423521552916286359499500285322824839689664724099032198442946367692042089810605071822864422651262173065618730616260095101319482023012248747061202408936955750229396350101073555669155438867578000870777409412787254839358003760724788396473443821435929903680438049882997491442913752865789115387127154766234137875031140929347159816283710049084847530946285656290027759435657493150028794456318232149320737216591717228417006977537688023856497839356496791833522414301485522944702440831550421757036856261020261346654807048651157986911292790319891817670743944150018135709919332620234583305413570784492310385230461089688629712369451206796411155506616341866891303882570986029384011084082405175380831746431420754798900050513886564539416240850945191338031050391774399664908706775007146502524355798019679242182434988758322860961403563606236694784520219623974528996008638101259606835290516204518909266342039141496233803722041841364324809443767773593088995537836546173610874876670402392551855865333952926702399346735159266761234962603012202181116257617883454898382677984307444391817666776990528694731186598217850707233842078922416680483380246735782247515693556455455180544615899033001064580490244806419557572673885928078222095649148769609449747514672952282022311398584427913148038136315764889401318943245644658477555128335444188951706904142146399811227922402268824483520598516778813332397970937268579894882750618630621837606732493683638751863379802454049638098638330410903040353708503748994184024272316168532907115674992515464100638252258629722541201355418093499009431732013190693905557777150700771523758923557608055343906402850895706630640408524885641232069267769058645955088553017394039971768173333379959042153851195010008753002411345484876527393186458255403179009591333928283071958446304352090675298604456202478406722473889696778187137836207286780600221515950128383512261385320729533386798885479711138565790854277693703064985401856075771566149558444731205604709013200296895822576365918031218223349361433685448139600546985751210376334807175823676556846041349098518524684486113267760300600509957512448813372126219337054964840842157525213055894624991247038224281537296133786281716541899202274394381880649508851682504260976399224816291318507125649145513413564313072020857635287921022975708635121801244038597970555592388392506537948720033728708059491262498880534989403366579995004615633647811559188437861356838093100241569219778841097066844451530749742004027928917534346787281748895446708539657205081811558963397591854157525895756456579395904102881880033463855298404823837001594867221328842043194012983629192847921825149417801916453718533021635064327747461316427877322578174766651201938332051681999329912787586270721215457221233138541468170871934373971907068782511681985166385801827947678001327981390572173920625237930951499515173837208209063497786893226279264707645219143343322648308389873195756482637121851187074190817327303940255088441148070060683831242705598379490340720529292816277760793173433334435893829262798430109041660498050124453737893292928170938914080984398398952778541669444104250347498707829131184841858138095861346202634890504925853275784584266173144606634869165852707865019681521776211842882058488398814701559074555622000677404593693087032383119176999353619843509657806879687554079668445563470724543030608852130090208374471556532222078700472228607952697892058170876862883335350042785906028046428845721490243483344119352961998341011205200835654687552532285861632650580464069329545854134294338068843336888089967553489707397099147933146408010457937494456649186158430258340488524746599314726304425110153110862032396712836921963406847620259634604545986278374307047870122615848545284007170665131642410746231138168798286101465738814467461819189707723853573090531124361334487819864199421557906404053522538605663515543835058219649194346190397590753410728625883180044021699039759827082428830740252622530651874558711067369958760719171376654797892744638110419879929443410253624669617193975647708252277381862845840147302362863564134300330510766564293427812071639667853935092570167497768961265434817951428762679918783647059718827426175413384101522788763945235019096791323499604860215637810730455942964789223098831335687552175555258399543491350204897992583832455816790757727487425941403307799861934379029045509286736528797782040707601066024812734078073706207071909448798402930129090494975343341263347444991651408522711490615472027482294716776020441440615178091112209442674543803210518888376264335988737997950378524579349123000858840766564747334217462481215458031224054982595500936692891452628759328207087752756273982256493034016795805562210069167624102085043354249128528564608865528868377380324795687074457868829743653726881053949280974243613837271135467031938769514585493133596746878691366246262595750712448494158905786516332347157159806328853370549001988831494686546471866295333322271813152536542296590590626623246116837076611631827963362506287273199875585402040862362244369748730936698055726697543337201629131503474920500972784315918696440861534903994535692323260934231592049787649164784550904976280719142846330364156941408645956106606096455044035109151164699404417350211746222705814112267220142526307780398212279550852273637605983487284680300683660059727974525183763388227812235875888930760464651679577903347732939479380357791773215395303839552237275591849619275150961476114547331785223569168662274625470646785910043588808607158255390701477009555138349361798596561192569882218832752388483719543038898340474673509707084430869758023394465348375501597384783205866213912330455235305065997207284058824037516758722514878324771459255697339461259816460313853746716121841563021162756896095568960961311695326119288153974402161109992592753557455054755796966646805799018451926437810902121926023214123327688638250659124682927227574881050453215944349050267921196805345855879929478857032086302517969806757872012878027688140503589494423869815315235179001329361484957999802478803445540163632015597880172638042272292045861967896066078584714950008886683792912626296573159756273656866069408730032323471487943687576432945550451890875890835532529957425881057792628931825825316892772422204720133866037796845839837366774157250376549686239335955861777040457050690183959147708352763371379929883802615429997910908007686701315547458590351614423099842882645182547766820056375823946079180055793851026731655787386513528020714036663418846540677201754588946392045980670961056728677330371105378740577971218191033451056807310955196225872098945172448003956148514227164622070487049686626345001376864734118918059639093110866497593847360286102569031741631955125422584080312256730836199876070035074172342460548666446231014892447558047780386740184672428720833111911891053223515746937023932292537567631057667388162863842617485470702397211272559571347619354057597141005125052741430692690501879637386949028269770982552861112195410912578330871218771310242289610060737474603056134919757866129992878514510447182184860040536481093830569305954967749216429950973269597916549970837796356645823338404028588964197566984688763068332034530046342221659642065187587285100242460048281501590685270735835071867455844119907375651100903175005974525395517071195160230283828262510817441426594236608891625335693004868608117564841364409765862709516905396741896014323625156040606535056140683418135997037393032469816055179659713407254775991683302700416354434425470837431407241879644849400564305770697429931011694539264467696765769174035808436088297402337525098641127565264635151884948095776837876773362771707961963014335334396320572388054446525023569760444152404710736553582975213202755192394040139553855243059527483100946807205623691447917966938885845594389907849755352180645581434629940278008808311107710647769623795406282786497061385022487911599817305659059895781818531783282387440284616260035046549478135745885714508718200445608294507545338335255965663609298776569345109616631477851862532283106394323966827185797601673225618221304628406673608262520739215351722945567832400306260791756391730781724256726157910555646176064367276132441845189424554039118447455754248993241271366721726234229529227238370102589025448744634935024652796080049357843017216135791498098050303667517078146245780012313565296129565538077659495555922271521199770703212127738827246333366468202834926010166380661833493372614938331802338970616472499705956661045380479717728898012629108373838786963226458974643354807983021796922077971485295478068573783654913947872491241752989683380686417878004203127583646117254813854084564967612723386707182806780444082248759593641723843724749536455110993332591677174636588517465581443972642960354284727910962237865305808862765363245927897608429463389333284688589189641045664228649230745724836805085204477964654284142506389987164518432865944591913794261156656619675733550508338036319936680051433756113471693873816822271546193855224605989805634425766663410366241975250615016415504377086275446570349606263105443456004075925414462282889416696139453351968657148140174672768887921450857983449042397754858454531319979610048289775001276621742137856618425843325470378005969614578060423310983910509969606749031381087836305660868381050628727702425613090827771666807198195252967908204519777623343355198751344578279679657304243707569226325039402611392742172320277140413262939754212945942275766876019037655799133229641406852080735118783366418157361364888133286487615904772987247974958932762702109580157826553178940074188675847180125308592821922259718244023376344016476923288420065691230783303372552669066472295120836454970396103275612323428351241572118639373361456989546478432943450244736928864512242491779856443975218373055320819554472892943696068230683416096799833437925011715583033363139063573018186755160475734275558812586263077541550538303422305690846472998655989958443328159324941520334673976282475521768396168312795733639477889028144173870376916637148826772966683254873824785010723915442096216777690088840423357102290819509614131032990465249900627612259142402858177371487410447462850617725968962742250582586339752594898607674456890398740109620146053087566390458573055153018057692679916313546441596123384670928187951592887739480776726485623725258488587229649722710131977971506646255842014321361400549781880723605389841209839354257081073487353812073606432571045136993994749293709617825878063581357560436693976163595678461069225779152410248140917502350273514475849337080215645153773884878125291599095678602298358441142309300211833518789296423958769292191500918505820403088585468480823055707411252436555541161334377223646670565143059103137759975581902455584136627335613369301823003700482372374841548043736595588597607443113238511319182412035028579832868840953267033365828333656624297579654956707663764005635587968379246699049489836536863751684736943918195526333908195992091192135286310776897982073497161959138077662036684338865112111787604415178907897719340851809019295553260505213320503699798980789831059676798383835010715168958705573367199833131087631224495078305733147854293642795666044167603510968241638276342744835326007197166438696015198679548329246443399513836997346001310279575415862341098363719729651311108197224079451348650254368654129060958270950463357362626512514117810635310948649115595901854481273168059084212294690497685796676396480411755784131768585460375369221332592978194319418503873344766491401102755499177420610761079187835894529448113675537083603806367746151888050321367180060202763397318986728249369945323819571173388240326834739119821643614335555728576586370912703309256662458198516903453989154048964862850163455037877185363863701116135232136673073756877940311196441143733881936862205873576325891800895671380478348418341143972830322804832609742947083852510311550577464017862363496886824148574851302975763376599213082902547025206214278162834359652248803019927374588752138046825314844629524113607347640204898477411341842752186226695465259252318057703742848703175863082072196842924330063998729971630441265813687939811353570518021670877409929863594722442129077040149436634108304047409465915372407599861304857571100766760123479440927175358452213179936782974917050927303502786915654997923366809930985197056800475444240904634597516978228367990839794453237256384625793609939701516579118567840565189736977291050032933761692127635111272052388456702311144876801396367427791099731986124590253592655085110895171535472409954891706215687715739306472986360785493736663827678071784139811598188084165042344592592494789272820254545891859380473176637394819668462010404091090937363097951058193435035877627683892716629563035826904207873495801380912347621881846975397423959493637500059409808056882263259905060058339383324281455802737211969926548662842233600537531551975762456920136325709938072602699796219069604640746949149046316566128654706676270002416391938274323710956365135545834771038667484946702201231593745943246636952434604399908153740145994834534699288556751606350937510340160934610971260367569273276381004153251556722253425248513514109820874821356821003492655713032152014163073933431556438840460458939773265352868431763414017683855301904716960455373751514101008476210888354080239968064407227287527193865088338026621050084729780719565295352129941332546735151493023801856118222348558466026632411577907775204173624698633427966594111269251680213492698282419289245509465336289212512587821116240599991503107122448636038668373174923515113639949807534555664074632175662795039195116385205728917052004816645686406306278424105827570327979564114576712268748510714465616931638516610587598049937508566557012592579210107755406480039693313462906144309336243592758561436414717616046324574719263068870349467712692299330199132954070917020251927465594045401925030803057325702149076840117121953013682918148587636269209934631614932581547761159638219881059720471778638419550947074828416516692516503175314230953029022941134409607962027907342413868681120884413500088521603835992015353892092928447863012304869975013844436415833631751265997374828727195524003171357315086217743351669779069290110045839010935093143721752973698254174644631915913811170267636773401422380739227338432241995856699607575634377827388501393891155480669094364226002773598090575895582436701270076292353108551228602792347318019461518714036528321859345987974653935450020620080600314435334468394918105867269029087145799972914973162106105260447481249255904783437128653051766398487976158699706052746929988378251673207950726619795659634173183162531183985355567460078900883547015443621282410486251426639094576874822256502840380049635602987128615431758033653924787526527870855057279256575113586909959297996053210117609293125705125164013122481394035557946932422541553653475171176675891641936412349753845332492364049084526921750217592286818933358214080896963289295218516767972062384018547781859740751360658486334875151596476703642178530804509775976559975667434853664596655452579309100535715514804317752881569781549631985441468179011474967649728698241196639187935117990802125183571594542094465724395444280154839080997680355597993701947475505430647804856056441548747648450394141922079484482419763126750756077325398260168321078784393506954996397252810206081713868245194896875608441532508736770717173841676345910519657281052631144051025070182042033273498236209610071335159213094246357791578908230097911707604011788510646121457093544295563160507118356547734905496946214869710458812849103369115874794070980523454805648521920968930056124023938228499820154503896699008613099366799271129181037353214845011701386259652209505522028931377407655703689227784888761826259089981337123490478473130235879788640931506064821507583016170418217005141068639018466043817426663513122686876542896529894629346779224650455446663394908990713386907739534265184650343622814990159657750484776919521062038984032416541813845712612592234688469137865529749508842585207366156702232298135541176711033776324544124275178625706426701720040581407018784635790909779310937088679913543974138306964944411243830299837590212828486939749705064864408857598169514973941760660705795280775631655700017509338243870280554320496825990327863348788783463349265032552348944641458743339075625322297684517167958347945104412355674580830214204115055379330957377805766344067220314405780709456647362277198765573861496792885726851330375548514183502656084666799999039428163009423634495288881982453394126482039518439951973359525459193355793055040853787806563922010845840774787967469086565613954669216657081088414855270808091570779708772763389805255754429145168502528505354279498889785879552041411658835362226697053388072080338341253417491237708473583551389473098634474642993201950528381430526082838263465481422404666894629720105432486205827122379551156120564057461772147700288133146774349304948796066040461321649076344638722426623887040852700925841787258313159621519177537334904993078851682723673102438270507854727240591709622100419442856650144431524887610935247482946879753447085528875753779430548379171492323004901185918060728072472814069033414757815229152905018862362913536461697287002389735384689146713129440931845202358896221288580150475921200121782007810913738784307047519851543166131652366611320613065154311712116059157271148270435601148369937381622085958451607262499830663336767597380008161160314637011631372045066601289839899373255525673491522892056035926569168476140885798124402184276429342962566348523092203698796099010983427315310409344792895360188578168811187832389510675986909530367930438636909087767783346101080252692667562968116308811376359852071636708765533741438928003019582701308293453629327019847282441155674016146120983713073392010599265670818493765317008397032675807960054709708373705940297276768444796899812611637427378878186276748058952424446885078734923926870524666720687075918176115761680881845230562315689283558943068980834829141561696662174897942737713091327863052277123166591179635043795049479378198522313659179509440522338543423741973356384957219855384511800846023275018940199403509083357620596999539254997927176451275726101297441882760316157171225418705653490069045241263740237986385226136016815265565282639475397788279282864343296009458455736592272870471226721892087682851446980947881568363226755196819417745710534925566275630771992861893702532887124416685343608091696593807683649178506871427488253671846902136733465574630446211214786182738622926160222153648599674854018845844626924149143324194697454924185564947495070777494599841250275454008054698542452634801752058902142221376348095187227036142176166448765258504822841412710641913802162909293891979024899834314565290303694153131126057467545085443822146222277794283119247630664440091277363452100651878999423805718032026636188936750962227547615435396002932467279045739002193154519537889677339376887779782858456848165009518975954358871677595594319749021653114213662787549029259734146651778737956390580769804800839043818741723071372362403295286111767133527954623814853643235824802582932416826263170978084281442774141125022216306940001586164506880943866241728926280945248615712370345928720441176395233705464596376652296935159181390509958900505651245112567822123180010571683861178736261627715018970891620506587910719129977922235859775782588844552644857825480032873579985497392980490334785945659991828361362518455863067855807073374833531419329059368799048860439919625315789689376338680761544234834595868766131799801709572116698608789670573650081308696337445935086205802732547162595437186932235418315638516905415302647693320931346127792963463526423402328752940923207927161477903453688936812419583088482666386387486145516617550175372879374292162287193568308621407249775466015244604407447174840647629415512650930948329603137485402744742098603192239419046187104957568666277193402984678382655820318038902200261292492285880647662336157930822100266949438713520842643372590523493859125378376890045080386715478881469648516318326190866197039938276630419426457994153625970626439293934415466146310906495372791181732150679080936691609939561672957181455769151574011463226019493793852254678466112648409132123351025802931346746600087641336665157861304552537703916547868424562523181790777017495047929605516679750624278219377952815631073164172982036847655084768358961364045928096947511858354267456000636080745062470580376973300315184397306058377539310242230346285054765350727261399170322970491384645080260188892906407400182051633513876017561979468942770606997983028788035816505753972807425747756167638651217392518102592011891557411785037338256769284843636711318740154772609864305523309382159499239008774931112274668587301585499709944880779738584819470177389476716037217195257345212507592123708719605288610240749621835639301994771762051929858704776221390559976104333881970488501928337303718872173162778304744074866158127060432159334123365384747836640094591396201740966521337959939369993531524574566183565117822480170219027239019114039826001193291207571375991073814603923444468441049702419095309723891887436196549498141880621142928905787987120887004080566011145656341536797640910504703861188365004056054156051745730811873952539124259667452700229023399212392873981944949323924824053516515641814574052223307544152610132825726712319985626461275361984487338535361298704826093879175322876315888427317430413126538517422754009329024577701565372298371439709847812195684973250762895015612067697261917659575748867319999714725231142465632328201331227262366514229114478938143991117965241644171987647933792239742887738579583508966187960168641217706714218376587723530447376184257794784601386903951773842378678328963260462472213143593234504740829213490921784563183615600909896552251948392814457440079378458221840621417601647493832234560473322399373531983821200795371870030164292406115195232608743701174520838635553304242789428866094524601290852095139562321852583660198205366056084408386144545883335425407408063725944477654612466946285101052888670497603157244391318749766945004656519042691384228845193060985823421891101383351799279199810197318741778134886792071146259790296151265364829882672658780840189010868117470003257227196845132313534371935501006397735275115193383388174987557159620762665575033324635383628804176731580279576152380887697582626854992941047248888707471745038662838695780659943816490037060102481066070555954809460583388682474194970229443077163117077708567959411983774428792068006630405380253127798917057183705928597906771851609062214405131064793866710333076339810251279920195630010242534205799096465293049787240081342086782587068667658992139877802905768007525631556272344432253214450269282930359525984864609463965762607204486344029912363744998192055243157385455470131631756298852879502548938546785293214284002936822385341111584548035381026097000987041877825738848419165411729435310719946284467356380942249558669677548050620620656464406637183126316878594604163176009433090497093482129720168534406678615896954468431120225637412521303436581267237212122093551868488956560239782026290613950283889072228725719034409106771149823613258876964245102445852451824539078833033684235598537716171011400985421831899582928142813933506961550748068139529970491082606004961098592561579248150726823602736120796833511128652620587458444619701581713415196499073547848611781841593180538760449325783363481711747213825795466162145603611755863426337465975158360608966605107055414014574051405185483562779498493384963224299320081903732104680372435327256033539687829251246415417623988686124949068079609634994055418323427002015283298028198569830346254105315306706487492741720433093006065101120771501546393410021228040454400839082172315054412223776854282716908164877257106976775387868518812337272626379553034286357016402788808563994877316974387890843896165125284473412706961260361079180781402307583444834507856192346162025889870992479807838786596107103135833750013368428076799453916778923318271747245052318791056046440891424238697627265403676824255699920471952618275801643122900929117624196949958591719585625894414565950996991565507729314999369687068955856333768897046624481875255312006396615838814147046139175924848674696656132957630597038195141048321527466994660155939040802578499648967736626084792587832645265020927641612521872540567128858138780324585497588218617816141092379016509672089055959596828398185091536079689773490018060864570098807840076155891192215047526026653088510608617769874008924757932995834789673510883602630718360035449418272042633082418837494803766510646894963267175064833768856943010271767156414395866871628350296450862536044239298482943835650649650067763739886772298479592472783508612027985215377906014990968420739695843492677027819419399690460763238876139541910675549834018934444341694004430593987302718455651646503881545641326489739705553377558193167931594793947320335544553093431935814954746468639999801783490490479859464103481041262955735979886869968103454406810092782231877576630628524176685200176703930861770850463072840703828187123336946041275804514978714585243992791258696783475085655802690207353358608129188078825745222645267116802783706483032505424307286355198652128271745960959046001465589559530471483328454943313593538115763614470349883605823195144501192727922002496244533520564134329762718811018692981015908176343625003479386846595922240144011724731160647155005895375508760553422024564665419292752891027934273958222648529427255773411309385353001191054793554279681788147691619761540138408598746289218025513088368288525961911217842833237041468317234693088184009754239629244606226208643958247895043988765438358105439067277845571716073712416317325922187665105791780485145494898221783753921805067466704271865637542707667162056857904402788941021013426070592420914390554160274068753852252919008047815819948003971611919768119292088370297766554419948206352809853446704860703546741202458425140136352890460001258536045422640113945480840270784363158484403919762424085250570314404478948627967277131388951398359307582714265710664778693899342672969686602498370589543296422578446523751911815474990236670114682748876630026499232793286643058354284135594938830033851610204792059722050619375101278215203638791225760665039960645501541939073063979565174489597797558565723161009176267226249008582033764928455395998842179788733994790480103031592251522885283698027132359737895617724763613912194563356510994564111074286271147264537455588043736352865983371086922022724435513217552325816401393562195246631942156873988288406481088536656492792608211290743454953023193467402742056164443681176848221619518650083602157405168322562350814268507048933879961518432990417634375103001578017267070353787408276222448728895987945018012156546013154989436583705427310506395684754136111902639220068477876719271812580716121647645617543563595682319924963874678950020788055536638192830291804114755068544798721563090130923118077939206530156137892208043762253267587323913263887735559510239139054102522955059429784064038499392540343108435371916487736611871675897477438305960119085165666658680314850552386335952847335608050377851870447422092237168384322733176992612996611336932449317328513380178220232087526408791110915006213154229920128945513754992063374334878402304721690570434242717504532253594767826778191811960315450150475972001372109537320497660223475890013987904883866137413539516295268072707420145940012684129319547011677729828414549920984758402913258007001865177414268288453624624830757426165354907156579692946887932147867827175760534578398796973960633988990020909184208523762221178835984127112990451104000260539249284950905290876272945242677180467319416772631298904883894943550082813101556025072117158093012940754893204887220440911994490743318737028105226209428254384809134659178437581518325285735865069251098889112175584670096011359715845512036513513574689046765228180720633088889489138823066703409657945456138611435272454863343178487980940708316205743242435398015322169678332789441881583603149445017672598163509775307848311767654186359117346986311956276776154298355657172559616328335691439214907195233042505419239128343441859898403443817285193218467687955334032439143206903528075440349209916526431836390094074410601916728669800572827672984709551318179148636818196841090510053161914361473924358355934561508682990519126687399370388746481836175607667752089654534779519815802016732922285032805788318977117756459060744080140129175872907684048929106590684642664771845871874920637384464032288041862532511860099743435158016913816470510487118972118794090607123693978814716784553174633979375295608124569313229197282789144706831259188185924569498291218705560946879064835241368580030386674470801199430563959863366474503452467911261552339775002077573768492681469878427834614708198238781098198293724514184409678597488495996771392863877032066864876518941966285620179269738488860540827427883235909870224213045905689824205327551711404263166276325155007558334054372765174395935654844073944466041928235243474467790940500100907837274245869053987888619263476541405425378742714315593753420234112813643577273359089421568649820120913286699971356824189883116370394374673906632171000602360673794279300250764069030030833853553472986522825302195808507191545288457197574029595059193957967968815595653722161751355186336517650424248356944945545067840839522755887718306339859696361362013009875818945162955383852552585262420418657038796655010921084220134622024653215154373180187359110795327254461236921034056318565917228384620446791501354765243760311542491926068428724003454014972188239273981995914423746554908391472116258855369223410256034422414668137838127187754652451832717782051943428081991314791260952714881009415667066119538738747808807413665021072247912290662823965552836031331051619404344866493732796906767110415486972251402170667644414938200757353106410770602090645231203087658987394556679150742084590026645392404059281642832476397672137227183291148263683747294215985914219102925652376169803765925267299313122690706527763828595345866601655001859560315005513851279763727839732126665142763746712780220598413209232391909557300051369939858965658414135328741370122081299266896296832969642029330573487248942702168396832860075427269011726759272618086002053710017747921289035246476425661212217583446858698715148909331337882071734160595980101042470333325968412136039398803842038209995332710784949622236786130664291506178610848364489572121314527867818998700667466829544739031205845835922688443852506495420699383578108660040102789783711027854613289359054782320747547697174358081829437541901791819759223225882600142221296631122664801347529698236221276246044902782549176580564785903219707473097869231789415121201860473034640785594641972931494859825807746056527098660889100043300631933461776745935754317786373495636416797204514233524764534339951750237263490471485806820699230538036057758138634232951666280187599998973509911220700335047986390161637517558796486032115086852993242354168290043179086305858214090952477498780105480999470966487680366560654536462536308141459837837255884033469230885481253180496897645540673401693803800721297174763811304414994978021090386769815677683127626012188262199953085259182688026485897574722119110825236914337493837651112572905942260381382189181584370045528371757252515570519120782674110675896787074926312259230570292356911180697738928561785060624938772433492826824306213773534955146315438813946905150310018508544331143003609771139040104346530929053575802404107507798229931036661038967094937811511168667678416454408485354250221693936457656205409602987874660628517534649404518751374108020227016218261754140329353632983782146967783379218938183949463115676269337794944593356689526673348031602883576560698515106831253875521438136122381974221659408247824882887159580377722173723779463910048549803428739226080811538000963344288929582691962990196417652255619120311682255632680737193286370946509368723085774444352678689551749826461509431874671309104626731082944469612653506808065550640121556991312774930260330579266729531587012629215223342891707087703634229500578522692275230576345920571811831337942364624587156214717600655262068938882347522836712801812751302672954122126313396360932031202200616080848918374887585056790810849719003023481730863262972442638926613725047487916765028208020743905374507953227878024343238588117558025947641726815157600590272568987040826109191281564116139485247675958851227214927724196857197306665024556086852259907101380357458356121128275934630873288374307704531693756519447129311495670098274190666404901351477619783553811635226847154507601481145760430199213752210886279942796008852049638935264663291297065220406086635178308030968833847588263550509458881300245537293389989937022056214468412609371243568709574927412284639870702569794233299348428773248708199839729649975545550322903575527478394316003774451113377094974611172725210586642378129105218937699007904182251144892942000279476739433307463116334212957444544506877664263422308177321912115272857457003401788537191133939286519811412183039377629289350208013270754324660715009780540248339973402954592992115134340103335315827360888588254236594923503705536853150764571870980512937680626298869969714282797360544167569994834842776259192298040533500662642292541609885622834565848217645793477272675234943062930181634859432275131975563473491358480547054920313518769948072046600248744224277024473301321156943392049635359962280408189121352661195272366134857303584869425180054419158762054082725750315875738201003456028666538151160732658009240929205619583685699143296626192469305794949880181733538471727502546429855139171754361469260011958606455717404539863238072954214614740723837406267024735490786163001731273848970175922295379403052427726080296148199782376241229743333885870190456065743040975485248940553532807020256813341613410252313672356632582585337182595674638123611636501324718159292279418864856017349307692990636189641545433732612307886905623917825854174749904517770122497432301818586138088549403639891564364407046037393308699660247378870061058871138630122111706987164948592157071424198373102966668447990272387949923747004816777943288148939865191640040416128822861533311452065891217326018993116663193590724313043781634683707905683856523811595418020102610924072524757604901859202612028821978832586160306314712905711767427392702495379827062025315234271645811409239527531728129941569776093613329294062195916019775912694894354775946952275773162369506326672417144416051534749813354845013190681987496968192795728890485388686177789511978029808226732504276456850501237039071851516027746799110786083997458036953838368565596147242012115726069006365376370076948309223918804443298385067731229758091430787601452503649470611349267144453322385223918339077356581765270526070486387380733028047831101050699238079530510714108243147827936491766237818562995201876290935176288451599739366464759219894037866115508948082938156466852058618898086444524393661263400027673657333570880890133788516183521933697324174971317829299879543024301596848124083863984712875380190365143648859395334239762353015592898290694855225117017956733751149309223716393987506321561490013443697919481746675097762011586071573227741493676574027418354389752539580117617589833391881554298398237011485185996009795051622409041188990270546098039821184947358170108227903434578089808611656725011874514814319997835458806473633460205913808311620077912948103601065997339759264942758435659536617589199531175454855945592731722983503361121600760362783911590039803802063656949689479959399157695527568818282278439642161018728728544234476303299761625073562170137722188986759476664604181216578085642902648381078933923939182084506257300078268426743954945281194252086479136980238592518352164605072137071389652817150692346096975865430161008665569688891713302162057585318667918479337379668203483548018426784982539154764902891849405153705217694502234658175304952606287828360646525438200636847804585923328375965825829289603593989928644284229979875468198103928342521421535923403528935017934069504669454550579033014121317747035510922549414021169162739989799018296797928247552172226031898078486572372134583851093514900360615392439964921599349745786170618873514839241095973029045067201879272041766265113334042295025587138309470059759224497101654882709612485248866073415256410908181023228108536129960863342727555818144706263339946911099886409348739314038275255880674831548871265332272518615529651166167262186481769930876028621009376949824307420753973382785372526193326972024729186946056493700654010612403258167698224210098298301337479729946364466037143855786215128796973943570732432874618635873673546814210298408498858023458282486553821936069176738491116695288402338366268804631300844899288814229298395988533723628580874934711905171163962752841547838571259362819799449626941168349756358254609974025335608983731306117720433168631698870238925361157471308165606643316034054488074917600793415101792481355217588544977562314790320932125063246766459174896516884315501986768478116255252604072670688583722873494510626019415819836180843101932231022163034538085730711783103159473668285050297685101466256874123201272528141010733499386590752527771431364420671307165348578189514938972126817817926227363253542069776285295737384306187572428642039848561074368647296809688848273578430412305215050174108378401154010509249877423994940195981107117018559801177787309222771015399246834277916749615902465588220026696632478500505362711730506107090765445609078472735197166052297136786566240020122633982188959469010294492331954386242117405560496695755890162049727498101173721072622389788347336580330064242106896085308469499611899067341801668764040953288932037274365857892414426578062263834068423803377050713815741604534116266210113565354173714489140036773330596227479146556870806883297889935144579035099503260433408708413983415432729078275003100152435171840030607013293849674246931912750035910042273333111988261938487771411789540810796056864311396709065024260051820905998928977419679971515740419589209785824382362411062532784398083795797561658206689922866973117933644969554608183743424379771727590966728969596711789235473163427895356096693450752576988086626095536794898387979655194505799628306742902248582756159743539915763089122600886517318673664159033266189937864118784708796777997145068426176618060859792054938238096708583219839093678635766258817265944870349762290977252482847020508187909407929978237183235165167011902750879796213751681334320542551790401303435814974048164812289318915190051862473887625747835527312322655806089128450949655290592065001348426956284263619905549552318690550586376300137713792959253017384068971912992203969921702398018185909388466359042965267858953898359153152089051560632680589317454074401027549716827445295450685147317966905953273504079179334073883461855256212626314322368101202642965407066830197138265194263095415937983729308414271859423856345282288860004932682266697183513117942165156691631854639504574739284304871621922597199368391492974455349119433094079448845664520231281113976223774323396462729831867494953502523356423982031777401464737701555913864828204507097877276043267302698241320436956943190622245825615232162417881227386268970644840126449159458479646051204869229903250979077677774653811964785350340656215320416522883285069944380851705449260190652921991213177366030323400245948432873300403021094230800964603754020804782578839239679538260208880940275442552146427244742536415566776065258685773429788629481366680041000653068563223547815732159706586348031593074247201000216059697595048781840429579455248179592451829403640492817425982665315608961832915174404900878978167395333852911859567424182380803398313665795154810064598899556333132847195239961500806029349234446407565488854766558983091746112124648260618185465531450745392928656898130441567583765299974894907511282075300438924244430777678433095984562383812845265616622029648597511111979225702301958779049665870194155720775044298658418466208795011574615994368689385696669110616794210562241257959391829990364408003803851744896539744854312680632688624081693221454622628497548661918544329679401878679378514584148642173895827167376459602799662931996472896367988929899227638553004543581843895454210704943688426165834376591575598191625235478859630919305888621065944510087358572945703117321607697473731785707878986610190413735337527706965814210426989777331728737217273872631267249063817072983720218383373054582448821084433886899211901571739628813685306998677711728649987434764561273864107762169955148480148358210872065329548966255572843367527043806909314609510181240449111657916279555647614229508220763780225087030138905614600213467833022005496100521225746825698652748201975803803924553700827111912232029097181979752908382937927604916558448017585682864072930976197849644241567220397461750348122114336166130730998547386898432893142276752481351048115373757800334566352961404073654416948398849502531212297934536321475550611286156083612939209596452856711582861660274484088549993026239313370034707589767117077246508612413238105814797962362090979806094680901246470901227566126325529267505440149940915819173210097756367117207575102927850589547716570607630479896590932451723611162700138976561963261701375024328248679003174459210389181233743287786234724268863646307837466715230759134913662266506094897997560349113746493583679203925165283770722179805037624850847647328420724458222843882665861366990105450166850272289751040043640632291479182143058734564289456408508789756299873721705061683830540121836905171829763444266545965706222389412103247401434792043281853731975804241453656617431014213209294751628123295645253902078433771545051727985420553030393914752799273789933659947725893959052032370985439852621430857190550075171864838088708732910667208343946564071959297078471209106515620723395062846145746859733640905795767078442405207814445817733020257362000321951793437694450134738928207550188291560074466746274424457910203176243010826489363213962183750335270129313778171886012406754894734613747896812370322232845842246160070958120379972694192555894106319024650784609734999410184292943617539653349051052421223052858164496728223174927400915895146735024574211589776746085121302763208677635643147446197424997059437666912800026754711325232112594022489063855002736527133200335553853696960096372911460191621877219104004326693382409647481374396773687082356757735445584483339239886685071600809857341439520846411174600206310792110182844181043189078359473697587536380675634857151529528298650375585976497487520531147623797163355614447431356509625821951011533359665159191964995411905977515999498855862793520341941906557554791591471556306129373723043676998091021488044602613502264606617541187399479685981916879737417568517892435283647576591749923506331996960400107896303491420565088407032598534968240097972054735497606252779618359963951420340127254798036279097865257945813128922128488980051370510347052730304814007705055119681526062943407415259176600386065281199428746943155612282248230785348521812300717368029701098651089552336990575161309108542929035684107960084798247718372424776790285523115261526118057435626766475990669059388690572382503723186874064122046172209495622051956353155607842091023131393976052399352249840487087935907513946312234273623855260998516354171027503565074318965030418111895319131870763348440267604063958698878231967859636623063925135535947691607083707305885845907149290613320622522079221537128976043071585687939082122078062436414695963804008018805450594777188402482138287944546277150680705433784946631160760044095299653882443099545552277997967940160496816462260826641271467876592158894537674915868276136290584893437202437698354989927709052331096772429001754871553867631685803308531614254394089738824533105624555777211538658750123204189311415585210043850924626081387037526423341088709498223576902008514626925144360669626495014204260065738552503389135496322196937799979282441312229943775030070623756186598557714810509704797936340266276733558682792254399551303194242882570085536111973016845515890055557460079008549574289194300265057774014361401888189619238423099628921551565088206597415152248515109745001534724334278560623033271165146744274340236742563732063323048617464042721258633729193000669316513487459783575638297727963276925133235361042593901290254765194787126497294312654181425922533230537482899949578835298654616904919684491051923101650819869441538874917720414946324425929768584266037232642789059660232826466603362806625057096600630493035343559156138235467315376689558664981424315108996043385184859171659359813531518319599543766153078389170913918687244848933130934465020379097655064510740946228996407953902512285619217664579608192361707105657001418604722535424461172270952771613837051521704261920054137568656469420359636020696835374111556115326107034097493371667715826142877827783937240830635611605437560984313601680957650066963508126839147934052245485486357363506051370827542997154223228380277887972717867481502308188430696633817807334964273685775548621313672815714473418058564541603258925481429874064371705624461918654049325551038497484504145889680758926104776670680492573662043962495576061528204851258845650324455741029779228371001701984794330215621427755609461870538499349765535443667909712498789838416475840063362375770628074916550791187945826104357568616287488839953563799359222656021357646755739767299839030771343313412644146430993552196173356450461822522769924058152655347899003006823414572036281610974732289878897916957501827114949865351070400923214613581398584536379127231695318606972069968208565120231590343474130009852275822053463914257991179425864382895382245747177310197154265326207662188106209438886414427887303394071379962367247904705081324809739593744098188520288048907367600141569297185124870042383915188103207735201452515198312489438659971156440917360730143724755124254337305828334594164681728077566881922828616159770414770364731156449896494805601665294499573384548906801895180799589327290583054458866887651657913411227904464345388741826553470323266279816396115194304987492822487102128978578893809103853075862259970088819588550741652906184841019275699132666017217630735129565908628017652831075680874117436684097569348495233113169214574924753008173599916201799814548003919804597011631311679477853725629763617179283127567822435500120233479373341223121182984282741877121794376294939878281557304641358200470018340474914365986279144042043298149567600336408818955769748714047052959425604518506654209060237310024334005462036840912432703207132273533719418641912610211752213040597624148306924245313341956976121555544573538288003399471079125902857860094475542422714085095586202215896834989524240872623478172182547281973776099631529709460383608236008280982426059356885689621010800926484974197525124349761758973717824404431195171342067146617499549380798547611204875477901281093248357849583683306862577998628840723580886597147901728277229956088303646852233984529875503539176040601573151688282031519556062964574991839403311460577995372982353793021085483632635910423012095955735901647345515160386297023766433295080375175902298626936748130116224636114630012484580680818251324224198565586686243948463502787764732182669707988764976759687044058605932106307956786635965220117248170907172431365086004294340991615717100600062942525623391463807066166005525206319180987068601727002884194375990368502202960135396316918297261753874727063393293892817127860190205023858604167138801303365183623112508019955761993087712035640592312718933175713398039953720114599736145451538777949096530556131305089467365194075532125354046438215716114339300071970850897819789551130067831269620199554810038622777270495260769192233202204613259089261479792524851568097452061013465863099699512163107146472086512867304198598261584820614557394862924871197551406141721878283073498516336850096384954111521169349099929702426633857815470837462254959394786414837539931447056734429179169784068423990701211352285872589118447031188739831909203019534891655898404229369501908250333855382430936877871793000683194345379791787590215029989079899559504153746028668956875590158155020157438578743358279961539002637005786403793884427943844245514826720684029599943724844329646484664947148258016942403864005395947912625534034543001505074781971935631626265140905538834157702339320999734271893792410376496462406459399819050882435448254258084544492474919912579368467241665566628169148492272574595411763574464721747192596640215799936493372761030736831491939546637795475096021570299654828283187169727834575588304984142414156942489850051934045974817892583219022155638119912201292488601205336936461261201943643703831987884751320072392086094767747789526602938166566428747713621552742713380453194023515623892438312116990553816133891742564725404003679468002304827466484661673118565493574981017008214049295616816207403720573934256175852504790106764582542424843054049666711774435869864725556503742422837770644500673716505555229882967987056732090389133752357625253179154470421550028812735620642831593522393965311408901354451581924480458765668414027429839174281891863347758786242506454531245806124406398669795876164240995283654702550383175858008833984672577092873480974417832158924200643324129166525559365661306827896051607831362109737772081974370500898562431859314262294412097261222681786232962541526803891358507745020267810223320626183476511194809454838822579427506521292415413330246479644114868615772037355547533257425646355047928030691521571927575049483517818449964278897509704064908350378210118249870465500556784691707700810362548599390665384242705490737945471060190192405158833611108442701589924168598471429360477616556866426388381884769227315391051580635594238242214650175326342399319161296820696482057194402154317962601483243667160994050047277949358155955369290988114467952404499243126376692230064372250745788541464586380852933495624952256827136958180297598280564057313083214047085868705197510767052066624800251317600963708783735371096066033428324431180010011619286783504250437809524536562186186262534897931956395855625431382044503302316921834621494347333440282966458934281543383076280081012013671965222352936995736618868701610247663863099570236927519908703382276741595388392009372591726611239210564477668522855075666263094450082402405215792766505530215309017681802136291596055065300837391955501130889022179437971317267790215179969754036362767859826291490687721912223974330466256711328768077939943210041980560292155916201105213975979436251236795682429848776593850268462769948412983211880374985005175241741622674537819065202987770647945966549574735499942201823058398764351519082631407792536092782669027238135091110121654543205177585682443939543722220420589269873626513030110405234008082387435731497658974252481953347433729939713363865993501874374119163033954328278462863619168040186872840164262225771108788089536845450066004580421440670120644361899041170390809606525374420313891001459012298065743487943925311375090561196855594541905175545906198033088739751151555854457747315919011820077083804349769684495570290309143953750131287208187037913660501983625628627212617279514879429851419811987080911322469017147675971207253459059500575643569610220261126536898416269599258936557355392634145455180491892402212215833198990642717931504503609968694260246026799014547132379309364223770121233400598204858528421585411752292074208731693483055087704356197624875077891857199757536418664026768034084667125967546567992012171165007790489106029963068284798972467136754326741968358589070682214354011776008977153194401282394178076025821433039059407562233357776866678204641191026279139231208278387157184774269775778664619741545603846732159019296939750914034321131413447086730205398065812981290809735313990735115232199285186918992885548847424093637752671600142259958796272679552545605410529916964215405118553893763516651305085036188132203770145234329087545026563800859203106473416357456931591186191029122538340742509769149426354315582860478924389118328584957830320181548396569285242606178533732019964794435293719779111415140653338287619706265429341017004132676099692083185532930158840997281684624889980588638065385067575950138227909707464934095832086088263011574742012483981128629515793078453983082257985701341401089804170034248911815208364721975217900928037066553010211275880055063127186664227984675207532845322656280650285675996406199800230281831718817730954342291935090696958184876943133576107966917164261747565535043360309917651010419096896916011023984917983542729288702895601920697657483382917873398344695328583069493719857702649813790815638208038095075926366829795250822236778998655342892476926476822689796538910648949809079094594649190941152839094491639411658786838705641833250990723571940579597519286730199895006739730424567632263684943327374208427716455195455991970283749930334755738612877308319674605050190865052119722704200462212867216511952096308917209899685856501029843490523229213451693956149565747073488031075482109248758996800312046752012397840697934673333037836031683212762395408167298829323028148207967433228025478196117123981292326670942514931782034362868956953437419700392013985221272555393447941158867390791155787233887792088100511743212714481502461828632626326396248285720687150917401080379312006179102912340694790742460984169699877436759557681790079098883328775182289256539808262070003877718055010246010535559992539177691853685366495899549539195518107356758448345868494381622297730172522357336331253662328491185450129857573007990797174533498381376359397674122617076388832929280001386808647943803948168781308831595512253991103287551833580842029581623592209167521529212106098744116113750850495762114327802839096779851953221096435491180466537296408992945791225585712978343367065864625094313117200419501008381683254635370369987370935703744231735168872886301012348186174726010899811030045457234302136145953045851404657087188999862118120875162634186246639547823249297650193476534195800436539814950245208632802669063923484846786949133649804665463755585227627752215751491215496931403625297591520450684342367492968646582404901450882532595475200644944041917486918079557863265821886595613466682931138365800516790677650432212562933515442503556452731919728096519056624794747551454786355709526612032802490468413506965601957394570549402897364259719744626736177739550381211871111538068581435510297583995404323521248964499580557372175886659074332903912987493331913355194841677827725115805011353098428073353095469226322594106984919805236493852269353733021124338516068501040643195814711788229696300976245004609041563650580709928008102294932364762163498020461840294799639794886947660747318595769872148033985248343908063351457275400367404086113071897468552131105208376232208366055142019850984607243415284527265531211327006663343269632936588244579864963080430285633136987108470053921024953245990556961924883026343837202214619778049708715607051242332699679457892932556325710940901584601662882573583501804717873346724281590811807456766838832054996978064413009024379285727364225632097851754965087768579812169522157842605035627328617512682382775344231703394620168241904669187246263379107362079419031961062583482215488767773044751891429260834939165470017764071694143060847096685386961012441682263249030462001014150641044910961628860948976775569958900945645453979823714011654291506957475696742367933785424934798901018140940662595765725637373015462326665720967522590310362923492234760298098843345471334819927572900284980310154474949316796511363773159607643139228033032039447782177369864344845484313541617695563166625740625678548150395126719952043880305255301665335410889597921016341493968862193306276893824422668031994586191018878378879246276459019383571046145692753095921991218416186189029763005816568477582317776597875267057023177871803820182459051992288408733424630569742301939322779016745089787855731191466918893387367084022338765663794795292592352211229694845071296853210537016161274196687989114078110623554542596083836620034676324526839680270118376867307441227292452935729086383748783157491008411215060332926629547689283677639177323104350390672078266153831049646931686387852771965028766586911398549719941117870772641641752624173264575271032800904240430748079511192369242524299389704782050568285495722276236262321004549832700434109251298177119252085723721577288523469323175739712925428044918968338328369923005476327646720125900192870404793517193216506311298683661562997714188483596651292157246607354513409551990170272467186386738215612263704325721181938459211787609645704875969822269387217565417814824414997805064159329408154414347873053050664579481240841193157256130215979094726432186089570861431901343689729867841896738823961966812971147198400070129622089366864383420909271881241889737158080570502869275270719367626047698264022732547297196425103712689249501416533516053805682158247008084192686156946890186393700054947357313586654623610927150649577582515783929534306114237082190248139344343692173153022049459808359093004493128295929840495606288289669765555698622601560280783575235837260077227448381050018123912935929817598739000963906448400784573628475338879406107338023515518897622696357432169010924911983456085021692116365363649779241765992581830113807221521357186457905410219001306612893311892732287022356992344569163953644948151104357872014842991893922174733863371572210288103719255321325673227932362291638288864852105321157516493212629361516182329424285529637352216153421031502558540980376050802226474550110692647960084557484123977072153944336583228906302375654594410281642934171026242439052818401775302935874316314557131398031050731759053094442190338166607673405802990495141653543646142649943258182275467609581340895014599804251407109024258856693098590988574428193113319962125092878249925895687503175969338198711383271331006538317605455180900899009462917078512636932197191828584011314750930162803665779271370496163638391456416752177968963451051212551381525948448402207493336660784215642155538850492550048045404289436022169324551463523508597348012246629521873517373164808052599855586383349582049198979733654276752726006270328217604554603737196629761556849571606924440306094114311343881622885516652860091059711415915310955075480857054973175086357960907647748384806224317933270436289434632746240262685802737159077138132134852367862113717316404303107190064357860465164443036159793360484422070860433535191414999327742133332133844901187290270540222219095952650891243954897920596829869657326275779480044644416514732340498379036960767347167465122642920809391699781493919733716088985282405087676765633397677297152521925541582489650610513523558102856717106569060388941899376296846272755279523506220416319763875185927078078255750784391623345237318566506662787041704547209148115889817723243375817274842085837221263864457933132101405591865673661539000655716055574362663180307268138637449983244594437521938093665330187916455641768167051034961321388994629812787828683346975587946654960015036149085638707585595215507525188749887004529878583185116399383867813619299174629133231813082064082751344692218654839443104372975803217051484808858309450797781065044664661688623211864336194240994419414650442173563524102041403535478540745188839174945565424204256758622615698497284204444478138219514835251486319673974165801471055340481943725296576939743596634601075115521527591109322807216530696377042372741496913861193210523587514505912944884671754457070052115872634421369140958212273574055105095973816291121309089672581394801428980416528904007174176708660437070567115758897996150540257091988393876002119091094849411034512690761282325001384271739712522595133603536414692385595049668818391524030624628799579147133335827024068080606645190677449097832487312348849014126472248319882755979575946796971330846839681369992840732902883092727726333977943422576520380228105066384445994806475592021987610892174540710903244767942073616722658322186149532127987269559716949087693318092738081208038357745330066688375660277585371666883955000860994298050376283350365102024108802602162381397899653907983927646471438408668872271452341626389801325591067413717467475384471598869678892885499423103678391727402547750357938237922779644509999786808429470113605108939800856270426926570486958491827451319342414035695304343454767087486240534141619509833687865947503342996178486327279678318398396359151238231718374311602750742694946822501845549331370439800370722981164491873959446862682003598696140612268726167886466560557660938329551180338874505322340282837668147407910885324728397115227566721530406917766129574120325500726810094114384257915559192094055787095807768711475190941764619512693906232472795457958231868396167606851978543680001561943743007901971594187471681586231082255101577905591824281850444833119831712688767515663720527132835458441482012245756216177862807909153487719261151591869652033632465659063849978336948536882248465944263207361683434195610620752425719457749118316694165365062048066149065508676373800052949801308540685463600087187607607556837807866713383979409143189452792348037086398038134949110804723859479992128669769360202362814233866274280278744044495900996516244287493532663262259919989452497622913969740064393267350020967349053815188908362268446346908502332250538387592656850266393391913163216471549389681757657623283425358217475684635860356848859553230666847526698510339348766489023592636648052625300748191472553664409894265708947929980262784493275011690049434231491753592428825020293191364768570064177313344010007822813198106940206629216232199885788627255525864483370995752462120190679951282064532069374092631589741581413666350921020108573436665160045508065290900029915389423880739791724851778516128127761008843800960027117720760564495200811138555065655514577653406103542614854718715223805416009473694701353500057857444659338937482998496583872237956717814974706287215742076564389135166879396756999604071578792147942913397793350530674083871097924603629399892181146074484473814741674922836906979074996673524443138685514701888454078114913618048519946146353393231640948323380888306002438523100794409025444683446258127986951591780585087909258547299567292710321439419471185784694561185264614840294225828437304336537031886909334832093006278357865109221204632718850451260771062560879962147276009744083913897590938536351539642168879481520236203833006984712014922802553745421901924341133653410308934739119198209715719062829924681766395013707660929923187518837565044842949891757085638607448141916192209409836858537843555372626019184807355656840147617215568100622048327624799204096939409689416294017190702856698808352526845876827794837798417780453913555900963102975904066464202988837706610790754285548551656724632999445606848858135861031201210122937999366332786537580176490425999687237001717712780198747908512122217544861761491565199863171583181507331645248062558502194174686299857754925384502013397906623246290909874922344120286145733115531323038552742158274801625307769190626735218393274432075289942383758210080869519341552036249730738773466067721397635724880536999493103180454617527596392398330614883597979185728756360608307723099193861633580947926192425836040314413329704325070605760379122543865678569457823620753767517589996292327306386536354838133178526239228911152647364720414948277694415624718253996081823833422344831165999680972495906214311667774532275585753320028857018707174799088106057156500297960822536497675184908428921685985420244319546049332650226703608058595762849008378162462337344976423040264028016728176031185019724770567770873702476356307166296546853379630776559052207366221057555820819222214296715121180632793570579365209188796928150839182156907009561881371359095429838358726359029859338572243130058986766102172591885943451556922530459111736298086256961079424276299485248017997674848742030802138059235633586553543893086006871645239231715077722782478987660364971892396523911314189046919428486284484896538929968179405997675474563229336453136213235848750686393661684229455059823780846483863624313898815762226743045659399569341878457984519173317493689152968763789339395879532241062669787310207456488114169470118902339937860124295177832837832454416893746199214342746802097021680669912344697881634856265477413208258983668932093746323884842206998174415635776610203184271226570871757132402976267446698742724677862722282561586005834247645054225065849339765661761353092259117022607403501336660919580965368299215344923611701089179573590811408854958031349322698968706073899782377483328774872324036507490492574708486514424283169546172165911544493025242892238766237608785642360660233957905392040859107175616722346853411378807233881952781562814570653765185274208516609022446928924830623906418339030844206374162508518920147240335380550948991479768721503570120754263490147371174716588962060123811608907427699266656364702576154619025646047492348864923988394287137923613660950527562761053343258904026615023057099311927079761074003967706912117912095126164626859178324145963279123496157899008896444400730307924822059472476992477207901283383833972226247740409101660762975351473767337426900391889933724089224256994621455297942264831746114167293459093926534923760761088033781585569274336326580440746840037733464482497245263480179804993489289692763432983917465994021246080444618503618795800766458132753018992270727503616623155395515957358404423211703299089884866015183196585056453129623147936766485463587477578026929134829921037858299545908529966379417984953187019795254336246871586257965219884742746855452743376604726313889153398819710600853579521176146092403918620046039869922839962236943766223828669876381528738452874680635614560261854514463636357662983190596496602514213116436103844170941574436773107475836977852858541295066538671633499182963950435118804601517827825381574047620499169125464366914869016850696323294480132922255510751056708794099305193272332226468715049758971559314260943048911223894023824217261538427482168515937415332826355288429759621863088408545728477024723525096792662045286097335481178937193305368018695679907351997228776922723207057509534035026429273602364205794741881497586739274015834455723203757705573852168945922476473616538319067663655835954722320796301039231060133659895618443821144745079912006520548868518947959785328800278428095446414064112743995230170672675798061224627945133192509948437831815357654632140506761049748927074551838582144120761437348206104890272106771445620278434120652813702035684407804065656394540556657587977771195718968184284774078376136261994890177750062814069895439161799983755326442131923647217749201349844201146877518687629850334065853522602058866433493871523397788849946700617129070962106996991414206439248231127077107393748586819563183789868902125793171806876529902913599297900290754617287105067677854467282758075056882323113384077808879718842577490523678341530571617628671998719194584697040338346293557900251673179828939709596682618938045845329538318330926241325963299026616341815819274073607454279032297682779726235603253692843867671546096825326249441704256811446883958525160023508855959705779420737935708506043838594701480692610584040449317481286528631040839833391562439428815302829398467104749706751559892418913160106904019587946554377229573287546079400807586635172304569922796771932270057314791807770957582983509829063039035752333535309516701864935776822596956024717190521686354886717514124701470184909739000372687985899155323558140778769293545194559602853220509138513099261448481656659489464291715459762752820725663430275163190649085115926276123876030224436239693531058518654457495205351440402727140670223375367510789803908624181997179596200747751933025564831345955657163398246866044262934006254892271174970336609580305379924977859691160729763035312135304800778075001438559099103266639978030005894275827012489071362293219984781199499457127456754973697857365615394927608019520831111608947039502631847756639486470469556057758650212368386759545706322570003552349281324194215191708658456271564224614363275179805831259003736093802846602998587832943563065305215623455789512468041041254295185269097880970864286306742063268460890312193698948760677477208501999731138840981762422526021504736611480702460623499080454575228638700594046051227654169274386763272277112899257212374484322449448126043876436555658327644095534354538753051574488318090542611759423643399171710657194025801507177545606180721712350733152353204362442736826856796504761048954418113643887770572351274351709252838500852549643255776056313461855696185836054627149329788777395744082593458590932364918094353395986494773655992056144249814687919098916268699590705423110523176631460199723137243833594518531998152464671991358424880161558973218999865260822871523963409820213710392093496891336948174586595908736452683011570896035175395040464682955679980601674403730897977454963133833790589023440165177264610718180033047834474277948917822272307488803730259201259592443744956925133625223601475969714411853358797543706198726531812782300900866073183667420825887781565027649449930741310566094558876780203189919356372141330730611509480979493567271273952596042629389234459186904024182187598770704734513290473701676852808716259476109837246502220579144680704145487914526046786257464167043017880496752227920680980643576517164432229468330986976322738224268658148795480561526028231635221403091923205110888896041769823683858296558302921080444356194034692104508309174987306940336148386815183896601645936633828486086332725833947587546111122084755791958440967277891803565495918256890632836305135148474976923060424357398020651231914051632654077874224114827584947713276220536892803054518516104044521282863698086633038322239727163106017874500383529744800749003504279024096646158508906689664013431566876551490241376041238037179041838603068155523893099408882356444623784509112138980555428308417264059687524539342991586740716335575413116558406623924255626802744467301116633496563916288870610114417154660639844771607943138573415944764746191507854186911015632410343753005073094770420659832658949413465321755892225215846984997675770948600849917494192689126798058485901944997541582141599933253777319769356055078560117459713461153668504807779411336690663174740450049793749274476424138728381276792623859716555660742815157138971178010771503959112136204533863947310087254616008380357442288705807163090834960930388780094657089017866529195461196229907895697673651432685605024201608939283163842325062697038838260516048386146233383937156002486714568399251110088661548529534719574854102350209494403545854953600600715606604387979114498522618611594369147819779811409748208445678976400741809673599168427989021417545429584233783711616235529572781403989648906362796993184870510241992577749008435297417922468394135085161989162409271724916567403090324170812803661546300738400327872568884042557641369347968713460808685121617124363248934868924807459897534056853188497984938252093064109085871953005533499295070794598214957832112448063404238280709170464309202157709741400831195428506804847486788447157037824588457792818805476611370394881322555716620821348316952483682285805030283235519893932706043693883019810477605527553226212778438157209282472726744497332003491813205594772853987488717575136948715554538100365869214969098277300193054229272203647036429842121059814387989874386385082782806192914033857342000667602254339882204618256971890418882567386956840046907989027463278427529060129874248701843150167333731896436273467241851129033761765995993964046556097181397657469539505395797648889504489418869732415717600046473329369978768851890571485499652622129962911357746757867270551442817404163793647733641226218616122682056117767865979442642863642463922128511708900802626572270727693645388346849242133673981148830521297004824142092858952725619735313100786826522897856917270347446726853309787639146111282310363162215667748354957009535267395165325961177200489170868357141875809624948501164163103401589059436854711204584823990293969240151770093869833640895735618954947668588041655180203384324611370031391562425459981668363628693354421918931843059322095531010854528335824771486427990607480713761688917423387415747295940092693888728094824328237035825013177528409624745041658084430870304110763458594320339100103875443996483054590955087356194542379840080572077061000944351198600749635835748598031916333032816392235751957092313199524745065927703897409319765436221578654882308454050167588965087008405500355905404906327681160693555296067783892985579158865385740973478339011904748283541852840127401306623285578132320839390678061947871723544294153713291167690930533786703971316704206430444362748107813388282388036074474323305029955945188909348589122639350665723400715471576857325391951003628604581688679535190611087528041373322809279640496700686665660997416663255360707657533734684729300452664658663902440390803828581202916010035221307667689570292130140354404072444341264535539434078070089208172123260278872501775865751742182546178288026529997361232442373394577572797301387043082850440018267354948807641792758010370458216535036197194850568872732567192012727470012039717692914657085860824978215332526920474226868885693422049056916618173468069989236670374819078014984178361952988182175806527528039245753117428748655488215167660759043399371589284632459262856886852375819798539318851117070179473332112714757405224351536756975113698871958053120359395939235103322527833685033054621229368658931216924755096461088345980002533802909208038649499220896445181333065638157994932170907967957566952476039309750732688391426031738372337977394110796110083364257865531092390068571052396522937703166268844835160501555576717115337527758628131846858942590133945076563866252058883736459488544951455934024364493202692445464273427396862837741013474708515444966514063103067671702172322420789140318385920357506841093779923129025510227823852712035070241826568289867375514388788269959804572291843101958237820619460543034146839898164401208991582210604259322561818306901396064541202291086593362778367712658364972289130283517681503320470883448984747060881297693391264648729532811071781281568217689001617485185142067011050938193960098870229602947134844761034170455334834321967071832157939606754674240363794941989940333536863939732555037730967160614129790954985290590438092345127617668690640230947262073538775575209512662313420771699308725990820858444015077432226664915627415949308739752405047809989779012262393903831011065854915293974528877280045033755230580850852526791071862267859293602759468431442975511291736529034920161401367994690469003384697949953646331913205687273178060570181752196257741189820658991263942530959346226192627275564516575529219655030702865901504415662284852359092457219763488967498371993291928479721258772817735339171981893874517378660865483403426259772886726057108696548036565850245316977745212773252101850528229994580639958018769903205339647566309572605095472582304064883245917513709537797703805674967284731926641059419217370221819143613479502932484822250915188877572179451828855347767746803911072759437005410434923585389119509572096593429530987306792140727606811591179595643108868117155122294121205405234585919673864040166897999595938714622934006494159251605803712480371528574857629091711991422223656137194939578150281580773412305174935477594497563402274787505016375526707386038818512128229863986322826290139630444711480478143225698849826827826752828962099885757504182841406498496427970958998939010171241500712146755241462205055826485232545280166910157380584100939339876615065305322077811338996988555960774036262978664780899073993381496922826609198314501644131155105086813725113534671898384441648744631611256745187957886693113635999838180513495946890979764740064611914737984924250743213031831803583559960683634331486291503091509067119375370625834026228501858319549212453720018095127464316959743113442845986828501140900186163909797852733977607419095787856359386569683811499389846553460858975567236780694929886452455422435517276207656537890406695163800448611379418037109437006958093642123394924120071788931409277043495507911292660159044027476239638800971001722694643415719211925403815722953418925839408707743277871546030902918146051430492647204826297915278678589349511308258065325199293381346837076656324504761409908180358128528245038641826546127302304937120460996261827770422065227322961829679025867385617396032758748811067200999583733302188916152201138743171447244910693106099532616800213652177168200229562539362423166648553974169181161729547926848253205143737981864477875971808129543124837639574008801839665056182661482115089672600124669571839270845957559526077948570858049778553733844499738427581129528600853627734748488584860137987348123710610921696546648763415220087686109737420849307537088232973910692862593099442092390390698279514113867112661336184842893735114480160913936193514134538343123456307532315891371043540404201613196070743608118636071246966341009289325043317412889604529752458632268020465582011630323926524891019394154671923801529646874252682714616733364702349271041550898519198657908919586451937286765367651609116801490506837652794655298836653791299125373772101887197587440221974378125042410196747386276607431238906771973702629000567949444430294921650275118811887930075437825970959745062802080265179970393659926427501900906791165919152097034592299925272771241102248737636930244457434120123326313878245926168407735852372092755951088403122681765074806787990451419311777755812256701358490925830317288443882947440058332135554989820026392502592928875194348504801763851311220191192464026363445108016126993648986041989024311249872840917086051007628301226804912596495053266354879802140461829152673815897421866500786187558637211510007573841470035663150946799960343985965674531411418615341620588766146307676741758690832117399754525093859658744076453123648079452165818087902675363084924262357818988946889072032026362079908321381112177561131043064172813980008476594623627956990914143510451697591496690658517984612855421321884818775621890203817175747389233147455229443917559980503799522056662141787796355996571727577389534026299652837885808881216051876979182769996593783248913419275427936453083465398136855437864814431269373002003505149587258889169350909091468334563228496602374015397140885247510362635741821440968844567674037555985233800705518139632130997672605290055648574247445320015268141478605686321621791394996603412773983246456806853890393359642571189379018227114391338765388757654590528394909326940706820430095256748776943533116777525501031536204129018488287374904807600229445379192793636013833805381796440688450018108813893078055344670647407638130156421821531689494406575769687326174173155456697304045798766054863306587250832423887482117267540380942094009329546564705024691973673910881618207677668901786305673151608526222326970200412241835808521463729971139400548576913412167286279991818815086121926239070730928771492960931833044664430479056634303579909747825679278657349261411744290421748855791081851562507463535322278198296331441755330210186240082301462318982714455331435198740419382183599739217623894076277788362961594663096015897109027183294145986096896831260959961821906169248916250805846266703865833305549084968668219384266343196357932613008760880000339159473740638636712195190287786215627458371043438239168164178261892703061280145198627826416546518203561509459149175049796581645350659565676384066182277907551181200559658104755137426788174024738451166769748284607656539750553273016418151003844751049291415726948865774477932705826156527597162651753842724005333053452785108483891374661383175136725824700228448066337134479416255752085887689574010636024382090246533325137308920695928221750065882139277646550911299574619163127145952814730464456424910970709493396443411014098648961664472752976376362938204373909263678201227106752564140475459660604923868726058744320527995724534130699011100080017739345357927706660790170050415182145729222932103670293326651184712335005325325192942994359022903961224978234999914200665634024469393903648506710884408301955524505472913431372466548009009061017755632763988829007927846918062851656585795794192698340318640445081677315461503809627736747626517942691985838863957119212795522727163812050613259516694549050606227305297835542152256157521851940535449148239575659935977170420222507460181702483611971477486698243134788623609737692951339342443073710759805718867839672483820162043043966207225653599343180827231182938131407879379354135427261941511838258195752476195735454030117320261902313776508107030988901649112885600132994883181187465236155237268141016502171383516215133930051141904923628431557843466860475030043454127687051822821526499709521263572166375428176233781194506607803696756360849308408621325174689726049605278814787755810140093941171992036279184633316157540733178508203951175160450470556107406674290057791681693680161799717830375869993277746883621652524123677620220964458640905614901142768409059757073110423410590017551494229403224716858834468536519702221729206752715942489599934319618220983019539746925527524880563849313324064101054208687936836042014440842696270104781617509752708414956222018082884285200107072878797464839701806048661431590999651033521366004036427515782117013049397459658104366663457586306244079752780102957964616975992662017303218016968331777802993400259134406191661458514980555162858467074962680498424578491881282391026907825077058025079997998481609451704030959390322397502760216619185075359682355699446160797689477938813237555158747747134406231137663624191470566533441862589657863492586412848328262769500460190085469610491341280810762012341308782595775460715359261122288705868267683917782966986463177101788468814880435230208312772752027761244126399148144432049106099864607790940151802532060737721450447650957643664927323096051731492114940984338152401395710595331417859581019831374645721618932125252089454942725508681519189319974969848817168974653981535760127389418396349014254395978228330433270020194970906606458661356699487777102056543263092152813043410566590199539727674473167596008623814049739790164545700946321857306238966702766870543845324416572782547346148624211651562248294448070353317606296835421921177963696955809033011615985297997199100669025497958698639489110067234602810219135240201088577163657009135450970850204965997309951315465691802342501033628057659523088135271114043406930084186210754544475317797204733650313692932134074061996483372489877420110467169772059696595504291536008116799362278582936312690865504690529479414606327840875744928218783264238142180659563160475465532633095740256778028987432578923577203154665963733933700114146965054092949726141651615221371655806237606808643662109069371849564429553754548266080589342088532950730868896466898071364967151630159837260682089833988670706028317658740394733825411450618209502716920290626558731171686904045826828933880208249475695937371217656804486317264041041693706977759686350038741372758301271953206818400161606466707186406775343314102109920966539040848142953707842554856121432917641007070351496284474985594216634691686865256329269428660822393954863242451015180695980722082034077702381235220661121818570913716622758820300081207989403416016054235848326091559482040857725871944575569945018280859913111324334872865323989798436147944553316280823180976752955074866761077424050361846064177303918863825973340722511860952783764231959600790700338181687952666722038922135787244849673624719373706785799180889799261518450978910263226709577731409357874369940914456977338220504915904444491379162424175237364405550517425288618280029000915594422279955436969286120592058623098045249193505121574201794414571409601305273320880201875063553313434611319525948576252108288986329673301691502203306903008965693979095095306612271315848493938572872086261265257771676117293076673947078565228242717132631820015857266588091057989578952686766548485888664972256874736129892042000310446701249522339050653727275996389116577745206713714566899768714652433263527236069434395456204537410538026686837212869832480321394852036480247407900780926031075334049858624352239445982302574790096052496954541176973629361965727255761773023636528988801085147863634027746426027939510650373829498609017814985552720935731154892580214545390594174356141055936816610800311780352409465465444896256831130961828599827387132371166540120054600771487606228402946168822407363369316600738723026994732271384861624897032462122609909436131290903015457294582945056047439698873500539560649548628015988075188235008512533036660526078787914242798572404202041688066679647915246100985568552706674709503477972583580241571614441792245937291323444725784585413641071044792848899116707137523030812064548171897589711943069874850225327008116294869112821287856672643613533818219760396662244477077487094289672603433091108379376553613507958785697940417618308655396593215936018747824811276867892024450038672470008250292216490820305623032873816039935099904233614377208090055201617233615853326431183483093235941231487439455258151007969612764484392800859804132855689999615550714965323434636470910651265814869312410126954217268882629149660214453475587797997363201341428084430586712329533257101097848903500390144908302653946098076703774376235248337931157462616641749781416506691632549424510467587157507075240667368121999029867212840406771454501867338114704033430728224871638105864331572531595370166383715461821585519780349728071273622448230032419699908532188530154396295803602838138502122413256541895797995074049178419528635322112795001396277171480938497587825225905382820204826072869967264877860692719390615983785151999665338997929869281864758232953146024863782148629704687310165679552074819109023490283496211827462783433460208286577299765550459806423850945950114666212611144375199236638124649408459410449659543953236417221414888773470762192197054332805382419558620454233119702383050152541675277552714794390976967738112511068406197962138768401814200055819861468494915018261146713868195089981064874339312661591427482309085144450275842216509584350778997791928261315170621831347063244148468787331699875858797281323266945032592920043289578499050969927856924221417819076500320036898479214467794852416279853671256838641631714220505583219583100536106379611163453560550723342868778498586634772148612073625694075019322175972605361236678331935236590306940897386234634617233067077637980074367102966920248488406467402101260774210667410394378399382967871431431944020446803115623770614796297390746826272330860468124903227190190232205057934211274847962057720805823825954375712244742632700024028764302413979789768356122065021283167718215390978516402475657758861083935377792275396747495465890426891358978411404472027368093784125961063741252170916481764417759056058048313728131965165212545781991837382243384182352526938640702166910963894783602667791359342343468800837377713825455370836367121797901689232687665140577497638331805586450417479198818130868985434320471878462616918856429995522470513211095893176561716201978462835631504449285976126552919011617663072397622635616296459534128677504249360250866981518485095960242812597438263670741317139206411743382790302088337323439207173469453167397456739855821925994014215875961347184923764234434455103941625426953990072464620509002458593690979359353123047727157986911683148809620125716762222233773876303332768840302825477828442026220756051991462608271272247682615852101920168664146232157562694428303738966129537845486817573361942662897397623628247680021946468255542356350572435508106537614113631124181544613279608259276184452221997531489492228850142910317543506336245469692040813549478628689686656306752232457356484815014666096422906035121220428867875095124421237399441097590575783446320208912251153402300465029522492717572956347502766782405436979213599065835332343909707925718197227426474609103573936304668562819357125729447823306425238766903643080590248796063383790672474534135591031067345167360810909495716349672505576076485856262183454750765974112136406657652434999444954802518343446177275604781055474985779482161452016506625180342585382527939707912595698646025300231993432494749414403356207842620926759174307543567805873351620748048185447838339036664805732649562194521534579198249874796392950960251481258916331068163523627528792667272714624736446292944229776615053373469669235998392898914706208773742636255680668778680000886441698076417088428850613163358240335249896432802501210127071301081810671340906829079296337425730797128019371057161042031045399299884920212930183624826642148323495326815810008212918352752780363993392343402840458000731211436586176270159173312741023132233959854426563666754682071749643389381316135335027173912907959357629750899896600554179133780268423452091498259201321763828022097975506141969126369375069557203864133520338950740863785880481080182685137741317572118753379349051545422516055903305396129968667273993233512200590872603060387994856622743836813436036279506467047926538309959632592882795746258288925782155444089511852098443518637871276091152828317897726206987986340802167908757503510732989483154260086518564327837856724251296689772689982542106841194684347959270496338524144525543656965947937694226943530249147546981620582374134364125739800895171576584365074268454277789338815359873834768393678545037751506693339660843242373968669181875324141764276790953283384027982907061966002259818590965401139070983849014631452615491888135642161199609322004926805457795581642252784621376544892435903480009764023376075397571107493126547967925434971781332103251787441091935735229065663895935541884563595274207145654914975890109851428011965201691672260844988280424416279987253432131521791772885311543051264979023379877545525108698728366542317113838206997006705396055637506603641066630177133590928023957956642748097110494585874663818585109430954487938660355886686704030411063291808362082355774064010181093164217675508823544417402953332639403616356358650541696033496156006659646524125688650784475375690796056541979274869307908822700024223366064115287586888531104705219997143928509528523943216488513362979648085653159731376022839705198987474526013833624025453925505552729115743944023191664055632785558809270886566582939273496648391506586582580969868896332799275277079316314812635762199321975831744562938937167476495064106913967503280441916860017956010891042242462969557701678745079886667316788907243544651105904721262239422808490918563649103223733180161425772407092997219953802021284009675544418685665228279750233335797953268749037789834507404733550766360767264797285905799181387808920505348840557162890122925379701124671751490169909537606431899262630337605356715881551993818297137964882596585083040309722956174575772396531597771729459832554127982253407673031125924140134044093006986840259397130829139521860588069864730130349444748333061226541411136832903136661872992585879969755198710819360722786077470628939021177194235850045399281830863881854005875591668670771108593667355767135374050110160114535621764360241859937491679437090324726212102815203102164302119171315094555537809710790525134733963381182252554972914946067572574362363651745624144831293372909523704285164494368068341982104744267400908365267850880683067086603751441535553842455941653396752699935305902107692439031384918223900623336443856777297139720023610982398922182115166121720641438613979939011073200458106870985544851001395062858761797308747298637093315159943366045134810281948629550704971552849737933111006926710448275211916621464909731516188399348901741222804034893855544822079045304059751595449146211421527693754109214109357898210272787543627787330303881417138965068493288946617596117154361341230103106263988925758182883216882817062737101401749701348149421013689704014145222048928880178870332174072233291766162294123524848637599103810608431980986028468046703466580252113251582913740891426116079990277825857501418354704692872313285502985077988534293553377667873624069336739379028021133571443146302884619097066785788692647036752171306636137725773419731760923727439909778408813355931674163091501577405880121981161144879651035611075968504280878670345339139628813969534289458523555618286806608112931491417232161266009246737058518276012282057715707616406062966140076473969036371248211612960697494309974182798086783891173830347891633905280843145540736866893098595078919431792894499253804574947609636016457053287524445242194345791398897039143056945175555906744953017020097040249642540335291924545544326085493812933474089962943325473659878990813654594932144249307249767228308685701160588717628788952718748987715312282665932889206108652392149985278868952156182582035584892910702122807336987628402395789711470210654751552545269834456547858081362487253267346249852101544863477079784734599832213449284383354829991372429205401370948761045471920376673487433048984634472224084811347575648038805930477803405964489829074810781888798485391011156276358013566410927736762787451061214528121508068176672836599926907661781636025587263751218197029717129079432570328519856334610651273020680585058982674683176299050421804248283996315034206414874466507324873893835304640479903079644419903874278675224424867266048011862131882465727717643882478085109181717412383124179523706560039537120829811296213873116998472257018955321576098496738480755186897770028049335149695619749893527053795271453301311110995682071206575887726006151434045683015300026483902606219830661740358540178763214901044122854924083845404081454641458239317436866509673544594726324710447518191774815688895291410588643279458207640993107911342760802163977122113603219772914280106460219647392399725187386410502794312809051800999259219567080492634997287285586753316024671778949060478301429546076890767444104672121437212016891609661776052896379400078176139947245596564588291204335600662259732247072215872981189003336858001924837150260749502592929410246175702288952163468781683815453562996576342313840214885992489597600498655590741542950825173237700330780858252356373155864623077747613974437623240840722611215914832096339748081715736892310126180699436909596498331795177002025945068898377047932441118997961330791592772247845337183837370285539569781758149210334446956159023071990492547872907248701678077624066509787726959814702591421431816598922701549949083042317622778481462439163514325462986521974738190145728551835553264953939060714674878003541914391745647389639498237263597656143291449441617357257432336371945248461242775205228442084654059918441079953912685510805872608231661452133689027533063904472276855061082583635703932779098248688213196470531619440163761277263378083857647808228433236007039202140982906409182292149159809252054359861112727432832059643925240675108004871009256421271990469537327010312027089779571793109064649537559960488147404137411859890427983424991869389553355766397881169025101958240504359010569113069426817606574822289284469416885629112697953510807722723625864375073875537431294095383575803541952575914987808403884634749510289409807621330813690299800268177572537065390582437034946995381729905417169751464496776748055569147184151265972863871918819544185715941522835472081555534702245261179001399586176564821521686160512600577989268394585508324061449146900437795214539180417905467547629315175737047889122178836589949933419513654805985436458921952808769512321263650263816801031331281294113239024075242987162667369248439244628487428632261088358055224443804385501808763710670400431274744785444860506947335813156709210687241613548937962072878105232535476799859154321280165268421303201558197448469951711952860422175834928614795431616353161506370655050882311176137127542907072027512046919541846414892640403399415825168131468065814769968423134986212052069408253533015174694985120424550618422429446246302543774833437590088115908926528417817584036531445836849370875429384781968970122464534467360715777254930050614672912623929616040429491076860143612696616839815248843789376108020104053435077577575777658980221725253362968321900228192088639609439109801181563541032075370612546699474284904377394612202177749303116227303263697895764627549649194264550224510314965625952675149123085422015374606272898560131775596902942596067376740312972199577532867271744221886464173494926253098109075359741821928370102010420754093148561730033870827422247573763911923608126732576654197710852914944180568845938350225231581999073702397481621688411082167253775573267132056470050343533993048563921373134947413566596558410493546103150831060727178505570033194660257875299488296034436486680831663633441774623741186714545470685412919516948528997402068016318684799556877366965181004369289314547319517261180679558106024567206466328253050336667518043738993521375683814100856051779752873976775257635528770316054656658340504345676285975148634227443946303490605392939284457400788852706782038827793078625837766456087157041041090119166825660143874011735353368627195115849652658353666214496216690871675951610090961396609278679639190867290672146386023481075606815091273948342114612837051581066871086213070432113452385046416220083217703272502824649440763564736768597642034803976999065802157684419894314731223357279639457956046505513257234426505673702871947918572755246503061788665124928494370047826347526632109544999670001733156157796088525761115231786204010621816654412731711798007365985213910738180500570696656248460154357490864880450564147921702212539830103863563849417305165926858987785310553756927928622326774638421690049808253767120916648700294492379147486859058072015405897896027599927836829713338659917874783987796148914098981041534581541775506074191060162991085019185979726487216012405085534842802558428536335206403673035534494928261836013534410707072181269364721809765491115315960111842255837250633632671650525792497398262550881391086672208261328658983888260084065807916116846825276710224993689909213622297934373622663490410345601220001315604852521615022469067238453980080048994158266416681580575393615257990664867556252241348058152199893811553187416468198004056670302583586341261400576485973546262054380884078827771891939526100706202983275010500006035667302228865755226271835075767275133634919644515325590229470861723191035658319480333182456530258586477318526786792309502851748210802839406558415020354128585405026224000944558524877914416448648917230387829559683703549922670896159068473764607565453401412021736540539606769906291503302583799072894084705666335405693966111396050117671221056565866634860468580884515346606076125028518588479669813841351808841940452761513629884085040246908191544340394110539672242119200706517011227045532537977284103542942898616367663504537885070514604400304206154910155087065867951578529614194993057319250855438715222449949923603445666644895032457042843948762560831812509774130038726228190953629767348560191330150464936631514049170027056223081141979620519968637315353621669028702751075930439324572072537579291304241455319674354368312252982234443651857800660655821866389258160730338158602862700698915607820822537869663488979251876310783245986965537437158070686294225978114521357520084144836290509995025830309682647239494353508123002367386505165458639264227921181382291822589350264419272823663108913423688380733644640538821244201178965073958153038501000417466885848676272580343192697462915426028602882386472306360392090441585278648587679056579091122281300717657197334792283581196447001070822365516069678304342859522509589816069085710893733136457924456619991059553414531913358334040035840962643145209888501143354156554973287476982817571685236656737612437796899468185930027472071446630529047073555743362817650054554197450238645943416127097765133157660847062385989242474589346786056162504349508034137136120353663410395488815666985028024321870677084134097528868084785860842961719900694523404651449913309165137589358302825519405698698553251720895413036329094514714471961587214827126326954953747082858969032307296030559765233592431404124339397799227941748694251997452597507761683254385913578069276151215568770098236680921382890130325003996448240754381788179008034445121482021905565351498677984555334369849738800886025596145204132416293750029807922686587689636117605851341744446312823503809550666526335675497771056029778431753246235226807800139548286729749458144298030773658979111154487863264966153630303043446914093880585673538164658078451571931874592984393317279254150410787678287194945641953179256057448382288154838051525017066978168514606560235318838993362281592340052252127848772688026209514272976117322271124491011198792014605339790090450035032996238065168563875845156719517457857552142452108720371250795430851739159292530240433116496956571887455840340666413732668914891750715754351515652396539371350859291345760395621801776721166551659248029921106101972344851507780278816065130878617974834855824208522612224916799217308618398016387946000188288265011485670877310746162397366907841591401529209538383460235651473551197327389396019956704893729758174930847763429125436404591173038829867144708810235562404977785909655414377537120524591153344604723426572195978472011012743928428751831343350914514604603079196571572608167536018542433265492366031731742961884972357439249583838024369153460250337735788259893953616194912362310943473947494579910520083862935943438816866157094626234448915680492018475991287428436427589863970300490380465725707581231353035895317011273846731663423292605980960366889276827373402093480237216754169452944113832359024068809433973680939147729547190826450365741346163255044787994023081275437860834321300343333934223028935640201200877674280102685207410777353117151174773939155927956826069621338014805704449841749039419788192422836547022321692122654121529075083168032088813211100135882900886763289402114146445890338495155349365210290940600146942034417763440504254194771751490914707993018119275626926039154263626959205373669573589199094285262115407258816783067621119476754913361700980641234278512524780373175514157588631503407798267459437699366102666927611197386334858201329813746383756411515927757103294296761297014705776736364307481604461425154536192679871430421254724558294892712828023391127396743239646155946720523235187551022884333782972238603099810126045277314365722422812107900075732117609767966278232404947895564874790493106853689876674581605530345842376103876628250821337351542233973263164657659864134775551032342791609499136102149533278688290230811568089155973384078506513693535191344102989182414035559911149938431051385804181903846267970627456020494776122198990507730153915588583657171206850129189274789273353650800077993893468731012654630995772824639696548983050460492298075740443278791180477476811977934879487916420242762619314349220865213863713545947498660585672373645140616222011188318702137644062907291173806749368585256624306228941202903273074788558802775761246440601838972005257132130676720470892566869008080500770285849879156662114851005031655573430488861415563871914489658747288303008397362823446909229907318557657436657296977540460242146218960810566609256140836285811238252994307606349408457700951648359322253270319705114240580247928543006509077660201582435785335089821390832709402788597092359370339325521773269389505668450781264405289794738082421223708545022916982513048412842899219719542701207806746752961682558346960658598174960926893167570594992520509708995833873044118088974540059198526852121920328667736377217343836073688420880370660762976435726063997210122468208899399090245984989390939863366383115098826811686973513178275199215547200336897136687384769758140930196441664014666573766622402048893757522587653455851304078344404313509107766101849034061611589529065677119240089347061581142084898019596886505530571987496858714821515272141103839833426810578093825415428681762527861131450706667440033407708398804002035024646221281521456505999914468294008268186440580464423506547720997381133491736000130347911599200729292263063404636229118375505330471701869743813032379839745804082445253266808133162387163714270640975500960502239810749334649457609931164768190492536383203536538779698099290865019752452328601984224913968922957725396803401701789916354705241973662610848076186772698676924983899582195332087406531716860754122269568861609301123252374154631995073480130740124231503244970515502487844334599783655472597928380447201519095149370541710921450650267210965845525477004709016779417897675968725067038573668526166405517969988633311985479214766507838598256955217789810895648109505582548066066854782303089441286778527332818846372822227545537005718676843842804128763537658258598893962138145371279290869992085962086082355773848528943808877539977426539311830323518319183575516019846054217985355397539411839024718206879499908819148115844815667801800766165806209823112852884857094047172492393830351686089825531681464515853481739106656897582580731530482280637872995758093433096910494278180121192213062791296121132221599755363452517430875082483371711589825388356502130601339945514493181679468194918464618068611035833426878726041191398714930030957139444189600937220704086498648287117429827772805618966153848948616163852299430078913855421653976457517797689220132672447068438307105986797197340000974533559347664943722565514296762099810524884020076804692274662948940618219359449655423062223340848408718870941410109558135793421564536728261870345171179075234947720964122441695061820030631285132619674731978351048624602233186262775501453521783169340464900678554988796148924998097885571417161424498818818029964825569571864983255966257162495383643200534167158028863974093508063470237055776004474194588330818183344255486455753127582747003034696344916392316888115463521920213804716349779435905620724490044775359972285432461000278103324587654620399761456719165821911924183368506207970206639757490734767591503860387829914032174229248462250578753263094710541713634889099338232214555921026878610923562414202859528033193686595320422596118048151403661544720215975751319056924437501309981600551466979086227095821893360450169651941634485775291515473296475120324161829011881652783629296399536378326587093270595843248264320115981900339531677995152506715032284497371410705834314468573865930934379491617333447627782091110732239850638923669842819599527086288649414740275885122858721875526975367311290790488932416288350728227260304758115884066388592285582846647626395900973102754379353217787944163524656374845982670417267749396723331038745691036750912270841375235597297884448166448095430549813601749496588423327130077468905082434161351112939628616575855417666390241535173784103930080214483918983642616155160407530314950970432104065488969553813255658929672283446053416891406442912739595198326777808392709153457944325853407598672296900373368680699985493339759790694112770953836625277090782586723252379024484311639935033526341839000197259756179827636504743823830204641630805981827886762987295108568043800469174139800072152400091782592825761525037425922210635602975667010046283086826026240116808723343277016223064856566772088173749686191287202043689283407282266235185614820464350239142334056892608809771857163279655862172911888786124697105555551403536147687932942614619980458466912223272795481634529269837825006454359713758608927232461917621267218708335315033314600997266172943254756244084714931300126213957865048490172836530243400207898313515216014096452888385151431262672931679729363149683865403857163564397408951892956558858546326930074593227843263990633428438750077867336744230562777761603791982193900683122730995941400489478298929909401274175702234925640318547668788982742212048792219425557104057768159693517025540145274575974096133717952588503405774048910095628019229826600180411437076597976597060943907892958617243993053618862826564146286587276442945529116741889927386098296282017854679666816505164680500855957472853332791796174000213770890804441706540990999113668648058669930018819541751460459707982469727009351484970479176726462925091800872443792091595045905310301937130039558209068435693275777826342509721235592637762137775085040809478546690496002165914107385446411807003798090929941547673709788522764057970309607861804232674766345361512893810855281710014331103005545177271176635998176582375722197276670282812954821147004340856945518899646091819050000759064349109207100254528501432638250594668732210382256553934550700966202466098448309051281573206338845979835270984734598151922148992000791586769184060400799508250189498127081819589197348152294184308520534694524790014211198981840090993242513463803156470420590071267219005467366819124998652854837450980443919623993448410069604915726789592567975822094950329003881804462743094160628093191585321581610405714005999461860440814130583668523269838872443198742169066464094280308645404984885437740825541090728425902843284350762100443817488510202329486498299824912445604570331198496413888701560207583445460272232419176566327834717651642995870002097686749284545619547658196989558652567032490378993837370917771219657916984682733066604974660603068836738064681263912414591226415096411817515714755478283136442639786861337608238505223629195390348222856260751921761513500240569959465427204226076205693224123791824547253016308912591003713342648852182390419793250915282132061201331142195979680965377774502497995720637235421930322455550012802660674253260500788157739257163289471613118310829519817684918391919921216427379221130739227078540525069276109009321708199758316686118105041969286484711332871908422461516144410076814134459487041184623916960553031979431306535047991377628637759628233789625958949284564490635027013258844933690830985136058277427408482261342292683799367603560779716411808312913643733499141952238629910767188229363194920207000315103756688133963659444681099259873337007473950539264362257844239416620457626440263211894645761278917241660886124171620051828270077285482732039661599348762237345654856259490488701037821590038712677988081920934036039548160370093009630519622258691457582420487367596430543712114657690721016641533359013639510090496020546225724388211570853533470572263146116349173770084339705249930840807221382045723848712194519436520350403271200007331985466157629771971993152353172181814452569093742183610279430842432530782502232714910309069162176597305442760179354185300070615015810197188033894475884772043060374552476690255532489722993889032431649625813861754612649880453796031536418542684855979355758006773609129106033965642187659172604678094195756244518384484942751270964166452836144902114532208630378347409797487051213880854334131550795806158010189079988651432050569682798837014902968738704468838234273374783842575970953781465867991275424426305945270750718225952017154959009856873844744932688505262989742433525012287159892202742693077144755640250483016688819301193404899466568680852621338317902540609646444349667165010127438579826653418184335961377105303864718126642853978208620747610391951186973299249502567986015253888771485852327342764597909366064778926067230570187793862878358021634635770068999198897505833226881091417019248459603586028535750868826441150804625684393589042701192180553878106053127285509557223645328394702759195199530365168232883336960176117457572113206909256653707154337011341932000154208404783177889311542968778162463096775256149365912712735124317489820056508351352059672345839837203276893860435134316944025761683972927139797741987217654263488729258158724774014276130316501905619516606246284311674757826911306009870623932488214729273861980202578166556620774698734688498614253910443399303763347574155909659993587285401908829164252101519062467642275392975806150247840120104541452106330851729975071954508097051907526724213871081002945084443620031037196410288523904119983085212582963719020717840953875661482106804060936314926978085217823645806787143710311421928389053739393656228273358215018267436922587740181902449687836489090215870050977206871732774514017164241612484956841679572136307686756278523832779819510359703881466134658765336828358359631172239361750058982498337529775832561612976231388560648404954211320891613439781433468730166276409808753231984818601217509268859627069470431247473622419004191777007473095798111594405202225020463480226337356755606518373747106043247483222395902855088459509671733259017886622869568902372847293649449420300488948678856227829615571599465861755487343258785186037395223422368888479674578601819644297629943636169677875887621931199402659924875802354628297093801263612424061391926752776431995214982059838994988512489809328472295719158999340426714524138316679998404383034173032571674052463402511387212645278010741692956692682510743143862951359265321291357482540692792973717721837867407632000458627686314663376772970657691740292260840566027795178543094884146532364573631365078096771293465999361171013911607455157407588171228742379370406070003581478284213557224462183739966716756642499919057609620816239283045265986405661848504758741637785127643055150697020281245257498177270793099177101786643845654440351926962555482687533958745168263018234210344609612538926538521950764501118569863980036200148530144175999224928267059347378802599593312620244379374171054822068624427778578759828332433565501343224153679579166213026834448787297725451068137310300877993446607376300395812528151319606897651275066158876995348654564615290703555007201050440980228657700488310077041281407089670495894437953521110139568082925261975879046658609180201543800757776656349598853008827143702767079633048865819549345303116402399731580289255206198327288005786122756750621727452092649487105731220216062441925733478358482900410800041760936713789685162204013584006346871051749666414464467900148998263696834419727978267260601434274804030278981083717284201515944298277110281221902370669724098539448547069103720489581552013291387785740632462882386689598882391678928373274008098265743531270940952182314796633470381301948753018353665238389199219019075706119121920501625853162684493936092028188891343759226812561879632528898622058409864141672128173825341823498380730103943475394433062448829995512408437117378199719516516895374054601089955383139486329425411772173922274970258759863985786716470064574946056274098991418158111697492009309153835594147988832437879025606463175709664781106675677390931261230935632976442971072058143903897727744493934992561160809067263427755476416075893104181747218505445364045959968122315955899079535907573403933939063056843086429500699386003466219262198994226371968339979097582008756698692934537657435827689969718535642938213637755389560231178056741734211268044523110803573813184466599113419457050566060959220720554321006066794316031343822712369774052093893013351031286716234811637046119498540220714896048302190472629741151947873592077023790225106607636785170338122251033420922391533812488199803189141285270773194339098208222774890880388257365933694997391341406720067145324200837760753520762863884089903213507506993115471266454260892484659507729963102915287602156340137214722689575210279967461262555205123997794092103475304252432555524336100641337458405339221138322135794047331265550745940911180122134116493873049438150278103047348061094503071345115562831782232148706561448320568223108861022495684980134925699981847191741547539330980220389990358181769755841689397390716539302813979531022156555714962817867559056336378983245224311926205227193057853121459629241206479155157965837271389835867490189278101098923563142766923797526691236996589418197293011621655278452497202533126319991449944969778514190054081430728258871059063856780035685885655310672515986610636370718648897585131531534012453050115726252178244384785876452026677693248397971856199530248617151473368242795568239088932033640498150498327430781794491543396688011526006609258958736837621397616606457230148358580779646041031607785060232993461862161342931840457278335184424570786486702868453042573156809541076549499581735643906452234561259496438789030921101293787473290913396252894929812123893529606422388913818436954462116868557247204362252490543826359286291001556596156494703815113348301547024944451766122820608282237967869174036037870139762625816930407946952721658198939031120475877270484594648401566588042400553674943226461694461402971201998087821050626870744866785889308969372875836561154196391393275695083578009940736528204050190476325816297842797333998038862436849883478550535437523354532657252527861352087410295819091658174689978364213807133050487906806757651437300756954425736579493416238536880787624093394898687327367760143163214150559711593658280756474931861744731824746860954959078657510002916918334520459176223568038613693845578952577127164441873119400323050477146543923370141795797895462447579958346653667626779858881885410380711168056428741292396233082076235088236576209082563575351022930647559207791355287123946996534717252311470112744166985199842626046419704237909139972497401732174680792313284558732088379957391711192990791787187269098084999160629965006556043708346632110883697453904136038957144512583342490814647676394318849424046040764086405857048720501447163251518349317917465539964783692471874449510418203280488327606905881949338707965404847776700310605723770965188909436846983705713242175621099330753930629398037926876502949657532849579905655095044373542795529731089932700937349774322320752362239997248680114811667539753669794232305606071594366167003618028603391735650881666642638261392874163709297742211060886467265295500005108581087282153072560649658318172669873898987806899850105486536212777849294334193145024559185214906425502206024326270186296357542412014066002756933172142640472010455855984867130789169015492673002972035353302622156273906368531319125897964657422777091460405353242286670653671468328679207636052221802206431644844853290160173013859968677972921221647032863183213844335662986521924165598188950907441230062909722196666060364031117298332885013391380680020306808453927112222889343644297247354972521020777603247140905755903694717465677225106694082057101603266563799297353023223692747699003914558568770437910377266877222618685240772001336470545158565507807891416508056580786946110292280258857416982671131601985676656588440668782925940639751625216157435070549805993057283667755856451198330452956741181112056129496716298581825215046573731115206943015452019482320630895883007338010040700567477932044122155408633785608905034363782767613093321464717410972306094847170620669688491034843948776041733958220273929660329007899133614769391153057218583489004126166354088378694126603156573380865479203178043702796834929557384444768552045712437227366784565083668537275726912028220448582424817189667825648635570988116536617584798376921942236844888340840133251379452056364093920213636076304934515481620393810666808542755691714396788850025053931670771610941453079730111869475387679051181526804371042744037273389898555204193240939908558657344694413427689341291722198884496006460312820294780303812578484171858281083114257816226078176167726656057770485973506628705502673397976820781151951392794042278783999668615723804807106318934120120005771740922871926052318619417244416142617581091253215470205095255704370752367081374359444025873954212154902883148274062115168773088968339188851634926218511576396724753298086811867370355808187207450096463944581048709735052795671905435380380505317459002527552706359019866548962015655412998313622816179797066960873802506002445226236624622683735522270202569138510175310771953171253762253451007414253826073913712138642792585228606175557124870959299040988015471339575151872015827464654762237327517874808851389961697370420317481057864312668267592964234985918423265571252524957434247925171619971763033188252742911120074458226932593820833376397414642322020669375815996996829833238690650445496164148246436539757330258938740002670378071729586657781282561282416140663708846078074984465297210887697352404038189238250318859951930564796455165991026083216721093120376543345313568061289707897072615157535170286975566043256452131825958607058883213695745216792171008668251969502564503232963326329611622771862450587793082879887904950824782897652055415004155548501707141477368790016054195854476946812419245090269289625901319828416249177918444595868663504896805375474778000125973445124137001063284015273035387824964143742526252555850566005056416945552102046340827273087506364200981912120139766312062872045192889365192007666241383862653278910817062744883300872970830615938023211066101235530096459925616001033419709286183295130577366711590502199747235453493702953129967164574953718991150487496510105241489245358625438324296513715026367776242265664951139318565334946848170789836806881334043631216075200947670418778000458716619258358434586010851728720085425891962037653536189107282800747989024493833939936296442441070296166024786033852899641416023858694531145793772984035078719945569968956300105341693312242594567214081213752896326346030000761111898396385815083165601394032551998331366706943074725993946128197762062312794337084180667604200515869481795421180939098152079529951141578121154678609260657523910173111299433823850870271633451959068357487188239228887749709305525778244784974481502730146639059215857975037915535249734481289590361241135164710980074896070325932054014691790079765183980369846138711502539110315962031024820415516544204219739924557561748849734157478407793348669560167673855255804213762346489471489607788538804934082492615015301826679672249863923073728621169237624410686681086758171990846315281954166615080883624297034321096784851595493477613287376900318158365385469465013139311051965754923323180589055513094958581860009852024260804447724627263009638985749441577887797816473891270139015815993326802581843232096365711837692365301185454517390200217916645885459674193199605107941378283022658178012621652670605071706952642162300759570155247944892964053895885174220620835814467702779344057172491161260075265334813238612757739320072830490922546307630702251019381766298305031133720200293766573907321814409283868641231105229494469097023854932738124814615897503191829230091402323477016325404752279850201664812505616608939914585596068568870454942872164664674608645245617929143319996927545483172788596878688852766386562128812547592807287372490110258233296561844534857244012348372025548487850830673711415430725291084952251206897025098481505994952381026660162010146435710932144867970891494998392964962995692495040911633476124499453927481582387073992563061343722894287748881455286720353089164154017050708405228606459380576354747035614945353846160605461809941714609033210992795081181666469879279929287915802441948108956082268556501319579031500090746204333815654773740087903941829182724352347493867354198827436708395328140882802323751125673358226953937778428808916733011110919076906745492270410851364131079017668054330650468706256525297926237050816569857000753278548073839333221348516926227517242703952316537694492138633647656179012197352419633338199633783459718933455550451761717880193372164237448949300392546960846961807039292047567917613886228506509751634803582365283397633067537611603292435181304137570858986313074201165362454727220507360036337931067313784675616338897990999045446299609795963519498383575509249183920326235442311608861716786587074626177130142160773614765495438465125550611755198263474212963822075428890354657620445006610457401936852241902361851425574790726203601494444636976455376942999576341629297904522465827500146236069484154006833639199060442742463836628834431111368790261221050745552924700084927336517731920793956860724755838622401810930911486470762087911478082310647969835436884664552172656228495699562482585588743483246958258826669661182554845198644897719599964830668125028041409600364020716002743007982697009522554997943514364528831548634777130339461849978325394585270265047546809121453255833228713024660304970254307313292756384719223952928403152612648194272744241087965874122243929987088167637776897409486427592006023489218662972295582437743691285775349032021044487902250780944352677675974110728761949380312930681075067921292133269342340509493912619240197005695557111700897850626129008047130003428235128389034328482765907238847520569581156796196715802658626141963841077867955457179177789371195013219494284880806264826519196193823177494050144336551806511875664407125728660820610680830817376846862452421291757219547907394881713024713122637351522006467693846241491953359772632855333314958538223634353444255041273876457015517471460352798337533057224931206048811040864614842084124303888162387214781534342634117059353221927330011759781043492882951553823753465685126570922357063001912344098508903419256666724332401249290559381802944894700536284737331971209645781869985324219900233016724303778666018905097693755506215927940304480256779632918018819463001966278981030229537837683241955464832275474829145562634214945668290273350101141869590175024067997423641099050007821986315309404440951638201938671143931663635407534244380360256883608395953467406117127634486508700352877036461189308387616200114328838632198772561094469578417489806499528570058698927636631718665626185239146798131495651195623070498710428522590269316152944073801435894387697644041048584155934703207897748634874341907647804332523994049107188295275998034603506947816748453597946743502923347539200392916638192053259288625450505907277540075630998894563265309577884467840423841606660113799275356456846972823410787522101951891265810517264232761171629583803990285365013497919308891161520663067511097819884099228746550198162547111691347472986187122331927644411567154171496333078229468379410966512790987282317716233888955958343215982449911215435014926657132679869439648204366106477340750044045473711353973441585787399065383355161522255552757093364703616800288767894358889160269338898095533698841256139793148558346070029082305731420489409896977174504605940634273100950247636961949316646601152878950780239888094681667321195212467380618920931285790894687151875180761026004665914370404312278914041757455369742330599336716078379873433668624462167001352613847219313222124884367472141235491188939368948337101197947369051385906875913463558444489388839127774478203103037400400209393145222714947876667975877996182177286160952528771737716408741383278321776540903889896921375657628228572639759015356605672778894721349776623349324783853086566428147842826834538490275065498733309355301874570321670139428207650307969520279898004786902326676741053832245278673753965801419599463649726657498640395391489468871002648094234708763211625745238115943177975107729326803741883494597778955254787906305446648311473830196910470634041190321644762099870692446050466091998736559011705713678529405529420393411432716938127747466265952466910313645120980146817504761534917894605042776163258599181051222718725725861534152027866636563527886050612440686933521449394584182969641331886217127605407410517498722487385042234287151250969378599699423682397117253966009731881767516473727139946016323523404055424181580280753892584162052626077241449384823716628697972191550030082624105079642235607422335711600683285144284064329665012920205771114234696022071407966029219444998361731606512608940387352276070412591573396429649700039669571562241528033409231584339495210170598429349361647886874626449897521178488086543770227209774159592977376155618051744658233010635160402207017746476191695375930759153017030246299105043637931312905771088205440047610554126830200362526271432776355178685568240371219363210832087689566872878816319972026614662896471046196557413131621182809187537071821112284559998711733345609764680847382027097464765567892852743736056626629435001467277716011329184480470993166246382512191738408748721896090713177289797070581226639856205414428713824938302542107554354874074787252189606473388056865163692155562769735733626751634552114212979645582041024047010110490061453691071348270281435142974799661392304126686435285021860994177287475509005752406976788430195575516261877767538934790913721763645188379068246646213954554735874214934865682947727623863967712518438318813267977026322552833589876307718229824829066205306160251681749519271093625842650559214884234861516570756353702291859957778044340382636520771278144682620662236327005532354558690685676806633200362196510468548012571291075220754166938156532027803114430610682492251390997382403607536937640151140285871370656057341613374935009250959684427053272083937479137494256482233630127093142978027683575556553842741831542685304717874535491322169265827278172003116485621777078397435502805252362487052444270365784538962479517878018457973674541494680888661391051228691792387598824935287381401103497752942371528119683740307083235560820035476738659604867995071054964558067222300811629539190323566086841016444831889187125091763254926047790808744938390536188895643891151692427392676255824943044090800099467476795877136395038559292541144905661750372698518021261472766951997756968296272717054483123796304853833065824804714311773841110663290298693823885608706177319580064112252752720957907964711333155970712886090206908395288864917129013518566032422455074162380208749168645948088537692750898670629887953526867756469690433600976100747714556837643572174212375850000350045021407581691797898257116373311308915589258245537160629578038594994080841731728142652030767791150553934887172186984858187179886697296344157660553089933642913475168595253002222192456557910337652590833431963604569263117685725083409281101015847865590331533185415035483164582938929158726062022712737040393775852747327419211935519691735168100266997314021462660270690830725491238292924704505724449379605872428329670014383888413713871642651615862457855138133398228597728431606575245960202208078754338656587240308746028984156528363545298809891015862340947143314610885794749770694240378587127830920785618304548492044581566619989453036445183201165909463893125728271516177993472205538744488465907410618434719061700468533707503812064203906848477664429237810123967574934933025857687111793118073567040992440549125977368348831967820495510758402486785278910944755656625006694151717341989067565197234575033812339478074881221331614770661614921625656863335139050216183182364729365243584016772867361187847271322722406379111536161157226480669280834546535736259061521465021151557414460525176073990530745682632742451760918373858031034057230919238636725786170147140229115908752436917745248119079966381461301517278324988527211745734929204452408860845962974285584158889794585886637441205562667799594149860090471846106985467374641490118227563437927418677845039526639591168797106674186432041225315277037397594822886360051858013918922830638963318671443972879688553806898788760662878393243300898125932539335926971887184276899974121193127627230020475311961493564421846321683354655910309746189364124794610736347879749081058524709115991474189101997689532693680353862852279656228624127225225636706144421582559465029389840199233791064366064493151468442902110300725328858794012552652247410408630184251274466408179086276987543932269134344237390505972136541749200090817402715433072051079312924115516362231589373117588780979448025462323334368773825275208583065587559457208031124382522934099228534161622836500189852977085948636051164058854949137672060226381842652467463447414085483260602067408407800935261824288541517250612252575325673472605598753775664055541531305363874830358554189143020084352810829620746689225598199895813017573424482458565286720453663301288927738564760010616341559614980481537712204694572926194706082361782950494207693284665582636687336800764151507584712271612225444327165510035599270217563164542753351651815942201778890001971282847316648697969129402199618008499637894820394466377642446835877617752967803143067497543146377589364627153978273894558015645928305861116234018351029171759270369982594844756630850024605406424068944425817128779430453510267447259252366588507179621609153642608452400179260042735076485538508966746106106054545962646062700246315395433796662521884915322814959721660230219875426503152937839507143732231543022953137902595331839869120527074620325755586537092089087240798933848949247305826169416351475950233627042368158660029844195480651909570836932121522377729780803408650623474683403845759182361255501600892059850596508408380608479459303700891454928300713271344178624285553946098620497796897753994733021000946820112329498422604365697179092310182758129152552158819453106096375642975171717907377953234175103033768837289930155095100496652893939933574813138645913062985620023828870701223803293644625370630561805530250355249215845545053909057050202280638954761199996197694076361121669011603331911751624203441968268960941342463663631165101342773969354291317743265006331011965116462222879823375340719111125417140465034168676731925732956977824601217974514609708853953883112717633753289124140382456291967694528959281388880636870144340118236893684953507594118976017740380760029664558596758718037712375186856037663899917396184803004579861903656064667099054112157162542979278193588964848390824300864283672751738883153830773753939533318177135864771178149171417654415124703965707217124270673805152859838099655810010222547881780538843808690586963539677521655641902431297633544846045462712282021007007804222367032098968327315095205840684033530241856645649664501346113683318657469574892225666300975008481942670500271346257722853933572681286187159803819377052475207164340736017296404193028841070958547204606845330774796263130433177581411304596772036665898683989499629282546649014091315667021204749902849526481013289559061471010399280556924095145188343510819587347480939992919171119025693516199497828656148745443338034474526834321322835149591620662312333908576112060583203465537229631900012981902944195866987013664225629883944259349776466063496265357937165907867428102463374648825822824010694248917865944578743281368702610550930801679982067536539671350245472057127925409587919550318528055028166409849836361006550200910570723489859530302276855693303800569019223866061467775561787079020785332058758100554774884192337779186189203381820898517334759124305328844560784976744483316524345649542504820266410356422500201340076271366131827331803696444552000040345692069830523881738350673618983222309756528720076326736114754829119384962518830418860941271569359489327460331386062979030475962157570272024641488375837871630065254907461670298097669546939424287003652595818639997498664786931595863256922119572432100430483812543337592513140029648530684803291362936450020775758802120826777142903641227677598915106962684748973838091889692913310502907120996067916690266794649312483811083990055692021345515611218277005732807687346833904239877347817832277795516429309498599580892606804628583613535720477498911463963364946254799929609572803591128872794171234867113288917954010477745267109051364871281153389724164648991387679521620548079616460268811308532009122842823972487387320875925188181964755715789546480096481519522725116353833324882068516863704673339472520048780219074822634998396212770616918135830703842181251912169878514164722090265407702407971208828691581904532691443086743024828027846047120157970051335864438713445889314985093645446201326068964700714475177736196013925145612069034270252301679057275621798253268608964263806639206741990324526922209375178382919648831601137186950291872801831718587736654110373829748442673566390235189445125163369106344139482596025287845327018686246006403555357259740299932251758484324520133940517492576515631092309366991510870294587627109102481709138390423083214794256417350559193957992643791650579809395474067474258619152848848698883301706552310549348232089617369426346404449457782750181759479345234889570564730972182093973980483130653250023956210247988233414469091563904949353099792194542742709504964423137093924983606953759506049720649977597919632149474297496250490827494467941679588147707736742596874166270160198220374718222331206967918974942417518963126311492965971260462240844940211327786665974168463421070259042786795181352404007980423606443110698013903806295575074352285388795405850073351593013411085122102497778804056643079216422257317171515057389378789254389641574159113697702875744111696645261327624242008223356384854086177439214245347516718032699730228723527522494213203444938928056803351907844537354165984460508441126546160897921185943523423125190336572104629298962120268401328739886558569344922150342023022608724810777923059396112754545970419097564177153284156496066924583865117819337388816290462233090834171466403281476458878439371314229347781647703868551096620959390817938738174854401980607669618289651205379330839701334951414060201331771089669134735556333786071143671419983959741733693079689996524494891030148631767166633265113570343982670564299048721309586950180101583160657619599550166125868825939738628729122636963472009256927773981567509457477783404306827604460885525667836686126889237695272183548479925700643332033121592316453777258475310886858264956920891963070407996381902664455919644368617761299889401428497109626305341771614282802431816460152731050765946623157363498356476754924903512971164319262361438733256169868739272126813453088453990720456685099360132920619331407280932166624543880072993569919820222158157828516720952157257964448388080355561757135803856185345756339134860247267959972065590650185323234473557005881477182605014282003375777694902456636096296418930203831981191539754664175657158517236237976685730841352050599795747571544613106654278194671040065708784726503971092446601619921238624589408245195467621765395023351967675296306713232091662933717514029367724109768279264921578202713469349639889441493778854875553887025403010098543364815772443490265585716682893208938392440118653993642055725400202424845553685260030496202992732242652603660857820077195649930357759699388905529850580532702163552582157354152311842774763495697688099350145956747121033739384018332989427437934386338885005456421479561867466263771401713269596640194715168713364437368050682391870473773713342172751696862888678836567709062302208098816633053062192823606423699263928963474195803714571025811858895701872361344226994706287665620578129242696917260192455788464704749537707724018777495104174105106553522099928163237524860011363557602098147498440827973982266883126827730579550589188777757900314568977971869375870709614131345331890424250326605366787342286560022934352622834758417550112956019364030628414733876686424950315562233735085688644403938646750384845395536437739097253239411074723061885944038094696106215819367598896302923279295100953242067582687047471151807322512450133843242491559541168978550081764736880963618120122378143172375391560205131674931859861003651393190990849250472936016003172752952784011402434636518603547836960888801521129602183532828734029840927094672753941113048013932111204918847155943784554581433505382601392716265031269111569308207296952700699708368104885491919308080613919507350305319004741639896781390689388267120669182568080449257246609745938010281348033909621677629313853071014362300105832176521888767588709791821105831168229854421235970207035013645233542470485239141472374346345008986229448294990300725825762114845617410989939698303318898839874219248361690592741416577787153079814669672429404824458821115203947719280724069300612943647814649822067279546935906705999280689114543227371401992005617671026928824326600267560648763202945725481816121344630184413987641163574412392482178106313183358763144990943713072358268186228049700676704489199182941980909212424225285414472714835472244012397553722097679536282629210117454277204859110072213268573831790360769365002166563176993612477204777684418966194995275985292485554516228358625278284235832869841321527936780226452978666136304481831481516443578307997379285908306805699795179996280419749567764710271581573535823643698672406276529927462053573975899508748790498596717397631273398800038954842072454929233695709633561330611170471211938141058683190192126809618165206455702686215066454809829360167967424442834085527055697420679238539808819171084798534576163484352823258143490496340911749205030291567091680196476605012376402630310529949267775908058924163095917177767295038733287666956215100565444780693051701516698610232287380731374040413806999164996796332867046173087564226651707655560572401358240781893408206701687634136710167610804548117346334505398299823841318694862379947008988451122890023953338987852568203364859345577070464385539259526702935569560291538947977156692394507487407580885189727647657671394967549133309780815501971234410073746115561341311115181348867150181181845689848527933295448981673571042222682565777284590252697589172141394133879021744423505984698114090828820789477012692093616919759849744884500544449423123287145062273304749277460428907536225557730966252470013696983027331471297105282780089654780219298617942938223477772660526808245144884566567901897133598910080167795116976311192709252948316909094596957481355487892272133968062740749712877350516085849371919499526165492318810677866749265138379445806120735221442518920083262722201596871206651829191614874123530103870360880551934508195879498837641594606040637279836590091931684048501752695491913699074460511258341408959479358469506786196073277833125377028873196268032288767591902895776390508124648709605040136704040816005340690461335279132908261280072319224903999156866100261355195486645542257088836068680104278609783956333093833085731340284509984393898676450017681548545557672519607189426198780642896292257180058526294478890111019508145071459321215623545125918127771931274585370494509918923043576232110337720205099222927774252263908344867709301466928097878025787160712423626536078068497472354382532710519307787202957968782999764326964850238998601712776359028323768218733533599807668018732250764799548443405556400269047061050567112569129529791463381813353693816988409870518178078849143739526925425246783584122611204119019722022345818079954506614956207647402896927754681796826062539906991911938037226073847793977790916406295692061975455297027100374411878357256702669726653271392245486284994167924307645351953020004031373435770434512660580717953122320209107044270808318862671368113653498498072976807214863115932557252925624549928382236057767612729938272734856982559128422331722558588126617127419748532264185318050838377744236256789618402569400800418152099334637445921859064039049453632586801922322669172078814920454655742608087807989546050322573016115853566836004367968396765122926587906100487904218283063765315819175506019102222383401645070226479479624196888887152295649980691978974824804085398273314920112298935628204376606590539391576017493785792898145492526668611354939679962680349445786320443494214423766714011917674420501101886533914286173205237855841223584947926915421435343766800478026221817625387137646284614828339785615368094907745150772857831245686634197705619089946850071833924243223890134210029949741261113364776762791268265845636191220435427565838009831556123548528113898138112130595478617178936725460803693763812303250629161169420924344138649697915659131607773805976282657422651818822455889497708277016415274790904018682735145592663307018695054078444463551483253585713629280726067362020765982279026001876390237811887104149073203269177554952813573456176177250655090228740750494423986019551480737707423346076476220214884619537196834058408037513118361957981590324758606365508549571070288395706183161331695591198385480873881255609386615982756370337644736052391507095912021156508392119268951106309839183672064377143016834765306557984132143166245454168520804560828920400897650678040254750832143852209084983609981441668241130521752977131673020258738287179549308060784364008496632641221016252587649845212602468639717325792551374476439662956629921666960922296159558573430188029699049135118705907521901187710220898975965781528262428774933473759642647418542943941731715536695911846697012156677731822048027775506979726922681619384824007234080126517009904676968176943212331636496185072810330718557336199654093211673743922668167624535289237985605695694063663254160405621521179957205991347155532239020005088065409748754537699596189595274335943167339343904185919705020070090999000313728286303815945601976811755257687499740498788785760304365624127863807809579198145822105731508856523186326642108742518381641303947240186460188387008930480441965022004035627626747776897240110343117420856573548330857767495802924934590716183069423177802113278918820017403526206571696911219692757314821789514991072780781040031807767901438776122557884914476349284529361244188221899613332519685723483226801349673321881960869998249068336441083450413282389950805953248149452950389906865964936590530618537552753879874609384904056221850243475103822176678917183387645724987910777327876479052593703241165191918528893781045076057976779181193130378375419349449656581210595607263579603030361430377444052166532916529415455715257764896399051849483549432705037316986898136592342327927505791384090778193489518637452899880468762059921270388482583590123202853408161719619770678417266719007611461717293848735617543332973289296767070949159539094713525063557667841659239284541341789751907448319909986895779449321565712377290351710247184773502272273533571692158992697927434324433624961020775698959102271123855974603111706012120581926361500866014284740912659592437987486222820670841368593952293005562197351857252702078891950999125975565892576346553228113653904939949952914337959781239441345783900280276432501729663405736069507453152172507211274552008518726345701230499254659984759034987112691089514682224286018477401561338488168170375178572396468730589768143891334847166649878013794423700514830937198389913474005983938697602752244799342836086416297435627616132731168405815537463120400120064911567086402854207645215102246975731975752323973707368101409116581333709114344125377331802433717309858836950616520495798546695974254694060763636124669868052156914938645015650911001325457876742990054484008778347241258141868166541519668473550903171018734942131508686238485593221589399730822328334820897718958796961166030675468768643531299206492642614735533726260736896677474318259768912593482208443440882187394943106159696600452675232017572783836458050622048122799650536926652777157591033330537977371272778398093707825189012246026254866313775977337486411457428760612672622256210765271176194244671210377669544504743094278988372780081063040031955593070541088033758324306163319208476098220866564539138485587802733968872660213545017422571853058954245861378430215996138201098326934545949274839728150934209742260291985991545172109010651293459314160164407036021417066702106352640584140097108791805564709711547082376180200459765494780687555746432166183494865336546234864687625592304803371126796602358052209895857095074131730101028427428644267943460136535311178439794872658528145876848067575471805213367654845770316039589276872647139145271252400379891584149207942359227771548321591529844418357247080561582198209460202441163072226908852925434537794383382082656636086669634093703450475774564254930818723164706966157617473835784248604364847003557449715585459282526882271809264301628645188802876440885611912585086567968209426718224208032041841772665554446669822480146319468819654973894261528210187473319721028258702466432009054600990175782821148850070865193659651906568488275536912793049435816087960901817079092304688576794198200769835569187876135445288912211733080474631797293091558404433443880323514008379225584225472384749573503022189857188632329131320712682356213205784130074182372026259602161467016839226625662043199175058555531885160223778548215660481524132849153058313720950267321634030451605348978241841685343660832828732093665105192519812326289629582792975090336588312463405995373394910989320988860137369053817918329968351564996040447565895869156665248340702289346322047823347971447903126583438681792863126194746328630613838811194250924976595476213760557552421155825797216697118278706509126461802942418928713692505552417916985266587550923212009497812576569186762523587828121461187366921190632199105578531720663647335386294268620561675199317159197723709697317769324141652125145112804944847544576038842627182261000645994925531497039312049858490696297092396855834989542668296170850305183794489780074393959935650466440641748598684924948221212064494297696960248357306893967397921658819175469378732764050777706324927368603765319499489208086121644459479085123252772812966257126266530545961453953973410761987761921674420298644399485245042729626632454573858656379350253001589089796112328382536555297038749239207865090834648605362400756251333819722396825294896996673004315671837554447669809884277765947808922866056692339185696758854857789396343994604808775937035370440522630781070307598375342994035957875030568121482404162054793316897098941878755970108989698886227146372428936001397863194283568116091212150458429602862605036483340206434036789126496678960411239833965801798484337001288010932900684447324657290113674683917795691954008654032104969668902681221349539941915564592359542431086393719250733953272959005613031661155318589720064413288107827910304260597108816859896887103293419624597393701593234810268225691731254001174804196169417804111268890378529564185040859540111750990632875693957078679500874879218127545408966610860030951564741022052827858538718558403129180694133213581435965574112062388756053788987647017999264780201965290072798454882368208971706756034854485008506534832106464613141398179300445730599110384692280567281703630798490935746251212415618282091900909444404844208932191476529209135505369049706980138101929779893988496631106195923563512986663790427337743948405449813564737006732134274522980578872619899233630663976532194149247003442244987674848381826670074450177435468797654397350947425183792036389281750573383654624158922658683009900876629149343402576476688682994751648144536341658215522372376247891433063169502745319970693544530567490502692391411866586124144859903183100753923681895584701334499730167065803939286699175687044238063013689730002301330841352654403204793884370857183022392314895512508253837369817982304759088078543046567545293844840981979852108028686094341412222785654826887012527290560561698005965368189503263805189590862836764727949248682568863513945978028630435060758566598254419279311622724912651027272528601560013270569884069163074431814790642565084192335814657515353150969461926008479072391147597915110587713688821100255500191128453432044201057803007516419344039145193596119607902626757011365918197759559730985184777066025080406106302148196913456150248746286351012642668364552097198566998939880757164969811647146960647985908341583515449457821009781975358778782135521372083587071074945657849566064632455456579551287189937705194727689420322122256905643572227080427353758263623941159837566449579343439272213135217671236166698142996802178448996588894412401166907889834542295847604127969159718199365034421611936878095681817573267401059492736944168609346850305558228063631188882927006854343087282539988017020906089225699239533477605634271348528879877800400005630567562488005522021500478586505672165371526807557169382995094111219581322789290710815014152509037572169862866510036725890535771104953356378413842197236636982415842752096506438785895027103051214048876799369941117818550059582469076984439568516366885758670079763403384677882922248609163970820610178768008524915169182765522152177316383467188784954977030631474992245852520231561950485592929956580539463357541689780749254975987036619660194415156963862404842133263873015430823255565144791360210358976270165122912532581505327506328152861196758168494299500177913056043689783618088362122739585157729143255493245064553110767752891660617814234218549860565841539029291556602802993876762926658580270419073344097162587497793840406874915494747366345605697938470870874861880683100852318638094047441967254718444791920306977353319411449728164281923219909450837052593937195877845228676906874363692284215652877788035601769946888643024607934350547601439037768779810420961751973120339829766145778793534773676212283088312902013607305233644150673754100892189319639896069940583205594212794641892774831650959999542665965193775295138570851864891685994872545311350570796534354041139577332245051760248783779049097088963115313432743399557328713542740119029503672798763967932021778075400934012111743743918456101265910087561910085555492519351738338075025753935240863826272843007795203617078480046850003885135957076076558168481395259059241868097594835545652034366600530234959822196391874355659349188939259045219532829845419546751643210001537511220661012616765790228915783790300152756637335099168765326294378412681524356208790850960018862798898752302737222549480474004563590316003228036281470705665294022180553039468191031004850375168591907199081782413841866376952785102929261046538866048592129827635048036148866887075555354659244318470859429143551650212491080386112602090392982660983282758255661029470739759957359112401785468521712242402750713005730891833820970688468770933675767384432252949883682185687980345832886390925648550329758099482878787467335873432290918502712364476389030960001261845675389179261673173383918235996440433183051332868036766507540340908472109428502259450849006758033949092198822036143535647329765416710781978229579959190444729136456030770388978937856444565357831069669980220535227181788135908786506133510817517177522690356498522045753138815896055066123295479326715596534173311630329641985294004525782672980523673284876482643015666266829315993284147994103667670620972647684607986097742804589273691931821326598326836373623011552825010986249565635366165631576509282462601131661809332572648518835116680873873081717708530056756170446608453006357966786470167156365280410714938829944173075699543862199437601073735666564708316668445278722954769382840814300228306199627465281949956434598842082536090519846934508376341751196155417300842404194640861834229567935562348679624533003344978687198837484977959508521408967408511072790614027494662981974765884981186639920353831367032033763073761023413177755329087075105340081118167511974621368933369429160951656729246483337956499089771479172797192904229789812700198671989391500784229117519099612222423127472380219573859686588105790136388200861420119327973202383599638535029480136106729121490273298128907934050801063526409264178968618150495176289089436127710017058204243268815823387177879925526501918730079906330039018241498868084638868737888394232468114611797361554673063137760846528133861699308020516605830756498583978255113994773252915864460936525851387554428415238011403578000741111447025758697212790514205445090465328685734082904956705085310125788434024809265633507235685995673454354847280646509200763892251089587043593835873176362436745402518939423058658441321344089474062649556470947092893516308956407778282984258724151142812592495945873296778537824034664680830394883577945965102460476709417991326483296620964136250606979902326449829283920776099063041497937397051346128008678737729477289399226122451445616960946052405462872313639812314205342958939234276256732305160699932342357785590656384702170690535937047510648195451232967422002124972840000113035968776115877475792834350458940735329443304979392185700600922510144129729120815332781107514764343126222055987651418128896933221718918820496944896544165046394620402801373939111762275409482564679916291071247299929180887137900021035838638009890148320412800299907379458163436214745421040742502296957721415502585213123862539724376751020587790352787896659272793686436172149613317807736353757942470043653020511242056667944267227873806421509990035984415441166927678496002450584268205219428966532578510358851801021327941485058212087382845271274029308943566072793244997982853937922335213351431865931710206642684515632497471895031578511035987563546092153827533621454201711958461602667755628551527651231049500558734138865353172369771816101869119517684019293658593384006817999351768623635151278278732526966228605417577779200015435799013299997555667895441894367406559182895125046971579727787810491497126819894177991422109653514519400456912706023980429256422846520387562540785753188180357870567803228788764369369957347362083713951313645036931398570363004026973311782286042326404685999552234667799239657782961476652692852944233098384804262778453743177396110311475152769601609512570073085346264859015356467595521595940757196016603764926151173302227766752970003394410549961947901672480912856705121373150107403973455056190066578365692267989864142368060273892896030230083905519823146859298446442970710386878103228236669492420932727782090229637045760448200726994633156752680376440342999706708964876705435300466546454533502999578368576317707283721769881644326932290629650964347078610437805714412035268557044283401109089861399441016668164235352409789484489061333669124181458794094468698173045390485057116495514750918904384746689571142927439039593451530625954212964601092570715363131622061236725039843149634034286931194787505314901566625291842064585775839551833715818741459005673875699851714288820344365253511314453671847003790532460112937440812696944602981398352959906263916037603375184136903198034443409266595744217797494918239174121806928766101936233224998804780271705538758846212612848590186313508597322429470710713371236964914271130759732563412700248222965316005257569067835378838927153602086036077301076529956588924253419346266504658390793670792665209484765000884985875741006624358096974421011114570020015087764747405108285031630876626599691539373319793617810870649372787655238316252898082222814351171827070114395512096315471746295128647702872633724851082285985929473412343023390612287901465687365278617194060683778150329254291190121768026091758695733397552125505438749227612916777724677614114977952596577253810298329842262509208430774002924724644959742002324169247306097265185492932413742483779970068385439616663415147151956836777673604339417849649885773714552948939978195253513646815035144461050061993007782947027225141936669687993280042310618734733326889250426612967156331640421239117463980284694347685703550657671219801918451030455206341007903017454139883283396484435713508269056510972110535148821091249320288456223587231683574604076913337912841887744630643047125717076027854956955916608949037568968450373533266742041205087953456676082319111501552603027669827930620946124110785994927465916518121044070386195135072983253328863964909053923274326078499873090350587250918236287887719128717641425587146188904558668095040441620411430780989900746616172337588258350755609594020486794534553032472333343887668664344597991924056450585767425742355201564660206503564068067577550383816056937323288809989828809892119425165480124375342667133717717713649691844629706051330873212820781474141642164325978678691373109316657187415416275527880682290451736757140357849257928183969091926762835685606025684631788719395533155370362669812740065891524656808447138041045348861952748932854208455462906261882489034187689980066412465812976638833760283178372996845389480713818719534507522644855797989255271637623283981816177823969157813501959850385765161430447928107441811313339462521064013518508103405309104142499142001773558838047881679189088398481645080105826895059288681593081901815541873174271629389321391110255114625340822810030436619435272842725617449353956927751931026461206146034874830747497860370840444078110244113386106213329527673269968474303261291468328871948584275771719101884374531273046302675855557242056349351091061743128306435826898384825225670736878608776591804912170051037956413722493406656779001148067444819956296775495184205191032394446524931484603362959243250614165305101056177641454007430573046906928072164039112899612147488955487727035137438320306454736129486044038620896740303796624725835967510717619896532436655658051980456909543536183744587298049187133179133172080729994947970907246396534154822123430475894951726970434860949953965956086662553122322064959414685250088080869676457081727530289790174626477426287557357526622427289865702260514579313195317804172936156817749526316737571063263166498818097665348039347295274636646499590447805235446284202932636125396009538557801084729750168483694251979842121680230884879136328331133704058047823565804527828857673452783181323515139154511308874038320142173272006573755341718935552150463719326915185528026900558291521780453181736091474522711834790590164187965408425706755795217068063791372483056901398579118580865471557451093539130118115724154054876155467013004023047434261042745017968859463057960759661297895616887174017295324780599823865131397850713398871995266233234214874562937003204114724283196699883969354766134401146063342112834765711988908133002170894402136141240592023972713636808954191775226562202810885235706278138175822726256371100116836056661622359906961782675501898636957337784843181841464634190120285167931660776878939415738720902534748429884379710974186174018314554082415630019755936770210872921039563378940139955456877332904314811974664197706445753254678734867955285857707717495079349253302023417455351774722107941048735226000151241476886316349086496055828707114014021633148407752015011725211766145844573838944356286509530990875129741005953835060631274634183220361177763866627008801499163486336624062672546798634014983584839338097321741443526100605159137873701115759355831335504207442981051375137195420877763116032538225721279257639623355860762429860398425971166340495462960358277703859189194297723313292364468481635783390644555997729646817220121047169774904713622965224316933681526389956325798684565887460095278099784423433942446435924123247230817120665924740214461527687684084274050882512825187545949896710110362246571793408211473936987324537497347675469969330758934510137479132968524631500032707508201919608366644654332782950951070024504788260585678206413708571851996361950687357645379095336308030918529270608306612518188374831215152973417504647947018799377144936413156377183790045369596713147290217135375896759821477716008102729014420751171746631909671735069846767118788569461254137134677549431919084268641843559396291097174148510404896816346094640677681405969738306744854075630297009495361043307662574397963616849635333557289496770807352057317535004771244442285965163547238628865074806079852551628522987408293921396822165359135054210182518414481867762926862447052355171195328374561620049048978081727695713144810168172047434440215971543358203362282442662316836139817980874811094184602658486264252440284445396337199766707543619086132509010043718261653803013404719263329463463665021760743446557334256624946370875506138954319342334168600393349973132312752258453987423848261363672290972739068173996124878258894855893522185359182081212411801762104081975235531658623893943683358222347291228201778641149546297737278662221964809393257487575329037826414891781286508084621108884358253395458898975664248209439354134724234656662422450009514131405142384732654268046540287569131048704747324992718054431798227435377266430432486668331933376324833375557500412712372101979678961034075920614857369251160301937800286804742675613400901461412782451043259537185918346909251124125079733765754939725138678800664651681634573647554757813710858361068261337061823970297527187919892507976245295422999656868424098862883249308446090862988984986672682107637804984268941493171484263744432859854489201729326858285609137203600432852707242273860624016745283904928118699702217494376653400574161421181882473263322054494932851956927725808272062005624344614320157717099136934260028551225674765984027375931371836520963017792910234252312227106592004862705160683551596112463955587540735257295008922486308611258036621706226727083113745733443188179495104597459108025702698733237713501192800545445468288132023956054235430698306108440817433503050020652739812385117488425385192407216814674822605523713267012127102473484786275472545659254813448566310067447287565773582808527781070822105143654694986086168619505234261704440713685932877420239185088829889582922591519308385535207151629112005235077747121067195935251218725146150776571881704126430242876378921479914412130736439910349233321849384747785174097999737503098967856954564974613165040273010039608378199911639266830295075481020474759251590395998913355931311987840873783325126834905505726173724907119340111678269682418760673220185192506009481985131205229264282623528996399839984212936747854919619152435167551886711582335787540346481176441357687447894526594117014216152760244800928915659180663973690629569629565648172947743504173641458912871496667047360423372894525325756830470151390537569961599769221553124623810809138256406394775167538702734407225041387974314158892997535284663363075992428492001982569618075890818750924069664283642721791942215643648981147617405217921022164399297447344431712406252755605635465926212017426687540084079331695774679149490157766969341993085955898893788432657703651970291341007917895741710842847814116194909355767188080104643522298485621767851270874366359982782923814430418904924096498233257057947002795415203702973704233794500084349855116185047389903611281567725056460017877855297293296934203965684339408829866601733459063867519889033798848833463406742746470606372530439874071662121364308497950969299424827562897202908164041627045317654473050671725781807863789401246703734892947139979221589317223273704899609377919274745716899997268490667654341087019855630169389294311924039836946385559772025565759910999319885995784930304409887124684898144291166997352704646438343522137583725143511738994035346832494569156289695710868927998468185566170307364526530965337018720663630653373799708548888719746315232377486728639164331035561207156379900615174213858148555426396123226724239412098705341074948556970490570749149042560435080109093543086173126001131624326188636942652123914717068958870355438526957631518973767016953553207021231491126199287992407372775242054465091312344764566784367457064215114771039558963736372210592075950015062265949306402203328868403876073855687154713391148680897441947062508263691301297318832867418329305038544777938079557326079310941804427361199529751276690405899887020159864381720147958777097572077470518607386724389494029113319576526123471854939099443253339548368795991583472464161759798362317920873994990971225303536283504703679867512676168324047238541731501119608861022905981256300016185510704319476781277286985533802313940342317880820102039635391076312911668369506524822461205673686865114249233721817056722278073423187871163064078609781937099606978695573749639651133084328795214720738255963104096596115382602199479855230040901074270972579484077531131598926570076062141469597775914563992420125280338543599055730622413157678896802522873951158452146244918859142421590306453034277581656140341283209793983123843842344065144916351049639888978663644817354380949697786338341147384817420010730672627990336757064151659789084062391398234652776559144829155699365404560104073012717681017303570101384109235638193993467108431349440996449600175738310695661054906955314887975101243106335532667344378955920338322813904120003377629385324620763396166030951511417558749219876091754152559653253980746152629795361503572475195707621954918385225186649356763562332440801531777803367078050495196691964639660242271691001728013907335775239693730943228789874919709714450381359697208835723430419824787231597938991177964599695690838638109336481132074472143405074543909322732628262149467904725263198487797846072320129137731761499156076812749837139518954388484782040749679397507697987027391892972354127510576143403805769851994740034353398818994534782416955631784810570416209896489247628472067733785391352697658895238592083316677461552501326443039259625168126307244512513795019351031085914068102027225639806862122544690347368806046801320627899001379347213368710368180286533810261294267789135187422780464495902297739711837101429491588389240480750329757675545714547296765565196143881991458548192818823608894514793064624606715354730480381633142339404514275077105559541004913023345025449669056789053343590627285292085500426628026237545143588995937040080019231508416883973174026444523060492104424660054190270481994876668772517726452111736351528902868263408179180273766200116350819331775364599087936478911517813324417584956485843526800734245783929109635653548996234021358295435980368852479043185066459758026054059284524897137388346783789582710000491424848549889351516380950111469655492452697555714265283464011818873186722769425786680978862585613706816657287926294699656918027770442505829145804388571124437189719332085588045909107037347865670255998270052495303408712990387444603391754921324090701453550377043257827734984556276633844954945871084870123091202676448566592924564641857140037339928252386023063371312487801140418490409361966499803990177275686875469879937713263782850940537053170250095142326993131771260050216546176094006490435067703544656295419011383429942222764167144577958907336252798978176862649951384849180595572018963292557706440535490874281029102238639251564910858988352143558884187303117319149218210630981703657227939538951395967707492761272613056238661296051602294756178651469887376098116738455717264867295099677947574943485439684627394835131882976541797595298319789975207027877233763488101413406289858907132272413531413894123467555421748129702617669107369464483162140482904978093314044388340371995458599474238142048545698874985668740029036720204916446706085809014757407790176716353811685057749985073900831288364060691673290170655618786018870507235713717684715496590641243038402616611038405377484502315234051285213477571303050188281837091087133221574169185298414803071401375157497598036785562497134394748044472486628398448433321464417401033596943702270560706895299490106620490525231333481039641212815111531875919041848128194576418789294713329701814847649054552659237332863968735319542000588534756926439900803901411650364237688467878400725732658229713607609665416960850116594563692082510304413965513719590129837309172431946220762155928476819153662805838854612271174768139355634455511633846945285354447065090048904709969436070163914087006389633598818502586141305143696548533814719555136683785560860212440441830140344336151525187393086138416118493885233160077359455875782447810935827044155261465986525278691605178027621903097718583872130031337085395091756722837338366505786937113556351242131390659571405459012859900346178972768667684377767345327879689589887212251042296704967074081343251394869384617231064981690613097675628130495324417279806016961308975497765892000631386101964713959444151001210932255358264787385904898143495888722893354671394526018168087315772543642431657526709307455165840623513207176113212950646246624978952576976658784047430902690031865703191888166804179581336058961618186450142908851751957869526701523181652205357472583473500947427511759226468280945772997642528317858475330150558081449693876667953306926462143623799301371594607678725498688624170886113600554350961660838580248645206203019040587322258384284125606505346712167224938519062270504163780218025664888014225371434893938448405624079482051524841386815393363664812396452695525328032362462146380581922545542125527130307286331429009295271549914177524012512836284765010444175965871176782130298144261055749776068292402896689003338082554047885940198453000008800647070560320321541644715428196579884313764978666554679270373567542323783161481773220060078545675097653798991295832557893681063426297221125554594710781496968877859443227556933314604504730990149390887130410512210780323236202219764850209648606374012166350007656052906694454190974100700747230867571872789152314316653256608484325350454721716239708983224938700064402782592767251013323307194900780037369375067849472097917813000093386884555942925087069495614703644410307000221095673781797809968358435667073863840959899003007979072067904660603462070307768174887823333190344759777724733525908545139434041277748985160752196948976635107642400082825298095068268187741276916729640140086939044253209370729802563570096179600802358694491526135391939415147358829890486177705606640057656844919877237476333798032278696164436401185238709669088897260161437795780645239747863039310525894630448792918186719910019470230856805598562285098346363025667087927625192220369369599996814044190937326865368745817568181952728708978585861095356446426143360345307813271589592938258775650010608925799986383938138045322222883169509189120752778040634254372232810391511240069327791100469169240648331103815586900563795982669100728990143533614525243361476940409846463451217126262128602681502182532457000392853981227944317877851031080359957421788869830794607221376969311463613989605445657692750594047868326340377322251393496275456613555179673852127743967558079041699326425687426237095999518549676381707373130502423771599836786222764125192225013351057417401091799587971418860932803828100189665475919755068784553045226518646702999425974186408543925508625661801242783770862648216154171707775766380602141142907742429933763189053024637337514940587419109499185316692456460437046544791800016274040790180352608377273800343527013918250551696276714883869995447886143760316371865423348431033348349046144243246461906483368777504552958151354240163387158702838111656460279182090508674595648723787942949245169091832828142033495787829502276684380100376433177010724878138582083219921066599339054181997940254955874377786112840240983708569361707512642882063431986588040291036362369588584164152430150070068159150498442467025921196250113863286363735265507908596362431303406841601003712154127767885517911425653683657264871596061885394642734628936827172462582919308087402045879595003147114013439662015959503481977899316094798317325859062589568025179699477212176945456472192459153004583259575936585244843171054685991226119726632431579092952687583761427478674935121081243493342408251871144478389403258414864440173182155567419359225747602817157882276647493053784763425011171675589231016889822779142411875847002609190479022902275419431252489751503675516897229673138450103164392356836391288488200222414337919382479866803776358294871122978006544431334288250033595381962084499625608468173420711152196907251801722400003690336464257679700130732733941582025925974508342909381916865787217857048808711003069980940697912828180219716718864835555350809186738329868816317821333222530120691161635443993415867277555275616497407819016690030248497763989234066948299545805060935796257716451981560939456504704687566362338466885617448407282364046685997727312470563352846601442238108262131692717290820317463560560256673519118233329664527083285783874170039088027566281618565439070623493817287420453584423871333203106167830699522505891500106980354228943168568086978695230759499569294521307899170879681212795208181521620472153307227189818795907213175004425807567028988736236748104080981781635810364541270638844385463153666490463667669982981188735392403682632506287698617632267606711164100253022768930555754167176246068088580956700042470348234007761818634235250267298183257867740871967874430060023189593030219053246336964655392308929533277336821413424820498075382258346404873007163556365895975440954034348503724284920394000598942160812404287740883157647268365677447916275336714234637851476356483376635721958634097731262372123394032658837447715889134530845515189505567610160306212124449837632380286966542217995750950193611950946434797507666752873355080632831051207268989394784791111951740381498313166420076544178386440797923145795331195397655451005642957806693852755973750568837115380155453380735658050295008350501074387711182564943191318114723887929879198469728430024325229490183525008885721977011126716822259973801082029865839593459941885979646496338474647654889961233910273205937449318740775586386593523614667918197696586820104973163302575491665500641230010032883416863030151748356779255864476903778424627829496104490781252898049483086723725506015897282329223132868637620348397871504220618118511531705740664905958387582484257815429440457840415220506320540115390758735090744693172542173952642500262831626378894585697319018267272209043434939532804328406657817322709281179060906196623526952425416434226272289233008476902445630341299682582633390028160550738689490938525196990823112593337172396407903472251788000427858754505999106555273509128767176689984776939073188786499894989392432727466276154144613885604152173623430855830282199760434224809421019703245796814743999868251529789305797505753063169915292141509128043698424323751841460980944121075533261424349472396715377222680705902948351094758582631379542422799427536622396402464128962157752820340262666224319460675699545300890132128604082198665766375497184974949121271230283854847438892717117171557171259295401990877754517762453292953515055137858162825532968373922906628820396857997539513650274342592356163145353304462106152440000791546312103140671995896195786186771460282067415115743839423771252793002095278688882051573481735592876779115201880434781911527404692498025250542755890975383420799659398489279658318223364732875770739583061198659552605801698044747864941827169129892214866946480261069166479890045197390278852575147113154536566621799032454851936029501198588355255313129006276783543032713489761386656303792805097777588191640676081846563489411345539157057372051751166121314180789601177313770175551941272599614326611354432697533067050757627050348527251291310791787655221504356099016072266086987950040414279582906157178398124071674486164515646032340567970408116897343877941131620649041581227129858465909754787569445543341566628964345778097669359953017820874228895266494133925397137193442527768137679820551947715887546813175891597975815606865236508383899162348770364153283801561440458662384339679207959108635648026726328946786914774623587563247253316868520161228298270983007963261282430809156657601309685392657400251608746660277640189763715353763824478739959878408398719626149532183187960652150478489065400247523651569753841920425710725625426239575854829222386195503335937705231331418639103878185979601148859660098893822263763702572264777031013477657181940390608162560121090505847480281796113675753114455752297740345465599579009674509392146997760174503478059340257218903107092256259587330685035476376278212880593257890827420218614352129844285852167618294139732565381013414131818596070301436994266397270129387785004602342173831876951769603608679608208241053559721386659171968822465407013492862487032023260347538045717901576753486640599239596354341330032745058563514382589703862039539542234376953623538954723922603379131290690997256408014025228407648272637952422641573912697808795641928293915921706585960087012044869584091038491245734521110416150185565688009695048853932050528828755954692996502498351136715945564851969647688713293518478397832802625891909964038388055747402756653370509039534203401916082543972322242000461327527922759299862542479307986352391863921762446428325822233666338718049086714582609507886307696149908207815519880205389557504646531123575416617287046295780167932797172576559621460475672809919915673792408086991104409390098987735903394251129950756284527007388005251643869401887833086215417135750811812219033793545697653624382575017403595857458682241952598684704857891439913060027794832818536448622241603859975439126905261570749703085231280445762612580756034210261321229283388439540463203699046863184537599074585912273795097447383259223083578296377668185732005429849885950964468373411654213491180731793626654211236343478916278923853993556938448767783128833610031722223999028302950147538123042752948240812807837219775472114648450463712056936786632617054465483836812899061049499266841556860298883454443806072135143986811443813931900643783078275080002562301699130997935402935621910719982801714258908897458499238334931694463996243928933142087726045192125411182766981571187006546924595040422081976535833391533622646026680136570527650890678615147481525075615575992360469594018998752864206255081186454363383977916987899650270291194961401999425208032807375851328215280545852095958352362534424228896292347899180341660101747733598807133978718971581192196573906062485994431271987221627220063923998532328103132310018626720471973214621162251348974231397503827692569599251445499743034528913028833128293202780762571577061448869189482600847000526637882875755947569318773161511559335217177770496334932570725250111619382082551618298272801060361599156430249361175793071309491679940680343698045558911886085030771530016239195070984194351814332438641950031544821653590397697684872928611263043346231759633511970350410743217071213792630375137420392717636342304548938199687846108039698219037292756730199121715070227947421638570679298177673794737459502196421841229405179773996127408925580906558287824162062659419505889477098623775370553787741744499275863959703493718655856602532899257558363627474750476073210188553372010203459537690687133490139492436212237336932722538616889718761750382641867037469847304546415489752440088850221422420190056738568600647252235711466361844461476243684467573222476854556057158297428802756605944721806877943588845876601080000377150301161054993847591575669747526733653855604017331231196180395936598918173176367955919393333001035875025430493519365880037920364933811399898846320188577698814387643541303491798014654578241636364647016321443158537760711554472482480041476115108290891396582355289042520440958941349562554314766151532101152486119788796564680051712726522869788943051997564987682500299405976816021624279591828573834052122364982638983558606541109057545339510205894065184387970718281846371776091084158519041796298225124728620875231618049053331233537067348595798715127387881280724875816069822768975738916000823764524477493385995096039469525621015734413018362517741978229624631680654229375035300492466109756671598449178781862992036558922758849696370037556526931470675938959324953107458311286575912973579941920914803160615014676259236031100999812551134183780808461095776869426083219806550697670388256658090973468586699354312911686127933561096989730406134238268278767962901377946264334533213840080537132639718509072209614077191910787628018227896394011353963049703121492253831138731245431328332139036468183971036799142715040327274978471031256728382811457034186941995521737589304711026644308937786891335672507660150595878635782542647608473813880664988634470935857358742936845747821342490078202013791103082261308925065637052121918926801659599825962929806680099975575879306895200630242116832737012917920125747785072617343519975143774229333955449899172158076418058054596902948872979687925546252874880298286041780114707320278778749459526421882105391118910362985131280564841310425155148744463466858384379946817247576353086664315767611488441103679683021412760140007001650583742018215872799412561804323276640970769564742529089745205804265111602875240778723278811365123768088210936084501682270696592765360933008321270731428826680492154496905176360280783773183941956003018390249796877801527181231985361495593721390806102294535626647627647821640015315220113717660428609305561932396827605374197315426924189742779653639500841749433404061956267166535283234027805176298846625786833590945482164757712481664689039549393267192042422645163077689506070923512523792987129155232751607631562254483805431801410194596318121364337578272488884576779670532173449654178687231813364602378433382535521362626872842624104799146783687178015741977576299182867606011839337813793541787521616225420159050689952529686527801369410905033580041319716579020035016312001693921192817571723879527713560432631288258832388353918047192745092865306567042556403744702304132288079065441020225009342253383049488864589762645115695769139249667029371222661758761631067856920312494499499465610357163469803143986155351271229705902859081924434179662803255312871066418581225134673173907286789296540776989334534072831762274635618248745520529370123117347797971363090033376115140297218989436605089445117429384751951778407316714015428156721842009966857608072298081591510110177969205225286230557328308434154585629008356631238189860254250402522521124125573514077533597918967901131971084693740313081650243946104364342898884369197403315120446357933599970541165569846937863146988554977102285968802602506659910190278960405834992655616901366028023028429648103403524351147922506954520965807673653656872635947503135636529247028574321229256357585096582585001309472541871940395882213713948318475915340631777862616059173678096631071961655443485157437383001514046429795491463277130136153762685780094959951370600031933729337963864178276615933468942822001258992883730768523221470500899013899898403907817937179120216965734667247332452608060178625799230510113000613681033322116322987135094995048147615873837228832186772871502924525139991159707302084132053637793740292234580214347108509943188017954588468158897327341506833463698344372519953940822391469418916312779071129036001770588403619324910515379634055713179112571860670431507995938870788765970733138595685876114807044986408774860781755225665043294027331749239380246437418883527250440939505418411724046268856559385988316701770787593538593888227272474681208325048351715777326431169055145391189328125237356355006360636532617009008047097572361704207043231391020099787295646361327430995792926142305852872226818722598187701713280899552346464817606932388030683734521668499583210416271279863913452611008239001498988478767495063507696371489522644509211636648414881721815611455257610703560698307032184236894503936518146032222135044038472187176104668353937511986596970705049262934058766717660395000279390254327345142451771597708508354149732866165902716033344915476254056903231789395151722139542855589611513878993824948490084042315661182500155869810378583775722295798274487787489075674385423291926346175880194437746127047047398795969139690827239355986527863968540296778786847874021809225109701737238187860353339978493813513160759749048399176081364530743118734356475909151828607439693552308948507428285622249204316256112546765674493849284670829061373790657394491148972866024104767955299455409247991566633670810689741699386327991244647599885827296101871566748311965010630319835624746350926621947273652241210116679823459756639433326371645677685532288012204852826023668166711761347261188338350666253908830398700730293173719747077432806026948401603957452110061670513469041972756794478887427714052344971346566737365255831566428170902400517654126392482063791328869787171065015427850227297593588968324309447781708214057678281509724884623626492774913783374265527696006059607536170969985055885906100395623478229158694478170887594832658431598453042052263343052456251556429804548778051996577544170441064399850257235690024807631204046456023012308923505065112512945176202821249082528551593173210538404700635669078491911146861449024830899437881730448036665540318010757438435277051314163247444841098196677248745184657022081805353025513442652187866888914024408771511033667482645190899774477764279824975126073540326392872452762244757774782355664694820758939704351737601044483386179024007122549669068634337715357711002476287457760982820219927469572867221117006688216671836117473833842920891035986374345973865360489446327797104876581924287513076449595228185133705879053038035839711263571282712469689295656870303052940054338084486312053168940642626507961638642319964677399083483269177063904316795878227423727485494407400627923902110946121623881698507783819031838098414657991736689409110712838946212252030195346282284223418394679962225027581312687341393951747852954956211667669107639254797297389594626322706134306256999919988612063347483664438310773128327605467054757069975792547215872627242877715755675003669557836372884190833781735340231881104183098664682652865712411899913029118796979141013062982145647193956572140928835788093789361396907811778398370310422442000156993575185124887540545421618444199822003452669346602165784265243576773512361921524941917780819470130163658508737367644358905531883952809640247265821618578982161363977007293168050423021732753468089342017233386630081876789401628538572273325818082425561087572928767417649728546738869217849748597013492015833201953806791362351155831676809795403803684457758591554525331435930375066073190638829972029952188286409233010776409140139943069495457770054651003985705712767068836039843547897100979493153845524825283126524674981402435792044399991181034054152302808541838185912312520226172375047711293041742987054100668122758500914798094615433162288388496676787081708281244967182261148754495033901922060107207910323660067521698401799434561456875560890506540724279177688550651545027453015114699605380517233756411313470631566442038458480869895453039257235405825597879362983455034464039413133878193717795044882537853703916095308772427573253534923874432657481886348984822109518532324604923804588081140306623721889910393952444558756196492452318010810328372472934580647983028548523297515339882833794988561340903754597325004583854815235333832456478191989808944903881284990451163938854942172198708331170474660939209293685949271514487004650645399381244679652974806725632642458954779938629966384465785426520309525281650866550696145562430914732142638736702814949952610987444374892781502394841969227250026970462879104434808836148130094831725321335371814825917042349012665322939279565439590595773612536488945631036423687921714034992827039211732015286580501802174300986469884743473202433885192819564833517264510104039048153341533280760808079166384868538828187674871463031683475357846052061013941748762187684781232346220379897958985399092640529508886358378922157916025896143744224295203082837418683722395114207564024589535729630895782286453356725546557467528519597652289326054259091348095515160897292288647185705669958602052227967532624771653829893521120037018376776916167117937221237648673584003445863550151977762914001393352705232064508149400446067885744361747845745085851357501544446338817513611368108702694840200010765556149569442255610348253066406179098254539770490721344637761341219080116083113562883921293703811246764295928733738365478593455443333127242362398505155903495771897433685434684175056678103132533164627715732546834843529469611211303627415087011651457085743393043021317335127719845319032142512272040573398845006996864394918922550466681155009623657039169604931284967722573906826328066702797715172595177198018616999216005390238161761831752959984031529914427855198347723809717849624035833160383709073483676187534822408769397914316985538466323601650655431219903514008812213657957221705626544326253334161385643983314885256229561880943817402977312151529953780785236981076925594817183993538193213815305577557980122142040251756143054152243954776057647266943360679593687702256853192711517969894530841569411596046337656695835623874099561825146980751132866649819209705451455914799733478722620675705383147769375018366343117103750378377442476511723664347934204893291665006989337211159822888809755494788788985507584428723464716900381721562455146795439443532070248876031702378999552170471961287498117061464145516435122655935921751461737278240489600268319161953538952980509519706182078591642809536827752423311302871724472575338401065201051449718833198841122298770216534003931768589721464544688762814579423342110914666095756918330127469352144532743921236763118252031019688281979198810327823729017021519548764957320922900428465382067708537640194501920501397531466871180785003859684269804023639692318116256564014951661952605907375585465360024280433661242167657059313498051738589304094854910064993319228262417900974472229527925962967231549206522982498933616471961777996018118553073253359057671624437857472945816044429377002215795834140366813449512814806907792992508010638190753738265875090427324868311040848249146185480799265894369165347169665096942069261153217639173574540741251970889393814292184134783019890778854927063262809131629819496146344267509452503301533939211761677127277826124848148653600191066724577997751165689455737183060082333921978121432349890379888795357620932399643569792555134347505800458720140172938310174470569861034514015232323138186258418992346528207016874468002012189461065885915966032108575877486969003695753629997093190503990230798466334242898507965126107086691479451976577601585887592778604538144073065987224174901059761190299728051990424130285690672530049389343098732429054818294296996185280402017648064594370527455145158031502165295892572097454239134111887270275344643444266696667347382433946783635194224674442507429086282281536273856624409634482325715171672621529088485754194609734545998358462560113600974726490613550421376395345179103069375501172819557189096866504711786022017491398850871223958363323078955879198544508344056033703334671494294711052332740287159472921775925793776498910640008662332834047294505995072144928887337994663256389226553343356228957062338539900585987900097421530032894724161736962942965298603176108708670668055609130828327950591202385969678082620168465472861264888226460083865915702008067065092410217809311778080058862710691797362071841378548510839886863065612899191963409167414755021529563732883503167234800874698570126702894988754780481362599702193835845407186227223596224346678078837227932475185952343745676470481893889394773679407720974887536447372363272572741420388569508657433353701489267003796987906376189340451751722612519148674090926861585866472503932717291636252412111843298406907248257286575831127597737809466194235311638040899277537455622418415014885268934635676781736761818750980541506103391818130614269366598276085974954008859476929838396759963930873167220457826179345755261521993202711728585724472617834139880547378055843654202577222862448355734715255648328276279355792203505632969161626705824692871170257241886480285502417236226960438475499641254294272935470446388182022754657929478951792633500288025667486750216500755011974670080822661281825746929899878964675235817774658183733824829819263231581625905973387019184651376147119378220122990129072388051519607098975534593486219301297980937552036112521632178104770630869143440714188987878065235201065746509034456420033470292619570875071868898853715148574380392342037718216227015657259573172359818634102518594710494568256617826632689552504868362021771304946324933007159469903985144469225301507280464090402859349875914606319796709531433371338460395540583982210065474339933149727069387450014949659897583377441260394961537464482818498977028279389434160565470147621598868931993428289684409431571093579571136568621896509727934324330549343731881356705355348616813096081336183860374757246209714747464975863666973065686222563244809733870304932804033332493233326796648752514047555148014595894746046102947255534940751900837017200863004638205068228815955800478941097127966760396095374922251589102638477020578624416544583878115014762806519315855773539517843274785222455350370433671543067460620060711831425001013979752024230261500088351547406318059288518388395135813961764945370328642334424983723459566726931649822593677771621514703009444438993158223824052860080525015301909270199388534019806861465948056959899873561677980537018053683602130194825808899631166194944395928533376120794043791209884606645841947765735973563717936967517258127046320594784445302004445315365445199888239597125559636513615218968347366287875153628804297783861127979881176215049751107140668546898335809308133004573848583637976679666355174459565515819938129646628429586906781957611438298023773430905997292779876293854184162138118966692703724860456863465520372891917941148993024422201425050601216283990961941510272016375345698189519328656347688468351589560798800448626007150944795650458862676182353854966277601949542506343299651252947907075209985892830653028228916428718999042563482589852898668315546356122243350191036258367212246002537573966750479400319054429080856366803584467508812087346157084965800476014180257535253261496763771028755818221416732412784979819050506260823417816148071233888815003321498188220021275627430353824190712299674074001534887753359746767387147865615913351493173716321125657634363600417964603635537503762223741638055726949649267903638133268784329517712429455034018689879256982997499860531321305090270381752221059147335728837130978513141522819919791025705450964669157034955310815550067251299993912864752092796544446019856629838212204949861108494781218530900392656391854271899097411481789494733681205697258981984061380444138610415475842800252097356949782232373480034597010855786975975955721434118326976522798719697230869524476412227656824347232202218365237476098044510021120922963016534969285372176292337348910867244719237047299254284953448427393426155989751148750958192365333016380787194979552288749835847661291186388776375943299700563229061832718696841345295937334440700182284342258325701631120836921911892262587730902464921129946109351309197539889608122659920556465487386988294796038288370753397973708373116787949086959520304878904607433111389173010790275913832694080513239889939025018080510209253351925027676356379664452200813865762645003771062813561303468748679569999901893589074521502591876797714190366598459071570469129018517726164202138307400299841291137794781328394052590700383560031407882423007488127606030421277799590519029026151036209343639381628733379258460131750757080229541917182295625736998640270826672651741247800023756228818979899632718269807131002158718607048376463805242546044217236987804511184832554544332602405350832235600847623999207061648051439093620524512805141755517574082379196819235411226500475241220345542350734004507193889099909708033335136370516967793889942330049159114905107700768014911800222717472572686585269298207216505330505779024571079867990442702896580629078337314322230660003367979121739600567868450726556189376115678611755858890083723889506043565669509014098591905478373945449726918781093026056504333717679286754721926589379483626656853830547107951971223715463160653977166113881668759900871998200155135409158068182526566397733113713276579661086689198337363195633060798488216086792398783916071526574955060715916011075750328085585774362871218172248900557667917978385840348363232615204355349988355156432638580406025185352927211672667828858808370538892938937434780055740488440147777315338564184077256138321424605737321414497507366538886787347064853396944563218560816850835064263314698911455360742377590689372766902590815273168870561949351276921105995046483764240617642292957964604155709955774317094103255894396011335345006507389637085512151092571905183740941099597848438114306675335498180540237912443600596794280058574072613811145950518322254655518426994403879890823973768189131869892258973540763801631177383222455048099809016853004186183412613302948423123839118959710308974680198455242962127774447987183858014396814526232949127991641560849531257855052966235246856835594145820209389310759880566925375207119710157644065508957103015653202818954116262285649523181664754641446728802563323860854171428333704069786810160733851398951815086733829039785885429229007131562185014931042280942772264659596781116402587787222777973591061541895567763611630705201646524476469112529193536420377918414602942253243065282141147872958926824456306581761590176933525421257504729413675731471609619068969659531575503339746040668163049687160586312781979570089804206248188309859180561728393452109119513021509586694239882272782641574751385812269204217380784355426780830297639892691062412472944179829889261905834972243950601194656969844473787512743347702910400245242442682343168790656448510645714651140445276952370354296298109104147378143267609752707256495336307322764145662248386728171928513689379877326398138191757452754071786306545720736829789959374256701414544208233425769002475054224969569217237945824659849938897459932268115095447598741000359587612553588370923739562406983959138126117836605133727672324393787992188890786137616753316102415573155003970665018415056300564519140516321740940433496328098984784916721764795481013950462901307912919655173367607447015064722253632513300765754361207885677014621204010991809497690660604406131547437228969291507094673476003986083318067085223859188678108381171755661736689999784085563421349485939659870808520973762234094472665689943540539274942248650187107545525167882559075632953416251278917599959717254435660535530896205948773188045489109072320273981035226252933637136020166625553310445187287259084633666625573387150367847984331741446597498504724121779117952499661369944535859316328838524120718802468698931548617469649798192541792400681799054535686590925088717524610112490395086184208500753841031280490874073855064615374381739597779413008747414400316057402239200675542264484027441437789082439701827469585521211812189001017379568192795109040983876702740529351558778102893939958051547091161844343889877707808740569042478504164413442275695792436794041727792630573696001153732999379200807066208915631178565271296945264704644096600453489160438589738051710094392879071248947638929794556754539336054334318342754803537621776393457540550257139107544265032981884470603261087147239603174431397575182222798045350342419357108249840738767675939535514220926702206217092932715596829213209448780342683561582396231281217994558143673890916536556159315548696614682563466882109597045859778235882464747480059267343805195582641087787874297844330741892211999835970158090944024145018464065205288573606128381599004509812725515050161059733338125324030053714680001391721052015672817535197004564194192877474791591965641027245713379197547209224089276289002425434995022479799656075696479159984534973367736318393920444132886634970780720404597368594415240271376079891218064898056434327189591405457827537898293096060107685047625578268035800128475276235215810603759223240858399509082491720947690968432752182888339156378227277159591619076633110219770153905174933376723889633367919040620452337945664977181521949542213638301885406713877014010603131700855286765771838247068974842829772015716524413483079069556924590637834396203066344683708974734729709298271676483993767544804419424746804417382142907898594861078165069895571384360198881156822716265093354702827853033933680204836796871586267414518932572477274494358062677074079685264261799999124447864670874987140462819203212166476781680553815462321926556709903564984679466593381337812479722549256790387785227725145879092553489183516217628426978293579004364690440299396596115841811246166721647572678499525635783952757386774280806962603515700379104704160573157765133503233872686189871556395039787550627988628310362835186550812141509637801993065965937001260057083395624323535231698153981981985727776648869272351048207889342934112955024010351905188675784916204194957382570271796295470313184250319368514233561045368809036311961961180324335051356891207109343349126844763335841973292306139375413164186693195294953670441473867695852526419235465969151018739402193715284319534701500438449743134992579273363996844134907153662380883200640355042369935695456353248031577521981321500385249968884132022510030673012080550784965087471226174398979770786767437615263244700603625342742659960866690562323984834662621490121130460021874599626515088051526706023443168780852248630425554866536181959257621265636724893313014380469743491136396055424448717678240836858289460368999512849707027989594955170166082471033000495972910895836203895147060832576549737599325020746899802330241857471844146786762055088209232516666366287959206770319046354940538144798701574029771303101435306239435825974022903371920960016028746212220549790104784997567136776612949725923638633381358787705210394816286062663551490936217591279807415428881566259826428855407704178074972486600941812817415116504918381395651959835345158038490927229184148830802788829940221865766099558806919878124806395639481592499350044271722949001744795915921341250480345819143580926449282104350363580444108229678691334112510974555925113139965167626788486425460115131657797197949743243139965026700917551487034688136923618619363411930191487671403645500313065651933271950486662117887152999906132702489072494700512659997884081640074872974712897391344657907944333951725475271837063742196524164456843913851814837951805631970110027928297310071882001674270233439367292084790689148357442785615250760909060435573216154174005559943030995263130039768459391073347630433211653145838956525386444161487016825491309041670254913720690250619864690516799326685688388391013494309625141750458276417645550581105753261940600581467247824510788443220024308789872759422893517759594137890581638966674779883299170035748435499007392344101827740857730940140075243748518126728963090206550393735142550499259023301372199792210470576833013407285757695065476248288504402567232242786584548922913722177913442818234248208338854868770708426689220430698122410885826142252479564148907091218312090423668550721005184316561696909359858236328035883020914460594347389897232323388940022650541176277075631907164325210924820048064951220873955098780380482337395822054968651918786137786547417580386520369921722338432084451867683651489249420943934582370640470151759459185431668198392051760096743908680525533558906184439672049170122177981209124407521522838457645980722110449951126112720306648508526092171649953878271389784903895186352139450153788170266764405687688181112080881921591631992240009504129998794818634196428736076695348922878526483445724903110644656038896172878586419888287479097970649423060999900644354980838823320969098149277183385098932390275915230230716697126226715537243993675882184103169110784037202802705768647620679425361395466714975051938342856621564116699191781580445075660811723464154371917235362553760372253146297040748779615447062370195650208230599656339276367747355616198509442627546575119280205522957380676233222897127357043530179834594757921344224418421969478549281877301369344221828683843830724831184280162247049066926323295250181430936757246660795472270009145982994885575117840502429705270252639855447688132557105207881367760127467216454175678818330339504975252113874276646694918642361818007609787519944083819531057400740810591153082397225347320478428772892981049057190480136294207306126364633087496634246152820680078988073049485788552339113310133922807308213210476309166846964147496103223869217406468834257197432022306700641785965005447101593533967325764929523036335554744316480961804878480110274080617411598321891287010650730263000822679370346359520484183985833513702795441064252568148030017005274884504442589501945351921946586374747606242847448802453695347784390572777823034947501555306359898984728800644414989162342768116510692673308182486954969821392587472512228504885825842002965282205765204488892853179313981254237326377682968713617129655586412617965196830400845075657713230696383429743616010820263400902132672680541414048047361273886101507761522477710292365643169266129327680403399936177037695919075624262249314012184345058995365027789757341758800676549293325258531392265975603207700866162862157729094627270002005576407092330872953335147569455515394171652470789112975323868748825032317793187229576793287812969752899787838893313118173330073852387786561081456428731340356786444065131022726279884341266202370664429365528556744008670717321481798750004560266697697548743681308188241725357450399218180142031596631967927390553295933808188805928174343446379350554750762641968248001690282386803777454465783528915278641315861645898172221346019723581992750708337451266215980030968296882093589201924806095977056215659152787265012319737442483868259605112628782179654498766932235605797681692983165617656785778153449472756363725807389050211745864366146596013979602954122008659033108908420078682717143044298713918320011084576263901975990815949759858951069554061473924617370678840260126067380213309840072890140217363533206732657109326703271518910724407871552482911688276241741079226257684447689983507422429327784539937212473466380564936621646201431697806721053003143585585439811785788997056639776500092649194999380299404084188012391967607795155548768569225804358490895133457124523200392154299246064576855457233576588967947237344679952191214317145553181860990074201104224520344491315629796029051204643191052443025080343870233420674043463461737340116720628592076866249669784803295897184700902308628511937362025419292678806452704758059903682655571994112373644628211093401784998820620231383832741014834852367063570251864484094545733975859613712344492077819118209396693600368073936670776083514736395125756815042878338304839400454808936577591741889312640035216373092515804092887207861199893933121029440290078711544269078366710272408071885021295865472927213173972485881267029386314045248051465009823448379743600013083364760716641892267081825663585158289156351923218788986821202989506530924627585228705426143328404832515311955702598027869161182773038964657430432508199396374322771459196775443961903677808374294169719017917516551722787895730927901386472063907288645390754375335212580063032254624254833026091776520937491653270943941517740408595814651338051653954844791168774965223521730462002641106936091164107658646961728635995152349024478119325979563453829397876788645477299445204593508514344110729873070597891692558360312005753063482665334384925187565668121943780861003139603629680323336396931038865676254815234542179369277184349565712371869992859155556588607208198371098173286772337575017168137554519542502397858797354427938912957679622904788766070023813024460273821567346157675913584371899357006274862014697476253284261858448528090381673998306918561748079810342408367949853692772810325612337296812319572443021319745279998358746530614723976646846961959059560740506249965603169770498733804151822702130314926611272155151619288120485425841308743456641620857893131443298518775769205040415176910457888194263286248277665323122846085662572863326854260628146228546756561842478475730814916507291987066847175988452035478277968339587301151845891603137816101594737489766938409324268609796257968091884892986692224063480967685113336030035748240735294975652578011588273838507768368019097471426860079394826991144019061891952602832723967086382748972349440379380813835686133187521358533703705034903575671442145420540688470417948805473172026056071671515053881754827730448350897722594393904143272307315165767036727382576258692364317947210070844608045255304939161655047125455076284992939665681923408325300228711288480098024435064663407996206045573515221974015043408605123268889013667658931381125511151972070021479537662673449932168705092261222978734508202960389770946817925129407353092981797165830112103771138247805990189279856498436825182193310784000174255741686644935655414501624176465208040706818553558607772473590533175655173114835384236640238714896994476227379644194597164835232750696114791524746025116056945115745193678907263600269667959148836679441471855430190226574358107914181186311809080163731897092744822276402587838959943683537757309750523182496888291778179203673310084853172226611734291432723821728314706465126842957481271103614870108367914362110995751622705092356997816872083329474006482787364647353449617634189670262551559392363230851237050040147979570641467225704172028718052598803155706331765913116923509613750861636088786563996432228667054727100013534179799422214874104535400359644407260342987654500276620594658073129187625776752100163781729352259718491998836011414207550545021826434005249145856537835468905006724064332254788451984893648234065197969985287382591400485475452747856454069851048301452225111822015160123159420252716649233567207619373366419532301784420856874670107931143235021438843521327007534935165058288438382176888330992338361555206267676828360514131239576903348273995026910129778099625939097588065839780910905597413825296637887279724138755017815759083210322758893862572601459417502744554616861579168187835744221997513545984242208352422523414920598748371061044568954536712363963181235162466062585982189853345176442436443580099492208548265902490425541189328341712828882318688650226045180093083347825022282345900285397874875225779158382371643744148970283888320698973797906271373347075883696355500573137888242175422994754662810865451095594098502983264222809199502336181419996240162146131899137934220635103568139213968257475415485922935207394124416453511305782297589844217886576044924544681636797092951075545206754654166555513688820916395448595550201583678878780657226067752593192225172684881273595712862729195727137612781323935208186286233743375992399297517639186855959964966458626078442898427505284893662760265835311720301494892779874895918458004567729082929565590321534245397210035221883273474335292030112798113217001954226874028790677295223934225321876678570344529488066961628101230322412586125531200179132155352715806019508940892621566351973346847033937539936160373430163842934324993245499794003051947436257943029927006462417090824248965354254559843462066727666182437198455072908121676063847121256695691766114724843046755370288617040038156732016463138393163459393426807418030408342334884879541495575407809291153758281401158712513065484825917426698880583564096694319432690430182442502596468808312073774027980361007708836060091827164741930863559479101033928613023377969407120775198547871895848368334254938197044990630048706995628978838851224545371198847860866408088574303103613752584705333599789330599945528641298892614487758308563987889565781728153244262638693250249876912305415173745400938219459648650152771426903394733035872500536949163888284334162011274277643841455168123430013376044666494465293111630994320778846186164547870641605341681669332607615100868257805298666097534513248493928572554974119383882801600885235045141177655020516030906078335719872920904456954469104222536034230441414453240694540533794338915961624144669541506704060982707872598246175903823749816018981970835432553601482092435929973428200665290239844503920886334636705846912913569002620052198989424269620897258229100700895932064435786150992579168716893971945148112615766384218327762434305444291470236897473891332670636750817254760916047539415692484170081719689226583331989020621071852125621654464113752614422853975193332507241474243425861832321433608610133097557338734300788360065425749313633497509292169634242414487372960349429892355759599711423840729565566570941601887256029129247963392566909969526207318626487101299414430819425059789736274915236866794269672405705866496683280795030732847068294914967001077777751693825165535704537816275808879628132279482632178475004893598024894230777004930601640447036231513606156621494248980506609468278453998801070791002369502965203914346513531627917828486775458806197657092514695678100843985934809919808088171833167944487653753085434815778307408254151926493406735765021325954062969607268861720427442506438525327326003761643307046915113558212460112696181654588671705083500417048631599282552542893491126295806935983752636127719508696560744023848544598020586557860734235528822648259802103477603932683529986357140987720333084702892597396760245902081628005957178548351777196162828386315618990790628440365499852601121353798375617018425330038288386326537349833585638943012383524751075122557257444038463807545095827836859988390165225702098681687285886250987225089362951037361471063555395437164425338435746129659712633305902040583382882297415610302790967074390550240328688403044027381344351790675740057251884624351120502246612352847122995138741868034571104240201248326215322784761534304412767281424653717025501803726767138950320164578768036918781237203409943441815285681457708438579972162831033151709747330572481212371027059391757013901649323347755765017064804981113982579807351752898052021934403018166325573547630228060108253842408937521121931304296156067098587622973135593048371006758731134083991310940049894634329027469076203164872548023309158181631113080122189214009103714536297612561178238065699969966586171917467928169978272924075578303464361534320825373157071028667954266105289185996929368625873768922628719458962977680772212239961624582523923817428018347515092601737059537839370116846621032751243166281726323275610747042511542538691763115120564516267702960789512911552390294075048774370315102344270179627386368836548770978526690303397269095156309575491344495716804259745958143297765589331344115686198484098107082485766843060016457564089113399867148512611148648263026983061415057367088205830193154693155204584009731951406410341772749500070645119997769204529644091278587720990719097705348357076707316054720647706381338631335757856799461999007018775180469893109906740626199855181741114947413641536200128885829633544189248830429356976395075950526343961557119318043441929439823204360093130346677590579424279181891902636643161835898127218358654133780348232220126599549791643701732513963992055381983970280269309100621075940187578291045588638346387172843892689994982827079524053544161735633241160850476051515167916285840302783291018208594445948076387796593554625040981468535080626946321521745946861432124859484921105671110634103318344918102223705884689700474738470093103059854746017505980458828905766807822205729507022633370894950462943963805856194616250231615491187528187176747041366531717785144134603032284834824044166939223770136582925768400688964660658603190267963673425252195740210484108745816831589521959924047401479921536361158594480256943820790179980133637373466753047289611194375178499287453843540379121996844799487485957049045411588463817352631142578507551686165134849326339844055744386133080053078286275868352258622529210178103421609552229510187720969265374999931565976914886575972478122163871692125433911082387517124849359195442559553393866874318031555982118913482001206485356590214523825549332499985852790238232048884977920207501042409163422541197117597204933694711988287521631028537646017450051511013381659642966552599578303606661904636013494190984352141230851921062465721643395176195067511464126771646385073067808810064856260670818619612302512990097413093252464242041016136711037704258176518318449060489406182198656809629005321168783572686603124977914933207866010642455755094713192838367201241396935380537738134012839474301445758924074912667784340814425259530527082112400131556190930285402439315051996042222709015927322300969564861578013400506837611990946707689967848608679639894142818102148415547638781778872226397001446613905921010886619352875665468230350463687002145540080964153412578678760931338736500728610341767100168174690344669714264808019836045843287360093467783284766892764912175813457148402234623378552859452519421511211357896753001617860493004141870365569583035762694230944622485281466310014656969317953680613382789839832700030242094562028347321454287722011026887336497495429014768599989754868575925060700619606671331876575894286659724414904690014575002238094666018350267320441700329776969869537127690112712027969216326271328827091284341735377322781524566677580684882080026232027942730743038395248773509242613486917549488420755186880002696458708648059375540232315133672521842310675397536795104665474590449592677802470406748672726313426418524018575763353001966545455028039969385159596248130557394090468522083037860275058345395051717962160487837397686671323761406099978712028929311014154029295634395101821831552644503867778239389311489844325203865196629230151372227070445137437313056301387831981635146049123855614104264877766167478135089719554683402216473306871912564560977083581248612654259098851224092369940473085618069516815119908531174955542654918097361494207364509690768411890687166852877385830610418495742517188288133240022977586127426444608092562253151623468318497460983381902026706449874289839480271367650709103530527401602888486679196521495950494265541869319723971592225405691685523933978616971301691914025833567031777793638553731000594249618993831271552638643772368681677106518799476079466940943073004463641586667813790108971760965408773884432160670638179206250792492957032873057429775465225600702721699153770791879687536131025218760729328629063833792421826031393994438158546394910581020413289753427919820956821821407713315407575066899880416393441670933370322518747724248495501337812567876598517685426040674621207457082162199610382348868313613393447176587919293735283967814223989499228093560873309593442681480294006544193707442224342691897515485711615265451553110901366842193899693680999886788388932741296765785565764004642903830586160600314378183336208824434074807444141676170259796777108257744032813507162769628194566004208719948236895335247773669959985442228545764521852027282962440966718894646471230615139840414957557210562690697751233394712826420268476468474754655977236619417504834599194645557003674456588075424296559650701715541656282564427109955728404416503052196164536811647844839877041594723172196807854922316885813247502154565909252249427202955720118164750908520039328763103662811181646363027369504905899883665926709372993895791510705910985945623706533855009017322058525183006521055380035636452667426498567375954128032980962816766406044196195424297754375554980261828565657485362153958294617696778803690689731254002643729157963630701903244462439819500551903254587186199994853680903842584886042972156903139516608615823422981380756643106823755063068269152528457406810326767092789449055208226891231644399232421955841132254088173071519961559547115911212054813155590853806081170131874526531005039182195509129994398037721195365841367103405527811821853827421914572913810319854362672645512042444234554609250806773677206891479289689496173445206485408756077376027014173836664284266323701382563457574899115502154179503222085591019954878369591627645287990073872598502893347785987392799546284986173085411590220485351956431091008060010821971108195893311432868517162970098915753264585063955843692841800960034113677471023796913577875663024814094966679974282923204055001285373070990493606289253241504971429984436488731286230958911609905377652668170464099188860564145319368883771651342272430201824737365082666497800761708632703616051318100181208858833976909249087432850808128537204292872576255409818059425225540840387128074088254303162279625374762528642581766301936841235111238452248843736110429984900589460052684160699912788618553351069387325358518815773725258432777110444437306473029186311968217597422894305999587370213552137088294005470976967679420456452155617223103134583668896444973241120000833313556973554644740709792756036256416305750496777069952658185632519284491368550689894914432928506153717667026616166943643789350492035181562032042832792886183405069243624168022868724397142980472368944915020492175378759711144907282343673207906998654028397701035210011236457520763230097416452522774957484902659464034211285624338819220876298310891179688280199918887349610072257812393591545702272450246972324949545367998226304921136698917748349438525281911268150048965808928952531353537280303325895738024858061808411329089265863257090533400183794465292885416756076893443847612233107087436684069191301479464765557592488503512501458213455903143741948584632319710933797033513109951612112991211697850415682226971231877788846458238029625486582388186016806440462774920951240866372493967326158630172325105193199006754019742956901454085292956413819073708234940275524716132497811561895682537533404096770743010063456705562804555687192576275256561827393898187648778431558069407474790733580904456690621774241430350458485327644415920928319991770348934378174192489984109906204090081853560672541212299656255710993371667485050172752639539326321389352861683491203057560400835527464804167825271054253119439105858576658210232687556625732070963128054312145777551456141527882859473172981851723291857602520347423699800387124142170099218731002884827333455557481099274468375479095044010891894571655680726053437831307195806902996992713378129967011347048995148836997056890370363382873495080017487288332380989819161443203017193118853887314958995001530301032463743612875305030986994513539067339187644018784305480783319539313698190358185898382308432377867554609099347789695925094949412158565109912232932643988478779844280550565623531165525202193548111651211078955555431496473329573177649492929428796890122672985034309091469182534177527018294403876488350323612279197177098278689004031902896441430720066842179360195146880274319440646632650408316237314157034006312783261370514028872603552341483665662369159432257674023408448629308569515603665155167920683472191638976920654171450012096788872579138927797730190483457809865912197421634483313320797091304794671495925415097259697999166028167947594951233986838396742314321610020685918413658002575259101835452971299162619052575497301799626037912226820445421984384100196623279716233679279881245118156090715092618126900423516787869565890356287359580252717050892835792506035235505170293426315889200096801895857048421088426958040779887129731382236865649624581232273531886870330208488725929780759222775112011910464282377926095551246261880288786744730404117327890670895220790576426403841129217549114605131038183068708443308113309178870240362573724060164600882551767022557238138255870164436538617044806622647956838549956924817068938267978411052330343362555438297083564869050671709845944360970266475954502775489814967542506343064995463094340042056701750746260170654731199979429198958177426438021460017541068579443924113326056970089947105254275168361834359904078442376279093723048730891506433570757964348098232864106667980678381882335427607119192130872939008327000991600035136493654210422713676932867738977860187374313288000905427454588481703914619421934977131087088612906794356659789386775454677819799674400589476560358932654321833485849527099235946493307590844822865899994839069450271034004271681111470538544011004782768870505290703358930579564186516089574837518631915002304922794623813239437051285436283505598104079923096651441931612320431486599904880099506352475199657560317195429901553493787547825120263416886305090969743807034885182981475641686100072947502509514934920852357507803536176424543794542138987230703870359194306415607630205805934674441458555959207752002389132944275670739333919545481320289653210695137669727191070835647096788758343730720429766082285679728490975279272938362052102074110537839959569836398380691215451806076671919407361902496215585149625980247256756053075939463865590936556235525357895680455613380930896572020070213530106162863754630734554304866905693102529232891878413948551768774749166849974543642943394936059040973831946696554153896381577049633410555525138047710430404151773344789103250185469889932226875573710873907950077558350644202842163635570360941133893096431472679917594122122649947923877481207179319214962911645822666101377708626499055418208398936615155176986091905107559408255843669562917437393515709861948250524493558015987563412191815758293250200466676495426452384406519599374353721469028526499015588244034109972392910771366121076934023666061661915091935931468886439472898978947106320285227682943599454426484309893824774859599305850395978927210479323349653897359968431773548780694400992077781696247920211269543007346556852431136138693762317609330765450583927784994314296937329236120577912629019831647059012261525106495356949873584317056348486739657637283083005569053341666425322012423614841000501299597128602555636414330165502847279598582377142664216427338944346481332777791298984217805184641176992144273848431791291889675048999395607264163195111697748177874812903039118776218814378659587366288088255538350293936776097625235335430140972452678899513729472597803870341703987756096627370687851311095094493001384943045500624706369783431922303743276095603697829634777392975912178878652626582561076480264188348922482982145697036993896944281771457088574642769590585155373476400507046136559245039352415699186279867319011754222354147215681002295023185657369329959123559979061462758914658877852870642198838488237146981874814049688086746101659824545775898624049621270478902914107636432646191288813757617151027735582574159834306962212932167235231064713443773169974830240259717122619944917975612866381992408861717908149620525691515334024034312561595860766126836937625192345170692041378442571751205270685987065517951254564554115638543960281348882703418130550653135488754136576017240628881477465830855845106472198805136142361897634737660978303376543417146715953720485742715785338661836301809868754022434515826727290814969135191489701070975299225534587379581289543502578647962388146864195801092014793354096783475575715167065221266969229189474756282729447751425730383635543893370778216426219146508563862066648580513318063292304068035898916929667280834798326922398383087124335254883045959207387992420894267956118303818758657738666260828308382991798465211165769001071099502267146395086807296640243559097937335607664387770582047885846971432027404987109216156313195635940835659126965831700755943110817190690181330474162385505860216555337860435480254297126318435373199781061493582866551753881164751465330164293919987354346531192966025645697475327116407968738333846762374618039280679325483298658534246908621785557622211672028647870644587871293897894949827105960130901271001427293465251860414861537945727738769796562508859603113978449865247449759004879315717525061917960138441588845408204259191577094494248031675073854102919481812266027473279808717580781594250635898405637828269600969080354308863856068816533792300551891260808306093881975035877264890034824574249285396517791284795871539270806955559907421320430799525752305777549486534446618316700792456324486847956674871911967227008910292975698212793385546997760159848736521770504068073684609522110390796722305925273381615890915222001424044191145446105082656417179802322415118463440762091727938693991922151535324033880472892770598912074323196656978497222500854549180352136388290416486864273114776099770922360924421739751144837359958929932932093693933880070463465506007792463580373108221957190878024944533468619503351938098127013433961533955445721996632042575430970938509392050968724420322904256980302274406871375066562079301019464482006550405483099980815803923970947975946914834716339138729429769804209107502527267068968416710149439829636630035893221298968522792696792578535953682709397062510698948799145256195825014502923538657796985891278698917885720706627294984844367162935500368657410305538496401400205653954176566042291187756816625028459446895108717717056654646623166918786392033924426216571285225947995209521742320227491719893397141840733496549849911068729264905307556318029734026892327554419699922694899639217974499614161376490427301586669050761642035597565472899277669586918329751646581328439250603811702099953752768260043643662217581159102836708458915967092396302219840856906586339028542283317688382993336554201239825417361791039242552202047433759573951232174016636303725497060103166258681615732164917746803499001931377584516573321052599079928021299791566824579097711355952056563111384871709473073255952915551425796170955398010756333464143552886000176059555164492928340733385819116257009301182425089007270438193052935605091495322695666649205769965130991766579804932869116185780777582605259222431437438216708645305188727681762165824831311058128800510586382217180778819650855033060095649483217506542092096507588046811652224690932725409436328812704919289478427681794004897763193299540124332712371615223234102509925748877901026690822743416341433207575639496291502378781594223288610695434393752996512996232236572117017620952780445062924989781133453329626141717371376888354020929355399379391506552109519254252051780544585477184382539529401453591197869103195507429566709688930812512320909846811930740919491054808047529736109917094054869132275713744857921429127290083496929015084904918928330402693621768848088838570741653909785772015607031191136115938109770322325967631827200000184286763679321167498917194508141942466129717740420974565617983305835408025304324527096424136520073889567308287696794927465133836567364680640850963674103725588343400563446040830833334508642458005593418827335207158340634628947669972735970318896714737528797132635655083417373413908717148817738585413923386798461333922822831060773967584161068813718720596480540222385467680142558034230310165954963613380496917971261973533420155735409634311534484848086225401707545695996730578692293548432750629546414339303362572429399375916489165495961702232931166178649982176065125302454461695664817797531175851244647603259408208478381980075568900883518039083727683726788292648856863129926290113852654220874617206554596948249396115231708008729095127085784359069108127151458493831347915392921931438016287113410723985935907429053598007928595249617417429953543735853301446548473970792857950176381059547553785993601067134687605490291983179302803326895600999266175857383068522451309405049134870630072207635860113493025658294225712110006010970284868639729961034136997663834580285815348148814293724555354691810572530320242634955737951256593808220614195105936177005131631936237838066754796740613840786632664739796664851361064663324908264745432624971510256533439859364821843610267419176594111838416652423870424858221051910928890045104813744545588155466342032266128042956209454049306423240314428397302854172133383324317166667978318812557928223589476474048206937735976965935945517621735580724362879879064749350915374025886927698713957670664905889798026000026941184376965211856055183297203042900976828471950822075564711049901156140835051421002556355482189474424360839813349464374449925776830913433716919989608597443560846698573681661648191910896328075042031513588212495824107876031142739394345016466675102663030664084187135423811012883414564052519133826640022862268714442530108545865823933524791635286246447626833670603977915059617964217670082397907175279245587017822123030045371093038877062580935774725546590615579236372658287206564539832607269577500110288568235240372595924887122263009831829065028747408763184261829044285901794358090012954536701462668349812083040851794857970345952208217944618420625610172279109032476736319318703747035383689681457353711656964532356064456262078519297866049825305932507614934233049855111689918949657489013156642235546839309933172472357311217819677506626102461239528804367566962606256204318118695348753279610258418527260499236991999851621906449488491448637483761114023260953088366195782344823120701908193474935092458348233831375015768801377721430976275590885617928222922707216411432545577210700036014296174239630002974219667093287088578640169485093111767033733841221608471378001794803909202183724110271706104444643733602339683317561151630637990823324173010787930210686809335278541521614578830707460390552037673105900431991865335368373740555443987433494825784517078083429289663544493875362791589355414756351238211529653151862466975565679408040775358869906252891297847047685049233168548472668742237410051606481999086448397267217979519016478751152338924156265357332282537708774432431641299120536794950056382519458811992468600725997401938240842619769478745654168882042855857571689930983130953024943541468708316974616077878158739617181674614194343670117426004783782303099963510002744783683340859667135780321394205118406589255101981273370453532165160556019729922964501552790385743185547045886413687210481513558448461265432511279982772978348826531694001308093775740145276077257805289998732241752496201584876724251883836314483814124544406371387009494891554059636485457343782085229939320600306263352713287782814668454640652613254961036325432910084398886747878410072536399709500710474748846648061303347278760515866428283855107459144656092129286146198700181851779681235746759482314888351410809945540868548568948942853333558011552666107880880588016072785826930959149819569916965674296109831964127199194352233075477948263285969355400555416592294070948880547969448843335493007700176034036328646347402072237862505805415687397756373252294928778321384964368711781695246089770056931761183056064312004458371974439092344327982099693324809428027761600531101523090374866871157915573153916914930978021506232813129134749697856948081768269284556627116739396654476749820624736541763530866704153532774402084992732890247290139430520624865437644222867517425781986515200165977801568624149852121977078389717331360062107072773293057301404387161181829173855810263379403199200302350279167463224529841053988586230938415364684804269504908577924782883470671312114410765666364984247767339409177757081224568025151027950657214160015444255494721992562215164724234593668386862685951084423006699510664531752211321687544724096641169651877428843471426817978959427416624452158521941770263750931743519317266102800698511139871533386319634673023171076321963732918596890312475085253434716416252821792830757552596757906216511528283450008114945073895120996376446474304217912243467821441211972232263441279387981278802408358424878192867753818352369503401506050014925821201623233256034103043129829618815849800403089608502986050885122529339825853558256228091132437796404746748259373864983106851236879526144191525025082263628898964620106330059170412968975623981367873772411107373730038771485530062550893623377374116167562039582935887504081723728726888646785271795550628914522657862461288076687722574322631995091973313487224153241773845399447046133605441170170605531928264755237726753431457885461941333565904465019519896017310825933567643863536161840188382623817550112863414491352429034379281291065456933798320590529541339612120559303170058313329658545870735453527224957025980989005696024132996796531661030014033993508872165451931861757119070970448491723505827701472269943217628202047833051451765516239036332100917253076105480213713726773008076327497367276410553253427737981249011818275489453105236645883737151401309764199614000089978810615406225063856956038485660996725064805165484582511198506312799094881235330673987234833074218843395360885306193868451814068640092556140294973910552913002738954169537532994062782703281742753628689484094466081244095302647514589616826501395830742991752776364786861330630004684796148477414765051243615209083105912442102108465236794013543364431914305883584972664328960369312356835149747281741949853064354860917949597333656245474631328114340559828334430409729333368614183690654965033540112386671948917538097362221202051970868781387302539750757630690198221814547377332278116207896932776171825792086920771416346316981733486541019311584447545939004942170996860841898856578347677663149448834676962434502142218565586916942538535096904494990791283680391466133228256700411982501181650259907094542087587418102688496387938281044946155266679413291608769023489364580964240830766424694127284103959937585448561906042563678643244491826827566452228922959045479429441567156242986223491040028658422116925100375251093213385361252260066894718592086385629275205425210798388423162188994969679909078288481286585698765082258681217970879818257185957990871506577138682759984124342886694873779270450425829598726171598249618126308066703689005485381981534728291239590065012824882956546903243809442899006196539989771158922930990103561043216170184239151894603001694491669376596049640637679981760383465525610318346125340174391826670591243723549111635354692665910083660779995331621874933538550066114937140897923608402676947610656717366944620575186101991716153191410828973399460820101997229351743491235499143443297226486514866441821112230841179633217137257219536962339578671743473824226205547302912900737179254169627681148095083783669737950845532636220993949651641655575011261515715477555519635604338531007376868579218597809655193170848331234126183902707898461013175654424822245356782542795547961732245104495871734732069799113411753619009433239062945150005026716300242354721982065601415047419885930565143342167675114765501119493869476697829469478888781902142993264944904433255941740183744053180424397911086706661388832170204984321685082955863480718327874947623014630923058202756304140758980340854063017855512703470714854135320940332355810894564268858174811084412134881389134089492297144610732308650392664706449373632569099238657419194003726794433460545318670315246416728934511668359145764102588544564150079889174907806988404968062144927752796089571476646963245993759172548293991747712427208158028276032381859403626365040053910387089147782942022912647191969766468031472274780919695498306091009088699774980287955230043756355303190090605065756768872783656582631328870203006636606118428767248892668372335520132006860668427062291617605135676797523337986885473262051635313445071288845062171025951535979117031439432664781164101410068280256132080715335027779667235555877496130611613430412761052568820425277554702729435002800752991965846369210567162991726834793933736760550920241943313579081179504301970846180644572807871646991243373694854717985311658576990833524877284814749739017531406065024933239134700945518224049218907268462146188916721641914214272534739631044697506254680521972597507021485971702853268710554806920838626278735205106398174665217073650301261498667137875672224181794603911231853619922504306040082800644831913474431499570888056526487900820274599124554723616411717174367985539195275852246264793713462356155946596114872229840663600182933316328052695602632515130059604275988309961651060743264376126585402027639489603069583935265310817787048839530774907268911359850199213748056858891121945842601606679312107172352201997125095503103408747229724188207842511261881738682122886244358400739335167620657643952668505775554182457723127460933274438554667184623567306784976194616178762077692749555468884742834660259060342167927043995101422746128930473548798199655939829694345188887507604607949123103670383348491228468849093907293576992817337238117414460705023328855553819065178995935521110812299257230813535872528581998774585531087210768614245110698481844732843311330547611499622615471065217552768865843946686668564787997594899133070898028661368973511725290863357626251938017346831990083668760096091848934634220191958899251347440941941813062341852373138130989063187455268736541338737208814932329091826114238990462828174245883256825196240706418429923747253290926649174597291233961840703634197247524523995647849130470578694913503197067566845111287242772987858824256278707365250174602796951058673095210614736671126123647688340165093715609748599742540958845858337180768401382489407020281386482157536917827448561067251966398172489445763184488901548840791219632599531743767893858253015620858653987527719269917094100306066844189131561043088399858567083772083032234858069754187779943973620662266075214427128304207481277811091366708257954614137313228235009062340236319784022150533029025752912886370199852230279692577086145460135258282816573332038886501122095574632460966312436243211622150375445068930103601528136931607244069767985407368864512045040577188590271161149304902604907501038428891967571488262036577320084817633917929131704444963490250667729666057246990141462951881190945401823023297941943100935926942209219100528058204208231164516847240760900389474657057673633617840849250451781671736535556131927949765826535582620011578500502395254939552077810507174446873695997971970570799861558429668698141228644259305967808765196995442960695291659672192665202141925569350358989037970573204279294794190364880713758385322651130063851163492527568385027512992835506308955580636030060553069767844076590217613073286112438158817891692914854623295846678343490362916865122926803021012591282064758033038875775496029373044416387543186653888044094151764813481584217106720987956414873538633455550983940183052257014993357215722287209425254151504093296250491450427833460189180494069514470020466323965153336617856312467908156676442569176740601133953406885897367811467664473938688964815600272170802363153669280419667784386351434316137762295484668747055601264597288922426281362959616858829878924777139744138781789190007521668365654609105910182045147549436841382772046506481884566198786738076112979372370303891404823474841352039023517869385787685584901230840437403546380021113369449934391544880166524744867381642219086500023017513549778803891298380224403885604105747753733669631713777364036779117350093531973207812413296517162741189965978773052985595763632637043418985673436279699511186743897277836422793304786163707694434204697095111398245415951119343512669438621875405604160517872655428324474845489010002147526249580379824694921011772671991297895564129545723225763232336360039501481009466698808193844899407055676294142176086135394647169895334191866623973820140849729778506899474231419803361261319827137876446380245776482093597744679651118401843466579393054294165127481011838765221493934448050834870283141221410282328976317962843676297108643955072508459009274729166803764078719636469578813444398300281997116796252839468218541295873685472527124020569037784542501270830707983281187297327021909559556608952961718802688316589096986664333350276822672736437768189977145209609203528912386282726074743728833607890091878768617531085293835576896002451889814840351162054426603669324152314973367285609602757302400774875193213232524609758857994807238980725558684278933489670779252301721931006377011420375984574622369130253675425763208298581772714358139762962191318664988864940102450496038466254131024226145061239038485879084962835699742311255811452948539562355671947177218201804011901519968250029767603956296063303342555058301729727307881080425008833407821247565091042144395480767585356358067389736600579725558389120947407413762651653252109299743229994774206839415247882373611277236787601124579656123043575021548249267568764509940925322456804198368203314077266780197261681550292958192466484065205914354437284005635579500248700546547446229228633532503301067578312656334889133198313933998022661307221298095309869163124431547117263712975654755055840724404702552089289177022678397396465909430936981217456615791817717542033589117478270201775894110376682111449876057329443694386787752735962679776485576708860418563519702227255210142531737776116842906680100845422705313055312564179830293834909784701844429486313956941464182565997228350991818176531711085506461033786366461671994023008041677793909666978397927403863770686237479800883217265538350379020761516771801138565181967293537638843394683849678689866252545674585536041388086033605491967671926431848163985921073036328083138109948492922642232679612341678435298232010811624895153824440661959938724163312855403455816868002793423619689689593209715681186991324554676899608299613175624880323287402375176932940917951609328028403755765566870855837135547527060738571702555412717338169306253124748167712180501728213474970564062453184303995328917048153069046684654088705441607878611707751075328995444853621678740325095551980702212501139853569336133951799685646658402649950831237324326904125123342268193719598526599543535270341657706536987183451055456854843713501814446037050027723492432921019480076565086251862567974445409736545044144452686139740334286981776836010689217402651732985689217609872401498609192011570385233659488271905800265403433651201536011433204487307628146763097934964561003962556959770867642515287316816246742660716339936525390063142551650298272439552846797652618190989840475130637056362349884617186258912167112376384356860013529661254459046495062152646915211075904700129169324963290090516240077216507952776577217954514625500879840290944211323243461921008944186342530785392456686509261619418219471991113082422493479998725891383253610544609438552660715577790858901219843608274985590010327290011032223369231731434813928445066656735634072447526859338742300075921797446472287020500480603566330640928641556340213474823987312168823184560607941166875806280062288357816480480947193724653556243883509014521052196293625051275741539946036217061368588131619338754186139050093747174032415248720008291918122312010743518382217357901451724420260240192088399141014015935686341906449791289643034549277220286277831774307215021720620115506921461304844404480703069336995394577472879081631443949891850084658568865780735406604701409198443428943754401678671122791422034715695925832957819936752061986380743848095083739753759442533225213856792256930027149207784783568482358470886543148970699556892840277651607047668214108399561087414805078030653230970770534614884259354336335739777642452015993231920479058365744168214112025276126481367186560022266319430622195274902565336689024192954398728545968183214848144070419991959580376282119283341046537297742775744388166167024936601797754649639771416799356227246594561907980358626206765533476890652417124910228542640034026139411696588289930226265127427030997843187575979555513469731272719191748492713916309424256762097273209534309829572940311006624607643276249916638443473470476371009545888870140592747561067885572490192844095298665335894432126446492320026674053026853620235251675148886736116113097643817983270107547651020646747480457937225236270447614584230663107792526364893666171869470605001799303721223775869509624504769472060191359557272012298867606758837305491399597909983635344881820472491398713265556948030591116809381720494583686486229141493632942627864056494743850523316495860261346768589674861834955953664223997964958152513542978427439320179611762444870795358934899053255095116947116117476071969686122531482788199683828950060877151538254530079934076402481274808927399033219330994476694450153787541674445549462072035158538081037715272476193487657354628312236486670675988313401671934106407964478868260133421552076212706493058389257797799988614249305552641422336640290227075177613472866464499740927664232201843142612173425242060680195125069804987675945819882007052459954644533359834868001053794047786339180337225676091358573798299701134438953783492655018127507815698535513061111082390761882894920781298237545645718471081676083492359320191879119529131539838690430524568537798316185178859628316199184329047438221583776989592098262580019841237098861338589366379733239253464967335417868305849902309531129898153802768229748705104503284071676201313907594810950324952765909353984108718840698659682701940097620694552556814716022726158944454411926993397431815261080170777422523167873411822530900835193693341597378318271050906876529505609148293248244595445794413410183512307370943439404522782809818847870519488630412623217226655934937350136667916871613160957500894390137391094410647180404051868571102484310781210967254931833453522459646232686459230399430425952897348652017921202505661392435786039020443764334341586171602378029789543803860936367466481258621138474613092324446757640929269137442747304869462112367516359153214291349870617026897848725168099728910375400358455113401720617256755251901946247914162018381937469921452953492476593211286763747005421030682629001901035574355202990877126926076572984655461796569045760241224641306631467636556926075259626366885831189729731733098822481198723500502225277308816474774687843974248918205281891087541987271512170277552154143154759282433542328742478624595683307420299789818606635866450101367533324000933838090030412028666476435079816005417255600630555792130263025008314262552175983571713877655845699798609613537282496199438943985794117330292009081355988119836518980450102495612331894896380423215085524028354298696861945484551540327952417466749170487859083403231516595683918055456385255302033781364033785839753955840621865402536501942781500127831290295775857315146616459695067243390260129583385004675060357070405127806530228433007486073739401493918309988373520122637738200046875968735802599174103923809282071951883543837177733191953857875769173995402287103366027672321860362907339172551199622402913206362224753662164215651376226590670333109480648234030964823238561610520572268018300598135681140810358913190968353032300281651270695566178551813541610678897221614187478759324333080230262527752204047444106689809079525036871861416062221695903671476247667529843332174402786572064821026615447165619680607531597844272707111875324468654223433801038900640050957522264588214390704137633992916784924719756612799741742921306366284440826046542704120264559920249572990028232394519672669250759138075189738493229223008779802192728257072926416363511312473675376743436214389672249327814133637429801557361439922965116901285835837939200031396918189272909989053062657154720934823240423273449102017241290555485185144946045179589503401729048476289663294747262525400695050778158482859011381572406999508435811372511565707877099848412602497194994774389229596909097615787036006338806119790470265253070744702040062689864737571888095112101938392226359518071863174725204560016583037439122198225296064541609867859531315422003665271685453725293775882961705790245272556432053948916132261331654451529854097350035137210135102646444126848469287699366230703147084040098243717227499263856452711877481853478869837687340942969285807625840130704090261203725647810156280234243887049353634789642149443786823067092564057914990375231236826452807106654042141099242821558802789963352745624260702565369927431066416762850055510390376516334945660678178202192011198056606310666515111498904934168711911817400702373178012643480371768233977540097150363197827868137030862785153883974948832130515468348213247226681336500002376040821243490131234305186442482507136231963882830771416021435938390192298590217991860413845771011933433024358782092434951669536113581345347314894448359636769455833426485096327482590608953054683745692228838921362239010404297125138885046760358099286851448586987752401098910604820669633387977235852716510541877739827989054474191521623894346865888653077798564699897770384369008402745521280733921040054709812787490568555985349289197504315061326610967704838609041344503724574195873854736952073004729026991778276473057522954134406979965379561601779468862159518020769709679670543883859331652514444125387879716162149543080317309217383871844597924241700176473147910172142767792213959785398118144835407178846322504911479214070255875649563792491278483924674900489848119837567925289109061284936734670494256111475422295913806024661441066815123128664302861363421533080760212412844236529512616034437472139056396281865406457658126673587545529348922652599897596924528181375913896336862513985382022494855099989358249784944136590893830090650990153926135398126432135232055881568597677989512765027975002824618293309843987938675006355197640209025437400644113073167510575026545038801805379438313182960302794972528240535993001130987604704778204188034430230979903126367509246116656703660654081605825852055184933497910264612225610310987794056354031589531301244872829372984725203236266433512576050474654514577575699677327209595536949766629315290565613879352411866453413800909991613675182294957940442831484571547896761863754487388289797299330110374023615768265216198265868324557324829226322789651344732345393161017076728906871099360848840075869080292624222339558696001539152247461304089443938412256197956022315078303718112090478839414758745276228874318201535394086706816137795702190795443970647634454094683762425081663052030943750674346006892052067175212581033751556081416950409362164262308709264017316320293521962616412988168319950246117053950173899138169859912791413521980315718828474993314323937402520678631062024965451350967617698275130436083010456614156996730595932948258346828443414007526839473435233607739812419433990966388886292475852163518648694118608396613012088942816681657648985461100757438975115385911370422441395619934102231885291822838454911131643057794598422787897253772477805926453382011493647430593299239673193466273231019330713507440762606960171411215892335020452119166454403826879337400461457512694240316008501020309186209507839694050245651139718383524691023044112199557276396167186063917762000435744623289609938155523954329973397112654724775086921393022311442295509320521075546728705294794217246387364341285591869499816542293464561399307614658801978734578621435284467170887939880257459419444481787031647081586806989639255182175552372076800726402256565541477098906482221789598782163051106743457282490697552925956398029735375374758723888247778706472545507414638848374592943744796094788013162950461367474088128245817938051503689088593181978746130320153617816667293542235746538449941771952473129101583141184892338055343841474569596290482052027935407875314096939630852341615734764758645111756134847658792170890643149707920050355641984461874085584263934149545942627953671942994612349024226798680685226566818969032024161529682909815554903700539622255667478659384531292911506718773442302258448328061250837755427201225255020032156290486927777619432082508472175615241059977462505315875957101336113350119831434633719379249158114388391037806025612231096217225983980760208253049129118037368173207631844412340711707225460766500012906228572704939510813482809111010513604971009909545689520636565492321654913893815126211005108128883031472468172852539525546538215491067067371408473350108675097091901373819710625989717351435865336991364401121223952424474431463571868442446140723119278290246945393402187202137164066956479544110145008458345791988650163138545079234396316066541143913298821949951888189541652855405711018630958772776871886590824959453117319140893277317962459312137706440452771705763420648918036430335956605814848133188189841580303540182223857274018212197418748058427143579612861616178612843857952187178812450744263037031156438172910039963402653828933722860774585379138360387709775132292396937042070771790231138004800072575168174453481906160354956498955272368783175053743755580783209265765956742655848682353271172457441655499473401940003353836151956607131579915119194720861366353814315373826769355696312737829377484451525846820804649004685303283269408048251207984699464331476864251948154570288182070820998826673634219028492919402225474790670819879205010150812828117372855071459425734405879109989154136000023594295868214658225858813436287966722727560307764184908290693094065711478336847450779624487803105664697816283627577833850689861190160860539640429076294038397289903566535258910853930170633061042624841018903403386766437038361737738158277945642896002853416971970644357874668080489764655370877193769780065992611392828150082162010977022733746849702335782732220571112455373160384041660332408683717404163939057383254679326089305505664628982574742693364142280722004034481542161664022685168478748123260308290781828987860342097751045584135676689161539040092833282502734132610230182794059279685124705145041343665392292387610300008231365898177905732432554664388010132341475759090942206370102552128830612917772001349062129499645864759448831190123045833914125451607177339515581582051434662518408729152039627481397707578909001296467787095207134549411692739366595542156783222671835921257716997849673380542665794604101759129038126498177017109553088546077461595920175400929877278963274791317204058588830860116751838530445051069526409962906610616012754021256754945196327270750535527456338444112587449706889036176588822264789225606467026226659866494296949327019132185465188889446325043839823277093038776443867323277562081849924615805191305164178682796526345921890372986734646218291142723686307387413372206922978697410708101749413576253004293779472821479055497111621212140674843208586780327615602877865335444686925187106178496615216263153138527313645561594369202243847805257159002046424908002025955148135795494369416541279162334783789421565328164484499130767451371145887367365483578248047770221958469579727256573749128321323243093567586967661037342333460377221543782750677895293334392661944930475367076097101176341866804470486121079763586258804622020836321857948283618826956594767466538911918852861086937022075914091319513069391247278236050033104265966192278765899913020055005371880875197509025677023635958661271648887630123670508746344324025180730203377865416789990040650209126956382944457158656497853796446167695778792972286914150210596470670431582176161455138123841786914279978443670857905054345926426536630896703041849956296587131708342404898010201307074785564042356555590229674260776966961683695782053955967787980738293663997863371221270446079662010042894373193259738813649555380046353363189868185281174781792205553083574606156644406262590500473467605230443337124231237803853835072201933143825034080695908189539465925374711874695876818726816972680900758447397374685366719393867549191544533733606416400038642828857410474901445863906680300611187348052774701793156135444481060516366169493510625072625750353542171466213855224497133941728913605619598866843665831434302634247775801757543802482329775755919341221041254014523822423356810724054569028622218717148264901135698343675477781099248190007668071000054863661300646414195662933368524204922925895875796817232077346790351401899176239930119389986032987372460643859565388199589399685889898078498076403185769814204478066024985821600973061499791782931882645320685444563637795581659693465472064510753902121324981949721764690708087426726332128851033806048411993338707146543227009716084822004913793605790797612007838416379660396498508168302997016925055608574598189984069314221556575528979935976003700892774313714264644453323195051211188527244662930548340037599863183776162072462281041924648301194929852675865610181404023977056849235890372341951817717639309894858727739626315755165737458486540113756500195817370124868350700551794067458522007795107829575790522905163428306697285405604030430576323424360117880409738647466008949911837035484417357983598276347953717874315677555297971044780765184614105555497474800090136588934973111429439557576305828208459994100609834145674568441994645003367194469213937291019243709940000435817727838868979033832595247539006232872961504339232843281796844028277824971767229799662912081899534827688428422810492476027685998553397395531668196022148344722318719306290087611804641919838202974104317921166650762430543050092492603385335455688574722023933507790261126729063129614229429852951427922427263118827436761586640817914384977838515284184557550651409643583423534800606087589025916591517526570562813201988372506751749841180573390950082249135460719976497954408196837518445624875691880402394373756417340492180865278197478674023080302801906160275928771563593791234010981982192861291830464738268302068536881032739013008699046180811115571048992258383983642112435345673911409598296840161541654002397521425725221839879583268126582408781100004079947622713678384961653286016655001398568967996579814104702421580619266022106835272632954965293007549723796583115557733789101540301553838018078338195321703234583371533923811315933805649985611474514949542290727560525265498257161254801749957280214396235434967344116990566126064771902981948999345376850335978245667793890751741035203105538267214824764534588793356603998852842830214823628236097061594412990003107981756766145055297076923999376409188258919854377274435930130503430387518371215790242395006284103015648908794997330808664306288963206612036205933022313415884246098958818767195178626069364657261514409750747677119162961651143632414047344273780958067495143271825707748985681085944387902904955306596070553032338831737579530159611473906576534994157001536459288496721019430831561092229506378877719450371288856288535686631866376406384852337525708835396959690424327940501494516507755608745426643756620570089070149549715026744281811169279567067627305815810055171072729322411706121986068829297784686096079169829767146519621129863265315649954504897035222325717111749682778451886937561351465519261694026687444333447407120364450202207718934674562851173155455869861290305195916685460673534319894947773610427408866283177053274470317855635561765583228388780530937012185124111311265883389923144240491764119837959573200703117223771295130528205557570705687849901736998444824838077596278947088904179506535896471439435192128682919560797511724383552639778426019845144643893908332106533051114501154472043969956662517975082999425460675758613667458596820317439595604117162813576908464079459694488323862317913515284563032663914569351720142950168043095015299862511651307617063275121975500552503028601546511348923185242416558244225635188544905087982135920427810265395083180592275511600475494858909122491662958013025280305541499187338180716980074867179632283878587394113614351859103393762375437754595653343263928037792379879489003416981078884086371648694468534923106086881581846770149774216040534000048630719000909230216322801031624505831065484553438239469418171984444590034772680489445536858564340828884713043364857772501710756845753046609407696248016593075041843658874157128610987570829780554890225419786695638898840161804949200183885380457823526443854009843220361056445661989324641700618147561704948739948268171042199000805578165211173678786031779492528856243521034720387403509768277439895097847971139130677694180045008504647706168437901497030981979830118776947510027183244758429235853952840101825113117153507016398151681639218707046215797920780501914340163528122316828000251603648441489431557261581637582577806539825439580513559632725299194363112416989416144902694291975734620347823916591211981654502645020291355620560654534241357192382910860557669275397695367559753336252800202695223343271279773514673423420381527374408859066620575699064703302764975972167742541513071150620950314051571794091712532371733552158596839009351966507496022537381880120008939969024625509820768985703834776216398442752678882289255533541205841899080568553902210748820170204898591361264171530938048961852605542278067520833825883634107717955953215849997835269423015798640361221823526714568008920689757701491227509428607990349545990456054203124970871891434898907976872484773527876973408933483502857456372936599330896032836994393321137467883232547497329625584767106892582691643648825734902114694414150931963828806499104102947085327393568692509817930651453766335194539210754832621783477858837541335596340670795794594056973161580296495791343708239518068972720160512235032375055954028892799550907145430642396249740479702126133120867698069261325507419360822159436776133189964061913174478820171034764029857092656540167133991191531466204192568161448232728108032188784179928043625369689820607347309902674620687139104532940366999750168158850716267095784779433062052480269207399084717747797313817094781671995741034962459471629580100915294269752137169206689398512106676079240946875329642392609384473337151366717024830105868700137887442560917388722698640617502565037834750739598235242123966867620293914098981708301032961414802339656207926576946275643573917630070357223664135058552858605090216069577000149834132307153935395983683413805667273527763216360816257848695983708014028443406802484119953569100858011762408438717042019287080914544048267980946774259494781248036128955964053248841415018784618310002723101138385876402307451587650946222879595114308436176610871388008557001836908129440203047501416948503030930937141113925789342403332832631581129298470489854313094581720665843951343424995995408147731476071976613288080227275368896316856878093504331550722197797409848163147936429452629597071771050391321613132358442964908147265294654345035570837861290273462406658459250639208562629792048924097608015831657962142509300093019123012442549569249861887637841399344701756799102069297464095005536998616265522284735075807884237547355853166262739285442930143462126671541176255491788457882563779751597679915528010394780741957401854051751827610599630495592173564562627700615815705169604662915891826916489573206046563039692280069039521150081335246003771194139843248037058811587336843975259911643330083559942654418985238542978908549915218450308380924759406280274150909775542634265477816729377334023408765496893791510763850999262297137302889731514716033213976742943712246248960041402272368579483741759508200949962009690091311789032790464175475556113258126266374141790127072083319473342110647750259974569339458782295629186158303731064610868381087644627011957169784558183595368060024568825864148669438285568031485068228868165427707511108735347249876816631584148221579593316055913482593830951902387877789851532793934956106756995395008500720931212218172109671100968832057040231583570515978538662627468086014399513353211021926544492703537648326600982347566821066225954534237053984511119272506372532742012404967057579021769617003765663877987434778303318543643672542951270780215300199263209776560821258420329201022503621663960781383784842318450364472252902283771570168391469751560024928970970851784779768219267084385533347964039914162727848179481228551149176447685696966468668628761782054239546561786984071482135980842875837346340562141909420896772294318320192648758537110045156463399875760742219244548612870086855750810656913256384568637311241288023795172153268132772114796072139517744290382680099069340312641773741749473900949468588446496871136184520108190560193775202155442179401731617849574367557856330985013003476616264000601353609773115037600799152620449098157055835094444118458242121515453187476867698380580068169414303725886721627038827456512285694184850372138080856476802342135446522438692830421416740225571336435485295170934257118485492529367259592326141233758910458620315520937559088977291970286510287191606909039926959163075218854462612451518389468691993130203039551599325230952523860090345551893978139924309782978715887141188684890692601810122257012617285633958411135937198728189886938357516175606775546426407630290918629199003971010998908409100950526957183929444900344934333741311637438502397312943721093040715312123782516805024596014315736039418099095935219217741559802379439191479522183943325326101978410431721568195391873183330994319268333198098232016876507047643561937428673743660686944410757648949222002168071560280197921250049433070947210939997570366749033130375140314710668648003090089229199240683559727236020163006919939171537153230590423662939692581153398098153568666234633089302517410021972815187779671967574778094698270296321676062576787878198712118416402436477987586281817493223250215527484648031275555916306173508601793256968898501697432202890008264565565557698943203535611796048150033011453596950929919310070513006438816544720752592633545299129652632361054302040501944586607699852037919457110453772050794378837879177337122231569511800313414090527081034458986770191411042105201984095987220670278493856757573701519129298437813249547108586557168379526478504417251045894661471298226603163495857265858906719019744281068331315776189989787976840749891391445335007595936566179314136840631675532295496810834366275778107255697830969625513614866021617442395648235569573867861966842163914630846355111671958837337621082102478437693496438743344226552299462358081181533232532290381118547402265728722345896316491687563127795523021886081722091133082724524442523894208236974629925469858030715546704937327252042998847734738923714321983570705243985955619507919089091365009337641212495696767922298926763349368470082456445646445934218176430887021372989715973855666333168116919547785703707710480387900045213469945480104334907852516770445888940456609987189861657251453126664202268787113751849142221925773425597189856300806241543057182278563561492971960406703383099557875038828928862845473739642394201079107138718103155474810885486902001903082784088275082162558944002049707195055817374636871723331131380525789476246720675650313802283220502970890603416721538353301811960029118311047283033752787501628914074769366036832827008845756156138529752393652955487600858049924484001711629066833037347280800844252377665046013725110175610924599461172114684672490525191126865564194719937568905836568514631506363135786623544729408899226739978774990445712313704163301401575393099714657317205021804838196638923023884983833252715335317921283948616649659015288197445018886040054056890903367505820444397448466166479022465322165649855181064036683538551581323586314648204503601205543923199115392586134001504283859491404351663630883445855086773138729790045958381308735264295374020061926288186594416978383787803734228846184404095295879440010586791981143049267986759938301715742595209751155455042183014994219356611184768813534315175299992945972358011478828898226565548195845741527888751886694505445204156838123249043557453931030193498799681712984813965132665145147816432900931226342601718217340371608434034752718077699828075852991946456417014660302899054877591560657426874703967097187113869194742400468824290000666604107162610654963200567123485635731458400859102672024963460619852119976068409542184653462941111716529400596906018332633228579115324249485471404195035941519846652502964176189510672073875503575977814078454251798784121487260983969610954825186188705908292444904047203902909541713193299407399180577982734226842753268437633353888776435561283257025642656307485957114723342243581933145399225977357601494284799830985804513158206379717945774456761185958340969308034974736366067611386877486550460812447680389127915271925853277297296648432043243588190601275049090675223531907130408268604438686563049811794628852169633001893473966866866716502501794549757917573418984667408556885749433890542161966107141716808843253056274284040312555125186357581833622383241913498051984437913513899880022909383331084588103842652308657028211173231323029915240943515910162145526053390541803795320861719989388405546375771809689387966213870213126987233412246343246682520962542470362114981610791681170342417260008078387203813838540196513016713831611701862858352921386711216931003859309277587577232221417634864017801314496312550209123008078317649827606286875851014160066327831424148767051886471302128204375867541887695163619477836978155288065696565787219457597361122960079500437066491910533732781929818856437926066170203898002184320260863676984878776720139201071123356198108779386397404154788458078311001925378135001046514654908775881109664101435725217562203817051809133016626210131664109353803800468589075241084212894971175587839839015589227179587488953013063667871680381640802127168616164883563286227721046284989981057650439560424196405507217491130301253016303604708843700518822375167686229791920464870763169321914636145403129439566324940835531130148371272992848450712270012609114790570415328773957476367237280770943756742637150108712197916865451133331317782062353877574098529967626875536332501380802652939379407269555793655443223987340637470329624685731443288945825401764263148417830622767389648453512160415831829601711681762789197447079326539938925974839543376991664613273677416242230128197519843486646279269135339441304492217991935141801298803213090436515289609103335642352288982502459669648652977400304429839520191157446815517031996576303147016415065987779718058329836197951160309229875295363336642445772070637084799335076939658171586675631250230804036076033976996314681027661967805879201125924876345058282402570897620446706459617391862552448138396923545116470951773039611968320059201229883288308566586446206549884736096457066749847664055132229783874227496772880448830878683950568790956702591843175822150308541480185208105428529329318569097814313631236344856256239309731599627249475286140185693732689405375764239713600842686047721083165696537823826459409835468233676559371876051278275319054005525590382049974764936749993877371051974791060482524008051342920525897451955052204427573023006711380692670768943729868929801469336950480125163357901355277575935410678534646251350198197510748013184463779535365633883234566399190279389773207223902243069295154754503281303031970861478195459500188555215838957516179048068973370102974336575056557417853289042041330820648755512882709565383506815033914974728553200935121545960690777780199923683585333210035256026386607724723282119645033772734103931127424616329743360785143321932497691221254690786515443528970489565143866190012641068285094030469407843214322614635438381112795952902809633190229611566678255310886550565480880279537224077963558719193281451149485756616656546358378167788576203689989881396826177712498392431675024013437789289802465451241148707634192856679028055135167083600561647041788377404817929393306321446013373726006670370849205576776624231357325538666865216623101147522605128267376821623688982821211552334705473917048663529555537460904786438453692520652519066235017053825337232254805252116846581706075612846324303589553274759926542211240747554387682142036114835779802754537503902121239318097313087309059479912575889821470397755919195208123746503972086236866720591204211237020102227306848755165448651789877779546384409635593000365366526963315068118983492497125634487142463865338573398198278485938629137999893834922859324689999598981125022980370088261356625523287511576424585033977057367674899404297038850860386977013877530850002628915593074815786532790925353858831394748428510329953436136949322373753582755606341669704250973576454894779091693003011056434533434534257846609600763702437754090343263133204778401324975536616283698682700929659049206839070929649944328993572740305932716082802345005060239484017759229329290814018955859262588236260302630349428452558079192569210064577758760566634108019077293079353944094337342695388788993884101901264199773454313669145172990667337681872028734070702407056744811296437792327889228694018628038339107157987215185159345188374622138725025123313788653836852760870678737086597268588206966726675578628158096679888381522604545613652753767641219012734022241001036876962779211807354246475650909403823692032859770353987969691822631765117657711440054212102602437304360680759944151025211557281429632142817385308584392067218189618041925771057994296044250660323984415646092393945710673976832155624757125933890058367478039512012920453079217491857880383924829411877119365206198729796756128133033645022889584607087674736157265134825613500431565399398573332400909206542793669648093263914131327917171952032645419432869374847368348168815443494918338251238180450049367291982111941628787293995413607825292126542564727051596485315482485649327326472264492960394501961117265410651765954478016329005353973422764408546664774975020755105503664482837710214406663625878680262833657536284136838161564593361650023201473178083017670243157255764678245495280538398062833884419507488462633448895076445738907761363070551272969394265207434342513564630814573036127658045715274128612131719692348214948425784226375242743240945880617620539805556846608022450172088715424570414273622995246790953596361075612113889200817204095678909684521349011557190290202088088918485071597460985231560906376950203691018485043817076997178804898932184698598692035385146685666338073577898760505139928803759905417310353278721026533977123998586707957120446278361850647116117018075504364221899224818914787811690245348189557149274841681141962679890454971414653897513530904934322912976070553428800868149372885666137806925088080629729424062711086717094979576227588745992811140247025960182407174221742627855951856668917355126115636067915663580196077412893289065723269526776588145220632068473159808625657502725820830085281393320773855828799244018145434633592295072804848738143451248235018426159072236497607025372171431528428702614600531091092474371852258663768818197702893604613291350975203758587397481784020411444932320900844110115000798734997158048991547295690391576081534030974687165264032505945645099306686699863083719596472248134975982852027252923009901100284630791450578128081347128507786298297118433550504030850381132276371766878335728272846598375292298014753093569580895508798309487912390929326795521143978773198518946039106358841908267665082938986163886922724530974255837145573004770579159329183431731539288264354456408396284928751865419953075203366761458506298483457715513286112134962126704946306560385819572728299311648874070704468373578948966361408413186953605157863078790677437114652656679326542203858245343036623755234839049964289804873859120525235624663441325049577156825276442209847009039390932884104852976226614785663667837032905482784479387347247540962353657902302901165460828871104086343590877944587915277339465881015795184286362068146687146776010583705390513098900866726124604201036892918174227146749862857357848168460441988927509776534627350630995891261772039171837064861384214596396116301295162156252972559645967020269724503362589327602642144964607469087147366796269181297309615411371742929447105511913329181490971525424880638469589676939126796290036859126532609481254362085562846877427832596359265804923895883215046633678848206689847178489463303588494195200046428367595653573000990724197144331899205179509266517646418157505754109169766575572265439966923570401702929494288724588842873356489084550830783373922235683510446711310832306282590882580797012638411542015198546664560988257850280090313321202197443369543019895414745539992994800565140909866123931569893998556615136041192786007936029865615208982520171220525589047987615942145959796257439107584031788816594732814452035453264430614315699891036846576246960792334907296002607419232654641987100448564484243490467549116990675381255046942919510873076816824710445381665176040085376091032483970957203727062456394318794575717381291385549137671090216312899467240238149836069699035003717005751638198299570795889620296730994650293269985137882796231726577357917237055047102541827435228469874936633000098823207066064559858352349277145397241635021046325367430980603701475985474100462014178473075389586975951319743298294517641632212483243542084989846738368431211578120827329417952331439078074502725892804727546809548447558695302951089254115703481640630983470668743245842556255779778268646096159790815203165334808434819252316050751875112039870197910080595402791771476474718501250873587603141353286969327692314691644575159991593129752971876910897739687093096790416441229383683211554369063369897383790321914197842831353099497943157305000642991667102204231414454335248401526389372477472619371010234410068434032272522829715759467032021478767834387473945245950330070197762871554976734756271088312357432718341430676582363796141135658821770395579796354876196881844981783084294827602327936826051900958158034777132140989765574642106011517376236064990447328002829747387214084193800055303408653472787696091180036167141999274099526277730979048255130695930353930184737460211094535628325528230747075710491647611432596200525690705722207696984926342546907286455281685275594829240158311220981074128794160299042326665594361618977319009262421430503288327512676646276021212029006642114222961708375014382387367832220783688692235460454510472928274610785998037662305165768074829006013525351676075642897398020887906200837154311612526900186749012913392067228034875169105862148838704932729799403772023198030260513957076380012155060886248356890522780331319741879052241561265022354366497879713009354948299589711515920275206231159100466448923833798619724057917834713693755940256108006132286753067844206914284322246687466057209549025260219002202241756744319524281783339802515682065735437717928567812256677326065366021838587167132120320426179695724536592358162810070894417351412421467416040028414344304134711933935705228685613980518351171604061150505862675081988271603079582411150417765014313261547674646663602294247777358277021734543690424175534228635992178102563439106890208772483999911230112725478837708118523528054927313391559315149050903189476800766330527744543661921885924162090181373626575372548031602155240959844774500222894903097319648490248786220568588793833811433185094471708063501522497494681910986459739148164344140824027053754925408392757472894133307440037743919772017239926195554355002965590096238335330221417834952918985415519047686568754451525661983012566738177107042920822353921866262025879190889370278282092346670993206004672320355268743046618267469748920300512840615038077425266106757404849447695403986811797174908426021083668612026138204084761104577811179162867587079898379244322722301519595703626326519008992671972517694418288021585296876258667315517745970652592277444227583934760504609265128476576431892146531547903279338920916436356522522918774035287370248866479539885665864416258049503013146041881509302239477838299577593469090469289832290725200616824045791384567392983251626534902823562206134405535655999773950979614451442305148456080394959921835815228516458766224717679153314300803473421016335863062151387287928164383360821246640802099910856636210329029933944306292596182989264807518177924109959994345186115944006871129061468469887925114903140865395934190073700009537851608523121006590520186995278590553140945835048283028718183860518328480013430836811916293137737616941850684884972392862672275442721721494733192148021262846670334169928316694603359212312165395033738265277749486239778798652979904119791327835592991661670521046271918860145578598435388773305831690254577477480961958852605756926310965362973148040871208330087376792321778587909565869333535116539900333358848262125667284555528126105590134512473477493930709795494235581193547465258512226277907006586880503631774498076841559228971721678031374751842931396215816330322224219960437231080465281777549754859132506966741000505938335143070066075053125130866070523508041855458127615206097192720073554426157581814247509597096574716562635233401879967842647711994781461974771609271484023467465082226739839732876878469633641206622160217341208769727862274592965751108996945427292198212985754422087386846941270522013665296587955472585427340061847381045490807137292071615398479816101735673914254284762002468920603035786123892999237567365062456054437420350371627803212969287572821760011101038989570901495801357153176803247033822466943329959026210228372059387695345540718513275824589949482377732453629603144402769653734201550823728437571892754829059883300142759193145615000158184212802321142252480727094788497542611146683260877478580996346531257162436178243008609585743610113686727468017163978703899015312390520717548175080665668735211961718524527524108437746894052862874735740525140317882796995187965773739178916414269593623195220037914179912669920990666211098359315548150045453303112178558963965150162444248115525623236880374209590327602104753019952812643659039662210591712863171392365814475492008097022135988732357916099780816090580483826093610294679897777481294331523477994134257378198501547006815362602850976083047415687001509853067394962369521148251954773469474722566744047278767522864856815268348168727166717297595197286810994200503882702551442727499924148130817983028210311421256558336481686852137333286569698378977432546341222415302668034270628785163765743129404661113236756314364642640007444084388158519081833538472802922332456069264035557241377805315283603360942712376710939519835799644290242724254082978229329946666397234061242049231008152153643662755029610003708082833758233986144162602022369475083676103800047450683127615253169691197124877256277739978269758397080529182426033560094764187329406701536550576430035374807227876568679437933000202770629041233696034030961352743936740665908582844630977867403180782304935303585434683446236796024899226169396021783355921872478770039716129506136853044241655547270695851716997800005934428529893007313776565214175891395908505765845201638194533729499005596858677242799704913044692504277889327319959831921722929468562299280406982994185220945018179677839482407023977896658059760271521986774602083113219048476743591675966725911685651003679997456844538626447959330473051885531427305584036219256775278779921724653557212486247641074119014684996481282762380685831713960329508275900257864098808786522431557668762640499942735131139888456004237852223204468972138851898064368643091041925294754182633852309940663313697921491140003306939862466419243802692491741641588030273154422503399344468870943797401526915496205390190495454133206057194722008564844223441693749752682955712795315059188360546542394867693678903590656032690530873336917265230894402280100225124402300639521329806829558529269530210009999483270439803385169474568306654148973840350966646974119598006309796048601601755502942408195745265622165785683170547668428694965564860129910846357813757076178904630432361787360848910805455554507653562851255550937545825770923620748955252205973892831919229444262325543784971604394454054322922798713147299789033684873713276956897001754079181977919619100322688573670813917797830743982105341354526029953558706907790640992865782109316846059149891552731731669055334628803075708204849957803633139021123546531978878138463032011882175109368345269169138657850928321221731890126935780474261589377576307863977715970702652473970018006347910510840503257276207046897590828362815020190636554892273425947012406215902245016949346892580805537613888536742115562074907156554173618004456049857433112819290563719828104740259208735237041354102803168251196499260805879804706549175807375932652608075280009411944852877067378179496769923794573129388958285452041461020087955606327880642371615649824469930564557290492774711114785905050787105792929245742098669784768959482951119134456599709128414456649920653437772383623972972147116117445128601835501702435826273700381924081218534702596923440016637855648089491725647885566619934865371071376692608727081395844530336111976741024388071675990879640937088252337054444673859806259561673432937622131377081944190197391910211071386854324815501499681028132624745131574663655374201220439757649478983306288631408508063969594826390081860066824933445351476415544375390334700957023645303835575267966226727286977187314886922543058139854388423657863451552656540064621995440431023197355730841141077604094182665362869447332088650985608870564819820803953489745683725178658951406011075055256084117490051592637482411374058961980090366865621095828028717406806518765658761220753123982645471251979186117761190133397548236370864346881110910562602260887585324974435103519944091047456752273839621924762686971806947260688601110249458382820779963631148722967966956047679855743596508746232206713559461862689587821452578277205055274308585545764846214750464977040369635711931453608611900415911629161263325980835182369931960532883681351560243956100369222991208881949328038250515557322462008112479068345622925650784425817308865695346987626403474600912233309195008070872134900194652069554577053118565606203805295947995676240649611692714840605810107334893055817531730877582010150226574777930640967945845747204673556576218732792323140787319039962838106274222045108007606233098045899352229528420924483771230078854093248194104062944908202125269088788728127981751462145467716907843262887494676519438226981437515957054634763573498594192598096172537494434296781845950086867850988869690982444535390570792638561889687478350651128854704990692854545781787936510082859846040879314692251942694128147492669200150310347921518695562501041857090446498467288937466893331075436459208511689468443140332288543023517941035847118960889364305759600701864086119725154493621234183713142168905231780362704738811092945696318798013671364275901768443216422414553842888482139525954604162965963321704572550411752615670646804961181929192535342926592947505035804325641552415130261562456172427717613343750872367273050415552731018131086673450750570489911545759639977810384887839632227546234312391942435641563887036626555931429467657431731414412095785332403404411174278483927873601903307237715830892106163320564530666833337279746064835149070117995668536602430960805566116989270421124596704862332765179318652285112233221659151154819679945198722019275489704246043806635673843164420417893054038574050398439650146508088646606983900563997603630651066056311120310690688232089623614103445475280335983335455929445860816885421316199246160876325754867333176171254272114148617328507005416258423333436551028222959593598676235210024687309575477546618872098021749784198230855368314293825018731514112849318834346349153187325605105871290118454742913868256213248280953579063018191690101373389466913959478628196828294595695475100274383035852614843826605413397261785666032410217627410507389349668916523774720928159505406296936968367366224228146581585906163266742372233104203070718254183933513373559169920712253320970549738871831873661602514337275972358648155406135865487951678774623050652163210372732962337413070466506252350421072917220925083595998234777109520627467579094182072250290506386734088808360872971895907451818722655743352716895003628097715371211245452356894127027412087798567741384464900834680464507241807064362637967722293660382985577972501206360167713210265379372802742060380918637144682074257247916031465023144968073505464370251497684549274376623407960398169480035893731079192418014731796729667827842944336379705388927042394401378770238139158802334220420396894843906355645309112545484098700779903480219602260913867981354631909177572372317364990114984185669667767587311384917612901889784608036576084088248092863590827348030930308386174596782207688760368998375287877982961631684242720069460036847713531679083548909189343785205201360250964841680933909896731031501536653095228490554233938561484511851923107767164970224039161200679877519161861321751305663130063504103578112688452769170466024168348130284249679322161774370368198146572899172594898313632470798629721693753492972231510735902041522139082601110604303681027602614455750528551515621450767038267771147079988376900403375198747496391153760396753915252207872035636423059467631636140960981961998758696697866096643562622350662052805920491064904485025697360572893001010852065375582111078777353134819013732433006468375168487138992415714194746945552032301659939373702408225489625846894048769056171777166856333887590986801958896987233122160534874167220778501093556292304373461780341920237675348693951723943462639227434550750960709835033994257373883955266501146923705665861417432030554633756414174608623204816031897075472844433855627780737374756564419758889333674650251958154006684060702856539558439332728008037134131874690241279538050475417819559273961837727334374916341792558457780629144212482007305189938280627267326130863467508602346397968414941007076547219568321052004828263522907573029741016496294158629045373663086257506152273135703730003162414446926750577965724224016715325392421572482462582171958351984107017428970342143615084151429304237402690565483298926559190082075425309115196404473213769261165048185566062006688765641989324798111338739187555147509412985683835216615574849490511973724482315299534413669946100806885271378012050459430111985096524893333125890355843136513341717974940609768289108925693310969855124350283367316041649445707749550375180879471242368174906877235591077576348847680888131993659036159831204160915849170927627232297579553032830647523987846672767113383265237757551695654816470927999940589020347772515591403399243498664671251679776610614305858972645175166407754416767519559533095762072541552574816680156737427555188923971464702904374756143297188052255062956020462827610102322528967991628357264389396288735471476161748489240708193312371970551637346869544835277661480633401180941399806526663293534651621344762669173843665225727107372833211492394563379887671776571085718206516733163256669845372503692874365447067435968819682455394194181984992416430813032461162608089206725018180974492067562003996758036635108444770215838620288671909956767828321942963536265900063394841208026594843061924958807544677654075872459487045093689396477438634591606657645739518196499986303612940823894238984822969554468028174021178685524402861738419650675491110536592422206459498778901890835951744913027521548326403372546588069615480704892320021484287791708923319808285710055023290520560432177193866263812068649039185232766981215117578525459802890213631043860320802951136722886568468822110848299433147919043219659671893110378679292736504854103491730906731655557310236012228160396310674988969296856919266285379038235597778920736445579898875618737277342334730305056747388995777582061787879197351753183792294812534880952205557104260199770240718728519375379584844547800727264180438586994921746791454334120140761550510704135258085314849113231421982899485176416520304605209026430727961321751061515862539729972115373051763541824861450520367825091574216008100568670228815452226010457781355233196833258554686156590696587563364355607417134918152415199561923588412049467179897297742527601162391572761409375126781957483247607717850025581686727885604788602361489263275781192001556684958976979942302896347509629027742175504547790460400257793671159844961116820621783062592661457690642848870492762405567148208802189791366372207080337041525487597936011111997453894955024401619077070820648836895259244845622614552476933805997803130798045119292140996105782198818837661943763417333065384082843648464656166533946615765889060106643617668323215467921530399571245967962291865509726725115755589417648467029041854055359447435103325635977850085757364655709755253111188576995292391113699836741184707301984095414117780288913844975724934914913095265777000867697966707107182219749482082366348000644143722809099139566388724378730606885052807389418154308924907499983801311702069078838545908288711147137049187752370926209636843119975009939264677385151737890713274262061829009750124206485582429916328325014783707489066086911740307319204499456262594992687750101669072669242519301971358101237719272386865644826842304139185360204831689340887712858912829968364430336566893640309133840469516803667374617747793394762814506437318805873516901539040151046571669731060020074121457182110981696937436271540740118069371871593950033785095875558522986179710362650198027894920060553042244800533610534602241257543207487179373033778422243881721182927617906316666876738526379358356830116911565297326353485246995216813501425722937520599980210982426918779399773169689091560794264552738896722927033787722822475512691010746856818061252630418428240581584469316822450733872031549878106528615468593297117047238142928225013051429891909660547329271821016230002807795797101005963804970724615573860850569121595882249403866250995296885352194869610171730497924732388671104092599504438748786698407017443912220580464054147162688755008608451313034950044883978754384145887115039563052793163268876145171492156281368257225623658526819175797674616988827424210890121691464694804214030006296085695516035907777497708805133110198496746517968136478404232657171543909797804872638754550034756735226307561959227846583887325421662271984141409748387913372957127321878139149391214235340706827667007191660873987395361305418137110248655866251867187182010769930050044436144072744604883257819821460775090473057017656344309430518539146148260644924706632608451569122528995631892401706592246157061634078521492842981331130655529928901731287135706161419426393549648959783264096012385745840644430329664643075341342581531891419624304933857005159285629391870165231438489282251853489464408341916510725246698755632128770074802004304239056961131847798864084114151163890061597346231679374878199915177223948583684952877505212381376031746167058055820505575184201413575588135696111736624775760577198587389280595343533985126420542635656036101847583199548069588322694094977924972411256261202385061476342451997944939499570079575946633731491451420437857193728361438746190191571978575228542970013662547807886905721226503111884681054392359748991599876734844099605624537196316870447924146513907088320730016399546245754065172233606518880384287367408469570555042966329767844678027937268627444848240309586347908354786307839786814176414542656166176534065692034432686758278144606788694188812131072986392583288051871588330274426036272743741588685828071219199067097031614875549716678741396411734031311006905486606087564912064823386400115464127209365634455674998733382216833492395921131624163411779302311864589430598064055825282423912084031371835936862035257512099520177992011900804049915476052306339531301840135391022726847866902970249400629261928721315399725265346374130621606474825652173179641079913993280491329211362629014907980017625299321070547834134414555387363402211357693166675188138405365319973139798551060045808863400373375220101328420435890197973480371834910058851198066878625945780810711679234535878952852838083225899652014801656725541481733011625048604752741009877360587619424078916126322478211797697865437856645187939964370033010468281796660193068939310859240838437027281329232840743430419323062067713367603669295802769602244291631839949136936838737706723695415989679723995396378254628661574259014926704879834490990166912155537045639435725611408540901404168400759917659315666137712112874797293529435409118194003414256716644612283692476839912820080268478374784361356872518750570963014005912383699066446685278099352085166846347974853606672340994564455767452752461275640057209885528206999306416507547450958727370993402585452335899439084155560606314005953638996879139052966066613163905220646889863569054436267827228564634256310580336317571507019540366375849911634712174568898305207879434566100446978959886390914149653592746264366102534429708480486229067197512479572510157380931959925504141929014114818866626596377560959778170445245634625514143705177360217608022563758504192454455411295796370931289679751943933929887686153379324393652504541810966155751459249954307652626537964021959039245821330052759391667489817835151127329055470440349206513200931634595844985762101486501143185635059184463252095777393359888023540475084141669785103690165010861922410545990626245504397885885414380660534499685872159646145288814381558747505977718194390915347895876332531941528845190259794358106329994102271948380130510364367308063334806231444920244267502655632220937492584775731273767662513004961688251358081611959420925494412743757731062443019338458683919722518228948986068217462749552164184833741410477304550046319612026518045543361562769182198147483243977195476036944942730714708578226010839614064539882833505913000773900180327941908609646143951126189132514861688130038741500493007430666153916291341752232355443753747373060955551126072619451348022198507883549144613451078992680764084656680243838747871968031374399732651406421840113416519436778746503722857331885082473275066033754989872488608969139659022328606326394006705804147343669222867227538948242441243063776899343607752020606677434755904115253717285240930048722976306419820915589922513134329287856204713256886693353382520008736244286292484404119289081385685467142582698065066094670499559105179895069387248195309977586899009576990753034442220403026490179316191950552381592468141881518236607282823056574285472914098489242359513120688503647483794166240986150504789244070968085628785273486623897174718953712792621076141120308220283454560264274610482147112738988203881328074765104738485466060224487383668554271128232665047587213149262766100037192555394841973332430804864266856301131757264591547176047055961083430142487529237739511020337582199708240659287723625610898007147222121226170353887033954246438693180875622304277142086962553950939710611798457367381829513698282313122547882653848661447479391719623609412865933401707659175971648191129075532484701879066390182792574910356089470163569545777767215344680038646403285534379011476756309941971256869371791924921353661421968948316731053468372467835094303388431092845477176007989925787251620101166171305098736588702602987234193115261767471115389079661622497678663722015760600243466138564223764043529155478751546198650724076971234250415841495683586227254714642918368017790048637870849210052535496289436668850873042657573514257892444333506637493050576587899131423646226098996464151169950232818155826562061967295192835776960714227751239183121749106941482522568098164093084848966587320738478348327718574205380875505712827648712223985539710883586475690458679340897904561502770274120017190902832250599049649481479473692971824383574254299437528946499993671437635824309494541934337931651099813800020075139797114100647893605767655253062030604581727696445470850153201860817736346909330059994458276323857927838332966791343904187619744484210568654401126771382641981986444807705009829985171537622622085384963938151808333661906892761886597641882840206181538101933151652255746642340790258279930391509114764955487298708154289851913251760725598257564817467934974885273742505841107679584897359842725743778088138108942908270989668844817618380396037748098671926373828405487231772908330152167717117933793561599474109070236482650962690996823153176191866505487559543923997597426422574467634265065986629344172012125822153146599899384629684146947018484494565456565393954667272636491316770084655974430942759843557462173452055792185872069394972653468714656358460291948290769517178803641121099658522058612419736873201232228772972192791684248497075808458603941109599126738820099191770093642434666722331134170382916165334878647601675764520052772716549455289036613482826935248963069816997890140126762972576235004547288002579406609877322759928356014325809977394462707599526087505341857543608767049958402835263143107193824349152062102858240539977445571663110082210512580248677069155258007068866842613943812532037770665559843796999544308008244880781981610238016952039665754098148016671513013375344258423024388715456482795912279826785121153460544944693361678825118088848946153041170265603991886469444366258113150897536440727664943079126438577532980463099474033295864200518675579697735083978324167821126965827869804913044177890427913088439353932174061837564910357183419494891576568660089939593463933257469683119495350777683005546561860863790025178388470115304732062172976001277137152032547145527625811386361066038047397125236728602020110743246436350952001219571942720290162340928581153103584584508942656582683957475464255386017804056600361552737825139506653164307731161932852667254976000021906962270229065642256718742764991558318625387806397198218962293359766130113206900675218875335004821919903818321438787673278301238149228712390569378524702138900451154686921994388384840233151260158835829684486367247748626302733062760224835609628699498053097208499688742808187236193506744501720238813413277417690167567043968888087153058667249469257154962784996355106597112480350765210452524445105404003248968892638342651245889484437997082487552550842671840094705051328680429135398626753551716630282624953830665426028596549681480347085617537213707344929405406376508209375600417818591352321319403116108189524684353962616083787695631824993959657232325121064738760302679339730225445813818523948419444176418870743224409211492616452044123744506658047834288666522407773353219327907567806870326484708769750186860897103319243823032037541154670110155137145312757892940408998783611367804416649713393858843806422135073890337742950947316032525054320935631646175677685418384022824937897105270556235768123214302389587200593006883329164967479368159676723519358456050638731540115262029029441652455762882436392494579069656892513393161675998878285308091971254307763266059632655435613643498990425132626980199437940369530884512523666217163652171905950133587341646728731922510415440366222575825904030903268527729658109924721049799588299775684367917172204845794562419649840670212313972539724153686915618286076406646946773288762340884847551917976479058031631458507585844427520788760666027655853838344443795936131253415575198280477528218232093445384980650487188011635697388030436539252706291030552076493549217029124011377552391009775157695738006954271619752457538632909933715326465451089730616585496593246293687649980167260807820190663552397759029799290238756807996668231282676019705186110565858989160500353530267910446586901794683478577244409205438373120837756633383054390227142657014373857902012370256388481763335174094069475838843611561877012974721076329954779231448677872793683415989676112601183957334565887699321611887457934221588792011700117436215781987323000726795676265759200987219219579623500167341298067845945689276394481277683023057590916562548181457422096778904220149322361032628721134759945730793627257736472628751757611385458225996667307953665455820861326401670540771720714972048093791141537245805447683326259160782430436964361580849482261080518476255467264819595191520711139154613726518568018898638682382313075111382138337315442895108065596038678627041693456136513637213362415189985873550578075537139805584434797999856934982789383394232384788464426275331892372961274378573007636984950898761985136919668957493278555378168031299234562006145346526538070993197517599216870728209848302898449924697252666444746054161470133824693181414164959198429910308142882222271028629928558465018870345510713544379635109426363881512862302228555302784567599554493691906350133273020306463568008693459068748112654756213483985942337857049227947355709335574124672834603266974628453253830511281948380536035126980493461458814926520183172096182179578007272561034323330702393942101815364754622591457998567810701634445405165454439853557736476909074495432348744336177509856136464365154237783886800539684508116907028884504027882987590575818715621791256634123538052662626376693381784897576879553760875145529228284645917652144621915485851809531859771799898658459912707839379880695543431534357213681472939669341842107617367624003142701933080597619274804964488442749473306905100319207118085476270336845659749398440074873017494124645928714104348738893753827702698468516535081186080885684274672122099827946930403837865288156966233616777133848609891746727889340876032729715331628781581644563807645568778702522127139011506338147219499743362263348862439472323394257289900387021855657371099408942554635850339492739962989813771692177365913470322946058405134815251988391968230521364474245365139296786218869680300407414862447827911044760418872160701932849465540872706388633921675312498245542790510646065521483888844851974555926491412529470292952917832065462044455794181996000907028561448869002811104922340055421435451405775244668200786993330996552195261668474266763554349681960456950157449908153647298585200632191179643213931216513004995485052775111127314096045210516128536172810462919856619282512325645043469988451856580026706123142617097486160722024973102317214734455073980529953658191370146249155439655486947643620681930645482408469625312615040421231946036562640694161945234900000807493156791463619273417271339565260845332749331948539071624190001892254419986871481772476760569317730532198131197599095073801624112654434806088439698150201630784668845264636103218027412925095154890637944057258389171259120140581571875093541517667835239787244129473668050609443592911974358989739345127800035112664814276096055637742058340856924260335810962670429250827148852340293031500900124299567454790616759367928859124778516203227534630812684494974376590504755989515336329102659073182763711688812822682527887243795268698876873126712507633092984628718103645539450956857050771979144976528288164564405940324802977445646630112886917871711479428219363938006974565162109816414227117221887983145389758628612446407837733474204179841328606609237154270056753847674369219689334491707244828793742842211381136333088593755819192880589895758595402288050311445168011883067238497594941155210467363702802387292202269288305784134139866769261608133788405300187348228835910692680009129531006475432686098665300152620262031732697317408366355409048590077525854265674845218252519632324542923828396952371157860522854903664503798180437327339832548184202121823518652918797728252580772569713033540677745598938472865663026629890615167207446914940656455790233878810710649544582764210631285360262077836993712411755197636497754163552386069062990971313694625861485667177702247084888365547519731181210019636580701114753521618865918761846151827440866001803953777010218612855191074874721359919384148164198257686232032937401742493796663202542598969605542851517724487285550048445339263990465558713599181374037912279335236961116501648175294113725046609987232962180717796603693265714600941634774725753800839230631647692188728218669363048374073481742879345420691755518904045562532944136222286100478390076633932358563621305417394591200281099892938806532029133066453448982893332955659466372052311276950360603088882309530817380128550981091576813299204594080571663806222702691600476040635894827422962207745415408655947002540467815586229911156434330341080300034762000906792645035237314232525689534352964765536946814294877140249992605149413145273881751231531691628640025108042355397609952541295687613484263915145515712193755533972084794397464258705142013974330548118051096554430706273999796133139093405572583895577701863217540773877090615029995216218882645557172730616567436224389663788195722172319986871972803466980775263518124029508428839598481221702477182715269115900632718944907627623924706676979472196455299954359029300579753403082164179691071370605442431330924838472057393818680944087464888916021954386903289521747180382928982260808818737485091991859359399343652128087502194181037462183737908862231518795828501845316318693026509789129474331547253006283373990048421111474272822988650986534048038603324145018742404548017527140612900551482357325566804894031002785122370878909085945643479419765703724931858990379234783409620517428193423675168132933286194312048268108096237376065446084509211262762476623018854755622245770188459963968249014135153688223259409684140394710717482625074625374148420563533845015689504095619337727426570328973651409344027929679863307999374785305352814306917905668650119219429054725700674332743092926848430432791682630818260093382939323095892241777355765362507864608160953625259935177777514739591771376804622132031015340868027616499459600213922401091828836113317745874891111550051717933244338651233980674145200254023827287653794035953604070536951617736664720211523619149021549543690038232496452610617457265082973370271393030407548530967466172563334497616195890389096815082061543211728328348450358194069177065988098063934647007737925062916808855326480515265037990863981866225063203833515140160189306997690444599432311982656648894692190363900460050542179111752187960267842815270942046798120668627704361403534005161314239806113765737538939423040677024756738186960853128414863877224673728430450008597350129588991487792290185204985499339504720516012278047488668687324451911982200923882545752993503617653750063024930651117254667777006030286465868242019096158304331038082341128354920056858360549768944200859483186641407355167868285740144704907811421448344339133739864133839196892217539466145346576343190599442222282069160630764708800239566056132316954802543922381222987955683515092840475808589776869794674437874920716946795647533790779007413415470819653371144903406560760284100502149547456482167583636786201787646774866276467995220577498034348808324794337107708409619797319188067876288389049896289596927984319272249012743040377783190775015493610657740458889150731466870658310450047973183746575451966691753286670824312503324366098055003871824537556302422285050327243567581746678934633326867543231557993388675103371277375327284336257571550319096673414759240527567603655511565803981447449501104000512700221101644665879812671380097738591625331196712546997143737841400225576086719094202621971871871008529205789914064186824958101426431651711902598479595720844395827263171611696555685832233892019478465684721817176625445476320984279795101810316396558070829569074513182549947863912332516979576080182134489648535128273438327771055192850414784207278620457105331095122225327090020922394163569174298510651305520547105022477236012847398890525304081875430125906185771321180968285129245904331552513173819812904365249211943081608675216635084062892315834963921735296430364177547229990541134590207961631927253600945689353878894059221154375959100292294794075950338830092128867067095111129757835596412022862845884765191019712373893258657363648001228899225586123856703427193851145708210756670597520486963838917486279199900767230761366308729313963046436138869395549061047321944715861082044370191071443334602600275694535214098566200737868474093128941324270869896530869603478105636017038567320903605208676208935204095563733514569304811026264075456210380235538478588364192644598810150857424149211618371637850085442337356136716526987823004378815482366886325820593802387991300460421804049830909510879262086119034000159566479532615510291066796125614514680771123588081230432053715837132633584138096062931616298237856304762533510950876732273010925943086548085120858997727574488411100879963048997762733869120184606935046673242001086349165662737100215777567274527611764928461511024645064810730021625413713596091829677254333654150807675608529864831247710990531241422863508719702763660246098269902369524333000131325859781432339606466711851667955321192415773616258247070945767377404377649073408571071928066814577331266292370473023620101527135525087929780523090250185171117043396182952478571947541225884644309401482244782355511655416839615378803186630059564041578247026496747443888876400196280914103702004637195049207036039609732746694230616301296909037535263098219542330194737644091724819003984363100486351515659696029546053230376569571846013963123770905356231332293516975865054868585968876810294108015548567511253766346896834582350033620140329383580914512292393419007051931241710851407282545447965479225175817864533018389230897968501576937381671412457022278261579033750242476315477666407728555268734186921144829729801279139517953229854007867462848225560507421966597692796796574842740671508672069400079447434811783575118970488579952541806564359621774301794410183788921591687212237705704888750800158442652740191653811712598359449882709670737079940903283224720195524527197983596858607301416162762190387123239278636984862774501710307357959532205077415315619342054298810250277199898286775411977362519224768290451898240235669183344765053069615032512875054159717123697318942752081839369259197417731997485159318380944597712815703558790766312233491144962824662740711481589258824562854484793122168324981372692477499452192512574072267495555253593035393395331767210714074481382472391235857415904164760937245376618931264413785044131741402968479370766887650938142018514081014587652798764650629070664327877129477403633301854297549583040241323833494546319386748898239499640243344038369028997679856230251708636020422875734394720594834913073882586979358601871576930874202310883347624071447995750032267309420304515328638498198718290153461157999950681302753354388212341766800945740232959216162440606026193834333206510210861272481704592787138480766321433086833111660320042331917536445826059004254971047636614199996613020067272000687385347966409979248177636951557742726237743695236166339725566238043860656754862475699736258369034450247316745972368616576226345404559508501180022654491033891079774821887815932084143695671691332360190929804116807935235276697962175598344706361671862681472486641422658763504665034504032551156827018004747314351461168602762214329709166771838308062471433472678717362291362990671681113870769321106356628836958776003183130079013160546926101454721299149809825295563379640140595002937860667424739970348753271994691540201614267003626163615745513074772304797995509866110726711650235510223693050245819417545466656352004059459481287234363297224276725628440570651815268293766931939200388589629532840881284163917401254707046545502538832398210407007868799136717938497822160281525694329066721096976247276849151048508391101144404396444770706336235860607609838592021707662217381754760751972004549546598883975512614023606409310566223603610344833431905060934472848588511162377564717156354074111031288937353092526399963866110407100061675165583238502355770576619320635794061491428399360528433008633371232147315792636321911388315085261092514812675553005981238809450878210076046781858237901882780960191512894453173697067665299384286669408376976952183328982218529707979119609771048081177926478652331386365132669739801893576471110911125849821059439488734057431153294358142461316226403694948428743432126331463700944064815539078341149379231685413065164468317278976456546030565906226780541700075651122249373618765560756457460060682539635199811819086378021934615406226750973853515001169467286776727478361466159484906306780856737441302620575986828143315545729437003575419659599924408525451571885523930486401192029354483985178073335820976800404764635233909701255908597620046126024329762754499347295467279344510020703863559694600768729618065001006504543804062221395610824595504294558894618995769100498713321107560599846398063504237460145340034097246835983432646217006355140468386158432084462098380392729498728884103554720865604102075111778825324619124349977662407598078573399543840629612291668817478152342944226665762412561560213840102106581752803186710133239207881572438288340220094337573331587812543444719585652968287721056250601520904874059979109740686879693754027751569293757762382403083061359464681922427373297479485987418774719882243910650421382399067830501779739258403421688866613390446801058287337825290709361904666157830193657228286873250843712073590462091308571626935180795284480579243152381621420304563361550624132829448928046727918406927044869813998647292391271454222793814619557559192911241933845066212682957270207325206091743967226565266564022244860246286711522333755466421187316281101869433914059427022589786197660651499247799014482155114025655831015627388537312983597031267891059185627078654740647383358482358405466812096669440218663584979042152774849832479247221835736516335438918761799480401006664328246445370187721587689189144203413966852047913827443926886681301926116588415046438621414904949541661551161584724551745262219469254375817614397930632229413377436838082264486875997127647145844057091292100995009833095438612629016797441490699668148808494936490550592304512091060391282091558940574586464387302830841467369096239154494231201694478633314639147869336434840190414197232891610620859448181150995754522923988482903667401015169972768778777572923998634453409614947180753659073880840616950567203852007877843933766326871364822855119667798257717988027417916616523825267191691932965831303493399407310829907330510340900010109954643425525275513408209166891773261127056913507383256112674493432513791199346219663163881821684495325966058753922888941228009993427031743338225287055643695814627298513217470504623426557048194562865150852672612095503180915305463122948202115453848274099903681300157857779729240873000554865855724062785052517984273229168353183878041685653066027821800197090935113565844879140999260929696958931676368953586760875494979535084460657454300367334000345459878791054767454437298274459948102356133294298219532487014333107173281612381224056957401804874442191886096646894066840758878483897000438123234956982922246898374050434379309171456034253057577417918155755436633933163084572386658620991241018155543703309758762706280691643765327903056171919585296630867508057547209271835308008108765519984670329987779657769586758482585909973805895159227906552159703149298276785428937497968980997370699039801393321179836232527785776413143250043644256493859734294060284892521245113146355012995952193593935334792390373009656374276692968625024236614471455184785373965034229693795977777013016118642243494273294300526294511406036553140099602709015129568688177460746041225021019799484585089080299114024248717534875156437177990034567303178936534445778776554753842547523531217305327561638886755879431423900788189815449492765535657712598621104780438662598791520528123857544986039856543787117267477982154279766356421384155422960893185409636783400582713930829766963435041266629591367759410867264709000782843431462282963728680912137849455276593497639274166288363143270823007530387030779205968014608972350457035353441899675395683980515647377927133337086898642217842479325993188582296144569043900312998513710143757209938436338432024054503060329344085687848488712363852275170653484361444449162882295520781624856291004836843300177041469088093377482132298251715085239879325151318403439267093851232141114259107242720243421559219909899828485033944866200395810516749940318132002712257167855592189492026240952328168108077371106234519208404061173209894161234462413535496087462786977206145152788422548626739741375454354927002449008899362297341173476752036326727807921339463270904551480490381916074000013070040834345026738332090849508764770652862636461848642410583267962766911313914394048493812123409720541434652047386063537184300541987521987702355162687900131137426901794102204734434410072823712056656893093265300504980423837709708565215250611321822357607651034005425250602438790420973341674980638082065812664667444892239456581682705877374359746960940013448922053771289249094737421136231337095579675512231090871577690446667267065876440698763875750723857395925301394350299502862784446582544630217806493825184014960194717623004553168879138372222616418979058072557972043024925943616460123612302850914427935984250263946227228824955199969381371263476196903422146196041245713825172629998326868682337909615193552032003013094776703756513038386302921660902145782943438867548405871365842528855465373269865110146554613177032512867944666201540770746557246172855751331326462556486278993663819808298379474922883528470357874769724441975249836417169984224747680657457413902612065823102792121507958820031930504058259183332824734183475076076048566732063486037442051057526883386539104872099474797146236366277458481915866207956900970046087779684585066056661783185304638550830694990202703703863432470679349418364145601674616539565679463066377690215987558561415201494105535130733949959438182502521558440952410030283991540788272320877031734346274747226105034578727887017710668746506376346826462143460532706966046156004865702968297753602861002170913649543493781123884783633779545342982370223316540700822045233320488778463364583979459859413656086254618052448852741762798822761273663861187232258427920164160687127129329379969865798988166389775274994120826847142494899603363923155483504351485167852655842965624552598097417029345457169363120457567622408350562017635120085236581503986945559528444675241835426301511707629540130500407038970102985163792935070172052663421608759401856019617794275946508206965875822451428184381134693563522980177698552321979837651011405403871003389088772796777467941474772407918513947930027999458061211220862924915979968962425808414716309281594697655107042379498149508321424241439125632721556288891126830602682063528818706420888284562174073836495096397384346491128665949168644806957157266345272797543655206437645882956361762354557251412830546829017092272522893097574504103846849015276554448455175648263603647150137108355452608361043449238696309892635942345910926822560808137695990005869509900567869960420682315769953619725090124614286528539179583358356772757297815567871379239209128542011219089556244514444007519664217677320877355894852800641609020798526555888229295623345470318260937654384905603595336305613630937228414791806388986798336036441189355688299027139622683624825509212889071457195055381867786727261821947984906724198962351560408822913885719105353675359916638637495944088697983323586811174294370378725978697531501431605854360386002395845243193146867520918005068994523373324721493296364428487779433181636417028982800207968149469785701759495368464209496587503487582469085136409205188559506938118033861169355000339549619465526476763602357511761446692445194517958232356773089973691193208963387613562731452819250118891474872146952645837224239613286270438244046388552756540062033799588286499306616558587987464156950463445017862491302029477186528377922353846742813870082411331608701099624610017306297328582885172542646274910822749635477943168152550756613032574010167493592959295371488534431385591029141878905853649196031145495499345346372614475062888018706863698402728221602339902490357155821328141352275932947180947453284362514177762530252116255426235104567753357138874242294703243746729305377429880094919398569668305835012578079918148628745141251355467132548116608364812069830307328051841872985670338161480499104529232909722491565902814607526107629255441154208079375235754041177241131671362214425554803755976271041713274357874100874154795008541949557614608432886730159584636325253558922351695535505351689311838086677396002366075281766958905616793325067818914734979056064360233186966990357169088782327436471810635559377202390211014721122013263766819319432874609519471696705764450368224676538865973955977158833473673788377924430992933339114741042336566232800202665074020247808196883573624105407809224343446277808104493009199361910952177636655170799837127937474012582068356234558785406300381274879895528993622860626219700595598915790856079735636288401257955011231973091876950025636154969334357619439295473792749888298187613456872661877896618283852404119653311666191944952644386273878521613027771924586250365783757475377648681604125671018525458982593187026208684177181855248228849094948400669491658256243954710480428795653021228504410851303225950964412264109573871055388971379236315054321453890252964504405124703190519720006506668483001926152421649611686015996257634535322081546944027605171167940281218856074813896317611779077800572451138759198683312467675334642838799261270251157181748626239397230060746351769787879718162672714431714621127677826856364569775739063048544706936894247241786763697747249810618381210903959089562184417386130571115186422201420931859274193166632245142651560047825539141600399363470830534151267059438638891011390662858240780112716964851277300318750331034508973703636838484103398513923092447733646093736082082231976678011220418012744455924145778261213100223736858726576315286661267809362200321583973747970604804127175867853065080247305961671662005226638406217889780729552975986683749863300556898442833861367556776803828410625760196338038095882803479577739825587914990781443542353765829175519400925605941617947728561795943106361498112724000214431790598344795031448472391319717501756529022577582897803885996184234228085086689090443325922435165012244258245676765646383317857967362292350408425584246119055719924660281564190479818366208587824174213993114858627960276153638143773121215066480865081783091638670214554176941316814704829539127271023376005974767384345850390456171501191221325427194301795646654938840078292366360354335181630306869547313498445425200929921117159462973586035526716510865230182307913121543412059108263944281379685255477152544013926130037618142868660532602208790172142951430102794444096483520008739270594203113522254696806851836621661769916664367955890700286220395276780703426514796395259430506260861254470085555540052632149400336721392623306569460319837190037520037787486720634289189205480627873903380020268082836634938167477206397821204960083780702892381371746045022131130158213189447919960403695370692764157338078283640453120056694281263375708953535904000318365970961557666009029918867452428872966231591398926447141985741203914198444935245430615423244672787146535013192493330415100128731556293820681198765702666297437734748487856470482293333382290898046180730583150173584261203918807896902090684105477582320463405217873132841337292588074433906394157696724465079112495924447025699997048774682530226859707412347910395532477908477528562705503567350229560691843347579567781941960374513749949021421935502577551118863510813279435215196509156488953781208518794733025639866306256935832870684782218259818513463355060697416887850659583698429780687458539505386339700206752591204701068788175744352315834801314642757877294304198008887438073933438344821085309339356092769696517399549621562819787402809385523939826058163717703069658411757585523690672311505774749580292897885188119119182531398989336656165974728559590089326477958901463022419911114650625177219639574701009269224873553765983583570231709437327705878299612355612735646599139666508938338056359046867954203969125295372137356570832297982799042806469719630152143890535453901404190071147590588945771140248792329693982608947003168695724905430103656481796484093675270956236074678761686166704674640514790766830514424760333758121706607665085760258288814407127635502924828927002770524602832489639340709494690593695525480065472705475698289412797090400810673774443632816360119754182023183679559236298038780931057124746141049196239406833814307897979288130688818553749386052499136693402027775270082427295002513638602872629749323668148164791386249329513128615589610926796155831579428465416142204386553894003488334281296864909034681748145704339340316720221244776941650614583232589607340666980352730524300192905195522511782225429795255174797683605031383326738337518411171925410127988521779473917263229417938642276877211369375843341619162457331611734310702317630846083269685819895901116715903091898970069637444375346614394052119115896680019523717272536980816084278495178151355582300494538089167605064929453349261969019404544322461485649549688978487159159200697778860017019548890947430215713831529850210889881668555095765310592895951335039291134640037380836686087751914807806854396486575256566187731594755520738894675146361585336357404447259668647381482364248586178140085293610346338065021767046013431950329774360875202356970400428693728336113760559022049327535770783288003509345641218500578106041443077703310931672562425792528640079660123623328202633628030837421348484876290355661675370580896542072620752585141380376103685449440578576031799873533411494919088902936303610366019649601596820171098706287439538462489347649931305817168667906962873823531707804125037583360811697612831550450856360907190114544164899711199059595054805202913164802298551062803413666585720113124230429600304578479646493322910013755083450807562931413055857813975719904045861176731328954237217609347594288304077441993926996608436933959444954927477186639446088976273957038748750619715344169062590215218698601976274510650224719266871618031848643338521744353572752012061832963275825310747107708054784596363379055489391167797410322574390412676314271773099565340690476180969717768065387958582849780226633855873655677909893335261377016229908114894889263950543954189546586945826145985535924203783345492466791714443897600280002569107826113413983450246199493925760858222573430283213792896625977715362600669809588606069615106567117211428196391168078358538913805109538039291758415401987795400142219948786226675270916025012409621658720717138571106108795325540299872472552405608843073145997818355668585364003636434236165663483450712730267102877747803652243805551755414535933622135915024048686023168343659441432276317818557024433301769784574269879450484238645907159185136994930300918235152400070587652245800744138052997466673782782361855088065315032243532695479288358322236330938537516336330244566302174327626245018222818046056198718961829636467555058854398386173133132140941393821500537388899366486276389151543107235731018383988918192363433961050023523306023748312812751318191820290257569663747626381656765098982543417863110668967999187785832798392275726022108976389292992395348757670536748841946397817872527302236729555109853959323405744497166223079091861668785741676126827396266048170030045776649582443237901282951283998468040903362972460095404187466885282537945481961980835248760940288090392624149407839287386336732363509310041308851660926807652275842446667425386479692760300962796077551305939134924417175000224198900328695581339303783503375103463545161511293341908080285579300143535032530042516805869929364241557591684149388402322517178190291490525921290618416738594921388546308241796572650898121232913336871979912442693860787935108802607165620307462691520719443870117216658307842452908367645724532580955365471441539441210746328324846582317484749281597026091952993148206596449736384462840556029307780993547904966482046199783464710191507578969067670067294378532139935680194495267804909796893882833602402401186698083017981982144124666108820286654059731425435909865516833302638264785830552281118552852717267413845003653558403280704736817513296009159587913294417832433653045260157400965079531886101900691299665573035070530693601490703262449021837171885297248191506855069118122033574430268712970783424248422045686751937385568632855775394811128790771328686575656667001635326518438706568859950490811698342378237108116761288239453772895507187126192502491032742373981159291356458110157779164544050917884769531777176233468446732004806739064998810934866934096073585115590172612353252182783995627792745224263624708220454975419016295393143210387682422583806339263092117757210103593183717372947631752584965473810872152242363653469109158277034720741273312344919922301502252267293121453890591197877584244693226021577007430931864675284678256393447070232868765571985075276672883273751490036612036914491651210406838876166980086897145022786853770140350444419720313626634075393491300819137035433756855821784956644280936696361231238162201741104889936522411444455433789674048944480333919879316750927247408242812859922116878091549342866802374187482844777020336376616527619490464229514612867788930725026641255618281909720809657705585178125275513533539811462002137641572877888273604373570335870681765136620549465627779449151593070629044334721340744718501458419936484492483547683617860740939137188707902153910208213690807058950279873533004143141979699847112409224451109381634593541315812166506846931642759620665257727829004392046811559295214974585682590809060327444828597939218408789610861579726209369994465689069427086204535423389503393526658150193973409996162829390460653026568162828847244364108975775943708076208957712687383963874978202589371377775020770297732140351648955859191572726838391473011853474567546915414144307996471236172394977823545650329662996486880981375478830850173595756604949434854825036667212048543546847842130292719617235241975464260676237785164001135651248992142264938478879326180583061216183473998874048046900942753972717308841679614144882669416113502281520726392773006867185030604136660116442044787948386009284145486627728724143779702892427926309287022015257339719426905883059330896440603856322066691444435470983450863348805754835304375407224563057446930497453658020540095811597542753700954890299444033227902553086280754127902763100014741410071604712266251737084463380943220232645861305665150752391314092660050066716824548862555630253434721756794316697386361571955176816274570404683075537181000093504312664345723544939367845823510317274806597606896684302654829443410640386922893655523801226876205049810408189763823052810348749138726356635307916926075955094621851985760725855529218482387405710759173897093193040899290622977012900779859569954783809462677438985125884604333951860096259385155848791446026468120357835657710947292737103445213484001371216306919240036499056697522620968992602395230027690272110035537631087112472461611186096812650487380852723862215776033478865319382223800679250776225456132789169828765070750177291271117346925778038582912140604150398109196077409101441718230242845142969712573331325684242073828183025151941577564296232477507030479531394331187490385659260041974195276640570496383331839013080361445058972126165327319728458893476514329276482035496455624902717672173232564485345076094258039015807000671593236932605167517855889966251587440091489185826541781605595105666640375242345039287658166451028356879869652903337659264729911091690876370789540159724028256403253390558267236533677656644938714827311650084381229454482262460083944365272651115557350245556737566094340475809416365191831991950065652327055308648988594913122456824605513811412145975607348094950742833756108875351551990622879948217017214387754743592862461276498962839866912596433672340054236238631263412557945398329735587635431360369648381920696869174942966490577844600211880509959556888819557142141828070276468784819203405691243699601752015860604905507547165990018244473939637730610276875758756372714265238318938559275061184365746662929831098466771237679342750075994907147139611191051458579749253608873355656971730279948242970519966264805412755096523942226757206524705524207192052955684926500132064916062187768155803876799329369685795708642240842108649376972784248436809523842650465015114724873852400040834916811204153756955977206116496742293526628949026707602624821199182772880601631804970217024085690400383646345971639419721512611832571528181588387494444519991352463754448810494943357846104845394161464938330183136578725230994169044742477485849179612426337428009721125260746839664863218656484026906261055134378283868548067075959649762112644504741511593799472680074528627606856322703266982028915833701012336370523553894506615071654245063119243859755917343686166583715727943734187187881764397362741173789410776021847835021483197954691015173171601258931968009255933090617521248794598781486937429876137540368486852765259929996940219907536301718268899813557941047393979370143819079519614477659628266289604965219646496872762693800530876347238623904966290476638035782233564635800433914778153614694346067548295352998254551783291411386528933472063054927707229970685438652771610746224405535400002388209342519108701387649295392233729569601421274949365745689472456089874759100159266426223307210567285039680649179365793981749307332368617948903075985300188022698915951339009132156986729737854534813693261259084422272886780463793601517776102639574665730419806349690991095188944940964658094313800282391712992713124818186549603045496263195803848154320200508142554860448540364756340668965575342794810876380255505017651133978533657479836729179867424534918687734008037540567543248271860990444967967107671373000901464136685688694046976492186792173565893864114896928600732339632548044818141686597490326849213506581028402288543332756193318541343990177165968476783156893856203447350672070454346027178717337154755781386179116518447889919276876732515392204712140905206538151990006725301491564556068588610203314996269394935418873635669975552623362840513954936075444475608216903293686183465483946535772678847134674236436961652019351416644548536723750644358642030048588114770185847759310088526476805600583366325431663207052866492319621928687501799644699071935318224599334767259675828345440843253196861100860161814383185434856551726727523216170748819164232540144476731751026937849441667744335287895226868867890747811230765276591991254434561528942026369994649417895745461867183087655601845213589662712004460360452796781361359668684453213999703811715999931028871997520902054767918058356255007983933673543853054088303241846848953552936622523921963343044503550990244583530339449684827727829467360686627244458945891846228509652670598863960376714144423434406552009118776920899548530394889326518822126510385978380011266678033606291999404840833409720789422239616395225080232446261094994504288908126962204114201385376137655183890951997478468034943670706490822802838519683516325423485830713814343913916355175326292236953011200753402621917392057635847545977813251467289091544626795365214558093633764691916695692098791454100906792972761613667036515932660045723135799812208358625393334326814356465159068369163451586489520622820400678301402233579705390396605427987434027550311289003694407281509652344935005773382574799305622175685259804790449077294762194495554027536297098406782762853844017069575527081153478874817620261400172987156624156991397126597032480488936990456847310912337028146293416995661291918692195464759809850432538952319198239044241664686307916096608191334500548757310100349934988216882660848045314252583769587985640496144578828217598436678399049970122278160260973244578070033291100907148314060782183016961462958743935082635409779256338136863265350250776704668615006362317074743934441674027917186700747062256648066251941371440292589583600980905630228706902682910235611574237667704907345267693935593888108796012420954429645849369981414993130977999718560227260784593454884784021241152662922810519975123363669745810494047410305402607867394475500612336921312288232827233334135129755441743414843912276760392980494565447313370133255628566618918981716561321218233117639378317398023265325986875694149822903445792922017096994277624436837656878407500113010569569976551184685349947448640738624067438706194844653401370842582669397288231510097058471842648788747719518876289074216438840965128247542099477255776564608184617897240317760996218677426697417914554290604173720831267351667233695309525631549065554313773622855011035380375619092173367227024167982452054068500996158682505124146998930541156307333828724622955955281604258110267009786539092557420158364100778204818399485599408709056393352324476009080975197491101337687542109270953651977952757605837119790582087398049029111115238884092288054035341476375227565117855789024723871871563159978580193180568639234309245864265134948915402546099272377402872685647598466091066970048049592228030727583003123463941307983996425744451090941118278769427061953017750057011266665004188922160519340940899575513202104081568485473118179446070461549377297307523061750995269088803354565826257356580036136940504055646148941079705377408780116285024505289322226210178772030679109395569511663585402077933086335666890499744563029778352188039261874868613222767359279207053179346577886536905973679248358146426497007117142959486256663323369292518815169714458482994382340569690660320587727087357560461119026438654152088737014327308976618519724017595094890818825531984724262832020143801045802310312389373141398830572184605332903890283682145094567573324597566871180521374996846504321147024099582152480495352750191664806615707292100353674404559904598061154206970425904008990077876362973714301285320624821089743326906795998510062763457717171830378331174309771905496840954456814369295769929993910133880290573165183387168649646506958122871605067752945495585383419657349638590488929266243979414502780789073183598175228023462573412804586726544995075780460748534787247407474863903777297561943587166510229425265165506580718115511481860347344203968778807681654800406873660220353124410660194104326279958568686776715844658160211994109716851042406196481903993601362225693069509023350827511238177443594070872816499446916883914993690686449477454056416079479908163841978255273567468009050525390566927464228120160805120186647045155573940541808577532412308281736839667077312435667743471875901552560350562173657315412266926891187790748786354037582150353041740513854699082182871283216079923850227259240917293692963663742947652146285345252839798861368021344359078649100995689126813134827678698769251809398728154545727602197600133073511339717383300503550692837435675687265507930618673586504129607227679367419536969975489200355242801179924790533267255831376927808437843809150455246389050489258192374215120014529364248410716073349996534910767406468679685339609261768190963975683369355892828784539155562125013824641788944776206532139323543082981548607413378867253361347846573967610357908780774751387882643107045497231067116995264857058822607098095261461620269640909283795216737864751378576073162066555230054789770209816460044912476127459640408876143614937175229829131951615568586205661619621770373437621860382952362635858634411551922866571580034164911564890981384083338584323307731386589835078174789865297408237300312561982454390536536210466263776363496157392464072463709031691415048639402798722609637379761319297319280895188181416314248260164473115929043185208902475726335109692439443579464461053981858112521899298057348064742819323753820791588501613550651722776936562912383827131854986160520752376663647105840495844823876790826128673987037482479499204771823336317406183254302162975531259721778178556903853149185457113922464073713046500662842681909074330377001192964420715866887461391846699078986045723329556515134252384795389496580956634608590687786189151823606484537902084323820733839237843553906217073888017975648241410655164395038572425703946654733709959517835651715560437223567838729954081138792682688461323498487579227962548949423596692076918878920288658462302940192407268877817019820834467959740503491871924193265796059254336993441263901372524679978736379782939559405064684654038895425567283793276978233282172161504232310231638891059613199280414276296919652471898935354133543044742870171100352254514305236427422517949976753284788892188038076611590486801270269480432914939849723105732981015609699709010861278755079497713699135991553769933927019985200535172149617139407063824381692775344676254454386060866839463602496549012478860606896433396805278634872751863186086411146024551030606875464951064953448074485544449701596411410156632285313906775785036755611228870029696783457298310489944696674036746142581214665584626859985971837259778318791506978114150373004232041577207377885161119178100762570901110438075279036537074441786221832262299338827455801292835419217454926006927699712156147688554082774936655048854706003243822895972387982073076162153748956090809775010983018534741767570522684605295285755133217734278750592995569676276610912456417010160992927118132590840646708907773901054197751485384061287080212273402148431821459215810777911713638287743877642041817244984483682281325719975962402429253714259428564195900600612407105577128402937956655036564764133321680586474622527762315264929863646692134321581732689383097500109214786253115059317026415886917940614682264949846287103089614167622011751438633140629127639470810007056566168803397121740259400246525727025046598520086009100075474392757900808168240629217906227431928507676041222648577142986867249123704615723796391029723793283497587834459732969762458683778828913165890376102695041997274693507905596291107406800128462698373910601552209147845735667099599885406921375456839259067827121256221432632336269735729880773054724817892496887085200275117606894266963277057024552858605424336168025168578453639370699782511273657853897449219778498389619760757204304769225169921155677396934610235243920412542813920304567303387450078510317148542880223408730576168274223599583181461704183415587811027117451119751470527186137218814635252543171483809900939265253191456672135771592120603985791902232765369695259238809531289931681981565978355921288227028038953678606561771371429202425994925060942949671045328233014511530538163253835224888351724623670271638412046941014966583542781420893739657872078825991589487176703714236666678234915631327554187565966656230256711146955913970836894781109457313076176409605438699614319882078980504162202502599430420800449043868328581125456482294434997518431120256938709093154168801934875143350631180038270523491944704492098769308331846693344337177846783715788072237067660499109099558505128579938914186040278632855032451454940629720392479926017966685718650589014094464254112768406364542936934268036182925733298918911289333474197415470328414122207706189403700314274979305681172480590890218953184405070167970954395154388630335894237654459493471711144136444739787283148317429335905675408119691517000276499370821593564373512732524488856335168855912163378969959840086066150391554295988763593652167943866475815581574661260005801854474636691644988298597924408115312413670423280479294771767790480370172969922384472354106606522454053522583251760300013077104522858358129010957019675701941113323412715420594583962541104423275140564664582171049533778816893445221525471215448697523874643545809516883040818894758918966534425967908754679751599209276811806185676534271775691483656854820613982208169615413202968661231679791264546672678967556953689135973884808598718598690451121874816610641179974897160644701366522647318478982140721535443784697962243321646929671505571821611929671299243896040656771187800352214374291869216528287437315853221058463673881619601377754960139057664608080534352931878723333632123645331982175572044404020534019749553506905613185635243442111348802035513648690519100640797054129868424633209823063976505155383756072303345811012957267117235740888932782760816539179033795758388740073225469007320617549808665298810105714694184200192880792697366856695506567834911511423345545113080758504967673693201806993143918814782931549782956172025095447551701322609897949322529424209873491505824116401674947937641945313723370400253315458496283524430756167773327855677735695849413680646748156496534442124809306627231136520084486563050405642644816509794038356632373833910941205324411382074460449553019545886765894895451773222228483522760115726200414427849799544353117654088478782592376098791297234851141057071779492087511381607731410842672630457366503790319211396005778541397459503000938606559605233477735690331196608105735429833810248039968860922651396007463141708786123645465135817749047468571295738589489817803666621503477076401822884855192063455880699893759727442392151639294784989266999839675814777442135010644256667385050572049112001865868258946575795324954060968844533290217695750903286914746846014189113748834233831432535783346513684318051993178396687764167805928502639592327538183642127670807620021843870067969471365982472059966258351526421357858266142836490814511496761859550196942385296238664569460790136859180953396642915724429838104993138796181586323343374718739802375706344604159911351219883035864828758968031061910808558077556726641004378088832951506581005822658699187155937519297496307560933188026591210849140222325009074684269309479168492454816592645711099526007217696114139317716267907837704387364502590670718907164996669254817153906200911448020593088437336769030654410818478342898348157108586438600681711798751060829667409915444275282194836157345566625877616383582056452415390233161785516987583229960273068762972703429831737985314383763104202888094083758545640521055173317451326923482008891193877930963628675599764500411211894714672075314506307484716646974245809711375974112856486819693918945543169742120498057681447070217760041846715900670370509711791589580579941487064796619474662990839305365413623438072395603417699359393942973627626090552464706868103378541104747193644144955445680854932724753360824289793175658346261586709289391731303616316428072230488584993606325736316031186019706420876669628718947628256160730877623796750399430726658198756285536447214891718003184218419862479596392548223342283961077746067904007044111154775683152584823763029634382302893669334993578640527549962912962698277698340996826505138511692127751824193876349673967495971544380701119114288265924357240945663912012745306529165152433065079033106214384250189551128636893966665263987577678468409410579672540043117041090302987022429819853843915231874900945963486739788296280157840140572415056578063441741921305152850500969311264450636033920265127973223694265494897816240516357157705776376672491969420161666837304137406344252983991632316304352526332946730376903265039343297115668313412215046891147405303768163799607362373680382505882842190829033574019168398202038554312494173278750559617656376444902375476091424625541942824793560430362892620881481180870583041173664862788591583794769886767770569852958112176142558497313487840274002731579658407965753938256479102797260613688008622513024417284301434568327654745096005470683787114470380183970164251050655645742684233953319163650717132361972465282357163463068049579547070239504104784878791882092894354585318909697980093720468879396415338852920754719117969030878125429454759837832962635919991131602109891479022596912829140367510419394033571285700357276223764816692577132423173756495419950151223482642986023856194381354776840770609202454749839836528465356956770550890653427630991662758104750499383814721371340142676038885149725539836210435964214223734674965991931474997810720896571581506689103476124508935215910531709818511668559557000401006916771052364657544944978198902926543978987673776398030067957122683279407509595110977282834941315435133888926905051456539554917103449450603007531121881939146609162872320641967135047633880105000422885893301060778635133791299799414209044888319309256256960380696957184473645381896435397345715526334373672918944029708208686969008121187359680319971230175457097373780539496393814572548890838685141958486010649595780809097917810105836519274413682466952974517521112146423894263610873254924667181884162530986300605749004594923318804773801649610418241816455773350705408293573871736731289503026203454916031807121473934385838979143049475181202670980739338059738393624674954535046579106315013286066183224187046259665111054485508699119771369538260851401291502328106584186132139537946690471709228572022092790009631932037356918213716431617855432358786184043043337677622913838754749667060939871792559302745644028262772153688352828894507041998818339552194097672993232597183653558658970385164123065616021741460598641870029755904670313451781031768310378478439598272515636860594136549762539340382557012543432266228410511439996890978218682164463948947987167835394709298165827840336150531267308258728240907599063267395629777378146540878133310486727325619359393660579896016456364030218296198935579707025442101881261564865253514406580879945479545920927568716728339684335578528597473108911463875117093448493622751856781446645045120810107999939145413833794406254950971204120821458118558331527037996065408172925407475402658356400748230431028934800042406694438977677813369529432324993284643689187999949373146201694035059829517125383359965304962273097498295952997972695499938555041471043187778376783046774713926271134447050595251177308793954128590861588448645949784659471059834909436032189578495581261050046172618192022587238946217687269351433695920944004885532914261450550164217953272964430281010781497528389725970567049735260409938285192094510557803887480030990868266296825497102945210899131900678375510482901764977642999009284540168501723183253153401696412292490634862779427271420065775454400855211721239391178940841346843589696654739041929375900755304901667991383543500827803749068929762717548074641287021505945638883017485929648250662795097917687867520734792319500389741458516168409482523678982729478983965045675109648170645756897217908355414630614125157395121658544785857894491284867905141061770014540855336443129585826736970909500552806555167619912318339928367684716394530173233737138136898240502189590435835094279436869820925730733463821600243179249842455926004755476179472076686743051647458177661367717594716285835220730723823842407366134379271779289141851389255965703416852983326804215911252457064456878055553358326840193468662479117499043196101003714557201052389991166361167051943027848420097153396445258903561366081160931330110249501871651869275373685359046705899764839904575391055040587099738831523671398669578607485760322883895820757746647150729225779150855635042563805461316575522627282069555399110091776000051844161988325020316261683009412631762749124910320605458481064523548513898697556042474527970106927299532824262539822779961334214744709436811150770878819739046881080288576450264705262102537791404422606192676620404085502243488782562622128003056373732037221266971311704515084113178198748085409799070289415328932980843206479467109498465110855060029874934065881776028672520259196942579990340921914279897553750547851775512502175821131561456087385482774189830915998993797325241287491192429195763673980692486206525829102782556946727599882077259231697930332345161837969811392982566119412201170943479502019160319881860978643020662649057027024784913601391731885638989253878653780739808498383698114458276444804973828629160202483524511519075835592711522723801314264631990002349634773516561239121150845904281229928539980172504552669867529898325686725523546268454807122302129883181493993126816925921988615187692466182986734407912496921999562115392114069280849056668645755543468788042533157092168387701050543811167473707394947628581446443995577312768999370845818400826588331257121503497436248189092384299356547552847628122012709003718363565687693116928366196435190643614662384873662924825996012270995670386090196745312464576584674625543961611009120670975781938271792097542455115602466081281305328952465110106640089759970290139670748762521641708045992775134166927184382230183421599606439902591518162759577850084054520879161936313421779897171677139525185685364998307843818988409713728279159182055951292111675499879096001008300688250699572747625997820602941906605377996300164286781500620990712831368497866086711659056987268705233862462920919276391238263912982991009123093657463174307955825068422693511126273291868971063613739595700510970087184237432726161290873025096045390966137526133607519760746446021111410791427155918131489878949073941790153431118968338206570279140203588540321261579900983880126924832396617531471722264874649592750891924965523961791802713894346928564957317567652958537015551328087850267182790161497926619199598484542849012333669829818969511862765573165465392528700144959607324736385992122018081962578492233593596146300596146143849636929059609137518234373866395679849378732789156932875338590607551140844932811455576186811402180877068881619802889577839937392826279768320861922990119990642772603027380928588136699917048895045160816423413854233668347077381954928456050044655484949988995476047954773863110395158793168309858506877312877271020586449937147410418162336133623014754402695953399992455249009243929693065494682940498137236398386434560957230342967507108324956649567069220689378156220696454197171789845981019252425506293515823983470940743646220860783005613556152122377062232318245246781121797454574371745026250080384389565303058830300057914629511038769543377704410919546457049448736693097159496335815202032210355193721559518914894772930864485314110420744119492410333115951846015211609438082326323364823606643432718381521978457792785360561557149126987908835182311235286577237022852196019203487590181522374469459355551099695324363499541811197462846047689146363667890498859917176569878872328247124888567943477275819697423495188334994071403053613749119552684470653302653369069385458026552118566974513987307332855318040496650193268425552166090961924785449453378513438286809864363303056964502414195382967201234767124595050011698832228386916552995093367916855430110638967312016546667435146388020629588591140704145594726226409717290188470397909844854855163204586946284913737476997406796828183697120325275959215288644255750379878439790883406024658161668420495702749649217473974252041644262609952836101753231920872078793015994106370955771625792604156337549493004867666120806474081071037418274312970345385209702745904595786658105089239737950722867896958960127543978690754732020842942322709686355930716291629247850845613225158657778917793107973587324480425493167239141702001779800156934402658214552960978145401781245954174206161980333137690441252198432986642436353863485618700502580122844620964689701041526446208157627904895016976124341418528002756467935328796829380069232570069763042528944558514767850012501288043806330369325928348263060710534791379297004589934825513914721887843565965079458952892069823211799045049331178120482453639253542206463200043895733987708817380500983172809795070259876324943065705848034109599850803539244206969210831500826556157916554349097935745350316379331679648089493937996930614802238041759616600598895483934400283837101266680841296790161197454725107016398717937498657513339638675751382782413273584002768149409693141104619490991298109304546776950108204590235302362793863421126266160251235214216501199387000892437803514421540131682763647864410891091706733456295978579749650656228262133862414263000382603757942670846267458454491711409158012793399394000585125133128523185696089598149327871524274373982706867711635817228031521959009130910928952302975435732461372387932043279177990010619260120954554695122362644769400360683025709088090289865590215873822861901463874473918837862760023780058095853572616276238548212431387385074615837595078685613648205046623228857935719473289829837954214532160140025060968507912867250159707235380981929313854992990886625379435053454481438243561005462814317306670533348271741660522197688689425292402000652731214709762400228219361943499550113442011642950622024254678658981375528482087383434218769021312290691679107898554239442109537488489691183040382950020041213568841849309986443037596037574144266415781560685667695370016487008039996419259576864642308714664695106127783220452942825508001901196833935102361976452207822424527594115169234262436915346078161807679237158885709083572049042641511475453881194262703336021993123499001898795574826473284205884256523789268744575044211921303307356649506621792520090401768070008141671993951809682317476327710054046303732816279615355520837976202107261777693102553412336630411589137534194780803797494996175365542257275103004648437731696001439881022015942056015516630370682873685004092638205624879352200692442017686009148989189853048794338932393895982181045040698761897608683621872683025111941457300189572028081615598805934043069590406277221201229258826088510030698104170972797471506949720909126077130634399970739195179002257144339052453554774092297021656011911472422299716795583499789297852648948736772473526173190943450413495546651647306944422077568965096510995404079844444739098717305446229711804940047196081086495716271663938700651735490512627206010490734659008653227172658156351301510859269168334449082279185722410028817857858950486865294114282777548110772183784075108447826478908647671470670234671615257416744243224701332134975192080955757315752527471638429049788589833387607126097189793857814632174545958007194333782707235205446035892320721164652301529436681219122610485379442841285420205894662647113571399396513158219849575414952758870495844042256037892155014683045457915138704479528023430601933386013566369810343438012013426572363400018420196348290706350308656992974634172295426546596561990476777433506132534816927296232640204109202114231901723113455980661241094897069560908119382923219482362226215073714469414208629749417749382321964035579520450766850998615435793351639945725141554917603032220913506005065136246098469526122192867195329879619098690121948739157263462471951383157032018945655338724521690932113229850436167036801398775451114813695336955027968024531516456545629000294528683520762141217722270993556316991474751038087822197345308832369123045648146952117964067599621575813146900230277290519200392809875235376329799781576442379223740959402558769536325920206509934024342454736522389915031305241194633096572286082208221733555725880910778175546496359969886663268375701359739257227365153954127477117193373668167473043710314216484903873224865087321350452728889842833626162680427653319871720497954656304897120419797157782819354136311258430602066518267108686097416423350553634724368437740690890635449376357695766761309148614841426772715839233046759349949639651533767341490018153556373574872038347499637840277961277937478570593245649995884229958925220748993789133047063630022134253124919384357982586653424216826191080729398532796276983112386852799857507477137268527038703741123200537505879997624704366433967331321557040736074610969856659526474995955092239223900676159376479448291450862846402308274683706496360975099433541391689505729585469037146219452290746794212918189788686678394519254185143186817445804394859573899961745236209359245835880635696374875975342492363102694408368258900071147020845200918994044706955834161071883947314279481608303166011433799822215108985955165368969766263872808241896252618647705519304601773734234178439716532716019830075853455048770573174309758259087664591741471585864491175859913198765945712914131268977503328409538094282712293164179114054910597660206586450002117162107287939890569724510681947491641617460583469586511435986302486056151619540522918170901037769656242367006747649594731096605785742204440827545586716316478587504705290116496906384921493966855958807499652057241512067988973362832121305668462212139210450421432063158783027503313371526874709370128312196514188536636654282388280917589047812728744295312844403993808979259125338066266685787341915549933531390914531642028028123749854520859725844192711397810963522125549265388058686098735687490258186368626157670933149811773926015521421743154426485288639739658615838308064389845026984697467373598713031973245326474000950903557958425248332728436087419375856664725326464477203116045173101863179876730115282882828501319244697643029800117773406152266360148990743108175260723165064510825897505221872250730308522542156766277465511720607152260494079370762198335515136431277760617019467988996925910651830172124062309741842655862032512604623140023491893055024743624997533893304161098530601325323797206120181651350695032375951583454555229545552291588306046035534573492911270804218635573182593865252115054641218818920081518076033246489182282398228383128299530543814232198904911064977360816531955272433374590823292685138958474568008572738359819057089279837840863162222728782031390711662536344117391986903134580600258576377966942307378736083467224544971618435654844007693053328814266716075022906250032564933960625776334021878567917200116389576584550530134997091760890219669702019734373161187149496189663801686802150504526285881500690147338791477093548241279013785328812058990314203387829009554238102702727475984959957659456436520118295685412596252339794675519375735034349628314831665466777217848548770520702003266357881163993988795595196399952819338502658429881830789638309667771698165672298151201359108479178937116670207954242782143959470030709582426487284379152364364206426444490731738203828746887872337962715683124685622620064362256172762939380170962262726108780369050764817510518102576189281211772605813053282265624519896582964847708902714821545629402935727362860681132460373685934487920440796228551677837578237668008367651788594657288374687804456017712017061526298894880767146279204765620629690251998201794115883346042900755528581583059848968232604583012735059698346885462247336607771672167186052562086954812505552436105074213887327843926497389536449853730159644164802239951969226207983132115467035280651031094703312433651162698977994594065100302920282355954779792118981852572424054287857987260217816421214999784012887444612993415923218164555891793920865192187743177352199034363720650986576555943378416842494614505655047318344403219716787426088912780972423696230567864190221725051109245039914612553496720741243064381698312314053294940497516842185144004871803540619911020927064588216898189386690538486885483743594362234666873084031532191189091295944353815170620836680475366023975193858399734051509552041022101227310009400204622320348478291368418211800279177126382020905010596255290593079014425259822727787386823799124077442818271767577550213956943780746036111159369564089754440101317040796646977491411742154525833317783917491788278826261715065079743675662634160642353800845980403433072894818859709308790888770289381230718325188869860458680556180560689599035094874115374033919337238825941934658817412025906640811067345341979524471005169891652539626842951101378622661892138819434229400491053734816528089595532549871686794595372966647282615136043840617692327311586567196843317108277875630864271093924557946201349219556949751393574618002956249714119796205279992412973861998110074438893003833729768462585700091274512049134981500749586867446748561885665112915894387284581987030382452209212945499921884771048987013173820814416862030301242205212169717249849100307486393275692802518437626503121543244935076307473890963148440653292551588958119847591795535241939019984180896718084011401297063230237815002705828363051232149256570815062162180436175192053874827868193013384707074446762611794172372775235068734227135416225926351702536737698030079624116488116987250044673315051187950684363187693868816279295073105161019355711916491453867669238548734267204438722577265025978586374984673877068278424756832187482599599910857188887331253383390896882345252424686869921664782226772853738242676694525800191824965596432347123997377339725521671215969936703542702689721778646961483468092941089503666893349923394698184032226137143097636950562280963330384009462396726776090218954825354823717469738737646686061193624384276309303526598505846511817112937939176262577377159013228756925080492519931941351080108207872479047714365260303782692954160320599675991849010103908916086571569117780138670301747242688080021012338677815254567556390876489843402744037263700418469339149394681067296962916010020905423304574184978515966042240430150283897989924491559921185201525228278442576021426386466375184951715710774174480487674571838939952812736041899142228177413442484939366644590207093148235330642763145314452842735298062685200811575475152094119472856372704448488590678914751644898435172167149133630387357359909761773442024642197379962652641677254327939854109342574915276213960122297414168658367457939091636465796223524193349851789450303694094906377996116473832235858088297075779879240288563820768466963521889340426044777077740865226090595892627009068890678827188413687091680539950582084088634180763592020165991440392433509083205931162179885251578390298149454486200853935519405098141138369626716184024193345674730740950035790438825461515309607045697006944764058229643593505827848720047165533788313275689930286681700323641700685766106744588624426506140196748434363777371007552671012592484386512829694310222361408700041538541922934035832285969100712319557791136479913561624960841298085427332149422886257443690555240930396860231309087303345013463383630198172240563233695509541802454996378597182944486999046159551576271312617304583904086524460141405071075728166984429218218085978508660405283008613440658688626373879226225205840606361126791204351812573704282657267131729936455709167601294493719550112853375252973143166489229429399164284027725808336275762002963895392516301274508884622792398933132058078073642266267409561291542889721626949947893658359551587323758876362762992624049200282447088958377936348924475861113195846109864887975467784058371112258855689151949686995901241543690915531907287537170707205359851744065243528958521642376052575740253298962493315029571222239498716097919574531464828841161681893899743805036041441452259085031608015375372972294195837794447058081375195195960312831429024973795925889738105964519607806846612207099047922616760524120542100000412673568051897459619476248293021759049254613963788787335096619415428861577675302278697037420495833051380536675354997414947377454893177963103503375893663903148179383245853280855659995250532811922138402206148241351327952711091545543701155195688467962622788820396965420018120506639408021528532385328571357094735334423448746922931016793262979792761790239975476889028282334857267274829431434497529234334600455208375780599330607583838787965093240668918380673381686914170689120392101186301084777369705356559267687434713696585038261051479416547154594558099977568437918406976889188041539958901584895578547576770619965742784044611191624156617392083014202793322015401961716553701622132529648724327910484739622637095065446568513273553803440465131924723736505597596792018850875933057201705424950279920078725845967391526537996974502267219426450150033536264720631169239665828970523731587401835163840920207542067678061084342898039931919738439615618742266163241642158476626317776959714175441307758887924099596392645678139820352521310115681471416008074872670256255544310935229494049272419248969082159242566292770775072276438479426191883776343215569163805646994987240018366159451111632506149081238575461070394240637220659594862331673641255220419823148309742295811599189314526968098321268010866721910035379117968840817620873515476654783769944220674006098681377820795468065812233136096338568694207216302270763630677831617217281044056713724620179398610583125692086491174905037343925756875855230727033559435807829159891705722019803650920453786128511860977682903814646476479055308189919631930346562846998225903478465390111252992938200376526405329717653846669165544768586106786708609714103935655447763707184733513141639190041368436986845139134111515392237903849968408376914452652369884833637957775427897964719531586166917808194719566127696567077564163928871041371055878223368080936101741540496381206413240227822007666167033344749199710235138913957066063750494425944137318670871642931922736910558156553961597446140785058982714889671696737810410506373662931884232211910661621422587681627737076334966689233607562131354528045323345838853398499381378978293535141079451509531236142171872361474330251361230363448021725496257443389180893451614461057359372899438826119447265079141635169072478012239649039149839597791601784828707180084243893670144344929773327925781056589071732824948434292345853912421830669236374408944681663767469067554589375470900156276556064995352258522862115115424277067078539044212823524956638021337136260644215339418089655465467169824808702945449007409841194687201469371300989661331003320643947904547079963780658821987528560325562601420826731304441749006999231242504067959256728753428124559460539628367900061473792169591482755516407996138073925926983800498405151349696653021960578649067618229614473266632042697416303384093825021590308667148642045984615480463097171483078628072072136493319751492365761991312266251361831562451139698387437849102381043218397596100508047357662492417668509247995306760193188762348478185649150604292244562730319667314998121641591731015134869755984430444362850410977224970982085313640610661347595789251765003849050509244675996661755318923525813743171274728702190377147735133111412666859130260739479705381261957236623201127417712495158974995772731480789831630507812214950862111485744502684122411109273166006647672430918089715388318366980655989684115648640711194892695069736465120859788362289720239221433886979940088732816299202134897098273409070740263468831085156602460405907975153233414282545905394828708770790916946842166184869528790863148982512906291527084832969390057280803623862148253243997796412132619853551922247717284362511795081177085329932089736151066565525590959069688634668246008017300681047347759974348177580963598733138124820364944129939584703477393669200203860639034398291526607757926903560907206086895235699746669448878720759438685799048555785149255196275641987822959824553675733390705926681373494613626629542711786339984004145691809844842821791973392094340373094650145734265678442205239248725683832142037454098056332944174187456363517593494371569832458190963433121507032462643095351094152229426954739594833774760177588674066390072070550608087609409052605183099272321328952136673939206907402118988614653422636675023009682792544409936780595803748766396313741850544173490196286532642224309853355972479175451937857820547506922763864419291012688105026403134866532176611524878223486437127336547873219911688121978815309901890610858887779329484839532013709746595802940503298739345124171151480390890746643153324149635467394724604491280553930816667154197551130668032213016280502670449452508797976128996584871784440284960014483912513849286716828360258135101875234747042670837034262395469847231746611727760757493930525702040220634016539010356192715122871296064565396702308705908055412005096580705362442461944690636883067664350684602680993471833931379164234897878237463760306309059900768642549175022553975764998087462949552621813813157147793236175508026576269862292738906011164031754092024899246370652141426568313662478780289989421718781827214558736249148770191409629954288814924331755153406422756642921341571448164637532573151054414129317307463536814927340080124456220321028579080165521163384000201463270903675667752780570883045320296683426172747239692328116887901084008396216737451827446029960508998498739814198569295741582131922229356019574452308003836741942365945516973265703756152072610960377282033162309506164372319760762918915845698703148579330936228373000375354355922103709371855421082480148164529248844757835244908609414832811838987065489414057068007040163942437176361891184101659496140307070835231923509961465613747511801182725440451449075689810577815387369845424635106118786188611028799921116187765945602758195428122733523071108862414246305632108027980571803675769587925990825785775970798771329984303883605886104484910090793873613135170865141114898255276727972085494761062140592410181692420514492502740127748859076260680398529241270811178873994789954914256172777872361488436722824553391290663261297102170991418343356220556095887485473009083733695026203511700316811842230759788640986574688834955200849667106567311684146511958051301293446227028520190253831047962430260222887545969601993024700862322271804539877276551334718320097958692340223048435188673321134610939640683097137598817266061825844087201055533654340579649333690384119631169898089102856594515175740739654533599973325393843181394445161975735011724897047916548142507913302353310269220960595918194606140791618327971206617191189827711298024332485143606821541794268293722665139828498683953073809282898621163290187424144993039192425887023723347402319457398560663169864703572635902458611783399421706603763040862433639989631887966348298135762762926732567173173010504352270201442775985657141296578454742205218288175703303785100698362669383195093224855761205552746458439968742901085345364420065741127786981060803146316414216050871149440584566400283946179588605835568257442943084423126043239909283322192810410242011358878339077889788106566074720023434967629105977341980717996395548965132379292737002774910103102691998902960973538826848052395571562704095799588723758116324135586119297949427588217186984048475326304965653956728061698714116780421455235352148748070563915017503302027107318058544186322535481082014816477611436752104652172541321639244144773242104555007680393136520775485305689347172604125847806816598498139486161491828711428189008188593639428815923050836995848702889777252549218013951544851291818766304160663140517578823738964829412239542735181689510192468167438610822882148856329906618024278176910214535455030039780317794985887012433578709989566313808112037009682138294680586559339841969829437253375390833057313969977281918871464309402565431934290549371534144860633071759658017677741523295650201037978303257865934139600160058596581277058402958284459388905910031349129461991969770278531669771342178606526658238684514196120236401641511643150778731474120238289977888998946491558484955043199553863775684118868169443956656483059481440042047585695790317604902478064955392996811235341056996143680685096969828024126364954012435637885762892590319803588841567407607789934347442830367652221439631358950487733357583224154459786861500285283998107843310335744414141252809738801385514619317587764542564079628288656474008642801659618267673363029503506117323888679145031805427289895461235968679227657829683390188596391155799011456260929916813019643834196000304305556933302413699555309813109349954363229978033061138310998632300998919838996024062564835939234142830121956470190114883866716856222534297601666314347410623575915910749545649506328984774956642469983485082762923508533561686189026204484534662645510799288122945398438263076443813709278300879136925522219677736391140045957972332105746321605026702631660717526159340580075541361039563024183538536770468771737739657738549312198971089080470427435593508379320932483305700565909700099799960704671244123601316772704397659865210205145426360929978013247194916359063154008564274128866742607485247220492759321178761437983915590588408010810547159645060521653070871295928754161660362782640404707621470990719924551928978424465920706404149842869967685702236738021780087169274959683203516579663237388858892587260135907969974309678311642732321241556524814865847990871221152097699100233039411619258279344270594083290851834526057064456029911914682614260034274255889537567099490351208215179322690729010797319767291207077882956771889476757824186265182912399989080493708084992197093016705212771885369711301301223771336884373078634388577954356578476811319472293263410374134689014269278935903210107103044325755018957551192554138572141526134492522032668085515334848048675524268881994950149982556231024430130587864014960343419413747901055035801966096550169922100420084989400836784247544837621955930634469308162763567078112788044988558823664048706060906264572487093695983101900202530585553934506594330332630396144210058275947789943823538202599359126390666661308661927981243517647693971611425620637724947266942214033414625625032763239977283329446514908422528634733846384708895083441938665835434198680157593419740957143186029902142254979719014423129783988144328110121006109359565707425651722080967883337385239135737754334455249154952309341780484822690992911491329098598714470027676491222193123668541858486331833487172232497246878819568055753337048115648432503278383936885740393040257119519909111923770625783228621546573257656009816023593674125250049586478467524941459027991887953859525393985913529662179970331880044700888346744880662351698508151534985775041254364127645513917057062968582629599556912392922181622270630110577611944450200827156755121118701634162711768162006931574421825868983623422793705136061558720478012924863043622142222763407293727555069555565560919993638501409148346265126382296911044129117218002682677134204884487544048132610544087640928630906629076299022065681734147274557716160198808758969831018043696721237878392110951949961924740063389944263537814019966651776322628132470481696356870189055492609850841175694483458738994896039794170662390348852419126383052525853248641731431504127677599098442599163336469711592068616268715640872082718229809262104080870784362017543975825710604224070259009737334187820452550797141208408952080489166233010289191727210168055533674869156483595899518392190204646619765180557985130483535586746798330135051351662518973364469831100085870014147974716395057330695285413737411687308933555751932607063166303894168386277654032631259456801580017266740731343953793925255275269088321421670728178491784966389059957192233838824944075432035699328838135751389416534938871319887067143444947828524152558213588555059405787624231958048335426920539579220994265598156745350387287471537024328421057949410846053987710151509127881972371604342280895993337851875281768296605688201834010068109614386785111747100030797308448552093773757353419697057502973684686154821190675697766076668693612113071133598789377001924305400820124869939742915913357613707100083119773895781066837692498412829107977834588066779250281983912405739402315140832130534988187927814450334025370084237365689080544533732071755992282787239791897119635439283642340558869229874025589033948290698195565546784366123799753232285310782660374212702199554114883645391532186108692018636917806446939759154519737563330935567727346188675350429750202866897958566542661738565210027286562281002478028704685265194819174279945844879933484257881648261603850565200578519786848218434670673735784473705603009686472683615340086164702153306509525525355710911080559725625455191615893165500041030379555082154798252941417698931595690351570996013098315156245563854901295384948148680698261057302906550307729868930967176112774614840578166835812917107539308495420777747752804164089055737785871333298761915656497742920099779460003168059618808748475663422733870093440430817459101885554871477509088936425321796898459876037257156572390636350906214896440520537623114659433882243121556836953864142075475291104298668530855152964206563827590033120221470125519106270693123314971193926395225773912613548831464672741611987835478961502241357009143797088066717041515332607717045573781408927012322429117172177897730959097555036125643095495403278783133067469309192768886233838109534668378133099594576964066413842502804820368228545744177348809075794964705163964006008605015060882304277231472218932480014798851614146227491261482810551925355236596042068006612154248496679345370498098158076161888190375940434164716130851269908550971799757766749102617922083375323289297394732825180289902424811018957220609500569247368753645555212779580455378290671037270004818350471037114683968702989671813751490003527381737942707326727626689608746347064653230791446702969035890809474194250983562069505525387505935197389439402411457474111609355791919892104392904470648213384485439920721787445850555546417620662817038132408493888776118172757104406700821577518645983306948971016851199080641816758474542834840544657166240997843515481466867502239221138297948085014851511083940714801313163926590642476360115537359948238217591618726068959675711400738172634231555259092748254761348526323804145889745128355985549866851360902842197027769440718131709789003503321651177497488976984421726525943027833989657896283283633270662411027888393975765617314575391579455595758117736476027882139595419785533219056081565511034184632394453844041850951984978446677431814269937259922838777712728046470219900275130587468473178380216475160840659189667656490226127988250874112004239750228179708968992143860362310241653885658453568511107411043755632463371487107966612716883374505832003363809720427812689338717554099792820596105738258231259330879384963130669268010303188261703871920810277178693416333388909986096926273552077803934440586194032329565433756668820613556472737869557790297283948945936588309301767993185351397232462220511466448589584764705667709296133163170278200988910206814513794280286088917365453454612755294912229201362594423011657019190385516593570299029333260488559325422398354511024151922332132486602963013805926747336562745536462697474745612788183446476608107452134734947919953451934370530492049579723313741677317137547982426431376526576220436398733963112461590361649088648191203221460385847797942274593275452860266958125943302622788432971486293923269986224193274606479979566654573786930431779340003441469891896942972936013202195855754693550527729309172734561262668764263766065221161096287391463190335412675233793000997978232608231781422828416237474872981087407353293780144227527258211068512684487770894254416429927222381643995467327425855624584157279980977135113454122584892203409881597326180864856296032894381649482429725924170820967314166542930296975523529152401534121068033470660552015471917018683959745203845683148949115102026915851585652109953602570441256985926131475716746569637616027595975765547919837551787215343248968955062074591683923247678725249085074418728573322852327160765403641791773407869522535134741225616347273431262566158626713870951395453387925739351919894496599146195254964116048368142099548931793045014411551563563224433290959346688198429466990280817246893161082064648053834887607132757795804638517735879245171802112165893038511591555963110582247740960336915002956923927763008653656984085650015367799206797273975152399981596398559813933199227131993368666875446517069938835381750231395997805655438660342062637774305857313266722119940722760192885716313847904508788448991690314222976135196937499082741573564742439685094622334734310694893882427795287222509591429357030902902858881362014570841041357624080538156969768741380780286956487853442051971724164801415597624283521107095956981311114131924954189077057865628927618648327862702821106460675990441395773272897695293675590017145779913163194413892977780814350383397298697183199320784331855683802664944871432946484006511226163580012511405436931210525579625185097903882517021945882148959396613937625990188557476060718253886685040099047638711625920573708628446776748691120916981942391914808927757268987726582335118688338467210880993755454371197356356086511722699598605846210648521374674593800128820921737979735774145976143972511854683476508151448900368425725599472694878203531444490593267490341082324693770401726831056791764406910355484186034209206237159397038485966689196970577948196112018950946740071687242368173202796720828652355308854862078595315236727871754135800830987918395414117725806188962280791842769373559164991923953932581833118230715837304785467918549177272090866063155058672830513774673464562946565559701127572917381598545873180126781512428908592611478858664817703670673573381889700716908458793521406706038932608339406539203990446631596661288012428211991533725677914338956757044433567701383351021790352762729959321473266845462148426255398329820524228843162735287123286829689434629365690279089652355118120527727311806266367956811549461391850938187248439848301998889136462435984156673463253304859023530407265077412713378908769518232634725214044897293844029074712935244589756566426138382454832370266662926501439619723582083988574747227669916195503551732530313073500254204294928944469336885898241650239779831463882630998731484620534249048508175888047255767955219472701123743053299400333642585087059304972494407669269574218646535381450117807660010300813986832779091441990550692303219275634788461271291628371446650033723655213235349617068851700834408001074281219274154253403231201122375776286518200823840447405969598518309193385988219113105286194494210733202909019255482558267259183055592666520140275111326010639145614491444179070902540569636163295968166732769029808303150964996189332863802347492765590587300422397231504268124035700452172527976563161024167237314958286254163065788232834718778782120010722426364458332701095593478320630345875283477999429734840155054841951383504788590316615858795111139689789708380834655806536760019277561848646633013622853483807942050080382061951015749597010963649413179298475709818320969347630141767733830860764582773497254684624320691513304075814135755441387842795501410397231003807345447062041853866212256898910360932233605132627669987910710437704736647518852634041133438565482000079427053748203747632790937954139049128352460151659590633446083244586432591671080462076914669382713855150772929790212424446593641906650948872928527489118411052873450335681905335508521033628223886509593213355435026223330305436540256861218273774414972314516269262817401208278958502922430897062612343109365928286727581862186370959856367480315739336502538503421757094785317881640275781164846378969129879320220028251942380426012893881972996953834823269684525008517654781944448187310191448250768701968773618595739647608369410031296495217394351710385633914130362681880093417201304692121049673600386490369727327254917887901617445005198579548737869890598573849652543948768401775269843939585063035850721216150638739352567398804319226647917273947917339679566857374398755695072102340242639450529836287944208236155113050245888906944791694102499366997815891612733175888013548484028653119990281760442346206725096426384652052727175764177386915636489942379017205373631512765395777809647615902981520581016245966069422385941100268636695543935859143514098178170590687303028917624309028603621366081689554039361668007539820738095411059698961984079518995760376988804414218945259053166619933960831584718452965456428279836686073197473798925817649378401808773114960263657513912398447939143408801769003428422569660367479196629336775406500076873812351346518106792456693990876928508365070423473530847584808922325656056263203037821455334231547560934223748468802748783103423797518067294877455572681078820438264296076527975433423393139022961316221238288377611072434728640732474204543847859663199235729736431626991116506765674371819153585711494571965140303669720870516387734168446634919874181484697936394946154365334197110290167604104510789535903386742113780453655884267448187207839065284257935027468027432007071206816089928494515217660769800254508326215309958260038952083421678321413709454034092426104986354331045240854514052361705117261779966065597125464526071482793892673515944041624212650454614680843841148652010757706689862962713403445910552711794372165208437001905825731086158366630046810392952561009375443605284690075864890162496297313520655375167209400118062051081927939092842339075275831482864695191805874267106349704611056674380109833345822645283625863201360411909749787672240709123236499418492758508137398156993210243204145916798698890475907582119161989530509711679047973318518727075885046864800603497277629407134281175056775257870564347290574144764805062531008921329388441850810164054950342199137535527537818618862433006979874384240956157298737740495787287271735800591762586082946809273451570431146690284120796921138623740956139635227418308484295081343862850164283383294647106287168653781484956927070872557979493159942987598982716837820120264943194914766075728927640931762722957193757973395149760398243846664602385453671285173868970268839029720332719145874819428719521813384117376566350061634786107861041103689169188004842815187245391867754607401245923079841930375124063926637296628083083474483410854161872660223936549496204446309382706517717225709369733652654010662692877946807347212914795985038048234359180850177848465441223277619997263535754430386783294921039445746659808937354410748642886912879089328373029852247257575815269486177593319957092749445093168370758905275899208382513305584957179720710660528775880642434332817766697882941546261251936410231895742877746699898563857333271967573738401442352523373474760876469264122820705292311903320477211243154325902747592677904876783095005721448333542872410409418794006245843451568244809890209462826803236559302135271776360607292539776247393200732077557786036535846637763000032866123784259912020626230891708056803458345017136367872823461929185085561638799400319237048381651078948151192393966899170002443113379045107995539586142896407776376910709358559545471734871451579640556416731038241827352674932947298497263309761485325681400437742763748200108135078758475630538570784205271042756750232165541110172654884932279448789519608053680048532406977789779880630574812593313206447423683170565169401803797105509884143995171719994617106140544362929806177505945081268753962830607555800026455351735392509877793888585248587215654283071682902102606476543176742834039326193899104858933644439797874796096183935007431362288731351957934726867965974496774905059093407481695784544646465571215446307909391841348069098249505647386319511486505760992971073871206481241615516773203289777033202780843442398168189760485664829864793499654833518703480756285821250922429306252959216491905531051407740971926401820413266259541622579317177172068564758580536135414824146831575688938447261005121108756083543934313365067246968762292029216507087710922896426622567356654956370277059550481231361579275237196689764837290415153483944846109533318264830591860355382153043169098785038769266862256717385246614386397737500455222671679002948152474432505621985697978147716807307821750208563750164342020612972401235136843113616058284560611701789539574626117403864309895088669284152599224812944188902782428860124764057295979254284471489378204320307955529809041764702958160887771988420872444204890330493595513781367486249379483223601910815129441744125998856625897525820768717826842994643894450310528494639168698924715703216129763511696468989051598108221021070179622425831619045842036388422309078367358233704068773616938271162678058458847908518424167987932710238281272012910659089912298000181882440934916647556031901541649328920003373808244201702696675448957042086926868586094105098606654164043622734732615955095668307388280495186442671685235430158705448027230223717794339712952655209595424106806215498762057955642729952662271116798608775463334042882953137337160371407995736658902360942609662444589634135703485151462905829344611805288625614988540064928140741714176121555352443883422932194623385948420105793383782881404917154704355207494594413347623205107506274141480951235526561519581985500918379546129070653642594054843276673110193634820971155388382652929639933454095668002363145578597863000676829900554608260662941709174462395691038632332371234065424245992553987702219134843630149787046082770972965897349164197346176577884320650133187380543081741735235060336956853107321934505947272301072257478980704538986245278313657372605634230864962294311808702899845425997498511894185892767079063645215542419446403612273182201482103415596069918047683577241514130697329047974250241146192734799096989688160764408916708793258666572519435441893631337315094014952412393933497090556319074756072001232654517879931889360566036029589218924253660967832392712156780825107708183627628237450140726181909866750886409316573616429727631643674265812802228994198584310312232961123278946983012075719943949043939636787612528258572002880501379277532230828649601955006312845451196088367805407538608388052925579354367235054356818542617281927468714564239244292895721148171075466825383929752271581676823098535530217787697244918637532437095780722455023071701554458707246916084845877417352807825095291345013684343127046317400359849947765187420150815686029567760448763026613550566244882582206095188837186038692142417508017339150293620996544682757998973263136872166928634800588114797827615021952446349136373148046969074591840745326317342075446238568656167883754325486289181159992792061130171307216472190924066370255150864557124526257291144015834254846050787635883613759807385012805510340558726731646469739269642190237637757522218477656483329706845117192710110257625601607470611262924997917409410439539043466515827406157865028570808698363378903097900078632509219392969555690660943501253324389262547871172261184822480494585125013881364304431002525282421563641499120706845491556613342618579758456684055901175663126181228733000570123368879643898862952734782987699034561345474593424285368636650739826538776777445653988690247033269462895253040966357033780019733547653658308926512659181577168345717374564024391447942021142339203853673496289254443779316853714254535386173837732757713387232360571147133819956413403577399695684000273223946324535934421430529642849469616243744457599876208115685987730663370803441717881708277807019691801393578186892242984016917982837438820591721080289538441848161553489272724155254497032527051517191708756151235810492145497432084404334193988611624525426606439846784505524387471046038738469021595387292340997974880891626383432347342023674974109647456690132296191172000745815153583594129678354165367498595697212872104617548928162896152432593987571969245784422266024787449809477638356420078577210772451775917883390837225650334220296503245384982774667252759554573621760161489237202752732516099590176247560129206764384037473857615976744850815932677302810784207982589631717098163068891792955349958111194677193362143625871934336727190304583129777981070993820095315512326088988379654058419436771484265792980348549072341995875878451161193724587129746652200686853528401329221598840237781316390627903019306502307958421830765709310069145438390216541478034830371410704792046149908816858040453680012273595009836719710179068005673068552232841360639245812874719821924573519031568717856888526092370301645385117305744028825050181640992237802533252385590618724129767379556706909974944241884608562821823258067678811743944114767662620487851763686472816135637576602297770484752234757274850729400909851627194375623159599853276550313191069632552789476954807475040990218835278872794090051104713088117196179712227047564032458909747994779952438811123683125228719605125801633725037108576601205746945832792591805535073329188206982944477700965304747442734749881962312881805627271589843803781242823804094037448316180539410603269370759320647418917840347204917602234157619897184990917700026074790315472126433367010547868163825205673032241743380346492664328693647358475618451633976381320241546959357887975154418763273764664467666268662993847121760389249056203316737596699377100746617952192496835642142452678944030903978796442976428228781913143774403832724181472216363331347310810233711362595079282052827593459047023573903276950337426679132894230522817612434429571271897017919743860460390631775535771986385856110514500434545293763171714611678879793462428954569779204400802525985254029959120399876208329796239975690690212082244728819084164462352748378369971937473082701935689359368994727993426615892705831294892964427482791868923612762074005708330375795816865021357583980359563971841990722437323432075523459128288506205874284398612633700333226840477152484096416727484647771138433000879254937608458964692911154220307751064093642539105349455946185965359022896069164097558457995960800174244654876120753007388872609646348829967390764095631487766321114540190041317791191172369378196230500288825202937078604099142224096568948185523391948711540886156399353898035668574392388553051809567778210572734434958411033354221400296229318322786306413607823165282509058475089992846568250339381330819583088714884690670319939955417299150827769762471393008267712938880137371247223866378470302320702301665364961549877571059310282760290426216618547796268185406912269383336922328287093855804233844334737948923193096560781831352978325767018298763974451455279089563286697163683219158057199438151270212356039831428300823702978725811972304555388573887378644204020033002841340983187618633956631056263683971853311137345325476570596461961754500161753430975539250729835612188930387776743258666472819979204313358453645222306610896567581945378967653485565270152867107537208985921392718686592594517121962917730780846932533476824157386359960665657396911265953303459015246955466095090394570961797603586008371274650376410593093300088394265072228279213291032947719408019387148584047241490917084523644059473190388400643342845299959358680473951479725422042539436059898695462731320469026104598379990492948521653106343526304384075739879851633692991829614414233228201102736978787394657702222996735799446714893422706429813571113833544551118381399978137852816941368708097607430321581892930843917924294565947755011308668554488399697030530493011214620724047658625155122004962680735781814860468397607065160153383737825601939849194586819939053000639919671263138190632028443427004616770404741220123089839172658221034714301656726696177486026422149334387787672281938534739339116588058315072282666775731078584816115582726419928324514716906942557786847026493650801188526494935712701106554784420133680285916354288396063636856814429237843418543533601152208161871342313098514290354928219236619482131649814564849912915392141556242345561299813717443203304275525833210897163973395410066719255971425872741375656693400278801240439345373571826092673699914004315520437351224500296728757200406922009111794198783986799295051465248300888201939834827391912763163426210300657769006584202573217967996512986696138918318565209953567741278504924452384073312713363354540613268165023030116366701540581141641724476957654363975817482554034181639476845507078032431404325870241996703263649881839669502813375991053643432885565039270291686428445203348909813860116924293183838406413908323589751027285530201207869131748445183921986453002839989045481062204397355434979829368918623732929766933420113579512472084785356568042496723398519019829156664599713594284064274340589364162371639095369372684013062076663336609887705211803363879270885670182076009703641067854935993935363787501424394601424439105510014973784937737767642873771965986802678402603843610252748107294637386375560405846009444184824212690449186803140756949989684610605001788478459663802374837312110288341563182568594799859983735612462175078575063690711717209100909760668920696810663378528564602685964436020191557560110560399376845934379174109719940407531673880131302884854433088030687849851563063835484654491844428332007284460061062631835887622005943921659428736160236970753182935767921704345419507313617679588508253265330107797833877122650650488377066458797230781669235417591053209230118998485717184069198140195595789699010508095407267627459460963103854208820404468059285206530199947956470393778015810435023665802592134018732914604365885073961174535742190450819909517115004094143082747765572296505930111730531939267828048134762643583705577012599689629793226251053023241255181261882759174263200557377944609870779110625811980523396884460676847319905061930644733902036653307665819653571608771542195117704461830035674245410432506197512216827746848718023506460155803641981160940666435210909000170514521106973697393712801942849513349552883574515108987956339818358808379825205610658365760279859784522133383031067304903184483468002854320055029342622762455916933036359128538323434797756388836807817829120552420659274051411217103474530856321772343512076716240287813210481810815597752786858894231880128741929205581628867856291197337202279242417231955929113463767499137417760851564406014267976559173555631960708405636034927425829384569448331249085071206058578872867329979387354671596417679738324723404040750448336400657174391209225686370832382319280240789807346751863317756822395127218589724100587151353917756844595477670629685518416857968501512214296688991353986955198061572358462835764012184404293370373146425842591696056074604998765475107921074549815904843572816082117861447397055531249114298064528527115576762412163608891545771916431894515310968275226191515972893178574688094285582842395474381854419173850025191925363198931441141153400576356782060069926026244531259655879927465057439296856867861633178580565139463574326550534273484624190285027078701738238342386681070924376894048896067466180569692919003636716771393989284979620022448870584320752437421152057949407765891369208154101949463291537814518288704738188443196886358595663958772612248979205419673371475932233164610350438632040783288552871597703564322400600396777626325739300846144050185924100820273997670116760581435375141486457938133488138490038027746501061732698346200061805155486335808800270823515547858224164919176902196889775937198046665418821324935470198415989140931083003375965805219099703657039209518241395804916020260555260317803375375120484285289441809816588951334847280167687909188836484052414641492475568755563696755034101397299054865772235890010663889577214905218268097727961364454924285257844889708712555342790701228305906056589621530046885732634540594537761603743379958687590679288855826167038411487046656936407960902497611229902075055096695152142102839829846045592354811068939799120713237872487774940682732562056504690157004262459735429776548850200140597954547599025291964930913132797519481186459580190537436934359801329477518289132832839707460493860912823847972962947726954442029740677086504297995690636209938190987363007543268600986146647003538103771473820341120180474124966792486441120536000643767295784583707256861368294194559922434640758690438763138879234093279664743411072870736273796340391043650789436571937776378965118898416975505443184492142863131829234140078906506295990168982948072477637357520673079016878420024596556460647848604798505995964590119632590189482715145611485055598822473529338315819586281463679478385931752267642031872457920714152463107780615928981619165196393782612898787043545839903324929665862872843809773411500821651185927658911172975312746865492261488417497152173033949273630720751599622913155226151166434209402158318736796870675912234636346969605289424977060438345839058613636366626551935869165523392115997221607021090304409351032461591639680396796384590037496570095310826333590994263173820193453571689196911536280605427546159086528883683859690942801879870663954554558376863138851637326536403845025188520345154441668466525586825297172040276188676921176876688709219537176125136856968621753846304210499499090541195237457598318353658298108826842380262926598754645933331694895196610447873066072139726440241730201310807073798013063069112090678684219564173935940314054146339582706919961504533958610775820984467317121092931785487255556141018544160114895717101763222507405053620964008059449251094785397718042223113230513034138057376458512449214901982467058831183573639729764182280894607677265273158506641937866925447089206162169021498444273106276682686609071317322015866773293646609117057096563690773865116153167317258432692480108222720851993205307184267519586734741007738044423839349666284021310574108226511105059926248451635394682439966524257415984482222858287786482948166280633033915577295564080859509486289653880732812997385762802563608467847016484069055421920846526274285588204360507096183552275784271336465970750925574106413836176566530206611564039150254567990251204488545745534979138055024358367736804908398480334408020735598416827505105913440957458375549188552981092065828069549580394331969956907050395895496937670950856923110562119442845062851473945714156572577811405253349996609291435022957891309140199582551546948067976442673225484975234553670301977293968334659228548575256326601659225321492631619414573159991852565249089726464921030767697919593808313192335199693743378710737277172213280660090894617229472373222036836439552262353688291493723406082531319504341532663391665516170087466898276959152561363113149462873554217819839892964331307588575614898670529262108801441354958902467488291147303018330103849500473502488283672238174430067745268969596522287686659079888541027479681697631513905196383404007768116341820821896601839580985533224725072170747299797400430068425997765988246148004862525023710371004469073736260821882190717210942582300415257429659723193274044293203544048315078381135280469488865975094300992678932461292339983667410341760461153271809847578351737702933693599964697730495457275936841059617800996232579116872867985989010327608570589511468816270202221681868995177387606945361959185028043054499503093568709076027536653327036851802886166065209819167352401801385754955303354109596001142821817271651285723993538681414050574154662009397630375249777071676436958714215061653084900749440357998724965547540569533695163070216382364519003404755825013999489132579368398487718858441354271643559819073667927307475704850661231548516775722457076283581636247120316546136775574378076718791473833948889194829381892805294814307007901883578638708296014122522561685176737386812578773724035839126695853144095600396908775462769200737533232555494312524489571521489656774888785553745959869143714464214562664457721897663343116971052356421495181595942077035553916116986774184596033407470840377831173191867734970016608680775972453810809540961423509977792350434928429894699112035253399092088721240847041961320662703103943644429518155186086895074237110167755972861021685499021017811251994044617477000163639723242769420186626985141911995239672216734624245365642896588563853578231790401718525216637038124347755779253076922295768169478739441897258028976189614912537336567068765102935211576142144743919811865332771426183761136511886484179398878687490825051858085510187373887486185087650530848149986390455424838526526101536365526512238682235252264376942503413303318634267484638433017546516821263821612965215671880759061653301154280889876045174259917755881094325809651877547338118018617401931640085480116938109546806372123352307388887668255153450207874329661868471911684727817225946726126845102066856256298102912765333834502427570345011170624199057450339737779415254098228194253015075146082375624153776992799348965690712387966816393244438218983078562807880119557282897821533632467402553772259464966217084042835411158220719167223440504606347030715940473860220573511059071390563703306036507014062731725073904972803621684683068641939228331256206701034410052429584188355313331147002931009016329469212070817647695684429088895988632603863543347874674846003840276400048141502218737367336180042659015654749200579374047302278727541771510196529532276036574060954139410943183565072975206403433312522275405615760768484704500566120696279315691187963946414685427530386986284188532984178558598465628027569400988346853444563246123722649498601152174492701216542488159805888821921391121756170773900100803951185183175903383637228660620731987357846457992266034543705385698291209847215347924981223450410453230303865246762491912538031767904717106636430451286421105793123475405834357578026643387042726843034460688097039296969864406618997658847595119639663900125918269083169782867598408127872763787255906137859781927390874621578048369986544463780196658113583782444963631968537602345794901756530554604897656022782460834357071682533883587158543530687219038351892093677779794917062155155396480286011620859696878586779280337991957886670803767437628154562183325637575073192452020538169413765196882210405909317425353067774649097895414562034775490220517366080962830017986027758216881243455092261390614930653659523747822063357238177853413760201495203118842960457977191439640485379935426987618349898162188969208070610512967695603484889310962422559358709422028274892256249001268780318634626848864009061316833106453208175635354088717468485749141096860581245593090595168831683685861128696968551879483499131199518608975686724565557677695382654614314330499958111315987136410479946672311801282974549558545977194184828592627770925035632086925054371545612706716586916520040666881501068693760163870724691737748284623593493975943256284905465634657018595149614299899894299476389109174981378935662411380887091372607911502566513910825025517860842140124014141653908045455359626864803755625479266355083351436066858932464299635842589256535796262354090244899039292817101713555975511499353035950702835899507966474121506167020280804217814280476800726256656615350112558245711934735213716858323952223848778339653220515680231182090959153038200496158863662214843968136811397082511329738206507863233817305016514689982901341069558357366282622493514436542730469822058945807679186293716905867623860167767121096180364519949821256671921517608637356769597399996125619401252965898733482007334053017587940523797278469846251883920961076572077345906622379749064331865178431507617377553011069787657172050533741278120190396714583980485867978304527305392694791576257391085841392563389735874859413110810159792776152118449912366563480895858947750164092515557881037263247874999788575885474461312184146449228999044328311431009976159353238494067421712089166051248848911236957173590211696426672090189954986279375264395845392447362657375616306602768250357361090571679906269012323586020500463767975651533526168502558986428400494320383643001647424047839559120109546518635309608603339784092229639373804153788135835353586728771620564837413497691962420608822400408179984092832252818553060397988097622674713947058017792678838519363470813133107312754483485707554053172704809226434640923905749847757816567708993076972347092127027152544038663980541176901735578587645700927137169163164845534901670812170355207681698945257615725824108311834662484371160304505785769108559958918707262829892307968698246847584439158701176088582864762357218084058364397713716478994614096586969300663505178984556714246171237577210083788349256075547034227823853303740216680179146410385494384212585854088322540749531054582779866611267880294656034225339406448737315482099354335075811950751094818824055368648482187594168649242591549765990301994116472014682360411651496337875751329909392311956334198307699679572384959976104041958294787814093233206242474395593385864076951521287480724929342378250432900957915851096311344079518443579868589513602254401668133144384913230631623306882798299894128201705887902656114577677322577687467071901314034474851310407249149053974417816380433731928158939680083942771660547909232392708898304364002186794908655774624780949849109973440693231536789753224058314954859971097237518140895095536242297204741347790884171891447583262878723305648613675679964216416708249443111981230916527061139579239959054871308995598133118344418584299352554753197389212749614628515796116550933719318079973198259972576795418382498056042169092641121102625504035591096234292748568094883477186824516237798557684910443753215587203362160335771577051796254484785551722088980670279329169240585480542109315125512189355881674047550017314461278060423545697879836636071893762089305260406122710148597224292966567920657986181871739640473988622170696201471206005484261267782647874745890608531351087008963856871831272434510627998901004298929589912185358657683844495339348474455692772503044058887460865120135819916295151261210310433542370400657197816467204555583620899242812455554056605571741058330392566214091720865685743979532494886454814929757773413874458025333624085935131816226069195995836032228636291601738348283309567378220335206434422425705048809208679384810620645330442337743322537582776759735044206554208430190167757662801159473659985805099904641294177034382727082135825071959371405298533990020747017852594087691538470717651846521362854908495245544529830027201368011580472105036829263801418872861535563631065374486543724551282000398508203773114559390027507499776202760044528402187334331577236093709047453429817866648884938586945202637802528310972000463772718455404567750220180644042757669322098271029660049299872510984547072070658591791317560330918347487645540070647556341080061039315838414554789720144297566196670112499178801652047702978775657464176822298766619858396391174403855546935347322236348817737845921088989616800294474910570348788929833950677576331516541940315261658134572508608795022940283105004717296680819751638237174847644690706116426715092519223132935877488435575534159610730682750954756145083588915487135171532742856012186706719314587135863028915927830729450276138175739047433960494460759768239012928163399001842051119538887706612672279409725161979738550369408939734789569682691814938052690832421673622189320712362055410322436730489782549741215126794844956583907850902175554319460533465423708225489978766470394716561137743254848716526150863856675522872887384785391078448950650815235722491958780954690601007002837439513005001872064390246338271203660082056436325346662323543160661827564316539417022750822199384101030064208729385120206529022178848493639416148684422262558032715307902035735816643982068014332410040999755959747661461180506619298882475686128331798244986536172979144598629124808535932625925239818401315590746080637045723126735263888137765640230254196092303710035619113012276589645743151596528849602497509609150779736969868850340711979031677205775229034534628750724602927180443140013065987234170850122422904450639300481224699337897485983190904963894239144294353393866021632872090392540514384469548004859043885119147134428410331925373353300536127874798342591835650871815625820622880222046241977487021908410519413697847908488701571459368324553265906502132254106941401171576815283190717196910834685829889188493741345638988498238437914518207779706935521618662564191933695379881520225921244789420218683580920987596997855560624327160094551213803353392389836312651544022866538635776070485246153400484068754529868352887736243034959644858138563598398460567287788480975911441723273350507239701399771544564470820153424396110166665968134884967722292892219916050134288006538643000762355441168985078619884350215524401071391362582302686397438881316447458157153903742281992978265132335683810842713083669251241206609743833703424612587659598920929284348578256348120699463143020007466089410984904044269129719893647886939758862571722147808790738545557884847553838198716108307019794148842022399419252576498403703249779100341331197974833305460991635626448674317499659615536284274657722212791031706355272707870363520475609756758786946139311622925853374693300716956732034990587260685577770947228486115132206140846246325518367254583788055845040983571993262894422573858152712907748252687161331361462564169661998349502565259768145953235518977730858736032829750951237006062465054239774257027614049552127838638353399031240539539112484171233707337707604377026894835193283872496741192399815894656873181472459816669028793420886874721919109348486285021279162487351383446828380800837465152852672957433470245818840274594780702512627642816044050799661254758815493365747820811841431791419737478527373559882217905851986459723506983456067497236624496492597777525350153283377125409877342310151456796072073221596070775737956774344085349277123772555916092772278841228019972317760838323131039162481365137415282528354416004570823408366541175547529214927319102963963711706747761510778811903490534230262493370927538270468485074213959973881391331735423351642945204235898083586336415008914257914918845802847671473036008601883328966434644434906132666814672983377264703797566171710894637637383200378466139388620611621678693818230520135789758729707709830466050455275959961411384272879937805059438243457587809770239760230416002616892932573042079472919400434166105035933004596802797187213795807753304351038145820687918234371051126446555693885385907823403365338469156465460708150424695529706479116366188325516420652410045754420113815081687468165827932118010630843062370581645106021158708032988569336678103369632934048300713279991181437691632731164022642817793250137137137515117664709611146724201115190062979578887685124777404801621092019921412278038535598637798699055559842695433137732658887580535105648784318364946719252027614625555557302468433856717610174442887874608783889584659557862254882749918793009230841015055741533755556721280770782543931525369797050128181276440642065791293664160301315263898520395836681654869802639498549960185675605950664717929653034455382429749269101252447713052503493995056108897928818753190052928377700130951689588575335420476053062371250561877508645637946754411369567355727294971112739653798386667086350888025867600153644135743777116689846324912954219486519684865736830164544905680166142625540087745810298355950703653742276473251682078662545789517558572762997415821205806495263742782344073161795098425548577926173784638938937908817584465369289575188924831680865675509653462628214315313808367129703407023257589191656075102024899422301521925094446685246008509432892342163824757931759972600480411325142267182421803888214231635369455698630963990706973516906669828033941725027005368844864667352082276021314003605315062890266858274687351550962357645267720378782232817181499818785575950918569986839021624173223772306515627162992900790230344300718497205131766929973478524099773838120948140022238784478503115046543241909610961567659678375269738273447440534186296147130182072659709057145586227709984847934799005858410897913323277426341540842937385662657353856026461696949303147149279412918286342288860684742043774775376031325829890338502063668155894319369421058877593446127281004035755383254821431882711757574370940571627388797715836986473630016844682073944743237086458305628605980860840725648396430245796849323515281690581323629046745477179000107943889593105635828546884399691055548670357692522652911280908016638140943624594568233196462186186577648574974728455928515755120222990855261473048838588029061450114322109444707932703597561079747853096763820501197934722135110257107701544301576743256958080208101694684985342332177121668767860716284808573673892418001499957334453376705207490629791664945317510101710793983516061527614164154447500551353070365804551707544332005746922713893603702959802462347476937959437861256146751696231951741358803589560916962788316656977917087347992457194902223659159810917179348520618765559155799061467479297705356315653567346242597189986004784456353025218436979454835973561711444587773297725483876707199458839684145283292761155840619835402599716061060337312707490558619318632055615454803937718507126357952631356757724785665999923334764607671017808142820038040222344507688526919200559613511970899085194533944642570011011533514325443728964639315722663093931246228040068479393850380784943055681170052913718933228213561082012006687115861230133304665086091859499385525084720263365205691892994787504473633463918736339811044843424207007972452378092521889963123650457920661221774439776732533092708966858487663368452964336615395333743009635256490263103736252019620086118857979557261142023888246620777168924499800971373642585925064926689593645303672204283204163103078442079326113789416367684203556417432082073174441601595066303155794618212270360654126304452347965821596035426465980501081532208885874430640850206528959179053604662812956408921234213131123978748596215724406968678430202894042255998154602595663275628297722583925223128139788988658046589921999987432506309144782148511229066698683948673636110063459672816132550082492331791496073177492550201315079851563816802562607873867832905273886408627477809245164512484223051545813381296814584594719713239401029193162075015827198433786241826815783927912715657508958910681928094283475907249046736463524545243838293834458916054599912993097923371964063636775301398652865983463247288653491634110658721308494593336483533840087494773861766657543826793716328387426667567071872690369394607766035903077135549862683943437918071403322230682410903152100583227446872360500625707613193055743239059256307920430422279558696282419621286352623324069402180646857673798170130466852942846631696350732248506056619196638969959306032235733473092453724892365816180243850165182753055312334918546924952800688434772041713063928758696057449040992664473096628401015769667379621302522212303848994137172520608971757829205431186850890601370840846339845908042278644161838043480384394127034882166683917453875295460912360926188941051887167606074911853643698235275095663088182677538566738781989506260799209637120063962738358395685895255989254707569401117940633347966448845909506291859619356336058140305905287004667792101258572922017817759115651622162256416927689208157935050145127188297044332163604730001087010785581185800249392976764683724396405434012377508158923282654650832458871640221421456537918272933702415966068358236093421374901909171156428864779365556878749338924078529609198464231165198310975771390848352405743146986290663904110916050932674820101698779213199672461810124391133291018293359005088575845772253486790154758046613293565202479032726279085600401186348235357302922776087745544225220929121299464608270812262933207698965932549489277420874922206800430365355891748688531794538001991783132628524494151037871146573017176765311997585284591880158289655106409185808320871309564269859179393266452273187689140497468214380883005976546035010294117628081008780610650630968366217011069808787925272636069365393808587168646741001391413865483701150337150961890827384740043782144006218185286421546184000253307372924158554581526260357441570125732142134548353699161471231381360389571573935256757945993772314664295300482390069337927025807304636168449421904743144128621250689071149755190922485149877144348427041788230982594515106686433748785604305478909526699183028582416361953628653079125711545850855722049301804535912607011026206512142412209978382304118645349162762995372889283321545796942138217150637501567246544240559065098673018974228699399901887689166538104090117036647188909023575295720882939997120698966992261982938712743544587879042069301628045543738498117555213186429383507917395904843269368711148947437377494751468045427806121299328789810856688523564831073103740683325054419677749501849349205364644885646945715690675650557547460488360300631572222842209991853637519665187860319371737076949285474329265020304386539875317464419442460467905467168156574581309028037842401024968721623728266413812879133154886714696420031967615349462532287676294034006722896781935048385983353308129012947168343703770044690580200787026475304766571326254212695810237149289782340839838303563103445149246451201975396554429728191333874376638727602593981171055325087396276241853569447013526592203779428953960823079333361993136224070783307952157137058627738837916615240052202002525188724995355911954792833757390159020522074325010430692334445719618288590249104955228994758965988052815153805144202001919050449876955516452683715766447857880878980324852173039967979344589367108320125809286724028028834299532816547224534560486540184723535983600113250435590088986253908424523565519971637857036732117466007397915100743505783163651969295461836972052367820569439669599260074981047996686548568687751730814517967062111344733273023282687857004721226112672228326860209764470282040570042197644711984349075047321628236825462931358660960002638114523939227323247322524883067557310501920921014773880706015877560417617642894154081372199717121983593373640691551168255310499663517437013728822202968547753262769293735939276571608480903251241531317028359855771300191274251484418429033327189123795040145159959033082162219359979057220529363203954994014764904587537059205425657502288283146832795896393011030209190984336040305627480032690544197215504676773182566908570553867059601275244955269233165179506486960808525968449634778200150600957833290991315983122311635079153983562563098283769855441556120623411264266776059842205976849822874003288293742043110573648687006534541349164498864386236973607207008411843223959685511557865534717292375482374904223668951106825926838121106725533755501486825983564116106568632518190151868683325447867312543462340163640062037910617376498766619528404329299346486832276736868079131377670858224881491660144150380747061552392991310988317721433438179190772309718836835242237323637043979772886802991530773193225015249496291027807653846928800619977453457420967410555011931975289477554462713274187522018582247653556095011494717540377922239817865645460068452896001339362466742614047823845755399036684081814080552503229078572352263637515031579188746697564291530872879804183985515722022264772406700816879072602531514521050705719306520749225260350673096783069649642373769375516915416963252081037410446606111125400406937420489113853610266757826307069229053133464639387864847364926224361237848054200093130424082262128557870804788411909071590874045515692416239347051083391370575012863152543780087310676972833455369830039235479914619693276589628263432188085723387449573864309030421359908748250859485855840467466100976987549473821262628875335670102710049748095480136370847048344427098810816091221397737457301221317086486237163821894652703262267272100095858359292155602301586699176536623202825322832981261032225730296423821846850632156377211039371725088533059684155622242391109178275689920186672466659694211427325226723247957800492910227904849309808880489912029347851454121608286369141040559745676424045905118093888638701567015601518073677648727504775473445113797312432596849914744826492628787228949856544688921590252059917921867867157422730429558852289201168360585874561481813881876486866239290842636138800969191405071345301738405381002289602480806312885025806730247169989280218680486315957188876676324772316672520513870499085610860969781789673985952876172991424988027107021586187571059452843627145895589800763439270055926841504546575297721148411966274789323181635703581197859114209610066349779922556555546232202825650571125743434660718320717912246118770142182995273638170819055139861583405100989679506621964517132203098924485262596200158620086260561227812112118301784165578339495445083899273888838038448126026250845012665594189366002618230967557647567091659628443721478233110328370464881770400242011887018849078176058799977327350436134358277802580651480991047770445960745207625482816032668090412836334963729254918196324130183636149498285609707610481906120804315296205510976363931931959388270758587783745574091665606762089318748333695160699838644652486728368574843861699610744971552552094383563755926060089245538723977930068324216435326584015316943438680941894467689587124910507194515889031093669019799225332050359865057577981656492711744453861658685102116720378491160752362102687963798215530627749076830017787704117538624177448931706506820693663173682218054483637511730954323911459590939743821873109194440422171511144427895619108794072819624704780454714684042365411880995148619531662697867285065844744937408092110124583341627390343571042018970239271465771709164897741305354958082755059508748604485951754247281674564894506397982018456148771042178456460382807063114188493772841040666303730650866538117603756828778213823855736103989504442410903492745937681544486093859034177707722015504731748728000337606144687916240883869300768001041350921168871559883553483834595460120674739159092406932529560983306170490727160397708141836142616276938506156184165468722954667663154535862873174783492836192342307750233545126246448265098626955946661897759740080852228897590576850857376089566828581366484827539903595717070081835817086714419049132428466250699791977411225268910094441046515716015176230908551297426061510593919632141304949729338608110098708951019815129956996613715330393334455682008917647391384843584437471962784845923450238209692410430411453999217721199099281404789539181592108420539291255277538042669440015940812177225678142638366370684433302261026473068434460302818516662212673094058316747505770751889727514017277386974644704447464313995730429240190934370623955749320940187874537451328332012270608046815620781106152992471398924353872031517652405821046106693603756276023931426551621487666406034451210751266340701818147037070724833431519504583479433696924264977968555676580376051912389525451653581387273103020438468631326258806857412969607031819261983176826331934775905869842755149983475509996129700518497432544523850687598934160870958377478432989581311420154476129920866083177068699827155185155925872775669185647045266889787095402762433265554886966664033766507571388337475844537144094226027018937553100884552337277028889157463524377788732207407646916417847324111274898074366118842396465806888770540399873345620925523304299803110422430700569446821152608891259433511784188895505698069679788662424548485615465775162020511709415636075569626292186308541357071159090832132024386706917312276250605656244861222971703168194580276473776609428135381180774684521678225248366944691648201670987522021241280706334787162354216850839950028400622965134942248127076538361527998517160318714243346861058982448655565554105971456116178458100732695758611065330288983931435198543844734173333227859684588767089827941961061260261156016990158191306056667988644883682991497906099532704114887565569333592644830060684798062458743863754957375409290329189820386533299502543131598294051263108474368263707153141102395147135606576391392208904308889333054695248995654340846544832749259918143289924387858726275978264995362526470580248167358638715597239062376180677357267692402395833186537768641808614198827273150070541750747362329553237266934988103730603415962152358334513530032186860765413913865412610328598117758844058528511363640571203459231951697179057556755535695570155811201002504489811362558210181097036835920732365254350544358520439588013091107707362127802459156404881196914270769986556209343719419655172710811907027666834174832680323227702443921795054385678470703442406946326743180793352529119487854087448009984355481922020208828295080385251404501918876068854043906262492974519062296008780739675569343614977573065468949658673047100890458266175979408664063476142102512902984179250756537816909292439095222127821278630580269788364949896118504348267780593158721281204729995370217127180982228327274766799800747579428151252219827966212340981561317260723378423998704289734757841587093384949732376698691751491280018041260375072593822283375633314591374843941684574051463926254607523132915957505284379175866910800386944508084803572793075902783302497280942565500732955434580080241277006268641667298773182548139277394913836208323330840090395712425922178860203291088002539460707873698671177300702631827220197885264147588629981382444054037491829775563647213783346682314852481226085500453754557745283468785643600612923494643444415854816651537509039219259369413909378894053287209701747125173060622272129019576815054437940071917938515878372801007939241941997965957773314821049794971143602031105282500074557848052697189445467274174394291598465459373022494039762359106896375976133563830883809866253499366979089571447689002742839217684170828726802269706833980897805387229986100701810332050734595967066983915462327484938912804717956504805757219894788934401870677801786226396107749021214174992237992831693225061128842620787909507742144131097895700700590093524274128221309104641615216761699672056263366409825720317007746079202491217785249770175403220056427412348543621476161222354594444075206807140146293002929361148904582647910998176248724858027349799006516457050693725359988431222461115072716412017452333055379008189481989246052809598693695315049728383447410074872974952960661294529104413672213535871865449718637809323568481764281495370489797554538693114273676232046286095910301700572610251809373293753772754345797637956978463967993264109528480354076382726020751515981778085031821717115573227277778279358804823705487284839361362974713243030686748866625017019167453226994155682608522573096436497265148683306694410542751017617589161463185589682106606939075159357242237026994397237139699343768395651674944614833913480722307072594724302786320615083418179626418431960160928837679559203091479768504540019929434842218866810951375163807660739658140180971594618535994627556618103767145627557817914497101961960119021050814650686309846379299502315691092606601885561561541095050111857741887431243443577104252693623532871499889226300250288098175773815293530583001561265762414805421382130530694285433505635151038348391526835585118419512719978007558287336012762110948305076156119872210490150915639864039182799605962660001346445041323071981652112709669738321400562469497509494505394473007326790289037662850112347560168592697441537159980087347903959501664173341218641726096799622838070266371734725318856456150594924982068004541719226949494737016413526494642455783548631414263512531655188572751214559516058437671940358328579414344547072784081409940248516837591245375347606686705012054747592848793184193827468372358265131278661100060627733541155005194148445666205228038811993102169269991246788287241436972113808402224191541579852348489438671752243846847149424713305413031698652087583133059023703536026232984090414519555512662497425202210322224363577113522531696849209047899214951442521772013161345338962130411469793046251562470250340644083989620257740868080105662790456351132129490097025631315199803330681333537538556695364133464593808640235219719522087286601929726934236826338719771797866629228512243052707664168168923243646801467890516737757254097847690138660515467932087940449326348009962516326068977487414802472985608287854577300721522803030148939613932016708237850658327807522142119162384609510128722373582167147673002455373020992950180383959597382501486795169610217197546323614399761619588554851201322206424309244266618367036270878476372266981440473054951475259987187252662114087113837830498065877743483391389584392151555027635625808636056373890244397754393061886035683688150565550085757734391281624556308086877598859909978934396783732711758133500792445132481060536339660245758270354765670827113061948998690119060438817553607636281911728934462870446489477676400880420709036431749609831481039810207693752115715246529212191820023399494183699289013250783186867590238942630298926093322135241393250585287293344896345118281422954748294266041171150700132393313463120032486458025340055862568795044586476725304880993889968007588656094059719974059835738700072111610910957022618349713503589897332345145520536718186847758094452138521058651156855216381750714462985062163885485097800977383227551751303784244906981128209137547777349146137322800292945018659913178060626512996098647879653304668995939106592820589747710038072477789370360441338540750782269863436613893128558252067842634641205770197910425346258208778087103268118140015521126689100137298187722748832675476149342797600916476432189115493004466033165232440535431152843338269150110742081798770413079543241747049784088507484187541524052236317183333287529414486910615006952918448821655281029102106490686032630894256616769967757386470367668038962550644858312117508980718442615062281659209577958810261706265619629344456202910114999386842463088808021253012875813737245884134771064482652161112917543076232638010225975437274031629909608140470732009614457934975971472752834461032020850227013372373119824109837856450367870272793006661331664996082844682691385138705841630241420072212142075831703863673757426837188527638651095670716432848310731385256585289964873852411178135093153242782322280750067670005491198780050581952696248560651960309546034521344970181148643068352298966587685272987648837787523816534251107633188671206672063013610577542446338254691803417439565157386918830572624425028309490630656027797634277485644531977840856686247389053280317853399678381009665805089693000013475596619912860174682316783964363783824808808249771729091279852053631135057995794109065333103165712389150957044580227418188528695050419647804994606094418259540157339650840398339688456702772303049811586541537326722546761786589250364998815839476773525058748716737567387263385408712319364489874596738987779660603961411790396554472524197557746649721033788976676963744071600861416765178341039615283117121094396919150014905637776395624326663121125497972390706862904465676622785923813881367455327949167865054438493718398807793122180169778164545873134976260870982771925554719112501458136918114862766447170458687031673836893593364097587956013271905165832796746807311670686658940145926123893905819649301146524493552253750213766763069744464531463297716120965803406757523574881847560729756999011202091875568597448292445307045525970068139475021210822153928376364908713130440928691660490361113055588875845868471763162487272445201875159334329105948222054176964256065161982090563429874068003046021950241720431162674871167941694450519406961067678999466598614416708559299076850623133078697859456197830227838382210150306413124334356729827589970097845959781668131855365476869141839383985493201990251982174286686243130452443677616939410634069331230008040243759334093058458203233623513884416905233775664504310061065676081726902396052954780364317622140997774495471280299046612832800840630424301342035623096337400990740538123976351234268918929962260623285063644994050438605735009088515812965845702120132778932708271611142718322743156466568655830106882859881272542387712797041572135648566570099495886788249816002357187838184240987937309640896141871721089766709475162004641761289095800765852854120995960466359173848516552734873121217900068895681459400283272583120095169575402125764965934502697733781556500950840899903057216745321435508887222647055101048334100078327944394213386169299652762749903570765400969616093834013838456786382566308446138866074954498125869154440817544573122852021547217297795176033169920814247025572405029058373189273614283588834468108612984780943530178345325846109008305860263497064132216804827247730543611433910540985209369621100695457807288679967567816464425640670891371662646496728532027012851517951224087462605009989767061099747182484741348571016297323068566330036610629878289741364454906891708716097657366253971957878582365975211389195886864357171692207427167011549375317419358074185127224518067525791501091951554027386401984353002308453618874652646519232359025614770364154388546370226269674896737870870274282203857406950872618335159288001887331291727408196814627261975665017762245121002435073929820227637839493856643034704221826815249153308865970470084119648612390484189587869914445478754544087153194708785798395688941720706794249124919657519281348041759783923429889887259914112744402564296600513150395004451961160343913086333830290595614680727067216995927061500121954906005355449918135569900347515880180898735836627030298730804814387191434797285035411504140234575194829963215632511360825600296798030076086241791998919484853253744362031488070523137124878666910107038861598226637437450896712509609814136171360519877524474887057082372433876745528729712729406787775279632912474984024241275481039185071013593035953949165435950679013387516877165377013061672303476512194427632517849573595870795213497674491821216619043975003892481875863745748466173702287711973233355244950328828598978288458977871486348876318241441470912127021150405182488564465254117582552570367299591398226621462352976740233678109223307906953454807226464261444366770147639081892187080518088178910511657010880446367517582818849363256918793907904472615350312538853835675162786905571154849136697939091248845465394315369059026051943280936869237285671777130245485970006816784952285991154080919708087867914910982367697321750963660450044826645597952522886762022095472473854565785252770482546619043977429318052115171598062336483887322960613288537598445662829289549132685950121347966874319884808856653102844346603574314793209472665715882756808925883141523188915619175642248678274046536113947835542122662995242262882860803092328353470171069084668705028422723144115470122857656247373932493429105566450830318939790573174883012654201780968286934372450807460884641629890328413770232586943341784755247351408618424018076895163036349399268831878775357503396970486383859267868905249349236566732034453475565404546348154199530728881891862962409495144919912477766478297713420338759941199281205843046453159180204226895402931364003843555571123748209677434328753490201490921016855633578185832360693347365092677883711669137703183923331430866774668041229125643657766368746525861027048430276613415008961488805196940337666219415233835332197579588750819314608537751485301773007763938504590662792826614014815097686116186847237281211827862338421316563891434567472468476947659309169415422126643963186767363371537558824131245485660145757656573949801891549973869531823319192225219808514768102262413916030987729909636409309180212763217604000480592061026382161445204454005900141314858559105167795603426905300142687818579486208017796408527775424104137981602032456058475025051209291959926359897113995824999046655352269429060050579416026834337446772310905247867229822095421546483308934696006473052157197825058656114177012374835761635953290018686351592388957030555974442361824109309511200534773092532016543394368621971113366400346155690800104504196297427153927118437664725282087857050455357827625005466705303042980434982253783033881512574169752751695819968889807659917063667121001934398264534045388347736373479052565993132681068491173165110278400595791835020251738720173220463588438112781266147352534085970294549491484849211180869479173458118090038598036394577728659283352114081316088810222223745696631682875696495076310589693072030397562947974075089715838401847372449353093707578694928655631954636675211291865963407525031373937325974667376569132376896856856488824820596394163261661693634580493853353126728807541613620565482894367010686765801432672983035553187547544541002382619021840341547370121879662474341569487482792236774992747872725054093230653603095628580886831269453251563114607934699153062082332317238502955994525465552668703466786798546646053818218579178859899486762085986953803223734967707289873898993914962560544732536556827785135607904127349703409937708317577786870858609805197574577025799946999662386445734133984670244735603335156306270365564499141288254990925718032897736806463044534012335038601280895326022587912314372150571993251396936702862715696880102020848789447614666053652280021647664148066196036979289751709391884620171308862998240716009278469598147994757561496935368816169806112866839686034809640949739876398674466720930089845965950126934570035411283795290723274893914149909759701869150414145327166563142390483811563897831200183944098934029310258143698685161138161158898553610563009847974709671048500670200180333887489045150303697467716472620150937525580883177503463214675668889782802726967790930363479460920539859088166423658705353302878896229291532291593175919095717745488867129345442846364231019218196303585939183398103808531592603936338605994010418226098077746267509880240702498814159252895945462351267891253682343545225398127292564405252371443411270078856869703341019438983447984521781521924559293892001032759645258339584391861111410879700695055288210965275012255062247265706620911330851929963774263842454367912078080204614178793102913609048477433304894917293229506048648775694478985027928308902534491727160124942473769793535938074524834956138818043067774689979297521422811450822805936355535665992815951539747800097793125333288577234150994100195281476823294506774414870069474758635489382378105604661996684236247646447044892058620734032668460369706687063407408669771146924696216734019795236025704747162677464929068824374602094791099768184341838337437214716814758142518313284885291728727651389151453046497899231367250423334810858532122214199592572735534716977798697111951354109091072272909707013356699011531414650450124077985383209949029169748198662916229561015456105526603046492054835774571545258322088842796814984225396421789639016159237269469740876798331080882888459165981325991246959373761093671446476948467344069547420003312409006794944195518669925030713837493295954274813153169054375989768725401480665590194189473147690835610529842917301633295573500551787073215579793437225587853406722021518447828887405787464811613619062603337237309961799456808676031016391754986774804834602156372737164654960901015699047190395345237567930122737634859564799252468306036224829375728711495859740070447126350176248625250387441490936284587192055469770565203020054649118119557406956317815491396514120033930607582867677985714602511505416700899495825603255585738646686219257001815437816845089724904744810138202780172008383719097265295919783681618612321400937381374541777189321849073858946252990239922590781154783243916404060442954841445363010081325602889951635571277429947202727534848131153997523410511551486442057250435191293817231480768460291800896501709821935646649797979835048195977902286093896510270859071221081937646136907178498887838905274601773885555630008927674153810853725737179603968859434740493882842648664212616073925614189667095152271093247570078878134005584958655217165287634413829215407444412572331914462376211054757678299667107926872463079466536352058039520439428764426970815514558394414398539630406306404636678953638661960726707715490852913141540675433000052521529190732435641139819781095712017143788532951935658653146788859451253699516732654614806395178420110141531649668238816488794286107168930822498242757982373173265384075906063599147595302606272843634346399194193325647146521837159539473370246079692969267647543510190760538324438052730052781789840840932847750855971484674433265741745031028432581955374479956638309398322552139765826280376978391912355725000343877098672389628495206232953470629053421495203760191249165750072747837050805605841597215594294198448251777169552963738994576087533051547392669527744051733615613741493818213465647879933176967362483740948015327802277900116208753554501981117153038825427827177795589844807841287940852249307917634404751078465200285327833712239785058201941785385878795217184490435975896486599934669417033039127519960887390963145624023311017956119471188232152274861194206421310530827535048651710675038879518286716066771335087977236637246827200219902079175338665511192896192880731099010371085696048667090666424398833225932843263330463898422651509179195302682004557668410388834944002506667601666815877185675036089445464350489724297121615709163553883436596540307036045401910093516212600436872622818874077217362613528585202403704655922256844729011710232267366507402556447303627341605924841664911245879588924022188548381421526363240934203042057747272573273368947976658417260123153572497221762635828740059719304688499444563731875500374724710843218466776662516645140005658113738988072367164844530854482533895172868174551478362127444328892687114454040338900990199449508684981888431666244435629455907767121725365690880071807990546731859560084118367408462932309634701366219340184871535205071902541552758185662392187167599244435378259908134004428224541359738513878548383609022649155808448374657612379852519696236819347076300206810601541562316645963174172288797571838888857628391136677370675888980807964785740971301947724614084720052679289380993415873648091732062487123382043534561008239201296423594519788059665941123052190290190907399770455454158634970982867919327324461703570311214672269410702110784223694486331602618429854021992523750287492091118055200619745880420440103713860522418270970079976302875316010964693927365259206486376423939042952240090790703116079563933710546410308166541361138307340122766889061395238656759722056845616629439648517199288795208604496559215057090347900984785352033241933215105996066355708027982532339116514075798494113268127114987888426467613865145993955759078785898751410386475059130402955069791989606242235752551334674173547014641458787745053008303521925706038543466656114987585990989428386915640334454537396701487605563472807668985336231953618037951133094352094058284387036719651760226046194594906158279896477394973803273462550735522609694832400115776625340079870303124435969939939681278478567889926523820958108649828246852655379514600885110479980590347544354996526564796640789709838165783750997574159144502347950319331066943355848690999542492460189061610716259384144462082668501864972067859993488665014734263065802790438970574628300720386893992574450826658413687578476435638695460492703810394702514781569817293670493224706916658980640594478503202739592095121497326649627437424525224973439641424895042740123660587822270152476097659195966514637846002540699870634766504829087998737886668138461355922267056103495114912078314021798720821059258297005799903602049130828850660150631308216164395849634210791853112651462886511646273576946655155088605205259654814372713601635532573312064297305607767523490252133727204668095846329581655749321328356813891088806489029974126942710587934054449760579358901795806899364374730490323363067375939580114437891829469453080906645725801061754840693511546987503893660658536560508574796325401884990488258643438308091045545747259878772053574665623268886559111651753291219501940503097075589138183889799959344342476423883396746266251811052616198502810367983765610917895416978858276133737043585764918983169482996008426988106941166482042464702408627792327486505973865056702183174366167075479451100536672969332605798576393489291871012856040996982284447736017872843365594467310189475109094606592963562892569532726898286281176427073067156441829868454698988648697547216692070117482608064623537454675585016227531268176203105184806619524926619383220630120162801408665920111090819455990023756142924405177274389476193776617552030427643227301516095520873145351197850948577905766914918089879007158432661736801282935699555428263308078530379378018475342317071197218183076036462719779730608317731925149214352183287937310413124455892543689377038783469204539445396251254511123636728811761107942355876343126992202809485235911020602432247222214045696411185261550556903097745435903736086290858500267351584476700553284025595813251006919402196480270905822856053227291374295122164040534668592463930214548132199717615250676576882219245456861904284400588077641842347194780502126623109485807072242939435936921202647061781289899845782485533407673632037397018897958111361147604043981782509793665011396778132406503523950515686416416374511459138375141943645190123153966248909858619668642031535852301195000047010095083744825228666366137192193543976513132863042602776170149943961557805590891660118376592425317620553235138763939633509362020480549753835135342559680201509365793532450919649220668390963929845145551682421231469826965303803309876365110233801677855901527872356910182132124914452543204968464480447391927453085001478768929615819802717750690705728501260394608793135560536674985419468119305811744258648929159194619394266565149148689678895282165480051062677382921176207815826910358146939577053595915119847897639606713861100919546018196473306855169046894573773423381703376792284607645542338578491553422365037653031436900912111597957714963026385232077112444052398372536903818373554060933513802533208564190257630246132877508927007500898570735837811938108986218090726275625098022288863459634617985722006893594875771661201295714390689576660618673272329203468043408222795277220481071667966887173030837155433266618880913523204728903313559982314961204812372231919944803496689340463470951728142233483561860051238842321434629173338498439096262757867844049745770492920323430223405927567424025197343565339567225038224052465912106103554402912380545944808037381809946239247634763666086025123257160685017979340863761932093844063784733325310210912795706078240806471928302387582737143654146316682440076430471584985063047665235336852842505029737097047999498914357808843260108072472042109591066078718069191970592208615128645895094626235226112381679513992853535731158837682721613385543582788040514847130566648730793583135797498957779509278747544487968599624474230548178175158581909122274660285650425385232021918197640509288895197636468294717182377800497429545303029814061386129766011120665992864771492353562945221778029248595865398595242042553575131326007683955785646342559300394519690092041311250838103998298439219540068824177110444682985228021081246857675075114028024656890118856727157512876954792970256308994853109140583251688978564536496350764606112534601027379250455098321518061030903502830868514125744412818156729245754127010826964927252172704730017417897786995868996123142597510650115315785214676897608171388874753685806309261354760617867727979174339730055920300900427820633948345748888157234957441413826909166352109991676356607532353495835344260658154982452983815424049652065925236444412624641071399490075582428347729784792222071883014859050183548505728324399011739621438715058167441752953296533459326150784255057977877166471983180890672913443513148160485846992890403058937145271248108777688948762593613417414084881731181702347133154566968872600111367798610110595079950266562918176265999307833237255916139755177428834134805999092003778523613915535355753711794831568000018597983254682512030874557954382864762411421650536237929556643267149204666534506168452680689575508355180712316076218097719831196313630195594578465845111595979256630927023928104683623740053683227886528713517124125340811512495047283407180373476702713305517695360147035121049176353380139140196576764488278610968570400920347170910273239706843867754061713225287911614286228800219328300319077359686538766927423835156446151285392463599811374149597784940343957552734479279322992984458831114447946291506873626338363786183058915396695219368271734387210608163229961060474434280334121143928677983557914860194416591078331015059033787149961329252012635643670718647207030036199056065733944056896946309346999639043282377323265857409235758734473904962626751249230552170411951858853424507450903350820861180144121978022716616636959499621462319460056803928447984827360719497261002847349075452850780258862136956659626816811055253766140902944868166595732895798823337014286031279169469066432747464600837983755085045347608184641450393216203061504040273089000299485194287460762517644249477418898428410916490582629698188782436465364368127503567737022411921211308861770005095651717003694154434345812030665512080557337256271376532909392664848974173785313729328108952290536207249625278259129809811009679040199895965746652776491626686255138200805183168025952244037918996963413939084155011735639771768561724999529349733333805989225426207232607809648788812565016336740074204241570509332305784103094050725098945198523806602283673839895924476864658914958853745752075217828787605173229014869736842261685017936607100750480561254002980426773324016705879409831968359955864999390881017004069039717334825282093572043358080779235447199487927602892465937068978047222337684242918841362279962074858073203820588289131132828349161222917066006775595588469717339363157494962967038853502202765453319193763051469525161337641818849187084878025870333196054618503021660965596039196598363564813545335582088011724665011798031195209797284560031947813961038536746814649847071960022142184540411334822192720762532896840279282883310001077628682605927206715311074496330593650542252630160690970938343887127317251855787449263091292081605967391111592206636753329933537840688192567721706830931139700851709501389128501630973673484507612198055869226883465533791610334911708797605082795376078384670618160220620231929231452264547779002432370593080875323157606745213603870463517772482399836010648556838264779920459284817448977781360836188104906577953703298434932828657939399354852681210208875078417107326466406486064860648473966756686593579967365599755807588615654820570262144767885570756487641235055027972993591344842455221734085190445209151032990045215130976956779187210269629205259039063430117739336424457818078820399443018753639569683894508235901581880572150764906911826288183673010927928234493877550283225915553499842258327669284001744032039042904980769714709411849470422214568194333845300031513288422804610781624786332223483629084382417970607579118690972434190009552207945701673936755305768023264150004637800692194175172152010873136738516193627528877154592894966241901007590077858418269866610491038744990712876131886164593456210066173721361883866122409495496074279341753380052357088524003356840112728025197739776125932141811180083781887193954288354157934260139408812936841159115804660737150911224208706956352636845958639512245608387247861518087222486500289627895262437570931325808525083580926187697077051009993121163651997013747839775361142593398349988792985351767378616254212975129032823283715060350184064830013262326028386009944240054710877545859617993465102347478155578311092088460525897298616449111191506953873692842053764585176933713861086239519562967369037921904023653178918653086466453630352458559311830776089362762679570053133770679192807776407808683844820968154706099124353119396625851463779830226662801648772579618359251649946423556766876936182929768818779309947386060835914223814088724742373683998830687528801257220662761393784770312295374330905921445123106619995268514549018336070857522088219290703010918261908142716211495093449795756303448348934934145475262252517335568795439261682393883885583494190837894071078048390662547862530888322094302968442090787256623236782111199143109235787007413031443252189065763684205898420954203899951059544893034234149974623959141249813601040156190429294934861936484171679186480014501124516145500217801620996070005249903542109762870344489493172479964804223928111001194664536097156632091952305543878601138489244523654550719068172143546161532676630373123959365732320327987132861637259753836958582130865757603875730798528131256894418859310990925341753487019064519391906603570415369669741087819648253821064455435148316342061304235892186389803105705904759814998629740195284081755501592878051208315072324284533705982705938954848400991858960665783486060327765375596611524201079022057784200686413975637559245248587233311765848262647405525534993633518131937907531146155574443274408939871277121187291497930930235889600358010967222972141471859903461227848603438096515283095209156244452210347096643207980131963076819256154327098917637511219599360828329296310120199558059760289647956055603699663445160125574476611594114326423902099799106767547944287254919440361115972140088091355805136816989508849580220864567876578563522173715340027265801559123519189756014422603493673330656981210743397615591938972831071339372915192433809213131842171897098718250884018044404223568170046764169290020864642556517292173796350229818249381905556194427004613990579375179744185552264620182057463593889179109104712682988535438772412135292200857305671082709199047697620196788500988295827740268557829652945657077028574407484094050145313112510837666334696523066769850029583782026201818262154630386092453906956584268702570456485842579171496667764631393735664491732843598603288418598207117892445893247514417846683227698890362991259395209188945851190953326430679612306089392242552167463771474250655946412995759681113659341883926544390098705702550686923117397664914091734595450648663866445177990918403523734593525223962904134476275446678319533424207401875419808666434249276823757725118817979654670785613488461455498738850993630075125277375963433134884057295575019234619373612901599429324851814931210211621312684671544162086532319430492361893827410692289967457700081590901209776741875423611248295760718196103065391925439414311096856746896759975497484255702437715765564317833902809085017684061822068064245634299173030480619278395967710811119103757340913846776680318740640020668938339227615347718531498437396795468609826951952406779044856247687580552696337394236663597908104936537223907732405302892514237853438503903687353748209361954267618479329132307079060939150251960026080130533294165854103514581718000839747501957977059818200074121397999733721407314987487226937021282820852609837932707350231379906092676875214139690175057020492975467884907393832848278444797736170628072098332015041911271075383796615608077632747866531799898459170011155295904441696638768727156795794167612809274438748919976430391765376820178096104567653863758782255911054209650748453321491646556178476389212295915654655699546584473211447914665096626463703896030156686920302816615654260248001253554687139410992870662276706719709995472502959602241994605037722038762813776357073847889549844120046277473099545698594477402520087122652151101251050507150117122155473602839215681137928004459224748698343245168389538335439404551762090537797764324204525116133591278352827658835021544485976665026601647033786120290029993761376201593089888624920560517858200187882737014125180596882880363836445389911502952312392707093177561924106821613813976096741388195227016661356361022499424694760360918181060113593975078432213033803515429778427476611844209301842072789185436406499868602261344146700562268996267762434792226596904637093374471577444485883395373880216437935106649109838572348060459254059707865454080966761176323253767361716660260239991647795977437018670209633854761946473912853275469495540199840817119869531936990634936226202721772495525653050372592589385445984016037565361386245276843912388284812944795228407488322775246611053646256180324042625545787051588261188467434100812919907723365052323102454286250563564692925787072265269137573824791786987112714439486689696987905685228724221454389689196204554700065197923788926742834517069570614567244070680902666337018479711302723321105379103958773191453103242276077689145599127980856447112642814753162700189567143010621148094000041791965301019679600550108697699161272648313408294824206237061283694867023568671291551526812898814785022134891562641297871221861492374082638178087329312754941148401166690488548183067462296829803487971650351431840879962549983821303868650852973296885006552865193093655384446539534815364434764657080541132310202217544947649295578383036591193845178174965983151604793485964060049013354382656614179279517855342474463748455135744096609988422826554736110870847466548978175712847442034008502507273870988646496717274212808584175862855283316588567329518029433859883886097967394322078098144507758603583300380950892960360699180798361720242803181670697086834090179607120770921687961007119705663931422367765853958228937699228817279594759222770248305579476242653771864136346456979209176926080255464013515927559091562563872671033086189088715101292694693173177673782592546884446421643129473439576007837464434889708607668250837836266764650085015865571296060399639936196068193146206141255722879901419145689653748627104954214539620039306015150176955302467789801400522152169642919010330652215618947715844607079770302312630649930014265873814050975354109449009928533091251378520597517406563178307751138121950864363444529379814684268266588533663770417842328104883616292828054145875925086415462511524970631606262723799237745860919544048519179641646080503080370962591231332920017788149575098447386910140086329499903077079790885052277486828450213308129428388125566797193101044886640624696515756272373230543557859045651915448713769706193454723271784034629423517334426054349080523154472252940521686893556297408075074050253100884839012376349439609893861849071121555369825732429801503553508881209953226226932497006623725664056619558441890635570382971905293117692186873069712271535267801831329362271086534868632537925478333577140474879811316702050555837406206489897734909379725444303026125897777518696784844825583045369000647391564562242507809738680187670368806943679266410413074719721632780153394009981285403677249468421624608649229947221143802809723090871095465143835779433749732492361036666280956269631105963497880860993364148756586587497125342058773277798637216392606503109006377341422578429450631507533531279441657883911914693744343903757898246682981104274293454306836987540162433497670588196197046124482963733503444933246818037631432986313001320645431763056072644415891617020310766696332142079054428808911918438013207668418631788036592826629949676917997405236646348096648864560875126887897814608695298484004675911840430746974408617057522982018970677043580676972191208893491932142496323461468645315373968735522283152940673023369013012191734437934109303660531532667122869812977759272307161998629588076763586524318277366547422411570581787622103293608133414068536254331938152020739592289796108605134437665455730578019201803230044767670801128560267176597001151835611288996621531383479852998148653956386295132732313266275842031289705085021214915143392065606931382165719067971214482599241670772160531089199567112467304605903777112104232052256508908279125062880334883360579223196069842843615666563831683317485031344196855484602866945350056731842807780276066191491361738436293892835167960883548363351646955865041281281982987944108930058002228748628576574846955352844270791042761194381966715010598454302927985024523916189464804669941452919573275449057104628301002547242029641754827767514082612830141659194213494662019472759886332531866715409204324538325348275949638210734960191975283304303021177512953630272742529655153638851927298650597776404258529120238978284184163208057155872426238735193361825282231341086368632912243310510143101225218801016876866526967585347744958408504187503119823037689829705527538283058397189036402017732763792751432136195117449989939170882804013761786899877408209885119151359121524039364127382554171523045215929894465026974442161356797555513214242610955931967192732161762111839736526651065640665572027948725052609464243407479038294605326880656433268128742963096143474828371710478997525547159205660797129494781552587561629431793204275098086002098509627605119154174503464362777282363286909606245376959710093968311722778270043147825827617149309130438786185984601895259661316203191805705090440497885955194174256207182435128610684006133415187186530442352314399741871299500181579427927077686865354079717130231052511576239589761865731841561991311698670795657406186063673414741479791409228832532143509485833727211222235717603190464875923282324626224377060699806763695968738362195012828242616784386229009476544695382514244960692223497111140080372939256471312773783528888862500182517911005784420553776738047799318251616616690878749552632493250267649901228907048173595628871096466834777140135005318010155282688988545399328106536860475109602600966064794130826959456335085784628852093699028128142911322503288236276025373019847088350371693630944581386213392385770481993148975752362813107732705638677183491799975529440179704516634539711214311956426893403745993008067831091515262017160033793177979878818291196024474559858147012236464077490045020342939372511076496020675225895770620817545753319744878245838139904545281108985911156309725846905739466743161261816994142097605034783047006344458871252065450093000086430173649508892459692976309682626384702123015726974763266611681316626279222240873809775071003420552266887272256578812160156097313573448832211047013364644317285274709935545368246806574380814929752517289280969171378339458003172308372526525986779448006248675147141131607213703785397525627980164948226062734986326160972247199458829747483008493408024863052338066013834238313789048943732858045166350822336426625778057581642797256070880477160897762246273658036433322740220047915646501096441980754219323978006150911494496395861879612067570827232934161656087287836783480820358882607956796589504202918487069357070714713371592748049105579961752747396530412401394179105179731764190800751866260631069281470176682001863842871790042861468446825476648424275860177012094643398600008294878685074595909719546766018645673349142178664444558835027797262224304661370863273440932132416349856387384724516264958668441665565281294009999680406757749697510491223197414939836451356779855522644617409424778448979954856643064036219164174812184736336475763414450811155128708841674369515579236288996426962529775728434557861099213360425820425654469418450076596725282691917080599989604123625541759045224558492066372115764499804070863554333016477131435592461792395885195288725055400897666385493315730444753656168370381901375244686624809226169425319812778989148334340413726521168909604847872400931893440101750447030897277678060655007515551827632381237856092326696648761076735450687474050896479836008217407713405096166232121864592720280650606802215048894146600792766717608435272813591036866443168814048080915428397727464518078405193942019684049467163661523147508906566932913864676952011348605439873149639737455309844073025720986822437639256192108871204853927714278446031922249778244816620930818988738940215086792962432699088850492397799978398589656174708977686164385245616029737236585008998312844901281966597792402818313503999167336312693310488136128051217488047819417065070464259423903648298732155588110771557804752438005562152791471512914572170762289186656763491261008821854787652113723058817492854264117135822349551960362711620598432220596656179608586547318197510639428868825016911393799402957509264652637025870097910613142251186751808232030255012545324751069429697355509484235784839600547915165801942272275012960555743773901403915983833016264266764550309905428497899383731057234958880172258829035261118939451029948974238072064225634466669134277240484435325526234868019197393018087288386498278107463393647878710946024534153391879854211591914312178413527292044160616923405866298101692148052463391616025455048227745154398707136101582494133714985960218409403794799969147984089098374877007389663492462029586621789803353553798200398154828242410523551356182894172758496545077553132969420843753742603219999186455249995505086254374816430872670722437861137172896184566924281216408904407764946524908491504781227079274551819876553018250286877708063704051624501826133238354440063191526997546676240624218014531055905251564691476199139755504149907219184647175070957806423651690364023196735384050683565266833605225351104045439837906781656671692840185791885398265862610541997550899402476615193706064094820787486386429183394279289499219328594176884887704558558610841669755559852418850951316437703619299626360814752027666916839278583007929842254830981229942108161634552765328790008877372205367865782790183931660834681042167333602199367949224643607904911274815668448825003441257328436062543037083590129195829414621610592412187992131221855567629629486937076757764545193105937493271078712174081734860956494093873899563645812946257314448977051514633505973263414883114593864839607089718972108016676749644008250952584418688019187773156355614813953634531820821663400144711702726932965384515318203592931165043473755192080833655810175687221905828496624361900602275364682161651403739458404336443890932324279452947521327940281928495640121963926278037451323441137185160705150682336730824569493251764691141918966872880218560126521812518287942067252907194076793244624303308485413168088622859841512851406376000579409447922658634074170567709378865312868324759057557507729312524073812410681385284373217907030338721168329555521687909281108215836444061874096487087569867335824189813083540205401416457923451374988952772379652631400072535175220877449688395560499562569910095809808435095429986413597304539302000249524602631447709376286032785780436442993084690752670088549988513872138290715169708109888447768981731296829100096146653235437702866363100133444212174033618506259712199844990793113375761642084891801439758853765827831362041300123930710337172340455480111663185669496519968710267439951326281856059104694618551751301429610104869466218371052243456008342934424093637159268167556921352042133109189630573737952627725752779213930433168169361975142366184152995587512830123207182337749954791354584522638679742378506341208794533155717931579091183083480456634557829117922886036624758801347014871423079076782537650407449035103823107941248991046061139814135543634927176833322278134289543605968985651011717939917431933615172899721251547147022776931572333332790532922481883151808051878414025336046949902749191885199821591706994369280014285125179039908310863384109081143723133418093589376083758825302380002795916677332733453003279279497102431959770727056103189061636678019623522777451937465264961596193187404699365548706118895313487569065496120867780847569804597180675868532623914608527161315166488846999730413630479997050253725840985303848378368462975259401271132937749810986986223433024252626088485292162027432325006629445500610733527874164951093028390392980960107598733181460256771021047495638031041067008467332985930736853126848289268224783042742696818638530256410883732874242508902334692231436832416812228082546886251197984729207017016550653179970669130596350606237940715111866795066611450834141503877253920547775929316552528057739107595975998302392487748476146639692268313054383557838740871403109602548310561263684082888592189888337797995661236390857010924971562126780121608488541590046316615739118330616500385409731424613387947244496011414430707537032989174435061728492921849604764236520850793572359483966842342177035078126764720551585615526680294157376251014144331691313325781060457599339828487771580854883545758845754239090975098730977336632332799928381898739062964508024961242715948252859339330934323996279204295650873975605253485025020036119974946439628301454039540573388703161835294646477891728535199811444913198711820812012810684675700311948946624692192077372180814967112093381639237751492606980705469477658990471369604429414471025514645805278779265037966839455673236187882271722364264977575283523866405354529691170019612519861620202301426007198165527817987501843796358288462697358039750425566647781540814882321220276288504796727537611544213465710851166276344328039111162442724555132903993446833370177466860080536090630976642206802906792657019971532345038869854341127506920182994736837936203772869316585559261646641515583407666534514143052312929847584532681831215700273150061372167384116310851332484828394751221527788568605002417527953173605994165242366262588056015600561447989071476087439224838303232721315596887911224729689643326195821811103698423901360213531579031717198271917790645180902061060264968081618375827070870410050912541529023745958943593141233031539066791228776849998673322045664955890206305003221102325501884596145339196477157581552954359365260447192071900705271738844627328632386016806547022462236703091859091088551372584052817685072781434544591693044564512360004450160382668460266987656024741034545822236375749282298452262787474130315145960584553453296329797457984062446593337517010646617315521160827353915238611782218989724294187762144282371765500530907519165651547159051641343728960828006352294008012742174845082739872361351601790214473055129204765081108264128503443528442612461288580740497557160641334963066918460532672492303719089876374515317226342538049981268292739854735654805535078701465276514407362207905270108150502171002954792133065813771618747352248891827731362706945837411005973103106262568277710072824585978617542291245478898884460418215582357249706976848534679332650491779210291866666542895123387552440249908577148826692971752512793922659110941751140482107888394904583489942180492374067926825637111911673705113581277168866760349233732691014427595347534085703696386704150046613342740110881603931790591188670944622798793133225727789885671484610475668314532677776586090033020357138724955242526241479850075490274332077235398844227179825574532250091762211392162338371136267429499933219139979449798701326515153386657723990388137488678417421255499204384416060429590250585391736315428662860926923042507390710487021599813106290711396580942999793854458485594708862674627998327844839124157387105779815922944686244107499609400086265514341747101007370078791906958754879553726265659977246109941528521838009007358938347320631829701755938004645603688101734086706572281369226919295177975395531221522126766501772952467683364222299837701098276792774311509353785282664488140457537248818293067069282168319752301291079208515528672733308655584308532100754773257187225866515126980155770513498202843469984094048123198831556306312113873737036198758415465588530931545222881789107557420515453941884102000381469057495361328634855990632523296395547878491737977586980397443602242899569281279358172080689257670645061392738053460609272411621768024768961786928395956614933180811775882475155434853332074038512565085439998928950632514178922506701062240279481971763732231158700312882745547079398730226912686229708965533913452890628295441377464006287592115988081916445724464529225192071440001123981202623248757751550541795233979095511824230934337589166437668808798694079741704615171543454875814599263272602581873829160766322409455247722468336108709699295061534646403970703133987536078710084592699197469670982388454821781582902846110786764750217131388379457983233117285433768070829468242858562289497314211341335887068264669929350460698721595566618498168525942794343492228256834668914949283270084455239251446965678053480274309237241209999170147347555525053389603783039968951960496102782903889753881439814471312821610420905919161519994787641975500024907254712408668535604366653129508648655578897600770534523825029510662765394131193982723835367611034252412920331848250843923659719205342333065967034952038649035372746452001639981788162636305935382962322658610033770246359843045489076526307867603055133584924868764560049566936758304113485662250391628188596508461188963508316259371135470377013295302738741825066910454075847457734145183391060262929765310993496477157710797186977921460036736362240846461711063764554574463342423184146777762764263527428965599568934070066819428609732349635871674525778919906276462933363622590034873060593039917194276947241963433417648297039289931560246314025078506117725538782140022433446534747911460998634672742160131033345039868753056489912068120864534417510353678220026222014443176701499587058815582945243698673148157251336623228768676870154184497794249389054823315660742824840067239982039165530654667201926277645162923560116501576147806134038216818290577874475418147722446502317367619054307623802462471747446485426287371261572905786527940595042597824826511591684446176081794504230485089501672961539239556736726354920218854713656055794246610509392622222523613035041810826526993095997249902477646121013034909365655704740575461479008859020703862884697068816910508605854141709878808713106412397796097523692053235429842055811549012497773952319719665878168861987455355040744090595413133119871883503016973684893573057151434388606512657130456955427304472033052683241078879476079948341410135619108454457388547223972589373329908970690416190407227666887148363849895835257588120526186281444641511882131446754945661957298953024862932534113660554642375665611624613814806033442052504260787406943744495037778822366022870619211863825225367660262943743495371641943144734332425922714002249769695972691111717553333175368852481180972666786043391232168352959481065323625110839822181789431131590122287414751932076981044818123448304841158858534430109735919807774980436764988032233182116734476084552693091341145265078241922748185131455658020376098119486241069164799493235858185942800873876181700892735995807931246739004970484231531741159038638096171097308734185086464017011086825398757908670346164709562892734698962727809012434034157454463684960222945372536355546119119960086919417774377536039699912366335617836015931582369701857331875761484097006973722464709798178787829010374053727872400256271679519519990402062671705313523875253015994914658344109132005847728361490421192458487749354418960488780106251761674337683028888900005285728520145615558662543462952126254565850146564807868770630641050922809334927674667635766405389201040626852199821338858426468930909667059816909982487330882427033712088657909234266393736281030321787473927176709593216746981721616889529370652433041765291260044565659048672641574888965556494197405429016149428346242675345060401782699391936199082882108746323119434259187967039850108045770555328801686459425743977031384573256272500208292814673001260609734079631487849392528253812058419967756015430834653299748428936000010200550200673915095172434773315861306169336313200206748149103683952420393366067641202401667168859425279612231390429706687594514774039436449500743742622517952268552887159086164154714857658204426527761087288699270467982210610919949432213502455124694681170278957181068746105062210563126846364363465293264432711870957122624609331503723258933672884060256470697343825788059926499516300348937044011402480582367393424914398935210687042313180271387308003931444403001425962895465943957621380777717148160249818398645822128367491799428603922026084189079124715853556089504465805331717272398810204916432778107943308936683053069221836091261190220494242995438115900227641412231188263351608842729618400080051277469301630691209371999561811459780328306329178299101762314973130478343852683230140063410990626487158577479346329757031796412417612829508312552226940785003345336011080394604482789979390528951314547964617480628608411347986560427910424239955778751680363281901416140859290012721121765043260368151279503024119884920052184699857754252875085279174807488982722208518718117003870637024909623919294838419371332705034669085807988383979355029420458870444282523089112811027055576428184502710666594176622883886438745716109184400330619815885715401917311776798844821164515617916382609804530600808219974204968230004931937755238293400288743393960740152859110568171160817463736823252501621379418262938948747927228805439589813981524394839768180668566904276582069138256382124873542335029127899993051987433072314989350853247941753362507310861973339009733644677140580508623032462580200954638816165860929037666824643083044768278663438064597443300869937552490879383398563402613087043059879690507956166148362905858680547874565209473540932376209311788918021316899248467419022594641063041923582448860538929869125322546799771334260952415792680983384923705656932925847529453505458262503719296824788399986600657145086235251671816700038420174883036912964587094568486319092971278070319191897945282578713037173132698720924920489741643853561288890492689790073058013100350080757115431546190890196587026552497436148665206791192628682346663128589648496872803926573316197087964262916803635938682299531577704728229470438405755331595875995849407701927519088058763689276170817588670638925387550484679333009053416731458915695887486583849092039337930664277996449179002478277410759183840222151840289024569031415715063855506854028475235968934647154625109130380175736826846010598672233515932137834508325683752787471617769554536739407781497402623036822686641543302009260569497625572129642886280852556120696065515090577739058655087492889218542339553397207834945122324632494562832597115994512013265347645866116726890749624426864813168297934391908361277117302735205758329070451626553743064460635183073015762747762223376019831148100713807041691067835965144760095540970014274648102284334994356888693750874066323753187393661413509855899606687744914671614942835607274142250020147784349869718668091330442042994653083218979084690757822944930624615162380864483315090377546732947252866215980148559807922745677682669458447360982012276982841830361772025208780756496084978668984337940702233391685597246831670146598613477749011292957722634773815254505230666914273991593657436052976043051749198517278999941731862731187375065607347971540929642161008787925075429994014868388241634114484481355909798815414811771053355200111070034613855178190165611130023838555036308153358896787063661469588974642223503204629503312826632597390105558329750341597684993443603280155370228635490027071558730505167464088145572335081699246898831733331135709297608722292333085948464353044825341529632194245803433428855129043358819319071071815618228735073128567092669747387795675285309789399536295956772261500454209772454965587121589677862848459207426449915887386287077276394843697012462206021718034583687997197770733934975748979991308759430055821516752980707476982763259796068821030123138620156744188549002683045942122463120739621844828151943379792645044465469545812066342077584996778900781855450045733884874968665764095884718622613978500977654417112585478408042848188742731939442418167410909408519534822202141935352287092520593412772430729348716780270851421708110089030697039712278895503759819981217676951021111419615352918595626199795119643760139321134416063075680888851741059368460662038442572327074219060312108544403374318849727873388767005172652162061897760278694577663966094264740101816972852241995877558416501989737457113455045899609622285003836566879499168948916372161687669931651115435944775220567147904527358714831702450181187297136034372358271193690630494963512227223551146617836646576829805348814734696370396597844567394969516875138212358649263431033978891688937587021817142241109980758898566563943252077499166606349224914955354392518203351520687262017625217513430855819650286140483287143390030416535986259162243642942165370084909297368607121405130815521858478147944939532274322131061078244479586213863697508601891469069269716260300742607025531250999620684306417638172148145768242471422068297974347306865606623665781284409733544349034316781736596132351162695623687174284169989637640807237512796847196779813872170349523656714425367815260612361485969780154118264378410951794588038865658517984626826621017021264502584836561055971145797188100190132803802649679981721125083655067547401723718811338409893139772943392872463680555406829299659994064740344569805931211443692137101950307922491084374874329626783537332533686574347634818106762721376792426356313046130713238054721805948402719841431274626460568695888791828790334236543662424547426556227696123334028779230338424106847113834734084232591172223675925770242741037003435463116589308157493799634455463277897078946947712383472985115760709062472313294879639372915614307147130150054008142408615936620966261524676649589511631628618781790076430050464561891253118219608326034173093767560553790080235832799095053840806702590685175787604808765089581583092359058068525002579772004173951546707873720943331057626542314486801117657368875824930522641382270880153370956007470994108521950165358735185566504169323349575742644596577304761558137198462061521298463649002434902162827125340849162963820540729515175362865601417623053947648030534280239728721082042334720363208482108118335755404880416949752265993664276250661230159014475924026607973041154364775550626744211364223363968881587772407381306435219687195923701191531945689987255261580962571488332681261471739680022618133652551750528988159904062265366806361057060370553939465898274867933232435978771063027984529173571176413563180783520031726185158613344715341862981013444471313786114219470134134354203432045354476297820708508307439226964539747280731242649390563809081968140616804441661129483346215934201093438778622621338982693057492927071466046961704042413429650998551386248745239076120155313415493358131692744907661401761477859748525678790284618184844481220140910807386212911906615759627716281188126281892658455098250017418364169775427313643517696000176460218538520347158711005649774658105383051025175598324685563645550815207908957623436358354844207846840908988156694863315585019423216963639736023730616537536179145620817366670563464026701307850569960206789697832034205578827335074616223337924828596222255618687675741288737959105304731847077000009443511949802477309010463223800728736029762180095138911507290725435741356357199344323457132368920451860434456712726863231676599369940344802324153717134560161397487881211727680896975463780864674046093310618815240956770449715683367036302862525905381992279659601154169220629339398049742251055994621653196148416099833558027948223099530160471115826096516353168504705654889061889045962328620027189056117527527984102158014361212616744412742738178884583923234730907219380955380991791290775061784003918701989184808747130550278816710908004057305838271331030579239945285696630888456757168141590841432921313391383855181702886845429839395424864526120325444216058387760029448129379571695559582734395487836697663986591427620802747969111987815866309685705837062810952734289429287119629794096358737851273391540511496497528902199680171934431378378419132448383068687669922126743289480056143704443852313309805205317974747665884943087494509519020834214890260212078765615506155040352111366571697097431190017761720304771531363502163927813386535866207096757738639138551086439164647165994972137915153324882099807172343248619192422408409505803973690823859970347899195274455318882442106149785174644241928008612810950069248899990263087954604627287675967608125686410653767159903472747365660629186424969978431623984863064070670995718691789090123903091373251195029867210740895178759402044583837450601511475592125621822366972326786405630206235001417018469655700968461715518349656650523299617524393666078140702211260121249984089584016201921039493441442850446318229884174838447169283478103600920973062541478068281035525694398440463575153562116518782253744382257858677852585563315667871249316217078426717683117396551224391826843532169232874062635639180395896742795025773836147591125047413838165640583880326089369198972605617737653166104312614446960453449597827858786885151853236173971647034916789418039159348143118764601827572720964605487059650369829770394925249099916827120563522874266573825856006166639638679392921075665521087916019224801142195132172185040423349878756116083044078257067427970138995916301083654774414400434468961722002128861699896185899283193093673700842258382819182755201269344115219298192918567770021731520043885376823229697257324301580760052542421940882761754191613763111051079433491322600998271614888157864889708582735815315113910989673281170738177170018834638675290375089859373847879249651526052150033482861460558663862790379044743733919066968151942502202710374751343300516180492466908401510770071108802098467605436712742609336368212891448885308393967541192878289419673979368250064507915536955051512595813327931677300159917317696011312633879744217755376407141611008262659027567972293115226635510766131347005080838749989505226719581383328730314389805971475217237077048467962951719264694624094056001683946844394461140517017339710495875506983664236664783867052502555938959697074691357075831300797768056899998363613910540764197282139805018598499835710530502168790320057708660586499039794818157953725495772107276387024666384576441231256842144921192482726503735800454013641096408503736114142705463826714850903485610024557465066134543040246219604567499811533489971671665053947022357532983679808216830718151435601261915994383246219993997070873000883727096406873849945188502752293709292037102858235982670770377318003319238971370885444043001134257023210324047114567696990363445569322059511775679207634840697630147474043358023693728079365265518893575287052450567364417299799401422132169054594432141388969723172697763485252541258703419338344541645490038426649866032298320418737213684509073932938084841199578082549743942478575240866493785823386648159200645776134449529233890362716921261715097006033348475115356877790457093666767980944888328841171707129711574874413400269781792892789153165771309439633932690348666386397158996378037511506794683736863404520796289351298264257033434638342835653382391858586199625117908940131527682066371491698460809757451511094059183331871396890346350251680637604242043705425672231168951500040688713949743778605450281577987965343120243067843223724313386408499092125167528555164869135596636670532705496823160854964025946582905087291582769213645934583136980679973658960482074636173544539635321513007919325614079429957087938180044367735068034616511035210305527154970672505329159962001926641211017326408054742376902122084617729136926362847305612171724436760281715113238385927637879767081943537109166950447540805547587732813273411904825469439406791460527780974224242217825872198022354374539811585767585544697852110879439962397354388410742900493351892586148210736400843207658016572439135247457908475392760332829189055677374788018284420824261770966226414743759311253337439821015473021832359969966885947584888349912175496624783416081196563247168540271424068033388092016059055173445376943156844805639510821276271006859441684005616360542230399640261029070084944604524819012130734982733115163124615748370694977761724274853893602349491236904989187821938377738697770706318725404384526431035897314829798560782126105419219213575899372424172111284423964790130204999160133174084988576545146134288473498858145540916575436808263071977838836858793765061957397373875619123396842830218169295824941967650860064980522295711995009720937899285445910087483335181225981192981986359098750688645708617406405994782207212842740448848959996663124097173015587679055727242228622352931953612531406173200713287242433849720944708451057170495453527907242036368596192019932111442078770849160856894638749038081038516391750760441028690700530991717728205317321609027051765548756174169871765376318957345068585513710721026900879553575565225655118533867345001767825276622648119245606446272992445307539826261607745439293296158712827086561915956730724892897386518947220647107777798819136867938795680758157768371270785864850197208945900253500488004439389331338435877710470259234036860190106846498035212716488056106964208806317812169382152345321829483849930017348166911040932220501870975581499848122737151876465646180608565241641890225071040978326513713966858468005714346176394301328137345425126235487355155696544872994023606218492544225829634220683223726990304496300176648516481549371172644816884044728871285877216838800667462512579885662568986755156609206971587016728870762578282637097431233394752111305790940141066420230868458737369054816871534825843466653382744057109839178784649441949121629527989410403288001662911647476966296930217550617409605251469849994805801282892606375514851793661678128165760818654232197290455910642772756865728577947508301202052101713662162714815474826994559979612163177485632261688874777189196129545794269572117579088163873380848962662732279237539986441084520607898416004100555169183180108123074237614000451016037052176701090309901278767145335087325257182510727886057271032398968170501711017724610599201978883444387465480410066153036532125984801153846238490661754827614150681367389623631032693348383555005986864301316331499354272055730369726531998578568413134454134847739198293087727237676987458524715400959162319566150265366071919622779237103954758425952699057234599647523738536211068293036000828470219853698081944144069057317435340685795011943862489422684628698497180702433045015487839663219235990220447176047402961990954785031767124394868684742739160195266503051109859694405098926024058342775870682487130765007133985264311832488704640650776271389368051162367315485885128430360798699728476106146511145875516178821261774126429912906603968385628888228709578046207351906164963295094110848595041534830753350556972652391374917977594539976321565193362309321510685175985924105539267475835576428980864628918135099614140924250883484844251463246461536443782130911786917232340353471669322049102848259888643713525149582313775207177436121340792064277022276343280219189513885163777267122962836553519321867286256878669967872104985427161966445663666646406486970607322741039826427443009839280518660492883743426843998569988158763685819120343649049022001698184352197330258143568022175539094206918983172734122792132686937752493035521628967846352414863320644105918470634300164279836454841817853991195860112361261724513590769601068531418485558366056436369794519607381235645018107980830943252776749056552831348130202489445573402725066423474434508253846750259300856902508343464108280959752055163460332218517696718495343133303712446225869606619378588669273315059912185686804443430378170064719315266958439705515317205003139883367303919952372657433143433402131602464559361336773281425617160197162202654405273852892083543135600907861349972095303236990755520824188388514868847854584631727920092309711609791582797050854797850112124674417339311999835771567993614810402355666742427067007313182219819972334756182501380720922061655419252781634920079416679315930694203149300872381957900815973375411976138714487178972285354119530032676527223450151178471162769430106351178236578148795479323864953577161231442316176184366990367733167941591611944357737414645850067508591085279738924787234029331317730117312532917895459886049534525285831546223392535653574092812019844839454290098367621115398814245943270009957205415729215957496221275286977850114915765037900581987186423379542650228167357680466289616039720799416799630089552053664187410057899735925615791734294679163454275836632454986806120538924583690216956863462194094403140286209483304216508377886251396673700631277344330566247385124667391810485734352591117170914997657331456710649937452754246119839653179667918670328537227153871590833374753521428079748506801230849346171444092770134793472727373242274847673557429786008927675637084708266303218888842966267998275126749298043923888758587283754138136699084338557353922607829401083165055111029640073306669321250474367251787054510723794974136977227487695456308910975343979748677335437782024790999043856675631167637970699753442539192259920666141544599852727599225234639933474279305060328987559545131307493735891520378176280819717390082463915852831540679705368422512234866086358481484806945009450829818827812414529121157269719946889654186468007001227866070572632860467997397600382256273527433623101363871848295817849419906268856923508178771797046672506905816104405047939373941378656796891686245069943983356608429491486569346722978829176044549479422895760785337299189291055903160223196129986533028404035601295178478492530575102867700473918671669852302014421338985374760749973494357999364804240533929209704978578985380645515904501620255255791469263886676320930337383542964963545528311195635121552802659594627413448701117471354251115316534009337647221260138798016663466955169730022963342502089942959387890419771108622187808501864682795938346083112493665563003980093333839026554239535512483353641089617962452865623752033571502848129065091008736280286047350179949595430409812277942873962506990493875336569589241271437585182565930850187542770660531351954861593649084366551835654290029484725209358398590630731448064126046592328111743464064342057752014071234531190357857182475925272362158385584308966814783080835511430401760940268627436603210901392149826069286398191732098684294390594149526236791930038218571257833244294755849938976621861110040275568302923808121337780504875191666930450395638085992103336824026079940173692595766029722761554948085338874231879779617294390375339735667318093554725015496942817152938898816251816650096024982956389092128652140394351037374515876335925392919643978544362753803862572200447614044287192090636633612780061933969890751272588229321504135276428125970556137227190845412228232561720686874692574470392944104122495608074698045346161739493359922901816413277673648281454862049325108151389652289174008903950714897268946782968125399179110956140506170791682417409377204425777686774712995966307830355873597473879691151164314584396649803471393424667558006265891018790336426800502307400364176890325494098177114414278299772375375204768951334747834681486019689935271268090389723791834312204358257240809463044490122810817093021127435732438742083902994075544631889251282539729980445036956837564113173847642256996889015589348708541339420801019624692378440790330514110872958092394579355067925346103893955897056685050993681815785577231305796628781609651091226095441589473777493968337628835760610488258765117186426283799458821333106097722449994116762573348398119123827364212669252463276716939204187080674927106710068873306429291319455568956733912360732003552544113111773228841113347361756426357700671792959877899919441570415458554083660935742225394074503927680656716108422193736469358393688593824095264366493073227957500989199555805461182403466527250662035137508275237331237447464820876051404747143225081617776505456480489796397594028019338468135607412841788258012913700192844603866091503728348594299262691111303602436078517403115532864127544841393577304217898600268031745105221360099684914032048773392853640333459932520316479040888791950068770457638873691984395729387499911601365230294595112685207027417103841131872514940974884356273172229506348864635479943992743448262884598713693328723355699929315916162964763078768327547143393997934405931831358071690204911008464016811299705163080128037893276798776009914385505985588851434915416372414354884949685950744315691383019138786848376648295515415616213326689987295801636020248459176368490005859540669114936844925539364631459064929159121759105873353537393158800816527307229958539353443738680168676518435148799476008718915917351485496235676577518300664314710787666201582402407649360375430710386657509784050228767714182143151967860245279440960737753192658902676154180973260591668286384891523615917461627723061885933899171279450673530554900402985273600198631602851827459313600220851972886335172140758471400385922214633924916111140075898364077341610066872099289577412176497135443496284060309025650269473269857201341434642813541739277479848781377325521576087336661394580855667526806564667742220479461192245134751506830470188724046960426448144906186760124202611041964443772621010172280197831439338182429053285378448486000237515001908343337639051847313227372608139962905799509503146004429819416540972895717391572018298186696114501350676300101038108312566502699801605265825960215192485281612889945474412909104469438118046255218872693851200345731938356967112502228806109420187314104787668898811342295392994057421023881519024312626378283782614233177802175480401649418047220238066382737350047789358653794129075462607337881777283574402032707388957270553970362715355500298426084276961588977723200193456598498742812556759396797068140415272152198451316056689460063411622686843535075432904131375144551990117930355882764778637094892341326541348829866344893239645976453021948587663260732847189192892571257680208478706525175851597315520326406829762871463341269584499005126822074670938796570774385894552000956184062287991850656952436272905981790457741037417365324742906290731664558752797193652906815792468158994574597783599057321079631963285654694935398053792931324998874941820899825813666772866620074663159470022613026820413393994461760747448192613351736528076354625176951942021722367437840009525788902465837359645230938884899209766815415833773673132809371343086470322030965075818258235623985924146861082797752735456028151501745375694841004445174035711137363453783629349613243040627090419923668546573165394234290888921840336954024083517059229293056397151584910969499444861858638977730640489638632134198538906876660983973129550922582870012048908524211590053516431997633084492929679309568668695980543064301133331632703387671641566385965992910766357335131306202458007063633378294577721338710003148053643807039891436428443535926345905144766666328306618007359430029726918978326458937757782220495246971663710541266883532835659791479183793984231250549722149105480261165145771618668431259492587194147849168145733953720877660401759046927921545647983461964560985543302921005058197288296428761739689663758573438361288313339135798898233239887164003492806764637194358207212232798702561376453862902134298947564772272721604126767963916386199670673830169473135818117017762404358965051637589703114753296133820075415254796442552262429130698641998234380812897104072822759318578454166888050461372013856802429475416068096216547852104967897390874431942746575094809997795324171603586972472055449465171588433131262674124894596930608912123813740972972911308477015212765101744294243928805189619665794990564635538999994242583234216019743048011173707505040583787069472078955215426730718149373230805943726290991379652087194596334578668873547882489274987999945603562323618732970033994222712478645035676855836303329662978544770458103570115520135094793170922686405978758655085845516959029660541582119271164365769633139951136182565956932953520975754708162102237287274495965557328353702453649556937190071685228611609638745438679200606113661894946342709464400798448890855594146461488690409394733538800862927367345836898686274504482732997055724150139640855089681092529947911573682179408005554823620840234823866601757039123656230588316484270621703987128597743765370399270312148251421360140774154603603150854500122494427577524658224975699568473399206722022058217960009183369497306761997311376669948097007522073939179015108227908731934535878867469422195657678827960694891514929285889345591355007155389207067001356305945851766169669036143976706594086187672406020149078291329332946769434606397124150439284171323717928145596907172802677257508789843700960348791199626226009070949345549658023562988337301198175275058416411542145939156351133635937918049897718276210226292611166615063177189394491695238112756030236481671076246885594502955599459841212964153523345631659192789833706294030597599790136764237784685595048657044471891040759347082687735794135543044087748975412110480501101192991892668812999989524785255102564459605360424985837824649737475641947639989297284800881217012964020366565289035135362851683762123372218685859113181184252824693568944613847806414381646318444018881184972538236311563910654849087342766416339514486316250044537263013361000340049875280366287653810783057781949387735815302337631350283812661964745164916713722903824049955945786273943402168566614949103660703219446531291389997411336976238322365997979175801023148289124750821985363484004130662029667135167913029422085287537685581668801459086745747382413476608535680867092168299386621911421964614680010646877592382251290096613717449937390734245205083340311702522820711368085651584226579873536690354675471295957369824419554009438646196131467782548317809523857203873769985918468883588177028778162526372881350557235031153108845652177051902709483024747814336241927482490106833072035881244980196395693186782197748735511128957270647490828638317077505538094172822014550367772605442987960180954180901451490871349852915626117317936623717523618253803030668562535562080370452823390543327227800224419541917112846173472075195359819844818328160367845119075988003987424042725224209800771434245376052484299305131735193613989861062135495183807655009632560190460076423956087920364745129113303161082637288332438132133164261216934980918092166868768955393581478673734597932546474893426607998544623048958395002155454812433519994621650415972058457527677079223838631180261814748066222107706252685677093528105851179178112583356598444052141170791991930374602154757489859109774853392728303288348052076618510486449618482460758584239362473296830177249572384646469769230205682716136371690293001743497885690972927996275026505431383825396616747883709735197233362625969869708777196081171987149709350849017487657558197767242664687353365291221829256499140696619832505278815946720326245648548247361133744141076195522328358590952807951844909947723422254695098208315374255280372403132208636161122516828878178517212554659452280538876875076554787879343268691503814938219492845575768608241750938506478913367397200840772744835914003893014254083154852639928921927291479153432778023819195807218573919230294500437434901908577548682912566100310449247164276072586594667211582703096778924275135404761774842037172373815961903408333134207411092211576050965846743163623101789243663035825224720247002822333332802277232669041396820648458146405132206598220575303729129516032903338015535271412758544282711308448310240830800502419400907202456014505372817209659885488530145397843333272952784496393005542573690477587253614353779710447728549337472007890194005694787148524131048996547073221211263859199823814128319887090946852009185011242257964937177667169036164083341779027546206117722302727314850734385282698954743072682177021947610292461533036184986754511582774972983198211151035281490432909607116039038195443854987420442717806951634781539905460321894104912658451996116474256243531952811546567716835040141003044066019247425362939121327395350779743712118108325076023710807842785163211990182630368454815552507074706622674199790469580689218384890135816594144913701075076659597683067285407951584492337409719078529030097604788836889258513168845499263149234937156613680132432457133619133261897391456413388348993076230540239979216791055550596355725345155958875902441910772860967651127380870425461709449119554074092633718369582143973941753796932624703073038513452902285756121615375288212640182316514977775234503626760463149354537560701165625829824072895575727180471493466036538946406022779890729565763845063012733643274096370847694292081752082265379777759461024161978803883518800132563979475785827284836941715170007373895423462807992031693201857756438538591807407508600153438909588469483545666232220967236179090975288566322485576073867838362389126142807339311189272031481915537635685769979947440505708651992783454696246930060926845464131142518276748404359248546795777003616138946336043881918482572862250462445537431803032252240203150604807437152153801957780454705473974422757040659087938394925543005574069677977742747625722899385136170643123408319246395217417937896246069120429591134164251267989884193261412813649225572901006674337807495162327894165442263806735922199244123094766457759434305406814956817361536797147781025103730560960104046327973203085857088302313658662904625904008426524582163567757983170875628134461610105097451910776999234321616242228413901279898090233576185147284853027429857001902870241902814763024642813495338474603778652023743520686614706391821089822449052625560913024433783112896932944124683801442640345511615678876024960276077756950395814677289841435792531366372611412183612735684619919106955189692281272984953250351188491500165517888604707175783407431158494030065761501757489082965510788193921660225754008744694424352821453701455871447733597903597488505187447666989120418841569744530449468609085632283478449707154478469699752163214806503071793955799178425213863505913291753398749910975772860707992929590419755008590155476240678185631277467841717686421580195677446544060615330756906139307551774110035802789503854642347612781538826918741027860483879163969412255543389331480008679535892784691779361229062207925284502288972195051716069583725490381894715549119112122274481779224556677929364909749739616890429587388315742559695546984059095023681724755725422694143368881265908489835815788306451370524871555126113666037491679480629522043322966824587380574328804012214734394491232531218389078614256979310178118917531061631302757896811718580413352095808928009885470226118034780345628325636280824918909143668748498827870053939255789320506129324539885823824910987136814540291174277263462968873243540248528642242625572951826931924245694912027409519846263061310742392884419672651846431374462643488498490925312502693245149334678688786584347400399636721613638021799828715989486377161177543937538565321667462483915837933672082228469505428765550964519908009862281216357660745285758809502667431654783920887571457105251832551463627391072306560227361869970398355017908018535516349483318091605574555611706723468254566025974755724477310664069845232343384439376299362427759765495897084297773327526921689691956535069280504529652392825764102063296408173443879456440147491656163984021037194596059246950205208948745856052115612559671328485974514159751657682369997034852106124738273422102798322061529432804118921555571677213717527477729485894019195733281143133834978006859733283203081322781452912431102055757633921325088800579262835404448864097951779169285673423110749894827354838499978663765536593459624063667857872353743743513486777079525537270887886732871655032510764195874084979973010169199788850712936604033510601301477223343804710832671651446198479290557893881217518687507822096706368352422912534745875654558904074034376936638364044015926719717096766588057510140523336651161918526865585026921688784537930749139838608550417270363114749429567194082421895354026388218378049003628819390595964593008833734742607984860631829239788412000576048545702478916498135148280800812100538712632548887154121643121079211038526107340219855246721284798742028652826189622454297962617191144321959027749464112280620825278936272986973939698747190082026741396770837581865574801146885304517786439066661848980524832637912400482747789968919500718194852560095218713882234313410690464219325666947729836650365772663028028428593005861611455107827340880214036333871994112450059751565185521759121030248293223911451558785855195200003887463255553416524291380748240563871358126674856148750179464752833406653416715491195192230733778962694639486856330861791934998201643176506837886952834484604533714437894494731982202745247142216838417922465635703770997372482983346016971010187422946633504998839227027745888576000067138310094947755604296363878972744712061175315605857741433778365760276958557601565055716472138639846642950057610863880776826568465156516774059184180894614274894594600343856138335054362625835173488560075895079915936753741770487091818717754830730384529448837363424964756189503833848545041335941528214416768162632078299007045710707670030103313406940393804419450378472362078733962554877505982208305253146862916371575945398810763058055824316469697502039516915020456939977360468157280703233883540991834417998984037782257740798134903873893304408670929001808913202029003638146863183593673457373644602250029897928749549477213804890830891590336782910695434184758481650210930717634497486596511986343257501820746905267534841929370409074229665882645346075480779976789391242694872063374053323355830954102316511711308404397263284059276049551749494700449701836288865257285167878642086314381286467005778744937303285349671941278944679114444591178275447785049619376385034831837618064006556062101191242134142923435727539298053779547857680422428034392937240250465729329550923946777191661893976711779700188470490188223906957628925553311448602253545630417962695184308992841365682326827264536709053597857171929238454261293813007035353110751765084427746925874653639352052117089865993732585899394604401186507285090691802827088833665456001164268614663212214856138155311922687489200561456227357784847417943654685849926311191172186637446319194775282602509103880606805107848600005240311559885729229132439789156934346025905615253662772475669747895064704341503110121744401856657582787816028371354041927067505619275350884801268860525802442695559763103029131472128631915487404467686398987383968953583676964288812190115151341330279745154347856273922453203701040757005186883237817865999108641020120364697724902201949377306168025282880324553682137206502023327717492857067189305169942352913585177401650503695929763518685385244027618276463312138636532132495853928869694876505048441115651941219040158846902094286971660162213730416567115844623609994215987786690398042499702829102691973712561409686016355580038646271391901117338394594305223969066505088877112115775404448415169728067989750911530154051887764010288869946650324649763462009717834653334038037703683156726194396589024388370105067579047575659072416744697446464958282534716827267773670337167629634189032963416761301979432559383804689115300298541846601331568791909115112974868972184308744042389559482802361722322389546585801671945429585890265798195799703810432739942158676962076140222922517280841737350451807829928735061670548198277296846553682042508831497758929685999539068982487933396441522908447253771929847667046815424623292591967501050534616567320267433607311422419559553874822229785861394704117589366275283990757930732837666125225552165212355148138407445169440703868316066012657071522844407223846041648622610955091599481031974236540609806810903789376830873215204709962879886377556612549539794974418321371739430909946315728734493118783952083817894841401294175502144808682394614892063023552392831835771253990889894064347191945273816732001421060876154600310087738151889440867965101847838266588271368023940729419630273879715930219570674032676246392098603840013580659529795843328304978709170071444538518129050002692378746087627911663757678677574141342884175313051547227619054907231748279226447435670270433920961313458546358206810630272659046716870647522816524121378025438283759612825094462955190135851602777634951357808547642215526647052459891671185031131024077213535244841599347885919828599830566796911364275382044572786976379990470441613386217828206095772870004622782392360805468074825738227743421271115183741707305000345087371847769277706174061289109291148650428383019835319706271224710769630458068360627994081455581972800361142758272341763269446420609902437309923305464147547123996660309424674966315867955502701634154285380410644460188257673640260529525820471969835281523449616793731983905292996137914067429363712143726826036029427420403093653083103444546715779161265464103055139092165739630314156977209394827080750125393243064510047741725224329768212011533975139101266704156487371846843428859893291115584343866809039980049314574248201222307371231219461846466146485345490027421977680875014147265988913597089997600456520996701841190308623277502545146964512973981268730048035901059705109257303146471177543228104630974003934702611660497860775433542043679478777371191021406041036201422188181423935161125840670079288434779586176125885649108007841870856073633939635803990257396232255882687102388089345827514568004259381168688794633601681941145429005779858852400603413503275067093979008277798926019847745388511025679918472639679971242600259898678228297169220292875140945658752754903548275825535675141296153645338082781272927423134684922140204663405043453451845454485957537075944503425867664582509514985841945580107889776812284138762446189741306021266022459662595026529160461558499208918720872955011518763787378878268865466078046474635723215578303419788954394424528921184631964121818586167661677605913893192264573631133308213496408330428532468719454623303677433021655577749466179178441754653520965089362453298680937033024535813243654626172375829650123793911974734382175312888076287738162566060718967814360796614857253719972125874029423198509440904386031180473142526328687538265224169754001569807181626549569449125363843644374993388555559196452967365302837622298269329930247720759639259561516018100850515975393244958777329666328297683863380522726403673907239143514174072669724344169438989914864215565490990261814655424145316711206749108248692385368324463774927658860987180194344090226306730595090696391085718486955641915591807627077823350825855016875028265244837517934796136557527517771951896816226343058900446925704939694101761058645657488052784372891132659471050165953143041732982844537210963407695833857437287340045530185088140067009014903939670871313257967900675502279964742730558462854000771727598004706756368131612284225657177367286647967531063852307261901328610531680200763727646450764342918947132665723711445264048924803279985972398420120484171220791454895635758679047618111138909970206727890956273503131168699413772967876546561543212419748905869591189101487888194224787795341497805062678082493710106471050261919695400000883703023617281730382562251268025680894989346051885395738560272749941028678740823490897743528709563749751146704704326517842815264899428842551667012276681433759835716210450324697513226421015105651382921835688822577877490374168578967659723327813322133787096682830023692285232724207123905529711665262937402508259932802177333951535550829070680767952983298676124285582862461528799301518114364502059608528246365418269716544278017599620327324234421428707314537986864513598596937633127013198434999122790189285476555917570704582797341670003167079716531294667472195881298659485926045848813716102659603873879292574370483438463357424946910211531576840563245854109452134343764350822474138851013550675052519632375771086878544076931784371261793694098808788246511553572217816235571041427409585704055241349980233503653503172217591241484589502951534180848117716504064425574097672407750017969196414794135211596659628025371996378575475335026783058571938112099067668267651021085766311750308327681488730561057434290417895712669108282669563280151011416358173630040517187777187685817554921625595821408070623568069400120215232561128929673215642953011373714226176039562299661726332645789548397275774837747480077773097952516621831371555311578610236838590871949536759652716324446080651990944893372903151510646655002859879680255078898541870057959491940327683008257473594575025831432459026760025120126350665169768079676249594060955519916252108191838833890209754352503910510010370346693775208437039089137890986230728175014673747197781216946763038835453277511230353321982559548230821454997764740275132614448506813736282537930790546385629646407863110991603189866523447651863893179092959930693507617036306481100471811008284054155402527367826437552016893913458644973153908857531054664206142754212433734832665046196152052053350650084269037872160553969988022017095003286472943943320510298357622705430812226920606671011540110711359904096391863286055644183396583809233160149677365506358570327484079210163714888891333093969614427041654762897008260227313941445064982771963752514260440871093262196615273538291636318323081873058427134651682046703342267757269168538907814388974077606941188784624214572736627468677686463624981742940154212856688813427533815014893160625445123527381790535938949743366901942514656776149563449623818040184577045038709801724317201445199673359811201770338210090304004254752364389893665045776959725260412670674520752702736408743993362825019401472483451352200984275117384316514950162341164164868827910821490574126810585891777103394259749203788301899440903609260873022224235934948192682570766661065387362681790123219588699152206502527819126549679495276498760270686930102907661573497830817146004167084981612889458166356276835919785335656218264994219021107300944914805999665579874608182855574748445748999131948811105627999132693140845586187685181520067376468481709633313267119372938949554304368734793843480932452126712838621317574217268101752107405830420498099137735637884047736281025361546183294143842092367993823265274546533404552706627086235586880927586945304538927582759718548843108526453663957342918152150125584039362513713010481534797726484215667577640700308399322848209510049456131884186727621095126821092815857120958993663620154858746882950921159180929445174819902339545755695079601719119501777244806272604673764958554667405587841626221881489516380164588546615471064468464614650360634408224303467805073524678309452160407608907020183945449318372548541663751048867878831446326308340744595462246000485462003912012565664969434991372071548571096546207694375717707761989746385556164700924966380267979573235980211582884892211568389515956653235991516085612912498488454333961938073982137310027950388235269176773168207723301243876655978917759596404501925843326639137474654388712680927328976703238368797975651181944073216420714926077342352923005224408169864577730870227045169137415564669035682493253584560313410026131163533030006523845351271963804856009309316157120998188921130789827162704858578881769930148388547838042480577174120979584593878468142131201136708264752789305421278738000217401319551688541016227396453760821868709050637380111223214735319669352437662743668467457168625694563053314050988872800286228894902614564412632553715227202219937530662417914435502647992993720679502694031829716855450088504661730985099509795449482500520831553877079161468975494658589854678426986941556128813619860137800487564815376694142382841004668194027008340728149079310907158177822599900574717539069554677713132848958518732430825683011026699852555520418088066150790352665644426858823281618104444838801854449421683560623543130748180576709565267180280895005548710877578741845638171025481309679327087468567448630823161411348023650610944117785786607772267706034391578937783421801633013362011055569366349371124523376443466515329387689675018431468278240361776770574547546236616000793788198761348252668956137481262101579045103282500328338286642773482128228243275901931133776491079075477587534230191895021601506398089399758163942402997022915305760580645526983556173114262660864439200742635605377999534075603134502089686854711513431346041980737177569552466914811435867473816139624957509141175077726895979356014701946141552911579451138232932195016519277177485175500435136548865212581086118648372796776960714714399754622113282828773634113633976574214319334263919561915370821730693484978308691842249584423353281409987467819903047507468253186600767054395832998207522764458079188480636516680621196464738779871649378463902076833940542548508662053355233934484425302025882010167362982204543393519551422289711078048477331447308377560810528807299397041689667817463678993653944593712499996886586027578259554504207340013333374053472776789323624179906954692027090402485778642351788583868125066972241479532169666504843669012686878470891486663092180989339611103740319729532781607555808169129141169436778337966532642619386967786407197797437999002513221925153634231008390090455457186961647682829996659088905045529648863380369865396324531904890491845635177936218442546173983175758898230949219442082043365406344280587063370170474155084370177805540639689097043696037715304842205918207936303047565740444419580007306003454288596291866281182785440676468755987644795411261301405384343286993924791678813069008820524596202394133892939387086342112684998271425944415630714377407986171071801457371556665098907425268355931681045732635461898417683481307606747127630383116711351565242326877714018665891062351189582867753628757439582650966733085436738752276006268117834746148816600353287201550216485505184980459400657377177822356957266639113700373223808673021021062860190466980869780318679100552480305363879627992986639507674630265251695370723663480772040601398769204118203994880487154608590372243841628139490001869664580065084821457013319099041053574910588904980607949116227215338865949776408687342078328783745656885838391789710297121943969480265238842677474309293358209624537305056956321161743551919317806571595112960337975081530312740307140453852698268314980747555635574400192935546827503851051418897428037523716822187326307264739675230059713527268740719379675168862450641069392792215223885598715831740263610228544250864076131890776324570054192982858676916059093857486192184782825887266818673340162275296693107068030667487617508747172627813031687739765711591279572088052794973983479735051843176560389244317388302242192171865036407676071969145194280365985043950186303996956489696113083824939889639375325863187235579088806065337180044053830276009042421131473867995396717957882630915197388062802293391813697445296657654101116728492208286881425797084904817298498655827456657333150134312074620541117739290532140657396558026043461426787024924068947862917784356948029255069370321382654877002285454090879328194702784228982403832597509340573003342790767491129038553274038492211138200463026416124134528625036583038445601729556049082493798254533425112887800713688242190465748509845369532078207875772785758881644156698968109778170680472792365898739737302583691226685507977285555396330844833404717843548414025186397230180944239492186723711391755838749783176431693936919913602022068169088043970123511662758786225631787771514325268121667645006866254494073004366434449390109014175778787668419396336197647663803298021343547477244494149799357050325621000927445602537340021120316785226179033670306666359177053578479546118180866708061011248223581495088848551897987501302057288361375334475142920447202159307834269459394906927005215840882908595957974287977610949462182797740750734043206427979235726161855569761945222085887826245473395588280284583798086745342506803829892557052733637563448587645653267071778146785618869448987985539971972870518084913179137927218251664121622166605703297793382742538101925437504338577239390645164162254687103960052782949066935041278460781937504380490873212421032458469161035017616047635367093486983179692198573874780657366256667811345143251472598942387346658294684629691014591393918279826587674107204997960931476174874960729220709670866254218667569347134364607754660606739803158791485627979869888093363955689597090606728267227482694681584994837698420637572300907758460221184808778784927367283150942439032863504642193148594313377740830827341583987483646483996374893321325446053024781008919149285136585797016130806033670970001419682134415543015020177398142361800105611194172109152245722891824155389914179031215909632323480483293998039215409571725101478778288992167022976804176245508957880682153027194926644696653290903287131099696865916643738861724562433143021658908189030133517952119830968315707066394437712921634269542131048412519240236022509799168790334033995671326357443626445821104708593735750795276483439901777816075793191317606805717624694274840061142608828020483551633310732245711699392253833886720290003386990548937613481865032550129726825925791227814885796237120098454017392038859651282980304180135811303519238310118106386742443562022519884379425802044676621495988969202339795813813550413678458590594331611706325851924759095910007293362051280051971759981228324112936705612081659655192245669225086073625644280886349157656074287970522127279041416354043366892019562344053806240504358124682722474437066084595087732275363571974358514043188623209440256226427159292296887414181447177908269095565201760248408661848969675971227880826665405674558729469519510621382328271970170476463566832807370591077012786492386479811986838629731683602178439966630675033036379122691087075204156075706828269539542686319356850133807819384193978624062026225672094721593574885361771304387976687304746498028369234624729864799763187984453702899774560303412137945790500928294158506185937291225196185293538709093131903928750268756574835566971986019946052704778943707012672173115827445332352614372253795869146087044245866053617894685612627638201687742132884424808791088518957090657338392733043698954600153308145154094420023965108573090214289582265110055110976008565725264906091723259987044148460471818625837432348692620755739100388903254278059680614455880662413378104175295788413209542549518328181348658798961007962961306749211640316453667727073280544834039825256258810181175571522053676220356587597961083895319892986912457607523330246796273266931743805266211670131389112611175974213495720924018246663478658401470301649438105639069254847850322832949057431285544065410892891986495413523512275180062590174288876698779119512327149852608884987621058040377508933847811887001681991816152604826895131272580008970852670308255569407866376268893087496786509173341390357534957857676525447487420140791310645225070812997556189586266114055845109083291455836020713401633326758439201380764436620317781901515102225961081431883339516921436831984644921142739365523960835023087879925371268970984235142879329456057676010527703793277561768616302519808157357657072017974017148003843137300668693542425138462607868563179488773776073991076617465075274327178124085575253655092408180081355702722311567146505311462367906968445942455212231238901785858131409578101741783974625997813504381952714009074518674470493597209911491510896065820735435717614252391255353199532073467185411145665114247160903587634692695032478123639660176814362421956345834229663293704805551759443480665457282968382397026208638436566103587546470439670602297184690983581452130519122104302144392814113631995096473567092849488691807356439584995194071331499007557821254513974065366957260262103229793753925388232743867884577876282542056028320599217243904973270772757779907210278963399668547069185592729110004816409132148351077345350124973963218404719664427175976823250674407666416063843568432534340146678896509962928926936878451521575626573843269900014712292889414679378145846857000572639882965455072763675196885889930999043819873348182914088330853941744984277338396161419560938601940812436045586907392934848722237593771079052939187244361769394004069435301382763236451122287804715477678339902591612196881957011762532127605681149613501864446170025664228377036439526525553726041667786959854928825946635774847871187689625541294154785503710122373192080218668260733368389401704171550328846647769108362011529290862293861097070714094506856223050660552798314468245355634135371219960172911480266288392062675522554989813433839099424185775561177727737780058781611195784146676475382856238631244405871014551917503173029063135486584060281845873067959393720604023576616931197578012763872757832618486013899260504766728462432155077428261113131442330944104025837653100267496276383858309287530054936581829159296234896485967725553384621367563046332439400269811824643205187847792682262968475226094997282276213467634796575807108596781373207030496856351195927092914425537857340235458107579651369691666165110244219707339722471721500579596614335566072539521632621480709742122607285669933714566718159632762201181774550241079239674248657145375494731417278316652202715358092941877874383292590386932779709365947970354118078277440888452645399543714191140991566056333790588548380315662979385364951070285384142014574672656921869807641088416798093985922044436000860233340580966765184185048184534820775621949488192419216346777695292294435405642884390475403459716672392959722602058063760098754416366663338731058739929355824046733820883300658046917900213628408458506683561693721788469880187496393376633112411658386193631104693921935314040006148074939507647665221179484298155352435230737109148301799841650114694873500665008189753375480924150787685247046411032506066603743713258587183861281970427925839942658331699525368354386110790126779489865377120005111726388939666873182192785566734667515042714783028647337108005530817527889256585418695960038022619163923995012801955394067970559025051186259387072377505162569842267512696450319126341633435477982291370645174825285244414738669024077593252926304445623433385867689996840898748380637077726252061632365039421101990494402589974376454951896062466897454088073272208849926824274442470066292063506870546224656918788627838984038223672162211689798564455618468743027908799016794054794076689669577929497642457479663363458798605646853038127273101499352295656497849541381585168343109104734503588191413448321836639913097570665578968079457512896238682107746940786675745325909866119501398619708279340433448349122313565701778092949947783115876923225936615973916838472033416604135768121817292741777102899636429685631220227195030716688262058853357710375481201873114265325965216187011540910860661583568541978158957930770018872627007825185968311420242229373319930544574612783609536975221599334042629269537149074350943775260439133076872944291664155866313829001894529289444360519542704204557522276905853352064689665130091412042799650558079896004709324261976669617243616498044663775383891448090807276226027838676982362694947467198181409585758923294437230165721441036932099377142818870042281533292561272240894497286332068571036171821919324654881467647183400668985106625893773825322332406453820793296308699634446787485941212045080477519275642916028473635068899746451390201177033499751094813595923962378006245623585394231612980995449992750511216549128421328018272105389062726657873593802281405888065696938401820144470170725928581175589876868465151809689630985390944377374048361008262547201859420404867280010865398048974945984089278685612589168804205256214542652799900705321318629902572499117134821065038009903350330438387895616225145942308881053671336451391572156756054398341357339094572187087104840489345135633732802364113468513921205971442655214082611919054508505739324304717890121631892977167601588652376339779402376532872161265479261406225496433854903970808525273445485920992285528523369325614071747638605771809040283928392819943505822642480904573946135987725718796196622065582034917717720808327387161603653255044888737150838365161006402857440826355570804077340341314442841006342565538560004704252056532355058490519679730438207312947864637238344386322302352471340762799203647768841761008479088498830514807517493793952628822312423359977011027577455420788613524521765848525311836098169049986359943140076721658286007030833834780151722941690491067562024121679350455223674782181819481361035048581790929152346993282385029560974027694685955888874223949866779731845740462105171804124644176563772082306215193397286864764678935939362300706768655544384496021474819013870881109530070655945019492135140756845440926114428796876909700410913901846843653628868943423692230689730706126657164030720861166119547356373352906824281899840389986664471261991876938211787402650953323478634426079386228108737940179058860771190579639426164317653618067650011438019832061068270961926314797347708685524861509835367099036733108472075715746004862751343763831582709593533220683991195784253933213533939749011452509384663786463660470590439017081683704838284506227560376698672394275837004639781415829433286547137754601735872279032953943750139100983961852117446828746425478223919462796539339174237310506646828190735115421106127108814518152353845819483728965049618519418941816464677750388985821026587920984907744014803154642273921235444715658960048254103024704472449927458296176636129313393170323052920299727343530574439499161042957239843879912925695068064731105905915680149786187717867807077953386976768793064003551238374023057529382773781831472346363486981602920579635649825894844569039292414968375357480929171740137887576363705711046089651476738802116955016210251611449075267112912532258125113951344082350363196571567485242867184436133203242179901014834422776173378797699898205761689561703612682369776910829501852895733874816461158019677613173867300689001422901459327638979156996027907888479415909356153263087285765739077565814135057576729749756021835867757979012441717884775746591556914295127979218531678007312280315889376191650689603456148292051379485938869423183214502341517722896948440011285371028350689080626732556622112653182227393184956541741042650527455579489901459488623819711927358862071225145699287654833171557186112338624424399349168823094952351267817500271210571572010601569350339115895300177309432040580859738372385659224877586422793814101972069450570833710547530337167027026815994378611308199140636866810227337768502470536409449776609799560675087849573599984864757741127551736451923046064166950731922689532143147858125906379405602601726104411584091297587977015385003393477165805092771233897653709224998654622081944349919246317933578361184342934794949841122349531387922355053733270212881938563933959725259555815388925828758708955029369967597168385193634940937743778369952937318305806906624284599867043768595859680328941178819196201674720435431821329248089080827715298014391823115224481155995963999185735191644655124323594727455483537473660756896356358648236815997063678694729153604350027723521734144425799469119594544776395128246099542850652347624293778689779682743762960471802695265269823598245897925284596496748445885276851815315087122514864981874734169977872195780735609713328975951112497630693488022125931034207194410890344503921725423019776441677304679821102022611413624742224000771364874970895446374652238501339796351790850708637211239941121622136142317161550020330668883780682659531907569615111327425404348082808090051191018927244412925263265181016947415248935990234107543505094209659249097499394624677936572226796716055748783802853592040948124569260981106248191576696042729754444694828249630232994878830753192973379653886071610666924940435607857406475925530573942072209112658126140406567217249132056402474672649993712173874972507156827948450984093359040022931984650965849036728303413381014890823555742778078072730044278084015344610946607600355867551325403289919737007129463068468338800745487860409443040972038791663698956542932689259712782557974423678381159554110182809862438867239278583678536081051648656706549679035677802632630350785346014397836979602387730311158088603768039412024052660862989929760781700358232965985576135459702825606183608671007449563004034175800030037693565219614551600181649212690407830184831903064346021656834800750024313746139455325794169947336306847794227767665590431724173900437327780905366419558093431937614525442686620759125696830530287891334183836205964990482489438008149746423319379910383725668016126991978779712306128211715625733479415662563947806202510827909285596481165102648411914083221329516221993255935818109776765882854487373324076614638424037675609735771572115675487766910879547406502756947367169121147628785540580799760883156790626420116735823101837017448410971558407064221155696945141676286562646668785243570838129503047700153532092409760484035608143859979952299289287340732311879265679297557028003478173842685695138286074356658676443759659775898415542379307090207532168301079309447991520345367415430963879787829459115635324648315166511752932653387438703134840031452836188534364319064770418109117190892280931252301109226576714626505176426054657191447155573970892554843127476367528597003324795789707365691471440959629078699290464949643369595106055047548417017831134998132096523286687488173189153717281928534458803055051970074221248687474416965662215038047849507614896513679076242182283571056121914337043169404183676373420970996583941766749470039388689102947117265592927163228908508417292667062755066797205124652338633865597458220953007709682387139001155985813374886106425122815990865489666886057437344746977208299649068748787384940438283111773908446214023867403415131044281377193827443203659771171587092215168543680694850249711965757488868011635940867648626477665269502106811673282486671710331990189506886051814015276916579735874031027722832123850039676376255392662250746881299612594112864823419962596652431603290240462828676372404256223269310553246854944849549168126042482247264511699801560395845633967569640376966468556114859367675957565473414470133756527927472016800949390768582809894443149137103897834958772580394634852708070087102780996027966550965108648633345835007288021267095414041278359551364176033772463905188876110353859349453538299081815635339141284514173959571026544512428070695643103207289842539086326014800916465255845769748960983294983842925295616299923447941520916855231306873488644752802285439161633282799588097221614637493650111770340986116954969283256674804944656799128779692494188489869767865715534765658574970491766533775206276998548800583772806598269137146845746567114354212638250974093387098334590153303161451201256748174972950528908334876574668015192491478774934731365545328440387254627199894246125161897552034776880387888593821949717795551808024110744700996208017468446013610994337984250913123490882797187725630365906798154034679220199146227825660540484475000548748629524163827949541267349827283324390612674717963947981883382844499980439055789271077874000804960552968298838716059790777977486428658057429121186057932215946323992373136709882927747112703195922992772438478793839904149380005609876523857924468518851409115381186907170471590129589238417571772841719126893208400763268882136995333039094052271328908952907111941480242570494380931985014473384221472703246116007537433612465774483635017274983512453544585252196932833833353307451630403139752944228138525536486393407099763959404518587907436015087958891554989810087955358313850827136474788129464051903538707000806620157104827419678038253579371290456508434001212259138419100810229551083129970529852083227978800293828313258442978855169902672355161178561371070947793763020172543450750475034646796925151446676607653608992096440649020955306359239182978854821441070496202766038213816835695730004850305151657040748309555753805610577461942178524921162924368624639304261190670203974148043554917407636933346952719482131091104041399432841219698240475919365214311810997275090595684445016227882012862868838091486342881974674025982938183569643514596542399476339712203878346429628359401447773375308143633711488146814960655389822070692907097644241417433531416966072457961542866863790574613857682408527669679549680067951197347520717820621471588660848205072731687902712312769501645628419033048257930631103127351934298057594739203985231655183496813993435511664359102900507613630043086242843737987798448079136114954190074313626313600825474455799870997463546421029088615454297986575467361642467088263329253596224125653996908354845736610565466499824799625122534452938889710093067171913769564131134150654372780787738382547581131958133453449585517986741895724904325572611623773062989213153255932234606560039256987250977754468982971489417314830843630901905020871597316034055867160208285076422514119529113410580635012500037826021563644041424773557937450017184910146934767264868815860878453547979715421645567428820572077226384456768078504719090451826606531108791567653613605525639569132286860947835142155983462979868010491620790625286388495614046508060831564570979392644142802375216979725731493342737451764257698014610393664311417845257653657753563074864349393248315656021387433364337472130876849692025563185206023835098848845737089269962408551174853479899664600316767798828824853303046813250491803891093196829434422851842877001133857694412680281444162165299403002446592323907408232298436140831151508016664514188510171799200743112877994630103459881640261610108118237759345728106443407077387356348291382346542223299437857985153157423491433028729188108765446166884281190968360228235195208541374803865501174032161760965651692043069907000958503660356646167142881042845362255024072647499563038504741432201779380052087761141965849459485113740792399086929605593290599014041540685184975474072733172076490820046891777685510419581049471664465306420520550138919632015959781575069456230152287131789084079583687520066618952311173221840900435503510116843383797977770688741651585029095037429884923214936612437848353191288762990822196944203602241816012249810068887535290885213894074685211527954114160481072567712545966138603906729699213953452564278527180696524714312074735665681354789501205351072386183388862595288427488742114262009895254695695652138278743800156863049769920656793711111332615744108632197634433809613920266072748439909670381295588996632906925540905514614419551067348427224917850050722012764110370193349162142172069549043161057664498323258947485149388158444707581078854617776709546767940546812870968699378702393962957695234099265203228814610383082805314280339279018063344886394076580066940849236570515220650377664205560852060653544641730932301363482595957493241766931433381885362126528550319042419695823537713768321964510699437625062791028752031409357135449013477083785284622002474271395757786847784793627621074732697062107942924206647712192303034833962694501662537696925804597645264984155729958587949408999279124885393178557369734166979942060562733239688867800083251372426259152925131968555424963335269746819779579537764329370737182188000693616886298226323314719758677048556719743907234300096001639693638163680803822254663685789582668919320847508811115953840037638581870744724993584406667438415744118622111450509410040423889148656805669697069001189603934042069736615913255317944132757027920508756685657772112596334006329413190146585369516567728454530926223820311508736154985544195217053561072293761719807578776685265660934427256737822041645374023978805340715242764077163507299923185678260284043081559168309825666351915407075581266035976290320673501992590302359025050365937965509314121769963048531509337368965389773009303081279830001777259849594682947767150832903475170470119749895571774467848717102832203771622246631645992283626839616855436435266520315709706589671904838919166748424179540710138400900676864196720522227489181923031942723650229531410521225038477390966784472356696601817677281139226381028240400460644512756569424564200866344391478815677448499704530761718328405389474357795528861985699361458638072377202212316952046194747015386971713108920019842013694185570273101510481939169078435625611547866074235241582736433942316558375569452415388520760046275751563648512469607315074833088445097442245044802011835967257757486505925926756127940499609547204535148989619922995127771152043652447540507541529771819562683076583708830494753115076260614471505524505831234108781510119520641656847299610809545936461468438962114072685049488417675665191207000830905668644908050787863089964607941322935098768678242381015262855082431103595885180047507669405457970346582723828505472922265799101126038093200226576979701504141583176237741383563290971432104051301531169481301988899734633295168726481822335387125229675745166729719456851762106018648810355839793905848751281804711666856302748914042012429560656583107095139209195435256043715566802477028432102988815736794715487816031851984144840941844478752656591233593733386795365326453259039072703977816295274439535517230631382664088360122936113218153102420541922631079150176518285222642728029669221085527425613919746610086205191997490799475445004925067050814250491488716115834968189069139376303189730733963768855110046408305793746542288091686937936903437024417049949967399768504413624856787331062369529182228356990942670275854624680147412417053043198200982027825885378054169080836341596007555555275035584485270768588182754179507572273200198938695537130815098486709522401757452202231747414859314888573349353186967795258403927733919381505019565556572572235719824312612601343051472548835505893227684175494873238709404338963622144475311803852922719248736802611875204384147576237247378426848109363032113067126989573905906577394638185961956452548887123733653690289350562665235450174502925758954086463817111711190769082615590357177029851891211875650947089780458529667097340172860188609863862974893622346163133741450996618160071664618023170591490647567086081184906021555164693867222731850950598601527036834347260130311937916320010780896452238338129897777084876648274642091342640120469763654573278918990840517909270550458959643702700406458718149246221244302983512408825987024223358455855329443054817696032918708607637974236903219266205256095220122016342132211146380360732043347530449870743444796526506994862652767054384621856864563194055702432034767239239605307591279195770167086733547667337508985712705018547572759950196478786464972772811518340412508034195171984903762656432789276362227624870508593752983613751044338968020546170402529167683075870904113669873624538851180000273983676727169582060968567652009564852801356361843351745382928246143693491923426960118663579800270027994831579071136722549776532575720590739948461491240244766676531610489832706601833921234271564628153302623187193128173286058218446732417112265932638152768241318727871642531470778413834453981290784105492892326055802782182051780454870185803924863957328205734379095237633530698313145834084845754153721050779684327955593544488601927642849992420298189564843783378005395664994512992031932675985436450387274268690260968736897111082147378578875658272131247384706665074859742226575598684959325189967186498954779973775477441988535589941935809559523165193476053884515358279629113499719249640317733418162315689207429553944723119349074137415586166119865935979349233693388039536579932547152500220341392897871776767339004820678635297470192684114278834187755471208866223678434330060984090648629863479812682681098091287936846098041245986917175503628962442835179925749926449769071107143326187739509207512057116198664177937041518083334193329493287950536108092061379244432813041066212788447777438581349538688958992121714555434667931293481460050783304895286860136685581493151586319883598734742071088525119689279733065847608349858654647174769893370780695682640939666341924533424252731837268518452437728956891720439457999526432161543021116613693029206704151795470377690843851243404589114196955147141534734049871440115964203395214775340970382722045093021731499959367946202200806015721140641085873301301398571313258350707972370416311536323172982034739779183942063547914894257194835112604213897294282037718639329563967003086486898748898665339682913875976467047862400588475159678682046626514432639624215919735359241061134076674626621153403915921496828074928254831044651994435502221456836525316932237151158164584133178665609667335842207529460863489767254413407629044999429798184180866737398249185826063008849167137565556347423877840071454230641005485791803563983798714384908507229150385178250493160529525404854553074659433449099250425848091837643076572297360312821778648887303042902728538231385000469421160143047851351330152310984464493894100966209419870108339892975220082675959735093637761669071383902474222552695581886319971868928447506525483511096577112741547050966460678223396990601606455328174958585208887546487116720018021897142653075096534283699068440975739274265332879964159013302586581147409202818684570978979057501502620441321419110902226748403324315082663271899187899679206965305239711138022536441664087663540486516901975535194431554364730285949100254096679479415759782917391832932410360342823047942299490510380590245252265917848145215334234143316803344534341830560554995625234019416430876982343488056719031059491557882264147769242109765665604013277152962968332695632191558549226473999368947606545564067221655667695553676279024639836807765378453577501417390258058684812367615881164807363604767981182824977286761829409904978357004389724650135502438027642970425027472338018189536755038465262141589526535141124225945301472453662472365179897536764303877317395325069034707127312251603928903292575968940090327623390278632357612006857145462358939408080662542226568865589815641406634176553622291935188135233158166646306293847660590886388073752411319844546530981436876320676846261773585392613037767350638476071124733952128306863602982212674399885263484067749464876247029719966387483040495176945228824928306919272171021933395048116993093868107003309616676741736234500112360875009173694761829786675940947350624518383417301419630620861010732644978565554528939878628497196141888737543629555396170473282569631029109489000379229533589196214991568683426664734401275700737235128176847347952259428041021286025745173880210711702776188847171306098748319373526732111248393971412961506376593580171660795304381456156245820369075109338059401417864141381774730064546395797522648978302369890073631000634558472125297415593696038926018093801603865202473821837285058658912361184727455748509225230409464830005130059545979592851678052338132258671730043725152927905339426096409381072002258503954153039788176943848898787903211317476065195994644521467386807311715166910162471660912085641372377190742157587787803523828534283426339859322030012545929617027651222199828340506354004278474409905367149705227414085231850442948492431849887725770317833294299452558097758690648051661103995855909402765219873177281118091629960497732621888931436860983888271128097793985058511422470136781996157089680774656965783771665319172353340264790756342516854303813936856697861509453240299194675703117857057993010742759715468788772746449452094244025624717341119194691748558412397050547231260240409628111527122281498966370144228100004728647198400344429326232917833632672813520180826667342926304924023899463997325238915964631875651803711989408484978335714654348205578221172983032931518097223043443162993569196441900371667664919578318354430834969585874689335324636692746743963936236362799085568999879545830937627206664732446127846895050402123758565650727216518687741150710922205108325299576343689441694912911249159296366121304173526046042197131350573763664139809283762487086810480908370633817465953133649280771643898233305770501200274482241302905425768498691451064572446155804665562715197277108805602225164264745255652394392160773870879891444709327732686349275928838643372590881369581915935577158598303679463589272006745443926760374395440716571347237564455076726817227305585955656784443214948178794158417150060462131883754286987371343485706667157696685453514772880122397183447525833848241669256282497743248466549096994553338325493576185218243206419223051265390909642731157757750103100423426384790216089627530776924335086504757250758885475234360026007166322236810815401742951054015961509714290444629258266535704602056651913755540536379550240930558170141161574748720316105393089431959712285781749261016191079407864474001274517108257135019728656588368916875895675799574311858672880930550202108428442799028348887062628671723218662825657093371849681261073173606568885531543760164142203044778326098304720129487490790370610382506676360340653721753589727283868112090182167753706484247513814339804049895224136726576168432751872719605707171948138610059549149594722733551631907623762851327699002251071615668047643259044902842350983390457563815094577663574290645178080572193011595888284158007536775688145667423267810711159344292289041597987680113597463609064388754215795945305361661229623875746207006440883523294890222919648283750367391471279391129409393852387211490091425610621150662586258298569069178667741243153420919481056064509529674914462418270985914294523155957858569669821903187817208594422860535405505014547619248360145992917972655781750002891658131767499775453308222098903774385834451464857569802493597550291077540062712060703393750836840604559312384701732745512673731645145755290617563736320969871772349001008286307150712536600403809049114064326712111517370429417798250732563340510720606089182959060284549197458933577449886982594084775241499875332439396793414812122225652665184723471738343156374296977790515325898380157860825732465674888414657611084110012750437046000545650456641424227563222716746682566030833585086653085196710033510483866557253709089274026657197651135450256459757450801476760469558075961253215727647934850570043195411884296384399638411071543452194947763092060694904202833448738600239117048510361860369059057254295272514240831424613712258059996524880866322169621053998617829490154832173094683858207154917113746391655847103560099322070478818492124072318145454425103633430525119661260755679645163405518110877591595180337782929336594913802139106749489907179930510680636197592143452276426796393609205417946873718072770246511071268648774644978498750009148549418069592818836886881020780516940365464600996265614844920245305592172899042849659721505681181601796310292633460651590206686926387583753109595921035731271944124969417309806692063469781559920874358911471508098038239510856400831114285392023834283959175281624188361210493588952092617828130034788363119609458860992631192929225489511179404705725311239212469893139417282373785209075783594318762301187323308554132716298678756342897154082040794056583423871973869258080650268372460121448214779437422014247351575628747815033817162580655806824959641637114533110077204403426007886365904173399297001927026374909554908736397409394881656085170826574544882700354315008837740111585324865085279580409268513930929085647447051980467923859176875048404251183927569729784314423320277066041771897681167468981445113496340299349361367371034069314802496904993367989742826855684039346902508534103165249216507542294585027084089703933067250411534785971617836962005937058569761702388911753205335862484700838516933956412518794720317635161973643484118513500406351180316095486984933566976899114443513145249984846771941850463947283509021806521045699818140112013033153555615596803051083652514310861818100696251252791278010018411750884642872163027771232023233934544991213430070232320734062879358304969007267361863158163727649429530102770520032742185643121519010930022098666068478783938637793618487097901462844139065580497422651136675782414051043184761867981335733999291018523585475996172395093244189303598229093022315312759394223123868289013897413057092540251428613454933694587078718957478005965666717664022924116467628089177670332229476882086436104150170926562823326085946409649459260158521341107841624870937174841259894552561803714803964143204313675410720440739931630728084340615641447571621265135955563477476407935858192892498444896052925654541345049289324921203767755064470504226467873359545089477940434231528897056487017544170533714532544208874317119299843874399598897921690149595913215257626721318500844411361029289510839508652976392816462081692784475217732988217749992377750925459960771453301233669366694797584717071641028693523638428651063121377320229244848160829547031946574453129440374011938873230787920520630491669390789509580094140836922447041821460154052412063498239189542359865329197132927339427012066568048530536369461972614978934018158461175135848431436769957683245728550666646922334455295134929055874716936684468639230463979313604705294576402864709974577897475064660373609531335925424686576267502299031679461164302409793553798091294594526644126734518059544547865549755781179887971431896122472707995922793820439539245085152629867134394886551011267176141666615703238955696440510018837474082875715949042520597131553275984287298055892321467322796618063793135236552554056234244816190187422554652536641314487963446005652989622491695125093060562584836445192998364745217196600745782361832491736878436183994334384440444718052519502054216528878618488173755340797262763858694574448130615713866779997115172634622709210014255643625716559235966632270470749420730632300933030664900768380843278481327114020485654541507457544051329921360935849094591875915273695205240193607545658794951349696217032253890313507452943211130946270373987004812983372702900985611255800791209949635779976979168614761439314255473838746635290018097688371211274988140753317898149377634321696556460518542865229600578361528346213029477211130333672898799172977680596863663074962679714093342678783950784812251569149560477897048580088153978120124160503880798935399676673233173868961079699673167551472414613860139495105783077877473358454875937845629794510439703930099430079686273506224010727212959490879519154651419562885701598110408120934690618021429626200461933952506363982079740048255599812833332238753977759549920113380618355270976633445644316074770952859413448145424703675135488660612749180835982919694204169933996682815516849178181283502904923272700044621506308497823979555835460879998595829002545590751873826118768204278922198680207472564616710477020245383486971933066562052634976069052050546975072968410095412609820017562335931481659332365539030850551013893708264464644649925947434374477495976606114239884614814421300135268598596723783577736664525048742083425545873482522018777497875362222904140793273019383213172093103584433813983340275162321834102522624266823538223276469766806981312374254969315861094535049212758508955847533221507034608446589951953704403427054372526136351721060449225104632791120777504257551447627740064767598618488908800246818826789551153291447402004851789612060702232761976469880602579244702651214616962363881412080695837601968428987754438610450599208640611725374574546612334918384843905389255868209209138284570572534943499149029621058136013658407287137903158444228566399401388714764058292507635068263556350722588502132164553911153382697467412250869262227482829122265641183579621917349254170097492159845790402846433750584450794792015466788803757357182730985434385139446814854964566193084548212329526723066415710190113586165015622783640258199715076626541266516735187559036067012292198027974308207251915445167589486695990935031722577666930132356061027276138812561146970844187400213284540327135175339619898955121411650923151543170118216785699370770006860268551889306572502622416592933958857655649976903388602408991985800573733318890027507625768795561282485592491338796119214714592343706410653219826063009780037292959037284057649159675960311030149409509076121295770799783569654599222030201287950283520309963172346025945768769614544633155231819552863258466161437741688107671310207974921920215812081333006198864400822923646156754480790162992708862819818383316120891628596030969769575906655643583082368869835514283950129033723198531534414339790708687551740998342007612210025661536501524968294273721805355883493290418410458975841011557048771247570236605061438032023942145196238961644000348825118207821873594809102596067744705427725677374494972858013454023661069749632322180583570086922584795491037112198418278421645927205623364419485564343485208310530947524823181702126922450111777846727551537415867925554161921703709538887888118875108069218321621891151926973953765545452541160073739147478991867520863089023715850918337392717975135055256386364208581245870689168246495831478878222845945857872658119037477788887472126511261519827584132065819137293303367252310071069888960823157388098994024757874256143124801273348446686441557603894095798486129238505270489492864396983413305336610860134601405449242593293088512658456899664589114224130040972970844779782825481236052216280221334688714013128032316752245073255350288453913706157339596430509796699786404391855414852738222359358851038225794040627511822297739603452577551859177715120360773668192862491301223893890514485052349529301898039320736270365737313628282106256980882736128916748998635253520797425885519016298411937641444897530892301848659418937179485393693474493318509355411895163978187165199953938933404869491313086100753975637919329040107301114111816329104202403458419640251758107983153033120138386187565585131300598517063809842370281855118877314233239103585112061328834435565382466886277461729565949075844738489295036706805364799937246928651906757777276786358312781100787916691247755926691938537838917611452883162120035714693289028281022141757817845903240562556729704248846396137597953658133708582232290471433191820306420349911195659189426794055453598136246251027794623787259433526323178996320284579438919069400657054014725701113022709923252618428957967264080977901553277496042509648965648772137361717746257795226723262445347898833534401177230989213744508844796667291469022873449436792620783347299520959738752193098793454166939850808339342620049086365367232371765884324577993369119141866343367087334078714968211404339179443312731262190654705572689863831505580741680194572394230254794797619710315574193540467241066158784198322421442785360600911791107239416003728557152392831221688930401795990501741494937503939970167998406499479802829839491695260436017792821114724976627611246903000389919070866380737697135766408955812797479993493344934198240293894675872172498619447129014652535597987815924221027900683208573952044621135464651025404405698388912785964079119486644932848313522168449636236985421452480473837997272762955817924706204498899932814262012010587264452038122151405754114760223191390610418126433146714512820330564791168847638279069526858879274172754482124208145711337048005113945108955820875448247450967090373401070860820873250056666695199030420059745000844876102645249429193173323670728947303530906439586256973549509005871543184161019253003412397034893630207777178950822795702758603364402769604800402741835201659926193415449242907297241340830253765739166231663532635349845171524294888822596318616233192555922739312263592374610708470263422218721486834711395115481328649969203224526425280499908917628177458586542623791436606992299054662922563176424306482509106344048688833541850147340995402830414057840464603744600842286744955177810337097808704935594878789646218810680929520562308838159915591626098419960827453695387308617272471593821023410854639228905954980029601650377982066277284658548796569894596440577094831604475423216573342037571348568876888662999539916555135681949922455208353804661797761521637079366101237452522044947291787675961200020798828267895696595173939779523145913320015302917409802331692355194230513728810518854897075220489590726700646719833522346360833795968934329468123766440881198322096713690316479571900087446767763253199254435609145471972681292426309249338531753030602282590407899372509725030725878712778311416125925890632804362167846680060518141558004086504612914032250928005135623273755556318515560555892435848105129919337813895525462817586610047648565509257445037297783576393677064596986039887825179846721115022208736787880314253721590108760613765210825544751409571472137015354704337040598392142164399619289980815071389440406060100691517974146470529236508809874095395593517085258340444737441068323732256061735406186332519963934192158982076424846545999370187496417201118449881309385562641538842901362518883406486124953025947861539838014612768334492833184840175302165890516245961121143845802352874460458665682823255391422864080111936351059243272129961756509459479245426478339080601297688865679404423655995737161915505678854120708071342182822292054012123083772450958089117951356516569189235530210102077960540303946132919661707787148043225241189716094518812220919892548039342070219592507889263601527923907029460231003184825336088790522968347935633344616965746542379725364027465255527777910810672756155055760559981194304502289961834400084644408608216144121442562947835185732043050432141767185855377843501403855890907018455855894778031137433665602765508158770602183376769605111502860164433145696064816705843059553515094070301102606315567871392172392941888370711990942441285108017322404399104851270117932510492314979729013459881348256131817692136049593519599294400557791339478782266987470830609801984381340075538950717785541689419104277701998283774503879886066253081676039166354394518742232655380141710439557309953890409368767681379605396215715257227183625554421974947743876055273407109339041547489862279503419242560066659205748620492807479519732194121436250084928479002329809980438165458757441929764913069027464203544535477014209767970876856976246668761555052361499638345278969325428263710405762248229744199970370025096632928087781206735692001575454732856711058171942995229582019909575800978480022736669879422260205850480843952605726504795304926442531673021124351333695347778328909705389483172489410196387019272254051977330859935531939806490404981654691783969233565579904814748518112314590039085369571916791367625033477275020901299570291300314951702591824199647631875838999504290627203728274439945912597644905714473654482235267985097489506988290236010603605414456668885991428688138746224147937413545237194834256152577876551545119004395123243373886502836579216690013596809422330358666512408464702934236856813171585097231621845465592987125181571677418655994943448075733702848669682285347252617032177132698072286601746551793549880400300197599883623984996980612216072366327205912224732542276011369436855126450836045255396479609822358363594201565420848236690958949193261275521320640712742419907849449580374562501817327649684076286696463990050883312629654947025931599087701364973029204164562730055517967705866852965587234738601303107929940895369201438412581278436371864451918306390659255337390580746497694719175829175133273397600120217395243974931553558399953819423938423358270895334493550844062924794089653538182059731326004533203656791811755871982140229469871272819803447530329127124317536207960025536027331062909133832278568891010586365893519005120354181970527162134245481611794221957347676230755952623253643758946490538663610803106748280457262317107633214070277991608101034130098243070281138781910403933901230267518890601023158197198144899422566805785406177381430291400264607229956092368525139000088928953239358354750533974550428303932446541816191080926633319457489424575373550108957264163458052193162379699550737513893778277582981156220612578318006821915227875065849966158822642283134611441254910878986775576352371048422407133284245060212733301539518975819022905289549259887392436999395763035421130465085267856770974049110948739782659756601183867748070844559390680630213086412975287108376933506768841906922893562117773289737165130773627855187748068887330542311795429488407175571548185873646192253282489382214241408382955275107366573942036229239971862200110626621241582780885016623940775042510599272654622322718855524820437515561591777056245822102883503816652477897274877564546007650464493139693913553350578083079978148934911026392483722684263636649498037503670316166295219069089009192533652097961112348940235306968765172533379321441762853839337795690597002463336928415212615279450978637967138784690156302351187642500199199196510696005455339203556956371731342417456282968778388761219918315178254308962472342661545932224046516454591315847018375608560885555339826460251363404278273443331647100647668359715436243652810943314298025971640118946191827194060925032241719315267153572963357106622657491885385990050084742805192064622628111946262948508186161929763886671553345339460683073127666432280440193719608996380365384635661429110933033443857210080602356809159556901031258148876227758722410190973309189242940721315486230120334646085118335588618335516731544201281962000042686646472918065469471349227236820672231433163563308489692256599975002768268665111772018576590707693503073150881797314341053058962599991009273159096084738631486244239916583364044740619199657886206702790582090360512397346849807389081617821867685456583771508259774616161709820585844279133654289261522545911885901575039570743563123001029104076897989343286065310088553871174777343289728976452922090102881760854206679264367603545495565524774765685043390589088520181798429481009411435505266610476519228336042300538990008411010861380200650668857835558535056927759294928440880697353362413382771429698982191579041389805415376958873742536809192631379772745870074318409754471973630156688944080509798690338219076102304853755274506039107425774067941950728925199630499388624036330868730816954834615901947750900881501493596148157846486851210263023294002344389269449072628429956308988258898889728183403837862618832718674583784724578835816555442112248554471548806190316722027226658129875197095441552046332710415855223268524172754219924878424495789492962148200727341064871902641681879083009385606404352400592157586970306892742807282468754272778703960148834903273534954882536728365467931877929138418060055297163909437399756147283790966608370011141007576351345766395226676307450916129248962715589677658502145795551104944159570642386637730341969361005278606271464400133062041770942598263896918743657477108661693886096259357534988791104307418024936469841248138913353995665528254590474935568707454220244297333383870974748607015825405679860651947501426420686536531527485743741092011646450726598839774125936389798782490819954576902871879405998606743304138550964621401147023797308498461680331463717241647740791304815973307504428364059014908598629157849287646152266762449418989696829189704330948673127069279182677753551434974935739617717825633173307568473737461709782578379326069592278236194268307077949086987708995831869169925560848615694295999051917852816890062961179714622422949448442189329734502271833751645448867504279087470977590465870753516044087804593721792503735635757582022847974446447908133782897203311520103969699563683005561950840063527078851456355944818871772700753793384064892112664617951645446848446451237664468284101189971170054891015421097360787041160580672315149810142128226172218618270159335425755813396859056393406148303531183363787082796082104228710171644515765105023202584831688234167509071233469830769710884727122566556613411307638621976233108240096840400579560602450698740095789572747081782426896208234344661809263753345926790886910683071560251151464024918738754013738508480167770948175493286194440218270686677535730854016778011891697923367115047823395549671320938877025566443939396299673280886104135969537722990607248952840732187777011101483941459950472826995995921533386343663668291982725068431191430988688721577387728064846047181931928019746944959117587089091352735569746679435943410096450640307910450083492267620805123237096227117114185089072820410991163819667494894627211222513008661756187086122762012997587051211125465901405086920036610925749386524433083720271502768759623913163663902796205410650662461945070625249004715789894183164261930537407332555783212090941982793227066304317456153563103358104408697519360894780390021381243315993215783643045595889750241360822579018902344801901857859232436871138653818225349964365176648755862034312654665422528326313912554047484905700997480726670666727543947373955927847960444159642560873374825173353315745008154836763935123920081806379935710246071175918895858390148974373761655641888735369284530214343919007239921986744123845370003913880082949248910843717999536210014717620654320050844758926019021827776916851845756384542246284123743723507766329326159727741197566450674517883706688027603068199102278476735371183818283716928466997390922440804217123373135362988672091486573058199006481898133135255745403807417128790041219047517449980481435112500669089924359017575027782173865533169478164494669982968626430446128777815549980798664486007487213856541097768343785805386981384370711234414634707607601671768322437269916118951271483672515334356705207346914324748260419774323167464504802135647632429705486762188612840329783407819690228353419355032134286898378863659585792533125980742509538224677404372763939370802167357656020176022552604723339080171372981261610111215464564404190615744127024880850897978613123776111908948351061934474357473180542691372588566729314280713283852718175606318003418436280385617802196546493156239532478975019492229206519699913585801711563861107254782282686100780088252915997536309692194116357874496307126302938109923551634462291399271714380161184214201330474340692900516879578023232272551970138406263706576850138974167633410242416149522706448934402201639286089811161693026837304155841958018820719296918925007030252254678777228651259666837571716619654111058646073661245141402354699351543167711855788990697132607924575441976844322401652405160244170122848369740158639731497967687278312153859366087912342504241389512266253759324396410130319990459398147496363506055843924054573285073924392073878043650570534230468032180017080605900822461263724328188123249011516457877030103389938681983113724749077908483175872781301330778984109484990323531432102073348192215458885952001574022654758909272801875172164808095383921663326966024709983366095934250684342930389004774595940250397371572537125722758529830002354748909032642532634771841581033064034541160288248161057910186742105584077826688438647945679724605895628478388412710509677132778513449813506032762156939360826421772864785565438782500773331938715068495149050705872117683018938448793188198261386399020378008748631367109115955560716479755064246284836403387957340824083758595672772379927621876309994822349287800068833304789367825193579943758939391136831696588209283393656755421795670702555893697299674572832308682336270722772445470050826399099709838094863093695253136387742594086157015073390917790231503380208930733303540037147641415443917969523952332916187457473450827365774974320959826082425512154805326940351821497735923797550834293871391805129896684654736026482625124476148726063659404767386960823957459958322234667629590725489950823757365036682033982967668413056021393668345989584831931930371433460880816036655557968545144553882331619549849761262846685979188347198021391907610759981147028349051048324417957450461976560687806328221630846518404837981440358126594665318083196439384797336905341487513110202721378205988911693812052099478672793799341539027712096074416577855030478400103430499022038754396703169573350363179782246924266109488728292818621603646605626469614643988643885722703125342322137432387372687280701460682908280926462453219614449422150595584928184548108007147445282881649718570444693781867880585522000657686755504367515124570439922993490273562749049668953981610727072597119634227586037315165180481760730091918824171057830858825262105882767656831766737261250185640375046502500971132806190865395102696180375817976059868344599793664147319428149827551341640548763290316183975897580932261586109193478392407973587233709622358101435982542637920600727602017869864755684841786518889054273446016055742389705065609430481355315473726727142314936031507444201253976664909384643368979298300021945150598435522900848088402885306262914801742703941438766139963908963233792397790010515137860408431220957783021368440492034209630159201677850518273000268272036540116994752812928870793978092041013717510613953062136231556417753558866122271340730027943629964522673351482548009668508157559469874877532324409307991635418468202706746176983032220352856706571919125961240421118548688034567954522475289685134835436995333466808389539084860864101640187961735094558644978596976366665989319326312238710205372882678832507839045141872189141341369788229412334420016157324137923055102133940500906648078194255901531817101722744589230799242664201473536918839177186509721645763404308728676663891100789811615900646261690471358942741256894060669351554307304989811179923943292122885903012372046574067340853308323109849794708756562466971066089719585081032111075222889514240779053246851409629479815319957655483706434716376186967622937205342092745068332916116004613495312900808668241088947658414925403568227829917236128419692182696341746580635373250110353990050753476789326248247227140314851797798433948561122471267071481617065977235042869770729968751002396001395338719692544188380178354516360045008136339787420992592331597733744258476576842659158448569588325283282365717717975763128904026839885779102550452025196056028645840966307010823599762084252490891674822875589781611078476962858833306158116764635149105280090166728595881985939564227915169610212583073586487218046306524588555326945344717287084437389616591078388760882196920043538518779780682219544416837197859096250909660363382079468985707932732427117456244742701563148005122446534903093389667576390790706649612211269857127311537929669426049904514976972222789741859519604062735763921358767743610803319012497186598322472660121103529863915309749043804406263914927497523676585975949183153307900679443859735435968055298711660692158781971801639492967168538676443124584972217587025088490928538697366253878423618606239498826445902050293505003168190306606317263955354230287974083185937973674581569161818781207991423610470977468531729345875211786262382691744590057038794600119259753995606052716969131371177492043877566138425079185749581798966275970904607953956611052631555839036123286089264141341991362763491008760271800435810669603352776076942259889047486547239028191097409433310849157415073006909541506968134894643732052515243491181027275044168569993008588420616133836016704336061203930639759316065760003898919543724802035313853125274462805259665538817628333224660292832526780031473381137708221260586048462955361759859814897247858647044190317989354372132752717068203597478218656209831240187643465812625636138086943150295031533414901510655866361803807134815600363792328456095070503554160324446719106872160463298902859005352570542079077227438290291905265808697206171678864859785578629520582434715710483744089531001413227131915470706616300428033623752724145191420002661801083823715303961053768038672217176800648342516028090632791740076098716153074493788856724802830623936608677457549286214901173878084493785663363199915340591887610967324292747525114682136878616136156383561218557797458197710794298625333068550609959672014240457729316880522033473802879793210369159533480938350066615796129928770481061081438794910466974904964939610970573018392163400334439670457440758018665387849414254873715904212854731429750913906057957462962444636381297426225779196762567030527488786656226777172219187260720621897944891586367810506661759474674989098784690270827660715217985319896277928709141402347910119250844131853570085081372168334851635920261271416239306341997176168740167027922935713635271770006564419547574288134565972914265129167711941197887938458348348966458698725802055522064129783503644150607179281600156632352959534334998015905965793237892873977695540361512603612207469226734029165808679369559418733273771628414763157393013034441348358189823685328725367977617643863100581507754601675389403489295215728897585265614485514032428903256744556302074709668625986285128366224503674713996722803860975468101698310784145323989316301044081452050698568801051819766004596497919913165129818092429148747418887002756589418975303670391918157694286597527709817856845613613774339535012837722069292960837403929616098044212534607049629940352225218303891802201261843009495354074018482348347595448044122518249790025082917596400864370599726012717842186279310497806149181108887253138760087059971308129984309879796301222999639047658642389670830489731296176346136728615369205153593589766183198010610830004739464328560069097389749959460001972067863705585513823322055884812404413336934291001550370550199253953231176301017879413217712565568883966414288553183819464658253151884313002817667582239429191722396270915024603082364924177238672915520820708955699394853790087012046974590487776454030807795749426895469504172317494716829117263848702967938772853570159991889917530872787822938946758521895269813758886158362259830260505289385937195575834735624740706210628703954060493929298507410192778994088331922354559842133954344467440928733354767019839823275723778060128092376486989223855868338358832567384350572068166663424196494947750778988330969484226071131435688467210865949165413281871632988712514549172392422316035966159277415082717479436618105308423533952947738965159653020603868349293804382842292436374302626901528907284012758787625707371891560361909605495291752255155159926561259857314423828606749793472246030867278337378189563710957512722370674583921873351143478059152404173930861494136329106830939435775159010757518474766267874810287057108236596788277983239649974746042623054326902165918837932349919243858470411082267821640544220569595778417552471797588333398149713869098640334422699361146375413465355267534469728347183437145328379837021954770673192742348300623746699592167739065233765578566178838118209617267398721892086058694654722850635870117256305980457537762685243924410285843526851813063261424897227072596208533437678055337479234619689761812883371896962482900246667669046075014348605241581209269778490483699538246491883550239967018236908116839352748548258562277917686508278660854383886199338436139578029695490006016974532525732891287710268578487521242268669821164373739561667202503173458319206139267141777069273035517128052519825531228986945321053646253540807709784825783696488720703776042196900956497080315367039749672858306919220642347887534623238406147590820962370475118368340332206950355758172032096991334507163213857728269345933547207265087229942939262095847262384766505101486168234199871784572730354622669579058525460805474905537490988855506874393683234603930475164000877544142830173015711003216573362503352235700457908509332041651687521767753581987057253302200454768133061679533198715845217800519810965914229319605119595673655623674406091230438940483690619972523398178976049076179037474513545365198956056666476946481036753799265614405817230074864956209633841271378373032976185117131805719789411657796454535060725801844457922548690574791236617434178726097364057893761947700464277448479989990319714648198871275136446402755680714730231340083786196175118886832835599224961805912457625404230192463841895046253602422649326716121111228069341577712824950500161328539861017721831665866947481922844013896214240435481584018434130662256517786228939127863306780511062941154998773572798066405117272708439424055769363963457346701805645184142875396851427432895337164712650427752555842933795443529146778165466784077767828041312531805018603230980328869067325089458317478955442191370578611099316933254729925780357631127318236761781838454729961375582343384491739519980879129064751722408218099511253169115973240598498111085654266724185352750367370568453322181134212661248656715192822752082391922500886087483347395367412026965886597088517010320760740165224803959877336484730828644728607748004248329002915606474121998344974535447159162072004283897084514878954366588517985555772331319162283903968378380803320574360513462664882162293495599039753371162949863367220371640013144278469628615079181167026547041563190025336769986429803170880836993423412366315491248724650265980051143972696196573120515495667520278097643869080817100112786442745688621663163672360356993402349695678890262797915818270201488246725932323832663796043206347834284314019516668140205881035103002751084336451524441117641308682059499010026907047522216672577780745413506788958773259590718468327480023265193395424187194026773446635129908228571387558650871050820695319824077360664431016510032375334406637260159532304719750576246544045045981389648989322635162098735630914019453665390374434023848186943898585757674085292851736314162713551173815497646629379748139405977942165030574151525784483911240153830988553806553183416695616782203454205179333244162154482291309411077991548193914536985740852024625630920555553244495614589365712488943860215435514325934333680763971462778611001612699332933294780728276115643731080906265933160879888976603770959847506145188337814184118009568582262838128625999168224393181350999900342547984917573979298935087022359260490478282862770100038737765436952933393018005713631624818513656125309603414099533364455891472509712494844325801330747283385746643201413381025854987554549609361911816757252711594161715665736578824878398349174635201983424274135904774359997428422680274016650131618730491925544703911487114566396536826769848577682847243365345223238390867862776476275351214064155768185047751265424931884547124008842345243647851237846676852696286384917914262757094916635723288507117410630614766026529949609174524029998619044543656708076750405084720581570305506832426707334418947022400184275749831966892186044256314439530827383532353374967131853524836697945496803661574274262427021901892439938586024698433938925134814439453084339752282493549134224431051085668177372721828081126661703892241685964872058454407980981157793087866407931066229447377666617355404195376719470414658982009650461589818034468216512384959377348862545810509015777560157125248139079828687230604059006242072030773751547454235630721335679654853074465024304834884096317447485412776073994229705973607181393636471163991415815456544615140704380505591092690995110465216852287590903047570062585707194855892164784421739487036510808388133515514357919386198554498321880836994486801469634274879020338254704494429763498224870056714017598072141155639532007164187122192420379595454658149562139649460316137930929805155888525432017500240627142978660341475149189564741340470363296712685851794989949018693202191359895711408590656435339059007051957741461135515875438125455910719753879422472060718449963270767705743692107648354423122146554263662945062765906469500264575025270498220405647801102453135460902838761234707136159247808702946679723971653170120884649801379533315828868076928716804712413114241865940630269079903161897157491303800385847594232735958245512947411458359518433840555363730016189218102953436729249939578066887062669359139481398840407249132147899624596642884394368607074532279674664218225604982622824769471756843621555112134681496768308546960113492938697746803346360803460064245540938324114793313186344675309121756551628320288293070149880369718804344936644868606244125755206081979877498633633172419785014052642355370255007808560800911249283558558898148358635963633827733475428489986988828786620765035085111828744555188870637108246223095278062648175521382529577450761886497117178115919415731015109983231276290708753750917405837860439793545844083600567279176904533433028405614077032450273739735962964713810131979981188702111032045321989998561137686281821239470504784752310640498752949434929426995987122113066203419328348081626774902132698336276236134924188686741311249546416820153431981296147172595176584024791642630680139830585546707802062465635921435496469843274316837003322517643400551474899088642440088618550673269548591329745969544132270617139680612687109663447317296470420118393814216532355150696792489844906773302683294849151245281584634228343428097077399556585826206771510627048122451024747979786092742730403567333607825469583824763754061823420422450118683769119731535230411364389308687489320724079636055555864512878592086174298472561323204443917721412333364107498165412188542491437124118496789302544734501054059901942148589790984079123833928340662918392421379779415342571115622755803540751600191051646853967066262146578185948720127638855887994746892646807136722090778291277049301550508497944422972010549467411671541077797437431833147889406240334418072174902392881042993156160168114735801857752633494228170370096993359098027210309136107270325464208485434722647256678413368498669194976595455849685311164277019066170566096419871397824199570603471826412382179994610847346604870409230856876832210067909753976118111290559800849321143091608004189451915039984570706252900334633063562213848225726603047207880370189492539580997066055538178634934892174588487145786185098179654216277402854698888481520252599749522898550866633641455554491091489939274650592712719210026045802224039940364803758613190106568567728141255781409989131615928904645915572675872761387248749200011944723577558367267730904735229937575244843301806561962986581970495193045916006494509463409081982476013294602264350284091024132358935923510207016641910914487634208823588658077071083207892224570060229029748875507520883235282389821850776598141872800076400638961091153326853831969417022725351259603662361495172160531860099225802166056409462943830675257234521176927885728866240675845582623040654355865524734828363734136675217774046362101400737472901181553523208050921804515009750521430726645381996614401323557715078670045426349885092296984107108594826195183400198623053240334039608996021991500409901695951655863828924266032656619647047376599451535754359182372462668584268002628679398577569698791723894000040788541723880016244177552196710446862459387404015491263157080900850134724804353440365229850860601784553911246543164435275098113478974908789900517203239346908719978958850118931667945460000111413313151580706410252015258490197474527539691878662699629239481778339030135878590898583379763937067903644105135315938037371671697557917525179504940980070402274640432748638518471265221330050788373508434423836988124345156991074781055079777521988048576848894545528483826599334104876997157898725773257876636840602927151305603111778658114787600139030770720733414827979198846569110399011174632635179465853938974369600319348596244890035837469522520792300982599214047989806156373469302020360946462037863395645569988866827567157855201820010111338392392252773146933994690009632048506184908687863512517299434766126548261734867560745489722557281544141959411964425504727193240235089092660013688074193229176948159413907648236549465592043300329619374452430777380638200672929123150185766190921712108230438445241905264717206721305885133599692603297745465011675825420963184334961567580462302276594940727787039160553629377095955465518378228679657005391541255641379874015627946557017291963651905293134471960970315722308728646971861800339547311751857859848079825625852379092250870832366644858727711640450149524653805744459218666356367536070072852396163381051629737652775466740043335580988780941856311121450902461832992197445692561455750833952929485182377374377152309402285587163397051788978452763946545808709359007933284126914982787610902683281784067984081621442425583704821656653235106679318998098334930331078796685146731411944059249642298506101736840152190235030754205170914675293548227514195855946790081915592083205966986837514836046892736988358865667321234219233886378320084955618977802488117735944095872915633143568726642228359153933843330384002970875381442346034276113549638877105378861768165224894485136006919348817730207955591731829028121078927877927255247640584799954897186477441663889987674438158382939748469717401502312641995189960060491462687692683453103975740264817128083519575831652104539878935167109194097347686558900648790037386823771623047056917651180529181938344324784542360158782249623756890880297781733963377376018838422652183168814789092658499888851796523345851338458607396965133580538579260858830108344133919338987201912985241801832659138242224476123327973669565641091709771456110074004041086902214229744951732127589036684511167459346153981620290783590630014517794834230857642351527089715842393290528193029991996503036162157499978202729784523251656011474099802490912677044177906215379987938182599206364921469923775174854302778023684256267630946669936754339135814491327549475624844738335026755877128293505574332398663339068046165316944418035408665979318864059711767166953595010943193630350885451244253249375430176041517031539045267763409738483836536303331626002428831409317692930801120320629674642585971627205825400310885411024899156103820377547834171744749175555763842504487724453060844642036631018285618335194288011760434455504460192249362586862918270137569173049026075315940201868418800142432405684177449901179569750399164118020396654470789570353701972534065426857272382297513004970300345398525984592195724287430868301691956491248796979029308569080185486628788754783147413006958639545654198634316629969521062031481438508167426513791197924717109719430591769779299752874582557190150964779851818053453520234593369575169633289006533145197770865263258737536722381011181973213408373426960700311550456603341604436886997783977035034484588262828751416515906305116465383694145544850414353840462733506643288449537620825404114150518642647767939823168617231251273624507440944096621335604561159504790361150983720717976831812539426661901080365240209971269382832370584031161771187706420548572416873593077373022435884004655705103849854363376789166075834614005599448664087278445401324613493300768376283297185433171196519790462732484414488339171768430454823838058334688606358482576547365240358960373043047712897788981041363946384319998142532568915959797122314371674653137753015414714827473047218993889026237095521129747302946165860599369133713527892432806101864479939952209761041872100237950081072954473522461275674276512608725577980588858953294292438750874067637425010004127209801543263659591649187968857360905124471861452072057019172668535783553579985316776659640531080794447128384363764216463891036184068091649220105160834356846137381910922046785067772350721897242994711580899830678946354271323411314656913498613261723635756224116281037663013492285105980687117555703211242117690479764831309996799350103277599511334333433249580164050585956058546921461875659937976573850986665310468713319678794514032704447335642967952713360855896323453291943019547353030908890294782648224917048599084782878011759947952979130650578966896461825607411593971392583319443404429484710482487997476321579173739128149333296583859374363126272217041943453856482121291538245645154973259234518139839723470445575653347566668266729243583170597584423064161074729725212109534971816151526362042325443414386286231807420896763892452627329453375003559767522560121652280587657760699909122874527243083991569711881727592095851429760993581401915983033466931048574294820966169816760006416300939558050285647247212449333942234243282010580040786424329560713971508909242206311246725568860671216693829232833537631489610073812764635332468828902515007049757313356635733862647946007981382659230843971935954706542078349020139579779168972184943515245989258925329753204994340734139617898094130428172692174817228841599135925556601661906812347006381485224553757785478590696857049691729037172597015667051851517273206823924489184185121640442265514426567896219037870046971754587900157417330361099391382474223777984160661023839945132153950408642469508359785354207462689601894060587479338918808211521445608472226470505067451833401159168302757578995050797911464837179865814167969649921529849917299256607492966649340337436854025894899141333204841350032269987753987724993695583418916249775084954399593569681891587686173271588549620393850583553034771616979733034615077314521047125302414833060343506423430341779935392747538258433429484264804405427570466436200732029312904336645545292479068721036273069748817878812079079270572281529842916669786332371397591816377605766269163004467209253054028140411522828284447433315031572440154357748391323039926179831220313565992639228673787053888097759476367590244996197559664386712021172090087328206822981168158628688773639700682145739409707472473145698126990027265905596268374483707820330805209741117178092378267461272029814112496075223940216744481852074887543160149360141605346751976870913263004573374940541141803263515254291895269139416989094978936771100273453937046699808541439599905758759018761042470427289274788251627954592303386967811407848220410942531510437167641372707775241307074787346998140437307669146001040281786592551799586062975389866801807671999517701926170906614011693632702431078298648941617048759079354405287347730407413572403631682199098727328037170723880939418979997613533797476515936679048286752546600596881463805631339451444627154359726790852807300891528934525977371405926689500619598819894157681589437207712495336747969345811299310749764478949819502999738170213655054850812164673863725223955167205469681335197453138178852175659830886963056278301079337127205596343302024842690728469539632806590963875590313426116286596234828447871794719150216124339841592823460455438514752046300539388204493320141312663394764778822828215734482536438192978541689891754484036892269994093244271663435729473073579000382102078520500287816682390601094668262047765975254512880182031218843894759162366661055934164163491458764673408525040959691696852029944151615972147353298048926777247939345621762133246586180176475361572356057466912885234029922643939302434409811328147424473678080843576466380232879373744003556810238314848221208595628777490065687071130237266956300610776093696231650301566945664681967295772141540796402151040610488276706385695148384338203475946966789389019214411145879281128807058836399979028037463236320694797343964369872862372366988056818464361170716710788093527165883164733973826410875095255489434692655353679916448429727340976253260392813530732075499915323595944953687661778053982443383273165061661688724247123363299935866004141912046818662210658026294480333358269761807123057480096241951046497342001989271226727180188461122341755872478886755065584954265290758584324152377732722426560870207603690852703134686690652324729571118545489587341875331980895673880709778580130676644135258482908203279317161916190910452814853556765267183747106097722032273553557044664587044752679133876712373603810248406026004973874446762354068742195852980041066617718734573343212010967867882335130110575501165622818125497276345758420229306990081234154767833824200901611337089731727577780167256418149825174959018491296437376657671100486509268436300418277031032727939188500440113787044342337791413034028124945535233956714251288173003348909979225568131498126938330944731847163768199801636761457775114434755059216714544267453748312046759514023123387151955173647837744220909693017425409538328574797700162294070876207732841092595976560516923959387633544681564953137257913235705152895397454525228858923636762533226252225155345070392053104561927255461487697272744148627836353780548769384759832594055994357810797256642967013850981579355432465020679847797869884178328137689122380218574697537598168454718793512504795179336914383368059918715690885035768800897324043659846934606838709118613525326998856042715654315065684470874509389590354904183459660171975594924134570260686627186610743298201080581180853394111142937184379572150636276018086465845333492050667231615532670779464217035896499835333518958263898881517002578045547943170228363652015673252472298377855245805653742485657348408869762848096218486101864639787936562585139125410174883187059482465773530827420682553262143755150761399380639657658273827678570666400866269436230969480972946951636178578713902341544288672463635711609051567046550060907665571721237455552180147727979787505591636882078606705593281603288238419070740588562847175180941975321973323604308530355565046898033042037845898769281355440956791729018717532034549748417852358691690237917672763300071668894494090562421925275384362351433213631133980961947369758772834161260171242957961353639950359051818837993590888549776173866800367969721847659515308670036126345107952001368609563970817049279097444956164056121877992602615019776635357012165646525263748375073787979154809093254034444044571301342772661931579326916479745516841437870646989643430345809235218189840729965065689073943678327906330991067045926992898877936207174162724144279607180892321937630534736625766263905547863837669898580582338128298208260243249984487552394983009573048791664422491766482735148711712287533285728856928853773697713475754091831699306750834039624673274804975580327140109149905022262933861450355099436989837052635267193837330215100752716253115872208777420187626816264219622647416122128755302592487503078726054770763935014983805481714419488973453257754265949434234366080548405239746836789284645755982492684281570600459999645630298709945574437154508335553164899631607536261595135931229758357838379700799926416350795870147310981395037691316610858776032337855334859216357055301463988970428846737889849202365930390613786807936547683620684075796305113223376539368765831188448976946288690162628880930303389980960374751340747816267120149898282174354980784222407276204292187637533141856537925409898798858336516966407900936708314502210712097147743875384298059519925209782108879186622466941869455990252818445608748176881209083873623253445576313733407140960142463684810317305601771504977623593900342365868893991237560220689043583010013261950249887743615783515847025684336748287543572335454970267357059161764652762612204546686370555362254693914639725233867206373466796169617433789849131257460805773958352880573706042553832179996537512955003248710764464785114754477129434213413682368678435563835381175584246879295916506190363810280992315563610858483705406635531321099665035575529336957389719443682834053220249950872023911589141343961424480659449629895720704182860524589696162363011142966039939438936811192766464174424898780327565287189006582162259008875079334165820637905040831272833816462003181939343547176493084676024610498028282006101066990212638232316674290376776729422419999562003012093824062796145738903446771149239506719665517102453081883910827420087623808130121969144549025324493101374018599267000328682482979996757498718465437736406344650965484809906307756650959684213686759323175578709152317146336911269734508352413514153424547339531821269061338824816109009632836589883138568174130827617902142294695904460009484056279532671629470968801366011538380049881608636047860672827162733506130555559633508078072640307739626060032853806579936220338930988471593869325876556179642727845231202285875165935974926342453713488449271323187703603694510330387772926042991149696994953902953867018861253867977703611369018053850974077253208244410764336755529655878399605769918027747160217264653941878341144952273655244879281284346179426710722559374536768816406442020724684876086425701001224126627981568527320657190036715770970478674466612340415277583013155015050743276600967044368792968040706052426492226542836630866830682452657142601303749058448515220424569817496430118384038616352856624610519710258617235314798665591366011467463351960265782198982578285514520116550498304440028376162409888194577012211674811838431823968817454091805131511916141108300562456054343914412698943150885210143670975147399155820013897243001634459501352529612723882417636099423216224905666396348929077971957433653099635525033739458831388040652562958487272368823545007111395871124213459779726255850827370883380230836181906601972576744350604666472867894380087821657191402090265592067458879483465900278770527972267433174266619243998752407441693458452840376249764197363840526828609090684488930321743184557080549994435775661365189157869824593990776752903806262066495702205844746087273716633694903850051877465585386581639528765424687875410654895823019670748187136144525716749044032326777556465464363149726310606301168319150473901008599302132139718445996733381563367988200130235318280411903620383744089410241847221529477101527422689702778170670453333841059339438610757473802956589620651064684605653519847439202432315148088682678629248620242902917153804517639370068312516180512121937852903944011950556822877088597790613064482906334694867226029973746884036928873569352805131653843253392740546332081952141163772218283675308255516078823110539875297621783030994748870130510642603545431097385527084054522742174416678035819243698449394934941679041818937814418458779953916403990883817296080043169634317129948927658968803716241174831501710492312763322524319552172687615620329844161866048117677610523376209371152690916237136682345164556576331950612876868612569027061123509412029158011597697082320460929890936839684637112647507270915893999291728990607350652169964516527989423611562916237828602203627229757545452888765637599454496891971336116144845809569037197893845572131532567222654848241648459426464820210182494332351911558301175147940447941574190832193995735611228166569665930800532272642631559583141332218305419549892494870884771392960012065734192191358683743904792925522510922409783453008231725863287413619270510996498344749110158767945730289846218335003621505037367318762796329437100462151008485855326221155126226137441739733455794219336902080656611786302517201313711934830496726518013403750217860992698338392940001310260711228406366735806244791225500533184903670771578925980580662464925746743454195537184266425867285260763889882206880746983726182111592832829764808970434682854939581976149052908417804970427633134885072071107991976879596236866718183917522771285140833831321150501742199840185617156824599091889501467808959170120239527411600807132767215012985903959241272568093457763528442510849544538363438052974610307503039728561325826576121878548177021564167063224439092374261776644296889589066228237842264809345968098936956801010516446568973219974370954668119538777026894595379652764445412335898807552143437604281227920191557172240827697661321566851959537019223420392369376321012362753892266625509852143977642185470096993685694752136232384347427097461018011816524740488287395139191580914154403977501041993166567134588516786510397441840341322744004377478605099538993713309452015931126637011737061346194818669636700113709810703918150911371101386844276413754985440591021364210841955574252252643235715564760873981904034769146886837018894383513643060642523487174251472036304339090800586809336728165674699687806043086806820328248186620602091125481911539922462080927527642363351478824991934360617925701725032498108285557932971926932241354202101272622238652154283782924068303813133815874452096650520333512293488277652308687015205676182819202185238153389491174303110871869746594889495186660131414260289374687795367287033822965498661248006790305258100231407906086994758211368669291764631002475932664199633119026779831511536877411873498173854303014367801417755592494719500194492390529128847823308216627732829624035216827635928469175132765140583191934360255514682627372809193220504839921549621384417263761189172365531373386946090985895858510846447986905061007608952530090803864779382687802046569923842117884362036949380397398066719321338975414392786534099572111363465258995292134770545707206951731155499059155210979077599300879109985003003648114252191549341921721248489418403341129356859879329088938518859245505154117397766058703204079362014652280187082544346534371082949616801231887760435445599705895098170342828795924749746358168298520480016117144303102784249660710987487005327916606788436970477109259216168628365525680231719421210711838578583938272457039583736199879748954794865044272272224532488795594242194636596225684815044377832747856876946446188636038792369803853532285376793164774531984007392719381715435518226873543980339159982118680151659685287590624950874393351976750573148080771863656307258221286849758947246933508325755859908562359494030354612638564842517657008408099941231447277711465006736324316013567049627798050887433371168647452176937641133644796996484634868180785340743011702490375907599083304865724632314856148974279522481565520909271510512393234361704670146164669613497233835057496207547022666381782901639890700720735118429091490196670544267784489471735046111033539372561439443865631198832641478015033170586521814864379180414940288377293348467473371879648249294248202358369105374541565648535145377180629133003256369686609714602945891915802926407926018632495527592430113396853460842343182730680481022423818343618697784152631204014535493659912566461688245596758373471779148119644034227861140022210613827626288396202228359072266493846306247942468898693137087115878412111218994895610787908132820910044528812425194263496316151287018284452982932905282901439694234659085176127743316648698195835913587914543728756297829504097907999257914618531513719411453458367208139669488085577382771074653482420835224142075511371023689658416934697671980161116051597480837558847540372782916371430410002633581852712233948884600013253018656282695623951969756795998890702716247255882001864349374104808766401205614567424183046276582299741436755565966550153267590053539413872241574219666822573991371283930464188726279214330466553353254195476402898562695543296546587883407137706687042460428360728334737322942777428367339302481964059178185872030366585206482839965720340135045253870345484629326901029656831991762847487107355380897012250717857157010899469521940755483792752185443826794414612006894355807470353938382305801971639965957358556259305954473901788097589803739585682582224547136493573002591213762865856517036959029560299468939970469887042501122802080695732264353292919350727023379272496495092886120159960826123686259421195197058529886057143542291227000859655442237161621994836593465369538279505939147892040037994510954665170558941465759379677718183327052523220738588703683927708120370836438296678531210440207336614643146821292359443675389742423247385740394243580996800556340433950014023249661473721721111413088349360270472958051944316191689120320850829291204181932771454475555711402486810552395635102821421453738971038805727800793273717405697893817850893600661691645574663076411607965870493751340528205765775156628858791669784019452446647090879845423032209222128497028755771390070466841437785421978273333634828944797612402819777078718891327383938417720059055498366801029752121950074388301908331746236243881424812810722532437897825457640321408338904779619307384163054432521829334687571718624172476871962337326357176927130667821907507028086204988126819892618583357036074419901228733884656167379546029105256382806203263200050714592273631409948061097322979333132736491011569126725592702383439966895099384998104906984187547944468033211887809414413902208845577584051410373385958550839383700727088836049664095804264566309836386787938847100071853287160728635925146780604847736018202334703899752537803400904963658046202287498954157958958192835980495127659384071769599949655854195373848741652478577809549198479166676142656395878237575731216923983738593143975247866376688518650878179539537577817164469235468526074564845128809985136213801875559757682464282006518790066177244557216023429230791222045724635179476606913751986711599153340473556631561844376351801007782089595171264806852431984654743901661557568492388121086603837002690999316039689084248776330563304800250564398926655882379566520930483456938499477722770811661263587870284745954795987193044952877764589319247359880908180077726175345296273564560830142708749743851258440667050779940326335316221257554528016011302437679309329560114660034680951550665049795056974729361290604636720882302133417839164385682016573870184990275073626449063825427525994092070020949097211254687741509999531761410965097434189339162022320923242686737834888634525778734042005738338084385788051434790185729889436417543655294924697699781712782856463675807765105577916534174582802910170940281279893665185280044702646298348775575649635977111964060130983053349625826375747669062209726935464001051957913654059578919440908658660323883791395554098920065324736637648874248804962272958059565825290292884019898118016116077797613361877066601793697679978853048833483398626683443881599136892400568133453313865214656304990026295922679873791661881498229403086594828285170113828436257250963484512331881573353311171669009531118584576976519930855980793366920251840719607809712976446111280778614416331775147746131171504639795703865063907876384921640639128994672476842760124500833107686804434183904866962079495075452891450089979334553421702435963226957950395314281575161624141596339434114864848094215095117777698308976466925126507764118212315834530705255992048768050707660963377724366211690515760034089870815677901887147785740765905674933765729470781922648730765910205674542863014344592477436864102509982339708411467185644745355356297699869311013103919234373650060484373276295556888000115284657626004717110475281094346313261928315135263498086011591910086929834365281901266008345776470529761623813560501821820111322938922505303607294304497432932478198476922771364478182222082718824476471826901538803624759692408839073380853997460593892177354099640825788614030866541980017928604742521614850274034706947149902423489547186057097685833641400677179947684050436582803401121445986528902557015752103536885551016936704401020628571286998523638968344664959128011967302527244011745663070155331871424314259947983386788777282220627667586732224845857735469441980747660791109005667126884455346778015538251507310357924716179246114545693362859133457534717854923539654037087747293599769293312814860934071679079203780640659709066012552678498715186278702616693101472525416897028366018723856602447671782563016230656686735703707407364966710897814393421957533187207444359788593212068437218251067440375250030273438944807482735185571715786021296764825454326411531104685717542668203583694530552264767410420767918408969873672834412465536396380747773012287800971117629227501642541241276047606320815529945544137129204308471343501173949599303839927928118263393306106985231723359001662804383806162573455965413630056212724190153293635057252397222615174808849077461620744155485017389540664515087040939074902804166283344042231084597446382657652921791602227396344082474094084897032345864045668118439755238871478372453253174935238434957300159864514156960385194307968275114759461369142895949229193634361997908720603597220778366624935725460876804642219262167443825035525732262147034495519140557990710107049682302651334013063500213774787879266163219403254724170417559886247936269213151927851251768349259489895255083562043756691645753770044413475042772874310632910766163087910629977266996445283700388108376534237839030470480440215257338376795040664261255940122262820819313654157076529239226028792148298655397149858479050050770903486391008141760276619628793481075404701737354966226521163344025709837016717720840956629801355369843456500957615980623479579041037205650705617369294601166737476317423613506927960645296741821195076744542874190585735497195850971977059170332397704301883103631182682598315240057642227390461126834185510823185220133583411787573615328114351521187741208696092421935945219728374814345790741660053067154884032323666457678607734954286148640753098571962138758733491446272287658936989632388046541674384367299812455311824444431648588973885883106524191805182926425653076521006653317175555311313961610295545074883529840134880492002040763729413229204552095075938352982150208436901844198025439310683288912290554893814498498108767579721369629103138590500840931691397748529294048038913705266551116883864711965605374744186933927962208577117725989881203462873296875172402328708674605472496241815593444986108187252205417723906570371048027484644969270901690800993716223754581505863871132587081238729095254351034374562552584552975859059118971691122412161672222203125924800592599767362148003910303302289703521433071708157375569488237482970080638166422942912166179025755985200299928293476165376943601848450938802215161894841814259807719549912147139122186365514451105134119528099178142793621309845899471495116126988984588574118962800780194148259390291292714510380732027839682850161614711573044022253676370089294896766898915102587187805288543530182215589993506224865529744061750076230142996551885138928724382335347686535212868570680111067395636379467115488407511499123211440692273460127149061044259357643759935677911930479651528408087229180279657169725063185077751067733309281314004228798924072860557102076070208437769191607556284233164420825185640060579169168541390938314579879924588065963167209559320620964358293579201244127445500567422644572340881611529168663581614530193885021969875333529060961584655301766106424024431665981944287858811340185119781475138468684520364020467085145566993045731638342192431076266961248248676343339583790203993562981737620058034059038411897256182281811113378205596810862960275810220961441726967985878226380792051878826400934090057454400831860860917008948354325080164318853283197130271448632471480463758911310594678389449113559608902007336467421318848562143867314223975670910079377666939122717731166308400323467385982474433598832326867928224789932609626980731839568735351859854045830008829947972664146434469272420224906760268983301167983212978021208583251766172386056522413865998712812088400483048716814998019193633625861075216199678578494573499568421374034352945127160955979755801227194631541599468272474763665976334371449089662049618380777798212211474266298429724282749528205364377886890136455014913088028902675977301263464487662245311021339673520868232488286336504200382428331704831635603927374207090079736631808605193474184777473243704161654373409570625111785825084245886222853542770580425089305299806299186168474537943934689999167850496964387318277234149382512921208527345271291732122274830536705518595384141010969195097499917427487154027080416328800303887053913296855304269956535777815105389299973363976868684658633703719455220015621984207546061833153953391073144080149601896679076408481107958252162631357852688450390928377217712048309774458450837103272672992276667795135200905381443047399128332025338461942228682343945554856277424365179250383323812850689128404266315204279832974500752603321159379843155937681800366985627849218266216839591449894346094471080180421344944105050362809337270032438251266657189493866676094974144423780109903885824765451393502987810807299505478739619591287943267846569436500386303957374596128984385060360999675272008338659819192528552082819220212551623549297324075488218858488555466717332510131391609588562698959091869104651992714344747998790210112702426012443155365666301147151598668267476749875619165838571351151097810827904655254256473202137736438122062714132996783015028599037393960017300282762911310673585127539285142476934886851275309656375886248476985814427298668396464134954049675382491412845806287574862110344440112115308065991221805461807027604121241936116405107176120069468834847121395187345663759863302910707050552193059562724042378356043859681847474487700780540569017013537886337232791342806457367405732641055685958393684578454250134144666156800117315355504751342317229135848341246674160746837351557113341537252094465331769552578511710823779120409939781608429308783794631822558027570580585573924645158216794434797583739142108362624782474757561206975374786973145486261164120677692157566661217242273455831370819651124813105479279252966997593005117414669399318883255219929891429349905389076854047428692094534820780470824711050425574287392906677478387394692110915848959647664786642584306766716018287299618976422021854027447363144718711631320404764410766780842832419209126305486033434026615920602290612789627274014278209954398846577914200511087932861503808157589207784826242506530808795272548358787242032681555450058448458242231202656666044840858653545988795956620419496997603492411161145480723621884588147045366352040864682309136301808781204903992498301073888234792242875064954444988939709776142527660464855352649555960599564188065207610670617074000785864497735860014732445406086316417228384567388925544399796167643783023364733878089260213295446588706240655121675965602085584776537471075708801534673812052800704401701296135938371157973526056664028948607282980928499404780563163961902307941243192333189357435776498526567588855692259558877860304495861055498168388020592605182939337286714084165166855207554549534529239276371881485478253259100175967133272678878861823871806682109220179725814232621524956914460506146945661848491566625007666221586808717503468840682646878184180685027644920966249276574587251639515108940014023757355285911155963119460736970904445362477795262818092795176877563154073292120128906593546907405619329319813806445253749880180817970547074482012045364103892082896886296311384851879106432141868683863455038756229235514915682539701626502333816634401506426876039411569647040064894822313981626755872393893588383240732356955938542175896371325501819974977294287880767581688307596476631767152931736891311477229719885856022655985888754289610135523532582996209781729996887530755317020263092186554141466533362121964506268720875277289624284684943321644347126178887620929113135881177310791543301536803748244809886391562496187050472875361528844995929137959867219598780012888555307683708178704116658755976670443653651821692007346420732069466287661743851303703954643067990324821613201509269172006475068763488326651335594986424344474586096239265238819439292890966854829952106168743151961494579477668997976332808196160630523630476306870467175078503028656373878206270379323915583358394983503797605572479751759208574441190418178979023812828881240392602406155984916756487951418091539581583200595916683972215607125288097737631969447688588121193398991874914218456781506597354447989608742354394687743968306563961942745914625547825081026469982225982398995506008904148211287812718718447981952344066223899820724517236250162338139552461932174864174403598682516458724927987452499120351246624681376378008103694700179450586851096092946523385743636445474283570887613678066021311897572812079478328101167368221638311107419123951681819054865843933143894831208962215736316310302360954814425439531711301966050509371205463421795107075454005877277400356995930021812210836419740518450206628636804281274359399342035549196682688199209962830453252252293138193896732960345349492435613846499896411742223096428675062481071071143367886105535439212678189524407712629572569348285368794930272107985973918848739501459023934617265389596063078348138630228981661495402406113875552484009852464450548364390496184060145590558072596441015804893028893297334406864021966082014398269431572091475641359657075878552807419865787109251552116158270657245883460133799698269462232903340952560526915737044315625571427063281816741352194746571436796836537906183905134128776949409550680519608907464953316890565162509365936144387248447721466177404833100402427343575157210399407257798945037604151032885158498052566080343371479136693344437931291841043171419680768209688835539174165089862275473212365570595266232935761771689089559671000890946707538078038974526010467271099244142004271447443490331039295372495818608251689260694859702461743642955197378023164639463359327498796627796305217283018276614575995877309207316560977630417117736801156946325463411052577710366489199151514699732130840074458348594670719137901468343764750371876281421341400614198428859651558592615726197002976927485160106608215305554581210647069858353208520483222206434686661655798300810568608444380615120290401699157408476044406479904120640617373121122993759479873266321632404127221189090484330213917913684221737938868784763361365614573920755788340888234501915925795934799207990119991228805083840873667736552378897591168462321877932323866554887178402836304428009682716528408512888266282859871400641298872954553782076466905905935380328141264726560766717021053639028674200547265090674840656346718335213830431739295717245622482209520915773691089321123559802323642484592033671564741845331078181387600132074283009975522076440154487853154115563440052383056855030152309171014513475066108397947173459694390385538007417460018362716013251409322356362287886886485498268999960917553161478282092589491705857045369288692430012541815821301785166531106562229669462668821816233212206478934883180377044909806481735745259617255238467355546371718740552064509901841030418670481370321105594079090939335006292345107548515602339381254294529420486494518158179163893525973976920844740995735220473538337385013080700448545346638033236251435783674772413817909147686917441358001874325455451675311599342958612967938430916679972754308949616189442090973715867899080060569281685369882133197082623282984860140129653476643549206878522600990423733081964864647506467335948479463926021939349716447952487697934288732779057066495616789098160326221599061208214603332344565524507316110876333741241541471741758046952872819751543887633620128245686494068994594224829916706832269306103826112959325721884422077108860272704603296346174527445163785234124963723030296984401800268542064466055310266513265689078687805473087572746437704213044939407808635110015131090795214116711207526011771377684098128366001884507421795255830577865828814730380569968914106980393307349643303820735650635822731968253795276256894055679636450635846884286083051585481372912111540539280512894555196393436089580927435856769124768841927949746970045528610208152459643915244552709794741112337280874930201610969567387640016732626624647816173034769446439494997760294976410619757688505434554929001340613192036954402373763179400891827096209538367689894627784257627742631689726758032448647747314294349736759973482126210579586535388944819586266798833746995085592855124362922785063881370120589646329752931024681011723125534540600917018621647657220031489915737394246094923483549994718638510862156780906449277635254457383530379574217942000717742433689423059424089958472131166755284900811607561360818936517575338806984575335238035375103237977296785124052602778939397839552822661031040139460167122607368798980513662919145793803201756080824697185807224788651127179249499569181494995022437544509388257857882669926819839793884960386426302870020562544290380069936743291533612587356990992717101726178567379059492818038839587898252443726009166265297965523330664769205891646580042519831071983996965246126882605029948437434686226892450696938634296870222835917461683627832052134787984682312594161104770506444909541888732160067070975524318530959546024455084912294459553886232917825972569815371697295970150199984114757803902783045202297976808188984872250314092870413518711733329228219379164748926960978293967926711015207997621324899222349246765917994246983713422652648704188274792135888640476981556489223645955102703699471025896506584274273445214220839631059947344033078043340300810334816321601741434591285530222520912723161231162931414073318631254478073729689014730457515153450976280076073171415736863586950995887949145033494695833225920360948202885988107939020515124205714739897260876914696717684340642813094940133265111018920122465728093245110726045324293080312503035571214839010971677762284185992431221309315839793636339481363512828931704292619518468509364392291205280366256319946619362393939351132381208576526003021647496428680698426537611917209371851189227379113458226653208690832132384957081064682744177491712674063486223430497930567952279168811993543958307296271374066932640465793311547219870123804139787832451640768102200349651359159189591456865383744110391242057128156711077287416693447831461446268123816054156876095477638044977611630365755070046634012306110003325099800614766778561070692558203386580658883329416230989203825460793723682117786680998932478070486996997188972050028201020272070940300471810742563547699692250791121569561311197746586280032285181633503338465349910213364074654266153276231710190987375776750919161781415083327647601494900823248299101376454722516446559026138544050241253610205674940566186900772649951856276695235384438071436249239827496030402965582567589449205037370611080438726620880250386533451253951569561866626270501082446713281481356317604284627345076235441972409793342630607506991692017203636596817821877196321878404671427295663432298944967527956257310258137281227465232577806554103290024222555592194680627113506551717879765532522657559693200758256739751087732185275555179258115317843501249644466343037468063331295479588350921034742406722419145113078399695764179449107237711476426853137086720306100829043845232565959988203431844663131932108778753452697499732417105708438830362946389716525784371269184901171656037958893789450851731037608610954379415613383472623797129728652532238504214299457885619510104678579712738412584407985060662727854861614919047072604509654525415837469630233741700485345186787259269824690432813925944547383537865615618802361938747646271929664023690283359992087906586392310684014472980374382723077779836076109724043810877277937453078098342287407076920822501534450795129272519446832852736125820592424128708902384373501589302366513338120262482065269988104921240079744562414648659555123690844385323324621583353904534923945104635326812199661362442966550476952804648400913701812464327982605160962530110151791859710513378948605363145530722733587900561203291230239036596055101606116737805787361801733534129505495096261873626364910002608011656880686736074147316152677243430425588971421602235351995268288452772950733891769814437563297146056477698123093357636684173825682520280899367036929771761403785580864879817995357668456985458083141348983758602392202005927078401134695431089373724134438681873181144641628856604368748427601078879113676237340264249423707759481655361851281955886203554823490693205270232547857997915650323235649533826636751746842470578378239888457103030874513260322117559721106317165727888035593582195703473879897397730837914031044318931634052991971591143757893002903009757911544494251451859612782249762857617584114074185460132488437020460836815051985737513215462065511069618949668748208119119629522799537166429589406831487662401277430599086498425458813351920540523941142459282062819368599163779399134224556047634959096148034471284231752652401351498470523831807265389127444921739232397585540609326546003794859352220289205019008014001441214018425739516558777090831572489854727198873889966574705003142390378065066599058899861919434622224760537235790148608280227536067752147577269037567386211392688149235714216221000259907276566354464001497229424327475209700123253442515702999327406560137338475612287362338478215859390940972446657063336813150655103408038870884078292174503176964561309132748011717017888546540527178813558480806483653760834584768836531855136707365976303696591299203906214416418163790752281415618008029190976247523837281872109608332424159734445587136546532499610849808594538358442665911374664773640957845688343580193654517054672337519343632162044858353892855955609947341660943360062200003312100211909162830915383722317653703864233064730216974314223277992811849528432289921863551930231903858821809815158625980633258869077767790444681089160679550738074308800496750149518138887303829574874986888128749406790196602689118312360611170329223175160638329172254104838706870146912363306224656870624548405166284489017031998487810071956201722950867732912862360215043379218464737221154140261049273399690742650655299563094147400984582304248643184030141282161696083180546656272035400476759376119485840550021674210874799222978159818329392364047119694146710219901809965559756719397748545797389218495144093191080460901998433837502269566768002377748002826681896637598098105875180905734207531912595619353003476065691066900599427228824247370773215670128393048149482867179086743691684751526205090281161085107187833281659068765792999348647834797629645585721836789414209847633555650608558879865509134861381666074166908361700449211161026401248255060873513414018420690960449694604642095790829638718237036359052934474079609464133956572658834842653808201301063420463236357598500745365475672047351068283625399828046102257232456993466452690515980104396731901796341486437374649146980825489476017571502814152164037540052202400483882879119499975097021126132580748861560999007089469257773445720086303527997611365830844805403431999572832211398067917483182608998376563375834718764586244813426243083735266808677995917904166737228484840396294737948751485107193641577942082471917037661785184251789968545071745202873128230452928066696012753020474287899865019212680978138594233615325849044593456831043439370786556409059684279004331338435315621378450616701579287553816398352823403718071088289999374110058787042172474783230277595475147704994903181001271505968814093676751260049090721208093689910623252387295410561756528624485547092134364571941794351860892655667558127774115676687413453834279364128037851135589586697708046482189649397985251358259732303114059896729063710441087510804904875702926070799110584611393549093959080409102244913139001741300490580112497914484853768191787714910402536651206083826825143425511962706894965586507412425989231184596280407156084876982146380457549980444473141149700138837478376938334500371677727821284094650327773262555294722085554095159595382736369614828087515157386397188311154135469830811047922457470371626993895400289493830105812208503251694743128502314437833317835910452422180060569028367924692231747326126623427416873540246947569387463106424796270817482272981583706954380372532176580631087477280906792962272767046169910755757339246173265204114978070062767952026050610909798339867781117226153640503332187764166396545443013608049089617055951988749467174497062638759899020489065845219890016738991170349432153517352853116122338111678855067981651609410318539932666676458883820186010017875641589530427147939322559876410787342116180177447391597405827134590321858703832565449843942102505997000881572420985568209235438683677953762379471029365421089000323855498755566758525004273526881077197098802073428461557038277266712045624251124384107783337848504833528057036733627292405726474260042969792700978713461031176459513692496890226784430183036073932998740459088169028673715134976513414041679159179517776644831631817790929705666466587705037792573885892856102279586121105223009073924912892973018525038617099944137870369700766588608171242665630356094576429642187056360956475265487987872264953965164738987275016010421184247383974749652562754740543278526171477205522819217794506717581901860585017769940996501516046251693228385168451179126634587150204703828022761908213464579461674250229564748053451269672265933097473962120267648439137205044935315506001920311631171498856555747471248976174118813160762380445168586250097160183170810648768785179959217403825049257353259720948241765261061830820260103062750142112000530280049628739759782938870344026209990888813332303415068721711346946903856666322331111851520818690228991768225521906877285500040074015868851640655406296590419146488840528876302818111714363879612921267429091706086041640192097228024382316499113507395986472088399238658460679751532373772320243694049258733152043643906191239127931799232935163730351527533885009557453279369553576078759929573808128314694252213096287427651181958371058227886348737834222843393720000511802413406669278934105603587594597550052593620086638058690340934563045746221799550788179333750322829965608113290228607684834354656771384310911152361563701831816999419967937077318779513283826584110084745242896404011865088363367051923896889632367326008059332456038831262704205833562055882818868482788814873887193793699806960367343302927377805997157465509177095914500179943982846441621309236621921334674967961025276332997520942148569232579417253207239622629624556508998625399377491198975462355754688405394796456153477368503115576403593620649168301384161647339916845206312469473678095072355962644275637558040790809323333922916315214272526719645782107658840079952989005501064698942383141057479397048046758076567400599873249853880607621767070200510837875903960936849173150050419532295921946270255381593650471990373813463190604090893525783131003552444972404067874691378234985174861686433662447786529161748378516253292986967799501163863943387455878794566388503939313529169406907888426689347009365948528890724336861796386623444009608635746843803167418662686221929691749395440203708130454650231919982286129326625082511585604652109267610656463644526124618386615361352200668781531609569863769794028868887540622679144468982268658582318934832714687273383520451458477378393957366949796883515880935352976001927848040780277368058327175386612728172226637452061520228623921503201591578378656923559705312830839814837588827781621066101601675050389053454995922045675970010201024138036368618673327204773383883335212227681668166213473476269340481962599415561139563879708709426644245775219594936971269653409887534374233134984558317939513529019223571044978186984252548572788437682097407377870048122978805405698354254857527018578433433251805018335040879359780333791648576506594185140433067707456058607719848770567030848437448185752843168933197797026816243125437356415010287066460536782576172333725079156863224950236562063365269396711635669458542289669891224675467371936623941075821509982358523839322714752012104540601095265687270647902195646262566192098600384876359597689804733674406624549320441065866308426227637968285088063600868834231417452436416811969972281254509358522179312474529999069441931401977728441165606180952660979604745728677167702164818814860039972982966016445674504106415567658324941618217630329051388718462754820149498490767623846968661608850960437582256786494223884279252363872723967966981309923004856106955249990366275371256130039767126983173701915733192954761511944966516494500523966937210262313353631013826863211151522306868103893304293326807782927241332150558109148109766831071743674112243718056027859188406270998855063888223749380993350264592611885079242462054546746203491171106031039926467781043782637428530848355037502336785664577886486719316673045512242158356384823617140084743361530218703667580603345154286771345554514727729244800047941946439913508027048839518096914246543281910209402298815383586975726794001615404223275260087687901471571280272539539579169665909201554427667474157012262087780893426488872438407389074427715987867495385702713826422925199070725909600840277152395810989746726713236958763371034168345950592321652508376864556463632448048835947763667295405783195067914627372696372024825316358410480108538231921030228982294628775396592959415631724571366993689807161709537227053890664176354728147431228655527610197691437826117654305902153001498455689199113723140139452842974121592998299447673250262949366924605322514517569907088823932286128884463857393389060310938068590964725289598595623901137544049746523373931388219597329126538795042418631808870816278604192086901855456757467407923814949872348505128449245915852410779386883621855354229387407423378258536363172957535695441329369376519315992290928455706771460739560979499092376580780651783170008405082097143496008388530706227169796630432230959464742755280675636726635883047961337370759368271498365639341612187018652738169478265636501810644414327901583007059971081977694109148587298459393716479598714886225071497676649405427093325093471923313313424561166365605767292036260385085175154150561460623555518892632238032476893458658409614008330472148298709248036302589475669542091641971339154207339065603803294391909587189648774172074050618491136086815164061074244968491542380385201495165584228543297401106481655807697024985202645548953947640105617682988831638781286499179275209549770473588166408705506866404621581496956962595316371388425721895339404859754631676893625202677929927617116856776452847272731172694639898994743887175029904284068913122398195757589058702765492909899439992852669028931260544195049326771275197228751409559401823856437279195762842011190194939151215620997215322479131796528742375047287277590582458856519534862555888582600839959325846263385437909040321723768721786173124252854739104521888595567784052012407032070583266607330376973510378253519306338363994175580385034939229454433820226308504588038092238423539692145520226608002612794912878726855323388061849037203750808666686019045923529521894626923764252639559268463966566907120444574941550795370807126007220625188493680838590815403910259783426036724615616374667949883710485771286266995317222150173505011081130718215978033981586961349359664045294681994111218256566154725015008073264344289302547037597640674833126876454148555632389147383815250945504905140624219263847116499263420091400399649359007440483811417552594057880544446808986758640096421342187374919167510756752393304461780153404732252710498012840395678257884563586587147861360756910814613597264353610202003172230452435812897971102156439745864646624727637499759342254135491807190480462948325778280890891239183930535275170734557267034428843215250598991053375769028030974540167128740207450824318109920239878585175350755907382339531145971064182433364606039631970070456835350624818252206580255431933874063328948045895501156020300550675975652122436153678744629417542619230332824619394819564932920692280313908228469158688530891830749878563391592230967323213894418053374825997671743082643987788283327084218113686858714280477417708444045954230572004217318309916447603095243993917814492190697308267427726332198934277846825918580640063284611616549772084829267240920686633256625345454104974851540673904540144491934298790276043902511683110223173993219442636419858309689443072817777446255695161097070980228392270845916616929581905825743307836639327897001172678234794548365545308531917830041497206409093192015432180248261508058991922947707151946505731750987985492864849824360551973681219643569994236607434112969351784156582108828112839121972680052064579016505038611468372477052199259945667240920431924198304690733392496491005782410392485151438481022252595980845811673878405822242492233092925319817869249728643573007888135954657387999597473551036808947646992673878510987295592816492478428747974582763448598029614834707547695453016742030038884090841412240712369007473280779161786718115381541166187049523979174172860713636702684422963968524126346682072809854599524516943507460576772443198917245889176784657729318246196498156609107212623598135821525903111697390646809410916528815999354783896865045629299041767321393037393566063415618215286561334074916170276709451725507750088844827691084240656022051195258522494883302658092168281484791462330997438245346861421627774440875211657946895146271788967198783172372525956144528176879735966590753975815204742717148393450465554202862801511260517616578723232819590586985641622704101978292613878501393412700942883640872366062522903610327804959415450735844590160023996346636817954515120973182308937840748195669865039317626293306731151632121721627335406318930647563770653303515446114551509765652956814730053296116797848950210490974677053142306976131061196739013252911444400094224130215892460328496069190089397673229733714937961932789238506623128221852117221831879533300669383440508687057020597400717164804180761708159743461051262883668858455292379271927534905912087554296497917366367627221051695150867508584831062231392571827490075859103493095329397749435768903958798111213976076476843945750499552930191227461222975957225685725007099309662941352016669378337736319390660497780419042745294910139477481892724864105435146213659628114032235794222161595372935264474474196730704645324748511342119484638059593903954983809446785253394930689312400471594001485450779808941362399647021480826103144341542616497132986635592147655250378795670177487857446682770770933191659553839530660991901605820616531716636772149424523735880037100409034142439084565609286051091110191079648910886887166661761227918700341674480875224713575712403299127146726791734087345362150270593828288684834078349766044202647618086647995839684066983104504404612709276711946791207061675844642596932300813287788245162669326115308224421324445074722302778000354462936138932722109155008888629992866101907260482372930996311025368106973612102019687051579091070451639844470813257935588068097395083305112370627241290069871478133992431652539771012526008633459425561836546194060767606916806858590227835480954221216059245182746658103942538583860384157411258485403700753109674554669720046077530843936211755375004334807122703310271489795132776949847013782318991060605851986117595779447313563352380929581497858390392336899902661281629291916180933351226230872196511012696525737069639165930171143564713699523082240813800829576416251338445200239161460462124858127279447688102471593201931018195865416662495255872848400961249656722268380300796922305303363979245082650909546398759053269849152889999508793325550141268648978932043468673013005151600224672371207329399381851684058229432967158745589080290559519558197582584218928830717091098665599987757830285397750221853397589029204765386681439397644612811459173965556213418079551274930027840916739997675700388915830023661254065432411691832455268451379361585462291917223005368104078730124067010629653968622059243112091176113713698470380410083543325501875496361674625515705118015543747959368123007694138054405738937646958167131278368473779572628423520038312710936474761698439239731512455739035883135062452498762423245681674936394282813403175201874285879234724700669736974772036972335554359239320167763764354992270477513912510078098609851205467276928218468031352104985407981832943920170457455849514593081368973906179779867287424407801432567390271803736783350844922065097877895159879893080191620161193607278789806842330684078764799676319638345764949955817455942681034254400137816812203470456729818259913622717309398093720389461415880144171276460510217728336908297846997796245304977970528553543941967769395270574114978603060379308033915108630638757323388536105847244192730800386916420180616658322541254673187827881437930942911447451847286344895381472313260530874697546576382010334511275787872817686375602816044981381370539429270620106212736906740169870892829187469090629571794230718087813923063842753256141404677125534479449820105948076433563140522786320446209314606515276740984348953126122467037716107951519196115783948397170331152349530144134636917102000951139820741529939536995499383482971947765949570190549239993594491441310111851154231770550059710250188185873134995498031671567843081576791756688702116862416743486475104756426920455213659028239999985593377814101134026985551845458610524530252826605842529532028164681979667221320000539380332210196833419591088455356580844289912772685471133662188178766875054512784390340853340032343389175343548916322079172976551264513983604636045083744173278367216334385352984061894284867737770110621512915207029633219526492284964209054765661007721616079393898014777596374746556236960677060420638363346484242864720802998272046957014721173055364699312824558621862103227149756764106359935333107875286640815827261890752828842467678057129932661702109587629942322739899752124228508521530177858181559758427290760082311966716828724936158236689067676255892064991728479050599891271914102148262630131690410706946874619884330090110308148418548127434696246252210545058360156351508346051684795706194179448987332422510833120625877271293576068237472599915051874401146882682673086767436955639630513725460663698319187007861429324630625718551299158739486854209129282104148015262245745239770920566760585585335622462422839219210728812707190017197048564776837862039830257241670252829369421487231327419830897348409525351996467966274169469702297695484354257531111343635833365853162197129003237628511928084707749306585674665428454484351680968928119952392807293841151763655312918448843112328715549939466926693417170506369869446748840356083699028564080564531947869382281731112984917820045487993253016681483518691012297620802879882788539303313392756288304720176035101081018374571839091677763995138502810512161344834096455970715392862233383319602468588210363788813467351040306246460827364772207898497176120401245502310207869101117834629608092775973976420032767419499820407140654918719678114844911006118199416947336425389003438117887249060550993932144787023598697684751050158016439714755333420241365252565093192041340651707365225040962860621033113046404178314594971834382531540268249525690155803726109737116374061787603869515100909650177773182486398644773348580628425770455938647870380369735288209091832776117088158200678533657345957607628351625204579692457468805381644480214257932254843118583415901557849090317312323525088328443695810662872084776390968947216481112668708634549220363572686979044711673377604552683157625664080997592648925811932032440955910152970949638343191942937225743735397038087180287005448907341266151801973481518804764204567385049858360378032995971416233439003134393362172698506655918460282085798932109106704945399105604438889774259621210731044497451795429733759177764658007346653252135909554250130824948093526017812681100788716560413603700964415064470351660682117799944248154690567153877125221784230145190822315708509685365971754952953484530670173301185371648539468101703600808426842749067901953582504712561728909635883447764943640662039566452798540183310598143683076673489894999888236069145079545997306482594636820520529601316524911918175383744304507668798266388793046570668884156576806154375340157238762493272678995558672173712661188687767903720137201123252178814049094062313823123800387907144901820534332180979372937338837649186657818221648086127304952452354209739415527416867733463463677172526020455042538605932124645327000707126245676325019827648398500953494950481989276408877998940583373731273544518938108532121822225277513191830755713417073842675554458667792899312690180351644960281303658541516335447322910363979999926816550701539519869528578892877424386131206258293162678146932159203742134843342724764092936014776990807150665487092668834324128178396051044436035508917541128470680110995002294035961655768973046649413991853695938006682436663471212028014354548594965434120473685165542554193391831905106657364461785034208115465312731264090880797346315511087685668602751902022663340761313841504987666565680535378039999821954740183211011074397260163679819074933887684492768147440393357405585534540892139444361034140085849130878193936677335295629327800827760665379506880150049369954944957315354154448721859584008607847202415085361191014322809063914292767993940751960305266448940683063076182334161150065790222786678198576994859551395839647722512271763084972177466511996000963884961179774490288332008262374809434612186581367706040386043563920663025383966839518600239533915890025470015941190450803092130251079746620013169799817717609180283194984300179034296928423117150820429169976658375866331609304260487177605369866951474838441165487792709590127857163485096905349604966331707435424041115467700272736034049019910313777612348480870214674465548698342314364712833880502502772204599021024569650809642452588140746149975788785572935966295899124765420703987555485432832730339169044612329620050153284585895498889118062540231679510801331939381711510220644815823365022460641926394828675520245707986842190382993105666750056109967077931733681415224427975420584808377762989261894621380004073750079370400942703063375942837472566280945701004626174759527302103737794856468611363949500702588943632039612737464685749559734530447371127934824165099874358246075986429168943263499880028291553430539271358634483910769671819222655299353332231580622595645711574760611225761856122292603771904988305761013382971362964158028471732439540694519770501061052942538673310778186009846289852166132474413969267994918416103089901861137354184436455673136042867164221601860555546895412648674199476904598236565014201759970317984656919582732019824784910943591054234906699047549022218483787012459741871087824436897912825382423175707632471992974160793702049725770970074879125782347235578197193255720411254556437556873848091906072827496891027325407965742757382920411880207848312511372862025687290749622322152610666554438578562631056975788739065999642739682760658305229050085178367880547009910412388669491743417867607558068193536522006174440553368732859153587375809000287133062908071039912295689390389757739766644529540853403353141801859943125972105620460709572193359672674225405560948466682086926804984136058899895634999336857030789068988656855763370295315252269116960066562070166283808425784665818540034884501127240509590930009141615751143419198702812014675048791969611145501574883643497493543040611259372674442590648118266621055979289787851803021336195145901969617929740903397590195341476233065681224726132025661928974297304333752306711247428693645439436589815634942136430391495581460304515305465017737127773765060085557804454074116813650422825198708487422438205548522181900569566753473919358782603796250080802480055438921104032000719685157173643307922384016409967037820961998159760246254285558315616884010817940077335520415084564918192297305618408847711049883178712948139945215411639081248633496684453836839701753938466302793897351083546048382140294839968172716599445764268647152211357902940535470843158902050255521613241089603799323523753228979640191887062137109346782569688138453671840223895947025890039908618110816372439201098473841640128798735311973899774370554095175972767652405067503126505879950617170439232805705075894449040366788154937741019265412431398351650736659638198354993680654405347251268892822846600916159139592966472693054059848640554022863062946547786117996486915347561283126129775850181536249270966686474587011449794467933160473508386007936226230265996934888232347625928256586083429386062767666183272906406026935916038012022625761156527102249239764841022343035259802848034371164359067764106505630069678729807705387031555857418759480862743729997267146383067831026988463302421021124078574311955056793987161021143100258210766486621438866600852061103610689106183277103710678686834900340641108932023990903310657555156888341499700794082174967874130973197483802538338015105779501808069373667704573386022873669727879640212113059178198544820569863464954247190927922381928461879613020187055214031967467749717564629642481580152346770701706175067702746947355010146125048662755584293286543308408965086539299524403638674310196051550799881283855994541460585813918702366543054021549696957968905727318692424631613959635432036983637296399905032938070767685665937085853033974844463282762587467070995888340612416098224594841886358653719956594528650915586424321080692557124005058441914269464885825881553339702378244529811339926737686963046617278028609577932481141860866712574998843913627434111744042674307784681290720512413402266560756897757458175884820342354245749937890509951639929462504717439629473806360053657597128732018632229492510500883204232128311221070134577518196935298706607025082553541603853037975513885795233114621191494167986168686896531718764071369313455262756310083026580087305031500525035370952846430893113595633351486414426558873834977032030618740097440675652764424992828312262853143629624320248098683615046756073506452692551358923314265237259592011616333689911841779943670861905278359663203372058678673458713100822837804546129621789729345744641293682018353925196090151957225843070153720054038541830536002616526227126417007473867832561145910191312852716298229270159095487032819575036722834758248948510384325512836600088063109167535601561190139797862763883437274976546073568177904136884592633794262429498467581634673807784971381007555668530702037773232635543532217443536842131552051062958704426657134686708418851633435632753525379347180497609862934301183001633530912352981050229727852270039981987299604636656141928698899176841125719431206531304639588258556382749870643202173641222532796647088316115175703674119616857214280866249705580953908808183565048384654849365974982571531794702627021832929751818604559723912874332509439781537732855109416556987696809248401915415137919460053562388419157746275171924787081540455637494672410704171404329860225372993281336067178556002459643678901732635261389539478382621122629525086247741779860723779314461035401306585383607162397748341079100175511701406133646486997543224465341472653298115036758619080523284663648177871601820362084756770290005896355039502300541990511847101723995727246143405192936394126005192763008444631173127086946129332771354854955442293525097813746716156419640137686293419595773631624438556777374218366039335202411610035985857834074985119113652775000627868437369875616510653865839521997769300316637884472141654856687573576787545104755650893450331446789845348737164863459434549176497874642266116697204054670278834663445700651251636532783698062532195487909340817811892720343746566383188010977935687824249464488267959717931923227107996107350736938612899525611642152528833188157496451352165387962037266168987875761191275366422859303270158138257590344896778929872030136612642719633306974923874465912044879140237162529402903978367817357795831178913089954528119992069488544290064490630928016944343831034473434459841175907413407681506500011127181403524876613675366358923125242751551230476849726657364654396929144122066935534005817286763203606612963384097209574603026124353015798574946752275802974609790371238406134249305892378535241383261464674088688801434399858293797698601144138390787403265553041196623448321578006566220543204569239380313841832087599831812012408727081105832626338528460374201856618709586033224349391962123820240753625615198795300305656577222395791083816717207037822614686503402282074071655169990883776950985078897229787168662848998473152698488452396456565687586393133694117708707446226999166384056732817318993419835081663666553758979084509031826770470153010889188276959200685791163479032474248477340551865942570699959686286295204313238785522969835899223900251588287801268313229768035113302209510649458571436288453565463848275062168690007773158163770844897214118017033811372186919367839365263511467538421450470137738449431552995787208316023097729914690550113789079355712672476364081718532106913014599377739344068942847409063305072081688981051738104513472561905953983854940983051659760370197356232086725880778047234632497491320273444756825344732983044144865768910223611013037605342476364591921271530261872000177765504784660415349185310065914478197122536471645052785702526317726073710427404872082180547541832365163842585800562697475158564920199118849372756040400408217962648632646022921278500450580862987670447913241839353814795019002398344314538263824999325724215789373691840319410752063197570658580947200317727271160004777657819831425387134374915413329286481936955214393817419383775272485252959352689287071768089779960400125779948926851709687207431498239893224992121370817690976643232324918780290059720876553079809828696272630674892096376611485539152323957179850417064365521376346858455322527704314323886447349976229299698068652694861501428390675858512825943988269486309577667936211946546264828141670369395924840079386189557381236831775706632529210334651483306415624871251061872824777771623917883721704557549913617876107145681621297806511892055615925943170070082313699635627537523415561775034914826685491627260123900769280166192988431680741783594183872222324157116396724920436671789376173117959705937391408378255637437837989650396793412185612069305436145235698959247479181262938478930886291101191207211430236912094999415529304511366310070619741044589151889923634126663749188056977527845197337232150561716040898341599705686263787512291065185486995631512170883517821011010828289658092534475253596663675141700242303079818496136133999112256497159340804510523556401392443990999238071699047287046921401902525900701966440047720810385113711418965287928412615172482712126460903050687840142041719927830961707074728968035565035107581887543694707640910968998262900585351722570819839568886719582465419690865039769063162052873302033040260742407758102171273154564563524454529002457466397216348856691640237269721188573927567519057817203370591104980011887729517849287451247732245668100911726998262244342801622232106373874848995466850487231670362232209905852896814719624430258208845680247862859073493434093387144151730759179544860176106771760715100055316568634332399025500259138349899922908759000941159110738623467297989222008055682965750927484746541412399828274434728974992809541063533461123060559651057455613422950543872463838558059844589365684395589654832794014234430010269981291924582542164139374363734878848539775037408601927943677436915095827840080064465890545611350733146867920440531382685855077265058845045786425762968735219888222307722562218832791045161627060645291807756119779979216622963717822869155773728071167751902449697143541318885282699483413290767544598161114487808993565007634236848205645424676343567270506662617138881584926118719907020808279556319086398446302923680747178927566622678906922913846312811777307942271359639280814522820519641919696869359129985983245187049442654529324233277731780843496822877581852214234683347836169661258124332862257209528605186860780222919233260248996086973427377203348953086702782237765470190084170361993847367660707236842716618649029379665769177872652515870278660705737640029954113448881686152584472535773044403283216071831382727819157717045156040057226552478314848489924866810122409146104583215909767885158556899751404481005019658055394860552494693521708300535963712868245492418972560949662446248920871290558093790219940168839712837024480985998628978955106889715333336434583244333612509135964836119645846111171879018757148940964730907799067504195485527304048329931238235096012409693078261780272143280365850709659239587329348707397284832553873492241736045506447587336042205140443305738929441574706206399610333655816087557773549722168047128434317501661526393697652351047007937849030550636448372613259158084213310186935144170377258550095239693363188347559788665734249108759156957288876840431102368202736887596079812844872287614501603987458189791393391978319875601587846394533287740764864252402998074115175699326635213594174034289611702451710983282694494541151422276815003032170433500265973920924098538154313299581867658533420502565802934395644042678116651053932660043715419634901437445556182386070011496151379473296916138979620318049037908481970809811917568058270370833625999723266912427936474416583920041690147809033255032217894838375103651017687957865534872941417476255435695733960049846886415423450396929909980384957742401740377339149453298620518941545359334361357450732956597907880700289882918067181683233922150902493680376448897791068374446303877185889538284160072085744627717759920514110467307852213149454234162080817164395993604822414088824270423455223595587243509645850962186579863321437614744914363748999433363835316636858683821930850318662610537868268996256843459295632352588852928241850576595271474654406592342234756800269255249439181693772586751642257201261704486841054316124392259217050982111702064652008323409090181875082592738053504580645679625533243663490972633854674341843335438026108687009817998123441843627482824637238496988744589912006557291865782485809530173264918932575783561226369120559507470567107314748524899964165142779157164927515469277694166588615912505496791591033810274954643924166465863936799611510694160030232441162101936281279231237226616021004843977794069521096442676476806106356501363579324033467701547201706374275556723539524537557254965515129667197185690461275703971288084193685808153817456133134855185061514685913388200064835310065981869990330291107573017373294201111832601098536556117027742606174601966937330009925131151194114044218504521407201720178485462943065359939993466528972651906740953443838032741511848126887358279287710662693814664777131190803681059099812352056082801061219919303238114490243282214539328205595919910746383698627016213494454870272181825435766613440621823912932842315331211019966620013777017854417724389517557893805364824776734459212154473611666622924957732160601069358828062157957154255640152155756808529724441129854214826743913966566805246222586409325354489358299627870613631372389126972582130464733238941093716789531730538128284458667051174825898134424944986040244719478953900050970815179456272885775482503560041501744307701371258944649506518531239553403827057418911778288963127599132165236303346153983432338453912395055973198029524140706165564865296388078521854613175167431073516235496835357675028498811768872884989625378246240293391703772733728366877295706358592626165347508602231075203400808540471908327030724128193438767459383968356485564284584579339779285285596290215545300485717826904686168006857316226314339106940275901294157353891277160065786027574757303697971929938230217191999688112526448800053396892945948132263403028197386337379356144031259692212894082396192361771217415737470429927726475521890886583183675704168282896160647013243075050573765515062305994814367448157500835071581713651141946247125348864197798237425250419483999864568412242334408425601962718481377826215290467865324364238561673871271311593420925221027769336074087713788695564868278729066115763818596964732901075210369368874938091542642244300607369793608195597057897084583992181373694651714825739494248881093992082826255460880968521161853221846217560921874437453768390211748011362471839157037205048201966224597868764111461466150156569767488724770700862701639867800352080956949643692897969653985259860034038678958937716577082079744125718339277694692619334693278909570418819076092308915426578456315673204313318081758486628060465751396040537532574385241548576597154549936112054248001531674488425147821690359197306430268401598172226534059573974833278202824733889270747449301505589973187903538749025634119981499526105516990952921029011105609651974572168572630689842671400469529949105895706466432124444525765889980456520085910143739413569801756667781172685012815373438467889425764467056027887819770930457784540613932300001111816031721922232052781629458630434760188295027409741956868734381309978353016147619547462573343279210229544108571897559733746135187474658258528620667827231386001473169481504635912909977034982319675872522913124654921100836474178288499165896613262581656015352719552105105981989797868376291127685168569122921280898130612307655406094323747223932648095029417447748432758223964078067366201563901515531625545750965670551859943701403415382872934751383970929547644110330856591723363567846354349976441754167940859834574387807601917547841032888016992336898902914339685126799532761859994088400319075953549411198688242106753393729696413526642504955801642675205749748833240350494153182651392875513447150522138086877374904872580471331884270307823878867355096850844336556767295280560885051491505869082386839202700675171827531233113710982195242005556643098897326014048531640505020661459352108354826209438396637147265001628611392952178845976467802297328499587308705687570054686035586682978201447048445154572678869294122521788363720342959563278917025905871504226468251608213943232967243405860387921014541802465526139718405964925237966155056864620519553112027573507974768713075255853618692288278578942284007528269725496122832565537568669878320664457409330036575030481791661549683733537637802262563431718297533172163410855369888023562485461585178409523994070963226375541901006788808902484300636835050663440217627051275289493662802016562404512480620511521703623490436445947615597278056663116105103837376562178092393897804042483763555264536243041499263452832665611589092928881583696515096178977555133303550379479958109466453476064635041914089699669106831078547701611947535567054604849179772681176732485948327312242056471850008178365333346489455043464916285010470809402623576286798345483925848089328312633586560238136730253687758947954908745052808493824871893982831438152732618038487911385361264711624447618439690654867514509081861557118110295642376057989574795471255980581712014450536680670250778453546387782163480355083139319690620369966815529482874643672872119326190074273495719954356567543860128420709609900632809962316950397383803222665881076958803469552107216612728276816000819556496698619187604825194173219814653654753870285082736736519449708283757227863194663664761170241617616599804178796647428784596301171654729188241507755529905202213050782279658999447063326631115216142546464307170121385492617694148274575495662976465410827022011593495383089831592305589252094316155834442915547316216380258626098990216742819768119263094675623205471339024322609987509088264370190172479799301243447759178872270426278991380659099005008968330616867310340529548468212397660521895258139425772882476888243451390819317397693413564213972423483643454323442593424822243344582509495345386444980412828533882344468274710245163885128324365658307039906728501369855261763344301188062372518377110085562036318305227970388593027950017283369636284054428650373672144995432805413209247637578248164230643084381690861277009910375256520580410696264272110734085863030244294364157581616784437270968938717630990774771349667524926603107839235221968928021170106937999712835819471797631984271563539799013939635222795176839345744041247498157752205862739311248015843483366025928226088257143495037302258874707347373791509312108158507511344293845822615179771731876371242178887052309653601250338217254958360385808259805066456458603552703781825983644548578971722931149706451740234872697299509315972531473610023824977414268356970857536172846325225846791507405210867445235701981373859764492964560625677306694473980307402056957971391369509832429973099789657264410392003001745417907211190462764691630145857962242048246755583423589219163155407850699446931264534071291454526837459232381820389688243992976973281894965774671007254488929513549995422788195774771814467916903237377817067351241022634912874335666571010252213568824701824025068778946647164138467740801391642835947138016969012759114915308096106150427484271426806246032055729148127864975432921344032679227256229461547519291263883702569038534485650203405807122655663581808887093919166589530753142087390830067216081722189406538217602947392405949234036211929682373818309948449568094093358655513420062668485695111513894290617325289670391210436782318776930395234918225269204122915298338121419768411981179368916812503603116228943516200601671894314184779437010418164623966652423991794127274372811220669599068689797033165145158650290196981044451454698598195735467234685625975863456958127423440868923254329875953991685075586592824849125202774918209013900769317009124924045610952908323869934618678615808374350697773362776143716713497887627276695366778835316307552313877700868465687620435142527832694383551037613315105362552816599734939004747129429727486026865917001864062226345921055342436450174140988226666533987023313636779172776136630502064288053288782181433556636460506905630522862988838023721603911982246393588060980106274245959925216949139877973634986713794042406020400777443148283587459182204202423826162791779871015111430526337858886197258664668112505541236206612767475961110586469015437556452817277367063934560128759973241672658087444881979543661552146506930058866516767376557984902294161887609018324171348460287338948064658719800454089389648649926697275969737558785772346681990674978174964875422268671449914859398932109852335523536379703860394614511768766702623106610403510744759272637086188248892863627022210970569261314872589540557596823799414352761055088268037544439551373534004539427685613592540563782473012886382853290799150593833552150035840967355439845092016828741083504434387075349739618963001765854926306879938156028737670373469286252212853013821978578264604195206954209091025359015974782486706778888109419268829204382954259988336136432491732458661955535220354339775101218004375070181448007090030544320997666537273439367636040441688732813477626405593040216962857684192062954616172771885471520684637438078278654949577555864658694001844054059432180829899180496775148856593349307663961651250213323298292913859168787658868412730064159442341872394866173101870676896015361297259072319082486024253200367567857095934154820493674941421628627891907713104185618540106031294861249473785939267989569791287229118912332061182487855997538132900816287334806343745821372384588314810977369469777211416339777986582066845431940846714166496280767612458525043599084819165603212641345595547803628967037734661794227362252830025069988211654676382512590967396902257839761414592261396710302806540346050048943977868456436737974039558132198843203326635901731671225703944579173790156965120590067585331181444173053709375339863215100208584890489465699301461843681804053538342863806096830660798329709493689864543850450178856012278516304987709871675983140847557630915175441924453561848117386018069752530841673575153239867395440448992838938871198155714371231434554329787164062607262992612416840842185944158466124445103322835427177147648205280500570439773670459494817076482308023297152355980616191940337742330667462484675454595474467700008985453508637035051544929321346857523851188849636349356575773202787855237213952683945212929196596136128993789247331028275903528734750082797090456584725596331176543459050896549486986360929901122635248474348816576843406631822757064171514344832761122367331587792267873935441399824030496242378714586867525068007526787656859720015412969074830917566724669593661473110328929451508748613335413960619991070940397507396985786826981583643141984717941020639377954230392585713596883787463048538522605595006010748330285967041552200038849516183138920794299064455427317845295405566318317093671567867499827990277402135512685250221942508010313299279701836640394740613045523054294378561432627780770917772369483502417422829151577851486944668155837770787165330627799584590086044386727823819786759435076867640216762743217362472598218093325105009089457434974895018989051094232066762972699520502241799879325131012188358394133299990274308694663469376883889737851912648048725749067412145751611723200842856845980112772228656041203631436069027527503944144544537199580262641460894386715476348877348077905321545646022825733769637292246349767658914338517052731229390540494066849768640483422011267878122327234398795521266850616321042397540535230016578829609598026214255216041666539907533871222203811036368344825097739495390964804335180963625288303081334430590121587231514648973715721906047248879363134027921049174370572685092685919006835673324862344231265314451534055214168709893275336576266224046188045418956666174804481118484269454359433613801770390817330341543229258375171488736095136014755365787453449838181628137935108658162307614649111756692185026368445452147248937106471280922912150081272841252071164998133800880098509550122394039378665452269390520631686462252886602781425517679733629011306331077466817861635472277919504926750272496884990142053061185193647851859563518455489796349907883654897590491706388552572965297759087530216206806006701885678795794599663362020141624323815297497446669554080160936253060251371039059777299948181563634958444359701550941351249903874444547063554182690383951695422481402887901204860734037318456287814213158613448981467238006082290769284087176910883289730633958925345715813123798493580052001047887482603922386747746658772091056200731247451695542168965216612256691417172432727050896424196633905794695075078204033902041331337931699500133193103808787028260767524942841775935670110483601091044613870805228472255015759219500274976430272981734259517152240399510680210674013790826122928306361728447813075052909987196622598200278733575155910735862454946866732697538013016921589181222501756645873107395252984881001385529854517418615219575847276179268712902328476667812164207158937914918535063119541041869711544916380875716594567376304192554929902521793408238849031741835788646101595706396861264842833170376257764392697635757123218105334706495804358249173475721777099678751228988916655939890262983943056790835126828871815027153116744139864002233533167277456291601547099999659029179177307986830328908281285059080711087136406620464021293570796133587156383365569594982254765413029776378241102164380587313660153449403108644095468299656210982732994108213598490250394537726297473963171769890528434620012854799556582941615805257188352025832483901179976336943970101123029412505518402799716578810242481696691317119017400681399864239143772638622413514229540076998220676187396902221355255760006738105606414506601571282072311945612415577712536265723768175143498938213512925327329404547371494942627582518092247653943439565859184867314590025597162245363787667786786265888198289797201441707639915127140374131508117601805243814122974788153152399246890560447532603677544398589186936116331050789924095294170254222366809126782598979102064007685416864645988956014254719596802572919784271620738833926969912405285515985494808500667032778066504992340122893673162600970417197048919712050458289447407553083881146433517382950172417550542646066823517717751999000942992325722618253017774289492819034122209631411881720961835308865897187818563093300316104790843788504085434867247246625296727878368640654149387577230312875779868991588967357445401117415414954862174480207938956329757985112207608958680934394627253026602189416701697203598471401477791139016578839014907187723308488292003643273422580641839748178992936197736851228095058565963932824653395448095135265578807668334413452506645401899769401218759637016730216391274195609568400267400162058764946447822747542914025891976062494560897522970678124370597379279799711680458613270886145147571146786418451894652148089408915312442604133644404456967919983084699875836213190084010554386613456929331290211298686564685166531689196300125962624358672591997029459967838958893946879418110557988535466538045073952445160867472545395385141576672321252018044826196675440763357146652580265468103830966412905096251888377569744214004603656780527840481413012020348057836529451136598580597078945044367216427501574588764082679383336748011253155625532838269600587808122015512853517686335328745967075376062876660978956103953494807159720198211118303093278796212808592316430251224265706424115729768745245889486631724668454696407895299600022861379777655027540655620851024725890290132107791793499431232349808080233489564540496251943248583656082410523324459611323920715386485308511229461106307417857186522675427931733769599642825210411724531136078973670025651092060279842878459940548693673036323068975025807776882008924035759925706727756846421855590238423603141053753275548334712558608346855410374295477451288647436331487409073920104876782997234341756386391205743007950758303923644954509171786723655662316293302243499898077636807281773776184017629904561033280617174715238557180433886249363702895918121763199663542207433507503090216989059265763834685701186773518563874910906452971341223509965961940226782640870427947103576479147262258906579390072701582236286585376766938262427560634203607370827974737310485763773166933385336855599687856464790468229683098670768050196231364619174476522222534801574131521345779957884726435191300370960328327204805028508767005199121614137636508480580905436134718432773526066286044337146252830141872621998803947664132290939985689140910195915114210671970994030152706377976825713728344086996432293328602481057793950877271344544403672036207608828418218848534170525059221313301583280450591835057316488425542405973955881093444908199439632503935005312362973283664876494342812581347253803878985656527758104689728091822894514090260620616387419695584519705262637566867309959692667299342751222892816972731416307658112912273465173315284001030887753965621603657960914717226677281349872778067912500881130772764760987093309621904675341199937829378664125657544417759115592824147085870398832891493391866898500365995155591248446120171981529050873237966785825408862984958527844692574024367664018171481645865597910386146630867275108499025801824340180596702069649685682470824388846379617083611487555361767837959780867962754322498881384506355232694055091171268618227655134782752356377222324157791925345898439057406833157799205495807981812278952078619072317348352914237195774348576150912803087445023169482562486910467310080064215520208386126195917453612159333638118246373713286065264327780747979792074659134719196664336718047862568553533790691162649861874556261940219129005829145848999218226493177634291126664898310798291510525365935918056527892263139703916122146440061746738996144026381707886474200417756115312043945711643728858760797914864567769582983013931437495943659408435847722991452257021628735310767985203193541104212951557294833018736078523374874479956187188092173229162573707420039572069277228670023805081287389936664370231335954716928123191225428285625273232546508101928896290336079125626985650645825416762048188214196635885435512085686724978683115779846155366821185496208706109499155866562482783369714046121123095601660704633046520589624384104770853986782420137317766688920533617702256190452415190317781046853724312318705986175692081266255629789251244046156042223147096687644187027950146422665970272943423524260750119153408453794384527148490035764010520319848794644580484012828957373348348227405362565677096573456274535317406114132513283876174161638564831944499186290265565602409595454649137599542635778151953399940193682560965540194440851429804213454786779166198713933388843197462002950895952231430917670412677851812153706334443673993292084024309731017793867486069552792010854842393587140440810191401962657051469362417920420855158253093931573553155777994070182492667371719575939711624445041990494730909616738476666174329777989982827201571646166133732770622745212734171286308816347687973914100506786439081382781900672812722039612172669437668630688267121708803401845439252981050617951811635430881203914359511052710293346796987992202206512071111022620866226241912609046679173819031278160859251448633313225091044545301100148730503847636833485713149404037892141669014824946718970100714211131409425803783715155591779791641049534416401174230031240004004137921507168767259449351544700788480735531139832956186002110713048298993887614695420060100521830131791396284915587746508770736904303601954603392910138116939764694676254884675263340423098315885762499761071857404095187738239546223500151684578178685877623123873147834266391292835728439911157948505736641459543857182687668660813926091779919648210662084403052723724375076499481157615827476105498933114130768947452171273955033527514167813975931692240243934008033881052752627882624216901448878480473596627737414698302711006697462291200487104529923986726771756639801427304770110747110322152301785027690583349267650418947165046958465461603703421225467342920923585901044609265724775054201446112934081228971081476995100362476748553522087004051667985784051009852104127162986211551443551195922360782268912432561539808976671616269060080789149301382639342865241696612978563558902898347836602813576184561879618915047754098242008301965618445813054276611501153725512218563757967345396138786118868814727888253704411259420848464445781165221043236258145017648861496060378531643609728665828650334758248131458565850343858285631368388921177573867795546773191842807449873136432734253147932345926421210496927148294884248659226522082161204760977804841799805846948890847826464323845743570208554710534537200447344354320988644425262333968890408817353247226142758785007670077765532903105462805625972043392300055828539500461664304602941159445976648743390614215063062032619920677553675798166787691104032179216052308658479015453666662432029475468589685898817929145677116042884932268171862425193317303660220763089080642015981042746434146568963756288114095246651326141059281080969724493904642334365672355486611020470477375293772320956120897203332824389239961692214497029798582187646767906953610281471052268526364853168715161951233006314849947114745862415639249323123470266329528461308064786322778083604629040117347063006283461710733152099611479181661225859014691699094380106280581437388638583698392623391247307954315859042176204919562479888386337334706980481263412146787823901234950985340041007733596131151777160895722522088883449626740352554884361707005268326716981433489181213084493127061413332626988511227805169370498945981971695265269253536837670890061595472125531240150966049339898257359481885102739477000095108582490022340946334239100353073475305281124552047051887123837356858149850101790923969452021861968550923300451733602372169125106879192449429571647329234299781257099074564695372927749944602408757436210329249836974128858413887266840074216537160077129444409418429975673195450725834371822624243560728607508586021992017434783154540598672096420933996258028295293700203513111328206544168978061324413636552004980962412452753383643040373477779476189164896878976923048078901852766140379922898570560542928201323403890408834152195134087872483064074071809061991326572210443822944265806751085885845262979738121850911368903795566115073424471187580518061342161232092176401103016667190269540145495562171456447515255034090155633352614185242336878050910002066812837059540265746423493207252735989805970978862458664256715107797689271158984417747036338998305803155018947924197157273986814256309836975402667089389527844959002446220985101702392665569297784092653289766631122504079575807957272334284332189033652457072274094255835112230046868015378022585993602783713670289352439041621716610860861512659209622372054285724210879631063580405242614380903528747694621999903909645675401826447753170835314000702050125080734749450426462515410342046275334280561355781530776714022321474889385567541704105969034972094291277316826296023946498579953673422207978498059925158315741780138688094358941170658363403233998568239177289247615280906552138859435627920238357633340513969864728359437078902212173065623644353424328144338238997784580487789763543987980307245255951664090460595590212093464710992352984776502771977947358679449616543066294327182544556614986783889154634567808131507758555851652218774692232403376326360694718609167101364111545438906566441064137490399109303474044568972901470473871749261930893509153091757949860175672691429623254451339178818481957241008207797214400303976033072165204353455728494115511217657136836992239197990354751602201900547913402310849082790963658834993255498257794724162566574862812333443517247982591654800319975336459315563870458550775882395247602936678546331374421467268875051619040029730512149052509093757922029178222201413547030256955372728363624146148316160643186457037229275709706330531334095679665392185922320287178352300116519432812689413964523710465642703676383796147363479187021777788867723207304817611026519239557946294259601949461228024687810911897480544917169690638609043047629528516193267147422842996936902360242720566200296087129297979381482760089421209428223232705623523796174871713973922582016632157749896566511984229487914603345344424603896027286081036736880312494651200810689972021245619359643017097461946783829211015272556442056733216968502627642591923954552969921667618909037096670409148658867682650994203103262310491630320954973430221437537707756154361051602013016487127022091761702127014593109189320019186764542348377132906694251837735711239108798650458217933594981117312635922613999919001651945289101750523036824433016164278823004121915705780810792858158552365859455344229809499625174440956120754286533353140717717796827427624545433840217906208936454321482833305614940431150724125698876471658409481463485121301571525082109144228503502827324653492328698254106392178014093258088701766738830515384756755150089577081881082337246095711584635401962897590028650088699982002361920960926168382151716316676146469118326065760717286204244560562548150375409918541696914338073916227081210782585944365634178880548290088118487446467422817749634244874180983184553474623293978857632410682068953639284321232724378308490776064614583676737445706672269838257876770413391474357792546990901413648312967147242998839741460077166778500192761408133789476771709558949215260775807092824768823132010242712889727734326541263214151902208038787539506226250021439515407815411469982184043845719748513148792196196685382619456327493907378247069328512784254576569215862491668919579462734755385016528564673082903124421454570055423755119645447521392444681847750865530580733642202531163677633826847025095958831052489616692526211295627859659939252550878786123781653621973658400448411801627301528029417043983895077765577070057155416884116702096745481496046575028073475838613301493544934064158848990087306859904069969566700916709962886916567266909036988649314250338157677825137538283387493036467136481096645235612587284248671935770534133130339939192677494541167273798678734997183642181991771662528294843653349822240295270804674271071071501165425227010575635705245768434726415767026014643774511571436678675905525468566304351429701966548834575222595299503583612511920102976297002517150951672719282199437851896536757485266337524244947453897268120665021900848455434011545168841549039779861974949415413034041439628355125936495631544050218847356057244879361866670517089435902902841549384402160861611038869905026134301364922418119072439004882069459540923571891671170154358271184952206585122354804844090299209934022565994169982853476903777977639778286213311822109642433475072649973782794994411061148041609617141278712234387722565362446697772626988054989187179605609601024785715973461851472678828084482818334863453177202538291680617080984504587878860796371703260391808561066674169622300475992145316468571819899453288710618609808749341241825463808134526208614873932555432498080299260213625337927278606228326871981135014738073733724501630872708979408883596325044516858903552935246999969850435156986766708525949733800634918491460388074204371936263032605154247439950924675945264747751035997970408239433745863622676891324104156534795449353650316482826376772593594940603111495867726265130727718743705420093202245858949510055101446858478770822579794522333895071682445016103332559189468004513810775676455552856101610987595820115191468108947995523974910552837053623534648804103898964255171784877246527668417112251249430118252788384323126274865591601691521778042654196264284866572764476312985738083469618108462987833513589391522590896868162304733503545808218284718863538247709652108312923042637626183918943750853124499273141538652191503548399528439701822033481735621040162956053865650270040238578146405006616406998496036978438699538681953756977062153723655986246057981112570046506151385123361407852200125848018579803488597456466958263933816571533959788638250627607477456583458627051097804200212209985319165400165035871741946259037874013278104067641722483441678963585015523138590069613738870927961520188582226584435138957315817314377823968908233941624301453447281345528596609734555556447885153750950219177616692060937570242488733942159066512630530864471146715516289042897272116081889746035829955831494361043139097706035126093838803697184337816327283408610332077172923316662682270095942153899126268345136518868174318372432742689497110666440442201030297288437945736194854538811112131264386856933098003218990084033359695144939303189637768631494105185234394259481601479274871612875595135295759090000373033375031717436167128823589703368562152948741190743803310329901335244205854884365500335274969012664466507409826245486891935090638269934514874152082525073314273787801851268908620219587542839668040366171637359596949551428115024332801931840978307692333987016520681200176890667279020454546697423484587670053643495210064649602246877445524239466471721266082519730494407008165147792686264862141233193263092685273149845703030515854927492358520873372449111304872513997852270783516262253541218172326233042755003819357186178611346730092499201394331511578187108035084189962764410049291939207127083542748666305008134244788391341041647687238040362554350019107418466096332305621385154870943799868792891701861622156247497960593103458927511190464221157496187294947783535820945120164596664779577899873425411394610505738165723680062434088393113830083156158650431292970805613944180144232645079088760041828054653715947350439370759289144976839260147293706533338566164887679343197818053416395085508399155737551463294892468807605687151901235912123541928203569238316519280926404216059510528026830675329020041938316849136372586117559644021613435990114657885354275553961329776971147409037971354766127120116863203868815413991931116283952297033775034424809403509013223586149869500481804187389593624546934207251220552837227990623402866811356859339420555321295751320002517651540724783311767478291358190185223187777671936759254327187975875884141514866175519444620071371532194459557737377372989881306001755953728669741213134150271236667380082917526540752529772935351960027007196042938202896178377897369121381284865947664152297603100590253333882664861200185721421216051454203933744120575997557006389680202302953491202148457137721775748262732673873415758851124612618843462118860063464687796687015226800197590710015350039879782392326271409573464645685853564980187310014864743689067929703638870379200870133345524032758651341286050217242172904691587717306250878636104071744366018537473062923926911084364592690903129589098096129003716333081040897047914512336314788831780079168150410877170485239957930283424060601780920069986796437271318095027847565157054913240857301373481192618145947823127457045604638263341109951185075222370230875024895492864052260433598361462523787634182514018691699479571705321137721414329140024855271450519310465673009540307352108108137229900904539915896367512449589726444052129679642534556808405178293193474752192241431547456083641204176800712294247842741558353054788657331511211701264080201585852291239399242806141929812446230855059046869403525466615733230234110633376550384589520286007593403485035831190174154251292052515039572901133299116802809975398906654138026648645124179598128295814439526217743789786742059251436574289440145836939263879731039806852617514884780461228572916912910785994684157076274707413727923308949351223787763358004991565307140157609128921144702003267741961068542410886341078504725257193321312819987567092663058338429916752140261862258939004729403895104123389113463780739856791857175590434124237073787537680153384986798535011089387324777110639126562416739454098218220212229133497492822387011258383226428060859991072885289965428408992575511623757959296863326677753722705858387145793085384325522714649866444386951480260222541643436493529014764274162971255902473292957736240026139684562378832078324909510505374208611519730286587544821724519320357653049700785238835514988517649790561208965237123890144900216480635392020655934040042865686640314091650369199700222446617191801066484512538942859754338487860113173018748702278642450677044396049039435643343580254340870945974758953534064997134894122891378893457578415509444542375080256921946813470491895538738140860370273029097761485278316969218746327837777303297549130016797242487643181032643611882122813560914430006106694298388021972985050529307430493553146289196681029052221416833407091608709012767412711854271640009817331632549672825633926712486632612021673030876767718886146060161291739457353215068020510921346275277970032024677082590019085692535825555287787943369030706546289932600806270192996425462994813603533974775184435600225691569941765807220615257983843507507387553006826718987873132425784586651825994749755629574724535089022145959459507733750934125763072721739470990875909195363677421355368682847737788243003371884104582133048783620027366585594573889592096936819870621634804367203222041815657980768211722518257516135866545099077714291754733581172234377614644020575097197472881297036624302863722644341482602760537732962959681387437426941956717520864011967673451580459685077905376222542312599627873869983099050676803236655616483602395452064789127705733601108743291212024670975381015191392041576368436132860869844567858269297420062804073546872459608099820114560559822458898039516868965621552196573137071145575691961603892420290062834349196270066753055699786424635894556814025689332384068421951617521818816174663797156537965610220706255762735899173092464130021095448684567218043391056715576935866552847318064933662606411224572875951446016173447193753489448389624148647380626786707819056975031822844002279010810055749865247775648920286315533455099626862384702711685950885672937926810347457047719144063894631358216329315854984462351549041821828590370974479616478065616385947684626997347382924335260336693525950117998698557970199722259120791016994703462448058662236208575358235111819031692037699926557106689299444418713803747891365144791962807992899139221018248300201787853923726599945135246672174121018467014477207602437754755174504761404278627193812367042429724799717946320579025755303326085920406517281011138737623525083124935187198525930856271948426216820332701823878818425509911609829946496893336350901623782858615024176437227213972513679972685064870657523345071982833522458893989290088387102187719703448538746816414653481228958356914106792192747943341544660147980409463430356120090005448654900322596089003395519300273823446061567963378964551086935589627940965754964352109239631929162212698844072718760517445602032408476105936914550939006985268770304860367123531385979079880229659311123951116605062848702186407633861657651032265320508598872706249441999525173750710202272970544425949289056979626396701507419825429006375762380968947321196704502902511559677067306828218311513055157772612190082254152463384809071857413064902830304389972137831816982011304854462588331485127732683713550138144594634389471894040362415127381261638684450745859960015375257385275455418095753728362489232114188546587141527807400306574987006006002410070824453643820552632248509033849062153250863937232080561393876180001734293963262455395411342918002509607493207444817787558665563863283315908982597969806365701784914604566077337675993391600725126508532178880507725697587914322697384776290287871424448500837134335050837532116795682691131520937539274506190786114610878550854725099998274225823054531235150626796637250333132046332280828507092206495429793202592449971383055512149623338127721992329310928139003679723859492900160866367677101509900239559895441540599177105970929218380709230092405277263676521178510335201305107372978557969053261422308773202550934009791512663509696490912130714373488351292741721380743314212010343094742870205577850212933317350158846509932916096925135396847352176935758169399648336551437930928993267344888473341075876089329430644263012884585709836859061892467652414240993026033767057804070237567044831350683587335697990549960671289280147931211280004646338154973472744926457332356060321602873873860911772871498757632795610393491374525835653621741819625889046055924869561709446119105534242129118364329327491575618585985984344992657336256359518552620652529990326684664508302394283542788260475285132085620157950913236184729140523785703575725497997514109646104044229508595837374343664461217582609037008693538768324464913920522987887506999479931317869872287165011742113551603369054951335990072913868641718184004214099980267303705921664816774217342702547121804922370231741431453923742776929981032492375975927408554072315611163135463570571095444560071638856300528822168185974788590001227265785344074713944497165314848224489395551770316431431234554507030494895128187421230002060292903348428981746212671854315634599985219300773116477136295456137333268573617271360689972030702444720280712286128598437361876918281896312784260101329165664557117656863104661567300377255595883390136032797025092236956262212807117029370251174515186810256288742641268215920388709181981278233246005153487730227069750159385796383346591329254616668742946812970783813679338932791383301019886451739096790282078394163407769594442595436984206415869065811872252606846105982426999506801318160543961070698226517964284802009620423302913042379676960647777597657596724037499861131268852562966314555078497796113876996043545331426956735829939965276831241719809745119566069296323353774963910321889599563969354244374487169047033995939794658510821536546866152690037386548820733921975868524582660289033871459361195139056954065241961640193644959804860196186734160061548115547030779708646540182883231166076066402390284937316181650744248286619251080601887338725609979481527081119129289154567965238113964017725351371724400096845891298864498839868668924618371458917139344996653729215467874460411198605780771167466833310515917169471847688328457829792979889894695031416155985912747743921278935564196080712892714258877387162982364426128639550994874050857586984451677422030339520336530810724931530080682126691604102687199924487428187501907839895591778301639839116791735067024775714970815038794926634816223669506156063555718262921845414782278165239256851890195365890074732430193231574994786681324262428440735236668964213796512456360023605470869143821433913170736274188523165697540991285467662639914447494780820775126713425707670958825432591609942862742523863669481967424610031993229106212211531513798175620588974825897763277441975449850324579101080789053328499592776886555951209126580882661021159432825370856487322817631050141445587066911612615149247460090982660421943093525244867298734314004638678663222111892942906280760061536747479964202178517039286748136591356427332638908848631757345000101944638946993883574550119461876324970529607538896625219475653907357894642764967220858251426778882373112885787304548361877147085755747975730034064247510183831968819412329978568878887610256531424075510928947191112153305151603056250493553623102347027391165636998729214529735830230935153247838741282402663740155159680707071718098761137610255296511998948746576022932578713028442193895191127813945219426613346997149161197515545617786519662007524550966067231821078429186415933434212310869583993812527146337629623764353320181090466140081625209171087213796560155040485754806173576764600794725163678376850470538210332515408830027669602443585997245072654098326706053402367880144940179144177854506894605001963092643475056533949448081085787282046923840467716113530194691438946949831578308034978226303081718557650071274859944511935915878694919404809717627228380148657412796131035887581676043977186762926704179445080935711077561295818609041099274427406964766824554391277138283832588450638060959502015684103202375680695567968055169638721870355215673378114420744131531239571610170498952804460593763064253904649935900162775924558013159324634079039142726026857163078106702875603216591213185056664670432729959913427915852474565353040486253320688880565829929133281314717926162469227785053320181317835014085499972441034787861711261870165946347324414218179502691416290245210224042426298873627793888597747785461798946407613978065263212716570452316450048070308522566112948066605201989586036572574401194770473202137760507590841883273915241613758156040098443910267588728606520947592681297578428969165863425617618498415572265807403322150944998680728541373961373321785627506200461679910462289627417525947594169537335417225533198868789083758143925914211387736734301985657995739770722345878344782859044611595971034332632459856498093321165671383796302741699997277064071019403444046115299735219579167706617084181129561626517056534396825194639703172794697977138557027158891801495756931533842947810575491519561670518302699894933018123872360680387780562952907936853994521370362223885245034919997510976063842705644986574714611213230381276744310342812792700771216168810192894169005847777852337547142358018728329873011734824733009793160872942920291903726652363123133525644531876364725876542749192069058428856049350910839081036123013715033291653827238264870170777891825362377845995114303640262145400063166502654740223299618788974197052503434014511281200342138441242254573996388353568540770692620640163560957989816073808421803671934352406118991466947487566438661820943743395205296074986448055810669987566225007469457349907198370457528584961142965298228858185515502440145916552917085667186214007701259006249264899478741592262253138982602606081076532734788917312328280487339514969921973853262502608661668354806545363726709892395735864143953579028388920856285208047169625537454234088274537646277331510041088383590276691445764666491235944806165562578113623655053666560512518566273770567788916260169134832690582972015169087911870765116820180961622354964988286184939245931761182257707531683925858855404128702142918355038029603516003472088983102124666553396233448005867704792549568048070494432460695996833182248197403052919072103901606760360520706690994148234235457425753574118296366521171490957715990471999730643506896627528686599498638451029681894112326227701801807291285147844710150300456602563626486071145984915809458076402930772456728494659530132873893014224547713581668761729607418943499648459407105904210132922271211738717577007826330494447310808637346157682070391864051837092349094952251199443145055458948814190909101616393243036784457445310413822291497662625404574898902211199407707119980417531850916221179019033424324090651395968490633700969607015244533543722875762103962926069317650477601279547922850909990199152963254882321694595508502455530046761014932962532700078054132676387874396240701125275263072826633620631945818953301874384114295225158617683560820549335053975284328866234902223246946585483593228161799679103502530688039983031884440902847434594499827072615392480105154882809986460998871208979624652429239492587618685722202118707050685290553969190661016137211335610335185496550809448466860198654006363653213855163101320481884498762340927201352647989232208555119219251853472865664534902274753404607250618630317877707763308567471082259488366779030172169722551337081531439741031494748447538625485137584533624127854676709098859597253656263924230356057093744882476964344235613235268605540869650095234181918832447863855989799646901573526660091418328526124645621690639262543205006067914263491671161883711554322209296627481442955021676225571526053101035086685576795250138314307263092907181723087036248534846888786069008632918528381178446664600171845918112925367440890103088227197864069065250174527126473445416627081777178503535862262051765189505079452892145618446412832796857469901971142897123116568962008174789947972349431518936558012102675194974219891133044786938051499903657833839695876453587556434611264506480736693281273233728838442894393688575023388944161003671967553305857020770613903176164266051481112896558552644275153695126755220451654699658349964311815104903675174407573432878189442628006967456535761898517249035320172465808843428654355188090134311587683665039723573706036012447172283739035618363398408535516596600596403543539289482361974270387083500325465526498156069838800521989420769887421303185288759596527280982591228720049541720530572689022192717408146500615523556913829615233428683983355563995482907897478112757606089586496795737315004055692609190287177245139880905228787640325574064103343381476714247039096494261833653078380753904259925079967458515526976032226513449121760316357524216514541057357202859719918273034648153398745645466520564842350083968037029435547901816857054502748026553547967760965444831258686566019614751846668734474291482256818920412585368062809765315692783182452225424294012522678465999561275537939021314640329887191416861605649191728483431396523886422367397247563779897759316811626813733868784431583316185682593717675724854137983096659360846226947198272291545983988239371429683061394703989017867239700890273564182933317188956534249766124908812066439498584089779412289957101379921654023127120105425462874430584853415638081264284105348932427293341996441153063561913569200190457952477246168163993612551959378459185703835197234431020537751721798764245653464978995688576563552286106113679223347676246434875845765293290467759905036614541616291544407241304987111697150784130222355309596279799171334984031991746204916020603586711279174892942175320203797624358678396281483159545460087234182402791797310973978982111253263788351785507808440180874763034795977254519187950821751975593088814689737725782764915085240659514262812077503723249837298754767812767050480540314521890073425153262051812958601071786103279186036246400343254385406515859762512626573601148200019083463164635242178659669849027303021373829418007556795122746979054787588551538624571932348107744872968563109333888111615342845078347419958751010514256815077636318092638567244027401484439021101221662743218390265577378475578000761865378365032666502011781664992948208069729680403839751896038707533267183307893155976594794818463360930865709375348942557242546681442315085657267163783621816922272868155069210353782498326854285083960807027748038861359330103827749581621977314395404734920300968107405204811338916537928811599748101824344305594684087055381193726287687416912833694075053052490010251831446890448167746284199187053615404747920335032756566323547235641609522537854101889158883059858287428713854330785026991675912803501755858799742837664698474043947359599305093257817922177966079423101458683547681817643448300451692410259061353972105712509219730107284998626303914578369736296158880536171274078748356154674495647934667033010534356423267944480617652205443193210270362655783337514603035181940372549912739357712869524185873552508782031215455845174902298948164565042946462136112212568411374413096539498200649608677087695540346081088322262858277326407309704981237125444116857667713827754706610667147154569966248178948399250737554915258957914027471042106130818269791599355192437512024548601133244952533871531658880962370225560730103551035738100062521893906662877612965464546245777662089437994977659439427970207291993748254285112104141918985567858984499476069727198798797800862029284128341413908988075770218877001884815673134753458228719643421934382394898492617269959820147770881290542229951867252422696423433787041978067668217035867687839223257391527807962817993202969625681673195043918472525845733422407007039795456823348521295419629464290579467673085272967159882362286185827972943834397319335805146817369194975822083651514287889153412432923575304908061217989045977188958332228176422782160674259957239548711861545778434125140875426217543260967939353167629430912795910905309405735890153924381308924899566068751724307356080484020526986297139581959130239460475823590405310608368058010638888236006568834713029025296810983207629021292625772651110526911254160724161074688482788786279786706946016397042301775838401332661084986649288048330140391180915839687790293258218571061192679886874140008377663284021116220359206319144918676621588099234232098310583687851402155465409621285964537408692011026299205659558343946788127097220798232741467307137190961727038464685248670421201312945664148250723111084060412191571312509854883224458494297319119292502635477411377372370688584246402047493050178516714805255557372900156997695655761863675709424846306242981014175967201596001750344480827798447778645759853625229309533208242993260436995441066064430897489619406418270716347058151834535545168934743337059930104516427150945941854035341156385107301262219679808637279939007567369478441534865450030236785866352214672106948089022013508140158687909662453338861748686102478421570556225332639689655805086582490418616415426588343297188493212666704338514612373148847028557057939867194860825427674034527421611669055237438773606238368521864739085177344011304831375464553654663287130217601104521501538536306688653529900856930612221914301050082948064346160537950575941482697494035842605105561982371125092923023820615482255260883683354501783240283245858411290108835741327709699153161325089077109912430813803704689068913518832766179766465042709542000508435523927286935811447029144618616561383658628571403953565306139072525834297544251031000397428264669329185551188408060820925099201549311554008188341980241883615308564933964853011654755872940748327493303168560835883552550546747507232286060401972065693917589776565728924178999458983901686823687819126372154257225960201514500070314792648713677984822894620280862886115940528929683027486335825651013682249537760151180794445915827569947293703189055082694294592221068442601439624761156444918428136160430108864978145636269668358556906513313295931804830085693786979569960083702780468920528103999632083254025746085138127093417654120149277723883070841659353991997292294516320964430526206945715434642217809522206563967110729503001863001952626852450488629593791196508085570891147741517375251818361592010587023632675992136799884909286455206539381715265208946402693741896938920496776832825362795240585551313386840059759569507689083147789317854625436880832624550486023006431463018669863012696221014599236330863112907558747776881701586244540973302151562242001404911360414431011780948366359598352716775000692200657356521618293482184662231515328072099050794171190529417011841322958186056886192577511972980959328813841217369299220901153845101776560664137068784936288621273508502308907131728521269732981237443607520765401713899014488147303343143983844255864592018063693765644386247932285911292253978310706470444175578199071994139037746659773065205344562150252673070655622882889572893271385407129481317498524860949344155809867499403794974189703798645569700361986907293755019276924949945003060222606406979466545122148971971965895519119401124381668006388777879667493559872247293623929934117853537735936555174935388206415055887063823811854227479629941361975636780464429160831778012812166271639569861245283806145062866181578596149559532106374658335426585907043484284130296062914241969970010209211316459856509666178204314345880774277215851826284989448202296869731935191567405044210511555731467530537093611466615627922381340979038456539011662227600498053717387498597499327409835361349171601115302096349799261827341441198483615869757577561500583896839836371339373143161724559154062046145965657880645310696936118190296853683755730621291984250469130836281330031049470776158569515677124399553664148618188118462178746015407491565021160368440528536002705977705311389592633589599069904883055095607068262478488443555906775105022903115870230753042488125195294899926972499049571509518143245779281314475261110584346219376417404151859372466542522309255655458888697117504399935706904246745063789503263144742902697425305043777289515900677127420051586253950649727049742259657259431384082476321596459050550853402495287536631495555686684745953176801352111714330828952967942719200797090912403866472824826817535958478877042078931997674535941636148438692511547403573957862541915969636677827498644694105370433858980677940568246403640488057502493817936957390592585707017873344734795373527929083123062223381615723623613357701249938153556949506426911314820576663452266763693845388051147562552384250744117179606738762227851024571014271638510458469876497320588388868547584938108075492622044504836252080222139455192186561981066675208066129365129194146512683293452880360684485532234158046577874905623647903292624179279619898561247906137442253646288695366527023173244466620918858956509411001249020613362736485422560995044629426463361565259222022233109239253349234198469532258815001074142053738529323750374638141362363232540746984209726664776876220628455058884567793020859415333990876895638531078166965619089186113075303642854269509444378792187878269874842350962306930991622202658151894612120019406316964579045561462901486556481374530827307024232241987676013689369269408417012405327687890574311304137208506899320862219636384914453270828401146933252983942062803919128542778029952353504061173052299861449342862721797120783789364708159458629986106092507635463500477645772872718475438310222603179686635542706395290917853662758362996479207272113627097548336719425622833587605674718448360404241802241742266966406794471268481992452973695515096436649029591688862325952794809040705758401537913711839678217205010068819697428980951612622872775580615325302116501591756969600399780303721679359289154454720871885109408518871990195384047154037482614103016992928168276814089708226927786170413894519237486908701900633524004868990716735914250994136312864258520775641294432648968671261772213536497165196506127679686129922110592008682901687010051644685235989354527048688161574499844625670033693863001811183446097530115121058731823375704135280255050279474969277855039860750114091324096726363336697792538857289680292729173749725258066106219095864368502566307725396253892661906028388694770822299583174330883709603387559684894009478872869012505316805192880314159184764888825246440476120705412503383266929953122468428586384344530909481295032248322776542674089908193726154725398866946200271611597406250142245711024974436962004755690028188122072717591520383354969842405001411206810108328783202264052045863448459787419542646704066577759458165176314489474100262235749178262749367256100784780016052864866816585015613448104537711542173468963731249981976288477146016975836825220255765099966084440904953972528064396139964037887801476104967801916665416308572749982413966572602292333880615779120135195406308547880753705276305809405780784968732125525738916765701760309072643558796697165847094276884600368998437831546414010828260026615266777638147754267511636077580709121769893438498805325821598784162652100980110663253313693579989368645072826635191230888056509012299740564550466753455010129407417040680549071409225930312910236304680100661837627063520066034060555882303383915659302649490485431798605851936816619051175661632961559929654800101731953070861660418702629922666378560103091460099182468363867684992482059418691187980169501692905120628694232485409437385095389476031167657898531152131010332342736377830362099300456241267998973456725480967241066953812255291300379002568518041830055737657172401429954902173713370548099675158939977155341831188111600903227779649429901537970990347708746941355471337632578661956808958738830012796552530045288019732901678787638378895062136408785244258934875517177469696768822738385751792929270437658728201444882324315552520794495992693556419591500803091541841752788554855135416968667482119245540933273103998253366368904495194121002268058220716074968894018310983158938698843928913489289837715389698491231624550821627176263094859207172586256075476740359377089276108587743636087621531949957546789747179876026424672012345961420915332973980043068720069896962705182524412353795470981201914401704640390191282115374683373620504334154220809743613175215862418887906276190061987355478328827335639886653257801074649068136968002758913469879594273854453846535979325747830672299948390942784122998294967901134281706792163227293086135448562093322526207288253057963540884743566078204561009614606658685508259288450592589053406673255167319214107843996593655282803188202800177541138505937994312622865934128170339071736107735031348410559907546274334111573062788615270610573234561954732557112211715470523094265482323460069542758770137540007127315928496090548519729908681197718357320767298536536635145135663721699705977374677089410754037961430810055800136384865536815509866529492853557814259053829584406788565300163241649248532943533462203542648706084252049740811774795479866774819753563392796329721546792375358975526596712307472423591563455096850642820972436132307600815430676109211988079381952155939532915459295369113690341326041183067125190473470219673030691599879557353232090793616105455037010135235502211509747655218017004641670414741521393750955243773869931180236480698289558444754782874562639950494750121024262846076304087696496921490971585448468104199697533023828563356790148500564579545644538879029753215607532827967944244693653184759635425050985645184472797095980462566048097153871560296552886312905829613706383775231787113661580573399820652691763938573060299956547352861034167813112281941811489617456663637372714818185744956215134982934637432838578441254333643025058045071584896267977236977720176456434262199876063616839275420733605465270929778726755794958666676905745665149240803793191808328155812476123757480503462093990670916804989357105361275349963549027923168430787345090404146099867393499466594815794826918114023553740796272516725290221144759473560289529289021479403980827502186309884577538185351791123039391427733935950519573673167898053913543305615926879924474415037786729271471025297741175235308109991121298047002289451199318977141647324187652469458626335001464415923949425830855948740093387312192379142846931163245483275557428935254680861466835595436448375868821091211294426003057208895724376086440303935708746005955090238745578659872809158643188948180123627597713091542801844170289057892465905139502686717297009622664005009744593831416125954625178862970591842692941453235589480379105402935606724448352673054100501940285694409898166643014077682556678991834757911221326167493089487740752989922343739582282504599146314195732840287127509458431808933975451368326903190908465496407048485315116161119549401413380974452555138551539136691890058644246908553474259002154187916808376399607526479202842877280511366767940298146191837510055884599119714264282810363878440041032589893685404462483539465217609083925687198840643402110436099275898591655330910515331487298106455308157395408706981422166511345457969650224751097978713516315623924761979041029411655150743794639437308380697353719087117475710066675999173062892633141389663779798897473939937313517928063390002960265739093351153996736990510993661107593222978614455271307645952273342842183667582261319008902455185456277668558046059331488874222558134423437935767153119528489583500554867471946980364332682061144658830439874544141334550104153033702370385413708136860597542165034949852437521978288664083378919326681520253245724851813493834654703431218320089266393249581256930370038840549981747418829740192967942975487418985775449498050376930300216961829529501237867953696608115820675738390204813863793176800742998049122981144529972265579981518888676740027797780867578636752508848264107159024842198520956561298483651854116356331445892435152096546880315846532744133599688727250264109376803901973450831858807045601030332808144002058447739638675306490990006081898318240117534086003440223963994385513550678731195988783999878947291476936039041967454848116715388025308945031546216230498145835226665028401107748895574281418226309649383965116833998914831229208514728488793738659157108037372289689558780472428461075403385093354067162249062964750370953645308116933836995437118201345034374921100790125751692049054540450203010945272543542491270252355227243670049796170022639516488424160886546520045249170443966253544358754978433236737655469773835739375649339568656315884266458957965880236957092670941254083587117018803654717482408661150014529635116406910042462142194646194387617347425364894734319815476732797864231282236054332619665568663206226908521301305381604423021983473840478728248316816894567327968475962760564487528407860663536509816215962958571705336686158799178595358768071125677196953972752576767489903244392445733765259589510541557856473341830632828948476725076571174683845375341274376885947422268129759408980914316738525464443118201021594253154777949725602542450999136570927177916181507753611862807362245882747815967805455977414777594470519020222254504339072106780231765226237294096030666907462142276727634034647275935364557998514360107448071114878290024073655587057120430763153747299815749264178598951830245977718645543910402121257796298990173127097179771048591400190115523355281800059788474109396058821602107126937858226207555225291714411228125337037779367132165731478579289593257231510081525408825998890033517019052341990090109726826192180327980527001707938343333504350905410406592951812115057802679354480159963529770637994897600131023872996576284269911140439577168909554622894665064489294272952184525356983661762394546173884423883879651277662710313017729580333341044064690008112081699105421293631601329216877359152531211023357219981736924971239309642194270544589755438153574916897098989821762380904554020002574007375615246460162777981261298961540896017008345663900515028440866853127994903990795264625557062943400059227563120543775670960944073231235134600312433613527640410328739370370710729893678517639488953315380807896068251702906156249290879658945067572226127246952563402125180673120592086198156729753393932515790440628819574172436483361609804592739424565015695077376809122240763409464070789176468808821607417654281330420756602445605012336305902210069730267609568840687590488439554563385153887491601505130941767783728396872998241396701394330920327114041147523165910935361602104720182105082691261258327922670251252364947809350076948658491148216492170228061423455137622239733765273484004803288530314098869314685315309256170453693644108980203121021684711406039256219352427697034944521489688854596074227825660705276129911896948155673702961381832747180621689664752106223608860267246775482395913331656976629841635790346080359951871927737625289759811349650236995721570994113360422166283507885080111625679585890830690435992621881159716044983104332756268624555909714895025988358814665421916884719066219637496519644715065233757602501707574369633384349094396642370674545506851459463061733948054928307418736570143977176506916099178006296899257813351504246432926896500914802995496404008498882363151054757113082810980892834380756242268013109764001498125796634052996302766044614362654628519438377298007365465474812606352024163334376143252256109058123860942991657460493237472309040747486348719060397379884060960313719420401225578242200713935139639328637710403947247987794624048119621885992954831563327370748784980986626304679294204212799962300016756222532601737094849079628836462246337878230811546865277601631740371031499858834143923656013280567035277494999119179458334428609390598499871836985892001467870854257780541903274623971106778159757411710350585761072565387807711122437868724778194173901715416918541796191072057502499605507151184575910843282713985323162527315490298372071675045547030458685052217708632669524573828194701675212303945911420061199077760347313988556366414238945721050688043611508048863505770034225176734927400334624329385503047719605863327260714450922601301922827346786794220659586921461004182257603773707765398427926768701775669632668714418155769700140643964606626722953032730291511498625238429487980983608686179614928060950195177094767181116401846436004412231125683591452701411039081035492613923535252103532518347125470059697102398231930539944177882449071742278155528457690695623569059887230523644412884932330382679756521074085559043037080579804370625697079266849820310917269385167246981221139871481623960751730477425508155703315950745506698823446021785285891736890202233884092843153706140151619319837280264744100284507775773583089811149796187771065026023126576084528893285037545747885817946447302836164157270491240193304412557626055002696273156787715338326911444487193200962953216247688034420462458665995896924353794846515434171992533557426724154632054118216547654507012316331362864791394173108581741984035993168280719370535416344265680292696049218931297506603666897671139322374273468158742449287025011494201506130237943520599442981818611757063547298375735754248032590729866400195956466431770508713528981366321363312498799835369351010034381342085245616989231764940107036549314513132365523988164187793758758102084094422180576348153422180789773565740821671308307139178894365848181467996004611898303982592638732356654646498092419120141151426842310936835961729656262406430596575917559756677285447522478133775252647623513614994898919845538464919887497915082514816395638223358287092370129900480251407194433311085662976247494995005417190040137080522098606220959232516661050330247011932813817577262893525807158651619568839347308549114810102841669259451536110853805131247775838088533999109293222886966100566865091329108548174587071053888688705923835282642424164893050116784338740721900538036298730279662444578261338462676791762233294295887134405423893719059132178990396693177731003249283169926505396518597893803561488860775529582961868182442145299138067640977551306784625759142252811861587505930935654273819415230257697166102104738434345876259114887303716824480620692968281341078891243166450745134532460410739787334302245163683912648168333524212954099769069654910445861248026684810983959066087289380879965448301339615747247215522556868098511971613314084670624591581208696800859010789147926088781491681509994112068502711867596752851131447235940127662818969074739601833703875142389347782524703988959542500144484488515634125707931208623344758990293674571101144430055029487448445460646993456779515782296915751250129414616986194268543734128720505686275739911635685494966121629023539231318885535071902676458275832202909896561566626161570054794641578395827711985979639742233041209863339223477262797879966021315566987801433995249183067030429642778234828995219943307526699982344382949184767632555591966349013281148573161103556013300390094648697214499874302026857167163143528525243439641020040447376559444148021120280507589389359066077614004371655578606938927003786339352690517805122999214129837294422527536427581555788939672195429661977676577889812212097862389860259595592926045731831834771340481719534520873790022916235604860293011352102890384604479084002477360713821622513950870082281148145081098028067857057949803818762405814386178902015671185627904266810943655085410479035075057627049267883458188405809252121561129199661185108361109159250967682474467691742514152127558185799082955882503959963863399183421003347925280516345389948197879077934540040693357648024576458911526235444049065419217840545063770708608485061746384897674931077448820382083956780861969222098530258733364984124501778199526342295524065391967676159926724935823833889992110998084720420129404470352355916142560529682418785191796192444772869580053971457605783394876181723156242411200045732802538707340706774854819430046390701143404945780511178636225952087061430010118100864657845434138501763293475917076211413978989905491035766928682691109045033886079470117478842251768886726609439797220555561052678766631404431803766048104723879024293547367135859386839562040537631996217312436365965831161724425762476017933948998984117990698230727158609344875703598081757211576842578974168486543756562561313560698568209468675936639208772897322752116177520768592664975326753763622141922822174293495101711557236346921728731757807011166051408455583476832827435292691022615408171774824361087673859033954633449773443676930608683485604551249912480555949078570085509513034659805096932254069535529901781769582569688990598697993322598243318835307937969390537310021745380392229073789368204295066961596298186925626943485966406319337762195408226670603378066905298078768683791291203654695604864844889912551871350361324757131986967322880978986461319759501687517111504615995063166225201070950922653656150657003165972355110073129885228069879627019744072878679701869619307376324642423022090753315109072731417661924305791489890017106625596669941339896601522100229121635713960749977977417848044404357057641663828984515359369922465206915841579592920876168288125699837297696244754436315829329351256697256950235370286120777269727471597920036967866146804924375217441400214161235723096971076908770355922384483853908763943743313464241604623822320025715520422994040796222364558238614299839901760242807527543976969882086670185067706981499723863643102389791444627130195596306008168469540542571199667386145485247332209326585267676383266439104273144554181941984844807517109919882509087859179015131851545574169484553772569123557883433763733212657864307098839442325575331302264149184131915924976756227434897444299288124898394178305615749109702208748000496276769997252568938850963072958632379973321483895628436763749606795371802494530457673666662521934331061781848411670675173918059179788543399306535687286984443546507564525794403817309859397111066458844438330015575257682983248039613501181286960357869576733704231563435247690934777775777198832413931743663256890203713475058562736318282137815854337883599298927247053232482955607998047051628485615891350274684010263420606152092786518200701809859769658221258493408085301496636948748145850600615968139931803586595986974633224933729588293492837715122509571614326611633107304595790986358381879631132969028503494924231460532704231190426595174038920302977844163877100188362356335971828551837027240803086422299553431274955581166971618524495155300975640451933344803548886003217278460035046496697562717734115918597425734660342445145001567935948915879013187699027734889238530801455576600304934832277324670810455440529579266814189616321159652476858546035508361243920462588256753034674287685174934612824492817148233974244756533846397659621076554117143055590696134208234695404983879751010809245732498194114566643333080898829256200384768330870264008092448568638563057040790906937446982300176312368718363508385261869245107132869038924234032061767615060686036533254778756539398738761590032811662605611671591555511093240632476114002937749054622242573381414090384748368080430184274729316367371187226608684688826145802230981009424371889941265171576372708529071050993421707562289001604875267402667224005416208855778672774576558340667394971454344257953535415921347354139869509359690368319728872083004343633347808890581686285352639797592548340920011498681347195174793149747596362063660709990134490039570355565838970630109251242290166912826570630003327402485174164270588434703360408818688631352730206160405247371251821276434147737973883719820243333636863543300361259285835789912447150627656574750369522222497466052376362357793801352291644502440813728649322105012324425746204155564729373736375018648115776081579551403671278976387029786580933099101555880903915315991438555644112442350004846900467846976818312292555862075963291895068669253477449113080131680794979076294183918553224930055457447392385273599392586925283291070168640905725701418290665403778917542141139160566931743181760260703656861427485602456416709531990751126765546735248630656911923432874312840377522388075402091993905789171583390163206396172760248018719249912256106601064349798284860183468141043104259121527890694323884072451766320439970588799470865710005695120549317417286009984007360427342268980559428392451619158273390452285964480828310729526567301578291328129044693074387128326202562069929207372824869102581920766827901126271972213770243801345010185960538563886029306047714250818308575392525853959287544293190631289493160794194589763422395011089518710343424128662365959817475571841383947039615277353211319942835067046904649733557630453091741542311129592002286957337021618911843334235583593402139728560765341756853684056178379987078034564736630372607917733027056271235487267147676965482853826697946820697051670222315267619821420561493987300301218158969538300192969088440894209357365412110125225182072372791870135321071196691616442129864882927958369438288043706525583295125156037252624080669673616524724909046736677890243982398193011931337978259953304842370075011851871107437027904486213228399246781213380214431179167768695466222751737124483806140543486291000305299793592358270001815216363291987677486732603776585188402940246276000395653515102488059732599412109656716739734572204899973881145417434938512569215778640775699453479040951016773337285273315778745477083673150458504208429857462359319400589179376020501646794748270624989778995056851407289127470797373536605651554267577568270291838780603030517715669303591814815487535983275012293157985359934581380660601678817527453527787837477139384860422456663125028557791983642676539818156007034886044294381469687186563391337650959002286450260946162403713988677284322971981451034823941444191057048844963427915011887394467142094552330843202516500633796027430027071392554041830918518011965859176659067246466414771706765910275577713532210172757224040295794623907021861387691853896347727050476892972012070822124718544540286759361761778580340581813719359176476932240225540423222436572857824770942660820459546002669165092893759524807732457530054681860917452411767365684072662073177078986275837562004332888007902558776533099998631475411581464834661274043800577866568541828641517197841210519568688139704730949900549484451940805593635194539366917845092711086147647302152321966041037274881821963675270141840883617602495039942969746504637976435191643069571946334986205073142864487865913860492982979562672819522707967451819917334014441142859116242290632330426020431237404011801085878321448683750978429843556374431287726034484776972793738333636821941843942621520345615514621299845317631167357087894852833463513678683428577782476989378254586140249323940874793769702235370993451602628085749206084456166819881088908491749141551680979335910559566939997422954422333071200483636114165538860396679232266040515763719003613580591505970055225607223335957892299759092480577473352764032977158283088605033497401103125363088698553404189745794561247079945313428718801560643959430486711240281436158577959362550355795178770915681192473628133954139780408038459649439595485211962564666637158527856023338775403340119700399467246154733571438588763742268737893682293952228568625681745811718749100255040616769228751072078303004561355376318349882593086495099209591967788774519044108324688995450881665768409411641980100057749010372058346725230296212808751341167655087290582836651645876882076374744167878968355124404118777029548044850168578584003178662605657041694862598512285089940228255044879472109482366571060765223939844868267655749200840094519882579516046783572870315584022094362818629318917876949509415926230438419996003939608807361924959624267471188584704984993371943293413007257009824770909448527017104478317107494037394150411138865756571628670367476331246291363308195740068276188649089946439321453305364907586794693771308974405348796868471128811301442608652931639589431264526119324049571061818649517553306891016269253070496165135658303859203829404885964611678801265007421620107797541309570692718832511183661015605535261507868724013294604597640139210324156897571294348373233695105273946304050288130922208438743001617779528986460696920768236453110920326258221207015007815528700271772487501135050468519424386868947039225216250207706967892921779611162078683429408120678355637201265403920815990366060708182418108020683318916882717765117119349080845771932763956882258371594851343064122305217629618808001265813396233550050046439075522779775507422274511411667583966143342108932718061248049399470148129203828510844681395895842517470042501001484529610740437582396142539163500204745163773657884568233214756335596763036503658966306628526388927289630419495306725259964933103112116588876410025745151700435908614095685362108130995942071088445433491628091982911171947027585315833756200271802593697470137666224038428198379049231944858050707591676695543413244309291150847155451462594099451328279424440746508252184696035686709208383531556688283541710269405472565353352120830226052914141021522755952219766296871995594612144384370406724928359037635737422943216982038342445030552689286079721299589302736504289668207198651525673153950155637296794941294219795347066325983079262775852317661836577012801458545333522010320541399793756550063639160354560964722606251696809493828496421899973558074126453088689791502664858789737391243169167917346920585575565696445707610976226225104161630583366383079773856047829604376350891440803755721313813838775497725936301421783502446512223183261703473903258646045326359590486312440283038657637296482993777574008570757642686453470602837564854805248374121539495686071483398879808933864463691697556143936586828809519707025952384538865347021324655333926193314923074318531456631086559785152640480836606166996298199098906487011668180068189448613725985757001909908643495034518810350229815834373840881370063640740033602010277197109642668752628204553235802769417699328399292924357068040796630906882506153717689076974483180403062723485677418470314494494028735930886124380274213836656863312267468396256717600448681734904170566195517714255881953063456971428118485324618502302212059311999186743210521619220152574511123143977742191973289055395271812654718873126535300911194455398401721604268486893621730340224236276532391637549798887040448228974392365559278230192889796731509178192794269922108486817021575953352037412865201322133629811329108122718455391588656140532050947946801098414362963522865402201926857981284121065245936530075355002332320917292399584832273231009823309295034902644002770940302946117579573658805859101254073473567107769177076025301072403565688353249472723306820573643832929304615954577364399229607758340386850559392234498231497190401812396350928405604801801843293778682388215575447125036348351539190682235955825489883278950086767914282755171211887624225083142565549122585910102906135484132128433719750122181047034533402991554156841927248059556125719724519107488498749219662479398446155273056519359256629311027009568130135221084644880116734532199500319970800868973452930842102850522063332386793733872579247075174488125652833517359911460477184680377721356222320935265326258094208781146504573440315651655456564528167578834641278344266245696624778232882486573363299961473806106096385715644492287240857149292565065178158582232196618922992876309606428561499044956442381213196527080839639582765235593576936994551385822401515520251906861767437785888334167075236511828094143834315572100378308014489295745250586809466211011272757068928995339468365844901116615347383110138502819760711636390099406517860413893901933248126337483246645319656063264938564037187834741558135388984900991079152571460248056662605247367402665884628598643380854947875961112646780104304905876606328745544288864280142247013393254731567652845954623481613577879715559497242730662640315913282647941394017758011367098204658641004469240512473103286275630086688257294604517697567239950850284795215205897876294087206529490253235377711657768229276061812357487012213786181815545143807728733265351620066865017209468520012893766882640721896589416603457333897045927948603332731660746718233656285149595807935094782905045164113308483844002734734933079271184754926488992332417822242213462251863529144141536143888620467522913807818772263055096402688134518493824495994699679884242922839078967015155727551108239952233462075451249279414675834870412180990179550414341623788044434131711878180365353917718175754589422395516117635284535247065709637831476782767177377039603012476263343632923598870338849480938038464573127771798544625340909650538067325913885088495326903749501427483811834138412703647076615324110929970289955382083876699075597136640163703437088079829698446373016100186854967791794388202483421659173403256252508711689492876068968168089783288075450358109451484984393211366549904120228338809702070703619591996238552467751916508702484268824658814832052522934893866651450504780634920846820008671834459479930897791695631940376545188568438811766745585646537471572999917503126768318567657431795907382343418592374986430296183529827874320567125725607337190113032412529484542656432692721071702971515898972529583110692743144528238820718550437564924154767941491660417372029414462593363288615633944431044335253318788504195177244734895774789983128108013939829549764820298404157847659557053857413085230162110789519309674422098983252895997386861833838588745243486272584697488028116975273872512199484907806252079390532485992705140922058296214975595546948303751567512258541925750090102819306056208054278949136269823662156987857878238617737911586230462669183522915669325725249547325598278293658256738253210211342267498941209635513944785637259747729589572792545596672709529438744540382765761514689354129919934112029837005209795971648719973148488291233609912183481386546308622612750211117758904593139588913813830966626229385953677163615371188219754733993900981223220446956324690705344359427714293522296824463412784496341364404074576454349961886737954469438198136828668186058226088071876088119980642114534955303052735711219371932965827032525090423421965051190085552562828262437421384295862369861060543540237405219579496113924609167148739382238879852768383158244519889080249762599352775860078187761399586340009820726152549397102585193733036202985125882365651918133297209090046619060664224744305571280311520326017773699395644425264007981745994418022556250477003323695971102424431973704667052333731223632082151326463169896628893216205339284000167516842349397080360703824475551129484889937257628899798742076188955532457744311316551475679933643025995732600050022858749838012099278620564868785483190224686194709530799213018899944815415447439055773517328780542700777557650025196669186143908652220849068428602023223413878721192507257455071671919576524278889788625572958866494658773863260209092015035169694495294786313068538267413333318840315722815452467374542157846663327742951436224069317336343162762821742369030882207475764461850210408669720297748252762042130699110952380955756658290730055514949195971110019614164079368870353169863816528975963847125390495157507801054786436617382859993461114598982875509585677742283320339308496464721255741077068918258112891124233540985045695409650565199600439439217870219859589615214727342234701367312132944368167326300515279979942766010399427100695381726753384553409620129789766154153533822271110974677986657647127614070646597558571645359255647200719503610010370002270417739247630045901944031103906184354814906885385130417183890747589023728644940273656816890424667938499169507906634479230406841152937505601999425940689994682782518200900762562870328136211117083288442184191591506286080488980028356906770169668837024631388575068406752045658284168486170963630459600147226207485710044463950894898146751798931450285544462865581167098321884687154904564268615074891239105429413102727051484850766224714148448995024146328013465490300665411419451314814074166708788329169910897646533918008267371948706847992879761298305418161609797674227355128159884909837324430853594166755600095505161002365250421229289989587051789030759959843632657794827383584202211305013400277786334283058723989899221095087717887063512009432391958307426172312956304898703434923568165970331079833991333655457466484227194595973687022014559607460597181955713312157582098561611141975674413040735487588319538376725167442732261448295409443272383750566500053452349693296972770526115864190345607211094839140526473175900079765070168578695376112539815087669047830651074158552679307894556166480569434073701856171952901748223288770743189606330350921059419872619805118060719767965070391981704232304513377086254213605328056655223316339050565536665750128621095802836999064292323901783022887466809192219485791360332448703039703061316938342270566726325687613284816319504615256942888694314568667123189730805505146030362091754588960463458692604394044157352861028068488209771765014286450840759239000650046987961749433524998161554666572654641176295594251310327211159497900726505195577156177497487759485698499793476644985503734353297411308529393836872168211244003146886441020263284244843288394320779766440046916946255533165961169555338761508322616473516460341316891228619779099756692494166376019004844797325918857165052643207004058849575145530421438561473453385050405988796992659498454829149215637541365647744138897180977825857826313831936507681396861313264318027570388943226986746075693557975340508947049105990930307973898882561797286096363891839893208085831578161934173102118202660376226972678505085038386418435773754186291970195295976170298651977263821364702973460461343564939624604916887153043498146372972083735727342961487395908576344145419405960379513195741197816441760355701650450392083383970212839141536985583381539165635663047368546031839544544415948018739231658953421117278609667488282189183822842298923109868957407435443074991210566973004642790204459956823393352762551196167356157719305331903427669557329114862402760172548485011156288689527903152089040886288413525459988090720150349182063764250737903381531102210744049293138641412790345070371672171616291071254901526357492834423428165983771116751563155867195461864650773046714961365791033321298416689777111026114743729199676941598814141826883539298923878787873039205280968433215035010898119115581736823742370116753704412493755847912993274472171256110251845023293966351987150298794278310553468960816158803810795144945903488076199066701246844554469343104132001238564942983261595819572871365011415527951744542331916930204777886300281515607612053916374821633971706530607966245876606361911678792732038032013896888180315100731904915843634028166159213206588181848772511503600460361323563054268501114644347537141674598941073117536119101639299067944102944955774991833596160455929628600804090823614721271328567620913026532881926037739685371634324818078048387092819568455920247669530249022277543353087894729153711486757316834135327671981078900894674828798399882487597141239023333459879453538484925837239710937641980217258486759740077972133728652651196029064780154291773512422492171134963623433556182926312054461276979555811103632892650456671104684702988580793607227304681733686568456138903118929799203425252931722570277857799448038693740951813629083817087649382551732998637176883648353730383587829995156800235311750231521487033845744247142158842068961986723179606324547839719519377628998627284323780993761325781658069264434670823064274823229701409693962950186391639470983660634810690083438027988969520302221133675162255663182260563224992821403496325789409292054469284275955524499275341596269552584909001434480960576176310880695904582834542155063890896588284414946794677815350676277551334429609202017109050369024713567923034465627058869326102486464068947772181135997505622833870034208468678854187742283277504400132902648792113660008775827672852200424476335651830348106514913930151966470537511166885194961863549604730896205017363154089316682455501835471210841037093833141933205454861505493088846722365596486935451151776560960374708316613304361789740794936309551180960622615572563277910246512810331121963600960595976337987252515356516711487833055917178081560144015227864209473495602135025529724388221989471921307015604974403648489614623704801405142365608200041986992412542445154944112325170997467336910771098909953939561042549844243310550256228805819595865968186918818239796399254873141135206494755556524871645021372126868321856194112216978590940556545929859967048226579344041231583834979540830437745405140830510091714496841239287981448754897985852552501508931051725420689935290368695635464235169968147129362455730504060840926199525261066331119738170822558828811032243333406208315775260628901155903654246065470281950418407899977909991510786416533669568834556036671646605472933827886050437160890274677812779371214990673292633303907581008665563386144835049837355680508415778572684332096767457096981637075148195637857071457915314920339730110717312966420719932532825192463599109478363714918206807560619639351118221391954936254795611650611632047215214283008762834603397578182818804245299188344965368674017273342082557551783816594592329456167217260643455854973758149958078442681174277250089465837067361535145898351598549737673023862659672867754156429803327252906908313765822305975742499755001819523403608574216737788653110083402548853402613236773376061246463161696820299590284205154128983995134420295606785314582567468036092263885341788890227247368568013558026718146738287049594071804825372978924999023395906073449760734716173080837528688264861183501446173983223418122956301489763497271374290762372486621216212133264409021218972389580809511552606812703364977811192368837331103624145254172330730434396782516178856826019836615845069432928133846682107979074347468406406483387807140198106610292608672053500791876318331897030843914304879170610900746246075945347405428210268451734446108252421380052913757856996003195620861917894650136554073817697023876761577738503008181637915953646410667715821301046683068922579634985201781674194988993329911649266617611248792859393189051175229921375247423057953734550478756211660196952789680723920243392484870892031770099733739407302735353536708284670834401630645856135764636542180403235288270435273938362024905450511780116810031245643674845415350736014975471061611092255586958016470111904503539046539834773704648052014877605203831505992374509948906984872332690684617732113601529459923514490621314805550909875401128983724710894587615781181086411780127582750616099520551391445994520630972062715043518742771251789406660659940248854877678983948497086509763163765017522471148046899649370714729478472300112638611400658458743856902659691808622632329568050160565582596676630009534744292957129283937304565408133194712643791113320770485613455230404132756640149122946989960902525893743325052903862681919584000173947438485307254670313473092436700469698621150019740291621741805192979223555722159427141006964020209151161961784820317552887544222175831254492522731599119208980615602393549237755964661664365180404321185121287529110562305302039981762417211984087755219621054337109246807160118953560796966845381559268028702212858652242021435862878015005513910722675742938148969609409328779821643682217552914434211205752043610030712013577806814138434131012087912529913821293346115809079487185056138308674179061078655322083454102041156618735305652040801473546915605942728292049576745187902013959154321243536440813056837437021794184745604585418297881246369527563108478826980551191571499428186870182524218921022233903312193605181307899912620771347736045481725001569974240086814141945520491611781355363741759093461494561202246302337859278827299609550153399369492088721399998065462431950686897891342665939694107911142862365299683943189867888667352563532583672057920632874533171540868098495530393238470206674389725605860152962281551281685451942028083577468453841450102826216219934587819691722249373990984370014216433142520025147441953970800683678247898233004445728614645263833292475234596405662563490347581230061611813532864351995504693668563337734700792411795232482598786544466502319839984415227593274988276858233842990461313523280134372573000289380609708063501305937916292870889109194839517261929228711625879656084286416157377081128563573687958118756703549678781682569561271071223956847953628293964442706033822433211116725729955486629569395498784467037634571124843132946165528015346051366277067566088676928777793168961236590883611369747915000896962983875347098288868630312085116611128960957441974445701669242449130861842711434737259758996592480424940176307868691532062436150135438374213309672062812671016763729419314453666365805927881920916966422467483400941392391216840722670810246427364076332631893293484404112315020016721116770146001563390871930074062457751740739173356411667722648178108561868122278342498933579592237786419857319562124000022403371539349582069613083613312797336032635357942887427501920126357969082132041877662745721187838980373437895082749169313781924711353035532315077844354463566856030284069485568813038124020882420575708138384809057852318992936622025096403184156247531777097103239075473728429685146309769495690859072037829111081250317918185878660115741288757527946958517996419431286388820141818760133139712177612805806493278887203956896878166685279499945399840302926710328511417678907698660202314943187085978674882225932815908938529553716772486810015130941637171326535422533448374268925779288805255246934167713251181547998202407446132858136063628925882742817860284235397820157197095593017428893259861696143652093816503473929006370247505412542698764435177963606017521805299938506059567888007167528728548699307363735361548896598143007605988840155552653690541354930044229076049555056395741225291527083045434259596572440092852765727239461542394209096072998031690939277331394515245060085515311578165570912164525447299457875020809219720140278792502204355988808789426428626171187479665302306135629815701822907491158839363529677601348448406636764279828880965434386208620553807041311208262117300334031136419295250532879685639080977762381555374438924758185401206780792491087758684543997714062712309808213479270535618058816326201480143830907253191799304264587481578380096266225001006323969966580347676812709665890988064752282363695342365190795462404169013052129186868453187344515269053859317256931178663826127984240305379721919059071337211150799445882835735047470587246009538457730822121791147109419987246482063261760954455364763483441384918880931103398469905148677083915404133514491234103734532066416495200559798962547658831324744712201008285642990167873902984164243983908901551559742298864731967274260043024985873531975026441065735105979827109843057657800927366136804948006897089208320563383214707757045007013098495099851076357935912075859481132050056334273194687116600633772054923450484887939817591601502659506882767819174169377269496214210690047481449182861514143521089130304162026713734937974463179837904897895029758951088706944632846309810664931408518529862383985798370943786904855323950833555665254597027323072476034804734852038908878489001753279606859590787964424041540134197675415223932929603517924547542576500075136148759360963755191131706400214489407824015865631407225181091532619802661678412777004971852660088810287797363738885851123428465774688334229063906682682753461277808233070638682347743431527063730458184052868845445616860374894296422764651892948402895885027375888810757317557846885208227211376418526075515220033764534733715894315722793582237440717239596841540424276628026506394438541092825737741017554855810854461448188012881338979308406310479401152519996766786817967687288046996119112123282873358100077740061940748088701590556448515661323419463621796600883709779151573379375412865327239831024347114143199744234738729878035022536881863581502659878720399702250891877076718876439122045078233530083970151031057755334331970639102908392381501307297834981125161520179368376392460942418512687259569114501296713354614249996865140749023171392118582204107268029841551674510992798192748357208331490888992378823454603033159471866691488222320132315656679497861887287547081248502952159671239344400141248632053408049589493826109727244400303900410833619768830184570384342432376187573894688406107025781808634135935633258012436851616673280860324928976531497858658770689844636662407995531139144640824741413605403380289132474233361272139559115926321606562689971737868998642683156352562576734134917257371663357277600111263954070115411980486730737366910689082330755939601037104052796309940928996187182487873533529814429135597288397757391759477362717905618780728288879591442839718483985939437317066034880005018675243082495116384617899173603087670187982246355338832451021655549843588505470076557616592283608882649737823615244765786715139266134310062598790909136883869416678266393723731074246988240981813546998644451028333374893340461537707306045658012389129438872057972305963602488201042333500637877586755889679950323116065913064327082468926236355259333636404662554157941437277300144301597326123505030261505907503842258090189670449136751540242670974690239216074409551924882854305336096054119527121651514835328937566375992795208192858644637780721467761224738669140642302967514054478597159673804317671558350139172185705790360264714365600610016796119442829030091142845915300831073248796503336829247984591669540220478545582802671269755677416747792248530180229487734999916706146232262103489416411048672003491556741241648149773672631250328290459739499444825377122007857798006967944787268402476965669461851308013564709218584084259581877446739254132859796557468398019203229458646981566054746132052209138442660779816241471503380064360686499870091517529907303295909734753415859411958519961902290294335924328170583275717152891647978083635735595023404731055312200264850042893731268414703009670207330436513934590058096455587077657434488282767912515199762293994292212554678025729993745807103303041859387210558284121464481702299686779826066594050876799711812693599556352103807640489309612325625354109744555865759428745240306662955205341913113976477949930967124951333961742785206937357022328101377113157871887712896478512241672276156407028152256142668143556914376426162923143366155251663455437265985435188885685637293135045819556278318538155365750683633892254201092798103751249803270472590840065812547089775167377033569228107317604731826737401545102878807386308128682905092629410341657422472911646984791488466930506439462756476687917929543309261956587159218740390692441516662197351233854892582169762167551909902708924049816246334905107849559586980540765025025389837788995262450783089425185107861521414519941613155553149878496981578958076440133457024858898190653078466090670672007452371789819991799774198876716962938172302075585143618700364239597671146039381514567155951968018476618496277439863045729340833659548021314805279705451962667419518358153348270688679060248260208678407413739838827156453266309191267911531576593778626084058884179287928401418843202168556881755163214154675745625156971994334262235234673829414607433488657375899783396508098958261052703035755352698539298460915216420522476443824560361675610185521359190614932427557710968137116458928034135814859014421744682668100849292069090004389318599009934597351360094064414658529227544057187365380491724018351534678440734289003419590623533339605592463620992199377775511573106639216725786613851648944879046693075794645187993026989871545475591384796432872462095092860359975337142109522663014064592908815897060231608054582941744228239389346839313540566757200383128734543150643377664408601063665524780046516985682870631046592864172174267784912059546486402531215730212340323029632103440354347246474289958457738721361748622012743880335221851888156339735376435447831396700535720116483464521291013914912581169044367781476695131880257491975968942231475568074548561106188275790319172952256989662972198042815573910608248623073229105813788628279763437164543491026244182315713132245798418484862312120489424017182730754816349596224694385508526447251772369456450165127778733810489030910310755932142839514979581376627149360474784462419882452975168150175616766247121248610622611625269320601821853696572059462114533877648499527503112580228482360401364814983750068226342385775244768777434903315791095491872876939215170188062942063862945656457596381396113455674111923398369963067346669616952268602009146134615237701922119424806683381533035311760218648363244931020126459322428891897573578808575794117514092784604128360626550174268195493465247624436874483776637748030540840082012891792339708059997154988678686816234253005911332932797222381978221280903865982008925760197328369229367917664178697549402159375642343692293888277258895875206093847617665027252832457313320539677397511854941277583896198042716560912915530813613330144224235555435222141982561876587222931141131312628954857899920156401048044386804315406756347416028105728837586571214718969021078391178958848953306406168902889864403487734287282787231553074859507553489283413361813703495334721156154002863692391528335419877574081404564174217669715287422707513543132413480274511764357372349563455137694166028869032194389463519534566102100801059551373238896442874133150973381683533073511197906383677386207622279539732708486880559723766714750369633893550526658980122344622046737294764104108872109224445782648987345702861632012920231413214848981168534133043952752703593001062249694476563675825022901370018175346823437597097707210647860584484392028871256929560202066061124912458213480722323626603637042521079515348931896498412026681009878002521540588229679196165605530812614923848775715564014617853431339333689372824831267406635220519226049083894306272416040796191583009833067797365845393637823598811945950227884739901710147924557827515160478891120242836648144236775344545202526046825338169018300939758076249067088596507046507155231786746554168815798680464263850076131087867697146997006889941858218973969215990241049439705017362679399405703825341142187643698045559943564121917993165657408108558592417687892969591222123749665868462867910622055890298771553980565710432596744795720747609441298450491088769500130886562987456949482778117134034605513469059434053329244303576419253484522215012191879923903703501189627307566554167650066536107248705425760276875819416197386089501996595254281165790136514552566878568697814096935843035254259594929177480525661513965437293347398372575387804776925737742703933719444398483352647537980746687636918001658535120636814836232791263542251616439955461835822798125911409892133071496344313384137316735214848715564187309383824565468685151864533225709002310809570552539139818579976199510593560546383864078267914740519980205150266775983636196588913626682999946578394010245263097431157201358350825653666488261143364439098749153536451218913912984905154071283493781928685010642674463051362452324755766734529790332518830108898678161525351383166473196926840104882401578072654381711016398169478996718270698504522399488432630018204156787631593088610914479091002016092666668598009204886428088253007774483793285613725436956267522556640160487202566380055088083172588473098668385040278712114694158838836974634744127196791010239007328833433825969612314972292309053720606824487674768679824420461680864302126347583292620295225134663643788114565413560397855619197367694663565765108457076666887744207622146155633879098752379468670044287453388528139968120422433540495003151285698167606414117618172506752180287803638060338242975537069314336462750274694944192919383795754840768354218806254143422788133549020714535240211973028551802138126998767624720777298150912220059966683578944237813585390395871761971728194235900756440815520130534540224133069816971530230609203663918327704064118263373310512762717924916791028443111679298125459304391656437514580740340931324007065457570004307255121861671213298011931430287532824275027329985724267803762392236680116298087543472130290107161134807520886154300956950520981994739380744134449974650606448048942424564696820691564665747269187415908459080054421152916075139921156327503230355896382053975997210040959913705750020209912728597999635342404396771035308236141152472223728118274526303937556984301877844388852535632858792944395371126668592777762749588909458357898156624599890499066448211344352597366706225096636449312973687933275116838113808309378969038463878698114971429650484521917974646532534975359914710162008742779546501613785268132933963535698876348206775311633160077515792224158395706251690732380449779379544222673708992917646033420334860785374078591636546297954681021997577755089854394015372143368089834538698345118029288170938096254752311420788491627209890032627948283065025463657730611031391047551309191930036259826334818829300403539493369702580543882331726980991394017465201440522679119281235463739879771044943632016491682496144766222263207902130171095961593982379984848377321088493654772928882711379765946338771378258636951724436394098805873536188970190038740775549258578441399867991554182110710465358508021904243199430137468608216931298913131469448999836048980471589011896212185790771995055451068656176504194952883507030423518485334671818292129662008561591407115192482751607365068743245353194789319672142091191024626187934173022051098675816043533227374071009354325901902844068899346005493519111414655817476952290269861182494067218723440611909984547375863664189330112631608829570684505512770684887350846837076942447717488595446866815093123168290421116102939889743431483162549435893764008987682141388473554063234004651279560439351485180655065208786413742672607625477481442635393038095157881249662136078953365597621378211026423315762744023417099210068935863104170309989790034421451490773242327650127483299877414052540991105740209158507038636038561731958481246834653975302756861285223099441417057928114062913630455453831852873399737401216554082411494889509929927439756398511592101233285343629600555845242920790978461590507659857539110733035569423254728341617164672842905660322582793530684281028364560837085179188505042414873751085147302479855477964117853682914655314052311454151823998166117459459808658409903298492947124898300982141579671783332967053693851369399973187621476032180848518101556773674319564961732470641856135545761369380047482076846210811933228080218146382709614672295602987402052858662169649168410065514189218710733802280508993259137918303379190347214230240311270051370203775812553241815022660998439378622978394594998244834050693349208468116903101814389332418606091121446764948926664454816361621945387379207397605208164500366222306041005665129539725292839617491246826958795648857253156744718069408501452426129365056692084793819957389501882720192102335313323979739507752066581902365709920013514988715298889362197479205925056385528973083459679559982162509293448406897161429309023678346085897370116662077228864729574521415421520133374937484949015944983898394821125951763854215123777651866911284497170770891615095388092754892525096809500592169512469772965512421956388276192353192432876957719788045953785272364469822035568102560230168328691906398369006668812349317473848888641939647883744577042778188772484885462262343010268108151823904953296412025313456067500513721980201994407488346835305396950329986893631784293402292498461449785920321095827547226134769559607501465658699221576105708349286258382575084903415445778384932630721493350155736248383414653399843517625802983761617843839538585710077909444130471239370730732482097077628364231247692225296260534140822594888130427752382486861984651277679722459121286792882133514472489680013017178835082737087042992976119946454975925973150849083533253444528414055444449273528729915630874728922863720614980459779990747901986845024331970438750160509410824113975272910685870939920435659375191438485706035599832110910250010276407013842154076779851264866175709676362941298876510029239472363781317354523112315751312388896898342880170774535236395221371237911052023920155281913728676109748738334620244904681866885249722487046480054462033452133784226573783676845074765491059753465178861159055469437427693439874193687689165968746824781713141335798028865671527088927474687658726523630235678271080384813357261153997153513536152970689744332075516176961126545275131128130098652208440430055115925941339295407317610266931834354847622226623716576207388238745573494835802618895846914318032683893128773749294929798677895987352632036826220792446636478561046988185585322428371025395119642552457901252081074946233752536196132484442752969920197403567176350173878377405798502311365211935508008109457579076127340466524807065302716359036013371443685850276457787135939225769876365177233533322107271146585250167803335561031830858307307632567969100822739252391088521736473954972598504070597650256522660315922042974606567745924936828000315323884073389200328417307385666638698624672086514479767371187160300044992979800535807042314751917971245799061775592774029251263728207066804382121923486041576603174428533643781975242281925703862524741508169989939604146962174309043795661786092461064247242186479493934593758775800332230202030073909493446815721859992415513629484066490709119628898187028044221840046675125442268571886314132804903460336464887865900056228009260009927559145729709944320682470711508406859763491428122615902146660335812142717167273052079173913921824156391505222703406364881786147893485113521485490128906578909959292624528752980238893263940748860114114505733328422205015805028589194122531338662494312336783812815902915093984836408208163116751839126988094200907559620111311532827312537426914039344812377891147295324188752036064281139170531829261397675384678196859484987387986026779848611172992273673232273712014508090367551975112489800326232180458303271628108650438102980525626354705402307721154023369910670502510616497002859441739103414975226605935407877777589460967671009092463948062067046044270134978663366494706661117668224787954447252347961920884950306616555193518048799288392481450776247359703345956481654984864043954113783543716540219985543829758332924687301533681013202485932911581568220722750400056112945830755184862038491659108721671096066242109776862802693326174339215044210227720283839921714465695749886184610244519787262170989953144944465134939038397806825482626403326469033636701309846218639179369270103000023849854982521738362817199611128051250319754185679036727641474783105108502930667526349849805483370789012274967633622410976084524834391028456971936584924114271083249069521857177226031661441446248462091309111465559662094175710788552575374032638740445173056689018617674980546014549848621950313641160903990158522308477952131665780010623623269797549905454541467974342952342138991955751406699028993009672690831396689534615285142804984960638259948921652765140489300065155513194967177833388735498385044319905754159184354288011887947777077921770253864732719169272336172177391252956494872126520306847081712328485541161120590766120250353937100031468616233560749833173129483255233523192778221782710136770561200844396846285974184094406673031070281183005946579250310635239535663681305322065918583323342030711808402410172637105771256278050484707826267575451244763772951664862543947416445830267230425217591324962534455179027100156347109336874161938256386821248999219557766318163020498415167351162652200255107830019373462680992310503690370081072046268022596136546855178504838931911715363338603601415126477481069168037942163383480807024845809740455474777766362559900694084668982384018812785760262625126341611339383976067810538979103071565718502080062505369103078397052441324709407817073669149100476555621389710280268673406468633962605486782080071636337548286917985673734444624172497922278054285474685938503307363633797461356646363526666343463721977635076526049638670629673823453496701802729853178788386356718150793993115759057424822675049503764382485671745364656482223342745212344113187384159796859273579267302619048768982538847514892036572095345382726351177819006965603580713316407626060426850524473602568159968574108609476918592802843924653585682358572353870310171835835246009294972513222331191123060222403965450263101094734479399793900992209844628583034319168984427152024147112025002989157212861673576785495981625097481943471759638389628728785645362799274422775591698199865821328929418206668973630878888812260080593879764599855670035160884195138274316921868488408809652506682640893462109848776977753091305665246886064437176837488419934936216623977037464014576786907232326071648431548235250012257894900001092145148958636114928133538116656599728552379251079080553556384708577258954383971427903467212013034000202398980621039826108221507268937356036328318707049743138432948215851974975339305295645455839646978014232796573751301609581894195686859781123447062986527509900422603703905293280644009822829504225559180029232784471335345309013982755863823029488163521514904639713821572645204081843521942199623327627613089365639405667533132087350856621353530690898278203031565727762863926280745069327739250225996530536242929325073928328356420410032967153205882706999197706344220781986571381558635211058953003500534264607015384196363785810789843007607812560138626283763736897346011607652465601514835845366496752158510181690550337353261645391144126355149667112535447095193775624493304299836803582516509105513849030256431940285163974224715376232253261032864699342213685685928521733909189269070181038203289039856146794516405381787533189093785377470636337693489809863861510526079147780790040046724213589107401142760448460249573016759478170607277304769383946170528143191596360498454575374229228381482810155994909561143315100297700512508802060778971161420962733554944333336892815199538770704100329046907012727947637269220455826523877698304093257328093888677892338901821442291275176563190238461205719271844582229827972318041976917117441439185447506140441424196151765836135061310466617399850958417465649559897668703757700615536885822941365143646849736494557867923910077441891497718264025826080487290479759391675645059773860475441599064734447161624536720155271172671180870853383688179985778004215641354361867268236716400726658544917639421762977280661044468403873606686189946423730685927654087486001656600803925914100432817823601322987766438073288607789433859877985313113896603685056745845900775948415649185442565456752099343923021085212966025918310330987499588580301745909341186607634616986445270929826331547102790242263398660420595120803818967393398207430895548739715567693839390943612822900710907266122111762610272003378910172571488448347618373695077743433065848927542453810882966653571225362065712209123530767216515768558238801916120320880514607642904415999166112458043841445486167323782736858274520205545865396053944715927999221090763994684808051962283096848615092334598777746906964716654773931804068516578594505242057716808227143988648643226512688677662998157712089891916203584959266219652766042574280282968962124962439542597382715440229585161643502949413602809583764776954671752265166220389292956190524814758917780533125365888311815312350807690445067112902462253820561208892101859509321843506229998728543811355113378282514966405487571844069054057566931704119842536597489724946864205467159885051834919802715036513359510472706051816837941382992879900308476465201511228522987574502237919264197976952047560530205121471163564381497463723351634945707118810263711870756358600739499758653562311235637133655551792919787779807154605679336208885072559566961991490298243915664482357977738024762318377822054695224895682325455425224254471020050520142810883618606332364343703565203808770180416009546405694587683781055191158519535617835735436057930831352201569911113243627459369943353783032917631147069285687800506110325519916350518797179148409361906130586216115288352433569938414782116736388695918255964806922337266470589716072542205639379392629627501029118904261968365996138440716005363806208939966465996073284690502675274250633443549446410697760974437212917760112953733171108050981197884547969455916443857934454613643580163984345234502700730539150989819573792849798670136298649029760889782737622832204958444408309834724736742073139347166794456590826117040410182066485769423987682868373328791298206734758959677484701424340355703129717279816332857013159767029079511859120335220191100767910429751232545919542692314248670822132470649414430116756687157877356373842734328378135040137215942666050858471726624591562604823347392717515271676362974750464454688052001285128579073670286958090685080313830599751103090414169652213634477675505750664357171702047331781911171076377127967139558698684677093689191794506795567374307799766114701165111112937045933976513331845323028925829008263666585804774688513629305704526105508417670818799311003547784259301924636752353675288873056569648586804259069030452605983399093712046819791092557112006943869600986954357367232685010473798403991587315973696143689708172323717734085252912426175495184952938182837065073791717467634906745673304961205005633319515368180033909717194061497597775124067288563483967528554026706066476207636540985766414872991607252664746047686421196523612650804281321395583737435541130008994030464502788209467816644853974864951273891461218659711227033181997450250435003605361908881187851876104960073126191487545238372258193738707936770293258132231758798718367266414351787072429170334860239690835302751113404019928473676069804964233927677714558885531033051319867500295309612133752333960460164277025259092233820873041438417357238855838291299573795333034719311597997053918909489884350385862392973244366324773077281910674988398190928436187212627151810892771957278585340675389796541822640121471649910654368352708046454027929807930717083648728527914258024400121541494068736468828554374483662150482742341624279953771336344735639269056012165873054154923747190130179740746330974987720543522979818196626106264391194206669166383545679632958606122545478090929507238886349633063634008679427429411764635634742247455599203087980231859188971437303687366672390516691275192545664012258298064847654743546298866005742272096754172091507688566896262725116240843865874538082795012166248380874870310426574081177051098272881117656278830693384831641432688873071736121668348074365817491854670454517527062088332349888964713379289682594219174433477074053577150318154818225909877343812258899458899980535890681275849195586735255443112238142845781914172384099260949566493452153936400639871528824262042790337225897668696479209683221287518178858535251623049775722519682697336415025393419360658587024601948867735972673618861827875042502308456951034958246596591686918581551554718922730721198061555025171862853716849189702875058474150435009531505383337577364556635800959578208745395000501129110000095041684505006578598718900223065437091702425558508468240201932227711758181170305290733822177883721653529742720594442149014321469962993085472986413462391169419506881951521952410644237534459600893426722579889258659925486157835228765488680303647657321213543174349806405688216804942125558458258151155490049900640629152117170607984471816752707287514879697640321818969680142861003312089583531992055666989483440896654309843193030203020703251926500763011627908721616223888425827966689758412967834596508371765307985539234575044912952267866840176787913081524985914164528392238738944702575742814201790842370728434324376593888619766088683117289550449642944999876781341995316973570778151882083019469345038835075851351622981094722401035312105716652171173883742228904819372514429845826190658821505981355307487168295052539696687546691148607380040607917282915179711379097370623287415295845295975992763548605194820704393470312821296279633612815124864114101020345789206809711192439393863067104617512531583912986059682161505193935800086231628462709462169493463050862992013114620329073336413158276109647518325196117756358882154663375442191938250889451027521516960128125852198951709232291295118711496658374778535858307843571539452539365251349517503584635591628653665846503901000585631433605096587241344472085601717927914513714437917358925194274141688976397835376991278325863348386213684961651284487146689709271240897414292219401428687306987674479940885567438126578413590791126921661032618835864149596546643626783675518032722302499135347974074711185431895210253076676501984107808532060216915214305901342346214332056748897324404800923368929214959805972321040061462913099725044355745536731093211662744797575185388935236385823853127349837074968693942695486512345351885109958257836210938652653053259039233534856529914509766511377501582290940789139557434488384312999441124630830287949118907855052954844795293173889053620826212434361030510458721515471588187895509697688826706833712550579221356495143274513728773167789294012680744715038831255719416979355832236171564214315768080142237859907546975186292974377896506456957165075435247892764334922703091820881158157042098941165766402146299188725048742510104195470581145599946287911921868916904440525290736506326912599973566887551253909478920973223207549675628955224307949533653790557627159013909756042889703415900674980898322758908690209663658050910128984932354049184785663494201047288445282012153226615983395823349924857923678573786496474403069091000305130333791263379275672493079540907359967611585802560391927945771735766809434309017828636631956764224385660633657741160451357716318905235793167726537530812363767679693006538697213971045817326536357662107954508559760963692749545310684446705538411678849622733668987264418451619121185290256314127531965208027806179890355294159812149137147110628352077815900414890001248049417675093056563332376558149446632245603065745808010883453458273795311593835441558568617064199725495130345549173762030263739486743151686558121133331117170535851289032799242139456959661098695641907135652617706638218525522276728603818954309249600178002466286540981459135150186268013035655332082059426005838007589276050035896708966680488719898485035308370621512160691954320232833877313924531097295925074980369843831973814098609321983898721508047917652872926673105395938319792888274688763141196618031815243780893597212047093776795845382552907703679439626235202142374140279587881878729611149900590909826267928439061212563467863758675010725439431744106687358870738466355986301539476431023260141118475860768539536939060159865541329646645614176525978227609545643655341847352223154758475041844204629523917185725161208323934651276983173466398090437742898962001890879363889940606083309966458360418204026859806184627679058706816021937908160863498580237157943430534865980301770554049042615266863758324415315938255026957445388159644608928752176097221296440231354679333877897680872553034163027824635466370568043138390780760499964048959885982341452789969725205646616760415193767866977621411427401189450609475116537715101993471554471931830237433721385720259086974347027563994536619698521740112904922893717928080338515016924962620380613826429547874706210897337586552282442467117383532057213450059329667265734738624343640548851887198143151364899234514628393951492365081811105258417822650836124615033687201004191768839519959688741707688012198502590498330458688996361042711076112323100100855057545829640102553330666993253449114025985577995903149093983651549015915678142065519071372013495439986602713191181423814405394987183492196734144494723151990224435280002586716028182309861556125795377975347312741126469252571840505921810984034392755793688371731612646436621863848692392677590012585329654070829108256779931105906561421333269542714812572739446226243290790807091748790837506232008507859291062226349756287402297685571270207015407058851405316383311323389236312693086972071743916011557221840770370875280305199213765609990622385917540553001043174622446465580916041373075374011839816349202263166125231621845048652071009372477094296323019697694274678665330656722817452953378588389354651678108315865357571169619227610788292433471615398141515523560170108783730088360991610897829867352605004275694934666552219176824388818520238030813934139044754233415741350066214704742885854929347266155250061878018725599923362606366610979935577292561172985824353232483659448964746194072417258653534264934896514015708409003106866427652605273324449501765529322530884351592844354218947623564882692825773655158309360037984233798534092674808749653543720824459563850864461775641693330110643751629241642647441085266275291049892962063805554672637725410175653598369119795130119888005500664567571350866290005618947228160622756647951284360057359520897451343318171745071405302342365740369577185481613108316817702105276340977836554661454225225373235266281024209299657115921077709901558543199177999941954667858108166454284262972250606973744976976330485103112988285686089135988400550882731945587516097252828203656940145679388659429613797729102397082441225771746336643710706193866328371125339570273068895435584528688046086748585926372075152355215572816707220517544744740359543070683177098187501505270331926858886763011756217278203157765471136960410583506230046519252787901354978846480965225103507540187812563677525692365986265102561500728761945327504801396343838107818204294406566059477939567703920927519133120913627815025982683220832802905511513634333210296241893674935236059056615113164601464580741904815209321814719504988352157257378299169990550180692764082145659364591305242331222925966735748113773000658139168532208297586637603981035384172665719785351505939537196014269226890154669115625916118029169456776012283332001936627522664703402981906460222188139384686772464465612186092523522315185177745065672322697953102952397878746387495423290812122245480841987414070323144270291777731046015988383954106866922538700949608896597168053928303709044679794908384383081450768900375489692710030896742865346574888079024392092078126107551623935824582112535721886919231993374172634604376983635924407709371296969605256345698004506648447765607662531974873588434105209558527450632465531877641465990906375355552407880532476946454550694647416541101238464015729091680767671535158437308759654901339478715759167967602695009703398856033212276409910239821119964467634744528884969696279747868740177440922290666947758402272985517203695491552909347139458170695034554771736696846266603354659344694061715384447656082883224807271249505217419806135857577140088713973936127330320342364791203264799321301240546110636861416475908757996075293236240829708218434380329321443610600994880162741478663556523823004393061385547618369503804413089180131129815291799425308783224316137713092980988072810601940296165921609609438270703770991274493734067899115928353055861476629046861139425290462229704769920233177828913935986942046032078001860792130339439530645591870172270907947495179407770748187304606271691900039534047082484042782517152343746261475722924888654657714589982785755114989873440458481888058925990712394228126803599744068645294483682168461873815488812769642410025691167622281840700048416072548607037821219418805719245729236534667098597803299527945879607008302710755474139832420766107440889980544892101160534908276898238554062987666486098218370150706888375823224428814872539972068144951622627510684629498506804961929479200383981713038668484937325381643704823521265839619522554280499694944092894021567255231213469497971611316741484530551573636455118332803052838576894440551854113335113363805998117016667058286682018757795706153690456435105542943735295205309931686297078493723787059666281674499810201422313147146876047401323175015107735591183063102107219121481162783011411252627138148457171418034714536586412400498398380233758005238568353153923254532254694418519682818102672238630382992086029779684615123184892301357548803451299399574159130087975807798158861208381981698573101151495583355848048683507893709877818492431360329085056940665619402176051271506660491705837334236795781350047032945335114569737058413604248348055415256569048500665573668559272906098283890569249550510882973972448383283411618820696222875633592914885730687122076133481354352708009375687407458837710479949848100928018553587376047539951621572569764631224830309839982042659319407830750182366874056963116178033991977852670609344554697828661297982179257756629614372762075942056799619222459603355100489584070193177173738551685873113728523094749771449881549801347845496351823679774529854880247231713200797720805641353896065748272687999612195641251223952791292530341999840922368940101481348139232380521423524345748645148521592663361345302992770509912105195591495885856853894376576637470370139820778988708145636550828984050438849098020725061147076632509863895030764250002585078587908154866280104436338843146220256230891485178100619596774131852636982714383762179880381152310245278379393487308222030367226918707588351008720124604798572421142614567703113051916214555286825297831593017637068796788563199697819979013194597697107933041701164610648484973509147761465375924631104607304920689613369775586568247758106261856687584386237741160484376230911885666918586459202726633858857395741497580048535283791104155779613752362269008802335372202041249840242344048639753529379826491974596143745829497017296280475087931835764814258632145707112888547658584387245191829226720310796238462804720941172816312456510791674812591473451055496967085836613187308010929808307399655115304915106746494674075737788836057939161337733008228262481063587512860711096729406454714992482986634279982588471449682881632962350967724047096712118636800926480971184370771299791701508636469689831302021749192108736951479731357531510842810327903377982858962414667272393934044241335079396180484855397701528960640578305397068076103214736091261378066089360259478612961428827609716812034691245235535878765412744782688400922760381433287986189356616903719785413289088789228792200035889998630646986874012843636501362550980793759748175241867934920753519976637586414288992974973624469461763127030688206036320276268200295917236304662136010248085217675815455462291410882510154503956420296732397897878797251836093553977375106786724349430126795573437813244326807515071979646079284096355066800772789684172738068998955807373702868184511143217529328560446597205526834802855178781871123760208894629287882652686565673711500789299847398584090743653968179235452689667935465879559686052272685412975453652947725150744382174371725416466298168196316234157212069412760781980676558669798579402319171655447491565015940858422782034013782039232412238379998104973681996712638257084797038887867111587644443982051005192744702430936676983207170954511027704349828911373859017819007756475178802589801993180332154077163220171378812974034170623105000547436556775725677823066116558563802026352352713936004808230491379958401661703688361582982893198993154922801764649770356172896454461182039698365604230893212056733269831093446714845438449310720556469596789614270025816399254145907656850559573648240178567999419925293030580727985525541421588050049304723524456732774821288899721574320763699817039044747380769139460374080468862517568516428311620776935891490805670071479328730296860210923109205770145857546554048553219036630397758653528292083291214440529045274084049211468284749722826650267785833623474761989474602323736068232653450276461275140862820819816372440885682308311337911860687216652644076462406896490521915162641566691900767641694399022008185588786786401404949150244199006192270491051852883506036575613042909823521371719648603807186554188317203739040630684889695370066559286266787189557365013687141059752871298361065612274955172893593932702520845933187057208606713704302817925570775585896658286799070465934170450769594807187963438857426982796845727550275634564659145554852251065899158573821497897834755789896483692462362507664496674011038922978804113027852615536478193786150434953033753009213079787426385015651310410359604118419570003832029808134242562993287079515984687073039897972557576765157103932336833573345237809739657548317314264378581862060734807737015268512687153393870530205528318551215186792482746198126954825937389849796249516570589412096040800411703111991002397811184493542801816671703531337002747858218766118678458980962240802971718743706125905160040514610960584366739463616601508587453064858969511028730244015410601926193695899484273367797852054307682103069104874415712778211035399543595619139176683997372452933738155553202841020950940146069293327944084566329130329423655068294582312940106094256354411021292888409838803922308925056901181349089113733848823332462881432997350004706224609427340357805524403946945475470394701690411820151615250316939798400306716643822176299730131000117671312257838403476342163502919218087191647122310289621945681272412760238215138650072296776091800081294095657139124522792237274122862866203294095157936491451322767716040716835354255055654822759577376654555744121295604889305312671121280951069846674261791011213107196597997508784717655292393177650791005917774859093698809991076907219894091963515616814939764520545540483741371448176127887095207710829822175397929493004792554296461920933543103273116122546275321356835260907959101869701369329338059724785795221834648854703779875983001903576340659986562093552650679463125102701944714401573242088503294102850485679354912769446530087413284419842077682045216917784211199733293795158493318525307413043316117105077680333940473575353729957666073045454285433331771681044999036092436645511505125430319460572337442120689384700499512901323064575836085001582373418455608952248137246809968671607362163607989846294602296279372108862843731055979535666749804156898797447915340396585863796681894489565197611455295968583838154764337726259549138278461673446453113697342704885645513845747014295842831056892327002770064896869624964825701720437389885851175613387935647947233768807682084066887336671333478846416696179126410787150247844075195404859266106471912968076363798029979266850614600992596750221418547943016651806103860864716488051481411798047351340258209766880172463354186937560325065826572510348515105380918776436948068807510657872784151021694181839527337669205329225045635753119212692129005164997582544454715240984432006948976714134151702033220393644255999175693584246941995415428207224803358577721256880422620087494337069286235789543879337360373178309812078013222257804052787184712452987162258860615669863977786925949127976972125195847131656925309764780878909942943346647597984200421317583124002614787159612468464714600617268646699975671062157062241837065026023020818713953814403687052766570126081338120598382108648060433371560501304717964739766459428023673120181711173608845094776255088445543967231599753349416572818129194347090554188904479886398536822400108904432742199945550665487614150905384542157735794031892296721622919341802864134121300416265559444736921303567322495820091080805471813239354952143325431627149961546347766550421514982877023652413747193577136940848795708159226746490257756390345435597830690171665208523786497029317352548076544081118868402168132898646779495950590100401784494063627939465892160892641660723074945360171292171050748114486853401248206447044090604311362509506378850396913613160060247328142294021496301403728465587753802732614747325679834611206386380426355881403531965891342821578344153421324360083593794630316754833026456430479384784810232702450520573717870095076235659921384037278461772440928144442299608079363692826565979809276894841215492553283925441642620556416466906903087300188292002047705488315858164124038342748867942124457289266740556418945239806597626712205386293174608720973737853759381518734081069900869950879015455630402627399345958572618152330410311819804176539217955286553833877283861214363096079353250985931097779660814481915481413142123538341513639033312038853792622634851594054920873018194420043036773246484644395331674462053492333350611768926094333912149030677474489474911301915963895217260007173855187938097372428437580645618474901020752152731728069205845117159289795053772440275017352100560679254956546435674801310607679877279407393169783426803533503815319866531464826039686735648858022576042451328125067410894110185543336844020450249371939150510636124060569608867918419846002629551851881487371538040789098656166007013400342996402527233857768344291782942553049733532042732573996418249921590027698174822993423679805241247575422751957140985283522697409448750131726451135032456839522314085339259326642622630201215109171710956268308047359109886754927349072620089132099252132671071226580801651889608755007605382669354726624443545543083211582787098647636915303124953444321952096684688927118015102034688117244879619361832513392640922733154758366218517176860425414962167912260793984015543813844148078152949122443396073915079295418538987394726401781230107243993636832581282393671299184449041705761533929776725127317182853981543234609764292841004116939810644625781492505252975821073635489807794087774182271359841032151941188180550262877516319310594498672018958109741718593034144344936811854509430993489534378911055021243825438391112707475406462088478396090466442246586718799114217595894122579616044248086945228773153732261695438203117418533089308257483840637909995047095683347345406837987786978715667542081266120649650982056072451255125907752750195258703115216963290318068092328609108340837770309645409097694751730471345148586921268633528959168603419937671125775818754587476968991108354841465182807533113264224056659666922373690364929557466512717697236009502899737111768051580862428905455063431285484048434332202337663303945862492825125321041826613314103613646583356747882100078622939309804592334191835563594484932611063891303503560987387957828100675010423589898774463111279470144541012073263862619326390083979191450160483401334137604082807573417966921273783001745511374522726529647796631442136497781726194988358351767371571471146337651435696312046300423414714981798140358498795419512354160129928067434937943073652926666056893522968538866002130433723661767025117654820865362271444473277131794403295064997998756485061246915477273802131957653630259461755517752769631805245104954530396916779254391337138422326101031257715007175821025000992988945342936468400839959892898290673484642481962366286399813083807929077692975220772407275437611172539775780712032087787443504615068411739655692726634325355481696625707984892871392210079092734306892595702730286716549892664147107313462020914540400837479303601701285247961097785863265684189979751918558592141681656477632429401573099222098995025187152310795585511481927294163872698635535905253716947771976058414782890128584451200594213104377034089132977981103566854983291420496217099826921135686255336547765746110866616552883167548365621099333428112258532414362059847048548994953382085822547395913383009482901135922221672429579447042379001546378223506003685895914890055728569169834669292480943309912509270550956448002498960068027180324501415546495746107201160139236917263985005203590737872897808441184808381033377287560435222795766397742558644764842375602467056474472124381912480854959510196237853880878620574661064685308836874811374211394353813417227670628298772667568873885246580021439637672144003736087991550154311237409894325104104436194579789127797898730995500998450319475321061204500225819274801353901088006754391223287476743933096858929651717630159912013262687580552728579692385784975917062610372782636379040146542241731048381265776225823462980069566615470656871941794343569189474199279487238040820093493421167538379591900534758589114440822103063987142670399902115469342988178105501007801106000421572395738855095219501904122237301298505664141706682545381416416188258660616231031989478059230491402914671085220192591394966079377737722751049688981016627311409648978174773392536291998393072440140064496544134338196303100630270414117196317726306984532933243042334399468571233042771897712441759630994762246119273875752671666537640251831550408517045832215356358587145780074988532864516577945762228264600799727825998091471948549396805940644308696221893569308647821135911465362607263834563423353638238781331878703043551936261868998459200077207323762187171471851853301366591478795852448410654838090332109488001899245473326733292531346783810562366611228662723271016472584751460755377148552464959508103761417505508264536300026412331229182428221759878186319177687440311672669076242123170213167277368768433746503779559286437173333317529058629198190891039630736388912321060392947199019224840774610130795693400309703292840220550492109443599182222190800363445746435560238551154695600181303048910973836365080056293407569138513428882218910935873414298453656137329477630520805190549398279542276856368167364621330585445874278500018843233955079157036010346095468126459527111703949426679714980731917230297315065831595527420027064554836044957433248895781484134414265635126373369742236862595528720413445239412062600050579449360265202211391924046612304505618097569743779506019683875584443411660987245954721287571697883135341603432172978469700707566922407576163105921412489738081978698008497545982116842156585027977581364293616094408178325973144082359350348126219433545541858680314186137782361494401066387338568647194763225492097888574218982958856739302842994276788781656156519873939656104774250987774837001587703215529141447186618117939926782114628361840280542994853575654786727414534363572312615069002650300577588033688714086936264648870381771497155673984330424716553951465888297938756885876839969491493659860891857849295849212317675544795047662379764324288517866796980103624812271850473030271434736305144035860032737977845836821660773567170491291567347414146498739113858084082327539147130884892098816036282882313560800536826758796606132664379797764465551883242726855857475629214583913816754647583773340745516209029291276329180067933352406374528031019348411207245337282739495652095795747372764622953467703268319911910837736757651595051828525545653775699204635003362475114390601491250775136503848490860722712338901093823195296001080121423370519021774953230550748612963738468825257021638554250637494742182788372815164362147589337058690379388720783583408845374030720540867203492086910906668400910399295478969619725647785582143020248621586131777658578883239530571698036742572594413705098726516002886892393256290018013561425160504014577598655078758906528319848185640465129352552082893230365770251586400801603862531557303813417048955532990162584599868548990778856082816448733514963178351383447679059626722222730183448876828126257699557800907113353848931976647482711693217529527259239056955124782193365949516271049515271777080821514380260401927376800621160829652386900374376959607501094644805445755725072586481376751507664679302320608797704556309638324296523371758390813126480670096449949428817012344602177629938661001661073466476173136932206060067235417431342575132287803318958777238837475326950700530078259113705468703471683902633857378869221636887711439205799227126616964575308146163969761044583367101646466779605079168731871344477934614935135541175066127205119476655298936685139100656440761860183185937083701055130443574769361121723854789782890559249994487250805338762306490382385660678948594608096594002294751002302092838256432353255196620726311595751224011518851848079165570258974171295022210741517449525211680648568029772291986197950032053840282777486403353883222266675531287191804551994501076192879779641760609236641428548427992682520240378134160115052727420777031111709833738707023699347859878874407112325437185663293157332138270878402248702230267690384822208695982913801712695148552991425887782183694108786813818824507312895221314260329383084125320850756683873985595670154171499147175249516105273647093825665796614580932991775061985075751647738402699744389686602452601857435696666584242690801279434621752220788408764316648480165259585887906600715211646345144519880952674547688393672277431203975800895865433082281472534724079403300107954887658768036817643842600574347905856119726364389585994112429908512989657814481969150613642455938157350448431391939491054919779253217384183963777985644713143403063954660413499738556970251381393526058891534937338794838660648081948375779666444848483201814244209844059261926294859319473024558044108579619533992850253535490074300200008173676837369652810570607584442327529738941140646702844943253057377426117376232657206143454064332884425262401545140681949776396189386755007580112371983273528563332674421430526729687218244232141463089112691041526565016958848594225454004296472441587787417087184148720185370137449596948250419409648995114755414593568905599539641959359256997043997749107547026425464300224222687123509870197025774154706676948571914062781261775979731209372925527233350592485989763292492129854575060298934993300467816215574645548854972651798207901854268512162316028183308723496358231371744952671329047111851166339581300320526670384779000579580462499643901339472033629227944094779157929716358872165771958049741178820624342169243785228355981426377275348580472269621555122689391495439611352007039809949856629425933704851490341704589668387277174697504983858803167447509802674601620077586404323198631234825932070402135037847081330821895439613417790697688441373414715663809976592426905889503123426895081161850263407518772365353789928694801742951559325555489918497002884640554627836156396032284280422240859509905566962781218957395487011695313999889271056868542670786190303504879623291322778886218804966912674908252518711140705660273035379994529722917215693436413294959179442535589293241283874804081027994383836534085027635045927509515743198702308741598504024997672738241072291103931528726116363540601696330257099066492914179628841523752387193856209876331402058339465718084670838347906717674055534092535307890487885298203761281122079032673966788492995791959692501750509536269572263321856578463263795153764165903047896043775864239891144805595426267239155210670376832022387648585265776192105186175208040331897854708503341258986500338639307517843071320720780926630522462731866077501902664631323401301408608089494736741898740191469235040203400498994706281711762137131211963917822391965973560523430273858392729846770831770954784434961836237221853764215240699156544791998049243868621423620650204178621029660127957290272840141648138842420869905188552505342375849538345989672591987127183654994470070105691721374053337576786246177178836954833524524354504753394636317745162038625448254825221015182829171384748053945505322129545926279258365255341372583325640317191964028754822546802055400787570592126274523360282708844588890029899775804589243956770108277575571049962266195055164885216729675568928764650240038143456420685137593065495792527705450362438980810552786290321860010612678510361909828421887573869533896327494573575907507716016183668410704618113783838304728979312201029289716129826557382052195432695271507688574902690436572679453515959438936306419159283762021334327462116682092009361418358973703570851185012439447231487823835199417359014057719841885269369000976700108482951654383331819320433608154785313372542986142468995474809491137650247879985530852616893358835511638083728817220989142679324522405972583580516788174432395399621182323253866942954139631362837561309950043662649325673241521391655415333061525112860186431871342454254621786086423284691092694182286600958036144086036730327870353505853653014346218247766902878267312995600794393698630016963675345406130429119276730131382703916043138848635384352586990442898731506396825735015199044358818437701132078043921043433113854814368579574146436659246436812506199164412316958256520046714964663820684870853039646486219256537238386662621335861413346303024497142900623683228714736578943820118213367733342304531411648131878206741706454563359667270909691225950119168742597130535774971152472819972186139249484489453243960390243537295026005637414032813141334452737627451708324916706989861866780190256458749470697094027303221691517821730724324367971100320045327085610072843533640913066838892431829575378730568727382963435501374911780951641420964011596588014569030897177978578212777217105103256193574985505070536129986950041834337384443862517614964309207387066846954150892001156060992573210636741886337864410617428772017282973284049879782995652238766189414811541359548349473488984996305253509968590031669848450521621436850839114656390386974309230057872979299699553900117272179104397021064163138889762422453022539896361033008263497393115931093319824837540189314371002661670890439589341362878514478672820676456918895545778561812186502059335233641605070335987734496085479276529645032255689963210479475902615518935070108099611700301561755904720449394952062016242825962364915409805146146533951472979531367398215599503218800465638357256252380775685155655566385695094533154123379275813386361782131265307388657848284775139902246808568947512393228350805505605041672466312102012907299629144523248940584559945483124210510880845281786600008814922255497271767007474456258359261144948017546163398132307760926467266384304807776561097001722869794661487336297616536071560165910513850227239493741174303902738407462178420771690252901509706689083745911379157603742029910612875832321513375259110334705678582987691863716430773858535466038514474843369280785469490785101453243101259640417705535803759345469983553859117119612233598456654175174621497048313123410170895916813424370040215012817761004142266043743724826732542622539926548202844951259335233323061852603268198082184319974774371061057172887114547304687700848823946962669144413058224685953704223920398500726503632112103051815910708817624619143332280716931083201389774028048150904819091339407687118129832634193422355486314398376501008654035669280283663659392474859607530751931206309243775723889435663597992363644598149774823609023683635994727887280701768985516058457135030357858603110251526297811353789829916893352484984897301975048582904797317818762652797836513883119497509836661693655704142127096904749590384545482735444136475734445609410312375444087639150230342368600783588422790267027500513370026741893362637146786182573612765393981307415133500192534626131890196205455243059871179300891017133831720211051945495209398437716604151795281520040923754225528144567028914427834721002379123114751519389552413074343330428019122241913546613311878067299901430837970171932042736314986897344823490904396741256582901195540323222324376273524904791084647100478243266191921640835348955905995247988774592981841369859653845476469522756700835037690495191405950562133931134205427948281206479346918931502852110499261508699038751840646818346763409705434379225930893460536234803768669521719044095917028764662972926154222393674020060539225942552677506655500549525416086392082160328337102873294584461583050965103047306125817211805270372457036873620377867941647491523856439916480510394747628758429654413393860695935002198040559412530833762289294205204214811730944217527305350089565511443404976193975664087041931632216203860669550267318847916168755330912099968011330324557280064766707446898513772471500972675217086376817877504666735475815992737928439868938012246595424069789007247664121779503960706209252471687875459972391812712681724054027285788621364793003322403326370227221325306556201628229244636199833599278901772987214757878956365696161444269212269765475633251147253552512210008799863786248602291165960447081445281990079782479356141383413891873974529135700819701767646087606846350634911813520831633976407998128816106344786752662353193095555085778670648309740286508689300672747783949978708233148467605216216825857639684770726635655202240524549486753478198474482987970156455424743304700120999758042577943926355990210107791852769036168623714918043949189795175533167426617017635976429771673722409503200121020797564147052459969091940191713245924691365142012367242650546426428703590281925275848908399335697215173959524485052365546174018295043278654787888084329713029661692254480217376003952631925877037997717960541797710256660992117000927211041568093040931326176680024144909505345892318259438206436182997569113417217560526778248713575666497915061206736025417271883265519009322371413451904068009051037276574189782103103819412818328430575598203329241077957846732792662429599255884402920557254789715877386624063640297054902845268180903479476103519106288150950461937971177659455896836700132493273478360206698990675234397955062504018403019177662864320015173154826796294931351059213957896471227405204790668752760862465912972395362005683176159969795791854508117839972849246814382904725905853188431732769524818804374818690407975051441332555882929166308618417049635128173949992703599393747596064496631351775226211372398849924678151202570197900814399094893454384591788222863243765062363606254340428799957461269693363210038907710530976775000120467656796495188543909220456061161989320885952115631768941452846859430811937469505328927728906641036129830118159008369792298452585274909758530661609183697563854195503256846741776062077376796171570247338666209794886468667477672646739400770867976637377277328114826399560190235941226147674489226253786369797753097902006565442275851541984805859972369997543158263839874402737033774342999431555865671087616836052788696657247455871890728646335209944917369263523179190565331711921455730923512915355495547708652099531078363268295053911547071023076699171447484528070950649334639959812679901382511868184088255900545827173179424436875276859768052846966238417847856092721050468833235558725144480216967774781592175070752576588007213519276515633312455198652477163924193949759332204093752445722680665332926358801690474185625339655963750898766257384645242314042997817877438797389296115824104051711010041593069511495301565898497262608153150893008834415139299925043576697472754415365716742837098075043192836626127021095035587207758494554954539186220449145291513025528915332494920813269875701374472448552002388571226154124318772525372017300564671316744758808266308736098950383754726409126682001365803988031479842130984674316329924507883306769064589666048635186193189351331278482316195129331158699533460449376482518652104902490268540820513535315439497311670152650146824116180187261501970948828712923522032889985691608801729853201709593471028962368392383826134151568936833323625226541763128383720833299935963917104754220971870583341356549474907056217366392866858833449293307347343273892512019202072787215901536370752448917639828176683800701976320620125834765850078032806727702256477175337871482431097495710910611212300311092734098727678999398536474368903365780482109172097369433422271716752617815041125733937782995900012395797372635278090419519945520900488070018597977437458200872015127816685942864074343569617394172704291502865585475510772857047597713330738283466741799222278306079894043698282001972091519528797675482093225318488746593888323643968724244513435333428104488353594016374967899851329386742224785850465538038618428263204987694149961107288855103694928199505109354264239958225131547784127553923966774537601134264135167419959615497531099636879724684459094473052708359831234486365929609197539002396939948785444009887055443083307003630182556919464781427892481014637853807430711667076324001866843801987985103456295490447289439919081454654604709040216566596918541284983124767909067536283063705644308603976962170128474268170718759351555371570034545915267284293626529946746441624127382455915749432200900965953065378935102516262496930496992789909326176355136507413310872915612331808140471691676617923088187287053317011316750073543781296861294788522726733061869044964250399988707192190497229573655740088709557463898903260280218414854084617536537259168105576263457556749137969080959871785653437638656744851380673870599880416089547502749115279814795793915045245514754113985208079782884749298138925223841153100437627659307557443583732042548949130106459217669865232469902766315045507843504516470237445362689153526828133140819160887827054605145946809957854774321317717261329989437911096397629702622153407007258439194796868779612523069732032282780932799034072038443962210889217936501345835700581293170970315002859462011872705672456287253501408273694161317708673762152209629120314403923410828899521079051795958594621126970141329274074897180837609633229789490190279063323677405096601193867913531937013211444561539390524548924302284522699658847563017017257014200853317171907913726109476963307215998742761549437172595618063214841932772694669335169502555036565193614973156528860782220388130522070036917425505628614880165551260298516080370402713596693514816122731044896358349014073449237230030489853121277708829783023877271116625288321963246331969630562008596446558174028071046734882441768176089921479064439201783090037473472184617367766671401854808800960457499137542179298357010078249098277641539399826317515798688840885444828670281254273717745659644232386909258909712075395309679475879404900831648465194255786269442247602890409630356060461346709636008746224766984468773534805923476137779002084571129877561527121660040884819668028539819149855326579279688411686091150237745949514707687992730084273686065960749534558457905569078913709875505639317537469572293112990073097165153418706089113687636572592776911042228563384538229128080644917291509337580176388715249073311909176585935486625992998019791115322790232897421494830268268853698063230924257015887218386564223091719847661126245670624570351711972768150165535108366618911759385023302787491880472646749034521348720060884683101313361190348546273177276821859239757427324164596297958145591730822423272712408037543722484654991498666171806718103957972426465948833743532082427951150518796796105549330123557394776044515503800332752025565612211494126426957001782838460553873877521374393663101646720187348412545871221272731553077480099819661416199337968943924809768589498622657044343894246938314081177568820456736526073554436633412199857919660199352916593930503204176698831853403081926222780439697087972923043352653974692954464852989947742644075542475259097821071257931734259710314511391827315815097666277387442383945126049971565265640051431810392942715443745447548943825701272191578822067165306968937565408678721700657758673980026088522410148821567817141975525483744181969640484031634313646878706901044850936324453344524665352881791063194846001493920027335698920838731630797651017717242892987201793318176012080988618944069651349020457848502926104766072925921733595148759999852591036352585697834174814659517313517306232669082177638085705051615118354887035032824452207942376989552771684160261947913203305273761859171167951619555346888132144868717818775541458535255973001896127030583238713632830150020423183932250855608352728893077085743318729538084890747896750522481612468205489163750265750128025848278520225016427425846354588462961276328521601565919663999306062148496643685328744048735792383127761616699274816612921159236214199485260443014434139676292637446154800654521863631202323660905372891736014512812072220809348094686369638151775122500348076925641568002480123022784598227323250862865333091708321110573474059517020041605009420786318601171110083504125737946465981625341066660324611917027082212965687438225796939666253171148676461575747717920720345565287085421536042260724970020321870073213078981038218138829668087823224539851311227183246208625180049567401955807679026697413737231877733550564655097477371545461560329451913682023286238809875084951477830127797941250182009858013180353190575847720076590066795385923592664824863386050864014059058179323412598430717941362447733694586605261355324947586407846054970068480225285730994125319207916475937274892260733315965001944798992199607317440666155236027250367992434379105318712848655480577810027649200424942253620167843125897411850784622235962200142547505019485847997312953736870011414680815066929288376410508543853373763173242285004266265947235153663725171749015183585415005979687158893145830584613131365183975050805056458146630556204973312301982801268083569589829744067090798040059056232611515481704265019884238351559565522046938797291261458685637211940921688453974756115405806175712112562295940746441012960382468731528360209712202323665924079204278123523467487788424525431400118366306234581689842583046085426486753476399190645467523134754817020580511847944865359858045267013146175718793714225104889178319199489299535322462218675951592134263359492378296047180211107969880911934405548186778839432945533744166685122230955708378339426023298053315667769624605219991863491853945002024456297677273834588348928360301689063376497085928876925090320016988417843640150432776439683983856935304851018942381861514346738656007215897086743132979596355293633063075287190602058617712022005552722616622464014908516996544081790790806888636715996846143656877160839876395737432951198794180539458010238871193183810275576185361239903459319925623540237381429773192697556625149498004251046223472026088989569870466619400666260515146965639264996289782013502366401234974781526581072917502191015860121180724208132056413202423771683470120337561690533121469184741557287850100236466131237323452183097394684981543086768427791943828739201554034455806495064643027794183875100377785004622125742721140695865359694330694964252869171602908989283643927301630439483292470170496537857695294981357888645696475524787539158977978937248904687590973105296029739561441715335118118746742109479433365123564861670710397170704934592747904786248389659248118006811913648818776370640195055529243078751501726127850410198053555842675680720607984131010886538020925104204814749420769116850496972857231125884219129632098221327451394409724559162571433709505145010777052049012987183981157832379850936664379121471324421789647028507485007469283423584474348396597114174305184195357736605990146428028525310802630710865123779652663876043393139621350139592854459130348210547441635947744791927332421719608802354779987094535847030677354006835502407915047491170372538796346716749108521716895869624595386032032151293694864912691224431388260583470368456498999393424497772220284814192208533259016602526706880344009795305491996159307293748479872837257541698983098914576855625000512168247466778016250234200687768235059490960517184730788363175522703109941976589664843303026104021907488251519588956769996042323290328135055517408804592726727854866855294164920378032167865731390908167830503773827534235098001829337646402499430963444488632742708100746502182043355873466693920823540120461469317290234157006801620352338705701828480487384687265079549444497469030708905956236158083559399277810304865712474267130662257143827677123989902048894458366047795508585686855225888379957213028979592434959038976633070863160190798424528375992926653992869623262787598057991621619083175790945474373870142443472706707084252516345704320930098527686171673601950514663722356515648530614572696704614108902174080460425656745529549097361197169037601271786789185498822826863238118236644079243700736571509544595347958326036632886682744434808577428547997148011644437280290415353364484462644618360141282572620786082869291770920171713425019257163819502359732382433336055522429282191825017864549353736224733498299139006788146260259012172684925668574235199002791118602773443191929858349066325253955948029604071327190340358404369878850236709073893619571915162195760764706225417303545988503598615021710782921021018210220695136628632048867159525330902801842238713788076013541258537216818225122252572486201629864120568895133079128136443186865131074502566926669535657705553620542848553933697482066386070748312532848516104373964089299926666440554857898988727285895187533351999241728893617857339133831343256526928561550162021457113439919275487186310891437592384956767458793002420684084388317837388302350949786096371459662433057655451710744839044382298523821997620800653551023482803274131711071573825438667047499487912494924047199540417457593120153870944632960810072387822559618991589704212023731108352706389453059690477647135430474358440932176518002188317695610245831063314400716507190681616544717619715585998391828330541267515845349567060024784908653889529728319781606500102190745135610932334242856447437637929464106035407604934427561454044285120294892860785708451878680263141093848755003943334066518884583636585685124289685510605774043158365470621048394113049968865151484686795261827845566370639207212990268182441284205152346709298430027666289455667248535181230895417074645752529483469416329333953560784149007219490023911059270971620159195384382971081093833038833546942153056177862567352302327843515481274457065832246757351598465188751426037126845129715965476125261384209514779360669371773967560447552615886125864311793738596379292883153877410939062322899567801878917845898430314694155991848244427704555083539267960370442757610637803285498562218087847689950118281164713150100966361074683555750781753981739521432267129853120518953115682638373652564017515389721942265391709228338576709466679037340178918427225111737728113276333179993228840980851113527868723839822409730702433015959474585661918974609015886166265190632313676290424933526950535760428468942272355337236459070445761248964758999073183040165260700865025124972097302810769735715709552223085531282120186203880544415483570729190260038336784626956862205646212865241872713654362742086023644713720631671760629013241412687999496277876568713396721335000274226228776207794374434350803832372478276038590798667728093815739118230651307202432194119721931792231522765123744890121837582197777767026628448738036756620469707941253622736963617404984933167933005440985721239499067807785465256749861965770772533184083029214829016153205836912341970984834211024083091457917129333596884458319526020055847152130749402096365707491871908392386267960587558143569345628123560851673224538295370334855884789529506298258914660432791103852969879420857020953313427138801774814966711800940184015885351327427318213912483014411521513489201434400295417743939012948376113816314153813820360159930961819276674934277991882849220457813425439578172077253519992829551025513923392724757110456641464353845175053095634252319825078702559400843216604846520412179070401794296867091586892797526495730272749061973402451533560862601093251114966658973012703300742301523259481041391232910312226827519818447552168686074782520596415495743627504341892330211144095919755117077811170464901134929721283621133695240505634951940498557932549492094809107138466443353566383477985083153085169892706960868536072818194305739177652718743593594137261424015285181632734142263739510612833249938096177487627022904546598784482834796383079608774322384798679729531527042547827647907507053480938381919185572359934869303179492241799297254708217981471308330718223276391973465821593369483314095589396751810927875089941524483507480334966252310073322400545539566639262164656550625117438268336318418488143490905582683190986549927311074101061622729821923709772237058709903454373269728978488636010825442421674461996260887267050514643495229809624357858866274097293622115203717942575716466575743155056071701133113814807237680610201990178888991075390715350596688486173689771587951537994904720522664235450657709196170445973530557674523605993317341053537360697955045196759853707430767557851281641217079333672545683990306359042045409710150148235909667388692095319509119724742974136380121433750140129308006269915675712490616645276168532364398811394965968573300007677062691737964661896886684263418422540415099030817031585183086823165716072185392624107989056060004588918473976755157479424049540385415344272787637071088346023931760507896341816301083715941577736787708396716138565413457076135872951010033935873061617676459698382590399020411378492829020709361916251636177982539357114205875765610930690170258816662733307110668744915584841200301352801338097924293069223143037925633152952080068382981581822282347479227341712516036830027434641203783185658410175224089030734256003318108728478869036521569723458893514085187375575837390962913117468032348011892438323951693050999267311708001189904300031445295496961777846777854851303312331190066019224941312753058698401752378828992746224028091108278310021750226207705614275927156653549721019928892100926886548866244337947911958923168155980020717774522458185474562068795976808838347052696935886560203406367287168090810042075581801281714374800855427652995849540545674463886736323946705913800580342831129722147096571952074777843244225275550099970278356417537567776314843601273616760050988410227208474039528095974470841914859244193654424000805260681804304530579232916748762574680934156342746108014866348659935843519232890435342678858128858663466186622967521679932424758881174792483692610814343226810385913050996244633139053807464368863188977793085332014381668742488981285589891077065656548091941621619114430345720504287858606637452494906081811225224935162457045846501862586283652822669425195755112232056202187767783590187255729976971429228462714801411144116534422425597831671484757166125098510417636279176589876762808422346977371759891960349848006836741155485598871411172335647111634144555669190941140020425943381429690129720011868872262213875416911263692523779460221703960741626626995867703062517457752437372944859175610576400166703860388710400665948135521627076287998428067607215364877945108473640975907364900557954359150015690851600096908585454492791872170106389796873910750677641046614318540497654714659238783493415831602299444781755043404796017837300426388697103798825957324028033103944268456434136230597430352349176943404954237675578882553109094400553933352685576094560510425831415758927121791493403579846777234710823862465200189775262222117172463550067724600931180945294147654080510194976681789582965574426737091555051262300618830375431697661444605951677019881272092945063508846011484691545024145937255027698894930945509393630894776812945577284880247291310729776464070971987812517514936671886452693440986788849699448584351579727286394937671406881485630831000413125111596394980347331193167121894016703473833098701154215242122713651839152180452270596433768970241471776691249532498291479745664614050202449179807755427091146113834335793866186903336180766369628774579235525583388224936292765543971196196568106860464398012209102614594766358507184118091549527425201726838905335457130257291534457580407137242610833386640833401424682413702404950973796466939647083830097546951267164814236996779918736821208889399067012470250650256460083050500253348222666309444939972864192613789191344189095376524506116286924710472833988999841502669982968264105465440560245087860414387001848542843343314245121579629735522181221034191426571694278115034674644510082294299182701629192655491219086982779906381909230902527936476520130941451064920464274974540483798245722910642350916085846606369168337292302722904539259231826181557714126728962699979201584071593827873603574634443396054971064838419418075556129226357660523838249756041099781889898691289873328749838568321343405172822504488947941364239862324320864440872120974020938872784545873715221824462204259586839199487377121434026023285449426233624361376864640614288577690818749373404901898085753961589472824934910462947149608762789656981465186807257678966502785063981734776966611063017544343312901980692356614219727259066896409684128993207216485671220307829678189609550619983483030454522837843649598992624416883016480142095811340218462060870977788707023202523896333985431287936608439346037781688437653285777307911524847132804557032477129956373075445537464787365305474406882353847437405749352475493678174540229003961517045633928886899601971516121725621884926494469597311471055691378716123886007285488428322350446038714837491463275409950624461074798103033474959263778556186969065632255612049285365367036971156450854944113384694910786049562837384301520825933876756203974899942543921529617316879275626517009318982341833001129179203592523243667055795778807903894395528937631248625378955326303790848957873967547704876659025922442006477599004014562964246317921935339715685085850332614369435170673735956354328724694858793366520877891479918005558838931508221179424531591587607261053019096223887227188672562600361202084747474195604160620954109637401756352807696373918043597875463322358702247245620882223833287835785509164080368818253452066772037131848302493214403955920615473154886064208295846667043938073440940916533604167236150624680472041143634319252512920970608372710730403038640339739590435265940903890881775506446452973240167738319723353301344742811814528388210044606350431129192581637843144292960107312973296914215153067939218162666240587948792716793956019454080868977077524467263775102367005314188009207983220485867298774524835338585446641035372293667204059733719592344242117695627161107651841173946609549536953495113821475987673362870092974373480381271272635072326383427456555482349029182855035055188720908865243293434443177729401795716419796723637878342640943173010011888974449945042666663676152212656096204058881168640474712245140998596836276025828263494737163812521954573458467901625191043946132267146947879579630449524035521909644100104090093829358094390371942733044806960704068012404428908716402026964269580162798330937740273791855055118824305073743205922582206659508956968884290231106817514395955209604405483087976624391326158083222876638136993997141172260800667795529521077419947435514666247984498825606759067092581443571464617918953897479723370379291377137799885588389512415447964628997882750157932656186509468430132575895965125750612367554086786528030316604007415861468654505586067652879491241195147915545433069800089529765178619768111937445393202106753925229621900799835362181482336414802628962956378249462043149054984449706334323552907831431997469149394144009707088866148594105113648841054439675072153105856916415219559944563730092529700500906305215116190189764860829396068014326279894804679335592146841393507605897140674064348680742406324373085983534254132952786497139592119353816834904588561414448611707444112448973306957600604696804591148545279295539006861817572932924402230493917311247466806732457833099124521304935425795218557154246416075370791980726222943685172791064211657165966774397933006845921299757837732602221120553708487947243049643537338154718349473139944322659065761215986418872869281932709658250186615892099771589604189715156225655810298651139992176969954918503797567976197725689985446139920987674175124577829417322724815988021131031586663359214566716567992993010311103284312026915260351593357151319917893697834980224389370991749720569463343004046331772554170041568089161877427897480368694858059167584769166166700818030525657304655075480326500402276068104069696406708597289948203607269682574641991859549535722191101775034068738122971033790293930695077657737492940553704422840777837131603465101114135273733096918447304573494459788605889605495379890107371719242958338803531156151991656093276642926993917887777234877598200985533912568168356833382864567080191157719972625063257914579837809495789960106500260460327338304553302569427285361388066940737024110075742058868358295978354838230591188756380027678274763498396842502859591247518635438089223414577449859855520035913552016337391734743089227202775702888720321020957320302494887726825914509440037623638185833246064749016151510457530077538543274797465997442485977942655607255142032530583038696332870710538305924156167692908796086708849419284729983466228424416876210448492365052983198207620789225028624666448899985783878413715676999497633965191200293016985685402353811452121371141201991235801865825165453727559117973629883960764485557018053354481718748205148525042850825379596717664820634613832025135085780622998066609957802664083045899323744021670814862939944105088678619181375134031312668550875628747323703678784716697373522675471303806039549972112486929352319480534770789641312223408786715938354389193689289904063072031307948250937883304447570056962246202934604297975484135800422828418511041589145927447225195733939020652073213459340329104712344468927610532783555242568766156369687252084862412522559357350247619685431513887407064458337050294779699849459355408239854179078139276970076160412469229621419993766096252925531835688783620225828529072227099792384659527782963630892411006506021360145571901219513208990293650258345269625109074085075571122930041678486466247991151660031645752746084554740242589505218398862369439463774591897275139256584610791185638630967290349953556663398434119933311079600179584241574116313771142112378064969104841352776333634557771346864403616696285559027417475957126023146089098363413732403338868124216902741989632872492889302292901567374378365090686687484823613292186140676598554579257312934620373426681139861073948507579184100259903135149270491176065613489042349127207678533855124998426150846443999569664366818579478903666725514242237277315080322094917605545542391783740564165610001962855971469825168608026883903438484563554144048812798526252612126466108349166205523476786318994682387007422420239393358724092638639347207604361628871680663108927345550825393359293769876018054011861607002011898290490819838735092746911626891443633207241662465532329334951940302565800887603586197567090845860119557974513742034289964804399441148762146445324467682052435682927852438879262967403282104934843284983366668136615599904149771333540078107476094956520103433586123798648233073406357520295747739017220920922962837446254372748655833812416079763966009734073642991766878494748694623672879301169447065423290073816399436419880460059331250328341762492420672679592381036338519582165764081854053993202820744071239784722447041324463945204633042163597892535619852069517027716942322672443515193524251113000500849178650662114065721245404605133679466120360680853363996707448485095409369557493637729078574670894601106226993271870505009196033984669737086767661251266236496025032694789237590294113475252871405279066271476593576204081879178465912952176292233297728635300806187080085857543531620226085791711176689118996292856797584538915481711604685218140709542773900258679799548996327640008211609384885146771825740648805580867475220129774349408052515070279756523090998615619158891355758034574923491815073733656065069977972293897972310299021023782933495972373634544914107639991453150304127789835174536902047578639092092163765039874855032942576119145876143434269055839505827268159258802022925054052273005146189841087119937014955877772596407359337609677524345263948105905263617494926941462926414416347203005086721516465761957845507412084542256305378050959389962208146205403396138770312500608325351484869203853536360032835961021930211549096942204360164554803869667723990136379829238185273046958583362549239087428349919052553543379995469558276591184391876293783415569061532275319083616108632475552062357352840037420286170903288431075031867574331024443739854880108520463629975718650749872899212410662134402088703975217716667798476284594869581948667590044222185992277485046636406280393226560287932446273468183156904736275558925672513311174502090715703638182075995916131811459204404303969334214859466217485732235757973937801700177273128484897089496542922242045421692212176053703905284581734489859813408459984988142119224035449825774633135830899022048045461097330036325896580955415064524779298336639544743946308039020438221429115427990165399214279731742531674645071152993384977891561852954307692300679194207457557808626944220812482795357451477043248795413324468224023659534433882363302852587047195827423851145931574796021463643571124976268195543814751576282906114013368890395807689833615020531283131253134686360721551616253782961762369501558463187233596746730890504169495632565886028063169486936682215822185468126452683166278443395625523915496922469584897250672701735206240755138448253331765576422394926969791217934387000086291034797385756766622653870142744994469407199375433735779800295371574610467453929994945715992811137369960598786878636823330392031922240099270134312250884161118872893689915330684093576719568716038701724579824498601305168922458502151757552689397253261667628134975423219224580633405001706307419818140642841402217950814174486711933929337666439142792303869877174951619968056437656072810855932646393501926750452376292217258983363396848737623311092517331060200154007799085031486865098045360364772736415130194755886951084852910783811220169444134414769345003273377081644501654488687880617395218475471309665443811888227360801144647769899366632633414176340584306933430214700509446472539496791896988695146965943613841782288361061324209020625976881591729427611723015533868347321549880051611150323910857782694470902254386009989597309340306951242568578729346656795204839692633622909478652705285467652657127326745003428412011768278421145397892872061521351928777079641077959759479008071573281924308279934024895604605802103096319494625864393305615943501314747812156520530718442154013889264413465520281536212226427360870128497758523648625137668083095010448985676699808714492334405083101806061333822955128063238388614346719137650365931897922151279595124676428136862593693561150883276937743419487554425471029140299980919354471495377358286201696565471191935032669919718705917450156566442068135728646064256828790039365119413503790523686840131793178150778207394471053521825143422326704717204851499303558395261804604932207427510131181856009474106099644895953938792909344421738875017002691396241520268484632072160138624063542127097616870646169425283890170125118693359816643586853700198921841907918337671123428912641583049199127546243081762744797267639885737961916902459832116500812336936427531644533341275824810568574680571995208266038179170462016703066836819360236796682397174272178373756933985608443118510930162559268045934143907021644849183193837130298043813734511535865892114641617519063434583077857941759709419050975017738908287055600018735388804509471874108555261536762864227445975721533818919870323246656898757661156213587778211408431231887103483607522528415183675836224251386454724206040138863722027934817705538470110913598922232176451205090521859982749185402978078592804663351783060078647411528410545770759788355095592871130521767350580755003494749755553443588158402455060177632150941892904231653813662797157844682686005364529801533708139467712951140884781499593028011700063916809450171732226950447779726758867646870781226932241480170297195092469330686082471905760070106534374985346498625095766707264011272926146717677401836762785654393665276658129308482301663336975953245462367100796644391439446271758698917785909641408376525436435778946372673278486348713586358443030709888989148005347385676269050050695268670709831870927722501343595182897571272904798837594181453315159421677016269599824755318833770994087524689537473285662954800043316950804318550515355918100619061105669660727725348553213103493374808051521123987646015867490884171060288214860263820078771232275786407549905586745206786738740632044633029084530176868843996469524312751258678918757563454259509971271031967108973191823184277429033238767589170999940698664015423664083710035631640729719449958882639910222412683279235732005962886559235987399306994279036305025667288785555875153720186860674297544967059416606631920775430601738205170844680711362344664909529626853310361529413161743942631309015819075074841493604631002377231516910908892327745789838702919583174255516841790491197596347646445270627252759170316433081523751596840442209002185413231226352313905588549744288024144000324167923864662049262759624607820582093083516562280762464954541727213917532299917782097878568034348829284814035335944492455521473789637081282473328343610802437794144872186723204635055974572386530883107738616494038670438671447827645198883169458597776433771729346849505896407311764562434219557752612798973105837990345326715920009962295227030582984609345117819677552063894883575706423819557382476558810497824863615392312286621718942372108454191776372854951753071202604736995660931235302657869018793387180987512136141919345397696108873588853738102435311402530033643907459107180632889879718214333598450793684287991701950751122611466636205630949963445874144191384861230601342247256763181749089626940139034459824762650305153272348799283694038755051514812877293817768214457102087226239005133894792011831223048945343868733837621936300960550006044083589371656484315912677825237218746143887907361226061585439380210102370927996359269150518759879027567221246963590798386332172810101087750076721136109216143707582782947904182914547870365590130402967145461250103441589814548031964556697015121857528704449150783747404788729953804828900994293326120432152872202741570432629707880906987501338482034631313507584068965540773892950248732956947052690675842205609264912463982336196286517219617873733513354867918139382442702533723882744167824874226409875035065617489435261078871987969246748684270570171440125136658521535993843902512803077563301435963107997546323102091988185213765621459113817189209131765694927901501473711073321034597961549064709206117642998587902423435973870362749594687038313582930272139252957888591214550776704977356822404469976199434294374984092058893718199796729254713830729276569866027918466677812154412509068665697613227812644378724084491496554503650531846513104048945786035690467629337110949904697205765024595550324403657080329774828706100644781813747907125293015588774193631365249239179023065855436948756938663605021403800649859770754232395261921616108120942786629234156589710554805187262783408851383606157055202766371829054237077084848880005951139382612091794600679848770286869835068334279496871660830459399312004454988676407462796398188916070315875898933388008419557426930561401594611042640403233984264177627160754058547420323837900482999073310643676679385846293707637972643365764305459033975070954739429671101419110122793468228968115041136633197741931412709015968681186986102074284173257648870919681292101216195152096822836373552525925761208005872229281376033264148364503855225364700648028990439343805190889068248302461952322993736599880542681315846838571139389617215131023933665006520690455116318037513018621348711913820515280101472382963917664835118363625689575728862104883178443478295458217182061311455327797276826357266026929727979554192670588497341533524393717227615088918811958826273663526784805719423923726574566934966347141278058300567719395716290726442320671461628504542648676101444574020971663029058224051489614363714395208021889326132332203124720905248784656682758672955119276743102966288066329441054943820690331880303316445890973680722536740005706104338293317444244759954375577805140930378689666458700782792115431833431059737964114186520348796515112024573964124157675064876129230354174323721817186226032094195496183989998602783392319244335926471499383057524988969492657970954781185177704149379255086911181096736927251377496769296706424694784260608613692509933075450612072280818126143135976102646815617375335114980649053912758051308233089441733534527065146166900418883611591264276420020406076701901332010639781844622407893836961115614220673033338255849741203538333938272515584246063372709682235701005019234648590297823420747320519415097650269855231649070172798492204779643284379577246439691499306380817147450409908578958037383402155859536060394450504122171267712450408568224813788403237662328013706295134754036229100207483050062216518174783839502452507766452004865287032395021390893877876126022840018575442808704758517554955971990699919079126788501969637561256696109803676697154048882340331032555965363905943277770869378461750288233161455472147081571314323518096694575669319342937343107063236885446840806241124738221671100369404737923070237039526318338440364363542357333997851527868912143014754761847055050004102431197915334009526596208284539850689008154336031511274233791723542220061342137930055313289416915793269057287060406935324369979622447977841293476729317103644194424699601008485009035982953119308352864150368501078088872659734628392629540866648608987689818058579638176098048645498918701902650242716804431149588266492100302692280825323104517316470396049465465544938559437399374463223014692602010219632110043502121718546327101295163367470132705950267744921352033580853363436608138113201110896948985654635436062631819030457036777590545826365071465671334469441070302353657201342860585901717397606119949026679460036258552746751368262272565491978695892360958688774096640666134809892056030334548465622476037108032095918906064754266617956225029629135792843853740175886942570581916606262234037279601148665305288701818325943191004705795463687994887147644891306390996823444483644528147837350254516648577337867674851766818175061192243325772069145084112018809852970936889219074640125923137390704478819427616779544958649860815791504411797063278874786984905883268551715009879852577999236870602821429003379211467862626032483674421965884988364264086850572713176788901507163527694040324653374571818483067467248107487824314128723315093780968298782346288678186426808254814830562463874872506965965118414266196708155361069357925562804865477588417785049122337399717768800350457666312209937232453615175906365491551459764600097073067224583186387869506174874528825031769602544873105649632187627676447524785345859678419180494055622336307418344525905488828642828723120953926275598066895921777434714257212842299144888927388113366743525529155139697514384424342165272939831526764952330334270187043845297035184529717163174198598222742536808582572742172572693990436154332282434645831283033154338843278615939705659608448013558979860713861576211818366221830609991522310369718114207936856641162502189404089351953441405413499729442785800924752506861871714132624765584185989331813127736788660281029233569755500377438588569922126091377150409317220046046258081448145415344688342058178168182412462093764517385431171985469990384469934516902105215842334608820892905868547935055937330971483287506460455867821763538315581265560479458529443805334750573707471602481551054708240863025005868730318280124372172664157144130194498863313530056243517232281474669587237576977618130575642801806147683185629677343099949182241112518123176395291934641279859904961721948833575832225731338270606412995337104664008719574554625828626382706950302713203503612288474302633625957194477998273989810759852341679730378187961378214276771928989460251722454808261891047016440227979482638248974772012607463022677467192865662365694618465747782347982644945231552653015611837694536485242996680255848503860005186880418993169677562081237017327535809134326794219545739687541741276031944020350178411836250818848899347467384544032023910170795512351527864617389675325368882697508700286877477901308025180617873067550502502165576940680321142147500763693637422717686426190363042441480617291626846720746944018145708802148611397148455862525965615963111111090386599319412683819999485296637653477033626349643557619821463008124165319129331521288302023342002946611911670569168290840164943610570776463106541491298373821174995434095608594077225253832865097939555596398924624347880394397660523118540259259629020227007749163821250665073418991717162201465750930056830837380679924431199336949619401192932693952804301556639540495495726513759083167763955825685053216942748736062683611341683146658571405188281937389999367049142358835022022353614970949435417232953231927641577918530867913902078704461131412299994535163766262800163177331959284104383863227045378361163369845750565586239863513792575607955865314507126477502653916469937230349984306943426669394784439620697746902659305039948721427968651251024930662580930053542151394771784877832904456028656721534849667377966427926742207199736443096540418018391519527009614429564526054145896977708168868915139184378081549011617072270943833343081671904690805756529212748392878797626483256755051385971731461513605300744121316884409304406181434430734214994036002153070475428649759655264376835784432209512235232750866803938598607851736726432759499083994729826404614760987339641440762537158399636620240815400940734347712900827440261123511583497340012520222152864616387210896408789082106280307144089236186256033509487068072472967293960750327704134453106543400319870550311340595545253825594141583787943400992432310472706408065752624367491327567378114796019483955441650446722938266888105340637199109223946283314748942441442764596944515386485385459648460883572309182600490225333824754518020267742497935771708575516873405083687941473219436310104485496033845917225687653249593271317353850783847132322050932842333271238544833121407932773551141157004181652580858288422023332181974685091295065762311701487696905546962730520749530981463752780705930405783400136134063539572994706027691051403501758791252411925803916551582844837244122472424127418274657200097891836993055962824001520887122614077077487774507401506299225007928500422108013434885204396819246750588249113117535207694968428224275992235264237442944169165151426669949356220446481755685414992536728838595407431232316332027894823644706443560719491914109039275767855248532087830129057810134819483426149327733870736640353377274513905038728993507584557642076492840819810093390002537236512861182505399137852786921857043893962776497485693120944474324030723599118001425357473422782518826823394725871064767459210242708006405626811705588543082806627227378714549150240582860896303600915581378821519121321916163146131690574981226912737431789132921375820633101473358357952440282368605472608988079000295370854793412707480951089323799779534825591234592929214009239910094766845255246381087393448778753456718343231383949109889564378921071821330596782799435529701331223113236787901169298971606888786142478625338606461192714057200058755775371313138050082973448121328224224258123487770033761752736326173385372816081768337690049626980393535484107552512087081448565777552871920957605534332412585858306661681493831418453652609575894881777291719948007948506335566699102133040668227617268291133271894624064274232192194126733877618761403695865057592261915193256111835590314058819846426176118511031068847276823931720324161127894774929434851730168057628926010529875383605993412594950676371667782500221807130983434177722248298627877384424436570742445906771381722756932470903632472330133474919642360008112786994184403282740449427473859389488968497604747312256475358833832827424906759681972813513077347207154491364659735421048159374329672553703360097582046291922617514211576184643270724237058000205008792889309594766130690147614521907978002638856199855313886527743612879830794814371170162259342141415001324046279150860103088037871176776073979880002641216308955882931429661694132759355615178462594843414038245812188156789787767070550884724181403498884156518102525399837865433772648220902569591333802838991943302315279881955119703611316690463623718794125063346303655702325566851761904826588757258836026145620112037612873628349556242622684758168411227829722859718084816705743175351172429744018030198448087070644785791685473569720298529045840228815678745754336259149589911501695456173039200773560547129644832885125323209808227393897072591602036861442642432918947576241530703900075933928722172698500322676007149020604359800460668221811144654361755913562416051560068810845044524339737447472967983250241924313692771972189671818010200951674317088055395172613556305275513147658242904666161861223562881222362764413056694696006704822402762127986339280319025575366127508021024945894982865057442954920020913155518988387549339027002671589188863298125594067492273934988716835408165601517618407316033791105287145919670166190122038268441503953173040222303406190625711638594950193949668722768319860095742113866616644006500452305129805758596302631251454959246935531494516398296350008272760061156478257579450628297136229486846889434330108554575896878164744233859044494066932782465379578345228094162878668727734054891165973370741141744597765094234128037842324755580153435733740519137638921601269421952980748742254737116724894830343278366173418855848655097805570606425135106853756008859656399365635848973612914889740937288811195649284890181470148723886413074934218792606397625110002168762324394190052873321573779186091022204885447381294403049584538948637572534216939543339486287451028668833303129683635135775350527769623781315320139215305629494428590548315976812163076015624813018841173402978587537654977748941095333257297648760043999979566987088512275113422195048804517599390679923411074535981267960378833763954229353714824740065487299011657063312720060843382384143828869727431239016202092972805065364106893209036063264743769526037001690245627863205745021535796149585086387837081943308147828181362090247688392034910914792708446629620639785570137398937521736092564141294145174783707438046978780828499603952902859635631515151420866149385780902632180857696742396677789583866285285896514539988759888005239174875396171052085110845160490924734150915173216390526221638398755167017759136264208248678870136115146404263646246159295042459868170670315776421677304946973414741431704535845019297896928673555598559987839857093235097326804874072069187874617398990162208779506687592574808569168652991987891124560063380884915832050473577020315303703559251304953066248570111509674088272993883122317121156451214655742094869264078620268347426437061631690505721260388218041667177406615484036157604086515758603931635002913909938274884430053838699551694373781094918678653349362578292849456692989512849249764064914635116410427103638603247709311213703663447196670714317553293310105295178872635922438000341103996742740765775533235277622940182880890400216916969388821508641965028822422325151256597865298237496809306417879520727446637668304169647193798982358354776660239378771317973382326820194710279771817466993139517432755370621114111327245742954878748000481371374776348052831845319416105971522371829518082343726049263536815473535623034088311578492412015601005489753258560883711673619821744849609851686412926084612156013434663030408868737839345079238104641510559886184473397822644486631706378293020928453876651693396099539276825832498040761044359971763231331745660934274869319536423054303454743878559288435680960356457932033658363592515579344921278659535869439551958307789552623561751900566067876311320571299012893845810108312457846202465684060361842783742076409384831640718057975824426576725426064691449245954568750617417292437101118915354793886918181046183659166505571110575664771410588552288190691459758802623642603319538987720572791904747808185002995953895108048703895381623179439155675775755122479339586822234605401469533772813532666821853099675859589815229993685533623168174687073126471225675016826106529172777018969507662920227624725625905158697780891522521172652052323899802828603736623508221828158385563411755712384357578945493271484350316868404388417459333245091019441718537402016624797077789368736540132159571559435821404553408425944692347033788290572172514197735643835183609389651501766305705483060450890625089862824383723666641642251316825210449958953488979582114450060151815090935867254068381921620001242464559547025581205059505651273921398980827231544589865632386300388267293096144177258310738392458768181172637291306260178794905177895569758168689421341676961783039080122665544573835343887852461617709090449281919189284922769714709074393704208390792987603526330700385046881480748710546952891218093410972850354022394428274339276667098117393883431162467218947162915705828408035171003503134439211937348881927033822314146014240348897949795483071408569235861676491312021805483849690862098235222622830183561124193385544362475285119909510455380332744084546167196193598313939945276428256505324383890423348199552002183667289811908467127484842814461562516381866443972978352551336220969729776357227286741416418902215822052988969910944679302620626457121505339073565175149210203047375430276235955091400727602761621057812701088504210352777553461060005435861644273864565199997327218182992060807162909587455918287385353114788258023972771854820473476824590195648056350458012291166268688333848110602142016451678799672153462035282558350917258011247271763448485297057991769327580943104625496283892525299688875356740956813896418602991803036427603926489460090593833681444746414579523018003936401293269274013098261552948982001366377326452168141727095832426754712985127054589123191754444052147783626805246852624584583772472329192306920535504667394004600249729538951453748789059541729272303021794134411914719344775350831018286455297964854221800413907687206626189931043902251083466643225985541463142121981116447198869112658994998287202597378883242442680404990075306127819998183378740354009290974070089926652034657877892810209379104533108405854230768917956004910252207852121704826513051175987453051184996593929498445758814772179359456356459303283174546531777257794807584489004386615228923576015259862135038468901410004044385505157655350675665874312025851962386006230793869792429434622765137337599612606218917528788608603444472675306225946837509291574244372220587593509854930089717745053368441968624949932471489711631979813062007406948149214544252431375165842521531824112388626598665677656667327172279876941166586581831903895281871273129140753254124603240412656655292914954499141856797447464598144532316612844422880452890498663966000958922910778924091235431779233837860331375464421531082589067382268512714730126724143485671925222267154958223804583936074372080879724773160798315213144566292018239425811851482858997846488416091820321920215915700486966349949319817212295029243205069245024545413304671344588634446618870828928395083999450138185932406685603418434030611404871889895521752616756229392365039507924790158029376226956951600697859056266961907035502239464454369509458584372956687325404529801871604702776653269988423624088256934304920437865882691639661948515196969571155521063755498301574762167258676340119014373241469785861059281153931137503757940581555847103872757947935320019952518879832376971184802881937741597130059097015557549472748489231051720419948288234529980030063459098943762770034837159610505732481310251801054443238122389124476080652703238036376177283859509155349392911983252079338521951331135278532700783118353218478589690465429790170614180064818210617405139714616701710215600815442386061753246688222958259666608165660076210295522391037759272604409806237723756828996650669910709310904197407721070343739394430354191275995752607105463645494184835278775370574815339982864570327078727149205936594337831507939164388721632437501295689392029280098414521404195792529156535212883434805249628263514874589034371151100243228846207095705436973718377053354828912340019684431249242324966238833945641972457270256235391184606071351386399417765833218834748493468783188760421963362406500883332606118809441984472466879524390225813510027548972970555643638364996170409076052465937812195542959931799452750261472522280737715211572353747036998644419658667603545536782421402538225356420126884537650253252240173325715256104567956832403850653522644545652158564968971002571298192342195741627316508310739235131986032704649312679878984131311338784669908736049603818877385662522298785855987176328013083204941664619345252783796146475388987022110513178916790900770612675029256402618134955641484591283609649082400395502773973211972088804135024001672592348642904322455892933142355038988978624734570473584379239392817406564749294633201853703851609914796601753383744756364440514812761633952995304389763798477271479870121272678446555061042304358657306211203302174167896251746339296838852212327714996619968020523920354441034969861498549524644741939619812289207167865539668434274631485104580615454603729085623251625268226320145385556951695453476215892654480848673955645660334570672017031875249827798050213732630300236651817312724669263671305813587095289854029095804624158816215831610153250167117356959335290865066988163974576624189303065147729884292368411995533959946153415148471091193257440157363729415328665980539448909970576920222318018193740397264694957318954204954170069442834034391709434106527500328112903313035100928780500193883244080408181068756877859861786705300371885935766616006370759044911191420767816120638522867073603033349653672730439787169493570559693120554730056021802510792171080083247183716002713554106204036138684844084963030400494895449729108002907596198332344863915769007061849985535809417551098934559071333771425310427691322884120262869672635325567529902557125415913220324644900244496389655506460432124203102533088117217294702207124135870654328974347916212566305740750165087717968473746452591765169859619118902442087558220339324153552235261356059411425153308447196383763750340507109255360290607760044814146530009724632131714513954069278477984692936792601234080548902013250131980192617239202706779185933406608304219107044311893714060349919668449071155936985890188436994163640008346310159586058084673158432574169066563857668330735130662908404120543046088928169282461375778953535959531635841793443551176903898970183914363675437375343185538098138056595724066863321420476852337137485140253008672947264510846924117986302265165976399853243675866741560722858223846786817389129841023402552204154929710481725179306987570747693120228162589572126544538722286352629675968881705623373698788324012824178555195139509944405151353072749045553437418409773503291440438629269010973656354459795872603986813781323542078800603717634520184807883533448946421677261060236419947170252194899003656502956982056147664962919294527507197774422948880654235084279987342237564408065731356523837634248899557913654506909696251257245187651593568962316949725864112005941319051095865173739407285705762075522321292407084977326446550509161584401747910450583849255414974822181038179600610389996859742888944765834319705210637582594028456312205159028060375815898226233992377385354433026828205787320901201826892452047769317147027647868760799175916911145316462918943132380022692434514487242863748036575389344243575833808985034678185418625054395816091348065053302526562395237440295602009276853582003250345721857844245248678176613748639297396784463825273687192430641692483511653104334133361260700084809251281644938655148876272859129176354287229066610344373701791004692954483622102582618620034795024384317812228271233127201105191250760527552226090193479316216335574982326900684755439382047621390599012841045635200713266549575203787965871749937557076429148582120326831060105086728933840184405761789328306359085100595012505478809250728081209233613017206415889400023989768418806676735966582245255083333310431522619162710356247020307778276785168564798775317328775422721979690272267934210038438114085366175559067566892986380699699240001135258399349143965444233129020208574266762962731394764570272082856908719983334106749064788500234496228595370977827464061683449452016130483464692840394571998706299149616723185766099283937299979758067168375109007600982148785150714884798856179390144315574517205190961861889631936005633765053465893305964611436558641019455611517897409493320750603394265013364545890430983159279412603859455589269929651638796495182725121553657968987866554447416354933898287650443500935958727321298389800211518878770131217163721998716626095229885043031151264052911995169414448949247269903704676267616086887985689966474129144390735054748897453811193161193407880266988301151552458611113367869593158269150557283236879982320915807149609826888766223845195349962464304517309924865607058364461615623074060029665940682472456794902920787643904210455883810267941108305858723907902689490367058372349998315108077696728262192935546502023911360281159667503808743108079649623680991403251282843122644033644560636877372361317824472351333547213262039561942272200952396747697663596455443898890896210214043934261251081820185526197217336875390625145908437043554380644965388628905642441420163039202601325815864203755434220596518507415303150629490805672734610430723716276918091416309265322410425351145827501396509069003453470992049342908293566799679515481922019330910329410418463247915449255583663002194194977646482161540600986375591997516123467467504052759466438592672409105566199515796650994074533018227219438658669753777148800919201542263663293067091746446620413010439099784811241713815493109326928233654570950688163876840590239549450368341260164203698390064019242044778943761412652651552635216960113170504839692749638693486629371271511871138105181470518276442356978937475509707214072296302097256903701311007721044985284686085670291626913940091701160827801606354469766384120047738949305867078156361503618902248157632300725264897793547795432081173145966085228277697998203174022136806617384626377037645326819447358362378947581660328561455751573785406156882161896569331165380929996868342572579600047025712636197640908523670873149244667367373958162959774167610181642919352954738081930771590808943321278343120423892206051490616445451487261283602621904324535324993764085053210169193725699546842749468778930899586361281776460624634137779671801196144199458090931036707134042035973185304705239735951792002102659759115993781296594599690409496769209906195208292984445766925993418265102929878653417378699218634099901571158504706179695255158068111091189447099736232573494063594342062749688853855997881149012527390590207579491883312820157751460903595390685036482531038341532147894815042672759789820224171526874251777852623787545765601665099796769886169845810820072478329411929870095257286060340716132944485319674005585102596240504835123032324801032875082706197918348202405551537719957817024421086351513933614154421130477580723954433131102872667780560605366436773729918319323040632431533867418366367035644398208132620865420121169203183859797671298724227729717100886711217309278206111641852842969280742506418903090400135094946302229426509076582102922463073193171716866781266570501810203820486375922727220296686233773131069712742194410885143975455244943397556602039849229093806913209425653692086048922314392495379355493072393573156901632601739268533202966245128042088367522322946437944615150176889390568590179763801787533835110411252968247831734725131723999475217099674848149995409204300150766645714264871116544067473901724151354575360564863277700483019737840544618646181468169271174044058874140155381964836859150265935149763448959182613089331556075803206786419214666042522417043606047825139201701138239874083539528218027240003983360436853787608877676311069903214359285101509492361459187900485731163388888893263217515975228715724741040162346295973942895733785582412043017723461028076845777654716647503395285598865686088465455522188109699690707784539876636708294959673483716246462065572660866033509300350990049685401446781792741847250308631507875098243598807630584646530476526053759453801976568318121363393119279663285262643621275709934653562054487075940282338619544357621368251985794643305526370624674230275826175186342770281686513675259292500661106480684471794299471659803919533267660624134831784747509836680122043114615793628124048337242570318076376782235645064000516380834558273900563593956490217096813342955641818295914437246044952476882271428014600660664203235284774095307639829653636402825621698870472678510877315484027741784500892285090879815890260460871678410453106074310309902953664995713184521685699985775276879009864626876223464102195288287881135606764001666467283577631480794818116249013492396297931127730018448554670649602487358785441565699489647388644433615846982587903545623446710399483193511370845353315332147542842248802055549774386555227903842719322771809852116599671747230141197005642165411770608447848003481674253790072348720989434271748723235313868401262607674974220519851092483377405227245378542550877988752314547538622967795655390390205813886330170690416814066103200672393772839870109288682084548921657817597174189841516450576332919929925833578313099014524107068549899259682035700331852294800344362872131056257890678627201800944459945681299871844926466424682506415019262467836921061603052386637232997323786949618995921427951522518282985497537121475714161850312488937511041359350896645333364043015250629645822078025490749949887414592143311634652067163415164109927808538726211541099591625133873837946883519327986306602160819258304020387235826533899605554566629698557370604736071647758509724617865965242693007127040819560612444526969869820407112165667649838835745091112713259923573267385048875160440123896034197616929122408928963903416464069506471681078869274816795555315006302338864595015593705598072558704890979649676284396156219995262370514586677371698000151454910817310219107811001670004646778751804063256241168740014781941136612906746489288765658105056373428994196749736113459130763846512291112632476123245846079418054203317414707812069736052652110254243457014996549864837604147467686057246491923091400673615767239640822535495464416139513993142699653110056695825336816759862890211405847508166051725602613186888061132532559683554557600259731148138569646964173250620850961399678934740231508931779149199960177709531071583900449508625052537164486060586106320285895752182032479023151864381638538826128262764352997854606443089857672023737630462185884562757511849143895222625622985907496266121430623794051463926730694689063064960569051263288471274659721822963263615664402793070310799864197423674851686316430259945327220242698651833947417386275961650090554087015838903570783272444622268347607137063730007305454883434344409425620908927982956206892228076024597672333030065671061353684180963293708569789234165861592297392565113438186714994699960684657502817768786952441508982279972208788400709405328984023623645705709242405974077543837205439544803268750012747600645554325574283956008964983838537801601808117590693054267161011566879103083255962941354670071956461006678423905942424286181504590250900455801381804917763498621876937461773949752209570618612375510014851607693940252838527376599141176686982988423438327981541811607762113471470378847402118931526988729382474106373266241050103490392934055737899151639304536297017848497764662778833199095081479776677924566703658289756473448915674054486475822186202524026757590166582677110895797558293517884492587790512241368196337078623646889503845693730408107904784395090771584523726153651979878864832973240386942746469653222640534695645536625631283927567875095974424743084987225206195069209599845569750491354007957292062030457376469499642928218587058367088829351741799640255466623608304412495731485034036357687159272875492459453962699024438085969662594494891815482689515063718067239184753226358568931734680857074508726215205936188364941691628304196336851235952396016972677095954894485338648223071552259035745888074215205365197659601216822751789294970770175718405099029452812302838910170870111572823279006352691913450566092135164998764990110344660256123333017083132230957615275887915553976889054700543838302236017502673740148534938202533242847663693995044449995869902515893953432239444552743408650950024974270300623412706612867643820601511625831785898432815054332352532397461977676114556552348469555123599654661207912023859737872980110956161331340861710207042052097300933193599296052879719967514272099165385654166675817827064258390494257313858639370073911346033209792811583422180083216169162260690310215440914680901462992124517316642780027747443018185451540628793633788939733699277254211218781476521857577354023725454578487101069197488177781307540119149474883832908606257536961283796484532658871309119621754445572547012475491199372069607113579617978061348869971023613700803407438671480298002234116820489830146916249056227042101853042933361217398065826232289130999991538938610525381269764515872093440949988915234011517631606977938793439979042614611399535168347856826042718501061712170560926655120923586556025878000926325898195186086622449556949092787247337658214453046581589535507607821583212174058265493554949003325945257544473038747587546978106813097074949404335553084556236880160634741098048493356672889743944645143803651896986825351579250884494614542171984301271645457382055346883408112574728275030389406148636705389889609558674096436398135447408322731467345003657690313165228813884944934253080411427942114702619341550930553361697927814762947100684663083338432021856466459930591634980198676011581179771237109656377424752170072300364376492728111623569089466028988509618768982095763340317912504317209003894801702230405629801715617245159364195148533309713361909615797020466148022461416413139573617243227009968345850569612003466723801730490264135681154608745195749652115415979042897054557152158353103115265829928603649478286743327129934513355805834355611585669715506816006760111407425561542000882956230764941579163967340881685041015627032095918951293785500117606765271516828192336197057687731775365772194203789048328459330332098460886153697218130838735099256532382202539135242008164071777820104137128306182425018680359818758798648438449729051522790977949236142809155908131818045539860768301288912829366414615245558641526726836974010166038526054229069512591642883239296781480208664607960137346969958274997399553270253777828633126398662949368308924127513225534801915464366661406362497919066041488527159312025387712839885826190491769024883019356363778187000952350293355588503155264000748685421558416225217287288017077897636638785691578557177115500991071043364918287458690153213275659542752352196908066479579271384980693252834965779304517874517120526359048396966263559048480016024015391103396728706810991067755976426262695182887404284275428273728857812304476909948265051097430428841935261954483776113600124912280821422160436853875509326862263397100197335892804898066235042865893677798723341961723349590979788309317271641346699856483804548682577810518611479916789870805999952644729459892764603047722717313497670712969875168146845393346824577704564094793795604827075996712944635228863163872631640676785749348206245052736733040648297389439764004562099971965099062927412885716100436480673040915268567369490173927378708760762803951915444840933214657702833723288934896046083640467004714188569083290709809554793496009882003970113628517950191537102506808755966318947342909867189402993457540843220462599571757575738131048005086497139380623666817339991791565429513474432915795697155159470964807400314910088101818380855801774013624689882614164562221363300071795405482748961823364278034115466279569507792564879934155376982034815814697141172740107045992315311372055722795401552415647818542066691490858625639887843553158132775202828009354465936826166615735490090036416502211472874952495172828916198600584818124085507885621845625931939927653561651816789224738612548471854040911567611224676728835797848093502112718844616232275251955024194146977907253446694688873295445473870166632595597324707499179075917245420155598249272849020718795153453625093242164495544098496943713075038466576422815329714571873139881062755742286341112200404952350672250593680633534093851550228412085424245600034588557549711027240254793299200208260067745926784335106497633567806341336946932845608323418789466968939961405588183177832866093219812232103447775789030260751197585922759700799228008988241881545335266520771885240107781593861762100565040295257079113898121267157260771689148899778824911493383817993862681494673888876724572900079014325666601388857185424693633356997523315841164984373838966821645260002118440055330098206061210332701662487074993727456240454790209794717247884738092572509425943476219582383153433535102102782613129249909245867868580668405201248318327125938792535918100480765802225275461011120191935871025359573479982983297003369914862072901908173201917795007748032267963247822020076327644531530184903257526806253191669663712059419062261818653894800706203641757622001497611698574103876321705590443268630462318207494581616326336131083815130712483333744743415380613203567070234250967505915771516895512237865199746896893046241222486809464440812816410031822476176934048169597387008096998616528558035734963183253648714760782883395420503970838723457525285074788260050257800620140197248816201189612026770953804658552720846779948614467633638805525026972748776858088529254496935141495001866665692871013897363394485796183905500666488883693510437905437802775675717433829002636283506827526364652285068274851710320349992496965918101854490015006702968716533001495539583147524386986290615242662003684583379167989215692013377579636233398938260139675408516670095016515183234843081874763324676946036086622781878625752839285433359205643819264841971615783715401458727566358044561336075573678068362270673568968428429897346008020747744438449400743679934373300542857602663976805260969810384633069883449181011380681428691577510773488575163029609172946225692887867928173504965162574912944404745947830137368985329831746155012528684654658245570624848307898315822938220089610417866551781605867422193421255553004920192982171487304375077715885176431858991756370745404866296211957163760577504764279408521983160609666566560031679971417463010081931081475519651661828810160884675093466913101211195583755605305553925591273220496990972321550278123052216741447884624095230203104587516468600811867582898126902221610729487556344109029128379481845719384675544776310698409978410825560739886553429765480078920902976944899561028660823476564785971248463150348786753654934069176588376365646434951477638980603585211928946270410626411160003483796179488930741695765135637495532576507287818688085959916786002448913660350808654074153516030928894274070808165595063609995910132825245587286821526128258588974552189047899486720075929413266088987783705394775504624184085030683782871986633258744502224239955785818754628596446461834627686886933693538384502532376023894065204586439798030466518697732631631083863916766763572993168675907167993504829303814010302553161620845817773717194515188799553576703327437279029398424503822919029794404934349915773975147957603747912317995036470603719067943524124294771293404872339283245447740866704278768114096184603844534830207314467101282724611017358088473270270823473565428194345099331624953251623241412493848852370233715198802944081710745838855199552338765654103549184919221178314338563654613155044031067232938914310559928379755037206497208526238023051411503374503947818173914994614316896192959718037194104968632837269468612348522094531811547875018048039387484370892240174131341708391497668064723807970778116698297693979187927057744456450560802757000372082475467516611230427892786558310868691043476196397631075821444132316214588368046662472395697886080323214080774329858285132435714134931461280974121385344953939384799087925319177993243197662679874478607013172838226409109018322554343908299787937375913188023075436625440764955166478761740657555009128709618169545338225010815617363238971928843565910479653023614248569772538726904329660080054012370176251092624022585506782232024507854252458724728538093607157276432551951558784220140163798465592769515696665811035820933380735568540640010183939172267032932480771165266522223910997297561619093697561438737940611672495519849821859755537794086601131550004932948289254008695941776103605444434185313232813523260600292752228884431446711589579768533599951725389980793504431746581914995797929324302884183575167516636233461337422036437611291767131056948045055780471801541360016800986408735728377376833987611059206486541635117021313238082044734691270206425720424073925966907808986222291798668842097332963848884903976070517755030585530113090022363162654918077680036292693322598054996312187692509276628540982688488831792458997276812064835523687730483611747532074152784300522134892732668461471703834322420765451583666298934088510022286305872788274036493052112409484194322848832776926274210361764784412222109218186211784867434958998927909012041958794948904005181626503738210721694514660470874397459175669243635984052763534069370354734747396985926369466488725471409750615269707892743759233059455853748941917366250262372773787555693033298814511539697344926728691073739150901350793873873210256509465491110537138690140631812463359412856629887664342917998856711301563595090158733995092931195221150599934384924939180726161213801558096206488654609890751874884072437710081828888962773744775581361561971191845600731943372417857299556837425454136788788690408559467494498634881489319597707200136987567115450292937922484645947841429798371722042595908075976302281075329824383049372770065946874069368188379079752881201989596781450739703175947122571929573334515183700254182594313348796410815708976796364607906327237428468729009154232411903373467166449379874479535223279609158549476715259653219367754625649211463036032387397576460901134416187030188373600313033391495329761477973555725608625769879942005020998884214331423553006296522064191541184223584988142772495501896726333206492255101192399211993495166989861421019878794692209184592416079388354024340405182072479125325566255832135713169318958888075391095768028168313901849903964869822519319950184299770069760335084558903595416335553029512603544548867997071916563346976176354182448821018484087459300992479138364642124314064072739022723184939740141816081202299968828441256670685130579951461982495347776441373654500863154767367627186355705342919936700981186744918596558042606278802709924298565493920727361930066571345760335542666774137146749015502839053389979791753988260197102980932856376914226268817020813293927930923360844256946961422796318632356891989520228886856582847114551350726822176050535897687926945274457088292710205100043081846956526208897220036727882213555362066436140100368742087201125903132700611583393546598477475723032661769569374354796895460285163826993064267795010505878992269615272093278025181364436845922198961757713921766075335610121158774824318906190070792649901650748660796046617592546168957573231051770511004369396876109592673898844875077226290950519124040754685670756233689809701283319973117195086608816478770711119463409668505835664591382119709821488122812368699070354829687922370245659328230368717156079299640893607575860500839029023404939316418308021706898433909981424588467932380549947649025212935915157385673134783872508510328945115231800149741261733109865578834605467064499104795371276345754719542558762836927914550717953990186053027409334542645754142918192710301442874151795109174955679757612719749959093220017130351465003970807831958905105534874688043824437711129648651672012331642435635420631121351997659339667302563003660265703574896286090327872039740455918411805622618717570695102538001445283039894834980801003444400673608746363686507243364589699070258952237949749124914700050117251363058940385750094737426856286803969966388409835657395561397656966113913501230347616849302827797147869126990004668590378953957305307314370376444859459563981068828335387872012839450442671500605510831981124672041473010886308876438607937306039833245168789103765054272023008733792054469221041468728825747832644989625168123821345046815223317278277289994512640143336263656712479174421603879600944990574314374548437334004725183142418201660546311999366290453451526705862820402291527667796045672581480881035847800998369918884450124725593683884249708544802018007196070410425126016087654609657970767749070622295670535542592085168486169640045255096353955074674104117149330334286729700616162141697238194178766789504597007506179888728582537605518596143786460086145990077404636975542128689620990643903879594402785965199977574589492245541947222201848452059523216843014259182361570778080854607542660715936688081112916654415527468724424856125477071761545866144992794348175113254884250307218007822667818491536589493609993563914527893567075025169214224417401685760427869828934322932896486501856670032832844303316433558492337072559939347723545261780861831754433780228283736030326010737404157465984654855567464718222787245350264936096893911436704401182382937281303075486490788311545723327630312327519696832615108682808783451336381769964256826397273629344421658308636856177173286825554699932253619647282100165277111107029050872749779707018439589197121445409786841958103060151522864353730357641231827919446633675830306315107024232196141507337337570389331988946119282247448234645695067024696580922366503210946823916212061366500047289776403026329020121364469158052462010568428658729740714192610075040004813899885883632219322921000952358606249464639566470252456882350757095624104799472067016628048996785819140188960826214527585766984679948224226736093079116878198352211010737904372345079373617175718056693580057691929112830954593294257047613764861748812245764665279666039191256867970236376808036569401616829377103322370604035688697463349532202815228511588893570314920397741238043354308104428324811659371810171462591914318745792422289829264391649105349841751517637243039358817339996181771767738118544610448419583009526332983201546238352590189186458821390230515148452767654699842213488554035987761214553213553737565706514267559032791442619860445254709990968376446834900329485210645217963390686892313298058640182867409929683484011635041153328362592967856489752257574722214194938550831140993605261385860021317650773668908315048764023627857273146517567047618439404227796022413417308677242805363425876922208398921832864480471129802340207648394676492872241616026286492967686811762022848735831289562197913824376771015001338169139349489987449064850059223874705604069999725478576818054936368616880787591779933305716648276038514748398153598683612350092394852421127134975761281873134706874129709544502310817046993617260807045739818205854840943277930364474504498658670493027075799682263793727257886689104763738887667104120496112350550550046936888100518814885668766716013061172881692931442401391982887694617171058337003272014884438847166822646916413582893134417752375142683658521250788957460172980087881217524464433701344067882250539098616417549101614357412919786801268789018769532914355906494079467449115086515400204372348298105218590512392126412711557812512496897541687659403054240826071066566233135585553223190256053567747774907658180481672319039233772819822804155419702853983405582374099610273916553449546030461476040170186293722186134268072917270884865499990419186448258353903856118704131081556065478742854416432111891334491633743346860597723569316612414185633143530534149953320540486973662498134253439612074265548511348958653344574091710664025931206758090288242780472305698118170209807825112627546583603507251725153914279612703376723714715588221412114989851377296250322114448914109477351515753245978391636353342752140808321621451170374161745796242912601914280267983631645250120642314148161833502734934064849107456456142558903563404784759963848612630596450536752497186091944925326024365602675146669979525352660113556994239244803270383775067828187604226958498803002559919990677684236935078090351327085020062652574131687403831946103160894165173869623738225605789532526594105950373387870478020278259332667011604116137247086094381712354081695286188530167211271117272792757040122323003577067964327386777279348360663270440298509342102005873345714372386562587730819435683954970175019163670903987305976785341985523821869102130227731401664294097868384871885720830007633672739237279439438964408849199875055961709616238508589643120801427532704840956184236065550621814487804787276880155817486079655128923374453808543971644207853832157904172236612083137331469168842480128105986286378079762812673568206488338299715068887671762254152533956096488062991081491670413679317525597454184959990023073848348100670066862329049941059842448003728164510426073082291003991250934840047665693405145599764696444932499058796931893031796737815705512809355942374992658614552472271202743317926653347766800681330254408837673828784804467362387851931281370345371608692010042281262056865292249445664228728663580219227996799907420022071601557360921856709013364437241669876054512595277295051965012781286874933768135844220178265273641455767688167799553007180385718226333368121235606026753906729292533724713582901295399222345504172348842026813499790552481304461554615680690108184413646849673572756987803553662230699180654009257029080054223999456497711573412492450528528825994532987006605809949699670267770432270537990219642502917206915810766404802548658015576635579623478668194696490532719819155490552015516726361399848352243232721641428662262124374447692259567636624458554840995382799723177093732391997263591098160414832764948426718872245977435329992120624814805763453258787397788508975903881434388006938772513957962290841789581393998740720521327817561565612533831007318879676764091175011695849954424124880964615628337528184499589037882367101227680471350194703098898022465825697998423584225643552655270487859359113585740510921049001928838772932752308923139894669259657811525978137763151968612981831209027535055222980533336714783942663657691931604212764899252249069970597153704338979862949036841128317709940817649698775754044146131331688563294212738301750830125644536161024849396945168740035906844734239368583540450592024663768204386365720634909086502756673844263155198424518116263640398785431547003545457531242256002448717019971902427930239792188727260995750230590914243848664166030226957153170832325416595490580290542653950310392961292936233748235080695961849098259745417858040997496910666832248446824134768194429824213434792035899040671452847295519046959541842680685708888974846360400538251859581486141602312549299835490256897113613241272721910726087249440268464864345025291615354090603143820286857785719954559056379604497950141446974002967353176137615019495325363173053495989181213376197589736327908497749399835421989586146206950205399827474792200915451457224774027597870158775645309678233418711834551828873435451541597783404481125244773953017719960312192776463030562455095888753441271547079874518088388663480065562212623175313940239843367970213880109437813196262671036383542782426057549599731409023437468832623871025891904166114608551821926998670225942163986917801418301460723566413996236178027941427196757919895169149047818577481126938433352102003043521957888366188608471889024812149820723258742256318530690410842511709906014683646985649256452802190190993751102196447470090926779116494256746740144384728930570669358870128210740818867222469134638891039152131662287455970004583533404320094893915327710123567831824969566449582050800180599946731691473425471728905702557723679602621985877117174118135939013556867735678017028720579459253837153117922489286467184001525665137253442450018099140998567544066947996759692180768949078811742566816008870965626753522978050306966036928820190120583881468893508045325585090213276362780275893065886586421866948772550147674047771159699589935898388614724703553316513427987912843601774004417407255109462347775795450711707030733346384904061841451461411638996022201064618643551833325911530082476277185770178470941756479294136272149737074826397016658491112125930842139993975704526465565509261724069220145293944709739587049296812455047391626134720296622006934500755141597477669026840762248971076498405070384069391517746348870961798470782691862189881933586284373678404418259754758253017717872280210359680661619371290798318895424727798305899498653684599197443111340317565313974064733045745914186893205656051487342513444570474455040648159041368896176283900107170848817208667782223176097240687825444718434814233785608357378339324004667621001461105871680717936334837095131516150847714548694042937268523587497223099708667414038158408598939523514617573272969351058533338233541626421508017091202065383684376998064297991286524816466769088691352936693675613808884277887202897719995348862661172289816821583734968285578325424818925220299616239717202622387440282429787663542398289421773253248735876275667764123227495050969645882474048529324754054242812550027892823893621060917308144260651089281767159174778275287820290655484343112552260806543055735589223805588580159001415573626999772174558950131048962885634494170280423212210938872191738117368184645650997854353235601126691321483718165810824164769079327274516209235594748979662523315268898262941197872167122241824103529649182840498533107606541352145035727843229245770096777001444604494489319706133952914932355165844393059809813216852159408384037874279805433900228744657168774760046949125937320879972766693487749007772980155810436656684910289035327107253631526055616152559073224942362506705861902150858775782810314562750504511540748136131324809410850143983048353652865078311408512047658374767517772437256147516743459140301190718538094162004218752223991803185485773391714283542853318818292910819569299929163861070869891739156549508717464127056720299118892796003720972460226692526770219427885844491715522262881275740265956971308524905868253980575355765038399922278785430474197419444203806887446932936539127414395244768856999434606465128923932469616940943355811819304428943676825455127292173731453544161044162012338919159521205682428867185587663377153548719968369267231632932390709088101916661885331103926150323258487211660914253608337878286292813570725347187958799706356798829487024427833398129954841800768370126863078201639923495428341338538885693123066519373377986113620191447936810464041651800947502337810688296126746940162023918080570106445782959987419503999801930763831288110559190732780539111422921866318940882349878001843276521246048509309074689262851260605974533773786651652285964616666223280498194620051904404285192227282464275159379279713116599491028113070030523602865755755478167491057764804472428508601803157331850660596503007668406591898271197938283676404856714603240118894760991705212244803956776656806917140768387573048833631963399155477128959516602849661826066755376732239727857124271450380904265374885130023147097159550737619188988593274786869097864437805703846648294537233269213146099021556901868791675499475654117812365466894479681229372469584668716875228303476538753617800969138478324787922404054098777133409521903217632975710003701729490140422229407666237258123475939865519357659673339730147136807078996176471039487631674502203950620042164232310171228409038929645305227436824162333512744764590848796592414077389653325390459482556447204794117249899393507393572291747963176634836456541695626602086714496492244307017570854439632258497746595611642663987622331578139061230069916976248407110121904398081126990656014837621747303832032269090051376373872741781367796376595668483838888288398185061043548186452541280084793175608369216409833985839127831204199398657310457108995245371490618054273881866349806165024463859472264372266758996570409849452567468116736753043813428762563728612781052857109386110005443894199484632065306424602491202465936371139883192688075330013378999543405392151596755128812994612583842091138823605397354282478545187547955169127074827409561685288388377007479702313636763076541504156074740099141756106201567413397442090492627636467816556199476535195967129216784940760984152665543782920362072328748643253868794580948538833601396711480635867874274628064923933764967082910506515634435960983682987430093870330002769809735322950068176454656204939689648161158607100093725187472899798445550836102113783777836462545641947949384325320538485517462354053929835526487014807378219645141454540268470495887958805014717617928527392802014613068378796210228038990644185438400428854060496144367945867235989770150953711725790188245332290693034612344332417830797572449768072216226712626302437259654937652867707598346908157181819920108310651509852092611419420887206227926324783613909665790692620856916578722826413291390585371338337723929955420618281054468238073640792097683518834059283338402519007736054446801498997212454257001870768281707169104915892789360467151816884582244483236087100774705237929232859137252177635607761329423002893117823183748616092483745767558641293007204934103165829632355962851439943055904333198647333483603082934067551625620505633795864101468404017464296850094809134656378920834358419463263224410330939828894364330417744766201420825831741614177063272060151410995205991534234574299444501834265773108118513849028621844368608294690022013827615892899723983051745464033616197753464422309114473434660415458654909322717212794101906496112793703346268625176038081631021957134237575474317626520033908971916187827454380723914049142903544071663328048497559910218927326492727112270205347017701752893924994102768374602440640861149772359230532787591403309004302184718451917180946256855448269054648446803792779646432255705278029457317010985984348861284853841922994065215743944705898331370068854447837760856416880011261792160797496221035299137561089747957193792112969332051293509944924467766132647328305195083309553133122063172988361891445480809928697711556767811581615380483384332467674358782715835509280383251247329684357837761853371765941582737896190244161308409052483280707421032770214429844608369222670029516535697247126870371045964704604727117070436890337556686552536786760072304450635547585789193335662853685907272078795711318002352258813131064308716688532437036875988152729164418958884745785874496424516367227504920961126140446175317456102122385855189072196206592517453268544688073691220058970128377693462328338104609962427807537380628903512999935246332702722929524398811005384108914378913067750143490963309071549194482598338000490900225121395707390000311612940801517218748142644452132633435671272179925304036676600506177950725403276478507404433188697292246977357822607800098049448662850540031730701809130119789534071294517841902641377090096136522491649383977224745894889504994783436651977131207420352787189575308643899300579414640443190370105253339666971010754734721333884160454671146421968019684545336728600940445844237738886642507096264076260126139333435955386459802510193431411496663147558622265865322541019989594879004956011238007472683508211471022132864431408015328048100140821639716683031700385144865577357794647471632846151806792749519533946075411070153032905048867101951740746189056360622478147348749063914064051844227038709369853853092380309418309092332458064540895297354282374230854187396295475479253447797266603094094835172873931831566009556374021447039720141520388671597984443200933302711235613360300911678721257719160642164578411942128231593814882816279537931725399627121997514245032633960095866777436985728523177869480783553314429259950611944582376203807897036163123324334345180810996044874886820039622263952012469960091053683030435015560361034071021524929276416065531369584649179909508049798302304866137119682186275572208999899639591341178526183954823195936267155470203365811778557761159639367316681151708242681497572736315789092109432869945205898137472814476027256050060334421517592335020900899447147493980871977665576068192471583521572223884149440993947147012801949289208998042821588921283056319838975656830890726424828774192496190874038936799083830328206679680801608293132263172020435360295650925934653231230241078047147465944863363218935107586499135574713716677949779332932949182292709523160450147271641300634379117940529425307040789493092573324648982647714672750838403691816972227867028430429423641194834542005740385468035776910386378818886191912015157171188329457444660871233286364944055883137382664794587402616419733593606376966994129654398390472799638848388537242753273707666990162233311793993234319279420982857368100272461809078287291445705519594450987335630731646020008966230654679183292136054731217409095291376162141583425824978426727040768359624629710019447941460638253668448248694102462901441644562049318586698055919350817487512831960711243300397650491005846710919759145116175501696467394489314937611170566702309036016251678753180536300234209350778957624226143764470473543497944520085197294851304065972423185192384952110321515315200976283247410837556121764459602197380341594654281063220509224943704544233833918496471662495449379409306603307497557913989692139491753572554473793013830020773313703261441888434121193399491570043308985398243260362440272891975619622738568646819248787808885149447586498434471371639938506262386063300999489048282150237871934405092819737533351255305938844963825351047159351295654061723865863866831827563114511392213683227078162019201660771981631480129008242567022482632019967104793225437725403920581586637301548360788015304851871184398760541253074255679049328221157726227415043101726262173887184604944127003830102128582066244337232032278659104557769270761284180292658083672808465997399136904257070354346071101806507526256900776717511755961447795787797219556885429791315530018759906928047763375693712030005913899229236321907719770343781828962967038371510659869801527385799053501037343168039870636043271808300475226279700395006671364150902465758729578161657423411171772430669187926016729557669356162170636264992239496600186408976654450610830717344275056535812048578362931832550357370148175333968338952003625017871556842452591705618056765501104437929651428621556032417407863165331829463368395650659857674885645631420615194934636730877373505602362903159540725671554053013713321504845616666581328983865164248604433855909275411898864896161631705548616853913374624745178584924476960490870289287200843978968595477516628059216375401198466203653328076797055102694215161494534190077241845964303294444465233460618822887894647270328879527061836855633849061886498016786812256143627797242003676705884930916282461305703838365011609522175190564754170138851803163286058381402845475905556729131908375852034373765341634794597838091466542184337454104841952774883106005770132004825493520983420029070363594922163261327420917774687502991986218582330873466086030064996588036722600333182526652534865228643911838941778932606601800838024948531715740297750157401668226549934069102112912164348313288535011553285485250555453290109098440449251280259590750004821881438146194314813822882220898146654049220018175491678610535350123726853865528500996558560389670745541607148879044924115953324843436516556355155806804875289015402327867925414955879378375984446477534370400630708684534495475317900965090425852676849709491766687003976963622244178817337839094230205052742385384995578910084219667716061756852288686131782820278404659717311624101050191884700866556153739031383230142153541262169132996290996833570811666556265117086551414802412536724870156148123693697034858400910789677708258675305637094282885370284408968064126206671995756219650052548123011416513123489549177564921486121171049594043036948864052692793215989267497093298691513803847576691886954281989995448966413611132616989736925491566760106748631298967857610100115687508924157011463928812832777300252396278682167805517831514313105226622665588017332019683633285438692519650950167692379786175967214603908405766247224719872574759215983760743274571168344976019260806195719406659562580131042634857757537000566094066603685493685299696730680851646567892444762542299405185251660112821777328106672048512511263185652384876609109348720357173997861712513056139949866276755656459488530196703092993231899641980977941166550437162559731723799817322999771547961888194809961879486974760404839059850415805085617035029512329738260126093926349495271638275184982437591948472593584889629023234842529618687243170532430356689564417690988460450698187626123979678238622225513895509745594917432575964810027351748358198406440651695309458109578081587681271751708885186127292930873864092257002947905086132312215366833400021561547109608887350705450489255344868462841482589534520370412799239376446718133924040672041366884717449675096008269661435571009205114384631469125790048089158679070093772262635228095816211108588371251541493311447738490500508421661422278363700220968267654920264559267702161181889396085525424370248861154199802768657817306646190483387467081755166504321691435869577554491208304363539886432288371869705265104979125271503015336878977493292614176777038825954145942089449304550506457868584137654396555765692886917918424663751267781416551320111485071869273937225189570139260224947368970536474817100564859189407070233254326901236733902399976164401808641583879571239802224342899146762886593811006805766718872139541808865597382996803108920036836890200841501704190195509875428640685782979048835164376311925769043998543444470348701121913984275646556596159838234327255017610497299658689991610088985210336489949176334926042664300677092361697174616469360236076324412407010269520443229467564718189840177858154171961221621689819602102912566710403764067862152655830369133975217455610401602050731286435248560582433611470617677927097039042144030733540575689439124188597601777836789495486118804615847912638409441672628984150831341008734421750717177127521269861330950243195760379565789791887512674810376738795205850500150509157580313092528378059048169504515812735834446273902915802960640631370888885052218504250545424364768205713115905809901968222769818331712820991977634701267892003363067599002064782331115412579198155099691047472039268271120489566336231054575079537419099375996727446098823778418626086412385278383865443997529747711503446015376144265251614572155016822659022327722767229171721548417559883615938975402493544324112304161762602054004307233675150688285237480510002979553468749302378871704862941535674474803204991487181918373426823829774725498525615368045608417607920172794658905548912345955516447344350786951874111448157950170848359210263781385090114079633215058076334235704004456751575106115518733053134235557823763268904975008681894144578454140301454348084137535970990716438980295726397017550295504433281604481143907779949445941641593183063185191665163405670850481926954960651998424433627193739833282374402019046185210028373543603245185144344208099373156756544094578957710903167112965226987603017266114593110840370749434167930327270497997333364972765920473482160275929180490918970894125069599316560774045745975121587580521256744855526527945153700844827203160620702195307951307375577287814069878797195836659400075277440686392802855079011732276913541466015989553102042179936999818656065800309081625747898441014383056466060265993970088777642533693654600624834089359375975400504089257783377089798953334894307501054498713641093565362769124573381807791212688184857855479037548311990160682090268017751824699678107919777637960607386279341235934742332024178958202737089143417108301663599210918181167352040588363128215850410537626919010049964626433106989018639276423057916920684738468731950405951993609864435979158519336616399407686975187186156511851359882445354955540004032324889384125541368609536988834761826849872800605490654607256113529636085503022476444986513861410369590300696044018435117173021542982359895125565559971919898924026415563889388089508264254127623408326173657102942995409562615735263808893207973325388061212996047083256153358378233051502216833974253593487694750865029417732750735673713679165126194874623754847475525881928036135517349054977520245859568380698701386881037356118777431740587699955701286110909737780046822011758087058600028365155905561853178666406631027707887534224711912842882827002420659608116581594362996454523406868861338149941269922459172218381351604905755513240634129501307935316101134185383242937076093466100412507791969513509803362300925723063345224736147762658885620220276180731935974219017689376176905802905795782698954561905553933281851848698898528386422065621810411298276843359912260535012083064068151012012392600803644344560789166803908475453526997603072960202155085588875399117520755158468564394744224086009365823384741486336571859771729867693183012888754970893379045315374888305576142399617199853886166286150647926518955302751975780002363158613180496344206998894941968823400457050938067579637017350131399195902265637646376042276198281091183791832081692105952411423299021371451590945418968188625929012558396136296661078638476842123128857197655273617903557745564872271882583404293460019225252122234419093267391986598492177452963219311252747768316585774088166823094080106014898515915476527793556323531847848571126543919832151343764253004689751493118034204224078951405673564331390428953588797179974384072785414075484567838767689962066949680563751874843220623173130038915455171942596401508582129642239966311516141309613444458088175687505229100607167748133469375710444739561189008310620639293512501679438514404048225441091616464653581628544107713401560312793893525344217936361380704010648985695781858811237752528534245309552898661566009225965896517397236118270620035967179486188474396793490754507100677781163922209256588202642439356101862985146408488481322544084548676636976859658285302257903842812961438139119466124874792119101613413681084567367055176266965549529051547083807834913181541021025526528966922566011482407916141528192720441131391508224020042208287972501105232945485617637168091157359466947843952821541643483090077422252269728469591930200991763681603434734022534073349008920304388331142148740020716657670332054204320061257261296743479994142395627300016407223041868190158841815108370156416916531532663540072246756821620988544598066797586788846511947563063891595749961110368317887085797836670400549486762116535566085185456086663088597719537657341478508578993323501898763732564348098870757250538028049685016957622407715299341563676867484096032222208096328548401000509920693914700638843223516136712437369503788600350067121154468762765884921659360363581049304819189590855656350867238182289926466872827960120888219126932208285834272548270231958992902350543033742285752191104301370379367051813804759278626920879340437834180816006738165773621289714428130341771892969731037096853972731441595134152301704805854776430243925743887299466254311674146443311236581851980370921669018700611244420209537320371892728232463034944102694842505811121248481080019359037931863925044623509204746137375334696116518337743897911637795357409226708034029407236689229316449791072730625902789480646868284106114407221716521284824565535702502720723897684651799296766144401501376196236798431800804031946203116861626015155894390457706037681474354899883073799971985536992876177127968282269485833923852617118262879340002176109608790665622693397466807021790724526497110235785925597662792210876578343210824872087818915105125796971343268958020453308864285273252167216095236449547387194078436668709250192520761988264029970131352917956148688603616585648120797498960351646076147995308338314203885180303997643717966448807993177475292368419376690639644346014420754866179785168045859645337045161801870910298868081165839690978665735362716207314702660332607303442368857387873822154782531143186106186396569389630229364292974756630992564571015042512313198647982734926402231783411141674302844964988550853144810602665418416122748279060854085531527917193810752728379453982235333439760160528184225998500089258720061652017237271625434800779897230968602434722102547772151966843499667837585493059577017154837193395036382675155243930710625458610497416808157137425059414481023256151197306298757964079370191746582302497498130759236320301717000856822413622912630420944785844757724870537727463224213038185986165325917174301463250406384391803029200496596582566575273536061204061963243287503049106410971006043384397804630389673732686023090373407403853341783084358839899931655406922618976110656139695623346003136953511148373577431140946267498424192815648475310124214772220660888253815568061571304444794352586911989755466711632534806801941058711459217353049069285607735956707806948672803086105642940928684436586917286310330201990981781740444069478758419117929720777877481102133810762920689178591819007655453563102033766324618069802379736501372221055619642634371768255945846552471120900093975660492354510926871120710175802436646980978535594850464780050146739234957422380972584346465355588679829262617319578793905766023348319472793059803319340871093847295096390651936814363682686832735861398184448291512579002659570351828128276303365120635939009010768147603572325492415235609458832595083200786844414725187686822255739519768002116224822428928948091932931308730243498939738128878273813522596998955337222964979665256063052980560719599035737456569394162847677467435635695274857085538921677762535922460453664384371323455869004817884815656623841651675416622760567594659987777120979582974037573963711520339811221208028765989737686796689347592916363065245171565082700148008196383493685744700069589110638912346106893868374011886663757898640550562360322772064907581378634943547651243899914983385636047524562276104968462692339104350389165050040906135188688097749551903475169094470617025013946641881666443550043637417002670293020941702058655235485339089979298068758121334314774599417349124327097045305244216331552729376496312294008925632760575267449322220660077701540810280599579197278361225151407271204575943220115600676393151729656271536717136493686047588476352298715330114847849862459407608834424316887766131433785166370637762176632140934724902166917638491036761711129982511107578218074588616179707511689252956801670115516813134878788507606011573567364021803943544903542733477254711990191708929088098744235118046419748187792796976029303792288444938315384498977336265376680172625227260205717283096784081961823810546539722321893275318983805421115296958588442297112430349272961965751150700219685993041238532909514121545962113968044622191634650548538464372701951486734642979158697757195320790165022969023399447845440888443753924554553439883126557860882239765978115183206595640944741455444747594701693201806905269878228626815789728308180089466963214382070778179870092292174204420276410813302524045538017134327733485982211390436180740948091134749064908208681448758275363726633377943617755252572626270963361186331077722373751817676891205077443967324308931910956222454176962934842093581365856668421608931993500396937946647918180517393186729317989234546303854210240729204769311856404362832103826887991907534245818360470087450921610613020099709479634526033070266743795411582960409634717707464364147470268761513618663474393975696323463567405772134909115544074941537021180207139347795350997129676636021711524720229018877034434832857731302465974928557313196962668720905036327450917200961802071207670436609962903325049447098696628100742257094514142380907687797341584770533535909432012673982860794391430257419250057185361672699600090672481709457297331377628774462220250116391943339866575345500560862878565287477335537734267965759780716818594339112246018541332619587548841421236261077743376228150152203625181961644616099426221534083903445735242155284515026305387549742662665011257454557805453238005484822606777105142756262400399597541207807947036529837441932837856717589217585694206084776240294473855983810278430495112174600603405445437268957080821035088887156004347981668650579876466324203627941699678138457037062161119481120696021207581016968526931634736804752567906937003542304016853388599429845554766563415593783759851140231336779731179523158899944426675768770065512850275198383679679431592531428536754882119402368672204131562713505193392420974277418722375733843187604822507832952935864480668452971366154693342755079915954127707917073511664359295063703482465990449817687298344708389229972586293337206783212523817765335412446260937236350981974746584388033579829753328169784697587244799515587288349995498392905213644068371443817683480151278694805357169480576973903961146351665029770053715329590166130370305941258005440972597928427680372021952974840643439569130129964468671556749052003146958366612679285088398719459196928663459930067474503369264616446261780327948310670953273524224756443510146104611500302158990647544046448915328808408552498129608170416490907197163326033963137509427647368501494195956217522925062514564373158047611354256365724953214851539935678232123107118905688315436298733486324275500671144422858807429421018490734549384691155081543602562671539284869968006033518215740478315374640595962437171511413706473044144923773912785079949620495450644063696779629466348602271324150578059860383833072652149961034060641595652049832728422436664071992814991385638356725053761184359064675075041391596463968541670809526750893956947622952373494980847668501303809922032120622789989481427139892993860181492935433318554545096006444346701737350419331368656262717284488666788365865980169456719511219859198211037386582960529782867843205750066403474634344926080161539935877866443842065366978300292106647061210063580116540681250742172165284035872395301653475528941728877509159767070046192557302474604499898499079986203168350738679638328253990657944040615925284170507952773772208023942901429310070550934155995549166087839013253944981251472712126092777753853240039046747971446250591787198146129709806433448830666724110260721671731755708615727846058573406411631648797926361137621187323865292023864679347758440859072441685972569558930782317698126765394685195767121454837388680508519315124157940299627977877460474312337122963296843019279378061635614405503962072100891478295899149525929030690719982520097569620833919458896596201335743215593056326982474438415994610046642730865320518259052967556869367549080019418060702399443382160003998618801780078020961166046693462529613364858195899804770720840049966870556880970908593043236513737245133024020970225246714977780770553473752818256770897508678820457604496189598148736076698853796119505305910794327703614834921791193707665174249337464773919157404179886493958544098867938810106513879274905901126182361407180605944627911308372018796996882351541264455589322005157903662516818013593435311643887583728888017390789626540351224099908734373004918855012584161406152049836904266226942268795203733323498241856086273644051622742477498650750967353729666194730710342130983076591430665805946293049072728294443560136013089473564975881447402621484172274308824653793275907354775263451580040715089200761296267446990512088613749978991164225251631068247397257078838310151734350511301979034527219245583954983390490710082348832344663903747477951851394928449433851479744381990749720373359624924037529532622487275271191666695188371606572448552290704828072722201351894869978832072963229305419948182207311372281990302820202611198439197906021552537869315680708666287241375411037904375444818319376502802236695701817352456248879128287763871732463738318548955518984488644679248483214515390374990657589579668485929618372825793754976317681285524391273049796072022510789712522252080259713369576674035228789050127900285125211663907703495964580342613417569983881424256566252213977730116071646897150513629806424175744540834952343203169292766733653120978489294369536492669956239247499868946099402872671453892788131351711837526111446817100008726575222851930556027641928769620387535316343146750301387097837597375521875710017177878513731719051976817024429886661169547251472626961396610363626264903738418952106593270743831405324288499674698508740384829444905328968122539989613649919940528540442896760546293909134258637095401952687745599668478017998754101422555215569875061911110118443080235432725597150687926451974985843324360219892364700773294725391279756660192989031828813117967313353723914894332876658472396936280373940512211110653283079774639112386940762594084917551893562449794002169072983709182461905308854866563750925331310378680569858083630633735447823948504133026319333049682652530345417289830297552273938802468814058432613451701833864455330320391953397384682878464581721591788949508781699575165121290051088735559372667101488833087594168954936634748499447952340054820325972692668316267514342088773946767371680076162675929217317632685475753453460774175755054696637881227944946038604857919855646634280940749349891631493159849230746947053406256414160609714512153642299284497432517558601091137669145124978583714945607110157005736336048142097787711008925338796535274018203646153129159420664909514942229942354925535131633262669344676731525316032018581342220645126030116498534950176086238036504412273000913336419422790804237775074199021856883723174090388949344641648390417244400417382936192749452889922775646085587083311626628153393065530568921396657126187930841042312995760344623440967061399797935740046911738964268881933142910671632153946743274216344678925551413481303992044087034851157472169805347419970164759959137143293016466168914659489242793388726286323016772105089982340165710825150343475330665803167455383464927335191008853949593436764971011545623848552481234644996876360411070311396096750756232757397425495270633956648098484579171963084317021073846930552262378029638291178068179633111090022350035356995923015698328526382717151941110356486485898403011149971497651773167765100873288773085347191785541816398970268612955374550350036227676325327177704300840143073247063160764541050900952696044528884675207481369520926288682843957511842572517360803076634939169612203678925319723600398171820080145724864327249564534859899592690364781226533073864845357983147445452970590284741225828395909058687203669622516360809700558215176667169483664985073277395118852748647505699615038436217966286815684211160931387695426779142483867770629479430041619282451461076228691377582133464660139928787771360265172556151554889341201417552395988545555719363006751136348226340768177314829966106422608336031961570357031030293371181496213032438845887340063052938695435276794787112135622050552527984437137554472553842131715753357435902339175857053147112642391070425529595864669629500283763409419610402046568584277569309280454133761418994905661396836054906594449870971226964339399857684620985448256206559924090688732170694081079766656253038798699908241322931974554105651338393525103466045473056061053608448862037645967767166774806860849640146995544764184073519204150649636628439372847060145951651670733360079669468263380978241895504305399747249218679588100278582310820680134158323739433288644766499046755874948081341398896439447147497823114345132131388819714114537662365313217984270642307500897276287173080149147323780633080620258840936745088842672171639667328496168293223509377529747376681377585886820969686376415834022635826489171068118912730277682648365261745904416715908187234135673245169224919841398563212530698943709882844238064862008404888001818163928067115925311627226672791068973622732442868550118080091670485263057511122945228864077487623765357090784964766586664969977371533145372300180115797467575041230664462955433425453765888980206003767991892135717587651932843758697646719772599804127079925364011276582440248581613196003888616582257926032922285046146763519560302869784238158595354084305361135229295740286900083175711654487839861831413989941748793926746633947468646623454921866353791889422109675535736397365398296632427292807406069149798635564757490081284077940540899472003422500821720052093336324362064552282929799907705769088393612751552742453983897332449985544713147689411847946672758571520809088999844129023196370518413325754143216689353421967457762280232994417933293566884606700794773418591483757568078081992766762947702308981156903733553132164906748975470463964661857451230745210543033525207607074786382426788118831146968083916884315910371022873710145580491183668609252508771746766620551731782045260350817384491264783633842866505260422931167839543029610175448991657845040097131228482522535459191715778439496547918905740668524730431833252727212360763723663138338864749674356058489555291905373717614628414561275769847876118328863150681915115876970629810465148856528796098605891010734585766235204443232348187651939470725668304589284931624518469646725995778683662606005186348799512725151883901933304405715108938590869870833459995325118103410011630350842101216035198611219170156644721295341482255476518829653025640072594587225365275166916175606287172554088287262733665382993021778133012392255519432013298087572448260366543273463915591546866704719809443757099249921716105206768852104035950297849770715375013118282349176863202911330490835842092944982531931255575382377282189661438828733525003906605785919871436641988482662313295389694335465013421624555862378682176507697470135418672578108477696417430448282907754637695865958511486094890759949443057084152535035601241934382912937458250777755052992029458270798178625839608767561754598888251518685142968647479979401084682358458857083125526166723465964558754265189931648449195662179816901257084962645820887677246307142997354325829126337402917252938542436987687913125140489120720325002028408903737327455242368736567497631152829682694535779557350106154841046340057081560855331160692855353447112858404283070420945258768273760219062667654936640111091315219081224005882535013581739952053373004876119047279190126708946671898765110103970584118473674407482598963006334515936890790049048261337065994195972061368750595432565945693812914712040245247418933798712229416773421948548224916188743999138330173684988559859957330748442297896357705934749982233197991829523617245686512982132277942476690107764000624260441521734777587341301006173367665655369774611150067468138767833070911774041743540595878337503873004104485509980469165534128427456824136235528129566402476822616635205527606563832242656517852656605683878925588570158354591890798192865039737971168000006983897567175699100129761494833117211754128040625908457864757125601036335550436604845751098028772501241552793528081846198710122858407833210166025745069260064325420842277090047227148107409581531574774069754937182538773553325931449110554403965551160442612363064890554792898612202068373264912254208389563568442100047893050872236509322470855282782088900370493706260476028545295173356385078919690233175943949607728905245971785230786797507099459835970920771214287972785065681917227176121291834293828651587565731432770101424546390488725449117380035898109627787141946662742440552273548539830352045214246722953259026259518380121666595182309198422697251692738391167250176282886903350040532388692200666929902596430890275116776840989549631634217769655784588575478257015882684826746482497658180548926106384624869841314079893790921564274488663468800260345252649330364836423535524244850371935397461729688826634582745817639938413232131111222155157466167937404307220506899661642107487673594483323750228856038055522194401252236269140030769022054854745552035681329461658560423086291698270243678951757467963032867310290317591129507921236642211513848356612432294828276532418007834553997776725000900600160792068000920689320924831876505682467888188570367669137124797736547004417274805549388993983409731132012920705273339965285352849969271521051835855511995218315443397235619100076474164670748003253945881220379835583638291945411762463701827867159657559939902762107014677815574911657519715253783752732929956659072964583136222276316998383728554854942310699420401733261614790905126518444164756396995643706698162918619864722988846166433181866728157571206071393228805196101084862404535409459866632640837941148416068061015537318134009726489462149860103312829069658244456722574132387791289007026110357707719661826236767244498203637599360431727728990546311041889815577612172337104898730925703673602765735323190337072281122633070703024341558591360644136976442639271381586382950047125736422202664577136481750824313454978872436507295359070537572441353454058914709389319290874099523841504732078830466452709534493117350219893014575501614333647622994002710019282931157035560037820885318447660325552993776703498033027206517966493021379969124506704972238505912788994491907577789520104561356996921166788184090112943540082865565291205727521001854756870750641830889313974496680864555348675318752953965094446979119557655945785019899621449813172344127955748191423995578242009968357252429852910606554976467289594264192872343973668224654960269649537275876969535930017904758259384577875279524867704987299058145102436547474782232631379010658733123520746097298648824548016125571677773363131725959571140646135459814529291547283361569700815371541790576779311080690213281777729115783174747204945195463959180190487523864860392431619726400598849592727052901124858632817928373675248347083876047759294067814441583816956599884585659187846925018079468892138390014045051706493551365030871777208016862807398086214855248002960429997627819643753680101852536751898682180353475320993338589083321577680452656104573347175007288709453827176419538746378786513913762983761031875050962996650114705321272476809349701987664914953160828784099841836665364361188079456987129941428316668224522248187235104926511675374935928575620942251352180438126746410632132744315039056255595503513767393467443281476113364978737268599334523392979795634295502669995771829785972927865550553531044987961242770473383909028391646883075955536665598843502243727616540392372411648640185633424011869940794693636740961375286987393879603216067301839427226232951354653277589454718148248928242522138860643608006511409814704995599206236017845269399623632263447616920553895934030438625583780303205953232667592112917388701010173865249550631313623643874464987606951124653241312441782147018399098991151561475768435979318010687774140084859751690642683180008197105675654982635265593834131992981917613607390921358940805776950436861549963256162341786359788469116202680916389284746280197262847158321571882116743821020054317060487221749385020179347574193145747999816171918949028404524566491256330683576733013472084565612629138226647836680643437937638507686561629465406017644804368796869313852359912799110172746861236507082473914655162115263656730206353648824469424392676333066206504357774327344189561567753494441521374581948589379120191574656664710678786647953576397227749286387916676101821630932312833202650894498948852769889944379817476207078987103100664215838624143220135581802817284459490464674003183134647399242009877922869748589283091351354454214464662407003136567857706042411556844474336751602475902225756100253708486993849820479267054507398312772944135408408910359225931129414378226754200925827788569613767720808865599536128947770441017390846871535178497692613955186338159861122036320447236291240758175448206236346290562644522798151651161174852151947513595633776685658247404989394670698907441551484305236382097591409458566655096310747231739729753034157435245980571816936178255936941667793609495109813034727521809592675524035741131306309904838267301770329643507205198564699415861693223631528094872510957515683474313859459089025767484491416367276178394561148962015511196431285792970966014962076883221131129911087018467472149311573443061835070601893518674592293210274596633686908509623312697881526480954017849749353043509493888922213130002618790371845882851721384871923777399814988076008124970798035964177718895132749111720364800047604932448393260350638235791350095922888738667977834010761426724857375609962683451112768953432009701154888270569854965811496777345812085447849704845694873430235596531172972668646129934126475929760243433594987948535581909529906587929707356829147864183588065943417827077720349662391745873229403385435140915423613418123661075027666143142087962381607968107717900888099826982867449403891176836343155610118979323902072833311460463518925732008857633818952621365873204166068755892826176423336030268451261493077207847808193639117046387586022465826528632663665799767948354750214282403356669242834012467866360470903229474460445803481339820983484279947181239315178000183396515477795403496470305864683409819310421934172992141785502933482042428092699951914497212906833402628614768937262099946537077943578421883287213893429281010407710780452936372453219203113958507269624612111304492003435467727883326412415649309994791599550762398517231882255765469331678514727648337549647369687312190031743163504272063505524334041830287159946918711717060248135719398411270981167576794210464553673973501884421398163193843090319529415301308573478132733783769989088015263909510919617332907440634868333212494242085028378268886375357162778756397036611183675767784325885018536142097250743069073007425406260684644857246475754865595767883220551693698757668283513657220012508395668214833369378063223335713462997164813592326283151565361130806930818372126413508144459882929906802179471775675736517649967827246868740689320518531992128661347156578107640071773348066609799619510485829345801427527369678949692331873043248936408863956722224460828100211788622624087231014348813053778258348608834889778349523719110349871454567008468590603903701618367560594770311310289249345021788275436106644650699010326170124582075162913673650928713381608899994149388971204952163326631010918754835607469570602408204497008908945595866282776136483409499179762625200363234477917017509402003045786507312858479268063019336023225421621930206458841725956310678761700689848352022286243999969556874072618557167852405941177753390711113075718593603274359175756732375840657374854414640266952298331012024420974799644665748749675420375831271800310612850842372556877579745587873525647918346672922785685435834895451477516124759137585576865054705891887983425661566698757186622514176249143075841499000246624324399561439424572394070362406582922421042843107203207542119207893455501100526121047444636130471312410814925727556293007372780286649521461979632340164489337994720052301586973016240726088744695177268441954074497794081753383151121543058435460741264986506437262415475037971491162088139609861259585686511886020657834188445504967005523556288079107610129633313247984724321297021954553520036411289160217964387754394132349325100870057559132712695859887065677385759430387005998176751645329674303537653220571264378513837794052946541463640196995581930073571277075485052170846262796103059484213165580582257231590973414465129833446855491171380213634925684500729285282566509124082140271687671810557919093701938121883426065876195617478513717031275395028015003428454127542888573628211884094659954823790225204134138393645296533429397287144811302385406011887877804611054270780096572631524805891251282790089493265523667762068162250296009192143402690922220689570895398860240859389301856475472445980466205190661859244479407970212481505986702109790790862692266910916543336854428723646718919011852992125887522610850248101187563182624856738926093691491665853706555927022771790169991001468165011920234004244091708499705606606072032578033239638058527684603684815734915145757390845698995908750845431567548995842932374728473174210989673039539541730620471693890569545873124238481682011677360500794656590766101205631927217915662253752872443234813981436760660213300000993968769795735593096525254430073640113976892343912559388421580758315439349334669915833517198062214226909233001061115104992469902460229967057688303218158628056134414020686696017669653086421209926810547058358211065094263930566667131377913567186514589699253647358161805176473613081998062767593822216181874895253087201317205565041705150774399786166859033791716563125815038251976691347657789284286235356919001232363872688046869436679182984244210660599442481692557115310935121060522090102290248368031089996064866218761602843498672174689640328264930980550886077636104997878237411148661843181511706863950360038252195314584374494505791768437217546140973302780376208662188498728822017625056731704812054780462353541991536395050240113011620856465377985847113098688226369030070410023272452172540496771881446975348617169909006259798937853827461010002579737707237032472535564819798169388728471387223789460371567554739521029086984884588309473568609606824844235749119232958106854587750870859957731935221119091509405954313848662153445306510471648343062499698379754202109695980703703735142920441500548478158225700438263410178858920119195551811053728313592658248097355476670934516184304199068908842060765039512148570427470174843662934533551365170679331720759780686039290295083474932907767506071990885755535286382962589257767066175480578384380330767592293569355836701008005331741324292887408905960547734073474660320009670689193311314322436533665487535054058224402305371673212382643015700085884738929322010480149622888461095700470820130470690687965366753999339728383555948584887887868575836566709277572850171866102988943636054910599943663007255054924203641365262601865842308864985854386187650617163781204454329547096942653555846468363257500750336230706094464609832979711697761409217605281080451530953161851756284786553342943937897449496894565162908202880374675301439456243457119806692077440765306353427346980975507446137771660604463509697440371268844261531544293526763670610736120083024692878398285959834488325675858295666755690175004073203673051815901163492992617031968548536583556585972703810385159125231993850294613889647298402137340576680538119950583292084724874656187427676458595922734621854704428903022815073447011937897103668660889521112740137943357987471656486207219173758788258135906873102078022566201117442706143467352174333132617813201026858561506761940095853288247532073972642190776786183013511091700610464956466369218399402689385606005454335322488374446463099671120430382502228088326375141910290031872319896056534509105933865253868501115211202771693413749890132654031183008468996499485008165505638377873298124316648627809767596880508646806322286465860142823825815817038009470522529079361164903331897197183716593012832156766341165296221719882432068712366896161398546525232240555231736061129072995576664192985693468573723161237376880005252226069157596561174608068435478541593247042216107377610950095392353080559928248932622894947320491552034894505522206155736612542874754580952896431111955541367297792479936155247846576088255984731340515177629626552714838727077803100858610884769157484209226172154356998336456559693169760039645862842048518224768667199324029181742527018034802844158123883100608438155167027275603426161573895788852303879219342838956258453539577709235694044348934296174180107435327276743522903554995112952801071879133908245265250955296094958914076559770194897331507608277348863332471369901328191161057548208399774530529553372700736917995740203977974781697397310099452591666901814189115126575986229751893386586762563918562459386236662645828921086657872468881761424821090735302974427907965684968785654663032449153560260411795114545235893763444518303925664114575526101462801060242113628585883535838897331033339620203229470957094896124274214180158740754766969641324186838428136405556295289370866334794373882827366959030253628419008229017395294598105199016339662953625031654684843638218231899838416573119001469946968687200266707622047044109157259236675371463794622447360503332585002990543075712525934793152379227552037269317754677954684338198185191862909942094702806596579592406537312447757683337471833438031179975010921092123937207706531089808362721448680303796152910666793084586489332640953616750583458805158546678637856395029964113922105848143260147423762873979730036880943650905842854241092146801436201741626860452823081859751337941485172774707172788776415194451617038019706674458999054701447636897658084287513881192844301991933153575214474535434451629063666255075610284960157499803660023935686104143196800073585545015543883396504124628757857240964364853157974969321779288402292363821199858206096662963543533718159747951561968709075939615717973275253504361144036007949448525707553450911448706278219316621009409642959036562659792249906427298861996872400710648646480674025099993044369639157854355924351811958379803316241114257758033823112226086566801945048447699982909574199426567877040508052517831048126349087098109539563700988465412442239366422023388969058148438935768442001866560125078033062373855771213276310275266215368289299694644439286491842925735976388887172717226125788802725986097796750406107099459784245696247779789799687157525127052888850878887174477716129805645146827614992922828383509677825479854678846803525940924710213890544996355127045727283051087705827804890270978607044302984605122595573105885815377512997108545882749247037731502406161851719314945253576435291223317925052454854639674293374517205510424388970676778202526934573415425282753443383585386919863717341702945487329389777598560238260844981029403112743100303412211045895559874253492429273658677313653021069949109355537591475176495909330462781132324479482378537559044405470607941868001916544890368249236082635252145053376138361018222592017727596822481702207028817848713308989479602658933372675732623501551940231054383170853072819784089803736052989012100706449228139608665818453730767153682394076111642411504580680654460194469336244715557076484379788425053568392175741542627289095777372777146166111046735106557442245294314147939410855496699990275192676214700652491671068204791261850557699513890899956918313081418068316774468158889593988852395753162140079492397861593128284757256145299972962429783639396169424288027897045685642967618944313219764841034398682932878522014116336487016609094573895815726221113907195143971028827375224507406090354651172403927041967117094504834374809588446373920707782988825637495050855658311960905246831627227754817381992674966144296537483615604656847684199852207697860107878816175555632882196927532692607138103873387583379835682740989693959565707218690582404099533801765832110003394718003737411295654991788375721068658285688387342141133066173024022376569212661075171675990087152492267721366986459812070595915638453218442501789210319392986346261324722497027965101885326103679567095276769422392491471393273283235273254541460762842130066048859775598483807901751293375379223972812878011179868778569331766838884253216790770257937477655052815500644861942569713793311376791780106604371464374608584400318976452989208725406093400061702307149639785553894701434410820417261172174558979908299810636534060218748438508157624024374659400035225484755660607335212317773041477277303232531927666967217844794591577039786923590595274710434952872905878664718094811537011604998239301188333573047020688468205628556827969247944216954161834559858777647334502905936278263137818784263981650643167434984955333282144998009927591491813348793452447473834336951386863781289469042804814738483991466933778590311351900173366458389128780861457377132086968892310793060374304748061492761420893270329142950879590930126049863584482199504600112495447275415097617263627653488471900584642710471562647384726546868817785531979608184352434887271462826112789039851847097767403533099577862353822514211113285844833105802482689048141635159755150901181893707346288527262634406385622417332191280886884943291330113898395951370584560189201831403592850600473534801394215244858184645567882091670465047472150363483687794268765495387206877655345462666795942929339525684422092517354792794744986185788844585519329751568574009404552725454843386143508187780793537651587707118374828277544545416598432343309392461571984344489930967394825512612074088165095901719758924598432055248674132571043471562625691924626574742350260217948266253349665205194169222023696198002932841133509907578845695448158089190428714239870424639321725087068925208778829937809753653383091049419169372974381832343162148894473013699776762153765310592682228753214844726095570146688485139350992852242630324175019081264016329439675769119069348592937564773497457175176891300712037076908120425287021983615853198345262927383040891347338272092986153287339079254045097991584128668550985460798978570754611612981825817930096406890257442425515754789308943874174952021622226396409772153838510718449573846838296912916218136874858270318611264666176056487148740220642441756383104457839651937764754596545025405956361817843340151962857720267640919238992084039008208759740438142605250953381596157986824443760788128730072269574126967784029233855249817634496867954590596093345227353416612394861844452629175080578744601743575703230371571692516856970830201572167989452983135286199144365721501384968872180279230329600430820128842308150211253239149826762383530427596494178078662596896071340608878444073129588013889570495201472929335996702072725025439906785376993357328531305122555472122090378949282924665164404235546627226569676051229526768010218346657129055334552758588529011846582737017379927486540511439902530502300306937908488898388477894999267768644921390173376046278904727184183431003191959934845805991390932083880164883931355793915206332567010683715450382752972372504318483032158857094789718580747330469079289550577664030181712227638207513743829676143219832344704314296260715967674701482001449913376806483888075595916358068687121708729422500857379683261303921263860121685820844674183799767404062724242310524489697350134398670550488501988475372872455884238053228062888194293347198804392265441238138227677181159485245379748557817866184988972746683309747553359763540451701751696356084459852164182022152412808587646443192358798580413123853855295963304477600027548074226788978537207764884870346202049353414130172687245993019882489096170150802747257613864419978756530568814214432945668758411557556651019785902143837737498200536556274821010662381780400605112509909188613495572392679839642889563265745998858395447421307698159507517480124677277347302938792929858491632297112544832840941784599227622479037151872213709878629664825131480126188639711298754111598428064823242917270000816363709122648987277378136007398182102061741548981187277517322785832122360284337058041445864120486935332699854298186302351861939931359979008876207391846939162210314771939561044583148426369928853868233940526922518772972049827874913617312821959067063843945678891030823182357083540051576955006178261637492626941441398816422089382108028856851467767885600648095441299318354135998498734251932992308737143143025467653349801649628739546874630258467822533197607508607318185635189302869558886931755957134951048890725473219813311500191960303639245659300528400248703556905147415310809711642127814495839546843324328576326612167178123263850203537943947464324233836980317483650187343605191442783469160894251563769924882904697695820442155469785376597463357657079466142853508134898608380506756569383558280217522067311052302017665855773612079299114220438657526848259177227955256936011426635120101830762079309372889131429704647888326944804139025316093289196336964653964566423100565614801447000959569506321365954280151856922191766450411859034326130876325941108637813041569064005223825701797541528009762827279476350594905343645425226428628587138610231943918140476938556460716045568322401415619757878334460268957610234738222840951612748930650694743275364622532030258890415286479681998740502613328050219628652717908069008087363182791134892042220228423540319463622195057083991239326955145548186575848318664596420054393110805076187276893758911842546700215367422419383733374187596523661471714617252209196487973291870913699334677982482760116432412496484463991087212708092653645458879491106790734682261895944886473345506954211712433047855766161131387723429438182830065459419255741225900280706854902526416088654787956522246183095512007875239413361238930734083775969993722381239769541644805477347775020677351061492970324021056109549658001333409427055496201039788674946578322754128963350843452721317509306780602064831134360533036602827305009795239548455025465820907008374015042018365809809459615960017279946027982391414815389752119400246365080048869474297362536785993390768979919482996243005527662778277917885465321412752333438185892306459479719477407555844441351466314723929900103398867867043002596497881333387294433834666173088300274171589609448425947671262028266392919740662644867624295247595699857459234218584330890437409661476431520681129428242734452377714174333127677345118622314183869422375935011397630843609902080203278458540390599042090749139463978491208735188509184146651134788854390808526497071536431942241503136321464465706069662599762884597874620701947018934059825060092646119662953931723860027701194126717080633111640156136325874489833644557661826201624920214268983122924733098531099726966451162656585392366411173721454699038209662332812398397033761874690247876466795535378225503478362654631490806636682111062104863028022509885412976063514790264426711375123179482566590815561068143557193735088682538482403863159753270895785804361031361382278391378291831634171812232424097484337619572435890728941927095511560751760388261889441094178120646992258863669461480754527200073755716671862370597447188736170279444998969343617044871469717193935155683182262922285763833888753132488542894371009772346939406461462305198616036440251815291485469904298242508744364227529945547387839033057258339749984816176213984578687136133802312969851127405408171101594743639930164287972500664786003223239538649852353956515368039944530864553426327822094118523888936327021976657621533976564773785583290254256338693047883826427750866619924675656934980360416785388299534822000552042526718514346446794578777237778637377755344378178287776237122386489864528169307175147700402752803821782266209083269061003354504542102720969358583700734153352740006920887103768359134042143749730088703258477730303136268571259016846274334851168688563844731234282430196383078127732120023621574411339448995572197134932873899916856830556950478365410517582976236413510827217848637690087780903267871182400404002895203511237282327069265542229687141963610194453282777902778859998760736708870249925220749605793667499205748816513949474015953575883284167387971525393065032708136749156997888134810975304745634632117872617861567664274063899397877094882190552445809417241472320207563389105918630687307237952185843194699572058025554431104278743480538061318842747375383193638777342565867411448532867205910203487977907663069796421891304210077030405214434811618628170864558145567677751701685738929795588438804399994315503947353264949296806340844521133692440449083609839279217883963916631498717916790020634825742944398624944166430707264875825052693374475378321249924750314745509264495721775580111999919720993664002878658523904707593141947246387415791846299514544712200335806331175475590519659224653075917880743329502075748542429024482032810220035342870443718281654191396685226370159914864870316988191806585158572052803332555084411259060098286181403917706874876660031931286794684200614175280705670414299950266031177615851276872598658968971135996118890783405554966383305860856862102156487540644561728988416864974497527413709103767467631226914378810590994972481228553839962836996069250657013109204358878992760270003639048167747839591589216754757122827779352819426428134445441374922043374569421783209068790297356814546081881351999575870404466233920697445385245870221843177919358780145577652347717366905433115107167412662032948046725155563475067152583153940434565548961211758251308726344532014868831714454133450548594158016363567693283982621560174359269347051938961154990384779238228364961566816042538229083930635315727290648328833568005289413838762451163821660503844085078086725011148702488412442002188019637322551761005039816451607351982299923899162723922472766144788127877354389796912871958438299214951285980364692287761951547869726339384158598405486872518711116507679258774029492870219603525942238144530593566271735729519698251676422691384890333190049825232737985136085402052951745878137397813050182148890169266439186776209408817152892121353199812846022990427315398534946073885521517834671315065855224489865533031749912821841506337266144956792234619007999676206013819739067655214205839160560020797107993605546695446294146401795626368423751230800632412635510082193767371132341823183745971102274835493595818193926136619472569615655322585108673659882555407418098644331649520737335293425187762309278749325749458309464538136260018839713209912174416012490427097588420199262463872352170398543503333555923748642240351795384637838038481422171973565241705286288412561494081186007305450064331105094972966950558387246065704761081618656576513612519018466898942097707807561935758106027685784005913640547160557550561041941719114174448298086204438614150974831050400410571901836877495059615931905053872100378271226533801999854360881232178375543583271537015817226672171379728819849056131762353647351925083574912264005634352407275989137370177361497105171284539198378765014912257680629460532567837654208972904607237787323360531698714472170464631183009744963051771174828858488410191856264947210312306577297140839223319571987726172251247581829617541431651782726716356946690694148128339725878222906316031252424514439727629776471128714467093322499921772576690813850756325433966219409005065363407265035560182626172959258802424164479963973838498220927038302904288550493271682812413643648027800560445665658115286165955407089151794194835930822598253485576594049953876089135903471440587487567359632479210583430839188736460687001038727365502766900500338546290043394524082557892860656307461747975337050692815529929233704101321322145529495836816302226500742670904950551242386173820879351304235209743336006950858054820449949219362370940888096682435500869110519279479024526608592973010839444163093798790506242163821012613394403668866376645453932881675864219250911501829844003922423855155624483515839350540924090553643767966497931513613764814513522498519565049817472477603061973363545848895276243485214197124910522530372106800309943787692969282889077961941969788491249090750318272850235985060153095710244583538546469013135623666488274759045585767792019063708664625044811038471943888745916137515907710484727283184283073001554841109028151092803716120642993906495699365054382509884783897128711418586016141046088514331121124962092353955647310795085900953502429763679897452659242953842179471746086148360873084031643239725741961665754332412070631908225618205982910850743153290524757564589089149099378436762094902681697661511035622645159356331392486889835395269854586056184765019294624398513239294470289966870174043858384031879361316221319449358733809859388818087019559267758297382067384655817607090844851688425592641840185724592285583048325967457765498223564438239613127577987653994620819802717809983208726979910592298151216648813256998156494271131656567929166858121671701580889789908279990540000576902747078996733372088665173244195225819508496810625934064385634888594111359090907826292983209434840024388228583411439585192408417484436657938597261947892625753818751126825031378586816185473061678271781860019715793039841483980567709368744635349099190358311028871755233531180815869054851219767509564805987064280926750730283370971710220192022907372798901652016336536275484261110742502074693108465933315361425444824613863632228020168249218756605725613508932716115646149380776516628839705581751420591126488418561011719800281095237116036436565115887001371338201525847590875815216343878450660686688605046065258256082703559360245739821414928040245965425003137800292195287844875954359221265813767823224376459353802151862604857410872492253825851973611647883070500299254564510724933539979661430101312692090806746652093159171138482384378000856882839926397853186447124774115560014102179448380658931054204093300946773202521889821775067996975690340281146592833142706030320450779435355499108503590278689804653625541071680734710077736737172152779667714625347789451022813433635848353763030326624292713927049932071827163377040653668212776498206552431632147741914283894110188784810803128176437917486905764776948521366790280746920880668727861870176305181649515964400715241024758427160641761265371804059563998595903338613503147197526071037073865124183530206776716490616315707514612704031413446121125906866831740467934156686828104929973445537795752026424957172837949535966476345391008300286272617500887294700946819943978092689160417102015648288845490087411765695069517818827348055175021570095290406763465808205626971956610873065963658010472072186505342614248851878839006271676565038355675205592113679273794316958862680544015127402318718516820140723550051401350077840785963320340349508567882063993745902170361953415747140545161402921305671295984819630520138000830684634408237387681732235921749872570797063656715240625976102844525084663404725382863269540785025509989733606571775547672777607348118779667354850462235201743135922844610667816802089904740604573905108567352287397530663406000055108806363319988929137599255006825003618628447936334000055361072248730757245535564016082440791803398248314690724871746965934148183829585796172943217215954625042330210161454823974986313800278685767471577687540792373523743236945678065491020655455951885912336549426974667479199508025888657670168621871285434802738327824790622720563817970283746466564374325268371382173257574805652508701194865063976331187602858022207576518287042513013094336811113341186295421273539533596222845662241009130794452132825877581755956453933444480138027463903218917617939240128319355158451148393897202162209999563790443301019040594051144110108212809601805629672411995029471270665194805132668310346033906201068651219758288268955767324447834682723251242636531175032215178417796523099424485924660825754311330247519240329721214474405203997971775995385395488858235158478224938553697125565517540408893214452383911360730023069783809757380353744188859864195925430405681060408442240372654186781646128039335762429352275321669351556970308068183059038645149372900691793055433725116517267884154986017809366748398194381939482585715467806479510100961733097919045223608846308462248096339259611499735815022428536910839339123856400166400685405824983724047899011221995933775087738262282978682933897771633884187252284383898009213148712490341044920379591429267695910475392001538753633475423911835400378260029661158601931240316167960886371471416545750408483688589519494171897209126418536150956511937810246862608300803208761486573860676854129735535118161366277608214056093110584942732341486126458750431055166291249834807908678719913440307441841940385223097321351239558616494685498652407926819533277027830865558788708969527654193479469307571367259794030484387514729082783806015958168449498604332739819429582384275773051621250445498801299323621431013879994708217219986833384184986939257550017069123273999189678865506811624839930486260951461410937335177272008076048520963442580358533466082839782377904330567706489952045392407191225046101966742294974398388358860927027372174312467863872702440855348368863129694173144093433064942317071652620087365113516931275852301356078792629088472625763931087329090137592219078653351498938009006165447104998319996862756205518334042034010969136805932385068475548553302898163771238682134114408909344698908725611524913006509303136329896663015273524247171437932862839794151550320777083271038235146814942993615460747215210102684070570589166908146257041438502440515176761310492418621487070491719404055927594985717671778847048929915159665516423180744494657149892859668089844674764030130852468137732874442701331459373165939816420901784937779867761103212664304331859255130148905725468195560287194722013561690630258601004165692123395542826165227308378844050146444037330299176633666584309453569810495139988730318641169660078376809782421057452243014689236369225189886116022278048220913103374870804595072800569070258132385432869355407728463900370384044412799395340797863718440859998200231818757784155753792596116823149030419628380198045525187693953268390946300362132817155417541734995465495399341390443470745274844637245318776607766998135408729895387563362408897744345389215738417171463046126373931980579638015572255527666799165810623617466751087329546591596219196133954896500220415974567889222582575025568016985194357223858596843056135084226384496444402958325603023412241229033388072650750255940396706085073708176785688122784104429546535561397633249811120120515143114448832425265042460513009930352110435993231286832639214698931383576045588116488117782910939138110439641740569662238085575822326865375292270857761480135297251875902339284563125253005391407842570920395058331195113724557290443773298006159584366447003227475143858997689345831679763676780873357171654953725178958343137275849350346237190210336893120013635321034438680758156202092090461680562116956147385505000265271103384521370654433027413612686618762372874553530649255027241879817006073614374917188593354550622426703128290352047193257162040964479542276632106268203763478629883249322977864540317180657655731896455301598377615307665013187781419312501510536814422129315480429326502825658378633065605720453394272613381058853434468110253296464594868763533929032012328035029635755479079879899491524162021778368901558537520572312150824537677080405231263016233505274655521410074211413956507755352306384922730176373929546761766317957852474649977306527634110846693288287767985317616454093657387444525514824836412698086468728890616617285944463390015977023785166999766810763365928643628595409365603099844132304264509214574952344028793759439234161159027842527089775268412433201357547155252096416993014318321137298508836412307545420474582457601129611195031292192171519074461020713186071100926304906944548498335847265658545692878650794631670172038197011618280330158413302298904679362419108184422686323290729678384231619502535090782323529735602915582167850013836011512479013004284650242749618596945081870273683772386461364295614778938460015760288529985793922134637759345754913810956688617103777056230477199815730309147306494447136237584484959746373902893990792855491776638300678997742242061656374423082982308002706387811606085575849988508830463480448618119219229728400161837470496413379656153584630144114958623018447197744059952518622253942438129706818252693877676885125675456331122527772577048539348419072950607010915237678907906514108615439126144534845527532065074293338952751940539983205413328807713249281967870803696212450790686499982250637534154837400686541152006013727059549991776203379887271115579380781962141392514100966813773366906510607535661672103127758557639493660892555723913304333991319790637414331890556780155797609175948481391853088124958824657507606570900791781346329570377423911686120337018303154527745117087474199289035956107390926846943115754733456466298213573743475550074983556884471036620386277821869147523078969383214120443874874546887400910633986749995190267567387769035283122885825180024589780174778110335920052572282047393390106456895250023938997806389922558198963661611847351361460545707808162980260241052012504772178102506508831602709605738491647973159673410467916818997026645831126171674827971022081858627986243392932220184306684520478177414954286719144162317840341225498075421716809953054588206100574737686367213195224705698619990617538361482327637436274924105144753357296684685659607380023928362904299409095591018809332945340454924168464116252172588857161534847835037059116367100390371468653288053372855323204465319262800800072122215672346258401686449118682092888453894418042466737238937453897238629046862402069595322879937189756693262580261328178092107321728194216973946363878497920332215615401944142669692871764286599268129677999410633898581507665997524772863139680512344874485643322298628740140120510160582475827763283927823889685107093263346101808459605383721250749720479008943481315335806948948021696365803677786481343635397148590428797749227365966120170722747174516934857607691733964736382748756024972543959943580364412001518986109297253425110701464848500060079699261363241202349011901506085132743067828577089607847192917796749692414192318613931732884476139489363376240276876286120295263491090916602750499653606307704780187710352607943889163486034130967120295606391368838676387463258866024081042533265133286457169274240289188493873196985297438334171216655392026671983556572696587386917909066524205141560906785167950981249810808692436430295158614038103419495733366918363382020099230766714627862862718230415536234757128626948447947711235448373543465754264367078035904088614128598080214273319796427867488233754952613731813650329702555634466381720070749693342340247754209015800156160258545451870790311743122745579800524034560329285897781055636548832632941295822828667595978529045793290623629116136752980133110638771315338863574155567246430305545236953227244729750919855981028640655903283274543502854280501037433370330392956740347478160805239474594824050830464025861423179132132381910570649318875139253848382545204366506022330819431609276228045558231245549996287034303705814307465807000606290191026343110365170621366467164076787161449138891114137334657781888200461684433688916159350412981543621267949397804069051069246931517138862558751415102251686278422220180021737628115837087903197726351791168289941352921834376669079595015137603477865751434843571465009550956624588279548697154021075968331144816056022286223672535765533273222569238318226459379948892278783918161331953866957573683663634467570618266279482305031363548502819027195858382696370742484158591613264875210905543283844629489018734371326458749114863819035491601849895249450437803849684730341619859088629362413188983693336304043810829927049796873515297928184742298044244908854188934823602399532415959077615226507577731392397930128748843663161724256948607833133684468340773312879462718568970031912964679987274811400194823520104902918193617045024259494984906104628302762784137872156325097783783520912768880279690307523175019058894501619191988817941077124399289005647787878840738771044126338150963763395168286617198359612744666996594868672777084154105336086278098247794004010982733418649620930820530602298983947638341768278247348439205988526909570925890755719034800652766388183136225351883390791591002515336596194134075516867034564345519208435355211604255013165169277461302515951073048029346834327149823825706239907152834372961126490056054930543524563438025166749248553175659407628389268716938624564179324748682172748601645969015219888164508867346306212479357254500629966276405877014245124424769436809871337480822119281091371991523028159639345342955130476829453297091591997154295728272761363555316755042236687694151426496155663168224893395517505465992261438962189108183685849818387403170206778712640817075518145255649219063929358468539229468849197431876521114075612842899556094846429723799919593401597269224423984857106445676968571321225928112872501301584342125955507991466039541984370698623046398153257371422178900620617728689935377363292192578913596887794039031043985339885585321856706761000031121960135939514778728385556975659169033869059657968177722015923722523209195913599230934553719533018048739747181888100325112736539747380165989862559656281176366432198343277573795152204444233180633042328999978444627601150164676352196850969922697263927710903017594645918480711437378406139378663654127254972721676265556002567758218859611906506635893907678768642701478031432743135383736683275020099671018479405386179823747951373302077209518185289969249173751463329724822064398583089009540830938827313965396552416755162858384711294943868008050852082824697054524198808773253646059819310743539345014642931898520262199743248810433649156206589181644277484268923700845148141415382960945500685651311945895050780486387892909556415947871261172370014871819297731289362504746294907645643149691437232496000150580216059129049326660372738978506206121223100707217206663675374346713094031786621073097900716863621183706157398943820622332842860305595278637309065545281359657588813202997182838954967192526235016120858957381570832524200861901099183102092893630371908984255874140720323989825067450137758932662360242081203638714502153302889920002435929072813404999258005892137569364337040584986476085199031348767053543926993884463520244685127089232768828096681899325440775898923454458088941320238321814183578613509737231601298164713801528961559571404152852363559493898953857988061830062021588582828564052935150478904448683823421694401004684469867426126879985427761951218530931200219683409264281200175575286472846016375293179204423001167691864719219897363738343164580392412698678812566024200952110455637176518879720594869529427013710830197603271425159697240846402582732498885595539696174667884077310079136930501877964419256320784989306347374589359390389837979340455604751140330181628835239541223258894433563782716954486640848440384419191691075425528873704885674597283255831487665297121868082417360017522803495996896572212656304874625897581732094941692798212216857104784858922392561917916549235358860394232143383242174609715660018070926683756759361435958441095406935939925215482836515180907203216294863762285634003843806049728860428972904728328883803621620849141247595336458932096994656957914910453943109826394580956639337245592302301506998817591334698609704482824215017375818603672735498964091472139380498489362473501267239636013610428128725459319865559960610655213117350732766094726316614280557014921135120183849931816689848383962492450313402611184334427056584231969784997260938723656938282575113568203304230742204937652384912313717034147830575251626127169819982094917675887649610659181087118830236142318867051964362153504804895431155650617622354499213210074706570341619077888252301676118993307465142634386725140792580299039691138525959787233722188053983835336044891507607237007655307109787097256690336977216868128442339520294185470763434177024720336073705016378814720368724055065769396706724230650549168405458541443586054639701960099088332770614342751396652836480141244878973268967021825400867804857754201314325080700134242246085465788708922756838513004365295419568228479304711833066205210666999458111229759798209856754916317151077726054246369995227431395779671843073532162947304529244071823032957222097616808683689328022536667052053988567103873778634794498918951909497573188689088931722010282510562460072161042758136069021190935353863238145931066225867019522847540432067161609611161634262207509333432412535790878634246632707867437912890310365795977106596344874049521691279179349469030021343472259327149640887145806919510145643572550086195172651993935626014866505900891874247887439306162609971306626876693634467773955662359229185862267391637948911806621726195199843504839843729669740482507559737599543795160262521718225248265459328525635779389621836748267439846997947519608468646121298099328327391982766949299969805111701900314381174007816942169354425062433343412887248306839090364864421884020980943270283195729150019628763269310258258490857327005089738096021163658066986394493542001442731679065787217648026318100291178575174786462974939794951956913463094319620081335763970210155783646711959720840519405950476526153883829914668592356569114760040485565537914002070566468331022564393680927355718979671732259917698107440866573752056039780205218893202824103581371618880223528459305370129081063492086426453988836175904584615469140729938621141233835178243013552823185103606971675091898310151114950265089966295476753420883932517125741092541345668676862562387875752604971942966213905032711335283391147156413329831732712614656325984673133548516150445267741437330663544605310397715091444948557436896978736697482066993450205809756577269108434375471321307459671095029657360765418558338326298194318199304333058542982239313943791856242611182054177202078601083824503716292862121523263258665986885204745940298456761867949805782258259321348848160697499522097195438820457969826006126938574053774633793445866006575196561057984759523155277973456944156398819531619958345038924223104457052505872294136167905358903741859943885407934848854638824530376913134823518787417499723870208895518765059379784590559271334481393101152880638190531062581872385318033990798052029709580483880437386208139834508801024012901370202633217633508239423910003879673054642597066155110151862134228304847072962614931662937707591437702640565633119064574527603888815729186785978834690159403775721124703517857910416225578273568605317376377059709168327121704318127870611999909109833780281438233815668056272133107438869015475880256077978658990003803441529015266539708748283877063632200174607466250541307693951259690229570200471420315701015388589804867474710937810754577154457496917189281532140229682779559594005638480452780283774894314057234283231090479946071197393748099115793679060704678410158610080436273928093102651409187770270402197241831932497618303127197491077149198327722763125160593289033870088652483402371947347696116022510174118701889923330474381739377016094676253733324693469423540596577503649309949795814302841250876442857940287598108679046888295890412005767334416138702297278751629704070952563317821115488978307498085440945131352378918762511177356687738648528539754927622519425221056077720817197934091788364796759285576148850130572612450800271994042499847471399826341817243419463729199960908056913066205994922207035158873166137047429789390037674797139135209526635417667274653760696783224320873928096442422258369142122099599488891064226087852808791780529361803329586456899983628707463004439936332859759552312410785424294572841122341352613757254966442203177908844058487247646926556676806562420523389069085004904797057427626993011058204503304194963522994306293058816416054468088393137421214516455841979178750353664750830450889779114118970710507801687899748783727687156130205880962871249641267530132813989670216460289062388832788072407836683027937177779225821607297828077928874383960241122394144948569260766179224668779987300790048791583108603813513809772984278015612576115065687176848557486126285459436418119825962877514605288206926245095559667119900726587379869261298252048620816377843030167907319860353355852518935846245448560680066217213338915186004263085924177956784528931497584078111901708461852759382478436748389446693156469962822573897218838137943278592915787372732574401750021434883966439760130411191318703832453289421468404968806115601594874757494949384694238570275227938483072134921561743494950868861082335545168744488666767250704368009508183595714298150815496611839575255844215854735966057582249753558795963163685539027743803753604160581242673433816547675702141547276782380413584693416745290791899822185903694637164694760655196596300178770348445509482847259597292648784899720382678004029162351049293352824322267204473205106109701132722325347286855907967466031224612391772460861339821603526812767039815519225226607401617887631046255702535573526123907274174356117137484932250820584409166850788039998184727535970578155863649474931066323917567037311642857242114958609959516001603075565655449814674141580537515430396459679070300518323913605327425655575085612982729552840319382054591128028948091068562270376874137704025841748588872429430002024242377533738445065462285918476227715957341366934625589999897244094683481033688512814528785544881822735345405202118941437497146885184335629967159669639882033922304912867344518037017132862903610479501793709170890405327808527885843555441344137270883555715575144038206859274754976770319096412796596900216658085634417950890483052278229956575126286967958237954084190499105495345846682484428628826504675072098619312274593847518303939917316592573910267664335289093578519393760726145074033433278172102770390763293818382363547770159100120197505500107974210475431623638742948601394129300935171862519819436427267919495373807247193449047927818832171931062550089586961409721342671262913982918294081560698761585668878711266036179285454843410752071621910701437630594302004351001178174917957154176169715727271186345905319704527492482924446408574207372651917405866566277146961423030737778453367250862003308255353307284340678336466487032460758900670720525589035300569776408321142360184506258631430709015642522958644682708832726371624572549769091477241208068786541716445880960930004374904744498407039609092803598921052487247966662970155193602167227132493210571732390549522627706146829481186134244002146771797089191188148728203624471559488455358212080317611338340372374291783333604075023156444321532584307629767453001442571475937742452293474690827249405574720253243441331041367002379546640459478405940678488160735776452966003130972763436331813725388708091095619323665455759983418092786820729608861981184893506401130181602430140680874619356327989874209301129013066426729476455791325211303626173619584313031407567035953456535520815484300641261411286085799701090007126088155906634533745906041051279653016416183196573218808020236747623886297087450542617374273427930130921716407149125151191530830522235102596008305826827708846375225624982239660168874163941167120403381097167533071748351789526555373911818852825945984488110919585545784993057957138327488275893634741295321850219907223230058678791263016234578320088043007661972622559029015009201966709040100846833632304514813029804514181738683286117529649917008109985520209466311274065034237546707758973361047723107101318123197562631727271837039809510052076579258045214337900000666069016147531721033983147028154028154512924193810222484557269441378591861674230457146469377495767101135323658273323944467109821044975129428506273936440802801876832214911149725402773616340136798259846815226384471250750245636081707596782546640924297360907821467390406601121078184173690462125293988530923688732175833278662803025742471583833050323461382158494760561599706554827476480683089859002663431066238516310429754327833365387025626539495507852670164731269882193353370955053042173193538376482410511444511873285157898287159547582411523806679547740344386311518184672757299614915036401426115155598376797411093361082746868265890819581840429897507227322559612384336857363967243654382967752422502393676260789880526086288335989721519918774227950449017290718317441994085334470808443238531575993369435635315929979587554854977352025837410227813776401113932040483722524296100911515914269486196435276046729393960022044056991773065973336155929737614192930556501576364206115494997332995360107099150735081100401460735529128442742449989257097479045383006618209823738010358748247790753712549956273851298895927615756190504912649218851593524881336644619089644695851017155973237954755321229713589575167404084968949175194737280119251693450004859146569224620522116239403016610660409737345339542999292922861966712766153854378257296946983266102129044601422833269671025843426486123355092891060960066198625152998507044679304470794136961673158041336577194251494742720590152719554603391173775306455639027676382876748476371241459589338631204455290090260242229473145876997144613237088988319810387747847733018697528939819998279606925583259213676025336647535596744027873242514964428174298557501317361521637214484183670124381530822074785107725706244329548861593026322259592440143242497788727076074831371013092556574077429360365546675986831344916647670094033781158114640892601856929294629719609273694999398286632916323863420141798382855574969317745813473154076133781578015900688126376391850041764174799734513787224843240920192318826129552859795644102913183818073731169070893445292286536990510648390980178979007524746744681969711125290835453518755969549762206422262640057243481977156504731320488965735690256299328805027985848480407302589247831448472262176714196923260458411556856428436485868127734897940694452136766462500241250838682509270947985663141280457431397674946550331568051853400349896305891858055821669665735701304715407811211165496556899536397885286676791279191906186299424811887877788896717860953550192085400224955134146288754299809064715875181160952392348116794756537243972088815404323880445680183119870203465480806467275898423672720991837823786051978939434682939008904111830063511209912384356190238389695102147653295852326927516438563009802559119618975587836101965866460708450689303594111355363714904887206126067130873774924987759528157474235715818334098259118630114917584417092201486168578384797685454142788206149973857789303098612797046569696360316585870688656050201357744812894783451465874647888803395682811305447747205958485232032667312035740670171571029747250187413876404785757766408210359460923274486945456980796534777500764371807610052168271589398750395305685804466126293293224566022079245789755874096403464140284774884355903789848808749439565147481338436631967563534761262056758107897210379506345319283065925549930893553857591701914591831887166694660699485161123676089161459977784820607629606318043014762530776560491254558580274052323191555914463057461324232290070986374465714091446879505114753557781103719093801413723060824174658042975010252304293345509686268024566243342065751945039624430507688105305879634700338082186798820978069664231633335719402481832190477099704159293394233300801997887495574900814653224196204748718601514158824767565549999487953941200259058455507654424899229766543956112831617019160480134243407849886324524710729186101339793075595613199786377687849183623915560411121558206537667250317850346179074475423565884939774943703202139783859530817919225412831205841065641578965935726244818309412802721303768797342736444221124504800471852259415596172318896575247078149981169609765359090387417007035944777287947956190207706264881270996381430133848318033885261607734923389541540312542372530944124516666861405948356381321881845756269018123359358267996763430280667066788054882861330212532655739522534937411304494478785224437648682822506122459739051075554397836334271225974176727823837026733680523198502798980905128814611069389217172797472976605587186518189125458566435300983766219814273046038800040242316967382816553007498088949670378448032708602600417225051125668007012546097777418340206564198505664297380491245954743301458811204399217547244068748716405300637885426749370825568785399745406320665116285883806049442727334257735561112519935518520722399678543116626261583901081901730763996722303161993834794879757223359225239662926719547419493992879041747936947308492387893382486927582647458453402324301097086164810101767831986590803799531387096501994350740206860115704558232866610977146573704582651202524375218535872175447610284195154983708025989949165813327827570147180169324788367621172930710898327128164526377340675339657531163068102617410955548556099428963052597729665677133347358862706006751249084736020479242743654651939498633457609313730690132435969294203790048684307785557261103049804602960088075918662753244487528566763863318322232533477757957716102113882233131087828798734279941522353601361246317114454205528900427248323463380357692827747789395798627738045394995951664659667729445182561514899175932417150749307707812799600193544663362454665279522870965559496776779601455669981789172177238118739906022416618837336755657454020560279656734133437806429151683303535013831354132686427351016739412740829407386328153198733009432203820431983865765927926892088318730903253416766454598745694230729572914438129517964676244655232669585994822683953945847495758368302361180601764437573479287159778766648914668993443641726436804618818414733535821096803547931707618203796238907859141886852183363028643437754108407979819593954587422076491706044149187412762340741905982476725368915187353004032482533210643715320113621328819104014166333332098650166337524162554491916204913297223866296390376373387016155645913591257425214493643631574811996654902411097604408674235653350478555260294446796935082693188273771602969102191454883380528445867072685982717083148092144707205929151991997234787574782534033255924272966511540769308019755991369494412718197457616320939129045273931711719378633202568754425524158209595751107725417696309378409845641196379207422436417433507684235036210503465960736529281281481201614491771226500055773800382794549066527387328005699600098853463391230977879477836128430118877719086247934565310721569384194154030834324926017894014335080045477483070284660768143893403787140705943305538889915835409081290134993192601602948991306884742705650353139932656430450658809673068048106367078149190744223446722220846951195256749386074766721430309264158479920623433758030536585452241973768458658047480035516689867891062525604351618279772758867185441694915063262994296255334771822325540224235055766453495498854597534289634061379491691133626854123858435106336251026222218716969762206495461557724389961857618389190064804174341328514942799346462433727514989044898127099316272836112370202859824246262919895040394147508105516700877311097662749071852890003843783917433869125350907780265170003867918332528053614472874463739694757194509707535035356689909065016958196337244052221660012927462227646762912998102794101610938091728103811178861486853535679366608637236710459013716581000317523282930915058381708368473846750904796139732662770206412906805064400328106208880629740504533181076924246581579505240383930985869458359328425495091897712707377500338551850787551075624784551926771759308531099319368500306032884297957043868664979301350974897077777951014008854864587220716749898030492469205049207642392312541587358203087741746609715558929412544882562339466863519538225007724702641296780053746512809840672679922872511846589285411323435665099979292693165796131286125564263308455806219831588401210110167400790585640808017626131223647826297270913124950958304699104808249630725879723056731309399497393910431622118592888330322578541319809898683416837435950400691512342624890060185750517282296304437717321983412391459381564067936762938147452762282500772380322478147529865024165312646013542165071620545660205905188757507955921085781917471470690353720385458183355016295422367421613233979652304801226010252723836441073178173355614752762239434403923669176002578929475331946806776959035111675645379231011161132713569387137764515447831057071755216509085131496210791928773188335805604957272611751612612942737389903086381113536499708860493133296058209163238236816034617010174269956999671312738160323180103628274744670928765390745371441468286752659008412567741794051732261445089764589782611067028068342107806156997285732083622439737292518765267447363437896463473917492492974715124057341143401497113542256206278235427184559839443319797669731285673953888873795609799698857061359762539459643854227408195489162817388508912799149294737056476851106984254040389761361426663220103909038257977349031966960929759481535795194544061538715220480132477476141708500891486910611310949738397965236694181619284657843067029017922796125808975723840721657921096691197627116189781391427226077181329546456379664419947651685318853395916759202362686362113561849058801071818406072704750270690604034339921579111297828543271280041321823900344028035333983329663686032629327730785345219960083222590985440944005386309454527340137847126298960380781012393333574011413928531052466803461305960978959437331103788718478541608174243049424442883600619024103501596015852209364625961674368245413465813469885826186549591407917666674650371721561184633119334846505757174088728775758674578162660555087070535827987375850277111084159760020329149177651646184297027062897613621347219963719982131856227965597839340487560151160877397295747666359042903655358565046132732834636640618004572074271766817799782444244617294471200533645867689132434116912311085222584153508300218911090420128676121761993556107060238484047648349087395789006372373080522983876338964917314259691455258596781419578942135299500801076623287290433842557008624850832427762347939507671592737772027994168394745421819321435569847069615083202210683499983248879260207312957502794316761603604470959611559336668640267072304768682469992089683130840366570010598645141318943184765079351231478392868073491898271508701464038041564826960558698763008290402957701408089840739983507798767072270169250713529239939380465174899909486357447125744378443774527424733723358505078884989702827543088321161533239784882935016123794747155045488242304677512848285561183003555052195757131553289593655779379262703197750552043441277509249045839981940079135304691558755825493962995912466004692182682907507287933161532784373846879509959136059691038348242453621798151454050842399938563563816545472769317287963952275211428572088080856264659555011052378600278564649213221340407697704282094342844803027211488450429896953325843494793818403844924700919024172487066941262788430267094155256250266643788612358261124232597149650412171974312717834447275561823457537562190421515275185144434781055997344952424904871076644466193545589668022788653706243948861947799500596409303054011545212404840047719511334527674741158111946027039843276407456481811958563167639153981611977431878242440873299464093447519112125501456331277470971751495213116464712495139733449978189711347469776902914728127407684265016949088019183672115248598369772353237711201728106742086730373600368038751318280444520170741811868121773340405094395280579275460268115389544149058494745223854170051938529133335175619598233384800819405490327960559689205546129429028620711673418539960857605562290707288891517716815124065132589425504916061456161037979376653421459087849545818544336455038127744606233568098812527880260693219580510864345634985727160031981648139327680846448420841763110250750067129170751459321391836174523175022849676862398368038793093677134578586653714688020769691462170538905008115927817200857585500415172872221026196635717715374059311212090658529188442642897619593581046206527960947532145312838506429215100894874883335781431369371921854478200858466436576828147475094857919991464564840344585565122477715516320359774061962309437946533687949502620502537187645524274402850683586000318834811216899693061206636436058224702354381653913413104569393719856991971358333896577789562794407759653655095130375463362231182884418829236434391663214604147796021451810096204942489440437672635996696762450215120128477750639527950469999079375460354717561313765171415952309429022599342433624029094768058751275937315331580026389671311831078691035615559955384886171666041830533936903161619921022071012322615989691423382447018166560419274796271104550743526268241115295439182617992235077730368682694621853468291778640205686725497336424128536238235209152259020967373473984406964723038591065740308584499023784813893709690693745268887661151356304528989826793505994921947851709313015743497479828717824973495118102599438654621079321714460041491301396291832185518686863937099523013202279112566317202898869315741810275702086477093781504668294736721750288026911166439782993143268123600112397425818680213814714735726761363652959273596106306009712061198066875980688579074309209441109465290180630518453439693234946589369954270045868781186557859789508097765106931974354927138458670684745909061165285956883836820555242749255595604227157142773913819185987836139060565143922505305767172970018849583072728581339581960512302948721216976031097694626393689839769278194794811863549996870570230565907987461150466731846124062161764811473519948882260356922640493608177078271719736620683213262138394405868107780285844125873488008505638079073807772430576612957497042251620964958189109657139066733204801478448677423990926406426000249538237088627612515819044105320547497801675387774362705912387436373772942638692073076484238363747151413587247310235478284264055062627773847916918478454452714119160259156135812786028172170963957001822058502909525265221656744805756409305381791071321748981559378722984547225115444763590592672648441023932680604520285523161205660938971962592715333834512358126228108040551231592806943943352273482676780189679956877362537527570645373145992391056378488905104333127795255877970285206781730561476134903229308468359296015664477550659586522671120579461243333768280249061391920083092918403246625681113982127740232638511193617753753005868070164073479106177381941615268823381301700606565246690734476032038872951139488608631114184015486899408161890009132350794353382906268978763707830306471613080233748779322138349198133512293829549800217984581017942177925359838987379949538971748525791952534022672790515727034479441087020380502133667479221887649653259718991665705460716332845470433146897002561334630415592568801829176043832470934239261508308013484362622275531981723015059128631219061948308401436671213711037498080038369802327562640313270579808867542807640773358513360636414272773917444315967506076107375585154497601145485889496871233805872502447905775205303252984469132267809055709603920093264871748841192748697240908817276691079332839134552287093803797029552292178779321459932704227753646652799951128308594498074951237974787580547057418652336605892577282656866927803348280309564265635389430542334551032670216277106123017192214453312847072557715137853771910089257003017201888351664746130870063851073148388868962198323099335966562225345294973639843165285477836589910365480964540440879235060242431474060115200759448726860740268096701748518412930774344663232035819930797299340751587417033612140249726424504379999438198407510026513905919623568839909335641187794608304745874587838564705811834239019961581674765127665727996147203254125277097075424102651260882632157454098214091663440878436107172630163904381226929772033151589840820031501816405493570783348672805817064075850608676371527242123666630073973444921671894966299101730652112788954296254073181015709108766712586436261388890477147439540992095338434095369870441152618565956981089826311986348179301505257588866282001266547892354421436996926725853992339665827704025612083356624293463653156399273749156677018955675537400916275463225979144363672884410911984479620196661688196586573114171290953460125488233868437509910224116345977299337325227056262416344182284822165328476770599145175546982811348901324995690488758387582323051614420180309565074333476468159903212641986259445055661420548561218914992091055112204659434823816133616404495047469577535600619415137898010711190114356862425427951277489403999160798837441097841513108797925429921200688408373533256571115282935685717886853446020034825834292285381573183151459318663905245961044570566693073899716293919847851772958055842921868353945516573293328908505626836810626503513890712047205331840362138611608711404301382343965545632459039691834088891508730147074897890535764947381847934168678618855456358771644758636085550262645810126721865380551331561751280652024478237141518424753999863133745609798645685978732978869216732958734295870576957030773119811848688324769143178612019971345960650921134899361608030659466426703675305108767898193998199833810229153940032887313502557549342465606325551947549926219194453030217387236167896706978035233503669837287874696683486677342256409358694891177520159295007509339428646392233675033599534753480348420547147468019457548687213309735019682396682133548497926668169002301081127049175157266122999155622135820191967592450234381181195442397109320530672434096118323998713231809308964038893972448786224456996795407288871427018619943001795484683943369206712332475807391826485734831802885706190877018355365594435046725824534291468873127038596166466063319621078761772878169062633004023290242278828688460105152709223427403815097731064637984247597360436356905964812746151436985315533340632402842663323440316291913699921327513316343987157950288546680523654327813612300282574984276694021114194564666385813038571247748962958897329493506074642676375843886633814156106613576175024351151247226427798655753441582998344479499007463224476731483674657238840729808537289683291762665386903768941846474400074705207035427601148857989638371267103517507778120855142068424939763917453709560609271856360650394648799945068415296933900844484931009496640484946895508069458381553782763610383898103429561723289819585920827451292656433624780816428941558281002177044546996853492153486462724426117706395758408676190654196957717633654829678162900082853917730689194016019039648832108333029640968371655040848837441671472618991772828261462418472031670873245696295473958658583038210146641809482678359462725180055377103806143060638042184585518554372131310447521797286355291452033809357446445212707676621482060444156656150825229785167609002555483636294141961614096493528104742205356557677581603402425269432600609477930001129603577477523194532017906419741146270530671406079218859296734204476816331038829384857730141925141017237155871793335305799046117970503914041036714652905636202723949341600075796602324115690343404586071013589382341503940754985833839425351424558523183814775315824450789563061528674884950833787215250861794944142207556148411046878918915193439764093183495709672136221528652668446338105444813686466947222404492439555290885975634744568694455580873863131762222679997473263629804045084967091384290576904628289702861767883619809393706298588190501886861610893143669963753469981738517783004626229591822633245505139691257680152302225825259419921132557835337092316245783745480485094285012535098956654801696100635983154766202588647265612274750908035622409610811168068784188755516945626787344290702229926302537564984446431138353144295593042910946255117164479254835684234324078403774799704583269769650718407499457025506335115060633432109539655393848960541834855935540642574504962584672378145867179618777067351693431266166585999015225711032733504910792048922412487163904613448568273476025013931112640381779164226207393714364240216259382356786246039475733995993765049715870813102290490836838232625010223707707676001548444611405793055456232489416675261409402794090368300811336675795886969695865857023115465956524377840571795811325400036747846187946731407407963787397984737813290465123612042908783027681012543399763433972754310816651865148657419123766657989473646032849015344482724306539126628243849072698610237200166701312554974491850356027077682880297566556432795030454974991030030886480471509116639722273925108824973387110877302419692796777179549777321251868832702046247437144841217121636341657071675922547164346346153694096280294830136959340661786719200280211412036980772435175762853682116810385867278832601079244706138170615410867006652048251027220773335395820835523546247278222253358203679570817935814364616378954582790009677413642319644621162290349383146110289769855821136093079751271674111039760730523366383638969348274112548477488190933162560742266813583595153748810619986019915176224758664506841653088286166891472173830531939431350509649932409251069178628370841083918490284697813052853913339454263094492750079379957044818084251443767632360573684173709548588668661849562585978876837812779564491415491858896787846534474962509400603539369268567520612384908980566176104150709935214965970325966303392715670696225951888650326966195061109922851565392119341224604526906993909552717362961562157166022789284120831729452181000329397275324121526272509708308909670145726169751020423979178637171033531840534378374620501207613249875661767292673122993534280299784507262512240040835170668924044453092867188811072102599759092578496900376706029598238082622606311630226598824450887765134895413492049871919755926836595385462759107884586789923844479929429603541920289337524482085414057153366967296021157502044676784059399732893116798534982693497644656797587113418050642145225907101278333428556807315550420642799249153435015402142064844635016640321709034395733576756178281584902793837504280837129786301186854228903249279321649142714589531084118253964046175158108915975371755984229217201646157359464965674825103000789820702735784868006460726888383971697193804723936660102249420707485967739034209233100800489961890362638781728082690964567843535994536435631561196913248693049175729275753078775773910496961631600724062915474370228005258807510610800514573210572516179679045715620061922766166007461694691315796736738522774464673284802541053829334384823106891894383214202540028539566610046309946932593275545682514181028550267998363367007435171060433296173074667068257213462130871199249764521617587508020198223275838044058444532496808554165813767728516636137318855791136349916207555669635937875517273363518490715535498440409906828035062279436261710913490623874903299439748120504893201842392866804916289072021804348334967949660735594851929362734054672498262314515556837579375026250734083617889155656909356049212043373041624284283843279598454457213059480729282316563602205984295145600372869963754778429779161855788103914538744967225215322480128297867143652247439365987611429999903190321360396470253001724111127260998164250866034438004362052464799534752879161217431358981016961448377425929085390822893551823853224761102065407979216170074749246199740418304078284844897008697885434278780502739884266596788496647023457316846451899252366087867974125337280197056265994340898211777882901067749702134840928744087589504819276295681665432836253065758796542665575474692646463961045531138031956625202208390045937887814628377179038988886055592785994535475147439475607297110264203640863138307998774163340018819726119677432071005903057604260892765383327980732921197302650068881143453038685864178229138634334184990155835461279303171042066064236467901595664263145693800656027490721349501611910241668200718230507743996851286922599820708062033558513613859720510901176416618858438418837570900251839245217977308881996257763993176807440792932911341353579571027384034729466633252211516379374203890351435567977468841168617342103899587468290758683695423240697213070587529057670457869083898097129798647900202284787603749217056174090154090386064927419809587002391167493663367046809038499960094024657376357558926230883598852817861901022022762708590443164476375620722592062131287172512418842409782332024322408880653660198087361989463905508777359767684906845567809958836776740016454693293601788591904417460998681715843227297347090130146984528494272283252040613397227779166551269673650452471682665441443284045215768376022740666379167507987704617899570336568047075958018436749981298268462414577888493367780655972701273717514993561840714150283594905447628703411415910774591902911659337529917026138785592870064065104626985601314989064145593433801499527089782731947113467080460301531561133837329484921032885628845580862796697835770356741042891573486956393590762974838814276719615164825861314347755032426945534851599624614585083467136092372688224033274861381523612233463820307094167070531785964033720521940823384089397035133045440800882429709531499591584878224475975372625461885779110484422672094451871443879189866925148221122073583665966134102604147988451290626570081082841643183857890017295145314669868518322863262747063325934761663725077251968034871882054198814132482103966341996688815867481435224715648241210941758350921743912796714349574696449614838179292791667917550460178212653548209773266666945622622242856229054189228255095050286459246114687233056512657353172031701061091982510968459307127937766684823433688846688668590466075997226820908432984566077416377306895867323524294151961309275887876743986714030882239715756127312965622969363388003389157685355191145463041846992406289442945689272317363261113048408955657235043166120712208657634331106546505741655355565389851905609566292150609572675576030244668865648896081756562868203126419626752641794204340043121291698991776563623008805491192256601728176579949291909517109764303211001347072518447656088581905217830261464737850705947158842325448225173485510325874811593865066244943773366882661984542886565879554408324090089621946828427435388549550570110173747538875726617904097528630988202133440627579743769511094233179824211638450946044494096969042567740495709985796837762472772355852027434322007950647322312116479916836711977215763049111639494988434019890325573110068149608199047612697020578110466570887233443076624667805850879564453023046035883541667295658009454134528505328187024728795019459912859393223977195002694026717701072074553670038444036978202980134162469480811610130294628661278881826636350024442473267434241802888546257234994053593537197377365282816206176740823354267871234313919785221944062228041207200480824531821454661494587021639228640360793237337223134804674887353451548649950003619576580153917311473273162202094362056672021242356860550854956321424954642839248453830988898016057033883009828918309201366331765097831361858658958842316581304588597260352844849728923313556007325602536466091947616901150155744540136094470869491435054080972870654679697637220912088869114540794036410057325081703998450551418939213759032042330589907488202493478282297887137121976830932715317798062961172166646109653604258040789525655371694387898457357127860613464426039817899688529975470396479507339177462350176187075021984900540398476273786301943348055950069357416664768842158207153242808373655377499945862877587580400006107299411946598485675633033194035541606113923232950953510729594148187124234163788531753753996115134095182464582331846370700718509297484939273237814246723113033768781646979394532951126738331230296816057218397935759912287976168666000642750298499280010879835835682146302253390776351033926251478094455369856392532517748465920204264215598017311883341994385480486087725428809783371809391152420312414192126581871734799112897760460239917957174512004953890847400146334766192388751608982204508845643174630514757826376277861558768964714353171317925339153433449900377534161936497806283488089852239886653016652305050387019625883673196455585686252827764573117988942312729860666750357515355923829381091693628418584418452486276359275819429651451553271923053281328732317979679557413715404797385146240887183405167108374288661914388633446335316457640399102355356096797427451061707110030737535755166813573046241237701845097335131291809501946666667567507700077600820961722960655370288278851286804357435487740811866538086831623584118220557223623245544209325991314288597861653997965646969759092739007374849036171246014943551060592122093143420919841571872586315918418391625555667937861737038794575415530986291162294350571798453849084815373667319570070885990209908191370648491044517885698163112057358027599985016132481499485675414491012421096507035734365068671551053282819836963536002281015289183974559150272971656061529472525207089011533168274523713379293581563413138106385618845008422973900222408604662778725851125992137953189306345513177336964065759227760740472081617027545946901247239319194662851371715264731179574576095896000135228263923515672273082162802957144046036791290798580945006063745391579879583412349045752438255326999494327122135783152499198753329826050672181541844316867604499931664056222709753569632220591317112071513579501214674151134477931148274371152491728176480483127092717316695315398900743114644822961250403824706070404973653370313729421135442202319387844611639968771338404708860014909029545009630703627043513672703203961677481992200647049791373494329642277589183228192067351325813674523266608263432296584362156372038511443038424801539595893916943757316338947058356231090621297357023563324877477398198296262186892737727300696558242780624539498657772900292203414483297466400819662086392597084744466948727825007968854837345488731866882847042117434361940176347013594574368570304227529847653445959639577585914558341478416091489223615576351719561773811370811202475026549383427567416443099877981587218444422127299573895196513292992165068836204289357926236016971294031734486497612911339804929555839203030497979072141494928057124041735095157818772438735278740185342934610541898229715199375768165329276256875877805978030001792082144582112368681421564928252441408509726899272082444847007744891008316968370208857424906559776918285937065702967705663447954409597471707916655494324068405101529159314930799105851825160428720618418787288794055026472758694892449027013545694027805029149880636107641372566885725970610653056586816071378431925662238518419872272182021855899299395712118556401779656401342460169799795364863410219294523978255171363604896388327260592764326297898575767299897900470734867875454345749209646341319697745246231336491089237236654565029310387185157993746201131766881651131875550890750531356665477859867943407031699270340744110132324207743992868577345367303701746294609299791360495492449793746442697510492798319276409887553676948708732518274887325075895067964853330952377487508192172054070957581684820963613359088972442497051699575988070718265813515844742304209244347123548588084875196166800733088212730407542633460988161732086058033711194977493970898316695022565304135380559783410252826926825397070140436858423409595668536311033794202821581778976120719821733942402097923914023960773710121766087795036604876037438601775662349238174005942040152707098859328765325874779533805267102503951533891441326133303929436978286298920231820886126643912522199988656808411402902000344985735535485265671160457455995924730450584999723268116881035187201542035322263195133387213105170982239525111570903375368924032117549956290295192399783762980967904100985454967195788857054155514919080880203440059285249875035220747938140277102632407303396771358719056270296703292350528507403433937160454452465950664436102003225137449098099445152778558277773208435898530702209008480968739469916809060265382792377855935261577616363205054031479658235860791584860196074686291551169345458083746991749959113800574412565083130877665693142165314607335830782353569146827932233853035028765819266225277735173597933667857086359335638522156993783991589761680199620840398892058148622436043495719402461369692550277674733725585249312488775068665566515282258180042113166992292378576435832359329535809364432410388923465599548308667438695069750491693482837222508247124565996328027567409274156708631336331519169870531946127724936530145522595599102609722513489090447012990534313237440402229927223061631170875708321813573911865531902101162666097118254309526832470421533833344138912456352974178492300960128484118481581744630230471017813563051580537740958183301786426258709275862284978371126383864658005484699739849195615744003926136856032645415950261608440396488605730632181638594001515123304617911177986130716332331230925171487696979068087635036697920098118874748735908709265008429086876466293871380871757266440626896003366810824736810292957247330204591097010140865330517004993838112071188735684909506745800087046514603745008171589606124483585727738376088597747208803557582163354025738918912153573653789237257828343985376785741868143780352384525636643433691079696537851411898229145596144376939330523966277141479906420998451469991168655961564253299273025333904993427338275201177019347492912254090702237959234008724637003739672342312494686937941774859311924602623908495748707236788754643612773421318886520913708840625996001324117975518437150284979567535075144806787261329290609805396667008503243537278831126592677820967397484287291066663567393681508652490852850718243483225340550307020444368080376128196596370542979321438114824992499280029453474469619060939984932622106213495539567156950242513206074341158753227387853473328316352665993063299938816319055801020952961049803360036941826658177416487326191192670861992941443462304201235258437991832920059037711779535183050098020734645756903169826199959418936940339811018205732465607822018855477230214621308901301426882673412210280647459382670826345814065540014042143721943689429809776244337743712106390823161663576148575547871284839185595711763744127206250197044090869357706822587433844017455969472263259629694113591152312209968231138165577664000742283244126583688652627499556651190755674742298196467029605454333726914899948021767267764623755042666047316374580457163572718881315935259167225909740552720316199377198430003210983927454264410696583928152617867170456089052104354031348023548043737538767104971644049869981898262801157812284761448499161834167570484929801163708574641226962145753007837269837229404025575847092212382724908295201163807998637524834838926604819376410016871504417092149462331562122211543637526885121856292423598278245467479191756770380173668034637044565173099909732609487942037470496479917794356710473478877414355823263588245779825299543545265018316399821298543522324154606872285945327460952912063716746582959923483230550934881764040459198881398573092120392799844995343406015148702922110658603434582763113125414423014042035919136844310820737479459205893521767027920565198914984998758971955376011947937937283794058943720964041170821914149147616682250468746434937049564579380531688906999127076465788340132210233589507176428484075252604356359968510551969955283363201176954163980430032847828123034844490363134761703382870353229397282088300800380227222760563738004404616247438771488430967938574882964630338895047005865573712514344961029697300347649631139656877651594767842759857495654634965402019857052847863111788312736623747599736120783803255460564604202049963832395479514506954610109715108328811520696056753911843657262704954355210869204730638905533699671273546572836192180904703280075847510135299218076906909848000308963850806799831431815226543920399684575371587714774698757410550152762799864614306515771963534375899009191673651360039489362845063196729492214645577393959515457318807644889558961161680495633970696900875805403302127131449950843745973284214321446602369450848718621364894519659057618786262352408767179272267550359405796766404084764385581538667068794466310010705546912948408452843682170668619634304162553413361687938445545790244843459895664283748079158124594839812903460544012295964001026798864929685350775720367107921459869439298249698414132628291496131502618561820963417535009184157470139261220175279956736841416401374931057114582378899130093144783315828449922265371530163209140017974333884280060491295262168350974523965282096351803199962215074866634641950499806572905976932838212405172003266146386680167445135928186574539774301687938780458575918649605513407182960223120250709987019183736216035295581727019630097258271276374259650261498455314197327198460199063401282079602291775711420653288319161058066480860985093507001034802278077314710125132394687988284704709696766976230267885005885299251099690534536628250401360874823759515963339772314942584113108135742637123996696985306802324633903558573374244902424026998883725610925439261703283845711761751674146489401964543910314148526214127394267456746671680714722413305571147739232050406067670141650568726411850675892518665217996241286643862191725523680721955153951185304251620424350014341746940301816521601871963504717367974647434384472418504617981696512184157089866580915097275084723472807403494627038402353006093968260255548434142262792938763315011509629984123170720147383243053360360221189307550808551576021291019156781420444063576489510303824171789186116394099647914438945172945177807121984067691598912724464755851710075445387685349999510786794208986741607397720371906105363573455478385470619648702167038276010446553770438541762248162352091170793867629462875686447471452071965348840268298222101859324141281254062004338715911172730722462059769219041192571718860183947500729356528874889813592199543782079774455412479149749175835068021086759932281654919659359191339048230266545132277346563039438393011638110567216942536506137080921209029992431611126968121016509648387519346368335049838841702342379065318865311773484489346359550696236930336280920520421648896421867827720115420072076006992706319060524197907846587569795797489375983555035621465612605339534729643643900463349077940844258904600652102792232068119784650330573524735930865949296532022601010723065463099033450178458158086531436768619827533086499640676753092681441788567052399670992099047485895680306847019689674487074709485813173677357442652565118580299033873049612360348258434582543789872173768122400921405094582475053824999700943180036408753208322523559452516555820925304604639786372769578928162030495544399467641208829630474722000160519105271075175920699106194950796285248041607742170221421192817478665508776996766615320937266022368172680709580981323905537777900730158401908176793462155414508490492863551523392609409548565271627943988004096000081599159807164584696297853809436631968977311178750956349463239922608613405551332446832107125025220760274362956270357299951929560166253026918093691413847934326329615252593831903243108162708301373651092460811302259843354767148519906035389994024401601850646345464949641428259220320326821181413127466361649948519940674989332871112008512717534792632302479858336058211793939740483351068399113286099218282650169976735048228688212069908742365813000182645111731784015708217504291929275035916359009086528480419979014947833402759512807095316215999200548986349640833511080239004702769493850869858825290821852919988960306925594617947457326350939067205185276517731030942747936924357693630024116874018733961258577732084997993074764879399997775383614293804835585763227544220419509994540743994321675521042332076837124314955744010084665928298723236096788821950862251497067657136913494586447028604166522521957170173686139758601640957492263508267096645490962806084893798198735616416275803771051907410718015205380830613897193411390019177546572260135469941858371600113432852198523770886081976814932099630226626080149417635891807702816977699030079393256165978263728739206721253506555923493398067605662700771483078543019104969723858285118078722235891860881402059358866159630908832797068273548820341810965433816922798352979723539755615083027000303308787783205349953147088882271251793690136803616568502514532274198031082068692376634648516264453412984617056404742576769128014234242397423010391794874754015315523757253527583660691865169732051685751129554830150569624124120821797769362649564238404271689229700963478270634595759960043950804398319509793006605418210415459729803344100877196158623495474494601902678246176114983619712425311529427567404716395259237413134826717901284027110981160051657013500702527677518783225422679905813613120755407995095062906365624683256384774270541192348692530875228960825852099990864541816566942337706550289392677628742330100971636755859875144403879795531053389966576626919029759999245495447801661364400830488953674072871191042266528204787256440237642531940595982319948423605947632863930602403414763986874606793050209322143204858100459904715258352574863041124328518050854498187646165513279433632298780499508368562980979641274448989930898165602056269029985404469786808013903276958222425704345490868823029634877695066958662336628404792283006917677778545126488972475643446232404219815049189104529865889604950193250633755740494071614081113304833488151125732584012618211592578747717908328778209818165036096524900943805912169356175858158197013463979357740991327058459730074097125216636347834119543768247588192053309790418753383485587909383212403324486376557714300489946908642680051249094732399406283272101761927854622859271102660425268548912438940935082432849406320907913099072316636064868656193010707403904915303215868834733152294602733064998961007174046834111436348183221334589873194544794601608389982329778689346921977063789144975665392984451617465718054926801829423714423825493461850667147022715225169452274011086377436623212605966782098420400230508905223143961671492695575576207060177269246964846342957647664907948401972198372237259415171630604536063476175777093873463824568377117583373196477076127589084081440213963539096176077452121512288361340225386862149936501519779729645579424549082614865141902623278004943865773344394164361466951203445802436211402665122248422525768899709887801384356197058230010767540295780115556927515402071098051440488156389461156800681066777195025290440202798279025008019600439923162666765282798852187227679407452533286873567429144519423163032517074218247465723709453880364535783453596214741186735686982058485172891124822072681994232658236854346488352807891808167995300085766656428396715594123193334002905328473368469601875197676258702804852228207205572013721554835459852995308817023917179617105413785124016287074851567255803204762801664773132006102399617536357371763266373225037190004310876187205982896062539840015830701041517465267621513795886511220458378115261442864063474903217897877156630221038745073370264693473837266746253586179911018087771146674104319045170071411918345033664160042282571669740826342790700188684079442969524226199446068981529880190649212106541505608385781406616785436221951255589618313382496319570843740898269733786438179114533429037143699652519736147166012918923049360381361401456764521513566892041664942022171828954772986851906096652471514046663139338761063903821651972193143545748933113279126645307102227877808865652412497522972101389939373076211618837297543815897059219937446096096996485028061656990766369720607209901635852139796206204083411985031104937048679505539653263897813544182205055522246431702721226130979137150951971277035840980265000923009128533998891260305033295925869827580767017152344214686255715436901945920379282495606776359320658766269153694168019739831841913364282851940886108465171270265356299780932801547822230805660142684521237108499633795876077302220045311216252386970316618202619703882728818022251456084044766832041200879796810052016468119661634775718697531569478977810099754197789492264110161404734876049237304716194538969869814924127967456596724728190646342150764665325644358674983011640000444744274700896146796052989218320443258397100547040455980685033043932980916314061175281238697467123130079530523647014861642658743190129674408509656889575889094444451950438508701859672832381860446723487531644208641691231762771850043801230828812196446775317535949078818304588547494247175397653530146579279563469809083086134814350018348851413299005903263757927271794790417937704301844893255805659057593973427306761462502528964261503325484014922113645829519187946149553333249192918454909348640705314052469105978701568924761620813221032668429988459698888351702390377057634493634353556522083518666863071534885024818921240798476621548633952150861015394449924764973683213505517376354300269281822432842144083325560825140305368000653462120081609369065173046892297325890100509508327952436472658770756719187986087931870941913218636402286306130609060669520167262562581029904972596620900371087806450662744555090181042015761611681847325764707834636466895356540113268066991397921375466862484018884978281000914519749661790951930416155561910312014258762386146314372073486669235625081800611935471083136542952121748035759961137365320140762418305964971288855216048348115297092781480196054422346524335934470704794104269059074816897039785794330609928148216300508321763694816932633201411730952643591814439109458400778568548981424500285546176709099403942233125936895886262896354351986592629188136614438261368044756920654145580189264823076648884280961910834192076746118243157152875004238696380572107798672662406151493719635881043634988009969782515442471997871063747043378464595328568333121444049627214880386232370085776782863307608088534730963016486778767039041395892692169879428622441299163310094665940800028996574599563461019649466265026241637482003612795462028058056639061197387093883033375921859827392894966690138515729632616496815823450717657172142886641836776469749946631646540070592208516166619201200738072519980151228304909733287919694807397348197184802813680724437164726384121541552713987657994088449835900043292181689159895889318453158391868701975608883462068855810607510957273851654027348144633808294359613135002641542311243140981280375486370071836559050393590224112525933962524372874566829132470336237061344383677394852075170993846475551619389468659264791762141179349119293430476615783176377153518645017384611003369714007560102725198956816696672329412522950777276271978714380214587493144927723678563494692316762761985443755055859783238489573197492928040600553364134104171245729807964542133208108934167715868415137364886071665621798343282630902719102282957190824123191448789836461902709310492549380169340515853434078611380873464413023027698872003262606307935874160388279423977842450126712232143361697162559820518442190642279818607191996646457685674342632003761905160237051637983107307294441391484109582627249585753170643389817450303894762901475047903978978250918196172017703297396097903496032324305261272475473770339824915252939996468353505126713588041863809039687960886725694385298646615435554969636345123862937913784948847010594413264161085272444699600140051204483756583858217060582781880482377981162634676494783748618000784640777510651892985612828776656012268029779747754868131130362467942729838592346462709199214792087154959444478767510581484954505828097793619415830320401981026343355036974109334845962233963622381133281221620660671411376139078571685735643675643276477660414927037214318064440413753863088387343187205108616335927805960055372803236400584454880660922979192296721461719748779166573228033950761363516437457971532117253913355911127170274641899610733621731644704893855842096650523820656457889816139670301794268495308082485475171490435278579905058439981859745173445730528842078859181754590680751890285540916799301958106752343288360867861936053301739534704279169648077864666781003784671354412369961415724560360217082731863889413682413253292322026715429885520928536650849889585853104519160305192342732742114132534051279682495357672066484632995417772372749420114760808295039315988228295705932430261114737981709864675493599679611756370690513307475203708993892669275873032646486248912507807623689529876278496535003416920602884078117086562247445234760757646164145175266168761147193352471393661555595102437821356009249505257528759996391971832866323767074942198054760174489735569682837150190016306924973332025147200253880317749009216558737618899131122996369002706461384260716018405780917064952693191917288985444293652609273780529836460213696123170307277900347195291446363224144697063542535682831742229168761393279039841917912179419127847626449770193343874323216196045098855076251650088481486542434332514223560289849920388570231039708509449284916473992512015344665499193498471339324054245230378220495162780480849271955627710390183747638528252384849861442490854410817892293720459839148778043201348441517919982067362930878415766037072513888506598358534343502174241419045699192064734610726918288936769158351271057245702505511709180333167458436212951746820550951078512015418341845058633703133692800601395348146464771932950959852863934588656984770236705408279215274063230316917983134208341661156871478105043866551728218366137714496515093962911785885356149357863024362259673604627664352837727402492897351335022670445073928722688508852785341248511273859023256077932264830113026495740623821831494887900218326605469216720226948603666608839715451775717651714111145237359692785675827040950555256064569902148160711060538527721295492270510525662707898499687038261671212734130576307238170577253972394431992822827000576251466819690659944172860941647551340792947171775777135680394844617512583381153731358666265537825691460903085295552522091241844531292271173234460918593388934058650412431455460440048425301747545820415134278859461137479437148865674607890583033622453720622879696347762750605071548888748466896451205817841938765884913003728713535075695859004293952783176394833841655671585721076938216845929431492959544745142243141404128791925992933562502989136113659844717728765963809378649474933245719577901597409985266943797731863984765515147307319541300949577402356858618352779123265430567017098731582493395725862547884102622317561513455893918361059915957739548065259250753816852474398969955654149191746716726817099196130562727575537626452613716059577519865385642864413673412194708757930118931695527799873613959814905569390467990055719100003315968703485427948444625245514559688919594969275681287777782686647108533791145724797912764142691324072166799519618474618719989152786093943056618402552484040545748411532756431584673739087174573675318995695051046378939502226958616248705603716323979972019273071764915542958664047616077751707366060057493804019473704089639697913059919053546010540578590970061830035458224903707691605181755034132720497654677388777756209722350492059533362841709729636098094070777469185063755825040746429979649096408441188174740835457134672699018760097276684720462579880475669806450545112825398372970342722184298655206392886139273739782858768970256322369295592347671353953283923126592048870589080703238382921006518250151308336015287852207097538895098449871683651430410505282483637335579518984979067698763647886583393177357734154898508329746260704409382520403264203151940578244702887994804887389881736293915578792188365930001820014484413186015028508487803367393024623923018324173432789503910076854508961254688483754802464586626476534332305895048006030057096344827758064872918998250367531110616490568675124134750479705527934690284801320704920225342360285142144101175366141381018228103003232655196460447616635541408733416724826132236940784053807381223830653172743619640993474557718400661128349958386721042689422607098214347032836671551296335561078546380090110375547677049267073903728318189311286441468489577299680367087648449915087972465681202189278380099763739989138062616170557415106128965903140167945492112079520908446606018137370636784247843947108264867070801553453830436754546416425861182254673596235770369558159660318623114867554696591758391841829171436855745027837433567714190118976960236449910487336703566273049975197590945515701909707717028407121757155521894675058555098834182385401188542533479132889747547006563233838193671574506655039004843882325072008741512519705247420111273285351379244628831725951852939409854195737647990296082128332032877496078850471440898751042703112631202214683267482934493112282945607399998917897650294447235574226438297057492257780273748737285535515089302666411470123406993260500296573303767198954841838569797312895299693223905627104581230618850859308599239307660125800886641451014004834022867292261959706650811664252911643389994017959685775713692300107187925346380141538914071195269597605104432138014610810571830548825130063007815794603211576032483230793361825729498728293460746172888538348032654546336787822289321096658320973449013729594162268791229244870594766746607695486189446935835021041589623970328101112651137654388021613522131411791050659248929269544959724061222919680313987010013263536906213197021118026476625372999138240367018430622057612792613797769490050993531492977089952345429408478682486700590970586488445838428916115674625373286255054574531352111249198095018796030844659285524930123692411075806887691434137659947838223177150626863182038344538269034339282437941784399583888219237938753518526304817975252044373985925974678795227405507223887223686086423417284102515787617490984241379446263863148087968958383958908147069375424590465314534262084279431139326054530265533515018490176458387062792282461790015403874132323340041708555752639012643239525183871855350123242101505387382372658849228563004753707064999998282928355011681861439692158670292971251802562788055027840215084700327753896551303778153536594660432334503173648714858325499529036917750893948316278610099280514958899394328487274962809227335635037600865639989823145409470966237055083926985793933186466726539695592463092429067361676615489055124128907889406924191360652484075708410194087602230955984000954646331051345628096045974976190464665824858579761234756538026926776756159097063559535764228283363048870070587260889528271988640736011546006160598541470807331361207109461780113787084290541944966489196664941921130409913960920881588592791632854652324449493176268348494915951918679222309836454561345212652760806541499503792638523274802092723605370491222694264851928286108978723159498209967422555302500313696563127431468906697153701784953996093285414546617844296986248493318734243545184331338717350718674145802303925338546951721751176860204430891437625129797956906198925112225064642940228000808223632508189747436948971474386556850438644729228794551245871348372716402880738439069109098384092559036766595166644640816809131169150518451882323274747843319074931807988503615304487982466385987709564968490977556301905654369510570007282404787179339592215655533825471256636144796984486819213948946112271643642493678278340388494491122238723484774435192090031756760153182083023025838643590179983608550206285449267110779229865043071423334334296808168554191274881846729913745923623226518618945316328632704238005668971885088683605180973492558565495028015933847706764509161680589943402474884565415630189267310728498012407772805557418782853574109161955430355834729535774988245378352577035022800693810716031048478013404744770371667215063031160829585104245873348870658886541824117234002159195850827925908041548123470165752859004334646265906206264884847270431079139121617074686051820950032461557888907872424715813394886847003403480253959380899457948557131113508913339953744443169404718675890783365131254482147548897862483058476783901936743952416982828220546931485019323868144109432968625677629275151825257233252183042955633321751714879219011181582953507609740768533598075736729941611393087441079733728654906456525994032393958819519302878428562444407173464545877568295496950910871409467594897722526759973301127542362568115251904703375596510427274122350418535535377503653989026899186351507151120953881954640361753134603480149903775295748858416087317039020149997219678727531252606116654521544274320168875507700001644223474819875468814347805809377322746001374993906846711720874429073959342634227865720851770744150805449895278364319648529112717877690086996575031715355744571763732350743584975106599304511374058980700543497387894576414613447414129272703813624918658116504478473909774630509957535474187069014795415210559078482679334556355678692633052689135623638054300181270410041764356034484879032569392359056654966528291135674519220745222052455116307557103192482317918505521222579915293562860773830910877619716466665557381507737407125275965954561772654531838518283680359539212562156134770066472614512393216974046885156740092790353439747460878396934919891836078997007177511654927109584694719655947320364116635847760081212617995758546181441693136739912666519081655812575724147198656729522619638522522070572270789710854835995313904566057210228712877814329034902093410393586992128333480208846583576344921959721396842946166181241161098932186322518777574674688945834409561779490119018970478092939644212943653373567523931521121057338719677766597063721251543662021067220530195723814894328144168529041389693273000431231078123387990447077500647450526429853224402938640769041803928663018077016105224774840731230034690156211202021450925689362653519047811225826984031780369532674104565250854137193223638526843791861873611186548841977302267086035190381191384740900931574235366817003920297286430159180714675756105165988446535573205587003662939520573112078371977073578627679840590374866931166622896079138168730130902330005360529151323823709805065449786824662517066468421528301727998409709106840342913833783014719368629216747403893947730609195013970369146898858833592861697657212833262274850648342193740316690348028506885458780507426683397692224120789242748503482374002116834666658168659720094697188326886589989368895399299086994535410799283063297177861139864150785218228040873007481055249091500535001816299190941715227683024652207780222015585430811965536812404414702552116313547930159921255032434168050268584126299993528777576328595334998244345085604282686239792717818291676408434403738808752767283024945824037045467998069461208936273849149353104878151162808928744676670504585954656294416552874747607445260155013999157987137128301716038971841398698194303576279788289427750626570518342377466143722154469644012777087777869999754096815913641040327034195137974813993723994227580832037158970320073754100174112174451500129591165295024907136222450783771423759871140137674782168553048000461586694888455082934535669318898445605012583412616113677585436741539839233152985142833947044775049250927681705397794150819880926258232949820453728493811102274869375313236494417452778515202455678494918315957771441666989929546165266395323896294778313031351022597138796258509755991141536234442250859776493330889968882996400983013936603469548757703654305261000273392616128283830845334952870633743853476192104007115812448116572539403775931046113131003284886245702258472942094218364140812273070501652141300646739951710924671678969112703683734035610187435749073804252688695470574728775043104862305832516631752971511789178527941343909111435539052334794620826137974293453334074211343131624302791731322372190414239394387275899385038087632136499840559425774984804157333846576019057680208402552155633942063798246545656037728897418501085541344793199710686239349957776890133587473804601275598585197115190817714455537528932110911029961304380559504995893803710614668450722959265879409264702211760636964645054750153583429231464315153305685715579786840510579728474595044372076903906351738413716917592685824575405069241922468132782524598229537014813394523279564428879638862172597378710024252862673071506067970680548676333431542917104436924891203797136546844530607271915229057842162380356024772120731129161290422367064903774918289264387099291056547077246072341396750961055336866640450129203930895969917945390680458300030310826436359303385442629536154603502282488728953759473580547133250916093256892418593229340339029035599180855424476018766325526280759815399152606757302611652685523458220108002160791807516023802286277910412353297739091972506133371567628172728499613350258263446897775095775630333365498100592907469470459706375112879081900254549101777022119119546453010642797050886900576923562309556166765633797399643166914623849138770670526054011179171336311336535383714503029615399728181027604585270670999854354964985117970173704933083612515379774159711488472968266151357077945172486951632750960312560960988536736646530300016783702868480494449445556876234332135040469667303265375602118548463031671931790806458943797750374616211418550655009201414298794090643847381924101685225707854189526694676570121084289625513827758625480924355224328890756469015694819046100048221597194829515434842021860294573491797479315831424428138468476034576276912318889300815556735753907364613731352972840313962194201594022700436967009275792164445430842812730503962780623521563915132323128812410469132054464169226689374697207613913830866803287917072127947614146795690473745829955121626698582290868267068685246160047543547363767150438729857443773127505692261192051517688741234261097667930974334721214306575041926521453340213630004170685950002407233489757804628816151209664947420463980173223184757680052751035148594619762440080416124278060486759871045237783416727553345920967077005814747697833624899514477667346354406866683546580173038051546599034620848968826569890427912459617227423624091868479546645066017822913232176916464303944070425428509274050706918778000614191463534037033942919494614903928438018775747438766320062610047087894758569418562984438255537438128355089123536936949041436549922131551456553490967375909642791884845892088228383180425088718292180248309932099027698093478067946906539357237087966423596130856367741040792587771575508939075835783118962850597432570043389690293010734907299337230482769622711991813528890802131483121395473096333891758736370708938791872733434603734312956503701940633783608308704941060181554672592199697298517387073607656108169152399701208831315546458957478299219964145390131202221262747886956332031261976433727704382959771439569414660375657359743665496287785808784928307264288137394073793601683090900621682798099378039188752381997462626308529699468487336589020395402078980595078505260999119651041431587859598675881708125489312216811876090043326286340498466053309221698990776517289238554887758618655216371456781261000697356788301732919433422960877909341068103905116045483547961785433753508394857558309749329852224326361071497238115091613364270360447939755854107635906323631254066752618034501186052792757426735994099940803013514488760981066225116216341672656939234102645020673029059283861790072668003212041037302018946929259756884412098840983474924287680095469577549086491684498852668135323189977875594507859446364449576186254673076428070195874427635997771792887428485864135767924625554459330313114637286374141893457079980175230539078175523973023167083891048682141328077468707937266902190154085160769132714304795264054675477655168724246394410204913211571346588148391547401824502050421297446843229473910638314254019347435487633663857296455487733721474753486341590489567158207523022175916696553219352409483492165634263080490697010423773202493919670099151920653923994342368667639280551553747510774372905094232310132828209557208771471791025066864318036422915290661568882412502958020786212860930644590643649901834202389186686700763445709821634066400543282776042614210704553296437396808782003323853064031065847275124471190048118762479450002659343087145658919735907750355932811921433042089317507552537558800733890193664499567104463892904851140189231182992162496752534005801667543859319994995056981576128433191131529269936299775453037036819215713817874972065658138817826773176834023332562561497283872442005548588635061155388989467597134222042382593934222428082391366648535050341485876803305468433150808051098627770074818837798463109238191934692173206394526203796214064813388247341181336880837828886950547256610591502620573288197243660329263629306202816068519044627578950857889791675813632649206201618724014844652770505470223916630004017860192392283277363393576001298165470015624060223062542468997641222363120528479120279420322831922652066695914733363529254053472459011616739006919532631519872754971975775988372900345831112806973157158300017995453646836196188701383411314137385781137549657713600552204423805745596769685366506288790421598452001399546765160629571274308475699069312492391852039497899130219950231075982770161798436509766768219442720655621599217344339371398770457723808271028348770702902135917040913369611046931873338074528869392115565861352369067374764796370857294833591867550689739386502019599222280215501368864150488341731041657009036944063442746111081531237590184575433132542465817716725150888202870228538658047649543560305461751179859065497111234690891092090594430192532134318033503724944454755685262623043378039994960516849458347044585327977513538998307952700746899676010777067525049632602409865617957285852536410003823412904701195267775369201149992764711714936594881673161006202297841127900511583587135971026322720505617671122714662411564199307857886326046211339908337078788751260333930971127377670930229860337765232134397817440382072145626402538842525094158882781333439332969813985545555175133467358459313727546972254358427619051420409495232703650170455254914864099660106366754824614718297387474913400201002618226391762295124007992743560863073508457908453730781021695205048587311877001637823224981028080060870135837535367180820579997100186999654976949982337563473112343072524008168072014174311369927781539328442601053971471616449058958461452155956177972731377272411487110123122335281346574216017295200592671603266685962705328721841368299959242623045448550677163108846883545384374413412959287036564078693530650058684842922784788881084053470080697732220415374782538832602093637620909621394283729083059640509838458199362763658375860931115897737792345228095727835215438325012199548587970784642039217634925113684083644225296159363078732579265553710287755516625333642948899680099407569906721989455730317317409350459265901668937385437129558463383776846772973036888354229288934440289107322676583204893486782952094396705250360390925228826414265624074135717953988910438003523286797827540587640088508814615452447762841142605902638023625651302188208766575982741640957274338210282602152236811246791762784519622490610781162916760541952012003627341291235535519958853914935462515410134709548969493366022687220211487889315721293517547228905875530310659501549461828552546969748661973493678470925157753841056588106187060015807849085195375040409379017810223854124601539174880818098918013686131707798389889256614517592776424482773842219696301577031216821466080891082256276532543581346754183174018640735520342348547503879373882312423443567609026810208618635594461538287149116488256655069130791884231425950794740301809569695638708778311109149530024333758636258461249215179281716228060523258800115967918725044820792929264696074650287016813144600499786562369986414594030801869070089797346613421035127517557008262961778655859707415689918150290265003418260234065110953410935329929712755809915713337915907986044114054959595153203952764812868807361759435076914571776799168532724326153333659442908243815461506105089040833020813463106197375693310730163202325174294982483423483657664119897072020030736860625696117740512854689710422735197473177982853733724812799232499197933882684003856566974117657160698985397503630201456439009022458247121084809356914209975330736193895916178022399228405707549414072686328736490847829643862624838328278514704223483018134830996155330780767809648399175018947917498508683811929128933808389709808507968898812367790170687091311134308836923546322389842569914777854903935246770809426232680802996160826327244724287483440236474511555760138288924936363531627455283491850817777212923310360818488011114367820415668150416712045557097438714263752364169032207828540038656825952052453305230503909645785055153680333627524377612153379065954776093919930736517357895539081685663917439889615875121587330786588097726760797212867748555386936105354362140713457136822298049317857970166545787659836269237423833719758841705363336099713105724743457245709039289113467613762820274827217324133169386525237288027674924374852321057505400815982873764262797967167274364334313190611665655545114770509596790513821168186412572773615706921636071906516818204487640625098696938689115801619640530377138808766903192730782372951235529541744764561651616906566375763044682212813850012942829831829340593049140553691368090238716972102735526966724565883772773831646902117302228830941649203267114581212705736775738261885127721497753329371507646280749250434432062302775017617111373374463871683794173524758573751046114520954415898280713726947473469817969216955035764627138733525778530251835626813769016856352508108093527113801253039276866527824999774105967863957486169356962961482398827656016948033762915080499829640366867329631950159252144214623210987086305841778304775188755728968958480179832735434262255636505573675982833948163149181276484935834906998934685673299836626774222851800901069437455560153614821332569194039782607833634750120824162247242866739260189608192856947379682428832120831810329593922190493716452449498550291623188051951307035801633895453466911173930648201256382474684845655704672293626563297986555296271480877815721561896499610994042468058069989174273046673595020934407652248603206022956540505805091253398289619351883297622444531796105107562407876804148795770523706758887886317837808118072225853492047244914306541226783331889788597724991415754415806259966578558275697183941929170788797038961138912481877106977313742795453100333207904584269790351544979012485009965736058710515075489087913769003737244012893273382630593765056354316554643815894773338475167438914180096960299610296355246498970965036506187773310705520024510013420321277785903670899919079457116902239160103949779949968425980427921011652925673026315235570161901056421383980480860006801113990339580386248973728265031993188117319226300390297016809779499150651057192744099677614602523359162475454091319045198742633070750604992202502210456142493861817469056563850641576635573814128851902320304524017678312062738663692996450611269421954281771209025147099076759174196915125045897515424652323503434609619318839254276935299561393589761552323962611005812163243125487756630097766637295994235677932754811651333513757632847539657336215653428828141302755697344515559029642201155811585580381701487183509044777686267820926051335016964632617621735714248159433979811049905277907576077871863270715970814926237631690584360650197023571530329934730373272914298361856973852627210596740713318587356173338514857083268526536194974119733685435768898934386940512423744966109286922257508759879000099753770986318242175366288442571266196871328909971238655482260720834477305288685557274825980301240134950920849544542104447556650891837945461858568958177677716561784280388984092495727996982095047108803812453367498961124098980879960306220085765513412755661536341337021307047357546438984921814540875134579617793155066138713165500605834533615125184511033542101641283791388702470139201374565119877796589865576661998471762074172890845389978595334390481707935457536881215097618468393368775406064242288656221363305687772241154183775375589049133229290829716956788400972639828076115826975255578667873072701139491804114487867965839668683166502862685400518579478063174450859815793298923661156857975647616858496176748744067164241490600073720925449807265296728823207911378379530057401343345161359722137673768696517401737066708204631091529631425213404182095805676408813387636932699261883299983445939850660827757845432045189785633530324191027536785352179712787690645092103428075364798258226531442183231647196978974536901613789406463945060858206293682824569039844195662054121768542535481182294602716583080218924098973740211703946800353413247801128986437884790214823776130631896188954354039648047687352368882255300857052734109702366290206382202031826605459313533606153925763243115095667346437747807426266569034235640369808747369278623628241032483266576791918048028620547328287888177886491021913620300764838173116730356260884911553942213887947768397823040062065953516083019932118324182188767029495235553991323267362091888844055349797726597227953018466909164769515132303646471444369395901377421144627009141973943759021137623031259155818492522782697707726223015321150115589185764616521749956388102570715075920936182189903653101873299235118873596604240582595748413762983261845050495094398294436344180141119989463341103183425156429952564696128812205761166773561985903640664759695739117507006906589714511400976849847094564479050543208586899919587989766604602046102624939978363530190681426139832507223247227133553567453860842769997931141873493481872630063024607155397059458526337043403476225699742032407939492013922592384726311673706336489606403866287580158128161306943444404166485984606623217740829292435988076851339211433012924383767360623542469181981352837008719775145595002830498448236320180716776186621489937274065980793293336488044810123627452259092757841328874990773821106835715476876647986168353250170530835048684282427612269641646316254075573718264986507417358607936777073631079944898031991663131306314598368682208108489454795569005406850671923987805787329065893743443324079867065082987661367870610723856143302051487310200660560324399265758351055400126989579060804057363907463930978552405296128432094771631372763305305686937945305191701627902834143837933535311604804372105696348360973785299186166089394737074674637465268370399630360742067078954543338369274621673007821024568062491368437582293791684247724683816844382351013161066613323817604023099932975939824837942221768779336195595680032413206279242141276199086894966649258397164636827976031555698390892905061548637184457877268517218904109282338243613882262143980825494065933077691541467541334200416311348221493691123990956094122978987017851554871106877169512456028555216378811412043333188404179659464764348501291239897862488367292808138263611110213368424991718940328755405450115558627317368428650560693825721784341854295813311431816683546252842075038560524951975941583270979952849206628224151583230534550655090029672618082711957278443632993770016433035592927854204967687972460710091279950813850544969912301628819464716317705431108973466865381106141998013092253245888545055715592828281418906906468782384538280586678381399961916885070326033909781556626923985153566354892838106427097375599946160046477165268816787121218041859757647300273209620862003820511846221603900788245667332405806443668214859128729411545228687433244014407285688765709737821673186990989894186110357471820906852602552700035872370849625291374999676702853108718534033584662237269120925770494463506974961797760631454258205704299726040436950344571634482880721783637133675447947960329285038973260282373378369038902439253664867559920828633820497199941310298147560057106538524020611777384617868879827997141212270769238635778231636862832663377948459803833044502896719740589556364626263818769988572963716916642610093645868937091521598786268201792333609641953771907877233744075376363816661184659721346765227358878975975789903032536701122038932380778660373412118125894518483437488448250874639915726113605795525448209182907967643816806606360522159084355528264236797340794479983726729297136062699386370748116713649291990335211854723809240952604502724426850132993539836966016463104564676739311725013664172867309577835169583328126543796031777597311058949848123858231105789685080434101468142974546318456843055470191717517790684849027008166000871826382548035581789612345293638451819782612549144052292155349284090272596952140482259236788384361118904648903211295309390063863907611791253439681254471885321985662044484126041569766730591903677500347233850482165207546762543215342380164623246650903694170847829788070570670378628564982603725616438690476162884267690248951433999779382345125552881320504670815447905844285033846213839205728471798051981380979019580845135535017539669131282039923477365716285264201273100841574224126124676451778036053002860204760758757787003541186871848486536347627822802793372277057183835738978141734554619034866958888501185644449402801417185371180594503943310954971025231993686392714542282983040972235230927597451001833920037770907615978072277823027725251202126736211329000306635331245859843601869488678935318524713817234414088764552812880472328658441331504133199211084449307894013631418214555444728841583722537812006332211914409318909660618042549451953283710940790633958406182090283839866193728975642872421753133175032625387209687809697885804367471567243998999164199368591876481783146158164156591820195920458737538001513115609255320566958879408086173558463000845795406981132744292805634300439897387956800008438945531943151739901549924027646272727180760382703472996795364506918152151511530786583968310213766813820458920700633677025592842003447059552805237124875976178786947483980837890985444639223214678323589632720322517354673765467079080965961996856013686267847058937700069260307184099438733726436052629699461995980536606603767788037475634224840572890274663263019108519740149266321519908234836392843745276807846784406345217217024656712760722822225504035471706528331402184585445978998534689440987829017844926861559727416564143784510538298351806564951158542911703678629126561863036407628998140596819162179422917380618780767824592560236967316545895483262026691533669219371247158392868014732267462862061684644671262076901406748697900839701126501716619800613870737352169376351429073030883198569058851843462209309765256645649257681194764337694762493302978268373221021547510486402487005272363082771373266483082000612471904016632196372414335075307558662107060496845188152337975422872818895216803163469015614110114022262749287920978854345972774180729893517269108914833183841877422358467316965344177966855532771909672020685751509276481927995598591714286459898058065098268416082130304744423129321537617711203914275812177299068746862366964192166967043394658453007653036400945186547039803211418828581261946868904870826944536318299968021268413310442512684757059890820193275145921822418043774543737519565130572339044073346532056098968077131724165688106994664822834832829230109922718803096671001065735859016535213858618896877290758910495685394173456286883795820092279904035410663971439842380625524240117019736414639617040514587022089854756280972367218157183870825127379192566576480315350566417996816241748293230475247141895488710624460552227708660845215444006325694923676497610658283755020788740361857209034460360308785609917835518658540524387989891109606190727326930014055300189062120988243625450502040282244769461991590796128204434248584595522512339082164103497770638672413420335645906115095358372866653758218905092715510877226750782063930950789642785500251443479933052028857339156953462343753231979454971339270166613891362777367864252825032450157420232587557425847646581863829503465145493537122709537084257091162463609150749170709780437754053393259143414603164478718859724622621664038224333759750691868467852338285868780700949957529197358465713864394695952390234092473632044720101378885399883007522668962052428536206146619463806342163225518595906310537075621038904549843614454723422057683629340879078731008056044656578925386950112823640049305390338488548585843674120305599668352027817382593107365127040342639124741171366794775135081900775066799535026152220013468294050681433565411948171899348899234427662145181435843202019363938185668130425087727336716998101942189314459336443752330081035100021877997651533504647663564719842176049853935661859307328460304816710729101530513086830370953427116755978033305760149736927448463040285286432304820244289370176087698255951965954827792170278463329503203718566525269310548730461678092608536455795427594201965180718226928554205589125190524381368508427755494871577448417133760335057258366436833976734109412350053397483910887202874813551865850355712190894748912566614391037303817890528104989595079822545926383086584341413967902644756348282882541642029108968414949196014097443107744665893521511870389094995946118851283140061368315962463733276132394255009438851150940654968475413482811810780457195506071453157728636350333453658802667001691384404451059728281690081756566831039678930951442242545717690091719246347594277931884787344748841584860792080169294476631205610058927441075644342276601384164336774725232464628142454797185007157346987574563847083904401416055807928912291846463230824278905544241154082246098668990800647793215250919889438345741015677356126313152588525277898176523379924683890684245912324603370527040557128532310334086193352581581240952133009471665762725499158104793958694938890246204342259163778775936922420610999232277117778439920219618166904756272827552164856694999495344990334819133078068196005295312688399020763113892593544650573649817173058831019510004408585816223237700786984264529344842537388172364725950613597126482489029238889939617472815575696659600262845492182197809301890606335426619732810098837720365640910678869365620810417244884819722600580783360571743869967892137547875397875875204235333749003053839513604265312863005575056772093451450442279372678184593556279383092953703832605717835740153670804753756734450639332476063019271943675749249621345702672569784098203594732362468064363661015266744427120169688160375583873599156237018542695873570788410764826979671485339426336556666013839824058593219495135440986598605396361329980316491078008224039509726043018171768204438938316569673937094552300510930348888560338545760624427303784551908199602704135324195431114154734947040644530155274310587308575819346065479334225387472216396538719509496268607780494663669228404094259438382789519176838191837583398529885019208156854426024881310234623076964802073559358700464478913882105196858983492764895702308137971261696629756547114550887716200147488785529540001084287558196919046265785324053745740809329610492453849816773151696509577537030645686842998767065360096996015556878195096888140292752260547843394764099601232170825172585752282250648056059898689121041118959248923553008627950469046138950800942864218876376757684331376186309572673182730092218402856902927152126419731679239490630368610347691957699749965188385057771512850049173142764618122559023281864918340627612683269896005378369031797152970879910400228014329437948473963841371631537481744261539593448272076170442758411334338915458773647263152885397328837405602391619996913704957752753524659224850873810163634732220861909328765914695126451695651742724418635307805564325874784350502225678965644600323770999374753512481492622241446205503020835134473048538723067212215211926552220579646022230947150219792997434460988635782741781903448636899084101634341668721359762936495209471915189317143171018473682405445411244566229036277069604407390381789316631176724560682118712532091206941067446793172996301266906502289098306761668091344778288658895110123127118216581528182675357867690054450282923363815376490625123670827039566994978750662293708212262094309283036645216007058584668639322196568347653066914246216239537010142046865648497771576489484227724306777059159940528268126392418335855546612996847355544932965805103301239119740513693073219906100171362915227575376293582210151403457827018230441766037780285352755556854766712541336009278721700982482998953392060533484301996683027529651310488430792072130057591992990660862112468531619555693950254404930356431244973990991635114876638497400283466383600055916763917670674231918147877519125446421900889863151981611466223386511882149159539148993323758589606488689478947525731084719838392790942610406715347663037611031690908851863393106001350276901559744141368435551695749913941630980956306731168633417355474026066169714415918161128539094686261573330914319484791383420397501243000672621502188911668636686688328800337028512956897209488679274017420738933568732211901628349076202303955416745943040963857391590155532685951456018711446347246578183592833856754239735361962609619523360429756041236762174532575093710871000282879401644324403636791375024347716533683344268822871276629101178511769512179552877818132549319880886749671704020680199778145527657381645736346984733941780627568877949118770228461631116034610297227010150943756419354426645695854003913496657910537615720499010433134403221302988174246734923259436517576960800067968273522287229671269505530385137180855421189468985621803412851527113701760440101252101238621714037477124829996091070998630792962932778231134645705187626482442201645112812575658692489179366801842394211605696367414912605461379487334875549338546185266548567383135143997630310627524834977582452646575828146817293799837520072478553655556490739885564062981789839528617308249861593269726814122267864293594520967004153421957433992271192302656570837839534687402529025929398826740814302130257964391841681938604062318579120973618933908573682846109999834475325118229863640575850861899069153932658004419102267759822921801018277147299347541691595872122564530039855475205700847477820412733916602478303735617284010201245737140308018875878866991853715764687819290566483281919457441974795855663859221208356638583098987026940954235165053096688168177977709053591999206214579344687201368582074812033751539004072853907170251728292053924330383680567216424344128239794315595404696380705622720585069055155342631392241567679298864008308075618854615822776302215300219756152152477049852450765657786890885885600722189291305522083321894155239862384558235170118129517670518859418539131965469712499026445064765282436377796541249066203156227036040364745155890990683612048824956332428265214597162641832762992743085666950445288269551052183591951905538966740880398041946562496259637338708815798254958030886788189049792485710420536850837919280779159955412795854315582923412585168947280491010670219421376527384890773432169808117175863416658597172882036375907489484210938481264552458284259707121071340725623309799503102843805073154786669192446428659131864831955172029025345929123430849997225982210362414790700675163928564137996014732038622109812507459626033318519301596144769712256478913381894273734133478977588689665538792801004922791653591760347800800885495672527896848450977638310797328380922806607614474443234445858856398339948556827811796029147784292203933610255693050715802325170357767931824896352483310918361521781545041013726981562707043895981194681289999614011481258582769577609250922011752466374382620235807215478706316794605549773977740769014777573536859011818101728597543092639852499420792742871799914070454733589518270920322876548726792476572944197239432896021167886828852973629384093393406484343952287378875871977644218297302915519722712519890229820693302706409165593526049657875265237941565258254506094310503969686862094228452981626178709262418160936172907777635340031183161879330461579558419532221761971571999018194556461651894329298470257810446192192370155006209036772819816921442961100586115453486548540144262159070443012915100648521650359574899844131566748596357472382218004972194806585933123616403486918863010903331222260758052288070750998229337777835759613134384966320686860871202811439814475129881934701080383895940500131285581589160972778247763840542694117466203673418331075524936925038762202098926698014289616812007056354136438342702952350943040963276540366655438277439220381733770227094099561550471616019296538680507978731580967991035203007814810462760941668811780304732327793462633477848479201110450733821761572639876592633532201593712443714074570902043990094379536321240335509528642361776800444176866343412610422381863712186828482581791189077686976674860605757728943648933042000613420353117217442908432686266550693880623068663654004864204635150790853639603197900245258014734887367135011630093826425071908953831061766675085366971825135766739770799864142676043775668321591498861529642651993024043062247818571897563793913308514320532481786007008545660498312224810531082488818274672501017047556296011878940722843998883860869533178897243874516268335824265279046887538527585538381445001231720822513020615510621016283916039708346922639467819499786054185051538902871666778345417815229093270261215242689294609881067632997485716999301010104971908817375245688482616351261931348413519150995340382254747205957241116139349775108165807724822623267326742326167854113659960324048752613242425214723792647388565803746130693835691434007344975327319914873970482354833448646254386710251669415719256538295960778985699838480388799453616753828903144550345422372410623942938626899376661992668980764600952813929103129684463251729384741585226207305285836931782296347044478468610637039967199024616169495107456136020032723203066179816171245910716236182863379089650081554987873475607759297028588904971631184304814219791238018144212962473467102529471752368097910367920613386565946932523654324017682565483619699802442961232594711075750665279932548960469653954246430955069747590702844821322930863376768767960310678253277399756139095287677696896382481551146563751202981791072401924810537753255586304865050848044519206774892904617525883829351796305979484390953720011902365198946599393840475178273649560689437100877431422396643981063559933261078331069124062855193100338504706873858946037198917454874094700914987920112907764459609735283281372120772673025123134035673194969092624321499594973365888912603356345882633529812930603503415101100373244193441611716046689996258007122095417723192171553529154694365047520999253130376333194424638754478809624239183956454855257877079276409409122163885389154194090940908673262518601110976040614541141369818389137957971324404242030620952412727968217610967490955105598097239966570509402045605057747990685803840407025608081895708368868821539250959352896569805045028032132501569471698092843425185303851157584548710462644096586399138190229981286765350397683179227295598702362671357746650181212876932920872763515596731928855575984238978189323121574535746613744766823289530721567454102493210992769799847021770413700042853375533689819855853685804512377890634190275686454054891678190548735187740980661057058950835096618955037704570965990567466686000137943480590639773872415968222176052582262541795242419022891969282897993110091026440659916999520652852015790740107528111637511150779266383407546374028870419126925181839503666518732036867848948537890595154093059929061640735260672837957807780186059485416948696411871954444335002815238807749701218312696860228066123160438614488434670325535165804860521483805710965585245075794571111830690146184399167803970500252198341029843012518487040614750898769420075450954881207284759987642949872511875114814272745402058580537508295814937803299362539252549203803703447713465179263069948695944002649237784744357526823619277140557840334981199785910913907639163614151312181264007053374768465173844263963155275107971436527120932965275553452312434225921163199694647399533584366855965136371923500590886715083935924371643094689089199603890850737206339139008541668248626941999720657495062739042938620059218887447756852940095405098931038553830751217650134315938014691288960767800911394766324912871285409263822775330205238557569290427536594293869006600591442586687973949851956648901753541118888542648845321147262676172796601600130851016499769732418414127468818786794796868753877119117065599749750627334198005068592140407447686255895870032184522876708765207418137779365638487395698079605712790238509549166682125542842299133691560933164620755678945826377442111226514875819528033316716959035569009119787256457882481080048769525101230370518969072402188698679628873829146804308617139173876525058441912923661060292227027109370161405286910485805968243777429237551328617671294890633420280245392391994879765426366096453444329795016676310526879222846324514959773482627655982815868581967817682938853979924495588848963241959374808155400141412627941189338538390436068078636955295864845153488013221901884998751052310548769941662861652291176122975083186730342524510193884497402222870405219800178723607346739171745360131941596264237629715857579469001644651899937086438922307465278151749626942915651250912981655384365683689859484260467446687682596645129278364642633087267588991984796488929988407200335790545695352214931451437267246069475091868550702941069382741032651555489081408859557111592559286314806110021012086387197452726951865904170604537878924552501329046030615601596064920350077949663517976073651691116646257590994986563565361101864685388899791069231903477481000989795780843790833982024139241163475429642447079962730159110564212382150567683625241988385961331852854416158065728650970513381548621610225268525096708103550199957234111807529019718923334794679136485085560738206706703683252490568974739178356095124121389813464337124583985050417647046013630927026292529791722384455085130528349595910082323656443706894954942605763367114238569729122339991572854441215595134125545916294483391984854011953461440808727176124007583311733147016598931216232037824349398671847799157228961839335525156973718258070735307843781904422091011951544053832029386510403150175292861005630741918083173838932056581279206142384401186020854569484377913192666822562389984087500304735377398388402686250767649865611226154982514316817411955758433416860041348108698941912573815214278578006619612209220733518957710222603248596524096550280930415847510777860620579053879690651528894555336806253568732429894780190209521309463427884879204355539090175864955477897489401857006574187590021566923498156625071713767662530413817849680287393520221579091232431323361278741545575093908276639031520325587951560275696666805860937438941962086592880744555375857924299554852404550020313762591807066510408829467093852302907027664901658807979831407272296992981753597421334589936808448061270299190482828214769658554377759988735587297123702570676339546676394630258853055497087828126356594339293860562462612297597354025212520489231980282177482771487629847647248016683295364885609498229234844472945737706201911020539043584416134135706192034973551309957034869696135497276584250101312764702349873200107124400088618598785573170417780213813907100585643562673123234967028254152926611039776016997234639366841297056625489133380656936601908305512095675119937235124989617160579082345486801387155236879403837176207069817306646005537719627465835254976917787112050919245343380217822249079721552515090156208051560072373149662391761876653699755023584121818545347590560202857724004612419793242423895479258153702191038446314827204030187267362230322303176155120793963962595976022580264068169818780523032672267140832357996700638952421557285798768014026305652207489025562940212242831974457327978833405866436036180834089841495432635192846948112618040508933190377949888801297932768490553212820284835309521729355085763845343397837273773890765952505825252336476479459438318372220303143111666126137479146602085049671965249173143909303527132468999677511890729269776572564728047742135499108151698121797371847916356245869435211170895762258202900719429661162661389131872519858506271946246511047443418716002479230077392695734132979318804430287383310197576915439370978629453093133548288136476247258959911290917727823355798389044926974545546202620052262312283676502931852395442800284944400852207855884362566516754297422162491238481165656076978009292745231486880981625486715889836650761528163868257084690267595306194776941495156354684083076300283801628439097916884466528870664907343383612551430029811578857515066626385558883823860852206539039233758558047401116456472580996166679587092573383263511457594619397527787431246891566147490406236791440579859799542957851331017307143821133436637622973478064158883440077266302433808814054414033963590841862610806219454212670928881146323805301259819390496802139885311000417761110399131513544532039100088373971802598953093832565069217033572692206954478070837409544531500755147149119006927638817354776042843737284931351225698753395592489389319792058131034486567056205610406733285814984148674045426274410902684319085342666594637834543874181606893750083337887565283503794084554393468498814403268130190380415431337240641304335306103464208292348725028851936755890055978558871063482749039632053192908176537082442837985116019306874298785454049257504477867780785612058357554271742651882560490345870964093910089268220564844929003534041161938086545922950393632617129833794541859571826904907930852308356546542039320803932892317086290747425082423833371655708403485488436511455970314138181829963763214038569620361737540059328874667514030770737803989349249103437707119366685527143972459006377330452773148738838619778576853729803811693242009676984325623349045087329238266107357415856036463794510526020957144688859542571302024531187980537044752319134088445901258985448864691823244897393603607831764401247853752809891050682777043385169207347500818293480580552309975514399942312831202681603722482645636070306172729726302417369084105923490107761210712692341388417600648837931172039644253342075658100463430069806977994418463776810693882412454250943604663478984562648014563798152488848704795309064564178871776323250633883787815692302174100520497783829447514540665062756031602917606309814679976498047338561806405317179282043490459527576892424528652106787075993631440197944383920979943414552509691272300297517969341056592585900056062778180076615065897156150823500397118187851453610193652640375388836905522851267080066464117158019221800633715541533860348114191497075356275049816104115354933244288760120159654511464079061356596568389373511334757695720459294913017327682548995906943325267420382505132017305145044524135958427552568427668236824010955065855474586701632281466398482392623402175020177712653389295113722952754649320037292858147996371449035777327001566227575456036084632062348645856870893329866428555430392650215541897791874447000991587582117289352715888730321811563750546141471470320547324424511557787250351630128679041232302173280976628865353791740781101827464282629608522667053199242914178393262724085149582440951028155351806533010737505298057631237456448621771887303444487896643179434512242379198643656834769465337152801904075950501437391822495504603287507800714058251055403586854429807652502819809842617050529377039502614152221807434112430055625116124603458338210916670563568686433403456465057045726853042384140601698383032717207563473446665510970830234217898286596699421200493134881422502294307801059188725961064450105825758066164994664346871161994532262811269717411875686569852770427197598984564895179287770525995141972456226633845929115744396648813589054561526860742381955557300936767693062851484964653571471888943951717740802241362040920428428114172870230604920705217955842829506731589998800855344680573178769322634902005600900436468066660167958083000642837863425776426348030048042870582509653646395861477658738557753403004906453246617119658313284759878086422126087464393353519769754240489464577228989299375119550591643642707720082293462574790843675334073790307235079359375001269302779677971599840131953247223000056099766999773628528103168462555842718625487294272616182353980716234070660584085702801194836175367034876936255196719380306946701023379352711143234611476755245983194109661142204615653432375175891603927131371331501889687665398594581511138153601158418967932857960755378305077867123136120793614222735199776861359714296967422032891736885708387480576528620182117750483419701977724440558431981510831508752345622269683737594628169352124538482564229904600533724891774776817648502056161183433952819162873086330281272103488046466152518134862054159294801932875967535727953406728594729572296521487409861129456022302731107580369200283546083455522170763102955201819029593971740476205091463872186289613636032407704864411265515083642084544874417828688759393656880244570672696770999201463222914570767447904688370128242788636764731492084922505294925226776828516039616876577002830108105489674457624042451436669303702698406555063594587504264206063127916603659009487744742836456026298241856464142889938571000523338492776198119156492742798027839188643039843841782732978262558204331528012470054422830336175928660987689140860320250782533302087573063140424457385842029164062531766310902643225500518386749151148541489875575671766995582000416984914615917870304505070647517302223419330474744060995544270613171613019590577105623478994389269024971963210817280836281168401569232149678994428514330685922344981024725269665684371411313126944532702522855033203899366115833731333280724509737581511614326884579908183958081455334882548142459206527643884336291094806374504602005237195179955336453622217528414448885308910524832999322005618900234760490927903493859361402452875482586443708429528499332122488220629355502140653129164812901704309896819475251862140707299412174859096385269449020474699122508052307282244895844435289915799477599550441695300616673140131620699165820217310185277731370457795135781748531090820376343790801957766423621323900106640688669811035040854254409466158388046162253013949437829113261116459325246004375058879852265289721759171881826245770357659197583663374194474830864155468591200709077798897598794527019604486736580176353505140893836532299791922416594510659932981672116575444281527812563584873521295075748825490936915711134583038230313396293168812893184139852725560943120617427220089328396833176449981414767178388554095799720641970501761213258891435984109244823430604619265714200716444820178983162259747006702546358114000216766839579171497591848324496072484399460366787531587716265744564223815551744767759610341475428261720530136512872098065754196502696441532935445899446856460448505533145970053909254369184622452281783337063454746892606403119106540079429578995933892418050481291036459757455820203214616204362598661793808336438532755203496475064381228184534834324265346750831570312865343868343141817725920290226926983498611616876006533195417222517265751135532945438573667650951906831169098255715309756911267905440789416891290462584527748939270398723878749556071650205240665409890988480400500317923845672918796732331294796028066053597002433819606202473771392184294739539135423301121533500250092372417282012949896404485760081578231767659325425678613247647233166826705354176985343819137224697314568280331968606497823066808924559942671457059583720081151401201570877783949230986246018478971062513448379331647273268524747569369926283712912479728156914052064279187941415906426161766467352750916806398773838477677557490433696757423571579836628658196233883472926469746030583275430577309389907989528599000776191542480674906064570316830589520020670226727851568286801922402320330600328871560000931654779169157309338619039547550243758042027943828358860854796374977442597238272039305979330099625444642742384889115817911419219436223492183692146685887194624516074543447949364900104065162239633608226639614934842954479757514813548784977354093945538531610512352733589286355060819432535142888255791350831071065996549402936750791030415869286927216418808177135754030423161427992943463129320589557391682377064635326156795142918742077081179878713651680982085613027931294265022053209846584604195391810646623911458830341674920137749856257447237775963462185980435645100951463938429758950385749085397289332941866115249194276942525145580085422747830930265169612279750652640960966874565261017596692939784292822299443618285561685456678975591750571069086636686025617412613692308241114490057748804122400661310295158383049438029487570623596420896759217446259213571803959727447362798510488832007237142461355928729240036180035146831170324764078572566024434343928441593550415696985264575260043419465988368243711364922837670153190426169391328886548890322687730946706203653459750861901162965314450557658001797519229535020866591242083936871675071544247165314759208498830614444212084144469784129528824283339943725694165999659817300793191959578237714954347079195478013154961478449254349183777604742425332287043640767076111421282824038752316278850377639717352362932858019136967304385086739146407942346532735820100308688492862838154580929017982491303947145743093397635756211258952708247056777428955308254992515364704649635471741222088624618747408633644738797917400696666656385737975559831468900153102490334440890820991557579100517579195431266086524109947865739166026310922163047913266308161163807646854054627494912737716692419990362052514622621735372702140614151868434619249111647450251321158450292316331617969703526406080629239205769191197295198202485935352365953872233140288588869399184280421936712087696480386239914545423503036576166207516346630941440875665247517169499882219345088842985812519664084042237810471669809748832609397522298310318385675235330642996817626646713702203858795318901674676310652618656903929088693932024520971711711358447612625628013829027966002366716722318024495013029716632168093569427573185363036226884679240359515067796740059146695295492933701699027277879787245604586769470354258305854999537911650345782677335584787654725225644869080079967787653328654745724075708175984722674729784541307905709237619978937168633511362225175128873393428904046060225132128414192735506401710126662245191271426038615363310725924279033924411368726476586503897407620654166938538460101044309668311967656505894373204843687335954456286549585795007145847152938089062612499651970210870200756438149519353426658942433386294475629870747299543021628832425273862292293042928752533109872949148233174889121364405113424791945159820174297531367872743385048510708596700963611604799045590750753983580040393517541861710129168420219125723973449705933758030240143881196611421478978869529281587076525349660797778055854475049522226308735666235292415169178000098587779101592963355325215677792736687534960364760591053053101476545444676902906818263921715430937037553672524177914559043622193984792833543049954302050262674838764378383002701428010212692062790531605678195321751266731738509406274866938458257092944399198443121857539676217216849937245617286252159018499428059339202523551287169215651113500817442690139837137779876256908968695782940841643615646517360420539657490334967354222450505539888928885905333944354935814128009430955305729824482695321538743523387171691170435041619279703614340421127094409432946998777967158396072984565600154750382191929371705248953190133591154742182349369354027459612516604307158144745168013710539465544784453827388082326590776624051855953367943508254907219848321237173160970346297993052198077466195667672137315342775518800227056835085176565810928795535385302686607665491714768636331216615171518378895546020314982665399845455820102935270769499721491618600440737379591477231202625020798826346585985695556023132982987206220034225688722160087390869425020394893755747119898007370230898304712336878780140651014428743884181899797855105408958640666515784557174682446938934370743219083162392992901131746676432414691587421900835936671785810595600971638234712560228524165017736130471729839247400639190431529275695096580869866504571691301562574552465276133068852625954798622797177844895511161095966861399748285619677471932596492237337498956281047642434298054609719056316988364363471319760812606341185803370864298533644354537550314848539135838662071383735661572621838501306184696443276939185876845323998761657625908130606171187934661495236459256997849517082184663831538120997084468288334484261630540082577368690752072523468687236591780100056365269392005650800640240427340812030410020052485197456618068973322418994486947408506916986763040577834680538650173712613869375765263361693266848943027197691707458811515913364736297941538056158542571697552858910740356989405230904971090643831520249595955494094362366029538632593182912630440622103345648178839716839927027907685093832018814676936048385573569131798990868789878090845589838742795870511148669762310550130655333006412637774949258917801265491529758652861775289879286715343793608651699403988074704065413746015093760450619146125181066427052678414384220448238835971530425495551586525494537037939752401091773604927156919234511566437895276858670846481721644968783601798045846542310037094280921442479787618174555311814142313349761567886346221750035580509513347594665474018152979606484661713351480622237906289418459376605210731220581082320562578665347273432892098124924805274496533543169575171404587437080527661927605449833056691910898158733667977407926351606281176130241272250453912326539485374464630425368371491466482766766839833493406207681756491029226255627783088077427167115210185495563990939907650458753606842527644096503125266824428901877663604497550249545433168610358760354471746595439317623061611017929886422815269217721237563590432578429338516070643687156888399601683604931202544830985402319415206635813068952498297939415524617573107587549591545245316227355844716970452440612566490129128326902694625875897341072241199457234163446831838210417199714969091310551892083805770624472697329919617059865994115676973183344578059567560900193646065702163044599617379792816042072586416653792378316514987395643103874966392657766896649147061709929439917117453119887232926988272803640721368556883276635206105716316589610237712992322886817352303457300954824431436626416359573193979795987542968408632593513226326416257334161363516246607275968435154343310804646484892342343399664360157884977275850549765805368354998288900148646126867834143792511385243917292207333412770176273668877093184677518492560387580341513093706242559601118752036222047401413593668246348076021337714693484651795964316061525440750558067775619244569239700863079345518126621250895172887609237261317944093025828290139837122948154479580356904078093473974376481581523411909858432910317009681664495790681884593853260205898186462052072764138938194486872946123221070646461681800409188473202817894882255799947476561086132946456358464939645488581811318086963559802826272583136518297978208224319945899379757324533063384589232528063956447425301108915168217478784853165075681660076743717633117969299582866183946520111348586712824362236981235170983872581637752832658201864189599279520524611797612737665992555633205808642793027687213249448135583271116590343849861728834913724670314147860704869033674717552839651680585301286724905834263902150798873109266435773455343833312923923127797540763583519673991785643553924313038637096695523611317507463279391237073664712882600564812551658823420483251306040913713777984501903728495843630874287804829108398508040657887468347725338912251543165316154539159866034108938690923503575257924301978977331113057319979951084527911719218809016914499640229454203696089293201042902474476875071033861630577740443354373121723511610729917509501643579711242366409953734418610295674962605529296556669815268381004664509086835990698997899547118072158676417433228545772517002824139626067152399935320323840408331661600277249791089046029950053412650195363096349635997987032547095956568984483745957575211167174731577708438911181419847902951840788890838385680336634709782087475164001346802927953583909540345875404059517410479701483338199803294841960486225423688639365153009885360083274576455040766286916971726674211108287179445221340507313107899215619382100814917911389886357508725064505448681025977901703480023850680279537617889406753656756527423150299703052833485701541352631724252645521145954091374244689602026152053371681436746778567579868182892125712542354426415189039510506808422811871000742563266583443138765182977956903522910545226851923162515315147032829302902067670687900369055449205020670799927965193858165377409539927298638016116767244623656936812405837298699011006120482778535971103843573347116864694950783468374902548863649281482634147173833652421023431812378177855415184268234574254954347818660362173116784412891943647315083131659624549980665758491932017467494944303333071429224059032543170115719736568710063017235393101043382634692755155620036054066929167908293569530422093736370739988033215659296007089517754300707094163536635764121757118408086459836292939520100297926561810842110746508637548208274112506042320305550740051756063888527441852379672504449387039702768829009056419270778995000975264863848468843722947865975837979659811264102334687349494226258387105961705650394047403160316942685650413118576984911771381852840023239659082973834648772804892194360462888679019855860221609254639982480612908182802588457814287160977705465388230660820408246004687757653010950466992797144832926151043209035986217104026567456177039243635511397162108935028136313389083047926818581208696158555306393550848743726449256424359021785524242359679655497253966971015222755191313894079564280256701926371710674689417987601237747874669706298373139962760515347513689663164119085541860006397446738863482098138823164055331547917845844845126973762259282781849061205037464167658259411033305090323064507377947474656008982501597726355330902671136109953637619936980796794810497188809484454014502190530369823146001058322970362584088797069635495241858066236318004990953812562185735610336190350484626317939919655678590532105270004230756581890622176131805501597112982397420289477316043396150146146338303692430009085886313389112536781992207007959418155547493869042791085958033636271385177231000259215583105622579154545902457893776463438135761403254257627212556515041749253310678654735910177617981083044245685075204573271635566068983847918162381458989197310431177811852576601161380321161677488726559101299910144874732025244498348655667146207311979517003819196544790255647948538961488071655866432579468466198222380728993317815320795490383699136859006090275830407829409778118054941562892741279388309272833871597681783889069747639864714218650547002242401648638224154846104451597519464797908517492071465074739967105585469423936468600507491260971587425081106208212307811211755986277810109573127063866502566250081724123658350594356309813465753536344024395098954701236965984273590234818708871807596924415487977802884277828260718181106388805880081657177941770839750055400318176083255300052361833486306734093991647613638956142764109233425010601619559288543661685547970268558948897202093068295166696127040776604796561796708135339328690854127467694127233985625433209629390385755599169730430698654023585396526301209567296422165978449384279158821022691412348395344253056176359790854349111703093184305891980933253579881637850548063193688301769255745566336406089475416565341926823645149546597646020374136698839487591951480930666069687320798588733547443864084537806448928776328685814799212292405008803042450471581429157020548404474617502204440239890179984103880109283817673596229599038471096167412971573243796232130450180328547570982408802831775024484571243685233976008558190118208323569569989701745674945539470726642497585179697295533320961148811212668389346583280022956310145553275038898085808685458537010121550558031450996473641388186236229131052043075128068643358674747866990288219564084469611436623755997788604937881382960394768763552443386430955873264328460627483568748824609189363292787059046685217285263452832883589194956160064422315098992220589992269781497564574286407452381736761633231697179594648017530616929824997018625582028669636210672461593911465525071301948226760523120130523490568223974153925044103429051296444653352405552763145585653688381130862061349172598174650950094509195000989425210463053273979355080354649300581136088961232637416249884267346716572565441406390926504550815175460715024807207774612599528935730559487325461731552994539378410336849278886008742955194654949441140999411440712725579151807406208168468032284475447132026888289983510047859145856978080656178625432989119225224461759220495105286542773440352062183380818821734740756626915148591514120195039145996475806345375041489805768802427081316865528919538949293353546298053908371566154642667521942621966311477963909295143393445996993064849206014071608973708782520076337075026175372846204833640895432617220756059229790631521115899978623621179472447928308227059971550930478911806261477866190064113026071952045242294522924343425970685753548190603105502157006741355744869545606899544150618612267425742282305673614958049423361998268659767524936608984213889175351869761388074268680005382586859744114567162224446421291508350551425843540136381560695935578026336992181025615259289883577951066161850319406555516851133722277612229395601338247667503534340957948151785772220204495788183414820571398275379656475284682094998323625694014163291562173233387409166662574685414482995196118111703941041129473950486550831991639824976013868243098195679243779035693700308538412071628507819216590146852377392513995936494630760588985244265614380604173262634371046522135783264191839139778038804448964658843616908962961941425725192904121446094332757158114901840411047217616274317007647094913739373655710154169916166477378392463893248512965759565344729756861247335093969062213374532081459325765324635329213364801599208449677639230150277017091389069855332220160163436192154740712085476971020170467586122742125980864413965164310323620813061912834205422762280457846661865112512610394936795602566728995113215731852644408886530823913629494905179744059465173966745264450583172104586748539331971981032734755943952236220742404759140897104689472859097049257263616593823483885493677515925751380347880449206122598363791540340659213009457465560588505118739265873659690004589239625888477031657710665385999621775900160921522418461544920823287177823324553940438238609406745974500762796777635443546780564652018655009331910466793851357112863754861247122350501008159680304697045340385433854673304534902519631667084964674301292845278674871904081102636750447565538841443199854405654937865156988813885885661399468961222186713638963507144961043676571337552852222181967097756769622887352733029710234726038044655649864909783297807035661305415496582150774299036233158586131096892499575360440728821794243282601652211035925721606499145959745708756087480351893222303176328956749466191893243004737058615513843257766829021442897373429008719907979525563155485873745151006713334485917009398894425871352971676812480069247250466261504582468391390424681192866332517879614732234907612913817195782007744950468303602537113196857115853466029611632248221076134694675739044153340726923613442778472174733417230741781817768409212708545560985559835287442937822473209284630477851973474888318058931181304479433636464908902733889672982074996455755081199439234146928478154893543127128781852143126779145278101494847183593482881943565104156975514001363640883363278500130941287235688846299413834804964959741385468480548778059224700267685427168863275175074835495084126478524007895695251118072661968328648379009184353987028199686063775121175971908462916020064587723342134684558999481914333971097789124979253313478402049123213465764269035149421099645214141314854756798062677093827748134775353392513151802654777471815504097247854614697098096782689856303447066732413429053779029166026476871244247526976750629862812701237081960080233368910148067731254981813269532422884004453482911004136000459117446735107449691285881253362263041022642456183501122607784509605990164265143846008468922191319412629616530687138138367940654598348609841859723986902421626924399966757703839837235728819698269259515816522956367276288181632750474330028593707041471758221018107029692437475403748898984776518886702115655349874226925030496717440377683730923929285358944380634754730595649959328734621242565631607968437385207712601770831892123146615951367799046636889341380372181686685255942349703318870211576125003950327251502276536385577873555845433728275553684823242245357291885925168971232255330293440832195716097347805938594347598915070280150498982097127774388591346153822688143234165856479184020687882430105512045395438797159194868478505543686415714608484454742320068919789329405832654864041481130066567325168634476746041141878870451576117949805695278106218954786973216969327119580255608690197622612938422824037271627848556577496143995865269711222605992661051821846915224204528526990089979983762328948603449250675515813756942556361472321681507410095941914986131973129565015319877223189848249649045003519142202360672923934702717758460138162908049274493662650264349243491948589377159274270625709238941252566510710195963640853313430627827499868681659039055465297047708638845283780702394806500989872689847727317534082608974071212490748852074789600794189394107054652616441833056990246023651496963151485507032911254217579431549673594883878727023694698563219778345857645011899280366632890019391188392502397126685493134338431259439913517781008123676968587903672679830725549409944450424312639529117642404365337004427686238135140735421860901834235631402790677843901587299953458625347091087542323920856411680520623476588332252223509617210122653697382579097110860702435391196252279152974563094285404713883052335706725577824903765574931257649731590490245564411087828837648089124116241042333598925465643832106765344429509373261235822773822406218773954224730224289314030552504470136636313148341951644576116072376597701112043896862549057249457111834026804787315485108259990151331596036509733506750531697108911749497289416826324027084323387777616409563893933957480933215234639063217366699837041552665706911155545331718963376505141452790706136924973780174828695125526975043204004307269531645308011932821891721127290255782049973960914008466449458810191588504791143898814946555810830465534507275329480135970692729829134410562527533360254293799583572752189387680119695036171578427631039937359758508405886483794230454418118709969040720742518591032123013878301005559449953832389068342701790675090066435523342940537934871837784614825751610801081695693947601521355673190451551502579942453636168035059199244002627322565142967785205945477490898974719846215914764530525268454695214210868560994682590720794255553206875796758943756305824221869462830966038028174326676222866894928810363984885084054101842253741049337666027968895768878830379628330070585852709473498643780503426767856812737579843991936060300227739923551712255034865370786623148284150983697598439143173742398148100041288025949275628362014265778673782763226560916486292809223416073877280707123306296852030462022063453613849862931795071501555025749239156494396163144897071024303437895907266239492547914440971995659356778270001561643434993475366707622976111466915038483808396924447884206599300040101398898315248371741271181212915941658111195521434624814651124140306791223136430392043191004779871520275828843987400621832383851226473086403619379758549068348796706969887554091989540987493199736483007502774652462131393236644447966069995578827868331363354325798328166671117928584147850594082091013099778947016020656446546359095147353582359244839018507100554673173442877649693205993214448561969975728025345281153673164525031115213239432613867863315192305995176322095152495143211488249661478770967289099949055486738338660089042976886629620503797906564762980338755537654436874846819970501079829879667958006043362855813564885072821354733821096583371055537435754838547023777965643408492431777489189243793550279020815972618616841872414803797714299969572721062017487627086462702086876594013412461725261383083055829591743715478196078242618234576484040389018132652103021842429130565712545801006743200573540741086439576985806213827417916235135282825637070517259034782870496999553380701414529429137515914458609939307240626239786803848321119788107974419239571501580080030980547004810872736728414688439307361199108738748091769813889508890649712001943524905278269229869408915122971048318241349250874251442029634496161765904278796286559208270644402160219271437428535248739001039610665606329935749990124346309980155123026901148197739286262673560009967168067062413660428503880631041947290281848645270527104468685366853975965572805947693170715048888159427719132147742749291903384497073083429441177913892099686569866359398436845941239160727105017301223921445894184014939706351610676925108440272572382460802099231232025441842539289230515321147497764316741973518800940185411353542883499360413953990862039594760481923472122060124288348358973055046570059510049497735977095735705846388114383121791516872868650047435625017199511091166898896398793327484548254893568811566210806573651600112416501261023863704414823965468902913820497707573339536836354513130601594421297121852131610355541419613594257103520231564031119850353818987910325768206335066233301335791353244605941977299460174763677648044442325674075928514682280281594144710919993224893441819428471386243738016739918652615491090457689837756843940346027758690124820548759179274931085725939661272604808571526231704789116549741777371892650083624205364212048045426121667588363311467054102248180058166513166704179784855578134849022932120977643826786281446000379974423899780725259795259136742281643560660201449299175422670651750526332677775745017240653153032874173424896679336081170461471560298287162461604426247516896556201644800019493912019533669838388138997441996174347819814021859556371056939318685267403598623402266187871012238487278365593721010841087131744085697269844827700608558257462477246938448126593626556761218567664591326536211070757311865728064896076851621064557130105171313910602003440723432175428601139067214235002861889628010426866496214412004910493622408949314994572776920506164033527097222752415834245620215393425667939063987051014397249960416455032191401857177208926838678568421142066050428132095372218420952830610241756452564809268610486776276482005779909163019346875535262636171160775045157378656397356683821042207054689721772241300542195902293023278645947976248356737608421476046474981282056408373012880857938473006326340989100286890466801251025615572282190820232635692922496829138239124986876610077754699913169407842991213586245480051685820763079121914645322992846195153956153952798017395986362268872315752288748408050017753365886298289076987513772918309831604418152945923402782255725436187973751184987475040057070626706207760341889241587847313859740934590682906093698114986722563369955770851630912810454020688960011837902974213348229665771879221648341057784882681390323017874277853017441687868626918012564116444168747498994065434324345369071902485653381186310492779215320636415881583467188923859893573505725822973942695037170867852169141070187583752781804403727470236273309735579079604925034791420954443149468655006351207183640235006676965337625393612715274006060007834335405987904970253020326462876334145895711360875705263435163370282737353135886792376980491681461868905793484870066896898013278016920777441232570735061323095382263447514256802422368369904814460044208838007185134279245675894288552644006158168712868465387988168592934504807737795179771192691287539649230298746023113455310013500465578629231268335660567834782583788526374448247748525655007913886108410557111293089264210095581525289479362385163155423827004732926056278119517671017074785877437136943866722539995330023301031078903280075999331404761104638671604606708896306517089499927013516567808744988338769172470332218669970599317229589998487235870866561230446691594182872024834847706970500372081165869529771055043724363247260350812338753345870495462882255569563072939847928111755305502950967661403043035986123700375765005158966326737649377611513684999428025985845372102802087891263168044334806819674863913039302099606973646474120372257632621494811378998358264522898451061934884970992480606217053144164818864318442123729357328295616719244662909351987359126473127406967177903224618301436227844700964129355829904794117665957627495749612692143338104647498643983595679794949896908869134572288662560501192144826489292128659322664914879265896793880482837232546580612806862537382052838043783430120229946995664909832299558842374120781252904665910529681128129063022248662068858626151809591531550553534246930653443428640210887126069327926742998034872829476505224769737955452954514780291741761523789609336498641548073513850268954782645916671456007963060127429168848001894687035311174534380873007318674309759565452693289178369779461858304237136027382122004279099952138632991442707698138147464676245347427207562628046004839216541254127630445607991724102492321738008625888676273470078762463189190829762091224873288305318223373685583943483824810217533542928888054857449841412553814300014191149418146178046461471788345357117179279843118590073828114824697043781586534757013020611921520723461931806027192223213190801599752409749617471425066535338230941401434554320938839152911505378707449560675399420231808803426298076439931451458329814404888656447749590541854885387452464732127800375608309436627625785693775854620305277309550138801779549848486140179640453424102662023912737959597601775126142879057812119352859477985797164790378592138030412537878590081575188986894844912123937565886631182922860324279048583187725590711063714595431633400783101878950164506227766333887111677629427408767234917860461772732026096818189845759869052419564775169540817216783269727074803832241436386966711443637149023807209851453229836809737694187783717501993496061991296395879032257124860921837483744821558536085701592705677353176104356876913980644088365770521867019281644457292897748218313515125079993335996776928353068562571235750094383258602432989565898053172648916703082267716903554206807275073893339524670651051816511998676149591238623442836186524581833323034954212902376560560568255766035722625867228757615318995996855548932871653645594247960342326004316207155464744460579233722697521978007033793781939542244391061267743679137101720810510777631913396132227469912741229230763048808288120872530807540748669555990740907474494063947286489639461862213818511123898717594165719606254190616805211050085093868598874994929921256504681789115468683743432208409935885012952041064797362756232177188544947153402605880013412356352501148407638573924933176159153711196526591890313871212346181858103333396293402657932345517056579467949363157757079257984858380161580387211701949045656033455083163152823886100691586780181933660430559033696901017487462344212173491145209529082583348221066938420058944477263925187407983031267573624187373175136296005594625110024765503123529754283585164316787307421396351356209885043505402896975036990262063109396790825033513250457652115653325826923970379680877774401286546551292690810420213090607069504179360061634200120611596082242425209089110779976276128894313424713974374643886846200320358768763839527108696955906665836947574087268196563254762376291565815338855285178701497438779092244514945158112556102297409641265555146241049491431602716683690402927439049693770791204031182913681663643525101383071946396121598407926464768694631638692589709858105185613840567330329525172903941635639378368041054106724776348243957311588064125612669115472127832314897832355997913861372438579836835187847582789924244076572069626249601907660329419910526443728644974436812658026817236599883724419714478239854833920818255533449696650837629030574710668129333046050927685255916602891639844097095758781591752484280245282177189791149674693124636573846565911099050152304308167496347936184980684116037103898777938120893314810376006548109095680508891481720334557337969682693675890882957763174500794295932185390095595905708512894900889853251629938774188551355440442746755305627149246677723356624872278481335283122380628379755145433706328041437015319721787871238798156683439075299090976225760460375739368657396359048121123043029937745336706825956469808928432905825047188314861084190452182342321115037163092127133081241842672736825593158216667104430571556647838094730594326098163326751058187223538182017392444118692301709971255142007819297849364712071844825063083766540903789327107332998126302769613518117307607063893503610575872594806199480271712401032538705525500348054173868048435905214717487237904927881610290455997872859300034001452513029017870564662057322750230481341164544765604973194407349046100137751475629081145138465827014800669322222762523665833350900390503768523138804890282787128657508134353629498711073381799848184376577547859793203429581246672459264635791687737635603128717919572409916319695648838573588448589590719361636841052097812816674802261584331239256059032489340208430093458922157482453620028454582572033997791087437869463767724377906665045431577553926686060569731170167737861780043246706993422609058861046336141843414218204990611331835049119752067054415678340000291101913524068468285710938629500219340961338203120948269511622674684791157096983245664008691034216252354417667820611467692843603219386375519168519784111013387962323473954110526893276247667432243338367479997930694475362252272473324134082005192816646197531321440802317520273996250713115646925488086946902478024478286996181676026859855042310160265527637443273353531734260576447799084042427734172479214238533871101585457868870770471373503505468429567534218318585319345162187386702205761149591076415786600454737490766073956791417415276676255830088066116265058819843397040833919772939441222252955611728494579955696309470457748140204089331323596734948753199236323642978692443730641513383002195138558195649808485313289278987687343625972491901339421147502344607376014203139262444546895156040042312383427363133011167709567738313265415948057545611756828554338979839650786084538207221197179799865307106919857777007170659556174717154705093643105512708360277439203170923283238847914273626581883044386893603987673331486261618107211058872661805407608211260540605818511538279576255986277524625045592634491990300308659287426273701018936231232390791061232570645083295108734928120709718691690701268279447977105103736478193278177784943461048736778135766373883200412314087283025036230171617203044599892030296903283107104346109040144539156013387637311926104555334906884967425186800144983399304759959522753074914186207142367758665440718788453384047532924042723468599008199946227381540618349524771437734153967782018802706210181268055627574369899920592609084389152654080486599307701775722389290380523637483131601532917969186090716137521369995344318658296099776288240215393023644415772439761754719163121518905589572527787599501357405120917209391425069137741460285236037172824856811873946310961255206926747158555500223085076489768770376434616827133158470230646469656786621422509346845321260029014326391792184809782543194908470277101938431468455099844740485786060134641212052804202706526424172112625581221864252003761298782625817536407462362859765096736315502534276146099921153077849467905973920444700876355883814396359103056163626208540771586991021986432591155717403839485402702001094360839670137295781545947059271746027906501673077586164352712049814652718175588750259791288428172001058401391312824741972054695281101854627005699702048019207732902853966445983774279980361797479846218588867901683875698384792967189564251168684046819440473054089299588785543460201041333913811922051715119584015512115848509182108885664314831797343647842800109201641241944746852746023798109681041878282877812923527775706001289553294347555594195876254618835033210062855970960808914866299379131904877548513360482876549223664851300167430644726573974358601332627341704987447250460285331978864158694792474053112275544795069922306189362364489875450796468083547740429695546329599091068349328019691969424983408050911397550714528107596632245220091400649487473354500855413394043104615923827358721634758675489658485760791989507683720482440391953759021400525479941311046343876007996625950084020516749885065547963795454646944378846223992013111763207136404788156811277157434480601001890611618265333494182631585666707016686753656832891771116508044042504764417455460754706404639450321945463926731848852467178942116887951600078276097318119474834162463128655851018686755830206054961593154701339796768590950720910381674090192852784213165490284411736898393678586153206417658213326309660748700541249042319846474481149398820364820638686115219346270047841860595161812732367112246390227742134268658996316897215136499219396265529155290650859439333104191367480163488569061808098759489832170899588408002431708650924050494566433187164423194694202971545630578054619901093886283284979267123393578680094917338662999447513698933907222318596238078351419110438161477076428046528192176187908643871178162736092648680670772411917809466275040286553798530463658731835025199846284030556036362157225892454793478010685917212563790403737049771688768612357746186404257012285682527401693531048041522170597570900773388161469742085133565416719425286640796042090813426062367452089808918657296106382231660083774806066411215692405718293075120000290337336747815107151923026640585285728396393541871716485859592018757133626075920724517647985073913298733334830300824247599865885653179320197660353294716870977562460466829806512886550930104577951457419627706114426180112809299732210452348518969462608452835651041446150411842198034000707238450289533620579696394446644574065324830480222796536689887142218817617691423603362994214433630127510043848962870290219048578082408599119416356270462722058690780424184191840818642807482141152091294776437789158755688838713305768488856512588679382848990874379091855594438494407713856069136998154531012507091300571052727770100015041305793172381898475301303726882395410854156297211014177295000405665479272365422788505107845462449802865933729996990699047983928999220658238760259554228769984416085720972281473127139091824896856811551591944473764127879092110145337065893120856813592106498971364246341839459651055216619795922771481936796022990494123779801841419113225061274931527074172468034907418905434635872177610270389627246169188429002782593707313846479151884369973341467511977909401429917763763013990778406016051298460292205673370915715320914520069479408931787418502276348375928621881015956012064656105068527301384482359682549210003967974798538680611801233688912203690345649921583271985592902918746517305137014963800290047652468880892639166617433142221862583015351987367379391008624911217916060003028548143016301291200152580835822185784940230911526563165969680479642846198656063693925712279430012952017204767152794229120532996557007489235993402585725935927014567835364403122303332295989052690804907281297886001606382102067441107986559868945166511043191819579011167345592989122885549772247536495605487508626098596026485270027557941381331406106043346494631270055890701135004350233640641133333257795791438778666351995514849902426500216395407945041016895712090944177516688011008480848674154350973264680167319141467864339115341218375358700806267138770489497186787895755095717423212223048133744839011329010237411051067958695867080787865865887142821863916959869241301398206901346444138782283118239689293319224753025763083340012392361044537393068445222311673777217263566371696850211993930872080358498311490934816906430707704947436052627665545476545987600824672830980812213497228763262097310308619305770413637259889056079147802813761099404130630410129691087027343449184198495439611693194082197869249302514800085577359342381072301260151397976196640802524229862634914952061579418683393735246052827792828681943386522181573049671030966448883695606227032362685165650306774834170474191291255583901061116674558209239778564926453135157564169590646138933440610980411517494826714281747145717506174467134008848070799386874331895846694126674365243667314213387699812711675532909686351587727687141201234215102275233968625182108678843813704189236558260936953387139255207962397612892573186554811036990854900872089422624926649805150056991057313922612013811940147267586674474998123518293805861821208564468873652597509540202813639398186563443197859117958576970292313320138305280660429075514725744684975657535274434672612636229792105089389341286577961379505376877054931020954475691824040257318556324453648124974501237790513352003230142415003469496449281819344121747836666505381259134535875358156971346941570872637680798807320771818590031415534031362647629371567135949666020768968310026285446251203185292310194893151682952052396945683719315706679336571143494716742195533815540817273961580224440499396072890404753457919850829647987590156346276850532462715785331299523138039593841933735850401868550517350163558090787076144964289205241377924967368678799524901715604279168505498047578608866307719013608744053728128984011093346688820067685541672734211587249117307950592539870788605466250241703430468760340421906071464997084156456095204544685069501711875441472188428546543427874258904849677639035370112068261293909311410628049618129596550254823937567997119690813253742038109480363765107669660665132751370514013254901120021075993818359769007179968446603956582276304978151009251964824670660590580653734014029725553992218946183589077182742855527294809286691901566793953697168601743490887040584839010090543754503038967347556108876855778474492875253849635587287445669394689168693193554022065353287253295859777146853388264988606548168045019366088686213390151166271130393741065964736439396282927418196981859675052553655815133319683275079623673923376001917137947808512954767841939850332908332890044026761722942902975583200240605571216548323197718640462532949725783056364445927860656019736221246226875702697162372325491873365921788340025286544473187680169815469418625186735527366771481357822616478102648464156122962460875471330013349340193126276316571819160186569736099136251830408456343756973151706040758665774619859869023593111037565970238034712551838836467411338349627859700522795202586354227607678482765517959883163634464059445092130929344022962732124606238392072780850410252807514166354212815525109622009938187106524801733566962202238287752499557145915597709012538035932992958174805593505237373403461728492793602512147697657643762573010133008911464549385769916593896043735502305024288438155612269505510099036313872069836380279241525856020014930761277675602491381289002474838182022348577407402092060845274539136654239923609927040644976801631603103928284027380072106283946555581789090856253693139510117399028481611226152048849719061276718286673030315639032744023473165949755244344925445082363413069518647358509075188184798900074993604218507744326476686429272250524408563781160206752995795668995261721947095173490417507450613452975639820817149879604289028635710395674971210732713197432899623115940544606708007331204417297705157912943891991643578935346374970064852765686238727231055797214733139562752840467103146712852886706998419514217937282660455254596458594127731645599782814293749276529134669777479132050101088717584743239207742806133166373472314518384668399734599799306511365268393398529915312148477785184837103884852901026685144999181272882116217919473032077488804026452399702879475081177766595504669707737304781473037855878841561996573177653194918616764888897030310376687939579901501302661966250214218514540355683601892100014109907261587257924830358852485540825603968190497451844099627959826302708168371223512455545110319871642395359965808536468520004919691238382766247825475534817163380371789956380033089933842785268055393682958976462118961264061262439989566994994571698193290541223644720049863299173137018430077153622940707092394981349875919839009184021865654279381568040159045520703455558772748579053654099595825606216546855652364236912182353477755325681944198841549955860378949165520353311785077220645929854069629523691212208084137445247663817287951237391099871743651240677207972879765270608489972498166482313790086566625722641086069785777838335667265170634235781585512929689388768659744836065330205442541342063544357855303154567958441010742189167302928428037776416499531437716314750521203590926589000769335560467284072003696520872232468117333151136938727837684740625394563725286796181710799139387649437481557998954770956044098343310554024643544296304941471091092249964867117255988120362901987514294525176529304871830633406507467000678129752593819517603209132953593221019751873649385012089837384883485876525357204629010258312147657448506220132292886304091095574865101528095248533981890000159422865503034539354388260979051318923036347503360468120025263800312121141720503355055812015479870917400051807433590190131781469649302631330846101757867110610606573092120683312338508720273023284563441479955116751812583191947084567801812898510221875105450088456910778645926267032399705291828302096439292421975811661060752979230798506747696780731455729083596738329284097027044289348155138312833549411206867106863979435248746745385186802168101974259250324330545429507381688275989735897503472063881347075950064690454829117950153747348636745261880148068362562484855181709785993308103524728431914086437806960130937703886844780549690565062244266466990277543564983187313911681870379263340181793231022006781131690049482891087640401969692673157092403148291344277807680911831815748946413379379542000529521446548321793885604148514267017768535655622763787014124629771408818759536175678331098956863767166996892240426436505533265236134156570667744928499803826394610556649107597964643076400900419462732875050445515357429598965524263451157425181135030876760949874331583385611611554313953542457168645318118587474010084652139001765829342495662441433373810492374827368589151040248133914299751629581649532601516822026982500995348067022610041876865347336867650306826634184414715821987243216781027928419111278573523009065665577680250940574106698775353058506607264994822557704533324823476480109485525987819350491043663704015809795404438493801750372948079502628595035307854257037100211470789726087507917555661094893961845762373492351693529089405834206886258976547934345383880808504287452675656523881736904148269907428036418735858384236278883051983379271633258407212975246566103928351690218121941756639790980768994689898307055763630938120781825600382023789027579066742985643597453844936535756593667142742128109693577828647546459689009592461858342455189051736513497714030556276178874012527517745007666937908463333142857038287746468668051603493469289087066718356967074800788726026610594058519676849541240509816235183172039201120238746867048774814069743751650199744966507634643439227937663023837389227995807859892188538333004497394876395245190330369320738625282049096450165172576447064566246679990773529859455687583379934109293122488460390808190910408500772246649927745034882636676324788555210037175345027333144229161369928842505679864112708337772197866896193534897681108717661420694864025496759977092526574359052046652169703056468527830377693385856355349412518320718334873331634384011951507110515203167146356407454549479086482746670422958784368016407960904137026800462038359631034013699754057692558049362083140194421843682611294814623627622697791709694423617947991383086118829602040054542975486620367169691993778012940901686189333429897233711658035921000319219120014937594699525509177206463344809810026421741035831590627320343007349566440571695571750970599387157839484666086187211311650707937192176051010663109064453622659732191267573901537855718084637904138050490902334215571533685992249078617729610451980168061775194073581842137005648257551191690280939707434578255064984979329574515871819942285419645399157628745400545729396233583436892933876297058683120062452724851413886463573810705699274136937671162673757911649154842772343166433191641189231150536806161098753883801934899480493570561862839220683846496961833200418628850641939210938518860229724139475294084597258314201832539536359144077432944724054150539834814817759885199019306172260099377999122300507917557659927179351376924455476386273139939261203881940106931530427452342731605176628404649072975921473058333497794269566990426608905324965914838370641464221083163780998541816407544736262003084907082943683108405820107262217020382583383095999123405289421007299762079095070783894327515915877350042378489365609800617101297853064959522666612590251022130584149359549262806643580525801194494970918433502837763943937187162887904628935856456549939146650806649029572843092631501739178211072967905975941686702386082976768571855336952774606136276887888131003634909555648816338064418581554364072430726659424540379547862997178050718229622498141838194242475299469754235288544086768175017146009439390881310603637015010605387124582527663325680835871136227379037337523550486890927580063864737966242670639279228694575928948657668453202061378801778717581302351135222230094893180401136102633577099545450799902807609489023491594671789634533367310479294330734839945561107045552171845677740107068223911958818996598333011542251831922996493567497659177571185466436020358589752965622411755630481164625688464752638604887003399974499046330558934690660424436246762641716323169327994223314200144035091665603457301521412432467085649232363062582022115606540104046404905570367670334970986139516369552397869242462102575965273182734603223833821718394242229039883891428541375561256142751727268856608026737574262299652905769237029720788647398823420625990838609895310575648927241272864059945090045373379629878473985622282549197627244717887792190419654084627692341287779940863540296839498186428203707100817588326383950130130305825912628640081783463215245141686352740373784472029543845947846369265996104685147231338299956249580667105052770688960770833218478997113647248544965349821950530524735013107629972553769840663717944898852819811385628709393422282892885055582722888750729864961251907738594090290859604253463866606941842607893991207366282512361294474292013671584475574030788964808108128340812572325561854848488759187936631876244077408207812967967929067546192153000461136565308053969357336235190662863089780888135997776344573742766079316177970169664021853705821749245790437716140158369442201019575817074367777988346182488336018148131356068422072634816707040967524703073840865101172470940042278914868665312371385888287185496837330094932335096510436384600594251427931914265080215956781289820416472122012884102317224876551127482478966183662585315813903684331137593901242878167176590672967258437724490861393358691720878186726031498986726002275505315278938235674957919760982017940790597383280930093246663253530051292075484897252210300925978830982778716544768194040295609937601638253188305107099659930050623273687360927505101441943716310477281535155897780714418385369577294629420825413615213030347340729726230213352390150037682031741154847413348932980968769610931104483586154946402158743188670592831495446404990106034842225629395990988719533316523947448461051024684365286789749841356812560398816579212055293404639361850661695426238346386165406258201823377480550049906412686183668944501839162617020509602787435721578039290320989244923111586893866422825615057733199722772978107266759914312250897814139024962310515391278028312572924485605848384480682092086919501086728851460371670463170423454703990382118105850894265958250294610290056893218781752327102225419888608644149517345950360317246815257755679386768130377421979616809595603483440792168801360578072544942665056836195473535592106770899275213152959972050661449220568307029135852792530767602846514313430485799170480550544500865422152113366833637609642597377888024573490254393287137737738311964392176368423455119853238091869206499278261592613858423035661345952758938303836396038499296895000409962385906033670499010147645564764224505031324938420079229532876063002735284749992713824037185432762163628593284398549714442768868448266332243583402443847456556872884050365791900349328347083535350447120935809539587115281536072698670993361535071300750750836119814301395357245395775087981899946491547097389254456842640586632257252151555211687004521782633186374893200550907549145800017573042292813530442586456828759328338373822213530049896315831655940581873217034176665840301493524555810018539382532880102962813728417487678687571024406774636624535345577246284779792105982814901948896367681766175700982024976017557518519801378244977340085467246285221763130677249076400639951872680985942138077441839450734342378058101571370181617771311959438003695831422803277091697147918608818930319567283626312457234316632610170714629285066202621457548539891190453823116506073512808711947212503526245929521641561268490232884615207912319119634812560774977866130946266218648864233974903137159521291546884382707027376220273301313189327800099929413098237597897341825034557779160777391402492286151657569004266938540522830479866757191458652990939372129007054327098227275568033081580631417793683852553252082246619655800040201601396614750898088095645370698121914509335217407684802944097676922417920009521517821974224177785085028231734036684981553549789809653698699760171331650835159240598032762180975718187390132466492516964742031015170242732775228651091528470446760166508556669810933858556629018544183018892960885521563809798004566940694483638308003721690168663891958977654576361461188369879916783333140391010291484079290180342617837854199116776704034756076532542656651591337548042281898428771021068239402914812059747017470102314933151763816753804521042251081372647427794708216713840133869422463007493001668555460743443068673501426063548926828588925550502575294250545608945677889773471603316939239371477019337717695842350730068612044026562865857410239727900725218317324385906886178665428980414646380958403455770157045626800378703055914086549025250035412269240701607716282323844975942612927910733347920168561272753566565263891566770139663898209931480631275205865767746657299845351127648868345907894314346384800270505663064519668872404962071033635085030764872731160357321486103858652858603806215322916506345880359149317276393263050885053479558555162540853441055485632833818850534550633439355612634605740966023713762593896770510232063397023617354284102943716533963789894274980920713240519362256720703065104847782087836746451192021209920191876075104725414014582843927575826184755739940315530271178796894165730149545093210807344108100864746572522280255826523531779997583348971484557429927868066948368584706915109185349326419059786382236955177095483406457576976197973848117397516602043193230196455122196038521043441232113099670119927886087261641700920355067800289009249329280287158235138193609196202400745631467389019055398778894728766618793225941335508025433411128254622241593763497576606036545179924938775208942057487769824407455602404117752346780343219224262698219806603116393623733976589460270172504744360091329758698303229916096801019011239810568638954216361249324569320848082104691675183685412890793744653811266304902031440612474539459174759872232976698998541535197978683771926369752338390091595493561971510852262864189368414325027777277558461560757466239447190285852584039703924196807636093710614948751133941090667735161310390064521929771117531303956114269456533712293305400049984503782385110668481352698414377338074580974538649059091912654745664049461979782549852326689112658181379670201995501100288091092805168662089727840543180701798842206681713977886223556950297514087920051938057217289390970615673801383809741310482224706788586870576472592704180730113504551736963786608637991947552757704859424908398815408531665596482714539960223707278406438062324237783618362861183496866789762338568277266763938644463902022013767817100872914858339555158967233208209858561144192116014051796855586936769612479278561776190535406931386702194687095086885286498520544084429712811457075334866734659509377370886697736635942906964363028495597605944803581435261254228570612269107277633810743620804433593556448902144073592190900354300316741971780663332559709149730701982018298883677225955922952219647564348604788335616707952621336838766188863670412474584124782782294840011390358971317433891530468454310947470426782223948204640181271248020101819027182070551849615004118565276429709884561951638559380404326685688387125926615722837629310625038182452473890901798369959590350949294188604104191254598972878680103254492456083430423784457013919994452734432515869600325082204559124861862502622389023326654935097281084577694093368012587954741781091014802890701258451588325351081932973221517400788109911766628265306394905949745497371307259365413240350951997934488962427724752819104987481293186777717244671766139809201945278167449643472933445445557558250758890326729682106421369974939150105191281511299369232076727049716535935153762659891186435525131786304035732947882440277591981149256932376557232998269371889284503035388035973071702366619525080514705600075938508771166914164150089417927948419009727384453782667720289559534009176618525765052443232707182245433158692322659390413737919043862614273398917951722392396583875369549114672090541807596076977188053015900379086066663017437640427037469762118337998937081675647678003336289377579689142431117434013049217077270437188577022968404539579689962353660100456241849871521662954647052527061819210645605801614147801720325439761598401063052715181295656590093993672920538123679276233605795354928617280355549222341307625586992575704791390192412441219957513495203166931807403589779247206487139769265203066836378172082054413832027522641193625662597551445525638204198956861221178464012585169783580088037915508769464231859109286118910241204593498391135759966180143278247947047981974592433307076848765077102915685135004984303633102935206726127568729148046964374632464459225758704665115109532007359673767863737653288372507299018417069076252399614446832333669247693415994422425134247260753211295119349832798718801790137764367873549484366661916863444534964080308394717221158293310794965397698519359934981498990127621272096048447016333002721135899184720060014706437430785883822917270494642067185547947649844850349930890466309734945770679200979219964786415211087931191002989355984966225675544678286219925524699674428327585904511675767462211449399093834895548832697536211824779700968870896828233325804089844145272299585402287277889703904117322353629507729098018521496535925833418146900107331748547394670296762528088637226395870944065561537635947254825355612961264633512713966684066337126102052031762922162771953039417969950388110426996156303175529280704727761285408942821276441683503996706601837715335936051578888134695058516183525670637201391045266029318435543223913987768932338918961875444928473842578883044976575188280932592967868124069950422813985948026706341826875190011914865579380534274029934749905816310084587751008029095329639591965275130062004195702192205962874418768665849275774088826169004919954770238545728617011265666458122995378614687800332491475237014787937918578027215811741265097130899129905245718717473987922267361967865954298913549601851705712446171025604054475223879419519836130457995249492830083066150380856639623002786409449697969872561798387417640828921535690131399691973559833421223054312418319099648272796175159930667884188597557491841358005745680206570958800428788585189556454394696096245050578575510914675551764444204391398590612046799463461930862040971848425949619003351633264600234600272235871402251718870952655997881493191235874701342056112258911806903579465421533416480527239557852843262046923125997246507846677487161611282259103830999845371061552839033932384874137363985076515219089971116248821080713711562867261780245618454140528298334109737198552186356637461756986948785778553565468378209007719390376171307467620139943385714491062969016324573807274332542863694043482923539741358593791561151453700393934765623314258340060731816529535960701049951046655686694479341117985958875518891273330705711065090211890840845345094160860789975715819971373857522756916826991922366400483348496651672025596540493454981165134399985780580355093086115093741522807812132396673258957681123254128975789243458781030991965925702814972256819349879114237405243206630905359021849190103318184380517467545226140895842746468683262281970631102510327238238368221691705650065611647976566948638350654415619423690526186325594720776406364254619118248440729266305082782034424654361833915229930525920583764185983042210161365144254827004078778399040000979956554436480839155275611659744973253155869349493342435080390955684608817260985019133170485199169414639492423900928330070764332000087628203062841999497845453317515138473173930126481423161626158921169760035568324270408640578562297867504259381955412643502812687655125717279405534850002730850265444568350404684531533309145126530756559879498003367794877505217466156962166521621403565532064099307536833940855805925758083777273689200835892188445907834262040742147930368307230517424484381111675822141875213209231622649787949193746598638041581251915042337631383901044125963351132158018765775661657558878970472164030795751136159273339206596096682881885647224805274802849481217575868601085034321334748693665924078160665668061477944057665876677988549357297189693873015417149908298003448833101282593556336403873910841629363595307023919083939135094539770455222202971838594580144811367238055189481579443847526073135217250425905299253846184156161280978369224591084975687266934685302669999695110896252782142210917212473469706755608822972515483480059360091127855531846388112466290380070877743643057492233499674590888080737289206597258726750240857152718062860635474748743313488645527683486114694186446495350220894511033569602936786770729638714112687410050889696873831245095324126174324072002383727254437183726283824207478943950964407756545040706572441450628062915048224432121673327898499485008434478309602228260051793413714156100709708882261417494411765083230596520279237484558084414740437937454881386561271853465960020977256034180484238911574877800207417349245017416612741704058400739457183733768001548014163488818975681548441754909609254368312807192199778338151523642308642886691304993307316022604141756860784826575046794331433363995212131649252211164651093731214499072891080170278742363404503809463625902542103296053131761599316453133661120727705545506907224854997038765644323478967010142505253589315117779455676823556879791656312963359842371229277768541531147439779226034515645881274397382707859325057712848573486815522546344646770442392100764750733148396200213810899848391177040956596917103620856577155726089266319418388976013885983277545911126445198889536203989000877523079091196752545674892017264405990106294394684811855128169132918837767932327696302041033837250270712799190030859269330989177804132732267791566994397692345737822058089681566983366198962514567130754420358148321786186066845458966048943837376945141922803590131439337660505911258462857839131104563854133713075908802966662224266651603262736362601720047153965072516456407587145397622629185658669575677586636158090707693059923049750388416825544227349619704572562679866741783576017195349398019059810379293570719627927602013959899943266436534853378419789276914448851343582765127826887752189803383478572029293620107533360221022334130711606219157111194373852718994727615307666703498333271800575753519780441876006874509242470434707929380834324703572168922056594017494998922020384530612558173221559726806016456771330025488455510679595964408724144000370603122967150863793200518498825728481822257614438808038309520919760993977291732327458609381110518233990472789034491525743795959829481551003277272259394391739915237031762047845513459994023095635967769117361634470399582704418712467441480834883438741831322363658271794913451082918446490953402192834991349656714113722168312175238476296666664141587061353618003540240062253744364666592640373265039455632936609110220353461108939068608096868136875099297901261709156424594668467423934225914463892248431101844729341927047924627096454751884467745161223225141440791199648241137189233387674086580506396293093561821861291326347855297212908637692395293468084871486938222948035608415572159077402885983512835364660203147727892739951561558827107313473430117929955877212018911910406890980444900528641671480242428969786137496378673364092793877909069240298487167202466698280709219080661151049467170964089627914001064818310343218780740707593144459290066430436693776833419606602236595475471748606342338373866197039839881758544232999575174193099251841831030245171162024056315329025254837823175291211085594609850197800904811181030779606182940082141838799006375041766339991466853836422428646475444378948020885125087317896742192842339196818680914130586241033834858665096684537593685339576152078242195623789372084603734013625033682317167054671123848711873906012574614181945576262963056959271861660150200938739621859155930483918781033038771414522595456566928197196083463359184929579508910896888662558505832319734122890558381134373907214741681502447947098399290698741925666125534968432131064979052981702636595982901386562258542737597949682198008568060271376472353714231130173550448580290831828193093825321019920766052631410653300702946016785286066771054457059493145012361229136575575458959117953260990137755132316066192160097511967912713559655440586303877237696612865125750492400707974802108724608405927061067356306626661893059073760709142728691097044079594615766938712434781413287338599172087440616089542114797328855532838082731155643001815489688460369007752311596641636626328323799166392278921027605737595377468550018630084231938202059072242960983853185576287874729290431100483092043695095807740375722677933544035481512125653011059008847832520933500949565743326597123429957246907665017475184995635048261586871443824124261324222716092533104264596980593716450551914289934669963212239756933981489887223815458885269375445741769692391387431898014631175227660233773506815324727910133114954922195460815348847477198945537676146655544545390895581228189098199396989916618535736472659845252493112826609349809442749385863134330316493718102461794882710375826368709829210592357227980540600256862215770280309481761132800965583565997357654474469249997237754665228107377381099386711045012238173078552769704942500686871451083503752475816403064392695624493591969875577096855217282287119382386783434669873374157615929057022131633301882492416284342702112067256712117546893060210561548140910840191092961141241237969641152407670825560188251975118021792007022413248818391378319985961472306842297619484412239122352214296483810333061268386175252330937257030560241728017765344609018613351822538541469929790220703847936758879775898471989990390015460870359051871345210026700851941285746385301451877548553356301905146421477673027944956297188254746224249159696524681463013188269464994360772611844381323983944647048934841139895465770080017115800084317688265028082659314739451597472295055560270305278411626551021046277109723574108724484459962015028395841248757523036657645401515192929283492632793341622692789638159925673215941895702414111828326188774988124254933494715729690951566280764480398960505155264893098076971732933919949957088163750688262487298520467665857526359505274090710162779766711937822045492407976885178090465041823627772688190254609211150748781799883042030013102942764445379957086049153666646340737242853435413541085707983310124702057052669438521013293439370372874460672476983223293203947761810076199960624010277199985394657645674504360045073926146672868516270538906377834304538973692316684584327470885766354693785989541839360120114355794712585836885004336843940026151415686196574099759410363674675232817363857762124163319634621323467704397085863002596043307867776629301445105360449386358859983771625517947086492490855224565044019833894903988022962348225944966158943614230490748639694648993595672239341878659600046628979067368884949336732434111311208561900308797565503296347137461761734144626531388508404466062597374548816774652057365455448974499471498581795075750589190290747816243536368764719905008936914053695873025891594899016156716199750196126673949825652026542529381546681768422543368869702979303138948091418696539969054148387220052997683300459189287287001345487930199450518056151073407185641606412569734960292611850789634108213556556663357814019277562133686044133925339517842240093864474229415162501019425736751795855507380420300478005230668305728497463646542238791591474843943277998380127325244541398464725056143796795418654351102865321585544829874863042024056380913260057965092885561763740425117326119208296268591741356997505403544387841735335246306258956967796928807742231011817794672608622097085040602658463056478637822810235224575744576083690468102156639688912173565199541490825346624292521906541017917910488430025864543997196462347152812041287564970675046497033581410380097021658276695427711198637493967919120417516815006311514941023465345938403110518251743297970734184898186682480941126308589814845406624141014157096479101130112265060554143500389114371320882302116441488801806612366831965705268458331366291971169513308742721550856121482374712656550850247930428308588672448533546236133985059587039339620888327490630497951027846850982692365753781592335068320674074128568032106994370091575953334448208913517764955101026435839201718327491445909416922944151458620581449115578600713489444508194544516239066643870222089556845589592385258737855774880967263076872361674227598667166519403114908960098896339523906313468063831531959433313418479120376436257863181768695862600147953516583163176743927020240955819569433855304538164241746746037815911357676718435821884835383376318314635275951951973519015724965364990625146683503725804327257678888526465428637809076750307041012210144669444912646837546276405812683530464188420215614195895202101481460241448139685357921908661858093680037772543685944490859366011442573186793553368199480289457675434605564483303991849571083290354333451962908817937328530517503379499540601860824126625259506991898300182167381325998929631454203337606696036679880643778470221173103027464368304923651819732078917775046992570319417936898268041783550712403743922381329918215095519137531191624474506524450976342267864442713155092310966530551558404608287738281238908055614666324144066665608687682082821872154712312640651327838017528227260990670628301367153689145806556102949557884743108101051404502377021525269288027688100825128675070732863366258794562185936401810524285547997019671873791679757652252647586367829328550221831586460540143432021929845204153211392461845602004152208431034075777357172127897215479354214207788247103414514992096997333615221382120102529022216360258755922286896834272971029251079919901278983791580957706756898590104756039731889730218970401676513379917014174250286046644148618367180123593488668057244660585812957563262218600457518839000581214581377769989317247910855808220643421302022580291960861911736372224516365935991302987406117971175996301670366806874394974870471458277940505414248190987321708411892243177081219090883685638813140258992853422151638644140997304912579576778411482334956679745026698431490031463714679071424885337554185205688448255483933890327934263680595661128345651987610985904297088254364324222165410456980474531327886939097345212428255091690827324880871943176625153339583141901082853786891174686762887846631941545734846952260048913683054066444583686609144556514842222934544117801273862934325687379138017392368272120475231494567457064637354483393075754605490465343804111035217111100303948241992367712290947988573080310720813654862938783119392589419839970324583052427547473335352122301553650406405452838741000337550006270823139837077773847147424424428233739081204582320129219515899835065104691646865209768880014495324204226254479850465664936653033563749431649383491134731298355496361514544944799630854005051763622235928706694410267814593516800480898512111254930002265115109202349638590730491426466977430821532114529693694389855355187289659806302503927851743596234337346202382694489710279541170600940677726156162797276693611684738894037616038370056985114110103835452459601031801693822644452546501109909835248972545493658512289376869888363242473951895488999414011727326160577276023847663832853385153679709126446013928784256853588332340833388281808594621137465437363993500041732593094596629481778972717915598519918858224179107488522302400011920144704883082067972445132893245173597519065425359540530033997766188714630532946907567127799892084533467074359749556059027567430777226239945029966040767406753151882195211738500896345781016434455573423465480927633990029910397160572816534926525801091634985138872979339524985648948860465576348454956547172464644105351281793209394305551974494723325349168695271589181389772825956066811893694323681956062571106286337940000159970392358924704189787701041684461888105558864340922280310319024801308042651005835970127390322067677245508168244800758440530333416608467075772799023910685133511654979011210431341161328266523394975126198940873139743306978664195470877413138518228735428308660888032265900582879321805370079655336098963121080262424144773826224182480333847290640928941080516869200175814132176274243139125429156562217372425359803629725853125025566703900872428665773470450050577200767155195989667631603268101376395984818024939111347230685733399942154172188957291309784653181184783780363267643027843822077172714623103265099956911254158201690708446055762352305062332578841486544083124790918912410550691841457068160562502640972966590037113899211317486571232405260174806543172604593566078626313947648586057774664654853302594036052860574306122122559418132865019548133933945614938419464040992942914608035592527811141453069183875208743620402879547429616028344097271614207968530473756675398597745729095577416651454937205048263708012675299782174670167993517850064254341481911301821409745650502149951737362682185634404215266842243839813366934096997448771972793553225511429638965175253159278105764907433666782791663710958763079396343946199924376065288706483635391902445205861152123178360307989683583012812165563922939125592459218496051952600883353848500595760944653959852609698232818383294892155489304542338502235675941788940912355845608780486561408223788801279018762528700127720177185558687930636175420962848589515252971726173387379397564106374510259386447729299115672056636909411146036430107546298672323140547365965505716033451219886658369160848943922967449056694114716684734697276910074156598484683124834244740875201676803916137174337375592928947079793486418817148529018247143181656659095721148473518794211301640045935779712196187855990588705053866283986007491004102035826367572130057996748216854692895553843714709960070066415153434341714505703507384526634749511714436791653513690733201553249420487286664778324212861155208034191003117801270935782103965151870709655909200070805875030068822331257616960624170391292744266298524448526288459771429519676032219231157323398824586743405963205855266368296021144941360387628144419233643500731197669431843005956573918666129784433629454287804748507762078491697630856533721220134668114503022730566381112770377289564172486414154693479376274655860880347353412582006112061134870960737332247618072208052329079813430854962887955244318116315211469621091140970869371109177663589932843697340863318032317512744748513140658574876988867649666758474894582662909011369439608106500953150757612131502340034644673923456430016493664320306015346646548472615373130778152252637856972000849772950310252376031484049106350403124681760917193083849842676720467906799599105920049539769473095377683297029227337648854842792548608119226132565974307111335181642400270780958830362346728768466833321115518847869509040752556388730366467728051990540677714412491123025879671136527557552888778794284812898142388566858499012512975046878014294532510410331447374923494483819530715991336282193780342999311588672763306766939853378370509813800994506980923998392276957506016256895058869407161441975208048255497228345797744978334635962866238859591071335637657512673200346321390979621753920926496802191730890844555898986232271155899862403337445742375173160038942689542481602755530576523862714128807427480444594572397636560077265997799966339843082192778046226042019663780923595425647066452685141021027946786263253709778450313173470749921832391194680081219968655453496038100030422846517741437943684633615714978965083742637392768852560246017598180319915980580110108757940156362463258031449507212236773319333771871412784906144989920583900122880064830455618189774739649508637509448826301693947039380745648106413693154035236091928816327579769083631005514484871887036302145506242798575057354558983565333113398060056309069250078427303488790424191917905819426767608933088150727924697507761579494878515688079966469028002923674332335761312894022730378306141034964625498928909905371670294207095636574725486495648654514266164498287386407797840813853474479657555076744255962718107069052441756835810964940309285196205180606234942626096929056196468281274032400735045598119562582190465353116568212766392495159748329747690472527488980522627422207560332307539330916383500317011676218179559266464927310627741050892573019014787908070727402670627487897287109481415117721481372541927467170985494409304815924300596161596707359537020443130691582753176205100444404759937524382077073373634932677391363971700351647083141837659871002365855471839007123171035366216764241871255379028460029898613006331983923593733397569712347831362053045312509578153168815003461308494615516181701948351962922257559422095340910297407024411794741081205083950625147713170679562033812067096389758988031801317256329804166582152529046110971036916415952234771472442045028445246305827091344522507673571067796750802602006102423328098432380183940290133495701445683588856370572402931617659487354402381901388879032995271933073332876455090361835134798808591839408031364962449179502773850071722844604451923629155989525038757068765169523129538014404853837624350535264228482584622612446315701134317841219294153235135367309189964732780162566302786627815292900677343491992547337205854027745744246935141840048867114617554633754085579959563735964848860866487962760928579565378178855333258160994177728389956860490993788154577767177800036078192357428407938757723263693881156759665040329870558744614104718744496730102930506758246248366309928297210585864322595687654240179209205327384430255720455156170547170570755531661027995518984240339319797186607162023185556769620854913653392397354224237747666569073943580729900132932971434105811183465935100590893809815705098069846372677338171929177247076897265412574209084708725567961840582236195133795879549398531702065791330482726727744973925170231622690261257795344971078584179302100392950170047246609512684793580214803077400520142946539211102024839099367654377498549518615083812730884153906685718306722685881833555432792867072402163136549035794308482554548255397124630616707320850958552578807075346256237885775129319231513218977676575553156470009461497072661942545482445621885360088173591161260337817728556385489783917462947549772465649606799020215511089996234235320821874639413483941025436325141691128853035515363851798043746491885301796455617973183932573941348438511380014926984928548075620473653675334586144392440211514214783505098362054512237331876973607200408813133161596066082784687928080669558643324842452475829084842852406985561664438759555283365079489740758623210398662388308612589824466541217837990983470557376326288896426550649120268264641898458218519598618609843633801815926264851158249954347147438792710874902098515452262987129340240896140632507563552265955096529279467433414014722183093012424929140522594033290367377793781078097043810528456089089386769086397808403575628507529276532781625057235097227735528486484499655361487203229684348049556111579825829328331935710039024490525233062103798830834705616055466576838162939429527960697922470384086214390622539168071805801046387140787164977264298393307477065995324872309042472634063931104399734682166804737489890003436736086722777970427120059671041970118685561444821957970919233016474542013481188998743050456618747138720993075299087275823992259312798831047053391788099794558335060820982921595489838835712094926514058006139407194176191877917143217799513663169053186150970574278518557286429761931276690113588481381684523257256251815876000996827173444712255442276395390193366796035285236742449603845819771529802941969196393580797578140247993452478414329976632779680319325238386969989623923370959415125927093391930445283412683955559034580646771894473217081943411045396153717012999786941122553074675541797315082566692899062471397868376392075648341184752902797101770786785114795950055199656119507460059969226011231630296908570598166821075024742416422015452999827111614425786298307515525262735848716359436805839968716750307093568739884550538698402565627411296908723280851433814651887542631251017159409906213615009837174055420360287681820359785521241195084199363093023475719308053996996125936564890340698951652840371177879418933732519958402585325525201507493346976563812393741018412275521988712444157386377053874442780486179088952616136903148578100403610238136948359222771519343786273754363291716154951350417291690679976052268924388509921044061137288704846996073240226590889707542930783896952545700490591946898037157704849634410661662768129029203022337660574118625051210916490517564510354669808138719132457919941320101695380218271117994704899194489879193041875353011582762581119454986037774970577195189539360264482106148003748836617932668735388262347590668784561510749388511325320295785676915754567515110590889684716541556158068108794552844056464149343304347877933890602008039793652842517165702522629632802303378594799550479055172908488328101212188273746021579631322542086823841142813647945203738029066708396410045006734874829781628759218660433945377345224671765403220728275683354684535768773211995810020006267297964120300985208758576122280122262398438839598760438760605255958313169600243999767731454773637610379240441043942380658649022692708641200804243444358379866776845500674329426133493083302129544551016505887735219022648619884702025300900180498607006486431841088330098254467856919256684240771549299979166205250526482642713367645589845241011293733635989199515839179433433268026421459438151965677690152972243922335462689025467696017600641696736338398387475851587458339644327699427399483220383049177145325991452734674099418309518876062158899100487812501420491705659139822272960447715695811863297079111847561385276357878948300839498155031162893931410933355731112622151842248545234879084890604203219239746090825249829847033218814494936296246388224288322250262470350933190244369673756955677036173712039268512138789989463156078087876178224976582095570843188326659142690762626495839138978447748075133073111016370844118530188153023334557844373270675903952537524938908946580251508152539047188026794902605956688313996421607556561062715698384950720888421462420596196946857099373969638381725966778029752521417103190780899368869113238575358577363084653172246395965309992971303408894470040696741057074277278840444929074788396297633339452256414934293663693880318784701590980337851882660327083355682962959978534642221648935110208611715738748606391081669496951261611870656404909068607504742525131055694727430314690353803661260548228487355017454219642216713010207399372699117681883832796996725725845968680140016870856939316703829843239627588035204826027800701277269799593340709411947166034175958370756822882210089382893870053028893924317289978302193818744818828242169103465214542431787146189467250592225511786199271071357270621477403857675221383259205687761161865267314394250214618943947831428124707549198056344921002531824862707156910799544057708382599580726148984026405121419289105298922164389189710758088382654249000500230650382951313209283262449715557991609066031750658945522469151367704071414225862367288712348507588893392371438910046589175584797554116509230785238069050535295776030191440093286006512220186900662718960046853671391972413157946288200473034025095495458236509810342814395581924013655241766812540868347043507096949223244130332979289157891423512282186804399091004138603069223728386988904086821040904652696633500542341611431244892621647163240267530729678528304807842455340218181247082343879663907015844777376836602339857925074712748335243178764528015994268218918032077781312053871770091343929304261646911905240898964616006933712573925721222924293985909970076651616211518028349571200639625142599640016381871760672587946508389537071987472244612724213275717497105879854627527389060579611325579830828047841672573633208285838182830872824161654991642536235425339013089328984232351355318019231956038945535392716539206466400665439412220244687751196711543836937839583941721654864716453698137058999178765261793531020839198036231464910267960828761155809970987876538139203251650738945634167856118650377441512205665540949811203472934235893552182644515294927990924794331580062893695769625592120613554121643955497326329745446394626238927222842803289919584632275490458666966603475011886431755679559341833221816717996498985676354568984433746850587152595121667813180599075353675070642061366571415905225378140238197896556700861444663080447940560740852180146827946927797794006770936118444896742481824718819553568954087137653624073156929221804781116717778474897049003625171106529198235895230341638269475292503874423533726533870150813826208166777954496377863898926000590543133483529070050545510308935798043611745115691582847144431760890356093358003990043893791090157787216050641933122766158927000962141568074452655317916502704125066001370416776291390704869490197014492796701139676066965042666163492937803453189599222103206080828258075484496008442285954056579347148696807081480698946189042399868588525798140287030882917162410511278018749068752726147153595393024271598473762234693360929408685084088537803093429990721646562190763820545903826046838568692707479174628243127618850395571013224219344647042175967283142864542720046116462635647304455573389721471058706760070751396697531322457010719584968587262430343848881851813654620914228997405653582770239276881950779876866531822545737117120907369271051876764582037913665840634966593608916478697896356075375217361830831846264440847259306004778974095084874744786628371582634146237426669859260889779232455361136829396959269508377008370159690540501624308718348111501031979313845861174913391143827432295396171852815996308954448260520494091077783156321532277396254722722496806548278588464601876102361079963184732381700373607370073489754253562427039565950528777571389800778336379147243647585396557063885647590891915478708772144134971278970427090000298401896713047253030651875422754824235433812501836681256267849999864811232266549437254236069811134618873117376043221006876754510211687920865291732293456699555603706813898529987443022540996794171192430206367109463773041012084196619967838795652713394978263533917574169349561433936275994850290451116633351917761363665830650685443400818391371683832892114366657544948866521655754296565654887092409405387282134401672710199997225870405398936162854840205220770120713102647299656985119086795013744665573825704225746273028324249630465151937484144856229615103245375660466575828152747892982001921408109544722822230728911959482435055239768610659862281840738560026643421801904897504959024846482897439297909559633589355065520248411102770464410598240894493810763464219936711984825873698287911685823446611972228384200407657484149346101653233375390905568112139647897236659721987821204376419737023674404748896422112717813712310280398473748820806100306965115751444826701939564530262416813517858254730298016706592654269833161026131992756589825424399998816223482335127700389559155769865436095507473621647373416532578770345468201423156164507206249641444315867797137942801571506961959931210651703092283763207779083451186529297671951109623370677718027251664426545098218012629772701831178689193603952037989587967393079697949515046657108967888237373211211036932538457344190514413970008640864209146781143623595749574481837169738487779998455765164884973903825693747621073634260266359514345653962991723805021788381635209931698143664486649037198281386841899318056585836381921943928126795755411175658443352246567102030743564407499836232440003511931598983358186773358525487086113449744722725490185292877521981454717726003070629528448426385073330360580837047925930108025787328684896993287210504847555205406540264023060023511599262934943615841545529019580302170358065932081807450237021789766750161227477924252913632201732310677170673932762777121990333981393770077672111336711556177165228172470561762563112618928599466225557832918234223539518538321138880613887032671247791167058603182053769199190901629664402016551754062860485139651833596225787486777826476611171382841764765072209142790050605858910699534469306001778578104423573671804044853255115907050053819904651857644889506057955097948670461098670532924314341079428198282363964693854073837645489614772074652132761077831107289235231801065803930311203403454275270686626688287373114751390487475132884844028288744164361538525871876683778781435693005815563235106787698627091901199449790737183456583252841458605579019412439628052572183500109477203583779821536790408210455850822711825885282227612684754643783210444914010911333777111702037648690183216116017817308313433833487653836930819735569087448831094726463642948719212613534250515559833425297904909961147473628893881229318731188377023225170585222617724474136475630764485585056978170896400761935540487307027199571540240670160635656990841425967342378436705210607105802063706142587973978638594154918952355937522935270515724069186583141105521395950300928455097587724294811158473616546321480215574721645016870777918938018260539786501570043998797587991934471578696134020805027369895568905749606647002374665506617676183021057271631698367798908092147511026978112502725957312623426753587597120290417933680548724906063496297082742221874883075312369057833398412430897257028029526661360822080096099810630829775458660695265421087450282514678563403850104458856357767510541878179252334035494037812255655861840473966077696843295006627006491970128292861978677493123831808240757147183379593255531637840095955458876414913278467295275278315029096112293345116811333937017993697340256679126842340884815319434893198334219640917431803116069332300656527481562855130425139058044182918674647900634619383061831708093305957421780274270116837516094526898971015135629554184726087251678552181954835271693074543720681860436560952467091522367219343067338941242635901635451284140763309921912328706368972071151382757499771769205694261015651623160846243286338684355867716191294823029730860742507868225987947451865873490789015005499319937427662070537046806033416606130740640250965666817870931905145322744273588935266425273678504229188683068783116552634709864983831913577741999807859317381664029199505523257260593303656568178838122261772343473194546183888297824952065493551877644067465169607760897023436167685561953489817027427309239102797389149836777547716322870443315425523654277325352744984807563070426247618288990676722053397615382210479677474900518555536240884050537803276333140687434967861645857306255427102154038080178144248662416646923900643633829364132640705590233333543955088950569128081107860732820246959647233037991756767448549304725139865119340157994802892879001256538066836109551416482716572373013486248475715692506329086048631626580328625852587348705478786871746356231818591486493450125862142107372859695065294743866234023366533273660982552444812958044745766539959195415686317241451688511635066094075388522038460080469105499431914168375468604548010953827363244100540999754760177280419173120301150596618867057681627930941407046371150272391608022253896304701625173301998061832081117665914884175070799284427153442819341150892122253884725110002579278509138244979863404861335640518587460427056873875782093440215197465826412424483925024503639274013916610861207261105504089351036983062697086969677748155662792035316954378115562717302547809294623314119362230394773056095446869714961868021341683168941175704178578149446316422764182314432577537454468205827239936365884137694207662720724582005292522472148507249992205342670575987355805272026883121813345423631865594924227537294985561992747619004390489822839587359757448707493255699231295821091050637731230038296372256455833814089672286836228084385686588954458190317287293777838695489817564892964436494020346353799915694455953732708091023371342488409997735310311263361130600135441690286311323863305426473074619576712083752074157224108222301593467235024796880028901235790411413771478484733328817586800100681276797794637141664113022457509799194556947154509450200277163233860941931095629227333642414265030069575834935892055652183035673388541039980553892602432392585740198921409280143128977671946231169895687742165290674203721852703078402251940613475811997405370225388416327850289976476660642705946692958478416901782911360984287566822575145005900104989008796950659138341779475887401876062801495892388549774390692960404249127635712984151686617647820816445928212094363162193618559589717853211750804707118771192088267970331443354056737686347024726482959240624039010910263276429513564189160751919846083568253537245120828039932644817607356990760208252359230670767604510731077787869206103149262219804812812646714273391678566298683732474337175997032233693454892708152167440934512409977387834121768952430699541939577698032494313536969295851247254755362928285277678936279546125995175178038587345589708896875979226322290105653998203605634677002901481686763902201458329684482331051357826151220206783870973116292460919594660583296264284530163570973061533368772614115352147421457534222996576825541696011680683016117670867677097281959913221346332384457613650981971867556784986110527471408204762217552961572599825062605031553457379848423698463810290033232643420809447678481339310497250083370445416872953279756383767780462623994801404299250638738505077450190068040177157308854749785189152424529020562536298291581669836715319703662785356236854423588298209599505754330079765583988263575966548326817555689064785718149871771866083363981473369301209521790765124938144004746891542281273380982593531373956431227960795535728822667535594773587335589301318901699203748575352737901597337978227328190863369857073521456289742822554520087720676344347896532539014429813516624254069281180370182851839269522185743982317276554737628304394572245013608735629138396267703371772541004772957679975265820423529186627420899483738707248319323252655816079340139734353274800266828788420469010985115523819953880294418953474373547577537894074929332778533963521067016746792496399800291855904635916060581379495131049470216538822944685779060001402958419492250700707004991832164638355425622100135605541530157080575289553656159939306994493384587645945378345640591035080650299641295112115284612881893378653564945190813276185563484181714091089517089982769608083250865677916032982896583279843105555081406780988465001791745087465360465548008678612704300937630053026448121064256823663357921637065850766233308564316624682553890821862224102142670549413600058747900647049745387044101686268590686584169982547466673906701403797590199234205733497010505071357647599099680619086349959448236243325038085548606730831984445078022486131522273322586415104359919465384716249457849534171004582487446923785973211816940441620216807248653802999972717645451719435454378881570938067775101896919813433072527359539327295200370400439707928195101330043927169721192590299079547325738719874613647438728339358553117119174537265621841469654675877803471219819760237399844019862614831520878168254099886033176467844579436536558853859084533722142764110819734580279741082357099453520239081870397600087304662113072939701549683387570608219557764593638124449230693624706045610897500881921153630140924333918255348218039346877232226472162857079845074480000490540366931367862599260682186794161079871243022292765613040421585904162771325929377272209428909427008013882209921146308761780688446821936294597039084396101389052893737434444701629726584481028696511824564114879859980344102481925220733274349176129241614120853318891614136602983079828506471395041071344220545959913606354792827927830655714313479401892890025985867958435937681299894392766057370163685239826447127277704377210167044145960397952912120326415699679630830513961492737464070049858634007036442802090218847672308019170113125436019181088873488287648898057982731580261161432767131666464483908226929746471808877609619225843676415117325456772936338972357409247020317006579376118579712246081508497402494014696100086450117294920062370224432298442124468812314235498748304441822098744286521627566807975929032640443654951568072130261601975633194503709553751274889851890158214431755855545379323550230602501788066163503060314267069761490629578894563097030542304022516683796602453961417214499518363324465498802052455072068422276085865256066578213634258958961532051598733098111825020581584576105278967052703924357130221983356457071379789106000153625158112353619630261798470060689135206973743685421580389480368315875117106087031007696939102115895182962056553530432850840151852314780862268417362871284878895079382475343372747263238145448878432750375016859992058897674241497531835543534701984465520672042141044600422301894085386427007945962834774409663093783132061219203403910701233710075886955191513045669492863396288587659624259495665641853869751313529443482131922167123405208819098307403387941520012550737716269387502618100857890765749479589743528989210318564052951341562273256735320024947727766020031422473085695463921522298829982207009946876508786440065728439848247330740511375622925605605761804414634977293209905273753207527606285778683673560837591966835320161787118499149956044359665127502705928494976129693502737564591415765775123251333365618355039742318137961046467739139700778009144764533920810013450781072661620905585524341559276126921974889643105686133601371417556718594073895144557252047552243606539338096587457016430418296562337447379071330877137534864111950539694648396795865386873399490333461638728226531171141922425779259210540871123331265049931238458967787428672492367543004148666701671786234544691103755941162246643165073132219718972819590268118712523788938406038118914665525982095574817868616546115831328338920259733829221671918579224493385583958217988932077076853679532533834083416263231836909704579412457191264102595710327832535978609772581969424955194144053931532833496285611493243614875015902336044674748082283143289508696992594687829365484286071182689802440470732234763904147569245143821804655175272068721611624165552011998412184960293855478862890840306751720350423790232840125411425543848151204099139795992494916860707390082228835155029219973744915017024300189600079757496921197399613803843345216193641192552373027284680350077916338047259671925569401114179631074217942458385417337643907723337436140810914223349713854897060181437155892636921331376147723865394820989800374517203478255399975788242965999779129852569288817981700835327346591925723701961928640385184383552806819196592028433877992444126765327977333145710998321621376362098853581403233166995001728485936434349854033372317903814984265579449968735612567088767919249322003830205927263387642278732664622640321398706672535365986802253215305728628320801185936534632238489112963745959344662271606845128848656174878947519316728909272256748984575574710367788448597927099021197325867706713320833727493668498947358287862692991078862175589438005187088731703670142115864606028012806503350580026912557097880341915047279697016302250262135341925428641213360343840956988866306933253014484245473976288768581267048881251125565844481841841167426975869967417343299791171689678982872703260065140976461006615686415465022277086043768070044633951704650958482243801396953959873964540866860190208750873818409680881634614009602869779879662963025667417434917397937646506637607113896746602759851548663502820476206959958477202184306730872444531100483732676157411404474940629099372843243208414562472358544277688586151653041301662774419813994005324556386293098281996149637144088484120232150659633124864387177107888731349336162658375585959077847370582957105311114633000700737858148119170560659731679274672999907751210879673802183919559406952637892117945991970800501737351021301402544580611381747845974386290445363554697500377990463391073281236921302365715689376040590714476736255560376819851808140281530649334175344507971153175517937878790300193935738865862121264073761936237840794190428006185464683864314133965596801359090041126153681607584622804279446540525623719892770422417925125105200414982752717984745412926762449494781290149399807270907509830922108785516434547059844644799650349771715740612922371958443694878255032349670104052312417766523050134691830863892467069011930241990041395085319626743508327177025620877285255509491730603324143696534340461986149310371310283003937663529006404383392071705056581410148747111784812531457999027654494842528875036914076082109182666798514358284139572256533811976074527995088296627254534996426994818575431455792524949451070106713651645075654718231108236262488288366832792115358877818635150445870719731851028030351005919538349785391944083592824334437186931888231558238303745280097823566656381121380579802848735991472607042562936006853112149016909490043071553608058547949266451357356384704172469984305856444747450354887045940735806094206943403538854956478259716734796785925458263508495441460611477448710516033301536776348513720623665920526768823685726842244665537662230062852940176891461925579925790810966025873158687815355048287783215826448008448147509782045342593805172387636676740705803019004531260725035704851650169534263874367924821197811261919161510198783507162342392268289752615511659209613351975923891428085262886467017980285824708853616680979015665231846565866639214395555549571226608303929395233147109635065260529487027965714998759545102216744929730173033439364618270894302862137167536360746546363215044271162078520088639663690495831302592214387993285673798414567709931451825527261091408959588481338999879777397200359202446422297678406869354203287142215813942579649432434864481284815622923038421171527446285610952703313298761551042381827335035704029533004199896521872193728030429004212100014534493876443047237646103257667381272030059759563379487863125565662722187861082663680827242360548591489019358631418076226378744234509509005661825383951956664596103712133771564409124033210458275264285616890954095124567910272611293997846791286272743790963750864203198953279566076815848580272697083621645644246271196186065269823389175701521872520792329647922187375903372304031160475805866707722985992105964274558925999983109048869178352954517762615732469021557589453290999310504277729778937129005588263152754956376563408308780761991804144916950610638282823893720724407648110073092850086999435777413175718369146298575047967305699446300955788207244062307195194776741421383262928876001470356324684053592959069336875287530283874492218844871892123029098335326879773770802966857905660929891866619810895862173127317781787124368988289394067314574559762848710633874446582679876055217006669221071201607487406154288574930775448008215026002382731468550534975280081601362297859943388508299731348524261315428010517947983825725213129025140956191802180904099567767433281599218611482670383557069574080748114656544471239501197556584877391920857581925115726569584231384041165665553645449259233222507353523723412635957711117675384479564837590016104161025641834609611426164800078550257003717728055058415752298821041338801233380412787308715081499838193203624665383920986170637618493519589593872541578582031754923768845341710727784295259076014303269923071273416271152883675669868267575139368181763270322668608542767948571946008165428305660012498594645337926787739507131626424437052242956425425497369961121867434924522006888122463591005799008502004230496613606015144760801595230258945105452677227609909435423079803227907942009305784250814186405275007028848861061720224416984699017123102150998030530222940111728695086115044371302284733335475523824544426945987799051183101787823671858916257441575082589285850007718917586868773880519310869875613898005999076387468826707318804515367353624371479984900721062734575426915227516262015770395578795508281277176188273319696692268192035218489873879606447383271984168427342692873834834096011640567118442688728888664959797791402186104825126396876076959720758085432678383581847681362024986692576990934840805343596925186509860095522737824993186067918343447414157567817470306079241617531217617481199577435968897400985800835896211244489446111765871998180825740387160368070259674231743573931380458809538425149243876635549504104958399546508319789482370291313222011732148777435335793265040697166018664989177721665261749611383820043453689430113409657598475937650363557835994592470191619279702051211261892496042347919082962474700206925181128762113980171532405681550544876768328270615490723548873223653199940636968220467633893911017801413391306968874825865704427743808414058125692651797368935427311343648010497117603120819817793701884493043898102030427632381888750723204657827876538830328618571470166223873708685607205107690434076537506686974193457991126194449173596902285377104350393449831253506372921162288398017971863021842139856932401023627446786791021673554631980954009175676763841851687667405616500543964583562058715027649245140893177696400212602446635008658207950104139136516481893575654985055254517287816357712500443727052257448390080640228298733943086509627885531071109362149850293021435199121161424493756051450418661197337264821890660221372347240430536151309441675566166012426132429703428445501526379097530780129052971657691624023494459230203043250754970650839272430244832792273702258094893645561489892507576753411722764047430655579524453786635277945088954288888012348831311965417966120536725056918765620540445773973187275442572348005152021686748726757514246827014185887524996148031559760489596468081926217651197083756976784737981125751079822800143654374181607970590136134290135322909115280393281695613936096533728337648824743795706265431339038680754583524145670690648959212321258132316942326587322720032255598600754139041518728366577516794276534808325638324941071340876212499485970638870744156651407101820022732794353152975483864185125142613656869011724477175080399445399812921333477632346190025688333576941710693377670117365457198334747987686586643035682943866254108952027088093137163169028794548622538697242813151218244344775828129681680853879504007275320892287747317150247745347197751921489827335954596488025119501065776515653142115867097787952614416539760023956380337560500995157162277621839992156247626099348357159586609477524302036315133596777569407645045590447850666415777256638289479563068344898042745120050648073454600279792048866524333674465254608944467753484572348165511242024041800007574240031495571535354535599726462555175638348528154571738291445197451040467234596148128405647860568523284699936484421078742260664155784312539570514701049927046928397140503097639807335293188381058892884377998405358827784324999349525602355479133714346703811002847319179018285562431773482621642342127330933566559950628176901139976657434057034567839073965639779060876185192412082421888279137522408574522183383962632876113910966752693739222079089188696328323883442314902680064895769809130673243081185220771408861840375325122730083854612205928645263990745981436894560840401841797799359361280916473930203843072807761201158065332801345522945464838223352024285328937209851160822258575342309647402295570434489169762488967767430696692546667763933077339179429595782739450686806337390445304468826696426129497996143496352358132200727700074051132737867813529061460096500941205902632373638286049241246926289608541711903577973306901148388707732468540389818760767305844522231790410972361542674038155311489160779203190045301670470211392672103545601733374315823138211881783503937601994622720596856783973747503808748425879458855023841552911308483478827087449500274359521237535415286231640640256923336144141310807113850827502988531059482030203407800417312279964264460115902393305512536924313158274828766456765065436742715953461116995148828337922024244290682161438848011794598761184474924890520760487945195753084288413857777574906306944575338951011722187198788997206635535759596812226904920577853382393526102785952844220105609146344879107948219066675537387977621392545575242462069200281695827861366022598771309629734148378753814028539678456005205837522487856043213772487372997945830030194689172239611892476666586085229067800312013981813669228949682050174070381761359120185815189301272142016574325313273398019469446506909273514862076763226666553035740655689206301140997768623583328841134082404194813615943550448802966762435488012195751789694455391948779803473371642892935624225062622124955748145160228563439683758781465716255330788645061495718827040305250027523233705800356462754856966218530500411675681384206334207505557181955386707719448155812479935714470997692288696357148960963660237706296566274885902621910650276929668994637260194866896588124907600247248833571817474654480252906584068308481387478161378687663796839291976314117016425989841789993437870440698054593774017390961326575412254814246927805918378387400219589492128146799373278458348804037671907726805601611836761699924466801585402203654331472178431221470697791447246548265475837317542600850788633076980062293100381546221494805986178538663329748929797853940535085067257456940496805871420100468716655952805142570899077166725239365705270111529463198571103408819244988645146730405722213283042168149024362492138306270941077696187470158437372316193189049294654110140693869726568043592440402480579716305073324859177514588236980664611090966323688841903965972026359575201985935519889209988939098273082623879657161829810349006153365951376294412543566426654603664773836201979789718746818963390789918992454587626569032538491413151690459740663067871616025463747351760889770037281493758179794798374229887537357686045569956393264871482123851754533168091347800603291263114966197496757975358847925298755129700710970327357194486805038539183958632482591265281202933918051745954724207190866167030229664746597573117610479084747888748090624861313735645468896927000232348215416443119839280989853759073365649600371609178936877564862046436360207121557654852366128355809320798344849320191538729063157560417802163946725261681058534544311868393487859079079273276011908916297129681602495665888769696854513516602980792952715983801100854932571018932142273533423316938878022634154867534386147495296343522414646590973092824788494835088345398527456107451926406021869888057400204328447376723094528729401749674644677404916972618492785324959308098804414165056874025528807556624689107373526366910289664261376123544332736678179320242420389890386812289393302698380722431743691004086120698692731887422052720520609788472700099532351135839368985913148709812205096064956431914371967274030289719098369642455718192590775086599728918293725287021395853027837652153334876159368355217388194890698844925119903393794617752574327143713260025634376265687794255363781142830228795661308364916156813193917223464310065735389680662428761051759808213311771559475839334893016326193743105416491451814914893506884607570094869959778315698503236048398185876853952739782187520712042767309694742685536624280005907323087309447113958221244379460010284789102191268545618238959995009810593898966404222709549340934616545982936939834044456167946022464752780724711259485406777550936740910196658435715211998850487795532575179102026511813896567429954000646677684755104997297462137738548501472677761071346829260024167510581692342989287792993330285342702761698693289874625115688092958806638856100035032278094836527644353676502707083995972965841576068798455579849464785601139013248232298720359753925268092801715363210422783649767857196427390972645896685479235167506968852279581175153900319688656136740572241112486311436306504160644696981887337676970199693571404559947381845817328300159393572557182536012649415699726455398523799343915956994497293681398016591776228352617506202464771788526422436358363752838561760038990646285101477318718726930253692404304424772443353681825265232285767747320634842829882324040982421073240769248641573324859289859317782934627758518140879349490659555442611354218510124343290504462666974522578279639758844489321586628373787110322130451412202010705683806291236774256695286581939387904019006074954972640228180200775193422989774541780823922973983704695882462100168526692674441029749434147787359169066067903568888678796129884731895385269095004149334961574097709018732481942130419711123651061193856109887066541292916978177760146673031189155431767815757766416600239592923319015359025684147483208283364306272142591880096095132414171021773444785085706598974822469492631635585829195610299781088186460032117905075559189196992651337326990974461581171918482948583262771168496695364723607767030380499599952046224526555446896895725096708889213055262260624159113564066958707373793431064695365250883093491805829753111895242206485922555861678238162866045921333123526191594368322000380083160158132072268362080126509092832883653244642475640860057605385167874157737363490006129224266121833299779758993005068452088141720529508311150684131846323295009781119582449799166361392009889097745166582447218345491803195085502514882035350596451983230497558671687295486139794526758824132315474377117725373517182174143855833198294292043626490884992021472433251645900150362579511548716310143136838655013379741459443608126413532113579920645305005506387998130094615093592922635038693809511597771755911924836094415241217499948059673769547113247084985979858402531283643110222519711746608266819984784722313531992979211334383926278643204213686246628727877920704406252673001617087549638710945027836402343441422962910615878207564445326973831808399752668491480863507326397684362496806968285624760894449265396221556020889241426758329326190653933904140943428915631606509051157473868552736454247670403966045469844929982823878994553683771010225921819867279737045789790468095140178998074797714730264144144393377618685012663194495772830245033690147460246099255138384535293062179771498352926588577874539779219303647729048227162929347559608957006686069144871492487448103363972573436250271808282995333250539872870676770337406362033713943706163651733177278483406776359183851298214291405201182268312490613582237969462869388021646547465695211350151321948128111349726547840090763847375574430954875652778606962180866094182146792790967004978508375118073485956442519478774526152556214450671952143331896994090538536236182685775118980022729500021218039048409476049453874497060283505946178580576040338472257585076281959802849681700462221034243729814496681632289951897132029063943817522955826003411258957608413532448570793286690911212929311665337797938747905846459641424278918838693308755609243963307716887065388280357307012736089620889274510829792915060442445438541406273527921004761144756075791980897240470238360076036135884986806991492880147999325503729448632076507479060615858266351178864801522370625642021526208848793301441625962256744861619614334698317116314177606468198166749244549445852236780941061270084072404679387211266388557967199540507644579207272811144156715860128156192765684519487641956732520052339248723510375459396203472394544209840748465026995571570283881383717254607678934731905153411552437160157748598554722442825859636712392991439431849303211016364464574908164196490377976425806819522738752755964327783564581252283133395474994611013476498348800230000950174713710523486787072157687425073983218409330741703482093387540725658905548360455341038708940719748904257503607771198320913590095143203241282490336192012179101983789003689790622956787153101795168605778573633419712546579232348833789994321911639931009932825877909323861880656777023814180371482809784170010316588437389209325544029280413878069913204272008168000873780009453349351566036206314052682713320585582764933719090353191068096739249406589296517308840657289784458843500158424134732783586709362767533329558189008325078896318652959984016449455455542972087773008064943959588234300178923720881171069847551836752761234098951410344652131545618905486050318122792768041258842602699003166183309682675971844475967722221843779336976180783944119457430288919673044589618339735491403871174310983815257956789585692451555781732037566667392777017910415302866666850277866135953049404377383965261169872312572236797892057860156688567220453242393986503342978186670547208373058832838617177737218905722736019925671499150781689604964152437583382798646992986647539872403018700094309637822775620267518390132721003829111667030046918409379904581582137116710301679379744352795681352606110288362019065666370732245337906369006405878438788518150141369757286902765129425547958881339616786147373762566134399339580394414251341804611710052506091342124969153168769523246996392123483527995061804551207287936849703836751624616398551246968592880662938666424313404945843666129996134517540640087947441394154090782457316303746040790304781164034112553021584700128680052544020480639617694561637165783470203529340210975457887702450308165403852645164473948877417233741803675454596733496886239145544275111844384407163502564974420537741044686601828818206848274779695394657360756486020076078959083314327341940734177299877391870400031491807682558143132215812532516585830358990807329096844872204900970160752276291442349913302917026509063696089770755022194336535515180773444026087424581669310935596063807388870299408864111973356243307181964293591283497888921826516533028284533733739840819271318546330664843183439875415645473914011976894762557369987964195699205084418054230697866512439070180465274345437598214906808367567927666826423968717622455667325593499716363233431858645512352300036595689801517606148310526948490083289437440108020188965313809325923863935453091996347849865534752811706083077584300069518971418665945024745871801423952005646917321751377311434490090495884996452255030270409775836861381604142028711606665225353047031175944241156933090420266508966925155939913648731662446307766230862591969857431454960457143741770052021795684951754616355341249650832214600936199597318129675374490468175117469705749861368569274548077730683530723376068123008242923700281778806911302027419372313662454401822837479004149538588477468772272208766408170118634379398418834986165829316109669795720334952475332160339985066136998241013692152476209345447931061066034043431479544632110540178014810300405710055559809014966162825843554474452737261128214429459503442213988704145069464769253307197775147222932465802062670206039783486625908068158166465126035342709143148402516317737610478586575826991465483078146844408435833274965502216063511834030916784689687495427689859407862047188842893755955300463559093263399821598201160063931067876564607038896566631902041512312396040487558615691074014314625489756625819833130419684666945841944684891260172662768196117893587531121340035416844756085661545679098991448859302915989921737055942701577215675041812460243723691447558879087101878813740027678633955235838047606502118727861109339493617997889065091161903456626761642765261867876362272435005476555829623497012630641143709720013137557455939956985914341449169590999879181758032508726237572489539600433289385128739916073252598249043543190522835329708625164830802186708065379816484998553709039016556233350937460644044937714832676216639317787500899785952919207573756222712517309969239663103324086916288015081755781259244278868568155421081622808068053899640074955516642705132091688578644275741781755016090240311624670104666701449428728152401815123240997416461486844274556135228410009148097001465928726864556205575656463222476401029575960891351307523068743216249641389557829992639798433795012913567036837231577309446988031140102143850559491266506318607150166709735644214063965281524395777882070341262658881824314511668229737529966745887989220421191055791075951752559162333053654329542131914197736013306831511213850950883044260843950745400341295493648888171903473145682668088856556970450820631666852715004329253594973095548721388985488063675032853561609893237356577913541495575374302205207858955305300848719072779747751730650226826032374237363177434378328916017270007519488483619740229159571477526449665234785183588528877461833989516976310862434450399305654747595428780880628978461516526203512260456822009797147716127558327975299890094551193463157745499986143818854748117655677692604353899053482281512704541141832481023579292390275814952571358680683382853348670901931948741012543138641177914517932662870228097903697004272802925800847691949708360316006735648503799324706093785655575781011543474741962018518788401435450522157156928052074618866358461296999780319520263065703238656094693574588608196997823718065217543103657261908242727175043699963776232919535701728447731842308429227667548312332493211982135048346316160565164363710844519412801146074587027588794373820568728640785211148809978888326760253795843962813891202068994655239860434783654524350676470307457284770978777580078557523055327087130852979388497684745678413918957843643079876642386334256719211619392926647801370073838510292225611762487517270706216374859236602344266137303015956678016695585521214780259199140325922976820159649428881461839574375067321772946837728452295937109338590053892420790160798339547792601698119981171061731340430219725383295243535472767287589838888097112590698936624608154193652077942825338423815602139765876263689138160032233612552806231143295606185534963849534690931542059278976642291586243260822935691518849005443375774892890896509154265828698535769170600430218573072533472690224785781297387770230200427319999876990400128409033580392596283975514741833395278497825752408112150762546707242305328079636126965576157233803936546159091419442415690966530234034163883556506312104377319707408755258198388265778262542412398319339674978027345883561269374720635303558140255613335625056623570946826056048665626347442413834933438335520406240023603238896986763900712550776654961681944408499602053487442220684177758876411448183421609774131502680030964928827909619646922072488913470081335829387404770072010237974171780968543091134366578154086758997584008006826744452968574295620070594133590876718548757509034655087940046161751939233058342457114351028051499587503338571319581181248388587604383709940988457332497903770557882406677034149343661824585104148183205343208963370603217915127491987367430094964576343015097564589194528750384166454647835743339119681928917112249684975594493452866315562967265626324517532565563357080719659321798305121158176901077725213628605749582766681645047257482884939316508972358500037127362235490427881004622434115822662662637866276069433344832587605603872521981559214083021839901196336402417506230381960924194725913255141322836101722875936798954274887201159210189069122496660296307492317537651760606712017597980777713768251094769825942249118287596265339914036932166366248120345934323651722672281891600426126908217231202554685339612467434092164105520212468411736868798223211071326933712262521672340591338171835048189946606521496035187527509885886589500947536669220679130494177867345547277346304496363231757792947243049905308642772652973661796367399583232426694254622079997683951610332767322474498202409922770729286561513012909657673128334784073577825193384244988627587745354388430321828546484883170825957477195006226532561824825281254844155040205095443014412847736210789347061109804421491121198427174026569700472932011982681464386038281487974288139692196067000021884134619586165791784510787419795932864849034278129893137836268302572242357510014582357607679700163415209743318436682789027704953114476795000419559741321467812747792852598223475262095133945387010242587244873202267358980617439998435904029906600618036687786372975057333717119476432978312049338508924987213310525309032302634245907266116280533800420962635916135798703599786891972150876868083060639399305357353462966403383310765667810157197456357003452011505759772957875619853174622531974328598128385290795698737529649392990162268491631262411703394742696719298462568051187520571649509067239725474664154557458807556735854144815960399870966608713148736621330513530892039180603090590252544869800925205487548607021341171683537812594123400139330466244163694294741432103975828919465359071547734045706755353352741584189545705006172344433433831870018792253847278683638683634440126186414030683848164031164762398937685308424390541763845603753283770831998910470994662398639404349092110248385173021691209832339305356139837285456582678705634449604232895583434763608610702991215180029186171749430142412133789323395865331448952877985333174838612860906629048886278216808673466105549215448245021223048468017479167105039344143361160242318703059282156998365658565924961196734851838650925492259317551783086618655690936205288576227895771213757586587610377789121263385142120609243675558266027503392512311174071136081248496908349673440532034485460657787688597260444223033644467235191576560432598895085390494640752567924826672175981256569620310598139483552268087504363656966201272132522816688348229185987867402912483137597371302058016049407314561326811870321849255785314764817271082783590900277600836497541995793688854871620471834033990549779063072061604991689302523686160588950117566210312104558547690099326730483920653893905029947706593616813161863427908091731751552048891594424460469263788970877212606831091532843162250849841711433071158911677754220823099745565493435361489761134074506536438289816177151435430139924380820051451751809033710481793520174712990146559681943843288061710405583652545996737919837366410681826599502119567218189019902329435110625380844349865482315465345590821971386103133694721496419744853993591721241544508219564945344648469908741845213113585911652929430106149000314868205270901635919591613470628767310351960986436149819937731463526539777562399154346026026955590924012111621009181674560277731598206678259008674186706479997527895656726701268323042601677338000431837825201238597973182883371062113305656824133308101598050970523728998786594482779376395546356374574815797909949634108260443833776609070640254986418731468325610217062283247052305930814284230886193874880549020960145114106293000377398920405838312267707955678018218917405338661027043036964250948714719623952294743235474667537155761732571710679421738395512331995128546694243811068963237748464197796032982752848979148516170663108526111594992313751156245790727000724936118674305531246425534452878037799756147142497689778930216706848772694313549714671187520038336076111802405213126575123460785752187736520665337049719393131726095275886211567147362848478460406168312785724961418054961144983650205124016835405529481144963990903581396151342213086372443240947080708479134309907788909233019682159158918544424855586712057441057241272384349238949169242916601784499127510618852802405215756516679544931150988476678991020584385884458745536987109797367804974323640806003266052992468365380395383551386437771705203804075265816649580568736277448324365310859488383832614477066575338199846488685016465361543165120887321874209835934884373458390266919569752820008226861209729546652772218848333701051490393280204379762580724121743731545967531349921683793300002137331751188184429198957470723382347069999381881595211061136401864422748357317857902977376976536500730619375544058719025860689492661702855592148947332788919660657970436750211036300379066924008431168217537060464745590424818902392701004278115005875005595378515238390051929610365751442563236062594088561106400099206163850031436553381137010895562712167166700117585316679608419466887516656308516413610350799488260312040541847673567114402372243595454157547855348795364973130377480665068574283711706443545258968786206145666592472510446198696762606230605886584161457834483526208233876331886281370050975475532308115834973328745802612558854447649506276674224663550140390924358681132957750423085826215329486895887520370119098980555090718954286434668902554532388392015093899432522739192889983885514139033959453142590026030732042833079587436291055801312182400494818142746726700229276686690502132196605496581028642532104442687572171816780814954178523435814028299607695619034853823841605770865035747046794777458584104597963251030113386631934175837735054589862130246713348076529103906464113633018717964341410766432069903412161836845453689641277049267840445948368237845638037095691212295893158761561239568597308393095286531734699464812964823687789822556109182002774274366293720817542155076734143919550052201465823155292768044454568566511415766130901781156633586260263277537682140496631884968005330035768284807994378204752632869015721849868741120591920839066397701853170427310669027859507384025867052006434740163999139105875737166272139694497597817441295961756991262790213521131242728911959361925505145410847926350879146366270540113676109089469537081858589510699607972735421382767424803143380305597133746364101019480357369790832768100151244579216087753232923149472553336639485959951447586685367663761691002419032330028874952949792174803264464635940260085528904374834762397795879674899341685056985109474308296969236818441018933367454369948458532644144792355151207784811751822360273454196160051497988053926187565630256618354166572228123720835046899675930108327313049645545807663160689394811972820841728931673621539405448436677771139900508179237600268340498327811993009787019704956467719027229802715683893716187332645088620109028362828282136345044901658574478939261689946797558952737338984860011017720614043450356311468408911742391483468159280021361437406041764895307610160036645525637232382954087701439775149675261244912456818677414380508194029372022310133618426948686182685965906230850137932847434574366141842532971715510035341001883523349042843673364463323014541987490894733356244345408393425549822212306948633310003073791231075591108310236774324012361340664142965341943912036894137626034198045819596820504330030896173907605295760592199748488233656583437120406724925382968022969283994078485138739020759046910789361477677891652481495080507285605941297168159694340822303898574638875493716006264897045680383445504381490763747614989794364578382648180359393992007878336079469496314500047394307219349199683821779051831557576828645004856011988520892856259379423836084979493707106616744899922770847347757898284789833591350113643322007174597453728035239591999545350084944742113909810329363843574685877282704386082968329400863679160274112468645181478396246475899481010014298411432855903834500591918447738441150581153957159197737082397055808273969514356484912596508836717026167947562393884148699751699166046025870137457857161409510770911467435861354561045979240594895722714181375442741787890765953010191706999169535015004227223204028451500305743353552555177036634722262523683669124658503102919144618709429890121314555574037317819095142381382826503032956756858993010397380301689148157443518430413344810763582060725012395799550708887417054951555870950304659382550443173933305196655685803855498726218456654455676893038430817774936464561274525880650028052042909110620175185587465693421745988695992859148928156009036421552068718285232662834804853315508708369502140222441623034329500947061303507135754834494570896148120728470332104195916478195594294604601406981723910498260993721769542069509943646186312257054918872292129608437942465645327467259094488114615562521815484941450231739577187981646135682183341476673780545014171431081261241411690893754094167230532130084205831120211735478273887290993564602652853771973424275446116759517165734028292865530302103361466786103260365099736818478862889155912223476901049924794411810899778145333074470340179090934597516558243187281352362833557093141382522390276034038104362856585412646788644661306244087462811160838532476027607990880650398242116000929488650388857885463169176888485847479238409153663046405199351673767823916798050403302682137083894559970117632756944847038075807401771510497285446644054083869425716829473273138951821385752226361630093866667792096306679817674195235762010712444226070414643032684277838297818231528558315796596716391867261997994690559347207635891209411811899522018030020631357420687009569529430243624702303739157412358513897562495713772078009381365536491458032914348655366551630779247317988891894721971538216674256058505612769446731700204188839506319125018981922602623655352155109088269948280940875614292667611904220776167951834524836289341868692227045948229073677199764721559588139523649672711897500482310952798159992609211675597295983509630479101913518758421742598860227161754479438415135742143866722941674505839068525531461477154141842999676033503892056050276254922242753548933335274857200456949524805463785360460721235994921251224279498442334269088437971218010269171423227896493359028028779014906509625231358457917912090524330831198784954266331792536515139940496216540063719541608255693916988244941315741405961399919926325179757960627179033296988803374179330522848787249155512155885995645789043767614311032379674328762215093802301664091067779729188487085769791285633286334300169889998333734674712120117504259544974541634497633502667499699360926415713135245502360383437916059673659015526804447989112267647734073098233924979454751205630120275077051426611600686133997330432391174930039719929392974089299451929324468096455561788951933977237327853381063138139482977111278152600644406970992420212139741931716624864269901902335133921772971253629128504969506212429750566761665522617750061768211615476949868363645150606003014736489412129169534135023083977659419400324813003050868981138617910535247576852065285612624134266165901162560748186894190067606776742799340476364315818726744061250893644077392727754142387033257087873839772998558074384707081108696082455445484169681288176304466687271817549994836104139873072901505608872116113345801473382107112563333526164689368860587179074153701989431048750223004894955324260463605828904932226491502029520734660661976627658857413296026789569333302257193971924444043880588641046647529700792516030725422708441919995829027139852447050996311884425098734815196240836696593877947556499559561766233298013382812917427637728336895641193535292439903710387202627159181977393285081836967356091549587198982677366944432392966154660116151081871864901241385447451641039163229270739510741957035301073390720606474874072364941309046995535264110533782814990306472305397857146040022566584862170760553429016370148691113990079994138742562146749417204460407047721186043988487452370076501389942588901885666657100113956820479884911320745380324792099267941575972743013093289433323113529800336557125825661873088487030607342714987036894406549241968530365951438094833440028984394025241815355210145620685927288148091143062719430515895135344124716268009102198695464075497168967105566989306539558158457092388722293566024184404883245644944094227798257604598632204788335610695344978520795477843862638446682581091045224084500151562171505489870401315007893936595533489901127197259360524905597232897747230959922402478209636620674239748221177730447526952562793331017355411550056381500135417294858283438503280565925137723934324785017244360794610645150378951845391264538531666546495667866289033059656231124375464435994861280930694053294485296718802913658552424974359232717021811389208412953002770533792723933186899676039052627355591274245592313222910974285700433870544909816835726199746227523839773202025745860224500279906478814348227244265199788351935915652985072117348698666388794381808196264288278712746883480884764703806266595546396406825560023220678347888184569965200846750264277416697440245039555912971083853460282387001257695388178445762463450899071942424504214394420894812028163898460962180269250258733208054015914958939781682255564657277992360893916529051802247405727800472613659621421580081725550306200400290403160513839131139795906799524358829057817490617926423373653907523643617931652064184484020064661003888436539960135455707376079062613639445395311063166898270990641084500268134745118751659683921796644418091618549594482136959032682194583350173237210231339559402004641482056332863889025919297800245305767595578146155004730637136482773706111148539763881938983023908913303256452682341804949029185538896371313328749250553348520298539720235846073846782930340752732919412338623792378390365598765318753909753209395402276405543257995850536458633049202623783607512487807442564334302069912475636084637927189798802207382066928344222745077620543631163599219718902881829596398943216062354747432379164745701766991231525042165561832272675196476119125307568012469542122645601806218364752431346639949636249575307286223750203666517364143518790653803530833884820921750636184490989663902944662702853703830860156575797772169047935970017080924959746345973183569397534251254097246443492637949927267553064435170921162427338358034995337188263223831198304826620240106631624720612348178044738241507494894128133734044886469479488507361797188819673855416193417140194627281589582104279335725025496251389735267570225186632946674658093678653944009034676382185230436872466057317567563792432945303889840744262800220006577632215064521300401607430598780789514652928634637384445687073216079889973357506675622163158359808974249899313701575976332079742946123615885381167037909498190748441898142178140825202939700640566533693845649555796810848583654141248471862424534384528559779724987404709410253253715083461318493142352627278832467000153951330281074460970078770429923412876509165269748916357048743126852482835876489480658722807415840267730168071859430915779107435413298523390556309439139133326179626771641492570224038994465650314305093134978998020605924665994661661353736901718096140323010208775651097888944384617915611696671176978990428565295247800202622437106211937164643548256308951001804954837804596370516049630449897545539207558393842694242350645970155340478201276886364002304704859967312779289847009934091471905542160119983037396422229060570753410039569995682700045565227144692396390068253942975762921692810690770701628525764482897061331034843239905508147773120293702959945474695421752594621667276558853364290540907215572683866108682429933349797870080451981157053845436786228252916472230798419303766228997591093267488027793249778347205952854872387034005370992996274476038153983279152616205639663921991161849728493999207153662183522619712619050714410104481610067057623307956615361335384216414876675093867956264253292351860695015619897952811454069023173390102427451606749854521235426394308422803330845946076977333650406962532427054176154196605363028381166474551633508090912383681841162854445204212468946608500576827720088465896199794243090843675767081566014657605744605358106045629282855176761004351028919821376646972970843694733626763889199401140479022479794753985198900382632714805148238112003964906565619571581106501366122497627024103410068044242349777237381422640142125682736147165885493144410280711238096393449326095351498868985587017250613734593809281698937236154637087178863478523270102434153536076674462003247859693733546764763868887687429720667739779277532886075809848272137621336414856212288256303097631144166769476527964419553381301857764591270959887048644517323766741081032414293655468219570679957015731535828791008140979808168236935098693088123386083866746220102681255849979709800502862101335668519024331195858359050035890983524723415991785994195439264066038274508782362358404483049497181307225607152836977309083993877126449786516105460636099120153015150438475635095793013596933705737964751067022219992721958625288064876105085342070589235140749716370833902320603751439083216543339482578101831591437794520114744980580595074500839997738565440202533654496576838632791395128818672683497143957271393312105424082587869176391205566883466010522493054757615115488003111063801079934166777119490309101529038626360007175711118352320898611800613522006953362897957709371359776608056306749130488429930353004056129288149560758535336719720687890117275223247527032150897655945348830110722865090653676598682808639069414855263605547243610692607211752027682236290633231400532707059069697751167612754730378487640462120210738130242302514694478658348507335885723486690868588116285558749912400600522860926937221246095454168973823716766086759277245397350912281195523856967287748490508758884680694271056150783463761062812160882149536548974942210707323670058461359807782173316856309473749388803017670204703952118175196458837043965781496786387101442831749193941614594913581407467703952607525735271899226001176096275130010613002631961551892565263450887805371477640408601084140677246998108870793159534870999704902981408818084881415023207468686173871578556499492998642657913517916953731399772625679345697246053902173992714052839447796151791153707672424986897875990439833840738250738186495927617126848500386399941740495129450239955140173034153220474333127862501586982105564490499710809418799985164169617498652686035584107305104617949266170588508259342491681434484659410671353194834757625038868797158274984488661310845331513746733285772217952592536702393511041538961803704320171521449715546505124303275497049923877182759014462283977595639489957939779966809155861266839478274354378211654255925903799600691663406823352659220518988533209733721583244489038219039351958990174490796892984818775760803515268502825439491711958218390694461074706731106175906524793406585683934996649217417986810841825793856917714698383628415926169191199307817889412165173518839400683114029541529237103035726952989712380258097523848237256242431218099245405742662577991871724660316930432399508105629732285829233227499339300295274609013390988118673596592393670787139517882487386795933925075362160934427585813568188398822813106291698392601082358813964164334286754291158446065055030058082072094024004152311817048440298186845617363930590023107443390042631847346329486492536951757472476165656115656065096995873811422329893542740012354505453310482407142977775215185804239076028385659506607946167139334375080374154528247455764542610257414737303494316179958267382469626034759641889596742506247581163047633520415920820907677260717241360916512442162394519353349116257626827464923821201652803898264653638691164557440674328606172356799205289664243294034635555431830870588580768644531057538806405983335921493895914610880477270724544732682905184923221254516091999477062663593550358340210552705152867898305507147058374923769410813228216015957098262831676013820301685928203578723593023950541394911677087302739530026714924118266834867411993688357006838880412167820316158283675576531848596252521977784946808583625050807581739015971973480512743592927322378133175901361557809514972996125677991794356336644449507808031762219854961373519277610460296160937977149926715546806597235470044487536336999972462428946131486446007562133768942506456474154767491059929645688022668981789075429028766718351404632600354116639602868081047948933643384915442222256123045066380079053277391335785800090592074124042886792069861703236336625723487488695960688483009738727210937527571222124262369076293978326148488917670290195124013593406013005295785707342038456580125824732465564549415062568927955786062960267711145728866466934929806935690711376786743721869972977380092571631240310525729657420094186906524062482992216545057466493462238736077285656188938523277442396085303896917962163642456881602024895093183137486732772523662294419429577853617744510660894042976262927265923813601808093157355748186645056910965666011656646885580975291117738537652157210762234420270709643755383738298014930543658757452613075997357113665085726064727961492243053818152697770633025972020273137115812296881687385696382189713172229430504291629324445297551830905417004216250936971690894853417801398042138912533034045637758383390423091772492976918948954214014238096620684844787476232662295486737914663843448208832613167840349894936475671032578229834656143501807895008510014556689087439743463862179255152467240973779932802666200174035087537011143613659854508009798763165759767596051583502674977255107660231153400023539211599604153331098188422075655279504937910966274061004355766871566939685500036781308282299799271516083436902816462896686398368336717329750269879878663606934797002187990527168618093238480546091747723474954499484018033154864538665156020436054245707082533184190926546678748447529982089037185399281475001364284894058512283080726308020283250930317479646060354093615197512907895686193703379519184081379048898791445773507994437144248698137313653671272185934114820838141930228769636388577047859769865635047453086396668060662914011169366956280103215804787217275188717164092635728082906809796303213291476404491896431929316173238593031457335278343622671037553312216201195824451485983662847678275887507619993207265221782538131819517541028089852294147681256310830178269212433190984611496110899770340479411534024014083367308100779700419812084501944990012063456977782814132633907976259718134520223953904455839094311124875878968908798203091658130224340087565753577817697934591538926617742260037616716919845065158283182613981822387442457278157126982490544808735649402196056347290754478527525140887396466791290574729822841589322653885045287671611470308136178739329900523995584432393612725337151099286956907257188656445306040562351675749702017064791769754809011647295490388848526940214817973027479273973743610511571118072851652216738392530478760511315160879785436904890433875481829461915682129340709970436195409753090877266450469038334502369514434012258167781963057080647155821835180723123496282590366604125457144250644234063735632005560724912870091402201842344346170431842319163499354018952441327284261556786729581218081259423155564208998326695451446735494788763034215046478678119245056488187987139509071514746270835730439356842306583954400857885833452971569305874759569518711493469329488529711040667404329792541441557544874796564861318205128372179882875362949913751779203802780748014589434132597946082004436077252511795466633109196489940040881260295278140312073071329278745842646125887820622766873933432318865797695897586566772416513216412847882832019579745810122759339585037194778768140854542079068437535783393039734534830181554085031456344720411539651304584483763781510383959415557432231337555920242827757181394509444906202982380050695737314771988976419744527456996565826414236396223144335866297364841353539288978383542905056065415145597590697649607694354430455387885046967712322371696257668265005434419119776563854027894672352125072306608695804907791726560262696882968630749594467318293459062332367685045125240389646548040561234631882105229614542763203231079410299478951004641231786099208275055518304166967271396197372720139851884889741134067358052179882067463098947429202322806239254214842714645108585890310033090447390836705990859103157066492879790242854622077944731314114236095064668973869156157541150280199031608747816694478505543235484022814661986059737050170677159484788005849192677940760300303985169485083196804747985041924815983573972012004629913646243721630204857965945569760629900009766025396588942742572849316284282559955045290866071994120950802100934758336750054437286946104689318177295517446687275998894151976555540649793594243852549929184883204282311327164897282293106309141828171217927700200597112648561942935655143905399262356887675418265341682336197579109446931408560931674454250899111378499608747858441903761632880968892326048032159890440204255083389918199421088920972468876410049228906958504269868045530517077818702384092477202893566877132218268190370349526864003391670439284617929856855405177554571576395057052693190320530983514554617540415563949265830489891174078326595997796023623878222755584874105236108439088192489092023430849888886650138668200857672893111900208694864912694172038479334141514044668776037226423271036087305418487374069673170072639146710097229043742341403829330168733274105936327761846950357712792285969709401437485117681228419832824369739492430030401947522273251004917424771920568175929345568903654158362773770363993007574468115143959711920717965096255599899445481726246813429710859977435061471528771713476028152263001666324818044053503893412048420516430639197254955364152244921795533064709920752228589280385092407122686835863553715865265769356042373589093815160944347438697626771721480430138959416790999586215467162706804225104563379577481761494140844541118048563712822668917634416876766857425830995355577216419856701951680604065194461441438361185714780619952177221610134653442361338698097304118365000032680726165321652916733600027507146798999723522494785934509022571973692305197899034308721323130002368061298255029228897449760543423166951822766679443031295519504831464053793853829593628820990839995256658311132645110985825474426172789794413863133534121339553158860079594681780321443399776752602148881843817284915871565275385644683435473717253053450115890595072003517146373429576645415642828549204840328067926865458810689297959399203075604875866424561482127338317570600970235719884568899167427634408257100106135327615491810131746886932455950181217826336992955847451868350517398932473461776544251437405451973503580691113767299553368699724542399105638866624291919329557249079740011607257391561535380237477801604383372669375323733492154966277205412673878792843106606407122829107852695542247202731568395705677398535419754756630482844119877945768077566380674556247674051736423412546933425111827123812360520023798750509229554130152569864444920101720841434089484686773992046252221541616853594627563426887730600459832399336752365065524466830306700921337528651264158281754924031729635334783170220078728207294043817835923288293928933038879254257204000185057894723686634077662587354276008693030047868993845968655293711865945861096362148411932473711095904647049160027621751572253297112805738722833741084625904384841350003640432097360371144283961822852681689196141988904532446848363628859602847387060933879631222938140369195487888161803848454724520859704689955628512181152757859530475382203681681110814596393593050434060463777068690497778745846935647661324155114518706315561680177589522582754354592676917698731852585649504326690166620196902529229296335557831554670200092834863039339538019680942182889579593515577720814380198836922270575469987448089891365565314922106612586686075696774020190652154613551685687106646420743245361974025274563538174526066154300708180248611885784453073353739611949854603888867278791988533034654639302393695335681855655576276850250178955697373915293866569033897174990227175470078435653735742836120271280119455683701392154450657749012800390214974582038606302417384876875146003249576493306937347676070320560179117539554885552609578561618412421464066256243346878409492212248146746198978730659079800899714077742244054027093830117223208551578706602519162342417526225195742356822001372440528112200062116834174273776074877985639211478909804211425522461619134712294903989102390737759247111759891990488311539331864596871269099411907730853371849910661692360701454207786667694511049157615416775385848801778284731739620839153946580237573945858114149207333793325095049754628353561783927599160572901118577455890373398498528458761376119461550762892213875363126119655305730996880825549372027226313421357956176968038580526772884680511864806163907132465118129346078387629157922478073409040775888532566626413360697775215764399980327997286984723429901323468310133746666023296040395211266324283578636282897415460009625625048109061434348380870084457752894432937157092274587304808653461345349950270422637362350489493324244620764056337028175159393549462072095803873730192531718700722232779737511704229421966001232600796772585365276628933764496896926314268032822353071285402048793725377307739103169109223141960674335463517040151171516112884978458381979313518483957068585448987454044345774204466335665826541079253444935928834470555884787323292789915427415503145033330593426769766441173539544448612325327423817412006038155265305059567046094093520055616541988570101228071310802351761110989628016929063370509790048106709643372477021623859674703234249359550056052711153764380102362094013963443495730882885691436522526384063718890604221625716539342243480485119900352946956326366620859930440802666473414445216327902413961688313536051109614240657520301917361645460891783394821361481258759419039404308554332276719087914975473542078745379430803709423102410409969974751491233768629160607813930502425441912766518275691632738809343069483567574882182286582727494403353958872166083681379832271878201428166801414843392990285950985054852898650025654824702376329685449474335000309828093218275763203319496015663395020553922955017397783039292699779480420691557717445646804425872248478916443943274242785160033841723367552438058515115573786178954760652374235527536957260627394851812986212374187438701795284443019331172942321908316379111301618063007285422425280178876325299122069850054821905819318519357479383800665804220393810278800300965720838996257157208862775334786794699473057553206635575337219839430571076263498650442945286414870741268467394651845083527448711584923106833068777431568077107633365519696794395932391959576344261946103369299106162576935083747586675954214957481275332195623864614201756414178739367963361470001612829977799084487666385773932460888324685320474891040506100926001324423447810981016776276653277925526982341036484223240620381702556235950027951597553499365978976280359013497514883103152800967104030501744069064779236004616280971215927880066888364621824750647448125009920419653140744934884391386811581146706228613400687927488564228653797196034842166550483293675311761429122020005411018842593737147847653569229885860642484332048998994702411707985126949232370997566299841694647062045750595461279188990416760431776365480475196499274322308092161492684870349836919094995038082463521050217417047613318386831473144341675115832348399398547410652442122951749949024483204921827890304672156999882504708906969402307554661850794706731356337393006924709192767103204907864773567106276266370227226932645477499046361052900364275894401166885034993967362734606003278693728506894710855498516047656772908652941809795588357923533947422493825086305815614799656268431247396115172809424673828179244005842113090626555456920241192213359708602633216997061978959075677992993214128868552827828342266804270422207948299066992661401564980465964222070575435622421477922346539458722908062219788292549763818079517876059460819785118934417155318785761200180234725258531124566033350302261997945449524438388647473010302544885307930344244325862717360087593743965369933154538937832088009638601673871835214497298130860232161896678846391687998828357023982742965254376101187347179582834682770250720008219278486018481755352560108399465751271269700171033810707295957579790688517872949548793619887127109193691221121057448442087621413293179931658906914275548905017201071194077716241991359051343133072831511676464240415180971514328365768671597299644917732448663838596881809471658111230068108383692040740752070550519315283838004056439359075964842199329490775619965777024815868713791893323462154177792851474214128207129960850053764094971228795944913000848444127579773317887229818299926769512269128805814286009372822748647484345984271303788493661505574605812324162395585797108527929388816325244605122111441057171050784196468009358247023047740441391185453162535596483499598412593857708937218377544371617725173147905413463973218012208591323032930521486833897093661392717705193207008303237047338792909808508866899092952809698958761554474271280473769947683779434320952990860100705455212655715082939131604689599477481893474018901479431572587491739130213272912042936778030022552263384413035849290768329194343465110232531994239772285377919740506025223370183970720714606053568600867777589747592227440987184818424674166635028638607902408238658852987879681996219546944379913404955971841722869237113334738219142542486001465325687711802121777607252957853203765694924904168407993360435509527055599510591885542290178206484702591117980624326740737678306542579723976502896132417157468540678439249358579007569977903596419498990005029217602388926579845449267176055637852503194238237108124438457982052343711122753197657118880171167658222155454549898484536261338853791322144360797091214607263130850686455602261498961724746229523759067295703559965871162501959113034906177963614724501046660487328032303219956520310992846466876739047093188249275168138377040754878565567652681414986400001931843304799303962734500994332698501641498356047129049619326891125445847622431779874197273704059830739003459642867252065764319079539046401565033413375992189532597530710991873107620424446864673721895510085355058100227249600301574604097952399993167162813332048883916783832364652737662765103494454771768757106983249008869887605716079079395608048404929897936392202040169882583038049994054470944800274272440598373672194991338058321757915996022037219635511708984788720255567877073695875953727669357105786962753124344063447818593141616454796432947690814914038856427383035531697009194074903553622554524272655767848928292791839554663417659818297409862633410059387946550801348866468485116964735824809044856487562573455660534154338295970188791769075901252596696190831285124562187072912199712406946415331936233996471527313331810550797823981860475886182627444716898957088667639641170231466797072601779435593385059595601998599329196813500890503906414270742331231964560439226186090395297541416868600453529214433938798637838201217889807626200419219188492675786406562176178629800707807333143108568329194481354638897125794949890904003253851999187525205704265030719450175427560613878467510246070528135578510196737930883760286965979656111810785245477498126129248515086788193596426252751742865280122220158161796468940984568448367881907384619514583907037879751798607263106930163647095240790104157136596380545361605607336895672493293317087510809018898207750733857938460871713497576615559644966084689454083602265183176671926142181088375777520383329215116104387371647386814616642816947387916867882693882714085625562007770306395925424930372830587766009423100792526936931709620087274178590743675823562878534101744202428408402647777418815001855474660832138057910746253480449943687575859351246813728308856558727971405254600994194226093152738089434263427952144792525099000657181297642612837166962273560081414350975043425340453293039756020477650055681988935936713190660778126719104210901922912989260895739412248304863242289357721133953302671190415459648734330291794583981133679414486366283814795134822602057914743552410749382796734837457210567618209004176437225723601608831370505429863106604680117005465448536937684223169686741741355622871133050640767920118066463404526998442468102366858728405012514711722496273932735412088691922856500729447520266422438960784277129709580564141375630896467651391573793749350843882565614844182718767067507649884497831268440418433616602826212777535432836356602065359502580321610992983546635016298131841138983038952158744414923550784361360356703790120763375183927061669946660276197269954942888715145950340367248458444850080636931834858183106465493367540603152269665469633145585570401403027019404324414551310908339328760937735182605736474842958937056681515271093068098730702503557762644224171185533824916914736087314254625623821191442935697225723643821851868086756181908134018924883537996015351807399049255678524164650017684048141796010158912201208062045585546542709265812469849690717887331237049726609560670538374239691161822883607718056799710852367548557883578871561398495148858135222061111524637712315806691904312198708005471654718161471002659169477356669673177578934682177849868059391292711770765030616628019864403020889834204178718810581363008060088383596864800684821646060815673685146777891776048873836767096134043387273020912040433127153270145129994069422039895010972270973926204896131329125386493705463549801652512505268104227658339998456760899043952579075775940906283525880073477222634493245182042712104368563662071873601681203625841138882957896850792273631438971499779684135012170643957565694260229384659760232106875089872643217710863371783726342169196078616856709919807114805351203555043476230030393623214826132246013500606985623273948680902879181847313541131761834911972440098188434773405010228114367303450629732973392368624060374671320521128209734699492840794294593959956114666406958797043931740532034158241341021126185469685144901520762471676903911622547623636842432548121469082949248199312861513929000147213973576638627394237207122650629166953399843250571844439663090086154085253564972082364281884795682866800758030544306603719145464239458541825163923440594741068178951904707506212287927463395808655096053527578800758841486540695632387316734625512084800376187557882235409565114026203934064403608860046995616647539237039794320755335131630860845704339792868416222110078235111976833422332152349485501017611804453469084220414879445374701563689649346476695941711440209761092322970207612065924105165169188291122230957673556343757324095376512913152651710635779090314871955516117359380507438983481985559970747602632456858339478397874772108457341310005130492451766828016668014817492609985857167864242850333535099519545328685554182686466681325693752225611074815159929497013195840135052345569098224627054957624441855588228681250033288844249784530184490951311702343138375897195066507019865411277329775790077066609937851475498508112858220444127001509233875512024540249199638427480816303015055558891378123448003943697881255582072843553268676249410839366205478956933646513012856951715671410244666973716139325751055996221617739921442651198887092156888297468908303219466999052641628059139998801467300694540632500485380454902556952484034687412133297075200258229558741662288787200936868100203090497085289697862299128054674486449922013813692182261624953031273893639160321678888030864366766195289355553416999730286581212228204336527884788891077313356661508173596396993402908180613183024998517817407957360940725197951958532020655114472818618154583018216588295746690344178341606412199347339221264206136521448412459688771969492395040290718947259605750856459382889193870226760964974004298431547196570746716995817355732559135010590914924211133601553962892021256031451691960923582331523531466530784330304621826334981361160685468071763437886711335453612798595206852392214441746134400092006921877280341675931842592371339702060437973481554803610235953203014980563885716488280013121890335722942563748712046304274021566185736172047933257784905058481586897229773218890870727783180598635014855457800471598764980062181948755362702590298936789819511247915679488078663320387415033519400162144820999671026920182685508977765034982998747300601102012972358627956081227295745064596296109293129133834972677308625873127564453062441379496953804660188110780598263127772267745023124624076471366158061679827135465299490577380182780716556980127864368080344245839360709163400880132996013916363399393984635209132348991368282317134555582687530194362695346363479888626834221466440915857483678030956077903013658353990685660367293058673528979377661998909888927823178585974941165469230522927640035981526032617034134575565149433800700685098537216172475426733529162227523119263154441642593352870974758793786183961717101335122330575680800295938055669745966716665945902400799288529303845969315228787644409104358784685550222351382528651978111232803045677237312141721098943666983161108464715709019032442735202362522771494938447548405249011505614426727082372256488467017182022762917657431054953255931557398690009799297401242561554200155368733579074695464147907178180692663452896448956950498793637919575248398790664398135945233100154173696037645403720925363492821162981637059584841047422971232672518908789002017130330094708974054184067820806551496751545393449007819896683181297869460361783334642936561731549283762667602112347719792041506123113854339062639134385503892876968496514549616794867561274695202681804425623407284619123745163506146982122856894882385064388380135360203113457937866181204125108042509833439756137031174119450763815125032597769969957638292617054976112956614066608679808735267940521903430233349599798953938157823805363647792316325447373284472579118818399965466028593733620613488180828194600849796720606734413029942518740895295526635540708260934561864587617179193835071618759125264038638018131589342773661792718905104718370888244682987668151999981894541763913058647405638568434184326804744009034049090960452664787701137723499359869441500722691309449434446769304785619033596657958040481687919263570862915878293947239560087837369624184403984740269101180852966900531256680844530646541182763091786530210213131669682274705013118126224220506203531093291618037161477189668624728347958485881971369277678432195783265627443275115759497454980951258368455368865888755753319766345658164118848937830443947713727311515345957147811050120218000513172136918720819562828416574701121498180283367127171706326048986529751667794303557615743360077145779898925259576274963471628515318101390679020797275807524300131289531210770640400376309048872193421388164755014306346938874903525906554227155431435004044283570899562097063943117752970520506917561773793475398817223083074584866709154146371094778801488756177824131818814776006407030972356713620127204790428848031898619132714898614209132678200381488450185524471519302563404741365330049648097616986845688747951153909120063793615825322507867894862818906666479562259333999519142564547426992168596257362943592168275478399637446526388479714009633915038781192760826537454732353722598035687454344688215311364193879614892494922247236891173685494376264669825914812075129238566296077247203314670119285152293699252858828833453833788068231024341497237863019223678002711642734841293803855169683391532395565224081957423634891750282841453662574450516547194593431847403998497520887962388525357694277419522614852544285339894389360728999882504936958928853066159795349106184353265730244949883210929885089384967887863079614534259103181138651994900029894102346347189007125081915472393695614248020848996882686551400776764935113828741615361423165278885382039415121704853762865503430001478895090503734855320828113638840722793695174855824416064578617115192146501264092661151837496820994227031159965608642009574491118543029381704785470553555719270875230775712913400806355795134975700754868402359583261684069727307122180431372707339438786359826133865537508116904218761746148472627754565875004572634881146106607055015049318997851229328802157278312815261223093431642098110055736169448442543903464501533791333999850368983122172436606484589273015227151872506979196576268294818768821264981527965497039957115242249007867128284101529377323507987913259125172508218950186062979310900828378300126504994424010170156233706647322384905308148762269922493099551807410986159751949491026228778046607099920356946005678730467209832668355502481930188506503901828035877534857505929283894318032241345913569680757990464026287126541862055784497915888204171426060134913121023817350251482146469477945348334130407862447346196572075396175095546982204063779316818543156933931235786361232817656542752119135476405641323163040326342476217909599450488362673006538819889999208913871608149468210755521848598378577092139322209836849461810560842703009625924242968400953938402100643634425385767606337435961545601353921640273665331525309061273889621317496493439779072213357078402157021392981090214056173937416706766110940074031248866271013458044934641614932659812421367351608198583372197457960897810797215403433585936552576332834040924334929620253836588128661439819161269224501407411940332685908800178950449249788227086559770656115271633866736636049698712792651509208523991310807039219988823440139601603459057075777351197319528156809226384863425168003816338112841643802455310811355008056647585014688647845716828270569026001803520899218451084975911220243680701619596855608411305935982976453092571895613635338630210450956891135282070306420546119080223464839280780073730413354990667306642282859240101284724738401442601898235818779878486603362373961625624666429654018362386863001555761580738232591032607236126654727258490884379967478004410582595045821538730461341913322307497260596207163202068011888059187047363383866603784731594546994842397603558596170219385308456708919628716319173911974991610235897017110273026817654393120595992837030467511080309921487340851680638380805440371235637380243796576757323692248397523314399256692986185030225115870147557699030517889461538133551550018583767133730926110484583301407903308993528537089782443340837722607255276653888357674483876484289073341993237048959860861196478240926480678994803034908213723406803541858921421511252323347500584944571127210651228090494236624010766529404114948459240237362923148634853293836383002925950734430228447023374289182837599867349203281423820460223702575948442938856502690336811001453299514250170551408251186730076422857372721054638508328449306550903557673376300057527447112812293204028100138605105218018065733919777302930117914226927127968243339608980660124307895521308440133781542970934885357741715675586665870816317356477420537076145198135431788638187190179807918989257037113225397876588766927593138250015019749960330466926590085705761251651167362245876985908811594235962625498091576350822163908075936332879903408877103574041522449362126539789023317115423274367623710879843272021220355777884651861849691124492765767448657374905969366198238733690871786619920370563423074785277675841763977247213012891094894540708848088277805410479102208546105340660591293340817337857823294453269428208888337624393133994229743240265243607469476003593677330042216604721617941447778951886201198024442042817028617727917393400674528828023686225549373313676088614406503803183231155164661641260177974654447208711850703623951068710789298741636236458242742165223132584344157901072833193844236191379310815602954742212911454250566410628163368113246174869405704687086972934599303101937835109764617710366194417467806187207094631017640248313617305987702285466247939630345530869932476151769467803273142768860683628872010736763527972124365863649498926303002056921786964801154806624865265112171775720283068609821156792513998170954151738843163956801159736833557838170309702284199701367478783481565980264097926773847098223156646047592305216872291218405582651957370002634560701482424057617197625605908967005854036133981122298364929775014915419832578111797024394069572762371346367156946227333311337215425787569047564768773745920054565530914204048123692824578920676883496235913361201424992631438234499788488414607127760537700585570212479960848253759573675659787832807689272354005199965205931103646791093057884637130034319303400550953804167808918772009448087062509533782703376873087481737351990691816054941707542451137521184621012114407214530423554662430711911804148808455219331203919461210040018584184387215195520326805917660217427591978511018751442356083817364989387069249726326344891266791898296300421674414728541782624980267640977935808120198173120683479468317271384662814529892584412059770147649653650504423582170182424049575524173373527690407327061933820430877998710997245773301686185585726709597837345856100170050998618544392550151129205604508962429730986073149890277159186860189551528333476205108659171314097307351342613136806851417739488152798773348237502325548097123798290543423167690843017792219151409347762029090837167005767797943656314603124319215080051425166741217669153267482829435900614720432556721081120854108881424643953302024722354039240153668636008878088282267224125205583501152065641445089941322911723202486451475346119618053820409863055209359730443919967045111936933089833990388059276167768982916279870342129275460617425423905994860408054883389340805617956092042457510346753472101805127099584150361903430762800442115354476004194216826310114138449765023377625246727961476534524532733382135476338783618216556171004381438273692569128584725146002536014804528017812321949775192428061773265894964995750670470870660979777447588944152689516923811366181598621654816964592655887179742407719515577731102253649961987397349026142304525515872048781920322725098379625267682323029374054091296497002715812529815367102546558496089330217020022702319343421754788324150024307963643231622879202129836791366157701605642932132309756030033334480844008278203029291243149696362694184331846855611319749680955825819454032772695878242683145510662792557938822096492806817548438992201983927040556678449348150442843128300320219815610527002710053237692874393971960558332679237937881469879091159412837883532814644496348536050067928198540296956099501138509196739397099798911760462456608293255919226816558238798751455259045466367001249067461986910050974832975148141153658092576211466746000477781943064580306862550236838962495353832245059682369568506759660958155492612003321432128591078435382283299273208666826530455697590093695840952108302940977391218304095664770214609303104839298442212438661695050616503307751397965745651150458040336741925170824580630056124302946486682978789289207186010210477000286846340927669723279197157533839022556737034275138867627264874838323280253372925876404523238994884786930725171470759287103678612565852986225828979350672537766427117197130185955267210819007896643304805163606721329274768277958382730058513654895236042214212025957125560883591349391642987801016703645224385408357874433367158811428736580189396464639839372078310568580457281497424281365077395950247484203404764356648205734189952662421461492858626954234266142558102545682423987063497898893157035389353008338845523383855490967910103604465691865952480350302180938418295220362822908954203965151426416640800867348699645819901322696813587931738301044285422146207793948644258552845554924808076390509593339472211106259749346790876688999778699917610226596606063440688828936509380787725991882779379134165540300058337872537818537968417303284679348962001964967549299333728286638512543992033852314954016584537702321325908175791206387210408950348982306071241702176932355225745669807645924688533563787321608679125038771193083971314682295885944879136051254010653165134573320969463780913477697181865594054766841213475977873835561234427038868744959169668982752816932113875584770022013325022595524283652201029745425958657038944664830346024037253757775429005365065173805680786265606054232174433976398856521142753088464950564826609486030991341646723735378041109438608328879410792733073244868645902906789044008437783757672417100380172076920523203421369649068184956126739753038551139116785983145958491372721709219718074897389945344322168418336618858991070871716122561643833617234266561052174808581892446362029557817641641055559643871844228890174267323218756416826786612966253049626990160865980157792530017496532565362088936931277866597842800094663683119127682397636904322392499435413561945909689640862860780991640136519648084333415879185141976940871455175746845714761578507906231947487041882124038320929555390843052086428327322371711386473393641945961767652893133149073794887505288361857185758872507406855824207592523374782834417272433146558697283698023044456150058846731898699833493289459112522086322267341765592135134250761313591116707229007516635478412236204805605741558641611565853131230539105900891949214325585391588990824732606428104765187792881545209530302150556294686751493549677102327677440584473998871520436402857968130242357937132835963246200361859384479548467551887840319261515175755368616076079404336480857121586689880632804480143335850955271790233906528946437202926337200058227133820987629659559174380816770195659287170155083236249762437114457882951974772213984408875357686883139214681684016544315404622209825613042103720644284079632429455052255263748520681112092966199614010252548103264662203288940406047603729341115389280218474585951724395380479258945714632992777718439920274128212000943747607692395026993490588478869169963987542651840056843856738503502370391267041304448525299399087084367353362091470468981717015927350993468566536734730336377246296789254652139190595086908745036466946069029530251290083883785961913017261587738456934620963680513601861015545948254064138711380539438766922019484965975497013734421738421606715322399173306074139479149323077977539935516014803842778892225946718424553182757781681468767465964895799876636601867443037300151594080926349326937972999103163761729813718776646387023873697364605289636921249899675031083634321102195874046397702327019189837336516769911312025790868345120629966721329506154935733633472152824222659279298553895112954585727449681349782570270723205165490230543194459300381723207551131701182705446512870301327552410033298861565428835817937550750840260276315417259246175135525077844855208703107952310477516562234133674309012193453961910059958769398601752388511074684864473793335305694741875840367789370659720554362019269707294583909099988674850536903605439095360033632121082990943745217006002831110129727222022466408950514225808187493293539693632967552907623359832907271732146074613439179893070858690662134770306904917285424632204012263810606006748344468176143686583278204489010560624182527241107820191593716642617863542722806293473745785466170407178976769849492458006215540413087647974160072013518408039849051360474293125957908765173400530147139410787936321620906155995509202142880869441994441680710623387227196855300896036753168948517372923827127130406230601329393189120440193133257790496057796436889724725742760023039765074180135259324723695073873732761607670136718879989857403526105369749789166018527554760136597709923719883588378187363920909362486890748198005524011710309571286477197372151877078343899177655643521276043413488178765478656048156227260819122336031299981781025688775625591852041636856706814661844174942945837138146500014670035385133560833911780057781491618550995092629362005523871980420386429332714731412255150857181585578166191649402677316846192337129302609294252672648273127963273575939173390400283555590085425653772888256747284251035877467440384233991622352527041092520606490903015668704251660325778586273784368496135186640792905786138822085890856318333433269178377152275368182028202137224642861623059710132823471432094141779072125936928525172261728428274268636233423773288461773513238827958737597399673025812368455281491110725345888566402937130244859919419313135555797226218595788152086629560979244120806662502527869640730652511835933422909812123400315869130821646639860805951636366328081957416363284893623158431809090728467104425852135910246086385320809134036224746049373972413486610649316871175544211299844932014525484568035199346604724438057223509702044827904080150003759812656821168145495193908719756264836414366834951708643289674076153119455008766515466498432485170531731516625147801820833364148499657712838826572949548030248139478653492704993660332823640542141680542640469187439042678607893787019151109602498559888973121836699853883990295420995285796257863421849892095614864104535729988787771444138037149819067919583656020899276111066310067311855834166213209131622801434888430849101904635545886192884772855945358202754188224930941072072189368385467463423776782012139673608146513541502152441648152261467406140679261047523467671362303981158543707983912815856199162382629923603952755211445795165196699099758722453273201810837341081861444020534991603859440445915481261088359248123011581044700477221518236428575332348295054214282364001883086989484463579802946815959372528988516843816835067935514507033012464502035572378481518917108082119394931722673041460491966013569195536927905918765604937732203772634859414652868211246623023178831534339114083606428018593427681340753980308512247813079569532034697066374302662091732366583384875045828562919885473667472108133994326754686205528450258119010953948754206668731988849523336771965852887783982325452730767135944278525637641129477324598292121735978527278984269464789854246092835285518724795505117628937109424622252709224107343453241588598510337641324129748912098170727120448234711250872927301697113919731580198730812247955263732379909325280390506731768058090332490999036223447203283254109026348660484895906923132830112120792439438236124202893378531442801820283015526626987282936003385897140971020696312537561851697576586677236052634754903478673247105277714168367797213530313147234418057776585642483031719294749826093300570722688494017734461620018552985931616961569171047743602946595327973396352883961628027628460794200225785300394218317406031114941962896286850550153853286483219032091726628958502382455908493944723422155930316295298393270490016661153448200741569645313922645771848664379055583824317402592865049131828652589271415610224879307151117116103680485812452689230807356784288029645696357270989339333486622504893118481480555990138809452583808150868793724972420651561693963898594546638048974746530567943725302420349948574053220650824883485803987074729099162825308998686702216579595804370335158034445849626492503310124285114807945313397956189804878632829387412851962403238973773877437401366774863953425100527440079034433720340457635825707458723938308322002860980620610718123545926774611206496489445754733590132930611228223348643032687062228831458822579610813117363549813346106642883880153090918061782276200909847876444512013711059377692232899866281319747115190381901356305417771555746448730843481526850640944423475294530485733146801256751683479659657606204085344303160728480913474180629254769715976242009529903457046807854426712151205848568136668302644239981114002361031421395023103856023990061367125498049050695500733320702506120494379857577508800701024246018280290540820898321615526509971235887881393090409421354061532324724308976661419339774511407085763956054345780675487831727811241480027445270531134484362451140742620163206934921731548001281508570165979549583806958603307026763910637482059992732709479502631810853199458950864114482224896021422491214143819520050786491072793637410547297290501915743749233467862520739877070499436845661280234476397772306434081775704768652304333124413353693253863345637686954476012566113483017535129929608881416299880786120889643621121776097761662415782240089623504188502780675158835476004222082622733756155515368561248364557890847143702996943251659461060038532895914006052538526221941774599392974088243312663557075146727547492235361540390197959106447256520728718862028897969148522117985092006252307853175026916540795876850982600701920226386835525967790041334251138165522880430593525703960309374497566510026120021198538178663445651925997204240889743220459902541854422593582384794121202387677863484178805037529033636455377413764277558174915046760117348705261072474787226099983541416832196421740760460522842828314430770156567918307387416568529952553484635103578840180159519218977390252814817216057935721487470974975808889530007685756720610703497833713881663654550070574133235966625796725127758190044219824839969989919739457957278179924489663655010058990532466897127958445411819811024374820971851950116585689379530940526961570336572368051211305263410295351479280345286573219217455304536613134110200501059763081431948555785368514024207419146732520432438573489756287492563612853208914738999560723075167822850249327068600279490446061012938729662992319272664984396815035033645308539085586136072550201746986215683335979563851074210237441863401705712687123971017800947795971567791953317336383383533253695571137917697644352934451449039345748371347518112542116469995613054607982463040388353520770155666359300407874995285196001857545025146274441883724857842532049127398955494479798687369771246823218674343813814071690899233073199093749537276002593091236777594429138700214385462713489640973349270907896434099093348475247217011869603452603771031877383997607754188136601910344774985982098522023252570385373218856132755572173591603570624202475353037411443989549995356860390713091349657936572475752663026344421499297317204070516111283171680466222884850516556983889138108828809371778858142593561510259634666109700775327105494333133155004523718797392127169587854648737226598813910824321255524533775241780564877926776000432536556148404171084205043653554511814558838364378955870192489549246270174043888045043602970528677795992916654394417708730623555998454081039839919752440634976392780943081329505839473401024608076899800216226102398660503629240051279605830996197242208247392967712267303424683137740327397704668104884581484998137902964327220713991468038026762413766462663933174125732501932306194109815753727671137362631840929321494962739921033480661818950047904869166732976978743559015040971511976130979043871675442481195948438164547082400257093008147415845085876278978848288086544039809610134085594579239359936217667932192655348306399369740755802472302031860589279023042092045609891458583875936695355488026399246154237010521506297496923576325246728378708193016004200728664870498801069171662656121696418195394656973994117191970172882428400610714245268031185414375452618669230964088713210471229544606561245557419604110953420437823019464155349472576761488459868926588077873790119137592214855617494621082336835545269503202985304921602461157261221382774474542486188028919202731167955173312165957148614820852091842580479891550805977410470017147498955207042362201822221024989252600485324619796343993463976353149752221795453544423882881426282129492371513941486646459120317388512445909370503445686337440362594230927041148452565302891149125930191669227194125260495540562871392773983395474768074957611630027155081852985679318656615551391302949344142479091432503598970105938442667753063131234074413244801606748961493208678938839509580577628080189718713090869044437723884790508543221017655985082078003072763871154515069970483667363889744781969927952504715440655728380802810084358409897643710765104216172612094383598100462015634738898145606952650734854143075710074509415993613958633342409877399032662510639046319406319354450574279453125748534079881491980104804966504634874852579431843041006820910108409757916859744836600493416821167888583970426061279661272281008661993240037092608282419145308229957373516819241851747302686294501895185346070176154731853271674590350187545707161795469923616486809748517316814202242663732624260399694620720242093618317536881538510925061749133280110471194299511187748967573408967306394158796550767351837423925119046743426080126767177130175411785913943117406054973360648191691198693720436594852268472086485380723752260794543307492287365159427302953172422947186825374986229224291903260226056944086991532399306781107756152719587185024437431961309177495892765351469581595849067391272791450144305612435066250588185323191947101095431131824902137379770442397800022674550100262208042855665832536101423619644665823662478139435898584623603008803538804390830606377733606962949540893828697821558407621389322172806146142452815861638540014000767304107868896517751562259401274612757414034627883512754551040608918403763733047455261996964056017269588148552623704254304524644099875243005680531017793477219442927840278588772817416855137957372107799724709954644805175494898926163617515047037162005420707957221514532621518680903585341250845224325054642252352364774726028090902526551829163859620153987317274366230451932734688424449035746769107335515369884917843856041754903093075909286858679338357953934270078257716064306813681111919200652434427732223250355173634672001405310370917998448761207026365054277768703998546001662492355595773370310728682763829906986947742592340676321063592138088425442754960558157422970537800627896918968124454438617670125352878515079378176958954713104577688670560510867479424404835768004486179716939190623641517938849198630748311660335495139000541384480100262143861860574430701439977303960861881570986114140915419076120062192405916528083434996015865946769386316791248802096331396957998506315385699438798096849563692629212306014190279127666521545686990702884890634527403246113107803170672245950224104643175168794701251309997529169854534892281039537955199604177634701983911698775278006796046585301883419742984664666929504778191494318581374770308712224628408287057685505352842522646557260021648222482269674587844523170610150107146030678099579264159967893372176407139868146740992231669013742944625187584874788405363491557432377466549779740659317297535473877953704917088075545931334051283492729935840492353270565093497371925806319673934936397800592217747868040409711566502859002960821205637526557274358369202299397121258779058956735140026006459260856907956402067448015130868031865519619983058237586451072975030284032948783511472203893331142444738213354240284230466933351696068507043941688260812055071166608573936284008411822835624304530233702888312906648954301548273134396441961996604396974658703695794250928883811125725105926226337144064753674888939711116064992499412686275424439624220647036647915337029085174947174579531570222767665869722217322753802810872951860879324369449427457470665550816391015006471027251363787997913266120335069128260618845853961928392259401114370318838582476745468113377772823528550534818913400500127323248053820060108222885716689204800680087894828243947160682924824805168601704488230952738293481043579250696003570474369044404941791938027000746447959468766403214623781506137689291196652534742737037241669828048964649921814341861446999674002020240779875233758308978089237961763269712076008601188031100793394138588030024773569869574822372562934587866576919952327811296940575664774950402841964135982887122225659149293459597589298492694888518402053557714227143289151984014009036315645259209900296411412518014197269393004748386717785748516275479530941834526747084253105668987192303761433996037943403223393762278746459881549848018618960204344556560526086956547725062646621785827756987599888125024914657189031470156103460372476461092349541663834450915098343691299982980705959704701122200785449656342812631835563340193320907071719230875737233702934552410859472662657477698313760030353272453759840118779072208212227556193594922661036760087327139663900887424701798833545409210552384997403337623937823384075019842746370670618620552444837496228228377730056725649283663793064196585060205933194085815805141352179721413379290201175784824754952907841266422722533688168977268393755010560860446260279397592052120389879282753023868408592394093162470599051403903031854368202389376356465919766550204240100455335773459436060707961934893761221124488027973519929616608188390581108911481050787511994627661286437181125168769155372935778204583061415787914213241983101194905907172400106551007215672305913310896715546447663689190750053859829421665511752777574533417419994376438681312577635912178533702936133612099721048684065549934822833614926728128808145953867056051710242346157197051725490355747549999507028984559421350527681912575212041808170547943570896647807392162543566007408051914533659654083886241893396543036375209998884458701111334504933981696032280601152880035284850593898887660290987257737745147356420665145978066426112699813160403783740523127570653278750841112948308994035907606531762439771999827025852943490498966016338486793857410743281337277791964296865253262780155554539071113911861274000643809148261425491768409144094579359615587268260869147557356434779006248101543005034160547847836212461154598568230872019510183495088773545080435453752704022286652646775077752277798667757969487608817364265394237357327318263516829800322248764278106099345552828359652813908518676724947762878435741569626284509324161402939968696995706229002052179487665977497064188793674538390855147510158839182184182293329114598995441298476036948929623983892685403902603582073263395503611134536633269342585416827273693765463759941395266179065485124391627693683577610698833245581836905969306498257764800429082579060853296463873315820740117059700160725724013596620428864881872490945461817367040789228199192924367553004176409936168088797875645615203368263047210181079281137723839921097044399562269025695331887951494583893041095678015361389443695849896079090316722032777394163311211195973941436257934020757758584225774448250300500379733493060482024490877668392885153089348889214399531743328899059576040494341000969276258381010906276882607776852366152334426700849778607693446564286466781564730228634056628540133445014536936314279282323844826392272185481448089063959883766466344062283160112877244327770137783172021739554498926690085721355053008204348529745279752643345200884067644227149261501462020672375336262011094952757098587927819852583695402299496176860942769869391300798274433876309035202788985300070024752921643582029349153078109346568998080248802605439746448458026422898531640566466158924450442459236369792267373122557488604965250863450857652045793741403183210794291774674994138881462284272700406014626391216949953717352609622962430322300328942641799483968560178229616073164964297723654434256995494306137298032451184914374234754525388206295210249108277951094988636429890741052505658624509242673257184668313806447591428618815274720298491759935470349031492189144453570761504335740878979004191105075782886553844068726834514928065729513036892872645814994839044182180521720348896299781730119179421738074019729367901365447526630170896075642527438226281025332527835414958342927386856366129455817407329170686952059501638291868260358530688786834241617650201623981570956389791478702814236768947944389440026441495867837237265696064405535259326508035290482302763463025547177689311152856465206150920499858285398185541440182460232729117314390602336574791529815393481835569479077484253934588753560712492035019319418031367316246092024260748838235995274909320637783947286228805527483510501073607837993259512139519306368132027371588443727892677853225845192304813047654653853427030310767973832995523486774442752212068515679762391740191277792813167824815674163881597716131662997322064989993540735040215014933576412798704640342073720113019502452789382897681924696785293269066959787568147648395693296421306143578201920565089681167518969807851191357062351465823659894883545932603672007708336063005166668405227014533677723134114423449808004961395078055491937240861235093624795422361337360496175802176613473160313772195325556306378515298103690694425051561037183955065307467370427969928883013882642303831559130931835411090804465518593231872495495169439181787916405793629470070194501069606474304864926091962237492274394093923884411312888040475450477118928644724654095162363898877596901237754895149827442458886842240746461666220808880897200196599282845884267087363525833478241709070781109729674351282490915621760904268110656412197990213300607622035427373309201065640558074300415575983860322739451594490494762129187818794372600947608675835396998261129954769484230647622770481099972945163938852748978550716804164568405115061388785529785693023502339086474627174113508012087596748548106122194440865168368206249296678517185188650394087759948392957775306494782567299049726244027439968080511897994765456044381290190107846603014279023523880568321058137974367666857731118081361333632059203377927536205571791804453981893986714235923931833006935250314886994600094785023536948847496739650919250700029342748242712105488487080412822494275852674571564070579229003989948752749864198081550383241399028264061251616095712512581541533067563348365358237514922837979920272423772261063834516030015435916706017128702871495694280642067943372134512275292330410739216607294524398243807115785208342049140079849671133921593033171286079310125454905353203552579495618809495292346710079905894770467275443313160793178414500373120237180872675650803268394237161812639985305970341433581360038229916708508641180890651018032655975680155606571096965414887360492648392129748539543872695637261796735746572985008707476508538079729252726504336234213066702291980375962812591575985802461203928036121158678756208913574786365401252671881295035267869589455480478719036646724243562631283828251840961817985337741310729172709441654182477919733213772777976176536813578981229212833625385688258814969034699944212610245384412174700265062570220390317984817931631052973428276109595333530296343090167523333831178204639567084671514357676708378775109854553562663232844576910520923569156335979082803094242035454085442149934622193473470856190429386629247305183476450710754661757741630334653583225913583726475765497245354294771922684923034216471192428417879682767062062400980650328276064941670358815007871566504903474259210955992199039419453961584361472944016731574695188324067845593732063148096617843317294492607023139233372943940183373189415977284877600908775350719878927799101570696662157598218446578534080723204978128972717314303003389631452254606399922419416124993579417998288868019745932712425347093002142032111674666304108110180006075154304323224119243920685772121499129915388903421955514803742682667801675790819743861605615943659229513519440390634757521821627370087563219812612040600233384205453397723868960314127665698237060140876752697775299401859774170752918070857656174114843569155955069962611817886301472808729784318743425453338369244819607743849245067230394520620230128092476945396136238140676670355927418846869559229545627276600612655234265120283245761517659885218565109578359365560212045916750650357472795682238892224343773113874379333604120258314774847322492378670510621275881799318735436007710680047584918770564537642219907142702296729221277710358398229831514453689667353526682806515840437250548568490589094561012788436067768111823592285977414160518205954848356581049269292017248484642848203811962001726674899172504799768124909126669737725555730652612009741813716153391504486276397225090439140835106413334631666047682360281288788539752545191412047505480184974124015176705139241033989788544841879708419375813375538652563907851961272325632388337249442725439774217048251509146380774546933539821299226427499811893040208587817664548236409476377735798731448130339454294737056813319196291076935508111967271470063620725495950495780793300628815774629872212788512014391149240814474082535624145157754180789637287313695037648580857290093423665150017241515464439042028881478625184048340039887867945770593861609814375636156646719960825065674062190728542184042895505960789914407741472758404413409953684986709706770786560783637797452789605141566721550018633933790235512593039629996728553114850775264112110386148101983846530775889435965492583205249801233941629917817274104062591905808303961440781158924337434799913700803614925219027451323087706894192177907519149946335436705778527049614919631860092350378057655212102098003385369175523257120695197811666655189794743940220218465708528665206072788404553699931643941404008822749011511977732254206219750689613741919747646651259078483549950232348349451463084305041900725273397241209804655464568950612832967312607740587600728315948443062927045917491636238342238458122293721249505018828862453332598377468353090610587695211668093378408546719925581369849586158045811910215573018358931001390604748903982770371008224323862767435010726163397632903940460509540924359818479745930184618945026531441540063618957639622934332405916104346220251989552003573313539247796193847800871781278025536341761309184824031687604137039098039842533435792401001424555399694953312762939254475550802941590050916958837416149977934341989028973483860210883688379288442824445027701579208814645423883376588649243568364069835971142810870004575905490930995433997848551008810834400967633363295272990846243957649023761542182372494094123006906157425264760707295546172896039199446584519669778212994814017847217508281015042324435205637101255583876222892786914818351173103216209536799831174260737702363307161792820243477908668796994875665263698371582733493644213681586193688462767509278375546455934836240652429264910297239280593872751965440044468509810108985351936808793572389105020053762007731462106318150502408371467518768341670542341718586324511322018633944279822685412966904508099205974927370409198204841749297079814649148709050947958440689098087124334642694846522897655760498840487963231127219711450591845360213258050181008437581802672328488658875819626119995933971526450910040773542013354326488676445480333744424599945773663119305675446471313919887840587485616003495462377875328275081907890639365375622331195899114627207243480894423729023715374663164647216864967723463323925574454406476572883340253975286881352234181409954629281123473773440254831004493013646672029216387983903094429257404183269050581226768998499291583201622830521996247117118106501773371648118708349113343372967626553852229665062119832923717917986219285579929157486547072469673770583446275804092608435668802286557976434531131578847907305532334273765475278780986251034101516220952053708354106609625404611253472737645146173865350371651858613769465384364161769727851611690532459492737982731136411451027185571563450050046901852974307396883471084486358207957165322404192263668687834232105443932212704162749434140053258517370731044041887576893226287001698009538889922804799753435821094163659836426030166293279893031908108701839758174213001319360929484108788180195269414252731305044489380306949136072879595715300521693027362095156215467809547185168470115476184372710456493478364154067611850510825589017370667601393815484822227401013097929638945350260600832836937536870184495448752151560116951757134185564618817988194859613688000507329004209620877891873416881107240805530176279489637856364049349494766666777257274108785351029009175194687524472481795060981833885280444977475806430512719036329080531974552962282900880093037041205829397025881597167423342235725485366486154597076802481234526200705294530626325758640792295605486788208565775733358001454008102742657052255946550770797839403625346499946561475094446252470425482105616189872614057820196925146789938594946388631475149889770961399309331002218897498393596690915548906487951879162837548777932893956483270192133213787671656326952593322150249907092972282978100725613546460008317801338053858830990437973985680740103438239858656449098391975038416823264672479039603899647722932256747120274296406024254863346891845579384598677018174216106110080897685534814461608433948745244663774321290385699325083315938146861949821668934999417382587142587481771566578447052502929443030938867475190316504374469631959659048268373201493899569583467371673941696725836131289079970805167910942067726646585166059991948259700575452187030140574719244541483334785448355576767322230370367963501971675760503500949383015251795289467790651409065387833705679043171730437470231011259068729454386100638214306781081804940746175903905733249180687459232529671960209007718481856700605659145922961071736358648098724112719380955120093971622044523278163421455752018187415009969779546943864677716863988364957189147079554893817562239275936106892117101625214081996903559591576384495174922924233201881177630211294677929088288222543691640434299628336150613931870138993158175053891767637030689691412286071353281292261708019650853992816033719864893540776525899477934984280437456438011726316612658389663052954114341728143826588127152473523073934905097730957086703232922483528396112612620673096471962580062581287360013780858967576764597325309716756602283537616673160484203269990267479317551640323778918128219030341797806294592109129896613398672488786709274763211022064300566557929054768727654301188382042184017529778948647223841580961919401087130939821431517279859700526329846274388764164907494733143074364363441187184242431098028132789372572708202672733855905891761731128024718010196829503871980657179537555206809726116757554772705864396181683085138733521449980148080089314615244541049848375878289747408321175312992380091945106708335690519090310259074435760168798545303277388783537335973500064301757854774121315607149328844310671512878865674519159862923280167090438563394296791164162823876047754626491821140331594544905362329306179489371212082227175578298585991659685785137269327837527018027170597216230422402534877496759923241190688099519505348313699129371302620345333892070778898155238754411032892091759996060628281276719755758569791243924956974382996789474954081991621139434183090634732186731542567915108941161763945049095015222398191818847874777357151205063876979888827571833416343390532410496899535492916578417756656249370147072610459665030874731504022706317903585030663858031139599137224599876353657189687250741921828118642614708582021609771903732360100628353862959677769449006656147412491444579762991222414681434952278878043361085086799896440184543724731820491074078041881272329329761362723341635092528690460891401244123759530692198734404085987710234184766588382555177146771667842319049143061212203083155923798460764884282215806651531630149925090585370355222716727421598865583653489602844558544579872214954126280477234338574682501401319075076527566820400555418695053426897590298596875685935603062827089944556746249549144632081653349671374875293750121478771869984404643707459193617375061287770962312185134211156792892140398702603006908961957884844218089419498493420831956237824977798748515240964212120060377186988780695873143596049590980340420045433061794635914557330479876746949642816923047478160606633786816060497042714533219575985165681859788279782963472893424846860350976731191405390073484373278741718425194264762518024129979953574756051632611482511236927385683910939093240338776199841757785090810212073648005121532615506207756459821685234755514278611598816266019020130557261134739175132410817001607571155083044765407040659707738378044246257914648479057403423165891648568955329003406809659250817127921235038794949257149788214792313308952050392225289425163480435710623260781527793387720340099805201129156120772202327068444624562603923363223116160616125893517798192876145991107142917131513148069941737012058854513327024148235335706907868010715689015969282877292165481921769762736247266615427271293280194146466945514509262520761964800144800158132439584461755094747989716430811441272419701160657803023217966519443573291690411149623544268818946098732047411787945456624424949117196924141428674820225026227678335733677587042720838158876145093382692045932039564935498753673523878108331594987136715160429162176151728995052900605745529890573900717571162734695352894536224299933054423524876727970414020636396416763236891269219859729387732207968359034139399976054764589903599918677598496386650320760187069088566614293714771897294549105658157344207241895680183881418999211876077597573913494680786151360914156856270222851149332870584777463595842469545768680510010790177663186782880813121716573292246875149764569777012576348137448864420628690390014571475098696860955231356400223252298196912191557690685152372821293339157545668613655661100236322105079587836592790442840382778255966186441063525785558291703771886804358175829481441918916265624086493283913471774697004575489906634792816640000698814873261594460461433660378130312953081270815016702249573763864566426617123367633280925305594932482295294323774298238892059993144619395392236871182299304895994843693434924643827755648617330120935216257979937476327279804393494071947861984511999847861893246759908083150659214625367302399806380241394720461879445742413859719108319616858382692006454939379752507680410882235870210936466863222060660316073159352957520571609495018960952637161592223304174254905245331940308229336177026758404446060769267859873429114855339413912984023072759246399414121509136582976867790324467411723708046552182543459741907742580279856973029045188077742897943670484066493908129961608861566464349091376010669808611426938305031325763447315350165648003027823477865157034905772666625441142514745576628153278157972225039058597957008904833703661063285270364814508226035662152600351356570344814722628266499382868108410192426314478289754988702431524908200083878365270501674476003160513085582104648224596626741449239986874656640338359191096976763981584130968257214400373125037664021007868303908732529853930016942809987099716574522822026932664106941572843553401234630529307631926871755291364670555386535198546457973373477618238881894703698667783024192184840704195771990741210662217980761563432929898552158942990563935834133541886328104439413076330209104576768285887748611111821253131843542539327119228165506152233529523048292290996488839927563769167945740117004574733568226227006105802024158690580541455326524567900849740026943158050724860499093996173582011392763747019310423787935072109516996287275474328676888023405027622125912047700835560101319406126669294707999009448076333799458077204138078122438303758735817696341349608113336986368717829513214115669924417530966459459837113711708975010483267659716919575420615100875223543370920891560291083021852240391932305628182807708068052579244052172005604021414101999269149563388146874961042199059929452176004460543866679844179389708620521477250312141439971515236710079995135121000152450359532499955735848587414859087883456633188010651783306949547661053992573502139953143147343815877866878603765796987497839127350779536144402549417001104509177061375319107373700006940864158848093949165133207980099630545672477712397230937601673417443626517916359157060527691694243095727423451233965413684749782896934080073401268107934191082328551565084380318562288067646420742843876026970379038921096656053428682655789108009145862592446479414613673758824650727107906604843509195639464252992113738879994796668269782644795233938635609358021445611175024116647400580584661328003785915320016697554133181438957075651629875980933962324587346577801834820945197325245074672248630250660687489584160819851395963668474191392858287943389951764790587680999215520730221632068300944192189506222497536508809738695342658782745458040051570022162972069054722174365169441448201128159142055827207534829980008590687132977735124217738902986817519730782862427282490408916291907972411900257759869997919080879304495821101207269863527663529573177437401849487058229682295452712415799297113152485950887418933776297629826999434649378316928927910120003091223211937837276989255286121472770327407143571707409314644048553536670359484542837471051761831063254304344857907365795934716023095690842328487900120929055258355583010934387801570650855094433329867009424146204691262739731275099688865636419725115927622775487398035283271005239625567382922850508218882992347333825644023048675948673473151674620294501835805398042625972580893451653705200709034129660323538568566316307786527981554866075851655657001248213735827657148466117741270199578899544320818967011129151138121652395720318218415997259172312580629034820932137393722291781315718349746325944550092814928213775937754288630107041386749378751748435769596787508007216327656402976674683664720118774103281971874358134334318224374542240376184117567425057041358878056194030595143330110343097641694707190351338121630567067715529666776457268386283113990563130513730040831371095667260444494826612136242305508756439112390269054625897309972515803326967058079246242106369597392442882136404694154025989332541680866035724558018445383165607332220021786730626223924091873988875384531966279170508287278425829682917302119526774966572245506595147512759771053693826718975201071505760539483129133278310850383876366069413638458444810983781703611662475313692615129317363391805410345649858832466906509515607017169211815298160499357731898562243073711417401468124113235600959353430621384453137184932861924928622432171351863743596623949098612664416218114023560058335266947069025816802496146562311428093232535685486530348520318938451406350171717916223275087260992255208929263335933106551702856327639261599548189016997955584948619130093094895538262863113915206469427309462405190970208665047829650487117113758216105849447930806237580972188279502593579741608590130513461979604300515902743884862309512602958694724815538931768297165618090662799286668280439128758471304412148037178888244211616538538386295320854662770419541924164925556452662975480394265197040435180770651899485693280400358901068986865285320182119292384116477190383045604740193659907894438907592569222598582172913515248909236051903174957230986412051723162494063578297495228222774895998540234713849123080662946782538174668127648930331467936914842513827266507947794377943975661441834949821411647067477963779497625089888707292030970379529835658111534183318895337098536490050340800027036246701493005659674491832520334869163109038737641432685867656381798985683776681237426218957271101035246334474114708335857768158772327389428200160754391118855817076972372302315827587356858647262629512439191720666909130969488570602749543036873094832915941598854648652462492293697299087451127504551038027481630173558162269941071971731850617259358769648588498003797963375149239727892498643404807629779380307138558937261321627684221578449556664505833987513342200158252643813349554668195949777011465965296990028504750542139469830537853622359993873619307516345389789852383210651210342976073501941754505845022421692218824212428446907959757354310904507370767488452167133740944984160632163332453068328692131513429465858772399874017022860831465941255137188365221179384021809560539107783280322397234552546905742703232282166311277322198137550903767213601159824847954914886936197219029442418226715898153459588110628214267229376260510589194864733231135138336398980183430182194633501040612302912326598881673731736552541515239295020225278048468450709453805405868764885326575598051774466387385012009020226193572818606893372769788668711115691540702690618894145736380092796099568678334503189092987103155718035974586990614668738546465773703902140004865273075429378887407015999140677142185909351224436313313170652165890347348987422653697035789570441569012282918236539419662348794880698274676980372928698576702479151261577016830058161932459304014170716962978461383560291369242325273231868668113040007397505723242940466304516279854287213906104060228795921269223417417389444523602041283880541101565283960958649629345436011941358187779859121911872881187066836783910961237761271036448622907974670090451574709861054530761747310035741719137536711936908506900644667639770158722349973791466290879145522053731615111357981096085980052194882268682726606457724496808774276311332263250614921818896124613512684953573077086569809184026258937983494369392367408955664984811278742989750841718358781182293732863187805015812913126105418668841787708942675104829747243471984814748907812012196106969513146098829660379672765671461909016679271270947380458871151419762614078265205228156036160390064545470210899194739988942863365221279315822633384241250577424711337553535042781324976482158623411506944303237053541808466815022726972098269467687958150220339960648677931824396562324392062984572522119488050766292106519472336957648375140176776914799774987617323913465063485399756430317803408222989597338779681573256734420683107942349889392324705428840873507771510389959552216817524691488548212360827337995780049280522334630200872807718152031074484580075971004640251448707043159327257132577577767136898378061408693887978944123822986919813721315505804731948096302723417887230500479542077730026425751505357189400508293027955619827554203921030313088635831115766375393631528469982312258931147840916064570536838198287627241904973399562701921697374762475129422332059162719863470427572232544823836469753213325695555423126377534153086401226112719573056457033854169240106634479911599556126799279644844103860999660902882323810326632743483116244059600644626379738431222706722211009982627510969483530649214780351762223139884156292652087136705002817501959246466510878378683556452345115829459468423251275288682970938428115635477948801356425380763131335175248298431261864869421424163703155737999241827807022572700005732756342877318783169606147775277108337856676087122574297034622007199103857240033987913814591482687239872132034363202161576499335877978842345114608957431147203741705266243621025465706340465619574116234909193714330633617415775993816795356789445366755896692659130764636862881723487212891906615082845039496544527700257629467970418158461460334835954491826168864526284858225373421718956056194599687809013583743632944249371153414320476201491027728360192423191603030149476343038358438538119500357771318677161150072176440865783248533852336222114363475080808573893372326374649922068506238011161599512629851384147877959432535120262306670848537205045370892774106637834682205450415625375934940828436456541271381407738287897676703649617605935904729328788502838711875465923931595117089748797809554279704296089783426184787505983537285024000308525736262258758731941337457552489875117649143987141904150648573717808610875119036349491195293515647493174513268081768954243687303328441201127495176379479249780008748926459052303192960973273100213747923182949911226954386925067353857339866148819153876243413664535170576138078557025656331860118648679321122252608978723959430883017879070715821738888524620417259061010154357911563517777455222171510243348029046093222633435232104198632807545791284970680622773027391876586021130990235032105161579417719515002143750107903005579471797202808051353222216502539878961958690351219386862730323107439474769346081342553041351137677906314979823420897983686972973589708195075481050926820735330849869280350547718561787343676297570952511564529218225377610808682441498077180176915923224508001090538059169307440832927641623037946039209321579647726567882305133304225521599589052425855466429745305829173115421478391975263568588652579769279490844688946168758982044972823855880808461764331274098034345297561423840120856347515083157952442455419252414373852329513198276070157777668352917995756826252572586279164937057086402484237012175701983420063871361118967520833540449276375350212438116964719023609934598284055077113299675965621142035192504186366613441030965332708400498044952735395107827162340974337583260382873256010153187006746105598631573546406852168667698735547585201060498134003535082939026594967299871520173379818768027826185110820382868012062802207733576151031196425953088405618408422329579017148087294770181076127154878169278012031372317888932310645077770074960153568317603670643360914209537558540813881654851606001791566913312502601571565126759921497617301638237874330203039409723470174179439976462101363555264832784787494579103396892961932058034161981261904066073344327809452256908164418611467178593521458093061470203553865367185585404508840361857844999951788931902625972696093355492337218162455478256792107438352225838951420308453299467969148529880058727631531814203110342869839405939921809203160028719534175043141214747362426175223508176840688107832714610653604878130435840170853906656703706937113436615073830842958068912217277380565225867610670715770110044860259949242390616925490147491269506608197981482294458078471666365285359803495339546073991334875778844225747639388939860166039218540982555684670705283848187774181318657077358870174313498539557795610498428994976640228253140689710976227612371508395524466557441970317872643548122976707935400681114721539623494178476264365134955740939192326076216280533876088332217819492622947631817181639353510986489256553941893313215474704431535287437443007661719790119565311058511230907036257687366104994854720088819696030716930825174302346502258870243613958896663162930749269128144075109201598153253169642522041381273844556280595950781633459241456066507843528997783431261574087710021560992073871192690758220380602176461359328617154123489759114975091063030814241247381813499816940258693466745495828886135219398460331969998567982382657741920417793914521450841131366929803366292658075498428344343655429232791125671854671186191478738790803069203209240868292053236261222669380919734150853758418079784665498446957815164285930741428334817931761995795867921045186480583727200636438159544412939078028685316369914337327875017838570717403834290524099720100088345461832561043184165607889400537531958678857696042545970827900114113710026695764402064438211758036340310279345297472945845875111808374425787558974552547207418385336715437421507995583565204509588376374251164582702870145574545682849671878283213311541915923118490428566666258185315585602770162524566252441963320572648119449720617339868152517498945492967460622536241199216017402355726130904429711751361603581188632166609044788217167970077857311398370097724477370600689456572177173364560648915871430745203789898540720124232703196961686441627630237647070707770009786289822200575237215729119806339267991785911259868592610999732580816679087315581031047892414676101056804153230438143073129345654131133251422360932944776722066762774875108011310041447234024096982116256671512864225659768265617796882022656650239556251140989819530221242670316773067829401506263702522174009349691791087907428329917412770869624249958850009017294978887479877657465770697873478825084781834445338062791157938865366182914876597855805761615227356786509763651919769488643028483521869951450438457130590175265972894498202150863043030894049239074306695516561201284958416384547978026202809804264865498358636927237302098153814223209372141550543960556193468540480267651829462710589836208749025776809532672598508491015448267607486479624541233526988933160518588755747537832488174099899407004873480136187935186910584334159608951990765799009045640370527158468240555635424311410411102695273802354397913445448823212586170846753549400248773834185798065237494236682640255777404176450244152941646539484868113291833720408015515518160469965928822187734974527363023118569324907576950712829182758672298979400486812228718090653674990886849808893013680978709696046907407711771515310602482071166134144475177586656463465168523029362082798857741890064803185763892734780926778181852190939175960852591400218526669026271858515916272517007551464151947433669793287171600708692267160978550240440150338043510534973354367717326096790395380246429392178431169499355902480525479192993352402539718922585612585234605313979355251478916547835656564663685116704801525241157848277973335852224679141506317293146985946634558680621500508060576432765100934397129089739911038778872038805024264435253760881870345701177159906403390838293160663984907385614397014447574782882565300984513296968805851225785611391623536511625963295297742703807895147810597178626541313713199297456111133313093693530519642249460078292735145352820156472767955573896358621494989909330336528979299057272549268553745711326170440479691770202839170974605328310545293476079762716036520751207412512712542634979697882471887227714548799520811843977763751892567480912088899820657146975194383791943336914395597923794059200830850791766303024532374353799556564765919517258071713891119711885944307673623320604797422542878045630508989069586190282335357192107619290633936474567004942840912548370115815957479978764897645142635852545526951982751756471055399730967352217638812121778670264651749757393120912248863109270942481146915112962580171411720696048440283170049353198707882802203675270295705478000580635385575188006553363081884143212928399389161672522693725584556769495148359710223922042101697346572138309172832443812782176986060742370517110193028223742021939783059200456910750880666656786909401985305306907818304094683286060220467247965078988313177441705393561408134032083911542942472769133715797961196937097599008079651554001985759349831784720935038076517562655860583782130884566542788804162923555427554567947539881798017473598162826816222452185286194343319711753981859442978039990333561611518259051910434246867479981964838782533146614184897137980524823817428114420824426942665701497864553371755154367116156214050503075113086287271523096783897789702588808837792626988236705726827723557409112090568431682053747055579600507095944129861622119410790870350382587210944207148170182168958919015556830005664771457136826563933812481745207612439604180056815487114985839688960565813183380427302947769878895985808150451277954739441349401661217303272143843383188621042364694930815914412268157187554286999445316301602669700399282738683071586376561200008597678047240552837578192970648816478268980578652678618971538297164773095859269302930884457931634010423463450769072519633620023920578719101290240503479618450963104667249869670391345692230365648960850854220605152450706085713594318115538734776318333302102294829056232960791333183464916826480580187021054689619970518021936325762344515751835796632741563163498924297346093673370926188693667053555072430193426085343949572973092693369722750166176047463104351550114811804594813618711440438485123135250087581968115925443353858738871693972576734084209487102966713611969519618946151800167840819750555088510703179325817571738676567883151151913651008029254829862638340784795805761207147881798360967146769579427822927949883854783488862818575446339325254136279238937180309374378653148868505334241214968237660875848383628103749785778880077543410803132256067472062882429912294299779535199786141035104149670035611397760415666623044040342090992781831865479325716153596128134346807581335732958614995855396729821626767543716258478841300456713573191478915570216981153568350819378607965592389984101102442209386146331111960692268347397457346674943694653022077668022315151112186469816139095705999631695686378134090573943894156746083625001862279296771617921198361283785271566901186000244964561128614504073045749270014188255558833746982476811226028924040376401482652053685906887802676289576608738265178435406998105383131542048925690982245599377919509154329852918320861025448269277438136877458982085208373919446341491937361712940807128452240671651437881420678080122242219756385428424617397703574305081653674651306288190666147157962681616395176918085770158818428059539721010131724799897785701815536287357953729920516996937102665446599015748176494004488976365055990170198457526950622086315442867732851260258415861616478689933721481355834463690877810317982560532562270083625700193197566816266432761664427596748065679400669909092410971515253920661477910420052735778598769643728312966715195965226915153046159012657126472329430888206475807847938790614945949091530384328868876775165158744305222280627381444829495565218785327800750944176072889800859624645046206666544422430394234735985448693263460594045654499150835509426216220646229895607486037032991251123155440326055582520044067151361716357608828696271636317292058995950955259184902275406119443760279298787024088176449631421264704449074986465221341499114040098525811574446793018869798772189057549508669226380642120105743136920776769846970786433334019491738866609998034199779202758343387528890498965626076880125625575097615243617476443197581327154069401162996770397630286341403832984168054867061949535359219793712487281824832013016331938764327388277896388877892482080006117820654919892949858128530903811145746154712788075595759436510719063235538725994175068645580742518063802695869297632120070323096143685784520713189056582725921446041339363226979982912555648951778813568000899983110472185491407649700827998600263923054043768207312400665314786186670605360337935848198795840115709183365730572819798273712458187150275513564867589500230128766464684663819305807052736475309212592449212759546494853845845908134500965282980445241785041778101068413729440266365131116848254000468769329562428652991220011686087288239458219448435973749241451761380860458291881662447126258841139882182646726277721517162841939211158525547625585147353141909684149393672028112072768662358796069244778494208970687713016167788348437714840233661321991889097990416026703991849116252357152938267743991758242477403301592344562069241070244391205366896541354228913177480796596418243712141721015105997787750484088747027561915928930953465685339135343139452255771261641927888217093107466672993571178078224144376602779704383460715092059035907459840586232238161077086552202525232868460828917608568934597434997593952876247277547432689979999226467761417309024442408205383770152102227184695126047211082458691691748635464809195244271510677827535437196832845802180258753299522484031984396550085989002025967878408836726086744207212384980090623042496214526556052810745616265190294010487220294867295787122783328294091319979973834675178753268476772921169112050797975807115702296494177036402548059944759209571100633189100793382928024607682119492533064017090803097825540946753201197313614558319547882807663996234022973749701937269172447462813229111540913145041931509180187316977702022644578941129536960464768349050550568293736088150939677315702734399581333928689099251369424567584119067083085254617268243338224297472857174461682078760342928315699536564427698014169070578561046044458325055155751016708656761842184887689914633578707076954366589050016559927125927579806823651154114279148949685555622770673189538534147055384208403112934833298382472224260176162137907566214103421752006307122358482000408310410645488454070302291620111619109017818586119171756778662323681739829352488789114700327333681650953937458752407774162961418884265179014275805103961678320141360444632211359429812531084220250013856820797707048077149099023318549708641649491135588201274793811354940886910915099277810326433585371175765779803885933537488472581560416706440914736405015765827223718668515345197892767058848569284095972601120575870573760431110996916915209007788321989864876341774576885983472223847040783147750096709944191486152437717963107692157729590070407970361153107694540241475028173788826021242093672494213193074474245812067236030275927910540856526240047685230038713039645858179783636409479675859010949568139706757992461989200221739158141443047963396696417485289029712514320416947782297145506254938646656417016793627124634980485928868263922490266865976500548274011612058764497512952563790246632720558543864479326246195497774224673529001746624306344924197359938766501687091920995408253517365652935882019106471879746388115353612382447691708706706253549874801426321021384004749675056276256159231270082664320977544267495386008917856520461541617657209644538462120960571489681055851066906728203671573519141986381560622123637060428306786437064774891564931772914333537978702352657960760378867300051829598080173612561410833096624872107545494004441423728701682392851751278183421451607509869363162948579751730314653116776814196546471302821969013688807458861264403933821276574968919334702491467613358874679542682104292847468142141792874033530343958061745703839577284412337357739028177110128016177615355496238862675497884312683954381830005591536499414846171271040657120237260871102688371829000152150307064264651403003108287511232175047883919658656830426647792782128550421009667944516684418604597564724150381770248453007502599608597678353691383905544807955715675368007346317016716142612171650506738957979212723146812847763387299382337262464442583161713059468786943049016629446525903309506723717891523909898980936444832700652861300193709509127419888095281723037999108021906150157988576863086049581854380988302616330724805185011276907581241587187719792736843103960327953657402705371308193191820964699059379579791643186321919214587938515892951835863325028294866011254739757787843251431805378081189766418489980876297018913849061396082031118958632528845371099196795679280513202605380211872886705869326057713655801241131596348544878746151772725174829613713412167984722454716566782964772308355050572083547046601703457740278459968416340191997518524430296489971482236490330253146772180788553730859749191680745692570135237601901440423620777742215488882250624676951449710121544257093897141542280635760094007929217684293030834852748756751482712902766510015618373653908175048987071396925048739966069279549292660702818042021659726571057765488514149368352554391336905208117517476868850470377253657412795355566315120667475112379733672568706232761026364352541412333046797042336985079856387077503596995021004816152349404895864009170513611927455927990252933087394380879154677302371589633634367849975281246836410108010461974221063689287924420478961190295640594010500946721804315204442909578598676875377912796456746575589913619973858336695083559426493824991863622031642580145544827356737295385750839000449848819997602827503562828744852359206595253049067199439111919737170926932620870712550291074918899688249940967600273331927151386878154919384943943267857739280006944486782549610683017676431363504538950302474642241941649455412738076525652994984778797674373848564419936308981042300327717503001522568958228694001523660038754514226325884963642743477854184285000316958323059032249647191322611322265098602948784568092928134484910976121523888779926445638559274996066417409239640667237009159345762939392329142770588744865618363940095471593027299268683553298568767851507254917491625653236541869306937461184210867031877710942152125105663533620208165494738151040201577677779932243743944662484994063433136495454519241403229885769627594447948883559642026292916574903883106863691991093162917777473682341665074149327375559027120415457676885892209202035937859619317065683955386658812343558512562229256126992193045879628776925783862360520889787744482506181226036146817952701442956551028708615191595556928818404754146577259117895300196997822500151126684512114622894854328873060329202989730965194219306765533436798246742668530325963840873756141443813091026023706977769535363022273889905510827221939901118863049209786228414857736069830702747314417862445059258412021253657659760592091352402904971932414884786063794886945926961440336472000320381347189488415229134368025326064063286349133931531744273086488942086223539512999665611611243308861212963331671634236591345740588414642605848214621578027663837101211117163658426221498304482262281110279822473505892990922172987974842610439243935278131038664406383729598887018010815557997092177471203931704862025693879470023255758553195944975363932044485702772912481459521521053510902722769370680212695410669612064638473327517759356593848288845855333937954835404351538578842911873436138181466819006151666714770061863714847819389209291866403895780607709216448966909804487757864498659758248256135857553302407086493150908396920659592726442863849667640250987243511469897845795127608059153239271418229000777273681055663706029252148260293630588008682558646471163901816494332815395721167728309174082355186166184261579462698544076316858396334844327396502409750790752154393184842551667238850697854710241750178448004667229902796580003015597211992353064247895721208064604489772600451497463164541233668844917664328010443662060187066573637325969328151789492301057033240223084462815448158948316125480478242729227459223180184962178460918425608282873901692980469362906215814588214165173254884035025698994091389092026453458787185654088222825152427619677045032930936418448081118577665288281402317429122087164400232146257068426278960418545584696688272403969114926183593171637413393923102683509752257298180757282015869539230807363233524349141184728558098798735843986893786750573056673458920197646265237186907221691194737854174124917945456957661580188258932851448282452635652073364396207853907170488028325924726319859820034110017954545903711302573172684617895565253747846419468031191351175839086020384992796345149928841284909262365151978436265285240990853514355523309519658415022958404474595716307125054538676425184102869302583002685546976093691310020511754289721037202745111596359853262075094115322584281578352681967613064294712603181254371767177124456702966503276169594654816356569988568056876200699154501867988827435183724349626333944687084895803094482878657065423139135188142977717809136736773134163841366240847915038836602727729092386761402916023106163711713649299078900960101921218472101853272845884845496364944491652011870657556912069402004343143377553106520100133045974530597235588179883005952800985729594455102031899398406699918762583573286261625556166647553847720023705366701834242702805494436809007098827992371581687397746191082959536403271097874646020796351657007015960903745147738889294138729001687861821912105367536233380634938597557572579047077928810816020041953017547027204678347888664650438869337148101733796038015111909592108645239993094924701567689778753801716463930308737166370645503209821633392456141261358092581705235303788206755511062473483380202956397535502830773969388518539830816301686767396744346337026122623626792200386126867635968820547689890204275431239363654613229019491755150348087905552495134716495455889789670755217432234086282221767555040830882249626451214241590104770132829670022137106974465140968331296755770168551565372684755872365763670532456548575020037949536437063739458456239327093610348145550104057059755007123592097280325212297714210920568872377114634878747054819087096524897766984800668852873558783772821700182864818036198648214855461755410859899680686512567278113978697734469934336468100542474911783937484169113005319143261834068219050958967401352197581846211779972896077287085427191877478187569064687403285042582883523658717268402127585349571957861648210197519487754974434686638124112389973673561805911935835832651229100937371250188478144098396996422571632554367291664460056745743414850593290891555360657396912786524667734814011043864986038329035396699201428068513230493140701896084138520715408291669213888266468233909930702123221190617907096256086039497767805450190529764122860151791591063937453393786869664513673520513695833010962874122095209013257007918648747586041431457320227766217661185658051643943436341145264156996034843174414732582062759915556530613445849013211048116773415695637090690966806443421267198155359356194043142936708378131028340869127209044097291909842940038616907844080125808235652010163923245726701539136686774231368099580002154657293799116958893124201823136174019562541415683651683371596148847972842717104671597846658709407108515460331066382546268422308866209147487052611308534811383774331373586460091035482829126734460887054457416807017254224741569977608477637774286695223980296662397253580642856755506646677975079211571647785807113646321047472314211039817068103427376884127391333162643561250625487754362304278813098165639913970050039201333845320064853616464403378066586392901097488106411686667327066594132545929518649171548389213487314455330200717794276409553465097756156252594099829639854119485350567143080033925387558973655233624602065755628770730123267805995880858463087164089513450551654865670013457050185553195389803707240650537764434826797433498711990147512158094337244097732886324667538959184576325402396970815440230428952062087884967845019267456878273770230634554200701852103301942814763680262854284976921856853276607379038590417764322093744006717041776257332523358697351180628715772036923291210916040845174478884624789547248470570921964481332948413503064347519542033754770480874880910904869341409346238023179696655203035475562047084136659379014561491998927643637222451356854826577622094789151694150922000204858965847888731090020323827720999373731363468648157785641815983896023401511879011257368769055083489493619172844664270105862442298537159376243754913380852491159353614150021695041327054655807725934020950428529928260021517818593103688101693013017894639343719954562396590406427154031648774249800677963357751875091461666621104150784690821205222145537134553777418968045850973517492776946368021251311016631450986913794319959089065215882677452960419989487543942563993085197658662855195540070229061187039580677603169802531039314501665376749340420896779578540107190794750299673888251444345577996825255699993715128828001044974072002475993970835066117486377868790127944372661958046165193624669451785235882724633696970086317259375695921257885006315080408058630784933747286145783489354363443696360172598780580108260725025388024987572441206528785592579656361949842384549262439242164829049695465030964249865504450157622981784582406408653300337281523784997556616805688176755716817695058015078226687707430694005600574050629878039598155523776440992347170770372399099708106770521629045114880312011229923472127763194993051720727183248621797249248205494986063617440167774288061585862719667215955166905728653521092831738753429258892720832487142000641562384267994001723370926684205031317411104682466384054787132594486675387976300701279177377398479381143112815286782813594365392170680632147854574565820583859032659661538663488143029940774921243748493201764530106415765749626543333805048329591916304148835184529526998770702132528351634325901680603455065778819401181490317780724078718554841374451949685779405248568708325749583229742251595206210235840269183414898398713579264654021628575692120409010970377950084456403916818159230954329903754029825842157024616811459706413713231163152655094067605741280891617392531387063050723640833394005529511718808385877536391209058510793310730851780249274824273289421991154089420032500439103812558374483133651652454948713361129039231561091681860806661521843379774280224528479441844159242261103937468731105259109109017993038473583743522796089130938204128582393335468333764125274513271452346884069347383387673703645418696253231468473891845156344112259333491683582519677199966892788271227095961722486845003083777191119431688154481476048375531011197106659806187769320821019227429385208116577108263508575711700471072571771643912731001094283546842196950463910949319878200176388212524586843152538027463052540508819885833752802895768545696689319207123769843122639893679130057971400159314257275516341301498816183359577502933894855172340500813382515804986500340582989447291092609892985689957272501593315826411527854435799112201771010644640450022934754431040404784434946377981991714478030656464859523244557752093934425982273513658025976379413491169433628384959514859310500762437333035542949908138525855686398849695500320989122274685110232304980975041015672877472858293549882483669477243054459432230615770397993661861221363300253703412862986721411926852159465140003277801053797934163957221688898438320971247850902662394744309446020966133654408170279587674316932215818446213356238672695340903694174567231080434625492551556582838829451312635595027239325177029964850125230494196392004858444581854021153946030844477564943734810207821648969872419337748204869019610634831268324344142739343350933498107929577390309140444876351397697360083424245866877021625464204141140264009310887207087298408494978689821850363175935744070619399681660111020102586894296444904763557030622697904350390753043683656986371520065302221182330682025416554684099655843375029169353078105680455910132175341841375429020601458866155029737131241403613682772828537429205894031896746264907900912108533890405078637225611173265838798605460735204777803887610404249357135874779793980171243708220374584833879012657135239135630093697213740112525820015997605809438687913146725040115409303383035352831508534523937014681819503283477848628299826590936607633506605111873726757910811888125583067569662586839172873733966551380649102140630179472364789591789644966983667049791626101828901167745669878319915908776864163359072195863872106437537754153726481832117626673278887338608121970723695760072811543116081252527088048746872059881812381418131992236162736479616079252291715015969426376306257567481761307412442805180319052958321858261445882245650959707981453890331452305485785497857956593039213528523310820830981331354102048089665017001500484841016640171719475822380468975103163003750984221826095691281643848702906119346840234294709340033575811018534327078804861439162314016133122928524014713275540316705332392631469230999002405571266343953882555793509397070916623930854284638926460862251911638280921917981374030506835718191688572632518050474719026570326518286854672696032447341278238628022189252414934424152624570785214542646432916028281283582600461061333715553331455332845780863951338037501056808658647436235911414693699767517682065287485284347147152516751911702105645426897976461230496704648370485535115828901238654416315693163975115121957132405124871002874119521797757971451172913595211943353727007085825332920372984758558887083878334302780985538718404855992441627256539016407703386132376002121189310399751498028424909369220720881842159861760926893288322984666138950646031961818945066891370875991096641911168187038455340922378563119553223243185409556552821634793630088818012764509227145121861871015569062640721003430138436280368014267998287278028476205089948154174577325578218800631121972305159069622600611542642190680449560666498544078048953641858476676529390286779542083778408051750212295574025335640996323033576803516266893536642188995735280285860497724226444666869364512819282787966287587062033574080128534232403276650061697684240311967784283148447398368711465048870521435833486098739672114258941974585328392368915949186035476938850724396020930393006753385058860183624612003812279852692847251610104728019452514003134611892548245205107389796183341022695771334966510992925404175202400891712527766034137459126168665780185809648541667905342731504914563626588640057198993795728654083577596761129333413707969512639096439988822756097770844477257453618396418541376073816331924209460397655329296147894475588666377542270993868106750890206745092657089519982600701654988422202613779356283001208315031271546464678872399423870697936540944237469085777750034535751304271692325647502102321973113775567690160279918463239955642108198853151395585483968538175489833386542016801145218595972947627222977072650679817959206174775317187760592491761061266544115027701951103458476062581513040287416734511103363294509632485422252437475908194487445312899733656856282372540094927817548885076710646978143060344653866137145702095620680264969576105120408310740162434490146478275771515117170696836112803588807858372883740296746387953675901602965374275651145114967851540073344481157029138742255308250142470958337101495336267285493895845514354435010686865245287931241273126394003974329910709454623764017982726839040072505240835493301754563679620118199643172661758675618790403005527384147931787782164479456462786045801347910366897854052082689683593915912631467811619124806688201368412872298942235602542157854555105763460875196846864100765075149942980056834799383043174933148650143597429759569473568816795437218786215936188767006244559438931318762174394390699788773438406695446712608295063326684194024482176152543444212054123243540183099365238663328011683359944864209726921488612234016488721852663917267100549643000323004453872844984711432871715886374273732554806033893064600198647457444774277110711525388160815789905600114985060627436836215178469728985820019823520381525827120646400735532481489554521095731159684628973313023948443773662950149946140775380348374021909329467497297377061764003948031413707849347142704052803867411946057792662846667013990876298925438536678221172384794909987139842579177027622952274395812616788948458423651102001293824564431724036791270789778026662939005524617745679891921472974412081800464262326978001411728781214870755882996917535886335456156467139903761921653862495173243046504667724699434061220589910463004886062561633588666229066833221672830395508871537960482140554497755514705264559573625162994288139118933914825949348498336854787247745685336280404473214029865349261837909292794572429626693443765910356925704943888503140000081827200161870347875741868730556961162199662595106414776400108020654225722151747118510754397453411000765681790399948862166406024627281372690985673940697702155674012075785660625891538681687780852311643731954483353519750940312827076988705299894027092633184068868394305756941687416423900652440319343445991536082314933234905507721348248665388971763704674942020416774327438399795918912051444720642530980406835392916806789560445236528101891680977867122564067209731984598668562946411438910105840721374176288250709001343284812524812534125580041961640109005432105081481097393356423661797430869795201863265603093145401852736196800828264331113017995208682596723173443114857455191815249548689452889321974647306434143760768106951691006154764349925389778989556738449321148970884640903919757483460519513274431183342931101471847425264631076150945167133271008732291220727320080535008513602635394260571729607558475423250766295843722080995639904128609021974267513309830965631959297211373342445521909965944877270854078929253967441344467228641393168158494101601419223472440121269055003088563464023551367415740830403027492371926323190382363677916594547162378160857776084422357715162276371527890307855542945665670585794096853693386282060268406658672707670513022515263288765191152870878228665076374018282269690169520864517347752389053517352402407314291799317039843356564768725582381297696392282286923111349578026014808090059338261939994159104818877427288224821480237254682469337842961513229761281760647491099277753472501549546166483611966369284041095360333637218487820817829620917808992627888187990910222198818871001875067717434356701033730304575545348954460218914759263677170260685467475541046961854550557236708329532540708305785945697257593680374226414698638894295948517165428041608540544145318406345988824344132160944872964131650589919024949542624377113208152940064689573496347102326220365137734077169091736239796923895885202085671424632985917911829347025232808579391528343600623110624687494247089523973183072075995556395601700084178519634367380321888549475350308327163545857017377841773412772394424210869469915121280125599213114711754407864076297984361460649267467515308334575666619504858554835820672465054752032657599683441283199926958577488675998221413305220734486015377152628016319370517837950949712277438969513829038789665530049703233355070377807025766147628365478109056264465309100650907170053344572296294817964633370220431875776609988096678475864426076878152423041524436603360024049028343283703326174910234465104781460674533663500278905873703896223986267651213912342208685704595084769933720308482132270875862733817569871001787429321417340066164931805604591394253377230892914784726415184205243204271143449993041442872705038071120620123840153634199940282098282319173633963876891339541364844952041490519974670754605709142029431913376945431327234866307083705743893416716352279797151652666716620532746841779321656685627441428643924086969331597322436271184775414789711148586713232915294149680041182393863454582002456124808262166082179123734175733856058063294197378429475537197315057374574383387740265048880415409014259818128151745075582215670477036468270976818623898497770356068535885071485640001017278098085687186948630023742252253818322277248196443029633763310000029976964607296080442305831009853074608095663537491756485662301438283870525993245547792229942751561032167159738608798600340055323423756790434905365410769450556664317006219295245956488770704568517289351420113339982286038275347579027514336637897783769902699473412042308723016342528197789769782217658741149190330118847213250272533318662644753613591301054431945670012655006888071531553305206902261616765412390085194369977181869171608418435939293511492196399194436512315560655576466700228616836955995080337353564844714923904079726847909226981932994464151076291460303189719450449443368448974871269616089393779511251916221641976182889610932873913809703392262515496695312167271074900385094216025712349989505236819294056804202999497080727843044473873310540317733327243447073078562078589554185175315248565570411528462362356586773638126508929402632379542502736106531078868036872653308653332007687382627348545849503944823915691925226090041091043583649668890493022367450468315182844023407947741283000654070650588563554728095168447435447936032321024603899653404324711142833690219988323156981951214666164601318017363862052735627748973242036602777081189533609892170386146049696527299564145345815423766458768753825738811702049514352398289429359923703621930698683223613797062364829841254364721368128085390819432557471278686721279854144051458447203089227221761609303552786866449511522505622335238208674602064102165802736877007897497730011036080494348968633825978720172769773055077782478522975561693707283244148063470377183145720579772477182145932525720105365285408348116085638311059160052116425783030103251436563440431910222432376450846195142529148572351938574878727275883332310552468368605755156417698386869004832257458306564465664260600878445890693366215962194070382544257752639255981651599191615248698121010046782743129487016950400991834141197430747016038543008821677904352464583665024850229669955523182510993753972630250994142120537006461395552390764561213988783652164621281530108591766212223221297653796396158265589131140207409943281655149211783668140878712044538593207930218266194992422111039966362415960164559181618323734856928968926392688701729569376122211855864710831394097509875206350335914007601832485625525406277973281736624982835538720086905377297135947602671306155431818870956033319951733839542676044222897651676272546311837200455312811133028699595812278003661688876566217301788445403279019787574563895162376624047057209719288863620805184946550410116842142785124574137160282489218131604183986434607836686279286268154278497583724600426817079086581490153313046604998794478562040856571895904350301907616335453832319460411435904810085465356148389163116688014911475337487219590391311762815611385498351981966559439079039262445786507730096245846373666550174423861279131135835773527376800711012347770651045210908819727679455002788853583471982969756361367407063828612476810083466361574357092946878730919886449152088990832494474232945123783168450110037694964384472508042267694328884293515677053641061569556604226488530742834860850338455253338616835680606188641770752808168912975179632495834314407839550662271391288830826771285665266767421832920330338015969405883901517396974347298259384973681249499967195009135932357699222596878220166151819570364624136215208639152451951159235495047722462925104616003591032401803644530599123456492998317338131188269544008054297183612121923129728208724399801444847330018778205250803946918291290557005454246729299247084180829786498386748965294451443727230058068666483379719185169727249164938720434517150185034352428378938643472678003143014208802641810301943405079158683172698376524368757305742978518894544315254508103993505950345384579600052996646224608788932554677028603150238410807360748711616389635786058637590015199390586318474442468683682464249554811323438229930457859049002469166008695046141724075995934880760398251430688521619825703624392604447379440534202797577713760687230382412105821575743707448135327548045966367180803298577920611124690619187720947873327212988521558095597612243746178892281982818874753564164221857877979350882128951264913967540452893785349041198377985156236077727411682611487226393874544307017335705313375295139284663779885118323529887477080093867795048892262196268307728529013931516781675746509591864731298455879667265722208781491136905998564053795777287505528951629946203200500367813467151002345447320602840043409304574009674022280183269406205462184830776296156424585919884066426885526877254366016506815782486914016460916988004973237659322925465546092828545294363520262431002947731647652125996994051186671777403769338033579078561754224716956201143787528189964893929189206902164110872433535686144294738756446589034512874638745763099573873480542009133961174406001864489525415666317565874376337831658444638879543640988811271572254091756380634142363881842313213601404127607644760778128308606183968874409260785278056728669075600066227340352144016650308131791030996967300682898147562083177616047617838721288232236013877767595202788310608272738711750679908530662754731481252306952585153354857038174416634962667195754916482890602755640813210903832668754126571225913126611420456694641167115259510620445564503475926694355958504646483797696823420346424827791969352683622791099062121753383669766142568609706679470906056332116123086865376155021080427789600057774449988862246280640057059553545193555770665260837745227810464635311388846716024632054768226676972574197673796112416106573934431032796267204001117569030601845835155240107798043173800026836618164503182041040632885679325926705436879669885137912246611977573404285424134749512856949820380407607248250267967699794708265539815572748138012420930664048938548994580930632376076058493244598494106780762050548815578730962342549812939992790708757291405813147982769019531817891695781447675942684216983829691301689877623947022670279797087446303248104664904244903959822189294152955687841738358719025410112194275726838860392598714638445010214744653137221089165756993635324564509361426575946211857746765473516048997013546747196491501729553477856771433426631496695038751608237432782938075087281149663854646893745358769946245774801951917802938699245534906951786420772273557000695973274748376777048293674414089561722756206459505117668107621554713069007869856034019918877846941050819356817940135518185066657808980156851433256763499589206079405675034612096299771961180018701916440875875967742542467899224629591722674789935188809180922266387657719675519774279697759178072101696870007091802340575405559828688327534124334342313488121334645489769742686612164066375881530564584701285616981838166563522083092669432278838946179389390632612225917925340290557361055332519851965390066508946945626782377829586479497893160869907365239617924613404651719152040710983717764751114733103551468526300298480570642651240568910410354578925054963571457641988489461606616847398035814676410377438585295665221128626930787680401400158046145551468185822833531771146221060475572024820641798538165508084582070409926552962013552311795803944483146013281055090195051541732775951434826821666906150109571928479128770343570864525694525830723167728695785907948693523242116579777987600787752465870123434152283522730080042617183292107515551240277006106731066941599054189776385152152235946841977690569796483145449433871408984228345736491845091986954319318010452788249531748113895271982674078618057252514645331244152211475951052029132900986358675077376083192197335549754091601986112874706399114335884058192276079690718713124534261466042728537875140501038068362026193501560800672120943595315716083813934886717432855071682969896730563798682921250928865755004841613086658708782125773129754645909282916823529011470215897088652788716535195131229208140653779956812011793957586704939863112311172450893565184343172673750814076039806574346510399610167339763447927561912477724755871412657489124551882990883937763567185220041323743833767484890017376877710796778676385155481245986932556402825497035545817355400962570344361696779657240837078128172843588185091502739590624729229351434889984280950139628891626422599524203487119238535712882106498595434511242581415567218582538634368465953305628757052377584825097602886957761782667297240549403747819078619795270418105312043258690779684235032856389627077553536715699443049217487463326376763595778427855440373124105483322504716043252058476420918498611150645158513542713216438605278464285598607952693309895173077256412440602639357972758572593520128076304072425314495264483342933236616746272721565281879931030868947160313380217383184552832783580072910800875609924455884289471038879948551278487501395622136036670226458796103009860363840496580337723266532190696094942114029228257230645560109907716973407927912134656607878058972042021262979652298941171496089459441457576728012784093010992339868154854299745264191887089548138889208848898456474268735418487068961836366716735982097701713149978673964192845152877938121369898000444021532929756853604082457706158345218503380277006534201681723048874588317666645155820535302194589015494910517446162713070297712906147853682404177719271648352702552630505449020694093063973670738108189176788376201637136450027244804732798680966746508296191445942888333004118353602399352832282281111833703251542234325719591316654963571949986806152651546133772763036237524834507430243263374172748480030047867983446205549238993542097447433460304052188593667782834271147871503533782709620771957447969116366420387763315070608704889474182945848723931842450735164929909206384667690040469900090184896199151737056431662929071240657022886629553651931996676507312907070456376130055650525636936321742403201524204156087631806600956479546126103202323601459737230187084966341135930926391184999916558862292452876011877170940210327607810679133774433646109176566330790836521262143962219521017127440491568525993800189802103814794809771797225285662012562719448464877261310279972285163800475351001226822638849757804715990217341836041548446872779652358843383720518316568342450227916747803836126264138077597165062811079803891552899387630396808900378906677871305874236531768254714219192194894348815581989771400888978046091893523093393908141920116171917420805142232644729974830921039256961063384351414981541838103111232907971653691161621269357794831052891648964292735038157918115784479776023439945765451021941126817344613736419803687375159168403603318854172733218156718597419113840733127150198808183737296468263686624295456071096553513220078417247618639179404240735756292644512155480973847703779959092266538834092864208956761635598131505872801047044906800454364386222787527960934894939008301049381425981276390273334697386235932390491941945501265966663633768114019665736189158896945862576135861752099008413888973669581978902452097832846795144250522133214578078954267319796786573872919329007076942858782039609788865577837165295728469514611167746272019086754105921756950975822673053004397958334277010193984633950594537807376419633421070206101887658169358319713937040939157108220402338276696407689615183612946186529841035334127524646726581361092741112415414428685094079549969812803184106991260625526005481814620474118097152206808807394326244115850902986400125528847400214692374615085555907088896990497602422945184830400819538829269379021718523273355568295047415625089280274128359296659861945266888188328270319644705548787535324810759111339464269918373368752146766282344928921181548602643782537852787046776819551766037613635863604495599913931345336157772728573713049742346506549086170431076596310363563180015170819649415455407920724679501975635791022102219460600329539087767570027920774651766871965728275144787891653069937996434894249561583541196073159752650706352811880124293198799537378553313643606041449457587926457014595558903485695508217231898697279228844500836833388850462031204951936419797784637656768585675653346312556746139499322753491348371752841966217882568409195845590993329613644267191201664752470185545768632109248420073862775113394184957450411047048808579464796364475867999771779145126456342505120906397643007255043058326709280479642963408754605612958530982691516950013771346599319023610211204907289866217146395815496755218713109112624154703001689653824212461154529300591311847432224834887060623005863049583728350328071813660259478061685754745611009444975620649131825425670947300617939640109254981676982250387414407368475482770059464890718775359789121454946302451260159262023121689644810101276860405249740190014723472578643645650578309333131215056193656821546492582002937384251119177626110207750398394282871033726716336925252887671212369131981223918194723391175911575389923892644346679419931483651627843160331573186219080593568732959145648655618985945074757046052713878775317090123369269612336176191258220934546005850939950383187073807929753580985008297828295409554220869861173254574446175323498833839431949419491086393307841595724056776912536830954366309237679293746115353304040493631896905917937149495709028405422651465519420466447714795621425016856224377861673196738044725164094096270510425833424877311837181609280860042497912026969386359926015625218635334245400559641028757228242343993061662004590899348583445225794486211817516970952615213281228261700799258836084266745113370547338454297032585570745391629723460794628718378130844261833065386670137796911540188170159643213741019541524461568286412297986126804023735783914453495346662356601118138934755994678971859709554704762288828111813635138295891526972152323251712719059432685801662836004228173491725871229896298823912264734796849682372067443432113808744676723992909201388920657151530620617832046785015850216253474508433963529371415837633784618928668092864999653746589865863296608731512981729617372081580439681382761461009953569115266726914565511308505273217480757682173636113594867343194477945904665273460664663640911010346012337507847920643824165745770200919636645883841636055960454294507526050734168516136213164247630570956327730931077004209499964228308641229396548189148635668137045370730644364759300829527363073444015353977634833065076540138346536355497385640305266138988748425202151375991663486326127013248946886890752617539938549023643618968553451401284711563901176084369191189752045872846297671808816771973116459698127115017531239678051379378238760367584887128145349073157617991775942643812203905741004385661887589793745980728514996789202071198426338916609146975526664833581465946724865811278498642632651554361170253592595372560461919276314665919937805321425887125016921676274540439769396025318202288781965285159935198789831612759819099438001211218131945899521674838264571536211611610046292273866550562513547526046882618638491172917146116427106374851216054243322934516267216680290911091478068253230611255088102579706641286165616068750066170571540871849964637846482745699914391357791866351456705879848414646307906085357013436469991106946915171360917270672236629035725350175152596398642838685811823675437620601964587928679095943519166648717564209682365168355026679019353532675424580441701470378391963716436856770383074240652512660367089346148197089318894381598587575778959352750021470568317385726733079541562267575955386184321877936429355769251287956437642046589831622474031751057844591397237752851148901566972036569066074468193161928115803731090459214445598395778339144979446336668956068361977967959639484828385145119827933169729876436967113967728359430771064800824481259598870094857737752340298528046686690865183241610662491010441627976770222845413285349731350255855489248209640557794887760328531189820141209633776525075344655434632981196651791974463214545971875471500266733547707536187095394730670784225697635313506252599347928030980409517325870727102961700303113173476361984454942123240013821872474655705592008889474315523859730049350255749770215943521866215373602535694612259343339455680892888999102568049690367351425876382541636463255798790751757175567908198251899343114912109001549187189433245406961993791778591779064025690303659040003743458569284521257898371162135378402373486017333786535084049411570635639461514763009580738691012362954228144753154603659378605886895198416692835322570864069177238056222421318528414419698258017089411485066346512598597996597292797020029785455221489977897998328059918305319386731266721602557103356586183098582696117896178375317284654422393204771154397930528193779913897700600847080618675924731696724425362129370330504106764692167782897953393955388158583396617304364081273018800969537081736647547809256348099165436410465994479670247082019501277051134860561509508985664739754786178439587695547880169648075174587048131505136328737962854212239302845151684187715969295495859974285197856989503535930297572389437617999338417617082814185958383594444848354699177636916090981473948085831032829923556279660143719266413142575095950513649003100347898280101741778105726720321672155076554021065627495011147906662725551529878619620647384970793821720951358775416029336443462312247969631561914107653752043318002062405647868890737512201603912322341963713159543815113470591175033773348225714692393174658071769570421957615705451701530956547328490399777331827743784934223691860673237081890491188540300174253124627439248256489005205253929084350919148925571355687282499672129968225795420141956876954276027781886720074568424278744472704548172401191841209399782507311811234755266951848659532907671201990687100927553411013560608804851813681932839772880261327166681266216263188143360906057970470887693356158890497424050807003927083269106292590778031138546302211822947159950367026681890764203327834051888422543467472105208769684302827048436580244305476387479310693767754071235574170665522570278686247156696882176504823421963453899891237092089268738297410839453180232649858654869481909880613249801307275937318953923996402903873453558326428392181902847351965846141611873627576356392781033076587023175386685052256497293145372554337187821017420637571987163272984322804508942751200704909343669645180020652288926437306622302390607819203199800564579110987211977949913573791120465002123158943601213495665169851972916233854211028326676238338607222104012384185405261397116665139089927141883944635342160226727201798892024567329334215003235832826685397067536943617853242826108093248195378229688394051907407433911384776384677086950379888499295881469607545740235668491302653282452029242623225932091086895455782557820334951512206737502314668240592147928178860966611615760547743007512842185018363063316418878324873374021377047269885329187349185886682338698918936494191788337585788709165654354125670508101084125030497538997307448962432150982000534797732080372792530193057826530604047778094354322804986345512869891289672874186038837458933435174737431178666271298828301961637611638394666111327573203682098028321716070764811837870007368809904202628579212255905783044340817498316127129060229176525580008996740471258965929704557925590281658913952165760284458009034309837120242487672479642928886935594511517377756891442139326273312978937399024284764606767213289195069899362864201691102418630444103492889202388232370168583575008919570741695838036104690867280062296576975532008575918922682043970349140720326109490369400765652965806035450366448959548336758482127868992880161143378849224636058648017751755659539183676466038635759162454227850711289908588904029901726518014253417246752492711094280524730735246059553695754375005273104249203352827682583005278035495493743312590107755798542735097137691779831729565542954182547608527570753062630700307399512059531220961528424860038385503942591050431685408584342143095579612784251603587646009427686848630335967631566278805996527652759534883434875662352527663699138580731584095592509266679925764713851855687840833926329837119251868254675313178173162875779776703380299777137562150008173999452352374839920301380679895254222585508377490807125044804419083803170906477341295904966178659073319822974466525161315703950727323934660004521789074409966592004400157435304198935549737290896585092508062778320351533054003423121941576081386955550351780716530797871211323224906708427043806394318242796935748620355145513162330002129858554668120221908207262447127702497872081227226920874211262024582600424051299229481547989213567667235198039172485167437263669514481010244911904465630597577785751259592962617558692987722210649151864580141192622873060479221889613475183943002863419374064289372164641598273774474040801427974165714866928890337924348771229118445418630067288313477093904153950796079893910464275945576646122451679902558458046515599597187297678601086264142993654653574650764254289023633692740555395259580341803491675537961202122855214382435833630946953423497823211151897021857517856381890271195802487358338548164482589744295797775617929213479045255166850305011368683179454573213645336929097680143707918813050056586682238528356182678318599423958368227647333832324648271278840418117211882779473445463088217873223257758697639455220779976526826205780583073549588605024325403167893884144071416357066008158956519801209012870989255688314103481137775205089586266855423518846798580522282406339006553873300720219373315590351200212032343783759833235978046173623037429269592829023377367439752411568270300633383666480112008121710841491250176466310707368562020898033234239935524687299838417436016200218774728189958347130791309206301398489554401993524061896987475565334238672228530472136910696865884376173956744246936692406658440206186503392948509232993267207979119922604299808266154760671378782210258997605213657423210122516876594998481249470637374131880848794075567587960634621807074829907723643161213340607987147144464752395900846235688461564822725494504459582696872589115644186301867195765107058585828397738208163112036585623065886553380069861047556886265146396347827471887290390453001517107849597967572645764047691657767115826075892230076552866302377030873022043727148345247703056304762974553094501147525781872078771231468293244526626927746610333194292281384788581361931101036832786506070860767427919548633004609957564498066191609656664019585556221285583967215747627655262896644118266743354384948810237399799606690493815145146440986448434149144764622050784520227058849803883523430246043076592641298638693642930498818259205930059573406172156262645101843714075862621376658824811903199736347262385850680130651228660824710247967783133973669209470668347670877927513410781235182769649278716794707984969244282303841853542653016651519514047747366345476316063119140905445738614050555033872769702590205692089189941995539257205771145402662289518253468927767404484726527104511495897072122840489314981692204241962962936830587184351710598405941248530992084037661138730744746618495015560418126678399921522854708031948359760250765449566582193106336410285744593619514425319164012176262188323173990854683834134932111110957571788573720284772679622194125677630347994213985969801518840737150878464177810976481166888000828062746831769315593668445511095404897093380701511119781123041150518443553968416445951920606820982526549571910835183530447744020930130918699495455226085923315640862025945733258574730674741764349556779086441615717396772104510813421295709934118549400986823241498122712475938578605963585589357897668762611687294224549230729276843137344703171846469498287844448508864269443021348429315998326034847784902599625295587807744860343335493214502670096733214378959992922655765902397636215876666502929109524715468598974558248428366477781877321442503302414049637888151488358326390525044302421547917527404838927375028032931480792553110197286308488782902432465382330681670096258835502761833912783844235518705998715481108480668130840397686616724434342013396573924276520353475075155670769429169880080068107506221024038508277115457146219822084439433946092105704719594836435211384649705581100854776038363452304411185110310813887042285678440796563405242124176845508872642150346756131916093651658926923239617048031271259927817776437075551152383442727891849046064968467422964424471509041419137080147938384533021451796519049527062908869598806924418471257627134414769991509504896540765115504449346004239546967698715065739563023771221698844184513416088655098976187515940688716897387424137674984787295565937459471084143801283668417158562959374074657126955653195566211190889292860086994506646564386884196277722179459049222063374576187175373490287795515860511677367894050454119959832130076464355010464485516714739031149241932856050186838129796015689999597639461394896048993106444451023343799778305733228722862926997669770456824400587237740702671301492056625116698301815076984603591918728542442100807608515744552144858627089315858758195348046985867738481206243048265996881275166994667753070898560705151318687060963071288704054202966502405700201986831585573236027031343237410892835245542741258276709556166072670179381978026767296831678655214176069065701148547283379016977052282156529505431743314340343746113630084809349137827961361144759373649504565983963167782134194231873000901666214278387992973977345079743736312332277682310346985233013625948728583090314787969199556605993293510208517321311946892765805200542707796782503292567518488970259725371908683355749853194694556489339095727655399474099352758183051810563710410273016932795264246304661010844786093294919930014220936414915315570104728333717162166498438442707189695041406064020780873842320230694655494339621232345921308160826481981276902731595201817018513680881296982139507438440394160818403841890854257664005998203126753686740562593623312872679190640939983975009946251157628634026436963234904671149469551408557987616273108276206567351596212577318238670758126205111557733551175225797898897361957920468595392469562468066922085191203345405045150683015924100314919015812835635205264144894197549612234356996258467072029454001053069391845445405678700810493050603223977028008360183775632330974366923548146071923447662608104752108640476123435304917204645302457621724707638198778339659250629854831374359948682058013802864620885793391190362582802182231013037051964044526870586437071126909077457261160888573135375764818833654303988655217707464882793487640176773236015060666605222957552978092778144099069721877270881632758873619949013887627786701311328937656791632310121537750569366876999857789066073196757881826964909645945193750784678348439885109957118775494110056740157024125922735591966493571952630880459617928559304246487494353387802936648520742752488790684813247656424559065729390677678621747218824748430060716902747660174234902443258341814467215770757743713555186799124264050808120994006692111949137147763655258301120336513761599848785718942837662886278149952611959661000887655447142463200847756512775771412400523342731929760850203610136515525321669699970464607566308062255497143092660801370404970041107360843708424755165888589498187068411788176220895631209501531934061771671626159801982956866998856858501413478762812524369341807328343258778910547073550629395650783927303775391542266972428511248052564595208188032908601016138980864564174347314537551860042220811861524957678250105220570617148336313892218827045734157353907829349494830591456777607236216634807746444982918388869187026737381489732852718950506621895901862420918636994582526019750140811253987846301372938660906876601233329838456300892191129816691302853150964528717307119412653130317836115128794963111959563081762848258123762383361132611393664990610184910536937559255535738617824662022313088735971680590591775198357334840359974567767929664630430554153483616088411776297891874228078880680705586429357190946195903621030201635745652793717231841238068862364197385355046842154366320157440229059762758857567978154455025999147570426179808178065624549639917841991887397178756140815842076680828592567728761980757448136953996278338553646581638925429423506629411392259649499071686166403090530424540056683483917446110574018946725002272382964304929575857504539633557086752639354454724499005526395313653416065510123955132141207773198420991105342691481556401973710268706178134893742975494152428763244322996099757140875113680924056157351315934855956890489239817380460537343817240700075623626984467334845276036848716129759460528352680226212260812371356545050320341999210655628497911218925457092952397187013394638225268045364693522159173640082230156066644708287400618361322265674315063119040882519649695168255529415744524792057151137804397974230588763721501770898874201376519571500692113999564133512754154408830749843475473833560613643824607310836493339671073158256413107428079892917783166821366191214754822364063054385885885962144368025369286055736610291026766040927060404993403248997929661960933072264029958962868284259584321098207977565004032618258309517301910088124583389243782327444262416051110644627495813022053039510556625198900898855024504485896340532653348669810256079331653684362668833974500323317580450538364468638933405104878408714559377581330746667187771116432665284823734430199375138665303714178997121754621273375648672854298899493873027857456961359637191238531734211354807350870183324574634609439642867274709439470738515180495356828011569007825928058442010829685691758635127280251787162748524798042421211474477142214695946996978695661286886049982591910352375724268150966434633430151901040069535430388390847656702947731663154606679479268814118237601312222952615895024972598752171105793919910488073363928535383603591536892961352305910152462123824687776200949196370025043667945433664602216021116927439478468997408882294342966947430014229942744444803030734487947704011160734149204356650651258415446361062031859252354755120757281648880865366711310578151211908951896339142048454304222895975362151370323689021399709618194678500467551875020979712478791163028161572328783330414354619272555071903182099525771995383706002752131109464292290092511422715331596876334622977209030524892097562985626144360214502842825676846045857924970983721232460202457014670367883388165259021516837575841160894351856261859196014292762886176871959774228343068889725908603433701547730981468767159549447508023063954267223061623949524430758135237428024332678619317407062613666547166359714965981713225542137960410244304789355056102202154222296023160834288051691941784912672702184775599892592857709377572502470080280483307887575384120979416858383584291972817427011291747013997844985385544290872843282560016664573863839165591358529420300795915971436788445994696837995918173969502213621774126736374970411875759877578390992542897716985114498741865200543673327017296247454948665220114301800806450715283116447279568466545102740566165475635896527113166926194727376192738677489409918226029691462286057932102471129548755038446665944370587814032569585778165960649825670686944117023901262267873831130279617786780458329596884511441596420830543654263983207391065117231669180917744348000675903459802281187308861044277458639334829465498392613339080203934021557482729282929001545830510893954968025558478387331272319250565148582722333280628305741719689239364083646993309111735920503117434023269365474136706641423266169965233995220245454939918775606875859300182582443686589158570464427622347629259003557158665916487425712639133975650064821979535221715898204639327115038718249175792736226123481144329627579143578933878511784188416356823458589222378380326934410231936144382533397140803549086246243065365594535042064419460390279417243142819316078284459541388540140366593163645527498483800097453637185195030448842035986670694427448176673628772809294570485043635047381701365351412294860900328150875952600092397705455540452067543861649699125962971794000094716453914665305078311864984881204716423866785042288868111604408298111956474913022428844283790516302703658316875326288432192737650788077762297948083560464486732476062625376162477514115871521372043608891212243630612246357739821247341047485351069917695628553139174613339349393385050402799978217923283883387162925142785785079929874498071615047789294265721259056549663439886692190378457710763794279104530640999220151495503423639216551087325219296887907539403194408961249314072965727556389588270445661924678556010301878818839066625538450739656830072195405439819607531812618707227891232472560508890552790368424701642856837404042063817562776370856814798206837437684145403309700672058580462436094356437508437243195850563649925116731531009050388994706029922608811928249827974918747769506367048483310932434556576090415948516622797455260702068897985881188443045507799841081855135672439108569415278108534664977686393666272682176238484915602307599242498221580428787458178529521667553254534576629663758679654079694205174898946749847253402956959362590635438085211151855783661173321386833689729501656283975898929849285416034945952554867701463678788040480727897181682016449540422838055635324996040715538700664467643369118518055351417823483023198282109457124713740802394999515472011545765682072904711163095816480639139897157518621382171263886523702305647162258966934580399584780236647578585334434357022286969199110638499174818754415616513384013409108345615971652873522698727022088395154748602971011784702946849980980621635765887324353574726533334036623172124372328583128529596670679996489553139935842780399397991287015166449372937914663616685378598865923907456313696978967495376587466687715600303519678241908392941878193283907564810376493213319585802061682325382360231058288314064638023929028965183261767196329933267966034932998228640044663431853511108317290357135777306692359878377876281412447817944792464910662202089675031824645127092402483936582558907307742387865572326556584374909150878868096624272209175587812554421449441199780000528472877151174464912189692153175582967179561138788879312345905804176646675539792309974279454863728791075097804398252523457879457254880385040926479347491223173088235119209464241789128948567570058502439264369004489344559706026801546342558337757561966144454135257799131022805827736456442024016217924613565157119473837346137708307010084358082341048171072925331402199023030597518264983792749136352496364980934326867456613996109636367022816308849965139736518055901240103648462499570212881351591675339688413895005310776823212874960418341604194536076279718718873839828386966336385548924542891364849221242161576148981628365504176035230320456772829455431960341446521426963392305834732088528401214057089600997676307610098232803982357980290921633529228411215654426865730303678451679960008621660840990565135987331217345118426978965279885469560402112747429728263558897592805299823614195755822709951066002359267703991356356834756896268308562430051498593914725900247823144716350090741105027010573864309970341418303437708377742170021444158520088156548402578087496874313939322366479183557366864052657379915368300541800586324050239979157107862159463614035551582572290071782710325245717158487108584350505355969131245357970676728947746648268705798422246799104489889105936650544473057327102212171634839859831931885449905384905997220882153595364851103903307450869084810584515066171637725437996193607566547903605051042072409088566016876457154293934221742528287203533705989463170837564447197771585272798553915915304287396021816484515890496289961222202995006980980267332740581255093102887377420661076738637296002481580231148895219088280176774952755480806227375097393441170007098878432648977081963872965267596436542248378088190944573476809943909642210220714939290043295639979188411215039408684842247376693200802328482712085418020559389774971149416032095727460309388690453467563314764106132087297970240499209543631184639440734572441437442866453405343634529041561491522573324467059331946867733799630954228527226543527461157448234229118002295482748210128453248118232296675147695027701767653306956369977779327961898410143703555834580721762669050537488211843068941933549446114606742739876200045553889121556524735296654310068221698477141807740570117138559379988328652547208523929989204356435222616566566360804137373477440264649401774334056994574655359051355923001891224224244207398929806021260365764284063158198922595591642400377422610606315811955999540991305451849150695252031791795937078533423888397115907204247413725539544329645961358623665585642133552104239730563250406601395338441780788814749309540870657267551039348504411716243041446151261412034958424053767467567092200886741841835060295635334727642039185261596742993491649582971527274230797103802939082781650768149535789342175313116536832948521121291965968727119678969563783927818699866966662587346780974126637293225810022847798661436344127596188490339545200228066963487537149374419604268597081459332975930858431684882222506325742494937680053637666382852662367487361017935975911078279482305706828180359821366769202517053041989861935729528000176539434128004696980882923867882115237628100162936469344351439599358084094235381854624838327551298439507237042964031892375315364932094117101988177412426239938547372905317232325842775235020644274638182230274686883176177327082951009756739224269313659116513321333065926061148248913912235393904794716957774493206367643181566380779137918672920005810237571491301325767637369504489020262617703757763248854875155107267525800242034967521340444484121619011023518551474741365336280958880760357386278974507306733437209956641910644921412149675264272193318900874437537866292879277738899081461764258664690123498574838602419791396658160642756180993595863621273652333966523431080139248188440125354247852378909130517288934148164855134814934640543292024040194683227600674928124306366560669175918644229442293183459958076030682658724624057960640251294351695698238835242174150867001203042505268269808585404216062920144437977629495044762415842302257662145199676605167537210075762203620850525706856832749077940200918543730338463230337256131492106275856320620478200559636913055202518396253730474266180867828592179257596689172013031168421947770217382080155051038851773080118586124057299337891138848555365450384546513649756432706107838432339494577016713397315673469345679569860004567410580677757478512747742769265392220113192436797261951938372388352787576597613476313460869843458499330599333450375621694429853992781393800031710799042398634299262684475827221839348042670267629196965347457584661872593183410514743128984443893284979960945876267211752719565173259580887519165060803801549982477983485671163573034880233767067047185928253491445274565409745611584717125503598989193588196435143075935328468962078978139984530270310465274531199764789290984595339240825141225740266995563150141523232360144726747124996613003495552147761955102421791339413526568716281629227376971293456648764848618543699139253581906520328570964272131484463730646741541710929482623070245197175805678357752038197628519270084682321705799125162961326467234839036314430892444711335231984635656472731579094570346779643968001708539531223468579076451903949996391951649229227731848559604982672403304586570705146852772106022596568064056109173834111189201447815475715887173429681221055092092995332239425824218734310324703855330996731446359715789962245922740760907376775173505745626343351413183294588300951069858469544618541796613178185812418980629215692369309260941777384839635751409381727618282404828864518065112360080705720191394664539938453632973851908866728115302056132562818291326838080202715232961169065837729418753122039706831270142195973167165278858950831984906151650266704282088258091035225191072325945426581595932294249939961555941109851079339175031251586475195546644016177452329535944180525843016070327828738121172969423325780523150634891683707044403279127093770864529313420472487086701527366943599776459249709150855640035625679499185823565327014948893045778878093342061670577936329999611824528437733782737046200927706411532572108962454511417264708331289914307721202757031110344806001551778481649269010902637575205081141706486304071225280186784910454120958709802826716287414402673709163324835400813771580187727280660194077511624839213776476708558054506736611172292697193269146208726760745441225727100184961908586890248650245729186840979726069445808103935801491403633617995279952478800779415416951226065591579663314569650823055154779317628795847724036620304557519669482450192597145005520850148459401416785891353729943445141706849991471452988518263532300643210072841510812862913749855528664745579278130234699649553247683387068141101966075214092037697947225338395652070177978157666053734815634643473554450728120517414479321398017373521811728832332785054091184218904348015277172103747270724781914985167467627575226986832996524933584796425298503480919207730240338765677702061560567166809828687836147391559836647922775749601820459719040426278562123891860787346214740578652010509335185954716676344478874633800717260846563185934753273673354551587236561580697306852791570116281149601010322916226448177353832201988732429436353329335421990073347843858878491762281883977758340054289030112635170769111959955337400865565266702731507962537635231133908929824979561191832645680265044009241241142916185125709577651219608902782603198108006048942850347245659207882617344581780700273967317617857391851028440868056368249303717170103907162006443490662036031979397486106125622762723124793472544572157916099069210066973925166046407101461090665049429048112016018511233220929642189064969358857728873630221430766192707341656314558728786839628779164728131411114577297278216626663833273601875036294780388507719585751804476965240114144516379033439228906538387042830865565731056196282537737562120820210451911000905140438207167025842807363048800910069373587211202047379947535613699694691177692273079390105124316915302903401797291053702066074035939886452995866590156936126899334858286233458648512072732468148751185735826190371083026493001150528742177651064870950496044579585414973897420265214868722822839381868179310301089077526519856768060099162633535359775455805102696774144530199953681198008452927834022042032121451075399075833744725658170181841429176704618013739069705899319973668647386589383479365800328235781038469025113210850831354056679900076985323309187256132855311561073898044429787327981987241174809573765215768826208347797635804392759477538815582751210943312985919496045843848129010786306028859836179107295088667839772152775287089106368964975159231846215073434146694106442741622561107566854942051723668111548689312233616381575565072920865852125181349049951912217167722329590061741620524386566477697810602745436176769056141313047784121369354663590762866129002806084387575948741650531280465296495630501045180988692099712000404777991295816855369869657459440234074603417044476725228865133005014452330571403869394413698571124769925075384810188039463026608219015995191340591250020261899260594204085788876958748475667340930131556615948177958648897722167218059798409082851838362866327899793815912248650372281061786712215197470085442876580720823366004114531968855842466847845794230128345544026845903026992770588244118941875506687274052987553602508807246933179655473033353945907607896232447252318039816499024759729335857337049497807707132301268739563539581379879946710432742039546047700413494335081117622793336733281704207188851774405038624464352095704500933306891866920749579244484887290820981690539382613426209954099546939215731414149569071800962213863144079981906215899946463569286236612726791576733378328119948027753471249428176505183875740814147807951950129390295881431655168305150104181492486145414474631992394352690463004789383964833991467068319311175455449380263481130379855040537760183638624939055710872509760020128576095231997660249536092599455540152492719885526040885153154923452467424158360153138322285127266851374145819541860436138701820981500354227563289899760265581816249954731795289594069973145715861450734235747452594432733973437634273613321472477011802476563205865425330631778439945542077025513686153579442495111213221501709041676788953662319381475882911460574304311270182141001287242258506353550454940391589413166177722663044120600496759824894620591673483328703460922281817722650412070001641180686298982911171243858107200727139533337552426775643158674344125113363288193369675336512880300190521311531733405338114990704507190725080365056583431203634576772028783759473972042314834382637559192230058984580284590389902358673590471736699523678037143861411604945425259353138178330894530616669279716124393705275380690457498804386834489550499857132885215106422671207752089144952001894320507037175993982199327800443467946671589773697752787553938966309198533857774278177471408047476700900589260840339007766168628328699929764012640042639677616043334166116321461719645444147214623554377288201843214771677783724732410286476620384614963926502272282537107866357730205206564758380277599845801806979336670784307904885000920453442836812609637522851279156773697177311501376953627767231848096178109752734421503810056474711046863712839101850489402818815633298264872732674776874566295509794417338856293316254193569562492059684831578164016540838178547511605762027213009312379438095487907822331475675280874082443327506717198842874769606380223399659190651303841433911227896363570488128598073253149484770739277585532612091335358082858518079524475642213606185259733136265146496949804900398493942031032726404104772819321923739641567222280467098049744492213344591596389954366732798732625396281939777592775776949832481184826804958518120417791898527451555026254375093033981680153499235715345625109586339342018787977996524303101817774884331202053904596810612540086610335153542247104180672991334624857519622239655190679271651800277580313652066737326560676749240312649225600281879092521845011528480119290495974654195091680730174779500847802696335591557501726903069877631945027087284150503252129726065882970256575064700660247188491823404851760289717768209394960434625610098881443799853915776812592183055831549993468438654227997921398973986509466384346832789642750729155474809990337412080671964045096230770946883087969502900668890781777192985314145479199667781170831007459386091593478162745178684455353832161906913923851906324537480868723877584700425729474111251943718908836680957818953777304026862422678163141974720153898305172879066761179876884623908694895067648927284607360596503253399618837346554568897562528596366571809978794321888240115930498608552736201132567869322995322552622067325319335831929576254516943465310836395427783288108494512279234833137458938876397731229652869902608284776718654874798017348937506101399501713164804523498802722823399487805477203993793368004518441306569545499486286178391168356879700126206025755068132829343409786522373834559655602342528924562833620920734496591391868287748449964827804892921333926131052115138625939981646887763655810461470143458059401639769332887668971823069806827444004374777192094671315486026587898872411305075258452404243331060615788798030082665126856232328388758459327843108481098972897116911643465546484817542751954501901034332994271079418380470347646583217717886301897833926075967850053193240014465214909792945982663323896797318791327593356867717448341186194144262931714584340228862131462491068015622745049338373933863436623299496267769478002757039752388450167801484880406304346226660023523059534073356886220456516520439130817769465053554756205021856475007838003341142881394009713702213053657435414492854291019717577967199081097454611408742437172601278609822292261327074860955837768839906144434575913919344059731042357081646128827917541922072593231779799170378682814926952542572897704504616342007724905255914222766790602435194080363451455531717383266091351488937381399707992426726536450067336952898050002455872465442171288290123785554825770564096343133627686774984216129356107477484227958675701537565317880750112888495928929184526202800932188781452276602923584035630289406504240842589164261279994825436671454427588766634868229039018233842644433947200100835637155399179633531786500184334137421271110708213291866015493468496507123016212818254526295440733959679112936802055090855251253408985189919048583612168235208763005926098200070626648636340465535362113965512082365914604767557244618716836880159764247291636613413582798421152883373060960800289356640660960292979538155705236841043889429793261625604545776806329015266396302789688306560388552023122632618047084878110050802846573314604843453860293179391849749552955015332719429005631911316699926268934483553706571018669744884356300558726209214085639775755972128077096291556417669601251469748079209259339602138847306713098362457764572509589249074825290083199258441534467817624532415372688223764725607996361554788734857012275630703774946162451288013820192652528423569312387039757441813626104864878934434539202680797327534400107201578481083475284599758501363065842280842269683752786144144297315313243369641880787987478237499268601540556411771058215640893542199810449694398189668060598982978308360905276487163843575950900625973481608802022580177419073287057118181476442375548656110918493674596738242963564663533333658929581051470280948029157564646506696923982175613129777600947213977211277781521532281778110014576018057400363715064221661693001179967074857408050210803842771576759463858513423130076746102861760863209008620696584585233300500306777740410943427190023740903787635811654142671636063953132127229274672297569251006935849423730779342652552327307416899904031783374902542809894868328624123695378550886642892572072584166355150231864298863618386914732809329148426542380311133658275107797285843979450178135231604388130469534376938359490483326452735553660022170563968458386335537076421010864706869660441312622547601448725488982222127075522505854510986225795578360162789099165338004303569506947073838323938811106141251887143492523092144456892569929080611632499624915292663857534325324042964458215477599814521047711038378097565260780646292608748497380578812385564189163854801591854983938293414203861702331449241779226646533427327213751963817947052652783686976982809524574736039940429991253223786118616114643337449904872882345494090479202817570470479206197510527862039999123996325583449112977650918630857113952600904097114582685165250346699577349852895759851399085959141366598144391232210309201080389342669802386395471554508989727413079267662545554620262215719851274267853918779172608982430188624922765338295133255737240789350351781998384274103010148732929847988620816951659190210438684875360938145396103213418279267492473137001353416311864868927182333136337209778241883973005098616987061130899772664050204355904358689693609941402340661967019459614825207153214201004295138248698361907804274380267961517373009802640545937700364678174776636877728931163640737069411473865905396909665568956092737849153146816702704674819490943376588349244611259198392197676753240290411077603717984398404741448577110746614902702696257838836417229410795916564866025252793309293074713515869509986544824284605310416541541613656717167571170430083362300105215666544095374980832853696041787951518498761253466324683258176173781485984479613456172529470989886998777145112466731914075453498376921133486194732867926110232796389516087488343225890917804104733128977733123203737924953522188287940315590353434122941433362398997084867197137925459897455766665095835192235038517153437536724147335333828904830136054206847921033132851783201753123720028025156832168507325850015884800904049112708846202209210135019268431173612216775571780669338961328276094564846804165820374392378047297864801138006412582011171137778597399249107330891736823892864402939092599453714488710001359186993484030799599566388310052208096734356637034302624120961491052254246866674790362424138008525427132829865353828684229467429581713994867932421901484673546224462565078732967103269802296342351216917818010219303000615534055879744330377561233883188290201594080575939583342356981361457542379828137205766073138096642472124115034742217126328508482950814825391340688087794511369188981596212964794732003969970540919613026589495449939832247849712177990343583384451405199264774782707354002884722616250116589534281187687302299409722863750819826019787215200957880163648819677139912151999925455543406836774390236915672650554182080871686537975410878616894338120254290444079391429955205497621346379531368833614311337947355606727317308057516272375494416777581757200113242987711854435385997620368918690635899051929122724813622004246756923874827013650872505631540799887653741466541682706877079587651487749140734870557509277262174036247839555902116752599288181086643329282964310822825054969908248681488049218358288731590526681309020103557147079097224634382384884358516576418950919369089923503326873089306137891472091496803233458705355006599398156526477637685473166730509268003108194198123655831273235932618178079928984097141173557396703658113241520427935428329480964861070610114104852599161066312767755939896345895788660883004640539646550553136273260871871746298381250157806536358660581842182111243795527087623127180701169167822734948897310940710994152592348886561916685627539688893115261054084238323852142021792688656781588354162391628380095300905124422667058940141259242256249045301315449885616036162522901929321783756070026938766605270373905235624033829229931639215850592070039677348424898632573165410568533212600577704305783667419414621975817322402129605581198868423217501212377499133163450552327957010851570957651143460919950972060935311488839315083793616637577692097489846643595418018218517030007520551934394044493674333350567991831675310278025580379602773054793345568145396566927397413731906677134872980468978424987331410132575796713976660758659099094708316119326177355882304966539646142447987919380329434914924617901105696995782041700590949582039922528080308797609095162793394788135012160872635796738258023908133038539314983783996338266968362677919516651906825820062580054920129876474925920854103341572945965768156696168457862878066060325198437771309265068850909879019524736901474854894283260234230908237198601570092827136902433632854960497144535640666511547794432164143239470869874792325872830905949509373012965512319187141855188843836479326572958880288079001296005956471579143589537818753949446960220634494916850383145219883876561709598145815818588184621449973172295421680447297768803775240982885949976478504156531886690773957956992080071089275815736167066045496104506087362800988049349499763613310830722707396935235932323395239543023120737401693711622755114232217933781551284030287070937363152645596715427991449653549695219225122443561933249844887772674566971658445648286457450333400790958900697832306625752554342984115399888278886049942765769838080492085041591904227502914456377366809216010344280693823291614732474368642227299924342140888994802553050560584332019959369372126322559005026965347507720086894270011921662746044259630921836664317684805047751798422708160148027307122868277089360386241056943179659956878991398245724439516742102513982897767709739472460880329211271817075513062983183889662405812098363815513569494858952624114726309156954966238614926160740613440052972319416478969768666155635277795549692290172516395414548354638720076671090134216028066392327712696046686567307055377975066612217430575669741128402046686174353211412868561871382756861950409722442625120848842538369877204127895220224091107486034801417661509962606392112432894986677504197083612402633996644016647516244921418359746825276404174029209679312386479783950534484551476420318987970759845413786799672123731462448386360079788065668090156167492077273324492664848284674110258877677794712962386176826168515133725510005331432491905996732912205961275528771147219429537060743318271742467612167649757702117194858323917628518380328983969671966895648358634036090675323717829334100428345095713723273624370753841281772128935652838104392572121780303135042286907209909623756165568868736961466009755642533047318433561534804301603833780550182212393973096061081955193756586854934484252210856451373603660522347908255801802993437195865244852801679466268385825726471502517553480452328383218786091605815932917522616732291595644545904569233603648852531105353645020027937037042289004336753583775071780323163574614929972974274256547690015021370841953157308670682725252040980909767609639486472380724625523506614090518786236664661928945930737780579512484928826094153392239073844424649585514889813431979959669544741442233820999474216761351167644690527674280205083229515030790666660345822595629466414854207745362887150997284054015638031635468219612813977127889834873917768555957922537080104883842588009491213615790203566873877159520136070661159249729266113755843719585237003774714899619259567394564993929253689289507963836132714297064318505153490778221972758989133604007188196861437339426006947918540615989779874925871948518676625545470754040697941456562790781140208558371722221728690319429274150306977330183519837644168035495843860054478658131624218468105422806308982400089313304845039701049650598104355056283798731471459373133964304515638538250850164167056746422124787912899079812851737297447207917705374794998813722608764379737716569268354621902311915587755963657153836212117962248627223643882884601806151976854930563036743655193052316929964893176417668504006282230309899458203128057301550907665677476845795155745159674041453760132654538261452630283735881104317200171329911598287405319119362370451396686209748060116945110164028651656411268983714657353919494232400710183210741693199659558301511183465206937470576900477795505559802870553467753534430570379707114050376979314013636070299649085635924305718337090243712817267064504935690213382640524655790133118838731661959732111155629884736318644074538178768996955596319542445088682606406095491361642062230190988239257805360168235396829511680640036153183155745888709681059398649748489318761281683362157486663361952617468392714711606932203299137123227370663727358377626904785388508161884523389054694432027042004527763699984854186172306708176961152263044103174582092859474364207501652564414755511375620388019733115665666559298657552992057509728425117451818717376401846146211472599500909285871848861931803475739387454913521944252860053367053447479750461760490321661350407370076644913185582486977447827795329513170562492870478222368908585395712033231692263432313853641174693572298386572874484150270100350783059251612063583774485790491779956183170232860942065940003782216393391811513088656479085553969557709496779231693747467091008992276145005232919555479399546793255224796700179725083582481677256917067251285916353444851581563460532691717616688026877520905892137041644867932247488087308558594969669256741656658814086710537935313190263149331857163631732814555165836299787867408387445338763529310482793281666663722109994608219409671821600678071730016069781229248551539288684083108480109755335494246493265487790102955184513553495626288810478089411852046492364056624773601382310777307192419790284082503558518518325492962251187162560740168690580075220721136617854564466156670892143671225237033619194288425799157805816313724045933452588259111289274115447524947573931097647091303033293331691785987354141411239879744764043341826515215563446994602388753872532501414069663015961800196392510165620907978637357684689670969301177182722895599777376216904317298659606126898893656261348298534602636095757332004724839933812640655233025808894696845805563189874250915244926376836796651401132865113332445289215831965974968171447906507636925640114305544951419632057615288239933670952336538224358576220272873925997202275689921220819108187813824673098585720241604528386190852233601439773174354933567559550217013068825345493295243215145666825041289396269307014031499467201883469347090912729562178307642175047789848778994239621180435979232208353327244178632077707301628373049016843074230975367443167522835349689298461553664315492994691986147495042304803723559986702299973876403461129602967095071793365040782710867166494696498026822003451897839281882478600114902180975128561212798889567637588499619256923074957931868144251869483192037019434264944109490856034822282690925781488842983885551929615678031717753105948000958148910805152832030374172863175262719634290286316685547292566762961552898002981757910053675423261842959629940503249564345952557426360447648996601211418423626780223890331763101684025210030473694766334439672671872513487772150753173116849988197495550210874329000111439540616749838941872480828770657361521504472241781445550247552398356864159135550176730452314854999151248481446985362895233480584552293669142070642974946085410328327025426710957921476702457592815065940332100647872343671794862587180300059894854692679000079636046121670858571368482024674562404775537869932223380560407956875163737624664856638220535524685758343467289807894968805067400467023209741873591350898991799701969111464176525556616749516754265028550905338255074630909233317862447649511640342311353805378885414051890653872122303793738926436879454617910152494655981819453429481469594048448577730820877241590130610119585066251573125634805784321412208371119517917962240485750896648233517489881982944684274479780027004423085061352804216795852814525540197335699996234049986338932871637541709914518695208437697668544910684900195130629162871390090561141515277594670809289378462826659484528972621257384264894580109036645825560401636112676371370917621715249289456613177596855701106356408864297757650794458926224356805956747753401962202210175636360340584776780341481261828106271963820924897259371565434973151940078790390255511993601419443237699977832731621501796726728388192169754713555807537615336515686067113568903280502234528692532088323608016595277490079922509547257834482146489731804050429932282463234383762471474259261591900638819738144668242245803098583642028032986501665012501843125799293201567812311223288366192651720295502442436537243159985424093078108955344318099768048975235371234850659525912698196930254983297593521897496706381421542881993090011591761272421882534261287911662125823258611255925952123925546863387965274668067054328108871329232498104668217965497266422501803582977509487208584347320575079950916554535881484575978628260988353446163653965374707248719604037232805294675404360040204103733866261387229571522661515849661672142093963010517646363160122883668832587659359409263759314996454721155014156693978531180863423661447560526304858107950218278472816289827574437500958034349812636054214349677308462838763107294676036521316084931153259635188644879255642637342760940570222386715796135584198954220085931230766516038522736948498259206828721253401317590498303396687225402110480633823431484848788437311792275752571593860900967168068604186290743117887292936450485069685180147792503067066261175909008787097512207424458543465062479730140252402916910754291798421109650542465691227128820574911016556255548664959641653527703943219985502231507670319642326433972891930465661919143570173512363004533282129576363510679007975068595618393425616210731881815327531017728169650716138379327166165878464264812626128094960132247257486037734033572887024802692988435452077325454175138216812221828610499756518980658489885156460968059324350051869956966087437753682156158893541293070751371113414540653650477329615559765688676376320478525947075355233205392544999507638019588177616082787241248979391733615760370705592181474449335115136681962729879978988012642459140947796556805319841266762146899402213792751714713726146001755451068907406187041855963590215589552343843338013881999778983911882669579311832673394494684689045627109616406179985378903635536515513364378621430470811753767581329357810645410039556748411301588210240271237427562737385248389564546569778343463561076360450450393329754043285014441818698866663614064224114522252556952429564632029929145168418022171555702153664817483427032346805812267066551586842230562440898203384522428291767012294805171983624754693767409828366763587212142207597167137977923270251260654325066746779940010251457167513257228939262851634419512328048383608797222570752580154101004672645138289819585843111207295110901345302272656083006616523495689967527963881140884991848864294516533386132548167102554730240682810631038664323085568620555930543588849334179883282852711686264148171479769482651258973618403383482549524410529783264937519811013847149895293118469135650573336595483264204419164820558597777145520290262886018116863731008967579777680574819821839632443345322501335217264084897603189381664104445225264746497831448165946671919705255134478079954221712195519719787084504975598642861852411964631050181071930802071951538858060394008313816667804974269785452890654134719890758258720312914692283392800089854082175119014755120536837458662503603761984329492380449247708924060738018795838045820483401590507329837940339687363180951258482177835408420400641277807760167541685069342799720189397154672378572818833926230982306110963933097856160851194172357243705238132527282604454970184511246334596337439093218434699087060285942465436691985097558615727392602846633886393027277028188819145144320147757091804858703960923978645153737847273797672240429621122425691893169028271000413518828852075234552629886492068849633075888711363943535723967868052152415278872716258285637205133344041578363696437104157792457245824661068912013910769171295410752873096919871413803620252158411092809766172824315422518894601235969405648391164042146477662954649197311067578367014478260877816449842520501092707645353626051340924750306603971955892509725780534316596797997757739984310835970609506272077844897159082912266851629519534047698160767560228773090432615190170611982113664028680874405003993737617478942424017557364722183751144078453469852702464305029455854494340161283403876004811841542061207312410283912456240892612534838154801374976541183179044093171228085815322967733339463238929335252908399975638794430502640610350252537217086605787704078282185076499110326071049003124344650083002890399364539012277849108351625508030382794871879791460991327886296747710005716568199741188103508614748554899002458828079508618885499171864546896764936873057763709631847311021514313597282930524077505600169444709042399448489983887373055522450106801808548433090347336530850996651908388012956304557428764188796501935722040782663248738212155955305553458306602665503737405437677598142918669983282637284017381464702686468158032027543333406017205160854641496588342698486517275270986153560604614184055390247579643506234976800981739938359831432357570139538221748788718905820221775394670739861768609901178515561673820386911963772290910925662057364058481303300883229773859406846092237423240568241245121582247452820987344756456820390715028725001368424978056769946630822926687851555271574715881431217522393213120793000231486592425686399377778081494022343846354938677084646472562632558951898208000050636022526437781558355729742486152633758525319767996659681343974564090310436391118444132343487877573003049388971353819314100158125175712655575655612566321399769594237340050539654116355890620219437839071964202640108948175661962213121866579829320571945963483391946659338115444550945427844414302100379652226618063943002306061893811047849608848452527119613056718213738791623457457466497707215716577077931123499335652094418604952678576095752853764901382726537021648794503433406767255071749673484684105356028125595776004737168213739237790193617394122960330823874007699383738206116562741695537164577705071106892515479506476998898182240597290920015913006095448992510849722628861938827074310075224757782802512672875818850080932803382383503436205982424208795884344104062489515627382514896166344997171544076821009037169918775323702596395301107352541678557355853987840688586105654461854531276134084568437224740008819725186396572646650265619855031623273841652455884873904771167664061301565932294360987086621905705802941649055464338517454715820432065118852067844587643179062967695950463588106524440894509863160136032460361764670477200606275784967507570313377930916789836782625435851388030183745368789044619255922224728082676250931256811650245621083259469341719762892833597319227242668709087422474568525916265398300740007414480294512038275409736106629804921297633340754612923421251340820578744845139495471548325446235484596086417059998204148131211833462068071255011638913069190083254459772087364890399645630236573346554930107655837247360702029823070213372619097237270486212820235349806384422467356149268016957860511499320853873104249955152868100277328863179930936737342106515770509786065914231993153158088903425610436148755537218331895581331905507279315206160823190174756807647964482256140028112033057656478887196681213977152975603750248892423079378663251463747368479993356695438733100383317283599534800716431530727354016437505626071924803326483247760983526724639216213131793342803400610242765130311874478801324274282739510559473612402576898636476244722788098885311414896298147342338030862417563457004745455964848921636482517779127753469924590850833217523549828145426825291975595623035175779819533448192184647205201525961336476517361452890568399918608554580376696594130343798407482766324026587697389545866992049052550155177871108230855061040023543497214520571562555207600844462440759758518317931620188890675517944684732836342593370167496235118640063519042512539824468457239246927936982558510348443316637558081526996295981219591645105578577205564501144685175298405617527866928802009108498534070469685357296586703373738088875757899166467647656334993103855968016571645861562313706133175425867080178452720062908018512049543365614106733709531325504689389519079081338300850011520594600254158377805608992482272870186847117492342582674094569724082997124874478812288306329353381181101149853897150706420288573977736506891338898433955951979635503667299918139944467586930889532089163949689250280145912867475905525815432218220451128435133994893468597030743061386943322533420517164451249155759726161014584060478041064266128747727063004285230120544932754191454171059124445132852082780927322985964142996795106288881445441917672237875967223935897083380584251532465609848221731762622677258889715192616812122428733908155249375952974597653152764211436254555904370660788742708915151979225740783886095873970443619067748589504333212142800318882353629681555144208423742190238302575898116984760927653254894132366446369032576855146080177309276275368033158904885735695173959973291335413217287402548518909044031854410476489981257104116460314393883696784935164799866632034527651353706447494384793598007748297336429791118492062139846055621868408934507280572456453511286855122493574005690658733966217195365536514985115594405745779613162938792319332507165498957112800045700704138303560299847676046147055123884232815862181140158610090073166218662343338191608461196530066558747209991665080623628285102848404333275948949433272245303139049903978098273169234018203146411654132629878893624838983605075287919902485234217333018800159637678492100268510951936123674765458630254649521016139415302232399427391757716560848156874946418949286412845580603115517283883339144923387813334001114163852481448813129990500998069335566989557089012232987222785057517332643325062301071942452464846668001974026862433869628663081596775647197185078787854766898525530729636791636755321108403907226681320432750222093632493452848970386223836008337774674711753794051009320074857421291705553241549453878626555937213448058665887456744527812602135440816205132744170874005149498788191286147747112536552390698250775285097449808480388458921593962146029270128363681589127730211641321815154098194608899598098520302789546876770139137284739275206995043303850007288218485437782947460079099081365696654958692975189723648803056715470926356730802711090918413520639094505002757843576388585307091102207140325151460114859052059646119218740644653436494766163254471512551690870534388912857631364344089973526379181094258835458254039757947900227395744343156785764243622672572857865933340676673604908030866056983451876788636340671694481941628587104122134201509248199775763222217339410180997724278616287956684418420923178294087457757750632909701091149595633144589188199070236139671328526247697915191938660949364650305559079611210325737795993954929743641706446066913319195402013908118954176011992514284600098513766046615480031900225969784959965120607878602434512506914063165933129293485488100046674900352528588660017362871806852950175491051105872303970739313723085803005829934884931725896289760697531819231959158905251928802701900247551539031895939817267167894999988179640632763204304350300746019963497215835553251244055800846780790298538879100030153950554641603026965075796004635516605615132001954479323658028859351188313434068132778675075053564183267764369357732505140766355664154951227772883668394140505958400900912162497383368432712997615795993837046340262956878436621322094927503509905874458757896179555054356550242788796050550660293310215783050195831103641656540110480182123462042122152982502328539659349730418650212843637042845507550792986090826764920128397830876184921646406456479444583871605567226453551381134968647111016255550853308652073725463403900016397928987190658450769746877736943997912376046751225893826655470776963236751356403051537249072873914327785220539065558855317383216316057620976600937786951838653368129795187200114374915007635987104188119053486925093509358186070766223869966901513268917411994209845024095128675519119024540905057653485427993612166356099799867137464552195571608256305229365677576806516582952852349327677997901458247416971012265230081099561919553421352607425856874503669328415193698945902504256736200085947789031090047291294486087258198682597043931824538961681588669191943898732378115739482866782579742604284388647847431822648644476139531394386096527607125313288247690151237217663074778766070270352621849611934108312631923926969465370307271295050611641538510682979036445726168003623045588451167705740259020268164252265487911428551818334569181613589919444853299376469227290660311098716534610017368490817921923033961758177764033020217655058446017128311467480962755670222191086698870538070083298801196732876189412312621943906489147092640214956500216388135005614349182618861957489174718014830886347021281501184449636910404090343533963292745156946311293025115291843701048741614745026142660655341125351586606375262619298102848685420900680879601110730778973905018803690164713782937030719476769471507713210237130388870699230915065081727058725121620134735228745685951692215134666867898332597547167393487821400020834783729127869441476386836629391026740983264384533496942613422802424369636021882239112965231089131875465963826624336657214092565478112892018452767830627232133369643685242385995679297081932381146053776472559749609638477833947539995088536125655127456455579807722478677011656452187396859276398999220374798960452537464578902398292227207660833581913341831434810877401633681433111925536492518967554405963570417879908515146292802815933219058038737541516006663983866097865781020361539804730542330754489265291887131758677626498420592464211119325399483385343918815676573094079837956123495664499171871133502335992483314328364619107973805750236903690267113863653224146759187826517683277230522095450285718023593040693920310410110949623549451883070129978474551326884491870399167199528484841293722868809092366660997606702302316253188407116837254198226369697314537212567488337035923459045750832566188689190237014141836493117808271271818669209438797893869100166102925814308154539435132863317554384828143824625850044586044011760734673401585055354531151230060946191668729820937720318090919399485518833222649901710573727642119243411207175625208752445419147924779667719001053346557649733138853714755733781861230341926832437628225899437664282992950332870688353750997789005841386198505798870165527684425390112381986956765317494895189290211784068338913696820641029025355760499667714336654381283692321554800235743940142762888998238296896238296953572363802941816414415698477366465740611668401193258040968675719097975128563125108898257469980526634535806536107665015019659422873512397543827967838163234185940772223420337739481421084333701249731712249873911133362515905168854263286812970381890982592848028101470435430609496440570051386114170947626117500981519939238648864725632277235090329715172932434578714253945489604903006911042842518913481850027375813339546274758644482775771208637302876578161105595656238827130992900185455547223239501064054970458780156096392083256776446990353988841540385525898917614974852033407408200428282476379563236984608926578216437502196422474117677162908800955793755434494878298012147916181420546950172752169580142418547834607288400915888808647400757938741853206985192006882450163687904139656635105690850711219089413625144797637274324120289117213929884939500530660304715431313524071991506238031983359644048256419722024286798389740095596287467475234782984995675913937291912202028283017846220949845160034432466212001831630135219125982494881405055240955285437187886253527358338007933730053096098635497618746283372476049875694096963634864954029279342247851086776261374126797004754583224960544335649623230116819365260686332563420059182087142532909973483359015728027808190852290718024098951772812071311785233136663582774485093262054807521887569945771992582734458511265730431259948337701244109038132549819992472762915401883334463746613229279676663361381725471530407284362432554134848272920991758943487698948084643981777320488055276039542142113039098355574060040799670230900952722827244408613536504373398960303015126548510089933528155430348058156250606025625586169023046989491542358037294460775604476520287835184108818029758387399576629821342566284188521572453886346411583156402578967310639401440077688231198525133915384286362984604827139034889786021175791353653218275281838193620339586711371514914354287206828339882781577709326139636629364648231459445037459079408480502754953670671069965331557500289666725318328881003733789036789075254255172040929436709593981763941576458944879986799559572953869711063148009988019034381884005889506154366429020255305599189241227383686946538003444221294801904290343674857732862597040732785111607110488028678554295007085725460758484093483179888619023928929330253941593058066551334280147205554903902319701592545013791265787418492453310619257934938867979435282614529876258900493445666955593286032356957972946509586549805849490965419052654394926309018249842098000023763868053991512598653597919879498467033454162998548383613434969476237330949930959280742220775583785140760385196222789332069291728698644523711313969231468754843718120461496667654939448176105551058892788638122866561799337922069709712522942826433035649783904163831826991628785238325196846606628988963271819774961119372136649621246428221124010990203282806584689017912664896202626327160324968569996543709628364602410905227397878016575842068699264052084497265029285238839549541761414570349539776402734036713184037582274402264998881517941164467630546305408204058336091617698437136801377334906346377085437310131373650504401630588374915994203858201317144610182305444631132788192955880177305209122289924092325903910730322341439324127711083382090856279805936793089877681070368241649018114028820609075373963223898024564352018397379621637054722808553969700529064788764821425006911959162064178455313464348964531469446903199402616495765030022591604511424080891987535783166905198654692233426241611539287994383482041663191980051541301756977676560871043713465318665756331704096158302801261992645579937823573001331437093176573565201914674940049709361430795847187849532760412369287210435345664440957536102791487426262255178136561799849779076009834627267961531933112862512272612021166145853429501991076050035154262906514906678514962198540497212591266134349583252210565335061048706233263216470235592839200330561204049724792322783233092929565741700053275306093572478650887454902184778461039222609465614602317221814795287264345359220032971402303404983462072758535023139271370769143594446155451534254642653463588978599573653386319813419438279735095241805697653407652343082900891704115486959383692667055774760952347860611216202765103960709359409570191868373557279733628090912885638499980401436432554915272994056923048104645810464120991287594154804705001233386731904533459756734332952365899894724308766935012825185959560694030981428953814604048631901380224430463410307940851221423990473414028824695682576596731716720756294424931306370822440816047303931529332755702493413011955015182579600041713959362489936054955850563977025879616833525432087816359557189119811386390874781955041687389574836830137453477768572957710332328202747806599508918814517891394456631645647854042962203671419561308773297658501371619635154161230320653525979245864261897793152786147326806060534655058756804224333871326570535304412786476374028260160081937400238118996468661841597571953360192872172929815413578928984689073803763776072865149908239590231922847442164958521864768242236948789502469754804703622928041118741309604134813761591851476972897034940669522249393319384672664643357666582656981317406357924656198747392403058591338169399190671004031630901740725569657121888632069709442739642784178354592801293239375784291150209006708938143444881320778736663377456910220836533643723903566542312915313361003056057257498717162895281406322875823201819172313739947771610162522723818890519310880038796447564761077768327279718472488769969731088898928656151188206982870473778782596774701967027011397068370103868020316950548044857725849820787011295402759281180169475701149454863744593821863793086685725538760384098194895756756964651634663342305120796595631325520420284395029970579577850727092949042363538436297377432353299373811511069275232688281510087749156355099549277434304826154374566292950433935832197306026305982454019252254183942013064412329238943387354376495066243305503011592710572641999527660844159666887235048036302538250154414212737422341257662914067304504092494992666829251176334632075797172151333258082423949844222995366962377649612191428966292624094632802313841979354894418064111861616242798291946941740710414269388825064508294279527675208696698221381490103026316302807765567918952901056872514453081398208133799163403000556090400392796487299744494711095092277920086137867026107632865350680671584427245441129831172177432122013671277144454249504451899996900600414282444503196200990567747361908173789292788410040352983238126178764158432967181426105774308425883938558622508192263258818433569313133070988099497787599712635896555244250022497118595535151679679689213786066628165046471042138791498811753465883190529966257705995398764191951770643513808710983288350702403041250274835994334013387225248678762150603314898464456718506103145062263118224818387805942725471518435280546370600005689306897056610371257686808149948605932743648560298647822112617551076231965256901273109610271981319407240192446428254393122865171446017931291607805081260891546986290705045077630947671732378577137605444514524633213431000036250664149696425617475026739346150759905033271018043007361258906636194454114603987338239452388910506497791870058656191970208246894429683517553390117470579426356370113175059562758073182304319551252630559728174676904308521027121150180308691402327681214571270231197369405462715783140763913788088122544879309052211136604883081439562885602220907475647266153177518642069933260072629337415840321255734687037415059060699358448546429798709771104964202171919770979492924965378672088306254752070060222791089648796274483358075731986765972918127398127034510039025004165033344155463420478281845917699226200519192580721686970228958711268555743410247829545998752955651095031205779883188212227825545698903551877012140634289716417046977885264698246373663136523463677195977765133866129660643879963594816292617199616951082900386232327124442060700943879862796114006015906237411042687492586740226219928445454572868174923566484441652852209263268913866408643150221970661973444343390530339992244629734974623159706088134793747726307395494634530689528132609462450481516699115048524050627044475156989258968664529222741236303186973699126826438236052451001480716831235128434479258648637420284319569639268706889469262369591194583199498492299446363319833298336167402439694704277944294255531368666449624150251289229388111037889834454870857222462271324339267616119199648340718400298438192560567238905564976296417864706089585073011046128650557984917484392908752621446829041720573307879452774781490811812696436155312240836006266333569080180953625722861248522303569590123558518750989877034595599159670799929729845939979679546962198729203956639284026525439376002764091315599051168473401423722633310424457429835642838012066696142256615169887409428263955027565138948650640105028745772396169112095956363684282073715081210091293912293032250928984859622047854815245667581264690226875108079496279047907446726127379527382754679340400891302436741138933912723566795090337975750738528439034119285090270399837369935764808799887486888078978114021405312995929748570855872266509917031434524019427612191490691071451853201715216219770333383211248988718508535339890282140729989333993795558008109674596398726472577327342618386414351596031931869859519462203106528587985905932086291997331313220059977953092205409490899250859864765526707025060362684479299856696803841816975510914408780742001180643081593953986808890296636376105907331007233203035485842227553363814304782281260239973788220678407151846482045166221129535072729685548074215665075060577656008453406204494598057959201228580680957204065219465857293569720298989363960786835388489509743466547908504853188270334198673758605919186438760570673775541537506966188241056885343910707315944044494067929393962295109351557071871074403807326456004459355538423621223468737416974070565223047348019920198400908401344586090832641130263815999740461282501762629737418425251718296562075729017922197620037939776528543796456742536566864253132239711367828251115573634370310969932386207999756843964260503654579170157732301916957412687643078572051852817193860744437792502511005145724000769474134079304683411811204882566226683056663117714542242855478372070464955418740756123514809673662345286488362174834432472097706826367471046836634743904756630070541870786676030558812926646307593033460606543398572240244093326573351217415362779583052781643381373165015258502931567742381220657642413076251311992129934788268914240784073869092842872237671588465918605516005791602273889007712646272743786000654300742175236094321929745535280433885852246904468633192348659555912361049714415779784504344744534300894792852564024441240883806817375100251907601594543036153053113398316150427244232774619770562587271936632137085547910513379719799770022330789975814336027218074039430863529231547760912373923324381609719228217660114469510812442871814821049354670845558351908640815299278923352645454633161610041727585177648519987251526720754792213578638791926756462875978831152857483482936813775831141859036787815076468132282315545339155225037410984641555201208077116423825888138521083107711018247134685541253713846819493502122852709940831524445608035669378097312438702430219563918829502182902933050044509562297331690688699001426233856834804476009531907016946725656776013046528475134766450997793042528181886615404663094528696704611796191719781310846025346065398280930640592349746603145569657373929608591691488624796248026122242336346705204123769310769327624998987938518239560841834581877018001298280490487803954723498807893542975607222987452478566176129762821831380354280184613556326436542883928161539734025986165651551386377054578422997421047458703300248768394335308102765143317021179318290433326497020589299304579788602543734001994014055065669739763740688937122014865183354532408616080156501946441415582048566531724194460614970619473097214088709326928268689012296413342625051604753464973074777435270709717881808673750443844586222432498150609454619298794947140541150899872985082007854604027129847065821061451951078145154722831437469751712563919243800567056398313692197053742504318545590511702354011792139145751872186911690754710935187769065801693741246647196841102972122355234642613206238349963603114351628398780523981349881507573883633739029514513595978882476728945026447311406800692351047538951311365370411555792842181998775928852815134760565006095164021704985124848621199036359866077433158629029761178462935169803305284542971926687082900086092744564446887732494362376336107320797243220388743820584511126867989621452189840153459975689094593420350853696440748817228849213340906167043310533327088701551177929966070555597509492635597642600125656940235552845498632317537286266169939823820574479159229325610335513090288271356381508430571328542662769813710576177892822606500471689622610986800378382791103684332732963292575862756574887426266126686142240672397887025580090762822299501485650413478381722177905469347351844181404873586303279748422620084577591197788835824576976744429480795350731904134269944135146799276672149643922207662426683632122038510169248680935389297312234258239720406509748762570445972518067527898357306673776279898009775349952455215961317656515620499614756143958700584683279813621103839222432039634792237275917390602974749860265907566389375952664059147897339017656771943986082710114726407444466151195842322933391976473636083614345220502534656975054530379957513288917628287954468438417578884420081121450118698486035307295689433901288300193834559985417110976315529496428041897157587291207181019474999101261420113005463272577885434037584236491005888130891778346884846693539394084351334915919225568344264101272872810363083525719107827744920964096107446176874350248578280790286337242960618221858651418015342708768914395005648143291624310997663393399635493251271714494635623892550848377319691243835512214266130413549206657238590521067657102759815130204817244464883746845642465198601650401015499531037488942211612463196066337005670839189299776486687661648305942075665206122947695878996767715220871911027906821401087115876368855468229327768841175099238805092842008237606879703008813834987478964561347820724235668504452052289123485412502974398095169191082483548010058523391391357421679347176398811424592587390733413693753333351796405888498222533271683417863529326457475225856814017425903771999875027290846251065340254341891942266987780187831004644477041181161132686383828418139167646743810912854203402946643629358535371923964637733128129936620134592419329793877382961325258098238341601343303256360199713816335737637307258972760211596895293989094750098206757734410003936683615198088701053354311075284370473124422164216308376893846631194051453543896095160235203144769326959177155828367254867605033029749061050597068696230793193812502666062113848394728027706237330235429872131125484670783941687133499142812908782845792371844943186444671401223440282881503529693013034878033876644538379362161989571676003925652779912143865984267635298816044813509617421759074544497388481902799346816488612997352393505582571076677926053058382215693721948119334900288804661106693794392855427940263898153576829281313782541918427417844721714395322333590713783761329854453948474137300837584049525255215380781617870863612722332265796943385935053989465798630375114976730483835050766660975269782161582807589064716900133543150886354139617339970849431974130719471458929219881487419979113456553575719806341782582499118501486531498499539505129139938578878747224173819089445222726912969875835096531361112684327861307922818152981835551566889248856531594058749529319600757824196117030342923403306259606793634855791630096487309043721776850707359031606356062462621137314737025566203394471698280915007736610534291341802358149633719395748488988056076562950687533702188647132042770361461967814693381614668761680952551923310602579157259834875195784050013376200844529068646932052289833910928618964114521946159093310759500988476302442575316860295514311330216610202749655465398960112187270670535825033601911387064621136740351224475937089097650873591714790578835628425700214231244314999400959266281830691910022735159156940701870020550873857523478842591524302942958873496452897103901528896571698523605751038080808232868063054103103649782135603651013527667565502198544923580433256485474486639436224768743749500574255057793435878786830741774821893882107189837721603075972526383071483444380028435449621192726077657206188553177220780584162585859096856608483887100096387311657530406635639366311734089475300273255711958372052274128444140745659901920278284815431434838500398562303601787556304348898272554310922599845082800145313243851708130568150599895641584427242294097915118022306190581598666282064021188837595486077987422249354935994540510665021187148388559814129154811639089864099696573309015689039275942052254555884554518465163911563693635952955570212362490069388825505578419076835870326961027869128797825929887314522087881778278399628011540423748668160827362923711697308679330030755375278467007283757398322069205336564469502955595483455233461284899480334852269657819523671331174343063738174508952008798385296835342723682983173163929434083203391955506137730202161819921545883005567360346472332175825031388574070716571841348215503697540532670723986986521723959041196134438493150965421476683321798126353447217534136553691359843133530062057877018981974234934820738623040902596739310446186804926096339844156817463704170866235649981225405341382468670932725982700710916629934550759621218873332710883217106122558284373826248348374397164171802994371437339880065473855112459498346294156348375192157615695143172441582740653868339325892061878987540937162307590276697838552357424094328221134879045586145492660790028697229638318236074379779340104424484043575376534919637105421817603846841258406628639591748025029686618062684558389099341786167028444856500152974082495868013368531538794405476681218676108694960184264513738646742002207094886210258460985773232770027454747894095120294786588972693648327262071044980627778790788625014779145324251526833312233600700411399924106077978024222099117022694273225301202576425850605907343160262555194482670022193680390552242935055606036586428078964061815988232445154843974623473779726708629878386034083296595858025968953201984682606806509453831679756501808929681287436641253303208521793979093910857214581104018395936782521555955998293469887720503231140467625398341994723243959046313016789496005776894307578213004919713047063539149323910648363671163681243301713654828576795749458012705111119687445599679445181468944099475346841146879811053448869983404727930830294492689146735571562321226294274756517177865586093428979942799292975122085548984676576656844451947011450421273793141584136755665665693991354093773817970788129181648595856476721782594217048630791269748792942213676488622051624329167439988855199996190598990180807636467569928095090394665457522592723453173266287043029810141567607162628243220498797948583297603961137729866398758112059803837286309181051052509319619712608126725742685484725659504575103696507206131128203483074290711363552521355790034316829528602597285677519738218294154618049497320442254224300289082861645869246509732140787347227348325431526517585800043667964635270440584579102273359662399610675141248187709191234351634947680494715604934366909247560783022330539392964653120892974080224919322042674637459516088627252821621745635367597287295706877916093645444939358937584197334571611378205169020318362633437092972633474728455503325663004445169683783239334502745911243292397728091746442019078109615307012110764794181918074913342705081516629752833366133414563260975251308177179415996654637017594034603822534180428615955020260172381347894502585400573261545395888267361995541490119285557476817707209393787115588126654835778846810356162553203524383951477241055970643601974275468485842620285087708911329098971933372319384133652252433725861902163357763474678081076628202803133094328718658330668880587642339149976592466443856900802089869454635615003475729645954318009311518515851563603303228468636918313249973740170990044198637701081914295508402382926948871181490433903151078960307252927794018444209982634497126376175623690285866468513148997242732071919258875323804477876273011319459037962443932951572338652480103581522674677190975618623497259040517673810281904504569420672491358792677245219141601379192371492746532233995913156966247940570595602732940812273631882624826532428723043854443220442139981741150664755697763823223170568026726126222458013223942136322558393754766030314649428407405115421857710947736752719921439634056914568202909534211185011712609669773893676624826558239112708541057129158450675616312840288567108947906842865258086270732465516243585835402136140881561429415541019085295713218575711674612868352181672319020085782142817504562077056606425420002477458044402541924717462269620029249669724586446318051906074789962573485928102657218348240090378447052154111308634889936892764510246279816106672461309212157474730369300226309123320490073591943102225036282162403693021981790469905892898249378283917557701971529180805628188439283799251889439774522761910808375822504179110565023934435614749123096376518645739047274273890616334912523722164078618829278853625781672877086905145994408347710549205089904771387475650406338963500082300811868733382814131559131177515070192132033853309532398632743648487971473037806490943616517884719387027439689720386193180130956911458913614058315533856735792220334392703302783305320330114420848983933786147398117970731645539362845290802508869380531450921157627789868199341803982897709692535712223061849307111567011051555429658603354918009427209668570756320191077456370006500812646604397010027824780468246209122031124025340828571420202776176921358810857389499218313986150380094563509922063263229160128779641596244881590275966019549625939258931526291504902081638806105731258993584486862679162867919988442445799763974589618261371572997339719741374691718007987989516283927598306740672333585092048323565357051695306872588753675323627725402705904495923896295663386675621601176380511229118643083826208369941782114832200776966225352878117223779458420906625271087684942300017860524307680129839806755765669798257991208562603278944712930603475030897670247494152123789263456041703661072623936947330542651165434067732193228532666352966551250203368669173298616865563007011690363450035275453254422982200217920629495022171835164551826864273294991483960482458983819039297983524678397698949718191040561228414452278389523162146533990665215097488197514960856022534356237543047317038959000545569401144833999972311543217949747058796100069833078262194792823482737597099476512894939749636645620071210069371267873825119162586764059609215116719374927071006863260200257469875696975664135314885900225934283571459010699731896821001250915479272074806603798904747917615076122107672041635232746441138450093549948803222049046154908842893554172137870445881877381573341464364594793710836788905358236651539838425544930654414324115124610255794607388363015687144944974517918625931126915684126340481810033751462148990757197724130728892382204044650341167251928612423487523591755007003980178340413796915347665632309500860622952951920090466874357253038814241333945813686629124013878027389403736252912430115794159953974932743839304023348252822677792381212622128620961206232066189848955895996650404772802850410835774495290278669482050826397769366578148441816140086304791294086558916502822778250421100673503973989435387992663511977235192623057837574125387757282802989845830156054353680587021006689768554873553461851701961262254563807436561216625827775882043089945233741486290471134475834547757030546712899555872594690175534619572870209938533320924726098855945252042584562137349323393553951367277398924717560812723926228017921299403890160265366253271637436831412486308258535838553258807954767737069107170216711943665408208529365509972920198322538285689157013584354640168705775276075492825587516725188306413117403127436000253357292717613268999280000283436970861826542168922676112640846221252787416642415101649540600495003679583639043672010361530284812258235112553443127214740311387983506151187425588310705869724869096803066751743061202133311955738972243714951223701431034176612973768161552573858083840272110732066605700531825112041286433122790796457364342539774899940529821841333029977125153446782462285486685903694736721928254397237386359145603854953290796352986564772255387243130475748116932751605994018721605549440275199676346782406098973931095219768185615119219820055793900838866064350977579984399896137650359800919666107610298216806631799467612309982848062587740970554046091009921961647008490285186742347976921891982354501488767332207596584697230137707657120988604482732598015325451075606612110883548241072767210533239021922277302702285507957512114417808865971064245833671209360764536229743656219062289072188369828277558280449826791600031209260962457815663813980209300477476015083349433005536628097741858738409187616451111532484560999243496384479390003171466690547880891940241285720126142518666539863917999910751669029905924670712911950797181128924840751451848537723083655111551903091212517436391455950555945770202768508956931713681158149417867095227539800274791127405794935470945349226862254463882033527888445630472037197662704046312315911004944659381306912283999547671446996546679773977513624032846193177775008883371763251144929930939589965416234484856732483264919208026748337645259331476095196595653409126601622246044784850051635943582097433567197234048608655836873696448654757960651398823002600801039587606228780115751594943686471650883967908881269771201795952987888313745199557945605842280748422184709822768171560260331408199833786284175335292448679268827137109809541927142429355863665712315415858534296548529084046186520303993894321757484283404424515008632130359190744666113963374045526460202602169210486566150503806127839614610986041498976593985029219122971954629281565988295163310981774442575535458429905532794080398943495522059489081214539182682844223540242791797706718647348785596205937608096275036253691097183885456279330674076850416050088843043076954271507765508888846476210577258913056506425908505570270570813600595904368301315692521509222260829775308916436523019721536503316546431243750728272299793356963083755677406606099804468733284785610692562270696899366084562446005041474463870587978795455466724511997450477343162709876323776961517701638250481916965516430308190658089916048645200966677783238093034748411464634598398434448676799122523159554093893191780131027139856366781658840378352841376213246869050014725741295270540719617713675519036710747104820068912182114321517709445526602108285530092303379129638258529033403310767088851016501890315147950102569091298134336400176077361881228541485762930289586301259757617350640070865448515440312030780371450159964468443927991717089234610726074023046804965464474633158377182219817362577416907326716380654355498747182367171910707753640699314218485576378003010140811553931024707100525650543929141348427802999910801005824388043123304956000019955140714269080944715846225345243202679975430809069564347404218507349780829683516665376891884236145531148072583255750122282991181395001574506995702924878250670415650242928322052213214893446087039585568532991767385119839226634352237644962536933132899577248855064458834272869079037725709548276159346668769001795984374081715211343886006027660758642951311108559968687090067361027849472621175572337815261514018760560663825047726555780432076594589342387664749789907783585871853540788149730079761782849564833229130873922536833630013968438564003941988572774667077618673710478193040266766848419878978728250373179547136031799399321010934738457895300858115693754529070658018383440100552856891547528519268155549196862896879420160061713683815160901169859061159656113052904836040006268754295229270913724722218343988050541855536045488552827109072896648971296637508929012297992908941490496975646845611692781965525004135231896956464117005147571474341842396716594352698915511739659764033113118526832852026195846242943799725903301419707004081573762104492461717429218484172623800875102061062658740957903304796815163747068205062354602368814630577223847222241451995928541306902825277801365858248445342531501375121465833659128189859297087398692809126578587041229533403416114504592634282377439293861539949638820430129454993001396854439983697574698724849962838918083358621326235013666919412941126164826498777230126787024844456835694349663815552627250710957669416131645721267603191029836771286621548415476973546014996955121508069398008339140300985245093904147157001886993259179461090090718903369282381168520293448884608390690297595418282991308182867757545316819973115902802976027810675135978757561241818139446795840416841333103391473456390953419383650918306198840950125068384535122867948256196381500702555649776056729924682884224154708945186347794956500939468705941589134912763243705719921866330808916783754532354146827775638650444129812138162524621984059350064525094788558736473203942172636114399884084280493495863159202673134564541201608936453363962460100921723545362121753886816885729131970433006322270505286893935468139829548791948131731739018151527886626754283783103727340976994390597523501579209450923564242259627857126376864759017814577906530321637688137266476658734457635751181587423812830046785469401852714396877149995240489371575983312744698672413939903275753863890720202941945281079774764170317858519732872719986926607679815608086105654218939587726825756486831401767019435164760223651054021202281921359700657694547392092454035871243293542212600811509680590154584724688076529901563498749977629269201827351743652984691933946981408391973986372972680659751439340313664616958236204504523585090733845956490646456534351936635586724053721734185060701810996378033496396558456677037347948606473059165960092075165533220926772357441314626957036673815664412147458814879893334915712752493294986281867622515584641406531795199060091882254793908662464598180777755324256512244596408616839777610232765510571119327828287944563900728454754908873746453559176620139316927829217765479048392926035305538711785129012413704723899775293917133791123215351079231148697016460960824679460685744692567449093347870982163362383273995025150544618797375237896372970312149308483213969807121774763663147091765328746403525318507052926667194300114002238885152564594920189743314192448359671539847548301013547233544406690732763740011049024308309187782761356302940312826848968124823458034507264185403236928402401686928466682655972631932660055407317065523757799126876833670143026363506935627966750398432960694339379141346089619880360242832208693784978911150481516000200815129248947325445364879242161375028937197433737815360980199330832214436807116998999830723946488510839925194245422047505005271619021478696607072194921134445072787410619183086300418236943987829858438234811594886078889389758167693139758665125600163896116012267974548440724318068130703908799674052086288118843421341855880766575563061839605073181667310504591705682910549158022285583219951000208484708252893302375710641154921157055900197550783025324997528934033025732503935620780262395236421655262858642129770066959861255573689506750901775051780244962068743221880509783914398012327469723312395386715515640436384122130365783456986165737137591454850621307973555118797697646416087912963030146323938494943422436737021536848543255807608382978246811473293048893582564789992193434167014958875911996732853851168871597608278935228109808273930970746160029000459547712474087792238653329869566787781384475698411185542157381977661369007661630476851264442281297498054833797833047014346582108359348450177309021354593067224742587938434490194997629691444965175713279220980425095501310158540235709993612670857015244800642015767874530495448509635950773710494719193676910503160939206116886440714395466670838559181218047099214439491665299236115423254693405931525097827125181729758432113203681074198103702873394446748519183405252318271436653228416284772428662452240878275036782222527637156880410173697995686537282740475029331503205565389781361884541698549018341796710640169644565252592445123279116793822308052373798600486407335758807820376048838100681461101314627069063950405484653794919732891368496723724212675639289962104692616850222527846580302024647561979766138230231898540191692070873055496200948518284435622179984806979333637181814497384110761494009028668933064770172405774837670275358295925153097107431131904425566973035332910702765722966490056339510134288451605082793814747919388991959848738236340830527045676866770175322618049273408601528308345514936304713906202184475894297346931881977872235645494176852797907054081271326574549175329403944132597530427758951797959241766790102047284834851149205752330975551171506968273684256306613262973121450724916216566047629683572964447494447594182350176586982893310971236010812891447642439685789121592608223025951234684050946673327464959462636541673872501343708602434464585104380511157100165324440068877682074763165167902463764145986247316825412420243668111364387846831781485197353557194685561138166407314436772912479718603035258943617865225010817964700179282612694347571945381302521654811508096436883627296977278422323836363596542844274731544230748295448217274197738762490372621249210610200507004553421916638066241449534877652378894025534052177377541140714916273967404776210456762163161052399912464282228310243647588053546036019607222012632481827415946550142723806546034438765401685574987714284138131704666003119074213825647492918886287800130051962874754661147889997251616349769463633901073721530566278637706694703681451567320568192366834285392618473300724660653129972161155957242401849259891383192985986668780404125448451742936044949175184834117425647496324143543457014419341706385518819425484876626316098237563466680989965744526797810067993740960301733631974993521951596677512835599453791716268510517398012848901251867756521177245426998593713589952753629536001564759719085554157144670027019937957493465573556707279429554270016283191752456054060792202843863809017825270147885334567103811514631092638178184415812308779729161887859449725610627330472036913280569240472672854258870372435153077275936231980162545725902210540063560020038482051103041271891249496490798969005651768697943764217243196176598700782967848645540152722149981849578612331919347621175572673624526528321260000882035718734052817421968007470158798027986400979070555892248433006073310899330055444095936731840268765677172287679121014580110062354725891830263246481989683590791669007495912186647653318853114911284032786705264089019602313930199280111974663944514291287218519256249317619752706588827985108162141366743624003866989196600900835432274917798594551438498027514060610039476248881007607105396311192364057019910345429325756560998916622545540092057251292967966489808963673847861142033385204278938995448851253626418650760534998067781732788884740211124930308799996356076777785215427271333918567499792498210347680740798715786306382741297238216916948069376269520633313715483779128453496094987812402224695686020358020968753581670485013604710549565287264271643682648963163025224012031147262967413957243859601807486671375035509911032426714224983591918148175692085724292730307177805663998794418212806076768417205655470519604011088182447281346477880394925832992239216356639473260659389456383796887943447528188965768258806189092490994721025054999971472855472240236936812628306958175369594154828415377520420909447150803051189166597131320512213511451972986248488582405504720684851606441146671658555751372728534753472074480255644924935118016997273391484465360871679516439442256845433737859567148183507462059060145828432596434006786896909384844773040086320746878924436669626682869096030927235561469753201292758891921013944862913917560666372832360881405556290649059864586397232070242357250822764324029844944208346383163735351191817712478835082347823982181677314184123696836011151269415963622774047998059954920804804179729137577285461194465231809668662476263668999579400481388771044959192026316560789425198258156171773930312463970860274944249743019614357931064711799072330959884102355569688549646742465660301966631945742631595711379162235252665491431278165230953770285060901892253358697050705946161647079855402863250275299325361788205626278209487626247777303710030068948087715317346077679805640001986587415459326416680550976853535201676781717133634676229355662501081531407028022085155790070286250218834540431973873478921521254894135789353958411254642310724074948059313218762730297635274417162732200859790266239353023625826771768688956602465050465554742584830242248741301890015809376265859316882161438785996987762767585063467852719087120972477769770602090065492510599023315516491250845257416385442130762514222867472472832462251964316090133377246984301251711787256640208239060592818999672928372194359584015774615919806088407440706155625171674412713910275087227373355376238132414254438411503526706186370781486082971695834622711638773091265847690844784781736432308415681596048162076809634543098303982219712310715464955626588454590504670853111807664558195334827745300391877084333347986564278575570508069758849560131184166795778925807807142349267608243173594726625180515926005572611989316581247386315120789500942400519328313259451024850260609890247038143658595023714053044779772254448939507112932910697495773173739617409910202971577740467883245058407417187352340197080512075541630384911673960298728557642979075688054873292042736206321478398184202744088266068431598909793075636667240688639922952788174211329800005352133088880504526444466255537498059783261894879499707329433414746030633565871471360856078292726083631769158224893145083319537587008246236420033510847552881873373707955832736806279383726110195051026289259812655981493867436599481134289320960984183038508726776121417717922969410274885264902484899408173177811833507016154134398613182657824347501100965190256574507503723639942437659482720934660959164676031658770316909990336950308336884352009082635743335348999671093793693203521549319882851524563291908565034323841872768752240473692056833748220678303101539660081442739353779412092419523178606140884792094545255566730614746478017660125139655326284984633747236778347903245818023222807895821047502166378840955439741250896410847641879419876531664543119505152192694686446924361595084973139962531365679696795304188801509218844320334684955768568554863214509202944681369708231151948527007085463199754456968276805092158736035391424781736969638660375947912936386300001104745162497055098499331171926596865815295721955426659739644760699508317292295500632652210165005079161154207898419019088862721588835491570639018821079574728883876929634070240698004391755197185423070755644657017698671462906563894122025052510117024444646379743838442898102692915719816470561132881257905216341894811445584402999960842315348351868098425400658948044448016148219939535343701912363441588789718130317701803741455931198594041577898942832202839730440657180140446543665378308547491697615695435523011893900789530691668363817169062659519738268026199956650825162125817189804785703839228944318695830713556446785359639249647127310342440069283264601473442267049493840833399026144153963375181366916338528779024661731725519049031751709300007453053137270393309646173167924516959508366310140058845541191984088045587602845033179797532721772376630142580088463871753273568140943197958398187721143056910121632766058926240815317252048293662126805406695474631930253662808525966890740250708538330629883536617215429391113522142398307755546142463125232866210428950361630493846957923278674748466598229239308917570970027759712214716123832224002840530519189139994695665538225729713102629663653954169973754698406478665988274761115259046318972643924211886087123547641837291695118152921101492302813653171415437255350211625678672915421236523192860516217778994829659792670959062525514587898826977360410695551788474880111166706017121876184711359372765963679807712429438263305800140046060860279784821128800565465498969053209150151214966041318694016969469228908757683689281455783014200067943720823708385696612459796443450735520941374376770535753379840635680308992377809757773573858724516782716166843171859680521605272507060884307837656843007382067932198711790196331157654581636908106808192071130085080445166895965965183003239389806011791634752256702372042799852282174909404404584239047582989240403603237044356686326729817484261201824137622133237646444392306348462476327102108602221840450180049669270055532832703257571217052337094664064806440568380017565706481104531943011724555184866436915002163098657198323696816696769457265673789151943214007366115636332807067647401265948459435642142983680328676655887532450083330691981974915504109882801615808999133350509539743363892766465952206556260562076574549076372332876909216870071056707971470652870705559628739344620097913379707686328483853928085810320587861261561846180810537294782820203705191455289203774731390135098856875076594227196251837686374529005683030857949511898688432481534264332964395161464026429049619311406091295922514495128593592868149263929852234153350386501815647462573970368179645466392835416140645190115862969870084420928040613662341564358541608144806173214046928456571988717280256946826276960233444663136698834459269685164488646649523887736474309964306211268957032671235491833857121389908719412212879739598802394771585220047305789131375055295659002863536071088276106559715402675565475446445330834792834461249709801275189554683793990674542453488722158499522267418215486849936520786052789379181997444419599705587161981890695143454474904631339495522937407896617258909595672208379777981245663019906332023891378850026411555050593575752681142702087741877236333030965432004257006337807132883039410071876590967948413711084759926604351544904909113501265061274548545613148276499909392889696424364992808844386221761628455870865455070124643964182357413213291942858178981435305705308393301536493164436378584419596398073118558583034576612868669118981960916345204352678740857541043666332856061600847331702737525610528116881265214366704961661138657538877505611971654705442130028076647356385962034241728958139504528979905272518990839841134668518581928302381079140552750937682169603831633713891950984810798554195664715770615544930212532049282897397162148575977267203798596793122309467304672907776022771287368427623657791701618337342765555269860791387537440904779208954017345492693966282995035566463387688895362345017851774917161545541662846934208421689470181163165128337317655183617083739187071286853204525967909807731348043225566169478899043621823413880570661841959506723330748762637083653951778499231964745881824912575713052501246912025374395863719103827908232983536264585695042690353660077398243383632714304564689484347567724570135515672830551605717368024150417338186083063563844118022918765449374953339800160925720028455458561310720600614269091165026102740084269179233468996230392822914464343489723969628754981600560844788491683723508717302965856941587592390270762806767654769547557043316746710979578002355129467640611639078547050062389004118722080981138622533994493534023303773570696991599951915037685845534384412348430355641057652560439386810605379024090847058574204632731007361886087105281058837454510621585888447952299588370188035513493640387621950708384375088999881319164349108559609865715504847188604577150339365343390632127052465446388608056419489328096285984485022341539959354298651609789540719358849638804792216498483230258228696232461576038112236356202434990617445817967726657465625861677672039795151093632702065820230567523148173569307540927711524150030045881486784906293156593315401247308701722394676945075551775292271673327272347023657173263060501653048304220599780008766617959606411429672102708626444500522288262116143613885950017980862639004575205210624377258982369383807505419525755781737936914035886482618036072434933133229920767515649425558768150749082958207723062963090109755330928339548700243034551730670452037678702441464172684087789827865068077273479303902489435798668855611669584404962077191176828317552234423775037014203840091067717196262901078860004676397708501633745861422491249353450814820179248129833811436006148974421851556397587284196540550865705528965352167995043374078234397442256245734059406235092471314071681004783463405251854174913153833479675494501656228344916292667778218199743267282809981180278773186856892035753820824708635733430845636238187426275133752356121982767853250877280269810651925793021289633209396095397386469933384534646705060950321116683686275272216163511625465389751797012102722168489780906377817464467814174938626232745730212914973664480174230860079213918707692381472391124924614692661011977509834789704558970031952098073232891396346657273513708053357391510841090212472745637828522842918312171113715009074466246057428921441391567353510994709627446832606653372459856198357150270821554955094930198697117955421538580841858258309161862880139505185619008697871668777354903564103687608015284428859578486339673700076860817210051392044656903838113265453930346280663560056438240924523922262210902669568034806877227430980924187171651755173753806178196946668757155191859015220588088931346279923766900598796440548489802076677472196972623548888768613534261836488241172273405049669634357487064303273944093651647958042172670142474834597479463022409310891984149187031559806078157743461138506507948809178772589811217800496809064135232749184516864052053135968681240441172310508020717762422757601492385524496834517668502626575759518543982592862658598775386181792223282769667938686258932214369368753254992962029730652745612070413233017362058583583720063037755974157557302845914988624570107724366660121839934144764067056853452000193105311267464296498077031547582914559650706615188791182799560180273534877575052566230170883693137366988766030911155799794786718671089183888827543232381237458792028654443599150503584386494302850915258575332505394943210871539170724863033982776904517664955476485532665497336583910768941118631280618065972252166749954595000923214927098589687558287619646511018681272515664074064849945863051958059778429205799543894000028001926708475991859205973083276915252618531889180886099827669856329520779573279971621434018421221259358757029073636068664982108215756472289155018296440757524503538255963438328575899753206283169471624501731347566771375971378702358992916287908035950837760950201412123148168211396406981486506092048736171337142037416246493099654281875608085663174262302622805117780614636857709597114740454174454501208337244513942143575120352883746377416004699477211020297988246831963247349876788449310172500868119174853772880568229812657190686956739250600091266326409057322475214976009870614613880897513947049229356246581900897495595208082660208182555758398707448531240462738990148560545967603588838966032714651392703547435599654382120342046524353070562864179458023823085441004701276563266717742654246263494896921728024910157214311567210098003569792182759098211876241392333852581180711241457307082560270140063037285918139227127630904810298669610143827148327775532554060153151413468150968716331596852424612152860543700514208660779397443546373931748659579247575285624212408429888177469769394049869631767038037087005356903792857664696781601523801590896532360757269846811749850168564983912927682107986274597430662747625784145553331265892200822269836453346218850532118651260974248869382740164988171582556583539409681572555551178881064539821366562743450291013598362522191083924426156245624132955390883285309963139864887196967298116418157882152842717837185487467478769233509155596181323337152360240116675309956035179236363852088992230130333991515666628201117192887519242897654166202518339297840562148023636701642464956760660554387004576038740790411657186264508853592824789980371209917883396971696095075337232369046399713007145158586984767928653080633511491929915949221367252590218063520199754574647286879002534127925468912432434921049698374898219139579184862151226150626042661846994914181700552354879433974377754450220685894687558966261638922270074120182103409968198432256097653465082338877856314801765382885842848820684936704655349604587781535422808560785736604526742727329627895333446515569940747924179026319945537875530487911179988975227858572491429644193198454701482086616348546079088490256645306782364492471007316768966512581548341750345270214934005152191355988409866512648877219089473493027247635773935804849783411345247764857212974718545159130971746385043743194715536241746382943476026324591726800193928907904205795005086236622642649560696206770850507727885272768549704504586592993676650761840130824781825575781351689187246572590083296164183872185554849675376626316704581791635260540477681116009556281842672763667807223208056430453698165769860189652768188929085747670144589781285642990351453736822746880132539798242060729396722232355807617182901204279819475039836131486036886388557889516975826291309090877578270467483507452537951840199116724883525011209894479193716133146716440689923874947404605619807362490282611316452608580461821004684472366156380023255407981413542976397069451606270095408743283826584531104481488393377783832489544036210136052695446105349718959117608205759299163177571446618799482063827746202213392221404573615966540853379174838566303786700238176937167291141607269641615184549573565326222378221507961512851879616144759248862538419022373189787800162392564299478501648462706207418497015737114609442858954042667090243931274743877863898039275457098134006601578922932555008810439115828498763943676425162711196442709764942613064950732362967261789868885220575428852284265132706115944622073951457643086203252349425325106511436547844504529059383768988692832991114891079669616441751654174116922549889582715746974618837856319620117771042580808387280756101865318976604540668275253092791031665278535804280958009900771429893174459832505077027420358178701127086548364799326619869137577632287377775601780339530992090194751263690363362289213401219764912723789435269972358584706213553155008099234873808841868642608628339710418997434019353267394970821300665036147384002385342912950270409874644391027961354486610379052080632695401665121248493948685279880639738965524709208185905417884621110432351920701309419605860953167353404140708156085869485140816620755419833650430896646790965806720873368401858000980703819243525580784043290356990400162683154106443621157341295935072614403244533764186178104257525801678779190090852986858630255683736278888342152225810744791604351988602490181912864474631480642798164130780186325269015691821823124914666281636967908162412995519446282730883965616113279533237900239130252728954404360893470568500824115960419550252507654072476650515102363771422993620440931628611598154892494938464728581386590535847814108674298513566658907607336096663891503374114230975976612412811270918458808271829683012154321663311445910497631211956088542556533451431692591459059413116656213015955807873952601910852850268405615552075651499642247577203051793288667296698182276133734978133595001801129905688278238398846190294722273311711309933379679431234372588595587123883533919374732576487336944227205796093638435975983237615673444256888638254585678453442414453538387845370898884062766731255253735030968387467143553336796740437307207719346869936981545619398564804266783206282092510937107940204980941461181835752663422577645263058563137723806588034092335855969595219929084327272007825212351937764288086799179395120808510255911862897380219536175780496390505347244925667487962863309716238867674924450222406431318884235068485011647076705860102915640131346503366904215098012586988274612632417182097625971889569837694992698870199181322929265357104747224781129762236317069473119487108101686168444453306125341496347580654685938628146712194083941599160028319960408702887165222156357293456242416238115871561094486551506148857534914644682423216536225313509452942102274703311158082179443636199110319433163786744625374616801195580259187927820042867171342810584640151624185180197642507759858574351835343396498878478773050783826440402642722181057399421085004934963526496025514111489240680005622631269625874998431329133774342147136881914270664504695943612192298375576746572968277250236644854583556538610798795189703544803750759416711633735109821096378456248288306413700303569905220405549865878695057777233100357337126451031152456149621179313943232568966514568541315411290779287667026281882592503086105881842354294312659593252626818598007765231408658302310986088136641123796339160559705103285997385528813432817507048081566398137366363676339610286385788011925844717232165845485829352723015431237973366272330325550399182638281980446595580888008538296745161976016377779177109592061050081528766843738541227886301016021860255136793722086429342416716706695901944142977142475246412245624627745400945137798112172858158697831128962463129513296893268611391512476061352936748877936590943386643527506704064073828133071195070773863466801425137025561033844165135426252409315499239806092746597591766889095998862803858238771956030227744270726123695036750998096059078223558008621302396443220726007359462296050850109794370296153132732671196334270817780888435449458311783027953024584594371623878733586983619495117004889609070949507057523874324013325395240612584492452314386162280740376713044422854028664539539318247151727840352502577977472766725158261250924800545636424424227026368610935212997693875127499585106979416144851545815052455121492238777830017108395736412264847378369067076235821586622311429508144974743597838822291422622579616515184025586133930340628822836508459947341865253314501289133334004621093090560858888196989581798863686013839482098386348162038511038197633333718783646482555957481964963121888818371493988018334760906364402313537788214091618497304107369934018976506080446153252700213191447975970401847481946945882634620417958645999861063350792183392763612156129896439328165571165442378733157870104190833733608975451343387744165002864045925960143091416660009132268111315736962747125491969237835249966278790118146455364806669781907657260125684648288130005100926974942845338017303137770115932079478102372392220701732502378936607767958257472529797873019742002250590349390588927846780360447406857663649469311600671276274810922923782557667067462096228653206086453890461805393560637925757517191919963687748590437461240543443997451848354130620032336455956510765430970131955800475689827476407178977009571059948000815373174602183283272564458535939321450699692425384790714780290560475276020285609324766783259490959094029356757031268145776797957614227320893688534550582357622325265736342360822784502833650936089298593518253708407682185995603548497241116219917030374976891888896563091578938373068491189846453387788009697582934135340841414649045158266586676621165807924038075232850912774717236374206031341238841916095805759505046260389331536408376148650511444982471105150716685815668808448926052527643477545925369954659305004422173422215069764772746503718906558412641844192247832848524301600965996526693395537934159042358463325196945794496282448628803055096398557390148746911795651042503515174587709745526147394462271030003042032029793945116996482098444714470307346451370255406551672460198946221506558798241695861800391328501048064382112274394476178292696287232614451228510870345862630908836816272133284420226763205857871119362320027259028571979898778115488293492858377527437166752278007528236466842026657145762009486815735427292056787765025072645160966341305555604359594922566834846196177120966380595234868984236371715629927194165135074029883552608773945498632102222544580806332981986573208911309007724505381313549078254827611074673721448360282767623139255108880931379745456366985900749767277407755952319020786203679844587672786192148486528340881684196900623308492260123248850282711371405267360343127465721148643503720652135146954812419367889660264244559841683982640951901115726687435125325083633711289582691374420307265658113875108610771519167978263671360523810900678690739316593752018581113047947582952263365143765659225576915593115646756025421756221440344104532947953559276485169613864137126796667447837529905520125920206945420123438485194653888281200099705251513425383490954770458764642701661303646068656425458988678033535390708205383257616463636878693565052901964717142883412130017777219769828417084377855636426715817652064159707997905160610863019156205515177293266420946299111572518977565126714157423787907972983975292628807559775260057359573706968028836596446821827576715343640486578755502024069571997933370087448270268089276237111763697769791283103725389170991258350611212649962535657097527838859848063562050360950033456040352336376572665229232266550667984423997344828498919271220035746649149663672683054322914426843559145313806088911608532172766781739316505559580061110433170018419397409008595767424435581892130397633710977181325162604932962600126869236594231286852717200181341061327768141216238765591198583304381914348654563717085338202214048429385992642448325364900361893727881782878660621554927036371050876616942629697257949073158290514916769899474937687755651197195367641598612018856767075052143635979171423814082739704811710794396965790728627088477271539215616698671199344484120920595050136765214884035603633891620047085379172795136660851725618696702644550471314876919138452099489068693250770263600754983722958960286960143372607203574759691251282489956624501138795641008198547544044660654206256647421682866563776304399609122583926405269385889908728192000314679588046542543941138716209908544386200793084605013309582037459152555821420522177329942364823920456687380422635893519655635846358995904511476976787979026097010140956352029316646440831731822667031364285239483391284972075715127809413999597936047763574995646148450875832952686692370074311174088675467233181236081873657976653036242808807254485483452235064970891796844179399343991932243912767560598972005170706487619663460325595608480562512432798995900605955572759947948775008707369938218984945045051415990421445026662710316313814721272061768929864407625253624350349264682117909488546803685899923279973377614712088788670212567514131992888342442678188113821113128749916919964928954012527971371186327382098861545471193706725404454315180896492977961899302406173125451158728359346858506067691216855290188645132369508974141583860087162909323423625434485355280086268720279877018888619040676665458862064372703243005214317298894705907146134240832114384898569651435185321756755041048155231031678392080136067117161958890634951675535006675632704887130909172978789378845372257869947783003874824359517310839354333357401717467114569990383701061864588112178016582935228920983583818807535008535185688961557603762365502648047409112127674805004356446582223235976017291745125035799770148176462917904611230426793217079541728259201268126694438349518858201391117890235798960533846503767683503190824770729424985073788084188492503194924700979590086606500552881488255839731850908736563597522445184900206485139533794698496665173710134279532926592254604726346141764743337002726646609470542785056200572730022948648187878174352741556055597363347102922595700956430015029794149293729668021350928549090943246750887204324796097934409064908470486142873202728946584665971903040373504043563939860106910583944238685430957587049112114910994947491121362865085959871755104914701408174821400700979418390526886760561127641324086957773910310137003776575386388495735766720289929271764887723628668203220582023358908661441683071965994818008548954626250666149637956629945122488104634336987239395551192043590641374942912955569908618175957699993262257569510600384603488046201238558785333323051946713503979558827260105906459986888394291177376484213427634090868866644007392096237789702256946045720786061700104650562358465407196944413338428861719139964292626503826077278189432882007647819753168796193426073067323573011298226604949081505288725804442332234832393112510674246238723381323892698471616457580872195035370677495245132899577199488937627617764521122838017840529673943317631214870049987005773152896675965653931498290417065633818447320411265995104525580852826243489503717846043876745025512836689512462003452224726888847992851756958442509002776513976786603492083339794946738143746578063384067101462213956726950157060305138909593880850951439776183436038509132648052948935872318294392875064510569394556645692170930260260251737050983732541453627582496682160777329884622194736025982926746471978569793492966956073042793178941518647803734603555013423414343710224508324636140658274391946911942143820263637036902556828708305635562164337553071904813784788970489972779481173397708884506752961855657248942874007154002128239687309032205916260348130238770870563217559140111279508868868069686138778530995730254367510152211195138936265711304592252724115177617416941213232819316596168576987447689980872374237303894120387831643938102003085469271370250851078287698821154239974630903510923684705559548578570319621881073592923772483721132773164414766263838747030147992551520073162329423930773153897025757775354300598114440307629892483998167526283266746037679312036998575461199856967131193604756332010703663191374739604323760514454323420876491397238996151226869186370941477373280750928502431810292699687822869026318130080548247116237587429002037176582730094771242483253692446113788269500357059806959891922143656483542956216593199533580178678061234098638564240399361378189038791691138119317633808454459498432626589364881331140069470548854845987454986051933222400811396884915412731518989147868008151008981747920303358268356062395201502814082116502805992913677124176624302737499123922934952522091924047869826611251577823353918158000695937025761146891318736831007936394843131791991427452815588282952524303515076679732056836466712541273530477340050992221535230916912948452994595712117250371020088450479507121648879598649349463119834608744987217813665696933781520855768768196870030099774333554493369244651388448533666696034849806391555002057370775626636268480814994496072305610000371424530211438187469779009393579663971190630184762169355967734840488277834109659870929824887406011275085286397321221566873689598586780864344316568465661252740220399627144955727098566668449170763695232873312177376922073829456258740673590134631226841399031983004446101106618954327124158863332692601507187967804523498412669954077793796534166398651417725181438073913300221419098784144123750806494356395049931777399454429150747494012823052364019067670179678621462885536985285259904745098031179462342492157173079119763059746449693931888056635630251026097561730681837186863581476124911565098753286168882014127505929174804626561956434302351900924683642903913228293057736830357966842885664641533864701228502976474687299263635886060865685605718624150044078288064017056750667807312486777607540911280433403862927896649758693227220733989144691380021705012104355014120893413544643386426602691338126293965877849293804834445474795131343639673603385912445955230825562959380859481689738027629388461112618304682129133215008947678411272606896653294708591586305329032862907247779786502948630934380955301147408616211709261599066042442952834362781105352113361616488399255920142473599149714794230272425622144042270378568781652877352141140918011990874416268311322304793100095884454361831537980913048809045792370978904742140769209581522419260326640751676544320392377844385428909803829214958411377906676092150259940856718301962361018241943702561600394496331284106173790589488517583649140533717996083406973554945358612505524591843958601549138755084160940699870396230624475471760232323223541107034171772148305011059750790303872379752133309524537767418894590151558895057078445691922371204852953679321737318446687621225512391988171894922031253011275619532601071024386440916400137437291589903454717307627972243518328630697295983322965998368619753497742150946092120769589589207841860332128955675873035131025923603291482389058230647444472933995775474570001526722859854835004050407266461240943134414658329209919140196227550700787043655958476876060234719025457241114297948151931396730142706071941653012471366427214015446666791385534581865829112920191949091435838235146949900930990438549926953635644907148561228461448239862376938113618702773584602965025598430549515055937071839987105440706463919499100289188695684015331823162449021599489236385675949986195050796612421881470554057311599054050343873732930526674649615828317592865341407786234301715001317514358951323955492666233584001225270830102166500668519125644729579346069560625588360090675675110383941367638954559406254819755498072139711193357040308682304481932835898179479694703956865847610413946332810408283940188033434218568115697961746881350688991773480963401544362427858136911316115409281772270015366669245649740888913816209271040582037206985824627758836772225239452907623704133922796709991466132654220608342190876484509944630419991452884287692194390534595108809191155139815719437679572978092643382848908813298533857128236081485059093878260919215784518837110302689210716071453511083330339366260150441331101679201407440943661009908340559100776739061010630642978105747862131425193121368691023080949247742391478432802166033717348390428570382476711108843504154584432019971439787954878822100082620752680706518045381237350140144228328092849665949598449227157607252636453966802884816056363308112601041610951682532979963575122586157481543616446571472321730202710624423064387626102961596369066318593818502911072202940236060481592900650696038396727778881791298792416974361760691921913851750776891238954441696007879767421318862939386424696766276644317948513065771832762000404269840104670745868557659630405100702853310372553275413658610495438115397268740468527813160608203080185369148288180814236316727946577803242066463676212717794266437124871699744195426326540748170155178746081955943970353569478119413663138873260313380401860879504416430300585493594512733014408075260085418501396034478650470111007624813253332081165810317568256361136423526525061476395305593234811664181394134134876344737171077315533866252208124090616343872767057968088183313235413373029429019722638216305298564452087815761421585035536917333989535977170852910646530484518799162255321160825877913393153795947565892239208409926094995800408397786982748416975066116644077000693112650533209235437579913935040502312393801167944272518314967855975981902128247874276813465245248394715995443762876267390502690478861931915690451254028942140217163029476991996434211509919269227044905216583685717894569386552812592168143973752896955908883525045413288908221542522828976260945824857613873735065093696363158864453983409306083156319517346596090506377176903203615549138314784741429869666648223104017416156391782597232861413004641059278730670191978115774430952313422247715782760845507112857139942199362710211572434289278874194452307611700404770968166698012068042020429051270907928030644913966464551563311136876803444694384491655283790501425803660081874966125049304355537428462326999255101978768348590227504140736182403943830453035084818651130439095087920064524415840930544347531270811484515900762742592460538212861198725146042229256883582551961246569358053470618971443213975574823070366839653816424555929908297280298973333578830083019707159135677003893927005174328459081654773244854671372471470281173295722241414258242814576124137049052231040775301682418109515264072147124618573506240198141908364764654280170828717902002772011607955927067020096622390426934297838560493662969320052499011136537160049543666173048923830647269134981492487605793021737028497377198013445078245252512844033263218599509891284249840692360646861742061148792600943324136641822566697573977159218255197138700708106114730842593516485644553252489293816534548406116378053978307490852233707274704203373329030493048418561748931550717651001057364022824195777433987575054247597601212869912268965715249843035277802498444338113201477284199974302283042873059594182056081115785932373307913255196977305080802969920764663211440283778452902349130538110053139678232803094169576195722073700112772481601098388429907399560165827648192910357304076475657605564148499197756729764045855959751273397643336697551425493408291320498355186560648911105485092519052084008009130972577949381075127569638715124612325735985652191032987247312808121937289129135786021284268986171597018172095204416209168031202457645975548043598804529378599697194808761124521374754290020162488146954406609884237984931456570746827798763520783867211880770420433703515498993547681002283026033872932510353456532430638712361212167582715808000481386554479350525625481007392296558188726053242815557921768399765951668742162908895339250443332368890523163513561391738573885222833378788567255144395289956931183771331992449098928616452046695419988032753348153453185661261129238163309920160906381913372304312597184713860743832112213228543641040937989691368615215481682593260251900481069047949809474211179651717040276368242682201575432395548254076699969679544837520541951975934507607663283960400060053985811887640016811082312934170412475540943863827008582215069468667913132009965020585469554231641668760573111020457297017966466718516287477451697723583212741638241891455505064540208797461195384216705279283291456589218632941476410267261724218357470955258367510373111275697545110886196660956963360905596399474964315533442557004170224044808215778845251929295771444168903948892590084428173690705963982783537307981585277341888876280612825373501012652312333550208639922875673136944343967876081001397302450015575056134530310710296424340147107288777790742530703212078437196226949549919787984580664792326186908049198837242363696754563491905040792770981248239048845948516166016159926048028851268986762212455865209890293141812783183712601324647788592228685208063317503705240965764916741965664620895739917217356524643180608176698757444741413507071058739184492759153893434992550317326457276144399617454292618120022135615656343682730039701490178595875533545306066126591015309706936260215300930944990235179909158590547890349617927144308022183517524317080391122403167714199748659512118005348082465756081896088739724189208788878507783250448371436766666831943044335488348882326721689625094338378442708151808824158910089602141539109551611510110390887480388661634902863020412627075543934532218868810777523903039758069272840360524055500776523311819468785323711318390723241198942355561334756446127768326550793588266661539305298248134766425429858996103907769040883914475870571413301136756293319879362870679992738502449698401502396235149180999860731802470743612589088825940848277788666209008978176725349481506399406513876551646778015382617165064348162833687234672831305412473626566126670797851462622828905669397329573583656476810563310392204533101657240503175760300488813203299293291546486027286740407723942884020728957076303505914452580869118707675630774127721428364403405220012201464230411623639192899821772453564079718477557029322336788817067044444027517080526286766352722563696786938522996544272405177559933757492500239077809858975175486898057097631180093696638058063105838044795677345830882298554132184264132404874565968886876102229995587750042495313851191812668628709168458826655480851379162353719769562919184330615669725778723478683249811119900102659204779790627039387236727154437548144577143647757874222628635500672363301007615872052370508959475792025139123418592153960068216852962696585493088481176454695055661336420915502358485301331982475924956711855542388342931179871851571786431603414068591344395378877329710623017141909934324187807738693889142059600078010346187493820534753787561143801354578270165558056359407054791113472577666438810230557647131008449078411533896530470457787156956613518921460486789874744107239932883036260758146182994328555222434663261303403764293023427449666903059277367465672426377262108958405997247270520445674230270916575398199149989258476670249831558673674176365813448623181126073640109906107830417896864429282828964885667862147782881179913435791545501355214788400815141026022589469915953413630118867418674553194543610238345861720961436449890440773860514233358719665634749505119798328215217781988051558444494803282943565329680578916007391174188771428050951519596847405492036440821845813972394551452304013614205480509103625259382678569230469282945407039830653276559726193147316071246019588858168485085544694361429706397009327236498891601635745926783296577846013438470543869596662447740933189908511657402572425647628575499375682432108218941243465718374272543191086713804047251832159564001595581909971522123855297879659363359846600352685432721714500378027721942464942432358248937403946139186311359698699357650886240464811596318451944561113907658402677825845947497625254572104594201503709181490112547425469126247294059934449619734339847630303806142812052844698317999845285330949161130662912390891361868265603446607016854610882117555828985624825905462831133758331360300545446331279002238884629265258020577206903314392129928365053504922316463985193262481517897759209288590400918344400716913665715889547297340727836740989810594618263074720501813996679465687758377700495105089663262753640439248612179524121269616366070513112455202711030409038840476491650682045877386967770896510136185406066380611704355160116046267941709139921339616884524093328662692549506288228059605842756329859564558178871266076719234962189640138714550009551329061414326160639832484074666107784433759238985201426087414704790093736508545257474354192771244287927793660125166559247441245047768490365676753650970338757846309321204581551866685257687761328831855436084845887347943636350316492066923806240811865099722093576722615653284321681221067858856906570751204474701691298165327913844445320375721235327158421830018693649889058226195515436070490412049304656404413164228868698907135470687325819050571654516471271526086288346440280553327874180998546627206756830645533404021683882195923052787553863918378429171699114330510298919019376111922492806553074168267845235487125669744469051380711827628534760436818894036598400431745531185837157095041014458491457114784148652685307810811865162005846334748362020402654923690129361799134005370789243319359998933062902935667596958521990318118765769542221754930999401558073656483528510243324256026166179092997797123640992819751319107807319288205062297447925696766511369521331031966085589295018782682738356065091421717643254992266126879417937779658064437419519056898822924293661993415772987688150390858952036067519758223507975047511770916579765782015407384183531296747452336766360228841448880588251630408560353718220141357550355089486441900495511744621527721881723331859086510802366865695469235970987935799222615789103935714846793665506055060149232012246231240921252675048220563056643871528868427742664913366359233857180075391918035829588365885802971836115404894381161612811731284304602041123345091850528564805482773379640161460410206474486484501326092829427473521627184616768582719153494706097802281656205260344684666464157520440961123650171866630163958958829760675341448906990580557952046431176648996727128127767498218656125764549735444007640767309445117599044454362137275738193184076723766733361594558353990261125790103679327446722103675843659378183217807142124503407516963300790829870737036129296793489816728910770502333973251587325431604125353234002527587276351943294293865276332218307351644957296354198716991512190652681687768902627618672782263019393230825884810942884958804747285877114670921329306372407783004085848847316204330456583694975698249332982258281452826187714412292502056969664411451996323323773755840637060769771657253409877747883954835092639238419164256786601565841573331795941530245831842117486412033908859399632571266613025464932896672132992697147543520008336772042693916619075652366219688368044934528521847388008807234188324412498975079325979296551911037201595124275091540668566834445998285495947088406147777172732558379332575823520041700101298273503419882736121215352836651894485048735700967120067779386786982902470296314872901912130471709123384351267093118472952310573455888975872239602554013566276559972969803568487289684199917387815163441376399702833192805657148043627977228534067148587946602384015105082491873077822721720015936416463481383373846857338666089918864131309529486043922834471045958097712933783560536814810415855260921370867118728963266509426633697136882543608204573257985688524263531080614332198331801266624968299393737443099301027645345015998764348125167776353428309826069411143755527259730628221660192597437257313260670476177215788739155937907631836393087449078088044553637406594743184084117538941592391853079319353067808210215504014252969002157820835002093580055376733661182935958070187087906404866966903994252937395236216189287000759260807728440893320843746405902699206978878161870480285442510804652708149321397547148236563423168450499552190075682786317364600010928879119862557714526575270618104115096646999665648642641161197662778805688760344327082922052067774085616280592001915349761163519315269220193648654445750934634542932822593592787136781292233630649925938204614202460447668464066276614543521687586574553489671290302088855765494108856344075454916672344849378706835172511199134003232585285032609286000285625316725575156451159597511209360390227530747569439877847820673129743876505250426853137408762362608702863776132721878230296678316654876871957994673833298910928653018160732302208734525208519905809115833172945086985895727071776278647579194082922554442877035413638442520378057652698408740519461078953840855701425801546401870414572838748538239304246080404899127566422421219297774540129940795339289774506465866892965205231235534825402204321391141595351435566638836643981164445931486427339635353929661946282781889671204261006242086878429232404979512207958260566647330100946039517768163787649231670583953311228403846705918145491903769956085068458005427072886441884715106819920821153765309817326413702294186714284827415854350484018255530704672152450431656548587143550584160300751807700334810542493816470407300580935287555026022806268768544437990641354609664880948519436467467089370632262028837440365421059028293383669016837611881382170224638924852298368930262380893109222640541096097257818075865351127218677579755192685479811960463334665480435901846601586119977333201889488278486306322913698941062954088552315857705186017678648852787071475532505393411993374061755704742842371893933691400194836452642293576579838695738037742380536752348124582386791359227052495264711725256492149895879481020085501712464182125470976246939876035529196306455780825005495368236180790070399685426328445826045694572043385805597019074536895254857438134222579561419588337688969033086505041448564101556241550304267897110846812127630483829565007910335604416518949094568770934660256242628014292632038312382065423558640859085497862336146688429275983086619822798837296717117550440218769016925321572216125381934349358686637810951044196042240472231174106314484287020885386695707346393426690952598437847991818327162867883032200273935215894824801849561198608980198247938735039037079409004717361647146073590536564588445787958146783888544359262884062331827109734863046458885526278764108200962734594786636141404486820122274254830310637775576160007106965284854815145057776600457216823206005593280701921141908394107416027421415140963062456009178359223886050083214220018127823237378191391333703057243999957269234057491007093100822688817669117525180879913130021980380209637340666529457957949918444582946744497499406191315802496371737142449388624154301766766140027180308271489940136816903217579292748126625774468145287861649877390610425738097224820422471706916329828453542967654437133981842102211938218831227400049180101570704347302342997445145272308429010249605899918370888407971418236929978404148569687736498267018083086020798225580814934886802174543622672103414840557187725673907274827471583511565378335437665124921203171931378744856281116077649631744359216409552042046080674616279665644248996847673337903734364621399407422072615992730052943135965878132934033128782232449106031275155466687889557853167611951926607929504983944248293923782958265909912997718328837800612054748443050265955805372593751271971456428579625834145963079633539053934812942347957997919207122821879705923629877092322974838425108726321270779899233273803517322618919556813995103955850791336417625190443437808412033923283805655751775020277520669441119698259216908815761774812671110060979762664294895172015983299108483800401331424010734017874532326813869160220605977385711676691057829208755042087443650956371872329931448928050300724019777384666473353524387510571484673413323753580279721592412839991959802363834675553993757628066679034389895259119094636046793981978502775153519927116117593315219474658462877151395740127032903625701466433679073745752272362916642318641160732666253319315973660421477691437524549398155941045489342592101388252310397413231057239532817616673501678005358504111652796740321280714769312330277137550482191810927629812889121314108036218357420092850690744071853226782797484036905827733918902332326321238151083774972686193464210531348145528986868841599991065958494114865563889306346862306373068555318032053675553765059085198163808726636922953445416358650283899795893879128278366140626139894748456942177134029761176793092620089962572403431293108324105770535262321252887812391565204623898718723771887516168657907523559123614243534932637790204947086136733403206598335937323551530711928145358849799349428596858767746489612884747035882290261937922546222262218154820168452281167750249028018293568514106631159462204677694273835163806721593793268184426649761872935882883065268159169433740243645263764622908894415513211422178117915491142736156346952900014141729821139224107908120939239785695397978906419371864301325210620246153982336915660167863289135005054161628850142900650140875878336925341438265103063223763554607039090327773791954222001420445927365945788374344975223016055599641442012970882291340484548760243738659600491525802005863655169063007214053105006592495311755030467219946208346475937122540147702034932764016358889654742166285613739500626157980400612394239947435067910648361763302333428594772156120215910003482373250244568083464229740349879634236401128259452293869482128325051293230335834368881621409444776824623546506086924825318888615399515244674821405494965469997130852989507974731600850476064404867866191952834935718961433243680955546800015567228468626363721936048618291363157723135713102345854313369387240086853804067804489647766858331015798368387323030162632901608983286557948006263258519597677772028916177335521324640147254647674857438551082353401040927316372072082940611220373697746249232213573486365834089141919424418847552289062944615567847899894010692738581689847456106239262208514910190138071837453311822232595785337590595775342255846172831364970570436452080139840371769660400489146993302752912129283392925683221748742730638414149600558566438006654612306097790553995879329277661655422654037272457876767971405511145722188892587877368285847823358392655362314786137896764214917076973167905353370955441228255388025965463428798923172581617675176819837924519842732365746625237665881230407206753903082644715740014851005113182446729464412243817561159082128229734018494817444634336140763173576796250735396273358295484414091910831286477165001634841311537103167046138790563914522698262278069005635724916193979600833857293404568336103271761035476568356821738395750580056746226574826689875864286931197683364615195974238227881448438246074821202223432285418294267504441796609736958394549260357005227946822215425751531506425849568381254579247428293414149942483363861488456285053201218074522899344990765488269786713871854687628770342398816683712383066946310126424069878076840657355027019461199549943762020019941918818403022641311465188629232382195131207216539671086043350622292138239719939521385353280995369496408039627750571623799466202863446219840650015893156832377964744544565760739062015943631340993918138144459992245132765950628052185873780036138692145128335415277084573984221787200305065654138304544284187198184420894229942760394248923690690750534086833373865775422502692428782467974145937425238658562940615298855791675593873113052656885889589832371928410912516645419288041743205459139559386421101552482379270373532584569059907078382110035762225529916933641754169888370293201314909486600715758413433099916770574155398738707995565049544239449393252236177550415790499053922176835365758854677054330183148367409111995953106892037580094107053513849775587079756560187877617740028193940064449671480735838246036942328336705665816663932190779052846333683563528509357055757959029326522585905213967299336533515516730240669892023256155358905169804730525289811258767503988502191651920123544573924359116369487443217893291721731847598397132512664660709802548192293831144486619053956534489366400821812743799741641054502204593354868464414487778493161082116939977956366862822730597168375983089923792948454066822050058748322000279677834898725533277198143024786370254850413757666289897136790331292662206297564280072979824230853303360296819007885891932920921388989599260416932541203595335808516619531371223273843749376285116461404897889267314040597436306024630231539020036060241351936934289867940545542819942747021141796737070755822384256164339431354172739158412473850427870036369782173589388822698513750583099700526029973546800496144286449872930588315409533789565972213578628299222778038958689870732725354597942673497591079625845966063012488341723881945829872403052301849582396066179544608791861361001079002590849671181762072656640360702783696754159292992237027267329503809745194107194539869423558184014665859787956251176700613287231766718471288020572737754397453953920857242856902785854183291862064357401101421178266520007616421515145833678247311100949691661466683202253707011879043112621276263515163328992982771895633491361307455977054294832601091357557243806862870004592185978838124511126376211763002725459129164521307036786908670780957069488196154453402679902898303861437375756238570161258008923339070214694783547738595804297265746501302615453621396576531903161151760247367024095435547667355762942753826522763558064776827167668405214871941105238503378083124282868758271024201317824185998759272362206179847874739559814294243976821861468007253781889022098459413670231810162736681251310197505250118883181599505894215282543652006619668494123255852838294708766294677260785964474121320669493015798653645963081056828237865824913149677318687151745680083087542841383130779456582535835857165846867876707733630438664131422571492048357510387008629855402815561438197105364742268715899458053734849200211070587409101214820936296717342958917143555881732712236105037974351693368721226673842571189458280444375390592051608178318559539890052599712227050845083634824998572092791479587451575851383271269497234473391187182268224592936414691766502553117972376633522078820298030436354197490378435913497252425419184180924367838795276225244041386757624698749660076793104918321611713977058679593244582519879877707476978419470634481309007755208897660577344739094005304199127466027414281380030002306763498914843070613316430297006921561106602070225747266824628251836316167348968643055657566504756729650989516217592119949808746292694191403239899685473895975232806143357361447695380014184390654691740716598298244052336929595268684685648380080670946608329713944051453076582062532857245480528983007326911983636870044503578315127431719483188883709155424254388637768452507437150863582725574932225790992157913418112031601480586175917896359684017330392240988190322891712220050198338337188319321371218541712659905846723495181926775599189106224497035972441377034006419240015090723551029662641864302259708746935862253238327250063434610271485595074910483795605799882424291311388842019390009194103081230361559248831551503709242791173991172500988005566548812344364687664542884627629971232662336883345733689115968298573447885751766069110852154863097922602097577064638547578459378450827736244089819781718426441648350556900308431823334611819194684164114416437603842706216447187160491944743376227418346743105720563980768169092636302767253323226201955192057064584778809658601715818025927103016126612863500755097159365120930701207985486683816486480414851650102126044672072215516367556293285277641408781045257986627217897640142064797322093733537721120609344661042652790837034110936386190156669420380060572101298044064832691851465975430504514631032351444753105221382651726244758620310297987645154447848946596487369523735869490370290741391972916069306123911571387374770509007096093484982542581025341223858149229802134109890672781586661756191937520497135003435857882010099611931525161806275901721229397715126922277809168566387670309238975367943109815250298178598950831269579633487187726066159257572176451226157527557435411987067233375627249649068721817437153224775218737944289246130131619989953538339141252857758132586413093701801186354389711525085456616803084034731969552900970756403345945024065605642871247432218588097813005072484411456322401411381434928862747074881956887990542071157127066721720871667403476134378548457308226209070377219716158949049429733118017277417113437141234415603580050098472549678493215603437952512643656573875827631503617933733864627552393632849429417144459960522446255686038980442327005198684495324482005764482611132128096304979775334325583500257060748204577261547665987696300750558991380876947794089993257540131891634236417450075772681171894364710426851535148856480377377535261321708284339543910277630512660511272981530174534190724566047542724272903859558099795580154076749828792022756884124526131273530475909411935657259180900872062183309098313361670460442403478927939055811706155003084324979055762962401211711583041667256273419603295473437193417656628101958225161615186548356641266792030196985277831059700278672733266382214762108263007806807835369371133258587095864136473985335902265972717084100812597316804888170865100259424846918160491889092422662386909944790207346388857321759703947744130995947768804475659045931252547252237922585988091432538184580490055269765368608275827761022273527068197700601770422028534917576261926197757928942420502152506672253135377526167034563171068780304907528499286638253774600462931622167777952044697300743603806062663497402544241141315897458522765866595806446421025705490169108686069485118385184598234555183589007300270009951918684096595521686387729756113261490337840668088355111149760439613155810810934971348488132355967558736666143949807630222889582769664512866864795066499360642284362878969829029521569545477768009445035466994944332711802632153906042949645511897777439750010635753302659231625082517643217792678876684175203386649947806710152857502226650121356873797564470514955281115468565768244367597392542912056671075997562164240455759260527396867601599528196203352945440422509660625933571540627208115800042288356756550706675999797275337571722204656180902058926981764212482772243666724640895084748821017865279353998328173754603226277922634932540742812159456723200440904065605976523881154768719258186479454711069473580890900638756525879633379080743685836743214900997841414927746733335720417360455406952427894825551562794016306235899013484251696234649377670815707014930296009135502946748389028378036298538473164691223021602916261841153141578853862296608548560849548261463075827428471910949677444575746369808309025076580962569958731947710556736860818354671195392662238303045991006902041629018359804906087554131375408425952110646296073402992479496727862606381603557747787404371545430415103550025408494278335769711437407249216534767204994638375865563568733192864191818825332719900010478313894856412033231694832948834954843600276143448735221195266418075281994440269345136552218332914318455036572914456302555097351057454200452289652355208599527385210272600316283944361347550592725870032835790426481724241386736299375773267665244960867921914729351774064569692363877598321903524102933460239874108877963109469043182169776483941802593371246547945280666318671897520129375632186800019748104403662900447668794457237135097091123121337553361788681951243172053101468928037636786598439735969326647503061106598893349286070099340728324749739643301672613836556291064953746554615994345343963455380064472187035712472698912739440886914695472203032162315342611455955436738329173669761117903308332588150439561642297672635966722385127715652424887292168286166385066938420022227000837843174038586077126398417136636672125753448836897314446534168187366280764920827329311642475814250273981861443081590253543138072271813530857082685110003261415967362861058377004060543143781238182923462958979250792829158987589395059986396462588118370589380235203651857658913509306251687350479804287217816170615937087856267955639221692773447927487845928547861253720088051802758743199735545147268860414560733693503309523811714318261553757314524006983177019524703878475128785559920136801415491605334277254983973563867442698691376773140628657267405928216242666421741434337992687933070373162607534367817189550759365446194398945533214883903427276973714116018991749578630726699046762390829401225703814707000610477819658923606828992836207277534739744358748161740145572577463146980331298111706957220080174469013395718309599124129144154714556178008331870146212742418446136989718373162159581741029909513510329054788216997089873516712838673658007140471974619665346828019977897611344235431952908543132562492282960702286300496618076812110833956473903102592430086396316392544606089242035157767867961893138657235680869906988161105471196116003726329419116113973713578409734488495262753400863593085017187829234288128197700910872934182692118692237418363961670536837374971022092681531851511776516609851394468791239897919096127042190514759090616716141862376779573663822553123409427475114337613209947977357320745743319652441136422162347606456776700171939239582040363107338694548728759933629889646661479499827484624364537175314138482275420642492539912819767721676780559011676706640673463049991855824009206175049545836364760617162876308461061935255813537780982347120930293790704841078780286042933790697305041389284717176749866727572980099824362295795173565853223526359281632946631715385665831358865580810127308350267994321046165446412826377413386595319433174065272713354482378129712721157526492162119954130868185879101150542508585486374371194115806224475712638999012995880668164138336842142162249921324075426483551295418428380324325675422000314005098909713764705294367479280512767343223889683688186305921185173906565201106197292038821154783277079641002914751550486165602126073357348255777148928480317648080725136883879330763394491446765082461673159256827804304453168362164448476967793546860697524775872089807560035844674421532530479672127593916658232271438295420324154741512092734390269440975433741259204084966097254510058193929143245745162089410590456958539561124669804410150020651264860801097800539779048812375791666787267956819254026756461026074624373148154747745124549169021610276939358291529429001714930966783170976670809094134813775165555402158813900748804363823550445470591673079741139793607416811612602970108635055741514750360958402563855714291106141074182833811619548287218525856736010403124411597005557749035567200249550254795121698997878160528541556052406959076566998498807745728847831711886491471185044948126559446805824715047316424976706975723204960466936066037986561616207128613767431910171361985517563936233645879432509112616082514032919979831686648122224782514841708884216829658006341154517765639071414568644319380130394322333813292963752807988987963682089799158976772588625439736900298605156170777684722125230768313072853190390295925552735746919786239604400494812021893895561268690005107583101955990023598611945259435944804632911227194124617175793970974068964833086144631776164791697521465673936143750855074435753520161530690949301662235968281364542656413365577257263651126812637821569787172513296164308852027094552955837182361067281592135599208004328013639522531088624211416756979492119377664028671150151678405617937209523078432691178208950799001968781479733810488155762595580148888355805732169798939196683508761645668136276476325232635322756580563412076404168207012841349780419082537787496826132551324719377327733931402651142534098753894749650304227497157653328596254285576683332070856747172689585132310192591446858298130065723397240852886840798684323059020587129476511661057048257800868129502681238208338269953198394271045716167929908773330470492269505215664981441485882962057518563717649125383683451397773404575948817784812057010071092351784460769825673143388951027901427606344731076916124501706864946683604975782845144607698488072576141137666335294468370788829454893497292019117246816186145942889382945416569193480614071318925746323258039889476262816139298502265625049689646269931335830289300137281556651703054145672225068950898623151532596361415662055595833493899003443032139679732978180363166824492385217584187543258693479914573059227882553529013382355920312923316782275376544943428696280755931285193878763972218404621084931882492734175432491866255060404415115231333680124329527181646365267793668737985042070751082846120587188669038376059386399688818645400551290504266914779271380077103147976389618189066223985477590003907988750293098923080503218232900203977157767435573748704806725399868194160210860757050026438463860330359220196903260361989397499539041175520407511826655564745426759428734906830953993549630407978561541643326328529153578929028224124512220522161704709745780518017754936635370586769586012254480288639640643840567162895852232496569173411803033342633098807512379960492001121767448341259827646785514935705718979465333624456819431081550668201747404071744733484547300881066140923529139470321729007936533380232345715490416776543796468561859785722901294041769266713371917148658448419139565640122293393961490984411725132533828351189778966780995430274730096605177253954281438288492834670425717304075283421163179751129924293509776572155581031492237543121177323479215271501202761218155537200630225121704076487768437626681518734723581678078292077884195963822011063231322805913999080818759850555984717394212061187663806682745890292676407385044445882954719999729723625468890632818649748544532514969630687554142864699801380183048518541569165415767148854574354312938768333973970251910162935397563961384095156593166071681634117169294208025154345640482303445139971562054506895716706558507751342801387326099955245566994442208542309567781356128373541242827938765581690875615795894886783960477429161440164073615683538197523130704435236604565371089681556453845045215815333021100934382627145809324662965053638068120382591432752463359873653313638018226078136025034732522386613271434132113749644632677241378938045568027807132799498525054909952912513416469995999301483767515392353035122155396057769246591046001525275530928028138400800616374793110063599231093588745568194309959668481140807319624179171005892644335881526385963279883415465682619261151607647443183800522083570823818474454878568139652121363907722955377216589243458636547972369010993988499476450574887654140430746716648200508997515447363737453581504223925894451188469717502352827004946850719770304352624970163108844087498556890906552234970653028663815302174903334193592522775204318882233212321744890826531181397486123038133771045276002455697917696408858385841246369892599878386552135269525704404365227919487051821234632037695344705778965666255776231968312255496779201596309057656615325498801918271945492628013172070499260313906258780033630502228772863885843014889188178133531791099415137074223885726659816424066671645725444600757855763216035251560812858393887798722226770698831949959695118762994220698328533489602673091189223754244778713433496169344442834615654772072958692294484752047590389395606299975890354691833535194826889321326352005830332539675666104323213112191431536480672534294483090395138813565843049716951486484310948279319018616134610320638545271899412606384150999911086216936715747179944171420983174397393892470289361742178995073254416327623981116163159468998038133860603532394409683739873583843094880351542429621928203436404194331404303816502719357994689626181738447338806176532263632572375263265685573021141985538630582973928396874036585611751497676750462144753771854157618904322149615022092127936880092853603021266163124328053507293167709117918030136369957738344609655267911886678822071211775855117908951095709459487146860994015120815635074485675741064238763348578528933264136841530085087721733929608683027814337879650190951642673047025425745956750084958072839694131598729962806571557946688703812933919660114149083842510153440254117007305638576655890009880944725054121492797859868636963804099945150702084583246085272938419619363531068121601072737515039055402164444306870394505249334408996978138102048286098634943774466946447229132322080119011852586564731835535785818477774805706380213155725363796164074235242209974930406237866205894497457211443468133697313964465315955468561782244781330966223589661639707920731152725108306875071792092414657663068999864681173084316895533101401236945021226228132725598288030084913536096979282640806078796639020748894910209124921270602634847735113055298087169462829234748718207790133329504688480642941707720226016339179685619260999071405305064164929913611421043847520615400978580185215675524559516382820291253968672025832573322697173590267679979819155385461045918015734589344396150662802296511488842508886319684914605188351595243537959455826900747745471844041123963608717765488605978732844588134963644836090836521155624564714202841814617035414722002242928280531173173813335035293378142412155420278630123646847182002602913886245941220824771120687483620447345054382368597724835780907029463913880365330103604383150248026990151852842873457741797451785844999884426708148604043734552957244921127078960968780323902505820283015742066311153883134244631758354856282114795482003190717090160949523735498880381478714894764712874404058634513553581223581600831363251968760109486868792866560955222399693245247053400661918343995594944945827642514792600571216862281064826967264130575137762311586042663546593910281960535811167673182192553175692322152923673822803149337039036776423388083277246030918608711378668707536854095978823254160412293585539457116081378778881986522974707611559741075295844896283864650844284436919367229854302075625842377112424591931782512848091895491472579367178762342109684042789463609652964820143724935989241302689472021791002354258588945138432821998452358700079755316826451190745548286339903544056569709399119840938193125372647358774989690319181739593421524002587554045040154815929639664246314809529033946689388353242581377111995441961574626355095733388738659202419522576584245053258252692584144616118223409912258890240649261350366238510837734159912596460567617053844477424489459336263912081870175014856973898223928956012807208791970261892245111335678074313856393792825983840087818692747834556791885330602464456492873437373532019062246443018252250133983671554605853645005329142911381126367773585859863497678346914366325116496102797060921709873903081777822379890977131029857284854137142268186753200876407807501341353147164198653564259880020501354990690304128050601407529042561294081606726397640803090315611247828008237516444552992314784986924894445900117593116194894917769423710640617582875498153952982762455395001878907384601364690731971175028259302805000994155106384295812514471924756639964247027960393064811452861689210836850358851943177689032028198000142918403333676174876091333026190819884873171416610838680584436837903974054410302983235071998157757235469261030959726228857468721887658013093782441723788397264984177036554696561419132899691405463457715370477627506380107708675200235288405675987234796681079132012353864652575196737228496729758725719304776884620406096640209977531181577802978784163320636675748683365119421834835259055364179619834122054887800775133982026342056221364776284123477608631583178648224827145288727747471505858750191182403256228039177337604381503084816613498831987678722713905801644157925754968036262997373206133780049800866874899327662384132544531536605985184646458755710259404268515970061907480337705328134757595259752427034317516210442764289743396651148617481023226272507413445600344706742894430516267764351922879730450755774537835101842989686211581534781974867688621574164844660744339571794549418473818709483551744953037637238330135578484324627555782630484848768378430133491909005579598455635445140762915207535820671541576491913804409992180401813604916786246409843435640398589605836126340115835122228804241399513964822289441049563572945557907587644693155996957604275281305541075661657653086557362748777859760509270040256205489727075614634766929878730194719832162768019752132933189230417000002328133299159429794179148573469450665297871252655718249432528790612777641182773335008232245537886757435409483380518066838670740605545119976716083483810939084300585149750956180978287306294537141609309220836330572671562890944775301799360628977515719881862720909599496521018748649582857776407392777890228615211946053622474506793477081251548163776513653004092668897813981157194855042862284051507732258820036392967706574260334555904927747740057521008530377284044710472792815509967757773491100319332728282763070209780640274653624895288198026264809924259721340037919328847857435889773460038615440228529431510000699578498757105773207436381371587744362846180260518827420723448828028530350840114807745646148579557860431080370266681732227233753012704417244429038367105313863819815069204203487144233367276358459235088985377445106732262561211407641137252452463584609375219991333589229530952310003240104369338196937241583533137132685215341076763009709448035669622467776896837162008827657113198992675024422523581562327681731613202186464474021918564905302916092159775508605286701515059686268754877200295594503191201338616883714110226370651683663469300840563141240276625728697524851884125478183032836853096159629885656393864669495965227414017381467273584982191651109590231499119682233795762801035358070348836904982089287858328983261020057391660817412136271044625263065919422063966718178006732848065474659202844225406688214621325389905835813517015923119351721653130266210274800579013145874329074441787761840066712284045475741327920957216812086201779431360560372892464546238037802492472137358011783696264338426268116559808907592579676076499167278163086712439012426331650653407129450953778349777653245996921716506507619060752006984646641960545643973825853525974333550096205973271444237204985898699562573956749122858223313057355487377427829711333280772434640785635843137877092514787782670900467740372802960599038509067900015364421038853382321716742108430994425989915450445549400563720191082212227728648846559371236231936624392244957305349193717566683325672016534785614216959881206846661180666813870331649144200719328825399517806531827740991298515611913917917184917721212195215475895781263063510911722715654322518978864344844268778096035032213804098560624663172390757049443892122137038937545800518617947923185295796801469009272231097758321570607270649569186774880018806515803573218968600194156205895403467212059094644999680592785009043068085699871202453382782686974374633239867251316060713947909503691950821061507590173237616129434217792313030623260195956863116340937620773248404200418044134393149106664703671890793311347846766896581753846732676330995176669962462737509075460002316383906398694943698457750487602503963647933036614862857273873124056601875523576562206079752062057359517208170035987465032583376544366712778581551131101217586528339108162486415083674445893128750478024723318281598239305050834096710826080493116544652074382079466477246882051629454390001446961647676610016798660771825529043013358309517233221821236915324970656580143312934879260099496937905331262772508452608604831694817700526732342127546295007606070736249787722787799017495421338412679569002255165110661046079618757682795328473699404673211332584201711155952074906635427128464431896138382165226928452866534031929120789964611602388713667451623530980862520018839894184868325354465542733266466537794128403010239559276033998299011986429045690234490276313460448991807901788211983069369569763481120530527601896226733017533569436123060806226600158535056785023307643629255021752707549824361907962386316735861144773135491626722911028920140798959560505827516606575367995090212688501865988875064366752815688301272715004729116836634831899329599086859197694116195552901514708103220326897809507991005428154276362205808289054386536605260654201320269884587639648858958884118680431964826997749203114216393996326033647126468204694808296331374328757802760322876187388522112198075000084295489145452985917308347494444626815585651919833883121267680827082853146976233688619299461866176974210581350951412226480920593575740752115725613652497161445687476267504398256048148806990635595772658663913608931702688073542209808150199710874093283425837063783442689785469703284325317454869389377621855946575500708368375290360747677312465269005455962647497076622972944305966185823609671594397149185319346215127706461171960423548982207215807266893168322625939998460982436321657288700760444273275371768657082089070868794193734879259097087370190135641765698302731854909709076341528185923934706573372204429365874092211754102933420671278349244597587138006862136090698164455844301070524074267748000186430536407377771780374938969798874860645057782240852693463974239450166196790469197984485515748239581061960598197521713061079597933415740837714366955745504983005613979005000774590191317224957905569429333964024412881989516686112217745946402741764170420151932591154453571018928063259589204775910245890869395030816507792539326129799027664531101990654916615120484708030833873907874893621615361213612685315936860019338848179510226230632013488086307830250180862014813800604947700494891752335584632677318836269288965067818827431150752713735940124954807181815309020905102882011102908172121658323044780809574945905074153258274187129063303261355081070854662509376889855312195161915979557051710883638791416102101909432138178145537831166312640140829496921653142701292074637852711308093441564290515250718768308765997908418659455246414661390706518051956578792640965819708956657497630575014261794734725897865012470851973639439650544717487739332075433938716896226167849909875795175886261401965665972758829466280578521342333831146513002960403513444867273784401872670287058685581707248433769675052650396724508503242152079498277391783139560079515653347866519675051566610211514892437929394964394466315296068668422738034188395255430346143172870739371664989171866041236593287520595938025388381292140530831674658905824281643764396867743316196443748887980809560790347192246822444970878704716007982584005514414173744030039862980420217187138711575154894514774595343938335475469100877635504209375019468347070988071351658506561874275565676475562628748032617611679516130678220915770332830977804017593719376905696279127779752971599064456905893039443783416099164401585775201446461899742071535038025718271186874407251564034004000387203260367945123683052766027867444565360098010260422398253998358845445499791516644609962495861529862031446246837044658880452953311527684290069215581481620244602373274788883560301116115197613242587278079829943752348616533151526924041828099748637853167356543798308478780348582835438625004540024239841629863295192924624890822399492962509626884032797884816230892448617029193035830241311013120001603463655348591456833023002758368869909042157450081797508432826964851186571401413528759457649596461823886537460306874754061640329042920013957086715498340723542102311654224198649675402362271332724702139997763489168837390658979246548707660797278527910414842465269488972954836210921785249507597212832728565532836459331790746066972700045018090427808666105455909895722943852945057388529214558065293712295116542897186329391410318898168596446144837890460898283095854846121429595075310272647485032827674227113798811646606325967415942032574516578002623729450056415183848271892549851729949235134855392149955424654131024081078711435420495061131025398792791085662136201051711771381407316044584854218153296613319737107298128703814455431626500307163090321209807472234371945091818671095015901131218320094808068816389387831304707455051286226676441364237126565069474298498958989836860500788040304628556630142805786634665545374373660414322019660016874599282550292258893838074879982167476506817019545769003189581091596342823616245667098222973004595677175535556112359049713207259217203579377636090749848760456405659824687421632740633602499839421115802338947660589933731953995214028988113621768624248392376250368885561481983627951800882221166055632740671238401343787984618431614817597300265640068051009679225579581091149574850446424690859100149176937402717887066195759942105520205757640747509910625524194110110562291302178649492765415628258348865248736576281341327448492506374422280744090124908581522348857982979248734385766420408463189083570264543410167785181452523964293089792422457732749575860304372401419208687289223540647638385380153416226615597086968903915357400461974223693438171744439234342890650411639219418038423083362242034703639386860641276024271918994906780094158685296548971495532994262440808217042655254359863784648606378393886235140370363878568402738155334052723643885699394764932283965065109790563468025988877606247693780263079808842251941778790597389014136959296113050873655969086082073894362720538058895894894139581797140892492790657582244595362414629257597730742420550269253977427473393424667844928159783599846661181951951187059631042984768144053554727934703517830324672240673409323712058182367373383480925530119877106941504377354183946645564448522637765683334901229853863553233329013198584204874067515021770261230096890789982286203406230605379290788800568242662294075826920421669527198947634439123919148755975726561678000723178546394392140805867128723729585145357701904444115392848935147861427218406538192244993875034306931737825323963100732631867894882955868935881526140110022338571377182249746046247261223989324500815284193059462018446047892548288182064170315790270851451967349679534602944156943808226829219592075530292569619679110680480229234493654371262654228975177782675573210991793120290356588193461754318335370194619692523338954049889287649224496427038585596686736922559377943992911669326958680498473452953772211852075065892375202336793905060613118120760552947792477486560856473262022697808218474972778948875102836095071115726153970106771523680838332459903671493848632738859202501710847681910091839437469877546274191499321845698970434094070002442594647690980564664975473755726153520818617648385005846978567723062289112180471206862964464399363554959172266800187440931028560237407157528122594282547178264208519051557892069779365999313730857600348475958862767393484376348996107249314418342875860891109701622470512710880303149623352879741775571867911273196623460606595805846202689769539664334918845089205385501806560501397804854646982782459552587261280582180851539155583613707188456672575015449060218157494304524263439676607933910030066153240931640167269369455913956097579155881630069915807876253467420182875048958615910603916364907846067848796900704131623724290557656739566901830516286865652597702706375923589588538961059760353522639325967986895764158952597498595351309951801686999290300927295335990448417798501761047277996622445528545761359220503014931379006598228612160574112311052090403874353322445048006696718145380963728552296430850057869226641544636437040634460868996000438570134338767863897322215121980722945447780651805589807610070186539362657360626008269124784614976934716360324723133818060099110462017403592522739135877399168436764214808016145957596447617486506830130013988184367753333326345805271462598557934822766609815888925366679438772325403989108993340734048602649919256443879675289683717084803812439645059863219935372042592208330854039475837985427952862903469462571272079264413618793518484627436061859573954730530662956535377373558292824421525803800625978602471840811037976997771506708317401009860788339951777743600358344072032952016990940421815178395696428086199554342633602531961562286456633000407095844979884135026246306534771694564069208904187341055693686872398785392476966518930235040357522991563771237641208575949711052594602801931260952798724315034986567825737135233570022166057895671154578753661160396501454940923525448301362247384369927706214640063459077977680621522750078194503032197211520494224874116300955401600493817449741919462519441901153205231577495490675993040937710856310155277477060824779515590976683984394849767203244936645255815774886316896406134678393293246736957082077887186019780839311120072049875033115708991047767444732627441658667482942653202997376840775249592194975174247648561461982060758221198073425757014019000361758994704001428774942010546623715396612509329060639272051909578833584641385223873095426282756048303623370310036920467861908617799883456337310085590238484683174246331271046112756596877451412429778595010827852156390420724275299853804576860289752020170471519539821863171652888253619112813368066238973561708005390149842332765807763295929464377541946136715057026616273252180720571218104930186042169081622707039121321023623415513523105814344328701750886131526822142971152628623887832154471337133498844084962292814810690022497560373550497738359168581443184883570228529371651343258708279970067952485475542868585601254312024994734957364856573389313107354942220053931899403963220115988239739086878203569325712785370731670823794568814892853504544204168966200388758225097574510090139671433632912201269920028692575396537944666988961074295440437315609850741955272163283248193361205357292307876479621600104818992927455818943278096975995128095978203491530285598573561765879150836407673196704621601425584618557107605333635629127409662926799862997996244151370758522067287638874933093864429541646932052331187789500080591453335647916072318598744799814727347435113389472547497536130603335366520353765185821240166465517473399868710161241186510892035907840091847560764145675054355355563303852065085055138334492256997951987488485174025646128017468476717443770085827594232143154681623405823747895302659895975768741936713298778925568407243568262800784975376629837669400575331949241739433081654604197984173597811622957634537149666596552642704632312059839332666255885354554691751511031229901394251840826182246580422646675349099045205365646010425126518538521218486142516839271422235054392872398447928708106302210810096518306855137476507853740282406463359881301010030436921721740742861464617070523518239300397115480994249767432115037627553155360312907247336824824509832980869772759211008457971735548815635617035608237492855258095019112021175095860219317120122048199770660365647042951766569621293114571275935856547151117955715316640828794558640133892297843136050789728307354353182826928323418226520816305482190906986300261219740335736875168751281883876919325231616365916712777719739210054363018998244729328790146218358416734319433222639270861017119013155998194491511034651194906913810232403509385484000424869188114939390183784107245878707948422650274836101979173205200884476604708364244182142256089865974161580174237556059008510093794456494472959727332085289780943221995199179688571090559852401288076852785079898997370077077727759453986677318983545205865823127251021999088494044443432198063873700338423848388882798368058196283487271368182903209235344259302765733058505492313433072181597958919975729861873665397738181159936872167174636566597051743055102881206515056643098551930519756796125587673027399100519609394423888022262421422388969137452485616930980022065277050245738305758058268272554143541742775675449283028915659260971297287029170132963339903898250240541430249004973236213117905222493511738439087981662295569089527853010304962386100631040483317973207218671934141987556926618321501726361268964521574675848008914297096331168480533391364144253404142210173925515783112841131479662884444403235908776151196443534464609610480338072259486493954856798324992496384417747410065048862835193981173356025486537900818342585575502869601242370021257722153487185577850527591045255155752379527524908448050757750012385743997206454213706327636838336463213196299108402354145583469000697832780303865675083830355420984392964264663992016657609473965670912859451084924437983230319545010902064799844109441826441965461693301379495112608302178672449649110317101643762423060009216356849242888007133396267070684057718621725829353844840661613726869259237166591623825567474992985704903268825629675763022128593322981121265258174722144538237799353521265718885920925193140204071253618809025382762228809255971145517145719167762740288233078901308767285741404773137097266687025277159418663973879903109241271444339630417778392752386134606608344952048602659103842944001126749661847182111110357566366533692068542244365354836851203886409719996615046840725182230630675759948799877005044670615387638352828944075622906241437159722827392161432370317035236208579704820838692544728338100189131433594299068136032926888949043210446534841454427671682711962844266451526525464860900585615391166752626512151994089181423778876113702539522746093511459246358278136167864350943127196929207630327134463667724935270374554834138806988092613463747344497504091541716006710701796912104295200897505388336310365470798062590091481407893981991665010074213806324865758465023832831064629974822788282207406997357434306085062458353500859968063478745276934560943101488027520353279951228526233393125360213215838307199978466663225871416231412535643138291506907018192858738181455893639461323174375234805872447250683938875342138192271381405860111895395834832560205065750376595594763994417618883628345913523569594595052630691223232987466044260487318750178103394803849362740772956942853460141752205344580984238350086505637181432436255803887832141572324882870888046302742607234017399859412913684105185452061061768049668093670507047823753959275916042586517081749781972322768046685736704332958292118222802119756789651695727759221744353595691254798419799414277572546246451295864807779112888513431716784750307819321557413038434225575438729027596617788358015478227020069780000409064664429909871436790267332197674966757624090558931561771891855408138666393709911070888409614801726634043898236279649991378233070144936080964236625054889742630953083431820909911395688802354400398891718201667966512667958238520330820010684756054461559086350376131740066130907918923264974868365934969552716324942956840911387964240363742918845067792104508712674466394983890206338285833167307072491755906416901250760338969111348160645872263999013058112010538641255692463686288426927718790185160221755782458696070808762168337133646740407988163430240369150430693425895868209179983368712251410557517257933388644010963715220041123526816996423290362252821427530506629938003276778587405822735259236370353362536435093638119619763112631401923082049045221699109113986628066061427088009571983807998927543887190493897812859056612787814795871600924868964357944121027025756326075840005364211180845200729643625266132392456806371150323547518841567170446881770112683507515593975016598939877078260867237389925149846820189730278907713478912063253465081936142304404503914895388135273218252231452206946646405551596811603146144128830084031594779052908642287180230648763057940472943829205778068766422602003886120454293289637661956509923057873524746429318942304741390968414080588926069543743761510137304046761045072043957808742602432833049822001040481057230535000068964232299832755922531071415188174803648845591519742514535187305630596332841405563305984308530950849799679241230242430990347442342709276357046427639647339918000719028074198363802605904376487969137623308409632522375585039502810436712221677441321727361114581268180380781676050224990103820193584051911801270628986763169102431463004858463262699962125211760341607230718304909637720510643191050277688214683008344902273549121410988231070183908807130332533350228206839894386767839886536700105972586596714355318592075474919232390848578893954088992705146043976728234496815312999025112559369174037950042026506323074187749175413445997278531892170067816505967377731275710976907634794043257891091825445440185686607684323414583514427174644575326046843440587125135528376684964703505962354751107058378348284185178717838374996378820642103600848891925226887721788601355585535637681359312997594998162543359585000559681696715645063637508350259354303849210672383683317091601800706102852797325355140737956329471983609606317851792666918101647516871271805202981013345511286479084519882666401050161926135741550157540622984183300349799418046586347920111331865194993514221747513128255509358250184511967854549308017868435448526567513288795203539721044945050063422126725981128580786874753508312570543359288727732208802465108154553101991503053071610120514890172113535193861993373439211168080902676765406822726671463753308812105390669026005553021992559321678505109603451873138469913872374337408122856472174797023465986800992853778112209166303384819903796789303478178649631532568479541192305836644455580720801414467109783636171887906949862594625341557246278696287882316437472419481204570014099108224061860418017856725773750090333819286240175835925037927817794550679199863095600466630284346860098077133131241118064251828795056812407032789554716735251041561985189937496154989686606056922716129130361891628163974631312316587567309025748192225171377076886007353581381988190200624948338631406115894793837958087339614724682038036254044841570500579351945935836270003087474861041521176658552662661390004631227814657536351546523225922372512796096315312577337729148501682251573900650819200306809558039609809156456122090211990747790304412440395606156458107255199217898407956406409705210083014374639330552792155709580399063074443352458174774706875543112530721902333446575231672432364830616771842371541802406237753155341129574055740927947339375303609343863660359066174476664395838405240391870455278549103744386667440863813572055268729408580769070358842905513345854885272907863893954497485349817112942459278071525294941575465020164891835262922299871463861849109611833547525230501835833876676721486109176617364073998243296828153808467723709305404442767195124334488378021840901409056390421073536548200870752329283347493444692178846282537471885079616242001584181881621096175444138170342231581190270242571485614473350991128265372253351363067948126501559885508558360909780202883325107893770080334098991066081429563559499317526113257422785420179704328621700456959634125194233140583061896608518587111206305070548555455466994474418103114278410167241815586991799241836241606472350941052548020885109920900061169755949770373004218749065425378092642102061607624973090242746458464540075895623651462671461896527430783844011168024018094634101476812701514901406765492594255188326034136696906693730676212748120445159499741653440294526368551223280056476691899167631854338881815040025148329036006363364503182818083160300191336588155025455298536187494263083822812334420950810274421902189536710778508606107585450665376278231294161599023211260071522823129054897035133357094729292774514258095028590479287526427161110330945749716706496577753158621538211396353566850541906762407290291151795061756853094805792142092512404358086563434538237331257925971299960460382700174573403505772661132560778502005371379157470072240591684518387051132659900221951247909966228150883575348448430745778611748749985894345127332943663810627108172874670323013193129480395015419582752105944165724242134619636131951041235768756606753388942894758625429647915353642616548473070335922486771226568312217827856381162758369585797223283396437459207226102709460628909312734946331283874132726578943148884801048460866144894025836699633944197782840480842509826078946186974357833913783493508104920596414758717383450236952044369374187491472374491142271286383620267785833381605535321271315691483416487888517590911352562862942274938193363536850734905169293952842591647294480381373796868090282186787763907950016526688927438389596101830067067487162415435094474627234682401583574103402676969671447264502666103632156415782552174507597464316496431328387849051222394569898782636211904596518352563063349108394216165150957829920692782036995219777996422926258378192245325187329548167315454361577512012100245985696853470061382437522970187062810466110608202085834557831503648166285131082027109096445251575405080403436933573932706893855026582099301834370630573514105238367371336126644971582428338481692805105699911403533023201858825125399249837411596167299034518544135464053404005866880032735661835034831805342414623803034452604273725454706952569048401679272480041897769147142431145211867564182878570261254423443418214077860102644157249349779724387065745635946781575356486086191867953318859207967478454856229437788657190382585830864009425040843080864325928332370216452247622935458996655099390781478282970261314655032515258785355792286666575033879888426802794201751169426424444610211489509412959923725180958248431548053141032844529198969277042298957013692664298652067309729521246169629785675392143168901863662975961084485398721767391998662692265050625350911630425496981545942225371715307998914406839831700230872927759968567038022422389692379672761413875434327516169006942476421212129128140084137617945943504206741180230179878944136712062771385706111190521049655634668300565061399559817633600240461240444180285988148310468794909560965489324154745092150274500555686169369314560760673915280313924806598330116274514880472624282074062424825002155417107343704034549178016349320849857433221520672224715559388190138654995316964624524922429581933533359475596027402716685193788042563031077232893542259168785014078535257572199682108604348187468627099415251236267519232531329923492072821373004855939912420326361135924829370214176524188019235635750963459398166800239041024882942246456579957231221678251594707358623417232450458216620418821559732097946452094664361860164277945181787706067895724448809349103675970813935572840633581046974867468111452812733732610938141062684137184999281193063329844493249349102926725142832517647485823577909042771419606885390850090760253262005294252127400218517459508215670021761496153078143929472743683387989364026563409771428536188908108275356724200704610548310806412039436527221331165108234674346280180332019797981977232247291644362089277493387328843753963570171209470230893395454393608769443090258497375510011614281196157438679508928248524480900430693483501957957266453497040208554500200821961431508348459356290295763106571332513231707855364599467566503897807562183965019540433066162380883177890770402897891679269395734391688987136542885021219122436430869580469911053373069629901650696151472086194306665689203703973983501961753908502993379437153052226952798505001752438086611838456765014242542810617110915078387092392848913301136480378551850156991767493205850239979832763615096798654842663684916381244376524425697940714672697515330853845636204613660343071473966174885411922339134021801347254311620396047846724941656176585246832900093718308396056594221592910356833199166197563010359645512707019884661859177929218142947171788045942658071157853019273124353795814763374358927181118210494193416087922723359026641229142760166635654425800757221611077214734966390962350517881558786613322822814053892018765522559208918627762565037901742847602430639299735984219556151128888989060458290300522634812496016417290166067993107641436457584044773672709497276601329508541295261791732107523747756206805033320064076223601271526163048105514400577137504365962474498324630688565434691644049660095586308613929064203492068962979677276491804234149831094375464844094459414151645059303382377004958866035784001846167546288151287880239767793908536787652405365256486673706921300469367812513743019930174042597782829264949883387016093603459665499425258468253419249807867735905658406610435189453126228755642749990338151213052968076555562018999370963936659211827278199606825590058049576754070149142839527174464892188675697263454209194415857545602574137784577232543457600853889769974774837622867608050306520813608045109162772209738698609238295540263728434488408530013212705527851860827480142451460071093298354754679109829336944556311168730631702079525339211663267840143635268175333031866172125096550464190840342839951319354782820613470062126725600141097263236715214042789854922522957290706460682463283277767140843025611480981380581080136432103231044846810011447391616709399041922600064043657337711650062222775842070484995761737795466154556646608697010494393613446872223706278419073791206726463845955317014964257637463380709444889801152743733732411655659502433371145746550555664017537454881571434423509696177941780455843621877596212103121014590597077409891168692453763097086579372368707188572593305256370665703334347000934008750380202998574984794811768212398783278606663009161160833691762881889831601420786334153951159121559476552190155898329004059373487246882421001031802376194876751110783878803485512854487560287522409132137095494641570627590365699494866329838110907402916906871560500395556804332195912409858858266973356569081047511274269769484406236004970155375476165323341544226661101553866988662819584782446965670292028080689713691442976272700388373360568600441341920816462644827373180987920584134068593637042329697371112169752670603072076823150926297778324269215785899936481827561231716855276130741600512092288394857049132083152689782682445907933538747674317466994463122433590698467700975394463115636046169592595669466647089686069683886653460560087304336436899142684493622519981976755468127860796659947128814318464644622463168144771449092091698282792353453135937753677765440205618728686658661850426879066547791712695398361386480841169574953362926856946914245004764267467768010018266605909497605632220419460524906489134823967025460809999136163576546670827315098953808220902915861311980206035254028916698579073996559740063785059426259340983861708480508214997057918827369860828969222458127445076592231706267709856067645864533632992627653863705041209282287056725750303938712030816827778333850753223840382865694970039538211039613428337122273425186665001444491820413098716559774347678784330468974353754628258639956506491950669516734711409410093821548658507056812145050190414554793712231828653241114734995174689495163737061997571991114378759594153149073597081400313910207548833982257309611714046815489580796759811394401641697407380931025293510002089448979284739705418844478484709253855817136663418432197276307402613225587393511847100981016744390229178092499315055938513914936344845234467892814437734632147931268653856339490089756442941908304999644656694365566341490659214505450467991266583592848168080069379897024532807870633978184076897923919068999551694107058823964361104833601762135074777023855898868926343803590849261987947226523233215757593554701169170460554641274669677630933757495030844753540227193855960089645704810325356595627648296992435824784483057400827563013659552326395784946399661849039151565891256689147987284170893332566327525160119951610980184788432334564707322850382570087479729737684082394898667306483289967168483221804359780177675931823763139151242925599644576079163721186173515476900298074807326773385106784995535308584145788065756448751052874452353181433067009337336382278465495165360797003257868117152484646044887770936322429354375632533556337844452405855748806299777122102178402593816287743124980174586639465646343451048347033078111567935112223058542668749331547725888580921599931509681227427940848390839432627792512433854481217746700165465913529995316455450931382801995505379932413522397853334694410332566804925226685922472850377094078489337210682400107117406491668019145904560859585493933868927877769951987052392657594253556486060413815077456519576084228171184014373732095320839650742008317102818964475166374750172604359172433776276343649892957844776606325550711099953747802356584832868245991296105114641859747594284186244162965803419267691174429562559491962889847879331507493329205497165118035279728889641993171192506000644894699687035781199828946284126503612092960651233524429176793350681726263801134786685223229616206062419555075035355113700924632988401536536502247572196740860829495760303622352353708075482965736684643657985526200788079562375439693088953779756266114927280253505122227130231725778131705768874114640961318553138910864084214176324374773549846535626773541838053390367072491274632255465100108002852099225881734353308721369645456171162228019581541987777062861825004321446451669953048835286397308309408090692498966789077926966046631570456853887608552044239727324253632642785685702894297175203472395697114314325273044761844259446391238623257138396946323406685257636284268254571249257189458513437679206429496675588838122053856145076643866378821109940663031554870798592946298862134423991293447800925390855393088702195725367149491657272619213867595721937711670290269511941463154455890472684285196856335402816910054576921764026787195605619187811828255775363911435628178714462646493554300340403298913166521645904937561187637733812067032329980098495945951236275465206419387464755696955255852011574233761661135794707075413074108931165541287350427979940740463055011641193122142620613426596107384370836406643787925600680620538812077217371860516459878985278994106443122053776812749071995651411065731237188708968705672205415172045222775717677151892200099901459500418131983607288705994776670026024547943425406293881678407127324522976022945175664792137337450849181901281117198942648443666087151901867406461737331301561828925007573385347950617422842626878968219350057966245540764327556323999450666681222246179471076354724095404476591031538862931541488313296406993967085536358127874982581879778390711087408954327361755054818739234549195008752203845290694291940400008966101355210903521687426810462775525149895765098927341584005539246785169722136640672215741575223213862379311013983468810890553846507309240758001157664669324400598649873535435696967393354354570138739931463797922162302817230992620396189575797812655467817474256945569516315586727561260050150798425839466504775417453023456929257515494227486282215779957139927916711244817807540302104886723834578938002647176351646830101304222968703950637643760924367558721872803988941303377321602947324650409102881204022422659357498039919208201980941758910454118590791016851077393052750799436886634875899673048649932007868644905015900265480074390307235476237930029896267040169655433540440389778333274029867201270198199937121098047091469094806693785032692728110631165126701482744065734260884171666286301122380780853146452430094349936057912072766346490098801667776388927787822304173520943583636015272170964789370524958591616384503945556196395139954660539246545586229579373137627491898293855053809909247895990697547230693787700867078845765314821204985633058327523627139468355947279626362442793310216167849017571593570622799916144228916358875463575818942048551987289092187272775938607618161080014879400697164574798575296214035310907861785670842704124265829473788347987289518501400489540735515162042733233095948852848843608675136469174344288964489835961591507174720599497758105752272965084992693178617791455760369922711479040100196998594229052026324329026108141164488629520416721746509391677675838447707876876742672569153540500833472509528300327268825088431655232425603324125462320018722483415825976273439696608827753330051484898479831405581891139884185921052200348149101917852348757023963582877979386617715899265333390167147014279516309686387529760868003989132746686305160453186569178833890262991639684758722116174000038589131804620838528675378490557094156830948433792771408906713833260454212107940334296765868566346796689489154071164379375068812151697206981674152627002187911820946857143468122002657175917963126625376386064278604508523939125403025766113267690279782477941291274847352007426881629077370450755177387305129065795134698165810062409649586999252725954325713728048463739674762876472570574565445649734348458516618684554649394951586571324318573900146248317366694549002654785790575101061169834786380956773810111366070037944380783044318930436267531097336309984256895401896362226228065814223633451202320213199810731133693704221906076081493145473840232650670928803116773299191494593476595649176938650239284354445059667881302461425663903230838329711116110818431074690248570783801631046055676553665957716003916500498338767884626607144263511801498413775474641608777368856707785842021237955137353488105837678522373478508613670751758767988202416367920933549865647280190281303650058655528327869860791210298443081128191038573216604879816200168955274066562895943454906526446847886743279921069625209874454822852843814399146296924563226225065585238768033061816341585637170281637700253214282397469638256991402744061564793730728314752954044859236270056199976850991740750294276299234590826537358218463653644573542556234111331981809484594309315784379049276207073941303090683165972689819099681529211302336418883732069648506365277899726512281397949465486602346526107679516543318086672342171057380230584531087545000069693900328322916080958202391943138157518704721388209713427179741173657482455496555871128092806818351299933064318203689336271064775471373438010347563246048488239323102422859026772166146928690228250470848784785196001894739134523977315209419589172441515966638211028017114070690668839631996281139388569467737797503194867281071197144482659419425896428104062935520847370745447691075086745293662851986472704190179525700130377545014920879198468526328482700823621571825233767455173689608752438236705719981425883126775780865136484374163413442101038947992116611428439241749358512123333413714537869468181181801503572813161691509324108277190428028516211510715653889082104768315984551881163968486445042186754262077070257645526507351121612844366227022150887533658922526495506769409349148412518479857039822790463860608010358573613361226808632916778512587498145097223602871028179983673019756581199282835757492408533236929447429753658136013124231979986047215582284331280609230168790380888907797682977038973065063993533201858996774498352661660055448891060072885004548318548637044375686016975553999320181420509521034051995998041179823778399108788434201334262608698546018706363286890162492561354006669076810033411810571356052613771333494922105245761859767085027311308232444491687219332904619679585567584601572573943924469246559255388578214555230737240709929229694593732759414506100845699257981037294452692138761562416830909536770803658176306602817113355719868176614991093263454356239163018011559046323274415988471482109336708162443786106208856471160322251871075120838665913401878950374200145313050663396683609431912945593160105360657585288446481422899297304648554238378004184267577971051682445305110119872460060515808256718920581507059031072634328422761988805536955983680763667247201658823552418151100017749285859776445816865687793062411380779119998437167590604515924243526679221071233754064176461594235154196471951936428873677184234260680601820843254468552230357245429945454583935136594066210584114550539927524017592463753810989307880923498958668247303728603166441070621493074993869757510896139260065762090082507388543877897280432557788721603825045188646733681996311286766856156773684024030665295489761105162925664067355054615661905048701374334139443185989078026230051078097242539481296806422298969135428826864012772279060485636028215645582470924245471889339444764150738924251193745214113624497445207803218448927704262670820978724715434128326538324875850523113255111606154096720419333076098409832801121695409268019553864462710597936740260711766887679311126488496404028979839167004905843722727550722224526070954415183425951780975820225946074156384034860900327848282446250091460127606495034527610894499130108836867206743418951485888677344473837564233459309990582245847846933500189599202784456825609099975352253765771340051008206071311141437814443832487124462598870375999454739770267958148395936338166994762840546981658885205858088189219282278455232851589907188257140103590546366339889868037686306033938433891235233286899116781012262479772545938211342579495028784015327458798620267301649467550771958033458810600099047261577640599319011771068236120190811150279046754908929979331620791818490391404447760584047261606109440131894842268436512360843242477070940019465454506211599828604244752514711787903979354037029869377894901598818911419372806603066245755775619905129139766138201550371987782771163807328323117142971504935943837164195007444604171004113855426420376387589850333885970887526066401974403781842229144525964462658795762008268077573274937326134149981925203260656309154449359419113591875153839127976827615873142678794600472379400030001555423744852993119368966693387370175705144926906238173810949291744459303655399509142695009385340852731754393615734873695407882365212442905438511894498933697185035858641308585347136852885572851627549632783346165587779075620353126002321855278589168270193249096073634237622616413001540100941659242492945179899104758771488247616791312891154001661720091265769812889699415755167970947250331557391379310077263793705228962892721865110688297057071955031612233139308435076885481925095112978203630868323115334853104227395103171473662316330165542606784427663886296225843667082650293862723408043710348221750639176222275331649991267312027365042910109025268750550831295340426112867706274027866980783386008149368631183016105110408354224032482666588952859832541314963308331884651984017069811148263070171340649250526188465585878790055335907113342150025274117798716342460843610515236216959081782370071904958024525107017227680272803716203754462857376309078083464586095579489414490926579044578039290367467327829023086142807698640230150751560909184699534087746841023638914839570380019460100900059101292415607290370809590900480491085942509143983807442383630742520844197370695149316189751773258200172666301280166171601246072563820503540757645307750341989279904457150668050025790673841320227746105854661261402039434003415941423526995078674458065285616204176751715933459641680756136602688969976332336885951117122604449986671716102486542325037625113495650562549449949411650594731194019688942816202666159479351294610108215414669030392057327943378111244461914991970369451062973401493275526744686942505908065488426571280566513014705774951041514518308159320391900432932735509951969444235785113282290124873314066537273131877793433063661168701972217687083705173430412399174541300977909968160811631873738129046523603261621983480093119579580422942627823148310012463450149288663640651820130687940673721224114009312021083335757167845092840157024488721078043756471524427039897648827674829795742201146329086095878776403550342125515430269794949177798064393591650095333123463862287844980040996369397356173179391450098728630306480390764840488332550031542408307260125910640329192017977166266211550650024495498896470227025376043448705429022238165308894396922555492585345735895749702800079243771712864691005532056009096832553578121015765621892482825901012179131977927775816281733687864160770515581751921665799617748533090397647498360694330226979706195468446700865835214410504743332053853101540727951817247379704678423069866304770039327412489043216067185045162090534412957901240915402736949740538272000144590742424887505383570167839033863073761535636800540800539657761520144620217555059378549483585214025475433138382646738107617875058143386780730097969195525352116980536316852001812785241249952109106095710838292634611459707374026602405871526951754903993224483964619073745769101006934946068504213123427228622532959262600575944461033688198457253551206871155945328608891922415570794245542872849573367599283134396084236162978691151732957499765731212372159031228390932436721002544593229351363521957536350125223078226695087383752997029528088101067300736397350691331200037579572421401501681881573129513155633184940937875204140207614301478967848328780839764652883742888374599867144494835383695165224148823462336163611036523139360821040298536870100022358770043228617184670944023801262839603829757600407673438906454359742130151462470274602874591581502039547761324363016864166931472764213115361241486246708556943396312295516479522780373933926005924662064324910800744026591317838837523171681465493768454754452058903232494679057777439385914961384634322015857923846393798512361034563439257033208640031845296450911259249150553260077765814066551812559427871594443746293173092154069657730552092371913117876711144042708459714997923276010577236840255299531977864226261647943689900630160960508195694827687033905614954220495676874937507961769345355012748972525201542004794733495227049744677732854698446224239189888265143672032450282437860789024402968783668176583495126452081949571753951242880654529685179791733081067358441425164746111959902945189186309233890131091312800610463853203536655950653256736818922568831410802878110157506141662032172793418640183967882847599933053587317666194994826633518141632213327857768577010954753567651947072383243770550732989601853954509952902011892291133632929814682519311609141755164061372502060422687534280592508777264972456842760492567892845521601002349013572791470667958357534718696679037276731828368212157797670254527833346858702244531158110869653615978543896303417924604530741237740788090793767777691788814729638663465272492907987267989106262785747199311346697976053386458147734306004930160680829422135656731730955394074861532574996297364434460906583831822758829818495357853461323497928211301105124011378231875976284660102496386261948317573757140072530841260913565716449011233949895426723835352219492855170167524737353671790880072097811132367297010259792646732201344627650019509350974243472231446063978178738493208395181271458432226832880886082214364384151498349035036699537152861139862166258373560610460155908116415283154640179452942590168814550195304949387480108410615229561339006795857515395130506925007287357023227877749906819594120001853534874079974009225934169798355906456731073083425360063051426533426988045773198715688485767399636920307156833143190226684426442611638719722031166868589134785434071860546375090663926224058812610570939764395131416017211274974877409747733055299024683922932997711442082787368389203893865111248959293379197406297603315449443236797438950799400641486502204410516117981270398219173349656718920355114366635369054241322975141799892331680671474359310329893554507577934206596030573787528032468560327681878098005316673113028887110735272771996177040700939536642289392479290421744551796027363796786107362740725821355992126062898602160548429732657976630948344252796483273240162028556533384995614998539970817482736131705489087896051811956628884672449217835735851073713005954164392163112429179852952244325771308485463193373000189349288109469039012314996283676687485763614459088671648095340325909340329412899555181589281762805730335487664527477034730811359215012486159307143602269153085982018839519597976834048078000507301106503430466205754805731142283900804151526338555103668195796374144041312590636546977540442498788793207847617728965822004137058213809029497916438327568958964744983092776260182813939854004936609811311338117466875753773000714320583055335086428704525460393033787624471888443238586052959191367322040541206892606170321528799837010661539898355406543955571393878155337085015819544609535713667475521662705455967850563006924005086325362048374976435599085359489076218106701421196497865313254496811802393077924778617139558458924222740826486298620088677364414754572324155940244676353670590431575968482381181551517573614835851902766594330264009048244728919116486127022494518646251713314999526049536264568214317077363150219474280510276752284635598225896685942652947723304142062472381591646077298028977682111120729146231710000878443808258263157037265108899932072577882322129924982085787641673614357837576094065554747905432624750872468306383140069226410889058294769246447737747272411319375004643038407836085437758138772277078233465783610656022938219960841189085072316408574380688422582887432047702315740225655517676145716125105945298903070441678988250209913767481513355812219857925744738269638796461917552183019803429913365809558357122198029598666532951790850705328992754188958965412763803489457223012108503577365093072471718451030364116528663734941148451469810666728730928877686579050152543230105263347231158756556578423248578266389891640640835038685552859329420208697801113099874199590901841146908124360185379595058238063946552446678677575649294863947497965788386639663095260303361100428389707913570184797392533337883901759708668990619051827494818202066938596748456953621012223723672971457521903195146471304969227782753583221022715092843286674066448387148648105767227829301291652531715702718753632787614593903400103653689825427652394274199150168574093632917194931913374980627013493147649794393089661486628617902184613108569888666397440928871385943139875368761581630909004669268911477564778222809819463285518394592200047824572091686088299134201114626813743654808099911548506580629857804502364903545099585526116463615024807944387065038704813740940183728083138588017630364864165125399875563814140212400495319012588986922121477740087483102791861479139363744628087496857605740950634734091037516442577195543686711185199727245644558814726452809000907656710625702974714507721479306103060263140894018387695157760687328029037967888781821173249284234850322338045245020391733998123211380035977697862520059506748468370741789893881746215765335139409022739773689383148368252440456575555831206081167618913645048636987059189347866949290374437603900147847429474072948493353852073349177834143168775306355315805203309306146401381818876887677484774584040565404407033243462239254576882503618154301398008505236921630422710461829483841024860900258251459506916297599760707285123456558625129844721740339011083738723363185103322491253707938598104543599249161575811731880655632424369304620988956595306959983348255290777606863461458334616909172624463101321022715642402403312928892665537831099551927025511489698435611531962128283575217417752623417690106360055439869824789707627606380244574611589634119420474049738650700728879241885807132689332517385854208596157051606177941654970200350484846620488731602403134116247704850405533848539164598281138759128644762855097727761046352959413430458355473532802478164906125653876410433158356293376215558155409035810718327187901372733995376622974736725049510822970355592500998686929273248582942851143660567288717053843680388212843326282294030207334731241470541513593496140118170766484634272855403953244934776616260336674349348989481905218377178834375494900233529675934535652672997045248355349289608109868415387400087596380374547940766842443700902857858393533508729462248132515753748111488728347019172374879695937351478896727614175702744076711210761508330646571166763980810092684456966801879631282542793526534932214688742675280311948380504758566261925985955848659081156017048255860669842333211309534259304492355658889786043364195108858961690412210699588670468109865181650099633352392032071280383982901517461540016863950975579713152451763359920874212891819742700874211282633178472099437758342285830696506388952425910451971248413800899903640025623469059176850836455931574900498424841731392501515179835619646548798378000077768329196998828327555581862141910802432014072401762174379431803615013416825917022963685855376773256412115769986967229995346572913621347467062785305093143270881205713104065273337981670018392588228412829719459016375622303468470729475213062767666791079446377419417965043776937528878986431105907942825473529033559655391231175529723883099533796329585241519712895172805726874961133090386933229558319935146024493527504021816164515769533682633325419024544009950490079813074363281243782614813104103580171694961814873244563594878730789031593701525731466883690556347145608208853868876891041045986249228079504819520972811608478581539792521173019851584929935052033091647543650691052427876792564645474396226596167240130136951339172642841824565546244802978999223139272508602432349065242951775816040452061184742380848658325752285690652193137281348396592130165302801221023403821089080426767967682379397261134187079386351471466768094887579094556760574410488051205240681577957857197338409095758790119385143086900131598369785816400227657049254849140993214153808197388161377630144465500540357084246243986711432663870521148632173398569111871170923436029986725305968420593808607247866486676106034874135847048596565532681114690297408652009268348520029490668812944151839220591833073106927359311098179468782869210780319709643916585446957784321381858266562496444541340090585577082499948536231457422510215541520377277076437935130919623561198990691508261403779272456394155454227769721915159102617112406280940463726720118224579698712436200969480870558961080941136083864922531673930705149299486590199048856974421718321067506608145550566996549636454366468583360944311116250213450715306282518407663261693042583318137721356699779898146933570067406309241295607882030459532481009466857921317479122097475019885554461226683207472245379550358175002872654963887383177926027702950205734612603930251251114779844598703240074063681040255463557862114377840970079503218996047103537222201592236298521475486279107016854832133146322653456243949433314589137841341546927625390165470581775543812092047999746350242454505062140398841880463166078099262571630294633542276485683490049847040419595125883954639105289408156009399605349042821749156244896708816374765534920340207886117548107228017521409574782254968405662065321916627467539172936700440954339703450463322156563529623966942301154452162232405596350816238047331613413848758281535052105363861414105949849788409145668880495153247751927332665470697339560506524143395930345507377402162600868960923180814857305031613608582036831361582412666494135592051780035959633726592219129535765089908071381010291261442236227954225821769695999543455562813058484515764059634791070564694078506683538902845749606834702294134997764620973674244281728142833507799767577108682104485476106820701668697940306163328739730702002832487004657899499060019755221147805293917902703942919340105526914561316011624657507145265877437658271066445486253736218323912617987693303438166705884853859064643655231474700563303782181750264983559038253621655491551925110982440185499553058402473748174258163842152576229821053764117702309929822228962963709074716400967375647607408447667966049979207906404665617732413304547439016623786811162621812427264268364723002401111515053531970051072350216760455172014102224594243837495010853695413833248118319842484241830497048421091272805970712352600578432521218139785482353542873419247168908978466502354252274987774447037820555307192692664970140026523079920134335103265334350612915814156511406661371640068103571728033454019107176426630419097910336136129534926282672518861852931578464039483938281556701828666523582631475403750491059071476075383105280170612871045007860080296537116117802328095328656719249358010203633958042143149767243277179235626263530051068724565019876363752123815910675148910534717647525122803532162363657814973978475924724586930475906449779833159281432351894108010976398361445270906145584061584070803897747003016482427377083074936528877931776930155345520740889651821222026096739218041530775683392395686264581905377898315569753711313052710899313888236354281860221343090212053853378720370977151606001483341529135089960551949647504561705480352975533664707740149887913455798257665974882053175423755731974526992891676280240884931896668403374116201112882767019320714761275917326746590134190611824473282665596289150118493932055218451441893545191582890711174008064672791007682998692932280309214131664863283144903037736431290577916812306887544660707608715028705161304867432371397539362422106700535464970984032310872436038256481065674986690862123691450225837434681709186081717703561371571295501424110437198505612361108632489142029890945810582060616939707645716267132183395049232028737013360250330657569731834534030702466631617958821818348225637660151320606367599362092865272806539702698506276921943348728240195084221054768535180075933881389020494951381165247878827820746981059460583407512523021465507868890183984968429398955875774141962007458638018891309584289955440682629583329356434841453480682453195992020948833417465473735025559937576715753014788094458662662157450033816667792664560702026476280197488895865277255026236517476610455814597975908712903437708392493659990279431454503688360291160473408112369269961522720880593053771148149546430763024120059501821677860195411351437233674049613879280600982333738218285467005739717290580858176853980254489684738298871627378151130106933359676373218971392045040685344131302394778617040834540182925180474107288805393819017568679235191267684637429246363932280070650656765371905858335099742400461220765046524727770618849752662041042977479306032039454680464481791313396421202845741037200047721223667449084080309331026996712897930567856332702228281677323012380635866402555078937940868676283912278015008405897543805649628888572294105598405189341714799202711851765132222088817815353429695844376312587610414979116491099694110118989245720215550981006708704262390850594009643378983107252077229230520468007365862362695533068644710638739783659161088920293047827420212798214223240247996470165441156577347426986724219047438036213477119571832163068440411388236626682871943919617175449300919613671606743510909758468356284695098858130920377181166716770901398648015477171586137521518119234901534705679942617798958036292962146110854915703222579017388519755002036428616627620743485022133996822239963224788291518128564214168521412536021642664865073101563004634576352168624622493096028331908422118616878954120269079962454860910056391760482230702942710096104990596578572548286566920898870127378994442997481635390089481044311978029067358851816379136148422265619408480119366893633625964888992925662669432587931805575106958986740896709002451974977898716996112948782154599689872679788096136776831265984456683280975339484976720733817823069519154475126788826442274966622439631861843227526123976508252466830636262146607612041431549160410453905432132217709068522644988023427691290431210007089199489127465736329685715977107968236272697814393467087494212696049040120565521166281021777037045830742310920514519692158717349358943619419236937919210672708444786085672941558644323385315110138102702164786784091379070373463009859305442254463738791877597225107537600122749945723223204579457987471086576209355136594304875850075983037585402380260085791337179390046878311102262555502204345832044280731315303428295562750564649605481148920932071954600051899049872197405546435982231128150022130397099445266119893123437544881199478710569758824901490606393177664564499050011673507856461307389302401256359535929902606556562224240760714348396171891489203976965850593463057793934480080906881576844983302491128886916542477091121843890540673333866522870871515019242963236464725391211094640676201375563226882764747958089380123898069850979865361042751324387506629235582894558644574741702397580154720623268289793992441786485084025226487011843447763963710850400257657474798122265108799462993312223106919581605613040008265264497541289569247683954969704401759501521365243524159949944837283842929763856788345723688377638734152386830997182096689331679523336060621374556501294747484864377846594280126253494229727858825350909013588511129067017711382929661960635111047771526769512895458133616136840472551758782711739813023096547224242621408598913899144740716813657913384410033195005224557388767953303773596496385346138515858715109008989429591885433059833800635596153633732205646525565650134259221178392855679534698791320166957276966329127130874897183041773892086641732099083646884854499262212966050898930390697096890734824811097906121001044371807234339351247867423832280054144978503355923750752597556402203026578173632372904653431836776798256290895060253477682190039330844485591578690501803173612519914646843775841161900692879887221054102548248802925579863927804095796455421753862311779081201600305877191119632962705992788204704174768960322403401763554363269327075525824789549499044199618937293657852843490304162800278452095193972147706802796208117487261047256430380992046548201535305223130804223609288880336302605939026146575605994983568506394617681285657954367346107124251282789460569582760058718784837986732649458014864477534122489934713684858211521396636055909659561893893443142682826814143861420895493786693427892268069807796122397505256102099822399305796329687169823420757855814449859566276239661046527586536854482379649639163029829481923539632188974649647319192842106114974949579173513969842690561324959070752364462592725336685813825341943705112920932604796076870417834641245882290943574347041961541749014184135752890900204163970828656788160088237203889226074768239128598534394439258040725067691116616257310049242259892974186225779779339600117378270943368578732253806268205663909426121728739041120463919861650261531374763759020965827017838483291585794648750457507092444025111157315741990146128887117022054051688402295685764000904064186501761260788882077276820976010894164574423195467933861520623603694429117413709107413898298895815498181837066841751528379182977895694471930957506968039132743360435766725713938939364766385826070271549505211780055526682521775263678576518087249810100627481789937140787375703154879919475849540490196913974376106488952668911508316013900482271151504218331677533219865329769499825142825947062614144688809216605009893889213758344597823479515060228453739348525317280298608932813022727292100427160973675041203607208557220937361489775642196988470452598364929689326057938732579794452270337312286421206156467228420106667757536761681673091928314874866523663431151508622312605226725524454261505154381869596308268557165458073607875720378771882009233590032268671782197895417708342364675871520025637927435341241166752436216904906384821345665608092610867113029223930328517621292842012870407154325091971976697500441327994635017007027060345184597970505400141064301395217304185978964534083111293939709124696983691142950097325484827491121135432067664536345288904068285981967837474981839429386249383723491239780089982389739175840902066823986981883929031161931398560465045636692499717846147066151363467529616340754711887810510569955145796313411571243789587780974741545877550622471035698522180636273573567488853202375686646985884528907052955731121132367106501982996352700457963271269696817114013950208446257678372300577840931178355847679751557451678025571336355743370041411977060420820230738789666644563233305785726964038016027067728821422505544629295525192027899581375179049978384516489713901596195971329975049423041400584314484905160388425960048073193828244841587667531771446058890908806422347234682598715701302611548865026135536517047939418920383490386666548836278331910885606434658580874997748623334301684500454066350698029267318354612152997939721169060810224976931364055307005566950475087480521956141107587857803561036646261682767095795213572066764921282228502421058382087359954692235392239185650541930983187323329811847141701974448022485458979907571286085792433107243241715056950481339717758063572244375683400888034935398096110384388197976791033846003798265545496181545082072369202817908120863373014290016445227799879703970858366948939521695997571559788262115308528109482312578577808066953508116885523268506616359478932325441748531385425815129826638204425165609051770345927564491858629266668139425869178438082757238644319622365549429955012688018175619639928921492966879327537490180100624523227085375864295561148572672103395305904078294070484458625289291154136027133831446115503754068199455421127132275382886419230310876088513405947848454168455404443085619751031561810845174889509902149972286006572862060796922453424248800306367693708179318710622982336498349071381684777645528891966099580819981802357205108917113327533763305666854448185652195659023558933073470656119695313306892630486999952107123251689343402654536240320643237518358518877505021095150917482207310946166589241057022840807893353502335630176108003724404534927327268232266606792987312683354714968669108284944018607212253796100151741400517908068544400844313480468762281280311856545448411478080167179696222755664522264304389840670425895057007806736320236417043670320992986866040351595352015915958393622350291467331131682281100466744689382062931711205011207985252359869296768365622219960982058163998935421362020495752901646427973698099170681110579706533884543610904646006834334257031714064460266908160716572494106647862174489962646901264908356911455487307512813138643632855559510294269416081720579809235358785446653814751783159304686069535063505646828413400273034928604047765194916848147299826064747066406042705427466812393323482467505314533819819208966283672541203042029177961795387334291954528450628324785763341275131614749737209415766594752298784179496032463703160052123908234540198186131097363756273899908266088419518397395090472754921897660276443109290972598799682729926769091333988759203468577280755860232039345699731635904497264503046260036182624831817207671739168508462510351681416607107409787455842519647507560431672129409328808528025230953353443174805590236060473965748449169418660342086068736232471297204921351610920069693298194179088836899694746351028976318375551767439211349561691556290828024889776962244345296404160678715433044848854998659474902643994479362488347215117155052810469771500892123435355355060364672028948868101515744112198769839568318822001447589529585501401887058770082520605227411169414952386535859952718143071999828997521704083211552770516722411328217569885898616636370260302032903313709206527658375915490346319118389462546884254975550720641517336122846540195389095389555379625221436268442132187998376995343382541965210983629401783997420978464095389086668427321219155746507272636241617305095256491995604408021603419312748047367326097862741519527551491610241997010996894164874002732045670374625856407981254624300633443404722792516419852404871467800354773111371081978360281785874877260216493323436181982825362679342914044720954938168111471969849330220856794271712599647385285144234597586168286997166421002299773413173839188233831000650762584779099400422699291048787779352706105650380733000352266019245896868321753977546340812520827175264969610951453899452023217019019644239783941849922248913868101080106338126213154329366151083331650905543721625819669729456819485192142540632520714414417321672498344885195316950660147093490853588321502394104883025635472588735793764935385070953905668788577232632016144011635255281393198829642658345208717842253271912847906429473654709136477205513386634647815815392894873686749098426098991194861275658974300532959641711353170397737787164594114572758826732870685705567276916742939763447732596815240662168017173489071012301827358873734462666735670901670697237994477112733720469641410441127885995635028633540121096075052549004741057129041335360110985689313927026351606983508086490557080830129203305976967943960135813146386640199053230782199218530397352443674270546457017812192556400761986629169507131473478888526190457249112485433056737599700971226669413422368014324834325389695572893897340479487182544635047676648805990804314845277112980074432516256986960570070858500725943938328797298976939332324454161472839911326748402487395230641606833364298296677890818430053443466046314440653539286481371215623516136299869203546669537094328723995453055006774941971163416833743864790342522719517028352622457970407860428386444274594597120457035062009891015279590612241175914375377071065676205980630200262285690862565109178743298767554469196787326727940825026437861926366026177953102153447552948821213732567461969334661910423474524967870371900398246645561282788290918638869546709167115773874379559285987654221934062641409331719613542521341782451342086991541792799934961139193873127127037695403936937300974030698127302641117832754297969948148395131310073205534669853391142039855748419116553317693568835501985852506283330649579424396168222429440671460059326207125266042895302766215445678514176472217355042903955254071174248059910167307425160444706797951013092872472489809188532556411346719063191041819864101933615753064276492715522319641657874077171201849211478941527903712717889431923019013247566747177302628883862996017951142584100292257197076283688674539358466703500909592549882284960242245708385399758856441885961610588804399875464930866063726289458893246909769727316764712470470235529431415737049881697513086258721440963401208721033604241551085755503212566339549086378993214599805743376689861580700352080183447032477287623416311495103536579074744007306612881916756022250708248486661187666266429259044280258527583811884460510367493714314317980153999241643145067224742882020277333948248238549276057383550767727502512726169319137483650861344285441751450601401903063294332256545639817431622477763134643157896257576348360686823635126779322596395832798535182263003745662464543812844439652697815607482187594150031028542114797949551183166712311122352015531892762971353657262872740372407341335368762643745478519418426220594520767127994441222553083113335923229252264019955826842639944458343832204751342149975009060733339723458999917829107921086334999471555040384511666375388178380724508919891810736205774043850868070511348572443718912221624845773283301976553731446738812904312014079869121549296921958572721547333886691278072624432425691528525435981475422858397040742235322206183072257626544780775559939029590502223831905852618308817189327588247644460511546029931903560715053522603354183262597249354747028502140897046261376474843257713547482714507018509862974376733577270500345338043444956384014238225782630093259023092150158275214186259169423043579362614676488373992307572804636578071188530360010120398468846470936732321213996476189918397019102018625789555395035765751104922003086720579461925389831286578460878664169471149828406675598896437991163713015753851575354305444881200785995442379643619736056522432147818567748450157899905588644536361503873773253931748193293088254363258388305023672596235478305848408688358697220222274492444361649871958748838214077719052710572918547192975913272413482757519576934526932669285385735474722396219879814330350572123884258164523829392707454860426821946378903800818963203869412768996542642616197836593508191873339465258990365380660406932560147783023753382875421244166948106044106914241221596146496619927767354888828633744639837665911149343959293607466700949277367440419814009722028094994456304793102779426703699432809337615892766922689465513168346822942873587788098673911071429831732343026153473836675759697034713744524917008970426098204229242022428751959130513954064819312895411645836252006544264307816414866104023093668497020576738838794899024941141706832787799527752805178513561369391017560595714404179991378338489300923014210562855180667503119713144402746931368962311296569248736394658470958219122391935881840808302846012975964599499752037286920524967605484347255207401145541148382028383390622965949867218062432513898374377771008438336369167827476256726455814512909997878629227743792873504431501521920733190527789280238309190328056108490276821146150911804602335108074272423260424430264769580899836580426823111942616420061666747069367740580705461588109232049446776034045912166271633500112330533112556820963462117164921270911643740404018336845022054166355212829616513146963740021348469974671388563187730740515755362352173541420882261082916249780632223015585252406353719647779439081025630316715596717979552177622837654548653397799050490549707648485361090407174972398366290640284207475747545994824926292254666577577820709917520823170526084422699591887798923502197654947961214193209912020768373311404608318028719022717076427746374328590961879825359046717879646119938167912379084686226674777103398615754237855990372172762319548480642741723010370908235121341528903892158439022777681382370333475575099079874762885407499513701175569634412578154126415459626765618203679001551323208051178234614780686365739526247983867129642294198134599620744199316515003432669698501639810924687676430024061310629086517976121332558061973864468318908258885080587558469566091067619137168638064677884231577347157619090913736020544043938035862913245995183335335256603063661089616856327326142802131578792173880957516348262304988484322495797578811794658413768623442244924685482373002674936266133587155311240643313029248556732428631639128244850013168953903432793215728017420089168515034248129946115556291482395405172622776977191595025572030918246652699271763935173329103455016829847435686382837775559966122375783879668045521685716843774686927662045634942689745161209466183810689214479209485558640193641600649746362794845395334800375131475051521805017544660202345592058551186321867750546367643716680520040232244144226767125465994934757496667709981014012743677748562869473770014910126397889770251285428190899403317923987281797989231933622528957051704744441851718043740235475271197098808178438056559928480306534735456614967605926206205259921340713518455037026943307162701213603862876111774947030828917712236735907509327216686801805331553090980729505234992305914832989002731246089643312588011958439064831486643410294768598472055547792118317711748502219902633482810791787178193359292296546003472102329034763701051947695972135241346715382414053756610474792664779886314324109310461087424324611078025124063389454285571680772030264763422855273812982798070150004386571108074254499552659426775296167862154578310443790012553822351700657402782708746879898482974593838031748556015801611129218047848643316596266692223554253907614992221343843232810435695972676913912911654197039251380678900939199607324175194956088358220664888505227816154031729386761736639403172658239858235077803882709518869572620668884918461497256422345674593135015595370664172448900355185322470038478863264805788028431033475416996215944060121453063084020609145808637888869041815413594579664580197406933220600965593619379731866432973257398867936403459404363209614040214094558791938413201442359428408583576625988112816328622548796323984206955361973755361852146313376990159586611564947191966527705248214173204422880165187321901333410701404497115835616170455595615057117531720598645006011508993369509203733077168927077366810107074583837859030344535824639833666004822942783043234122065422220719196079107204534179726972757424280173998590313635752224866610547976030100170609076460145239285749866223740639215578034782303037915283559090189619309814898789186629865939705268719923864982035551134515876602463365323537754699417167214961036084008957795587125233310532750356365051972220790084668193974519246099170634430788333742284119780533593153296031427698165273994709596798683895410710744328078253913813084918015032449994793077199315774222690414459357404693428666506906735990768311228996068382686003696498015108255882465082041544127641529364662719041857876605940589642986128463507557607635499416817047287554142655687953448438849420484085690021081199350482819991998869818101547106606347735273961623136899794791301725383121953550385290159360414970766398862328073248043521326726886497980733303132710712781486100631504688019602515415640340656761043982737426383344177056043222244691078350088235523422062782572070606265358534150133423895612553122236765373303590807549637707957495374745742987305015453200954310644031873716867446161243534402665414967132078310553464594456222064220000840077178869354095710811012709150459959115026633881241028333214164136729692493403477425720912942421486705994076262822596089381650522640945630185086751330961600361133497556573059603132464678451260537691034050099370399578305528979787945967273959685263840408840013661943889477852490124918125152706644814395896053659218361558821926047397143793682398018031403818570272526257475498885322555353859391358555377745932457536964276440153637144235177794759647564051748720720134237678224499929090940484055355593758309372185416302085508309148596217082288804202067697894102306756744772786368453957790569619439735953585794073069318631349826721137864764812912693235148323463521079565431296091177194619337159197497829403695789510411432256863969753924531525150286349098374715774761393805880866008555918312853973369712603495014006915397525344893757453942875534138285802071346354752389229255337916709304086837919655881910393620535437009164797332071380010743817288176268737128293899919946453817264714343707684469858630806927144520427649193672181783749275915690571164330868964020359822257389387189374663827900945497716787272308725707475918894448982243573921113275638862826000498742421581591030010142926230369359397725662622030476133248315010502907834293048601193926859163179905777994523462725269304475226746948448984920764293840137513520545230723466098863012608532108454235905028491559411347530587780787398744489326167995008788666207951289615166198212176571159746373090979409655254649362240589304671433995484381276433178686810632085508930500864657259902818327700307884933480765921385170781052601983872862599714174452772915706798287690897976448893251794303521797023581688796485106961433924455003359077233014093132461293091020295063198325651235055820699622946756391659307197449143901559967401116602806238585322821435684596235141071179525870896988776700316844177101927826155165070114930494893940106709694453099436918802151536718804024458604506664733956963572846488651277424845155483998180074205034195138276847552295601170455186041286760936903839730716652469054027231590742728587850054489862206013670884943631160826234532249835320444898134924456454617070719350015986691000873036509569624658028827279377088205195319143794406456566116542048245757430571150710512386562935618399744450515282754960707197167835292601596606273655176892742334478971299160771362456064929024314375568658982757662788633664774118219981801769534695746787891815067080429484817036808556149317643130313262565657056197560057745654551659296886001592860640030383510438271604706437404428090916491095679694225880234411738312105808663778880629328818721702835044309971549849276490363420858391683405968192067467280191288582892232528373826677283314187366800579901102491615071223220195540761610136677912963238537968091041166336536195252163916076114590053045542184830177500046276229001819678693758875513672041777586712269671275363150062959397155451032850309361247416104692380670881211040102174700223705780417240289149744493214376543266665831163258579263404868339184244559632738920157713962564192104788523075354767402954867224700159561408819667729725712110965174086021861551668803031742844698467627493723792739063813190022855869938032256277409414130102956894756372236162352018322293803994650219048703936905373072311985376226914466877164148674222701940685553594666728500137160066167276227858187564134322617257337186658992141701723466960072471964565876138932799737861851421893645380629160717981933899167099572640282674200226155672246903774251913452378075812882106536571354273285628424997361054593522265308435065428849564298725538992466972748713539703772185568438353980568997544468434059999753182640778584052532535466799333034879268983378747889236415987681202063158763901866886210983743417223070582914624308356659779086021742828939637014961962455107483427523487777174810287941457174205068515486515449474265150492870356773403973473170380204479750996884943890608401076194709170343164407346366352746715358741298351251624332598371628468891015892502742753795795318426623053564672001074921861142665977472876408544637301593162088511769949235482028591010814573609204498713070034955914846615747687956940790545737080012300423830046625326141475534268776077497937475951043243081913188174233991522219698155226378449185702090177414826735674619067706446039564960680305631284566785286761917552834057173882097733165948415480630796408585808587792384745654568327146835178467133388585166047675143273470498225321959945953731545594806387835021327853178426728950240876910252525062131801266442183903669514496385934330361565321783661789966288988225189178851226606665269598118803462616528117036670812337712529300329432576203437506602319782505296277457878971395431262609708473053393112131834400224698440770333969044580325694672168270792527019319182569160940572857014217609969939681854142431910361870880533244451142271838611802337671762905069109142588149794877395927561137967034652423228460560522807039210565947271099025607306947229469243194885561365658105627865689036393598312861959381543865188804578280115205032683357812716177076449552110585906190716022682097383663399244884255041430781383116209297775375738125308116684283105943724128700180895175675685427791929725502726111586715860863991272158865047595783159222403298852350528029362349310819459573114240558005672466048213833528024642588311797739027319143692839294510357767783121687787222999701964929228529592080253758854979020031485822114667456056353588266534448331477003381858827602687834432998845153849517034701069053373196778909749371556480082974416323845023034152817141216831616048000548050732565242275638849187017562858633525358293965590743658007761519557413975121367392293191407551750238551655754323025717690647078243270581502856433778447449365491881597671428095810172998490774291423408471822025400540103151497293973115599295523663691816172651962737417896449805267611712147915729900725960488048371057238515827244481008013363922729472725387371030114468659513390538635937218430153935772319661574448724763247931592520660368013692187556023275074054018136179643637428058724178406510473522978933853709766867567836490536479259727700470005265447422920074780701757163394128801696176899646453342885990978191374932332601979310753833927862587131877496265030066815085613826977195885848112247862537994142655135264877052246266743027434745768203127731117098722196370841108176149117414670774802247556111126262437417890591702104240217992089005744565876519430986079038556439364360114024854822496703526643338697179528376259246217640385832808785910497897741562432196119872931796563817627016968207036470244443171754007375603167935777353880313102387801766536480493504708283822913155611059174611972079403785431076430081110737633555262154569598368478960301173138165109322654712083564062876490719789474344743463667645749710138046071937220236622166355574493372380101676824486792290777189142493759770525783462532451608024790162420047867047834084948519949011401922907238592460661481303843605708064629742229406991842299199345080438924023485607922873866265598572637644486683816644097595658003884824962067779516448156087180713898458959879413036052730894590161970879935582488135173698878967537800630569635705536382695997379078673043870340227482498142914009008783012297859253980987696949108549688441796922141870676311310793314196362876764946834589040687050247389432028491258636548247261829504185568419697808661272215705354910522253253782260904507937383929970548635562316548451759074061868569770004476069078809154019698347511230021564125038842085808348225815321500193258719387159026359761051132308627625628593075946011638893560871609476710995220881769214273864943182045913359879933954121989241975868571255491522221779438368162643901770725121313500047500763907170315497174477095604962908790857089833760878079383586478698629014388191552452709610363933242868086708203266366733978662629110277506039935713979126919244140082191120196716271473212062513104677304880933246637832527512154679527686369760194608151120834196935693574666792252969615899146303946893716979795886823965742444133540956157181722644210072497435751477612937336678351183923814216476499340703404095730636811594114875318256677616458825822258356407820768138003282283291712077992351210634935429337331669839148383921754539219441486425647178888653997809070934374011991689431728616264360466268766050700863363988603775041584993611933614949056742799686840585753591736586889155544073549836524000981731071609701972509209871066610387256340822719438383172645304069279663163010013625716455556038962160271609584566806474228612861839767379901503208311185331853279773380695378793457276731990706132292504437719034042637813376699418576304893499333946558770953676441762740910053871161896033509340625376909979357244086431798154331790193798990580620242745984196086146928205373963746350404183934854058348150893874806052935763295147899817835640207676448020535738035111042260206788137346904845614846674659204826160902352252109035490448025943847449509822918562199861974748158678779243850353634186098881690960218393328388846551962825680435563608915389409798423505686686192064057008734795137115047759164212597069809398726118739003644386804650147639481131999911687557281551649306142289084944499677805249823799269875789253992294844542869524408698693484758235755516673681511258560379226635126092126345866435032644661537165342296027299780843722083830932937151747987662463232440314209436170748137406912822038194199985053173533031658524611212862492353640610131779558985725028462188902200510274300629049106965002124604880404276548390901195724296783255521735351737686375840143498827785783518363670633628332335731971488668685660020709103152376452240941503057195862687357363168161050916416018624219190272594941919643456361255565201476517752986434879826121127063251939500263653512345158902547674057118329595590274281132443506950773354357586287154327838551537963112808867760942837513656327001910870849382171028975192659173965133092868419465832295243076822550319514304794709407522761746020163329191875917075084179349697805176975262135952956635057257460506345728740135728199124456751623531405614821032739660513413133871919827297267729021885767232967482769608452968727418414290354981188823124758559342664508883630411416683606552685400312877628442915444199303107874566666372717182942701309831997953821737503605906155654784533867213878157527014869753760435457349611541846613170004202729490723706889063575933109804233838371364976644540740438867698876456013942636696832067249520550241993189693055847420710787516027611760796447116477110818404289928252773731147322046444010961916336474523617435549605452330751776108928291162175008595140087399389447606143948030603848154343042226589808534020947724222617734132330969748868830023079868815252228962040200360599997580179524250351910450454865999507543192592089638029367111333681303924702429045227037055901776880851000474048427804964023173111867594086171246478534621263638045856013318417775283031113093620158033756175528401105301300901644758510078605802568836517033538618918009146377911865964192640171307566384038744250938661053510785722561329680498927491238944136913167778944834206006280746472069389918048787046964100577822756872932831627164150832891509803616766364333424821263357937300886729686797342951812020686301029812694744401976606532106739885805029498334746347513057667088096914807859583556033409238122763371692314981239452947131291453275197947495923753728997973509167507348638246627618015377893854176411865849409965327533568404673301499969308607200134757210921725354135234095455752786351528716183887985316155626380426222371202598627171461137868193291780806409342214809755516403374539701890588381325638373965074289846681842549842076747905995755641654196793698279574816422488654438148176498130417182132656949115493538376489275704455942721771434833024608668126101858569143609110961270400389524842364797928016114602158280101648237783202409941105237972323321722318112818806603892517386105916230173414403402448487197910895213914057584541612700705342358836623801655797899268102406382793407371498178931305745415049268251666548241956046716444051919156735434770333934938008832019650022794753734620033520122793912953572143659349009197003396948004972119309821649120830236244019228494600712465624930134236710401077476352797898726776776072714184104143156495188757671560089285735798723834263215244291051981982341657092196156297074934883783074903218583242172658164928834934535586891955218205360259956264313729748077952115474452137914100076368811677598524525159765156647132824711366231156287854379715260877645607853980209516811083253103311437692724799109353505509352353557303505059427312682082152177639970296199775469032482854047174919010474014160827577870418999485578756339363729849890474183140648737288224423419698249138189921396334076269526469061504244052927235979288351648360507596630124321978119843358617439335994724786139943756953893043642915085348857988529991782631764362876061241290458907380960085681577319484380944516380809793453790034273816725710433606944205382536920023224075654822549687423548320132360327996071114227013458086228213849918835964195476509193283808873770370623198395441836641564746001934160542403171410252236139875360115598179173587911472844266256351588194926893874377750472470476870005005578726532918385448470629245149706886060697962663051522124033465264001365755079268896013107034708472359628811960948534631900181321549451990495286028766144775410260444995382757701506874569805921470669291850121527414786834025657702830298688719230626514401035185594412575294880696499575600136524122359424607779522868134352544904647484049138119320750119731097340554685128975424022813670416765415020964288152676123941092472191101119567321197524565477589152745715226081431771199026889673432818136813788709939629558939095900722481515611571899206270152389238279015706150334756482320563074773888240159625712200179523831478573225593996408092244931176558804909153965310105120578124103748080591197614501522319704302788438426261074273148790033683569731712578250735813307058492946377421013850737153492559143178807780077218399456802186134244334664011860807076730396800601478904347436489070913087960013681657784583779166119609065581408963206377796123692418905165945811699826753133907564080779841225989641732694583996866152692537806306871770618050310729475141599159473602110434113741505866934482848233607105770048215759710062704679187230449623398028163735128971655123167651166559605002496138862590705790924147620629799759470431503575314399046751373510924090020871879630812546744900450715792509390744234300326431040344181254004418001516958791583040784628831003180508414966626591272052257901958256575198774685450714951712241773122766652206663330240692473605183744336775425013556992902658166678654684399438661084254081686343443813802350297693400180283204524942675645414970593149600379228494546862088553059093613305114758737278099491542900693901944947890709076600211221763355912317911413737638926116527757088912042511270168710187873271774591504213205436129458671617390507476185459436801792746603946308793957166837481351198921718688258863706347500249436294375554258983178429689871364580583206767156984209027852759879653576381899647404580788729787191602492385233007697798536607887311614831184953749095070031352063421078755345167857288326077702797750067041899180173159607383906021009011356164125324046111388088559112631128024126025848038140333207074661065339136799607389243765119681038888544862510695609301706424670556628885464897250753764350597289482329408788883899279395014272217450395090966465678051554234794245550740479203180561058536235073578768362787047131295616426930622585923018367049295865324538090318215196025897259039249314286084168436316338478946930815560762616819937316593751084686983350170475801021664972695901646218832662047288933948802486830964367040849190802329539245909587159411134205474329283470622027258201438064978033564479077563834648569778078329123117998686691608319589727643197148307678005589012539832014840064259498724571542273574953864016741697420590651973371473512289578603608847375383724639251921059961328527813829470115086779329548898045798637606253438838475517339692620005991441890015448238417603338293317852594924043348532971526623747050700246538266865762512376018730555634635753010274696518978327990268993965214033881944075818276553353730189279849459837419721442644801795360686629397698228208897090711356669106895781341747555307588319045360706649211028693776738707527902374757612536592631246888741029882517959178791486374135242834171623024056152715489686181865261021217592426176920915801316223877585377986733679787769300346094402870435117024104724033595104742479563799197479623307977122047221296186005408351456967508741745584776768278216716782856292316492192488337337836720034598974632510108424032971090202361833544779335434403488373825845010096973967016984392683879116951142068290383396626052393503401763755320468322577441724947569092049957484575938275878751256646862268442571579171772720572939214525563148990609699943752417168513942107453525051503548000076549162327987974845293126324519469626666172895131101322588182473508565906557469841357425033767987252309321391076785494166242122475483942912020985728000804662669817332709359816616653202724592260430703844940379802390424360972785395722256269166553928567463671679371089668561870307015203500815561398030488097886116720521083197137675300317873837110626845771505393121698002898531060264811377033535834294899573695658372486585337386898272918264507414935705872464939795391803432903573538671908806527725708589366480722981514359547813683439740456820664714098649519996540690729941208161244190718773681891062647559275877042248672042101263107499756720231725479490849684819496608443591581298011244642493612934034727643230913404216832777243187732146525859386651074525726260644409954162537759573200040187841367807049305985989464327515903286712587243750032452239044577781526770100783698423951816978908003633144982172207638390621187085944872115541472508391016441265667037650493149189626484051251597033562814166782321174940667885470730317644849175106316104576633601907224313847810390502304281377826166595613902163740617708617849521040049692712179887994014114353817270634845125479505034945964263589870854433592694328898614457939757421353505064913898862617607500151350043963296314856758429370656777753991778744149542313751460912859733817309233799975289203358690149743216903274206358575885538211030320933239171213535048844518903999517069472231204321510157150986395862804932846758992854472285925480323683034668183440492390882358771739057033411720184382866598612034834215304556673279829737047518878542372846127407482813792013590432335587434005315383831008814003291103742332435506051276767449249939420736537701198478934655683897680790038336992244506431240312542974433743257916926073289702622127215796557985524076213763273094084448902981031829977742808368106113453795535723665301781378071006971824290180361243277602911099294998051522827114635697870559156670748488117261583478549961119844057820611163064236489520505975457829002014401308963961141715688303155412881454122280569143495192086650288771979718998836186948569031995963109002585924918161595625482011106924521275054668814338412783408123923835930043802821029239883543636289326856617247485085697014735550070620352912751128522657549193042068118462306918869181616886253357725259672435948718713847430767266818591751166975609874040661820952908079302236126355658054567681141034107766536497838504897698154032461859269708043857254744193156788207880819551326917273610000288236540807160723079234464614565939279655850197424487564386830195792709805101529850226298498888504192288021690068310173515374780836433205347727133487223021488566258567571505805496679944549188417888476992982121769641578629562410690961559047331341850489316291052012980895593093353953723392941317153201809670695932246488799557251288936328943853868897052421380233414174867610117809302572073914880679042288922795253274467960742734876953664886613333602322924618429315086067341756928191767093470902644795102633234296113982226043044619919333366811332377979994699444022352910847429766468350021970190170475405272808033994447387062007427088846294226770544035377183845045811803606988103050558226264752899493016137991229587014081814781179072715832084459546217805338701588871569628461189590916891876501603711323603124759999752377922597043985034831813826108413069078912009202375007035675078521563383616194972459134588577715238512357848702178564631872975295639646242693761378185821268314520016743115480240860758738452939413254714422276714108029170439386006789463632882974212167211903543881977131938737285523909929702351384712534909466365901545210865354406104207520130116024162590119793976995741144133652759233487058531437244979205262360645323595093045746278773839354722897831608495527365866381865827290199940717995241214562358979472083303197645507260354350565257043557476114688720673277310953259499222962511446561545579803711545662695008825367686290717361573939189088230336678402664229430597334238289355537788714693304498574774458551725343906536831967277837168430951792869224890533694830460814952590711272451777186760489642572067182701496138180330243304209574138331055109298121054432579760747799900364173535842715705197278921544253014954246723268350813569206621754628281901978296136688389488704047347081783384976726818486107484087651873221702063022055259536736989328009201311091526999237224234735349616809607788358113498798642967695037225958512521643132502512769649841308315394294791958772971628831817630783718547633784965221243708691988086644396478698680226149517984922766107323968238607721450473731914801503493181994548016908270185550034960800064009876872323260408144193097066645327756047564321824674692814435589596602641042321903062801451356981892303299297062449109692871672623522367088599673420618870481478750521042544603965488094442987834687910263288438035065158235380462887403616822516352469101658704161863864642968947006376253108772891841794523459347234097059339499363995545686949839218431161745686687734293425126050070258964304387464406021780716307531473840002208137121255474926609556443741257053683201205755559219078845335433553889858538183336330625928462423464237695396599965854644367570873667467783639244605269694999797893074377923857007264971961084804500042205188936924609485952250582827322623113708355454418497060213403149390020283187583288245745853168116389442768791227419474950841120657710760437943399121440231228653430771270909653447527079422325759206666571709258493287971156918276765994896698925769939169613055812489043069939768921689218557879304248042397629737256996722724151718369952799993257813936503439061124446895333043002297650216201203243568019849834991708445297395600541938249881385732313294173284725041286272017174695278903556396823619746557555753609191675537986686515385791344377395459285339173897128817325885286626778231215541449767865667652439092035580607614687112869980163664596592925800830610056070662130121716850757786013397808466409074820030483827984096013487997219113119670531290833014523168077328680890275012787769766192256096410721041652546876332487585540163816183977341147274080978008790231192918676015569765975313563880024660130294794263463863888237481148456290773275838680300593912493024930481594579445406803122323872606362912686593838502370315901692786033306593084866313773467727673179976084467554572268270336893275523316789913168348970126087497821887559492738353744030583991105250524641591271468182438092601709120633998085898876179843810547807870965062428534977051789912263657231859620938154531839168855420905433704014147357019082397345370448937414385614511788993695881829280622227016799128781516739307657849610859402615951379785299608696843702352620296449599526950173896534453984549569513337992208852638515785271790470228687284204957504588069540271143995473686781418977622853708542444996429577070993697828718823388759519474950318997863200674326636191823237497781794522523121528923148732369095229291168990597408533351469981764237574936620748073696986136882711882052557020294749290617579565657460330441515136739496245547096219040495944551907297639942677600183953501536536327483921668778722121756486586961148088391472851925609749379794793202165208498044604164681573345872952940707156005917087953677761620783433284754867121111920014850842811209206695364893319546009404828870156185064815122257274854252476169176520826783781956347714427251163724051446275149848333684647243338997254367694959950554704939970337884340876113107937730474300298559948346167952772299469980424058650938442331377713888962222345944660646459615014048211568554772529874028832665228968647583391975614806022548504072551947099995540489214519922371535213771867486847109622366176425104848082442265790262658367078289766880251899518691261921145233797039885442953692339456399110880113700189811670748987460163473723099366344043026478021186056977478546583550757902173999017609799433730010050888640017994335141757271498366253329234589854742371880173997808465149348872269275117407122738897943578740414779182534071961433013059205217705336956861781987283363517494594685337077245835691405466220658387271495349639889193767650699199261056093562207709631962574960454711512266657774604709231272680659338121374506449521006728829379881840478126426285041093640047129057864854749254992705008540711686159242977582439675713860565398591747221066321381694035948567215330448607393928038031108292832492823464704562910648584923513449864258338364636438181951879990105777774927732955606630339890026245338658527232419599543119324151949572639939834623966721984408466671584274506257585274339843134152948442913771117029355965110517261478864094297906024347795080528116270971127543106260653322901432797491635862235148997035130164543461240430031394356773514663489677834638717854562488068874174531160761340138509704436457750718612838626767439642336920820949137520819722749761703866893611162780695957977765972521903602793409295137794154176974924076819306687781920538958289862921019969854190861231894730533165554518106973072677766565450226315577499095582073067961395223586478440196305152945784624026000199779983504990398440160253389080203955393074888937862741291943483148396734772067125414895801275158660638974153771940784680965721018264072557280998076948900852227593112479199338873246342931763564788896755960501014809482040131164181732338425479305195334443056470226015197099545759217941805708957662501604536024137722364847069909142708078450082196169272965255592533010607928007999682820877528500650436823938764072995823383934551147523256085379336200939325062324589211997484138897272904438443556598663214821097247958353524392632764978189643098079320103320473349856684572739151618986108364330166556178398370035239091450154112979578500798037779590505764870729199673753716862310025848583608652936485971035796604483231069579165202672091572578902669556071527085385627878898925591800978076418204897871514795311403148271776989222994367073381688244816957801800093768475267200128132799556588956119981231477655397446648389012120215524659152019006386433945326607713934216171116593913398680718006236002020180093403431835449755030732047301374312839988681945784538459462071251767332618345021711969082357705875743951118833065850302579143686716621914203358505873856379843727868786260322058113954146796718945280505982498501894329608795515004900937113831817798858269753414592398355792205436275897591610655736387103656677162295989162077984820115580427601557661037420849159019617195628769213239924125466769295986661183716826662407921453874367446622174171316704118004246472828770660343550308681153794832133160286609913650852568036509569673894354447932638719070167511286726321214723590541722415117442481349678494661944569422938386773085088407870608163048206826428018619303721631445117645889252048444090579697887989549808778844139975740192263215406542812282999717160509612147082777552212417320262090592948144734986391216416314341498548016964447574770954116627072900537763349161440857417567139727962631328933982557165720329363946624988024858685915751653912302119703527067519620112208764952000142108308472132411237804055387563491845404262311356286093390401009882505286210869411431356519479314560988028184366455079394836087828913857243102266487008243348842845675279500451326313234800429314402241637099216070631902204825773598451850548588140930214583158864712581606763388762739877675744765645035072093685812665293946486719014108057663981240079870336466577187844416170062670235390121867067501125414201699033629902367912960445924276250828582157444006484348690185581199777190088628312465705264384843877437179057716921343090002842928282655937201290455339962299787883828864745916028980544138173230968631457165041362271436427334580983137564524614643553608546867070346578993413441333538409711957074526756316883623422685994696657666843238734095935371374721550131716051000850561178727186668078558286167828147317784908041825813256898771213799844515001595320799954276439076421564909041173849027536015026946678474083682473000843709133030585858883404929182649618642453888200222420411809575377461124172506245887836716804122643972644938808077766841082479285015020575863669440579092259735169427618485628706280952278104697203771749035411982774769282327232779996143464115314353541362890233996830865291985149501290669008262685501578829968476348634392136424388419722836776381137252841620019555662889664483017007199010255580534286834501744319750696510788822895414463202846848706756000620125569585388299960897202220069764206138049188622717362906695829314805587905170663696903862335532500504213444453544870239688925091026176869054547915369826918057288350684998647685314329365700858298073020784586773589299334061630512721269165249391296983351200515204617440458615539814828864589105530279571132922416798626523794148558455848187797710279574861854333814701084574816357620305706073872408043675728058177714747185743797467908105336696612413745279284086235412711563114600925219876049105256433724127270969664458134437245940771586762917984870390361949668260770191964143156039258986815957794737627846122738261143421545356472315310212711713030631835915390688970461196432516938266323777352639328162318557788150493638199553862320107533183615303056691357950254539634706327808378761584294295529734222583495827170631691860646535395969233167158134801166300010468999359648807429676514358420059565741952219880811265571860894413783121974715204918763927819347436279490177666920623293618833096948926476063653540228564093476260530750122798779555016221521963552209155368354889511241763608716941761027341990132025520888927774947826741043503548857579811864784486443189246812171233257200011174038172580272830989065230242530118379216980964160002237964219204475910066351291872436476469956938111415266792573733002354478365914439417561573786264303889979511278743679789367515628032503527886528032746255951466641195971372890323069276296554757511160903388671174633968178040850977965376994172550822107148161503558639888829902229383943120802824537387551045239263641942111718803762729659795215489016440788546197741435788607216583296923450510133552522422165747687676698582818826166251138962158983072614736531481545993804101085266079725577642746356610385615760949483133036714135851429142009640271224809780215930939758512402526626749369041293476080053709712380011604626410742785745157519950061688740593793113480811538681072230215416579953788099195297727990083381601609249827943910630554428520358501026857045512619475500258910584047988879153062112135422572048302946126825226311683176265254702776966464473600484199878082973738358898175102729839949306232117521305672570917428596329483977048280681875048095462786820806133140862054637760582842528655766131036971969948556027623474601550219949632662845956988546782310947450181913300300027389779067527641874136078692525638466286104784376123719448639842171795605078767727208667943496651790220464239953640227657891198038590335847777397997937524099817105757834376506901412664538380944677247997479815670972096649444101064298470077561743262483320467990406374088764097392840521823162845374739414218433918172563325111649890442281886391114297796501779162361835023620399052988826423534159016584978019300715145076294530274764384956204424283637053999321010757237359396174930359554926609407276966306167212494114362125275732051467667301425493453509236977276668126572958725761482511995339586521158994572176966717572034135289869286357163400457399729546654315507838237962863525055868361665891624525687663422648113474260255530938547343656621120769552603472912421951618740103122460808073003908075782572455083009240170175025177026568621461961094474606812830706385897058755813308016250299635161279211963551967938492994362545959820613528621400246630606110120256670010153185495598491210166828425855294023242070369782132268927913639603592204139450775472681270237050651144845074848797257879809832731034112609999643435542696335916877795469032186041137370555242349450989587986440338277771340985136827854784009889874179224050887878820198448743014271438809698818702917111374088309146351041673286907759676900782306205258068565200744462213579438158992573890469416389803961903090805438163059454069059689067486972308988049545746406223776051722782160519519895748638489938834284775852187387198226088570041534295993819541014411219397540457595208909670297914534996161832124561787977595385920599515021312901952927318495742412442216020483066808406989078011299534445800835127194542611397830903475076655619751186210159015874013994263042513058975263174061735205266854299050761130412642750858127576115607547992987273313763255724164748254516394354955847151189228888281454802535866576793430804126416873546262698358758651443650641141576606068240085135944139153095317267860101393202554997279379096134790865723228145977706306510483063372711736663808648642928861339746738174865052716702295564719380150300254915702324204748927987600133131432235148838094787343415281848198852039019938990203485245091627343063685851469635254667664704874931207277973113898441980510675560988874695775017877172877467274919903511463465875438537794098612114491297069601050221807946308086206386021870816797424856691864522311719284369795706670166944929837837310383131264418105321257782784755913680914335092576571089347325232796424263419916587621217606665559846782181808348473162613329746688380264171477879051387107564711761012521362546915783200456116193157320919556948093547876393926130330439060899521610003073100888129964691372832346190505123736354930501333164342816938033530996142436201470288103657253598962063414784866994736023683632645304590704592116399817819003376323231499707932616929916821257579610330594365549912231726352968564328530693878499959298180590065288805864173392650762738953374048148187668290848488021940891687035051835507736682804400288475602923620019463777320549425159007347510682816276542412005009371493194705235125738333515912689853416939719225406157218650595311411397691498541314977886143299869004257202044908858919149720454521443610352682128787295803019592694071441596526949168397543581863159158706308303955524331620485074950817775174894040584554210671861035231382557848993786847304125531513777887843139222309363346987852239732774040925231630555938447929161224411448407358693957352626574809446549230517938258737196143895177486395814956926936619532950083235220961631847102059815192710797100130467253424346601734714070374011995849308005632640178517296349551290787322442254481732584288395624237153771420052024613737885974038349310653049450449838513609401893311142387231169907813345870603696859171061536502371008993173761668271452048255579068000749426785700162757987373390966977453075293233981514319574747240537006111754993856856989224872689273007978045514758115387439056013878448269134422208928460775376380826482251529762151541819472803671296359799432875310335265331917888544203446331977754724951529133167131594284944117895275420872493025348234819590821288958184199842061649608916228669492481640031133500279066274299000351565700882182002932637574836455705737912115920522576178121337923486728514755717948667919317600558618114181917286083965696526387431511667284250876192535771701498270414343683675781906353857909403545610076107660116502952223844171780736400842905918273300627850058378178345312387827746459268752233904946921059821288431271731682502582180160235992474206823183352021761232132478412455178382716449374879835232003105273775282918992878608890645158529489887066795769754220165911959317532734074564083158543509406006345490521015753534159360599400372852572681540641001545948186520551228622783073705992451574580232217732168343839221248505723071215511489315380232416173697762837040102417381708265315697558668289521517266680340560874703302951988130022617545769540876801646039584107321218105624558054010412051973428802707663376467826459514861797983142104667664153875341664824540430034503050293903696074529983594527281570037503027671995033574672740433694895064207641695460126923969895619466542325335081205814303239013744708444401098986061777425049548099383578964974874500047644220408141178997279945095805502492156693671768048229341068007180075336003516942236202864831562454155153787413788127650984724971240682654009949335410922237180372966497629682441145576890047131243658161910555485728651871241732537625507925001650530733234010357642231520906453847543926416155486593305423768417747779094630814851154218105217837249100238867120902909885747091761811190413566120465679064309351645606090597379238194714020324500581539530007999309265897142438112877503171578609287171552438026029231779877505534903888115268575231275600222803793461677017070646294952433760689264429295653256573572997558368590924555447082961592712633861424192039297486033546193112075586746231180924417362062416163556029284467705883000548872742623755476501755239627106331671565858513104328734441659696572214930951758910023292361414175452401067946805543066692923567129939882446692630796039082058158413275722699811616320303857354494692647270909809034578996223603440763876768636203381081611399921045037149355142815438179885566236520441014977099014054188686009988355026256916005898299833918667565676452012790201770055024518910835244786774898993324394728719432066238149799096726800752975626870894288763760974736541494012025323694060238879699313899821509005223322853668061092981777290488722381131278444931814070414291792544769064899847712862085281057397105351739008089861503055856583966196347628100125104347043891604584123588191052039560316485743506541560522891925606765580010047516249084097638642401007583549390075798544458144689396324875687523413186402254805805839531292472641409446049987682347456214228280604714629583950721111610127950837798048486307219282890285299220810976112557562494645849235803849027342572715579797564921522069092242582931085103199822995968110564998372358655992384446425604880819430551632992372255536167245480981455960058065976687690746297739693491945136394241886162762331814567372150089944087258127209218655713280317720705263522998451637217909921478137374113397189703399648156172190035909641322839014180061897167723691792868692986054422823899169849368142882521526269124391499038260934754653598671648141363153609705673375021930347752587058456714960172573201022319949819567771253807189152799804293427073295372438217027179517220224980580307015426768456815341095717077960652273867426479602552767193903201021702738481180118784605261834059789345975421418590160433535244052047404308249779754821466353477489581481769722500738878955859060768994780787196428024492161660020540718799851040235126571051613080812522374166799516007453870820889772209117159721971299232578281615158818775377631938807399205026063578708876336819032864599890794244748715989519844152770017148936948589784357248687941182538695447970510319496401095855836887668206247645427520558499645206125255938117628638707945500772727506590953768191419354086222297882925293159904802872762515666457074176934025936587719404461671941027962309071078983337063468100213451785799996244699039525141548165246888901570978384509322741256281733119942698650442987984518811070751083149961216460434182740759547080992795179726026010260400719732170724788473852328923536777341153515986876911170501289867563914823083581391571117430572053127343820253106687277438091595349293779253523721392577930233150087118445741045791704677131861445003342185779487848798534165371294714381171162415912730507649707143738919188352926163362770008089122947784678343849287750690513492064445401520530234006459936494514404453164770676307585453789329777126818139090488403466473595392619300186700718817617894739777515815434500652185523703777082391510191044338666280911794497173765678671080501817359018189803945400632180310066445380232412322436687455740644719884597175018755772037649946979021364551064752104035141280596707151653894081951958079956030192264258938870791177764682829145358378349134872761816979132211151698145950865945861415975963131168102735064533899314445269466658136142033185455739562409570143127112303070269174863076646644598591745067447090686541465434876092688601440559081256914221067836669306997318107691566697214570420409697244352785049934859684644535332813294227803268619099581800186707214448421017899924153932314652655025073883001146001355914372334932095302695948553665130717696247401982578724191933749037421775647820764005609311193572007127190320341600169221281967711062469728844952660606237469285117931734523745007102295439165462938659936814925266824451138248646041906482248914238244992284727777950006277376680188037427503104156989867776653279879067055926716681447716143140089225775283776006506884100333622097401219642447829037570033883397061710562249842411145958368271918251082746385321541410009167590650591583183147155172428707627398638639611750105492990508382331310397944241713153646824023380567260807899655071223748811049978117240933078785191108883566773188955808729818941646881914422247883243791926277942183929024346140982162873867281481294293275285434053849430129280121572666031018491227547813742938256543686115319566726679769358513587566491362332422960546292417012442302102527053280066727268391305404450932114124196688671743929556725867730951423929401196851988299545365174454790278738980999299620064225110061008052231667347843424779732574376179138438626956027845656824744227217254746891299577132185800775490879962444136803619513402487050315124129798245076941640760870122101555874261392266409372289896994482886696619726257582428185494921554203470219676893790031280708998172863987856722092358799457353074795649714634752609908712321006095876409043611158524305694672224344226015616417580336826200231684279617048234457181701756403315701828717056787765320686268872848644078065992786897098037089703894340261655163274525784037588757876182634495326440801954342320367541886334374453256190910506613060296233216127551780484330173065742982491059595833816599284583301338306902922472906724781717540310191476894311645737314647747507480280202571609743943280435696424094175782289344646606740880176262722479686470578850317163768775504506619953809391344041891401402087166963609267228629269308541286714966954938952718768364584817070312500675003369092292297518203191637021424546736637968813030326528276540871322761484904878644870217502907389744094580678074594857984696169941642337229412761640923350226086085516708800370724911655548052778158864197420166782953581160806165559596148881024754833493892902370702479553034868676401986823715451729970877613786016358677826207818522534223182001740811755035253660633098263486485381207142685193573400534693315712519022432418618634266333231331407658497101411249478350956591287432635535404165960797885210196035794344544853484117900374895710581595411498163684730301298061895904983694963400692846598751787922268841021998451697232732238936150003882192511533793701250325771152662324938164656580642548971552599550242351429377914172453941584199045023778338819778327109682356430243054282135854643491502205437135179472604604374374038603528416178222813590306052886253832671714673740553451315735014736635449349317195715327015640803422253777066685499315463922392146006216644717343481277447128064817031205651752232711466324851048723854662944289702873404807214631443387430239985825541656387642534936237649806539054452520943307545759115723216684371216184671185375146162050368866007941359154106158156090416644558707778539071079256595125376573119848348944950053752847553445429320932650527908999121577148184777416968819852642559067694615530881251620911416299089532649931356880420960604743153777829626738877879898597882520686508570608537745816145708125073539711495665544639181520959534691118659127147834682650321887838769391983244862814738645991296109246496036104441839363498820979866550481605109126145914415992958358858532386569163095410978310361791191622764862983840309056125562672733780384775459238607874533905871855816849836955314292824030274114649413466663643661344509419595352746658743023431918802510676194546290324188781338349269179933486450913111347911314258778787638086814836762113715104620375195402757930599714485348865596591891846714242113471504413368232196865908384065852509258805649826400615807860841374506166185195130560833101234631045748875014822325619932413075688743496047434345349857368378743740316901581810584322886836018600813245463543956754753284983655754047169733039876431005055215507471911211402648363004855562095502541501826174127956878802051413628964495310881350345100214395233006317519267303509461164912629073872023850492142959561864551134738031632428906861569768583402344828781622031522181620846028698921919459458216730092844782281575403923477600632892628928176898993139336588380856208167778273187612718262957469905467134526501812847547908239521151950794518284675482754415497528740380055551315357160229815323594217220769006868814429088765653155264073229632960156590389485770833819984688128740408157124063075385990606729874544240426312038450683873488819198412315310255319880086426706224451481238729374852572002993870327274009001959619722135729123860093715481993686612248790472760187305389951735929723990393504967640831407699885356052154349362229869483597412493924704885865869414757189422076545422946155826385143010953729244069883410849658254663230799946046004812914820337964893345412324793604362985638776402044139681883527106593699325975849507307906148358353463716242458934774957491032851298419911621011119627904949563714579981915066783052498947311271115392469199785850687703730952209485468468610254364477869439598231768363157620640498537527898131271761903147458214151683942312091908467615894994957973917476641552146098296929085035124940855880503702272053595715190895202435745340186189373390514426790287401229090321794172871102315407559479669340170902012991161255799181187204012519100170056615910866671747417866432475667224606081818233483360668189767467807911685390183446032178420676153287072106007017241275465605211804750683671056581517483570750310342757377432756138161828382007696037044595328313027496927368289853374796794488631651831348093836371534774339787555473635019190427563557205406854001362057106858220660903317529458633253217708981311615845432237446517813284179392170155689276597641717493390032776189262936607940801739908739384609168413594070288284971204194966228282084768733650368298649814858303202542863115526527091626372910238297765068279613715396410823826546591120873348471693274348789528527307125629313760556813104563593617120638168954274052282258446318594950452494490038261351394747226324808976666643976120858249857212422099315654075396461970597922424769013333992828582856427877321140007484924049281730687509730132479172641728646002935106332589068017715642547949602594193287550344474795041662640787306772594552487046361702122940256140994924715342236938623240785934989397295068082799663157778143141209840985882248652450427486531941282300561096708563444733535960922663347387637662837136732229291715555602312360559850510568292224206266579135329431725796673764166295498946631408245011851159320723545023324094721617471735045025816441845020422810840152848320501104421579730912212371274595019616584438523636151743208569805125593015922227956072630484501539489573499741821868664652206029506006033076818129029346242095274666432547063127012956252601417077729081120469069425123345065016378371394921768549115267402687819948277353940195388220467596948511214386976906296984370490606337443519018249613675195901553633968677972210508855755192318046816528269009228172864991872457346924190875834232952346649429234534468099953833255890361071091610933322296144741695754631680668112083687570519541309705679819368428659194490506719692668599342226855012443947968369615907004245564182899671648734318963037440706928771004866238496951193215734573470673778948093442084253719877755271767115955500700830808006153766633023150662364874763721835989706091737971937619919941448101650451026928348530337980676020219010975293357804781135584544886094507046256893248443488224003078197822270793722985280582626396925409830723775940315529104776966859637846891762229039651041343019388505743870442881342740728759394715867615560475721866500220882822782208472940281407419183228598581162496623172399280033858163858359858978627034148553726057210045426198307487748622651454863970032492568469172368264895336736788534361163813177733343121158170526459595098570249925470669856641980319556565387373440255937426155793513250685633573985586943467902904952771506396835554162805581361503313870099417927925588464080465561983870263653400411325494974193985426459826021004948509920166926681722223089678718899914201818333572417333216722726861264090785295251436595836873451213907827990918160874779997941359602826413653698075981223950619059588300902999396124355286842552962122351947731801841227149025415601065723854539794811128335588133320530129814455099099539858296421579208245391027064254538046138374513685728180447132732971650712238671658654394869267821968488114086906939678897827386517305105240919916541709517872690707213349029015084737012878491329088370963978524629516864171550895649344647341888226730294344883285480591881814234558909994869477146846166424064918355704272970532440965134794579589285792903637543106418862443416009605718144306034669981979666567731253544078332348761874206573906536047388540434548040143999277706280430794737593632859910151065294080631348345115034621963563030940113126099932009939942702484044172936580095073217207217837659385354654913062004660688416100271980623264944681155108426000443653691972412936720207522120628127161982537920303378616426797696939843950245235316289259018296981612546214842609607950039737350731719784837176576194541021521846472127400060108120698120226320001256462397528036220789626994477450241348210837709855654422809985448385289322364328022434479440061494567612589764636606352809811715179728133740984640154726941557560891485452510970094088197749729083740785490678882690506325633714978078568407691294460133695871583640416786151550378102778911987892008091080621999769261296626740750750529467626510085230623656420764522928987079216420791006827514593818948483720093912635951476292783431068727038769702733203906636675378947045652295792101185162365837348700521650118118306457067384500266693570796547086441850582555534218043294738044901768344854348958744114567242666687918628250635678421047538914471665690212452328351018722960401517063266807429066245650769442233910466042094898140873114723531278412557532427948146060211932189346501902690939836296675306668187698174727841545697353438216584495129201108262273010399282349510430573805975167723793309700967819359007837004662849871603815353865868513442189660523487050410528560113819801721963421501522218779695353768055779542491299920322563621982148340309449696536929085584378239149021871810982771073997916967397880730025172139608578237025507335954566687593664999040463080771294160297282678471820429710839716182109487636543476772859675636559580405926324519041863832714242810018289032118304274444839790109050652229054999957351441398226582933406154538197058199108298087918384277831668914424819030572048659723029102585187606998814723174636960502059867920666960270774340796135927017813394018884527369698682003994803181695393537626698099984334596198940126322522212751806049479939385162938677177045826726346583850222953338420515967369448867048927453975011856497318335629058287018860101392530998711318797514925732058208662110423007747136111368134660230360854685825847167550728540131001216633322746493200142516262182269681876774055216106620076341686752448688339312600536078464811443344053836419584639458942412949781796256214590245271336078247381029355572593362803634398055303398984270638908677419988908910558533521805619563388508823301391409159440322426368282687100615624728325714172004022075642851370852817729001480559119963674084273089011353754149038928993937936676696906667246560571713731794020588162487959629544101756145965389858428469349945196101664801317066718803224286834331244280079335405875715484669275267532028256386276114295701786052700632627809068976817598305907628272906099322556609226175488644924329015060793647797372080700295821917548324795279766651182566925635840727520741561215360864699491818718497931425754352971602792130012041396459290999034622901961919025458310912156565167682038280663549276465208129323036688482112599336747486171127029985451825742468094833632783097778526846248249929758663529279479622292865298280841455310779104184790603773925612835847448743126804168297073452951270113554197928297328509950618878841274776332073291693564889540031260396516945614950674490986183299694472456745343708702196873112030966248576365060089122582854862027104303123604469412186455385916355455992528259277813417606350662776800854505848415795327242067410711775080735575724088740163025137175984550732843245126857172383642934535415501711991885371689740715989432704817595249831436482770831612349990368758692388400865673424462895193810371750865181501222046387139424248014434118590918384375382367921512158626948714342258918213874768467110515906712173212275074461448682447494981031699069926603818493055146481748184025479385401006624117952080901777145575054046684691621403254176128996951048876138961333665115448465923019620555206599851415417501004276754675229796316929766683818765175430695704082972647833393586769520101526193341212747433989845553400996569321219908591893096928094602377415708001775457279960850045572375676006793338921347746561678395493964041130543293649611994950789338383732574262503969347312278499504898154930619766890944360014626899471236457596975728625949388018142498138185410185833631249475683197742276011810762907706642175541358439037471167809720086888933848895577782371491821150438125353986674881575988261279833579911753840294278189231511156797690963177435382222002790273115428060014181844139753212978798689357413077578121203891699719754609052806252418391614069592607983121454143097855661435210332138528933278892371984837147858112509075251031859038491929634600929981154343253724684081465866175255363541148251128897937536646383344674552216405461473910684717761555698071963714477618116443827274776769980831594462313446698766814228414708413560365536493599632349912740170810486211873236882199074101331721414514691322025412800994872536767161307208188089441814976727305175568654609812872630480281943103263631296585983911523799609234282535133297909643833322385717955907380613540854759114402581575687863890624440365969933509068440652577891490081581883809676539440638424362703846441016319696067117861015357817875026644735981545106454475404494360830443560665993786586746928576471878485314768490556262123479097509550053622470245137616188282036178233229873258194776266702479740319533182783107912230958386478198920257457470785054578809078349371826168489695407857392535814631431512522135145978787889048285158079006677321484419263116030324072504446917554034498739361282509766330868909201460069016629096406502144878458564947751460544126024724967699159717553653356139527083679806513052170342233357819886284126558790805055360287081308022832511744826177136262979657597534905089229796613050500461169107572949220459473994245499535916581485743699386183522168558456495164328529518296325993405193738956597120733977226329555484394465507886333308511609632051070777567344023776596422560406767307737991620656261922667264532016142377331071139970461568809154058189653975354446915743079040723499771087211236296310116261856584580608765632880486170916701933404807350361693878384596152513715605335606423098912561517699106676089157333846707323754239069069629015447817479755066056660243383603301927166368085179874302019013047722769428117284224592023864328230217390678046228783876352252047770510685575304594563005575214878164092122159896540786569310578554437597245145330007576826793433328985403405715569521486629123519860716918662138616712024780558098892166931769925984762787794946607022478502325956287747483377466807740582273476996014266057722038297242227626079664509989614101469741753024121868280071186641949607166708214605703484945501169587764577210407288042624371325239528736338046768460282115689513232655807885745763428808601480786139746072179434019936845390313458815174086361402954982284186095149167337906052776921850712672270960900720518151408709303980447197684629896305209572216171244226010433807097942638250634436082680974084953686349945266326951919118872646105166336071308768391281812366344042875018246469307912394578173993194135064717728934178863057204668223966547357679015188151399720422996522645890910343414092142139203881871192073547828230823402315114450845023810972317827823229026696685475646124542564730637353683804345416432352249409093998480918495268961698753614950132186335173794596463421981955416943407765146912143969766848777204988076415586836787515072345172890317078894742090960181930479889874673029681702236140661188257070779356952718339841872603976205866590654019384194175655272680414459589187572020845219544104891432846748476068366005695901902166041880412479569638517488617509032434283171324220927565794144695904721011954860899501251320219734400006825591844869453390619208805947795681886389949080492673789123605328203965651125191847494422256797485364081287577678862327759497590058587248925564793936965190330021758885591793483322809768279107850913601596439280638573329578186544953925289144109255571246603380837509909106098494553354046206152295929554883036888890445402749303848971822012450298517835097117555078539943686340697997990584273564254281081526686146923093056581302650736639932989587126163233070102404999444484502862402931973051907057377495136918056345819729030073626392576870974940734160613613642136056152765151397540915527937437039393857433652612757776838668248809621040000086003423015132011935182950689507072679264267189800935351078547069478651653011880395344137925309337466811055542622199665132335728430816315467258741765923663146986668960610030463515499872172755043962850173967734003296112165792941363764130036258245888797753715786353172264062961882571166597174159429004257953270528556366775825603804431292703909501113492409780262215990404408005517116440448031249496042941592128582228994352247652985292037176820373308143284899262006800623690625303437590716895075731132442519412975039681712190405440422160902892842229155789823861726881023651827314429893591334973220692582171306917198898404440051763152360683683818209782416227914199528143788087724616530018004707170161515464534029673531533241977410638800633216573776750667907321725419134092508145220081755538279705078267063243810259168732580687006724125416200390356227222402012155742296058799706170146804712662541105101926071401665472444257865196179755734806094215310562882023024445010023944530287513741662578986999356989689810173089340904381125897730152282503945162026958472192033946881330913719364204667754324695065347845400940882853177242366361226336514849776320921745425964426926522275482527450023995138630086653631055862381944275086504808856762071002216244171840496890408362669880466619298099274003676778072607342235660241579240159162687757599179976912282543548222297688895218595168959960790612931926792431031572834003066183162402683551067230998044087076139644415416167593282663501532685110600941730025125015147456250127063605675620080268186971346099962819904355715248782598663593349514351214383933858901121209825969367441961405650624330941149442377915153911527668650010988229272041048905504569413689536438420318431548186163018160253488740359792137130962057951084881853527434231009950602455373768404610803347332824825610789183646497569887891842555272840327762572474165928073592239842545354191341625595676193044318703695000680663943237879436844671284649582103715902265762104564640793086626803780986941603217547184612751387958866678876795814427965851691851874166632995269438607921216752010211893824466480934222777645460243476796491669028597115821552952477441500074033190726217371015123063745526706166688331599984984323231118414149371037623617758650141775270633067178156477007362677918676695872716815642554708641988260305281466780881635528428732366738569013468900649520564325395742343293385098323962086944139857876425972529976512302128989831841961616447251747109707580461047596731760310158360776901037587010004135580963656865004644811951941313870430947587042121899477270232473549659536788427192380077297206902381034032137526777724820457478952414005883153559089295866790278232063695381287356752274586209920605105751878532261449713472849288444112705869464211031756193976291393198544964887794461687576894183205767494461768285024046265784403002041085782360460466551633057849889108274225776143107970636344361723648150783068884041522375918368408660575361749190916910367556949085758155845720110327167993214593307724768952784517223970569493657472208146842308130706143240586029733634494205455212625342609893899918309024778766933520275803875176595393934046974190564967651221780746437843060399300637525289875508011011754358768835707632061064107226653053749101786898301466215087230601276820964746525729934979077606035731053906505922193306612953801843484462973162286870717743931786629939916026092033509933531109882464861627154242331105035368030341116602125278757046668326062297408148768111311661941085205812501982155257559432245565691430986967758048168828440400132660023552824667047773871821874736859048360790371789807418782772499634585815643832007136007308332183653174615183459076050536643004876048017834048690001252134781355903043590509150493020801439244536319380479214149224562538685903207384429137057805184572774723889572311764484316703787795548436186240517891436611813461684255597727898012936811635105538486724333370208808281157884558309347993905013164073709595871213373916989519648946072725203250860393510322344296690445317978472702659909398343458389497462089228454819140600040096315324636474426337335599025684236518389397095629562624553856540005424565769945035638279176944882651803127692575472413841173237387216742251536879027187136256419336814172709302179561839061925733695807175858521580779777302350183105644140040245432462882854026812407207378582945846451638819405525976194780442817556188769050647636103115316112751945657497677052515065496132409463791623333713302809954408520619884824435727362726675454623775615711645060647760584020986471857597586095544488001259287763308294892510833860082355381112010682620316411377204665688770875474237126470159766175069244155162518283251129079361673705921347306030402165591933521677592528305449265540561555603094959081822206738995543903174412126180273486629711607086912157108671014890552033026996556246046663592484833524660266895296170809774356760594994856838398567430621531681029916180671039694847243861902094771897202939012668617389664767913361074126256600538803097975417551435571047631391372836142052220807778291737211224479063255786199885899075085870466200564247890004895363975668745115831179112462254716118952112879647181179993527929569610354418594602562153019244541839208360424348175840863981963030192850911888288683969131956838018749130526970279116239632933668484922577455183761571977083947595573303947611757718046026472268676568633716689015633796081418236889251104924073366127063446119471738347357303477936448009418827278458088060414827557761793959226322250785521239620788752547352951504342843021878152569884311498669487876180284986406895031945267218678856644800820472227153830744401813133693361139291927217392205130196778301725352138664969700028750752174168400358752787564984497597600590528097841639509376545107134776359015993056345091931239852920937278216768719189803357223546329044616964399827110649147857420720561214958726934860523213403983944318751429217047589940388902680327481470719256476295409421491655728542938811609278684325219542676360317313314040627070976485516551967419583680703785488095882942267687278649078371136463090467819907369602986077457424404993914298125455457944299716586467502041651911465659081670956038211854183589209244839364948089457400534663782308152275814723306870766902685766431619473571923064207798964717427438302015562863575005911059135442621486712209636538821482509467128929773936757984323081689684977803903943963224005654820968977856931838609568955191590258315006963915292554899468375010779227883339044633731768116688211130841029756211364954582005680508523649595941922925772697859208259941210852081639029592367476313914810649933255940262212596392639680012447082948707448300441089339521302700338646330092011973636580002829520200695666541540807942490714692736574780163668525869494534414584364659295583135616525956584952599613675566450525028604286423942958600017288852212649000434909639136377555498346702623445727952796517471815897151798669187978119668018690884697659278572618159766973975262915318716673806162266184659848610409933566916004316277054896535818840317299627964388675599197101843999265549024742971534271427989713417566870247716586046336577742999591492945655534350892217139889569558957045445357574199810067152679753322505000216504001329151487919291321220612734964526237234733517562672753369368722134540201692262909373750645741075897817800232390409155490513367676570519642262411814632288503485541656714449067767724144427347021823381884411706043275258310154592057119894396833900579157866217135804527457274840436693477906567332601299380545996403534329235743800550088370965187164831398154136922383078528016217483554037534966138234245359610615252743821751095317304474616571991018167062939152043007779649961842397900722839708499894174460795510122628429307768202442911722131029439368972327103506586696263014465002083042558815051063433638426112156753928922889051063491553367147050346453783074997655861293869803979631703704760362004767670084619077093792841879124358469936747958545848323162285593507815193153097248911434096874945414220966174545753203932030120558483841114704267068315510463526471067049885469056146368588136914847838086166988094085914034237243629571128075150764882761481392185693540278134237087237244077894029994083088768070116259750127126685546159180740049294357045043989523616842018579765105545219220471192626207984336529306433317531905638939432038188916975928439356486973121095318904541723741601892714714788206842211581529976473119838066212563196348657229062311525763785938140636524495140174552419973323122660902100875499713853176980170032585147066644341128447972680369160149907257034739305430294278672108297425774068161698412531702961289521124571082496521037600713304262437384098195432421550852173185748120268457375550397163804125051200897583954249154447893623284840190512489831464606948754561610640950603029497300329767808841112998559728803698889854093029639997805463872260528964594409331375628987649805879473499553624087891271373716433108180426462542530039252540742033432738083159198983956086012839059195800196032480133361269143478394518567563546376552781781853529050258024077541356758437503654439585407524942124547472608036093013769507700939663408359911526177076542218199842914933812852341537084563507597950602459793806899537572721276901196664963989372051402675562301630206117525968606356385913965854455182526121189925503660220779309968962396691462497323767571637927924501686262824267572543916627393440912198028925660547685205665445637153540270179190441620959871542843239314246205134680822703234149620160301435510098031238108923391614436878301194774265873215191483543566744704526734113090068266659259372372309322421893544474507796445765553943997320519619068402271033349299576125372196201014704673013722957209202837503765676372263053957228576374237722462778821398064368971903583181993598507880085406204059949679149886090263896901625708458748923385244919057356166276943615226984254813262284593430297384341572436643349028387645021761114071938048493953725729401307658260212047705154509991038701218275081878407420317997258077760330852243651810699868552381852172352114527706565775701280983117404716997879242151112867129265421988946585211032107485271863648364991253025480135618271319038609554155869864808482027543195172377748780153141245952236645402952477503183561205509882383740369201543947992159920956487439557825501320038329115567871368723519474199420059096718224326348578149578402103026330662008277493038824791884037859836012158277765600763391681118636891527489896769721307309333371789660585993801242145257935634345611122600442702273433872139811079610931794637255738020038214833937856730519199035486454379151033520446510890021618091758392022811494242278624493030196295068334033846107532741706982059937692615743723280084013889804807633609453560655987617805355571173904596146600306110536340781933847201585935927516884127149731134476393537377745429508482556728885895710897779168196105598807928489282689400422663757520732134297842636555721060264667835177795948484000366954467791889818652302836460305953377792180812015216821417442292080552914194812341535579125390912721485764383958711469202584005730376684149853075023131192162039830601240410706566351985048740564016302497039542720225576922104445335709158991794399090194761468154754377307478458306115926539650941486326948326098577587393813495067961719955496205229247032885784179072865489771547379044975909599094877483945642525956563227273535629005182270609255732798293138577760267115955280107919474956894747313012620428529218172998724711560729679816876079163487315500570161652026646569693781084888958680334415852315174800506592971398822850476752026273537345472139026031610369955175155416783842999471706944857730026035657514797621925981769630299930265724046978252677251625034259588755810575633651750577195294590726555708921536628370746617982439244662584119497851577910989000737689825180884617176080890538167335551762058873051867963174510404591616029952004854720401328263102417239377445716297594401676878060071707426848050764623979345909267952369841856605572672248749455484351301074176096374208030356678480453115798432603165303864271358031488043492142622380745110042052382058111696311203522585298461068874535621227347711365633460737826316128880925318970809858726951760330175396511980514008387256069367275014760281580833253233532076987739979058679190139618658225866080504573363049358477534925669479448885527103952217371728232615638044881517893170013716017896771680322245183271660632476810687286509069421755033821209868159621066705685375989917424474876309586586288558638551104198998140872824480415118950367637866587797419106913839809226747148502563654056109048013054018009391648390329305654590861260389652097056191062074991613514896236458076527089415680664450356153290414919020157395920431043062066022277122484453136158118923364865488935743743003441121599711914213727861405352533241899209908382593356445874455313600958923782027310102547639951825413634523720659198365145974924706137203476300645459520924790798357458738554251832166024860476201088056020717016702809365707559937313353145500027884984852755435950283346640255710224316457416614576220052121289621699609537255300990430591291666002138483433095396009437026688321718507213855613220025444289219078923074495786193389934015169843580212640754059688776842662186380599291341636338641587865282801781509247457301925496787407885789547131267754240454689278637700822465009461401319957736296396289671690721033726454363963231938639824290232114747719177968418540630922497755012305433646893182062726098687160609549850474463017681325018013241838901645258843023105124886404940546740106456772132230277675591661151101649553706458976800667848120132378705894264398188938734112480477463720275511865044415692556136178129992965292971131101516943065311267305067193789504039882844541783687296393889055435474031651995153086815117379879255807832053435126563617477558224589798975061216820310555320458269496312594391155545466246543143389622336256397329245279907857917843831437370415210276319686722557088573375086218438814373652107703454901422244805753449940507074815445195870248053059727105048931686676662646899821880140816523074297676288748321964603043463387450756780243825739129923238582903792781783976351744994769847635915746080707047476497308046662948216329127944047289862883893007437526835172378292532565252219155580329426897675315331104848249901386086431416702438372558473513252414285454475779618385152985056565018518479491642720519590770797072319758704261110582633920702150684846763319321992641803810565571032022290930673372222288629094114491367612628470130187195104616504539899232060618229787886086992941249210816914724939887192612473952663622293302500776093568334628988233512525916949681418476061743000865372380785123971102956153376738040215051173415960356178071239469651573571332793251953561392760530757682647534345813113936926151678249158314612163866621448454963557761957787893114179364172866968239553707087631091269241646218569887203270694235348412936385903730252615091532669379602284940964934650787202934037885456103722046911854616397111117087641248342088949241044375115050013497853797472414182547741041412202196311884015839508962292212540675470607693275911972334189061960380240466720180886583534128229394166748549124901138697370889612286440828196425207980216714469243062819731333429456491510606796916988276545660288735734594191035163443792300741354881972957242493971964566143604322474700307793540413072442587053848594783512525995716105248000986109183152268268101168273910977965294979777052315003304486302570683340160619665817044032080678695420913785278961100427632604816174277325308588153789038010377414727301533215970183844050351739884627609083676560384335821730449556989355238359342076526538349772564616317170479283080836457120112589659102150608163999434139981309152610026346985972339219506512054798950489413095613287864566772001833140358682771718778327625123488600416696279384352081462898448224669314607721002300372069273594490521064850046983735300147875928524301190658625670315364485831661299544906975047246933195176682042512835257118085972449047012623119999148165440061433216945239531610205235504732994490405557801000763150567041917235688379500699678694208802914710076179505109700343103616540519509269694318729526081016226394336558005432357941449163646517082220588191089169579707194633707184704253600719858594174400882332364906581711574946460497921290961504310754883460294222644383935213089436325886698766066764907172094667765522651366602915331641761234246077888107922761180529790350591495314645850253403798383860510045802023609729425388117953657560954364192728326353792011975614347486171237530794802421092032998123226938439333165552287249249976262177588259973893764240815439435145259749421785101298864624076976161955190924285695076692821215446888714735484220136070532456147538219041310088353658090480643681046327979157888470314345663174188581741874137158654359948826018335849550016445193783122058781895291184059045997545204893223507482550000615674920321442215230426826759703850252089750495876696035399179249068023521911760580204700372868542313890335274495651530959996697696440056231543652871747999091677714504881211111936374864864475181862168005415546510744100722076400823646561852230389810789477488143381422083708727693428133734498490532609184968003905366833098525146741061426431959110725896375736433664030434920888508101966894526860262716131803632335036344796530915695158279799247952216315755001309828361585259928982160483133164953190682639214230934771479896086570226953190974667597430107863903990824921949638021157526421210608371497119248275472309782854515165225341218292389944714675510242091432366288965083347879689918051629226259890328391213404260521556712802536436618122093405012564205097832041006690553893776753770254915484882520500517239813900765377376153167370973600266369960497055811670342423274444963896225232085405113848892760081809065902783493421467278239701096099456483693026874845339290364161903307137198416885008297096791689168667965929697129383793837592866269744556742193487273137650547412294226247720202178236632955567799146514138025571980410169750892284650733235876818521939783236205071185560211478443381861888141310444125955815846370832761813120529350209503038937536231219543679243282665324501208166624942098285403791817678516307528160792606371562950557959271976399687021922890649494057953695671028531093782746438780661962181589543253346793419288204215213006573408988438300021425446438558083695422315044266965242496058191956119523893915573698116760355149397322002403428705802153494813702990095810314153895144546050074381529032223097943639704746726056899363175085408948045935137482065904203244798783320015508834377972518463072704415618021031129482296140760866241544510213316824124855083531160750917736266810038490928048740421606229683693818821226436897027686147650725107895624742692747598907219245918158706369947408627086323455760880244650045655756494393472203489817630378979675004798351927733256616063894417265065792862085555330949682230820745904086749316447628234717819964440245793105287212880431696473805920346596606933855400204897145560217714849639101565468271006187021604370099746636115579913091317043859606341043036958836476390166274321620662308755574300479146585531602805560489051544365486772176710246799516741773795352114183483046982106949871787767187066060171016987777863363657888529245253429577238670685799233870728947180822122846516227440939390283175522175631184757585170540669521936916577913185974195106781750592529389012056091644806215947660204884732148732623722070848966407273701517391633015195415538008561553749412958019971399955531574797984619614544723381891479841498078155833853952817241843370471929052286463140972258110863857159933243520019553629272148031113816604681416117408606017627805107125066231343912699949862571211289631033001777241122011766091099351429781453791365655529519165169636628258613526513089982490856682041239433004128351945050911863600998418727002370320582323797717906737434815407936411760609137384761518176093155748839939503038439486384265223714142586202112588903833598903138880812600875891173380557270142710319679170430437152620898342112265980761620337500082991152519125123194235176088652035150311565077040529987573958579634131427805102209121802491412959166663171532184659349342131899899928784210719403616611109339128704415997040853575229929005283892008639653030585155642151324725255716887915198239419806542782768776096246009199914708436370644402955924770949970145917677659724700558975989028734136017243205340302452527053781496500769687148574350226636714627287398307622050157581258390190910076700571847748904565189911180780023079602072886618361317336426630992446618221103665069308787692124429747974679673916066026467825334015687471950366942065927375861945747701245302360166608333976728273574969611066450229735329297540302466364606163484124150858653774277056791480242294441518456843643671949618795158665348229921891979954163415721249370537343917190384355784666458500766584399620428239161357584140110256827310722114117170857208856085582309605529134475769633169741609709345933106050397193871042796483045039155489530580485666195011430294302296294791736647145981663552916298920108811145094529393338824256132773579994948941824408740369083085487329493993985523120988772191167038873225381975923246157373896441019288932435116462868596912997506914020584055628189954019091387926119435698910964266825488381950079762726882131020129315317155124771484699725657051445694956274741346717954011888068281052029700449283532307980232899086160069902765532713344069438484165660273565864167123696890614500603717763490941675241207720348321703602581982342725267280851738924961087849104116684847666396817517009710639575299114146072281214073897137144032302837619858733291694338244510391384120771605418053985537294972225120385142818948219744913493403927680979144985472318671282785907819993377334488360039544416333538817410920159762409845717588511149415730970946629516922639265786632907584794867917074432291035683018081974816029952336686028113788584922894439602911456654704882366852627448173516560357490537448440809003038663623894809930157351290921570024513743307785609362184465254520826961537301996351085806048893638561840071953610807656754112771978413938733002601022177956473862911702449507207536505078660317235242821112978148875262143715979149533419421892886761351081945714003463596751235301170255748782180583843820487187403244469940141608375455578882295471751397171925559057518049255549923412318563463718820111128225767206945767771263765176808095843779652517901898766113951128588211406514119186895973346031136785793891993777000767798732433955016442604859308542857958190958790652149281359000364057921701631550504744494108208943567443847756745551538442649149677134411508104524520902905827295462353996681262619883224527838885350914492323827847396828481957436068097380832562643775097597771574145966248524937689845545773445601437159050926180681330718272544969704434589834472964182172232963563832960516756135112289565229363518270637555166818722770807753586324245848131203925173318156815627933166579526292992744679732151646655253815940552407597600093159446409793086373995673335343753520707657132711007805812984583348925898258745261236872061685554553983828064817993435156433351247471812702074379847345851642653158816572356953636166696028104222517167683642247120296289749515617174373424687234497422019227027179899131312981991130213835605691006952872993660144285613795171167840005863634617387389558205863743869153799588799486272400634845995576965905070294853635365521411456872742254144300229666556907020597650538180693738206317024995106407544004386217083202443643487932077337972721599664285111460066493102814826210394962094572192031979334147900402863114685408945794986823023456351234782798738814258293208763428095862657355693431329806671954301784262327023054037029354099322462966678784341432097885173845331955574922190521816836983920494621625368665696995023782440597672358298851479560631531574349986134071845728229208922866508339537805526741662459627495225453445582213537282807859426679055411405252335806483921050076860786695890153927379186839844888642255441051760091191018681711566797263456541647415262877927326965993483026243948038823263414932653527097012741355021705337990561135279399318541189483693810865142939760604451679700355050260349836187906447833995357550483968564808237229167036106687117037570029004585234543282243828994706147173101828205454311373820979863231757302301547552645064784512344689786296492737726319803161400859772634243412377044602522952823156613605408986441382134789998517493833738405613038035739030649370893643292705104916325344038229906310139891256115181670216418305506566099560758201505961277464192607591292573142697681227078382873782151258669957459096723743628272088666786827332432599345773109000922044405868398746510695597994992180137010045982432281153741340647383826054773737074443310836362485504228742223668978434496082146496034162665427495092686298365473267753187037308380244570912349014320090657567005083851639532143415744706958775894497100359170945615032828611838104798544255460239092863092822054078497383949756545566126236507021003056514578415845499375523728284419654389439947525337395655241646547470434669868195336673605371750238578876943470230706574483462275238142053713687258081781977934881519819844870750367478692459994310317053222988336660509378110265595448270363037720536437447438154840613073534181673745431817098601688953825177420050436120819222127531315786118168251935381048700222038643295145303374767924070633762477194702010527386206088947008006301598245728568554695203238678734798414914951477193353105726434125439099242490105333649135656285019318391402623777345325630413051469556674223659125051815484254182533724789206160851904839365258637471390533121017856747219091987536466457865477382129336749165070237272176430713702895786537333018539295773699437441044132658396787864916736018466545169090030097463081264354963277344741631840720851513747161771699837318582651837116191294310154320336714277570385695167689233957846702583654192856230290880950966417320211672006784090223436551161359297373450384142920879316121629367488275669676692250829321781611960080356172105295730757226040217086316076327661522795605141906248490700352322151181540204206412034455306039330038310169027688314739517287884479182704084879442384814247820312961641216704325290107150586673830375245898294642913161856628594992704333023892846357807134461723182757698932704368470181630147581120104004653658530457289650831046978072880925115165886219221479935419095851587360596144454424923328127386361508507400710785407644865732013775592446572335511407205793110871655019465821572628923701879600778612582967751156008609075841991358447324033951986859974773927926238007887872226781877483640491753098798326102127221470947617246201267812787698990958375730575766844533357248975950176011470362130007741835556992810386889609661552478552280244119290915440052613038334542727439097622846567352306564726216620305667683902119303495111402244235479859346113063185165155529324020741669918411468846314466750822921974209545885048135748282157433986295674876697936666070506563159280831245945212826006225803003605734916803022750593759317945167384996591975688184944193177833345498886286453284782921252839835628006614110958098618592270899400973898108024136989503109745879696386229026042653950822679310864363549692474888218892374496206178354136283427650541321477353403881851577515902219540183741991957042592864566792730464011770656531375444439637248489941010226170540523072539711446908208702369473572995354593812883513369189804195029059983901345298623172886187794113485233573983438177020090157979476051903758972599648774162760238041588928951580024321455526647521879279741198099424715315353912726506849622493973931759382468689061816981147795449733443678826346019059553728863352186340310449967351307042437150913792992523789596041840609081702496936231772674175067051449535367385610741523105479450111860346643446491649568432233293821760506175872299171649722206620337308902096747802308702899757624832153385666594721231754301531515297713845279782739361834345302510855597468700846238285169885702261727245718308068951464939542114749545680471507108645821516103783890259789368189680548874068082019792079059657209043644599524415590858689745506239429552321327048304067031262928889745813593532341616615122762835742776153177439016124741942213424177948077781669858256858598493723669244343569674395516735797572950655860079764854459517595940127238918662764039364774210249224515253510455481285219929933445333670676923590042071209460391985589506880175990342992294537349783297612268278655019528642374103634384634149633873131489234549369416769336565364519931859961453786406631701425585581776836309249239770843343001532042593258240500676874934289885991166560948885473038117950594276336131123535528672900660998503222468060245629256483855581592764471554166042275624945853114918151182632379609264540926662097777219869877741015887921365666059303792684327285794323299889360448763691252997227946835955490122645976612724834153635163814079056462326560074093251283547714267950141332748453868959989205013651344765599962446732596639583871272340091117559740476601305216243221699332725734472526484409425879679638452793913324360199261208506718803409849005557950080270981671861895915838609206524744560505674122472046455470559019084340452105966660462565566446423502911297476354413185210402904330954196707475704024963141388385390895120495017392301304072563263775348527256947058167894127014323076592841574120556492064677427529182766703200243108585740993839918622173852977106078952943766280454181111830947770423693028496602762883813343449141906422217176477689940125460760690408862994783563435345258175098643232721320341372266172274003938224827071468142377606446237424559108418963461467279225255486396997735166235937488763750435575009001762337791726854710663473971519519682852794243217778568386700558524207116433159918600185120421026101371158934212368387674126472559987035748313030821805186509838419821508832563190765587799269809545066032823185309690201131022381787823053229194240758467551857873718053976540746019768338540004354986443999561474351330534097278111664337444685974157955201245572667260825208752898439509498458457277894358418961645905809630824271446581113968220921305764545211329839880045071372232410855825159640983865003349861946251831809960838950202034560280320162114861701387233599262910874649047238189555940720551867384248924948222415864371712538578090263916286054452178294341758664293434810753523284940121031122641184499763766549976023624944584253517577012170601760926756602068947210271214151947030410377225211307867635053604881240406497643163564381250936414958087838059031303102230385472922983663884409465956321345351786642182280334901985121248214325279284657552013672552315766653013670285663003092538080696368144150795820264156664614323305416105535910347427994085560126339337522199416496085478871831731784874371359317220941808073668594826309805679826418884230994556427453874229001100464810531191771892829564905734277821088426787792081049660448886615765938685353294880278337640518546691969057075613147335353320860413985017844354168537752582922286017470520918189611702243721236980571827202556705256144198482508205381286953551308153581678587960641125329153279728703097548340853412018496862244466539723904724401331314598180766466671000286477970454223847950761200462285210077513622693473220424268528150038877209806851786445949648237426279352248954072782009643768256401683848400921302813725391532647286967914124757197063107685677341052059501730025634000686266558930813671027297545886959332154298113543128975754280841231422087491755564382219819095812764689036118206704353577186701803613680372314726544628799867046564255958094729522626117718381401707433752051520800933779535515134600531453926614761141126548346711475420266178814602099490571255008075926625236338744234689787777623677525331459632737106948700682950184479460015475663798865433271500836286421239446606667040391582735985435148242593725296956548253519573600743801777448853615907294055865741350370442923362810191710235147583829534629774227756489309454890214956097378990057705281109814309799404711998258205539347055076967755472963785251618544298896112930368422553050003587528714168542252923005386697521158798190935663043723662763975536946596369685398280529389732365804985486172612850158865702101847534177216695370550692707745561716542895208787402800032007709389786604093983751616974706480225468328229979474258342968659822056884309020971616556076025629068450190994845049753551716202265501340269507749475845770805545928685045590732142497439029527374984553303596955676652618961868797413772027515968075837041202651859248836505088436935789986903828599910019521447393754361836167405330843812626411379814452880292843220207381486629852539065868931939938904747987504519094651702913407551048851073708088123206749763671279430779626354778353562288844482288881012031463076124031051364532200470174808749472911274781669319499436430130094348132151825201944504127080342789541227226759181116641245164803948812919381371185384812627559495683370773232929091197463197170607776782545402843582363081744084634972831688817541991811298553023624589319155560917358394388114352939190664491674996811503460205616417302143482033240246412159399722039222522667667281308370878041354520367153929345916436310771518354948543307407913225818716584002681520113591386382149616450038249179931839436525586838983846239026809833101691711480152833486869564210638519341777160615191381564329644886972869133554686804615196989868727886074697255512416588340359175414234958374597777603543750733874969279243805477416809622921328387758814165458574575204142522908367585005430319366602603651997833721519195576383650744275792814209664066379547710793893254413353220057821253475701561123791692812604518920160615587915183839139699300667941311709002798851575732930317842344623546277517609099579834784916254575671317386320120976725466179406032191587925339141052628650716881219701471829976474206624088768523388268839867366267215097697077393089703260254092930545710721581930620089943399269514079526183913229343135612257138469115043523043881161617108038985174998093844556145717341818451782694593185814217537247031723847750242359764570014695911129217363255516656414538537531683942388031264230795573605840221406532126926303397481048211078176981240193389373574143146500848489679515585547183006246124673152239017166804063143433300882393965124429872589594398317370306961466088030105960991444064793786563492553121161819924073402665810342285232802372744264956556832933368639893755712655451237886780697629933909973560070565143833705618032115560862102922598288824571448481036211808585691801351445310609804748713649037071082205658124682456824235971557160860218007318718050129257941341821434869788607874215401978168342839949789063552363202552446993563572493138229421478357469520415168173028738111738952373715498849666858834939785532507216169795495735670733767230572433802266552437917843892539993240012800941332627304975661633940127117775114145785730526654903983773698966020019493875066094447853642124593055469698735450163048873946615971486716276391227246651877142549086450581268778804871521333936097190603829998715979274925630000307065709424077638936884632122542739888795897752053237294138999667191776414586413954597066978928988846108125492758816790732947088395093019564417170629378970457496196667965375382783813836561971897237708422171436263830188488263708189842927280907580602684272820059449646847486639863740914381344896514936986801681528182128473062458900602529723987291658366882914331663907516953922975258119975222338608250771094315023172146710969723494335760057156380893226689336307608249998622518903741237887475619053118859196460189588586322406760659537237559300400430345660755352184356479043877642906820786752713314474676371223136851532202995851561963700391576449115851548810308776731594193650551428590480421890877832365466981991667386415645390744222811188022505347073599519596953403823028061374989189247884381665121391042561822177720211493708012859470966526165275458076235401589012284501142232215642692562033539163102152885932557268193234630981729434425769133481943641468621994949658664270239762970260027140960206807307984238326016335745120810556552788930179158639840364986939094518640507697148621685046897262993724929383971264325843036109412882345868213324040988113066734747704965930328765258479549121123077651688044221409414843740428500196228585217392200199447533166972555473583471828432153266028543860228811159585136413349004895548286647191716040367880454998990465253450954772404368608418983865744512290084330729889167411306227695699352782885165301089880265272941775739771858841938522710372113644736022515490723921023381233033130403757765406031126591643442803865325372200482489338227624643563549703716612155816514248566461035965367684011614323849722536694485623110719356315986818096475779737212993158599575290082066808144534089965204749148349144608090072751860802563450237051905105061072796108562793028655733016449660934924654758902368218997789110906668140627418392132266735944638534566424664878994473772792908175659295087507411779459283869552665523168626029181537010204999993882904228410784606594909963365405525860018432574532362485782462176200497272346800887528691620411612457691894534357242792740392665802258527724896953576295282722030942834100456619766429889751645368635963892570266916685353180284438773814977163957638869571337300719044300771407155423604207727562537051036325372321060446880880524760606793431884135107019341608257675564490861434836105759782551339686701268733954043172404165593567681317033001727354988027647819781873644540722291034690009236121279816546233318658370819471920057619001032885802312661322497178999818679892180068096912160918145120960765867115793680984217046105024333826955775704483177534813188035715480685949081434362253283779711364370133485275933929540800594804014197173154759432065754091979316705653512888646635541128316045970383165801109619996889537150470133057464326489216888900015529975190852607718974900087886259882616583153715948433447280537404546725478654862260291588858307860460718593344292236227142129941838486331641902392469448522576290114382395617420449398172325924458436115445386503035747409846761269372178207270346358852406275121313318929888545329491479609198822591640834081133958067485152114822285441242767480840756866177710405918315351791346258585064949918468850792794869270811400379625911493089559325377955971362913270443624277266368927679929263844417682683576654283495033590115392155339749936889857092231627271510085896453818419426274167480553323979376772845447117034404783185559562914624931224528526164368727123079889660155356592907010545260594591731528284160400744580888041205779408058167560969632302192887788210167380109161224195632307104137885872572742601775293327981402651684681274475777887519959804736112395611934860476047631826506052599174899475642551064065532482949642321831876237346549711054342760319257864329982281000532319960899490211118883138946575633903071164378029342184114880979937005447263877449756091333306982072495153643355092742923412884074985100840495635672775086401596348690643855874499052704759609645404506040992676419753201103506540864950663312306145109067945332580043427427995436619601172794968122773789645951175812780070202303153975699859520432707433347911924993648477865081568898994242158781876024544744290312729365708698097419307059677156656533452135715764876657597168772868071723596814753985250748915967388478903316034360015283338135493467319416403663756868060890041283793082259294384606184703518192994980494316911686686690470627927032952823002298689787970257817026098582520381331500369525622014138126081800367685404733959607944617457708827425752250089495107102657069080413712560381615811639969455504453901704594460649205620066977005312022419963869771640528060029609351954027290050407380359703058437296778937663728567551132758459138008669009770430524851368080449118040578643355140206754138437846091826201315633839084919207942764658673393927822528384991684897754176566870002271660459005405554853116242604275204645841588171760363602118880779321073554449285395735774599795662056629106558121919761905014842718314625725145607877349111419775960127057581767918938640816325303922374881352651859260802476138944009636705095769370501582225501675856524484889946359527627359715574345873114596454619106208889821145095478316042968929647764952099216097820788239153807323431299893485489533062958377911851826124657213121076908233398195112185714693875221688492621469684573564935621906850764094001547195732647155354646194184689694140900017300344076073072423325711955376190247627121533983395103013447516371458353630920361648195935529936322635240505323570144900366668051507097168874236786384009090249811276232193093724898244550842317688390051340408887400543063728689484305829192514700963475479816717791591051522455982176603516149312354581470761423349252400981941613889485894388581818642609114756947193734561369059750034519417811105798309896077909531605895278944411808158580025604776620692804001308590253006982592604413593503917755050776872612950141517975291828704130151468992296101123895078895863456568161046131747802262842524779279877062787143541662485660301100783239878972171815077679236301965278069724165648716384505634471693115644111482870637624655268683809968983630575606308409245503580526339558223694286573770643440283564841668697452294597905046785196315098705167802191056352638106766244223834580113648913082349813157717146884261057543467523857757043522593686385584677946898450307568820369461171690643652120116008653180602301959959070831376166021969710554336148237199954259407140452844633050815940557648274678543834254302462293183989380173586587773174210455167714844717800096907707820079595893547375347299168920039554867346561979920742794326103450375956053906123354185122574100494918712878802067848290557626802977680515692313836508887173855509734496784670623578284607430718130930247934200475134316884072837298208510760127561630503953755885786729383255104186611438966128007970041804836338916140618663570132616109317053542500122725051605996697136413203955857333633236630063688694440251525444391756053057688480425129080540237244406187665698684233571286516377643271633307114078567245305484509498155828261322406271860418668514683735274811454782929687269923690104248414982916700893994622611922978735397814399788792482311684852508615956250383340298797388624368130526392152909387060531498940602176881942458252843285722974369937635352387355005212993405662271752537322747328436871657704272542169438943952344919684335921249552519646309835662374016052503389898761700870023534868803559369943316087851721120834550299153345466680565324648167286363614126119984718122726650039682502017302709091511769069420019970874630063295793236259988641707431030205668573945877708549830495112757091223220556330349820041241115527949826406741933616950514115964592144271729958436355652610843613864688365129013933544950591797037358907323548475691077817408781127296144194350788810493662709889840063197973361493446213955126153132560546647727043673885210147159571777330610893089898368870742440370680651832590562935507494181758384281432019758393194205239689241456412480706754438924576730198041077925833725997053077090855922534250523363665758377963118593558878667903382768056151454247791134945188261843729823644260340545623431505230438050061638703296789367280320339355792341771615591395145799267611517720444233364398050783381012117411511613571761060894529031474119240580430435224364944181742679684423845316650259162989692362108790864305377004060659542450179430288418300630278482752132599705599274502403172492594654825823722484538246730054576269125606443035952244211727106562571774457726544814629961069613745562254958762077310781692942077684591828582463853966194110289803634251851722673057780787249117181803370892275894148733165302403016394782114552322070565620156719844487858280751883972761579125518719747342250041580502306296444608373481853035871396993870048438303896928564812563159749054524857551681946394463822907973514280969620238844316904518055987230316206640559105394402154639161268102524473637286248000543744312686391071856337010809189345446831532743506105389910353732304556574253397555478477052469246116945575226289734642018132848832309725422433619527629513775455206873694827120552310009979556496701954478968512510497666957949863766077773997347539027073887929672806428657264855844273475860708988619552934838639511705960663608574948171489003140381968149055481155481573470131779196563581940710908727561066448251811368415433427678944700221006570105201508100319883948273593248904414780809513156549440961110558449519988639722497913862531596162541755628523996156288756709298284655378812926548079891482203929379893761135680391281498604451724367929337420743436052577080835272415895651754160942126098769381460854915301634466737140160641116740704726239967774756673530562880083659849033040210301440340837771165306404224312615395514943623349481178100637979710019254075373160737801378388837636291971071184566329928649927167221019940154847588812583639601984107805597750377510828447675964178199849906169749124907178532244494760400008834328051125262156065959849272181791672089345567539560558588358530566294987633088421422630343812135598851318300003038868875820101233658464047564647743698285508883561629664856015152620070336756305125527290037332984618755595299156621075975776264545267639478076130567205524672091981098195158912964324388648091361704274610080814754984886031699550614673712145056904508554915021824686760567836083607678415897142427356833978220340052192940556649682902144680791403662765173709268466524035258978061242915822529628478331966345105657487926894437403707744806268883961214748091423126528641926001713779168293646070805503794909037627131925470181172634081207622609148061052151099116289371751762015687803860020053116036917163349782219655596037210775588137621536711341857120365511465886868323749771796825739465758034973773148712535267798076092864908696138106684034707456164351088810573291375119746192999363174230068555866387452479516146598113472733003011577715650870141992671320288285180183181051739795398635618415208469441574949206311887520616539636557770258395141061897441299632319149078685435500187154310170754854692037854202074183142878920300942798936802715512133790166385634509306628267513253743998083071571842017376170013845302731926878313825238346045311988913639736193442164355246537098737756489873392649084223920344174348744293985024383109406051005332083971896705095692504889333464039744583260718830795738247987701117125349857536587701746180222807276078404464169568870485046420634477298527875846365740720350103478956598088715275099708442307699579361520913412707135208293382886255944501798272957477113139814534209621349113489824894270987897155883269869442295800322498958231141431665224821423344560003060324725386088319900597375161535661513503937393487348002758438329057297450545614917103725221862294248245631202493954185872207935698679189266686794991867340330879782206874552038261865582208063273141342619502033235060738183056769224095739548481515203497332891831201880937564751400250383324835932797715503987719153056582526904638069304736908778972300295012378171409795227748909916771972209016375100541207330514997781088490050190978067712709785011500760072236822477773130177071377411215248792705402042196712156117159691131728863604945546087589688234915294191126135694004423439833454267682435116258824448516038614181998329901613647876266391246392951996366074118926105790158244790425711667495202127837367478812828876845046822053726491299585894432378211167565561935077331484849915390064553751251619935253354425601145855424515775765277237199509376000448295486984904792383032408341758746885745815519120762841388052289725476027688192670022173079504911063964757558902640456879603708592190756187511169484138407042775629543378643154841992845537622520069890166758112428524934407079664095441611514086889890689875035738119809489362718253987956077528616949143631417188404333898888667368462527756172304940654456299265320543217012095496551909155688634636060498290043612111361948122302045273298777291895430913846907152128039927722476948639009074643378609407637810609426824775609068524009727542411041337669419095798231744706144964138568449085007665530718687104327952127482783433448407849297018782163320599282274335233710607298699965052036442145067792265517281002627880374795799784878629408820087589004282335887043395516250952231224731235498328115799810555975862327894809093465001550426755874628679352886183857056829915406411615653172526830190759734723245194365888420756786334810977983884714839436374204688012242274796705879257801752705503336888096174853799229767333466426759637361986336577059438653565744842463037451935797159235487673489339222473260708213679674768882839424908323399957459594018887335595038032451471314885232511728210329997379622767299821085822688758250208422668689109486843681822604809263484898408167723564224769193201039328488419764839441579156768851135466766027440773869119736368782040740070351149193372650572393581538124952217903426039074819521729713601420632058305121263100913952299411377259601053894222288254771530117796248742582210333384650578641706525268997300240771920884182465209060368938715611567247907316968452988106971991185156990029168677434651749041972544691884038499555783666532796148367527024812689470857556551345991480940496142935923211828366327761747333062252270075237584450579533794899244508280296172920821768860562873697002092604308790398832501395560797335195519798211225055099288440854517166838808659633398840417115520018483016793350763231160204982015443081275454219286915924632921579886574260807438546184974391881465353437932724765372457806497698183526410443601507130710579989232171270941331561406802993086639264479591115744515790799364168150596248491207566342788010942192912313420572365759723650367878121776202329805141520495695791797024182506964718481864134558294809840589398941115572292405919036817100828358887325989217938306174740390484736050410050082338109522759831955026967635092442480517317727075476559473597209285212322506625405771114793512392730192553746324485606680679694924813930671839915287803527341538930257727775429392228476012788841988269085035621526796768427569813920105893979769648904013425102383246195351641917087954612420466778200633008962306554132073125614290174453732433451359854589335715134112756243631729784503322454565826719548706166273401678441830102502764850347360379435125950124800009861925442515072196794039072800442142477985717223035247674265433161794858337911120127330019896418473413787561737217176264620210423061865902411307229572718385819329118073083419619857442832764322848305026438226137164783885070580631220345654362208686516443561691412394527486505320407101315865214177578786084714776971075974085015274164608849744184984326122851480944970000319356580151105574946878128070479621921458816846947203677405946491510632761323236135602742967218017621580495911746173506574582684060758079571640503982149844361106939360041612467325565692922153015797403094248682314985467974336116511876508938272197988235046197099483375257078721907625937806953182877719199766207718891593192786174331207619945456697887408827121155717744649062773029533078867967829068143906521901487969689139505070523049377562873964516877527627973623114488407950895792729158526148889540869241144856748372728777906617949921924948969957161346892722119254056348638554418726081102809482262108848619773072103512240057831712270867201981291392909278111228844489028853667122819668472446031724537207595316278037709216823709050340188482066524701658608606969154656683314006472417675853727227001559577020985305279600212118835007081897970406411118149706188226294586257008767105271099980866843608556867901808793228464129182447543371553008710977673134874861978126663124189054425609529197374621624409708432332809541149370150698895322923843660274721121401267180296421030244112352040474882272149028517029259026304266643104362621314386000283485396974498613683648213590064813875709795213787815582625888444478942107002692097791126109175346420005218335972595832438621159956703708987442336742789518383334305574935824428190793838787148805325467075588541227460650836727569409232632132055303214772698560897692123517077532945742526886792829238562734358674802123684623716129504329304248069284057432551387237181284823416416204067887121724592574294417280794373681550374629527794886282178606311949664699355661168599074853367030254012089443806897832610476508294796284879533945038576918629465697117337782896848565211987644677426421549086922993079535294475594707923516162380198967072764405324331680566666134890211864292286625961128105535342477111941829432297037739953992533388674699755276565431732882815985211608696360648564272600947077036360100614578767863656040885495583247979977345763645375937116541046803116023093041383357996690217990742077246339327752138973892299032893269311673901647017275314869563509537353754056789405987543192581410061408220933807306191163882509362507737448209503142000288258563450596010302183420542575788702914504861624866591134173920367043491829042967137339491882413637714491461230800392173372920823709380435604824928423382867121555820056529671272771251048461712190402669750554147173827652475314583090924786482343022795114339553870926516661317206840697545656213283126467724150938880594629598647459667669722322372633939117595060857953038315128608978201219296754174765833669527241150555230871192883861083413871850961432912769693305915897412817086737123927529350286925922328475278016241351447846060460610709404862393095366709170528678405195943294398255183301941971745806828193980206641714259448806417303829534248730805837883125980549790852813203749906375285275318363895555021816082638314038840669584637147209245299018088420040377958353633990412002713645298553629150094772667376453004569246409185326413200249024145885891837789575013113328797929766660752610791254913870162772530381027278618311729854243937002716168936798783464026908992257560346355419993737192979422915539270631725311711170347607056666149283013367615100025275373316429766754628043342221366569783734610225185673633861386771211504204301243332085531648808497009260137358362917167936507627121088293412622999115454714901742191109865648138782085935911971640120391780363854606171322347398821677909150966664754497082324391027636633178038717371511563684365751607069420151291031421328344675109875729585619559595599155968024815060874403320366579351968465000348742941589132042785792854757260004216250727137045422365935018397083730872755704610458378968050230418643847560019684491879581776335724441769505361676926972634465886861246701008903083216967664854531453355962932734387350171851517666087128593895176097142653653720618319139811962480151463145575247739266632485043423437663322889634138937012937310263493476482194379883675748690734396911513522761571468126434967052630457606845112949970145095552594470910815048515823755611918744883914618760825650021345645358116992213147259290744743576435469224219257065995793464668744407122671617447727061908724647966966684162885820744414699762754597509324263691524772259793720844529463203130657084297102702988149953716308296726480544130973546095976661578674260973207377677519668128728156132096698809568128235699350501755705204114638262096779755914339272005092682443836176660583172939441111725712040052689935974659809889379862483391093319092945996428130998073003228205798304703514037047015906594705456180754762229439565765965078230719544500111926932432936900867205845117600506078953378317121041492453983874794387583786676786220310911925405757214267110668380038522880526073974266524991356265675476887567804645189852093075214507680650480815657875055297174286226781380796971519811713452585487974989327397635474893593022055184998292447610695089139703337231192737803149515191096609036877243403131374253800215674440431273040978220348765342240326844167859617690575618721359382738267391189924150400128164169637209525502499417998977685564939102418153988919071352571571540545024493799448755723622439854566321932693776061463575590273286512154978579211382286687610303491296064031870360531595600172485011661865062893644777021757202468059314404053649795862128699410573983478241589419038039337293999321235962126205310028454974381729294468951319615124050176125469259242378979593593246746211646382853482033524694500633706025827844398536218908686832806653681883902296495927050741800350575433714703708554910886816037136522270831959443487508537046349486995942274850032845511150752996938882728087906601129740477441932597097180716333579439101035070908957857614999842631827393400377965425956663540528176490674270352209117473376666458974569041620056953934648507711950580039909327653168488687283436477230973335500769886257762174698296641078520793651749248708942799770959332962114341973948395012695273696220082299325147727029923318858132831203477820333001263000985503348513453594731569413846129531925446675405665276917564244597783912856908684576732091086137799944314516324359704981204221672248989105657802310378899902027995059104421386971875049158469099341535107050497775417898313362580404193343580847227889611964500357784155427486230673890212858770384888017555868589729595709097649485423608364456535690487712046037519777585519116885510127843155477898297296976501990406242899841068306341992326597405748486502077464402639055348970142824800831832677836955591078009756809292126633965852312471944204460042546404174593917097173895279187922041418527588439399927569772957738830606171518623830879356845713989664471287832955887576701353643911104424101402439510684129091662177198232089495159413678487807422489238287166647721983114506513633267207902533219114555197906469661731326815292445452915080452974867128020944187066210929365966363988251262496214356862255028961540725037330895530699607222421194951274858470611053976489673143271030024532822050548529009399280117324830248113784728074115241190849632101135570808893703098817577528782950600845420164806582013818172606806849053341429428012634066606163934587790372468511423486896610843378225174156514917491729307103068216657833696065370513328961452927656501762115796260231641807108179630387439436473031019227181717223254209588062793200058371667756728651031751101372337741576645376980488388460789755317825418314990998125218578951109875681966782787971531651032783727935525558646875030011533420643287565931575905173476019388572607521184554893780110947406295732546769948789400959383939036439680053538073354267045998730675821300158571079660694593887482886150877017290974386703424376154622591948392434432871384080138114925402650575503759305809194782995429085040053418942182977128724553226192746442678075790581209103573951088815138449980417667846757552766442625938606571482539253964696879656303992546644574461532395198777560788959444375827461790328616418920452907276349263466725058247420227022074502937039385519072695405700695224053846230125855705466090044499146132979620316973993333352387666228832343932708393091407805269458951315797059199938298644155121705894978283282210233694082082246950178112113837231931890414202256421131735245148033308625498754280100317906984875448278318475682209909350553027747675541465289367048679524732911638843277698256567101712988885838503430346009943538908888970212362118467278935878171776173822259639660778843699308564715554857444767581416425916047340569524134902761823601619990233372759708916857768072873112751644222909127049465098445659680401210852059865268463346825756336623494261687081775454315830954536440176057930242783287544097595230681665901626178514157945278010696296546053396296893559829327042274976461003229825235910881406324208646336890452591629077775422388461875619252847837290617370220582680689659128903467513530043651759010737624600345545514652959834724706821334482616875131931118005177597181893413244846866991169648397310804686898371803976827644138666512681806146330119208155701945090172388124948381903234958046203986972630694367418615988296483346918162655328061816397719312300513849860487064606540543714877431227073219858937315351159954984067904959554470711354604900654005846476280895177771802944885478324272417476021214553782020187411004067649154869707984882570336926295496868456732844158423868174678529125491572429031285898855161614953240711101518222807716279479055990479523745258417520964054839841669312601886704286190723145444255226079038949927804769937302921066422402793723663770961660792764309783800062182650985243700174166376690202992972943929972829516568690036693148974434225717682874001748695546967098029429433659039439670311488401770789531072511133655108308649571930206543902178362672488458697844031889530566784074361539987478277206095132492673748098809821366953912466786873982253457925918670848817674298585750300068054535729479282059544836707969475831944865912958431476511989909834450226432023044612672118365414905323018683402744913781953361189934839182748075415669799036075875553516739608113808005181143675634373808212086357119684342265842413990397990300877990837838504191206700401577985357689345036493972731749045862314986098028514445535643008547379737398759826096622549891857916822973877538404409480367963672586257836912546311535180183659215195338603465085552898019268442130428924403128733944757215749440197459570414765591798455232913093318914622477294828403477441286578620765821003890810771214425492219665169882043469738530177656478869930494471089128249858624417718746361593430537775588947943528253483712673726662900381157577747558967662705406174854947452326489826325217553241842797901591891923671032746438124398451565077371880933976005557849658156679646392281199523108327999992782275570865895865998567085207678803632871124060819027149849500252103081866933432656015858466500979056677807179268895319532913406152515314979258279077976557739397205336093377614866984440721071374589726989941650884595544073261059695986100521159022486517167223354399820079530923847493186811224563712889161567885339628587731191290348834583366643253629291481828222936803798808783391241237490648984215363192911844089205315202336982941010139811171778411405118523773466054544681430182639773636781546315821550686905698556243581188137853832521154937422181009497424166122516737098423615943871441313892840724746345489459036141190344282734624416547928803419294688284719692007018468459674702703607503721000449250433890584236851938602794853437465480793577054330540507309012037747855743084455408573254032130967420710629610259855777395045062501187498680812462950804726479137939520950361005144214991599916560807810315847851700642039019488419412234456093673841654295038161468089315641898481752154367326645131314847323648985162893583871976224325885090437032613596909316257708027367008238458462923035289297843214299586449349803045003283258405505216255734096199935961963185678515316413392103453907768826110559855613144851993337503605125936349076456602784714699270436260353224670024302550832439584622783076240846477973793541948736779980763828269789355351162584481806221304802299391093415435490066313746362624877923817886394226252401269264290898634480031884872271457175643142734374116809380930858405906289974571856891150555877936603093145087266326856467089495797609009761416770174831642974171375340997928274552346175362186289489639444453841806359886280952264029326636671081246751110615761931206539206086476730353445201486195384393375124986637240718935055548695096521260008424777601668309372378082821121628494614112278920474721736989649788045879767913073893673365008509375765193664257593724030382946735369218399424794068237003356609334758889511323789781634336238010728566528669831530480074808193926313560588549615583877738892438483415556796944431582974248799211655147425843570211792051829984596776800610278069713769186741746743103781085146221973332189553718131172371504884100405454745107979645013519688477530741447170285508251894696670116380365811794502103493361113041099551881847817443400811511132586352203359241152289337215152673939998786414158868541990907743008702906103377425904079316430668324602284807500790270430149427155333483857025305912821861995089342047792748634949749458201773934633028479358405438932378352820177723271813199900945131944478881365300500745806009300804150370828788610071895751125762041939728496048104969074809583369830197859134500685286296503586766943666176722070442389243559930480877229510594667032356075376968037750791135766006158408099425664274965645835539301503543292144197387130783846986453274929227442019089433374872933238691260928901324786616456248514366666946342049389542916128186128731430979476247171423126258953809345864615700683817724359567068691264344458472255573532512938783409022729468973794953125353565402729905989909500742971127151917840948335988985477614488351007955506100948560344031782593592247931963074559113050476665764700888470838745523270687157191810064959321006829152199024116967490196212625960445775683195855018006104296495545292123164375148686986438844797499476929397523106523383555388186535843888592433695907048634486666412523444074291270650802021778650853207945203876261041849109019068530951649555049737450397468148990347641409029699008854103470170250749357912219970400586319089075250840085877784811989095123878307976389796524809216603604359175036382497437033057092966677973082169870205562132297318545856674968316998419871944744953791293276787550830886959589253714182221203990884983669513196501372799987541029043396674099055218813604616481965555710306818047272479161110050542157002647558991028830662157605263609614688378189481389995926441984075898752316966200434678667942650283180623469807506695839300692453898147840667504957037693664269591489940003997286896633953401046827617434859121480570457126451788924268182474186814010533487236610231330916916297049953153381882362124942369423069402140333224186963104195883132807308152737045091909943398800124771318551757512009764621877372468179548377169721410086307868335642550584142479247374713687387745687290577310512235221073332562684772073825920931369611018379238787422871055911806676215817477431760899755740296200521131329262085456492905525452825317980006849474949038619918326135768840815062544940749640384489776472107456096366529632745717665432957969413019289285167391957029651465091809859577665988700491404268805060572288048088694596488302450020948910834346300759760531829763208292369517095690855332802087509639905562521656962274284573322250245145552068780661490839358844300680188367783873623489239001166399582410336668908025222634116729100631565137452331048797238580045201367289370851901642924440181656793401144305987431881248581836542688430076107278379476392294196567285087104920596755358239488508919428963869547513372356400177704381122531295010645065012149389585252754866797098419653711357681712878081559341774601368948177435660263962313606612814260225806121296577577393740220299231266311685697688267961127726766331332175899204949910513024382650810114013656667860980135906473293782177142426252289200705789432584687810587243574341260972012639311704551571492727478727863479343363113934356993546310695494465858873410067650527351079734925926914761403494716907844081732081209522478819080579852900613318535893392962319368242871749625048136013338567172192311341000693520902001392974313427166464425828352680374610126280681050153615897415554462508595624261805737950450353583099625234875692149873137466274618244524344273863963627602558370925445765152426629926629759713452472505685208560804073033589022609786059136410276998276814425047199152464063475622334107304236467174931689240966408589192736586591102658153087522272118273870584247378415132783116576810942470815328101109362882217948576382469650067941569044555997018082546130779828596832802709738058424375466061925368405343791313590817465343510004789509563065079226374707894080215072851297404031930543401878372607951741894490592974040863056596018070418853607185862020621219751323766219472071829604442553171064887992266275042817815873318922516809720629729372352814776734845649658089128188559720170975467526638332652836794723099084920855843672185955682257613220021748616809140837796822567756492377336165161811594228521134089063769619037003478488224642685189968906932686189947700967898024660967209100474393328373983939089459458847925166536135405245940109330834787607151705198843629533884211803897815028296689467769145982126649225232208471332660426744370327002290412700554718587067136554932571611787567564537906160935964064213664774180746181775889254234420827515437159020872328493801802264023098352678399854879194813637830522910566304483733076221471745176191408121783163485816661326251785102597864686306752423382765304216147791446511695218392561226216057512894053942995945046262904348412388339318163940212082613940111525927655416683280119142089112778948399837543884719297669632474963193538721374235847670546385783690786559203467513301590134270941658585061386509049793418010329318562833938112226928032695855121192385500519799206978342551478591679671985580666348404047072272918730345807217373199915575750761423097739697796751177573212567688031731434275593656014660191357076568053451797121636502343473851640461976450035519934715079699610766637703392908454729608123961637422292100549940197723237714266129643864724557839855681364774497677496329109161056513685583384532614669807865087367534196984909315516463539826838518064799089549960168034756318603172003291487584202310367954914350757650771547009721180067721952347095281122603825190108453500172435684642883483058650499807730639541054634144771459952234004878707339283612297914727845094894457627098832778211913377344699936245512843744754111490554798928026293330764852200942440684982619800385197936080189515547593468760887783218922564388687041645105454428012385811154171592054509561184757629713283952975597714102316588951804625414812199945852541995328773564355055361729344563473772909181419398401304993554254073467592569053697179300396229642333659647603693257367053588896436716255449546626735577417573656203176798467831670725765603184020768803850009160798340742467928419446825717573296069357564873000147013823906516190349758016480115961424041365148378008778007035484572198787923965873838552615035026097844640615314881603137687964120631614698703195620564605152990481518427181693686005623399970016344150862406790897144906542467790625964748005845562994063888647485490875121291464697476303890508152262548298057211305079028640176303574085082118670648456712302954572564256447516352288999308599720324760222553589163327144490156826207252957723660166378611080369900093502635367410875931968271024816352525593144165928028678746471864843714318562387833261976406563648907432579815088058801058636952783605213590498656849793334408627258591574169422735386163661631479765560424298944735759836478509894720106052833544627560374755878121863138199339156079156867809946663497430112688073947519460359297065496139796641593764969354940208727116748231089491498615010637373128286970172539318949236086632411330972063709846501688136154141173524547835247047310089167450223609383423077530797945718907609052229393844529163002240283615955407942057483238549549825779809970170343946989865972643403586419195474440560545525697495099312014283881058485412154808729331037027741768886887356485928293492327539497520245525974449190028737880343699225606297486666814972209947981707407212118714457925846258908564045552056410473266917364948278451029743135111630653522381718140551429227657299640826163175876165369559104285250005177130065408999236843201877243678284184449887790541259022952921641777934313727435052544392520591933400348525182142035811289788179768017170694411518036768987534806441390813626909829019266607256267431733196751427310232970548365378860965832740230814652885236657189349965567691861262717837446650100666399086235814356096251374164959795436311423951020202060890011213186461858384685518390123659603061452571598228072242537930640766082094914251594596613711118822471307498210534091599442437604990045480315953812083937947872327500612795178004064404693644059235034262426395191775453553062726806697017117965655121011157321214158371822145943320529380177810554259263469194604139162817654018359558741840439342455759990920823538843059576710506542705339851953956581137350498326733598304151285724617967263073636855685076715544529812962266963245589565174439584457821549659405183466189161571268375322706709016322500137709605882316427947724327668196382067689833394136872504976705254646918638568782469618779510498308327888821983548344020480851769489099254770250103412361143523750398165713032561899253235707803666330205378579461803762419830056735726994797152492759567708373461899474917545972855151827998258610159138276365598863228800062977949693558340931858445780914145068643164015903681771284422520490871439748194681720329689010474993395738407343882444534306252432123855896662448735275576164321379376671001192873347510787892230938116765102394335957664195219790124946297731399347691836885521669476418617509978461722711091415174328275790769267038681080767511141458717627475917884741910444707074439479169170362172730866216894213570730472044156580694150336718405977913487466133076663101141868897810938129439796294740069306025347351065415651725247979592618549461897301262009330341329557124826459349851352513356527360379953934044635547074111780558165598746075067994628837433152361063762623207333988012992249189079110242174707615731508336472468393354389420157958709070278612958371479951815932293776590224157912000662111877264474074060875068786731537893388599871031237980666531690947486930732164846683659349887322982015300395872542388216207633944319956029098468515677630633355486124564768720420486220482120150240934553731487071690240431537669923603647507166544917848042388392584583945572699116224217525814325744996644120525518120933479877955004774923933372347652749057820312230673057318045445775555840739768287458905711388039516748242754037701203320995617952580989189632403073797695752775696637513816509354070848982439161909860220042435124845953721206091649067280333576216236927992050908120299034535147799789286838464805017884204602752991454251170238724057159957512553658931643424599758524020576508847150382340327836067816951524685840243328806132939722068992103449724929300094473584971444686760589325320732202490379159742796858697181678609683772841569302863655815137539876341335896978237943998255161109035509029563439963591347525629119716348788602800197699280787923215935665964742472566730581534937476843354416448350843800332080884547095526039327044924462614651548370895369484345246816948067695863443885095727854398724241111155039048519979227209223287456886032874567307294558629172109035014016740429892995469508116486038089290773403122889757050533807588910392906074323378717423376373929287039225433146848869074090869973823772775898603493492469619004916894002251760292603384177363148239517863461900887286981867219026871401525412825126243554051544862130655192656252883905954207563188523509389859319689106033412715588751720700361251556897404034823601971677129620581420607278563757951659513942116133617982158787997204201372912087310989287908708451950395832579927146522599590395480566292498480751864492951364953774060619799998164477685657865138642736071949259369717893648344096588143009434823984512497513655344335976437686823945386899944275802334740035744966585773249575465444765791089756473551372760196466455098545591828283826866462409503676412826082681558432712969855781321356042278132443329743408394896626539107101068371402099296037505955905773252177605608256988174307827881913352138614333075698372500741436402207300822919978283552503706824562752379126085854995379902740115587707710879203721625849310616881829412157337458360024784188488755542302524415036677603469555350153090824051774321789900532192877506969176463676213858729636822691257576373625112952065558087265289853319724460681051488778401168102527659777054066189542293334782957749318093115009029094278948761063897697776528798806585682148411896773958861849245661926318787376833174340601504684205656591378919814949781273415535055054514323741956356486954503486917849604637695925781162429775471026004586505605904148829339769268334944409821256085721228702599572406724439048112346192088344346921312632346050275044741892744403683295405508990445101052190860203041715256761989279357597273027754359812458987852264995350861099612234922415986748252380269903126832719853264754762187193895616582796944136008743356073569598453605659610692481300730786469209081150202227572741965105182737651916981272568412901530218228336631579592611883685971992294023146844730418137446766818432319847401389416559053955640242095225267414524477178621963996623371342486259199987048655218928361376687594334574998924785332009833108066790055786269202431778270063814445400078225408809057748165999004527931523786685026404020267954349313652300603081223865708004513512582798840241668668684106329753769360419863591652428766898839218260205177577774641966903031979810454754150133408342022895588123621950875309555620239417926179457287544129918456486671614290085625994180033579758768103900742278879827629592518515170451811707578485271145805134000763568289535180944452245170295512385270040385762296708532585425166859948932038103869410716386518049515410108742374370797993822421383905036265631884915368310113291415080472965961779642127197298075744752985550323458203255797376374221264761835091481811090805486171778013070977375999568491240581828002419059571215086386162639958618185002856162983234602541411408416210272215692529625806356922053458937672166974374839891184253625790558453984332450018608590987850212560869311002602444947417915856583295782364064694678549648701694720832769191630374837568402579942248195627590698565248805920562789318973026762961518571511503297125301072206992575602043988264527853767418976064402470405875136262050536089014770548152229083239174238489690558428233870703404067577854385572941714007541449187051074272807982825848429777668329285743915667701447341402835909080823089134738713813559027696954560432797623939415766150199506104948308439318614224611950396906705906477936012323359082987901903032670804830556182260366722449528147632444315230438321008080933704824195297546075851361758921484476549095355671282585479291391930039163087923120486590937922241916143226210210581198540194807462464510816325134576910938829263470128301326227303217113149241080592693575210841819796381193021804847940425480785284617343436230353061621996263025457356026156812848568054291129639473766559654433611056164335497555055451881696810090612910641847125356064017333089690169578125879863509605519964309238212576299817803195470743635013954248981761849371392901259812829692150367830455999951854571823360891464257265380522183002207223473306248326901823285860677025086938160110950649531239851918039812323179995048447565299113272982605213913629505459477113465681189693395385776073800690989605998059787443733513939075229812649336849566403842919714600570869873316181330846098531915768184050573029352051517282472675628529577090720682711713565789918564782603567918843680996221027323981769278997374031399814611099299959608573945367024541413011595593554223741083119391144257349415695733666056601912562696651881575822772840663479855903307737292888828253651173892022654559673232893306077351754531817121526157221768439384112624991256988919000157787554257640490344732925501321336943984110035692200045737269281592484114673151781828793432994427171436326429668480667341839902320163872498794429244620511713847883890334008144148094836511174290767338666964098052916809307820512256516339046541015323638495244738130523001439391650149821080222030481694022277405535490279788968269775332345433445215852884748780528817630305485809701836544467574529604760684953307540049742045881006611761526935923740366322505277872421941886089772049725700220589531915337699202009003448640482914484401010623199423727180433651965543463338395051468975459082527561864911621471544559112051842048211879512727097707136313006185647966643159677880821411680055162154691958961108115490850210481669409983803939234877858668319785015345093215705246680755661067611964514631121373328302031146959865063242916562000991738666780406587698185375229671827482321369584692667939179160592706960874607789196368459633683810064104336949095901069706762739428014519011153321752652629866166864537146794247002830325223365405377111877483435389735584515816244476499066521260419415036071205375862815750183692100556733748625823834407429237661896627555505815831949454432484209848826755132089134332789614226701737820507835662816986400013650508895769157393855127160521606404086627618278594213459683756124616648273791582055408255135842610181202187891708788766123051783243980176851928864130069432694751772505483315750874485282542737640980271098443187462579610264813339003530516562394040478272228100077527806381475938454881350230983955924097538228792903876864035888187497151854277692134366816262054993765423906681024575648764622711827373333376554952915012799519791288219390276649307129759632149497751232826665704233162785975169056130989728862589981002464297023300085520471755399536185877291024281326655220988563972133732309291063774214142780394684990656284755286448685482569253412416070039008244981595670401692400812681519571248513709599100038543900549297880351536859906715786605348863575450527259828743411669704666075784526755121527242314639596335198629053533574102602640517574076823611713620867488831222292824367566452385912668635606874381558545651466464455791335512687935987011882699209046985140117462353679156448782674005267081620863188853380574493023696705699237608356552182443016965018947591729269680828893042508928504214762610121640258206483710335322411069047002358894034720466495150346293841328232196963133038837019382577143125125793930975192258303658127294625202990591705832911886081616077209222875691948496349944183619257026478737976203779770948490129666706723591847755360841392547127821346809473138035147921505223380998651032689605102199548759232282337476995914191444347788030885777033594964121495345137767694205581630377937752855951490100893030995989062607285468155665396140028239349349531323859571905547696225748215117691234859950492980062210793242368074701635186932926701915241957278004721912832109449434114060443463886384913069949403485909065443328256941718083229122061896588172378652064166282025346147042741061332800619444828883598558111534583491451528500857011729918091790711805562344875686704679528259458145893912533378963316745002744847676615658932573790197546778906722613093880832922944002881149116990522093190179243841439169849087829164221682849995761758537870223557431493847408271117667181287703208578989758255370260504713690350821373641431346783955666163624278988422659789233272297937490457368440637576744434847292345895874932934893295067808948310929491652874554600393902298289207995576803524879778641127136240612499274732545089533930219862394292830872584175233700242408763753378075766249921084409631770868818264539256903772638648017332845011261124613086792910916928092908019334233286932487413406309972699059762090925208683673089660395221490561144389189369992047929655944984107922483934914088793297408591717064668830498231644052933591549812595812065800570439635393473880957361551903284440617955389228380675231375631482494884227201857928748331383994237089849886369662017341129449768983255963578319504350272545404299741456577093797097238836938956728003370968071899862195410091314416882070302821547272527566266983452580796881355749258664424889629370410006242101976799736398312941409958470233454142230560157967414037686329796005647563447190600316410134811300012523189999179407401753383273137675486047358394888966942809800821689383772864493124327711822076165182920320194798135564264884631959093133296158059680979309108191602333905227772459914190825817210959607240847314841626110233387573051670035146899367334017878257026719433704977569197842370900475963065255187894925727500183475569046213258451404690129521309652375343031515565727248278087405454137740684728678292264922503518662753340421543067559625001885905825799607380460597900209912367452374080643657427328505286432731739245411878250192145692855199418344656301690811308039738911654411431456228120500545161414196382130697748992479409741667057737687982248312203500411025540772800727804534727488604950094087936045169113898444764690426419260683994543253772997532798765419045652369158726547749414478793591489528639597843061506799546265697690029503262508441618415206117752237612597395421744265001419881221698491369210707231069802096051841150539957106080007787997293969634155555008477729517918123841685124142460377119278264020824473384812877709822142992992245398877145234634102011050165428092268841651264676486744979183019812585353263811098951883362961016733823995877221593006026507906790982722656107139612318314734458344561296126522858588266384046343795415642019371146901175540172469292500572404111853022533281305889106094741964615889006338861010857870627609768595695077804729555552431776468676811045389590294195069079570451452847819933775914755467055671068041388939450835381819102542908270751673530917273972496805030580478736354076455415747503763034781284642649674520340280592729672535390573343728043462492428561032674110557964697947801279982008113030285095249930391217481489880251886320695176286530884406072861012665121171443042031964483712688190765183425770257639606640742835136661620088472127461562772303275239755028041045082317628098974331149952177345701236986431495498013009696460639387817324941186837688492836480075577482998678828210034550432317494038087893971691661597725934878807666781576988266248981708884859599639833538672594615137843257577820737589046830696399149421045166705805892304216052119045323109635841462760321213195565797825348867786709527932861826192214938570793040890029240349227429819564349409733815086132520083413566729039244326078796855349365924961713787733013146512690128310340543549437239920658709492225682303706794562728506816163878749065956221728790995496095147337221085303800537165966563435634095513703414970831919354263075269418472779843184280196235781811188538348450542306768888918384726345348412791381998517366097790527452645147983397657257811577727596326270015460570335397326943087129243029447630257170514343766522874001893342212530959502393090934843770668316327730689843594346144704877830769476505300554946211742928384918175472851972976242097685188947958238822323884109521718783112942257134350469345483900516344193109187963737350341703525892659868759363188555642971369910388157129463584561627937598213120429955305273247993928895945454709931617291711824196993213445444813612597698995499747694235459996462982441850974867055346203757747621513239459020602054117328723692374663902205076258830897070232045604084596873242642541734717877456997732148267067215408777785550519349883241495060425796948723619706938753542649464226014579073569405052650184023469757730578486117735732279266077900312722490577125802237138276676688917451942444516863374470760522910514044483729694176973445513397944197959276129912964711748342946895814929831396074225916108077793496454327134509573521432766415525724636301165105096656226743210043259716289723710327356307813675382254230116527891216228369368949015876995585776290048348270071349608037650826689915547405445731119990237331898506719354152266894752788520573162035320962774213032421174405736161314060899862212972399956185162661728870460436111240348162102328480387316155357102020820896047862341524805461513785597405341036205747716059949054303016776191616196884045556753624006923727865542412136458949780693686621871274498891140636613242439961454307023946946402925939622105027120260313685123368171492892750094705427654816850037066337710516426533476303296849907629123790361337828875520984389825682566281171899724239420393761600370362395805235413231755065922523097152751179918399325540856579711757909963178908318934642850897890435070809845985096524893595940785985111542224673349125202355167395151930965725725019992415568580775224618808440682572240749321901807041324429136962728837968747118307572978953120708544745945928667681419311684795894928507939039429211713588244651971331652522287398118935948238345841479645067513009015124252627481079555910531199410735177966952197726794471976324731532747948258568007491021917927530696844737338351876337308967189571475977284938947703927219403524518703949916608761845511194689993358177790711378182548763618187801106784908047878558288866347353672576055958228845959794255303104764004539602644723751062120580957280460727671866157555360824062956493082709911382848447627595362023269089304358501639908665081062535737125851878264714199300801905047567147122827072848833759845035938202070489400016252227235500636330895963559619689379643840488462600730640206181817327702539448890898512114158789291426504992387779809142227990549773379714339297498410180937266426751111786511818382606552097222003079208285613351312549240452635269213335828580691661087575078299835303083638815127329477150192062527954646332248126983282998398627131465420032703126835949767149214427177240221907745634816671657182201287046284686144018833433534787429496198465762815368243160058714080257134819887340433004013409394792887778656060618924546353667572175846783133166795669741814161527837073623223138428040146446882668084161949102650070619788290316162133308586922942495336487198589613577725040904042058075100733261512729801641909140582373208878216639286586982371149775795763131636499207912136967289847352096334793144188683531487963218777235253822750122445287607590253785027073098152650654640760456795627241838960464193180756031763678343532026299686798589032988237584574683040750994848479972825115582284305271487314661726311775587234808906943986378420156405419149521789466153013087419886998171217592009248790572047671801576820071434073002229461798294761601375222187380885157997895580288877235364088064506504189836214439733016378522630393635658720508769764006259939483592826007748053169427881396993981729771684607558630378889671128513839973639479867865990282936441991352647768420240194345770031892508755903942340220671858836664407602653543180186263817260049740846281327762924141697824602288234595036446552562085409470938808291379007574458222643589665808710547980944917936059920319556566988820028008280353656811770459013583155685429085284551221418362593810075834360275955236585643592538150351029489908134259676866902159986684830304700332257478595430903131581740988081454880323625987598340108535212366241520515075360834299849005613603393847232409770588794670380851228272206820523241383295549038547181971410545939021884621404375571844055521329330239919944015922656040804843796215396503240650059382276179464619110673560404034257991663972312248904864812927834671705160192330001210197641610987872845448140397770666662085956529940387024366555837168776001889843540083529055425942769351253487769016470797843058914372628015633610756901701893344019345227681154827046846128061142289144738478737421819925981956901490786558587810132113526716546541702484827561224419782453252930090255657702533800176592335419050670627912424239319812659501519811423700225194227193315515772653925419476307461072938390048052456508465719032375313674146859983100136941899585217392737086952677768104636794048920466276944779209166586679995992801739742824591879097199387890510795009050053304836957759700045270108213992122876282682478409736116227253478883315048499612646837623022687210320089429619971505600743686123666202126919569637433938707453584517174216540393376146339060023674366450741376631774025155626919377995929341232996779834052577733835313328455471244786203002786199035166787547268906309446394148614395317567714132654630819559522147375107669479626440843435291936064268512920498625037187961201069894364632207356044559383534456407168767029291366147481447105348044579429202268692964393932323174608059005362311317685757730492308399604042978679000962288753918997166539238747789208267952398423685638918894405141528060509169093585611979781726343244618496617708282857269832022984917858018317643814955112836542371100714831374866007575781771643856494257730848456839209877821251758726211189814943302243694109804161904282099995570841114177168905532040556476067399979841757670852689304179415687537252525703120340806955727866625679353362038262407223947565601242412642041727785446403499164888534986520265776623379412670102108203292904482416330453926630007972779558701167616240873869722120351186812915325060009254420966699780499732234966203297487210929644545387614453285530462441407722267977109829173506356083461928182784905354410445486748813030123238212006308556891035494819716495409738521728969039210236238055885491355185917659508074882471347170727173796985929309991366158044204377783479964259267321216134995644045979156560013696693508765794112929424088608429439076358481401966525433653151224787423701814229273806247814051145885393780638283366513482222777022017770970193086435118076404395197786983829775012642981929646854152175912270347465309425352540426961793589466654747182413253134010916829774606616315534360446654131666128337461726400677189414701249015358448895813225381694114125262491960151635965358125735675443155585313469480848485607943897804214585710674529706502664205962779239610582347251395590746387837583007825250575483203865279262801293338034642059668282969919793878259490146359841022432466250387888196695119362598420450398970211175917123777958790723939793428166862977972822509390054326983963192351840150129237398670325746724589725638416332148723235062254191791948546979435659149102916563593565954930626688990576638304881362876227152416991769585768806904636907877587290382788501747758240585876112416850714467498914545288652683837333559848454201992709500683616318939868144661963366268361917345770939618229639253525435013565226223492459461353589050311140631697986055754992030428028481023786933478579061441317087776577937913863659337582530879230978057858256283019668278437316944860370303296237045405191077484228089282502748753690152777030369914545426748956852762712050340151882973580598708750351921517604861544413541661914173687596720212055139118000392649547257764791424280390921388361033444946889009059514231449518775057306907613136954685536618456459519344956980423703720674425718967646774513220185449107798025936523558107032723962862191799709984398289164786685232638084610262370069249673426256463500058584018317283551777664809941634039111204304833607539530728324252291444160595042793815788723131752750487782323064543014981846413328727339816891308864972987893478421722039231838013192470670612028051893367919115093048742309783731870246148905253871455153064675337514590899480734420976128260134073551437096177694763826093823287375488065555308665618792671646698804098275612242816567179953426247368060672529377821028746886388507420005347260935506714545351466316144648094563477946893941869614324590225636783323813688326591423250520905407016697780916487649627004549544344745391519942466603199065215356049199828477197364992223561374942927846552561438467082181775270583747576656075737322891298791585269858112582261560728370612447790334312943696942562959859270964486421142695504917000370781316623900847986144108546117546862424187936633005776257103821857875150104648795778578518116745301964678254925359836846614056717145212990691816959960242697002011496279706127256491872919921397681615026690523109531536107023503550536529316938015750414070648513755495241059789953166374266800290047992787150400575996875348327289728522457097452558608362217288310912707812027171009150227266712333362059520748568872617068912253032253322267625844571536800360516663114726095903353695803800617926589444503544109716306568660891659173421214199393876658192716808998666912600309759783901316838658492427871745146994923444173105586789339592884417803934378917453687470625000871480634735506810847264813513806830210609139187799446582171088427199345937395007467977667989038199814589113120907041041058441947812938234717392614241848882527833944807241260108474024907696391334588798106483911504122731955019942265138625578558153366424937563583016251354847757966099873326515025560535531030304686070488514759378728603977303395418287457048325986352974032250220843981671740286335098643891358147130974806167052227401756599594190581906220626172337258246841591885642627485938972891996601891767340783475151430517332235642573061540931609141577588117972148707849656466262679130480884570623447469441251395329418769506112183391064050883850627093102750301478036632356668502658240172761087159271833810895620472042646235077934842656111360793603858090246586340190342859647129978032677554241790884564453506265829046150500550907364237122610111322339272045549326281080775426289117969752281116459198943986807325937485055183831379373181633918737363319477650552654768089479659187766443937168600474498943017290861427688082091377174266657237384570995230130114697697267260455924999374233168150536476366070973096199640529132388190448406791132436534599423726590916098360443571300972804236432394941873294029768136323021296429707557068615593157708520234908910516870526661633003625312229264839662976110866532826564066536594057622191861472589313990549094702624119186065472637067655193344156570243852797830033385059446960611028980956858834457900981669061772648398204170268705147794390803520728295768426309042234527069670499517141511471023510826868651633319221651912038911583043660004587141917170079581413816052664491998404552397875669845885509399328470130006017979790385328536422084687190225649008655540309476233651701409331075688343235826194131499525601463647972141379891266386045812965924991822349306139289269160884309717071171212009906482052237965460749854457570818709725711784614933478248830181545911253977384512655378750034569491338528102636369638897496715117733616548405739166929683497905330595361129878694044378565448546272855708134090970704674839017444621574630402646245436827174440072944474951611101920945076339504208816461762286528199858954941463811173489710574812391119222413985305423268969888474616718403397577541346416088392318718903672042256899060913894767597748934404538530514610671727178699583182297864806966486514832581054044092385628070166991713783593388446061859313332743588478233215733388761644013064631540130523403228665099558207377387279321934177279787407143439511939930566892559687810970711755880037150932806848750583985122475807799743644575038413402259556783712130389127112513026300084323791390107704482562848867008525974741468426119110483482735712744687194554564564127960172958488291950626189967877653204062533538211941448690284097014223572188381489917164136425945394959354521862980401721177386290370947693959462947816367712695537392487046676621024698488191993796312425863308109837210232145214384186939612319155469342059626421990460316593866549185758079441826159297291066992430835342693427674668344871568212360002166252228802818673761927005551991505261260959722998477574522546153123908629432475961425054215371757292848372904569985907283223574591516587295858084361086138083741817696413833362116865685770989217473016608431413914340382516324000380418353643164997716038725236241227852545202334524355918384429273137536195740000221127711353348953453835119891544300328470679708073998367936830703783859351222509288450515481806204618457114317014832855030457927980601861576272496280900212627697279084655583383948998899297306376115436484709613061157910523894572768280170656397260990108013732434507268730712509208434145386428444648482361532283608223434176541997388615169705731224255424776260550359743953905821555648426535483353577454125961445597817688159616249360321796308877353222412908120393136396754229856587153773624037338569475255890021929973388859279529532375594531273388972681045148557821556174177460283288351911713696235913494037637225656798136805969672358378276055442231497480859303347545998894480609013414179832372835508286147340094810583759135802742015558000208015547943202864789197520190353740547791989154461214908845002138592841102029962692753805414177220592293366411130643534768875731852269594721234564701564371467114330075434046870834906684905142650786077622638387621017707715306998809065159131318508611030766319547678793971021213276235986504633905757431855119896860200861531584676664578724362144085033046833877277585201348303979251600339331136941218951077226690427248345661509725551028506166987132309743317915876311517076982424770663183210002181737316548488955807392575307127613754315245170218136083613467940359343540025605657595825456704529625135514539931860512533552277834666151535435543661640021629162186662822666432042743476980908488414783337038133514125817359086475449719132741879117451397102875071230825466787458147757574955280233201502883458565190764234663783264965929283301712340723828587664156038526244332702441994860813912601544803405813066078014871125350638636275110738837527366307522018198345299188732697480556731145046162996801149649649827755956087741384806456272372405661295379945279241358166595311626242452772573797845868584108719022448176605292749078062129824973466590636945937002182953803381025728168517790704650135800714694556950225597366942181024910357994918610478895423712577224392624915242504442763244345516208842591005151617495807461983877230343373740054916049089271507846076946932995215733460736752563421412469220565664544628697766862471785124142326386179836575941307204533686878630480251103323298697762838142219491232055968063744926950104583167714370159830179316874448268868185127433509481764899977193860706988670142612150744915997203751504272701680937916926601372944785248440414430773640447626295412017041685430447515229190422566412664090761538868023693348540359580190658366766557296400318050907962463378940280570178126310796062834200953695225787760945440128488942878499137480052713388749017666399082313740901710373740068763616414971499656347644046505818894227639276392644516532897807089198248926239990663891576560010417209749888022682350554241732648172727668821820994175401436690273461845886440606835983717399026206511426491248599045895239203817899596597982021686011961351904548003082823802246038536357277866947374738402406508021739693865074181425320282558676766517558875117563908006336573087460699264053585787200754453596451290751247292511410963215534292561180040514525809108697257647389045154633307451053277763793454646159818833444500269547373288923095809473313347247317091354870026750750014921775619283706211043048524513372654606066683788535384983172149098644585380402796197686024162189018070831278700207366807720626135924442269029226132194432119363163635442149842505067287632421194197263388999698281701697743284344424187389377198460786371177829750119415735411307641906553289954237405425089929388127722944975114554014205680643160883644688594271281476384334244916009748391220295693331831152581796592164101649408544897111850094890535482210081655828588645257699649605172872101251479934394022235062661303845262034149825768553476897979058787783221210675973098965001028080481077861092137825713681512216752958684030240787942764578532703334332105221805174020465130790879604179304528832540698711769147685441505521465064361932289177249904252144309176626008569170704484757166609619986826345627638198155708499956283635192327779576893155381905461326505967575165214860772483738434559663210701878210656081831487857384075532090163128133352435279643187367939922214753248973945921967718911110935225241598802558417704714960026240137557773515530293198090091071797898008029027251618865211506727653748459295479430233072764510021302288830752196879551246801667919011365800511095442389822273928348857993551773154680319727358114737263263488494029872761022409112129988472000984169247892686406138201568762977495795306832705774524960673181558694217446157222380440525236747738664361088262204768419253195129628655447829303689988231667987568161072484073384845920261424283461861148402095397243723645386689062617386523257986868406758253713513252085884410092329803137756470143643887100163001962868284224405762064861490982943321609941187240032104851151135012570728264411238391204512315707118800779564618861787262284312952232882232960148225486321433337444005707329937122736184782085421045158161218878579522837925104916144955021479708533488074342602849369346289731620836610736639363537900040922769099497484445664387619477955066843648269083631564988489404598072050211644209500856478786750322243271747040818604637584278002188489824870018837387542658587699269551188441786689828524695894216713771392656562838912679531814464608583493510836751717774487578062588707845808579711187722495558450328065743357854542961071139109438608786698521505472211096530618484267613628502733796730782647217624862244172233778354300255665663933865005616263614286273371605268844904242381050727104835584754896129094164940564563354649136986417437373360791534377624477026417024734143248407764020237873354535953264616129447346386576389222877971837023432861860266127403394433788328691094415780827311735155402330960399575802575479014670611872658229303071845560091064378953940816046958447943329188867660896975959951630783841506073900297740558460421415060593837471447662988709583718771276623109941667213869067943121656901499095579919878519712037101071421003391097150421677756969582915989433975797885250354263976197654291820101326045214710490798052417751033486537726528877005253453730581952595702624452473849181176601245799223668317969333278160853289573824460021555805537518802944778057173477831695383413347277181304589714786953939424908995500528254380959530715501869901105061430916406600939900561124003315499498944143297184962329970708385516859896885982841495459509981764156694440135141693062876873804442604296366398742084501513423403169116526455417438261656746277999332510536940510753576440315991702778418512031338814305548430031770914329087664836640654634074014050858132484824198731965819116489400918985997471967362007702561768269233338423470652978299944106866820813292278251145027578877540610603823088860794777926037362388746113075128964835122478669368990200193969715938814470283490934363544133763236391840488796754530334155085824386475712802228998101473867074021415124672949031712448328819207384421096992066014997997922208428047129625858311774388698788893740227846912005250145942747483149217844995208658713173929685980692048018287232176669502582966049339970879424363898567429926981201266285904869269501091485451379236770672619414370111166941574030936467357279264205517462845645676616594975102161427435634578342725280470942008288847450637398194303994637062851004165185619318247043773008515927013231176861563418771573280661128761057319268393383999836205774763252808397485469194437621065110261454495707973817038910766728662484958615378047073984788201857402826790884972501021967209945263205551218661550073151601018239029759942803669200025355735450492511376108055090088168939338471211086432442559265529038274677631422094744078951646281321177349892074531047809891307550235926071003417950486974497414104300910469518812418107226977044759525375387105225065772913902710816812598904780900328324252172173856860682719294678849296679008034365589246003238313741541542221097427610714555238299141832051032884207600529878317896764110073199994570467514908719658923975160071752087740626693413469105913198294806288584668742171147976957031913210961932169535304459962557251512869611231630898098966408436799324647781268399760338775615265423812891226359277959125069961125706712077675543611666283854982252257596780858309489624198860458482887448433068931433370666816893754383209801439355656280490474699825364056394694243413874424358340001411705528843050526191609063475604898016019288785704538576624359404444769637838397888278461584200736223765469506832459042093269855114738166243887666250426001356740702032803398971821993631145778301023544469717377962571293574005046097634240898589451761686305747060261510915505700589867900409868406427402981413373153494574126174685047341081212648615100343755300637672116096254487226729777783498869216034585559729976121998716511464217623993319187913953073603189422906665884101726797299953261202671495701728583455595874307426638913069465216037248151995933150582840231226509216891746099443765824694337686508816473287283862169952521256688342383326604669423361756547113003476429987633105990279291070760983009305706722915237531697454447445110992501519390965091395682021969727202458870228696896610486311402248160596728384367497404828656990813086518378999995160574403668384604343125204299176339077469034080562959779874113985012365364029628183666889100445546369684455526914723612499276163895048708769101321939416636214552680749046410698645425408585200741327308491254838133704624954526864546100322783325553626119995539404589172846481082377123826794226356647605894669160861479881661659089525032011957099311988383799078339996659302464741564944060025997407167825445158813200317414330924311235478847918488159178382166594156049345063377667658708740982863285136405845601035066050128051925027415343064041104490854478475114404639417842859708339709997236721733302047699177168642561404233472796095086706674254462525171852817448753362002573482162890439060748194484473533995455001811602811959489277705969187321177701679563665650215219564294557064148633376293349290470696517865880357607276408872010005870709341185984370726652719636392630444773039906861589641542508734101130190821427072567062031646478653961664939585396335066367699202374162439967402974440756117006498982442358859448864293934100546064857396387939670549128035322102054019863141127680569476750057860691725933022561127021911036624822289757192523737878234277516583682105870753004567850486587792462648069998805276175259264068279385639196526067258659821801207254381504413847369087643883138138198161543485679888037426864848954434011293492079829454443704359438518774161171691450842375618099280396836416627258930848772960910761095379620194642300677983112002162503154095766415316874122133951419325680560562665797973225900106954996951218318241005074759283807294590102944716350845347638040475138856303404010312026024260764923684460197355270166256583360045831324183360326348867650808106963438369481511684969710115924628483145304500671865114874812604882592671480034115908437703695533297095941003207433559843199243014572418531475204621147650951899284250401705293322835810097078741638721015882259696110562441041366717153060943210142566746958487597777465583735010873003328512066350944391875337104272518862459724334626213531802495004093240356782087199006605252786450846817716969992976377175749669468754933966232799464699457845355984043305569013618997955348055760878004549480780401888278143162182012255876800638008676604723272264034098517831249601979295308951318566930892466405002274711346159915336837570008107733761933223130475443718780197168184007075941251072446617690952303025572646387878965936608436380594262310006083435932347551908435674087595831954676133647081380343170310476327522940362476134625551151063095235906387878047444366288964389933511117080040367384635956238864296678417214402870324935804207989062631618018861513677742276993065873208593796523428373587424417315284867233881638912158944467260319406956804346916539898556031162652304490360593089642934479970008153731482554868423332622326554715646597052706954040177844968597073931344828680135865839701267393238446647833198677568713906682987731574956656269203818893857083041664451387642334354847832826668479567780526930456689831485734082842101522505012477697956657171159527830618421325260196699592252574863062454157798919873703866799875620028692974201426965270297619550729465495421816620504906355055599174208669025566535776545552792128707811230473022646874554781215647214084045116704947486961540908357523622234095777133258402914810700897482765918007950143709659078132161352795374345135761535183473310366375518111726944745392767367519235275528214622030111669153529127124126371044571154639070996344858251496736060932027885681752770680754402934428852913444780727258469868673291610309464623901443551275961237268908124749385955035900484885533455115715279011245666730496014118206723700759013935867160272359672945086956757834148113694117453096385062356653319248260673241888051274636376453932899398632903826633154571118550695062721350836708352431520949506194030738889551206736466590564996117429812639773990667531016350466999626727755181571192837861866862211958858398791094268694405382172119941766855207094587202504499960242156003516130993313516364692726520368491536091975716954656608351658125847227612915645720147245787794643726873843879465507382144499476416014110442359785684704976052658437634916231998812423887477086350897672131064867818936026537426178514231795298277571556967321093346926907800284597481428557024172209154250688920673112685545303548836275143436811381155199108229552708619267769143409776788366746377297214454857814486525466720935510304051652656852610026754145166204680540300509243463372181115043689409812397903758177661177950946927778007038331439440768398509437942737847331026206906276634715842024561732872036363426333253189894745047921519415473241004422315784555771214440390811340184913317502902702204375488514552478990515709368100436318875990293261690110801857398121160669862941837384107952318078070641449895682611728295517226740710238685901168795204659405113992455630611766259850420325344549791186768026963065261835213877822761753799022527097324192851285105964770358185770160895794872345683956442254028803283491973698306479530557481863660088604740323541354324432836585710518767222893294895134804561035024390042187049331047683241436857211025193779627648282590349912594670672880294171224373236488455740363496782117030049895854071513871833146485458786490253661437148857791154716338820021817062264183374518800470326397116989248432630084124566058563932881678875773978833241471718565706699837206563324510667587797093461807587000208933444265630495513667812794633267140146832974298408210458973546012194449160949267696775383336126644219347332988456181675130355370296800897760641405325016733527352351946896818968265300714753233364766307358902849131279191873474736845138772227438713897378485893658951695736681904967320683817037253362446306619955018534533026175817996742300884251078133602649215094621336668914141876061600474776078917124062001639934615418888613703904975736231886124159951506768891467121754368534741846808500611780073037341793687213650044617009357790827950158083826785424749212278118448380181634288520145248750758126533572456518843047170195423336463190911673091652849505984830727538604484416785544641025824778576728049490101081925051870264811547336295097220340286227144594061589130786548264956935757817045392085540285951824702271438736392594587300659601892963546678310086077505133754488618652900222619110609279969203869805968786497267815367715200465222068304495910216645421897753063121399715687156555583717640709028047049403465236920621833049468459660937907125016384940890170118170870229894300629787352643832836052149537936105420629233900713898432365653861035425276667254849036248435208309652915902227512797046783479012966998290246958835252133393397096967650258722489496441234380944494038523565981366536634596474368731340986676913602601360024728090408172986951108672426444427801030248373054825721172727394519762709602751866060634228122317016708403865315538693435219647325351882284253714179144500497085686648953150679873333561232339906394008430051092379225830922938062101812100990729573607396097235681856540441797842526954339647843502762615613614654421181200001431905366046838682119041659664474202366879739969426805073991435165939087726912760993681745981801374216683500124836118475718574111336335304381072114326259143052454593192944555662420156073459257646885123201093658413394258781826946995007833730158279511445018666252834773453155527370376459782464932440791695918489244691100698257392468181939919086513028352893333561274845989187356234268358498747035171396968952774174568714061482481009356233826675453179430132618313520573881877247792481622173261224636898371999293741006529481012457454142734573523402653962431410312047685332837911759200600135167780062782024912433705492833490964078738102685296211492168484052060990124381215641511346269331519145663184466338353021579105216933393047127239224374081978104996382203595605587701032954548472563126027489634032346894086192108341909819072490295282862123292049745718350191187512379247768294605754654943795428272605778498295125325840602789426767148994179467378873570849754395679719125297390226816068562376476161994413915013208148102994740654362582762179118039815565488686142558794882901451528923894164364476269743662158119634425472427027336619496736661561637462981478826567236140618961352920151597290909862343016022115742716326696246491050517119664485767538903320571395128159013588086880791071361883353504016811779483152090034317504807775509540954770950837872618474607941993626723449305235887800606786732935550655785182338903668608391680350848827967867504828522258925275712587559132612346144742669044229373003841196596079735270688896099762087852391867718007957304594464461725342834219366319642176609042735855707832056801846761043830763967509148434169032434579608825540039116515613726409073581099462638832896245062476367669658979643551277050545772237311457185739352577344333139480128363202088534458556080337014671975957746057570435214798981868191809189502687565878436602566164506822416178994785057865169502104688115095929671317479622566541039925259882771628132646890263978026386061471697036438345186863983117311809618479477718046807522170304543957572317301931007860631678298163176810833360802914927989270947601986457600429692189505842047326230626883432864599131663331450285687680939017943993469984566471751328793440966272456176418026552790923057221864846107549338515854056484984587257466282269565086294836685630876716969465701761013583324568714825037530701251172742766418047093653137760051949912592044666240475150429340029678806669603841177466342895161160875512173086828211002801540850524134636597038795317987449632745823404249838825422983318277381940538420512338578408871370306747910714071555236912760274058998281272419642718479701099768625124202117093296273508859526604491781732192828012450248035261670409178779406220205073834519312782716420812807024013213165163229333669232920016455746416180612710433162533206035964867946986648397651465312322869942972171507172441402453953525679751650443439243053498906983950903575965846467927671099193682715187349635105457199106555252688357688251390683065060500292619256714223665324528341374912717196409578394664948947132618740620626483121206622012088640799035193939874837618579070907418692995109782116937732945990778414218343523261350702539361167642710947544657348402462529964862337256680204769859001022232373323298887699849637186926121789179301563366266680769430305158475216773407728405509902174471289684405178281858960912861081538622295399316919119106253040610770426530705574150481200776772886694304460588901761436131590683854850761194941590709776095094387224438482187036510129503188205250738320171223220761971492126320752422563189090633580072913052613486197624074083101706103651344801641709512713728512466727969741358951524017829122275815237114328454209992882361251336322186286675884008416534222839106864780063091399615912356372861558391658928857274259887662038916585526524320194970059366367419873190515527979998327625723110511157890924504393455209157645697455223346136836759436847561200654080148666611193409336620205786905469522540235542250205179408462444595764888759610334891511096886577103796436046949782219710483116271480528807828179488852523306726931193662505065741000304594475109781380694583366718893406370246876478154450835239282397518802463500556264120185865053944535510700008763832898948984438546228842350502772618168666696114866049970412909605594437435165543338850243757304102634934620769473093800484430753439950772016323392342165905461622281481726672109418291319875271147155795103548527356204023018763746786060474054290385638147494069481315368495364055732990826401176729881485995362921975677365675164313135000683347704396740818672276733959719542614979019147871115412568327974072510027146079466999673620198759361551375064803547128082693715751383937695464586449790024642811727560559890057158479723772173234193018058229798866358254482510225895775406328018362186631650042928866858117814514512457804861902397383474262257105964208723171965426744199251039513773483062225881876835464695959059160833977976460054588983799253316624556251376635703883239400943175460050081437389971492013410370990253137213443030832855803253229257629056601830970843834232422886635294118030207721731140249532320785948785847165449630964231893069198048746047336918586860572402953392058364936077497253704127435026643265636926033452327094216072292440016885449581572187614860406683926537102267481956298586452013597395083558880532498376278614705468077227060773759469780367728515442922282983401893604560172297825298998778139633164090373179423006113677611803665949206445495717508852784487630407343242042549202701518141792895909420436234814001472404073561737186573189832740739010575227043759439594060307948396132541256675057072805639209894949333316202307230178316387199233563996201202561136429667706935498987557580947161068513540949829742008235694459969635545068752834393812479024310766374191407468777649106247451141224011425495811111688099920854270207596509856204486424560406766669255304860584502020310502470957738833749942457454959889706444573162427776712189541028907455446107163580584763447657362817645132280642082377762005840774257176159533396405110689422424467427809984584298184550709735613412901334927625289377680414524580754231978365644571733662785485961721508859000073802468825182020868323776524353875816360022994246424119770439478494046712214098164478348346875685026942007590028352636736320767547663107571920093985973682567168839835482371813904110089752001706763562427288766839222357849978635077522037904650486866764067487561570696915043126492278619498825179278141749571956904822848944281163216731752690004531087829290362403902533053477151944731732324371934256334930457831331522334581804939699726134586076639524215573663263674002453119868725189848663369626838336308204620715946678633375911473756463915497720882030469951533110934693385855894327610608104234001239602653927917666276987474448092694200241047101040455455723747841892539169986128347468891189447116536350949355809795212111424169365312632145628283577537474032092691388080938695472570090775610930123655930547597501782741380389604153660445751269387170991507636572214211076437543741265331256076317032350762994956656694653459669880605905989342214428631043269357848045431213273061394433417493511833697241710651879572421423472185557670936817417294505202752822539515729649227082011328811908557075793942397665495408424400242699712940030594710720503196322854202947706680606834568323270582781169090669120027035383287591633580785883491344459839093666337429350385042467470217903611864432760311215284043240606226375313335387516192040852113797805713275000227456173888395516601489644028734109255166359671166712086068843405674686602265182785635546153751760164737712755246579075803559297927769138081760696786767398682042762438975952662326318657351240448917981132350063212385679408328789576650663577680610158198416691177351902981437279639039167742017279251960032723117618214668119453937498589165788767606953056593828136075050841629825321489771716185669218955982327611696014845200169133746589779114439600512523652330611268595650035760497149523192184969728057391035300072303071649742754127327012547539326716596500885040434346329659665126020562010283932881405339894469796083494295079397536659669121577014210073463720961826010889082833978919577687159840399844730415641902849327465372582063465046245383643570812807570405409964784598821961590737589901219575551563595090235027623869488728693199210306750475584711580890308581779181931976837087627631710133461613617380547070712326853539975586728788133185802929028090275808644010840698286771357160297406191981537924088559659125505488820785349851396467356034446917894027722908201416190484426500696961357233076818627862813952108495376085929566481044487675367967765323449577811750152214408213401889116031623257416922479408884278244121780098304568382118314973920549594895595423359549900420995895723780770146785022057757182171689662511455270341342400827741179048563069790045031434746700363964751046778130631412895713282291322384323714927948146770663689651442582322194446197134503926827921651486754588651940650295757774017614441641020463081772275649962457039057629107329379920886593997320217337156318971948661040668851983312929255675504625898304361932660156076526920017912135872249189557978133953063691805807108506230437177114835478227519715896047592696930491877515313192016000381003456741182969506686840330490027696609756610754170841314589228428584775815699730956632757908135352305732632493439720331020922720210801853251006942755920592550165670090251226315974788809602079118494772088028579491435341094094114654195622350511603741082161571247758144624668124941541607292949141836331448047161920817017183831544417614941427557877805286964559041379237497103576191248765226415726429032767432309445722677213730862620041534430396895117415515641770433307306551616587094871019850789050362749279491244416945498072294554327142332471152609612005938949421775497028649950455434092371557238347015695379384900229291741035290238051851641545321855794558424604863827551792154319884543073752843383913386704881680110412016421455013250206497502899692890133779513877336715347148889287998614390662740806642759702772026425548979305581492775064339541746715287912817328312370245948871413255556807311886861291170053573713804160432795740672523689256404873219994478834448788945478074607103712967548423818908463869844064873170382417919580215089895907333438671401270452720893648840809578698675472438631512526858591943550357444813057105813225163686216326485163615196825989813708880247936095640535950170589110251586091486180841524786558955645611628407982278259440965597288905790162283180807094270786605888375810245480412766496188941650798704513582469244959535663317763244117151847049625112803058346961292634772247518699162268453334679336208330412944674846973383890866066380100282879030468278412920609451918736171160942054922442153042661958665233545550717373535621933450045529928273141075007911295827715154379716757436751507588538276183647312412107635834153082907255383899225674178450787411702753438888003960819777409759103319948678388895591406885480895409587049010895286878650848683182953107021418017364161053648693665989946428972439925817034834233051491780347981343703177362076762249503003440017960993106737401256288435800318354764163993789902276973093542714632299120305848594334993743369999404343222774984788771672381330725683708097161505859898290198837004442952761091127370333269934709233472103083772283716764722969464309133237777853224839125469555366324656411777768654815450795575069920941930072868669819979778535992535570887324674405447684288803802551067961480190696418316452000600621802973889706879570097045322823326320330742683024897039896152533423365624121989432178642624153784437707688728348929535315842578311838139831002576645908520411317578497604018697538877101765536586609557080961222721067200184127322801674726376227944993852072803016023429081709662731200485575485843758145331435759645507682438085371304316601601760766152174926787673216508475198845489970271925785763765144651664092374026473971529141864171780950708452420215644804453487985437922697813319246129886196194023813237823989949113318889316907033680078545682036615072593272110515555735038718222414668851627868750049636413476528507346062985030543815402573313697279610688196931450371394830456655741464247293292655709837383186381532883996506304025884913667499892168431544120768638789112239885594846923099536914758790474121291757675124170492680337834960493297364153811359520398289278066541270895333217780136756351229298547149189860528521828842864319157993381321857446442047749887022734059885634687096910494380588376682911948834636454439887085395764296833985986087848335504611327388652195763787147119429886837658158775177700477889779713493688209848434374093338245412960444899550062234108119437640535423871574360524389264945950868014899984211089014186190932645153984810207749325156492476316894058069232614852567623789146768081831000408311437705310683883337970836596349190342128111030971967039067523510994607124767101506847705103913758946389794476502869850652859831251885994989012226716121757515531849740706638008709274315768023178844728108865521457375747732775592147220919377376916187700909194690036560126216130689324646019053931189010629342551131832626372394878465435799053919739595093399136180796655225968765782694582931057547592452629000609083425848813017217373152749682678568919047296668248339465558237810941733353115038836091168473872283698453959348784663841941916191639135473787789998967319399220666573649912361753663366687367551591117859673318576541069950104354470597667028427646115333739204468961830279245241407063840812577564336234361186730197149100909855109831262368967893116276036317689586243276931773887084292876579789233443619884651953126666470194191789829220354774374148231154047502662782694970327508006778827061486885172430797957743357602288515728597650064278074664319774906800606041643032099941398964728100241003678599662239382957529202291526295526408249768286948671145510259092170330117316370612089341245266007429494857987551730373790823061558626004469340385031165021235869827973233295595302273603964477530275638107184638786740838641246365369442119525994429070361705136937224104710496850058473059327157939247862749105665750414304967880909192995551796911585382355587141932942376533726565319244524074016198853161387927974712291781075178247071230673176119675662280101918593236147056901429350850070107251293670434030040801240886478584744064542388777159067774302615996418967171724495361939782555187897051880550752236570738447060366313586993606348972859628583916890259935951474899176906466640313849111103844780928039060282167385253452172829445162666832666443029429877893941029895640095027334088130435168042596260296667007378225807497252636061856164220123723305519718501311496224942601538149082432350925920093400936416174177668759513432876008704388408425797591826049793203325792572993225291137361305709569551368512402916836467906857386129848683187081263265292215763787453261126269012596807320063379040702346439090874351221171227575432268564371250394475314687420038361834797173989624935977983719067491107697802246542543520079276921518791270020315416713157771397670798969105055085076193667888032380098606860952990380425930073672410009552099814271224261369073165363381717099293022390008351030615260820479019553934132616507378079815483315550825360020623819480211948544145156374474094768320410190741253107838964847946759226341726720134552908270061460540209820402825416157594379307152189373973820139519928502860210506531152786236951857123699503311184999564258793475969980907597036804458859436114226841773457904989786269991153362941808808264190412100700161621301999900016639969144692926879168419301215196486985903652135314434761158934754792988305664427012557954081398581721804366341545970584167119594504862913469836049183574744778216183733759197994486315148210842216267023449508985551762954807924413742017967582872975105273172550361662254505791775173710136216979103729876344246771766973810643288987758148207198020986603676234091653844181227961686828618108447798165650365359660147223184831067468850460743016183634561428031294440162514487335588975153473279194753000453779414144373226254035877336234854310282946767230528556859066852010543222738633213339003297543670646714106745098150123197870797674917313713966590869421906524550886876561246723901160781473298760726100368938537004985077783816110179695974864093796797329202554607749307694240947902391633200329416351131029203182834860430125947260445182683192831104117543158005541042974602944418590291737811196981549945797498668082674776166663147350657139770180561888131040725893679215736486651926035934832972799666599725044467933499870410961750657730175379108092553073581574114385164373634737973820726600930774067689786371883403704414217926871990197132878868328538523175431183665166953712976131615150814966007482574283674948188257309694511700041875804110336812714884254348094468544764137711805351958480535954149729027342357363912002818246220643810647218116143972036037720265353855178070060510616800187233986031315673844467821321039142191438325916942708904159734551555646287565581664575628656532488749711792991274572998223692929859373255423570066595778057979223446718214375524229146666106744871469464805857438248312524091708601927400582222547400659586805835547697115788769868226678150281991488854188838475697069708001666186548014409442132120817631153273183824808392472394937448249915075650417626524423741865610584488760514070162919339857526453738338021930203711718649930039590195245306740112670566630517310163166183991069129708696770166765413444443223835020656354056788745212834220099198880456496408007694877498621586118370966740724936335131955999536061524732834743188945933652686012330060494936134374044903389183037015535133492952540528836447076753963750299986245659878906172283317132789559435188348101520131757054306480495973854547895975761665132237648603183838551039840255219820390985924073883251108601076774246733066634104021252689453542062057736600007174238280898610357361086564282356238624882153812448717182460885506220205506336696488519517805462211946486427316838335011234776620601406695468446745880724602568633699263971956462486403514135877858122293789362563124747620458530285717461892837824224325117955163181042443337684119478735342143705363094750862600584571276574024320886529978681972575513356973289094360254938368949355588974308452646562545206586666650434816818028539952485245433536314988405448462522393726892917180822767577065793841671863702823682157513431653788235326476827971627581717851232852776049612389018862944022965026463452596977466472666528119540724932958685044731214433766842103951227721871783861006829225222492148906946188720606603518548489005032063466213666668470519652793987797098092021775969468687025985921414457160301026470283535777154285348314837064538015436963384244470728713749749572995298855031985907856271907107280359956820123371778842854864628346616059658518093318760565009496113550868848601492019218549233339007589158754853023012581203202506527271832281349854279534771904123849333133195573401608309542396024343853145062813377658294337621733260562107282460129064742945307567918494743646953552888725277673912011761159893913970655800807770348466289214323420657605189830196056630912853130152724485090269037568698465073883315268198044732786934801812232648320231532227855406656010372243241972696138503828257477364448528745997080844372530418349861726837931898511706304357362180400431060609527494286365921661751257707865547669779464980852637870412591470222135183085259265558666791604478201974472703475582610771773714820017034084178775273920828864496346589255131065860948065603582062158504704996595339038861914413693301110295038466349905433561028830553542089904473730889592905339469815111522708474560038700289558963750766801475900826878227613375643386650195028421318925993820306719814450140764393116947855694599837476291074484723535801520872781775577844839683499849062559990946522510811814945793541610331098108019310029698219785674246370012883978445276655699764528711236451071641510630494114225909887171471568796721597239623044763077759026236191154114296366325367503946616023139165113029159190467300502121919573018787075236406730501363495109951822879067219672160566103888128542622420161168286392191491301543793764374929471938655832501796410974985204849035524237491652095163448766540963888108916201567166830599867138374255887125979168703680745901439883906581405039195806680406341128529858784399113984266980696948639286844100734049676393563505346568707919928944242470964915361205577226941979429867376838063786169650999541037401112105937635472621606394125732257811468467829405870954257264598384664257119562927876665215931968618298723038736874578307854928123862603333136419629584929061497813760330008940257190309723885757339358392461515159717603242432182240720984667464654416955278794206946809051095704166551553597135997629212359182114835446101511674962160409316534047520834566221711576287215627774122820956473764141081424576857016838002844819146013671334223496906483579652871485733684143340684602516366710618492296375059206364559263932176123459459128754172610737669117261171753503679251039397411504702384204742536007103334336345599475941347230903707973153411771527570805514722005993423450087996095584197541674861319865035334064078351944085143769736381291984295861059504050668464510873469768273600516248225470550488798402293606871273332605753568851653273003609046116958043885233743746744362756405417231244257674705438955159496337431463329818761495893483161893229442038746524482029696889319005688569873074570291051127031903499251376153690399958761679126046676269418241802755013179259872485632934635013136543373161153330117869861173850489197051359526396434346396124922220709284734320319414658004972495570793998083913119668774967365725084705967407428637847715566006801235416592734990705761595480658233174449148231703541765446564723784468827984026311010322670807956259448433217130910923003821356077083430028412876899489244282536551782425206598732162800041744233726005220585325275069667667086311682042963826797950790555199573722706487706104760530545005279299748453713953811083817105327359532096091343909113076833176610565761638043803751966660245793224395123886959186287327159697814564738996978960938563761005602853338280852296612157000891470153072247445663830924317003447232566989266117327037348881707590117544276533489592570204514877329957807949590441003089520777089069900314375328158364703466918927247355908163787021509356881215243013249698966611846138896280159952488599729043129049261891459025713595807532168619483749310480513676061240232242454016328326956061170312580390651121478852869137524276370043667566999969925933819919310383807785355050640349814749731861455352828602187538224463274181780069451907664637267117380023726468867838760903282464668999542048177415036621016675267606171734987328949728999978829593674381285519299879592353093329450175991845710112196187914566864241544359727811812436149288355832747805722420231809583030057688166413484842845745037755006807957406803934526272412542974935416760286055089817759830460069492953067269720296978790761613010549286303329103838899631954332803547238654629237451533548962499906127597632489307038919524007834957091573466162159739460203735472158787369962349030511542498347623918347467787339813877958275800294011468158871570709991070544383716474220550274169138361473047781751302073758503993513838323741976323997291679620901579915534002034625643078832658890789571413532927881913463404112149784775460921124113837125878391642014059060215669907281539264554808388196652032145774387267032828346307510381314003499860900483200117941056628670341378933167529420222476755097554216879316392311067072953157054355376473967164646740634137639328735927326828540002471992461370698976592896687922927338856983707083011935157639352019930837749323570384846866778565534080180872540177807521735732856508086354827813150159299757608806136857795410997770830784058117834048108345219718151028064710133327576816841402731479013540477777174195537564717106399000153292473489282867870146195674254559040228929783689334440539094882612344852806975717353826100364929603955517455096925617095378335820198527313791729086495970025515580144925999900810608637925690917727720294319325328287984899994422539519718669154998528919143083065814793378206308032628884028227472117627375419664423657511835907377103606229146508566120071997006096834695822540137643719201604636796859819768486703918247000502055385323348547248448655074871915133734366608209781586052390779070021192052168293342382029049295222623543481974323489727953921029745361715111900555936242346175300540596394944426419527214643375282928578793073664229747587731453666693804635474183238062152646920766139933520995548125215919197127094305240348324091368772376124316924393222606509186952505836374170598458409710016587816877397348838443417520059268063767973148230963960034918504618042715851383451649128138983144404802619325791203397511115373042773190486202986821865922088067464330534209751665405335327382138437036465967324382262174021193035082006935943971546313126456328150427595197622236211727794396361071526277814575982544084574191709362162679760672619062156172345902477937962818618464448015341916064073836556819688817978467603420069021282697860336941447893667921278157366377679573920843196703229533310209266057611575019816304898620553305828399329400466045339094567501763197371603162722490446326324066289157922432809237906910229007280087480816930060575926753924685434033078936809746425078026181426126199041582171124478747797210413068939889694081588502651168213673001251631993727279343461981257738658588562255132850385155618703613215381074178457776843572978250789451533794531862116999561126175405613134806653737448897235385484667157080365925972278031808045381685161159610688161006784170214287483312156198400856114314713324008819754348148762668075426885508736304826303330027971088795679827331165827296425520057891619691360561501048427593711115707010409775191974839126071037165146210209640961562685000177368585561686388956704781675203295757767532629870629522802893211053179989372307427311797409285467372949503635825986428532774886509331903344074800284366933059602170955975041001132846401966006460436342484565383388310231592110504687631118307641655460029861791926272088380529210998758415143882172190063778461058578028696967806365313160209449758446138128956304764891694280762557060780566812021544246640355900956427837013264698673270725075800458763029929214946954421940816529298241328876069601920614078115313508060148296829133369496565845510024024750467766159020994080015992235517867169252583637207090821874265858493201538070453006167122437213376241162156296658370807255823946802544961155577971322413150455857421152807219134761780968404174051442279966132598138343880695396302872764162228465520980014752375631100398050741116210201451042482517684849860966552850135051516772046354303493541684612241188886699393240253899217240964688155909071946090789199495889938789016972360802976742730709388729091965811585029201252924285357539151423897148071053831738501039808852187265269808098380409528640997202266396186228995668334615857408381975240989306683577924273128712400911111949002220524472227542205783500739348576558523439628943677690988307325538871149109103250199013433591995370129544083242812479259703438545632136670038464582704269444474696411375000765604199190299547510050085676397650035551301045653620520046723666659136399315971688658697557617009339564122981083584743529168794555887023034549338622014868597162745681305757905644646184918950463384661641129831083587647032517580949000636377699283293575399369970700224777719067562974387190300378878869149828681085217644549188580709848369268596075490494223966772794258236773238469936437828698376554650775701515211795564010191366893795270470530356609331402100081749988566078867553405542674297257448785056693870678015772541333708951403468167215978154374045840384245534775527108244401839169352312966784751411630087260736909509520539182648182536860761800520163541186760097177888566450212212441184365036979381339667190851756016186589396165539528568525767719273405279172764697445517903750704969085177671594800149307566243049825375327477289408852479024584751646137335534525193994025014080251113751674572324774883362409552975765365810930078010933077897270826221518920721462486824238871127003176657137935230253367671140941792385134606716625147753366650893575013740393755047166760470008041299482005466187362967115049034120451703824222544814908374664903068390028136758398033819349434964140932969889719758095573304765162521812710649325028302570834781111042623829307993965094591022247734880881386204331693516791443188026152002875820500418089212948011356929056023238928230363389191364782927906777905369184685248139323996354488736174198695154223530201739673448243969405098143720800479768781733870667744378098524914738968864551032617490848493997289411987621681478832998303505120404563350065690558664688408122298152471364050930114555248890329600614386812634583407970869088938675802882308124478876433283206281072658245760622038769833079988863612502298123765858265700587810129221610483913337722214824357080877789905982483839772963094879063242363235085613411350184727435512132456497795066000391071862128152364256101473073768456824438187536061342461937482931104294511215404829725326731665271203187241824317753831524435994685527792315294697620048426851157279377424054362566573788247732108817568861888624526988116313685556367393325515453938344925326036786895598226625778430433068316258159093326254933866561324768322135425604827582410523477636827369742720579040658427552288373471690442785420741644339554455808347074211507131670105273627205949942192126465725522926247660680617768223356193326325709544829796399582045379522773127043176269953849953281147374551539864252799776935883118319824159687333926842038744486860186033041908038205786527168339860795915373663733419161124439319210929399153453612012700550805333628232264983781734265937547470976272522792950448995121933780383670421769035006821137331716995466270642025210005180244428872284277725420294908743906717835671478888162319697923867360386721832938314612777698222423280574487995261636614598719963056307978812564551156531491605646347068069810163288393200922964862102187718213021515418406285824465385548656568743659005489539998398242621814469023520258159115706704038588838022017673650910298871564217795921094887712707417526208761437854519397770493321194345778060887832547950540959544724401493174595954905875228033709648925776504164234548199517640117163215508565365755154587825763444658170955552506855315537123127944355948409010949787371735370515978924540127335920718406642780126333999666100382711175110149073585093303815394589170804356200633929185997425938230336560886807050436429694706936836426038427645146532483917793605443074190191635681430280474770231763063045059548071601534633475369191571247669099388213880879424783732611347353892947339173795041662403840868508052150010378931140481586297746797562735009893270495058917959850093715322688099700791546121394847187700305109333870413824870917877722719216591160676406933987244019822666821098413760956390930741820595676072152283013711398248027712436246257705046396173692231193514422906367881963835752946342033446740466672843094060560498257699528790483026284950779959979995341477869052378514398407274416859551918406693151395839169651639011833234236899405931119745264893363110694179228061643056488187035765027044492895275586123181167741783396998673623995096082509471664905550293237343279466051266980067687988193923759371304495652171853154064891200023593248494820184724087573605510061645421806845937066919960407644646739517135879302707064347898422012234056746567151101691206905759575809594303190396662099252181457833347385547352343843984629669194013200752414239006384865363270703341833551370770503812453273174152246255234524119363249178238740196640745504097315124821591337808636195185809618222237932898249942313024581427395706863917221208808786167371193944317442220506968085864514176139852690733999030834470176689031565394336319030815755243419048594560928036164591773862576352546166667110354970495578514820723544304596123483201845449422792004564354325365997311050824440645736883933393912096505246782728931894776858578340400320920506020207490343070192646613707635011580501119141463732274447188671335331208503951815433958118177449311904396671671307980485144444434317183064828819464204014883288203450259851641184016465964436813013326654542228164346863781796323036415589614747915180645034023927217161055500219275142534750238332198257563889958870610730860760266231623564005028229333522864742896848069451782498092666588447122002515595098818327005011857195670362149606199573558653064583308626339791112127283828337020090507311729424139086658836091098853956072507932943147711354983146601417066644749875415549202565824700304498698616253372373884721983817026104366639933812020468642506934204981295593883542711238261814224117052381054612553906393623081092912599286671173508243698312136146036763792994666324119236922811597668794347911194234685260553709642600584587818841161727389562929994379399203723744037071073746116357076722338212689906881628853902885938235943173987494280939079838735401915916841894198303917215737859069097177093387026844754208327515758320311527642382548048770769756379949606804750525604045526483322959296441289860392234509045423410409559964209008604914047723914824985418358824722246464178746693979261780702166972697896643374054343900553759453479880584285575403469833000520239953767478748134501597327489268471497145606314178416785362132444016184903975581874963057819730455335713432350009722055004740745661964261474114915890328772664760397122941577208097656682877524544943821188799693658557752540899829385345175350029958234641882353931013478556198309160429811720914208673676232210997153924051468845645472896858017857440027853549440928890351042009613074680260812233963978003497894290093797364612391218910457058595535419030808684337268423137816977754815753745225261737500368855269071807742361358678605964204648084385546861650617755662293343473310702245075583055391582565847570286032897254370174516305216126873005392290159851066620587327430069023387876304544276687850717315435926476715864930397970170091307408327222807392868966446301234905992557203165678349847358441968112317713306682943179029784198129976865172234717049017229597658387348168326261173965924759710527957876414437757033863552014919230791945061776425679516209285825300143055176118320142625759397123808905125024508140908003795419680094569314383419100824048739402427691495616991479664731095179164901750010577900717118296355251771717801829136950995194983426807976492794907884987166285787052811647878775903031427117081942869293422860574087683705641386076295951116500643200219306921519460121096128071547174950844011294718622036880627994303603990286592746181003862627646024914957710726527677476264367198603445045735576600563221629439716093598814552303092327121630106692066232683955903050647482151778639276808542218857012951809922657753752533306533297024947096491162169960383003757461060192781180029949920415640530607525305105024437709514092944678415862499766209199954617536298435382304084197033691088326971684621294962913296394873194845984352244868693933110951670437096779493490556112722507994929629730463804706631453116422363458578955798838451059834868374385915402480435816083019893413912572101397195582818629316419181683422375309458956047600843583332942400844977632527427319890565347489306818270253115486392747464442725595657647967281804207157234772863383097510749169142401286024473538297813506837984257998194687292852971537566318212881909226229690858044842322509494963225726484593139942873843427610430109945383564515138197391179693939444835326477417805495214217928706034219911833816049809435842446492760219925219579445671218270417954779388293446010414456184736062895900427084691507309026853632580610072657938414453268165980122347347246840012465071878134548710286484969311352261323823802818677464276060922869963171340030903063214541950866467981963089197868890157943355087183848334765588390947111835884919696386212492473842395395898408896394999488499251889874026398708878823666806278816529059201508390498245425751904481391081632996360946293218626029614368460888736387654808479630988593679513802699240649554461586509624226657399672948417897891353509328121397082702900223283142763993917251733055279677264215793531405131047036959868949893243885952325374846920750250762443434024850922318509220692301188925981866630625698967561680938463712749963394056593503520395777958317126890325602558357255506679474750533734928066348707279033067717415022335175885049491330139643099614876217593782140691321371647790176710277112027956553256163708308346393895365962130098850639970921276201940999639794539733495059817462175733383600206608175538004205003602131322854999499605334354386135757262610653683431002323479180367970572584706018611727739481900418702510635560588665204904283228981307933535419648534497885383171491686685847521896044378854760447046141943740306042820593734430706991632666118339263978813872831053277845851260634659389897736414489280015615601755094123017337677188491154609210555266629817391949283754224885527286746306807731756746407925158197515941039371889595959855081827013396121339362539881453858031552618232330117212653330564071209173477411329177342123660339608672267071198755263907961973263587928848939103675981219693209332425804388148793657349052892820361286517796631530001227529507646463182145687613923698354213223739812740167899521483747601183886464354080295031706829468195605369341262511307553013113996769333575601114821346561276930970111622514885940454075985678200033550299306472403358170450403200705381393284777145532689518973917991707598863740764059546174508311311991263328061254988168139896333124625682441001272890872393711343018906680958794462860286706508881541774790074082511118627475959585950445118708791608599828889928550539225626305361234566003253710234749596354896753484392774905076499940475067675134417730329216854853433303278459859032363395970602313658755465064171220669953319956502945291055276388655563694915896924056551361960523323738467090797010799791751657494680628032575172549412873636691669051353065296602348562664621818080942329269205371816065773190758893576080459052015680370580643487876417624493662633197459813184166283221277934134358421179289994444387922682153559196694398547196641465608376756880106956924986054187095671408977709666060501651675590203017462831257476061163999060064221923249014025332471382143886875332148102804538418091355909991371281408984245201410927235126782773250879694793605105202093456765574339003071277555073315219763596137988805327861885322817121398589144068110163470267707276054383831184223961374477103586898779742165960193486900333263160666226922080341640115496588271760538114502874882491607772363215788211937670484571978639443622518914310630176995970761711966015902929411261346088013314949831683767593991757477408606021565526865920405296340372754788632698731128692069190758785585719464080419261069056718966439646292224275250969892240818792366411936475440163628753063662462947393681520317971526936953075545615516167293943106296353689708134914046924606776132530188058360790772265744201742691919550976664759122456267621190232246190433725492341016401891589438153831791184730195465213824714881926183696905779601717531973898834682409507732559680874198198042144910201096284905426433054862287581790740499760157428356108483765679209711837863694240354048287283542399260343123051575521058826065483742310981873940614345963727669911403432895734818419167536824272452350425355943147475451470027436892008867793067335683366418819554694195119264448995878743729641362127484961771360391304845032554995874373558760504554418955636103170377822320483943831876159778711278438822858341532544932291028468691920534421408846959946283211086754874310676050262156897255323625076910014173683812525009455959166204104753767810545383714227565511427000205330830440317994164441390955241434991952022038271307060756247006714643598714041664575766960600681528637454493231264067033797035082915109334489308422340699074687544444481836343027804824142420877951718696489459918581169988658145925797906926965232043107638187933087758775303760781865424267376120535293424049247614405924770709615601253962470375467211036156589302572752004104963196747031927284551416223629472295600336450383127374655819690111619985119852167070223097566220284515584328419342494302362053564926097664042915559037000393890440244964775233406653745275126501505398432393420947071573575043839474288883648591791866816108114943952276798531626078263620001420848867962444524616414293646231499619907521062948220351760765281487453811186270323139130984522851879982037720861682799981273382344856812726280561972337671076849910703008134544125656736301437067213894532203466916038629756185992050594129382053009098507650160224500159826203481094789042708813918186356530184828018233307244457731360565851258694901363056185438662712988925858363197117754019768260528247668627616195017730879994555275358184546355811357941994619009084468108938378689814223367842220073661006111813529546443532184146113556298870856883456478899934923550625021291911375051491796200575093637926091599748787906832766946585202543913721687569444264799537264825151283053504107300670054867669938441615246671511305138787864574746975250779162466527451255317553183002245827506418753593216340446996197823735993952492615686912688382349121717860674201470281684698106431408294541169496919527534875379580664009544568564873274132417506357105215672956199209187817380753368287538275373181143575567254889853898262989335716099492717446115890247605179581754700797751815769504737182151130777333978616274512576157185611789060670657744094131174382833495132618089884881889074606695347627856004996289737520139189046278621587028446814501498617070740172581441430164575026370482771317984245223248363062901020656255240926313513174754372189383604236452127731766459637804790820344273480492742922073914464556230582668252440284583535368653439818344033004341274839937964889446951732836885673995436045405150464973969157410781001961383188991845717268375350468688686182763254322352120717361504599934017035777951582157392969611626429192277016906731706335488597173181059898961455405779400800223995783700777438163374060853977022993674869837787648278734484871918417879907096662811460210753638670055175894032469457797246794408424511409795950621563238994394617712239092273617940940775864906346604323374549307730724029619071527804790718660516325676627427479436181225627097522026093521672686351084725666660011781099770597776516281498806346288182277484068016455805680178238982680505915450823488901169854944741945332946353272994508646413699332461592206299010005237051161387514607322753319399613222591605996782191738217298403002597685836807842074351897883243645116514583979522796910897924894526479752391022899569851151964088023999638490301388113126932701696004676523850092259158899022838686359499466614939828541079470848675026519551399688628927832240701097564766983818997615159513016297305340887961011221857404593065561265638646357678466043107908807238895527805443880229683824181599295653094777154649569750191212493325600081287971513844244809438287913858673764335927051192376600926677734272327624421685365182007909744844834016613103356006260793653492141273101200957980397751937299415856144814857959657328500247850282596519525002424374193810272782594177304162613231624452872532474774533597103009298401783257902137756453674446240301130098317729812546243201221310677309228586051741330631952903655722968318395359987586597443404509712750542659052739698203931907713670043381608335288600940722394698973856948350131113875242611993701444156749755252313266383342636136207370852994865639905864612589704864461848167014736187315607018219337274022278536820606605496455914243153128639752702762774216485403978214586633090925318857329989799895598870656622004197271362324375183256572644378550746870160219869628650865574338959930407198997771527879904015656045748560814230973591150555873633548507897874822269039628519770623372113938550992659904191886124959127378532351163220138468276489689842937944724095801335123642664480574477127734860754250444565936935120894538636783228276737709090309795931567867540373819711660244351607172161826298688523037209893389492531639347863016705816536933877053930979584389954821046975893376475205154719675459309299248524069132010664123149657703115320549835076527823747990048057045876702301423850960883797050083292215596284926830918962145686483089695451293044405152679939226286512396097888377180594159948089140364842254967063486724725530588353306320567598177443912693833795074442817779392142963577329596775099199115030502626510532261351169117885436507020898743539599195968002258939353461022387511507068593872102791404874871023636456273096958143378166233686108471188979342511558043951034799710329483513867621960747358786513449145897882819227183511803321508325589096764792755006886460557177441618016675308036276443132252223042038748722634530926918585898814907182430314490149752761876978516495419610332206674081466329519012902327439735847921047018612729019537657183169879089709011262580973479385272504483455150749581240141634331405428213730651021188118387062003273925995583503553726681622954905888175691527024124090613493436267622431351127009060571268479029995598611573463750522231910284116651726680403788839255693240068902954053093835598178160078087943439479800311926946974656212982661561186809810654711062317618908545463566444964200332675381143102857289026222367759804324959435740892101686478898754702660729254829449837441664246419905976479173353403639161765617427684368106215107078262029123771763964207091307427198028315197030358330029990826369945473177179704808951388785611670336660861340175875713793785306140090959917190368230453606383567824447247017514336351150403306017497887199553886752505880171960311480202084737894488285569271441874801009742646663219335531968969719396748613475223726232928737001080156415681124895255473082377743989092512777457772809973753933116682081688678244360628560463797141438267221632436284678886436836947118506625947589528252172868325017619750515174705962430686190262085879847208709731935746335125703299531344460084704146894855852851896786692863541146042454618093172322151550450266405696862341291215878980034706202412806266145075434548237365470694190346401878260040420097498791146056585414947465550844948647271450479988678764495377908233997411200915737439746472024665738605156271998360201657675559394006646579106453842377841359132628057167008305965864138099573845467431319036010772371688941738239467772948089752121475726066442548526621346263649378459636824759692453436903576485814447001374650263819355176927125220417911852373214855192815305419674506191100006699035134503989852015405821716882901241008319376946443953125947709657051086690362867706111312617364288517017800877504783588263760290039639876738907201303610520579365044797301812082480959140321986411785593795325378584384444803362147967262208097451367998419104584929978638587357804764482727673236220237713812096251506351823721890822879821142113831306444090571942566535750089527729361635151435289388409483329278823659196941573565769019485171098075128814635681671875881211909665804410909473560453751570451231044657465159283175740030408387759355773337799572815713523510123767010184299694599536008274678087764247734582867097254361297255998571875598342790716911000064106229598850500809153847179926014428591172016774450006038909395069751016765178829697674073734072031844215937487479203901452375937356349855224885502269796625719988705457647955994261246939757971032949009757893428331547390628261582246702592449641948439363511919344197413264386161826125001370114691804437580570451989522623561005797040083583749501335077854539702092014480725526252311047246245967552957230399301410969563301641369658747976240045611151212516190889683904527270398241501686411099789998892182439888013754641566330322062560471588360369313739710291091069104992123022767420952925750870101373908041235151025122971999477848140144929269504585132279134526895378907581992539198722732581277444587032326929327528906991718065251913770691898592446195700776856835039948130891485596307231210512260410468941863359949816869800961578702364895381130415847888724876541689970905196969539166750717810020917837691837241686688984737977894157991459597149140053205715746796697212209293921485912561094572058828778750561545067624633990660203195457617654202506299915384715545781657029075542533226204011609462634073780578885043155746543521995956786549206874815064945890991468857980094703174859075596741184486042334327113490240470397979710883755038583153986725508489765576817641175020752439174224182054448829096179167839729885689338592376840052716303664419500680283433197154007230174030098231891685340457986624765984919448900608698370670031740137829885708891267183005787621722947090484698607372608055623759314266355014119797527358049576463838276241244181522007264540476598284725164718982052712051851058182527474533253225493769892632766243340593039637181299984571451394980005313544637021853249719067947786751996960840825719715770462812751229428267214355615456175803926504042310806766128160593437351143029830317615722065017536217181588907061548631534044014542161952463912374626873700127154560072508060061812477626174633133875173035152599022813434891808012426432707688869597275669122967968738561244729417199856278686226245304474768890637355818608075478564246506088035598972967740899924962740383393455298858883564568423124276868128350444859943897250304557347469813324076191484241764065126811278131577980067383470312175773163603923556469894737558076092734955126518913118990459055176605089693916379753486400039878105461794770697716273009992603676291599782255351294233909097442166025222339798933548955620796114245471902537321626857724907405620585285541919696029892694039744867783607953300313970902148384181437937983691266018353264776641499299501181226287501940168087772753780906865871572885164133928772769172755634004433117461643243674044232186660941287253882348326155389377442617187263532456653850909944395898517064216946254356341110914787798327423376920644008049646856510333172635957385662028370050526232387962556688314904008380120846745449756750714747885458707692150365095837836187877344912316530886732628503351764627511549228257611631188993345104464034818278208713331318606954951267110218555746369118429663072574874176546123352767876524296101084869246429522397439833627949308999011199745134314887047807428370846247059778712847206808670463424559423522859807430713664430247250194136722004204814551581914017586273229244380464093615803648611157310766157856185450634453871082139341119396081348983405155750142607556761695259045636655131954276102413139711862779412180576664778500905979352244159028872799618442755712723138043569711930375940851244111096105513048412000897969412997398950758701982263359231359277356526061073116913196643744351604047666648178405839772101248104070951684695842321229302617214403580546328564582779622597952802334132176567196990663925814460558012806060843613599709586856196072428887488592189383669945409368115305674872484757516025518871583868589672766886703230798572512058133307467264079090955417778340033692469312970539434471201962168991525305031505264235335606722312555074349495288799118184665648458980566300452921979692224477999228008995353900567960081331912354586823693488905438534827906222210723134684205415519348770246821348483774560987863176234873124765843347505833217734092633345685784697709429620786303649948818535555413153619071823360216856073902115661958642188692965758612441657941723150004801286735221594593004752469776760194544638890531265677903424086721341335258486813229114779749216818306362386882217031258980484966034994223043088419307583486072803899355467717753674911066738362973540496980838304266350530202464543011900402303585407363295287529745424058350835977209644505687612024423003254016972754745584972954459535802821427631189543312514396604606677901863076203579972178984188740647470195127158837054131897179888247385298515295972837897116757105391071086498510533287748244707086087737361540579566820277467510216751903299184715439438225936134078276887613785163272690256839481284177416336433833897307075363727259819879965477075916471731739411229748750058698028022328300854594451594673818125166186219999018485650179279143896922007098463705453850556335563429763092357241531767035110443486818858403698928764182338207633443241263661004781416684031589720440887348243202427176496110257909237245918552323793507071592316217161009043359243201488396088090092650494573104651157513826368008700643831264999277014443229956087839539159450984645177927312273192845194633206382257195921217599407869299561390222765579302128853004027096852030256947658072748894603627985029697391402299039148252587606463906745235663866337215208699207400799516232915606806875919098085186960602884485801459384868818976144677076604158859598499615902378362509456112460893880447872209838509324899953671642752689751423792859538116637168381283553388374746462882782330216651506625984646265248459134979890787114200606052839832188497481546045157839915709004537832633790177970136261084499887566957102261546241205260439633739269801625097924043838933032798081582701471798737259046547367547056988803117549820732707625997384774063583114653623488303897321201240616122031647453978823608464762426492000974906772781867346552370530207062520921679222099552840248205799382920718492167329507886576627060864961230757118635838811535555527303117146569976799413107148165414672580341315469603717423609217469007023415120902250978172330143852122825297613946173722902238268084751924710259972147271594570063525195074668316603796722467965634347750345808158581327917535866048307014725222082423851281186070942630403957833809312621283992172100794316865812701265779878193370362938438258384366902586473890654706895002297645793059983941229287971187970652281196137644204443685072391961954412218646646647976417087219783414088548519466475444193824482055637450346349663195982849050395958446216574502891724476285667424600728349382743945260595101958393379298212570923970207561619866130955249160401182824429002017166137500259382177568119291008264585106296628048072880030393217324919034312191301096117364712771944984611240986281813029985555810162170039990659435070499740912457324224458483929975999401372824013472421804414870950629165032422628840441194440532124789602694762690078337232313310782973164440713994807389546891236976396871955338192355387818817791981498000732644087817285167334037423862043730207935712484073400056608143269408038665668306433523214491507137855624062870508242332490485398103631196249651390897386402648031602799109412908940250582816199950387967667806058187347547398399027283358678898171870495232039580664877424619477720981428181086133111090959411053697416783837325327766796427298341129639315100548294690860023157468588039208952997214336789502013304941078902997614580825738944373000680216248827392330326386574319069349244980611734286879910444241958834132532111999317105047927254275698507833376548889027235520232926445590885104390998585255172295961432591885079776987418417652938158689832913813908556974094419737774106955989468137447261860783564130697547250068114698263540647795522794774902080245855008874174418579238411249926069480576119309839621467155404406209305068442243803210276752814646134729158146292292263678454806492531449662884386851441445498399383491901143071000157545094898169057201645363362873204070097976922891874154754431001832271231164002059046270682169490923800957609357744465016623715492782705837960143191476574947367681438993142739479541805163367691025757905562367107168030808643083429193256600490253121372385713134235468165806334863734774171650411559908278674965367179221293018841896393846913764145409503383753594346145482547311850922937119491438546066510391317040999152110248409002561920270131222694091491052997306613768862207174481639775197090197378367090954159368626519376968162482629944559469247346539320753864625811543743057285700963228775937527409590194943355188248433436239427803620575207959633006943308563040868323254403993730216142944041073533337601751766458631323504679937717845767873729340920572563355650318650898614879806590229605477752149038333763394067148614664844020848194733507503586298978343930948508226909198416215297823706512372788738368141889159702200782462773566656287772748560433548200588175944627387374951388819981268105189778824556540658469193197525114159422722987809820782969993333718728419485889914250794196438602723235325404632497510805940893790493723989454967388047440726260626873368812957179715792063912280154795400110940570739167283129370994592020576799544856856048263783830198103285883894708470656030152129453732303620242557102897068804095754909621799094620484165243985209403205598968062582644489663413685601636159569438162115029154679142801776168167725182782582300256108639043575712309301703063496762565469208728983582908168289794812247492366239290324925886196576495378179695086979173009846510720686880976877463539159709935980341865975734904991754368975495659372281203660538664142577102082697337794033741571415553742849600982820743280508893960678034057398113385035158667173215556450917913092889385415702418944805158707846103757563879427949197554668074782221287161699907584585428066950879466890406945762897182995899908843704494403768943936622105988787584281774048224154904640672022694099240990108430323960002119068959392377173467463675967618268467161502116580218372059278911590139730503688583385631015173832015752851893403767779950491608134667144561986059434310094715247943169463248164312708838693089057640138483810573838126774380073519998996317706177737266553093691164065146723228248631521376886874852834683429259295422126775794048112262494773734119935782283585069057008816567302609840463959199340593947172241453767113848377577754095355151997525375638937813552749037446008452439120248650164843181649346398322954489721155500695271470176936657130867379257329845061021579832392697510724842713705986536515562303917121368917833801548054094614783090331673786957939024321403538511810564613046330396829173092103482505536215439416382663979293095168886085949489718197242832309278540222474039577063093042260108575898426427205158275656669497268443731682453221455164404333165421573534739206633934483471542918975419393483955073963243711271160763757484278870858035456976725136114942246094440113265151323629962732371485586617693850131676220191934439526999948391240115242295421830710942377773191011873368579884042007076700687795625605003725377273949020961008441590517734676282824051977027115837128898889288346167645764136279903734683151373119749499795843392060066939625249515426897412861610843939147007014162880325626921417642443145270818604498461430241724295869816232104392118949693240234584007008912687930208332101862300117938880491658122861169609946401621144694676216293742889054637629118837982385435485214137587367460456602884462495558243782024147721587084692986440943591956814519220534236506942884459490465381417899667159156916213450660011107043345436711951577282624960346799198512834424851466985983816264289118819025180226663471258476757269067787732283647223410215427033425086862507521834700988722869264839156294937853870417995677133805847822978291756952497595709049194524563256648866241041520392467115369306340530990367804085067293129255159320092701921549117832975467000717176017694919104638529503003037194690180124925378018190412433338015451331421828362437645379243711377529829364412217000827966569754618730336138319244372724380072144668133044041998117053074296178351840637494199028598317579851620289176595006972780197850488376147968776038387161805490608189503004182182147267989986648582507671121643614988419767288228086272682018772173535977689812197573006571332786673138322716702786191066119367122860679695566580432598382637670550796576016753340575726695345395287880584170322558446526411340088623580777659836222062682347223673689582948213127136599086909192908331192461131753299558847228989090444479235196506937544854341054624716978102940851134277457106289682098208417938010019038134514472256371692679351234283466896509714724381703072248228244659263025623392542696679467280583453521453057432953467680302531282126795736184533201028503908686279621992374067511062783800988961450630034533617063309643036888692509485927547715869236730928753464296604890895386651148003073308453289998300385573546257595049248721357983594470508905017328387962840954731968179610378424175098477077976806451223948756800384672214431707499459576243377054376031403453746743906466545733637540756041099504536317425104212078745708285214451360566984577184247487389007832024674843233219548594809950175323053401997202776801291830677316757919189990190115249054025006757417581221561347994472342770934527239789891861424879598311799038748502002482053660424694925949171445751866434158805904863980984004580050769444003937941549199124790060233920093805443296146304996538201182623306157074090670216993887142480231880129270582296204222348361980595215287962351297538274645112841706875565908925423081113970156798972159714493535519051016687944901667739330253203185559385795004378778880910919910948237708786144183640252023320495789191566171255066868734420913054436542888418729522233938558479834936781106962127158376198516709197517198155565038677380547370724799598784534872139258767679915768854137683309984656663406778525894954428319986565005731210612911385271394355510040153140734646253044210823513563945040109877793782182293091546858915950156899588495772568487939830876516591162063390488297825137880861940635927655671780098146704508333331344431275389149707492620843998865858260025104081160385307675048943362233658437831147118278440922756617733809560588704612597895237144191989003513849617659351064949401188058959323326615440973792229411779156152679731171913175677736065110409720659484136582129703768016283457955705676585796934547789243785824892220940655156119063003739172260186297632831617654729869255625536109199539885996934393780526365283843965103847893815892603742188655423377845479743198620473267755696344080993926677766762291892631302922963665769306126552165926649832699210663907282215690926410513398362478982782002513198040926877188607606559124006803421377116008550884768707859207983343672166197326299348509608545594406803810207597278878377349493994654391310866923724979283467611093683643838972133602585532412018469340614952470244699739392062817208411553664096483014143288868724633280738348914076138571411628974613978367147625392702514466768069828437360786492408196730815155771978655624142318495552902529478230527955596068222822061755185137845336067902389925374553995792758066506919456891490632728865701302317597534855999397392515150492137492133544589677671987865248975809680043060728642495455604349072957419916937324342109289103603089827330731161246799152073776060446477699093049758968316804346111491339901001532748969442601564180007330277619470275778177160141061841467600645647988700170394426161730699897489673851661123897041908690805389243647892934893815610439279751349192949686369752927938924744801677894367186510765143271946231484560336090681682211010067534687257730583685956654884722840289525675202869352281056811885702286275504130308337875233784130182184981826961779624364915899240842790854830386666167003200257449022893616147201590822643778079391816362722251627337373846354975609974143677121053910755861767141724250829282489970823893994759663238239322268102295694546624141815513485518884771966506833148288969483443675257158000390142557231394335488702495863678602754702809212440721755434710638140757521649573413427366732749142923379450825123883225721632174134791248424112082187639395678558607486548502856876276379900172482767307387045026770302968027949342114917914629113025144074782278208484141332277903624800566898761330910340110914314933384870664578909775756339040173874082816748766464633279213796177926382825454852143427175238455976760684087121686473244721696080006142236294952584993217985415329777333858208914570772302895662062553292557625115788590192612561447907857620974676425879379572504951899958023150242007599454672141432874401830681717470840250378078514516320185117309243268041956019380133020401584875395405159379365858085351430119237245987370799607735955040537168521241518695194341924194086830911593311725835265555613412559902733396093157692647122591034463611737696662652392654005393282414651505954533438774872970451306718378061990792401684581144661545437658265975229523873214037332188416646887908862494284617397433583261291875436237655932880345639227487663967663664991091962932410674113529317984914945363864525485480187214113258386127547778596509850226840220033522283950461808828118988002661486174005352195980267126530957584148486480442347496042033734589695958658790275007158224351168746117296634649337948390257142160665875057295054561646339207770884497704647833681545876044275895810641254736252551530857700596174355118781916786745166605187724502687066987408702250675493334576813162656828987575024317172291779305226131358183821182057591613052913290842801702288844239137558456512789709759987101933015766283851871278934384553308584409534596596221273636091278637743793812395650380587168733841419429661752131186454085065478483356353081954803516246881666195100553874368550672593757793379050875604967449351678540501620207675354001890526364740822997557288822568803077015373273766532991865387129019760879822362605307062546222804115791893646752897589026654454951375966898615261586163017750832203089797761061264034357164152333311570898792959112670347621946807379831763510447795171981769626887538216162729602701172872250844040851345649961616429280609226460921062346709415330439115379330369916849865092768621010133267061720643222639498512331075829735394580975370874679043113657942227848984026913978174175196533988970727665755378220787218957168713940400475469627499538732086720324338681762197897266780296358464745418335914467937750049584638221881597924620750528910887441406703885248746432673206636078209756227284181125159646069531036334817270059023122599407413172140919874448112253638007973412914809299967007479101830880964117268489067295566332497816878695386953200889507554480506603663285105523777793007953197280182664796235782416861036523088217252125006850720700044590225769595778940571705496531990638696496494798582631849182529001681637906031111973354186552467903137599909589976871612180325739803790753192302035187500446980439645218183919313042482278800873923220061297305477901982033352874181882510029241937542640106616110583861268187237161890537972148605516131487226207221521446501434956133679125515649498652136266078231219905401726362060253040000239036201796816755518503887173465419832629791899748188615863228714698415863783760546363104403070289872823355120763488776734792203553065905942837225652221556932508568112205134618820211403401002227309874788708826898176365748710205511833647025932310591470448065369005577195307711680871120365067487919310782544432954665019064826794230522320313334109675442035537416600748774928058947712516413165870358818067391136973232743202615336737611500990483296679621922647164354541729553731603730486523743058085400845831050982908136277081950794599324490751000195150758256754549649732910805697385811899102231906066004882569832277333292738332239827475020941082814820768288991048225130610540162118381868544108400637200201230826526669333896939014467946427616323803775095931035094765324807203822689003335966474193294422024901948492860103249997250869419568231413882838196181214184415934572819217217811879473575692248828889310793263231098125840770744555047369794653397467840443158561515709868773439219669948049009451023705053111142818506460342554729159526081496754527563288463924744202808138276226909513893934477020096735135624313123718761862564000015615723399491759480893313679428527373691717465028564539146370531052131845757182996878233813119598551525621110960286132846451493709070138835124732289578113258377714321074598050902327111656101821959366508584336350051189826172127399076760479831263298253008387256573127325144654420352633547682422917709891704498096602310234564078832721394369827478604472455619750600761942618244306390484413215271778160482263260098148684960353955884128555205369939274836625564714803713526046117780284990843801245583783559208305055004804626558918065431178901193206637848061469358638665791486782259855041771515193246436633017742605753556500483688652823091898177428051996092847097388261452890339797797112747315518329537424744870154048264368282711492035336437521367339315938171308296751671825255821143190472456037202902950436783090228318625328974910899962718616433990736630933828888376708877972230392673313489264076441785091576556202020572005843486352926037312662575710048486618187160324651916093895794805192136404153148062575719346828350017752473664112565275467269146621624447083619621230605172845343979532719898965543585843536803411713330256311375693965085967190209306785693529233259720071852155278356509673696342450664419131120756296946731976770373021455797788419281740341025997563001098703860645900714472528385345974416559228617912437621903284135133992439852159507897643921942756605998122264332994168433185596292944635270135836395798892284146597352988723848315910736412658680432391676371890063146765981989025204168570741599947328852102696186488190892798957998571378526700572425548704575983456919456112748702100935344739748396736193057005088401030735782979470620883625504364789132835798608702368066966317990833267741696242319776819031625107364672021859419913272280588860357396387829212328939288307868278688708775225767234082272619684312665976167610770309620280903384039898373834943510179157433532586617853005558480242213210233583599778787857460791996940558060360871588477837933471009445307951003988517868474369596832763009046333175266442352767669518731335552280511632725817497336095635933126348977954637824094350919305150550617294284373814904828071255270308228080295575031009127218936585120652690169260931270668224010401751345710809629272361399587098744776059926566192541186194842466270989769812222329480099722219126229077968430331454139970224463354410904277917767617631186188902167994598581384200027546268451947091547616103678965360175420916120001167743221323821607256431968493616308363707718315739416921364277632839575239059454258077559049159089935685766188846491176757528886193201105697092895610492545237441685487628264662102936037884425033057655945116227822516803875558722142927420587136795057459708408494477856710454776973132401378217496102988027546045956283538599607043985585219372006347920357876306946763628468073920057395876681373976475873695175324603819056801385200303403531197890727726865843464241611474564872166486263913099870793106057844683236198556837685153767481855844010623272149580025015105464160918400440993284942287696662518588981970876355279904375297420176482719535915483515371433472079181116213698018969511032723177537068332624204884208485070193568471113549324568211083788778524864728699026161792508636124635690786927910496002700844969054963566217083513438357020865952668667229357711504031778076022493550752677070403556754275387931862664328866719638477132935297734583781004074960261920556300911747276812857593841244103444452107303586364821203127705842695506180118881614493527718488204078163985157417333842407732034722497085540845914279480569086747503444013629410733438464407036112360231235345712912338451219869409246398662868864617196025770581023751855301948386821241292039311152320168379535697464111453635949057266964484391278424773690047546775120106573083344913545883440950018785477190713383070897161071071318957854061370527866830468048794296144243865452435267314424924237292609195460649073634276763770077049806600758327783646151046936069336709377117788069856528021876883292735269406413861273859117244652692373977154732742093838342902003951039417718355358104097307323656092124704271579581366085343394515644070734792547725844831185341792972223478759685693523117696613470057937315178058859733587678629406147060303835671141783033615856111093065080386890725481528683214277143313797896551874125529973894122122903424511154920938288666165759603578185112178817398216907143786982645282142663415955366778573332598888692611785128878140072122297339383995851253324281962671995884645115134898392428884936116064776501335637020508029768040864187346740480673299680767634222177079182112957396737528824475138755447105745657546151562675994042089362381685736419822732636299298248147822908819206561569365049849952073949952145564277109555905702887836148685478686973408870491806626677310223047302320243686926566486332311626348066919360790176300412076435291958044403915775744628031996887383713128784249709395684695367448952170806737065799066317892534889496592742192995109993275182159676054603035302416475001984638291641966567374431216353342522954542617120410355205877934669946935316915655005484970302993700601995166563796687837380219430562220602674644728716479608481991420462469074463466394503734976619485371952306181373749454243876884824801504565154294533852571482445700180597987170118122077792962207677758940844820170079535025047457320701445180983607594105447042162100885810118227621620757104842276229198261968623016299213450474947103156930845514751854235146887154390600757944498916856054388094163027657926153942250605594685606923873678524078766887724704423623419079754996561578896161955447697169216003921522829377835769526729135499133428101050349476075604700460648885644983746614362982992386742189114995339952173484128528040566412705278565457118826541239864383636558452382752984797673993386874226465793303736934610254380009240747155439756968773567340037061073094899157818022897349046801555987869175063986826638924792271118590729825460205952172085586011723513722106000704956951912564790017717638160049972584202510167256694296180086269416338427181908862963343801860051512482510096834527029212354245748647192983996644558242222111569084405802367339537657976615797079515437357295632750923139852478294742981957736631848247570514226645007067889853151849862690361962347041655319830145954313854335442242113396502845579618079497907731929949971368736131696395791326185265863008263508330333692835944330948740458132579235801067306337855226069997263194519132684818116294184571335038996857931825023942205117348761585285341782704194107643831148832165829382930990665141351731193302949713659571844388464095222237998326107154384116990619834463105316521221730818544531616442741706539817986516922531510935828099067781556515857506698549673420224551235944179447993546396063020452871327360613411398861012396638399952249690077028060508917934602798085744740578641235719508798592101482620931391583846956314663092545132578202091051399610566053596426699958375519843283579761693237221508371131474606299899604457715755958638712710104077207026907290421522450700823149119553734425623176804826184046725458178892588683450884727618862359386376994240960520243114995155150932506296289609171287107564813390082800564134694028056221223808655158616132655704004640499828274068280850031568121039237573281338540026704532138893025625795777259129879514554546534637679515935445320461041325273270450002796039508176306718695366077399508957346017002254677188228455521093058883575338889282826735597217859805038974628261742388237905683389569261995130832805719314464522305473630450704585956135431696939554541541618372097276965845680012221528201950260815737243879911856609197519349302981776511786827967379875403710543467631999926516538805645704031718209118501682790000804503795006858312713824492962259521609968360847536804777194909648185354468566998097305234532307434310683884240473939566085430646961125623591081615741404333750654887996987077035943789383280383897782841859482032571484910776907286262789336883754228289647222901369960341806305677586607836553097211532957543904377452830502873707186540978205934667727573355669066795313468321220362111207742875206986858744572395810815667747996998762863418206682272490158931825752384125727364205302511146230815560030667887691411945423046430259489638272279835940932673083544746185280912346463323226367212734373045692141673524896818815661887121563309508799253744725452108253660784296111146992158489732145464528489750827856348536643834241788309016419988457794446918723319975308033557813022022068696648343253166787351133810535056218877411678862503803160376196767612852180257683638666321685393044362902432145172454400105066555110423644730291129369226874271140844905449517189743054560475927849900429499364140791593939231658152021180155212059746460520730647427307026780338954618366917351476033819225480278105728948958630383113856677838220710386375602699694487383854899155370608218128645001751005197752451213039322402054744710727581553665742982105459002468285588553374430123629622919257568231442762871075828838382152377384201359077423354024980068279058480104005146658958447570487585180899010212244363499731241683617839992660517536631996194531115627711506317428518107556281217494606048520606650075660091610761718806288900825540785966313193686028863344547170406861214912724864312713985066405712544266617138745991959862913656765062712390978296883084628830649630006367286502105820828195361789944622898145731753433865789065677383918039359515677071194972704250133178346867870079945140903447542656766183343178094859769400015492461239193448706056424118910938099530070746292168473747692571493065059639219840447368420763909851027744869692050732144430265135522971624783433669590254275052950229473448997391962777165322525324713700547623237002265183333720061507918534638730214112357119477171137030974559235265208988270859509504295877146078286173668834144681117652444671768803281267931014064592592719752801011730951971366149051184335451539624028353743687292278721644374456817699686382328598602667114779268468744481660414812396498964145447273382253714942122854357192609140545065895532301843284035319471087649677192871591983970677254658804767977111612249206477601961476884355324611771950134485874053849357240235108022562212108253111198959093844553052244840130043877711646463079989692517865987803896715154307986003515714518345812184505856885766168567174926541628950065232764384416942185515786592865271886216215048449231328349368492045923460745272933321488903165266580273398257613877666588766095394772712865517422189359450611025182790803818617185851239531725542214377237259975717965386460876826026853791527883010957799504084246742511986592494295037829671080958558103809102848369338859751541688814590424715345503721463709518725968658915196163899307929330088301416349007533117646976938941553678049624149551287110576998738092025090281982946531443182239730938701117645061440629890376211055257000096949834935569540808859008142107992955579577798552029805441682373705213193360471760374139188284075021368452736612071475608987064351772603046803055414288091669139521095820280438047879171733165606736106602215427854441712413946868833804314129201120664702668239523713868134304930427097409336703537824359876305092295307626503151515411488888498349073560205340793441128437600641159530767381665140491019904484376932103111796995566628134532610538931610284683692750487987568088282811313271775982751581824742647149870372849922014542172197774880770754389019691974332402634612082097904393842479581897975098993437660140159639884634363554129625595219287258056226178106118797827553039225590171813685789725280287583963776621099380638923504317442524522384006814751868824137863613873477731571699794246730968262761270465346529717917379816382466267203741166112196226460586380759031589682933463381846175569869652435841486998512694682673409266934916520875361404571314240944977892878812508698448701030817408608566053961247295609011816157975696178934715543596205546740474324140709112321673512463507719356389900882818731739330259547718415143136221431667589594066910763033743154983534440891894594016751768061579713108084521092685831302696045879238459646921711485253111660556943247440817369459867350661704663852698675207129886876224590085090920735526362233488594821373652266055993603234478454511514033800663561341341827340871965283584269462465424035116842470247672732032829419221198002622784643991675129324642361590234105960036543011027741967620532598172119070788815345654605892943427012844169677932463146195928988773135053155690365834559870596035140554034526361584555763519552664457664835699542844462034011069364444851252479505208970849160072700692514606801990143183578309925065793095469114304805211280561354118236354934657898357436940307885153095807973957686507278704478194358578782187528766220295627238490214825903900196240888845543766482646827992466676125487799573481864482019105992971319008474038275717660637860838550736363210063676550918265817749272545666805839516233263541161352445037184315822040334999930482665295070164911021190451277965793685992250389892813053651285367113800491625294372288913181501214149883647380855658258288697432667480308529469205720442465230360738147204174840110454349233316693137357132235424044373936428499507215461195833923134434293945195645482840714340117320217302251748576284041046996919709834810189305610044401254336705327713655270926772734042294019864333429294595799278256851373756236890016494124176145968558571534405569656149462466590373260583219795910712442084636314593622165270326961777075576697590682854832804994726743839219630745668242956186592044361861050608964765652266333602828947617546189160124101055160796236061438258239779157671997654466230837147817879629555537176003137776108078167415352495274885039947178664828038656077707311971825795013504273787827887390688103396444262076446854346899774579515886989240183824015999356070366832403129828860602610934047724454863844059577630618460651396896149610472726646468268225277290400582837466065123412194667242395911898976108349902838293392383692639031096441246403554987799124248112031851075330077291803508114375156526142460346647655261255585151343928474587321091828809013350989502720529693887982294760540782437855746092398989595661808442036800126741969610149746593846758503588170957566756962284987492191100548961694010216526008000053071171874321264827078212408844520110733879752750495087939473080774951074735321137915704834999046796382332449082344644152037791228860199449367837666845023702839784599244169082565738795511586793625640264954743059740607516412670076184154615491949651810833383460135081623371699836167977104315758151278478321410554316936142835760842304872267390782401318452757901353922486643519742519552101167180648619661633300630094345707245566370460152963474000823495605138133936943144760589319114345739157736564689541777423810119183052609776598351104250759161808173661703057122014493920783260698710090828621126138676583223717834001908802671004632537759637331265509463442808222619627483914258575909671296532924420234186052338495197596163681360551207090862193349831411488488031551750429104121869967526445215816299668443555539462047415256021720826988777709623753807890183006599087904074151721854116453602515034461995366431345698152447415026774241132553697954589230918093018183956431601843708710623667914989188420907847207524243374244049788144306888642623635619481565639174323223023436440796055633258869848058647801920890825155717004023795444583260756901029490955503487939337558094090558957359421549116969190597795157966018636346760367482983193280076973300852003433056448827645980579152593564941638914334583058739267400420002700477027225194153149918712454906930375315184067327646060621575784101379475185306619464331784501202652574230895544865617949221606186545200072287332991934357871339752142261925045299875528734956034743366233036994469363071030530166605365590542912317841219792691854385449536530095444970174491367584866320568571609652600428194254458175631295430347097050274408697071546062862160080060318664463990992105633734261086963556161220461606589224368818783486677115655593406067618084882494720929989983784250756165247072770856005047692340819814374206133791233876418263497676288979945717073711032224460522742465368125371134408422838040946986899624639956558875263398656543199885058442417712387283943784242798254761516753549766448251722246314622556698382758902889374224396337221404987223201413956113565804124988455452087394754557342005035436761220009555649492583862622011179357274981094364820305839814353755946112890057955599788391987646833233108303525308566568878279934666775635087819935951771927250602285963285042420444035005540412143961696784534895087912019976241757025450730666239297682244142576950492070970677175777098890010312122178379349550787525289498184321652070672913193809294593614422159743193172758823085506210190858883719777966930738153098532662435934672592844132623380766624929478814837506793394765874389636205906218068797452008515326290725306186222968911471101248297226007978068636849617079002287106497263361314103556760305166949704366319899013492934333633842123692155145502349796034170612398251252096482276799154805034032537759630940350311759569870679249533561650143904270747241133705985629786390874937964074432957487917419738491539018113597336513829143299939240177847032185731082626341298595806755179005217597366198664812744729437138742910583301504751431901234625681448473746667602540837488023324745361384359156312482195667193766102673729319952508534856909984795916774086140928249194915246312128545938847164219200543827718164886435220951268493151234631618571696835397934718568294100339527052778362834659074107706995511708905100790370004197495065442826347622790757124167725229727340107915234339904752856097493121987294696719271841091297065321656267016549112285684052482960373435442592025794813729162485973522457634796151776624378432095457598381187895886125275239450508869241075401448925217080883621463083197852718922293019889924274988905841053164343358298928395999540857662520847053743585585103072306894687356615408093408271970259698561857802370889822132121928940712447036246768148710463601280871275925834659096756839485327037533396818056399488916210880678279104991313779972770528935448655655721734778018715791149778747496476985449308129754401806537820842184539145869974363222267133981352037856433876901104992150174354330184234861414174224447292612363096528052709524074883103287279965093417475689615721204586704922670212514643155926472139695204569412771864371393108528675990522862901371605137106480694473772841654688746214645949083820616969244096489314086667287286937136364321727012565601691247665914839469856661533110192584836228397479586156442458426086755869217042853698265111542255559463822115732423976091289331797014971301721988654768972482299004832456152435080368995102670854746715415040671191441524385979366522573715504369629505962278894235268252496139775203663477208825231643104777427057284194998402086964307719193160495604914267826777751052906450159371059675612599978874096830571105800073928850437342683343243368054064563701998179852732208763350548361140677893472864499642391863116690514391190454523066136540838193542999228304013935946523802951247862076052072686261428129323743676368166350458606499976842522076842550782064470865948568494218351828282139422090433072589812204143829814809175747398790271091334268716140878306170784290114321386329101948575573472153699785103563223696533491502467350182831731074758164886758913832876616884568396163627240055407189107172568618099382043967331144181648375755969181373898944933824147525616713593498425791975771636048314989943852968599260164012208344247933107455458234721645393246214638508926937231322773024701432502672635374910654403394486406449571420695493845266558194408318778681581472361572043399492424611519482053748649262294736916739822197153004079180510640079138006565674539106031168377504117522953604807839557066450173858166593278040477487862881214107404751377375140277777032669703581376584052238250858063924928937740428686594537523707540794111161841369150046392381349626405805728131999879189393298983875373269040804340537185677218079978155631840750850764155579177662125768239621882644289746313672300941920138512572059969862683368421531782957118834486926953786390526742192255568857855054575999255070841562605088446190890130421541793771709753002237408883092669765288268069286810960627623384561223031267676626096276705210616632403455365800323336390488243238195353908599903304004055009087518046023449897520739287374420006347994167891091313335316653804964850901130649589146747949125888076303513210168608065541409785070417975399999043540784618755270218030665139067631908020737325917070785104509842703542048635366746036865661981082939814096219151146969780828301203987797751759110567406644524924027701942783045325696919786571988800131530084577634856464241654757528882070241331922310220427151397283147116926460532527615307262487948656062687094777669346298744653725676469204120687796330580367132278455972308996093907085821290163301249709700773568505862617545223784524521613544579840062042008553856841858655591140749587904950617894931323970240868974257482036903445615832653342924079319468890796453323004355892514280691543391707557674154017170692188742609253101041562662461516324875832760482901493888488264873766162594326968351575669131243826054452765122856816150465317675935882716372647633318773152429374451726758547524467091738559797564667485793316145723700610483207404107945981694068895301850945871822480342418070757568640132962014239392076213741848806908951329269510488132019707480358768036301397770174577351804382053090398513772778270789166567729856693755629981396364066468567009336573492778483677033179705651682785052879429359359089679980122721859074998917911137809883524194582873250260519482634222966827803586206788330492066439460328538644585034221605816647370911587022177650706644476366442974530230796383818792124406127187779954784967214582933439232305995462137594344151971393562562472619756233472511633706171377520260641269941726598761797323132649828350178002004329277518383884419009899775034909478701576885073500454368668547419368282704422368354098959234176642911005603865757574936818482968254207727612454205184112995526858222462413035113620552041376405910013508408485985706011886245984634950932396412954119103636516746203849608018258203208764299242206257469359576996948343143726597697629860740783709519602483348601020738959706720789833552907890148856974873998011295670880106556578218364153837996478091692722636683195266574449041799878940807778863936060703216605605763136829354545079600791815181066475302121998766793352704983903101784035207948105838724015078341354179119623721050323949617795835330517737594915798368881834794536414929420652480986114077223238658832295941587636860014389073682970464853384969186123176077191855241647511894951513962982934795011419773626146402762082080712406667900197224434985829768656613453796514790378362894132146557226340977905620832755527861849842769656720800347192915738317333174008493418250937789341320390316202525273786843592161940115992458237867001532183907030492452745367570311373038884402177498925560088645443150034250545806462284142689678201244473000325196226745534296770284579366796660644597740873263287198664883783757680417648118630334218688091873919104612208692688386747813847303589206161606744347163674578880210809806304666486757045412280979907324364906393251426850502401141160040438165079184541394728581837018069377809050518787581220700988662876892644632947254057948735037492318463759490519855109611198942342017563727491694744086825127968735077904663234094645609410133341210832084934908874063565600396861567839819395332592348991672537373925805197493445890560496931819940871833406514465573087545821923538663482218894215200834629311812647856258238155856756536957334936747370907656617115958703850318174964645641456839374004325112309213021089307871456598634953248242862523931715219622953908906908997784491719320469227826028531520524465949832283502269765871406532556797834484925139766138516877389496005103469615882999043281134726298146999992032230306823403538144106089966100688248438272691260170584824475075297759227649014328891136142741767955953060853099378006377603041701168566023578600604067609583474640113161446420117803655830837773895731702994465365001597941289663781886909499806195935348793311696663919030086757549845616727184517960561887667896027506971721341528202997129998383547475151983720869870216470202604540477769273154913310939858411645356122421087397816989318402305175538595332303991357877714257850594499554008338848502676666797260899194148966222083170063038334222783451940175081550988806519744975688950673029220502905703280905442078550393885964801373019844909456312721876427449951855272082844368751474692944611136688994275861822827644782338532168728014314332787559495027966996546993933395387504494089740192504840333244844486910562369878168759081547465618593907630169258976166312010927626425831880094715059483600014554134305540949980197470502158907977033127579784430096767942043372273205086875567460713193231666297131204522249662398163450096592528909670079383819263483242335589096604201922368076720044752217114304445102840845349167878876067410976626191637921186833351070576924321627065772782016808197947449389624008422642863948201609144699965820969822846479949894136980575854914230425688620338033682696359544340583771716878659011417952409763716638246152942470118413475328119523957357532478561823881690563236689969283699220864226119289323470902024303909476363654226934418138077017952473787991236369588494941173760969901241858897638883966218993816634600574561603244154067072998447882124762638631257058869721246466418234073539182094465239313782819110662394579612621369000827454512072505952713582614847150773664856076157115077338202581532278723553470335642110732282581377015130635112857711643920485397209213653962269499220631118230075013404408197712308099163851556756436479994727370699570767058311156770653109385958425439451571985472444310347597142909601116900678012838123831801718288704055200534143857891704151146227925334574354094441168800784144483774296894816399726794050571524917112151941502541714332989364369987166622176033974884659762553412532848963750516785118641677027980731229639135854378781588802204032788149974600581592756849194811824356916770461624027030130272314980392720795001127669008255126738440672443738531145563355924626360064387722231715135103338009080629843508154955565230972125459722017099638759372467888507438816185051965468285847989743310029104334107864450038377984496693690492059504522869255854108919466053695357322669241223910769666380922548669904884142408467523977703238388927576775011172440508632448865549206735053180037073199910367610844789507190445352823855922089308065188752012325045254195930369916710414888444906436114842368091293442525052433261997154487725679955520266039873743461530170033475693327637821846100378448830422233432093647052563692639320983594097133671081757634631210805438267979042144486461193541715725291827563786213526609779172973940357953779978797825042589965636491479238759580579295824750410041934011940817925237834585341387895895976223146210280915233597123691898222393097673943808394489880870859198047001906198350986491523248201685686539125638613311095213381043703254940160876777226985600120522451489048801513105325681971821736617301228197467511492589089661924836524962879127316387824080236462020612353664716807439090066074259760992282726128069161437039343552776931054290934236112386250096228463343200176176751750889284690535901547972539774949358776914241969552624862980424672188160205876543198106315058863212764989429686110355705006645553772320283616740749322712133967542528816041395679549041908085965546956755236415715465551876946773207893675765718744937965631861145546133452286888460450667458130503893714582872121879073296220782373889588422726401616231125285767047804065585396168104326027317190314853008837083061851724489175331916618447700608484489777825215237223279337850865463550038956200543602098260230197189773664381961347186849227137641469712115195353603202996422232751051900723910045651026250703642602819400396344914377934828163012015294634564450599260658941147525431116096197444047373841628976868771851958099623652373270429587884661054259758198164589699449046450219547083304432112460110252074177945684090586580607627982540065437531061769656401463696145398657811704085827618257694290269508088566313633479492904872913436598023414580473615355211448630199917301565578749220212718225892873051457022526217464003919746457439185725556550057966045232634338848143415123566491598993684039953027730870514282627997770222437932326060136095441982376576609970567773771564988728663375089894141180913399701286305584660551590048783099963710434863796623450459917942965721396941935245311123008702422452956561829992398876664419947232054143039113576998344604126491980369242185620855334301930314164051010191633824130996563246268891898822481636142204666340241466038539394040402621819979876052690453415213443623107417173168306826951459619677620336554258154758205163527609226107288150867295707277424687596452375994623416132685091320798927459730786727129748872049365455332450001066729955113432043060747564332711710476178937766677392150262590463984165882160091447539173222995697118600682809026050050707831999078832349702146594774444451491865036710437718262078505333477543252482941444651871265395341247371418301371905360896277070475693657504892918229309942699529505670616609618239212686078492116856864827699328176192211866061294488907011645568687247018949300367208788660874734872465023563847784800797495657841109686094449329676140620533349778354574556030941431362905464480094759886843450797602182533810095856432249253200588282442898839445519712330485609089647680470176007628429361827593689132013336659639230984791137162839027951901770487282862856566739810644830512071431320803105193763465180019712168417633693346208310743416853692786602353299843382530423684575119635320066571451417592759776973012051100747064040619424893038380062481286142655555402780019937072686707576979395530570693114220022791757046171171861893309776211663851463015168499480299809795293433856610956362514001086523444537039176371189202751003480161864886996147192122520550482693590908250677560466067696756976655406975615207313147919564141891226041430596536593657654177038197385443909178750570841839596144673832975085622321443036635765891196989793484405598410061214282734943729684239018252187541328082736057043420134322822388552420836432130596361229548180592656924262750853388415922596160851217944665034982658275231459056593107721341534046490643097341499622019401514578465389832040436405498572438489194006922539299827500801532655010062024529779188474540017578873061058047941641473415489130332196490575485195774763738487213073041615080597784250812530587289760422028296594464414702354010838531317767127774426764518754514104236352528261507563548025808250016986013002374155531484388508523759447987945343086665060876648542435448373474964468450674036447274342775594712166633263534663928117723906589172669770146017645070140333921860366586695685072723700673798881322394234167345083264885905445300169633936932014380688602552641270272682747492097996017554023681156226512702323971106182959440800068151789436690972798562092104429179677323959591654707507359829513862763074805265229749851507898374924351909028292349575340533894381934827023730167920665256629624611551087780975353954938812146466917383688283345750664524184550066225630811340763184027555164306275194192603411337914030090360678479542116431852416529781429816885374548553731846164492893638968038199940509453187044259191117301793856454961800949731964525327498917499640478016372277434860421952082295429826684375812929525119173028163348288551862521726097711235293245775722870295776919300457616668319768537381859312241973534080253085818456534494915115911666398610499724096030259469101031204430578817497129895280429443053026130889399578175616872139747965348771440191238995223649652225184667510202983000907176788306797695307182254294972794626490242482494046206752702936535804519148151168727077022336761729893585073731655494138192245988484401885468439827699830018852125060647798610580388132516971068985670078242971185872053109161400688926930964071130682273662407036878943733882423489733409346621235618139354310772265651825141055123507060464522002926699034741435672304595137289183791155069879327666488512422639626778307723334891163585433848122029663885915219933640948419890812509574239731886492585474726794534001380363003884255280134327466211568944808163668960829025292826819049131219935673119619111968066822154800303035110583612558546235763857477726818899268272050270431441697269448178660464480400949644006493120860126120381100357751219083525803733170966494146689723575905340148680549178918568742010739630992175399528381500294379416432296447065675610325408804537384256633982822470286747904451293523002050843082728238295876370763962467489320414689092366317915535405181378891831300098204049686435130869356615290958430104383334376423735029907037603799597954887093144914409401616798320151751904126355818979663474053188181115415890263340887421269090145329188049047839515125888484452793145183973534281470568613342158890207481194752272974539666180341134308018104937520772958929184236269188958064805020434195303887776761464318652637898124948162140316528572816227866003610570696210613235226840550487436763997031473786194806197717930486277689853005917711175378049314178209563591441856643957319638307548346980972881545669722879036639615784518150413668933660091768737820367643455383268009539654617897317341204634003968075575606568294035139796125400585320786331370672054629344852641870012395792320574370594456861863541738919234007128093344544497307424435311526073263897814307765222511674551182771003075168368364756599047273152161841558088005839270112957761462375566371483385394815966091574885392610659627554249098307502865086991394478286748663930361508524695981364247674575937233447455174306652033499509349183863175911558874211646234485009124427027161332909524831268179679042530505862322251410735756368733817378782446760018345028898115347404400355248186986331400905786470999304342461346078495902743804231906872936680135423054096214454147747474989460439577084837792046544754410756098852495977164237691624982877700965548215651504080912191473443082656913215273760807915186214302120124709085400083534149933531667026956899291947505498197271506554406761182269393102078611680235957923664508400414933907067454000148316295127304085489266139047599200300020811332187847921418023804059199577217323529424893374532604481521811679083479152573404559271591933382201983714241142424809514088843530078942250180233195792168084119296520811891352966819401852072678729348618180630826187500361710831648042570505298776276629630673336440888500470905124435734834749966464390877849933093900399235013426844063583273936250427984024974851963528361387061124469163548789209300968696020714569733279065914569690885325759643981564539365142228222063646766636997557792650521905137405936007067957597836833735634875575387614871955613110372440755023481397055728916720558318179086389833592644090303077579252989903959489179576856592988948779842306443227555068999045353005984544210345788422787663313825612192291925668653474448849090045546645671795940850798507879172131007719186560764072667331737974659731567223303120498903852909116769688822329924316866756908143307948355122430768292244943430321339416631376303513966545172954624845350359112850360951028165289691885590200694737351437824038620124162984571328947989508441975117726802864125957838225841150814330163618540164156085723718533472369207734026806053276078458436090519221607592005306550111875020217283089880294053942084719847442491058917412972936048374012950120074637622546972262308383693342530129105390170854269918212744873223382912016894712858181229462769664714295098746966077281326967211558524474654536618930743968628174742420679679415457670097978422899238681781639115980940658809741829043356304845374131049658837147799856182942943842774802093771562923299227623545873433118293495224752490008238591387064128786023502935285004292334315298693879691623414010150943085929567480681787664585791080362871655359923791907967003568136563687790889526435766993935240889057084016391756150314362629377924820469876888531991013918554326075383533006417456617806699809648861368482578502865854012192321615585314046720724152257500945587017825388168753658265408819230035183115206770339102551280735908202893288574102694334631216133813181012271859012100280532677137817306940428011488823531039257771918115478611713825548462854245882136982349334212611082669696350907186646334628954159253008229889160424658860615324160790989334083683924018798090681647416784877376758584821476137835026972186405641512522276644053362773107703849847955453109488909132981341749602857699937132887984344022996150887713540301479555875967877073252161350223714270636828070836909740459735239228654149194378895984967796518261586487417017527958066345366772884207357543463711927454057174262667821530135641495292360117168383560013678558012285254617226129326579181507033515724970219886569546176911777923430304406615328752388376121473638358782527202953022042583857692863635496382566593721200714672305064290157713180377462286189441080335670774644189138139615035937253505759871389556853151079313386862331318119260594100726718679501162723902872122277044453085229821676256370366049737198959084202259476957999567820074481946681128951173384929529085166968668992457568734215968694830928114804365281111635933032483309568387810372873228558039940599687682831817908977859667277095837726233782735781098834796847704937199594965877003945465942089751675150277574915479557861247104260287708981821575609095623040667915047500460138893234081180643521247158526034272850842339649360704368433982057188588370279532693692903241348301566423645783646729758862206765677555288056109123493505307145536950659188689421242982379433125586404967670564539298027458362679391408370028960651465748113622116130527794213727987380973368029135185780616504225858824002061527398365362918364759537868135683942713244968675855694225661675085230198326408905884083615760183444392603579918225952132690203011118226634354580668430901525753510821454290371138103047761635470050741382868693093325344953503625081909622566784081285229885852057129222534501311781875226385270625240355903366228730774174946457426946906903495142854449489673239121142689920461394197149943690493469840654351209211965730415666463363488899050611011345336737026501639037691825872060691165685406172714252264637546548992845968620215534307159938676883844062896777451429831510473660136217349243595960873029234605980120364424649136545565868769457105020743233023412559843917109631789349045583397157960446701293164059189228952139754272230728372652672968253973192644347953678872428812680146676917238500733911316337995281677254913026362069286129674405920282341534342390171732942664079355591404373227650884007412054507031457289731927217024306306531864636080515966162211224142272476927043664769999220104007759563681602128032998408385177167276457960647904230901822797638755982662622566354974830468089994536178337400498444752969687072835700137975873678892770867101262971364511041266012088355687741100534823560998413160159347947869698438656645832349512126005259130313901377073648883790717234663104306619243570140266788017522191290856468235943966205406410425096231745233108058938711195984589310517264206891404327653887859495589178307886399474167882734174008494776785975477229622322057042183381194737091501745777447688122072234219260793233330079008178512716409813498504662429722172542122100851391109808012452848685893067926273780728617293088370311539651077463626548500318335041093702108570036435845545199775315925248893146612616735227183363077014276265903911467962027663311451611735988770168458083074786873079083367232881731748439151738052926482926418634123474948688277650190651307419184216706983736509250474396428857993035764875840388882493312085763120035441066581616437361833092257000189388490620203720664105655095331882005933141236476561014874475700391126036897719099059861435907401074959483329407701400193757276410249693071699561954366957717672796360791028370040503869737553978228957691639455790249849891250034071969672209630969937561780319569997408688857173007434293084415969626137017982465158982085402400211614776061904744600556116532158415194337092891371420330089529642411759520108211042363807739674232462160107028637484372612698142282561794977766850563444744679750775484837741592243736136875832366839039996347050975873243235244249144868527848124787360921193309147747257184588685769570741623894516480473106024127266750820085467318411659002064184919080696820841792829181016887985837387682385719940462525192944605312207289197077283693976083774200036924355158561905956234288548294768984598576390886140978015612859694462988896135575007427118169491416820717527385200870084054660872350504438105608561157630657885203070727794476374621937022150606127602047750779908744147692121895049624894371949100287785524795370704981447478233053849878700921975856304754994136268354045757567837839154145148279258679960760331878113884870940810414953812895603165637009547099606451042923767953212704813143281701202569440736801228602668708688759654049489000356250275779659690447992368688033163570236955414904024498024787941525681606137634515746142615395494437273814971752709947731369459530742267621413218167359946873205560708347710133685875933131537872215865198941975938805678127197506999564342432144362704933227519250407309724686644686743544915566115251458732741063320687982368760371863512821835019770600399474199146217852683323781054252548350427566437632287196531983779141657969711281990984274206307706234134424040396651349583547586325261907817783650466791684229080748658515634152034506318452209303467396575921296116606312987250721243739072261186546671712568480514931393686903798453474518461269896545489666455201472712025274458309492021991944988190624432795346098410777037844161089329334865762821753556403313305608924622586526356123787986150182588775198144565691253836104850906320787836764294223669935963310794334200769809997483797633105755548590958554499385035555360610959489951274974426556294605270123832094800518155138723109599374235473997612931813779659217051625516027569015256113817207366912563464020294685069469804128442608405082487341011421831941112365121550865618989908760239596462566200817748200117643356566318613016240061316198158726625993390849488618008400053066282695498148596218985571542975798480601776769099494855037862851377168138064846016220352748053679780463748450359357937070315239381168888228825352101843901562197814665563728197935285703417113131687078395169293589448100751651160010039832603418728756984952687521217176965234355833612108270359351739294391799723749060956865906535695685271788609704815524105022424754463594414295137200466357660747471691402962042071056682684807154580764234236595851777257702089592574249554882440524263824407962104021462900734722585701364071798497090622733052499236184266789100791196054247900539702069104716585636306625653187789113332372599579104793075535552636902592135307054094165997700167428425799578677220678229109503301911583970223126956508173448377521087319307488788851481621566437932068268928259044063031013873561623429710868093548640725689004413005575864933422645678845153442773722505524693002840413907727853228340455695582871604342728587479606906313323813975720146446840112293638278556597071676692799859338678146507418479434372796047515809812201829993127171256066668649720850735818040653443971334395627579566904619745237502013817230611605675004469554275779123344381501947946250848037340580061797542631564766989582682550730246173199614881683796794337072517289521047889848273889383619465685496521847473925775586427230681187928479020210093888450064386409422664290713893200611447902339625729591432474144770179479935722339661098947067189330996842992897630898912424601179365326723448761474919886790888470407859972918557830656231317243511366454353984849422493752128597031572379750099391669626270603023002865277648780359911875081898414956899392750900390115355268945058782205434893785726517245667248102627566138548175168616622694998403585347087335239681555818403675596393142558221652164993291991927240276217145426850307869557216697766947409656588817785655079610178154320367337625720048430255046363570894469876893797960683409381346809479355349782590575562713919505229986271715676593808428591305446643317807029570975617937344507432589085942997791591418117380109825050998101739584459044887150322047820505029190722068566448466490532488719069268019209974495071336752318102389592096691964325649552269697865558873388071736128906606012240488770966786614966223722082579257613006524560185593007622739943199783484163517623738777345946423989366627606667095778436218171055358726222074273193565323998238247382254659852030699736649804736868754798086377990330504124807159710349377337595173772149965589716686018218954008593528417972258647935049763479242443329873411671582462846192207981071589025255388851948215777815166463702796721419502755318676954273851880439403841163248967872522560516892284536477431813131415396607069236881333721199008113626412661132836652989316731906065272272641013778614355102875548640068621517440318805704341731721865662083769410709557661846420975679674785622809370375125635637025400681891252469832240284513748399859157740479045066221967472117924431267621014716053803739145203704731848534906959696915508223120137046439080370374492917128171294758234445076029932907152806691709436527744826036439882679776556648876223387334072556671001934035265806337172072787376245229029441960277411069146817201518843846247855478197099224626402473793254483396360691643713592257342537538229732159849137293400153150960915790536241891301664935786563761026596249471283499942390115896988834194156605926355364941241741075459947067314975466724015692660448203309038207232474645697307202631239554702963172981101638403323116098660535136189518418017152050266475363064044283900202545014379050374185903192942784473399370635314317223624594744069598121802341681270083347757816190693852915038244792576978243773893303563054725044139649058347828914607215847513808508994373606926062954473668902425824013753385638657826975071881922740808934079954225970892095884410236624818368760957542734183105909445377847897541254864761252643901235043575213374788048510595389277609968362546585034391949444684552102676331044798547394816424316887154647734508078141077424031527455361282111421068013360883979888515038074222308057775426058677155324357282609487378801899450243348067157470091910012112789634101900794032500998464256125140203654823595830768605008924543248617621343180168981675812485994206030167291323722394854881569561355077302486823011665072050967944502638083429338504801309552545251268012663231450188138643455563849682410473427412424132684725561673155912796375437197686247220265328683133422260400583355750212228282099571125167787862345534565071031874458196549706064191438567342686412778648867025940014597690383638121223939471463198806132434157330909221913889031262887369214422703551749397831230563855719800065989360607239520726934999849238601299897618905659890713749001981871342272492818341666578159962617902656046380687876117202269052448115902356706772879533411500654496785300148604758017426651364564233818504503178937382599706573733470849337691276755029072913523068189174520544570784990895431874930061459525958736237678782874356783961901614457744309214326756738251027180902203084016933000471349029761839781819629178903712982549656738504219725714091352655079467593490323330361554466066895247685942148215215620001554072980916947179110346823564565970807173003236843663767098446845124953379624792532643631058465216212948068914127054730617470582228436864284482554124090892465692042586626721549757219227876875191284094881965864490073853536811256121096616798879131966878642927929351599813554999439058832272754527834181940333401086139465997503914187747964645829868373259419700364905319090315676111659979602344997118110321946433360349901466082699069951813356907375036842877229271902346102632272015591516577956777075578305620463788863854713231766703034733515592067215185411148722684344822207713095432086987641248653598983777699067858034924647609363047693118046891567088261208179511189120193932586081369812935853004328783838274275198596822084823542164234052699885918761535899231978434773965438323138914582192505914189649753103605899352376824226979962048841743031697746798054533744483190819419042374487062231018436537536156321978721242691304411083342946750129885978669985281232768030713600402998256567591632719961765585000198702517465318198916828760720292887242549748301127131450899550489899946274437249865860618249146358450244043412670830532503207544470488646200623886030801906375059992782731394028744414087441738286842834087974687122930467837817800484441268227683119638616346370061401964982322090008699553409475558460384600698423551911393310547821040640655415291867875142371603940832455737942626837888427595881715257198505513173222221894854963000580891787980707095832404270317161853953049212264664254879089657442677594928785153592378764427177544820456604791777302816519764349508864298366504514368706977216056339673553846088482161622500939761957560505316925464566594502251261284389445878379784774124045016357994167327151182345748293961562079626281451411977670560781799859466797853251188862838747624237426710644895194171298905643177764020554986492850808914575509450251100087115532037808035830849799158641158200944840376895987868254019953324588510461581433992197326989578398111049615566561902762543183234886974137206669683501740255030532708754625594906347353037260856943384474851162013085734741265632328607601989891587107113095078310572871519351006976162881272340478745969520762621369612563983836742862814535477951513476318798465074304053881976108009618516208333377786618405712669458361011224362013076600710736850407696610975900600543883728864225602886533480304424878260034735221819189138164308170696208704926836591947326102923044811045598600292387669453116096919785087150161904118612646470405310638890413637627061761553649475181296254092153674852480148553597848046973035021171296848977300095602786486745046115428766102298751755066638629671312478665968120818480465103486182781367582344117090745964191591057066670847394245786079966626266060523229534564591058690293887941680255548513809062303995158711648621690385710512812977695699453284730969789977761833876567369181197656497213416400197669027775825513670062475773297099362412688809174521734562703014080823849563204859067523317929980858759357218057415610638951257808010485529679448018923063595970414175509414436433091955548056482765421038893765438262446963263517187130067377236931572561338237223361257229958260028195880677649500411975358404112464403407094068855242383234479608465474092115563612728060874601759012629393670582049133383343384506938506923117956534232579577459577356173111137940058668973396044721336090126442572497822919507123178561552315532168706146595178892619950334094379525832419797053067741943639993259647327222702835578986681253657525834234397070156120240019928387027026995176275384229976783079562057119502368543611688882574197164377766449991840377245658156687690017620215106439984010769359328731878457843038948518209927542314051845967996229716914029127008477438572235145683156370745040807773424326534721067329469959204477874166324859099000757943976488015404557833453356804378106268049855592056727623684463371310922192328951617426245213630943527055190971362696173372862868057372492278115715957098581898046360579519220788509704682990708728955210778489663630490810941702339147132859864174144187034274196535443210291548810983321790944841609741860741161200720762191211116960175714146212448152768764726716653427989474602075674847613899174198299376778681857055464986348807898548753724028108309066059850287075721259448119864871942884264982789209518819857550913130374011355487495276490375678727359200424905786140837913776110328867669557501727509358501651622723449142884798194154007184230455099379671934581998928296040436156657381954992324499762971079203706311968137788818883033675638170941700644052378266097052528804423301119477929611002315970290621980419931026113554358616263427353576948866607643118178566674539094153485730885329800921719397509104433162994678273474358396231859924231544845282629154954409790674500552420209937439870940568839817348758502298596973591716782829988024399666066592456878882543069389141710638837355686197830788596182934540855626739822133404000009246377754960305489256105791783202499749772086861597328946854965461559209605899947261159256830389848604349440751552934355739472611763153197953523645937061200120471038531860089466029966768738524381690984780296050508488121408715959289311458903125797745211211090957615150627038341543412264384075885428672597387712837849021539871068564977373979869992118824137173146410074723333504393243268484900287602263502268761072685098653551450821535104973813992002803493555840352744121213620782297748347466386719292801299810504224870692112502363159948350192716365207147473000386692405093810159408299828591323532277045516510547882453395301426096491525665986474730438089583312787127003411384687349904665157250523501138608049626785164274728051785571068833940557762598467670832074332684236019945218372182597261498861160774190936261368966921744268054686770411904538920966537077205194129884900721083961939148082178616665889702542057436664517581870290525374316569035206043918013328225777998217703042809533910158725483612293967527089235801328245380394988888584543914862412848792368792625455780230086690588360602401357189012363754361921540260063208321139814460662316948677444178999282749744630911629741054031569355646160545090211795988094997594467040480965527919259200018058208809128344597969656184452454332759791937014073866459571145155361585109189448073278530978415531432751415584072604942683647372827363021155867058670857566085668152674731705180513450721034090336344687008143666406502285076477528623343604416164871802716518586340405847926740491424262011115370559636730933770529534484354499721350500771081573334607219733301306629387666505984766714302909706151945120706268941755837618483987852987873817378406106951742856539393649794473333988425087562622311044469816328164350965082719335558061714888090897322203795526266104075813607198829163394928127467862371801465913068578291887812432206363176063527690872007470629524587880097095723914084756983533269999020998912808648047061985547497111869892909262486454976731749006921774448417756306886658907421610495435185033836666239084370174468519167312611753498843020389804053342355204713311638742077042639300793526899128810881324430662711451818550069275777334385358911823864679041126144247670499966028280966529037327096590452693620143173112576820106524002430501724947167671169851359532574206622483424374776616984821767561496133510404805147147780258127987639425856310863811421623194810908194474179418976079282499218538749822814584459968262343963914909408762885393141886343266609392037703136425566127486545239118397396618186039104033895621085699090722307433106784806954469477871681248187037724677639259546285413399455815809969798458764143235327687169254485268048901836316105198979501401988178656990233459041716166872685335802038005964864300823962844142997581870162178746683485058254323817813127442376478537077853527756888345528473758527541238025294375249404710747350295829270197567495734896950634886062633613851392723176197551848221736644536696547855063355812592971054733175052080857956498016383730234264834744644159749779165302132334683682673446141263110945493480945745868139631948179585547599286362905946954610984917440246290611837176049251193768358615843019533882729681847542376817484794966436600360762487543087127753731769663821631988861897844862079168134333595192928528620993020587478858085840650742872734172274655836720433089244017138801852804042776882635976954710976963780260726045326653555812816369155490523161136820523868043408946290568660143305825377042230778412178946524816706544059248955974150354312607021742058956347962477096347942455815438721778641773739187573094825527490318768878046413019410756615993353342041702969556960258786529638769263950793325774694672403621288153308423891070346986750982112634244334647920097382024975277527618552816233298535988510620386594183858760656258705432762660717516155041847954820651061184683669538411250094880137387530768051694308820261044053919626138280504704007318503788989389196314676144934886863515990282348933988485972490361889526719395124046883839558036594827550192907896841876626314192174301228144965480558958800974242941820123935718405042053281065314264829293820988274044953769896415374183822724107953115538061154553963872455964619063528649805414612444498856249430765627698082113712510664624997599586190136943197399781607197348754188148461926748537182069859919685721102186254331449545533407791080140752115376474181945349537084967035705774028207131754202625440538731252252166744102714230996903603489727386075811834963642685662972691199449749162533825983976279339289397267619759686953952354884960296204447510564886968670538746034930509477723420223515318893703252314318471475905102634626482223958922105469539783412846656481735448898758125621048409031224631504708935150102881274826578320672372034768678207091614477576852069958231446468501975180695739306879041347873016104607971154991426465643769952105887849610500201470093652469018549411929400416796388193694592135915373404562438647458927774035260412949723703315330872638379324544771340790588401390220366627386327286973722190066408045084314308868684518073155707233838838319396363506003021758138331028127706287299933205292385174539696231160032472616136623736695462723846165178985511791120523911210083944185897736941237001141639110619846194035721507953206340115334295975472543997480289468681189515512754794718891173694146453392872714828026848832799790955776420556738596624217086417185104426866381554783112009524701249051373580432076083658836544641640509370854826070085544593179122123140936415965203480823717248956372158206489243255022867796698198867592326349172681697340178393149199823859904072468080978534600156303065323008069362073301206546628038533976006348960145864177031647725772392926821332014991271692715203435717678913363281103837793260673342376629538014832337842752781266808713561230251976671050426452802876565304472173932814152323971688888914697234782843365165213174145462809892963002720843331673371292101153882976806173914791919549942199195831949834881581450665017118396898207802936758522735394138910744809220305754417490399418661991609893423245515655651349525372459703047747697813647186857711710356886982659441775009762995822624290503563134203552784222454628057245595573891971060339157249175139580089651057346698836706954291050704911476433975843308214107527430425515979967479685194378131571960388465745337107269618635090562876727855170067643161783711309090765723421283212651598603460649940483942289379632213010757366344324690814285478985961664814783960911165307477633658385489169919403852973822746987788770195254158788963033084535956622924113866252156646393257946787886740831146567517636995698693551345486784965607588038065502602116921193768238256588875928918272537014363767909180325045258792823526304482935078470474149294350563694394888123333906835075155154308103909584148884861487838556894018458425243185374735797243691256994361380825045007606524666484771674932658804545095772888126307565335609369171760292142755802793322346883459235492182609071299818642785171132209192001857710354089256001193379034983540117194114661260671167730950908690430261773800096026292529541731826107752798878003591995165312599562554129576903097170328991559178107959034968732838985339240236397371882939502462981814742267332321570742508522512643047059987250423294638349640667871380448236791416032980277365835282453633787365259048567866436479602249325733968037835602738454598825812585656331034438138767054143255929823394844546881210445957499362470661381977143674374742483167750648686618248767604438242940815774466005348211002733210782394080956692298056116815202750484684318545360021884189096456917683415057830227666491746702160598282493645054000945592757462164774944682700346542292032720456741970189035170184452786545307601532256833796745972892661152015684887762471583594013250040038741450082921106764683744589709917252723662452343175125379091193241362308247759219169649848327441885676014782330444964530983683921982383298082775096773296444324572790035002188004520913388165302332506481870904830227684568280047310997808450834982349459028605630247509846478193573627085551849013050690431791761909969356186518184407073047835736070016020825104331593203307001978346796360117985456292911307233504277247284447480421524313258335569095947175854964160026222799247500541634782234474785985792626884116414422655259804533391220972269800090256137397354659089497477612262612398403154163590873744169729034893142077238807124067286189499093291575713725248977867387944280581265432848495088004541206997145908744840605582047249515692512461885922094304966419896840376383844032609884467097335835844814099981345943446928524497754232067304243418898786498191486811209828498167337110666471519054261818900527952385205566834291450493999137663236055053673955585541910736083280448615462456714950037249242043193756581474832888719178237930734673066356457375101435644915061289716676938294238755217175125346296339055688596011608953971411127021400468232913152983594481601804120622872441873939452173317327107638235856051199458341433810330220316075608758220521332523122762240739707116790252393523146770536547768399188357254491339630226537992850828454386065256849929942346578443036430687273191901006283879725720288536861440479741882526379249635728490528416615082969986164145509783725917912418188835735169149049872832646324994089280219677637075494723459555340552477092699924440684817095158825650865962442478462423399869812683957245277264365591312031264754274160809469805556938824561177927999118713496069265721747816867990135187787398760490263086649307311380803772276500971769454916761246479383974290713757144182429559845451708319641623299860548243200113817450957811426004067644617391038853576432444217026984167532979450391597323881166512609623804805597917161429150497373890184237593538970503395976191349591118700631034899081115550666217567170640540469196972785307580205701571123007050675969483939379809010393392304712184768195363483131532457317666298799817016066286553723882375999767445832195981982400544374280913029048312728050888454264949719956858530430232240012381672424322621044948551171575112804023572500057231475259244115468128980977232367943891972569872360359619176646288075520470104081250770637390895639374591142522555481314512661374273820971225290941224630646759669524217601871193394729443061630274677624455265217083711410098784114320957163596303627474386903043113925899025429307176058375417147614360830488087466420749315952352327199598112933820272204038088395896777620179769466821747991895324616890380528835929145259659889727804482948767952524133092581755970120725630615902861349540790274839942580006664364761647334216177669981457910810117198800649719871612468900263118414547609639352081749072529550450910597330256769503676874643730320008299133849385379696266400195821325925061583445163436682467703144861333036101946416823599348714988446086265651481932750978859350481492432930704658048317033282447182797193186200905732454544818759650278284061843664227419939649545551180025038614974319556381402156167046870721722990416142933962213974564134477753333766220395327097882064638909535840055162254017398139970048870776518804359886747686082931091145816121333038728845965410094290749692077577049188607843487015821595837086590409402895594529053400337101640198554475300791712688391832765606821962310580981259034088995720910003064839138139837726972909498562473767609598531954181563117934333215145351259191005886451312760679329470922059238774289981910988365648490757904078838350874730222877002671611168432074157130504168729640296090758957361545822249260185394757609871499150329099095540370096075513254613887570516999597013328710404121080473223900803733929745067323844070873342303153728231987264244280264582277776441370444494408895723752786538473418928148183902075315894098918103841104756849252290895156697783960108427944416494050018050410393721371774704071599567804005087714857647383092428641204524153519708391313420588056805035641812278916097158585095636350489740220754315266479388871001287902708559658248157489239490272259912124040292946175801314198323158346939364482153307130400003743912617233479900116891571489357512688269635499454412360661328765851101280376928088028469154860268124580206292179391105141725478561217573686393916835664751105411945007142238001168675750897699035454027926549096176253526789574997550612065103967946373790983207475344785775901608622410038352469624000678539502478158403231964409835840518174351840583141084727324804575258136229235855209588600245772156773953894838333932119807722327426001362271857813941349096547901318012762052169794022667534974935125476241940798831354021902845894233892548888059843937729095404446878374489183360666768530358161937860366460119457730350615857868667094359639310896704556823791227856585056989141554352732375607730297863438237723485800014208843160854499245233063981812546844269273554162859877092660430508608808373098398152776886081214748580819310175390087834227603285246577500008276745189659174431021535248742021288572553834352808231054652347744309670763638156174889984389965007121439029783426700110138093604148890188820358330249770084667902072287419243841760034376151222435823432616176599336678897955473040414007960995847352346807361119768387179359735162027321744703510546748136369739297419505488479480747194286678872780161675848465577821736787126099998756803641242655368652875709731833816980054024887296452904134650636700098641292288478922708444786317467824062411113467555919927458733555459676106915254517809304021309031657440561081103939706387153571730464300343258863241392356706182968318055909435184789789682177261475173579432951912057559782777658670826478607650386141645637564814172640988324399378707316249343055036666178692293838888025015496607949897115328251203346712617085283421296803449584682668720963484026911298036601379463179648875805818977636521676491734892837887787030191087049236191709628265826719630839845171454841280743484468993210818601976868150278112145674275478170593756424053783831323588024566998170197289118874989470490457942873981638568951990494448552821336869048121183427929945746760738001980381316830053959460911366609138222070544791427140605980161393696117268499553254908055148730524165985026434290924625914269898697393272847517114387195594851145370443936919426779027842584494063259632069975481672660101299274937270479518552360316917755860245306018517639173100037947974032654809421801995007680407043223586189963743098296662735968264295514651119804957507320555633681833065241118841662215871059957085458969195088655528803392928157863456845009857213697262037163124383421640136177842398858119171763793022466170077258442792163836104495312358558811626121905599902061262336566456702481900897650671485641192262152854336766979778912605746149429721714687054187757841169173417276541732959028274948496405443155385825400176539378395630392445369715204355301637264511984217090448716589152589281785649793156064762756479960185485717916507888742859527150996371447023034970717911502881428753521670541797839951296794591310281991480474784866695249339571758391437660937814275032971729654262099325775408866399493481282375993118695425479022680776853611430083037303161290441097928808058946911302064186882312988583003165317705396079549266878565788394254248811900651278881115569876043257223993213778036591667309550799592145866903308790552158189843039177724043565114088973768234955827490751141077733036233377885938335750648931799849345510169434028620263587611060986573067895000044451491900692210754763638476585181952673143424959776234156282536433053827562338580517925965741033506100696727162854240055848786950391571534310310236363764847559029129416132834280940714095237546886052417643520040724043454284743230273472650819239697963823526090203423943676096989004313307891292624729197696616192288581157761637127566587992649880522895593168492482832678720929571165202343673479852034236919377810058820858272877636564775528244464503344154287726744458813274698627406285324608730326362961484181169271278934531535491297806207578910588984965263996739045018284632516555311476828814556613212098556081898361256255628968716999587682027339758623217365450621033315606488437370204966935337454073013182915261643600408749509952416722505698085201885353516777933286175631726197809125302316457716826338108931966523050763957834185334833106103979599924483562336074702530135795248031115810170587915672654694981328967081653481218010525452378604001890347205311460175378272581781048060445647094131798866671576665423969738267483037690268191033960924987871856610740001453218072761792070090751330435397631959927651280185056707894757680106943511248502391493140903223589543232414301896428634097036956537374630303688884768378469821331668573822308496418942642060332422508544046812800053204517521449876244823834043662077457139253042434406447591296170790332357852727391836501252096097430800249418031139422755141137902541286407813645989444977737497340138533998274117688137119146224304516967164916667952607951297597695877761393007057569107975066789744959918752139591526548694812721698620865234518558047365848392716678612351966623933752085945210653497046729814436101301555992462536341028517614165542134116684500324356780802872260132460936163026477454394614393907761226616060600188013628974715056865852766662022731725616190346257669466295942761963226555881656979719012831523732051549771984698284535201282938184066830408905278534865784857977534266759516386875410317770221949910139644978450187342131773620497603820866306825166039034978391028020184134371983417761295210046629862875989096928885713401375709160697716299657216138389155276380197064164316216090291092741559286274441683921178995475008608162610699718790164081741094618231342938337561718973053557422003422941294564294158106709974956738905362273425387786421530060823740671054281833954460996603084434451457171491977925100335802918946772396032757532152343090510819070063359054914355529320122731730156202839013232750240177355629253495312256581351130933355025131332552064451651622876304992076182531021944275819376713257911551534337462476664818264583760916906644903331001618524134980343533524202729230105752163883036880318289213428484920040862986464263652234557161466475053886540484191824653732644725228474079866090359053969427663296766743390404760121150111785725229173951049150068661591521254507551553985443668221968688766887498670789368166217201437919049476498031756792510676344931866562690182578328231602715633904539504461745285519736651628785063654074808841128883276604618652389709706037206219415702518659104827854006179538141202426827883325271451158370931471641264357857365943260691140269612947384186699236647565672179710629250917332493072015336848196640960675350167214771839873738237498805916811252880739624722846879177691336834151217816406765359665317470752232225565635886528198117095066300421483638768229451445818916969493499723247039056255180198477137860576922230412276022854074773320404434993416135620972605744758428381530645634886114649683899397161432369019314568128834838624294644338597891881732009948563065638347474685082680620567971993059443669338175375971695257182803038376374944796602653682371491068527419843564501940000594659103749745547310286074666361670089207869289036266756989463725113878140675181443018474449178709689446028361709558914146732433324434055049262561498025537890610552850975779828556608123894254720314970986467741822696567317394433428590101395690711926950709456078707161170148537078885565262761960639365885738432836318089300521003206825003107561135594518691365517458857101867531600578292300987765251259929227092193029299323010865789209663930614945163734040445857621212421212752270033295261622041779432626802687694178930221619751688732101892973708950211647658347932317756959599171713080608454023728010788355463781310846259415519393334170273727737532676706995839395617816432925549338011724905099452910833538318128574007749604814316066793931873198442112654831711902703802211181030383008102621254214370837371403787943194347566146983947148824519922505613447408593281791851676257427893948172055531086079862063100752497233930557171091726455994630353342599982679085013849348699258463148132465353537264815003561504574421747798688325657703062889999315754653341253213870098648517039248351739889796527858842639195155945658472679219377953698073288856235663865154086226166976978424502431153625903010747819667001993902210232340537216630308241821707132803247304226066643207801313094047490517935549089588375417806322826922007497364481470092639978355785226443524487002773746378922350617173321799462428685975165929910768770823576068721955267467801140358025241157641635334446586682432722452098357668685022105344503151633709449583511859295967280305283986187974942213535878672304191995803264124186925141310200786111432878558559930516662138580740659342805390006483085397841547136188534382064496139001648938671063739006120427752564291138410463596396122559963907485243745650945230220910843894833533999931971301811167760048128743316303682461190218676682979997339699484925471164553942060042117000488394655851869513440762082020990216469396572507974714878804009211500143659049665320388598834842879662100300283785458760469264838488671434631367878275975978146827267823856539710813377934294398235836657183270382461018488127073054511355339565680940667194082668112155456860949170302252870585493696425441631467333617556434161062927319274629537489305227860461221032476416462771995479721156181757145792296461644684604874641013678765841905238132523225618078886508188426595558123625593939155658750372018226181153372258333566046268742570980953918681152234263087951352933036903967369392538895680726630605678556497944964937396938782306030992614612707947250462471329806310079102702929204069998975553215203322732661029907606299492255843278344512267334241667228853610660580963748187161264357402992998659163975521283948266207765858694083676108667649418889184794783660993423311383600575747503258709995552305388305176352081121878283308329287461755758500929997747850168925880810557720711021053798469460240176141656915916073301206095370041937130585474604811514373000520403783816003711050585124409119555626478658714681677433032478229813414064079096161114252522040328669442672663706103368191289126444291424342346982970796918711186195341780365839524528809581287077945759096030384010312194820762099571040600403663780787788705726393680892634613854899240938037805046551949433917874297154661626898555598240400488193889368206807785581200344887138034114361884614106242873634751048061954286590402025730501310391271419264419301823821065587650090549987086716673215112467106777487258518657601635895061477336414831642012674754809951050952986538999159456546401710766498680287350607418914207379383683490872833554563273957244643938319378195572434271176701483564440152941700639438038840351395243618097140522067009489584440602779929012741321357183878400877841475425635657961757400983950663863278145408233097521647620260111436646549098043250113779088410039736213387955458208117595437269684204281691819208903633699433231919921320054811445602439429489530210204095381247458633717646540768867888374414674797298390621637108958832806912715744286968935954207922127228611924969776473100949201106398171096798308144527771901224323860542462072295162621174994616854403608009989065688604553066075690516147574645317908832955554303790658931579487278843558657796871236897648752896214527875750621826456800147446556013956875899585089152936740333196210964191912540255877875387213806593082302279780016612437991910600690140487560686227578487732894387349741405960509774502561120850759973237512878172552855916854849638423797277695531721320834715943319905918022710116015927939512468966981633450973037041412743292606792317480491052119803621014293366164712936355467260652862263170242562716577479854335382426557317715339412662115902443910610148908876500568961684883837537784881578200099867944343387603429808300055381453147916316865807921304792481003071257395647035301108785524447496404354597263845431025030013200593167112267865689938005406004005245799617963852225041240345872312827576509435520541789472266493509064282818373273294083559798710033979927322544750352820072181680247928217901481679755623905702572823275419616029985509007779800169188200890776796367559191080107675815710708969874731266366533842219860489064428354167119438331037318044028923895754235944749587720987111756584148450363858977497664635382309526067631113420349465569985990161533985842106454943479265355286493740494084947672687914414339285850477263616756157391167994066633579898366668796768487264034455917411518403341599773101245982883219721009035690277055321252219501396012102116435750618593112265659941590210969604940097748528807467739291221734768024800987575083419210941396796885005265850911981888456568386085930136495530735148256807776313267748972542323228868077369844273891531390867853358164647102946954669285032958776968285337489521750578679419648162233049291492534046335027085987018445630997209714496076988645470713158271069094071925043537612046215482327556856456585535649075721175410121258654689550020405758480377985694353626189411302871073084390081392619998100786177793985781411211776887007716257314172110414309827696996006877193415020727273052922979198829977677538789749255398433401222545930831540358353610319411788881340031535306087692498814542961235240696583625565597252799666213254137879831018285621644321604331613742328215030608133605341602343263405439522227005084272384279521205296667856701082475130849222526496386761837896267581983985976703515130972494159841077623062476777485549639734994520626656075791042449609376634224982665583558398694870454991753283059649247491336114048438740349285668054866928908372490243203222919667639365315339225743404505038303985684422678914908953716758033228032525102093550307383820195536908946045320896531258162029518779280157825574932838012725792050912177882972061407368935275632671838028619809195549653539753403794145753215525584227149541737055825600803909788233912758382542779303449903750242146277483513769853808856596242034202391226362105277505979294560136415827405200824168539492444673547288722039084970155064336231077639849408208445451665166051031644009458038291224879734656123279158298627929531998737121780441031736185235489663616463119170694570787756410338985869118133127902979235197124921176367435440123402476471983638476349814701125866253621896662848909773159660242183356189281497811575108286281298220188753648877580548056739893986782475002427200152007144086782130686959868862107674143761931283457783808225545579215063395185128382126233730108323940342082136491935318390852694638566825893127249543292117722210305712415166992979879163078614036014501255155645779023928511622294451522167494473518172878995695444915140967654792674087377423505739455962070453652945190759250407427754131183334454430498160728062687352027146014155312632698250131438372543214426558376094673016272066140301532841470442628024596193147300293061170676381931479734950589153554562054314400439672208846490955017357385440120052675624182233792975511015040385637299664356591465921059997112853030800310536570375471053392051422638627940841876406529456221513308406855021314413444579207408985718433947487046005755963394964854981426971210315553263542553268650283958476537721867657751238347730749306680179471409575048362044696163685308243173010712658588040111576555472465344457862883703611888986706758112306204872681655681246662901331039697085439074160403020731206192583976422973753653785445068615529445126187018612421253314707679278965454610275993472385614985858700606174121861665680352027261592448895221236808923761551454140652169103670468068268372793889641943022758907351502296294309166414846472116092712955148180073165722670427347893754870284695450497153623084621421956077369014277090267452528590565234343945884116466291423310276485260569703623795094935178307477128048284733777024378187802168222563327817055683959031393253699793820994045410592693254241242103356595090644338842708107769863322750280259891513930669272184422276068763676428923810479210254135532752505148225848033633970725500052359752100090131065851639766859284982312954232510863960871880438480025414569946149140961231426888677325776875913326216350254944951577155075577075469516203261078391554270603796489139891549742551142032745591963611302273238522386230075428771829540681464910115043843280872557370687864960204605419954775874342152669598710829813171541449016905020502565972070493696885504444133914974154170765676851029466825361267291614364718074364862998142398402762228106646933392467666618511762912898471710238791151200976214793505921147960935756484259210210431491511175602988543345488809098375039794591041399586300560256941748173594065844350864146728454987886358051492173391792409882924407288003194895916577026485181956132526196652847223272067525864832217443845601718304598661486384723284762174817266919992386137032449623830819903739749800613147475957146934406815202759445792864679160774970903677824038833790637351303073066231537116924987672941556617135180647917015921825993166060357818560882406106000217232101732355047398833532169253755248676558926094791362068415642614635631945736293743847427038013922928690899784413869808896284458500551719604227582233557204797388479240526436055766971254464957460783664291335891054603214213655758134821894476007050450287357656975644470509892394108836695315758357520331458907233032746797537790186122696211159550263415150873499587739808489605659152867604662567311434472425285682145362332917870908391477169561602388992272274189115130392216063950201929482832008928514123955263873335797154600472914987378189720847470244816630206115660358396493852950496121688698758725136116309692488007615373818021703931112133683384213820987853571042844209638001696840158221200085209123889491303590351457083185050687157669709548696386368967046913871329185256916187723497791299723564555607660802169987835650619393859394262682926364037961620654746271954740533164073652170799571857746044358781487083903795959842675527906055237838697663535092000118504161881944396187851315058236839264664831166171149673856182421575792143512010815981824928662769503798311040688634394390382443661716950080583943640104508947900921962220176400845161156016699818331867913831906619899253533255650788371786670144041174413180480782327240885280252815203642823911419227441175098321466062713022495415108498596519628937515316054307512306868278273055436849633455411033694187955775516640464582554723521293893884264264799385766437951341483471575354364460853169159895518531938190819236643476401400409598610690492519458053706048503435123294757488753647496938565591866084142367333534299550450473246479667311265049184886766735005795505627151413411084140877876679805644379004216669809490110825412035265138393300117459874613880407565335532304355458305450598764646933266870277602670384498615058902934835050964905417355349085883365855024926533359059683930286412016422388763688235903648978642947197321731874864655142539172791610078352055332947863594529236520548714768026476724478688526075445670086893188402447371408720295681160929240321716376672645681984034088986768361993069702217676680572526241426687151119919904122138941959762435070937838605055251024620369750608359902697971661106484571574444552256636697076415809566716129873677107366526263931348837457770617280741130642950696386012963560446478405795014434365547921856820259188257759507956136921256523083294800765498447197174235066503789790045615065234268595993406821083693235004969569388008223155776467090562521701985196802696348508102417820799052658534229306976665165988323584300612177837104770800547050140878333780375306283182583536470267370384905335281520942204014315405043228692304825579147046926832898864794350000986604062089449158468807037899208359382898382660774941983785872850007718440208945999111450895674114925566542059596589524902410632113548602584274827737364361743161391901236859208504517086870697604644668487955653552345264227886337120199125084795661226614633337874530627215599391718906647583794503126502980936120957266702396153254762061349783974740030149290985963464729380871484473634543643071208130232146360044377009797457696180416424278490684583804532338450713176064560205417490405782879298813331659681164770349158002876642277343014254241707902314571539722293101116817337794147861476930700447263329404616351709797588885957273075736022176945611736298143415598835142381081442387142820932836858167399171210831787596308451957346326892305318690139717360296616585672910627311664807510986670824132448845159829717828092122715610522796655252309546885231229238726074817779154760933272638345085734357176654431372735591607015804497730062497497147192824156598788985739895454132734877247815533603706002650314218940235335115498115631799859136241816580632635536016637698787221619080208410357397069150262148548179057883783116319116500195909728535700780047066531246133548351866578980692171831541494398111166701448023340157765258890466314870505375390231399281002299883802745421000461033810861137519191530059192623592891644943042680269915869013940762148669506556849919742146921299912856970609051672425699846946904089536168454585214574841788309523277695605826190257592949544896810690428835409743411533366307331816082426952375438144048098911059842257586001233572621834425270051970683644739629213901084907107353807871710273419053721602116885732133347256674886324298853776487669285922398275695048437838247337049197230343435131259516620893241594287198574527281094989241956645381211157153859004694559819233783047591850207576917778043102246058515321672627607824491951382413871472970121462976645843886914793560432844138701731130686483333133217660374679759557171472789823239000823012095313561595293253788781552809668150528864185887186262344685430219743683879180218581400590328511580072158424592810970158346157490912896926119626546922605287741171457521298643234103578726615700671684395403919838254758563547693877956136211140652621034410374386878126140049693874180193630465457744083471549224748760022595779286046069114942337358784162070156857811999415767140050769137059223875550313398131775653196180763411330925364747137258736226951156944936736638389836674435676144740568352751386392906592673136169768200007467885759308003216440636938094425165068150581623263452483266790266948579055614964966479815808070033995012137253711962109698770761453816663326169274821070588147514993584449904976177336180268161823247705740408471915370136073890029789777553988851784803482293786625241952196906594325515215108806002944422113593956589837169043148990924045794434877624492329835565028900382130694661203924059192930453628726600639300384823935884037609148153797801602273366331188538043492829604791054328632370662397688640025469180032533915049832194409104537788448262518187701589777828753199445699827026000719052715364563783231225096029274848147503147072909499554022500179141579725464138280729851383435243185338447745052984191104461168361173287997476244605973595619738603546043619010820363596387191150681115879273746331808388089515333421759562967546137645811358586230639348881078952826580600733475043199330205543520138250438310252035168209255763200070950381144426922219463874907552571751898980286741070941653189104321646802391115804467518832473688436635317611666711808622258923476138829093985173077941902256104697277946088508179958784888893170034194950970900532110954350930044811479853996555965374607833054690495979415244454721832096996686838490513676707213866976027343925047432911268612773216185441819686373362677679251847031156549228225652164897899106408039830994272000383555932536174141198340166825919230138034963864752474810747100742843464068432694953749142577417804313112030178772409668451404198863099183919438780546390905915929609348361749103550839093396357245118575180114121627069076527474698189658859280617065471399342441433199252799791095076468519559312957849258257002092196986779092361679553680745736342916808142361146485012420225815233352261766367644300974694999661662807802560940100202622725960850542265222222488775882202311644516513569458391520097108593167850941591059894380953289406550985452621940417693438385884236016573457581321710597185963800355869335472318310645325704934184802424045263491809034018829022816644976117283379956477805169506539261612895273660150098302851663763896893728604464032821149498073998898609001276314095856709829465643895584111353343275686890539510219899617379140913443326938348038183835357029534980504362013507302608272338766241701596776160397406673291468081289452295718370474669136110010406305160360052403627607353064080043163585771642660028915505740725368923893587442164234600151475512019764373479007155788740647928979514741537123474425063996156536175771765083063692349053829251084265452966893222357505369603434997549621212017288848544648160939314117442891006044641354159171018650684039966593531240435650070272758040617941654886725661447134011247182240548114453026325246372789666495124825829013819495713300078141709670271920141433646438661875456546720939107883789320810533874660348121624845571005804867001387348108486238345762907243184604978012569158822841328680221673926270877784541159573113427286530050822444189198194878543614823998562363261406904326554908954879447393108651313074134241308489557164834704157601333985821342068195374832534360937124801955430627253702575190226872334744500312572556258131414907376304420077936948585891524625414385769359987664694992709398961701096098602561150276644505822225837808569207523985533198180365456222835227182026316199379238161646965868533233032168263522067714357660149398628025352132595002524477204401696434572749753079485121814786964962684544252773444597950015461063060417797143994382367010250947266608329031287100549432025854375309922976089395460489871759829717198461981975370662890769144902789904995023141072675753225752497800071173950976017046471285136106483644648159463111998751712142407507079136150537513216470280337659360804617635207105205666763168038363658315469541206848256968812242728744230085120001606080567661918873525731902680431927743034549395544950604753890087815605871044189055814259971622726630377044066388207362222797425218190234744212198910285057295103778259092721145056282736386163599067757375585532701135187784364801260075602696193786467877088163030465298349772726344925904387756636735578673079694346907142445610040731781137749656420023379508585946889652013695480988155225224297908743542031800034011847019072760842933103800208591594546406786132207424870793991274745135129780699409527444484473580767025058197411348362498606221224883845835104723393531247419379943860191280360262258074686330764780615657700299342722688254635314058271408902091637513443548275928168672547028642868509260399122290033609984422177140959178865959489081036273672614602226016048894622304216570348799501214224310854582411648392159039814683116065473200425170983936116211217829767510315102808182745932550136525466383768850639927080326665956299617873527852075529615446636483302204992113245861307167664253754282993101996252939173023778155376253674794878689133442088534262515931849114246421269465301773888813200529429486488578055280826337223925675721729592530253386248102348737944648713115581874437939582114097426314831433095026370102310990619893544281247018476077668296974657209200438267578008720266478270523404662358981452209766397630713181487141723638930249867723072323962467124052825492413969942010054777884258014172127703881697845365356418243892895646097735130039601765128853864944805941824495653234009248589688317634120436687666353257583010607119961031484897077801007648497234377478257301372194011397140714003391379874219695667531724795183991039510255398263364126594205897568093272915788777293421169145338606022158912857966768774897773071929975729609584190477220695754997243139249499973916956151595250618374577449296748088926778191368030285235315655431607267687896468379967929485568252101374059765511113557282848220261040112156686011652054879038812020660162490770093293196728274051069638722134309088131513618660881145202860506202428078101528532413119344058102471145271741989229503109658624885069105816618384241169758935352885649891648503116861963053073802589069758796941019317878450374715468771667744004053774375825780440337336612934494302751840774210782117354473608742450691169340922601811931232846076887849497353628078177826935807525670937496065079538146160334317267298136762014680319070902507602458970135102067025860410108135890748433355008096769018422543950528975494788293006135186823236314018536161838196234288434287663537120863841747881852673017198117428777209546596601336223145897229282967015079863676179197700105193596373697892933764241719626348066281978883003808002546743125249549653564865367770681866008748828615123262321808988284310213709941404579947112229744507999876924598816655372374816548116336889768503986293859282319224934160195687192061105342064830468445347862327541298932847933554840349757790600834587311524810204683459723751562486083697800907729360525600804857033305160961882966611348083079479130076773578724965600046571293660858398016078214639718329902230109703286486671395483582399369838119655591917803717940573179232986274267218457116692010877663725292562646822132641856350421180151078682786261490803953161257644251067622094309151678370914137194729504926407184511568836044855353173379274837734967022457626866243483593428063486470954709067027520770391719577182610650777794912455938626176608595275682405025340284775463499458327998995243246053482308940431769256604009492530983347447217022798908993800370098801193337025150605798881859511592295166181326138239043388433757553975108313518578095865448331539010291272874326362438737235459525170244457150733519496346520811553704467607047727854530554860278518212330368217440542736295062257937923609929292427987851316173221789315031211192486441147222871679624256565352682430275108055022945925464829393962542684848762889063030086621922422434684076588799587723800089167715954531785208405947769388562109242212774386277804992103899129952959641818321296660284239652375662714762689352350193872953822608128904920045127499695996066372860078950599944108134973689148835666938170094376461180661736901134340875364316469262140731525012205284995520523191986061262921998074940411448253580536092056799507401215709131458066379747230911204894337237775224412826378594345275451374614354381199913534922646624287267788949407984112062253891407754019449735965113844612417171402276935051421311136540519251133695184233386473059243285819622360941226037423439628316100053470903178668870917762938957463940700951949987656636032556747624319052472786330907799044154119679883082186390139544917951803396305429400272165603404933864473174602764498374287443530399624707783409639473366560451289860798574539022542149057966605127535533725336513229474855505478268662336591009054191447810133811003922074885683822207275209370203625031153876636931576248771593444361365048625449696216496407012304248174914539980196199866986740199976526105576487690796599761748797978313605020920810392406286307434742886821533161247892051365349667851125008282065083388903242037497279201863489662123452589784972856193739764743653164954369659190876434037358414612469383698481358344313860777677155516560644819855091242427561993413835950637811575895375219645634211239039358083922510041602438211870964844878232170637418710132217486280206975904726616847583554621140972523910865048571893225093605312227951861612940286090227172561856126681089504768307262586211294264878139956552258688456254219169523922301066604195919467685678311868268216879920481500249956696082446278609154229440798530405828549037231465548830148031659800563046395315825535965622864922910972953012936228553907766197735447044098543710220979316294405944501884368522714857611553984338184189405327774776065497321200070683020486236815738068250191969188743146800020214406419304082817377185826241903945965263431961307669449938839903156466928814748516405278691091509683459338806959452223687863177034983931248072473606390957704424947206567195615428783466557536456698973804271433947264278677186307349829736962328854229571110295705973385458057295600135355401516149849255538775617351140176420351326714788210050686815146237602453145056699428796712192594300624784744012959309060890205464520429549370720073634433215389899247245704949507526350574728561225412681892524934900907605212155524670835802259790602488807157777216037603323617189111948028171792687262305466208014779601066038057334623266262070323841003957684935477543054298025837333956366915220493427349660778838633933242763015665966412837809655182787794283001582619731420344618333190461404771013739492769475037248307840957258319480663389716029452358848409040476579054177673678116830123691765024617412803726367229714716602622052411313523672035563863983204178558785296665712884421376971083346620199366689963584207797442187492104886760385448902914301394686935618577309842359826196843687323362978266661164963500524519730685577021231553391460563985713527998924946783423263990175392284107639188601577484082042665145238638454365032806122279404259995222368697186934392856467469030424713284296850038221761929513565079042443354021540119241501833599463999063334887863968363433431134042627363707104918007507429109312638232428951043330477383799571255698587930840407224411777488517556328976867028408517957482689612369966680859775300466274548430639945378902084376053428775163831607703050280078886054229853553796726084813028202169039334822178521294747556995788755257540366219403666866617894884282097021065945114940792508924016810005624612211316685441418931183950659248373952661490147880428180902000711291766244160776126703836827298364335225116806266824941480903758256872929208912505829492992789289935088354425426901195231561407193469277740622620850087770715849936405587427912855003498194185757915534841519303536134909159887170460690978752113143502250350616260592584231506964288582798611584735819872935842117708106285517093207205297823751452138212961112571118007288909491518194229914710154961185136566342053096259360472768712732568916155620701269622326611796302672280794843804908531009068855256247119300581108096681814632239692803213156660926925220248793047110332281067203636964096104191276146715036495662907291480451457568813447241568165518632101036845270527206294715656493469960617416624761349434648529211637208572696488506303646473081820426350886875809826103484240634588064204365849628661104483402770105498928637889950350869803363092158309229720913931685578087558502396362073396229147900758584074762506029682265835618474204633052965331226552635495644123356927420786296834460337401583195407544085044734810108334446428423693847149869265671921509112266274308708434451903975695044058231612052556374215737076960831142582744337090968570920744607548572043670414573791368222292687326720410177038445685137124151804671970024884187978341519867738238363298230755535778658635207132730146064475865875363800549797133281745740709161219809274556759448491706996839593326447156441332188893032798632419118292996264297938511854903188494540559847706764241688210083628214294508410825359240583690733819361021830121075725973440191697094682639814201750519341063901999698850646571829726979030643827992543140623300807160525549517933071149635206573412607288685121421415186437841704609360735001377171489640997187836797503309928768911391919918479055636023467745144019145503838258245270565197930568060564137841198343614729937270644224494770335265052618020743759162451702119387606927852269058116101945672940881596238256567484504983375436082305484669191440184544941776308909805279698650117395955820375269220253956067029263908435974428028425852939557815751050072945292212102963117399966984825219252567481636491925159553046912749581964912119546214778895823048768690425906709525270933432993845693711694810460820602045919569979365289695845739956302543152233647525150539655652991052297965739901373376548248081907291630470169592258808096567577116056966859808011068501950282399023016190478089881774096973896264917185617682072563165014241878418714284400818564901471287930378281448317658072224638320801481239435215684992429773395156112762276109715888003419213295196133617869032803517369215204895724309547890695280947068768051446542801405961217800422055758541053667320886133768971939960452461194608063681942853645532121155578587871050918905913516360776233332541060841844813990782205796923498932975631999685105178646466572007216183192640186285411389627246940604338968999603644761510645567636768583063021971909235397469277222628984734779016942575940823794156090179238455419239684840673645482811847081692976564024427440252709365140528783565420081665594856638618979564570265648821050762781374238417454056907794943126464998932791058079155233089732227697060699659375644480308993212126605465236377557898581907429991544018974078472660276215000992863323846095137548440523933719527796750941638548959772569570118789670167193855731970871114440784599472821379666034038159244193978840377213949163012217791652849624241430925455880467872340662093300966411548966807270499615500098147652935069715480944450483706008977597129509527194969299354282267523711813430686274419669365948396727003889170911128703963642233314812411135131990694441289806100959813120754048152064737583366053209910867253308141471415341968880943764681389935096521068241551460604646265757373823010894076387099792687470440737916095299691476826544609770809993187910662153167670055640083823060626838322465708895102056803825764752933533190161415397423185344019958110128157913706474717972802225797844402417102663749279587289073043371187543935067265766352433937196357864322473814069583488449599314694406400632135663953072648197453672571498536649246688514794777289973726132263990493559604248949045002752671334825330594601333304131254443772466469366848921544273812034838342478052339967991408686948658081153164690740923586048687040587278225713849368894578779564720105683062785763772095648842555175079812466072224913206374894460241535960017200260844297746048726524361557835368838231338189533822407210172911979825151328288798000235241101411952746812394611098084603128852410934854668022050038556458736888642858175120779821050959996366691622871056017821416224643089184783678954447100770409789718738199616500270939430795240587259174337313902774877562419692664777594179135740906541354326341790100366317741855317668451539324582344926258371207973785182556613360288088626542024886715357276428104207720118851953428974467749780821855796329351706068790360342088055079667026941220370972027791172085759750948010254438394633797108218360247484100241884817910792979569820721227141108921956237410839317520796018746234911088165035667481113624938335155534912271784421765269300295230836683993333352663093349823436365616995882394591931203478771833463509511497054594359851702114773836349293151087810830026701615563812140029798584266453389069480011710556089640616792824814932921502290400996537229035715456079486911814976192178941014225822504873160919530261704819395089984166739685536383607822491622601754992665398327639931668548078954515560783748301567195752710853417839995831530364988545974535277708809502191284533438460001896845739166686930818902416703377705634785669502195077198154202877237227336675127212938088223264998185098460123510869126032720884777486806194072871161928490491473278892562085710800390554563450289325986939613316607973727910440900956229261807762246109573845987932314405463094755858807409450591175436542118244766921902263247061147293691970058202385159893117982990402913145191233909172535798076574370136004430139112982912773945949260342371828003937727200089703315983771139551073591658784543204718979504476409934134859969269981049825865953758774029040201641947556399612737732389381529880038748056284830949109963151803347464827059161261596524420059510896917122041150057632145760603457404187029803334465156352382137799329755043150576712460723651354534618132086994629160535465784251411559902604655240039698143756131337959412936523958649131458229047077942005451646110089747485546437803046287438859569037311798365270912195762163672960907112448921606047523185604604265843252882603677913009111443405757397167564918109302771353298069192925035663064724866475832941186961196740704336666809971993728679185493397855204501875568811348507860054280667320042774262071666209867705734966202850073222077084206672578504183425927524207879872430373261114640171899483088354608816524606438863231140010267481512376281266939811398602627293374457105933002949525507776142106208035505834438413796264787881837075550686534143187517145604016160590141226278405774880247129223196575609016398448045790388602507592895820515544721537612385429048613416124093756844511636318849113919325181706267129891241043255139309332657031210333692885331383542652310900843515672077187369567873743263709939615307127060922602470996228082769637560092620063677980079784833043759364974027604323520941243727492682517676148462553359610981005072891207297244014476033546345589083309542651902022394668505046766821436325309314294279638997824567736514478084441191328202469059044602549391619338170880255706893343713637537183162728297963175642793786310823302518146560622916884170044066596302514660602349408458319805453320654118477587793929338948640413337509070356437940047613115607324931021211711114170773499806639040482018886539397815759094709173465576333237748907005102702244384196295435415013056157470143593169390578962423063553792993332856454544660503640118798697481826316253799018011051113425286625080667219042717764035095657761036107540581722532616531255574685287805850456195111681786707057963005269808170927803390141610976613052896189702234455666645611480137499157130262635132059108365059739347744751284705612951539927345478347031042600985806258419731306461534109132695287697390912517813101976155119465186221947815019781997345582505005455145412212871197809923825003699608504449488190177045585618641120258857942310307997395067507467106016817748573115448128583827993088984628607481559433181962930782928304241077099258212822775580570639421532897239728376289487837694963498600077175481825170430753953652867747747488055142068452266441163552131498846616427902294543927286333925880371221817654059847739688983720961874631724032309857007336848738768160121222049546696134635621541082060708923004758432497035321596518010034676412397837322843525950809457711267810822258845995059828788035533027751727403137225786746745933389454670713379529906401485288901305738414709931461895576088175069468750991551825180599583246237875636677598790324767062943665122162661254280592838151333868041054775292552689788354325424641991917856714703950802677267654945676112948429651310410682064593994784260528831168276150642224685523148963750407351103459725597615370426094758954322684433223038969479741812468010946891403845380574087850388021209006342386814448535509773324868481804280113566649444955584742815282722512643464434295900163651346414227629998302152652228033273246873162751480126083646030637074096383681041739768053498514804247317814229978809009737732021353570376117370558442216632017516680553845117014011588589251588226696535447560669295581952007930597819785225856448417763418451879341245820528652028471409550966235193939428498942071017918698552818121361420287763889681869107503245121719353674945291198948645666980834195629600907954255837795834874678627684975737529371010387285829371758373399487042933904211704701406747429949196477475904258118302373880212861379654471313352253868509985597659416971276564104157828470616751347660307316805622950794437344523290501674324887389557187555768282443384749949286077892325623768548814632146034250199955431778421870465011676542043230838710643504296767739010890142591309631221920589217793988316881964151256451314759890718632513941228253982124257409801177191212409624684818598500253081794892877788520431416775409224268657973986652379843448420973936424652681491015696819707729545537678074546110728890950593369962643234576030508037373940626299511468915540300436128968359735327919172031454150005634939096526028296671316205444599994720887254067274545560420318196252271846419316431230878484820343689304532446743207060967383887705834437642459100142617871568224322279079689534543267866827472496679378601211539370088149659080859181647468218476360141763744249871041323603860111581069383026470379724040997683589311665212340739791015905983862542653023750158818836571957755144954271385578995203735958572982843843759424356936767289844645410683634811164212066397211038646862513826751952879676527215059888650677880101457813376934363061776015453812561809128819510232641192204400340918286558709370341812499259524452047017393473017966219510691131642434163252607291885988593951512645626623019573004344600580680986591262656965466853804016430442183564826042567474015110295111917185911657385900663766144834152124108714860173664290910070339288674875663250225909907697062937614566942933255283338379328057348395669712362997546770343420952049519259958374918421136437923498945378489144738148854736023987046540490574241540357193458617284566475606947588742424529295097093363480132914480398326526102902433691299445270443044024975258551958454383667494547978537107350527075614408952424341006257204797782469679840285656349980979262900084672497828651288869486281070251600537825120617914871296441138931266300043749999351466852186642003372018922501785670590034275618282085890344331533563487313190620896668982932106807900376314568950830899043145369699223358304239828543051324764378106400995983156125772431500646909527094809243740277578900469640921600966941602213132212945167612967197321585574271275985442456192199884692934846982045090387427488317917717610125879681398002091209933401565613503125362837533826690237044935620606480757023183022618531014924098782295248094365934264124221717686924247612493724230964275232119375568566329757465593724282496875669342245385220612450401209217123663116608268452189786540906760141797096754077173268219112054766010808781040916444114025386254148081013197687261771570847277369846234310100875966749862446003366639809519618714072868960127390887453608676408299725440075115799816069860472986637614403196871820680502570172707907637263636952565105867081560436564297014461514310280247142648652147761842796802370041544144400776248595699617110106861022235334683289289030281387435501678708007151269244784454302071254290222583722029574563790494755802005536949071680505428220472111120535851862595583935917586525720462363696460316616300070950255196543431855544032562102556427578525256739380020073171755869481389367768590500984499614348394071045836520175980681448738248401495969355352079878171761933331790294958154925359950476876522610239253153088143671599896628560490653513833550987044467412483265457051155218072059672816134115469768038724400087452611983221920883571228676099606837663998869752979485128062835009202675715496482462031315113361413871262534171816472916829741263601207609321653108475243978818658005611723122761061825496534277463449360300865723552228540767108830792707416379064738283526633081003281363757202856151729561072834559172678652718236086606565765211368467486675908731073946106802792860523580708391140218588879463765725849699650486507955484981678834272025333535992525465680137745252152636835303919466225592914030290632912429229987239600124993005565448215659496744644723507155369231443195987122614305869935709109310114506681942862624966541955018525234416922149159924003957816399906283965417041855421980804543902901641036265891846463063154700057604457159272215274204524705266735362277397747148875111209982616890915766636366818674157529041597434380291907939226944018352836066696952070194036272912363627715536636646832134984114579832300695579225354871061217203305640945043106835015715357139386027654187249105185550140015801312166653101421440328582485951949543644907298671341457990214108471413110137703282295571979126926120495668312947992882654039526105877181940774457318800234640663745591410582429278110146942865450463430819567727055486830341733443361423879652579602803070085883254978558104480482631593334434244026964402585424187059310350007416023685386101826262083631486986498159829564080346770304897615307238671734307179969312997288019699624899395218545251540897670871705358445127277424204869880996777981791409714492802490430519425698554347891974169720502254613077267639750526428886945424832975221100043744510604767899506795192754568411074078680788838552289882521643671175355088220635609132831236792988458241918048704029708406133974238486597021176918256202821031733899418659870922528291336172331152297302128732354909832867313116828105898447368659873135525459031439723620669813240860813959246342699400944785744974874030486282908271721517836766124881685299651854461380365107324954438221391322268498227196219528396769610625664694490359670202622307057699536936463053548920781788998816020102524254463530147146184827450301860742311646276030307968114804450170761184219989281388226709709983362170036003728735967766728648802946165066535831565542694370662007676283732558382158284309002506092896508185951699377256390938184002540573272811646119822406555151122219424609107166310119444228891322353104314319283534087176738470760218761874378811337293992446192159005469886030839531450185047627706104114179636520843432638144270409736660383531932632280206021994341921628690494548436225691232163262255690459170181669665203516671983760412505678687756774434033025501985789212184532123957165007255502291478611552654087650525126934660929959744137841043315805160616688428639971833773388693633636365959686833385602890028187269566785842518581226124615585650576754814293289737010496704238620132440133245313523510028013743349133429107511482743294616639230545238058313102064014193272159760699322647997138819508627886571686652297659622866724871457856690538735018046907847054247111425367931511345776384098985826588086969352484897767497965519038889412406815415227874663058458548456721498342159433266984913021165858220875289823855632856465547867706047200253807824946341182728686922873780505395867386621168525207930833500539036062732619273759563229627789218144493674413752455664579171431329780948017450465362136660456365648945422331333665619513539512943346521435522230810840959631021552000368068653995085035980019333777290457131826927630785084867534353785148044421111569398845793880766545276216387860867448045592320198457104119848952155513212614309341510115309325940456487281803259088146549896026743570104058358968162864349794428949400669965324787351656872932968851937852615759866167466232108027651957242177470887920713259238559685056015672406772336694269096752407008818642021088598266217826064341037030836589426293141341584569641860588536928815393575994610648475174884555254660585439820744920581195080747852393455644431500376630249494460018083181349172385131793681057460609433654031610035792377801169456057538300699839630928257555333682992426846085509010960337683829690174050732124589010793578464894515962894199760496095157931236287238973048752373214181859454063518716896456884423550954951055333497744289778920090953397084012542072579230503433007600041873839160865205569895476872144462479714691562950420993193745232298612327522654623964474623385035030649902415371886758702773682398372165420613643880844206576740304560033519074915933590621453849484290340005449674332573713391594127560267352927539046092908451084127335796573069574221341805304000718007593557835724284148602162116732282777655278241688120314241138808529450479001402028895871303735812174802868264367769004270302861957088060246285395384777586853585347822619721964407074536764787151701793017291750439550280362828657506314014381575258682584274670879440755158026252014560250888139975585682889967962137867481537508461032123188694806412755615570468662706827208961950648546299171515151074645691177832451931550361540588313825614839710931074853612938831903892461441180314151508665014030054105007269389665397505358266453351298005130852014594744196296725513297817333936076323732251773397087021031721657957888519706817291182896287515267261484877797118550983260832170731708493072130892603783927626638215780158087649698955324646721013633069076789471991229168179458478916969595228587085401010795967340200010140702120001666751741708964711905992117234803460782656707026342112172746757911404517854047447942504060076436062043698370161594247608261000485210359550422849755297884773864681586829407095872629425651936734875174039869263402226419954983226011556478071275454170998390655504257476850457026862924982718739870788504515528641170110092252655911881096048287162499663267258818904584333710573819641447019098828749582581071014187507071462524376120116061633259280289567889651432937418454479956080342297452564727366074214202225551713331430674287895547916758152142949721428389350525504264004404431277600874346250680269741832777234205561863166829025261377899483985791995280215431504194552481825022297775909104417074648489526313034588870987811269275375211699944402242418890310739623767761522027714072716996471171167550708721771041223497686725408614153004232483951232742981828312782521124441528106308264917000955979693659995170890511556891095470023550002751949965040953663667355763909197214738988259018621698788179253491279031219992240858986206850293490384096090903426761133645821158401490966525547594422617848050035144492325513177711863247027029827899318131232977650263115267390266279278847649561912118063088723439946461404187852270751843761136764200911787814390465245174678127563503131039339868750631247386185582745021618653897712055353517745897339249342505660837575361931663336281038968240719768112689623425873929109916564638536962984435634207577976238885541327323701770362809802727469079073081158714667773947479990141341358833966977383657063398228219438965443671403912816051515912149130661510713202669544900548077142760413023493224344848082405279593094881951629800679033904651156492212960642855755780412788420305414817447986815427295290032766721918637558152538759329330252824238382335611149075709729733112731066355009318159165170652551458066142221652076099559173455532276930679052744231186225701950772315290846816156012760477946225825856755860368803871069437144253246813787205038025537812623319994725947629154502395443287296416573540780094670900217892958779220951149146585346511161454859699358424512396283700104804374163551566825218024919473480925283328539133112629349660931649996066439272720610657477059445841632589768312765731092304619895410173658937559160024556456760615096473989873974179571522001290760376317941118939969749141524836462491077825603912300755832016564569929747846190777040772788258942997145782399916120040816170588117149360897383729416053007578629569000475820569285024186309334617636162511442633203995666117014471028292128610295992778893556537591439151163934087157300437923838672871134743437771358501410207986437443001529694838308088330786071311663044318417603216804914300309355071839922691727853684826810367263761892147461677824941363626256713818638917169001941657543304149728969281053724391829949371017461233474794874444039865633260190963989049357983948883830610269858527403164844076649669916587688169013856923735737143079647752077213846756118032406435016691535450990002134870746282245932382260019364380363288326994268475604905215144456300469444194347057590485737469993702144686852023162437471527764921485912214972063130723559100747998173448756785390233315896962200335773717745939117734344996594742369900566180736478446576121784643646931299135621815921963182112676998504540542433453801929152569844202480973119752365919880211361209433044952914366185356718054027859980943322746087807952134870493666530722856247136513559059976722790150121481033333084126830437248767931567810208555089490851017704912508349869299566556888795689837171387184783741440095477652433440499850542098013017653368481242558186022800073622278684938196705551519136708329941097500704759287440182990714683031966516595549003984844446719733514580721442351561301911434804889427484635946980018098322719610804523842558717888564839583086372751890616085634214799941452430397920842445344835251531628241621499456206545463839227416133729616686294939511518986884274044294226903813239598954005623378124861781915707792884040164131870537551766509302009672960275395982618805002732247979077942833774161895479527021841380411889688858008141944467554358229355956855731596246642595000589274468733717102905790811401348713475986611352487748992605372123689400977346466540354782389597178980068880527940210112720311719034699776363459070624467250220505820421334266822101225982133143472049184574774374759173799346357842620150457002418425986363173007983806124579892019340172424183638588143548614674243552517285201764927097583569612377877776066885155610472415444821503851950912611313411873889118524030038651969793626338563857146903471138362062143009613156105617941825299411166913025550167044303037946722767666190409686440147605753152691264756518807231846637699288715431646078498741583949466808607593346843281304728296027671642598234126857788310938339031167305891391564254508232266623266141451121682238161368745346469582652562443695078302618738417944324106617230727850176919927671978313256637983006623898681049367795548471973750208318973541399825317985220585760145938325863885134189480027282777981837636748751543603704328534283805613899101072374767445600517536954229862087582755289478266411299480473696635732126132533832827501348373647777173018760150961034995574710661535642064698274915705325648694085639219892032741590720970121166885880703965953170857343581291372940881821171218897851117137499174018779732122926334742548361405560610379459506331976700700061865502731655892232006839658023571858736917972401832771259049510819924554156905608120493957577621980336641662019741573302625276237858974644997475137587895153911568932715835685521616662769566855923187175455555518787084415879708876575893979595021136624547751394499443000345861986601398306002674867777531366547216266838713734850387811321215530953861175340736488380165767630593396222789568815802730816829346541604186859638719134830853842211083695365153203195814442173200695102182551430499767397786718199405147106774315285784308140093482361041433094666212152487364458442459492547102243539827716210825970078923789126790961384902097015774690012475219748400469862131863905609980404568815814583554193520144701593873463852386729379194062310897308171297820877848460622762358803133451979944628016623481455856855754952722416574377960615665888815749160777333483292897621397012883352479324261135100723790005108289658608257667170774295810875217382190329082416615211465566316248230733285776545585770206958256986466689741856121278057963356189998033662847509064149712312741658427256998483378232828585654703222252118562720311228909042835105183920493963260892071085456046357467336434627309751303163158016261190059925814581352180793419647538221514726942419891101671901309650726060180721642801210439062524757764190508753144449826009455787944386207492730347344040693955141527112847650748582206823706042558584363507253404374450360244070520245929490030243989339168726006103706721918057104073528889627771579138808214346440754556700425542545378796352325849385344775421723574177853281780403153654461829049725904068148507563407601143389330566425905034693146389435062203743380809965181538208470449847644170306179042878486013500294423597848938856951916607589763834653902511541943164040668424207432644507050025097711920174341114804328949493136036156968192421326460108825849395987019245364641185119441938800401196767247659031548094389704700948401029353853421809556933261567898911597440389346270129930548183999013650633144582494082343131626090537398320672593680540598456354618935518892874241416300246191817793916133546184822406865048910797684987331490605447990135749077044607125458848849843202180472685306021614044064175481299825095912109117312891274617760516440397389000362293158725995233777444119669533817130516858904541432650148480865385184992715170735067602646678628934575964488895597474598722101623415303548209209329062766845394966867065129578134258305206765415474868086354988413590181304872641187504617617797157049690481498324262966141752331849559846976493076360621729523191940794066260103676328133097877854842154743030618734285481997449152211271727578241052041450221510701857851011967511656866877504488876843368235586401679155185851170387866910232111129075165424235966672657655009372053251591962005218673487389696014159562145671463309196053149180352203785673307943042515523523787737580769726822481632175407498391351580745821962206104585140706278613734143357012334002638000401943145046933174875796722776051074064970816420306724501005957558177545063993810313247367475965348942030050845754616941315808901917991051625190381625831717335494636991829935325677038188017919025098143631127998004824184371525333434411948078302878885132088372097381798341709240371558224590581152056848763191392526450847331988791804412533596832036573247590620310352355519614492387827253605793379540879305017178093435304297292515664609128890074807543067092663054185335826791289702206095575171928269502723523997288229259286545842190904354109747650539679192928144855167940977372997444755806158213158898458265137281255456860517481884172676680193897551112152127863836075253590084267910050023247302503220337283714412206918206945351679331584422246149664581173130618526398783079276346003797431753003662210225216788407006693412709927205242547269661045249863575021131045669982020709047807326281197684755040510672777039467672559801406913810110269654580580144795621685739325655252513947231732756208666024717120857515557863237505200859303227932306312599567643171221772385363130760826326278244335421248318985334197134099146436194228939511858831951602175077777050304054319912637035632756290561336002141278246075146115755675602100716177909991611461218931365239601646104532248594593641819730757621049627513297844129930244763940601807410114146781970091269328302577697455538180114673252028383943143551500994332545917080154102836020085981996402387280068397082654125321531364730626014697252260516409336118043356989509547104843612002302721758741790547268025937241796185142416704327337067674758967302484176322110765197358902341272031725290103172964198842223474342354823954466711410355029186402372695084650419054052112168846187964917746772041800148371465035864460890434253280909797368612212167418437912848708414003279987116362701865176810182977729375707194267933924059601490736067289712104612430446137833397349859892397398080501304875354248257494634445417188662322082292223288022891295820407405642039122764233329745082818103707158543449838183166092202623052054464797395043699259703008929492244140045181105130331471370433899239716209783848481136366894876717284527327889691715955672381059116635244644828240678300593223213719980794108131350087913955411659993164439354423857500542795422525184074732468093418357916685832167482639330414072070566667516868661555395162772822587870862232486290341317435236334923843228021554645175933851959755030533638477702781377549284582163326840563686946173150666997659121994848366218900408595685602239036296942966295122181120369010668527901284041275888620341107313857712427210403190820792996917193543514310058742108001660443595725805847176964320650873922602264689857258495623097530025952163315532647195473316216792944479845685273197260086730248660950720907061965381629061622634210809752358653841497697782400306516628657809649189988016275831866556764462032030431077468981788099887401367711216271364814254965905843439185804617927382443411379506362403229064575855214686342706924096468778630806176294201233066799249408939490145689896635212667061067459206221287903725174871350377839508442871756529632316157376680548470362531224448130149249870576726428912283214577655035925420103189310405578527221819778418663173447504940079344315076869649506275591070636834926831179762066695208669306240351512539933820292235103285025734053640048345646569210139597708095549380340439233012750271706377364753966604253826303514586593659343944626069116949069077087031820791431474976062669872156902760467575601791377191906298146942695733313486452062227964375386889583134917778421492698265070858539074642246982054381174291255349769850284343972818910892445716727291094189119658435712120429204051535343054176969515024699927457682117392489184456012006682325092433471041350962267727183538636711326494276656507859228102655517327969808449703834249226365725181555519829049626461623522598165017265127939057548116748148409191150880734598746070985255936044809490096187773874464023561419901175708777598184852550195399614941671271115562531341609928873353797458853437346002670949444889677084322471674707036021603047064731337608223942655732864176977577288106604709207784308045525276045993875631874359308005294324603484901189378815657166555857350974963175863013327722796615395429286030683913604400862370975780367165271080302416149823933461702392017230705105518087564061083530733831435136538108851962137469648204060180558749862603255279918587130451998020369985519221819541855206258749794872456387710730993327505314211978669568107826585760185150456012849598855419744976534496344232012610321878238823368577848989227655405407013419366426312604622504963277217225045947192139600496439632880502968433406323315856398687979320406311498566257414924228901700230299345482160426220267344330469478938643305356836489235746749829921123857809565519059093315994108027399172016766645767590809147204579353155838584477286661993622439945246792412663011982409703786587148511999118102657990451957894577837394562527607045314425849128085885644631362381220808353496386008841644855412882648903070687967982262577111802645394224355019328480488231305989295058615930828084043817545477415386583539802748347570597393801380447658514506359921909366862845570804223555783805395273578302466438624403245122790190181021079906808981900641784962852072439327626395677964578008676920940535273617603625745042933763674663703421950075082905991905765474982557254027290909210218845864004739171285910333862765566771583535199672996604528085295568477753232059154904424420584767971181869350994113732996252589744305305015458965867138475952165562845225126239227336646748478880694268475719305942494389721946467464379254331222466057091398515675213693151079867200536482123897230992853307421544693258227903219461729104067102736313214012980337081670158404200362136736265745424612626215938260891806995093590423550821320441280740454995950741061545238463248080899087347993179288833662047048757727939044441568230982288474959792080141352813924153302781496341127772706220114367379411309329115843983598263972663585310241439885768027909821825446505979040497231564940009309427700516067982032398306956225303090084410913131338338047657781302987950641918869835075784569691506522472994332670584447689832846544643608037199162417192264092716227060259163516685613025047668644400649703662556324957730509160177763032091817803063900465619598673399241689737284988711380073530298363758077688994366937097804405961935798065226980251932524777154042215178490275711108624879030917292174113625841542232025934064339732236466425538096902575986440262696539706909757947583111268596899364522449492811475819570429624213901789511083058223429139432147278847924851871318580091200295259535910609806290422289988153333834237426139896755887814127483180313409148661023725141346171801585604941912257248148871022683247722707568991638917459598161698564518016495893181230805288800076797660262856548648406071251358560759959726812989505748754700359055801501791893413374818959208825163932695364876588216198018181400552221791314437969855653310134335971202897354858407303876484915531162909330391043348531754220753578544402672519546418243931333564774859217673323796029602246143384485189168815041543067617962737809532513504916358436906260014503378357411328126937287146690734997828766228606420499924415203712235679548650472136511666909307776848230654650139937793234681086868379844528199195552736446632439183893701285609363456197712359587999287016427931951502242163071525822228216442396637231886683607787373835851496046398014415576251984766536918589966585743739457251218361489068001131089435973641308485450115489010106482841620793988335011190273786035740343050322702121979619310153134354696739815959497199461598566284772325629458127249163934609229322779941365850678315561971658554850436037302570384517447486617909924362647604006490475125174678332804183856299013937407346561061876432096924396168833463600813604838075018187706302931159335895464615569291652472715324826521529139035319597733342617410058855780645761417826931394552962751743526854450324332556848931842253829563248780626080061242499597239328120967932809535041877324386463495472671455295273489321195233525510970668839677084509187594906196274311094387211904815363930416237386034931653508395753642482613541222971236953030839414421313387604567349031106957130951633928170396132793505976459950196412881306577760282793153628254219633811226990091638121738450254979616561496788219123675861006966666662735353037876054439704437257294420370988910295972419484866914400962219419557796046605096679143570410696843855932311568665484374471664342389924314146909741880009062461978635510674730449091983225583571625906638102822033230152820950537887683033851327314435886041727086692259801391805759919433777620820943874392679985811662835655444174470617464572058107781935901922143886624531830159116392987108811421287197394011345583557918895394663957749941311727502905556156616085950999305230782123325662364061239409251012586062160211610362558749799004973969774127254759394395538392740054688430642503208439240952981592360607748784800053556543499034324215003170188114360671251008461037193539081062255057324198632197212653014763380483092643123133456334146626560537878109418185216328862531185868381418314369929198786823501161862937608532069231239038708312178153857653459935250557343082980925976924303269447143759069002053734891768991846124939512044260233099245994440858044679918206349471346114722218757205005676716973438404793138474774893457732878212907559846057771190116973555400716620179420517159877360481042085465566086482483329715486508026446742684842916406709137716729514348704342127508677857807461925969686190500091212132624115803329167014060498135678410831253543151394168838089996776852307705690202353322376766253621061938285742146369302757137822438237433369209125350465559819136250795441615827658774266329721912367747201153140309633138762147374693990368671291761711165133762008082540228148500707645954113060403447615806863968266124572676193853995728940170671124700582030407148241019953490200094639271994702213935833947202427616441738564299957193391813780793566627768650482075902102004873435806268832853321937418223073567270332462823185805141711533854020475263258109194360519021771003352882026701384949849855751655991161791808733073393138041117003484389444095938386977909300357155112424185202214605548221117039317451558914644977917625194469561507106594127367775798458140478159658860616906588437649968374461270931914003622911755678379110030481746186096083342953187864449833755832683533776646896670871960003569515640790241840241349371612866493638689909290531503611442188755543586351283734861472993580534828747200931454438690913580666443852397794952833224139050837731673799883045746014036119945346771713155675941662566940744653050842467986259114069389049465379777402216464376262461001611363750330149594538696006509051075754478107308368354973824064303724626865936535530257742408287506845242292549594510109707284940150205242188472291787088554863627331015671187811947951513649478448012804110082051739574362531970122097127645664825394768824079015262376711093382804106462900186588434571828095351160127376363228380501017118706261720875308512759801763753865023033166859744154481015996525166775279502303717069803440084458490605189075937456072212950109436400012180110229184464125995423915438846430868524012244684276214535927800628191464274635049373416750023999557971028084746331401021692575140773780136206641437520335763321213563113612860190880139741381347870532293002306207854102426097871689713233049292144059742202310025209472052381572237190494992627250927151022549290784319585850431321069447842860362951006956082607350656625283536350935808509618304392955650046845655748283333031018357232103551545190579886895558245992460682497635662335151164831490989407183680147650682362457826672620869407495746255204711611350871042872023717168613660981746560430619018835679870032028468548570188167426785413475375374686134823766875889296697207036397765800073333426101318425279995113295662415263038304300750577521114228266527527894194662105002903697624339056872996957617560194726178031755930974032272112262411761123689980078426841621614956834647098303869524405143522930653208039842490665880828386818532575083077282336467480941564456314811426262303199937610928302979875524176710855170459262720800394835669081727596112556655268944454836176837130391640922200740526327672481811780710438920396005509636414668641180748617845318944446234000034454812273882023288550678490427285644041935442567673965952861434050109415780210253632290947679988382739708730000991650147920211635499694964627775800059503650999761872894499061406153676402793538337601760691091688067382118006604443175338772127773639538529260284843453783111116578299536164589846624923259485852598487677488876585800699516787953100955427710350044457343462013467033516137615517947383899003401904166669328665103082662126956001604802007336703092669939068924434718419486265516652648072637520455561784756006923518762242914725549823787831419945335257367869967200582111919172203361050073928562544631674491997662141093504951776407362619243664919754303610344956678088348102916702190620474538047492825391128441251785548975502314321470084564798438311389550145625762839650091648302552848269730728972990827527770823751046961296638943872048862633852120537289517927562281758571591640491696726532912509835911887216387990414913996430941655469952197995845324215227307994492110431821230289100087641468919612749664589149592887246483142607722865674470912038071057894363914012610865007598240984650739514874189482735249631684056879690994612569603630539658492354443603897462408490318504263417513119146506669889081592797102962751076032385388029966553836521418408827975793002398590076007279062028679342999681676100113142587936324880087046452319516524877290316012295423093826406789081500359787949519054335903705184166783813555684867835756830441072613723268761108586301896387138894515193020507547568639428984539514552454982701615626394916262560896210925479642170097121652029901789732223823078903810020981002937210927820709635755177304277290763556201500935956705928199420394145660918390322522131385833003759264510455535095877201334541407043645433250713945854724618293664826960012463434249542389135052047871956220167537788972066998728323540635472669524215922768249254615485955897163234425871378306330857842288203100130566658199105966363726076784470756881419383222238450678971054493425345947560023289185892859591404358371053479850958935015326298553910120868415320105862470710020242808865402548733560192940504505983438308908247239589282678140742242081331180899590253999077775896806973110370879466571740528556483075931553866938351718378777935111931919102015645043345797152115791721904465702913744783939541623590613495202287221198741380063312200929713051662919207874117153328108304967228263901440574296305326455925955384170743300451745504619488703708376316247166155108049296758186287992067306169923528903020808817217225462877687359227153923429331157664902131610056568806914439305974826302560483066189555064734089680721277048989102150712476904301685684592135676399279124413946149275514423505559465102124847051775089516958540555970974428247586153712147894579671790450607200030436470148799581600531991615651897074840025998243820676222933324163443731458172419399210101368400110752709527509980915491409965166751516789197466107605709410832352790756559665582370218860780571539506532597644769214220288326291802438812099749840016670500056955354827139118733844981029562157436174755671924775442239411253681761980808493895138266017674800929050934419515509392288570754512607179969614223410672419377219411794303439680774059899322538335868661285021861370260716700878949271749553436367200922903301435967381877801597592404413711238228121771705014492367103706323856664693768822989023552189004258611995950589106589831425484252788653140384845517076113751391932219787915559497452506381394867695250747473098595828964383630375596357178993314410121288196760901401007771726890931484044594527528720172906882713781194574950696620555008931991395296650080997927822841010880207222313349468695100450335189161578590437222382623734724298623563302586940583215369358298897821146847399446061891366798622095610699026436995770891082080454179018615760696896994165694209585108152581948034862567435444036429002367026264241621569351788919190122901961484119432288307252390160959486200515397014676600440400280533534265843383824263845973704223118530160164372213583763296830110331348497444747361189183121095907931944473291843752656212129756335738810115358942035654054219463090160924170203324924095661920817095034230120289411566904071072168061386026348792765934405584098949774564236162391784622423478672498640330067697907329696165544787932238129954708620043240277106789574295263839746099835665147964197240292431879825628846081371700860669376202037297287720896265395676108306306241588524523061219153507779882374459599154399971905103649575545848313982652035832983602340964558227936689720796696676624751136897108480200387811358140455573864191120772225915129867410288962681275334458691361530283623306772375761270576316947792242124278002574752151216979132678917523858489932052183343971359249252759367375422703283704247230791480419727289809675787845467801899318470095687790547099815016117642403158392903811876956156244931823981279757539822856678476258611547153079235428390950933760300681068585388803436154219118859122145435769196784024065333043185309393487084954872249201476276072776789931289862960158529517463281588800482609869669024007072081749902863702051522328064839741707571500863646778625678969096901261025207650182377795134392025612242253561951862333671737504459117063883748579423878760625473963388191081390332069940704544814710505167487337242682447581792186972515866165339623271279995670477617808699533257529433472965447785487545007939767113737417084673763564626324770318251063664735936394815485626138841233634241620613892314042742239288699765257694434354218552217292086103284184035563156473236709909227038564288396282364919082374813584634792835217154521057113116437896922919777173407548979319456677211281030454753552890482376833983009602739313969483209053323432305693142143203255950970146399243266232498761863172308338708816344590978877814535220823817562276782464906159713585745185171658304021285170589263602915247147255786406450976744537992349010793968622432765884782135402555023191725233898229318563042981172302550464329124422650989985764141278887529848586165724540503248997372599591718453797521659645227528594872155386186390504515632615275603098145535393838338377204127378275252537414726448545359823858243081946644255576660877596215670166146685128002395538365769039520273312819835724101877572936040427627580929295645296683572282579010170446469099907608553375279129284001244268253459512115787950983964038650750891400670161709930194522820584901715521661673949137708905380666906933718404230377568855047917115476197829806878965872830544359614172413419801138942760561252311566739723061631779848084034404805779781159791001424118298104096499435202640154547821212916765122885685986349893304515138370328523700650704157782699501482175851512002911836601369451967462882003367600129187211121281012450768319285146469049421294240118665987526016302093246246977125296634126137731669947027575638915827174235878775796300179572093232228629032317448576628813723289035059867613253831902521270709881065672420252425027370034888451960117092859480773796307337958627125573438316031987986062720602749896388389689675607006918376837932816236996257904336960073842466071461816138151476081173210147069781440234230714253790916933456381878929956116267725451700416215992812658072993905738927964040905687826943546949003684009889966576614689249144934561124290930088101441239873221326440729171678498535203066559259536017828478757102662251592533823573097662545914117062376354320164515315570073308997371731495307756461397300606987619871031056689725575577418334395517687369231230504626596634296617878438411465638990599556434819326912442825177407188399940072569512682376045528446287212226635100352970580624570095069721904378488464564395882982276146496242987405122701003945445802279335091265264307522162226100670141377784175850637950471460694163300595508092824532716482622054139948219210629549722152172039492988203637681743561023408350102115272226871361530525285181366453752423973256878008868828467645474069991634377165875627947324748248386317095583580397830925157127040578425941258509470427105755418243269185605754549722727179078706359097820883012541260213468865082261011066577179678185401089546144851818583884750891148662793224031467143588327282276794506873068475244576128995448317433870952977867380471233585610043942798714296487405813077665196145728374745340414069663049045884633222160453161787624528703230193009330159431303146851798073933064500950607124955418521141843171580088403220068539212350268113846880274344225546079273394233081425730633185227373061456995905658475054926918806853034770813471042519813772918992125230310698468041082602885932285473561436848572092237991614472544095905684683691842446034047061222581974408076349131214833065002700591857398601866911835333148072397830905021651052885201732173030453582868904827640089385048158781268699205923227591884701435019579392995374426117146200938552020214191393982010091150256490446020324951774402552161587571576446430104637343321304597333325213831916024589571751424041827148615517867047025091662633656989857839523623751520089510958960574947422471262327203933144965979899310596806498415004865719386069572159702564645097646676699528023134294620791829450473303330452740205646465999707448393918002487501344891882718084954729448840182394762535530670707897107745202501133759812557240285693930746083022636251637601215213172756711224250991156187711426963861671450073540491744314286671190970800528738178855961036717559679750280742345799784730035357067887565206918009065050034762860049709646377593362272077198022798887437473345144405496447483272941998360939612363560572762167594222480395100129887685947675832210238942232382160101745151674848421937496971837797412773994886323628018361959516572000778150889544955032181853058252347643550777727265252998208837814544597460618831467422944778249176177198241301208323255726879956797062673421518519077924620717867655957602024490015646564244467334109899508438035435723019570194191455982323024774372494463345926583570169419655911855887460274564446614128600386420427741734954343895649399158754275956051557127698930790331158872124648373232623183998993092422976374576609190981442941805181549091419197734621122220404472075055252643487792098485824305549833732430731620978292011803714030435755342406359765662488184770558905321170492107611081458480276154443393963295101745347288289874856105924002855439995173734326579906076605332229392202015852501118535155592416128547838802221910283737664033599611576901973785049244964676097374020327292000402659707416228204796192087462833252414980403914788436189371071693644362915703784888909751171027442833077248203815541699421942802135261395223533662432095125149303682861573808956622834142928864140734775472349949730265778693590047692531069957433020510642799211443040681011607799556052409546356643420704794702687668832754955898388777898364674759998820631369735147247499474053695918380461029717768884017235649340994524653433186377007293144507045008088334605774680293166164418948292090289258758679428297611437682889711891600885834764282067993562020581124768366397271562193549927883886300137440844060884181226245609659144898374859419721071861039731509172755706193011720337355924476644520844871934868462164953166224621624800184884760509795441678481953130297265184151968010430418542111329823729767542983816114044287781633554434151562829244561380665103653189023854075277596511146624375130641767593894169724285196189027492415689095876036192706002400638547658224311989401313586139131392561281727974427906586503631791021708484329356285983879659968054753608185915221026844760907885346435736973103426333574616165796335400537724713659080327574092131850820128629375479388571634706889108417747338163535031991154633273913822011914704056612948537549262915134701371588449154601427548559201697362983527296220895019303421485896931060184119533761382199275455244085425376534420567020251521505227562983085853486121958392473836767812733264820103711381819051373120111236726957564800408026028091653732637083564139937165159192311457341418735443410495822272977420225210779179365805394051868820211989203691474676948256281150675765712697026350002700093686693050230325637591216139340949224647436795652923064881821131712492888417345449524490672500586013930943682097100263340729279369921532961684726119651896293362939417286061443899558029247855932764387662007638473116249900703279826543667508739946703587935195915068532756637150539849509517729987562218380579902699229060065810153997699893812347722016603891764834892665188501334195322551543756445639144486340495760357853021276032180689830772619492015600775996394376035661151344962155083698719443575346094343805558414763983057784367632286801130853452505448899635989498386128924301414211090937638182883716658962399116437982751547526115269922384770878680333534787078916159571141244111603833150300397133503659527216865870784581332716860280479313806047148699152053211214691494169981360727015865164538691945821964898650212991255706334257927725395084930206025398873467214730863767172242204688986677123368087704667581107797867940303803569481215275420502168798499687203391234027760232924596127923088390922231721076587274680777964483293083677430079703936833244732318031134763366694095148904422317900276236541591761126058824429635400497578181441822332000990122869627056422123995925118841870468872205138594416996840809678963996965547430537007176800847272473075780808542348963504895601853143243065602620635023270187692205599897223938667217058756074867812264729250357571444944811105992223876007984720933566460767798157658659257899972242391034631496960713518426929873320394319451143469151089909563858386355004622182771918182620068223996319503837950393245522121945175935407701262197369424719280803201832648565485444112177787593867964647944293795842588574363000102127922638998693338823138418025461110692015607359976475770425150700849850243621808514584357837247280104342263737215005661767651804393156513351328363999955201347112241585173534844850365537608421739155817248129110441481017120454442378045415667601474238278755775669837937627691387858363749449937235462391171977923504728132151260568682008555822057298386777410429808636274269067156537532467201748570907118653022377598212443691459006940042183194121054506781276075982662749831860458293976192640020668483055566563059920362039455896387298646762939800525773402552666305481758073703164143029162274275055819318420547744899529425303751550482390498879575503461730723574821552214532623874166270766362858444934035306042081782424001496623673555045762553515232521797672477474232270428579810638981688710845938430295361572083605354856772175800680563873916034848920926967812867814475673861961141249863163484859032921643294741828281124814612665913803039379308830577007083083282250518568990440178879763784453556266338742648605470882159969490989923526752107247516280383095350868702181100704880404077288548182077508373625630640620762384521798952947384568950674861843116144593449772229144117199566629441339855694526954485406582887095488583403737407486586209929061605978334271298106358329399339774405855599084106339005601293000072062410397483121132979793228983903844879914045274725729931887911060972996750024031373597155313396108701416981686276790971120718841773562113416302103552519895924939983796034072351241652141704745099547738918771253211912969348269243866685165748573955249990887100955791048085046295034684972446982671593031670315729404536073377062732771639875251246994894247775046796894980961346699054227184206199722899819936221843920548741130742947160261126048968238405506681538144345016932848891794811110641538781205030109684662330299041403484007550749057967184853108569912868170098022969056646345610650717724721209242547664076554540794968857342803693909631362709597855185119036507617679947420174766897906825748749368133484228821007720587966328393447590859355824730197871415115814770679890616214166440120910778614020083655889726731070998291610490961640515093018853890503892369841867052139095118879306612253509781020239977132920630000593529942432815552612270027365864983628474210319340216478983593663382705397283099139231882985103785456434690618127415839470314147067977553299398345353157256633311955706617967510131091934260624620732035637274155508193211439884042325803420160942703396755534367033125783713626527936566521694961881621464735292968357032578316237021647633859804483287029137976678509931898355265753375725859732972426477169990002844074972774288904744311320753313237026963442531514583465467045922837654494030082646923080238746686044451343610026065124501704868182710867945898363635393761986349498193525047082077549538137263094358499237059210570620073339263414338787079713038925562411865065303835390782263797079581508298846353063498388385893571723318359164260686689636711340642782711274719199904760513801896648768598299696808088451523806623230173964447433678400417840385978479947532304157468804025720279894407784957044101076281645719185939836243515740247502548360063984527826550794593777555912020167497072849330925785361791954472158364093557675169295266585101413322847402767672441510441263615456578243082910021865447710899703193587459970142739345621201444776762600562083913523875001059737789978377529036765427180354675544428073433686081196006398302913758029707617519824435211649013181446263700046525319123823302954156748400757103912107633578181709304818346606856552481178302004423256242819818544474734723143561349163790280443631976060490960280629036773864590505660387480666576621983539190537648742825350525166327205383457885887653020483493359300541474798479228411533483152482237902200585853188304564115888039967193607253537011155925406247179729832898313499718510557874928597118872525544721012512655358341238798308228284603456047496590347516366537774660564572648419443614768448487690037240445768652271663733198122642774512540175646467520884530603758119960437428058720505242706429540854434586868987226385394611074950088607954339529266846467835857729622968722115943231480216824062661097229580672972088048375073519526613662720723292304274511337157267889138003672910208190487612469077540454234865529619844774101272645199329595333965990518124632579376429569475456212610525873725165782933279280400236768657257663582511346948514876318058380853812132632311438342544026807752402439934243397000102953223176772320769171019077235628777475546850812882982540628967357869782933591296756576400836627191726375379383094283495610034591195031700831300629851402237825760726622336769085391943035818913065458998329143021443510429505532346496235566568885959875535961695448202769588839669236822191825338919166246468581656759675082789997044902029076662584614833280145587667556652214762167127406977669210028906006864758070195646542799302736649913364879198911543971810998203813408134857994951520723115106113176640739679474895719328993995834224858992412464725164931581678560548582510903882731324515382376880821466616272518366556783068846679454436831270770215807363914390593473178978402534011938894230346880687851034457223933600805364459425910546384621567853636610500049678374579907958808675097697829777892732183428185738424795694148610647784435370437238735550749440246878471633934447106725587414165785341354121245567921447293188292551067572270584507242732467388983973195350926848793648175173306785507852171856464846254254007633254929192558052531235072656940528669725899451719634146765032886987304062411306400304365148653841762807607241138547739266413589708746455536626236606338963346138825957374168794288246879832299286071092488229214667943538761575758044299776862240587812876529719126606708932829689209366048770455061862597047233822535209117492677912199372411602763471332389856615187830802574763268699300054906164690855554362925637444862164214648102675666076176331493759647838558005561144261243866666596676242260888634391077578064659497148868419756268773007847467460374561797455743465261020313358975777447805181228350987864497871768984508780820515900394660432191063550243305730291667330468286123677376269922912145659280457954628780528983761916245674401640431434634299788258057964303284098773099230630361026515390491832351791027259668862291503715979093635566889068202839180924717329690385390200823097776114895932962945605512286697706457317797933096399674616405344224243748950539468555506751429840473303729995154617555062290729793065367566041139288194260710578008904779009978557805597104550902523855150720566579017679357995922807627699269455472609681660767167996933900433060098105915287716820046656315285135091091447814691877953991054004394940934328454575007338693739677826489050129289000751321115515105857939675339957276715960179205022853257111499774761924322756315096359731861565134215095986927973839921432728854975670647538805147081466789135549262344009046712489888434392307310668549358315042111279325162386243585905807690832925889883251982724016467014229972158470622197674481432696956656805612519056381736037153703639022795076790256946599007396960290332031706392644879899045136528191400458196471596910486878142466546584362918405939067070264488024906157876677247007445168666236621493503198783078358638391935592312034656082351350216728828205463814327013676605511155707948439616256459046196487908877239143959151649165190996172892272520389311199233435097472525082729812851729782220678439112559214228147402939396873156591798146316485437302097942311684813543151965742166427174543699898054329944031327852912157230200017736372952739470941422346629532940801106947105573613763468584888715761519467305748735622320785471002674710433845389969694918640628456585693357277540618786951086069331644202446008622490827063399392504971635905745683898076752331709989375235331492682610233650330924370198151630961655994071784159227655162816424094825528025958783380820152136262881020100960461330300180520706161751958002719062977412809654410490507081725883237741674694410245395390213190551238086970350045225825419788198179409667029368979649608546960958697113796445477027486003918640943538570357396162838993730093158769184617401970229663600534643318346699589581819294119523785318678131121838905979218988786090289981936612682343207125124095474098441171836747321252226390890440355900739458218144426939784457907007054500956395763178990320056884929688579438959133096311195054506074863407606195610464039832092104863758005962475463175644130856543899134270757627945897057060977490257121724488667180182727884280958482093842281846089641975155350747222361043171685830591190939864138361715691955168929130367262057068173906714852636098419848296520042901219169972621186496639716235306526093143951908255093457936757165859503053409087894670803225014520613555261926756906847400103854566680125098242535265835077770042815883388430470119555636098426380390343853369164169944747561827304397714246708547000281777408272218552115701846233796889925524352275754543326009459975805860146821531002455835523354781197132010606936231000752799827702487777142174747046064217943865596498979025135446922786880618838176879694288894767149822720019146545454236652967079084561755786208325286095225663132932821036803174745879096584631807269264778294516735399102910212561354164951934377513171998411206926243941321395732739866456492519792132017033952854050542163253918724091158443877161561262472596368361313603130223209460237796539126911309348178833909689397461333548765153668585467202377001971762231081783668791520141454538941639565974788997584570866065826584112301292287552020302510836310420434039660519238169913353277521536756372346929934507584820671028936517456745737347614482274346072234067237298355531304031346013047029356486099187120511945178701111803263416755586943253902713681377012011130159678470074998675130650140183234253731549563826949357836288468037264367026576504121896236932472087824777466794040142198203320323299469179849912751885269232416518767844966545160021196049206684155274231395489329959105978984470500361254676325886519750081046104501661033293185249214464011369992921618341686400600787768303492425478256563854740763549004016223314478593413123227485259516762859978457086208526038423751595011378029227748417617459232727006878041198327221950760267576666845293985727266063744668543411809121712295911919591600788797063307156604353356732390987020456705558841322824480119174701700741598627914708493831331109077322436024057948673554898020282348242676056172831633986601969963758637871415117724072913606615177592165328397797173929861366957109205186781407747042379491752136159529852089393767813286777828948326207775692809033675428499048129271125218643211661143067278334684304002051927809119013478002307340995294011755939964153046653934800934504198887328263788566509760526130673078690304880837577790971814535769898872072396558977521126409967274109820899549942237794045585565474827660531044042379261803325653199501953841405509737879533082391818561274643699463860426264313635211555941586644149321118949306052606468373366702364748731914359693267298996619037027031155083419827323015958133273592821852361259170965992309509695087865897785109374365916881032923847551510726335499454578898552706634291181013132081331890844367067820794312246832408902203197438627916908502841290178546613729878509340964008237649502915400319790623185949822389861174161370277966256760556953588266173938336080441699630952108334848933815668882095765578760518529349551536476075341166160232772106716070620933531312010792071776725877739454021405496662800215528528612143304473066772094990720860103414877220821273142611978335583249010768049805115659374659605068602499314210936350719119903393603065368834358576920822234724009760981542491616666751228932428197294156882241744429697744936762647768995715124806826691140067482406390966009758708931107253646648788432833452833337926650530503186847642636494408598855369202960944702405040595789636588596540565548285609305676423324964101051736636030596581848464105579331868467146411835447964345066061111078352392871271216872930288714640842267410942506363422728153680159832105603627532806129274726153429109320288716571280028333619015051348568439671913016051833194986047967588291499103286666331004706073597628410290340976917271609421166070300843318744077868916796861521978962691896398578848189125937111525994497864471616361321793271231265840962247562767165106024070249845289107726393543095343970566759341048985657984052993602153837356433377920701334495111165722803581756137104117209730103226738482880235306966249392084737217418161158059062612599991745692850206243584415148826048035791336046268863983716941513658774560213223148746993054621592241324557400397373702980994735704228679150120437264730038299978306575522909201711593666583209964198464105423319784263532439187704695546268569599136979643018031025482189457039145164031982069743193998563874725075572739562572609405032657942669899973994373173137501514865287147997795935859877560151760090158303479008364326900254351845658691756602571317845655380159766264057960112113893985994902903411158210253314129990898224344033134354218573282568874594641449830651890315802409543407914586698045294287972328137178958448386665508877625169198364882249658339264866746580906284449817096776608987312626553571144767231383237652840147084930663743177195687373869117086938625264508981715652329768867816894714474080715801476605517300555136503803629199060677179808293589984992458896506150553449222844027712028062200540458266286102694069429160951614106973417768216078458411010054660058476531866031946501356586056940437473649810900210950943481052096053084082048055806712431636391319053806174905875458391767703773527433885445434859703609034365815471692719181001148747642506506214516433817744555845446840976872376870723111386280885844000490713753680753677436778352196488453638230452360157858273209091981305997339374499777414416625211080971815843878150625418488872403911867670148751204221513371431268415320225465178382804551071694260239584954686977925930418309260404523862319233520576945055044998438522865371138286505199557696637659702737720258103776663476989853855476107558668140148635706690326566101918246920511600081150032528470881735165880539736194545760164705264819774696376955073026680700878927838141260649677975319475471560276122640543667446805446829666771978586400596242552662340991834322686757684065167132241894832926264462079373402927362724182551437035772031613033842442487106610987531272111264510964070090462501270038431685878040175320159595903923982989848833361174314728534856900287451268916675856910656374640219121731429793852383317671918982815910260957064230431321967716639718382315222476386708491883015049768393426852967525307097215106970787741700970441553495527227901788111913890592018217487748164147630966900220104287650186719676384307894752506346074133532092699193050657427628831421754230359763381684104406911151372365410077422454325310240720093015320808202115200718491443311308714832168258865775635762287920421762598610661312539465908020038653326510351436687278203435462411653141445927630310109982210278165052846631060429651470330512336608858964214806549669995632568132170537142526831920719877477898823445998792183855866705670444072842902022483884839211594356237829244242876096077300361295713059657149628289836970830143342863395959818647045181670093044864276272754433290222027747504687025686174868786756369251017791876501487367104569252014857146436571897178886911449842986288627665928874923128548760939255959233461470946694114836953442471663898617899962526739431811099959595272211770721384655557313553665457472118323659859401717773111230885496283812125036328146524611052491634258232901560191335510529261428247568175962753804406069689849931207706644725689668505711394087283635278948278958212236734790883939609467139139151343407871181222715554430221424224501079922813565276787407087419238990707647013522016676750150230332489056851115893840117654108983707292862416737423017938926112130778996817919360567663763861563089407658500763200692712633905840262767924079110458025874294024955249804275732715377784741831331609370047779625208336209809866766239131968217144054844600305827054255359846440575216759964025565633171999929737230084651746198950145036552079782307036675540490149568509830471542054975428057043550785530938028559771331316121763208459303856815123141862647477444576033108273910391397462656265464771735017393540831409639385360800849966255959065136704337222846711660602075060071941215320811438352799613581302894350521606617889471452060883873764488825574347267280237166401948338327429060400297489027112835760501886956307184070443600740761941733364576738433536915743904031291784759103827550726781897532139319090414465641897711024037607512010764712341048158372808244573120055977533059318272660678372350879615545367955098241739857074382118593306728178748315929015467515544997409805772302037243523797381855679936868172396596195138003808471880281930326326818284191538512124711946057015956082043618421112995716882917162224271929271556838580893319059880971315446619645212748841455256275342196383124389255267668031571719247142486995448139750875667861902954925341115660762420922621765476932017957032224605698162108357883061365784855415152364682676860470553384281378753329967063116152265924640759967160477553972811232730224057379303307176632809664979461027007894528426950558400517223847498585480657232770368772226870871803511444705638354016482152718773115510409929810279798209208964729846356621174946291999270531392203851052755403215470619781668197297248240686717517038273944355416873230690653189754265242852694303803316332176231685267215011372637512512773303399689991295231145290720860849075954442005843256080112361144965018588439421438173167880932215335563613273453687850079905913916199840323065643728705967022287852458183321631925488663688584953090965263818747792171739130856270896625993276542425742870809862677063598325477399801408036749565047354582862221903276867416335147136206034005023420874651294428809252836078028861240282749653671502051683432635121983646775119834982678018980850028634763378597566774986938303800630136583354364374273412644345205053659856785186665202159345241445654866689495265366883667559962984213385939637804576682166013310434876577775961725944927010172751221720067198947154217327951669190348687660617561170728185535922541711387218722711489608886319360677323434373424317063409333084538907883054104664192677719433606038094114466680641441593170450630019066866501493658853758728928701284298758678944771208790961318837848807690833498321422779999745929077199568290253818089950859577443311240036752359816489075149488475784490525510674973550523305287906902312642431713634969073643314827051388725928629913818312669103690429288476603140858654761002374058798616681979917625671367958118876957542200913917674007940504319580852872021154134876060209163197946481903111791419001426833829757445736272176986590836672286767502557425853301421198506449024212277734314558546645458700514675237623211540592059347643297357150741628379407032546485382542178165789207447922417947634337815919219385951871966844528404552030957016410856539571025923688918678820243858482766931584852731247021787244211368265473206860570273713865332819909414936379245043948742690077016940298466290460188690234814732279818149431801547492304382772958135691976346556119551406242975966733566878126859641859926184421916904691347853630774579158108232358688783732883592654253693309434615962896782920903379691992830469605760759127863007881315263197482199285625284523465861044946577791891511576403757601753563306384452187281303248332673289425467495061803047609712198212621255315989172843580531108821476477078512466459579750937333420461894808390305096168300606975615716886325762442227020156918230567099074046713912190485925196647859203225822231729941360628872303280861503473837545512481306535564997091529645487095696845339225494910652985802743611933817657326307922219492104167132918479953232505417816392434618953743670123338204722290808312729628483700406057519605428255226269331708014632249324860140894201868811438522210547530678525643614832670428058371639874068894913121021110470565816390306495882933115072110887434084595737964746738885989564948970382286774243271643901821577284173793180138780690643734684415041227424701769338270878333767259046318140037634580403121506146645848374703390437125995982784177132530886454734813120276307780666347578077591540687369800855801651586584028483783409551543388507270840633793663852355452509868627390884964742843149285774981882802081678502676781282933221334707803783910569424954921031398155770333499832711784690007850473722257146607911588702841775947757055395507042643913077867252815054169331918064006819262294686776679628572792703249471632670698445105767446610720418178498381236583273302505094868479491474094445149166466118441070457077531523196244724067399745000082294521505493168040596785353605314497748998276609700329957702421124872474276189592549047776752205826552242759125884875334205453532911337837487789025793434395581593441292504057865851827785000754382718331637996392222978075751324511155958238703526875417994055143858736105477745840012094006191856971826671966873174480466374948985715618005357566633138896500033773819590606274379797061580371461179279253726457402421153434972834509484718696843137997640141057679100231200497403583130215203730033476631005448262743284085970659898978620203183301323639575546454819996090735150688731986734686351929932093384877004917928901232714231547793861159070463981947022844996989396261772512839865886340948744575673528950730474194928339897406330069024177558447493885193947503055518063408039634634957135058580142240386444739826509788617927316307321292669573369612185181009956099180060228869783695690661339212890460692710634004189191174020167572394535725567306821148608911791540373564449888926000898979317658334072515777952415827797361276890362744089905078050076823189276102099193573979561828835442954244969115392838356248082113884137221574433922823619193664617367712976715685131476129789231014093479850589454904008648941281363061411608223962476730913723948449734813529012895254353926972364491984228939312188287856205887250525508663355189043944667943874034375646029701437095022630213706979479554204430223809993371252669010090249832747543290773098904828286695615587513127009655393540582042069448590997399538929157250767917240655433165254310504308730423153975070408597342132009011547402053974486855105680375756261020256551820310377253542932578307694676464298027124950102871919633705496924335369904209461700447792469109198267377805764236199805004320147207775103209043615139309479591216393216804236784737018414320197664555923707431337737202381083549606373353347170362046487503435132332758628094908229266208303626181473455778157346049037531582319484601495194085934802489715658322878566321565634396590925530719325676991957241405752589598033744299283718027103418487488616969510154479231583301157133484397429994598891675658397922937147795014287862048835368941707161494662015397315328206664473413423710533569140948004120727698213883333407197501797176161766647066819651197920222300264069873497767407236168746129225040515515574140613835430669107820934080675242926017307463768444414631575810516701451438565152869784939468079275817561203548303730415251850280695919152422949074422035033119737412500725023969621584324717068701602797749184972713351133624452813972745195818707956047397852617813648539759027166110749331484991299981340819487063441759211044407212035616350969600909389956230211566809906202963511837624267872270023402225823618449442383048952722477459896770609989135613998385163246742286565508590629438333546201122757515764432430159245217767803721686223926413529144069404791623347141294185073965598611464526065144428196855627208236651816501806912298886061040809490993542948594311801290024441321087334900374474130882786754063508614291207327097349320358360741414973521305717718137792659791374009327626067838233538696724213395487193514277692516826530947485868254722854216639960415619458026924968435164718202790664301761541606590771092945747983385310173145239572548296361468945835027889088702487266670715487710286827514817156391528896775884601748435730916719667009406775756669495420190275135128531922114879610192105597921155206032912558585885932060367259168396367002413247403829798699541551234799071963387920740480106175046838507677835969790984085533970900382356400585303761895860810018990964595911113411946034998389381321401280742751805802008373614967583439349755938566232464906363759001105763359928002708196472244358067361917768654186234118188046224333501493372279074616352997284877696534819828724992323631570444729163890555820516006402456550113017359769754014253796869179404950824260668974986891555909107925196041839961283716007906912490223030192471977145993228518448758547554115874745561456730289101236376261033602396253526776182919719143317567977442912236634312296173985250554030708172056617074045272924500931192278267615167628203859769206173817040831343767388599406168379223001036621846763877171760719945639557936911188904474646336622228810651079169754795621802886993172652522883691101159398084075561871036329515748738758025898507428601241342759301366600304135132142396040333666103457731052579401213131438264512707462571823098492395123235183705666246271686525459905540446821418365999104964096275320682697317735039657043474079011860959931422132898637629421804149832378455779486123844750926275906849100127544555581133511172064622914852329507135358265696917255317527018396660563946373453810155786736358446064002916364991770352406350634681534713131745968067418493455039910453355952405200543810303945331243468097209526941089657547737008749888900647810703981937720565633754024934924234213173223925109009667892407619804432142470311545388833379966761063288833951151015380535421953185362867310738855831747478900420595622911255705730667854163808834253125889941551079647500849959028432174486847062191627679063071984726066145747759166483553298313048379878033131422577100057188955987601135071866994465131083239932599232864671210884563033989871068312545866956551102213089615648316308842857792970590974698000778134429753810554229077787100243696073514154980563914141888959720601319924515052763299629541917188351307940393389509816191515648851605474231252999335995293088153003227007523034379156228632399681604393572416538696767132805090282860543768240597562695443958686798676387340208557624019325226795800663443785197755542146608324435667076735881036554633915156887724029702736015413161037918873742817372658337595331253098998542390765562498133009931449463530778646925217942315444558754089888901346094938217341572392468357302665676618083124198300591837491055346806274593249037212385624185902124465929176226230347335719713577308463718642208992976131914683321068674048714646991887236186702216387052838625149813941089679348266906867533989719148836748287036519318849540114410690248895770116914911733915066841159966420531965866866286770639637296828007954680258159257243244928282368967682189758153508026712555196113428409500344542309625076702423525149430184346949836194955347241314192614310898104377797650241134007738650755706428761994212020595468968387804694054017450872709098665667746608228168648534646502973490912388319633538644448624089583031856957130534661346927331650115776200979148595559367134969836108273108891691537154487943687978699713177098513680414647187819314736624322967345532155220995349399766735267213974370319086623006683477775625904139414124865650985436880729991105528519061052972982389901184046718383957944456618885451662700687570133603845646576421554790502061883420286844019802726578444663656240120240433123552900847982743476908517303618687947189066934605507503922665632642935083282337115906738397992741452330777249730597076013099793306615595490874893958716074686524291453669620368568852970104404020444769951274155151810005265881762735990370920414611481187101321242547966276081962430753764560844503583848610669892106589455804310361515238280401572068958120658093207365937874996028227088062671271953167458083863972693239625152127260016756417460625971736177883850817245363481144569152049824091363998261916932753249837288453391225623228423612265840487838641356222988027656487093845098894315138427808603091285340082590494958364791509748521730041414245374549300647020149774996694259684887208409770191265315053633084012138226193312668804397609046037957944148282530912025012284817262862341747843994689354643301212771661785382529168265011962419017887466033437057730912008355223108439542905873934707721332672198573439454561975968154096190166963009991196256053648733361868413485784938851335544208140692469214066059356427693581458009784844318800892786514099873278673169667296132886700587417219961545163241568421238895330212896658107292100166072250655656801933598405676318871816927005445777746222387553463281168931940097727032620312583927601159208218482440856182985958176115902367544808815809538999784667748177609719644055312910203081435938301862757350250025786143775544082781086481345552477045044639782026541920371620864510580307199130820328855113359042206063072666564099021190358066141471402684852169371942261014997782218536139312789233662346365150651979580479928798780627700367573508383961878322961337508248352429336330098718449356124724952376720077749225996713503943949143210778802304433903540030774417826192230241451553346049349929145247117889977407492190478067132696957039369048313508664663090040957458827346045303187901579166671228594662076566742350897440291099987042893486327361240256444984255829320853733847851496283471674977025987668331891555967364492139236358801104729703128195357909647343119591815029143277197210733797491848219573301101264746698983628078445136902411651725904778175086177483784850817368436418008011630302188299130490819811657379607518653390496173694310636715581910191499971532763746139789385026388063252297065882275134824588822738300058236972482470347677818730139149657728633033366029145265898651906163724813739283541183181599569029079341989426471130458492536242114706053228879388555205379265370658441383510593385960599884604079695497671472177794206226904459137190292533485681648815386707994483999810684324130818125797619679217034427354321956188195364686602674709108425363025127148445699209550474889696920140772981820294421019355394635481167041818723849537513854008856394556140844799312601664346118918350487717507732436508198961156012509920792078082119528355921751015538994677937202391106959166057598970593471839624120979450649714391450928187562793301007596159720371461233295945565710449322811820494471910879900885726193630273520221042777435376791373150305883744103357283409114018046812134968477137913247552133918709816445203331888323891988553083491809176213773073326744881939109179273350824855966699459942590929703220383454932156087026921480460633771704468655699199444599308085511297432957374320238704717709896622406117864067784866545198352067362919353902807507301557744992852405056231977098358180150940471958016898014904314935161555066631794661231844262125493562672512973996336809458687708245222891408590630823060145942489638221831641566857291043639645844582767845346108107267858953539432022010435806367879189601753657434275734203750840290776636377398746374344774732695382296687878758661974297508514558259750769096848906246009973983088085523342542463590864597004551777763416875196602221868336994399645099159488633895100956262794300428456821185920279487063125207585268868285591618844155662339325651063758167276812852651478849601891580308706661231891334376053227423986471537501153945720345700411627157821347919926687196803284337812309472121995386009578124525230709696993182282262317726646616893489379179672958798816145648134224743541123622773982912618637183133730194592957042039709721001100960648271428063990775563097825701202960499558689032023241181151214355926584828323679632448700587535136558803044913344869157546355225489444359268044733291837604405841517548284984519209860213819208901382661711539155070216778154167820286639158376217484401465532501543503658832375652998926948238121075752546818914140723535600731451161570265346254034217120219499868123026414007417256430124878867589167395680294859752173515905729054689232330455124662121375399435994852625127902939726432125990680752127727302198969948162722636767303641291115647855372124239210763852872907225192148407573023007738101804689868417872628875115738593755335520159008120016635490349018255682531853474251551086619123471569208606783077914001268533465217585568567691699254901608733660405256436734840015323302670022502991347983509891790520092545796952335655270551889338250798672855932286252029762199967961894461716448619073539216950767770111341615358640420521217666684471198719715207643458051233209915174237601362166941040870921088097786158186179012571832028895921115674261289859196274377605597625009610322541379321669683611751829638487022500453925586510664243975221528615838072769867129954670417773775306531656958509956958985410968871976714269268378012928999932344124364391003405223208228070234003016321638935827952021733141864595595412247410666856195518393227038239413219149219588227710574562175679659537069910054675536162234546422693640862971005913576438412558760507947874178650688954774146534651488870898906703867937889266814010111895134070310317745153848126100481931302809781889367624519876550428298039324469462792007828327651603068074226921798222050491244291408770180760076448862025918328993157504179515895461898667330932428861762721317982891758268740110830690243281614694106795119295483978105453739599686003921501782303036658590324011404585753110493396330741500291536246957188050519581320355145286411863898031630505876545887353521815752747316079102680871277055637835197735969900334781186023780840536486052514878742073599668594412904526324447957377829182268121195249273107611560827063357970796266466440735865709911433436254724085842687830757823602056483986991473422821550793264896821402004036381123117024388478600895248467726835289414935789241802384405403525005509533631859648286796501652473938008697839354399146274247717936408563971205927091196874688660348263337851804323522722173172163518207190334195531865098616469966136204007793731869797037454190493594934564455891985126433634627646666253029845059346587878488848978462065339035899659034746170206546312936368553008543183933228004018463021429834449745532269610807742384260984249067768385674250809910070673988834332422404804604617352343018232623423842785558367771195435139834999006089503629200715753806282942214407016882156077995587801044201931409792965006776782107401954660601669009160959302506843088597587691147162793173120839481368015064253687477054848626769484307780017880075417267483209427824633114543628080729448066973568714663680582035097217888805595945272138842003893855966772428397582718035661204260103589886874647451482664165757143626931169557390172206834984986642776385848711081810339233479660223498410083413681893670869775180678187885877581614677184049452743211688943153120906548301502597001506517019085072779638740504252663026201649173489005003114562983953917732364769658635663702953855004486254692403258689381688445447336960097640072654374847664933912873373759224860063973713505561830176158035812147929775721261706504815165055686651168842058829343297588859178865580944435216367999835674771036445346144280605973526635833905393490040620732860507653634354871566265541942115743035456477750903104089170930983168705838808862226685798800711830715244962364150090770517138237188529583245099212960092663172790558477798399671350513618127548568513332915328872854506955564893310142680443118022175215697934856597172666314395147199037239739382257414928808549279252890050821814514376874009020882203748233858284742873582390802649790918447711427212782144332860535923258060539090733117848898953884846023568110417599311097717401154821845579221662503251419026859895394518140969105424725941571767832957546231472883716197424252264263848652136909648769503383445911669370763614220191210557638560723211350507184745183746728841214808524732234353679591648705208538159678420810289456188969465063928898835844249892763009347398212791793031103317337256636068589012653782835050938054053236368477226535252520947323744419145098491816651679582871959239679395491506325513524194571750814179028336599072022840780751308470412670395935363359217664914999948247823422583453361554538007823927355646770954754369437334403899392816675058951103015312308482070048982173408869063690431427423758871471749837278524408397328474468252312471680087496835736798599555947620905554424035198292198761212709112729271975562012506714206667598379203986644569423631332884007124815547952932203316054875901303503228478676936449200383832586570428757848905624734687849132861519488831287237872633135169818052874168091600748401655852642634735615149331598282057810783932694488288731537135075025418725557193043863865816406957471866740147583155618595039416631033928307369989989005666905568628700590799778231894942793064449785084870570612151110024399164174747098792134981487814642137608885652579465842745693108212236267105040063626692470311316221672517436840955131731058271373738042410942739285118837794497079217636196168557589425571038238816535496999456424374295549152084397499470236321242168096826243044944024154269998471011867618572114156478750073677281133630368609682376873221794552431555679924530200218670161302448140107769937098447200517577316566570871680775782765121215515357148264647623254188176490213052002319002262012778028733616018482112138069309508411217997979836549853905982897941773023367520264417517642437145658995997395550194267965718913116211885157564760790013725434547263936307766844198455533940880921376110434180157524561620718032957843869534533365954534652630907968211858990907650893202474466522084969956673160427108664676059371297219206053391670001182769671904472714234116966838095222176116186083886149019365816436782087186190345530824837712582301034797034246963928363256866580570825062310764290403651434421252548921932125930903553693209490109550490022464220000495734283184378647727395178826223262103527734831255517534501728290754752907441527145552714011836392002451239227451625320577188880332090122743510047533183188530953834067139628329120232499243927892409256383576519610962312573806091201889464609427235114860760791436828049143817036162988510928791731778752305865443820743071470455970801339910864431042100991899115676244885429539248543634799387752917849402559940818369377941528282214016202184719580687853135748842841422584696016140170672753781564988058731698467400124001622196485976043769726471899075608873972336457846949122458937486594398187604112247213764145103734159738185916071677759821879345842365099307591534465542785530931369017531199929013405880415012711837876427657833063165872024716902288858249184203071828984428513577376563363999166200535258344462388122089825315850196683929895146784857554426740139680773415914760782487058038942524093930665522086043906848567041192718393385061311459268684384286183390014516131288729025234426335262630024956961976214224985022080376844473426656194801094790276551521037359197513026863471664558163390255438528777621910069234800103905710795893858357859369831174370358141267478575992923896869555553610771910715594254376157979091552080721250183298132725993492349907417615336807205735215087063429953093480337380863905582516716330138049277083302317678433138151781363725259970869622666157465650446617243559389444595998807035116190630573479318599077103520517660584128311691536489107657021425315070614885011748567155689218562001216453516640439133138619788197436010744874685414014007486035705232445666551084710707972871607898948679976900657338475394068331045340564153908214634950139235060339625000652232430445178409343869204571204383880886551513082220898662677403662225605666958111121321993096866168288549435128901740598452170398618260276353127905323435611861471934263745281527683850888216795981347674949591349039043774000597916731676168823796947994571239107986260361906227333090339305614229220471889947804574670647387732785593494666746761058641336686527913808558466000088442451071792528885354244216189943366451769171639273716921581902936315687229042574095020954490761909238864104927484230887273265338663185841570097985286890089184729681364088168710259566830374207856344113017182576818694988227141184245939343740786988018835835234149664458726098270664376274120356994707290246299156342406918308124597441961145001404307706629540349140630442414822070685537570142221772639225618615152359389890387905090593956329027230015060087771541477728689890756718037318126407858403002668167524215763750842242315613518924624579971551540721717491992962853098181594756038623326339020489105472313746058382825014296623640177735188879176044907591093198135491396714852047467463640993357282518041499178039101044233981946263211851388287838933629190512640047377722205573290029686695954788377133185188605675355608045456285890923698865730159757084000145700173846278375620821071876578542451324554108810147405895564435253498258245272489752758151975236602932850395880887546391022173028192211269936108435695101056456136381080963868067431402226189433639606881412121714850585711280400648503463165536815862208239984183739735244883177384043083415463012342172994779990434194386846998752505369960753297885375310114877565498509722984678810774381404495083011148878817491305507542112977370050133161181234099218346131571424267901591416667455816461408612266336840832722012789529325407390816436670754872660600665801289030632877269459416689874061806340356228303757411721472992419127465637569839145210112731799878418623511116531982853179259394564201301756527005203616748793739982400637176785099876248958022372932310783423907981418378152650366555072234053301630955652954298820378974611017275529315748503366452330016319311786081756929463799906881482260987251736182942526809792562920216280837228948374149846696844959824510203982370418716619320597413177298598212545441134917284379690263481245238707334437027011678597773761422086685667989943020268107567609807091658334366166360349693267085066394931454626724271519467926263859014640878641708624085318586322690906587317565448236527682527893766219877660947983570424047735989253577387102524889194901485151724850957624492611496422603834361048965008893357475019248967774990857697345122229302061827093031719397082483072351007169867323271988444186185308408949091940845159664805964022707789021949744367145755248628619176553143480963356974752570840755784741277636305588247387954025143046479888990373712590502986568806475371179987825001204368129170415033299575540522379177464344539651839065711576746959427119325645298734587137586330226883312693531810360344996746318420632228777776018971647666587853792146050965091001292237973251880279522508346459344488307442532509115601817549036398444390973647675610232878828258732378388406344216927922543042468180836633643833885112287160433762409718598605790361396601289005879303451766674698558036538885275995928754264881135714609140541970447916240411831589292288537692353822754592648635299641506842545009711891620019618976057307225298734423362718788937569345644523854542734386622103343374269519928235079928622795279796898063645928653752987547965287664108642648498144565978774987079312748463157793815723115416603257708776506444973079838637649410756901912084524345450252522213897861581233586285669561572280822440991416720254712310857428594822139479702505695310529426509850499678622786545318517451310738871426652162223487641960284602276676797321578040780398216511442257323027682209465115663648183894593639997787577459359535886370350043853978226342265497342797699359641340933768177771433221480316740440715618549600085598986831041893874050652941704524459933504937571850339740331346254635550207560579209941351201907409979241932712495547418460847910933739496291551308401843454888437139680195714575898871979695622534394061821788546152907294694509631773586823902991333959472742141890144571534588968067977183553609656958986072467324287729776073612209610431553480783338498786706472899462402025395076372836576317472322368212749158911193864986474862951377214363282466026821051440384783048057822495768344105836309934688578812728508339271609019274849408285965984733470971485116493438554136035508117690397564770840684649636491398702461114582626786665148094004907256507420343268484355592163289554026177836608983205599471494010911277459409337405123292008145418753896379019096923200267939732251854321997099181428940627253896927494639282491116187174273361204341047382350125748604274232085322724399533079923603133967497652493159640714071409836813847410179628418769127266908075615600179836154326974559841389730781086314510611832065542532562721162763950851543565001490415561294981682287603464077384658604427162828156430525928628122438580067111364606883068275618224280052523946846827273080140765206360945986061542608200671871489009504944899187962839902888757627631536177109374088827439161798645113437353756409024020006892229760971980349717189142436499183263046993199981814573537283980263176044673049409646639452834808657490724749516411659976182233987737342470480369970507220292432518858277807564175398573045331725005438531162180218210892603468814585543292965146538620181871612107552638202653399172788731210050607103936031707113316733302924029080674743431412065310489051429645954998774248494144744873871885933095175147623159985504697245002613818662396998106155901791132491214631236488906511377120189467205719550529898952595873462271248028398978085841157073746854937242747789211266922822642645841727551221254404530367167918118496150639650752790790042697830449316122265016154385301329166725892269037055342696067107314615601668690818254502849982254511846781422459434568617655210865975337624262769727752365221474619587125142096987498525801809372508211394435994447710543068281364251054844512600016808206444627417736866915516123406631900050125648034855506147705330948452607214410468915115865664923598982743146990612922420985691101506124487716908588618746089607367303189916500108165938397329657630169151427019278079657169918694473264721897293896984347620120734617691462079780484977122739050653407712945046823898780177387580798415903152671105271308466367285616575247498675489938201004242047217429703201559623046873965049249879230231652799461540782964252675866693953441621262978818500118797128617224869838523831541775827511008326839640093232583853925264640683069983080179145155746340692405928711596909956972870114494780968568473580748905619085604316506764428155702811854005117484562042074076079091099281692332058572558815152807975237453915231247459936582473042129063382934522260091591915819878969358932573200991727538198022731127102323101806732473053952167745551464837234862035318178000099078029524539139558492777043842392967065668632612032998538541047626729275090169777412903707739482540673576048314705094152816100691091229397066455239614209298027218147835656719492746924427497094425253279244090915475547477276338726493341237800349814430360207090017706251802697132443148475594829668658865819865980910555747724469011750605026430061760951866368559444187774223334186174995764130424585694623887637782110207120431212704225058210824103326141000761321441617349541369059464351502337038431958743447563517876594639291637004690489672986281820894267016044569412858349845793557663506860716439744205327216322022830063399398810855584446643651909713976681796577067126617955044298464659684518916086461239272347149034958222243225626934603156227801419469383085785408527041793867529195255591150499112747854679134060864570023791502002430896978848505027037091994032579727948575921601837882703768607091961829898125371296244834878288720996379811190845367716746413842202608781830625055572424664491168554765348880695540134368990303187082592427395863403073516120356606542402096135175577200583949827683477408482343382577567679095694424231999940853247575818659074244371582766264085383845877336843010232303549961362851091396758951062477297992431158575159349136340655040150626725346128981464625500220946801148914396108724289712560887843427693815531134324575284819351417275022692505268529684536415313657337381748195327253555099669292033215624498993251570347359534997170611668875328710873546727338295879933940491357659417441743500233448038471851132067983266419984058466974946509813689681368729495800696192698846160591234956139834483169354356998179043898164058453422587693354260712958321656141856774484919134987625887279522891670119818580669193894744425967115417491256613051450179308447719270806242918086792408094867376995238116292331109130345013716597423628712345332848817079280424436699731467621228810604366563018055030238953994456655051907119623611267050361499728979001894881606061742060956973774981102466906511228545794614399694139460238328893015837711843639544133902290519272287249137855417241015772610442403790495068808288210319572241629397614770494917299000704786815710505357441427688890438617656609549213735692698261113112712357942797361628514550051150857956051185674860159205674230835517350571390395129925781571308746670537263366942472624520830921437009916373572153860584289669929024009708232350322436492452172424956583980249627381564910097001143696874415665850955589651388747164544815049073859607254841521296142926261871837985612196079722348191265928576112301406346273689809313849085868797432090178567716632023364803670370797148175934598985134561139993751472570983400663524107030694237652179955293816650136936415106239584897221150207718582651731533943803685862184837938522894779345960685588097814042080320457965525985795681925424480513227321834092783773547522634593223185458756255781088700646902688302889471247052036871079406494373756544613509417298334569999579492920198979648965187515874780713071161460854080576339633891453045604247395354210729073072060234890032960400816425146534756746409280444858523380521073275157086972405262121150888829981966334231659092385129959641171107056884764844243423067142223839650019313782279173860542509349003508038191832475915871131332438144674346416390946828712054486286125791522285648518534022815556061841635392091807026245406816385153488644815639944311998355354569412927039010321121608175886608393748293989321820463832459877022575768304166308754239394051404492723596633834202242063856143675032364034611003997574791983166360157928555497181008308450628899257501485345128035498239623861166242813904881001243248691416615016397098963228882999273222903048465168565038980306214319412714399537741594576550718006171239227672218184567820590723162739842722832095104639599208135968905442730193485667942300628408383999063894745132512789741531811723660306192002590342004947801676854732276315148116824505403312436662033030058534203039922381404280073589566541178310383886224176476860954632864819161144581292419788652802045070767791368178013966054694307754183372282139862381166488095699533253374352885211928308609493391992103408149256724443466058337454299713999738955915497777372455924911981902898206187660817304443576397881375738968231366418772393755792985411357040248296396070069875878481286128179215205541977852154380097127423360854827492814542725334581634063671397990639863924290846787219662721583065082307339536030659521282959035828534841731240322446080123508655484425863650500085953860501959427842933595099596643078475656603638447158736800961309977978516752603828693574113121165475034952672188408717578410138141291232706381667457144134649227652503560452114638424331832092713743547535746635515389623648131557367137063240865522926334062221612713686316218946572408252265722464421079527195173774173956515958834794806367812712647884227204172021877700229495287870888171341049697331858208805829833115744072457101325248392143268766807236019683172455261304455228319055099527596219330736910679737924258246483093009039165271555535108401825602641583252829364604365997242481664521585821981973552276345948876513351863627930523752503897290605422485541134871603636035643511267055625421251625396688334182574391398304054755000626208852975889693422794661131368657880230902201029400713009623978402558205714325154226858025360263911788392892828037466857447004096861329603417548368730816137014256806021815453328693174383953462571855796114008186590436439601741174292933383715766045754069580864718790721862150936082208614637033716595596915031793833363621338198606158248457965486724551369583007775845411858016670587292120544510191292536428803730325486553614571016097066363261480416029287847374911312146998546281853908171310090480392499342549732603765867494224014177777378078891852179102041972581009747579481243190118390295067537530580257504221433888546945446401548113840863644272434801808353700113980202427674766058019800994184197390613952491531603100606411780661762536416785320415155854045592063382627710616673627990615359347134868907665279100171308178270874427717599070749161071018350356569445855944909232340523211340579315509455363841746752609537601259672097413330429898167901070199613613685895190709397016286067369221923661704986773209563604025956925816431189367375869136533913380778832082488770837622905230721925842861247930473558332721173731449348942920541856523239276562652755615233094431676693753532171722104185741768804129486784035215359440155019033679107941444399174564093406455681287641257405307864886225876914164170730167432030318391863447750977040320482852578747666405641432897170507490963984990008015447972299441584993156924966509231674704512798213723635834285272531381901291169245963629035748103647074719435624008223605487713563332298408364442062194522256443435176740321088461405738635431614805424967147203209684804507905881720986102684151848329355672241375459275359897951064715267949935994602425405022661359817430878122913376625710148154371549491643874832354727468576815845870709379313236743624466352198703885301217781970040855285331733863236357802749266219303547644102702656364474395506062952657630683502347580989492354073507464647639385408077326557765352460140036626394527582837766199759226353623990140745797625371304457868334221035908493122522426449314324493803287115937011739339243253950476135096893924859327466294112553522864257727298640567639691153728338692670420356272228871413513341894315257862648297551711630315978292294394641430890069187325041244245112507993241408226044361424921735297571548738164158853750242424636298869271551112689947830144668901459469915526978748189949790381575324221577966394280219055442843078141216506310879839676991959898381170889073039093771754846347761159330966510498246187642296673955458642004641043084506023245150494932346371211876564669556475549510020892267723980823831579602206101604466786546592637048729417765274674075919279934108293551773659584413730777767834361273239844535524309338423267991802736897179771987169980797796079527511121045572316602075164326539062916588986882672973108024774304736296757068174182164036755606563784902021689095587724788302674530407935522150884534744940472402073631229945262957785596774049373160381968881413545758219616638117017387241592023477843878955346774734217731284108000742040451589052624255759031654360439464457157899554415728509646331636130264216310049475896707614832075537799832272521884973729204254673679437970792651491207196361574113945605429938571862073650249579773578253188104973680918348635997896676455103133610410016308887484911216532927818569505047132435490553177802895921494375082496037551692758814001650376786099656932053302938654136652956470638199379080074914988262382373138083304820740937757926352177539298603975621238007757273247825644619497240331661951388443388928821060784793452569243903930058814709725721650024765082207947862587247779093110122450560693103535847668325948545826112292718576918442360951349117654314231566465412651413549435152177029197722963324904109428244250695110589698299030535121946729336467681854585206845881128553073925714404370813655103921886873409893102692039079526416309061134632066176571119523487731701540909301609951099588214023475079407792600246146654266127875501075873492320092614641365270077966009706466492430545941879752604100174553524911861899817931066406655268435255071748169137855502175538864372079272787522672385056939834039249053739563006768843328482645190178094460170924993049329912307536230333956724523882737965304607331714903674795454050820149924307937287814258010493670944469522621720561677967590435921541838345868775816829425578376775242281406160501456498873572971671881547345795078264147037120839001839957745564267426161079588793703875103484361306488589466568704564000041267701539034636820536405559857232399006249754195483911321749824895791314022311695870529842295856905989574414591538549629364229739543700872367198574261403153499719981791776565915009170708313432852315541002288648850208810973817274569411919709511824653140554691725060718438627031636309242578720030176724249335875371397025480206053904671806898805278764174889269290174845332063797900712883210115127204601525009977153434897271476744364761387441720049151130364190605188521228027984346769935039954422829804134376300955578808455046237235668461880149981928905212568662281946290868618311687082847665918338219241165941049721998580892419790067422538735184400135933014391782896956520482210820270473953144694881709349079482229780225921024065202520160690370505232161398011645886030619129156821644098877805048390758133813954491417581086990945244259827675578794195571766152285418951357257033055024328350869367002140048801429550536626231181480407618831886024594823652054826629847823995153326841443741152412438004370179826232210510884284666700312248338690078850915546963915944023497826844448040005805657483354228068277687903004885033650694819818824819832475209950972076577402435549809277406896450668243531387617989353854227106793630368139180949936022526026853512102560383738129168955384302701168580808068185405033476284383803360077437113158238164663711898496261499513986078331135095117638406543225639078421966558083343652953475644467124415573638910575036636423499714794199500580012467005375400041899442927403075014685005477076803579491034748195338950988020400976403809973720956374388990677313581021549804992268669459140724105385411715287379064458348557084576186647221288130117297228298709771449991166991375458358130680024519557881964821947264451471804386216767890682043266390255263102490565961704879975907071049677018707617013602427580445964978600608802017739146258802063552868694447270620914919600821644843405557109966179118787109771900503287408872418805806145322301367593442483384858684007048407601196790682176446613984995494842657341551350070742717630368666879674000073456704572594279437223400929903032087362893811277755144927504822758490173151731236027388416435403700606255677748735198296042074733368960992775372653880124504820442962029227101783262950627049599733592945082893694158848315106880527386017536738856348599087865108155763750594681531070301172336616700932961864515492633055773600059676987415039275964561023364743141012675418151274736952683028725474004915157211415040643788118436609757794295312090687103110064907978111300769525892335284229699156522682049306523171163382342808892516438464704538699873432698982753525817376408792923519316339925857712588667503948451729714139294813549121466101876411751453145293950826196869970480887525492462465331940441516180365423775434712232229533567694481222845034421639907419480541793492161220133338941366309696551083576403678339854465598933685513072121038910042052869194670046759013230351130774053774406053912583145649383467508665200041523723748979235445877835517318439213321793657856413983615817583842013437674199208421339517568278030323102484397857718909020849130897858179888892170524564763904612458859684209854989641094536089475896987848782654115197254370294331470593616350446687585508061852954200388672817387030624454888008849591709363385028428588533961401360231004274204470851686532931327356849384621214136899799182450325054793334147438343001374980284400130378324466794900013925785925502243934233873035106431382458291828536184025151231098419670692109313645616714193432628498174643308912516693882500327205037001397782813925005128008805856121066360556634552895156527265912691223806310458757873052562661082898599305829403155456287421163780365152150274896082115832422751716666066515924974464395055842106899752081086069552499702646176946297829339192293822612665337524359347014294326965892976727638174669971321106289854313322167916437457508281704707027911274876060359905841022754696211858112294705880318081160725797380543386849860816009008938295835589585037490207991527182264119917283051906882149381563287388169397967143517545029895263718000522500434807116853336372854620769994662128292972918414464319872053457243715367173182863224419439241617837614709388094370975729469778378249071429701339067903859770268431188995100153843444002542662792235161702854873251147656738495424214826999827357257431080699116102590083939054797869664165953713249815335561726728473341730050382045839535887271561415799879270900117382169510460509013240390320226110462091815929387113809661542331701276800304828586765580188812662274399928458944166844178975881628062040961657977722811117887345027471962189098237650023580173211917586999545515080570236881637223865857322534691919251314063974190426728586643515351715540453347070932845605019073780338678262152070419349161707971485882001939603993685372684775878775454460932145975179541902281412350842046442119862963339403359199839108157900167431203176363079217945198810792472966349290467361761939117287824598286057077107118109526137437005385899383103378498785622494387239013435297482011830132938862360479329651545847019958831768647874775144085394928230121006473326856852502010976793719241022753629971126633133827990026964246422380962060516063358662470925078920281420604182226520186718882095097225822331361733261151935563274025449860609441058793694809873717921547336132813167862645810872328143610016004126841643464804172157123543691262703403319353141689471914469951577994577393366761636820403061659922821845569941319626974776018072160693234501396642144177730952527266582416590187369519391830630902504883516914228190291234623419974440618158713088936355443304704444320353332965624329274284750471175185483646592424166248885346875884965958999755315264216841522317287050578907965701043798405744969209356309509702143820869714051201533282488090929901283652634732771130885923838096330409527838622269040602143480048468226706795323639523691502161947228855194623099296699302779574592689646632042827347211858741828730004680606841790161126393147165884785932489960136680080416077139990424318409215677454090133881231946328875124881677524436824396956378709217139806854341540134595305703882524265469352312457038934332001072659282805349846389402549617725850883508410862239943601984193578501851368245456664388933762854047896427649153474697829899674298052831969368644397390196356594921237676343301230183707903650109005565894669401147749734546322017785713685655426700660616351144749521464867455650706333745354704868141156488892625279638016779424767757978142590105851023803053571131111226912650253942138636617613261683413711616281529186972275129193898148053464434826461286267339220183477687499237255909127398548620599063163607717907258592749381042921601175300405332199311162721539125170508712591039859924843813870918559212626397749070773707786871237447292211115958716583603072907117188386032715691476557051586849154728058344974092172552762013865315419658345659553437113340518201397050819830231115465109229043242988173539592485362758123273276018212109729035362985240905177505934964087413212558865246414466576451171183910179011892143880024356681882103605273840030089401293303573900294166083362767628867399801733618496266724827768418202596386579084404671701034300479271014682468504413843821738271262840325302926861068683195081137800216396746138650382713868713849137002236229117904114331619916908119367590276896763337929105388053954776785065210431212609171365814614433293586272591811039284027571093408494941226303723010089690193109481294981262548308985542887922208364086680464855733408353206545527069128878864089707084798983628458385748755062671167281367491667507435570386303789157280924809837344895007190355418673143311025199992199682370286751544027342267946228644778067389135810212582663469651963590918107197271266140535455401609951392765257529614722828794755016900041275541560213347411829078118721668320886842428704692431136729381373353972142960343108858279478248745186048220417898080458014439137084245002580370388492585783198655967263300296315438311875156637337170734901894573920704678902476529983076944369020166426178521885924223888137555851098046976261834820350654189971368813693142398269932772634421846850071919885426573457907002370665286775659883709865851855431284197601065697447269173908426986052008937127996408760648618212400991811401818796472873887010537951733282645098857453036653122089322299500406503314214761090400984310191369188302181060709823879893095963631513695661220286114467716695631578309432023788896997527635547114935624954435495678391514621069866914738914568532119348109035306933650666497709897563814122182107042876192898981466138412431521518924501241079162211625688264987634197807630412243173080539373485116275304541430149865911830913040423776391613480656211189578850603979963020023212586041252586824730603877059175718233658626160759783586549805553221396075263606879226282638238070824128409577652277181635774744386753427906473580070445329886604856302751720967676711979803447436374747289323583885456406312791756950644300929776831906987479381470560454638672270227785780996351108113667597502912106899251534406177638442380283488311174778979967162418871518071103503781197832378028391299565940112534475023698358273921750842622294674613128805934981253125708122952933213016432080181490443973282705713270208070022295947592246742081163322516865758756928070573920667870530644655273937787950597734534914588951677620584766670724972154887070662285403029753896144364552891834837671532204876943127856634443080374090056757657961190469463026000209344987570520499887374424054226711732729050733193715753058481392979689899131109502494672738089731268953493580754647771726894789579038951157928814583281289884678217940799748063513737283322339641880253645005766654707152261758357088847276994192558304134777583173568288219730502920213199610160196716494035643497546850203710193484966115614225399598789614471294950961684589343761218920718942802518420487453894858096878973138136326187565450492390306952769836809948165500614658099669056853630358395085999231936107855910945781176057938896567212513037513112280275689049188162040239760820268421345666582194545850356774342143927153800042714876488592633890699847529678551499351976148988140634512406097909342270684911260045146307340123020817368584531146563384732661644418964496447543132925585075116297788321444946847779108313646633575314130861031418855405154300138840611724352843585007563930666762812581055697101396513373646608684450545724064599256698314212003831458884757248127936706965533338532271924906271657949421808413229681992808380823902162738205119727547002963450317510307823718456393232097452131744152172792003540177300790216646800140891105329706737585778587849343652302085848669600841818912141231027686668144646625354817644164434054488852650699061211958518746268935923116076728500411514668006609833301481733338317325855160829526436400560554397116337876491738951470392238286685881137062392383806320563043825948002825292650032817003949116381709454046140833730698955747455782936807007413897668592069506393261033776083572108726322779456283874220213891629105843882293681974208420157997576634722231913768977607823957301039398199140116114177703385140237146459561042024385631254107736875145073820434419930767382166571289663526855364051687224462014386151564752685070228047290162623050584163559918332082183548964302633802462915967732165800017817316424708545642420005299030430201285933845134718836787106544582786440208328148387471684460039082189871746295493410267378095959926729608414207528028278472468644533043583907507483195861738582570257955320017015647995492479531863033227764558306022993153443928022779278801715359777564227723456611129646788017145892421514277454727918846602275639094641687000065258736674923028416877464719247112271080836663373081280812444899467452532864904310130753114357187476396772021442131812501188879909212736360483690886708218001646005014850141154686018562661248651567650396288359885071710672542524896392137589823983924669472430646471200975237956040115390184278803494828092225020765952006827268124815075246127196613454840343112304670935040789520382306426433423482437858845144940611298721892157785485051243063912748026305790225248093906057292611669931331714269359331115191916306946231385414580040808721219920176008525106289186940643518992530522623254623034647583137320025218627087937488283866170611857260799723083394294299012449517669956879371613588906816659480228902574955850323184650793567750787349631217819910715382244436250474541516907634107803952593477669985626912942614019362694955642805899041074323647668790109444780539187335576533714321597835130691720134859956848707321619159158705033552134877824817745801410017132913183912437401353648281685006131640410300587872341973792101648863943251661679685552935116234565719284769191959388729575135847769094173264703076943790151230147961494370668599502111517074779417356706846518401174035397696938201289312092390606387797769097521042928300067333033676528694040612329344760066642314888117277784673247721086283841937610106162012216699659604326771600450940890993041864746130344656040257178408272129534687066653688064716246749586707829908051358466347033772156280135042034665980475456817902168094452376575403230875974769117837582319394706919866585192424770240384730444619211067115124986027547543820518679225033025726117397206382814314460881690787242925692980703241377079438582681118229718956764683138611513212668735097871512987533776441175242738970762971518765192106062772989572167319373446649995956566422063604948313349940768219480282253474891241195490890283412527808877357181706778949575325826534092664751206220550345523415963442847257335218540342297082628372659402964281859467721537920852396023432440475681112508547178450878761812649611696233685335840757268687026133350730552706826748997974671380106091154023488066690356315839745112772567918740675316204505306995056708131124966399465309289064263538097711566788536013032147875378854971442105822695941264103612363749194075744095946109824312645987996397363822601128446618706930707562601840812522026718316209466989275079497580431085414749038744549128164489654096959678762232178368743632703431337244152527829415645312915191111809224917919783587371365108803327610377078451537637196393070716119792881387505547161906163431614546170469211263691974557654338739641341443084060594430472108917737555573672300409059449925824571602473466971561481891278001387071782775768842866270275844146250540394130122503395615811771316363670223090121363939021129916019748976623188532333677422659176228365359655259810583830552245277920066850786517597899413018233919391798152928419905977469278070162358615547646635397922698750210125406893814866121529665652806332031991164109437266432223368368670579675535106750345777097895860952169486985612978068030893322749478558338019383835217927097092851616367633621956190925513169326174055040964543252590485613279594872080168371085046137636602655268370572200686079574052202921938708136418404682838986790470046491843603321364015989667665809170540352142531421090854950515131600145298593512882087391406750278253317184266675427137320160709806608625092938413613381377906451713600940303947541916954935721805598660336497454510265407403675016898733949304623781523153920299824123788135193421783894345349048158771453402290186934384496675244857380453582230124611133896467270271471098809869611948624639236290222338366484967677547941495159746674726865213516426159346616720150482874931751762722902989226239482289255704461738797880223403567946663685212394179109462735971796625560168949239652366612377802920207561517014749291473672479140540130695147698404123076230045281926858507596178350248388226833331882922877567381972308620638804080449200038288186486257734361047058204815325168892221772849411653812752211682384952942611867833802084387227975161224297201044719272990769077846518163800092217811319007352904446022460206691628078657474588991239228663448460523917781967950002466978012506896595643522777020575012196808443610388351090174465189903211413908928761266896431069140588742638425257265106073133096995365815303111960047364746148439918355358061471623946127901490612795482034109117899329674185604827541909201579138856876963242048315504398631033277223208407341374838172992910987504484833092859947418500107788428087144610733657956811046896713540952706157611712677930056258549519802405928605105175122869480160077752323082301192061969603853639337692885291658235055624633060901240669190617437974434443362227439945919096059320843002091889884445372402876138423775597096887897018054906983832947785857749205778614994605803507282005425829505205072748970845878070327954007565691961154688293764704307419724290481574889047147964097000721081178850024593862895574310947597652965187428857374116766394328918485244283476261892357577625925189812929050864362841689348403119275566685140295498107472090457785149267126172139319875479825411954388710061750492511325317182486532628340542737465136297691815815863148680770143634828633008474073336521047000062276055916295695194178449406446191055856534028302235627343307441819951711943429210405479796186596002583108815505598325106281709164702467587555100949062562998475427005273152677791909684873763866412875626455422769769895650678007494273745243179391459681614720960974938266103313867766079374596180489597969463186831928281655440060725695103166439765653013566863564440270354351248066903157098488941129921581095435035588196208188858226820013522431902325142144588210598318351474344527098296680592152132291701834411210234964268091349675598028024673898070487980668141926202503388960606555440843244230155655576087318098596368033856971969125295030302236456243674725700340713200183724979174716774867134037237237917933911107265204852890177427050040571584261048486181210877428907704487868578778788000348333125702358821670000861107142508396348862110883748393939764480038122179454415273740019819365779563500582421240292316641579906977739530200353132265906035702916994423021650218166674140716035073592361503310571128780534556521304667368289641413098294862642837989061742511501907379782614296715700363753586286601296470202049520616753558559176921286698640893858207545490573946448259159946129121001078808260867723219253220006150638327751919069022020947000945480434924742931234130124914555628763364768792197644433894707126175809477579304390924118338733254513354671130187538367256129812642474344608627654079212940273958180462488166853004129568979664386947466780413919276455144319268520710562096509700835655385783242523904431692139413328394814472989363157408726560864153247254291905307379938687081922544100310009665692510395854560687353953475851533375159631863311658576591655645204369322811000076893027972547832635225616578648219122991930253460674413715754548175767469220468658415989605416196381388145512504623965009982032414271555252716203045401626815804481528551466492817213323774851458042364871204225109293314869087371595688844350329050327448006530554793429433189060357334718806275269747486011121832981261324101123531606996517400739928067734903237862751381186505320101198306488899520787223628448337510858916034457759296722513537883370651577113085522290703773374689481141222063370728811833869735971961524329179847347074781638129707160111167974881010848120545152669044989909207397127351571033541697784890717785019077555587614992304241663361743988192117169828946161512762236002317364131166466486704118994217083906174830127512501373016889005548132282005951003004697077684908075367424483183879098832297879437039322605699518360883463184902867564741141517502114793624195410841730712990604794584279141425690910280961990453925184612510996337929306218992061783073255565811765387446298174483102203991898660696933028616404606510058243111864898413682559166367157729050757093030161148169942819085605790787547930134717415148627715601855030782676457213841805044319784692672720715991131688795744214029816709258282898852027491633814267767022999821750091230860297192327426505257931101058405139094552751734278916702076452085466179988864510681763453182089201521527241566223251506404704405029960569903408778304189621769996511473340198160935661320935645643197212603059938424655476056671649138607141181242776908392459261006092489355918761986182807162039578551845860153792027197126790129004292211234558025286570342188665000943705328519816118703104606679657367614287402155203882445021127474433252987841584747918300363106844861096733999322535370596105866041612731673165372151019534792624201040473622042592618302117597404988345967871040388093685086314414657128806489260495738649675502556822056246250873743284623346733640428507066601185142064773275994112556172767701426894522793784442012767033662425020677896053574711002720752058548018530163256214979011002861359622779380460333693165674560013434172633162303122849520848892997283942810498734462665392359349379188985351877009831456389911378666374046026999867194388512628546903917844764595027927054849906851077706517440856731707086983959213563624333531080133669672057149201938685003396932211331255511736149958993239771695670792677460033884489241595441165755533723224332586173203273757053203222440568137036717822502393956876403715180178864618579671980537521466141294421853709367953250386587849506755255413470953227932867672420732456641224741126676581862372238804717323134133697912468763140086586634240640347385924527511201118771087886111823660852007845832469589765232419989460264074072480847459198612259054324499599843714180029318688156704062679660041897302087815189710982939904356470901272258620704247934881169360786859158352785320265945210342979351495189295599591737160779478090435945633840571170451890255967642980415296502367547162783202644248688660874162493585278968211613281254530502798340799813241228340888600162258227741521987702621501801995983183226713452552992417451599501986782816932011698007355479468166126554320757908077824859064264097164743379405795846841840676441557850312508701763318542579484558447278618529574711881339294530429730904845716659206268944410915015906311168861568014365870534832905028223928624497000820993280248694545786169058675632163314342810765858058545944746337693079513595241219035145907593939387635358349457053914551186357707716718929431932449687882092594508063715954810237164338532912420143138648806306225352199500369029095701116869562448877131222219817762489392077381031785916646584494770999685984703595342522150065787802311134141415565131670735967236396218404116012414157055838957880837964619577876401535764128239529426211444300487776048951180210849773713448572109174349609145895521074347098245522226012908559378948908238977606005900217147077839862676104581042674200197645383493270515044321563815065302495249320001951920816719391098183593734955833279734163825328786910097635381836501056840074641167954988012227269264993838237628214924381685086517233943685158595278975115600815384423924582488456121365669356682612067099681794757402788073290448828525069889491190962793656014184249508665003573956021986584620044717472183511271178762747949167010705755404190959647302954970881900415121075537596092542271036948790938997106157775594434518921223262541854459999815341497853110721105336971770954468144023569410977508272107938557916895390192944317214953934984489787424898430227671687064004955935340123180480160335104512101448289376852567328287459394301967892118229942800390983422261017663291382721225976078214346314931284913105768874026603042667316336738126295452523045681234487735379733389343240178589151505344978135030393167076275424523514223754121577491579519448266382459260596032199844754231420847583137688906985251877730711094237549234910408693865249837278337240611068060516943348899476647801948758259352121872260733384084228598990635225718104306341998771467513255346008806799852864274131998686579177640836412825472469506090243775950126287909177036930745869093532622733223847881828237490295916350444809831405803803992151282708598047689270250453041564542796477673824935943426714417966175684893783604845201392366278120602045103846828340168324503513914537471968829138530798759194427277831606453063355476954997121302227168243535017499691740395908968432180195596075743752973748560517709086769728283331506396291045822769613528466164283134395343124553480784804163806310317348112645972046499394296144661624526715645512128705704491810354888959143499725745593789912610991781021685949178630534512924810795289910626115956392777399522450903160033251911042262562946591695648427422806209629026549116983334820199742229615324863400554298245297749072697474966690256233301725295344476679882917699760225906262171847547687632983789480892151649895783355207575035197769726487772427025481988630530361516263086240039513620569734468844665253861093684339223017816215371142107836013347519966473012773074432402497034154336977887332389956830113901576109220844525590015951858334256230829364336034243959508067092685464187014398900297705716411551490979189291177358613423196215025955505806334433936245515370350044186601293125062754047549843124034253369422069079624965713038410183221594861588122571864766560083685209549111179719822406949301911075646160479861123867013488974915799012673015924522085835494184940683619702288343325662811694729897051484338220349592507040713101538052984040885077330616648954547963508363539417972456321869155406231664269756534025371926371317623905510397735981821269725473906827386158457956917504927539264476639719821016853881270747607927359204895551819426446797490755498699568680031018200738104087740812119253635339234899826047592643521354125850512884053843978435069065006237448310598779852117651565525544060777683708875553311811803907446230622687806868593399498085244866910076814887128715237557435408264853688226438534241552687543318994317870526363506926633493214748783448097159525315835643597770142553736080774374235435607318277223266339887960253515535239792903923978523531017614726112688835619810045001262144797746688677682348450286992445362339917935576955190990298491922259714350929411612969863555225374626692981883312133262484108882211529736516454041670173435146535802119265527105662237524554130010400102739361560932322318895429505516267469669593376641788047263385950551130764796264203654568552049369855164387435856771448840604012449664119968892951833426776353118534942492341093018179893118062007229476772333747142529842419226278338058860820020597828047039176767660711148702752952459392634776831549815770905369440186058416113450485389332760806801936008355602573065018075656207711879280621106492136823650921122820623559305970319453195388857908083718242403391815981256254123685005903231468528182061292228934943797913211277473128087219372483713897114556266190116884172515921882521554798297908672572225817892282235011459698336721920092146229342166767532357867089032278858796732781445729638745272297552176727230510784678888950768540025451321427143866085894211935769270090271346305904414612089678848762414149710175571136551430755974897851272894942040879658047068612738422211565208481366195051084003231085922265138153615844930852250900379842569331851160235410687827205433948022670832828541541631033163635616421175094499494338589932654351335939768934643182099351011110886425200531677103343855726042790653415522733708571326457062580238486927693913245816910308073852717295454368636659817994957159013509123846051671362215805989576510878543488318229972727076208170214803663104516212271551855325932648285576411697948464216235639489059731575968800049498344577704980794117512404698254076076669933587311715609006592385255064838787078800716654007797976586821524399989302233651934617674802502349776817847304378458728290366696936732033313121055625307175617072008429854591133362858442345630599490478383436089240593963012014706509853432118692891309528857735891608609190540513450792281745013987262201188096888353488858915078304699161198511137683540709197513561218590678009271717043403089054585534622032471510185994215128515746660748240307577779931845614180517972697691927388240100848887084872426170451572088600868510264388729668021619769432879304762191039459791052282484151989397894575320251069098520203791922012381378089872804220962511267728433509031663801199978666942227257154704661524613864750981797385759182923205322110193740290964451566338331314044337240245647651711972604867819358583712034821116606081003800326879317420677523423502069991440020106453084139084252971662867884087279132544915597592412016052485393536720624947857109154069963128828458733401574377796804405116721618546228098375122673431369133112833588851154085635085594627932833067943098099554980136536161438390384346241974073606039216761720318672277360786502832451138421228111595889470276401466397523275423725650167024866420492811914360877107385719380132018573374579853388975726261990925362608473385121285031187536851473729322688105007473932400698359134823369207052029329918742898985498622476313504365307871586844324019353001525732691645299996945758933098441851007235605510924052545145351470339614191387603560417335125841330483531213369576878776790628972429383060332859064280336655378264829508886462626027508129902144460071432791201335679156462481241581578403758467661522709884835511728956016258121703025521735023304828142568616804420418116837264867753144334015020096879867561562718738599916271446632022811564179944167987650013646648206136352775608800186327968620738519936787056958267603619262688920471508745050838570083828787930914938976512377742415890706803648336094455442487046117794893500970101803194728755168239557657240439224274640532352452054562520654630273992049280668199324495889158952031181493395274008586955095849355227748647645847844419231618832939765874858063032043097936666830233585093521542612962492957823117081144308683222480138901251342267464094507560512051918104323957396003188717566813720089272831999474815546513332839427579552707662314562889954561519304402790538130241567488501218535267017423898497730346314731701880299031182612922859710333436388056874456735117027605570035221705979795449054785179482494622959911469201146966317951574446174546729897437687360819763308397420210812739121673243406860252821583498073413465291372540613370644267185885555009508709806861538528772514510832168828196831474460175707079396430691966642958712245677103132496365355458697143316732210990264496206673798687458871741926196484527809527681623751260784905502047633899962383870284461650234597214834859104371871161217296755373486519265072631892575159923298073531402543194832000311824551410308119921927616157796326830131170794783154891725128712998081746589181320636807192017995594070497924564461174347957275884358079506314739607448460628310433649677426800893585332807784479791394029265319442140132099948783600743890104890921844719621338674571516440372909140228306376878494347287976330348606650619862668949136215618391157185290972315972542039679072131745586960065961458045256755450847656386096728604347874225389837393400174610865420675368520394211432105812363542054681082193390666709672020949418696791397768498785008820240734356848556610406501574114457569357685049299120230793914942122697356737210130705352302887855601300791818948776640564018020333580090434885012828826938615200064797886333274152414559487237022225576751728314239690465581807898097861151741025930096796173266028298989405564660652047829750356248615922393902003798954443540286523226045137932540382468903654559631779442216968447803374430091776774354432209281313427673990954063496764802490151373595635329501705902588308049873158148626956820491814084829006022913389729723519918334993204435073983179400311454615573184019095706021816404269950414766040868702741507997787427729924725633505901004493502308020722352088615329321616663379869104969044688941040641629921829237655232886679993554858436648570643365311956623015631564755282671405626036319391227930837623546618068247211419026042342032041400428782756002223206085540927964389637938940824851256032026863869745274099832412831833122827214594224766938401549930391097648205725741830195363948114070028369737994558204358736564149102794851369982938390619771825566682462719686858571967263677665484241386224683915400567861584664131674594728477321837652622510021904066621114877749637155584424417723013977001021616587173001208594451727741464926025387959355743314422029874383601722804111277079519996262357833001201196809786097464344460793118617505913992905137103159829507233824172800171405107400492539446392313968277852914772427447627214817726664553258339580540953129664753970295646240591689564473431673092370603889745917366538830498026957557093405307020816188187085076504112510651594353087433532510074558426791363675656614958751351839450683195420191757003474410830196495093354199635341908539132488530171977774391541293939801912452913172923299138374155916857935393548286080575402421848305598421425945819653508964012050257484045030582606830364992882865962461271218220619906927843617597826149122547723935832375518997797165568176369948682055665353956179111546498278898144407519092932903709477340589846381400141223757789099830831720704497368243608268176849337265870213211656835771690066239222622708054165037813334351901433995726114397235145157278500850520083485548441464829228707708680986301037927318820855350954021362621523662669560755321068627951408763441245956971750919267689950906437037440546534998945522997428226380060658563215219235190977063804466527755906981766131360967534713805276242719176629140889718137400796691827078626713201096459683426237481650225631648212072162069976586492312690545454296722099355520653441358453618984404150745910923945421329642771283198357079778893761586074893707545047283184077848891366218009335165372410089629435052237746494275712378212195256013539224952804666796532093442208718208132431209808342171095783862995718214788339198596353620414759311307195779450778380294074534681696591884016490828472338533782040293541727115116302099913219410333848810421939079473315752691316538204413718776570489848631068197481444636306160831551043316594800603171059803340339998286002282162500401510315771251719576085706561174260615566397766251235679858349331400859651758048137000378573098009315157156619638605041437324608028508599870760722086297366856317104985695330553436015846829662381823513781415079151460358220566500631048165032919249339167575703557889237129508672234325315440381935319428767462877635028496254964314591425074969597171816420272037186137108922121316547322479307483757616048925907046895458836306038119069883452170848555833957571238782440371745243984891176283447706262507365125251294150213609458676136097887897748589455927722135184813869599461461608354831286338812934761580336981814425536300161864796940287261022089523458771542412564059965489840707932730444408203670682016737854412661590825614976608256068255569554955761576238751522833562798104071179473149059401361197987254450174709806794964349453401042626833711419085067225577357613748922545696579979243454193896327709197321570183679480045838258539972698299361682419092281057640507876037721903040772108063282880131404257639301014538148960231163853049907783183249553171662266196051467821759121082155877498246337875010971066398215777641033815918165271486946860651048092898418885610979983310560568295149823698407256671943414587676575564342968892924061783660482106270244081562203036125025302164732909385269649705880412553562318034644371844402456521674665528865314606439640343681004817303824506123402844767292156141438237650988908875614950089291307821732278102371733063680270784327432177950448409157825552556789878204048298236184609938160838244310533175382619693008762261606737420291001628965745569716354784049408291121853535351682355194044405327864561031340593453487236090781687015454231372065578506108274483273532044477566606662680429237427242213839258342752757603740659291124448841739233052703903972733484656399919858909481934509525976650537891281113457086370526999648531665682747903477420167056247007904100921073055985045814886391567118967572834183504157125161179259759208218698845975307289133389895447019264230294554423793413135925705201673322418323156968761409158943742899011258392570194682915741842383163133830977855154423586726665084016158803479158677851908324494686224834857247059915183439716022419892603820794834529469662039888932171315005945283476792715149531046865566851727410353656379832463987941905733252134269613731357140565040875155851942923395115869219116327243880995942957737429929255925718345332130594950927350324139377459729765336057848379912149209341800663511992652444912373062372343856502895371942821938219586530917314517085267613734804234657640640843859743618212534918559011829719986365804284415139486137282409422115002261013625984322844004459389766832754670522203202475038842857306621337559337408629504951791603644201191695468717906014681507508528959505688266484859446885383849220392036058845836917525006820028853339323894048548978730675925444656177753587716325714096090247464151597505141572267989986365742880845680887508393955505209909664161907748005598599114377087699925193842172005963430472060462944877944450033306489250184334178423087485635489255252863902260908308794107088819019219661180910244498402909333797593890968894401457154921660725028272548541838010766245912074829492618816828131749229517984851718885478996045090572000957544571700062222882822860771804169144980949641932624513365545761777314063169265901196142107971809717598234290032819246688273572316308104957291936602886153236793083084124121484959151861020495911912968620146396932836630847596791454660290352211890354736335944691324674181154854585773437767976902672362337679862621485830353031706927224886914758174588281526860604952719639420176952748143501146526484055076509111853026528762269793576888620357715199542111201149581134495091289238098025127934669138970867462752202118040546786947411654520507276913055298859238958243517658710926810306947123802533537683224447744932850913028194135276755292354094771004325891902730773819409672672993255685543926524780908823177330476786400930014957167889943769535104089415775380030771701525283394729245059326901989559938552923983272786569440603380784809310045398787354965702074348450271640195697360147251096157647917775785356456166441507773823590676460867934311761498045602680625152252361862072258625573611525464035482394030226804767155583551571583754905206166678706596722964973882408026672003376236991804067904020769752550508464812878958358820206448569714577513766255962472248699665726034550167026958666821192893583418052335431694977801392771244413284804266145331078999766189210835220734781817593518841045328540110937329164241126443572770654220325152242511981368541831649656256594953620855532851187026942611864950105331454230853452212029891599112645756908652434068898528010332411811642775965065251027598188242267163679886676838683969242988539709736631691095311581209630249626747519538134296567057727543501423305191220367552607151599015000598649857341689812926635158972594573443652627664157388535804679041319245331242932522506782825606438165175086711103534575738276374215273708565139881880135576469154575057178889278455056949393562601704818265699647560790026765789770283693119698190969520666195974674492323327147108081060953893448629545507423257760216017851415018410235459870757335605190177734345777340796818343020052393832950228558360279873598602178425054843528801062245896676071726678088411427092513983235023286564246838097553329975724309659287805747552377497504509374776980358700864925216111135381860009438352322273910581588413061811932202947577009289443187582023457535928423729525350151492013943727404091652696377763764277661901003168965682298215662130443777988182669142585224515602863123109191264537815662390208166653627086671027567977293146280811124106409450647024022622502723815733658799456176930137755235685425856642935641319056049797362973238640496597564561310638371839857196013196570315971764654793654394859924037907717496614071915547185370678485321504167797085049979185983677627936614946434650200463157367930140676582447464442072654095043485361312693728002098397632508542488730395272958904736866439806226634083215547326995248222027057784141967928613205592668699208430671421674060963353196293363386199331418740254487810213546651822818407567557491565486045499812503328099628504750456134550294258113978744707782763926480207822286793184364451894702262642583032920115256947501599851581525135092018768548315254831218509010251142946979849612441038060413968436343980714401797111662144759287724221973151900128090579897908173733538009527039487312152264360488999411752230944618684830551212564877431155776706698893468225113745144459700252054111524588802106479488378959306559476864639309090448231832921701683587906820243749742747219949262105197569586499710421260720164581795096360564785269454495110746212578255109211058477732945926802987688660063000321258991105469003961963702375003092579599667628862218588693334510649260352306940019966348685986435965317257828596546840660555267128677012128378888438808024893939217777771672488558501642824199136247444480385720401621020500809195454626408458505715606702794592990323442812598656014794147380323238888245963841603289234524824768469330658332834724309992485690435443363637934645984074707292823122957401961720614649687321896423555096697044280390136185247811493086173803070417166223847560948563419804847724230589661903446857233326111861918551169049942740053699250264450140134197423387023639242765419953153935511519532784861428632728244918712830048653631440928801065156101326034069371903004758528214805383193202151964534408403527263403621711515598916893543388863144083901311374647119106130150176278073251482667356559250207273216001580172300289474271758711091073616436727164969772213265972961177589512940132130069313514182793757836966034011991427678998775535273238419201614827668885224494883146665792847068578698457672409511457650266456689100803896540192283899287360573693428169660187225021527552948733470098127165288424076229999768586360527606764715711950207841797047313294781842909904876810325904431119938371212236099926242287925182377119412492209474393971470066518543074305678734823997141205107431661259824888152985149349174434436354719461083696512626803753696241532248000317767914571718999301140784294195411119734233971323035826814949987869098658295209160188702236684944327587304385991351708419670092111336098822776424824590295888383445807153451095916105254937910772958857727854007073182125860854896237322939279745533876841278396161203692575303959159463780115540691736719721516221939991324145415943975683612416326767626309806700452392075081240136598800039958799491060691558884736078738622251477186098414173539829266404526736129645285725197121922422683517658807164241330726742515710346903530970279770681669698046581750197525474462346039969863695353842025494154753910616881990140511825286740275449066435538630131519408384246155468943878746516337211745653154591657098499523872946482031700089061760063564308563260109231030917763661711465166995331088704723903577226902133542930917439611688106962022388188279687909999550242984989910315950028663096678554793148635763428740861698645862776468363879105363006795671456058874237305941471074548142854245381936438670669628454943445741898718719048532943506692188988728608531954974713380927660184210037892989597108282189551376714677441545925272829576051099510728221003880175778330701615548476227816976293858390009151645064580019542075917288227553668041957248391877461338367919231750617039260610805792407675970414542880382471780082041611837265845277478738940375382202301963795487253817657333393714362361135305707450456955904010657703082308090963313041958076685732811715920347786905498197293752601221982857143527204273113925468365055531040549920736738029565570465547648462329363255900765531526031444126675333089260576533765844797564446504552493012565436638772129765197506613762503949492704727204209527180981789964897587821786933270407137566665386578102598634331452777901198111776662004026896120420630155619682746315509988630152396685959816310877343012378518677825600817127969210446865896069551282629510728518035866573304484453877486010339028719513479052141039641512275550945239120278657223788823300533891539573736090445654948215392026143006880569979940505531002738717942317555485863516223365946110904901428583472354381567109270712959052851793122543000966607537768968922333535891742603728802421117292291515854954275669522230831158009937269255334417884944251073616187900060450465372555241620686066540549613051967471061530660256454523116619456660124516595249314667943344130206024822192721622811927731803914652904430314213911285023994460969057431129702594770737813452025476227589885247273862930997565963738027023391619646264998095450051406534796214196678416132863638315274546991204382266975827168248120956361420694421750311005886680438729644720119334535020149086089114492931599009609595370388777017019325419580262546089719646961258296615714632076091995993588748170234639581311250891916586140009846654226055936630049455226424281977822105357420016552033732144781541204548562556312200813961774839607707542703667822459090541341853478901709284498252010842874183334188173934072561408081401235690491745253894952985597118304270901038052686978461778746168090796690031941552998613481149613318027189499249419067263197067309902486255952252919041902735847815560231812335176215490057019001656229464263224465235664244152331159298630059580172709248971606317650439997061139825257937506709846364278497552145269049443219679643593678595057388045747753456527139752496653701766689570286937701621145787511544134678001574323648261822476859390582288845825273974557124635669075971746907043375168970096416241702392358663687685756862607628666846131257950173444491636413676936383478874892529038469574969809696321043929691485347145806171916220610472410706553994010948506158238647011842535475564950245550297982900922560636844523256241474738765164825476618723560800760979071119402839618349561245300761816058982435686707760333924221170604882278292064467519421719025553846254188627056589279009653084331358101636154093649970064134644899307594555386424184344268492640503381112036748265813900241225756533915175134879333213579556196925544457847629627738115616241529268475900262795020264677766339470088838128469523237220721347343689439038912210512188696002780867052421276568460131730843338738662762813908819453135818523108163869056132234739000017281905184789335096556910215667583378252363587945084402531783052644629539989350921935284856265476858380404022822818967917327531832550535667971464414781534385549948388019599307477370541733398359183109517485950775932333715061706892947688760048640854722939432029352657880525074215378452693399072480381162383625608576474403730340729340333548389970245769684209861086002640521710111079020754726515243899006532850646812508212103189975395434527266373391963634332282710674268909517993329161201879463761521759733305757010676886558134652454807002241790489977934763904523491445376068038914728510958134455696834987051175085120787353525099647776107161893563519460507264266538385910446263393242078128282218176590734994903338204723056073282030331099038429414205839728168319285543116506868220919704338132071027898538832143343497426715055883616603799112340903869831175249076322008352033419006312746942061620980705648325081727183913707235439650126557760452754319758949712705953756465572346777687968821654911279079583595675274098435038814373832597837775151107469377036230917197329842979621241322251140278630373402524033248793922697765544625848830473057247814555102513841176279598249321466599608226262709677067175149753443391698539160197861605256658148345914186774333844646496192666065864593259628272445046682199930997375792379556212681701020382419916417159315854640166382511735372574671581881840732601359432691370151902114198976602963278203013776746937421518140725062774256365620446411429464016504358805578265933620713217778236638642467271827966746710380638556139077913927008614892458079231557758860254591268357448681407797827057346119777554669187008645962811204008608574156558151520343775153480676385197940458448604600365169101464682643769394511428134815822806191656909301009557076685675915995926564863419306686676027962065241993086791628687856405510013663105376161670567312985252673580691916899960765105405499381807043151185817793462004982896494524878470938235772180918530677799215644513377817059632000421225524978875838220433507694892965944440083324718329047871417054642413584858139728632283938282311009166326963143245441688841507592611872132805479089065346668318377444347463482956454374880564415549824539225535642786799818999178707969230578920174175201797183189388197322137928386528320470700526108073850810761176209799312783045401446039341034430044216060603451266867488087341273095142342383548133907992609137287616893373782501411189121024243136678700031312030774016776404180538233726269437437811097298057051894087475459102844201844661322305118826316967645947227490577264474417480180306464152812954757392062726101075957508141661697496882655424265270224254059700217992330589217786370214884185612968821655648606659929522183561157350188242758908804509601797058337185108160694180239854942215745784715346331418110832482614457480767085203449478273472756539179741847436946598359421210620264981846269200645758626324830296810653933866691676154968767342285944046170677316022290402706965564024002139345174001455304089625772895150359095054830538344632200704290073382262710150088628585070863575134697722486924389368002889314037805827908170532451392500706068601681256597601880138162600392370647086084439987864887277957675998950320187798438672639366638415106317927155459854734012499512499057418879561360493196693445724172214661873239650266217558004393534850989634281620147985037441215754504774464884770347242630807375496237577363403281041851095355395967265928589830750562711883574933182602600827724030058379597249018470509783655306885278265452757851799019821260458302044975132874136170084436278161330256637107660710083145795100336678468887217157153636813402410969315275887231623644115703880250140779129688075029036289235341289115104434258641331522784360122656672491262989717592350428093769687340859829817596723029813525902448220829429344911613947670329945096067568332212339780515236254126706361686113545447553168146521221373907884381447217480689468021385563949926425755251192377901397526881271818065508858137311777242928616017655178993012949249354406665464792253308900210130696926461616652074154179244483328120280949865253187510839450337206055809016650958692119230092273182430890014715648062575219249748258612542203219791986029951440719062737032749282555228148423549210570451247640726304397661774773047545661625342976404355419698425364788267035668640158987896964222939371613056803247629418073879819702056170462037554030918327742538553424896427775503791197287277708879915359668273876182375884505212173228496138679960943829019411311348379414689186774140142619568243619905383533040363338022011604905558502211108661085802755613864602139761990041883480809523994825700095003960635506993623591112090830632672378640396325120556201243420730920166511704813103940060432683671600489693321378998134187726575140661236057716857360775314794926113975571575908498508929429518470821284651490932433901547406994183634387010185515498181480538270494365017765641818690285532061429377351017303849960334600057590724237031779088403753139648312399010905832043684974100120427242198976943779958236655344069545630091205753666717479193424146681239112418784399715342951956609010604977015905582938983739809279701943240245488958747057385293111431192585717472227093719433144910498599951553513101625995150979551095129925747324514323836601437615571851967696485168125476616738116061530705726183940986285999970754955436358429215039484838364190940684718371406221394722875739997726642935163083333327554783639629350941785185457673336683705501357976869215558822484283082132786624628148875237287123117706197850046460309216781525363353366669993088007982805734221143897216771942961642732993709986504413474016710401864518097030900556300018158201685197113652234734809963399659044261400734851657477686127370864623484491597235567672611803733269654844537460155760888897996548097386714778859226005928877313571167461266932146020531841610135574473067272384644755431328849657524490380951286763334351670737969013459056853828687331088335757116538789497128622653291645017345262742926212771069615195078655914472590718474263309753494431817205346604989719501371859175132015795418593382232777036976158170546302015276746630600175251814137932356730427079268697631954571846858382429477712919849988449346311678684798005741864715360163279329971394362690012754228328831146154625721195977188272219675172056993678475362818665565849208441463740612098617156646553947259996703622712189807821698767055088721486273214860119812323903892211794236517919061640366174309537080441727212508659216880156205098083244254238721856505217816272561317589421783457257520868914501209195719077844128003196484978854365005829836272320722241146188892366088448681911274385585638787099579415811432927370903526077995365709749182198023261158015970560859919043728117323709885147363932873025045185538253574312515214566001350475016028019998039931649593269761563759599096251838528734368478079609673304284389958657459976530398329281659638610250478012496212084016262286974553755730410261620347565714516226505921001664358934855398072248468876145733040440188004068092050432109990451341666116574616189424557048834965918000095177446441460099061001256045441695798299822417202109900966681489253878464990184864605366148063190255990349091255845840427467676090021452730535965363914792676589912143967374953638124846049533423834760598916980839481489639106018082859395285266702520128109405033634518009306111098479697381902521933747704747057672727682885240809160403419796666796718910588961865012890007768634421849212259934785826650757708422860199168218522770800430476030920842214755014029190725053410415893927115861276556559858435751403065054166724465715702781232896558003052312302595119480082558884246116446193024419459581522404103213543561606683423462565315569148572817913128507624579445402099935263617511454089964504704805320401835095585387726608802248939639568465756507080367964867953812410214232618020511265733714008542635721526112738141817146654438660428399152428951011161233241179506064178173229250659514744368337642505400812072707824612024827115138616698765222014151643075566229234135443854074251230018077157379862087686616486551230047665685162116737243115435182292665941970083716892339105785889756285470378652559620646166167931917269937056766806208500377377826783878913258038793818648670128476934041496739180885909631449186596911244213356753560132580940122617861622118119880466650295473010873708987418885410745282381280954044641330905533441412363540838027400973063053627047931046431274526268179846607451963820611542718512305560414387733782814792526165044633260326985206180162772398120115143996143976848964233506813094078978007819311277296950325540643725150175223162502260828271466792604681259405276574771132983535870226495398538979191963176035499933311287962127087915851637323114930275292843420608518296597324469135849513954868621498289975321147906189442769092779832895222201523816613250042981773236742486083654654337205554530178914501966537835138025250319948161460462821403443746236905886295989010177325528763678987783824090686123030526587460845978753155704110983089532298677756224736389173201296692046540636930250855651924441603691217305738725032876579675314145291859421338809279325142331235610472415642320324894546837880217960264614974267876488854582048666190907480945494229964012190459502492703486895969826256505602404033992520877277910058170724826553996977778348669231381085638981197135615894186526087993597121486787814884396683593506358547868589131743817250302171996518948591770714627421685122959968164585885827654818003775913961610031016245040780696487412802334019940253297506522125990922271727039907273815914162677293906547842862883283626382548519165496578855819120001504587199021197148839271017153059790355687116070540084088833776073706722781816823929272312796527588258742812042859463839522761883694519222225411440445462820665736402564296347547418942776148349305840124524450303668469210094517021610504518299405190551837945032675035217576385818949315919868037274446552038309946695979001209122725519463157756289337668849322173490030179490212730402581846006475446646027878792429431294436467413242970323672583140849805627462811221637042358550252767248964490791969297637806185432480495148263385126783100703482093287211720443848115401818546372587811222820182182451851682440654661082113888548438345788421874669206012156056888142240758893198227154014803988524780003348215291951096824121193315131276116360389637785563788954623390392673879142668127753056229407452517475215584558904760623747533445867399744513010267147296786449292614315974053197153016505870405788191092427611496068406309996327845391042697825648365331552915556089801736722857437668819009074222443767420661376877657393552593646940535705427426945408738373329177713882621182755025312364623240797664522553272075487928999323710994497169485757496694874509210476855454350693068574803431125040750393856446012314489259625252843158273249418871486516702568556140404759750255949956878994093372681498768180704101660488349743244108222708812585954930461020276011955778434576050631267247070008256086096240503354220481913850528743852840373521736334369924105556814686246659305340111543322633679018269107919749588650299884704041653635662274507738210729726201846665480113454521543519744245978628024874522987577476550019962844638636068567529940227066453989301041837432229512851914070167174796218900253821849512376256232348472392634478779217148398295476966828699530108465212722287968592202504212280635583172696560215451198792745910659749343236536581393352894748515425569982751771335108457632710394902593630914943891202289180139893031929594369699508595239973580027923708414212620286914041395269517754786627096200680307169529059692667111818345112887527337973571455890353527684535908886151794237626400039008837667528704990690153473606853572732636684882568124165541129506336064247700532515323559356867304958527710391244830545088113363138620854595345979615963069558142304253994425300868541495060035284921399350126398881407548078315050616768530187867713742814176873451082185828382541287961995874823170232000063451222848229133824685228733257871413125456235882213164838707649995838206931898390892759187297346344864650471998595573082896303489234987317630012403129507827224113288454255300319806745934358041945808682623753819773282222761386076622750240305462122142783894793760228663511874701752990470523689924965039974461908302499452334540047224489853833251295148080016331223951499594889848949586966857442702406917630943492706328716579517633434904063308150031612088647603405769034171265040318362003370517690520146479800695859946425375263878464069145433215156340751563572120878095061748037515288467916739555588614865558617828178096040537143381990219924889904492241193632900645605101417552122417562139580874600077393920353904518123243201057326470203090756487396750405135370387320454878406504678525809535264700280105366686253394666071422428232393586616303778860250011565156009450293164122070345104620782182554333904965486483394168836100831006106441983829620435201387097425469725346527801760423242464824927006131687381986897709214678092212455933787973720442255799597039291691119594779634744556401593136895297825033052124556384473917825366570454612630936967743195180562811088055112372504593280863528307248219844497059309502258177598651118950140618885578577686513341235042229169013703880950485143679844437601998490368472112575500903648570659061478469674445421683392432849002597037183902309399452640450411236137328611596086738393819256973741116813256365023280165577054721117693052041336441098369111819108296004185955793146037526089170661184169994980211549093896898970069417024075856640755817712408531634095336238055756195484119024960180301200313977723056883583776256451379111156137330125416795835296545211764940968572007078725100630680539116942529928467518087349164444777205519746261777503680231270936849428541465499577508179784389157675238811890160743996803506752461829012508615060371674074210426005670492599114198735217297566370457287685962213627934321374450142472220779038737899382531519117500361152596504334910667471274700651094348150141070045776104085206264880220487544004868919940371875851361433237298791265211295787712090430472548525570912514164264136207303694081842427135196741403728969896159894710033672001115496263409239053276642411420097896332086931531676436642233013289027525768665607654027466516307715486075563996272274225920639172738432237043833366571183449565479225925970307977356275062284093219561078976714985962491222269351636146707187080979667169315295245877579732960138582184916342495725299625125345229685503382620917941671799673722890482347820258523398061176933134847696706993367597417737428824331948645036136402677803652405157911468285400973718381142250983113635215221186677396571549761401313094597695099850799209594703053845288349831426068933047460779967604149867254278457286842600836023841837503168125700373847086096882374391123542125810981558281408366131441382316403366952968165237277306540975840530627696837289094771411667048338859641561666295116694419581209115629534159592336384419547712290486827839875823664595301288548926272957541322564357421659976153151716575939468190895286478962275145848603866290124719726452783033605034585966329314449670921133258182335101946596646566198520802014691598885469422479034016185612700768260407457159926027467753530555505524699537291191116550069269400081523331631440172599422905273066121181154309812877028783709700709849744124699097029413123960897737810166734030385690894546444488292228632598209656001203097802481426503553527743379010405859910399595316897422356033738589350222149023361706448609496172809170597962676171483417379227640741077281586494132878274758792971685281495915716965098746968899577557873412881955826426741039942879678488733424705376750974655808364876196735199055005399491045730739353591933252516602051525967254173962824073170060007000821807777948308410293187568079064177861432613081615327602922673323248870006162806077202038352723833092724421883612776855927870265161886797678287044304534256275163586728697704246265094477531394904796554224280814656048310592238692388488196580578562480734071593442750179164603859002735974754631642296673095100428472385821617107697001676344182609547429999470526746754797986898345008532432122087042253331568698322200153208740121636184498505205520819652261657953027994466933313873221750172678591017119474635958606389130170383891447356126733520095382585576429009773087006695165006743585531158999999384466131159897146164492176937928872846174267016292396901993611282870422386386982297202165390291769305367049506006227994605724890466226299341507638430159263243271898467092981105594246830333520374896524409351960108316898329959316947832972700663336613191447478169750368116778597977854873192422288422454238827530616198099170452095566037090686121369526958181135139770063917071453689687653716668476575000486148811977414588886793771858360755840009119390920835141516399401036749281895476646303377716771671136453841753219813860717155105633199552149536275318465275684181885859126150195762482314239073786259993004757065829743539773856996863746409412743338385209625895878172138890159556891284818445010678140742253238376624236401008519765435643903829990465551573981973436908582619942745894771474620988269242076793090999820684519423166057515474216908110327919223709945309018703328415379129295618327711016521248494320643078866677537532535147324077786725146888161228318308184661284332911428877961602227780492346971460843883311441754809157788082214844444827357807391690428850232589473662397841000217586994052097377769787544111169302289369478506783051657836574306823473446628199304283191315030590197966430053046174539541618516371346568942135884517631022997720595662776373215862653266341059411382514356931603340426871964035844628277301678451141418486004054855315092454750014215315815964844771609086105849736626682160345126303543048959183205330050784084509517655506055386726250724236968850029493794121811081645476366997129394689060934970696046663149482872866607445849544508667738193702892832125659382453028601222294961071964586421013367056939767037240182855954529915963299194008989076803876514064750465674038508722407590968794686911234867311326411585592025050973038046493811351841467911979233078591618095757701466697829912169357286948716117440014070859908590514209241264409898278583042664630137695045428162082409784389305370685931449914905932637541036987810872720719437816142477600134296248173217551465473251154888238350607223235784284066065090115846155925700190940363975733680057890070315273674547836172522577338986113876499579248582813885050276463074288927799035254043170802459388721954980404537729053820860498872998686675362316344579664419421304608478753731855133180830003086763671399668977352564139475911232921328369169811840951212612233985871474131186727644459294538244567998001377361700638441754113465861134587360487520586073426421438810214334820331345576980145930781734344377691049186432276088173424680128513550837435830698588717288761479061651269202723545213833474365007951554151942441235108962945892107140826066005020434195136612333775426539100142843299630253151980480132935214613514662067130741443571868410130013265862351659868193963435122427870225899160568432356680723359529844377247639445534049967167310141406289389885841417073641297671430904634991062966793014750237162352052256419266639585248405628997498224444639312787407116868507930195337624269796528428952064350425725112523870682349296132719964840769132117471291436470564276733862390982755363338578918109468195265079346668164601030925672254373892555733157724501874632736750529636859370926430851192861416536046447338083246416063040014862484044522656218328903702031692890358982265453217119895407225220677039036308387645549600670356552483661375191188601969003913114155696453304044895637500435153816990757176414175626748698102820763032449863130291002013472591205458409645643338562685029604443029521671726972175876219221866337835470358179996417499469715269055365522948692955633413467897742434828078661018565908118348584503628285892816476304561777588719335688229634107722130687219014715097451309956977219446304653005597513933574810092316341117343700604748254627656145754124241471386584773447815292925685604770487626950953346257077205810757289950281461272501549140637005163434366949261345177115346572990467589571115540868676152747040983751319254047933899364111478729298644612098586087825678227308659940258737567143143514017053470398481726495553464139695716509567277631726486704287411101198332336916164280251124460972203198840253686068428878366553947889123047727107736067203488439290044362266039544364761620144290394565797045794035879680103628049845352975195480120011142930812394431138165981940189047911966653562622741430295638619027042954349581160722613590298030952958028665149976657570389966520007738686700036006899359854918896302917264758244024990724283468304851228018199038080207820331387090094686594949856526911132777561847627679810640306489342004555019767618623219865559266689327178338737056177659821360617711792185311526542321830233306163860703342515455892891470546440632188383145321832867777941625483507493256082646800050805395143412817022595054833708363845464391960749392147534851987738548287131532154079337285235844369877171810580085697314200586008112743641413343093895610947527531630387849249367127130447001878157156771362846733618567960847810863387059578682487215121182284463068314876142851019706749480095241780054400771156548277507516067120018208416734934506009452863479177631665134681525594268385351410263778625684437454777535597776419103279454098386293479591455004679851863701258194610751191042488558948332152065906323031406704696871836536129076386258959651659444233071119167166449836467128513470712733503902950468515998660002302042056063378796361342110016902349986772935999904851864671710885307725523381090044494280956839482762578686648203646277923928894917958120686207199235549580518599886407960118137714434254849337501684964254355677445880665187734110938430403250881902393625651559239841318030423934648913679478985445482755014130184901350819089682161460985591186640417238796967625682314497341782269446840739932905947319323736696726407776112828699781305357684723775445064194844849267482548911581192084688860022295251670314952035657746962972031682881716266005212155650591086467705478877593485023597146637013901713276395071016216931483945014683839211250306309736926885788274325434193796177359678697421295913695677322018742666736002314135852624616232683237950245325173883136765603945698356633827970144990752755961314299894203086065134094157230612859981171233648720667990268048849348699132358746166047054531249686123976943374030377700890179066116456264978262179708733999429266866734912851807617991166769725432855253304450061632570451048254468245128027043702682598860926923403345801705526691246421154212481422327622102583593033777829615842379702744314705429223030023203598905275883308223868653104474406480294380479093892477699201381372884195961514450356941679121154440140490271438167550419466759417375493921061637443936070358340279170945206556773006684747126853991330626942619811678549136041581915806539649325987656641769302658820162977267136166353835548250537185334234703985767778427199909067869605975954772875329705115962686931932538255543985411228599350836585461705077487496239050007202283928030612548134336417855884602823455187421143477295316444095332895287877831515982681896199160903252038883411576857893933285222387260041911948821619713394909077381207766650886897280911631320651786128758409598547926834401775988036072746917248185652306295745166577019388059886649750961460342325439451821334535859884210796536554136044594405995580097440016067697748673999913986344765112791732033597375286430200619157490358738653845599031358526422950792737661168341053513423285388984399481500890154893803047557659129929254548412701933758098592113543616610797551789227637335753199350917744349770764203819442824051870703062759358434056217482227053159993126131851912355952977396308548525326809720944463920376806021286554491501279848014485162352794048620204240273949570619853547808661650873163784933359679960003296020107458720463253540624295248028397131945631675725773637827294708346198385405941719917877254611518979660151362119672301855281106787904929612241007393136211150569682793531644556213475555728360768991394440529656615411380544348708420677367005515144171941230591453794919867607147529548700780799474656409898941521197645630336250990659536281012267860905527016790321626358097711741134866622670978636846882428980896726110137639553423815966932429863107615619281213487888292654901536879641369477320652813052313519799095043336888032463810431984049652115422461392834863027068426748988328125014906818487458754431294706552828069975947592270619053913045087217041691727847734812414453938720584454178414487273340912363532815118570648582315103009092082209494544089082880798937253169866716888591101723608815714140592150127432105087604686219906938317008656287534152598435253173668892164036597137326478957253033772662864662487428928411176809745123532681552862153495843774975564065796183215589535040897961102492851773274336839972558279388534704562416478023883925522007417740983482368293614665845632675883476563275511859205666488102989978030829753614152285134754393980767226316682130350767554047396162432188530166563321850728875861095770901024353837558911560118465603888987448553415250583564888203950063070647744354805721135281261703374762709878095759486087673442275802945670982500788475205309149415140330405670658169165374874772747477631277355303236658838481841027874401788822103369126052670380428714361924184138062364070597564451384153873937965964023890380204849778237618398128151740156839602418997422987876522240604140691414931216649660902437013381449748667169076754204416749638823436265253492901338997430678580481428680712681914293706751327641263375428284822507492928729109001592575518349879945613763124584861057363645296340762805724883287839210484990311176567036846650444848646715267438168029400295737274085162268709069042487426789138056044154111564396147524131371393063157222383944027749131970458260748444766651245347621075419996710229645907968807797429503597476397502779464412628446469202548682433364883794714948993652751359547310749363088521651260465288391379940609540089201934121666034694373259088191077951236949442924195489856370086635237630507568444662162254032561181913028906409565806665719655998744294852856189956042218282506966902358800592271105683428795460338188049215122071138887139170422724556317780449839281323487866722001826098790870714475883188448625658936144734545093575838206055922044118934902024510317114755506907765706723966827129478304868078088366099784282521427074854514750273381155313195386674389211213456029447081554047377337510893651038603713319361577817243673072512342774425912361303010031070299186172185368941299364260022225041372983283011128192643186036262447446719603893893098636971264927682609947957535103697144010541082354272045779000819044270733289970055189257995823175629543249713297025693754709581296624328366347055628855664895629596201090642733691649182712730833513142684187595512242931968654167426515004539198727327556600959330571792989657239081797888508233518246934944446056100415682312148220764605791038217605451131818594537337433627548259398191290675339790061049470312581086747503140647259759167442219489119792111056828117263512120201953175232998870924507298673715151949285435054074092909646177776688879090797229799746147421789019859760169248233575879865248697800146372431372962612475753047507958803966685240364590769841763023808701383208047008478259092893077743738713790688312698119021250124605132527178013816625658121495265725947765394149744474636882892479081356456449829327227469190950069404636713668212157197267053763492471701524697407411154697508853233070753254149631937090667732156185216429905505188249318980444787164812614373246271192664482384395938439512342554583091695347359887999293147676839287063949743718998518361682279395093450470168804632978916945505964074428799501017331029284696902851026105251275137032519306537349425040262156558560966622161941982400054260906910759698387573857422763642907179303835728581361949982679125545814842662530103347973849760573652248910793155444469074816765380250442340336276742818227025038464512386225557662094356677846143062780113691641667395309078403618761821079774489158250742632671700531546295267674650533982222666588752328380978181980681299973300566516814101841450973800214050143287194872248120401544482151415163847115771418380259456033581884985212522298583035727531071126076821525877085817349645114124169896628805973557222164646045635404782235702025769103588868502542698462112051495788497660272997909350547135815398455526710024455301902818028902408628814412889915008200521307205343158859342466632950827163835813622188365881174383976163315060859655523036673650465086917564054712430541555887680588741158543751234756900519265372072125547885545127807409411955820665504128625418651176790042707794987565794059474328509297744949152133376928657330059887011323279777368182600406750489652300729474601617331678482254901234343278187081217040374297201570411979550374453990843630277312720234169853708884481642139858831168210444786616278201346666199643488632146018929739552839386427058815461254379778153818312646024848850272876266451299219385743923211534835158237188287221988893118001335407743123510875531493069763847296021611588773711716588202359341316964082693255423708937973067576332184022843751367872656545020734587735460432757687048406682579156182978593941225519374395753449280780836061524055667611919731119690741647992776599999565549140034657118388356076646267845389144620450427586267746445937000078270894495414598774805737453677743245057455120175265393545803443418487390222878059723654565233142268567220529160965743284343922875524780399600272721662701024159981180038917678991812900902266567707493246811815693029496550302557092600673064406538541694012292815388959371332886974943577415362455954490050535527356295154480844459361782303447652831320185260786244519647651131784038662410840922318917501466571339462401970961020656669437518950119828591785098613612894693358053425758271412760505747822385831347468200636723417451075107261535585993443044434384628748778386133636563366316675272456456836047093735457030754908462397726497778605228426165797356054384494695467525833341004315795408725250627080679560736373491049123118887625137665451832752840031032523539011052050514291268188716625033558872509827797063029029693561108245727176842768830186065077532507490319274773101106886874263690771320456285247223276381304925821376637648660400300785826526558639946075631232678935632285012163536938420780653549841866898227336116586272198933000443113222865532584832057679048613871405291040129880110217016562427410980310051006662663883729712059363093976234743692699981171644177071123498601108903284445092258912487485320800736865539589524621072816629070500185784602128664827819738001666775970757563736172067757812188654792351835923716459363266104176496570330874944510813933950348579692420078751328807114891478327836229297501642420315460813640357522878018554349572964290723057275905988732353121055192862709531197315467789604529322534638262762950828168303047476549218232364308982041360487321645041804470947431953095934317414715347250108891032397240276671358380814626113041668138535310211631017848963786917966859158938556370439754622638250248070855573463286110324028822163766777654581254916078172986060779653999234502093459982067017270095661272001140308314621277899726439744606763029280269115609851636979224885445093893324200104752438298927063720083883184051684447641211276420925065858275081190403926196665415818537018125116285406387304920396605894074968613457659179965246724374629917362551970086359166290183123154046140647857512923074059697219818157867474919739911148707903095742722013147347974596133736426672485424325389159911891442367196069954669439608898134855266741680847596999632715168692399670276888044806669087537788921470937284657686433193807104105006441253061642601077659666470277645878811742201562490865012007378116809523450858185256724736811595039238423863771096221067547992593158021237581678358304758798218424581014687196530573797763369968201616214424558780558330078371355508768706906788621050401591511086448744016169750242454778678865446387802257010847258791868482846473460141591266800421689748900215145776881594960384147134602384566593233935712162202677545089444251898722890899171493488970819321587082326604427207397520226705737657951639998517565361923520653340888531046817333698770677017292494021574762085295928660107793390570722552597286108601906059816256683230194521576369720769589365294605394409900401439671197200299400382299917965987937423735000751673870910332884430190076845446565202795235180737084378296719263423936044079032339010326737367899487736837871661631091517521203772586865192994774998233226448854786239740732449130625803651510736955792147845434822504365016793837665153981059957547556151803312731606465141405148665556311326838414956665812472679142255584981389458553687188832612698231563474146436471709474342813136999189205019355681429826221544951678737982102313856899084638615884337953651062854080311397899414518522877481380842077540352841605389306429131899687667097065429342183743244120689100638893722586405068926932908394188279015140450704851693021539095663907136894164245811029926320223845189524415882829102107494086535259053678596933659112482274868317878475299056822438531997273451579781307158954658037250521583562629836163599811932911928123127218180443461032138095379169285101058874188412059574184021766207211034866993537541806582580110561133158062891989891707389848252466915466882532054826863039778742783543097556468660373598101543511172854330792818742693390919179765260290684773093853119904786211565964181931840139178570482075576759385611661243006274436569275490827199082077834056635984091254346518203695882372162055477097498311929587253573076616937780168945159829767242414072715325473408501822685931450508603071869257381501007953242922640844624391362100944467665501086054304708544493701438561060562377118310072991426627631998902611208746905027959428961863550816085935276795540467305998181361264014861240528350016364650251687081454312980079543890724030534104071464983880524758333730358624254882730536068462844156322826114574603967204965500411749019950023450865553739638384298189321176753769281892623723012048240000828756407263407265765636809728238862332069361410265554040004054499286732296331223109946404412752254407241471215948649274846777665700688478122112655410908540658750533050822375219037436287311034975973390548026751674665865962192851075863650935847673614929681811833969989371387013046382161297467669060010655146794019809971215651927425332067222256488728234524291471998393415209153302156952740049915978996685310615811640748173194789656854956486724456908110267239769136728352609259440183516966378897079100257941177770801431292451793612415822291911263605649774430441366663111234359936426749524827266781457481004893015466437747807085731558154950522235646903685353244584565722392059757416956089771210876303304408019135628175820946839716524570253752823422372367554751547042440773181840107699311217351994487626387710564471742685729393780711990580051435372087794882006080004583626994671795766350013219095324170018295967382502851108756265418076826474031408671014748930233313976751347667645091277472708260902080204289610433193557272885916690764678266431287107830635141603940747867671775165800667587108229688292201080487257714196373153676726564559025874177107397212385277048886711702770973904888477688067803925743416833286677323041335457973077270388430125288532933941211397489637087791026870565974712142352024773121430464687963574477119749930087194810153882214127223952794973903209762038886578380022431301170727666356724822853916008205598365477415582613485048498089665076604347012478582353060969825970931867034369919390429732896019236423735153655039539780945117468805595946284580687392109149177184472522730383182200722222140468314820676963605781510003798699244381838329862815095739615650213623828421432079904907589021274357088413189650010285408724066464379202977112468332035163351165602172525716731452085037428763164205394943899007324260032181418063915035486325582867408297325053132121647933711936093293206619520367258096121337371842530500358751137707736313533093318236353850321231391899770982924468480507724551275709270655740970855413023217033716591893083382494199478465214457778384409216242373814483272453960672329493912833949119705563833763975702299839292408495610695548364908080758053977437700614603465193562972737351960435901231679317408089162310546082462120184517947418072673819490776241230358010015539785949925049715498246434218161603840083521809933360967767459435151315399211119568623181246257448454810897215173871022234600536506987753037258731627805643878841567575859417986761276072861951479784129273928596626332880961631352893413271791713963669577620125426717738222485747417609211513097207431647816162667518210950005942113690732635828652729911016614703137330669827480173824053076894917865038325636897043760273976276999105730197691198131002608430245031110725924730778413064737093421493404937045781728185146834835278965585491981260448324383173850629062068290446277890809609168809227335378093382999039558805798539217739201317992722865022016281706355040852617070123456833039385739841426403324500641654326301604413350947597930009633938402282222996337791331404119099572765547994444199488108788862178124543013932379438011592754717636815779726480180163192652799718207423643072766406666776885025815198440527832015010560768851705345963817227938538263535510997452535525971718375020761248363479593846703188623120585087343842973420471938207537469230453271823216985806862007643446824550695114260504144304777071167646371661557157623195444972088925840457269369395053995126755435129445838599665383313653826630756461932628668071248426757935525527548578409458150464621131716776518183493184788757107671305371980554144477921358461793777581399914938648789580280716887574874405281193833866221454304953705318752898367736448920456938191620944505152850753531203343286055259477469861157610906308568716426479299475201165604795023712773597322887968292564094003613045888511022300836949996847449841110251435411622628592504104020638083082969787437807399234239131839999747842945502551781227363951086200950273987199009318096161722500847171907601826027632783922928483621946411774877691182398568069629399633845380020856528382588421123253007488522400886203078353543961381321465110487662606096817851352805793176465270162412600126615173290050456420066919427208365510388388302847559324221994387818525157686488959310160371543690261239530929340028125006597447898018280219901495798101584594340739313447541491121749556659757402710671081932419075618977080655085960059730927145308364767292527436135894545654852513287636046345394607634772598506757182260668173422181439869783741155920681365469045491388565292210637484604512316766667598713646542098159630527753407266440093905212870014887965923351489135356451857171927035487283519931052784208555866637382640248843240096370789506131591676036525178185078875900176335764608810292956479321239058811416842420178902229156993222454378147265815820400331683642855803510524294876906085837024521373626221829911985781882907694954231292922644291312759491650105491703949859582350165472251730387720668168653461677436292359014616652072836660153839225434810660835123143964764519910387404045603448457080269157814652649874485016099677234875897973026360399675331732665160954009124282470566620532291317111041116438946709832508230923681452604283964780487687033964287850727395479698955132063530356039459485838631705514256142743087560477522529849010549274706972324826897842457712328907995162136427971450646552349292573930232750691110118078310202212319217164922233491554498032067943881468709552465146037426042306390246983870654266082611824368888001939600428503131750776167593086594308059207357813798374627247677918133428910194696507654157791520285917473533059825289314677660446436532065430927749820691637646411073340576113579406578759655220242243610428212316312681191822658766012824721702854889796106660908713408888206129275823086835153121355273639425676941088941157213318179523930978533337147808887527774206883139762434337519085419123871942767315357332521950912960355355912685116807182556484932157591971258234827177085495667005901593679751379270987465672294978001844164904459463276788515335490128990960090598122127272929928107544677224989443480481031715280302834667638333471459068015985162036485734296486948289126375732152163273906467699400524255881209092921515965925587284219996652820790134363700942598216764722098032357130311670531190508008425559061537885253582932736782915136564601676967289444157254701506504111921259487039359545694549353432261952891727609658060214377558374619392373823213628665327142983327388874576650260834638691503168208673396237086064499445291015292655903728098897931665352443256773038178468912762354726915895168195774375793731005975658949470574243015198332139455089219961974340353488298521726165409461619917885343815513246762579961303514951177378144118146037915365404254896912001299597812239929167390394655133644764680412935247773468475630762374176524406332939425521665768744997396308908486398444015774816111026835189313277588984000732787621613437725064606406828863744777365571321823474625021974233618306660613065783903851297905160200552877836408429521809812767534124835299724598721829468038346313677640285271844199466312671355381786908211255169415788337675861886749718188846746922683158315893193203038815512005295308570599570345474568022314219614067498449951927621704077897501539284891885230333204231905070752559013225347090395237538232814814829644222405102103868323038816514387338699495007804841648714105774310562568695238022089802617557425471192142350629116282224064670838831731322505769433342774382678477881048846879349362788090127468720137765305037944929145633568822644818133930766130144080415325980636476882112896481871992127562722070101682082514609071886216646747343994267771818430986705084428856683390090259625581843382389468072952102940836693299465684146055509419593794038874126049267439279295062349128628463924031887365107274851791789364123633620059147492970169883816860492251974747090997717920737670871300385403726081758615671470182520627262826793866028655326328931052681038052908564821731674070639782642708539804747067453124387525812047115253145870022160170704334572479434185094968464532983182179883936985803584767013492785111017431333854368619225682158794663311007152522611694409528268863833186181763924669620192247069665820152242441748711496812842499622344064429369768277143504636615195378775500443517833294450514279697514528251232810428128821173432493402933250220962059253029784953457779450351346128565403111593555038536698615290247938081675117515891194302491626429635875177421710815040647221594547283133477123958085807443748000833324142607742780434491062229621253144481170667372547032893458925491777946423926888706940139525569185296349015783797960688690512236076088985596714440135328006515523307541445626565086673042270311890982295482801031300473506292295355005704213083233351848593055744684488114784698524845388714162114462501418301036476290222133670736113089552960265352955876306638322752256946885646394732568553046384462964975756506599770280349981695376541901690314895094815424451010137788357125199216291852413035120536307614561009924726758437155210514856973143714386902004602994234453038097930423990808573514837505380710547150772678577230223324916025190670471922522509565527206647845274128186445056134807569203855537593274983066014460819312271088806214293802626937681609716478485139388770510408638167804583664009259015684219342748783147158453333613038299225718423195790661573473620027907338447037665459919544679725954660442158650358840943965748476275073065318437169407085512856841179178086568828929501967894331397083462282685730465542107602799966496637055484106481402531734906466859185502304823487180851886221777037975620972144072243660733706770516278758177025381637311032346656387295275149256460177068103422280680709311132280089974429176701889676293305807641309915431979089734094394629524222370828249806528187123796886824608502439667329621685341298707622409690542267893621391382138762149761878054630840182019453537696646934792254191969245074107182773947393379183431300528387630394062201924601088341383512753898164929497574622937602065550229794132556219227185558122068745610170309110431452414612530713671094756009149237713341523374970729482079652606744933559436250129056847289874555590890019866488513273739228955264701968239985516049131143302370413071220064842536940278141455299244317203686308370222659442870805725740237882046000873726078001350573838110969216956890075533012053133036395937972263963637109223486792300756789127436464264895599749213160068723418698765049170335262976462252289403444175861322499403197359716561633670334952099457492613634616786260635803511137243472640661990628414278858606705827320649524730829354559422317448615687553575865314023153283164924505472793591355629745514596730567842495989287934618875935436202228953986533849186996780531102752312010022537062492756372879637304049522665166380547064808987126053101738701587332731287741986995612044844479728711702960365400670680046698003335384582461933053165119796641425453378472505760094727975654025271857817267864899203609861837525447970479943431935326058259684614127740927122811024997769959797980181318363625966476303603681842880920609324660789340478300027619776520773887679325935943611312102646427254216877078950093196015955273422630018750733326015901470537759683130424976720431958459811748950855344424835825154312061117383775095695835665740444431729898555566770412629365968558409561072341084661978202320142757338148464159882874916299902047437347546776580884137318375037194616179561830136682499590206257662438957538244909044183069633608939308516331105929895924542163744379586953966617089381867123330503369601715614884816695100592881251544305097762989485184990780904773511617992584363339026057343729212651636081729221230245706876669669670029494140919836944644339647811804548638732376462405146305881368963971426558470256569891595742404311116704151893848754680762267725189336517786514099276439273738501101188016517910209711809660688876709909512639543558997852725027621853631495674081374225465164128377806247744257142043642666782875679611636468894094881880199505327223852789988813884593137945663434470181938807795141588849097745436815185343626313153742962754664491969565582037829550280615355832378136071109532499203682507022870966011250360662566456970341514910585926245387974695846571678719957005066459853621796445676881036071139939584774189899768641620773600605266739652806782114890040607173279181137310552969299555682967701824482043726314954941236885108066173846486012100340059504350878279166451177435755698375856532612480818612313703307904626884610314730662625826394916785065162585954619592766099985947878026385718190079693978687411032022669486471016962457996573068254201359040798348624474195485223087269662343740078895531962906235429704244323994059472427367511280451287411999319753348662497250969847132744369585026188683507955019280299012506577128965376971782551694489295239640005144522377908690841381430474685826762371085323209801453133375780325690679741678584567162196846909901260050234271780584147821434865052313188502287298219384009406228177621622285622552769298327410881238146875054779252310773144527637843845887231056784786476453375114739047756097995576128996392708683632567957475987879601200791812640942435638110994984440484406002421365195097930239436616798420463453874222714587910753353918792844019150247471253432111178435092267929091476019313047360871299622194184086253322610443039059840330642561943428706599372610411110479001085987530287292291327588138045200052707380962749820677599831073494410047809941481559783861355917124326746519490813624924887947868878805004036890818271079449221603955145237593628612951055870610472788217479999105034512629544148561454270486370694245744303195576674267843820748678546219514370676706775603590366996635904150996805292627494912643349980129607646953466466673142206638684005610970141311280083035159032349336538453993565652519714650192205333841862438668148210068957589919838352416544564905999182561394362639154305520129860554820967381978909156329941891566684348080063418856272015449773718410615604786576728420130291853214309746044742046667576844112506863067537933998170791796709546051781761617307885217577190329369351995739148709161636761590924441537868712437798885510272436800386199851864853175132092099702617436742593133593847891262503235387467469036057405814671148803742911011434559656878400455674300100252926325639800894083035605896741342959266277037883492950672373419765496430987343305167198565090278859763978688651720303156366382504754159608681864514174135702789241192203556705002206976267317671347661655701166388454006487078529100977678475176683484741617017321418364748651014624299555055311841805768643517817477508638976453132315266638400669600268174899931045937273572303768498880118381941047017702345170661265072400603178579062688485140434266405917394987761868079637713932063570534323835260255146625829121140253927464046176959820169631370119910805831622437276588364666480672285954053649269868295832313859806292910311275446927243872662966455981254083860366933014406945447006448412089520255531066684126924837274962461461334269497786725435388878712823019557909620774099495269521178847258799731260875682394944948645388391099780743476463435003955468009527908523246225152863718619924986698834091258032309216760202406952866754685190440695074712296508445997669056738924664087050117474801623575873541436222844595778413588434311810644067620554865330711108336703124709428690072607798493476711389001018992803037269743482756551761584524628681241014743996812631060123925361906084034159115028549732860666942074987512296213598182739375102053313496566520690669161514448319513875477620222023007833973247528580186315486523769067917346977539926456426962853631901946906946524125556621827615515315819721315651282052023992867058838511676143450024734468984527538927391014492593534313838254884837446390584725723987754192899896920647995528697426315493457293462905435136595281201530095411570552011751557858912830068202846185446604054065715954066221978608739073481570845449239656457091815886254763261331425084767643207982501721678072359562959508155293988194454702494802930718468449253013079049602989556468776883187340696179462329268787952297382974121050253089910390469560638913026828245628636237879196168428183571468233579832843976907058346097605003638216482278421414660703689875636022857657673011902449851385395981085433657292766576499413528990609230751677654721788258669124828475191322687830679795035346144121123738431678298817952460575628277703069445332027833805633911753830653383965658971955269797423542522543488861183559066741176594776978666798607491015358821847872030039947347707928477079441170282071184531550957103277962015569695484270214946512957679825647009621960656386804306138241344381795881024354713469968884657300903032156189748920977264062202449462337256929106091791346793107540626984032311126846527918045682000690573902196359582241891635549022686198201607276109548646688543951412686589601961477851648819907968876968235174952193694068608941818398845206667023109095014706241907733931078243217037117968335901504340681833131140602256397325126548115147807502186116753005129973764472121808935612118883353855453540852627996619426166579572854882704748841815464916192617225447909781757139559118470173821687538180437092448852595514117109406317208762138046785346367552709973661813479951082081044797324073808905193684242744709928596880534096838732803342456881724558011347244243770886017306311680620954021022490064675941037970829011187186432047183818760685270304451346998974073413931523386404109512269398267480993759137164961335251094721124176793762949459849263505137663948181048469864985923522733742696558039289691747810238035768249848726723849698355543604625898289598712505192631403281842057931794383468651039087470443049054558162467120620188312158468732259999738074940373743016919579975176855411044553016987073258725555260665258419414709972130211441605480887668751587797486541805140559849993655941268516679627699958666763945161877362747268127144011350406322971462035717310286185022256130689597387259376681996465046464372040522067828409225948330012670268614328221922908457543738373321308322033221323773107784969437951998830615953319354857869966186143927943990668070204661424666991474208765992705292560507090199964207179767092024391807579429217453150167498025021073010689698677739601212428501188250572491988188416006743853735371369802222418798397210826581066107305050674391528567903076242269984475522238515002921593284590889364038837206054184902379147711279924043272421301530456674855386185540374698853776010151585039354492720288873002953229915704997280467375361274089135947300851752704952147532482392718918725521802637520801307070845499539089808104116297172799349519863176628865129341917238224673268749153452365054496923112212839488261147307208189579355255376421104199792893655631365419030569361924552708901991804480443279609807041516244608870471856661959325000328395869537568239839870281123006198073259656257025508928621275751657259864930674705882595055629206033938053994421446413842414217937793023005596950003945797754482986382202361806440007728337622388442625489473820152014652805725199925907542703723049759567431487924537585014362134700221335145309272839616244713134780311419832387057873288190562864954646384780274419285147983366295980424262162847513451100407660468686586425884392859609982504741334915977226951175395537893499204826339208113608422898570030809136137266331811621858417929613811970974032709133784442758947494627967511883500190733181278602694330721308740038983520947669594774562865451624059377208467472302323540253339405286987158720018181470045604759462454143763311299443168427828179513903878774004409690174770512553008220626757066114259167659402298252600485525848712722744104846835758525806290143111038723865914794591838711586650464301338628741436381604888609797175737025409753387573797060686646726604234489520239930283413243778119453178960441589851598318562807008017127129434584734839168964022902568014749973691070288097431432672010591335604252121831148867212755787155055226448513362405953895824398004725685497535444242485856502462010362149657409733619652997181665389802407549140583818713436252376064600939933642580762772029644011183335293342026794381699012580296441146795284819138951763074493884486219326478490665382000073027560280241487092669207910616023953969583164159543436093922754219113880607630633314446627598035610171810899942002929360293774791389021265955288097311144890700203952683885939795391535786592645027512455750982468429768205352921819135262281873322723345871594575978520158270815144394511560383146339185741162144349232420385212617213156959405308454178400989452659852376697086082566470817785731162289363261692589876841353629846680737715356119953476050458922518218681070192496150181326817082814002628296868768431859316535162874237736570019220288418801595299951317262445028448255113927527397332601626897506765887280044170679061359330172993225617021158202105661087921005217577486580261895760945013680442100798056203519406051018666206277797672568752065641965601787836183223733010401861910027654059442780935956044029216733034553338741999467124933120122972828994538037186522605681908750799021091228382118865022214290887995833282763977004062555323233763183733606014535390286012453142606678894373217960857054791781437820530331832838877005664532280194887508780547164537353359667399019559533371293303108046350285429769509864400034121000801356160681199063898993433770797415182162927281850551268259346596237402011813732852906986017132449543600997982927236584953979967691124896636990475548427043449910913194888974064841174421697340227302021817383330574094795039109296334004914497378401693917650014933814642001425921206105501322452928330051039498233015551043586467739215505391369901525819163740969235706536573829062260359420564845183561407004961366960250107039156636561201375024229175318341777845969395391337669040885006874263809294975633328328260524322551472847935573208765814735501904963059275299344566017520275768355396044548894473520727519533260570619614359440583862155453120909069608764382233018691178187655223384104332567749594981396457994086983678506703632815647517584506271522164307001415268350330826642722376144979780373998406857005537171401063792441277320754080943616529769276325661215516507231441305382099397091072823554657211649274954293349039459696725691028953409953091459435256451859906376736264293921375108724036424493454592721996945625320499695954501838420036875128404708392763248341178529280687435622677737649995159166831293994378213669224553326086100636870490688703744262687475370495087729666902928669434872424160547718298297266011262901390771629015663743944516817295382413867314211779475319911299634397723654560155220653907861632830808546846791135363103867811263192500521628093049457968024008992487882944887607805116269256779019625522235730788109233951244636907851928891692289696136382488922623686130500928898397157803382922749760289956506017845454424152136322511365099688498693357253784954654372567243725735652823322517407042106976891797684323777878640530860181161456974524828604758898701912084615577702190380001037550223128176189800928446456759838329053450427245976983004124605202002348349780348875230724941141597738936211696700714964963253036393349864415101346864259196389256287929069715374533229483087409071259758686612030745187959088547469021030744440793095292434502486616033602632370271603688790217451366586251764231653209659425390038879851050663996550641851057485716308642404114097516069317368679699939063240294315389353159910118220438678341149858458059958928112643811936092026745936286889415105618216214663331287897995210402706826377549812446803880900615757634024028016773611267524341742210911229920215703645317188257183659834340175878111301064107189807278172369762659292643220860894830871634712614315137127779583301672348093185750535655016879554709734500357897514999477340860812491494928602304869924533469530600953538555526831531510668154583160834431411126055275552723778288320932547359086704128487067552466827336075763739931583397194952139506992628852453943927951321082637656233726546832947050842542405984756864983215101978409754348622849640701895195099980014105919582474601203334134690522103167768667958968772249790150838211005539429405365507070576623304035717021793395606078999771905082830168632275569640171146825863902690344605790200652933078728715650159359900148023763738115280225303410798598247514076494359443095439658556449207997283027261776137577101632275948312297908367578928806910081803060995199790810609677250704544622777814928966551714776611548933726433343232752584229998323287047334920020048496166779770752355364909137368461827924751994452475138408418825597661605185212313439642320080135467202082243126816967565989505658980531229188230784262178264214122751828607323857802130872603777823732525822834454017093548929977922893702899253132619190708418052614416044222448098982483021372126307387517722997728762479098739179898314181264711984554691159453451283448790362130157200964367608049107708141131514796308660660382005982948608236390190976455376896480451521116349858901415073008628677588276139942246078252752237928124789761394030468910822822019878955166697545824696278179090156082948711106545398591010132404235003508066340237812725711065156408480973597000217805943998956418188702559629181510078257285115654795903706194290776782686510778428478614120581825602098512345049189496289364618850925132807729405337580456987568742865321444624730094608518436843630075944576513263932959275725884965806572873081468994710184573214699449165299992616916343476564257065288469570507863413026551031440793071990376528534844846228707243456687211399938864419576453514121710563324117365339138328416922059497218360915814571101218089311032077065093395693735427159368880803308465151532092460713893599508783128017039208732120459844440617672722907626309198551471643743629166849201620534598557389263448415938547500995851557758213684867875301529725113638973784419153353410517176259384149037343950952720953233650763424034116041529287940185513543961010932704747984737901620100569229656959100755237835788434799227984110304011871911298028817366903137332068596552095868605315905724658580202451675343818601043546076876686524404527193726643701264238749803314238174196541476842235637373359733527512185693055815567506533330053663985543032121308235086869449630827242147573582275100003576140925745642750944832359517328689749643172493829313910169114621046633947658759687311756343496782897188698261810026965820649466403015582050820209840511884010535381586202136933640629620143819892094273962542798127733347244759711367629230331147557643129394927869699271447752198983624478639468059825600271265427415833894796786513751768085969388699995211601123497490615841227802141185807896357960524863866728923084509307577840671790288739903986666194286600672980752029576759314945491711426205003752955354071936639993116472259380116805431141164327975549677348717149991140796411423934564234627581937352564504471044480652091205117952385507247876608237828940014203094329936588778372928615615625564497551658765917580844372592575944222191059076296249988604997320890321044356086504064016993466356181327826824178875984865750228972822466196411256283148963387878386110566926736669547604681456353410176690688172328798802711491522314209774019030454420459751610160107487766002340518088889153617849984015356221463238069568747803776599103234619876652721797454390405819402971647760761188954789410770434572603424107158803836794987282875356151125307664029086719633073125663189097213878910842485899543758769904607875643456130327765577295014414938052478879018685955287577053815274638264920456971027040157632816665648638162143206975205485297931375294837343312677448009901092760663394910230774890794052502283236368005207588270012376185192252380072805255921339139742001198081555531989632786086044143096070065267469935817704166755192121613066052274159300375766626762493167686277348488001175835442906704416173388839589633794680375755331783812804169995336990465601712167572876700938898723607865219510861678903934625188252909478566051711007025697386690804804898340338182447493100341404138240028707109823797183458401671939955231756266978842770793778615190414496413717042074412846585589462020915438733978366920911582870407602533440187895226128505428298715876465113806520446633261486295821796471394007044996505697153456745980314102396645837656959338881098931065487772095155237594314833339299549055856733728262278128472920823367673355059389721848762900152459644385605436763819977069173889869153715664972801044164116595710936511196721126147806114261419914522911644974556171406031812198260375314771148907384296566283135745219807991451340994867400880722052423147590910452380687801668616946266500559302425055948952734915244563032960110181135885997225873099333897298937249014664424962280888867578574709510513771862241077022292014328985375991404844346693614348492007714862747234481503765213982247329075446446197847803812253624155749067901288411845739838888055763741825511414931599708568808608035120236692369653383281754499652043712548982882898190588917695970070620470682077226017935008888377654228676943881684134059750321091007671276713704008042032019935251599879951857661484005996995211002329130556193139436272207947833239027010724847629794568760220690195935004856212168228562889930913044546881843868925021231381766929362652629757991632758455228603715592121548674497234239089578291155257314147174416404098401270909418141487761902365452754248257455075829835376646166184802611232202297628127988527608629638715462234241685130750004418931582162620724071431486903087892018453722019176158345934331248268949626651063608368397789762127858193127921312446297816568048737424481780566445893606758810483981862138478234777861230714155072764884261242247265985211095992878846813826249169313135931086899857400520380866799296388160141224329272306789556686474619804996474949958542547574811924636644558192149070199101401551720296062291978439947846590934009183355400412238417929455902545402900375981840937771021211745500290572878681646931611626384109150461080469224673778813527338048088315374020973844402467387724055033284265548978890844337072649463664219014660569794064862902682499986614733540743592013951827472918690105826162074317495276276933508824310726483740929902506273079866604677182025400094320929178560703152616401255921144473330188044396834504226257498270691285682726260776171372477698651921713208505670743943594347899553226201454075512681985974268816804760794479928861254831244008223934822851610345725628915919518532623790874419709743614631021317506871671010060125660235313224253005576804799605442546537938363101873577304157449244295422041092337386854433017917126519714087345610092198605868399343205620792780004874030509158694917914527431025946787618916840201255391711357507912886755949718920482660571876416254941073301683410967600783182666369647170084061237310587387471242010077824327647147390919568295672319585101424135931850258228743214032806988938757316593755045456116631536569767293474773066996006851526044793795905556256089131461570663996975096358757486474636467348568241359428039962365018688250763030039421961984660684339196302924067499884055865949514971108652190914859922568933670619159995958775346206993817090110556120687833269324506083169534971484682250761307528316058094750587411533019945813140805718069072074548372462338898723967659207240969898408582689438476449849249702649188454440279223684178663498154074438632629982320135326458335576849108835290865602622111524879662305137867816296860860931924363273749845149282914689886024081163716815165791344226284214731033012234112443846919625014643575616927821669471493169829622572394105334179682622326091938898273221703658782364502565717367411810409669347972695884056257750265859156875830614830866061299600089495935945912371424619029551747040966682185855943336514001693299148038599712555829454940436968288512953213023686571456341164055785711605294721362043849843827301247239365480259069864766058680875619808702002950827737815061201137964842602250206082460447405329814167717366427227716421561550063026145281269063574922108381638270598602278560031342095104551570795310938577587565344638302059440186112304721699844048898737694887091097611207435742140040073971856532229949244305165191991752286853682160734761158555776513335612326458412714030626195087448132442415734214168830358567903691285403410770066556525799712088908628313445152011741094947809046761137964666337675269947744238374945878169020539484789312362503062179366163058496371451734528710145360207382040491489255569676096857874251862467579566130391409047248050164408272172289757740445153547375834091964176487676107427504657778283963019030905184238591423173627905581009312421101086507052003274088051367496702141479994683477641074160836176628190535114930769578011527851100625944102504999119880518444281866347591663295363820397472857534049866246015990179041426987054038332395492374855018141332959657376821018126250545180543920660932186750619818392012549223352692593441495320453915751389179836007742105735743292549066808412220176736597055214220952480516812246605235847617560179817443211647238756515216474352203511709889120078680250621756313874562559148036863473285362024354201098123092254387298571009254484022862474874835478723155251313869863595189479973824403066311381831523799200347320860945253128494992085957729402726526734303803060943572349751376808798520775165282769304308733628671532558790875792835088759546480511170087470896748510992561345924738321413553820149374164473960311358649888374184065804136818984473709591874366089833065470231579329075077507481551945047533002555137545499844136787492997269567442047089856511431778892407141728907072161033992682048730157677663313573196254309930839998254117915156015721830683131051797080763421627078026352007668019801739484059661794745428333396952576774988464822082990346904808921945609521464615210712696570017572223082283278505043123912083302719663718623510643286411440519670796509420773382731357542427783923629472915523637526994829018486750823731509213152162854720551118672733167670892915653860355494944834238993583951358219652827163734343017587341798570906499542567557530708842549401916919901283476408796836637577035316769286458673943905960749602371285445319102284633079256835481292311231914948595369019832749663998465361940195020887954015784006132269224508765796654271634915945550234760254981526305247907991337099844126211129463720741274569136711690038579868490645096109744499791654529581427922441060408066550791637549408045798984447916863614588235555774772825932292926218622900130498197721380068038147705097260534709704736139774177489305174139769206990733375252047784867451439650540855683404430174891374459134402047777587416431205718193932292099724060906756778881513449969373432401455686158876127740608177852403449556052320880021844396085309080922722205229035961272455016878410946091845513751455849662688690872549372638876812069917863751305999923146495830885939541419524905985277413181234673379900247350045495712078404040350504288493708017703165572677748338630953025228870581223804685943207584820727531621140825553073679732188623279719172713452362794252432104760801923744672449738833248185244105761629124193474485070820134479832605753554108240078065398928522683423590330755480609446421012491274756609351940915864662401807999287006345694090071714283772230807858241652292498186229890789036142373057962379898495780092487509416160657310314153058085788133509086013344659988289794891794108871478641430745028816775866270823501448720437345126859979056500908841768533495208293181087788409684370372515109526204025521301285250557893568642680648610259346931164918777090171296459009765036609969795959444726471644279891545836549390300582704251881871518537054686269133414946436425937444216441744515456209429363708269390682898186896285403209709359900684686498842521877449484389956164285946416619196861208826766834294551945153492967186113160806345593977161665309977774041406749689555848085912581817030093198690584653280971160398190863417239150423758643293616862495697121640601907980699478572682101578498535961364475829203364115231733898278823244272257676293385186601162337896904445051298563022753806282668029350202800084808637431056331608267762968857964478746050816910468635346339226618060702177807456079163121148151728403167550186465177717911748819869701649318048060936020103918266661158654091476696296298426617073262591393068710658967136917043289532389285210710010065946197947332643387974682322850271115021421164577462456292943624848794008485446064225452672810877009374972659134211115314030437479096786135352269284959889012565671905347028153734762630423117606998943254642762897295716291674202243030798865818668482790991824425760489377842585911335376929884550230691112926704636085572569927599570410400262844427884090035525960941804925786938823854444107423203664256024582267074659849452508994544484976293041247521552456656699968245073524133606851183051831039460690667793962641656766002582982145142730007063411604559115471111990577509503596368506732107319412597006191556776736042781771491453472919566599534846952395292082069628277751113735796672488531016913885696946719879554307593363119074786871471521401544096098031219306681834528846655367825396004849167487538321973433684255949510907871824844538539860976383284024630611825841181392982550922354907144099228315117770271795223976731287006631239643156539655277401280708237729732748923194254679630847137744704715915719872669452410712429716317204914805679790126747794897000710144652834314238503439167523129413153289159481599635931811688776368483318997192749081733039785759110068608001673509485146543077341705417201685154429169825326790227354833544875301556544367909365871649702182846532047429562071826421767886577857054274502546540915220795968303996846310042176629238096153096738490096012348560974754205877040711915143069154587227272053716903948398966605223924291679034710149947168538136011716933514377539935947350354822056828232118762389193727183438999162098183780894932907749868893936725873225571745574796675357235743644905111587763456108118605290779995280014022561764280331419149261705165162603623599969619610417269930314455228178354733710010736169025001461619840599271081636318074910276999104599618639889913977110200038189489869222895211999032501157298292619120395205771794531054141972107549423711913502493182392598306986658516735799629024833784792920076950093947304094386516388023619553514155637433165701387625334119842912985619955308673905688732653166358440940992286716916189009980142882200173134990308461819331427912561503577850454769671534816124689681927503503213020712994308789519524023530846382622644752003984800687413092325925700066680460461095434679306409162715670192377564401909084542906790111419590474691958738204338141584838802318460961896727228447583426717193974620656440016451774342095180010578956657525794232286512373144289769276609723195330160253938702995553496939097891389429573976646778994347042471944132961240027342496905958282343329828854545629357990145599055335203293138132712805550755832923015210736204141910725077559215133932164781736632765029565659709279376997314890525054062100075509800967884067435741988954465864019484933436643451719379665527657695806565304970645020380422180522768615930661186062579759827245032027964149515817574594190380467257347795812991540000760516568397318529100144469634011518745658421005090587281428523861647080626365756350070534146412840908837232212862461117848279222428333686840035536287208851209061212567309951591270690766533110917829382447489138589763691309025279322949167583137553160128008858488774206439845440424677187725971356727701561676712955474733120133848920494413063279523870170667750417366253021784443398238246205543714361841510258500076851189030696636485403672800735275117460885763402899732918060761939756250363062431555838848634041777736445968201284465755087206501681105435487143662238442142733743171706639694656107989388920938622401010705854291018091901389614385717757873409534317310007525442734562322326447815947167517935303705330639843437535225143546902447508126869684538792047082131727969310187792658302321230906386196487101120810932841121044835889778449115147667425916510316780259848685795743420851034545458845251824386151147693627246363457431086092227685482997882486186963989915250048657146307819830523429770706596306991119130013638865924745985044629133262656065086331863345897072680084989628036504426445359913622496403432145389268039983523613482839312894999360609443787768504055310577228685424859678408317353097421305053572692838799178523735013584540726823235809660765610671803956263904945144967364357384507281875760932141091647424962254616562192595330738771540896364153476066677763858035078665737793658905574480378792457623146980430126436080377732539004155359227629779153766522561744638828255998935476252657807356086656475597981160493705977243976884946124612922540695661679222592063186190878090985449187443762863834822059771410982055488982698324223771324105800035206167051267095762348352028947705957918331758930717026795253880912414803682928785031693660952123173277036550408496101110323644135260543340555252214165928603876012279583606127936760860538555804257001032571039723008550439576949249163341453874708749389085990452963127794416117007811823476960569911675370861177064818990962532735519641015702878892728568077970877601423532191675151029413849025454406010829653725186823970232100021968522599942437200967767980922711435579129943197274111759674477241285509517306864017257962398559089332737724603185955758943962064031436725592870925511932823345192282282176969895346991699591378904418341879767883641319101044671593292239268431223831145320780656629603125490034649337911911562082263228486614248907555141421832665732101929257286791304727207206125287911659507777941879808203975933950694700754485078091131374713037886518286721522599971097212266215883918098788347664176117529287635854515708387367019039536416548502913481373013255576389353060285854792155766681542777221215518028851502331671987479749384538872044884413558807035860750075874361442604200516089269845946976465612063342908867522610371669168455271859008365661078872497783009195814875821169751038801933124939258018228152486336002322433543160200341041013123716330624938370428671380413997666265207424028593733829449616948068744399617754151348853612107061231836887643697132944381484022295415703680665975930271107839243019914765871240692352958841642228671708630736161371720114696548799965866415711841874852396481003103126090243752266720993109743872686616600531043977251531364736977116811230258334201300721006706616265408357894421245839971310993897062743597840553546837663525911564142387190651048490081805883736280026443780417522102378959367998749352165175229924297146856140953155555386082781427909858555052527867398578665091475901131914208153167932141288302894204292372018260347924786127681707305477046609559256146377427971709259788952472566092030571558481262042736152907700165321888552429438213430775516018832957123330757021648127764914512403354428936449175800483835973695540596992932947006006484426736507782968120314472831101577833970719361796816640970927151711678636849162474689121418427689794523766639237885596895872366611867768314936192283617862207724189906805916928249187281453537365670226271465673799578299050066561699128309139629086182454812055077978695669331279353440241552427957009367421506457351691171174458973773552339165576476747969103062729783738608595964416289066133211042485720945072943178220036060616240990104465497796941147820550250196009241992436622478246845513818087941821727620605791439280274577938491058051312663680452569002922832752871746949027338051050091991938295341520418362740357883506460621539226470012492692818472886980667312814534721483984754711826100730792975981402909147545106669696539033644560634452031236443398588486978987354746546352980016441344505424076931632233593328531086536179401600381480181807642009085172343306528559371113618512453884275802372301323705930393387302338267615372294061972722171826761044678860331632915976544268984154887748886259865468488680030976566859040525404705781101369796483047410049560590735068790300902502532824205234869954883369242424503272791004971832345172800822218052398524213419775385148646414173410856941687261183563523300910190201765960013980304422578842895614169311222895800277243039126867866504707341876260507907167300095482739957670248442688991021004290165861737282160014352446907057198586645171764929197921070280461180147078745510325518712712972997896162213442913247550538921539010763164481976350434742536543848036869211388903863748871979076908448811373736732445396029429823023956553073243367255609238193043638088846029646533049135624096378312553741273380318090980493903853055820894435821716971408204205976585405232598114806506753371761892347876724460444345572812226187961169679301517874913253057452620511550694076969929724702704096197700319572091599277277316742916395291932790898689387353012075761081140538372734820650349217426827285131593256173635122698956400027834688638160644958435728188609684826971298940856787837540275175483833394248353382105304708091934848847201665915236528821383548639882003205634680680944325289445806743699277486154732971196746749834681683236742477406698702146530394276860522848498447729410837488575260405929013391603123619624640816011625231762589458096443824527857536326589030520617858106233464613928680003540212495392079092630810814565419718187838332719280226881139888345148399486411011499449726296855669880198463342885653935712101710267705042365336379919332938511466796152166745984310379220462973340142589382632128013034367196453348266913001871283086492187791599785310412398027764437840445878213293104060668183584213138141566985111893545501847317156125628222299798975476663814183481055688356743864838734214301311648554235870544889109341493933015501497656030645434969939971511780248840761123170492421414079340737172798134291705099617740214890938886781020875278186522663041292213508963472129347655516321244261836427729404590416985167854314773500724304070087489003506262281777508329294806429898797776319942669722312944858756826541313536719883651692693603152926415562007452820024467815801200099709907648126837627318881497457087425660339443579457319336872565808364803852487760377892915722264075167207980899299180063136217856602849441378526585364917989447107390180922242932831403445281018882354187269720992364801058611960074982291168264106362476848806597099293642294307998696693783211787715047478938667707888840520191588930209624663013903695620066819925665554301154120463185242243383482351337824509246176400905230995168083466840195544480058861444402594973476283545951848737549567722088048429888203287811305969991075077688104530414651271212715738524715819589215095885372154113475012316278870394318933482565231521794600616102280670866826476768912012619547104573470921601377096384731291130991252655719822899882762028749930186051243778355945421031909022891474832497682243512403165953099497177454325188327312532796194818773814470883213509440693060997306091114105901432935568776486382661192313441709675622045417281907876530661442901526812148585814788713304855821681357895039152150350203005821991680847177719105418150633663195357002755189058875966403682875545283321619630397312274436814460292654798959695190073865887648926152338143290520931163080387175096234465744606683593182385749286803551291400760630631085536592267808208398876915602578843332742473780566975491460248597567013206567456800226509891549114333044523053497615759376208741917668515162859757714375947773264192247342294636949907003277026385636413053091647781883006370180140894996898531291448062373701553229029321607617883910797605836281405222815572388102529904819547283152356309733172697098618027463179711810660126349731341254341498790022312329358429697957733682240532107005576520618667659151635048682934939907908498737897367056172995094962541349519431906579639532977141777724276932896855536903956900668166940398207281515987758907654044747143530648754814566066452092398112494407282333849773762499998308751003462674020637331288444360518462230029902614420073079491772638601125576690743635641482585634634332784324871338742469006194664060838674461698874569553768633590735200548624932801656830956333739943707487542340991522747685658104451301032062458619021367784876246279199506658098748364147062985378132429025452233612714000956927908276973300163444649437756790103047203541951872672009177863589960225976272912756035816769396223429877515966663545572500872369963670910125659320268994707159347900374675488686000910372903948391862632175285587650845812421753719774066191995951099799600605431767185995499233782150591082625681654460976967943860226959623037622366008293836935992386803259751999412288881225733709249636904291996763980737297710167343602682745100340403629246494580690236006840729629168594320676154350708942384084645567288694271972062183089945707995255597746622733541337799724884783330220820941219214201492830512549988709309316843425567904202401823784505574829630276987634580525591328717782795905086594089609293295358461226585549267301112967328807531968842251930189539634365839458161241090988890525779286341592257747515904538636354951200921324034916093894126200498771121248739665072422455532270785526768736583950689911066552281876362232767967210567197557491457678787443843321488884588226988483480068946173826783243461703649667561792511210893009119792460855105389933636719605266299801709960043362411457463871313468331720159291769806733132596428766430223452237618532988841548065726260388653280598143867278997700540336643697429013769429712357161905914822293033715693061208571069009011226259098297562677074302614290807362435309248174910800031056628626864998894342979768835861788634071312287053242916500712997240330394673691514352384206258299975812364213240958436766402838635635081111747836383471512221410361799095252591811011088968818625603575407313517705351254188322253277227570885642083415478530025742422801330412617557508904815715557566338594403170361981434405962650813713422297162897015147061627874357444873866911728065805579981716837422947065088583248704803217524703293467864661953145143198084529874716234801158485635190365293911338022935988517324217048091557852598337958724293659906558843322235660013868610278795117219870595607077550716205848584060799307407468864248781586222669637419202421402776824972559933370919311965411960421888335433620537767696656832310750791500149797504998647114154588266504731009335444927753223273216600230623291279340980708892710595692213720682375849402398136768361091421784022252868874428329301685308485530302719224136228413153104473995094859065395072164504422293194218004557765319377550434248385643784860119027426674628734291903691723157923543744603076930298668746627934943986391811442810126312455513506420870396978485230702935917252448286927072184602113460261790611200634686643019559316743533804486452287372951707218967807632283180014708686735444321811466511581173604231086787902127752661316931831040481312327500060782291000597779196555131187946295387047152903138912717373597163668034240518316122542436687802507701152174214423523952449211323826360855032941240382057256414196008141334808698748419195035766272909297274173143982012136887740422677285257095407124032288260208112405315926416675279446823357084703306177134817234758362768159744824907894287629153839904248252179908422394681214912100519115666788974501757361911908530323870272250753180524973822029138605424674559303998139107219600008974933716119968099302092776978098756548664071076412634969653679091153338009887640344095894949841150891623886321925422893505102916113632274242454718258077239799657364446599147009239182787446463285328351908911786479294430965214602089942538284020337306392664335243097131698714554248600654459582749936682444088999826690316956805226130410947537539643867627667801602284897492135750669128024476250591520645243753061069161338832220293057401359790563890489271000133524305595020804802338965423501633925764660200786265136221484637592390694716562854358365293994511949711438863406001036272964491136300315414621238581520556307512211206277869150594914549572490587369261767658932970664745489103380744711341908176796941440023487951439724039835555321332218833102238178050568761366519974998953161662954825751300274660066564075509313083706872857852906969476628774981794773445048132222141663020730684825934578520194495697644776618609664088779632580704594574626602963657294006401887621493245923388117294312528946906623888368797512069687596093246749397695153046386556643496059777894148871340480298833784387471923078276645509229549445838398164882297431804890147427875464886529861520285930853577545439379370105498099242975011762436370969032797592429334177575353213075700528230862882980090775186100773840055224832870161836781059206835322891335873698217766179220713420302110851080000984433157337103514763864210490025940316117586065404331731092055102328867527405235928072195073522001696049531485855685237416078572323091603930442606563004184945450882032875470683174314150971778710251713161652739612524957890974754276225232092319016966865973386166208929452578088944763893814706963208637447901598603854942219935323230176545699133391752858866383565999529304107690988741119703944225395017433480496367024120248560913684870412473813633433569556797887706610503904145434971535310898633611448518022736261572288942329262231991171049738578102598550742289321274317888337565707994851519677746019622242083370140287003657395365689182519977209978835668429170164664286567976742868287828570919880022548828397389455316426361548536263821055389788366236721488756428464674802315744966566375744919218141209375371496299327988180391167051410863619220986225780278839634962855716951183726997874510593959943857308125443873732939361188738100709301608963093967462524062244251279228335635964469548463909031877165800190420115158551320303860476600095808822277511937384780402491858273479729648476442460957311824048363290896970219804983939840674179517862332547420800183493179977153480122432374993781632582013693343937134470700374053845058258117987074285178816910285716493042685720928964345911447479190606936300853313985671360870595441625870634954905852511101387771246360703617466277773880530505437242277313456543224636353618302446851398967834854867884004882260373989077592374495585474383276152568623736019324414556075609967028184408247871291511300064018353733495616979856921891352377777564928353570056678348032642554354427957658836075213134120521329929876007399544416149183275423548171216466338928959445588669080211834488853421914009540520169895205419160748063754972705400172249443335325963818938459474240329408529811989723793983658758872306056437458108839641490180740453386146679813213600576488922851785988045430271673317066212210473836860512497861285826490051508153540972386007080083110636004805278257314320200931532586420935147849375319024319509892312968090008104476553587179231400833239049869896519529931218053923231427309754977049087243563724628584446264206087187676847766423988724658043019454040161276157228951380875793107698015653396802785943424687836179353001906861586690310973058719021990536992678791794549142052224708759553234583284240948068390530482902434213103226329042007282303400588833754196933992634999074748163492281911494928284575085397786770658021354491272814786137388048805010946821199929866228137217744387623591830053504988663479054571592644274330654774060930293450187695396100740853843160839843696365668179997607092092491841112448400277058340623915278828536071684059655891202356403181735382438236768274747322229216447505765783868615359694341004264602405673179111887927152649575486535202356724165680995848783139167390075758558535277421803950634873679628828225985173585120108843298228819444156590571408864837257519601029412694735868860372280408273985864312511404971354082420701326090455914435232293972408581426717336167665952808431869808255162428054954177968866638932872476173985335962045715865730511360079556371736678135657883770507622531912940292274203142997005799648136630385250245924862110999625219976488482336945077740930323892815241110696007896654292584605295180008861843961215911084978792667743226864120352265722073944900713368891488805042853400165775114953711638285294872763811588383006857478045753008199181771936238954084113989960811917294263733342668402142363186359621724716333347039220680613329424896058520502129719043006318856944198060918095534819350986502001416557560817334978018118040442797420015829959905771225743069398375139735453466172807778980357668070710610040036506400194444192525651642134064590565675970057124626661691530787639267029306066994560134119961764061055452941933075175322551799189548528498408846894698395338041656853680261744600023310525444489759796837070423949478245564563654510688751932481127419953094506822299869393088843198444941299889068530949360721749799559631268730016858665656195776835608779058720448957214004825947785743506315279353670080707256622964378001670430536661375464135714698625113495135723752556435068966586507977782470831562874846118313785369085396811238866876978445159751248878994103091126353880367446222443633408875876319478831749237152298103050724714190406330610450775555974426001241104324633184446406966426532959461740742097938269428479530607645086058608080400296172000644759642801886861656376302780039514122400625589492585572446530515202903050010252846549309630144358817640274790166263273178127577573659714892693459230501342104624033068899805947440807932108473920565492713261237829284532266623055800349916721188204539585878320833071930875359931067607886383106405476985234152135003853457324214176061695548988058702466931317419677764119047296058499147406126115653361929057739233329026565623774370977496752633221461789272727076250780152510424543001534702633212374588554028306065974500932282808960480780485064718743468035656411834935943708801463141709333875557702027062622070084033133804079604799985836308621185301388591038953333153525233708334470213126508510517255667980284947911212001579522335289224312995992935520933800625746363662907545065323509610085561975548091498570787701518911279590717069997557013703520580269164025511848907492523144978567888309539986517430103971680968531231264046777402838556252113264177124047508101606156958130838072284487297253273910130706865498141523603980755291136651540265410449544100580203347709439372031880412890281614870302292306806799244763103579280681628521160752764843849375331784848854180534347301280411932771524011712036205640404494081527880116118189585917514159536471258890860541767702493669775674219256640904374623137599054343268598542760084923638632288800985599978879323821358065563522682603155416063334218673335308610840977794256114476002397881877273726605889820101756389512076126482566040843990236468173500406809882863671283717114554447871205541791942859107044296912458251290371420276549594594387729032445800086304313560021863312538426457349588577881369783288810895720621729900883473517616514869340329154085625804540617149827625533898708914569257802081011691606593568375439673474440213502955289969767042075024493930155702582394118072136310778518033857941253153640516513475556505959883015609568188801644942232519599884810302575483722171295652095179331163848217374852783001121758444995060368390613975568099099580482978084962240259447139069697311597393985809199037357857408670377834498367791979822355347574355265198966477849026356433787412490750968145522485088698826797547888697214401046342352774470556958698512812084986597468951956413431254327408229971111211656512117367760756250405782136222819384525825502422318108446549140291612154573455465222000621524860256100191731917579872290393538907156683999104983557572192333976920010538892495496952764229188191800678983905257258433881047891126265074006893212597841432208859781477572634788020586793636771898324705983227914718523245186675228133187572880965736414499308734851720837670975830371234756392672347022444190872510716316701346799889981262286977358914107216107524114906960711814820147496936381827213722366890973219651708229204755489800275234817122484957900268325125874120097229926730029318595583564635769477885453913836856098086094844713755342279041828511413168358028395335152363188770065301706981030302656542404139542068716347120318582032421209346136110114857234856897202934991670757119981589895264714902237849259724906952037077526969994195238648511715378833509396645186834425532940856596853024097993829405631495291532672216153347575754239426898844345724304677572538443727298301448353753360287951633924471826692524691944358888107851247032662756208694182551794041153566802382004633523683528868973297459721535313503554649925157624131167119033320957911964576614597620522703820312901488440168114317571097891553816840371132512003538941618580737013205010385045629372201167781825074444515506042720549844514067307558174331346348378830220717917770400695677605475389916589328440473356817653316749594084367440310785115790042076826285639076238384245851014965205401618733119961786029160100531947081915870590499564446743408471366400293908422370129758377114186859412655414509020032684722105723979162567141912015816237837624210295683096460217240589098907097533924347916711585750304296853324526104439505002916546347188195747533402283918158772758248350598507054144166733089031464666321548604844013938933887588729401178344523336778785804739491680293257534701284706219850414757396433223778871069509432768075570535821641239089034800085148636585338600104214526652041876811112258564462564085793567366149525460150205664366424438661634952257530841463462464016626208811572141331847709231955396036870815668258019206930937052290020033913114808520958396831693895409997880917886111161791733943927543675596352990820206788091311514730794153225045314842603115888025625650805390764516094744750918761670466630129141731587325322398813704524082080855663496664956525805161778744878378770733761699692570929323558752915743860884801463855327713330326357665162532154472642407620697725183876616107966704475011508965122562045191568460581347748086123261111414724893028289717496972269539003017531622170486055674586228133368436159653984410827304185656718793607425917844204793957158256310960312776286026612705357524128146957530367942075125548440455829850201955696087431865702492436553483123997937504952411839746593419228588411771220426441997966741532215479522882096111433731380828730281785539492385566230409873181981651456733510112800152841802035400814816341431405239595875382305813083832171806544535002143785403488101625611696065945224980659106821816273225171376547203750524538845357596902773920484043618128930262277858672941419729006680216315684401818475449215717949900139881558450546653312290781149753697640906220067065961010886367436836602085834029176176663664611739423090592911511527272107685599111355090884320246038264640564661958674959598293946983408729099796493641482138430881924069894502762288194869800599709386204275925909612695454897634206375115547669734018992427768466000268447844003353096588275584690806785300693463217165147357478496397267572722816765078981677762750088397830642126674198924244737624177067563462822628413714285517726941576589350804190398229452000334853536850882692784815053018084894974284779333226344325078304413333153821710512838059751930567162530433777835290591692245296565557461333724516912479343291946779781940212721737727373485510165858079053673850912369517872267776425011297283439467744657266991161207340939792810850210409578722006561321161377664644865729770755806877594390945019660987171487602339973772873160370794622287064639038544709239028307578141816938741171857895196180612732658762132997105483425885668250710019803601952996752838388250398513777955120574161265054329083751865848212894498064987192545871521519681245799575502337250105736536477161761368339009837747711006728766089613155394213398575840806144152854239202700023841369020569716490913720659000105012397676201411711204915370611947055314679324161333296192869788287864662243414618262052170972480715653180555666127592451567078337109184053809372776978143701203920957842020631115159766896655065110435706275156646851468627416602130507349111452400096865282609421282446018461308933801360275132328627284860302035137090983710926443637799877955257325444222323566330889876536588247974345632050216410644932869700147489957569280467036986253034341341184592813645161976443202515290302281636717519391028022742963892789474942662105684594157789872510703008901790110286366563665936547254944517226704222586122759268177059091689166673299003051497416437165300878586313758823205170334669598178176888356576629705900683357100326225068582840870396677234342902179520518081844601631381495979978053880435790406444821266941633653487809703533795095442720960047593901502734733987290415581586539197689594700148478788919090706414176966397500595257117926828453230189510768353342111743861424893772487245179279130033578957331191515414309193560002398535259121702934698250695508460642655825594224880799669732350168564556118900565931576300525197253406106746310951890878052002736679654128082474838036883463326336595991220152788445704060120664757764696575078668895916644529205978492028483831880655123534003999251041149961658704979677237822081678963605205646739190337523134748975918280502405021806348118327353720276440468004091169513616194335914349524276272202445517991654440501491234094333129016471961776835023956007857394115099697073669343750429512009188647895361833886093790531281470121360563203947960514829934372683617817483382113761107372353847196593632396733108455874400344218986332767515717554153889908157367843622200206084218496362311981739942616887247314185651915337309621576971282182783000013469076690727831766384596279043093670585205470642907053832334819792447310553947074772018481301201207071288475866375089482399520973294623308812346271700614697603797407797061694712502601081275687130454434959692102344607164858523261112937119325051640968671028657942344155550500261698112996243420413120348918047428285479334039611161258799096160584396726483660702530607853033534630358996014531924976916544924295224260066792817313424721483144282865064437526764956370515755787230531826655541328882284929473193341709139452158509895268360301929803521606386425214284785384824679554861304688688625680091887767176539644589487900078776297870025488751082501158787206605249649830363644355380073371728627302802594001963801929771178475452577355842188380741940500611261922351327652375344524595508766794187488942695700383634591710327166078959017965148322087578037658661932745085170384355092034231002053351644109578965088522210765256360002567270081987122287575006635641211912380692488511661470985107911730438438777329190204194970993073836450867605611560654604090703790947066130454467357557126963389028356169782670128775102238782678883689013710384000276988269870051824867022301709274219891647308910191509579880480081879903934385176370726372219612524037111874803495159219579022463113277636119638205208041301575290633227652914289916843961582741936279346807256587890516645193202865432818605859910313096568260286999433393673508649165164042351178763696633445739229419778436584269023600027784907996838370745122129867701763632436620743884671961845639771418167209977723153779386022243935544199734179827634475580572199505315879364234514905421628636556136332473960813955851719568758326472946581470211518967576473822206664578600675501569439544104069606860294689659302841369454307121888427482900200367654227940355883317547150265313622827608744315935208599550790866802733503668095439205315362585618395483995727909491696263086872970551602593058229196152262343160555861289993606862750498673856241793131851692750795238805020860913965446448854345919490385593093196621875409926984283998232847626981853791788588476636290938622493420018022921314575066052411644760517972541709295459698051695503301170208285049313082797950203199254161052379842474666466030255554538943816906957724239404948447166494435995947112841912673531990126121006605112220817053214348729556710380675244260108011653774686962226671124558843116270973675734577549744076221886961796847190531230428424420213161546190468746096881508583199645282752853962356342721134170138268672001081373459193538439748037143857078243896924639170029324823012148372245911707427556722432458027331765339509173726850192633447296534978460646413703455388362895397860326177123985687644714570781669374814320165205489941922594628833339333486420917919351712774080944943762514257740251294408663472195418791253396223816570141283565327144731121613109308943741968932407422154352418907511002006719496270926995035328765713743510826281380383713571392770703772434944424215719959727570891758608183075304314951868771863459211997001868835524264207695966428248983534602052771555579191099700243200455154947874623864802921393469889629402677302139018448071763080293255538118321473289075570725026979298627987994126192441664210029911783773089806174511158806984089083226438137805240174191020492246670456013935606823821202308467991327023599181669811649283661008445783653254474606442386268251760081835165107391134439435096974419048580658583994996212658358277886752599107049689570326804825631936701612245050289109481598519303183761066287391517024840945688100759351756499888677195816405069016879446224314119375687641691993797938663215751374981832701577417665046255089997949805488937329078090305403644900429803347462067077616204603697919038695068285787325273612425623047420166686991571027477363134860871005071725659467076035565639367243219387512570233943790047559989816344353593682570252288729087429593508639823664948321549175450228806780237998410860270848057163731637261949913816749095657937739632396519612745289921866486050070110238677746442853998017619962104974171141790176494904661126269296842418744339553111094182093771297385106537069993255293262554646061669892428686045556446947177194277248022516771542414974613187819315007188245175530167541814648651225571566033879002690765891537121948700050447602840273463795586668868309082777834990063409772832330042598461616661663028286226239747635012540147234837199114973921277521843633682853645350085011828658926621923513323555845398747069261011476921074776746459233027901053657414850050349885758580580346800929122814095946422130598093488279437979420081836106941069484236169086980237343264678645450993171332995363468994829701222539735975227915298559732542519029184548749311732323809178661893139758777023544004109962303591234567297040922195483550368611091197619148390874479225806802888051500550916963983773144348314260285113738550337653963097708423970601886902462620819639744589335295537982652089807386032971482785844454369090335940158715427036400054692689880410199190961216007918150613754972321533678965199887436979884954789552459217130020627491098527514948409428364826156529084526970342469873090546048415307918627297045191744738144573186629264843768371466077827319495211296299168295504923838244069753978383045393518751784329761296514440422718586315940774806416671664756582031693510135930959373936707922484940001512710706203130179052583080254872314433771508142376923213817724689897732732485069491886063099036625836998057243112135968339282975249974035625316458286798321947135537545631776624586863429442342168918915246776343163554451544805646288046746724686107833825927312799846933093751528360323403131309685142045582205954186931394492123180274314425370407348329993023675699032568484627915091139792833226597498168774351888498865396567893978385114440198896946928195663419669533873894992315647295442830694442283369512158655016933288361366637933286887653311989951688226624636126320265056341531507429022281455166698986015520230360659468015074675981039841304729311725818338226933089423917006475281458812120080119661630694245007118520056501648244174919504457123877165490938047381205595428774711694328202436644116280021229775421755337207404807575297802417242580065744563953888528764414426661131616173016997473212763649137172171284553356489869206075019924587574008566651331609841661894562820504658279287510114830327745332279558068189010376943992360368118655213240484930275795005948980101405553646748451100894747043365760408343796839647312656990739801143137154884465622759444053656075802608619266837701113831029436481937872292858340725943937420136557292788200163070334588653208603081708904648525204510800922498069842222197634788309846796768908897306477591269799771807604920133901716527253876265955573758578758947191086619490392784542493403587583212149935922529160556962598784209492103443579710719451098692931510507769490334464355489811609191833934762143779520005323809490734147158055820566038819191904281057790704740985877697780477849570091300699276588781408152475009313017474156068453571404677214566953039014167107824273385366904515819047737024775155371822808370135885920764317180003793859498382602449845226389034841474244290445826414616294687833289913505225379292079707731064529674980049759227110373304928071620213562548863890763041163076818747457567640943785402632101021475378846805040490003108522658808139900360795584525080574042960309566900785750492465515762565713047230068721137650146223099807887619732806355522923481191729813622308122904217687213835659807490754474909551992896584695395690212322287768542386150042951570445599833676182105651252950205132159387495684638198776401962327606431659766641765477681372072974362816836871427471399069096475032617858274731851017917383915686862936744596467140667487380903569327915336506026012123468962355500256310027981260400781236485334450172001033409879059077150477136802395891611974477515895722899894629108200810140724941193034027303807188706553693259334186751801915261277927672468637629851606592363868040825288467273830502185054806543621909970711645394674308389484995569178477647454171057967479535045306051942115374943793533761706446280161602919252631062027450226428958136213386151507504221298290964848738737345959454290380455058431236196955859316965516497862185168170132192072064787408936950644364949783567101566183003042307635747727684291711477472404047615989570958123936307161945623530467793727889499959554935139693834951682938572203333035246833039353279112823454598794553497976238207305747903942695333860256789993169121822007861131203731439602830184514573024671343219177278872383618613519628413141317294160645568441083024579042953772568217987905068120527698733835456700003388337392182880839749540602244100172702442599184197276521471473883977475456867570817255100147547830070918379119641557561271997417964680368455608671812186745074240172013062180534411691702316648550606629162236967577654615905603648797258131142602843828576240331181968355386032099324020861865530643301422128818739416919806440455861396697415871604588223428956087683920469176028611467404395220964852062553964155529765483857733488098660724430581000038546174516946629617235205639574909922132177394876807677404474537684711779603673975405321091193347576389466638476938795786143132001359278662901716495201712901018848703145922940963720096773638844111783505179227244743332618137613748272153547525625451389062164747884569474425370433194422169695533981861319608469012286065537947353500537592325677848224451541922269993071571325455601771952303608761696019861080135748773004058743392968475471226770138120258566110125050288699815796940165764876537631566146881474322560845558242239177268951233074652840667519916519764363625236239906673270797576009173219261109224782630796563078268011286113005160732055292795104193474772223580376373479053010355974488438133580020538710913266412225744711338149059554619986665781099900284769918624047108375263748601761399479594372084296629870430400117700021664589721521626902186726841133876924565505322049231804608131393756621987394424906561607740318262151819053833266670356901649278393035479304464735135234209702166872111952097727856451182460421788379153098789391196354158999735597278116742377766933713956858619519477052031064019379099748054509931242772251810999604303531927526884624286407235402191602434888805251062043489752522582296851685440229599470844136586442642846887607357091980934387823773143543465926418243216825471883639057454897226867907633212874859306940843756260817249539889987317297651185187047490870602204383285584613789218967481061996023991566300360549914719869437775023803181093833355653548155082866721985887571320696676508029397804033276496123219920793599236979837849904532744387226091591254401613202553186137493436253127353615617960355404536860022558688320342452468812272548258081200719788755204443575818711959889024492855359397785627783716567306709852309961346014418428017805082592732393199859374669610418156378641553107708293536099120124491299365302748109686870177320551687369589007852882248484516713166267058487686962863816278930038997065327050507463067969677792516145537526253003462329459085910556320969901677054023254451631338319153596491770538516095537038144255758954467120174341604541458852724909969077790965085233356993430542470753876686822844327334921052106328170829293810826649350989823804258705867614992239885474810209697635877990307252497087611156702427248849973038687117044231409314075410445508565207224914333518588045905538252292445476236849243454659409851434832338889536877488197564633790431235614373518985276814762442982861193186879848668290718230800648951092091004271687057638895162468483346468114111468590946134125810373098327959119727671717074504560624926676420985783340316758086603643322639667695489760725514878758432044099663046467893889668776871053861714554113575262327702746547174568850708887040691764238967515710793819009091763582747196277446485157070011527564652937920636771925982273769197411393564868627962851773680512613417552472321169020251261615353702022284434501637324083128609152665547240739221044578085855554997761303826462245192229002405709407935637412800899664423016020305901980078027392046622570080172946007310829716042992049279743004849840930139690895764568323023535776346892967975174960149041239689852169112171686454265586547784014330576842048545327425952005052465681850246277496251496919897964414934768231902813809314151015600329287578037387637153621456821254476494657096401463222623384458153759889437678990526644531325019696549025892508488196653130085541897419727929456717326007203781451619959831496354809366952977508530140845342854376546698528967562715718975999350493738839316835073784817341828497430095648684636315833228074183505632605091490185920328200521328431156320011967870472368157313459979713041967239786512504087729129984194274835333713164563173507521386180718121233431055221510424274319009074251008184865730718196260482206152490654562250467261640192546606778769114661385713699876898641312719638254195072755113070831941001470963219477446986515059303564091078585954890939455261184210709653245385974899905135940581977036000420111564008844960746365224925072086156143655884990286962225507377738622929622841028325134340885394934902910453083148778493524454948304793402629488115922401504430777819151094733841182868380445595071536693770075022144841793933661277652027288088460396394104934989277243602183107193267184222449732709517063728133470414755603712783758869760676149467734302680205674403720064993446969837372816876735209910599463420331926955784744612791091540246223214424657150382384120707126247620699630014643100803792045650841138038466529867828669241460660796968850979300463375004134707571679683796631674155569892263364529206459701187397131719787250908954767075244768228830168928171691111528464774002166887121186815999752600070538417264201429645234347128058981044022635941497016979822443288683786086567102767558500242199329346167224027287493299863141018395680388380606429078924680457279086584877582530394448340121747752484131782630174066203271250548934524921202424274151406548993464279974060878564553417126984746635070726761656126821195421494917060987836044155178514980393607706373045948369985651598917020201099556909829568539812766948272127953333948203606698187038416435348123776803917181752724638772771667793126016403431667758715412175529999012865576403914431136843248734591788017059573727977555264557764256900036492020189585802557336333551688766952062251736956230491831220766485447055474577249313385669622000639136237138443931889034308649798564598415380358395320345200500710795289327998854240308625584100169426135824242243769286112387653276117367771372931650230514192723476438727250225647789693652102581778683109216471596756751423122329314582333019525603582864106549192271131719778291841499619158571742595344117919700421432348139623320562865357459555969460373296271561138317935848484502765386616888954938437457493855899020316432932390892750485296446269882900759356451445410811312774901893344166235229306957790850520666083048724442210931310648245615261517562330915660416976683630096247725036654241022175228649366700527793846399459208396041674626738658093131858095450110777969408941896743450269673320289543621550936481679856007548217756078652884084752525837274649185511465930549113071380575849399487299691643810600061467453412937422191386139079427237543912912343419555558759817706603545534515696363252076580825071582218535241073976413667124304856927435657764290841811160411430343784078043366756395048755384488705982438243011100838938389583643187248654373415405635572949531059660918431931596970323478840492549625613289128979563621542105311296900587099853649150953216105710350709231845225111718007377602059540490652571362946542934731923182914367524517798885872805371945334544513797473798732457993105068937372602599757075072256874821960320017255642214488195233455773229049193188277103826216744193671831992028230512698336061209778117290015683236581472360162249490544074148937407490658389801991812153490581132230235672316373490023910590399839325381309119201260789109565253890905925626265632654738017860274126826709121729346006309860476715985308077551878685306161226519317285964176155665593919000559020763306046424412847036860529245589339987145680637621823047442609159825674063931029085930556899239927105726976828538263677868079336689674451688766977828110376491112232324053198086527083009386896846065372124534426172076621403090474891422597800123695242522215059476072135391267655705058526038911223933079617735616126827277214841147307065428369082499850328743651725847029869091745008674901733282068277288441622124074183487822360555887508793783132451282295613648381127786457034527387843990401526431875593647564829437280765071839565963144823235446543476361835000841936622005433052466162620053986045309994138052705157393940365895228333314418991547978185686259488606249327975872559280209979496983235450357390986513050800988597515643443956124098241521024249851769491794204289718966581368904636283277786059972920151972679612778305632391780165181998232789779149503265112175200496471138673311666926952398007840793690332837367140830114199969434845868956515492643593179951400269872152830915219631204249221795428115954496692193886761639831054350366066007076722091738355966448453888359341847600423057252219876407781113273873487297446755768004156596768568680424621747747345650376209382688892072008394329203468844255342834965118563291674017912605703712412584400431837472272466159539363840888929068303408965482748780579183086195015407449371631506292958743088119107396223267079352467474130023042066611536508570070067334384943329116485496700164911343763548302954177727744775837769040475397627990660710702229982640748086209035826079222359172613776389581355036282791865780518700238671756962883522442778261945785003058431725612402504968119476913862417150555595494661987770220596529607080413843138923538668220783141314090099828002634880271307996169575977969268250814279371442038537382748262957299675792879206269642267863033292357461857390373706906699140216468555418921169549687425249328325655568894225477668125344257967931519757205984496599508075954416400542768194015816165736265396091686707218011418074696129611398480440662235801352090708062653662739562012538019854132199341299284300484049199332412197447651928106074982212844668270626638250463141276383808540855616884798689174279021811066602971253013999556036795670756554416534726175366573297332179789413958296986714562154407076457351958474635197640018635995608368614616094937167041045739786075578521556594735290557410318281095416148969877904182619886804253288876623892107730723474050318205856255698529887113063153552105593443555647081558730359789309337889263606636480546641327620040023755786169756274376366463917996006836462743113059772043518945909834779795063051287266097568064811494985666496467412505709990755583684310611202804352045043613088619514014285841161100896466060949998267141692625710972263426589903874432017332434174797419413236271245101761834641008514852288494393234438476047941999028215345645086449756635823251086851764372746450311755021451653872120674636720633616275864445776845403358840626134317669179363576232349816169023474522815446484548039218879260429534672387492364687217372970936758938871482996109766183127732219738612614801653458882519347436287771704653080043731049126998676891570707107693368594031324311735952575502693374842197326755577947360768362552933454652670164311233025804227819957021210031578072353576341592843325227012749530870683437096749092669106799863582242670385859341543047887714429497696056167371565077849673807931916635127088794692322855737414762436211128557262976079423071583582720497785472128672519882577685080964168646917150788965858308561857200605056419770664672976245464881951172238694606548137667396596690143273959841460192132159308155294331606433274194382457803357870447494140223073648665276083819603545141767822381735349473612684744614580051825694155253317916163165785753567886126391850571077394153978804884089270272056366175461936461209601294684982075286437279282544944274185652455676154954866791511488851411903622322934474303943841696802911442569693683783481533225003155465201175648940273669328620273126367315920836670476181228884424820816879590648434009665954671433108742651100987014214740862257873274908045020010800706705734959598527708152842849207290345367684688069810164743922310955229316546469586331217851535553312153059419097409176468125247894383938781719608535807946608962569964056209372807402137932768429758873847678403012039292163326761875773459924942567327457592494078758902599671884628411431576112605125495087981537109564261999363999915882522140224180388339848906706687746326410304002877340695420069799573295585176457077591763799161111593451990636205346307244643808603606129160385803779104538036181513576257514855676304696107514413306054130721260160710326952783816623117644163824194315726352122591755258091682660009026287863014306624106187712693345027630029590579637735717613153338215012626259119707279058539794920351380545038738908045815796032731074960672359858594569608755613081529846577431484404390877391529321443152539099503477334844861568313091202430003145523854443418340839953362855029814352434368268711578450312114128577215382184329938196928762764289978534000063476700199554650088336248952887365386969585788866833269283635201823031287868385094548348680793316907527060052574977079314961372184003718368004072552815047002480568421616601284220105949502368352198213263562890373723313434476909219320460469605125257222099070600049569502593823242382973383246474929910496146461141181339309765430044196912192825836585294209892809304486007551852625163077790313032197840399334118841619534842706752041547946720268328887783801759072164485522032017812959977029074010986208241064193278192031003888101977465405381266834839044919648253923640462291553373296152998529877968382508302609506099230571587374091441744351310796973427247268976153517981235801739191861964171898436239793615994486306534839756382992103151661059761823148185081606232289425539116627769652592125952614506177623867935688560579628059555272417210148277597588578134377012281490486847194074897664486814653124166653380339389176146397007445603363785211886005787505519450247356314347497061231468184596330833429093158416547654173516189150712548173485934601695008433524718932570046513713889836278719906291763550091174867231235826165795718495893817242919695546033666834535744550511044927024993210317894857949958371129017442404786662933729057396558586592825857294778701419636513899247050032442280161454739749530304789677309600457447020507542528993154377962211865348633912310655582365912356003356832690539090461712689609279864439640177346326541632630226990526807865376596728492291862291444268954660044194867238422962134027777754746547602978529117492562416840008136804394934075589528437202961228324027449644582196809601242064644151766326029923869314338832061529284099887995962087570388510913470336839786747372991875712943229598661155527600978328612323097182251715508208288625831713233233068271145127046777986424344056146474130994473852814097164483304393602054036946113790823640348760532105288735236106353830949410964460384411949544285336897787552833762442621876652415162666153490445198209561093105492409335044080195927564300749011795273069464874834802374926125996804739675388146108109293811596557415291095590675800547293752494055633489274060741911817233888982361981507672244455401589818279478009348999669970940293596419951713160814925337121253587570446390047611837595450590493410361087067115737334285167065392144078607404943907214578739176603864955223728645866003039876147857528478450934871090855544458684350163987450357109891376120272180286453738318614388474353053505037678662944393645823227603091337673297904955110818942934575880916156491586254173105441591957762839869595565162529797522424797276571356072927338064648941086574066569610607105538378943209620732677666069865575623918808840702336396373677495699624023794067203466973598428516173405214471535468673699263693983268257732928662472210590719016679788699792353154403363861967414406800857215608962959819379634216236830939400710130983471856724050896381200938764182484449314939469132184510551195374401860619854015791929089472861351505978777551413797471370980419675939816785382637435311280105735956311224354950385859174604244577026933267516850208376662453508538642664200379253650188399409991359394912568105111670178787467185926848968606077583279759386860224435555584885567974049650554933722477731657211096555725192883957500565333141687828839797497948866440296060981439636864808882793069947517470479573740549540460094597109522783140663951248724260811660828552045376973509683456913935782646271442875336673696611120657931502100610202966983661516847465689826342114762988802424117200154937975659442493275099847367581454593880740100876935521578869315971155811896027662476881718781792883369039221085470810247541357726954984827031014415820103468004970250888118040734039243595781014773022027437393068062016158910751484573350460257135283213680156165704252949440946032506469953116954469232577231121005736347626203960478202530794682793758368700400317668588183417624201515792200052039256689561924956819136530780853489572440884767067653927114882686565496905668410296243790630999835930669438103138821382959651070911929281325473891519600165657708374751952236689000195657526819680724890090292550581588304385904430259311596885134873868396907991119635819056061341901964774852973596324513830016665191485734772022033924299294387220296455392220662644958031077070965891301702334033020977643458040678428587180891194965416351586962587388404750792966269227551437958247446572066396523094292259098085975701766107403024102413261084341296955067670112849560135951039511329130541656609606701370468485435471698025345026732915570363655045360721657515171400954142229228515482523725895075671941331968395194935949079558520867468286246914050909036388905889981432623357920100396892966230237534858872114402270343910524068681417842254837419538572670310656051623208132967739530396018103656968111198205309877368404456755647777862696721792947815792140814678261618742849557523549896589596917047171256505555689091108255957223517692340913762330069345043562776967618089047806894828733801044023678937113476207732433673789183622749362060567572748016118053946350666377700116928851046152410934014669631244183698948345098229331927478249478931985563754721033461434504993855044028663656727390461555401320753429982196841836650199035607771424688050896242556543613098682727764048659039185786863709217637955043218246974974817084314061812695956951200785156694039264079504462575733421347473568528205939694558376059365145390276213132955984143121785189304969414178046118451777501648602535005653174992324097687711502883924720059619429735450040474131546310788295886454495846867004987836517297740014768505790784483967869165099697406846308572342673377649655254386903512621202410834990995626919205923092979537708430104093316620439250768407568908582031145869480136282786376688267015909389305268720710023899323395758394213027760543000026444902524033675522269133142181043423116760526347134115844870763385820453660999690715104871770283405255304932973649844844936289213697719922214804142877760776495148996136150942295844196352526346798924396477005431474399262875604005167984891876946521173260636511208432914265175803369065537050348189304548550623949507013625542781388658207249028213019487749805121081084390022341505852313101697799585590804326306833015533806057663699782331482890355954664103895072516226129974911537199937227511667941813169802668558973195263352524084627064011633755217666403786842132295988260167652128715050182428591793485027859681340162516721599172713669445896477666347492606906881687406424786378544009651135714609609353556805910773714622248287693463196235254664795702396499961903031054489787702964010807650518245621961472197279388602847986337924148330125876608075581546039990825130404073545411025455626215535126775460979135245131457979113003528689751998339380820665497726757023532643136474238276113805115605224584105424745528507434536080715869610474166137807286504035026050560425317348489290652035230542608397209544475269805161984761337835979782477865362953074568694274946513347842988028157273103016711193699945002251522026304128108724629021174074256396990895372818144103485612095416527657196325739933873606232515660083891712470024060712594662419425040306306413061054105807413055788557337167909076537120463000101987891548712237565066617738067843412645860294665089581596956573751464751685979136460414109963240203731027084089988078320475780849931289064176585716499962102156602051149244627274860583163295746497746822737770956858663602622245411965304087431338892865557986822275988521649367553340305763703496840064508472842071793699031254796814343847289926090346782161175174205495757979506638642879095177602255512905566749134212236203069820733018936597727644473206793025631389455351028871389935579312385555463391268288862743147301760092870773144229216770746398036919067123586622557891152100642978458781215615902667251004802687957385101554892897693149519390033875256241644340377989887871980885933543917955971837551177502866118693259756394846635285620371929485194815624847041068269390504888335011655628328279464318145223820871897313156400850810460291110288154765937248953240895333362021613305355617728701636194075041119497180810824582011787991375238875024296212411205741211130548603814349450942946456590696920300004463015452513985893348527993181449445387193165251544500878230397575866681792725700824002891400911423013552189774800445446946180075152464867779341098621170424753216557820987222496376490308410175086014672538346898394142010497572199305286980896262280126783031585857875300815396712535863351944110326015522761130806007770320880493113595994241008746356080190099696712497637168266208151967383254139171020531628915583340086412547272622097108941446679718705592186158141781803674267865057732824290639151928596667904666298151013365612485674610386821839934105921091081541568458702359191267913455252104521856644272038425707692990792250562774198329093774037806529415529978234247150880883661054967759693092019983354380034039482318004755153775005631508800196365795934353544820881733398883116848921197213922332377933967516441068641696762859000273356086847349530145108849141467208234341812868730295989567086100357951021390604590491097897245362819147817046578611436252334864477902107969598180861489198312728677583259348574813270909218567666535070709386232899217005431038578994903259590203741586114488425731048132519809282467366089073483550578272003357484867418344108833539914964399452138708472487196600210587553064272047945255403065887871628879246077725901088766166064195400959784672290131357997149615902976058188439449104518038392895817550869948928951882004491227687786388988424296713381129499468132911876300129973501890259845125905373020922113451327671300560678388501781797990399563970483792169318525563310718702807830211423885192245748463366367026599126882954463369487594435993773895215684368952211058367122766980679283513711337084391646316569962363766468612039423676936125384827672025654817991924249776273637936753626456973438394542235668940975687845620766312343323691464664001191827455843562323394127658286615398607234166059415046521467049844683207649234478300183812390103784903342677162631013310934856265591621620756998674615259660145885745003428319683234301463490480243933318379713932493499693410641528494956523284768870464008387175807191436385833345166960500267947371431015338075233756896972041878217297486793145248747824814400325495866956038993288323535776154426084787580182362574691383699622603682421382278137175010293227131677619051481457091388067198764766541745238078522701500203569836237727961257328805991685986822394727049644918106817986971965265085876737120286418263773010466659538866176663506112080218591911877412490422346956021865391749623211989402496187378664054502195649244847984626790963328135342786517049361505686307980220825539680407710401620765792156243378659948011170486691164127760343578973254479508242608091128004016023760606285327014736642761754700610196103801000281665165667818996359190098825964086047222667926704685646351097805821035622394191931178355971102029879051856118217519185783935409698613146190138124764373416263297093326000027179130850774740345269723330447342813436310106184306687575593911141796957565093508458295821664292631093653708475520925933634955555089595815246969699118779113801459987666569009726067371495874146918407832415235956150311395425449621771016943778428022210358727399934545373380335328436285448071865009510348615884769041766525032078272788938197143148294868530498673537994483081615435355830204744542331793796027765218755037998993180668602425138655227753689149313002856078323749095093641761859795331723973922987897982828725940212686953115694163803985426681045627926070446105592617989350316184380429667547250091260938760900480681835360858907810886110181482139327665830399039011458552583689404220159422412423900750696067228431923128555904252894516973270700060602636340691595111634046191192651898307678481001380120955623403079264920617612092696313942004229671673026564456721355364411314207592556854009517840915729902692566586768187586490173882474108935468253737462970431014544971223452940991507254881223521423024869399312275560456594259541217973132967206961059112587279504386849931134325204148020846206499240395692724415453320677313860686286167446406026062955971615589042119493352465857636961988166059690463253829000958971185134158852837641108423162308739517515416780627679104649473038977616812800022006252935699585090361940085013591517017956912586267015511759727092941401980043707600792148377403577888243318926418779321113422994049941558518263452646279900552659735458310833542096187367277730404872150212740481431790427039874337886649064906250874171917863510698012089401914516009487893225697050336329391934389466516241100438283468044792390253610910550743900418854864226556348238606612291832358108428856199502836561912394662737396720601814728504700449203604961853958336990341571946338380167543429198709158297589109591103164608318481611403525990945966751543195943588973016518341759661773385581718160958816515432486731918798008407649892352311418960326177858657801134238835064077697908249619984297475680307799798462744200076850650924560198629285683937347567484169858272428100726035006834436389265628915497012599564381296793956624555036856904465559037785928210486296240079474844829891427994070562124185129372911780159428413592570709325236354421846997028256272569065182745321640232941797980451696291935220391998296305316493973231798732948742621899523735203745337434701115229673508290013134906501542215129739866967935426587663079326158901116943778688923235049344282916309220177803695490595642126546351780482548113450459359680248238177879353306738099711797797201951660282516212207662621256635904175902997539563460513443213141954288270874256924171481333908097617648580346649065475967959051036260145195207448431334175999725224960184597056012773253709887450665230669779750302658039240875446020223133307436290810696117363290835653825742327827185301174638244063677508094567526447545711160614575013724940467896667649201061128449983401000443277764327934128414888431587813551358962030901833367659207442630315961085819851444704692666894238358403849114165223464417649209099403607768766697472681967908388311339184528729212138428959863831618249134945904820765749666003802981960605435690924694075452071962334971102056226829603942052825295342175776410081834502493262274606874387079656701740351191436468460955864845470096452175259576772268377897530248942544919738967950012030887128993308197412502705638167130140905239329891533994211746768628297859215288640467509264373882086966979222176653796545783037620833473442103510037229946433578963682417498743896525224360803233521572698537749683486624557391326606952079772113042442351390671703281935100755696423114492396469693194844885081834497365906478551910072492512562169444286508433026853580974144167562451836350781383136488968458585432533241150455033978224737285518803128912892419889290539013423607024655886544186192333448070835159024987380880530967048804133414201312723500206838781401810271656315608207915513873110425036466411587316003942424503115002850799501658781509059726487771861791612912684870896130709836191969201524008573730768850455908563817144704115412329538072642445542908274388274231210602210628071063714717724247358294978573347083740278087680913884346368971635860353289880624427839715796244442419247523873087381857629326114350766901753304349074152051814654861450336168116611657098801443676884868871346256626630100752439340092706594755453149972332667922249850508762303649020879999572301736586934749592650804456245791220523699688074614916064761720782105055902837814872115453652752692646588638382437558363961926226368095815075550946314761330723910920836489531014063929534808032204462309026151950051901927882956730629884675461113756134222656724512977778817024251358912273081937450183317230314958574184701924123979251147629370363254296952135894100435621507951744234034683695730465767636936312359694973117284945807848069590756478189146661057643638298546087265304810228745933414517604772750865700104299589768518897117531948357633870657372476344943301759353120041826330360195548338950945948453591629627639806636737943279085757135918742717234410387610776974907552250051834575692962664748390869023131631208480448004489218499967936973853624344240813398250142592650274357730444911318285644290577001912014894333596698521774700864076151663277835193099779979057030265155389421339786249398067538323508734304804688678292352521890332609019732179124514728521239013156578692762252585555587725667711260751305289719886581041320085318471599503920347627938316226393885890443701362925541022828066571141173822879077880226784479876829753065397294266484689282306574655948650880094999639690682450442400460063243363424189698728574841423646956023799240427924375452672994699185391549645009804255822892702018800285789596168391388154293488249375859337850243069610018234293531066001811873165949074642266219025387750760998040041454316857954831703722379655649934078409468028361239664980937523976535279641653586291434086780908353531868691253508554458829477465495279922659725063180176657279718628604416625037146198577322251848822883945228045383559808965516471390195354333701949856630996749904605972219427504959143237153631668000056558702336417500781268286186290876029486404316988236793247926206498608477601285300160649496931463015059958377999882099114465784179983305368797007051073150897547832466949590597009560467464517111269157873246423266399511964948759418590679299839087893691896852454673251544144377448442692580796007188532514294391055280413819774030714463675878421506502248818338728819785327530067960888754071342621127256441246337702402559140154835808279545236654150915435736874945928919505409981747470469432463635608279373981795449760954831054440194397692557566298084391559014211094759114362575395651952357612412249847143813308931176412655265353545521399882831570498838031087342269050524784805082141807385393446238736236584236793930233224726246692775835561799549310165298894680393231736173347259570593152597649119906155674516885228268721347069352501391126291552678497374446778693083234030880305601463033651805601995019815780774571327768313480206813382784016740482909583356724765713267026899544363478295549563761705076119940645926030838287460755310856085886010965998526816132141915628316717824241311198689893593444316075234335704106240719164173159963603169202851940129076527763449724958415906327221363903258019232699889875405009449694068949623812074451639224923435306361082407683279165424398643172115007630215842721493871369866210432662482507203065829702189643591117796040404520773885908709371498870703273157786109406894292631064489098113839207829821020809627373284112380458801602591870006193456049032302580306023882859528256559437984722704657505783761184569301545637007125185817660106445923298404363550048567353542512321090590184406039553795325553652680882552178123046950412180979947556193749316797554538807742027446924364883259348385829036751845834233502703388237256274288852197540121574636159333970063947306528832044758827052524651404145261145943995838710954887145986115633739607233562823568476003413866514322738087528562604314387116606166102582864526066461448611873375966744804707536818972861256331230667604900754324088308904505332149318628789228142462258771036410535800041377523107949675277148005561429664365075358375430692846272485704039478195461124830526209329192358502385854268860418645915687296509361632302149323316265264474642997050530022794354197118335159908466242135229391275786932744014433697592628868230843081262475654228193752689502710342163016869097783275784873682982402832685943208037475561832315292881201958307171462922148851488087881421466247046467593556257460083244476310203194572680867390304470158602738975056881195717817017420519116117204354481811629118114482297999785146932635189859413482688853801774779073596235411303659966229058540824229022577842609994546916849773594587953140020080364357632008014183494363017763935857977083129069236727245529562850826320461032053773612712017207983145826912201677783829759014155884921338398671241908681915813694194762520567960333748460262863056597409949801647636665788091058042262579845729785752168751204952693202995020587842636063826277848909426463296824949115156163458516601536572342751232474568737542769108313702276930822880009109101284543682355067614062174834686328058791042523078889792489728495352184501422468622965219316437135351308196029179662012973157373261030033193844877894983165662117971623673997688529881462708498623041751843139747554060508602737025034882074532773155264088595500886802050283893496164180658571415024023997567745179424016643814439829950104904849006377715695292359738303253069278763000186605618151740619788105148667713851864493043670388515429849291822353875547835684414299988578856719789441456176892969015330980955588548164836490559412071049659375989593825768184962867608564800258276030245166795786990751554221125111192507785628382237571473930510552599960886640062100980096972083228718799143084902932204983535385558383764243895718502147413256519815834342917917256393857213805723669498053708252247366921272313837537374742091728487595454856133730528713379257345874874163837419165666697926000897093988460693342664405133723343371007563233130043289223875580199374429725897867961952118796552203054191813275001709817151634944726728045494833652351759566874579460802175331439313911031295179288075471194041622930443733129153885128778550029698310056109927581190025606072714539282383311285460473533784209123975455543157234387590365467257194735429666161120922556110279995961851722106624428075969643330664806474526621158939750301486656702839066322367553377877496973570867081508963746122286347044091599630327336996707997279987808874687826057664163460934220149871509823310718217118484206621897919897056294577708488156962866893259889797480099114031881989801135616550808856084455776032351279300858282488328841512010967175054522355290221147120095961440495225897467155413595530939701514091776168875371144587048786844921504306337138292174850664174730755030785854275528569843215872456422919304703489252415885938207849241090288547975347298126410698090093441253989515334075080895160134878313560234960750470670808377156801376050563123580933854490415565074727721341015569072887559723178696388102004084668877558475416457820125949801690397048632733217012619786127872566885095683028865337747524651936970310744999000818473669486476870086481468161380748813735657559762641067177934242316021336862090258300945150959873661539218135293729672268624999610740670287024836261975205149375354482290404602359743250779819785502563125983106533914213053141321926604146946083091336802519845024833184689047382863818013790043313695931298979374993990174292336838540831787256450829399054375227515421647495155905042996694488990317187562595466498596791946089386182278989875158683094404454957754416845620406576761291467370693559065541192121306217151119144239863568105816402363194821838357801698053889644650419587931872147178859204234523974197195311369710378350982447614660017677493262130850817487048960816784591663961158076339430795192565212655690186802278980585357031006123455668353541583781642555978940035034569925747410161075375841821627258091020622806000987831225572507857075111746913959034485252812582820091665867423164046184417649773057634172462029069126168585657976679267857902645821380416027622053125426937904938857507095248623919716808058583343792682845158573950596768079606558152599180970788901421847182833203548196868899515400544649413560574354459145310968739867896780182623519393468503987207764773481575874940388972283929739110031963031129442922316360873300926387981403895981000464558814959778623016595371870934392576491899098212346787511619105343425362454638581442513532341789693224526147785189676360761634925996778301214071717371360460007328073143804198087657213432539734282125141382901079474233013358669244276395812525885227089875171495429262552504639673326551004364742723251941123082215022025283493059924147633108615326978799662480702166962709775054395616071115081320459373903939507378132145606938041862082774535235940589585462490934553168132661301538016886275577854020747113341436609810707116522996651070311882266761046323565763601780078624547694064644596851012451934369687218800086807345149940045871858949033781445686217266805108071155304200250251594858907048479170598968306630387116026926407328128405238337185811604935107867965392352121244397001558186033776868546415267117498677920432001423118092496488957814214316179276942548616775737098135393215532272519849128740946505803306347217696593252677994659596713246425273613766949470923176679381242514387080113741805151727694840092659895476358777390269642601651158561793536224647871301590826884017753651160717010104928645693085899210634768427190049873838530094505806843414146461064464292326464065883577241098213385223450597936647973906381972945785466591413980631262953831673056618739970107664564202644623132642480932866256521646048395696820204120150005449199376231159273504852340444845701900989653725230088898988608843759849838986077966137329460047685675779365579152845374405329531648915106870391130241128926160922467001059545848290244630560848096354103850896968018450276279833856142342950423814902780294895666104411889220869856279231280486686568233618801311172127016998047127543808144834316777765741226594190405393484209576794636001166215334662884075672673726467855880147479162273342174059058071716952053077621109409879699318988242071567332354659724450868317045241307973732168721959850668195149674326279857687346686347487269841578124304343772858543836889276452207306933592336233264208389909111812186564921493011978304262438803303178102547100216473658935692096189721844814504741561917385437982759698139623049483647750196159798840942423364502829001982419668727908955425606996779651941533353223030222147842899897251816159354315882066237469616879388988648407946769356190148119747319124781015635578295111074527874293043670070963445322409577620233151842608653198103097611122344636606840800587862447146942999130087333607761150186417815850731692164893805745566774902779250080396326379828491873668630340731672002379308810352684621656126928379854032712046861882999743573716863236816955190570253351582360689304850801502247211543583470706934488205285778575506128962997264338010539555592333256894832169405710181992358631930402719756900683529216494447027655847722048812905762965445449440999116415221529996712931812486935364954722717856505852153765585743977374011026071555962156192177650061341269233392218178346520875686706508670915982420035280316860376676114158912745461639836982465626960410540199747425067402630568459136763289864850608219737901718418917597836290432517797926195699482823775434955574396049939950905597606572996062593972022564571818218714633250508988497672502607821377740069243801126110880059937715719261173123952074570642161517978202757541560044866473493519801923342656185002347442191047604491382020385043196223899104719990304891083391053780338349411074477900535745385577289731628943037141043132035501703419782950086349362628296803657686928094257807702532248563169657933392688026296955508571575864819858096096476739594366428950242182881292390349636665122897078690092431972530721281963033860200741006540602480761412978873173353200361339275539921681016383581369157093264881648722787034960524928661140976335999344973079130885713368522180318776559186935681224054283989527834725523712442085165689244188492586172234426400298269731184144620408047271460758790886128435052796114811508771030370664707766960304835655712122225267090635238783357180222594410534589134154534022001819030870181401371240668257340670517373855916856193594136472827171876953068707439624616184801829645780646829550551359647655973920924838271040388745850528095498729047847590692145961417504683535994045796401313931543032135134317700051970887308487278900131147340032337176507368354972175462847485673315828640834002796432264794935131056803114651962398853689466097010100209976310329496296937455651793068319677814011377085402430344322699703116777639561125460109861066459055127053054960036483363554502773356030662356206643792770189641292949315013606287791698797404566183431366648516464483634977014291342327633603271315838589328441466742208948194684549943139409762162867573592146863540552797691100433280872091588718773454047017604974934420626820741590957300465374257983086898840724321213017891056596099711549581364531057794672473069101928156194779806404595761359252046515593139633112651385202426320597261817663611867199659585612363259857054892219894493849014266135466342262855235031443037157590453961688972478736252258914929605980365938191210603263109356723831777722849045031856543033300908738419839088998304960265655760776446199539985316992302921949231211125894412776439216976862245840290489883942870466812472038823408519904025893555279359260897395091142419812235720386031236795698078274644356174059803505890742930097882056348621252922655175707250629776725292315551481229756375203719543906542191182674013879962607894200838185351055673350159230590091896794163344393037882366853289830763523651102118406929126853714383329366534054645427971255183299545890654499981005008866677819409726912825261313908989669768204929197001352923780791181454933438836349298940522151656599832805571014725867299922290824522115207400734612308895534586698521491721064361141554343236203079216335236590933883966225510957432120549913091840603750079940960829034003964240013922844860364874003780711024900454766682888409434408122561292900636483730022694005599846524777674488725345303946971078670294239742231728783535933303573717248764803576379263892044945758253188586009340550653697436275408150377161740228989339981350357368215780660993689505750662299693334570508999899652176321738000965630977667617241787228084970862126159615558545379014702176838868400480671661788764623316870565972175415381769893007892251302468061074042009440155655465250865208191063643409081862932278411990831384470022281680018505631104688067189948182351382893837152568427870139989503144192949786058330991131683731000554803591622595732260992377313486219484591232288863097990084281577310742844612993451910377604408598077458122802952314011028492312851352389663706879597138392981186466464224044386713555941028741130447745559678555732968188591102936707292329141985905834547759104943014408608130587143157130926396651683730254221956814905420161962815344539647467109908150334609749205242982002307651153997556472870720352613142673230510321486690611682890033335714213284211328503344639609158066919893358327915317753091373536969827624144704099059007641100002306248967727298082311706512280893501537696108654636786160626715881044404473203911540813205796315226893850255637814397343797022683664395433443961578044416401780160854702426923458854594057204102956555751635727990046976666803666586049386544181866812472091518131501224808495260858361349726661309730949044454840376394718511363090976595877654107680728192251757564662608132626116113580141566650423767050103770663324668763457784857765145540376012781020536790150681683509377414898280558810031310884963648272036283250525871357575686528766441982204055897388187933696881533584238065845710023396864886222659475917563565140840097371357404361614229516936947847112501046260587667801365666547207690225061653365763174621749108581731222842894019498610501489173237466105898950002875821818821327565982249254887623302850289035739531326618303023203426607981038921961779485682274404962313438553312633838045068281515018464617068535849551256569104965369943914600602956021894244744166520176447890879622901398841423461447764452954515060984509045930839518422217593444937419858019572595849263607852175723359268788014329725689708870347208955123831529017912581332126799423056881521570160079742629204865948066780980206166502162080029637855469116280297746798289495497982881129294209194791014324074923434237260813194690195009741644871749697738989454602466459419269319968942782381907012064999668997368436206307869974843087710995108688597215637584955505468567998304313785219942056094655868999813173769050824823175496002194763764081798226001607342878861885792292987686295977447182513684208832002896984236775031782180891345803451890795258390025213990300351540586104327675563683418218113035495365062578367901610366997742473755092807026236888409361498523872804863896590003175185985734040344516463390138843024420228046586833743514572635157844603720861093955118903937701800735921737434562045862781821331483347799485705936779837212941918039456365137430935691357281570417341709125711056356602125280275799544205850700854097082551309234024014109211946231638064682204737678949394618209489360953580830155478634316963237466353004813161625160968090884313187766697701721351743610383799512064262247770526539271571431364548600080451112261799401253736876629115978481939744272004383988038884444177250601382454203415890281840022813833372600528339499770783436079211079370536534260522368578725687692558704832748347841498802783652323750815478640469441528515737704720079458899135247391739703018068014053268383061597496282193831762897366637537315847376839480918307850285582831498715350561912744966570451912103982170882220203243346578204813135576191380872637384679724465847096061751256340853914474926082894815921342213466383752287424776954139581078366779745186767431657466889402045186211764207748362450885547844460108129340183502484032259914530767206333204226512259996320262177887290210341411967263687297187710037337136432794737812575415370422185854320311696200085188541190064459652838854671486110535335095122889116765652212857538873968188621244436827833390694587001847314426815275650857571633970885933663221675883252207044801489527734677878258795246794210962881491068294744102012641791145342791783789369884056430587288371208048142630987253822918194342581649187436513578699817178300178079132336582580218605398155102123664699754597566136131016883406963959457554218317363156033291133924279725324072210767583600781498081003171301556552025365947810767890574418046451725648156517716609229097963029029839688182101758648320082390493364236374184525759251478533788286499597639428585512310763685816833302107701478730493742633838082168346055861067524563830994254262067027536004279179840336872418912373590948250864250226385462043120680750099688895152901176882811762600709364439228885224791929841112579424407075086439656901104208333078613251997768104707270508408407240249817849411861988410055773027775220450675003492540260434236401300116309474957355135341278685083681237955199045338866834266919816589924302961320088853789667003917214596975564340064196982102487191459930097838529922877067653795830886185344735883320038839512604873164484329812830583248925806348661439359429157895163903291142771179264847695761140979733554782473562699585731939192208318397855738677429936197239066630161955600292007307302143839611065684464535726793393640176279184222655527722341491206311703490341684599960631062233195752279900244572411714488717379931910393271274872238350527838060491387496719692610241876610799501268275291243349917808600908985934751260746274593421740990608609862685365818182195672114311492278014250097296910170249092430458439190120968385921154762153243493247500059030083380020357565216133101084476130955168246077758563659801131599909294285019614966693725572363717823898176302670344197389970520491484085145198383200610309586747103108768453854171741326998117056097560164111205423517662574725520863550527629297452653618010824462120885584117231403482130163748686301598490745187421780622382574720628220391230200021402520068818113162049216782696559470056340899570542688454528753277452668958932596798549167279874921355192077534067225438656417962039646469020681750968787280860177804216926398669977358686654461042704738977811590291020749929970799639299966189433650332565400882336607786921718452642059896292171214151822344195918570098442963739371630581433228072315031481492361667975545355544549559612956265559256078711171896053330819325660610648988148395320081506967313698545750216779914822182073729409383043111286448113446656475296563176918749760148550060445668904086940491538979214692364023115198356120120664728554307588897316953230839198673545082647935925434426084754834012704646659837752931235523929851777351164894559627632019340701830400435421180628472579087689563346333515890247160421843255599434909970628114312246699756359615543579357329844243639983810880350511307807660366367178900450963435839247705629160939764019155202771792015391584678369832477081607882348775196593072752790462890300178992817916347847165601392594244122551856945581925600880885584644271264100262122444749431771835636014870532240331972389628719775000718708856603268834330765795124304804973916470361471766985996542796702510110168519442717800896832725238544621303369559516127060912394388918617043481037363597659830242754031070647203941190465909061490002952188329608610445190661702447430508196741785000259307788526525054442093546894956686371564887198263237675843134230024627198545797971209868551248691237005921886063266296417938852981108618668430424304709981305141653115580825571137060819626315016850881838865442872948725212258611373841693801107493706847717326730292525203133460962879226029590192841346225629742961015556394832700934968752752539745465218347854586337600213305495685060416508674465300383243441107519376797833145634246790501218683193401819451505995945242731926556976597230900947535027344493427406006071840611617223293262610713824133236054673215601339181683770085633788423830243868631023266906533710889005449840608238153996806990218702725759616801368228659202046576850420831749021529371211499056539494905649020994747979002481449868841965017672634837011434647555465755030231245406741828215145300113757698419276047166875018242958270521136802697212476534415455949234281501905491727607143393065438244792115384603138661817799590054768897733682429306045724329525156558018827037418719336511708054112818878119799011455580939301300953168270471739626150812981944070190620180920598081572682671007694957709467645842352090272489673363046094354502073599045081103229051540876922929061083853676959797593927073156382875908215798384291840382104378648642399375996469160059178470713110691535743594265769681103387157781782161343991183965786820929356528855878751054237644337046531456333021402362888635739398905696786865793191070090873870016682863064443855552856695511494727413470010066807402954559818381396321645843063044803612354226218283244762792273294318231506410687634647370238539327804007924482461957594572144410075629598269745560870314559709468863991269626326288560279938056081049220867484627143636366974147608081782473146948534728214450639342095068016446469191628297843567378680284374239430164159328773171753605257349496958752971961313970420328692126854767503334020314627875060890627042745640241339199314184907117050078467188534574962230254226095540252298542800133340930634878509154996434841999562072583181968868501723287677352390504301478917303135654583057604284673829546536904651533845789367593202394207859719419706125962882615124010680352170978976969224247592581211561476043339886031897983348080232574644833746327078165807175835253667391592150093308034262465559888863774564287467040430593643685815495165920957814866111849044168949033195417688747448771975933223478583415817554746843142393309247812511133090060423793885360237644322010367072938856109339828676056850561043980580121257229379414283027632158039350744776904514564697589106255643930618354214738070312383775601280552770163280051504066803090495976384259689487275286718910156629594893195472307911656475190024708014516539575503788637068179593433032442129954913833085740811195123730849662140829909017853445694289175804491585613288219881100539370688873176969704921201623286980046588854534478937883964231335331213174315683915197725853050362959607017334777118882003912576102664806328765652713321335816778960212461874158863677772273332895509258890177644717407325473113400823354269237398756243758783323890969073074533469957712399330572658345161739973030979974073247467468674613969617881896084339342590252222168092334447273733696764978262846456816799146891261588107852719200653879169024100673567151046253501479915580658489081594292156363867437901262817042692260428490136812298456139170440783843405900821381721213189066643102806038371387829680527131012751699003153253794732266086635859293583844318720555187828861708217815905223347338716017054742165522184360632990576887173430514133834686121238121208739564183522578875891796388046137762261497185111290506483510754800974254669002721964677892094188655813680437512083783725497059491211994361262711188904970468426704572468969115713956761861158421040110708029015795607898256770377038024647673624537644953232080306721685313765452735864685736744458880910954940070374580358935660864971368032284314783358171964603903480196128602837622234489491431785338520364948866304323078153323255784099240609141031182946777462729359761819553518435280108126863409307848550796386031951042913328268844834855855484373241365846208986976926757990408572285591222381609970915154069509739407812813136523354683012510728018465695290711960189179872993655601028595519471186790869887311433191056923942086961700383808444298132085290046048314704200288144932004473487275720964536679970083631891546460405612987223739370831710842936535438667282664142366699001612061672492449734994028464434275941416299681684817380368223018282403063100367796766744839192581293912538674604357336862550034557670041726279409340445266086212308842367476005047932704590180980654040544770266573828112105017620566645955776903791044357511715307541738556283076269156861786360506284243136285037409030057388900380455987037626744818101355542122009687030774434964694705097152981329997442502803565350810955952256193546277715634751922218042059404813434921821172402494097258315614063675885197855607308170242493721257573745393630736951115728981394587584971506955274198522383186507455932333145333766398224063013872787840443399114496988645516395728672446793728840094474175847141272011554972770182724430538828593571280288592725489932692754374036686416655130299351547908605107543017490612342342915187592103335036839653029842280846105232412047096964287188860896284032575053416241224917805880489307798020885465440439422013404087907829737176884830844000072693537873429556160946716802671033826491297191272732660162895894764194128647624756333572638544283619575697563523328877399840431703661799723300886009118037229757522993777883868380043724655468527190400430856566722474616928601735978150582208184952579902467961824509507439438411914564939511435606217870424770678259204603347824067762099804106582771327409897882388823495042202160818701798930970434052304596792576380784782989569787711211659424038663746762687415541806251717960836681526585164198827316238465503474817953634995830936729214647007233749802549709085195909483886792827864035996285710453574147112756039465009721073965958100854109168400632766044399143934150071256191801298191440515900416098289957380061828888063974811824070710063157371566974717962230971001547262295144432301023944569070127504249918717554884843004444303726361094306931148473743078884850195478485614384167990625954738418235049066282467097909310182190164934275750654133293255380280305405518838405222995719965700868796887973026762178279844271487877748308119435299215541969595734435179677417953853546943534364296384499732330780680048201417981196912455442493936625207315404633514006077048511115557736408788551925869708195435299109182814811716664974150327009757722110996032855233267958069619918339682668439200050999693001778425723296505546867537893929033233185445841220638985812664192005612237615389613507608374027031974945426034190176463410871034177560426755806623690593942771931630542984151086027491886002593515881669962709177839435912582264785562508858851582372601131333087332735879151466850487188744927174219006669549337798571796356312436447836190981214887439781619895780989054334647055812437726347228105486277301812669255601502791903546780022466253658934074133285253428626123472795535507336280560621965733228294597010242570828267012466559723226599567258840850608091960636224437803371373299814423585830977094928647740747631352412923455748433608398682058854696170666041723328565187984732636920024344227990425517413246608833096905457590934777048210878701393046826986038142901677067288344962674313806899614820111073992210035229913400323512024974337756025831704671088115630095172460782858244248634426119224148202859134403359978484022742479636362244486702610387739932293865051673847334314939826207391554570947178738969417221484776175012573778762903121605558824169816194392403265285797656069555303436242335643023443424967416392298685137976755923765385530896408658441136256750703580794788039567701910280264930289200337315528758906884789562505475051225249440022297483908927221801532497498716954202155539960398726496832717472796984069890726779015096018342105105648621179080866520718319799377684951804304311133486295030586998787567723689348069774572816650357845416283015916378921212960234231585669157775961786159078427022938201972325376776103963072466107696376260138462446531169728495120946426661522879737595868409724875718095135008977990214636501811367381787087585966867403040013723533001871856708332552814454937146244402319386978285404275858305555428798079132037172272400498338817906446600246122773595297372226515785034204536644039940791689313932167743584622213206701967912378064705808072235860973213486740092591870592933080800100207011884184455154732705859335067907446536142061991910296111111913943259717260881578366578727208904089479552701571757808022486374373463531761702780959303453813905187310816573342367891103192244416942063298093847635574712435598728384512119510711951980598243308863736907122977747273874929416697636370697048002293935933052093483061061052242765285911894960716524791622011243857850059150941249959840543518775167613061670497698635333970341769922338906785417608327465844733713275701742417155786115379169790179762312053328611243918719472944561687989775844737922236703289880977401176246361531580149456083742370925129296107121755429707074242204164254647606788989258015036796517834396478195004597457633032453065312069123997833328866843417085013817442708796815671947829113836859770891127010767209352482198690533605189036587368782446001661187090946038437756013647920034348191558556870773612405780662756278902045103417730982743450505128238184382654891900496638068152049015892980766335399633945438288222399259953184175682424739643686652452199906702148741870614796925536898073415436194882833205719748497763790783510923028898500327090711975237424342430266766886621464334432178592218625105403439731603505099863047235487996459784143196112597712044437486615450724280324611173549128487800302083111893715766675890889987844454354054983516148672211850271938165595063352074146183185155007971820057286400593546587344497257619924899586757409517829093807972859617550080156384509494775584346288601253543993625200586081753899165686668673571877579800330921532091558712658306099320018562773799011859154831771205170320252757699296183157507947516981704970382482065234794480361797541047042561078725348296261236268226902951997226305812173727301785451895963303985604872399319271828136367056138764354360012887119689804807078027412956595526975335635677170870564992953975503725629626136462857770660305302841500103293008190375249264744217616025489753617752341002705943828505142925099303494739720114686267917431079759909469192580421006093837422206097499158844625702113376477572463058880866996049412479118045051530906312372855327759994087380748865371001512706463257202740348248181717192953522448531331875763972355162040731948179384724895077604433210001252443821043345878600469549795908521314481116163673397802500940152327979390605085200050876832713184469293912712046840197673537079663774804367474660372982604313503680311702686921796182905408213077816687572759286162824574363637462524293416464142752668040390124768725749322860876694422496461860786206287293513550114119942038494366356697404778457765551566915275336577787871318736892918494911625233578635360964020787753484342320099011552110166961296722508633401456848347830843783713973054067857438346275154185098158251794389236137487135084145386847102284512599328194528944679393820923064603625537873177443654319860695383067715520922748092784083000169099868876592461803412045114289590649005121220531394387431324971676826682447755560746072390826892564901809841446734006509723097888835673263730525820993260651071441631236497769545983140840825714586133473754482130223193796086535144895854178696184243080812365406168880115911759069515511768050648318243250810273486590381539268865786502163310359563824311160022328645563500545935074088218708474497999476966210647906141656280672202300909106690699341780286406337458229774078106724560599177162922740385544607696242569365660101033482033204863428379307348027165059032882476138594788777436710154160244608766420416264033739654325442162913394723495490311938131690901230352566566488618212459744585787984226391951984052848996650844923225804818562246365580396603192495591829504969492667233451112854154461520841265539977950895604832710284984119944462621593114278718466248759565436008519715499505982496069235370226995025772828456793389449958227115125909713498590038505319402973893986825222258065440048354965388580849307635562967723338490677187183068606455154499090806282150428092121930808029580664907047084837617728986089355879133228764975932326883516297073045165567138550636687806431246917362341431779269894673225731954081014018907293381802682904661768214807409339195118954306391309658489284316040528240250865745990711821210844411238019170505377494199857429540097533134940788838899591775003099123107524273674172351408401978851251100733385726638560802325897954514018339413228467450817204484717199548895377790264869380863093730127914319193569749753489540521897951290000248548630980172803468406551846338900401121590947787454034034872648358431044655147318546819197291886293987163226804408812870054005830673161447853223576924172514319715634060979439030110775645446910032278471666832234970740855178339444045393007950334617362189549307693280953535349803893931341912201938734756634299954318808468931214978524738967927509255694926355317216028077507938726917994573340098335706744973661490132250530829146112837834290479294074904487324953015866234597604594279846958797754384232469558263370627097463710649491480193273466115371218106451557413240095878029607247603976189568059429589661778551808990819891767154523888350533463633375187642628284628847229078989917776851848325219382108838930803588227640105091767262843121134675128328724239335669675620147849601782287034417748367226883330362621728381679233503982789541769347952709876708436038306279422832624605532628704297089789596081452316796492608189103198594478719066355182786394049207222126660992857532114498159315317948041392529274936101812248194959993765131803341940913078941478562704830556623803752898981592014573197119208276954787588284072774451034139865072546346675815647489053109061499470507418791644026659117430470061957952385573294084296322484888340251286212065339959309216868268693553792677821637187261444079731708293375319937357618151646713100920238266024473323729015601723073640970181853094169167419184794678639399643787640553761881265059285968974276427087590247866728084483866384593880255697230558435965675870590914355505406502948124197912532157934016907172405973097292075799694943330392350816206506684984444135186013556139923384794229823632799831850732583903845446678196173735773326325999453663137492960696495054659308174824659464608920310018878112484171621461551352373748594455495686512289629027073519850238826202024211042474205592067425161060749244686360448131970282805589726871928643671189114999084347473977201554237191450251637364947824604381336105164387299160832577767772052619252923516745568671483621892941672554617627865644529318849523915402730953059808801538398458578683022731919670350521134261245909344030939138443089988152123052666125560730169228913024682917672570071031887029132121479606216381716913752908305344374327765821496152034206439999619313968237871072697413473497215652805241803664560720085542464702515826081948606301119126516247322395373358869185523614843809075092749782098261496178401087689178864508602334251380577606735375185088201499857700773962189577564041747754446207756201020818571326210751364400134445041629517881629158908346343412680448668290749625762497523411806904091693269021952035278419393339696277533257037134161979120447585899520101518058719524311098022267077214549544863619841699626246324223457031619092856005305032222281438637327395398393694251407392198748173248407950258630833718535528533091897759973461956914716392726456111754397260794131821944139512145757922196861273479564580107150803715752882216067629994749345058020891683941977228875159418254878016426506666274179483685314352766772355145352193084883220971688950822029022684715011531780153588881618975668952474243855525487016472119588366463911743607907077094626484872581777303110888469030963057121388790049076667149575936907157404031265151091054358861726420172618275961536518263977962639040976462973014118395010262376159952926157283696055943061708483215523521060543324361967605752008020402477352865076254028708514908462149042520266535902760887797903093872742243004817571498199276213120680654367329570277748672803456491836997594568329565005296364682052506027854344583308896666871726389684554334994642490021686788341125917328759320275350184610593927835753877412501033324441149654524889236703040234759129429897243134978735495324544227615325673104188859916253593984743613744707785659607357788063266082224684702716994815552470671231426481580001659384515181859246730240236471489882446903129099459314244249827309325450223717717564814512178761991029142950131590025028071954431860379855104524895487924857681588053059067785519501389728280549434222103212335958729914503026441953120756807304459454907886903898071345619636050012024093236821443512900576937404852832971343878844934697547660551125887162930947649119799672679242696834832872528086527299668169548059377697773595564659755475626340013636680624813224738076251972773467349135478050015316652034588006546049245360437797983357153910120001162624753147065722806665730159220297315356361695281608852998567116826834154614173096400211951418741466545986741070714905380868976536370984631457648544851081376917164658095467755526514163013561289829074217392204377294561161678370386811552755194442189658557225188576721066553039201681687058168560757588851936994873787132219198456655935304123922395652910886519953061721105754170290050854691320759986708405252990306266538953220546198966664527068710382001813621113709057615157252928413617237234203629820620264994953430479865015305222494989891508665962060121291663852917304066840411734302497795233587170380341298726720810975366341349882236207859226009052500275217361028488028913322270113930984908378831693205171877537163173625246868843208716535418452901065145833875170894251946907207899987738779325212524340055509769046374787155632358342423349498095947983249441898603568772424477305528132202828005165678617610189824313703595682215866966016162730947544411471624716677338514609037967701850868846132417903780268199072137446029325292033468057783435797730846981756552155764150123723010072314558805616898168528230237703456598679824874698898742592170210068971431187300450623917618820543943174749876285498551044097032545217553102697562661654032846221843693769514144766193150923092831547984333306187930157130441746185495168006359272751782575892510501188561730990526652505008662643084930250775209357160187320761234358391290582617988709835385395168035818083877336947599784171662105179124007012650581097731993643865294482552251429463557662482794827654284551740918677643793411621173461346992478219166056432132354461285837726963577917813692736840554614992534115963405831458324358156042299134014150725768266732933400720695821381722241194425158937563336264306860103188319531161757891502633685654789739766095236152900106208005511126901833691311407433895858287097737812928470193684292301729994611554748103617991340668446332039421610840217747906819889317817355069854985579554611261274300079906590754107255745180176985248352438389455633627714106998136879179008977066144403321716592484832805322500147253175369589816484863122412760023442939038746754764708575697277205948666913361398259892352327563900749716629528212119433431988532841302085636763267461496604707075605637908913891070498045590823122767581541345906669985214911973577068857070831094578227300168725607779533859878791016042756061208881465214183028607832235414612840171702040857788081721209590582209803109894837072628834641396219604980894542583267256735959858622523873286227168521314397851819523356964002048140170031375293472555730150301203389825443715569691895415659168183074433977794368852037137790378405830423551139393480650960042726426131182094604284927825478846950165781447928576103313103741960546148148167199468349429680032172002642287844553659319949369535883521243324787402889738286413575978983035966599879959318672326316294384517594165610561952850233253423874389854990671307869945002917701666956936748829179340681340254365943168116594093363401316729339630134701043794769646136168902369687868014231214100810108948136904467710804642265431583462168199289366404840035005364121240474153868107639441717152279117187554833483894567134658062201755791168120392280407146439908132462175858020139008069031379348454936912964110694592817523172408874946697222003215976386114526775648958312309134357860944983751666465032599325786491083583728985098088318325536371553311311420142589167880693636410520634701960624935311315397552951346851811093537989018468099865683478841874424693815757480760265707110455163093007131055044310639099841935253606503058553099510678311395344924249738662661958715072402352670052052891129755308081439355999785781743305100326484736887049757493112669112440763060306879917155742761345995118930083083261391500351810614607615663175516196975787014141678319824302995074439449109126865878570180887286372710480661428013611930552755751990141736351304495809471595779106450553299322318725130914298512014842038200495737771408951871602624934347567921706143862478608171768164722068301454008410331224702509632395570097774631615698317320103894831126547847139684095972796243441534864663515868766529157644088862672016272356261663155506397952161174324761655565919278160181393443409704169438780720878309482744331479679231449702965003684500893535401763733345695597211297349374110211733821454948722963125646395452706393552530585063168789345919687026632303249452163864827389861858864965839726366218930789937974300710737231682285572734213489507184693692131787535421186553338520499874955034546273275081574028302239563568559108868242086365159486849830155734451661504648046427681486469065301679697736839328744146701120823245933038758131559173256089724372859903971845454424447102736823285408378482728098150776508480090710213362654322548081235011126221113852158295126864599710579239647174097489320780223346293809885910169317431032335649189444193728566519532714763478198774647137549265507479760134213000694781258233822801579630864284071220433803005852358815256615634453965673598380337716368901148658250892890221553243134439723246759605813769462761739493100756770831538317992848803853801587668473028298222991911547233862714288055126155803315900219026621938701564874294041827785401994430308596790612039567821339214861524157689933104442292559602232090945213022881909530242144203879350848436115657286674437165485334935497409723821174324629592804513023059131830532031428996240187264873911241109399840277880275765133645740931409023597121483781620638636972836013588739419299620722776171151046349591450422225312544783397040018579834368441466629603565878543205377565649587883043839650610575516679553662637309631194818945550990847904555775017682672057449727815033160081455670142866107421046551842617315924567615347080922286580457641760042654911182452890399816435899604469945428188146878641286031374773840328601216393170729664118372938771822247634240153566213783468523667167521858455824678855363293448345968838404938151953217796103989587269679149074275992894828563070431388068985094113383064015168063899830432302434777827955842600424189481977568422697500665987581767900754875023254543385820631405541275129040301783014678055493601220191962046812176010036452499493547548219500344219395446674130222001141612559272148753804765421735505051388279042503180311829296010937737644067260420846934100917214418333950425153093594692616843003324479265141578648243689454636184341849468728032532603964528860254583071934753152612776919821496793074104422285153907691074350126503106687965655609535435057130416790598414793243011601060330688852803792552990095082786896950740702080406012877658193937225764895276858881327874157739489483587640750131232839844859426764821279803269287921618202406137725441270561992941568460541830898982096379677363196456883843586312468456880926762430641537278148673521476488683355557056782902737552051270645152597189181250210525561228712939162685873927224481107951230240222964008972650562579565994809837389751357002426092348809490301969527424753823116631362368786974809787289209819240246917999508471265833311953583046072499793924246111930176315637141446326194856487939304809478542036308478038680101944214803187896591048770037030508907011442613213624272209384720948625961552094451477176179854144806620344490292505966043949970940602850039643923815817296663787713251849021122840781826499986550491245551252411039034967495975806817536567276246675464231662619908937281479277942892146346492506766519686042706827867536587459803686520023328985855419286086057406604537740924684384104966391462733056283024096932158527683195775982232642167811202471842545524406089071339431996030146513866896947608361469956165532172191295067108266215209071523408945321651871175719347227089068504727223682978660333533323981338625130088856006282118634946679975106203265375815187759898895776650892649128097893506831949353812821577005386224263442279790295624454856734925583145590688964995214714870498073206359477740925724176720138599260058676837962033134961506953341049755605401154042052417713655595108728444887576705168800833807480300092264763310508026999301812731557084646255918921539361328997506222942256818194502921880980312542144485050980193194566291858143594404585499148287535683090629499695253914087659969664880852428146186767519587950655218892533970109026213407857083198865806736791505309148344182730690374983801608978097304621046683500700399553646450500478106242963890529213335109281490279168659532448353681701496711537178039680816207811928260082985986040868517931890199827243146444278154987360395416980832593185588665182221540535441256882538812839696545852596388454585550874459014980681045480510723540308252866060834592512121713293362029194967148172303164323861831470034461330149520230886987822765727518381577367698592025647330740240543966137191440318087333491887744602559597234623489608980996425852577506442414827636207837485590413224030541516154744111469344596101034718201800981015941212600738896702634124284590937826088126200316319468057630086116235100449544620920581308992137347083888445021320726324708464117358512213266480076546701557242285851087815481703932894276920408610722517218119266555291372955883958518260807538353697250087681913639548202582032314492293853353780637133481995922311249043757274942335280918224500662305448868552779936423880840363310555683384284197515412132849946735741353652152323902485943366292521436739010450083201036013606132719227612199272985966562065403647351795966593676915229607147916378379625464049557958918942033103701770581689885535031221398357023142680329253363993365484491222480196565487400670245787071675031241799930070628574111520373083754446717533095882307118335546781792175389844619549850143326035838133784835300944738013795830896050925769521901081515482478855081072057694136873948928918622267018487210705932718124349609074746381765421790665572746838962267329228645386914969929673287996168966386902246461131646944070222987721636466435281075187253858924582920224973653162385131572897370519596397125081607725640362911365852645327979699525570648879090443171790500074975839442794456531641571263145146559662082865977225195125533959615156514507558837790324022452627483129295186022544303031846963291551435369731598141283449655082537783522318831131882937370530508038421689540982727826562196621899904958261351713810780583443955988783320286545624319756612864767252836037255014173581918738031099211686002491598543864111060463330596296672637389413093297751540793562127745190241588274186966224467153112691162478078374966406394465694506986946548567984813087188995886400236311118674191642719522358280812986354486759189490564241059791330855125104487503317522156999855458581219015119822131692343965823436318055792028529842925813049040413094805613191869288697985134081304927170857694574329941702398080916702498458801647296492448869593998902529439800683260502452117457652587309710099836359084045792702312950426060759532553270065021860541800657020505623910888849517347974462031455986593261851358671626277433323272401244881678870834812645755934684889529405293694837689992407393067994182264591634640805485574111419651763228261777857623349719212396911498524451306317952612843701062591495306300200678612984894585789305949336135988727117795270054978932329832653829279133194627799249374415924476099085432853577764477624938303366628314906110441059064689855324092953908989264884006236747776649868523683154974267442763971777658790375183881830255338741990360541665652031168388228999747267683273732784458373309373352984227985199710299883709044023123393469568362326547318645504242308851152964182176883241393678316320632329666328985784586149955802656234846447504994101777041735397244091877971510731208282265690756093035858069962867229524429608401400700040760643407949120605356148977281596257844804133844024459646667532930124449909784561114664690249477401791729100438608497901979886974129181451916215182122865452275321611003224079441568927895932495357140150877244171468337078162396386466837249145931107559859714313883539111030417371388765538710749174127330986871712246125669345411811234404768617488411557139232812670975752830136155257012757677606492842621025216428974518496486352575795477220792612859697765327642263990419748170077731885474589971715077093446100123128999613073368824210522095048848467996733917070371296158600269011899849566397882701588898902067793114293677492921854056986070715136871852942976812477054040295781322645283103966645223880539792780498541902138377084690681370794064621581065643758437069226386534789123650891866354891389885762133344205399363153863897746413659732598890102943760114221850070709278029787071232056673622641088419546484706001167356977428431214346010543490438025181787114855612551829670976967012886411721344643242577207683946198557125893627644274971738392025402177012388599138139147212805714908138291404073131859316340243761684420726132653976812423426790563818826546864996863815364185122590078327205003301476955327380336525022943146438859498527137619718659869955653142758145261091980202754708855527492087038624373650187325751224088968348923167534759990450006946971123539397834766622377958269005328148760922730665201926566709614216557557951285887751854551031436211978853563473698705513400132187720226375689277273468667834687929305230932208047072568386148914540119727114690878297352709997008164756145505346734775370300970726709449307350649295639182299425363673730262817930029125247939920196278826319588077060692294447134926371286902893027418120224357384481344719785439131427653024735014453551781575431794459197398584723326986712367033017872307917469365400148719337756574058034904776535430856343171863043828952649740147853775792038771703588015503398907140067105073199317993587115758715523275031700395941019997540778378199743215449768231657312941543786536041993621031593387037299738521744209830946840335368146611183888242318868444683069656102308316921865040661988735108219767111893526065852350553542719236609175561474126180350602906486624564650339782007291369154579147842824895559973039478048478890585300071659235879270817885738174041021706018292439720104682411534392375045252676179488187458517999688540746952406623979278577448016808056732422813074630373462552578386297721222271302115246046491400344899961879266638170571605075063496978830239015793018109969023736953871758566048197901366653628960458035084332875288923985963015265286022889486039209778314857937268529138423746728546746051779118791947551416198531497984054340305962415307669819389071203755273543626916166541674535998323580413756887440774707528518144187162099213801999794399951459138638303555316928125306735184201615198486951377829844596809246192765331423934633929029859998577924909205053869789540644233713653167801200675027312553079897686415524072648637317306611577526804693767716318987499831715383172540420750153206039043736319673317114976216367973626803588770091873751233201172731836148107982360872566384876256755503911028907963910446660876906528828584230939113569723311431141112101297552915483815919479624832436349955204109004614031871775255546424996686648322760296162022072040914673424985030300219396412574001591970269861062896928047679053019721614583816253262788228626163322122930577251719178935924480819029755177070918928438113183523559391266189091404405563533775874872738542832334493934344399307566691894670369879635705935482898901909617630345369955913584318822597805287076651776807858760013687271783336902872387507604071728966200734238302884447045016484525453752885210810268343654669918347480625531154759989454415793099301181963248209419986702906117606676868471671673305184895555742457522991664700736091989846266035087850954984144365331159866285525140001813593785845803993310804176449741658098186264455446272487455543817178716761949219724799520226489957031373398274149098400327725864463848558417072494431264271519996358559389421626168126389731134371948239833909668582330704162637063809344430640044594651924219542710168175953645576843090344740020039174037376232692557105636710626441435403925190911390891486310813158204371664508463072067138252926705834690627843157171935768626286411888562134184339895178113022157654975074420527879195412361688507006881024741360269486108416570898129873060177288491987423422517594835655590764514382442076200635996031619545584785741361323301816058018455809638815919451228917649826607751212634836953298793797890396506699063554661854678010342540096621254857401080674790662283809222231822990811548439188243855951967297198602871948621976075753965709173704937672919455907148391662856141982099220126650753501971223280593516158340283598942007241554667879575554580752303296791443898186159170016031140362165451142353158131852699617953712052174760937205149734079689527524294263060693898157988349916307327394994732693185092024917015352722524996659627342980208255936816294551220666562234730613619762460520409039705682431042807989694549574904229253064376458839183048470304287247262330902973950155651707253357312450512017222775864313035142867705653546906339894295261609594834471083175389203344430940730880630728155333008733588336609283012507464921938931672387100849991113847116580204144557728851568658372992936013158458591712249183055879352262391617470258014341315520667388046212305438290319008919577407783763405948204972077286532657064351632972137059375614968827701114708494212757508845335800947226728202490894340995822226155300638460287253098073267387617532711091474865606695906628551013181982830073169449553952142346843071575492294266754484075755294295717254428736182155166986930036789589409778981777565318897980963225429785150931968290025250400079624976507009478509371949682964854776558430117586275961086700957571109419563197864711832756748768721584525284573498086550753668925880898936378276647625801389233595472275830697723690417005604077858575426573154182753801095418640815768440358177765885889660017834691275103421832006676438416904671036902859801905724538514113311225772425790062691109221808343771780603825771275410983127373779168987849455027263865127437473627977107686940614622108948633960296577095986056978592945879163293410608832162706767603131536385629647578306815500650707923675096790564816574664631862015748897765004093222672445196236651697573289860510972481369986089811829858568636506399231761111455880446591975768680608836411461156074872459889346801325105579035313877479865838483307466623042922202399622061532162198886423395505668384431853089764238146342319687125613718291470634637050567500492755608782758714739696843405333337131790975924871445448709742734357110521919369561453252518709814343079349815414858654283380469571018080241237281817501035523948513080924764320953834418358566693842913948760434777212513148200381509918131179419110610949009347073551337744099908044000310052640257821543621428980904482128096000010645863073062694169845228290369896590445428302999930500260722270260819686159282906746237462962117236594136113057555192501388288976361277601589339393443672827327926859880226558766322703789828972080677611995464387779543937525195757129472323580604721954302799920211891920086079908777804458557187526357325155639087274233277172483077884010231160415145463090697224328355289498467556147114688388963096097078039547111477561331416808481336177836250735987543942687764617275081829235413206367570873231427656545115136438858816269522160635384426568594936031863447982830772324077600515274109654199778090861985530851349907159033286523103127360408804222210210490592492342858512145041326218426906521196772019031936986649463196091122212250197639299381124069230574952884969871090788598198244196883837187749191481809151717307641401876099415921176404207144162081809622572298302249351397875007091543355401950346842750820740161327129271169379774075804779617811653563428332727037339979500846539510777845447840839814984362606929425916468489738088128289632307251401268265786896985656936934037626220220899298585867960551986033858570202570619341117448998514284707530302816206007791669282070804443429642869562204928341276883576966880357750714105112498091313676479823432013854284942552709937144320392090046095698247785013148956898574951892098311879978175846579564654764529086230411814794212095591890312094366817745660117509600587144448131731992084637677866552043666848950190459369817822989669117661528131925495081629435177728617071909060374635723681804389046565613852752510269077857641369009753035486004329773519954026225326008872842697738447326171996853039740354253752281146860497019899489659729718101280313447709293881187996725655740667258206987507415755825502008435031847123106137934053804652612414440922482157222574847500567331697285078636398480903112464804909135404499216204183874041432385873449825065070605606932560229855474216629563010815067606730240786411352524136702228867599093088833788574922129740436740585874210999645419879856807571823245971051225836456813286912159429625679941910102281361523711111997792146380716244864405750806693526378004268283646899783997274130512731982942599298444197994537594768159802536146540939949460315902802187232262974290569470162784473420115428350183794300471503023535965835715620633260160182093424109009716915132045669575391436723827487646330798811055373006825293589554869932290860915829830329840343803683257461402788593387165429531935505578492492274291603055940996413442053210009803221069194454811122405313435213078140490774279235775891346869404237168984734900540382456877801377277875389031291406190207886681373137062486617867901123580274840076534210007966566921362747249747615898825851929628703216287701963246190236204936320220678257877222108566630682412395656972712936053161829027853008201832024371735665647659669849196576495702897454056324489122359415438593741296703645376553816751048534195647341030774018997679799240058007961644684653909249264552273571018482295285824754589854719932065548076856462866984465028601869177647531714039761279266257669582950791613935949680851642379426759391515535263936277103160234151895075272577358564711706850183083965808508328997096187082762860065916216425333764388474915836627985352985030761369359451928638943558827033755849200157770872155566144300065528742399186085460041768466218400817812587375398280073672543875160706658170782543550290600990686914679498719908881172280155130241654813830689200240577235568816038869900154395778946344336021649806888697979736090830586446989876183101215390249040492382437118040380399137718272349320971284185656987651449434071577981356308505296624293593987768076674518778054546277366006142866876681732642243863418758911276878761176663564843044817182242908639335714159310351440495139031931943109108637151485615233642293091590918884903282068343078029018835907469093241100583520842351248757467242004091936839929896277265409397591049332257732678399755210472894149365081676410484380674983465145084931996474023392840534036369651939179504775116761770352599652507649022957329389936683596599707406723151171017750203800510879771295748699350445751983738952222037866953688750523090455209662814972766840939366200414808468586159359525217374050113177794667853710149331296753954191866712698413666597033916026701770424343091167339520817263577251604407669426365173161443017467803858843386250690640675862335961834583368360004569079102166390195701136028122084463925998990772961890502093143364021849471974198499813267521263526438406174651181834315924170491765920569641671500710943296923482442975547107125442835775979072272104878874529386706083990361817956384911752105272854745301902997672587154933115378954886181591903614914513352856724852774635801473268006682739302190216232638089554622833456646673606779011605722521914443910972254030110646228564074656220148700548775050724126384563033221664848028373447717319498884359833651266527360158425389745008212875161044977206305600338639133008280479684392583605529997168611421808510634873045160426108616446820482600622015890492992880085628742026528416771622779077432927183510629879244014062939687654077483997651627870470347503677554586741943142866788351937545422814320853619630990561606638375622951302928977061086824614346393398391895019095634114124362660871364311258640857039772275520838624729961126321588934152617209188829094509136049401368358113114729907441066276256440051319665220977026066309160724009988752188590826693380304155269584509133328222481686907006335038139507081348657146291696472823603299179621368765798652434796848017116854814539779183830219777657941177691469083061361872234836604236412946278945643025024049949168567558069233486206861174276237331325660547620846369156974029464456240162097397700345552976062882204750623752398097293834128854678776010587101048572643408178813623381907893534465359092171853730010674436593286054339201246403421830097446695441101661706870018207936137010395698634351398922235378024608863609176477349944999958518164563482557803691279519630539538120117875023343973199742740259334766541914151172405527242415033938869528417338224127810772518922065723491339612514086393417621699100722374212014554421215185910087517442719335539213286650015855415774688033907117819991665129621573176949937181519954124050800868479634521201366383133744150342179956591687712048288154331626148985495338846347020213508707996312171977267115094745413664515682477785101304259068348196109301134026951817944342361938949401824116508064905270325924176120590791520159352337156885036749818810868317862189459082659923957723791913672718887405508822158497733150001658462041276079202499495226143188387122430207855427850022324404603436742267567653924165476085061329619577746154270393545124207794092759463868450764219846016983956701152698056269734699754902128356255343822728643424777089432822794750250080091535246334773609238325336203835444571246960788192426270406342610087704381737165336295976738979694090772596307372828398857579848671571646450667558157722384760095820800408094016010302886795904090143195303387667419278517866805346689482166862424217985749011249009827771483541799781271184499587990657627307464839580078688056869647794248069385342710625561583432459367480657532470338288613897585590994031711118708289271518120595679543256792546913581636379817909096494723600208258129641116912054700718789564445974143936975348030637987714036488717879549912060225724893521012067893893733080159010921871097616705084496414952277809089104593394442983340511546852455714844759381161744467475838162087061055308082208057879074708390746957394750526069980992258006904580845172205448671943468232415893801259595272601511924570139944266924731517846069494923620206264118754520536808021129937696270638401326294339332730327817416224170039379061807950802827857571294176148373578828894385170259002912609602019166547475581693314522393370969068735375036697595845708381309092797237110797357586866591235476956199960448783920226628859710080786429009891972077360764815089635545222576402272249111808426695814979365962019433843558781328865981902158061074387722295816717234938453299218825001799418958343558783593184623758074590184310756620721711862275737675013190720619026336339004383494087778892453221724031512923641099067857451825502506124523855371412884028213262483238044693689389647268700154542640583749671314768168599609618486484837404738663872314691666652550261953728204994216618255031715444887929224019235908376187768066050366714786768695816091379098274370044436596476013443712170964581088837927634790656874289971895081646566236904474309630970949787966664636251469118206455439229532713853951802194427991663014943949577872085285852373042008116554979939636961798192161334972953386521698530706500796518136877540169033141670323481486947703746257968463968339115556843522307579592343210683484030039691178915703149100845449028843550328977142338299692668522049743614177372209064716986257980497278021668532237475482452836551601284909723559607858068597529075472075857905736472261153576176186019936906336924961418169039164019708495533614101105571192835646288880760987903419731205147367034410053287454422702388799716410165529417196006414403639196014576006330198903053468893401963871106772182500233482957076739021544780185911843801941492084970169689728970099056943256616115185022424238336197171869946783807376947576962425999252063674983978296583185747534500101582249471206877545498820624312440189441011340071094294621840283119515531107004189935441085644890119479079055832707219809382540834016657311609915875840363289802971794199818230745271618256895954143975429068892701683534665887811443772699151376980919405424764047580750116744706226808559647008452667654794657581679892426627895788435572486248581668059038677340501809605839604131354095090304528170331144653987170908647087522992642658569711903907139892289589764668207103809715172599079926597850991871138928360028945152779054458775527120479790952759493093962753857398257489836686113639271102074333114978620636646476358864688191119699927204493926275081318459390313148361047178570490637776024085443808531374142563899996711341807929651690425259124080863023722995781409501009766003189949092435715974140138134635153316597883125609564518605633519147349348333690738470949384482752135274576834269609177335039161544811126387266086138099990761856578634814510825953656018177110158362097285917705006978352086062300275848898237407158433358588664780797104079728869205059338894558360721442282284585243912954719836917040399354204406140783892598278053127543302616407306792706539170812345225152863355919468222610950792725389404964312953286605768525830446692700358402570005149445982847189312978971074975406567545659992359272031152250637206656915564088359761134925966490457353484151405044298723220646095639943901915710956949349758667709204166604373394062998426545599708343841281824094621009515599820773901514889533166349823991489064707417626183556425988435056950187150409512672435022411166520094049984451333957518825465396552233209698805767480009617627131782202765607588322158116590041636447275341692471007136054308611080547054944097178513531319528940276521553146388706870260913209832404791615439922013115926209984604748661765348990758069592806589821907882028755526895660248301299346457121652001972675020804533794054860514598177625172746835713777274675772872343880824348940845603335958742819881493582393358840578850355745315222265604628547864179315296235130313172371672686408042610505198102802695123011677989416891388863991412727704211546854079935519572996943724800214345498251057233447274127782102176643818275343135916332152073586766545961713119599759081093722443035007238098042800212931720888995718013460008879835259336900426699611575917139045080051614116129644402741400341582397018001430190094924210173614533907569190029836692416172045641629424692442537524459603846043613558479494930157061445465352828934619276516847553781241746809961755916881278950854166425252016271928685125187526179397384525554652472405352258139494115254880879717837451200788529505363613186697078275557775406957339830024391600200067868421161806752308339404869223894011017224034417160714076327418893389842914017559813242633616613386553839753112340081613087016731504591509849312230351953943375194985027757341430369495060609516714478777321626222699585986505682964269889890996698924805230375870663219506896625972194241631243462372481703716668639504630494071536507503657822958866368852461341021455589886795439547024381876053616779274390254392158730106660015749373264619423212849007359793561381296556977866685510189415499112416010918916439599322493065786081303537068504377663045453158056138349684962611991406966616058836017257529628580810566005783123268094179467822542983680524946529566579048864372926642196267948476373066978364744440826193025911775853160463194106931230323876964150742092204756233502554781969712093095875670509792305028208320614493001841582221287080398113508989296139360907335895705357010716479368455691534519562486346303375010996502462441239134048838117473434082380025639451319879374256711650146827598534056006942450087384589632827998931951864774774565746235150989256780084695083334653172734347538934599901583100920009773540758927438235413904042006648167803374304818951716693775883787592122776275105448997925294405740634627529240706977323141943793797475644613904589416642675449193373499373908749363831685442164984357002027666442641599789970353488059663329302258366598352543953385905829606914903961512637730248583233676150287442068364371723915598735665613734767464932422104878914789318964680321623264894909386338655131071456384706458306746662113294966957691024723045454113664571228478463494411765353837892087989969528696967238264299450128836975506800198420135616152222265945160442157773961815838116084457267903058107897225845637066400617140431845612685618487218671879509200199596123393642070709757550380029727492963231765293898963054216775880637959815247080288831000484378728826308744631233479023901974899374031130275658420224285650926642714244198769772126554095996065001167116975004874095474838456627860475539023338179315357273620976084249676327043652280070024205450090642816642157266483103659683217386819781451586350326569513448420647838065014785001895276808232962212232214280562181778859385249294609344682499800557624974311123635905179290871106656323190875969653241454820118812329984807688084277173185613660489724437061138981016686750675052941451477075863112386892303299537467300038377140607309944281446810137784500018466239750104804686872392592722156949170972066354228001970060409516194746044396945618609622671023461926578661466505403581264770182698253238040287449490176994717096337970786094209322815562611122026228080514988023512120889995844594479962321561540324526680012380057315985084038604342320466109891175635896308299504713568682730014094974215721816571934983509017938058566655494948840163781906577271390972361691488455175783242989783704479033450328873093487348816775188079609985579606678832906606498531170264012554791190004497574883623194989123768325800897785241404384785592023421395156505653706429239418003450855027848193122521577086909374528439238871307287526849890442715293302677380152647885631191069546334460847585288630718468780010300764577375692925255070634948896522008438572399037691252446372876868871363900556626657108197206172634225829127274995650486202725401762802824561976807622418727886010343170985417631272468668074085766159367179816536653340413134632189636106933256866799934299325574247601518121842825870777838557398529614690523821423758136502489059468440439525938777307979624764450666263216033726995804549358694797352314656480984543746969201670515768100729301738623608229434111630604602183903550429139114387702659213098282102181302208411853160113121148268670955178861416441463939236596196363171195438206458526658863719224779856682364910937921103318496679244235997495677341027614433577236212763745361479716968857273210474752988926936217520536929821490847770403022519083195108067337327200229179637679865912531784124556919624950842410804765638873430832788105530239683723444873912627753758828689811248461617792773471767280158016704286433510132615831219359208013278926646368807470894720876339391402716783819131948099583041447194051946989002596378275263040557288319967800040601890164674127977945245477148198197072878098609753765353254018480452367106959534961724339642087013656886154847545139097423574412360693836356093986864531994091472233388676376329817257092584891362256712735977704910780341713916356544973556126984646074574509986429556005131555828088680112088157841291389854395280177209940366864532781404539058066275880217199865056869733884251416003389629215554325552602300915648191158801321373667031094840955769419133457779356482120861893740630556854816154920604319248578387888668517744589765234134371310908690094056498893758139267095745135002514126242405549235060870649353547253060652477198587696893669872149237342510856633461362626688568908428161730480819454074212555017834173999473420363348702913343812518065812721393133669270079125917508929888137949602996664196584610438747947801714909258944263366077641676179706069688697049837677384648014471388582317834520677797138429310885175273409674081173080727923538185551269231854193046106898368562873411421033795737638173983339434518519670444004610847433081150797891312464749743798732123105547800598570971824783043675755429409469004996404105451492367550417725524222564157725355360646109336080114753244861140536051229195405736073723178527216748382870289359905828702530061553645171195480501887932336497129289527606735798507524156639769703654656673786129470520871633226916641325096946058509137947203243870026828859957340449101669277191944141619998111153452877529602532164857900439960551753665674694890542870504547051779484673311548794983301087737752364083264364938599776823365520478860885349520448271297225563058954462425938527474589005980209472697600955031041039593455047867519225839675600581293113545130393824089357203908171827617481838934030039716252653370663815464974660373709234420169172177525422950544422616324751540425957636664482266498979067835623467935804652848093413219731562085947399207351542912545200023291217460820679158469722471585458664685960728907316364535737220059547234095720343033824697172972940648199215462870652184680706310548439576329383726985138261094836431734762077214468569949428718263408457697533298827129120673863610617448477484258409276255517706067389309048426430738932768097552652498824280192555638301960284112581467781436039468251442540005177870407927854525600065798694795868499399561760653315839215805106000690588977066098851530817838485484202569196988585461838933685161928092855965273709675910806921382412720728334429406538825267061435216109422408519937633959471123006485537735773515105278838564167345674848318112339565691629833250980770186003570226067568408235515447246286617013710722547806586409373477945738465607362940123358975045877522643610309930290490139483185194807683506881182440809837924863814680935758716183336303330732057195624892513190379796939278290308185931051761285538673346349575233719631348667352203764624473295853146870467360049889918649958559106328957989148107989628810039415352162730084244040277264894371870006533087478225203910591178955840145695615889247530861973830187942361800289065714073342390058599465208144185132864919103179462805458125295287444381047762245319946564991081953055802318859081795856145025231893834527860931171961271810920265697908954140401324693635889033369306920036556466263541426125436623049989972230842856838631754174681532290671452539340783763246863047271328130466676437168521253354368880886041814964014539241966368562604050482164696203120101837405670532929909611813274092068994175173772389939714438484206215869590555901283444297387035676051110743903733820790844174039158751634262202635725196298373455721481114818844708565249596986232568122726067100551527598540964081861180350269859246627929361379097409700623065427771193268961660431860222416821384648433147468008997541776546405229587099669359899448069909288521357255930858446349363955374899681194342708886809817516364917799462867809905010182110004477482413911967298522816855112797769076188063312939832313871136773068833825108629121820201036324679403644301347183761079018455843380925240315048171027008050304922046329694438814284243638270811398077090339449388762617235234269580712970276859616716112797163359376371921572215711587401242668550780274530779446976020059093280434441459291157394180815440398010114247065314357833126963453349775854853706783601829558095554366660401469055134963155278935440100714655137465758739187362740625691320071003846805422414946295750338813417708243176328484289002114657004648623115636682259316137509648920048562702866522529825277227017889032467630088819053602117759257828603258658879409964029458374100761895475983279758936504231294663353165978568835052771482099277310815398415515415043767292523714060895007624912341121505069785035719547973127603468128679103047850216752849522095116168755271304583990365712653833553871240731789855165802681393294036623551768468188955426442676259361410246687219524546078811102596837557995073619918226494698977629873415379068231532627640762278835846930086933687304547237783950497437491046562799781374847034809707301819968851895850522988233265010575836756158924178245356240211337318750321601564083912932146901979674750759500992613999617876169583452366761753135448517505145110163025571852474568873078872662792332672202659096070034210020174590437199746194817589313851582314395866533038640483197150546168308903671730436912118306567704080468168245150266931518837156277548720606768936844813593110866806703542347893027159917607192463760167278956536101506284197301567020966532783207349682673415370194454664235220788092033217585617755673240145084959841065592679641514436463493828777593516840188552019107315762894222967715155860415783840907520489971574941715565349620970007774520879133125806937287734962276766645546309558823128810764196308207275165656191066716240451256577121523290911278127562462250571179749697195477265113256314342695197652176996541356803616247981907158586328842637975392606810072176631269594567152036165690386538182058804262228877863190164312245322328014246870446159117108317209450962531945935419003909330979440904603692550620920862991900220451764434677119331559231966856657306459284330741791830059292193411972984524502223800166585533002252834961274628130474478593771594073015686812721124088490776688831438206519251997643200868263169883642039841062640736214749157563216367032479205630413857377118847887315596629229348709177797230681221043476040050210236107796529099266657007971490679314472923730917890267467549614006324548982070632291925531228760459289798118225733966245103964483610108691681760890698065689284462105838578712774054057459259800327754499552204892769162228903152954530005524856528197439233954812198977218485952510861301412872582484925981964472311071830471055828244806577861547301481415334291906010865738022051685850109630671674593286572922963635692295650764260794541322173165314573912697498516503615868969652072323888457730708061568785165750752970249219931081077430125906127165314713655728558344447804797537544573402595402592950666491054044908701581159547752708575441039324881755292634936537688382833929371283799956596395620051464928681337439946304925945225807021579921433882571379843718910177390035160322482812544612667945999159330704532302681946112426620549725026062614541920994349416434870170935048455891802389974985301417968429694557676198174034850943216640047609759162311834436495499106794937746666908536386029074527894852359837025141184436334386637077038919848334389056100508744348923408464724108948864264464672347912664938600829195428758691295603579726314724697617091134887811357751701721321448586707829429492583677014111042381271618449178146576110523936279695765917902122818829604140685904976961206895923591782551086598204903618470012670579455070091490912818252737186554984083193065664484311122165285862732237786900784071244229877221097748756519181241054949455097072925431815604496773805659641882051387528916614784682196317372753672632797433780980511263702561715197620248785992823031655307525008947940617703860415267426184612532133283962133115399821362452129614151135149924837976823686967085050511408248935514884794511946888882777752213797179573560979136797156593699495271902228750932551675121103795035238281818053440669611629144544900929247751002526165107587669995362282502036137879013701361578486473205482941988615017987260265245832745669019392155608287800930854856522756426233665449477900384273364579061505454845658359361480210021249765377313691196218041438388315930476308125302372151102892021113437085148373423208107011297908824422806592861474165524236305049535020278438762209123941378483801535827884412637878197301489623160563521197132806739265674150163893267366017987416417857655287322416057583256154139633796751114103279930779539898050556044578111740426349065348260164900421383521160718005643743325845267762504787097778473624094937621872690286326765871595067233014734444305410904428935148060579090304601366269608933244575218752646494420773112431982552516738204836859034220030522315098261991349571337308551055935400231351649481137662908460945013061129869947509894708533459162563096975971300916916508410107499804071698066517156738647980799289687824949958067036879526228421484242631709571322640792029745352607640131646879064320499713902909500143313270271162884477735708071339944020453068945580385000326227215077652737514809386952616338671077119014424528101417528110749813438075358324573815652204869126734650469840409979541280736068749118276004133430852494254721488782623431622546547462223121181059617298218999387578181338491728640043002148910083226987743983713057898023446033207215779799093600447797995580041699910866417920652441762521842550672153685206387719455289144417105974829657300150122420317503349221450260434113133484530212136517746288758662068577401995245126811522655748380919201011782704764389051258153799034575391068952687628935502015765691599461186498882938338469261883781905352212795036214004249550481681639955373370609855460052837627996001526868295164023245963057290204534594993794176870536084575898746131690807765155484027524320141686900975528055576662797366409678932426331242326416958506184990627922058969364567299089896211564447873238599984747506492776774289603963028039343376142133537815607865599277180895103868235854844802336151563509933497404607626958783034219344575137758173937881384974704492399278155744079642381314759915641416146844906158167265054601735340269357803449059655232706337867939611520396350242862775124764665958306900004240567479921233991167910024495885631900670364608650768251808511664790447476201602883712704238907604766590846477445046557987282997067579795665207290975314472877385293506588915805883013713186030615329798872836082359628209834169621803538546217082849592158632129508431203240482740156119545671572814620436119985570688865683768434869077029576842665199950276752070016289270342187666215290474069220074341866666974849970563979136476897554338517797239680469175552552943932314559595068362734308189938781199685334709340849693302049677869418874069996480562232289377355001851848466092375468992003586349770553262606819391364612369531869295513033851901942225285464003907777544709488665342007962367504133398248110774126452838895879994554293699052890464009709800986266317958208194592165429895919534216482270544373249328072582583190519762560477797827057199316117350194727466103990696763821388132040229085779536061660794445733389488305304436595383597201039935864097349211391020800591349452834850933251967847684296402949376796314299376583119686524367335083264247722686246948073722146609614272544244979979374152692980415156981959674300044326478234331092275569512066046282746567765739198463378021920471688192633432188921351126209256032226811206354056822967254153655375870209102570636019647099417741588052176300614453698548994582910208812275465031101739669163830942865909790003336118864831938995172704516595637010091086995624040163769359932493253957051455840524603563452779224750215848897473634928190009232713984038708462034978134727972269046857501503400274384089097652084492646945195727224292352897305666767157574419812454689547654829997028745957509733370379954878114900607551818797090353427846739675059056125525756756190981358035076728682986747706080202930685618339478175578922783062506586549014683075852412240418728658035934183708096492781673070681276777731488376336536389904831947348390736365475434255255215380649697328688119157766343447448462766921256940343231475977205861875617925495806039818544174040856502167781923326206619588289517579171952273779034570427016151455417167660575346863419290579507863119002533347431907629153057655115721529868716833171655285462237702652257137561275312087892687896345709414021167240815548268021777422186316199555622892595496748886305515425148569736790240073684408718593925139027927952538832913249849175394302145011053347017688271077765537394121340597597681795237493255739668077151017450063291444897687501176844353245936600159871958765096481735082267119085757215024901555612262853199092265371681892476677581661480943705008550847250576415334913838206076106093678704016763989696387407437851911198809356260481744582210314478500764211898671573251195352780846282395037844047392441720126525827373579208744714428290990540619015562871414236298807999126071576180875657156221264136271286598839273498526321469690320385776640250359716529364998301590935617620276898314961534786878939100171087585679648740179934495376688814063795557916934003617594899721648607125812421167481642870206772058273859862813218415854103090323814332852769886682758600440973540496642707233788171355079642549472265387884153100151190920132902452756327266133414960061593040845962511734310206111946399233857418030870239514396911863978885467610406359346696664497555396394389729305435116863203310842809374530092028682109512189413035695845307415503722228456989525706219454371966441860856585961795400268662662704883934006721248168578601207794465902551491705036396187240699933622949877571457460740946541793600132733915466746200577069665917602056350222450332180503598093093733797666149782150206277075218340734653848565661583140830148821912978980704991618122019243485246866077265876940114289466356390292258784156155553704228585273659307042802997683652669296915182555691443236622394962529429818213649685698026326168478453390523001358165393860840587198682460522033063834568865501133987822870752673234295906038578482569777907090162174857722765557267961224775485525589078334249606945568762576223469167492674287793752021618295142993478506503378109789299030160725557411916216568680432645260802053183153794076601737054422627782089753823564306989327688559323295377964509940416100748726004608349139845907941966843952532543577643724961885909257727014874059171321986603595907681382311119762176042642967917225576759043975054968055804995274873823850830845156543258145475110188766844521277840328070445462533670731871156916429129743454408599866363996674741801141508071848148223851254857454325928623354387782005712997301077179311706758710548457256965491331384400576568692612273209058538458744585383016986797324604954222179858642475349722774387521030854991895349371973229285996360657428376405344458805096240964690474071174329772931649041221407595013079126106497039315064034758709732190667885277291147495475919463629533022365729949421881467260495354353841828726070563186948932016086682292671972688627501736551048980777254343669809358115408728970228057374456214870579626422159545304595129775343386983612810026496619927342999817040223946926358020106949061374576679276709070882157280828509293431595297321488347990375403612763320986462140523236066000725780074474857779481746695673012934149655669131623992761248460607525534674059536133851902803109464550592165151483379749034013610489680617114665447590774703781397254788280828311375173038817301657234650388190736464971930413102296667491431908682151117015291263454720672624791542521328778596032152220079388659836493144289277817793002762533414068402740173173241683895176251390960579674039347533022234770496802694462565269031198686628281416622150439411122150706589100777587912078993711292475499377089332948110536541784250538144909085978026673316093034281820138453432281588673683739815082662124775109812169580911735633952244941804943756922632405403853000879373365749218399034900537842639111543863409427656448904966722088581272553675666238101278772242786418561127145781143726920262846326771728202907154533278414963638838540428187085590988958773926373547469921907717543805318088884542486389849077010938546364483628891300115391521714911026171710599513525178447252113086637740706398143939267132638794548974268011634262444992626279650304754400090771184211691594963624105417235586722000113939415868782870812333660433057470660796444942052271935231434983084078187900142552871049556739022970556614394587499703630721946036054361427236717966029137157201125002043258741174724378368481039843052415288279273087960896240782218316984789337922437049640621845918367811325042023357609173593575932434880642347459929640233286830633430239457759358871289407303144366340316461250365647494698807499178951697795585829855621256190879496559893748178630141518690830841916306530223780442117948255641778330791086721115908435977993509776525454557972902409125542839322156726027714873033256376213725568730175651190111813044973549523863133498813164550283503810282736565940552935272172730755900833029325766113439962223856727330437886333138507528944840480386749467576202401905039295961692068931421944134910310000076061338897998000174220901667958879473228390593418026165135546413091921935996145660501381888026066927846811904792200407389895683968219571966181743895996322723595234656812373060739581103004097872259260469496543747130868749009596947779900039822283654073776761160225415778443666254507490280669871635244618917676737805330035310857608262112205501516166210611947853115525787151440482001228267204161568437186150353204677088433186578710048433546817032668171987628214656701985941954960759526099568684375567273186775974497345363734773618780095411550102575902572496854139963065847914268175756646029632444890991586198494699297612905645482306598628115628363459787922833748960942977711376290746674943753958338117384629338552864328002384437808914310567963639894427002625289160304557384746224771032139500900184676904933876747424972205989196929199862918539332624178709596550009988280993290187942438887203535144898700980950127597000165380560658448721364246022914451181786766287295231721132985498403405592101224019752321261808857877126289651085297172657244537785792978434289668151640778587640367190750431004988684680293109847103656578607190352536162116835730162261246544049805740088021642913181563387551185966678168753748121402521241658825619580905054944566437705667865771379358748303176069680615567569527230945876221084128093855037940633111701477842252056179994909029914113025384847623928430286107589832109489691943372844692170486259897645578320087175265818668576240756959250958876583334271900973156553649293199810341624506045626837381775722332034705288187832951966304813811059127652284090245851712752620195507677169744231165341917218581401687845780793527448605965119674788997234577421788959444465709987066617552770062510791946681143021977996932790709865798279488712140508587341996168427658625151526189770998630960679103156080308082463024835752864457546533819150318099954852469231239326689126125169712071528600260739342176618071687615606981457712804270353385077370721105701517051724977588807400100085494992964078534231104286972027910789196635558855410076679108525829859092876989231267397862160116545916133221431723122972968820267621861127659664581489985314533365255240364060149603667571575573914189188419280689171795987610594237815223859544996535991362955535916405029022147666772025440386186214821705521929836263419376995299277635219939324930909745549753597744803088457203969799851541001548307995483761658745013892749714054181278228050727157776847510109485064978445077535208882155094808136960288319221406169484374446754221486487196827146153556550848606755413649105562554811539002479278187829621911720580643336495012350152709467657886204012210046084082496606642745408736248076231513236858604077258312073912744916739584087346055792069785294010329128527376705160768886580251111105045865956359766241336117924503452699409031589531997027849681637990727759377512469382566565273217894141304598688092259059362668166000159769727267217609036840162018676337329266598329159889380750128955831368743549923844651099573901833764830931337369386010769796498762688690623594331671587215579669719433249007876822466519220022826085565774311013426814731961057753402843667064055892665464237673202243221764081246634411827448529568491321819290088765302891834317230854854475497214201403583518633314924971824844052557767816213356650028805424973034032969954703911048560254007504455572575545924127529411988839790462902909958945021415061226411803505552408102897503713084252131479438221101993100104053059086348568961688476772824189621346978343693552211539654923498670686211048044072822835143716431756353549906253705393428440174239166551489569845852463517872963519519374325304038665432596689845884075352358988606409851498695644439656719873774075675582375561429819286230689324502782523333054089001793843886940068691659501238647391699641209451446820657105046722562585690628435194368771679960362844931676652699973057853613663876188345844989026408713934056600962455638585992078054534498310272189046328833433970351170587753766639495981566270596856030386374019755654313779874464833673667794139621300509816094791521101051486728596412952296318556306752915877592029372302087634098118608434475937170293980820020485166603855884340606371942071997045803824333056542580311660213101160496090539565276944944469727286747211799193103141634637345100392037470881263834082592939536125709599644487016260845140769343437907890233858151439801243039971439021115697617498672982675427142769050423877184954480814489563911561925363973691408948185827652813621904759836067805264224684360885809129701091001591550512465033451859512037553702674543524667235129708911261920095436056598150853934378845015143718298794922286772572973392463246387570529573700063519080394880485678563848849855810712269977006219960191989789020074576983573720001352875112412506644498436825188880308842447657197429993336579468163545285807448126027340202692564742242450895640423921805666511855881298716936553813155147127225338807322646949378729370849660149716428803955157253768353195658073655130219971444355504424576866087997808425740904178828326020851763665924758012056224969509900811390888789504782858670411684509568420513739819421364700981879145825585058949524322089744807774678877760053371138436820139055087948991328206542667986590100959325910858295504171360721807516605556586450625798563919862335747758158265130900379194457529513620087610932585858283199582631882283837421600980086150081023664731882419844054019151836628762733772683563137373624928638893204010782626747237132949875784844710598112719519608078134414929238356524217521823379129708850436298605728338234706916886832165213143443140759782132865794335132533554862293943602476853180424938525625596362041971180499048027177889892579831242668009725195747877333785682646676825912769133057901325721676987302120020702873539009971731336104519557422246541314021118041617773561815558155092704342304456946422719616162838606573875157385662873789995694328133252914462287415809567588426847712303785639654558146907941296462846454030975771179319771745578107736767081763237879130593651288358924370122960955628039347205539928396163486484734177873949556800404350872679971509087421000641698712848402831497636042730481685025392495026877620311321792775284648119417632383754357600517247076101117461652976781417393381868492879948628621449542515218611737998059707232466030324007356882748970302095099818280362258487431733731588658990741762122515645393730936070389878424642333872745976787858411818849040353400066019756757437931676074468637537470107174331443355315148387726712705627935188696048034162576373999246027123342961950739509486432403189459523161881653258735119365747439090596062453639522518106329544436957108244118524038628133357686152655408658529000080119593367475600358976668911446490990688839667612528991299200490869752613326598172102820828529122551457321104514414554415731402240839578441236934244555901010814080422355017828148524454572234731408840523130168780151241876924047546000217021340610727490736563156976850087112448380295688082512661716321303575982009090719126699305386919568961037335895687931684137332871312798793768981894202989603050667225731556793969905057389858135117260927993651589603907252999901433745209667941011395496512697851328853135770916800240138758471216468940132901293476919892916765902632971482880127733587764534725497468455875813380866909935286595240538221685549405494862235109706629726713473112459274695230972004044070861729109057590802873780717358532425270573589004629190638515849137265528347182760716596575091210549967347730129770379501434274396809629171897630346113531431619795809727324514069743084934476488174102496459993207457071525784864377193599405285667341178903272138041560836607206401068865245970050500109318559255831581638310918683617687875891608245059752545721624892535175182829741348121102357811560204764064952107548411285649531121677920348831409825665522631102657531677710445566958956021455941104196835575014608537985186078477073992973186011013332012622064491870641376673995745009396781305725507211757075539080539020040538837657935427491737930969544360216853484122224592166497919905955739731064456358368049709237350973392450644421734989920215915910548856363956745168868953535124844520869937424459782183156505145201366523986802665411160940254571957371047881716427049672481370691187004861798925349703162489996501551443854262817032801506155498184608636242676498042173711654674887450125616926771655239173582445672208840285947187238029623599534506238062056207035849167542522530410278008923879134764597661595596072884610342087772239394964574461615166819763354997493003906019732117741483765419348947704917835863223293596668132242266099791456402803747706684752594219905995819754959615611002361649405533642380045122019188465218272879978973327894920681358170827057584430367488454072914931084687786817817322825143317210874175362820462204205448754956364085354753551705168908705694395450802135973298385379586810979805730680018699525380757866215733373571651786307726330007870064075343402878109242350643819753816065332278498651478470052242600586730934194020306963455339811029555992757909232153244084032883350529465096485186077378732209849806813255339218102284612842991895398753776624659115237207401545264870429161388901539416167863862032994910249220776119270514524785230596438023074022144791919286821787450910285229299332195752475101370455462911795911867815703251902822203488755655285336760383510395661998772847903069544594126392946340553906137520110630229651163353280189674243313045991597298788991512920620373404911320499560217077266074975017193002175775867502008816295247968590982300938322713288691526021038187230949224103738010542374880790994474980045498868073113311931104833251449775151997194526767406341539465553328838467542724564950235569429817062963467812234374100289742225297500071551089947754192592368818272271542036247877750009329573404949054910044563171195407027583394728617454686304471919882533331297108882073680399529738249391433222262894462117894629994234969339981885576262458957493102252353830009414368370199552448584340554547537977158042267254764400269957803970512312301426139865744309258963705441297197921444891744249184569529494049062757501920078919000446168285048887051134640311733492796275185239192269995000870702908119293139277587455511091617460423300053736483029901257614789805526579253631023778521608166037261629821317339746721086005808426657883168984384880659850396521624287623229395472473737608198757858658432270766247054592439108597817338865661905330551483527475088415661560190191729606159491089623731345311254015847189466988210255358447689524060304695815106300763307471515170630973308067672956727113759176671668940925112883929911799300407704639947730753960707244422035487940497762499207072717770433505107336137378550419949049434697119169154776317466388875084953513135563115814176003949356061950709563243365892276405466354121905565101858899395689693603899009586948327826480074013708333604000491439029071995734225200919531553411372955727836575202913419715062435656645952719991792179985404856131706089840710084047059237882879386910023681006557519263285681694321660536339149284112102331476864842945830630838751242019259892263968825060981647975763708938334172601134935088259752712878736109123649910631135363868592520791646626408417299529341242257957802029264136111705301377076684130888464046874270672026899034626935112219708349007013876494551883834609054527162780031338801852161277193094057014034770563530423500625501809941974843524205413707927580557262313472756861825177678253056560774235820986750229443703867657710093757609280684806593049446507729459774171374580996959779472301118258637340872385031406196924584025236927129649111759441749842556430982772369407766827094235088996241273993727802226509760976061420081220629820707831836539368020414231968700879941768690694075521702038114426335231772049692706951240311116965900005362814505863140534164438386125518921622235100132695973352688232551720126214595636891898236269316822948082786806165357607072069611477888882472174355026339525392392806094217912599678217123965101153259244149491343313711732112624684529838171486308435982616236288645786041137249809150371593677048742843442426297974313254270334382744142894935693428598637934963834588300582260980200527458901126463417852576179143467831902931707399374120248875233016468333648299511142234546423727833117759977546310776925854552278510471790442708098194660744873321324699333683940305477865392618556230653282250166738023214592095452146624165811201105815566756813391444048891069790264799121371733507855738790515982809688264980749163789797585833069217453804820431974925388024330790722279442998424195600469466641178586147317610661404008810955091817600757701180387856318862519178368137653849889374139581364503829999081402453621760504100427174393141468795692566927007816595316426432578627846276696515707275561254013563362770696538970228517752132440851645613758771039918214684105529800161536580495054085917829684087856033740032116557266861228405133771382259170953476446370183171618449000465045790721560278508301860464607772976836838618721650081115655701849032989946705386163832323930876284407386130724274706339432425924169581200941820288360761112772758855094271038480204360001842829113351888143455664477024842028417318787920171862089846526497181117237687745589348194568018404482226274660425368134435547936286844233697070361487756344730284990886437254974011905336184855779898027940180925996172691958174514164439455828067536131201474394743878353611058017858936001517565842229567672462774088748033773189201465105947940644151164213245964666385519336648171409904044944769667780199397918526724414728321228987707684114939416481014469659943704531229462157957520717106178888401683489495077673041663903456379387944979791066739046673426728288501375919426302915002286552015612654219516741100195744227860556817680691521596296544853803420100301948755918239198401958317518621345523140228416198936783457067099959545246134608013410075070471580019023116179481100812574639578437535160498673686587106916242631672332393579240437654894769105322685143933668314997809422875455405242586785199852719658132797416856001273291534379633152308133248817841191922122654324760242868184639295814515049898980501567428180955829979709852370695703556669860559609538582765241527378522998208520887066159069220155134751173354600292346958880414287760888407193695124174710201264230682456308368174659248866538302513400592344841383697610142411476733114193547237644939461935363951927532887408582213676101932699311298578443989135970593934529486044465656637523862686990628177086135263675351050319717273423187461165125102479368486419913161410293366752565393969839861276702996003784533449897546453267165319766845683911769427646703762232709054305408159581583743894475554431708412537473796615736028679330709360045611433120229827917523654513855737946915603940036283437822725461255651489233551438146730390304380801355225204179363201453238103414273782355755264632376715308646267229746762208302699300504262162777721948950912825605341515960918425939921552907492993376724790761596354100689274406937311216629399109675120224724024043953734361653808138506022523034258116763059820041081307909635943517760116736708254224665447148518116610879432212225020770766786888749687313970383897384266275984186964197896480970956231656727450548496979424957414420803298778054954458941227418543373488175552019039984648495592215902770677629152359162280330524819645057441810597250544684822337416913819604565573934655662320860324019302034222854833042813797113477841821824504423150375368663859853282019088331429819838871118394847906640819372952341788852343363734420265560721417192995047168327670139667011155422851666817932125681596104079331470231870524615100522757200183090450355921074075000196258615490746431044451165800650124218774385951907973079879305609409102761834748664847172105999172919079887973714152342417456049244473463487918426875526156900474511587935508636738250123547417252536064280653243299299343684418615437951919536471236627487808663059557723301471647707404080104414436670369528913389937652490261487182511006554515099728531903259485224732296170833677695343788959355135060073171520151764457973745993284763486024785381961248209404016977890428965112317190834961906812949333673461909398440973626570947625431421462043189777900157715332050935585116325403200442473007833253360654751779295957485773225436061809511251632769621926335733903849993504282461251965155372118957964968051499683671498551249573917223220860181953909191635351385348247049427185538725113426822059996122076163167124900868377842275996258341366936226461755564069020231547934111824825933387201293512818469786372641842154818155683333637770779468208380968114094388018804832840037260444242836569727210275600966515467501676504286129732100974745111711138085239934548886314499776403801661415729324313624445095393001592078164700293711776207501978462639287999204750264873571161636994451217800917381484987215274077530522887088457595626090294709354110103584458533607881215200284747658732530394485347639989762818152589879568521665437912730389266553435204465695188200957646805988838184821770331802711105346543587393485200278335407083797824520986918975377519388285762941827175353359086231009341998299137500544386929656048909486975470618872773839601471663197915729495680940268852458693892724583843933855195785705768811680412524700584741823419718568092073242747888929958411646962356569588456004931046346790079406878379196621682439475424193130500004172279758694106030142555407941052540963422712228414810904751771637671580921248101824322270401640046109687927140529410453646438287531080288007399481243182567651460516331523502121762453094393191072490201750609055437099046820934385410260776968536035107748259258180971593740428681859243216974982711424710540119953836941290632921663940122986904669370954287690412514159320516816369340867181786849116315247071871239855794035219989315941320794304352804980414986400785763441146989944728473588629427676865389611456626213406652649568329712826050660230720107535139035135240672209497394671028747224462092716129410611461944990815861485193820311566695996398396049809776370142586177463305227884501430444458337857681144234807448222548284263059533909966775326428725554437821336020593964485470699892031459709722771317733031084805531735173827574247829340718107375850700424152372251286430444399763170242260264956678008437960727485279970000280972832284783526148847057919418479181768998136448219373893193497196146194725691242654698000286214844006304347559585967344800164668136289394271214543489932816403578533494021830182185894581310072692217477728103383376010130641603531632941769596106485256102720068482543948238149276733395597694722287478976089313994779234245636831327720877559405788746393052105803344865477443504126945119274249328886698326436403491914581531085886370152780879845084557490509310798443655853594318611159890572648697286014110968569993816191245404417695646250891753035504035082444097624764499394628841016634613550093601444083710769604679242054120447745161295248972547776637401383978506521478161449634886062731475183015382318402510771833607205674522433060804932291810532597228893380678617247603146485222096093278419980007779160352904254458938120486319683430347399530533222134030060489369249780464695358345987884446439242949874346614278710378079865315517066014112946436954409486492390456433086941287329548822861555380257619211671089399317371228700365076760165952223688793113460158124262244666361023135280247070463009757487355084036667407121484334899971210174029810269208445431480755186265046700009310208097924780501184572051869384836247362256087060517249466990941101024790649654448689662229308594742389327979926907433141251743466343534924632186784100067787450448689225007260747091388576321750665024936815558652651740054172871370330320778064420215877093903393455241587687613347158559353987642152332557463147216418379081848388946122217262008441028238641143710565764400961585630751115971141197408497115083010540887481496212146576730309256126724028392442572546076819456878052763354067578541471210603788697938621960185370640086631921274098406478803559717852356039681022584668065627078305266353899908652315563976532970100203869612551676962379895470275987960446376937452738933044162294317618750329907528702553286998425042773880099174744403160988014186762761553459253144460910459345667526022039302568285376916363351540019066763417983249991899400643859249502318422994711740341070527950206758136156691994539780474460915484418325895157451462209150306236813214291896885845762033417136755846029350798122388433757300984799162136642279462150225395204130092823577184425224583770472342342716965898214055040442440527080941999085261348187354859967345739541838131303377710834733885754515993212672988768213131570752680599136186184411915711086114381967847021841346586808301662806792732106231170506717521960018152750652799574158965682349670610789426410280708992293327647752177878560099762456614495582787123213629361084798959967992002536110971989391476462234435786565111674178524815697625945115675204051677818452429819673042390137062275004702631764025817169775992088175306915803735934151626177864468162849559318225365910751657397963011553163872678776280603140755432099536188613024424074334419536473460077093298714474118315928322384530696185149918127078076032288871049847400693922816101693061543011188958909882150369516117520233780838211065009584946206626519796107229319237815602262543477878546114971341357393713047803060591296680617362567194095017643750936601494584639132139274129948872429841925681737227295717627834560314053931537560539012181452855891528984580507593395749125259715144135048757869934222840994379982698557353152407669563798019600393149061075146367180171312686465898217160067023790050718606343504053616458841487536477954157333879118939421527652257674544273728273794105007167872218992997165945089215519130262853123473159399536058174462512521233720204018048886615560810290251835617694352365609089544006459514030433304699406622099372761619485655841570828466524388052375994219456154141579037548355835018074771999461483354722537069988431989232900378445566231456209082305522580206504969360624414510732764907540176471533690193956313085508424828815543771647248612858872788629588242119269396045082383448673090625540555781029581514453584451836524470403067135732714876460434779349621192481631855840346887396003651925519637341567342549078209383649204491461537182438472309781932790751366944181621659446796394481518672504575696820990420656516904740284740983378778032127574651341847821219109229505445079158659294639409317611310445727990873869868463339505947820373730273754934522133089051059105963648487879065150378745834469662072302503308055960087971012204792893325252930669743803010559619103303596862208120794351546576150847532716504562541632272933938191513746404652497454740737384842984397720594070868767081949340484875594963904051855875263693027374058529702683147438010749346731126364221597805740664955980134313683262285052249296717308092421700705082091404156829331115232258176957570810741721714718661987505502753491602984662486992103912520193663727823799830765467569672425938509840646563672916983210942583443569632528226455356528797667661511328434812369738747699142385973339491044670485559149854427144087988341155409575536640451026794295148026147894568861718679535486584458673598320846619402365196610961640954421412907984219644442544533808928803364890653578147047239522486155724659753638890944818250921316606308873467996732702482943928941582634705465936439832556586338576134102175070808956164917242185447283161643820306182493409922035197616229596270622951601240622642007125699897962001116162476629115813136656647747879849763605796834207884018824287801612276333150357587764552831121782477032304008237748492189388274245467520194514788090194689040454972510545574672679513047406635905610556375802522995017470232851727399026354744170459333847247870981718117523388830989398384314750550740926814884017464007925811135101860073831926417064471072350639263319663554270912663203651560146828408301982306569859960688151704239943062229064832762118127217798759947976270847422908277273918195157360452918544510963420244762446105180836333020171848754636971303264706851965669283903328738782236361908509518513115741187492459745803476326069653411438496462671808142468228762213862728459936774839905540416982130471535107571781444569694870523684060500284934190794228826126939106658084505823942850023404955915555991847292065306094292126070649966455771098317340131387686844430414077101408778702144354122758774174196682525109274040459412230810371563660156463283866963076165225865886706057889507446365004122261106956030644704024952501239799506741395131905469947346441385954818857251183481817327774646770906137554528867508120214989183099311607479986079004746516961431687637117213083905165502838012625373096317874186957103622882903189894567951165909586398097331223431140881842409716430891439633220802482968589850689335097878442645957964344896285469550350898924080804636161608449643679382165957517437227706050082861641487743910728804983691782506331788114366821621319305719476089959126781309273607376493711545608909489680150797276225322471019570218078947626017574348427850647160269739705959377064608213434078990834956995672518778561477942823803875563507030678581038086555033497282084648534501196649630375039104002998120227064820826660251740037840461402284923044011418233482116549273588244797501476745914476386829080293617042415607240665487858655582300441039079295332985507514132861440405320163963707360181815408251630923792317482192585585537074517703940477418157164337685101861273353758138767972053875758685490892789327524131253243425124094761745033917067717952466769796064233123892502748544789943952219702599422592475219502283711723773617114206655556951719700223050959924775402391188758729948506799413779393932394920606627844728459371423177376063987117463848352979465915157041408766011827807861800960759726498361994532289970243547907461668166333085338935352183774013046452639987836902544382449309571003159400525553220856820551196853094809451659789777152818356999803978277342450304474238993131979215283695364531616925990677416108112294320051771239428681163647228551707820420777915403884126217723208165057681820764255241059596637432788653865417449600108728764687909585833818230564331080592295314193702910235349249990219790860579097897240624268945998211705932443718649143809219919496199274707850954990681029351614672644984876791573071813575432316134441844009226963619308291446348746851676141313941370902576131102219310162448855757010608280133026469866964095047395540007939007744623051256512623554381665707224033978875488835945731996606644497375574659046191941086702800087756638013315973122848139182579737012014385697918495423410087625176326762158430460212185909969784450260364645957715952749799306723244074251686555534504077446948777354699342292408910337478932953106965873002763363610071688423504033689783993252777557718963572232318741668692459824565522521572552776062399649621987521325136206505511317185362238499398175865273097447120428554833024907991837353193443652067158562273778586944297858190352444712282784358731812999891421379021865897615493005372101179867774553369709477266795880959585730374710718810929759837826027462954554318652145470558462871577590300016653969097870526778162374521889331094671363295211022395396169529090098035224168510125718937091001657650696009447804820442462954841867165282034001055645694464275155858322904345897902110766915555750063070006193056646955909099133137235840315157747726444884508229745309138779245366852062476232595287698195277448207256878926610997467637799209935646547280008016043633884709579638204560307006837702574540007254591192321205730727864412681117131764127133508036884329584599573201589035790433533542132144573400101800281013661021971911914887812606755766219256671738619427324810538957284836197858766675707605414421893900238468983019323244043005010189088678736331314337526082657773767353101227942524901860167437600433734954834064896070581836805526707204306336721632976829572761986118627726448493217087970779890186821861695693576447868522545857764549962742322584037803099907078291140784348665892567931279625808365574646246143392275918396472060249984362128096821051993989451644733647403855876650309137323688424268214433696240965247955087613561262902473720762180383573447322814550147028835605130741257861199667486493426304193144615338777218075851935175446354310996737285834944628350161801384542418145179110727680724685902392059489223902341322446104637447693971334195541776830728442384578249075351756309587213514427253775949638964256158651137265784516254691434058625517972228153912816382658425931987645817143372466946900540348225239470606786778306026373254930030609039595473030210247654333989006108333930324226791506522396705067701873119820570371399288437590776133215310868312384541697362264814918046814258465608152887778543334219380213502533845246919825579005822995810916063200113352711387525145065224948872850321191596215832677446483580199935345644958070261664990369965411643478024612332967249058045803228078447342951244639885765035809929780364986122362752770868506359271194820975598469271555680711262673524791735130705934270815729997932626446004022927987793682077242297470317865415429477338997385186263604660631995815899076086409889872987407529437360401869058936595404586465313924889010219075517831375197596901860134865361263294074495319782556563278972869381810860773616523087265953288525244943084551358997179416359601549043892485014468708189907063586414855343757507587945569554863543741209069815714519655230924454684771874290172801019511883922376843416019617295156933669320588663091592269976089451182648500202816265207927098120996274615772586450543545752757894778528753337374371074443063688796090638058446269559992214130085854954679271411658256237176574402573570463587670033846607092853265246561583889324919508953737874505194194320654531476300684166908936125291732459339708775011734430417006023903387259342882234036362758596237785974636798024554841758329045499636127022673033502827455457837740629640454283056498265600940158473509617028292158499058902393169782413492022821766147429703559978168824164644085875542838893613335425246730226841926679392152736709969409410706094184447669232079318671732712409082794182602928445979019656280687790300436320115719103629691757457274122469889743950426371532287471182574263787834569978455221107055736086341668706536756115690653690414821001342333491209947918075650326869544674478456811616575606489101989798396367869651909515407414200937156897961504649530048369763315766799350601672382978400220097351241564930178935817804989665138723953473833577378831493464379744528125331867850933755245574445102538487023456707807816300521467991291263987393268036761563400708182836046115282805849707003793523470027959206457448209450683002722044128308047657170637653409279969012809352065564995828186433660320889092106460969258353192641850512399518710731997500269238395192594618103873142862097000194856485340700735634369770454106563683056385012911914370957914557704405239952671111784657103130836076260059748877136942613428214672854269894150705176019123969366555696201966094503861502128770506675463023641842969438896503385212358948049771253036232250440258089663798855295819243004322482896929756239677277482262579337298741250812616224060488202585865616110693229001961779019496204413306053014989912509476671967891975947392860005207524484715433992221822306527149086957290504515532600799101482697577463719926828471527543543434707975793718250242184850684519753331092176863829373077558071059001096150961132468913925521019574997367601963071335644847485940263244862755809218163302006647784569576041182292928058179207957045880823038263670611231596909091832993647096077797027709912136169343504350871360398863885867743202582028292343768735808611690774396224257619016924726166698765340283082449970280950222983374590174269610697940957151628823862606123900106286568727906150223369220445453799848402441404776168267133022780097799436060254393277604737896340844238298649329063131050061752437497708223919347611620739230204286806019024144396317858574857489532918937962032771270127856609737544857580991877745961421149422695397928469320938981869911258026521749116731709377642268828782495380817008690389948012024020116359478016307900437912255404906618548606394578798229444456258319505741072688115805576232403388928093001716308538621614116089784887145286312692994029653475244931191539788119526908275125486907932403111998876172931009331518684492608344401185541540791079117411951218678917459398458609065132987866808929679773594253348537056386455317164917382400578714379855931551384205084487958482495614033347990086571716122173493156701004116715712379585366183082740885832467620509638890933099511289307884274164959714232321252901717831773642484724233944743129002488016135387140648812785488604074820236185536880666142694490388696860689759372266127118239425239828007962016496867767653320834999360064956788301567275540768610808138201031776200967325964981931689939731876960427303640358873720639041481804324257826198610976080122466441386430962660440724470857037156356333809255386686712642199982836868476426811015676617023360340989823123678863077161466900192528650034155327020062015849834664073331043803387120602939069791062179257873002295744704224799589839145717111885842411943777352245966770227488552236645507715029698574153463532636831058649484765770508370410476937685918716741536456024744240117426677552912224120933571227316813861378055854931519635931539433204208957704440031348898690196864375546311428276308739629370605402507065448005738964068560649233106328803555913907093096448748517405037540088058430861241925985372264232019418411541704723939637230028118546169404818335735812653418745820420311064952289862533034859992040082250773582682681819393712750646547906633561302846019718739158215292929015003439419938588818602891111988388675249449030666825489467142363412053904921123773485255664462380469941511377548019999614605409463964640270208020458623656141330411704682256940198422836738085900186590526349876059662275998059712361028209654415202357473790145763114124820892839925752328753572997603972256301287417270703290236059013131669315517323818804520289910184265780255110668552691974161451842700299246889333926599671352843803242341628854881840088564508242748680376404775277260482620924484304640766691716683903639443531036792175464466847469469697646527237608247023992884423741048796326045942381134721144699329564212989710499070827716219333360979072372451085662494220929966766386745597905266953692138792550817092499655276604878981276023639865289391041077947560695637391631570136967379740550739982102325652381574988123010074520996268459025945723357992272071732221256227883078661850651524592998179242955496507958449310243644255651471300437528664042564941611267526063348681374303994513001033054647391093458091560276838454964787023697345092129742752914312130019751361350836763752070823851296821616655258004679304437061232028404305393164788285869821787587567485486986494240483333075817102401348253524747084269156370450601729858879335628115937800581081801491638775746862562900333758993598103159108579175929540273980150500381188893068404970793948315019674077005370721750128088351559865082844916243899402730548945832231835899005020147580245879832610900561195814445491471332994275757340771812419130523675746229552241068745063869701989926113197677143060210079002527036121537231728395001947079020702131958745132247524504068387869273269330343700399682332492756765665844614212285572663862512054904680437153254983273412826777095814372902895650476297134758856871286092498639045287658711128975247258550515468715078384571050558191630763728351712113276114548849906739234417355758075615263182660011218056740322946757368654572218835455114503305586241509305779476925437938958583222041416092960864778470889206332493925621610784167203586726679038691175985999374777301435895132962897043300534046336194222291429091975532468073302953955333664170821672149040049487076065824106802201842748529155157150488441139450130368561188955024848939776157994936893348362114290843844056212911133045454958677069778567037552491355501773290005740066720501437122041229681383081609995123212794139339832399221854707607838318766836904402181122771989785321678720148270189932596080511388323090949000572872916121460086889479538774564864439421601510853870424590426290833356815102566101130766556274245544238674373693829908410925237094953779189638260781876685126142857807874433783682433445954194919124295670290436246998035871940687093588887097996447402200035933988343920458475676895960452969508713643347056786567512130845223518516351275488393704178260465123669045686221672682959659678691573495710350015551084143141581955913468518691468064480691593548538869323788246693945680396398486710817731742857565345973530943421205035954766147527255758846134071969271837344641960597903637834790970250592937995283617476168895532241795801175990412369641690373809610601655509629830306251200771245656933509604286058567756135570123520693607054530444179632386582990258926486102657417685470760142648016265886227797011907959656651065320325076580389954195140269039877031078232227968314516872093430261522917986833050096820029038977996330019584405805468172977694201413064605601631429757913450890362733571526786056686420244504823180916607947786226105165913962898827310254603305401537618818087050355295999899707089704296614426500924290512801200527303284616471496019913835853196335811830920675417055298783402481823660302099575928352600856169361184596608152869714731735478713569804935865021946920505958384597321260359515732121623513744269014286633912197096605464090142866478948673589755896863725210416691862512505384745899137383644928382610692150379215581569893976459116561963576094306312311878689682997270757665488589971365853224603202670516612949854264857694229919650825167714565745741771879407971405827874460313846737695550137126603386776604888773782058281904668375319572096335767008327802021727047402737999987271547206373341273620968492301814681951994636256596943364853908501915433328840227884730065696461920743111318112493548001725332001286900460532437306640286798823770066598025527224699325396182230111474194286172658747359875261642010984186494986651925131480259585507611699580498760801167707530549124573453611668045084407566642838940911193896883261032586642602409091584308540547088568430201580554423492227778646242422901832819973989759552796165560160560021108869676697151204579394891670149484294788621502114805908112678834331019417409147189045448402506757840535424252477498817499588535713612801441975522144477428227840514009131211573809471547262417110472862319389948724351794588198804320776312539890330044680509763320424779087350283350979496719191814019751605292308010931863216309389397265085317054469000716603379259981084280988558043784458048110087581609355763151152029821256676009276071404850607633074215742187631230331315410795072660725349346022804971592529829233323803435273475101429064048605701180124417435221083490941753370889182916586253526588544346809189090449120533397299023439633896214536651203437848154309254019966471399912497139247334376231884024769492878334038309676791061745723846597903562248862301904761621822019326312268819361914515392045237929768641270100152397661110937798789514446988277313400398977628286074173006453760006257313552338065710683224036761854402478482844405586537846203973030712573405492344530429356489382933539005115518107823527096694841992695490634746949831078988747760828168564029904593073241277110435189778616204872974101784498878704255889800800665938641934884230456294863292627635221633714623388411172522310216271681621587393178549206500217383428594872285832778769661929680264361771706862848062366822485452506237047067546558468186703779553163086324093869702788740142797355510234232727853009796657515740623312876617045051407565359666797438028528385983236369934193737740863109738438692371504355097946040902582227790093439309492857235354147972788949379375807542363318574706597460549613679099773204630700053589560730072568945484808178635705924796901974628205678040070919025708738927330163767727681576409221864224531699899009269195186515825583313171126229593897530169598696886004502284861482867567749959865455889026746024764540386989148684138613546119043739370838644448879090028380186135067626145530215806066256403592918051332754687358896177210557695593192525679765020689378187088962601515203071982861819308372620441319084520287798587610129108524527170446499925679538163012009211808969911312038593162538006806682934535526997525240864336322338674867952872092965991394404525705473919273993435316113589068846787979086220118453538347788561083601620665877938377473200994015061178176463633914816784032792846713417905121988214938052442167659880511920213008504496197302561122890703408336487170150793334857338250918830696003060314955459139978088734319325645615473269482294704905246728186835427617859135102717289263681871477916715140788470909515446946854319620354057478333017311043244591065178621190302523073712000536302492111916739539634038449722690699301919126323549686794914520935925013000353050601685171324482989565065805911450649151484561787078756802802986759383087863903490543036931805665320582002964366921394772751800033862725032934807883783199081928497493299567026104478658762202200841554987887827603176744641656585072330098917686518154550653911247644820930649682265091830949230501043495702688725280975817332952157593177043802009964434144426965978261701949917381666155126341117904561483397265792615490333458538234121602168152963103349270097486210185253560860303237755737243804504622037125176107666736885056053063923929413221286640359661815726230444590919791540474295726768125637052411273764529802846779565289441327582154389591373907261597091580895386415056550770280558388291889008884189922377327293676312217962752621959326264333992673827642344937856492918698184313309050421116039967874755306565084477898857713004726929655088049028382877156353587343602723938224579953027690689262281038602738346488539772540709312865943318576622672072267393225710595574106841076428292869373054166945434238787080014154642847742273814802212007930478082991324131752839021799696925809242427363126642038316430377923026232566160281967997897548304121415091526352850557851678261629301097400457148273997233694906757304245659775029696993830217578988953262557734759799564195124770234611053291007706012385462437289550143459444362290698850260223900341684973096362209116700443659753912082837068300438401365673018345189730909267454795580998427154038306782163709574465470055482406656682277346655895497503183609422487271210190565822907019975215071831229630935000838119842810496614427769127203817051957520385911655601337253272961422676828978228535652090725489661645473643931908128911818573638498444960835507463420992784330074467958194063595593492832705450015683411979962802223128112977319113283872653131896376608947406545002422311757506614137181135136850530632728183963247892552406266798343080212319978404125916493619317163142409867040097005112458822703100733885330595489607839606156039490264290716898734456755727912497513021682078423810837101118168947377078232052721693935780095283518912325944390720670410408537142010755326876421479772015148467323405141740873179372490193658989491698029615059579944472918885696251779930953951724659065834357190154478953430514636796577072068948197315357948261601261031773736775724381622568770980560807691697750575310300217391127008530774563480813416513582892689693816723806479676658726609336459959074004560066100597634140103708378491249576275068890430011739967942365911263797497437105403217878335622563086086437416683237052725647703447631916527505617703347464650026035205569913687641426811633199026614371756654643827079787915499614200755810647725280850253863407046755854211404124573970664091346057562652330552822733599900673853446053808166906868454290264883148026071473741238165862033728011609743863496260731966720766422981278478695032172728871100405059219006548257238040509321771237052264046461232990213966648565202489124623856505222902706988303282420000781736447996543334407920445329980595233193370262674112718995300264456672375921724439656331079114490959299091823004723775644791309574185390495361598229268551761994428109287730181605378289997686484200927643634706882772102492532984764855088433365944724737067455595689638336894708794848016007020107416320714603629201985555822178012879863233429432669963229833406778658937507242073185576894429013858893649258473147353540934390490123122569512488087890148102265080484384085670912591331022647363634938320185632221862209063230889773332083669561506937993895377073294740184278742412591705109215618337396354660064288950426045501544665165685137057122544782685188584728709953631073310979507913904559643371368906203973631773818242995069616412638518124192632501430570802253526355658174669991248187080710290022787766111177116503744666608946159607312647699977601102809266017992832725460136012800668797834862295671049992768955117093110768725660136267671629704660870663963811207922047396680605972318800865499479843138210800373086985053735299984159478838537470916462907377044874914571893269721691024191202594553385924582579144110399188185173455703335306101086785242678562173535151528568056010830360842912125260420774330283499328055168497404200390681269766914517027087027391972884820000526387802948558820123522511084386850643536142318026039716267859976368552493798215991274267810013153986578607009393590066030572818498858490311905709753230932412234109982004839578643824222197166137636110971640895675899429626615248450247861773289819481419698122460672248893373755934970419828984106491388566131622449279518332644015272575308197949401454109946353121893436782397675126311686698204274327558123481424444198268401632518095266990523544629315023167894353983169522716416068548682166979356949098043364524309614227408708896642609188426573188196582874617168679569582124266572488795639899370182168845959079818852346739522164172453426587904692145495828213640190032410179692808437501409103164953402012888481522006867149772993325927060494819317372405680629068164273677708785744356072644313167521950575830762669271463759399201886573708930497218514901130144002248627237305382015958667240189061492084264338826483140113549190555640379679380323376553969458874797054477660633825303148832504103837084390740904633057166456900925373740516145546195755253379383532429829413238303219430703569688525373615380023073662976270332112954603716968497117592768051850543885040211505890263352956937342070195659712832790311925220594741048357824294768614734132504044268058703624813720460254287444742153393338677649943794134445441365579110497419843386511916365751114934005634835268646945965716713141211661096081825509195951859589256174469417325692409727031015382443838966454609784354343935504051790163920815304942157045408307245201081097117461218062136164797686453738544746089397619319430188945755268259170083198982606360930895555550129614340816183147729205986139710273783828225781047139309624428876316527686977129979349672348497704908144309331179204787556700803730492459451500766287626902992964193625899835507538716121653021595801376223974591163916803179817808505972401045852575756617967377923160375528161362360343981940287385761500254867052660061740478618064868792016381428872141842612388457286856002724754497070681113440457961504318028226603357021711409632664320285269177303413317082437084943354869400990808552438015633634551047639108272335659938406534350506456711832180842625040793753460264545035776036341843089737535339387432177151447001945188262371433824983726250741476047527956938361508325106446158578347252898894120615143569901324054629318619972985007742457567117529810225262924097830227000261517052233526845900970521746663976957648591115758572711457866208085189797416102829736776288564546000646116988502203803488593685975172844515754960332667746932129729713650029193689493261207090783077998530813900038811457073998826209796821695773343948701484767177545530469915088522526897472161427718956247047396723491724110759639680919997427513263277702074323441536563745682152595692019505168281793868441782630111872485099431609848404809431593192059770238616802839926575797448380138155068750897471931486396350648872672390280111022880087983145732679887775298415643372052930992129532345753463437741840094187140754712612370311525180684193183424803338337791657674499844759542981099665439352173516027993453386989903947427120050403168908776553775793350342448696848702091503860443971465532386720470444400419689864212719245221582912729461759114136580973951861172078845161035795381702738943332481705190774771302530836746570861921111277616591312512680936413633106767256089897640552971122287524172051743787805155803345528088878642395133656957146058046162777499890576991481941010833994777254508362645604558122531428389586228951777314067492380388010996154115623489148246715779808179745461917609183405635190265134767916128328514469146504483942589651355417180682171708872400732702890065646004643532741847707365185003350020399192333099046679879255892361720321965937078935870930028832084788444055660942916875334387305489626322122300907371026145447158478809891896201817874748854123239737302859950363721314204957091549086080778767074652216050466677877765999468064291754993933907675870504810028079581135322878771367548285657781117239461558705812457368820830820500989787747247572712410871515240366928981416107650984778171570862983613526387460110711702543987926305788654711106589202871758481630121249770981005515888265793208481958695332301089114203431712153031811685962590212415126404215800448578159447038515278498663779062711633174910743571945443125476725276303271392487328340437342110190153637113766914047175996569983439963345274133247957927948613687446261073338194185400722915749838729221532751802938069267608277317329097543734882971602042465080239898226017692573062853858110052235623951434810787888914862189083198319309310761090466594447885214473967570410483396237464334864759420785996185105982140236653854106835864318418784474558152910517749551071190335287008814357548323966909162462880906066827556722835456557666496259223178216703830273689675279317041316882934518559373735047240605870756056354598016522449307630437719662153797814919320355947693120893921314724944669803106793069675942778735514768722157323013638432831903270850615077789065732599276965693366828314900908967138693892150779440494457109194163176950299550876478554228654650905553657812448404898248638387916076347670281644492969782983620089042084051634230482574503636891585949438377471060448543569578921906257404063920543309657934561158843950779463316594896685576586367995381381585875956573411537711597985363191798412015553745168096598026929044671747946698942673693010868144184835189378147380493559513755080170128575282103944264949482024352363731132320538019850422772778465031416709412440329993648540655654566663243185581598930702746662431860926230934033378889269702668056477430328065690013843452833145279281851761426855821209859701586176391058273723192684142871292585463008495956961086892891760441690654601703277303569896720002681712639814703646733529087558857154589483533455260676468899672686970568007269170067966112502654085352762751560304328969171667266889794432660683456896757142816117288355954366700286310783248647783257410567646333117332309337223128248561781211650540956207410148343205737205055967158056327044738666639921975990236425641473680379244959683432946734050927866466921502594035579366591450609157561787785222211161974882115223826780180947749866461877205258217995991698737884192729270633544801874463222972807764190920213501534927213646724435306098503474109694477147710778932055188655754981644016486930304028630263721084988833822764953041874615596249260253445159123159535227894875545877174601454694306209522120437462118741260837564544669130795123511833529054633103463718334614135612008403520649771732947356079632648803821080554668284139774653567007862917388977200514151937130765214492162389430672597591247069524284939986323693841913131188673409743683322545707930170150453343798188228742877822060753991213947432631267566800722012125813714042465748847027203900046005456177216073786522332812285375154371411286265505097531995544000403265298880048162447795969974325207998771703949537976973618831325636417991615505541767421877483609281087946661473457963308634222109439526873050765592071369677343069967986554928207966829073523847108559561714339508393346040419645687136692231704464088614968424607929340248022197104664860913710273094705599630904120283292936408428948830408791819308950422614700991076105269551175148645863911617671680221318800803048597570712753095590721858010518546280812130152796164234677469219840224077261954696875713689598559908545991783177417508155535781464717031814639720789590549189598266631418834110922606166185726409688893878527215296819766422559315271946913838304782545035656655971760724760028065227681193771671309343518750464282118057407918471865530680485966767003750813878988681131020071255823367947215285900021335242058587822541437925059470847249784573408179740075488630777385659224371803232859378926883342817962483153857446432484893736043538686873253615556631246807833904331897970960362570273152359546297422177979203365308523695256352000564190274499321642054542562516161168508036285106547834950142803728189846630025498096869010237151024296317094037530417321249418576615291653176837721971391282791782968672699758998733023401032018308808553828787463838364525050489198372260019854170413620969430645932541678850168216983405624404579750619845389978153042722428871254107248166570046878179228566178242484382654961002526829552963371843187094264212948986389878406327206116298948115525302234606039895500137723229052128734371864943584592809264399695377989669552936714428072444264995992080236330820203152828338259518759865016546444873848653932038678448368471911342792234047643181353765137483489698130737010268762729215119679308798436051444964795510357535301436786284700608608288729246501474816478070574068382824064775422097344128153452121994348288128075349135931640222377256563331715703478180573702672202294070884196883941654755874849157133219879027531475872409766490969169683497153792802692348161340261092133361972534832908250694007791702906854358938540984927707982036807371461043386926608098951536355773435222283075219941929735261964578441631104117664755845208963624256973992965777486455306307054723370309771521339702867972014922252224766600587167976153244251974135155422031307642432306125869978061182604801697939724420119155023380524457111149311814983962500827875962882297426269802668651885278296493363725985612732471655367690341801359605278522095081345612538411207376805248194586018303052427025700091193850072736658071645374524649347009737849765347497620220332228859750219240368063772041271303103217373665571652941285425771358054616325898037742121622412528257764478431623575247791821855089101027651531498771032496661609006420466139163249184001637959106977494684001515001920962438919745071190358305762507038826290126052059654434274480244630887591465464521033019522041417810699490548699504045055142256395085575560695268032703299079851872211867868082896099265844137144308202669975254743114732104511357822979980160883972682243941418265080149498768857161388509145144473059168037070420135968627328747028035817007327685244607380424895839920245784273662734506013287892911448443680193378248541047954648229871426323087780565717111912066096084154421912267369959898963551975172788942970954877777820788468033158852271843662854183904067566112376650034127420892898213628116760259917302282722223278824664538183276731575017799370229413501199892743361514924306593515036795755161314888990624079173848086940226981027340638281240295018511555813743475480721661908294156763934187296510712611169657214404272011708519362386888019177305411324194184467806506300335550873958475114526973212595727745446589208726595020157988230974182207648112921217162784074614673778154016522032064606823226187231511466689310879776813250479053209050162074810744033448771951720365385785817989411760559458293894525758792005435140786527455778551103888650922427996525917067858181746219312527281045822088431802706360177036137735890364530599801114121211058983404120693838338272573364288281909394184579363651700942822585995620693748027372511102414120151854551411719547332051231156673489607984008445596268430030127578124904873844328405064458211692550530039186500139916326616895480355865940880135978169620772763860619530340552983664100955700475273672875330036459350067690670100461289298247516050515865070784532643441051157346884437789234203955751097409400139376635329420262328663499845523351908070118566683080552677860202034370257651526302451316593100217797471105863259673367360809915388275277523522913845210680072369724171931355502090757590486503578863579077452095998749846473005641094530409439209994107586254993506549402973618378624052845011263829081783794733723773805315769603293254050870168098597841310137262934500817285702420150499133295742645118353501685218022601515864764578691973304280947915545153594186332158169618764128901798672788395735864210233124558678229115972407804991746868410879787566695914209144172049946506796349291164514352931489509977771682546591669895776107084840836082694574874446173235171817368892370025933466301054103186628655823494946689072437336396690521648905797943407076185738827352630468903826414608334079368329644887402803669912752177024070399971021292581280019900483405016879929117594478652643867881633910850239837133188737702999035759750616036144884400288168144760597526918100615058224013209000541835085421598421434607168210567424479175493235391869320711825101809512945536293888147295023782128761882169349016365104249732641467814563000650837877705916286867992804147266991648991847630220020379462484678580777483005806085344714898568411512341244117712696592511107083040573529917925749228492960934314899074415061895675608375186555507695298789002822164633866266152995475135911780298264670153458870076416044458252844916607675524937848659442171295054107562912216720598453682688144828217810875190261278516123196360893773432094808749498572882790859024183967438653896519002926917489451084227022998490367962524887659226173825506697942680734565485885377816218280616148033363037220489729082424689055570202570693409129977166565048543679749656758085658444955394876352626478552841715725794677974923361048891048038008885051325757869195062737987303160121787496609318343723619996601907490779775367558230051603679334536541804575632574560715659380027081955215148582816437874985506898077177735636152828665999471978231807705376523742214295920583115878768476005217198010713189073766230127059914793440813304318856346737514202613481984265150808874491511185630548422118024696904822489120210089368213388759763184196890900337549585388388813297599498694045648900838406173991991010957886761642502763954275943045209827687432758923412255126628098658587017162487411107654051627625873933496522514024918185946918292411804395368582681061915899680802596207546335937766946153863891997088547813280343513353594710511771072224836461381423331122570083217181410974902364635048589256864730130664789505732566552809984980623284948796545710543698030461908608465626958829276270771364336515017596210373048434492107902287819172215439925578002633905555318974717473958789361779933474083080564732283506976811132697549964336104301508460793490017270914914662879720484089612864224451093181323241830793274674240160279235578458074050391548866851135193550663408379637827949241601191112450380338211431249796409682650744344532874624514701606477115601020164715544658058498673097944687609993881315256310407512082038935698240900307378233902410966075915174707318782033955725999812582829137108335295702625650778372386126504818368536658656003529607495700266180254920745447085652862705084834119110114381446427621174467688080156531113489961026093674860088655061336284155363949599119967465575363163943853802920296097838053213197767896808161429183173982281698249547256169190288469147837708367778688771922488168223236819202920665874273857511309520747946523869183374908087366305644985576321446511174474524024716903597889665880934596784536881672313553511862217761374089862975131219102945908334426005033708255296056506487783203689280766787645555882336529673117525785152987347522837542666385259065225840122830307299628364025477249606599789515446559158830012204444195311046562098938648602023751071397842282356883383050703860004789330237410165962882113339656050742764330706466467211031422871963197793331207449631442111868900160795811422527881421741536113156375633740080640202124145629882491737803281979088405634193671797033952201847664577007158258667733574106624352175129815972396674935279038820776789744608844577100489364822267936252435311555949053597181230592850852552112419532628923245884142501475986943149076875623558916534174986759135142059802178662705461726041369431145477199398095977295233494570314786703201390456301150611959606996772559610569759173297931335079534384171386857461427981082006494012935790780966819412895079335014617825465263772091741835063966108179306063085862661864792470172266516242399814799250217522580918443321548528933121839124596423912822907860178232999191086929972010248946271153175901393399254168635395425093160927785662775880925864462812564655498428369643539028503849415837273059263187256703401300091168180719105282078562184447885136006651490574567960579920446377845269009846017273416824472944910093099880780545964753999744029374719654859671246756680085078526275006262822865249284615824530416068508390510511404181145466400379409808973890836833198298918267038385114997453768850672970997720692804155744718555958236031649338092538465531758397580451145254022769311671448275555591071747080192316287370477745154604105146029291345399543860895839577972270814453979540745707060447227168393637465844071791540985729487203962628606712725575142493928008932509705606945087648321176595893662538264864069888180661085056017443641511508138493129845865330870373641952183536593363910870150474155760810693948436588325085983872931613444288397943238841517530727406411719768253501200484611334403856004616982726912812450474977763609596393838682861890140477813915684010356122382538360026721193615405193787455417419139768979245748772858904799180027372987211766305441226151318341544592741831823086922323621054090715436521291960421850524269682976005643660132920921277551507317038033485701292231159261355093013294089944428448536495107685219397017513679878352723465514003127170162673057632026445824313555255745655365225329837232215815646797741835514599280402888297682389309460672906944679209191031626692603181718789111956972488493280265966301952263736870381616176796464804153864883646918679853121067603247619152680721831410289860215784031592383275505220978812318549726194587465374654775655025460409528770683121592748870649975964088272506248547829349982365560664276333617342487503463029648956364922326736171226838971790877741493042721715696128970821890693445220883456177162080448239133227356441150035379583116287492819218928564307650239731350777618328397992057495463775003556249300261137821697335990456442933327753151297484323048996463645595549440322625691084113512561426318610674016429585552212209822060292760161575340606718306334956798653325403145892890061250920571433629711810560506267031295739597380488419958312584822893469950979238772336427396915712790926285656704956997059810397927425920364229671202708008038401452105424410691384854713836359123019476655034377156807230961405345018377312304326092823271007149556272197971800553127798142222916144547067042932998955005549090081442056913625614242055624722265643101161075930522225097477056958046963793411292782276688341355306252072807545083823896685264835472787153277024109430142498184254579982748275926345888486994480087223336480129634240450800567202066710951235671279377667213178412623095365116608807207877864990664320633679892113451486358060412646926079985214123655390940821158849318463875625477143998229129404359762264083945945066238179301242038651074790795687796411626190258261574353009156592522351633824730264210652812497228050190733108379572577447935255510922353781190068545347949755506837617178183247972907666924230934446765527077753585139084181872572016447483826627032198663426619965902018475420833705062375247691413267722539156626533457093534461343139253899285396234175177461577709033627263801047214931028127091834407453573708666300380365594049001977458869211488449720462335810886885128954034727331335113044622296060014250415045938220101639799054853150117947307198231903679651446987217730225073506170889060624507112987331447254318308084161326768569985101842449661545146825222519425078208001491976322386216972851477540530620757102195979045793030343787807010479827003383244502998269366793574196199206746263494643453972700437634622232565018805850341130439134612479928511410320846622370774775728448711548061204944876780073649594518497107545609221878083030642118864776558344038460443852724629027351780016932058388983184024581711895336032929436150924155404835046406751443105359283619370768492564947556062741643243112656084642459721744246999071038363752581444790621132959299655638227284631455333665396763384370402276105134822318649752582651279890186137342810538639458669704100126611028581574936796247497706855556974472930440054402649567477247789894509002651637614637381357703161164927515246225023457687900767951827436925789445706389148761777209266188041071135724737546570426922777313765207389893822522844070891159033416893917087079593573067923278772218877015342222999522843835106846441146637347379981572265342598905580897510662347116811165992033076191533945388985811328995175139434708700075956543655786890514434551420692660840988175884355254422261399287922435809946068596975235902533337987295943788578686651576793734381515248145214113656362585106432069525684171504374085466304012144446896538168838264357688434658323465305392848367170828752473562958647556031055490713981196909054565841162010496259515147246857171353818405053522227695809592024770169589490808846952535265772615108123115169403501696416875320242306064906200855822433837874095902256422407446746953043276143521851531958505521013925520941558905339138225018389184630714312472707755902983426581025276235867294335191653963878708856798633265299133578815712028458489728323585574080555103215041816041604221816061864192967272385495769988473871362756464774480714303341970285301648018639291068157921152464818096413134096709123038796871600914450226680799807598942929258161282317756335391263492801087403449981362566158967481954574137731997485673986194707045936593749506919546085028409514878682579246536892872864962951293867124819421623248328934587523886636418345116190517128983124738329043471007830211158069533069172874675795328384309301393035879484242469854746215366695953252360515979184750566449183264454995506953429216968463267229546611133182616998463135817819964663006518773845124909897971720600458016499489383575855733413283940201920802371530801103735290824037692972004693523629906188081212859719155916660123966584620476998087734511742227422447227458874198437037312827921149268621466968374415599479511787516694792568866146670251908689872713847136625279821115515199093685254099037853110973293323050793447576862971090883742767259184118614363936703656067818625831071204081156323309937002157066039206635865544064881549401887256311019307572320062589630089367686956366666166034888571208326218122101671115385694340700461624255234838034777208565850943338945484658286319686853556479591356001523780051849428971511721491862711897409081924707906708579749037768812698363685675906994297181933689181992894938899076737617084205273093841471512379290416366490770688983332531114431995035474757042338917687203694171750350013223699237641297971921407047686000514380003397843018840364383045605317756109471373209663719242175091367093964249077105289946971513668126225304875258506130162356688847853417081580622241709566017649753420898858853951561508802103555658547454581004336800504439011661440466901941704900551030830444137483351462034527941238833254529694620236598777990868147058260097490940621784181817431697176565980162787680111824118846115354295891064196887545693826564250082083809799744131454219455914568035062776623521941785903596962972642675205788785016625974730654474725542179906490220303850878477419498357138286039690313532909888941573234409404182312609107342953324378521627589245540184218914044879405396850107289799279808415595871690747013006800904198889538007031570459963197318642279274672653105633547456856065566171709069041831007762631051275923384825672944129662868458328950992526488597691699468327782416662977716675515855516255879698728946020341463187945228333872779447770046249642886462012154473067081055553626871051614058119470563604654616887656715979928666298341996662500190388668606328766574554795561811774099242719404964238922355485094644953768736544728864096264236746704874610162081517681221296949780426408017707459889142997115740769317198639413253747450466165222768560721601779055531862650213749700031330425583956440201987919941531191062878459717948586469678684123310659053388554983213839962894528733219237985778840682598560312147386554826391487666926777623025502579532947732846817091569868178989166700470981208515685441681580526781868650708392576884223274041714280401417089514180293597337764514599043274701282903246189753270176792157737016090783494750469454744096009714429212404491161787172776445267924315408628270575530793597526567857045334081907355296854878419339359972999214042830850664555836362511493596479185447822659229043072945141685183906836005513831109023208067789093646458699776080551051264033503643242009058803003873197400170928103778846801994830571588553396057565039393324569753096222704388502354488926732943502792407346955783145603910736834658970221235833526880666496381999068773212977647744282375953315940954329968979116909857920644195140580149012037229313329020159248318625885182588996350931381346164956375016237071235451349977292553774051516488296047214335305012167099686998535812365432304615441232256581857644150562235630668891053052780934866032175943353882673016892687420159129258775964884537460821737435137168634771102874503980770702480180359781455573001189417861920851256630588959559706763074787271571663536616143854571111948103948640437706056392001011807577566115839182776795148238412478151801532459371783487577421875329788730761658454374940727033384737048752896028386496730397777945004987414340930822117436849777595166617254373151548685584257725060568079408370738784343998498498360718006010910058204457184792116780000870442987657468036405852246497600459503528794549190578259437978449157442466055788808301314331214099713736120484767426974785877430780808453799683881983774262598457999163502040232497416503779090134309243528695017743542581434772709681834736029965604111433103499754789888462384956640917546431441593737602038505329309520525080023023142103927764599656987813206512705105814397326756948739546599504185967332343264719792021748874089654363779363709019235728970958189790396316553769186491917851366580044719809181468390006704687946994589697215104999274969718122446425031326775436758575939831999464630871417151617875767599432019534898998390692242002018064898770864386472406989872319244232323925846373674682660690392299133967447755763294360042558427083223224550724725282520369795810404094647833640421643441530650906031359958355660551006853463041065872578109460767410752828523536384662583850998436174556930953412905277082386336290386586591266066742195681578532087577537170588568377893367465630743407933908595830137986417748848434958921496280834454326739788184597471786633843930237959882063584954071815181731052469273498474705443558714973327022009554940846316053655458498102980864857996434645175055342611846625295756474009293349982423292925599560031054676275396105143697650014194945160856877250259695941301914075980066069661541085822630173407460186858645859439590851322411826422938832673907728447984028628137045057753000528671046722811763374454451019454629979906275459122647539150828377443088092740770914026569917268955529251185333947415634832518854900959112465941073117418743851073843931298593891359108671653576487199223329292921241928404589118242980713634732939220607061908375917144322060065677046068046256232915898675477095853027857958134686844146671334374567174604353540471842386912469328202843567099329327792567592290572113683242206123009944007935603173036736553168820494671289411340211332658991441094198688261619536348565082681539058588798277141159750154779615689154983289730633748360750536044455594167979398567713460526708623839883063872092711715336179797194973793837313465918338814294584527977159041120302873178541272300178987155724373258429143966004092912792165782294331951061067738402575340575188467090331639428982906628573923003265908951266106521050713248941282264120373752955230098738368301422919885971275476512708691087736308205836709644513327236551477821650035217250910568306812812154906257100333839253616884173123811058865181690025461381828909233356262863268496815450423424964115213820680191130813499346812538502901061017363822168588997621212550291659733679785722958053077819482713126260635615072279733643656664492156996708692341164986972562601919306110635667843066279200150888802680139686541742144007225697360798700230499205831134785524735490148632109725128860213919578362305757591337651403964799429834913307961321215595528856888244815327189892282355361666494602723318445308828640203136200527877330797781451746403605073269607694896045999740703140922881683920946423889829021593502035109458077058755358723257448956430980323737517566063679923881835314544581189442268978231821679139406012944168885545788053209271824399365654993294812011409711123725885661846801954240728870895835276772107334764188783526452511017541915443386476198561907964779593698306207380093031574823628036400461225475424481679076562860552999230232635809222954218035353454313355699689573342215831436254402848007525950883589998134584411876060236319776466710765003095296836378323467344715457103924812147272458349438015769194289794264428886061541753353662649357182236880472267131984479430776670354997867652435848967778426901280861529450480846724944958794281627827568582012741119258390932496964634460533594469898881788609280154368995048414283297108538480552053981779295164702250416837570887856987988472303872198912589094768733030712418002675937405958652517405121475702303782450323352763729896119513132535511441304357615558069877640303844977138073130211203992189071293246781974524185150521774836848134846599164220747254752064455402309060906827648303473752492020383808494004932035905333660523464752910105654652237951668171906518435885305448713644434432388282355806965600827935335055097119420357179337677369643470166080161439921776597782447552079072920254998406716955040585814658537235320169522684190990216006683050245706475798532460341569314571389917248264723593090329600412713372108156601854902677017401346103935642560265836182731650338390391736913281854818169591727236231180903252351924192631041253785023589997625092850706591088950266649255625672541446584972603377741964577336447329015295355989491389514109176597716970384596477115460496868589288926713119778163939218203565200073670163478804983578412509722418349825988688138587491142267495112564782000031681558036783030792840420955994571668425106936356858089802131232965520881166816831907889085717334345015137985134170764105954517341223258594971983220028292502053792659005367351276839792356569393570236515820920062454290040647658205814124639005429374777276753613316882350224537613981625972228073069490093950652107221779854490347392447544613853730459079881681255884182328294383678191339970963772169486871713234608770560321530157910253819796430844335425849671925484279739855135731477040423720234221426234925317805941047084005897821548890980928510146275795567935814292250482823996774306533559461885899610132268703130980230289750041170521895099789499421305684797852483528338560887713187303180323184915904766985263142440891869481464845897792318539408174036052187508766586973226704546781094256804869773740270731385752631676846817626081998398694175959717000975370164740393088056450983626043782658247306845532177921366963775561051775776711426264119154530979529559577076562854101307017230080481665517425309822521613119529081548632336557797974552925981564978003025986233489253418945604573203744297777520324926039212451292935914207821939010713166053345543044337787424767134053110450256131597989882104160239980589500609367104739022448749103065660085202611964960885813360932653524838391420179554187931408889281618025589408722732545991372843327570891696766323311757057495317643708639497306885134509166040535229794642124380623329574707249446165122618307850802239734466388231308175979954897783368396291422530178545290722894423397173668390021583972894929915287841734752369848358294175059135138582559989189448815861470488379250695137059306768092548243626295170576678779894868516680126434243480892307223562378142462404083341230653280297305669499728279887217505345890933280678134017061677214014241208993724339068556218246127495877360485886510008504361410459813540875458444588405762236798432266147094075098836778096367386308608346472389511513995862408858901841558905094374037568272468533542993919931901544073570534258957401619747516411746506083759041810856458491673712357044113983893108256006409486913592792360337749807406393540471277142443775329064713221395108036409377127288675217550207844159708761993040929202074319310177278737814712394987916217308732516379066548174037780494233816042686840673470511495134068846745780623930201931357769781310144022579745126867653286679341834870272771807333196046223551287957012065253800960937884516372600785805377208165508421079803567575491009452066660882913433056144566852272911267056282891461325332231995061549236513296532575749661548112583769115761802699538718277943414199291127955001560112124670130371785533560541288943115095325417868699497807114320831088200023754535524081110393476803850939002903878172779807486506653709809037374497688025615802453332694152477652043157206628957356696801361310575103625680516889965803586839578330937364200750717028931426421567289022380676408438947692288383754597109972170993443789490348684492849246563882702095241900563270824373939378470790879150716496450346707600682483196940131375474376607268718194231627096437277364575617160987519296878271880300922373235543156995090064605042643641625206276839988677187058145732094652908679318883475645948861597092194876576926729085186862258652745534444656027042029793974980176077224094849163886326964410082627256304608396815711937196781724418432580833234829687838409870239910443635889260837167475415449000975529509857945417199785394072025575380141233898279833221531159389483806742470642278322982842932354091456731257002319335103145962517011875270015634284323299204153141020024200843410230849818772508943147653960529546038176711298814764284668513241349387038592109242710693743179264306784901751015287360362989677884077808952119620313166311368938949053759005703793483860530202994414382831291543299287840452363804030016556261603649148491300752247937305684123227726530230120910661386878038311305194303898219013653222452989724021736714399883607945644620071790893351133074359749261629372596013447729397041907339542619955748663810774148471753663853460812808029535028335837084353654959219963535658441825953716736655518943752394182957987836652010565996417795763360255770678892968576062768551993958180604743345905167139555966597972295755859938977105131127583826489822249279043231340440565312758382897631405669275127115321542253261173827363302336672035378996347329195250820481064288514397437358997161488959578898715669764283359370027847425971242497549004609237256952667602527725473961811564037925676634558812117369204606444303471186998764872019452484022170638583844662592894446149441243591447305121143588933501670520094900480439917926272760957075194213913746232522350412313305240753383625532393775220586406482537088886415004007626167556614963145543765483454567227798091763450673057709616158754359468893978267372550098071989045207448279713350146131210652976815381832963153110388838631062536701543907707899027260724751114589186080767510560251703416549274595875487792349255997663540637241412080298138678544292098094219911709481661794481234114503850532066473342139746474779986200903366822622205432221374629456192897827752384605819319778234822286315728929601151256206639542824789505344019673918353624139034629605442255084233517405911807100949945943111915153135045716049197394070184289022784802323321895846123362706659966961726334589301592245348190080862463414128172087283440343097687525452034861658479185001800453580374231321408888748734786582435307926253307274936644459634373325152113003172889317682378977060377171691894699101367602420602966112114364207039113091760148715170988926824189285166340722663255761031416256847785057450571926603464465908268782600230159644917699458258570218928445721316070131038764465611503818250849242763196550030677196428922700025472565208650855839792695897222781624823917869899973866033267776488522551253049722995985188345137269859334965379030599314737554483883487710944199523118059029926178907542514463825342591718892694156055335146848322265235498171606387471163792140231742737828862132056429870941356809307730911600695571050936799470286342584826250614626158816231380183512083550894035319298950784267431977344816866740626356316773447607994134834878947478685666064933903281813153007403482892285763061470973296053715681091003319595545299506210982009526560224143642124736405131270415114330769728243640353660720072432257865251681404018958460180831468044533292012444354595228685903166918087898050744902458470570282997954356895728177689534147926392938925258951441555498554763725195273179003252495506192235914188768603069898699166723044075866052793444568555134779962508899464283254755723692166117153640107079715066440725743085752858853120915668972521168982566152077205990576934639140237117309817440906406468706872448612246226348389672573305720125750773145863922061926252141705877254878219876106777095587630766051855039532191525832119581638381501486777807382663616501839208516795697208677038392208770741753563987874195906823734095976003839848019315882503589868605367073974016203655244911567452048300501084733940759352031959013116447302342829840364829102541518059499546645307067119526716897115198397740809284261373977182118200554394209853892317337823587302875765030082578930250285168759139226417916318753784777147813454071997524409783083964983344659469055380633199401354437068579952963818433293825093724101928021421572898639164197367844900326041936150871315572665856475738585417591337488762480256376718929704923068923344818615639464597799538204347653199418752892488957790089500348884214730297101749401454600701492110619921477412219055870588601165170946527715997923591049908802876790798335073847315284897201687673812534884782731647326628329022242831308688348421272733190052527571507119234235703027786534476934717438400535950696919019785011839335716324790172920341646261152315745318021102386635833098188256969752354829922290343310780501092685912202194336013508095307584822628926628509211287592232384339266447127451172567186272264513694690994199716254047122796282588730896383681586903043812335912222776326059002513473071317873641670751705546978818853933825415480872799418123092143833804830167730918283629430687889174458813339973027868542949692335487482542189487291110944535437927389455542788371502608278393623311789605895206999702034959759111148369146315921297400872936618518016018532774021012254874735861016218471266434793350014050743002683907567841747907730885153657609035056395748966827175954910819728571540733723372242136240852135535290186518421612204260859557757257277031675777185947890366940789303234081145436188951759141400520961911943583659733760217471264469122050367310899604279010298605728413949217408687322689155211090397319340110820163212975482960835250957805431756406233137277720493620357379982500077858463211499389187703643269336657880070811547611850475258609362552609699708249820451304377575472615009679649498766328279602418951414771886930738151829453824340443057329402644149865793488576742790031135023265308289744061144695010944947036157704251076172961186092965334921806555661220132721502275049551802115719896191249628410632828834004013829578174775720057256869491464272293201492408748172486117356198619905104182976073803326937152710445537812329562340340038108650528175130430375671047775107366825695408854388723673789626366022115767432111571249384741972062030760237688832332479680853409047635001185887630747662971583389527965500995586066397760926758577986092283805143122761522140152717795362505771415069284146946994021412106999567433340406973356396239402089014165305483027663123732289660292028756387025197087690390589285135216876479515399394011352201887854926154008904942928455059282223775499853380639538204692520036522539104532475173285263772790665637044176015899770984308725277222349651356124902378213367096075333508272397984024916575305436654415971943812572727705792223434189333539701652230074842190227201388468543242011602331303847238731592501447390665454316215527558035207772765104113415792833612788192563139040592627184125009105853608970326817023345090891602150631615821896751078181380301599769134847337338793466620668393630436086707450986106802652353857301483471484097058713614947282351438976117266872832248095041506211950056338982032661168615305583468686258065165607848171590638340282759540380307699672118112218263092220811741714626239009439411161828950652246283551737929062162316811370992194681438200479187412675375904285020760484768046563225494888244114099276471237108882272762988809877088343302356689561396385276928355658489305844872649979168391889062665380192429750382949889839146093782951814544132030362317343755739798189060319482955727509102044422647096731009963762638132729436935097285904778560015092752443576297767427171296870410708612845046121879342041811840023337256022778657731878578923768080172102302043189194837279942837200844432000280921381220166338859526176747633162845346411242058765591412741986985138017313357132324718199766812436260220690683560891435635537414586688465060562615465314899891935283805911737720197168807810599903373811834487996488302743913367229262122628593768615288493383581083015149256641757212402746895703737624198676959418438656011605898880337878508729531211015463426504420770403733551906109638298095382608338788064309560298008384011010615486127749970800888922378149711061623037470732809439849853299932688375417876425368699056810952572954600817296642517087246878870062202592932903643890218973661563947600437003956566671208220834004486506986503119805867392925068403433482296220027802360757678838556220160105875817924304684919404406954235810938289219570123777760412770541399843012867707347005920201273817492309064186783812853600583770563579909226443421858882811805203841538658720740345342662849728996677117829877626704293272032409957846495226653337465892079071251849941989969961375424962701657176111042848839061618715088794048805517403864856336775663914193184878057039629472379167345017598676358495877618869691672097324212930284786950340171679574172187397302907703294287623046771932683938828550805552191670999870812915652964936861600769526054186423550738562783273698155598858862749311058242360003697528431491278278631126692576383336247462633145300661139878038465840445345261179541835348426841471841379534225006473045434753405460569673726656962383956613247451573682222322737612545063153535136042621043738028492045567473118585683245157324655722504362473245474137748479054591293802370326573180398438530525292814753782579013505721716224156053937171105762834402194451926028967851849870741869818549538852958739029533041646051172568457322159883998492878726094583860883952694379790739234485605333099351237310545458352034307937992926699429692854470335820203646655414245030254650474331849427771747910525074789679965161163293329868524309806887861098817397698771955722801921701017324717534159417748619791907350113906464822058058797008035668176815894099417389933375450175811406945747532449286550155207548721762578140913688979653751213237850081627307430603154985161193833064261215096449128810476699723494219879987577411787221180700003175455385741070696886028887697961592648144812527348606306849676171348967285738642996462321523401349732180377134930733517903585787438575035231113514060254218072807839904441346197692946125023996496344206202455978092147472822243737812168617684618546457119509750819657450424741383503355494365154828245089316562088687196622383974239456663233242245372454418088049704266773772862553221894383736664999883867533320464396457216571389794733587811899577359553542397206979463813848762462409970913768411139645988943764246120880036117802410124559994921224420048701672441870865794975122020638001557745425527935333936965835867020187217500069732677992036424804289122537820766033493779972037690840111146398873487810444180636611837493695880609473155028164420588507822898611331832459786438168564345636580135639610002342492453308072309686845962157011416049945712834074431423424472471622830023207638471002847009888600203213175986509655645543297508153122745756061038542174374726532578603108336148282612617749242366866496717160847641857295263834736636058232520570576804588524184490407093807778474494319454105959368377154096897913681695661358831819317644673219123395976081425410721147639470819672473543107684463628023700476383264425364343053661988671817916980277911461149334913210573060069255483841588976485248217650700267610672825657833877623001174686608391919954903722388610447194174237946238233758059866273903945231613546516807078907372377233051275110500674400569965904224385635457193232396672857322848676031118848024415365069479881144753805905682919347852125138969482570935066495821819869001658743824760419454539363424107915320448161688450362207290702509013532464288931471215870049929227776541302614478069566685416184564942654416810508570765118491023810940524911720343912998415718516611069826095223768167993715008593012880187308591363598150736536511799165702437585859088066159989511993537159904526903883878266468750198688813448827566039254426040420233271067391932097380563592105983394625032580352429745995567358937003151509525837801138378856267007856779037163294301409944844426513768461691476901119713922189725729020986562910590854908085134681537044809507181682833836492950509209140292434839537851106567712615075479058942074650941038849928429909885493834744320191136570434648657697995961475100155637138550058460531524135227688694949809467129296109605372845146642326240194865050056768988266648936661311564823890890869201721708409379119102812180952929471692588975610138337251746837566470444209004238366621410732775156499029098544445918876670934515521901135023628241547757283314309937682780983391387778416043355112831288165235670192548901575117912839198074316750101378771106273967000844747776426607756109541331468366590674453846557427903896699548674060002286059741632218498246630475756966704856359233887004637662898141039732847786617774068880894394145917075309702739386595171863702718022206401928424201753941688129685560967346365153697353305844211179637561622173997872482254172386716102982382817336893539106962759461184484998883006671394679995769373978447078502943052956124019799466100164961252607051855783135697216458391373785975540858914408055193997044686007912656589173440788199831247310780344604826167364974947266563728451084382771465634201047376736065403337268738790726251876414147275613327701170543083728683587715140229587581125609454712479255160525025250795624808079596920557656068254810089403164287947693040270456473097997520141202448441518618868081893202959311100790325225342690218348607441857307959103258233578950931449185968503285728363132505857980875553469522904521649868917573239501078864882840083793857358923015206668406032851877994175919050599888877882415751815168835722787501677567810061181070265349687424735536929392292247482104244406358069222961604752045522553412876642759664309300401238808588961099901231618383967783968567521902450061100819301541936166156504192051701005700969176032274580158089882889733846224277736686636687623340120534711633061729537877247538788099511579985294291688247488367360277511250826763279116675042745109810348708031035020241009855216357992305368521896055195789747305985657315264432531900712671176842931499003075705660781723591959815989305776913679922918619472479247570748057373805547258533141529741237456660204474665507655198168575735651471996897156538622986320228159162922690776545875377135326828054045933040237465668958213093774499681862148974473581382584161888885047699847686662201845016067960022894528564965182492673016519024086782618932588297081501530829155057020966977283322983626195309182449871690154097027140257781026641190676975184344002230940209879753194624472313045847592037965439272596776310589899392853844783172103751409753307439184387422144410577594998630533120026283249002132947807284499300089542650984268415973840935000116872070000540062821995814300819751366013830562997396169602364053298997622993899950437241844376250965101355597080292761261977712032405565306894789085691438324735577719269310794758115483757293915608159065757003702823246883695173907527725188104269938442807372534067827262980233023257456008011280721052536045674252297659083979081182083359009399080227456427841762546213388022285218873803007105185070727407545313616666865436774104166324485399355522389491523727872230404573791743889942667600758572157672899851123439126569440459980325001646411851943784773640821522182266407350427030135824247229969997282418315104237229177919940860942425557790577158707078687626173126938593263842558457391147599092284452688083377663356977687772561448091646897588195925784893212021373951553527166175871635275787824349691088815760235121721386331132819407848965870319915569023593583918576569269919380121267753475244573053906991154585451801839352212830444683606406134057842831034758610449568808065271337424461539712317602851491309015839190352611387804098404120863391800468038788594914778271008338156471996431643709912049651639069515964234392295751695430910456295637404327149018719962285655447685574700238770570795131765462614535479889342218230728903852842697246080239503570580629657397692848058495789030121373213369094714261205584808416853702739811977988156283213016835094497735832304782808135293366912923659599941745633267009500878392409378018359419784888841513814338982202832503514002654453008594690900404217943070725863255359547300335359640739705207747895956127799997709149430360221532098035479997923099657139649162794227612772850820065999528168295728813981705351515605951659958240966958588051571327783103019265199692539849818744044689525433020613370018118586987557433892646241707784489234133593315181089531134927412507095788690311582747604812561061120521647791185898363440021431975022175629547747963435463085886856091513326153338580958900059811865314818724322165533809623343795732311760732714053623259132450373739829546038030611942867076768961308775680823102213389394973327633485365562406655021703241605974368312509516270881638941887604892465719522063623106669055470622664888180667901347417839998800226708397131759305378703669730373003542267242129441587964916053458695874633120679919802136623661404925432478659189147086724655788308552999324550905813185623916689051318568205327558489380338675518218094087606033852209252127968265139234822870881236893728843676718034514310630362015007339900830608186560848979134305010358151964738382583830651366551914063181879037228017605457209714118028988137513528982681838734376925600874828989506332918885144388767038745106172101541972363405364126599221777591903750357440033903750891139599517219954944522667173233218836155551882451398631917285306334412661910393809239405406497434621133571692218820900755352635191781501975889150297626662160354413276112567570301908420441437816755380769916233003251221983452558978302472331138317657848493633587718983756129228310469029133848912050860612349642722704908520128844460028051494360719735258815577497553763460166256036725233760560091517358188197291511955238468824308191948011031787423574873857090557513200985967830265959435914806096865292840150611532856059872940201941345512238257512547508175903131366664934754047473926140261934106834453490729241633460988436078721716917014747127802755762413750516996042470417899185486680101101918278242349951066933251393577028822645879271225105871585761299554416220539862160183846922429746973991209254755929531523495482126897003657903600908339184865886955672363121065226726473559720478822734732336760045656037885886818091869897253718171654416029321885369280632268825817953989721500695365773410089411944063647299345097849625380901638178582186505698380645658867071130048045781818458671973202659325494783408679279860352416919607837710764507615779022031888133813400743109631015999405918835873131934162800550849301163795694593557230859326110348378696118849065679204068480785798691189943667796052954988216276328806602126007818092101511038485009921842347060968352502071228098855428359764001848598305596636986830262091169199301487035515355622212051327109770308213638920127959589899622923174788842132153543528301667401019824049551134963992522263295040981416753792377312862418373212669594689850052731875134244219932993394842685172919050849352515277175423213900525123504822072634282150873747603055043014936041102220478388946539615310520240260103821237138646245640808233242381307684692704615660413969124545732841345271083839046308585494603456378877297802860713823413304342205596609639345728955363598327194164118222681444914992396679635933012321873845117619332283382255431453331550364713784395473746292749834085280236610682065716414346552722801971690713852730664706231926767808883063900368844467098532376644507709694285525173999000822559284281743844585036414313807181541418905626768034268013879083133983287379993122383265785694575611657620013035415230631660709575552151973896090163600365328507473036165364108430935009170600305635862244564194038688462451191976984759275168574612178182019133052095044822081878434224406937711818319946081170646272817622268757147492156124001723197220666864632093791549143090984556527500765427106593687544066820726233896618388226719261740862028851195682525343827852292713256091203011826021612217565862206474575633362167376730443735194379688935290377327420726200643750910443986780182688845841585973635733295720550779587290960784720839162163957111097053042167998801875962042994181211964150913493712674779735223362423397898071612344102946210500181962111396686678585295738245006458731169937788275832995185066988158243308738819289607067023269523109233968762234785431106173562570003484368765735181768637099614668968392319576096516115195520269782867249848676936102314239511798615146857844801733423186187119157556788840725569221563329472413120101811473822833012413223196517325740035467308021363379014289062252825010740435150200202157127218529646726342975604285536376621928531307359407163888962772647028538696634822948364414440220531313085997875552951763918608602212465480594877955078218387028867797313860397594421704616234591097049442154009441688312464700577796341304433389197529167996598510664613830512797350977595334180123390499817458906955897460495126189029517810091853306125160853566913738149113722416087285091933552203557201453234362673995769361468102425587170792448565875403604767437863635459179687214291382256088064900022121813664524867567456885308530861799335015245507995495325677402967648364512545516783605990436434774156181745341489739210965001642574132505097545130578183965867738567325094997359930267811885739325603078031563760135731241940523748232567992159148373495834845003087837350450327081308632224818630657456323084039860548111032142077697778593239530878028317888438887624685536487638948011230386835574610449899851579857041372612972751967232932839537600840380434144273038699541892326611134070191957998418676834048522633144884888468070185798210133763529739233228241134861059611682915001003379948290090805779769208769560359760373005550962729177416256728025199136886842465372877962933323918060034834571275067734105550056568947931182827786287029948979105319144129195292136331621964133449025994133104003650429794321043969265374270863165801619133938827158217066455262018719856333292166841970929469549881982646893810335144853839591799227343202990900842155290283497333908819741021997352148714799919432681810024312325222176719537510974821399301144058357608175813315401700052534624482979751505369283424105391437627401132657682249564181341714054936540421941356908530797310699807741838890470065887456956771120997107338148080062819885473701208193634311973435242934043378588606345532974816445403469610174126210212358357032901799843086138798662751455089108717300063567769679308816900335140964879680302362999853308405764533227186133255971451091582275213491017441951463132247067970519049969626974834098630890648669592194478878662625614072349934257222800775509935580541160476732325738252078158336057966227833307675143728209682707806638960136875380472708691727006400775685580708666031584847458354578932875479150124617508609158111888652562131150183098845313222450289492787092189240040705921886054181950771969912675568360918309795447316377476185056691860476550802748122150265032255649204421927869511963841064071305838583522768147134743401965349031184310787186715598022007929066801670095829039998912448764777850079222726844228230597596615591832389236389572693329497634221912002820023779508066828072322145412062967256375653933174441598227440653298114301340004276123626052534976513212819477245371107934832176436238062721355022101128154637155320064610593016715615255627275280877645728811310149844461902525447498206814935953576025125214844576628814379784741265079529541334373944040633409568555570830814980022217584770844388219836620811970874594934219570330551524622823862453375099001564083728443858192734363239895881266352039706673154999433000693833070312703735645834793685142638970967707466143162260181827522582014686032038576149867310511927226474082978639100652558516378451588729754945558340030373419948076541731721483171728761676118631155492171884803666988279957224938568886901105382017444512608508167102569939791872600951269065886411158638324579680769506669030893416423525446477651089531552632260399637836109847980549038207562605974437627969450631928076852912900736678682512351492325309508916762032579569531740829795693537808099458398636593305555625087208428626314667932401961284280610195211173364151799953576577150339644833859292372306349387473980662463218963024048733998668885957757958503154715331866112664396485545480192608614049665801401350685505806619883355235685355179680884056273970462687447865349658562146838493546175500715587839142430439707386814394024822117650027408374916710855946723144179438653285394582160035815156518773757509638579036803745691679143086879387021671076042298921678835841934045116401652207007367089454280464380234176051429438768197357313669296244522468947584342468785323814362272555086034036641536874302948775787677674223952990942194121948762335145411365843668098805580343483546472314343720673624671903722993885684943663611774035277596647778538980374894625697541419234613172527784521849864270519760407139897157699699994865354116743869879417887668867032035678951897134458060692716565022947117941701912680044005524722820892560962542759426396585817900217946747707284545470442152454605739818960322046581989599153579321752428241826521417118198708538755443909207129522906627544134290609129605943640290450706531676648464907991251283003351495767936736833680222739003806856639342077118688674385328990285569184981974319106595948782422333010036513414597307424933224868899821458049025686622925033594964705426727321088982660520966236247617733590869672562404652128519900181633227604501466177812567368547922734887528679854325739954270627526549370324600389357435941468271271563930824133063235092953934156220735419006448868091097834881683657633056740113227278453125344060196256037030466432083181698396428427104209085530668973419908066331309268882049460435955789017947937887914999770434196771481552099266397838628012320607644527511173569738290420118203685821186350645085917513029359520346121230464033702211640796052001345340033803994669426103161952422337216936029797120243875124880722747960812636291058118983182036197635744574902117417243397107308114253038168013173297919569438817504213148790234555227168477672498776429688678957707187396901213005683644811529589007780389700712868652878994635997554165476736706667660524064780416281404892235155531655601084316795981303276887863486068961432267963838650773787389715141286388435998458350550041806118850781249693469487244531009114319574314432863463306442773363786861446002748839528100878106018565280008709276862651735110721941970799633327994713088955831808997645909600876343171341499878982378245392134622774303464967485498444409786477346150540728780130354009865919244846511035710474999981684677656456444781391498885056978879664906761529224042925399067501762880064895568528120776276442702890161939665298070721751573540040444753989050876694112013083420663947154852087339429325793754015574995197898417185643905053604555113877647165397341900728693974237256947663194812131448647110590455499848549822195057529346418720318703577634837718975553168634938834300638887795477174945929151834748191945649414993045511888706947953538430402382177872045039913099412970771468155976553368647887739266721600441954141782837020254291587439007584549561026884226710449120187243319675071644710332712029393909174251980984048397073295286474161768456326004026279034742732118829742482125223968887684670708778033254477163909454300322457356360049253478668530771342785869299028581761492559660945501374127816278444369212473632646207483845429805423269297029534802249428278037438230452713637830009147202287044736187828471012540778048254390910855966350447933253850479983748484479372904139275586731344014721519469415085507685729638769879580634845157676125688860566058314229094894163274339280878282613261162008063335778555402369205695461439433742829952395678872854970752011208050381369655815374694192936798937973610366279972010461821896924447797137594146435952290017571323907660144294403421748505489032304781897136496245391301865464662121718386213663505852959162805777048848414999387746124025578030748366102651459347547479012408930516913956359412168371476024418697319764572107754736416717010693795910784040873420405983344422244039121643413372713885352796421548016773586832231832333831081264075381804539648729931121629121757057912441590136537303355930700920447729645495792376131313755587066296989573288916662508385677561808712883166668094819336349207020670314421642568982818353946588840722166224498901078327409538908349026498612328921841618971197367374351247323527448814476128467064341756730167148683063023462914564233359992707324924529281007872300380399939017497016975300929943553832836179926204642263104622484501874353237802771211403925325181831728131869711659450840207419804377319375236988454169461464171866262497394129697340974521647408041047788358637256857081681158715150270347404007660275123549178916680647170515083134321942463945140988989931073320073951411519783888625279630468134360216701584832400542111584893762934075406254123511757195536243376566433710156061607075112774293619687866567589060763204661434352623210402195373570150287395495771502811364040879467715177245969734308237568314969472279145903804661359519476078347843679933909258241450275850538836786146908467965436111445492296998784053020823209067867680169806788513804566505176605094815186491059971375135854881485582393577225312970910180761190022863706303773484311663395709316535983467692516459783908697136853376031411603328961804104114402217932749493796367799914850826439015904923973428718868270908318244627026890994166147482254102419101978768293742419132392462413091118131363179360613272121061278702401515136574279967757629548818599622103032914303938193521122172589117540199218496928754758231701272012411125044320053240928091850282691047812109496813039322900642229278762458388077951769563436024291248685781557138445050865011297711832809383159674923071333254226488901297168326716536213749421818674893881042131803954893710358119599010680618463149835978700269279593671662294914694339788457915922608558178820250807680438615323762387282238223600460952129019749508624568053696313252753284258187211164735834602160595475546190831847450941505733123492231879362708816909793233661675744860587961480289765093262217567405899842771417076240296466069805783948745454861576709346552999264010235034522142917741101832732926252335521412951901008243354907023058157659276712351757105093814334517758252551998121288137901902367751402008554687214137663095338347150591829373907426070547810995341615129349821328560055414429394282885221030372877930818717840495427961853037809262095237759232546554892932495178366653935972944892472505099901251569543540916223545142337469699293201891045476745181662051872190997710483813793546214548572939962592653757673368050627346305409709249523251080481127483842607548083002633319169097191903764134371364491280683445208573623324163822391611563434390929376526341124741141496253087078637043548858733014637994400700506990703685457746483452976660223838605703821099781038285537718602173000051053733825831728877519573560416193036552586535806365131258090031706163738164922049890879662456872494354744060415659013916721466478949039613515602181979018351360723849167212781224848989035067876300986652125868974355000464267069571728549028498744145025959888043325873126691907657435866282883092425407177558493066603599700796759992157547150955228700872433461093424616667020696645991307585932021547357552079451093342200748084938760817418143901859162505239435556058194033552391553929038415492169956839041540276742929557572133089827785862464568531937605853481502689847547790470275247795195027094424368773667255939623850776687302559507359651646364954578317330834135037934267718701794749602100301665765263403754184281885125440954371328675577692972405041367291844414219884195049312762019141155481272522626464044570356093064281546237733965719199711804715037783871142573469590844965090409516699811940356291048236343497807506867463058598148385263755490869859518419616575816474685570976568183523502772303372882242263751969938238757238525202233776050926010602269907458695972719745244438490142541856713748384206637231563466616639869800940858071381005940436769502090163784353994894806235817662999008530073962357764793551853026222669900323929928738818059561030389914648469575383725194156762133489952397193060110463909122850606168226611060654259526706044708381858722134314696534207119375868605269984299456626192723414057385038267965445901478675856986314192241989283474130677253197455318511171722991570532716613021853940356571426043512939752505396346529595855262574126542324131517825292287586032236441574565834673483168148872696031886984608530067414451667866537455151642339352984623094750290414324906384347354005988485940854176084387251731987189847921629191391875236220857948863924905272686985257108823892150835390665052683785368622657762544405307735226904016973404272658258594356143943838829282128929586907194184327987406827772000591614936449516717026970745952314499162744814247957925846033887906233565569949933760521070636344606677676488487812751798713666745517834544417808626129930564424995124773848779259210776118547248317546234103113256455033480227581786487548490676873147913295980210020164686412327862180836902897698738958195254255050818430540474527106636703874890841246657793798692897474663516006806995106521310181688068250716471289405541173751140924612971457862862186719223793806375198083414684113782256973831542125301351823359367818507984889245811136042713670766297275926759808724280082597923011561301870731873568848052664793699041664605362007450292189312347503014996381129715299049521597758677845220785991386010404708643028706735162637882492319303135924248382470905239630625313477810624381662209299919992297856192974494499489239062549886919637921665856784408751596717262182389642513891564942924171376934237546523460562476040947184445896552783045541110322873091440973984579935837424404971529154190934980307267886408671991548880702091622804133508014982105777081557736421259209746997559499236934954980584155052766604413972986105826900924408586399139913022255130946024882231838328577836589361827811205996549836427145152546080182235521220666604346859158161071453251109486320863752880893202176885318836172551229474648939580436166250498906858353892157827805763789131641646024282031547293105224780051221737217077228606581558184601866244077109950340965663168021417678042532985981651266794257087378626059706247770129270441772511692892699862762858801230776857158198928248585825222056695466211354755330997954460194082066825602425334718322839338351053269892329050485501345907259942670282203284135278245546180310129655220453222706336870602116120022613640901010833686307717207200642121052945631834007851168188375398865197982687316209564733917216712184021709428493643075126030830209663847834639972238658954420212165009452096890672618942984571899823765327938067921283123426683185158583988209848181703156577668319971057131522316516699545622164088669216947204983594641699331008385999326124220760235790721595225057934798448421675704995944315650707794479343269020838934100043346739527117704329189033403222322907000125461337033842290106730858714082250783684292678700919081810334023835215995498232054918390679666781026498326626127304498981981888712477520571404039502207650405177080282457199457172172914481897351384439890314602218400946375835106343145783166165984339887157478084029318607542684956786374441165191861097280837889122055698075271481620809611759123986762742268400965724821036031406675301060292993759687751107585562525393296034003139159406780252257549915108763465096651353227326859506219737757759726261136964367862233546056188452937913150729685056167815873699441791634308377294037709899278484869652129249167139764520365890504230486069404976308266695756891775263045435524890119284458857582414701528655312689189270915306725414682736054934373904326588625845065138519659209738189927184996880167108576007755562711934609427618178718479700110656050072741936172681978231271368976855505378230879009900980811362462145130935027090710465027150566132933559865215388502135026290796432397608219939118604384013142840564561169237811292292177863225223708655956576481534671825219588419618407761833187891717368100404271072324816170486871833108084218331178359321323372736040803150795570019393454549340221409681266804357484943877473041234413794315654659851139102760160036595974615113985097503807022093115914963475257936343318685702559571455836226385826597462594654389139449785322164517897158582456807525922464969369117704442106198968907767347268834763149593681277474058009880443435809117351852394145296089279583728054598785926743760528110236054817258390562759006027164443883841532710042060835970058859370942082977752127573149393141173273075377358133577537368255052470727219079292672736713513440418244449825452053825487767643810241301151446361299029283922580468825888121321178138707312539293119327223987337675165965243816984836536660146135690265903877670388435342380237539980368243429355449013057232789158974306969064634514834856533397526190827401225134277376391282810960844479821219248771217562988632338940464965056555854463655450266908517899825999475916977321816709098837623548672512950544521848671947265803022146184681584231061704484655784869657860041429151418410799153561145237646634141136062215321287731498564057042849884789825795054504816328353023248451884308006322895936626017456164206924817914101008005745806913978154173042617345440611575842004902241328012698785184067776430843765120695629104666353050164736477189876114228085977343989558455461999467123267570316523525021543307235290462941833330137122967549759174360058896444473452446882546513445210263292143083216089203188723616093028415089378383995101997162045728173613004904363695921053174060261001817029241131824889765568237164697226317573840883408110841638575460600935144642188689891675629858711533014313968022475210124281856619431807174023405897283947865026893005013904086761799282186219968666095161655537616056821770994643051460381511463104801684668126151969027687808888010474188311370724447306505922109808500512213296429292455833253544163830051950624032611486313404299725358612703121759136866781199953899794617500660347635506063869445066172521032073648211752970945820277362860882681663831666917740693482386287398974235266485589848622445546384196607465518856373991986995328775951672569717562978602330045681519343232722303890473813399997873831817197474618134880753504527700271593440039854088784070011371656240143511958228609261693881463378583487627372641862150021434734356902149322998297908234017005298935595671613857248945556300075147612770517228122026060567506783169560274061834866492047728155915585372752361419056485321233420109440622561110240897108150776769127739802505803390727353168481816174828935848727363688528614444227738205809284437393647776612929943219933331105194914953681768567352916307950995562584167612338189409929645197872473409922152456997293315461903128024551869397410875270114716720544567223564065731778198416555588964528079531550564089295865771579240699528726778238220040523732679384583432607945230145878349077892058294767081711127126728770332420061196764710419293070445123649795208431042540654906545067150621113682014880017346117709619857199466541326416647594662613159498908711398562236314267577384018872008517669549323183481108562518955209332361208236701858962211754921660140201331198689804094870477202297251077926362751592248275481489803011866030298207361849949071728967539401338437256790621055765686961360564244725774991411062345486068842231971704682646310168076491131694248930845871155875017892754565072731189945648743546142553408177789405332800922217537672633701558823126498552345310138723041203684914646877743458957915143867096020759596318168437882777322674223515666857456108747215324220650220366068577224419987842155218724202177483482777227350305548989915854741142597696945853374480606463030786679162564030045188840726768293113985495563147238324637594023802868171640840339765005209603947342951735116417986131576398485407559944820880675032307080630554342541752178504000879231866775881698461847400792706268864669018672320825469250568612207535031138433613735488604372195959402029725572855873890972106374598832758364431588940555455994201928028551300751238432576663321442143827183610562541544753805011737740116317035080791497285051662272556654596124387170253611639772102182289351872711950356425122289270186906896569610010573742511553806934659095738902635189556302412248920996694760177354706723405469569667631699405944803529162939004152786169551254833468536295738689159816998929387845555641628306256886014004789428283220757888868883628310227209916887391363014877578582785871446204215180692666941354419008808775247449077607241438498286100192260748372630745583471299988796701725180868062927469335118635271086107386752269775133866207535530164330162989623126279122171964038932900796190978135456556731030988231263601859323469759000927079824135568890911014465628409406091080240050585471775860237810201808299341903618808957207976293964642848400151583822403466905809393488642746283209887074334750606479256620556038890949777369514290507186867543622777611574804358232317683231544077274248775826217851927261070897538259785397941817034826084323981684775768027071282994218196021611224310208311457208918516216600410933923465431691363957257657041243227319236824576722857912239472287068391558058053250739143533496960339665390757813543496724144616845860803451350246995582466591611298430343044514583054070307887827440251648590135704800497048688446759729720152523391154447249562052589667059400652369453738168448364673147137772661367979002201555776867876444144120390750902052030486935338976031502890506225951876219512210922427029228935974605264087602097726024449555594910725327150742275240419464696049728700738948804572120861020585918124961192458793924403583840207056899444261130219617435617440711951379365989358286962353455244758504877637251710292039395034890538841441662015145027549916044156785695255648924948497569878683366530118756244915355061173973598978577431498059561710543331147599845852585462234086602246730052057316679871574816807439289934418912458712490087682495382262024450395372005101613583286407340888405238993989559765609182751742893464433542475190917005373438086706436046701734711528602879912734615560729924785747216870199228258647592782089549596372733064684789340380318188977230151089096741107903812051851316998526064333688260999323323008209826875834523162266867280028520926459711851342690047826728847923677838100394690200282610009233353144784982966819882642844836080351656303790639907147078405654027916862292364310802685204654645693015954681359568403233150809585118418286978689889753896034267596656201352955098295692521337315161675909434180474257828091645207921712363325720777608401109960086388741486625194576274284636817660303417338763177510830638362599494542301292758859411656380733334274809075823786440347586165744246264214989063718629324246850560512218195009108818251538516319128444270087704440096186003048044546800251009564773424884569960719069188279129472157067983213309396646135344153127671469939427150317116774943297164528125295969534166119483067265554168708975403702282570410946986152349079010075593574936358653927040006113833361473892273913352768738132556378060164324844367533912290682246729845701547470137765040180054181899569897207488530780971834605025672410336365761311843221943615447201342947579678890184292960429288159444357022083482999153385413313231466479162510853542036496089123594574546865503925936083016124536242591586597310849181250893776283007361568887724821568536693477939266853831637137146730812333162225171952439678640783015265434894615069485154778832255295670055414965556930155559158295491336907612009251576083322930605474688030376119750960694104050398976363351743969365222562589114872853262622970386634252668253494948928774559507574951178858664088414286926364562237493908068577745091823170610892781048492218540653089414968732225994163551449007119268236326418963818191608374518693991206170893620536698589388294648148489958552224542567693974075388222107975616334534649208066432240801633159427916135913136339673886576288196089388950769396771418631948226945107175967926016664934336300783167111182184237945626672039286311416387594729564011964102524943663245369798081630385267550504755729959771213229785378538583797356531723016273480813628637049117551901692699658000276583349013958770692576591655206220815025357210616714861619274087735177255794337958658736093958843945891652518471019516570864988844622907475617565772921214246194079147107034046966956729638127955800516056468940030301515740769125002349109364407857757657274247565331469292439284217997084708670919034913281577371248016395829287861172588069378948101511211899467965356473945711336475664715090774400307604689284475351686950362920256006278219593192770306625998804754032868927727780736767739230373725850373224910388163558692893519927343295118069583864795202514263435593073217727415175570964037254903187983891050772759374384121280371253917124827683996714736600796336689436693313425670347654628498084247533327813399739394200782833434538855812620398080603904217734644178927826795642883242123879603118890987574225482004269753669439603633203712584100132876650631534197266466360593327904091373377405823024478260519976298642405526483429806341916152487422822132825839134236608216597979391832145447294345735392599944102750519954224170969564938359214309927435133918119771393312399806106351990749619419764345006202758589916143046043354382424345229748847351807897684016381598187176975974940072046854053726590864634207342292881098653451781301107660029306225067267611430842803006675357400595238594436737144258678644515454371612170960853893641260446316092781134801981464769935974311245370740078931794623065492352974864459235390703675181861027316331824009971426473637544781505197247022181890712757049667171644964206799480859463230569514397532473948315849715026373966050412989417577224545086755122606119465082585184554544507732960639170069926033087075278420841620258226718491915656054629380869042409974268079859663138337209374390448336036313068047720353701445501146898723488665856066501525309338273379739076837432475511247382257797174101928745642796504914131361965281296153172044503901996037858256291474668373675125622465084171023655627884967540581040111441813345525192594991866893867258227927144599165175132125470034672786592771096683873110751319892454632749405361177889835703566077506365544827091573504008743967966106495187991298987537717776580454898640449330945826709786360678483376869119199831763717366604471950265478884804379692729310264561208215436434729068662957215240108276906542763023740515716748423971026234417671633311879922941157089177940890128928840183885980162962645538287789856086686935216107656153070047148863244496503342246073171028105215475718620948665452769038469162941601741499445486959280350851168961861629483327859375080273345297151165749130776917837634717584587595113793232695744009469504766089268193187666929980810815783277935746783506228194694866003243039199094550332076752663383173170587003878677184514053544865744784506115344156074652713859175868202541049797145800695587399463089635762492319841464718302951786906057743227731489319054638633987356117839993242982836629618573150001096488945568124471058714924310055176550791097018449815319738908059508676868370701598963531142121984792540670924556538781900256093922189089666228518743352514434182689954444339601494616642478564069042705516942047923402846292202090767612542708231684669476824790503621093938855182053818851527130703414065140979919467731891040025737425234335916177400840582948705223799837322820061399187637242521217151553600696606267226020404086440615987867269566244011717076411357546590728828507902513535214848205791096133588686409915230606557611317787325775607610526245415893299284234587968034457506963918648769061360299798370445287388513811966711257908424478224043920292181493089503392190035528911410919035262915642638388468921644891732064230330111138672961056975148172597442509963052737061418352098232723320924887731435476936035060682463680170780666619915359242587088629221795547479861894584664290097226521525321307425831722827371745267748659208337534455966718732448531579876072355830537897681783201342536178290792031696871253974751960603618039345459485983967776056047804718404949227210167115987998900479960580838108985227481824461451518935407277613308472066212876055683446473162701749197538227649629475716944223843305971231986924114090493283179859403620419795379887235618586684765202745958056577083663057342974656165362128504148117176006882845331322328259078173256154310167916943438356726826638733961406555285462257387464910468042754085638472862369606371292263096375589380684637712634040827523428851956756162889591368560558138845464966313372950604268123729248956927795574472191100038232961055943086855575643439091891416570896836933140020464253899562776337862097704392846991264922687669392460205408519252058566048258979393979939125056295682587325294716325471046404622246640452291395575387546097949906704594869418824921969847610651519058848734822764251760009474903284451559212478827166946975454070329509688351558370978214736584899048628122684529266111734834804905454181794168062099988992445449806910142340795824136973867692373755480689759933829655719840808026619955729261166117327789851004458244137278723860092475615188016162578065832063573005405098329804726531417086633206596811940010085951246477147907479756071948783477752419122780720548904464411107773424706903464018139533098941323359777430284458935242493751214559394828694622660206050007357387828232756377085918337365638720505096762729295236922532157586127017269211210207468729989478996017145357195549923448062033301304351349215250190839264969451579573397519924335883082370446482506769859562654403334577244713324242668918706489673184853192191337904004804666006332725764445685368444303432675467683392350963259514340663027702365107373131256544992942125269214110238039066352160134105181243753136913200392318986055731143686467320308418915828706962171951677354322888464386234091221557075394516247683859443792290188479885529775280893027211311433770987803108039143505612445208549555442082561516059766456452521995914054870263350083892894144277675534271826361703582611114232760510931535162055365751946221364627633109029036868279226819278166667282295955682139633710259708947175622985885536216984796687329132083565345084807356745499466829785616023086779338391547011247355864881732909337994622517099181638727852576691141266693728503700916533863342297286278769424198621321825053037397023194860188332031611442137451417965796945771360093347697920591381592529635210184962160608803327033937723777930647723425207235288797907279175139260919517246343818468016979145105888037234823367888722224837135667312853784515437220417240890870192572249670552679454434962461219992679407785249771717345385016276033683479669742038915698239880063796641844092643007208652476340000017204648237294627141607341160194451192022089144941958918483662316818394115404095985265647735016705312458923246115783206529760535760112060692946105719700579991786770560803173997072096007717274081473819758693632425286500082700675627216900626533094237059515567837053132854311494700640021419489828570195126529182234296912001784289191091728837179933932258175406469239254144820667195282400201495695294401467101904985949345061076470292421020762617024417536684509033827066630657898853909458501831229376324224079360082827849724552414500238537759817532420850408899781822332017613481445468375555202210430734410625198141492279472506480507972115164601057921952245056412648741273845414512894249476621701171407828403670925197774826703000947533196705081122327194735286678837547395081878024083036092872139426586620906175120772553414192128299434226202794883024044765603500094502110993084332336128610119305203914062423220539969303064311766080508467111901960181607996355857370337880627986812608192294365807946410165073745461560840765676354253667565136134241204084355742175841275305317698643511451311857700570555126344538430001086802289750445218799993310553004405581952440557739230513890279361571116404995426472822489767487874413698484049779273568387006042093647117626850626927536608482458224431463806100804140284351747361825660920535348552879984654044211715756900563309153867625837699901342314051749982871807787719711208844850118040763981275797589019565459702711588460710621815899770947543996696062825137187528604075439175170207181452429080502015593646544930093847839919362829130386939427616993221891466972451214802329130533686583414586037156479584068169682329561408788424781310649519625926173434099498914848068631751652112368618434596518526386383960743884550565720119456839084714279042282034168751438237790980762384803497688923639946015785816985517550817943684555784590395514449203274812409796019270501918834699996452059204124375211659020881839827906236729143562950046912444515342409341800691934948084315312500689189435972374746652697365375157168775718686821875975790192978805422259261661296926002341003023247221401025447625634973577431491601545246269949725495369111825706874765473210278804736641826952840349347819942798477263933771871536558415158177453397058886593931330961809650881963766342820654952439925190734591914551054576553537762750283533735609355204618153183066924094134046455299179524150181388206547192913037330786837068737736301028673892884046254229301895307796814262471491135024316438812865235772361237372385899644613522807707515408628408584450074565412947383425772222164215379991779231437895331188491289865230554382613066239048926909452660441632771469282745392414112527151320970135315125280274094028227356215217724522143105005180612953283720594984839258084084090452752775671847778799989795960855482982536720060168579403813314524695242449248683944979388426437658945990096313773362421774573487275043269748170811723717877183890636497948644439664252515553531816795759281380387046546206233457338355644958639421419713903942363802478628447872661193990900964763956190280326441276584044563563503906568023069729515495178086280964390288328991326501897812684437757517716564633959618156217568767863679908983524390654006634497171647702294890492112914038502397430285646868130119142823858783972184542548048419685524595655839345199873912530094252417021416689490700184507825626472621551470991696756448238460314001406312173673894919134631275342124868150374401921915252332061818373352547055871815193909803002960014179984868603154247002498524691229338766375397424090567846124638635862399157993807046516593794363919861911607775526232746911929230526847579129634746196105381381001022412184497108402243950350722355155854699733451021383339810161354261051956117441632756806605202871139253966235251259259995429714032391915626983921078292128761762035795694187856891769749294582278913065031601007344856336288592863242103198009568490390363715521908218012257843946137861961505197149117533395536625848042662372947445499873871917636548683769062388117071891971688223323252563302759121389439254857470141402974056079455704146663925921350092327062534516605586856279609778750312089401028769441323583612814953687964756773753518684541568503140722568368994530234297477221876913843276496448746591385253997040820498455931173567872098271228694902935991562233802334286494949660708235949340548467377316846091546441555443946126690108738920042266915276749763369315077109087699211187473035748462855810812784364284972645279240244298355678409716072288536668159265486958488139577009042265032568518216401420281258937305319538730604404341029288716231900997520078590761414258224186118840708815589954452993648594431292175762667635696462498844909308901610233214581007715232445105455301620369662271614871914039274287402699576471759930983865181857095916534275289801301870603133885176020609199890495604307485544555507499901603261164909436438841087013548481712489909263314655303142328708868391314882547504034389463671803056261915965009687386599946465657780675047343870866139274853704007674829086550177726945661811344018973928065931759092115167242266587627439555593516678095497313803608311394973854901981860866834455652156397000159824534228652209774973518673757192439662561553589322772275757662264289121555722300235054900232514640902683975009595173753251618557829665957069807482562853023500350273253755117043098654127605357036310581133334663489325559204541900002216535726503030889143009102574716893780548638857466764412213902367020433518548963024186404289247339210426293655592841487298023046672497300119423871613744013785878671647544604752509149894287800808707008374285529296963539738865251194325070172410134362843680205685108126702168855133290436982369515476636820460787288789368903846457558749886768990307547730382057446214635333384710485173274132571374188178785924615836497288212272517484425776818061331267360743380169144288214195722595039002022100840557143842771097727748764059283933204500159818696156630727322935848921688502566216583176991797458439993120518726009591615876466159714779868988101578142413286714485712352129392129673843503572914572901294377595558705254995859069009894562057723076118488956302492258256634377970084717186492802966095611884968882971345070413338857153478413552457751160991912770367818922579485028765080521075007128737412869538992454149751811161545420117235257616226788554352961980589948675971928704337168794276128077332751350914685589642301992540413836536145837746436459776978023079065798616215523974476280642360825914505577988225351045429988855593147446082762765855777960713302106144573203409114524119566744504899185067774194532714692270771809923085748602572210509333130145970371157861824693460062452627466533101324614239714866212173640496477481625057980946921474003059216021866384220120177740921323796423907581346679026608620302865610091051031171365662468449287296087424055974789578400225175913779484129854821275300525297543755698884768743552537621798432569417967395486415337906870433393560307770279244049068664838102482248304585079763651309536397580412910154875395642555295814247800770716361320407298628484831115744544920660473481632406710422807507748720302973828571622130293807447591239957949922975398922368950805119053568734809528281382569363449310391500615287474456922729990058132897239344977334500841491790226811738755829219899389517471861016788554379899199678016284682875703906718003615245092811838452107494082805985813914220707540859474842609511710103121703084045277980628730590540472787743527114965004382445098644441760660452621904204601781852195637003627608178194384366483500961373713855886916358842469213619984161190063745506014968508453122014170107300177062027338670372590058656530060337078240197366042768558210527914892027525106496256045798363862404571149744767816229780785947279298372091514852808754474764280248316220225230500357952186932512937954954499214200225907208110179817069777496715423965709862896009627805127871030525015593971626996680455393921335903257989669393812518820622893543120598356515938910727746516649775287353395091436191311489347424328085267868222584459100186592851135063018427149958789539575462027772971599168045332492490502427547150119369776173376210182623766716118726863072824112279664797864265598139296417889630207666615823561560915894260816074738983983602595332550674522018186444394505051550097725860003054995906444754018968995638861430715048983236137202176022849985659778299106845482589908820884455572531622231373494276619835711920399497346593695985866944824913536812024528175443080969267371951072535957423730697241301139877683322138439292950808248290201927869244041606026284116687509166767647898910636047071356690181865094031552715235676653089834271531350285718207653285950863699427721411622418902116865178525028449333176662293721446744827729752365246430723454052246290680088133307855592611295100998600012583574321375729034899519549096269808903101301403113376554510554632866071711433706845034347405751835560299359098246715233493097539091618729117100304316592108668006895307730952893931966341804642260383381656732180117366308920827868440473086066872463827945820678583628351683177338212800654468561728695591022301648448239282943614698651938887487916642456655645785316158946316331481874422749359769818844211204541131442261188448128605710052828274567167993401689474637354780201917658460368726838432131891848490116496472850957643155726440457951689607605486094060986753671609308192867908828226771843185389626525348420204842555236970727282799969329453631583719109888771648081747023989962262291311635634468520974210169186656768529767063403600783522496344994678777051699563273448375922951857345178319777868420701352042494950739070973195845893398178841508306330322096204646336932264953326538964121736440955743893977482224354333571751711353901180272042471520666439725104093651607901739844153888817392247361549266525546979487192600669880440644697260077650440244267191888627977953227413969196574267165685901165504313068590977926803601624844732740508732197346607842577898510715501500001756438948734472144817510205227739061629319864173326193751371532652904114167322061862734624678928174990959537294516948731484495340208429503365515716774744228010804917345610100773295392055326721992915195555500814208869581606078363095271039625033013122337590569501290439239433349909866172985908951048541236874391212288912905859254598428494825800008996998489600249292482579944221566140465918072516716426847334757597731913104832379412245431634889473615079638108208163239273178237427934061824667587115514043547248520343878044762552008531947023982417283981747060702755385850017954220010060566679171699183645683020251293385571769536292009933181994870507431882995885135462489460740007355026825909331905295903114709809917380354047141437216032984399788045158604181594684279607306243416161519153316858383282518725436859716463169531951546608075792075225816458074647455039758490825932668550437604554582702126595720696270942429984512538694833945451294479476105449488929272490297747537464998675199425517238456738523067041126706006879151121779945163123937093343113815774167420689261063049256551728175854956949317819950425976667722497266381660059694763017680150086896899347322453026558785229432204669271803813466487948459689205643715933521689027961993729837897681294874424433732036990986136727473520702216753809423827651691579445023987918111651806160795856088405775833473100430841894777921898251639238205165889275644803568602233040039316977631960758565468064772910066715828944025808188945472759329049722375400354442258834220036838331222557408195948246481312668040078361035317708247220431414110126636516813663313932364260298184532284199103039658229260595545578036401477929340716053754200790721762752885828610043460663788257249989353332935144252580777019274954928562522069087035840461667883170105604155063028784735682733443904512445549992573471109802112691849496808043039725975935762324176495319265819035498070446670532066277163184591240832083075381839305662137123125687722561710331592773885812658154921518342697481623422985183876844138627697295955036016155313736140245265106003674938600357390178977677100952162132944121506059641839567429392988414519378162776585991094828313567165273557048695401123665785307678217568843413956831317648620078915171357162465942024293024489025173746174099668225169151553845087419390899267633137998147812666452310291998194983583796864398813059389253393564354681786621865857273575680821344963015062648662333823172096226643690856975459042062547400791301754675243413503706508217608607870475834645924637520612066031656416803859190908747607970207728239454399984552875707024007711626867619591148327087175738596704279651199106245389158715773641083215086379827213568266895755448388861970693822026004413929910132705127218246805084473118135318321982148205724442612705900174118092610242581557190200062019008182724155074653652310677656898397574601214795513691591610117147167224975630248174322966125161357392275164177727850166253691068860735278991163443938911844602893141529094398297118938414972505767698562290949319152654055794540956801074618132786932084515411562517106623596539420875209788845680762985590722399468986248074097147323705240569616012916429301822201168108856861801738582683537333146350902747478697866866105849261837141640425048004264894010548675024240307354189763151340137935464506349197047247581731774834862840442953270555123549349343381883252022480563619128292945100866520940151984595820751768013368192249579021869736040183289835397219789316471722378126273948678152210843139426572178799307682313657248261122755274243153863959232821548844526481810039108405192543624222103300288706672606738807721400408688676493429798183731605031385372513211314670186615444355618922035555916874742407038393326644566186711102980328447990016821668609858082450173695987302044262656938167422785311010782989294508395752164517606190392272696351493323920787744429176361382094172167643901379219821459654745300592309444824417443669392183186144681209105194756653884833394803432910446075063603993717109959466808431570420332927285057775082610456037273343307868093533260513071454921399742567767169381987280173621759063500509187641215753557912884640555110725809575519900014350274777802602099399170396381473488551435921215266146397258741067335073707012475244637583219621201290111412935633270297902641836449266237055382725358027510906470598419934734589081883146894874855715177864937303422721780687912722496567719022416365670683462237211533941812733724873677556597249485188558543070253829272878470092030725801407517410257507942676494345871579695992547044327794925827418663011945470059008456264063952798977602257690772353099784105767467542978487839401887750644697608076466635241940324411000624526368286487844937546531427102519879809334576239285360195441223998977845498933738465684133627518370782746659400626536664499297641258862617251659137249894817939221807120006584706371521270665347817784601263477726720949076012453364776716570478779603213983697334000438716686065648607415082862694951643321540279833593445397543122533627249837977916956067307058050389066196331930359775012931622909924052589892884361769102351184932607647972304475036199702078851438041205245047097308350169683210169373839645661151626874645598712068122431108341002080655627147214596462178511913022291210235247958446135247286718213948031667598714380741261723765621189758475187523041046753721020083663895005609483753878313958882355325183566826429488140768797140104542085404402900486633931358783005103832631552463888199505942610872334169531663228661901756372829254917347846120221227946954747526729248684589247481105662217229996835340570249783170865957398122348110564067709701342665557064159194751040210533217241265929593365054336982216232973505243506832081088608606696583494016005829046486555045014141420429798305332273903718036076003817994899397112000651863495275111912000458453389351475553181037850964834527803208797868960205284165279773506216364467263565918811554540244351330912033515100965676578190995230227121718860973123740506282493161868039448468963482261775935319358130936506219080406066825930301303799441430563499543453957017200560178365441461936474812108330995923572248726482433426881327488141396183635890561150705760682238914087716526055459427507909923652121383531875731539751611241450842779513021799524621783947654641745903086028435063754274900985357562269041296758406281663514490120158360754609144537013330882912288008944456253903336004511524916950226182641679647838385470631290833408065775225476338460120892167789651772203864968590059991931349365676436861746488852058598076925017047007483372781735764531630993107769552025668263676039996601291080970964345531309977431229045367021824297316726705838310423078423696884267317353378915341078449151220477166467320559187415734358554674286084779467703361610740025092872804852688894431431248310776622903459664277692361359903678999634026433976599709874800188269375221985360970543245508777353695591897512159418153844008948713348527278441290516349010416950153971030598857178308721636306721902231317489759270640232096151489885095191098532460542144425260723776637333554516580829543503038867121126866324828582473854513640717701602001407388205539321625835026106034443032502311425166112353586956705246391269042857837243520481250456587218539816217737887473092885250159453275300395759392157369647173350790572069039460962872442192248784282659583839272590674357030321844456996566513515171143559196670501401477966673184136568532589468756250321745937801843687343958069024411866008826411679121559401189557102588090330973164498054536672249840165178309445009984051551433308108880817298268300058939793803527418083817818125848122944107776964100877628116508637031728241962371470061290656115909036565325028391720790249400572578499521398338724504660797566351062320161843909165724141501778439028913950259380800734173364627826025014808675577993890617494751925252059346251037738354247710098296842718124137146839991288525840315581013615686862935248134642307227188811100248601563334205868471388489441341602108959021032270831067443169250140594767177191369000622023969175026363476660468843860067201714820162477995068347471932678910011344182927562105228254781026087326056258467167864850897092608206506023138102557415910933012036510092355059288012483583092106623415643757586753322750523179934997395137516312408982307318365170648584841760955709752538346941205917671468598945905628140786332064790636292714636427013407073010288131616913994656530739049967909860396449375180645384046087646893865323153620434891079538598021096390446279456365097022225682933438518640994932083861288285144475340457071197547901587192086424292528717977969261229126497072403142305389241456186715536265220491780058085677577624211022704376744285297638957285566985965598143554307616639586361955529627430411435877665880544995474324927445595885089620355984468914207576584449317865835369147535217633811218073689381704879168240783940507601603594378564419628400400055291451656518508687956461894113696404005362262477501764756062015550311994428440510162324621931131277579986892228793267631389733523707572252255264050088884004447161734460227431620094963720882909677272558838450169750932367007220787093612256584345483604928537558304856324746788325689994624652955482414786709438314337910527786944358160537315599705017430664837552043155246880584918010691967361568828572433610124912300685873443939263442112583941811596031662916068647379495744172779044762233001421888678387935415766009999914923011928088163100423149612688903772374367793665476755402390409034982820625275875164759199893335469026175422282147724148516180452407623856024417985155895408929794907365048254248819366429571785961839787323195038128757338134841793777587230870209515849828523212355727457113490591926504369082906915492392840249977744907321535663851094359742742115609660504270738228951053887344125801826298500938781465261133088012385923824671201258841844555566132242052414307195371106338617211302398816709875086547720284502490036025477103070861003920025747546185545768490375596719601176334558672408549525906159041482547356209450091309287233156590222247564436047924021881828248652668413410642551367874032316640997249435033921218450499504934947921996769226491208302024946326988000825122665538312060469918431078086519393319888075094746592906378300239057817913040391531069337360589698031774819792566117689738577778265261912193200755687372478145735261634991615619044045053681637924214077667623465913584202494281139363372121712678388180195639383138229754736038573381817841529344396551800982894179222247528104279368672387650489770842861459584936633375446482516097673531419057902006892649269762396714144197200714407338547729651249749373285585040582208991251632305798103444487214579990118257738633965583181396980821261113943521002999779653688859283411248695839053578801654165187613905369521705143585445988013623341927242596218819244907762323657652850144705438515000688137204152599271286887054292322039026418113797878730790920298813397892476334206694239597817937014852051218069265109106725261399503301457294048688560107441250527579812369964141471036513911728006079719791465877332905302535730657067788353820083802724439366843473498265806251326029017115019638350946168347317968309593054182344917205244616056953476019438694438151832134808058786852022513942040080863506814587495582609958068977606962643328066859490779447891427618330764359772923848029315968916582263123599001060662090004697516827779273321827937128552703996529364936223196012515128531608344188505945050756321821715161379410640999929356053520065147909629722411440110321774764756918509924982016807541318680528499377207441283065801486567110330064316203990081629652109786527676336024620487646271144742555869238263395229101093878465288737681109191104020804272944510866778344039543318329447784750626392822978239820341424426387926802314152178039537802001641759224618482879812600260807296866243621646086390030801010127151041201203615295873354876428207392577553189868128492090456233979763531490109830700699791546084863185438423249959999468797923747785669482940575858074365622581110119199825457521825319625795005960227703244599165887910462581509814489520326603912222658216747695537947837020717557448622636612651207017014370047516535224306690468493771972945446762157626114656664810466354102231870608111623541259570223240231073302755278209234900896066742284923179281989164159102168580190926329218992935142296405413189588213074017933323531363176771232291523138574295447667172006068424662709880741605709448091326704072509868060113646693461036178208577717609777267864148795274502658810004338348243472774071958454687132600245901683891963233292683384034122093451071838754552949634637054126384088920033112044332706676330823592333994089258307663660574224523461607923175617724179773100112140833072855050796700868153401039864192315158943729937847985420084883201622899108971267839038038266690104918410697840741999672280833814495410929656337592462814186517154118115598478265480641873105343554018532140406717957558438421498509621734375066904624526398353669199248184143714071983086770169453879529061794798984727417797558498955916252390776811915354274419754162505008828729889181346372123210004862388020924998284592531049588099187198962653671191852780192926033790791555453705993998397694021788354448946800882030581589060468874096440865979090570681566968320700498849133121503831103404283414674204659221395363534179327745724010364588579099146724397536352287962794867347706910128481683497086290820530094954971397847232391138699898789891493186286558016953569133216739422512584418078724342107442685657954843975815825472814512704600318409878598810990430735707483484132814538195979544771651702487704340954418529148060837614474359159870664946759040484547040649109164183212132104403020226897345092950050195807066897425422971925674591589581757826838323899057254016651700869648879886833949629567390568714155648987593911614252703136421245090814412296870308642094808455644314467957708609165452323111401367344148935930601427383452068302878369898563470231590390447469670772597656228696090779602194256689654944184453549251695749732158365765494600841844482206554422470260465392682700589324007116741384072489216761825301977553400158675835881779463731422408977482365321698659610129634945320636989636058464436325043219021474543074561220226686568968138740965742443696656056018041048716332009682624842999077941147041193474299305438504090101906332353403463796701399512645452403255555278010973145374595579086836321202947255953666030309219808471558336289422184988655585361244842772648693585834859562672453529627809817796704200779129945018134613951382090283053715939616564512586509187845907709563339648290886138648467625296983611622678634523539308846249983314581210387879948928150434489180859530287491737517658737413968896336891214843064448067888045126842134477746609060116901449191159975675166371491654802081371010448495488933198029945401184871993245931846989300502127321914675898940609079675056471758642490348252752834880589560552829452895825141205336275850267995548157290153603474563406457825723696702020412437981993970744917462537120871439564126871766944139112722798147033593345698224519809045417312187919057866975449531956287303963769789249540164872046324625091171654626718051941114217692500254893992260244348354416601328353826071263750793084255911800825827418394225977882967634658533290906734298697612896909017141347334805872632827960976043458751293039798894987631916014450186585521827073112563621492260567481030725248020841170497422464584348730764663469961168141364195681656452337555807072464256537247886216900019468353701937765044330873376065515397218112430855696777710881184493507886740972282783375202802766506948538854488069263629120697014272147371250722570407103466956555532212023907574739429263307085500167464545354386943750508471182502534388429636592979618393198473448994314001208395016043275845600704334283006071641137564452776193470264332083328532123665591644891966202290337237849572862002076597937558880872570071688357108772651051012761141907501236057877720908116081298110976138030074547035968835049624524122679240638360967821770495943770791004496916275110005208708439442495890241898084378964144215416428573470051073027861675154292738524657276397367711655997515396456141596455265818314592059475183155022720207608331041007706654303478257991603965352785506435760155765520694704327002380327376478920695074282020819301639014364620773681855584856996187878069796679776221676898280703226479292351197291936864471946725031035776258417869614684235039875831824316982215367360921797088635465361818772043648382737542244868069443880412828373004118783223229901997277852481632742805703827851071529227228054710810271313511219284071682323751186814937911152356128235608543954868572985832721186041099850296265756143890333735297523236366737756411397804302820825330440028171887371182081715934729230618930122525487748443623703810894918968555825304879488996358097998453090386584142431332448040321413388986263842597538832726930117840222467108385304739654904748832036494447178538519954963859213347173575762988791647179430545610064759318875260027909899702970265797464832503805988936000067465297931502603901860525082030388601956475953993065967646240718148831487082982300838883451326867029709777730608675457466808452424704105516807145157083628821227023890224697687554213042522351116233264819234987232005965825269212008773167512261000180573038457235858394193728316065561812363616137697831120040641018900820060509915858163464441293180257097673063787126585967522880317480026709787475299095737959098203714989925439521519838619253678853560584682539309988150551268667204266704090566262987366324697546481382021281952835528770462667904089869527067692271133627554496517831541283154069355841007106612176496318658970032960091598326294716394581714213535833978175094722554635567682976375853993189840100295996652134485711478660729167283349964825234894403549002444506881659122995440582584232644988348888854164231661131770118449384844664654766781385362290036380383378349057674369363220070210827880250984757037243007396713647225257604729177159469564095432144226379825562264489840041005857570047221870673730278552383924438334998805599744241267118631629491512911825737476687199099489827726817508709596129453203306101086844871753575080691195189456459921300871628475217414911663905567341476245318159777328353370228713029955466615018669201711057260151233842758395064433995754542946541618836153603797186724014624345980511312045505842807444423058467018510402788472145088052594511813528841323879905978113067102688824861367901777866493899916815819619514833761559494408514663086790669661779713703255767223696033869310056855222787957298737925198334917652617847962954128728174926244271709716269559848552993614094087372555743713259065578525422285443999365421627507241975895207778673661475387621863910778215113096478458096258201327130694401813704543456186171548984448511410046918570208993199952672668910540509021940509756866563141061722722012893948089585278868324695595140787629848199101506033903236302940023141305186691631457126356567599227684490259208586827462251675326091328468387233915654801628002716260424011466983916200099189378883890120926413518272873980769330960672380052022642353664776616334271176051701467294895444001587544137234831843984132361602942357426813935730693256670372858394328220132402258624555633201132293080475188017776477743918511862593784152746215691773261157777267124604862352934369148218297498736215479677637538528141635857622058846918087819968868685195308685933020437669116233238214191132041799996058800268598238436957493464379786210127302531574179632132141654850255531708685991830980905613137598124630827487845900332892460710821255209090815440670860251370889759300000408986774710948873080507393076166482390973060171165351079588688337535902041610664217620366674649942062355974101194499868642345573507535117821648249623399057770677832316463569266804965032336079461589251922369445812048537284993258149832488583617439125265841296377000880207405712310282124260355347530454656011207723461943355405967473982092173068422534838400826508122430833023296244643461076569649833095479204447720447546653345980907331423255243005223291444906914827432538932983176237608013279324655896550272963298485832769257641389022461577731542070631948002370374927905683918684709057857237408608265108897661796934266153871721641470656230839417188066576798972265290600323191971952574399779847163187081543025520531768564177248145143324760307185609658821165951190780036043556957753305833636984564371869645481149025698740935861310809358083206007623185838878652238256796901718512875726908583301743965126301585683923000695292597518032200150596431279425656458084198220202104755973079801001448636031937485209685938740708064460773251209592959007055130595967984494641841581593459920711173929734428580814368851149347034946409243921897212464838602532448385740022199369351224534376416314136570573614363945063552449934317233895471706338875907055201721082646559146695312668803586589464591873632636116436275253767384508849088669670100835948035396202819920819367833684639585994634132897824539039674242629157445972859410340833065145467977481244917587277081927221636480162216530766749434722842368288576156837203607839646056300794496309877914978445108556065698757663725221281513090539036484326900975134761366092242449302108395987918049387182940571086563623599743285022627588243040653882850952873755408299133788766826758007713339463922822931218365471644746434912873187713923144585571106328961148154420142228670350299535723002489422470832387361044768743493010333082286619252883488978108468372749927565951545593132559487942477934266245952084633341568760100954760469860908785860380600632256306391259186897765046946148298766889713137477956000273832898826423988137812220162646401107253852968736104653680553047129385608972181176564837427243876098071163326626019333632000131811470421462244767714720377306294350686352991240870793174817700494996072278576823698964637113297291706981600434603175822995841247738675190476833627415965075442354051735734290564666892603955652528584897033417327544653534402650510135667120987051711265140159149014210722786927145562422187683026034044163910478254294043665607715277024775553520291963775310318484088262467851417588858277105388294781006745718827834104472569057311767924795468398010918891505604418901771763110831894349781446487628633753977728426768814103905557738541500441517384071987797311471094070575754383985558721692905952121932924429392759917250447057082801915358504188930646663298296771064634825647714262720500900700299613957998095655048652805663245869108213929074596763308914143532224195702636906982608832661990991925759503865165826556524836639701640624916522597286481378409235105457930259064970997927515408143303116089360949041709596737433146950697206284617786385271101750863479555442760987062833292825319148249557109674305386871159795267241554971635595745280078469178422934147024070790626079036637340292293223785292910657533931922067277496696836524960543051674450004756184285399932048380284743594116374178489999813112287681042553986199009821950403013362960754294741102518011837455311475253210154599745943107026926463609139260225443913490578690248381361726454833110516617500879800672580053194984809482155535510331038119550092953422854558465872424427956870108587182490415518978636580082933505045498015909183647182262617026959328610974073184654644986626474480125998357340056295840164268154292345766346625713942173647510434366060329866413034178586400983033228756904905512484332059890395480759707250361968731903814319958762241722880513820547440634852492452667632542979677858587327755523670149629193167761131379662480636283665871970599596895762250555316685549001706917022138528319586188599272670416476400319002050327957189046631465804718783255392858836623010366789319393282729842535653436077863042166182325350070351008760170278017644901756026413333901531159585423508491239639900295733861062490886357085811442182736731961068778474035757136401610584574477013317729463390446895730899471551616791283130749497071539163232879112130780631888358008049389314086367703387347620307794853251017608692463171981047493684559026559708743451272206162209853149154592262820941261667436173178431231609234824957108023542202620172110741296525880204130369975188444818346239170483927127065445206600171030805375122175913879568543187018034550710454972488914317596060021202431764504232365041876085965733997346645716985572933814510112800766788860162802265566760297852323416000730499031657416514387885554930087900578971353422019142175512793239426042722020393375758950629917369432896611976264517418683950554284225454770178041321744638242528550261659338296750747948097461463248952061945164867724821239862825973773056714731975624005772981590697997286587118873737058689411461712308043111097770227502038481824057901319938357360726048969808540766967544020433842259166647576554923261089445342843073340321887089630771537053666013860893922879070572749867358510926292331374493492591106030768559529057132890228366186220340636800745885588646131254217050872196977247534988539780187600265705261689299606560374752560898620006290206934310532956732270979783913238266618238893918274126034329014384921332733558099749276481284586282680990957021979919903552537687995918183601375163412846467069505780809796663101438302354363714462562513394940690631728375233827967953855677543702166946157041323576239618381020272684417124583510048296607692001000389994527619805695187440070554645036779915804059559645420669992258859649045962584115604644636426582382280081188059421674932608603197928685707728343862702619675671210110276080988781181923625392695308423425335977940881691038948214372649077808930537288573421461999593283557163694264663687720347836703798273918231575969471160113743666102860793853572965057504109089808221618066711776922066958427146230934747369094688410126984990170836315385997493302744677292160129219825612395582034582517037260629284543338266783671254922486455425535437746030938336512400748655438533824542583453970165922478438929473170036353509319283569377343101539164376685719083770723397642871143122200639496066706596318120759106332693924915283523170785252771928576934725096818224825538047872136547976355877548095818854485448671838368747365088408831342744808615434683742587091456899460816948058329628033510077322363501571931539623418979752033622893394172548708926098748443912846152704194613388924764761007717476139462870569135670292134992168412366974566309485429802889847415570298532922884673173515541252981458013829078941082858102898434467341546066564729528827323927619762379458469099416581662799643958143684020050916677172323955721347779310301636716159669484185326520963194058688662279536377202153453364470085315340967356284202303460088658551891698401903384367096940479847412491803509771126338417238383789948539530136048220579105168300862348365107535051455740391972073704471051038653992834656057351466652977018481436618932538740450196926767673975821509608286853010924877595094132640653689474850122204175763041328531631945812671117550223818498153811548817487881289111438565048792245371379820491136078084258580534696739110743030521354981920771381298817007499752567075741619038457604187754038788222033694268224678269805697866505500041418387700857639042085260666013578490016850144246922819679762223602525021738439455722558907291857828628014686775491645977978245632999712409699921621763593906635756462820266804272635450104785537302805278363031547882956323479137090510888152659832221693176720723977661444355633911502843987230211385162228995952943399591549437372660031736581063403621554786606876284274132008528604755251132089537925964713387732598563395955689273036153858388586301670257973276264779959428967876733889010014030320052527429255733008460727701846068878280756352641364554066407509661277393301860569078773145708463164709768325378037156844234666172087090023559753523881523369382985106083407348217024192057802569792529023414351117305830698598538972163903166192672051731578186567772657241465639912299393883762899819197950114661936667716446986724381987182652530728395809531907430645883941347564797109157524635372050281160256882796192360228386068098952556967207158514525764688749567223474032086900692903615160948697992064312389347202697505945823984229303702204484436583434284298132164518408286828306311214096687272501417477858947572781356433537825286525872316886216335995703241330434610600387104488913931057490274737453215096080085758534768123667266902949853520053556056066644918591474577176456715939900648324257560239007726454922559854957086423987711980135922942426940942691037832720889863388429224566227931842395270887539470321171644076783648155001614439942958018715133791171311060299939254656494302088381336774856102790755846044012451482899024966513245569874803190063765542374302738060726756511078597701460122252590600094232980478978033344272116944530400968307877140806101713286825471813409268496413894203694601161497464421598077975522344704221038751254322924667305438856296720494619767426621964439957904165985321324198663380430538752481175390153168868262594436633591271560690803855412741458361494133218169859816925016820373564452116831146621846167107168100203434809650900698332335848423565405805713730464998472693797468851954612787378418319158888645534460144823392336707170062420175289065593208248130789737885685473834517845162620965793284687656916135765089321459848419921321413754210369095945969599257222751846883897359820951721118319524616993426756183194201638147670355956911687480647147652522748332006699622139048157192172573206562389458553796488284322912123009794206053151146600593534685540937704498340406682186526452826061181660241046571924140078858703500560151741703611398393660693140514182663139544803712035192055770965429611236834540494076587334932470395589667484111783410934884578837947529961926959501620183718071537712910055014720688047453764987218548425255160409182439246369868636949597671080110114482675609700667157185555825601558106653107995161336703742404131961139267482209027315539407554368248786375710771165944457229286811800149854173479369942370346665987847083639129599397253817731305278298235110833640396236977802381300339234118707834799602498201284691719937350080193673480496508388919152592833222849172397505319963431770928040020811805143379958539544131863573427065973948223623578450957340007457179179837540074483541541731849243206612759048218342588391727930686277396599053705979347935149253259393201061585262858214018886357843538048543625707546420100644614257440667136008621902066089866319720609562500238681554354110482319301723676766324387651743777896023637537004068498653357567848636623431891493583600480257241221387276968223839755884505710455125300784704616388164746235365005652381889306512823315996792409897445547590503271850285644781424527891185408084206860060011182302722700411164005765452087059164559505476239585682074380827277713408216510392526750847859070992173533244134817211181061535519339269766467699671870383519870423142404231412701464549139583340835230126745305078106096493315109937418941304720552948945188135714602039173503956103433802919481757709734297561629809840041352729119506861657748334856059048455548096588460921374730886324875612756382461894568226277283877314438527808179325487607106266689722494306068687777264563355366227570257439845401777705132968684865867884794393242549939428319897999542404615689630492914912058586038946886545928066609667164348352465723270664052204359033032472107882485512950110383154485476849853933545837371419107017317669168135592282570209719664561884463976662255944871507596700270218243061853256907688480149977055833084220051797342517588894137853981365802799753925153204524514598088579757750503480982386038678403950565597256820569895040806346365191796140729840834586741283001070739048332355048710794696289174505784509179810957306976632764273700427561645473396333587070631910930692482180581702229072804167884782496042362013070202363376865158814593083982462664235327023400347760189066765537684298969120490154295812985142891150373774105392610334168623816249147729750754195504896379122416253975920269704167275817460909759974220218677387777492678733023220556285222879611076465428640909005930328444099261713983592575411045968434856594644836485295284428160051517098805493467465778685260653994602417186013361582830952053275339198221496483679706587351757296653661703417991224859937354802004176044082583024455190554200823661198071668743885178728661752922664904410034868372252826475776784662397413845242264995861530588415346215494360848485126427056935258648175218565406456824747416366787695672981205107720774445666402557909017586416270835696671615801463356332176493036516144004364307273830925545804415706671998722220922801760841314448227630459373965510480761140799155879983344114135853880669265342720817354394042235188061639154733185213783461918751577582823704366377034938210334711841791538760087872851876715946633695579765029742798347744590779206923269178747816367630632130896381065058756952714404356538351391203167949663594597285233320196236589663099698478528255561251704906674584012013809674726787323841553161481486148862315771883523284079730251204169677336527647553655106361642684310261002792434005097326404229651056118588148209663185696810170739421031054181311608408929621880254033622646073325263897231325289296423482213742754664542724229805998823007146510009098730555021730983051109714353842754547922351158917336787797017038860320011893791340231105126749934797999255800937906839086206547381921849196875945403887819757046738330632602106981745214980174244511318998746381537004927506485137566768071997837284931187154708153618325893676247533856665197163733432702921031555086392243706085953765262280697315315130338250768282024563539313172632759560310019175169947311103287617323451799041443903434411383276805279376300135099124828007728417277746839106639814275681495982615552525625449401173765091913794235194866694391415218841354509281950519665432474447813999111044627971163308909170269625247673256740090760486952394793716316974808728710156409087850785526639863342826290527276368688684695871138454244366258131885739382193705324096367167550289844035523606491290002133694226449836746095155960853263641461109282647848798528031389919438333578119974351153813749902799554941147296727000260861992220372156008502646881916034890973854140053616606900097002213800127072035960495299569265648618466510641994182466336598078594653526169981761890611358688476239878407804928014664109522080455228397409919384786005281126181679113502135176413038446201312209767671368955838746758210304534081515143480695413796684529745801102857398639576003024876961176002270311034138238451194331808706216035629473006348734732286286323741287818164158720191683108062913261735388767873596251516248125406029583900430308658823180063605348784941711121787799794766562260006881172222127358132319193775841741266412191505008994472331746627191494893270293563095789062921809831676151333670413103887941212443038420611393370320313675710658854038195093701794199647045348046744087042520753672730998559484264745367295791126648961700867218691296698481324888735580791088284557505930067247599068276693910319122964802995252571657428603190221145542533238167163859787228946751146208883091173332672735220147085997151285054863311416907146296360366290901402616328887707520970751959763891310446057782853524425568489370528405054645611551806264212510901439336116008569479131951701585619311689859261092591066797172182554360523286930293633684764305013235142221138423336516116742280744453224889342623285233149328727433196217633144803217508507568085144685537634298514593662432847715366128529568598820251409671757177717173905413315284539739413615299260946724960477534313789949411127943364047559811231628435737893123547189605247778182910535359666749248844006641506912967830598679958926026524782309127117616599788860791969272499667344119894977472567674460984805995161788229262855022246724430747089518876846922937693575695825464752257957291863657646044579793383607761914511005608272999391366248759430744810787682536309688618381535510009708318040164554883677425979860498825465899430051070765191614888583449296339927250823706713820645613957138004654434855974122218849342809700523637595346410056086325041170388368804387786420693155549139991214278090661729643756634578258658388412086031898035370018379233435138344070500881011563391507258197203842393146191062897027919665662990496057501635453085540132627218855312894496013440122565632803209005004224637217819680336070525069488287153059260358332905532168822003976467816347578207638766399470230895119603983391393186614591291720979472774216488594684906042277712492344442188858100871321101205361085094719795764549113106560417517580339602574145059095908321352662025564347278198410697864099962304157352800276093482177156055181873550208832816515368050643043539307322850495337773245971180860123913934269402495867427798401064111386414486153811367270922772967351772300358356279744648264293935956120844825848061293166020296342698950461887148000475252312211520923724153296089373697651855591223562675927212320364131670111217809553886821688590935657748326345205142005783359262349448371691545233662454168945331575793870869225683392264375718636933826954961005763732291253843845392684606918566468684139316480904407871758531954932007593177291257378281953458334623645655878122030310291437113966544007978413479668768352705960289579378123970232977282866476206503256074080002234623497066579306721858665997620534744433174136380520447032125398169213574784740210810896464375268885969215459318060913032196575675025952922941042487988140417643936978589645828144555136972655348589480346787827402281475257464190205812185011426182423623819679637594046525724617513214582882715631822832241921871574257716114968327250856884309390455630436089783871032669240080459244122518508552297860504410496989252307076995450949766706774654116496055171201415580638750187594545207732559509906650006116762929701496296913068588375224427097970966411983617290841347708994334812974417786328290668724334782254720134712959869041528500180810527017750692108327133879253467819881778096866856024570132419080702546028083217883303581727056851543613098631179291869863576777250323006574996584798078405368971342696450589891876903003481818185427201973419487473819885419628094043644495665196603150750215586289663873836154995804420484760919505772058582564822200149928840949295676949953377843090707973408125097709619425782285199906810985230778627338735360266896895460183364747740737361901360795272655415643652053358116502936609320137407590854459481311369078916169646746667942723305733717759932596652632164497672215949220341138590554071778775940641617661001847376364327144363621986240882548575746824038920692164439863620655344720503934248274550018588361594654838185617343354790875420558665425955972788258981152162870095197385634206868834256771567313324099158499707427187781137325856550832703109339184014152329593891714067566897275026140032115316214855660373778946611756255592212777134251527477035287599157560972317022425340703942178243161459462241255976272618407941756760192685596021956157757752918100376184247190532651333096411707526612240732791893058145204671173283799774072929068402028561879176236906544250662595218980681468074019998164844948291532951133480582195178937674905598506721260484654480469499926655862694739586057134752885163108943645263811657591348567793689126254616061950915619132833016016100469060743984263229446796547109896389292746384102297171044981045203421719739319982557371145414634446581884128026716633322581336591342348370627821501732453683364117367496892542027194136279551030032428555489140465870524636329907685838661102733461276746239339987257134791021289949745141196664996000636081569763664773940138667803710697978490238247575369863409385537105453338290525485223092031719088844080429051626348548595120462331252132807057732040320884177938389052215337626434304321448665301331380376191811121784017514309939340433930240434989553914854089027842760389380154568444347187895692319446871775666863084101925354761478783714957390321054895534823952664601256562507815206855167745748013115035844966510892390323215882510181080603236683668935896404673112127444164812996833747361113989666108926978882973140017401253555343104352026376933837337120603339175058291938178897643782158609286098797575131001245486461711412269131808963552306873734658601017577127200000153593512070565299449951926328890635657201880930053540728713477885137514370756269074527896239771666636456800041629740542770998790061310510009758404997619911738454386041974225320136110513862951858966912827798905106991233025693456815278914919056519183501455553003506517031165955990899232696380408549043014838229612387854989455893029018504629756733297826558366162135945905898083514015577529628150198968302879705847142060695133146666573713442269223799509568848278680926782944656627393387572921578975653538528828784162204794108566044147083360324995734455823212425931438594266414327557991979473112145394835924532455271028726206918439259597723010394978720636673046113215704164686968418693321162846821325776568663038692158789442342152920589689898174084787361344146896576548093608065289159821667225232316096146107393344937063373018552220572596425006610682155618115147699594442749875048717277566615441408954902728664908391453272390425769462835052899346751268587778709910983240241183076428278604263915720570333067602261292764689684130954302320012007826606060245906238555903466229287326885897057599095902093041193420833824472317241393257498124156432608034587048690959590293786827343606858980215134379008945337446165556022655480972656692506397949431794501845473797462533877996226807172227539884462019030773860135403329804795975497018429926834825109024273069091615671249198839827848315073527080361313996739566302335435156540269542672479188826108831252628002682717527765839559734629626525242283272184185301847507063196802035723113935406191328647523226228096051358082590803241959376090643272623828395938595812542094511605620201300647571220383835538905689639189654271137554394051239985008059487419415015604416783564510451907449206741238740366553395690041238142684908463161294063779654522083948058768770515003812627076723316835954622806907518483189598967860308802543143312285596907265705937590333562333229437304475715269328270096494320606969974046928022381112058137202666109330192341069530459585289196332265134139501784617015124698844759507158528151933515884644211594894277093459296924886378145203591886433873237566739034526313547731009746798326881095970686735718939018764842198871707740100593352414844425931086587562359102170873050489677965828773659352405121160263561962665996304616971464476868159612423850853083104588007078276820498878630184119340424475675429980740783087034766748385776438984431399871149560801977248128790408503629933712313579842882772992497894957166521173953194335175623106513741897334443048038591509627427903618928192042461259843017724310163858030825279588531390671156432383835731240715433988185458692327031706587779514478003139325264876413575467461829908406937559572837028459397249240707027360977898635998627516734549121881217602602691883746837136206890828870813656866283717480103790863270581413498228503260658190996792272900914880459214855762600504511197171128379035090062961661159911128957986352174921621626628760497175546396708017422879091584361553513684084822949956549896777328153807540507779313996768246781288978357699130382608986620399104278061279255230781117401476439796794126493425390227271531735778165109831909782447821672147906896129060750837268715989505318977373753865483565949935689782027800496898077627073036868329790217512782778169171536681099661890866422665242099765353139744164812810347121447867017958642748281342999732384647048800455473919806140350668460861663884844255873176467587800812925252543478935370968037107308558892168139586450499643987690867444887194852272679460584585262996115621440217871286177994514863455584338901301277168379436646671307343892962195495738426213734411568241295756896279623985894279810591896308352826041350607759061419980055154580304692792249464240082801508722856057909266405305678887943323926598159214158354345799962218511504129734308524116747436517391158832638849824174923566463865303877557018899774682092295983449283783110265103824691961317291561937896269912550674086403261232793276523522582452615885697245824843399618628027454381839476325065237404378582177507197930534371640229455989756464914349505899778305083717186747654467271529977912461310461188429016693693597647642008121662175982753109827475171512679245344616014985866608752164782685585605945509569266534849101610211904738429744764965840391011185187222033646752934748554051364138856270508330584804517814964036263937985822299386505809332871593088015094603797931018560940385974171649431621212447536136902166980435117058575203187844641449770495036840241578977583739705389954765592385879733997920584605735276248038105212260586059155988591129716359913838246008307305710020836556255489111730345890885990856326948340782644506225531495982287264985119131755967627421635699228855112279658598103934346470248071656294033276976249066008802551478129263779151843703589433708876780558378972034202850309579480076187349636087939506689444876922874548097523533248186421130976040138725408689961577409564286934574196751991707608461690105346359072340409588099733723787382024562386772671990259719204513719526199688472586764885382488209551871530075921535214305394303439653515700234779177938906731846314655810020880965285881024993721241220963131258211886565685551182208891804506074336555529304901150882441855984201715419240622510125802942464944774966237723374651624381139446739338243720074310494912864899201717390401292009599293735898936808862355776083778846530614939058185835228909425789769871048347375418686378191103084886560140857703500044501312215981790588141541207733012217294532235734847230765776645386538876566531432484188787768364939278570971958293460705358487919380707604466091249623604363220755051536964177189037297566902098570662156477857915801922680295667034688883715142515157191403161668154487621173396695676340660022723058561098772621947508867823547074114268312255201195998835076312019511950390561350918219656710319165970714287061797180588724696369546231584027930284120184591771182342484401692894106613256771009288226283561249893538328418561253869953939682593313241300763080191943624668334745851648226438989719055404946116924034760106681483976729175070650011131177544332792883603846238565661804507900528240377671793143554958466596582398648926963607786700884723670083379942151410476249065122546456384676493420418782196740127614810096837021190608250812696647768970898156257396634002744714631657262281184816345212788500930619234061375688310325789135390896880454158507221041608473132749258202098134681397953525780097192515833105447527376175230307641819221157482368992082098850698173929504098392415107849798697181291786975113146388373652976806567293514681288676374492584838221495773562833906561189644268488481740615700292127116395003497148480207344943641610323620624701118321057663858349195287818083398894715840398175236226857359064047604131086388697817593474281362934159672490848441665177649575053282077389152484502271974912895367710667877895831447355310445442600858896132747571644493990662716153719020733633746685835229774151387087730644730282356496040118076853497137408433434029837701017343862558486668972569685384071311680352976427447652329937924808815550722397075848628295162502967919872524953571598315752923733256848679371329085479357785257950255722797527426428921686646119910856570606183738189610460608649370443745253370189571274830829225191780490749978653700523724417331062018385730791683138925829979255219591200103021866356184405982097428250289319256611243141811144413195126604726124789082867354240803012087621836534217560101044936022966115534656465875577620033756600443252402564423209350578353237233416140095233586802239400352278755163120605916552741995261332301881694141273363681827539326418707827479725779982905710785338620164121773541967156054475055798984127965686996995211573705880419462253505416990276743911479706175518438461264561268862482544928651620100511425048019452254536916304980893067078267836551353665390152964051893739143153582262857579462611360557112869513902494242736051884122562111288601134115563039041012103014210245765598020111973671665655961550650056384016950091713041910918525375195761472644481199542233864910104875652603295655372544800471798238382610332498751784403935988756101688055619693022894340747052155978237872205550403654321281383353991707089521796390445205465109573187349086854147491811389514150468806997898222912744198747960414615840841793968722803425434101389656797824033858712434414472095586828137560275926545732534998263454823640015257395352155087616917217828833939640873282113612158371240181375780297969689950063113823950575139504099538733078218265051759414766722568407744396882334462621976192379938027672663132992116776483515653828433817959091184998075558206475392889175407295362010488054906136901287682456053176145278212873560468265405498153011231547676372526979857625856371947568226585030724579720793711319763316375954259010824333448904186529406405573659763500333712971908064624004980024934149492535076312697353293598123525849671739995444390042291976000791986657619657912585075564790793733952233546254035916813722719058998610724469093733172641433385742024275436752951866280498064675158377005479631251650534682303626190761078108810486147943329998488859820292256192036673603086482986673189901234927542698172637498974820844254878301920705667478905449838771134802587553345776787589503254432945285804920842510411670904224148623204892860991317140871289684806210775485356208410360860902654616233719826769453989960705806324558810897668629777190168844381112988894871550302755522790661206452107816143707182096489859580558022125090011097164687506611507012943560578886272695645856258234720814351982546315568716028874609089680813288848274381486754952957959990516361678572937089234386932350298676705694343604463741847048843068685395297955415753169868666820887880158217434511982934927889140300937676186963590994565098154806945287127762272824378331715048538756078678667795543249061764898309190386633119465772946197471141489727715220852056231395267740089783099367191611976472516212044698762418420194820376960690188830818167552777821001675595484955894421238841481209856361333815968099552928894191534528342523857715262267775003510545901518455727367436440476862836705574916926485228203371504946594877487891840777685490049068030480551678539556817445933193336330752554221203678460528191017156335155390192973878963108645364359455241232150541920230608361629129185552029825767376578080581723092247303345076059190186026575091876900345482685315002374962078571276662583342237728328271681994929219505242437080600965606246674281824763680460405149534869540746312326816534523539952971152271307934969481704605562977256559457653764494076634986988751842583322096071108511813567964173492080869776546706385443924437532970498557596861721568059942519242727162831662222202991991708570712939088102208805345068253683791827031121522314164885411318518935342775496323350585328015200051620779455394353415236490505657500348991158357349124414407694391151469824906374023072384870566258487242690413378118015502152860885705011233695131721804129471221463652459638939949252774643715874150914044843681961945940384318792007231898012774392431367797044912716043627259693824544141218172017961503917927746698490783533936596942210143314956561808913477163040792774457158537123463194505732052144197502243821132432226708654791751137957615037445122492766871177029889864760109901938637384580987747498844304283354008448865059249910056822251423962458032073294967402652246230559682951752716028964814271907160133526442035015931393207062393528269871994977268387934151981629578824172623763644674563596654410257144497437218646069803398320286125780061591454784267603520682523572183881288578872063472802233078651724533904927547633279890448003192853794665792597960391493101884140977441080789729061992645770987704741324557972473462133034730900924966183190764377348499774515343508855195461726134619005698990398022878871728352194748605546164233541200550845512751503511716970954986044456781836895525592683927497428891220294654657432189973899379809841204056948467345112913374883358149210230213593351191904030844302059735369247853112303422046641786763654864984826694492416429603272258789099871801677233957966763683087498256109364012145410576905117707597314901732468692085898264393353675081738230040078533958510017319570270421264630515894069299171711072105134674195172161792162963428057067570203775913576456287440693980625310735221760334445375712577614288261284556266588418569255311389484522474380273485666640051918984691816342387843915295905156752808765055744727467931533109122036096236361200093315075520477564768018711904049412945370220415639560768485740850068010823345582626893259222451900576710900730888705230184816136908669984621851322906844969083396506471814374778813740473142281356943132932106690285400282034193007916038820053259398464362936037392738934870015472345511367997223426023478686594161624103395754394506569691941530006234637883378018281561821326778270484032747221171939509887117133519640772010748019481424775112370743937108984624277558503176005623667871481243306659391538011148097145469495959725067120694316394111469931897840423291418995021862989699411242713282244726767243506564035485055708120822088151612670857374379727075326501182661515329033812588385486901474643606053883224011008120450415672134626120913708083842664309898490374903356351797740994440610692239963879853888660728816584110908550908084420551849761781847876167382596617698804189793883478127838510312165362128368015705969268058914439821514488040379149901634452480713300071589853489663326333090738184577547842812796507342915084259349079237553885263120422071599636790630507128520479429759645628932253140401292268639489219478638076264240318854797310957754621020878208467267826479381927752938050108451252085292714728200825648706856551373959989803019057555109929681129652825063431372904380454319474953310351132443660121343102523954525244756383067992049788553741305043488583996826272661454359159849892438204405282764807643016963015503017688495815852955083795704119730852832020945532988640059608563610862800341632759638737619728185952065825380136127041067328816126978655271260852241976652294242860791032703526045824879124860790946787041813445300822754417018212912072748183902600199777471047184801571490678440855723575575492565662337843300742543104200003896251589240399098987547538349852093942932386834315707207894028519248625380890148062377297039607704642187463084421041266357961148941500277551561842892866912832065047788795071209547907493655160660213568978632686883027406370499294261976467805998758558810700163271609939749187036394012769192866582580350020628939658271993509226965358263842550367322205506216025618037302636509518004019914559970686625578747252461849998903668097400109711378391845475821573218117256155853942825673908339831955928352383686940562049076146403090235900302881550685622176260598035879923172232000174365239485466777427008897479960223058312229274650089097887225052740568354263964481046869933873637670705400422856815268652159478201384108250360151771631756987494705359965420377513883225745217262794271091059016893905148877089160518806315627329458522934612953177577903229892797721131137712439976776971373188367210733506673425028184236851057276513141476760586567016272551423543191043693793588013379828205877513960365052404143186003770267274464690011357068601434370393490264517383634005202311398090471174589824938133070269655055158914984941026984432661773132148986867882956721309661995250712890408490273223319149171377127350556223534530328158875861054107033546681555165146644184168793044896617057818559476887616705926518641942947491722673093334136531593196685511463696732785328155049619296394554375632861624717279443236331471654684831359451964524106376091998392020466074236050072466315422219367665469092411274323212572099259266908219975463562315849556139589117584089893077105119805985260284500025596919593359542549235128052762572201831768252804767581927027904154752847698967569008484896411630812355981290233366400250922747033613303060137007922725508253529165791976871832344752279091824388817879116427906449656291140533188070509955387683113293402550856781680436191607369435656419455745000946088055472872415415039806981656346413592677149802043681226884055416808541893241927114294474516357834309187673528957542463360059211347392860719182402706999304659694460008182636742223512341127640003186415411978262521612776744106270820716037374530975135967181701224551647684313247492549083418387435849088394980814001277821537447517604842785763831841742637854402243693170257195500195107133575274824877565603008623493861582497802338880969359857495576091186240744427546310248112188352919329211073310939658560359766186368308593576226161025247309915800974768549689469128046026208157785330181814271730626786403431559012711122175693225224891220563636041170514874657840485357638748609799991028709789301975840052882214044296646163832733034878826129890235109688402524797056610677716373296212390524135177640747388775966541242985241099079969631762245542192530144878121455092883561633855780051660886561033358574162517500371957397364546629758896631843711841697288983896706086569726793062859918252775167875301194093335495218754815590837735588685426614297338356001962386292968748768970805020523907764769777129927299683061112640428200763155320570922021873821908021936485937684960535935180530450242870824981633841840692694216208435435730502335033900628263148074699539501039119296426202617821977379926327970138005830371339191564244256980053098136572617854200309253153280839998860625974026791912960335207536216563335882107879369659714365441820364976376569515852545057906536794938693011380637243531203423220171930955280347219833370907294899752761252326452373522267716451740094396236994603879735232008346616550036584614936889825260770540629021276677236302202406580032806983120362204645463125579487061518622538248602539032879986034728186561499150641708395147627218710580303447461153086656668732443365486848653543480806432989335984555688529179662050677201972751287005332375835491882818544032148704613252043441080035780200407838820693075014944551591447222237117350103782387594713812705071494291846136178910275501804544956369278753792861484443461541325531981850927866050163225236077966589716616974546357507078345884653500535893332180983392323694357346185352244136703848146924822350838044250464716468575423649822630682115722110948339060559688965623246780029613753107655413873043745088474071907865834990454317028018228712248895300803999650125693586267982153043242868073050758451807514976446782095053110731314757088369305796093356075329936657332523050454164598797719552014130281971049802830360050441984827329805389352351701340262216948681690523455336592486256644690692201983467063341423583896211084496651651567248509475754866812706107095417545771075074130603012688335478139770809947598019219195727747491602935210742616201461545077092755967600337755694376502565529457910929887356443005658308244275759244518535564468360390489931788728075034873082262500285650828096377900576181232767018510255590216210552776544708083257049700744192239528164013624011964292451918339376724611374462714906775220338563794817600373760173103120565624945359186718914278234627564943643078109193111853787665554065016071458360998648827552631135622827356033799274408038119993901235917845432929011192975601089577899210034959801804449447313987077121035885177782249653261197265614284948953635556039729324709315289109275780974921860470501975421834386908217270541935920914317155656825043413091672982849331706702519903776977410940904212186513620105984775275558049886618305381038377106790191916956379684709542453053963424629430065916320116028634859666798135590546891526880903623184080746556944040232877678511973400991134335311799540883576114986192337036621965168867310851468996083349788588951351787254539169044556721670843404700305345534292701241417731208332343019592720882830696554278198358027955131454725385041654058891114607990642518935680573715788680210319247865172437020483375833015107461953797691921373575170082815934068284789152386744946581871638817342988522121204385063732498122668754484930620061654515921689017527583147872821899056682653306537926672535724645673632439449696927850730798337566036928796876852711096544222566132701486409478684868605606703159254829959485440872023914891953164900721026870998365022047937390340600106478912972756707997732726513074243688722146938184629161116577783112560861533588216304849905823341605809696410594075230761440353875781606937403350895310879425510492735990890352095391123475466483874420226525763735141366877258532898848381624389642353436724731268777955412774271669740145144366022914168821250745872999390453872414332893817845298764901149364713704999122462758127725409708354060852091810793219010319314131539531544227325049239216024073282854690397144689020159154555541846421866140734706123496053025608554171063473639649167047308216797470495425288645227150143458919324881452246512286669658677669448702983798055961443369338451085141504353259745889800236760742700714041630687171798933296353339101630859906898406801266022847548923035514961428503203585210774043125921312913063102619585062206877190100180238715134395035753814669138107448121400082174486763398889100313825446158415362146678668721937896601588591351196496633000076508160310603753643190880676384675626864287544509437890939498183678174237877269533822593391414405850696149996862825980581093510057265199715772499091989267458921552790648669132761019575355619204989136621780331179302026874122412719533008851806987703371284560829066326726393085511882378898449734601457504498698303342635571830675983713398451329438094455704354617446911152504727377173998002540012487889796708630563845297605456342373574962746572383999723653034757308770203102224814717126052798480365116592684286734471108751914482804385327274116970776201540732510849595532913658921096632977446781183166627545431672552061471028569605999849170403576221428691566507815850405867182166270729576469392177409863205687638371800845933727247731577386136577537384328084219018254215552130490937434299439672047053634751245850864007012275715619451508130223466715622360992583561378114055061736835691279136429299234663926146531192628411098375954113227759113576018623981265928544964712796683092540227358999933272041882430366698776234197562866620219395125285203506010916811909659961793106559855951885471054140183726060364485711216042456368116043677217411622776432814967014157293863546768269102393146872802705425828848844406182893335730278181123358872861796606797496291070742748384215021551917155200016692410782971852498270051488481028912388600313763846177529289593779123525761679262927963826516561613132958878477957689722113248304722989676974943295374220034067651941809435427429391685161581484372800190955021122971455705994051767713813179512148209034065615151150279372753616581998987025916877387324669563157656949292916159547369356371173661815322872644504196435444487571805702200668183997377994325343897264986815556357736011265440033788683145442591484536613501644539844172853481037915431227483760968574100699656903363444136722218290332343384960520094644151015843647186926137861858937489098439254985610841849825139619983808069270994438632230305648061289034909695204263568743766719611487289864968953128958923703910312228335059324106266429159098429906519335030701543174661177974782478893170664021804968509563607905309027700984641494960486970693174008124319133429948017257840822047937915244048821108636070872053350472281982419643268216098754198202888163443477900296491488616038756804616429771351115933642524475804364402630108980205746523748312595531160954350411946328984510836729528117780820378002054174048140137997478673816160211025918571492136047545713123953880446756437045626838606155517540334618334453510793539948405336754872842569727521696210484891585785358186424598072202688122650941352729434621380255064547542197127069958769349615216273629244806821539576533385411169807273983060382159601808609243468583990095580233989216749003167874631492137534232442007637619270283528347783930563107690729428358872131464090306478913178059558134169733458580263846811007932392261008211568863102499222884590871036125517231346484592136081547349896394396492678563586452739919306338081776576901522909168022857065990760173819350554490426106576081006615852886976984520626863506959558028330239320379731549194862710513426014843938154989449464030412681144860046104613101965753069884783287904810946305200350197483413870416902014176436131405008908385292084394957153018199743959252095404890565317547672042799740580076034913752114643276075213881185049815220381298275582794924648590277201636663117269203488514693892228908421160219528182419895290538455310614017430233594940801321747747811381045444415859670158739421983494430069336553007223519826410846124031979250094176474439078929074259335569124018467152800871184786268053331215501664332048959272375607948833585195933300350111316033709185757640739456666144094135242664844202855870239414731537715625133258301601731921881552191293642104876406122113830915167372972413280883987112662190696468295342564450895832195034641589711742928713687303244574973625629246850938438633628418681990605026228884517442659132524237466434227405843859043740604124673317150593352493103554524706455548596827214601295049014898747170210028089883725036585862883052126217684590333632713154886238521738800826590544348481887117841316421369115249348930742154208432303986755517292952682280101629361137444379851027078776160462122566421133290972811068871870776982256839955070908616160083574801399620537893627203592551412598977973183681935615822612300387637880931305840903262127418999362612945999553918363427630937131107760664507563240416522657809145790580428597264300586347796715875809877922434241138719074403836289631518031202170444734541170796087934544154020941257147276324711852734095910213074736094317476940444766395595564589610274183878992595229839111286737898137252182732008369480851254148493247873481729681941520295305167521233827772435087324493853843375171800831937528749285391589945879065363622514263647105613959811918489661806711457672332495979250052009940749878667553331887820525467235942280076752363336588512983740499094166762288349698129252918536838228512969510845711798623269815493318182268990834615485467620521220062222176976414706968452044465452656868630531603533279984564072191559526376646613442827631400069930602549641868479284213508337146336652418457694767777519114563575648389231261837956267945814118657515372667139503045786623367216407108655591534946162047735830439387145656138222261166742513633688730944149196248436392156333612341472119662276141070977059585909518328259340006379399959339707889583048124009881477819333573808723028730975547760887343272229816752249504171731097064114069011028877864096150587533780632604461183806937190631134837679754180723164632595809421298440113351035976138514488566747742544727472241228268238689659246849799008314888474678609627519266407245170204840218480354627341380867956813196658251480713894794896059895787750726372522839140019274323620256043626808343395478974009885161175898698381875571009081286194424648799562027809453718203644500180650315463543405175013834607425899618650413955759797563254346682624561908644537629323289544561326748224202635183776396010287036538741206312535416636551492940994347569891255500024640552585566961382777895646842677010497125631260103861240779148218807066887685950417683962562416608599648616179823200998019262590437329064127592513616306083161495307837506178694292488924143808693397196148818926834468869617841971872434737087303731254687688208023679652943564512352219587524658647440663278840992121929778297927233131974867030427371755519534555836014757448000046175194509420346700099427970937706779602554162016935910379948495399869939222420710041416409952637446728124936274439895029102875422304388261889828046778508879215178314405997589795439869863491217234670577367632105150255060841587383237826277419096911028590878268596592724982481408359726865994143442160480464342869003854588487838110050154756746799420244782620720930829319771152490015158912389673933227432383033476896017583918946737816741912274467271751141537918510109632839274342180237020920625154483869201807345745273084247540586601387589269213227706624756904904967738360301978460759954744804180174156280292498180962579706062089058672841997475314282866977693770949962393467912332952309684542290020643516197569855584099048596206753501570968614425558023798475434979804990516323180346979481778909452129637035415349330045626779651533183232394054183023776896196866909282778340016602942928877004526771098495627930004323188360161003311423612148120293842021413625435767875246177449911765865528352380945233497974175191994384492657502014593292339735455778900536580337196167035536651004413102065257912714734211385548205426753680279566469892064702895065573295913961560589937537398173603940980305036207612333347381537076863510172119703771970179474925759352123773609185715625287490548608246225257498741425399593478178221904699229711258528851794484627809191676167683441884216633136152548362428774051346558271109768914818100597537201903851092768202606801843845217181827099357166739673859805795071393981741142540199004882373355762224252624171455694224733661514462178059840922026536072729672342575181340995641015491207214259458358055737518954084769157332604611762531662983599439549434206594090416021584804386126948343031691375578371642552660312860497029319004670877145648126655504248590284062045130060512117462176856720831246114680123743733882054328629599706915468042677923601469868190986268581055530798882658044989635691010596168791460513256168948284726300370721596888248438655214663837419982599310717429140366452080313260008775939726657946902230655270387902704422640316185223228608806057209007093008392581072135961998574777903617958840467007006847623082282224732912697139388115475113757034689110466364927868140751848737248334142412580991375581684756720267903254506986442934063325362480190817177689391425631363590621790047970232251458839319728156555871509572850809114030387831851108980742913624269570692523217601100466946334602186717028577810439378871851922050509767520259455288025662761405793874416921547372522787650410113604260812055714631492172325637310187744685088256951087141469098355740276981478090706046090185770859636791576737528915771980351800501576268728148484450532591928668412209642055186625983647626166138023794959829791077461141102565245946587239685081190293321091600301456924259119781489468925468835809088943310750058358792374964251265363804296713740672625527233347794367592510617700416321287021435065630938848725121152026091162889180974833868053424160247048401586002077927332466271274041747313136664432914487046673427968875469684353191942560923486642710444222050171716938432021669275360319658068113451264670481092939970291961160994089288373530241683126653021492810132076961346333796820858702942136478449838627454247808409241306344676917071579751293675355883635599755600116191379276924705523913187746898908388101483302161668633901508049786757023043865620301037374262409239579493840706200572298944510317898224772143607413466503593301253567140335902174635047448281176720323273368132563417024601984687299279253179176269881956596383465871234669064933334945888428278450452089164947238175331420378379103208731000148992173989059368065421543487158335323191126356837119980006668797317108271146347144457090197598915948403749767792770587879064704641967813013405216825572970329652041736487537174316538858689065451020168875110478570324359611180809972768137637773785609789872267276512399621914856445495964836140850236308956977553591658736146387784185387127820673816184204765445910744039416479046293392406822273473519421108080984139449352593731707612957533174807135805371681036782484351309626543889543995936186692802655606467540434269075574324620784763870949393698130369006979568785460325479150513278256341245665695480221960807956806878103956525159535213792770743713734914177871610196013983148853073704237826383664903550915645185235692891101887662764381157846363261727047148661625073214409434993620813220097211238245806722435674088584196489029173531711285847447645372295515134415078206540778492456553202188329223188925599468875731365474014649902092858930536977036127692363586280129957586999161875526757071322016764807797931155468704320173812812808749164280903559230894027747954282590554793280302722447496552889589259958637838143263897729256751391614190391054119627860440505450034326801117049658148754116812213348144102068032380980781496558860750184960422552088478364870024045789677429022186568971225182374125662404935752903549761022990703594901695723830239495803823645215414477219528946156295540251956805519292540517689643780381787460398307793482506031627074109250285631745206532057139866481579775614365835158334847678340562107088829128421964500630131343872297429182614200446357358174905133089703541823831270503835846959004293691094222295203221931141607271688883750868956467126372753324038214880077378273605131145145957246318834484717217591443065848756877164593505083140149458476793959298250303224613275712827468371130679858764754278951579539515086118964521826019734726583297004326054730501118230692279556379615288129703799387700765655228912869758323525107900519585081557849218997149104368255135838897011216568590972854849086515224003899867251219972889703377641377896636847146234856575083497207484321339263464202539629809543609358692138352116031093462276170062570229895461425625054083648501961765090716370286740519413653749404510284282454705019973558883105259695574132923220080436817594551203556254765823849677451199105080829338929126264247225440898013737540486367468406135738070992298427902893290250829324294547136142626412139982678598874869122137097656858196706602943764917331637859591582377946866883867798331817898673304005194631479707825891854470829280975192988289307058579807057619603744304789202893816165638412430835130061598842346791554587560727073434315833599269414751161802254675713751152487397939951314305973588433677328573679002682154985260994745779389032763379421813734238838058571268074073205035179572083451559889542009203945410884473095062509493918569473480742490096932309754718822277280549331766625978223343486469046139721909740976145249421504419226337264651622045828770958742033451789391066003448500216637437755663712195819981496332444605113860577587280555078825535259327789511139951049086399498696574273273770150530858263322897695117136700643149348212003784283840098105678136646612928523820747044121198071720026655537151958792557460282893423278493989685975411029944289357885585966281297508825585915105527703237922765700946621517915812272984094443299096515262458302554666295093980775500603470127582867046656305532937043437626184374000914674019803149921987587664157346156887620414981786296688742023670895679677343959688585897826221410479141953995775002439879080106331338977540897279894796310961569781632484096933155185275712490719049222519348570217967867867028372973485121747412788740252878738559679760177719458185384462311376533783911871480165902951901361732410938296551245105675575035149078035846368642539594821041702048062268986025696063616177312644175023263529807548076703877714783708784253050487300739730523333537424960044642186267576019497649335271503161433935220237996921426504560206868996415672315475666323441113865420523744229702242539791738582284915487315786172082927964328394148261419438531422358705732349652079490520448502337419614275149405438297992383762911955266764776930113949155244237583971202654355102893964317740419124735746276052266095195355423690182720502451366026654774400852479999007883605320744161522890309489470418879738519117490067821150549261172332048292811688969431624879239792444029478703278803501357132087472277553273573488900674427209862289646271852744302111159174938259667724718617373666842833925570876484329231282602050938768858423765994435252370527245024305544642930035441851494478835196326406699946094474942254200066854333489317957088611177297878056910053163306264877744989628228116544715672782484425185672860424709074614715812406380816418999798440179777714400896271446204326395468817076136172398687985435052067435841031861832108920152297299781685758271202525816226341003651903914247890856488205748662615260444887145763503933991136147082100523521514892480517642720315240623664361729621619792935530894276964692117003396136535856149075366278270946522752162481613191766698544410064392750590878019725234698856020187154243669497959925863379230255893565368480136306113554939468454014814664922795238058564930734949813851533958319436502098806255977253189833515801276750322959684320133350402096431866319089625549511283688201836244680753172352141977256813009678208226233515753513895021910135436614728778555655568211685840716508772916490755963985051429182235277891022983852130518956698322272919046618890869034321975365754104279289473408362523614955633511268187198937136172504295320205917359942222110736468925220207565313531219712482522883268307318260858758452812096386014805791384057348648304316803738650389736272174923283414607422451073018803852395308019645154106331621100590553258780249953188665176913690319455471005378137151126061856697231315964240845007114261168333986604852748637598959581269991735526413856376642644261984988720477672410278710697217047423834312488400914055356109255973970964067823510506793031461338264339547440512653901361493083061193948465837144869761302874672352471815451814886969328420394120175631338792556870150082344372754369505579957438285378479349015653463869485255781295804139657495294436987026893353018405349486539122750310508650869542361473310917445518687381824845789996132709021476225827986400320365633508284313833630067744034137092550216229078013022330734130558309405533977321747267056315638007362654092814146046447290757305431689075150838900969762828579317011841705144859890405321489504260497471304309334369351059316639559577041426893249996325550000349284691806271805659853391932815486187135984406448383972110325996488233752842692619389732213160464650740481981038788257025606428433531673160404958824281993421893873624846191078125907071167841955866365398327212225979506510123415957257393129422789762555625607679004184281755672270201411964001032235821109664287001979103781495463350879617197698476925650114574056042362898264780927967763362323416701550903707490849515646230286882242637214828502522991439651322189148043676316678923576773770041104502361789365678035244294053171417883108671375612307273076421681925241119215360721916238179152498445832946576703011056246072957590945386398491474216260378515419336639211676564834830255036432319912852993811741687112641678583414324422870110580541235509748047756868114457831117837332741109605332404580267714956525946339409323837825427187453144836602345614593355887723208972364292335065962303415548206699228952496220531823467243844292684059037392753896675177228640482323320621837392068152222561072896918566554195864512899550285290895862894145901099948068919036316265068534510475334577127284728466998654514044424263526350492866220547964439362151910050692815918350907414345309346875785485805507324238155624763606214013657004937901655215256789444338851090809265119722853925213991536368903280976188530283792309948368536429729061182737450516869082563527707990583838070566712724244019026595153516234334127678424735719216776600279163311687964709310833848354877822530985268572729554294913845452590355710330877063975085814803588197645941467955140318180121749712980606726577818436759965526401737887365488315145121854784507454479553659532293357918164519149234007454415702661331497779066628840673393403934347862968845261488057469346830632498477319511323229065554523124916937257110022075964517676173355553333739301454672915635704068665633752345886344755901119777284850733984272724675403926985212601508473599355819833142845409415063226833610502467083489748340171063569034150485097335368608072316414180780986827366640422198669053280582757383090515143022061668237730850613228813051686481321346615920420846214800638527433418717385710487900652014055066094950938401970601139964747885623917919020946092726964316546979961500940051693698620589931340197992144318854521640810258934437647103952046246821208018341322279806908277860758054415751662367106674983513916309249978843971738052171937199964641909402628987091338657479290410285701264922024765596611748924928555238006090287002349878638366199192470325806182093309390723202690887310261218802053842410934112658273815050821048534543291898859990939664336044830789913421671537800726876759720928379875679949555927747298620126867668657803965503427410752018899510550368555725371215198506631171787629583450844857961368935968659925534089292585823969883608990972283737058477921845423277766396884873442182054489406381627388174646471425847482677782355487770193941470611044947868027895698789641656670899444425099017562436292113399677536543225810269046708886713755289187687692305289569719819560495623081656408503051701423601550865174686437682186049141339249565533267158991603922332943716016987999681552543379443951102394383125683116040925457069191415320679743565549223249928919258020644379888468186254372959069015904825956983350958232983470063594444987874610018891956227577281165979460342878934679275856217145306441496099130352586622264366464627718685765260288181657736175062520666060937070527372915105613777623178001410307151478140459055479032310481148765501801773650522965121519097164563980057372847102557211656098253827028296110951051201614832912494946585493913617606087683817122030220859978607256058349589898277439912192786781707919320169137159206620733529229574199675895664665121045994352302922209035145475687276222308252643588894490823803714940290135814570836764205871130825098539593386514636837686979672536481419751536109539913099568691357063267496944363722475580395334319452160923863783015059651733047944764159920605340537195996367217578729739366203983768741700438307892631361780714312323208329220202093078670893046847706633019954211037933180287752179917122819114454351281426899049656247907138762221164230961491231014315498944193240803371743945009046739149929280417545968472454113525209870473106449659801793415857647524741631229047231281049402459329499889321088882200765712154813853127691213544658702313259680799418134426602928799149407026387067464060066835093185433799936712601647083111670699594361622030612213887380483754709678235287135400919342975124696140600986997890631534273933208757188268614590753500862095939254472534068445411295025004611719793317385343127620917734660267041256949991151450474284885789394730421829492746730543426480930990073938349921834779914738823634717498558621759622471666635834966522387357339291565802157980987532366243529523778052725457104089816612526964514842782076323836000695712097828759736664378663797600683700640904966538662319208631515295688916351158179631280304723976591401856873213188706749573684964535650231821690958488518011343743311344213717898921547310038567324514153940866932597874396537041200353606606877581460196402785613239036292613427476269766157216903861254388811587672524624289138708573589801689432279140339070848501057400975695111892640707740949475167612835852792979557806497444494819197973914395918229245518681543687602935265662409772267389895895868535671872021222638704828802981385365050269699345257145994885818032189626524198023009990103500887250892730951215295614618269454065033765212248855939926203419657906753476350103721206455796893719688531568831239452748032372020038976874343322610136106940170783166649534408169319567921856602501094497860375996846946115428985842004733692150231379316115050485729943277901050051521470415554496372910109722782469281060627784739748869490682962916493019716821293083105944664327263890997728702512548156931517848207919922742691094511565638554345402070375582343288861107545594255756881998054400726092909918651651403903399801346073239005261259040818229407319842517739688827886727234636134266969619822053251594300589129367664634596507679256799331274338675577569631991528047630981871961529474693575654702880088049835486488055984436422536942412161493252396922425049881223369301523070477622447083006051806858627731701557882045970976469103999710865539404050297702842674085224843944547546177897168866003227836839692362620620675442876742140385452934384530676432529537982034470642135010786050711712644699102771396849530913669399986028202101708675385825924456731167935593065860925839698288213906081545763714262868274431126763452108511278637632921035353132561546585551280354682821145928455295265238495631952943511164353560375274305828875575463755142020810424607389282937611608458655659488200384084579203472152284646537349345538665649710008951347388857038083908654448836062337151611941572604291485401943459172107377887942524374800971691225217327599625901925145151762043407892562720039898446142884164006367184488586805388164065369376452300356020622659474494535670492826543519982345968564078781747699870150995915487757134420402891078662731889050601745217195694048554440999401603911998047487397964411176632274472776322165526182819963985001054075533315679389588719709319801677968967193519373838863181052196645535574953638299567314964287619680358053840633752073052923538206903752641735225557474368264998027267346372997676139385731676074735386699140832212666861631121098391021826662191047550218352671611009260703205178642726776681459106780870990949593832054783865913278535133367046602519545027748888772405692250043466427690171012546858885349039350949529671044378047146350595475827140048755629314682644533334863303546895064247496827738772066331191678867930815682773298822117214451253596751476568775384071704081085563319557938798891849677654174839606472813783701889048719656959649482795206639635200321546652796663411105455669822653219493640757506252182483550477326816209989122095270911497267299602470273711872087348610386878033145801702452405385349834126236733511919634530980829869623168886453181267147133054007130426697152297946898956552440768902896404222085462928571379163064121831818281036329873820406139241240897157278716549699465289890142212950352230852508531818832217277250057521663007440549117213521576706925003726869731607240964382383301185266583719567567507518548398062398051867398877422625486769031970339032682682458281777413418857334998315692901899532567198029381878333284074556139986401660760113937317810587684641656740638861878980003043457565648191594749417269395362363957056075819168342701252921831282701225598773635136362620073382305605193884788840886007297557154307776853357666472710553853484174633783232784596365407113857929732443361229225987993022888298281659493844594239767203167491940547000159052958600657312320507873232716151417433339882218366455534608831209334980174651292091524338241435189066417681851475732805682256339106395005200039256364268880109031578065344329566299464043662187911419743458889605376227383737949253497809042898407064956534153123351792251099799359279701569113073576394716973189329888706145852972268385140558644003567138964334257231756394568399133301951152121509031201922508355005364228724033356513583294898391471530123319306538199966335459958821701098473775257804841406841452062556537149193683856411462835980492959221339834987756776602828653386444751150593156200919791830060903521972579884973238226837416172418696223781335702666518993255307429955076360526322327511210344319373039380377946169183968562233766869819316875902667617720565114764890534715347291032934876457013358997872479612055224254243726950799941924146731929594629660027911022180759397899842458599594055649970600421114834106003418994444288539965239193160289036779249235695898431889085749274391877790157956264391916352080964306311430454131188141152632440593651422667684634420265721825840795030618915919021793557577535288311716623462857957404301953905457304217640922265459849382709843548325822539533004483129732784669250767862006038175014668355583756151986236161757256220283294187033153164050804692076073384798171748311086146821494001228392907149557343805489283076017090180216011790282539201416077759791992099030538109630737263883081236431245005971894988097449330251433363405405056187434927268557106527671223495730369324994662728947395109295407448016938962808712614509063949831597999042875600052273354030785849741556910742676389914577498708341717961829174003457970453082853672866226499604465933180283596049275763002191548013800578868218327068948321909733685286941075391413569273430732953206811371626912164700151739970370623923589911993819307767730030065704238100856534649775889172724188113898775251049023699946628503444936499266519393767742165319515620758759355516639752277761829587447905054679081115000346642600616808396342329322165713877447918130297153623912033211879079112605782325564845222472606676062679637254054112905693366371082540551342822625873040797722138586880075094271866524051908658263917502914875166934485448102616505002373519750242731307570118640036074904298723222945346462003002698954067473599634229009711249734072079445930333148943693282352804032404160557039070287810915136865011719109970411250749595724598005115114969604319293994377651418326119760416220383566030784681109238232672411036531939101488242373166588449223633259686240084262427637973846314348054976658590858225540177613392934415197667716621333531740639113004230995417580354410249185268180385727194981976816215262209235308682172969872208975891021288317432548794178646093622486812005495018188113290877435762141765447474575329557274616497990336483211949475645494068408539357672660463963296056488148354233563036131865470436976541971579343072973500114129943413685835161851724422044818508245802664105115595283387685741429607346550271005759069643393661328698413687972969289805801450867199216818172192632032446046113916560836399396680465017008608287074500724906069657506759827747201873132576553671957775791724080002151008671799240305283574148761046477377318114919455728900270946446115913931069797179342634767993993856002369203202809841497869527823104063973240010696430277042166022684572491601725495873781450751482943775514572064896996778467655954506316837308061047059675864113057684003703814724205438209419094989946192649733381568619360723816234000351274378011245309226601319494642973387030333651155181135761061260012825140927322073712364197833789444994365021350926652535081592247760867318324879689181583075670611195969109607166496529311624537411017535030918998426357290816857080895050184379514813411239242223624973091019177403608894904383443178559577864520972514135877833968469709790956771404769083723856138862601003446373792791152872674745035140182266122987312959894944443226685825323787253159629743770489105468270928061758399728582912667909545875329769943750826314894767779762401654081267218927479324694088941123115164368007410902506002922063880683066292451771395359598362488446651816810479230890120745677505234202733042009956196024712773503161969162173822343706337542488167015659843523849353161239403491057931243428129801755754687389631018272575381565466835071153850740394561652549731198635801572036348943019001712128362078522005754123834003041186091143338470180489354368080783297772985726737377765657904861806788812638676872200952525172188322383034707391648120283572645946723389944844432916749308090100024751910810428655064393766551603655518715089515210150293316562925312718671257599137778701894227603240819405745268731708989480318369735412687908070887800791352692468935355941189790911255353088280451208527218159771864543799837183112781482651884464499462416607018283487083399082899603798746544924028967263245216858768151369302371857194364899099278723936091076526870582287182108075139449937418035778521632182533714678010223069123284822848239803577574311954969961133815442209336736077868785107317771187608424217848349558262539812403753477324916002647981791343217415493282872734710220572365163530614418230108494404630879151167658940628718491899921262140915917962153647827708714468313761877939155915654138481173101285926219270046445200800446843451517113222075122755042152751214754370398043056715504430943226225736133525371204002709895385937095306595352149953281138779186845594244345120307538420091221499709534171052963397464051736756893425344107958818613243104261683707614392442641671113188763700437039150512704855166950383807923445353226568219297901622232937368120630972408188637676779658172423339924831713298343185769514303466879393239648889985323227755559702985940567975893618860528302724772960443857790302871666115576731423094271411570744074957794879211580801142662230814626548624188878529663179878760392400682527912950962691317437802522572809761014430217972909655319811721699224432217947800747200271417603428814839997534069278410056986094566860697201256105727523609621294918869724105263001725138699660361648894445660826605475263667230109925212397772974300288762462012361317921963083891270051620135579643117904435763092142770930180505132310899735536112424795046141422563453048578224541358095044220969109115083205494555774189615877448197817403110312777618827274707736396046113877639806229414413383911035912103890013665255166239362364726370847511287609693761257028336281232422615011442507626467129661012579792070838351778613395470282555500817757005530542673576314828811723990623403846264946022623407093108169477745441035756246586186560078919060271083969508001327769246341375869391408908316537098072798482260138212037539991645924656706271573231017400991273917278843982144430909428649746619466783602555843655494595291234365086111008311402850110940275844359851865863910566812116275975302997576559109872744803133841904457363885629663395837274720896564271754001388342183232042181560571069935181943971692860510265658623088348919881269870613191323763146887915721855075043608651712311543666056190502855262054838680844822551708261668412136683292206970041996901087011585347410910261467289566155000976445725438977897503845489488943782976910748549185398712511923972140296993888347552486484560625152734763832963347497815198122915359771769119856629455225032270465339754917402586073161923036891049978921874529792789097725442822510726630167095806674379962436301998906919371656138749864506271849355982857723892665147939742694823006533435313060256817952605063513208457929408138206743100540484318469375142238643988632823881245987327062788657491390751390288625891206472129996092135288121636987872764469039047449366035205226624837700182289724178576482372646141737555008879595307170724627653356112496464598488752969387433194142206165048972014689032255462270952494792217794700279704736420644596624928533326895058381831126973810478325596709724305559880517205714526186871646956715070817489031341506793706027638122197830782189079948101803554145771808608633988734963543453293505819109339790854305373410585900182902439479857425549802984397694685105307061894100608006047996911943540167841536933914576626798114430741709762559969652504280142709331834458376723182678956629809432775189406998957442711740597526256755288976224309861077416384225782118491314454312625945423728804356788846762058802866028225149918064995526829633444811755025465222648192849763452848892294842844839975965092127307830590538197439837091068391266231784647670658904556078231502771361284721800316627281921446615929474908600929349298025948820066038519518528015379791358602157292556037361329223898474426172474057674011456847666498283369056363268455452337866486168945319902720053216980343254229657001121604384332033895164337673048064145780145892243711519800249108116752228178937281123438491961770315323183748172340512588285138338309954475354620261842677013549031324187120299927047031778432629680971520602388119222047725338140715424128037215025729276120819661268369460800112355016454692106069273517957898343223804116946985179864676247298051002991455538043347547496876176950070873902546897364272030843229199588134993479859271096366646217601660749938930213674928576643256569521867997602057534440565367637328484920540126468054706394520558839757570424557267299247286696064882407770696302649900318218039468797541008978723019669983815748740690879573535155516657359177983335684051414715766037955238791894857769931052743458085420936560040056152024582260729602639331842149404094683606505134717088903672990499462433961778649873027541383324082173777757169328767332064835032165217904598534242238820701101059426978513862524766061868877072455934438295014061538729878100449740963816757721262531969369136018231276507628819181982814419547657095840285402387287531295788941905045534514850095667100997225716194660533120781551673137102067256956228723829737897409245516859841605084338337292933100365478182578459516001483076142846563374186938664148021391805807483360159257569079186403894046006414741168701042019981994537036238377574236822425497787265863346061518402629659572013387631539676912396598632916159603450887809041659223006346580525761662699520366030821254500925961607601564903957463951533192654460892592903985741414928296336811916917921009966578872577964375335696457771156376136338365493435329184739883892426078866478975138640643159987704285183359183884053870497737360905501952588452562729465977857104928114217047647704212930884218398362797414146631346651381599833471312170011443137138242684845106315180792220664037598655086572242615585792240734415103750896533302925295519723421964553212302607439722158378600482532543603534729610824148009617881874706722817874060796522253381335603455380200648651766965609876814634841827734761868974567298744164318533186054325361279157816431092285469041297823229964534318608308963901396294098824552703560264592417391319932199644587563052108954743365914638146233575808343475739175756984872245570557870896197797876848953369651867087650996789113317239241187749964272097151042224543136181736732478596599242685043520189295636185885488395651021167717680037582840049596461448170146669823780450014039234460132762332184317048534955306547060113537936661763683585904362046110423355599114693915517843013120825860594554496053069309523847666586752858425655453137835073412829640463322972207896546063630411997143170016322660090628224611873282263516730070012286180429049103872240045183475861743375871158794386232014521678271160394333747156907725509733438377791700578300998515381055305045121942489670328005691363042430865717586883754641795442364081019641168552577801543148569818342694057230373329263982423443797180232871110354377052117454975974073000395226410466160291517903625008862498516060613958807231867604496875287946391120463817157615683967936939780723536095313462933014244096564166219715789062135811185056691338381821730407670375083930851081129594391377364496417417090794726327321417349236341229402289788490884653584960900022648333383232083787176281709356937971912455448850824643982389342831867544643331111081884834245418336089776940086315953422140606501497694312826822919554580553945314896213800068119549705465869834333213793753716027422277729795704028011554506470970530455434894485641891324257218156540477388913458888857484854615686776336334229226068991536376058687484464758117615841455821315976865347835895006392747929990248055990708870634502214399443058061288399903636511586203045190121225660094553413465222394751621178960743382829329869335636215705609889568187190055899799307449994012098026213543452972920437109320315105334732825208376340536811240295534144502476070598361462906550813316205141322422209958634345288086784288829411868845939732054006467420378826684448042292169427002026789036726958022422771828695240000047633281201228215427184349323643118998549696337508183565665977826261615093915303624915515897339589927849886401221984181627448832176512730372131302336159523367557397032957072685309880820702098623061520753478637608298834000529025090365366771627700464231593182061757251254250478477898509156244695743091264754056142120614744602783276588811888866486351379059869792866749387793193965285753361464189264157788794310501946639283064121113492860095769893454767988358551149208681825961654547702400392288867437222026631915345986814377340059690306581068635615346662593764078552090242632766112193131779364415233276163483803020186037462579861746450360637015018241703139565883675780509648236425770968815026437562521182566129802469410360031501104432809687142186971030098619074601374412826072500993875030140230741661530341014217430171160556494588210696340139762269022939751284742035119824629082434363223573316626273629599009624028118190557649882997601312121596104952499513234419904341321355077239443600941525043967609002480565499959674153081366830747052315359484049223967901351379051564891419073551804385924255783829452500705916226223911515277935104779703403221508730899970806888387940834804888412658271535617764070412557278957553417314422130620207520114492546080426839509222008120524261334350989406778627696759834266595674197266133648681007488540802673606277150003397164747514922096314062388764039240671264030374987316357191244767818648528112247353422144923099404570801211748018127878976854840342462996456294461943227045478083319544070595002436361413069140817294881227070312250485899193784180585354448227017736884948921685819856392649545677463823902112580579243460514097639662559938790705622583022037064498697979123911566180933913843364860145735333321903864955260206357088170474622413539197840510344594190840228948746503668344397815563069918298983314522598140282404370417149328251403880229260768887966697011877813279716094749702416412505578192640152040613780275627447711893675416270903077160418642658555299921934850656262027682278407444465118210379804410276729013886632929741247472406544612961966690163212118006501940568832418037095689086604065878542151411296387671953657855310770380999176591878835422026624664138604913032649518648229562761464847671918822675778171278111878906246913408895789077801237821879647847221242776071022872656227928134960928884047219461425625462965725788382160039058726812384765015748860166833617073244923127551049822529953740850713139494225184540416110616421508054514741392776033733030255280649390437548062743445708188858203793586559101265278176755242046022421529544589319133648219737083816788098586920837990436037013903401563264801528176662145886034647340277181050322290078281545819244325419267763798232030937167081479831141664061491991863179650269349646189658370241550200324594747197156152850888577483003412646435001750341408841389486666042065103859183594633834857406739722461991474203333697870002800973598952387268967336037599905351415526506238327818869716715995794896260006414657549389004428807233104981844594979639084537290026731115577287012662834152224490985116469892011429809052586110201409074295951823233512269543827046421790152801662349195812300544681039826255746320467496569190021081806941035095565322035885731599424413792467625514340868797446279982154741429666717352370828262123545201924722957180939854009195926786804294065354974805177634781089650333021110130941654524492682670054432618101917771656596420611001244259863587066171386773079322145351919965798495304320730591047763459202044090101356341769654046766595148683902323240110371096230677248191644399346139849054726486785096242159300866522208930375793932316244577013478804481678405216566553875261401294463536059935987030335178182997151338337719056890232437921796675080080418781165524272525301221901296144995459350991051766735006648804515032540236172559378560615763176378720194581721389159771130440175191194247266640680978053182050386149432815328554859673634265183305201210658859813647356213060457881137247291664293790229870568729923266658486448837640755897205785638248783659176910871201386934227892208740789087846620294427368638667879012056926260682359299691579743374775299603263380786832029207476198305461602566390316227893975643484184494587086700349872623043895197754131644824427184102333013445592636795649311873854759970930576362645796255128048853157183586527412426182459384162920182985784110151637024512568855960721332734917547036016091968284515254845935587129820445620070494416126636584867545408098993685978174081864199004869305582147122938874099039887338848307373927092755947911671447528824483614138424271050301671311684148366843197295797423905492067147966595853840657423009046662305194848655133108339061656332407629939974962590969098406126886248488321175806010257542459139151836263759458022233412680901005177530161982913038400466337737432168762992431292325429327113473432242117559352008118335328239694435969322038569056245734128112729179253264185166165825206673596762260978009333625198344248218840363068299296769764808518418662108720660953500752934034994895181908829563855075197973584594293347218937745342814091797890854149900377234409960581933630939740262252382343226517679238886351429076629026637694841264850332195636430817536973691885224630373227726045533103953441260554788443279165022308967249027255766467557587936620284643507694294947631966906527762163393560534362123360873357575905560604107238067891133068994104662473918288331391873878347710956005029032357193897643736678095090636022369255182553906513981229283177225858285485378628274742604677047180331637485653304202752403311336249246170503807884630739526824285545440249601711253828274747287272528340625046858474611960361141856727573651028998661753204458484090290472039696493362173915322343470959805327348023967599788631846283352175310530094191903058826507074481122320835058987568234396420971192256877799142952143734436443371471865122797918252486056511314330131432152045231739766577753818251299063798208064308687926902920353294743446411287540605378794222029857605023033742894313755635416647930546036937175810240046590634678757773720761874846306059986671447949998185186823935148992508454091436735779679011806688971121086290595454994757400418039876539136642158642365358604440387222180659985773915483727073170052771279464124689558812351785318910460317859215697607337990099696968036468921827024100151452777294646701951536145646223859833393797231514993237092132501936576253310276837899386875736953369044052920430778753349198322337056039046519616366655366556510594096621364221083698491561981490763725166320010260625698438588644603521729658469387201942619296574154763467841722665584366095681079310391123843960937966935261380273406843818786492841341570786309032090990715274601513058883097146137761796427251793063835657472821605942597114785974023187180619771546714943460709597214624677897176872028296596698502166077252540696496126837700258156000102816670598001141592603833456676075586704736399879581692674342626257378343646991151213087494287797185616890957711311103319496727258280671711699165924232423555633014055626011225867023408162352823794482703796077508989315683857285436125407701663670155031531717330665552631465602862208724465958683235155893445372212021482640255231645121632122492328243022561765475422045245884623935822476171091963542216612225293104501698857917735579519381008675953643112643268100843873502106783661383005114774299263756619362169949631029703378544710664255382962732556272480555830978189118770175639900765837224818244620196671031930097053675612017220346649939228786332801728804537515241685109293841562808782692354120419151492688382830417038189854843854158346739105804818042252841762192840232788467613317824419698157492057926858040451730608216139297467111603125456212348995448607222956261123876329950137013866612315495379467537543441213953287902898718171784435347779044676701867700700390984636061683700547393533979135454636180605640989748019817636880141337145825199653229297196491933752984994221912445766601257712194838177591469459725032712912266795510733957030649088303430413027514910797366492330044466194880573420944308174163449353423664704537141741066166953000360092317287680945436889373957303468655167530954049961506761488252749060468877453753258806956362080548857573355692741432947902094756758029558857313879573803627197500920730784124569826516269545133369148322138471110075512776180387047874323631752134410262114597548298405972037464427926525632143878321094033925266488671645661066897926701458497165124655898749510491495301688829863335677782755620706326492009587131108170703254172521988472172702630553912513567648779035326415929003800543135878836111974412985731816689458531161952873836301961818523378432177069372834812603184633690292769691524174492508661279515957677972286344816540227287384517645583560793935870581964660369304083727983966453569153996165417304724823699256133567415550894100550196561665859539558348078952243091556934187318548576578984749357413252270696251887616136192627672193543391095589149248541081750727616184942668636519189887470554943247383130876730002064830840870195084197646722451577872163765738981549360738385622315206833175593218135386539788872268116290545230056281273634596297508721293922128143827269510429827932312130923654648079504517150116278393897905215860242693022934337929867728556959574756182554176110711378449965267486484518018127316659656262723381290680848468409228356212354311595409144871139982515062965559761221423988802169956888961170852551476962639808358142149554483893818709329347485144868361345462908599065961041366469759024204238316136225421222845241468947667187362331989683666183865954199460812799296468194277260866248185274540478744974627143383607456231883211561825212744791438177307434391947669252155544989717839395424260017208624801602894627388809980485921810475997564471895950334845117890012384787709758776080346109892633506937130797836905933633246926360488585063547520542530768083864408188155739132895908746329279023984073987276646162854960087808203616367843837985932807552017469782398493117493267600134742415703206747215159898229562059581091293369518872404339184934243482138625612074637479914860775134464796107761748078548986386743964207919448065949353950124809283706603381216503980819225136064947936738801278815184230157455927133343066037025592126236594530810816671522653980122685871416022796241214991863926247857585737587627625932566117169384130766238037067865765914065356227369237879775492863188473782800662091883306376772005576100777321643416753324010536805756433711895532361918471541240751744755634825897947448876892266184334152949733696573953377318469372281041283354911145449433996914044634863459691195040035730799808803597651491232695212783053688741729243204697276703325520918438882232757837593116360697772565475609432788655159001799104752164916039948272398921033436509346960819138827286823360382151615548957990160038033373680788910941728733069419671658142999466721266478771826937135541651243695675248633743273063271093201198878287570988063408595263080828396701497489969244292101893665668153107995070870607820585814592071332895483496103600240347841939120443521798251010024556098616425834548345336861765829232670439836354517528787863484688226980714830007158638446514291539737250405549893564048088672052838131818094079386649900974161602682203811343589719995793385897526853432338164564765853492899100466356421058277913506959050900480311557403644469304289389888333140845968408095793561099380711217014840776623332619715485058653114734138561682266367060662640907483913433890034306467606923670568656836197071559035852446000678002545760983340441595333416378514174356768909466245562376074521489989766770693865304918368972943878422902533280955900274279286631219456355838156632691381735663453273401949970393443944106165335077198839816044112180913513027487631125188834461253201780981737048453729688529801833550978254407599578473795568072146163543935195924769696141363623952533581321077940660009553924757686050731824216138043104497796084570141975840447337644265024030132100326746652432625252303496394737205842044025071476023505065278093115977506345550941626595715945827978400523111248320257284418172480011392787597143629121384885610578047591319647062398366745217400318160011838711287487105473868841872451880939892699674399439689607923987128856271002020115456823380006185959930807477070194700520394346239347917047319175832698647275550828513925581276601517517699883032729787477130532987178898907597741920580080253386601771635249011816743678912160371603554307074880485003100399072925620699458907932271979252066009984500480487335575897481044182629729636103998884449670557254010662406173732056586836671813826666553401803325083842442118033496180066256831199345469821911934041591706003268338418986542053747944454502125056780147849864885721347586256628767031962545459243629812709513616255670632962995414732860412408946155745681215947332061588292169871625979191543856180628956332584831622233201915437310436333829219744843358474049966197006737584191677620048478912636525168999468746784376614648153380081970113048577560457186352188281936089330273903079481295562730263292071781548648882178177069714790481062968573295953387420164975925441607029722861807412402742224204995258249020553467010095015166047474212503964735680622010152408363939654821178964585422652784753975038448807072657728792958547535634703089184965965013777348509097563842378426632441447857877561165008327667418268270035863239910355639309417201736656306687460717681353751838904843639334195171697027299446646726759779075419497600934127123378771301819672016081678321147168168159267151336943245803258003650093449413081483220907818594327856130119774127966586374845526458470782101254838526406368249285660889977281847605081830492093910609177295162311688507417438069919004180199284548871596177684448015996424528359111094547135700020241923129031015413150020402211691530813350046278305193889760176118498815708844597434923524527441296266714987152620772688816677881147365832962619508077412944235707607193018247101748875073312426776411052092525895729504138792129517294240513245879573121231817324050122921791629085264648609578055942681998531836992960268513664552324634825167306049042680572676873181626511185505968539531443752125248693994993523459382243880757376635293040828880538673293463343554005213234295253502436391417925833138491080073469013843459990285209456219015768864335133121756148739405132226815498588261043713803397669845414090160304617777605410356157240723085253566566023919299939306412306036143611968988820695517859302028437339095387273154819997170027769625867912281504156998590583299023262263630390081095071192417717140197349588209153210334602745435989056230328042471536727790279026337919503616493990454826890282801088320539592244093423660172990905488129793342601165842892561352591055240844879368793754719045806446961651174222496208843610784234630205040241079032290812125546706640062347875158857760350935500685203197053963828776349250448827002386239088709950198510297396760192267349712704243437051657819341071654671222646264178288243109253801977307955094560478876154477203400795347170239868824179743811778469330135419105909523352479252818867231923525205696195473543911922457153771584807031125379332820063002722915180189625910240851107832285800683319273935640199426289035529888173442764641395921093217477688812081365619388219128926700938611184426326224320201969037007945390166235620646042931323137885502522871251334001812534739903601540583162198004558607866967939481103616114041309109081852870350860140752506153545097448662434112958181232848897879299866247201802327215315469902563138119671674005551908051354936047620038359263178577115365464916132546078894093315649030472645468606207770171660568816621529942286762681274351799803089172049908911118695065193052281915774684823703166657787920872126824783284739743021167445588078863342582668013520907411416485192546784667422578102495326538810037350661074265960705484460856675683211301465199895530932943796717052598569623212018467601790976638596442009756635855929934762141026081586345850319170712845447229987216388990247345169296064778666160115362398356191571732149610617526994700902794941131844675434378122201341293808242983843272149561056633066487797351474660541651344566748832012343599291248256046205075219705599348168561408925445478660912674435864854741771951594646052158654279089668764013375906909406746901308900490315091372141898928904442116410419665445513215068639101429993948777482495181358844938171380561847230602684454874164097216215347456208407933160126882262619744638479093846393835161647176695284408713382668911992271971625712303127182191426234690463957861239461194964569748588748581485561698498518664779869246323286761101583524825404179070015874081616710087732885150518072622088013073849678651764993051528885330872096949916983810634965504094221225126238240102740805714913113175199854234405308142601125481946316955651988777017553418818512436198795854579960939052099490831860229311460662426936270091177860534482478103319999882776826113196886508071378158840401404265375738622497901890738252147456502419328951701010709204283290744227188089267639079945139976100273516032622614685189411223965468130092727747118465411402262620469040028789393664750203473064836276263613184596481596083194451676818398338240014147977026486598640411374223669976504470094732084253813358994622944320496080639310730177651068425437362135752292465717644343565274653185199428529706933064921324238672516733289040639681629439812137573195988441080193292367449461942125493519957394016978502739806126529598463896842425805951195102009161463605851262939696141553145657895725436067770145458211429513949042245144774523730012719746570621668310175403845945390008159020682632171140232815988792247604076700395317880592367863261958108320099916496342612589373945868397030795593914238669523050219703374009637088460526828137696420841518204992998847776607422132099254223210696134727269948147226043861746883413091637782542162651520734060997959388331264215048499707449362291391255340787248212052953592573398714620107060829219342605421301998893302229417725757794339792718917638324535972699134933242371715100807109469611894667388640986162793339465412558916351219961331771842862422681279405014047646188050750613982048176222268192628800552445375202585837723872713891311195609289482493868950297958981573064183689606476439168846676841772531359376171243444660839411258695094381564999753576840618940427197494270560871537371842920078566524025408265176471844728176348763164211862651874272760167156754903219951595109991191341040527897453266081384888430297356530036701453336533884702614615423329713438765535046255137487031454653627274031221394441009455411688325812180540627268445290919817418266136647992675452453250973083771505950537771741029437675766010588864482261526886822214319397485671924536344458402248302435043372042384558865953647770734353050618170780274174280399098740299684186334836377163306097645544702260412493173141868473045890024848705189786975319796424588517529738027476600120573973705661144619061633075413297526762294925322949025686205358725615021286247393667769244264569631885153537792069438897711000696413469029993931440867917401720681215794316127988178507793651750773215145635464474861283931123042913484024371582881112349468531040267919739902557777945747682636861737754425312096603762590489401005551086935297133060892263202265319869245493146958915508353882831452921757603929686032273002171752197852086469734648220898169401828642960589513235184717411877073066716438025665753978516007084489981229542779996467869283860512162460539608619436320543476080124240768209031268124758947822508231175561970829211164388647719939137965277999915814898325608765739975361473807992459309595457561446835310524128995784377003532884642724478120619041549749064764057214281717831950167312763788126525692554490380474805234176176976070196880086629614839143268881819532334458088896460772760609948234849259304322517733147627600579382092986295707192093388617422649044988103773138982045528283780296699791200636104640592144682612640111632972052406704090930747646950328972085684800996483054749541466594813402172013433445825290252823733426526866486056345998663628891467242628699295428057041358693932181553937920667934632503664286459116590838019013524770829185137183702719962352733594198099421936381153179652174774895144147571517161782158694054370250000572648530311626230707377245013845408010649034473880974988950127033962981719954749927388789753463416967829459590784506636528076054127150940081802399142604697397493811113574108283514648203739453405122629713190943763313845895079775033820594575548766513793303416710745816103073077068149355817016942585151390576741343316559433179390921322592511381937595870563632764128117834449662127790131683986335823862694510846749135617808231030392259321266952651488648010848685952728447795639126117826056308475769323817256735091338975072155423241361891523522315798137560304034258148692232208244878665880263173230836946288175242909070489138027341024140853846134240900307691659046721980717596587132491017392976329980878676593584777745316156488832953304115580258993630145438004546885855703497768229560289768608418472805541375341471630232764342939647164631372856401314243156051848132714022491055748313530316580971240262634122912736415668752058590195726628623345325695858725782463483554250618949393454902377326476085589967302265539903884179424540429027733763883711529823327345243292633257277399144513339195140315107584394322480702326994796830127662089181734773381611763314962058244501917865786536435144983807891837464725832549515798078459971193225399904361121877402002434320328935504090569369164357585867489847893113120691901112129174184754997235257919882288099865728378663459458070281290182700987556048327083587410588984201423137176351355818327780685878615923672767804971281121415999299957413169580608191370868570868237985005620237583692325814635603805438909624839157276958622849658350444166973688291281965898629004835074584114923919508583405562065142250201376223999660095376886393482009739998447045128059588005251405593450553577573480246964489875699565012283818218381076247547337915078929858719491000597342121703335333546921335768307420431000522035825128391161608500588618165692961120654687231617329960515482029553519228722646373977583154361647262942593381662202128684842453984766203283862752143939619001532641314605214930088885771993149050054216705385909099801624331219527620123968909135800134293246557872305635412117803316937589846947428788563614712817120261803064218835127646346091684778090561546514474821079718311516585081398660600209976171639292184933356285187396677347883478844542890820778196516997298314723283504459712381052755735600472926844200539435458408382360115858953778236098265992243843161886486338435020981988179284931746198912815371125445385034657647541616240752275442391514479254639710600940818858615629567216536562389604380355790466389838362619195745281890635016293200196084427766312360068481507494388200484269782838358119460860190071420194245047455190263726668027063664663205153668525094097230327790116794042429457039913479896196837492861706440599249017556150857554482453759368585194081478535892229800748515974084182738454235127628900891346245128985849442038477754540286080050445866162841967155565217677867578600820437373111660664428699103107436873715845075562786672720474136413437765073124251230585548206354866157089792601543810263416504225190983982756128652901376358517840030184198022838291021610330371454225686925350915326467096865837117956157983525208636026728353132860847585257187388590540464163355002500162741840412522227442145062564371420076835387077082048197629509323878628451196029649023823417318442885333981455388250497077884085814238903911858441513691659223344099182562294540913985996514828479016873964197815744881030483062091850992537217001561714943692388110140871759386099780319654897932463719807319424695089648963007115487471960845489377835797039514853745348242364169831203186643833439530866705892041073905476609377654146121503300051809329446173001699430637142771224228607403605760980205213308419137241016016975466672173977049794469753324363184363602319213848244747702084726712673814283513868683085720317389570344683891163923750160731636646627080863017386788343146921167169088421727343718902966142150186014974795570210544500098957354939018219067759703304574670335157751141157743081298576295167645112283533288227849823420807081973604843311030611702794116963761327145061997499828243907479932334701106804430266404711808921472956571945011062850938571540618354449174314676754744084081342973007725263316171682040118834689906982625716655215686073388951240334355875271332229112683752565181242818546490756133699485305160998229058849191615847607918132868710762458794629814766487835712871322522214342158369988385526257534294518858441700117737198732915340493323038494006504552944463043712009909887415360767331894743182679973918677049494845385355874151634268657688947912031640707770821521170689064689688019074228685069471524527417413110554925024747030336017426980506117472091137483334257250728155956697845836885865419197232094615082713561131934673281136666572900448198316584113359483617716731825505612109385231796386509300588866639052860477304507398543163477516834792828339790829352693261094334159481812105744164338263824158485690110975806047190474759710044016887073794825538401284935150391545412568664083768265951970030608960590575927264202127926436535833733080126498911331870323885161922790663024429607904524625815390800063846611593367933771286170498765324443832976234954620104194074465517044794178146506100938149111589146624042494303471019980905295879190712705517915377627508826961183943517066511769390695804082966726042212256419616180984586302569755329198002940700468336761285320433159179346861581868900939462172399321369582800544503766399688900903730102697342116176086907075822103655753484171344040726266431641682474203757976444163753747475430780924097596852934900802283335686990486495302710741193896128674287466210982336151659455498359587499423843373811891514180831940095979005963766791891862903648292798559851519675224690931932852938431436384466059930703289031923508461960650537600852101870163827358219864511075194393296607771009462680726738583166415651469502593008296070748160997063537251113193655332685313387800045712542566694295527064084524344949633758240191939212604812491681882582250331981064315272466270068935833993673927586800579699743131788733203417588105921490131842666055855515993315654074769062248300664641818867523321129316502281793800968903483530437468750550809646498003479511158917716895362609028522752088249556303010482686716867072487338997429084438907550429179954461512379719296724325425374628003412426248554127115212754499050531427919586971050550116253841449998476320412547301045079506100519674017005855985629424711616729913788202665429077120110608409068716722080845395400889275764115509410737562913267254644066873553996085048584868824964753661449020724486173895787496424059257221993219309715000090155114919105681008199948031461132688357463157531202552119623972184673445874474916530815279740678084342309676998420982806646150779286165472736235563630184503793781629820546292668091265510062155702223887421501742152712066970697822816214162712974691965646418900927687744082072657005170967098757045231385778119387867237049071506321381942593922024626463671713515149480661405012012816554569255492293171172025162252024395371852434405233682073704951760954429248431133634251357533524727993559586771739358614086151537034301105090211753645953556873752407558583202798373235047660595965895469385369515934310555070651394286430641526046606357258338366336822833588211693955562415351772144934910327157510985438092236805392922628052433581066033810830419184220708608457575252702581842452603544337724585897468341699877181722706043131889875300327119766894797018990938527954957037478171083921218360486895360789225133734139681464927528862909767927477407185005886437462910228033642564456790440312797480797209043856213546818019433259878818291657301728663508981442440033989424752202910900645558442025275829874482120895055148795135282935629758816191977154187005467824268811009011660963800146916854806806108324044772156421471272872829246143967280976177797115116954941532037631909060717271986650057930774155842539696966746052210210713733489367217673810925050031087417172169486424039096370783875126598426922317209868123982753146250768899318499028975678875907810091375227728691962630909578499667964069273118728489493506586062986250145336670779969404062248282527766989623709067553236654701341912349021169479105039666923046616652139103209877766489492099291162746112422338452035230570467080348311974355233632638197598149562998383028537259263677869043532109349855955944747414754508882746387459422714720838257906574878488617058258668849826768066433845189283040389035498876273967942954054039693507990859274269609986851882220383435023180809307258328403484908546386385989601773070294737904553115351624487586105113796875385415405708684779859207316484284750698910226506420640473864580587514361858984913547705654849455490990754542593957118793743408033851285176493903857844866795732530585118139222172664657108842289760886386385523623583540925525973651378658128058223714660403393700586183488117405776394763191087202205735467131304921875412243910197442165322819585454043580775661628269594993252935995605294870817216996464299024886438820814111623255165543024495354277712184001661695887374765133054530985604877141900876566091074069216595096998197741648268335635760934105106923226193186336086110729288613773697377033275531508790300333598629255277806430753516335434705431280127287196300644153418587286560761089936241480787393417033918987210999483036368998296023099061929732342019566175766877521003239610154799024855058593682092274356487160906477296739226704808578006602360811078229460208123291506484535983202432467389467159269569979545853831775076437958106873460893789645296327365619562423829133602390764263134190978475800062697558034650148978332610919871041067898028666162996617425249434725836532341178246039722741682709010701289668171566394349033908274479978088133589157651221510756539559892216438993825380294790190231040642573519742164017607282312107351428948532534871186131322947281607646751684846420695503541719949754646904739288030331519517972591935405194468827691933033385115823724932761723014094798557539537124454246450025844229120746818390244030739227816304161081183590622813652235846901188172364087767878098024918499740566943327486071972258330354228577897542738925609698374348482829639755903650484524189847224379365722211239480404092477919924306798262923329159728528703795434135907629183421246705386279342536437335911006648547658143113221889464326855978923840765822815666800263370865256092698118687835126956362070235935186736074261157289746002605368972917600612747947025619676992659888868948009006264216179774193583818064106127682533537999553042270673055365226409769276729468608181316940938126041705010163620867370062151551036739491453603279392772156465846037206196628538091381132823963731389576773540007679009998055759395011761403896761684797807761932521109060751459472862486752251600175761418122563073220225642903486056972544355449696178603990865912822564220341042799566560429489993946146861949337532995175129357419577004304733353028378169255381923991897381020186461813523888186007611682762562255552595249206544165420137448539813775286939514967117524561855472788656193761113117059075576164384389061933960518993783983474760247197792996770478261999327426216832259091930096078792364657714789367057027862114403701185404163574498653354106783313785393042993719957036209471153119951625343206025526158318900315764413546805631871470032724046037598184463098183364912152257107425419400604320668273805151409261992889656137327478821155741802040759426130744375287565102930754334804539420868813102486873907590256149750353197316343048688665160010287755287943356534562191298576962931594873500421070653648241681363469087912964443139116831175349510628829701363811804599744611805912345341434764173344111577620590671423848116231362191335274597079230958709615870561222841562356205897137698389026789665110596957673139091653457025073031398679853210377814862334572954817860104662274185400830283355306782402644560016390124295925197438692747966398899978643625150696809648748914508230306979457941589957025249908695821936142087430861322129575366273298807095631482374915414969574229242975346667137768194393439825833340843827270403322333972389603166752544732632634465381350684958500548236130691380937047321249231854098676199907570027249600423771146393427201843489174735572509595688496955125093148000215450633283427088800170280916777204232736471035648010870462286632744426699992752235593566814826059241222949871133975630003052065128661646068972029309800490467194950662816971227727090607593824625738692000820065188141970047921038571489754528155343304503793788694007987666116477167439964384989087751878597281834770503185011409594278063031068858057622487747610450963645853900784774033784752908510157459702652194129836221191251841670845223256999794067353407344533894662382603632233419270086492786812792338496356208557369874331263067768102185646560237383538245697819507078510601360628197772005062617678728529872862796194732054190649015317370137596201632785809690478148072595075288621675564348795016611078433566684717967579798574729675601454659317259402521554608664511154677632918069643697513278613307744345769076365778299945378261952145725738118039963093872989325016727204830695451687451115119250430779570969674565711072617714423049731825508111439622476070130751721120153119567923706482129656233562359208455008612692169189630073825476560167032086144402168532372737520573791312389207320616964064819718395516557252707452679626007635704188316614856115453148413710325932829685198377215619872711067902846149357409253099576877780765883388350063967173352046424589788346750459891641356636731290180486934409368972295930719588258743126060333849889405716806154496407302982834905255485824026682884189328064708736692554648503876348607366209843468327093572598153685870012060257542888356743347618908524218645734992145934745074508082658454683801780912136882734066680611293262406833771011178223810248387956223297717265551911726127351035228507254499948214684584269755981728858092240450677757027415955930521067837741805800340690066088133454067750785894007032988593098300991545312641016943022432970862719125121204256091140513995680352015819546508051194345682275709723030712935124785575738483852628374940377697063708365201680901625423927637074162249867445335931321185546095565303277190951208119633924668241040108237476679989429313097150166898777437335208493977979069735126218684382065660577563746490585772121998001093030536154460077922123399529183195951823178445086725952628326589070582105835591794001959558030123974167248551744101512019059910745063740115388142305468934788636025369215416718292795157267949116330067784461823486256106027387640034630507713545628662228113424017699088066415226603472609092287695684885077844200490155308522366533792387487427248464118171270926228513356898144563540934243360821084204460116800894006833332267494831719688722247406637178972481423602923960442931390697388339978454409528943579822469195088869307772599472136756111771470136069823323064414086241271878168742481968187608068758536400663285096839990365930784422683469916706303844982213521882672047778138550647540630681580378272979990056998915745274574617075271233615794554548671229029937780591780783383497709177992414280193115603614544350428587736715438435816439050165948999477278759399559195367957095355428273660119833692017094806550000046938320701759927848832738014443149217983056684537753831543360022387086387860734517800617208619917572321611919705242772465129244159842437555790550065427342505942674194069949407045232878742881002835089864944581101575896297649744285144518994244574503929989430477526343318944280496923765234517952314948684750660372242299239255850401965130236001816724282410117765170843072211416338825419639033432155273163081897486018685708684259765451973459527746545649981567049340279027466494834844945197773845989603147374238157720597561665747584750253467437457729274971573145112077694007090713326817857904646157144292881922191650789901903626002233646738706647642013145422443201964111811905761448564139011862088090325511772640664573087159629956268759991579228135864803896410625059859992284610630437192192708411891824684831397735107147354911313514578909405969375284972852649241869683761186284953120346379354869288827144955604487180545622968064552076966010505570204218886147771546663804669914297261553363253064601450043402897957567578250293855285843751245635768298745745597509328487637108412416143175185361764106376669870526313823048232888676817208140687326828034795906880762591151241631275324804947670217195435995316166794438241320367670930878703362299170764903253399025422427581238279789893658558061066836528850586595064693086529067502256388821863411441706220364992173662140033466638828638999752299791620419421004607304887543794490198332230576766006389309028981891689341408696999605383105767852490507902696515088051908305360545872854047208272859427902983562813529803822663698382410451294721276233070856529621401560385480524937618293704421871823678440084920960978991319908281595771819681270183314935180228104851660232251555691261620324578162194800508221145347106108969749289154849385088928453696865452583056557065402666328823158025691337859531822847455536191020079212596837638334902178958670280108061966425997811983531732952465656597086387759011637527170729396380101475826082052660386235754338556824519030138752221012777339269418799308229406331847171353447912284197221789247329221343391276197630200237909879479447650624086744937520566116192034934172413723857280659702581211443468109813308423054887121716791388115180525260120991105971938983176014758344188772328051233304162668729797483339897414299326154526352706834642568465601287157250386444180461130876555582336536547015618833843569094796719267325030860468154944922511434352707554894770349767504143709423799227506099612382956286617536119128473410605576667945096684450847792222040616197852897408157260209782450386269862203393414778672831363430787862742925740065808508600312238832070928994155426745410200685447785088306067222299573225811968773840468481398323652037470109163684489513260223601837919176522699697915087100421211285900052576685885685436809956700135893323396979980418036234289590937424497516590116089803296956012410569311538160541747304824121754316752754040485863250826458064958713725772696665149521905063774683275304913978253319500301126193569306475439144608706198057959626117215627862719441706866059506854877948062609812259377597615441668223415277534321612289112749370359889700021275545023542538149057557311971442072246027877137596044868787280321030741149647989679692090457360713157200280421172581959492504930296449180395016397704325021984239345275339550250456799038066356251207722622109865675061846927882583828109321765874336484867765921698519220210456692452516708972950701908752272589662770508246463814625337658680789646207278727416044695135816490176754776380243879602811333125874497374315115576564452812474258998357045110648899758444644474023667494625212715890256159544980813496342964331630342585407056048565748019541725202831273658314650496251176076088126126797657670800692317851695897573824899272585965690991291317728615700730648730880264874899857941618439022987982095410583313215624325835488000623996384787464838226468664730205724617457325669154793242044177463898785041587270602772276227968994572645780717673643854291383750082074943657375916062391089582056748274626009510045579959694099466120808445633513335658357669923354601923491458163773591077918712302316728088897583444402592499532641780723085028758239484100583040754264141376610059717629247615664886689548470100626647775407636457612185768917478669364059413171302273623506021106215749992939362840473706607179597357145623027675335812709261228198075339691544879242448651797029911590189790219842849969356371798779110813691791597411292764369745246779356322060825792417130710104754807629455107583380293641934666865156243776242181203557250162404546456685558317183525553453085738687873120153227915161505791421745557896512165822042029643258670509691103418695195520332527080137072760681740179250174389608712510530973768884562887012703970352369930644632080337680934416180157254211694212182940098374343735114364988077734922892232002830467319669415752654007164441338707642066988811488434005710847943241407373782092725273311193596766095258775796151375418351107562305910944581317039784810720149142028123303436446296245195159303563444332810752075587999043335199380612408183105340062106466241635598095963559871217272176052929802224787802127305322980374562970834856324796448117749802261392477522822523066557193184847121823998571264560982240875513356600723861737068357003248747521668033153718233309355718652208176089696602017750503867482387539281218609245491280980502089671326146599962047967794890673954649714045649798866488134656388083521023835277090903945156964050518278551241265654885248740385138227899407865057503877880076690904337675704448860081418559907832657556303624209361167720340930515305100377415379084523648615828840585850195531867977070865179260170929799881862906101235056061779760928945342024422871932973386843122000349919360541205873045470412552208870081062629311437791858532153834195871745369053548067064445337640871413112405591878538774259555303798250727000268173938402666774267982729800211038783507282108632848329836294383271624142589442973922553860309527682286160518360320191063893671630487903220309447147290871598247043032890786833334359493732252818090666739581929741980676773423997495389696488421720174492755880836274684489808353104053217986149593797924274027157969353218328678435072546402221434944437565411215977895988098407193788822090988261661342359096586010453072539019844873418471837169847535832905100988478660560147120137709397083612680512049149740546072645728524021660662522347367924767131181921411788310479286099882829790708038487526240535281217710108575623185197527996175156054721434091978459979062432582490205502275135990969106825403857465757624953816086082163464354067097842434253346718686373535647417936701303458232975244142839186383300652709387301558672643423574533947527997599245287469567087427113624795684235730918954103020493495546066894622791452885965179224070065924647350876715191750073419640238642437162893521535932402322317034329893988662871340252991962639792299893472235041940414779797778479064456057053166517035831789397047853844987925804477173948672212454244737833083573735967319785636886462720654708516022028403204144193184138951263813082899063078320415553332453834801927816352552387629682861910435199688123152830175751107748019886384729313733114573163363194565086188669163316176351479711306177256439693998115534963253437392876065046745773107618130155448721363571941913273448614524243205946942283054059714347718914888878235913168102825600797841238405813692364400504745012219463252800844175395252777168183064881660157422279236723869981395551292600395052845994653593729289698503888365773977358902583204076043542997833440108287536082695992367341559002227921148388765437216506695792083045129947273822666341060460104931662289392721453946181220187983003317249179263374872983926338383925658837014997863976635865847089142149914359304682679662762956946772066885296669462851149090527594507743068998636180162854698563627219426560571806310614276338902859120179567858970643800825395756929989944460784260823570295846448621576829878046666776223962881059369510323912701049267299599984852360090023094238430531371879226355742379737044323483518556280746397543538594072011765791897116675415751526335012661793211847153826657474237128443947223148848620562130726081333636199255438034161871223354508013830240630512630421743772933568981197596404338487271967040382976292236984128191472038581976412361933292665536154512860272214860179678304268733605047340227502977623982363946981888380785330351695854843094880734505052396315076220727999569338535572759657202322764012118112370101082484085040317728828287547073924505528684999357229836452301835625387930467500816236158821468168010811991568189175304290545489020904664063853501609926811387989185556816341923091497836855275679920259284383543975898545179850118464627554687879624373605463571665366300366935331781364413379858066661726960425494679045586765056928001051395615240331903222311602603020205614840505304914243464046886915097240049908038961480827516730928984597813505170448256361718470804762037523501016924813418655396022198458125751259211892982742846679022455007093458114715375525819026972336668126833829549191797352330622305814600448250699887057163767393896873190064372132801613910289602618340190892045046124710344327214412915963018917525760809319641878945907325799963824024022278743271130881712382617042118070453229952777632770313840123411218570979646924174199284478869199784511336704311381189377200516038856832167968437686963176426558917972635649041377104032205703959580969401334953941952803728100473208968091264147438603351757347601750419034123110758722674958545275627079723643123600300827603724038440292847524042888071948440962419709905033273474408360630169550705595136078694706134666809410571211568044528634778499786918220477124325547234679316279043332808172649117684547596497079743852567972299453616980509141233857541344015706153734933779029818084687070933982500648122873408368943610615930108556264904615060021065801898819315447294785892752969156933506334720086228244167551379526624893366387368788906157082747997157573622138703460539370653460733599047916515475606911229330947202144828469733667277198896758529973008501539322767813803014040268111200493687089157686233412171688839700350094357559471999816449545342720935440050668878158678231932364964275852185209672980207629165011731595271574543718820082110487528031003306016746685733824878753166171052925962435627763319446485803712732457505345288036702959721410574541728648085057138831904282008263776537216517413688315054559022461450319224346445454164671490925876306831484477676412337416196571745622990967657098484437403906580856741164263758453123268115861363312273788625126064606820917217628266717504078531813305570307213124227674521799358346852358626813174324814385755018188811896444137495309175905788406689693923050231642403622315566752719411475232150679809892934137866417378177656642550200957378141815515479209694889812465194855101632296491798319249023548584859391004624931568998865229876528478545575136734950615244843614926410895856063339170279210168433841706694618172322153861466822250013743951644478102295326535647533962263229725158685616947435386163996289591617225039561227943321504270952894820104058585687000944193378261967383524966636783171580060982214970440223870927507972671890111181897121047584380200742810080435974870635627850429708111250585835375021926601366445620767943343942094637879182205572309929576029464629051935100457244294094965918496001002621377732584546005332760880394911084910022971505897617694037810701622563219803483248066371195654166237766935236396111676737668130410117337035147607844432027968672634839559381264718156518064152104352989430284393072192719705798586596394023603819386676284663972832018272934315829008993957292017370829158407451364665829582777630558186741223099857736618418333854853895449102666108009558328936646693656169372289908595584499269809361494073911099993218512303262761455694927604017998197149904344326301589765972497342331198165352903462869310634699707934829246056484707087376633535353116629631529501018757124362647383157587502514263177103925503606541500816055172879345224878944891703172399597301449796665728715835410696802978458371188478178737557954655684111081271989763114047157698703024627783278626813428081845367704874044038645623489250707634668587279222227134510913506771823716104995374478129953113752841059673759352284625689065516843244086948244423221626412632523015629116086846913297041328238169834677557043559942836402562480861386264824365937225794194171845561570568637166735619696528079837107975884535885101475160764297892389145992119911543500912680303002240294464310995867348763585881552084306389300066556248052871697132790264408953524553515209075751927732532666660574632367172855511319418706650224419573109261728051600934982576392168183789701738206547022186245172493724118898860226956655994901418702697990600315507974712418933216626431572222853871905118341391144772108784912864537263795020185408774715552162541147265022600592545262093924906587540323988732199130061553925744927088791034986304937172262449014707391386673672233678471330360049016569459743476447810325560304088008180792962848320108929378243977540692155116798493702111811125797243242530068932826999470672245955822930498858664175818463758360382577479495171410464799100859965137320087307108538023256747433997859577491790592507137052295002496102800425064351868835362297847845650746224197123705605650213410991250233801226941664567428520912802999894519593640684566957524041737714667604673518027900978341126954341218290193461682074684468685067988103553712982656343896597240573085867899529344935812491359738788306950370602605560417773916563577251892819224203061270008527120880060897837214143142926675940316794536647993075852216853369073191462536050318860738234334746090821602085364295764470528291870453616028532496278882389410322198811410468287920865951993194921872833824995469812303051806312077268538581258159010395343839790672217876619755297294739284661155224153178409563346449056365690961291453448729375324946963762663495972618751737915836146416904961255148664574595694668667722151859727538883833521623191008777997079832209212737326159145623225340878591034404425662864880812605116504465604283348443340535837603964883652091915820247680698293682062965972574068948427580269997744226356137520999183267213009570315748706089219331252375479282605009853320525849349580000916769589402779980999275823348640305399951637684022491443019581868765092601708938936957456294742816082329056007333436216875502511673299080506146397476929670296425574729367283356274382500716803964234101230620470245691615175923164657044637189204556759353277440996185943539885461360866662157358145925096279393972973236772771531916187634621386404949431377389714360592651389129026272091698579681803577925239853782992690973417890136356131956371237097411174462715230052848964020843883417825223459702262445213396247192001285265861388730468486128215462929943041001053715694098559459769660340488342254067532611689147419553612237615274479703659509571961466123682271882320118660403373836722992282972013193196609524645865726006436599711320729637699706604539616029174942906781492046183127205532055645073042508142557616434592827614308295207211083256189020265024036014872327705748625317973652112716283536769203031734822016930549995023322586542713148401169666667861618481370801356235499845764696947729132532232156224644509731019507442915864394103582631225491950930100097716093986040961320310247186448070698373971411252178880912397604401385468577574357612565314386437583414791090639368470162895056626598573328764851285823146973156493268256235134925896732820947295528998956714526719278663484526967183086035014753688549540170729504363149732790017143548115204519265721495891483168972544483806110078597871432018569323449202776913209156528887542501412350363893266839936040148829395365023952030985969204690720923182211796310388969547229589089589924736981251948937917190109435559240616531878096961383397223426117064426872704471427529749075184553402811942110565403658710692748285643986747174321217351931134057628860153590911128171495757413719391414195124346952768155364006022420947943493032313029076303482208359994907332344514276927418258705529440812843867907951408374170288314887479930748399149913670876082415309920806758565663756623279504871408142540349077010047020550136042388247007531093333438580826205246240358232119689912455225666198584726734548491911971934204180625321892425236586879914164959191283792091525875915284216647669746081362600120375005840635779452547933993423021296531627341587358942695698284094063396172839773141208834043906473489023788181905110780380171203744291135303724012286461114056424549075617033557654234550067176293258130308788742814830059320334112192096151298082831206798017330371613017150924866410590538104091347329598870819023777806576693788314672478779812459020652162739160561899457011833761439141368526835736184141139167033384911468022511475169023494696303577724652924493908003473927982994108425425462839688231848927365831772007339956187056907272265017360790523818186998197101800430979213944204633641269631966425717013682493433797938195943695558567880040140551825080906978780916029863863071755653140271804761495593178406846386506107374097347217180058925953447451696163750720475393474171813047449378494750320776450638722722953676196910932699320125552826230524551901103919125006784551416010262222359328652226911139333004700864848188545614788653701607588072479487107819456057857192780292374748527841644224584193469345159714411609760289946720626476725992822230806160312034496614890133677466981708155848320766847968996145857343335021966123347884801368819367160172214872126203180513361888619497554086685730156311867098729280168081499043739114620620156822715731290881365604865216365264948312494860226594406360536134905924146901348116800500974319596884098024171677373708137658615077218148525120136287748600603937030181709983371086602663173958850682358775933402816825550215283732541964502021493414304685034262674067493882215481983065423923754758840948993316006926797822338668625211080456475122125511062084698199677611652249733143462403450883789553456310081442360398377756439153919041872528243673394343774679067689517370006243792809072056243012052964708533217946776444940102047024644338997803262907671769286361555484370053935502851305063570405387111806576252006645080952064760528033637166038487420272684329168486066371615779024434751202339946880254527418743537697035644578783213553627422689601510074528189444923200527706095785249028871209438935471645243473161240752306415856548353544892524806761930940388490938213989273456748593505507765448551207582720712788791122696403972385253888778782381015599525931124182798131882409601212712260157288083917289639801802551532424082579851038082870705858647164313096027345014140825786939032743056309969860950717670369288033775080512320025125856675831450181966566144278455677828743738074917985394658022848343898614766937277879538770436703808082044013513774408976790359505048237727541454112347465392965350095112558261043699797607024236882420638137537665942052733821174450091401473615877475408317962279633112855993045211281825326313515236319416119228000431838626511042253873504699802141955669189148653355776206983329767447473457346061048897407186133806787680574267589964019580325655450619619310914034831489038443629235225308902676167010631686397689998081262859538270421872476856902490394452615070134619586169122935152229823505583139907730458709701627347790403840150288765725552368261229172626980040532845314300606325744226572737151205946817989744220183710869090549000216558386410106803743593893940897529795404166023057038663924376238513305471729245425429128563851044717869657975687398712251646111575064945412431761221644366516644064675451045802100850260213324999465626195513836314614198809293015016759310964461588085515056557953339461103478931855396673776626351996711056505146339119715780360688602913386421607219521580376166045735778474097639637005096490163985881375628588521446484318405065905649297457532340951309979985223816479142504700506304688481921550220223920672304338147415161452927330048603872136963196187333236326512208874581298630766805396634553799745381296485980307727299183842985333241168817643564192102678708371172161227501138949872377413447363130893559318205983294195682795035947913448105121497181755790188306902876971778583745315119755567945570267961769338186297234966092130671017137472890589911069389764134803002233055500421135836917392236884130913806696627251514204191632428644166118885098031515748554581090212606330432062694858108092054804541574096957831323406527447636952488221046531489623174849358575954685413401142131072887121137497738804944696033092357722229060989456730311523187645942219855860247402951797599168475467047775475868587431538682519829652949616129011450372232340339228120373531137263413452791885420814069408568413668697241391717857545048115779707007054341967961288886605619805189496826746840629446588981957583918690703402236834125653701791460930483105361334810936229982337469242838223334612541088783478764267948357544063362435313808376142911774971249908260275441667421008555625123631872230948964014653726267714466472121393317687156120107164674832221157605286624734176572099124700034849965486088747589781974284342679324875400135300887998975981133362194582180918488253564575369852110664045906344661839070442049013228208268718774606492137995944768558703925936391494022351846131318245407550793908511142698227332597782139365412883438460906318597892990067441861474015433780683075227699568130626566614889258444659122212209400836227010206979462799337007062125826227223081687241447787425237210753097928159237978904184855510523060637713208995855966808947221851819164538638929853677905220580234270562661369781131640509688023279410650972139801838760910070991188299476421142320503662899560533312671629825798654280928969077308080434552017156767013114772874371405533283459276753329976304883259658797984507407375438850839451251268423649238939159739835011001428496785123918862851178958036231440634960258678579885841085971285801369171352007510073828983339825851588560683671144803758304642480226643589178069963460233102580738188564678658321341479095053518412037432827031626228165273054409589671626562437106529911867266978045618206538360171618591219463950049611633555765428180631037905497481283209709805418757736858229415567975332025844252318546081269328858620213417187029964495403952450358386702208032390893230582456669544991225586924625025727591113526033580161967765409418150556605839088769878293054376293366447072131491118256605111568764905217844889861696697486508448333422653283521846505542260164989953069128506653476614001177175802872175723797595485052034602104005790912046613169438494044434752830258949692779055449509835741606102725435996746781992460723426668255236273805449971023525947733344004211959181922096493563372158978944639311468524171882146821380902930491031250678383743903353378885664211000246036471855429941824958531467987370866229230104609000541379196297998938123678526395311759897667419730852688902811788700000355748168355467871433164443973822139461792658398928468424808090585082333337582763181236122515992860219360543229602426570623314382285297148989571123074109713511863245384269623746034354123313544566133398109990176543926912497198499097704523871513378885840683865101675707627863356868659733911418486926381416658453667057100449697494873644222195744880836765694726244146280152088716536049175321459803398000158974328099501724396117055081723601547482580896603529863935883995881030696631569587047417840562754636742195012247380827152746319537291288220594062887235788276915791647129879863113159854796175883706117646830682276099012589193540599757977280059682934013567254104251726899423160407996141672405724732396270816453481217142959187955151092264356995889931241852082765035291551871168218035199221528812301311460599327388212548041849786263792599563225728158534104275601792680624377566484746883121223960125405743891889054499415430528061118308995426585922233907373806781339449355850359794830135941320665080841578398812960018833427063425294805724450691403254773941016898031290002008163587824517443804847744760109981944612203161846315475558124383434300083814165162407515828302174928165158742544340009944669928848562502508891971042045324965473564084653562449259188129348668444738807558083419415527044439026337693784969487127784508485205709142812435410874888055338953062626196574468750034577823545054186798110247288572017216797232042194621820945981650280226347623560712072487784485049645978220594912962313632024365226260942311013025041098738940625064296125309956697446093316482882405245979040125917300617512010022808519223835638114090925784343674426377606344945546918373997011533411981919871274726755183171123681996851596980682547230609031860207336672081757073181144928070232403060135303628233503842804862373343918537397921893418474219018280984729275653809784606289973364496831306503589980846398821482607927496453725430096700031578581293336901593029996048494631995162311235043197109639772002466905171163245642869111234307342901004493292108311826204706341713242709912726620909703797453683589611181720262995712994265262334445388324798707351435490953209111065143489175486888878292955321532983727077380228007804745322690715246485294774766650812029330772390253401365384848351806819119713300992425574267054140401733485098683644839032705028650599070860499963812824861162392010060849366110435119524056404719315982641340537041199413523123516411070796543434350609844214589318475262765164478906433165049213246102225165387623774717194222273005770997999940507865892402153494469375165888603702962669760254714639650176993194203164629498004917237038393720335449182065446884606039969228309417389854960548964328293331391723111648527638251316490210774469420345954669475000467559934404521498931898276508035524631888066840894194781711302744452839900260414769330105955564417089760582466234670656272817936718969272441036145212176411174085321042445085516803104648661044625239770670294830163651847804804625293768341801331757413626479923513621789358975181505994960820381779378449813271733233025717607208643986201888239492850790668966906003295734731066064215429008866176029204380554193325517350957885748555553462522307718014781332542388970329945715872302973990551284055605663030726902784753825529668999656613131916297314054759722093208113380892687931743698448578633665913126448057405087294848380473553663573472096043706781961428364687377895803515522043054652986858695377238046706291285654732661019830343271996512874688579565643210184494773138728470803732802167697414522547311933101878353031101687698002690501164707748627074071129540098093385528872619440548687977856025675984339141908350729481165698570189256526421203161682137833368426614441403853117827777773262814029165952154954686950493641571608988361638079897496629934679360689825545499751855332127412870598237584580652542687714510428806102788815371392546580206689981072983454071116472259412362566880171601044244805057369599646356884412172719274175778164635744593793088790935093893148160867647461998860870569752173982215397175658939478975618164351590175107270793147378803192766864787636835311239002710884530852995498211743778239007108985618560542097728549448370872749033779013481867061819467169441139578704246528986268235939063734920690545671156502748917890322261168639589464518485295689999065118510632698217886954541105470531436816627396238443433736190630471638729081298176662480115551014059158610159433850795566066249056049271325930145300845444363990804214017450802523094349288637813614768777842143919583484976159234723493062582337520904031285276543547180889698031027385976009953892852858367095577099495583529932777928728532649412522970177218706178489815450612684715249972046364153227862902742291771322976088992096400030930446682777250325957549720533834788175777585273835268101283498800733651517814864528414775169625260241990849793945614110910236474216268948186649505251624550274497972030456430533119515524582514454064761162217203486534924356630623663714346360719003380766650930728152530358171740475031896389338403193595003207514035456265104543379524624847608580267273778960314434592483164630133608105275695314324813250467215594208851966214760788340552447239629380746210697676374912914513550917332984806251993933713990133646443913586899019387150583084851667532892065101594794366961608390000290232989667159818455691413663785586909218452024280962190451124317987919669499007310492288112656050668298021151052889312841247591749783819639395018951058017774727595111646223164821061239718029880896649654335729108381667725031654116491682985144888998941218694713737766471063549719863085610222707831460954986449772834258319550937177051553903278220626308304281771762960676797315775833340475338311778254125043688190327609200387701157274262567023880822189971644997431083158677855047433172769652850635260153964740286874473289150743696489667455366689444621659462788842278287911549805230859297657377815657906272129324157248857383830702032414947267737385157964978522855680457116079393480722256015713124595582473380734698870480921755682641475099316587453683910675516293303410476520726520770935356441639264011575163697521111411250685372661246890466909021418890878643323285390438621342439290500242676588750965383645420622748606204139484174416720536568726375463612981712690482343253852248819701564440722541982759139737615689329931156670617601515029708936006714315898928923892352321165470402809668224600567580177264631069974533342217089240394366563972205608915963536440512625812059147656052734436831987459810748402964066128685991922849168867457724545900516346969862971740303620187652113782256070069540850590350129664511918797894747014048138134404056011178781353071175408805350639115808962067584426295236846972966073910284421583698033020646235211934861816305343228388138704672704207969635615969519104819049526845990990508656473949125433435906451630571001563308892895210165442988809528953415484291254388581387384113841618631989681450870340251615819837155399736640215137967789885781661335494737533917478783034908331955935623989911823982433329131297205031494164057962091806944753087457949628351748212973170320269678272843486311616311275295577783921239392005061136343264755817810003762041554622686865714591774982322049462988012811206145411183565148228461775699514422067064091581293751825870236558539232248569008765598479349882769757424840303790372602743292472260006976510837335453613889170106841132605203394147955641641520294029117398458870509468625723687288495871779341495623518324657593519154035779614873230996872748742263226664108221940312668754230117878666768579435429894281778346526539476434306069882636156860905366951074485659489876700993356262570489503774786807009663726459786776295559890748640912756231729529130322551596610036521768994653970785742912433218378050670448104252486996808374113894386874658310768510807983739040633227613829046195358867200142767775833610500274944174740142742192477267951265646769584826392342376179612546145964766237451658059922129737838072575455498271607354775241292565169888067126167715339875621665520231901355735268572276540320982829364732409333234788717960004376141157629241218408878795670164863753282699865900780031086934009283424187082506462033608957002221493787447848258532710397397285421375335290511497060475114546785962766242609805471324483306798228998972047728088719195307957754228133685095407014668738683609092534661430641912331232011070380861950962383284374620728288881167608614973753795894377846217649596323791020219594520105989274507760926966766672867154257600159352664070420477531019306497425458770106236603013233555709620100463918184775230480809900201637770019460199958659648803555427263086141686830403311328476463321827640888080122838399292859964223269700641750128275047199983361525821137307675105878610133200720957035146152736271541506169429112233988333520126175147556729624901133271981274895684161377794920746098398456004929998301516985734145676982033953519945655276724771613296981983167614054200270778003741441616175678066064620696103420056332976862397633461976014536118739220353472488695810073495187233378155105917199164379217734688981700741989931342797463474623882042420989399961353393334016274894423388002738616783498821359568569320349417881431447822737065694874137295186708728967353883015369790649281496499747831862567220574986429786634908477298466945812028625298991926439558349782183013030629661233171389796370794312285553282356973096001341078953259249927227214189179005603514888318653902714034441343912091289614136153077826128368117634818519916223956752011375414001782368633023775256187383354660463540233094351888485588194292687347640459655547031667253849877612317822997593951792741942619262804282982417074443154950728824739413419632568542063656100053279584942866236541104405728596129655024918136540389612699550311126772203281949428630169531573041237537788978625873587332283516486882776951578194158017094203995443882576111765364951379653137923201281148735305917349589194550727440762343405149453728503600684021267848581243942337527915701161065882104326537838295382514234117710127811757011260493427691258714008363872467527673989010572863636847676632645960886485411205504575260414162852688107894797393915062627810662610518387107793027086621841079828366569646912010525669903198421342124432122291553517468222019297944187393024337503429677826656632171085625514180163192228885631217180283621455699513121261749859043041423430748602032901149692138410177819945065590653930341906507087325232001134335736176583786976874604444435812458399798346045871955574518162261649825090734585290426638118634555048402915720401885516615365983480749729267593027439225508276136717661639100739604389712255207894760540842080676882023649133918801153659133861721719574674342753434468915857087937552903245080681131040467376800045272475276351524681622735438535964006012146011434361999265244631151798644225531389446391845534382497774452133779160263836756819806101168922094627315459236030711931646200957905918465401998728541814483736641218463075739964801879557410006362952287976200250015366886672087414236489175230837252141404969924288284935959573468635301014183275522064861675059721750751522551932835496812769903378644933434156349840451054046229723013117923894922643744395321401520790278544985371447901174813524095160483832554090088143580529562377073191419093745040169335864511468864345856858855493368958039827410619618344995781447458530320177106058486435633991263693527892241221027570045068878077818882100336361073529081079600108158126438548819530916827312868519708009890991227466902020093420915723893471409339363506972444181514283443928267626056500885758632009704947567955975073080205056285688085669034353910034002568359589475491762257398784976681906452030203062290767805037563197569767378915844357512529753620458684824376324351075144918944420793570865137170640271661727151999426405685887970413464003447952175099626527482814058672882080970703986449309881250928190871467062824841185603590093145327629632712859196082872953627554063127755276069516731719041443593912993969452582543507586235482283772779687361185546424653898020560050683512878483278283393761814457477812555681950463633133087112656519570376102226333873257268492925763890776482029440365631019429902634730728129876309917238940071122283185642571069975955935472236961291326246177661419822507931636944343404104676259459612919534955852950266812343206509165198960801502680732472308924622542817984501913028338327589286801474399448780839466881826599006567113524741467999242869482024610070150551789778391780014641151557485792594861489193676111206196629712631281950517949604860094512835627758325291295880157177218681357774294924830741918547179393481825967644252381450930617564250200929075508466877507337822106488211146337743747802737131240911739020411765696500933625263567205058936149460757750405335419092338643629770549973642550641579610258140730487668597983237799766088574888986909143547286481010950989878547522523764992059398105136453802020423804671973860409648181998244020805863439432610712636247967315288252253401780807978147462454407322360046330527949474490448630560046248605074710209953343617605468030252944938575681595898284112674189189086076099924804222681790923697381336177529595573013800459461204821041279439040743554799268425343689347384483747822153236090456115601195836672637152011834973623382809768203575794682842243505737886724051161739655455754501374337017898344481533880684382760205017228817003826307963482893768309413915189006224447506273752962895838480504009152948068070299661889829611433580421715070219649120004452298356417754138936371819056574023819558244559169237334238811016084176315576921686573984205607369126616319182583169396404105621950137657878891830351331421912815008706519196226198920903341684015812069918802397386955264851679345682946896561790009770503407266569064156789685472433214583844000252623317611535185934682693235378498478619691916999583288502301467584490101632114488791423352057816959362656917421778920855254311507334284523796278641579636546930244719369758424859663094679527180640799207824329522983036944682710532651250521811978104586545735069569915513092885582604317192852576518869772069035291891127137030728960046829323858706596042869575984903036090792560149716947047574105089793403502027189623211985631808876664799265987590650574806154313905819978628131714044580872568844780318726599964597450009977448949686744437251307171191848748897029883444133013730906884067746400627037343724144194575059845432476500281165379107361622498605992220111257803212579883319147053707646722595669099400255658344604265340917500729648859276591968897973198232541984750130788218740748993554127664204253018736928454869972901228793627273037510645205339662120720095280212175547305182140398409908903073325678684503777032616232230797287181157963081393423820264068517472664900160038665576078442167809566224491728794219990211529868003489727203839563109230707564871716703162462731688235292163166069278318092364709028678625092931584834000411878838154255395995353584926116553402536582042386727182303101270025579820019567064792180693438098858224593847624594237894072560070362480561096087382114772298802697332172533653115491191891639774228826046479771650082343822019447121233344869179142078066103334353830116163568360693799688729520175116845987115177119767507931455919351561830549753338680193586897565526965700922043911361633867738103473116996131458713496523251254758259482680736360617194638034478337146006008878128868596264756641293443747626514253699259379574240897974665081748942770687778315152668835537437126471903136875641051280637883848510397633918430205339861007101914375452502788947567472272239293414514679007205823740524348038487784662723237540901929417719254647982764495975660224775393530841207428487933517259756737150105358926620238963546416124174652241086534337151624718144877940109907068232851498917625127533492544082254028599529129304169209442060578868184406612539072000545510490841598013529864931002862841425358661716021694006324337760404561613145275021924195681901469110632963990540748018491431149239779722513947181927166967179629923903610945457817191933182112942811773912354955558728999918458236126972694164187805082412182964768924039978070546280205397840660462519659673543125861994623356203615864750203921904032856808430405447240726891324189380058606932355884328851045208854510260820189522763208843498638778316136160872627792950575972577189827511448853681573835663802312220521326138942895453591618681981306621627699051690327580499135737066682843077062053498397125058342532840530847102096852093222332975092884153020295503394782245331923508417944303845513676950092282056939419732428781160932475946628371452210610657482023097434228314360686346803653700843778257507360156235067263506197477896749929488144217063177831332913009855372946706092021424295561103166167039123206044072553843770898337116403111281590467892690926030883439601631527422212982416648023435216232716857131119982739235229663589509943126909695150694229574328047184799567540138603205673549870593904887664873292804348115623844046818064821018656733608439734365050511027140385956520030458372960659545530303884206095586083061852148184544680853889058814735385979855509422713318053912760266682711337315882683151665428910587470380767084033484185460063558874212273333005142291712716912933882180861967830915429960188924229487795432707524863260655131642484412992627304634475916995554689206475576686345525718148202736905068498728315092452120249797129875555608513560923691903959658467724792286697287734033009041018816577672217726574108373560059772336463951402572477478075452912558609255339153766770646702575497281840703952711713736417171290930710564996351066452909743116494913987307418554247557955603707315047403749963505109199494701093874486156190516669518383282029396188676891497461249505714434772209617912375135536593279068123974102693344265175636147843983984603257213388220703628451832625048891375053414722700228045391034736642824632108403113390573349516327597963778453337413049425469566712878233020593990766014243082479788771544672101236564831917212006255657555822474098497672662995681138076139483355524650905051101424635353778788120585426109347827083369539125332610756451728424347215735337788801810360774095862967187607747060296741093634326198768284987518127792751145825150611598578102865542360798661014115763167366853342265713025801652978927670415032559332520124438698772376544692545959029394840725255501308545442392048788303337765187975033394068994413013506360400401980025456283906467895872067043123090438581185825212296532831797944821011394124430078198297611494502614293557770353723860809799759594812859179264376762686878605220692805085377212440028992315659240088271415740577838533679443997035152434829899392431095885440069405849022790572200280931885856801408815539944539656149090002371894228748190615788031189376029843077437550598264068695114351351117036830022861420875323703472815578995246535612785342548287264751585935398863139756361775591009311339600295367814690175491664941107539709135054032129723319187840519098899544421045941835404550237946106421027911421157375138137199180749443934437216677498507735345183544390791955905767238319214811312443864158115219847808200284371595073738827575709971667972640000489302105323182557371001206751413295630634742794091567038255345946061847856863810373179562918883419043279192938483386209307197249395656641321078598075027158044824027435157096310984173761486816381694233952710274320985692730098532936510560638705022949507654893038489100484572033910683174741373954071994737300892038907413393215150457559134200263631189003464685483125636787164315944566382166964278799005938743847350801061281596125994648814719763291968434316113828291590724349936996046371109935706303664574801661915955117926981573627155362327677252992909455409284008665319241887705712520277636792280452688035424560002567270609344026219018739893723362515654311926288038499218461328914982304579126835519458988816676096069674019972045988421398348265050744801281543527785414863066955145873043469412701513854450931914215025652887906383617777267099692191772802042335736697170855190421544365013526952303163390094511409799988879050137598149336986903001178559243563826809569774062924621234106512608518962101184163301440426395182068340291563546525685760502068223622803072663761956527063021125118661130691213833313744451041836072349079909649098279314917959880443885418544170532503527377958859493199280168505695820041694065230899471096565467841773297461435995041249792934931342457944288996131504157333706608264494272811499182090905368129540707823002056758069419321310424710647624445201039395670034246158830648970975670190392836438765216975841820444519591274934193600399844214879352731799274032290835640185660687231962569193082244616157137772353897515953065050002275691878177339226751833120849519417897282687104814417791362639614284499850503790917041823044036220750657020573984116503501887194582211431362932843699499808834505566208210565869496945390463051307705254222593721664765909953050494020085824931339189922611035865349893926136969250540411689077893537938161001595715828121138695520187376146250897756946885434713352961770580565723188451874004555121518901528537269725739133771233709703038750852485129989356680944026211581294922768870145355926391101856167028945586846426932476533550127422486739877804350085565384610942952422299053332613036751612712969504439476532586885979604377113122162851448806129313762291665170708024312903063378665037026174997536775336525020709244491957636454108268405978281237154698022008373549958907815891176286948530830137738750192687714791897791388748215595025388068925547477232467245690825387191454684342131105462180958491957849098811047924064229668195745217327806694264773311183831022404686998137619864514280149994456075202450695170887622160432900378985382831721837902336075017934801252769358274111267844665990392367657433234360030854750099238667491351998489732741508148191106714940627241140901688017034990050109030917863968911480814362887656245654696557616851012746276557296146006368144123925770899599368687908171227823988224335147604740436646259235601234997544169693673065679979983377614155199911153301801071335495917283752475971113263719007154193677569126558950400994170769377535420405390117604965127594965999268619175067385500762944756732740266889550085051622004127679533472156773395475110549126266161758242822910300508510596595400010780962264269681773464371311940412531661547234243428201391345273104171953970934123456098340509795487865355909571198824426509250168603457176093617700155667503416164921340059857871087592550415106478996813170667356928209449866280119628294955967667391090290553463833938407945048953508912388151825051269384778403904047888802370848315148605058884925915009752214371914825214324950361888716557106444188625070975860599062071494261854718255950886872916072264559059228016775795715607036346650594788243543548204817933049807198602999708371617309359991407123811908495436850981431925243254533935143425425702235090861035286809418524670692634927679564848430529698192166590139687930790540554567117565540755304599128800282531286143448552201760251568473674369707292120233794407166717606612476444943493867117942372148464124729503454444021737908140166210211570438464369001887013036020291259781844775993945655635637587667559693313508670621260551507373386253470493069685283176317275805960535844425953478493769962332840806794491845005345993129131595989469062025700224095420949703117859184684755951864113631828384084429096431797597879128937453799195271660186339684483406139916321645430275870213685347169298935348041173217421839282329718653243049806313904337626750795441489640334108839482465302509158498644619342925017090414896082794642405569343986348509195224298729767588701743554846664366149054710736073740699624317133325019497094022384415468814713563900538889637114237608758597098218278089583696711975390163189297565510986657405491583560499356660145261846447238398343821513008368537253193367242736858864429305877415362372802735113025675288701574864355845120431463897021417543833144776783381203735396874333717643137792267439337644704151696023082596047825666763901137469412919302537301661242121693736286588798460248447843576234539747803146246234779003701115734518310835082621054860490798847918587365073414728764636422214019405152184102459130954669006012432236768810529571053165590244594387888292880519057446790954692370749639634289329726913943996262170853689370641566866394091102682719146938881297463023136710572561000033074775113693798599208823407769102147907230030171017394587380627376974953196930119034901283153627467012725471568813393115163666298583370318129561558189266777929121339413536635617117591079207172327986717769882996367528387718757812870741110313734716517165882631384675151365263639297058075600502325715107475984164206689492123731381703332572239470487568251797059843400387215228919724291337019351002431663135712623050731278847770840904913737514819706065817472386470023243707200591993127475804499486842303369798172379319686772453714749375589533054800938852452530153855944380444667867776273415907284949090497824339386262977508165579681682949999170510868842217079682933921524695058252091386211583319484981288100825360894121784437337564315053101791992328955598554410271275853118130001445892395967275802063991014449432692678951111865844835193342067685072319282513666500049557835364570748056684464549953138832944249811589724901907132349374468722678686530246107511451174496913474788794932402838109844074487664659646497884330835792046815641612423755125343991021752041756088039106546441236698450670440645475175023286555204932929291445745295813661907534889291199303397162603057856957603472336773605346281369993276998189002276517823216671729106663124891342378902374447173409928212048486979425264877144995976544712779325453328344959197654516418510122252546091914944230756483802920199922915539630886539703336565036868012809086025733022561726519772295599286819889206783282606486404143242595264244547075394720661920916566685048280559742456453208081645069592578950532562292245862595705680039199525425756505105321114716090249176091287563416730362596124417130038474139422065534846316793176173380781445084886926854863372097731869009881221859096427143487035290055099172004091406356701884630006861984297699307757370884872935075536395397863050278895248444760277311418740527471593369608103904384213565376028727052955852744325433925399358902713673862737255282636121639126124133611505478238027723445625525359568892219997787141567552093148995091794358502228321681658011901957696481118461799825462780754373865065487248312156693886797396521962077895515107354839998315657535844169753785118918164608618324824871274942538495944653156789449176061606933480929669292470658991804868475782129649171847105254549326886736500539457489547567660449979399722092314759708241875998534028149896683003688752811126796549849306777628596375787183422986700792789533410445383429216106082285399495420124834598510419631992568662752696402442378515984292352277988086522234328380889909335073418301659418292305800058372508919107219430441452997142883200144607695679568303233372477530621795835529747658295441132523160540693142269824929631812608294998176926399412941459751779692240701257538634073557179849357988827107997904218862057902485101449898594538593547676666395125837593816768656686791570958248490939091131913592291569977898331422102820598751988416384782478303291314904557591351639121256463845057016693727298658926418803985726469112692803061121049245566653975967519151047224149582740741171501605599733705997867531016160582889266240986005931877840760841194617749628764547192158033290358291083836077680806638264222593367106648359868259297310577666296916814096132738922493445181803840256169128681180613799412491131446002344828482328658401444498996777279920865746619791887508025007305800905303057079657601607171111864374744915008025489452857975957319748748139411075471545005072446038442202823107326647782173633570192262982991534368169141390800971365329150019919513247983474488570866565066115667952620380447448092736345591403170209369539282150563668540451624272629649423426694753869302189060300685629907711759253743131930318959277872895783669892841111581658306334859889887994534753586928124849391366783899800116577847137236161935637267370377741464012237122047556861070024830744897662021313374637763242470516761933694252622524950108277091707762574479909583800089835531875895666000303702754775806239535684083461692938727920869321543662781381768226383276533618433308848992685614160186346994340273112350023345527628665382620261900606512819763572077469451792193587775413035652492231085901716157108620029845596742618708370793342481426299154210978129667461700721030120774147646008940273496606826461705324337236721802632404225930691435306802773239237752206927944465430426300306080070448637843415932873552091410671115913009446216024175579960500828108704012278761862233600803353621081883531575518421682760795374073479133949894613416429189076652295808161900290921436934953097237283686241757622397379538237307230595222385479849600418736933464033209815057487552995755028953905093612345496792519792619609233157981773296525846689468750214383906118924739547062240036410038821829364290709732990563072633182224618132942076277881308145581046712376349701310379219783006999532526890394985936511113054724726284803389862304456550180790764957548271266841347127501190844415206384145716450376327976323876314007758523001110297444010237888933381803670159987165303203869582086260018348998052536987073202511146258822209203493442119572592456239543132072435796078912543631694729308421946930224666565603969338612927865141856573233095210634266647874667514369357159405644151128501693050460489133247161097404368668932499810448949078505410948042023746522891318628730362846971189937733541758823046192487474369374141998760838349595486662329774255863339436805857985438306290504350392120783482261526265977583680806636822950854307967488634065541177658388150145160568216532068651332326477181532111624837155348333061653632129989547793622185562041936380116727827868742545528769004260299193672621838206236172957252237442951021354430324609870681780302816678890948985710302910296948452934499131897035073693532009989275963039773891543314730884157702197820962772222660564929124963451305020201295603829647152797891713587621055012240460229956568354213830648126494029568147171772726428316507651672207145751914164876559307663371482867478890096442390882000100253966647934670423741069124068194620522223526026952876039070029804045644743180162015861057279305053462672212280645122115947740083027836470579671087770334428053550990639022575147608954173805238122703582691314065596189011749153737859618063169014793493321937617375896848291630100027580328515918488316417257491863156859428363047982917387673375005699003831145436109151286472933677829666326170680989856908052898882684102586242059667330555577265411469427316499896424347007490493094510914652434621879671761162578339246250287400759885891402851426051214448905852234488476660161480709874486620557185806352520276743908160596410208777967647645909040077847663747887554788291023117003420868009657928744629675063985775451941308774815123836540571182039894021500679526868698251868302400332788235787354805667369845754205330946028618048944037562811228666576554880429576266604046285990265752871713646879389654479157575441460772718636066877511202321400349960327092912883328599794465623970474618557460681111987656288307490054179578705622940673313669691864640216315577915816630939118943930199541289434034850259333697096113667265732887193748555968267063131399034081182790025983970917154447958423723110730220165870513230014484506931205322972512009348569218986188995744692365673677608579124564883419247691581325459086384525854130114217895484009765973470952014757817491776833553876344961114951009888792255911690104466780356189739201234016625313671507041581525504232002669112230863764578768437294758005740685441685938066690675882209593682456534434424023203430708221313795096545580391977946807106611698650512690495129511972777002218857397556942470470296446751997766845969502754681809348528123334601425520596834612593767694477412895571519641217746619493155342162889224672814207228476574236623688018830478016514197675284086612802739236031966777660329386055815215456767152128939494114212035746415893277629808771163774051105760472653575600830953132768215156187634637571883203036427047179399439221890433711108007829184034211656214370871749483729147469305742975709188167679877180547753064492537340096068445051591866183695868982830591245948511323954738607136333887648899903522505567833329578186866979659731459195903118351619765672162108047088966689608541925064970456539772449046035379106159675202708225917646806812411166883685456309436668777850118063356447980688807189470365273249375738512087065404770184172680114409644322581982914516719049164246651009410118215677377043550861749199528006910591872161867339459043041941542467481935452208197704081314128091844463245739050898516507562393600623199275704613218128567531462389854633178228166534065949559294760809627503983995028886628432586782057536421013452428375021097178516534209588697595904964090400774296291848086836686200370154513853106643756093831785234013764693048614397568487845416070145712854390639740044155433967665966459325619784689306734978244551912979813062622430258267129523566654081286637676193525020787729611372940379704825591864980845780872761943108587041915431466048854197384659340845652179376546436890190866444446144263632871900358594158468869414767715553572194899033181312915203533673591311324708533793511501200452739503950340216442177655400360309074829454864738863049825719865934345366099256548934572698753782652661227571329883017315374534110054113729799315133960715336546840380647032411271706619102330227138477261610723963165368538643211193343275431400276153863957486299124391903871643924286706720989826354482163515469433227063121139966240544425110169329240353987641831026850161187348461646512124984019670941137400476241542160146775605811066656227267215477130530890380741872209280021791200108601798157580239594164419359954172821488270133131967053497141465040766080864638115673665340042614523305371980796266748737523497628631737307134616069541296784871880223877163659712126244211525207352471926946380135142712443317406908705022141951844322497710447028710387594637676920673662161596422685443430306439726669856553510572131203345529903132172098350890373330001996369077270546461999546910532271479625886460305144593265455605014647580665018511409349315058979688947477713982609199746125728286882288729853661202899566907919439662053404689056494785701788672135359653802005284409887724387642300689820474810409382485072573395156236187997909091894294860825910705606390126276456463793203708971716120428040321571507090995873466138447404966321863712955399971095712490309924137068879265807946065102899283322457862761032707730732734836616476264557646194715245410494498550691352279035911598297946101516228234550234702649923016903539522817743922869646834099932918565065437063774881771781628293744956413947802510369747938289930809381366434700736859184676716684999386221114661633271761303934159698531836640381261798929432212804826135516040833800276410487057483643999232330374992167240065999061977924208096343280623650686424282953795340538431998959569081391943910457209430571750679594628174006122827121987302242382003925963633308632060001150088572787315404301938284481429474029554737059335024758991255469794232986806729750885052404306191772851751606499676995124212252990930234490476453268294465229277269974017355887981469328737447714660821446727220021038386129753065408839016198631517780471399029619655852834153156713306702534297704500814683416199505476080849153177745401356084035215661911832445288831548912361631646355322344357800839541196857256703315041891009628457842567715520413701283888923315679853652497110621630376849236777337937140778707908833229246425354030598387859374344031031632705055814176750363952925941419064098210224425288331978603940768447878949976624186238980702981257535123330554611257962981775879138233787943034696551050561425712227952459913554066311933394513241786998313997907003002311295471077984480208683879391546823925123818151099972347501416808272230579989060404422279120382386122990901217017558512941596962307600729644264787647576897132369826843308614884866408296517144451921279380770581658626275665442780675162574694950349053159160859557845656759934273365681896319855349665061493367227897564696236824022027333007445301020995362750904164393392822631182381055616891608553693722100567282232605195014172709398375621444903291392322583725237939179603193040217134558296885929472904294931352699663303386121777294951657949913962815563102047413203880717489622665444991158235301205759289847378296649110655372635140039556775253651212460593254973542271824694581407837574245684948517382230004762859080212020357285414256159251227626235763128374560848432114681799762349135703923878145607153882539059134785043118954801187874720090001448510629978579818030588604865236121977296273783548852889576179988030652760598976903808276244697961564270975492980437953172019102389485833753074311687417085263243279942324535711347933405387007692278886223145638968957817830889275398209373287945809713551317251487068397715507176188693559054456331036011002770755484164548123457435930373217914294665750023645807214256005448744190779430779481514844708216631039774882786568685270245937792778893765578629761520844401077572185001911631111760874902261340063317779055093943420389785770976784406228819021554483131759736755260745110447156469771069960087424412741247783087553145602954289509050560783504508075045003736116685599980669416070089749152000282204452795236179172431037205144144812295210858247831174179949392798681335387161381546849742161845666323598784797681012766846144541135511402012110891795360225213948402731590046400266128261926764360879832092695949969012619246543342944423760851931403060221766728696831654966406345691044779040276820623960660723993187011101733579723986668957530306955497063829730149827589970348509811583931397252947952766097128405350663342656050158346705229053955808887358158398639144088524809028739925462845639399787680542944026144204369987060120209210758758509088063778802640918672284289843785958071980394154441250733120153873663255394235370190189925046555076308868903338890031015714374402505181543323911036041265957534252451815066073880225684239741198562124930862057198603447169456604392666647676321321610758168908143163530724288665518767315693924261431979181002783069930226994201027199818024548578617520207607942004653734155254880270968207300715523476544521375648664803132833738232670390970752203116605170229754136140601230314802429337376143201164351060441663097173721253292391950471079045737790242789033391818670994298397736008069187415323609273805228835220500273784169723507124436382944179815292883333140445599449642493100099387517549545796730536550418214095344720315869058981228456496127950860184957439803016552785509238145975879800177290707599696326067283792161252057077081712067861960984337152853243941267266165152498265895093018061823829324701966733594142322476165029290264369741639694699157963562270596978236808884774904240972567965439973872855293719801536530269074694516109713403456032608440693721755578191073105438260727947580186259190301951744264580161237256150190842844315138665643443936180765909660760280075307970481353966206773771619188758456687564326373392060022479546976842303413635037033200584277666039467705669513631794774921627006091739966357432334373905368442778695137277002956592026673815621610998874208209128805358468613329640126820867066028729318473955852896447613389945591206795162678443253921414267874254092350516861181147006177713923058033297946265459757231232513095886448885226124258917287558896159485933836460543599397061053798240149278906270419581319130955235692553690996383210709715134441854930592397879941299329289449505414166777314884940918771438412258649995017732905213651819196339381846898963263684163570860744650627262204340239180673668968382030211912321107148958096327437313512407947010743487717077025718250434161790948500725213347050621835109097599452988794212669687060815335010782981925760058292889718978140541417588542202173003297284502412618926517732813466468753968695254095216237682258144614499376606611310563858279639248261615321347160294796939117318377131891730057934875277760688619053643435047505250446084824348075431424774977208972646712343025763578366781244829992254271215868569559820100812365261330829429826353122965287503973796386952890976458686279709013733560328210840218850764090948090436955173263938742544320790453920772358797790751032008495062918719507258800391409432806263725068708136168972739466236230581820457015925080534494480692189529974282872886118847193693595941061310999462963404044917007091659298728407603121392509582887496918254295357559622134950859529925440521293772531865281796052708285856559238079426536737550550235755734886765426255980582152169459225474576642495817384557192945080968238934580951175709031165969538293625470140761201546093151687821257641444999448663231282487701618318724116934291742495312216122458905621292528652247242891376113964010217319640397717037689234559316934760475366129093454644981694550438657497204889461574991959809675171412309886051575576888001201878200622632758334244054782402784494269903866845815033326391702827337382001206585454006404800598704246672337922324775100649050407920470435377841532346146694072823719971280384882094486372164856056847993157505975777844894112422629638724669450116606672264993033119386422878997669855034924140308830887926022901216136009592711412729675896545058905475202552839315951400983996965345492028304414054565136726318526851751271016775104856649310459147756461930591204445457072046064686856121115901760888089612692560306441631798809911715704052148570767301262204024581122309209904241792923245326529538555599005286782821256029360607111438450117656400778722515218704237285195882998123601166325819581572976433305401786945606375401917899115659468613458796189322854402740550146925488449309603021929283732874680779033191930425314593492132122796961620179351231344510414582923278464352894405810803504041960759649472654126714938647128786173880385887030018310070769623930457296302949209577797005545256915449056659857747215083509344888040071039490754944098114014127146745903804032113929981167166766751723524622286192625888013064608409237219917886525660836009679928941810069724524724025542263236870353865109886181679787030620088966012817094930444826584024040627613363094338173687759848879152437392807282227345389214229910816670622983486767014142472822829000772018979412834370938914903511048728213874347222387937610311149134349442594086677698031262627052087059466141516344877683317873692218610787282436591563757268575564427916278790477833941541685067883405787216023828079614907248935271425171891041421880390457168825671312840125044784365278765861066503455414131154993436573930197128312368792778065879630949315786959787221319054989298025194278465511199984888016554955648554091956372471417951013565761623934809663624924350027707401694723525297357203068066658915538496877669554085419630919010938281309552241721781833545708403074870152234752741084204949193929658213691109676381199915580139135814203574469459534085253784710132261550764985100127241137921335591317573181988571171846380009824352125486781927955320935924349646302257531622124262207236749872909123014888214426127892489968803374419459810422213158503485286863793843010786817281386532534001123109431281225998210388736327636512821171527191206605826422346527242249323411366379650673656030872935186773886034713922807076553307276779441060350566028078827927207817937053025077168008020047653263442290955738103730405541885149260152731045999027508113259761992566354221513014826086973014689469553550824997383238529158680267711568096474575377850971676083657091683885206697437430606795158037845791155964003263781986091795714726172869109301935682224343245501853655204579016056552606555251580761084982947072067471077286778962727766599106981374178776989510637624041152813312415437890915999899299413144274630919418598003688901626481761162062793181348102976923201498580553394301113275247512712318820871297138628833405899166918730033778225457528192159876478237821821243927434519718138953160633549794961392909007322180302736316366638849479146175527708346236770766601147108326896089268417024437221076644572424799922097480009645891775240893511273979286013506897271086664511252255390225010643561029320205158300554461269948344402974891269905954017844644020973697524736287819255712092585846010004667888592331797070640882798340066274808271106316032438785772344625962258683457056644593048570068691013797264842788229495310090779474005281269740106559803556957369024786453453201702357090539591844280829064901794344006518077950291905012140551433220168451791768730532130245340407288266981518811111444120671549522641430071051514296972909689968595460107049849043213725775718078036148557814315508893501083243808083810435091554387181765298127457059934273212266665968625999326155568563974918786530731499523633022149556407264079258475698300290148744907528690045032659478500142177633015838666657294371198385617544068419691171778248606539095973915655061496888343521007508788028803015264551628129644398726635666690563098167995188946276934026538044038346285990112250535939685470717624658567674730113773695784599509732513451274324049962802501433662356987331367016832575608877208868790167712438806062361799859228928147852614322135715380958693416900133363518741421297663611869434718299644170928181452665127019976369820311653310727864573993712808342787220071647891286385620280953579032682872721026887604457852660489003782259151025729666915223987099192061823240036933005695628541072589741871593302751212992164523816362292568846623791720635131152636465721566910469923613852024346254460556476883985419127921023302590622990228991028107959733574869994137749450628335459640614312975990511423914840539301291672079819126882569522834616283766578988496783536102040342138013558852770862241034156312281190666448027091482347610474994918299011553760745408560512538308615350146697511596398691189693958596600646757887899326720364781529549271919660240020912053770891351379558564830881307345082198307114641979396257355259114371070093509821508509365784351983423526798816894057817308642116274359914822233901093288440654725848018675416738298003548367727251229413605416439920039807231818605804603103364453018287615185623381963748744828676296216084950066154554083114117606761579402842708590689017898644409895429167390565848774695122485754812005245320814870138794285142831147389430316223596849346725250233447898448726651725109491480939930327054195384792467475145636587765695612119272208145383503185663387580945561458976441974112713713736020181207341662794803115866268643527119679178635530167783244924057369213001491051274468771685476338103542471276347074206858138195252599062292121534797691993975983377865344073949704243035281190345635499908110229131859647319900393133725444122399335782248658645568000001572675560786146638147230126381914204321177174886079038937207048909262074230927208396278569534776209479944099105656304373149572784425916104935340861623287079882965289237806389810707845955444127012254033787880350890495023402340034407590704113306026330530593346521765972035098700735477119232096069965663130094108703212538078281993339997413194788735751379620827374843458514870241386146872006882902892373396156838143153783668358019031684492709528887563125532256851290394499382988262576119664578948574602809788504853536405973703314101822012259164084333782427161896476652457523160152431039509798237410755218322422667380252419384552298991428705151882592010993731300471564548590511471404295817419793330176721712723178255571032733723315718209564286125510665165969261802980617660772556957887252874349254015242353207881119708092759037364730038467326562954472479541308510383026499289624313323703296710266828320021491002498095761593891275929869256143337350576562997460563471261665893226816413632846984339719034025450373692840899054837084899015117963051160040412849656486493704282220559299196339970141984215850231274042098326017163999050532872902035481515315203647724794420552170737141124852187267972839669608029938567007152782224199180419367643438241985410821350974827018841464612642125553098925365574006384593190334053877697288786349699568835658807405117538308417205148796355598250914418246773919927198888012375838917635511407067865653563938121797685555982216927058717670796926668304512914644895049722433304201549006024885188549054758055059104012483190369764208538808303485639284578132691838692891633966198544864297108668801563048499649085703536421237238358770400243884796892689383412133315615626694937384867478221234066401173241256228413293245181784839217431622823963216495874720904512981225625310145841938022012374645724826179170860401276174992866656349231000740130818990032824407728624218301980377939488563327698379433196702393494244102358382195755931939610677541335292396478395566175134467040323595769342093629253132447371764047506611727461807579897258325409460093479308452680131128272959572566034473263528756209390586484686139851283685043221078045165635501621150312829092341570104633857274536021150667968366802941601683370423309504307239422981762164276279401454671408200487224145238247118698648785851307771162430016754810588582796656787241400578531546525420690092934965117043566261242952552667009315146177146062383871252754437730420201315301706176111926136556353278037145981316068970489835890476124240028689643098414436859682045450216893023580138643014823323931359709510503921026298234567306102751986265649060959626449618139305109668509961145996954462393792397575380068420185195767946680596890639189889152260498296424960949472049898536757965467936214240893142932832570256287846284068149040735072248698361656795845270863471835052770978222978937144888877232245389658201417289233794912008671185883875968755697880308200956686852451659950507125350289643368043792752427607747866430072872427116593922248901233399899729077623771393871316020548297457467773952123855541777260122075609993578780635275794387096348077396743841479042918102222055790289932089104394218555718767966728331053769623048850133127737666577074049054129313866148402256173500927197282936750253074739645564747767550202461369533546980831035334333255050351921265129402376336495519716591968634995004123167561352885937455796652253988708494403767060984581146986191840618292683666360513887699202264725092007002693971018413275602844796337161861665367380475301589684709588896094898883210020515008744604706712836575384100778329734712777308210932917962908422540259550813153350658249802676856585188213578526672491514284302175206771382559634516903804917379812752365187076499853707642303634982545701049818759731518363721651225329048151549777625910172401321027538503430095118591501202667837448735940251242484789355387586516369483602174108501779163826289093910843645746741183530346245828139758635641517161998768630516993453474300448059668693901205969499019124471500810990408506862562432105312392580598157415822259228456933665621628089271040818043023780661877584813759128642574200199501330125678824258805928308691982182754160551253777125653307644708349017002945351075240458547453457830386241925948497410517189740365668370414521527795639435711760376361819588333082746890880446341261211521576443183848502714827130306026794418542581371752587783961705528181355908248880901861903294537707981148854887371961026220892909641957436533624737588232770387684734830726176028313405646698587784718644787810319108125183540632882317414124626490294264313574805417251837475816010044900770314092420844036279389354218450391196532669801297769958706200226187360568108082867055302831076247833107679486483318938115133735983767673892397235240839635164839686881831781654945964754225828196409234732175561909169659739421577539961224068801940281506211682853076239003521943307524217050587260007464200330411785092215039306629565002460893629187355086884139945056850918393596030537190572559635516945471440484167633548664869022954758114103507073729178638223541888751051426243869049106712388425138642193174220192383374850126659394364942342546596833455171629563857267243878066691648408379803880787445239687442436509402704828972790217622650068613236835414361387655398220137074859511402878045213135798350374113828845772195408318710481433623024445474223841881043170459838368281347906501052653234761887422644098495692632960030922923604741173810720986724052081472416681611817326368063659529332892573427265848247511034164425538906645727908738565287611842271589884425582662296610459719142839852467482014087516244878409681194823073274665258028893925527855273918757334702468651577382622070074958043511430730421705106480891374516890206152871750703649309716633781320909498208783318753791699458287355843240088309116444972427283600200128693012445942408225375389094438185824532066889382737219800547621166356608307220952355954564663251283653083814853278761919858146426375585817063664765111021322718175163512841024921330176183211713442808445390143322316972300394254823961102416313662256645843675733960332919860116858904946717777939310179915991823087544602028050392241097733055992785004568232159715434638528443874366105272156518233586119315305678635875347557242584009651878589480627502194986465805394878830158267503046222141799717000484872898793582845593892862984056119346470157410974803124836037294115720318229378028384382264088842473505605931658538635980420658002404839525180036300016060769943566977710600556319856296805499158127682758444118716366781983819351968647059047250569877878676540485733652303515473341869163581037490574940632850034610662090478083002634104193087335423353952462277506504160016707540089463220547590960866637037860052666455261866566635079571128818436134475230906730933891959379506621905193169563110815484201464574351425193384714974752323903288597945037703378429510364993424680962125755218377903622332865101552172538204270855219951158018872471297740623496809386146613141196835477042279799242740474319162273293750259410540423666880314482231076623853755719960834108216611374797716229602904192630664645060534742991986784538703022500625715526087540719384091574349958222061176646897067894493827182553728866814122664829804839065323275333888198613968537755169263626869237429779080935096448668694041171615686988621668847637848943041345165044120210458068289043827821378723501751088820326222135382208522338043588532538230433643056099701543444821312029878094918091927943657308881660756282321380985330743999543472553896278642186355556039036590095570628598186641195895543265384518734525270586714972676913915257784052968280899355234659723538762619096576599817197657994275444663604823946619988692366266273955675379134617943107133189125652106250104459467599588081654137902336090340481232036481798250555453973845220140052714109573659668142345945289414566609298762905687059457318368004737020173989654528610388194590302567135837670529251691013150139404611046922412888650447125204608738734706962864379088112172347667932726357068349097798186638920289446566187423702290089158046367674983764292386043189931512889790690836757215956904430998517776009530224151648144873583902498352962533481056284057967897602148042785722270157005620033060239450955591544332780824110264666055137820695006759228264842679565937743793996063016301506403921489490925704849678417471065259947560581287462353955845312696612867598800435493216065768202313382936782394370719749101977554577412744830257900117042153868220040105851655651557270121688352230202416512935572171179766723453317263259708981367301765588020583916638865824244715749577338180297398960538491513423801262588494459765756635708781478800043589795627430508203186304418198544279263661509762742692370327232170800641729822708567536682365499440173507373102245724204516431684670933970637313280403289430167662742717484309841037548391142414593034813999950382357729777027565997684632732463356950683611312116514161620866856576820068136823968459472523344764098584733873903616292513320374249163416257728046928512811746133733191458639718019313929707436860839003393613352798299449487875896896229442895009311007108142696243600237120922982687241200153515017801364253438015062924108035499457097950249947751030786289595161819826476574551426289955900786283643628563422488517578859845712176318165469906111274014513961405562901934483107951050618190172940520818434053684395197841829741641647875375919107386346727436763429142315754262771475159291904341737665494344703668472429404230524881575675259106266939887458988307831323847316518426371582040240484923660892751449468152675891499602136495550070638172861677574044089374716335084140757633357113430043297317232732103724427599862803151749124500509550022857345803247592882911414073002515858813484677229237703924147536829199064003565245224550494217584643655357884251838011738663658851678879372617125243503698936205443511890877940817951813384261156855788170122924129524387035608881558350227930261692998828482689428234653896290676990625814030682113768799934489171258270537198108421719832502544208354334544004059608039708534218080465181489146601465204320642361876406407368952204330731644352774498632723686453538907166010980869888805459360017784441561535470194385450646165425554450690415161421759867549495962514110223004218902292049425089527478334244960504111436515692673057257510549101852295623558009680766845687416119398082526784572037607081396062559256653571367986506268763756492430376824847385304276456506388719613864566592126067643934482236511906476036947637349521370201100223179198188803398274163045955434621580296528500527460736007404030870241885937947332464157370006608020843606106602717985965376226808133155643845380986176293310021462894959803762111845961348946462638970744637691268352672029195322467524157041276676702728181443561321140425613063182621667307071824209739965404510036717081694849854486914065631240130270968091419860502450224653177126746996533418711062841026268085962384363386062656852023963039282413934764326367646643535609572742711185564607284507672374128078111586362768200160911237622910845052472315416868622090577738902719141537391328096681520348483502669848805622838766335285785658048065306005761955498314224222602366169181596916010371763550764931589758494404894620945505653123352357798643760576862798179291655793659954931613450901282616203261333518010025833663715348413973176824878542190938652348447654527884575771443174410834862880103475573938064424554569417783228071040817028396420580885852307674988213725172064528656508635134371513185509090712424741518986987245222432207589977679356360007858210297202639178771229534331400558520348255639676973324744910486342056271554847343437347260732499415833048947516514669497043595623711294496069829222027536450785069578376483820691442574984072314385734667215276461648081076454927490932164667656490255443749930333611802483926200272871549464298550069133078064238412139479533608798942222950323000838976774192295366798148280576614610450217141587099422203864737156697497915509581596359507195421329020910771609737040762915622967092761196079142140619050315538968723035611181279510825473006051614073179294433787362114803260710123793715273236268324953314062717010823829844280363785648481461681889080006803888815731694062216273862810483510313838746751304522344811373907437379995817957838942484695679078597714150389805359567411995483027379317307048263692087479266627077646666817263572929817426208971657808879472126102101767416055222003268520832361612831444133394870759274052856264694251791556248364359395917993815269992155311646890316864742992794658899918639729728019066642896755026732441556120684626261141144608469157163672120674978837468231876688831944076358742943228831298255651867700742672683213344005819504018170292694008192201254936029062803918061456795648860088405861266016098919530314341894906612797996365633957447305560268923468808921883094254616747969243974924278219536138991981782560458149221191301276159767859927659075352255299513460057909298539316374874981293085181328279717193018165241364364300527021632129934323376706494865409315689366509047151443260618818890670326103537232189189828329610452552316495864203784300605130004025585853521460779005367479446015619252733848255644126430721523761512062552495916670340483450962778377141429020432901047253104453438241696914092444754952185407304445827755303037949597927526809063074208445285965150343975590780086730124272573506069016809916656151016700296950123899820671699903729323490449936946928392595630039570623421914015434649210429590046991882749074180727640317716498763739868840967969508070200387745559916121566657458357389243388663985743841956119542178666158423242206303877221489401243785331053036075932243919476938938760792102609292755204716530900952724106743945523102392614367575648171025956819378752606632754792590726889452155404643503310839225101035647185645388045584929969692504806613449047287030705281153874546086511739749962824566469137518026807960245534447753524741462624551137988089723730083664138136239922060825193815476862948646676427549808990250779950149929894374845491140743008121198646697739851565695256574217349230549659208512669573286441921305721864024960161804529381523377520490122543505631258560727335723961368622079862626045352735556691127478303626151219325061224767688520345720565213168095766547774615620190525485444585723103557565503019958938288093060492184498376536161534164278369365997765945063922700749628900348506961220767357278603011442558333982771798838749816390930743585633689201717779941892838241394967552009035808486444356654427393727208270772632009764667646046383239498347652689873651411273420630240000556061123766598588664188340223115435773077737882473762424447945042333827112838784026254823228662372448948374275678561682209337436460041870780035293959404485724202097948369537158194650534926140306019065197715013523074097423926395108070720740621560019268249729448911701784962548442920369714432176795489449704454826455623408777265908819547310050318584749083479383066002458806429663353781742338875668741901795037903636598818870230309637058288722645702202881805329119756738909794882295286654397612973680445313767371065923344061824066080275399512447422624091220198580299081061851382483752066350931296834100828884444525175351741863318939060271480530743833051444390851335465763357600554575829706008685324250945540769717226017549325549413676070560613173836134724296723471573191054233820840382597622689630505998800834902059194866593942288818301990366342539177846684734340142625471280637328798946055215802648907283506780913426765360154707830055046122461049038281976842925483316654514700098338116211185230540537869007965236992175444708984848173645409885706808725494140842213693793472930644729341278273686778742540949195715354544336461365121685215778818849263478432622053651357755510913058757715083571402016123372533817237670183660386666366849105445058904779074661215369472398834697513953117117579375813330366253931036243545644631822361652426567027286020102946293030759350992709331134024943736619294956603307727608350966790758249102947832185135174911017357433852007051935201717602433480472455735388162209776716937171814623730559580810222291933324537712438667132456106085082792805365509469984715322381719962096287614143958219541115396152954858219666862786566853102009976440142963210643768937987095554025268528899729296323376378350929873640355724679249680179213876174458221742165688829118310116056112784148979009710544179486326631357112143391893594297650586322482345913062530842347760732611829751300608554494659340535727170946051875739601438397314496683592390257115813463828352503516728941393748596911150534650101371992887299496222641468156398187151139200806751615934643080617353785987580566607214725621525050653553573756649714163549897614041639376969671542438565554482431854649298576958231254925716154314591507986413051249312374801167498014406572852309414134674307005699315453132949354121927928667663787369116398879510734914832720738235029626583152663054652877995912542583176409037738077470648942946636948517384757461108701036216039408218277840806650852406888130172999835322663861428287679960013609887799027129852487414723224371629609844250478887290159972568277618202959850230656609499665569401959408423968858332159511013807925444048414855336842546838378598032101493717457863550450454975800350534777851339300878167554127217440662122025720264462602184703647915647126277975075490835173898289265318947090894947741767747533474844233262573385491202924444515313248684873616019577579468980596432779880907413391197997996860652974850866556870007712992238617766892344667231324026954163341149904880658273842898638783218286963013862130118375826010798180828857299283452318541581290341496970184685925201359765591742792650126916041205488513681649778036071556863667339948429355961411323652486876837874606601759734828915544135983718018345211665988300012210225800990297852525505261641746025897854434664309684313095877571312883676668873566494385218075663181331155216882963659537067832810031433178367555164930404934446178107996968134334897827071628350818289615204799874600146803719310572113218800192109974869596328238975257782615420144857798988245229318785359429347755260628594145443025806373637446489423662430997908801913613235811740476064869742621447936283579930247806173928040045994650950705042089310442253174456888394571827751485187442113622666201213333177126136617360610715997700545784061787438149064222060793460895430977369580224312660096679719662252418910941068664747116580997780832720854205304037502689629124065147564297287348272352821193959524883226659770399922859449681456039447010115613167177304380587215486136121204709149818102035516830163557353955167926981312351520326398258881441166966851563106294854617525982457864962090567138457171516179479641127992413931801706378038897807348014600151822933059282656009629465945866381428009251090608756892089785876968228319868564842276618246513321349583949570818039260201620281994523870880199364804900316407408636605188421942844237646851982558592181160631091836598201167196838372764593150577391453095484610752854918151057472473566752140610276959360053190299474954544701005403795552003615847219486196106750102309985755036943142391772060118261577476233559475839769890194752427711987805457864319903182816842109927780273743608340664162827800624338459811326058240803210529148324862073426779430057900057210721495547675963384848710726104714418677240558261492926838704543486131350735626468804698624761949292788006203436157753798751163926002644782599097645095188649783727147110611668022135082166504107148481282980323066398993500143096463731520774373686927206489356354644504941175735679456375248143438190410830191449481026270075297541192710444701900420227932949827816279942153440752004334883679427856060297049716822599459154923266902522079266078693837216743727518968723921348073259219984990748945351054003496366199648019675886237761447596721777907792062583908470218899915689750833694678530742257742261284436698741018981931268977595960881011581877717034850095862626671760301124095419713795192818662355047159079076153074034436502387445541828952860321460876908992473187552674826023487214260457064839039431459857674494210339684537011649862598015714072060496870315698402261570558479525369570931362320336724054412227341146500220038394919303502888429741419941714699706223425065487983310859098654882965001454306765081922913042138605079543434658030841882804579720931147120163528796540218775274602433718651937716378137287645616805916914740299981334531452617861288180174729839548689796416905412764302633898941716776566969768946902883387154280148511829148107669477077161552284616191673613983794082380120418520255762586664076188037860764822383203943367449603037228075973808624329640112717374337475292779995960328049158921985372783706726362390984285398908368594511256452942224470736765224046985008271638636940777694554092010597276796218769446553943737360400579845232874281847600339908550374933546595948093198435300948708327320221652265858081057750901554031709828264125173009372198298337725737668025636936699949951884874113093684240104732252604597439273197820792400110243066534099078437542689786348950490171974704881265055868659552039506977202282516092228431737698432144704127258248162410851781318008970033385084793177133254019468388831356475900414768864937276790118093122054741522419867239940707049146521291557265109446091633518143397284693589236569266192834169204796604659614580293336810509660913400909694077338475192919036800148977802191733583941292969309307063728361527860399460723457079579776660443957866943680366692724454760686342367637810607204222524099232782107978122332275634071796406453281496727838197807683252725230776245881916237311690564804134949834940328583755581560687461788130281841321670311636553513872755865201732000295694870325072985989625685613092038408610994553028372237553676710417789647704865311084900660716047464292650429221995036423381070529988557189873935617694074688092121116578764189922521632011551499616246976231152075733945434244816979065764385053167692889035884100183704750333655678025852938920465653242543893426442805441313826259414992821436403425141649044703575524569795507530273491247595175248283191714256484141494088875445041818793556770155134070446786231283552160970550586336513959600222737685935832179283259047506954788341934706404700741449648911105092957611644822561236397408485495242658294816479425915750026934219914634509257005890050830423690163203573034142381094363175100621239984328547299015153873146030307461922511347548411818713038029050894908067917374419115838482681357245280737341211063359609690884368671113950648699122827531878404564653123851646159461159163842686171583653647711590486849563298762345967777780995226006310167763942113576156254336688098875738348665607303599590646640516274052153623558085742999661346619514207370952536676091203372902193723913052672550120047600595702915120659714296545708218931087801535872742102468394811806844006475211100244585952978515021854192364325611421300163188028593170894686593605350278902477606957117676876480584966457002147211666474119704509567300517426348664685669541772798803224971694087768023757205025963951978883646836815126893004318065581312980901042094753423083316439448571317570075828064680635756981262042096978950591527397966556875904403314833546138147488079633058300221640073324289023409286195816888024455227021616616488507486422246179945866031643062649484048688265795231046411975243471361978027841152339686641598123355151635945256776577554829759471541823428338780880238975844425394211246680689515332049097590885736716960888264680726319544640043481979248685351565975965175761813584605779755356012378640602229447099760996508956952063815930506767289465703217043829855918441410122011966766655120276613943070227804388279652495718956091860975276397290700154135864992599527204599052035941441724852802925011596098838534428181397905231778055823859074373539128774655130349890015749622105540007462730769368221350370980162327434149090717520075529110953406716754179007914216085683449304677453881850401852250143130898845787625926911412058693884559066928859210207683747141052956769343587321834488296871949383133822496074060147452172138229700547497261148262446093234767792693454930651191194476462458569176124804233505970041398494425763935099057369515066140410755790765901006919111994580506513662292090967807303809965813761236075150656036651054506630620433702928703537398147172322506253379775082869814096425307568685126919144188682953431518904700867003393270811472792772790072600741810096517621558941915825150668000625201019311961939887669254547347090534488669509028276528356943761929803398327649226019143727709530338496532123100402123879725991652048205628777701641731928676141620037814260662717066471054107722527219460176293414440578913012160511458517488630721382082645800706337730953020812378738593980793100588794620526093871063350210375257522113675176468498489928736408220135020292175088286063913276280080741764712493497456727493694593916757181321962723720299397714296223912992805494096681558219004671519808636853700203538509074119287599145179122231152732931565353074086482944146666576036859104462492288161654719133717096378313396949232746025560754630810427996386604908798153268800594049538504632870603760632384985061132574225231879363600922926237540536630656546505530919070210893204196670807998462289467130667434805008780817227983768877007153703978474452094424486149637376062006305163666351844867597315691790504141366246583351030922027473359345695431412017953794376088752946339318529026655575088074750751631603553416722720319089104294989274158921858245609071966742614645983907966993199297652621062213552301004983272832826209703746751623099693193229395993028190521223131913951092494092859355347441261136585434957999495092715742908540726437589264291098460282309303244152442012828493060508480803598684288841497043184931359556836114102763679439510233958330409899866046190425704930857987241507922258363755690348940778688642235997895477354832948613594988735484282506184001997050823659229093824750076255769306358002718406287924037285397310061590310027811572114924023347181279109062863387364625525320059014806974179047725351722709754223829230334002154451791105277458894597693082990551836242787935970072956255676487026732160167598398153243158664716789338320583231381899738842355252405196428096374778792117556759843363644455697736657265240010332139128227534158514420878422637928272871831531314084663745428750372390044385739403139433013302485407238964730695744473915607539692242882580972460405834181311403550743201417442904370131649529876407787644041265292779265534107956627756463386494926868783535058725296695198873585215472621012818186635908662234358548684372378865973724551508144258142153847745954169496972152852316790813818439509831473477788596025644789148200390060349034098195451820792761402419220222600487552832655778276913938098947456055734040175190354844081793701353941714657747985892767954177854741120319089408065139050945622336826268041660622880283312158454332588175373651981100648908742093954818474813400744766474013987783629637484751232183254007138179861836402680621817908786689806504780671775268787848708824001006902472266550407450229893650909040835286918239878759143602319960741746134557159669790776606284647898445988207728954774364906223328620289424939682878008250246090045125021113927819251468573537639199257739567418779605603979002464132441357809735697828101945913655125814412877524754272985171518610511550868819129573740696125405556670989508658289171643007984810524776833548438771563410838727297145872433088014429720123856816569360134490594162741114823718205222102914037597139266915166951617403357116995217656198941604470635354734409000958067925780607802804039488602112201926755062117327686158263724066538585947427496731856507984123747154800862237960492120752200376906241964045518521298474224808816302990297483951924229237258147595134405912402283523507203711141608181715858554142670983496613988184637001106121353080695594680657181030961782158190647332965504144721302240160570093221256691031634803180565945715689408843556966086465250029935624682723737862666873656016197208704725074861229660441390457139606062162239055817935952298700953934347748996298592007666935401569352310767017440936601502708421008743885952835569139473523823115678519868749169984107192493095079130533859313880392638209689592427260726660166404954308102902975004956246203154762639045875300915199822151851879966880158738487057028913677589189713584187560095467119672234316923062066149162320841783063647125589456167718970452115038456078523201733062081926529690449337355073074661584548481845635778308387239596432276313774321063874751123243592022432932313035155712761668940582177032492284936469476351355568841311093513960320584206663899641906491532257074491901942022382787767971682728574222020804992737469633868955833145065258991170323141363237245614004995359156493372326792595592665467171884861244156349709609552227172119617536536937110462559886806630019610245313625785718190886666223401826983313997017999109527549809078703535817034695160094896011476688709225049497407619549547742190221568242558556921908762040387435670372531823058099381656487670356480038546347663180705786035905495255605218779962056076524348665156942441738125666145132563987813367045532277035722286658172152717438295252301132297627116766669020038914896710062754641234838247599100303472835780412849202805994798684957038897277502745657559329762473963689358649858139717094722310360878222805906693488304368831473305776281469234336877554195040254483560215698478132632575994750518225707732225435848516814498336115757399788736923003646717164401587717774969728036950542821613906959910079980792441112091349444957780417943821953669376965295669390594524116737900610358712246386157559943937862475633525544736525526091077937391656112551166445498895557925189721808446943618071096072280552455699384076967198927534660377109735624977007362663253702439042724038642902578663473325010476398022557190239101792827238110340176662330520556808755241050111651634396312814145796615421817324000870742642777736098545701862550125768376856308123960442090460469339801495154625601903166459400280912829276965067053137908738686658858096004420941505340511512573850712153563953932037577801866407380552269087614523323880066272368798520352696229264898977191059415119758145428607287202891184660450599591301701689586597926479773074457314495281242871457272739384151838219820998611568915823603341729298679417845683317953706122828515040604110090345086249862350142552687860200516155551765596719632840835949676580857092370623141217176788774987996775766123581554536379035789242200353717938151978798353523058403064025089635731924959066287485393618657653872501290936221753558405402911870522967887679056263266872590930064127038584514101930957319721545221755870753709079901092767991969548061582587397703701671890154681814086501205402570552905142250950427542627096113213523923443142272456115727350747839644428340298460999832390833957306338981304556435555051732378792080776329086101463148167229057947954570124457987613066185107747406960693148374214684371622321805143287652707261030179800480057082799635152586149282754710968357642505511882007584120925285170691435313969616742614046777761733114284354313242338973713105030683689192269267380999446770381533362417832769933037964813376560506576048465361288597942802789258586292296763640788567224979581319373413425268734711568266504942733091240390490760819158945939707964949552266112805281801165436129140060266079679720943733531802620385938582430709466226489266209028520962298026300243171382884633396773666456063649418511350811303164174612657359944813793418128715058255342685113258025985457000110135216834401499849725945010735221298005688177220371351119674531817969518412267055594812007966324039107362489803635229742863673808984506869017449522577648459691700809590006522581212175722393568338061654034080548914175618490697750680656639949611016716119150750202282770615516466088752329843985553170092954522235038826429807939597679190871789591676381834433622693372192251347422124526734479441914947888721175608138570675881115149409466821449229114031397623044368287471090506968181182933751256713540499789275817042130961436844966184866515712540081936937943068444775189360930145642648065006374799892710742783015762671377958926449014574055803107110662722697499721609926076213676656743651214151370041059830924019318368205136220911511521507869572834796520452674276482799603348792646791172621006245123485387139980312265617960379348710840659310807073461669030653065596107946557950813422176992112876450346881318220022437114226581409050730122163128428062600721722482093153479522314591507102303063614700180709767325623426732616818126866402582568237562739215529851517955666827887182803106222670187738507896233513266113035388663929194339334079041361585674546457241602980608429013499883163813900414820843518895852459888336824626388677832493533435081265659529137830419542950841772705686215193949616614404328637651857020973190974361889516481956414427636064801912216448880420891752803303103767869641304500698688617618446623473156499576343606647287456727990787540754115275175581945031995846256649264767470765568951705587736163784990618489231120390827127365899271784750108878622773762871778228439975499761195683810357853477092228825089351453485837257183494165363583478220852994060895339478525441191773544632856871014290257540629669914531092895340818890505145653627061993198339494619198751211390826363387171962234281988640271735745243833865537727999598866850054667748212669388110857212535272067666856068553782808441192586098087123856794008640529473844965102633185769193479027370291595691885477427919572869745514121856852806046991706560297141582607710687744995724630563806176685644060639865045632086190464143113130495055743242937992476840882577061058582236316784534527870072289376228339931273833291671148700413967548364362380365829935422777921291092364256030373187954196175907912400541351470869530169630221210077474613589825296360966105038368211086223672114902870967645156485696365971130486826005935910019821647582737475198970739569580497675192335808021029029736299559294866369628663821368910917688503125534275671376432152578288673722892333211873592296605319094140553451819979206922268967263139604271659746031974327088682117585754105258615746973313380648305452298799142227747499548120333002358936645267642896295330983809127204778935190093105917761391515054709368184787048374199186286060336196255046592830164881839735226339132895609941642274080770866370305997762937784992411608378402028443694664945677269976791103767218824955629347604412726942928726598303600355296482097529837210738872093723781538842271647277583887128292703902765990438559668551403130501387408246790225723923429751294269683626635492444469407412896217561290936482458203745809210563563340786196045513211888469944441515794896374896003607507648674795243084870601310173691146325562483277747102090387923561108687326696568205204841493135608796212179658009735618181560699583604195689410736928851838947409032633442957472915031599219581850969222063839444398914018942490838234079025295357417191373878976166877160739782837758482918951319949412153703193702235184494468239966993628619261500646115929636759408078568314443547332500662598832783497759334188570745317362091533640488021591925046863180857292211503328825826451529360432123538190734823263618797862975265859290666972183262999967916853319422879404022939234812399543028659971465352728681937988738589833453945394980306220751922448957022634467387913812572655415049783750415770915579194642760976924777587326777330846764536287562859234988409632165461064153930549915070761120920128226424197913748739908157651856777847765269481719597790864592698433086400809891316116394018778005103927806863330236592962710996859602393445891942643213578222944511158081927279852906099537409397330477159432683441195125466468294890592008176915360554826369562994665286041770494494884091417063639018907011108496211269948200800158379322370604145048675788395872282783536367806945293685408033556434404781998072093245933597994068194774282493869617788023025787757159025008330398115917007864634128464458070644325691711207712585467414034287075036810829434769249566486117706411266527446781879324210264436001676989227590431405593533314740726488449855088115588639038186369127864238578808990206653228136975857575224200482835203129933386619227666489596058099385861432933600961785654954894343101807383935585782369536875089250720859938948101633184121388334535645010145727151384661467798998284826037278224440417399874966664240942491823136081296564935957637014564397226470098131741805495708687815599988257854647025251031991255640247357290914929520953930654482797490096132932881604128846943926746359410682407973348928513884612068679372123591473727311031216944202969165841603455942425523164411389047402312463324955944133234985322826690640304739331380577255498085459154447121140776812014077740069649776687578406895604036871820803619226062816914602466541990338916512198111493966759412271525633475582467203638154907225350251662409507588901044686458976193718180833152038931194793607633594209218252841595725462789132218687182384943085936908135639108476651027544870581296051534998662383088631094166704628854891268463668912461437741570455515842776519927341118412950273894662139745491138297639805127656476654165443548404396415446603473521814442543120293637815575931020336473369206135696950624684277538841428612623361333720181008645114125019591223614281194407338231478400181494076297406297454520496595263230060641682651352806675814841568887730370168772035667506682320156290504512898665571522389316392735161908243227805027693766223678280483854045211660424110808682367238388122239279258505888257048947101305508825507132579190381596193997449767569552774430620681202620589149648721738306302854534674270975974637129612318777650453123187825247175222999255945256673177069261752805650089438535024905900312746272767813347462640147783963446639141813777937691022015563809547583857432864723270834592453790523501231213289546397156165208690284447546596677616983474906033036784876683571462370246496746424458299386468934667065353905139859290152475181534026773662971579482679380003214721497789655250772612676881471516064008827396785459032358128598644375707722837809581740526788185917234403018550878293181420892436563599208205509956946285794819408428180441307219358836277416146301496597420905142128137016206869756543393642969714495766405816625330214526214725856819653258975992842230814116975630760701676680452485674181099627447708214742618915032742383776864126704621287935927276251328535729933932118608456328829553256380011073138515727753464891002123407352525252155538996844486553191638964671000631986012250294351773278160819052330196110190087753329711873435100258560293086675080425786646238396064541720869620767399098579124407650163093777339565656120706562073574014386406430541676494850939662769067494294162986432187659681780484847177211885431496302577861861886081603741321745827833014915644942586439160085223898684503522469822772561630615328651670620068116103566828913353859749442592746190799596790580509681643040182655227240344850904465433962473119735604808353958756705713653791707681911188178313754753135361614238808583177136192109468620395820487353468391264622969521364423320938981305063008860740617261653964265035586272339385291701485407570866546825840561002357522204669706033983980924512268485120894058038260487148667120368569747125110399963516655858008443546051715162046507705320954345930724903505403026772718381180612585732186512604476350901776332624497912337281900202331080322934092577923678812096417663234176108420370502353926578468544920356113162392825581879196710362600627372986656872518608592968292672443680712036880183016283006155195126970205272360347815501315330481820862754140368523267990413147416936457336253265079069379139361905584797817264563576301633255008380199473287634384720282531933156685190610429173159211765052516568904065463076822773570039611654296713069273662753687598289605225794193569526486776043684339292038250039633222156627565614513081773332462947827780056673769084802839486431645448528948908930299813275851568579747462489964165755314990617324533639671237731341859768020827558195289979398091275517789403041213722118953560444997689940315983272155345380894660811099000555266810612221401056967653573985343700911600138803531638834009842685684811336857346600141113961908417003247164936740732496966286978388196986002481080094611108813839413528783602872572758345839443669825301130772856399128316410939336050796710572527501936528843854379627239227177807792815905459950255164101064553743274904199780914149609767828638483627070076461347639110321349386626005392934798080975536902979422808918787255610215769778937411830832656809389773922602834992701385353190169475690875130821598014133732370389898085301506585271092117253165777937687250833096374077450416104880449068437524173471787068085492739602949917699123048238277726724219324907900230445231162856106045765778876701804729464567723716135298025999014150966618773017179496911159281830867423729833843016606584790613252779670736468526041958095561571138482310194364289744656689594467848302915105569876529378842987817551695151734272047354467096959281711278943420115186835260187512278539162255469354962656270994815235649919070827617592341041434975759225656346775444268751202842572000841218301067294470948133247372588160913886300959379611851983402373743608586823625137674773813784962691578391467516671505348764665607990077652382331058236677705004153789163960461712175758457277758737280186642133663016237364627016264420288334791914410017723976072195446616819367074951869544888021749254578929679668972193956621097006692756661369078419945755436642418829086162226764703031176374214416640738375847083053351359652150186553703633802741758212840202157653047158419187637385634538903479133604255649751325374473622286006821037948443704009925126539302094088566948796241879100896106417559786019851660689643923802910652239398303850900656329574669141045993057072078741579684623841770305060119057131773234157545420648419235834891882214600685871496692455301022686684850140544117357991436306212002066353633336903688129049111635758570774956624169413011269261825843283146165326089221975615621519154931245622238125117933991638726979359450593487222798860175648750205175980931856881905323278789279872286294899723574378556726207586406497247852496172324470332941185390856407642033959765624404219062508163721478046923070433580046172605837544641738250092202330419516791135454475100142895871011086586778368939099628671683483825878947034023497855192334584031007085735154923643078184500139772880025058252581131516217572361728541848100995233822977572489464425573922874805268384003602289819862084826657900063857192266708425582465116366076226183110917108819074764132922651444600278105430035825790725413841135532830541560915954952081930340259106661224675288593505436242209375734840150687422639288892507767422965825799822336684659064205420539993453759947374217771506819265429927978950185689980508147857227900708780280451115459802169807370870056597850133751080994746611790569089055073315097974499733250031209028849193383139472412444941005643879947577663406286852009556620246936015223483510593790625144865189463668621265933800337404828028259760665037579275379046822545648151533507365071395092597042629866694339475912151321075514217437113817741826069190066450183610942465352835126881224876060447352692903752953924206615918081046447820349246895796730875124514187700262022296391740297086639474578580815080423912291340989941081424651052997053352041041117468680751689685755394318687981889280085249701880775881366822802722225116748029418947647800701893618793827283003577430427064767016568686541573235406333221873276328918410235962209977788757259342596187387943998432712904948865934467022308919675553969331509525724735575621848816554978472603238571837556779901043925220956258890185107758349523644468610695629939184603136718825895361814285682300429357424070598861765474407519149364114747158282266443916908447360405430520471524045399159646285208653995630024010443165482145041700651157180339459386939358105169381129674906907082682292966685296142965617856531707524740263797173702266438922272942227996731044150073259818826007118034427592941217875435950893061348769455763365964456205674733909409416883717788823825423392833435623203318761768996356588300942580862098657340903739058398066811139776901221595811600784691027776663081175129047765554826046092949769358372430671699699515069074834661943841236725149484283070650770558784082701251261483943544300289944881046969156890288312486207956878818015282414950515879382939244831275139361438810546541307361331568222146430380599014009154376173000042848739828827651391804245394363269827370663255540140568544095417528202536638944407369133111730635686731317893595282091975948638081005216667582232702637588568237104974102079008166243510336598687690335050217535129267768322185992821171043894379180271814626518840842532556357529283818463833532619928337345263833097426740929036863217674010739242242035229969310314562167115371944272616948882850947289721621130479226439559515153842823196128410759978653523186593407680481046986484169814093005076140456832885326756337810202999542863351548751732053885290184588168837760855737669573344846956277642274678632522470957570645716321308407086966563416695421193549537283921223387514595552239410763222382278374629146208780289946217226057511220386762435583427029680220169594752842518379636961393424635390775639233695990098579900065413169235327820351542998756225523638044782964142331495942841118416441027565429713520442454061915958422744971187122290660892062910478167595539746916384054859655777089846364650919337760083633793846541846491417379648129977416444134911686122675305733617007748962086958896557074223504249751238036037673055493123425299742230387475595978221757286865356278430493797792366014251865653804266207514093900722003686184778505795906988937173631243229738293316529392873384140589799804787850346268430049445086068635953816169867946303350719791484582349658426788693196932938482620788113731801725950491990249172562332649992419282071415879489811184806258346295847327376630276694488959501344620950315618616421580984605349998563959925995063632771660849911831857265472681267453469549965870409855027809932101481264655526923316107706760146877128179380113656787267210100086592432938076732693697653901068067757933949047485375757888027202117073415532740421150171103098866017111152284072563526500803398465802423075079968572898857373592975670865370547321747900208003102095119606753955069335532380476215794169785206357366272499820013478237977117557304736971674401367423662442288350546789316385975826657300675824494114769967400452183607266053182928788428598724945715814565557273737383240031687707775055998204379773942737435006273985312678211395865627658523704370298005570609509761564249249151846459624348982510094768225642015608920878855788732064403551668442306191581250867125006437814799669196193472598013965129578857855912838158232166632870072428072232057603856838224465070998486922073870112434510556729469027566532703829450911889685293690139382305837209399215195471636225901779337960888204183457851541759600051192499779888009375755961318396914511255338489971616166314398810704019170230830745402831818387839192526927004147589949221684661272198507540202891489277700094993877869969392455533354500592640671022127694356189768600389925878857693159662199671143572841847111759645249783450879906516518134616193247839255452761776645456109897428652245854348794866677971013597542494333306728284948207028838043669376609934601345547566748806002625644452002712406474979168616050535464860532244699364990584617483640305905571429661685225464222082900335022542804284494467657642579325903053609751173478939571167731197775291823153213905806031518638878124736572266961257989443502278329889237009187368396301741533683829596911043048586931217708579415698045085910747311627624243507096585093349681248523479274798500599295248570554810384753932908764117319535012074453862864125611825344511648205955722519483266259343675799542181950788428180556517176455644092551796752701352253071057136873816092668721563995846138997136187312816513932396669670921949717633254339836380191333535123515212106892126663014156230633674397189651327098140484800221160066723597173371532693431379530454697656500137760873399864369841665888275204415645892701373881805270488764068912717915763409718965452568971102054210695529402458944609288275884033492025844602810953521287689492928616971821465474989238359835799547469438634955390691161807409306718073689783234848773339381469070579952352199160398337116157930287934762440457355538078983600563955675044727531359816971068466661345987687573277749762201208892597877298850118989917422744754579196631049901376290637844670940178581439803757529195786589659130795648109574148793088782770892246329040464901789439887233898945491897196212009363736871709300713746874911309921740680437237676490993381478890487167689921845429488450690461084286741045431639170780588796966118943546216987215826616223034020366874137798714488548960852170710586347583330158741898700873203401955359430537705398917584064970946853284179352562084197315012283217296544381935260891479343232497068790316224614042936372211241883137428286087781768202956889182924760466693357108122002815479685185152145763448636735287805982628172440919214958519657304512925480143106304686869037096791962430168349188182259894705225101709897554158174486915299380944484310269446544378223693091751905286613946537906944635527006024107475371630568825884236745665613216887349272862649715616112140636897585397383057105209822575875000253103922769345018701066307706098624289117257555304120125122886458650005995553156258698088312023697580004992019975728413602444098569482219998562478793359371118521055381925897544629141653463437002892566878493950031584978641159712024639925385034120341588841571344909307099721327679702846454200311983943455743865492329916597723713424814363255962744373732183989023901410937561782867947222179821900132058125385998905044945743568023126961769739255667702693099546168890184684973907050969490406605998961681252987265080794058313041603098081756227572187473923834417939827179031979106535309744012147715355312216178725304297332916069896384564049943213354449690842733245152449316554111648232692804260065368414086306146160991551248614834682009440852648058155108680104248012527568205806614888196259095498337904240426530508268145307202613518805086738355630110238873301722866813507059897669230748487231980355942729738623743197599229633458490023484132819994873633335620345592764820071707501871801481021591352806751068108016881942479184986620978994610295898134725547887650608480822954299751172671937943909404611991864368015050970872971067839449538920112540365472535431018118974119294436584142307455242201057157794727735231580216611232822213782567509713878970836599513032097955136366100947142922746253946023589087588607672517913792527096468612595504861497901188560741498157511496108173376563750929972203215043266907486178916909001241087794584932860704211362112141539262775404376882533764327473027473986580553294660544826568952528714309997683975352988716403162507249165295041371193248796694251112411873658483772223253992847169560417791291170801048405470643878847371438290128829501918739423972248121903112892215943498334600179780675631590119860811999242184597843489362143770863516243160164974607114588752422609383324753989457814296796485243680131033008752156533403871557024145473128765480527594704223206376126017207343852916790917796660776911747244137646943448281053160839737350969838135615091260723700862584240695666180533231271565794429755864914802889260847905122061393027073370633506109368476861446468620381762749593674141646928747550766406675867435797366584939355605159593327497153742854405248994379637208531438115996881579114116128805878268695980646804732114555922358138387316139825656070572991419144558145549480676810709854613672556605784644764271188704170225311137290901088807676790847849171406495312572860735884462077794097707031239169396080481824053976531372716637874107947286931619761769422968781797138503587448688465274472282358761629750714798292462637528799490991175982414707813937804889157889057985492405125230360665630928474692056181689461462677543599313085132513819149043094911450729788012992464642967312511455241003527479169294873630831913128842258139675892438841496736586588415269665956141707910237029466086306647868379082008340701600089543765310554637068682659945741179403343746854124743476137980861157866882448149364226668651147758204014283216810026912155275064208064269230860775142590132624580929926846855634676054645830264567754056116945226934328927913657012837790313001865299248687476792255081098661633107606914323852325434706385070298090698116015267278810293798303381573598320662259457498423685731038326627438904829769495651769937334029094712240277984223339955713873233786452716720127656052136612393494456066225920057296388899735140506573982804326098252369653042871840906590201896520460240424498112795207915545670811646964106925851409402146907020075633778477853071080695505703251559422357430768412239977141338880148345069774087908991255614337386583098954686447888484458391172612895480691481972619632987243639109684878453049112284169373837950051183507429789009240415306019228508655625834280058588524433059588488881928353951670768772572221213688940652361863797752626974807287863677326672066438197577031389225186865361936512321414056110062632571875807523348920840302861347907158512546177661851067438771560728934189627190323243334684332280389924797837318122391481997211350555646097196143800285873609699913962148818774404375163159864550703276730976882096585043441880562989184880081686920476426452260420685790564704648369114800191224284429872479344653991141749751418696859660215316652784034063668279639328275659282921077109455374896314864493720920334778940420015376821206691564578127825059906789912191872444727285693249620825171590768768825857126125202790670550123627637069125821084450574006720082461580806891763574779179622370993112295888339139844501051892647506643184743334014366622465108445204452717620215630125290892439765779631719825363415991823782470178766916515414021953894853544049949983106420876064491219109627608791038046617517401150270968838043685902292831222711137603786169706982721794627373261508906046310418091424804073621580562197814021280085470140932971685926720835095821340019127632000435006930646285923926328214788523296425729504978267877580786477190570495693861431892452423428495250627067119676155945382375051220457593103146002546457907394489515129515058253546035995194341106136345160110452041671642709242923553826645133344711635316691188043454724465947635744219304283748480779226300548688461490420146867063993894922237612597402231629009135293654218272819077197359902451121239062074965478835213111713627749774888000621013441103026956822086500551779950637051243877710136207574441678103716467543559618825166595555037534385407519208010587490764123578821517502951882124720283394132979026595226773090261127831007484446570467540176907990578327777572623052181323385830173978122146328276020165826474002965002560613047715080555539631561357601927208884335994914284037099008047587658873646275995002325132338399545644995175283236046449782694032477655858782789028345289433986496037283373298184044199821895378685058836783203877399070363780942817716777436600460085649919341503817075347509620466970345253623927260951894307788348380010786439518211439227217526222684888017372278043329270457462164962733322714234303100971325228573280249841072618926540072133857536992179791181987090356521194107755897325821614710436333424326934026209986019314581861356010965096313152083596399600740318278240831390575891310559234344318919471537452627109470425225124301887550744841801715251138660040395969307736985571222179778454210782885054228974389394346205027991247195902296792073009316993484298323956797070247592171682897001948131124182113949810539501325311772254824955570783131317539951549819413920500333957186940516954503172632433376518105982673695198638578287474091003737165989427213453427455803466510810444474679650480515831285900275524288408687883456751209392771772158673947961902923760352724441497516582796226076833974728737932463056331363791634977974824994925408778810149031787841519240009390681525186879646555275945964645394347138050558655841837831903660067974324233683234909365781592716685608361820943517045065151932527851479179457857692325539973569505726783420566981768467441023008842087105290907106426731132500088169988963236114088098170343921348874082130607734777844493710436996221742186370300492364540778340156592536553740736456606156205237916428225428142613942070185542160363517117479733027850389475493397345756520745611437083987541173247880939387812923204023272149774328888987211658704180563283528696496881637899440380224952040247131469781175501074168963398616035538655093936455692488110526617069369939547355968920131994505358315912941506237247426133110202128696934132411726703233668688480132885288665733661951866492431239007797830266792385529444549298997069565648482334810407354520114023538683868147733942267565278938783287516165801625062862171280572956733975348720572991632158058045822437035562040929430044407268912513335215636204373131759393833577637427884364235691010003816894616543509696670118159001629472621051867899173795541571984767986733662292613285770771257229513539532341285747897958057499887789652403404812054890492779913543622763143126059702761930340224235266845155692176381357903106915963704240268262158318650970014573221033280661930145632248562108753392648521410140559642117135413068429213858904035997535455143868591267439844099687181092940538856154406867869911171095585732409483389053618985685570676743067423805742108826556311540185941091998171720104849115785043842587924482430658902501097987627671801705203739067375936657437201610705065667376355335608223292707151141558774322605906486637370755771550615987721352678543101036692532968416365872299004184608629522181404342569710289187637316282772044270769437693869915015268487760983805047110152962653361202385791544034608303434254551585724629879796641355465617842478249425806358566792686448664218988475015176732113924573008242064266282968815788233862986668364033209491168097242386672957801626675108140113657305603419655777305171764131791779777986932536227584649873558112328378754765909128752607827682747548406685109263338552646419769749608293219168407533870885609691153101798902951239726387749814004684237863278750985906987105800112671511648784776984928181711706682118433771877358936364981189471531745453553890970451553595366144547932309410193916383318145396902082173139805670666737211586243775023809781182623740846975447867192823460753829682696910492247818046923110302828119297301849661948363811305088042768213089988892604663395139076078039312311263540784896115805437990463878332037465890699200325738320755329039778706910882082168121319399626834140122032432507023797399031634600797340141715835624806352553844906754045773976537214192911079449231480182188973601362157420602972601592522719697677128613141685491669870371085419002917514237378237724995847747320030313484629870289266563576537467360843675577571814885436879552948230639708970479127741419706850569950286777213798532837726171508583350235727412771323092506946555966885067813796166437118276663716715961572890731790543910165685169322569382640775104149311626112185028125072697096183699031293916759711511077587357780514115205376949877275398203986246786613205683487658307274389021154390076676156159515358105412558449335446508279024567598135803112561066326701885287214714666733135109385192713918790807155380757068057843446673972057654542065237560285216813126417796915361635188780911259828362545119107515471420520872824875884940021830422736603214120651594110721369348172893764189283489708631939583900510430101932917754295046743762779553011789726645520624948806319167760717175920157608332920404566505207942175918842819123046735533001852638772431081704116532293568842542097416906373007637040565575381615270798437912365637929325645671575174946962889032293319250905737361055024791647067527551057631701236082907846571352207353908632808304626444645886779246121320232442205309619703093985302239900119175670735821976420950818411116829720056622881574390821402609917274131814432807830824644158494437322971346296328950025914711254334027936934115084061445876064186105680455203141926658876745202239711008215320679490058793103923668110807513425688197970130618821531291757826258912732803552373544031582511620358624976812817188823194517799793848068981724776724448555867323561337281837850273794851985608257717454853717318984435471829978368223367612926420076792710158353887443811311797550126484020038976087587456922904610686189143476284752395509947860332023273920742637870909477795697572400390294395388016720405125500436207769804584764832925304151499687370925435848539139355050891046145529610187425908059450169141507782712157318531446363909495013981132190369463448971742640546744910614942134760900683567449591874231563182037097812147396713350922340726144123169587851520490944705073399914846825247082337793128509237419867946319291424851748019092475121890744504105438588194282714378896272125006003601560381348459460833086239306238939822632598688967833120485090206581567899833049118743954796696686337760762392434671779639408669700950291632157855465419541517842485549997332347418121634950775092714768662975944370304761504748677324272032182407578778918871324969269174416511951488542307542269562262610424408687444529729498032700913872132093889792368627863478241481196628839168049744528501261783998836602703370803089183291255337688557952299098499084298370632304486955002517291657992722300802709409480755983182306084444001887015007438123763843018402505474744870998600483212433536041219257856575009738658404827366856878126055714818178691411432568461357090397627920707547948694120540390731064294941645819442117676761725296454263667191085513250402982413990979715750495629989292497402796601541170146272451863144477654674145645235792898185046265225113510341267197456228259429896349416058214950696972919663345372038370807184963758392684241739276599301517875639154419318234625734940115455805921068942066918603529335945373041055860455811153809891224108108049677713159470584565526024197671470479028888426520762590590569283049746391717921254694742001755561219766599941580331882824596294487562330426381766777618606989660427839366212154823943622754501790988475634011855074342820592968324245751372571010759615000963923555740616316147370417577975828686408814716105885118296469354336860436623570273099626708246083788009732117112554054325957989700565695908344616028731625202348685369919993401010692768050354341324061431820044980891678635131145911099807794036535491505663930696289116051302729667005600584443016196361074210939112411392804134615389337666213550212968531467977493054202948551091898814336494529910964799453545513919562419605581486413881450539852896083658758029653840941135360216559556295937364650487293415595867566030401625974292223412771138517646811850575449132202308612452952264867131958539338373894249474804676628662769541008040443567534102620645426354092753348184532460724019405276660144491588930037863202509058175730980139347730105886275155056071579908964784090653088700889041283685242215640933374655981582958453647598556786219472831304626949588690824663392020115157525748597200451035040743413637865372851194008842443731445729041773237180019531127482779697513529795983552491628047219028463806719447616000737982233261486631605141465387440591060050650366627907835534847969907388321796867136047226397684203193604715825849737971326739538227222926839570460075362563039349198769792378882443373560150263873172592561583833215804895710632668485507993598965127798724178559074613097785539301640974278455163823576964320104842267563343355204365433369009477736945258280676113494586282327289685723725552085581556536339177897730694136068643990500327039351053873609493458389013281386443882303049824780762096620237917541258258991370997883566609850093482285563590831829247439308084604159713480696302112308478161762049825002434872314817646955763981975925143366856701657670466416359238007551872228698937563730632997811970759201504429763556824735368036141315511875217527794744117441617555712126345467188551066654174904299249559493400997064657597180419479910628239910255799166170400148993995463362721184188589848536133779420273938672915756880796034455616700507345906290208640206883673276719632066422000889123685930221092077396780563880707397502440143696195014662333419472961403863032263192624889191246292574288976651561998590272454720062117689983267456311628552643865207353906385960456377783478081822051239702878978374135862880543864294642409339696685115488360060844954965758503396799263993115200712410524118151421668643254652084756644996282803609815415999512989597505157675383154072876038582204668208560569424366095003444049675974773850308839276020926351026652271929036360920958489067845314641576010555801782424116738140669062275856376575779578764384355221009916503094689481055710806522496418510953423790563973906316475766828896202031487831894350543904508344255960244913067833601969828470024647297319734990884615658452238979503047399883318311068006426174328521916237927840758737019212987127330383612392288129816091282122192525484742088245375794776751829634183347022924020057197169919418990195541473123214454470944005193220499492338446524143451049047396990804130129450325061320164312024463702306995727452257223144331883430616250285463359517804783800751548399065253321422682407763705954355948355214281843137205637696692309938580401588138774758622135603788794785729377119699713947018971306464333315082653437221949136065757335273998126693202964470500003509075276786470579635345938123502699062844086876582398980105811229859413587806679689411456278365063211081595457457631692633616437796736613530935546326190254964000154558565098950160443104705046827362826942786680799871527213050745934467275518492526340719543969510057750133515571630212581206559530372913007307098726217931645368455712782696568479190906434986081017232131211516056419422554287068970291478756437066521456309975272276313513149703809143263662705109934261505162203880163048917874431224794254115378816834083628193513548837675447026850057587613089817617231367681406965782124369771424662371145175178075450993755777038957377426197799430168351437697506857107827042257726347116312799553335504139478815508244896535071714277050109252420616544030686394895347424399528307094707603691931020730175473486974122333558050180052846940593216898658478441110970760807644074015695117534807105275527035895679427968589773375407056759800974967605680774621588577032824948711375337335277980314863637330014833684933217856958161626631787738175521685867222890627145338482027417926229112061909433979278510893050788144571006385357895620175740532283720536082024129985639868854444641616767571483285746911776987348671603894095064816484125026643618354900750419299507297106144015727940481719465594405881972885810587520496209653993179443559722771982713479447655777064161426610425485509020943713851254165301584294778379343777490278453531730261593460081110238604619400553591976704859725411230537119364873671409785172722396409504850132578369608462626202322615876546800522023632424561645578247794880057081646311427668988778693112750203601387221347053798023743373270803020999453133738422674336260186652435016610941131219443982914982083084473786817819862982654470625142481472367605303788982995260881188789772930958845686154159815945160183789296532614475913396618539599757557749915286991081326241490169776696442142632577093648054330297476192001076787062774124826489158790213280138524552741726595819347748137801419368829438398062656174508876301247335952911544129493606675453292657643680892054088394282472155343720676243545081080475182864521923197912380842474421161884191715660670488541640540859429121547773259257405467552464003693480314381643977486072458831606543513698015060712278617475545993906687739941373303747716872495098714434478105164474539547236746312523122857662851355771898640988065979889743514686976674745729712320145415511216136203794663236150157431800936707259053521161434587722220281946530732798071705158879075048871899930428412767796799810999459079290161551191762405713331696198522426790033019667637108679683605512242467047389600964732297337505299249749064960075721281551154105750367843801185849647026459677727843162903404464137323633416541204348287745240922156640187880825964514771564279976519930274165168165771056062344363039360869675682381561228167559656803709412577293268086990763846656870689834833936175154784433509689264596913910064214397473000882869009835366767974843067080876242587296545504369923200164678229721536002931142756788184486489439520382382341965996272797354181264963043759029117661560888616703896466724627350401681449969636006820248206772897196478428516633621019964097031839184754940196994064209402162743438155156997197799628849094919266790623695730684877348054704017070380903984828122978560731431108652059121551596117553936055604844099327129885338550119829251244576552169204933034610263392706788399479211311521160757430971870329017417269103917882176969583879346082912784758350621676114482016247454819299105747091217277313687832933471187052874210365197060805944096591361242741943132983755403567326403279811382605882899015099157104094941899034420007484525973562692539289012196001537839592627102087624035430407286215495285121283411610289498432685527486192957244186832892604319166153984446268458026075397112613353030822046628426571967666107898253009960186239275009565196882012792327835702981344931257949221264432307749983714131922696954608057099104187853389782151654521045944274280593710041010339670640257520540560349663020136977155705609900339947435430989730875145113346004227407764975109209197300338131315557016595275339782980313624289339385404399645152038637892558978994179495602736465501599959950352219320239411918699268167393361722261248281920226225094235114519924584600100639781415087271490884448592128580484459043810713171108464625533471253741710161137591397629226764114321257420018960728035733206034854123408555957413325048469031611427035637886540973648159051736134135975758311542368261586189424975167772691596000964607695511193513921740857672776521553697067832086697945444726296155780197961410471700655766592186936059119174857844677908436094025053990488548587772236243433199992198118977537730606171872026657826342346697284326503746635997462579921851417834512589008263054105132385608979558018268216067831386593645121423718479563659344030885127542666113907960341486415364342932583653984420367055392247447890388375023834530884791607459101864383422543523550188747193845100737423024400200631014207312474434116925337901062958871620582758730023012068456353341777345783699334385995282157892205598943232593761321366260670014378853605264010538031587388617986987847339768135834611138096502245428445910010834756071501648459063671604210643637220519868221943564459031706284159700024401228391018085910584527667180163798825320822919818031791463239432781486003441450892741563323778388763725312033049782545808086758244732334237082574910207048439013307012901987444953874251182538422853529960855233653060477508462335534337109943400504683161018510670654423747251055364368733225873993001112270985957220690408141912043981975488352793134789405114190378476453704757693065608541495291905181676634601365535821617068693818202987556809892187524505520328459285855814607620159166482068223830759254489379468762150682681658340394616570004368306095609745376167505057130202399151409602861939722755523667958200892785075304589432262470715912544937076995540376279639290595542796663576023634670063789538102712257461267411986847782106316049919069928663025889244518242632096251948091661107542943300293303596497388092887613366409817560009416206654781705726745920567967653687800967350826636075773840986771441504186302017322174596126481096062820059029894338291754792682192272203323069142195369692846263889559020824000870022542003722213423976713854046912375751621128377061324730377430487991470409866690454694156773615632578839720684851735188885036903881957075379944598816362252118821330789192493644313517262432577832475771037006885753070675580292584834767853907563814956756045231793763123188311989994200047000684701245284142852712056585721251284662893129017642191252540312368356327848536895112405772433286749041571486422038244805489653140859106815130631858136374592616397814624911362682215566483240448500676819928505916380710945722580086411749454876541842576892597174984740750873490007409511904923930687360011191898310643367614797496269993475960954667000792591727218180375035433691469768879948770148218062062891104438916836465186910719564470367936426576394187201170552816908193182893533205661542364604019259415684387652977219269935924093485043506242021828505284291843418561641157369761005948918380530564028637027019560147694684120542375346700892656788927967429938241266560684796936591232704302183589634752203922707476306976760104299139613831870714168874559981139635010555009211946341524057517964517503610422139755686680025894410643661948259735151016558510724067773900616967826704758416399788286159884981385728252426202124132840864787844317690805356750355299586997152086554753440887866014455655087962440725078359926514858078016676566452330864402661675460793946848799153646322621596282614857452122041058601629625134187644168816611960756474510351989988300100777055532780228732803109832117540449039402548550062350332573317092979341543374653087874198972955772073538589856339973785025360752931652653491407904428086876646390277640473187637082620956026050944558246751129812426931397487356200254908139506143734145689100391069104819367793553895820930523518607394010779402691716067448372515695948096775584092779079714148627238409620829896338667715832592727659783659392669030352492953706800551258266805356069652698889433231423748117416754074739921562885506959143604397091269828320985918484181007002187264929811734582711445685873785798668131268138344844464747497460109487089658228226122424643722787399005462135432115150278793625324947129956876444375584719746384052938618459884038771924316349265580301782220175697974571725005590994321527977555999651727042370571310980285273544941196884704069117378699280360371113141241289797891174863957982026078819265979659777128231300240239762188400071332173351889055299448154700893497233362145993170885107400147424978421674899468698609425110461921786663583593384208312267878065800564236669795144109511843191651418500500219091674129546981571357275481712510152139760228583824720470434530475593811077188222957549124055334008136066457268736680089826497875289819175008369038861291819490146710818560833929295091505285106194211290382950400145785368427904257734125520224448144374997677750198851123348899621175862780163808227159776934760828020007657837867740689656822605958393291133368602380778740669361253456569588420148966391899762749563652039045320170653250476340773996567536035514262384011329678972361360701957813117323654374823056727957409356645690540998657266072214945707329448503668818465112887580165017551883711121447407008401695768479145091933595258556630960408232563959295589948479220336497949630028762414042072786093421822513095590493510273824665963176078961199003412654730120292621332750510640824922200156614045788150745962874455842999217947017681596591091252922451548698317090638717495159011027750347689680679126849191937026156358642470006152103522639781399748539051120146408992966063324386333044364341143810691647796266613406584874119652099007831676848407675169831721020172993335644173428717292055481464534090049097536381395466023599812488194111803925838508676095122030929800230338379956727228536142276731764056362403248851507821143451068667179227405923893096069688439451496048972887935135669117259484670835070210533360504394892777854689590459690705002638733628361405627518542541997202758002129003667498151409369599589154726964990357454028305547088617779012735345560361293809256064262100496588945055292409370029139838125613644606885843514554215836316535669827852753645865678124773257530087325730054328194754251719384694872169659296417724279134302711707932388692986927180734913494887499063464599703316378769388869727507633110115402724381264333612583070439508893596935809442706213926527955376118518732858922372394518232352130447691093346059214263036576147862012897308715955034005531356320147074592407473173694176147328196520204097755060600910367248920754413249570502459044856783507816682564430236021730416234344483503421161467815673348508015837660809583097988616300915854624502892801617636577392047852913324690549333765047762792089893872410701499502982388691002117146963265090507163801298198803549143458146029886576468321998330443262048316803558030691791584266376720258464806753956107706935496266981879724374181077094471187298003543854934920555148547419629421177342755230616413194397063033201430622172067698707201601304954052909524345248355897458880294757192886718603818598801146619706905424311956150053114020261948951959326203305105977100609248559505723646571662426054096863830463500129385148922570005094626377736704111545224443031047440332636176178854664400638250637083613718947163415269682032716763113452157192107066459544863891846323366058042545705643241135898671116303405035788656991620253792856552475971496143734847379704709144904110216175437705889394704705974343053074987251975156294841743929193531323654227838037151056054733989706795689908097591448679314095375663825807446350826495227058399001549964040666960583653002926676869423684203197322171825199341056297096332614070120040849419767990752520982476083887850171489721011100925556749001953824501669373403592667155691145501089839652901684664519692433824910928804533176049472317210435903741811998554448438873346107473254469165404895018100241733280104931273890798174848818434389756757882593581273657288773360274096632661608803167625246259640431501693281889959469545919473062429411389578717446377746114712494195806412455731830011619087512206411255656803205346439122792600210703904356282069263632272075721147447939747945896181280210930582115413661691379256890680802571705735218732209664324435245946771358373304521050608599169036886982779917345401667973576871489452766933186454496016813906144381657466602167404019991400503060522564505570670739714931613633841161272039568187529441551939724338294356511985000163282596986125440797838092294030581142734799973107309552347542064771255072799731049011066269948004112349734301286370573003386894267493069735288605860727247735682287065838103425778912360375288123610358970437354303343924515108084007210478606279294756146118038228238277370514101042348627211433847636185203830906610409806025791741284376801308311085993573312407911126384060249935849071328551060981350369574250569818008568515855420659830009274841084517328957640560548915383478313366222466600224125846451938189932595342875456440560911616150711960104762861547627674758115683001697002805171434946670509150942091120453794793229038338657794138525306874467717252562773232331314646122407859978952406920993538071659052528027238802614539867465304527167938816222923890656745480978272390617966337933160112554970914168975038802576042847445091190204018282285371491257588772746686000992816303294117360265129896007859150541430594771024973209027261002008420405042473283766797357900380250024274340406977958434507977112320119314741196244640582044517676029837971397399119304448219773865215785451796031715538292003328320635068307080100284942021924539080889877400543408575512223891260958569048643363231274843378807489942460947814880578144120894275279736301660471855725444418051176896632099548854248635009641973515579603594849771992174009563135708414363061117758534106462502557492353140789433254573115936837105302914283861348152876943336697647471491017997962821996854426296442846612135528833913902903963080353993383774063143169050469579602884134142680028487274337262347445309263652661881223982894957796934901285285569475082963672418847569974875729384874436103027158997970691452902233926908709572091314359794633980294220156354601207682037039564701170724356936841728991738584334593060179606194945571924312701388051960960697100107180730941400505975016565367254046555429711048000284569303078275555789706070001794748355280451705184586448185577276101440487713654504493463337412698795086437107791177955152009658544828865167429039524985455020977377879621662498341090507027234996047391446363141520372640741144749891452108726823683399147619615514741566520921368253835483941697718029273612571639315139124149289665190014384362460143352828203938563886632802420655442029209294732377896349948790952108238685204476555887836944696775783245929144883923391388418522701931649751631645903046907728619201877514523035881333755015008957462464068124791800899805323894650533453459144165074508299024848484230843669214472616302126040193502755421081119712464787825645322336609336983940759815932586705205629183916524488837116687573323681741061738166641415369856252924892138653114208793997320873026938503766464234452713506119208209219901505794216697854844738766628336528450003740937746149426338031432116015322944825472166886174947887850824813313327235439582329584256528040546614574488682849887504324485135354355304554384909065463296341655315628609968329598259635810354934093337929508669462160302612219030854067121628857590170909235186875587453350772039669506332492447699986058708625252850477000561988933101573306135204626136294577018340454033818494724267011094759746897043933600685020119289548716045878335845823277575576096733741698983370277563391588184141575682425003650934463586745751378620163809982194442139005347470003426566318689547700757003969630679832142838851730516976328556606224326579411228181046626592874526768734372999309455272332266321841403894909940992380332029174832206968972653611746739632549841841103131233921724027727673030960267450275982973887688094825463717656234894676646110359049625171547785709587801254319644836118306390461118652573534662479176993339582620159109413883597579962183446134592918432903072452210075648439486725368033289213824479289974608540293582252153544453354105793486887832489826563916794090562925644172569694017623403740741342095897605057905967314251364114912054545141943071206368248606877403722041165413379078506785989910796974783976202319700434476562327099870384544762895116234536426764133144436437319197576289042501063495124682454857667671300470535254378611416190856332303974792847881835525505979215496124458416956923315899407216665228138086266525620136398066746215178958309177932856952736896968800305318071133764119768021525587373663786062819561092510035932868227537414675237659954919824303138301098580602851923101454544899903171554577873511142962845569676210065508044968721396835155687863364206411512991609740780454188796449504820133541315846290427316761609176900352271873404195318689210504976520703283951956826981865755679760753453814619412234706226311724324316014892901964912795785696332348022517355955992276861130923332587318622371968008722203815898070392805339621192851626007660659547992730399627858686072864186908725178633402387076589613108621239970574195362026872018195007193100766029640520699031833123384166726975322145772810726858647196806095069232818141198725759170634102572857456630253172790010606129452514403411888188375937279997172991696257241082434401608435284789168409484431368673105105608162266417552342379348969715887634969601074270805995661461250415445255372226033595770767577824092667186991431853526249807906744299530256458664213290545815243309678650567191872243067674869065543113235079991011050632003347354713942115378375858440673173974943318729349113391876980015346466552065944990119227249905159175773615241674198698985246077181786091564537586854258358653360921076831922168820234916062086834802405567832916879599397836213399054743889319786070040272065240039535704121303279326216599062358844761713401741158948178418614092040554847791293417989460468990149923917994893511721300355077964135922728350520671352016034648762403160422495635774296348391339540883713719178421207402434723561941973907655871472254788572024700186133928758208260036056640352530252383828790682412471171986832955584335483751686190264511072574348843942281460915071999865704957231320790901944287849597031950704979795499236243606311875473409104590931531709799096541977437818693748843027972964124169772391952280172597793304245414573357253373702099896423449007226201171228521042378201259807469809760886125595191375935107719454258360497578830747148478346626657431795636035693198354765789626172939460095326381017412127599619746780060187874788060440141259193294608786345569707742116293864444155939376861082480927399257753464013891643134038628766588912860108169084873034208583806013374114126558174461644418043221776606962458798744570276688005028354067820629176389809063185881437848639934271463183821703155806140748724517623183360852074183093443940593064678683551340565530214521342619027041552303933396655730902073101056564638480576218795183636980894329806837524936665736386585079276733762482290129020969740552389445446244477485765089665501899303900215975960824741878142027861865368020441629236771064261952849632427855286734108919841610335931934252391927886743793425749844862042475929179343125687157715070203450076189163094608092448481428865831374777867794127227434894510552220253395952941142243551968038000219247958368298366771909109165298205588464128643727354035745521063034282768629017295162113825036173843971497131852128327937835383090203651650774911906253680628797176473217856457166558851760712864048157812237284554712179136966965242587450261060033387329724522268804131349756199760347678380767655110041840412986322006444813106576342226403408047557939702065744476395333286065118266192306742347664031027069694672201631118742582949359182246358535007046738850980152101727234091047096712062643117271336649694132394929054323117201944192498676936518993954318178617973935916721638653011633336959919198992099643848257655266690598690120163399387435035422068675220699507914266934167427766843981461363088084906212458074689976647402584965163918311833160757260830412996145701278117397646215779053250964478695930956290826108031812506659523465692618538912934404769050202704560731067662665235293626923006337338736181146058990693590280754064027051760490018857567645961820566581017094175628566565455621968521535010743721116523830112054961227737476269194920375523174863054396730791770490388439554724435579858555346939032572745857646440983617169318447326838482653044400269324139404204116038838741622402481937955126391997719187861405977954868224883938072291248375896167918943458918301411702971131765822654900727749948926843529487907520634865613252244774318402290737648386142893837773371258729761057250370854072215519082970576183592221562259411789227724333676299497514689096605540379905525024615220993291754577344357601888469131429823726436276500967505884788738167121739749429042745045555572482793672217224261509305198283630678996770284567245405602175302842633585782800304813206109722105061226739640009532196287763010762041586569723455468826871034705038839005600564484598749548598839207515801546415311337750885455533422935665140292004440125423085207893386585137157717051592320056183064243286855821211997890559188741361467951179252914667993498137112850081639387617316218707615401431941986833790353768396363963995023522173885143940636070026097041875676202973837763499932354963854250572288127118619785081743185321270424782065452398613492959626120314392868442949756327307754283158215533229442047449541652559651599475659294268400824146035480471876658079157349390062540848360264772036289704185643832650302857860752118823845823685122576465522419426555058933393591260767761898980738502375078024941795563262043770479625770968032348719321057404474636737485273540546900936662350638784917247453000984554729628830191989284724631507367694126331734031394613421233272414980859589478860532904007436067131885758475069001131918334210621689650527163457163225860721851741661440702839358618628544121152327210159280273614060121217079970469415595812848493399306324548443470726329651746909430989752533280515877743625607353538801449098359686412631524437139306557856905146084684742956590126417208168635264478579815700097512805335672541085763067031641710950369827422184216628064933066036584023603589966136212437375765257173536714547774740676729835985154410220570427096896169657443882841087984715288851214609441346849121238670813146972244946331728056229159342462250081829969632458643308088602100263657104546270450218236910526987092221016933348244651473840273089936941085598895261919912231402565722971093692986904266247877489832265001085072002302153684048112927152873897558419250351378611641448753572576664824085579512223265302498866818600335590966702307059320099038790712045391213235979249641751237176096299134977911079149561891035920822853358687670996387745713889579552707451816616562700632592908775007299064034831933754528433303410608439580819927056902362729444996786484717588890758245409067860501223527291123502535477751643684911727728927529772070451869889168455635061107169539914941512241860492791561604851779202546355475428032008976530856673152212985072333445128823109847516948273041755336933451466293430350979611113882235061917663867476127468585679941863506439748405512906775949251589698449743300306727695462210527280561262377003140419229519463276908181327895893495506107474225106881357421559222347238400760304410480159359491006847058217602198220115362858503957511271772258276432230591223278983448877493326772964310090902267911909811395753520338649206948328146086884460294406454226887420378840517598106942543471846424729599008028311352730081617904235543414920835151292218396241190422051109405332079626803837564782774265975606817943017091005290822199878002272741850174911454493250586563798494358802609786390119567385281685709337514483207960002657473116219557538400420198277353246606148192817676088804254857450720896802472534246760129987459407446491051346574693741456217798004302358563303386262316746540654092770011082407146594114911827436686577859644703427166784144469362842076646353875769700891336095498616249485519208437388661591427517540541992434204553707621496203516978438398593095379527751319929719303762271915687329169086182761265114365054964606007737063501975333928922383688914274897698550608231047200032179353216788873107842413868707660374730891853403742661318597763309811252532044934540899032479283592234004730823010692466111902967775063097685135602535681550974703603074569203729058568144879071313194294200150403845528752530975424242693836914716768422156656074356881891702926810651212801974238772375888604815248746908916628151175671743734394094428967789304261640020010151480610807462697924340410986009220917936985690489922893235509098217567844427866480863873629586316934118579601225158139046227120141492398252427702668518324285769715122995125689700439341662424386481738972564927129420242691438211610204327501537602489213794728711572150711300456439140950882225407219313266025674772945200134860359939817892719878452203936931361914096825920800201933104632562918530648070820011179446319940657443936166989981360367991206697205901977861565849649086602354665667976531276258425022181809246932532230254305596280138466344229169510907020103804108233744691023578841593443086617902344332416875123734692666130559213039087328364532709486965106443909940559097175797057053772865023688604116693302874000860910717003244152711144357141355889252980178913758169749663876504830179271473569856209096866279952214469745681149417176688837557126077244312637371552813796764563687740874137858329818238301244687418125129789115426840076659264299158075782821314963129340202036354547696158232757405381271541781422956901610545217389996037613499955250363524984814539536956369706511725469485829127595423770332357983028247467268941375812610483316124867458627989027251005750379394628346436902353526204406648332388492478361051463932953457659879085617000248799102824731409947085672173705017675936477016206719927620815270625357120835605265516754819151839971279936376836810734191465803395087491423361969642042790449258223692380836627351508993289724209265627587486404405282948555422443443860043955324061315949664990019405193118676231541338754966683673126547445615088043482982025226311754508847150719523668564894479772746302852482147523901915047656354729422928444513114307673004329581573751618986122910777608903334979066785752072312969533417350326259309040774344288197700635189096754159591253972728368601079056047383643923248540302170741037227057595219550438999608942469541077192568326695517500369826458996298175573463244900281437258297515642321751648061847036799011501504048222547012058229520449490740592039572463991087838161864272644640682149734793417103951517192894542907674720445528227426836267997140007503251884129055449557353343473123639416287435456359609693666074519374388941551404275584607437308467089381641165243216343393274777306421174619985197619850394521456832438239363966439574791898713485908860755794638959316918006025441857326868634302408715356971140872154320516446109806931937044764981746876985653790528325887298625826979825459678421761981854208363141775127025324735097532208463926254724980141450034070231823314213728862935113497445972090631962477828438944088787456865908728800865029679252085054362841399734697176828533732466698868287851394380995929848565463528301554571236920433636574429124734514768192296435864226368885187004059785153063335616218609912096896917399528663246930369442584556518578197004753967698383696099693617048984662490437599680973147590793140067575188416220538707703857038888475283020831313261020182851434461090942436032037861079849192681497072712952010386349217354472095801439855162767831930915436107272254879303695196622199091756614930641380504615069896484460082977130766734778066328260997162540949891690563913344032157702001223432206617075984242347872993504538850782519099587167069352691060831293190620687977853509071932599065867309592208437968464641616220204734187668496748010161074359277734966219017828637980314452078152413021699131374329019663788276545573666273675958895523332540749434662382389242921433807708006092558990335946742419312970877779797658710888321502468788866002586621306899377783096961732982600683202697030253475621335675622049766392901102273755374342698523546195047822368293132905700391874704209762123036581404171692553831083379249478539547800707787474374360155254603498983325831984265988587279118593575433283114716855372176565638521310827437918631222774804147814133917123957670733689744933754898706549234159492262486724043617354040267910529892832437083593874662730639539171704936862847584426604534187078507074177555981586779019257238902661180953247078595503044757241056386838145260470392607326459065553736349357022504849990239222150784836490145810314890711705019544793961931448161877887901394334044882840275403753413718410853930028641306074781645054268978839314420318337436265816987009622852980117886124140077285581429548750415736125452315756179455036211235404686242620887116846880086609230154780058458408721782221777593156188160174103804163012309620431070299678291698711120384831838327159355734541720485219425208374026916305281744122803768241161628059753981921520879911033827764803858292848806523748571763039320698522768806485635440805464496597253659747496607991009906395767706407396920077826417646945471985534269477297918920700649168368280970275245494080863631123902749637380789937598801070090899614219562313136323415390306623120036153671228525314128263671916590318571971711648891885286687883139863273354264989105758341684457634324049872748766468711197189084618580730882836484489297224555767328017000942615937086858081338837096877743152432550272578220567189346154891089622920282035630933981566862023834240446618372491436576390031871342088004188450044384958373844073122232479472277942235944167705677734832175469109207349277069680281344403976690890998658751888360587257524670335153176659057793026849244592509885373782396811442944233144163875261961569172251011255817845829177230863101172596752834522411726460119204524895934625651730042099699435563805274675012086795954969374345508911283680042544255206346810173975790080185501364505305033405168112811921682081744504512057504347596146776096492600690730628196654605996071801228043307289177070522509932944633233032561525022883071659488442857464691914044589300212763004409430461897208395258967358405522201690261440319006414120178311011445813904006645988846777774606933407670774296485436522649150077903674860518785250400880137511401784230913150467202686490977415374324088917157828095348649608302520300378233066750530467553873814127611986749701622445160670760927210614439275237957107743082486836318411202793800149178259091738677608239831592420997495145115746081573051384833876786862303723802557770199296292388185705354077093596715513505352928484036615256658088172208167284466386629326750812300523503164110316227611248545211971271855051569900762804188994156273078274594981777437996863794837213965480273648420691526929990860492032791573166884917798554610520934879886828841159282599920499417733492641597948410478487529823279603631360370180881721997912786136390558326030721436311707976617835834729425805336187119368408554407680127115784528735893929631610240509122414805798057012529127373695667654522271262700634061484189093192551330420509389707395530958793542461561636910982053754287117474822382215584615892583725602161178861982464458452377060594744944144262827671319207899338802657160890618663425331910008562149312325668818636940967889071339059666555174487333837738892077599590912924079552671284467962154576812057305354202902364186158874526759015745020856645002142382426471104648794708438796239417914514233263879290324037391686554936941361303339406215064981237870440878396242092275494706629643477459828716536608198152234646318616853371038915368847661368449583450406248477637872749806179419707872469793029012411813802011956455374691464040769832819651738550521042258750439319608805549232581905398438136042740525733629569067483553481365047267859993933249220470100127242354008301231837042621251028001976556101130393142032376123644339784769734669496012368147903235633368515370432713827527917108806976341552140726056423460608903623314331243002821763831570238869236842007416734992243411688713096031954194308733218760796642965480269325850012054418788749278593233252940032128477626576294507427765012651049832853776872831241352697273081682382197201307050813567992939455894967102143069205794754191402467280534262283885491143741442877234267430399179586752293717756336804766395749683376456232123771104949025052722275273259510605231287959280581623939554109289866402375574318018371767102107461486693754697860309894779859371971596707869218828020167144532144695291128026675134043132891690714248189463437306317316834488273226179511783138011997812212981668536427978703159277882541799312123614889305971863046134804177972180217056021178384043907466637284476220477157695308039052649242084789787708581756569226706377144775505826705637804671345366957359916293647272253337289820643115998494022924534874113394774938747191506084037697699991644214457040739537060462941638378902980818275665022644106137816509652386027684419696367085197114773083331177015274902059343169333470303482440033258835995921147123849983070107848567983646130362688284078109279802894929065485198342971541035482217906315783697220761864600872566048806879950444742308701185423442966248669330734320275796769893874394600931020474564430318660559119086428644196812315661135804445336673734097027477790141540142131561787666609663359427653558856927823918954256679486202372163120244195930050632518452794239964596612007449600020198144330140192071821001588430736591551798429180244898054567417721272468646062166586610034551560592652325141121297389549684083299880442646418540769640232122290298443148824345159541244485497600123702198263500923314593535793495601593106748929463245197566502584917918596900624643165040539016888088144643090604556751130092086605742746337116739585899603037418949298345715182383996542546308681790076558355000465300326960308135571636585586270428799550297246259715152907665076166838063599169638987623628877066969515272807459537674167756714333436789374310546475993852654709558396618810301802165252530291165912985282629414728140987711176686621618371697607415247796231841140641485513077393957571014847296177080738197485107688368336243518688403635180555075330962101283447099699203613167465526062414521331175269706097761781400926251594620266461683104266839602570208208484320873324556384632343455396372661484021584389250029704846686939321862586178755640333933154969281141511712763201200480041449228353874089150538896674413006355203400047777121210288421758633826944984313576192329087976128253619310492076482147794103000593761435912899340119532359624766657211777286574486761708594314069975907611423004771285739136088913006861017947386269479491609672584529524075984175671853813918827997589781905402586435450991645501978213639724873879757105195632756716116941101976270100665272696401437357972237518452822872315445882663454532660940904908317368667538278507504885195420927422678662787714955781140440757234461002200880135384577517627085784888705575319421830584510974692471302445252625843733354508780354494841432092950311062622389611005342136415874010431448334233522467236775677673157034046053833567692193299918833811390054591197823133920575951616234852786995443171343825787610401878740772883997518591033738066507746737354592463961470385180323494925354026016141389758381865308949165155469376250301401689184618106008656623791953534737704739033797449420541665974264614289015580915075153908352418483299128984474205811226510980102228640078793422358882666651393396110510274457140776247870341279522975393076700967253158679084709156040634378820340148398896783557537013983916201170674878261654306598045822213664813405100557893547771783524223758012458349256947621527847450621129037603680832139158631819561979866052439154851067693357195079345272788664840589936629149648053210958921884106636696730998863281129894772182831049504382865895607319094415838349226381347966235263875833265937638917841197591456401205131560285737696008112071896178459070458814958418628863845253211416876903945066437612620680048957339894817794315973402346175977789866396561258006402458954697576086987052904846206350195449690847698591881661538746137264154182088649923063343963349959087315734780319894583542014339511114931456459751735812097715145996223935559810382375130490336406092503432256809837980321163295748617962818377765526013410814838634404741412215929253604150208303036082952127711859613801927574946928125817912571679085209507401235723309311475157442644215115426387847655665332727531099048863463159742032596735168509219696087452504340278826875079232876147770915886379837256320344427519716490971367592868165238041623416149464329396693549070640613043333279379785662230547117551461552066462312528752206525332314589715746909242049037677425799525331620172358774746260488192607151397308631479183642943166858139508256728534460004527324823785895023107299186624964009015498088905417795954068543728861911756568978224514438099234107890766835461855772912703778744719343755620648990976573981097175612735876100436321945080976041606246574156879125862148335102695885123491354493785839574719042438764032000004782054311975451494362987170772878585289621696948036971410637667607623468033699916597715972023937150045191321858738402968049083949098607830935239464045473316491824785573728804890229142488803853765508419956342061158307458578368015044660885224654775846622505013668493989813159500530163917198462719789259701895857605967325770384521470138737117242054427037683566746560964502060899761760886454663941086780201072074078351883941812993438701707696192737401297046544757247457761230833277630718459511584246026851850077227984732121442530151029808010812458397278295793335319898260250644121949007997473067225195835993876691624569916337659611774416850052613122927586849578536068706866405547460617926308849453900664812741577463912553188678831979066375313508642007562499946873812101096525489279298456514865351336114502410745975143321584179918986534466155855822258970829218848145931635619813638009539792884120912566226266844392272223812355087223639114663461237666599847657291424615858429904497580392597244756847722750709105532085826191581478714019359783076776013226155709534736827616718505494539878208122801235026441689978641744410053400081039744256142585417475978422943466942830904934781650811845890716086773152568477991141152059753396096566779858825262234633788250794013665898752443834852020587040537770384733889958722864947466789062621892410325252484377701200144359859109999118905025544060258489163822729216726114443425763287057907956307333204876683588101668688419685300619585147543275548427351115946556487560444298981655774043615818844955713669074072103711159769022576945659052487324552498059945228732070122891323646651492313946966009725610630927599501628587889036323289494087333733062967888291707404890475778336432560264961222436762064727952707443706455117366731230876484662438779950649576260670824984336580397009819033777517026900714286715063001943924383025556267887713789711414047613588290569821877119958351860952718179378255615436744613386691693246259865392740710693618542010230935166484296606750682101688888213290351416046557861963279245603067690138749743445276182732989517304471159830499316226968941750914037157109737610017329568144675008838919936721004997881801831313589512028013186844878864442439243977300477685079913506277574235640344663400378946843855812431137559405900431734130382432820396245639763895080178144909334882024505449207132051894381088703919815605313466759588726328870917694432566183942718425229676025802565265403531763610272219756272706196151668320391540424479990203993011463746336405084247387718968277697695330328470840603214443821606399888130915805054320038985862152479200656621577499637497172372369789923547781269649079524151681915084534633681530604761753413129417488691039286949395958410705692400164881803916399244650917130690575254348414315713010220814075107566251777367702242020150310525589410672086270857411229212677141990702366658408803849071591489185475395721655094967981812476388584707772111048928668861080990484168610465194652562557020129684080026018755906188343571271930603042070304838580120080888117524987802983123992671926025675010789766796301228270435908550715129770516473212514399177622801550201131597945697727969299755523677959148694656684828716125088935215039389164149827693871666490085372140860762699573293670637482675003301057787599676693925801632314533115076038942231268532610801894583346148275438653956124085468689784887466292979914198153366132810212368142799931248471722973402013537726199946554629813799897189418791120446381630155428964077015821905862739338546717713222320282497379663630955173991514565473224059865082191925664136544484080164500477404756586475362351609058157379734194082175262487682512150812029413199353586707690255187830754860922166903184279506261214075356134411120577310801897340840986531651086361828517142138304268020332085347789623151931665576140072404701641952923707580952900648269525950238068325090765266332462866617620165079767286476151673612354345034700612504134629162526739485445599298837348694208136365965614123862562221116859524650472295344547587001487974189468064700263082412260073108967009494297918127227270119634480154040422223133226441917039913122879014614067232397296735640585584126195375164609962201732061396976209745806748773343890770724343000754450497088982105344004606008085532444355438505625851131401030846750130188627547869323496264626298557672823428521500756563053791812453732796620195688095128567182898821077898744608635092182363301356046771266543224604217729354993866746973142539489170988581152745038621550917054294755384974774931733709624902980463828914601908436723405288152129795654800376633027048383725473169394289349832392741185151859522832976225567177339976781044493323999875258743494496559937655224507833971611446477842498269724727068724356644123212510359741905012394721713198054893962084366891951878056485787810352906948103765077389367950194576582253637023035918342341739109673954895606649297216895760354932006110603658341581261158975904396488981558820927608415193939933711713943078815654284121849547880605234331190012931492930476350547430114716453653116286208595041393288367168792673643910170168927064521112946869039989373980456251415288680997952536314800617656340472010137283196039361659962192411110378706632322378042948575251493984629157331076904509706956771257088474069477260889402256710256114731350132377405487975643500883619381072951008829601897311532358540391433569487720389857123068690844891952293898742999929880794714204848355426138549539375557954537858056198582242445902394276908264209030465633309519346596372846859157792174954291731019513309063539321983078524020811346543076315085772926487834358847074026015278136301316120377158709172369571581933930033912026552096989294145036063655106052635960477342831746707495765782109528339134821511861935947513867356529429015922182382440566333311673680325832601568033882111772544717014494092915438659163122117917343426491347149174881651918952977060386869958944021628891685126302329953531682511583230141539474662551270995202511241098363895996110072239708218823415863187780062941077332169712132286664989142386225088908643958774680311383271843196042709259635199228187312027669754755024826261545570350075852663326875486614341953736553408796017458496139970812451127697362242979612906686572952292820348787607602946413344266710310581557227230673335871629415331079861728196257444564427806931984216938535621338166966251285534087276588502155996096144062235063598473591109160344185462480074341517354660647209138492933436262183511304371610115866783644158405001174610984573633959261491094768438219528986988143167052242611248766474237438026858365840149658251808055170657105015466160885732300930444488982941927587399253444353483801931487832701856026719200223665313059385215133402739442558367045713827300495204199596693094684074354285913699089660621347446173917181803814585682693922429312346746609077372263612126400605319043455020604358621031702479978450423719352605843561827477023562295330258188167241974865824219461327272960812042503264259615094125380701776188481352304964336445824487193519682967989870920430146687494906678044284185744112142185725263753951135221293542335760370186493136440326738927175981431475730086139886490699372417065760096204343081756588794836525020802975389346687286034128548980685617015681558466180420776638385538505245238869316095571025584400101767003906121589503245750059127040645032301597314903961581167224393515577773290093166278889012816234258281543927537479292429936322524170909843632313240317946295933338483752348201362466679129635000646662030598318556740439922324490790912500743875719120039836536146931972041095014819198743694230954196317320083073840449544576433409347907997092358615552038370464899143920511670112514033577351514600232726973426779354707952575867456008521942249198383639530166929518804968856168405063509221825217431254402232045533936563013398906601104087708310050472954631205504077157255462194632093422027349523592072393463363719235619436584240186413831323847769062935254267656533872065153549681111817514766603289146612604695521515498223508459901222421877397503535184375364096621074277238703612165432023872687849090036374496039075656578837718586426595143125882139382967748012238064594771508731784299553668985614590365443568973787599968737862707210894080209671249780005562845107327462153120175877443832361597087794373327016860474999162984827316361660248372244678180832577565345536491805542686938338431761319591824754551972111852074418649021290083751107028037928458134219399236681711588466279696554037117773035770068828724335854697050327317723967593097096406709741143065434440401911519545368168519269193482155169708886868389314954656281523748645538942292733135370349117976306831544934746540612287236319873773403095449495021470519727065308281429573414353593709074435617029272247528546091594231139961431435997762154803558405361072105045387487846279486009591697572369433204792779069891878498875267458064073162871201737893384701639247016331573980188554494706164595116154389760680668489138932909983836921234374513462018248981522709625632356042904432127497977042694689105447675899314533544654993664701833161236100283516123068670817142340164649722270128090805970773145444082261132232521642864942457642314084429891281740658942338942567199827073590290468244972380702964188890204028180342945207343216418423167551813489673877414427793207674014474897969683265731564183397338084694499672191467769740815871790379069832174907526404903107263600690937132004659900604783800964027960543453715071412736876315490476946085640916142548509868869194195272264837093102224500550932451890378638085909638610530146006803683213601628711299300902226605060090184482551973572388563441980684603266369579687274798607212131603687575477130075839720160133141087803951678164964539351064827521184381499534647580178653619481926280209638208974756725172649174787821864587367730857516118031386549488661546001716607529752827349670484610536425370809433762566828909853646169772061146760234755636226141677297221008795886175060887370937788642445720810964223996308254065839310386838864411581812803292518901873971089453470308162410276873671050377509680268711860265158419785689089266974131491739050776020223528847743108653347463667850912191180976755233044166575181208484321223819824419584015490752628462817839156208886942055440070487976130540271282212335132755560215030265453411104666618945359048610093990035980998917333187247797511792405431341643884719925598280289943491431339393553451192377704577206800954821962625806182660043459846654222597567450662443376631559715721396247350053480331013547508785738661934400802142600603020627617114336457977766926343980438576797493877706127384725969578297046071058167450622803351925873455359414329041385654024401317462665887573148279223962853013350232176133134981748867428652580359670323470225152380677646501677649126679921046133122526614597436421279041231639300348062455546315349807624596881957533260070559220461032701218723599315631241747444105987725048186755688041347053116727520882303621583947682326770593128321072243274004302282344233900677958032943517413392388936042563471325250828119442119803468281437824962253830369041857317858646100031175723376850073075225575414995381129976362663606377964778655591261932740338770754861317400388273104785666858109592025485363718118785877595048474413550515115591261155423142886763901255296815275026538264054728081573986593248430795681604691370042322656771580394667882431930147813931813232427858989367136294092774673579483764765666829993307649380820630684410816140052804206660307153980239860064334529697871186559037905455910048187710361061479926422331176614651334106269883892653638026903414763891445662607383862758215474121758339599225637777588651710846871517933134701574191846201578558470025696041449663750500659468953996868106634299318189309707689900572098106092701984815565522258643235707670815371544645529445592403125338159429610664994521788269433792681105094366801506767473295748250890634884664360809719227162407909970492558082586489476063116888871002861227842790931924957263489601770467371851899183413372040381498400668479195816650580746154585422544590191629013098768340761215845226437723205396899308902938662326607775190894032884810717650902284684831158189613020798659292903123988587761374566498704113013268234639530376730223858323305816835988491254830357037173169326303851143596976456900921736181279170897328152329152604074669405124287152055145432591172608985244151871906594044328578357674949870353373372386272870672960329807383614953588463471160235071373297640780040062412314882349984461241434986168576939709031440626863224387137108290897017162796233433802024855900820147509032707528618823663135174647426936833900903289503696581922609152444193250000106072622108491143714132803210113397486908321756819624336192185695042857179841874058429422030468006329547019298653285301977806271034762103054038274042374651028177961945639391308294575479671482104537030187310699876154364126528419009501062037164719959288175576494156633149967336160462127126268545973139340025068967530349098491602995859343318956831613971019848099111403710701013399205145743299081119727679066564042147499246799862254286535065347722209383238745544439977355000754392730050310715884738642791965746151932291762274981870543146456696278451695167671256518254053078957664293088152917735280080234918037724727665655924466988776479373123598112463591554488392719803245120184116164132729554124779699186536484242398437662727489581472121081105943818346120333719372430347653527602642086420860758948414415374620705520140532612178273428347659987097229079734274018119055764260819449457848817571461543503119995383672110962094021110089868126808060916779275617443600555470591534250306764707568338281607291218065660270219510541136215227399693417073184659860553539273331917954924611830124232440251295715670640456442540372955731513073644366703694997812528479781542042971251185006268500656078943727566860904691216766057530888707565209327612979092244828688783229675329995585977473744049877293821655191622876657468663129653149166584008894264647102574734634442020340420399247028007108972375759530991381062941847065336757563687166407116164459084667731274349457223995624022898345601236928135647512684397221881799240411962694195401564239606765979412482721212834852874226915690868177589070162481901251858328001200464724217979576193610988105187297532846927678464182867296852618293111071547299049185405931585953054274668072450320913792471813712248274091667809620038982091297597196219554939692843727662429767410489623372046526766776503141480969240016084132006982110569085158861243987832809469228252796839993592182219164536402860689159347783188418863058835157924904538613766700387973772005463597393859791844994311036008419737418684113345006292298434901292553033947103716032841280974859544006644237577099636040904652753224169818137421845157656390292802940198761256311378305839459251492623327034688718412735330569027275874299195394871806119001533069744905002507799590448468041782550581058655926227140158676091240413339074114108643564421066381707726207497339509299796689605170885166412265923319678305247402963276939815988495758372175006605074726366678501927483047138318014882782447999126413867107377936787949894703260963093658649487417592742133321770004157470237710970315799797623514846943478567914018422516269273396371048852433127184459365291025109278782084557797390846072897509433036068667808472341471254480647721920242076806810971862046180483185385440036346481365320983072617775440332100709169079029227540053881499387043911625637019753109019422863326132123012921663918142913312626209273356481515009164365655143045758331006825284988424902836051036825362598888559934983496392389676869284598854231836349309023758005603380002989438085977694916510496853336365236386747042980612150318067468329473896731389104774359337359165694319416364862410148991346560113570305068968768660928858893425561379948350525789064394157094265083623187321096284475748802317125764277485760086423880798442488498398724637911188943871789332769393548400911400314990669458654126763275919667423365255423553054294665539716204291052653856927714273025301269894395785163122868077081383317702976369959723458714931450817693721717542404289031655805675713904623684458660154100818987610387253011014903093963324045426335003482958654882615580162127758436968213587382757174794251097261118175546089818561821011110919630163299718998264512858974518952056649432531900483350681017038707100511609614282487005155660517638594766986052541092059634220151816274888411561988961676112424528969634561710842397989748043330695454124610430775775933140870186660986834358525284665101538719875511725847740062331414014805745748154630022237077700613052795283036446936299942831628782024875256029397483693764651576842181940101911189974576522037966194616488215685958284803998878419560414199767491369781079960679869043725944075437447909317564595556170102538285196549832269207092858083070195760923967450940453410424261142525902097808642533493805069776627560943444562129221336972946397312809004272383222837346197299475179520170389875581636453103570337645063707205881657092781567057415792738716183214640113941852764853178285930693250378346383947835036378849915069772718163264768443897971304251710320827029597196588041610272940581585061848952056677615430316481744862402358310019053582213625223683823382213800494193526372879999096498580308216669369910836004263219616530086014709783706599517560385048252091058413058964440358897614879342241989633987602291093855513096586225922651880040299018196340962518142338343385749174389635183144112839737320040663713030315226745367299456161887140171737189139829336459411978763546426510779724518270098170308775101756117133644450591553449477067905190277673453260965645351083491687651268467715712366775253642047653017306340547911054215636775809544553433027364568029888403697025461257260196020892908729119792625945456473422934790417415478961080976825455335953730571816490913416540149809754526164067743885143530136965894647436787067370478534952832862342394402889850490273019300779015403245170125629258026803512683951940683085686539337670950220074559906310098181785010208096979466167678239892393638457667677099861430126583704926743570061003313874696185390566542145688586291518341648170678667396341516781907557064429195939782329776721122383204363079898121383219265528125062439481776411884761386817138622352495208406506117127126048698702481057364847149632769414503774865989151103028280418918814498233690504831762256921439530515934402228215050894644311197891134513570326114499627826095037723967044531635349666945760278303738252316592733327627505644361026283588644682677231060985138332079697051162729385698286129929469442791486282219455187270287073747550659708842285489246679453645926691923080792844401155425388245884401655485492317312802690004654785385721381143051775690773272068435465688721151072294208893302231939290412852284768472310060080942429544132898687878603712620451142614707690597554486565969586456203300866729943735815809750173253838731110079490595218787796813125813818386910404735247238390043321778576686065576990888976205097087122603721647424676227897568089135915746026434173165038996335964304364469057728164703730092419398044061876070099231891975420371717412399573728194128570913432408521593709265692779458810769779118017602263573786846250084395065996190403324082956522132293939313843613975506259447307310050518247268523710698807001593795938796332777343967773751269018578588581166700125748725410995748047221245847758998705015845056259390818257670197650371604586697331463727180428982927102498803688668053484718562290619590939647882488261887701778834387065175231491131237093043663466041623957854576827749403675037849118318146405531147022828618717687826511059346621646483182772491770219754377215720830217372434807984353970653661783472261013205972383148264924431574242373133713359736870200305985452669398102005072813229289399450996286724214498222944278367733565184008173713530203159751412445184471104058247403854983000590597958714189697516922077893052906510984704659576978909841966857999200434656591577710742206662687624766944576211128097225618421738596432247976502884512796952059535568227933001317988954454621824962019918807782557644703239747099407468235666445466518773758666323275480781446088474176475530463321976111729040749063859644431344891269344475812505252494923666256181768973852139366707892331748207238719722966100715911843718844494609773406672804305668587036951119846299302723470308483782599919300095229854664675921851407134017744503142435899721555573367389240450059308532857992329478201305554738526412564936653545230888101274268642470666972923208313546152802910529649684714203934478000268837710467557392288943134005041147674812676044664669948303042223742124811957010718681214966021585315370096095387255931281088955203318905249417847454648063482706671483859914861777252303377620624988512477022383533342294260121736863953902852754703631973066373197791781449947531571030967396590334018647783032549364251471509083859066257625336981357961595944925267893400213123419421743822162579193299747322679493093595765419419859680665653283394338328047479788346205352278881607228715059414982852564006910630544755065157573895068791566731152591493638543519804784083247470604128785927079367436128383370227766758965153130904647532732814957943957930027358014656794467345440351902401643546686360625005738974657135375917806816536940494505781476486223720594407364996458063090323162979016401539454274790944898306367441573380466414387338695889710325073074729761752118883224200694561286123888820519043987758044919731410814593182649920760690563827696450779631975318079436995439447390261669491987752425387057112670209965001421680974988154226242127059540863221765252792858377044206942202168566949181936432188354834832038657825502809502837125897558266627780841449488104317458908640227262090106637595035247379405391864359324976052492378179294515944909300630126213929603768112076344977434210008744901135262261906674593914984652233762075766649526430713843497787953870506331996582895542138902783114018598347337178485261630244617588387541077437663248634088349973115984049436424863712713243468909845152606878203384178889641505237208942599193010065987684641284036074576770291475196039715838895076800891173683098783418978455545705158431098895079440757584731538841851145439840868617615412375521319345260421089024067207797138281057993089843201833559125364922335189575487335583790258479228039887437593761842756801394063144185583529503951100858722232044251491270493244063602863549045630242953138638085246265562578564982459590058586645407247625855257852029673192932861218841682675914850542478752164743843881902801045620906393746815930841961829418193411834293906590026813956610052038615941607327166170341820893662163610175133240727372977202483010136280837756795011863482568326012990809954190740322526416861630653635936581460708913326757146820231878415272142869742878642594090275593261792037111254682171011472887005181016983358169509356944961144276621675514557236269266884350872368967896514699512314221928929451925492458273175332238521306287932501088981222171288410048118353322625697348793484746045134078407876192505953967224858932179397455485895282776097898624729603847527126185361382508639248499279335178913835666035840446455251696364990843163539549203711284805994614448665364828405768796883071905266814494333379907952908943415550677653630577783059556773865828191370370515920406972325742578839773265711172889446488148818836913842012344844692058978095959958534145554037136623134124972255807882719154131820448968132794149633055302685124024931846162843184944808513828634734315925670507956729089946379279552593791385615473319875725303204860299575287766725578452546186347695876053995635101313469670457057434726787185132904966194070064744030008557043005438848907731320492558810949548823139342265217814024727304866474743745869382646587569821866503757943211123870272426367646861909310299408488335906490144810257388435494201983252330819196479054185263386224003786150726214320118704895221074784742505429938177850208697504726137498601709980349833683592663936796267147121802853994334935587482943034078725635646164973364180169071719647574191154581398789292916969477522551977409064810762925642281334517722881814529836341336423102093802364667174383137105243092901135871414707289016297087719312606580301951754777396042623159936844722837327213951978029522505793685868236261975090103833737513379621455217498275111896901591560563864711213886261230246533959320598621956391631065552865303943089397103077961601094149313103207524922767418095970479539971991636709550983625455932226648587721282693739447062723345645595928568920653941760025152129219800744102412199970647918200980997094713855564748916379353861401648426933312101353219902921549870579212809353103315515089541977730004877106404450874921637518907069730577055672654389991455705158002920574812512991719003822275448703023426564679481124000149967814041130130126653914514947868391139147931320053546067220555913897857700809993861831461345490495784097053321275597158406651155021760210078268994258796903775670765997223936612653965888513708355258540207361257987782560495539694904230012354639535136140641938770583136588204856243647271644696937804619402502376756294542609059673345134756834694663162650772665231474162314851803994777685548249621097468155462416538373324589056273864860898651440796940923664505309793800972375743180070442720323473400308015410971478028483325541291934148304422615291114858307889642346016646975889981439551098221501666549356216874536619517682866865929965019409729033221993330721431944185717531791174392731743453380041772353320879938225007150206517428631750801671460513780902123492376801205167215060739720173460248967219715059810816033454174629480441347239259950917475776308249225463732031662571021561846579687376742036824861601081035115070046516706204071417442762023700764717645334260883841627750576365114054368739708887213391104617893946656959007095727968525524812343668460332308884010646321330580547373982436872668551489792321193949987798193176167209460947598864669408522488513117111264224931942920683136141473644221364101724067815541894241784207887570905344997057193002876009126958118003283488846337099060932981026715941328657841992615845193017362644356344402169267837449415227450245530975980021795288718854915622883639537369930859860181333657369796988838510210755342031665262571200998754852858221817831493853578558246703824612818002641077575755191716956560484839587122371297981359208251077654109106006874115866242522732828109058763831759781793083340987008322784024925498249042373940020385295143796562634119757469846842998024221333040986415018786166081542419378110580032181651721423908542225522007664743439983469217103311207264853491679766909788855314918208006467649673785041057476690631248623912493397013665048701233696027213329029420951378154952031083173771188836201010805399833740779681077331228742970307678014252732611877212437756945201296500649305600567994241097106519726805911886803617910905107404060301656088777390583494330577237942902699025679384514865003518769833063751858854007054406530218103043697170101260518876223819691334329306829664996402387686460542044598777140932960268162724035151684765698199707888234667984927913457427121509066888816963775439255175821424093397826761395718469969944302005997131516874297473305723532636963340827742373090548550673666323013005237341772751998245997434775452970411436143394979119612808767341749751359963857798200602171909619121749824199709918109094913176601452766504700407950792850109668654825117418412724718411489925919625701190461374801402053229706984598126171389361715601660818540224190981469060794975819702816626435081030695974876169530954942375923346902495112831983346478504683371451766379080558035595458271893837682284671791203156199274083536387630482529237974444747915761632810041051157451651134904312011009638076656483077488447841634897938882284762247230768252039383306175090345922414398091064535689050967784384622216742939456091753557960613977180379767228754439331123612316090941817328392275955640193400749865599637018296117203990257514790819464628773906143860323576479596940549510397089400488569637873670960287384448801243961281111060978825925648570209581625066545714694969294718782591504772940023617692178731747520696981054146969219350942822424814966525483661298332074205674057494885568326114879276891352807721464191698173108102520286728443412020683692062753109385666582694536203200109515362209297453773234232586881541191417521786091160032651109489443444888711537339298589667964206041713062879108571946790640350184548524373565362834189552850622913974813935504838259001516931505210110115211389199000902292967990363432975836912566540644949434595078285021125149768114033329883709993190566415481300156240223669225976320218981727974891747994793136767359523831234479601646412857689466459262627039777409254275723013909140232139158258956864198103720498714178254875351351440910430886970788265661941250074119406141684867487161077918592230512090181523782174235455554975017695176816280731510780001031451291737227379155979607074756479663534045490218511372577435086139001982179064091336731754522840421800190738739842794835474885349953655509560103621292235324607338022457889692494372295919509626513385511173264089326224128158199300480643607435028565272964766055326391657483886864583195593621804798238050271619602166282512410925294510777435144077661437966073410464313547462715251538579881787727590262189678204694822376219817369508835252068020755952784587617498069748091401076082062862941285050257476155339666592427935153786129548191950350968400129643631702923657329009350636520038126085557222818636113250061488791516844124743449038342142634091856182685094768716591909188386540029064349555827222696143607339991518564386136613721955347404664485220965556830693687944184223123419370729851346829632420252649354290344980108713647349526870467917337678200285527130929138378774597712135221309202789733129041081874992839724101574273961468989272177377133533941118220993448114016713162498321916340485681531571753408276004555000365882870104759315984835018928769348475902386663041851408294905174597478224782109113676382673438913112185241537170446073028869144867341437785532737610230875450217603429038073743381493945937333453148471028329954911993007339315292044153371899948664830051556311717969701610373895222534635326934244280749221363158598526125465351376745509307322083543127375663544907174797507429303956486668271829368229934174896672317127717402624136280309037247198465222738240168928408050626413584758994436275972255995902990685563975423806074726684817854502291581721350308329090283709498930342790237344182272647722980400378266780163155857841556235599579899227272655547656916173978984789413361179673503594113270300873400344769488494425133544620449496170048822207884214975465772547221548079927631266082870691399978323721230926405839095577346901457785530583677133565948774132093628858355586021183975502933040445036824476723241145996868330295018623030155970543867880760134444040756466575913593536341328789341784637181780011957892743757668802467988479980572782059986480929723324155184514465109645284870151053337617670775324404963274042567993239764240374818027125392666260434436439444261919471641099176112755629283945854354191453252554560489367270514555478954792003670876667816302912322575600428570589682062582719180199451212668912677076597472287284482232952687221818389599931204027521970337202083580264800796878269187514655885500235067112855512656680853668770907858132185313410961126693235720856139793748626819258848814930869544733225577774278557455305836647278241699347586511613086795379317672764546764314733458811886744247542241768806738877737589623511983171256444892431116887086468305061289986946321892987456130762011875902567482039027797446546721454449914292859875008089254039073686622098120655845935565125690068043164990964772837299380051149066564872908696610319140900851472378536121432533803391950965370993840803408797486394118156628132894421740011801151492245061682519821591441076250516277163816522128833070296074014745549661434451982293224886553505149626894798419820157817881177847843090851958238352405064892249821233475340118732224299254334934084812831230560900702329624049659223775106890556054342359078763565970068302177952330812176355103718023502930961924920017145203309213875540207088015220397725538192204932748358836006216945965252441705721393350639956331482764113226828464822301697135640756624319471312734822302851158985418603009282404089183391790348456218549178984275419019478888517170402177137341809622407449181160546637050722235771451942630110288997868711343961378525587059499400949238768302339237290379763498172929624404701746686162545957562880461278748681684854738111127875423500188249696509646495557980714153899248695357012848010360812478661315088415559810851009980889263179424743514096841039684455522339296651418595578190087491937707674234967844536150866927042651700250127868454720558609780551652527572633661521978018158801319987484583653823008432961199857184838236709338533272863194505716731672856092905670424162606459346903057045826975085653784999749506679467631296753255779969568607559005681008883307179071566168837405757493772768409578081375073237948682479160343843348224289009196199781702717985868067095778424701341023592867156406546896467714471644070781479423273827349192578674694268578639807300958429179862599831665204479117269712798243427088029749198021751837520809677796882818634855746499619259557531085302884385884144393212021757074427034503557900045870620596883185430927852496797631443784232943417182818485860972594209093073805204919053047847759013830977303857502669926170460984593278822747157523601586513315673060543628287155864818246777796372029184717125065695078907051470677729222520387652089386011166417784931543524028356749948289570027991371093099255210637091574741839983397435270516443085249185136684514137757322134748351248009131762789660410267662509297313654020872803604343619218049451280392855723433520029328140757291848974342634731362193256748487489633220799180335674062268861719958668786659307672386366239583977259268530417005724071132784635328348726960850180075968931499344052460328793692113194474337316057677874737015217059130588671291867380560465848597951496172351923953100186785822966942958147519183778298694096505229155406864635933809536100068035447720005599615359543863966521849183931758705877063376339112515344951991004110085241398987971941676128835356505229285787581361950052057156823227394802371288009889193720680543812841892862718348337070485192045095696457448910494595141148972297981871608188530341597748403746201764915814979735768982663945124243204773269422555407672025738176381862094077288674815351991941149577176347645998383064406383436606383516288070643345445560908797459345458247531527267626500742335182344340136461424246125523098420654321138226046247068774386183705387309899443653469158077465156784606264652017636963792638121969000585331776897022428630095133351364846128816737294174352293217042755586237676553669443582707378233530698366430276675779133091338624490131457212347599896041167815924253614139498985646343874402215854209753603171713161169410138422911219347855498905473695706036000240597649408027279758545312994261391264195104953274792789752282338336032943092591854944115004263659305446471559254651830891307209813316236942303477162179814025224778318656137161625636016471756432671537151881512237733758769551223789562708102166173841738919020639172960088836598500936630868818686658914578529702188425048898789678876860105623996231181548764049599600125490822178253489934123057475314208211976492818028554372477460604219858462085096631059541540104847120835902093908168666083724250784653157419044374188741361708935253953554088857729745980938102141825170970116462799592894679151842149316358005401048437834646823149557994945956126930305812578861060267873368210443666247646992192186463878407809909840001592023680653733992550775023649758403007431873731866397384513554924008493184689209204391356134175787020428618062944888553859669799248133078889855689003928853381976080316791915414534834923120762830307739410272159040828588860851350811142843238950059345528723245960709242974854819194147858610414631101991488023605515257509256191573439863153182381124952959383954176838915297847699055833572643487428674938411111715373798432294805559188820964998221492206163747617530370969737110565686497980223582210093418029936103263405986649639552126994862385554939666728036631701873898456330697895242180218567916794849938040328220978634153301064938674164343430756387424599051303001077409894117200168182310640118540800984631490603841632471719936726044110288117994131539092726782054494341896795974633453703376840588334812057393717576541912238002863646025118364918215805964042925215962705975330548913954656837195433763648668261559856706182773414882846846048240960441108650403317353798332766714771532110290259335001384992167813182180340011303490501629574276737738582001079548501468552558940402533785066569892761012630402708908310893104411062629285715628162933514252441615959200777162014093252091046420894408690323533415956682577011187748736367406783416360420690769014007480542445634230963073822896698130586835135619777825016853612468971130472147330275160079587807056059439434807007772377935221762082141300396291875526521910725219288168989869612853248486259743575998224570343629408870959287877454159872032206946399532963892822895783434672454080149247490533612178104368525243737895122205711614003079418518834661187576826490172561237413492242684318024903207346276685032656893529576738980637108111321073126150975229270345625887023255348815736861146908902964847395735066347701360988997464144803600465887462016740034591024984705843090837393346132828813426751037316919339355564476774598200910009674588934101793875709710848946666366540389519537184211533512913893625897535857725198687439962065489122550813069881537064770431625134267170965260303936391674153785372828222257246923911789498783640631753297529751600070548042600985211917700315130452529406078014159308106772584446787000951108479616499271043448762314532681384495861628406591897307843264973683217518265971073101050059476977769039856244483497052776109747472563232062770531847317916433341761867260184325450683922814509930910182034559225357079993190962452067645315191143307651298386024770966619821660284160815357350957179991446350405364067464636110843002723644883492514542711158522671114433780885375590685063858745878766525027450376034122047394518893620906473737547014483075948394852092180695909372658350670952644756693726607657092475636972726561678468406232145741243894244994312325681158431844870020768101866221225997050062955010028709156314269455747886775654041626536041479281829265889683379030915323142726183446893991328972403764252396119374863737577559784848437826581959879371839588240286703979571356553447236631229357752726321995637593824558359580926192960580078225998908680349704097113440674241030226022076670166046048378663713028943613151919729682484331597584219510268755394022807389709289305629518757646247392017902842328680933129766137857701074369910766363388135085768565465742881354617605067041658398840591381947264609702276833701174384436410188451698077325677089176523254252981832755052246183273546055030292830548397823526053948678425475923905469188871670636307466014540153363397913673662525599097234579457778443116321190805633634950259294173616199298651790874300232555596015039979005130433283971433950703514317001324702155461802607751537891738443464467723146033542965648667283857869921350231089728705733740272974284421714105998454075978694733235690320092643598420681456748922371904371095010141657968252260674464382232832059837045930738708849706632047534841416838428685179795625915903787882325585108997529500802072561832223266232915782050822702296206203039929087553113441733626081506860301534309215183188392463465490134661552535257377941787111999281886928749450085422899237419425288735874895023231299555635419431300811551883163200821206311549369058195095556724339675104717025473089857909693651112860848369133447011308581695109446487210096575406676322409797088352402917062853004265721347806980717218365990289361340473138434360411604510164547399501934505073077001919399012164267715962073192587233046699102798548563369945597150492310949841769035497859158704156787843749229594175548563507327862435282796375417997583339182119026124908301829144284724631936374501708267259566042985826691237338069980765392414376595612657814260384871292970594576203188277173873983679549890982950088582562173026329863283633295266244236142840137808294057627487820711863177145489118768383515982757835148896576306536295339610787323430129301346909172118954489681429147152325350423577216440750552298161398627755434192708928467945929046400919521796837330492998131552831213162524675790988252769305935845651768761733389802947344246490802874444515214233692625245434930190343088155365205886121013462549828094099839817100884829191260321389314321140831542092723835403038312189424617404217768645665281214368030352259745006782146168594581182348542134769486179757464380830758045287861395704038668593724358937491880203827630757063792499313664984243522447777543043024118017933598503473291083255477675584748063646988231104153691792106534254329254412048010788905301596616278492127538206544426831087963634207258593319012158269375657940060924623767429689380440639818506638235446854136577850646567239166833188347870056237299841121524887299954553290164197595359802136379944035075457042765016300387619628367189166937714961559506241836246786313399730044532035279404926828174952386163428334048190593946071235006655888652126790992607269374774558543450201721878366369968436156497466495083686819054422791480847880180566335156817825033325198752634740590182727965990371100262581002545212723150327659806656250421650737452194364506951576532561306218050749573354200611649059908818568291673761923530833226101800879427479625286030983195914358574243535853977575502721053013397577381016769398678411403357272753693920475380035389438911868654749660401418504354585880043973605617186754498405003075387831000568619400964893687316202543901793676437933420545087650439233335768776860831121504481954356419765649317603782628151179920355203379134211452720245211373090502096951818185124145333305510591615322671424124361371030211636341686299327479448590334367648655241728778500404147212563558518091697882465441225557196165302785773496051491188031329515756249783030350747894324384620099752292637950296117048231177584051759152015039752179326454757109117071015428354803763561067026205084485709022414541810756620978846676271682164192867376655450440172561769206938479753272439712160582107166211209849198520728034589541150893485457787776203664257673601253785694356309792957612629696975953339873398020061924189498919620259868500710015543308292543047360402271425655313885412819350681812135194461529560379085505266465087078074404037866148929769549778122524852557031965409682648964277190745302298041003664441001961148984296860576186083066855673993456230017159998347470175202905650952998491900584692173749155070854274640300105303083050704031427389812629622567695988062972586172809269035042052549658237958306292380441852661499279849110164395068689000638983036713629163875626718616405840488932856317008157941538998685936247745016580135271230405757984577483427149020484581537994333713101732081855363191157482119659580759391488341774421291981583887395503491279943927042813022409221678292160571071747047055474192553860707665797996506197346457128767195820928496949262917327951367908581220604408452482216395651364764866768998778006405321344240704167193023965579468073247941698468195949318273582407966839262692660537764270343594001488839228862377543104162410994773391664363085940345783082209385477448555917872863958250935144003615287708961996014885219679466384321059148003926339270848876169256008574403316633593032399864643193314302478520497398072798943812585842922545102931667701618671804830685542891937735086001277434918844950021030734335442839382008329404612138961767663371515254005759956955071706117538845245304876081057719602061275071330746659822657875897608083099230791677524588039988301934440976248438613080632933923968876176688776047175849786851656078337532187696782078842337054154673378274465848106827226086336475917279606575658390168033057155494749277164967165004076938099608107144793436411843775991318313638965202067058837998600482275764831101573204824816780607397707612186766211908630906596536355002326196010003915920484561534012943868487998088086364454214838852282529886483095015090449806403335821729890876324853496386405449002358959859238980155860127023151739266531118632949439754082074125291516442025690990254585656421905648446027607240814998868224894966226890868657115057262580832548779480112392263180253429433654635073071954866759623955668857395345330246605745006260314442758616087893095603668887932666913752721468101505871018275800033367351286252488797358955266626866911833291519235887673227583901167843045956584175445231967513567245632415440068951879547295641944294548161126680592483523302582600585769384418470536494824348694796078438649068091396363676068848471842355141505743714334552784676002500086170466542356447866131299365712329366320016965182545837421745189609582145430507434816148881203061432105882196927888533068028796195305953494276060929477912856361160282396111495789118557750920812525004342993726112441912415385009342793716479103900804640156974292939551665829485123811216187622036445155133781477958175183868165728991970205455572106050055011601118450693981938738271017463312117090342808616436897630177535888335115140075818070236118386377138470644955451512510629141550195271095061825114966922421342260906410970157969956997456784428623213008638391669911296111817555306387133710174640668389533503945488471346959957110369329802304039071425929552039976972898257406413983362232167803102651217365106865151414831817551652208824374492276476868059406574038003165386588668415583826704098967840659363015832684577422568407799096111678003042733642223140369392688538125804414958655800396903098393363533683179603457939272060538324221900936222394524167355956446231068207121087156575047598705400919531290025756283065990394609081029672504390786205742351365496379298683193257762896613384546513791750297245491472941280207985604998633066331718903369763535742270741629617674196485254842808197331138496875344984697093232853683212890941302596243075725447363065136250530253158644618814254181636522488814225580742092110515997137896779616869897587356857414859601820170576996349291309059482786450952732637577360830042548725609805221701786474666575563475427511405464041937303166396490780954074939677586047655386685942167143760763935741736948417524184157313048037733807390485141796133410112509537304608702581515261544548336223497117207926043810949613900159515500109907828190081257707514811300713895246565806978217341362901519387362540430417110846170109061424258086415886247487976448032197825110548990452354880006870422812957774776130179889289785867967531486623351325403259884870521685974769607951293992736022524400370998741491843946825394214109083620117569135807460227228073540334550097229038162284243397800076199151598407329584899213554020538122977930489558596362941437670014514747154732838509815793561562829867577719705748677365960975838139116056152394856456335472467144243677249371175408699944656783766360195044376937371671218069684581834448595398613908586082961926544341281133480396839125265823417205139052953255114673607284027728983617008812828823542776505505489864578969514382185646703652352229897826399724640976237076453269017541987155857698146005266841212842161955342874768964705208025992354847767623967349686319459393235539661239160147123754617498477063556179268990233309143921359832882426860728883184370141347916466502509190360258467323372343759761760939698428683320544400967710930437197779071423650980736498609463563998187415646988840564914318466788704980675818727455240040220929590627168241340883955009705684464057171722572819092118004449679913379509880628133494397215955826141422585628207697772689604884375422104512425722500798736381131980448650226994808617048802727706288121975434882893173853626751643530885997982354428491074667061868867073620295319471016702441152101447790720776436567027142357618191844144427257505912547342530454674279968079216960521736262308399527916516469198411716602637210034397983344427692992636328556155690851337040018859528226479977614185268853438174395873742962956941520139691291976334453076103697272932646515684834497735655847352534913135513572245469689623069300235509582632610828522933433583737139655579773560763183028824229339163658491955411710429762300265855613464183282663773675708228940155539961152637950788033278025889973440316821923779412908567899846006917122227229134962317410605054459598077392991955135428108012580401285969571692911137039484017137915028727922639085019467847397794044296977362306092223809033380495397681843224724870894092002727866998362621730852676026253784281716468982238880680855062912899818323174268195342110349781563458743157697353349888774455624842856706321544740956012920095925544730295140376348300959066019609683831293451426967001333180602655026538560346237809254498385587643019444778181591099748130569063505338200522855229967518546464481713523149347366104367310958393359352807725821802825423973863488566634854747786908318349443344627294409442810963005883371320887189801975088013197137760072904612319161514879390753741916605983209322299385683611689854515022907573269994454118123277213283572813015136965672768913820027532671339598804309262137110792323655152647313782173659094718820569835063059753772846513043257551738599469395311341224150524050488063734713171354152511046480750116994032598204311081546083795955696407395931723149751764021656281593072818432323657451165898679776946398691954669806959769561728918090146381914696342948832540638874035212037566709750477945576499385972624318285327389491115508183992647896366710315180384311939702202359123060237058374983334661529133543408719545036860403248612064242574886157229510629228371001384393874544362935670430177303550087242753446579030214642461890812034372085669826366609603770407050318993538242651275077869158220469384383835666456288444655581787620116082126495548459658623099809184715672798670266669239736014168418377953425811321648905820603335637010091166546575493466706944328912010393893568099327048658990191015883667173170905328426413877230351652532056884092649742497102996510793747001818553274674292467022695639785561724448158077660949729926318652492596790287841623540214147801079643459266807635400305674117787874692885716167830511276717926478573596237448237233217183038797656877431476406918280597771772621111545872470760244837054883767590869912119733898806083107329138281651175727785670862222194600139170965861893852336050934850559949624747589122141207762430851556690735020689760003212108211072177916731047536083934550840375507481666890598532602962782792907247147996931386415656551670286040300356189801481549229649507299716291096677446105284057561765558332549378825899333300102725031679264206390757606661636552311231684843140172920970450999992954600861538486943562034722919921772837935457403526572578822814701928278626732582828375389792074861128441925529393788665782791949356900827017857735950886422851216551770599525056260694313620455755272705785956147215916956932018936226358578800429500226106078613565828678326035081196834381511823475765270067889511846254708822818302784151393679700235792234432597516543055472779045666719030358380065401751082252023417860328925893048441168397441717429701742070166652560092334953159234347170446551761647440696533275840842138800162624819117523822347301662852009939981383054565594649770608404260532028153851261468489223503888908591342141053658549432977234339826041552748717144042040028863395343756419569018119359432595970064111836159709055128644003653439988474271524442624152525993389573219589506006721554240035213611979450071132629141530102545500072803755663698889197564271670040434129309383654409698283709377608466261482628792363200046491641754409538215169499431268904834491304001501668087983583194436709083700350922861850933611265805348601690451569609810323318014347233218407958794732784281337811359909784434854499606474105650588934322950579303069438810328571946702474735777860571114878601967321988479842202087349016613358361153353135443421289097280407857780025566326226073451609668908206022739775140697486074562964379788762502192754080106308686022402922697680397999546734110230146387376592601532500887288656390538675625852461621286583828247401210920926261875742900930627769879567158510371133364461503606930632104126196079256036739261899941048581583750524362161121566406183472704112332959056585604688949268101543494065968338815340136388820425505239798752700962068519688071758452018865303206398047721262147705026029738835123107640938754828943811135881773835367753675159340082303575889511200427491599202222632415798959798918959457311264353819017460466974561419506031909603828209692984467057625018822494820941373033113259677069765258254018707014861758804434403008932174143640428266280106745143017048806725332765464977714693002169994163241866375513602108577056476997776274191249016811181149586883616579125620806339566750056793817940985450550419360095208321844435161524773663103858365008579787850293507562648524235386903602969992586651240662397340328346304417627560896257216896595515509164216699298322336421695114121344869412301694920528902124212461829827192830039747633939880768384085548200473629416078665913189523784374440014933450586183169994094954778917488428246875364328714139832811127709538999016470507465081864279046733372619433982056890371367376637065004759656047952572887185037272019948148961227145079705883387482568288661588523687293090274074992172431151706313402855874067759509437871520290983543363693117340067927746380605211438648968397842295309982100292812372632783834935660029813120041880444410233007810018825605259386899106166550535119882127593340693745589222558805634383428014316643011022312116554618328247929900143076955790019219772474931530153513246442273309436630949842176055193981203135941295286403821784576552881437055877207250381879503590650059833694209656250372846196448678791923568419846486557683882839633394548756568723332088646182632940575023804961114363602985247539500272748345877362072089262859687855379804849021090266061357732519344685596306774141146547853766709003469206403122904324339913851806719999079242172557277515449136219531021340979541014301568225026862425927586161531022522786052494750343325285017349775637422542618593261597804987197752570506569695563627904439637050376683238198145209158728497816907265629512377787136119250398871191121290429854213948815207084386659935225115324621187212983152806256798060795799597780787865604104472400553944214687270451687848656254019286860640022600404936988916830157367241764884193285510266444770726460076608661948410529309322209856890763557491111351695184320718688027754503054255281751212390732683518845377259763279305090362405588405964121290235777434831137574163604184985308195794141627566882155191560237339298485088956661135942625041245576918909717213056821610037519450828955142238718567293359465891785399342908551121823190832693275588840371614975450186284450797931368044668424007869851286555377333744005082755640692047562230857045929186493956523378737668164743291416953646564095398932705921927279353665434263236250835585600489141291143042755260702426469338903238028910599175655875141068850338955375197860485295629586757397070338683547337252496566737354149974520159210172275851301640082692651999506857400494782144328835675827591080269413625419712306049103367933978223561834492741333237898122307454226189456728505742983850054693714685002236260616329998108449902889516404270266356516713046858580303498944066969907535495056026846777033363064029653002928785512044977601252941065687575265092790734901553345009541695014720247788305225920792282010798013749341803153544113969243131766427327309853515103423910893431208265716523753881778763684118523699769217799159122683162736897254228865339957111319252550741968355401152317896055883805257883479017056367264639749958789600469757439753772395414834697638836188933758644825534146150468194968037602241030373684238725714738368999726016903876722506008608322904346206385373076964515403490120433999035600212471896270704260133339962943508715471933964201326681262513491416080847053864643791885957976261394255527349648069276823654185392884368924102809070891708202525380420906988202250640143440344504351931119350062798837299981780519691059848423650788586041413437352826136218167993459288551494025511792243518614790920006168184334929634820433514655905868268830776090604707243356469481615386854573978140953361652311695842440822272776649549561578171103993476054392213393627822832647127089571152568895762668546210098447720475771009862277747024369756041117203674476428231826052402427790080601883011222667345392298298886935766243807029244461674944771818283227694275550096469377828201671208931544273422465543898181462218335936606617654334451800530509711075240816291183490432673319517533207059949515871554850751964255066383737446018490315245601253184227375816539637469853556333704606108022696644587278793523317859130633527874730580124991978098008897526830915279426755245038967016485547147923035148573649299880760190110003906691575471155573154932407450415772867209536177263637230025409112057605174581794971381226307723575938630601751276302671004309450677665362083661579984492404165144412770684863645932619229050316988504390878405469911803229811737999637254909339510832389873746736323934797297891795555605745950885180758352741842660441358846747918700086086143597454277166293033339991203114623295142973792143420543539102700721547648607585889633822182979520433180810973161643827976977254939053162381779461791591780243346208851739560827740270201774702829891498952035162172054403312372754972707069032453827642167463877357176364671601845471296349060735648852083432049714826866772948344855663255967626183019328834498552288989228296048944282253757679895310922171220264924659556756470782808795732394862444336633783484279510040928019849428357085707054942950279265463811329924523283874357770695667112012735308660799180391072447048349814424507692568142829930413178808779384714203741734740018748342295625766704762253649691997702937248004600398356364933264041808840350770963511267515766496008654279858808220871996499121332687703163613540877886502189399216796415383357048032396496517220650638334032262076557007117016402244333463707186568007033543466943540294023553489123622086357942477831412396525853513282309435145855281954037910104624660244687962550566009784692763203454174729645622819179427015236122944401543357765496000246845149632420596656107096636075357878547353895447817150636005775106188097558769895928852252397561307867077952260129453074160412104844950644393125642472635365994135547243450715602949617179771880871694400400014445198954698866166142807447684631623946356955213151386501717302390587737780112160894081670416023781033781697420192435182055576130492654943107006833807859251741156274011020318682785338637258630877944976431849239660659796211164120295278292459470688109891847103036959386524847270294602245188448148268277173539317724249597765332018423414519790257577131470224673553935904894192592562979231380800802375688388571776581129871029464597853796871157035654803141890091200591820557381057572061629432646342914754850679844886698922119009373089376184104863797835562918553329105157858309617818451224343884661877607576012169709074479803078457382666975457015166634682867711900269283245563706265908198939064104099433701048531798593313787741958848894423708952654987771388315407862654314677056962496122597947593698385803754892027608118668576952405339730402078453551827578393378456879887475220475478221450107582958160482018449637196792380286389336334199725241121808110326431519063814046815795353230013418441497951597586527789742734457165441552650264848936362679273292640278327564747359986920456544738673858987708976453728093292754947020851426947541518302910917017650887648457405928513173274550073374106113986124902821302946128022178766025538529876889464127530643364560080441739896764122344271356278224435070473367673315087621848943417344100381688668884378872247089432914682574891761656765938593652278023016308110441936411502847711536763264114758148046936765886704000249417772654346831962848189709509208093219976618158578596868370411187859516646395578023858742960551670542898050348376924458947613533331205402865817400542935445833526262553820582186235816678483112409190556712039044261605370041871939581853712216223305696374535757227774757714266964954289675269001389745398846173961190131559838048898636572697199047778896395748952443913679480261703316074983545472506274580779256907495259647563595939987987793706216848503063091988560708640034346474473199274564613114985525084480010060890776781301909231429297119346302317342633468091637714840713238897018382907082087278815062851862516257848200569218358686226131009195459474312519281628105025070321061471008444483323684710243266669469732926184031195104031432191185667636855624904614608226334524047629097393240854384674107067442909382691853380331340532744080065160044000556521470583506375781541004438516142783922412712029151995436302431614529343915978243325489775712033308193328574582742987880737379933667616294588399846299616587927688499558002261460495320714340741073622807669369368745146898102148381623667010212241260322533554746264939113113265156231711108458492489188462352109357329373414230627319136782133164665146006129333496496192445977447491321853021323297891649218568822147041653481732949641205432737674608215955435339519899220261889013992470366806364208488580873806884962119521691553060295169736054551961262558547510202010078359540907621510539814427703697886124317774925987052581545215116172968705124306389779911760993047103590040589779032142824933784042996953324684940422453575536566434639550479530857348876281153173698034533020663145549437884932769811365738183632916780943963499130531683260752827031335084597977805599700984518579490129783464497985038692560178997848263114212250381328359343012768548251042956909135841192669513436229982349063652051858189872252912127215803027998786297120111794516019027063794559316855073444035167075418518763506555923214262715663977116079194819860326788347836302829873985060608382988743167361308718269089392642220342174619743530209601133317417865911682337719972524659710172515831933492071526926778401441519764581618020124241513604286435450992571317723641504488043196603399903566944697187438637827551202938434635405233264806530693223299123735740434812676134824104201279400773586021227996963050469279464874754442498675850004207589860143781848669004822928401475605149017844051909829252001652844740606019065580004204951147123427014538173810096138981488505449793223943898730301293477967896402728708761071820021980274278790446487461231093265213936828966912503988367334293674109249777261825970589341746163907348554957135457012166637154256101829528555759781789623395320373085911840988459540113940799960652350843732868547244597160982709943708528154682700780584399173511814326488036761943259871798281805324503902681030082275671275770769267038649795451736571440132835585683121316448968275717727929741029767345023503815206143795000656292566230667591191593159111504486316850836638566539521127968273984699288648798245140665010483770516843023319892041008323644208043702491626902168810992033204875466014833504963927027081321928962840780648497771893969735879212311756444779764599000222634596314254905948992436672863904367309089228929988011707010001627604824271584667473041230022554769699951632530034257561163328396481298573495115622495529444397952170605130341131468041239882763124339992358008438785529743502763306630832130923077540212281676101613196244950302297113305744136954160957007548565182429772634697804232153306995027621117260911666410677521112694986961774292717675440390030033580842104075223290182617094741786886105064034368852491736891947063772489095253622499077296688356596777464126939027796996834027398564913880311160013519065303376933493001974952743643196789916802398344228919061920828805639357223523377346517655170572927456022849452824046805300883591092629210848316098431327751317370227695543676475340674021209964007907361333169800169134553129464022015525668281735616482804155470863590785525398007148884297029601437214244344143661568355589370711692219331963893346772780953488084681242665618652304555470272973998612382684719714394636857281933907535167234393159785029411718524049941679203658601781295430142694967576866515762180756434861984724506545476199166349559557745192318497254075513341946188039021956028752349620167974743436259671411884670621518248740581121292439553010372380956198084098419962612016841103759749331946409030114786933076733259557638162700728157609460766285216539006934522588610104987008170199809114385790647315668021452815919817026557263596483020233914021344414782973392664088464229917506776127287779412230161363961925930658853949230196413333491309718784313244189754246116507349171983686315368637861630125870521803892720639782353427256200870056350574523543153277333885556705184521049218197462771674178129754527457737080267755651887173115650456281545159608822753031026281756430146064040574404865853143740980163098363186218207509109038611384162003091161945327573041481208969226640504224997701752306120794539681114954914047570712474861527389325316058023077678646524587580938010137911493199664996445012853493586914248505204529527852403402191754673190256037987828710592649381848318904835231546744516494274627046164043772469747936360486092704699690537285502325080923358509133995168125849243617946515661598297691875698345465227832119912976858526999688133118239259669732310347575509640098970663005017849124399739006676435796689235143075461655944627028016539891712120666206557743767315514166760990640325924979351873624663173143049036975470728811569494553761156791241352820856856638489941229400407916130817132127803358312577545840374415816120581237484991728911723224995093083454094348949077364532131176269310165817089750923802141186342947664393519081392326886629979787565635355100321468075446860704718118416086801938517267100397861175150740933451106342248345344004652707475880509080967510554747421336108247722213672440401393972863557960195833480341051918149786556291302718933133261148878745296895190193664146922076720160627479746240827905260947578156836906653457408828894016464305763686881794347376993187438773313088061194158909634531857082876493879122183392294722955208626538862085428778313988911489626523481003879449547744997373757270285453097937442402989513160094550025259080715693011952943017914265662880767798646535468345214162790641228637661666442943883558233444561671195488470340071732713041581807663051285617375069055961232735957692634881987873492238856837330130554725559096396597055116513390090474106800790539780223446635327405456276471556574180559602967791881664271328412736385463873602767104963107015022498541028376741701029273490761700224772632586994185573446458495107637306489083942019988602907093656929216927903610169286325728886087549544287020530891797913380710406286097840346728885593198048762463342930105557861256336003774315271022885034548009845042107209805494939605255601344597861192273953404752982713055424618530534482731320370561113015649585756745839033280447879269976117370722114663462631778146264237752555947927273080064753097444919650302247130548777158116054037410471522482912520363763396923443668113474868202151803141688448054956489883751396625679888775881373769916947666621694154063957127311276831118380273829906857894422908937096345956952890060351565893888914600403311183284998561312579466142308135013518728588998350421645302884117473683567801601087813393447909793500165026152701259063817560845045902842371998191314256972155596963991792003483144528787807228579183291639054235091876006921150832064436003691843813297731506063980032682969863706601993741673140037069706856023839446865765144154009069736627122172186132550328524961582282018621461019523001987510283606704366618669305491682984685580184082245838604962403296026046962486932455673582089376803581243050742048074960908345627614955448026540293713443082484681486991323374914145399245745079269417307674209159718568263407451991485883069832617694881514642922808189289431355433489856819200574826312870128043651618363119560244726732053935436304381863903741228409400382176919547760772189787617450396593862593031522385055591354204723916796211581965947988559930981458935126779855144992381774490848381297909590920250037625274558770607246595301650469068445552442925513352993457234088028520895753490855635435721656896363223808145589640571994438608771264242041285685140515368302255649460300793882104205230404349241924741667202427251309808017113576960695459893438596075142993594758848154073932034046487353996130909634368558368764072364408336051729383215966760278803762862487682289455242385186416124011474061857447012744941843006322134872948763254723595553605842565086160796402960940069277839938853096245819627262635824918301480468751930090138459497232286209725255076856512040253476650343554141178791904979308030594388481672895064456355535334880839210271893357789175308653625331004137633212811893791772555273602468747615829249288860001727321294950788667629152898779144710054598301108803520215985238110886311183844360249564387918483255145346607303880724161861428359015235486670366943398132338347917897527088019440716804489321535480605206599256720922978472992657287324616384376430795287675577767795882440583478238104512030212756125439900475010115288631867669817686352920145484492943730074293880783122302219129774767555597869783218688451040806251968622024035705626293968302730170721310811072591170444857886150531638088656141875140967795752758501555995691477795294396319730864694177729487453158847031375086403820252288267708832118918080814909438854528690528195186802490970698074023855282312010966889694457713214696027898710046850570248730075182171920881989153927223382291746815758830913759873910907837544515504843047819369665192074676518561661088852871506007569951156284550176381347288350047510277700350137029485483091533153441251911392673337148267620021581969326525887110697624786302741707685812393724416053984650998246818377654418583501404113387807298203904798480434288123456494431009843677606914997345442808841126843495302731461188677932046271376429557301270330011087090073162023970930979942628119523793978143139504558435616356914909225951640470777700412822264773797799421951608312412633495429065506835815083455707586584424504834555491043334381804307494757951172489171785830844461652515053403754684558496431308718312652390953781593318569807813899923900536881788333179634168472279419047313389920852186453919792653278620866441807896446881990256832356553660181446607133575276362556468620679896132113622742041340194382268231362008222874795490356610998607010191593523223774967577819346048030513561943241725347107595649957055886916438861952703260515753415173950593935334718317343360790575735961090903948322731254030869027500704535208234912506294961891096438946072904816946127983225220984331727698437168166506246482172661415537559154266567476815356044825845031453811477580074516562534569089818847013443813413619891624032612821375966722029032412789405792943296591502137164394009048066749540066342386444766242629048488787610808986815794825975388955784873518719615730318507522897858610941430590216546935669197743878218010362335474314789548091503036566032677890491550920326204705677610841953782422854681011349768297146177973587459305517205397739949026327106000641081229922444129463577121313755299471013473756003508137307331231352868209632408444874008362499310741958691731463699263848722523853173715122132930686664961289068115984212085659974030541610957799610774933220132834985788559624483760393509780135360620424309984074578374076860334248441396330243230767213175106347285198591412818690778200312877329213232550743560520365491055812784170851223614504475971189319848009149835908397964683555120310691753929283341102128634735812434597263484323917241817521087922648765779879452606318072650207421530609109888476544972436866429820473902924132727064777419600261545738586696733571482075362288611452389795155874109725904370839707689573622627649074838350870401696852072015923451678003538693230688301372916486591419092845298839190491736931181790586097877136852608824673162088275030981988576438852548435685298109374023218491566378868338041618622722730591370943064285997477165348467839351912686278797701394914330291639060297087066141827734187129371952785376229675665749420157339716764655558412297803783455843969966814820325829686701041376721886912357314651621581318376604547787155323363921711281042303314826367888901774191364375917785302249279174437105425843870687882851818020555302036474892324744898844733452951507649315641597612370552046425604439705077426338955315749877268751927996528631563377608388465043239944096306620976354154926782629298193474180534247646986557995084483556497057892358758341245055523799673933739602144613223780865171765966828764955959044531364892547407348739866615370239698722646135462553529566476032216969495842693761335565074263048509844569343421566679342738050297238996792214589358367773562530475970974062534203368142204555999494458351097320300728937557297141617930126328991776476306441323916673210067603154944353940002086448835624261650269951393241949453401058944135523527108603435640884403844446155088636889165609781834657072910592766881026823166996975252225307698317874444043891190649195402514567810437122757538364152195358553538538189806661298086865067521828177792997423239901102431103006424608941050162683180534818328937901936255364350079002185068587948708049606307857279360737789079558005648127042601441161935318770563963934424852756879458786820178561662997048701851618042170585087380751553140539389601183501649284856818085884790414907849810572472688349678047749640975095717928068258380653796152556422545101727581286475846720970817139430587910558103000941101714274719767518847761911736824263541705004111048891900334814708540467367291585590516003382532429052596302892383444747931659518723032612142182816897285269078930173555729691012456860536666873619410535667144156623531817270520286076142563912206862532948587113548728409903792146226227530799028627657689220044097701593473772015128307957263161687583415838534163542201624642010710271596216868243518822940058638110747925915013328462240102621248527403916281299577520729025795619294852100143733764575887380475536985676538357691410733233520274395108339952621780649350508890492499797160820093874918546934092136685309717338839717800589421932859134021623566594388476635342148225258821038793324541057776581015976408971371703535569651493601870224246773141947656605812814644741903405692399090909713696004703396981471508528622739888967532114737829567881600751603696807033665662339228613665586581558775685116854371846764590357794525651686102250332445581183570845096858667300374211183289037410402096335869566563908282673798419831439675110016357805588752373367181796906763791150189541344564308114429766670257602918890663733277094490031217099321512957511804411064010183165080211577742575406337261681110797094215763683911402988249561896843406029116417975696729648557847582135111535316957502932202965348638149419369983932672286921983268151897725952254501071077313035438479462821367028185794077204216520270219231367784173887738957590430086908914692527777373944492351633812143014846166308330106082672939405076301619284866619417450216367787662230272292838956561695780584147307263804546554717570356853223998004091159526693589516470346010090754547915660182670388777116760110375297358038444128146897420833070854897191451097892017870355476557173196098127838183466672440886858559635299431874067734836859308639303804150841474984014773801333415787672378488824496482079793909171965613957774434284248954643673811380169047736017696101969755377244735429649590354871366992048389243737975247968860179443430950283970092967043238007598891133436294566266317071441482487770836135654284768614333383513533318652611984140280911761176260724891655412658074384458336038619111244956113605185868359035817236696521934549539365410291975770682809131439005144206083742665820762789671152548602417554907937267939085103115813821534343383509741415680153852089269559678023761083333245176528377025944157560390121238825627068228592855133353078958656211127536919006176920705368217128015931498892556407301488009887861540675095969925484864257428875993699708336384191106213416888840761820968454246935574625283838936210116922116100800452908225041434971214429719079385439416857685984983030873631132556510710617371009546952974257620716478820258373307561109417603807084273589384580167059072867856412333326859020427488797192883447848329107343757766390877734107153930740838791927000906496175594890969726889789377032531103883132489596396739862989550850824072754557041922271086215717883394968637173907462238874147448171275487994925746761877088736202153665312578814625259416009365913114213714807952908349464019856218671192663229815858235619801945258746046680992955095323330600177092065487082835735201730185362254945686114364647970516085835560322294566460210040340797041406398001605247804268063723417469977221398193568504377099438690986252164002849538042773145002387182874262047912351780546943933219573750659621706539700964786524361584576552763455467696226262166796663650789037910222764829084873305572351730301972562609027489030731697587545314420332452565967869935105824821431810287534598878359750997242419698329930483276584325626598855882206950007988090875312206021887147682012842850838777064747241842672438905020667330430364730016558548128445246921093102521760657452417757914361666444887026878678969256495281583875665685673615544317502372846228998166163962297717911587681920276397981520386228994067484418573370229572431658286227531868764688659759879589684230560820460107959372048466284951030296888605715264302281898215785604142842201855643370585724697876660954679826267996587016470022248286450854689005207548720143339423538168046940273876693860497571450603311940148938530777588419273800133447331960893770590879905126622314173462302995800756309982312806737797960696217712065405851561142880695792725665323825997142284148835185742536238236993079589030363666945497188164640665315518025389580597801948611215886295285621946639247612250496067645775886171679205657926549558787297864039427518109916422352207062167998779569549220032864941788601778301503203058601329261395740397662435897549830705866479975476455891196850336987339205850803483268184904438667268472577475520631230801062703074998105653209836835339194726038851692670893280940630319794293489297738857507194736059828266214494955323038174140187231408878428081795571103061809704622740330159959556803333583972993088138494571942451208617611416687924255397724813404310874114801144911167589496627903002727257150682494092426775401599878097612088847085384066205201199957811414104219084618592675732363291793090340405802953273481043690047253355072606301141491192931369772062936776993885261807739306777271940042754619347478809017328773732203250004511545838806995340375733288345897762816604465844688785176075641145797933678012996608342803027941364019790611182578285297791250503633492947277962089190357717118747037964529683109718374492289648476703843313130960477392350078336361295228360808801306043998407861787452709696482503145971451198844237298476490641701186737971959099250140314218416204102243790016657156799660618943410069087710071839334847677414178498931861484607832796506482170336172251408600480606046751056855403835929768080168174915172130646148812594454694720363818256475710255899677494293014203589729451249723480091919065104999989942183592579933239227168664148778446412379570581288437909899973534589846912445626651677922497460606672522382953639691269310537141065853047218220618281598124645537716171025644605595690703352906196103356965562090763460228664489103408576148703920245650791196339439673491093079259048060183389744842159239962454974605983748062572551534150687589136112306794558652417954600894278268101992606334662226980812812137024284376730705578246511546861329953994156399128526338025473783724322791086197932985297403404352115643403237467397892602007718017937491087453400940762798462033338389403802234218804327753469506324882822762031405707113077697664791880071277857545544537136862593309235217365235528041360327180174386402075959877717429160706274348299557004516967295674857043555748070974504095533199196417794698796091232981991858770075065018051075642905705351439717941015295474157194847217846713876847419926033240141857926688014804549506958633988099937360671615197755381192187470984476320580518234506283072365585432827311596751337220106531567598221074562023497702181485943944852065066017731213853813511453629712118958477575887598581729899678630355711258680104983382328991885886104335489987315853298743102417935081160592000122442833207350403838780491218494648584095106283515508916850548817844789926396613224060350923052159850612535256619811856974323173629974814789157885268370439968969406488487930364877168013221311533375805850202279535525840481860214504530565452494566299324151575594389886844867293409937043911134389496312495582262980942470450415201091833407778107007496310803750550188748628558336102070152439731238830436374539413571935177288097847068035711436568382134393540543644523582423367959375599993677409841920063516250874955763349338767325740484357425561967455645296682827415093307392833082085592706168697547137396700431743465423326100886863202300172398705162021379629525903913518512395520179790350591009872400521959866274161026436647348036784322488574452540476523366207928700697351536977478427576395545978576288676106169971812658818997649077095044888950558208407014569164151001976783581364927717385593510355242268527469526878009107351927263523675464695408989652540460661963108170820652668863335856642103141137218792341299164938078300536930142830728148915057703890741506701744698024878781986931998823907771394706477995382990524190815687050212883883811681587413924702060303853699162946047373952837236327161680790612880919846231231851757153363081577432639938482531135049870550617624909842569232373434401665429090943910324193551353394775946313307081210825422024625492938858781027443774038006208420670322625705529575104371498656204684723837652409820291778214530523717535918861184053570682610461112230096381998727176998380522780722561379465158346457401194374803576969249144687350195808993149440251172518521634284074471217930311505111229977794624101364120910677939565762346133705648110094115427480035641441149079971307436666507987553690645019871676695454993369548342210789775989679623900515760170970575931823739069788957199289919491573152108333486077573516173000996306481628247550971428229773441328536901791786890646460478687160919591569272439224815260086309448257697378242102329235017535178631900280513424153904396430994517603560483902556372344093225056948532997580415505979915380124009121123553813057445180939826339838674103413289244157098418404402866669875003790279496996270138198551264394242983788524001960580019538184325000470733167116118727905984433590788101347626161348786181679892223206319604006935480844788390083873019210096317911521420020117150110227269504898158339613942249157671688819473476412304909383163560422820063949962899182514106916503449165588118111065685759019025599698318100277473983520417722804975598206183030295916225064606160198810370292189498094386297479542751768091385578296688801198639813801913903665198007890001716567136209728501290087194563106476404144944265552545827235334192837882827413040717037082065311698960183778622255582193448652512352525908148409878225283184082432018259898950425627903349975308885686219701317188085516350691743870223225797685131758006280689724532797136805679077259347053656764206822741534446574010051446066483523002487310269430048475834030614924368667691837768716269251555603857357798880087827093046039908851130617490177555961632311152723680633103501728121460259149185653363563235583578565891617250390539289435491522998862679493124900805464527822049962751308184422370080340820903382930408711936477130415879367178244935549793901320063925701560737412433355042511789724390538958933720501599959040126207902130676912910888073072293166738612514037236917108073204970573975071240162254766179278928414751398869183217230450836344944180229469090142098843316642661488360167457841876265569571757966973727542257375994524002375449677173181118995347678703234477345674546649154810612353106443684363327783345467650008168533763154218507896047091810203206541722339840959628842142197887019235128566787342419360807564982834966743747773051082171092063814247178514569925613116716235156664771745719558533486702476759565548886400919269665563390656018120060321237718364602427958680561168609771880520635768059052277570020358378408140642024035346916618112929221132514886057220369835260664818162458340326061702734739585943496927761028754116341553568999862441049845940022930406376947095927124572003854882592349005249696291971230226344484707278303325225665993781355218928383170763338326722727711804793972139704495408401201682374077475069187366641376964157510114195711596222459089746349302896135297420740531650470487471821782570253401768602751129399209968360472569444477504209568225517455076268601217371920480847789143392558086417143797742158987815871255043786522619337411071764718633986705162070980696588873753177743681768178876738724402663302183413037535337732445918511613262236602921157986329235744031376725351795347489657649350162810095719508012728443395003839218097458583509814294228519524733504274346976328357596585389428758940818416162192915673311899849308862572651259530827123726255127977876289776276544149557587117668984672459381684367246530162486217214232234161655559298938090086995521274370219005912219165966996558203735370235575412440137094342003350592415549090836408131542400738265821819543420368176470639396818301182825389263496469957209192493919593365590204057878718772018891761949268148733008596274607127250996528058249891460957404278979789427901919862115497968196076281119768231241064722430012044462040757127620690063769535842002334262210379960607056256238495790278883177542390788544573695778534614403877296529267363920734143454362962299909376194016824213771542812261846046220339307926400346332118366094767820261854498115058351855636011292375346841613912238776413388855963138615006416822549591062141803388509223993663686650766336225403996526993403640964790587109469336726607889827429811663610381985409101912484774875354600866538383934768375158304557438675276967586667394332768716292911479648188401819977654587681508140718530888154716513343628367204700343945317991468832560174876371055618658540695498304260362429510383924494297391465446549427693199655997163835801580587480747967254321433656327863964972341994713082646685235128143657413300913069471545797209789026308544252882351804071593023705968903967715077327429770827980326422368263744676698280137586580250969495073882039052430184244270381342305877367428690682151818271248416392348953940263445586552530219574631205373100054445184877848416798553254954827500537184855776552094778646430275283847230193261096135966724280693033881465795088495834260341143943085677869107495612118412850419910091125951514299292699079791265650999015348269748727545635405035570534209311943112447271553695527195653398688914698472705298438652984852291559114328674142157768992653347087530401688528979766029031256563837154982746829875974020828633258808365832485453699059076002952723153289891979047346740897283747332817863607656864037080916424864083977960148366636983637468407813900791673741281091988926933746150089900526258052340974289107833616134203709858043857072851928148426859092356346122995665135026021310173193898584027058341648061485359156327322162856895527276795426108441164936198187698332816735510310100025995447968906043693116720611305440660070242283211605994434961306168370772942790630342629411621124188519824805322355844726798989768261604255093249466210906049430616857157661626102677237109640114971653350747425964232996392614444572203756675302050741080443847550552712819076387357963877516604882775645240547656658440926933355788947979006384925512211611956902474943578672024343755250283680669712878910186348291789591860298563042840806080851378604053115869122580355459668919466970796270576579789435459461009379686295538132459174156493138895132769985465536374192612849579817406950340564145219084266790654725228081971302189927598951465890336626062740621706548468144380322597894762546381464674458532049671771336220372408016743845569272013280521814752756869674358852186053057269187439322560001417189397450466096271586395764421081740869346569674115642706115610633652134651771272715789156570599405243505206126564910188784871161103079318429363793235825799038826758273795933886398808654827210745419475483765285001782309408373897598774296231868297824409113276285819598456059204631843383121892013198582561701167791467961234515021225691059446853249205222415512551845852550427144064291719286818447683121984665557175693668506814225622250586276086994528259087563244122793655070116755147275049140256002158135960537585286795354500543542351101201069483615704347718599286960859945229830886988346998304042019791288731132362735214572992337588905335129463659759906738204157610748979223481777526201191090982630624697015521124417620828407684654134477905930901547325008486373730631838134652798999925193470335692981897857460739944866660566860215443987426537061670071617266973981393671954201374928853858960029358313309876841288558546307108087932934899942759094733700437285553828230847374110309278086325013784297920976097025620646288573810221175762295975569802937831444128116697595549692577961751089751960799024552369376490477594655390116945359825355284075590263531976717781278173645525276842706297462179579327251657083594665272206250299098377781215157228431405251428412283288915614152970984863561514526493044340337266187177459050757659490021687953016859745697459602050837517068357881508029602407023712868127378981011966802523885644142687505638977833117345953079298541451967359867992577139485387175453160721901010724804080471717675830110933376585116335156282206222971540329984332220350820941078450199484141439049330854828958532255935613851967257252723518575566753251264928923374361371481199604577283758196162592569565141030808069096749731635824388943338559315124989267177870155450018070893284031232996449160147899594152300373097880352437024271423586188607016706334160023144082971263178869319330141154492114634455944992029611663547984190683873966616666127533291404830579820245199758836520333372890157107162487181950434645313754526452202157572213232266605583397182555199641855469043261955449069471781273163745565817000935328337236319775571726681035390692418276590620115479610592319381473892096405417418235430437134604997002615413688190282328791172885324336160811495995637791377001064651693999715872764374635904937204866837429648371436153042451347165314325247655858440650801078456396051289699732345229005697369060686133874019960303456066089385032040029202782373385424744462602909719801303553160404384990203993369346094824223113535524452196549797113343442330941892063075206743245992460769815958447625421425354386608777806012539855950911054184461805737961447384050241773658962365807301422148078479405780106551475716578681579647811131509246276474677303578723750076135102637592805477842457205757992355775691251286117439286045775634391442529880907944938268283118606756324744171828351787474772138917429846145412074097112553375263989449732256459708702364759799274366293633927719383091836799991723276033688186535261792514498345994560521917775198030601738358189855764952392283651497866531731367026528438148078369633122053872102692070295091816037292659531787055135004018455099312753867113143504970798091807376681834098187607606390690611553769429631700985909998600052372780412220449443350018396417262581162555961972395176064992492439054652684411478295414550036131340278612327093441740934315854116575391054880727803928040433945962331844220285192493113907859945261767501833041232554659439059470957375538114849642085993381466728480761746902545514722626273853505729518558383320325078587288939464134442435774539166185531527824883639099881587301934177481215573011836769524537006012413710784316895471545227235335145952569378757068721347796182369550939298795297372312334727580589386973495726450596792797002107372441059195767636917993362475211965811266712271983528671272744603572347960962643055361179197211350463104034834660618146626757164337053928537946215107960969942043932041880582112288168765349016272007374237151390941824593802583579918427131733267352383584550840707429810200896737582166026448011211821932602761578284904703727101691015711279412744383844595157373854839391711231278267629732028462518485179084214379762258653256470980702234885090162369354607674158792142608394049779863712435351900341338868704830144017995991333986590579925215078510664715378599540198713874131510398393549663237525185557129986197803107770347775408132915504631502258646484583216192414937170599461829449362628258377053716883143111185871458277577897078168563497865423194066764968461458354667565750463531920811180909730086288646856333060161934221913340848113560224730991982906788198141388481360667491618329554064524394039777000880485351015869815265482822013355704395788363417617227601868598197487969862740708677672873451213895735793785563543713814071420538263465551026993952947984185596024399008955352808196366461955815228188281130130402132117127011692423735257465447455471790604287653344964243157295594631059304566578492778281471860550697922066299448601527626291741827877959742065486836363417529919338064483492304526008839223054875009372997629255741914231384998596099911050724638451792623422381451573158780548049305681774415023641887935275048603367003409852715837599984116755319490366346827772276206668182693333541680416789960050178396567402467371819812520407435691702839839125866100339606869970906877696140724996345392778776653724757871079310967408916341681301772645531156589324295095520357272948554299471351491331424330746045342181419392553706878696150359650097505822152710986791952725884345553795477932136129081434467133526735091471184708832004767004679004344519218518882133198536293102161421367321605504033141578032866374233498108362267708533431923834123351443966989320035650677787561180893638439418725022306771904711465067669919825314186722619785712885685914766023244634003406857130858970879619333032091284547894637406314087020926699773666229727673312791222677024758906890493215406470392109527911259672780394029167784040211473168211401320157188019938866486998811764890402675058582309013051967493030389792830480196040287988669845266450194707076068869484666222391798224613272367550276160994164234134650687017967624543959174726096950692633163082678530371286591718723998296263696019584718946931893487286712001733467082548412152601109231755744536212623346700057902242942181800543843518743311307405826328640186588292180942259758375947147088181115289433223581816978833705241879578936331407524035099554459075303370475116345694853002681589740843287258218463181860939685176232876841486071159530904058751778960178574285573782792261163132651789783526164294439417894929294782732729094255772220367073264073392492850397039054832824343792721207184845537108987173147640669410965310457279742554541085472877053511936507426712378022266745737574411514455985893556826532317568593894264944695455513879867378165843666723509839845527074085956973776191612487760678905682460547150182188314085559869330105907553633945454922451303884464768168435835144572907098556041447824059576686181226363195112407926192445608981895313628507074055793920519029761526156147407887273836762206443135077974332530331406047379306804106795545508892122983278776090410740805769246013971925201804344642525237503965604881724050929759340952214120257656919889413461173582119488709443607824389280768358306019329226195082607966800582679937912060330187153990371569127480660937934218008968952490940347907167616100879235832661142585031916962117803422607560912997439967817581060001071037468124057027447145221823303949434429944617218481724847355817999485112393145878219642661316613321985057674622887974021356096401921018907618504727874119453442049146628421699935808058174180124433009448910121646676743237639022402332062319828431465546012042805656215916534702036757679302196303824892108475605797235003287757410339136471975273971330921100931679535280079303513875865231625778105790090587860914831652669959458772609330496391207949107085009858587339742631669351209239940905801486155221854399995563994059111492296480517616778315081693354972923789357931654416546724364194104049081618114060074692934475717808568915678840492273472874935758281857951578847716715141818215656019754570566027264959009729627178774434113942579206650579290934567339649440787595769761926008175956258465863425537694945284135187509971028957448101040962749272324635188466581499023661305286105328115668618849927978107114111673123660481927052996484268221227318473179046967088711507219256018021858435735161266478055858428364960470283950851491360066572022657491253383132007951390679500615114542130717441754133431328571532142145175100823005515134908476464445913399311879353918454060870684003559410389330964683698279304784430512111082718016933413950113739309104031440324732828890435391146231934429168464336609814044323029561168856544473994861738813963561658933725192227980130640027903717664566373171568294834463137438160574534517650584775697565236165798777804206619873920771319743716105137464366318808326556658096363244847255763017289864275101647947596138892692405039254307347124754850234577639805866899331144811103130445995474199662481160800270939765544571242732969546408103925366388128027259770763839880829696265538386510021057341579288199553185016855590950390191254893472492108874001961037594201301982264581346703324638544076910046416405179441949096649417191329024776823681182820805946728627270817181373915985272414623865139539945612916388991638404702453764828100362450658961003994201010519363964121014595175103082490199874163606516725929635181972581748112852753836720746843173179666141557951118616893032353742722760869454201271737083712960785740600939223466439419705743694813862980531103562123085190481144782078352560362529320632952232440897670433204621615482771324880436581093247181534550363205265013251072682981418899418105617776246583410611441031296267853925827093051648632975352283680273666691023126089165971718283605851356784895036828172984229062307392718669442733384749592825239508209408632789507567133512267974525170051753608742106238790810035355343339592575209059119385140962381744403432163906465448432749502374185937174256557240945085677452759364250419389169182316971749954843024733593657474265927335572486038131515710526169434711215162648785026234996809691186682347970066385555769287166660489434975121892217635697308644537791028548452751453346410855875739774716032649903151518454123382234934259484519589778699478726124666873722995925474120395957809785036743810168264712652266431205544537859826919463109518849031807613133361918451076498244263020924016696302084976004783964539684638285027034009389884467209897611935902467973385124305703249234321215696983355827961093220597300051150194895037031630157871758188518894717204908988385445390399361272877973592376003298371640151099402107157301930237501746541640159427142502321749632338343953438291671604993571143122445242114386616217698369650437381997684878440997083083239418481645434811334601413365895471875857100446971252880536963985385957980252243798057846770632571103975982797235825373592424940442651764059035764702942955971940857869709926921768096094818501678684228866380462588487428549607858378546547287121530063461319952890745958344355206985383595144831635261844006891517640559619773883999983950632899563712830194556145768781513653150630313523278931185117670817059096859677098325571668080521993967677154855760747072347350065010952939030331776639822022618513226056270377741357303749308625533724645419576407841272252612508443171148216356319191439565603825954952740834567339693871690357673904659763764193151414991961790270657976733256352636495741173773812466857364684238540556923640733609899296634527055140436483418154342162156086468101114430994549167885956513117166028555526872470173354291419826524180591543247934394931750721046925805317263132974849325725578535122298129738622353424855186291110440395401841398891063349258538110842165492647731288546984172427385288528939053900979559726260689653817927982425319346713603154776909695834443266967020005465669911605312235808607592423214339441805742864430573433286332404435284226315305696166034005982459419719457457688654273056922629120410955660517959779301655078775500757320516870404633724089223667577990448704985459863149243158815429261359133670446635275342326301843997943959188196251748712311291690609900520535603080496277701598868229901688373141926311293682441051949496475156330852750375696185132718578406830509589638370298073130990447517652109350151603098581075826748697693659819871091489603585493205546989360615841616091931293746820570186873708858682867649468440993435103252525614063014188303316292607679475286192857488353566989617096223163650231377697884327908176380366631776954954087607521228708993449485886771795161580043043159600835986825210357970660701881048845231596341562566075951430237577182365018290643600862332233321032377413774762568874279401525865231927994216792527165211408247833598126564528990926053266557019113805961817376698263102291129685162154362544727028945936749050005203296016222332373107145095125800187562783577449423402430963818022344297766252272504067691533656588263829422933442447805503843834746305320982812383805370004916783942424155105587457709109908741706939538482369193968344434517373954265977617936942162550101399620927937258949094283269879937310888017450284400910309403896255448562766880908203696004381255871996214868820359881279355002569278291518020449344769372746555049629504868354609880226759418263613223514257382518293314343579954175816474980653258662084455466511486034448503660452842371322861521139076022760449805813808285217133571330053158775801180251678330989515667571877035465126341383381671168504770687837566143313073351982291369287997616378495476465980154158105345646359457926133248145099996410393035140661821697532040380243057683257622482571075371423361379222894801268071937144805622539323056405677884826808781660823605519086435821244989578080873214564889467195543958432483675226150482335173679875420956910162130801675929951541599186518289528871495892092936124866902963017737453819054669364073134819577579259243998041091826827178257666419988199935512511739491053814186941988455177622912512810299325924015335998345464627421055739247845986654277973270710194148276941184390899913850991605638848025842809470752134444607602965817290169842093216092467392402689462620962908543304773137291257676480439363708399980536936142932996300857958074548090387209813681123092187181717220100091588024585354909554367251708766022687785852295528248054517425162399820754377534609612373617975671983284553942753406943427193204564201683141351943675324157848783585703450763409426083152425574780103905782268199172911890315505445771484563194032472512038336781546902408406288780156247548938235418675943767148920907504182631554415677431339585339885773183700073734130128200210068807391381849972383054966996587898294553167456187825456207288027685081699687635292714596321239941913498308005965564417536338222794008630629757153070669693699284570147105152498232689345752101837280755053185847463097609287685721155438640474801924637407314127184635521690501001557246224606288843192147899468857567195739310337335613926388785065865714306733815507006154510175666338314800066211261996557444522667451970038194464479272285551832076744146223617539594953919347167200381781976212551832221253992710676657846574674626634046154584067793280972621851877786795434646650287006410755932249270662987968553757364833813422706316354903179254958968904662671957809246854518675150219510801767806488281408780832105430201513097683160727414626863440929442237313995041022552361308617327483202222464908507156144867795057005427355212984123426583750418303818826609630023801548488829131112399454779388865964881840550142407251770088710585595643140077172487819300708820355071965900077735535552353563718466782593483154355777918235326817492617772089465034551594892884835772650422507606147004235463625678016487948296100487148706769292994762477237689568204036062239659096418590894360755079668428053970055504129808876673234535990998375092193880014671038435076129084423784033181274847446474660350561039329079006137177376351717697595157398800687827712270647602301492626733960104776319678316385193145493542267747563002866109178605471785426688268321317548552465904128626464519169823267166466368497343979783937827773026922072977557888911391399923358344144298834449552881907047708581973878416585143182683141034232520030118876047298387152847459294487663706324912625455689779101680603698771351252566302343679062080579217841010803838579992529910567370292767383442650189394501157053206523912461484213681570311821245514483275574887173643967797533254414200150849926533277951704190284622927034844707310474190767458029860737995320992673259419389905595175455979903115517277639507727765391907273939731367268528521656364651257637470050767150879131122771053850050328503816862002920486048668498407317555070456909155191020799827052078888157311647110327134849962364606525927615620613849407728601476017803626705197451802868703079781985449687183635004599961155082834084530093568909232628358237149783773798388725126530677268315188436718191744934369723902414151965141661940682325486843455301037784430911043312306132325402893722002620689937739026414510054375298431870012998516169246522627458904230603307270854865096480576391765380355473346000947662363545825513800837845161998257860342744526334918176344522342592291609233587474284945225993675819924838417395724193697572383483706453405366046131846194446311273116019243199815441863792754989714495440891419419719505587386047074885947160498854301167876606729379174272789024563106149304995468378190518537712123419331577278055473863987947375946730835959030390527042047524800792671056611838998618240656293665092888004950323397332641463770089931514902314408117419210605909274216137555040313885621429108618223413401608700882340366224144890294336964184921820933413680510357813299342648596354577417961000992685178737721908785525776480342423580726351377031784872216732254234870456128217452578154062386282097250040119431676535141094373485085377209886025741506904818194807863664680550965998876108389080863216673674737023338228013180615461552253577711205850861775832105800816554453533637313751139240046880037362443518948401344313719898132850820121682899789765026074047420983913315654793011294763803149746007435610365191314400623689814375078719546022185298968224995499541036540688976311507090078898784180145593733080705674901531726405721763806849267570297557072092166524004644761075004694241423720597247221367243793670127954454219033167741491797524929168874039832111218183896914828402537895328730542581691385642319456518780891842446590073339731125592872807586731409870702631829356426311612887734803177736891121395248481343408240921695837227231490538333312146913694349919771290573368145347624352490917709386323173458783301417027611900967948879392482715044658297318712123942677035345066357493188569713524482945791180544242383052218599414997279853377772081737570376176119705336586014420636229252662075552387346552960391863117648042630465673436033489233016106657835131191706180921929058826763484597178704436409543573131876315788299625180276470565402290391719610699826595530125313511543407987348304480491493533172594013711258951924851115962502044733593163496919148049875966823529639361226672575150534133332056587692665138107978314314871205959541464911904039868568083131564856572551984613846613980026283355777340762762830011173860304334064813314509340775330345682687633243436224012245532523331116981105391988955102494315130661048586113303414261723662341558029111106689759374303297275495010240291222302997701896982120584716431247553997864292530823273109066536065354439765498488909968299413161265932439087734577651878148078774596836772201111231280996142926581238613243178696545380295970416277119477925733627425074415006322704684182927421815703334781297068066984233342455820114908035277870198940438726601333843918251768014629144462288106806801222497216905832822157464890311931657902999285365102047290241415539256663243476442129202975670652027559838838749800637063289680007051813145648611856557524829336698190915747959032423176250598610075582163366149160876694886598588889523845726998875632403966554716068561700022334867725284071648028766572624755703968099414256155205864785800778272320795989531902137788260510428361893582035780167549287097719826126109105464019713941440392149064119787299799271314292223790074117111292252765837219028698150938013104221221992491783746681964634313884252977378944186498328262659342328412429013725821409658982941377409663223529034578107488547195045597338671635242916619409164857285529898635525138438839979009941524090465508715246995648897846300159674152759674646118560259939386757032761088683937066990757184853447382922043692897024892738117512006674514255866647168831963979944293873436138064040593290155065047992972137935219669128137808074534684735586320001564396911269850260769167780013703165182665288423731664682683121215480661240863019408869801197662840025394761051576472640495432483711583688605031683086259581867601644921170511373454083444506055568272539769103571800185610920025990200939268926123735196448034543456879046592123216958624295733564227605889608076486558645767669967082164196337822136932662548275189651280368205558173700410460481270796960609364943107152527174624289460090909208213374359595639241672205328477907097576664648619544835056865772338225638406056661645357828727821609157029694151225295596293477807800048597829918381122090013506167823666130565098315226082677352457020579733433278887610822768598360124206670848812851304468921574350233195600328272872801622660967570273581215227864900004286402272744321655178905479845564824439770629211058644870148335950497529213012115904158069565944571835145918854671951647955989822154965227985917264882139159101649479849181547536496458058368643915753342901193531579453325018280915657274549102726485858810684936974827157825908492963727318578809890773288152071247341413613515301647247973788625915238061407562555447654657624304028019105088792101096753116718983715727477610829002815142207849552816451666745529680851258525456228100238349296969602195004377849059555884853673538417899887978087251847425621627931640027936027406186004876825921464549955186229187255286294901720794808774588823658297825049038585947112065567231925837855736423823935382508965411051749096891216999288637478205799846579785633390768594280880300431653931740124195765547917224139875131110851113498088054179628777138724619247237587241812240993308754199812666502555991410794231255076879846918117930446310123038518683321161718932137006439765516809530441850792558255447543442956629855955011383699763194214445599659040965871394091484095276529982964695225614092224702145183174863507763525456501957513931107689367224235422222843811959684733456104799493604510821508686278344790367558741559668034769266730741327669727629617998353867705113223541992477487892605044657880921325051457567279002271481407489737746712345438185655084977073803943801071795544926126381717453046981647646718207411439401693163271325096977111330377260270909039030024281084157193278253008426727782957171623188306521058129405910647977695391175133918992993573454945577619472517700122876024030515749970926241530917339033339370718511784979110815067052712459165902871022420290226866389550040274256310206380655098133449749692401120615431418522967115681427332023878332277118860823955020672866984581056839215134026951108913018809161027362389470442056434625460159452673011379435901814231664300487940715052656415952757444205950166892142914207243895571990891966163666896699383562676787303168233265441745870806399045300311511216447078409844639580553362362883555652048110418880952928949359756962512213567837400415294462439912875864049443999100778342331486340471556804084100207568307580935495409266768949506106788115861868461248024212984735228888600210383003435147581270254599150436106166191101958197466797167429082371147132592126478553672008902820162676627455972422248292487372177192096096109196329589721499392417770745518927026719654973633801533979660317758967260795375160828068475566030584010152616491604379323333386457026227237914185576965125011673732128854660990291390361152433583615263305753810504195074677452074535391662283484561237733550210779137704436154221108987471272274101186950849035102133616983046521277406134707985496049550644500282547095567219613682813094824109738766371618610260793605519633732915115705665312653010733310546177953427493643414146380599491197146431869866768653978040583638823667400688563639168455865884458688350660865377114603574050105429402179138520465874061041522253801752881291927128174177176419105367582484998086800917857183049741978590137642565163603695087840088832231448657003909072148814728362493126278655590588473909286336145676431498053766406922222127853546257422291887082940438818150152605446230900955855625059169759240670667729102501160598138728870323097563885374899936008703310256415106646710239875131951493010964881836734056730678333623136349586461200840506353646289444194933571674362755605088583991400434904995776928161231126504180652411351701879715533248173736777040595056382150989783543947361649411096961286672165923414456808286384958651543049952250652357435250286391717730593225883970987977387397481933251283455207150340078639056528410046000652088511003008393367642447421078677222777612363421009184574556895985125574030368668349626031535513055344373997946493138032212650696132862808034072166872376965179449103767460621316003981698374832783253528770811309946374953439718694997074758299078096626682271148867880246369587030104809949206120881982024789941417324042445602697669503925936897718367094276153636125012003069612310395408007576025167054410563286688197602825703310295070658298181233921413485827869771656188061534835578502735546878020655133112465957461311991281386919190378547562786302360547094977752020379778881041061816972635218559303108920655798374247087732259515647666927740825459645188677209641510579814516122573637457637167148232169548216383850042682409138308399492488058826925476710107632406973741063547510919210346243462266091002888852587006129672934990917988239387840736029165143128748511628180600384930466018098978706104254766044678457802241716037971473601462350497797064620169962970448015596786172404760167404044266835934231074811993749226845546850873086547742700982245066992316326819252974617425199857970871619639196832958164441571074828900416712585561502032858108945825891722750143901196527380785378002046673030560830521983339750654520429369854082216849062157749413452213068052988105427692889043663280394885101569628203199258549756137290244992349544159405959492461465157727049574734205685731839998402179165036352879495157768307507082798258102290317548195162088782834176342778094796731407262998722258072481468045214044961269627313543064930759658994425162959515763436613921292459728640694775888886900807790870077936075138334111581250754248389146143293417945488626363275709941991122948377359251788759742565421038589615282722377260607223247382164903431077348267592863687235949728450035903153138501776372819472128794118773125999440010921397581209781954168541145540550203939201997207639055299766893874509423970877149591023233851360901885506255879187085603171730741362937438587124937931541162647413240303205904154443003227606618550332523265924304745154704776330138673598879375989579406009383460041287969256101700112757217076836319909796759540793531467644402862947323777919962650672239350028963734196963012600922142519831206064360866948385815669610890104363521568753810661064074573934554506643588103585629468762818493602266977158024011077293221428980944994132306665030804026135325001223212566987581230842753003379938024856556646017879406985648476130986832475501116911906267519112130675738061101307427327508641903746289717671367796078037323840378650372015439704604616050537209771553172466428569614340335083234071718912299608914471060885170224209627497693893134249392514184456752372312687345119125968909601279568957122753437155168120103434565298515053562517693911513571966314859311328116341587074552115590256479860943685270377296766398551164216407495559637852498098277028697290583893666012400749237015617594276061856089798222471582866303254375445628787292251603006356484052918629698134582142982499407409380746912843163901159165696716824622149796118882340153273032288385840621447112919356134989195296203289587761705949784904082949629662468846039501642549865104270055592384133134368383203787221306825622052000501094792618070480890480604277147512069563853579203164384138440472189405785904826932456290781887835745883050741324791940276252478449615161844507143521253132716181455515436293800438240010294333963950045570581685583112002215874252367690489823505231138555875731537850245410171606251673381077438645596055043491172926210149677418048528494764689864109730533407024779176543491632980338243939047629361366204921199131477045259242348484376235680862424897777088118358292789336293176988150826720599743208414070814403993994525108859043033057610554381265421121942291592269283974159867900155810505347261560057899522536483547791544251459360592418964726009943634389351340346154076501323341296475310044617641750961431373032015909273018153522613955002030442538395262548037854301530694846967449111947785474903237130026465254694032194339646632138312271795539839604090961711920662549245363222365022318366866374641981799690235637859619689807976816517096176300164784343123644719421266586646603017843059914676601485983705126999880269223166746094718373978731956681016226758500863900558723757163545419142741811021610304822103788115442646191887689311169032649262417446343780896431264617923962806747080525690502544309153304282296657663810043940913345020739546665613725551589759719391095012919128356728129463826361212883805755698258384125806910842769133018709617768913442664983639402052880712243538803519833340877012686393591564433042800973797280994105054941202577958719282764458033770268171151775492725635194441926347884150432656114679315417385071346084805164498776831443345320053107605019601189047274488612465335024640078398911872566456258314894920341388806085395470433267524237201141765482325757793544051442295073919037728645980197931304766652912841246228637815021241588538926954471951572198654401888072008044777881907807582784627530331083379552677603404511997189399139282911216037925126977838613432047809724464575997837671198593527308348837445640963855581279608502838618737647814493275291186511608115036178117187923315198182815816675733032691360036389267177705761971732543138742117481577832303678771803037778848677619573042017447592475336051059747839913538176446250867506986842139561403398366522483982904674113342714606924680783576934374780212600747600856327368871748494269763388362172643005777356122540112644555179349499454236340436804132468303642483781326749050018192543568184646493728960187330091278587458038164918871215143449691906439636686265049917512345541607682657652321794559552450338248240548475277616183187344102017545299968557419583243567174584853590574731234515477946003841476297279797705073187644214048564596845523958391481088083750323737553833670814796892666188570654515897456051533083136010107032047822541845115119972741210913284539800621880349007041241426051926331600653297192247562678180374889351579037506365496427543880028556938925168606160550931162990053552957770271182136733050922842514836813914802205904718636353184150816412182977493505400960743395000893978811177209633645375807911503258948276752630907449710847584084851185005625226444083804840620609216574117999809938354922410614450890057073333612892843760761574364173343826536447350859945206957555984938759839339389239760868407684347538270527341774331008649692162348422127600019231965772755343755261864452942545335174625397486875592132200878883656470351266148825987225651945402007423972268534311707966124207904026875852784836047158793897414427055180663991573196748485453561384253952335231459680195718398082193022676204168024511107659690896177037082386516920287178188521647232639518804058253917097044462878526752665700669916588645254812797102401031619670108161032154750835271603142261208157362421439931707491158058312196252847605553679065995511354141251572177631220529056343140385391820421870807205539953490235232202108310445465363408412831591227254554573428720958112861154112838074091907483999949299489015432900652428126830090035913661095236183430457298843845367635571692647755557925342393980612532930699670342811400496122166786195142405872746779877449257027133676316319277729381402748991556832413974349991478862684945467662527743579659553242345933863246305405063153540935837679785876260177353891357534472852132530939558519982811213014815063141657487314985201462702271131963857155127316651572933854428549177498846633872759729893576032315192277839141342775388288279153961338591988963427927996603940599369216970632009573736481736882832202963142354352752197929117055496826727655695031315264508926511721532778429337953989243862170025338180109404077088004596119679955068382414269274696787207359499312509128088438581019090776256751019843100060474094868438562511568815676307038739060582364591701344612301031450154658558871131448371922395209390823308794547987802887589669687938030579946955931687688584912766187908301859263050294370287252223468246438952297673192213093305704008566595557070963524989041068473818841602931455012101797789757100446986994524412909953615155387980024161609640114147924173129953040035053328044240189874765885915765381736719297076921374520645692812106325316850365898093394008537889175953511969499643654005561511981232328162899595649562714932251620983027435058234328811347764148321415661677381759809250754369086200468709316541617335476326552029136702774306720904016830034643195453109854516691067727720174272814797923312514651664054473421170767709084054013211796915550812692827319037484047654265732622699358376531539067159277533347187267910198773809121059248287416382170273747021952844523849025625828451019720232365942032875965257604874868108905505433493148008097234475676193394391407792510603347869668595924479035762981054225540455266754567669466874443377744802181806439131069474983055941360185756879363795635591067525339682851345193388205965109421204697387906088565108241019288833004476468208060456230838459738479262601348898996485537406997942186021681254878627646337299748358293001779244117208702221276738700809006176418679701543622793354897742184009902285747622660825643239210728788907403795032395300580405525324814972002274282949864047113022471927601613785760324351032554077501328236625501855644605245855278089842234631195742536734781107681201641815022932900891544342101690312008526275619928878704766954381707766055065564203462128799380734342129050998803398106415299425188379859264415478984087708180376063921413397985347530703939358021062945065818611059456956376688784858872743446845510763299910419890505750454021750381947811508791596230730164515857078510600661403950221035322030365568294825855646913198800904227049242330718091601981498388817467745463899099390521303394791534063718062479981858054737486882174473900022638151285265378697105621255847863021275445959658518797778828457282692099502193651094903160241211406306070011553307710384790768563990525552232323172277694527686884062872794324300311389534070366249421241713282729292710494718727984614951855600253191487735024953522219761226722072758066141943208286555584505388952555798835278142500381097713791474812729096960166236500533371634809642464516456333207501317526850740323528944858414144969279400704100299903280597492249656337831938468344183331537746151626959328400994405459488973705015296918068115632750357893222667729327938735045880460969345549214486637534798157699489813052991257387234172622104422164406505215056167192510050793452728566728643477793607882693889058574874624666533003512543866973692913903739065790405667988063630311457134902465347503097734790184012920151985951638028098372610025376838458134953093115616165929507313204337570482590688688738865757225251496641497923839752102751471161062145370001038252677041025876368780164260260075479971063202726367377393386275579629520518755369588516289143793479809127240131455569516176486850156606833209886359904415485913413333044501246204401947618879088907533200168521432757803187751778147505286025852589868461220640919367964743978865506451040349841522134584262817448077866212356288340478279204288817555231418810542342230701646985504817191654511569332349142636322875525022232869792437830654082799946010451379414654649699256863508757401760620591795803242618312505594509536697654268585926981851793212375527478600999604979194210748616605530298939709958940015944241025578983726098633546307641215693265159580639549371270989208326266469501062139527381037832150502664302817770518773642877796498647252782752156268967969422738606244754731251523261967126928071578621711114241782417458682291335784642379530133470843805761088484786582797325726930818942869463337469884412356380963610794124430710347368810823720579424339710125205637230910800826868241707946339857565148663711521974707098507887205239973044134967942997106305332882107996635710637317232638639869755073762069006548816606960511806805956501053041833035919894888616109118030548859346192355573127078511551191608221990277318694067507840120590993002723817645526319522168915592284194597768476020353089616617340356890867350023840515884627636323025478737465337224240332865941340581034729759333464548418556215392622847834177151394105735494122797182652685654060351727107485972577329000952063836846201809548347934161153653861281632251736075643280039751725314278918280393728739853366504595243612887623408590137066103879341140146909188490089157725960773397043534500341371275972525191082876708908792997934052826776407517306641037570950535757522649582374156164962429301767607508293747819300378482381349034559859890509717375885080366227955116739501624740985821598902873687899253620337753992196718856650149891807358701555590890437117819499941748243798478372642656620293933982081297309287523442808321248415033084550644212635428031410952486600262421378909915732905513395407017167969902710280896622572226535393820602796896890666694002668650776751250027505676799246826758286171399051350527766687831832000021234875035073628021140851517568104405820165465716770313172224050168196559237714772164968738524043899563775328379502579582156446533825676618948246679075272067119282231026966738018527248211758019459347048629446601755616079552265417191941626009092921302509849683612288260197181882801420535393134275883438947188868682091890762935892829767690134816381628221464358736505754415652125322149608318173941476027845796993958941117627580629585319614060950139492446046161961167114246048659464527960304885562757314652714881528002013377285342923712632684580161000303547807233799408639091360301220806543731188041331623566739884286173923590525273185991791844434113161308566693321849102325780567503488740642317158292601193354578470700727268150086474339025431410993740936410381812824038757263517472058692296159969909541644296188226586775346712295035681325645906065513186637140407309912941825174332649441079733262545199912392590790916862255611981995723389129448045250166442061920874071201767333751940879446586277240843565267265313224503916070315710883219129299229439947110684080922165060353864003176750616798701475481965386784434981283053161460659275290344006605984090418148850617085816033184575706398615086725489861736500474823977268336413836364702431943262181644672745086108827682055014020829278623425302648872075402282797466872014384929535393675750557029197094476030395589499760058274348990325910631906150809554677380147708429452583654913645710185671997672147713113114156569179289057564640117110021736431688293153831329233183041428065401322676231460901079242027015450988082514291247393032665589364843077006869930000985257051048691228403458154393696033840817962224438459483330704161851971523704485835934666208273281019649121807973737116244182580901068325250049513786784394525988172157916583968779755368477336740542828742603154735118923651726297337446930757360986089666090156658609179125716155323526397318434504643645547460634659396871534098195650060329197596351349794632877747415371328197078865496313389232283894953146295985137987622860907520112424897197049914120111936166645292284315531786523529320325869436876448611939942818638002343146906064463768306040534478603936421582922663175782711299334475400309926171584709578988318060168259642848560560821769673849595986527567024942183479186477530321770891823249170087554085163773604237042674779522984492769236144596372128971562088389439026200071497999986789834273384154429645188393561133996874660250199079113814386780195655363621200698877601110008801364073699195074730820413427588441409007788349621488445498167601026746481870935661362744156802389222687414438154359665212232550275961185041675091347393068197932499700610234914875646592282842739482058384516874715117538010573878967323557747017971410303737928617824175697481267676786935664637616845069001543846059775920826072061718134699449085140463375050763101521189178368728147449266679301924139598360232640555824187504328512562968658265455846401929346639918336715779929795573151427438742667230506158877785211185092856051287787137414264114455131439169483971754300208339943968358607245721537754336441333127703010978534004327315024982531859928439497240746444874460974893821297547248412532774029332743019196445228355799879755380082715499910471376955198511027538083788774401107788850025860132229915228909752694162910321293227307208334204515939517417290514102113709215350360959170506768197138332850179171625832497902042150887009901582604952246568963584792652751212563756803777655218900080833272799950334951197738209340041200589104182636275112581735142214315038394511671858098543273196388143070627228343104203455953115046509308093236032458623030313917418933253586380577592850944032351918308186838348776080545455582945729789387057475684979809921087430491152710463485354529986520367054972030546073816249309030705751026754904558078443421900929964077701499781624140415842568907470879472601279130018782776969327416862489959248949151643850968588136653469893592888654708456865057245713654859457593433995474023352069572807187560005144707586831456390595439464177759135117218796790756242021684191695565612865838638866808202543229177195970672621345309007474748307625742057003493081550511018754438548400734211113528420456282470513726502818761128374603427397325545705988983129904567052192100462347625353810493394734526248416379523127158311788796540582583059547578344155077748136812931480860072232955225009305447246934069992152983118542591908581167361657212671725215701835368362609790327795378716400318636774003171581540462910081968733022278531692467601939573805249301704793734130320012075119763319497253972172816005871853688433227400415421772398051775378452420418177681750432215230976804400318065658129007352024329339325442906834657220539211769464708185905490914955162295913250746713935005268727568808204982589302142263733472985617100375285734210481596692366218069399663122712208150120133163149260814092142608403003776983762480167026118515473764959413177757551028506255011043290431616171289473503577266734162187104459139167076255499095615161213430596303676781646138171070132655867481123349569965774690104461375274005780513970923534535300795255710182682654410652577864334392869766147723359610940710452887854047589383028204700700321695736576425064086375912108295993435190090126029407006786583756814716556914049682344643167361779199910680826454795219302300481771430260108555435991972287649467280414512053445665244189807831588451396375960489260715551134381385669250911625062116546910449413060638028704938081930404227587527013497898618283112853101402306430876904111888363767080223693583879975359532483037704435961851925550653708002824724308217935470733691341141939383153000765538355806354286519795494244369026714462064159096727240550245222173896159144687150500273930602996056475102727551077093518752696895194187765522661980892547715838736718816697178877474305127061431242222671698623251827012461491676515176906198601992287489960194559164492618279897744492582920989854097462330630082249627314567192187101242729126857063492898617879724782035825201416050177392961417744962886506582903623414475915542605020983450495982962964670474653091914496732920645213578450569794686781800131169053223367950573987059271136779632139294531046691589167910383660092694416863109773380135402863539153613957747136977777474589971848737265303826773240872964313743769185037830856511528285661473975476513950825353345056366915821312030140583187584236288347488016757547132782089836971110711709231037764443106875192342061016359361527154825898343195936606372658431558724987731513946744092553189620879729211020563854749009417046157298249480559931602125624938817824162652411621526092231769783855794076410945005252990523224989443533609045501043114721847622796687735866979594519647525967516818801014111574089797861885160305764724374494272484605021493529671727994140857432939852321884809244651887027140291791556096654955154900225566046871843867757003461987883096202862656284130817258588269747809388820269011324019070182728898294630381895245871841009853595713059952704392861698986983753727421529041011936493728215904858831629768910013170416487164359962030282991791676813596133335906178159809093893472818384957630133549890158476384834222200081317121491287240466699624384738668727299181657615715353070798063529783377930981619372676591535861281035080688537615023319907809684359494762535849460750653198371132063200032091060313738774981325448255716504331931281436545682530877714410837679112610064240364436774415817997000017883313040342661808925130424532572650959784727460262974166941760220459758933357956915887090564082838552294984946665341111511253382376767743290297776881888906697708848369404145204124971192643865317061105643366736804280379051127623162172493058917020266676091616166259319363659585509866805273999311083476679899981153454636273612556776579889719556087609654597947978502108327538979947757866437966714273100046431598044969518330189648452724583692393397634569963429592861388420807526234637710981291432834163820663954593804696725157508506983006516329360642780227821810097365831429946912367127575183516087836108657287409522769894705960934615009295221822695814986718280456340365206209790203829030763181492523206349425178227273356692259153570529922408506909190890575556259770412747395776781357533248618271682556786735085292495208634201714916610402910811342295872096675206716183453997351145542873142876548803040575117108316640727796235397253986700777214817927955177128740095309824381581395030620345105257929451782643434438644111332896264122540403787529738029828324303311965662518856716529711150165025738846612639313826739410701272587721608368365945612231872512898914601241836976601323626967919745464024900408325742073024404559215052086274541470293053373545019601907678913027243189781932260627610874663274373482552250712022217083655904258374415471039292884334294981796848950417573761241616412211226349189307937542719504272574482342547419706085146067498559438934213731148737754045382204415146437315202672013994785987710312868787014467964413040204819316639436582709709222017920095413988657555739257323931500603614598687037098864329420121806727122171129366988851792621455458500876219601469428237174177755305295692060384740790527213085091243732228343469887379952554073097475795654770729027791930432352302266420510718205950994303544173924512199453179709988935199007107896375602452504426908828186450630811481098699664990088928189984026054471575863681624415061354387957146109445929887735835070610271974342640598712643233500651414787806095224957454740490554100108532510626924148195571450656720436059976674643976876415853691916641357755137995642609584287829573457906911181378252131630572103400189557976968138961742323296678497598378675806100077674313264780299856422818674332233426140393053167275396288500279113289842196913645091201917979054611787379370534607089442115133529623038935586597595082328416940580777528306386610988552945946823956921723523512602085253375276376109722564717718899449728849466089098279856007182643891381978856534352037749332910413968427248983602517273353887310246221167762931483508212783343799241526241347638580633037287885612968901451348109895231080704192119074969930310979777453135367790145986311446538130628862062096099895830868449758700131087300631542012671615156037956656249161248535329424236350241703035686651988819792028666163309988317942214978630761613143923604945975234238164071300884544663716990220046761207491376515205256098548725363795210152121604302162633475182414812466452762214572078435326813047073233525906077132991073098685414058678454049507775534093049397532471627603440242787871366380121823539934028112267131293260101389578210383841639024127891890526365124842689248721061636364238044252143087278483710794927904039439298874942517998977890899697999648274000412750806609634541937164664845043854920862242583674530453861697920671369562285240136934009916808790243120646732121494151696547106394350022765839842795844854856382107579544584392730080953015437350312616993812378482014776880233902709358161562907175153467027786028029374691975941709980460369824520246517542999237860460971972793990550796634128626632936043915767031909884422436364047693753005122086321407827079763907624331089262919089662379559162542769520004031737887715939253647031886250648437016311060453844649446566855562928934480400537322747565853112076159215791512299788484253416505410649018076962039068764404069824477908981495138534203657945224910909569929967532246065004874054752377389723729206347715123277070785053738783341097537966409620294251690596955611399738159292074623230401717095564795846438377270750834762870713373880953604344604028302101743560148456771936123850285735607358996274237170694537040157631987548402579111265772613276068469763518323034066507507956596207506167263249698716344125839780200633977301973140562960300291730259945334807619618652302724358465702417124957069143762621438301717258781038346407194817318701049698747772631956967103213738083565135420354910421974005292131839980569666034756066034028755874055068784263126732676622886032329988170157826695205033256126396959139630287588042776185575394085549141872749334488291303941240102481983261005576663571051050750182916539216126855449411238550511566263198118002530529419531550473697646949983664841617909882847291460563705759326897081492124721241369867483706469486570791886218718139342806134062913348064053561149795164120571646030054449306141756723382346299355292284848813470673698241719492468456707870187832190393257000102952429830116300892406847105094444231229992598238614820165778044204827449441331633290481239534739763450164333059905107460572458869666840669965896104754056775031652210494580223473342233619541320018751327461149312622757051406992198591821581180409134867513935160446557722665031021211603083012045000559485164510849117647461020367011265537824462723283984030363314671830896994662586800363346229019193694318777501381592326304278979257750758637294827636246735674116116189134269604311103291453518952443971382965117332236813230181153111825795554405083171564206753709383363075375307210897678443006564075871072307876558048608285546809154584879773301649253634559739675863393184180665403829930183782257567352373573404473350545934100655634401003236838246089780048638129739127071445987010110430088128896826281728061792039066156917792091730914734754239038510723871280438688210040433459424419989349942523896366894911054949402791456353419391951534036057143534592212305398345133245314688515512871018988197024343986439221142085241747501986927691944045771350320642859619723740670730839996958484598704711621085036823775040309268430133297067192928610862321421959053885150421107785448391639717047397245011425368278190183711800128162651694503618861655767088947853700136728175885955123291941270993797654515083462083692489440793553482382808324831231522989228636242349673691243085765677586460883337526787429070172522641245980768616688338440111870471950883726774608744728211689761567131585629040610747273540688912033083186007321841020856736295557294648309053833303275354752281849378088275198250543603518183950158190130010918674758019523222640201384612211197886213189684902691158668891741399973605250976729705752706053203151054452782954233573080865293841970659083925558851181951998022730946500163134028288549172659470396778482818817234274503393471255281799167009281989078596188300467863946408729116608626743072359624834712781517777845408909287860174296077216378226943310073967282459254351725227777749552923525886986747587843856130210473411269443084903202239675756213295434679017087890080569137880700076560087835113820111443492635988793898618420936231591433711219892821850392431822581933845393109257428953996082841302155700464210463194374805066843723756918974154523917200642363091796936336118665069611576387921847887105007798778390776914283312048866860001160632942418220360316640303054630591910963954553426648449283393460623437064869367055707005573271187034289000802227804252883059875911176815903309735062914422315181577539500356079431005479080823571925202967567236207550372921378170122030022138800456958080622587088431504381806076279448885391897566078198333992334867583442173519205973862672467191687804570716042347273799868535363756754102443376253179421084508473818335018036260097614743477448259346443449667324680726609312321192175514751554177995615236989934855898671986669246330689961704722589809226680491994730911376791275789377493779053992746152636136042461598961424553715335141519046801219862565544013002145259646775399277830626940901206707234520719991895482240143765414497772707435840449786354263387037429989404146530028805348218990268469511426711622392578634784283155676973896301001947230563636926374688398957552202270245357983268121080707563301384957294076861843173987791478160533990797990709598989620369129777268351929884632746794611108934921560521474018848806273645737492142945705049434171383479985395821549291383633013968130424371121796599263707548798586880710885380149686653578762222843790560551743116833930686498632904585016892914942781532633678181885278296319781752647744784241227884543024980242718754047021766990872319864545190545783227773162615325152142889117698713303612755215475973525590051239088448733515333985556306426310152976930487924495309651006907669296722316642611350034778612415172442060972809703796504133018570618947632981698726602195799659672070856725622836663150570735617032279547984099385912315541650481815914815772646014033801962150850985838542955228361232628548702031347772082491820714102676541535355724822834067373846938600896241737350979048801278746276258576527417418808428596074887477811775780644913327807533367016950774049027247919281314252003408735616164795471556364683919493598675082233573579320403745584860064468133032251652583385112660493570017043971937609841735295119854133867269002771004563750382889815810902326786763059255926100176717857589794177693375150539411614438430964498432382831096984680144030600010398369830377659290949910452399154004916542616416886128170588778383545693020832750215600333795477161725993611297463429263620383494876159068132246614170361246648249068456138967578589225479875716705332919727343758324701303031468418757715489873670818622456582767681866293877592535649989726372895876156409851577639950837439592739508129187084058839627715905710952314311261611725260385718190836224015704563979878456820327203746486890530657040161009650471816355111449465435067419311220642959304786413272497922555013251416931228181406933544872165875397499753362958780716541477084714948005622318531172061768149950465285823686641669814982723307908729742692836274619503804096228292070751532133379731524337259000134998447134986612635996332345676687656966983491202309512150913604174847917434699968980238328881576372093920341143785792507965530311018041728523574814907678658155445219442041874377446016739122196122890290791442398374613491602902155145920215718092190925709598900439338907347410159037145310513125623926472154750540043433876335073354441514075325364580055099051221203654032386469539616270579882837006428717081173777842446823418839271064168969601911235836330764907972458200520921240737904121755692333002241303949623361811893216680769820986136733621683772400146306401440026674833498195010331218404837891574717710551530184861299698329822337744433231362195175047795383812065552862061313964333780627898806820924562410716387292966012576415451600644070106363096972340563163164716324095887674368184654757956931365997938652197708756422768090312652203524474130870987133367112616271178928050216774766298188690414633954105840614647169409722350579476216832062171522191086524625737572251733399840516151161479947741721302869443981433729952820214811617980375779334018077369320823413040214085939104191144290731498299904991554679571697601591462693459330727267988825922990867674133393536225748487630601435829426713701616542063479530235451748299542066628779256474565342245694726615492452677505106020764563311882077388518561244192605940324904843347487873731636814528825988255172704510966144471968580585181753778008800078225714120049272677422254621147586150282285901178056368760119573247720966687844117610341275902422635052071267890821226919341378236988127725272520526951941627414518317154156793745972369262700082293071306787297643465627235338017096772180582170642538332390652641524134092597739264757317674762599422923588177135281726574728974249016852875676934390537376537828132361360913716191038797616594296488729641978086061286651276278401018356684608892197750453811531993389659865076399834801218506243493454276257727616472909122644969721557838941047283197694021732457533632725260182744675675419738505182404435539916292306397780742424714953105080112446465875246212013016428627229479677815353379626896210566402726615737253979557781126397257033667053120429566787660616245920830713549914307905711412773101703771852803247288715052239827215317371908453671620982511930822069719410126312622031847525862919817184107922760364686283765138608461576754691227448920847689683677235020415092777481367090665695773355941259679662946030165648898995209944199212384963632690474322363047987880061495462943601593902723930058812038911636156824213847916853385604296074295414457673895470734268194081890514042682524992780509815338507918672926625421835713859754311861824843240976757637925702288523866275697623614897694312666852807577547403540470992524980611471468012200933221084844458603418499133114475505340503503531360389126848525151796533440796863705835237327658492230129771592207163400662694992548404597339553583598016875557222315843135739440009947949431414341081658509828586019908529826959608604356372432223264108507359894448491825812244326245882691689290533066281763211033537440405432846732652136833342277580634614637930323888817951164088544841537394153028906533826241785251730941448389477575008377823337785279635790464456472581671940074501904777926104472881695194359930444716969940684785772904905134656792241752816324374088203914951610633882513820366089188199565889332807355996011702830672723725591338433429845548507333961575797614065490006303157542923370178724952808504275073553570946237022818532224542284651509439364802968121147030838283062338583553615171358838623686944876470729765030389088000558659293612761241516926688855068811789090287711342424781471052478582163899318790167666416875531726768980913501780072932385308996847443373522504890853238997400473927696278822737879953193959413107697410869305315835038774827125333469322249198810447024784689043368219549640444951139134375605230853414105604174972415858232023517889963684084227383122689182412480185513050553615771415588060236137850267910773070694670364360720496672191052698128875677535726124329876691378346465545947081026847074751011990422712274906374018712897561549433874110919287180876569970613474736128859071244400649115232124740329650282046336897805330589176361737547343026229808082925078655281441613526189946713999963336604615937405185089747825722983641470561948536744852359062664232584758724774645357757257786675717895472684499228821068680990977472673007777569650881739031365945267739910222513121758651172084173087486363777761895098690545003627107174147840063793741976338244970459734861661209021513093802710341588394542365951305384885179950949004701561665172817493951677487832062671179375889855917322934887874414226982665526878326574301944310231089594984856878414339775132231557131603754283765913261899522059393398659544663500306484375994206418206716740185865465840290197598721498117468154793781313759360311705634946561355239717147275175404212545769089798202667376685199241131465037136718521036205589109642609342406429476839276704026072416591462887844138065090667516873313542855056615715746339558634339085505927466146573703769720867898110128287260891926251423277283809610671681900718111630590390235041184771126297430243140059632126907330850481296173375902259563687165854315681471074969431638958380391430311748683133943302318069981894983097748211899480548914429882760523942557212253592073684637284427042091932796188388273905180218422067096608286752888137313877076589312108137647085985900489902131093076971183954956640698877917883543899540704854737556762452457584159739723552264872081516254971438887171543421513040101860641528113392109778649173875781499297398497732855812790389881201726764537149646403541022088524870854925944954023958656907740852196466575555157502719210104524099488702291690668943271517447138480447867868661782320948725494916482594266654331870236930378153918457020920250148256676474792266241486393128491251113991716068116631176973407788971374428533483277517147308164575317356360990007658177549649303231155354025504271257826547699507870891442695800417071107085908327943799300822916878268603176386181642803167033741500151991603273533925113616889187738141934952026321826756014361339351796692203257545457049157952845500007201353074073709324226528487175802939065797150774292877318088390234789685902601585475372415678040110103801013032668710894379218728623071538853927653217063309023212026739261852545011505832878427424995280384767020185897723297859360161917307750924690035992377558871918112133861044942336033030360417291285145265023545028967539994311314185868744065485697437178715816258512751036451386376975096372615889435866707211991555476840642469667593771719516993208062669186240110332676407069635888258392239526666347769376660301279885189131766720174704460795508862487091653608517308158446700339208340327442002594449719146271763191715507839674313893471636474290908167876774632496611070155006818031471199079689449666911016796999002571909450594103149746681461059848328258757601929494330838888924007862798036182430376724247087764532688814594022340691121241342171637933676867829246360698372956629833055597742823707358883434432617673248488937720945037536497509464137688945975745924426309774785634006941237505528045860854830419632440529979126179046261848944851045855134663019245245285027355617001601506215242082715191395646043725830862521421106919655912454432181366286269813054145520073153819819937870125337347515277428522027396093873859972400251194779915186214687311639798831900811236168779014168306883015411820774960966666744821667187116264359105075426012053070971546057295470078863474674381071127766874815669358723230113279610975504459034730829752727200768483770657568662794244441764282920140174693586724842063290398732139352200994441427556194551163881253982823969959325298099854627430183894637297604215741518004568762326795453992458967865955583736422952134415084723074028271008565884127711224662800429683421372848617331505167099155581107281884600126331955452768085100373243587984771929138892221497119714401086522901694109062630536510874540906111477444284318807732227531136853686889328791943673642016798377922141493640780804848872661988890750375034376060809338357400444504325556645514654437807848447513688812100340879922056519705281398282305909455205371012497022566442026552030742828878745527711522620595608532234105688907098564132720029684336901736834607936495812062274900552052470636467570920963947664120555048332212229905314788771461667068753716162130663071209125243540449107262926380720009661889330510771930898708630334443189883965126613681299625624074914416942151725915980061827393124960594546341596661346696640083529704238148588782591237524823488637604672199055789326689681080885296259659212273116124353443668855000533388804740792386870137763393775113706360097895719601396199096871956021404159662704208283318352300749300304504958157966310220823308476701637997513101513582255540635158776633314770995087254665927747446722691081683161953613589548098460569589467225777561488881770924769847818151151079202356174006136717552764029882986686231592911276585038112346852213755041555852230427744502404671528240605166052833630637970188595084242102504685677924404634247470019289670351834102610017110717163584867865084967009317442795611654649762315477351463434295664033136759921436641513714263790407342462767352270844676950612689975409295386358640492908264209270958798961051686810607414567452362825021524616578034190915217344643548817630108776139720872968974979456437301003787133276792150412746121131838902645786795495361705460389745956062388828907870936279406608485803550428048310567531527123448898857908650306801134295958053614148180942008880241735104097885028172252196927428455065086780268285707257437370410231393425843087590071411522393051059034711356783652053567202102599794635743667314989915147814716930381426864767559984541261438327834811722458197052564503378289558445514369999696683025859097508130355346871648109682256325667572932335646748833991174603409185562969871629922303001746518357959886561379566624804592351136340555166518222305512461566759872638103595028445682752567462085557184399909019751291435210682789602971261988242759894300110499823516957715442609135002785760941357123438533138694033313537156516739502063298714271224391418183958345721340938802942711780463560294249077250966608623054865397128604233090799574644262606038574341904473186089264933691600144014730036260494450793369134888409578477228289950431542326334913776080852734501873949313758714026487568995335916388802797420584033215629145755387507456019578640949559282364569490269131952867466173389214806170220217012486043274563636330170172865030203591606877287318844907589094190927774941706635811345191937213251107864393643248595947392242513046914119888243153502619058334072514028895283075475682985906252012607992035238853243448957861367118172886054695629111973977187749794852238298533330049707478234180268307537734414369666977566749582436679356850842138897054323839361184044755592676428541374793857842055530730016276076403952454425541066366560303576946474114591676979207860037865511965890527391468646962036315761151705058615593660907717810636320014164436598736280667463320171963030505376981508131210235444068045101104969509110850781032257792998770215134159120380329538648673056104618440728684580557354935252416075131436552657240546130984199598994551014369169841984185893499280400490629687839825140364500514964497100458809243949137410854716351713735050780927659575134810464122732080059278139836611761486929634863740103731087270649487723573139096923689449323017378965283228454078146227405339895285128156924035144560410162534205057865770696328306696227831748712320436972891093518988979532306377850912840727074108998175246813533798524941046574999807564270499483344073809038830228059561092695914161439652931266940630817718475453127242693144779720450969072388158370499486135035077763085120829210813399199611938701129682936608303294088525418664647942991548266508598288201309508889530606201382552820739457718505944381978563470116644273790553627642353433950302362465659147521214532756256823597856759564989922054471835914016080697300999743639848611252756391945964387299715405813059782906343609420532579737157586240716898694143839878173187056746217191214954474018955736540443449477588983960170413924198049105418897851818490558647608638534310053600955074444316922250321943849108749391547623478292450823099000057765361198192440953550041185381059302460854793893758475867114579371359568317749437230735119911037544744274965742783335576097416839425629988357201821044455749939212077829644137735996543100656688623503223930321418472737935342772236193088744991120586252249285422669048890630435498065872524187857072075421360061518410202258157446817273068462929162553271648640437727614502203065338729905156112109570115954310685393654528165591824803604879643969650499813564300712266098551687183655523330020395084309944098498951982640046302258125821494030079070947918586941422804608186435195768423342593211729544737672494823075118067641632544386829965402943629733106156957184103330953118396313975699598998107753712720982917433604245849897611966396722468712227020152569283678417942187981117860519986030773044841584856661263751223629395201481333695497279566929450096339100711923336153289838602482877615753958641860657057143905834171730814160310984225980424379355009705631853485553826571061828506545106402187357417916578205710145760860933474832678240885962350500094803391019520360603971082328222917476475460808181740669665027496449111798073393610247263990683263229797042011678608859658892211068797300231197903597406396116878638113673311565800746879915274816721987717799745933514063653254283855102932198663018803223587837035520984978361946641207282923090129599594234250968718810055541879740693015206162616722384092391429860822161888238660473638180750048795463304440185721844602756490285273649344783263102509213458207606596378943001792481138789416539135102826280902765782255535093607571856349574037782681713214481529885204623056210794658602516043735395905611131944642165962314842546661781208169910269238645248895578375141617420365872153650836434098304744253224864872113429995115690775853613928216353197154670500748527619727454470824213347646596063444568364278187436379078448217932543785987016618354514492573571237943209433695956796332454165405794409910366992502189225143534992758159411190527244011175147757153301158127601352888473707813129329998287871769131587806223573428367701589185747197727564450427054391314062659006611776818517634724131460835047406682036437437508558874610425331481983886344464394040793351696654865075011440756700037477581448550800620552806658063806887997250995680799967752233861436650242358123173139419879862652803350505955334343054951937304853871830408401073432733295951355549642471291621261731461734204649705534529393711998222856739099337212952861714370982392232918008007736127756899483110158833398536474380072761233079485648918056864600097423390888699251906715709071070726882883378165287912909764638782226156761988632262762084292582956751459103520424781927188402240499094316874253150195820706128941480030502235188475599123985571676238854401370109469179193079879123819392773552142842056903175729650151359027373511368207367065895468288943748452842584686413688205922188304847668677797126731962325398024717604653972558977005763965705580618956911225634406968033936046258586290085158783773472014602236773792407568707580186578334834738140983989926175374812164276218685223791357638796582946607227843127730597053777546003124715447406143803793597145626315171252954926341557889150235682923813446081653268667656838380239141104518544143690905649877727836972473012844243956524275907537618019259403280918616699735124756092122680425868298534657479498761447173212443714335709599575078464387513232801157329556455342746637773508324211107871044486698935528670161217143654025691409067009854840851574905712888133538586721986667626872260334374769176339899182767457347086704822309288113112182993437476247001236327619067578475685504237081816723182944071737605944452778008766521127608296882843961727904249661574713505347712587704676747258585904864497292834019736237818194439093696496384855307003182351658045379918734913981253207659152547376035056986401098460474299822541303246341315004272731748021996957332233143584971477633032594004444784720226981515218272266150994413471598015538237120654481215897933907056342170705359510327274815546884279413611923069786724300512510088280050575802430107546218345861235050300650462694215843691773057857246093746946195772920029864888841734950772004683545559248864551545614924935191861532751888188510918410566361603058971944170136466475760058198271068030745222826640153495963538690936813991054445747445458205566127524204005886415162274576609658452169256017187426336614040844624314465330280060170137801154620652619983826063506524819682758553630627149634325631707129444227778241449657464178296025088398218546586147163300000891462734162343610397676272450030312606501253606402846312639533647154738514993291204844247971816190930324368993241447402211557658828896361050733740186377736134122447765142134749927737390172556003783723176223199152153989145906681523802756721395008634942557891844924007901990369286805803643632137460477841384970741272208043287087882043442695998382789006424102144104767412118226061977644833006832877394279587601877290384287950219947264285200307121499010675818001414941724449833121435331917925475881220331215690636736480644356054867927530115908389694692166513482863328530816224797219800169493321815061458569205228704627775553060268130517518749644579510671404401939143170599307663943284808863328331948235894291912045130012434216971780149782478765412920945048472595219412066258513675082001685689960389074920518524824780018861691093246864017973463384784708927828941245281348741174428178985900360881210350092290167041744151357166892615357866478638652333766925003719807507194048696926109851914591051568481327930330380314757635337442249112091166161556926354623562202023476440257578035491931235280384005666615786502630716960808968965897537019634778298571191189704159384732389071529075408298789289413699662420815686604844300414161906362007624862983183925800258799069698372053592198431979539438658122473614221330403588413593744501413685387399540764681919098799942184089915053714262180679839462970938355620354493069992066600628558921071592809064412179498744171178894742745406293638070637767921947335346528275532719693067823131260465403571211764303200153407035906198390400514741465447660498473600027798235471466337563129657487734195784458029078146834303754929028121314513130909260569378340814893043668216700997449278119378528701848037887093417381215454389310553163833115709448886699342129550269721834574456826314442598911464752285551373052286508303040042527471411320211486919513506841731934188626317873174324434649769252792859087121882821150588226975070235057105782710541066045905271286526996268133055376776883222369035603606320366838906952212225965719753282138768615127065289263363297941951651106695902861772799670924240680325037178462880062943409076636830425172560374446818064839674495073587452331947249528623151934957883782547186927196540289987377304023365821654721293357882530821091013238121217122907251196455121764783282846037009335125321220156808970834242825835161738899281022626012347698895685150167536515671775722058658158283168868437222678261214573634421269364074433127483142381181938944714801847108811713540355414030554217010012749980081676892001182848655762115069839698705682610509722702828806557555422809424956467906764318270769191208329358553728484117406855582555521118977749411477382289684583554052927427263911326476132818899478035520448751617396019465419128838999574032661626551151005250645015054284817252534178853259112308587121798794690367705701974039646540542115422053236970683321474592571145603481599364031127204568134037722976464182666066146209957193608957244512911831795598322812733827658162116921157452740556070414574652051950974837091571620769820590355192212935872683706323241424388772493213066130302764240843045408765965963263586224357265330766613549128708394855010349128158019249567853182858109904361784244618445234186843598668944197540856547546866006349359602891719822458925877634677030295504762610121732750457913224618737616047673649099267518296705567657259250954613169836875070580066770769819826420768167165600236544883966641805356887562564223711205315452547950479312639754920602855992752126276199309325176688459429222239791271088104868854371166755253977485199198989822412478004935155233140097445294016750537400366019633445566837019022764527985482105540194833133215103185692619174034978837464514655846162878331490021285501842959394863963614175764129173258808235628036547353505380696643442035178593457649143568407539357545860440086271990612434007279283945831978698559030506632380261928499308139574303072068978315734251300239263274262236716029357607817216225259099505617386192191880936048912431064683659293988751495937383278381145098744868005573582671482010614131102003575074748231555634021709709259170017573042047204489842507790072986490206312760405376201382071415156323456611528446078582857715719793564153511836994495637922422529949783505144851567696876156473873488109720171031441858461481005609183293202290726194793210894060080275411634559916024759722131403954051958932642289781397394996879743882480669577642834006344494111831170843189277109815181364408887825944797034851404220635341434055697732819315632543816432671531997027610560728325977496899352947046269947219663481024030367665263472980021776078351791503614084384473743457818351143209032742486874512152679826673990656525074846476104493382955364500493113370009974379466562915308686758084945351730161134092699254836702073691834209941206992483713278934392084354689915389196374926383636998624348527958910944279082871795656363725278131309604493862786330063547338226660833172220905496275049646165536304163540694618554778727187659438201987709579979364842400025385720535187917217296759547477183355761344597733102796267001350054802778178920030707843757425323435331273173359150444396590781963741251406368994159123368790168838653325877676139514644988063853756738167547994240398665498320791106910801605096459120523517938102816580338098731379049433437473570352839420259354186783971174910949876393453011739296423018746804456256063834871762212476642039265684769127963575754016045620866018872784937650823944557018687171497025339568627223367242030437143008350516282871392402909838805707497616866458128914577450853205364388562397392458141334747233305384162174911823428413139719013618944320033804771449551156679573749383486261125402446619110724770114558905717028356681881858396127846090383319520697224462049630334369938974868148775149381965354262960859563214629371616714977898086342032206098997035017252420783566143050478161826717791523185674854089250883568623033147740622164880155725183127490212330456569734465697082521183714090036464640224008386464944430655846989596955413209976793003031537267459532874594420232731234189903211313069711086598149331321709184789063753535469451229186913949207494930531965093462054553276660225842919740901755879649868437600999115201374812806866429819566041323948455190997686185757722405562685831322130377049150212098568818766935099430696370906793041943282908661447671258700537253421735577832771936500883537095695981589053253699208836555352697268124131457892067024960776807738647711727130271611725283269072483440931688232326661962912748902575544264733917492857303054690010554414368364435336399093809546936194419468924366120895410556860270706557823184953485201652688801467675729771096389076654381075610252751595872043013073806285927158109589111029973922412627369162675501873309719229692607546292867508296452885248876845866454356706606572547125164967231407174526735233382101218266822504637289407826268376334777380746881420260374610902058965153726906583121010155108201512973743296518890724592862228235891396064994087532061493899524189038106660811109812441212133650228867973343256570954787027117489799171110560275366026700565840306712589558950884379164131032572953575265700670428979556108079722117396418637802824786465109499913674468440665417373044581186725330142747290625372558699826053948021806986688089759726186042976186922991240984913400765184874072035795181180468685843711662187806476172205387157230342501332274174849654985549318182065713747572964805751971483483050930451682972362639126790302078229890993889145986468907884584696606008605078588628912492096586536393640903007121734573086495748552995713192306975386388067921528442703595829818011090143030136199918957793864558304655770171796366849158457065831650497973201388852703748531690330733194892436611798926917139745644592387915280701456381921718733375792226988527002909198006833622902052477147823825720420160782866411833919054963184697545097447090677243851044246983593837500858846368631503246862084567279973128121982398164724688929456437946391675611525133784983134079644667350212859165668820594303322359398182737406578011480736301962651862270505675925793875458195368348350163763675141885130596549473689958754511507797735164798214097878444488116060183589707161935049948110683810160088614851993677955940618107256146559448472664814464616640162541106986443548826848510167624717723309156222070496042282029618655130850787004383406310386366701731222253831936010697206879781272501228321953546775441102784388111410034547508484444320095233408036662065587101220544834759229288416242542910568585012867755937078146412866998135790463927763728295912274462044970613763372249033272074699775796638901296961546359608090470706823320130870456292757706982749957608485384742723466746214784973028919241875281008550503998313955857746797409585207022942180403440535996914662229085505671410937911535130712514662778894914250203385497871025682082136307195939691895539217623732872842956976884449963765421509162798698691533883940009491189998214542684210304947237550101656725128854078142530598739584655082500004841480943208967625586760069555148473459048613599822363612724882287639336770010246942816035182914583136706628427564413185568202017857832634431396092663397195977213982902524954368856326029178527592288423242180754570282159709842671740964406497337073319323699246378646231981260789323970550172425174242570082661508912208518711893157503663199601449184151483902725026620190762949679565872478016789918503804094020910320611324978313690941043483834603323057712342475589041754578785745086472947268087389369367925624690971883657540431170006228188524625136730286556803959940713053575165927595380375079745883276800865014574252600732275455402814451652387665856117081563915170674761564348387994225752988537346269838814585011925442786329849266289002343759139549571814912112912346444034296418273655940752784495066473245984057855657189047256902245874975671447616935927201563037562886370879165240841637537549290787324888949757048796356187097941228459170906192188298531869288040995582796591862198091502047411575891344958614700743258548152286406298508906493944415298432552327512339874965598626124150809134509306756830831690757058995176142790390619326820218109234021495521604252741930546943008038939990938588078763224806789480640428711781522479103502194637561704000656686872306400926445202554050824004852818199775624509404041659270476519198372395227581780304088415586640403719952936957068669603696349477543804951849906209180716066445225389725284577288916672551003049909295342779829793199171008413383458316324600136102844049011098440665210624650811986364175253201134064291141651593226077052928271476817966527280954060994811711290290738096240850212695481059883527024938288787400907507081069078771250335513906774377209350344211364278406934955028796574101062781241401544817021754831550031449781321472200785546412000740105135068445140067954287978385256697292243305714447605644478621299770917085024980927618841700678449407853753172197234680709932412034856780539681085365639007656036307591256764229514069461912117192559321411474821296237555369555812742203578678915527693102212383194067319385350873749239443865834920852150139285721415714335657156312040559234350224116138144977758753790077614243889300213357354575163571752573169959621834305072924994949200041092235949491398859763709104692880809822115608891995968504902960780305441664682798954953312851917470111129026623993597364822969295564233885896899398225703484866600784124062676425498723660250481469365837957046521983687260571205675885170158023118719327482619637079876386696724499657216474952784204221531503198241864804731839588857652284546219986611224567519719070303497975300071363915388990105222235959222629935439126652588857104163594753222464565373030441978847505205730028125086657275410904979876980031672407741817092173287991709430165742108030813774868999277789912584662184537784190098846537403723579921040600418206754829004842930600172613587587485005392794337671023163290813261721464158332942043946890307130561617744411261317132892137614375729963806978520497610607275884649329674147165143853077805161684204971812512098027612437118233103839984392527376294492964967146702357673753773567368375234057384148139191434584888720153897046824295470369378977801476321876423184440395800949183869464284504792382782077259477821040286182778645141400038267140477080754685284748452786466530008423660696761084385543605398094041824705501242658049076074131112993693896931602540313845317480981753561018698519980542411605471840989371535975803341576244092020365039106213735580599618539908507003056280426663349760434378166714238377826688128007153776550550832582869219689299995061246936187349661563938142391950215170406464845011505714788802354529791120596573255357098076250474407797012616363594493607283884755539731552745912889345378885040140297908720870685081595461425586923861880282643737537365015236770252850309831174640588366972666042713916175850133852935645501659848772099512613111485248373566320791860328194662228973648992180627447909929212340912105734689318570053177520669671701920587428725580449886440061563168848855452831218069340522967810243860776905083794977947885843942797057214217636294992792153025317548288623403123223786169906443021673125893955580912904762130755872484095310840022802889094695382191963113391313771177847479370543743372115791058323173746082606553665162710113632043670599801949845808132985256991075064795630106571974825193751908756756735528396530655358583972142934367698614782674959585797550743427196545053758073755287130864962118693062566444709272084949490624742313445260689747360496835445936907266906682463332042121200497155276319778453139436923478070048304685244727079215197911770860906026039168444242084296707442792466698392222025435803704714778260620280543616736822627502977086004703248223326593900536600307797463572963661433412243425750364262250549076800075224078805162444745794929340775314743567600693721783618122996070601432400209390126018416401237575962067544672493307552269764884066124689016304025566939178083937152245003640097098940109048197964238391419795351411812304587784119384258551070455684705899952709952548939554139748797026751860245183240833393925448778272861443481152238548138324372723703760507587211099372726970497727586465940537444893510135962542470898834534353953050921985844302283474328468647755773797307892482928930826509747401939379477989434158675397721008847918222135300517363778371121778552293938018862514926699106219419472291811297795451831448042344560675192425853027967963423653793710943403789365687351610283515825849285647945532211035434208515025095762896852106582758176621301494971627682600332335291220174832138905355126379036089316963920398181177506454516839941686755901330917329804691421899142650308450550447253509110911013731921333937040141910417989962733319122916218224638305335441654089201741841990425436423841315985401788134932057865053542389240807842978396871416727929236336106259851755435152053784918189800778778590507710478986106588732815128697488400022962636779862444304566324440671338466168111736445115498780705616065407011033743067351049438119193782450378178022803505248582231130672520792084901182398460391597371766148082433926635581493187012669389447799614455586197083097569987762973231534656142631910584673233706164931423710886408118370360998715690658725350726984356299393317901830239871793134247845471185909275916895637192917717558458414387534268048674817068310416082922595826033582381664288565310361512025750722330016581943602734964550368950640428056613673870126024846387983032324582212643347841927449961288123650926806260259941537265824476844102346526051947182085150327786264592141906130331407929204293208900446224240330752585786025445341321717298812351742090046045837575954275461673250373502009078226937677626901943862848790297034442541716082947856889595278994217311736104030763593344481686942477672637480653279624211158281013703595737323424288486623573176806489601932251934344794974896123114654652222354379154773419214883088186837738508470739171178572791534101203302312202715788549528217707873899217199485409941157346947592823754497760105826769751640883490433159493076768967355828082142591509358628594112641573295657150149304902264343415256660925404642602461653437966683274173923449419057266994510541715527177727214750002680877460716965540588992744732757673522493334347163994183041211741504866912583660262776434571883131793559481280848336147373176830245520120523701143379468519234291366644297456041699726285982583713443353310636995492348465750089018531678190352463508373363099449159020543603472718888604743291394912390028315760801919666618168497419532095074842462017655099747775772311290761385123612632241804671854904870109896945067539226683402128182118146562684554382982303998030518946285019724530301206423505756962280683538016912764429508851057209969114442553680643522881084566076300392235916186569504836305987579257869870691571105998336808424742107203304679651464176067911884475194010409083734248903735941199863748791686475982188685845141361396982848718024087455927858123987622781025005315520977477427246277803820168827264390922113648507220439784607747993357644763383239115777374027159205816455246838248684797460842018484542768751428313775640764815474909480135579876703395185682571394347033459192643677259446982268441293936953793716431895415327922034595580729146226699661392945737237077905583510632428151688216689727715706908901188574088592819729603234140894158206272896043434845641528921203710497793051478860604681976892362596411495447630044306914330829934545301044760460579495643176155506737931075164371093352818012862534384071198427118772022498852997226393936065372885138844016452497501878653052103950435134764837127924043059896525622552059004186079330090581413984062992593372645779974340023824512812689683105209501452657932240103520780821063531067086636249282764099327047957522406905042639368428535379826404490026642000174365849924587594082363538883095928998260987811612319518986542755794594606605055014316016816404154185072477125526056602708401574271952451995856575353036390998586577089679706164732260693791278163786470417041463551406224075623207496897188745068952244843815640984037517825271093435008034672996766012901612481936901145836765841847446920970524263327199945910016675746129213712578295969132976580503643959514601916412548089119943874166676404619322772407383494797092524660584941262313192390284490827259451972859637782539360269387539527254608457007223192832462445407846674992101406842317790737649461287240615357610388148747999045999328388788158931919188868139853688275715019212851663173508791336755332638655878370685867523018945839439809708295537433472007750107380097003318125842515936781960063398129287278772768214860640299181720325028134663263493533486174531800678893879613320445669427777264722963129633856548872610583892578583459200514482483846925643948818002290896965974576190819349234391296717011541880183628637503806322881901260395338409155157087800915194580571719452765880613261900721827491354931460201125237485848921796645094467077016439317284264273124085987653488420009378204222964499254333119923981096725477570165699202020108023200932931592728129148202634200700765848885054104021785399714958023917651562426016506970619928021021744741210018314565230870122744952172844842523358094199172245055579252044459509965008835976251564431607895313361533192157736136523873964434387121539398023117377434065700137458365554801829899977744248337152682655114908290844408386149824789507855086563267159141707394098902376302560415956260151526579167094141926671034239320183020238184336713199219905048507719439195538951909636455483271645026894605093821952853824598493512821992951178990486971914320006864144336625126449878294168604834999288613701162620095495257060573841365391243356814997536364661686350800398399951531025298730353702014789396332884896471889760755238002450752101103506925181455120589414732557297378484613326109766058645761813061066408253546616380281422110276733558719212021864936619450725571284950405618301238954699145115601469504774651597242232842099573275178965896028805366002952325364216153895526079882684366224246787456743239640713304143266797529050744479239261216153352982755947809839057459816088509622947086820623660411774019934333663755812880172781159412013013751606438826612545388203989208049875617251325177623108167871386052884969647490750633798913963471160377524795045697774759166338853308942769284819738538607577138545443243879615019570531778246102797027784858925052088014335712020087391599532874513678661769225012156290937632812137422107150069855625055347366853361949422110682881243315431297670866368970657881666103445506801792992161958241385134024877714807982556156551623198320797693834901496140144472365602993320003757902159106671590019539465128337526294804728995884413914836362793280838735160240649953288476693979556234530879196120570981706560211389705338352669934321902902719647649094797507657574027325087898148961629908898784370490600944586773726524212571137645117394540377868587255210395999962081842894855599694768691884802005495978348984228608641776243805901997207411267583741474716452672727566158075446779820606502323551384366194788212445972946578645685569522412770230891573977690153986261141186505909996962930627470422482756640354942128603627386646338685660778668095952298672883451389244729329392436740427701596346686315651576867747699029825444593399568034452948785562757694326403194176994885264264182287341867514058166348128545690150831627888139907970572703290766443568239154378407783703135688759544617791814100562132909044064556816408461215394277451897037481510258706087727429286385229486083015937443435232933625139384487141369821770325388368021349538910226000135771359362187450919635788809521479437428196530990169717223346033260380099859426521522679063339596340344448478308273091648034845566746925797218488777705036849158858002176290750337761548509253137548482560214582979748797700202528861999343831756403073228815055872692998219842345957252745111686250201986297392252835728604400278122149383406474975395915201783941708440846863149298149196471515497197863265558621228874995902125569034025662858279193265452481016700487208166699095500229250346201444464965242182196780705060436191639031556535192954008439740768268409133983571960269196798903320427866935638309158055917298741306838957639163758405247541329977491333094842191385438218583940971065124472601062770992837916846270644911185447735911826732113792080461574254707615996811391949319439895084339426082478591103538353751243971513822306482847240941947147328639923371705229204381215957164507292038315483165750351907303554326307345375206228305957921684709918609678044247384046750218838825184399050196943096287731426542953616572126971449022537330676838268376668894124893966644491243520304912007658127457577504683802944340212514680659824914897943456883843644348978704625300823164867535563700237580234057162856931890784230587808193836355960243472328360426993147665092568757850714104192458327397824129196357918261683103651186246500239282303139835316162668190969433655191144739286961299588325307614692189481704634768143300603085581682330628644679407256221402007532513436746577804595614117882807537253786803996978283635028431841646136523264281090900048820109410669516958317665664219736659423141641993066510847032296965564010596513607344569859931692069390315340741578791780192905800066573213871142721177195646472726947366975520416870539430942141773413923931960802848655630354366853541313456531612047935377424509913723054819515965376205988931826319809941744215139601803151559472257566043340186565124460950829451229919142196321347133586192428932380831654832587490321295264846936379239373135379438372263313852624778621396149939662143547027165829332337647029615309583661259514587379846042088745810344655846160457101894791093098268055262520680342342945798191650805403539396853625020142191795327232418662586976734621326627279795314017083187051396600872018249505812136029368876423424156977900693447907673802325696614542731947940679102284716472732324839550370605343750819699648752163360749011873280589132737644489241472465576691623684826042974016940581376706039105786518679243184396434959312656996109602240464657902431048003517404136893778457576490156354943160166544245914402987036716447664079292845693377777474725301249156105013273781367742097186610323899714825234222056957563036964845770692640930900061463147844053917201967740616970754977341302664979536684771383922565065366764217439827784177769389598270935781493730922271366302309576465490475703601691285533323801713022284227213021018997545089462377439662234898162666191089134963811128882236318002733707278097938642101491147552762519792314693684695615429075488463125147783817073548325203397431316120276562763034570945201789347479206331049384208639388812401107568323177879408952818917568207624433644797928570207733069998431179874215183953997865153845705521771217128980178286224631399703347251712984605760413068517119710170674479191056808803084322529570547602571053867113614741453773458102821872478362122489444190713820078447620820051027139825940642667378359808379048617796110510529336944400136289240551355727558295846322391093722015428548464836812602173662778896690294593667145282412925138584483568374890204307263379706343885575416094200057972598258670997675267632399733302266580205503888062745885579974281608884888069354031949587958386994213186069337141399080882384956535599798444147169167899010443520351326511791295790899117114480044494620417237844736574948385835248543485839673882115258390676070279844874679754646090478109541146554086154239284679483740933187557087842258821959783762962733713322303491856126971157121991978278830073709187871040124824473752835265057482972496449125694568342462577058993254635632555750976494646917870122710927901464031097069372331140529088541217239002232894311247643158951012927463912034442182079279103083032143341534863162880268984173532476305161440719162909614619396394068243043471534477126209472634326944452175971579391876855120340744834577524792605582908712995066499567510010605771672220098350990531769757505577126030668802460910363411467984106033867882418672837376906099967649225030485342552832663297670147253260588584587358111270972586600571649888495721524580875710523631914125660340227212993428812281673758811984070756142840609568405838197873338914561056385972776795603146775255468077024362053767449919617202717677230601825325809969604460524990331409391852789866606587627990716465364987883365812807880172225129495861922298136247833687493076741255539879743560214047756833019332961379665780779945337718271063622249145223257577300048176830852568869052344646276524788547906427220908463613815662505109514296891858561117945411415984164676580587415830222673702110974727717592109277027185745958711111972149238849105980608912219791307191706421660138682800826464415576933422942944832224139758484628098567796222485540021073190259198336859317419826493324290865580237890154941960869046296582385009299084228324960429285777183075239174529514622866163632268065004388807117481360550116787388514532162804262016219832862756403200695090537154085667518703956786714539792226533957917352250899079817540278725545369463048331066240753370672722539010220440518878998742579215585168988175838278639407404721458082561092851516465733907345855293454400809805041822444123587362472213472765755026939731422687888362492626175118649697288974412483936600466599578208563738324113799182242800170533502396845150207126252690112190071591165162524254807928617286411564818180981073775259112773329927131809473239977808894096229267471941527308586621474764969506606259957740462617412457394950920287975160703308029163598774992579705984735198809082058455104403038557982653981929072368206880781829028697275600544262219481896457144922197756270122271131541876973758055129883942223053220567955510625532367990365194640569371685665966821726845133361765760131081600097246371063474232716960239878609952449461904381740427988107379770490566090727060506552546491459614365996715764340928060425766780917421461241845919706258310056359588785914483036930942158455628372907353677753085407767979015280018831571859784526515770443364576282731536328411400334749378366346520257365699046159189050905846936493546462280650225480509098163895646025064328274045750328133740669455377665352591740239787501142811692262577028771286402688545903970538827375082435571485651271967219346192491906156098609737240694778559045818385630275335736628854639223491782061279850288532525079289050153095893815872801573978387739655030042585709013094464269346431639067528230847701787525172353471309865986240608547815314882019827593846858262217249136517213239450794292815757877267674332566941054840476113232234228026361080837896392691338505786345395261337279294753399126773098581488016146738382499854000872502871618334458513221917966122886143769759921475212492714589763582941600697212828228345506148292169623494954423343227111342066540799353102877554857792396704441479951010236887981522751613107964653126823165914431527126911021522984123395973492186939053898616023721745603432585126602245953809851825593132971403335707672494760267840649867230403571792742322454536308110750332440234739564780907116815439405433184671795548702872588290809710381369785693360173204873198219946661830181998792626354162074558479419725370850519143262097485402393501962713627983930377956608666485337578047641571886232408974490607370531927879829472824521791761240342520715143287612873053427111106063795673901049806372119036391799657932609490900322577096458601512262232898438136384395235825120522313012102824297556844807419303183142016382134611232785248119391539978996104525217470317838633900725575247576967056990844929082252207468576376284151269000149994799234097968279599596087582204874074335268795425005241514750702263001231199338079628716561089016207049328368419048582761872643262684286038488431064874427779082079985554935761334736476257868790683449783773028520683008149642171059726779774751886100909600508113005977991621249552558451810483075025695914177150236075004455315448783982283432162237652573635706824304043082320829054924506658023316753068420258127068279358214871706933937304828075183669039278791395743726051068401861560158461689068416899081650968563051492387103884592909282917852393318419319606330734113933029564979864120400137425807450129228908657134019171086866741899015876381887702639031901303799118092195859697082466912360465548903767110541920801405582014899681314062348979867475968085772908496901633112703255466367890812253249628203835388285958550052690634014337808257666605472885964205341277956122989443954137072204530763488810445451353643242987271814522312682839103769793986936512525067745894015202975108838773267851017608511538681053591720120454185277677798831776616222621344122308257209070706615495567636674753527031011913616154553029601619272335858682511269834325064601920744617300066683590230582094575570392352453597470484525887842179697891755532373555380906293955207633734316109480288002255949466787670910732859614643911952549507875397705403548332048798668505583317045563518422994453531574700147313034038462486931405437668321943810450690173419833029496150350823875220238566035981725431031427005124460077598035646486722923086964923947658193531662138049773776499797712906268538631297042948802738678376765548726071328126554230344738959755007196994007795687507567223027110204125464671602702677805188528892606928938091944641028090577053895906753797879208176233495503145790087015588679265032929646262550762564479710645856753949186423235700739167137282085493536591070603986072686497339433371553808278661931824364841000980419059181330315769979374670542602464580959741911945184244068993270524690850534724927663073545399575721303878171983938495947728908447512492885360215377253221825784540043055360869630010863844647524465299008692006386324572886663649720525749764104624717692878211239328470066918770261544731704760625341150732141176295578560310533725599963741455810089351731908876834751820707227280692227559838572160947070703628059271659467754113850378581202292966803229171728854768423709193670702534961236966460458478619051732658475894832274761200507790943015620461374359865583863659073589964138887009437600391582695660705566694993481414107867700420424947600973985900477748464763684444318833732857123837545453451512695289545530189639596649576685302829673126844453043770876913168540647782187036339808109653642769556126098289671474821206376301687080959251917649757644813763738748741117413175312594677633902514779265963643401892655997084615061927098298348714441200471272732622060915513515662144830211990544567635506225992484727691165136265677827641058626204665610972731920225581562144663709197355841057483787376310576617187118689147480944907069779197463687816951954216042646555448138875432565649666938961727015457643997619380540411454019452616645806921269446327030117989410705284697909625897807755401850660851410778550995412207978481176109085544380379385814168121910671023046850535641123611032328165767188367338519706107579876256685287343413099470676983841657823814278127831927348599508803806167704919904932476654102533745691911678769290673802003157451675815035667581950563773203657902880716233077420366827149847531270411300824027633292607747652950452637189581230400878896125437357848145776537467010120327250659978479578694564461818646611205293508840776854520338805312077279019845308437348644323284026409399438254767143958321011246960866616307921038549640612025577989595179536058913273007647281762604177494338297242705534910475593025759494456742279516898183692913824286203249311300660038245097942483315704344069383224696367421966987532417118557266776418354201281104581619492065367977292717667696908777848027743559795926277673084068863375506746702195827960504721122389886556251460358060295196275998466103102438360343979376720841729338529131750482382566145147253951414913922191240521657632691463969482117243802781134602541657258897680675986356609312645364344726988079234689469835976310918549906510847345419297835775378716494543059640018106445301159493676931942185962661542933292506700481876425129461711497435670399895386448600778591041979560494032049991023360846813393298381291323493809626281936573728670090082336620518066810094672269711562702147708755336031952678392979774157171351872280918884906837690156126598574058638917700953242220463300352229494614481703396068505785415789465240673247993144646785948502034085064334279178971677153465894507930166003587127980569702067105153381690828657904668420739587623488413059656654189129620593351352906303932305285314021788818521501656541641298944250415362352368994688800989901466197753796219733192937385018686065247982861517525630219238536168225198841471549043989160813753895624193209868984490320565632381146297127789429052708228376058327534784038680272270739906263770546397311064204062004658430715792316967017623634230624237931062897368990382399672924877601365220960127444600188696409837425175825819407766854563421233600411584218699202206382447606477671836816629688708043065817678870514045117854113330247523094654534548070127317206086802571852302888992966376344786058887859046087103025133449127793906452715586667481504405783267872586437940206883195718521982344217958580300737255423426817998419558098721212852133260097567139419977486726882002946806569575739637500010781813222704325407800772854343149097229596564149144699929197130335098162131585701973284518640850944126280302849397098613337523345125382210243105170776223214456246358879798958194357003349402731403527280430935330856848987454730243346746994367982472164491076464855471343603761813756155047613781481143408694195844509068314059266557628921536213126642857113035864306349248318595382130925225776202329984151287079573973015039792537908705889667664014944733892322344784888560559672784440848054519617218095847447605802781346392658831731662013472097095023586905482176855732441170407772105466805122225252356137123282226689361953094517059341137924342870331572190778036346928230244932509469801009036066524778925079288640401158179223463633756257493503540100015246697813686811458386920350144306489129135497112915618059849339230400837242310245346700890029981520591977126158198274016431958582048399699587017772417966290140414069070922498317335051913312388912536371139646610295027169563237491657623359130751331457248017874494849801301338505735005885571057684245129266589495856046153879524245832520360762753643254014385869842648594703421697246044939351005645364766331667894660811586241314128915325559772455236883109244105142399490652537672175892721987084994064046702891798079089496313415374236960564064823945878549828234101549182903873058129315965549470308387624047395032462159765602879473124401431779910084511235726546701303499423770503999806041486409882522486493642468221677148128450775450343115672510837240339510948696863459351604038543155331210373710381216838627116300486864429578891709830069744383993349106700408556599342534195108819160479407914721911341338606866160838326987200688631913568509209082544319196770678395703015466586423488364043422314175065741622252892976796801250077678977756832921260972679869043166236114769649432952223449964156670930255396188834170817489148979474149238271353203013543220159149407724929408425479172864292976304107047004044044675839915266773399277410019900234715386324173497298937686601849212908625620169955643641764048218075878714079969938388285897842783755754241039839902231962716748331785459049265125160607211814977424557848281930667613304347037433344021204500697335619381931504185175152270736159728386124679523212324522285831366188297509099723623475874839207369292805064556469581099371463806745558757230838894826591284142378845996549391563862710618843324184103578712514934060665581345025729371737153643165359542747757020351823593826223043969824404407824319639375211145027537834648690425941928396860564812830025719277027060733762522193216638352625189279064771405207671187056052453322085131351180655228366352309148344381271740896027881801495508804651611369223667720634584975119554401785104359958157887870354950464595273771561990927920571130701569386362205859366404787858816136510481678285486361736180473540725474724606172179965351988560679631130417124574688834375626659876770425890761385490424355682689022016286997369876697019271592186191078534265132565173978210033366559317501158921527165458522150620326291622942003621963651492990209147048207014807983148713625043526198818730051442565831643426838213992884834822356897228136908927023540070956753658202517609369739246153333296589274027936591854320501665072219341846431527426886497493431501664875093557196837252843544533950456870183746071961255745988325974740877366469058005076069436068495518333182674309951207648447164133177288728805396548092897823908564535412083731748684668104693804888817440288881019371311558010493225684581657238799146693788426724479531637453427375519527287410521553766823694352922651325099066481225554541436349716521687949457824008999588102910927466410961380812386837674001320533353403107784512369347224350517973424148812745836933411511823046310694677914232353439079311459669917798028872154512746966199205958827595187549846942816085783714798629529888770933331867616167361817869116976062773680566628537214832858735449488629319877364670929811030873101267735861712719489752454023911133108641627676023921099418504726301115998189515380614461404650975591993037083739258565709306139812014068697500286788374578216489058400830882379153719328719819226282258610146734362798348608480872509826653908987191858946612040133971246106954981036905830991325752980167929977056395249403068462689173527268843077633694572060952062939558160818343473767430687687029247161748624917790306109795225841339177556379139251239013379471354159973427000907528676623547983527175464361629366238175474921575001799372785778235531519305536657164126826103087375373901336777622540764359848591565442266111520522921878782995818095888756277104439392731712513326880193295465274875365473040956217715942153800816776194903963020458544729655605219154307216149704725244160230153587268903000758985198839789929946471025844751088556839825750774090766363625310898289012552265080329920039615086680818453643810837500253653826616867363911546841480436455964543345796453604910826138082706640014508177347755944047016569062248443235846987012015057705913287934206943487603856468759735728493815171419349445095656553310193769658631291277188768592170089946794537326134200535932490536374692561929937227406524639610032922247593041176994691142675516199299551151193376926633785662739159612232532029478320657109634105470001841567977314750994791673396928684360729947492483949336885466543578736945579269841647070827443909999684447489387548370196402269489187518601721049110725026887540414041831234986339780497422702278052131021587678246819048716318445607536674632133421712330358231371143570315020970168063003725686990765501739438937340487981371249210206438542899969003722353706731585596288048576399581613454504231523418926976634880299396137380660853746351727860447800656271559286373799797319771202077927615820740255409475208991494884790422385270115416865824757501134667449289387709295034977851926420988810331700116609644684051272606664365450856195709268329783248563218011459853365770751638364432503658042713952818413874888523666937011072294930346613698838957416764559755267549062119479419685967477543571901414849688295852784345548326470591954347297993784129991816103046149712843986710256056142293838703400351414303672677917728059138590499029381244658410962443174431188294167486317034652153742161651925257692679671635052811054083989255990247556603754529544890486169261913879892249384009160811843900936597044090623230679051683761159831268508718403724952530775209949321998206074088276089139379795568503618010954306687015425697342815471922386802815472986636969194397662046897367963452402300073845494582406478802463457619200010608872273325358208327918036715284793814196540549172634923832490824470295483420109525786978501410261188041872189432742707872224918363383541748126964621051591420502770280413903522481336671867822511575644470176782596563956100206280383875326426193964258843333421587162623452927748977355755252742033841484237584567561070359405038583961289313644610628931675646894694101871777459865624124123946621043395259768737107959927500092642676841227724021540239543734224619065145435349557737811089257445759967276213220224927284939467633668016933891456128902504787023612668861656547828848702185136750960003863300451747898263399210456379162423386766549619709500319426781376551153130140015489216760297139245995365471284808729107850340831209324588998936567176302179636971212265277132551343536772247833761621444696600661276060084512977731804655052783354798922649710215396831725751895007647650316399972875082097226223932464695003237033679427333379114769951350883785438181593390752102349703515683838951389912312500634385317361505459393716153030116028083831582698998342099389074486200143682193438850455005425447099879001511444390827655058311801343021789886456161370082516703110659168778560425891480247196145564085441321694265837346431772709508844063784090203663520247199912075229821180580906660502033854305958225119463469240417236210876781833534366709942944961129372229360869675981354999956161261424751684248573052077461714875305738553173979229005489152320020917287468074055044047268373040808689472124537148445413161144512073493136606295542358510072202508448623804057701214717160428453606011080050660741993107292508729248253642547439477609026100531559336907442247693078630479759115190976813327307991724077369577982557873761375008961361530231095142503972698418430971561867514890463974540935545308357591226698230564660845068096841530247353366445729424222175681529449679006918102162560097731802403640851641061648352738509045364407593994589196178384489452235962456005911100359573362095603130259036668692454179065544659368899620481260334618718656195028836241209919119105100119093171388237128944173270748577971240469054534157468597075951714821930951053834099362547998320643576648914122698904853202592714700413708292090507266117586676377250320915566763707173253526115514627413156843826243073229082328298175789142447077734055022480146246833853337650079630347619316856472427336554056692251971973060157561861904454668737876745122377134164432586950636017894607709964087504223638037960856332815083426330020215347503895735678264111482312426190281819041989697418218057539218379460004800005208309784944978145288032613367179134608437633431777967379494653086596686957888469766964868203687507927180532439251615568215738462441305035936733074097365744704122223299227059968408323723318266727661126216457872994147135934703307958030253129375127898499240426596901644222061351084829940531829557974054041491270996866788409930415374481923665983065122506788894006991004517485358314680156854607972532095681903834138376784014293730877473394726253962612253706749254635382324412762898020637633574980161505765276911328176457878042199487996566545612543921904838105224083871926425095867828344023572124656625120340690817819496419124832836646848630641877564722966491234267237777702670369755090156877048567928389744648489306180494858187340379322684156722796146462721676521144891902028478184735543883802045936893802840712587933017844477591144830329484646635866996673497384627857628299639231126931752987673675124052458422314002197441473568535288575649561579714479662065385230442585645329265449386051630484845013138014729960175230012188496657143599195105283784847962427708066145756170247542603236542193083342742308524510781700128635282383644345084150552608413038011703007428219218378338409997286193729443387854859900347305186391467608414594722306756182520588951654009981198601977617542743848581848764297692157536803043757971799158565110348494933360662188493293485163103469885952151169952112319924318214525831633462436416708656665214220343028155643461545231349024455382465992743050794039603559732878252678785169315307602362609458861495005004926987380423866831865566814634163557223653813214077390018460640478203977729544717155901037785861756343215174129861943458432357943940155296291790983185239296927722306871885594423021178240867193701809975196488594955848094522426900342423819811943262329334703751164834474636054522332571662348243714690089673339200849724694095569055270445434544988150119175878457854598219153075238368221768994829057468854893325250251701427122696796904616338577187096066656281567729095697602221224188542593303489535858303822848052169882147277264019674726714133920851726656471115681481018202210803731624223867697811119497087902545136698563240055541311809418376650813837413158359962031531702917288030248515628572400954961711023768864051746361212109281311699075666621499957308332314685229516640099329596192372001929286847271340130230058373234737200932880080151358537013518941484555428564425847648899338103228073637451390316886421153688272036426961559299043897206458772340257016906330722277148152292738672376261172096690754361538337968898132090665801714404353383934366973564312032958772063672443820544968093023805261401379220630435604637266825026652384360152621992285464525093394883995551595670829027867890919979926047737814880812274455418533876991167127594936754702495647258929638571688392104546746351942208661983050928750192197248323495236210167902271060946437628381126313743743860674032979963416663319227601869551961984996204731726111597436394941633443892500398981302313742411409956055403261049021307400853398737184246920771104348634903945093210502581397877001373996769664531131735355170878764337605000271614710975206285501094951788722297786546092923791161250390383221606828677423508934090559110681464976800667725811121585075851707447863895965048860816862624307758026439186510931884287339429617472106824465924483666475899299522962309738690438864882396525752581598540381016654248988059653944369877296961797650405153400757161643540537680390863723469027138293628240058150794992210436962735653197979908043154747363722595806342514642825579052866134286412751236169514551958309852874862130104470812239685412393572753283353749182093394837810963562505105151271035622734056621817114611940356332113736281514976952405142850531339589691743923055003601008542516962704833664656872343748467891987035685254191878664735678730507769353131084553169628710873430065901852882628624100919760428873608429929604790153935446585580026431813477239038108769774001033267308782768932874923284983152839420462958949171805908288757388037211230633692568666909902017550831723253810644320616892711909602629667401472433516344764586337733751243405379777721726404411379641562700633408084010543775971986591257471711389823399176396994785769345186272565218406310760327651271848580297881458559556716793445439458604840684921094132686691551471806818329901750892690224469617220243758768668562087206550807895766531923432615578415367589636573318569973627346815640968152072542754544728843313427008656349655802320329818393703802451256036764698415162317661803507403197054974071615542809789290764953967287102557614040771711977122469918564170794927080593648735496512931363550798356299278070089481890922897179015972535770432054146352210868229680401472459365193252391263655406329808485713531669530147917814848775008178219178312710974287059551066725618840463141801934644678473502771052761338206469004381309473783574852503520533098097778422084831224353509378833183109412599607223954466170929979833901364979131184631909019428059341338974514290746358998002175597188883610153062625781530813347041448123890762306278318226769195372506271875421004093772584774437196552162890149801347228602047743865102195973989093373056560584216155067543324712442840072017910432276727325045677587477552443292918884316075404396994304613518819616993347023930525824204511792597426593774751022692815660921658242877125966829141066456851244164002739042513324121263026155769478489285815897968828146734612503687846632098707968118890667626699579915380713022170560924106699415257020229538449665386878595516950196408821563951564858055306780720295290117779181317790250040511175113570019444226232545434017647237454756750736264769940977026759940511753247163341476620539151638153713482724973600697921698159520824030282134453696964682666921727899160725531953190914030099916082959565940639352340210573530366698621193457925204320495712520066329711317579546073202839033958937381581234708134209424631854477405534913349605209903323005611040625526518369969712011778344369470601581742293717089375372558431331893344553268794830775561259698122614720663322563487708387254649167745441755470884764534549919762414762120207425826945865149567313222907543125235947334839345076705722428090246514081601283121965907093770703714341270337950673663122906155594561042184412596087776856698563325550123547930132085360337754159523177183310048931813719250840942115591424248090214318144712564105697706048387742616644771041158367711060981993343760631749442534717897516191501753802329543850727517089031253127676084708280944739213119034365735216250872920049042049147856347557501666738850498409608969364933919963255554799293038334995620384906847701105117569346260550968894138164171229095939620751041006103062399618396475909383960396621340635683017852253276999757996778958667476165335821040089273356712523966791195377055288875496585510643714118595911609961120594719960738555551654399371595977768761470717471423312265150365601428438391094205537358440438035842730040562958452210434863971325438507145545610350872787781289885189211992758711209535954372981664220217775622714330165301027537950522756134644434778096950035378924541790633959503821504960063410697436053761821129869028518916619656527373310147640080691970616467224770476697159575650171783304264009632765618026557053030939603378290105453354826701830888637985257691673217259517584929233500226824766240663351823496073288529411860499022925712103272509242078426253455283610318299392188872537257691339415649243397846176795014425085048127026176840505108766947751847932529662850013027868556400027160714042030834578412561386998446115906495151522397453743869365484566725929256337782350531708309749395153270997514782402588467369388050818801542359106385027232277768820315239879152993842872803422418947970019618377822318010640607702198272869088065681242755949892601176437403390477197424977644131262807014575462885808812039831059686526759453235058029939102848178338853948828206765802587175670488034819492441804070342523973865881096862313983172770382434714751270575562180234521045168595511293595574714357802641391924133239047663682470298166684265209211049071766317150325830105898790389604951849179505659228960999966686354505023140646207691378237005296219210003247752171410591969560616856382444394686076928736240912028589662598635067410950674421167455312673524977009309740880801361349614600231686660895510270743089338076037500797167860619280057821763958645943877128245803247595729847884940830894690053946682370190610591083843047353088350359685371648190879205431323357620284423929210735768031422375381578099316439408807693094652721954434404968142107023033158546138299664134483542831252061030939540025823293240453249741891912883585530893077646800726773976294102272187643412805977340446505975716074177918759146996868712506348051289171953731412794303433969642794113984964907136864047442942981242712431360934025404732520074961532327311114737430274602392455466113236820920089034737272098640973730484069417438961126307345980309591508102064625109024585034919768348312254251514225579018199146364394094293093800275711050410586840939364892022420858729289583178325489642265552638435491668305937710728975502518926684771160665818480414070455318237546530532150457349827962605926536565924269052814835087161481615434124572285981985501551646636354858264244109703849167295806501650429210167562671288188658655627408074715081992131373528268683140088422443857104524601745325352755919753887252353048581300830108448569820215941561879293377287314237011752632925595455705664126585851992406075774010944674745993950968033798662078761187361811464136726087627143342806810966919261569633265012902108746405258552948713385921342489492432706762210883926501582049390078342214837132913381707007575524707071122783327311279421874305369799534498100530617130177886578962247899918386741366083174182102125564878225533619701478376101969795567483176485081848906152729118424652672738849935119985518712243945651187237018170352328679768098573821749240099038318564127610015878023919681875297471540637093154570463966273625092932402442218313536097579309153547382087831043779621874964979042604282201742642544521099352022978698450449407852840054973690748079780784427743868982848866466658126022531116202559820555351443382356505332305970996521301178927312027144337308202586517161819822824442112787195197690138999712056988334633474782045250635129515498411106726057389883073404713474646706928530517988683740802946153158248217808674199215687657649162062683910862371981995119158177665700711357269780038148770546852228714878109314175457468802266206094844708720628430198223675496368093527652022119204633799443770591499576535040248363297085048058190616977488915337463235441067436223656754207760574090708348597668540613744514599938083219416493908586698224000564115638086836347316462566780902595874723127934728627634740784420345419930971339411016074566373576337690464493745698831210173447932009937998318148818215905824183050149361464707615239616588875361411691008654917609639864194228036270146443905925787266964826634235395243621774417747854853490196490241965584106861802539165531928391146169446223179039578211442430655282714072164324711578956640948984261047510651615457293736820083845526483173909219423109680305480875102427196142074905530736719794838239899605375831224313905759614553728030666700928835463975009268111042124665331962349603017416800448806350832211628174997937039423713334480065666632692889261031783818521393292741596679352258729837985711046248709705418747327784296812869843780674730373120095287310833648716016221241381828472261946508678329708096227768094408198105555818065285318275863518424030417037251481537075258488559975880239997974501869605394282163058520801961315432456330183547681117988764638798149672566620338157547847292307477927254669437196588359846004440183579583608023245788341872952175581227877448369561732896605752060264356782794886815673938339311199061449566388492256614698378126930215156906363094478528167164914745740212597758854972384854777535457893620696002824221753440961863657197789722721090996303420841787643126473064970970780424064034974261854427806192271522314883584709551004258560165686475517925146412717774410979568492003770263223826367745722460933317943199046037571489063705911983275499765481483361007194497040473844894254974134320680943481010570890863464827688100560464593428623302396312065060584285451650180114729811830125729924704361814755639141269720139717326216717526990441040571881955224700888038305596175111587043564368410939573970509366566034916462480351780646041544706531800352941781097841100029131725895960476979535770418063093378941579622823807439342410430583682148156592678645753232513318774642335802544275437628390709343301836311363939366638175689156281543618021952875718059907099650201350921168688500933176131917769268479800854153672165377676189100898629481964930614617527444246336969539654965366127496594436393433215892816673899146961216841134017732841147301291148813777875921039450668821077980684477772962074876614844305350824606922487081832015179776663198438361627559448096459908060657133148484009217299866237713772389464175540212652025338940297819669573738612123554479826947960198212819785977782270042215405736715691982616452302079105828190250548873168219187697308564267498211030599923420928436836454997304308390162491539104849863157608103361650892208703252527962882715193760949390551574036351305763305885308185751177386844635043430173503335836597287190240223750131547897583838430922169925866941018660600324348290483747613013052821614464749782830176786258822279778856407286477109368812549062430521451911366834711069979114584816013117602116576623655908856488021984189805291593013620505804340305600416882316936315283151866718751426997372671851394069429927559957297118831101330628006204480153138965836069942569430037150367845152562581262696202500303000773084801240470964515770721964371751834767518667386967237586598014939088802277606676155782259276993855014359055818319105279056222607486158761625334818986704305244410080850768362592997244236421837238614786229477879633771877434583682187604970563014760333511685830676611404941026124438037356630538325782217493893705689699403277763444871573490696982320385865724248217325013862041683268759444680511181447853098465738733455266816903585246286915638597705031512755458605252490997487822113001278606106810943343505585042682251480986476976126245854580267887600790861364248013556757090628995373463820812567221181276432520647902958479368756751864649639009407692001321141317201644787310987431028923454909259588539436612340054110032366250846008435559056708907862009135644058601423472903014898100140481238510012456587396243991853883088085132469814608006147447215280905520896226512175025363745883908568014881750275486492394049019955684520023650096229382271499829948813764106126237016094857898846338463830774168983520810790069141138885368797245896244317979374397496799918722748016512898007413502622122763292927036199208936660267250591333762085247669900283494057999559439691242724353396219771017775992218939961437167528564319618654700416030421820503151664224169560424064373168270316115734986730429568278183819321945309063417403029445177198685910988207698688767968421767434261456414198822096017406556182148682282506458932177480468772563569738072673286522009535195807713489808333538683318589763136817317000242510483659142657732776796805577480931337076854830108376967495926194117960104502121384410510050260915219730093990603570569517284230284766398380639668794541155481346663534575346303000682943505377073927690978841734575516453036331235931110269038980033017526865580804579503255232127058738177919158275985531592748469566969047008631998997105033751029085159218245865042001547631519672604910305308769357273584579940554931612775112932505386538218958070396680466955167546916016173309220991854290082095117242124591833986157800513965147494127333700747027347437854117572879659252198062577389632441249729923538878556454339865286719131486483713137090069257516545364589009989487304517116998054438234113514965338883800915417159559337019780126989743750907490882277464843820108428049010933816093577760208156634219189737181175224950199513085854412755724738034210428383331479497228052405576270371580498145624836088468881474805053238900271055784062945687452245609397526432992041111359129042120737478828987328014764892618241694870648090654238532436285378504005925692534688225768285103433727018370573949601732185477924962236927344904289333781176262646563544277562671608995278193327742339116896656221921492799537553202081115158337113849049422383776756128615531159229747430663061875744795368478459405096869664077225276572981499985737024258082241017633877462413111814050387292232203396470518445538867439842484962138912035560048482059145407578402174118438412637801077341237323389390533617964267756145671185813625742868894772302005387714540635834483398619912712495390057102246125234408500269257996742302964787907175335605248391437637776738358079654969023672219598382914439055730565018998124272012288685362398248866143296160619543320279649372482685578908144982513425837718561408730706383161043088108844281469848128907857518323807955041421082561660417953004222693401862319289804565888315060880535023632623549376842752853098619649078519191216351591655337951540352213219831071340314909795295822319038888125849659959839314463216225513747954419743041337903694626937040166627950151803999413646347854827978918741953156376999406981406402018732878002566043620117921818402923493757508456695320916567932346190102744311487330869110649050570487045980562412019588886858797655006709575270140059626926022309326966075599546547441528857563422408390583100742413813654375402269305524381183083190438782203082599984733798632332892600357098068825750802013169229453953487146424382185309264089541529101693938731271983696342610231964780788841088649249247712128149124314591170787362264457543984692153843814731067310226829310165693348946972115491202478341912855325608375787509632477056732498254601550077409751738898676988259903904992959399961375672800853570887591844147845354332358254950660677472853966276545298819789775450311450960831524875404632717536145657432135665864214420428976150833206613683113485527620370967180537195637872174430940797015343209104174155043416741073659114944109760227381770923311446185164298759403062655482193227289731764031320423001594703380312681038551459575229536935295214361826656039379065978047306022954374461465524851786839741155716274739834303984041549711662904281982644485536468707193329373862436986902655763045138273985176276811472247916279601278447185378142252391880620411178206561311074897267333193370254153612051723020931822373472114025760961196940090638081964570818851963345152897941310467657891826170279404809726576799999652265091290261366471047776845547897422092250383888901147435422587503925199047321194418344591967830283668535162967669700491140724822051229370361760368674456643377781703230858127430149924088377898925045170296746813150943032808468529513859935813334872610977553470630771797720329239821953154771129968813805524694068569306828862842256346491072766951479727201482219481390615146899611083838073518346508654107095834045288308393568104879492958443768660539284260806733918609979393829303669026075102051963005665250456267438244076646801631541167885048124273532940585579368057192459361565253831144052725535765219158113855869751757821230352050319582322830480250649891952873644100048080289632341466550757515422456960245649616519361596240366921319183061466195775536413909005294643909166723053486740214631942921781310487842839824309996195262526309106712348176396969594573655235156955784663103272106735210326449915922472217190067842898081255760456378731541172850716394081888467946411872632169734714094043502449576514873420740353406618799098226656041226058252759587110063903280526487598083534013266221247474107224788268990835496304953964956033566433665478720131042360949677864684929497470288755200156211566095461463847316686815950507937255791629974597837872058318162320673263415908857954069671113890292496528576073603020757711144137659897347542166199953353550802633517549070199469089868323158227978048044875696327131966399530741746293087593934014527922508364988110364202595744405073233440080287942578722143377111511681328216031850195531729656776409522393456382906350826702252820042248535488371123053074916046791008070620930961208944371596681301250199179101362111697189868936074491049567185423984674074414151538486974492484908242348299551132859265874719989718146444986922161888672660866187083440949186874838185445838393384823556199646210563022927651014078899128727992567576715049455923364601640088152013866852244740259514180975825091693495858540831585977251161855235899064301655278957689391633048908632286902703621672914519272016618233621212289058425957119502831529665968544318998636494949590260757197793195565719503001665028181670865647757944757526812676083860353690077018353269442291974467373244054198765103412475191807654667229802335243763427062707727451467263854081564296320027904270099469520156988439747777097254898678026096279656994871640617067193265662607591490703190323947329191719140134249910168560983780693451391371243815104562164176629733172727652791627986101149856475449612759344137426970978396290608508258539885992557285185198896253389671575256129382631984869013128385837958299874567392914508164262786380263494171857886990632524841063155155428995427856253678958263075420522748070284343516942207318033731407119481684334404417166703017152468135506938129661338791165721328721371259580649806676633106518455385513553993950241258228557925301852161487762598084373936038375281106258465048639432492393795872319007078565152121416938430033024827033276365398627197280909960018584329757317183670001204175225574127633457588319882221427813852742798955192520763321448325706292030094249048456074736344312610060741968661087871154721245459599817690480661515963483660154182391834387054781451909495985031221357102647425730236757661512306697981728918521940664769437497911860026501857964945635831367733977741635257053477925440662270729383521478425198373254020829482546027574540570865227117725465281748520643914382888974819511045382453333381236487866636791648943590859896527380986313498627963861963836046740804721446688873372192828712105148950981735075444909635273578489521883261937054843689876437255810695538376123606487582716361803980038025854500403593861248340291258248419933259439804153215435412871603847762810237462597924165647874775109852714426623338943241310041833040836431623952911868450052774449205166383478462575288598670406253840544000468386490963123939247514192838852489250653291130516475303290743208346824859928562812386368071388297199077070498617813024581351172211142611220310621819374984548420373557946671561559089487914439174412991249222098018161323320528740635713703196378380935582849028406533541583960528633807573527248110918601426146468171090636312818870461835620659863501401805250518444522145388913157120207759220992977059190776853554589721542899613481847343076928021470523541207649351943604784024445115221157633756350326957507292566385534400695735036549567219873489699017279434871503298779969232352339715441142354734516423698882348442947311041055510170556685457591311539362271166189906328966527199231106191243867847410792633261097049983685500006381162799463750216287308134379244245336485245143715422441426335205263603055038141570300069198555082917395349067013017442491510356036531630641343381492622206089796351840130988073888668757883521227188817314136241614160808660552726909937640573558598619374595925912020856177553165694698538670599962566850192573158895123584938804120615566609480689930258288665863822321627950796484446979638645488031465521919651235866599158035969938624392587592075400451347451468287252732804201679317608786037704936604823923866435749295284798678285289545314397084852019854293754754209434321418933046481808001045439436039079022050289638918534130673067949196086838414900495881199423612260344240244390787615515089132383225485422550686465816249004294688600049545030020897313815327787807857208209724684711885481091113966115202953525067641654684346387514867506641182938138374584102020980599409324186422853450677445722723638859379466210650484175365532883486020748705443607608346030420665298883619185241110443625427655950045252984225981758770991302431341158242476189419743828178459257081349770325550578552481288702857157281007436043627906803263528410950193540986802646521555195465609379146855900502105787484362114931003662417860738180939249775163907633612357947226876407457105041103003641670935307054475290281423175643195703086495924808913502550801310121642174319608577601373019098527417121452663757884048460029247735530035035553732942293711938546388762723572928737501744781582769656746460469944445085888069793664345695442947584860345658274251763171379551421437236398923033353400735213936937703615070810584193877853694171146422040285609322468886736571600188463865890256621262599550496596217622410026788094108878078292086429511519718240401949918389926975889225144164604887071219327051441070237240332195796375241139239536829032596790045934503458252534551149861266520709062611885176603861207301909454430806220196500445031470807992685598289270306035854493536734804094228616553219060052448140835581126174775121571178178135291411948967643392349352119633583081521691311113589491703927479415727079505556695522786775440993333591626799882367970733245885480507242998025492364763333054389292890641728123197753163291076759481813579854430960490808676089776484698994876796307326380901590626312438317152578620895765245464796298296160066449259396212168913482956571557666279948473192164706106790622937243347319062493569152720822499626562547249647794338005586092317328093257035557519836030862626438841120526337158853488427453304794901710581061823115452688735382712130076992438900562781863441555282340603663993281973820587048163441609511404587821907733778034156188012389009441067589869891155725517632926204535076748607381322093072289636833220781758921860121382355769415054162797686341925775283224329250752615580403271625912701799068562338573504912407291642605000498852845200434629796494711523250577835873423407566192322039134315832468115187151061880585414398212612844769334079210128994171790749672510078700315600554407514570586127413074545438162148461261327123204599437430443913117980163315414458150762112183412031705232272655626603235163649774152169129122026635968307704982392950254853316868096049430661701004381265667643965161781525777812816684748279824426759928526790790841508052098095603922755492491292369493105911852596176894033845624672556241459110338146510415723708587222691618342320305046504733500676197401207358452412618158391096158072085623377778226730007077471313212574292069983880574864302049857106503991667654747266944581034552726354910447636905547943712780702350702533364421257326148987979757586276636905769818114848323515473983742856840359052897434432957931636617465676467269901351505828414523310005022246199444114645049687945668103548977895031466501957117064067076946380532569471724430278006883091856946778222954872496642101721551388214840845671420856330364086606459805950429736712196510946402156791605737756541505732477279268140774989934335011872223485545496982182001523878033037134609444900229451304735422400043013217860948089437602948521198812628393544655902661298847128941776225785974439034940208581791004922202690343480100614827562545511424894296964044638613463593774553759390646268042350937439537578991932449541380672247764339179626063549344466383096119372519779139077899148841179593646261916584884777689986302330531688781448619719759825792479983497472790202724147118403987348774353017681150072876635300723057744234524921788657340351374844451193517628247000812745844823719765846467668331298820387821717214339840167833170481493644117657644704381718568915847937775978776455186011561595151686094242376058097057981540308690868377391634499969654801843093521162067377939923458203660891575101709643623974031500143505461515506048567911728503826753857173947632414342193969085845935390758172516895918920375227114432878361022580856034059413129286458556442782616953643282962615165718779131155116089366443355383418507188704622206497614955564440983608296902963087981841137042891192358524667764944588715100387610879036463111943103896099076562647523628985147869506483582135986319307126657680106440919652457505572971676835418119937500544021298283523491448963206512499607914608399069571479355609438829779884799316689415743602585406563829372355414179696098552841197492578249657878919932412124758768322251082487702460578460666005812174133135432620286913057138713829965768732306814368436353138296538154734826295607335633497506610187155802689876342947075739736808203182661607222634420920636644293831711937616136949950358392181563379106851375469518407310149005846946488357013703778498704016233379400882749246056532633917924431658799645967397178567940333811243705448520601006028553400728914113234845172898024143317225890647273363067748863976864659930208221934133513954739366048152045908064503445768837016786826802120725535055719664506658312284355664860127530079544641954771103972114137831997194461359830397600127534591796413448606517125981149381543513575327119258651998328312895178375318136603462391519896955044068382067497384134785662803177543502908351522582283709305056050691545179427975435759401015734586762866146516046463347055257634931488686489868897705116097005853544922734950324773379199084595075690391274520938030189299017743273143673217878376556179725002060716798910798715983756331699603244725691296547851024415595577323041197287361318530741390364120003881540698332449837157185203754688082651862036015497510767216049767912421591382383823971762562851968372137926736376676038803326079740915834654143044897313175432566837358462097233474087524777183223330519819709275098856663490533270710168202401910948140024588742737409378855173893871515130067072705544809629535750046410633545077206957609811628777895887364823885668565628500707348071951159486780461396136565056052055385730178881440583096078024077500583396608938708312331284801146224799750587615027372098044257506920057031964831856213023355606862745162177038678520288225766547474187620187621529138299789514201232608735848615009258679514566191536761982007990134176739775710352680968921108328168205755345021516643275177472161708077030216624445396784038189978992024952438546289905800519123032472680771440664685471517450609525011945515322712786982086558917164241877540350501796840514592398963284882370701867744893382281878853628946597784955904373077234571111335963230933354952523650483123345773189723056422747838561369803969265279984997346259169322144395159511705619097537232556198094221076793555027727989504396555881119754698829670771629720888574871887756312604587834379771055080459835634149421599305789106155660093452931059656575307199092200734894701911150221018492792100652606058742675449301202656396127590435175698172066371844412671584359725716213521195035315866302407962884946922099484559423716710974380062513981717492683599245888895216831756426389382073303885883568393153310054231918790591181122229244065162000089807662437931257513002705237571711912961959407482058599303759677884213902330630219217261181502132340354481391735096310811820115289766954588138164517193163946870419299214719361393028373934486436303505149520998872519792828730141420618323669821204628293587826121380232143507756757583848248493561441674427918000777462357177759550286677186972193189545518497177117719548317701721535859379555918632452000847993014793631214360472672342496454960221736894584154549978958477001358195364630836653913341945181790369901000513966364700256038358802524041265139595694671628567369975235183530672837600678405935632454267148540601333319505934293712869135094827809477721597851475687548946938752802365634498949910610765924869625560000485150542276192416894215976402266918729033363655264141826113863276634195136459749661711948131010218197423316375594915853064488309571008822363947987566777121176204068721204564288830685769951971194178376512069302569010683965811829266294258089455845452058019691004261629458490825351248678716130782956734080803277972529340303577847276988224926987887941121291121997299056704294856351116696495954900881072000188996801466767547398614616146143176432995300656806153997315574470500295365972726167323077887006020938969676153522867130107957287315725456502445832749744925852830237527780519265121003664392493239555444093353952693372820130419841266029936061854611476448617700360957474839971508855136869978555648168488995703697247625954969359382255402442360403369185652798348029255548200999862356600605109623642872779003743007210806803152675134312486920531182460918438822614796372799085952512765511514802911324315066874014753853374048571519115348324967847883577766797313988653145168670374159967279161214717469903336441860043133905261392236808766966763664988568972271524785642850908890615135982818799576707802372167021583024634912563137990733255165312516491603000999272620457188733338226278963729345043707173437481546239720727217757031105988509049484142753118550182001095421945722112775364317709980373102250012547849760926405162656290102951064513172669647211734197979653019256415815971478247245533735197228359411526295514719342100574869881614942461290164220390128069501908787952195016607716167641636209128991384737159632595527182307976007874706334185356716732209876187557538336823557078703021624404174258876297941546942300114945084382695861095156649150785918882084323198337561183535428516753943326929901783555898081087279858790520787191209378015095697201075991176093775964913556260966745270383150018953560731130588762196866354562920820333571994754439512290529444894258806776886071934939154397541231014883455094506652049583045018714433158150014721289575476278531186650118622333915633604067799840367970561480911535068982541111490223382351241099018633172990077234939398819644987935087700923329972480564013519644450016306211043658855715284193068370283351079398585089178485264722595949650420337707426633681085308546013484123845425970486143319538014471561059064749464030527699956497971049707968499983145358312966753537052004259134857968292658062467792865400789985547963789851415609322139404058621375817894835949459331673972552192225992946845728699516472205326956359584741556325758557493672520364458594669972613972774734293596286797946006319601811576151003379253005503149502685748511419334715631672268528597915884607533932334624825623174580503205809829461804448339661491090309974752907189180108636542981715381647759933727660910847675570266277239805111748002419364182308988036312331330443152473322891618564670618700593411331282834273246036702768765933641011991871892331621365675132711911385797033596302347544363775659657965484260265085724973818830332815111401097452431220753261445372840044290672404606162326560696505075411405985397309543994128150405159821247661931362273929561991114696775116410915969221993839413865453783403416655516076044071190744087371084952411916066825375817048185421625731287444632112210072265094221921347777590620416116255344492497128505887687463906099827808280383819687884960789579179895301942609581403585220070238359741807942490013177914608103574672289716427392710532588975607431514127059374838572195104180566824253884400422287530498490908967992447228849308580326616810506143108426228547067390650881225926990716972926687310100404215626873695279176315722243686880410705986598949052572232766993342613497894814897024905398891108923424031083572983769405707193165720410604410513924259892413495500328003980394505420866538090559423753745037420626452859243147276664818293564218935020622048878408920176175131296628543151680396436027574799194963905729500245540358410332596441873670853902996956910606887066294365180765835591169449198197591198640038168270408361813015292901442403189765934097027682415810296350640822491436130380835828408387679708905936864388636511770929911122518021150796070216568386746531932129721647702821560248925975340315367990910145853198990866434758576245016801144202856396303670456104960021252627270186598905519642679397026173927538410615883342918131855457207264703393853155944326672685781082993794449893970611689307534009727037688936664043102747872397635634992639567976146287423626468959723470634662519205225856972558821130162836503652159740335305465868139724042137399637566785576844279847519915807338724787326736061689054779762627309668245026279987509337515012646088863641350900147851954447272516364851721658885683966595840601917132719284711470290363837276239977801500031527003731214348503641202888111895143965795069961445878555986955826703600201150010929923178355627370532448090605696890914973569788105015707084848627124960624014062445746177374492075864735191042996591257832463160377854300240217818847177956256135258446022910909311720502452824549470760795124911854371299195628018349325367044963588167499519144121956832848730873275783753874241452466357355443419794590012519782918049688512227432714639877786791277492523686624620299063447660971909779237142850292765337569586917221911436430050253942473124794677888157078100060108605403123301402667014622868341064662307112149536522018745594262526183744111165353356022414676410036568215300205279952361928633813567384095746270171232128204084888507940817286771932855424057928816239915206493866031062944664113758064919806180926571568343035926952384636641332269259224059761282601473346230878629667720132819105200981886740428826309310689965938494532825504799092756922884384654946187527067694752116439457971244057850460065865352404441901445418571859668502167499139328573671257955773487216365808888819817757354183965583016661167783344489314068593936643185735232689299041965421150729098945559311946537569341033145746536845538654903016634183153539354662412021066851927944904869643059492311981194806907137204515615370005938860661487486538457475670183933517231706802058650133547386745350737063819696311141886504265087710040096247630866620568752430380572312897358492984484679295461234609020677951455799636280580396514926459620176817363677351772342899505413425117500646134038769459046695625254652136255771509124129231178878920346464024636588090759236412997740899601919199011733289597795974869846989419175159606124011948074852129105130625628545386408402706511306144799749857982906474769227550300819056783656674291185632200520579924261582096391092545469857185370631790454594558298764120671517565242806661832041692221100742269094559333789379352807583835050459562730461848219983415441130099873209225712418637138311500790315439400412157382132182283567395254871901648297816390914987333875932243414568936692657753727677258229969423709875615175938896600675315799488394388605992745968527077655440244178306667782218356720856705930285150112762395454025748351846329017751459548927240082679587360769151012882370155205238713935572604294815606459959081686957499621933098430019068454784698090297360699914846573706402548376958890324984548336419031358818065285742040146546846510628279811035059851083465438285517210335575504854599757105048238222645772230444317286692933955304937647373602107245555173009521472318535394388644899138909498719983769940385871192025963561045167809114498896935063849941025814082652560317741443875360665124736438115950269807869237772299631114675995302349318070249428337161799404926180689059915893277087663231900238763328585574013666677383234442243805184052348427220447656866674244791774532323772471796880442697726352201685738894758785891974073520207442111079135030441536912980222789329911379139650825661253828374380716091446651843800520752839215875042148322388994004163218556876475792564450564801139205315308572457768836556205891599066998610410312019578351909141278656832995007573432547611159719672894077582861006573689536204174581052665520614316308067071637930625028642130508168485764015926628048627153526225541084783210581995604259530397079670803171226481430283953550459104151594965900050954830260024655390100248723851256583902351906560160595600425549368999379219843578856399717909597231416306147702559060951318942042131867587893605930939404202845424716543161874835015189536276287371983054714720050248854554608191272698103041374196640524201308345064072016266395202945028416749164226302405142489802351139046322187389886923472473372318041093366196891652750621790921357279997082068020384238289165293896530997178389992427374827266121552977548372217578376009211825649932989771118575844133294483996165687201438063710423805275357197656434131735221009119938203161136596987403194313729996969390439371675530770255013793605310409452363607573238243179913612187792384549015066325176567469773057195248179421744549856018971724208097793815054668019462273409860274296107796946062623022162472040438973893691792046078262000802114815836601491525606068950162937540600975434706060441219565485307666940630824292420493244506896873965744183111129883775808909146913667764161246982726621345386490624855160127694013780016192882555003855457342157403762790268593523334192193469366144763794898871193092070268170211519228589189438301589742176833205480099253002343425603025710789448384761094694858846487275419787442750766309803065044170614396900505877403759267093224611445665008767462721353295320059427136362866597641360440983646752563700709424632712020318333348911552376093633737650628186419445862457253965700243112395233747036339927293865016928054819611587392849049105033899228080057798852808661453842965736176428852152242532214361939580791818176155656376848574577401755724100869265049258420037555403334727432962519012729358719189729406379499022946042795757186457309306337266997720109191069391817805682247725703049505800393147448693742252058011288911673977636539314186241951783963333078827596904632433653623962405789532480059087930124557775581057731738832458077938292011490420027699993321530690162355650891265825294764360421588510766519733320706227897989117154757937760951892868679730361623752939223751256641026874536276535487648856113483917155762968143145687148577050358625375729560548331196409392437850601034063224798587274811381989303207134034501885245034697850491995993331282198747103208890542757484010899266140233275429095947782112471587420867092931951986318385660917581795506865268157422205297777913921070541315768613894783576341690837608116462796353526801868861999698172336730039563470469684467134797656210195700112006052528393109796861960249932565294845768708394670774053444991288642236970710642315576763305636557928606898840468477773234934348775135663045644582426924475746249687897027715787476035130533042358391921963133914349579070821639214704551422726807694982852255258421574116197502478609815548956682293148576250613875754056305472798449676791942544544165712462279977984384948036945291469488231127594027271953740520374024535370166181566360320457317172479615485934845670837663160450106725942225459614548919237837065954785099962735724183312447593133921113096224039923940207737441094878059455061900430109285496646019862828461609634023723199671021229858647495055874707469972283219582952972862066051862294103698936213757311676274376296976265114211118796807113165204998626072161686357071813340951206937650491613715537893403932090737799207578629893182027196455785505410154213015244024173241831842127569239915657633038333967417628545283956351911850807301561155986404517245962042541136607663106208474661263136375741853526068767989098887355085012686796151974377485824969045459168644650834208456495619983555421947373998542631379917652669539953851530055105149124255156380489884447063056646770631485885178501635146012228046013177733796289685921427504970651848167235620643621143005838690863247818911981281147787450976193517011128261153458973587095819136418169513622427645709062984714707730194695070380061852413949203217987290898751449165285843038290231491910578870514222475921731284134032634320710681973069499759075426507413867250270425729659774424454394863303943986556597975915592901884381360887271118232656629879633248695722584403573135780043372996754316858642650294066412539333233938082582529199338903060505804442334280009601481568426419282236036960737840865539996626481488903375034989020710202833273723480217076741268445665540786571456888498897924831647222304148592785962765515921205397201441128863639290801217216126646337187759062746069355461154380674091994193146393355161575995211931832877673043775604075298619185755132912361686708453566077144653645892804550037091116444392902374353852961729849973538634295598252945128652379056413588216953677644966216463804266304391308600999198183379919459577280137535791141718070020866792434315865039230850238957746492824300321488364637981353756591939087872282528551390696968328286146350769710714020016597485431166418090497151384328366104815200651238851378203195558358189452104260179957704156589698750874160385313693905431953548884845246576381693379487600248870137111578343280976771387950484255722775388329127822881391769389549089181186886822698953788715267190030414962099459882656059495714621801971573081070433490991645188554629047121913693030721627003132180986129132546884007726341241856876532411062669307505185850217376412762454844108331688183662202249150496371826769773264481815946616278647345826967650411279039384551263124432299063456396403406395212350602194471265147180832239090172675817835729252783861383270596307935101875516116902373624980060725179470999934742167659518191433677057749931613315597040938192102183581875498486793579563718588954581263619860422513133283929695655940791410366839677638732873833499697210645177735427244226205360609122098689126010768078255009254679740372972585187818259874593336455803382559877356153411444941747488592128433304157095325640794566624571274297529771160843319317525368099524360195326442242866868387592245999408373328055869269194025377499690322337824663796347144887394371212487199787722213255994913766106999784825182674343936679898659858220640864549812318391921649304185591069796478211933826960284571385490909290972551532707315701972240200520845049480212479016372257644084885950674021166212758924535585478616898665224516220426627080993378865282897572112844504293888261169530239147475547752701748547172821481567359069520022707625400949175620795181792214282812252901517053690692915850243593714674387262877189986525672555569612258286325018978358703350696251635695957012492133454334708613991373715316271811283859215789653699006474423378876394570381732261969641553430293531869299871000015529963208555471040134066107295341375524295220452507469774499974560477455374682940057583759931103557268523318141441330387211287118295769808237835777949417391224632052928689626254794394381367785691176856427875307960107163917449996632103002896763589744901694178334824055471409074613108815062873828433630161169524816089597416910271240860324468721171911930037564115657918705941331960258817654271135233014847109011130515753664775467447490882072689552298606130538873346091562617368532510954290642283572172550988245333529434845527166777425193927425654633478071327030355816520012359892222118838120289338359280608296021952130525666586541259240649442123942269259731157744487303522313195371356622666312540732326981691119429783275780531846448793357578345981156921425377927743127370964605483400686220588510192779595614060490196257840977933183884883941299564221437118731122398847035335883101134588287310709251248263627637833759653921006093849958605600301929845718778189503764618115010554991710037753474151966971761523509962854305201990285693600632013174961667550578168701625307474706936534267770178144301878252504905165006083195695143837040485209479954408231352861670579302434583562802446837883199368043767841539348077768409985569459545030166843138124317609351867936326973448078940091615778204725018910250604847910215447327663491556332641760290885770890554572836101697871959405908613712285595578327214152290326749669248359153024131499185464851010020718164245742159286787461537576967696400262534906904420773201352276147176419095970453783226793705018377468153322644835148663925527567895970412881616735646804143464275962931354326839796194662961738211327843762926192254445179971375492774898536211171146793095063999523812456687090535630586255305774931856575330782243769444650001129498753382671376827106881082809842757297520723252340235950779005846373711728302238676359846311626007830366116767313366164927224786699733572085927290232161339648126659380776531176645165154709003864796996906804474426486956853845828174625719616282653581707490577633506558061696808462524772111332896499710895944867700945053813396235823264232952340438613690507255461710113993256848246106434696013441524194699566262113592771320912214624591455554333481605691446259230918805323582810041853646671586419447918985450834355820295434812175389807086619077476472164609949837030237720410747725857208057541199124625582404877891173507137450283911255232141695360823578324754997237137248792457033384925966963356840364677553378020250365711586225377360944419090819713065738287962846437590262172926621611989172815698572631907469975370874030433101690123506485440167806100739958822824940286896414979441363123797034634841629499540610259281353523107629796745531482461912628777353170221183961601506290573549115736648794257843865288584124680444579705013271503931459321233086502289932073443770444384104993999053049597673758911571783454687557494788508880671610186408966593461388382313967842318151101286479133440579167851566719054732466659259907108516679459870663021656884872531028127235123865736039115453930485516527710322050109021057667018817542671766767561804081525873377535014299838591787840102377787727277840300145080349056020218363251646791622988016625267807106607554186485977761103714951817870595302095892299345097942088463407470121024720228290927247116545261037629369783166572760610479295073480598274554596753702445428485516892874180333895148145780334158654513074545388923332245210312078924150490236046563841118081744465429728031422880041672887735267716181221007573942346827682919190373273064339030290413084130583139100001713618299623324199987587275143759361070957144201750994525965724440661145770822287716054623612662622508326240237526768846214062378589846022532257979619707801937325952344356844733951370174214937026255580029581558422391656650189014504255129185503279303075973886926687775153666609223145777940110229834454067543447788736778407043404977495458450719665289068812438799177763840451874909321527179199930339588338685794764540171017617262368838326235857861912707450789275685177330052031849223454787789511912306117102310149991750062519098532717868934377103117222820370714056136058622258577969955356501046764962987744635027591732270908530530368149355236351135615750603838784973610540405622149197757702323133274525756899666821028746418750226305337125719658741301668863478742023448240741891821459527535256279470480561467754064057863547233113215493401010304466267131413567258660913246372465799280217588086560196617568508382413494440350310719838960458862310937236793516720524689842182349039696741232928112003120934476359881124203579891411438579251793119505050348804516379404012061921750503692557322532885832127380491787778938135840851090111081746134612052013666603766151967003564880588475129906169617190825520976807634219030857787316804263847388584388057932358345076607207939945987201304028720473558049303124433692238130378295249864351696096456900788969761950041585065024284350626229711192467601237980963571733462520938613989784501357643942228682290848005547983615540602887753940293391287947029091326728753920767066381086010860062704010572252077269368003185980796157223356540569764629486404542383955220250880801663137600006385435654480925526697455761491565765511349838105557013339243896457485965356501551294428474221052466671080515188946530420981873402290861931027820425916471139893914546957512553987642863240899936725326607982729953224146217113571727015707223709905662026755543873367027767154382320541806094496889762020985423031371760897666599905530625287283725259437106424371364809340955422168615702075077356263548648754945221038537359302013867622396484850274685795976512132095125758880877669138313777258091132315795410075826433396000674237064610728430439758369876183725757908867668155368771413786457659464467795536762313868461253610690507817022996012496786637756392174096993203430755734217250280921214043451609851412909153654228369827318291299830527932757008095440784679088826373164177902432712637024526090846060585915234109222630971134014852708122706936111817783527040096473234751974041099567410674874220924971523403535951879171953291150680700494830869711875244181520242075171399382447065310713172168323785401862313522556517936385213059291278573606231458113616245329149740258720776744125254907416729988047993404928982152222825843646950998523694246439949064409588243742928382619043402583868615557457660819486284421988625257705520932625943511286335532636373378272937282544273726091963344190001730539452552882702122376360663667229237029034462071475986684199805581642830224213161856484686426871112608732267702970710038169717544674395900446247944089320557343974854453658463775303079643993855127299497648861725587074517374890085756608839662760086369382820511611659056029559677322485168567996522019718446196105621874073922552159401153381687844909038562498032457474367190178086672756271313780940984390505672514586696717696835506358001902050904517316697042232049322783672006941824159306050468399838825359715727596027179210982061570100836045120128594040762252728848394639126436428275219551313590415267965505110490561874222128746415983839554543124996296651047544204540037195913967709844914508081627352628523728157169877145568729447711998471440847276139428517106581039099216698899408092666083591128613956881166480210566231736716113586309487672135518873709157245925677793833794787663177268469904116750477966632980435530265836187122804663716666578391380965160709590886586927102976761168143327221623901270112499794630343796968912473135213379936132269218834686329034465054761408764803938661411354379087334988947728523555096333917705616754251036676833029069080945553710234133069796572700803743099676887080193520741365622228185264889587770512750642339589241963172838528238981075041540912955962153635883059224126151800988319058196896369561340742705005785057727012252481190741220660638739309668525250933955616115075225095952123510183507860307963580152953961987153827775789225610072332203716425292660738354482098547372442234995876594565393717533784385766101040489399725797248304940674294045649952359476567204898208454918268510875105501639051501492445394366922475067482010412081409400679372151371599085228133064181131866184715517912194449471288264185833037843875313217646556180467266954823518065962469451196288018210182652768410316546811651770151364993890662154275095954080378943358698638456325305773594033567134149432301224326764725503569021908678784780663217082172594299661056805042729931455093445403977195902386626490817028144803940799391955897759809152089797669887009057709724984771863949763471775916806105263066234381378676522904618456724142977724109487608246383119692851566858036984474873929787128420953597911291851762761760301997125205410938568927350565578915845713959700191752942860074927537428105641662343994487993593727943519902317276300395907566565305815892306132430857368417177680984430650795612317085905326720700323592220843286201437198823447179655786745118638844619943332422344539858224819761490427145791194476073466686165600883490300782034582835135692179443000337005705964581065258604549098856490564357141099322035696857260135753583361129962506700500259360044582322989719482539135650744322413818377350642761686503868201606774575915452989604357914577837601755212776226274522711612498469358618107305611111689005118914543328614277741463761043085771421559151870471105027761605792532017032347918854299355562557873107152604779026607252374866920251349202676166536447949578216253533931614976854106943338957731742710731009460804556527648364830432131671712537124638202391912767890317317956800022891747055490404616367200145776305852493375457772928701900987117167593762391037552381418662059832127414793905194619241434830696242171601937805281511813379061567677347323713992729797940396366802357294230366793005000831641168818967034916479022839617372967113878186344132766240244626435983876044713202848331844534600473269083402404810477609664848058983116067965262719481349143646601893307801852530021566327487954477114815011927182941563119807590130291627606912079505570906289973639244354759334733053244742740697027839686838151854501917376965722686357213922348872129254162571160081848330115868112093427610224337026071489832924019088939951547796656703367220345900319693244983595264329585924231574876365643479906969213626657649782041660955925264377831032727535365858478942845501351761033799610349675256865801980587369806250286788943114760016618359263355234254675536664218589993008389493925335793973800793450321614694090059602977503425248059650499496495950002232834644788803246615591630398614388560258902712751411341151976629553168980838994991456071676658879631891790394244771991649737807174417710560413265693929364731973613001635308553431079815525409223037257517010724151253437958760062570506052034677707957498993773471903345842073726286823243635885366740967531491509444442383154873837206479720964484940886993398505727500406577402381900240021752942836989399647208504692437217830275595826739162758473022025802969527851894113643764726823392681074175758692960822672798832535626156193704003891895126276237547913008353532544561550600452536357784925210165361857925165668321512511873858843365271650418840715780574437549461819658382362763944337667709302829086849366175187341681815599283388848160821653273733609759200027416594125488264944282693674784160300410170573881442335759394233025733874818351874333491621558294745446855781814800438099532609313693965310837448144728441749325762935052035136266343471013082100169158811173845691267816379721807126991748077647720460408120621083948430834575379584643141715595819451610943141643679939199680915485012560334340005004677024510946330331249867538683644273752490414634809979971819920974010019671923604679336414020752120727618993760088366687357128278442109853364114117548273296210088187227667914052907833067671577220855289141794844961494295502707633200798968715384928744646066822426827609861419037895427708769012847443149145851943841518180694603836923738388235223900402049004604213232096178894302918789974006478896384656094142870059953709050987223708267820381642676473866561706143746471206490664689190356494634659006714302224923285911540068272846654562647657235283371167234663389140024884297843602423141979924522081099194788904135526969589954917192078365722993247164468790719418420529979088241568983347774187885981594628071946881188981106805218153163211835481349967957332886057063254528977622410611886593593959545926070451567889154198914345211713672293184926322404109694226294457432806753444386440639860346423216806390088645171311659449295814660957652502443736627826355952162211621417409995803020648920077854324026914345303946805683363471297538434054872627510075470508282902269646767266439583830761700079880253746877861026780641319782861577933292039957281939237351881831809855658398920166329014190000704771508155113526552536545927398926910971933371171103879287490043384393427746015990371480736430394881448159024522602211370168553445001944266248715367307747065749152482718538919774765010801778157489041167802305755952234844124902846959989578984716844931324893989524134298063388789620370651871226064913830814618623203504624265393891271532695266887175869539681867794120465950680527658898523846137331502729287616654169869162688320415577872498799841338053981547314848777061735317237529459149424817105572459155631324660207863281204119717432281048938804468817596688757953354247744456090484737523329487126101743496808774221032861127385737378445385516702533686708346194038951768416195156819740334483862661316893782168470534484153929665894798977401891844892651454592243711738755037009344857264458808780444694002677832267065805580259716639204807865400326058842700088447023589516141070292176959130452171905330837511770942012346223602025125365768583004797276574141052370634211527314166588804606197879697809615651959604075605682638812636695133547121743189397265340493997923497513735007270722395640747242227973953575718799920857518611039577829889834261184470823990339813644948010540890858011450066919471754725609392357505827213310073883934191403271411625438296427782812524153594054881538951402609307113090201770558434862796108358243932198953321843942639717377513318858489555334271135967010551707654334208592826319965276108847603485513635810862097740904558125440996126747209357842719451321794118008512454277960718920554896050836140251778735665162294784136238178757844818724354249859936074206711296959730421571960750696639110975923081371431424677124272153715706657408022428814852750728535346036398490486994176218658600426100439118323977406397439450903327144175296484186202565614337337867732157859425762814610187517705027010256443336155849638285631112819281053864275341030271695437878460253933210973174017849570919198425447991178479371895908231613552297843568306780361803871821878129038311239857942843744021498626075524623256369554890573166225961851918370825471476008651627454607179031619087517196013969359740606910900206964767948834763504592385367037334585461803476030365334319270814964377240143589249908435407493241202421019735075888968811120561062881690754351176335252389394124055924086221403064022690044855573259583335818055975624241371541192394530803778038729981785979409079471053291152061087769950741902708501046558143934290844899174094398826675261612899718402041974274308760656581432018869505178346178356757351778078352264279764848261794460832623621736062333979566782004740531283887022685679556413370729876379581323190231929553363381617177564849333713305373153090220560456328038060529088206844126787596069485532213814462611032042050236833620068957105332869696915023801827629804370887543660849146708463482897869059749251481358664991449819668733897795067449206908874935808954200083500894481260204208897415997216358098915702903331893045336920250429183085003145247031766542224688669791538942077570891556078002892579587755555879239593295117653244400632187973182861626224881832550137539896163374130513115336653598186537592105603014729816752495675576525059556465974154993734712601164147708418605844530823650775114303489176524107309573595341106404897854046087647132731902350534393110409380912452316104815150258814603813024028535574880703666798146250065700310277944273188887628420909882579397643007625354725365245785259276317660595878592924807207090230913512982681498422345528875363929737691689238855298544624253755111261293839170461964701187546720749797799852016148089946789486199342179792690012926812727915827594735849783291069116559810982647292059272754324394786876010003214937397894055452061123831910800972177962114916194287918951733816528759988154766222046808757655036437655428277823280331644772488058388755047202233205472729593489581931394705540081133701026420301810916520210374430990416694318797562586605239035005229039029790605013748280751350466719405007081897014539537445196163177777839580124521455319897302097325155690385742811323165043214738523217153369858822035587004469792243459968120159721242710432175703898078424509084071015429231085537709091020582371484233097269657521853931200880565104051071570120215580728038581633865082563286856013871151906376640836538892843596281823929417331563895610929983749068020197476485488003052278365179552491514839002861875796318656229511522995176323218531799131760795581744351020817021368025769432092362909673605406542928667113014117640988285715434199738163330992078075327969105996157091711140105304223126374013889501147388201313140423509268197093773446386850504242368600929093203957104080113114376394417287139799984349170535607478255196554574132383756477051354385881522673516490647139646173535614600043327651973072716604188632794498915832068667843571879023038043641780830182022685212086778847899130381531506618951213293008606372874320371730242756936861416054773309048022374805969763356646502554451931978030949867951911061905297434192100308295147792049646847415016541096577574331726583643429242061018065641811998009728776348911236594569910591304212126661692904291629150048499388485329191310391487973349006886592617166195545332156534304243610098231150154604305130404360248641532594553467311921536255483204805970683001776513686264022118608055507009532652411520602341377502109640063924998303536349606813872127566021043287360687634259616359655146205364398587537870328290430040674654015681455890795639072087054393955997980952411577044321180752175670315282869361022275340666005712364381436516147739608038073070442687727224093286130343181985956900565731361690019292098816811634367593030002178621626243649314157505210950613171701333049605695190979076223525047887524333658465796106977808182828216816292419697651193172824725204519481602843212814715354333563400868434787365945253677971966320082366523756621347016715387639152643990460640580296360822115176199505568999567242190433706911578046655209987730376235488468028767481859510770120309667719065404139282645146671264812710523291141219617319229809561034526010483133169927670733185592838121629763322469415211178911730059283659386260252000947676320979464665508207186695801579668216557852591249430334383063888585597266191779522917080379474811206107142752300612310989654583685911872460233512304206374554445463472319265895682411056107987112444720854860757786578062000406231866832601519301262288366008909867137077780070512947773185138956369637373233856159616813926006786481146679260327645992333210007285025218866919720257967021671777381123399299279215774737300647404949017855265087913022909994667507198979185067964627111388849059696764885906404426456508409501989107882634478838236508607847709673460372865667593291698688597679153736509281829859140172350761578201110900020125674650241762593890108527699863742114146734664040154372676979521292804698312850468246329576688318972619868237351499455214262299528817632612858424169077265256094952120386944268916668161338288214504441227623089800791743541303859856033495298138119040223887987120357950929138299389673479542460484934956225293213087666950252095683057436157763928717473903078960412308929428796717639203251385550960229065927291226891877422152886263576009403491124087136497056588306390566993749520761228688913031374671338992343732900984561261103262727450645439399399452545726269455095481330776884231932147626181841823164100638700820291925091287704732389898108392870459429576759531710297548737587472195943191716555958853721092979651858142219688893991260674433414237841845577132697192461487424227040810269455067694420100296109644782754224259268075652707999436998719802224288103893979129079183664682153505834078443087865184454781440381100814010805533349032512408902322616916344441912391404266465049620395080920030532494528077604192824858942567402709069929985277745599721625303094637124672209559418482917259711619012878579704373769593052175956016122064663407583092549460292503431359727357689638227928440770450818735874185483228825100585474962372170107970276036680072197303544772007998683467697296138984514363376863019167897244246826995442601568126346587499310180931486694569237753717011959655912915795159154898338880646668756125923085524423039143587220250624852329472039133992116381982872819652600060396002930811045640625997346581310204540118587830409098901367665414573659683947160453416355771265219823690729862698971367185517444045884355516838629071599924996709769426156898345503059737134390052850063950969357865023241863953417878759197571284543271716695592722972013688103953710515107299045078222123144289437203138890079115145392336525956260215974441204171298168418701675109682247659578781466413489934643385879906220483474852513509876731096261626327630856390852476132822035551498081001469956622104477938629195263862201716381563200942458405026241063209479585007271020283897400443983431888978924315154076872831473449183802343709978991664991940212805511370154284918057204290231571381977174919422188974790005539560924730603813870931018401676581253963218704255194082180100835755574198813339560028033532973721671091531694385063644311848579575618435011942505721952243684970552598388719374232365943209494557029305578144017354211312591538456062582733581936060610394815873567855765389683438651047579922035736685207978183999915524285323479497222789103585969429734894826254588203994461825090552054952416085953147645110129508973759600204860626906991581832405230829386773333819381165246500917354282550829530963402150214395987788778658504575169290485161830474379194523351163284356024923918765142067305683850303871817933534616042891075695561715878245244041458902709916289664892498556885238328263245935520875926780649215932052172728200174026275764176602546051076698120351239351955163504355520243246285530390213618932584982190008669628306126734833595201118366470943825868787888327391334691351249135938927168760933331317513611602569012716294650380522349950947055525743225011183402171279967957500369024870527397923960490363075877314910452512602557449218354963940336946728856648653569011728385872686879107855550455441150304704138319379431295954849256912111110441983280117935918770602816194032541657622238416379989838307591039594980351694594190150568490831611076368663097587341950322813717035310196729174217262090851670853464299692385986677327260218820288193316445407700853558365846749305451887368733617630309834491208225541479326636645607810298334968223817312306795677044845756068059208361024010301657595181017006248989027649411069560086589345052164989863171133185922276287521163390952565691289194115207121412604908827597419014063797325478053535887612343484046606563788615101541275733760129949010761063361772686392003975981336422721855771517760465139380894459622816596929666536933563312605253074382834880550616139783097503465546599579746432027631504045393441019828701178368118204010497838629746005063226074546296703418441656794277684083936141902560858251925582575345964104481601886493826599797123114385411609112587166380213392072275137519240954201598882562366082683564814269558145147120106762408912757702619099310160553403952729221462312173168424487381938560421294915123552887088275382695316884675011706744056107090557465914392326852373724797887050175075521352994764600488734618770998322708486760018736508164149249251194283556936848720540263786504962181614886268704738602008823346772672304294472789597381232025650957192253864374406468072006418745057702556383750638501466148985324438820110218629062879024393044004654523091934391350438332398312144644721838185672236789285896679822415708753321470395199836620085344874660856427896470201402113678625827367250303160782959751921077239171059637083026910962739294245084449797041129016976444547660348286883717909097864423687972749420314320906267986856330144291304674313663721218194311687941880889193830330659186261634074081002694129521497297724025758538790956963313602477371824731485659058937571691955132147802218550873139560902593081177007195256480883241967386363405621284302851531271431655451991153384843262110087315868886444916325686631857926691406856661759269969416352832387352449936655422850479564268552925116892200623606900044811426644702340365736006152528760559018390973809397619628136456385961883622047556479690017595606949387991630050909123545158334969150984081874180594757297271750408783698092673348532824072001791540282259438993053859738839995507312583526929769015752179678919692254341562281385941266425407332749519792970166248507015755774918916946893837274450214499394932649150207262872498019506075048122428182825840181928840246313918791667131403630182106822474165054031669795041419587482110969937089224968117890255209215387588225538659659032398963577465361201819931594423569316700129196124589671118764933821848626269594175483105617643981875291989539813922330319824626523886115254755595509004807098257405676699672063904109598131992903653954426739520229625722743901837577762657224264885815010440698568147594876301141985058706633122232926886477384188054612365787736082266777619562705495489089651398871427495601425424440552296660080188484075848443757670786069115098190712634781722378532425937591461903130806120459447418855004975283047353071878603384710689998134575418943424166810716274803559296809528962978720842414736045598503349657441724930723127832209937843036447660510745596749052342368863228498345898177477140950250763018940022575176625647164561992522309986535437499102895864027712730932117157853756496051266887257325809489567510860881751928641534823760304739813813438083766705383897726092787056200972085060798720017051936268691331526465156969697060822319568299884958209826954718493307585472539773855928120220877034173171935766713583155827588929813351708986919030556741218951949654676216886666512150954634640576366435975479746390184598117273919103237368963799144979871505952912462085180163313256692968662810811445835521993369506058268371302784935231007492587181749507085812761352752550590796660568641570083092949471888767347410750905283068886091865566109867843591567055927055985252513939124719688838253845839619045548034342868524651068937359565731372702598100219271687283177783335523947676073636131464552903291968489552172718182730420543502078762389457138706922892641877721401473509536900441839521934609006175342032484737662587494415340307966990267855574975450986601460025089658462260394415629393118040142513245154913419761217483805429407713196164551745185595344770688049302520430847717727296127788531049960271285536354199024108399707954868659421789232229788562831969826793179439161876627704651122057375473101726034757457882906562570180281636352932660309643901530032658262066102057501735648030622112581625538563545267673482516787865194036481219736592900030315386604363236512449534779674449933183925656176247660886717535860902607603859612050756604209863084243986806996452254871920271219669160804733683862604835382990741782773787256945668196520039159528349839116744941053831971130675621086740338793037772147181396806674944778483586495746920904737489742028122871459475585409013261332542563015375474980758346042745615020700885200970974625303846748054915252643143847431708241301129155595448319033949878807341584732761626667719476092317742872196211996663203548324632082460920527274083133464106495962406839455032238127607191807572801616602062703160029119168543863710348054783148827917750434071976989021800130070544197263603363053237241950250461828766285751279247143385249885813013397139950138221133340702413610346098068730128381760251286966328695417295906935250065499946505947396701820520666583602867053870630395742231451367948183390528552313178156623517973754341445028850019178775921928992027895202252166881206003264354384674656195009359956332152614989274354912576823381301779307521098789652523236497057433622495692057450824599934757874466165732921207715814733268604931140323570491533214794053435598700265867351190122213919363341047328086492698470679088439669543181153586760833364918253224354626853344622250100568948880386804410939094577743751121429402899047634759568061631183618159030636432830725680949299659834127071368684623005045988098120958960866084498288902117778144319761985210905163452561595025428881422332017808859618313142291131482125563623829174139790501679794496671126679781973264826528191945961179448906598822015652854008754686354749264853345108968575259729076679036677643355915973881724162670907010861241859560516749450783330572270885706891796508084657628662124856056422865197863387131870971237018458223991144935154103927922347325421154200054609589061920946674941263197361875130468050228642316424302247974705913083470344248237062822534914349217324864930949829837694899824295959733615804931855457481536294834947185712194046524671072840495688572781510032357915605323548549546799069372671950074254479573913126352117432654256244890207648339231368081315268818022573952946609788052571332360242630974078094242418544964492486960677615156903784629377614936393498701620771139479333156794984967418667254354119277163896484094432937287307350001295437096765750477082055639480049795334629364809271669959379390373726478146316882551481646084796985997663623866654210277075583891887632282913111536480054569826895286487320860801067753558837119859839600727179407790455954147787510238238365720647378589928464881824349520507039813648430275870268401512810385898667820735676440149080074122180793500214798082943451658077361985509080089057620863308309682559948259721711440479932304719614534289234146519342251542361723946167879026479594139020197168001200782970275744853423113656780449728637997242423432750971067496578139303044938499164044876134146601452987816555997138730523590365932651279623809944642966306068927226484152773485691738011755089717055060473123606880388346712049876167310286591828049516348090329161545312196176243130836874557255616328779160717692872153351091835138080671578836518321364058514287241498546137855383627313657375871482145067120034226060133756566952912758178458721142561212625777739995044150765220986372060759653667900822195891750437366680378972664332212464180533947791540129503821813658061483726788318201991101897621170429741465634626416141947464862142617646132016313685352282619604913338553860845235475773099605762999144426296190981538682760695639489232634225920474757231279927320864329066024586885742630956401967277179903510560685006740132282874934252633805709492622918694589023546060488939552313506383035347292736182100109993792695621116231742422358129155731686426615325425748344017881402831389978581859168499356911767931337104144472564431630704257469594703771855654959052320754884576897624114437826927795872454105005412364217440137091152310620361191054752284783786412292008627212176540768740192132357903408670374184900418002728611825038667925622076326891230438641905899103617600486568559583334288437624373271042657994665703279118937828204152213346180585616397306546736200843376352875639215442782745956818226040931704736471991280806698230124299542018043672816344380251532173532209936241381007812292115693490420347045171202003338833932856000132807638096750233964051382082514347919531688446190874688861475684940580558508079811522268336439838556922436422681467945338815947680377330632304632442719815339583508426411375967521286713061642949872001303441033729777764809774082453973727643127032139593191500529379441656288301906862591717853230503340057502464707284995915943045405657842698189696365922428249215414112348254660994488153193175969563676272557461351725839056953723891679834975761939312136335253238336279999454647557003608939220816740104310853386589714491250865899781526025361362337036493246701958564786467052613402847257445320404558170366044947808392221703343277775655605091548696602701322229583663904375370172173829214059919982871910059207251583705463690618737475768535160514429703793104665514273798569856355204945742480479247307741520953115626120257551526066875550252625433873996274892847182448125780818696003712526650550310991819107362489344923685507241191920019193473595097560515151520961882544175241991034285862269832386275991534092901730246322526688866918156369725057036179895874765765490929115843432602662679164694603551765164124407613399552313723424384096782727867498082372663318239195291683939346078291487864152675654964938893031983888472704010490819736077896720872456594952231763964055194505861237513927427297392181854092010171186824452270983053750654010316773060163798075880261464367992235868050431011463253918722277564048811229219245008478196973353420665320634935001880466420876445654238753955771708993514859878984285480995477309240979763174191402968150155855163116151693629522414447615997787075262477023004691813708265328404642635157972151420006502975596206220052931520904902345347659612051103295873797029645295465069019847679281904875908863240532862559885521208252007819620957262022763008404124471802487395238335070836657508113304326771556726142551519104405869300962420169411749406571994040744460950029690953701031669703179417690946003212602929478032725516707979498910096633487693719868369145796838758246036237038092957495767269248410730523639204891610922061851669826576684402537270385704117125650087254399740493021465530114794938312326160486584867776951026779920963779857721072031202355850485624690609424171062285371681697042443177651235740913862554449073185454256186263125351697945742828148779296249468951671117010131577397898277932707320716351238507078546710250812208181761319987937927143953190572093532916908109044477679465894588224365700026215483222450294585902561568329822930560452143005919668216632813593350681882488349173923222243138989547376007551127969267272357391864749644255476737871035909924062473230772549281102155384560108147180541152218984708547292459319766961385360273173112787500417445302692898106100495571043318206534083303571182628315276628537665015696685520238969671600447931072928484996808621676890951111174114985253292752141409625099129705497334490343886993668953787603859349133146288281696927875620579424148597704708798157110936023714652581125629512701361928199322984152239420181296326996699022572786165769971805036819036997384186243464647328620155139808183191947692277956836028404173383088188544479090084593617406353767059571193248362327636929548054722018353395820891371794901843924718735128774903991372862235760121197607041708217638501087892593936958998403827474567354410283048077435268768966669004357518987051594650800409044665695637114609989889097216777147944715874914413698316453730413997508007212842412348239186815130175576450351036115575756672737371328651874528697029496188842332348526726145231869654942952364471652668546449255465502067617238523770565094308862649808675145069220606934429542517040331254013997469856195144842533480558755257390098417789271996865372919659526997109309003349865002166025305273837615391676672840363086840917122575188853146501167975639951990992382638721755372824620752776268412241138094475537175643581926124770506668752190905636432990002589599558005972234811126049301539981966384466212222354530658737416622715317400710191714744033264027118260379539594631392232173385008211210070889142008297093028913379845066283187276600294664967465497854553955538370457724644430269069428373063733513542284320041098478010542677646141465684055755110577717215047396622046314419555869217901002048271893983874826271994485033170121487624131581231650759461475814135799389643656801307237118260753976196083642705124544651547612481772449118126017068908236355863507948932701514814033462631151870189183714939676770917900218672955007530285904796648739534870772169544296720290471368859203126466788588945903434062784890308110558933985587182548184484948189422428527425548881359013489258465546670673632111467724116298938365925306469556282063084277588829441685302595884109208914379302019625003028810085928575690992068841762445396312792797982798838354279689117312110156546869992382413328576419822536362476686833903597415154084855496095065809803837548995616015494535695041655091742758982620397024763109940149680677550482507690054647581487570494621825209557827101790173951524027744462127631802895784054502200436294089389697773506159734820538523903099303380299635403627957881691152413728619062182288020447113249577269814365606489177734123396528715152358699078985197105586268831519765453829570273385258221958143090777364563948038895615188132596761662333106241359398991015118753567091928395224114703059716567208342050658933663780633712310377208164955312685473750833506933577834880820102051696139844466511408265854025489786858987844462131041843675255969456378537710822530965347990011769299755859726682452065631160408334354003262540334194697916602165719371751977990485282449844214603367128066419485872143736187086841007573510221997167613214317526502148118920703471119164759119830699413559892777075449164260299258678327420433300019013412447793867001319897700919172299966217150297997508100030526985948344957913620100616378085638411350034982403260114983216535408681279957726342805650654619553677808408448490508262916287118968492868235805015319769780560794748853419667150303966553307982277877027867300359033888681894475459384400518999783951715366526117229996575716843422698239553708790279955499418179887726044083187916879550328207178401263628723966224149881876749983151500289140734591416345790212932500441365469239873503619497474162262867033259221334318855943514544235871735875549738895300216351575901217487869244812467132517766598868061088981958274574345925419788434029855617085737331653996858692417487531152597997283290705343773839692198040803031436903435250185592380638628148738537148032325164271027476134738992110335080458368104795020191550633318870710940820011886197131789624393743296467174922322765229447988449407149611199738496142158637704172925218074235974589707764292742724186048978420588149870710311649873753850874768843886623178882103340469432034943603207478053211014013411825149003474420591243069365848061520478111765406625278777559639771458052615297389131196108663740790101804373553574428958631577800682143087942829818025304824991919752709499117972732029895907022883012546238362213722653241095633601065917075946274947598664744123902047058780606778085531788795517951013776157348106156303842060130371903232335243394386466557377609785657851895411961927852852898868480588016557362286343190176438595197261205041665517435903155895731040638986046293196886229248573835461303230341275645777257237146306089931024701721417647432041775856039663511829680592142237812048429536350120758628644936925912823734353707655639719249101808287822594591616990167411202587986984596865006174380244795894326611722579600781956727838421967901130142298124326763096235304187751937985760265932283812749898858410889013446867772696864568321939582159501894523374647797493748847627489502202523051065626309779438899581354578115170868198993423409316494727245448162503394692722937123418840669215782047139958888564652725001922272654041072492960712909019642164951462754199154347297639865518700721348964898804951207700983730250112757597866576892999692833896535373607860269887065432812879103736493586558839490302379375735537283895838814526102150161747587323727665133570113592635562996078670792511200727064633992033585555893344040091520968372046037284201636951033515182789081826278184453765520947160677542006018595443828082351956588637413781545524953259221441030322193055458451184963601579045753655183018338137050752862178549125078401542803855294679584452662535442749091944007736319363789841256589049829685083680028885055700887367804690934342248363323833372797731392517362157714167677703880951458215092107273178986842656141108935008066599317556235035418269296971520193875270534586715230710462155756963127796269482360368983763385980435173589625764455325558332423401654002686824043290522529881462062193896766837917317387591485908734806132199755572765591263833452678081859483003666323775501685724111605920105380018838098587263317751373771473128185006729210172616053941136764294647416305366350019870449301827822143152292900254120017629694428546144805009431916744950978781496791284890467188133864831215181762086808703926319537940582228626362903358536308919771763467615326702132739464338983957636422373244546009302992005502532509490474448860346873309634492918622878919856224349148650819807753594691946134821143910515236756989531430644165538718414487284253253410401004752186762954576806417797253898148219613534046186841441869960584265410757237763364968802108917387323158552121802277164858580922795595774295320479500795629289079709927187046738238488987734747185176931421176893234156349480259877965009348035621841386542389314808895513362513512290479223691447723388541089472041808081195440484931392520343519926912736327282231720740595659335557472690396499719102746124800317143510960067467143048491165767591490340078135464649209616940356523454242587283379724043603552736504593257063217439565474123721379900093144685365710045107902201562036717324693739512436851106668776129470778537397797860696795325222790794236605789630796031784444397896751129860642477902726770781043062966056055980932302725900083624179111503407900545946165612940504637489196989774600161176941068909463409574840225060180201101735509268671392361031737049609438794932824441212917257445892637602925091288064980387935196715873666069792594687951193714602621494625768983797226031328952954921526283904406589641636028772883807895641782234153119461584671194280025107453963870828845578778526864042734017474895264815523666279821253709123471488510212341926351335808103046018246902510444328096005957577420449154464492041079001603986481843740866377874894794834460703288450123561870374424683791529310159789013170019107390788448199649959461693599694538228126517237114490883666342905612728758040398697558951027677072304825316790024795346807918517627821802926802574842139842604239279759667608103549426508599036160281277252703300391491996685067230552868565952395359475436589177450377143649371249358647498080762878863089657195368629804545441033533990824785952571344763611496060460368731073718721777691682330193208343504619636125897191681875410451549663234449685194525314531562288569356919363155668066942257408329165240588897226391292169648323345534806036793704806330623522847395872692300278826282019184429397694456200144306284937159167383062653531482083781290430679373655157593382313477658398856030531808165124614741402914543124383579438495056490284966793886702310269025979095861357926222121224048457897663301644195016116657712023933642535756144297293503149749897254764720110927320614811288720892179584282297795695320310271050463386057772511417370355718767965373395362310063770130645201276314770733337569115989323812075565300738209539534330870365269394169577416764267163455537365422437177363287584081960304236758162182222959072697673717109816347371816735115240253626649570299999749904581941920532689826512760789611821705626508029314099395966686001864426180178486379427879860064335029279950025844454275045706497169458219636822460040129367017647052319906720495527768269531047415136292522874351614648576861962705975656391201485924332159022348660228477442272355629079938313554427562842038042440305957386851904977825205597394906027428372429524932946291534044924704652954822664465546159676086797689808477950385521303874515976174751245388832860210930352439919546533311705966571947737267725168304147471584767036411519953574661019826041654686251414578563528177551220849095839279537876636397225981439338996087665036231434915987948700710352354299485258654517385885768699275973287664085460014588060051911715438906519269009260818450572974813566688963849173334797068233548639949442997583318513918790988174564457299960909709187141118407808926950990344220738142885421826406718811528855591140653271954132279449095784954444620928364252889732433303132114735047877404042651812368428092764516282846334130581178284467475000824957822483034999046182931227988334367967017126524838481433612377229185248290103924623687345869410486825321640790920368910311181165717771311543910617196773299705996288271102894914293912670521770303901605243417701670665485701319528765449514728737023504329973663355160948333476024093258206311077448151189155100796578590977891346913953039510778960668588501535906086148312908557873358886650228435515874137315931617304252476914739544924455812865013372243496490771263620039582236811683895541282280202662495116390678645380914171776236275804149504397706447705730360761241494344053631621645162457368997633804779021189640655437818724788096635711838865604365302475168913693202398263073319473949986868178645324628074506192753145777557705541143633347157245313133060347957829670968838773340811633797128685332659728315312905453744365821768668420460925901976755899976849934140446230109220122145825909011885287295997247564196147718421631725142207234321225724994133293204660025591824483631951728836901342380933728371609741025398992393616394703809974835908322292259853141044095972060244510009553668487959290222436809125280210300439661198829861817596282876306968306210543219779696820244238471735589425817290753012223314694159507235853903099109582395787985386944755494649922870036523428627443357834810598017854880056031038137050840464511953208152340255754056946321265360109748937524929774872703206674258816788897825057607845968706967705832222285294809624978236172826048492026299235053805890976492843976238918417371805603056049176736217684239710485963159821810728371590606961364315471003016809740372889797719201418796276094730257215283436690992681415943563026029363036406639547223388674552278373227810446888926449849746519071510902210473655969397253242987124916509542375764483456953090958348463899540221665054757648370837599418697642017122375673503873778346396651281187533231976968668690036590743611329573845866726475563729993696123697801403007864897418231616100233275241414653654470430016649623956235167637166426531012980902546080201222044209370726764582332089135866917248429581952443534191993307285699801315552317621150511242399663588447916731779876021533538806986873516938602784699508594592585227771420258769882205368020901989470414762644318131502153920135400650080880992046335263728539924928354528342988043952547648862246305185507947858665973859540514093001699790403536033254538536934632504061660679549038619619078888626780451168733298339994097927626414187758790498041989627909672148687722324554575698407895320933711127967478657403235415351947657493448339444927592444167935091390867957182188285851086221231156997147427232249032903154579102861997593687044464456106558203629099624614275789766397718930874427611741024758436020023221924040667077932781263786834327914326569684879759005878002444704297866543854012642536683099373566594820730945656777890879453256472930401168034357530725995436527948805577861776125557816772529187795095958089545300042244096491198537372202055897297305447397852434186273888203595610855281166056799814950124506796474861652752163611250982664982944792370947295907945123339789613070337315531987297476120675951168287260367047726568443131592622932988374405751482030790773049195155710786981647306496397917521798760229565329707647815667519426617494951478246022642746846907092086026400536871481856582880930016378059598900265423579898827473873015602696444718174429281277104908049190011724901676291417304634095997405344779674563567854825676019661239445632554027926468475700514053458522305533052695974321030156150420146901163285281504050427107030137488808179026322122194476228729220220367030007952410317167196680455760143265477810158233429384532067236745912094098948308602580529828955417615653724877234696312564304925416069029673040130049738706403069768534156882761452912158725513665377497737281130710987183716200654775102236275997764840443184483382387234693956523883212786992489090635748916660286601588170634879507646573304261197207897503358665691798517367169403791912717992426340201869095725844220200084993203155935362768059045036570529949726592220623367315244906783498054699358932330490991289707663868910170545616308428437432503882329351618324480424565385242717709556567560467421089790806426192662353037663943907836987096312774946276681884101341784239172812819872874913395377483053418580900775469953327894257153052379734776588635064836367841098101826726834986500414180080790584216313547568495969001546881520896877810849565925229327844609964647242517430317223175941196255662738402965548255800217807359952069681670815834303915194419539934468409178422261420307661101486486068123939350437160650275542134314543322213424921919481518097258003430038604996296171094754889428247739891024743068857761682993221489764723510253983995500582605844059980680237291511976195543045862299991125359782424161623691680264802690692265737770117323424505614960954106515727154014948212485930338434002638124551814383345997348712456550601816978610287097670236522198677498674240867422520362447548936960333448940674450334174710475222312680527434217998668312846376177501611434493268586648842314135812079141685241029684288852711239718731606013937577803742283436006079214684917445069585591949253139029481973119415829465299169774889505315119410822421255075429588921423638391870346926449819478630401341360631516219171534756295321090270789349556669123225278638962514607841581738884549154788402452761240023497316546745752802122355192387775119829674939983490360275920806838741318489756130820515310504855324559985924980544365451619370898137502128174915705207326908550796084531790524649097602533202506377451166941453840480889446870675772178949446883204235201478549381875149702341534832364625005062842038771488607854711144940963076747780238334098541315776172135807296629156950756483758063959646173403364688314649347163779917661783211121147266154928957765556864440294380575394916076789477767404490977385135950326995814875895802320387777245497481715367317401299305182448058432480224369154015878934572802461702077786276094545291172461614119776805890369733164139925794483507533797567574467529304583277129282265494219791286579190322814670158350431270928797877964385611211973806465994523760720565741810503503479900231344310263227511294716648576197051529637962669683914395669180669577784110267563639913288862953521022920884924887914092155714886559830920946765785730093155772776385082269303072586957171354476209074109720564403174668991996984088910134646554655994800991258325742244394982890195722630065783332420319949710063656180909453831662072058432867820550981336662066575154721020518392353185389476963086612405925549838154839930804700527589408106105879143322927072338980424456202393318088826699370318347778805397105692079017100274884846740932768913780468872782646739255096657307373257416048877288165503499670274322832003965941584495391866028836208047897207697245323773759202368681866259319829920304070761868174162973640956718259158189176050113875510995489424539316445049588946341025469961467981073968973797013412462520843561265298902785753421909653849399670171801687445993676152613724310559316276620184206894359111194865955654320502364382475750593725548579218135664671167175744380990416245972653964026933603838490209785353540463347806263676271277351190434466923472869887244960147350212037721190748471684516483641033137694916154315505733855112150519195933552891426172200688318931295736773710232046844461736875233582884926128032564663150465476825552835292502843247701107093827585987694536223743790167728182641115569712792698358349349139027800909264996815630981068091444690789288572540588964248559396044755878200062346559934571854182863032940486556848252765892015496173646487069699092504454185340119746151087248470797665236374973810278263908333139997211893217655976240820316377623734117254532132241814543094048857199918277173179477763108938168428892341269606813709068284087393865415920989061100041836603755036937013265507911939704266848671759725222264470216663233099386050008587977070751567393719657610155445407552168427315210071873633533121134826989341950032361187507531057849610634013625127153934987602018220251252707803738050574254957271703688912575134739030969267044199082984333667822587685132917403466358115986610074577470815221510240423816160002438483807730754267840593432258158071234793133047182335557605715947144057666078496057776828359593928896599893879722109104340533711539589330971878552033039749403783326420992876684317289880597233484883509486376084394063447324253043631270680479419125446992098436347946271663999761197419797845466880756981321383191696169769780597069537217348279591274940526876872283576011362707359272670984709914385990468657631140133209944720068678523204852404803044336241961451751119859932690384554873554087302728665015112009219444409313805178468524521826669066119837489715991498860630982335268731571661391712356795340964120499694849291580674354722445850920800594510981231243744251126976985147623784846000187780257083066181991924344775928258414513954857783606256168774636395346870908466430954434476819497072097435210361834858898179349639347220644644232353577959115886195121414349890551629353595280683593862280611396692792659246312295932633770891696726024111275550792370432394358193250223127300260490062353774772332555904776213052765097523103211788480088157941222936935187079486634025996075365705159880623015796884875878537994893539695702298798726336027736797942146400210868244337701929236623828844999505127808703892655917947323974239909725222363981632976245415800770244924834109343185931912846303626660809734194526496989691576036324876388339810466066986720295103679158952716567142621370841553519749143397762409759464204077152325638582551083060097140971880612335745486329434953776852285293991312591645787867648921232909634515747132731454537774472154569075084937204843555471269917246053381094473047852114989023581999659693168856287796688507643309260416309349147461565426918734387011832920979808286542848826810760150803073597230077804140465083588770993222022358769380622934459072220435959000710631591652657229126001237498703180933860912553481589339885128483099694529816851675752029880841656078967543477695142161377222819336721367857886182450268439282290160835791818721219352633079007291293014335229526474160705811085140567371831044730921562485912681602062967794590290013570387776341725376533601966706061639125146733275227458122277920388718170930998737217484024807535058623507803037964176569117548277046144011121083581767535673111942055295923561917354874893186621250201105251868479057054264779375065219352420166953604923298407470232685902617151823029016923858103181233050803592226317804857314402482407551220189026253297097936933984170905978394116057280121375076020634516568853776370219048953416025889950092980206791867771371906821858349833593781811267047244869627742134784214965592134931618655652045387375027729532256734620756173743742100665741898696162026270759399984572826041950157678429259747143126230780310161754740088471847481267701322199348719925939011751233092234300896618884598778991224590468508612615038368807222380470177080130934612242038976126872460878424230499633659005006535105378546218048359859723023837145406442437790664893234871786790345182240958143293040731760832099274548035003551672800051166861344864116282295872166176221933774528032823534936482298866486426767048251002447726590855008318273143230336916062466287583186826897659409394903182049148469727960563505094340735120563830136710150215978665828634698709842907704431372546567700642034618275502069747373462490081543280429776583297163539750469944003062274200769295808789583415176828452601955694543403466865258043495781084645242907784036300135011182943768273802157613430704077348170387025241889377190328416277213324238420323250082317854348877754740091114294367361981423414913725006521969927788096018660905405917879515681043377764852575608593951042783129945911366674888307510211680446295784177708421240951961246969018195592144239676506607346914066769499219230447462605874837878388017214956174446244004160192403703159399459525768697012688195922513606613688128464077663195758900263843753637809316279775909579643200898342384093424668810628020613306539894346694366697751038057010931451160869881059666842228451840500492408106537826547162860000515074052829522910923703836676949102696099988447677204170175680803591388124899647901607303039849007877103597270577637727334423982113218596094735342317701382912091858969216138619198285549357012746927644635768440815162839377321665687380965110935047851426061458722283291229121673377038294125546019198472606784549906404656246783729007187073467691801964261902151174430214193273755789690710065088954370751954000977185131775411354518149208210648876416984143729585960820918451914542786367307619530149454158769724887280364920010541699358116843709202826939465848534027104847243528714244084076136226666646227023857407260414665141866244845863319076502782734670432272504980932422325225084021995307689510713664274681166749930775084717027990577267064808149507832831965705431494051634413171930474697986992474178966291665186614792666045548865521877691402594380441335956892697214221570551869405238952349965790107514739289641372056210570352177952621901013743719519805101624097971028773404915030956341303639279773707180776728881485576896491376502585503856016492327904965221457540048749898941270822080217121281937416969020087794813092863284498078353313615228195990920184085276211746692911775386726874651829812343097476588075678571181544628878804176714632103632164373306949814359871937696348612092234550112535400074970376475678170710555118528756283771344918038677778790598044839691564953268345240584990594368837693872132751013906973141966091161771145862493851715829398947537023411809085219873789933081226425446863905418716932394537333514528554073012126218036233343319649350441892918250388833848161930000916561539641975268523918610459346749671036110560234729661495935163115238984396493997482440021435611740878992677828948771977674788415219521009646503449711832839755299875006371282105195100160494816342096379275435654517474094717378833566036684058701452734469661277864772327998446631192886237226420665465063249249341162335956602360639648280831739579691391276403537472001470803117626343570824195895976270240538965385357367189720354378395360981608182466569499287838998653324837208269702916864312145315538471370739675648943628752799523788147094128411376626675926415726134871020867678534976102771801172194513561999996415025216911690168299951670303254136646436228254987438964780041895705952977011615484949970719507264390795011294821605023100209093424557720587812036503716434201936858584517137867798883101501380807628162059700283397716542249385151044061668857421895458847809636665239812880097191284156891417442685015677830827815656482468839071668523158734760072974422982575495117172854781449415186978078406697884397184662069184285388767998103654854907231180256082309562317562947269468898350232268554823883379775557489322546717574338707696610510963117560765694247743953188331022388066114749603287883294865099852990814907961719339461638261944036343886823884435976257793655867902540205569353037115899241328280888900597616480508734415654498386374871424805019779091770431601898024187125468788757073415406906263174463099319576141393832703665842075890936120261559266490736231161952090253038399089483791558253334791890091690269900700630016692617325608135534440043554274146205807323310366063773131983697907068553698836238875266754260727259579539311273533654668947676344148394246226275912037807492340896737431072160759437440473129064524384238753788776052984115891663749871556649471600415928523868964525038176678563552979637288213025970880720608774401146864678688186726752116492494706917348955713971634593352219137700912805583818957848666340870398401036776110742733036348894874388772252811459708201107534845309709585707545234379759225527159663839107655085475512216691814124353981139969154327041360363314597122255410377978486431217297503649503490904532536255791096179124272924618207967661640919003911553616536829543819234567211928209116433850785576600773459442427717794929205887721465276992021235603177057502731922795210524948743677042619885938294068396301973104427856404573915615970639380484201620813316094015496356987078817144908038416082683070235933626164416522824975771832006160989238986312295209863197309250553264013989553221401734851055602483748097688150611824759709429707947213799028683797500379173864034502738396875606415213689814737305263764376549592440437706438732905935311313666253048123269614453847510844785952175207416044744198484012330820240583351518175523574219645176657495869906709460642658251937984579698707114186085769705798641449207224156008430749373524549431537166007592991763581336817424050626492244308774640175039792287336045080286294932419402452395867308611395292173867298886575721269027628112250264035172810405075881829244251542291405623036858420490712387791542483481976992288522146975868562185128290133838242268213726383917967007349631003232407598012062535843593490883105716250497185256969960818442883672343058863679208381438521037086823162549408718241785279174498062371287417563962300276086153314344742421094423283319130740310833618322623457878679446516598868419136639366812362015394942061465884619278436986935774948409336659816035551845216297121078151332612067785620221674411309601849356161034531336409643340317550890004069138283413867675521595306278172526694758172706419158302878155794793917968641380735193874195702476598456707393337259390783858875638836499032702724150590137196222525795316838420717452501130726627957186780614560291025089997040649815184619469041135545728127074733391980380217458059475578146145016268758669278285676611167181647797945037962435636048841980914909539471444248355244298694927273655131452794709709479068338330465412152781199847539736329659051859857625126342593344123625996643733790214981112252975308908842145030862277746420641115620067992174005433226314778208521386686193954329564463284010898949465697808770659036160744998384877655543003584252650769139278588572653291357287975022826421184139244597883497881251987234786797896907568114640645761396560441436640000887516841005040837251250330985041362020481859072224476933334723915592168234500662872458245393120090086554507007256743411228702381528649039780203066147042247666086438299504496762048300122096877935403268389442579299525351989478093349564273465557238264539092449421878388242723140494339160606876742174202084882663659796472627922359363113907880672058799896029072688249294139897408428446430014625983063706014146719488742632710280395647511719364545566549654986551497300075174848819669375137166053042291361790233426130563167292359660235322974166581611774453268498518511529153503967892648858264393028137251349705767869321139126745400522095386408215489984842313948600724469468832256057137959050648309551008079092180462071115914022193251505624400366758747321426087464388088453538110606948216915233606604926920368386191142517663139849664047648034701826078548554547150668980224066393295055957447579713171915284886011783375747923119282685298217377484052662676293403792655159650480573429219150355433757963929220262466624193961185103591959304586530139320213597022854550897324169094173105088915476544318675996601488587511508468110033969925089086163054282279657312838669227053307374937348921156686883133206258433966393963316334228314079721588834711753432977203140662371699952453775518141436082039472264085297468812214691726803536337613984043216866084201437934390953721242575970721587289767120850781768814909117056961668819110629789546551367479764785629648306714464252028638675953992542720241999189935926422188711717066748270989181667460383121073079446367974364483519603342379911866306411197617822808105929558325344628143768456211417830693052628064596179722543415702038475053484224878364808217877803439717744328817571787063282365178435191646162726301217008138226953835468942969149754854878008828757958816252506911666523357100261332456780167960796518203783691189827848894009740160067207732594215665617187958020087082769161833106487822782069195907258925391233279614519629728104639545241472154831187405011726616433706544642052048815763938014218619973111826344097297054398749399643252979023156824508314285385504795129411594313404721724453268320424896803634548988615058931046843028909194390030156047624039250626026430541785557403496586050887743632132962812962012731247632716589179207955866543345413171016036162700378103814526627829632700718067551687128844235618340764782984475511372642017322345472317749774191718799549814268815121874110598697218278452868499708479993373077049230035865636135716859056495584635048081305222944639538841158331014386121625308579593876089679397170230713451852202713143362082995208306391313947197844003414359772145869306891005509256271611371145947715529462321589905362869507898467055254683004238257127642332763130078882368351697534434370295380388532456009454252999603986515437897187540252950793653776539643053926896278449668162320948130157263375890998244969579720447559757729402472376964708295233420697371533736405665254831523710010541555068716493725955055691531618092636376146854162716237786088464627463882456915691429016202954668180997783319607074784785607172378935441735456929264435789423090500140512846820863413473442729242559926310699759213610216784597446441471813291388366934246253727691455601038315012972692516034258832765358435164705275661237897546453273150015439223327712516219077715962858767006549140124036756906837587232681825101900767633554596921741136442412230035047039426304567673011967242454837082062864160113997680936369558592329390110033846690077202347458100450145759787875512714865996199528268681452957985843758319137102338261166931011088824303850169386326541374527865198509758778410028216676768359946128129033959283300247667942852641272455208026062734205238654670737994232168010088496795872030322138130829543172112689229268603605990957263419452164885712291992427650729530564970126578756511454570638846079044986079785803985223730289171917799300501647078965183682154832646699757995746669683767149055864803046468289298935461684546923672388355233021283387871611419705643025604451397037140600021730112755289496601417375840293491934145658807799096800124942945739881633234863530866976765421135775141032875663335473899766148565973880615748497497863736021155007371764057945077863672958807516395911667133133467121311607724738704208217592007874535797288976598526844489422264508295775615438073337795844979994834278096827109487663279476351201119679802437693077794136077580902943881106992597962275287282202468041447573446147783068586500236888654507147757544586781225279527274695079029094222209751824188766303003767648791575374339843558585029359950502758335127168511823962533235441635609243116105096564595537918466191480867829655523631455511108066350566316410334204435481141414106741208628394383500225797892948552983770194445918516334628304519514818334949375411870897161766644552052963032323213451069140581126142865786392840459010539765436798466718101124680322423142716653703446525615979689703621487059651340108209279908689682932035991698253316996798206454846446372049955098937012866781246841139459908055914529055356164258172724516536586514094461525250787733860040142940208003100947000055279591839574448910053268942507693779195678289474400797608879074000447708252749783290228336446523751617672131328015855236632809186092356204728832574778589478742087577782293247167899330427385658106691148101582699559681021701685647839271482930366519563549564742116425281601594535224223566395825396749322402063136541043953472792501641333823726524412778392509653927213968615133928969034491744956207901777651406093672425224903335340670039666505882283781160503807278320797337679630147926449786036437500555889226997250915971882952921244924580765895685428988166168331271656704688274283185457260511396115271038216760088585149049075920215879747408769887858094900796720349149988229674783819043842411159877275692733473661011099724865132222766915523961197290470426437774060845909536556449403463721471364584640644046211569791330526741771623317158718720723722104188013029268102176756788089792913328174923508664941672616336960953691897058812017405630070783295289679460211551916615371166064420650447675232400077279687804515216472251987405555045851719823623006318665068717740983273216059564011021635625118802894679426734374678526137378355471040212966245352868891970963327144298564440907958577713938580979712813678404675577260852768888699297049523763907944053482912346462475058605443246234486937114456341801410738995909510136717094794729416168042753457262695554099410478590612759536486676503631036841853251912316238431830603728607532419035613523521782974158879563678478630559001833073270374360788446764160747819101452313519238670433283145179679426851812931947471274073406222190355512866085036706784155803801398699416646271129448071122946464345337865140305490438140068477110006700641946637505172827252124240138776755149904870922108638867108997086383655218255255819109770534445892172235447107481570752380538015600138436305209453383263845786127371377447914597488030844283013466980458104349940306852230826919110049633431163291470375248371518231387299434263882168308694912766567104005531112333495877331106288810951096556806012261802516620009382815769138582619215240117383502885447523458234880472869404704329376612471929457204015724919765021177297899397768134565016587918828008055187672565491583698178594666681653671638378555093728450020714977879637570844758783074001053173922325168148798765926544373120791788636663703633939114962558774108115706915324483282243944098843051754221020041882531349620362014492224021935149679632418418985688765058223378554194118881289403395595360713878358376759640547317137453297587346820322676890856185671560695107918154184128421323745963535307736085397637144850100928429337445405589358598207351936514975942273211855643771760775852567831632942581672124330676897768489894660625422604448408290142297988539617488238340459692447108212310390439685936313754808075135434459630746421057089824930506021862689465296992478400103311316040953630101973609458206235718359117662784865262822760859166125659422257775825584764217935911662721509285046391202965730089699542674972064382552951495377948978047505963951299522349521616253058498678832822484141827673476987518232788705608716236270919160453007500458535278076053073504747728661004504925583817648205037784900516079857465948376308556898971961806766516260933602171768354007320531189993430879670763429796108504749453534334251791130684445353321294618220116685764993186323628284555330003015105999351467886225410197615574542510092225602933208080953300246089977181615214899403415211213859385752721408542381630073644795821933901420174582115792416730943495310475272243911584935380132033285235825166670056717659623758326505580313356190643852728065649875894984149023007778387176892411332938654781120105338319141904076848570671071302460430238536390137022799825114843002420838042856413525761052928304488490976111905893189505989266014909960417581799886454223521798029808887033476749298246405838508033318258095228261740136521688567732599634471950111906745473024141260935179823562435965414428470474059083540195372094486490483946452350122574642791953217817937895196476886729105650403421700098624454725495723762116511284609446386174257014078122792329239878406831233254853856566530945296994442511372797652654402633427693866249735616796726971648187187106542504889237370962497182101811610242603620790965904414399812285665659161587389633557399837268759042585359946695927831352698729828791127998281845345105829642875513566528702810936763325405954261319536512321704623277046914530787913933792246016543759815132686847860854034253913411125744868365423847740613497107298212418617495331911799422207546969153855894570420245424195518060832390780536713449850715399579227485533472829975089207655097325287421302731851413119162005848787429444628012666828268814807480660685809478717057888712665521251671764630782169541750726819738364745681575596899193221170410394488876459320525445285025725337747921288467550818881368711076246941202016710006588678980786419893328736592307653010462481932065180139914443356603232533020847853409949091982508894200131879754587234830464192186971593518831736490759180701411317866323615080996289920012930010690899668847891105329289162260083018157174782311085521546133135213156521418368879081919878136770907333460232382697332121562845275042872825318234774344228686701944376720774109986224086107268891871834370619635786240545864219062373626094693134843828862982561542334804288303813666700947634488780696878219019441088350630526905658786069381228970395407590678721323896073093188474736802647496445982252633745960681967288868580530761939429515944021099051409451479830330881554908130196826842065590601108436915555549242447127265895873361758283937738578156537203452267419842052970506135592641655349236799354563611006341277790644559151434556483752820510360172426165028414261236232073460918493458817434868903090758105325403698701088730838904014366573117836485410352024769377426375492746833907807608976437075614147149448227048291784713296069164607270610901868908641047136633352416674408066420011911099068184404349704215213254305423778302146973029160059083465768060553033602061986822251007715234018311594472915005278034998092207190613361459957414276350891349096668300255964542941659725287691510653493538178291798375986378683592387850150904646364422800045951503999771821804141311612429544000564139500967428899949210344101387169548545362407421809073327304945153272459116457303212805050431100461906828939947754567053128776157796560160548389908388631973889554861022547518220229602646572733011045748830859571364527985293849831716029400354837487060297489422826055783126940792547294450673423711248367386520672867526602266881902285974027520405888413983466325802585009587281004546409526223704280157939552777864612282065452615958491841303270040328923384774864786973806802263602005885424448600295226221453320421790051443210568368402433962971087775041457402486418392769469981422791359909962448280908751235928924207211924744472288325906555358523194943484095166220107198224296745771718767142611352067148920082725678380014112334456043661678283316552350742598711212907225673882176562698651936334565968621207490116744120663142237480374184945974624429590848776560833432232653151631902258358630170030493497688154890833489983710949899427501473890635943295145084011271838822185981015045355122300469762028942570845035125988992010246257070341207766514216428991843821681345499020213564244625423124226709910147977638636748374001000887422027110080358800461941215934065319087402433216591670553875536535565643001102540196752646727887807068209131583784630417441388292949439748151733741395984680529508993770754927300949236470379526383917409448320648872681803517286776333857803552407619466880731976003340049552657223056702945304029969187067079847781586359122269575078646554870990603907368232085146233886634448614228788935394901289620063862231091847923154594877216786710524396269780721233761184353190894297713065432561459658940938106556026408291507440575643617835285105536680544423600371403320506558600541917436526952684817802290220657091929622275830138337765538322993284991385412366908566312672115088493254004506276625041495094387242307514902567830229460467198812310416320287154745752299797169545754694677330526275947529287857742913965625704367464642087299075773381184491073405422015086741618669224785692267426848384763131895631527625802010013010163808549045455010905630510711341483528912169433066383810543859884977991311244330585681579185208993419590916333095411963277568526441939062350770573046127834884987162720923869475813925078570832896923658124850437755705075797881912132312636709525170163814224276291503542971782092283663719124436701457249044873144306978800994180436272081928383330069605208950484184528370187923446627699834656355434819885262882250491114896535772080891279407755228118423700045181101196367995158469502680945973400933395862651698462006623495825103288451796278198272252598286533554683234930869896392652274004751625154806270019791405289300940960637086555643375791582490554767806387748253142297179478084413015032653443911786238849412088941029274109090821400286645869099379512429914068980585859218153322869524400982425781364871144288492763276983344340343254611132685085331422370384034677337965283825033556376957245752216200164528890951436291874493330856083743311618580470109907720389674507610972538152461246827563311685566133848940130023029848761417562674675694420262135134398034663750034365624445149838823049173036141095110703849427564783851950378370985141636050800618482974791336172463067880889356518517919089241013594080489052570894113132416048383437172385432164773550556315313919544381775077643377518105821921829572728665888426634040721595241469014954366737515523243034398703333559625834396162371835126625996832515078800029426052475726160605369907832518410274430636048667456319490962284937444682850387738217419640180224143407041265074148257774846364036646695802853665831387998116695518968198889398661854473379442172507248670332482051570642513164879034739541609035360265208340236592576819762179666529649744514301108693194212890504662551207706187814664425377757517341987643472680111068172365192160767575981047523460176847815999864215272025827027272048441492959691061734092095470182472013039410815340625894294191556380898727112231476317850352455913307425721481534229642451291551440742680055253946612856927510447012449200426507477387730358337806629490916436039381275127791423497945675769165761401130241119034956103023733020778777124124783170435357027306318586392909477664212187686232379859381422352926546708440104706429612987900282043280043709402259833016329527788256284559243341314790724755132816190523803009990738064930194177060976015241473069661595548229926336901239855020070246376246767406987245132410429364145362120568333355992706842240884875862010312186618701925439034366850856131368614469683303840654876537589965318920370083156905781394407360646396509692781651057574135214350852426067761705038352200502688809612401034023101992186758591634735996182365692564180819408850503222120564891508120342893455183248190079163082252221042331353534009412323813627616395665730992334384628935310748909260914092905738689035451143523091133879514182859766005012376725837756401775675585090771893542962398619971798473782664393551243264449098572983243545184954905455806206272606583891743750910260705636342255524627104264367427128309772694475176834140267254763175079118508014363956392570899890312974514538425717675174290853355012669070265637257077826488922713272284094937482281608742428860135631236372832327024638252653475308717194762876610528325367517515457377839176036003381259558584014938538988502033244969414965623604046605588216524258094239309120483264267431325470545787262253021493936320145048290315649792854993803751658109895142307273034153869495943067953505811648136683716667076397399627816345940739112845962559437516299930006985774162545652161293750460853745508011396399682917069131397752608382459565451516372004956862950048550894216142849576815852343157700459207276647510190534403536479062133038991625128239822161888861621186090887525540652021530678215691484408090721766232370469349059195951246046577030060091326552648272981157517893513605640351362096397766943583303414519453267410517431462333063599847013156913360889587543447543544135459069668655554657068057591113040394316059341792634932415404104731549921621728994546288757554716957646931632291573926170856129042850142769838488476961630105826909838218541397864244578929661297168217467142985359745507980458309846613054368280381712881078151388527127149448776679210061266656321677844202492661595225493564280716349392733547997371125633008425248528762595508994040204097034233298479150941203953976847608618413852070632340683093557734494441234371695652238327273163569468333773905361357005570008391627827661254349865997210782016973314691305957755306883524179798589356685631436850014232817209502716310998782928691995550057464220671573503573833575863811865097849728825924664109269344936355951802477865839546425091474973553486465136114463195604113272432371258272196206730140970712857861854249243336636413879576613040706016305063574967437061342722276808714420082422475490005980715217358633266176227023647666185003579284847991855608800488439516681118908902187645764249818151451482194360295243330518530601363559392466982142132775977905685813435411258917685444580791684280636046014206274027415789059466501755400229841421695403765450128989084602098493053619295966488820147971937727383334877944520992588128551876770878817729133234261366301665164710190226688887699656735790794565183804735612464503055457482750310649304073873952915754819365588371455825409369783632274614896802838102216709631352498194674303468909753445810417307404061705934593825002752060324687979418736069182637724791889565856333601045293466974387353433073488583402139785304641206102007621793881344297534445642380059326241100824657246315113681833132628776604541131170104606122832512408538767641570683176713764634263562650370498770019377509479725033471856675123080960671800634257589350843025077349007220350864310805458358451224308636437268618631462338460126198801949656154238463607921383337673134424902996739548273020552123726074130364019522800187857243643732472815393750117700738462873985716045592736711677029972904966696008294920756238622830515993885408351334152923505105802058308920226272275070015699426764146054191746392526558787869845611863175552783365291666654751413948637628614296400012138117621311405516848605284965488775328881313804568977459222340510026381955070212595621261115056169417983328900287948205253339951457229798955332590726917602924865324552905068451824668124918603055398802895464978133769169412892232074466531997188897246047596258953700184189395732840368975033277106457590204438580463788590932191620679206828499882673031319247378206474380245144541920759283394356958371076903251140453446512472818818833872261827882248165815379678316990731660781358067673344886108409317813794610095848205126018392444550533462411364692587437504363923265458762129905459888566196987904329307313866583231878206526844521554638258519962101592282369835222525995294453414298321511894870905988095340727208951804124160181016311382153180774331440444213536436012481901320611843897640460331637970920269564973645797598385856700822767546811478997581739934051506708659322856337474338835548101578770237388755303366227642939645860978768413541345461680823935356712725105741907210206397689023628691267804546432015723126335403257058467617524495734583367634959182376592316145344232788997109256556234816602266289354751756730117504291431549764593003647437174189018053098315026816575371026383949650839764225210082681054511693467637735235544214018804380074209750856157140577469614857895892951152441651032613032791989839899255968334549175877756689964840346810442862538546197120235918017323361721260827451535710614310566580000811589896429824690751206811925223846825746050841345690212988477848592595838967761036632535434636339089882182608378773518715971410882709601790279006228119787518799444066857576426738241612101055145447572567033015666023245434630502349534121308181205751090826870192576983699931487739176966950995755389687297669426265760275214748406170849778545223675006823006968789302753912715972163268740695989938354640336819590368827573482377456874638885849470008606640549826739328831434009227370898122843143908799023128150344286336693699897250951866396568724446919660630453015988067283231767433485350512882574192493637261873866004414245116980404503266365687650489882603186100139081266095320424230948999623856874424453712713931599550631335711489870574508530741105895649912404849100110173392638405777721696212525528077217191941066711836192265582370447036435470602152128031620828554342396837413283765728860972125839786897785069930366613500072523451195549392090139438553136129426459396238857041066496979583578221827363551852703513498490713639941660433111830368046924757636427033090209299731782494055434089880057485193277861864175804786857987761508101883117558772383987925366253644632197542693203293257228253713664636354102298903308061480483924513670546491235202710136684418423549378646465609951002490652265721691004701996554828423314002064498541554682422455337736793898932271264289846888547273974187036079042185301900977101324783176014598608661886723410834920487515809510804947595622099435528360938275128410804542416696301544122635274323528705478979411115688651679411121960271614260791701733747228850758090003896661533905976478713046444875938801490793403126771121175911153027201326547618536294899495921531561725454575112888620221312603866015485837853627866246895167793151744864893019333967503777091385526655670085788238231273180160007985148648470241861405190290663488194042965319492640913015545170523895270275894588238747848131505301287093866771359872687847470472067920900458406712402421355243478824025404632183285714940640014812690312814627252307078160169944943356904453114797689814800823713635360340430342581721856991055033388045718753571784828853637087821056628919155305071387778990315192251129040194185101433380252764871124662321076314476002056856047076045664355045130663005707309604264825833368382298252207966624832778343417199033616991645062736543094064018982312859595809409983267438816197316532950383385122156003102102058560918846748712741510677021218041573196032785119979114721556077743930143548917182233104509472822781138569821583763119923208443849015283759794076164414505210838755651180612984889363138934851673962290977013726289127445285164897960609373954001912738158913434237852085886700718346436591141841009677974214280231602994153863707600861299099607268372432653894724980835644903758586770278777321566701179296085941967937600824582238117194927727084002809721816776186912760276492376896121663350428686442631776062677246907632975304686886956413869959322154298036733539948731985455650616544831302722040906411875465403010906161283748754983962971630017897665394266524788843402940395997184897980329125812865795911417883064010924679654494295298383122436476313216559675552242461204027861278967527459556445593765268769736535971330299079898536712552527271895203536263885901424593117085604555090052912307992258817639447361986457126711227875219909591839021324665403275885053175564556777667927016772557567876162591318324074121309466375076689098393897965340914250611049941477815263023528862655258443754736933864810788232515840651878888480050685143719357137725493863526978488884905121083435815321261946319756941712999416892039839868144726313682771314732120186961952324547279771079904810135431095102147862533757287001521282498655627268775262105222815139073559084142730230009812342125565141610692764409842116960192691123225139163355635052496649756096267326141618422059448896548969974455591190480372688566905038864025026562139129869894407048133469268861899525718613534871623349513779239373999155946966812431001180101736691309910184088206067587093757550393217828660201620626848070311426629268355431928411210114422930314429138169674928751995657062777936470916810507096931833198339099379542009214180452149813345711525670873770810638118204404427381519232905439595202806478435306362189860638375282270643628033985281257570061254291588760590398005662465370704885829800426070266846064169121572837269907415063359327721371474531550819431100206440540634029567445136868452453527883911090707215842896106815128021669726068805568453700610326349086163304503733115944866725916232742126938349875128522753178575813927857621067644824575713335941271870294512706628319517363582495115475395599514371442403425167196377413270557904366650702471772594428314553256901011665333881690250125300982950639625661478173203645636226067735460828366329976513466943955788783752737322534731596931851778385635654835150778393190844181399556189130485491550640737886968890030183353574404744693665498771480341962435854729663591026556289445092741460056640691548390917709626067005141125517327298100344615969827669357053193483880970784597539783558624665767598365023604312584916705081756335143393082263501075709715629583302636350973059539886966897101479259712727392485990900444530268165610702744397714964614690940814362330473298417313564031235006163723126127434872494917333588559330067517371760759179832014031815106503716610936278735084544152456723504742676884269847929360891344269179749864921248179099936310712638692940884959540240242237122856700969342494394403875811891593772265014562030288464471245539079976134017466315883840245862685652223187101841140177362640317674072399828351039806758797838273536735766895491501317253254287249850391088484680132563882848968975241443359497443457047235719041241594243041450562845080621092276046141972938707803879738140482320811386767030729066974231254315364749841554753357129333290525665469191125234015597531937348108007404936876754177649681282313357399650247046566247075315528850514170855162304548210166367419027192694390731572891720757378857464543761658501368334929262008142149519771020177349807564474412322765462798560530063290231732793228229021847624005684401136921690131131377116105800758523416924933308898407980435684404887644304914678637531309375797413286751540351735969567152968138155087832021435559539335740654672968703300911884120943309803920021272843704446764894405419076976718805487534771110992234874339765833951840390614343730966937920420414185105603848870355795047089249739077000169343957750403649759068937252130710369492918578965806861378505052005468928395405975978366489036317804343647385147474812026098532529599120478060502748848381716084677554392707125559619996515827731332735338603006676191122195740660712969757567901873928280839110634782591972912105395186547891321689893081569281464808085244269196973457887058425765449238297815906640919836250304705888431408610404065583498677527806210868448587931752177129985963397035186818549647295572115969875727624609142057942850387906942943932467087682983288996508536245358133614460749955285173481322254507007383619620466611953966724196638176383715791170377171305789661363220239033060529608467950684290594373173530307531699434655647931147513582297834096701268418429052950214161048318696296272470056721895950473005854481078363221735881602192042533951873434705255870277474189140948588256514171892200601227083449186637424087013780294574958883813507438959401651018820231660249035582510793292134003061177886368032852087057392632854057880819252515351498453506380788647435953979273050281164940020534873715991642173800753014135167507695545844529097180189923212318517195694847080466706046116355188457378511156144289390132811127439000142150329312500170592380553875842414723477530665288957598814819017564649280858576521548463384413900670126759435253320129452742049192288489162105964069130609799888056197558715416796836546202953816166855073217575400978367082831723683524072648165035133359440945066991861894965780095427006595006936141331413102354752934339199884660037724701674739018830244056995177416553837842935839800826303315266690764062853211964579151745221922118805850830560403716248855055285435429222546761227713582349275575793352011517909061991137909700467755364030480579986913001465078410559905182943304788691878944635781153223056721452119751738967545013621347456711399616177721432360385567936213547071851874069306062653160985363795138133169323586099915237242125881673757842344394155129615566693620128334693151479104057177939245044960870482567811470873761166335726179961196534039732433956066583758103298874202236393998690697497420571625074879626618254736478486301437725295291206429257704473066916849585196966923132659810796458249682118890093887112037063659757838641434898126656904873078081539487668204907647334055125252153803101565268436297563988917178113175928537172273456315334426132495015161122758523107833789802110095075902383114471673410748118197451832557384566408371656449980446716516576858766742165835475630031300473012442477846868294598211314282131655332387273798832979672060859092771231613166712058451329276619923930563900913486648128700209969843867041789152935385693666131823445508141474469660275036198923279353912642607698404177302669970440504541063562359648899806406122088613873788622313894081108455906497602092175438435531318209397156388993999318194212680153872085578641332930212411572970163950678621508133867825101331264623240980748354718877418646309948107713811145648644119666878932437242005440341715473021970849422669376955332346362725777275370051632165714825087217957293618889253241388552251138865562939614443214082160040603227891699906344586463792796921805996123607436094158875244472693518777176131160660059497293561034540333626823077419578313104609120899074149179626703784376021272026377044196463474010682599634530617384559114451071613809297420426054694485393261366907207689584091211167269213105057669791247768632964673918750611907291584479992916111344630435015334405388837234119684357024300492877346354021065712708387597635449808888921894134556838059890234651247028340346682221616683486652386988346095054241299876808307470706221382739047556650239880311776023648953929255042679357371410961069246966942884245983457308284171718838562507153060014631722947599675261575860465026521841810483944388655686588943670006860393879408334428911826735799748785347800906264624564006127124153038539386018943573431024189642392356479622656889818537195254137919051730319317063708183109101349119050546233721355643424157375674040300626706570175623926637781104378202517356563937173415267201348128869863173357893059362012768672982877503132386140369332189862687873685331818192420200848243916087028968109571783819692562870576710318011818923488095744163301012707574820488709699984951261027268794910809024165601310322678522262130689347454611424502284984785978072510082878279273845382572904585373768263876880104552903260380414555314164165677861435269975515101064963183158381585375217008074379459637566029509618151031197006235522396995478034887192729565313676232386886442202583229917216918992132155585285296311893120017529165163503767316431135965912624936850009669331900813591976668904098737446250678305789758860765533470098235238577088174823467774442850726231892578779883786515427435446352301890636676465200007514537163111837192145365638822474161698146701579287201941106527662997300567368256384956418221413964019197731387619450522363960092832344154337798646897348272192387242269960336322127704750886270644027441076896419991098109813488046362096002767733832792274692645612372103397027659053865637721215811737972531874141256232431489602246530800578303030310283892007573664115833228662188248720126352426506548678938179938732353509449397110611298429266026453600315171306216496191948376654247308318000943687612783590270346018295234950231484591164395109959332644553378809044354011530099735599234387854615395689252274919042877595826912045222074644174353672779649902432920271053146113006057495141485954843998956118348113415552844540556586067891340280315661910458608008532505939207188025138047255974297690206710039778758291554404036940967342113791760626109570945346451615186014226707405483776852070428067265196172291277912123579926784764230623678605247579357446235491908398127084109015873212020300195117808297634159016128270258846188143037583202708723790618137555038607455313040563692589952200339247266025110456374561532583367444038663142648198084673819892975897756490477225878379001805133714348061170773822001514828824251523578238977787192329038074269101665951421803661029766031003482033326791674041506118749329363538453410635964110269610979553639779443444505086878095584294435149890394069694184963065819026422804350327861735544955204722190487568191867968856781687310026236142026693071374284715876469791373454661842755644259229135358327133480775619833778956943003060602010919117836739308660720488499420232255161546015274096206153703645162598946854138185485849492640436616932180945172500395242314762741342994705623111627414173751794704422463907747169551634633295771799240034861622324456564740166132764444415303895312488550098394049162019279982424540494177872043145813263253646526802307092725974683678023656987539661474710366071852862358200081945728272532904759915417939485507536798802156191339772036855762805685019822098397001019566625706506557332449996301806659640984875371403998642445747214236108875311733447538237364755544695234159216545473070820418024367879520881049091044229027506947543492498171315139945854115934636669895548218964338196598839098337038770228655835843834772507557665478069439739189429315154205233541722553910654587984225057800692039454721806996884551699524055832056093123052108335711560343008233356316385565468244227476908381890391963882168528965312560897674114375905901120330765038754853255999941882113466369737284842946770113919679987995003927922768261014150523782697966588596498173977084102340167318958362455689911542612697934343575662714426150339221815020934296790273939535413751322086018837368809503826499984298681757214969696409331628925040674278424218997528518017252889510410898461307229147179403411986550609350550124586438544371368264802995884224347628846787367867943219616830449520267668912557274375345042833180230532167135833164460914214968035750004345796534221590848170091514045671748741923384948481286178074992020273663595891857378929057326411104599352828950839664393447652047553496690674097413664152516947489084765868701640658321128231265365401166324457960535277254043358929000653326117413914827236500533692693455216541103155369112909584392564597642221743057757100396180436049446092731142396321651340243940800241164599263849036734890364589261185407682580905860936655606769904641656337202394788385772252507707480030090309065152721763950410102690488396175870731045464202388216147457565590472546461164973176218410994042955633956094340348708755979519363468619024318377431005315465874528932970535863236891977589760323563224832845714684104618806107104119169285872036312049164964038026900707800247902876041799176267416342881673292683621805557059521840288219122912419460964023298659078111013711315901456629089406474140322035108476960256990299445845696178254971480380924524510857044190224329037146189465885548239425139203056816041411867588116322362891180274574081339537971465349272880916933595766205263532460634038542418945041567962703151931987452386882936491252280086932797255627829378072096657684833211951971733586417117397820814728050322656715362005388315980027236741927936970118527890764295543011067865827291602908429298677971095885291953074103473060357667053586896461021727241177086120608861014391652135414521038218147984372907261287996910116116029702143540780587076735360741716903425482410746509976641763905598244165452354226060769866893508817507862423300543681263072306204604047063531344437617480395925556686649736472353483521851248108151113051630440090317588081592141418179541420673893816835934426375618896468594263926920809247286074683388670095673773225473638710607927444834922740307883111427799022250100786442872497624446371230619719522543964991023053067097775820415484134109174062929133159252172617127081248295346237654225446794151695454640102569054221991159092081009550663933176272614831655194602345075692478640268947111129145048462595953653936742223865342936764743161511130556966720655235723800711365480410177259421537295122786702187182633028180830643803273560474843325603457628120409794529791087344002490640620948091957078879286623873679746658001741113788016962358933839537972802250368337144590074143242007744538820302950035800520728146198415469028807335436857167618559194534201352018525382617317849441945688023830316804207927663595192325343375829807688941144092568679071861627135072732287636303052662925184275753069102905083094777535894645298174998006941078996014316035756626451184101774577849252861265991901465212188162813658500886272208167045956392255597326828415465758765198012739086920469774851175373443706568557711403665974123623074442618822540286072373861543772026543856620832324972444505082901505543140715406247637027042160259404779591515121155898244834082058790175791760518568211712394876672052063089399001604469118228239696476818663463804203713607942419941705937139010512850917913770323214467404367409156056615188854315208256764296714554800162916754649150396078794092942600352390166569486091513977304635548615074619447621110488538457727210615618788949692217342508011872303544012739858637915864365828679056313249876231525571602382658068278773543598280066843038528648608348462750071561856021347237471034167357035726682534993511909167964298471956209819262295515661788570363456627983064981452340689564308658639092549338352410436717477579252555116342536175171201870766354191483143460079187688114650621871284958793849386595294957484783079827227418313236333232909004997103446465226786728196033863073858459244981924519272272062717310556806883076610853516031189330857204988183909408902939975043593500611180216013566468428913670191566284435701412306023255698059257485901940309454692053237411160220867585720928380687609765606748581318781567923358508306773888205740876484606101408863930256521170321763612221782420366816971345074828154692912296880353360893526648080965479814074509311325297720757590629598266528514523915074518467552247341906517209050614252926723559236033766296295013810243594282903455108666755388111159757056082041605270350931881110479836951837828094068205738331881347195508491918337338631283069314719931654572891215223280303940467705952680785062865517684111642853202585878681748364131309127802714083075073135165756500082407152284483038564364764851503541099465531313700090975456140664659554481387875597593776054854339364634455469505092394947779092826335359605769591807154250626020555670129862512854366701809686089665623616428842889454855931689505285029720971750647969561490336544478120585989724137799815790454567621989414633669026204049461517480562962766052442451731939487310258885690579719987176786470745242106039529922118191263599803381694714404956848345989551718861118817367474376081736487863780909819595213628774923709375451057641030732388307456494601802982498099620937518298398732121286294811170759378176838970982387381872004957836364407350772592730732479271462175821514460452152849381363884204582560885711304064889200872455628305095079655972669967732807283217084540924869895288568229044630202402874258667612058411060437875251766134565071611856291356457306450593409948576171791427605937875867508292485138944036765432069017326995122803194674078885627225843861047734150820726053079805564029245434807728034592444436590047123914559854415338979835219710452418709458728939924328998891599883524431356708683496704168113823632620590234213481078587939861921552699995751274892187870290103775487333706895297037403930612669419906562278131339561894617156010421594593015321174887453244608584611388298253381164205799091807005795360325370732988942987003474299986818882287719134696022738604328955813484739400181925313878355401303787502083315597486186269152671831057221140788896946078621880355975309323145512183083581574726654178087436684222324953562394838692211655463909857706355570926882074760093230941139251528860299464974058283882123506218585524914154959531151214784939873663117801898734418410956371650267068127525160708147062958436212716764313816275597491231627059108099500536864465138723237352868440768690349931341189502396455767343909726811818545796152615861249562635583586388553365326193281530831144785903590270265705894841068321044037229844808440019547043914555927427064512947860891906325729637449933480494130567244420178048574132850867200515217493036216736597744395183033592259161583596391170049650526693189071085959504990773377668933584249068190886146627206577250339169289227448110283420930003676635286733760863965003528958063477836895720892574486471829984805218737735769410794044556921243494815058194326558327647573346053186724934012393264231122892505324400255505382430143216795170446696070298814879047006098724184654133177756334102397258175000400713214521861402780090324062312221997666053498678990865735928788273326616472094158067210483585490538547452602031915058979102545759666650444066908402854100945833411665872241991260999496081117753129322573756333385594711624443786068253155494235144504085135138524895984073461078573836665772267790661187958324995301816342783965709979195162426466153182990918516010089891518779097937813991744596946654230089277420858435172502959012205179304825623435224826499922710152960578612600324709855604459018703278365259308702230999128924398784258824994237264123629881047384198022673729257958974192716262338951821576117957653036777733543931866649993403501634037338039745213327961325765046436384569602138267527556916482403171879110888380319712813321392800688538663800942248510611226514920008304828556795464560001770263510290702398556332725836302525991440918731343057874158633637921495610620803123234789715485618870269422743205334739544348422467626244606958705084890958275344306691960208411775348112307103370384718699573673197386710735975848912288317977847580724290297782012552902157098893852555605684110497989118736065337046145955676526298463050847623623264373854367669335127504500365053869628485628533177809997342057711607570838896998174313151397798767049628717785127440137340661089498497974104807022194104498387534299544053786836054640845986657020050551548149717489344071077784015415067340587683859509308766701069483730494707863842661266954907129329692557323421374214962750711993137279038723499638364411179477977860461592434333109995323369234356868868636681566294966344705879452535404301091888136412790530741005426064099984505929212164486846362304005162700591583115298147350099495695316537640846697408083242286560036671374797493049742238381688888883432561305937637603043443307503040100009584325419101544711074545690991976441819361987642185930589271123400390411544963589149099575326050677753512627452443647393067499266772212793606140882883869510812580511644607363427261538025577513804926678499561458985025554261269107951794393619058692609454228098980218496006802018696392389139354631978797937632183299922752038073921425344619442875484521137252364696263485183475845506764681981387393048314926684894722828619656965529600349180711909995123596462601450031000963838445320898093102843893786794513842137353566989408768678427948963386752134314728717608345568767637420326328606162588415425372284004637325437671566999627943909608720036982120108075557646384393687832112225217850046261761351158976185742389205989345928065621769146448260698651249133129359462475333139189835700567160263358478298512231093279347749199711521506848232168376917550297226922495827705055555567925225442750205237614447055979523662136693021348537262968355190792178909584498816962683304130500401563373424255082961452213164820785513164180219774914561000274620245602640331810533558048606520190042927695169294366877932035820183516238008388198871208221286461551457190945545999580793409523238406408606955261745978014091540115858786020034606512342570753482872694060116839367754379125675383300739137793459287732217460154705149713093445998123853901526982274538033474853945846181672617920843910109435562003692173006740592033125075380560474319601907589275456317537016693563230375526014105896180471748070889289646302828872899321835142591120406962774601788848002500291499221435079758013714965470940348363238936521669000631972176884015264499775205474208472429101601303521095425565109478823113545879164661985077777249726622442480622949818300918347951304301580688931185271306310537125930477915662200174313574243324829352241139552745975271031677591324244169824144812797487656857367833025527331741038601486409950127752800186689137129191660687382151883066291627888318355392562594404609050497531430229074164949508635979620657579506911930609001657221308263391978307560045050474038945909155747620137706397896514828611745874274485291412920854336167179970049122986016103500543113574036284709953425693276885559898172230154672730304832139295509342307711525121476148870862162441095561950056032007089472343457634727175937242867342591847798867283661074715232596147540913329713527955456988768049276816697801897447881666593087896688409317781081374890387561652712386219404794088028734254181008523257353875761291264474847582145997428195479260383601585882012912584277332471068823846767329860644708631822248632716458974502814687791420066126942673103836869039647530091847153396815484491255374406044342792248642010303841461736897261773814107161650235816322909160243056071880054239696196834231631223204304665278580853289566646479184187870329593101616027076112194866180244720511598809393258252974535164975344857311270511244005218066405775691377535697585464760465101921668334948960657505791734154649853952846539568088370505317390444724974775900074539768541071735653606151432178574392017501033363511626665415896207987327364366325518797296757144994455103872185462293029570441788729146882506869556779273213764783314803810617955240499639453855810002104326896501246307338805896504008995424933146400585208399755532750571762575704981346581974876301667225867506887550444684970663430782995327077535796766852398048012065534893962408706336591903722358320198275901672903510414853250119526503899028416864612058156901430431445359582714540406247025692076334794370734078098090475137255276363189937360159608499132962372299003571033217930275548297358608493882484829895227944532142241957985398774039057340537318300149122517387725415671874899708907696103604544633269621501478198502458017266571178772150090557424981942060778849385111347165072359046595926263636238744181342881940623019338288776202641832027187536847411325347153331140345454115786965307948653879359269809403906799487485562340132949218483651813932494132722699495953447812220701652541846008272214710878145153335381242636553006734105411034141580933393564461229401423897081672302829781979468771547960639428090886964892025493120148236757793289963582346510597496839964643469549648135835431881067666949973297043088599787494953254669549408507145686858980089837813486080400463422477275504593219163280384658883086200733339021114872847573680441396765331954041258420297606899375066731113862855723323320337068362396401493372833049920252793566267249197971294534450071654328826514470740651018189215997683554638502327005783621586063121578005318051477614467135024759320718602902888287467205012917089780862378499210830508251305443570695506324380262059272111473962611814584026238755722065726373101380233372700791173981621647563321283746347336547508060473376670770630766615079172561356450679509171730762309751442746476329957248373074485883952069359246509351074509960268465003452713567463428886386887649477905449538610290645822203052747544276448377795772726575970193963524894758852072292032541749876597204429036240092729893737555557279622730970323608780643004963944054858794717036478577153400535168900337560018275874184857877813011554724107079051272144860210132160698443267781088487896942709404288731428512618178353846056337466064395911685713854362020915233959273829696672630089900998857184970920921857662602133216359589493865838765514617182024070812449299409444802570656259596779234202926317568790176164864375131177827582911899390325305680881349611742499888178988971001912959711821597436146893976180622971451320827402632009536843694119851612894137881414620354316046582755846798158590337229447625996639992246711494860784807271719324488777735185812976661623861679917945681618081250437957844445376594641785605129727751314122951551983655920273309845319735181588345823764324937522496709257141448898443418129982464128680437754323612557527985617886630087938702418928139990201672155560798622213843554849614000077621618636677911861037915844404224994649510020220598614396644205983991801145424422095948175516856137687344733436464159722367217817893496025379226744719749929841195938154329476778679902242749200560328785616021213672018981516840779110107667884947349423886603870514584409032937576747524608176249256353069962126959597152563343323131467770266033494401110093865166649195682586696385290007459607725280834457806456728380287530427188364095272466962508063168890302077648134285300717092722169177892126488616214495395556912994034418890049313083350825107751331853657353645015577366252320664213498040474890001626132868333280676828109824068284756331838065020539588484914412062024472998085680342437931479255041267078269472647696670835784106807846546716756846665232981781022644337013303148963288214102274850146641913453318927402709130065873291291196919644306982977759783541216892683061499661282440020124273050684784794239385409135306367143607876764301242598948355313829166147776994100054538842646832215293668821914562522686555808750558929751671790849784018606378083635152485612639324402639535424022327244629994345172593553847902142318143463295478311791457622407827325198075411905595723873347923152121647772715182199224501325880852793538547472789464044489558426302542975481074000981935606405700020908992303898972107885181560619254728350242733268799290495672586443120961825905808059963441473604217816310448558343066314261373568090621001774507484601587281361283605868675693455477360831117152623154790259984987981757923782048161571490448304455866725007307380273253846115659808147146862161830136066519193924291026877201607454597494533212860788936485009195691671928663416468849123671381234833629935246957443309740296959160019296023938501603436378920288737467656788883943023366737941262306993831378511279473037377040788018211679573797965344119914989211620373592495390812996849553509093974547749415823918539946729038692331400632448517275638354128177735975019463342620991610082856608714011857021560306268852524702786590059942907063028501814016883434649363736241036266325388611431908216482630622544158364375085512139799314993838831198450045779002626011812886553691294158404839169339250711569718521583771388120999323112830002906701272114346142487067013648268942743964690479169223210224422947455463530873280793699723112244051045236449997030928520875916502727817827133427095682753177124489623681413329097897136293390310696057861517814783533774345772250417276203701557408879048405570569454526976401108575957779733886748848949148206718597572613234317259337853157563451961766883973388531103195829017908805209252256089557312327053199762349839586105524071174690564658644217888500364850650456743138751623728915419495637184940654452560534556479718366090363276748774287408319737170812809076806665816709175058871324442993430995656711051461650602909835856555925824630188231302090601605241263631754988868710214515239987366566409908442567132679617020683216560729663487631722672564808579873986709653740698966627029363735559819997952767956785998976079853904544852241893784131693880507549663167270918077538161439106816433252534351907875230651764836481416798593438208106419916109867502914762106106567851667890558880769815615635352390438294932042832083273883106979662860125583991338895266427132980389315629274652992929684509433777789289303819574427383085922445873962974371346366680266645129242561295313599092049241595752092288428470167952806796455198978299342672928644219717993940052399534625873331880995389122579227889883546329205800064890344359308178045860746058002271243092642425469295918856125869898710051431335688235855614534765092224464397050302774007450287801602764996095937652528073505659491941704587867789562436624974350920143408821189657863617029471790617018208557626162520929802394217957572479160713345478197969077239312355881022153513679330144051022654800423870251503512947595284558845312570160736605746483669338633407808590439661627545351810863060821192026966986727015788714671476666699903572414031560131346478871330013537172988515673515330296713815086339714092384942529885270163905068050094027414478386631897377340769197800355462570645433972084709881102068267780495366044286040768302476684065730279666492348397041621052119037234171047760521487745885399962195473164982392591662723659063542910968863912686802664541653486686032066901749314025923888195985062484125803294580465149645306981241465381673198942807135143081971763065390873981636695085497153091578318882159472799670080975505532035399829285188220085557657674731891555272914256846978903103653278673033024228420433262806062203538400186253349423202227700056680787297450039793361375543713951007506438888918568497995865184271707074070343750609090500166651067343409215125779572688829809925718100146395568358268738221829861605998260378217414305293100684994767198193738583379374900231181665710176950116890532164022748190565188391502096966507687229890630866709799708861809560381581757985774054211822168543978371769554521314181922461917257125633827549276599656854183978150901627456936312008685008298673943786254082650788959428439789607690484086779280138098270777244651530429603466834056997474582902960103878520793721330239721481268104681795226071555170732934260998963539003080078185779927119004189598778098043859482504198311970103776430363143165806571844676585725698023896348112029144307131991359291873136274121979703381983345309138292613755574602788863495262824929609393232360619106621996284577695281209394025977216602944627879080679043817769649558781324418465131210090005629856279499504562064704818173322912032127013500344231745422751949130606305964584259898491491771758042339477937190471736619915620989775355182490310773239858251866679475046844649363151327950882484303467564870559520230641804010690647608375041878180812731661071351608569131364244822129049605732301073959926709786862466818306964225842802984562978503794410899657196120332134756830894580298141229758553854596843000883490783249196182686725326102535420877978067744396078006364235984773647332629663232895578728128805097824877926438534737636509048731622865412790660929064828007314009913979648275093779411096089322113361532007485989794640566163896140865438302354962626303383929688972323913020951663066432411581869706649464671628310212708490575006035831554161563517492894394046911857460706070794610349043669091054632189874689918932599653659224999290591409924934923809566092821827223220728995099652899515110322098789498824920658141625947169638361454933960427428120845486829755435527349058951532677331211959925486528751378908256366257680248194350113044615912603447394224255405021163937904057621032840575524199740142929802640951936500235662260533964112106721634692455956092273547540832044688870864021769239283826369645896915436504339489135494334104264652628129299126495547085849709453283782610233531921878975305051200867755685421295058680247181769836255391953108328851516196964297422453911086948831780882947054591423903004980598521321289573607392262581884011058526146493047920442660119407589975360365892326292903275216417100028891766716820084653824570478589843735055509403790390769716615112702996562898791449118966388883065612942224683271049827980282911943624964767657965031016323869170353696746395881005250416399184013443536394610267329310059575889162700070379046555437735341314649198456045695508440180761316867202658434230929230437500919628357654248345114702975069102369862405087355286503436246762710523757545645653401955075361225125577002370204173247071189614141676168880025001099740285460193433007005234527072759448046118316861756483117803530114498307968497049954706933604911936858471002201131888495213747064338694161511507825336442038956989768006190096387952903975431834128404003154849888015576658127742796957781858841616052863053034823579872182459047683280356704484523521676782602877115051566439833840116498203367087202505001978634676340800149761393687430364928362046712259674613958868770766096204915756984897948586932411988315508632594740199854845724660678885342166856553311917647114292857598786983682557897390516068681316446909945662232340295201581101456827117080480564669425543104216405577396395667657174105520005716219054585664764049353469438783226658232343119000424363340946075311616871084594053497653770913158899495531760452818891509883838275583952331714482597582965088214402593958255335139602217883306849727175620195065370546003980019997554936920156095305590494651032455999408371485797324374846455589192738760806746258900338115866120235011507205017636570738534295165759122071096089852817134375089664901146923582978756364604089083030910109386007438291522458384172636338220449907144365228490081311160265184216457386934608497677894863483088299316930275499615988228562116020690196367845759366556950145478956911140071128919558715556872453722896888790915954331292676850020637053460306630834039611696010950302563527341126318415287961317721362446875719457299146289798861701492400329314154856566867001945991610879855262219728605902358734167051634885673904742687399316201518714932020165105868690896520869456686258515039787069027777153693556931426941028046112945378707392345865703276915694070689479847863276198247704801657951325142417054072922417879448940809401422559713759307691005982611112049819841811609444937242511724099810178124655930711961138116037384101343528356850977870275527630350560850962750517680837175317979092524059812564066183652562062216860775206153139863622125224179340560712152083656392685294379052426993284954320605179149983494442412658845237528940840898960940433301838516668672786521317157152221741446839388833338794590624817353038028713614570278518404758316625954486272150823054117438859488415549235764458571844075969320969611800545041939013957964097086172308612432021585100751663159903085336856823985698118927276597038584786273593755628621540425658679370920073291593836184326250462952166954746827851906788337391400020549866982072426496823952227469869140935521129417102212200247873976574215073737952642771942300544725479692036847538559826601763854998495000185136252045128520574232577012064873802618697382016566733032639280656842467368651430365878740358599907139566082453253750101850982861654330922105680832866758982384067816265963229628381376793347304685068719262804266414057277185413773528498992101578119358034413925649215001267193089667330180325471866417977982966616169022040927864393669823109914974240773306127942791393922145728480653431693207690536202826060853361364016360334119016395923322872906070304678803614863734099584015766335502964464164382584626035845846443665119504328381862896493519385907052671635779753262606994433536313760431709354287015798855116682876118308510365421719794647742970506254982680885185586214817165979206715654501659126970294829811783073692092618417203491341456621087755068142049800537764740904391385307853004927090687624941861318774368217803470949056502730562104362709675366699658753075203738529609996323233572203695841086825146430441315886771649156625553187395392897650985543011481762416966768413672498165496148523181687038605615420476197529908528534199824005541615792180544478089213095099521884387405762605044904430145210159349061364839556370427810812629980359844097654857814265388650386247751994869976846576129899369775384853196142902929910794443157975313244671625000687822203824645336673126459430445127566135384019422661191852610545130206442262599270803981511279584939734027172921554729854247744214000646496946745662644608079828181018908280515093801714199015241943003112336929159676102766080529080880522357703380475736629148835537742328998101281293319442976605829593345932128924991751253861186544880086934538321741022750080134597760498396600806448985672325520825954869918942735470760298129427158018012100397286779188263953396852283556110632017730278720953901023534482382745836582578700267651612532699824889334207677200258289802258252852958956484094364874903675936074197330200541809775112075479515490931397947547809620736340393787426512686451145064291495646151170113546244555326014411803981363952155713150375085751956417029503550132091279212225829454260100657334326942291017300672943920828772638907418436503996526567937003994847914519453673794675679335405647879913876953387008836042204895663148759614813152807065148373417939101421092463762436059445265203206185741130185431227558962546642221380504960319506885470553408213729969260363542100853868807123712310944017124630826413583065985253234036052192726849426568459071064566676427631504679749133417246095363160147934872773112422979644476630580794186520670573403339614375845171265569911222824134521351751541155964476480523146689782131822164226020781200588365191654451137081985123173529956528422204226075787413446720143544731029295572737213000402928361353144643289131534375721140372726934277145212171219593155731616314515305511379894678132392434287099679405731104731943871969087230453500571872983398024430920058654147922558260925640872898302143797535761810848060658415968336407162655929392767889765658162663975213972468352635839653828172363113128138759309158097903794290168956045619794951936219943935688289382849846818929628644148163877629496044359853579003299675197111927545564183738471104951260494622710011955990505863660429915602166436096164660993912580716706179326912556709844985165490367721805433888462404403768136188392608972295944691854083332097438701542818016066888795942654176091211110751584572888348550896062795237899259883345461946297788225320746447733868948519573431343272438250695272636610240520396023483264578149834456933723245494637648458073475399308650460738112795756369689867330804208692354008895705665333736866523463784490617856377654672618307675162630154711126478428740149949075426476508321151367068827399062793602052038464240037746076076340547478666482785378701700406396421194811667931846017817254299652381580063888736297262782049209067744349655592224614218283347074203573886662823452416162662420699488127782424400407944207683051190786366186181270568255324058518553070338473121327697667903931635399742927916245905608609734795814344294968616620688661430346240436548994601865062034089226590640727596885045680900128657307066654212052394915545554339734036997239654736906372697701527056592862870633204822860120929675037150148168117901357697237124935865784729151910417372955097729732490819609207539766933305066627099534115364503082009051219777201960472020895858026048444932268923519329294186216651356110209697115203849550373764243538352262865738894511586210923654248951387431923123423454460264422735203882654340632354222361356483809448745477702176053957374403607361033242767927517815252139390597500203722752889585946950109560881409198015350777783711745397811489535875815457320741527906010608891468046214059937157905155070537987230806035663657720430778308858253479964477466966110149456804010730736487925822473509593239411536347050543072747388969747297246052192606341815791895868753521771546177482312267186373052316991067651384303193746412791744081362145823602484025406060977017915937485561347746350447189005434169936964407114651259352702250101611814810178967311973341958625109226208550048195847393049879537593393524676234105583967575619436485528216547706094726464338197093065231046413755807153512918768560979743680041832980442520175581651751809057306701711415162711221793641670912191455390148809067956256058827946771060289513526319269311302029750074061741190530110517718687510516406531843504788129240624448314206225945255612113120273760680814171991747385394586417121722776385301855192682946782394299525358545260727853148936765464090004756292798848257106584098661277265994660738809698486750432074869042348989424678806278679928229898620829674107303724306985594469753183430138419754493083407800083837571217920088045041130608065479596378091825411801184023557352517938664117586295921823023392106992871306404906253518492857716416460883292708638612399627437402344529715427929793289381839312141702095389524512698840666592807687235611894679618994404520427815225026267313453978560933281179740674246908735856446967712915054892271312946975490642932663076870404568318221010575018170135301429773591497097826148113220764360675276841962480834135828935508644176216345057184219354353092165211128603941886639801930667675368059775968768854960759936455153977482334155748825625904480224863363692769027191967361170302704317943760559316149638928809855810723275329049416337175178046813201595665703173058089444125153237188469532817544282614432322469361052901700279080191442763630264438232598769570062908189067071235973290835323683112937492497290313362106904156367076932983228771438252233295557498073982520112084905094484941064716746745932181336310193783624360583449986114610242748399524703472651523966990326038086718513606980889380831761070571429421961271465777574868373503996126783594130825026821730655464260251864257322455096612386767798726822647851321134867499939340300103798242333435977513091140878767470380786619964744258225898301657589442375081101142070380831837604049444693349156902681860638056682090588230344129398707574665681434695178582829787163216212649613733736267339330014317333629319507075764966112816697606177321286462221968571408124120351624206498905613956461366434498671860287857058286484018435492078077665390741728355013930139910480312986373285828772712864298788759230674554866458345219253126201597175284747268280332136895609345092150488821546243629533243871451122018638701227209257356441992544030678293866488323728034711217747455450385162189149792404489064291281308963038767909301689084578275175025604176181819516501166996573440036792020709041576307047534250263910490855364837026919185984870740975348354993679670288026017016473804606625069761733026405324665314452027059485812340468716371920919593996786936866111446616245976673760061989880127799394259078314007618984994132797704427762334624345633737776134479676436082060984736831997627407800523219460174599733679703153718626090727243597087466503443499963893060022777899145600772569050189746710492483076982516163390965803370701786308797129420558435688303598301903096651564038548006925499390153771452168748504240187537918201482476599721911533414421432728803810490786092697323065637968424415250349072248112820980875968509685917804809123934607838003556482779064813397597099929857817144905396397355174503327886629034171089876845889084909623719853393892665201176678357306695447809567215398545687825386229074806445389393736274113567033209817642175518008280966909066429112371396603286058932724353741360555013554281555711461029922864345264072929723526050493706905573512032972293949217088315290131564113292082828876756690638988073880120193529267043326677609421967539902745675776414337178169116381279729127536684673819550949484873404003736975848272164509759248839637377448605210813976574011462276361385686717368330184686875016708833578717478115140790362660226344084879462986965932737863704242730877437795637788898778580546922680204246566882095714260684827745978701462889038663559390532083478561038924804619978787181776010129068781852240733264155966041650816386122749327115551503531507942118032412168734495695215544790292766334297144967883703195107436024924274892579629453265612987065689546112690278234857336117448854549602328016374043717271017040956847441687261490569743846017203216704078194190896911649738004512281624928232887466098471996838009613459066804379652448644359914710384840283651301836325342296776089339991925968008895178777010733045326320788779171004232533328594649344955146480775626105900713871224833526712849540138175329902681556642257174075461324231953191656909016170823396645205039053086955305008071624820011074290957415141996900279694843745604400081339438643800708896879103692913388029162851288094649279133509729501926186310932687149266440267629864777352596778264021950443082892526569980302154745474507044698149816516518452476839979415373544889755437478704926026295092709221414078459049718324223988856190579545902252509431549685706391725658585735476404152018017968657191536635022647914179725295872602064692011601659224572614420450400379612449418759395942373317259349537220046978036465436457513553939957632499256831048896693042550076952142266807482266805523860068884292218901611524497048349241554515993043588899476819341886752757852200158553957572106516149844364604404090397909658926275407641292411816429688939637533051471334035739855173303276166856336295580426619881552322065170572493329487647483524297960846105147256029340955165614061894763914343864260281228141752554219967534045014489869292625657974266979366627903886111661005939950275924577060277110890700701116916722387387951387071900758358407093448085248441188111707520925779664306228658057746872672103375553833889380089943365855306484721992607444403882718374889724871249676743047018577101736479033976618744487804539989903218489625267923004401487806721351014494468659189022616971415644508623925986259656751601719480048057733201161397690896153808089937649973423416332521873728543846968623429235757246732481431134186790924673651954045967629195051993215272292689865805954585523593807981270589291246146029019015749246204017052108152273930898009935664826787835480218872528408651459043212544948220618199014137595493502525724152157486276417693768764861070678814595297750757486888001252679100798687036781391228803559489693407086266681462277910538512118888758705315540020743041061928407393697402212215950138451071872913694972762416399886598427797429236632277102034525848936015107885818991677854526463126015893840379173332055020124556654561767791332829145260476176724049125036593003583745521123370162135286954740176630533874772402091172989510669555803941835717438243967770886823534209668894235905694689037042654559990787866330897068769859794133436305226098676391926413254493843717908082700397285363760555722865709674850325635644703416425153318942284226882911394690633332699763928445401056453323589471479780000545470492512026686659459743491871529465302563408757971123186208750542569745406135691399182022459109458401650171126423086502420949643451903083437938163788605187403089485418568937391767061455136170350454515311279431450425308274877567738387854150282062866434173391113762209767793141748832378211479015859573572106497491704427731125720637510834609100066518195398578886640745744785237535252556439875022119335919300890431968065059683807012552546155199869863678792941521552133374598997569100636327455477160789350567679051824020647868135009410974939956468949444031823853638281776654219715580786450719488134593165293954318105177620128891277678223997357870790802797686736028326095825534942567367568542141220505582754262539704963870102181021793047362832503444258717727103196714735417842562776161336334419042394280489181327024776506208684904323780604490449901711335528356335788340208458092614892811978034572235710533053756259963281787553339748511843950373895125377037970180640300303562996296859882013321036744428801119634107628901145098652124589072952763965172781482639092608823101817288066208844447706925410956903963731605597927489457662797333005182116235122235102893329904200784717248769375336397928818764797100019218671290430368629613850367744010470153309853578635810004178775940017055621443069776740726632422627363283318930327174806154897915499875523435180505509779370660434352305260815292768804317160441685176195130848368043693500757515086219317109548149641978414423457334607614191777752799011301148435130187114171581775260699991496215994327328515628382929235195014278425522147958994241144407204245878420487998740768762169705184441831597885767566208319043922799677256349143271177875391695968066418071951657599526934073588501767587762954008852796557572800467770041726704814171298942366824974998064830985124606475975713821417321441269241790555902988409852646929841689420451895663832027051392651934895589139558211270736035563193320459326473707566042208792633733643876280924795136104120290966141794023816564942167718728609487535074016786988283181237749598102240624775323858957204989387178414088583534643406958475581320308457255591045876034869691351460300188467329828526241430963465161995920121603793451634298922290807895971433033062482651008671580692203430059971574684870932084088487464499443013317467704931847017690539490078482465990661076388540403904509503885198560573843488410901272194772531343678956772346206740320499451988191788147995139428052805306642176633956603275543809728305045190228576661001591062061520070540378331621166384552665645696009116662619033155778564304286418866360660607152127777536782113500555071016492281986097118781168541546500181457681158011711614170403050858706732739077015774694700314896492016020211431640402415567634789551457323250245447435964815656569407091063318265605548175920983342722817381560488347273083475622818651972389481439234970824181554389714748503297515272097595714264193555374593121148809327777997496263823539023829583423926778197138863575826261997969375093028548774303792702423370767607993727285498287101223321566452299134315713599845743267744231077632560535395961588465951085895966731754245718997992228791331807160033454647247318949256936291208232481775443970621582603858310152489291333140344121969374880503074253803470682675796792737469710626531542642091130393125328879184794209003914604444456995891233031988012270403746500380757788839785326575160062622272610402685871720008868073935120603351376022106946736938883062710423380163460161303864599599606346594297074680208484989541656860037113537646203816862845197602009246316000175925279397656063858310071903357928225663985775905186736125077182222540871075728077467513203433905516480983565247294448509647231450549268894839623999769198563074510825730832509521799258145140564813309569085627652539098707921711627805442473744131015062589352015917179926440541064699844075368275865782185672010182886576184336473443582506441211669536014393795378920278741493981159750703038066477456639772378205014970820327666652948051271590971389694986631883063446259204726526179330640162723980556238928387020119287464253775631675706366746745891243724383776416538407957517072836117937640480429571677173272954090362355393034583491111339170513133705917814380322225200656994630701169919074702698847906551429216574013888655081151076620421707814342586095279596513681143995464114238432853352820996836817554729053987437020687465767735261763297413737126520694566598668176646641342206060093198859071053111538631556414281228570773129245088084641603027068295854458985039182624905618322861116637791851417897229409901354231907263223860486614454537544831430711783720746460145187507855302632604987004327692792269110491051220736005774928597404772014038109821445779880658914769415411010184598697329979550235964850284235636370021127402709153229510672907339462858188083612699874341240214020768850810638651791035456786365889710609415620916496804224905149207058365897426624102656051250534671680697354123023754823337356326452824796243160224828676084049617532793326569147000443486562097123417345242617726492548273412199129870380879365411934207320891216380019352414053723469015908768169931504506546908697833672904459294220034229579066512994585612768214577570156617528823248814661202656900821127940575665403900793956200274463679334845101704362892429054147602137180256828456362008064650256782708029934635027140363833495759236953435035014104371839726282444214789139063464055195532224330504563742319808484571907855922469401957272250530733354575957958703637434860189473094623512390427700646889905942234405037732442957034616153967986320699903568809631331252466840870465786554641072780545991828291992777319909368613204772174229300272339219605289516452603452620037517266109084076538319871969327218394363051477174402071976653780179248189714619097837246973062458293790549490918684668405882095246525450860006359492800917843233122236471504365829092812714291304290531499308679061264565474176043836755809072856986190800228527286164349966214253834158011475467988022602943781209667166431156901564988861122644841402450032320279171085761275597179376150332653464936826065000328001994866643152036897200621565709251316579708121982355165911691064223953568863979882558744516010909785158982364523822629633691173590910745671047362531483374319286654074487676650272661176067522917456785559737542930383992180485032687289938353345046968597739213194924152716822638611442418595063830098343129770885436025804271479310062641334026268710279523078637160633697094304053442476450409026532998191196234922290363191820343121887581706582334852556838446228454604492191316698249794713953652475358235666295805413696961063768720123430528854271355096375012912530894917851092644643643946831898056817497055950075575906874841729470464762378878674744665056376947715220043648127385946043658870133887622530666609705476558559315955192773725061846820227058586561987194567413312902231755666955299743504933670457661370260041805213490820957581034047659521140046250301151168727569133716929960994095647846654765773093873431205685005290393612326022554862502723327106257441221967155283388928221002139225852586678338539827870590938094357444378273079295494527648113290021896864401421945107935019776707427079996946261864222597233591285137637845342488243007005618295638242492738991976187891178731528427875082025131291203950257385222077729041303864762139474198657388836039897787816658530039833012862500092298963591447495814664079394613885366417982438737522775024853009468206731399838615089421978584597293735705666248249821521183028078412781929620192631471026107219646470284865748914966336903208068490490028139452690406065003765538984958229338801815381425565465904588374036312153807110554225225251214031588155515251993552992849466636125680205973411314343010469347861957002749780421669076807567878649745849288834214393022556787278228981875431044823757152322871300526423060820908353714756354754007094322385068141536034256326036516486434985235175512808168452256326635287297946655155752715044149437319083710712266687065288503468518523502890750495664097998122369852693319781723513688726446572810161826460965814877225951182338799111168335018854764771202060608822594563767670033661919785203893214110463291439919277086468467674443748778359807277118673179750397800060838359667265999967437315098046195063668597397032892289522734204708239391266926278241113959552455626160683142583462676629972853697579387656689969129416829555364328971776275674313099109423697613768865447405585616993750536811124427768064909687398125977559972701387001093514140570147319705875186066954589713804637320983860767336949756171900667296958190247233100691391258009173437088260508822717798872653678369578991035674590264272485713176341251215106405351722056000590877070639886984835383033305526223298113523103030646109853359215278564473524422271604970537512047656119521211637168728756715038838911338121169667768658695872965748987577174987323789767889226189954570256688049656828652723810707348319308340484414839087299605641374401533125754789858368578624506966605010747359651118561271895243938422690091519100806694209380657959391107252702845322011361097198049943527106395060519219066680680583675506127195004435264143402127078861311171992340797539628199408736819194561170542669549526493769582234762777244325985540635271478065736124576325745192262657090815805161911143763447423400793418213512127068351883088063372000321666359996715671723472439990357946307682429287949029712134150123648856037738204135679122164641146824732441538466669094751626728099883182815527549154689921234686751504726546721852364188649077032490913431185071524246772301494526329432511831090801042022358044864335838000971854378550491036414143126138653854273899285150710648341434647055610091402628075432582145491573705907348483830108251835928073638330357212356132998644637215233463406127249369864829786690685591368216161253839676398688374629289824243181509345182869262484939379181136508464559206009069060097272440502164109622125862520622419760814853186214864871264892419039139792677733569711679617177639002958972211980883308074177007002457533294345953180562177224510550086361826579857816090268197911371943213361225754324407968118212225561110158811222228684402396539689069030176234030122814877706628059363259088997237669626487412395522055437668293962662901140543769404767169352629140191408019919245830748023092333342830511186730285066651419750670115567205659912378893362888051912793808639011604045119218616329868530041391251862870207156622559620995627834689087729758892918037274874970112767604027508277397990949291924029133160428076291407037643796687886073183884973752016888824756518690849209861428159051820061094988218976167659697511173819940733464635782469171043138382177695631202751987310999598542569106787213828562541712148028552456858086523550432861889681136129593946627321997131587219347687076835550657921632802412260495619589020156234725037536084948523173645857472959312894207891677733196714480206076333677896487957078718644383459009310940751046034399578407562453347341344330306375598607987620486207975896531212794325007017804278558438881342257212132137868800009299289633296896292327129314180159680452766343374103554361869521524371410949226177058214014664631732789640222294187765148279075193445409361338623867742621311415649019665319391289757648707771643353050646093739292369011275794790645894009119388857355199046009348026279853964279150860576591937944879664874010105733577167143721277792130632084501425739934763606378805712369836864722312740411727506986268317410991166525011671298748764893657965809397608570027614729609394476616037476232419320655113269435461388273190445927184688237589917996552363094480443665682898906100983423963517359354523687581243586089361657080133356320156423965837683659672086920356026314115566583532907795894932569732214230329378806048961837573698504664138951572700816908621477990765474391434805379230858205901849323327865862918128484290233358275745917333329164107322788016839413549815341283247600298098043279660294080636919308590599505599126449571209961418508090522811838333928061567283997793575727098551908498590337733641985267125619626887622723356138835642565635189015476934147905597618073086222549628608291302701880187323877156623482510302932641826065845244092423970707803065175357535080806761620530684521497750281588140511769257613570327723365134768388079988288344642995958663785854434649422984148827599798205328352648252892024734129248886522588349226406614406696588001815927645104218371772516602489374131191738537549708361189508819708244502981417255140523961927386212061653580567804217931846402166444053987240027883871788974421033599819368406285231911278831986405586131757115298945112623996049916781763845265948207782292216667356205723153022954583971383711921837619114684343983275882037520401072311167687240713301437237779149917866205068171791692936976831706310905154965596321374498284271228748576613489220480056690511007118526115928711349849577966018116265162746196917329292007351555104518088202657302839102359094628098760651624521919517667871136995865309154801326998687376113878573369491976522032898778387699112443847655930962673097636420552774695051917871609988722736887472176676818585711956131655639553295292063929871507056259129584431509043510102911178168336219423462164522950453658094736480562641756034967660406061237426835818542861002678487171793223301447096766454630887127178730082463107246263483874317007785997749015634924240617205307303975333365327176614157985613779688489762810425364989371606326988979014182323017650539220938796117160420243404734670584051940794183714218411895786332431189498685697461378615321144822464098716513723674373888523251029743238216095411187669295189002061534317295476210670901322473109289325517339538719488884033000360145631433544443336803160675957972657072960680959857425740847777839702777050431441998305875729029486537784710186866858255652746800784425470909051166484572253033770094278776964100745387626833564105160639032719430056589005438809588299082624915072040880678289762450520458743148823536742901274840067031407042022217414357728115135179422321550950178062252660564630114974043608754951181166612772450958725401957860593481779125860653777396115117027886072921131729729928565206405227413044335302628826897526126890471817013528557877284466291911272297754177520855347392609419442049553664022913866350532728449956122203389672776465364219644028950179690593110164539183577863725628802030522552827556210784684908811338250806921212929838037444696713084557458470519558519400776221227352748482924976261249405381567117025122316277000216158352923332414097702210924464809478187428337168006201545715700178934786967449563893278116008510389309375748914970247864321269095445069535094139657849880668091335107325810093798547399199852498942687295575799445358294157327770285241368238428450373364809283825482859955344375343857313178629189450944393788964347389114078380991391565870535566654629966778585829232836981034509548729450670737013999845574379456184004157359007849587637783056080317355739102916744026938231832994387411883855792995895796430759735152875869257046076894677902344704106044339626333032492690881017023508918650042909945497624432607617599177516518005101856305576156929923223461457067319671410383281062203769602650517047219013477530889444691434881967747446706654621262810935265786195518844228142516322681749502318318161484060332520880373557843472232810646734847469307717024419999269271789366846911931492746425339703098049786989256191751539252587661530066144942719736099561326258845020156613264684145309420970425627564743407043119201760159027693710776928825822336795147549355011311514853389326092337305846387842540482879610903032744848374861308057998889131824871222548068374266133203577376793782853156733709631357305818427362797781117579115167208636280293845251716822318258829740219790936626004658742498107556520205113182592346319546864420338864301010302266551309851487446779717459210208740110399869590446931589777296268359556447317074181041575504313449220267600786130971168199401228921875985952387791664402228021449069441211917447363316889457692078405633422310592264305789117316694860974642101467011860649395397528319352351089314322935947551373956482801490172469408743496479107862633465290249608608347014146041318338584185384861656782101651125968868340779906698201957944671177921798662951387289969052299867216986617758431142048017505600499866288224400306128026066285717818369676101660799906322129372286541287831252495149251200530269706090762900781215802154243350129736155318444471300277938281119176571336833048344727047796946568995928708707769927606047061160235194885301006660574285478458408143922952515807849111351327597540308974602114410223180083734744924700768250358516447512947670065560419313442969160041405493271561206021889294660381632978714952872842230803493782134535575011323854461111576838235704954215299637179688691118642296999049918152139668994776770205777070232272146944979450345461939499433859169322971673903930420991433137199757867966476278917047702874343625183470795408357516312735691497594715479317946506082897890162342253076201797625855521666177101891876542411073000668897838714581914067214898857871101840849899828806121323906903777961151204894910091783536353687087932541151212667460733341863009194056910996818873362730315927467866838742736038381472457924715736798718511604454774581197008091636787196741020008283789812351724702037034012327921871534216899566818932681659602388500280923201958206606007169226944678944547605060046948176381321491041784432488804442884824400050658099894139698602599145525140062207528199669474678006426094894737654538366992922995469825456899001100327052993977213544552124545076942519051968318841603500189181744903329986804728162019864481194387807535231208314557678753931719941715972020266729521929056402487137131513655982408559715609190398853752801764264198083936011556653278041352126203396533638428875808691436644015377876328403584597763185977733607105719972308984876894694532777105062598619105194271890831532017426587736329475301646437121914387310389340226664647343378619260651447546342551600593239026427129136409579414668448931855462425884445167347517773496215979461895178855373760812367724339711823857074194947322651937488667314004095634838699323226245266955946895868616267705888016238129490576924724924995367461928605863634538591907674371610514001927355446329717877867434067890217259023731972779171987775900125457392364309751291581914214942186435716286708138446234415060108994377324583952353532875087101401705567902926992425893031289017177362207283875562582942082838476486026827210827697932663021359404757742220633595222827700614317804185909770213685680293994360126542969703354661714984129557308060453466371560326586483883519864415089996198108224116674601468417534580420834477464488454310663422734347602638480904259469096191111940984653921448770246814814177101368238683939361767859210509015426270705146621877280915340964546226813459968528292148727161710943117263471686852822148497006951700326601997178485585525002745153417490480670329327516781275700929379934724714383017384213220409178341851532537315271238525301301623800969084726031852510010821957440737381948223487997436770461015884247984551215553559872943248477240299774686388630533028334999984763090772555793401176914256847810749401327273343695786401532556154997741431875093806613698101202160295689554106124399375416790230000539387760795684833113974263650586021488739459801676936295457998458474865696477058871865218117604492332068623004428577242921851528819164359499844224907601405139372665882811519366887966217153494372260921139152943320362307816068395987894657038329178722489207435496397402089198493952904394269357488982158881415031936355830550294340602373550425025291248196926563490906965285812069712618529692369057152996953524699501272273832042597074370271973075059830960999226613716947742267780284635486470205938661931459059859679860408535427886458164589802837357766724872605153601253067393172190047053330327336979428336833074753449670460912650905493970676162491831876032406186171710114365070358465955067363320444584391591308866761493777985935639731235192346506990851679871521240502360404442490308647752481038655716746957089598401701141438507831466282546066876330190430410967221274148916524757546641691306926527404867684865276293484712837416338280149677713403209116227465646143256171662805274015198497130457246650591771869304586153307198254773935213581973422906786513144826382541250418290417204928968911158945126622060591722513071002494229331830817341166617120805417834370078840071307845766653215037196588994107746437542298619045524239121610206721518017997218089913314135014068322616391218088876700882928795859574702792283704156020189614929483820632767808428372783036299176463858975778530814048272028570111099282620642753949923600170458217446588407099439954420039408763285530065857619270408052750734241253601017142566292700362879646248288835133988449107644455925012992013996681943875979799679733219237388594561450887774294751616496127490315603132995874970286271058359412605699079554731915645301957131218792661158592361964507873670381605267852482453801843544862317309651367767631419463634596218731472259130642213789627392642483386346921436102662737111904359169505010248990302426807635079707451917989487166059218049755648683810450788532546107345722245459771758559785948084631561272441694454830707609942027694566888621638656044867231775222650534990771340030550526204536021926048291369581467151112676847870286628477976310503206772997201663515899583604223049075207351806332734366874751286731191837228723833027323849663399686741086029109380716350941660395757514037601308721961372723559944495773863731796206544381017571693888018155369086477246596111832202980638529991436879295065962326743224416719920524217717035916932767563501730713437670609985534407978888714629704733738925915927496577651053138090646067220468642235505433196664137347638947980170056784250747209486476393815134535229313219130571455638950901788056331431575352251720431844841168943190249699053965164351101654663023474046505987491978614553001423011081374814194749277536399281539505040417375420364500228739204765943008816429395881384879644430334207005387792966372495401589279786698304292389097963966879590620356866330960357126062416839621317217997316331772302868974383646836655015549806886644419767866510342870810197764233411839095669234850019418346802132003449447062831613655786950274996372106127139555951074980201328893406871006011633381984943970261987426910474263692201099165724575023641038130074773520863782975485668626367488017351746506918016095954497328223371302602875671565833447551041124064165685589045657238365572950248084442345586952368773484097842215838498292513014493415316214231090905581857229794762201415330984490513166078320939819812864225359596278259328640470793233921587708165851126468821340796925790387697062100225193908884157824357249219253080079206512603493813105199013969627222644100012011939913482782526270216324267991788309298394222595745243847710421616515523431987759363276911451696160617500246852988951830975144977985066389763537460535218705334527747322835598112178688800907912329525244362943078782447511241174667124837350612038883415026526037005256048900468820123384027287357585124332095454573052750051392744477733545443277260631400668001399392782416043931888327657264388408780975901121769721056232024813462610389377852376279532954510225500539299865422824532946921212006967504867171993481971919149307044923515903057457893371165125439809633328123997499134494337152437648907555749727079049494214749074006847183932257219253164529057554758278763589841692035811392770263613296668228330432925183040727799396132205650140137519404994890994894666956450732379352006252859249261558863008168108711249101846248117590948520212914621510348506703327745995310053947214351903091247457788271466607077472199288561223071341660042961540371531825160886304567518543318324842841858764039130106224497994747150424736076065048101003411693280529586292319937258872820122536442757043869816925765444017252742005423819319475316746387276597261915096469740974153439503548740797955523871530059396293235235582785324469455107748236715580895430644784641857842410769866470392500879779350031841056380299687521016522254746121886482788958359676501920912842778462804574057202691301376723898760855721784554029053629291031138423044887561734865961183182483664445622245056555091391217878004048405340615711232674988814999293875270758192344889520353222558299401922214627972619883021112356077716533581046565190029111226015321790498189068191647777663799600911030656602783606837149364289229353304721870810151985040017448265629384031901838007669506992520541669039160494704779392626965526749842967993852993389656505339826906546173631625046683896999259351904088235568235448391964813805667731970312508089655000092042165633635480517252356464946588066604585387683412930292036680083312457471060997216260873354343894910854248851867766922942327375747887250737791273553489083594661864365390661685130649209639205434175713404307216127219693307882647462118851832726687386412906688415217465782670544706604032093217365328475767511302390699903547933220207805537161379768683211940503466727021185592360850797276758791593861990799006630033644346623697263322688524596418350574235990806318939067064307410297799708309119847557731389466340549262974341401616164130145628695897085083497363947562274576763119793756697558874908776061292570622295691526747625155224999819874216236274581880509660224414793853401140291309229273916487556991345580537283063842927689579613718594543348924714876070357898200667813006318097985649365109377705072202001404640899936955049525200521265783176115078322580917960679730365202078806569419340577037868079353207222226040153105743236481396725874501598543842397857315251598688181100375351682214704274093456365351847538913020905169709739598757325050777926857345855926293293969794310579079412087351752147732185777993412171911734023437476651364703401003794334918618255804974496143315774719016422548094687163399460173402806941690004064019621326412822812517482095799175886470558970062232861219250511781553150050423897192725117638828671813945787892549419798477283270327067818665974609500731546735347369719435217037853429733224569141874105819171830627442193965803267448286912668660307963636912469335504469914455061987565664287594341689601658305818112981954972100669802427088779123685535092393615855036344372565908691680066637611192866474122755793690441565846082439604959141525867369696821895055361122857017392811253545553225697881502445135172403120270216459216779809973838602938188053054808842677330123706277453817530990290689879122093624599146392826707982308534991290090577590866868337370729709539091004983226146864438143345793969156433587307145404495308634723633148669828073081480709415484395818675561449616206892166676458132839760901471860340650616065255010827050594548296887753834170535958989731688228171584028349973925692989361159115925593948775474413860007074224549409722459764636450411264046704980216827661828508740282337124592633025273747917353479896573369730373664098553065571350973904561096235049092798486981420928430786628974236627578026624111182407518341115636291916193452799846029042931669324260227856200711925764868343691160262678908809318339777666101575366164857305541676225482205770516978414481458051820758627416564530808657520917165016434520146206282013242111454138026969628293194927631328394736993255944557699490450749276410490658215914405231275823114202876662812929669275625993905994624290058085127151100328959971805951487006028610489417249339462826435425603831735507499861066946340286823888361932679913635010419427859080463673515286390537755775065390655747754810200715115737593539027293765015660409623622049523673976592855378050592380982069837181452512539772287891485876814039109525816427207967487129053144579431145095131167190430882323436811607962642159338880856080504746454056288672712253626126309800305000869676126154932388732868216436525051920089172720829176940120461741834308816294290254548466421197171501893774599483530473700051502839733829212486054246404901574811473070962551911415914127607116520934809578109472348478676043452421582178245191081032361169450566363401273172772071101192563108681141781638710741168015035467124900815442936353634545601934733716981561942489086846194220563794643686411372756836287242142029712229754154405464845187685988685346537348955542994889066757870626778624524019420531199614236266670089370661390978119689399189474355850476408365674360864480288715236381201943695060184742067198037432044429238079440897337310162946964113537857409807649210196158035875836649177868359480492678544664749514661686174985694185409124843341526639187263251545820001607576444395353706851836112394456854579978989335849519031235252320654003844216498191492134746828470916758522938409430502084944925630158249150297773300063674282116050258536065548597716213039068387751173260746118942175518313140539168707205527397464532496886337730152194716579156377771135254647777862341603982582834173092862592638984983391259318892089354873287168485974739406145934860079951130738074857644715019608654982688422360068195030989518808201432690540820550177063092786900153741963763807229401984889161866128498471338245468457848112970531285264318940034829027161338475795493913946647270931571388384625348287876635034713308459253514256014184153614118649560356714657236605806608679818014280530408426695262500778473764994501972041541553066427396099728280045407649857793751637460996825679147753657721571381823433266386233301943328141801205261243638421163486441088485049895368583476660376459417524345001968501300658389752683935144356358333606517512373757126623364279586857912496582782292477935832021722557808168017137690402484774566560584697267525756810611980172770272866903870309254910292621011648354442288365763106339426685797891076493816190066732017510029757175969740401898875322637124259462881232787684152280140388637108674268560839692239430107747788264847872024447383423882853903852699521268311927744986482710011608645024135421912766300407969126931672288599776635854817617893386754529515165133151281268034559077085207826146215478569761661502203612908259154945548621915828861322207267872476910758895519911664717460136535734875207167261327365328220286170698704106385904351678991868392615019950763957821907463655717826573658584517366446708662946127276736467634532379098178854156795614418101603540401592949002498794663650045340367645287331373965723314281031813709103267588770893671736116055645752004662024909317096585049334599547876131332096527284052667942263792526964684142730165921127337513780206631138682116929196491462681307020244958991066757072709376713534867582363802862349700829969630526529847303042173643915681502181190823848738863141325490067591358961800200208042435987817342990270418582838754292003969569085369936787297789742332632382630058606159287832012064792882046093676580189017381245924265970559038169690359434853250376270735412015759240578461874776755432133546990759839567122286401235644724893638496088893066291832868446749188477569790214177073494037673142683174622921527148642566340333965050056179562442682385008226066062655837836047144988723836786802926563770574408024148927402168187506071749468511196084938859866043519142086983695550140763522037312447459157742757035359007966827170875403629659019389302970234003711974452960759082202256052436559737116396766872013612088301056734488104499155612663855689327663724764615992794784517374856299982013858859745676501627746781878981524752957177046005604863962226603598781939374379608942940196017043461812367962935822519055624237425602121711076419520736471189241616163239158266494853172806953402705290861716650259070801852147616036409293355453724290805416295890246661640533455949855015916856167404519452452649413956629731473762052528390287132601144163949426767149267339400784044025989979934694458102050433141443132665847546146083132940392134346117240555366025065040046145329862437671848149266188609487093439307868942130960769763175443516804692725106268259539523094222401972619907599789010934783452365632617532063442633183352890695665220256690635480574861141501524006085136181635186589393740679595601099806072245822943351408297174048796948985960798437145288384800873855434937458302826886498277489811123889810198449159746289517487415005740505397137072320360560659071327603298007798198197458790191020614144269187965379148253183503190747261051240353566204513549166641327880721578707313117536892674114705893947018063913727325464595163961232971117665194164665761757172105496111509453607372598734228137243623980527268082406131135521855126690470609649577300308136089956022008031349984074955606349272029986910652396261826297188785354659886273636655108667587916373294636943184697014601938672193212826445944435539678554456166057965679209905399498529790256545185200268604767747822580155657406441135169246091852815038140502854734036194292767573348313640180342879369619229132179302630777887855727750899128938694053583203337358735104471055547527524503756708256302087953039404748287856499399659544876285492042090716727713298109992776893519848282567193655158212983266554787553091194213588770120194498457444792706177954852156194469839724985574325390023321246554335791378546890013039034949293231847449946092967280853534503803126596691148684241057844259918629133761554169694262131495123603684290980256653666138309497485936145997142174170268890910954660273387208540243304716625520701851641218646315460418769666275802740090530272699317745330780251388062266456077851672543298095670421423814172577038842100060351191492764303546184200205308723212940844103104421085676307629306950990585903729998960534921860114716934947663997355735187129938349426922573340979457309351939464543600138389112298376706995833715181968460175567528830154740230472323562282165534018286248074378896382449396449023015631391910595213841394800428709936567565245039005574924698186044942136229173705111485616445432642439331042987745195886308610677859728497814917196101167356201901593952470783582634276925669680534251131135559459426302436471954065385773398869424814419370020262891568600029888357029465807113308163263293277913273322788745559629539851208016890691752045986355941144910686836198739849210212535978453141332875767504139648269577406047485053675034263887639481208250026413817802404435065428237371576712560870618246104427945569374982203799104887339545221866419628761532110010345178114343770466461711805219991648855909092740225470890483587321372480814815485889259017935108402834257716712649402738618088966920709133543828190388231762003931821916688570215086192302636978014643971745434526092005785987040986454051557356555621067514168102934096401822289946150090139793440670902990301752890816253068500487337588313743521470422020010070139346444282998575264740316159832104216356296385450598260776244000451167279080544477861711558676761474241252383330857639280310671648813894037959555131170491754264336845469165333389522537973279008655258984953898477443198450286745774911614304072701535995737468739580351233105059888712283379212133412444582827000599612079350907319380367581419560237588346485955030053247111147613784142173556006655639403866291198756306927149162427750916776350064390773498394790970245842699762542357388335838235030431958717725343635522037281443819541919556845058399735487078761508961369739340232138015214612515739652585733640616817637139775308055509149612764162749241740069017935539457452919987059456088546117855508246697270548217879181269801774387000652215259278504329138264398749920761612039656614460321967964863520973257452894567267300439862149191027681500403410293927934153171621728485354451631685715404224549526583165486498827970442656639988584907621459672346929262134156270504990754187204123177839431821304071632497238513460754108277787710389527686859933406062335310704799865175604390738841806169171905161336401069734832991040785807998035936655484998889084295954629919072470025429780812108065751754011799960943873926808711495133871031804508783259523177166246252063894549028961942935345397461566881648726701476016882130555079714159810469034702792974055836159380580995656315450832025720713687414733301816923193842690682947433050292548875593397804811990341379360931293713584043712154279618203551617168998405255478205197216256428540317842721605154883708262014334138960685442716139834038837589029610652462521662071194442850818698731892340409984738384760142308985297437417743041691529327173963355887120364341901669112446553933733362208600117563138303239041719432265291080756393171634410127973954475801846648405368951414250512245147297825154254424848838177806211425008524061498285106466537000108505975148808023154846464308937041510943535720930950141031392266001724099348025215929432353778740060456912628422706686583587873674874590242307346457655317406843683204427879373322101364405309753160568376512294881781685351872766596032150715405363383004811769134119658684141736793285231900030952417575221066563621341235946062037095790573419420090915415518838326866229654048245660053650033680687444410657559571020013281783755120754791846315110229035835932482002607034560977782110402957915665709564255355558904374190229017385507961157564120855567684866966737708724681691469104201070114546699583508603076661829514703720704268232005396834074338085640542205825814139989612067473185893727449137833328253565354569829762145410684728097932530334718657152771018121851134958221676725221851441963765489985162974599581752779720054087162192499212028260306255412870186761068149511091207853055843187196683861603559126393628543430384219426363794832668177982508957951191095951843841379106863057211259617326316253817642248553818879512811575281127294146350505330494566393129600371051473906317545615176098414967538448144819891689964556012216410308841665966513578237569663294677358100163419157937255610524496248750020827118455639255888482140977747556346259425646637262131600860375503499136609780340924538266775249288408673267982240795327978716698718651027213125982500044787752272357534627499039336084114519070285525279771083089887456711991911845855093490123060652931260145808876421922896326494971310268443115307435474112615983727734807983632951632368775765974993367035461255041450639396093145547665993222460506199887690919840868898018778643029489833891023109700726671553879457777975995584856179131760783098025495437224666694670732933380506597049416087711498883140227189816213214251345911429516717563503953339213834794213585993014662094984174083867537506978762893534667270342141812398246934625771741711404996349037422431965453428960061030646471186539756323183602395504099627833556806843439263673285638325065146560297417966341064314028022615889808883748331232546858191132580072026196264268055455003937126522143398842329312113450606732186249950148979165733332603812280494326201967198702636804891470080003135392810845904587902069430936862724710796776306957687387889125077702527460110666240847783941318030761074565542017890047893016912748329377893477445951849419810033965858369497679671886936465215521601183268216790244573004071980735187834994677657797348529604935898380456693892380564008694388380230469257633711031050690906726942656743909325860085459953522666707794222861374529152399952075428570447764938162156393423452523666984915823313884129567788427812415061633234504464481231225335177326692559782884991023807438138566009901075026036185354075971392427433755092545906250562851767756666840936904838484291564384743519009445880933465821742282052835400941571567928226735135611961069841896298840151973959432149491941945868572319547098908677074399763518692468835354992807442378801578287738675343065150401871024239166417043326559381781981658076157123410391311617106999718038743312261243014738686698715619282289405584468199166755869573790532507260450210715167453057894004211005169687619261199181623451259939894992071215929618532160589184435178728949142579904938143708757409554161093435350356495135456352759985333272755862135784146645812059757228936232614620285004818071392173215745566789036076934395888324780458192441877387257098054098224090964097681269805225699096982118517434436169962145509949464494672671979900052574483494885562269204254931724938059697272484297613713835592065462712295122895450033379533647501733769625768985299306917478049542337850771850822744582339609735883489908254962004084856730279347687069307443652879646481993374816863580884105764682704012589739519247258743397438763593092167312866852545911040946206345767971586861652690253145262857331294358130177059088854659492954389213241226363743873314370104169509097163937584794645371753809685183412974881222700929169699089445440200874592109580216264431543338586253681498669251819125234270222014928250416226125775088421812392137191405342943235301735061142703707854373656018686456014046001447781992542636565257067490591349211743513075581796704103682058639120839322024205708328520827819374454967474529172106234360163874986637397405951840963316822379443260801266872889121276181815756331622009748643049840149241375297360903443589107541616848903298859327546474148673210598809848196696082991990904056434008279293972367952964840520526109283473800177931599942431585319248154895437296363621803715874028336726375524940121688930767639502192041179580114423067130829405686004362020661554876401422457737070901996502876592959059900628557249982972274613999725702778543711329528497224247893512157840348629831934562539956619781160272664355453001452238364666030490644837421666354260025940180414907595905401576107950477741759107787621485410314543249571921951530339607099178341331371706824663545800439940695850047315292518740582360244256817132192729082094979805046516688348215269775036591108421981327968563218271610910777410996929510872844277415081913244207685032956660004596849782372654830972169822705748608306426722012685348231499229029027896907604461054187795525944283229113350747066509514672396936278576809974669142569212233728861480204848913040419850581058283458717661279908144671326672974550719451991413163985966381172541750244353136289057171031382222734484278902890410002307792229816006503078484764950139437472878935408919354079447912642994012036472621102750303845382355274551523965246577321919834292255482458288480867198189829935644598041076887036711980673864272581993912259914790133973528218933803367526273652070236833500718383905413818878826658795073593863617188131788524210214935520710675771601570475774085247296017297279021106291354896465116524896806201274953084532742716344088177493743971907503880902598105372459977903690321055668805892223888324010569601064699060943426960374617379806415382840010787509415949251948071491046138243462513416888008354868550686231487788244447119088214663036468737195427629901538157670084142831789473621118083067126244642940325475086113814932163043144381394761815106981827997076899044690905920753443587140360054305537986100031509080344657314644747183035672623801851381760764209286537195321754621460214525221187392791824516415425846467662475935687846497222202962839673084714685939481998670235403822442842632925771148185923176563588814694335627605278720917494170894583733709068014427666815695330953216817018918664985267613136758001795214748756257631438333000801881771192363414407838493297092333497245120324038934105244801945166995019461203545138571094570385565939318910506092044551207830338869649035157466531010030456437505125710575452382428078809625011578901771254702904681263365423042536348509175118968095136381189605119087054107145824518026664778829074605183093372905197613729737097326110485025898518841199175882745044888167383388949512307021735426580871263361587150705948140505793154110019384359087208462345693770578054616411764862722125567339621749761172369999088935946203325613555703627941365993598180581153642111293385097898834796500680878245889166394387263554086364274813282551433958875869375343784869335869590064655589029001295563864980519579805960310580918210445714105403089657804614518104127722793369487414665304055294661242940662052982848154185219902606755292883544134293710575101271289880581434288889164641506290556935008351498355464052797791229315686782749489542017425160682879451316955683266338847612505292781966462717762676601114169712426998302951695910050363976108448569986705023116215530854492998507004088112094924119236519493765758895601506523186314856272582035051840761675734669193615498596278797616829126814737969401642194928506969118948256293537809420854039937991989544267494941038234117587687291031661300183335277984217715794278688949692018158052709593345760191458804720617325834967311750040678396268864197011827794703069723800424208832518518385153095504831718045441030823422269220489367313803461983901413184456511109796577078723818773845212000421694604371964077255671161904868444891680241741657744275176684681697625394221710814668964241740600287125036960349487004977060253930853843263465172629115670299392698197146932650111676345485664480924554387454731146972460960379894289571721600681810259565548681131729190220320416694536011269426290935542064100417234173493873219853009029066093998761424391881539165465354518988620661532408128967120135386871685765557369320944676841006291639737811579140707157804272415029351154948338595851713806203911449067900933882590268908382793431434028873568943503925973204992075913254208218443936148898678964583110735225743700743980801402030281236061713985112773324418853601280269567545683778631938308802682158419410551542904745917857970815922597392208176375155814293060223826047350136520864511706090235399501733135238690046019694285790172637743564401614748719957313742314070035661166813781655348075893972414342536981225656174280008626535460458579864449010377686640340987663346622701605420757658662991277255315840531093157191010489646824577896692709019803414741552983455988299003519213967036214110056467607308349594858061144473243669273024784728185318284223044108793158956232102694063138695067554820404827268462260217349390647244581078241236185500798093432707045432184866508156329009959428944849580134647940956076459822823263948113481319382452320542448431723279915293172739062414462116526567783989655976249856921589716777069080952884288588257268576854450589060583630157754027223033678187270119181858643307954540451872203655833542381506843374502417405815248800600578461839475801818063412980512875056478235457230325643535334340766951927361625941339888760261235816972649273975404206494498738440249789076567766885207401252762865141150836350832623027983764711125772585995054044283388442358040884387424223208486572327985607716324939403972003938633581763011361564663397913679504049034866963450025781595785625870280673537239160268074025514631735419087523224727689939883013502346866449112128266320552293182157867089599998557327995423018366537822253481055716908986589314306091234567722296000535498384339556996591003290604886319145255855353696023178343577165384875064983886744771793162182280196321430322539760791391172639525141317518611114494343087124154042163665908750704878752764438244811978800159531749954408616586834759549880295155595501165809337521693162074649579432704641970779597751514000520966006933372304626864439282921967273945791907624084842448007843249241787029583997415177715054801458648503143041669143041027429358374059715164994142323749578847170753559228167952315692316164026907425485243722147943485801292349861122436944961700185791694110107798859405758794364230667035387435384174599919341593689655469866888816402218716325636360521687257660112322027055847288496710702108177995446600606628873960257138169927663147333202945259630042015738908701547701195319120982792745942065512142952020838564873359417300863137469107682843378314462339893102951717040942788419879343239155469413914147378533979328902236865372123673239658541605966839461822266123811553808534920296745917345930250853041686278882524752792108916596969799683890032332690479330931412228926792809758742112138471967000916397582333813221571845395879892720612235384917072103110042660224722839002147005775411891469223463085644363136828469440580535097710959508142366783713193346990647688945975152539463455119417503810839311190610865273069026209321756918642168829831744222177127717826075546399406249988596049156094039781040422679566000337798653539158338498720394345995681468470282682953902852378571607356511241327576612310778271538608411829429544891859469024328589353841044501094910168785196826440279859815467738981466867735287734595691712692733782325964525721693522604783765222113273069285374075380711608626619389711808954750066195535282721072442127504549793889868514461087141709616702247758043473799856571233732327319508920644691780358393375254238190523540187193750608374670880354021110479749815587162652339486838819602909324693269768395158738999187212384852225242633686872302609624896851034570319548140281407295470438077935668453657263102404908376837793349733362359304091391651054211833232153060681007434547647192039554750751896623068700381959940470348638176672147568138669456607533484288183496139926880195731571799510679045749441250681867112535698710508431764557378773171191226603153142501748983375406892401840555347935471380256628061544723833256836203745080478018290807026817283775842120617925610040056143670183545439929430345800735077535149018494257332403861602828283229155558322894653537064350229839990438655451139802124095673466866421332064181429861819210331165924686906146121886447753669580599883340410532016631151993670489247939332321097191241570406337852128691432597970742402102902878043978178336779408843692944852143924092440871083945404589342373029594571415015458942211737280505108518230618634898599041720205792936924423568606253563518064975494332855666027386475030998706744814574111588405442796095214100171685966788913986987790001225461881542083187889808528786581818429200547648036755379129481841472384379598857683167981606298899030298189460136719561609504810035488831284003523170172443819261884497895814598712782374201488348352364943319086397995770144878792017677384503291875342445454913192201487753355979428278960003059116572537038780361782478944041848863183941699094410282529165604833107084615400288474154463993174413707634444283742786315982562981531189659903196655561165175112384644130475634585923605960218041358948583628100867636482095995534990511639900924453961061662784278083609957774183393760681754193886643146624013505860796922799441317960940713410801530781414385058540252586535603357975171166434145543197991489593654007894074142521087043467257404963005193510005360564193746137169837280608061767839138550535471343632609179789377891027812577111147867881007431743058075906914693844009757565782583110694971352977697855037806821225600001504385797539686859511801626628148594306169167390311282342153800489712070242201217151195074110580516589935366221775860716592700106293249430816319413245658350480083557057523429317776131131028437004981175775697562277418576729474060673796214004245152773376096507429988355846812777704829743290751981025373392835851073140385608901281202158838388060144295854198617023263046899171834531059876892214424626079821837248013814378736521481127159681570057870119529312512374572035750242461601221562046273099925371756122041116711142987955669285044636827273675547828102828276565271400626597768285452958331108546297491218946306059292914543257894732151925892928705561450256794455373466952089850863865207062145115811269335357638247403212056232993163593515684696526148513514129742536437997615183717771765742065688673569157603614127468704994129388161509333818370671555870248926108611769797615994024643571178554052750062956690225347241438709520288625422273497835068178083668203932696223284259991866276120372001296850929629361967367126390858787249027606822560951753683247683657316700206458889936943599752917859246492683732061480931175225272076253120804698460595106489163524678816720821929471678283361548676655240960669885533420690728717974986574531202096034539667802510039818401115240335829340847194447260460154026633232228177637045320256176240024800776954985076000877132720200275091042136587750903329120800915908080371156592010454702638211715897105419941987858676714640966233601737075387442999579046485244854452997735407795629142113845049400477559126999007482990929219794705030402288487563444225146957903255035962218120838221444929763145858377102541105601602180891679475368058023978830336450579223378077986239046662406247212857965869256136658382430472171267066881064670077065434794857190160939831033895135877131073615956935020464857509728870983696282022871389229278214252118977445009023959012964943986512775078263931631939798756678386733967602393211682391170305924986080900401348318312137206694121320989394446988398627150213916026538974357260132019711041172791459527371562478851893792525518913046610810853947395610640219383486350569351026827535529156784746795635134275440612352667523113279692914544684044296185449343157817093671605853017212818673555759805735057911233924595172259756117516310351921656994204923490118424600634827517763592890280744000293855864340255227622452304862995885528106491271618533530007606614027625962378650426680195957265872449971510519974511426810526943050646983715857517305986823542338857635494506041623428695858724548559858894052711837770618221849911937640830284014158459935672350786432289342939458356092021087318215510171323975946559259817572350039019478779744955556682808958957483039513116109568013694678266844174009617054477490954587753755903332333952466271206099401500280739736533096083539825895136584752621134443279406648154991848079592812850395612286665102910409714354096531251802641719283373769518048659794323741765867061141217389503155982600908072664688290150005961509277214062967676551685136123237206712540646587512469476580939087095422233479988509364712622407678564574290155473710012323483983945461531848199911839756757629888325111334705921520107537470640179676883466309228818291281464541773501864181648335637144573781593376497176828493998953320887458407442633074065425127955033419610264978961855080004971321947082986451565791257284638558794189948388427962616469525405122737412183344004348207561594016461751720752484417395134674304471339666654292588888863394150885521319276966257424069955988824394175467653918889211853850644401665092148329189105631947075035135405773616935213289003218571210725794122329122275768155914267048631208614302089595851277146685230597351776893172090741532508441522013618875603985321527528831394519112986105282891789888009483600748791480243841866455201130287203807868213947531084173515638306939489111283171280134719267986129255445444388360285397286206218419333666075103117290474758740608970797879957625238421128487972189453988310237062260849751473126108242718138867823598467713173822394581301542209182979238804458911727982437327476427563387256133817553198039642060256051590286216443722161690701863539831259339122296477989794006636293712831358674337048243458626838699702356387354181985387322775894862100467137041815255940436713473390322974799379494084849856118078803334750119406730479823828117368084329406614755438373502465106393581833901708472996546367936646316816212640403730518826155095357835270625029218758844902026939216758853008996151060434417409099193215541586940538827823044349380104814120135512716953406336988047199798613022060100599871609461709417788241395011692826820348189618110970713430233761216554290995735828008195702822856631385965374369474841401682765637916349579484206738198220627095558879329816802363710459757905367581235119703465835673765118385325806774892172070979180292393465271356596063551147374853800265143623809354759282226309771115899188115445647660251421960613422194008258465823163264389431774035807164179972394782785265531264974445485803200136029104088633523639228715399915098177872177414593941315609334379820354319776456551350450795019892506029920501103195252192896356983126648817685133911318680041573783107899845274520703179260844064694595260418791094844785182528411570919288797210402722160664491390042300701372441427464676964458932067806958276832234777477699897179450177782262592694219221631648043583501967220402425597945590464514106084809587237012435750187331775182985947228555803337559779637001906456180537432807737334839347371065965326041139801073525744604240464550933618612571547976113850221000798164207298349232450540310923374655126205050989055033889606205272307491177732918199985828908981849217090760665678628338892069180838428530540216690548436557124829003204057528725351704804120559911059402076015740246004833686780509331117998791766931351708015519984639637806581985756529152301560169380125592790061813131373309885529441649357615938005316456882301930199225250159417248992945800539298404655197320292862014714823738617008215588284615659387188169368411467160091197777536353837696019283849566949266585322436148096722874101013586020399223168266981910136452888211578880099546072161943806818358226637077735119839460064899603241989494889575021455172521365132414551285817783510440166597269447029260972853249830618212553830025655927846908525120459353572899453758294790040071835834481665846399682637169589657852773182440147047555255417962388441094331226717605774574794950053768242463111706236182672224192738891290113678670652252271110795136257465101433460174974431763852296927106659696585003197090462414125248215166771423892655281496409986122841187005480680864699959404979109558606244276398594977555191878990675754028644999019611048794328106279577894592808567449866273487533145044617346173175028280389689836117235951290222250228177374312906526917515401494057108534855827748216305657760316495689401251527994274458445181965251083572034906742893325139590949013177773983375324420365845461485487526699075038784657274962855901961293175021263248935948166251548605035921179579681491418589680671727484073089576620209351102010246986705875452972331996655586371096760472610472383413783701329855138523384340955177047772834430230192312584156233701868314617618162982348665078475811177017467344584243858263263769380619368763898049405022009349605511671308554137403666400161025935302182483224825073172252912240533274970779401955179203662127839876091568488462952135129974962905618947129366289130846365048510383928036042258509392187867750257570123946071002647169034969275853347502031186829476136664626571341713022926651193706919878764673775424543472676167297060284891471155435183844267685128071722517593120272907737715771335682698840340223716021712997697048733708285029433502249758520164484713966222664840758223563431053276488609338763463492984297759125455881362343223486279137525399598670429358943492280449888938179475714081266056832014450091166051616546124694533026454061351792083670423382395182211794379229786459069775181475687181293321982782228989292443448497533517287583988949366592374798860959451074797441105265869872450707176458917452107389922984438669756179381996474938027276841493342519797947818430478162184963357241573881626556530443609031481813280027692218045589376185190091455044234650055884877673642618088429013113120659050540659734565798294606969463348811797428694592244665875342730647073427149408798833615782567244066414797346762498781565641669294359739354736148667657130117124338496529796786612592896642545124742700896092086168582816350481338024142968693789091394445754951488216488256830743470626944135083880434262965442357034899653381730064002988434511090423544666222531919073459862273771689789877973752545892719484085738739078189165578209459019696731454224486032037812612961981780249665728727128227521986725748654627012840185363267076329055133357733796093619016446843823580259926341728188213523710927493705593444504508566375646356223606650561254167367144385081911833647766647099847963493211470548880076039575501249818886515069361626754300788160296120526908237270509193772272462059877670076042378256063803953739054996152540050865384352165902789363313404989956543588115417332671803897849069371737391995013032704668912936584657871855738469953050795838409716381594226028117805472727745122079182365673088159324471389325358641564541422064682701048791615441148670215569634371329081391845954023182983818132551276863835651050043409184815545515627925429520393076536275405366189227901543875349021755542155231804408945497269198169363729001679885121413610582836013073702856223060762201229167550053369477506783249036198976168345324191668323179054992553782810119441326075625468874093658544203280480613643935795571110597911005857817491312119058780210887170050640275123648382035276479977806230469888856969691668515523893459297884942251621356274114233388695725368335351906954468579264225524089448954321699434844010026114319313177561957741230705666995019231720718743930242437239700995858225362868482024187606131492275269705467102570298739780543729375883270166473025910171202986990715081499129487502913646917091003230990335449355713323488450490222699959515393326961597310334025321437671334204754002913264659012325529809831884465037735578901834295489442099794067047365405920351397859499609786357785244871512466606373158200285905189334562717103932019878517232373537819707676464352230543701049868745585995217628591792392350319246739436545220065674363296769018984108045658124248992679089387749598467329630404701917044906989383031247591608413629687136330848727734957901388071209999459041937319915729306898710046614837703698440959314009449536594361931768723288245121820725636978704337791073147360148289321168457130231904106324555797331012303401440786929756415075170828652114078744160278909578904268608928474481249871354501871801244877409883951958058754213125363686355090188800085973420125622227315852087348816482605532588664281137561278180778891229141288946175568588080786781278493222022026588907751321309078539536328955552801740385516365692471023514565366223621708441232499507699427454104562689366190287022788364936830291744893363046673705982715086584316087394028865648147074165290499507675758693045763670901933285277247965787445128448978198973998005319232623329104353615311404086402404948469174662982665662968129403650648549554590374398102008615708320599298879813971119457098391740128575001720585298019269494106618354328781656510780757662246123732402791076433067155474307517375432076577868598534212468374070631512174831725814652222490199504749126140920070870747565925524668497787554050169876126707770974413618292029473178945222034802343656599303104318291757465890174112900162502087562254142237693060029275987111680136281755194268951746768379405601929724225980064728333895614152411341343919670344479172010552220687770221019953476197884871352850499032385493816553872904426409762356473688115232040460404625046651357001756372219121734990818188604141679316658529351114727089514238013942040397906959547492945816446620585749546783560164128250040859543474081449435667083029192166238417849948787406530956421475489066216781982686733097669422954230354139876394713049720274150911453188218678075672909592371590899119322438997310995828864916747842148262556567690294380137111895266921626838383825663779659363381561058715143880842816622889223331518112081086882963066129071392296419323412281093177710645293590140549361463733496045572466434099883182928919854860050573570523203774591491126141238710799414592525923097869651751309336183498123434712605724347466233603907790044984622033418144388180687357891452468526704026120603391432290353395085202290174168248591358196996401647699157787235365191848913751535195259538158917360894472502702663728855854858352901988664685461358958934231511161333201675520512558204223951106988727335722787447158392971302792957748749159591787330563870883612656296540076394929025496434556787182254156926036262700670384265718783021578033719922796753674996557155949103409874643301324234519584775001009996194905886612187480164904988060875089749726244828702898541929183334883149919080873922689722543883372740021551623414618048387919783197742819307189454694054375632473061416696498297676028420867705658326068509780380239473883933731218601083722100977103488404494065662826823710548381266479031030739601705726850403412678750110684655048334211060159704572697008242303970512531222925275865078919256079427992227674245445023018900882501907873892807543284430181529216079414712214478595448629630545635908083061217566042353449722125541640116888818746196775382254632863431363415462990389896952282421621036311700699461710636079139139854667801622667788861440520874490779389953248338170173955928679424646568359456233342077983465813128859812777071989266422553652424358048009100533111423284433490003775298834519611349493680853713633977892977546667457302951712059653605639193915168068222996690600684000501262702253359103863014372917705731341086343483011836127077703821061490260095033737295957653667884723643212881488002084212259000813946157817749831897671759688414904172695513380151456659398224999470830872525040485142888024570167047417103486328659837054576514783200823382081364654212359133851214524021949720741833470838522278034743734146206537981398683631135560091307166007809532244998185164111566558827688476342578930413576436583645534463022237335265875718423764805419053490669197117540326561235178641056063692970174874229799045921761699916523892889901380306765987759143334604400560732276177067758707383895903629158868448210357237904074677276235214567260495928823523175968585480074275424293700678724950310329740898358505645363334224191489069110017356104639201850860474672163235367265596817811831482592974626259046018729495429699677491216577116934757245898481948736377712544824668670378175823247707222030648267073838438605492569022767074196033615694877374977133818969581976233408426995208836311033761913098400733996377672982509233135954958450503978219036183836216967728070967753021010938031148778842477005076185005237493110354784729067024408008287976501877608344226923364689898324396357093815116826872995290664496606752728272425212077534918863431854248349470142572593022141653430498391784347197060061135567445719952967569890967621186269233184240540998670445404625177788147594861100616551746546440815151448928572544737755371232893213645019497851619566798316057344621958975380487936370657931666168693403966965778106695562354970136020458012991427717262108890244633338404091550881002734634067375921529923061922477730494456482206642277883008673680886773785828649179972450558115309179162576065489945973101006650425528915212536491357988215561099599601283231351205952800806592096961334572935144927363695166633439105179181149542816476983231334234699683127154356655563659869778356760337942279679988407972999830089842662268944349774233560749967842019346637965331823959932029928332377588607129099699831646644125373983993160117870061746140975458580292550008854199893715245167392115639402029682626410144907493935539567013108645747264055013910253042767555426414824439977121750852016811338129544570278731453727049245711334310061995092023252363489693308523030108806289903966091796723677072477639220812678652382094579736123635518306169928134615982067374302008209114141200500868565187030871161248653934890820263122649900699816999062181615960010371474965778557881335472980210637118171295729275316186099655990321897393659927712744534260030159723884403779216638395532515390804516692512932927254112254157706551770060995196568007377830395230818501031960457980312363071782431934665474895157792626986115041518162442631509283976069833512520925855688434375270020833951398509111375529294790730042873346710762955724092360563876235285548386759021910270794111582487634870425782894630265526120892216092196283408725504672866985054672580337199087845597636641738535317863643175360105450549796626448854840444200737168380469587980629967828080915395062456446779896425714628289173964745398962231706339222637429361040743876359932704893069412627729694584450746970706862873890597439457931070992176463771538361444704769671679931336628211621169985697296314351988304300983361834595543736210554997528717625513278009201784561317321270722054280626162908347060218039769872973047680887851110557010343835742473405277485672719435130782837202909179162836535223906598381863814896251661478735244627886433509555865633685256042010426846277695308461355164636907358974055078089880153046571461250830619116893512856050175492898447561406240736822886098886981431072966146470220452465235527289121447715114931415657669408175053040576649222183039334755524892277848403076429225708064473819732297424280034053500254592331489128851619249815360652553290558896953602508215729045671232107813466510041880396105925064152741250482936991063912842847058846730934954224720636168988059701789535442271975481863565257607908828537305967883855907128803966414795113149630616327213119587442569665546509929279704163114660172416890515933216680710038146731987641763996999811705833066648112872319089904187177952156102928074372086760562317845719411574285300240698091475669020650770727519521668474427249464901406988506786870605593041384349473298189489431831779912092117622926458827932646211859366255801459816999490351481607408309984986309094771535905862845792341478542359294798478268520688225733837960815202281309285028754942384360605320685946617296716727856384037973162729011284839626375601667580799208627971249406263494790960966477395924689493786272618943534469150229628461736594504562987390131232550905163205123544810197931767163593460908239828290705696512610748394427295830426576839323563484166917270115449660871125109809059042191696144330211090670994770017040435579619148829073508521908076837966633684804873227102796845893273631603705389505268640661110353589867290320015539730285413106836842681717436011843404581115465793427581184859744255804129187958356477628639541907241003878298902259448176853116236153834989372821424583871306874246270153568792693884975399500946221646209701237452480468216301515244705783302097821390370682903673453268963110608184481385695890744629834308981179040892723623014509338973373001525854809556555895319145233473271613753424979266414344679161600987866360906962643266150626498639913664803129723366203140122106389878006825744639023893652780298000838628084904724261029142731787384535820560607036260796314952787423000886931022561408063215272165511975704378713428019531250621327431866697236473717103015523279095630292793887724281828248730758553359231450803269990553282143740434324881690362215777217467409298265336070544734902905761888860214938167090904252655173098544476836201363321034702156227462423925620163695444269886208526674858973645323108004219395415168511117934403264994643892769696928076460467728259589007709036757905943276898557958134857754910155538810693230228918252684101717761928846589821582264242152704106129495828426755530832105303612330495546472306260463366032338787839212033609185286554903710388382835029813738265714597641431932083239059176910997369041928099591502155798013223227777207108946596441687432653865025898936823423261614825905382779447485103858948651610902770748560420677779715059796751780743199540743130717328134652774444478830743306393803533235811163704995619721614737879403596547600091861805223473598047047425956435601472310437163875160575792062116871389684722747291503676419689927184722017616064023918839646211047501231914441027976745567580211157812718778924513394639748043196124201973363883762574849419109135661111102803864277557290712632324721445288911786430237607454343214730382514659431675924222919089523012060418096666527656282134359401974829545193667098279649061918908953883235862472399414882163596496962432660398171358267384489079714717920991914681944540091068129605709249452856183748861135081515868093820835435930157831520532009542277390351270324891582177014751356141939013161025321927770407728658993578782440069163670261885782336062542543303665546383817942419674397030553830739638553506178134201989225664274510919378246067122201278219017719996872857549462163455429100260510288167905845223929363084384885419020483056594589877733596760737411427359302408745953451297969695072515628126792891848162272182206748377865803385812734347657977809128130318981025642683661569362051081964970321915421654590801558031165072936018435075710487082106502792928153377764625398633192554911263422190580370137213919264061479527954294634882280548029992924654556247403374075803996840358521070132461467708813182505969936864686453959498328897414961129485136124897751829832642162776322659028346032402898945605060804285690055391232701273869927322988021661253627619796176599046091643075152806333805733622564510592595752741383981207200191413671259177190191700550435919628276861371252583830022226452280277020808483846125729672547367823187959649305210121824161297135338528494126599069171881683692966221464331536146132111151414114422779327819382072439724718930419151491275069559085965077550011546101213723096394259912334412439458542147835943082309178319968131272335070561573017926127283065647905860977685953710687073181469729642158266089824570106290787391710207738225780218022048107070663353553446138121290628502388826259339136294752745751720303881604968481944947344500405074454408822778197217051364902453441026385680297062983937316055546354757520021571790635484351529850816273616678804315411037823317965440277269513054945176041611825281110166857020743014762369493260964941917444249373336532896770113832164687964095385800118965585705814075198246481460313521606128892575599455847776681589406253959371042820893811051959863040449814790028760044994929331082306385962031367808565748409378022709382544428544614090465626856032326921762111001682204974358295655358885830709311954355966841498318565979748869082124471599416589358581496626555686400022545883559623430951284643719564044700879612584213489670400865071581616217124931493976031117009673127764062463157745989380760040980329830102451949449300095479997750361815491232683207528242655396353748642453011660096749028576537824444827920800291572823664429258987690961520615859522213178932163543561290866372578652886539780638895659080477571435155889140160611494800855840616411281658615324317490119022650396378007561378501059149773456892953036350695240084235497523257021082972523054255740335726519259536617860101068688539108323489964455240949492357953725026446315122868993031534376116152145160335197943020520712496373906377602571760269589330931977054197131418048224198124830130317582203764132006683402360856249385957969814134317973524990163467616058525782998575502731359164173606932814902891786854009272126669796518663283409983140237390364609978235765028849767251433332818358857246496784450058391084370225084056041565924228772035495915284925023096516701813348530693005121036002666639434144781380358251498518493931527951218720013107876524876043508721582596245394953621301479679515852870640447384666717813585968608556560378549241584318632515987637342489462072909487807053014386577236671661274430849321399248495868439088335974477563066252003830735997798885242394329872830727933730485621943490784526731520081587885313831615903102429422736750025472256081573582662249745091686761001885874864513642247629112862835009876537098151337320162067049975264633905345733178528180716822567920418968816475282622817862213949159473508637984246670380308185310939577800239545283304020892858504941464462670381453987259910986239281025635511719719924450390044417999186309284846956374177766230278249368900695946237282852834990804286212237499831081890228866464784006405943825079186978942404508836848755166100834171078137884206092691095912836139712555449035525766548102078495233434021499330926588960135012108777381411418336917315197271723188873070244629096748790796431365417203114501263765568084657503911728338063369907951270611486440344983571357855480041818919194385529101507274948782784550150079181412965352978908123384976096484317632188332343413776349676363142373658429841662140153232630758009646398508051527851997177064729817182009064325133077876467202287344523449216032196552440221718816900522492137369536067095546885747575498759883962199561468720108067605573482140435903874837203299771567411841650902509236453799814677058677225133713034039236299259293973756708720152409082887713523422271501970691574202318599875937957373716687008218189755319366343982485930871512025774720607556421620453484978738548775010345444914272663022904368877060971837387359548337180492684812739100527750855846138414081844215477219215064233618261950540343966711394205046832951588477134189687333057900900970792261120226499944006039422329576248735099278402067475121356268524618114030532784841658643637072486425573931521084220985757967146399333695315664018221510307416030877104889354329864825810035426924701751057791887815791920429510073419523147027347374901986361415645932269508454751099921645957717164355342071869454099496221799197090410720237849625175335332723452944699409476653914146152411810555424058360692925852058699880781136868040979928221842304538282622432317112617133000552916351696459850459153759524539589033707497900990495904043202852077663656229203978111872151083271374641570206537557510422509271408430740131656029587662531181905585850606866318092032529541649480798498869867320975439208827969574463817128959661683727513567633846518809689983609215680624567638739868590830560582395271475245668701059204233530845706035244527557513449576092623602197710337868556292395507997968967277272934186732542295485269631235772357596117979686691314319876740275608004879079630845295635796061574838787259928990132536711799426029143174171465319262096122112403193721638494378827970209222779808417903596420576980852790874886381340324706907329263977997683621481881046474543631974530404865179415893099413757293011476584069207277312752737955413256873829012566776285238897213636907262192854294386889708613770799897258885901274954144842462371590409850869457601445240432017668368740916472864119091229335006971331873629887780650214028626190869756437952620963260366958624713044033021908827967772640173031462001056330629659957587316059131883775485680318995217207562136382755042146879733140385861170971218446619644517763158959873123380489403156589816363204023800746737977027588540433899035683656547435867914628091238117069881327434317444045841193002456260453841837383442639099640851067144096232725172927982744990019900922571039865390847988335921489248889256120129043449264103396121708745409186206066712691292788786476482647648732911539053921915469883609097168154478247384594089358441159173800903903925235355305897162358315442564535293971345627936661794488438213793196767610726727887550496538961980430107549789793140390173534257727702382617460523491734300874285563907474956033504470075728785771487449551399362884107650348944762801227063748882440633539002289949089252942357476805314292459587414017101581637474580331103924348449000840688016583661911929143088677268264168602345841322620626699229705496222767966729197562717690537247285138772595151598129771515160314864687166757391993567361187452711380772045808649507114628041460172238799620130513354225685296714414836503769680106845644263590056380368011303434265975643169998880646316995384547947342111740132207231589118202319453583194442051500802967133729993294082984219343506226762960242932632065582725692030505763952334930361145423927240406969749630871669325090914426018193343363413402450579205536354541618927810026274096070446026059485519615171580022984878877674719253997189667962125340696676974679293057234215689076503946980705956031573601524294258019414655705693349942721663827829335409556174782191442220943429840157831064019882537036161272708357642951073311612212238340934364147288993060916864474019762220256126652464066369160122531852553865623618692801831918844082632186599439398539834790622195675131895129354769141777472187368323652250779474304587339263661708017155670372236961544371988670789255177494442212328834411627868953336330018302669355938302653397755150181603143160946565837894461696298445956395472020699262053835295121151400083017727962590775114907166289061072480289059145556354789437187077398231442969861607421501036099714820122149434198475096018403801404596665821946024439937657616323147619716605316670860286031297118204561105564920080162563621938935929663989549304227626349681543267229945200703225225781386048288338364998089554787126117386794700062803681636248852102171446633460309111362405684245942119609026157638251185718126276480989916989853309586458558387239276059297670813529194957420803086103235107059218284143889410033764438591841535164772018256214385291812517060017216106609137026043915704760478862055397417051793083164009770572108771327913209801260781942855872080967195421125266022520551209830152514381531175667119011254153370234634965469476539487520227846725245703096146251489917625766831708229778013225290593952329655364968541242084245610713752001621134505078296104061346853060455299439592276678662311269707928837018304742269422610673159318966778065250732030351579612863640567809271825289621108739439153295226210970070968827276674573524513539308804050771425071483514165263580939816552175833167950279037480761240773986935162605442651307372149027328172795971108084228110691994592465839689293468059101861250883910482994420534682516167548022218141922331468341992001535425441444867518162439771361403291990677072369096873821413142598062230143944701178275915623961454366923324551924328570219861396358561127900913631029692546247427868509556722147834357536489200952907962835013621856549567768837565512578098363582836875770821349667455081436101992236771224613403204009532867350934667849052040985159134586909330925273724308117768718533396885502152304708503220644053664809954640271643785883185730840583593125872538039116846076982180425835567499420222857329513103275456465864016807464907566937325839485727428346434674640493315005593984396496848645137846848222425443815986533093721347203861842783768102221275978184276190033098190355538839023173606906640818624502963875859856359570351881340712933522901604855864415260658617458388614256135661341393556601615735662936951931269784247419574576205203074637654978941634315416008892540707806732314204594679485628343358708966160992835496830895213317863985604252100058893048232625519587303813293057315939033891341959869844739710682244510253028516159402447628297355622099529906877783267511899139688405137775821174793706334124071489156139062445246276590721236310451618531373899848437967307632932204491989840537993767653036302245933453151466425274749844624338622601416572960111739566955644718977212254046526170878206010469595784903365133417986173565745899594485980945867920933261428267464560510290673852238180177999778527980671400134724891244935227542934416548998503041911373480799181416173046728632957182192854679475006200200687267284830885389346973029430015957392175221156101346896716877892760698083013741000779186681150012938050625409698305960418799355381990879709686982553290990781870041413294749915456232200077263015873832229148263936325302543765243032211081757890501558018418698667828905868491219508941303138871798582555986444246472685581125324491767513763261077350628965407288779644580012771063015533110718413416600508828823730037535279483295674094731197520242253794904038566269735148938498995906830987543954341639384867508562948331176316291183064099804732556073609873962887244569439782872501079031131989519853760866351199046482400613832394214432791096644042521584813699898707932879434241043086563945982554692066591957289230651863692531360644602992012648763346584614885907272774563042428421457828124754181190975224825168492515018247686195740745310798475633723617178898345756486600861254793594396695082189887713221440506463932609257084179694364279683541456892678520882177122539365471113133063274479329832039489033007579504508583813879677564324819567866467521337428232195612220873553433519116898835090517497439410941227105166131633957792510970491623997488872176236082342075254639114683068651512244304423231525305800880258992933364154875340710497941347679318877005623552843705138708552192329471711550146597189574231886336443855435921007869546137175546814262883598744918863049151467405267678456777588713867727943048846470109410527704254994474920007799624802420662054307875426573286114173018293418893654896715424894695981341639660355873825833443169591831146325054909893325427946090948618524419954109478342605809100978349997856299871443110757511991267705565976294698013564048054813128727805284393574912536870088802244154009304664111302291915235989414057594633107651895863205356202303472561389437895106273898934626754140579167254183968993112599149179521514091343329761338449812058596328805134656710072056528652771834678553202750454073055989716298836553712928991666527860482696131940333608494531194526631296522288808949940951585836658603018576698657020492098675488174366118523834660662686603568997488396677078722186499920281984586946212384082057751267769661718872277882475801813579891215156178156649494360868350087848293372009267484837178151895916656020171290326773041136983970947914997768139448427723820615557801933361610760253517454565649264967452002603989638361564819593139272625574317436855337539145633939142122923243840516433159825619097849306959179263421215035728491622204115972715347570598401427792544442481916079205185093334241624221230296221659618996837907987352436712810992423200349851552253024409851776882484160135644249449951683095982919391832692343601981981193951789401311618691547878991573174925042199750383001279530083263411159089100465915812173638133672160875228055485014090341809788758537045454581567114263367804857108446805402810307638770636309766898021041378842376672789709957468923718483545976238585167248394894768656959357603576430679637531865286887660638009479874187552472009907888450987623757172450271487043195062157727642177224928914390319627073488021572696589946901651960141417663544551931723727552789635091390279900757924469313547711525015038071471575489956095553760670903628893343052679620334291854940681844690236541186208439539042151958233721741384721412670353699775913397003374287018783625199592040686070576339015378837409965691442022754482340362327835298272809597403958907755041679914859113832040854161009833647755490416799844802710487247800886436500837838690382260366569273188192989854536444230540632369748574894433887981218629068689328130511152911982068356998984582047251264189522723282070176980259448807553827165562071460988731911396864148989468787070031318448030182232019499160939598635179553831306718502815403678453672603526414388719519998733985760805224879278467692171961245605426795739766804904475409203377628679358017886912248105980743923679438314836092441528891787511860247130048826665677633583448001196186733265878948045653881422880545259673997680595396630060495814761740060485634421549282325150483619709754611439249650519999538078226107096831255966092433818922656741996082755320997723348169171110529630456232741531547961585715745472538864563951476742422839407728802634360900642092341324444075827285328597366271531932999126922046324275616220662075610705307030599965548809739517354933642416028162387991929102169554334399170892663065318793686494166030388941648850644577398369846235659242134243712131556350194457396957497723209366423749824249255272670996752060925021185664441789766141450490735983972714474687734255862637783608387320280046817486915455411249067121416996098934489404304664984100607753275289066409808170354231877131542597542601162900401344851927204438188450502615220851900066205531692351714518299209177439403196329561021523467474911223386594685695458628358520858685945125033331838915835861261767748571024763480007848117262135350167758476251810752581068656845311769374327571807322942152127464925179055192632114422307157346811094806502946376187969689415312708653977853837903047205610440458294725765581075458545643386231310066456707049913198513176372976867069873454462352725431962943471078444384190599527249645373952034118287960044820974304059212375616755507488076285945849930750096555179343857591542386790868216930719023941027598200663810391663079719842474902083211341251493826491017295649270878147820510464299501270973485043865171930457136375244437191762853528840376603426132860477275683001330902245799994251861104049907494233848003247891199662978585084763473902703987820773210162418006381761955241594358605257885074009526283186544456514664712261252002929920451118933656314215572716667992999288837403847451404893757055313720975347311290201339920977132234220343331744890773569111480709636860380272164744185423324689388979194528489988189438667715149926683993226707876009119509384068864334215264880361210155858811340044787513982674122508897761685378738311718082861861047810034571454734541611062275393861953030036440390482833129494097845133638336502917098146077164166926521396342283128986307101935433877301860687266358296458662966100859973145670703617424761679178464318429599295780731725408471768887524188831897341384883588086029974103931449280747533619095819035371980577665656039546443391926300423613414087419834425454565510767189595071191871264285704974504027791527977453446997525720619344401020116330188351300801377910742178878484534662169138434331011303382522507998254663097642041784708555742235679662744719147096779110779122544496421207012019798895547519800086247965641327981226935298677923621725369443267189588798915513182821932958293982255444869613464576906490493050975243184829529415207996343101448608780441531501351271058440339375833303241916607057086010714890293529478392257304066826654777625565679218945161249721428544023955773153596382662307573661837881457750991285076476547500116472628181631221413965268688788503146177898732153126828608974920364174632852591433788312860972692528519585437690008071239895970648938848748494470942688994474269671454778550887014264337687771844448806584656178790199303497621272986523906084254629473272858615066561075081463002265227157182238231467557746545076548646485702494083939836508894494530464940087593994517412032630210384014442908662486504445842941595849039914531823757739792981277770067313372064852878887697161310189647220401404472204210183954982559469874992936687970429225515410962348012606920044046135626924474545291413415286152491580985867242407638479417321608096567701015241858165847896770767905322828787685600047438481189548357696329212975316483052863267029415228055266367551287862044362923266723454980760038269496709749439365940913756975972643225209154740167064492164725195107913885154731253219063337939471049715082852215686730131215567116619919808554836350901735769245380528096993502010781845798768197178248988861830279547995031559681837146811492626706849813018862533071543611460187419940365379787543215872376069304643706503959226973633343308329108740049646169230475586909728398722373375584525927423368268994068965034755946650972308156929132040226639893377700293103072410538044756735385660312028015647483897225445346192513958667044630753584935904376268951740073909779896581366115613268996442152466687208712696983280406497916364512777384511404202054956990939268592520846322023099212905102250209754934718971512745660023590225125192969602921901437876203185770911197557866097502155973692064659721006843293604221531986502660272208373170331582703469490302881454914518833276236687774331249386724964403806709493137943080821913170066118377529861004953656258713759726449087269895648108960785291994015999092254187354665618536527320137248632733453979947377093243912740434513298365703096229951374047382096874238906583825502802083503187367105513318987934087936380281813155744390349637195302503615274159360673710301307047603115697077727062039138193170851222173311275243132948734169059537588444350868654575538891126061018668644965075352072991297836756547078990028018333331075136796769531158283752714187738368350926699422791417970921801480563763778356248641249649892736399785986226405158278455173354434606263859142677553781638239648894452154895030870952614491062603189144255748794377945013549258704513988348159539978997545653607297569502690019346870008544451517400874129197953692697588516674497216880937852746372593726268261209509133642744868104276224013314648714871632620344166132411974553961253185323511114330820330046280935815587307243755031982911728171298681574301087423926660993352476854088446122610875758348744438243320827892817475652704125575963037427532196928024392925704580475365047970714073309901827060055533886429515959868937472469967646847644795121176078720260986326172390587208894027777507832523199018185470150200805261674536257576710291797794146244053648597889190551388000813039292771415798886008720930855182617839679170498990579137697539971731934306142979008635846676893080803827499247106457821662144489242709232775352182307045147358786847137725489456251030327563408884492747781804007080791107449585678409890693241152448714884832964597804507608315586421926228290270602844155981330811267835926412078773274709712194858769678279690061402448472807832966321250271530877898488031939797005509104287910145671503261393592742079793610168269542264143202360229886153232323866400501047242324053611775607679320064254626623081601390740348119430927359667040697941006935235431065969294869083991436864390218369838114862890049020271708301023002581224905608670976296696503936334805460697384433005848930542289148993844207271278929053528294999556193219813573168294647993443712370192940756366185283280107099050041886400323890909834613466317474999074591458391856151989895648502568292019040535864799181692744200463897448706779626048488540180133927049708593512475442271216247560374916264716856242138153384094123774420498421320283459295239812738232307122289497670547885796030946924016911539825221728369929622830328951368535965124602290611072714333872535869874851675457462878590324567284306772017148480374622326630864009683945918661509428337782360355618756912904161096932655866694800780211662162778746602784391263047025124338976847578752770855011883103958309300039825969041511908144703150281621831080722573682369160374550233403182166654905579533587661905770956293889963738573065277003150032948584693669151195341442621512017744836967572031340486857503264741530582046180589423563887840065170809184307087799696455620481276236175802772832902817783268872347556164312927092989717172272070400625190263581817141534917156959081463885285636608758996954118323070207584315842886894975424575136251017494779507996780511942722761850479504973864337159575937977561040979286930337207639561270159772629847894012386603222881059621521578000692157189892574510280273910806795868208515522930984163348557296473981842233478459020496782752749633065002040310431643007778336500584694600020587655486898675658100469608895429122919482780453117131988210087679901101303340355266341958002742704006669063130998781737675685697464472885066299255761642457838797850539411229084381861371933541287464744977237316170215475585609508025135248687540696241531490219148697084623356296268615990275982242855619378240758097073709656876783448868820350835865484743338402962209154249973979881773055487776524767977520774228483471238218146124978245892322296536029392605861871851995314737559091183670329878639185823211428845112343512943259629734528795454892156154736346095414598160902296294167810520411313481443420130392890830443485541165947477870194746162768556503419415166982484286310523860048126496471136432306508352799601263581553446524358530439977858252464408558197810391624942253106548067342304846547768566063608838493249937416687991764222356299915123931521099270970900083264761212580861430092758934606295359587925887318208973500960188293774902398578789445154560138476742875341302992253754614927304525298729239774032245734286240327535119491613296563390387764785693453712841596403120786951172669612716599329847648821181001441421969313289925934879888371270203716428026647776224438478127009625790157749983460895120855296466686696566858816602777315780071879065037180793057820737805109173272760837047637869420726981020794601474449496906914601155082458186415117919876295656786423962081918195027538814817892757509768682497152867576711200408091001874836876602412325484440921676450840749105179450974113093658639623784285450099103086976308345390992077017716986068235168198625249263052061397425593927672993107900835091649484552221797661590602839016954079467531526697394486136238997469209842145186555528235180322849715663628199000975718147846049438732377823722729344982892005819407960495117690320119921660404232476348902407954548392731034159963674201723032503934578986500469988631528287287365648665306858342878665434549103394976004617174610123623968334879374976480965455952233557613932264508198575760354301396362108416693843394959448960977275025525147919725726006549202438406702740122353842831542139207010427458438129411421316100770373976940946233115174340140190301325169356526481839159095096145520557098451792082544250916849477712862751403414825817708542509590469749900354470941915048768844145952019060989619256910710608093204722582837054868603213304282561207580747429371733103914830538937909914900233057726978376721041948667208660034735097471698500428596509126270650015412764162179376512205083777548146784421923777983321849892016920114542657669530874713110455393910389153329221855580655881519933638812771895899491550129791806353005570908446545198657346982914406932100325081559222634712804232946630634497365309787188138887953180051013210503992413084450043848152830443990781351573600068188540302607553798649147336296441891618699803869514433027759093208897645335281536970337310191665161139644859764411976621603981959564201995195418936691674364444911369267463630323738173451546084560174949073147440322993682756360680006950375962706020101029648281521481270899192969852138541819991431261168168170280083144140988248067840853625876399921920355907457222727602734879576917255326175752272746454837757995575191614685698598583396358723288807438921715876729814979400497199431099060641301035679085720431890964791696370742858227964186524727386019761269499833972852785381339196046827998015291431215997497613531791649417459317501811246052644206580379435681234917512289872891466614747484605743571801716215801735351842492267593492818232287112056924159401862914155539794211005964512638138484571446858776494884874629826121651938231632919254351561022863715588666502150374062181988257732237317023579162618591728370749132100853662351428290281224910156243879575705733410024292147706512036944311914810016845080283094041453974953867741216418211319209196484628042654041590113094238438336626672739600332032337478847655314432293713925001432830974853645386606583635221889760822184551377767953331670175268053240822245218312161930952305850266879015768333404272233086398706818438453854018970360203078177644059651262270766993416782957407250533372712325409097405094183169207400664687266105703520963112833939821474375290871298605536420795127422471737525384854612252740236901646131774381359588609014626241517037131604014322296615173611691629062954700078766658933507294378801034849098624450132402020624442706198548233381385144018558635243460827569770079444326406087230748143712183007264627954813604235447698642049505202376651383701630437582580263818540150763326527471703932541481189478251106455609827049924986257398418232187045934378538436610481393547567741169563506903503926963671397592556692280982194401065621338983208583194509209641711522726023397030129082266736685440840683967545824562750120580731938325810971158410558792727444194696380860419606046593821830698739519921410396992406870528711003895341659987057413601429726616439584451264270785010479193834665548382063641864773901180509513609216445895774745896938339850353991815514937723687103855759317511482913375861360395662348019048751619146566246438350595441187052732646264236694739514440160528348583518019371489304563403962392394501511922973779952503156416731187904582748913629901484682193791234639594954808094007363232914235962103812488704732916809009419309709553050403129631664786559481703229793335386742838888059793209345370062324514227773879305505806453053268126238871554401021617946854020598613091144357719491679605774800158975884604267247381523510895594457815338046247917421588758600664813635341235461572648774569074823516215429112266069398731742470091813231992869701772785253632008221007624421043640997229125382016640505247262843222918578719140360141558475923331933442066177996042366408333308370193577419640831555616640041345085941514188393764842428105040537367814761477072838924099893539405210006968572326489052586311666497588267308509724725782936064428710699431787009857063172874956095057836389035388476827897185778486877776402710577155256699964292799706063846112788859319359718503407465040040636360637577208555570792571187207031165457194359530527335819917232672094218509834727512429451214744239814765748839009871494390708318608353720157896669796556563584126510796133650626307303472845144540631183437503667510417027114028434970056097235834888582833544654938443840716960642286572301511365093932261272782694337564547470164006585433451241660082840756710219168525982440610680303842993735806859107519022885117742801734131705842618412903565261016142930832647246721127128316659876643963136440510982028449414179056486744404536688134382109872581092369214283954552334915973496571290746015671429918700108067419768589201532008716659528688694603779821928555310397690484153169834948030612270340431301188286661115251619123331800752765448895267461086207684455985856925624556930947539438139490066480267434673179048777505781348752141685833219229465622360058104781975519199049626027321288971807841595226448760083706688565580241606798535688311192901703322333213402338279016194234448518345917360956341983287198946834345635859865003538097873936103977868246102793011232326809010593935577757796356722272790535778296010602111544796768452796971234258439292689230450746239555262534710863114655880800304418176333728760481925031540988674756201162839153311753038162410555540441180752829600781858139733161355284564967609040489209759371209980910831569589850547157932820078695844246272804519604213540665103671169186485154930703231069189968011005068579640188824885544957218797308518028556461104958569945142041026438620384620239464448705104621823087922129137182928742988881747808826988027102046029858209495840984618008560910272786150852766519596147116985384972558386682305808108998894423080658069412734253207393027308313870301905105853499966861258082483046566868342903691462882140496971784615213970326692778886391460482299318020608214703666029646140735690145547178034326725033903359256174898312164744803077388273946360597000947160408583714318646819884317197844211403670566700326616048906438821763400467462468426301018039379089078186157491381765785776454044501360001831426888979687997129284060227844014697466072911926804121301909391586167995292635358285668267553297454420618491229123948717976331087332682010874514599678823389204088684837960298389605528192663498259341532694451007497045848926181477728123351378002423996648630236906966817530193088434265403808234430172244616944803157181289452836024449202032560641931910519745507990903263574146422740353100320180240463976614902527576975819176706782187364856772066823827118795259550609691832737618368254931636445112722187493375846248733029592840522910186889191393949213638704630314608991803950254004840864807118284112564225680793002275795025977093916201362679081457326127071557577707095654972470420522249815941116251224189637997921126025390356644283343928607025964257337804584115864212453442113509726010885951759679598742520772762760330784451697454817492963395443144522701204265656692894517909390922857033439621280610623901527578959471533537375427407338877076125300244880651522905499351966176208221145903462659438108550696175487456302090050115241617429483987024602111869522206057187144448101608120261895991877994306026363049669503764712734226589152552200934828579003988862696799524965300268060540857695491129868638109967672115026037388763279196626452834587988829170467328027684804505727840160875724846712512157034003803477272906836303998742862594536599290576575233958498173460240229964292532011389294152279053830733726119233585609589624540441741798747934600205486948766448135086678865645068306492405327759779086878057093749515527174812769119712930601304976023199751106542972864431952654933887363814982732093084767214269485988080834083157634391571936052570869113890490979863667244924682459630486711383735058681959776507783723837947100582071993324564246621240829489953718174273670482611192518774567206509722562329507026125390692408441299152998883603108743597968721841710021766396603859881895148022618587576756388215788211519721059712035426805966300335939334604382037999533657866122032430587975470255387883796962232280750618231275541626466102071474586459929230940977568155911074476356417847564735103146438557246519227224788366071072073828733088272137326636909487847423545188143241952097973512167735234386832676914145339872162038684528696306696348338052339498675675801202430752172288006242596641897326041101458715249926701190331267453863213245021432464093572794972010053157669061782936215627373703111404531779322125693127931345775550059859906978395145065836026330677865118392985837308791347522695658857670160206147934481917827391098814217959194295448662912085549551850193823525936553959533945859771632692599136270234014455895296483670285347136448675104437588273682957315753133289933526038034931304087197713161380782324741462880130216713335930921593549375873185285491426181324113695699719547059867927796096492135559248725135624152488317651277693426089365795899100594494746260824188429064137711331502727867056650213650888340479981988751177509136362893243029940232427741748683312591289173719813384104016701124734166910519795538247257747031544354775713014897524246432842348642683869241823552516938511460643207335206863104634078864487370473094218908818158362936016717500919608938119365598324185100063250859371130400530537721375182933643423694627492152047437242993504377417752952518629135531463614772402602880394128187676046296596774155216990746685075790736298377768295262822776366322324716349405572033737093354724883171887720048168769347477612563681512419666101259797194938655545459446465784524433256412382054601868549192978526992654884061776980898183454928666137024884792715241094341907846193905725205074635547945616421936213956525121212915297409210354676208574975480780682920112343319027976146972438364278064831529168338525600980378885585164706511101381204228313837795273457768848155483472274289400359115298864268351893309900901636013094353314346473860838108487953567085167779329956022960199458677037361950154950091545064886130158522368415519038498883805885564256306754631951887083496108512828174609730135070755248932364326158236607823357921762518942289813605474736530849394235741179969997214550871580081517295484213746364416467401096132924697172587691795753619563108412185078913247241565043943408317550724387888865208392203118199633268988406645316191894927950158812385477771175124876450503497015102764559015747003293767930907465673930378215073535329188698036231693568364680139432834966830455642190924937118948651965738219076859418188779059786400948474591094392540585250858784711203560598733501652233378381555819376061299033860519052671860007866478904731879322005015080591400769139633709136662427509257456284486296988384203115813906921491262469867548686810340764941707473583351070643810914179911345102505662953225575630129951966641072555472009609468880647967714479951309500447557572634220877264624987834941275010345627278751867681863052762900777096966655773355437109751588628197233113459706863511113473523436428001475847925163742684746053242453979817647330226896097211535880140755531663165182445618540418482044585317474091384535632315753327269428772509762322820837692543970961462298460101378459652644776217970114251165419221114586314538734451464574061469118492794857973873459785143121112186635435865336909127703714481957919202152643567609930488433335414375229019472771763534669130408129695801316771122714537885318555395598536713611782607831856389835160580091444100064587884354076243773135744423202495705011242477968346201269931040423663916499740298700607833144117325190372947200147773877780856901953206972323773108183804669896484372619295798771472654771646960655938879685767986141072888083310590328888274575132451751353462829669845208680932647597896255627130201236110844656898808777355453267736895743664651425665325366275867928957648222497926874263816515089921341700129303985284125586851411074168011617197236904665715223894513001209785631234003220081553358980397884617646900662983892125557551742735637411224587418412719715126901799380501282292428012906635042328134233223508374214965658791906211799871322239566688295262014852546746143384772445901565444423526109893207679861301547305461981581927342828896500961395355926462953551072615902282312015868122343919703311063271396937811749896005473791370280755300423599149297733371324267198933293049932074642503627919149028354170399641662261848284627432435784789000666295776993225731897788483275025709839947755118138847650442343632754382124806408386033512720432447638174697674817671123771553066031247980440481344142369166561490748934921382646059569232663732406686822186699021254413193684896775881264588284581828927228537824112146865950107592489568465046353383026444265517217730184486948534075027513708474333244732807238832926813079991655916645981244790848035717820015660762639518314700440408034226030290070039030560699630727342534125480084524281773878845616797997075048784340688698023186783672165618977795695972525070657540567588351438907509073708518997322824982509284991113618550972244837550707438325996288916925578017336989457416839635672656832963719629767968531446855546237703435182149521406332685931131651365850917716943200041869254463542964912080192066635724502436148676463111226343657070784354852221658214375807213090394828335459654552358963042008549660601138704478324241452330393180036163562114751372720018443693170926394401288078076520673266744286411367387631317586191905236449452334829713842040672021332938599490715729581601708017002782479055353465535877421466618023032095555803833775975548434091146394587613665393023113985569858661736066780623640217196932204771305149342406058212756430555611017341057604164891622233466264216893149931369555017856206324421395836723666952197142898283812473035424040754761680533199423136990702130100796514162382198985393616762284508884801937221765661858552063683157908665079818389915794993538162144883687092225639438995714892578512577951305319685620970697540211225372037195468767606183679285960279212812255689147049661847080410729304212943335805606437977774347466699993068077221312022994266166930285660267150335371757222398938995724089205854804371904329346444741237254192840813006163958017348887768626132870788453465672725056345636875709511797955490773864639575723089837553196884622803305434862000066843435602818817185796424953240401418721613406585219225006057754467396041672502919227893499773122234880460493026849708536784598913656859378235383225671646401497620850637442065626232738214262903667925831683740912319290598975016970758359781385634024646000774038223608163255515204264728177141927550840133768817213314567023859868083457886545268923017150416463047460020510910670128628372429915654175748484292588579517882296213347837417117193115397345835772435996539404302939999746629494115512584734498319550046047794360112173216437620959504112776493249272649014088580951557006611330921305438662175645514898590826860231902189424478597871458126170366906087383662389846478830860350000447662586424448515626510732911778035884320783642299566085307063774981098114961951810663730045514063634857041615871714878678990973647814030845699673004309354333187446838839968857840736998279519570662910754315891401386059200255735233782814464742001483172648577532333798377128730876213028207226467989157000666583780077688282784065224870360671979076175142320178768875046071789135017151787736194255799150898621037294304834813766392531911860608511714542377900306802769885256806995350945631279458732672653626243153239254458843696659236512819927359890008540873872042285123354210380642401813333579679538444238436202691769467354370360689647708398998004267181392077354102937013712480946503920109997312328094545409655405988449083108495731960249911017161059368647712308523667321518792610786781851725707367143164086737529044584112840301913842046884035346052025835626757505095224773733974855531234657461714708801937181141178338593926983032685367422949305404597762157630128976701145946569081333672998486645209469808343964082731290143913718959854890149380644420081900723857307208556028953710558829218336733793260755882222245530001814570371573704270981583609469665799612919002968105544468113873056857733618735567037101047332695673896958125605349720682235574878243253293421940693295335361477260319385289101660660685592040994555228454086907849219976739513936474497402283951884680848462911130239234711240532511471705825540259505811466976964421197599175234641632689395933944394663261081685974713979841905219927517696761867422822164355783600614943788584908559620967777321910450953826675021774854955493880622624768485849213571914929938128315871341069279036824003756681801077653890706715303796041126993089482569549814327016421559166190540072521435001508151429783219664388804044920735698892361746466884106180545196048991878310351644710299051064477655265894166045159448590312982817200462440202695138771165619490571564536291488322490943124751891994004041468102846876982443121761066883802488938018293411713737372006122958024206310185766664205329699236220184166134903286198349722728208531314858007100096850077439956889406637924039962137546951176963715511952521760916502673829938193417857141859224759667467068925053638780161376949884699652077907489595929626464267199249642038811363433806107469916495021454179030701982786240616205363996213796886250939360667157791278454680277264559372937715254663962697103889204379680409573281088744131586638414620648931325194863106634100704428729332493349575481100271505209650475501764324036045102471763893196986218791854953541011913049359452569912646425294208896892782295732411228313233531548245932003996898230926931652358300564204054668277138247694520457095590793653430317626772007168873571550437625856800791358733341789366656803392276787336898308266247185351985328802707457089082376444335110221603101315867474980792235069480004552518463273737443773944434068133145855581922572137758212652208239452431710307245436510664827504729744181896223827687886708069252485944869369088866495416749427693151835295875005638444660123138129159008530934956366992887230335126006363727323672883118576870175982310434296814670695480416715570227007734053802861817238598293311682299812956808989341120444796667726368309468211406005255566524920577592665373302821029916905481004518567069387560279369260931375278054468096711927765759321593780530688088250823003712179033172259135135239729702552452945424558443057018252881918498272461804626526693206088245849081401617858463867431447518172584545510660617870140867619701592331320983136873872052812034660395571476884665429500837091331976286178997424183353407046790690193197999913088091606516349160889874638178332684375167104924370295199503781021168422090938519333609132250217384197727058046464105700918592780453843567771325611192076266008871562233928830898080601021078024619411369185233143277011739308264655931146607357110027057588983136292722166698310148429270170565018134463860106760909277833381891053952750357618052457110969859276283827941714329307331638258916888654647110045860536818460246589390158629806812293472656308325800587953825938525144963899466498935004445633398269964859669860124229023468310674561917394528923698528692023921020087948638849712654111804190316090069546812169005887151232326365468925567227389758875878462001346681629590479467780113537616530695383603309951358675430256986528057993372228429503621384556081086225549491359139336809408125355182692930861331896592059117700364349705371992239913272396113193841673234629031477765192986666677044553192721624336471702898972702825117881214423213671680183370266001224145925545429884492559539219234140755467783034616885085104352819178834284976723575872341085417905436551032410378362145828503380733541000268660319587736910336251270052049778458171016914517459724118004517465929698852784226526395918188770642517709246667267670880933280782834517876376554302691186806907346847848438522437377200289260396832823904679482307995746323857796880244399034224930585994541618007998803715317084886951457513032216252579353496135961386667407481920502985011790566594371831925656643265793292942257783511131889237955748139838603755552035921585811323554144637066402416822839003239703795185664728993451396727237244773113689137626116739679638093447901270784426238320927749388119491797458605122584160489042146899710820280429214331305477992559906485016529546367916802139282112747429044345717909183232565610466510619892234986226149040267382577962433525504146081488374647922177218274364448241262466022079759587641563040627276588041429099114740096070498675597769016537935194428511228085557217745233294079560508930353467382183594376352947634088280589099449550919563328851415488718850621140869612943766214627455505772939521123018290751880045068417951492332618679584506190144389429878600085205147483245988445030702384453538556418530915198421845751122513327984197444047972242088277679318978432688767740719235261559669470018027737027994252683758287343975690757379443335067309234959632526487890388107675967679244041047966968651536655916242477217899601726023143851138342422549996633961478861399832966301812506718496931592054196722733514976700010119021749791992989033890495063543138264475448606135411909088652657383193407462287348335789816230387993335486108754825411101119946722174620870200925818310618675387749819877273741046076887374302809769826161566289429394713271913489593851403301362492969386401565134819659391571236255217716117912370956305935420357273407350249637345635223897474339193267419801188645768535893013580295845574936867615479217048928060158841482093537416174252549967851633520362216156513961804021700362088274170476617629673284845690527012047175990608603144142325959615631336191675988438586322311047914173558766233153703665259270402911633747312032535102745874034889648672127679495018361919619929285594600419815947961212311667733996318485636987977399395200933331775668387340083508836235911446204037291740077624025356601224781810038861224573485968085889270936454196152858460895509702644567035385288801468688382598825728774660150707383100380095582018193544428345874615816138042910800873337099130067398596556706507036738941086071941541958217782698788040127064693223532056915713221275594201626510186351181803537630157062279382058207983839302270588165421602045975064486969014523858604420881360405645579284286775260523465141690052147796931410762779458250270752765377363795194855035368324850097816914541096403359454565469648527996140719609580449502872353534717019082800044257683287367881205458626333670284955596587977999861107216984118651081998536777599863902865200270879032272688036808659498801677574016429108895300639344559745629547996770346746007046190066688415137051485114999059040424029488186398570490178691649386491758561261561253557322578300736083666102771392746560639848701912855372555281657850094327687860290514761174232979749393422364910742897815546414610379496303815800173658048094720416900453788209350284413984519683924823075321025304259696086162565214514934862341265592424211718313548189309690759078867664921906821709399585753279532577759395538181299479004880792115995958893268492546555075271767250374221672354137552469461702055553903705537978472417771570450673142645640748922959643703562885766075134926629438359021342798988028543052802255135665449889942827442521046895670428906790543177080498015727375416357138775176661542373442441652274307458247851854209683728319307084485468967674478457127812830347347435935997059569413686645850969996792405400488619481114200163412181389796993154153667607314873628526318483365710803248973814281154917616472373182983884732999596928299737048391126699130761205582050296055346351225723027058039657686095872904028333746628133385945914137218502370573084323372594312371341965880677465393862565384789318191201322559701757148088542153929415181449130256345281502984375060331742893955456457819880203314477382065254587316088838681356285726546928174725286387839229556776791788279143429735182667436440992294446153747345801398854476856413220899890552799418939956137690246564738380669927794521482145270931000403331636673427779295283253985561432828645781881338103878285497799850309115867882237249709355307203822015007379879060723029934233884002152880472972097588564691343660716957035936021144114234772893414790208537530390498798428551625888618109334396342829131587658518300572798287978684048164281359045944729825772204663229024077608187328622183816903359247376605463138564282932263399990020996612772418500306216685868624839743227416911631550483744120141611229105215887144146387508909521705347892672244319841831859045854580168792598749528154023492095112201883641852028315804176701634736331243778337161651241209671697794557155573925660969045167161363566907981717817722118038936531383359457139737748815434775482593618472930902614190049593015909652797840359108764906957931893627212140429068304814513640692342373305460203719136666924189930651046453912661441194152450921367677690773854439716376458426074014919051234279049507515684398987691767176288086765879753294330393262468833333105278472983763088925409017698112330091663615021873086103583370638648519803352924765740847772995518870253552595700807654123202638343765048642999865327038373527759758763012820366831156470274072858109662548236432296922517752978406580347565320376129008893446575605996440224218082324957815059923771554337745781528425288284068719966731885208603394549369051790960793736350295379809585343715266871297098950592970348059579342896763791448868367156531291794473368505570682758685264294352706466946849785418096197817189600721429609571314241011011941449169226279387787299605253781459012688940787167907625812331967188447270785748381112305637812094237346181464121809682081510458462531734960079824147895328047458330416278388759649370683988939663434940781954076114481361865676460314342082687110557036003239864456530326543094910811421055763560083427965060003758769318880458579773061592318425689206237508754466946645065524806843881789058027114885991112965085024528573763984666247738802037259040037207918388672420987812142480136891204584646766863572947362520855091808479824620399415272020011822571600273453212504198876786591636392066754065639601635303947412018928481540908130841674053252367035059660641099939979958528843179109060460789737076827750452680257369055154839339056723339071056957800698833499593248845297877165448736182114979531207197813909539695625195657248619018566789756867503506015779233917306060789393351755140191997924904756652035460893487499546755007986231070270708213877371807797935647426717433384582021874678566263531943248926462877321002390569885384193952626134171892258618718846615455629852895904240871966325915830902968936552571123133407008020963085204319408977973384054669907568407697271041663370250417774664711919309138537024386251596532647203505358071971547663926166655835443297487255409841791555635018878971361121325843843907411924126743833969121095519389043932490803767950665699528415771373800558314779414718977378061643628349781427608933315986639532854156124740523659022475134225116148263107834415466048030418443798114751358876918126891219700312607529298556522480541582573005818059936333149353667979427092598099837093068463135485276399349631141030799862037579521188460402649749684854235802276521711452462728586747610239915062603428167831231187728086188817952301698955087807766919821111917155231028235989797712868434949856171898786660998611996113983872385367073449146783331800470097494635052437076971758590058830206813843616440268629308505415581391797107651263755917319473821447730293958110167244127455426672296455616311967762532175006197729521801694960938101252785850967853886134103800359581247637732906201511064969340762695887523899752196160833511903125066518171733466196728903981933044882782907505654788114541011619430807157572804802316714798665752980635261400866547028567458862893032134096975679043781597832978013579284365453083099755111344587316063542707732438146054236029145086358766765072820186551914817259235210852877710039564330436163082738192861816485627741256929004227530970031487899747161465915968092011190324667599857626783701534789002281411883211378498105217618686410170709455245210222555531601427509893597269021198969873739148730269493394593527592353140779402551972166017041916342355942352555519376883409785917068290378891765239678229622330454633793717573107763320988837733989498139710319421679910442090588345522162843915965621135732745817391381329528453935627036807428726538529018357597297565629886575836384752340043170946667401381774507236816977313589153467592251423480488352656745576077546252027344295758353745446649431113439702023357198833737657986463020053095819912916140631774620634543774472922753866910860174865042590233676020715673939244570569353483954689600330120240418160084182195008889140394226623911450058702104920142183263532560403332034260063035698513564622437019401051654070462744830727307844304241645866463809146494052667387837426280339106492892632922023128541107621681496296396570034201498846324752304975526626984772835837683983050166262397198987175118456301529728360478167577511473642113652605599870633945499551166146405484305335826650467966146769345565113800812669012612320549372236402400636397260452755181901693678354074397506812385713225990845160744423005100466437269190001476782205240862802046914109827511499490226948721419995010461298465037057991194560077552183608521418719029301207688732959749995830494567093037651667791204195135321430709592984126227150999450063074295648298073788891364915461400493387731798900498944924022486196094490842548020555870493458319572777283011751296295074849159715988532255135154995356028501733397194384230537626656315429308289715415443121019173166071123704097687348669260079531132997121920054974644377500274315669958137085412611994580345772217469413910439704182258589198189440782143460623086609604951818848016618899823940460927063780930215665293362638701910163421987890051366218293293921704500832962612259217837069513644034192863681541668887391703077756328835480072154678726539141401041310369928954855137616605646015288477492790886305410682135087582526885641136795271199905190701268805452044820199487792963349850890202279327719454571648385160470154245284274513695596304079831156100883782945550384981953453615695074986206005541439459323231396741338105984214191157099350678214519882412774386949771072157920542000363293939668242858341052696877944300496721836492416706495527417260521438242612236399624405607101123280746815120420671819156369736730190963709501978138134208203790953735538971544534690289226374391915553671453574287243480086006283539319581275256051929292744760765772396376289658942548564590285866227970514914384635877063845222484669599874087187770442859622744385829145178262815942865631343414142515257601317630309515130334743449660359876791463512099608824213426387581839156019102943566438315838839981870046779403603922156467872716269753877958061192563058306591767461131895077067157403121012728881165158129334441910710420568919162582992003513787683812698809943420070791737963850744481410476144677245613266103302896187274301604094038437923560963947430571769398019645175216655446969221089131364320470424679839187269131370010332644609920011535100382567504602259741939146435139298921365660298640817958776005717492121712614629808600580075658991998721224863539061173696562058830322908362768377653135672593289012594823923723050093610971848097321464170014830079124960839845948475713067253434604980351161532210248094378846720613281484670827611172642520701488665560962187844124624309948599454638845769777583951939916993910098032488433163007750825613890151774333873735868831734997509486757621588154965857268180789552528370299754682605674791838929241855608161357652996582609014896557853098112978325710517806056340764509235062176324259898281346744188882789514322377023067999003032419979913728145780175556816488580104848678455492700336831944135749869494035864807724104754019043102672728198659653909009687503936528515993935208041646804313888139264963391298688500787745639428995385734941294302060393347100266695940920903941110195248857913811888967731749963783218821049835697231431419209003487195718347107869514657200003833779652605851692898386078007804970683442463420741869224488849579945485182052519222795109800614436107421585768574284434066111326127997342969020895149912370508509231244267749840379170305703274162502073004470728344858523763775135474193170107053719332881803706786322938772331229170798546553408867083447833144244914961597839151546783412013409386827412219016211226959075271012212523007694711604486916258174923703086453308804525551573274592033750495129427883362230569470280534874401525723348789334220134836477325903612222732527792872390787620023451882397230968038521130035066390428425350851966575396862500381045613888162573302266706302879555967806447577817966654499079136809940695002325928081388019445968783740268591957642705160375874335971169074213641323264233621039519758491645940180623841947739471525408933547664526069738719083524590448417416125855747600132377203955931996164574768751637103439800495665075372326141125435644082282937965969530569204953122824475432621586737739073861379622623206072374886814414887483335052784512879515291862766785917788656327572464514984928510951136477336948103699935597431950329118891209643428212859871284256294643696553521015317862019686267522558266350021058443705033917578763797952526148757845266948155884045001248258288887094483765399648291396329194689988111184689102435895908479959649822923580575290758058161162203877080240548407585848784843256157773975287707468864042234683045095763053716648420812410294718077349663659043427764640979909687541256612457070850763481325441679001307032253920970880957575938347379908490247086818556244590102059705345927924949600200148637366248628518887524650687393777881952912428227496746415120543635101151500000988718663535548397960009844719709498193625920930661422151059048321877895222991581371639964512378151584103222139972492353123404660084731619050387667492575621953888332754522584978005435242705866479694209290032187463727305301410155769102517257588729208383555189632495569188428811184516197327754754158401698308697515485521948167979809313512817030953726464294938354812226402755171263771702339100461161413655287418656331986850629061261893442331675124712677933791298866198788975754224479000589825459121247336055638586656856015843535542733952425366203293750674666579782790891283934970737844214087922491943156321226319842158827120489331301822921749920696215306365908775945996235950591717873189749285901326124413734193682440525873225787362837149167990608679698867898678926498996043223803907405448724062450674260366582270312434078776748279572814562099854555882474754602405810182254375182603416316143958020587351992134906385881626404746463165780512059372112471812306166033125580241568354123752976521427271193100202880200391179353441285468322574927713455384161081106539424207283585778708290245824442311127558582675452828616205808414616366515792056170792396965445828763331814432662335344776685136476300848496556443470539999911858858271134262670101763730069194920615566122802852598962424344415926965660647340347048771737169644536361091888901686482682782898295257774755355645603517554233158346447821698774013301861947270220503418699634732087206833020604174696300043764525636218031238803763408006336055766760087504794642445796132010497928274869406323126695258122492335648696070981556276518549711461496287021415339347303421467516582646889983219374762972108934728119785307574307972014735745918643992145456918169171454063865652235950552251941255362905818683693387557699690768066902665208765221549833416115482294265184277745739293109032913897819387017566220173909270563562908931760881733056995667982498766265167768251993470473793331912390399124058256748296498008480971535299664803646020246284554413504404847479867122488982861805477672488851600846284814846735470946753035496796942358273906091236676393486626206612307794130843807489389708136300222534136218474619833479540230230790388534078698993222069243820140327421512558924692285643091974939943158583391712853699827321047425316025652921622949144621212489993892118980278510018411537907323397300606612569831971771406464633204703620545661269478579961125978126240496509058261751744490421639281947206417425949362545812512936474695395404049953926279651266412807318776773902793013685948616699408021375641902725014426332453393633321394867935476281253418323028415513444769470107945525290949675104172920666748812061976733808769075655544609389670351307302556292798797255839701960703940300225577394929120731495212855741486348400191881338420175653978862654337627815319412549924530412719245101078410432152482609848783236497531990546982042603376448564519251226183668563993990537981499478450946476462936778264255953801818524912203828873583415214958634091537129748973595686217423728322247323685295809697341677307468816475698530494370818344522424837577995918827673234197454645168518492175901196806693724022286847323885730520766317634058175049967998434460684182163719265203659681576011578066419278176089034943664007308248808076116552991518410932112880176314335845556308753426048719079433855333112269171656336179033945206396252352477519158247451604928156796207685620296289558694957387646826279072087626675217925453022710597422157640728902328835998682168373608192720785584976173694984381386822941220565563329392246596669130392551444532178725299843488125295143536097802423617607365364288828811754638499588808628536084167658268145950735167108415151872364584181661149395070951877873456752893534005498901209923496009961037498048176690091383446991100735199413863231504168091730586889508309833199878250328977724403194596418095983264453360818089938700120445146440274234944017904411962889346835899209536066430858129810084371038991329377516918228061001527634021548097835699393127655626084143651626604077538849762479931263937720186292321044976974710003765676758993787474372105643460009879705543981912832173791555096763320189059574032580192254470812224278793240780744384105104180324447478987724562759404938458790451058901873804913785788446259473357191055994900033066157929903473620039886892345292124610220675144771371208009358219309625088858653491648391565740176993387353553252177128509603611053500310766825788760949377285599639067749888424653911665162327445784945767047453271777055100543038277524150820887020421067558093235578239850654893176226351227315355482252402157404724975911789410498422707308011163768518669963633879531625885557138555335566400100025505148347730389274450197723888319340913611020537075958411241903820835864713517212160275866416693545824405704869606517390632588107996950280578782187895620766044795238742172378267324720091214182851279846218221914242080945600464846962684149313798767870675136433640322028132066552664527446428758321336649712724111717722174061973203919707395901740933289709707998003134061601936666050361520522684282726783546567618050806106680308956475013353476958192874960361541902806535423738532496587075879927081320669844805706509409976413021629513065063622345521978728044765092974666836047206649190235113796595527096451503855105502022131033530380670981135931918461697401972867880525686296320793934752321433880373902715721468246999886618034070605226940908177745107603371196882046846477966900067242403474616779519504810703054989750371151309937912544935800761703460640483256559757606868690969515294114802153813713661017904119736079462611381613096434687965397922359929924813472857881141168867025665199904850788168429645266503508351585785214666451423559914751175773603011732349897339020298608152589761459131695132469644519169018442388611409121961454721472706803259325851583988913595422619014741157466399845198094079574128946277798582511456913605945868840041870104591670998085789386209050061565897513313860489455553852127595082644694194166704499700060298078091173547234325095491053025274596268573676969818555683023044154302963910144466777935036855077525719452498133774374125282656584815934826896334089826418594806372123902567987035868507433478162416353849935968018819920829520503876465885212941312944120885876980013527489341961664729382027294082255038027411626397108748571043128465108003413497445873716119929838591330047488879900509075539458110398352038104479908381493386576603829805845643493982594333635316146007154156891663833114692452066578425709611403613609532170936687619043804400070726874473551545864175216416467212013192456938648544489812573840390346021106022906977033672247898263991848279796809530336651488664211361356154313750599014763342295205335621420370602316883940422404017094662183521553992514567209181898567225466170972150097152126677010834623324563992593106168429816146876500057253877523919215228622334116994745652054516501537746582892253110133723321564957399538881363383840805154345175421936125520771464035682535356526984339181676740776899442906664016187123000663396827161049719216881304919175924897671262323017757720857844598015098373384191943801491938247316584945836220810702043494903948985944282485247205165475414788350823527590682081173444389411783734605996574139114443803074441541533379964164178722873753498197980589431022237533108985436575887133930191231046677357570800338006018113334226175653819229524667103595802666280521404515208929134154521177518171835654502882263941430110164165307026655699970207391269808236231127439636967045555933276513105157382055949114806077047119112850631681878275150646697549834820884960971512072981339307030081872140010260809808805956200032738806953702463410326293011034719110275319906252117206202641683614416925300862618493528690981005189967752887992849266376459572356813058860312735705689097690862736532389965970608762744811080750015085030094178664416799930351191162814747446388176545065157882961247353105650496994160900821089646889854734975461759200274440664540633303007062815917225318459628237030098918329830468530230757117226911974248332076708676194506000341151429779970955500518383115404377363848274102426863122862338657840775124520366851949502414524310270802435644864794818669028420996614832033809096305291792026925172070613654015492169244233447463858453442154260011097025451410450161560141389584258836480544618050062023716504607442014921875227862526774053914718987013644376621256868295532610534194980620308609880941123644922135285486742353763444518725298585718487484681289377504107065859128250562924162953242121227067523185475730866897197041033252877947554190651472374896315127282003294775592946550700885750079483167196607145432757510272827385887911900420241013619987292594114561531306569196149876293874475935706638882391844730115550025929601409791013399739885617922287295602721028432998417319274941921179144501077251899592192989476666449802982007355020330706366523748768767340511735422865888736436418995640122585986708566715183283966561527953578652368451545073664110619297597741860099164889477040916772180311763674282113502532334517670445219755816250493003260443954721808742012705341983647791800475084469283512009525509233932938755571226456360595957537526320927567451161868573758304499071394291208423654979575145247086473498944213236918235088430274871668551284148472259499425031642383932803604116227306699442527198023199640508878805901873811660498327267892825756654540434066139802817457938148538250441421525029008651320163165031725630403799848310450283364653645661727850786377770428996129350743132316911341845847750278536687556668203305867737548035138980958756838598975765318265053531828080362235198214383552052912280114281100530128414665381113672424365710649429918238931043714794306099803612416871945605941236677490438655637926402693157132363247410216851524641103436161487548173189813757044043687801898297901612187185489556381779105606833623826440273002425591234644779162751535344228174643315474011117440649831561199088929314532511733938085285662697185667833134659696103470861053577780350174198788039517579124855269248212809248814715195039901636389133666950336380693291630699461155069349661677318942041932016221730149062152459903598713247780668122942095773567467920636997218914570279123650440063183507422481556564364602267385253771948014796416050221211598881928041494341213630186012841526625745347321931200144988723634938307709060031738727426710583043638570466634294956842025162480817345548097919154754178539368048592897453463028655390893494867767636281716893438009649626246918167688195310607652916515846156105052950091196985448114431322118998790860374942824885867827603602938806533397709290210927713143769113635045976409982674395811454494659155535170490978161079113792781856278723058093137963805140971465454273159732042263516107835075002239888043311383825472637520885578274648827033106255568636518328461311463083620105397647760451313634256442842957188052701807347711014399057594649967737883682734300446602424874215403082754165687606218394597296518766343667499853682628422842979067355873844506623008190192943977920393762308949914877269268133084210825266729726516072293712923301693985126947325228095230651933673493147995979803389481796770028834894099139078628853732062599770896757740637904597683312372199912415489813050895326128792014554556456030104442487155835726248362752185596908816419356588820011825769916698920721107343927379595163752492678590998649928468754525353904962492314942877203274132263286697203869771249971404416411855614111945616480968286851253488588065347369604493152757072542521250820388093355344117955129503941858487405008028264369876032964557317943915251800439734317467014539689126968947123944691316501172755353486244396878678859272616266990778273963786494061999427589928513670350716522575189438988126255172300768699372278269202253289086620624115890969730256723427640549574213656906588263590061546177857520878571829428513611919755551410972835734924656834093373316957897237309231505957326281063706777994859832057064415289278629323363496297076938325052360865569519395531543127502779096264630764342680145294970903185255397456514730904151999646998975204454206974515793153225758183620304235364214581372217365812464412250190795017256865374511316122899676615333017042050453756370982492946726440970881392291018803566797610900286492340776509645584903414071834157500667205635010662443444324889650416250526721512768344852504662732858440080022301231712942305653491352004219138384535606393205911167646935998891555395489987152757394260748468286032917823824127159869624059056912991433444011103410285036134163541625481697626114020382466084805614321710933064572529509802982951342050849269279131563587908701206068231731529784409833889397568492493557237788994256536413187364493098951221054699856586891551948743535110043478906840269158207440017310650727130971143176841928233344194065810291512861884928694313989349475339867817280691806346704767494500307884873209148598299328877124823108608232781908657736752799404081519505564406428772901466954803474802343860441820802345925480689936762497164545146051124670483476760890675497709243147261687041658921480081632338357420975379730592450486842176117045677614719576829262817823053801559743942380737117814530028100811169992766793948449151706787480505269285894047671642563808608351096360448864412611279296249709200947955913049830063588634337280150386338172513789239104317204349007555489660707048901867783882185779403251153277346786833920884600486892149937531143519829137042912118580437665054631383953706099350939796071792952209438158542659042920147320601998884890241956213138502511552016363670111553464903763103512394099848710930277227836928085583127000185500736460466140612909810723322361850480212589654049256938935419757122355365532051746178618076255498482305337272724835980648306868331738686752727703285138179595786102733759740247291185296434533400747583314300530521002234897337121472523403503310652228706486956638240444185558691003642337225131917763895837379657095245668678080503346583009414609127705428205034810991133754700101142366113217303674082571140417373617305715088731338776556938968802619923929082044171218921744788885280625181668898340306766607587717073344641245536221778384729093525436473287776435793311111502502591687035578936322172381717173031694816291749141788465589673000183814777974679864422427004433758340297384516748818580306576759634955582753935503185177048854581510835025230186682218550515479072125761385918373636602827315093623976208643462155896166096526460671170588434994252356673284207412668337403562797290576377244015334980754481080728833955190489343504881556154942045345977280879978953471000696490235314595067967506451112548951871137738049058823579166021082405065407947334211086719426193503145837434467048544810993409188854662698967575619443014211325780339927122193902833231351538023454619690627153188161632111577625821119428145140328114021624232148978677580805409925516341721787269603495578560067784949735905012178016758958377673867706406936654702021622264585112614785472538679930507189482214907545414844480926985854513521525199801726158117108861145157646734066693460605308279542841586614902949463534986674136681212994162457049472692021329963380948218337677938203658080655725021311957364450800241396815101594293618101805089384444963432620719028927375519896625775245664085380564588206587447827483982745226103791383093192935864699928367710546426279814255422680678467855474172962911031078152106565159979251202340767893267296088333793902390366707947679188684787350477750429324371234516357617222885281253964159440042043627487673999511704749393483989686335191413772585982527828117035917719107247830653597286276777800999434973191144179988450118319346170624320099078337811368732193684607187790874042799792230359393741818617796805797924439462210486334707957170036995339411518063599721762996974297397120014573795813690171851823857611559452232116261681937920365478676371967137546785669962799332611601358700507260287181373585917790231943013806902920606607803661663342938340092985247818234249048601307376506214485017133439450106811447731341898503681584179344948194900217500354449048209551185698138294101645619150194807156214985463136870558366129590219717405428716010061378948744589606208333491723921955729812359565945017278195933781678944872280890928616111970286797967138135791953971776179109708048310585307909773392711302380817875430530301552108528895759897111512890703359496046704334728056033196536996353238470902042937135171724889431787319109092893023760382657096575669685606968493712765382601666056565563628779741967388452074484852443574376974539373397916712900736619526422946433171983208380425594173065280843154065532480577275676455666120412391931390208092229651402358771497635722024997362144357676417620099744554392036338084445887479342978049848185319974434957547183176036846883358069033624563610078967651118571345629307059548732381532367021155997039328123375358226460353714349758817454365434989673627473073400298682870824380722820140274160421165102989191459626683160400813098639483767737756803783889829734631593411663873015093702241737416403204558253894439153269813796856960014388095151617048903233400793149437075835035927927110534928356570118483277944161548005396822021714152432987115588443832674251905168871958742987547749639863230811882520761916775785793762316175337534109066326287178387829763533844460472034466926491455921325221376348639108831298680097330647672137389992424989154774492017624419155313084805771756974874512899286403102337356385383337827265147589453511972510954121603298423580185158505327310149400356287923713506746576557210882781264420692786402237177000737128566908755008831788557446872741942883112322416129963447315041225210270602312974056193070281775761049761766731387005570352449462066135227023968291198755127594140427510217669723784403484831413991687743758834589998428019960482959712348151309545855531929486993493596132401002522086461839966310477428081408038374901648626651969768851109900384753918088067758712341887824081742277910372897538629161385869742731264969843437841028775803799441145805466849940834780443499164061134261560830518575341598692060446046481550301899377099977427391898412536764415195929363546904412754481809301769908027470432686088671858783325584263154286733397000952721634510123043811110983378207542540870104633904249074803293886295131057655156223928737910733187724487278154382334637507873138691687410965527930607410757694336432150504335386223182968918254251191637200071493689901517484482663915666758751148425761933912266210045497825932335580659097352701411173423014592873101261098679368785797820758092601305127622946651609407454460638332310436416103035812100534566813343158838958745206133387978697042516030542458619031771888241693556737532874692264785387207102453020919580024404017122775267521960251788566439184844224975256366090282592315462526165039070355206666096117757310035450679659362020178764402533359764398647987439968708279853655277852115165697616937130180605247391366435759255779442542103341138490900989921076779985625237682462064277974048016711791291257827418888027687943821517251969076775017954443062237344325437897962898606081168831150905038103907439504407875555708386233436740973436818311969759993998601329307051683702250962936781837931893827688998281101190994081918422988542989665984088196628346468909301005394653452332875977994398896068286982892863049370872213809576021103812728149860195078162347579145294621081328369312178158846556972432733455813149395903685537036582937718294701546604291557867113932042865454878968849816075022108731887059590790303936525873658737916365388636102705203247686699217910684126611167665406591192708193364489121532512084251468059419720149575409971674082611478664674527713818776283126212169778206669061504650724148947927207224569795587534181541083280271332870379576779466002313427795101699951298325711965532233343915680102078727298763860403953440418427500508023028805973831836063115418686883113817327876020673369627380459170222764843190195191104322318087531124514816581003610754540876805658506878406516603052837982157352512492776170271528033923967281171038005557132778896445298508603500371256981743961731491550654642213333580373885088837163934859773679647205386011337413957827403548035628725666239666688934012667175776242133061302754881240007359303638587567754358408594987057540020945933067437890719598432190101896576477528187300414897025765397805110652011713320169762803875205292256774863708823635479289369252351483227513567981885899299100812273639458831983299816245671731272696823413865408407237711229073777902540181159844107222593424241584997284237001869554482304754467588989279288308266037997812892106853612632891999801030528994337864449732686083795137186164394768573269831694713023954343145667770480297146712649160344966895054702042547932044969145802785105879101109752712583086199742328934494877844641389413200305903649341255355959831627425645593588449054818837395088909186584246267532173993835244525252419238032316067014120949472092967890653382402715357750936983830546720142105477632292430119162729404517592433202416528873865087936002046085393140354221735776296544628684043241658045785608628823814997297193389173117207294612145714793716555352816528276786648839354557766588612147203418921710389463522695274655001892802942468745654536521975868714040924412036831530889745017091288349677347443573174861173881788252652698004495588470771174594626838850459029862021982836649318181676126115215319633142700450950127389761301991885286560614163931464428917669676943908438766443729574068404188766358698074897158181275020120003609435629746813245263669735550394970047528125249001918484447496667427835270445188964987102865359671842234770240215140769026683264998483632403541703798200390626363668458976567373152156712519520344808746919091827929882409265237529349618887751945926832036840768671486055496647837594232968019686755625218159567269728899835781317789175628239328359270754144446774708564759814694819736729307150231327566944174565589836292268988771816007925241544583507062780853532368052360481349122528325761189292538116124113103868833411103773117466374216138157470902025140467939391691855299315621668881324732092800904969924002780341050057517277186667819384064997799293990874170557788042793737215374179506290228747117810776613832990470992546601558745175948398036825996906063848754498781421835759192849813015275023056270657289631608028905574210523067113912741700977038471681605626897839304693392228651983906530191472555535915703014445195502740215241162282164678538366212295927606709144144890849670921087136233708653126687745856106667598749390373215953934699933250512651972259664529688029421294295824860347667265005857060439341384024128993389327154365163978075685154232814806300543494100473430146442335261131046055360401748068252267068203160561821348554015097290772634261091456110301175065021122930649332784525789508829226723986117137690940111501179046416644388055671317821349633744825884335080571404111205102365703786678385471276753581904745905033333982832066013715751924593667653729117400418693353793968427182604482781411567309169086777408980380102827743032677741787851254117061850203676574677382641658867145135684416531194278208998320507979582214569752445443572250059849417184058691914984821984843554192928597404732249711536145541897525663051365955477582528678554998907101697069869537687923230942064100220184199681229979010435002844615611369484990604543297093795501244761654339005640736669479460084120459606338333911206972077630721611703020903852256934219517854708452506757082718579952295391695764422790121336028361373090682946995658902533103399990042752000815878130008206989162917953212876939819939918339787384741501095325499240837259962758765849794538766930113283900116507274002209616280329678812880961875655712130672095695000068237447743758498403872828547179436668189566649252503884765995937311145792430494153351640996640260644905706842233665673054139556304811412845091025937318837167238786946156493386957589239548864381363275275406409994997607155737563045229884679601862052776922908085648183549267950884975430035266946550700519499802156111615755571727010529951099913180083588661381570820035748055249557215449017544179100125568704621689985525366085859000445021699561933152672574884777529489341910517359182197957420008396255869676360491714323932546421645413047400239615854737458636712924660436693409621800975019594770705673914835723364817308180582888212313992156500553488195211924394640385437799330944072895747798021160578701346495813563065114372107761075280372548515643058267116390146826334971458559316203594058387382064308110138185500955811058607027507103122142542447580185135069159344830945174819323420131173857159028008999453634212385853560543698174790575089087677304082667734705986989919683713281027041063233885054515257290173113699715952697201518535102081112567339221030228490706396464974267226721011853856011616646048380831909675099265460067206526689777312578364546584193563965475932076434518369420237506139219500518038009316466565928239643363555827762262382671335122156128384401285294280487753864690700512329367851246880785379416335505676241907454593773420631372329331146191848136170950679116321661381600637783939859915835638991977970088422630055561149057342985810231494445627849205389916274852527912451075633211201524424598648042279202497170004189490769866310202366114882423431331975223365513122036015595179634744450809736424622538512682394337532262036788057399594002601041146410224075454752637817325144536076380187700170121482331799807067221469447932403191804373922743838278122869274243670155110695816068363388150877864564478532945067237980135455727518343080569370100427025113809421520216397246930241997460244774905897119221558057545882519880942128399232784723741724597491408004333209624669830359028327656895743176119003203122364402632660371965557843802526401925747257711902100657378587095850457069471956952111020591637973297310382148500744174274325862772359935466776557630433081081746707832945818957796212467721683618980445409566580501952888202902049863467711328884721751791462762553862651167141873701461617318312681608576590946179690545186917877415285768330088331122007816108961898104024775889028681646882720702371914964001206372321525070235402461983306552367731743624371040104383460024232907050599752787373691865273698336976595013618764826968162093527591772008848421675565691687507895165982531655879598120389119753984335014031643471053634166258323757689288640233486381201515836074766494312111491140640252657945560544879009121223918856691544908927092466879739471564132682023728432511269928441537166114533103506159341689627635242137949542717584726799365853300044526495326472781940418013671449519520675397385114016457876757264406889468282698328517932973276149374868694940393507291242400054987032157027655418441459700567963502868643957527779498650555512966436859202310110488710716815349523563733173936621224506558011513757485113761530347049063364212517300474575878703608998728276313979171916937879561725851402153269702343648810943335019271646907629867360893260627803181177848156421011873608323630230798460332607491837073987561275677274097634307590207010915211040190977489649832231191513210582627875230090361049023555174247747349135075532276514179147032410258381075962607446795372608909045467106781297434285710955550957906288767585027868520049704938476627771982321551077688162209867677755634826074129305666559485920824744469452791875230642808262873211098035923491315113734052821084921455323374401507286253202452423935427963532961632902809639999121778827935738032656392994169447886328099233189727081521333062752413812858784545976869249871791212059536960092362072978206403965109340600333700601637949300218672859668519444764069629379365421188232243243550815675137079530928632146708056444616473882963721369910074513478271471333753232608942543465929804054660684566626883384152777766537838697395496281579272448417900973489033881386262327174165386890595291372583370116323597126604909561158584389320968955740406180130579734832116555771211912982807587259180093210715556809590445401747235760253111910828389908908699015264042113526026157359263562635605575904402919430110458196288427135338425761778342906972395605860183020688904373550517406226263137611814329409868339172359812402862997067680432737879218857738681084912403588603787454444030889479613256963120105289448900089061420744502127591973988983797407190498534971508664596993041358455850968756418190986167531232103264550421493270816573443947555686544567587582750020127928314201568943572586386433484964441019781122593907509256297189473523783495999908540578232676968495031429879883205770007753994082397880019350175496200906172643208351148474745290913424227365689987257696715500423411434393048064521219425191938873844659247511334463284398263014475649461003911460408963723727774592985132517833342806604732996531128621978899654775792047216270688729324931458910339636324935290399273856405484074626412990073252234467882014198440718397786291104549020522259769357016233309828809062577515867854283797311202247690072601435421095657383448587994220189477807587235519062641108769075180113124842411370257446898661385670444225502703236397576890801574652385121423864974396514858810786276609425650854194390140761397316976236336925615770336072360087024064374059579330840260005471654299375733912387498630463780517938615104126649340904978560365389917775507553170399271972432118586007018116994028860203884813617485319963743064149012971656849739667112125578601013488741242917645622157420756739183496251752408479132096846800071662633301599051542907221072771645277809807702586881006217496018668536016665801780970562688675306858468564142472084183352470814129745431250340438682554323982741231847721363364077633809148799219100621289739048182341867811033567459046406815577295866043915608256046148563080819844558664690951381565670195738153548162600584737689508679082011626632303797259294975785591783368221778239143054121047925482366247717138215552212591900734509648028106149274585822916474576705330993400193123069066112461260174729376227585849160928916403145309988793116919445455156282104768660396525635207787480054680863363896208654207858790578049272997172559466483507210475726083323627797228494606346673883647684614212191312101273871358481019632144446573549495366058794506274262665016866743145952692740150023928649366330377578518955036127076935008347072429760292350167379581219717569809910267538882052596178080328461786558746087638077468766472856297790419440446631438858792647097479263512942487593404318028696114841869694891853271122639062404528405202283526332074918487990722592209586320531818759085347945757933674976302832864900934127786719501045643140682292151036846377002168796408895448550097808407201260887997931396189750202755227681344212292254263758220868650157573733438538229806218783359096343623963020070068307420331376684697276871040835165616044243205083594116677909749495456936198966885469326981265131338166421961302332665485667700664460443575085151502686416801966073512850795325821768598397077160201118940488828534186612121742676344834564261653937364847169940764373698736519531446194786363062845817480701879559359312597518804239039108513309229941664826676123603423017326827518751179854209705721276165272784398867066624469371887033426201272347219072387797756726371846698075223603762053386884500770402450874924788539490950667015150216118369225607661183222073494746391934391779933220281534520800563256508247655446160095483796733394711947416310385874763066418556013495357745462774502953509495941514546377787458620964776425145376975527843282961788687335215232009082991260172754328985569146905645908822158649175553878971246127486432168586551872986385558946011688472047461359418142303272894037322814670582155278143303414931775206821978787309855940153125307249701763873144331495987861928658086247240056127749745730542316620282958286710336302704910891130882547773870889726086717447848584950581104880429815784859691252708277492499167390912611440200353769903765812792089158725678556521299068008513033741823696991961428939297968033598509301441417832876108085394561388229026460228397372965252850317482296943580941469922822041849352433159865802435115365952377353310385330488280041523424751343261602833751531170479746938795522403260597668370375102565414037477135957399654902586827748937835536844198211984600902787488208665014973557753741316709731778405133371368384712554011729392209752422854064810331226018691864759630541002882842139246429474002232349714732795100387972977737805910907735774356427456692188490494817643716688704161221543739557554578062608503914633121865173039207427703123859178866938540903326747684563206209795297804392620792711773647574233768056814829705580979988622729998331120835726281478184306149400665212311436259869482384259348287591621922326124069699107149017169292599166451574052761439247611845237768549788566358852344224399326915937400581150887715437190370941060385082666778174830805037120798118216415240609914448504979801196202850193445486102561081388410239319367468564935823203366267001798571638740957167910457337040801748390962449711769424651913179973810068920065441294121524579022352617545235978476721291036204903822718204886512729297130604600171019661412787109312335131950909578685346771638328388445341682112121708772631577349844738877894810900988790348062260471650102867515207134279154073582043149069927650730337663386759492688953452614034308748587111781555331141507349864183344135452141295625202756508807663107847738236074157658093969706961431906599951860122104049136750607115769429030188935082457923971009825282137594541023800274939991497761467156824234573206375643783693546751179132424613847972295206700881701131625364944027382936801046174402609634646342865205236125068005688546081742402440671376183103670710788901268337505260166032316169133527946992022342431523184106431585203562825171959447224950560061965298799758934350846809142689481142895095342045793907527474827618115942210179819424965706174598804223493168914517033266990607003387140322529843633480220663741342345417530725154243111328644487081645265640860598126673201108723371770390695922821256272180650222142614223480784713192034099562683272894067854272620138673029284517032453648864723760455566885649214689744081573164000317959168860686865305585717394162487057345063411420584044504939668345917555915978715262117003293498309330060913073492569426998630001046663601788328266086619342208061003826711064438258444456378735382796870244076969728827746642915154666968034972840468058058645591511072904572894522748912782268927850024993284896382313737099976012290618414834678959057996100416044594335953516715301442734421340129268902056592407673352236483297668967210255121098083247372495469390083352271960940600227148802278780914033815956330466854099088610488987416647695239404207535979212884123180435657941737668784462310649241083142512102937778359772697811923595599014035398426511897985578434293126008159599037137842612724913778806104323892181099368839956687665033534729673852662730757814502361071304835820244101401572623834218937165866620011652928166163610041068685279627544540879550578901759695503094939210615264012088706440992343941023653740889865787177120799073123419941509764325296896804135323531956385385941255758714548576006143204047522063952385439275645956541468935613433467890982102910606624488352496674999607147913009071164731426925558142767473707229498853130354229727286812914573558205719794604705249515361013261788042023509908130570023042479743875913050529782261203913143601891752469328891693745040297291587206063471230953137344444071943397169010101624494510374157186588623421751337724868191264433751905006129958750854188361371565566304875321866028457163723906315991733891845816969522438545206586459644728445781890199912718022268013447681424871472321585989430607485823975639144528042676596866576591831274276520412479626211394979836620998358030834692850218068201163467181836702922443366844542295126228478729359728444744487442350832047534219130378850114579982209805152632401061062860256254105561882181739293083732405874500671247841678866542521530160773697487511759214011607728285585636654064587304082825888893465221264018560602087689165936144433012287818111021949656888826250549811425832846189700007625911611317092734738886162126043306947661483096881734553842831023593330362055716649594485207594856148836134149844478253226414173337933165638963764765629157485484967491095498404694447222541594060967641800007334154903013612544798818581054731402447871280686229395510762185023104429398601452751717676020758944752244341881931206971324274723489748935809405764199600529533363316451947361056832755173301685856911249432685321730360757866854883933248379825827324396548122021471854144731655787816476414619121128492273005771150378837444854883458998833682093708232297930873249730718412262458254820160105008302301574267749450695908374869163237537113386294837127001516642622523599638969256287692183382185432760941717637707737267903512484772261266066943290767860016636708863458667196739826596322381808751128357468619322174805203570702563290172851465594810979572641403226682878539660182711840520556836502942651208949916868314566463734207718582042112225603735023938077745911446675730821438884386617829375716609039822133232767020614213151063392368568669232438165821654851394539799794775756903052342855598047260136549622261374539163382932245034447734224074764651836763217645011866640596900214205966959038694028800930308811236997978416110315952715483899883280020229633131995999273944907013368842579880163939416234215556271299474972109645486721021763738343344070084041668062557518773827252280239467264869834419283374884351713182159418515101050610166486065772711750119815536913158789811529745447137020150011454355220585135440768304876270611634695535855223219737514459120331512184177532194318323307885649100887308107897865459957536057550508558962864905331379488968781043395580080788115460816667213613253378913749984755044666530933772642590255686141560305822058639884672817836421312442207482121117646814532633547177665849996805483503552266549202274364343977704461831346418752659093199808116975155389456990411316763300007210503551510837750321645292607287981243107201057014784153064996303961392574027462791989077781561827715273621711678560232951013129046633504550848182728416062241270922620045334574812484360538156583626336543985529076068345934785189942229164467866203790335265122518497888607737332832152961096519336857579462778278143984029336752428674071997759838856715923676256859103166908446012249175733800288755083638515429866175511983870811778639313829939630936248899199966467272109243265115068185309582836425242507522882543479699653743930161268734166341939818215207184634177278080742056380653557429574468773251482686857635618612213408648255540370337933821773943706895590294634734343245583873439615250541422938053962227035483898328745224834499933525674924582291088417433817024573380867757910514372847071790031371545422794581420101254016069727465484738130447718516843281613395832741591216141843057341148530115437563889936359012133019110619776517529869522152916007574081354058185468432122503659336337819268324154275070050901701063119400071233888888725955305321071463116017025818511182078519521367610615190881869980494945215751231692583070758384662930331842497975419937064208595087856417742667727082247085539597773151205542922549754894181084286067947027855761345397385401176971351815828559875008422028026410031569623794467244244802262316037375852452684099334046347238316361357742745740921336360956760670288783361146539513619641704997187838582355174895128420425878023562353015317156468683562005634175742473850990957857026322589012444179273926714168328728911876247385176071602771853630128950553362158974184760913016970297570864828123410195493687060354364217515560592086707167374854957815213034802735288776638006869979771084162827006066338030619920416963811693170892246639120230352094665187281058608274772905402565410725387464849383098520901453126052349993481513191781761210572972771102307930764214706878936171825481224521858739663927889515839467393992585550353122942522255109519962628371933131223425460985404949126320982518822913201906356260974481813508639352520839890420756448529612208499650413228266872497453538612841326592827433846967954860020618224738180660011458810519432676939098066202500168144650425093501924668543751692023275200978707389691686319295260770785950191738926514796644618435648093428987232838507480924443291354848211961485080995755822364705178595944959116528042483537181756795010609280344530877386363929586181701193200443897111602159869550628431825037070928009076799845851771734406244092344267969214433841404161027264069314607809309679373615599609081972739158182003478443468642377593727347586099757479663551745861507193845967293463666668095759652715448512685002502414450425664305740669947388642936054284095541169303610365438916253326379081060636568026000539649204649913134786888388929312771075449655143410092035334445763228157034088497052337307650388075550713128578031069250180102213617006127312038550803207363138882512937357425202348424968574564923861564880736502312693281248896995447620607901895512640451033052068184308810005385784166475881902741653318898360730541903353613329820078622648053437788582695694725815121444215110959739311304063421362624714395034938907188490189846234875568592177062955124516782519477165531012224552275600127399936318923210605238058704194801986740205394207042384442449074024248543565567246763296399823211582196156516479879172605039433141025878922692931699190307575519292540609660724683384616150475310400011043308920100266708841694620383802614628088254288773770083388529557830056223315274944255234453985738080283876100008313170289968417721935038655208845819568506209971183121990001183201147245316466829010310048348391716920170205844397873720155839286181679721094626836454943983328362755594454314454702837635422048514926234411677107878010870181715533713871861932478490104828426931273734890975628099050024463111497991741190433444046514166304270407853642477462203878346048067539201530677067640388873318698556302477063244479950042156549731493636251024936965584007366846458001171433793119703493824447930217583470197238615733214213575366849426352197521069856607547325820057665015074364988771988723123245275238884290378712148455426987218027002695702803190513555559534428228134902721334464572714696676140701608032397872326289692265018447167326574203542109535436681512016988450880325445817035093699148151296742724279507813085258127250453363616249784284441821484114019128263609721543226415230188048490718614800994450192250725394391779315006182452286329741962969337678126051550966562815235855349393241197607293578356043379987059625484016689691790646729827505242846291811984683895313199567078218644406013179224372090488606808053233656511401542378229394430975166181808937880357382043174714116910072641593498595659784360297833879795642218513717341499466206921563369135439124567545983056218437850587615599883034891879035509061280476059978449786046795050395587535854230396595459943712225236142653015419911373567222041466756536353925394529829220046116002954894444732072735704127792716539935199891563772605639733024894102900448535028896159445670400377446034995900544811578790247645168799287116475863364880710956683856695638075563416585913755503939583253766143191157082318243660809689065484974512994316748615974417832203402851344107803220102885629157687046556712474701780236525894856707671724477673330556959776859687410884057841553697410388679745850635283122485174334219244764059918410021606210472441878583369650307945987373040274594301001798694460459676546507087088417181129524434328236142563996705179754053595339355911926076730569933640058250400605208615002466740930257383702283259562632815527661969046279670284252319075883995022044846392928349697824394321052743386748668498583770206176458973104836436015054707479140488770754542055755608134470054334462970487635805172497245963583867571552646218861673116202535568206592286574308167819244734754338320512401175272390562889055744001081463503897343897295308593729683836264880902202140473092605390634311988746634152502336545305365026469296163293706417370083109224359877590796105985005796545103280776126465501977458635953900173483469330252871395222494812685982441250600107262486502463706776891862945605255957588741108690622389584146330556595755666418661238174114115760656411140908753963144759457287695612340621849828524123214539935689191783776248734761649966319859107239578106593197702635486163176423790428181995325901347691458061492885113368559102342989139030172608652001107947418348775211201999393174012556666580769047013587582150793657580896360579693328373568594250602126130581299363227197525388805113541293545337038002209873629570185986685345078299936375098224365653740420400401826479532657920996141370710342571080603971047356141403458486597703741753399143508322793700333424479506885232431538345293488939068155310074099197396728097689782349269136123065768981485425648617596410341256312977742699710789685201833772571871546508339804374931282839811668485201815805818958840886678474356965635623092891106509458919619105071504295500404934617350757718159409805672497984705364355708595672485191364142598762736923803805161084124092312136127075869744488930608076350906139826632047305395926720145727487131840344407869391197201807081106656370617051588374854800994461659251177878910694360491990327106758323816816866612111196870575748310481127459486442655472030801219253934865445501596085589461625359648929669721229303768589889920988041588323336851822503152450826498564713974295151020182386074615526602186504878241116980249681080658469845908765915729578667386252706955747156934271895922728887870768947449158595268391701363304795755450644164599612781832098226778532646323103176213551294178568590873222300959506189409492132231944472689722150222917152551256923880605636989357178428006497213644150110000677275026420223695750613738615289720276253429529166428198098827951699978518219875126525686009984457458325192813370676089808320223251438618895661381561783580128613601564965340481130009720801360343755109709476094684390885833245832451337512014213119865183811637674624568403899209449645163403356969895038828066174711872161372658435857044809715627172731902405011639478801598406932462716879251023593826234200014969088810178504452002344517323640259074910606086042080051815566653061200431373133566607089811502244975103924202018307656027020433549115448804647403828889710915761359332316768163794465624283909262608889835966828731853588504434052879673273351206208473055095092201997573560327865558670920121554854858814015464933362999360267107758159554021165950548818823458598030114303929248253996204440825743585509992969908813115407713537774096904500870161754843663120154822678001036219047146003307799285178978544093955859081992501104064093563121797730727017809047943798731860495640114517831889014417349198489761061665289369594757999370385169327983025281889542594745596008081359590078382641945522641073613517403729164737041525172123195020201786992241045434433808709915634786569248065606046661716385969814591486993659763985958634080578232744565108330543085219467725410331674835878354128295544209124955914922886438098246373665089708459936833706094364198325893066474703715832941838022811550952792958205154056930836035777908956952616268668906517862359995246649058211687121971489938990374985109374613114404386284227212278520473919631552788824023651398551959834406104570572467372510362923498873535511398557585027757249130391686037524053188955249282181717160378095637678527056186224363817275068367449493189743585294792381665139441013716096204606669251972609310855932206061084880177577126389490869038222838813325947763002660792914415738281889352571565786169255449504911664940198304038037536349533702235187742886372774448737683633759716161582179166850131933090015900253416987411634290191763611433309018171107918801966466155429969136700428913317231733190613198542867629340753011689084737410862966235102548174271003196283324402868585872228543399269406763793042366212936736843887766775136855155942939397219461189194867161858145851941763611483286942291626177122712710978987398738946325717299721172633133496886811988226719456918816895234654473770268416765035129758104343973055761841650604460604581827400521235806339550818218548826239420246149689563741369668130784433837461153481265625322899070826820229530317879878257949417357997837818241314980132980402749152236752203716401448148023823984306608535239888553634201436643339939858760609033303268237079575021788421529472792836305968886502865435464085149744816806867456166798733629223621857560136088913893377089328422208286319753252300072383433124906042871774920773548483975347396259979941891423858777416296478598929629138844361789042727048127425360411571858435545478543911423098356626797281386181665815392691577096152079232519270111684065005362579648713291300463794307474679029810931621277575972820131670154793526589622705109627984587810629713502437670777004833442374830626073027416577046364593076553793352562133692105413474843393009489829866245013809563639803109234364242887159930894098080611170450558259402096319424900840870075810270038605771776932327575021873709355477486653294258000525935296712683364818920979782229406634938019549014698269633347656702846320955610180843796505566072819015807806434069907611747711692819735461461195776203269598376739839601375519424031838215748015946041095685518824082831929389678575870232337450639870694177748728896642539153444282978101092303926906219838332604832752611281191356582309821168127535969547162945722823995570571471459603778620194895789350652929061118406636297573331626758607036725326624017882642052073414845359851842782844233071164131101466130431420426555031178691414039310085392798649409027958740020260170232027703301184239991219877121927479468089510243629354507417229959625297240761716806337855951367811196663408562033391169258971063591714092429227573137558218179698170791049388463291324132100857429907804742962657635075699810458853032025108150264981134398401055942765782521900386826250227576914074984956618417325063450599651026225775885846886340751778951370020680211544805742397257955440545271811730121339119212090276325214263515634662293247793056170158631139372479679077779859388326991429608532049749285501198819264819718933068777471640652386722986956763158365906016564395460590580613099998634210406596363431828631652101888803803248858868206673272252212547760268634727155544305574082230464852394507000073443578444511507369076056212391049542803805650303160650481048565967669544683712756325079863607555553833383760828420845558166897075264910511937822975676027896363552270068927777330231459891925062078511660541466466798394965761798958011669355093391640763751987737684611253033461615191956166018457350804202196601177009545718574215266455469605612600362408381710516528514832052842606294363696371833791213720717808540899414310107407292184639246254768880237737078908500067817232079184379765130185556640912798208602590638202614439159746646521123319204816667755610395218760655706820134911979903794358266828738768417681313564577920641236454919712227788509148965862031257736235034400946052469036302077351549893540805392575247307524687556934094562784032218863088113382507697247352903306587579527677177703742058442159640758449237006899961362276932111972878650597192939901985373145594756122651584949082987636409252732751946171294980412785602304318414504032540561492171524972722474273587993354001094424672213389302515594089956998649694697274986125237524869645974728470425617956278386305555891026848968832477243353678679938513203339550826857193408862322468262186846807558305254704368328635136320753619881352742970573782184671895130170425519367305122809479355226350843474737419149557721021852739402477706072278429105464751684206393203988564802088449356403910917337044183573633838246062748078894337576236165189709852775545650371899252216966717362189181483690719673370452210883419531383060230810929762406599790756996031464001312136297125575001810221666422315268549151042744959969424850670363125400502731853589648661648614483671836846242011603186937263687797001468868437031449970664486805305253100726208626645268999539814194458571928282470041323780940107435279337121875944256114224517219655592731336966925809783269069425367213161053751855546682236103090206299515708707379250433146397530511953620106908209578383594278936911526085859549984019932050894589559611787093136673142898681434408392517424649148235914142766290496767765917844360882573431297509564710131693439512197822208915943234286280002218515693192910140925561976979528275100483281433104409137007572498761236332099574460620603020287385113984016119631529065055025669197136536516333789728361455640600141559831803885079581422115676024295742577016674151430536561261359430090919874549922687004578067454265094518327406499758426611189775887989383043228605079144963972727818802538744605168912212298569360182089153153541792598790927394443991416132121874708289773983507632124938418205349194542564443122059603934599997741098926486158286419949364053591838374456667736183645213756014057672527645069559791452786545236018542994443665464092600322980139001753689107332055828116591495389456597381078056907543694545191153069525743781070552135657371380703585817584344956352897876224753476489457588991124514154591469027396862191509647498365046562886152716234721337559888977848557764977935878544812056714154471977891439909537178859060255236056333439198646629535592461417806064259457394335066274784025676977948148698645183855651925930972140123452742977063989469970496447519471112324227606456336581814512452053432704209546166862626663945584432226027571114762394694335043229908060201019487221787063993141237874580702975198903522338389238304637360640800401819119982613144023829492910252728551903172013721470967123456605994959023441740865036060282779910977080806933750833508880238028027637026658650521583231996188949845864597251652796096856102052949129144461740974519033635630879776858069881740482232489056989352335723263344157601616293696496356789537715901838051599850986857679233050333075336039279650602477117357083429774063502642195901928456958889316192569009704384712941280007699220576868673181749984088756486274623218157913652192472536904590553587870464269634248568741769715089066436358756636319463291878204531033937441347145360900915114715039881502127823014467405834784236385435434935976541281711016441373381022103731062799244238533622245565773926365208801010233923196785542386904817300648651309264561035561886827799074329755005208203930038902366460758070341251510215880357045589686378931879886978062274804209862862998068506550632541260795060556466871179666171928251059676224030160957502080586954129500244496165092261103471393966729305664379863472569336818216120930005871559064792277612045885274949634207246002909345475614947773731461026077602832595092278661217876574092937706693405973884998568273196780690237851403533404992714796601312328579089783905929682756605873731963419711409590425852215759342492928085909355751092198989908609493787859843471361400614939770862212836539760658954465548510036478491829438506110059157152748939856476188907753965859015989116973562554697626120507526936475638313742111399578531651385803995732863806313698255491017856698585746661700826194979877527190199646449515028429220183825982141268777676285643380321852412306277842589088704707648717436508712676957190912858605008674974024467598923151830037855766108840030001741517715631202304095274794574831809233997297081991796444178626077886704174251273705395004175475721754309239932739824843333140047115864849713373966414948396080326887306813047909822260260878326455610554205970868582984102903448526663991738606802059822755091973175365572627886516591638015181558823492759965697749678247834299418193709263361592648743676200139200884458754739558936260148402762124797695946786927551711454145987987695243279048623542138171395869349131022987094206424291681357765776570619903347140736723081415227551430942189501326017404850347564856060424432140517648243357955593121672064477340500532700891676520730180242535725847176696443918214131949931161449250481744712835165470244402930673928359190600310630654355357574223370505305382184851132434183914607623588189617184559779202814235086058471877684326195530917632976248196057601267588196581602595627671579404885517160779433582244450311971180597661090505571497216301492625509030382299656219469663893702203911606114074126410887347099587266391514890483203468943851787109778403030935289657866584514139755414568371687279345250967641442956398718719265151209326572153292110477417425897363918677218437731288965059054598976129392503217218224490147778115628472497403655352586470700858797111936189845120489376154688732715039012664924730299063771480760372422370561681491805483820180674994694091253518715785065477041468231804672957647327067220654966292996209166367294184189521969826619616608969964059491758735106344557000441689121345200412299549663552390338296762344742416126017670144692461419802303910588379067919362426167822827124682547847174602759848687146882946448915890620017024141983225379349470896050727314288426624136394787631186701416808425972846457650712019294335868055879744120944290837458563045149120664760706184482199245470078422982101364364439093790564927513053850694958423589538971933328310283146317901452416907009945336851567673768724628946601997508207842730309473104394217211826715965772816132551730372333703215825236302585860866012378582226108004978927341803005049515924250452802307517521634312469705961546510808714575043885316240847968279816632778863430599014102742898041479001049840466586934706611570255171063553321425663535835582003848477350396094262940475531298189213376142659001472628254850172792606470961697727114799597352264973367323578275964725794357771633997053402015948397888787112787680698222944888085389421035087529387827311969753715092537830275685552540781422964332754181261729575227608522902581062841187091464753119937776182422498289260460398285728622824369744551605060941312024161953435958875136934345339653011728036559881927350206436501908219510173052185283269188017259211654193966006908687015607737982296198991051975994869050327236784903553361632823760219713845993426662579809808472839277293896290780101635741348618115801750845178341232386628021118019361580859765930154869607982948428368708072774369161767673428363607189253548559338548986435287056187046806487851816079354329995442174509121177788197652754266810517099018149962384583298207583343165169426881060236011870026524373440783228202236954069248455732720951214778775327309372958230972365582469226402340931032450559589938270739959412210997423580233568831230537357708158360559266376634870795981027668680646063093004625601319809076346505495238591635946755046397951249725671828398127158643377241151016242437501943478326808146198403500257257388997494027455700741619103343573962662479805827378331559961958767899952063821452950626003259225416430018041399364410293009796354476832270478157952779860511224837303365162622311340763663665703516820219403588442892096471729314143663697485515862439151208692913846326805917394533905029988771434201911474346407138036824724777094705273284584467706740013867395458524724102632843832579394434470401220657706634488505897112196321940600835294461636269551821245281593363255388670721380099131634062891056333596955803125974282884549084516631535288773449429837110210243977038010926852133267915651869453480037970300900181541573935149072255001398554233375125022132966700140908255735607063264676363626849311227680760898984673840323853074666397908887299030881028769604924017931991806845820832332753147469669316362348778107016262979898497366637472235645480061229113956077914647052656201964705631279812603907085130627184936967554860610461606576603462102863826631884174376466697001321853809328573717300894498479178898172208729526596442692579342149316687789007109419686114975844331420973369303810392925845207079542163932088892023133709466237677173901138864112600831255774807788979232339527192659073538047945521735079043460754956156907177847735396907146381519794118802244854250449755008350432185592619192328324567028607623955620241016358555639508646602578451381244468174736377077562328691492565573874127874053970522389624663419941160961018162797217074545304249760370026066085413104510502481977430672644014796722915143142137620843386616278464657444891726366100584285196535874485992475657647487659369220004593887913831549038400223190962590653737324863212871085409333998528575303469279022572949888986696090393111553235972278619525325358408386889360320959016074925156443278595375208859952799629464503169619932742994570479129784911383858026361019064881890811213713411686324465442460655809155391171342671174744488992542158213999750032489276956564837890743306326729954082585234444351604757176339114427048792340808080909762563195198254823811556939055645357648533821822232513650293261676151012752090761059338077393174419769094102653954492855936936271213806421596885807384123376127226077701036322938032586415980138321517526236897565598182032408515397424405641914153547999026829808168243088112751878356528952901562897241849705415513907056398021206116386242121092984388086705656378875005734897132044485152511282651438980461399437765407229392005610730912699961417644646746698456636919112618647822269104465517680308503905226706455971893759915171657147967338413552394475102562461801403056625072379497972695747970225753235530907420093968750299986612361554966090026647860799439043752944064948117257246613279520842633596326250208752201325883926170604383281886041097408440156785169837970336533899518501070693738524185006795574955503087854827038225877948301837254415268867300807780666160377621265299545569125136888519706900447418522936372006267903630034151913537606563030703479795960033169610502602866474960547582640876447725279579031970584114535783013483798449468229119605589180029604817180382747711820004749525044138882553875025882987083645706859825725106654201304622471050680018395304572835332076189933666666376867005729868867263739467266274848676508495803812833315646263500118507823703168382483414268595414978778217101795489487839967948404326811910303153083845514114499413665997897991611895443997703433395463667642176912727857732393355112462931365569134546181365892331607933996123415853961625700557201872290554702036758836013439399188794417208575704661820571627167008836530469823487747165397299722696520576870780551772740596145491943327380218381472426554509365338268898361285339962938995033487145575715872726803218948538050818484470024041007944942513448237762360703555109395793393832917036752719297570939504634157406288368400175370142532201431126973067113558359294512033481926001323804360679965617985913958579106745292086850995767898269871290251749768462674339651110377123404027116949088746244411875384419143447104681080090261992752508412514079189183422962673896958271711867559355919679482279823071886791925220889249274704812042148629877840495169974501649920598344965645825780347180915694257018111062323156653395513825872259564069114612318804727977710992404488969726805622283677780304679355394186788744698974712452181890249626410488993580014804433537610450252489744713809227887362127153972843562155834998321382993339875107986505697098612204688168574705198265719814323367882180265724488267709351887033047692872098137317797266154694556227041322817436855448081906314123051309139876275649365143709849325068533454740981074321316768761431735323325596407996260308529656306362109592629844310876288468699732304738344064678334774207861853567208441307534084411918728137955345018983830471361300229802700389834403194741644741413786481076429440376682421596226869545973487497678097996921132668248180865305177766759544860129400168066902227536314849280793549981179869995216808138573591187842599493537741990639634695140676190335183951871804696991343434786976942120015265905175973842285377042099462263855610225443021128887289375534724590147500069778654871800257571044452159199910377049772573845972043560781669283266389758802333247888604378691843974432547051914034858050301988728905327639749002126779418104456530540573771263173357906582132773494414798327032094413871691520327249801675543433706347827635348874017448767194508225133784727339824391569721902515776866891462157757505363413578895636322143478046874899966006566486748046373843784272560526529285687589931140317020426061599839950359732472458411174995969745896453494307679862971218634180957684508175041224792625148363692952297450124019104402100613871837616028446629550819564669403826084071717172759990702765176433457353875726306542286091370489024195755583482420816327826550878902656616219533210017071569981451687847070249146276298209889933816087253969780764840510415228329799986098059045931545717371799356713812084111127047929495377344687172883518163069977861124960660248538413718179476675195578564660074274706202317103658044336409916934599273251642436468786798514684666827348551071750273052402914173230034149192353258384784019954030036652900113963074520350605612118458966378257837269247405386838930261729090912536379678738290332948891231993120907777949770592898750601228141055833886892294568628045252633990920430282063313954703521408074764051429930969581457261064741561936663419702000733814741596822027079625552767450354284214659626333245126285751826416072099935392630560207779848711055545617762084684464243705268938598418686365736668091224410379734688265436967439668861013517212697354782283392018686722954731663512659749585438862428461022636170169997888041242439971639586586633378930863772515638098824462237997076844439678589749686677807878054745434973086662748403400685927513445235763048177256176013703637363629194728086405795947016558593136294362212341262521955376012060682102396544888821548878553382846368763044753214571066526019549590692230057700858543822708013894584390549898555069009090406178081495696562068660221811630541106298233621099372030242132428027700345583949525613235918783765491941065550758935831701916367955005878225799889935464196018928908711044955694689418673528286741894844146841760069534120022160624720371646592058011053340184945709181878391527186833039364727634372624131823999696498990449784684235312178944120026735322934099065064172784094938322657283667757509943848910592050805475834253082372658773596057716442244714660645090478066745583435748882315293879272527753192856697845954053075856947693767395739201853363221740612563539715076532012379125927712754594450608305305963551831659791549233550837210139963957391778423794621772221526328272726080844721613569716762155324911777789418321533310698631339953120609627255363818559243281375860503418112867665530780897218055205801159065373112458166357945626066638293491984899102397169650414632992267943037434778880108985028116697297946845620082918395470095144930690797252701698478004941579056587327449010528591488805661720403504554562078795082964194634790647331300086502019421366534482713939808636165316335302291002167402477567621311915844064392262029841412011802020806768448154498621377319950699169257588151301185706905441505646212507678589234130898429714367425855385455484469887183848299662829817625816584384382611273657766123852929079309011009565567621092721420048874805431573266395644898736037001719258456272151861746485500799358178864599514264267875536785836617738463062076560196034978968884117586426444037841745531773916868102904678751098724967146075988505849644362904296115866123152271603776812998402786228427149496788364315678990154379992265458651321699335241282374411550484380009461016560983368435009830166488934992857819975338210903651695090321030029490392416613705856126232937342364249652184052089627650712752090807030219977075453681568806376059134065463042659313042324829653256616449112587237849766821340494589613887052928386976597123910123838373932298417450689449141016556423373193661568998853298827120456517131922900630101720177885009394372387309582843361546988756101651222374043684565746063591744699179311712514242114772777315110770803976224208090692753143660640940494714655745944437897781967173502751864442475256073491221692824414069422073386055791199057144021237650793093726535203343291474738473878507423524797044622882662941982490434537637952956513512114816074693269758697994056836853633795843396931255529132157810759095320965420197382192056525097943768878583852916907700472547516222053399478455268635848009966177971130921037065451120286058765567048221662299974451381975869752759420533921396763881301871310784420829875779442280604064671952527115003105083827622628328586749783706055243875067258958405372037922261351731689045450932973699319061016911915575539624065075639245794058542123851634635485327109298264008882059654778924870557725965158888397220727729984854759469509967780024053416437476639168173517494178013852770884715586935541463208886935039487764177323000266782516534181517724858977668003325528372947267925113088130061156892227718948552988830902854470222881326667632279669695131346627226283357004977555622211622247111065947790616109890560739560146858677787010916549409755308886014507691565742298133958214759416980818353478762322222263140915903344513449746214372152670634566693218535817718620138187706537574681729134934103265479871255939377919721934139226080029405627070182091826055537281973933427029674630656367024332947866115426749140865235122040636598173201355127456274969258306900093948420844244594688477994451824725380196905476246878261187547083736506068130020076509345150521353407711230266989802355852658397979205996591534921382993309432092915473474379237448235111530567937628030673879156588861775151120788593036202220526697592454482197224028900296249797427406341885614142925601367831712211884760667034814468690125614814228290207611986209791810401455677023875149138723758826384491446486098012005866601848150077529460967210525329722702639542586489028503161146265485147041860166156329214579023097099066238601274742669987257187978816160390850540504370494418297778490628523444674171595230089335524282959204366730947849788844507265454420397827756443741039559587495106981109068924403879593951386483413792934371616952477033798137942045442330152711947579026732686029006879892458526950026139434965267287868614282897673753143254561584719447829429540061065255012834132453931089597730028649363381983186121975504014620772970193151817101743361340846718791703096020661492960170927528176282894636064410200599711584467070217859405891779555463507851455388086547704347767525325301414655418667433455961844185827007571262705929497195006207727575848772496167762607783503595555774107264577186258917260851623072238639826287445566586172233634820538191341580145526164374245063116432072789004188572399462058118206842471721260638749357220857402325761273529647668862986149541303718043135501624455130325389590643729954607331120504278675113050921437093014327316087877893697142952363058227230845940430813490842771286098055694006735375903074028087520298195735660303407729826332538399787046422435231826212294674452243467836067200570912078965862708743858247437221348153244571588188634127114511833724555259544325812958876049290146514363786268719962933001177125055714196389222568708047340653246522728066465332464965592575260361444587681330779842262994897204567759881966256434574910893104191231449469774435830713622733773922719324219305572297947904726428776557893914399830384601832801990405500007914728931635630543807694798394261716566609218722404130168842998549279702443467082782143244956563931142839408508669149767169254941791836763827512316133625681315921509606365338570192361332552854314172365799948758302691662351073208131963593762070250974385927668574558361161551683117942987780789139520656624114550311308020756225284084032091806032796974109050247051388138844068229899136097344638573952828803230508088572193152698935663101528915673584516239243397836043773249877537669818084899096246595409466958540544127411529112297104066715739512500410178620291617023869375777991403939735651415460785087035504158204711047654011168349145412810270220743419817284880729997601783303222473426158463402057603397274943298700240406881069690758271966312421310100690886670268271337113347504954101341939418354538369078399136707419444475482700551468786035036262300731690672249379804770417488568442676709786266804104533525373811346370908367476100026199920466734986313641552281483718862771062639196049633607818237887239406608347900641332727326393616208756625812867514907525109736192554967049323597467568727691832929831184619700115718684350943608463296097024075445220834691845933407411636072979077602185988096719848242870358405072346581487464401702002017261114389542143683875928691150560500059914856162471511358209925360581436079456926198836063145213653398578846972028671287699169796432938273784407520660605787626220594509452145333291132359186260120590416341863563550115002559088129514107619008868896861016339656161956384085199602248878907418398269335255048625605041063371982003027276676229899278570691085201764640135154060955686705596426856580591366815478161687886295755477353050433826847171497916788334729560877831896973995120007005045649467761618535500828283274791175705216575654485560594733368232723295985960045455905414471279670351355078268827135695273844728178147561011998735495306038824663969006381801262902984898332246147967376833247035526858162387250351825819007697068709131085687047870708211492089229590931970774487305830693833260061400452254299292975614772138917285293817121858538775712036297397726995484089224852523195163506134778607719341391185094182299094654289575754634528743001101483082716453862137572481630734647268709658548024164605054237082644483432523845787877264568204118527739399214850346019493546554479576811518924021499560924196902198765535035326830783082604679950691320914751998152835407472792711416609397521022681632150485531781718349829253891745907549679351906961063315927956198861857333890234502389773620621749414300954491657128653808994653128615140126616189575184217089692040971954950644308832493564594578383814378273535476599068348342707476467591784308688042436338696805196455938882436919933831791001424450605284649596025469119360835826101780685982104643568226953700163608747414621045759586738508963802852453207929254388284655838389581306504418077811063660545086048403465808024683877597948439254720534022656480569494985103288794425873769678611303907988309635363413483461776114127114375162729342781820563575758139953001903255214140704633098588564570438697233333951926831005013467696282784677944205842324118517470792039100585141570656323249580793848797362904349697519245967035526596490806227620606440725323595129331655193814241590767625566529210436664365363640009025926861645481148706900547244616410825741690280191302530289779928730184029899939594172899134062239145017412889743247271560246337628833816894689472296963517627091163639932842806513637946849089232895034254510768009850375531536247264360617460646538844223794453449021192440690016888360005045461452268181370593333861268916353090863694977326934859635698142965525661441495704977847269210421307090220859976593240879312130442271547486166081386847262351458199116828702220173004256001158553149167345659816454881819385611600596930057782811180933739370042924701172506929981523470596040065182444128542408877157806861017639692744254240826308944543262949083285576135299277103610476954781099765863825365817890309321609766923914171488285231184177639149344224139064843828905363501274454983907314770172470059514332642940899053622399556145936899042579330360570539916423931827921885255498549907708346206634835859098004161741640670582531529043718868618146054934225625582554653385121586920239924012553187835380915649240101611963893097008149674881873021083200890037447879220194201991815672762268458749449930237351668376462279830100798001902355905167197538312209929353160542115661543290337004622270750709384301794972741007408635193205642344074401049616368525348923762052165853458501176361629553323299161730105762878134391410961057264930337087475983102513362909389558494192999776789161794728391445804771562909281796688517284771477036435185480501717972705406018665551336240979063457850974542853904477796759404099568181336219212461638562974626412538672528313111287137783135409950130210380641932158069321731453754381655219027427164681693000536508861360672657851099461487910386543354768790187076159313593039770975345401122548661998581126009483163103554377206702019268042900998232349437727106058727498451760724623894890614196566716124629029425951094979932746126766457459612973145561925659207103568194259545597071204540304635160891282323866795540368714342732226911388230216657867737030017083082157248310269333062091798007431911128729642450333138371262465404833671407758992490244014495412546527831730135987280181721999461193494611664788978155003987566273848552796899454847707519127163353216596662532856117194056622339279052001134975554263526233013622074463374787687903090823685655315606954237697167875696724868009735287806396365322382418032253890311297828436564097418923087246791072272629656401353036774154268609826056484068017675672418539109426369813845858323629922382852457006121286249946646941608580630390679782942647851308412040994787158221019403133689934782498187662064993367316267342407500093177118558653855226777074672013986703908572693500696742028651253724966123785347857548426894367322573935110389981734626287841670752210237930445441576207300890471306745746274525209654937318450986228205522355202724191841296690963350638098375849085358076137929900003322770052734151415242170425558744702423771574796551840045068964083654272057987544380994992800870976722605449124611121426980762019728253101735596355189633924173866585130723465058605955863321547162418189359836620982510202733276942684171744903938939770149642149561694438523166159642578750749587518162986403856719982409421729483896697146533517480680559461650615948320233681763878528361194940511306623396601113585941452871159434877607294287485354465260999017772999642510553448287361606334057776102780590036884977982333050628812147455000708966878742314953154513784033361028587571960627145585975117498181312459080570123245824007721078267758828866306216326585822722153575689795737416155963926356373269212343974317122679957731521195749938081546322050471630958072748814235261598413182676983050686309661678704219382145790596828301250006462397428908937626717825557415182089999237785569409446885337482878742065841720658587989188907951813483923275171756857421740755369059091148303242673056902222908260154916512912768184075496622722073549000597598642726693602383536721064811021259844974808696559009535052006580499843696544157993751950318304898719361002271299248667373060974608271192144072605966781825179213805031641341998081673154433318480405103847684216568689636219784473048300969561709893843262662195885028085183656901585253460529754168955848445932163718997300181807162506263487690738429554562006411552842324730000305038471396948462591829836924449587780300895032150221203709879545087120785166575499951098373666727105020440733276101967334985697525733241049572445678664216380932882748959950100399963762804426323941297578585689136723572558486689276325606972409573139706476246998881817879056026942325643346876618776821656871747322259422035485914517053292509737029240021435876256908193854381068137224578198445619582625354128244051594802327595603203044581334618667412685255178860728150948443230340262408547954265247227482511061543850720834051355788508050838840993959667023294538738777385072126417600027692165389361635016006629030842588912491372730706007400760437517682547345770525114949481396408257072120866631150816599452517008323170917517236820663499693082556733275821686476485927653265169562802117083720690925501200263942262909600417008740938590106644765697540227618652046901176618629443670313840482001741549173034558408770727470241358069899049598526076933546228350564240997968912448543196083726358762992220323530643367398722453794527447842201767317024549077828383202371220126455256451054940848303547754003512405356256730691204940926096844352049970054679231242259817510870518089904689925230702138373276044515444031924599784340869048649808069569157666327664833520709220460460669514769299610701481635581579624614437716264857241214216099014490230303256091780803348750941745972361038012979688759769134110726334521343091034156999525154020901989845937171379265929174367576601339569720233503057766225171299752560884223203067422373527236638501486792695763950115197844802294151485040330981385456765147348099637686193890730904041788865580161935497779169138351730322764696675191960926467060285348336320407787725307497681162485661556433362565949548188479273429263941192573368435719615348629032747170086782071909662806276677030044980097913376996138429140915619592240355755576590634181720486637420534765274479964401453325352534415410077035140505404675884251251719962986901041996097442931847979648162679450706358397197857084494382216003766769331305324591387833588088737349951280966006493476181933418930634495481779134143277741575499176092982761591930143963293365007819642122953033213724837368220875809881279537409633176095325063571103869536961137086807099639428691861780840842951161788880553886245201991090411077543183800280010011561985227765578277818662450387699103589318781763244238498268146310524139614007787748078726708388760383325781308414526861647849649850978940190131250705073727747566315479076526828683245847524122428064525789082401658133673477649027308670725525175276185759317147403463981266745463794491662815555225803172999139986676568921559926484746051644240191475256046561884389369774200528043796864500401960674195369727916342118914559859152066306468848459519181900612425923780960220792661943549337084746573591301146461448691831000971653106610040886160080628718158958878695767909086317202514653156244149324237047330140409642298553551812393885395911418557356383337011455893206078597569937254857745896575238285840712098253398455212963593765900970262829740301026488300809759560533681269049600229048662004609588860165739029757819096657194947360157449523992491415997878696991603833115741562410073787472873165041474450547540567717720678507242997766377826725005820770648391576078338936213023893975291543087243693988355937395022310693501111552403795046320060822144879597360635416290441779971908549461736102733218530847075482804642406481805489231735002838707025684489648922226371468809520522447528175159588537745822668371705747038650732509222441100444547044323865143403590072509186229175797570807464100540374258071232664577563934576595413727196908599086041864012818506425263849960612103614181637642725613977706636168997747777469280085802806423567749818121455601489648956560399214346500196532622816176467760097358199140435845433646607540483669959823388821876238150304872908790761451772330368390385378527148721266692447330777481460327485129104641334948715797086203499544220396118081312504693321982177298530873581135576307700085410264317078757114031439554791798015190216331512101922826651302710392863991768217028450987721357026165710405687418952887044388112550240965890143442479872316867813450250293156028166596845707270091667535022216813356014098461819958552823481349172474161011375743928001315681936116220331919039809679147053152472835970719262943611037838571478978743437217598166610636807122771571057437899948114895255404850100677770181100267354158283286758803763572451798070366792216255916417305965289618817060552623683570315824614172632636187524224022434249728423635553095570972631607325859707118502127776274792227175867911443510899180712889162155704019596731807287386666413307733051376940522241029643141185325060817392064581992355128397001516109607767628930205301501519989611884748978913968177052071119311573642250025599167158221275183348272859711674982599644162666332236698637229005852856397884792520747426997254837766611971068229539892036359378255948477016849354379466428476317719436962668074841413372744646779556552514430404447311755071918493704756912741033518551519626299721246839830270906844693676408284529777236931571667799565894643351634307603067723848106997562865356939433777496200134774199194029029519375686149694586222221337758514421658858301512114527532105334062427620084076015622298231690782999436071570810497458418167358939903556496508593143658344050549672484167809297080702608020917674249403842467703941509046586529267764953702306519173302954345941958739290298820127469106055403361226934068828442250374678196258927180934837102801125055549981019689769178265791681757906374437413848698505377942997751410541781081259887514442336131586176017077301910290098322466075409702120430233107295504458684179221737057553880287474524639075969104569440817236830554745578828400009177072713398712070818104231707552157503329588936836534875047078689531367046616694100056900500518509730831039496875253125931030622653669097394073354811973203711834255687139778596677625752258648732325966592073677298553566025995993914843722762254383186822356933785684503368334720766432958913362714885900894095079839827744943473025756764326677208873219174675005067492434534804641621482243997339251410951112545915989076340221057279199891407001709858501875391258946034704091561700336079517036528882290682952929907807486535555178685635466509838744435011949871659228909429452233983237013971980706360226029687132923568697777295761302785464157195100653395334591487791071531378820930962312077867570096473044120137946178600840832704256991263731709688387961033062665218487173321154288738659203251291361032848780525758640449842389409826135938583402372337334557207851679647326621023297796200584008767165779152217328562492104603898198511962015328288503939806970339906802123856429098347140630786405665529250537138986400119735386727011645342987823789322985521393570339035448284514330271132287184788964117210361953214806762847779184381579857219365754127204008054872949468645878760862719303226635999670123786240658278741917217777501238856570770623369815342140741759231709749461592866172159705262596114178896922432978367643700016031430591738005948563077998738423092685655220730209508561540796685600937779627225826587984797310934622365054509911696090301175119208438465515175946830707690779234125992879519731701672303698966482239428838061446840534310949229767036652721412721581648014341182793591097322776725245448577741739667090479181833553196875806423070973292447002164580753766500697530079061633173054301955083907731954050298175250995252874639293358448428806095585293483111075275782598156071619426926760218290606835473138163851583686606407438141546581793071610982228784024761908997028467170312522280548403222220075176652626207630093749574886845538382234864456403039308430247551751624816157101542894058959091502176817369843395952408282513693452204267107008160458944290364398696827904630184167929126782909682755020641943865365367587772260412651721779641498436052471006494940535172977248286051613615758050341696334931475975073780614767900763395551936547516190622100584017246770789360543887988779050523907159600801314534647025542690074220372040511611773282411932710303336850463642326613773817236275510616620609298468552207255164336273952759350989002502183642857266007024198965937515523229078608112715640609849096442352234622605810083816445749226232873384076583964566896315087248732704258661528074503405951140024647332881036987998463794156870817848405461550824947881631806808637569214843924532314500580771461002444015624429656652537394092592439354557981408106043448997536179663007814465782477353781154633342080086598203524904717553494704758660833076645586890438598055595207143224999305769401721677028077665181792686338295710861006711007338980758740575691564516359544397956141246420993040532133382402325966467647013446101470745218536375800140538780166197229637621218743866083940765844743906584716635055637588025058618986379992834211490346642574679295089127139335593157819582160066103020154455354258488457146558342573632623598358506770290894626398394345003036318272539178648424712981864709367289643938817183214022617323110342941705838925338039053183007328898506836583123394431951262578739458962884474736201684715532689187887766865713149220038358426382473851122296170908619458873688357054505988902765775256485902995057576202016972477642686380332183380829081801888178033368918082811534301095965608726090192036779787547281120342009530497633232393282691483245065475972694320790646525372730105402947048335487082841924873909187632411338500967093676742765071133282057074567096939661636535029632336700114800911686828012968223579427356482885554873374259251801078975352422472942116935115447502515461609172220797022137906621916997471581774246337104461111460202709540778982340198326868094849694977547159148426774515351221903479147173612112972943077460998312063317054677137694625186017570138583711137478571710157794246346529660208841692941520564437594957269092246779752005424159020653201982254759113537781640197322213244648861172974339911815997767012485370447412910498733506747945381252998486375567161465625617469157566622777327959688447765646212231964639498308942295266337856149857697534269855424669674913821308317689138681102137091288633605835585792975022437929834435548604789555069736278945452974797476563941982925689112254802641774408722994189855798856367220692888125294762423266655229019418450318990251937058726083409378528198860508129816220672785948872148082065743722417611845868629190272507041073695487051338544245482139799896858157782086629032616573973646856060935476549197475838059003992750986876951413380140309847982470678120532582079260560367855633136703262175002054860137870974232226670423759924616764425733509199186248146168689559803113037716528183330258498831259915041773149585711887080716228422010254145242029038009682686116618718119776636116378681849847174734550945461195786665681212583241868125003574100679341509211663083274703719137896296112670633495192394405601936527775621106997788802256870300231257624861416842220648174812103325053050925103604904269814934593193811021290256918841913145406294131993252156501827412393354469955990951418760730967055054364039887769455260234527657877135488549261505036830154139519070940332266429753445595990189032009457110452101797750769070780135538289523441105855446361714576421108409060264932026263510365818755680778716291959945025081509700295774747080613918124652747007032821771918334510997358968472639493234523196267225535052049015038455185913668915738228576870619415489986850489140447011439283647552003678942612568393952624023097261081519653525790207718783653860509400461410737668348653714314337613453018611862252968546303896299214181639939530665543945010072703778222708811157915100211974956084366668127240628859308958098620378708666865286264029079467643064275253108355641734950227310355480698952125963042952873519275373723082928448611883485049009105747126362154733161108637171762940294225210006789271570538584803262004213747083589547795888106256941515180435631914132780846704958859775939929199864757670055111430506932645964420264487317268789208215387306278642863819840044278016690010679957763032289104997157630914495812689188109563978887365871847327288707256088236164197603424735020230204348357064701453921841487757883937400213349433619933681785713822295303914404989637044646991879500924499957950719587554600427094207853758481579169138655892544531736887036380087675164774826967677395867576952730498993603192232504061736441255578676014916162968873192499593666590730907792540406063340543766543617139993886571518899656654074213558221572768138550350840856988830694705549399329555399820542980112067395960252836400400124377500576084310061284043434094532123065241419823722798236862856818474771792140600698926265893078518931781421252108816153492013614806270072654057692070634620959999120518870798855406285048198165665255668971408702689479017251423516328038618375756398515264233220176600032480959453535880948428234252613183789723127515131244345557869715658283087707045092893800083426024262816101582984919446947131551204535226546746961973281314409181314390131579561015333668838953840459113443010097258604173887757922296709571993971673037067857601384044141082442921268256218078361062340468647439515145462791748455218914272318718100021110909919645731901227144451675738266241301234347651303750476268635146416478323945722149771246540513882034460585587196677362535962322099435925029363103037329526723054452935422296086009825505647702343266323311328607420570335631060890549310852532389792223261945322121202245445427377345650362781221154858528051653994148586678114139915265751007900267323269930337793940506154632671735882536072581556506339109412547343133301933568383879209164794810713283244588423212911905180265136082426469306274903998488736835033098749401444863389543292096907402624128777020157201961816893217819372216649373760177233174100123235623517249828662853929286743752751232450136076775778702051437243185041140796786724188809386263737495568393439262055461653328227967265811397701442818928828833060943800670910052528661585989574813323252946529346775333163865239002554024500970530558665193278951059253084306868067058323733985898711889896551099935318926081248037619135090282057687825779723344273580708965730732167004068883919265300885602111085791069031572584554487991570835381041553573581108015004065493370220533306174817776229332809783411421686222874462569900237844338570745464790873814109663713659498829386007751259420565295704030084988401745312520784911672543105223468850262787341673971463558884981422490864169133062817114458030103266239974076627428174308327193079338623925501525004772173110381644021572853850565164928562728395695702005221365664487474276420799872755867800289796508862034542817591273314589802210544103395687701395129141236345940664167885738007574682447641707882278983982797267870686377020687080494958497664541647544682082132373559762650823063190418961023904901983299398741115968117546442849925724947228348611177872171018391870057770254601976152580288594307360123238752311793999661499738749145611060640792863034500974476695123894118145133301757417822939224606433635700633607304587115010893530163949978433103171796576515150333986444347629939124171840735037967940349892453651351560408498850362026928954066733486880568379955560641018264788434986024991876903815952995480389667125889288675225215547897526728211769630444750059093378403450981362444134310962385699547364388155217598094304438423930943232042946577718304112323831770530187094996261129312039137920195515545427841280485146643119072780805344125434337408273935497502338799861874356959296135592507846172259493342336067545648913764187166868681986800588184338880192036683903172742915408235153379960477528582949037953243757219485283311979858280996554798725756828808149726145202531457854377208743269885650235290477466388392655274798472712540179548422493408598851175183515256013372278366039139958690547672417408235643010525352516811855382626242803296132871723288843016662727279642698113285508163748291289231724336947503718286381011882070028802830861828279968663704560223419085102101286185359350451859442878651734474176736477721180100141041614265947237914507106549501097985215050195199809971857188407531831806059668513677540595125252662277089530202339994350849934731410746940954764929890344616366289003977306298392607490072252583038720810718232234326358399085360629060273347704093794472903900744268077412674106946780603304964217488940385943764084167311683208589776550102073438179994420690335442744589297529805963818939586089075367504716981176641848335032577687199566504586446729757742401930686491063745884110081584679586127879169701370251830263896899800364942765691508337880728585832028193998727321979901796662417313658478734159205665054676053151231251387770708553226436642068993351222711856606627910824398361586754922161539712794800581801401435270043348379713105833593316410524106738893930791793389864300930906589860676050557503776078676446779324146579800814800794993421298139146204010403488990565479910989256035032062362929721311359285610933046624888214866754451218658646584294113582560066711686610226612962031926401414905864219428231465141542299490273827953233698789590708826266593077009549530224503554689370588727926617507955255118456790330288101670026837175553747140714268402849003198492561655695867688577200841313172585452271905458658409216417352195674793730030540899418911874611231230391651854368734496503370113323003083602916143329132691999304509407481564822753098276349348265319781547757680757410757037871505870627707511428327480959620842370843524528258936409412094636068803449799218569366531279297545603606656850071826860299921355477838526017590719118292500059525208661407245848803301596481905019435631296125492497199860190515969096631367570161031301413345472530621599372996776680300512091388893084379150367336697527019355510056575664899897875468249767733726178773905700137669123022180317275045731557957453243954164663684736974049157817632275024108114194068702866088050654547755700424400709955673620364606845115685595870975637913246550132819797094327824336621769451469993908837003599270365414864413638236642488341925280085651542997205729081935318811725913445858979755669134156811882625073690282355202065184428174119746157889446131036647410163659365769117308554527885887098532509583125617373898493538419615105348373631519190562950674161921635250147690453720245389822896360722449211234094942640210626459101341708524831097480330461067894006425731611393387227193756773697881765801732278697291817361063021392473824243412209387553383489165449997024376348024711812712195100200818900593818296377384761331277270481990611575808820742219344094324492664662022407767594467594995790411640538180173988397585322294188377924183685281759053079325212979598711157263676654811791460174701369380473460675535891466651993410004721170123268821706771858038314835689571316120674167972566120105215425411285005749351545812325406561581000584409551247716851074672340572455650036971537324014612121349222693955858934486490409008655359782591102258505296587514428441954254377219731188006783288281316287172608903139698891835834554017582942292063489401710799870373949924718963195971172487100329482134248991634276127780762996955945422095422478336023320698695274516621288923463206712989957376861328697718936785650941050283975580663485786863598401142260945698593728837662910125430322070304190930140234543687851994936629653345439255175952471552156018243903294135245607530568164490276322395817337749171950933967310719255999485596642716829203378714806865982072966544601978565972601771930205755064976367354055998645219513186724058327932080328303373716622875567108893219323247589521654816858098068688433929051332178985164794945459690155281220841725834183476524367674509649110771444240656231429895449924961833994655755274957396911781509802521916777236318906668196816419957999236158846613527935943210818815436820458975138609208245922590533306265924614093419559730933906246012581987044824746052012714208863390905139502784598694036528802470585434776345901280691381296966770756846450400472393979087253993607611329187267652695833369888684065820154751695825963503288177757465283614247566559826666791737464544478504488986798322466330386338883011090278667556298360693976608936193586072681856185997725384288348921528564366641987068496222411957881670470893184019892574309977317334698988817122231627713827290356330030424728420668130045357248651721982042303127931037708942764428423328453012708778117936134559086101311141175583593952784211611004158127062424047905880285188399314544160297218748978555125499204068500812958591302851659670908208616209725867148031795759345407316242945845096793361336243931748871307119702271918134783265676092545772092494988972984725112895881701101207828832884169192901734725067206051926610981743242379874828593328130693560599461370306130623671396040907868977651615295507610274064963729830493633688897087042921503728384695973762047769468193561127590191866906262127577859998627051667015382193549598541864381684428469123779982706644313813043283798140241614005521718003204384521764796449650381475766332689571028767887377269119050072775961903070014501071329715835776197256595771820275760004971965378406729442520616838633993590380311028978783240066098939753651468755712959504735686292132903398413420447767743175168849937561537216712838569055061590413336695557754242902432397920802626101390908509966168004694181885225483719776295389268955287354208242064230005589494391075056950125798481640588069492090019031345458530399818664615319995309497286165938746759726700314979074565837635493933017653827180637567987400151040689395881394598541464783011025024106863559923694532421056032394980512460823566382301132853070871685003061347485276108804329508468497195132505797858276304466110506190583267223459237345307116077653887419034590740015729930553256886224570953212856889520484496175122965239179241352293193114034788768215547809319656730345323708729172726364470443203735747857577875347884701475109545344208242529964095895869037517632470916341218315242121272674944454909415263792251469226808194459595477142538673754303391400735167328012736685558777153450948220353543993406783518671453533288114974087655824868210980155205167417330827524705145834707139592290889762410929038110122931293523138579904914734707291025289576629824999549127523843339093324581707278204323185642155175478492571982338274374455506121005596982108934816080175431628189229822848564454258324533320504505647280315365532845647792033480594610220576635757163713163386235330893831757906832381179978039357383928349796023384636061584433296493843551820865577726016918757687910579569122461328116817295593501458300862610625016834173794912152396439848310286459165773684746307813798618740392627269421812105695257329286133216063176295713285353656388058598656376138541637086958725927655107299136199630926270897388737899786612037813522974981237277413531837368863463877189574777721564735355404948926638465587516081536600696518411275607152207151084708694281375084071439854371911646603497211880866407136404210659032871521067031075499476215065112420509253870301265434477181769636560370863564563111895417089915296559580130707710595503795328684607720259880459524799338669722143553093913247245927803989541449748485169180023410611391548984930532435074764421642609898227563395573902731084451091125536007712178021227642749754779360467262977789283313187300639207441794302776117674480672088357664331812320783248468473697691678265768833344634592486363455996392469344409261803588975453655166257729027067837363419668528247520882633431752797128628283208858233315336569713664772578491775258501682265623516747566956905633041283586468716502967237809543996462667160750163477464049252533351606469959562305180190384942017784801243086640883891743541662259879660329086603375029480668654944557058999135520114145118340521756722477921719357684481706971395400982239597188025020590285811403073288098840557542403465775429568465896688218958393817716078856126853224657683359387769264996297827443199859666323402310201195901529163881210732444936862725160738745157444599277175512013903636267392626982698679644583766606296436290467398597143999165785638034855887659605190594962290817010546702427346093685699507110998307023904119129366605621088129587157214848085665654476495802715917091683491578526537513774494331918046208789966844936034619428246251106937999039665784229049430148989109332166395727345602399081754554150334008318700259175679165741970605772279598643846629476901767418665257053819831300998415828768249214386098054403471343121804335151003917906069892741011104857187600530083695339319549727775105544183783240403738989854231107432828773400177325249279371266660074668042787617181923783207192301097494697510357297418892844872852442424111120622078743073687641492333001656491345625461873937343284957093425175532384656582563724405907529319371247492618425798281089740936174833069526809292193206310670514427476050559100531740015085127691691806709055420699140998208871779303839196904799594664990957756905090673623325010707676128440555032430904381180280101003712404179370314903308584444246396945376043464824146287590360802941919744196959368918391331536522663199954821171745878761167795203120934297284516298003333397421449737395646441652842796230766189774412274148794930566042140453072457840032875566683965375891358365297561023169678683335773290888457042569889881582905561896705045192865041553208433768321231915097220120314176016911154239536614684687051957481055084955377481434797077328904786799520494125145179802592578819481226813739422598413019012081616058371351729279721461098870999319663974672750211110461990506523735131675004667907365426024833409239835164342156683914498338789754643076997619814472615190915559749582278810272961282662612840555378051428540043062486381499397613823552723175051392092585741975310198566964422519850473695404076845394024051904446977823446697666518295716289579847272240378940859006745716154697206655110457520737667855285446049932616196731768811057052704542833705060766237686767497095657911251935906759502052946551470149996108894484053578485893879922761198986679245494412156072983050160550262112185733862270510675070722457020007984227102739263081731361529697256910143369394786128093040314288551148648927011796249495481780475224214210478033538568974009047065324410667267972994556065380914212048870169239908621427443186771439581705736775813482640038969342205791117997360646909164419973487183905725687419710786205630014889923567831760289157999028508304545464584837333165276001708425572098363054900928141364942692991523791625564855874067359313111844657011163521669946491264181110790876202761717828133589594544157958317736176228946130295297955391072668410310544383646216880526641724507613195796831746634719793530973582594015505378722415518221447372672691989202553762955754267627164012135621196652506553485214588743363371760483497251417518087815566493180245093080555749628720811333725649503694424881678397228762983682513595876854949262171470104338096278703813857960808219893815587930725659334472793170863043805017168801663038634428946120121750542882944691599406083181939579974012151240185492135145755094140718160974208389880942233417686003648247157591705691132657872807666556433345311893525578372977388075232332058314556337608072530360960523876536251506850645480953432811616989606075395987595667158993063158130544025260466992488024019848612761411075168269930736627562145748776572421701922212153378651158038728994475376047376620936362014962657791715880096654005352378319204672008615433354166521969060681544852837739177668261085601341485290624335607396387823341018054191036866719257335206068237895462106489822780629415737628090569368069169802615613587579397885159740470519141593191305970534315600144262412307233095132779582503488341123932824100214248226514771185178014895459955879484466678262850667063128329822061215565228698720575239626986142367260825944484395803651703689395298987194997455139148953644794792300591805431704997404643987461585079213495584792427078963272431436353189072252887835781662443773348328851268352295329332900492407222858384079774964249248119130972187221442619863663523455953668813088246993979022463508499895981094179108703110609910536416949838426522915583196233772602998478175448417833443995763019892550469905323933024333030057369562433263290825796528481484667541983387563856715245015310385972300289032442529001657983316883165209616041476946021084566605632804446602614721143940756609187169469256641255741538337550437866107248831952821902917401937823115640586342938283475698963712210868626811020822953072558547903699204331128536656605488992475356905638949952529944157555800537512210157253237475232458953353983008724879460128212674605904166785818176179567114054355083358599033499700288533182491418818623059153802679183917755487195995001461684748470645700114100639334345087248826187905935593230040233669155684726383253399856066969525570575007958450967573731897688671079318184368938550425206149576315038964359001599334926229199029948120523676483124560440458046676226245956222047201605171899643720923567204532113719712674962174917899059293675162990431299466041371455475385602379134804706716336834333396910548685869478204501533973736230538515476100230280722796642265698176510564389149093291719079357507788194539916682471368580369645952034747423089651465994542786052398249175294474070455162755120133387045867828932955360565136322368879752208046349774207154881642716672445153072103113550514925228384291623659930036049790675035805453582408940815377219062589679884025782991934453997736080465651226493575448569787534699807554119798422366599283663674291319124855549240326528221702186201288454044161531983678301279903096687223730145019365200115544522981823924753875285651988295381014857628989980201711363733405061788092998278853982854804344229040543975114542434711992294030552709922554579298383295228584561277914486266439345668668529543923433266022293274917592316916105917453847120930609973964418980313696847923300248837787205388865300194430813542144220743726878130212727592680891892991881344445446185795002601301827693165003803537006329576786511037079741396024330122231585682135664772123149242481304340224785772140500449107795323688392891719017146836095071551511387947541032037185091133086897730836283782379039271879846762838923026223321028796207827067952754856742155164196406561326284586766087057825567880073595963524716954859299610119218019365427919554334710113751584350152392210009864610619673487588599634626710112222900430440757841145033642954979335100594192127775753395778500738026728213295194932356730306954896543253140877985133625037922438507282418377973296485988254356251364644848189281437654690955623995887516463764904233717972837214368686345941516431254700444970440299198328665849453579070263533125983228929799436553486708213961409155103557783579305660345787291513188513143386333419667982846302380249945116211336982408508056832846352159272479693215521772027856203787571969747272907894128674048616201788095531564804779187582425285139607753592698745679795012134461927828414456635946839451726848677173193186631908349596174149779966532351650552043671782645480845939946155321142640776884969424310817362431214441235190617482980559295415837502848547616127708418905639899666834631062417202056373161598099960787639274754663154575921372925780030347808688218423616558462145046751729064316111478730742071708145063071537902715972534826971644841704599130162797274803230562813482014014061184025511614813264538635333784224154942965609387323792688762655892858531339289469559845259764174548925750621225874075887996484404485678842226597433045979550298658207329260043909272835423293052711387219077690989886123404872445228346264239077257778195962962856334820643517481397477138127279604073246407128641303526302820966765557716236366822144930377498502188097328790925456364846741202753399728086851308356409807737937137220624544147892447033628077391626891352873112490066385495718040950379512270614976605981249052935314867620070740194832123629125045813716433090216002447156978437338506359110268895831323784352215456385398491755576573684256331188912018594894023265401675235776594780293464207506377164444813686160066054526660732479315802127493645134815144872969524882264486109036158030694322941205462713828031109005464786447162467829856065360984727819599128116698863852299414897459459959101652203094291734762372181366841625608888885726027668554177682505998153173311518585288674057835930196973187539988763619477161527673405472036201957411746722868581318871766694235091996281317597333260368988359162691535225391655332177581524835640335267575919299495464843813939752167322814759915553942696960042147066831496379985570203664517657327009328473527175298492913338704709642345592122947434323776271117170478027029706653901283879303174990278243129986318959270797297255997147604346204287841338660345806852322037779513501405249917902393262254748414795047663813434663910787060814910526594907873783129652799097299871273587330281223890074114887085026120369887115387846472804877432354147669848450266118244605286993198483797466763777796496654355406053799989031419749852151541022337579505482199302597205520009131404597297820848807349722602398664417026046381828230189712581491959568092368213980486714544403245573794144625641506822067037131185768857070317966690033451471013717930993392872035287013857218454047675516219982475363766107154473226845475500529968839584226823520233233011770107752529131698917223360023256982688380366927432958806357382462998146373337162153060496493929333590244758797655352836472024737205662129130338552145105317365250125216792561909550746816205925073950983373705422633779952462913909884828480578282231733635971035152974235776404233768293652304801196901360552196728486353112007360218571503774326037434909780799467811557858282979412810178462195057052767110073940129974424466121682958888309248963325608487596830691489529985524353277837184033173030105533523878394816219678358194808278369746736170969990104167841014861210318806688666478422429755584684465103151347512255366361954042868126427981303854332590823106958926808632295473572307154323417455571215179947583784887512013203453044929427998134606257911812079581420124755705541301438734687953375640467505861581021697149522325852406372045155623229416862285293072486241360257540594551405746956343064588240560295662444637037367225314450013320443075772855128621337478045636934938710320264484318966630112218202738837119580768130626915485699072093733317538676893763564878535167883899557762098103025714713222845620925105225756056112588971296329572687540974872019390216504554016052378263297936964573347696971931186072576604077164701745032802244503605563576902453545202491146342648430299030057321671734387002663620799619648665454479822266295469029362548125092751488307788043905111271545180513188520085001560910600028698042081363706676704867960004505506655489606422124070741707758093304339946359209550946436738619410173697677520204823355222890689304584709949729317068005693517184691897604929445324434150596673583224257271149437760115772829516272817694400122367614027111955499168171929708702497606544162868974204500539114060647987417968866385006588585416208539894156544628463402230811915067713679195360256671601122706780408693949679549738897535315134147146270264387995975168402788962945830432006709406240933199707524596425386729100921393819611153888711754215504765151016710291212682194516396323280337361315901720030363115044922988456204064054525156043953907741229464908353335772023959495778350520496568911829770476989600542630287629542641035184189899740349179782236471947997045982714062347750395998007698849587106267430860046249357832623682890942742251971937229482349850141205795029604368769764348346160995479523883205954161848207684186393178487444052452853367174512489774897950011707967354235530315688672703558015838523597764938919063376185757536025435474338336000110848400817022477732716648081283491100170015378805968917998083782252592713338073054239654092312344627315814485693157260158902819461103327912575858894656677706669089162775960276456531796702510234320434109308447063327937259972065352514459570958202678168494975215120537692686453343867697681106821845438414217021794123847707730368323263762589790686893353917882687555732456732472384936365890625593932790984400306807030920162313980168879934017024080994986817618345415850710699104699656195601045883716054747400220491174694798446895557932259416917157818293518236497294026976548150619679912565450289579080231559067227021479174087951388107924050403195171431738666069955520989858866491035535101195644453867581334084445960144397973205535624626979125185997573151930256785340355015250627008218149803880080618952955968906448084606983320812325919110290354234729942088146443047937557378693965370987017061811787342228550036576194494136203660833801113076894449245477230905374227704609981604453870471666953794795621221398429895881881766881221537937862353380590678433317861713630287230402939026467753320198083207928519662175309357993456562746531679254206920320755096203520867698461028859944829748433888284040604962044933326692932882790129073095582555956440223877341756273412534453387504386249194004986699286933945859024301976955643388681107063451574883988957217596139544673155433661290796766184335264542160724048633924111175529408960662649353822085718180582762625251196837771925159987797009540671875887378739095354625877115788013016630540774767310510465913775057210033251073848176467992599871150339878541000540651394327861212332238380286153549596660717268343771497366660591689321131109320538643979313282893422894530251346706086880784767800052995037878451575033822171370731175598680764365607927439466867232175852907014118181831071714319695362671794997440953039810509747443828162188085618695364646016893940453311376634428322506522705807848639547380125701403125198091498426595798539971863163313227637637930948206641248119448285592979045825762102782013961409054618406018049404526220598254627555190200205831133469180757705319706166887948017624672946059700224813326563039849387297946542857430727606896563234941121717727490899086835435334165599634929485938991685301102122150908625793596569922827660536150005806347793561446395629267934177478432164071940899002987987604171723438463874069440790421475673185559435618341408270000706646052935307997415780146483526523865897110479632724351635542198756579430590310216799574229377151183362750837326151168984923909863803890861744082403194755160312781678993293940355580767752076484503033419770019185348249146208234288707812472683858899271538726617897976895382063643532177083137333578656735387836523751109701014858978449705282956042473385804445278733859922964297907906951543673333544639754896170482259900470527318205592462551364699736797807157223622754928197401508940279264458673409982610429497652506195609238034737176728643944809325722042992245059983212020119468256939048478518743357879784248891733916476494158110669457580114714931246955208551813673946968277544462241109911958582774348929542482063559637435008987222595615808780434701036868246315953909914115699722559496498423083128773822125553850920407006944017877111888801646860060134141411800976768892417689651015044210218666384279664696174601468553796903532149674455005498027187459932979286482623114295705979928324150179450357348456802696116391777228865690653538134741840799539023916834928990058895523054793894782020457577489465309064722807760877626974788759935293821131373124437609606274447677711723067670366933294714392258063146242591700623415786855428813361704322109708502625363647640745759821392865339866618433585787203073071173348780857558752285053308082163294446964639610901560728750002233192087250675346946618212138164521783214173909668652336579093194396631607828533986292679048254230769455761070382562263590442917483064324589611668659675488603711760003265349570969319222141309254676252668273801575475773100990158985242541010345413841767595982465253180212750261375179032498489703293935093803907419033092354217872806250972146101119388671707236337096804168272400532405258506045477735026197986304496338135543893121806840034050263278794175966736165714511306013026436241723035003097496451213164784742895366200765456457840614851296459724794151328676041465758544991466814083767104976806032542321290476090898871537803428708085006248023183428781912606177440930417667625750610357854999340021290738640905017518139108912352279985682657864132956248575489471510656339514452188754690411124533988320443576324674266868333077271509729176893496921555708593229410022975526650650722405311669820539005072092536833950505464440864944619635269349802454410524567783761844426963827777737429486827447064724744348153992495692804406349709245453375035109844040669566280861707858960751136925245290092305375117918349479053019710205340190523948743532377808658456136502087807920690454776995408103648409871453787360219632456423004166517065595072753763778032492381869275332134175472814171522203928756054931230639244148804783147520905799845897422726865409358934729392114071982930037220838525717226028555245814272126276138601652727301346434026138419852244288374276420678368667066564503159458065829084946645110066735966856749960817891143002230471638333239989554257429662927927791321295295980599274063274238346904525308345599839396189373107678324270491609510157124539639451568599612715823345725569219793574315299740457509543939161656823482505657259027248575026741522262364996497838040040148501044213013706811627419897904185945411268983652911161079830998226115528238319712984620651186813735402754842725958345437260076169423605903236063806445155153088374198682627772524366569880407875994266218366812518611139585683237787195120258070446143343902085599481128603252651925278934185641761195852793960731048397305091683829912909265482918190156414357230193451070621281418076521164109791090894702663615902816055725111474612369126154217906555132529457921184372012646785865942817872927133109088394732668069992655185773916841659821658214811094949035051458977928117070033263612235966115271758609587367173514637460952100113022280361074666125753511040067556283428106356194996315026999359562454937188106840659247143097867277612622901887721167562626497395574547429772340262221962047867158018946688450408224813566374399498532948400527573903658188031565927266581233567960867022227465872120360716001539038163491702439803762956363904276192091387340833303758175990623923271542146807931605965722553203545590597288980136567813321816272966578834805783476244218338875458138561241898605044315766560052050237705504937217831757526767282311893425140508295222544764300969278684991465952942286230104246980452541863080760463777690340747822763266835538175844930308642039948722844724237842927395850168072584403265604832388061817190060851719847911344007612698667321807726450100729662073184212775633713963952328361942761961729433329840547848435561434944791018137679876204297452970060527269433152788302580812196071848778521176785441431506646214745089038637130473103814550469650665190959115891456205682682209901241805286406766008232818647920287096676046242189625294943784302708915622842837336440657686766008697438051345443816108190058525299553699466487521920324220357658643974974901403336271880043761691072764221427277935864911048187082644036972030239539488690721881165762594040107356183607226617785757042267566660931709860655895660015465563970874556200702909407437977968235822229803658152708560180662655845485268496749199517473927312568671220009585091042196509239094478653945691176357328423572087633627213696136602870906483460548855371204326266325508055899829626512785935887219700196308670162829184381669756573899186879138329808843686202544922589655871427846893980409061567980004070983117717993208969436756528788266225684695260803888151942683156910920384061808557155428719534552263510385074756997098853272876929052981415277802300098638198909771427862379996865594391424810410149149474831477971081739139563957241287557882695862129221948557704174213234772729683338208165842010186192856647923774933885295114130195182176981221906116177349664600717532121610228174035877627831444588898882888296827170367759380299676871682773341731115010284884946657472621942695284806827265781004663263436210734123541079419081686816771857908633757109469301496359741910185423211002765847189972412384248370340794629107355300714762705760281054304664977782856056006618855000543008368449424258918681478215741763387420865096841943830338121842550432291527656142336441607668347226639673995272663445031280389509296098227179816755236513691099569283563633445987499892939506284119524701235444253734405812333344090333092662754271842369247472912829525442540612006354354585287113983466085158313515704562847678409235854629956892782165904484689400233273261329838212925889522941450254636887606104809345148344804908996643254914047237928250231039351248501143632432534795603720262143780294390972870921417189652602842809272901158502736651236099303791344131521105131099238310288808884198537384546589284649799594434150179911308258127708391991514572588340953029756379867685325163943889759163730230560551972168228789263922404484055393791487096619439789599123846152410527270983595047795971936748958668829929165383175652831720715546851853951299667909136722074507768977562740867466616729615224167970108671322189451474209003243113658754516580392931998045759943312183618824124553672288052017827889846520023404756271816759306677052731493295937321083766692738313489122005388948912448565959030728217183453481022755818753275005197428224372403833244007560418760072429282636793144939863717321708475402471138561553998547899455189800193305037615630205202742404621683363921984334898553287109244969222446325534110461949303350849502425167425030615860709393384037482582412950631920513803782059012590528944245457740711926806594456878544509619357787996630963493208437050580299276182638244663965702791916389557616695313376279770913756292749044950799383810118393480307911713614055948018833822270705055020944688968062126663499425536203541205428383260492525905122448824078845272187434821172965503769366528865326986948895037703525619071874130238385001710038028870545058238830761542843161236741218811409338754201519884330623504427241815030317060849896687671688694478086214023671683300769777341814516862732342090944449126162689010446797982134724551437131114760052142780942159103778880604593019770612286725783789752781006946273606075820141485598650469910344625543377491871428708299463747851093990751216196871925809735028766094510055651244895251985586168924445109761706170384424284716630665416364579214713045807215003054754399950994261227730884154880301957329074267251230566755571450493525152080529429235100844205460962290924893975638525075374639291298429413165095963249893247203267088418695631097100799112564701832640145140441951050889444120314271228059668975899746434706908221134151771603240492610066197058961643072758034167232523937013061193646576802011483230218590756748285666326532670766357062769492702755961382177808360914157912850919939504445286501778869456834180019815112939816246155259680740579976711148035232600295218903250989201414230083516285267973418758627201574549609167349174144878626036421116891341295247672151149631756064010743285445422380664945699837177758313698692879141377639107120041532331606050193433494807399141269154471592782859127469794857849075911967992886208282397388420670909072198740512693828377779256870786580809948148295736137731638245199170586880636113973536665841809669858657230335105050084164721342378843425059948404492280268928833413038799731042006603242946529466457704668083648291370725247606970774361498944895161724558315523030722313611623840348613026941453297356591376303810926133078981024384705436232004080143844202155876519984935445571191325256122709554688503978278132600749976502124238272496593726515278324921133065418853540779181590631870596709930427080012975500497041029366725751475311862964389609949260531202749963910866948420198393593742673084369788926455545925374690240331057932020343558507745483097239985540722563510565704653563200151160307329810360514286096589142226095395778575691440941887825483602758209887666067724164153477667027332762856468534706230771543038969911960728242119142529391861302501727313431616596915749218003256510205579465823658638270986922065767175892399144361988097484829467450797751509363142055824545008205437307378382366612512818341416178707455145029194745797709323429607247579175708042745499628394194668508456542615362268839745012508058442406232130779875127740216988826467019925798501236366147324373928255456589446719167361284566788919106391980236763497931335582079755737692611586636047579616940924304344757098509269106621835135261733314594964636665854575689898403258276939358966526115296268020015904571786922451713051133126856662894333125020048818909102472672012083724656889383317069361387453420741322677101069094176209091827607543601073408303710346012124875886594720269526294126746568347246387150302564773471626300233739114993238997852577028861395852851023643233481999685768581040972810920635771645714180388133054920746579122381427161027183042527756621790702771874288178741946184802862865016400041887324615515469011381813034893190061562027974580345691079041316020436366705824657478971996396818402713178067525995985886946781534559153142982117670995884794369628241163348164405299145291525137345104740646273191577627370423258912031366231387320553462855156769083015062474252003246075340798014031209688006155480795753180741991528691135550301567062201279197542168203083154738449594714076100261796896809512434543334274500483938519581168989135926402055721868405285216503960402471669092607541463404037759020488208797801558972355018500324870909059447383120281582419108174217897659984245531745521796549131832959574429790615546402683607109789997170494904767180906359650908379018757673778868902223588302181004189417861312569225508944998231093710859461074996741294308325094420202827876890787356706458879207185794715936016376852543935177726121770241373688548494636543898259936227185368082684310770927166249417633284795601936681545342982936464588948539966508290988837235142600338145302954337249358823180664291543503651511893593182488200145579358075614290384236385793821082060702022495389523378963326463923085333897447552479588299949125021848896819623293836456620588867524004376156999061372679283292375348925098958447291902626512311364863439063240372554832270490354045568687343802269227049168642332919734931409181045162122525118205556718820922774044745851408064971986976169273797730186221694918348515840228682059623324991240318598261239004564011765639047590038085227084342887906676540490516650883516102512538975595952927642288167811830723517065134239011312602925846216636047518858949166403600435982567423310542581506343877449175881714930452485310982567872875010201193962727981380647964377889034164360198026952779647166108161084955036844597908979163683812455827242566861269611283700064915166282935231623004521924213590474052011932249109382829573979323204874677700633770705245558475163013261010392358483257259280584986341327723656254032363434565296611885452471873576409990472825224595243550191270358542583570253690536520592088455188141195009089517622251819786451836387293118450359746369750051545122482639224312422572843684969897242807518128580368516836543399681543214561734995654438889281588227668364631942617837631401859171649014754369711307681793161776111064114693468461547075651610151349267636372109215594890575748533776703504359595462288468100226018650554534023054060008314760701967980309801417374687247942595069293336099960760819987664448434353667247564480764187940622562435350593448350201591081608999899449247797853026347209520084417260498679115577034894295243885157781074646244712386737500853862425183264862746836557199519449262902830558881049666028883339247334828683478878798972401281087278096663386508756838278551275075770216798928425015985683015282571504743103945045308145791498100601788627705567081162657719721742271227382406106128122270451576218009308043345852445904105988134868545566714546808752465793893682348962784807895911543430737147398596643750006834980401369588145955865073345028998975303323804652614207444721339889351235369432785817577901181911419760865035266961908303573479913753706556705984919732378855463493095522057759176758161740301886391458818801550104829982338853347259476727205122252900704095668937344156443210783382919419811174990837757623561176885896391361009960791918689709388149014657064172231604024634822078360391006916816330150558454466282081904872101210334797834658728392073777434937574940935911156261694300044198403751769615208374740896788502636330361844586172527134080129312458389196680870323608045223136586523875220235653871643784170354533077712987555340078153505721373273333380464179108458245413117976412452510852956303476078031488125844091031277132490542225593252204399243269036384731643085345676967072160487789025981999253257712517155741379645018742131276858581313162176486944130619167834143322705457528194871259823841644546348089355226844384175336133880862795743824790362696356437801377475588911151790843085930753311908780145153642162814247491479103581440737752052150813346524557825861511285464960423212409498687100455197385463456996481351011371185769786963507406630336547565360066212600076611591429414031122393065141700701385911043904291109990602464505872133871643190394228106030553892461199019614944865689397970767681254609261286145691987246542842363856922396925374796362825066568405906944354048083091609886675502173112965395152946371857415122380893571240405283727435334433956637355148709440473454813207207775924453269247776809352242018241161386590625121975687563237838908765946826143655737089988615160150262219610565551740481726841214273685298271368569101573918398205949238282011825427505944408525479793633544255460903280883002121138752090079133677540492950390236200913418575807293854367634506017683158568314744989083292427089154948932263519933876894204372922593885150617136651577953218693946250414791248799068306404718704947407052067930612481788485831425360386231289940869791928421437505586417515210816520085934733435538802288179178528884795568077403748438302800656884986681697651343918852492347911052167136198441709335174313460588561558373311055175797576464702418254145615357914592075796953367161533150469965621085780448918833982070695580545101166212933299443824246005579568226991481444507873036673301702242516724193813003753024778530360671641786262834915990301233541876597027233282309242720485030325103889873322061845624227420638774095548781589182251094402735658811566364865717921467370477440358850495955543676693226303559383612889586855115516951725821896005696751315496808239237377377596240755012779357266408165055834202580027747440570043048263737604694985260723276591484781532234564054940730960784196085643347885658999450548835251357198367298377785140218488343504253887943514730940356017170477184411924036063424992312857653915510268205147171935073610845782720166133173422939169357140311311666371759884523192353894520024380939759735461074206817902185008674275727650557673378098609260094811334929258179197663112667881663706833576474448073748695925077224995993537764597533358936568727913213982095872774500117506642768758548783947321950410641068173021467041330134564106705514726673763023456503600684708866454477792424278805743594091449950452134631193496136283719007254405871829780325264865432683136315495327967714887964213943287182198966879276497055414003715702707911954443310304945910475182921998390511807071568463181984388291293535138813768304042411495188396384180924899617683897347715810002699650259241120964722294555960780191408405262337074604646245602729021392605797482541014654933622052870393940491609026542945439119765325023979690147323122991231953792463444009346268139916947086948730584569090831401634629063794155349501950779445646664281219967868985986014602317160499212171726258037915399493106354960958215245771284567748643494070633383949436663390191523651990330679176533583880262387133373139692933262706995125043668364188264592927368094907944994581995741261558966049766856568791562901863168595157318369727510711587269486021833776312121363810284118119666627750141740085175923046962276493842109826052157026769811423964763692102091289684273645966206421063755041755106485657760399059486090728311976487318530098997916537320326974503258421275659949814155475297121692567478601925176514661505607636016037108542615169968899206959664948064264478558990511369815066188932202533910187418419747849556178689867209897313114007037444073133437227102426775348492539261252714127322296841585571499570466382822792068366860084399208870554499651501385880725627365645496857158464860194224466695913182227612573521473502745812669757805803682060354583089918073451181276303067598436758449054259889381436308753071121601722042713486211333122799616956055540799448876917289496320155933695684267040357986112956645366964807015946895530489451440470267717732451595031648684852270581282612132277330568611328631454608551071610782841389852782508763544079013973594463435336866425879054212147631872324699148996040059705836636913400027067642953929780793316183135298806459094637694146717206378274034394420097721927729238747078550039870334024219304494245078259616639701370449919511760408821164231777802252881280124889187256728988006425874370634607883194008350321388794913805652423883698070596161186203344750356204689028250529560009747995788406094300355240384130195406220205081558995109186172540288112450158930061570382752176894822888446806504132881415208032185189992106816883246213345865456442918161710651177265876665085856847047059696516687873589692040503606805528655529810101612864037485355331824582043378885731416959312227646724946590718127686316270105745494873348118442698374846136887211109504784746989598031309413950858161049004278684217532228818405048535018066927774710763547714305972042759919143370645607725831978636607651838333732868244542820642965908915724887319076437097909572915617894911424195975607884304486279305618193917775513483826744053921220907188747077661707037373249538535549673288366409484285487629743066122329992418482148662341038416753621403292601095070325879953831326694650945138679504995243939644769975683446371012281472863526646802687968504213202440925740373337982200647708718340667921842619503974708649786598761305381528831473596874299471187211995560183361117479695612448729981668761078996634595934282795555086446252691517609551356243639599156461714818253258970769768965408296609299870210628757611579101480175580007185140580176189096518637350204879679550389102383673628639945792242898332283835865062773538285197520167754287950447343445662399830980647422444722679902206183354985140539505716302605407043261689998691310879540575931354570595814555832629439778640225926036967689657807400589205448944433615396031369782847660903849329724006726598049416493001012020935938282314175181677473161152136933103153653026877207128393989562332427146004115014339647221509709896754890139422063844309450743490215435161021570206092497453578492709764538044031632954448203373015117592322548799925352758040652583940235098290934308329379342732400106432038261456873451681449614389663252019907330760291551111945383577787287589084505973853586619810335966358521047711842282945811608678588928377889042120041829595321519625902445160843591166156420295222811027459254270074989532562348508055983510659520770692409729601605236510351251174365562750536544502169277845933386183579865601638591829288070439941310536655431623860626347779194529789829251571198102266483162396758347779750024085860942351029214569529293461262523943537518514219933155723853515668501516990287705501623956737527453766962499458308950307387271253288069912614214166850292707213154062137122998907577288313829940529088632576024221568609312726878384140978178615991303822070453104107052215515601379006711105915287274944249604667329707597263179331642903310102590216777484515694279241494243348526712527022533044548599156745172830742488399109178162762649422818775428295860249007401195657197531611203825547488371689271961664061679453669585406793285722205654765314996028128518817758084858062932543849305933312426319296431211634993368981314960606475733280183448170176452891250475557919367696223359275884324468380705362492992827949850731694362406988977975846330576346490527264997675316901275209164521366136115294335685872766286413916760840634640508658504978826170197957007393612240415212910678057913082424868409628728544060983800291789699532083617405578255120622536742219159745873907875637380779115727167035163194962760123680894111894918783774149160668003748664108516998770659762426404728616284881346247509244485790466901131531053352180414817199410259336055433912800411107159728080644017680626761819063905702410561001852473847921475131648986499656608996813906735864898294658589059857318960488105552319600412604026544343914385001442154717635651889520540549469191790867281455370021830611788923963704122919114791634373106470969312923265164984905152582831250440443966112852414272527569175009738095170357535817362491417090665387406469810696456083702281562364474401760275430983753430514035571512496290595775113039039274483320089956588441936491297189974803357630498720295150325112910169918619050252658136013456655604872359163921289847761422689187123294538821196936578999308905820110029103141674695431473289153015151337544920039725349686808128946331728947089365538390540626916958710003614374836140412434751631197002660854431156063847075411415956464518932860462817792159888311420112585440350831084774974954457907315242806532907477023958570589310790027494757726586114474684225646295638809332016973986299983913980255404805269565689952077869869243351571856393344158221252704627784919637308004702960553511009211274050521492469640398924646040560381577000160149996201499648272569805473443080302646619229735505550818222324431270656372891504869858128327043131709133051811990815197996348453494644096989636763545382359418705098979636102104177286623731386443960108168823290094327464893842228231207761487508954310895677529404850404911019766524640415785463251724010158549905564963828668781473843261442573585979300395746471642705569056577617253586952745314639884563337307987185126167955141132969594612911138181234323627243168891674556283057891401556097801331323935061358321563447625867390142273623651104565661641108792343615741574634823881762487996826468534196188701119263979368630706861433311585472882775890172659294945588333085497140794611597080589022804332041177298965814771306596277302607628897282951966286724918562913180258623270628193726276836582425587185501439927446261338526588189089906677538328558416901429661449845148179244133397725248081546810542419372642375153652688860094866400011654100065838238567181905752139174921356445871229952595896653112645435037991271187374896174414397052110886286616741319773990809680304286569624367318404568716885701072355137469464736476826611453589808338630111644200004829967849756227148084685468055079359484444359030802850486922154949702962252100379214981593472615094189101427721363969251102662315097282203959861782144646468851843958592331120444372797241640096235829600449546247741233368109920280780832959269054071603362723054266024732075040805919665275333983168168957907899502196402158033115098886094119873003816754600855582276600464252466753755189146114536209390634730940669484315251986426206712964834324063436109661971857797289185311111313160108586753706249025988294178268370686249003244323738058085119020773758697574864282021951929769029278649066058500530045832013368870917703564151067400785180729735248812529214951988639420327012555066542076133156146033375041623116940864827312615336973051258874567301822047139117429702618882250948225146469434061620685729453454246354364363132076645722973919681823542178638568713121217586842524217443874276198466119179794873397463080389397724366255902389221977465705774692221447494254238658573641206721537274166439136351851990864075437834897017053947969389790782734957230737532762109712249872356107040285189583463630350139457798306615386536921873976017540214249741122513533204719256126558111588701209751860929215835196055547686185102514765185738792682210882592112525484669149789975334686520813007909943990181623545200351059804369710787830127683045842842066105735159937713406937101796229296161860412998522723422290476561495009576820237693261459692300569325661458424267260097265780931355391421264829671593999938783236120396593785381781578665879871085278163350529146477091212372305572869832001083065563678314856915616734713583987358425209770855071854012350815610150419335625782987101930331169032416339561364973552243518362752702427322159355126606654145329749633604672536198425143366420141832596063860908735041690431473114125979130094085790525832351903997515252510341871956857775004717599161945634949539398963693406134643970757981667479694578762877192179910846816073103213168794103641861438437453754849876649468454196053246938804012756363824706639041596066384029022146965300319201584504640662508843947594147891236822361254730430284995352565226912196997254614858934695280361874312149440463311437828234428431732776949317064955788227373693495317729904507047651220066617873161320717421098062419169372211577127841328377772773895256814249240155023553034194466075768118346804586852383318091514158780560123766747074817002244390128851786379205265201407050855459764454879630907852342420589396450516498139802716628114974309342288197165188328581218118549770801252285458302039401113986153255518989529059503518899939549304862404537699476869319644781165060729374491468867445462852834273825000253987274165324290717532316958854619538372792734910265261929826088461648691873117145392597708330402296233003232837782369416687312407005470104885249486929557972146476439586326911374233237972138904059379126440495645594727559200528933813333921721153697812427222643698718714816346749492709627863286270984585829947778183566723780890082087821052502652924741851279095613405219781810384441428900155825717052643164234351485703622561157590329182034930220252129705923985796146809997388224682126704116175083566947804089719156271080612424438034873264499407577062197401138790360949022397743936001325582438329899324298948222156508791018341502927962332887033824933228913869428767980729259520348632735707930644487123018389045575666221592664922733062032394700627233481248040958172283889246425493326164706526415209192295683061029390426008782571267148560372926369532435713591750864950729367235373744345613445124053543663949277939439910587727691892911502379767509384485613243460241517043981785514425993290292640105789124349057117768004875126471804087407731789315753049906238736061046995587905248985608718482636693586520290530661824544685008779364741500727201913860676862681521778716449255771213487353303341802769177602973528712545134759057117911200204762171637563486167952317432203814749977669746415485661227759258186902295006800172455542535767600968220409852976183006308133710741142519415289472969668288009177379255570958988326943643064465167324232411271028201732012603473678757460563999943449187604113351303176452628076135338248628811833211235692305330284752174205000494223050055132061607985454396766220674371959390041914639567736437325146450292104419996720970736209386935468999789715531906456169915188554296156703507309547596805484626367518081651518391988612507118821436417630238751381650190552954546162640187266655259199182848553375201289721969117820231517955861198108755417032256224780794623123163118937264845255535502559827823092783021934340192272643127172086592955867684105558620437483614953877735896569761824517911920652909821364392841076736345203692906318952196277503985044794055467840310395253403461955023310331325029740772019186778255552154844905774881351221958771538593741219015326745443945116719242263394064527152058606435543944312026005521547557215871462300004304474634012774631911318365029446572538814834853522548003585963299146756068850326554527696109964821672451215632167354662552290619738302384491167113383927288533694114658690151427338038557591517109737835277994161080445691405040039602513508899319614852256971644329542962460624784272440969364240024641844709125733044275933589257433121441914076848775438108938143091976188851019690736963744539503650473908098897106679236712978219732312357810359001579973579760790841871512987855705965497583785836843911790475591043652900565207149103092972730927868820565302421496253996016684809998306503357465064403147611414880486870022542404683702306877470988539577413481320067785102638811534905735794971426101416153318660682041359679002646355127434475664166683921311897041958716677705790243564036372096997953372370552100995433755938664988810397099073165518619616818475174931591865516188426438713361172118359171168166388697726956239019003147184225230441782967065718122327146304916028597275837514524547905490783472849034368535095628604027082862915610989288888951821805074283207013983227781110268455094454865728307973469388627176958768632502261168346660441570579417511735989319147581874861597992352966551635060286932846439827980517518570730117777651463981410715482649838133493018574895169054680997001594289662915135859967666555553473356143730431670831734000434704297020338543568880274588276921117261776391826845051520593347542712547858476831383452004751561769047876314283532088718963455894754823575659905270734886958775547450694187422979696921571905515443145922858608673783836604496815704423546062373399833936636626866339483585895449736014640884902305430512771895401121520708139766154593477221351441831993946625840866426286793043972627711030245670303745172849554181012957036885945877753550403571998905910777306134823098512829179093469223264279007968302246266734069925270317855566386251685629884531484339586982362497662792918635333496659196588177978994167568591513417020425130728189540042799100486437626124669452969541114475361296913509577400731554434168521580724310990732737030432893128545711660544883990905825923493476680827283958527797898397015860738476258662237046257500873330439492518278769143614813403353432114454275576352273963878384524863486297355604968694665525035757645909372179853733494717928162836680112880999851517779212052907040127649957777859823059551397395678881993830070881861446872617081348921345837209021241824096974061457208481416514638920830882406970764348101188186412199738702352388273588657282084453454042960890178821536660176510392789700031562775247796006025427285300633331569938097707592140437098022860134364341007062126125400247113251363619450265768509130540022518492352518438585046939201055989700512294396079177563725266529244259983959813101987451796628073027763596170951840772780897675971089473366606634734331346806771081516380459089564740335533397547606470970545956117017986612378454806689136125418097458194084836842074490903609178095067727130719778361466798430650539904190232609424248659380179566844829206317890673310010994518772367831651171414861556649462919892799113150657267078087453883074053471738516744203138755876946191592339776047827970326003807378910268937722113707057813822580489918290841354725355944922948013197454693543922960551039695630671732598247845552192181405223428005880395562875210492848560175251390479642985128171359610013995239881564189417486578088011963084459159968942322112026595607086746203273920450880372343906674314358638963502794923755473858899128821098572911858229221746536674823096588140845754985364860794677696550694275441361820894457410119196189992315868647022255279383792032599946191472034732156591130407134295243997572870053499937143054123012474279768967211835016106186283734695596904036495454160811873215608005144212602767252597532090554467146558886727772893659953337388908507112243602629339029926753347602568920663777267776259540044629225752996435414343625314953863038825685393316356055568653748536524276018144560372455401868297792191564352376759171220834396570436928309540015636530863369307822885380208279734425168012643630291525999894928175725374018089974448902881380709639985890203024733032309344410841033707050389521330283197919509961024813600384289553388323426863252554989822160765853559109808751692076025222814494690656829364512108804497999627675118097688861343049120785780894856365257416308085074865850809387213507361420650061751470686643784603705883017135706417047937454137347611072331290998812711068536657806795587307567305862451370688449655952764529943052681575070979428835065314902545980761834129443613014006453842556033704247844795889953333848298056925325822726514798006473514536087881297609329832525957748565874621925690879889568884290235875108179171698715595694209101745834663316682668649450299744128121626673956527308297103893771639742718993953439191625797711262265761514560001651753737039987416365492155084901205797992326647185181815581804920782086487590845394250264066313004704590914395614832039696286425736020127967458480754517829715807471738057040784041855657531629900689577598446280191551268008999470929590763621743476665074140990365495175694642272375464851842179097059802895737209673449780732332583204428027044102986463625709484162056627126866217400126441728330980517152997189592823388393796900101685609017005046928911641649555623616102984068326101337906270331206283059105724625005629023705484236330948454112179115310222653534189060481511178956458449907823230358292058417880069983803671801653264003090471080213366369882765480631400262501951191173322640026638454286864517319463127719812161603584546496395617147412489804772691121887994744560733779470859088851851326190124723138818985983904208250674899273990362794681820243286167142954553603950317180456699711717407715751948794271496206586890410054303875408234979193823358312543386976503276693104084339339378129193295772951501532663133857567167339281581541867410925235010708727083009169582574948481664574661181122460946342647522421095554327489184303632001110417961798761858560184699375425998387689337957117946681643308528771468425013601351395965857298477562585824057061824209017515406044976322973619324410226753772855149919054363692156268279376684043986702974049551108130255186787415085242794304588530516480855799111877775322779328346814526989221321045105750219595399257378593413140040312431985417290074591832776978037059521868545432825830893215286928020402521486897793186190122331011420071592367119136705625234823662969259426412016884057131524231502977788007710082120252167940013618784360368610901507571752997001088320193914227969944424518761581721067078063880072332885072659160228610635290479308757079827672356089269910895743962926857691608739444951575033732439317084431593331644644683296592556565082240068974757706102350458811327981695117923477877637443050028385394492427204945340626375048033657885729081438946793214412496051953371366965001503012003674369758589984850943605944573847427514031108860697992119829091532345498118432075498158041340026015637280391557834614457820002615331277563382608669083152874269852885073621787502763731506289453459704051927139520082005102808775475623959536691406471945420247852402978263787107201276837007377785246698186137751977008830797103588054881920681857495630492556311553105055219701227726905692780695551796309746134088899694118532602296402742391569752479734488343874690626698646835210838460212253355217961505142285361564871610443033244445398567631640187531618069847154536630260899028765273067374873518224314683613336659444523053024014454841602842763647402466673893056282049901633030822162732231863211839038857146204071433640361236861693879811658276003907518918293179746435758281471490708429623489213641977573226477408770063617901157116239464767564707042756031306268303402737588200293530984768908325899434952770727113401283442085926914564865745079942647718551930604357381498362979690176584879561493032860640647856657156036959784882685325293415027241349942320262918065007275327836645794321581842732136489289602391433900338103522362302428063186311965196450671516081395846898262534165892844229039853243496936158874142629463861674393741419954833431222020843810151597943168188745770303172711980171936948539670150063462617845837959419932637786540695833003484384709969315976555144806735188236640187063729911071567887821372970020468665075537750301924834510012936623544548692242773051071748936335783392119451234139010097496192133666723244002253733481751101377713147996966977142546709181638064876027736912528654397989928689447300149779845474677361091170043337416004997093905570793079783614305724500445490594357792606642905494315304415694591950725624693891019594527990535123712932460289430636055832762334188731695405301073547794324971577952642303974193743767260477067806291009224441853336146306978195556766221220081176280332075817974993720044185494610768904422003230656649660029797812158971021150583487690652716320034818218718084501138174171823047962454666790303192104501520011272858139182757792113586805602031718436519032687752090010237365147366906698123741707330651619248444999470478948324840634242832301242989996932146661904292393564935610412807219155946691767012300240875959625035359241350408870052257486423033544357676888044592070145355478875963325221692781078135885432257917078443679413115917055914259049716159405977883333658298638640875657968144029547641897918530521201937867760464161044429528946705569876291758510076958148716336422086043210601375427358553185816677090908324040232258591274407273221349563003312360337214351373564106377891824205326006613497199107511421907733194098591233150094853368715449283826720346142202993863875106491258413198826461561357066056241619682231394380572311427641637545523739011660636750241619491771814147617861892040440379194171926417109960119246135305233546472917218612130760980101411445999596518445375333993254724757150659129450448949104359396149771285318201375645057115386033465451402825812014308075531613734677019535017383357236485430086222964874630285681050035185753476827397103455797561813791127138780721929401062933134073806361858188277483524214130088659237234391673037628733444663527897211140246661798652929723511745912681985065400750757890278593108258866523807593179220137707298151824837095324216166065766540267540663044776219729986471032171707638551458768359759739313323472127643291271123213370675129526326703409966869054518423617627725250104455198081340047552671164783702451137521296056931799852299874245494289819737108095671487693790944238274295963869411682767210496028909079029908678768397188668130176417800373931019686938016543469833198188099172049669992217363068006847316001385600928573770178760947399911300045133629787578835123258275189125385349501107117783988762336681449938809043038535362660621812443887367439298929637783716475279227849238238891167182527259411012507623928076542641652229032366318644785329592805577416599572611700869572472721823592289385167655754991110808582348670269844939058694110413425055632037025010754479321042149619811402438425749299889803226032562764687752015612375683961297745772468006409317671161493252079365257659292577656144628265035544393576036193813093653910694667529660450248778537111588215805539127505607816288375674423745687316278410184784223735930724853223138407738023107598572029016201144628044644889695756076394017173002050963023166973536549829981482251593218365194417693412153677097981347971805066780254681527406299629734284281381691675820957103121456858917730347970230726241669904562976412590332699507336256314875075718621098073452921772483677871103618852321866179089509096508277712961368038615409367654996119244254248394136303571903968282594074071637522749782460297455021529604754160642122886886215518246720838764276677927548900991736639802498088406044434172387279550960657190222652420912312574991489782568198709400863452374088298763719694897070540717363830469680636547797570522739130781187096738413205324816627744838031516917592792405841857912270964229003313480698303946035158295612488326353733217021210953975276581993028723080952661030345111512827234743620704239682196315986199191866873536478837658886500400423300350654561077760021616431664427346875555158194133701674827949578773590063913418000565496568732950050737117833732650562834312610920350231897644638722925391567354455176440616631835455631413424463314696689034713094806426918665915850421254733661713806711251664344867912025474568511899326525385479445926968506202489498288051402286222280016662288027350415049202833829062899927892509996541219547445775818075363288646764229842866413347900101129715560422295012791113240207037563988678523099036104392453402167541941970335721316552050471101524244647455568509245730285632111605707320542173250101208053899725606031226863449910438844394479588044814355414425869769758503926677868119304921027171879932371925294518297704008129524740077913500835482429948128841279155004116305294060524481829626765424827495051512461021741082632613655248493364641485276746622972502849158589547627044789836934461054576605937812640495329388755576692276481705253441943821084156964801659172309109806825660989843628206458261388790694664523459866946487274665902115428040256201292218705996126224372528623339922081276312037932116149777471453087025103414650472332997132779426595257548126745108099613729785344146654529136364230789817182059895447629994568723824772296403324535377822680602332119926036608953230317327832905194316501119024000816462838542309032208334606687344222274069243211062148112147815071000901598122654209595675235376216134426323257036511796281416617482577799765461737595207173240800307189189501090308856274274343510547328545070886959252103879011439303765394931427641308870520187564440225230801289377524053360996792466193119446841449632447712061161539597589703668662479830030780877923335492327781705855600925449378498400667251125125330041940564407052550673637429022217668570898985612104968926747143887675725192636174373930546065593593043978860053605206696486480384321917427357222265121316641420879470369685656476733276168045597500665931321562755731467959608127636616533427395256739632727477082570433736396329203947559928556604438292069377770672177399294618235895127142625516473320703329643646140866753812026092749047263206928242961671753138646734737017575888060195795889816177858805565679356858468039973837803646363534161835985537849378724102807387704357178564406787160664102812934011140528946667567430859762274381375252670895149208036742524447267971986490485943481005253843326965039771297607312754830417461443494807450594444460265274099574837177356507540244333450202675386428430621758228088747492096335094134111299092695403439272272393201737190263114582670339049886821129502997028866752650878616594083913695539200500746617425256314223555796482157167692520848380011911497772609591630480690059292062284353121557110999805014459297097728779246646368227478990243533010255948416973908271808984008831787246162921918252022357024659171284598566063536060548977231903004976942532463126587537924553364568651837299906759242751256355432694002932556471169298391794623429687641533759458045452432332798348254662452017095835865119376199296690816715837827923029409653463099579941202221287060322634184977890028491317839612012241839322825172299010768364913281280267319996098644208803380921463404109830361591294549054089837826731451305905303258355891397042048622234475665567698209010092075986157129580805422725588120375468787161553465042823457736786570282391265878334819098284908647889779708320817730364004179835565485088578080616994068164167254890904482551288652686179799353694639079078415144929981772903786059807342862476924175645157488237374662340283709968288865835554652338262734756506009596092265535506141841881140538026521194896270394036136487762189698188120405042175294399844286089835210805115045538862191859688851924735813770133744136963064649783795933841574659827680228837162977923985190092958908866179363584083893481179340115308395821511399615008762187646291736384533496947166873520937908370406855772828232335211594184825858914675678287802326389376288502301217160201868277302302381972166448610264469866131958035951949774669556373187376143074150652906983700430306364881304895513159620456422262279371929054522898135866529302102838022967682046399351096547984879154556865719316120599550705749588631044077340093285162583038972088072141119085823641406101329123052364181844961689972528785198343220146159697533101158747944360125205690972388470044258817676891040592684434319408064145241586658928380716305567695492425581477349446003627473085383846505536768156135825766057734360949429054567513158538463713479478772116078170864496469227994328317768856054520870230209322200469182262529311429580774824100210668934923441382740528289415444849569711590873152118185810388664066751005122418336352460158103127966751073777694290193873982046377585564040596119992383127724722537437958525012446784962890406470738472664917293911020177738770333209986619712056147975511832432831272773779897837421010839591422285570821902612473878228786947783943335929585808258314955072822919795717667805984892558834411153321155595978964124644631963160020803183121562076146292375611854456362678418154174050601861120649567866589928500916270725500298234364922780614748523213945606774667847872952943610655632255507078557384132857741775386017923768689407605482674175624790141412681033008713137077881001659498994087561288734665153049210685950801854550603480025397384172378967953208286558266226757839134638023115796911033881018816285429785345722122647013315733664680823071404827427326745681438293740552026020992127199139797536153684617172560842619755630158643797221232633043428266863355084880822899567397776755630757187442313257328059784222466545933176954102869637769836385572198118117167128570620990709362214208929668320788594183018979496540429724579706728536900438918349197690440688098694750361350925293475628160028987334130038954432400983219974723573616126738628908256255916807670938905066991797180510592978053873404300854776270175470900363652466034125770315672252910280593156935164659000139521485769795425541993648093512603190501683796124873041162032234129196314397958552877644925108018870897269219864397802052449161091943646863719366613569883868976239217783358974475675615565604487246397855779252745075152568130714579104291494702564246271793666257847086887652980696837850817371419901662221303539058061972667521800481195918457255994384367300301714563746910086742551143295179768731545378238037595346289106896988972492221209813430142942518877206758283025402971509796603417138630943022460329695173197365668137819997378596762184937404131723145629432938490735814886114963001333842102826680414292038435015603543058326621253780391781077901227868582297079878735254404410242804824254800308625440694357685537358773972136588951560746207403046781766263654536900652332415820506109070376753929708630440835733416442947202228569670042462989967698341602886770527720794656097531756400981610069551056281050944469060912420379263222336312914825392415483629708472562460001820260800980708537948261959574844303155910639784768547294949565911460222264967552645124392737625011381194757532541501142129431973914714617279154072525165254744010462579236294496510895096376939015645555034334378783799008999145532123191797007507718600523984374920025743408254128336170454195551192643419143474117366647473200706618368227081063917805842053271464096920460498511617713382635697221439465380928502310692012917867038700133493100724528800723388916637254380393836630198798689479595275471553164578711313133880327935633192267154072203622189630367738126502811910738957591140801663468001018363337034970010541841793489587647755492301632990365163583121866536532264879310966385374294674765719101812552499198682405893815002612777179309242872011203257393325360105497167985165600033523591507999688812867938562423821877303481368924573125341863198048993935594685774606989936264081960003499614026000360114479268796408791062007408342895466116765093979692559266169123577589182459796814600245133705369629328520465125025400910869417624580170548312653801413569255075453610563214723765275755024855865313063963771680114475477277486075138952127036412572949241799041557369044869548361645170945780347490589662675015366257894276718960321198216643564714632304319950458011368613092465477691952061368659247055779686584309959984713127726066486913287780252259018474354328249247440945826210946318322732307586053061804992242630977093855856791382382328736414856795162057638405104408592720644918754037606889540753258744768512901651928037035174612636906766409130319775802549011255333774946612896818140316387054948473077198780957015620593488910407689907894041708128656721175226526204520089011093480114212585430360184794802825631121895309705104021719011649396231080822277350765180130131913536611324940291028249651906622067981839571560115612119722098918417246043039832328948155063530571614052098121226231532416746530014894581357620440584132723027070698409159076881184141366024661205402873317082912104128916841670418106120415028054372325676368747237302768519803252343426436213454349824416657644643284316828728621941261319156706591202128676342164456784453533796637962298974855780603340434618660789335367622227177613923501270174565417888570274666484383623842665263307634009448638553159485099160262976548995192951102535982828525076705315232248572694489608701086175593407248865539807505867509610263550116374435817185824234823323552142200908723205771346151640040142938436565615569933780212898253452828788217867035244349676447686186115664634080933921044463465614715818442170820472465717247281802374981027306915462844155831296497645668024633079710967060275786217823992920271050410877304908810761250287228542524815364146933331350715810970557494886038562863647301593013862716200491953415790250247912669686319958118450665042343799664033470798997028418191474767185785669181045883522189658221198274804738034418759354591332795987391209349976851359824674385758776200765534857366975117999648407801300000764760677413819454367977669620107629773663323409831297613404921621176669252806965287975130805413418189818522990146059210035944234148750349478479183515359562893720951751146847976700076660545017624642905744612198827323450181084835772271763823065253615232237999647650195905681450259811111961517752897385036399954065986353736309456550720507618912505095144487212150291542220353660195357254738095413516118622534684201234476484984912824447005718896728665391067540963344649657745038465560681452713458798488651215517936579268689452192291694511481067948408412496236485152463933060017035475091490201714708629198370123547065067298318189635544632476858023826479645158108556794101213048660104207551440466792314712281029146972711482907666895731899979107250920120815352895038863299552524012123283888695538512699602222980391996114691593104473459584811657455091199768210348145535403367653405167843165334936045041587537102772717147968195656069417904497960051008590537651125062791996881432501512259049650645003115727095702289718288844282804270496465698325232738752129387385071273705087434541807138557353384739358604480622142636848762838785630748039236928567600127163266110984551838983428880069499143392085026307848709142970798255965670277432524647831141550917840808126478822225506387942193403579709112993219483750472340394627368174057661657621102422092907240410346688288908961160432910913902424974238679752864054036269245352886639344515499826706659941367140551058888695265028257224096298680973159375985395482121841448920248141879259614201314219100683229794488534688731561885084519590813491601596005159831054458716469906687475946586540446227685906542265411976876755851492925817334825410351172827612666045715752742123976150102480570652028954561659321313008651412328400553712198521597221261303660699376820148792585782816977288467947738536646152642683539488634669011590129148983436799979034658624939319866082106947262116987727555043208715846558718047798209627713436344439470611064606621118905301756374651954913810458256701084149876952560451923116599006919877811468942763392520358744998018589993880591339881524710247106646398006901572442923297875373821563453232860938968203582566608410241838384963599413450589751919146591670963273990301801753563772167208543471163927001765572097363817352435171177509621043029858268579757395640448772986826556732715184761729949204538604836471225232484314490365068906097029991856283170312826232559478385425215052318329372680009588808158411741776285603723274584288689553497677737718971173411534237014085010843703281100186095644885631721347156995761225299830337548752583194809220940476560308802780326994812169396328349986280071034670011497746595171209476752064062689705877047864024649725710649309711563389204716370286534465535982345677614755050104927125262624214820277954918660576329097362424897631590365275988931594100045065964385783988516872166204825549803128653564348872694710387238138061769146554788877016523272190658603226306554540432813174116718322104288562461905555255661936430347772910748486392387579654364673294851463311803440891603333632802525234883601634915699327903796295478226002466493546937225649342570806563103282789205426256851592595276296260058140658477681434219632887159333247809693363355780647427904023415806599910079531412078264691743047142160817221570204914957969558437369440685257539765967274162209472541108600163230220194173818427769403607064363179621241402252749533182786323351435336811683722663835120181991967388848449673425232931455980078273781938946513367046913889120528082285470725724166590432323255243471365542093297884457715026786742500967729692115836667726215452345100317198837717530220908688903820788792326729989806436102893983932811425586202814739687806897361091167678278314160802700691999093833027501854194347292219829684154685879028997318669765772558352125725313064873467742981983491557751679790043183197590019214440469649648176226399940159954461467628304666655898950791356568240837318308241284744949705057937034015390024810033244426849082520308167536665053314293944210496234789840110195357417735451396782342264159879256068710554369132702859813614838617732654826002292744435646412178807243345817384662992245781017570402972352101868530150020669312471609526226286076667711728874653047803007458329017149942040410099895510353807785444134616723873250234908343943652528727636092698781264731567553842980266096491670060202314971751738766807816139973201965267220656931283972674672858422446995647912703387416530865193974594554506278444095479806756620328276289213370962516204855210028639447353862965594009918194941862873709922662353889698659929954635226514015258438585473495664279500655798323540324616160649198019745949304043350286467298212462265772614679636228858140182881837023589253683541628061043157395682665410560330495318521042878782416166297568122473297990508438382077732461109222966055327883893228368785862654556439810453371496881105102956355559830268301860272939524678939703363469815929488209252725923951058960557109559449742771864203285459236170217093179700000003966875928284362537375531853905983983856414313301796010275492782574473017016679222566224746945115569330422708816742324411979212486959562321393705480659263462428318272733953361107462868478031282381325418475588055989603342703465763675772621307745159548853651321751551589765991404721776832199337940888358001051526154436484665044548339539073091254962977887510629336925567778688958625112080910557594930720081107609938642586776585942382214863023236728066914207570866721008017318991126949346264128343431849428128078977307985392626018999920806240532481861543453737269079235492919338740114289549021237964721153659446935412833807857478572376101698790967655199488428167260075586921223180711093647155062738814699489842974754622270083658990844940102978294754087819958315152916790105183754580574603232762286677392807616205267252387021575575656620414028556976163832262028265352662234963514982232513316459595963048165346966369033783996365403109463416995564774768917186301965496756387197466833127912932365347434386283173696959072490655954836120953183885904800769682610901561794304713942443791364693565198404198964619817940235668058679355654137792425462155339426334958446621136863906684995561503954745256899058684349975558527669805792188419427537759855959378373634247687908990386110441651190008266494135459300517225630892170394941163961982259333845678980368585352910303753972122385649958893780294570198434335070809481055087854155041258630034458672983279923970173608895831005924796460192546302020907699710133791609333636350736411695741266488517057035182643538890548285154488902918419254398173136031264103415701001702718895081085906329084350333380893501675878673746668437860801867731978839926542758401200683224843370828189558658700799627478232846557829711302575508738116671885983080209596612159069283867318151569037681110896395899290920853589992384588834238255133128492693711367073634442626767110888993724860265733345420756006535092399307070562332803637932179571646013726285018082279188010065557603800727838634435758497632723190368101065009929487795920722344244878248828273274608102286877175953654634962129185586684058596392792276508025596874825190546544610251035791816289663874577271023866649024929249881060989610469232430049738586163392188937156788747234708806236429984834699836472133718622701902550853920241817113410658481474173051323565599413153693708038208951889527587362935358249854569788734657848544679793479292473183346342541476761485118906928072611465695517726914258178286709135075681749650833229361651706600512724277360529083938343980124438274363933614329266887667542107473964735721808568056277799038030613820892353032630181982066376386621007072123382533632981943001900468317797024761913254359880668921309272441513179933519520804427497677187538914956750160012127251117172925096682821579868926344236035182482087549051036951115494429630613835841720606481082591248265956126074704875023122729475454584455264052730530555292155769676085254835680058145539926899301981281111245999408776108889539753137038338422167574879078433386472148896852357346220770154795290511956276494909842372446412478591196269684641347900176495213121367358105381596374147602062000202941782928594563959685052980560353440110361580556443585973635532731067972441718122006212554466744238136895206639660582736485565252762994590388981113006325170080075380036730772906944253525286954166424002994062647310894015064462298481951077164712850064358730953436287797141056502610135999621119805793034356524980493585818016426818910909844309991736341196335137341756113203112027282102234053728388299081637038666975649885470426179170768349352388765039963200242935046007827813000590349776749753120225844143273520586162255582475744354289482840461367777365177799997906157692633312435080742489039063188949562187250313596228323062460703800216485233185531073044581047313594821684848877566596594591804020504088576431797499519038145876141818384172153722361732891510203537070440042482662516281926683216288280755267300442938952389687764716648887991829733911475933293307804548827510441805654272680486460822400904133185568348044091961797693316167755192329119610955341069413274684974051081207603867427027297039858580999597747476134041954043015658549484221572902166586264783481243802610775865636080172389111661610048746578219324173685024517452263491760605268655308327253209743901700665689976614551133912675733671839985829005536860629329727726851813854323616328596204498019029550365573068523033664088815439209507537855202193309105436480641648234372747672091148873377510044927460456603928766210772546938229146687453809349835340234861706090555763740736141302083555953378587417764195937051761756296939032079816711154706176401447628618471423615249987283008153236059089353792349848003959042670386763748308064402201368069416134052227468651586161837347012737815342134155598792835259906607951932401397679210511379554100228364270372669614886709782136704971401101678943559340355673511599541535121555717064608104804022488331431659359743950453168752784371205265888654498705705706402875327526874730800338034775200828513179135062021081753204875897615442724501591864073423569104721171907403650973995317745711563281430558666727395782572694098242769571088177815500898564436505674628832081242723851746527585304682098219835900878259480828520146298111028208906382776644909648207279474472200556917640860267355393425605436705914142210047445461574124930849893494563779824453435920792879629833313932142529373670706501198453096758621872884937477000086587899314785094088033278584295621404879488247973206995968606711243061801078830429936203960049515926588434328214968559549587709305049891639173735152322457789004003888138987925204854401990447838006556092874902350218443122953790828662076582135154567040559920797751041769224648319990438375044150589372735029631643411415409393651653373651708205892375644663023711586943828243700870844349738657860366015053710114689395545385440870962199156622521095296170864496272691210576838245232839547264648330619967690496420872986515924476370440777306641907128174599084541134036101835017026020339269090173869292480877300863190250669914299811163867874960040540725746289721833820658365190906436066009279418049845542743393786089050654202037913128556163646363649008889548578694379537539436155946308933938555886176772585431450016791655835689543602547376447587654796903118262814212731778138278935068167699466721701070464518155453425915720329169621302279460086150310929331622650572903257583630065618873946006838348031859631802658942286673156874841106854286571174882901950392214885624774842047404539265022243916642052366204544014300874043256344154946390280683853457866808634829315045642171829696416407781105881712572929877194348719631876118772372135895866336889571847443603318637182420497413021001191276542573960487076701615158175475923072188564281111206813416599712034618446575581342331613361897416976519582631405817004016240624973422194092218357477151192558549426349088544961659289719926157844200941980928958301138446287326594122986057605414736193283233796481096152537057139636369369586025566532331270554021496136879230852466466274808670817323973562220671674297680339499301621226269823651891596855756727409017631628449766502337568412142317000544546945302217343783283413448415438755711997709948518072425669404751699269518330470440791030606121009427539822560912519848751214736806523127723533695497388118897811275835724267065089677333388918299102892171152199346228927268342686516846532131479438200303893612385289211000121253672910554456015741709794693591347187136168589928284333351162183006402755010394498795380306105071321311706585799901074073902961614543026773806148588855670426774335084549250789301528863380021166905259982108653680729072827906965895303177611285222964095317061514479983220859942166248273305071738859246860492979886613391255793564023967511850945846092694227968870307492197992600442413494756727042936785983652474292932681673992402042181261746956837270909955592633353206480046084146850068208551887272913616403941882014500825706508150300147217188397555055505253768029397750745224366165639188664915927470386038625739870019840904923171313602807543495718789371622326557740428705769174246170784497066657143529367618953881182321387382106534906571542894677659852458257292715314246195626238332754628448910762218965211128662463519145979298716774925904791798996635409003487080714224748243680090713376546107910624028110055972770293212582770350482986948252487478187423403872828930373167511420667936258533776844274162217706135239059901081306081596131638315036315603291603084546350218436149885923237990379698434144050719503261201917929494459895319864104288952931860564743714297338511490261106395500476593035552006087685230035229761167283974255070806401175104578001220479841151186637122587822500792903023132381336420593898602021756797483265166187987734719191248118429333563214043238287528422935261224218030681498104637282454989312571624352996993650350526256666707935061480997247536975021683734331806584524499294010422833088401886025219644009930127146095234135243047071740261502717397455619551788360876673312554380211622743762203965837164406964528802961908236231938856433135246201825690864555257629299198660199830860573519207333142550169927376344359564931186714610225874999759867114564403264572510778368661469764922644242569780956713565818137215862740012950624107339288861571643326274819703970430011657493578160853035018515131710682991125636188840110494206345138553031868462840350453823173448860692563645741610760227260674902899059011137140589505631336762939435372666242478557404493418421101650759599156094598650902175630873088115544907755945353525615966979214294566625280249053342526869993354089365986184471659165346006086953943212478813024162378147687496596539196982632445750002423399296057647566424013735000542763902329224008344597792621104076363470188577473308833991976724691317198044580135598788997713993452007752930956448500454395761631077519876542163771804214882143481183951762325211021378489552136794839590057950876830855667139917816812503033270775644961998125523614964229975958749793938115540924575822620979346222668789993837883644598693032446619313065929392104634372120940554639146692227105247538944938896496231096449434653548108912771473113466196589970844100335990535846586085829765891767065691501216298865430635213166433611344838160076845663972263342136025775804555959685901271989932020186763105517837690986772701223927305708176770520392850484780140036768786754135239323160309317378588537307155255156168132628546751924082930494014614121641308210142192943272018635570609807385068575264170641561212376343598335819825868389735341760114160715648094239592655238509941672911902170361127502203570521860031435873212949278564813319989617972632164227940992430189907810700050430950381332886001368868770098652196900205361804847527118470573999661630585995826516684912115286264024447857552815726328566718113115573000967847118868420156688522802282018640986571022831709923725766640734817045777730225358496671754696666835322323357069645321247153340296554066482075735869055164423873379506621924361863101872753840831967800851947031386589589384328056229779613764252600866927280303128088337022249821307079176072232944570331996248132989877733772864757362958806484003666165672529031557549005769762005888981230979095068891651036011743816136265571131451623602920816937144915008806481456600566726674526444564011105396113659547563413010345967044901325612720685637000781895865142025101342705947677836079690620642220560217293601699928138049644855548481483942813586427306567818961485481684650436149635569604900463783901508771125332789087454217792269365895737589929804844731768852783614705089183036181396196166198959679052107011108874364493435689676076420311731289821910942259756252819205287009894649412562232980179839363519299994381405470311156566808295414545104955316520319405048309522836426674657722227837329640906252141596644830019985756960746942990303674089313969377606433095224706707314512857125712222503666015959912801996496881141430369269367344927218119016433410411004398574794054842752394291145315593931607393898811826520820005528693576325579897703732490619501202155447434095441558230664083600814398170796764868728421925617066435464574990110481601837002950981349464418967751858540083026936939630344547154963772330628453255811433291684182202322122149881955371138478195983344694293582636411572507870586109180775521021192825386703857916366925616095148901364150988752738980478136755662014596385847981601060899952645639635319779606376652555948832344399928278356873140628137781117824375361392299501388610381386454924388673924651228043898209923515944811534855403063466235082757411985094351484634737372658117583123278243398011993194445942545111451737470003396151924562338754878297357541562791522026079487882299470557067298896109689101323853587481640283055756324239364462998891078637134097728473616860286548417331521342749473819850640803750354002711720535687462750903420078694753840211239983679222879015599849990047370213830741580325622850209783286643419795396172610530929548596133250205336328828540628624045186099497329081800439991218730625430618840310448973920813076590297290581359003124886773294754367273629624825549047279531234344012649324329881620164265343712560367216653593310949378469608666731351675562086454530401182877131491356940860317219920954523496924043238478295036672270728982280109793072999710091468754360647161897706678130928854301968887559879943572104734953226951805570253726075000999143467812939062153371917366925304838502565342768826207717872144674747484668300769188810714865787329353048579102604043200657241130964225847314278516329054408688966145612296387412567936252011615839796411418572637622626637178735764205222860174176431337453416005383620911015653611607395013381453966223650785646273528615139642838130230326549744996542811524243364942010789326069758323537039909645632169055063243575877893825574492447892408773761877396267832830811961087247849416288494291243396855853739452747476646706762503648694636930061448674810225261107956631272189508694035633415073028374469419509873658591801886236871873491314986120894768264312693029944856370712410583218677706343030078962760206376098314828701595106675737909522320950725641705051736522228912158561911053178151016296028207790123489406225264922539937655927518222288848178700281550382074404504211176535187410298797848138898581988667952795855873573057183692713955456394965188723621035377994203798061127703788013842465545408961434890458819368608423649759754399619433838420508363116074999539820694498980286695899376740343505406842871646475734235693283947507907444588793494785680029512800816910360396090358223810848280230078168260088868873898775141883438816819053042956271746619498762076995945496108049272651071381401734387892936898074831913386107742829231072723771096028841218106384977443617688142707551450483031452401393783113374409693776726828356501127195477081290839284989370071068441776487274946892512533686134608511146841100341874351076560644249222763820259527763762972619345164214663457311749293522337738237941456312448435049259551184695820230815545818041784362352335755654823939200256702801454926574717308872869950165813469863397355441928625018814946594578702163661595511243474141321202341644129443355520762330178916463000233392187221486628585450295502413254124266743589357592080485838849725810329809232229198867050769013591411027130954693041637813750301912913875475792974960238751617292260297166681091731874090411055095971501131965338606679232331377462285574029012338327652242751629337389063016426762822720093841551544056266395612433110806988197034789690106482490897477122944976511550774387763725674252469257513261939607782120429584481840555569695299967192181636761679250364963500251420761834307146295244052052195688334088859814543426078814009801049633366610615639246484227426859724041625017407418155674067226222092556151990036047050601148335919842380717773149861210273841413861942235653219834076044922784387335899373214790954210635639464038297456146516753810234546636691238880128227686227130764241276394549695712493106433880493538614472221056421197326698107061957198897151169060524694489336850374441025933295891233593040792695227968099359870713740801454939657722700305307439173866160269397603388328775098183648997509747276549189325935774065804677369865016158422722103008950484419692211247771364234377499637720238172693568369471421910458934839863789586965339976781771736918587252946271178201656632202087727545166818505099484902981488508345610959340648633694350392251493978178998440019894436325479023991093136895014431140851385229059988083670755747454421196750077738724506350120325478380869572941946474658102302418272544954763310509723629186104918704960517700562670820779866682880230964833341645094742342338907894550175407547033663142841448899372632427302873762210884799997512432234139853518128574344373980280801132004520961417048500214845490481526126093992531257883901440909393418308910571954922988668475568149332647559726510697510113518812048775670284370973297906511795454496282078497963384878846866897281820504730385371587652024490882295494763018100715157612232630008111619666310956968134197517184844998535475201030941539629717981121295893017094577594969880651761364922158045126294105937221472118055555912827219809246577187228436688335947468482573082597145944482789276788197121165880196179426702887270946317804685534757796874280271120329250511046774496944171282821914818591540959830724873894575441612647291750211840216438455848131089501832734176176039645559159798413656003256926839118968098236701881269111974052575512748053000096052764203720166100718332473880397587763132039958472132063203238062093765721538464303773628259867049698548655564064038594223696666004720653478994449663730733213569110243341003998360856163972944244261120280916142799115830999343039271423815498782668780445601440142210964433634756046782579914176986941439291633336362549971155093354263748500487015071026424449904330795399400014455086903111877549522944070149821453188646042664244629594128497888124040678299277112463411285278444185849267991004731562663958751141701039668506924734977758930087456973047207961399399095208005599006121072514562254736946108900234390113547202357704654651140383555239428573061012278147736382146348567501335412963250612286939762219214014502263818834133197338872760995567489151932108045821750846351111973745996530602345792100592889705407695027678829998924177410247571729649307740557645430233844360374454316864724464193779727856434130856552217131931955515325200404442807203755686265536203029811433227691246387876579384798479377106331831480388216165946293582890203496186197705868813031879614106066806128260256112372760311692453440150702010889146226254111362850095905169037691804704121706592181163807620205775915893680430065171687367074469759922779640818696968934408912167234942577140398100748014180168227149052147433878789967194947695420517052204212707609809277144159643152873860394815855356180586223056211448295637346193720049602605889852486854581700277434540466395508305672941697197799224315018625819311431473751285269763356069724124712460308394958718418126299622946375445714538527952206826076587493698809216619695700117555029900062144553833297226161159009999137551121019485091573574591274607414338081974649373769985472921188232369771450567432223071648228904602567419181222524882790435542590050876503016737512526088323092888046779108429258647842263556712795771124565450107455767594576187635618881504249739610500100256035555853912339971777342550239785383557293541178769870708266046889899949867357984783424935528977483288017849891338501489141475834128010523754500420939101992987037055216239330439350055956250152549380654675382711524807048243106187353445284530991020175413910864575268118005371291616969008236833922259830337950603432243933768015598124485173526524086334105540708465022658703835427326462721308914568252847747199980935096444961370204917446824296359264450992275333601075120012558386810679870753703447199686245620415549185955247984464465649262060999753486660110063558261596149080386050269934129088750122520583624719780854892212379215609189715739637903558304887257511762469317641059246055944257479435590088015077282174536517899465587805583102047894939357525215562248604342055721833389305235545199002319491707079271066766041963856432214412692384218065402869485324406079719587385436302728223311633072300597905476370756898520302938440212606309210793899161076050581715216112705848110499772874283140244048742822963914519008288995744078508729483473517462108477313201777949225324124653645998934326830843523514734708122265603284213858767863655180306631992719783474232271204964052356745438088155337759466252957861827941683495139069266894262206241667615647506361109358646496833490366323760941770204123574498369491994899218880195378205442107687747857829079416350624479744480180182411994855176874729716886350967083505116869939878855746856959821015386489948672403232752323731888153896275246459879966376311541361032303105654462119832442284101706076405873680211408711895719157661548674827711544642621800098229147412133017573614560358048611097800389271909247461706758366835395108450107296954118272647972145404247300092940422442033308132396697763754354156381096483369873756823996361020977004352175672151987182689064291491975463393182389974322206880869956987131351131885777540203493614271910030171747354747518180502904349325079419459865430853610197028173647524972425759889703227756964531436800202530859590624038214913820614034376798289002421551092051638073986372163344747005563118050791017894199729864907285508645704924113163243046782508865895730389364223070794756488269277633314019131635522119889752101845462378347527807766838656015922160067722170185144460452554551508291956090626974593853298311140391394653242047827374178229107851361623490918570223354232796486614403046447242184806625154011597638177871290426497264023419405921458206877659055722019100096278858726951937522346355618576321148552972363442350976910896322059237355685243755552092809409929892672225343975438483325442581083848152540985694994584315075868012956535619848400234454884366368391121306996466874560036863653551342036429568208358054048075755405630101864698824449490973501783724180296053843996362278692242361203500614446191998249991365716166540724755426252179953803912836314114487306451626814433188969179498753547219786404226825991642631748865352287810905380108811908035396559112844217383630912848526580903146878226101902674678239696994777957328888765744648132581725684850373014714973308873002392827181102243210356445910935090721912904869307060108011824024368588816008541239565139809961553702797170344138560167488449548807023654455000471105559272203137297878231072666636306828292911776654865676280081824506226896158113471406873932951276432106041218615357195657559055731312364029244951442241843525655473358723078480981522018010048305478950392524763746755532376171022592937313812369176693345679771881072218498498801926156520330164581809448395527272604941478233561359466527219565826581604489157212040210995321153954886795965708701801677412157160860950496860863479975602180705972228422326611843374533099406472954836499374228560122699176403280591695654392544203846651741090389561577333618995073015775468596033130930842630838210305041554797345054336682183207252273112332695986384612521715264441379215822993957988359161169915511791089752032919650411589493787842817089832959048592421029404893936702092010937316561287539239177332661745516273792988698574968520054799114533617296474687801463842137738601302309677351104432914726957178167280049576051440225474239471227989371844848663519998153687812389672086781590039062331468631593842269553509672852206987071510328529205027278724312598458379316074883842225474580191873346180076544852660192403609396073826389509580693211029082689717747961863828239413086274463436800151619448759042177747666463964451052683429701727150246471114745194754348266565911998678656801110390453889459539891151019358619053819825582815975836695981244758392637585178630628090062191223531826981406564299710339847617064498890725949160676424150614629140947369095077166824285729803090523572864005002704213333458786431995679973547308099506087389487480923319027301600951555833461396436530846586809239809121737786555550114892722945131909128742667269773084654843333017395415487561412157601869627658191843146470483447246593414793332868394430198687362673745409130633116781161899043900137079607851703959216437213051191774740320896463602566046910624375751264732986438852240173584955221020881590780673814141522412289060282603139246111898727128138478863266327756552688293103048456109630479132463856497139716809395622734740361785710690190191677511574145368347545064077822070421136652683777031265889947041015327731437613372466721011043895755382814407801177593204891317993082495340557243781171106191210251573472944127589888112985116005535036746224900122058319612137926958439050019199301383338135597652040211787854037717653779745508547207977801693900992716367200075561800955874820965667287613530763580563763288579949561958951038057280858701966255785205716124724997874422043519008578115457440111981443012871191477442299878415698514619410692087780623535432743853153372416848664843271100987712654680598249115591642585876160053020398868819972637222287311667750083422675943503583911224984123937418893912333992796465406707473019907013129471042446203096911322942937654546303835654740811175286664092136117418083124285795119725801577844915848267578909271266243225846529516449521104010981478028784788994787218656748431300719664317063029670319367549234120112724955348754043333608244210070719589558502454376860605537999019467852034634304871209246723363173830604200042839675107958855561413135251333463669336790709711415150453241833990768313645823865039861778666338795529491972565484491431166033934955330491491689812958074423508393838462019456941667151090634552141945804609525389459849033816367148553744838149179965819043479818011641126379454946966958992844837917981123817866539299124665894875600107116890781065023930146780358379704659292722693503953257781924469432069195651376648012240797098578566786835189364342299709925890162968525108935657477857270112513187520529806342783281760411938520762632896114166069848792149696039090165667614227564996311053682503480146137273712118575988685665480104487181955075540588157965860203894229444991395911429101151125633560534385861895724136825584846489354110278129422690247888455129784059858092359009433912608023847332251814442234066511280972315820374558968129726491207228086761092517272619287044362570397394388738094652483221287390910196753249286678290689447401360279058800127344230325193681521625304975789336841563016725936076549405661881118908657735207778120288230308948759986150361574971187016053682895992188368749860477332430246553574495209079968512105060916320311483087894244273377170414976443906720326187335596556619692058802401904129164416509303531001090490793047121239733335860106601995837480593929438007235402375381574274430761734005785423721100411870586364156185564448831805710241829908667787343229962292997686416502253206170843875552699936012957224545296404175599697286125798295679208255122738257930440312057652885490635689437915669680680416521985155629960266457606729770367444991689457584931983215482251125232904495359044172542219930374060385993818278957897173182443748866025751814333843475403403628197045496577075854084529726924103744171843743912650986572404702970757851454152497200683042806046146716347627705246156847102346108104584176813505138347153036974773589038569389103368589967876445592801399874459636720339098180561942942629212220782368399154208863272751453071770190355886736887234192987096425568037558638673300709944343504764258953002168861495706674905481466981239289154975634687841357590490778931026182769525003758587287935900332930052292642597744349713997941764331626206883935210311359412685963027793771104562097640186702990611397885111955789683654545337751048320981921434583235539574943895065385495929030354709127941449730171490063157963140695825080508022492839580243916802284150607012299063463901135376499477231562723263258329877734173854869541285397184985329624235954406567442851830923611892349013614766119633489598001345059888130161435786854972595998747969100959934981369090122725688666980180146883361162058340511302873414323244623339362042649758413136537653784918021193005614660534796291299786228104948333131201176855529394859967424623352709897493004245454562601573510395541783855332380220562614083334620075321236789917786306905952826237602593555461228320099916497551862299560514191100828066883142803076720036742552252351922267434941507342086848685846087339991863670499459129869349378488560640392047132797383923214014217792293501413215687437352292458748655579909867500925688169122302786290830548944908354397805934127008096978495788928284483341076257667444210029553542525906076390563527593945339198425779174758894998019495744348399194352180435865438443041249043435365929522715223700233968048081803862995533686424472338170373873406448389798192388393909550562165681652080382507190853101930695281670622726558275738748211433051606538897286310594309875747106141606796425188717623640428406062015752611436085164480392960549401596452320103953889158830671080864819318864215890803175800413942540522695612683698633679866022010752581002502517103454144158901995196762418534479697416836241273904506517201867209584066678953297862642671744412394107707512398636279920777000337683350747956966462195539956585475004161555125140526836349702541503885147535117778820920797715747985266119511949743676683758208375709201681288892510287204700477149831971959404744640453549821759848686636957939890629536303799738828391663317682122450915511634208998667288595828325463762712520785072934494980829408888046733457719629783600015132141599635910568471828750548795875833888772657589597669187054342205922386791025654026353732085999518234003309319421081623304777982175642639671080347772744571467698549798154359833084418799216160674041306627697080813508799055889610531779850268395795807349197066517835642647189413946938782913814963889008204297740413592178666532384673150301635740858834430920455722455409297967097009530101149977888841577672981184155127348528248637468437034487154673351944467086583192554530605283925100514089228305452299507038964265191238848411849141247127627468572962595062991356483620851504319949920896441476049653035139971864305363184995457702909886798217456216743852610498275353883522559257403593579965220180869868585535270712316654783991632552731106366140593840949773982177283847803880226610295777018912830006146234003108981007509954641798119696243790232057383253379006633556655024609724841067022726337383320320172284675939028477142800218357570895136879147328514863345165647443827144630115038022603151905799720769261961334674857934772901708630949540333878504989171427835638137322074715500415231934238554246006350741577414231227528242879700345180694063172951162669588704618322935202465279723464293873889229024895440031238837228799174547161700900997121911064186142522256268371089962971128676486710866091673821786651294801955719943452864731823322238873713501954752693872251890197616001136015436198957010496596201518393256448263002880032319187454828967719260272455858515708379130539294200124678370445123670866249697621469982929326676880023297439655541514907120724802319254869211300976538692054746778032890658190651373159721149899860034772853210084973919486238368402448001464776706375730931061647413973635683578898478910570486027737734688340997991257698479780470252660305751025379175373477739241061249232464066702987933100995215405875112396858873760246337556023170591067302159872076708315928845727180071577476432213459733944482800630639529007527378737379804571272869958732365062655643622991844107598224941046297064737807888013551923507478500619512668022931374091416408375577862818974195065798843706306029775213003771856482317494012974064871495313990427844790892387277934621808022164127550335394177386228186144330792738595471784767260909151707819999874668733763269613901321579682173397376657154356992952360696696476784403135254983688699567826810335782629483104338038891531252299424559620423360222197598113989352338957557592133349247898107410432113650232262785679507522097542557187419425881397553302404844706215754434310571405038057360366431145518855590993732833281722995971133019986775411465579663366001313046604750510304960860390386269548722698112096937802780492959022610205383422903993729519304090984696783076192831186617987154149023048279039764927532641342042705671060808484533999630276667905766740846515263636842504741675515563267037893267868358667025246788449253653051474346310354991572347183553406589041124466782397715110340644084234516959306373024888543494697227581585262473300004022329550825005069758780658720443385924802521603825929223112726443771965559281266700616837130385203000152825679138058331834455456014230231586785636229249307044501272389077160059969998676377183672703753355096483559405575085676233090570494390397814848013479866664039120329138161950452317077939842802978999017952923124052497953715388692391529041326372400620869246358348371463988374514722728264669631126155432250318517275614771230979359907368762428552942045463284451193162975599773204767508157134128912359888989631810044234806832887406845198704739490785451602631521238864974795404884104531963692282925108804959545105223338656860599338373542672286077320786171046047518672984256799744833180217921340734884303119448033802103030285610233159423275080917805621255633722234793143899975487204891319245626919578964471665455878307332164809274815109256199623582402622342181016594402216669535993692765049667852224079634920074459716127720660133328717979675721170904881940354192719458192168164839179089671243176491540970925103989654745957212622499349315023570428978822950676488782406771653284067440442180758552560760976724412993004009707093466422382912658902662075150969778422205668095806213343339903011892641246146736842808721483425956635504908135726873747643345002323211657566932940711162154924221618389034594417893684139374528100244156144389055737689948198638052620859090918676661808660166640096272719723762859941349834495037455437100099438910199239622477581285677970711692337722677795879348200423344874330796097908887974580672505218939285096452459872790371720251807678804628230978183966889828060997096561548680323689750653182921100677745260201851277879676734822072972735620632207590985343925028738828581454416553783835205445958700054459894407742266336261634178984077642021610616321172573617733393367458613215921434414791404764068048050614747945897113852147298971887277047314389206191275989005592196598017012255692125234925497387664620364972785979773253758576797927100485075839184307823422453517543968420742433258258036360169145009039980422677542510223055284011458978269836298873356990953383581201018070474810843629998087243212335842419960958392710258945465261413803968669223525182646972342726603308389572299020897860724333218305583621176245525402275686644728639136118789024964967393930432784148616394357060695722425191366504312590983497748541589214696602172479115647376625413728603342699054219225566032146727657730034230466966540127456309959167135692541229674083690889037296350537183700093746524278468272319496470048687193325508583611501746346995863139686389760851607276594433785736972479285788872163044183084055942503219156044204936733681420433434625627501815760178659449715539273580269431004234754443694734710930265457943755268035142675831289080098832688111710422671115540355889299700402710676178218831821386896308226403583880344239020040506057895972211538999768516192726849782797398738001728142937903130432849714849914696992518037293835630352562034319331468129214347532703322968963167397198760671924322960930366415067181980645763129506682129038941824218413232368340143660499409875684123876247681080960738934642334205361325433644138388426469136080539572157511957686724929326269186129149719125056322202307094050349264774759527320113363147788792957128935602518741996341496894302696159273650274830531874469424921732248343601681506179417339277999923860568874541772254471061256016904851972433157297234710636392060206662872680138893542037978423827987641830385718262503130036776623485019950991180720061770595177274822913490132012693984986773171489731054408755843470725439330249920172981545487489710499825288722134870612299269483363178601050723684237267964845525789911223133518942583548150910803802542729220319851715332684083340529539735714365925851771683030334220879586851376377599271715298562495896115717485592497042078653821995317398768352938664447489302742777338717965982438395499322292370441478810434906605206346174727835803310045516904756260774582979857168511193684314076851956659560526676070612539982104872354575973168751881850136236552992025805455066870210669950070672083234196920735624145155717216659130848502534439737832614944119785382998191781179013203023395689285005120972423296190335598802495135060677609808993732822412105587745853851967975000894963439925907506308014718723710788790989682672457779364270668767907054323471114122430378195117622899901154442203206551160364207988774275926749320537401707366976495823277604635360491579563991448295704033942954630089625223989568055336525544762964055039867595754697560334970568353389848154164142168447274760347375697562841499525042086975954191222138216495573677251568258996642676670344491161915375600161839036735107464522642657187078402753863379572933072105322122884372693384472205510154846072191894559640505314612828333834595218737012831561669390396310946855697351226501586589111134128272474617058541747235704856594516659889630170369753781718342834437835487872640559129414416587818330103639948735612968008664828357988828097923189049009103749299827955629226581112013373353401784197996375120269559292810467970035225918102849047645486783600112419429948148090699945823106923830397032763822525468907755205668316610344953211491219632817005646215249533336283095208940555416925033939242676880846274950838679759703025850992640292022906045765069109266701887276720332812389194538593405205579118150545745703510404193881422500044869255646989021249715966600786747514873880326202992827847000603129803805593891269069992809500899700358245394700313791514214918267746985135333419004451425538664052223712588985156945419989567271830829047103166679565757854652640293450232738700675135115844712545519504366116433276582289650911128504687928571785285642580299996095116551724114456747058935196153797473260473071406823659801489186361763943955941247778813551722771404610015416170338360282503674570552262021723117186254460201471260788763169005379235381443200774760342149878817374165255295422220919346870787024604354284611746578147454300657411740004138640851377575349492682657212652364413880438025275952370028026027709270859478972737426741687740182626744889347096792371097272200036996554648368101267516864530071847872987157593708773245014317685274428286236211001040329526649834645627077908233134575464309649845328719742317189582780515516607220257703585834490038610660742066579071681904078314668992021774851807451823908568585523255034399143786208378197544458710201099996439732636143712722763619657953844276357600142096266589875277363499405291426150379214608088071540020327312200414396622120215633601179534936166144959992984515149253099823813348081660533645092152500202199840418792324898454475800027000425561279904057814724071893514446697057386454882211135803041060292399204584862559182276959401952825867595356016369808470544295408859001880156360026208506193198156394166321524610435898028403144969142056035931840620425300807574351660381097180169003930715343467035567649047690848016762710913926393096612831690930479282223654557451955338845420057879086611106824896657890883378591201891774565332680841278726494663087368579930745700492324599339744717208696289749842779915906353145803281298276409530852939330780843906536331000152699257629738423109707322296829596345377673007700775290224018258806400246136655722650034029548790849285280651570496565333572842493752200331675989323655678869879274386289757056802982109410167498752547723176682210710840571668711882636445629685470231252021743893919647207103338937296281553881852029767067438771094006959989417745106527469752446292081134481045398801849335130696116604000567954544889488635072714558746713963951486814020989052650116918775272047720741899148516190200378032746029713256266057457396705424145754198496737588622540664995299416300127941108622952005432250697959604318757027361962470098398449088883295747561764124455518841851343140408973137255035037615630460350142942187831307545351330216473920873522716977568686693307877859126669989751823944399377592348296083390467086453477224533012677859132254583430430178918208221823573244709495608022227026410329330662954138109863614477254062379526796966830722997438988731509500111860106380982469535197415269446253876709358201294840709601864766013107665149052335509334924297028548866054664230068521657525257148716254726900247367149974792451419943833540477614261497390110097263286575371397359195249653930780539046644669210852086796366205518490711413987181921804704247442549383606378954748558044477702029169334947477943848972111181790029178545608074505218110109659801035003170884404555236076930956965150222095755679050811964339755890720472033604440229107020609495298155090075677531031240733836483258047250610420854981715281642011738901467151582782628426108570285284246032210631986528717856087885841630780160813597761036982124144727898829165635780066121671178846196650984615209096349129127974575283552261112384578576960617158996979553044090655846709836026297685980561557686980559518216765536788924871709066278083016442739305231950442212523083237754461664870167928499501607246074328216814966523940420644855179362226621373494300124039822491199287364930374453444642234790474959561468359888248373644921872780037599233895454403210476612589166092076102542989357069011775375638413753371297572140399388316037436098873698434502629485379815556191345750153105510538892750502917496088123794051238127563473480631005739416160853958734994445142362364580609329607549405641285351405949726520901272550023168688217299660335755171071713517715940276912397064557882994451835538612905885802433946872974041221835419200901334888069804761527464785129445677875233311712221961961957921266246533908435909678541765281544069491757410105927670950971895503952311107361525651236987766683199684894230443493212910364822555893441162504271103766776656863624677557965693034376861317407662625401567452959628883069037216148086802017886725071514450320928026382058277125580988799738006101247487565198261932656437449572771641171484622984855021090687557616266214439101696556178509798436199291952731954300351839041685167385430014625589929319069714576150519743313462590307853827059343111078940351532755628569645513569130637089373646481847543391696435546875485912214397221876594141907026419468934061711761753933064230387770289164748255435375894010958512274670057953158035594868300441177570288321996476357076613733487522812774720087235468350945487177111807920204574466443791183093945102400342743758731348154815330652452109199125015049914690199406701484612759185768803741156444769101481043139843095052697783246678845379083336690799456154441252048084049664361655895103058345843263398614104624925897494199561056567421361180523842899873997973877137530693698136600623252171031393515922876529792824411924547645425318928870767562350854550562152054318686907511352635000635999126983648090971362633963709016534719308437402961463449950953507203761222268327438205184289825764633613414003257908610755878301498210739632829164317745494334671200387381328149971387142536110258014191011186712150911566521180026867514841365876810561475538089445920360933658308439594576542603697949358489878803890648912435129030622065807161732089132104713466814241898041327611254052683229840650615894975415840369963791746767457023514348409693856173189823225552417442608595163789121866120111875008873975779860178975225804586250890933518232775404067292965627881005896937652735961847855970595618175535815213311633758549733328847161595434976504511432900656898632701740138709163292707809595048927232626683379279501205618477833900246507303002233411589852231995941757016842100925488750015143978952506926190231096470531730796776499782836012988598833613862769657142746409036565797293515898391526749711985470613107922845031518582183596817466590250866517536427094737687772839985529825836524789060825549084649684371684019402830017762905962287313768792969372763258346477037119622990392219209387428481500563470432513684079082929594013394925679542269875853282805741934844947328136203929556902453747676213173117019535615182408597509461315039981731969292995745376767916356724615484441067702343799495953168372957725152984114243855900334206884281314338240500539350558622477970391914890967869356524008734962782311232157972205289824868132147810637732453596078161896913006150017941590526714892238157291448985111703883597093198263658670038374683505364231959522070481455098987467621032763074779189744059979141089110846905183670590847115696981771959905663831194852605743816029946196977359619548385199967860791167920318657948693457699292819186251895200330312497869970824616882623570528001078512925155727750435577510971168883531527872543125605161878987372542313615611782995704042041969098389731397455946703760613661151555847577532031502487076138295243968252146873302417344009809039864844697256578751849177446763699463503597063926202779352016830022079755848236469005588460075909595556710182172233451956333473782679952970574376985249263368926559615289678441655720599807107214082081842761148024352929786114621866997422248997990107464663962471840533055910718469381330556634361012547199466102887271332190482133018133804916259668828379079024551112801833937576816061128096933324248767484633460271634903387426345994490851970628924246567787745486651744307799998908330099421623959000179267760832264758769857052247291852216682133229194827205400997314365271649057844863168839620520351635394526319853807476996252497110984501060843885707880624012719988398075904569919000309252079991851524285431735048577187797327992452160691462268964539830029898293533631468279031172975044147673038575729611852178140845797729283842624908258737931885174336255929833169321906155936570305176239762212589556515471964295396738007321754838433174608825217801345679870796511744090041127284804722660194621763782520240038608289287603405179635227776199636502799218052990211758511974189438936778937689579539398375020231508451951604095267708510410660537514186049736586789187354078767124187540794617542734771404667653251226431201687293291755841086719127052890971381478368282861230426079582654520289767722591366159981787124676108503956720273427926097817662059144846827841465077299420107622475022398583557216789913047821541419198962064373604754132246602458049225511364956562443789560272501229744248357858293233932799059488792580909010361447519440364162736584650697541831600049966431908239850069103294157905207521842911956504097678734041119830754325577014199470228261390046585773047640267874947975682458090527444118877393023358981292100902230613646010303651316512537876667735741292440547848004025731893889505501718960403790586024867849658320905208539926019785366300262114449297642152281172080004091145125302117863766711854165035891464379545820670700673654519840445549326658455253525732485076951100679933040292203514561465934798321034504961016983264964567786962474994001668722146806154468724558050588075790112056643216755208889942041530341721639429445007189301464606158470599677535199574330204874607964481549964303344283635934833961463076802147892324821634487888667665330433263935814167636712606299533026211754461192828495535600959894999379987969390177270507378252564849297827037934014190700517271211060073101384880596799705119336721974086468998398214615780054667900232189237723161005405479679518030691747680397983912157130988428643707208595166787582617250626696410003229388711319929634933571375536034448024114782696423077020969284299821958387949545311993561280229574442329189360757334819150612822631783275252541614565543606012997289492274794605003328316968837819408720622269716246636199832117396911843755214502844721217760716656943928361758767996503367209682405654494529199016248004375771865072379076324323006736717113246804607601925201750023633038048007423435710437588168729690718707420280501925867360839163927344886721251161499938380622198435159419689705098848130097981123339435353577747585661846378327994211119322569069674961155432522365210290400802204884778314170899542063085965732731848083028787697617339303750146217653147819256713347477345588086891814892692762605403841201404973132176054093289419085837109177585735346164816986776221788545832077007208742044219313551811741948974479383292398199808923446879808003952868950751474959902773862026377989171637320848352806152852528126123756179854271602274719874553553262167062360493213892080596847908610252709797709853327449491107140111338898940722211031269173113975239449328447412316764396921776049561800713297380161287691147158974951672828751832991641694004298329309825297478377414776618626041689443267951890780498408155481206571259388471954328338170835997221565190060729117641733537666772459342876685425256461767090280468287503069529082372455796248444471547199288480101101830892555912955186132597611931928227111100332101187849565349047621703582067845378193912748987955127889612758303781947790390084093816053119898762801935157057052548313348142846657259913594464105785675663469594627536185770496115847862113879392919104135147142292389965184789402026915222634639975766842664750173006401404698015837173125982004666215422832248336020012705072679688956916696196181737275773441708265699817908027047259316494631626470955474407737961925238866781302293096579857792041301173299769980305655729877897775755925396567149704611301465765358261581961968552770766416712451161626028363115239231599201874330957875097847679508101266452127722789407728944040579840301813205682849443642298845884790251367962119948433527821070861679295118422382665446105069144821230440230414429872110224826435093220204169694062454003401445630638088592632447145800749072627805051508957623727693912533138580634520698596515270435376375339156160989469065960145539418110433455318264769002713762328228583751273191948973059874233803973325520376837931331222608835601326932635427916720545568291681489369286382579188810424125028878314779003314289439109285208046925633374996405336497888859551350911687667448443151269636046956652443712696628918891115756415547502001916088900392214384251597831164347925493280735795977311370409272177136459494466369911833167847092789738199226961358664826189899077395819644714862605850467888974882902718916690744710809157634657679367928371930842156598212244205953844690918316242055229566818867996826161582632218094600280361777070667997157071091275448468547786560649776458943294869426075271859461894351137193959183749429051019625068850300250229606420063014405643064319805399515243297507251804175125755278332252107679654067311548675813126228770784324374329749711968475482165033017988780791294650152623638525892774072588591534768943479382796082625880746376970284775006429607084470722487393244518257812560821681795564015488756255897300153365658381087396767602705873535408963258669444302038293683542690385153138839780733713516348953301516095214163439164758014015506086067204066878142012675711217386469300639113536778773236467474756079568749823183059642467289582147502411140917229767135095532874243489255321830323955371299946710271564348379025196206405614999294505885671131884198829302168800912359735201783217643421594803755690999892560803682496668841316891708078636616175745395231892708213053571912792217991612222313020556922219435382121023240142799090504794356116649255094977012278282799401700605642777748347121149874274382693110934278575174099144644282934136760992733010715429115220100622233237432538598890785344416781343226201527346411542319322168579413624636067993139296626701751059096579518880661313602700116377268597231762720108409385382460604508987913640627864778330606163417485538189355399348210063832073973071422645167795680498955666125975433614903430510289710692182225316494054305157261614770362034774626389975840267212969051409168163943987208572425718276781993133118454975830016521141844686835036800232050527252374116883560291842592525236908421551295736819352163657019295357720736044328711037743854924196559209492843967657854889694515856551468287894484208248918047319568537972729983311784703083851674117465664383273908841936797543021861820290325090001147225702693354619766753686358171275347922718953808772695115163493957952090548914246992385469516943591623517797192997343722507064743636589432464148779673499111689806610845579051516068355071824041618507284773279548400518069710907654457833502449014888482326858283107364731982723210294847029563501335216566131373758051931544468076651648991284439637172494278529171571577879362204657654883811557619813199678927598615925363437616921719869672900319079194808965329425348157001683329180510509107348950878944478700538478978379505420993012879715921026029636843826560981919151588614912684919734480000913204109448857977445879041057727305148504749998734455587388824483073833983465516663258582455112060861904938483777672368231329561807537508792372958750124738593619330446759191031509374225783066781316088786310387982233384908049419975928563682347902701491714456477682848996649781317179497800174276586656504521234949331498946883292788927814418762972639729800709440455437027268962412686808309215619427933204293500451778943642927707500271802094352177986427429095256002947404306759852225195442224335453577788493135426776369915531987486091030388618316012521302607466502962845527514038252709375352289583120025151659062248673765794408725090873190844007812353861332161778944037861176801642950037077634625828968470446767823307112774498028234026334487068050809063855347458702993589472969973460517630479931026149712491782791963721782528499751541768903539684127912134964967274927026034793124834766887021683820625847194343309309721961340579903790450631110208309184481562169388347643539850850448045806132349301448890293688658601613060284844671958170791698846440773610492964428196957886469991349679209917388595180536837404411706087221934659580303143509880938903897381073986735274918825588845164718693532415189715413574304064125366189637732671174517278492879257155704208025809590579644696668353615546287511019989982156979210093390011529052931717356413690223435457396761537195148270418413912489710868286241071318193945587653826271628177088302792971218215588510047290748276721516673946703746428144541162444410085790164807842544946972412828228977782888113137821369976135441621593294908249075082877533334158434280459077432321676518777424690326750653337749218275233607589817507797505918534550929013956087389343478639367083556703463436848727990643842363976641721719597360637935790085344242323148536924798888922996634494202882088722956478935304367715420660485721522948707334401866710702636189430252705436583961713049642301332615182402908515779588521803235257016698592121110315774371035280697711021124561103541416240447136383311469949257633563553486273961734390460207187130317699690106393555929535352963890310513111568540553834385287989944655788704929330355756412862725266059554871904195574903062587007435052352853368359946517076419906075467615305846616556569235787293835706917522502442309159154291649419243148480321763090122762274758495902139853018186405719354900006337504100472759874491345945736629906721288468339013084864409521196576147095461519452900750747545366014472650884442161362942722163584478310765861303644820955358395039436960060384802472992425816374481048929776159649219479329408360712390128317514463672430530453005272058013188011801023054988665764335764994628876767354324488583029979264416162795467985978581431459699703506521991709632294169879353391712242063949513279325650651406964419065889793821947778510574681011172057738265046124644475696852913510264465537739145649304023542033102362233778409880304677265674711939010500826131369731124017367022842981129831585418953209029419074974506606764248932232620447501810731692936565913062808350399426685374610910892143694535655142980653214591658513355188533428039908709851447029354834281887220732581328378223923483520877307562918597055489031045309310396317307436957596480488709382991387968694090239436496853871417589602953801069362451752126220791783658264427372599958547169542903066537370457262879267314628810718857328793685399254070167765617475858279253004739907533103373869566612816957152622605091952159375032353940034347769128804055795600364219037615844786196144709591276651344568297991851313890230734483653264786421928268790752868653698474302984953652403536186270670396986333386812755038448505954691356126857551387461778510746292498420950492159069113215699242897506118433393815305295161902904882453302800497640850905771720042446287509766531167164343473648324540243017275372008734374720282909819778987069820318451303223650614947485030315105205614023913639041109023776846409406362952066924633031672518280188746939363828124826887276536158860904636607443956475085323377198128816726345347067560331441327386280320296998857277643170182012727586278496628276192222590803757713429718927130097270383488108874774879048627174391725804248157216670579957732174554102977189873486863940533402465064181135514604354328079973009935830571695762958514015007075791542522752291422030135539073515604900010644662896662219070172664582650397840417665547363352086092922441805642593774358682557424367607774603530113903235872487150262032500326418520673650440278452262757928085475312826929162511412813700612143033546777464587199167172232154198676024954714853046695258122360899471083113099946289820090582590244373700436784029429595812114622001664717256710739779850993613058171295531794502955385822272889492270739179945906190286771808285022567354370352304191234396749530435734003449984855053451878795546377574874665036053420568619116555558869166886677792396059646987114534426753302896539585041835193974976306174296010454903578023440672165478999886527325449812114976514401324322515726384833469428063859490001721241112171284023380048984812263344434451243275500885483168824661767449490364839036154054020863773283872917750167227105806702254190749351621533369716383599275067610177952958397221078845648480015864762452622101205006301950897437749303776052627508703717894335368688480194179124405510281637486054706933365768904598292009987348003396385770059843883093131219234145368268914257877858731636059909133874464498888114720253052123720415054586520991724058577905753534941567388757266135210522583760636857916183621136952962161409183320270245564868968097594057932590066260306069749188316584925078179642078139345454530473001257116667382477043066596893866074509755232240248785021445668799877614474938454134383868980986012002641479017198677380159738539214361993549515721286759106452533340061680870922483381282550729552227967157760386931033264662024623315231015053470522330923322833849281989145192292400426221854739772436807889157527801846548722591739944262999924034509225396396445893070451060800733578236153662564455326994638411131225818794318997946736742943616823377370311633076877520466415128752346512414838795175087111600929473310046783667090135726884711849494823974346473493010709915791730077686592122855335754742352917384227483706858621625044369751332276488652880968643900515290855751935457946617022335942229385043279171533449157519785258048040432867756853890717146032672916140339202812420222153016231937268975876002093732643672182665333943454768158106232171932406056937658597187541825952604068743363991825851225346911341158017880383187451034006732209368651433036972334976212418908004998301464710544663077132522443967283859734768095510240758692680150385615592866044426229786257481835408523622233639083270529070423741938221579926414869161325811585055925397710447006992084359040274435019448813410813491161457509816689381945013080581666935221753639948114625322446893624234089639736098203352496042840650939405661423438581753467255674426575272673948349886319863457498188180922075390299421519065973675520244139613156720742863585961079721062699675790067413866874654764660311207708810394555434360597965969446088839659426991173550020207609521256769298346824759784962794123327774943418654867830310217768191938212501413446996133882048785365271063213776953607415804195555747599158368391345686887631927636780786547475718265864507880883429167551952865711080783828224230730534219716175843516096994569483531222965311018963961892687267829671312065901895146092747327395280566208527387211188899932906271154966496891498492497980506254786362768430787205938327944176737429768997677844149225629574030605142588515509322919644606373888073030261849122358595553694673413060289183685938548146428588119836480251251869529763126483674816767361508072655044339154368088767181030407302177000201936198055296636007462393291038816601396171376906558307368826737926641117289966807790239594000351189586121966178603200365461559518640097782068513730606801139087152518436641219244757118052938485782872755023887883263348487757151364998157973644579842762116449870515002451417646878310465833796838390416445309971684776647497881330064208245158704246672200346450009054266274782254544857951860931438799497823690795003930453141030119010985769850056378448217901863483410905056900702685166880737790102539522534211868947756836867338657185663890855863843931905678985497190964532297720179841181654533830129033877890981950297166572142094486616738155411562125254845394159452586706193435964604246936440799737231009207575741593554960617708509428011918181818874568963713411802446761566986180133872803081091387909992658561890600938457883026759092678171195081752273143118403975529075432366199171594697781874224242998285623481164050333568903437796049791424442153246963580941009847134283327697417266078761609584262852173170459087679396162831954536122635532137654411593035292683623982483700189660051503626183311078429863357444115303657591824371948904837877826052523587344436010317633661132294635226299257544047456376779193069069569069869388271081792311724936074654038766301965929016644778291102266355325895700518527838289098872672290745657737308836718706434172154182889335562606412683725688831556307902315252908532636841728396367481545268544680735243120449881527103039022128262045299818792121912045420305914928014124199963098608908731826011989273335864504262969303837617807534235918842229536990251050212904925163527745464426150928177511107837402863699998940649859908229064549842264503291556255977352198348078714673307099261367908524172396861995193937859766792423516081494406205479430559878185192560458300586996564302741631027950041738737108089359170201834603804162063002334444574854503702058356333670465064346297591826796892929344487201633330903205162406471281313863396642160892056308567411603125577832254366749246619807072400357714744789792358543526553576378361159617222913253970905137203114582625759722952550920315290892344268536066652321999015494971100760069125365973925219360017465240804435388226742138472869447756888278434794605243600286666628661099022410131766841955839507651190256866302214294347845360636804248279412645708834151155382873095441497914796171130086463446284344703611765149224235895078974854892299021624070692165495160979989236167647157371032677231431088313187769496727040054861452489930616524926793585740076147056567343440338206167126333337693991254755108385786301804909086826925679951707483008027588078021335095786562946465896599103372425506645548833959630773808288296213359957568420730173165092556406705969196256133697975831923364810881987100812006034574919891503923647336907379385805570198228784994333003910099867717445481019096406317893258117771093425135545002808495542584343128843904461131213864843404140497476537642046194652690769052402901372924308517184851564822400519766566048483451536479431620958176634308051326705387517880829496253410935027320642914600622759858568065512671152121827216517708659318294591978621585159747591413340163519936762871750056993510052654576189097153288354314550741566393873231292490141398130455770067227031749475532703211838420242861055464365471050856319089283348854187154261852492233833869439910269725550211660128083165483892222810824245480720014381823464799300429558208448486029957305133220005048700389250174963718810470717720193640008899436455338053600434294975732775239862908082248220000250659141137200829284334948973914793933764498987958165719978066572803330821303435165688466871272322151377250554756851164589367702057301548688749325904181863062340808761561431794035204000319516556038654246815933325294739246324907306328184975854998397930377017913783607977504032775641639838866677795810353846290550075684902991542395111229265426488230693229895797849940171810323635004700295406063931302950946635662582415576294060367322734165199179662707950350712590483184788418928259437924872490249803150450418153981217899009010543001399620808016183990556208683710654625640907576454652192927463332362664542922554605504338927666063793743194815443750591846284958297458415016854952959312761589498373411452510452991644958138293334467210700234094246997645592192637529670785825870798633307286217444009837692436322693807422289030647643186003311400265747963127875191360635025475117222096436339216537962032955875343006718957146787700639229389076168566320407081419991974030020513799752014264373496128813589156606013157700142247360908957756721217452910899254148228427089681482128696100072843704976854411135802159685506152187635380091475263246030953860258711074199221766182693500552174263719873825749964163484227256495151143475310120702311315822146820398708422108928020925235683280815799987436256211400352407409167289838567139620151040207240914583091479652203380185619025201502175579855431950811388110933697941404671571552916219535827197994273512674954572853889893038101487499605565259168889856232873512943641927911532331319102271542858419979764060813315982635730395437936930069890798081882362215826249493940427335260393382236367481016270553193334255163823525124940177846528294575507741865530466531080596054429857070786705036907130122892635923382335046231008492572281883882857236924676634088226066835898460947823609057152522429411359962579174871377745420881750788857272956901260206642724531860115112619859242211843275500466413877113252762140284858467960148777272982899007265003840726375331564871473762560046158079987288526768827027814941324513024401722282175582007816980884268631869229041112595921011104153694792477749217371100307149748310988951691061036688208177660798250563762250476057598032941784020844846541598358107736177106212657022006391347026880176052874571429537381677103060469479003901288195817747641294252652823914602622069271681837036329804698576259523992042376472743093431148871237035951871542556525274831444731561030666727395365442774765235338703063442600478689343893658012256196468025759767006250333872428952942869071050329000390540711703656820304603885427563265411108416297210236871449331535835158535064450854824810847650871139077261321133512816247062619997570581164801200769752040713461863207233230608997530396820267044707033958613922238800314726174302512109092610349691848749103252786549082318991133105047220856318829319282927214000595124938646460782355759567696979592788969339406953371844410156460792921175642201743927475491246240138664928589081047208935339474942225016069724040068118321719116311541670822841493323648602234982880888882046647736780837165767031431568530928125986775080772209266027013977250505243181463054556036525265945827939332266764313253513816658676551302986688392547130174070528294971625308255373810955303585296745309577043874246898825384160590033831042556180924531251852576395009494967210881124478693460286376156387012348359171420012167403020686233729093190847390725031712547784337129737280216833708477757160110600971102031453082193417964382784532227985991518630792872347917279791179113479637844336872795289653246531103724927850465783355153855758571840426334938801438413431661581637007799570029992307401060552572762260834652658639668918322565115067738569066609314363917497205045241430594214730808996533897453295844070082929662969207448795243229850608050187821553070915508742939131748884367023722888671636773429862678184204387945882074961229984746684781988558042374189669886883737798670401452896116331715949127138139247466904380978874888433238453230178508582423254255095379379611668129198300518725787839110402631913499041270088957730512778365379789944880198330839466315196829360914566951219508576982964289464964327248553094719207126430597074939397707148555676578805012253875281393360349412650430719468485211276606236247026630922031154951497677420993138664516735559809520877082788227052862500492120354671074458749552177392494067948235904464896832629910217672456902472761066419986519171846928583344188336217863915468581424597419827001066132472126230046438095015200954623626678424908333584327749177817491703736343042245385086385860256876179118021764226836900648758908213995426572418518749878132745869333431682108380891042282380033290132215251680825236331888625320313817370490283055154679008433810530914151710403096317258344607237733196652315002202931663174330229415657028338832055220590065136782364395627097146725186217898580757855483266902011133075007762144814208237336649825072158462550261837707398757989178126105301831461879092872325583836856668641865681151517832520438190026978779623163256709969261070111825787922513417097581409791900153115593710250801926021259075270592860414251451653972651323086540590965357835293743044269673501604167268080444654714732513333974457003590402678219873182497131188517900231376269304480841561866898148718058031584451040750510370799085925470110129045025758871495754068963258300667675026759121196522196919920251807762500978371568118166607464511090659935236199537188378960951877712680579704710022693070151179485969165809462976149699432485148687836594003232014603906325284229099706508910754674096213768212719132227660682827520370246980979764694721567456722307440874275497736637498235597237889825117307698858934924248872137502516089594912398333300906581845100507175023654042603770912990885853720024802454952200172553413319197914750209527831271746826753366964486814904226553379895914728498914671977692274184536143502002440280058271427409143910402015627112681238378439818011457159190413264363597519542781670726802829955219234632149287650036821314869717015778684266839352509607592695374967956099506294825984981925130607623639802677521777795932715414132779077545247207712822640961564313868892577953823775693981364017588522974470324911056612488076359979174102900155278457578903965708677028240328003168778631015707228814033054066228918497821730020724714058212459466870663653577761760561116038612421204817973164381412364126201740997474445095145424644330593292413641059771409375050167309905868045312284295795047610220248132576540210238167228375139350555144579312725110667204765741460100188860315423912601836393969577684912146993614324520524176638666884660289595883151365361928294232799288166410198442470099300974133502817695006136441140602981918375088639712810379718080346353825857895058315982413676787263712860037506957985427361425704201404662680083266021214002922114414801594750304012707136797543932447405763803145009113975498358967310256075893330134670150420235903117656040852823683909086634233501463194769386593527811763659903642639722828069857325527617712856091286451667122421907080919554448376374094626606778602354334151881361748980916806100272180141696853196749742174869512552008885713003908177952229627564235097201900839039191318467940378912964145469732179333434301815696544820200019827770485760476428094059504268058587598133927604305638577808849990191106152224119676254814416578650391889933400137758335412223067617239426158097021023532000973493302760906216961695112097579283077742899158865688917952277697074141752314660906388802372895193885409067235832862427855055486283130890613971394430648456548427675828344367290621686599092349234166000285581794354768682910758792775621476296540886770720648656724928481361711678304600367026272067257203017016774017398743891438227486655003009228784635500519196137508598966573077008964004263089686167844860804300991443229019181529538431193045104474949766491251823548613586339351543225772126333817739756637314772399567626825628526590135082547579598343461631107063934957567216854409378433674389510280953894243347819596045445307142317072785835998327959360106337066994891566613572086795047243244578718976183882509664170207434890866661786662551551280284821354487767934868952416035506955367678135143685979564460958074878251475786094560139271020738079701824096691623638313203122586898036898153055023394072299577145428165475371887895764299046267293200541435299607965051065127194934363121972992980262920750087243816942124302581372500707811832223527295982430257156722648565453460186159865932427606821019102487737888043511620378278534781865313975898604319564186387254889050922929703818080342961214760411285312245048043514265140679478874112247677017911931416832385046926280020828338267527934143992376547894853585245623235326804158997987770345324615753519096758782898303727651451418483942349727942753342277093380912072371811056461589051735388376154745170914036122804647057211793141642814057450315761128674305632359977976884216722226651222655959913539920974604701953441457512065975134771256547302101316843496516643397669001505496180169706698360756358942813643637322801353413596288127830742249166223507242582957577673691856593682804010510735773969715365387065095215205532488305881938662295031623825684371759768432853956297884248344695089048585174721967869777510624785243803790827173035763257270287393596663276594167686684351070323559557790751971544073226962358123155826597489191899390763967100038491901629528744757183749000173634961444075381640744416797221725071343821924059747532470406350079519177720236088822917900939153885505259751653130433522149040536412859840914265010203488791662641138482861857443252292446880948680662379299606314425365036810885429867340361203233287459410467057007026639713126985605465024190781283374728354100831964185923410528432243517698389579305660093496803886230520881050908321152701311098655431715226679165983411606010233076917373436434611379267033544044702973885117972685315256049216047923744724600634016729968997082590825812170380988577388646580459007224756259509134770098175568108278772048495901290668810032363138481754612568217272114723303885251617689481840243088682275890312200450779754225910594404727584133223634840475761049734237249121212782921410511413838387782271539402409663876464392392083065331226607820168760081561438637963895080688602862230605978981629774320903369578068250381580875185372475898207099367833446270542395999249951824409527094121020223769045023177871611560176732141492712978019349881546540094860077044459549791700122612942383156744882318623914101567892278865507429387667721369828457785425627142548764088892790609995129783740299363232668471560558393228708641326656176727137626807891886124668450486563265870499945858357162487664882966021437351681795529555084485230233797574224487878600298787876016487352200627001891544861244061733987645035744701171261740867325009472800833165866816683281157118927441091218578816904090276890457325625646066835908731049596623446642421610639363752977423113040522602483770181944342881546491987553400367831752851462797747635968144681818642771983722796204108321716877399112403404615300783895061504843057001750249192853398920486329569810781926634834086533904751632728388115655608925101245422758461054096736580142744644318860379276448099431580336768894273560673223112657169888376699984066337208389648432378998516730247319522112215518977376661402955762627509214770722668673255850232108926410361568285013825774114333866158266433524067121691010460318091815379214136311300578903820592561302816202736814930408845847646583604180341457277674571063851363069431529431308306530786130481947579363045635805899146492001807694008354499520410783224081629878539362731320192936463569856258999553113259205853318209520808066005746788462595269349315584559929907950369878055355923000900113299456405445031781910724761555565486032419585427347911282853965658521234403208845379467986238133941297874533226506990816096716701601427711205305563067589295485183922431156410386405774553091706192504243061152204288058743326436450568860130006601024975958806967092300848503419687328092984431302621809137228785576843930322309052443082928796738977453305773977017394854025185445189196993126097555166783968070153912557200970892307851054412686697994206675305669935283590149963520134951092367725002976588141483904528825910020519991784386762870770748799669793926467201847676941782730266816728029023920707715573064631000515986115597252995740969602823633796015172140843193198581222669148560109286317663437250625439785885910148684251238931541229248509802416817759403730506043723851410183571115366117661228091723222090402163170791189259396820258450901199117006056318261551003433402591642579036526615197187892515599475044098477839478532098051069801965950914462253515874867011201145091192831790448266622556455226034970180971081086146648811144579085352843147296360250334778690206751892230008231050896997369107934786822977767478320953628880965366187628340317712378221003393017990223385601969039655684164968112198863842969861862066454846929396907000034579573121314250765798079670267182658605325176001979877836602782852692276697584003181400215963991739648848213423052768842836904005539122715956980621287860442313454238826373585119259878533067858759276529332205862953156703444975350017046530802661007994224691488387181113574005218725779924769857738105370627278148736462760473429192689515369831661398990343078179616818383600973086571725040585821815346724886772872709450739378154603953556416333928908416587031871772090858734587653014157735719121293968413090164706246917540540088030440876361652294715017886144656190989062052966629682157780765934977363625135792054557226956479222071050673259369801575232028243715842323042662319223012945045790742390090523791817467517685294817364423199268816242570526542248064520796745778909696459532562545085692654834140561377816563427506063167951137615208238562522350930509569062887245884369059118218547758691049843585512251423102898578893457701424242372788757117886528345659374971433223286645920535159525937349279801264108716664195609913125094892875611900092526588452288002471679131549149212113874894064411968379583639554440349362531977719449258018344598233562067476433460146554467280666848013192673083906224973456320914990554823843393627455000325261718469138498915976872985435027961359436368737331468479606492917123064560153191157955141999316561142008008581271761593429346989008795030418593405312187129613718112968011672390804144127679841459310150171395853289146103617435665891155361860277860768544098215332104785073630071420948350389184374754624307693041921005632140091699203204571502843791313045860746468802900203524439764011001140000090995715585693808903065352009321489337987486204764182809808308012585714912622738280005882285500368715707116954028764711564417278063458263866019910621070060959619497875943225282430487532704938677157715725824388508472065906000656637881417785033238839203655113197248468508745748278973989956155834357940964757169355155707558273616264740088381036380974429744501052210164512158998151155520574548998228138013290621846961826026571428994742802979167746181672043631446260566072905856690123079656806463372605783370913623074333595525192885713193958954765667427595285876101321721386225113103706203559466216981176627685926375141521686743173804798326923677659109113887525714239176310626514397472534289101754150707125282315954572559840018615932617304879134300130109645855732064079978976988053830061154893825200665807409267590286243374588105295894531013622176809401649114576445575343828436405386914270373187472488912523849031157264750506917663258415588080049718415745389418431385271362956478000517776432724657609368373900921393049375165543801293645675185018188828861572078557668094354054912334360455158996940400788932574259112721947495490157764685864759828107424112283359711880799330535948699747235254024067707798747609863307193950777331121372117861824757885725720806110435555957837818613487067358401811451311396379498297778726518706730007858592725973250700519553041712160415042040386696521903737844248314095127543676871757320085021948455131287877313432852044743108601913791569584150183288105528178842489716548339986821569499303531420302249156589929323352282176196361915108430546933623071684952309971261011977188690588752418876337104959098841404790437018245544844856877364341719964454789086676550977903849961894479248119562756468332368753111744577853231452139807059437403877572091130942118135825892869704264903054870644413965509675996029603901831613616117332662118080429843070737130560686140382138699380871530906654547250903633190599535759596485306332194982983880752298483910258656783597345249804144128455495922971090863138784453245814387502074337774699406011830412657497516861454581640980969547616258646957636665883352316001362110628021930433171441063915169437318121988329583687813813150076551962410293644180501340165665844108123024687031353683406757317573841746992108666935903778064115318885641202086661356480988599709600292599440885116383359052700815713200243675667671029416994112047137037009429190099430835304068063148811296119933245019219271432450343477569434230736269350090332567586977047189382082701867759485284432590512144117517599003318853410713409272827889595724717413883587116309349883740556933454005249669016506986901756207807920629487119248850242818555317540385067306424301452634297609291659002337035576328579534311499864678386593633263431960091001297945104733102510997774193246786278585146782982020806358279260113430388856939028566875093820754657246757011558126461366710695990621763899245108493112325307932053660069709374521277494059801306856514191041180339052742493952603121046400647452049934319235427839608098601594038927131846287470593887852309920296335366072636436266758318768768416144079625456591465261308373497746110190646533161550725527360328679890557571155728119672540623688181509355855942178943634929695506118018153952408715687309162767475712235237483362800910457909567095594216444578606109520021828247012095491290393326606857944768808978675118377871681256102413409432066912558877747210365207389619726606687493925421839123488208605817387316664601604700520998693019850508058219675706127357239747984275767059600467481470257426692773917546673422827232953291987554237468455940412422071899250742090534690774322558387273368166406465271751524520313387224202933391510801230655500432171735053938248279370705679557783978521695155396877464247634127651546474676014485694493730630227251354970456497026084490454804098479229606347220481225808266324395665783047499061101237636589804184322098795290979047934606536780238813436281400733195992839897663546860520998277692407515562781816932961613806071358214685051240895167772133280552746530445470068691961826940519295066900065467928378943422541901800672667964481112780510941663087781982149330940647035667924785345451970239238886602019970280820842423730231762747426503861364252068832445347334029275177245610214474040499834903075184950621060542799305704228357724454460217034115567520995643382817049171686416575134245591043414601974795494297510815861414367909102044317154589933173475862613151100018400569837932754612922746031568614435128716389072954691671448008828669946386094703963880004218583239674955104920285104521198658295530021094388196556455086116683466454369100462198740813526294485175932900817429145570285736997277485992514643770101912967489250926393156728188076016205921852543509519650797919684942326400977594838374467281713419688392784834160084324244387597279365900652465673897781185490565739413408745704911047817294367946292236458176001881448478238836670306451109183404784291383220919865639379213461944982248078155629019751147899226468883153565917546936309762790237446459653555784886691689539393548493972685735634640106537016060341257888708196816064100288109243192669714040328168209468259069484119662942453686374966036627079993826948046871933026047624670213005818163156603640456296018965586020365929139617264503385892764200154737980046192081424947995572653181356923754639743403230826168489495325594521087366927497351451611526854829176068649135405625860836487006371248130761638575940907147693231829575032292990455513556793297796882802812664970725128438427888753694140535129334439928106119777511470476506874466754497659133260922354303990130211842298200898210671959530983418288769917981444760112883351407585102945437850401680305941341442362017807974403103536301341695868716058796534887478184059219534140340679400398558348751764236627586950279563341546499648988775834230486466549037296067403620144680896199250336310619213965204650473594124954864040401953431565167604158757318165502105543896961509007793189329742632336993870712820314060850186000740230214907249877345148380520821931205031614567639812609565606964520475707650865820462793702861122974372085212624355248410806281849407331696721847331329904583794067386641519294591450842092603382110499210864297008910600574472401541597042008092975580360619472911436159858925063857883396156118254133765398697701920592942442013888432627478950989961184628453832950517335981579292349810270433933568474966471607591562147526702566922565155756384615768742864345048676695581641539867244769935444987416280158798313217297484316481049205145016617814567020909944769662792406944059584890079166672871065326505259049338687184174153465834595000781667284469434060988165052872732347099640045134039626389463228019718516361368285189041095535762138139334259598737446806343719505296962180175005531317457079741918994033258707137822147264873421359512566279951994145704514329518975313139108964759803928056065301868334598299303179569187835138609599450175555536819161255031647121750754606844699921315008826494228332363957768456517355434655956368800318552749249957741513435512249962885523014266175487677999398384269440582476127427955106450090520655271221286832892626100583559281318409885399569876948907425107792233799833443598768025011464832502173317499536024866089514922561629199005367760651751259062932591596964449007976548776416390558940640250928823455998710576186385206143722581090225878649847072248082134491710787326093500352806309853790321995317813571513382448351070496706466888056540809125646019344063439395972744752590604921187990214214697038882497570457323666277396649586328577173516982651114739611995813812920898208008505982711497734965789752735218150738668627264308619747507610510926454856253091698168499477035003589274827902580450085890945139564455569005788449501058716933895558252705721199430469380698668675547027676796343493623807365777182958485000708594157720044394925435753298095042429266172513317088626362243820614752220499440737237973464425609955390405771610255199212229303463416000525514847802114602686367571925813643943256637341093830981712113037180122768071909072343679991648546671162101875022643148773137268687617756397579188123464880272550259469499375692975068292930327966882454922261323927037468605355394264557606666819198972577276955433414100755899941252088227654758223474913197996786337155345826192741922935205533152988869397450177903315223228855424432637459085662883906656430327069955536564661972713957623304295483246024840340081484245565465712499938790933191704461610123053548240546519893719447330021632822116112133718622778734221546965728013528697528563188664086878794195727564814898666809323782779478733102611724509105203055114901305863870358227227004211929123595880504930729014980066381034559134423127155605044560262055062390315194093616924974708745935967131433514432122272577660639399452552503210512728206145736835698015715373190149489680171086329602356354823496762259541159029445300365248565967727129835248512158324493286452723238996558941097997219393896449485660611366844395427079705333553019079532661523451326627981309526826766603847949601029508865032584717478234455079040307036267575718482481314848925694841621347906822438937233991908625354980839607713020832465035078163130833992025428453007560515453151093552260020700540825078790700936678006929734906602501207565145135670601837817690573865986374531770620835894457509382560000858650465446506922071775941026358340307163765077402615396484368047546974529666351017435778924690122409997493010162989586483468129454942217813073550749649065143649639907054694396249980337585600284586948479906164046066147928012550512130567697382493876075312358614544506469219924656402307294038525917487921001841697936115641108772429955574717268709016049668300388190692483180925818792801845603787157592221925928260287615171921877406087025190918017119091503885409893693315979326809004727426856463554489924717783059930204531791708015595874073414747662482069847341493994628034576639894048189888326475494055211065608587474755528620616189857202275681068261433194782292272231770662841528959327641706954066528281328546038773688805066535673696920077003877671813649957264480131120070906164379094752430020030212029500207152504503522454553193897925704231935434662781445960887419616488955658325722461706268629814783771943189626906419515052406716265284498687525271051296414136855823737082947142613800890780618466163928388057116561527166621985678396532387941365071505068170966422986918950795570930143770053120240022528626738966862570387972902711477351811602327056503923852911851632526208109281213845027010950707886309219000984141871815406952166620818927945564043317240814022011333438044631110873889584134903331110028904002330621890242680488397263578614517032382273313956037219141049647166159287953258703392044939829960858075453600166710026070943416620887373643223483470666631510823759953392178369755294854421026793045832756090074997346550739225518543692701431390403463272543435962056910617248253449635545777191716052288469046155766387613329364677129247525433232856405414582973748971818060713488728878999920529618902718412833127261542612905344538869357637292040244016113109910218537745392025957791352868243931115888668542411631163878643876590637703635164576400174206578827473894875658129961254942403243113712435976522293072426626069549556228220157252021123622334438178854497668239866225841571226682939378735498235065712701631656938084513318849114617545791482847022776796155610394429533450110552242827822697833055006304924678848321730482375357079594780860682950163856614828547506946994749160978744399382417387899886121285392500247018086950698982586308172449733247684071619569204239167081009824959498630257505107840448306715399105483940880706512361907137127189040489884343833582737640410760801515566498649662050340810233931260195701496135975027071435602329177160635930067384064578812729790247321628761653689129611028554046155619107386667233756762539649459578884412987572057058591051135036594417900329424420709167395559032067311289211169831181284429543745597261751639496515948791039638359892040402053465475998998942452848748009499675579013302445412567502912882217010751116832153504091197296749896576912495181838785690776686465248007114972247167597954667748674742646825266177685609506464310778497509743001413551713274426841907095698530486847318869797778594752674501537658165295642654769396691737361571118036962755724845315104186685577917098379480928975280180406666326182232532092945226664952715226773249651572315696963454002948151733021750053044175563183702640797989440410457890684415664808531540250767296922983000848000443983048723894854094781860413060323748003680580954267365679569265665525313154932142061778014322525970702764091477657283941453736549948012948223427610658071598840806775788965310577260310591622944894442330302755465844818472175389990787602730921981760017116305034387431869473769619827359199867234732296535170434892462024018254377679534148860523596165595675875904156242624943249685758480898879547226439380228520319314322816190578737989138999345580426031938212321925029802785148879241562618622683669235567569848670329103132454943299797236028201898347127046567252576810838363834140999840618851105342482264457252079506245974658585574798996914797453320741128602671045597893556145937278645659001275846553141020662862819467571566736557198796292266583390820300309853292751195750940144395187697811212413747138675826738772842599513176518871886663332782842104730913173847497295853166922294825476969935585046590096063073581994115405545638845180293621446323788718890987635969624508439412412285864203850789397813496634006397724592335651557442592443728525527716944018318254111937101069630873289031110850306922623398999112060502447188277875721977588810097596298527582573464702746153437990530055377682993655791330616357624165871928917914577133047856205613876490585872080575159646876083597797854241196963871833386369910441195630811200542012893041913599542250435300209573361179717644461752841763475884678535140432358101427120614274663147788046199248367946413781049818347039765789934226062830050169445927347580990708022329164345556598394277553482115970047076736479692809863156760625563352719108948688671878036091313356010837509691874088521731543278051834989635568178368935963620118673902414383151382936613513513566533803302590229183338876548505055911181162817196566125972645695441790949668379379346941034531335982559060647096462232852668187967150048097774163113952449552821246808426798845842764391789568837956749832452885666369782819600139754295277200246047536131941608264711273601025855862433914272698209569920769946261723760488414659016575318231861304718453276189377370185626163240840672144218482505535270058290090541062207142723461603990283556550744753054585328544194077901316322804797055503291951144206150718169119271882771029473090943461233321921191618070857404476405775958520789756645160007397260925802567669640087229523474943955776150319531637465216317882255724094118062648630244700455198222997476653316755692448197770585404352034333928397651790036222143835553753303530864359359130213184680531773464009592161821307599271295227630113030303046559595399503241268788873245771777928560190756077976544598177149626141683634876023363512590740706935831799302363146048504299847391352317676459194008336197821571393101157179869689090661278134800046983656819806268100427119426863571177016852571333273379380266571437881669410430643329466437127677128114145480238287265256523190144639036030387497936686872302536019840990667714888473862598506762687791809479004289937851814176487518607994201825874606045002385550004270555986717452252705549714806355462355576336472279812191279637574566994556781671789253374525212843373610851382946004061784847980197743739904128795014723113540401647672341176038723065483721430519617828826067507339315329048878592189041312531630471220313883932844594120189878586499912397726858215376161429071314890231541350691532706305712380665196246822017755163669251773207397000384745963942435577159224598887087452479918226550615255619205104376079018027177315731896871267195915765925078902276338140777935672916702123215688420482522321992901090302367380817417906181174612569711123429357473434675847160271576080145280230953248457016081889589127258148419243190830043027007710494052054115426875180160709079585484229304387959459590516837117349857676286400875640797051148010230242494765642119351783483371897300114835861765018148126435129735825952375535962666348181995145697938975823923364918891903851761855163376181459526331720811913708138390200837666325019265566668775426525332369556248058567485811003332260645874443519217165531668693006624216828152019890968859937249324084912008858077237804209710592014208917976702102040228720482680552653658579801761726121076050728667898228714933851756541243247856247206383051260705940728447305187055974474477905690955911706396902803425524235279626517264513708199331445611343305384902276813697871718083722740536957789366372838295728202950712998196063891419120491870123791837118593426457641554639892695552274006388672192613490054410614164018255725737006831929292777678473042505053504191942424570780878269337904844777659662170929771280656640259237624672808538332124313285503615014507786170097231113021154049089785586813066109313878647535809906697304631840782262611145222068348058702809322069219819842270322131701518330939846941276954283524761777940015222718690804210804753981588789521104061730765340511433877759539008732370387577487244763829850162757251563281083981916768515255402275384261613701906903059450497176649205174827805343839242471569380632187292083437916535173664359936102636382814028057558850323163978054989422866271893339093250202552849780688287533477602670295542603283940463833183581898864084468632105314074521631911064493310160885630663114358536377759225608448201869991153766764519413322430576173269499524104266446204352396594029909601945227959806693155822950371517671480856297968677732170868464082772036808443057705175691042662863320619815562838595736272329228135241525902975735476058662794486979743025666131808804697072612566454542333007358180470581734886885102428650564271991806434355569584596646710332708495823169712663180441109365057850014338626715841226843399688437263901046006372086107563645075006837328614111016837582859020880591746882122737017266365743585797967589111464522721089914063126700871740170686353428059087470468074289222344346134483352293062929801535386408003093131522934001108804060771966604061564641637570758994456257571542194460329243454519430623403282332498826363216304406745392152566966906082123053714290961839620909476666636159259839094104158402572626464645302958074734362466051076690414992434821378395279524238677780904701521588178894343179119179014588519902162561173176167599489157695168516984964137017682443576610733510312950456454373166513605261591527146039771021750030489424629641318423519560683636545504027857945130978566585356192297932753685368800670488342359554712911723400961947538997436857781858797923318657568485492481052263102901908315129252905023314513556219162205598804504826778307010732719085019774849323393847983623098644792580747521733652640888089089631502838967614789453822415934158194319315993232994434913741979440233930419418152620043524115463607616531968415209566947858637030976377297270596483138272492214900335114839577772793873047284035189822229368980196769006981804025063780955704021040554296117643056354362959672562429188241674020840278341501925798122824327960645591627511795637136716018841828816810019410282394411325409934891025809054729052110811794741548632536551272689377101693534436326717058355924756036317453176189810708126533822995896377898980099394255921361879918337520565171154708961583465293018883299938773898388524613760747150005001613213535633201783740183739136185278502245358163142133002422790069347710982284272927347192905846903489096208219234201831824323344170487077166957936932792109011693703139991843939548314300141846758094346455863859041886641814502045969687343193248805238008796773064714243826219302366660016439527742613930228696778246529963074201097234590307351782093085914076283896384492790371016155643706019636590376704392638394776967085928503843592738345848331095551451315010366417600829948246127938060717209358090737922014405103533341596782312934293915837757626761794809579323637845253952045062854026927487491133455296108494938290706488575705016352061411751588851522199318354126062276213562864546499200913742093220013366702458152952066594417823270939136325649967760499161822233565175983958498216755887749104755049636367536098439619388289514177007633589189725824637134396654832783463739780424274680912364908154865741749744654180120667153300815416389940857897691381983520670555603389282624028330811678159564253323933888659397493757914214574759050875539594420248198540102054201371998271791206785635925880812893398062301639796011689673466050030631666598055883295865152870876770804380801996037595757903163138492466670468454470747708323600706252033012063574436052801513724999461553724078804002545956233677943126510634663425280837176958912581118075661202883885378978786311482039126971893030192590424330458677353188104096671890941667818095623613073597234212230509103844646903940697248142900018818962559934513917355363523383148467132773519873314522522965050240063205175451385296101289246296826773690913060894279733173272893152492397443616598847512272605577620609842208439727589661491536787405825841962816546240126482353181973861952795793386861300691194079552915983943893050040940750476116292233976354292598576750566507125627564197876311569512497869469045596358172303983743041066808818554528108830829809096990726771968722210674440314116940387116155512353652655024777648698636332812284935251007796581181653827191158824568024924778677453970586158383564572238398326178549967443130286373125595161537847863822773625085250950254652455064116040610718069941788386291795653117790949906241233730763175596630401602391350783529413524507683495033073972126592381395841595576458645335534517787716228813272281683740720164609093857127137598252333675564545497530549071597321111485736865303626429119962865081935783346748094469291306052679207562745760210975378574806715845019737548148556187836846714003358066110150534249710760417958331115625382775033892319402378882938496191629849114368817195659984633237574715699425870045402710395064929718452843176055686895956341844396246461847683885502359228652042557370749074723020965653153604675826374723909930466098625239051079815870860569478877660793977387953857321474285352023177503388752880490634388748861904857136500360920022931177043833365050557069080102129957143643108748150814983913329614088111630578851536117234769087396975212936206275352083603170220870403644608468110139255359466099670452813739191045727976937659359960423314202777284062755097616304786194536179488779397947321553332383786848528990588188435872348171895463698942384540228925251902153765079782068146271083650762082879480409070854012545004030240700592490041938672653090060449693432307808496174843787841395177342597199850457886508819934061362538119659080936554371339417837175841804235511510361558179931365273060872258456006410785864246806799022849379409839922663359515455586056254382203452261184912194375160322432915890173582614932386516276058318902351102313802100032760968101888979385368485244329736199959999922253071109718875460628277214268221364141142447585990077514339623029777848207228196179070619846696652063069465710185689168268241258620404996320086418493722797767139986248910363366091666932760272413620480808199004540566924210416536388016596342553448286289858476885262374581501825727594885675125176363211523701229655102603022070113385531337914118085488830836782796371921785240896189980771727121784417484660677100353603587565290221596903952635130007385534825714663195136426417266303411545757530388653384589991719437354525302598651042805400272469629727569619929965942122879166418866799480750013156123686406347061257146713117395558876077287503810921546505179834427633090414964007237436298091178878392441702497410596597458898630108450395419415692956598789864477874083281173522241285688256125549359003791404010842664465512241408232544760751308299665303221725960009776881431286890242154764606700055864105544428379091242285145511092440800864284222551887024351645737306978375431026632607675654590652427481280282163257645877569301684020898126235514077681135770549539222855311960100470913777231787217257973504013697583031424281297770418568230174255793802485082535507891869135853213446031659874716937559468008271768622044048174312617378568378082408721640273446160886853682914431289945576448751098479183829765813072525729047353369191903261880720710269316543797912129685739595617198434750789361753152246196345220990838684231390454481154281862368195919768718360467382894052655339247127082812686576233155061328288448493659355421089167101569041601421838642227026644001881980549247817480282188240642755870337032932367848493044346994926483003731397704930975097186263799638574900265383222399177958941212510725571989617897540113473935152459665132607593963050682062222289408745147534058117346744435182279832065916778220346815371249382074293942894480645297122389684856375280777844264255882326742019701182225961305533582300670782653420658158060698770331432864533937435884585044009293016678014934966138535608653420681126976797431979357985200587047501787427876212599556722353124554246746080787221994035370689430255487778140970303031110614746876252959388816582552237860917145816079524508671108414219362392333599413072944349726784833585889505881937236680911799714678068670998263632261585709000218703032982022263886546211955294058432725566393081080927205898887358490602987610303527364647678771088914075235305828914685630739274618042576816857784087335378836532113765850907291719586244742999860611227261512436540560225130737004162488632420958364507881818041362679807348650538507850210474728178605950701547765512753033885169253481536238895955256435221037894358346859644047158781848238632494087509119773146816227512124911975778172111697542858323724045226359018168540185566889131021592272153431051169083461056105427047175563262102558490846522542398429689811248270164139892784976885794057322799457916543138158803684213297386030748087691136356647279553277938527845230865752207111489292587254745617111028683949185539697773313056479471992640584760173560310750882978242138177914913111489364290459451009580066241309173962058761464207986701615486625661763069446175718806078533255865023323577500585236241840656496583162755194869658319379318016324904455061083988447683222657743050140631988667003298103970858047169903488326478575937808551099751613838594797696167525494997327142820928552425416442542025646902191308745036391032208231552745922774820021868093810078928374029759618584378714962767516504906731248125637968873123366165407450285898541482494493465047009684326349068537941409093924483671168238109311922991721963305418779960207550401787201231309216022846893428466070090447463063987865294233703853947273146845037270568548345530230700629767908699468587791554451141706171889662046629372690374865881826754388185359805137930320378036914056336512436302388055346029598508143908496652873865810009479008932867256965962748465837980863750868805600447361037023525670934127676799149775599370041862248547658926747304588410196017667727902931938819986172921780228450907547666956040180316706285055089311512671903775396629717087333815330079606647286279251898952963758825062037411142789304568146266858402921092261585318474021651597847927135085265508509156229386763166998489623312155902240981054872693923547986914137217635619235836740468912166307855788387343544673692956610714949504644223125839122059596850034544002006061837615359602448291526708755066131911773974100900550707984784756052460493042366194148276297985633178492272687301683293334692629384294755681539768706170661966883505419970070470329223730180910778974705093437024162086158553717758168092164762284926292488495129769044887753899394833607590309692917697608320962489745682313046884870764052950197890059975735488247488102584968973083925924506056412732024080774885832250425238340363958518433595557402173588587410042205005988398409051885324107013226857055541868411688853337885589583019015614754400740204757666113275772616208679072911925137292026587404524108494465213858065192202357724455316345500688389412081387175753164110149315776070412175987526607245609284382091540247753811972160357137971945943773541255341172603737640800825759669049649824142806627744042450756311850319574404415089086656345219560045864043006419198259578684355143365592168033127758710754827160485833530836002897797116197315564587358430302987579498031392326159559644647789369897401731096716478709297547601193530478622033995963814012612260669514326043410988589750395152521979008292852409311555942726799396095870021976196211393895150923469941640403752034024261823413534719705909088029550708965770521090669642009600308828656946118721418134368227968982104254442450511711309187411891695444656077802745399374106686120553287808956938958714372908603215477954869807151466990909889660149040577133230233421482332514251325562289194102858287055633546298903383612547646508636987676532370897355365381855570430068719242639338003239155524817734603139730810062470487835595591245029066127711565959903040125338676612655405373810460910559352773693357712564799488626400233048589118946011551826333199697837317890632724887778417094996672936506277156142978228432588557583660030475588498618549991434301803257568998909436406616335572935543511019831267443854748593071394361549189985173618999909824486091612306132421741394611657006255108785259757745480395761945087880194918175609898442958092082462507515234520405650502563718706752648462453641414425893034773676156717582996491774881421222265098188983150429915387362709081939422302269479601707460495499414314429357417921712286818975397688683255343286787700499154935323001170369935251652595819897708153015336168318670901043125760736794418771767816732359572397940934823896247270169276830153247350520872028198162171554764483769876977601122048965334316625542300611432328993847198633159958881720150392753145909210360280004035620219740822927398147647808624817729939150642948439060540355305549730531639484535420517640853072242695486675588011430160536393790817638119979322395380945096316557317890053748477257484212119722904286235554740705044783803541414785791858677727709887879515802346673613121117413430845536607155006801656483252272981587150176114169785232091156269176671532944206738835549739557502860399488294968111074086699274362918331544174603799611186967405644786733756395663589343361969496944047895631205287785926080874672564768051366443937972767690141417211916360102629411937086814991765230117464005804104306858027500390416537805416201960771135328135764112946700993677736745723057951955972911880415726616380725981767195296405404854448932192236442818916153687120739517389906374100546751243785795613178901932668430318745866326444578339783859815035182315754728858863867798225527989342073118167477777571361348049203577841113312525175555725403681065927772133027451490408905937458626057338694040667777646664316763718978500247213284433403843171111152898444054425850770972063254049433274108369126594380803573784819686564540779389620525184567404955555957551874847177554512569159029697994831635683142262261067748192406137202918668070264869341448203522449610495175846611587912295792255686875566383492135466022619845333897869111030469606364905881823354768419746184173813792011475291760847483633707100760241196213436707724389197471454019695388467639890245300609629408166235376024357606888736848866788354226678169591983566169156955406467382505659320354649659490242877467946668788717215772835898444458164670109000585882749146984457805383337620717799132792802157285908074759091703477330461960165782849868118073584773968206450598566467452057129740259630354038151272196800939572273733260118032346873995188465967740732861116546406824612260017385660122115403730460200775523135893064341180835204243049555130563751503297716517367189014825266733501027068889394345775514048702291981300997164328698523426194232156702489181578858874627512319196133958702298628866699214653003917665058550793736352152471812093974867320243981469070448948837476928549775273170925270812849161161546924000765944382595133425339122857296141929053924027764442328781349993109127110097407184133236839481394454788879736057936394205539748556939994844016796661872080769035086245361363179977140629561428635087984017106655268752296822190666149302938823469659598347274771876192420091349422103467781583184274602057710747935203659862356683369868332333817384304583891010968495569316567595992748526988839782372795722726540476115309379663265865467526913878556057067536755242241675296904471903935927267226943690658783613468177339624175754583586343141553463748190907472913698479682242541534501903255800633940641260989761209598286512289399308048532686482506005066694852319820569240190646987497762859948111375048902694743804108720615656674409176923443507336421627705527799350137344710090075007799551580333689579167060846712632866449465185224420944851457839569783974289350175254773714259137731610196447800614709868297651061418000686720488609443239890140987839451417096674682898125553289697098172724193268986717500541049575038059712795944099969638470899796791676601391691367981611951589600622049516083329867277956041309950503749141131617719668007380907721861095133683407653183692661682685904129213225554622724095292980178548944050910222345669230711711643285670185213979640178254817859290746588553444998068396729557011002500801825161294156463328669024812210035018829321671670035207723295775972560690502131096262669120382607963692573015291700652860505494387293133540954139136364851324643486822358397252155651025521731749937113169152658876746688405581060481986230040900718198432973610718254446239215154331429381478844640875088655467998521988810313521986659367778506701489587616517644036143054897240190595475484622220984325313642698751904711831140826575900986236458745810386709012687807628583545578027482947844927330687094407464718721366939010798437983416436644166577042324072582293537246603761826551748251629049285349641280770864370195352121974614311610908012151009316995509365148200866995420686123382484942473466265301212192903670011878420607906790868434800567110183320181836149256044548919326301646307602431469494615823127546523200830520267274678130944072965206108825893799909542086133494863731123905925959091700523442132402315464723547679250271295973890524863997764360088546549326255519875628884192580926793575842296901538991202077693356329498320317354564785636725401110748236575324024058437199249690700241271104033418825065507416731382013030919456803506334278266468042587645790493825795014292478042016093264205209452585651105217336291190765063434199016185460428789341419467926378259934421706499339420135304685723558986073086869914119688552650669993440078155934036601576696027194143587510669774352460115065574272085497117938534808059233465514117220854241530294202479720997702670266684608800060760531954024179821724004298692489435140739078264551305510324104364540417785446751477760456325298029584559815440675543162196593221938181018151342678302055646975482654723337685364530460822584592572176653344641534692086925063399060808026494761994876237637614507721526541850468984379422146251837535206067318903591970086712676541216566137567969747898457716307957892523281139804666264971007046268999768430364781534903892779921130662999693912820231217229211246770245306146022397296179712671860286182480615041141780146206873416724928497684865596358009476663456101566397058717318250490617851306829756020906865973158571297080389216827895347998145371064315947253769073103547799817892388063227424180258583453755137703081901982733096459093986260654991954480274269190713519400661574130419225522143166116696417240149565921664000445292351102097916987252576090218883127760106400599829062815323303665019655853810626791716058023736757120398729103821835206538590993424410584937532759393266617370803805180002566193522533516336094254826093916037796239219255391149945312650678136612058022316716648582566168234280554699901329439711682606937600581575394836319546413889353180208087732533250091202861807030521160850120793197412629426598442578996159334903952131858096256790706535328816884440103549904812530554791002007225885220144102534557671152356020306533066023467535893781024223695473853260845037543093923757337000081432155451307836153327851055888515883255792570047251831467544887300645935621797829936088044961111863485954138012224573879564325193241869169642666722302165046096860487084392545946591568706631019279438449442958266628921494086858792385177172944878957628683032728138570432703563296302687752228111552930216802974705910966460803176369313486723915375004888578830277787489169978764309050733696354899135857653635542422816365607435427049144747185070721594622215166633135262359119799219082928588997246529450164734564777092411870460509773968978136288768891345044365046659733457955982673325258964510016322528366850114831318342959396393774802884535595444772921876083202917529240915752640851120102637682555500339111433095012199640835782227765201919499672064490788186770694839024095322088933495905411270585905017099130301661029023880768873348904409514444667678888841584458842634546892344974369595505867255337806475103992217080026698942781404024895191492843947591450225877085643299961055435252006287311133170615056992058814722354369175801065151263478342092957459254985997497024836197970125518359917389854302725272009302233019335344410397974024575134587032108843818457176774012906850160192195089479117704784747116728926198216500168314201953912830377053474301301368467761453649746304431050371002306483420891253037407181084222263300432291704524740066897248392063384879454078411593414661595485814475596632913919328417089105793942237259785254642234347508916166159289723250474407005224262060051497479804342934669368236698094464535473380841676754998877396829672580219682314527445247009737343205283380421168313403624707021736202872170117028252295961273632804818062767740473230285100987395910684727461052058892527758407792463018288111180385193262413855528980387348103618442269561573213508774240017056831273265486365939230020294022537962523347540303711873978141079919737501286325497381599583453157891242666513530055408087875814365988418681013576501250546548980427120640195168215679671462208134586716891049657742681801734374204245246526228673390068062765021877512643752037389135593166966187254732257530718047526194566456790751520698864478497182751912974397846609880879709314146441622472291340113977224779190756440539459924421532770753469796137223575310451166026377733845529954439705173518514432981143660993513040468086701355877731076452707283624262297609778281037021041593605414381160699845288613040341789262928075217277511496162134747729725280727170157179802737680259438971467772096474360286000475947047275562943706624080452762919769890599287739910107281008713709519716872119417289768478688719223940716878208200959841784489910111454196002283411030340437552658017019317451245191584761704537966835087081155388036366639728390279862631334919456536105784196125452461594468012617826157305661926163685038805356574913600670039159139827472939936157961594068422702142649867040575706421849651216219844264966788467752411481918608805714542742462714843173262910235153782906027289998030304665981506790445632548997541027890841407961679446008188082250581670442328194595376785208405831207599983452265057966633764609954580700485308252629887801681180233196423347484696662832616165746381892896576960609465271092704375247052624384547210143067780776359191410228451396976390451696914006140324493514773837923101326126578335026150929092810540931272144156355622914586173884324978083568307466445583441745043285081331225092529199801965520805459480776528796218085792255565030288979753296691817673837750923882041636723153531985268176952290181520358291940344922742699329333340393074227801362829108842923241598536257304734612633504210082194170463008035130092655138140848148380013077220117473868683259471600239641664414309099824690470487319700764465588885119672379062400930856651171221801833828141892973232978430532025356299326742619938501853017438156159582921755242394098703306456966863815686532049319920059354555955951326328853677792531451533935062804144124815892050966980720480309489599133288433757190821431087499461035628265032808896495300976297795008311071153325466529251150797353979430659713386969511581804232348820487599881452763135213382597039124408982741871013795809797332505791032600227178149165912144920891628130357173856061989148678266267049725161672737135070159500732522526380561368276696511984665465888521952091250626644333522414182321745304383979546617725225111416896555073796324393267523726756112967124929100649289026930355235701593762290858547593497361524576556313774594634835669589221629970793202961800404638748170577696812306489707542159735895374459207963248970190460074785346386188380938270612146336389584316506756512125183662769029191921106454197298983800181440398697010638327190621928552348059511006960305563024157064189055778759000183088128105567465842068741682542495607195826091929740812113702562173267347720163451522250993713444987197210605989477789118525447528694504934971113008205757951947321758425951070254613284831206302213481164410685999352780828440933827098616014046598281350843081525833062336497733087732746421945119835308180878799969080672715708786012686264179118548278596253286633283074979783263088456144759183840424884847020823233277671920824985905684757553121485329777450552775901858154853466972491907871936374343994109571624833536222156756086483588034575694173120406746326253813364819903022988136713549725749191331966034096977725358066236922827392489566604675771263586295439034242524471341993576879107600693590791727961947888069730698372862365808473752206996382019614197170687587568022141405807894165992424587592922500920390864302148976947011585969509841286021222292108423563090041369506948994880906987746347942569497657127896190223660308077318365690427556596049178825115863418764723775996404731464902969289337945559628013138665566992802033226804148469636577734238510758778928484461554992882682877375371237942796626045761018074870319045085424631905602665492860653123774203695980314892059528356821133754267940766336682530292708410608300812526299868251078149840790946532110741453127210875092060516726793004419484297343205343994974048581196342075669995786324972577922552510897045975776054987507835331413960099421820791971648277572901659743840514595122607584301581522340036892992519087415919297520924508460394394232371534481781240564230320645477675820306497027557681876281528931553494355762558033116510718504615288030465916954472993840430529659554643473271625981115324637524569817366500735270241155938027115656837641692875318355018666209170340572967831071466042619568927564968094696702043526681761650023500819575377655681559067952862677105070334876282049153954716364139285145322268977026584796054801839464241927888879335660292650311261398348490092693988242244682914499687884947704678443295530253511079305237909082372872283455982349478340134623446444661977637317640730023640134781655120921943701681052058820950113112351136601446890243831235092710860072982504911736150721844318714990026421775410021767822318930835764367291686775116968241091921127077427621119452330433051883029003314447225341171289835484717306936881901852611310911745401806921017310877157109099802580998472639069806335746294254314002936412660409779084682133529184773735583136388209867746002738989247399903114804503191625689337306301456964521571581646265977351941267616393546822020649604793476569933959511234244828230032747680628534628249716532197952202017141571759688485820181702740520690431160971819260103016754576601938083263345728701718567153743494858146701960442801316523706270146219405863850526958469808717511493671443545803621161977589776650765233553260137346322111106721109383878052623340608014796243233214866900055889738838632398331963337277087857353089642390216835194547836975816966297663615782334769552294338719194629873113093118591185719575040495768251606189880980395287462453823054123702520952441524440452985074905646300154989968489644040225840402111909383635725893126637455811974581169448559108267495246341499213522105336668781909090379734401096566655776985115601945594110641793329261451376685324717446258376576778504455679019025058968145297860364859401197949385080686573009827850405010196036963617881599254692578787892312656472157084061258549649048394124759957852798706177161340943500006629546890027524973206496780373301127904064987528598440230557376914299304848815982465798833526250758968334401225127805871677569049881290328532068376996037908689926063400882449239045523422072165113254645651080747855827943913324603935355335317716710592157816617918948931677691647676890669384122437754737870382330191575288948607426916477899637216154077654820003771842667436069214705453119064877140692716539794239138948671616792824354447835999402773693764363332450965995976109807271192836644802826760973866490828408406720735097099196759868845865575355906714610139013603121661620383074284349408554584809388988772900436267303100366503089889424970236889923693385748779330008265095528509237769157936457808719287403177515049077830939029049093269955460692418763578780987340925950110510120296748787473871084695718703889001473473836704057646885477393090925709679578365165226827030633330489574699227794662524061981806564935906540337878525234512920462995081001730563845373025320663948559690993909370455159906356136602958870276544800662689824976352843225019218402023194056515581851853371339109680370133321727611995056395437873896707458266590710895286884694648222820450751107011409276551713975676729799832072115353336745392237246368208430196897719786349701467136469955361537367470618326287529765351549307451571368397328125195484109092336016619926816697660950944284761455606849649809015064771957991659563395198208333193828922689848482715712570754050426071155691056174004141654484783845477391354998459226443492068254562721540301822284881085368291137494842366994743918507495058583457208397073573292217750235535356132270672657280236864205123348414875270566866533088310016216981053012504619879716801072071216408481152525818404670361673757263089590101490484925828519725425834016149739412038933232374129544922161676400089821123987292070416488684819901418426657188472915157389746080458915574791504709212297037902416607503543405708322118624469471978602846426070715888070632468683676090633098290250125953206019757368137988500844385484723094423000629920745932478319234842803798043650478184019611076405153945872557358075692210526423123185079222518835006869888441441729665093744030289611363246585306638044944630609850393027231768009710897434043215842368937346486129233032352759282119897007832798434967467265474654255758239711779303785509708430188717083685429678416277677258998944641045194189026721431132497828656403827115267212659156055078238523439810082926742525407975997026828946796661437237092392029367046798791749023477590801743210844070016786910618429418498515024252626980659236304203089150204255768672896587038520353166790919314522444087755456906870231466180745403736990449840826502613689167348709946698141536395548706001942359175121141575636879797256874462678570151716918527105155628326475225002070434122787917447746868944585441326571336686441631025095148863367484945448734056233524097971013298815513764699831731366962585419325561994422937499775776684085587412719240128313457757067116052881910107311491317229982620433640918305372178734376160207068601138594103419448444761997756287115464245856494052115862344056862489206485966143837381898805807383935600046231145297826243539364455174331226028462686092755871657362628228854572239112333764370181843998252170869780834780539828585179272705169685725169365738358914811676582065490281051613426879549187298244263926710795089063082552793477787365621119778949963752514669095590731953892081719332456617674845704134075740336665065973810911373074014120584610129349514744726071797799673270227447509314378744827735085498797178798413662787438914475767806954432076216223255041465353357815904057512132202266717194122182258883005715191845269879533275984845258210789421843506135763585201258778599824212815951780107178726950304472154710902039302990997170753463279537606742107489971654544816834265601571839280480619173587261071735009003481879996535591612465873774722318877090706456350924914074500610342904925877429924831110995289273242270257443405993468563120893988205739591430592464146915717076455833794272094336023835723130130130750654344491643093504748545179929090286222216803264308440417762228292932834419954412756417842538579953889179612623064645679583420802239208579367445417756338352119128162504545067213884918317894871668705935343344613763406190354728158223253612074289045620312925758968295856870450208349793149122930337099848825721263779057209477152085865266503396257517406953200018766668767727866902820526010712169372132156913630025851659117826231858782882223885154197499880524015576241879273059753987330920736373521003053983665890569032483477679001826899694951511730042443645376774935277184120703140466875721707938557043064186009106028991021177584983014478469795545411993110266697587908378080532438006310559970905192234641675276684031030155531265315909769008765584211484763494720471353741805902039469651674383465868066126701683717595590651568182423648173615175211765756893276373580414908416290610579480860431683567389838809746480170904442728960383286882819908285786496416165086164127485703452831235778709545809155218286164763103180037901184502233456019145878500595210861937167177712033443042719235510054249756553977549978228861255329098847422045427560856563462723159392023098564684196600157562521403189973080221536173058641209308352253692394770490870047192941737562315373981127285565635996684097920103400892942949222939311202603142656897576757889887401983582414559013128224324483139661551975612299300977375491816101397269386041905609056394892654755442059520955314573863789089856337411181761475011606760542407269900569978910379121631880423760366578304321760897985876462737398724210721827330311584660057871673558260981553253829985874253194732631708705009717268620293870812737650384582262302947592720213509925696611535036730935921282550162121155006233591659291715715349102932003419616871582467090120892986283925743332416424979295540679102475044884260793793905748855904851732194735939674140985216146988009788189599916338498205804557595303235696173402524358376962160079854266872255609256980071673899316792791594219507085034853142140836688317938136873110287808731538983188419053243465627514547611812884949301333960319130703778922923119772897801160183029082213081670768062701437422606097130285801692028838692442016995622355390954846971714686401851429002657181470238788177035910704816917029331628005579316437177096263025872840397668947569435901362952228780222940528158928007806917113790330933626414401812755111539318988167103339386862894093908004521344475132101599765655975276563582983339122887772003811812301112010302919999500246308540091472768822046983166510824273024035313877356415192616103665508622313571063793218867148765454218753546252801289462419470960994623258261925117406159186183298071634272637490046406751021158897820312897195658507767008938760571568403799187373913056106724962437304434417620537484378095503875642554269591074589577143201847306340063759522794364479173763390126760062965935816546484531109293318337854642829745877794500262160532218623846927213393484164245047309061677592041869297888052828316662781338174821842963107737881232931760680820222597371362909802881345175428529584015921738864680264616767050745523547359562264803632664203291279844331699356931558009734765100989897975030581319206146948577694589914833570225352992846960855334984777124905961622945443382893363944961817035498586096852014822395857346985652253074563758750866303757768263023272762498146043505983426740306016949783634628354517412963868623025557355365976821200981483881538693925791573429124498911208497641544771625265899761680399512600918978860104944025245366240622885048140997117821291479911358198334364310444265395685872368627116356692946198336202912088817731969552716513116759823663720590710660885894122031426144011868838476474534382074600872590201222455937076244887421302728505969291766184874647916379585324519464577679417940149031739949255903060671120029210690347989271852464515911173505418641437084058708859062837558655008862235920889454073217140313496873524335938986323564321337142996342028719557266259300453153335753243787681394671851295813990480896775498852331335906693892422560469154249497513717789228001041392010239178665899010392796118732033909200878841359873798350475803416938912790376355394218144220081727252127646363901771370727424974490861582085426436434115705053123895664806169214333189977824088899986902257393573858242497070421479259206987668229131066668191849707081056118941065336387386644076852988553826815976720382169976979007279331950218337103355260003858034898165298174886653827864750348250267649887753649662742524110397450066666600053044354273138301139136092125458976114238448992974913940621343827924091967245068040886545373552418582031762824121402759430213709857783559615409254867445129882167673263226179467154206460429090549433902370832788067603610694967094436249568941805468527732086614998715178135115421233374472006520110334301147453296262243046971386067643408459009541858637305757587070614681536526883546813419518678745153263675568540661676983146814275837804629100510745284423901144256539586999229510536932581600706527086177626266814204965965452013067345603873670001378882871083957121666370444491037485927016241093925803940991304208267886663259675666025091583666000854424613466448490672034331558243126765290530160823227727527967486374826366048786770696139464150956699473364131950795692226090592227730311271491835229296248775627797954885106318227477541639075725521254535842640300096559629840527194365640709100695246721892643395848863852817888279481789874223497606519193784839176302401182325567536825752648338281221284711340102127744659181339704180038909644801142863560951825925508077022238392773251223940881687112829773952648607717772581388346584399876068041441009985337396739233565589983382018717104402033367322419468559091630035147121069940928768043523454923444738592423142899857446741125050421949818077488494196610922359366240308465623179706799120406196391352320567927726747845941621510914547510655620619804645969540986832175306908885144985147560751930459279258280759128698359836211030797547930486235138458161192367869339393785657661975379469688414034951374153230562063665648710689998157150035618478632594652238840976656538756461440638168501171267748590614218726112439233485090923431464491335141414696312760190217497391702758506790004124166808986471390470706863954101755449784530346625445785915522642754256553759597510131948490938986817331546204603052656974323663228776159299001134887319901336857724249597615124565621006089070222579487423631240935677401401829644924457299919022658232436861738826743053167689902080179487060283175320527512717248808882086797909284322424418026645305077166162695759787101453819926059739106566434544606239526473742212569713702805907301536862925365382983189234972760145612168512026746642598178223501534296308923719463946546988238217848442240457353072707757137617444524830798341292455226484915798324104926703766584936612845671101774805651152255679608030698307308932146004161344805781431430806648619190270140294933018011247911559689576207554984123448568813350988793638949620937341258921863954568774673662053586900202153915073216368271907996598119632445717529103333343920133705381043515563941049661791532495265168100088640377375746355061089214826485157020351894901102155760537223200277947796883025907219390594044190448640324275831108786345358075752102708275648027531630049182512491255707255290156330169204349230043047202253186274670649191790311692187209442576084336496437778456154887358586123847201597675954058451458592268636754407373940953659692127941754608026759584065742819261483800935481188009787835409197545944332268552754674742121917388995325057336023443764497501128682749833544626498496748364717395542027571710522497176629521140607492129141525034867776870065927576650610138398568484689280992208454878227648009349320984505230264212671313381973695324055495062044964780449093258208687471155471160049356566792992185914321750335288325084981230059137123910214445628653310802450408161403793817653441195735997068327282202496712603352165315085475549970000957366749900279792586601494673305992490643564100374414842327388020964241484883420831322765123699804320472748974664071983010278523407617831340359396587554107921500355021456855755047838999468541467935767904357101287506798261201544329466821292854312591042210551199044170919165330617504760613486147492182859130401875853247144077940799330850435645439146454202879590022765936581493535755429949142267312742652573543114246780150390699154422571473378821674971833550711079519900050561941178059102664201959436464680298130017995423974108956112374774425655333847399572954182301133349882782239151962915818621148090642830114434751493910149439512631210233303465312531569688633459953414407067596696116280445979310655889119326324679171257013945879493534755303594063623606353157467658387112316591784440828773084019026982046089349636436540154297571733937066658946260561142725830371800243471691239466185959500432765624682516257567787897132391132192091301315073439079672040113572772856094251722696131326104026617096384607603442748265376891186725791098725842313378777004603238390485716154858922126067885675847696569377793527761711506482035455192736148357528642829087550547735386184586686936148445712033844772943564548462358692519518147912766260021491728052451216404855630451146503589349049361710220309938633948009540119839931682446394193736596415059911762147576159789767341318387067046471563187180633176799352093987457819887659976053399775236699711239786744537809378183210086951649893008523582672072416283339497475963247849755966805359416138474221857044525345288429913388438052536026921740762990264922034120459035281816895774366398018323798817314274471003145945044487609550993406578267915922812110934484564788415460726754952798052268143359224737177832716936774503809482795292774463670505510499599458872318344741047903849245197706653418845631190343597852779212732144316832079543408926182342084446431380785906792605480135823702427486577753225953036791142673707882431130772931187100681918514869411146650414453980004233007434030480720660181449819998853189006187684574645200936962542712590726677909604817513220010500683582016273761594856991514290706519163247112524204988241858058805772938837025661583610830335888235378065385164661764871104188404200694005767374512631115195691390910803651371835031500727495855414312685218324490053140654011913651009079440788130215795998099259521367300372592553449838113894615759915227823820479258864024699496421851947307926133032080947629667322146359770515915055253326546606902179204738767723990817830001577125815993758872461958141453831443463800751327309042104281973266950379307362267301560425133311713346740322282705919992826053588695567997429002891871909263321586080151873112999998459919503190150172041388957391663261573876388661133158278176303405579932424712520103171765388323581982125265303789218847941028445401928138545145518326859165014751259071722037833541365956830322242951492553173918801884892199539391547254186529335168532240510615222075322131639349973516893451718107445981644919644594863011850574968635036504266888529917489094630357989851547392945786103425648579109199049618627866433862350832578747510020789529628318577312721366424002408795050817453435580719277976032685623047745405638323073246527302508853237762127278273034222230675994115097246964663181564974468571986605183400908757588502805913986249070903249822172330884861313082710508508181071647626825434085812574232316879001016573506329377792787537782695571142848306913532980309977092764423681062815739509331398376805466582335755506852842212825862277718370104689128093656223907081984157189247383145940442225708781830320883470860340612898319268271082397877683074642447129025381643720833982810302283137509623616546421207553457774067949470341953630516467588655362932534579527422902967584135842903130805436872243562020159080953952099752901371928988081429820922674240891156378396225408883446068566217930610752881482534230479629807245787099676890337961035932730325208269447393952795808130086166652267010863803456397205663713608646957383475667006125367516825195648562527031659002930919430363888312235926600136853292326630762163460748785707030456185701731155900205720578152087895847958532923364863199156773961171771352220514590090365063770831735370783978367839833684595393934880960550598555062740650349342665247576772924234349317083209285547412843482650781707749965596216004339256468136072747492206567011900210049564976455562159046302207593964532470510777333231345137868497661242214457704540253027725114317242176048977550820109560410363399485328274707510762857973230323792501645553583399280174362479826097560966613089521933733382139206463760396066707261971626809473473821017782615688411419224403914550946379187989085701142923781332976375371683177285950151369943127023153257637476215103573004975043869958931107575445438040243627665135806778451922725849439469612088714834990767108019139140770736484251444006796226632084805021680471108613029265568281220644139286283243361708353133923488993055519288395914364676464649011390880701415096152523776722016022424502810440443729537765704828453718057583798232631513395146964417192095504788220406846690207429922822375445423947041704587690167805978721534629585711358416103973129198188374262430696834424388324468224887163550114455150143356037380639060784850263470970696071963361412359355581517139809356912574744074075208884305644660067422285540266008490978552745379580860271174492688702511166012818920711923209028369370800600301168371478761432815581432530795423606468274762728282477812720372143829677343710442850519318167934494181065524531541601118274859570517458831306493104567124079231520557529042821687383437283645935042788609380942567276129166009447313941972759165707178912122031367985675170818370892585359707971153947464388676244784740764388439185083715210582396903720308412722734604878501217458163886654029942172959960757142327425996772543284718226075164711052666208239842666856902367435419658872992250319658319741827634512616250158493113022072912301080852710902240389934683308060176337395528563677559623879491353165790446705467620144672472275639240080017881147674898723069253528061685925508194649505890687762565981284282329749658522564339395512282868184791876536225922410733153564965983570094749582194700156501662634141805887100154855526040995552656669843295836654787352288653421602424739354006042825005224946247517749084875755452897431085461141844341613896118454918494289061168046164718424252529069986085070026122052274279415840444034419851588879145857504913519978421793371430097523273727255246707398752430648874212239276020257443245742931972991615715856080027467476264989285799169708367023585475313258535829774964456865488765911042281056996423829321163728331079023228684953877222722995495880750443704034017495977470133892434539092887112898548702445819611258835748046385839940408854719573761954919136067015360612015019000122042052980986084648316669013045762825974548057571142978737022994788003379923808761253020847835756254274621468065116617214334269132620564892123074983640998484117828081871167477280281824326800557129502587853804531677738928915594070957509464026333936983366089076865705321311161926616682144105249431731373339155730737551798629258314719681975361444332012137320048078570223664806094262475316579790485314738916943330747563824321044263476558210643712164383517846597912216296234655672120582797386802757902328164252342165601807284708217347021696707521282753472060836386905505411206881661482414703634369946535551572996811909715651018854639201656123652228186476512921763240409274979843128598648322285770940960079337942904552418950231739288164486065290339522079779044668015255853328501297915631760733001037032807607645880224996539877667662400453941251992355214893558298434672689677175613778659936138819758047690621908311647629561699715893877528075989338837319616302376184229212342532388638588168946962633349426800287198466739876700199055306228131050795064331597854047612823724627587463915130804891071235391400759684340932523657225567515307439473552985681411916565841554012709850643193406475163045409471244688336878056118562656804897612989392408629879181362576350588948665165964964825558516430126829141929182280344137432050096643664405224664084552691013337984349268644739304191339301696182337389389550108580716191063036155249021095475628692624281665671820523576065636614672890175756533680389364634642763403505177913229818321221673774007139452966874240782105403191752842109566122089070198360852668078029301318686386260691512054023592850879024801872029919513467352151336408408471100539439443165172226745380288805990980118397869237178971913366879381816784318682061893409705425002593543362446492444973341623181255855441513994057201811349848316590540499613657986444608696241884358733230770457144668750368499063540318962586388813601998654670700327728949555282596582180000773552775390509362995597952596330202804139512357819759477604495749447226310216738903234563427554803532626273983970533517968709626299507159326632756656047141535947304568276680717504708591844404503550230880954218253936146508250706681067287169846018992866259556898475569451657302013284456898870252916059452288015664205403800421398425794670088811502251922766903371014950926245748091504478039799008664287169993412504862041023329030874997697497496903142633047465379904524749705716822058121907006972722764841463674662652305311697482685473282505486817311589807600006946110386731192918917771821698821283795713667934814093407943604355935755365443659037270904047923323823612325880454547835731390726522896096324867764303619830650787299922565849352134267996016734884834479667901356289985526121888806303465029495329627831152123407427418128130594018276461953198072701219621389745841606892618080601344117027649114585053174585318364932381115248369487306145509181799085281444179070709010921916378791292758527207979996167064529816197419846661167319569116244320809496126512462735977205099249668609239195018734640397592376485775605057805420728774430465530360473178432138873391620888190124737828468100906525041438881135013066438900255713929146583888770756422235966073347752411780872472134212703215596300185374455905893967568223783547465001745253897445364724854435547469822038711298642240739283044456974576033332275625319247338536370265586999617015864985845593289875327015382422803117768342115687824780909993070329469415606381229359422276705861285255095233461690357674261849371342426707159723495113256444423921708745325974629801472498068114368714332554427941510975238608213509136796732664352876668392707041190513961803344817279272989080864902098001830919780352703901796813670812316670964584163228858500824821480575706607442941308592635315121164464489280593858439425601030630584666232775997230221194405884136985970131048991197986521556055168639564260434770240977276547945737339835545550921261673804571161802733326345485828298039350583506207138573083551033166895166548423433802994295815365663867226138713759310535238477711625801616321886246799297814331812606705810960674946780603950372368074834266899399566046815650046568473611735478885339013795175125947295525337101982821442165285553249477745016569361980137394195844483164087191520238343226986226089317378821926051559828554771248474304521176760380937677164612166059012018175586620459028131175773805199088724478326610433457702389626008769539803477282266729793099572678560653268393554485678714364045947691537553360693704898099511002164316651467382659576937606805453713869954149662632261835322371387723125695197296993144477944990127169014648533487366902376156099906832681530786263359078316676300596655381086142953169583418824096885250552163129585227665527689038816558601079154001372741736627024710943824653233286424192147558302386187508786843822175537788535768711148479508813162338284171243391437034169982825638089971282438196637753394268231270313323794618888637922835357551751044129446836349992644122924775889386805943161277772585894573103440958073910815247613034644991629667933298528428480770661724187883714587662740173656720164066994194530390790179341319457550726272766132604734744489629894194149840764142704812939413312143032079632118510712568646439621021863003690288295660430018360104073968790904595300231282775501600075508218622952883513117319399396334104384565031505415849263904016556811338652788452212080884267725634776907222429840755181606551074505418044466659880315970108963480642327168856131293514060629328939189258506830044240333328582224013130739613618071275148064628989986925157605456622104117346204032620190770269717543900636654606925766929423053560136374135245898536135959383311776187118354150410656921238438775746089104573843345764809064641851646459074236531071917104996457535901137571756499206612833267278864358242282399818304416442415092577471494098328412357464453714476333998830640191348139801084108687537609079634344931201060888058001694234173112212062466742413506926977245252895506015032831003307726637364211373129136406612593620943255401290571764045603956072246474476363334308725300184835773985743482272651423451315785698858389139186355637997638863390037871807253035410515043725434931108123418496045383429044502694542937593359265384355974864279829550020560818363473364289742188496423529800472495442590872599565174209433876183958507327261268207630121323529589966474663717779134607357819514247808176617838056430548353023767527616695781796476604666619383768018043273726494759670526910729074901146026350598120250182599064188677600628936633996588887210941096761303266492581314127307189883572296828641847920822962580902656614754546879658404534105258876030635098027768591104980242688717335454656456888872135372204271265941410291539906195155994793614779580168892562310614006284143744828212726081374010726383826722186772107564378516565953081406305938311871711021015124378881990379925024101407285684151096044223267800891070926213270542371366382686774257710128940958145765676003982439650016321724648021326151132551244074783835287479867457458908284762408347342041671842109875460404506876033341199393324268398848976726883737540879255712175561495217458909254432841816281693172101127800333584217226335957671689924019784071794594183842785782200748055185031605780844512157150045022257251911407330018169825835552226509505832075880714190054387190984417013256812233642651654382250305634280865280270728937501605271022293977073059927089274564808755871004481092963047408003838363940741615357231492935415233858603254146494342565038454709862425464729430632014834892322634953284767696491106453160966954324075085251561350795535342468910356085319492308191810770117805357500212110078260246096853013501901221851918007439734878897407128288436082326001957196212671474621902253464338728922941353263644780295994821945631660818545008602932794969154404466027525303953279249852019279746922083010387123577222323816903863701128009469868326628591355093536184224137490664175103793399536160406690950030273478418188296234934441165655245506783719935831008203628780581008628948663872688973866190163785814299768337618732644299398559058634482444247532263186181152180265332443522793716063791054379170450604196669614116560721970608323518312246289537627928134946635220397432605277977929599219420247809773115101044195478889678792711359980049047946893661349241576230703697552029916905830002492961429297174854172423254985612322127999903731164146748339461488495171009942239124076241093200319468658266844704399621293046280533535938876885037081499088941463823349408269589183170193431344067812454946037749647352341699591691890224277648817361146937375320456189093074962826965154081111729840556001122962275279620847308279082489098311972486862748702233436389893108407175368465851824716083955666949285795875382486967079364308002904402286148756809263746307868691884240231004337830549170262174659526687824620939508787972012682375611200163376728150596728176524933078503773301451863547156394442063764312336283982314849401163921519775433267305443966517672777107232192069623751912055711343210923232105804745489551083489585395427578388365564300747803071780668464337941721513600480901370000230848632962785866754219176031670951641514745173098538702669911480988083986219594019369848098049573214235163127479978340954628662195410138984856052158893758074755249777314022439507879406480966823318758226336802217136020226767993734913192362635635744528978380313042895759340706493880245061079104093669701145232822795143063710375773522142914115313638705575767861793832561349716164036303151334378065632961969646748716175427900523572573777710183265586949386525853525916154594841385784206857484527978839819629857058857394925317665826929388839278998470313739915537151768770857580109582366416118895251775235082726969325549924749482132069613714399155144706142389376514940614721846283023439815896868778540736478049982179006117836023920469721693920025707192565216003151576707597426826110580440139378864969941352123998976607449314486451768586118218805138186708520121093976116630755974698106732455909025432838806347272640128429879417321233104633312633387051589011640435349525237610765799104529467458129612324801777006874547129207059981922611834102179554902188959578757265540834538738551481387376505016624323603359329337887157315505563443826380476716329202080014327475640199038807138927660426269588859923808863470980335039141437311133583603125558365516785091255056505392065631895353634713397067973810891805154781364924133547948874938378544030142046793228620234956153423047960048239283513261949714904771323000415516384590286060786573783863529787775982788983279162080131485682917105332848946537787400913906055051276641636242198717070412033569453684520454904756446143978599972807022139460576116661643810800244779511912444208775367402311799299540801470525269230361994873482835061768719560888492681819761350619508634524253160862308588172318581734938461558299274940782799569819361487321745784537388677148220654743211707829783020090511119680547494655852243701660077778680208697931659976100376609905221309908216718049799922611791656464114249586368919218374617686422934197555273705802456764760560072623278706383776973885922874271445133968024283675293475112946124860074867721325975451111765078398008694995051123074857774332752907568675762428422789870483936135408098672174219793580444618439176588943881957335038717315022779348586987395918128238879493724660424281866906370270332262499167997819859430948272323627119046418955903345032297202340092210949850767308883224877838617327221873746697868136056557540784404504898692476763131322435350448410022802749102326478356441221696871926689957289279742301877641751196290457658973304534506986875468658836371374657402440630136479200613450414865057299696649291111305477519312172747636192090305573344089004927716432382587978179347764630994099613833641595551436642507823315246971729042326134109673476195329405849738154009552383927693590617719887743478071395291534103544969857337540767960200034340988656103653567016590894033097214842236333319732723558501812096298489736892877487904363577682772414738630458441015749392214760429199292602406341903166044624351679250571614700751482457303048247923188270034547666731564383838599036232298393964863198362155371785999858829061305043298123263056895510633465688541813121431096441970417166771367600186199314479932957838419441024859696596957696491634166415486269777477139345962244418152903214870075552659589923089597317498032588336114215128132510302147856191169267654993133093160709920361308921431810876768651548444226646689658914297177702493776089452701379425888710108771601818373088543775260310417005944433222905432406303605979282703981204762807368055374903978009840798283538556271867249293565737706337326535927809029205347275388447998843047783332015283518990045577097896112595356800106613057854583327823965188237869690843741473937173873385901301468086255147464458278008780583338759935172759569891154418060110413893381222589627481182975452948889572766543970904398957940633021633614577834373283762289140032031156220966409262211602514583312510775877343605992096472086875175600156222572559725811147600668414196350327819138618377203706480325128794021235720136540640585726127279704194915333966164896167586209939863378589724801435441070935894975283486462160798080317694015909449198182917840477120567689523933427949311938486407567339685220038497816683888726957377413381269527490878542171132422167355858059097834373970932887147744372550466176245333346013547360071735273487149505565122254309765459692458207488902712141897358669886288192051043175094875635998578940050855245687311305293699952429654520802273657109414099350424654958472559471065488622774147918470264425864181085560396354578730636450996906009382733290866547695747951227899773055892353248968211703400336160252773436539667829437029320223761166350965051046573656583446189643465340263733762773055557449429629215482659318483689683999553649982617318515263725466252428831840804980254745249068183515867687755028278072149403585702134711348122525696142907174793288409596413081477499892837461523748949193671464850608497615318124771718055061646758025064621661280940241800391415166625718339421331783435794629853457251515562069158614373423446439613742227605451478894646686245053349074668494365806332705535041960016986763147950283532563787138295256715795361602944923806377050630950358409084277077034118888114980330892218358658512734494216344883080766090436714417847497223578079757272483251511921088816731116534277799334007653846600805840570156021612139864038225809616774772825710648792787418580628294671906643965505764994451224501959917076654455173102848997697722464802486764975007199780754770223573972227174273691267442486912684689169651829174393715541700656556582923924347056817236077750649726931670391156181014278858684215258594800229661900981169332738152977079076851128659791555965546838330797574754238326686561595507544882224640726027284710697022612445384251450591257341750052785136899222194175228265082728331040690729929374129085012870195941501606454326699501425761050314409196374238343202630787015226198258789781030086266760973332665546610443652176575885340951451145725186112620416058815227680124951829761833082463966877284917006812008277929348877911202291355208770436693358732624001573559569429952810189581422827577639216180782088064256737963192560273183950961301995068354190254010697734181895128150513870632994121600431924519307175445675098524161492420677649542754042973065924799341623560161068763557242691629846011189870090274361072107219129302616629949189867180014529179530560457622841705585318971942198859822314948598887130085823395657598133759953516238928897609866381904738864665665334525410187979779383504406797612379714347173388085406356088050708950796566054169427000382114285460262361813328932448231207262448683856393373604312846003509107442995336954673556336829422605993989340911450750379572657760897949225201586679794074233756220891939773502163657482395417358990161263076741400851794380689391266591798826674308531734094801242233569050541596932826126185753364686784270508954183312784551046722785672467502850118057223289434482122812380992621136386932693456757259625725305740989326711958822757110823207040907559834996160923495246629236251913832290064208853193671030148049484203579140446819723367396111076050864411495777809526579187327104433822181858172557153096105660313588812136398785234910106294021491281999930969070402279781827954156625848453552573952977234117129026283366508545148743249844105378688480110261046073341578158712171120594972530991831245810409270129121355638057996739268226615546353245952971571802948484298367590784503126442277117334434582832244180558729551810025770688310660391371166121214579318880743201989835961395345200158754501425924103161410075992942942619661917469310162514730041377316230973445267596067477588177339174889913722474078972203217729729922635381823611445807863924933145905036448235341839234095157646948065685975899445649161899161058472712731684434602374214406232780231897529833481217950468936747711007216779596184799028440492511801895513597223956758014837590369465192384790383573916371696488486010843201600381219593878156285107194915856476279987077687708940898242905274867267919735674012072593368501393115381413681903849034449008132148552630456240056458958478396843405875428588382079149965031587895136662761050833829002542479740326508295433854119823847147331155310436980795773988024032660895619342571187853986848973584246834488103668476453638522104977508519235332912254621733197832819332943769390551129715516920698204916107218893656058080486188220416153717426179071691132639371573003037201086618263992114052763836927445831212835336145250216527443957545373709725202445016836263596894980849505474381722990916841840058193236376407816218254220918644883405326580871853120083702793095754343359412854254669420817319166576703032892819390508872289904820889738810413901935860932935324330900808845459751407482091791450962290997169772874285767529959879698522033658249595323181624649368197528177413962012479228898721100845332593423836003847056968674532331601273999683931483465676478369820391758856080273583415130380692215556859111110300971016359996959213257905113667757466565901052242940151529656476590829646587407956970382353462697336964044085395181798181030743367253667983001636190889234850829487379204578159818004207506697882209438153979988107787174600954535286529939519439302668521396548013500635825914497572303370067658550034854921284127120375065466040089310643022110682789610300717730883835869230049953457279049343195247421404804999766426715961756313799773850115353553142427482675462335522503246883708866278604338839803945788053608945830340998981089439731413688065212612879491193588932999524145653127392965413785896319266821993391475577457297525318998816301397756474666786267208416800407234059200620315043773109886861422387403423396350517146735320908945095471784685182407132090473408101724528779644744382290742465847763731785387033913287799466840012849016610304784331877009825992316531283983973951178966506759578533341482536459475386452128433838021728986599535053612278015137873924841214566727554104974774348749367677312216834947277903729972340535491530566031853029976321303823349538438602917510017867422389556922340990063417727498829208709472972895924708954062028672396518672037624395171816554398126717728163390355000227171504052797747581865166588209536972464017958260537409793099458929899664112792652946737308082452097555111638704588695605330889591215501454871285444485536558820538518089990990575934619238461016533490966409036808104059645128502666281883928808934654105595634451658161342634830996539469920482166055373287487582538721258394658448907319009632196507460611065608345406939148008563318124191376008456745353436058019859567925316370030458788584271760017359635363200931876021244286120822300627460077971259968933981331488839246250752276886997357832808764501836595150421590041852941232847720092619282917284148757527137690721261487387763967324221153292754408080484194910967475682903961498406921179744122107634756011688574521520252071667361505571228655800472186032092483571887446308292280594494362327735356667384259780667615269410160666896748557756630792871046327033137876013719703448031724677972495663227954593440346116891636032017341916281972827868952485166489172388653188386888030891428800317502153345919972584248148607339837033788153412734348589375973503499468362143150265329944989541430269657477061349298958381888288500940181879789404512226744379896139941506277097244032956139101294676965245524683651170381911730252088616635987074823891354871867162613607773799222930755383433493792993845467191577092678170061791127729270511535409812732519378071018663629484167262921280397911300086028014323417467355068759083818825025972649261457078018500197576913020136258731296878619988407500337390426685573766677769398355133597045926945673687925524692255310327493860108863406112867400424382544743805202803367387630715680096462127787309440180439505262457278061079134626266911994394037325838825052442365628761405496385099268954252485671535528901448234914215615610250649649006150487245976753399650141960286717513412352584585817851226844751516813561166670417901484291311478018614935142957670666483290786091515919535409790848012132601913582847569453088140731160074545292835857775693719771152458034809683669298622322970779384255541264521800750214079991647493036658993957222668419008573580346764602060733607192128400018758942536422231708703652440401147474745693433485468349116925739980237742900808167366134814103488638638230004030463864750276763934974896430629696436286916702856741697705337130337795174880268107809810204070324147690373907677599942689908177746307374872889741750679949569557868145081231544076369113985757976648016506426259431833150176368857935746763779139491530859345344471336091925692680956021221821867154936723185618514054480280053775947351339631730440668570739727902239132260963000816153979597398718676029156342696900394614645926720321358082725466438697193440902906641514781506722958716922911271479822136900469882504031998109915836218888912287356047440495027161373355246101340742363153776410629101371239085881635205954951231977407405912155514742571819208702707572150949805448046071634113152045902643898005467425001791932891579023409235158378486238792388149188672406449068951026849161280997856966240943048709116319113893522234524858223335004054469628399650533480360208613029770892081063157545172838498861774704557983049009521611948806201653722365975741202590963652216904653200041739124825892426358966597631822583266671434702559841848105173979646667697847589166369846982936164150600751873551408330593068470381932428553855746030523062578672767157341358928088239466569619522365681551386341833947453207689535111514814865274636172890312749542979589053494567443211001226098459710366839861261607587491678693935621323104393679827403254182782750697009695312181612914128120622319823456608150037295996964941877128313812681092844199960829875580499922316321111327705252812004669761484582602610814729442492549064666355685014735478542787748188040358908181079280000043346500397064835219746498908136114689976584399186270917411900235970511130214268025049277974157118681009173260272110589737354308786434082788832247014222129101815798563603626472416023644307776999693127076013629374563352996933018644165759867652029972885712570282013472837766885771779843362229852110367165107847639451690382648290459169448552957428634027643216697067707293332485519247577987565914484898391452796973251786785327554956932166192719565863554396232265677362753290699793650426878758526734852879140045132660433690495078689549644873920010938018493258696795667993057712681196957177161288133925623169445772861510389613344780012066459312540589120893434899054640725133769634554269105207779520815626319744099642251189152109204980916414729171464865174705769112174687582128235286882774574525060604609553807429673525109986945514720786811234055261511270501121710058924512044433398599885270537120752108753335988240243259944309533954571921125329308339478289762459250208265638914469806234821570968712985926136076976164023841392287489016476109966322909229094821533000932041236418968850710483724479586993605072618326061198500525317489449788497026719425364836156546066233984783020285801246259776703300638454933285903645805285717204675226472430936753992482899400032352272881067993336542796861663721905593796373245427917263157096430544508287535469141476488192663830683758574353641563581390467125175928506365709509276508168515651517891328438363752447399969602131529615866995192447874857921511435852697217683769595720047199701112359251406247785036503575397750293552967152656653678903074965059467277395108398338173854898380706025525563320443609009228674730109125270072952216721678607958377542163228460994699288373494628758636305150067910702017689145539360730517816432199124742360545434736903131266645346614710029955009527984792421300817062121555542052504441729970795794030457895630937037174635416087605692061560736816035386332953100452732632931989970166017005528025472558120467424858091905029859488893106358193928997442265072742157506858870872167849386145085506301066751107885545234726101727321079396926365044453498369301073427875399767594718416964314391749148585640338243451726656134599721702807779296685009114769882023621242481588045934126105664997315862254589619941215097684698015310896439201916770708298486127011346435015459150119550992070530570040458637928841240219311418953078422733508203633922858844341177048486474098767232051332130867244433701135392223404393140979033464038178285205892706015761891211421051839716924948526832119301662660667831209752160165297067589276147871161095759622241146542137449007785753152405179222117102622464018889048410320004595325454341547174818193626796246150088331491590109558791626327684098200478369345655187368045465998310806812958891951191416043274798220198001772066840523315740940646439747694653701032049401072064898160683062114027386571408286432718443080274246335204529791020852010506010425031407531932874067738321253563961271779131116183393208949469678562693123029631721233756254782629776065378057664972311311394611831570515414065908117974745410819081779006891163394035990295944663223501946624172414816542058147282672861022715660817379055304358869695401439450644888527915255346353940143654670496392900936317504753386770540676353347642006268441642827394578376426772163090611631512824402216799072076226920623839071220715905587693018610185627156496274685435181712332698553386567599178124146738732875035771736408104633594646841775009011797553105304928596412685430771128335234053538686795975004820523842529407597445624492315779771057499266195506421771316793133847469939209277318333444047622087871872482605783010146283702151926607298244626011674675527572501810400698591573919829777597638473722956575772205045745714838205775593484911296491467203064785955307681548749547215896421321024547437074996944775855059414037973294501167836630838554976860927522353424626065314976755692696175663186315993197212749549081615583944802730334009692634092634092674124045796720995487588978675965213509715487001382564456594077664124438491929476410466238680960670325437970573553212799992026880960919105039562435120222819865085946018362507700003092026896489802866440164832851230753560732915710467737029407207225033528658088061273909970780797005846913089181811987910744181137398809078699702532578439737921374920927903321578346380236953075778859997523448937959594103895852916349257181325752499788083390336752392109033385527126730615979681012887611947360724475132578720610145084247353491410279263800444364126252692778335659878390313123367484615654847112937301744460443718129528907701538268574737603317428012373220379542079733680441112148834644546837825160810809541032290589213375151683231358531142873929234052772368143384193405464003151569714487432037721438825601967880975271925154893005343411018207922977182821041699959041812405270274654497185964412654497475317319900807290272390677390323502135005163600790443232799036190460249206365172137543280569956827112513846014065348732915387867693766819646068471050154839235053578975512261490789493092280292604772548786801581364700251963981502494009382764943818733282290029335010829718331957732867415253806834175189560663540374828569142737872886395372014076450621878515187216297411316250811408247773123599307053140217722933266306547246362462514342264627837091541246924652270783469157041830782246359565696666480975124435573893396606357134724038651606877237417103317848644121331807369627349437850331195208260525898120714296912392162548384758876930217684644317142563463673351728863611432212275189446335697051126375733481756792494656924495531236603993720498372109808845266154106740480213011372610070030708392533062484310587791285106958350634787641024450314242631599682987992219127280149280345922802014653210550329658787959316172743630695251266932121781554255296741187419903989513579155557519725352791849940339507159561918193088396177942901218606274995239799302227805421274960115079467043243614129853077328345976413995898468883383651238282121369860840763429786060325256143530790233038638229180958994319459320414329295850719600319781232258352146670209797503754538992645882959000346858170954890576213355267511127271174812432333550822517966050283724574190605402367045812776927624107198494807219672614307101057830298661350709407973652370195094674747225103124677806373532470032547340882713906072455831339077494234967733099222758844995295066021376390120935887083295958268911171398926715878169949497439944270933197142846107728512271438577706367738097819646165899041508929579223182564782288346852454879314883225616637324456740114683318407838429655278888586116259153629086370954112788569749895027991025892339066847318769162648174474954829706958386137826891593622230108106955112379267902305528096974455963793488817753405873393837545013095139120322094954076939683982576063991691125605136219401238022269768399682251459236084787625536898130940425190525760441295404191961216356033944182378070952382589147596517976878427955935333564227076402555274953504899665338652126153093115838153805510014232793561237916460064659341110448508767893327275350906452927533112228431189902634647663223168708636621716643315643782415524779917821224411486287139865998329003706698064430804429110996864065830737135650571335423814856923724686749804791103632795877715103266988391894948612113751350232869339603469150153230717127080229372066712648379427076903473957866348896656692577696104011960546759802679426316722497067337090006173636144951863894457087343922906869463684869237196725790782807368320345641191301923774958662080603771573360593608376271883058141558341028046066815937985652256152167070445179445480162077235203421577108181036867834370782619940089887347604595887891124832837898783018436464556520983254240178077088637546641319586215495971491220115661260598854466901019925414656174801463317885309583194481201394225564706822584981365081199117236918070869159260192661610451441127201698644401090189607983711026491655905172697072827365916957960324275631414546836547410700925224299925997323589150519379054266038572538463033196910657331914560172603404861257304912468495600802713447812827364911820413380599595174144304248420651281013505305323022984981624000305299096928697261593256028847025331945480863982180929401829438521579995172425013791839130449707992695097760393522642380701413482332609424124897802471356437891584317572540196832590194649185123044258742897324137984224699823664641313797219928670096526985115527672944251563409362096678768078215034036240455908092845296554952302014374541798493365800068623590528097352218891091429664496401488604852500571555482129284609077090876179395756664445542799988396962183926598436627544529464491075546373115687829652507765315398824118894636196673081149033699516120389771235991480664767533663595395296407118560262574171882593387883672179360980949550328363029136250880722798302546048778081721182895556154057474065153329266869503327973171900468524175936893034007559416926010630580574788560817989834911997670881097576085256147096539733226721264716931066226735243801272362030394697726046338732901388191912048394963816195286232056263697671385338817372472639653984245184053816193404314955748058285043673146951368489317938345451338377432092589324773623970481315695603831190197150329739583335085254104706097341776564463569362805693829164563321638497855453639207770321604453625969172434431968621094834704089488608837480822329409867597091418366525469750889971424765909313989309773778058155447624670941379519021158661981949838814196695488078124109854234950235281721167959355057921391279918999516343126428135513120662895382173165972387192819899265097014906883285345808298129780633206045398712419946766652291090667396019535835944882775507819981412791976809849645188943661229198669502289764113263179336587038953285247866577664823876089909711893772916266613965488554465811869257356978668901446094379734521458676078591268086952044584362306392121024281261965162995300072879433909712570744854078528112099698887662814044026874762417276014980118676290003359204044889923788217794178578647117586509249712339960173339577180048782161251697385648776241268137404549706968424564235909857624011289219591295982835228579493698228734947994088184923801440730528595028533413130783055673589546195394216187835551064154409029517016288301188671390870933521134282639217483268379827202208630706261891872361233955272845995318775549698226911820328756259138813143711495296456498454577941841556777948215752764683187406564165064077881962269670316599427876004255363552113243809728946750962708119560052160497181924371805787732736008770366352655238847648778617350606001879282607800621564061237974579294652361306749916677441737486784152314775551516055558096233468814887903117975952132700999827134753658367950640760145851943811572896474708102031016785268594852304066660966643797751260937119388804831794985106315065229393426552510898955340659726427227630153543724186333176163518480319361738072348411097847146114783846118082110668585724014891581044675058269915963433022976904158351491802187890775322161061800509394357396067222361685986626693085613287501313300632758110275167229853445484401967720721206267113836116080827854520146856083193331426208334542811746430192297880400083602198171994714296806160055888952989992417857159893788751512617896760888640441046708866663892539000730019032276708631068993433872070968750223489887468986769361143165160121729680852620763368086959232692331717637263060658170300424611761692607942199666908551624373897956384891270480193333636740912594055775751457511019749939462107352147819770661055694282486661469693957334390038977796011213026740047357368136574012696247356752140218118653101811496983672442103747385417307129504053029519739551798151286808412286725498023555327386689917116783332149744379583385694186149572750621027291258880523826075841535937028328356369371659530237043352496799860455838066805634559190786855538032559762334272007408688693730255580852668357359133817436317044245089818370461779018843225313969861435328916298235196978708048074854660801498203226363433713555147854891867626236542249382023115883479300554526356669427104438087124090081362456371015863102289861246234585097689716339529747953655588647036081822926581204322571164134871354793830569730462235594295398237334401308234983145234718571151085378686326620317019734809737297362116489608346975867362787832371734935086549775140405663118948701844858164053273858494703627736641915650633227237858161684613901577164315845404163869731831082688151048397555990298017346778948658680335461821318086159983933638590514840601112009091419649294072891528212482126588120623773586046885287526941854414790013863397035669473967156699739164559360657300020564661503439009574336722607181271480920799492502081454921619767704523830160641813133694226195741898280615413986214479201750318859347040802677675855054176701689539355680696884626133186318094481256581196327402472581161196081272819268967299856923155845215351414396603833717047152112919172432093541844067360925922748904715091937156389773658595416590249235753578067580835299939798143213792348611069450542846112787711044749684265000426711480712427943105551939801846181317785419460556040015671524301882405661994040662446196216109569394328972689009185298680138696812169928882855077643431473791272273510906179377045976177438552321502510476434368600429253077248685515687062991434455471223372218564099723342587119321421329707784237052673409774721882582615744828636873868579539291562141481105757225920075530074973422240202821455450381012022756899888915723845256097856821358995177257836277626646989060406450813958594114872616372546577842614459570586605814682970706306453189946612597308565272980062788072501564450960599688863149107948158704095408358767962550118352448133395875791964721735489441922062321339554292769890569365545959063959967894801246192844774883268432824553408078384650882356788348301783007872069303213008504309573271904209584757568383646167303301171313717180040830045948348192081736425106089711317789157722283381391352652530407351091966976020574787100371879778071059488085329690114231123304070377156529346207965613462153074740476005965309249004035592923996511558578719265761171188776342810724654203028328047866343324405217272621889379234849891150439549658816663058856203353166793878969370589239473461848574378304424179339650240443335873856557617684181779295083063936149117416860415946623908102570155501434291490732169910235013044001909517521700785929553775152221505088560040781595825963620291691096725877509381365798711513085313053943194190219404310762520296943489925563877243898026254295943534762893014979978199899248493490761400830317186359939944016161981924324403392193853424491983628963709050361572016497565142115863177316202426452635822392803487836018609148706239538348737389562031760949823090833065235444712055451247432439127293649187363715309264621666826564724570424018883870124875437821827604388141664916510443163820203657224533483024590603548689492557377047431123115090300282480085795747894330091521041760255585656445662135726949818059878650427871067234534806949982292808870141578839376628995119372683546873413557278052170208281342527455130326023183599072532103534325784293192147226746721168631760649090753557046668591497986255253417327757906531670509504393407096489108079230510372461890271224775700837531549716243426260832379174890869783652477008592635333597423446863868567760994341598462185932126171908742881989878019819449848400235122056138849879336938224813737331607462407519126235054677843929566149056480314610923162967438549569485990440508485440917874111270776254313520574042916538738216303152121932002614999864745451579082732258300837614467705830581936489332648469064403449103747081841166772848810654849994619921049364544373039441146376738663445386454171635232595969796893823963596862739733337640337944507296305112350161602231996393468233787819003225167905149412523332040453193692074551677040970671557802900011066194419454226658545126207472081680482034953509693664992067663343157986377236627212269032720093560513774205951625366065105992074752791522642607856960822650522185963713769183411335966207827363286241590663783178129366879070470893689335947735218037547814951749399348267740572496677901428670848089229723531004108156199446098054143663989740901822417611929109699549015774645983488050754769813438583996139252600990054625145841573397189880820755195574985954715049813872188498113631489238141015051850800481365584947529002730750395143326597117378434150022005478237064225299281922739661075374037089897632619639563119597637639662547845960488553776468163759069926778117404055120443158562478847943670157878871627763315868131134152833520397065852770035824251481684810208662868949020006750814970970150968543162963014880841011470471241716913406512972971530885507844039701706805380584609012998396158285711037830548165180331714353088486133666209526651855313054557581494570333951844937696722957404813589327496208998250676923889960661495306312833804662644268321223342655929268656017848817592163217718499424396891585644032932445076027412437217126596846577331986593920829079381808467253649841795595767982678801978481827164628428871159574333799207247622675826700521933847561727667547107205003909518852129838588692036120808650488696345255953919417227521653001069485135457486314599933748042781343111624079746368548075333361164477304546136958003796854641245138227496795275974587447502034976200105931518808061383965973568433015061628360765109916932335867301862117914956267968703326218057994325634532814511266698766275399310109268046054187633483452474845343233499269744939768814057686210311873198960346001851804077472997108453345728140367651207515733629906546336899948089444984812658081982717832767158809654550301682951293737359856831941269252988121793238936792665151815645526097245214555096479659819884890530191713969177924942956878990412772305407242115631335923579341499775055556214587965179821684122997216425457801505450726211638034761847832737602117493013360826462686420257927109230758240927761130809272303089358852654095078050271191537366435036342571224845262539226966865839514962795857455590739839517875771544599205028943044631574368047572872519289651822542323605187849825012055374115527419687630488902601177964939094159095193117564592905649861866180534045634363832945877801789325303560328209081815510286013145348787218684101730557753425144246704762405335891344953929306678367294498595174853041505800092535331417943523075651384731543479019421269382701925300595582694532239893904468420559389423591489165572328536151204906068399701178897993249496229947954403967897012617108729156803806135758950967259729092941161887745895728527067977505992446212052261808450510136050290500718187296121801957895394546005036254150406272007846913631406524529655020658067551404276640945911181828143003882657892571213112304965637586253852302545955919894789391228229011381314418153249432529368553444573737360243432964258930884245740558062629555608214776954109439635716816979570175976289640566567959632935652353401286535571404285363722272995892262597098754931893811607212502593536522134951640356977171317470702827293427670991296685410083948096227309194279252859251709080697801365378644531048046744935005113868262410657433540421497925266223466526661601458237903168987232437423177351922459974410991178495903470798975380225907125623144229409707022780262776191918962925854593173735161075416275902954620377501359626709554080228566805662072510171048682539235189402400708194046050168700064411442327078958569392850878571606108984606517325811495998445111705922358865563905058160775908938246547649119067611815953609700787295137526251332075161004483813801456438034733615948605084280104690601242345911406421865860223291773703163343051373255003535484879577316366376250045381152587859930643938213805574643586281107617323310572434142505517290761991083951205864412232285721909961328633381066194009635050859319208018512793637819692165550254267939419680642789914366276043038866939705575549502516374909587915044566358251273245504553401809456208946722633631890176642635130625361457539299412097787708080791872689394019256072205670757238074743275394161001749131430328388863542033923792366727366567909999336515359898121846123376974795697394109351389758721294674477217897703399306268966446098724567027700784284357291072839259495944869671333674599429522637701171766352269614842559427961059472191786996470489768199779695760198985722248051978676218534529593549772804006871109747300947357057517962043051205442165110563925105343600413034956791304660485650617085832566586942629376365554143789066026109803547382452239266597647424137830013246447463151603384506447260278898817401271655037305353725606794753203162926133585105121148023984420157331642012815673361990679230956096243746527393797097848416834095710899106405864684340626030797905088044006106508758161985402363577855075395187684419702026011531819655701244517240549053001279031636865721687811842907096337483533329405268710352855840296390076748142342086672222123694544040098563651034555950326578035235038427707965444114940318408412948245212529105218403671438224290932691247984668713003252545692589177574365144664399219453169130299487380386959890309344275344852080783952862171416431559294141002488194621631689056780670463002245634518501688962223643715892850956131243903829474773818571781476957453297440142158613893073542162609193017346143781555928492704284005288578213038194824494697843622849348180522910531213045771397184528419317046204378114507133230912192252478383937044092684321861934663500321575514942804463522752684378242379503745026537196876227046492886193744862556756465824083670800689435340061002219157786465853809444892803448619309411129933447079965455452949437448997145713778716678616779657872987032508317377924315251362103026577431334119917224933751392350369773846239660821773677775558573152889030819131609105859378106420092445590851779597460471456757331731217826085896062003659478028924169084725549890415905934636881779475353526619236982662228783087582193987981389774933919155372720262912613839601877475566219764890617111168711291085621464830277005452420775703618567815967060787504889178223988808000420336881147081917488230464036775147828267498274703775774663452296430401631587769914340855193374501659946745772172925365129927423592315134984239763257956193589496244581339914794377102987642627283061102011290803370630560523785071169505175551796556174134988076749351689734602765853032261392845050664647832484094613690746671720182648997598761780220185668868328407989411459048327625734748832614859758504244406204767188455432538865283627050776559962799668833303527410112356907934168063694580529614258946927934452469004851911671192474097631953082718583499389792954787164797090218567250027912378829508511537370884284003356717880757498547103560482893526915892481425789949344713749211192875343861762974466903377234112202509633161122133500801159822103017844886973375786602650604600654076581203858363600285747414160686058462305256942721738536798170619050788485382926553727136887139358889434237685164815506214117164200367173295953652872456511771512982815099746753957367791156375209826402123910500119281907652061094986402702075052559756817204022763413648520908537667516097960602732939547556699796319899694786738365321688198115901694185486354572790016648596294545292306968946064860627820388782926472084859629655499646542302506729600149297740988571590696216746512373798748294268927878210926531247212307133266724487159133297790244184634569596609328488646835398526594846063417460425501917211541675817608083878437040430930390698774814839273192449597964333371945477583100358590816043874014802926721371627243486828850290314386187384443879490408395800700159063194342576421692346741935797651197835043444138100592885415774076808197397144663013928252857394487620553158550707546996597916779445019403459228410288969025824327025641048076040683927237121752130480660532218281130405275955834396633172021045136680322056153950074922221731171648012490442678942238840819717910291910414172867096313779236232911999266292205806775945015938037590250338870818309495555528069183854678973980140300311148825493829243203942526657500989979067155144832854986873896410064831442262538638445880410222250935569900800025277786074090158804192083558430178988572881422528486414363928328343938693791960231288678263666792780116605361657376245819281388107947594289513520610874550351630405863532894834629387732760597689227247260362325164848820048060633336220093128912362508945278312340347879414400731062538160141909223667719704862622600644917724571441579678208082724169654453921483899767745265243963610604292313682828847876504184646199016474508995081217002142708766262146243036252515983171588149065493939342197705724585579635037854753895612952379095300015548755058945134432454391291051577189440616956988231839193633264904399390438958481231983807468706225674461868773814552632119350037796798213788160721660813439479671771404146655294221568014059097222305945038493007472094962903093051343311800419394357132799048058237228423597505347483282629307809867116523716260400474235589601244851605593443643986347977286483557497177073720581661320716651569188394117355400396523107186825109672825668257198353021882496908807764813825788472692820737960241080140617637428393891815443523944655651927881206667799010622332285047648387087648302537225405380225330347150683638599078976917563647110273286289174879431983028144849035746277565241731089677395713645261116924353932097282860413522958051953740045767240245912404566094906066819742091379261623349670284493045114848849056324277515226540615632794507622046236046502540697735536677233055771681667625343941924769776796598109379976662436027023937077643463306099187374169224274745364874875797651959781066842300896217465002336877259933238035748289050016606491501103740321185925009455583630169768290756287549769493859080641157648517239965848151306842723479484274754161737762494149644828483568481982665996991694782278624884663966297575176860886148845168519082992403003189531252993773312967713616388968794668892921648614260311796771066819551060144923380801264318042137749857424481640342955349047455109204552556161321045655091282890097652802789041300009251655928518134890370941457538423144500906767509996897445365820620797481644149318238300941021609123246476150214110140791843218305661520191506046740205100133475647640846527969702718520544057884678225084389428085638395394653715780123600295720318970881975580305541935666763135774597085188697777929903859923932042596142050052518188641381103956649876600910390329512507532865332716784177718816371438337527777581455092462263154381016503232896188516886353205108270629943295578540546819198775990728003349492150631229695364102255655297177528574330122130151643480421414543889020637212264933251971217487478639630180387339114598501170797612165687865276473486166162033692123159845739983611483184752043025688909329992582703524721270196901832276216851273261316729225399190414683840259946153469075400126992789901137446400790340627123045166718209700092925661392339332926829338257675295599537915606704518960326127656889088567978945276183453900201070750526048155536666125263278662815482601158004730758932904137859066320497147959547112668611886677408514820106424525475639378612193574606313739153354439458957592918072319394157758886227015558259912590860743510572444311618791161060990374377072117541490106469680825768636088030724336114601135470933187927493064526601601789897016348567021987014743873213439987623395919333603338603860549295417438811671817359937162476074424083450634296774448408931524373097056292325540298548752816255547468590130151056343257969877701665773011471090170656266125728316022262685002597120768698868553693096935834500508003045805331178090871051655880832323625469923721628055026133788498375861350977884960563152003844995309541549105447071907019137971697180778851989505970373406111005797883981369582048690107375617835855700065519406742208926080757428048734835927914962300103387970133456454444456783025560191157247691624641403753162416198103195778988090042999801492281985878436052887667132214652507344539652585540411185119040895653876353557475943961499143826108268524436043618702257518812344616818945035336269738653024147648239265344634069564788874611496767127495249623425489230569247879509097483146599639713968059787203856305813984993083640667816584090358917789328417789325047938167578517685163703729228336136367411811834860860457898704815894339056183318039677200464273946552723759354697836871821512576238479830453026278276320606619306441763513459315031852132241147877094123678377814063849536690425103042768467396090390180231314665760513698818102437594149385390039276781395180890523133802939662641294493906384787362605309588566014026037167904455070221461628057635026098210216897125808034117851462264368791948811304144242917261931553904565702099678154653679507534646614849140027186273994844744328178813143560256886766220967142634811089332997294348816744585209358927997969281653090470016506916603806810338246544194488246973762977846905092315842374379753379724379310339758675076234184162355719278112625764331501918514419650573690469723250952816688314315927496763377938037549704047636535097390316307924255097895425925803198256904150073478091346857369491962344128968499992763350286906921687636124659107633151286326503436746205972629610660754607920105282865649373762108570911979182171454329438133646355122714489992354857397742740016599789425856351145365482136616695788585776288773571723245504547923740303155104814569481460628592850212357773336167057866976975281859356886284384379458985064442635280149913095272954996622598291172293545549961132016880699459644611501394631889050633660206758040440390560502645505923469947525438817993613121810773448977548615896307709684228910311870870894138731154362165494697633164349707034012889542875275361885356110968805435098558995467158075207532924677323662793618241489500661757279895323385670573596667723974339089276666205261703831005825943243649273668662520003101761552897684969899225264571433727286247481319300724235640751609188724564009367382860471477740656760955311718477266860018374056325631005822518605035648459153266370646816353745007102730966963773802346478857738910953524561428898717298618996619345695210569932364826492468321745449159837336598068060205057514081489032331395712261022169749059472888400051120935971146979986231814313750100137050289129903418684174115607058967298877339087683308276012079336898803798026691319991710803041687445551674791490866515199556970411677815282297258032043713036762005352230966150979296927736235829863947362487429821016494841952028197038000559801516262020628188982066198437592435577774136960059809015428717106397484613208742673917242103135053307765217539795604549733746344768537450116741893412394502366999130873497411332596833375901716546275409366364901195572565477007126394482357338171239975452332643918577308360858937289802864014280335641795475637970108810996347199161943139063240118773701035719033133242694999572247125651593716281387858229949203130871852525824181802994375654168950960437788029303184208278792732555679021674645137511760448407912333949632111055053039836516280969588904219989993576921777676172350884119332354163562047903674649984614684975782366606492919072302507384771081865556524947513725120786487918768534397188414828779373593713686940260382695375697486782524750175814527727664255630110631528056685385622644710399432080166773195300531280834530839468641768577487289200662400360912395192125886904116529354349948486181125867776145063257835419951606765789295314199948260510219566563770521704766104369558434752172506256055585376182591899643192134810072630641642168380173539635717027773092317874428846443931534424882397133235120904377125755822270986280622880833169247751949881875680056307586746114672999102164956214484459151995912856967665758746212430817872216157826851041145117891813905983934202523992033057097078865392757310173472583406033370297329888696443585993296833762498809816416423095269155847354117376855778776164779109838062124814756035366131304204751586415070956797264436208526787718690652004829236819202527589191013441366265344782117324245676383423553844139763026101047038036205448086995111618079217199843868478968567489906013726478232727286711489472390838396036959167615824664730001567907555470424834733210245907817807579136545939964392035554680546173644339524668141729150870306887332722889773823332091534105120100613948187121560179355568895495375776590837571266534709337068146041883712564613039415690199952005835100522450855061702651254053775448964853913004242611030576869147092805518483854391227232269205898569322496430330212054709026925253029017498752019248681161112612766755785959015493113306381727845207704683924475470442315218117096272342777380865441476528542638213994024031341920525455276331257709771505738995283397196430098854313362871603940013462078168048373029525844571894195177298130721503691597128677078066922206483214050251668152451849107043349903304107946146512391569801443320092389888425139655612493211789610540090157273667731879573493087985410442963406199931165837009018985932685879748419733513416871308440310824012095851191438571165384772775030873250566738935617230615811973576704088192218510155962018756411031161198703992683514662306123948155160295140927649745048613976966745566713579956738625350940268664492729707514017308589763201749957914607160344580888230383762028864904031213250749929525031078881470683903320154724068111470128388722826152700323398707129252933755830084311602209171793990216204711310424715734577533488097636928035315856506433842248129473133187316084224832725508001568189335350753571137230084855091851234413142236233084794192418889466154409840256039339348799755228075032211043906086888157229391979217490205148081265473007248707950002068310488613255340209527492552507340865105290824410738859122800718240160337660716246816431388481020923946831125527577371480220744708614640248596460082904599028975454287895068468553523640658134903264058648696927073513907702679761302129792160789804540861640372733461334341793211150385922919549083900083642001897574284568569294221694221060110915764791985329627068882478379005432875254818420246777375564697948138625158121729581087617896975645353324409472367611422427791513716887317259701933974569565973571614912747926510595759932274987950868723400116642855531317837975218505533202684739308015691335949426587987889882770129926250730761393954710412937078281219681780293875096474222771725728988674665335441265091300058938518787549810377395200993903593306404801317889585329432752862603683898704451849701082332278266580572778696638271389429899009453566734759790725636084243702667620615843568416002223354018940576725567581564390249464336259138717070107267658604397349011107316791807915103660310421863280786638726722957534608925681518597623442418193132414483582990971170601674931178482218438254909364126859266821190649681306347388869069669776867398171111830036411724405431906530812481125418784741916327226192355816515691674621894111140887602785797453339813297981861705142831343401239219078766015586791719443598951297492860172578712223656191397812625397620837862796759085077369940482876055716508627021902364670749854647513386325544676171639589331578117273498933620739280973507242043438043252081514404001411972036200679183858140729570009624164648051300113180800114643906533078988676958660187604206066391848290689018948501876494620373041973224206706878140431380487528356193419796076498576095027361846322832519341314096031205822892040214070368061344746451430046311363900457890449305577968509096824040168676801683167804596400585247880764288725514780548414910162474915474576403451933781305194488999037966598700539780347248310783272454206644019329238103339249330427945708475302113311424662122546965654335674448609255692536222459005726061867534743302649082191784622899418258235755028838534412359197823035282701668834142337725171215620715059988957895900777352898102741008132908579613715384601377755241343510942203494075189408135096659181728587773679255951535815987248951729891339665120382611670493437814954834105301742020493368879394205769269254704783967504070382696693949031188680170853434720208887259832892509343781539526618893890158632378511394788593797856893214721689837428143227519902168520680408422706896197916497776029440512474350348191655878649694553155124431663966309999012079879916718144974221266603893069252639011728979593361583553347103923623887819942830685920793175578524267019971229953279305670202293895050054096778100810991334111717086127671331121114911271435287772285804276835343916236736113227867284777196933258008214327623596638094569779797210396279977570471749065938073701073724861181542781031723989592164412366957165180280497406829465693148150927184373265549943952789411462622903158732418698143472317414885101241534499055373973880852221999274790533306482205948973542548518394401526300910726023701542341723838888145953990861629665264848065145023009077667765068323832996094938974015079491258463851875189324683909943102021249315030809206823770136125210680296009542355174225850529894634183125286565719612340023214830512476592528852507611934460488091830269571263673833474870331125298153942508859254967017997143925120331720843425859475876995040317536937116171718941634438123669023955166049010128995007384774801089186108854542441823736811491948701966332584143812452522081435385338799716685229260166492369318639145950249499287894427980908427392024939761473423564012043170629773316993136138105431141346965102485002927970251735737036080318512659230585193410954639994157482204387305692477754130410934489198915728142941395865037632273234396996482674507345424589502807792735866252197986073643742528346750753350621587939403064028575749379028348230886945150276490364678377343807571201186136298308964438766002573350539560039339011757303264632387830286267005401136799380481357269197700917659307551596632146727918649109074445322193618678785348646431654477600152334134975939404427785811269936738883562845790910350656500091535470248052817462361309480789917432220915913358719826286119603960707579659376910851576618022371785836695081427477664653146789696934847820919708344996791352589232868120418580284131898545217335266005274571588150602527348555415967456168671347841902033868272486458643711703276661382913609587784355839404457016558094745348187593513604784604356340547672564786732906202566171258322401176449695937732522915046895695504482726890898619182189947308172719159857770932163631885242604229422214414443396480780788151599568833417873847641482122674396241495466510033292460997298984648714226352828855808258439779112357089414693450695708322471131093121235769132634985055715565848741035115500648562840706043710871921101385331143597237347132132141158296098789733255201325738376554295084469446356137085523826937897500471094318403886847786481872975020188216324375691317814427299826580074154527527852887869322004081861074422048134238988619081541697976013683119362480648703415136070344240742747743124990444620287565534378251305645237391563089988419691335820642190617520953473838429436200977465099116415493945513391616814524302574654259905943850269846459368932699813643452132686757930917863368145473143934481406220516335143864901518316603079489510863165689677252018221962227403812968560407310473174691237068894462229516178462984350583262998532534767273600486947464424381973627634960074432868976823915054662034488536830003088485553954555048399628243325461056152557860507797676099148066898606912872145798689328155682356548394349905825933214604181940303439109087187351749713006059210678457898194285772228249818269314046328353728574460089853086418470390514528020256058056992541059448121817263596232184096735068732544879003147891495892762742077268740111799720459647972761764254741756596055238357146695117247608935664378139113848574626038658475219760103031519671079603166305419727835555008591146090198970771072885923361700301622495293609065883749457195707171291526026287418538272454148505703988753533773227403582104483539821773674653993058714567168758498436825234615516828679858288872249422715965556027938195017309338201052292809555692407067597213005608398234068665597176676096186030191382479276133073784976123308892501558738541521439457472082365037296235526729583884874364661875137239117120318024665131983414185759633680493829185073044298744507463818615276034352993168740386312605044620724367017832549785091193753648335818927300453426881326466832145826723494199566960458887788992141131401262763555165859743667146415392052730464720391252917957885523345306682632967954622900454042529905166638986020929545340690090308194342457879823371242068504060935724167292717438782169507886583455291240068050231005790443032289975088981373281875449328775058793933388994912404305709088296658629739662509207125348748966396017965777485326032732326959453310646750156407521498293379502385348870974934356116930778106268523318006666981519829285116415902275961015329067788917789632104815752430698549778813798740730840582820863024093271569134402799828504540610713954538697861587253477197259588579673083884989534941609759800852447059966528250885302044830344421239782158676297294547168425676644209736876563622090209442591319009194375607845984873038737215762661612826167505572961380409129468650161363939258124093687807835061281108171121697622082934204518692717699882993557756466987954120666305354587403378364002693560593304703809538434898622235563188041405938194308558573779338864650375061183573558971597061196153936059141737794040958034532497818049051973500584293572473295565767176099064765664169201036944890052589478411109145556264157870791310099948462544778765109735944185364561397585298500051492435492800233210609124732382847212794782204799994513221979641447459309435780942517946497589230066540725152993612177829567839350480054786006951203932734625020860219872902963655471037203984778223142757355317046017011003259728861941469161874985264557045802464519907688107282912084239121126108908505410046572758541446276345187897299181395263646647402197906650994928641155297204684034176825426428211364376563329453882772317032176750816389499095523479787609200072887751005482556216790747938407519047239456225726206962084144901626503272778663809657645749883648448676724381061635937574281977920167278642941808577703245535580788116995277300186596247430031719753855231224775883109775665963100451634833539554498006089950034004533238763093338712452534196411007291948193312889117162996584579655604699490645771445401874184282799968167267220917960441474342000852284352160212965926984740075221580754857981270200764117736365448088924855113806524422691479469240796194380932348029503583848904756823620277224779140720269516564098055196868254240324057360888052587022425636113789311199482994201884912792796377893408126113173957168906417453990358552565847627408155127768755651326063454558953789523007244919880516218904443525090248763392831914355777955065693348546898307255349612229078189544223556861583644091572518488543224689995188943325502622449137721866926605368117292725685014211484901038324921868041724862747200669744773329361983326522546955856033500127970646032275604094365574470180047608306957405003246310762399542091760503866663205192780731980041417339959851183869912392837688799902136529862006297029126679777252773956899988143965574230887812647163880159114656182529954698678334917768038934444731155385651089408922832038220091725055545051727116739799828363539659055616845674071218017304675291959251976973986032212446443057363888215158532260159380151658947303156866491424060382094037282595311199953496834827392544041480835400674343018828742335055496373197823483193596121473897314917817873257470639326621340165196255389557176535258336918030311109882601409385827926872293793633557777442408489972220029153278920752278149541427626634312939171878484039255251803831026880096297603868428778162429790524190385620196131488598007824748104455589765206177271133320349036203221414610648604994350870446437382311042452989894184579498333278985847186581172164697731372738360930194626049672056914828704136073190828740660769001224457030332417587346090902989553999758761867434973177414758318479991447687016475404948922047026825452340636111565230588802394669914957609802160689402671380026178329815157235868149685218360018627069051228398758012524718195001619163608892868444704760925327241199655976260159855328886803675183957897635724646638681363064930798448660851061374143324689117690109287228439681617487665263173216922063197787247529607414144582256150096838814654578751410651625256553534163294921690968467593746352144533799106761534025829956935816723775122335255251245177195113209549372384164250355116931524396517748873338729411039776198357850820654037808608019447809736547263257514443550815228452562878089019548502777243892095841099097666452666989701071401409462938768355644395779662985762457620326274190270174151961790622673903837534054840728291982667083636334218269598969374519059901296078129062076462340791575117696635384188250752271089933496541445860807234276169509775635079886718415213708062482349628684099527505203349507626672400068638574605417059783899499944169967375840057568524467126254718942708692490436022784163050696849547410986169032102842620131219226045292365699954483289381879794315912282058775007602472742798060697527403457147518338826043808620861193401433876765114563375419173055080260869847502913800071180645584272671786878955897519748455909053341874267203453037554605188463755140643538949620805510481249621719916245591678628011239775204153475451197028644729331117055418370569358492724725714364675419369870952268704344381500613403261529705263677346094597991400408788808545182234833390000264495343389814276465485964212288412592285589383519235629247883352415498842019724373706653060349547368360533996943506170436592807356789779613389021104624372799608135947408928208719778249636559311383281990631885869168806801492059480604979878610044547637673468427686910463136320662369291467724826320997267993391138626546610231956104786691951084931352484755624405179504643214409482890389246347439666094986823369187749203047614993630709039154333633891415056394981483160439179654852530054833493885283483476333580973349952409544498369206357328679184634548360990248180644370733732959974083814709093936493507518600303288001901191258429252493747045318970102642674032619175243510886450088270459262587491364594816920560978830314311256346126955930987910172887011291020958375709485326194394584793589017101796965946729987986792616043311747153723448986982823243226753930189447552558162843153149005318436688205787756829492394369856234982041636940184464935790497445630187567342197036376404326791574110402459078567948623726376377067875715842394440338632698206597224290072998449823999464102049500096979636238426300829795691753596911440897681734304579236035605524185292281981603499600754352737698209252183890858854665480845904890740602034037200218041529699441083082019475926671218036598090280037519590713989569006171687904566893725987543212154499365068950671545789712250581190103031838960664813353985582377020013797849573982120990664859262931751531549047064765020047401952815086313908428871192367602542620135968289033015673726186288185600468083615777396562443895801854825381292837725213826665524220330460977684335578143325039943580345688568847966849926965085226969342623035721405559475704822167316694753880109202347376948686565965241147537316895389530134384820061209757660113937321929793236608133231490551512871623204992629404691283614033754954091946049783714698018531281216566298958147773719116542051009846134706615716810319329919614639009135114772860654261434102843420909936848259807741924162103033356796523493978874966178836155866048189988995548859712420141807375045168158649849303179797473336041861251555045820917720339669781693221774519657032909616262274131885779854749441513048217938178748030753458166207680583860248161793964518156525324475197006216467330264941330116427386456466661767636718906567908573803312734746446710848986360170851971429404871220364595838602433221234123546936146978203004468443359362942542925814187745376369526530372022990785018654988407588101353216913633230084442314054250303730376772670348395448300344184583425947867569655819469720415093868254808275036592599766931857033814642355556226849402358559123933436821500090906292425191181991111552956631128743146846675153836384259153638633478513129632238193300070329546896464238441272017186434938564450708938302676110554413303384871242114324075824532606623890559130905006345689551227257911852361011337391455099366179516790957425932310417033074670180640658186465240612047181143027521553584743337491681967467269341918238047314613814932007466737901946319750563202585879846530121700608201932589342338155510909785498345693164112085846963281408602028693364067704143556323369340999152528431659260543643852054736468130430957869401091356775110486962592228610313282685538300934210420853366237411699573602754337350428483603392037083717773624464107514005410505191434779869910067135300459110005782749512077555952082651417267375719598583444992953711962495286376340290651697870799702175667514264554384889952107313833546620950186903759445586380272959930940312927801577307146772491644962725060414538723159620134748506394042356611304562332262081635625284773380498435049011121116783535539061057663911940553718784481495683739720517669753810245852248295717510439985095210051068847150720849409102539836843303087897901847542800384128770787946633724439402134686978507351959612251424005814385518253764332192511249964143192499549837844848179827621724110235138541608925626708870255689106085170017472102951060952765850562760503758427470557940886731887346643231275914104458035327827571083732613717242185385946457303371109339782297038217130811739845151154724658931608277118359092528568838848232510272806996670477745748569322601162335663979088939807575825238636654278400264843630466077774699596552299009744605856573021803439251339577737736887421336359190476402941719143325503712329842247717612131983131344819275093854829608927832351534163162918938014605380188952109779345996225708681467333290698645397100411683133160091678130582816930616187272524108933076679665774018574215239594969761369388107536525122615487864832896133193266497120912107478231835904818320047710991137198316154668284859840873623915443305920431297324457305978668712846416132928240189408610050780526016141835231036747541230784744393601375929837322561706544064653169776433080531904887124756930321358504424551484444760674543242868542486780098446577622837831826021624035889705179176973004744526866345159859529938838905782544832972154583647569066319607204287661942254196281357356410512750437016699976360874085328471190464900891746996877622083346706326921391172097931337389408484883765498340035173798880431693515240132296245312079299476868561482499257652334218446409321907902695707689726120203958798591689856000634756342554898110582543397235678700621526455641998001974631819293898988758136107687241338816276039048101703043163299947676363520615459179299985335797981952086670175504840551938559399930161195657494669370134869706140209744860833800355076577965854291477774417988638017235307723758277052176620262225088528427428400476316004443112381036849306210636077145154962241568124297694633694139737551516202781605297668751207963555848451470032165292891202736393788386788071753290752817024142162627633194998286454581203957375522659107239789760088359918235759918602025265043183032835074191572956472100700223826078563221874121179591295127869403033225630357782703315971861214779220035128832182264378936749096644869369802468378128470159903975430502610041776762946106300440659238441397535083296409763244856305962856088088803325198679849364133291336548246775839770990773407382196143357344759602219823801997440795955776110218826047650500627172222363046661571291764204557471661477853701603884321497720558492876504258256375483334168543925585765119869041137327246558053918205090120533463208147517400933221762446397695581379644983478965006116502648390387413243385729045813001867578637164132049154882753273035303638932125696073235067584661939808928859826214930905933627857051470763559476824963666344826433000289519062180862041321596736823144092483848464870198994992913997094174710887560249571587530463503674070893300104948061452973650283028131273441242601046895320701014550739362119020404803479113995100535966410958598091470680614479107914051023929455335201282387780625208582353617615314590150867497377675403699846512591586253946485089781519728982570938562478351138944303321916069911865525126823972790578045852828969496188196168311894174614693787455296007443853340807431672393776682466974680727006749876137198492031827798559248362369798830224481653892674552095282743398015668742017927279290960781517344154193850668076536981763797280254453203180659259889268228740143559783479608509729693924560061877536935559056792992592662227397299771481697550659056628228541859118870240402475851783381276575900899828290493120338732705847568103535035014176053949921463753273210766704259479692772594580827722754666188485710011616544829110138118193652038695168659855920863688109983367916647827681297656143294736080569333923620856229670912369468527820220226366235336796572705434388460889884091040742986968434622796375595233012217823282857004921765287517525385979094278830421921003403379289421879955511618116559464537432244631771084271471281923234419374230074072998209033232803666501784306032417349447455319714875743263886533733683624064218544912106774267792591195926304957541571041849657650715617628677539713875498788233802412197091659357336157480081748313141564867224246600844735685592397921986972320609854584422764344932965087718723773007907875740817862171609270424325276577515172935878010224676685361400755010005151062414579332576381337430215645588165246576053249890979825956136131049193105114098584698865039405023374930376928892199738241875276501278247750602015257680379280342728396749874344627934712028145691563681085985651449483483164950319366676888549365432587433111674653356298570980199066571195037463839302398415675877261937779157558597502078744780061730113148332378243289301471618899573399513041774118030345498271792666385627249787462148195974687556472255677919871055731691500090750191867446295930780585547007525276632137656396388637033654964259800084436708886941134567231875167539187376148347403538015028559677038434918025697830070540094364973511148075245118839595582335928185531613843966546489036312774515731693749342094507454537719193557810966583092027449937656451691493289833088917820002789212032230476063167735858342753807674930182993382798699828432314331695390752871921903669272838382745391866333741389513420247958385528194532804285761247891107487117519624762209701578430204021443288746752440460056901000565028127098865194058236248321882348993548709559544359515389820471827013681977294516415274362827451542900914365919161502667096964353593838308852060656513508459756052028270952970125578270215404811093037799762909170884074586318670758936797969121030308576439396713034667102124104950958037511606951876328623859160145948129508906312147666158901127764503138980614721646832716777982253894413784508748240093071996656481781267395777506563340861573224361595317282173501547082136292268569781012651220692847828960597250449584810769874199458333456098813890041471579506530001739073277891465726090934384354256764283112113903704528313137655739901219014491842787157031740846158161252312800951444015739292404655004179122472997160441255726212214260634825349085139821487889367187896349697397858307026610361283838290387789258999162102680371030347423857103773179820653537070946266182416778060956842915486048326672241217243145178127484486622157623224498968316376048557625754638090792084479390539807480329977248093566484355120193198669228660502929173273806569371569244789220316890789327584618209795112313368912282853272689335395842431865927219229409350068272255886280948793001336124279769897741971656748886522113972988602200730939280138466917929041439931633330109219975795289046991921553061533095978427720551119104748372753212590108477203981915472761892804823789807766084126391695015294390645906311315151858758468701403440969015052623571556187195217493861916149419838485421164465116314602048295630897807636074761166226194091272652980841745070683150046801490784049225427754754725287787023854317461923870422506353362317235065747020902677289944181560227122115088554315426189126838696255845563215326290326715779362596778987624218770053124844127353601661818068239292543514970240467001024183738607505356410505911790505675760475409080452023382855305904880049423744476677906695367526198838035703340161885763088419573082765362264245013526800307456913372610721742051233171299313770687971166752361734950714962490637016298252254221234772685734815161632542434936223013820085174976821442448038931967739610619663187464574067148275279935370001423145365769177946369089088189168577553363856824408243760329745344875838813105794969926427737795182791512708821263730093378190820300457788841355358656696383483944668591382857295690281465522859842354206503069378361920465381141413323588609477668789309954695914003976297376950317283709049743299234755992775104978875168104296154118459082362683929935614810180423764455270926519857763423310434069893802165133259994075953834901754073115660015817679897177836746187583444221789979920757030386671030000698383238001591931535217573006183326826583963547780890289056876159584029704652546291644911867001444396011842086440228552183008143699716561844803428312789201489992039986646052837988338067153405211990576823808355301481524347466591769037049611612750717515261535668994479531943035284164217122385583584225583242766434626687620580483375815997272292249128025315632717016077358063619235280704380383830798746355646539715606578081924394111170291285116437364977188960286759591672250327113633588802897281291823282333887732924393242063517905204632549582005857959496892545194696181113275738441102929753661377191230793400257951433825176240260830481887815641566377161822141802507807508087095638326520404029838461907846526987831478188853775197019098712454985775796094776126711121318170636392214709724743227532433167831065996903613647621258663060651688578763653788724506381814516230502539149474609724031181855645606428338832734049827282026402732963872081888095765004465401083852242041910065452734780254707008735187147727331039370931477893402291850200622983095846923060811214447185477222704308432744429966605066609549415743265297390559894508540419903027325599555707756388455193040033089582874879710390980203229670751924928025389759308824060863760815938933200223796176264849629669662342238610730974855073703128429286033878693089682942909573756059296891442877109347111825963746494645384030716031554160076156738195764800519749687609532312899000958444403957425440599336853691001536778526959192748605296481843755944648631955936715131705822123247862281964267119887087543917894078764518366229021175137350590779640904002309541926124956853477171723370820843943511442486390544593940659782970463765104299619866675074823272726300456543724327599282934665636631938425481729834001491158484051133551132880677113840086544202112916340553275059488119955946150175667996003589585600298231262392565256842858759356974901401808698241672805522663670781299621721365023808268747717905416340024298789907416979126920907468153610891805019715382423180305450335117701006288894580900502147725761411093588408628346600647395280969940279007565069177995349666207621343756233636199098794076287520828732967425742829610660211202344683423776751448597027057871884219373260583315514465516089381101338898786259077753523276118401918997683499859515457155526049504775037724164750686253339738027133478761188589889295224257733898034003157124616769984198917811457652864650795664472955870019140366519420050673758170693319901328141440096038511918103524995681216727093878343662954072276354827242284858868879079128847084615136676557965826304452156292276249353554339423437561699877839802106186455995395445806127690941355115859886557207463954229465360933340186025557268616757940779059176068659150231780403988573829807893216331456007436843424689422720949244208965974699428245967867044581919940346399287573350799180419681919080809495257829060902425544833042863648665855006703355925938789746320237495439967611786842453485434177070917103191418609488835689813178226491467922068248080681442807858201091428284111326383813917141078958208666088897455473572061230922843274893162237351847821197531133485373645785350836143918010775723914823297285081074257633143288632198975998241388325017122141628350720101608642192903172738680251254024967434098500977700267313009719446125117221157211352393394609325240057808130403755709205886427812168235210741281939315122178253424117769382019723174848159821887519948013870361692149379826301382239188251097239288385260156783170086018401432373813864034283476206913937907219105456689302215996436623285309180334471112995346718551597424117885884036522175134189786507874881639705370340419951492952833069141399375730064989774469274488175684630900016480781141588669474344597238583075786259716171262506220349775859685501446553432027267599704275217121728159614826756024003171228864397648772561245400223269000577097232897742971669494272098745062263188023284854725987818029226683098987727782142764570264388607545223890864009583498284818802710244058509444962919970472511743830516374968916084087692391936418869383407582288391444455031686419609136282262584072295954433040187285967067273658009321192771557157356665193151353939537452060440606941483757942553127645348324066383983424606519694694641545506988892806368693069867648995172040209710854665469085840470295766532501209745215872909444217532242935943788181298082423724534623505565810998396637502823540558372592353384095780504965203516367336410324862771553818994835486213514953825139582051800723408082420282730107480205194030933386988112851294251300629092320026548341726184993733181017659841065585262728957390127831203520283584735364202585287870505113567675925563344757737129146773586036452849186660729180976028246377570463743614474070655054894888021095853416939337806997996126056941325652186867099352283036136951400612365433075030567909678576418278689758451132460789424094444248521268191149091645184558458364002159585608346718787472862706424459519314392433738393229965804230474119846818780274464518079181736409403571993248460214873175394765658880102319299190120509646126263272225381005947658081821152963128722137759062938924523526894869505717953417164088053209917450786532223079333246823233552372778050738988466653110141387237716090290003561374403560613896580482531675368829702058505589783929901785495503206389656820675401009506914058919754722866539942853928918043184072677160837193008279173628866988463256419094642626395073424385996900981409914497632701462717435644334601046227876914822741287835473234884680697481600618194994895130727456355914635713235807137508040107745187008134672146787236557566410647747060276609773294789639442155178294411036107642560181308244537169541438987936237310239304772532331339888727252125041295506630360758959947263837164302793116313767508367497793264712544434536275126946899831711350496924423581215017549318221493773460078373952254299349534168169855958487922419099771963227457149366743699966852755712018886837494820547813724767288665028190232680623172879880749675576556938279992697984943442963727563872873056289826314528930822764563985140196776731443085084708229043838495054083848039853259265645406439184969848115306825754795984165355932047003520637845239615921910288194136699995345278577806412834104676588810219915037258436533170988041292390527893367801169607230743443954614765399574681535275978942314140889610240458604601649713545531456192820089975172235005911794615639502202582495840233543460083907302348626064631166156948487449002552320664628910447708513069481098083203813736996051973017961870801487279899337567226265603361873627576402156892616430236227656320149502903337044708137590978547012910310578894162403992054934309822259198492144512845570714685164829042300886927957227450276614899693819004689583892340993617313316923213185503777851728558781045777976072299638404902799233744943372222322350530375840314956797898526077923378222337620302375255413122798467669078477299876722606187796063120527883764864880583675183214026497260370088902090081634411003435586533433412078902139379361550194410887159441628830933860319074331937090800218284975128972036713916817224998130319677667231871401451877421405020127210795728752199130359149983544011563890230673491595177058204067425763021787768125780503401656144707394380627601643095193159150652899674654223162747278806812347350487333591354949373547972215263983419634650293699596007197973757972237220380289465995523136394449175496172976008513697571978556785742537422941146785851412284199681123216458113239252523951950438649138224483611550214979614792158400516200792209056323501309339671516776460017848644544761341595918152593290343165901247077076467466299922549906632891861992370405064976560200553713716927230972213844121215328328966364445522601885556151051602941119974089160095714402000759354938873074669831368654160030094236219413521044778040057363111721453770307431289040351348553185027821178648293246516837699593118221860429229058943003926280988172786783768846364675305663981170397223699030663193717395706524102284219342134395806280689153566802285851566595837118868895739057284314274013062504225085474048848158456853513502717841034292154048322440338115855679863822007671196948682387562553676298106446888291334373986146895400237752936831123239050882208074596706186650467235390516391567111421142115418024052467481302219484061002653001715135790631548822726956809646039749681460799376368647518331113770725624006083772852296125386419313460147866606984972817707626713611893952754488556821618931906735075478916111091425380915143867672402237515756420142724305172880095357122591934414899152492223483420082315539093659446546688087801907252590509815845656834336770322251179439378940539472631617133136568052529109672933986876587302070677874868839104653026694800735915895315252866264919562864174968683142018739055293356821841483286567964663466401661942131877542277073167833447135506355801756864568165161547989117947229209358914170842665222561174575535535300367622487016716079158627963631293138051408635077200113246657455025813319411629658445183637561953122468880583336756753826697006985263753494965315348903947076037102748394537782673369469845526238556116160641599295755496790689605148815712569435838039814191911064629220101103852646133113770976316476242225820503280659851613263880490422331610153009235373612442065876828823007955197026414092743566234817730125988583558626039597594458111616690108524423733153714669074173717594572189544332801220528746933911173809565573043742353573026026345067044055574349059113801702151773746931987830169647722159180463013977817239513780651712130832783245290620722843821879389415242346627373089263128621771712324981776960378710564622365537267310374517375007130903470854686016666972008856120853706351440783687088010359649005341613181832007444462650174207908934029050890191513669364858251061852548029987760533665027105785937944626577054004426825594380255991423340337135836451769403717081944831411588948514456136059288561929686936267027397327094025519425286952089605234884813637637593362512978126018842973144734144818176305802321353509859478039815652812006809819080253051567275111033666506427527260121629700722906596266893116379341479264954272467792215888627394208888440685200177999059159075177706320960162385445569349852989710658678276281874736006863504373885614164129448876061499599858497158055704595100753876381229955313236549408192545470071776961666717857359470704414695513670288791752477192212763585308067927494947421977065860900393845303900406393478912306397908858075415186186237552744240890613893619258080592009916075089929064051002262298573934620904401888999429135284244812808550716021370638507087694289215754956442845796237990498760573931106765266870723234468902119711093080754958962354288992337619302154415459348695829525787371261601447193258041149887897343408353097813584904334366152317114118275727837072014274008717754485511890921718325820705451283646356645418483440481926519125987563682040943423429557391862078045835071149320457964192511696673602889265486133415670825926594353112629068186336683182445132648599804200161825031837953708952779108028260165396256077180042688518586728438135272498930660267764592631484696120331924258995390438718790823132590337999189523515035954076786778599826445592351172475760294481331144523556216523819118914579806428700432002204981741152376408660656722025110871508659654901900608864332735524807362255781055175374195647666435827063609969021653930263206157388103330379804960861566559343450391742814711129841781220375713829115691425484814302876957724891478895684410789730096820091457070261901011539464508946857523431315495277285760806198652538242063467394499408866923768998349208334416680657386469401288391342278544868793562173395293375770478294572303858048186157303852505316575924167186485878165326364462032383324718458639353863161669413111312946907309401021247395349555756100219425365876195753235099339787942165264380159152435496803724072718986357996279182455130020570467440056635608099626749365485107170829572981426871264462784228272814063218296585095872739529737185024632519485840054413272743639280115588528286410815287449806767384872417656645715906269423470354993988826986920464596188092038753906417108761881324368903715900816788555168403183859560279988030536426451354973309696091145321255967000308450832702514940936767370418274239649336390611195893548916092398887158771568708530056524154190623144340826881363574269772080388722760544422681995429504126052322263730313539300811515164539544085234869795565783186211060887729833358498972498909549143500502300040867867888940276326073226395565745175014240002124377082773412094207695478682507557425240536269160517699880189209632694544006139640938032508333300243050800131532097786208840559607018336067866184066869320593456052824439728855743877350232996758493363894786694672792302077489659670459064521426011420450266049472432840939586741974747644761908175254231875755769460391711130373782876738372186572012757991955457065620032145344590093809369890748215816737066083315098514663366872532387082848352814537409634882315336995965726609273156611042552763992038298212314057871028009256940311825633851613756572269175079733199540325566932670129462375756147361650520297601120542348319660767722144159590581588286470438990708895097255725642814513640277617984889217008819182844281588472512079047564620674927711667670516387410057564124637583039021690290388934128013118708594618148158152926278607713746369640860719834403248490993721588809793087259495623580319957353607706367352602169138232423369861972430852536606486288950630351522802392900763758793891719700041608886018949532351242104284223038452249395127734359991523277638264472545014417697279013482007434790004588431773742200863479473177105965473435146000520633852969883781030350637584135413202496749158607401329286675394859845993143695576793950461526535744505687793244666665051569140240847539867528814052508704166088584258167957114718137655008109297091186069941690111303029598711081077258510148493226041440269850166714667709839234157192906648731068148962196603217553226757954569668135635974879693877560551017190714689179547574615489233167949383683164568246491665856485916182324760130486142489134437976828969438316527009422412577170246459477827721810041915222093849305346442222649755545987425956709554133710172849231968865640867035050864189835147634526805829456406413441855868499025351856059670380140839672292365723020590260911103829307392274962162694114588691107152860799676137910003120347022413104732670540847528758483797300627738060532954152493611168169940630994019018450754260724878583014910552973746807392633449055937799958810283492409237755112333399829669569351590686581154300164985254901915812325520329631449469408000719889750757137285057658802041040651216573316572965675072300171664299456974485368034101323840246230145582041361459050836411669023487501170466679069829589547287060342222539984293821369253440278562879856080911604562006403973227035251661262414702933202313775694661324215171168399644518557607583460170451434297890005908883174221109114815742617177496378639295673184008559281821948244993327534226205354862131233629648154092680350365112055470805580579091448399784639636958186369688363912735455754955151187976287724635408788181635300798607473876076197685666497523492513907976118988413333270345296084620519062135216215107522092387084134575236374628894167540914182372773026358635592524833237272223492542406320582580048017548697788308596111938115527431817790242907260520261961069242212519150715651803786935870621048399392223365953065138616070577504664380076264194280625238042327563657531302153258402261863568139648653362957951484375953784277963153371723568711278482937728888220627514931118092284218786233078977417816871440974462154632608223775434828742916778181126812065618237204526224474020367118607220958746527350530464026067569941256735822941052264582372857493803878607857486569217311428699755079012868624617137334351600929619420066569403064127717410971231520153289507954129796168872422823886964995201783872032839398510952931074734014130073939945647823690681811263032894440237693992184708745343621321458812939509563955025220354508051346468331043142449784547512341181833560141342546538838680551660585140278341436664859623210504219517339322310687170715171756640347337083108990113139045548028822509576578378136588815699292725287594474781258202204822991791482262374860124689792626681451721201115214632418705367512862631806588008399163135666980215081663560477183754621538512667432605807244956424710109936952340536510751109356699872702448052946552648347098017804158229746822661827747838310645922500240072810410624159387553151466008840885730462342354699346190503782359428463749480734015262631026304165194898541453401199539788414281539457434960965082888981164219759467659439692673972138512798463669769371111329122792267770292569679261413037784020714086581579431350366881800076580914700619883128215279000117774078901202796255568849703401244314007211465515740406609374057641555620345122120155660174440223129933348030910457964775580485882987238017240476384282009621697560541420858676414733445365596707005966947390762668237300025664279737383256766289834786537397148564980817524604300327923905874372888903610597520288994071655988671044048022823100264757992337425833708370006207733259588155661891988708031899571353177218950371049429754090954235029113798244245118628662786561025418977141270072952751109468975911606791839222236780681739751545379637122405165148299555770627368856947007940165350258225401419733326611546214891421339663901303165071525811612500569665907992364725442795107931292493252007711774833499476431936490714609277755759530520149501296954457721679509655868000679867064180808895756004337528549765086613599895105217881865308263136068515449356297096864156295569981010387510130786909897060446136640837325734650659183750347453806761144595947967325679328503742255368244444387015855800132287348574154703676726476408576842092810238971030540852160110264556052893478136042290396588702040686566725705010849469840310967044742955989503144246413645672731472503300852254600545462218375861792841030536341983737373969596088574800362031928751898499927617377877211617795377961981379849387296574502925947111893307763026661274664129683228042576056978958485681156702478268471638593424164936692151965946280310287066165075198100712251797254961948845068918764375725574903705333257583297283737314246395563823644013703610912900234014036761620781147777748957432532269870331481227040066689565776587561325210263502653208856778531669189719555978735250126312624377669762964921484987586618161865713614314233986133517262007477543446018391716147666048842614812186544960301341650897310966208527003630900591014458576517368575922657126092207411226403295741543455007711325971670708347095321313651282064942742885615449295624427374975118585275950807493776056097509818989203010209645528618983962093162530387536674592954920546457878294408098913876439875999456854313142275131740681636308857449108220225253856732119503098380378835837483712898835195200674577833733830945274184434732359469730251020090106359555147140073674652341629493960592527079410719158412576976664368708769822783457754341910683489731472734374367237393262842867890828504282220877186262106783322256953404918780046986653268148188151917049065819087345919129976252422605576338026702684221284752880569505770559459517961793764970075412346173266389138485027474680288724137566444395201023290503471623491560875312201895278135982943789935466384899367598157540645815952648029052216477926966847116399794541553650570796904095582975724819387154345936843172503456411331488913408499597438534494182038094763851398871294915740172870477963358283934784575710120974073969885979835075550548946216820215379244131830487178447312752269858448307863744645180190090691687302060083072448025065603212774268364459099701975179651775490760161878580259628475167579990235532977035265893680122636800065122745563066814988698982368233386944054145616277466433247439319239169486079940731545224276014872354300155568671475913504093347137514792082600324517352027967092190360644950521214049048183360717140644157054449641780747291225996779076978685939300950864029282804019326033017474754205875174402587984058524808300798103483581809501985730145333459142561817793264762674816596185576964987277588731146209117665462244253120576057798317894434794231103940473503720155913444111374173106195801079869162984594623728218125455437642679911541206363612088649451370929158598713030736260260622836963825422730742513429294157515149136007592603085885879108390793230200702713961569284067879687920658559449316513126905292719333123980763319542680154304515379012826449346420417182840168954967827089100555907193580989474501199869788621649236974480187146918134896214827627775013057706778783533609402091962462653931298562187458454649566625376489523052326324394033016354381771212645945366016458581995749178826624098166791701170805871333028674718874604103518429640680458011920532249842309617354179415808020656507373982375003372286707335489303606755473607291286661468357146058835525652780215610183067360877347752986502910793356507422590994306304174951681574458502744024720256690397988823535831229961371298011876617328984273364458971118371785753012752653803882505020780193056716403878644731312473401714184627401659210561693013477721602384737595866211572372971823418565210508732207325423724904097537046295736375358701903969902521652750634060786962580869342582895215068638005176662569535370761142732923483150988893861748954283928777059017829282093356531472906535577489543726323036874201876918328502605242024904067491482161841708806630675652374917271509355169222921572774059765935067670275721091062010491332767208748032737017899910884562314035546011480998522550580907498851523764504724494789930214199927822794145096214250131870741496745442606435425802782311837934001513314869178288295323783354376204738535010009301844694371544693605492095036831390502708690042418798149586079384021571653089502216507230510704812454948149425541110621525671535895500443190316465536422717188610540327437403708524838969651981420485955557636646407009831494741749192579134968383472692830714466790972080642641450518441873399801371407562297505582051479817366866412644999948232726246616013799600131046217128513596972945950885420811249995682444563131388014887754651051377062532136023244194668862281528124146989988000490924544953922911596081779866054234257855150559690686991680442284740161514183897243782758455845415456832348154157799261690793680030683304036758204076159771579543539950467704375597031253198189092395326712575902560165387708583862186599373956618848082557987136337600517230011528511322537371519688931048282688192463568431684721126464389453206581812205336743286377387162279476604315342288739584813530042313846282902332102692300958824268631004918415655495741974571052078778470918874660608899913599233152451959521690595396566531570754344822085106245288833967014614653185558957171378553890772038646303496713074345737694633252499082509612177896066501185536116441281765435479053668640562992560806365275072721566147695993777162140113811334727288837325436513916402189856362897185560538543225953046372586059040926067784188007195559210738886881673307752354734647418953449781556458074236118907002703113131014590604278534935916236381042795579157517755824201140338182554492408009584851732894249215922752696509126966628436241669754263142607823806538594167009597441702276677368158959592394693687261179048662569766733578144783803675734012944586054849968786506583831041893147379402039923062613085301744108035702918832383787996682575963120992804543015621339608241403559028290947413710064524595515112503793161754338900707234771109580035065678878803043445556791083348175430055776851901166168110321219910963364218609531588047062135374696042525908667772005683510885235019817063160029028353912828195563852445823719793778207437068278455618455826503794424781019425357884014602092346415320172724546165659230900731536857873564294047632950011866143102361441525144285159608002492465553262564047655373588377869239001489746804491544264476059478567717393359903778910746593183558618127210173131911467610120969297501056646222865653170104468367425441226077041517044563359060945969989175712321899008849396795448186465226143411713265739700223254587713500438549179416041285766613371603712159877356181647669333937274618210831251218688074920247484078729672326509923397686034653282014404909218806505994602594023133204243623301202064194033143020171889387984789331497628896518536510667705085653098939117773588305289608507943089592929388016213804237598060522324590032022775261738123362076973598213199816683305972048904256201237944466565561583533157563921410313585411011042223383960531000469117537496551284414726120906013482648368996845617074990117027563001007700443579690935550730023322488488680150285536220733826375511749138147195183214777397639899186548909863918671946876444184273023533320140661760902425600988250079262916687833839005962252259060247939898225645224652705673000753407971116796612687919048881902893316877914114661017933567671872829694278458993955045230920493178599220598554932178068707488501174893557965006484339239261707584444937843837751664920294141463532924003738205938770774523947645677520032903648959628254530310276605494055851297939187644014946416358858064437195625874354816438816583453718042395940429671068405412727775984806717810424665388287016162484950431531957498399419389164804905833422583045854895665706628911349723452604916937871991718926954334838346298644425598356085906695275810285453288618203527875896600928747869684740767885764111926120733254410868773329401045515862513899832870880476504786815224045261897913086452071057314633092822265051419786067556304968464163660237761530664395368553938877785391005784026579664565772596227933878177035570444044642955706857345425308360062303496329228449995740110566847115264258198462361891229996366277778167751760414358966095212796837905023423224348078750851888365254234071047883753745703745152513020288008766282675585893128034620410657005645847063656135383984037225649237692260529886401011821719892754990678363729677314317578168184612248725116185752374513830341851279861891057565619897146390217801252901878129472212225939502302752874819019105126324249748497991974461916596951783364728554034825503757515076383910498624707896600605964862188589388470287244111934684000918701133258007064787030195213377578184935250562039871670403769735417822864633357616508559922658387666334267818048159417287323675995663725916903716616874278710184474695622917969132365430075326764808236712570579648302352293890810674166448749006827993616799736774694985145936176016330740138296527116320657716423972717014044360235759789989022977999897253489397866588560633265861428349309998088816625977477201191626711329689382323887180956792905780414167364848640943555027387764068418509305797107901056392992841653484779038799299011176276391251256346040768005695044639251383204334917831220491545057845138262919439844349560043205286650387089034460758326988404828998480382410421981708986973746114694733233551588914364964596092402714992983944788359831475873835081389692251621864133952788676399210561570838729329675574116087730697418288523375376295155904363831598930963648138620564794951602559508375147431138068868023694947043682438096952545228000744254219425114229115052415664964253586816176906087951233523055290812023425299230041799882894756219216468760127754756634985863240031034629801696966749372175978521628574209320351978321234580898523117978121317701408600430749676673201761733245957536510487162167558767670964788706188168383060368163563116535183941931650309554434388291150301208609457097883501447216249389535066129995490189123541188756278168658444586593876530435394574912436198710038531907034209321895558864305938284728352094934405040218603366817564695494059550453343310823146483632890684826490064943034488778434413412698670347491391654851161225900983230719475444097072814457412623006774074082071662591128644978693395051322558746926355400649121812083742417146245461437351943639395028070788144497078757230864495254935751385165832086358285687584492665543383211073944822409677328429127680553189622342049460789193208257700363215935666444397744954344555253116769877479829384966475737632352117093705243475227660267372220325704253321146351006837604667895343603794426529246440549112225470781585993571790967710139539266445735402145889540278657411465389858466363774336645857896982991831759696254611112878252128636374801744243330582536834182308993331220311668248644595921298336045717716245710617510437846561179574572405927276348457126380435984547132917730002218908366631359376794114831941303190599956856236519362571060830831748990287919092915849240406379635227543683108745168041153737808995272904296363052639027003217965063018717715339349711603323289401851997634006671898730614466889180643398114427323153706678929852016828848626048686637829077421579845618644602619067977390830505367502688016608463024556463160853305558292073000109809959102336601092336035048377812014143969100810942208131563091613196559323612657882405883833660650860292888433274108900667445888711978025988518134125169440685178303501738998190909828140271532212014762721988822146318518133089100110299724600480960388061446291918482838813867598656090646539022444238190609567360976919475286066497391175605238874895030011387762668862281496877904425181633088699494745608178686926466096270325229564815935662904988917055756692339704386924263639866419532694616320228647695392876924248413368597334663309282548531351897746628098577679350265347155114207944764082674854078443894569013354078432424304525094975850859331798204532475873929713491689372370899992567970392995050793943978044839912804529360496689320331861543378959739499766463287036726801590963704314722101682593617181060066154410708380597762211922217312882280384293509397838358264636018702320349663320250315064718139043131976771997836793258030421604099746176866151281787083015098535421378511272307425059746055320549753493381070508504414771480342912249194911233225843146046364696349942191306676910161254351341406319425742571142342382410263794847324215676887043502076371618276763323187401042213952970474918059335156130958731685658775016076947901823678191847479522625261919526010359533379391104900918854945823072754385824352438253743876827765494875562285468830464421912207688147727230009799171893430212601280293013862612283554102544828463694820542423957074919744252222107367088688629155726473909672449046915286597276204609645003427151984268564778993038711656529473934640764573686329649344217849361071091675753795450780859941603322735140833027565361566380855404619272110110722736809414286862291329098891173992002097514712802965050911618056659168605764626602454665865990364409670860158436543831015465795647252772913554160646629038262840606890906529418323717470571340058275701348801267928073763507489718437075652390762336768788410726196177875684877982818584014181757702736689611052863521997531506675186481881954637745222878837214211213290532610635234084776208270636707051353978421897363695412720245667735777284787997483399093213865285923719471276346291559590307899595817199743984335441620362303027925770216429323225911903962490825933657032734306987615761854978606405237932789799980315305195124523797398328931274900257809751375226636374623035869883866245017917187560848261268287027940429288617134280170819204572262858796457780288379662210486829191539955387457653610480136223127976107489624177408615373276919399331319182412980169036489819776094803785117688229287344497019291098264393637343073107484194831871544916350382712512073642670768715063256319011495234464429773026372418168902369007563942596210006545461629728198730280398695682101100858892396124412261204882763524721432595809832312082640059039778881736352010977746322670374234227159486513527660239212753531442194147965284635332231404279390719488589056018118365408711631787839149900007359049687707262012489052000061934881149061138909235663458686714628726498695634857164094019197228650768237048189493446197332104797049783966066245879809276738685359597718090696050319320738929222890117812018815868801463026718364616995033141073786665790655027654600380716609275773523087891160571797273786490145945063990520034566994297658706721618161855685552228650127249537854767744247668987156418273581010778263371482720163674752108629645311249556700248178424936676888797629920824362689492278264476853111625416637955063796296101386960030632155983034783078067358821601632938889726522709984966389208437607853998486636263909774638707772173373734385302532937632609290792873713732314853251240962367809103391611801256030726919405207293653008492848789637427783814673262604501048538784043116984893600726394174986363794419916159701257619535857004841154825830383341074253211318068178931389807029106454290676897439346057870317038656738103728706113142227990329666880897907001607611257774897164818825167914010939952253594504935415904047774424881881512810376118167144197385057650180407467101886292884205840045982339747479588517542725871222874981948927345410366618579438477226424435345411391165517356771628375165220172916629352578200523203612185930200618674287550999308048531634841627445459796945823310585288281553555326736531076987710455652924486125747725329668426400737479331036933190003998606333270672938447734841031705402553179950500158424295070898156112238516410448243291640279153181759821765784902895004222304673583826227379869020650721768609400002937510315766190049311410230024696513967606931255774557108748650732954971490340133275009477750696650637618529207722985050015504113042627652338497430570333324846316935823678670323276086498091125936060621035650187134257761839771945119527910306765087683508122297749190438769650638519605690589958177380336994088885621750511848575904388798217612644636323690967782760327535337477097674565301552424550092818211110483926990919873669564442348419554630786361677900783833626609183039361499422245743032371086925185357566118699630203319887928740454970892773550460840506294516635404492640379030691448745601497493304723924112829503872024948564706999853725483446026827394442668249331713013100572415724427097300065693562599730559635035204859272885741024359507640905318761733943662623723329071488255975803168041483066332121599512069793665802586797443334201140914984086270101521647817912856515196527514374549783359143976459852621277847025254621509551141559995338478124116264781196016007715947748916507926715909601055649243544289829338796000266732154763657173170352471527432364137207947588043570628682878750833035449006370596228506120851849692676946066411901668000981698161876429929492374026375199838442028343111914841414804435216586098199763763991335395909663960665489495912932423482432883598292643952632597749972925346057644665743219726255559658993388950072199220176005218538981914815356870180012365007339379053588910126871294607958336312470759483264136540764720549073303739043331985308692446473136130875732552051254178292844266351970386820224809705391101141628619592975507163818094749987426970547041937600924478055532194447386968273867907454741836299902784038606998301680858320848071748883707823957044183343768439186710610757270669796438565867400105299643211726485701995389496292962504928340699232329639176461698753025716761951728870122178203572440822196818787362416965579196695357916671319733635730509761033767200698412485612637370980448132742304853766228453119730249007394879054329385955986665001720736235336390193982459046887264218697614171922854155195067733984457195180151428984679923993494470482076882076928144376401142849552893445281861811960761002956392789425879238557045741197934620519985073102606594849306701804932538259842893553076469238580848098728576590297922115778612130643949600891309941490543032884891531091473336099557912442925268329638727576263041966839331822632994078345559568887437764875130275348016019224718458742452755147762185559272519025350689521027672573861904768063025035585603238733897002285301517970856653867331436361164797146404749667557145862692858365812348061278444228515282639041351649517911101993877689074613853958662926291358627457202277656974121570375464607844799671072661969872608285214613911232512950629226017426050173161215935353250053059846358848578280800583839283981950006768430713571004750700963948561840429515181850972096967944679953414193929432478564976682993748007398371938386083332246257090093606704824006084206509570481646915123709201946427631711636170319404374527654991976265858088755946071408581859075426800623315573763224385492848211625778601671741393872531599312067017481041080658629844517378729656404488224600906261679004746167145908084298547434134727206849985408285703898487576350608028745790337710685980427337375128145420592385866907651798524575050763603847777635977175577631679927348003651422379720178670432423893064812344268129700242050226725647378814654931473405395169751848534602177293250865214930429467259849038845110868273612460605116777175309420578629245428363287631068309185148015693167910192872362310520976740025249045293993593246732245963823539581261628447802027420049263752686415645572324242366136148855588011911970104151262578252255454753156528857694066289706866036604803748132112625985280034909092348199000929206542956746793966965364998986476870514945390961695624554162981790112061433320446102063796537753834001658681885161527600616400877834949631930431395255229587808531980934227883620713064155031166693368533000632775033641032371866363788633614209714665858301186092314860131702127263395453192694003140995972050264801169696904130062450797204480871117555348306989470706878374157426203448596763035750065284290122729652388014800465845951280885326982808077240616015417558875968854588562251144963845480373217984336808003125631401150549847664179706892160344908995282891196906933974691433622034718171269410209867267799472986909672760233059665533715427058258798507340711492303453174031678716802806745532547361563365769066436944251178130709655246715520613313371652138191792820592120981901807729861121255726282531347156900046941991982701510240460848474995493191985084351221402214021294684517955961386206295396726959410786697567114426922334428746906567352805931874977174826877708315179093419130289739865510378260934866527078590019591300321156868308063761456832713941898170963053154149791311088418322741141372919526871892568474540388038935904054890355644097126203867762017704921026008344059634716027741550921918934157914708507779920772683870214932384811005120056944560652912172674620427615405921129978057253495045859300629416339563236900265392766707854233636069286033558556027897838997698789649351944805733850464998542511750863560714874150114739602699210495386928725748715615446946538939887747336261116107472820213084742505165609190611955699067376788936561547186371346794356717467674044437049169674212297469924838661016975621026908076430649800211082829553825023280042775377050810355874870819163592483725252111034320167008823212397910315417512986498878182564318432707572359713278837332129515122611228127860033723663840161252936085486518777039947021331642648932875316467336181107036668866664180511764911286247767619355533583531619077020599289407614385461994209896638229643612505717768129907664750605497212907369304430273943371193325847367568755678706279705191332806751106030540130108449381073568337775997404885417804036154402858854758890131076516592600333420084699827914756991889639784418841584504131711321428707754872010403807530595634463862735889063763593563223046237875703658071084709857026341230844103206136777467779217509036279690255945001579255827602391988064222206695758719743659710800956091365760500878483640985921630416118678383575143364319107508576249212817440999906518170270565090004308035098418328289597442027275673362220482023538001860199772463663726188373085117508350937343011348290104594839865831019333050106026373176081618743345846550995301969083911304479140012064851139169152935617552670462361246613650360825469978565611272172287834615845905883536694648210202218705324398321232229906818575409847875625322524917652543976504498024416254092261980196065327853713666343038991296342607106599093479427124590586081285741290436888387366448911218643237888530830285159828335668551844472249536619582528907864308033526085525935076026627825667648584685691002245545765505269948826947357635478091366282932166499186786823507597021829883025098793495773274884243971610039169442072804172478343604398294769056643537422361939037495997158844132923957639491674750849896812823552068247373483009172248585720485412609752389770640595502808182578730128083108624581040900838342743864873709362289696997310290562894071489169457333555805474185861980464814860435232478948483716033275748362562993475171518601356301479873303551997494968276357713330145175774451780910703503610565107104393969610603879518504445964462399124166571029583064394557560794250023920926484601447595291894962404260390484183628533275031981032941097385894206021964580610764095553102248692528793319737690212488841489897509416007197593511570001558050551645435590261220000386582527273639615143130095454292643565035455696423069545352543369802642053686531269338435131438306456829684413018069099023356271310254662501662124075524830021024836670499104808478708644205736945470661107589461231078958483274241715775735117718919300337093139192990619133434351205498230087934427120358416201045393381935343996576491952713309328739592381578249037061056610198884265337602254453153908667060501318010991098226833268814052675109484232368196798500223737525595963915021228976544814972878284439199585515284337662361018243560260132933628936983885617691449230621129531131165712334281649110980001336720613289125856043756238083529183345211776096566173514533622315884933780402280158056912941053083554080663192377935878622280825776537178113677900206740766170238129610614926160867011198507934516991267346154236266268914785899461431202620523655604414429922825469252203771485295302079571130388350017408065734652607237512993060155863298108354669415401890381311864973257824385840694649904963664099371915666131893641310122225059193141679774085377000369975758215703728503140780306099620618303211976132421212292977917827586002752413795504425096120740508857021124403591880807948127655400259699117186531118212899197510640323596062907348239552190676487066056170003226158501427808835575299337373536253044479189334631012374860577147135076647614526794900010819415628099889019912002409314340980877061990136049445299393123124901454513630222536730100864459182691879814340060646857123175302488033625873271121719834717459335475373273276805742584724291468038882974357468346563712816512464258543412421074080756639485902159391249571010562464008315922022088623839028204126221685061132598253291972470971731221768297171823238462859473661936390216217779510191822101618472992369144057005910339122741275506837413230995530049812554392202688013217325808003008696191720178858760998943086806102456911627106161913020676370299724650371306239814535040777534327170414510836915645737287136025982620022560672851048910682428070638870154495658950661678453172335771494435540399845109297036918814760746386329700077030285928607795033055566201710611063046502015228341954849997289227626989326095634237583857987866952454662517620765292895467015851497257335023761859896529769520624750225516025602268262398255849681697957628307750301384158804491641788243986897504955176385113113600704957548775410395754968553527090387887588292218051853401380809331357450119513276054229310655736051844873241439389617375020146411244211538004708428880357262517531034013092459068142698581588627684402201631761234829395713492825880320374042029845593693209417761622587951516259510947831585433304157088539355160536471112026928395589911376594898870715590592198628375654502836826072690624726509342005007212857761015096236290077409583997457831187304481662718018688871841094951478616686500698672514270154744073195321256599662286472354748091873380276768628325345812150143701643752727817603399096798596518103391963618553594501430879140047199351359566327017613404555461780213242414577121811374574619782288077317336090676534138046855743641643306682889881155782341539747103709588678481794127101480798307164461758322457187449900684953000207891298754435612486263568671251802960964522003530351943006556085087887367475844520568794581825365033910346788871308142797652771337033478025510376780599299304476461807600247782059733705655572634385680954208189923310213838285791146441847026002871429738933609063691444691954635160785175198723735721740270918818624469227143805326552833067101281497596535129117680104448902047142356262000413278867463586334854916715233143577005658103694111660933182209071284084509800543275802541351186976878155505924587083280143509839397115493086234092542454663807115678759784734252516013778669529819099048194409294885449544383147091799642824085174338763904744624844184003117551611132865077406365254125173680690037769439104896758964774717765114482551239842016307020258627194282968500757751970613374070650287845505656717090561511819442828050612519081754734387622721816419266436869172530523682543915349312922245195705521897776261955675505605763788043397866003425242399900291734397267232399935578478641895791912495559375418534269718886756483453328614983063285335152889532041162962045388520015860927209109261270800397299348559001155696558052713420172973767435747472805287365841707373328567453490005154289384976950535733328348293713919778711045116960432264822652723332915731839100659318606135360085396185944724647238719707560368774290794789823795498897994574908730455004382708488460430275517117817778806370502976263661971720960968432872994892173733705794312903769115770324158631278839730000089822570790549843539667815396984000524047740031223196910306122104333255019805221643916288442546510614008807615235957218217226168359223129511712539959810821481729245537610789747454135202198731815031469634635558560821180571240626764669079496388088002226854301452711527541576951396782826757783355912202272676328081517313757952249276102683074919642022347565752792719313619445240699125413726717070276454332701178283237166601955940272410995078987130332826125256455158293832659298253590862014179375359051534040198817238676981978984405679987042360216514469263522488080395535814973268040281932177550909336228361808659334134467581811002104230345684641261182556163144563102765517434277259965307303076773963907121713688227109187508211410811211222844903775353636564393700354444592947616150305625631656836774529180217225434728838135233787292388109299686470291598985448743240432689124408400263097911222819607922321084956972975521265682218940546592271959973623829648813057161900285858394612530319050943996818625742895219425922920458951465832518194169127787084893080546406921354432745317509251080956744726042329691929361307115330395732164799691376704743270637375398817450093793861199257220302744590580891727530778218019990595210746247930201344702439960770922930244022187158588122810416494446207516468596416111529027760096814721408014339267329990639892660466016716919862553531136987899533354424010569477324296031086857467198290386708112214503461028229832690509784154872762885287969127975631524551897420318277702907606430353630743523805621887109064610105966856423530028817158650927864133266135297806358698006613315963715390199299291905045770932917952850767698939586589343186039256870874638800526802621559252310447043335635463425368283114026371235346224225586806999773387088931751380249609652697708613944445896953517568771332259384408447753106659678601063973903073253568895178449920570162510894131132369125287355500494354629603481985339457826211133851309988171649729570313065544707675715526518382126830797702233821536825683526358783787937232688944801630800134103259620036442021580618276410831595303634399321512214367567507520521256122019950591027816597758607714433686399519882676297096706618638846635044569633653680153523683322644722626407078220956894854928695529932177170141294739428172664534025071223142320808960269982525665709448650911314540952688424843384094654781181657437651790134295551864161769410143514989638308703009633415819308748415403142079523658397224487452219801630442220780671984254230900529576925663869421134014402598853380817190564166709968355492880983477495396205055458870970020595859746316096527182053722919088579807741428401789419528703476713837959011933212870955836161671306986882875067595296626881173835476741363669546943346875396117092519928963620921437104132853310397136865348351928524181692006416766626688334340621139004181939266028809155452019514037906891363590721954296578486125374779722270462976399287880671202124292640288284973553352977049246454291659602108958089782583582791145669599690364807860629827538496153403705935731005787156950230671484193760546305978542410207683971406594016652466287252915158831666407578685287559412907092248310448382660316605454351704551366962185465765461068087531698998213259202907453439466145210494977552057805789588558679289655756645805426136841088415206457949016940994772049125680426606433946270196723966867497210265859215510396845242789250875540571459966902151810982686025150139602081061689910004734993724653358835106878564516254921248772780495116834572832863101718447165545995339898364580882372267017753125224909188877184499178953925044917338965608028346792359587755895755338649984177349127693439313284509428813341569318231129672037600430064779209670551411377679817725897017673512317215727232782162273051000898001434765256064899158786960807840537119155900488115433937564130439900020369588011191787783611935361701096224771033908695743843965025453162129573292201038589747427403500133788090859495274958892620090680129921789828021966178754023088129307484374372103917936914172977633618084857835710018847043105678455788307395613638892854000764533026894663753716360045372931240988570341066602170538946798400373221800713365582811680768605455922559508699790955896279419890955446272952781210666801287366416026042926040801919796850346365304158508085885202905465177414328141181684472531687552430528469675678981461882106568139036022674743923927046775184902129627660265632189204419375050558844557060462754547531725215357526380551141656807309732724260265955701181988869846151979435088489265196346919620344526766264828195851692972374612677825159330037300980924681504057966791397907822267029362630676708086338328128071505865221089564720568602166542635078036519291787559520520299160916508422248351448765035203123084730932457141942926679508981079924885609340808298798849933809273523987038151980400805247530417137404734149357748542083163414200437484561029915235038287393885707349081430333931056874879626846078143242543445652136852649469973273015659921856782564101179559827572856590800501813906398277113493574655034288678882155675629206260934218809575082683305075809272916562176094916688086925864346680413538477348979810719232417860838010467977531356517877415904573915630873613108492452338027785679705865960963080310415494015163426897033209095909544768047669206004538843234903943034679019871546980194368626206396759905925564813952582274885250320150023414851839017584599772580449872992604701382118040162253166661992553589549005575819000302977786213097692162795959981373136655859670293214566913590735280161896432733212665275947132465798019940140986784402533675701097221518625947997826836992573002035827470533265715024201206953981502761114604376623421159344002891989508005851957733320460957778767978207461607086667946523384051833822575332767128819799392298390774062180799951753825647254441956922057222975604362924296206611118197201040548293942892285430587975919816635990967307580198673857190255389093564968460756704766059176069972397254606835419567133681363340377873378034993758234074659174302430341160654044686635870644601884583733022006094920750973586115525016396425429245161716250759988034419292910482622683834936667084426938572025527437602704566878577338256407963362770788391357740865730858484601122725373183448357780432286362502729360840975796956731532882591885304347154591318910178845260792599193573632046823528473802507385490335332453318703748238774861516936772251020532372811566115197329888494173466996316473813013575327156184294719892982180960467559250892328048202158699362380628306528434982581836304143791707899788762394285366742434888203165201507235446264320608157410727555873111517721199333511644581070616384080545044145418251482989276584574195248873918643620068323595069627772752865954048362058374462071364820692755636043451888967503407362939365098030937079660582625698420251992848831486079770597476157553145956044619875220703912335195956797583694355634859287879720032951409766829454370980827841186929353290302986047005396454214319271538443830520943970806793414205026525077238713052679759830500351694706330750263271727298859406295322109261815326653799050292472287828569057888797648992860983336138917348148877371581124627123107936938158587780072544558702978080078439796680111375519448485591226817247481573864811107334882450705021621875003778058063877648714455401799722376447777175955142840417267634211797958886933858584675846089520614814234625785057816812403049649065620555667426980072597264141295443732638410411907524829727786565825135654103367970329271145925395461779563649196209384283813141815423208830119557828772890650791939219053830084325012708284031162107588521843519640955366086348485722408468214584292159686501831909601957491085567371077905527475525786048395044376544012293113056500034465965589609956828253751964831393090477297226170001183748084449094732566815047294647113202402510600220692513114331126369280968915716575784662916962066269408479411088593485527860455632830522053389237520113567608784595790068822690676421982383345569859991698014234395186694077403704452517286526109878529089058528311390326728326626777739540682484755663105908535630797584918408357783546767578107168157689600123631739927933149904895892354042677998817881676678177894748539627995051225351855052690157046011564373927833689160826244535429426620186370103003209761399380734130116078638029367127968387979299947286573623767928644815296948104150013556612204286912877626187963787390842287125355453076691991313755148128634614057159690760817762353793944068312121812159326172160210689287073013474540541972538257685586368417620816563450496421056932811009415802136542159525935908209765679775728348264871059299545969840561152358225387335989662638870585583636256681458016035583478145658186680473485058659762119992527108995655142902988277339891615925598142692960907283757579261062284838262470343540403706362561197084784278687596344614582983436739855592424791359821460013763214869442892790799577979102723831611995531795730366147857576486261993366227781831020991706308755197034788818744004499283082120506365634178376470613365787978622304636978099297444510569854783088010708104059196187130218702101217220393250022454805097656089508335902607404531053314488252448324022083233859717939501617966305165555366446819823732584868007684359690782785123648242664234231720597622292972896980113467577643411230770617714811349183182123658963654189764295440562667553262103831971902956486217310991731726385034234586841955832291360582921690807376074279141519960947532557007245553172330591970553798194985429546494271197466758721306036839194395301840501301744930537163335619142415945939954274800091633018048023768211163493261764215813163055515823374068506198123947848232773043631400421980142384475177578974505049483824968963280456023747946584571057866857875147296006994849556980257403691900418463693083690288022082817476908152658031700662193894257681940160477645768653347776799973597438574963837439694841321368060773477441475243127363911713717920887449358265014637723837075302898258555024482339431797521880026206153589631042178650682449205352737303407437728229692218570210050979439710304820172668468691540769520770380265091569743978942952136284097710285102122886764923902202886766147532383813397438252213084380125725419497197220464192362736230204464778077939498064566420869525608890206729937465597102736056222043272360324984931230850501617181306875049742554018520231728677028323403355828671741706205340862384956122006225140353965729741637095483000192082446161852511329404328193520145217917134487228732617348775758449980195802965813203844361190493946144281175465212535866688822723224368822398630741062397627001186778480027782615530321752111323269899606172679529038085546384864778160937051086452958349125285994261473371784525949932414809573126637111654690691207610343379845780745481033914188993088001986502138949448152979603984989442131211052878907249840107393216191683317746363425890605266947104132582865877734107287856812811157015035227857529848542653858930944417584558272172956250359024271253979116294545906090550170271777172492546429214201415718561678064498157559291874757048136011603846697607096451849559432449042905970499347928577915801905194093432059947640292413548116105116140176354875456320007680333538770667921160775405554677699224703988104862954431411371930785010764734495930027145707024864524708360331445204568925054761448551585511557716716041433409504634329249132074103668995406362319780110411426723105062364563977723223550197404608761782981587590707459394555824940878340146035690268239252144665704121120862067692993459126455504776432024933357875063715214267385879214317499165474670901015304622860948952123204244211910951338662460820361482478651752133993390351257197563534447206541676356366934524829575561097714705077042338118671158823583074900513415445565406331418530011983912524248089621583539820667374087006890083143344662482795735191175139416341397118847221636453248984684223759303602329096637115030196094075483638333753299211193676181905424994866235037778243393391112226828151342914281759510493245230987950188506306219647788218073600924941209823545319176634843901465920216568289755641620190515101538281428084800336152037629145115578929290831785134615836017967874356931521528800210211421828676360396787473133220198266195296437854002681981590775462087582243863647623409742795169899441569037233565649230618692462846630722689209696958997360723475244795445155724398488283345729804151916685425191570247899664385298623580776512635503167970859867589026287244618482006574314554108650714108304160421727515188222138204707338703783647065190522124763992756816823262067669009600416246747169100494161184133407302392882492661226404784279303303205038201190518207446559393475491201975052977673174878394876396335732555575664141103857622139034533031296848023499022518132610401153936684791880325511126760261907498244866660803327999542832080305946813809694702424267247817411471031775334401024625028300897277238871183282670497380331825191462157261451856993730778159615138970637106979963641887560196917143406647069854298541912590836383177272114709824628257667503703168112737955308102602225362494833932117106524424614811705922550076413594644648551008564761220647291972297046968714763094010352836137817749118905566453107917458076883135659805648397509468043417276255113935066372246649697321405697923110970890377480053298490454353161090276157157837435804561246448387203046240565440572226794632382887845699570056807843322194821231598882389843051792981879168958224999188069687951084038998524951754525746360691056613821900777600551066090313893414130029006991796859766850484171926294774752363418696441844696005074115640401249407991856525978698826061428355612787557672863762542128914810147313150757354322956795335179810047249650346069593420176704904610168150932898452932088055082949443368541737540216013869262713813760889250956481588334854551703112733606298020116443326197596003925497781922218438452670164922348849949766754524118086946164700048972284627268098513435395474606777177554187464410712145667944277044183180638340562326906001694697611220395133584613618853615395570477596427172658136980531017115128305167158796264571034781162265646850261861351264266759971860847323437497491836565455548373511015514098373451462255490022748383095095944653196442930548289570430654072653998844373187696511877929516675880138610229484128244824482121936513565461807464161106699531210621033306291511121187202633752609418121027131605550278757926346936845572445730225208362972337249441310911395530147949225774370372365975381618516067991491170795391156167660303511925927406119145416320878999419893363082159917316090128999306191531635415717549182434347616686404515351478041913292683488653144731224823086466957235619557910509566588143088592372875262978918715449518929876316111442672427097175832340279309889449125746226233536996561652159654037326319084195643144868917044986792686107046885270284913252205628198390998375765020997701295334892853286324753717314916294951433051558886982985943102542302461134639793433024569882755273605408757645225439920253259135374793111650679390506436382623860150107382228785261523791084155668442336778071899374914688962163779958364815693987479920256008283238714939208091205561272214203354410115747703221317740538295829341938967386720624291522240250337434282426938959771229652361784473770559879607719306037310279158583844778802008175891890622546517962510073008698964352271327226673487280506876582437489512810671315835749405228608735515649072692494518376807688229837253004664481920165488791191789978633847670553667789107515313906630750699674620576655818453340475965223723209579588925972641343742866610426168349642886805729531015840268182699665540428981958662043866051520225692211612984127710019718002854506947390080212202210695647140023843949870958037022913972065488502727963153037660189739446303125377958112396879254899497922240384776026350895011005107573493412817676529558950806703880923377653075170069576243914443468068249455018175301658740100592210288667160902551367787523722737495270326746386129901323912209885905062547860605290324136491413137947349726018481486028008634161698650172974528329232399069434968883110317314519560756884521875391210565221371114145381783940379917060153326517448383866856498500010696377152090494747662923669604248170898202333246281955296524277083040857710110751684319346260086357580138511135688846147510243385417112854185652103871709434965962225288033533549014409479835386022717266915823974273516883566187772227792144241310584350408037962470775262829935235314210936975901886390718987799001933695941857702354535974945718724342273735401172367883174677493451489192567843922002755173657360135226212863799988244567216881316337900456597736079768588087889810623283543071497682728400434806920908295558821370622161841100657149876495698859357731770911689900637242843795003195545156654647077567713928520905303551598280402838870685442986161550805150705901771341628380598534955001634846247578306835820954352438717190787013494018309740374142897958073046739132335515677424101603174905617148027746170550864163826058859761958855422118794229053887791106834172717730254304447839198166558420292864467004212171183190584462698113841070358909407702898505607881832400080333707363996007987886415482051430157815482284424481941479934918138427987150322306750933286463081815256824071551420826337461953303564287622733526256891290178530681180004520705035845842832643880757148578947433767651659014593643525980196850584591986388593621510801106544178615901940493917619582507108175367795257709972168674744716321922495974746408288960552666781623171061670011357488897664203208345078344236137101514533360959285612748292942986271784041017179208849606273294021319700145352873451718893598327613397848617411717952223598950085982115462950200325567108926682774218278362956490789424029565774462224565202820979570753657848001803229028173089691978014698502743957513163336532239261366829360024313023844788295970850301917645676688243697452852628180262398093239628075390811060132571548696234001543339859699349509658125435794152023088930401653896184692804495591787764300857365682168683313098171064965398711369274963810105435534820049715785942935089081210358392035022678035358618278507988122531823666451322647722622109188601765300300237781772203365425782204118352124622645605255709372653398513297046593897185538372292741355043396113420343609681177190883341836794911495146096948781200629360500517659931105812947279812986648808043708047817934300573939293610209282691180702837217957797777577001731048837757903650198797864552421875484054644536926692047655257354173566612484204931940714122081291558387618584074581735915189008173748147150076464412752731215392153259369465588299209034483812454025846923184905323532713376817623225428684087542964616235461407823273835504934547915383440062888389750886701825218884977664293656985725600592017163844205617975119654234118690099242767908623266487903119422099096592250205959558549141559123650891052211996959810515795340642404794073798845693095915338142940641951237448539784607573526364321740578407538466401235190456095507761685068225792151406760112667129443194039769410719262058113895415428787569060372668843178261952678231019458074214977162812684103785047918310141831047797105656351419611879762004172943311917386666674842708038388705505383686261069926947256194809839566625665510404181683826081423684874539119994441332643265647350812512416604549039227582868931480326169762811981403915969768348106018883570904429300581931800921042898808899867574106545992599034561762449685866929877452705988491680690579897835245848548957410347749476301592741739476380365582358507973929464276250276737214688507345596620215048418832907071524580428768102133442913933375775201605938793694363332816835840064117934546515959193473539917305820621906212560836180455194736654101922459852662046627664954613409960469409794639258325719503250632875020467496689985031998683933287471633598037869599207095909258226222574003458035873895810674127947950229171661920912716173591226838156738830275690113563578786759149754565531228495948272666785172941666157691601910186031111492257322502230634382947406012242792734945308248299068919367603833655071359504354077083820963102846143298470480302265569879261894147736829119714606315032506845985840736557285385653252389012110002247192967034675422124167792420441257611861839636427613531832848442066798771660316655860747198496416741293759060445704525210291062394397128974293488010376713979254834410220043118278636507605791261387056752736350141742894487086202897562749292833058869382561084597973049711249094231093556048702001060200594442354058511250465803202816199142189507001204446350481938341630314326279177128807084937110349462800048520096278113967449403364893079844886591140506443058196924003080680885651350959933491412310911690129257074541950491760624626297591103293016221723401794091786877310420135162697036476661445243687029657220465559322872238269465590378041426016932434278544383834712925819853905114532442909277744137458343122184600786834633872675118367762496841798908682797114083872588409150177872984769780755730512413080707281408610349326337981236449188573667169081452109170559206517435999536481390376671855134351051091047332493443702405296036476349373654348657161705964386742832188179592929158607641833698680059587494378259326914191424299302888107382956238013411057274797002695456096626744098790021761351693909976129755623621824117296593461703030554903662884872180418317816281516965688624467831406144848443987525390443574726219127702917482540715992892410369579471033400101432339710911911256375724268939851276563705508290660889946214570388467715462812141921294986681685320269875240357972771974368108314768919062353597238958217528932599678688528302263095003803127701556259820574277023293642222495423706608643492125656043728392387912761513157613675052835378248309744244007795241791109939693578873316604070273352207992511501438884912715237736453316475273083104793378021206310161144773882743709564849322085510979137881354076389923178677899612127725578865248531252017125483273633715652028652482325618518566497669270484066884007275531694339312002054432615400896151159931608179611115847317845637822686321364616933427851010133519483153605031991382798248404219846810339394561840795118638334788301217150120435530114949696372714467882731593515581952637763163747360969081959962150816220996812554808625306276009642131122470714343047162250556857843088732640937715034111692086417769947129937629361593990238963519677349348671512264924723679273184689184085316226653690212623584920312341210193375733537300077076128608560379819452151628588471026564980552406821405517437523519354781776104673603095203082640085369160639676252644492687955068441201595227306206478782139246063881788721123268892528340988751638546978235656115428909055182107607330890284157184252302321911230643541480845458908773614103148791069275954325382120411045436763171889144753635566745936015718690018775343755715547762215376729131843542456282104178465878758368075292010272059844329296973467481346725621127429985755010950658364156067732591463025667087281201205142302808403910678710145926713731892590683390948536338100232688615463632363665399470770266861728089577917399536824143907261799446879897130868901395399337688222953870549700593492987894241824302808947902697108681042565572685891409675641460548476951154734891641328155461231547994135546916418844920568172943098680751289346869755114851787535609756888410726320116519122653493548992518350530889371123730594861728970132347916786814398486019470314158002466489066763012356094025711596781724368343252747697353616098507726162695646547457261645924745501559189156948614485480683622706715719231263464196429889131401561947756905619730654406983962638206392756626486001784286127779263316000868415163394562571025560820630546054052575464918485426770081012826159172764399757564881154595248272791287322107496180325880538379613955420813211756437177563174505307819346035213970009315604641216032522172080988531474097415531815914198681097960801501409095895110338778489070459582933420278537614009015743053437193960003366971280090433790498609225774403271561400163404474702521815018599959617684175048228875064014285998473253889112889793508211088090035290011075842922902786157643826734850787252562163843689461144905166032189214022765548907439956376189559348677139285467813519262863680026537135448757605865874207356814055963913792758002627969943153623279657257336266977886573816796839380146343758360812010400424760088664023532921494401358877502646038261600811866925369753520973287872316223360391330965929412009014442567505076391451443589709196222155171022440131037934386984597771817694687678478389029321205395011160449489402928789858993721538721467159832132811577286355999219550337630588638111565353829554813813603470769957481315763820018066955917760491003759774823066301213887464511866316758467763956745936697967480786752095280090775234191714711809193203522485293286469969843861811111279310999722346078434543528019516992709379711998432436560674278201915938047981300388604182527872206198981791309212267090947253533863228075088069929215551709562326784738344781773680674697304421913218963264888488441128969753240969230052685437204155007326077978695188189643201623493323885104921652738663822260112886308266137397238285533178833418827253386198183915967929959790229967644384709126654232041690928346816814216543929768701182210284152910124289577571293483556440973345491568369685651364757831396163359250649157262527086139801325578673303600701109786119074692058532155195258534395155609958543256383172649883585283358169205106406721420300454706061900752424870742693893934331459727580368947219341197544177496659245026453980904231257212013271696991676907146934412178538472977878555559702950173246238024990385802514869410524927074748594330204811378652028469760197236275568594925807641346372109683021695040145564068393199187438127729225063764631754858055337396053007233104273730444065968566181362905381997003922374130287292788900590290605842408594537175589725875381923512071936450312459590512210115970236879544502116556728626035697428935360937620629634499399866608534864764415067786376697864514304726760719346368166612703911572884122041067374105041473150678975340858505845018777212327838058936077714037084486839719692147614812958922207728567977031168854878235001625188766760348896549999916079544164186529387265303138313618800787016222102102655610622572992982759639706230660956067864052930199967292486402725754328980890678796140004383700838565985102677255862685302139535904886419133898726981450862076985027745207058766098688191170183131062719490223472977361748773623839389110825816728245022466969660360932282320196745326514101559811757898522712665594835153126552060761618797110372390874024527473762341338861402412775054443562102050680321414104202871058175940331111282371751857931917023466025866258560424359087494956624556240354688104125119338437478480098264015241735412921506715876028619471984413301865396254166388881345436598758169336940298758499055139962045605845904510583650775569148552458906521087635111208690070331635745016681462981332140500322599122762085912783253585179820573148680098623413634235612955136641046540187740092258610052401081843220183449962233183067178932805223253675404547144966926004593591728682932377206824993497565750981963444640150356665249178667308483096320302205478044766030118482272901919336118103296035987351264083897518944094583672464377832994979593538284410371993015625599792053859154415658539288619406244643378367153596789857910123102078249340630650343202949405915352456821328577084934648172912632452745256025039127151380585358812095182064005157251153630479713708952588664395238056544066883719118612577632275276386966753599079026576050068752489852431954208661874094581193337652301725439009934501126523153074949739286806489042627923586313170981076576899826566333262215536084869454775953002835441520413053488336646892643874063399600375602332432192080484038594109768627589311471596132986214078582529178218348882799541572890556914058174985571142753539589918952905689768743683321568922582080575434601649400382874559453531656403158095270583283442536708000103120192577047223058842514143072191213187200027322540327493498738107639568125707907489132749492403794900829332427958585960717076134378875792371927809079018142353196678597947822049270624967790928298138305274331771510467674300392735784517526813006376981892846219389565152238329374615296624555720197160088186296356200825846320401693618487788270642449111089332557003647573394345429009139891716368317639374865475363981179260664662882096997477021768882873566767779747786013189796765868271529448532609895779295828844321381892527810932004992328172233847657625251030105273669026610414659770490818744092146688833820329302309026072169956726285602421176423261248207568411271945992980178609937866999638343863262237236543961398752101374325647549622764167462462252619874560446326502307568897610463296652809271334031643341285513844652891317938349069476653910542605598664496504001651910536471982920319973424556494018463898811377045305961518334135033193780234481929550452269834411811147149230706351220024795295054386717159540699517662316209408600853417949887448601143160049651483627231209365447813364964497905879492835602679429761563364705461277852289958022130898298544536927855674165341460224260362250120541475312022950933164258803988575445754505628980158812857945543107216224834336769068815003811207560277373862632074720226588314935036234284574930931285911976420027352405265392626985134376339590424138217397312926729733102561497413753799069759040692299247129985089895784874392803294707405334710206885702705456307092394864030670856972241275031827145794572446625379111662980931013091065198951112582218330012230558181841313211633649950135199605833292257049931287598091389966216465553197900196574480129571767550643082191656223688016774601223424199021162324127642686040912087234056560747072155259399639261436565737004167573952831403451864808715890366493931532757976104824064948628941796887755904149317555737219929442863401549200937978399869493287424965372444777590990024024602478060631184418290907439795323895070059803454094264868320332887124805471228513781095264890300562551154524001295507629416892611709238520563107831975566692132279986271370839726632098479417763676098938957488841067642296732316558986093775839954578198161780377738448595201828936600453465628962253916741243429784747891029130879852878981051043016114354958999137250291269091251277803721948664410269629993368346261055252227615874634556479844605058688252704617244788694101028044650089446166682933478775599003985338046746845985674834671248342965142231061585438562767673546882695904466523473282839338407947522060536428510141085477413586557184098597460756168214112261711961361903638663747026250146884983811120538129251040644063392080984763522334851670292921446100868289323357670615452494856569159860294115486154064220276404688606894296143926276936391281063519953293308410212436509008178282713716641888019233214076601857435038260275604236302770274582641498252276086590254503248836354114271473419530695431537923010286379891873986262543538861075250337863579740934533614286531971192387944068014534088205609743917464889673891991609466913431152420189082368855789059227202036978026040275910063965587106891623614319048651377139746142619544858787168726652155440129745090935522360251785182894598580906831312087975610403867485833199051657774212330083967550308532525230936936535795922092527077263790925562670709570391881763683404620520363084030519001867244244738142677893063887741819164063892788875971468947361725491260332501951724694094692313750744687472864147347368841574528300681749499096075080133610699585985068371166372054503957261794533508800086263902165432772272965454679703272903340442979397708865468577795390255777617260704722222887433738566981695268001007316728615060559679447653129656528899152033569226681263056889342779366929834101011745719706023985528585605498020977709739547964296651384811384391936251430709179429900455580699080340451935810619932902369829374140643011818716537589554476539876653249528388452740523628414419358403280087292225213794770904129622408851836172023525132568735784463151374309000713835868336237516814112560024722263435082795257056277938501887216537172646230218705556744432990683808399538763396390645899914657653637124192484598880989424859814804561332620606783474967378603292362108260134008480274021039791147774825735121628492311668545042512255827022731953051449911209982076607761290461157480359986457123851607572597003131681072875814672102575025680114410671869619358294104424312343788729264410071448776979078249254707604332412701845348947121033505983603641578609793596040395558329750040772363093742363311046368775236623572763344836115283142264235476740621151884652786017727697795111272833441340504301651608020354410030968537919964473647187071805758400432200559203448132488001474998210630520187581605982071091588140874689147604075719749457356095388192994434491493313383681976870070579405869971887973859373385641780756140838227323347802235451840071909512424221176711308347437545782971582892005675713609165629717437397085257995404910993985502923065508877396097704170779506468427649504815555460675319255357705423639488546177794672303562593526226846988984530513907912122325215568921266313537008790447709303328353899084265754542182892493920049943729182422395400416896024645728956471942780558831862601057596258455634157075950618338692293733006482823380521131716101013249331896323216085409278231447890992317994491701473536423628001109793888642831581220646428846636695477530698389939777403656215202146462783303887721454227879971724990037200000316321758157309719777502985778226385577461716787271947726090463789479559036258284303298317121776537359483044163353804426019836273472455428826818302369344693266923326480335480495642596415712025464627567801975058210260552821568070203332686062681742644410088940361980517436126029991730175319117449862877843370105225685329350753747644461184382080656802428019716490534022580043111161075504283683496042961299653361581481703280521782311798446729653353632786161041138444744802620840614682990601501572741960789817523944139753934156499976309394782209696789619749692456446427067991604827373092100594061490139245858522354901348491797952030593258554466009852816039914939186774962635348764279290566418083394330719306701958433041763867664809953424168690906830430696472791530505800332353353065712050059527356670446488612735004163832976457054739979802543443523738315717486331341370131810769976223187419201354255614873076685109959716893688301307762159366855536253149758172452619153874072418192142288198044651273203831908328187230887810120365623246498122225367492070505133844622452825097067569521029616949464015600810189945555779426097916734821237633801205568576864304426692041556325876855131557793543282435157181792786428876585738223356608013174416009296912329582659984301247448016779727349059717796664947155094419914949088492191807790282256836747218314393266273299605930892898458293084038789985933688673561521572252878134528373579735125170684217935932223736231731410333720340293278299745378677539637046878485986184687273713837578794217799324376321061708606095077831245504701126593519639514676207456982617396409679288127492101841525893957197525189899965624871181176437688255277873614717569918027722248247837894919475733457989444099535054911832330857206672675021133651250375158924664407111499085943112331269881685723899462586509468961142953345364804736677807180456521794697987112601650520007737600710657926200592784353543771392386033887894422693778627012213507681389826623555848178075134235049657098581614232418919113864199543596893853944495006935126043295030455554173504636014231480209076108238470218094157209235196939419784950003184804002007640305084414356274298582535398899788993635958348817549581108417628970927922619484315895501528220552908520495637714047146777276319447331155166608765646468619081343904724780576627853031245293741124638267533424800995996452328558126888471788463245940508558650017780670981474834786595246809977759733166054194011160076735394160493476911293387208849154428626426773411908904964298768363078118223739392192509348317556450248973662914220663849091658938289155711187633441552357028341625406105931614726705484736987986257758522347103295146032865819238584786404557225332361183393060732727490528282605538501495230170341860996794142471401757073514930815683521891602133109489326930803032312246941968366142985216275177973645343557013576888741744206059159479844549854134562455183300447334559379002397868091820270737813038239054049088178191807316513175557737521248446125325492812714417161615420705687947793404221349644283748379104914948843222436947233515268435207843622430085395400963887317431363396319132999038100128438915678336437393960422755521049402802453154963330324967993295311871375928320133518922060983978953155130796539639990592403004360946395386776165828034031925299967983107894209728453879626215213657521158665910177544803930631679775960018781114345817882634727098267945486227552579895712240569270202960672538406064215185831529451408201504119721569154828762070910348032100075591529965735985904567431003823462038732507967230932137206147762653064894947894631919892877752547671851349547154794308165144584797141960303694161476178835231192549052771382670467811223657049256947807290213239773295096750243710735248365433999768993848422261582938323094442966403270298929898106327947367683199976755007201265321920743150062140504717143192615825593314601914312466634155857201834766382431769911605344158914988559808365386668056906346934709298847900935099838430246480447387103518945863174528502552119853598312796160205316438743164546805267571708636667921351819586872080063763331587823518430262754714283436463231768700165635325614884727741969914867208372518524412939333658028292041474769280846049961664113135719408893762400341806376941163164353652160580740164931527025332338850620272578228349536818047172172056030793985996229009814611537176532535959211914412074871889090044859264961386184686230500909153136255162663562139027615632289329222165814561325468322611300292327381454146097405461238508833749561185648518475599202001397548473199566030509612383720516807486496488129384299846088060889276413162404842919969362398177931241604131316561290974343634887515792346457079659167347454288770846258377248920019286429894053983689767491607513382448803473151573044827215151154148075012379369000950638712069346681958757523159154441427414454059130905383077106156654388696580986183594003625893046254433893641596368699529981440744506716033159555241400444388242740522784339931146323970496940160490607985350345085788208696577333956172433792273164996387626990390607788215104119719084821373582151527722723209552092394485001355638353981160150747840542123171844708513073088541711662389276100491851225682865197105536690528464331647543459509061392646513530135978052885877745692277283190208080782737645425401512506905216479414654910811312535314562656134316814882669328342712855962249159207120163445365231253482703658953677000263580953771089583308824010986473326839041097163965697320775504050538260300042032292423486188792023463721215110844774048216202330359789949419663223088494794754285062808870279613006127895183575028787458205179504896109373022352345195345653804305813954855851161877626152805798137019422456752712962436852919550478496451739991947959500034459808382295519382456879784697534727493859947353761633275471450709395159960952997659827101905129079970209052382653706233197476342939742986450067186172046516209924156567336661927213414107420443271907668658977168426873726463842236994028969248821958698070685630236419976345837652280063091976838792642509736328505477709568788877429913770640925534543165870249491876482640441936561317775577183091339738303089037039297261849015566413458498582922381360258956004944316741003895144871286010968128550425091370675807886444135705542637961292221231188150150972776589659371337769396060037058190254763674753857681945702073692199572719167926486082922985623816584864926630915305509482689259062859622289200332692754332764514211917935871276027013430868808442156992125159614175733638872992696346661501700937179930694873285597567633686422472759593074065912162791546953570423776086683775278016567208066513936775862220940586570648361663538760297108527851842088257730428631228648448397602944768830174541162084332109223591556293834240188036480871020565481877129445362735015470471996638417653407223891611184597775045277571179235706368890155201159274555406565761286205030673328114092617503050056113778865779047348847735057830497379090491264077090667918072231272108550121530381206660648114009619580275608013674637555296419349404068149640603166722048395886532937919329681901644550551339818065082572472919820764116678307089598868552751017107406077206582513761770597867558372187652330159972768103071036626078091171428395871493486344495633815762279681400474952541372317061270732001574086782004176274129901962850168435822878205779187492900262656487798624364431353735968426400975792757080015131902981012112334763683559334215618881374836731779347855624258760037166235388173167091633905028114385916426064257657570819977846398405999964042376102274396386549941837067298625277153174127178302247289622489236352625005749496529742626841835120633538928688593588703121494733759828283028157995318765272923781146289646964437831146636866262306727633379383223328630905316343445040252198015819867224720755862762775195591185247074535535905366674685706711733946042760033955959523762061271592952046469939436823352952806887021574743248850764967946555739343895802350130259991739338219846717170461417291828736983445096077235048425244151416973202959073248990490347035408545213738062261595397667525409185172155762044879632201978576926285143855286628429504145776059818667151023024783708284780019658025899100524324527327127592007233565377823189424292674212664689238416146913276752680640324385433526473273798226745812542147966666119692984861719285072101576114700182375473108850501545871823847476958957238250031968369455655838268002430852754777619581906739281266789087137789867268289664908222020127133090296976352286825034297335499158054407329883832760228653355404657028990557004786783217200665172648413807701854338095795288601958554283239447858465715140391375148464964311122084927540612670314349889470849449706184958691967994494294708001543183522243040402138841501449640388021499151904656694380622944712684443419247674277805387012760230251313243241767167075086738532429778254921675554052133305802734999213976393270887507355766973681299699601502483666241959479679366136029385971156183692263457501079956039644640172563190836811701014837345025645029831827533008092748075006496213293120503536560973405011831737436576897340327058564992537903642191744657421472576400046213158148794107986291652708968883478180885739180727864103860225501093918749256126613178134180506827445616947055116732226471339331540020972167174084738495483479131910540204076115783144024301007877304280880494572307081879049451934560328899829575322642585030738523335429334919545936341514115992015869194811674011412927916051895411255071800770157211603256677364602801176313506289092170066419598314377026094207822634022450362813330344801809025757643389504647672499537123241678781564153029689345439775043064805427347694187863608931117247603479230470501487220805285826293202734460142633469327391083619145098901691589910447179127278673475596644257378420542975611179322899808769832134104898708570667421085078901053121539194937414317898729394088458460869545447433829598530617558540708583439571566478653097202793189888416492263324847062758888101445681978784597221787808515330971094017832348184531224806838649098841587978295686022571067297807162851974998460288012291660747812929406336814083679110968182072727319828919511314180825643306898419637238382089681983000149095936729434179841149802998997675281947580051914738133808494302851329276773911690900766704237507572017795548255161717508791777605763466536566133479745881857323808396518801484828185350493130528366657580376164397023692376261481627939047721821869290664475993238449818428869004322044331175292542076542660133548939358295410636593750269560124349651787821382532504671231958303924902570186524713972269939745027796492450988784489242236967583754327925604386567690881940328851085726374871146183607772076180798583578107165111180374385214098106669819719780464967424767117732463639800382279219942321768508239995489818458569357051024551777983895825400084012867898936347070928626617305382595547158454123408058470627618277550287120396883454698035838589753090988124454569099726278402378757033491995668339639411507873298112610770012192900401155049129552207293074394484426714573500463522045653451660856530264185115789237611600786442276743828948278917607049377262234806190720736920656193195897261040481089586657675494086903002843709778204113733743759953042302634938343787711058352110681816881629531284741510605807049373492830681815069454633009468784052524462719718304677922398291882492692637072753943384059364050153362251265282626196299723120291400238457970016275113352496193015665535342978600820553628243267588170953967084658136202551982790590189562218412274488651909853802517977314502569552961367263957815220247948408119804935774560379066993702204698155557660742831782917592812259598494806204034409756484783491554195596515849300521761665611158596782517251845695166340953195428415606782504568400152432360014687733033438466858855608490438526551936201163253658463271029276544095190593006347853533734355981549178472176403069249868548299185522740525583286597684301924025147256424053180549910736552105582792301445845913604283858179115681337182850417308484725237605573387373677776354419503723819162296397452399436249391848091657452205165921813788216205164721120305998035837180981366921181913669082979267750368450572836348348927045971472004669211940251213605591833947367358667691929860693156779795044922087706787377934031963754467593193288571998857884546835020771264171362258705095018179636787215403752285407574263132062558282406149770835990591706662912840104879371858067251590114453949810338203529931522740691099984643934177040709513003854801379429726362357331092132169980105532135451982716626707789015106432056569362536306110767111504488826659369707454362827572790982661218659272773084875625297153590453740950441762611344689155269199920010666739298360308830138120580135030851475864735975295578126222502743714175767492220789086480110512760001867711712590832595714724414199040151791819513228097388445070180538439707526542554553874396559193603086912538907257940659355986445370275785030769391142521025928350733035371355446572483493645643014356784538275594651570215797857158380619941226050791079121684900815966869002066749334276373051171412530418800575742608258697467616844689537242731239545361953716421364932280083311827038262696993728659371368990524880533979287922041714246369386401208320421136679727863067195464812512719608071545379100629302610751536032470502589582085507968972271540513162321108551590825865997522652067560945379012677647297704764029243428526371144465630676196676493620074017541121612417409137633290998818999047422354829242831082739972816490727965356372121356537157876292023975110298869438682744935255970882893404969227322119018228694628594805459322558056804439563639420381488478586840648979789090217922827793946886094957300092978918477132529266818842501199657995265854967629980024130484532499981794178058055763067921082844305154914581607348574653294312698466580371910627741490145409223551557251426320633734405436970870910962655191904398890912479696893717248018113466160772726509164076205077803240025486044890553339640369283281941677689373999363391358674722240312012971454559317355925783718953611171865851945769443629416967834582473563754956427110507028739870088666513801670747923287849718088545070215759819277102296085766227774644545446151499090914476887075276417051523773136066581805806393869214268601483657004872505347698322430157760291358507685703843069802302945083010454028834576449570855052484173855717509447430869747436998626371868263266930709275859228137249593125334514472084007879538745860693100800060173173718239602743752712592428211692972226208785116870562183478391290566391139701555199293257755060853409810139881807041378502528515660130274724515322162374912160828123818464851426954034193977150934951599182134114575606897755160739763709499769385547638231619000551887621077794961064502277403564807903894442874206863865160044764782247552957576409998762816943701963226982951687287333415403174048282645864195658285071423686911836875045280494790678828088138058487788796272043535473526180849527383732663317470991245155477480880836909329746841586400950553854496763826790548428266683198709036786921068644436422997501846013210608803228057497436127932041520683365469103627526593598739304833496279969921487355282359248807825277611594791303534672312019788383751023524068931030823744570590394030369009212099375618899711884045567768292971430691114382949604339952158391209536130141078625013571337755102038864082592164671949724343396100219597713057924187824680270158728034382495314186235980638439406041231003710277140349582207027176758976577443175323278426505733819702981980031766373022934055917800732970311865705710756760478282012488979808267747097180610913457314532404116382825623032868292608136736834284979654721178694180977804846970762421119595728939218860336282110502975703268487485164984900469143923921089676550062911978871353624320549437798709403464092100117441658183020616249595191130251794958946712335387560924867984250171369005140703376803532540290245099893339570295043706149167796471006693506112503247609272365988458669304639175963480508252621206087147494341183832495279856101217394458233497507976638981148978061495479549585250703081184320202854944877697885374740471853159168911893579276285048433091920858457455002996435178141797033949899341570356399827084583293475703864941100843350375366749525385017232086433548798825204216028174100381283635797295913513593914506460453870582176824073754280235569904263210322526064291177138333667524793472558907766659123102090796234684213377746281341432548305487433028365945177333659483262243391508811146209449672614326432224108720084403758665511109189562212348565690635402627491349113469337069225271228000160129238007011792548950272001753829856347675256352962240557492217974082274055549282062466129606690900462905558316582821876181887162437588645533472577088120237333834044537620962804286572365027248297605229133067736499574817908664132426420840889918359203133173650679255545577270521645212100209957879943072253459885831811956005191943966839646885379867960307679633369592887637522471131062474718978200253480049624356852617968292599073531749093566071635380870977658388295391937596040939885400849939876783817630461428479591279348913144701593045172074902707292220261994976771937940158271062032300020587752960862135749440225616195627761607426665652338332632651263845582472577819301418454667650968797912526774146176438189988388928796936073448809738056485973495341357994425249787422442120584963624406649352369557810057390485408240182988912902354958277693944618576397989278926632717861349625507343643387718266704464130275003383019010219351709787724445940088605064131080347303047749188674793072720468619516998369786669730499104457100647772971509396611954544176462270398338787885380804611908177451341162165342168460723082211319225269963237549245020147051366870430990874047579420802245666605573707801218644659666332702223531939801156847665436777963536972547478435143138200670228162238398436709228015030238238789340686892539176715255704509454586243362857261535673880359165515961410082719979636292371481702521161549489654354359196062621670169810629145898513383604137050389809550303477528476123604224680145807718903716047819127092914319686956904818564778911025629619089765675597711658119560897352011406086603085150760469251489273237958233616532215795585502724549567314987059440907101795643900071609441124859095940311075286912588216084492963649248069668757879314919171444625549996833036772066362255933767595214714778184984894624740535161069472459073972674115940573112230617634508924610360797023676492299730250905140593183595568151765187015077914795402895159995045233901868313619849339966467511050034197074338416601132947707754624944147885379329800937389762233636481319473675993058657667217820500296566953961850220602615543425769128075925114388887548000005337128376503063625895819907082368321964491246517885797716449071718045638135197360280260058418720568048303152788311509311262014373981945078350640115200656403760060161978582340196234387774727250004734199134401114886743016933309630710459420200065479027554814961617699165229803472130914112650021439178525339975820595020619568510139533331101145544243060610121772502030561671218233924211804180661668765112060689448651333787602066228633213275673307677188220767867057244414609276140075073466296804321624988379702822350004444180658944070223883275217398190178123070497320530304020535000425217530744629583421766232688466785084927607903021946050462502622514462228341514578629373831446116224645803623523059946422123881932813282526482827858790425757255421206953754323036885292534973335242645723219950415243950141726670248491078097236075132601291901479384537706267600343706129958080514214570352394892566114504278660555490195877051385579411567264253138975567224051514988015533595890051881657604000382566960494432238043952945256707694714368645750359919381629651922057140704050616471020098956534642362871638025248783347166303846995377212209005701330274434354327001253084759284907097645910082241206130123745656347082967862601138773727705452622680197868830082618648659639504110026921780761416334570589444718781559679285440605119544384964638771105867098947440924416765766204269466641140327102116362547337194717920376536112771040461387318636919881107571626551875217805624988716436885731284281210559797638645181858796428983951178848719572667595260734342781334796396746905793028119605537964169353213408108128022318775749608777364914795149425768595212227250601463914654066273288184814999367170249456952659912460993278297799524300561916032324783252269455723931366265237616049288817084836154869019211510003514396846956617304626674218048830179851520389630797349636392433715441218192164168172687684991745369348085505942736748945265068549187275391729061085748512339234091247218150185611873824745565469646945046480574448401448437266916983697134846580323821588414007814735865412755852945913913496534129110126117951329786500754614063890454893046450601338732957569273268167830316476152186188981234284946464128666047335649625949070033877043244097345754085199038849235800428142397196238002533662616854740084474933357430496911236606190497031784663980359963071964489004541919253791305569340249832658897068096371813280745923003563474905332549083160490079542887794764173004577903298406215381149421749206842545461623885289169800987577542503334412636098991006750049456589343123380626210849396231819618965805047539658481103030052243438102706042576368292046859608684568578293351568507549093503980295819313452266407560368233861143111251073448068836462562034565508939333337755751020184938120532837103495712871307813375784942853962986684948456605358909876199696602068937449667222586408534672985600136629838461504528507530223176438310790503149355240986930709569461462855523098245672346789587427834384375106703703739117185647127112310246409991907689881245234904164460775267501115369102698248318694798349959192468012159708068168734093049786528229266472913911429056146757762971932848441026107641311091161792501117662081076215422030761918756186283019623347614227628779556495132901404523335601162248776826861075654117028424667026074462885472602481312775337901835896970147771080791725264112438377435321478509697788988400252593096597300406418688983384837907526914283546473410602196184260973098586446187395495790053920464380962098268848047724148075902402184961486333382824559039777655339242447515240306262800882526576738726545684359661105457876149764043951358352282974813303285427558822660281603792378303654608619857456714363698651779185767483155870812334192363790069369960151921750553376258113249226805858879852311677793755981358620002062693354265077360343748208702802210746187179449267805814090883764179929460251963541205375001157250567724525315016510740596406991522347928369293758434872220002203507128476070717745932972304228086677791359280588533120653214029325725332822249884321253090608266435583017931129359672012486736724241654301578838236791207692622201506498951670918118801435919701406676402582355405113654380109322380166397460247421082955958714258062810472288910572093508874006345758751018219266656078189688143806941831582399899183300331186061055759861254786229580328698873554122593488243748080026097334968639581872242550277105355376205889470658892820151152907553475194128035952114442242678310573793213661893720085113824844428420284253654043408981808144422456331423883189407417925414147344909305986652982097847265317545490701293307658504022923809351351610516192294320798089939763767238440645037620388371071163885439625187729215364196004104880702485655706521442268647733430621248698473455178598504142444208769460847933389154565366246209544977462104977554387970587766142714178881631348562711611548804892608833495571210731187621191154644599928812672223735022009982316669897886758809440809678561955777774480769976570003622599061817839001677017965154253841233790596680875237791875871782110139155445037272282298792468785061155790112931510360359250062818265423766264478909313614625890848854369615244185163129747995651262955198390703101454747744070507871680289809859951069192464195713511021706812618674401465067283041916818911636412662528744202601395411327801617419396099269990756396532175170860774318886687235732619564340950342637094834597594664448220848986132315154034928131341979969606664399480030104763504566004202169267511856064108567416659687918450532689371128097575956745502455673992333493634589127746604277459132617205572269613606087842902822571823371691563373660275444425156914875006669659107044303365742816057348255087899195692818457360560614521110444291661409242551882994442553058979656902542211849138426934911637271698426145369499982079013285816398940294779283424160942056076441345155441834821375050647768166446546941782052723525716763266565170242260877136040537892444207033443086856384073839436386083179617477891403941347111273043543151010695827444711615121468936182186180267879168202984191263035605271009303404042700722026362664571850419386742120332114704102526389115696430069655153146220122046475300766010417838175566191743537790319152822605808322144333829146721727434063621892377171592655975310730425633695266608735902953247307015252899758691391013237244255467354405144704271583978424799446709386920323841665388856420273517704385384935642691222675266668949217969256094134567098050116466016166960692659166977501822057762802218402885189493327459816117851713507111624893293985719709201126092108729259011329734411718881642642067771837812828551070229309187211319761681639152730120980126492516833616417349638427422515452612072933978073846584139155231865466372253859522580696890191222121010286453808981126551247654732057310033932797001120973373924749412483335857647279716533009648251240292091572631257779189628333263617144478619962806092574655513411347559925851495628645056169060466355994623275438776014513555447947510581377316711040992629517049012742479975488730263721863555193788030779021950667095161733851895612276037954670833326540390687969152396738813970905350297930358260499740635034006339906278859847400780204930072638839037226387777615904941283638369293815881595707714502038431708064104321953861693419221173471581208431442461061874107597330298230142111328675271530226575543815713491299029003815733969017930785666358566498415440147343506914141249718591983617015304910629432283897510830511156911280603739641507597163876798684204707848000628889900001182388649410256063594845779370317324425362873620379516347051406504097631872262265913473247724814469154375621843447561897562562817002487077203073789289525964465186138349389695333640391632583609512568480285661523806443063920410284037490385374049146945973649186886274622627807093266952856662784379835022307682689345585568335324044717362030414452863263945142676631765438280248062594076909579433140058293594939658338527699407072473812316311190355426588476815733051523249045256409141547413282570460306791457604279994154531081844530763489489683384443892128479813086739084741179305967733434088956935141776025652645391425045449437020297374080441187635972994393776400872309477528211624545959845412466751837516344262223026443843356397399516565131463980148602989946058275499282628096145115870356331246292344240442001685358212473576925332416145274599894822460540868318185261410882805098604906728239792693884155352357243719898598648309101715854729414901727862956289397721805269094722149176289468934984770606006772411580479958919055079474290098356976521410563751931584667733392449029170229701804761563913417168120105282923401040845936009478485445546356323439940590044111414091024895706526356081772479455015071261814224695110607942343448652238106068873277347781782503492631182560015135069336840358780276151757743125401801599269539477287513672894136876304020524543606406518237934756284390095514375990112156640412585612217531704835612448011038115589425464830546028013462191655207429125450399277737034028482471841327612880295955879600037997738347476161488071264553428602597904449900843367314109937474870937611595345612740453679408851466677223166331841314623421684240563104866151588908417510008981612023141246128086283938810849347516591962935329032886940361803206532138479872421434508396688977611281100675298307194966735550738921389694522129162105035297989479570887741138246989624869585888979943333315586970985881687760411411954606198348429136900301407804388871590822190346982004067155492467686696425985642918944865262747286299821976734914828784090020136070827621722528316427698650017549421396024955012448886088653158859025155792621707844713322710238398873778890099510459332439877489119587563250889893843824662053336503958494954526039423039282837761253213095510845325139681459049781007280480631081404841475604834687053762323452147919293722616725098823737817392773329361301771318991226586147816750721819164319790684117681027906552043134852549479152788314881384422770670778138957437592937054390023363461307523844223635382754440860458758589263385387006582474530278406409899993030530344527729246779705874015030126259985288193617830865815390166256330239202479937908593612297822303372576580878558032718178598281101309124076060076349569572898720252296350275110616372005325627878057925191752292076780937598376005240807157283990040161754247914931032221207034679943791976842771444098319079824969252928548246779415411435372258719739254410063239948326181281106717893890077546471523899213654936884571065262436912590849311754071030442708943941959457704375682727902465124636789328420385117913417812157171820728080197186931327385331382045419137595961187177820159795012784537526227866953921965968427311287326650999053830812509358949923005876374422519661877939969230052474965357537946234821545600885424344697193966137565586389479400911524721846829586168983313797781284044907062074169599944941310153048657543289644188861094611502393450505208986836036148254553761254156449056352403080462371544698032042979980991158795099776572435780981302762679962370100221417892635762486309688002114428735356026441882637363600148718603527426682055003374047916826773279637141332557572042654225280510767208095635548945937182003669793863545348451787973525580589003973855130044960766612286471016308529770677266934785812776890089792018958957262434910029289434217439639582006425843797353176078056087039102597668394516430727971102443037280875648906806603915375124469067551360441715637694421335073119306343977297015993429376825689599977923312605154616572266327961752605693831593646044190493718687314038302945229978180902095980398850045799521114386336919218877473314060206934579529126304459046212722091468203419795632790791182777066582234730062039775119693008157209987188759806391861076220552694316536417838753436946163012117389908169358745602263457573220324645926724243428460815016736721157834753817903220502882961035627819638861143503549451310461891821793276647887890366825027839901479256650972674799950400349463213035158113537074518191610583243454072377144051976786509130946621635440852858941337151066374413017310375528449095402826663104100779861031151826706864267399696906807215649691308618194750333866344549977722339839441762435679812881576197441946326107100803586705924622936680243310724611670211248583963103041037844240206434274647548390103923803894295259008092177992211774932677912664183864983943965752234024589291258072068506222481550085117782838882227595848587201159482833540642385206492318586086809111672615360192671185237686211639880039393431469632667894941847060465550219388901952328142963153841437378528982194822271876523279773355488431710896466396403849877989368445897203523697247655708837988772419407315454923619055319662676277547117934417078981012574955426462212716449690086968456496771536343996931389509546499464100293516804506502991505239826181930249479577318065331539012471884208441517481886618204591349996474501083792609251131842574763926806294024410009189644508098795274357817140670257429433464583904850799543916051308639752349882124768623616830950414403082919886758157702106019877814028811972951144258164463838023111016717013930328557020909408562072744716861413296261510620280496355605252134535455002973153353934918327401390907999782564226172687080354830263113277805053133802410737550348228792271618224112375759535489827809164494804990234200638935409244262660694618241839371575189758804855197650390437002295807043175337786784636673612201461788446734748020749747298955416809519965760023465664874364968953557153259879803522661405426491450590064867604120854766295628306751471452496484670673129745712513413115294058532669267476528356874276852652351046445571898991487326414025390871137545704573642639449442552662198249827433458471073982335784872068969157701553228482971438619091554906713351440880142360626626243451096953971922264453345510421695254779980302885240338587677772759651556844035922269122630466188962367699454134089883296797892750729475069290509769785879444540501688536063779993391066545648715287760355339939109639888167557054180111261659279706741901878199538723824708786355054546294608000228144241121375394478400148639818392534738817864004498601925191095158287181123114537850491924144713010594607528961842517941548927806571215182218295742503618222136388687133936720722620866705443613686400281517798963028330756547683533248422655579218187356244219065392255872725765225119744814947461499010324866291851058002853463898840648070977051932889595985725811816645070786167959997614931457956744165756828106443658980181307537590590048412346671270207764948582217534793875029702158754038546449352248579789962325896300861343803884723303329868871080967636759441675290927300316874998990989337548285386588586924767889722799496795618150111893845173334651145935100423498748798923951131888079426084562076264166099423644028086348435888656075157365444909394302015247233449949464026219459626691948995466536708181928754109365396627808016318986446953464879971056425852267585553687440780563000992188631053706700337860648378035097734623378685840770704527103085031887209644062992266141887233210565561668988634277304555750118298528299427115689563309766608071895936239145184761102483108510010074612218546232859158094374961344420646739862754334099798934117338399626164472449478022968552997224804903929836982395573481140234387579216660013107591970953123674100112675639962356658667746302573905837412389209505690574952381846052277382525980268496426210523161748154540896740209927871728975085594829857854322942851492107963666955464617863912502390160140693841798696362588775789736366210648660445153259347105916084618672968182747823074055184773810211454485577649514866002332074976022443307484281196469969806707789544268926883020111112736039852597627014984792608025420148726830009876680319491017876755934010843831728850496283892493686953184731147618969148002904540587805370805364247792582511761401755479540147920776556557332074646093840507577600827600950857219797550018992960008580700675867943322747188953503246271837494232449557714689814507131688585466367535543554257363222948700025679273007343787068157017962426286407149449966950946944087931031197608039983954986998608701191514711355226683043718709373891260378673252856404958181442746318117860599138084632920935814281325928239022499954236009877899303060414386017110983567697998815333344394964363330586181307989198950509729888083976687985564093246075173408953512586403983957482179814459458750943982502829351535443763518928704206878063525282657631624515380926908650692842959207140131636148691094134927418918756165374841469226558107418457757508899838094812065675496331120197201118173522644379089589342316235095503902983894011667722224448137608031727487843345050330382936842960523020989861892777560573662186188637302985511733128672874717525354334604852616513572677889480129351091647782251665051224310360681116279737826897704707658145948850974567824679998502428111367664683030300104676964792314072504996916380258032680566685966561029619141686800240647772388701617447898897658134776752183499582172264476331721258063364022444893419612515004881947778089936527855550555077968887594846396674837192574103974265175212020547806501404367853367617443804244809001609773440078648885044510753299797378823674980729791804691850300355604880825129368378265230739115644186693672293535993942697120098996422137251924155315828446248572783282085473118934735034723021346355637252593608248339981226609256571903688624350377811805202904472124141817194749965913930125620947799241299305860968718934838989996959849535919468981686712803342586438092437936043974240506135601974572814250195092020259995304277173299799308057220649584266088830973559013889298185711932502221712195234546416564760735181595720232545623524349063207615987710551426086984933518389176741999879173745694740816696758077280264883734440038238694686471599382654020482831335321301770319934012644487309444651037712155713418330422372443772277043695834355784252553822517917456412108860027050187788291512514394597132570916665050394924495872747945868755802632006070834719729933813357937279806492077555561801166118596512795047349505714385920278953527975747544481934901811144695672943553526953487902740997379988619774706348963095966847798702706558789209699889457570442638819074569008920911884911966935351436950173897644694674885352796805523439049032203618524177312851508562148806753407228330262203525632515720608239519914503592829091872588080845841013328048114228872958571957691099507214583916652693446759729918789195323275051862004321477163926150515493104837547216158962975370923663791872463932981064475881375631962374836601349455379527117671189879741564930291283440117182981759335161253387954814178607398352849507417276972519328774403145230140366287807066225258902416917841949252743478208550752745772560844833083203588522922271218283922615522084234858741205791945684213486181436847755140236118396732807724903696988218499035771297540653431524973486501537454779021342544419658262011174394341630239371224654386831364049399188918262152990319820932041507944665860037229275767772267644506938008219292061098174731294849243331064135841382782800950562836787752283241369108115330428545665064037602999202208339813202012942357790743509063983076716535099440382019016847681078790599353887356872876930263008692332075529264292941437755619958890874166569086336259820056261122635605409894941551062884771923923449615811131059929539613318304517175635385023752174781412470929377109033040079944217764290561000073563420611882366603814996529418259807851003806012644720700817055623719332693196677875636982839074954837479129427104140225165680928655385667687403622303041624811169139475623402316460672350184090826105138257778708673458971249654764815896402236849654516694454204639591731929668659560117531016320764632397232255370260799669925012240019914275205414962923002848465461926596675293166908394334619468349348269541814743455095252480481966797043939161113887020917212660376614604217034446103097738358859191397222086226804723843355593342281044237326781588423020526166865073940234138979336779160601547428977670334590615072209676783981007899764266744533067186650793482773545390100518258209351249252056265763282779013114351870839493809064272612372345751883588862187077925148727202200836149264032624089809149289644164937011118035296152478904442160120137344544163178638409957321226422516649511732963978175955378856072986900389268613665203763743114977006182834862285673534712063599619564958912602380029958210477541343069294771750509780748104173381626966242449583768540708379101873750304242193552805386413341744667383279264928368403330223137411137421583746186747745546552804765416101571751338134959818826428083865930732963806218092538459016770128523026290120116607461077467285864687778366549517770811364024218903307249016787258351235438502948684946201658743082639296695769527335137488041454935847150074124582721976202836708732756224689009937095667744953002168305605290274078469689773901623601969174555227491731728801280043061237898051814764552005251146121344750542197747473674837226245664416780672213778918266783320808112472458342202934762451844522191430782306345402955804252888486336440191205086846585718471245023900106333907828883391965888434357261152863783087277635407280863347079617082124223887571164430872196654436316469990696952921336456736637966234587420972261160565245017973763073733442586552824971569491314976065949968153452110943721846161267450236503390270703675309871763292418318332061437059188677464530240380570239621801035462494427068890009603524179570144173626990473986445206186280514305279111486893349161690657041007281626726714407381339648125524552937270928471685199770903017739947658782478338090549414976071863126886389059494438090311787221342631346942757468232584099442607617547013468846998402235447932812462493193531014537481981417031924295056243555091918229500642847549871891742480732811108882646530170463020303323602613463579607595742561657893155245950991926374117155194028019068622683537999843292815264256355868118775310831032992859620108744741994148318137295485339683909606176202777280925372278427175562053382481758695766338966261981380459770741262186150232974194856395391636368816210915517061363904805367919127134320796629730870004882600487025672769989522554176688196256706289292289580675229123146607323375820480949588252650782591026222617111049807795652540589844079235191151690643082774799176657745717606084021832767138049203524945629885658279056557168033645761165463044562741657619179713986179177887546574476623042110186285449459264640211778958984906611278628298778690955315254539867708235604017951931875829502102124523108856015594617439878662038172858653198885413967990034197992717445287523452638101430482081023286435692581331655591119846011480702079492152276576644683566626439786347283624758995038627587297071757381760264614904569997002672425782879024266919436503210458349223243525136345379715249772826176187050859409582364264468992503781430740042766140697996053873003604372968579835207447422142045542971559271451070356419376890571105672973008661536485128338655719689949110803251373993322163060641545245455043545375482651018307431404809638745885195613957423543103466211648868998085692156220600042481327836354799618778297546766700178583446226813548595678638670550894682080178355861916182809632691478358660186376095815479919365270372705695233312710830979448427807490767382450602693989660869790667691248208630462053351965803966782013493228396617025197959517421055486251826309185308596596142644046324247046241760460152919547173373517229002568803894540702345839188688144902898577170188068204294008918081840048979653908736762567988152854455195574942863087265186809115412693410244389376856695699910479132707162370311033893808954019667962826295798973209193148495831785826984305574700344999972332629770613410209149838868704885830290272170509434032966219300578276074508957089779663300064099243543537099394377710385620896846660569724744924957193983244734769476084507784802982401849153216757856954513506086785523727865377072539393047307388290022161103031113568426112007368727643769662659929199321718275296599121402796824416724476795413419317649374023285367692434968625464712575800754256294661526359170796601094313788023115031662032757732750033799194735065593030921455227442499699800996528379184822796803320090080058269583216344107085258682097831517917227507832757356413993648324144247298426031087765637587076672865899449616038068101137441572084065899129388123830948794260848135436355682013405751790677230668717244296374644420911352581949377800683333351285892163838067463714896089817080812219406367688549280377958375852696975848677877408756419288133052340437851560194633749094087761172251683188434235921800405328034200414459029071101516107611940022052268370146236932376360748728568365302152877907559398218907990386985971182236728879357483124417456840440274970330780032386331607020152383734781412777135511209990219746082641237929226730532864127807460735427303838459247652968917323311115799392771023933126961678812975280578355293044231277825979517313528210933177857041114150377669145381042443923247197755812207025395646912899355512294658878076870274273730157036642672219285466707038715871178216447257644900217440735741496430155926085469606694340967181748107130378496769553569740422404327843266917014968463743908252517880584171730063403375213761943420779603121199084932226471268055912812188497226115276609530739730943660777929626656031992792527225306923298294818227048340714527568912013051960828262752734231333614316214237252279846200643796740666111535125657390222298839424045987153955958729037638787851690236924461532561090854121822858748470039594247747968115719309166905169606161935883216818675723811279722402566181038387167767471002044963763326506365572613114180480780762160684598378812835361172448353607938413292865206556194510284250420809685751696306677131870099597195057308975021461232005647711215494934010098021759594769647684325122013198656839101552531682373143330357336676746091765241447094134506843857373584090840020842033392587141674115616456974962856981945549451408971181502508438105966690343977894909158653089045249494923789606258079641747711038617026931504496970951979440578169263834157784841310680843187307298565057823256532378018404158923968851905944708064236509467197352398836228854382537623176880864925202498520608265045613117628746263060241807692753862232073426271743819093635730826026792801202220158107180156639715967719049311581341608341649538395413463416594518423442338677692929449809434759724220488332908375109654441740626379695084667175601384483525481656349019016404624061302882861708847163278072843553580676454610311320623852676387232889944038136217109408619450853133934357235525325429663112592155186132901668621493412702159674192127679150545008884991506864137508087906134419164117154581338201664695360405234226702462296583153871124479737387899619097680312267789489093048556099955092293002769674219873722745104272426290737505548104489204079837068832457161070468146452495146930709311708461858735515804196115413496311182010562002378558041802629209203938181199783700531039821953684983689980598573690713427726625755153985907147370911520107682155845001174042452584107976382201382054680646812594793066641529738158190385816837447128555251266187639821653643297003763938369237969582769477497103131151793619012955526149233408258491987016528225479359903584185087355804461219072892682158752017456875991208987557933764348139684061882985975701044972891001748577669968693938649260952777568306642125729251753630531529206725168830168237914881564759578153146493539226510479443768773839024609538526372795917417592801376972705119213266908944599090141470853187715816977225428695087479361844327260438890427463376091015758303819311499068910168361200029096479813331922913195976264373815700182969162350895776453385241151793447148232581794626887739940618509490276083936648867890379471366860940214240128795646750361605699359351128708578807854266985542974028656495938461336244436711592562606012758102693037623551377425158203706846560957957473296604807982662185822073078653127750900731437202869265824958165923109122103585027219863924482114472507668203692404911701080227871819141990938572812187805086675047575299162473734728360013359559258306701565032923145935053153489425392490639759345029422765086237423085895795704922172446784885830719223312910667215301280054171804707230631161848373984177265919795918538838673831417713585150675901716320564310386960202257571716863431793933607096605109713501179366118657627498342041913747634547850388447861254157367969876626127900597889685227939939398639335515383436539869475698959224089450050064096181493741161888057538054808138769134138695213774565507767968731970500124425636987724916669130987050645180914644223743655838736058142920006289962063299159231545337279485493360066786819737410260364105478514286237069927335239446653253963415622967612606036748223832216068157376218529664622135837312706886218281455759640843890688871107481744704724770650309695648782590045930897961424554304401821121889419216076091574269465831681700280822598837710360239758327727793666411988753324176093336516188055064203140630789073985719889531463215469723833870341750377527484280312435942136195805860765791962486459009017773909097360288785137455745825018399445639890535424688548526957493675740681564315836192878951256826307663007288724453574397263011000333784860156114194306739441713094112535892104053278210872563372673337053489470483421139060009018775711975093686079455476664148059635419644329061222499080386251628316877909197575031273532197068900369566108528271494545754371901331668048131398943184308528560384452949965951882730357709231593129842676207663394477647471696643744181991854496528680042592456043693099461284975138768741078088336887534839147563484568833440657164392949149879827356870785183459763333488570380508700531952682476721582146691300642280672208392694924467822014310923601430680785783547148006261328323342811143601451605109196604381630950897225758789251883328657641318111302709250178413082942961198311964029390671836725067471048192656547834869116276386740779841802027092515998822996034308545205704767082026921489157497478203872094145425811131311002266264323065094440354797033945288206633518486838811760792049207220524010309338135341059288758238024018083289839378416082712971558785821327477411311912290353088876371087696358086198589478785542094815416908501728336030727131535710844937928106476617490093948014723678286201246869961968291117314884604073639120497448001207245579051404697398951577366357931570780540319840328715991490926424237771975864811130365635568197591908903386272083371419820959220487200359862191136884071758069882255149285944422282888329443206573738083997620027254472441640312626110850922667244070094137544032242427042498566927613943974674190278133684001403768783650313417435616515040378729255239666256607282877138988477173086220531164135384461580738467779772973705933897462633182964918999766349465754141975675560663921267441209173535938031428551916072699770069721350693336677026265850593538617306626358599164371670367348446054620152168444078233601745950943503386419866817731626950273957108879431762683969016622010960334272546002164399838768351119886007828602358336879801347845004702543491344831996340697811248696115004992959172519502557364309554328122714391192687182475262775409524461499107545861101748979246539140140884306660697742674550825420646920781771503958535775336697554164053663181249400174194866400024845644930467703485788103220993885096938272963932124140971785417681139631616076466900011351981401530167835025577944023585528757188684599140302843319596327782643386329640787911037463371655979168653972929081333424618691181081051256837598279292900883432185976443315602307359270995417816254273236288799680662810065521972488174504177026627122925564103416633218547451341440425944164521895732293004312965445895435164813564794490672804403048620274880366535603599888695511807898847517136457803124351041648738171151225322361475611167331323059659269925102315366996861615176354544843701792454270240073619061746236565865437346619776300724193163882336083259665489970169731981817715453368644930000034387213577578637902156948199996976696092199837248030691779810454681582101631533497857920730034656712654162786882015626873526750996372746110863413999008652637371572050555464556660107186049305308704709961215669748804619508738851495258158622769340412587807050018407442694130902349724097889955508233379031469572785040882836728401680759526392546014973204987847576348550795284990512693072796560358777037581009303541668541931897505213377780520985728177488662328455216202494515034095696501413850047667861268646883690754179721682129842804645354363366419292644872697154198165687007839875219735902564328597822545297158991486978560410470617297947953153139654588468983498381230915195667883271840622297950265139664881787019734709528265716423391245423798393464841512209884605330845280433932274592159078265204130299615420870660113068831167777994601679574743237282976497946894840894084777670548041129356274360974043689198288246306464033985652906827131114132577710273841429831468407954751317332061711604244952058094870741172856507530549454229697246715981824224308102278653305808498232507064497644030159817803968216662735147735828245467844046392334862784462998956190756927621216483211856627701179097242557505811538298164477542400462324170239712317999385175400281660453073528459188682424222917472267155382778855568783658698204333820456497916212408821429016355413032094134617962333232775934150391022579991766968136501540251962845494210906381664938552756765492011306106941883453676470038227807616631528819193950818836603411172698939749548934735704114228872962869988186921817311392942806415142036193606903540648027281717723540369750029513673234187381444727365378155534658021793729219647414015485578072970965612384024768203326573056770325553242493882671134014200022629542760997827187414697345477385472847986016998422313606233261296533009433143091413647642173988773869116053037177141110802972536500307151888450056269309485364832710762336446015702139426951404413442497304313253788005517370383701735456290402357414152170944312784281415103620244205878870066372890900871233357588749411601013714770483043524147726079317387741364120771943973897628619956684081243678163843666129801769368036255360653650506109278441556569575752430785375139086438563489445941935966046859864369037849635390102295313552577110900895650249554116738158652166839519791004952589177525255423325823422373607226840758037404797137604954314082666335362738878020908423995594372826689001796248078564946361668747486524952355449184871500801229085155041681267114043266199744040247376807435849649129160674850979994709790745280469752557666778199046591277192355525766344881801032687590320663409649291339191688786080658534406463185480640741954684222593698001984879900388197093592793782459593150245951281390151313936298400180129178171313541416566508220933989955652648555272026420401392938990468557462299486339383026474337033534938777305714170705132007542535974439060624501069397552678511499576986826098119833436863260864404623915903311014798210428076033133584478071691873196147206180079315023453135295341508601291218251127204841170191288938724559752457163407085040183093998885900850958630893914725085259169132519546160886526089590640856475904498357583451077621938419484171515705338918779413311006018810262140650542138263455312043707502222802960732332327730002924306900016104625004940137089301032492209821394121198284020285469306945053321853352262584947944973336823011461172146367489484798236298885627563274893635952168027907665348777837789654266120278144826127374265716361732575720808587795733507649777945200467546856899848753481197048692157005101608634345661717915826118146124345397244882774385962289394603531429687779087064488779628222549606118337666443613726353869965728744821838763360571733136064015272476215642009993245760587199989800394685577679561574034904674242454891355859718027293517894609451188002393267510026635601748636729854645552493495585877088425423612729832351015921533555883978244756533268231661333811025670827363048729542835866673590473210430306940398602415020713546321963326825495267669615108126330799605041404258541991116390589751527805275539903548691269870366901599611057533203346927842626036999974876716362563284689485195364601282489455794453895096152898472592627389161593081286809368902572555990717722426332156061672259340289469654906480301509268962892198063658008225340209911213018995263294574233737628971883964322508489980311095064898367350218847834735726114653661080850405021978459245414509355253571121125756445311578292923338928810500115863538728912361918316987605559017936827174466837100077325548590015358920856233020129603320869159692777575244242371926736328429245924617181275469565572822684304504790167963002406295517095631161472902244822725601420064442449694884576937267863964037776886521624030504907083674670170850679164062305893175344887625255255348456697377077872045916505288244675742317681093772785066708645844129373198234853137106454834935909822152548480953460739168258612256500916992382475116322160714825114309249463472275762001053561963642751837058420853391971882960886803416187328890118387238886797730577379841372069000352690199663796015466398249373755459825714768490566388204229523392251463882194615017213537378052762463751833268071215471138533778233088215472046138093557868470102982807418489690955344308124187404018786846713582168821627829094444831369446611086390532993896323662630886851580078483242152107845151931656764572708209623612222287393687016578133607166938958020989079790108584248206302536306339356973626225222824083087642010878152707420255575427010007453139230170509209020889073776480239893614720979327576122022394902720134067114533590208009372552709620270750031424897721542008909782840440970157844907806627362262642281824752238956351893913483398874175827061112330145207776606597279711380857625255913615561138057555271512944987865160219721817394458047762740247100595816043913133929099118726245384631712998717724150898128394348100559722311603453074032384398678648680612257768643736096417899470941317571448912928559156908635390885256140689661753894581991660215182843257570088930417450873788909951433167878507343273411521970681999299802085971006994058683610264420830659206928553941459570325982534152137518367033560280563906399800497245690432821573615467094951367513222213505202653706470639032134660691065369722919991793758997130997581403234762204905164843022656039098823493761314866745159672835234551001171790122153551184180643377076814559416089415248897866848539837168270300994165916941749499230226474890258273246749952715407519298706805604715725115579992919923300206162482314489839735722843223853829903797774064344195536927822930751116847217462242920102972191583823164607725417909376257705990919469790368959733020421325283820563858707129965555732011434293066833645949368060105122451299345141399187680688685264776482526241485136403487209145745265235516388852136688453350909263192055423551999120686942753013433218949863204356975044301200127307803664398440232256222554350893670877671142968197377075160934011785374664312582613105981032070589781469757328539743997586835017866890759274247856688085061701616234439134333180322834383102616387797608492617596654699389803443501263488234080304880015008535095727079734257149759212045935334877482967854826026495770117472079413636500844445244216884218904979262333251833312757959805599569110303013289345683858117932761655582671866181121592892716082737860453357510982832712696694162881163442808560630772594983833875138847698974197016229215493058929533975525395370083752980511281013742454923335109873016073039676993808258540643045565847036869973986016055503928837796204647912220736434664199965269620080491714955740404572286650040290892244002222313974396542764458772440953914445595347452677620755981053925915917256454704391685726731880131127984035567414004903773722305197221289601492076926146467214293608423943569440763673063783988335098437727193565864957497796208260573899779777216008373361895271576083379839218028162986023227222108067319242472905721948121189303250690749602784233252350639024752774091597241464514878078775664781450235990889434632062200368981219055547830306723211569867905268394874050035484981245490003831202426387430112405166629117235146375395639511246563023913646308739670391061157345802219363914034289828719132954086464048589192412507028085857622188252980494970966372334917316423643695929510971595984523315783175248426407813518911799489414244516064542575900100703831579535062733782809327857462072304682722167909318633763813520596393912181162465758170854625423491383222621883559361302014232759448469605945297249267427220015899560098047060137559957619687590039683107024141981978103443503659031135079589447159094945265417337323807316632498018824938094590795441424501295861111245975784911618033459079686628043595082122651291556357108223603854335821450708463232792861213263124787075122609547562525586953801819404252350268813518031710357154742605699682588209862750803458595661666336056126097905292281147179528636086858315640515316621268805016724300467877019221886277956332260253619727651966025427018991222680258680106977399255384492852187271413482205913550281706861023197725703295277696427369177953475446999143246203700362954022373689322443536256353560236415094408000773510132970447954546655618954514780881448562326900737258504140616374007427707599136729086102932642194965976809496138742521757136522197303111296933342910744267538695401206360588232903539016480417686664209719353948049739815218534293241445648057487653533018349486328452334092310516429653788759199585549554724005854137330323020912828691813952238471316399562223509736217496259398011286942523036067004495054789474950837786289906489261866378269723221793665997815365774646750103127912232326806910278835340385917869285701027846167526526126281325975556604178625366675643049254380565113630055926608587905464319415355317165163206397652754379494184019780389430338365834638550757296735454748764248868954762980198598118372023827741738003280961275250943364669715688436457441604539023014717473108914065702955620306361060542661835060201445867096266929783681885617283284688299413321251441715830986604473590777468040615682752911382265058215850506774713969879933545360363670471915225969132364728995695745740486176001472674347172762806036558730664769982256490916096031131735201875829207249907529726700848703302523243827416393694918911317901765916968955644285263820901280622226462735390765980276628766994516834990335449579385245002352416754356830288377502188571185588546377107230348316796851114437373528002489615534864465037689954948820292576977004318050295083176902211427660459043215198858049475615310752757769801357337803952852844459895765899531106003095171023813514157830346863832374987512438317727033108682367934572199621438712462279738989748796029460583651148505743373204606081430731090474342450880037182704395595475141493303131604857834706757305293648718412437701345757620435151475738164146939611342581904270589623176440459608831289888123313861825723182329047615262277250569329332726328032512757963865519765342690489545923165645258959125558048921804306023136847335781840313926997795994213718059651061179132685718796384528128030195245759550595065453803369567307884386516909576250961895587324050967669039128136080147208398814557043659269334652628789428051058582777026299073782850560436569850681500909451510792671638199387154305002206776907158855398326762990001982803092863619825627922621622394078978603886319864970010261682015799143830382916655539259117350007045672066697308371785183634752324900698261537707483017923022472699388997593194583813801965255790007541120100597959958910141401703938675326807532684069168620375462632811608926961893391562784221680602973458581304361913936250541579169453265289966565558798396219464278250820288818456073519058801685986167403242752489274705962181158637191557036270768315270147325666633959013196399921126481510208010731311844385958607109961965711657122184680206979216478302204014706532383531085886201327358255711748467825839132940172243921366511018369108298874113345954752871997038373600877196907264517985277504982847001703546394984437771121837487358140249020135003232783669305661399063547656476945963534415046044798629189186750348452946104312998281302616704496593663406156654101151622943555579478121320821860301443613855738971005401009486125902915658395094552780843456825992416658752347543274693143502200575035648989390603263568363204159273541983056832670829188989594524163928897626116207296663608312410711910087234323695230051189090745612197385729669695126564875683153776483099660246776316624746547419734276064543567396096144693085920223130488472673876466217586573486115323743238648574539173550016665549708611602441583727477296828147753721946126188729414350909911023496360852605117332867824929086146933101045678788903367586979127859855868242241039484814631612958887992002045062044603255683736377348328359075186740605200314407046637992354489610314707670584402516428365598083068788426155340361150360788006912292895179276181115709469155255355474736422242037548148482403565015420713128800284471405926720776124991180877845134594548993784486781550300118855506120825210229741415203132599151353884163486135597814734174024865995317026077820479469679570721828908663781060297679250928826262881483507964085095918987289886292403641917176756124428437659631773528480467905398182662998692684399759439222009229545445225150307432310232122131161611763505788523211335636555807363935533568128083885840727299393575614968940131261630295245834607512819675387150748836514575463139475205111391913380009324289273620269708367830433897482818713515172079474211372277415908117451563061059763021866504712294938339809439739192913119395085391114272279080548751953803027707299684632331084412744281622229949797444460401283940331002807112152265910973766736003100407306233133034346876893527877124101463864653304363851835149293687193117186133209326670578707458365507141396941339321554875938948365266282295014804963048470430248660176161127091971756674011422779429974736866346641287502662777979458619865773753765109007125064860751218506840637890087414699164405926816426799193262889628844386118370602397902897479017773350190971569975030801775665200117655048627695854685915287277750654374874037042033000710478922821471438820979225795811841100736340165150363831455932244389594434621845416606052967189259330342002388085809638677803966959260658105966545973017408654363620071751913264745910089654024826280112834733014750009553018942355118595556573462846438622318933623441999783692342911763012484535310053534567294846156521180542101178530165767116138035520638203216891815406033191372814384878552994575738057301329251541056680207254889138702485502225166131460953020134532928958486643516912076914931483392184049174644136997286514814497543247758933101404410266189897091411851126628638966223875943561909035809775623030161841596597967114493954344549333611955403738677187403253795484858135969912930533914319221196277135372743991954363976988751334959483046128075422292679873497554646860969074915292201009159338198150239633742088684579936334763603805237735300920520730170514790956504814484231326954206607844103488225957775524063125603473840095718988278769668688143637064384888865013657452699693334619362099994728558696913980796204079788539446207052036164802728702959709797824095009190183985089202118203322576744861779151739495646715671338112388828178633980321606254769754407770979377316415514579503472387630409853442551069183797706799088565528346735158958164093020203238377563298362264581708098827964755385692830734367974577868563301535890660534403179034956060924354245238506020045070997106634173473641612678138720855892649317461279775221491087521670304014034807243677963607862239522102889407258536827916535172252250468961200710724636437295319899322176430034810109365739272073549819466498151760916897282508611067979594567089127526090688412910395923692030405075201458737630969315653903181833171831372691774724052377095101895642582885484530992234075406340544108332767008532959246058443684204733981516902992893318859615129816033011081668851706161465272724357780903293336993551607537732777957594247154559465019080324172651371417842908517405462366727590266937919077214619461017629288943221649592652325364905790544913386428848647940623988568306374961642627989595366422306182835355474266484210538942865713024154690812746436496092850110726797901580258714163354314035958300373860581584468438623637652346947188727350925012518753379230255296262733915454403944370522951125904279288827169267433280824584497092002518625737374489263044431954448750541221115243421999276249092753826097313783153278614554299679237363280226197927086980903252620518911291310112791190197318663450893191255394328784624483424890767139179603764987113878144266833586538561153903668544364257765293732869838840748658731485802536584198093263262008397514363060504691270283154510673642778641771775783130751733049439524248798056853306331943014439872625910311965056140066021227481002549294489910235724569867617575528366013029539447096171158600885770734146664961283427713740220900083744533679188314011450601816065298461992941519882625338641427616902462323167781468625287544735105989062074891561583624382307532197697666230744664116537035468679517163118008077828995129403664264684269999308042063583758953885493355355001352595657267824539590238755245804262761466921055925980649161904107820094382722680998453937582474671785570840781986607031564949220262207491109336754233296849154569277529206377453929841390077681732646370529221490779558353019799207336189535654837985640200344131029079652235701916245220865417801470345410919532984605486236685467721473581366775405918024595925854006189131317443840069586502811588206097711885883373520374301783273474983890329554943286218389870793251079372538206298026313317616854186813108928655258049925853685993941775655800453864218065050073601295458332969875093420946468650868930341845811384047009891643906849463579149886316149317974874396124902610530291409720897446722413514877691500118193329324168525478213989015912196983450672863578168730152853173168306065430119081235532281879726980042939795011362497423052834961656355629198263760591747053892187550279573606550939775971905131029152435873055599017666037487314248128212808622505057336951701173007356897631108183609765776868038036030952206931892650876465656238876745628177169428578243195115848314778664426093573721756594779904582689202837122043357658043401718643362316422257291366224018490285767137895976970054489887760911704528822874031383375002219397328250735375584867650151165082852406896169712247063795349718630766131761468498205424678300747014453365831892561058667014231374383494720129680038987313415023430931851136814526416702184407217668900318627691081294942304676729682082349991175260523418879927498720981394473474424776710797520786283401566876052909414677830227550172309914506084577074256757235550773237056124722835038291342772476758149961587155350948611092729666448749140896340815949179939212174320316282216570103544260429924941739591045864601774136012317090078065398316714671171175543843075366690172067739359119763775698943247076972097757213874532062372364993142658581412471641166288000381630765768813485418169850586478248722566593703010351537931341138753771872073185858033073635147547077419323654867797833919965870127884972731443808205041033112544477296559754067527671774564784413773250765736223729271363503508782526416417540382330375012256736735293701069256802343095393398791837096049726109279683981870489240747184417775862436062504182338906796213898352470487924518249506514040176753757210778940178716075448205889208488783778359354812178079413132322524210819036975446821672401381094591387049893344816380030745693427031975583251381114583528490649805491688789263437997677943560666586340083996965049812341334652366002665797634936909054801662999880628598484991402008842025653581904645718487972808647332020474735961739373195768320939061953544093902453777502147585341693716558164022453580534367057620534022464056452320483831246332235667501325002395407611195432896916220009324694056534633099789993137391578382010582216411239736330838634518387122168308976746541762911435722987309952793535138077053592236527444822772839998516142972766642238017732695388220522237864224104325852399908605452182140308849668010736435493612787525163979738003803583799759143903900447420948654413398196128575193737458742296888312283061352589845664483648578525914105762101171978011166085655380317772419353587559920524641338474915292419669837166342480519529914600979663094569102214846268545153135363066468096225865534030847436626443391305501059442984491288394930242534393794590799616580982337811092540979859331258926483292781478412058091916215164304072772145553842998003759839741205838458017009926555608826853152415659678672318055132212518460667301763026880167489641501541672129537454259204927234576220594290640868533225730042625528854020013741983069811377524699330105312656382219942130034843358571391619048702602707291166510036671618210301183468203148065782766541576504488403406416075635891213210199640728028915932400726547052282381143716714480287214371803942499948628964943044509724078010801470483417152501377655101075854003761923587955916311400234914143762764067111844788444103038868415949590639788289776090282350405639880058242591058695967061149503549637782313673572812264045440201392038493196506432972295062766083577546753905087764613407578297990832383065350294640082642841234187593026946101281950150247607784703400511870317984167063010104828067419306534384203720725010811270101934499435087865323919761930433038750641588445455918163708226980770653317584154465188939830548504208466409146268222996136779929186999118854161083243331639932101006612379722822332324561968616550518354404776730483153567716157695290821807891853260861304617712158720100668728059939274574576102902681447456340281752280774112316176510021056435409957099553626036811724043997418570777615874604454682315318247353599757487181705994438963837816867333681685377694830037136688452806432565623418972551799606754584799425775479748905215028890802364385668396039400735682336073649247596070602773429760917758848540790385457537081919450812374504837626433755985674981155949344580700941218093137404977122411925130913942479141480229812239937030229631715297501087649730670325844222033162184756980206004531478455080988491099895640930917424172745941324795282093977576983978861502967687116797734109264488460003736301837419893491284524142926981221903090808671174026254964906887004034810482300583167900819101177568377515982647289022896312056548226629629384799446876930572844933407468556183965274057458861886741217283431665600529336929426783049338656366201598345143282343438659632567630324518439147211808509059471606926764010557067576514129781643881623174366825218383588431446707889775480326377314457008912635345952194319964174740618387141444170729666201675341294123069571914284781613126447418378622198428436524797399627219556584962295474106998188823512841082616489396766850445929850410563636806788855251610588541129002435414000059094883180339713186851597313460898285790090572953153250719148520206146830993682788017115686067058576088891169356910656540528409741159370003937790434308778387710062393867001298875675139327147903101757555546121665834182915030527943317154512017817465016999545065011757474778104524210592875602496766826772725984944204168084677879045865530140173759827865501989969626026120550136617373129182571082237832154644914252159757960697370668602235723232258058774808142382556261239108401191018086386548598424568329727632599573024253714032506783879096617359629359280139583230502858215238088194913907398186141479630762342988375390944430291937215166422395333806131839404025341095200891576588285990059239577991210691681697020571406046998619682011341178757437032381847823851145693928359981506189419210879067230075626963396108615560684712155461958606898955499554261558419861106950877023533713822786327266189615080372217355904124638144192466800410858929432728972442861866982091667796358190648471313316858616529257769609877289473151347363901190070240854261072505098450914856632195868579218550581327191218910906900940165265008839280310974083176634558070851222803988010668605739398667453641165796729278814011283395381514050981986996303945903169479092119345321187927008645087698917149759574085424660091290048233545934888067903831202675229079192638959551909557957637761815644547209154629434306222024606014273729135800716379794889945649902469730647051150480745724056007965663572086442481565152325622785909298627127034306359987608566365937481178307088602184754855996602112637242615320603267911314725902462034679181014758434761827546068687340037231889476228788223160001569526054564754651195991690824292755143886470013069580803419450948600044075483338215756833051513110806618000784189561291747382288038500624572979798570398279962293376849125451618287864698257166020762199028394819431414762056911432237448684084072830624544206865807283891225770930752251806153512614149147312898890487281628459993263366819126775014585922963811623402905388629699074286295403088643807956176565964895628212222319045934961762615119782037815409499462704621224469100201228734226530947979662773696380360329383035503878288709478977210916642221188628530574526795243578265035915125634726112030268281244307430478157272642968078303240020304144272129083753575343878665034330405030414513476016882495692660473365443036392467098584083109954707661161413443085157535460984952974500519963111649862532070553618861020076830639898563295183112267851250506843113126142366885680759846993194512274112652119820478709905365045236771537731471074674474534563761626844478989711165220928847328759384512237208427841724903444757014171035593520058190429871484858860348393690076835772428727862295061281595162347894768422226613743455944364234027889631351400386652599248634155556320628696499040151017548855661946197500750544897101101106076467923545094741388056432009930763429304962834716413931899711434520499885605110414184715882653772364178333355150872216621206883831358102449309405125438907979903129038578027832577366675320721427840319711805346772730449621755279310545492847877402045608563461669148531080127709530916483944312773484210134532031897426504634187284179954354630974338143453961586346083144256017743045465359957984667980255620066784305606208079823383540068999871067976890556762908341529070862334235984077581024934677049935846678991570114104743924658749007029844803912152122061247403094731366730556475699262704762211606452117054824963316346996407708372667311299499544536206661172191789771950688771926485331329001337572981727725962912814525061501633526799348505230994303263385348255315082962857709797499917687259474188232528570607034494891034175665190946356005509501648186357562462751893919990036126328827055783497894842722223896728162987100201308733327678315028526475878817456969123826922693196859852789449075085843130197371684399181594415505356751495766809498332242804535828319894082171714854623787101391844988218793293110523970862641341948667906961144998937655177201711954394359394532663957471194780155065679154273418941456590750590060333435825185252133713175454011228260168357863793757088485358404867886769511516636255925121485667411655988341733692976017287353800370235166042400980155525369174948375780229970356609042381774401677915063942392813877282137484516116826240254729789963574907669995960660941404947011834392632868557111032856519882710357483664114162857214590337152287762308611492482764207815175691378581992098890581498935448882258030233372129011123627350262772359066856062524557892397687008280884240622580426738445537767760523652447406115803573908862727652096219339636462278353227171041657751660762394362546113061869433796007252373622077223269486242662671747264143401188170318958768775499090768991679384437429921358411800261468234393547719862425661239275335039356491589984801826405250291044148973588610078251069046630399394743901775545886522994599183814566520653140349733894468189293619331839042594387935531371798375842994710617648927459974378969377950178372382049817950118735171114265888919506693772059493500340129182781755901417954904773112678810578326883427401700356639792454110177910442281299189720144910852207422976272177460291377507247816155128851213777715828629360133577209920934523532542571167298563395210700990950339094893827414621386740572306970788511091095635067457914403431314437166372216601213824813283144863707878703778861026858489389674449215020291800288492169494438125219476201787594511141147357663933918090023460199658209183675932094029718357531812737234843211292558988066142145381110036009654697114714649755003130935780982552261870424290244616557609375098080504609912229639982184516809210068416125840967004841257334145787958393634579235084515168590591865070380832075798665248589625895919534509854166578616231491563254752566969374500285935029143408106008623730130986696608102926641536212918016146967545991117220922112657812345632917074345689600813400239665788592884803529474302971134272042877116022018561418401220127697649230984038838914089348110822414676658380954192173403997309948133699149836002690466337723332323605989282374771388937365676705117591374619761523005187581482162478273469287696137884455409843348535990174238424213524172650540025434681842221138557513621222884096755056092822896133489797520608945384020568981095293141223535315124501205469649997955389401048762543177301389055372375449182087177367335135429371049773924162183723599894256804039883618962485147320276983455489079127058929301721430171571487846486746160712846224775869804156594197371853369602631529766529579014260990659730074737355808313054289413076498161993650017233994980176915561166111839711988119555673573726153120159976817598185077308601198594711689696319224388923454546165941875228011418882140258833271944970982840870444455617848442326694002203830345786680805391024903415904465308193317604357679123948343532901176789684065033531590112148407277315181422414620454995499551935854284770223672001809659831156544335477522314647225282704389551130013461268376689249100719376366277571631953103455876764595185875336084095660369238949371717920211973785424179121643636354597124002464289484864973922134579330543418250646696688264539471153156346248228228734586292420682813579761583380881222101123783169019755261393859310450284465550275926649712235703706904280999079182778756552233461853828602894770342651550612931663345087470522832643579319752613360692521202394290602543723918699376265314304583128850612927427195509393590366314484976715302502897811617308422322442552545855951081318874522682840720992861563361251304327821437188438262475725349082771715443743371648755136183754266665616584535896776723480366193843640064504552450215162136495496740250266620219190160629257605574978573129449026497013488896318646934542797930198557839587531160834149319115797281108882729995047384054666042832388899884233918200997992823247366675031792450581987274148504894761632040645577764707833646045077199606562539743823272108921215381194559890791645455722557604956714725336317543982351856693238629378698914858227625715332450705204057260744522377629231893117983941240969047223094350837392146366605192650869981805046652937742187419302730953836872738369231812575843624821065154694151639042548671034286672581784166020481841675261825935647139093095856439876489693329747998334826880682943521625294375025353570506777459430420159282777006865171698477173083517757024525869697246368653296692295592916380023944699248316207429117515586937118049272379297217059159505984452563897906622799088380870996078030044580468591474217036619586642341969943339033321707773732835860998288043054434789110005444262337451926329877629230276169855256524189363523019656955724295720823674184905786056960477191723187058270646189492587984358763983087447437413866748437675647984462623454377590732181393079419465520177220648772928914979387537797233638462889954937023720512820804524596501916685841007580390606225577467420621678418187534823717445985093637187869135236290304233363396329816836081684620650734763054729807065844750710002343988158275928514126066074945255604116704451740253216749519317827565450784558989920562145460840018079684566150515843641067215430747929098300111309753720616234429654860779212466118054333371150843893449152010937725877764211254126798442439979606915918366460645990246338160186318460740386007104401220311840640220668519485820124242808356591995699964832727736599593300257373476328315361282782584731164703689619079911611303457427189925858607902070908578505419975809706981171558333974230059409609009317771698200393835267551694070457341128749584147931429372652536248102853645783231770983873047872071222157507558891897275398102552830802184275254611585625308324882639178698656924687401455117401763110176744829869826508979831501972993962177484514017603982093485581325060455690570286421238131882213854028473238234909358552797509256825537123171209418919298175830314893880567128304923961169981034152647446550104824547142216047671108611957192242415396457314149687293434355361139955555608616272378103163145993567024467656503834298358793801042812342681787199214432118173202529506729616311984370099820840508357344067128249494106491110092777337318128709445070982298325417077810317964349768269068603386716643446711882368846684879163176396886368772844864886824733361684558912960735224242081253556171569048428247081867158480297014391738300424751958610294114314800147666940952038827973492251908317730004457199119361943743753149123458402717623859576756808267805477174425835947758691500139142859762411105950069148174535684882113001396401308945710150934519162876082440335661281334169086335348189228108106036788832639206782047830996923057039103723696604694053150163429124408808148336543561518058379556128382743125997328979724703013874283934308826652203184980552427840037131205061235226225063471868477298389880722567562085159424057430566246213868023067292611093088056470003074192091118521547116962951608083662055464201198321620157926819098680222621426709750040354028595272497886646287917727075548015867427618355721079781599939401344541929016304954099597447211925216860146284622874237406622625892628467567554398347885877580807093178413800460425013224128195991042414830218357819821515800854099831335826730911165457166393586506342371351340365458410584865534465325013754015296343601560656193634980199145535926472020823684622481648821476412027536238645241507913696860951798974002518523110783040746305749732359208196994266156383664933977753717291009500085962153716705007980537154202434410168980449833527513900202440547049356293697262416257614827869576423340282830933170888682413893947994212352929155576925002909011688843637691777565931563349407913496390202253248962893389152845339112256837640165110205908314727112842156496211359280249417562888832907528047304527352972207527526902911834055276182891775501440804819217400230773019643905481884145930103820900727221944876918085296734471272580072546604263191213217724362585708050955501692364099306170884877416029083365717960946342518559359080382858359431609609882686782646980971335823891922252206285593424714673714525639754369980641608529842074577304116601508328432702048614441849181960721105037745897481583505181425026828788561379619117024014006403708210911529992487782276577960252840624155392139217457979618349771977924098597325775076741078278220028052684292672990000651802931860788113692833926322361509918798433529220062333829167239620765374650169093072059814901325611862996618551071399299031900902432300838308283153335632460257501433748538168073499426320199261416529647802786287860847697881275155905605548679694144469230039271361187480689579197435853266049707666825374670248313859158963186022735390629380030823946220757011014391676339553075039110655511257637915548680916380752731994197386770873139528956073957008687087820438642296830026964744829116095766872865744056674939603974535076819757217232153724572950450669437880134758409364224585328574876789601545305116664425259840207308489380733010804434032386959725754762032594596224478284526185264931703107166346634918601044428354621290208689571834355617488797663219427055158778133012984495831819955514618032885111669415258423163390595480970170951544368739835128641490018148211963307249780698014624172454728889689201463779874683615750172675227701601867954366212834590646980233065024435255419296118295493689954048279020221541342567495581050349087506278248904334024796510963567150461568746867868563305564506670832788269406519849903682053657685161283460175509461069499298460867768962318531399010973750023584529712786475462844281994249536827682183648932856864379245690427062860788530144396136804775163304649054277644865364930645752741006799563063343534332533204340761254304969568697695446313253918712937483929289813007289386067596092145582168559565560826690458278947494942055557117970885557855479410032846588777898547130302441511900932776039052634846924128899512904524115167990989020116745768516574538083014039933381275526799552583593253197828494142470229229388928607012472881190507866451061731209222176810068173650236437130890852521494612405038350056706488027982143953695340799871614051747038535439278853952380113034427542364760444648824697426719734563076365560632374009428249450029306158362878531267623583733642896106767740375398007032967652918160821438518100262630866453797144629821279429966089567179243893965435241295022349775365656685675119458627896617885331775087865648857587974963320748911793363008412565536054504997054569827146857909712278557263324096307334636680561414552680610463356155812475082878044901459238403895501068720897354991070899282919681846694428564679436353590742912804331839868816409407241930085605043209530131842333004522612325450630850750195833075114854984572151994757066843187823676099970418859969513054111819152058883999290560690347543734232475588353817972311318346941023695582477479639731170212761158795240675629951368760877780851463330316040588655805306472678694797624750744618277591388966849144013959601588718772332461147906655573187565488132126109159342020287041739158332005136935127284174228858015535071097034905301432498549039038814977247387445292540743448830761139259287291182580749945683754684630790464025782293074159171199518491886579971957471725211477435599201866296171409562110778835970829859995620433341707320570379642660806377183124134762888185168845189178862062008638941399274769292356096857528925131430477949587522813304427021593299768403936075060383256706127123943425595984370434011264284212296880753563317028556228705669117584111835722954549493878281017645590832445304165071281706033710378909503581636861930256791465383711227509437849837647363698272435959349864347351754211348642068622179392042667648256134101237719869107592021248775821013485514694953025505826996774174780813386194519282319917996222197313834985624200889253377394139842730939003860537894115466787625389326661833511618404194523829056007508644124154545120865492424845090015063241930228281664091066767965300228495526915811826993101694777253801661433033312232661565482362470583751791491573587112694902602260687823054259697558121340856178445144518101658819787927091209266354838423078616769981731550375323724654806513076436801317996611909615547429370471191577792834783293634285777266815146752799935725817983600149195949767204833974354233826974497230813317836835874968819706921697927493603733586045122433057385085897422970286128571229031131270034512014446134855578238364612203536380321051263961311917043669159090889880566914508183667723469175587681777779419245707623146955829036494031183102303049589398060181340403829932769612791868076991403164641259791733404258011371881347848302892337171294074346836404805944940493822872705248464538825233849338568444639351050670486305745883867054269435912137907359781876204295920631469647964355264593547192124340039924927089977194808559306807201275396891757978682962149420351376891301771546835116007907784418729550242650224028272393835314220479809740702200694644874939073943873516889780840051324477540287334556900336152701854218942804230400229476047718775770471734455329304684147496338563567301676567981333198002580162589237568085391798411696601719823796770474207521439052001582628309012071596520653916325199100331440082502155275921975829709291329634052525126337442651911251885321949028298714377626226000147948134090284956753681516745634335332135000155106779723966969671650250045786110772637522701806656253087646250619788751963601474386663579512313176870427170345724624825244364160471442124468137367870424503898862626106895680212230938613803191140845544081571686272637677362709152618969190516884923759337450839949955160813578443381967918137032428509356848054085609159154206578876285512095361813980591606536993833838164832246153262011114947722070596614537099022276966256317297128566328108157689932763815861810085194292360720955385000993173319103920440980248362500450984919955700620605203701801086519001028041260557522403827451612851223467636412678145443330719783890742458713455803793335652754104961856084409835792016521933045515432729586427816441189262044191694072373251179816256041494703860102380048157336939094824470347651533403696601579189510990417955172353270158129673872572113727165491341139560223473467194819268769801451442906570146607696014966746995620544656625721831863635032512792340847726719048935583770746621426753203389007543994513929880714755670820461937853287549033343499998010016898348694915730422880198748209989179875181866669939109920450364329117717886452238563409998779320003594173978510973191406859753142050147703401279887254090680595866265997210342989122552419319183632190636285341695552872189306912341786963235354002524098533531826330360736130749251581595164131754129864825803119213475324572530547205256902989502290362757686375978370863133976577859389308883317595434929004176268242194771456763433791065380579912414229561849234248876700679501930015447422127029063792250424513506233765434333221298571560940410556909937195905489638315060949842963145633750660044183081169781543476782289935506106639435005912318392407483006535209800966083963625516232608208708544745152944659384053131651446743070887718246368884293155912137661326127464462931105809827417516098989625280003003533944898758495302804441037400190221605590502635630901779765996697591896170631628550221750892625965210430692657640862931188495162625739750510269361174185085622061550132516589521023131956389399995803659367513578489192880367797197217370866445185415432408456792451349772084630093565721345117265949798752358241125615495849834858493152126453711008582869506425832240183536865826448831044502845542747899429586161595786307335368051121044312896855236053137407064109755038880386303181091213684534654844850631042995437571099745139750029025343521877025145262835702844396056802873223166812350708112724403447879086555651950297926097870722451037695181834430215120405420118113585298027999764818986250831167577330660756675481835084050689990406777859377204830028059419795239057594578891577897653272523247333998871393254277028017778110528595465934486752927895115969052728832053486333448926635484051492724006985030108013829155831266681115866871158094579919390121746894202837375123471916558999639030132934462561953197591889802821816080904693922257981269219060701882207826166841287794761903374012032780218812721396897698659176878126280874689957655663039506938033510515259682959800894168164131357001283345403341444276790770617032488871048577539594207143672520833959931474469429007313503751031100038405868951422795119008338150343714561513346463896001102203990205467898002546138560813757122613145064610816719681953781502887529909137885978858300924739106194708058651641489277287318976585659315140457927309998621935860250075861438787281059564936091760730182274320831490768144580616218708756887392347920733913146123167923501025171438797618383450702040398850108726021926163363017923533518916924513087885192686921653374382967552444531426354949834325150883166481127510547449907545539535826661497481901770879263002017270203207862989910730818136113439303569855837608293701271402369020092638805230665793729471981271473659081696199644178486248201986472888481373786247665584206390264057273821129515279006015661993468577445866655068010265856084739645377820630814299849472385726850046245902339637548182007287781747166438810907946114446968249245042027751989994527320830400589365566154238437176917575028959563131664630764478930461241215079515137658230023877470479889891520064342851126645346465067821611592118298465477194375993597200104638337127119502612024964988200086485911568818908250605700117551721428729026168351923327499348598418719430870151445954445476495711664334859083644191337533374639841190938242236679724109495755867848927351448670884104790542250383190611655073459842755011830312576078077647228684487828627748740904096348852630096781321927456753832762613178527429662723857868517402608797288997835122167753841903258726664091710297215124581713707337286486842830791200276156822988692153103189475882947987165895390400872395166594536447604664804884507709577802164602764733679988158817967515128868083157812758621305315725078154328943755171659389287736770411694144908129149608695169628512229508702769700737732909412804155253094651505751082419125261014462761673156585868094391817033590642307360998531584173609002755314965792671095973272940839455838526453032232093278730184854815504129676948663204763602267956823341072449575784082615096161578778803992622374762306242699879215055367136611500892464979790631830465607334909194095614748857480398563504950686545863921350634009848203045126078021065689478136620205809693496674314779687641282567889958702947493403811409511797684420616150503626533221367413310647058104406139729536776754349799324690339570364288680357034567530647203598502360557779621627528459374083439271055184960143532152972677236446152164071344391544469826706955919518439133613185357170784014216942303716103822013100267379439738570123363222776226928255965466123355672633535459249256767782626918917258737699314441116767990451073004086431867420073406704586174032779134755424554227431696880013616330345873865607120341475151234256723120124431501549466967925199050469061373251809196547721814354121729538787530549252848450116800209395850999171530493600961743809443912885554046084777918558302137501529598691682113484244284585954148712392064997748860708009750882647944567147322972067098992378223048917949151203629942767706053045424083304387499581844408939446004465934370497470681087500028647536609327136187814260152321890579615061222119198981104914875880020486794140162437008154763125407632604486853217240829697317458393602267368578542734153491391101080720120671437329155349173421134494658675081609490976649960719803177992263532794832378199278781533231577645281151514051120369810166542975576284459494747424495538757122686572675106902799866793839654178492731546549143670814266040964833298595657909386041805747085899921968207196046396201371238997750414434895589833043999933187902674404135443480024306614585995445028649636224359404882100547759361525898185430120818471591884895989246211747227102823751279825079972981702662073238261412257044803637784014320064016261095856461080802237938024726706031199110762493153930896527423553695947530785466682685019122547714744504619073474720992048085994820580415202275648025213347621619241139527461913774904018439952403003385970096540689037372889192658506969736584913105197061148961479418360475226149149025503258775318060459410104827495129078000640243509300670763720924287348712125049940651338230890447792789222095357629311659736384446938961913041860842977441483281762088496631656849834206385341101255291616768985824725658971168375236762924387004420005543580123119201075549032295773451635256856303066399311499397841490348625895017114590843441537292873078853088226698252569863211580186706558229590008976004436617748508261917628551905457293515835467568872779444332924999798487327143450613487708215188019583898639759734448678140428961373521095482757220242017229440605313585594523477434526648481112447606813323114189708786914147535004376350019069713203671970134926282848160396673074643730204835047632593909542419754434637959379938570789322672807687984700020119750423038397089070633489947071139588154754262898451542074157734230407517166194697930053868528583923513431270670510987994918498979139382213783274024358977963428799216236405479553394478676360461087989076763758950306636427772522588328626160446562661568338217597677816103362623100583873085885698135015091601638571189339083094883287513147749657489304401962534480079894943192407275136087966211851983675206994513114571064703713724219307705210391930377453741381705226865252244519151537832887566627530564258539092473107535849874496665898091841464803594493373267230304432281011868162676337546182988004860289482947095166061280794581991692188478229266451911604621874430252065567098966732563735563653141047241551318765343848984043017668428513756213871497185315497661868556573313519876448144939494958032273376544210066225443718685645480369330204916699243240682825942774319616115316954514954679082109592499692855015780558034331296321376852996717993881925262487547990785977013695356790084890208757991621068517499888064765281290865960373100881123187494502718838245525467818565392821466989638547262821011099809625948754822153641037382559730590573606889405994645775930334384228559294007046484649921663790439721699091030676261906880472140350538726833021126245621507951907298041506765051909712629360239174941513012986570823960966657285756932640041187738859411574083644119214336872733114241582715508749076980830876830362342973573378779911600354965890605720060654450403178160830946797634867560208412818220027495983987046506679815376691490346864896977519870187243741397155635591719422528802700735231651841041553051633072795285752011738899479512304048097668146441854494256737349897856831458678145090072865028388817193100537788622031949724346105340244873485496491182008819919823249793573629484689152199905635324416502751239548082353756775390077280427240758382253941986806752111648840552052631484458744413733362337532893412269971206025142611936570079945329274172357169956046796207453005878411370024566206502184786003038850628043232020110220560739246828144362047799165909946926337142026448704848642671186723345031347065237585607759667125320323287528663402783194468346436375007214692610200224460689853152849184428004556843568894243069405992312724179314113321146484503301390687608094267581935773777888775112747988512419943168024474191149509716084808727437351245620137742435034377458033637927562667594540156520443053990304082527832526225148069394551062987830715677693448644042705801045519191285440744477148316491454746259672847590694144291767952734764547356976778534523650077282645839204186861653765959974386323530821330060459223779164873093455380225500420780201704801702720767187671054521536266736459342506292682896372076105394207334566059537800789874323447443991862226984031026266143323756955010434920981942139568644421852098885128878403760120885822333716662734328943079492252352358719575996926296990796557122853600948935849747860772010166722591146713196914532076767076389432494237098016368481437399525841153990499455159039701107754644350389841522980089884930182325771695689666036563100375548210326943584380951506446356992530712306835779578553278202507864889473802743446831620027550694037825456595213801788568179220165664480755179637654959761897375181558928611320330649500335901638854103346151898131549500542752617237918019460023222867351297950873368250167477541531082125682227831458443621939499798277384156670435966505506762889277808664523281631631738199952994641572562075341764957625131162558454070283828677654431571364653002706431464082302933906737763621460884449053474102594378299682752214312294882729020080984601056315221760699712370050578933724044114409029162640251532087376682815608416417454445827615282901272620348208735575512214758425131631994175355683407625371789330080120628448896279139221278166056320617945005841595133927156212768080512034439606027206527515135432788458858163074063584381688298393422475089555480818674742056506519433167384809846826543259110023065994261491077598301926437369551625716683742806172876998706696192310854346624026199294343534827685256182292760577430066611089889624711899452584942331341453076557526868189194486914300200924530488097871042801573357903848528364818154328298134591678680105951703448874541827774166407445841363116798731315442534711168362989197003323742098154827898122909089483568375591573186469814033863804974006694361375026878761104259599594966011680354312161306470439383320423001390059590688211326410634995916519894216454001250241429926718106007238401727879250206418874504512123481195632915390554625147124576542565771543439240843325496756974202106235157788053090308782130993133662045122235811633605517291127014025618712719498566623932631926964744649748996496682757986392521416394998771898819309929895949576126326646660232674159024419262224656394245488799426193889247941387217521175886186047637283419913957936075436427965750145881959831861937880186324364590009668377488956537841013586108269688656377552288396724226281327544941135855569924012583207944846870132818741179575217821705151535047296718845650293836729601052907744799279294831046770827532065205672699486181129390003993667387105441481078604235997481931385177014634474242878818120543645907302254679015726617082615351737620461135793783712753066456902234748298981476790270326819404832163088255341154574475694438181631293985225613550671975476361940600403212659658847987004031757887745501329780615818056160599576606305805184591431489965333074585643992901966762088441532081504847464107975620522430370822545381924641318994118373948049859963570282976367918002064492634952007336417769287290866090901692668755431757056815907908577709078688123643124033627806854551178209708323328153188513869730225528395191153420426619933532965887169651245443642763125159842895351193401521045076457358643182448624898116312015203661991823281484414750736343723639184872712222505627726469212786038092272568729830328702398781302695086766092370245416353557935359136084329206027115996234822298581766849989178506370830485367717512326735374520726212491625162464377510603353878355066169622362326175537068438512211653973475487175130183411820225885646259169689717913920889230727617231253694939691923294366405337067011423395367983933246921251382408367165164645808337004361307759584832156384608532677307783521053656257613788996668561113027173343972150001822408623938656818165225435428552236813809339736024050398757461713822825446441117348210804112736015568715746596837060585989731019481299400129130862508028687277939203065420679241196702069489326417021606387736885969517309781783608092628452299513671313940572853566615053289743760399788285392737127978449376880037386871778520770405004528126859021978017367487866767369121463458598727214049968053545658883250391196527374131845425715615883037899795671255108651402804837124584066237373872902048961415916951691190150378910767710194065289399688537145554106582043812858347450999094235508581138708639577622824208814281844388266820339107160087346145789668633400195348724417104886575205428971990714377848266026427914852586601202961430088703007603729402068161788207498899547564746353547166153774748383490285643453420721619136887857436136585266033567872805415896345640645101643433319738430784586391059584611280310770565842857431986851092530429847915148457995244261688288601709382427566191253191702688458409359018836094407993475787662630631675751917064529088900006825174080754781597131379715966860301054125311693682238392701738755608535292342888611581619834549587449819695194757195533098322554972450077590906999765657703549850815208651734655272301132204022287154521891113640382400280419153374573807641785491314165747855717935057997439414363458149758101949070622234252720171018633461199428402722392646886507559023202639846634090395511120502276345238406497892279193092240244301158557024370963801406493873936434804299384375898030361269141873854335483330126595948568622519891768425754519612739929639334655414493818295298444698056980369324410360811173790232241684987304257931527881756665851860703530607664316517347705235013869498106240618893920600381270848598868752561332559536562497028269722662048466759263880206887735636132381529655892299293661112739936573829958777233235926544554077688112842773972670273357262642050683040015514563861240648384612121097608397309481649252025662858622580003183124417607824350604093185902541915695582574271109033274079109240295011326002959239704278255165585670730500577346694154839757071750291963096527655595621457565538844440656056430072959225628423978213249260439475127523801980118793981781538625395837717864826059744739382875479309648948418761098289524931991482997891563055410113726397019276898008266884134984600360098923199805489391959622416785337166983361391775804565252132646830462512892595494582770427676916697761417713557056204051745118558791269740456504733701292174117915199653180998993490641381904875892512240201240847863831042194728131278649072988019711908086766262010231126771313228098246354006590534145851331035365958845771640214725294777935746652773962576923894671857876315365419495061423817038609598083733198642130745663061850485024212229689544436879434024681204089779291895959892506146630200570122481701221083008294071697440312978383473483165217700674166860374894936103505120623592884820792546928000526186851234901248276485430405799091177801181369415200271993570177929654657532832412531732282434198607938705402312292118319498252120313102516589560962046844130301730931507306019846405027030632993378849505615711665079743194644821088270494975430904468173811613829515636209097218807476658529562842356838704800666521125338638139892233802768146135560994683735696620766926911054975060772738348959424491412017239725148800048380249252765959625341789593026243434106942298709415547589758896926185028052279265543862577584040621928949390545284376308168329205373944365703112690912487141307613704870544716324959886321518404855041217109321191730253303327303366986315081523601833005009983757547140446686102913647844240676874849201334026313223644551468613478122423391807206107326558145343050898402630717202100520838003429377806683920938801541620545755149721032510064102514440493886555051699297334909207182985423721292204638985852973892279812139398483937341863696608537824897099124187065149856670899290051735716479354261983641701049713541977062933542183304079224499995456358105118991181749369032642555273725668431543599612440940144590915487619943682062283285262537383503894271145058515402994639789787546305483838440954437437737174134233898624885250208280095819213444574103425163574476737831234247706207276169597210661654077918843139684502260055463428114509914200071194145671804330928919732975954785459907768782679787284863792246787877168705412725557231942849913172485586029828825272071227472553747853117021937013608031958751782353932523397331392562665940660387264256653671531422831407758411945954884843486984218527872755750176215629343616148640802304415370626392363289497363205857527635842965843360645059004611900079019171760459920635913283761426518066453908793705358535975805552032439219686785754658819207625065485905086934868591297686459012251951854640293054426741234518965102907528410787074241424833421260046083632518363294542191732748019630974688936454691352523138094771996035052863299052541206384292883036529174170934533211291168301331947764834472458503114309022588116389751562012346941770171106903068772755940265960547005065270185637255257777678420832579792949095792633737134084426416360055451622317803715451062035418028848714698178002230411399866272372912546967481187361657964810631496995277623182209095389914435007981985359281805766225260704526015817342928948905589193069120905947187668584865671920611686748494909926828012126406609048958060103501522813665282147575430740744995869173711525947379828002774578337135392837451575572871469903755887550445312557822599297700450444299941298438481102117047716181147298417508754454820505056412246887031477045405212454599365567486682840863380277192517758139869539841964902567418678707629868359202811931283300660946636161928128505507281450008037888242473401484322407221109041323931840203445148905726257778700965193157453157429243237544394960227415934366019090093500781703412868887751918905720126088786398947290671969592671948503368464481559990772130411634857999553337820646373486589058812483335338312532867074155077468973879302338836393438380375644483226590474084439380071504540567343547072831957726952475980484540041765880124655258537562054248961921656571853521419289680796370824876410998386167161586822297979853526750163334505618524426843129737842412960287907156001051553111541182156903700702678137487944640466757690184104138317300352815709292685866743494966587925713569393323084535321803501230399071812468529916598805663033672360233189775013411812702262915948887861242485087252966001100555080657090497999507606773694303689693983615633556984957757364806971730026319925344244563284709583353867730541788871459761488863501921168396801672499908055979361132997811784744512408700500093425791856232266120234401320764956362701926133968029155844827790107632864686297020810239138367010436682844413896602811825715230424527139591144414738128188631813051325528941236982711057341018460750365527117414095311067183216491100471237572363287879639107134839699658594615185132860361122265239600772861626498424662716324759917416686730483639969565094608762059783223691019230133625492739479008881870248634463883125047716015698602250401339460758666335509162041526165779294561687395284322252407973391042550442847329884521646201865576447536028832079762098260040416323621896339720514957975587828221801422393453145596446589314147405324393115473722895425723967853797101314145494799642901217629454140280678948661069247348403397726414244144998033123726371490433486582553400549082422647692180468601149293355302935580001661575805641623716109850170107962231391680235975461923311479400064912205820315360156254595008891443687590069067530840759294199917163439530378372467675898593147644722922739171102867567388950048536247192515272076588600034196954520571745057795209986298745364977590055270737703276367686166845931642828301385508209226110649289594431893700593950889603124207884677956707657904211942755980711130918790539820980278172635033462853063264451372194117049468404130343448030274614547135018450521166558949271851318367296415241572101176232183909969684037294429476679522512450848915630191724402860704665974280814130806169909415761071324529062188503006432234265376014311467395854124531713568402075572622767789432249481692689834463898693942244156148364019631981489400760789263123918796516781117931969596578140471175310655409862502436668641798478824708717696958149311220359355035405128527614774816680239446440749923788916236804994659104869578633961206161970149674126140505668349186157810982911137225420051907019391658920480675079144795278781355289332375507860650668494438162020405205619609560985664854616721842293191904269767735252947195985211805370233620949050873133745133165888644484342168970972325162681565099899347570677041318132428964428529279706652310368798702098127363209410525055794561259733905725397967443515789323543112035705650683830215493994919465088344231775880776136956812980646591940349230510550671863042488566477226959885589354209864356443893004989229274878733376830558217557561421416255031235225827901199114489899912557009962370964967631389127006314837255792253974541752018859517329666056740504316260056401126787296920174001238990249461692060188385375067548992748117266173084173678908375283625900612813585022976470955708222540185139765910827994858105985384085996301898463190296406012212297281803099794311853076053492670542284442623390680722746791678081557374174904818259315104032234926770562299920289236564612541740884503768990503056319976061668190643350310925591703291615690671623230000094107248638535823843165200069015808548458108631689582804923261453031751207914785687991011684902647832696579986547433188990007338477429990124527703838901379176082361453612004321456541036790495828993960537820694979581087766247784505902942407443774759282206049408009346358042831430384355201442067709646985308201708716720882632361474902190889104223457673428783347897393903982484658960464072963408444503910230375553853869448887831593461455337359143609269842282860123510625247974736175861257015256949650066210101239582161868453686744587963079377338419897415743581341529631314013730484651079596575053295837604647082630904643762736165719990074166081439554810238021373257728194797026789954081449021564006760152982475671457906250977486353503938856284091449031223447417029592327824333312137453220939538033561993279189557495336120843294659561840530104076982411337939694850953716918230857422752591290088846249473450279878617642290541403214304526346910430187603264187896256653460647417335352217990369853143158039173041279675908321000405188406926256896369750731064235467076188281194193144323334721841304527203614448195696726649090638761316213403849492020607658300059220243072766405344658363460933468919107990996993940831588605552043409747210159808319398442142012984506148716234575166609129313974964730775460875195298425153447077782354692941478127911364132178801539546907894457180298995083237645909042442870118814700535823725396812839806346559649161486103277519212211692775121644484746463140585262569432495967110477242093919000388190267722323056865012471281252356746823790649513600136556848672877736017715502883725360751841266540614937700398247345210452351182720588712519031518238456817235566164692030929064340502987296890142841990550076354229971761708191680159554690983442860972707893275502658463950166968212736620896120160815016101592316228592467692450452916535752155327613828250581891400864664028239989223050142338726283702822236794160750829737542477518573666823684454989122417007901795526274132582507657516688232500017019385222037727174943576764978514472430042087286000002679435973737486258087155756536471266918198786916017173223436091762597819384334605414788164658725720416213173401455394421685755831668203836415235136472683118971679135406360250828516074005399151493791732763213056051463238784107663924379785917811223502390886026464200488021428960590805565445677915116510643057178997315446737533787954400244429376990062002152758773274017591566921595994675936805247571541119401585656591840915062742392549484843109445815836137756679183002574697768384612064724284826189842121892282169742917872827251635516100424183213529736704644095741589009314801135781155727538976569788139941603410287297461041919218616499879492194534589229620206395205957862807950580191945753148316297787072531942104961920718650782902298472814901662563400488683235956808333161668927083924517802336623238165117761157081086479978063164077846449859101084949441888019830841130257171726932473971625665806065875529063148344423784735228193947021340160319113212787448977784836260918569849071540765823226007664317413459705551980721998443139467056726780759602502295577829865859746959950088925213596328928557703692590713082333255342208224671341897644707883669585874360394018876705493439420424798104020683242280273348652421569830608112597570648457208346809633468982331275292030586764711083777572749784993894249586165051851264659874886570546144827898309007496543385009450001213902660784185800798978459514338476418521121250297883498683501412238115342510022185055654994536560104330372518841533213682616633179243795581221444017243546817873255789711760033634967547601829840072676944040988591210108403137183631769266373798162414641257449668668670957358995304554716912007983698451118556430124474771544899216412909720856423677903198126606513923327743447957703973799901615373650086476750111624001748187587979477318425385187530923139411567986233383073070189528952559385147595775175006117720999933266940737574968582481768805191343395645824876668188769637609014838718924519502297180999448999751213159799558174375676404257263399180059373808539409405375472809751931182176025304212907171822702838707022450523179585897156671590803251548092436406711586293799820666985587721288789669450984272330279014514988138729872011641175920260645470819804081608240825452457627475396041301570630826663740383971637146862739478836106423243852314097379978306985869797354726690223974578290257894216417158791054802416327363028833729332026939630642803032104321830458684807946607888996767145110826111305877424557357983220843953187656560206108560651561540758878843554492707486660463084754546963144589706154496882680282751673456619378299549248473868957616958512938930106341577564751949428407591752697715088313380439274507577370433556691112527099890251178601377085036677556041635873599845090361753593304989742443645252662492751378661558595512772237746258843353037927162134226883789436798449763544310512694750140928775760539614087791043374293065803247632122393924601403139743809823142198625315553844797219364847726632784562951302347823542418571424629324065985741552870378779083936329446878595324478538608187323788199568435125217821299521469033717018957414786451899251799314933854075472481324447802524161812369521468190787914177601904977491367643460693791629868224806048922788219971838595114225094662431999343174030787707412886364320689352722566832694470608903204778357119360495812403748188415123730063642131828952724329169831774176463137743702564473702894043138433089558264762021936189642799562100875843051796613602508375202315294589808201639761307141049157501598105930346411260815647254957934743454945321751786587223375254946711626288794403375276521944420518736519738228688528621485649048937959048262958708299638533617014739556792807516220671485055330757836865997279610362334312212256083378336604055473438168603278945724381728503581359505954342400206214492721904525697504306483430914632971809098430387193702333259314544381054493854768481518190518135469266411980376093381256762682121098262638869962539106359474768639038167212972014965132322616516186363910197756536271649041370710802955083541591470979506018923966974692228398068297940605916207371876794866935150154832286509919761727935181484364419273446698980833580341275529605185876795825866848293089953517086338115193036062579683920669219789851785263510003382253878867072813349775370470945693433386040409280487716156848255253430834537646283154573227903778685239857729261562264091247779503011622832838623937691899780222886515894654137372173980347849220687097542433255820119122325109171097164678375375231171308421711245320158882680787313748840877176052153957187628090837641973258615072327697311793728084725957327160816270705866008202543604826993036605867416152801949455547560827196615440580785584151401001789697289907775345784611853938146507559276907168095895931404892260009019590095405050012127029881124776075489555407452950897168108937587569767278688721681035793996097764714800020950181785235798330721785306003724547566670784399475339715184426609071913905869533144210867349196836844546716086088705813453257637116239112677433961089458072389689662085861399894643802265380849209448542900834912428103693020154058798542548580172613630101501542046763674668909318075153825863318014421205087051444614740813450593405910170320944633992071180465756059801405888765547112903864252999441693863106960460249453925517343843194366122055224714599914059968940819447009061430597577192602361548104780601385879729979199069403876642275098598625702337810628715683653171313958478023074168229549813210452814426090739054689190984645228635484295213377864260890508669730739639653631832767036858037061859328509346943602119770059545595096751706327195914327249450337142724626862994004353089217874359299778107578495799419918611834720925910571330438606190475550912250872771389556083493982388351822394667969906297349784620076404242550464167073977595250520557678417465278339372040311453917005213517687301151396677515623289461250346859045208903367813986898286683766729380583714704246881572675800507401685828037707691594768385118833821605254660584747402560884188605697467672097608307544285310723138527999943815571339433159039694816981299256607166168459830878359315441919564896293586520556806581738551837475310011788122220321455447519730179494475449778603795412386938013094272967503714939499294535767045310701382761340105013342984230727301107271079782108434609006129848501613796099233186336616457023525938305299508046447263526407996465705289510842900142755014384048908226690396440596477379903311554972934329259422619805758303759124386257024536303460989382102891518664538152544735864524755650538626347608857098694395647731780352422047241763638913960378779434774780683515531289982943346928342594332586078357521807708594358402859856458520254319704734606999024976713427988412283041172158786481048191213382486131969545115539886542438592265642382006046374725792034429181989771056377932538745065972612302367944124691321276735142384777341624235494133910720119250995599516079410093094381111460305034784359603890748766152578217837453730162148263296662013587869263661959924070051519195682244930810915968632257636887440938304482526102148894669472472594780018639128416674933918463078205411862295187963180203016085649263562092155054848465454501147038859144930228865798840870850525824765189256252482360339390993244709978956965289027163143912692087354981831656822327147328815197488950076671212088682315310367709571777836407527267510065919992538083645182857195406375579762608683316927767999155079491042215594020599691534529237997280148192294300485603291464553176315234866683717383577615799824419136571508151357528847248355771654197646296781446447393719154869802613910804796913926560580954152791846553114664407798559284739703866374610491559569846561520948854279026988572250454774834193109319175773678952912008879668070601571248767088661463339560087215014230393058986266593603609488760268718830860358873941348490219080084485024852772103184747254187933865773129759617443442576335894976082892680029320330301843522817461531589362175360671492073845354686110199814820922824854051848970143784316280153869628207952433514871751067444548055865919354695085311606830995102686187816087948526808288741273654557857537243691918549439858112114796768191324835773066957656889481062664109006126161017616324636836052273084260325120764664602814909323447192357053249858267126666835460106496260858898321250500310138651423971746058802668460954208625360755901679851464081321768798379575924470722362522354473558513978211494950248536097906311067199749885374633169806414738849337216366319920205049517678162710834576924865476546936325585791784139095455995535371167244192575408544880930349574976864824880217509485720114959773667600557532860084839914505885305835246234680635075985049645968828352061751140530952209617129642731290173794219678291759518465159644852103331572945999332798458663609695627927132806010713455613476857013525499247409166955801663986061393281620844444897560889240808847873982491269875062554508857758166791634638111337962322790864985791536534202923748504703125512185025047819704288731194709737636275159297381567066868853311513632950449435373367046732860033288206871200178937674278710949254316703050946991302903434093755051024095950710115357535711098828024389497398549428050633350595835794109763502129343020889794444636085306923240759439697898186194236266384036860453964422096122602025922993849462133495841464443455813593919964619766358566866680419388749703019150632589917846395203729420987405267957504745777131120345475933324735744043071748796426813041864340187861079413764701807931284330486996168329609719710403660614751009708460558152911946688806177005853893553478935013961376140412831839723817610695166203935081903103531134564649670342858331807101258373587486682323271716517627666120030303291232655911485897865382751392561063597778032084068995262305542316873488024122009642748079583374288641785984016711967514558203767597918502737320669719553529173308048059650715422339353791477789633152996445832515345778151348729774031775854555333727753989177627318088488990595791757060619360094687660617123158152011975120246627013782715721128514082959447511325607167751578813668634907496133221124151878341048008665602438405899492820272477807564465985124521876258747861495834066272877562066136031402138141346300318689146657187459536307409101057992625014449046383042651548496788219133510702011741016738761354535175326358397135598293749782702190043048099154643906809492559004951164298979138713953638538728096592252138359520360619673209059491640876221045583426696862042008805548744576007336248319254192918754953032792089038176255858799514197124213526825585612419919950406141725759425596622919431527427096976401706735345648269833638345488927416267535845964485997727993504881943823412945903419344105755027027098591716214094888500502720593611075772913816776130421986767195980311318466642139772889354797887604968640836784644117271987939561122919400295973055987689299854887886046659080440464612309896859947527799010329839104061926283390545495619952771804219616079151969461046874799908389417736814726820411861277788057721128677117533551731386471015690034838769657371505036807534457901950226125962199723075702785879378650826177694264576716527798599135502920605431882874420922434026887427578345454844852396636533601616224640803106642533867374020596790803445411489688133570169597768523013469786934340533070414323963561708307195063734280582687795046116657917385347896280527561568992123139268120356775010769571592890447217245590216725877782339984871976832100222397555829378511803687365145681693710408941144757226527760865265723973677663166920127681001287677528468413988311504713560378593777418232968180220046726651758790745076965760001730590976415904453955469883030243560761536538372320509326182155740691688349595864047814164375339152000066675124445664860314232195971434113446681485052613031965005261441648331284314875209093566032277192024467744855443529789710374403887647714090568737980826885680815000612064819603146515478408634645381671561485125943490262434425809487853120735726456425454267595842563328198644065420384455636295895130515267249089261126938570854335451697489180330960402162968810682587990635830387877002716030125679309921115262929980069018953504305738473407114031952672597737517531854722448342582077684895492489714161568662424372195286519562495138794684325589931080812350909438396521716776161755887202950248479717022706404071374831921325888921168324286468653043730044430296278503713164419120802675744685401841137140297908089997748233477669941916409320844191412044699428052432219020501115845953316362181853178347349094509021430618435716570794627249228419111047537504702384334928972901521664872192259011628657674661087630547440206432459520712457690758589887377027525996989428347621916415207517687481969015537985434951372860977700121104859049125026012086672037571565402862738100987625614559590603548842243535121093740116326389509989214648452674696286991583040288885983381037832923378766697541300280121112511398455536270999846947601340612643006331606397379643107353591325185008997554427594468365893633924503668377323133004048571993191663234724192555561009113767714407386947048093193346558106853989700971269332424854277035804913414057032775581644197328415018747571880838015528323237723020525975721223198052582812202680706931084978308219552855017844073295423426235841756683104125385133454359077879477202188035765068807773278373575111876096544055369150808191519741435177589701603660334669381357179423766489707731640062224658133705508577019853323931895735626334856165166309190380768518130570574790253493936821794326829361523398775529017875785377420476148731403515714050093575415928090260466217199891903956000211499331333906561043311234089308646797587105980223562101216118329276561325198716109365074975541389094623122219951824599335793794638022807774332575256579040071879140119565750891299177871709490895204321206870662067849180146232645705136843578949522860658327099665682429460640285816098825524198733455964979782822002666373871370371649135972458517332935208593957395080201424901331745137026524553853685109454669636801498192963499208962955671221727976462186110113396974480019253701127963765162292300334074183998879340994984306176426934989472758069952369774335649025921119699237206839122068102069609049927299603244014093463327807865281227652982222298474438999998995084307842463461616181851174187287830270428753174136322844560989399293942376411834671706070575956600377128346946083327260189339953296864201019563418960858628125661040361793674331790569488846739829014561201901897748365989535673857578030836656760634963470282844421014236881332542499054967133407390243553817786726263421772067283235141639921763015892809661252933847518073442489568761414283101781945415894288552349402023297634435321508842624770717639699939003493272165028318927386777282953172912835128944505100200029335260928278734568950810029850174343894556649875510505568887137693831846792918300633322646598468590784239784904068479111867778155897352722683590551118164557818825603310223502010190927762613038579899552888462016057585356551311962811041697772481539115865382091560961905788569724867708278622155336315826059720952535843578570432680464802428854985834350946148419936131406901274591680867340813474504482069558325120901013315371051849491911145649818642307822130219041618235349423369377083494662990848493436538843474785966398485769117946278335837813000906069575772073452285147514316241242096803107497693042059188982747178136309625462231338960523345248386232542949543925273577974149521824754890375304410221196828857409470371800360725784197097202827717975726966871881770559531548769662635493834257166499813143703293246547996586648249687728069444960144959886008250958918901196327115475822338632808905609200833278650003309561983275010432258907994463124444875317184396405203153363388511479167885178238067482796112252932411838368065617095860736693184572335041773137153153302242462159401821898555546479366826294695088690921659013609793685883332850638133121760844348406647510292877687803295623913759818928418059442288286717536314848396100686229151130486802508373580709583364306589253498308975548724186003874634801924459284500724028222119781203498445501789498366882710279101706367385941569599200288461316569585286460914542648136428819431758034031774750678103221128947991174667835655977028449268310211288355453047174850241017690719165394375367305306945374782745583459032535249773323658322483493434838614489076973757323113209341080714843042981936193530006350059792763077941346732602357009954027602856316029882038140972293956966811054557760754270946357043377351624037234544093039998979531054724193406702593261926903711292475760266850192173066413783694296285612755194791154484330860641710760391399503864953840167913956690268499254769200065759664996195050821138567706276271156841493075456784980046558519591942960909318912108313729531620966695968552916317546681345063303298825279896158839093896064508945369897538647250444284304173684008442409739900979844070062978254756059136083727074085596964231490117828617495177327462415275746313152572812987974195567289800044072123624477960387631403208488421745648325491142545599570058544229595242324315423905375204815096466144078756489601887934710045262105398165229532113456247765592793945156971752060774652498764468568024244500681160094838927554458472199215152525313260275593522399478459629191945462186081660181113585688035993246775281002282696270330773557096285009151542031473843395193626732086096561904738575432469053711096306090228834812543469243618758113056766586620023738836988762172365868586447831625906167088908263791234168755593609831238085322126917433559128140601001664033394770614035053336904306429729536640052463036839263010930904515223368388381951286853762110938492332598929302166825350258161717529087687096637079278657519502965656717101280104920819443267995114502346575965753992960415084592478286926840014832252257212756886103979524323451664420650389090205410100940162187626584876784400394593159794239302179836825141400487981396687366695222830738996578079239585162476727603806232581306840068532481937853752308108239248837133318156974123693977044163479749868962070373431474403819013772518473509856537118561231761599121995882622064156782288456702846501907269767881641383571854871544897271779911746762774477662928599310526195814427588712335245945885212392333381220641680587290420511846329347747968788401004091008481912882482010264613166308583429709007702394520878449241474620020107661181881873126588258640052404089022754407618802800655255746095419077086078029176602967719283520397270158560290629539522714988520858351295834351173330952819110387898430902184405225232979858147984055601570399371968098279762432297452423769202868867433928824167803236990284209378789360564567831097732042555159047084330109336660588258682114548154437981753696371941545392207891096777328876474089630983954222063386665906157324509402937249125543478126231974633964871902328826593026458193835044953893391501915716683741814499943347709825577119299078755126952042531090033303828915560410413628892028238558550783640903742064424246386168062171729721516556587924643018362343436272037872859725428930383626003519554791938479869747747630039799666748278592377324467578228907023497264707598043777004394723680714102901155877290009245847295398548429537212141180635524177234773539943057455251364175512709129541197276943712674239582688920653656199137944219693650579256543797624341571660408720742192600247143265702940034378722947657698157999628734402059080979819538203134348660621783883274339341942402682097809018553338454611794160708372117834170822992788486830714305613880402971999775044849115476650028901369839537754591528764396971812344417754669098183253544494791614456450294359749478940561897254921743089111977999240944733363250333852437620298975407892733398590059769024333526796004004031198909289074283934886002826585513340355130323739216537168769617853734496568148000450165553411680635126895874594188406523895544518581036167956737288962466596851724929180607357850617471324394938717839845543687712534111527852811415770697194763428998215786448076970845739227382932805793058807616063212731226673598563389050093506622519844677817647151375766115404162572246278734134584478270857203456412131103695472539177322375600129131672121566920334441826892885217141367764881947972311441589714103414050067200499584252096289905688509610679674859437344580574019158108065291266275109334702175180701271958594988224319778918762919895468103668791951875086373929818666411148717149293757059982468924553702651063956387257620150782608092841920896985762787778072262070752809309286140897494435902146259211209145340501027639709378169055587829469707689967778272480356482663491204426605013417456671246340614543639936307362072120943352628114310889073196352926990199233819702911713423335105833973780948949221761344516231897314502495005510868629618231726173318289222858942528850895611025671966074258616231303400126239228180620979221541127738585144786422709200128409005355564863397456992137788988413297590260873071696270232688808340629289182837713803543157317107342148100568898469715574588184230502046984391017004407859490451784583557341729335906889102846349376178328124990055864640469378665211413809211535480481253200108639653055193885664138868492196631310830032638075006283357066113646814989563613585785661340949504747392059777426328104046958037995025167860564124859928217503164442939915645789455603293985591027943959331957514940796008800006147718820469498264186439127477942204648282256814821143383087846911809983830052630744367872012132880843662224034308311075938201518454794269658525770488033513874125833247927653173183264069691878035400411894641223968228503842819880285010980029407904057297340365901393601047378461163793415394991724761010032348963702420552806089144762245717610903424734830186928757474695847740375317747643653799314715804130665059688670902703399542875713216915946420528823988127444069822796963444323051039543199281578607992670360588680711951096390564164017427130292353967994561637722958137102538447125692040990935746965642122362683850212869802779546745206982944372713416000073979460324318387122614956419526177263301067405244909751706630167563835645773360166307806032492334122024585231462484616173087700112163345840161375653495391139173187747081507698361507734102138018842798978273513367846407626348960033276772642591501878970224818164605609440414938987958353778446495419860703852496268018531426744601104466005908111680133038954903387608531535267007967070542495099772554732276093851631338910642941465841862355884668980356399000130835025456565515873801541575917815771795406808220302264147588335945167012794238265936523305599612341744720561603647318515693107437668263019938590090070698475154323675203299238909555375678276630015052222443464335004096460073975943085036030192582318032346037731408402081606770815509447979763736440560949346324950074851179176493135982888336422177454603902896136461472612668413805494106095365476414391511898241777831490369932038696297049182905364433200153207698250631433717198289484782575328895998461232415042578815730518481616664337329153973293493702280493705166685089579095108031189502218262712456348800373119637390447224205539564682853600126118637970599145090562058384504841815099018000665423476290453205116726424936111768097213247427473434296945091524205316129138183957328023350897745025508154411365372970567589953608296530580375556720760656032729230042822911819301765142455530402340101613260756305554937471178074578813571235805452271661229403423951728120823945328564772188368155286334388581427813352101599843444237122936161691363081681726359520114428983722673185096594783745566324524825329567793921797841521507094506839340336159715732615745463092102454152037185812649595531276837502378205709471772076767423112500025517228070484809144936310438973096774987485206813386149254166454323023152023999119504492963907052297319869995810218310896501973865521001584491183932945135942908925736133998196876921511396877907400780638839859843959341452435154231283399208283916024142276201670948113058623836570852558239315323899587243930576074898702690432914871687131874312472679846888894712057713048290487000789320356419885229906442593598012853486585073395361030956589942848066086204375172016578547294008486737470409917089026727083378875523383364270575907491977717113176799339330361238870331207894652083992942798572241346740450184420777375247875038140031091893171827442484513704326264697308940448780809304845469420805869602672599798439554987249395338891092328617385982640354470717496728815757856870224536747365718531630053766438249462745258093108295520802004133374090893067673780918779957236340610599173625365698167319504718203217939875826372047851754452273854420385506149294952202026882711174015555272914324315959853027412399697114513295221840286912320802527216284307258590352764343570623009738056127352117883522357677139262816422307482883089011908261424918322857868603343691418200585984991682933911020075874686422971199978610879631563184489156669976769783476972763283102532809536378661851992771531237725521867064528771327886568561014275255857855634844802034508682028837291648680308101882852013778692763250081222182736633518561126906680173278442852835933207774644632101191762004659127643412230713902083576401657362983891624014587720997567739683861890796053096222677022093548261159071420817138202608960446138509855060202925404427516338028520097879997437773148368270050463361423799986514762083430478348379609816404885270361450744331750856547552988707443323231844586355690618849970997979877813118499747436099937409460466947494600216891091347376877978227681103618188356349616524244195157083388223341388009946754788461719421971642517669626686965968741627864815066416335282117303540978928147711745283959999028451992959138896537797632382032033371918792098030651461386056742501076224604048167399623998101640073340223143590894958989033803518067857899597173835033366424784192456763580203472731962165973711372850351112748928750217883978434426507490088353209951141985176565831539055521697224068486225938076396010740485754153441431113536059751922700363258166791416369747560612484515934694256937381975808521365647742783556706088843946548832882479978893244698567659880816293598556748774510868211330899079225278380052232102844996002733004167596518087531752570337617472250148153893009733800152298195568957350988855437728302747329218228652270818867754156237453748748303667245195749985326253793478934445235565524188306783492988635288499164330999390983252752673467687498026981290913631923608050959072351952833317641701721384022948166753124926309718269613664073948163022002925289911311612835419774807764378183385264805235811641771344006273384900105147675363490290195881547705343196514112579573801279609507912235738248704955579011003662500461570929649979000919158928082375928994740489498035411400640940072136398365590589443949523827062336487339922171822084612199752965927753849519215539343633325946277330322559196406797926102354710394433757457793338749252387911673088127720470002686508476776592084302684894857739171007116044054269623579801298913278801876708767510186783153762602313435003250334057248589719726265580873078059466507966722241471190396879310492689846289796152832574702354739297349076922620732390983535955719291692212975470211752073352293870555411839131373146274213022711028827730605851058213631137035988245417263195761547088143962524102053101240672970663310873530295331541612619488135473492960738017951136450382113606253816749410570282684450289648855780029692777315064218351801983917889682265420072016771655312321495184804204725877630167515673404503613945697098507341265942230886163436520261127188716571881028202077532553816900732257606303333019884376936419660012848269148960648155530019080452924936728403089668934107332493282920527328898639946812250657669417558752383582196394997669988503794352914037479276182650764922382073336132182150416925000332595957779676164745714666232599257498488360302995886378855564690362736422744468969538981134306598504455501383778291486719886193507999507773377276304441986966072899521042517533059588417879278533191148103436856065719538263380558114490198928733885287360622954841272055437341524614540902846817787763108491121783568510390518844284119320199932386953606512625203226975392856647864293318160737106080963300775933450566464353584173589667645921768364853157567179090465928999182961280819090004159565700854753447040975861294495222140570580350529036523160947140808541526535232643253143650431305186412865907556550509449388501388036299535099352263283944329758519218494735033618413364022192380632794269586949719735616139348361853089298409989468623294677110394401910590140732507471489502636451845270123493944111603439582750797220768430581475215926547588012950721423186014664068763801849620270225129067494480822257280671882039542724183622843578486608480224286944686933545121087034500226170590259610266478396146293432899694640325059194348482980520666536734050534910732646196433581439288511004579392805169565044527684018108078419918840251787029295757120137580032697911496403833885721187418805974127806872386099416597063844697413168615957832444414259124305209635752035141177868406409880255114420576051060039115405719841656761993430437910210741031733676283619461862262537314366073142290622373587603025418689078111585942700550406998860354911716472905021346395188585149001835960160976257816639158494521693500616009534460305970444406051003931540129703033158477352722666731150130538573990853298637442882937537392762625037373698417440690413908885254145739146225909064928315831542424415182471044601070163635207208277890009618972407273598562323837332891549181515481373091965578405767897039457256844932294497162045252963588344994033335789085447455731186385772596963445489845395004046976802530917885073572489294336390999089190457070971698089445915785401312213017468810562881474663796271384688118198958018893371056743996572183477794995296011195137808411020457491101778119530046229946273097450993420386897317027064337184252866596080910934345397214641599535261844352992147960845084403368691327185013388838175365085071717802038386962891895787586445832655199266825914859676081680384177262208882142126488198014219093493841693641014488642129562028596114785805601027319704803697771254367077879588896313774961596329986634554065726851012389075664947097307402685065013650136990693687414475238859468042489095009441399599714901389461252546385471895416853278293201514030043182364069539992697723231308157671008194337985381695068124205669900864836572151671731621813995712315378611701112691783806186445009524383518372717722480591302004974903429285003610635228521202613099656560781306946773549358223077129932784717999342435846024890831817598769282403309696066791728741749122343739577551363962370852556720626136138225088640570351235596472274856009080310011369995754685309606637437837548516899015313964114306363921021480086708220334814108599127385110735752076916827196892165620302984454487774454174957324241314575590795981987989310005763250630842503100074492350428283789913096444713876435114266578219640661420952411311273548203100648198749165496122220227598589516296045294061127637011528735684398142784068498206297101847037915615984838427046316635122601751935025969496688262830359479764742925482096788362959004922911612817077091066002919901486021658457132219473628531758254321124396379705307650129353470387657870661909390756274501190452397868681075590946016242857507942739002435418321352106747170102133692531054782430554621822160034766049393580388999356643161486260866409696864336651235289285467571257058108546322958951437070990699489580653860759072057246668554311996403553910115277086851299887610828315160179159262426114586130050039256139870062073094247407071812470136802547236335279113554815590218909940781977576679959680563967456123518458378568675508999419696412716681477658379412427109308798123788327880034963300607958618278043565585564802776630359701082991904509723795365774204762393640407094769866649069036624800720183308037964947238440727739290355229316704503337343839065149290908449187240144803666968667449034747217004054858183586408305277833106232088181160745079501453626716737527488093030275508088694312613016048457666002556919557790541027727790806371863020987374875032681225469322322704802441366818281507999630957624401251790239767024787809663180682598282682964233401445564632071685599974605100684088131281795358296452399117342409117064557857121809184543651556812619095250829568950451109485599274752912227444274936885918433455247175367694010859926605505923415840536845479458765651217576253835467306243426395986081627985888516612270721738279374117445742657879008902916525957311848038062101555791043816672244056689038923993736389551537273851716686882268738151168093047214929946104468710669156300662679512239081901154059035646607266632552097591355641310788476915955377459813996050949072540737995988617920255731036553210444656845092137997625367005080820368112100995657612196557671358684963701498979905390067825793597737749455049717435948156204520235677992969933804478342446211341727779294048504251263090597106134467916366195278732089960444284121242489499799065645558910070856865935550012117804125476214781062316773280970159529730692153546719594284369481923254051786602655919627345971201331425857003444942157203331187969142779251290103486381837973324385924664422134504267628360486321458154509362554382411681777814264785996062899249216932062843699804489003903449944857196551834988566304267248021141946843392153416208483214458888388818535242264926566594128400420118045284068736691074771699124576744993429334709038970599264908622274060600522752709189979974515877463737965279786987174845183317043261862175375656603826565677489045027787594863285357003341008801558560529390649003858082484160528933872858571670113494733074647441132306534770460765519155623273792430780869488496479962338517471473884779341002797116437268615028431254702434742033571491334693913930151193262025375459407801373460138131723696947024591453162894926518388254503325577316677211464229559272036907713861229380478083194932910332033487959198571747841131869842858031054127132579018272723611622619411232695027761809132508465317931783853048766949878977386666370236358974886207514952315835898105554593735121773949914348029269357225079290850842086746741433362576154017390755602953454090067264285342626191523545801481015594235345641150166217572357593108690717608018102995930189944777413059488381718856898416775787791913663054104118350940317155146109941177007576406416933503382128137229073574127154546095270434190473073368994392248345024218899364753259942853843955088591381970984903973081123883279948146205668722943207967721319373484580177122776731075097288873589812750160820975389908646330169335941694993214432328763865525983567736957445959193326988448525431942675689840924604869811514016507392290924989386217769237798247852509163076939455339751300791997532314358375909630374663835022454864335837065550966244791349280027970648323554746162833841079951773857778304265565532434971405015673728423336449377598290993420292305888728664498001829226185788224546634226428723993904379820951409592525753934936836699691057693412000916685098021026528931880581598154040125049872565151909385757060525484950572900965027916832575614340875682995690426659583161304369995661433862848976913290845839936510973744850134931249331881612265988174943337142845294223537499554854877112064031860739482612378806819533214677208999286807467850853455322964191152705149358629029475408894010865941361113271371699303498170550984957061325044597530189058970268230514068227024922315351469988885477946567134278126653322786226166530928424919658593444685684014499856498596100623664911795597373964250840373430101330435367443012536369010107156058053818936154673835478940985014214752132652308800379434727913220813532607625966013391723502311044550977454339475035690527102489933701451989289466271877693887008465950142772808020729676437141386939424547235718015158508854309493485604968583751986492063780151663026921200491571159709208662728301533536222688095458913160937145138861895096923098109575754646907340380473919809259330904792116316821033874581752664084221922319450472841402750918045740749054834001692948171181012160166243642371118918205511198202206158681991262699748002358312877178772374916804261044773726746502148818513482669346159737823308982274849186998190851230141280126149327489090417240366458983353310921937758070988079114667685328218060829166987630502662312742798305598028809987683379042285871431441880844761879394612079733280546312317727718130359931428987008067988420100668848074869479559247798092860953265615462688172368309386369298234699385245422280040845864177778161249865962140793816101854544779751497238340950872132003319358923765123645937332531650720632151861329847764387077099322614235521885166818583229641001609119438509919228569515756436648670580553396906599681552376957338481512000041015434641167569395087804281362244691277739475003093093646735850765504815636625870940720392022287510347545794046075590732521230673033962866092597289175304301055666051346100574113316990685414782603775756275048726937083864033084502087473921967540924183674164631880658936976319098622684616805680482811201551569103461762626829363858946259012188060139349907842961311094881409804087970842674998520870130871813530737084693684690983115582247131105565358567946271098367737838901855592563679645961867696751307233835798995703048900212377269350975461418670111747387077156633876346004177224658211653426583944372509466629767465090153684086875711556525339947447227866414509737939235923009295029030725265885783097096866930767872856926578027317419631461860070441006759052104053564168445219512614366660029024919183647688251850010115180866304894533912971207395493703650870498369413466884706286351623485072688704011446332636793101407911058384418126366165000095003176112462168870406479250554001681586020614047178071035101763443951155645453241707552295265736627107607801150285400283968087285148890847053405785726736129818273782133201856542816766984420828480334689711414621004278145504338154138890935161773652685397989729149362365835341175234495446934254082562796293054711559337331797945424744598612503434725128852037444126534950363988665010485676975580312004023573046160471734138795079674281975301601545397205161999587881432221019087167946678675084891926484027212529343399190203845646687945140106224761810838428857971098592475297201279237548003925240784054300835046070928175314770223523164957711473244456809008218613480614979799107233246807652377858354619698240513119339093120174795116776511794005561720242625301750729869481325490754885444062470557497452728275981875390576395152288841819307105655578048337556552419727961867816608302703462702402173555303139851687349163692290206775731666377172688852602069141685772386377713108785786159573848079098247921483748273110464519985403464602696828536166109451811129033317099673331359859404102489186431257649004002764111924765089441547134679145730714590727532341060405966486867827404003353532874812020909264818443484668516980201556886692979234137332263691356632496015882526500022965673039872518708767614380124025439241040547170602888157408722249078395532266531650395601007401707478031405236237245228714327265537921005971344044842249050876335904528296991740418966637901428480953885541596890102960214916908986233970975391259875121853776877781080167172191800492563672490792328723469887205030938067410637312799455572450612369484410290418342156596143442898669300929410979756587118076133719942392907750525300269548802132554032235297003069957589136477416943853504441774039652018846800741922528564324158213623171390589096551197923022051261630514959113675656809569845867827767635375527644554150547636905253834325558620712890529468155341934385378846347205446375462559667672577160362579389371392698164439564704031350826178389652136551642167486857093150876211732644650850022439002900931361834198402796787386033603097134669952263577985392075195571538139627556407072134636713805037068137366540536808239175623307680021805454273717652906978756078989219562561038735199649194273666858433134056239684142831024727812344543799682946655657433749050215945069716038413269067149972463366651782484456053465037396706465938730749018893631785497878781569638759369380581933360856792127879448935856755159439449458512426744810986109655732669149043696509761048719870283700045751067155260966123222149148691110577706033378642556784046752308745917224567391501893518631529037249543540691217100251346875888717393897128873061070595507089052925656177272963959569515503632225793461202000498622520947664912373189460297997590126651230596171237403861526031524920632485289177470473128527334130013059925827752520080397202057406079932837411225946424542419203583389040601647779966728484780857846869968038147946385166763949945956582705311867661388814514429515722052738976244667773898758184051090565256813898965622340882049331871441042486419711829979507229830134481736533415081678744446915784788387733576268285623593277650767236403969888419970425277212105000454885197504454605286076379060058719869223044306630645197083073972572849918513281346395156601202128475203891419342745849510784342953268070763799605290745744494082776091735801665437951719384145249109248741060166003244524460547949967111198898669821526009467763718728874478707928557328818848172002394255223108374450245055225830582797681559287690477571819364490563683249287294530745317527574000178900359256160269068991937166255609398797105259260616650144114604274489457985234376696735442606920220279736806840086687080140808238272319548217274082410715557544269745422531559842215792462279182895917246213903208806009051783736626017738577537815328166686369831140101494167936534620932851626333593583181804502375025825296913858050592742131508834586709457618840103131155400305463149811872245375363348111561598142933408150819712627818156153388563111641175355880007516407770614686021187618603193239775263436317389590709148430052974032459751614834658700450745506145225534175683077052861413223259507477074544277720667925448087106691928124581325359362490616196709372526794925618934388067429059833652366011116987262641888508023685592295610768606663957771167061978637211588618002189075498222880191996777006662133971983869107427941133094664942403265979089646417785260769385467614467782313448228486190617433327941835768595413455308937681192186464457193926895328079039174271560557672249762968864680010308849194274409220177783154202501477289945936672933664562991540115176470436566359876809077221174260448429233448857693006883938893417253024257974969278492061544022042972382841825413704446516214702895709320007849846643214093203768894772864432218704937219997959245553243581400074687576476456490407139936467340027449218248795470060559861430363195180315950977659300861081497025845043214179534925798690649141512369149827925843736078292955257337986283167937803797652596005747339126317519920005677177648307440757268458135944697371613062690727055719706144531558053044814828410300146329835551873629701511628969798567749465008788875792429980712530247641049401786772989066529043582646770880848342355563786059908132872712261023325071777092207386306599610977727168981361685818222198497863434437045323332798539655678815252052047274345609551715709634715402751698531278526781281822788513720752873298673824085561643296001441541894949484787259989255958848221994721591609285800449416586403348056869848319604891231643945275864604249611865956737282206318578389708710215727288656046173960621628417871741452388583010993567852836085481065599468873911506195681090941927611154222545384323195121889004795938243760933859277948656617663471282325866559455687155568545484019424271013136577908762160874311297624868638121396154044729723873896530812855116332037191375538173694165025807100901325122400923227563789218032346395169432949434322252100034604733786131511495990657831785426299227286646079378973048868152608730580566085726100376873487908309920824154123422220428527718941664026770385028906077432362083385671863310648242334959515050873832771039668072266448980342152409359079589082025567619933228058076367393681893516426114677664172724459945744174538894555241674894316507668906194011578906032979380567203592698513740972955801729859040019841570587482792018509161051103555349352655983708196505590311347545332176349359558619647910457762677732865531766141835301866599572619033294807742229959623624381473212899808411525024821511442248593375506084884861532269342159312179867499928343475618356865819092086338577253063428722542091115964318437247022543571457752407140378834948227552034600938023378864116705659673843042514594004563060988558094882395451481223388536650200140328774077886704639973139917625288851234736018293372903038274317874961005775068260640385289152883104944392254544702623147240688809905720379889699578561056327063613888198629760021526104536489311453314888534810595151283518939603722252832452432527283765976597042494289435795036566893440143549136306606126537010823398332146034152988853019927010568387024698575823052882524256424963309883822399083470091187570565427823519473101679049632351057343760751222797517075649562102437997719412744770606470341231306423304883554233786195231631570706908798311371455334672161889472426433295376034475312493115753459877176269365481424203046003967110548253504089912291307689881148642067848888607466107204654647362916337728072630223976906573175789739734115394563145774821022679938261765715758565398442337961094107767104931443111679296381091526029062840528845829725818366913891790757416361795897664537048458051847464415563263442159741602279109159162398157762667364954598146560652767542460130313813159780997947645380840444136531214842073929264549146158878084145267948476122708017346490704541234049203497831009742438589323011254184775041619340026999672860742346287672048503501175664719101734672122384941332885679925810421235013599996578190846348411617829726429860160410368535695776228796568149037897069608048165585733576200004483167818809275942892149292880759189395142847882884913431511842668918408776315285639457124015288971917772841938739626216954650847706124089054165580553212611742245530271420503391439047269093625486602906540043083814957697889155058481118617956275048915771536898915425103203512863321684944604406425059926679280480807888075939151833859855231756463713768353709760143813155307852210022167307467088781374854104081575075752171246058675720585620032456146016182403069595288753613592079915666010061598818845791834047087208269924865642279491321181484779813353090113262279133026248195377713316648907065952970846490032216170485135622564836377704717365648951228150959123640001365092062575380255235194413390467262679852015431374627160704383123800470754057787339972749692579096161786823244473246931194488305840559895811952703596624396809040385349983150602800375867039821164999129579364679478912878219735354741429708247469670735121313887231937017476121520909340031501676291347157733984070018088021086457441125115921170514747338591918680968667587420133870776911786031222246987653289146574151979762116242271082906874779188939791579447386654237605502332866918807665828029381551640658613865340918501194650269667996511897947595576314452602879518003154607885602054540868174067757058969415539401730641317664413380176898772347794920459542502621707054327411057260872925839611111925654127992177026399425542742546156257614453152219643805346609298605713929924570305499539332723891224088802857457460358051157852178907838181568164056075295208757393218059009040339106295876007586600715116175838799040733260988432460728613281116074901952452594952969448060795432721029397899768232721682683775322023195737172861938778117761418294918119947261748720298686039402408128168186153049128496025014346487513153905279306169266084423923449459048061367501636435775635797073516193144129522347304261556437279472598325328830282695808087819530043939173012666629090928880092885752847462716502438182262172897825128210166162597704007981702008919463497989593321985796598883641668252253646896471679789318692827571868745158596717073239338596574487793399869679704611440130023146212184776727740651141535229234037997518701798639393735424292207335804843080600633366605190537071537092857792570784698333631667240316062510349360601881547114121460110615117220354516998113215526339228482563929808466379355087279785659576148406445959934284159746589580284691946373467075850959305668780700975430945117441455145894561479818979451847309667203609325168830528848483986325028452894737038703689195706458944362744261927685856489517582232707038051419280837619547209367912213289947850486300190240953301609995462130450762127656597372676108089611464724491553780675029970125929135596727794093167454967830961490457522841998673699418010048228175151380850797238569012470783959410614719263583164689913447494078414653316393836433351540600953838570297591763808999468502011730318062411792091718163360237097033877118309689526822755331101285475578186248506396107519671995736103629046482299716802276850226485640600343918404271961640820480260053761431875487556142688370043890775867041891637618398620426201368052602839854177078861353865161788584568385136707230846061098590258048689855379811890316369648303758491877943887066096849235719127397923265196073691755351611072998461992479904807234783463377114899717638897963965206082298857279048203298326258305187291008642386052872908245358265746268950741873093568129877256686340749321710613881394300410199593494258999534318964134358539067090065991873643066220921223857874969488801458970647894813074817507481732730348587009466414873335627837962285098471106018853661619579769122752831858443878253728767428208916115959017420438600651353237484026849681023598131918076807624323568830876224926634939824564458503027438062075347025002792470471290220670869580759032787082735284281189682765285920923156180354385895437384487408309581089549801310658897400516981204103237994078202271998364687712495413680991180168941667096974772023248394740771658454808323398413613595746846103187776360277291478645870755579710802088905409861022628678554429645115030167703878900825432950956184596712485852228952520145921122941966513234357467176034429869750127529992877818386769213495661251999137145177607705445807061545934816059087013500156234662157832404249357226923682055578046352835437061621184315773815986153924759532676677005710055123651184137253147741055879698431710615094083688409360368288025590025696300996988695828451449101468202752212864395223803145475975946388060703675343563632916887751450098390319163047696318454469747539106104317831388135610403925563520446279414917108216608748053173480291460349370001262933210737123848989769480893447527669429246249636989918858296471961096777613669098091147157581522284365175475173649640671467302681345736008913445204137864892151260013955100947715877181290068062857236806178533948959463856815428144639000946015224547708835356853322417280356052785451491872772853439842626161765551618188067168192143007141297666740878102260961856638561360256657456913576425690953057383292671706528545285957483089230352336431981471498639497915222141438034538502905141727621278290593978744708381962843759083352147258611779194095770646950242509661791236484347379992647958563611292313945324238930576234656324347017407079671665599506450161848329121636729586150842644297919792719606486167158119081790322038364912539762474187481234858058287763249916295060986819070696907139614087390827229872805325527464809296179349658258654282536641901742891301805034457357810412278742661705570125654597558939848031227176265524284806281798031251618222548234488236714054096856217238419115293972993350394944104195077383164976325679617424185141658915624061838165690743541265349123799426063344809818301051861892747526636208909271617956234293649516087818218706791089333467799836471374435276574339310680241505696461844022569277630158994369679591914524242980708076091927975218426911940010720169555649283630663180822933777373985219473813024008759480421047331966449369236551822343884813514181588544026321893224372820353659673874707621629750739683554555397226315757639010600472943804826916649927071425493334669049420534512872667178767484790371248408673339888614917159927655140764796401802510423128274291442604567982796124502226649309425040963873816650396787814329233100395452579000695691827991658654403343199006848936892436306209285046528418843702867213250776348409136265050585634361986925409857921507229165015345441395755112940462078707682990824532189133906263777936595017210135505081690322157242654163811643748473008861010573889178434115726844162149201044589947663032264029397832158312377579327356755913820802509476496927856645971311835759782846077552829845257104584162579560750865775650818998902565302682808667963968003405443653510839627923866373164293758361651949851019615563960298836110501969124838523801229141785306906273158982425662505773761545042809052502532442216213577488179069535354357075383843641702833443433534125925372361365008537792759090022599403794940549515173291771883721100248153302649903775764514034357065650741894282922630567916798205995162417496141553767213295541158874887041178695272845619611567790127754807088935172097549667880983232808655686848629746315101429513116694270176514315576627553911804203701798819803813818547659581453843325902407927532132983621052170367252969569437649606682995667156466977320939100556704597897912786449619388491120375875731004350996622506534555573974035209699404946697518102177022495972928754900101281464721612736178300186968135240764020616099935710627957381273828267883823967647897796630555407765421630104237429318976946876973230907353498006564381261181033147058507423380816238525336375948258532869798785014513377858154680880276102607075065132214324648371414855068001147186206139494114671307786635209801255207773437371032068828077599004340816593968193123851999669879770688504799856649115893816659129185985418569811272901182163693483253178657762857999705330234884255726372853268633509921609238319764166910906527292357519932176025807370237795941381897970128549960360022762074723634629136100958104473450097730720254749056239333573776844575387577313663953507692322382688952642500233549768450658874327521772245652185690256013610289356592737690701940579629914850943664950463083595819792928870433894730767595388496300093905915393349212955206919516402408767434162339825034899620660621901392507927136738758332999212245934331857954998361979421013877291840933443902017454461766196972532146704345204442664825625644036347753266351860270730475989458560381938030718396627843817498874570865988383320326514394034639507207570824196290270233844163955156962061485214050896396359018477651014685737599151314194359450176020884598149469485692548869256527948309181257085876822881139574902951409572457389549610114204109189639746757717997191356787652604919004876702610217341853388029209754031370056146304477383812051113823108632761734973241243672033110430937631563956032626335004622270961839336773057631976816293719530347100672274498841671690674081560699473969364687124814527590351736653961135792939052488143781025163616211077846266275497316276681370788731634173896860800941254669605882281629196869117831237960286445851558096578683065398780513806160549295323215801992456252858783555664831345123629790777443098406995276537415614060474505776051040172917621175583891808181990121101110224147927248157968639248913242312424378376897762302481710207364309677229158523320322414873019065213079882382029423990314373414945569042086801970587496237428943820012335009371939873900154065224400344413636382203079329718289057453016206283765124925195936696634405343549909182057852029808777320394473574439811233430043454187926919598160429461381235855693978673132387267769004143474190520186829340604312296030123148157111021061852423143323371365845297955427341626101051952833201514725447073045194102159629269183955924135764871654915118241833764721212128292080938773285200216689060485851756052640740215515176721115218677029688025896092256214663858694011102238565419084921027800638179959345904051376466186335902171438929721301361356296524757561520118606698478541017377012751043662639720279540347650538354816835643496813469077978017971210265210623185272457461764970169330854737960929241944857978073238386387939998060422273284953868426286505717103564406244908104583599398530785053910818730305955709733917698726191915945190882621832935811188829601506330129396228811616890123465615599560962712289097888789473876781364961576751506857679410221672660176649570513699804097965387237923327237890409057666143301592081128383958819415282091608194125044872168794717104350661261967392721284501042322288870813332039467135623992098244368817591257498646989659115883594503728086589867724272381907909348861419683494681159273942882437881639657859488586539544888323103257920926463752935372350597631445320539325670649174681502701057163694696006618259775521097232627883640314434312024066733356142420081783616058441311634357383037406972955515433293197005552140932565358885580481683798298218353042819670394073092781259775010944797161060985274793145020101246732155384702170974465575667225514206091900828813908698160661747476039438653501261603267581017032197094102994958031840961288878249928151513369903105974635941797531810502732198464364018765744541793102912901413401577679140088981603827332860016044931258911070156776209413475572226053205613504454412461459525779648830937297534342782731775945725881350577926506612079102236391211250083688015037424412842907926323282514822059083449170844614162114653109585471510848866470516072855419034797705193858325734637217640494025667965790307595742734377765748492618293087427013567472025658934362517573538099290478104921413209426369270042078870979401738311492055429277064917033682739926037024143571957664854848988488837578030081161069887682206395073283135043955884208354964579809853893392744009842809546013350161355565168605576559811918361208802402337826465471855875826966655902544404157274712332873338624796071519412414738446758135876778523716598510759888055485354931285020066640339817824119801214867958892486318362083829006882850101232794123877964716922246432824121785618726326329061659857885298315124758815257227715119569584091646862858298744523347805107676225762407905529052406993629252822094948979504191112124442501655870196476885900013499171852934806105759865735439081367015936854632458159826721156047068141920339830157760829032346461392021703851466758466539504104911527611991785406304891137864622985958632815612738219465995749683231739307477405621058381804392644723997038005910197004519834378114353240450942508522737819706362701629239601085498643363426041771803617795181411853829244157004742385016298477115771032160631436619869812827755155740918936603008866432333876870653021274308786478162328517884234455060691922856137854473148574990836387915655423421571781336666236825467059251137311928738623474396041849560883795747149284122437345653831306816061119353478573954401821273702599510820681219233015520801594607087712177991078383106649982125631692943964198981185992915785125316859589019775225071618495160694385739490695883421966464563531377793542025555596712538600150354904732626163816870402802401687980651112742031401498114428406481149788546792175685488765816215377444940085939425748674618325165248480324213034263025362573357593807673837275285849269389728178484789703147948184155947089403020759820167519108299571827901892620583777525941166262550193735314214926648072952079715008276482358407573760821257077082196401468345305324466357761794087445886292749720843973547691168756896735261666570560365434832134683768415125366535139373354545262720694817749518769878527309211603556007232943440656975566423452927854878581966809600177852576754984087893358442024452393446353612484367778606123497324869582051563935561234864691405674563264288853614446442934776297885570451800926216427843460793383150081575848477165526289062307135903418980184105293931009925206030290170638849484785541563103091309316900112350592782665999078916317032809293601281550106518226053386572761922018816629318725049672427125973769010328348439251756355084905355309340581748156636801046597150182540075159168933770615351818826366454854013519623697841464028511550453286343638198209073637587311612066716752157692891267482820610072970976332758635780122477778845036264991762466655555309604613198304906792063126791785398931005648336148084825226229836532732532842532705863012185379998915790466369831226234790782463109088374526128179296611530101213787299900413238532889081391889174111139286995680549345577327519808084264191473147242502685416239848752791059263056291634266783743974754419691228283892307202970277666694205147372629626598838476218397567017159643459606868700853568861404732480671257881019402323050457230078803071785218414153232983526555038190680031425047320356760020525758844447730505233649548695162770213159263555456531020019764451883086378712984619845318386354779767117522644460256044930746120282268324051965644521054371978672995820079139913765986728608732731891153625955576779625412524946111407427367579778916548605523132048805403473543487130711415715843155540631724774267508151937045626082002544640237881047297348370989944696268830498631758498594624733147927625056577151279636805911538070642850096486224779942309313626458888482566053127045609251119818118821041107610626489390144930800432487249616295395216783810833854599067929424974351493925951804876198997215972655735497647259586871446053233842489071295111028963369707721662000629200728305676688138806287656200785397198226943311746575766939101350424067576635030368204348053266905886880948175396711561671095339464288853895882638938248924224142397792217645205855460983515695471941369447656028960079365981681276822546920226096653076996835694403300415486416178134811931931884834333311763236073404432020937140242552894275553168583209081732028527845096952333409010475505987137611751057553265763409431583536330740748435058374920417653122783804555870086325732992969069598561476232032846775223969005076480033648266486717676811734647146443763387750459180901640722853510086910993439917487431341828198511015301149324197778491302642793106833267533125060074336479234632236950692728003583010304890888856889258460616764901183308614283647381005097267184866498730344991826477351560381309673175505647930317795267318254130455938946147937866336653847512776409679177126331416238156583312506486042650819378640624559870164418439475960253707427919102118261763600749533213597323165028497764972918581187479035400297779689872306859830777485763199608899794950619580073115121565586206053484586122535219741235696798891524492988370658931893724121643447178881905169020580214481688534992768802967382850398297200606703446480894825390042000369435182353528923968674084737265891999551204677953951525645270850368975996115040337148390692196453043638762297495068055098804648446040093113059859692599837067207634318532455239011251029288367459960192728851000966272318387962310857348780902922668873933217268361799740614996493166771107357826071112747964894859842205524385788633583349250572740671781636959524094441406356853293472687711640926301640038117012629290568445418798402640745211262929540274347356781730214624783135760872326580961553781143752946078249883720013944204105168502745630093893826887501588284688102668261616646683941676057532907865542725741030540934733887686458450809887490215857918883990753061830506545187701324824441287910990783914532969144218079884151204694894236616571027839902922904570906210248120906343755186386857788328297217020060531262687543410932039355753744656207351443941104240296876824788259017604287774056419137449082250931847340923991620875074077630807227998968158729364293871822274618943939618992324680503892945247124339211732949863227313461711977259014485430723859267878665954411176447906763483654551845120174147708273303455126477390897792319353833121656507532239718865893448525234402621715896839758364830218450390272346989089777754609659067636168996178040691626661420001748415098507119870167259817827439540899546564500432824152561611094035721555915275876831492325172164835794441431531611782333064239620183130509737174569003446229867534550788346566650726122613835064464225143178220355445467906449128190856191115022689462510677282436172614818440505658798515395181269641981188698009050142873726134757092100574648035156354388191051344350436788945861858987862045118151917973613945753207193784665512167703283718179223629120640138406874382432639541136089687960035489913308928404031996129253427572453110921743683815623437575748259999453888360231195441445760981522958912350211601961375076355211955377494702878683898597837807100640085868299452145846575091978478346088531061768890084303604244607796775207281438387900736047313029270090957567273696424972104159552870569520644588236141807995506450754507858973285466892989519823521592518151628094250071067375452362446319727876994954393633054939209211132784518716695824533035050574121189787524096759409833638661009000936443514551506564116347050785573220240444138171228240235810983002487332329160008433540409791594125133671839808559558427888734067935860386281612203487415496536300940259536578676475765880906581459834828086656925553387133946946695981907884871287656174545547999890316694450664982898164922535747839435650089153281626979887154013214151899699941102630652499932822187355311352905121804588506514389734660660850603611086281596072168708419975497649403797854175218360434044239411587051520828205260559324878863557450863304861741035093824943356651388331573983278286984503686438299518723918696070229508216144765770526718338854928766688836843000768039688378869351581997844353988018830991197575705725916943042773886938326466144527139638820443499167509662749268502283953048963268805544082956027858488702833354153972243400573746995320258373490225806494527983310052139593258143912837277625490453208084900181128422648994809651457313866031693910599086211220164908256434202574828839124385802740313642321479520061132677822003465665712532269681847803463968120356440035866333311071001628955918718416956859790630426002046481240463044127538837466586362628581222254781283616926172013302758535981091630279279648889585041075600551821211170539490009420139380047723644883371747777372405537303592559805528766942332082368233943348776904046165405047553831942303140951948671071887810212359391671172647477378327593790632187187836045467263031565233855894491897721691189860155125190821374880917262470544996519588619150901371758896587123783339329357701664371274134608022058119761886763267611227209182629659206703609118448982154920100530936827427980068642699091625120308645328663820048888185484123349599323131264847264187723232612775200803031629918743888195353112118754201210301890498073346517024462357130954529651185843648812506183049785018378711038755785196590066898902995713328283478564815991584522595560015801409780818275271053044682485635694405653376044923333601547498019751927241438011954691031523445271863689431017245202627189755701218333431182252206720708237724218483201523818147700852583210633369857810690069534084649974881040078514216092386276641695751625019686992096105909350227809189217758245420015037517979309285320428302902662573138803956628063878246621775704596031395764887249127909469679296391763203509726398085454074789140849738130407566948676221405760503547510856475073994629309263520395337874074304903719472743100063624209789517380621335497640038823166767809148007645654764329544384495153259739303993688081839873161769453657465398387817025117720755430843039897735431633581385286173093847937430249246775423685906289185634445280349095483699927765464205081076625844702104325744654756354301428473292104982987117633964157381486388013685897666265977079363566642700913222433527207734598865630073938276931304948070159701504547792267332139176898397552782315693147417470001709868533638035747868798609193895159878354512245222380161749944728729260911341602609928085944173479847133785585849997861036840231996935293601102342832351861427870449155326496875540395921326239766935736096793164520530218333213234443307093505099783341316645445936600874149057088894734104736469799521371502162118158138427965795841793971489971395931237149829443545033009188209030664545278807671727720342567138789296802167122715243189147787418639352754738044457012975274256774139556432451190554191370168229373733946278310287244876196484868434450993087172446282467539559843242024565113274051002637164126547012166232938478217212589072104538705820473718526434822595212807253911724352550172545135960754614324218055629001439201707452369303774694192318486886953662342994398840639355773038459016582748169161980194704869780294943685941013069135650413189074707038333409821865367665631560614682870634691427903051241559452751767482778591094453177911329433119119548114123858244552169288628303045200495305957244560160464419530433591673330882161152510276755255191197358541705719188153540749279407284469671066488160932181962855762541800095247221449971381242518586842771266692668057686558959044695243276743083515662449653500634596807448415405882984831477943846066465449742843059653649163440460051262615462264069738829360791877024679670430394043773929740136432990610938662861497623375895447657344344232906494488391255453313140529010130937787753032364847616270969056437978526384278226301228296922254230799750316229295575760623399832355557219401890522671257441266677757754506307797349890050016901254103599818874461384696301906514054892661556977980740498576034499719596489726415276682066344137921346657284611338528381971984036385912771171832341113571501035656050137273877996780732718570223970860282430008718555007199733557000620112654191591825059077988027061737871181316684822285651816694821839282952020796298229344837889413895807823904679851300972535987190395009158818420745572415477244657837651815516894731652280097325544412707472681875272334530401905714933802852873956782419720743627369312735418719307009913022444560814230496887473618751023485956068554593325545557636327445870288276930707193979456832551511529130901267714299728143358895722159737569691866062380342453551214544584839597175516427822455109323790263023665258533059960950636418500337426684155753555465023002270271143707708329929857141659009480588778362794385694793615440894617857776639025256618736397585737113259370338708113306972898623516157000059936109596137838490069090350948615038484225045603950080470155478240396769259224538977594842243623214987782471694524346944932468490721301074219500110512888161820064430898081070155723149549828307533474934911780709475191916189873736794346601744043417868675633194082701559457635786087647289883492327011088617983481925525967738314809260832399038452623031994862718145392137114601676301852788603406812821152937713332356948791435796702362553029307219965179444500490873284326753477446281847004092319216592610195675718338551659903366543275219148423943438618765170327084283835110299453631298740567652011284544413163848055827836011891144049507233207639155180125272710826796120882876380841140306431129051745578952077633360334256138125338589034535983263465642750168343371765900071206358364836032792962768901152513565006317117251094427830363704076150837820095246697863836370026532924118671651276355747721907549702725455511904142940268412295809106664407140153368400496352992598588789140460634207884613206690116890472648497175380715685113440703526308724579170324049176405014127510448264487534696128637366569142998763503190010874150143824294748284243089174072830956283233416819134299178944608794829451528321650783988160650498080804180630953803637366171202316823064341893217407711159457530847791562544758874221341025131294247904725554228098282810508174298629007745670613158441041073176600556608646478935656446667654017543937407460587947643030238070771908647941320665984873730788743922512783642966034611993553486977564274652351137836402510873456699508722815820971786471655403660588642806418407012160452912728003826810100723278555126683062276751260381499459705479217541685563162504497839324832551583502510978350817200077929751106160827188481568198584090763835979878205666831746133253148036279457573592483274237949223281270270666778995539579639977756778182323432291311791670966866228688673168424945828121073826117117896326122647231452603360921649950511628766257929551587639043027355267610373058684286516256718087560844608060624567853134175729686891175769908636197235091501326312264600871878861571598222124756284335379966490584514447106702049612093760436779996581293499170105367479992067340467624424055298983414251022142062950170971242001045592352356013370907297101287138149866128736286569079097296028929693932536851793145123959739700020431178407429826408733191613702424819636861254518038943278178011460139207917338705532265721749784663305603343033368850307928268339825660581833025431562921528512957115644835410031650013618176494492142917272405622694658294402822341810996488564584095795088261035974539914345137272946946852838143844237723826165546217845725037339793538598615362263320697174406036376861248900548570567317701774334687288381101283671409232867908157843938374047555147961742666066049180113311778158913404561590666414117581867001566678153347773968492676834308312119593907130755812230312501699151563686304446344162072928790200114715706595040278099369571695691559325674210418003385447814993565562979396104472136822499888190632391560760967628920566924182544386439884206402787344883701985486463327233320592311067770875709074942981167164107832914386886699794452261384448055633736118031405458115725780104606567972861436973265293932498050409587731104815311399435136373613471801906154002107560422595237450248247495573873405162680202288230635312427536971093316838878740309635109346852121063285078250461957819206463584977927479022324882117653216950529078155268698536956250817057079363298722569812974420483102937212573892643753186913934302362951600397041740551939069241821460564936498741782847798182926760186918040664978828258602740640338625565792155322210866906672622196552693223085476954514588611052001862031788034775107510357380390243521720593784090099881574314395759938054431812764071599054846240221821073587968555328289352172245080992025849933216076508858169892282535186312167474605927267324942711905420038743774971844743465604283060510199222086209524181889713172133377660244554831971014892346030893926122560131196709065001251205861142607180046890894857279629757417825909465125704367798146106127132939339443343660707080861105180478078333436724383298540013691038249380358881556522413474829750798862957911896587611769548181719797795176453446480759374448583369244715660396629144641506632987601786679894746349859239021852029169985894017802629391286358468487683996926209039026506456018336462917031547671989382638447921308290489970851641485359190004237844549439559031966456198143237833031698033451762087921010525632397572567588786409113394954376032357562378603027486287484021060330008542105937757307754558179308951279416788340828617780646777825605815260234854625372371071768915719051086415736635768359127548703563404257686647996213055155173850198618923599115058648470866517101817090257450287169478015581088312433864747188982207386458902528567167807236496095563436619900983712441192966523355214024274448011741023227123521744487213616443723074391558360062171927014194360899481123859881803084598967562696201904418181633282794644571987094105609640331612005451713957549101240573134304885934221942059491870238785640620239734774684540182219407380559633898970907445459670480971219318870623735160283710418136227719135174397130273513711669033874679408709916356711278638443074441314416149670454602965978310665089095093006182182695623339140716960470550780514224156068849097260381904218238912159180186229985352223107319124224454923704674972543630916551605241882102255135308325581631643996040437450802269782336115486300830540747555155518037349549027702742348340539566247075797095304538295665402973036826005442283885037284666344466061360675032926446230338974221805451139666176936612934838804966019371676933572069887868371873721213832109766066372541164646602288205355907248913333281652017088983429428407761101714532429370709153324368768368260841006128418700004600677091770863896582199917513700640941330792943491592391102776940373440013968939896794749137468142359369914767192759601361572723154439941592217794283992030537105135529218464171249837536404554365586934443897910105925435445805541395923058900441707749501677060005549574041776842446791259451013581605385130517712285268077274467242946080335149220220147393533369962988929441183203855844476657101367897988465182712250120681875609469096465106259417203083345942335089909563062477993845880606349006438952950584077048690718603463161028510786634341812743473508868559063245962643026696418726245395237605358790525201719423581726236612679510991028203272321508372661576778637163450113929975559302097168408562533827345609864112217715197546845646457007624838905729013838213271744130470823480781230811624480999978645338728238898418648286362025244169752619592748516427533834003976397667058551056458639922109077547722369777028819229227436691127002576699857279077215804540787752651937822752077852468290255526242911356118168342260700597524635551769200752143785914608782492699315680220268177348356746343060419066316587005593421145998118851247322650596768693262911410607579194360989252634310720369261741545209242712999405541796468178765144701759207709643142515431817481644052329337532230176923274737828519893199095264912448309964418162423313260947468594992498890635801991774216393868992947066763998877594700468050854636534222469295709520647345814001439252489023833378493392227916698505601196099867464764779527103987810733156644213525394438314668042669610144166469590346429243495747998913290637228509805641912915327075738769897835506540763267344791387494199574651249271291085262903999636024228496841026180470855902831735090149496413494889839731106543002314888767680496606103050516409455493500424079808689313235570175422603781198989903909000969397626791158915960112268749050694515153351793534547935307947508378177624713306726141440403381793841469877872397915308001276846750548237253435449637626924718702964765748218947218289238996511384197021403964502416874585010425199526082293118282897139655396712116277109420854388659736704132725245630337839269212311262745122447146802499924665841454440171054068404993273031460546832538764405713071053351193873533528945464760669916551419827183433608910562829656563350890512195598095736158693245956542205895960307205073480246788277468062440043031328957460122209270953363322909138233145750087648754741607265516659810498574567162531332201539359897293516936733509248734562099566505999841337044305342414302496452656625392105145142506426651434124567698468921618247847364791790753016196360702269737719474192228625547649975295178362170564317506519277260406294450751932768657601236094270846491480768211348390172136774928475273509233672042439477173691128121812873699244805738043024426178664017864596432679097797576592741910817510646241086956246654835242251316120403639612339944045197404228809742616229640893897740878792835590472983761874369093933995989531864089960905854897496133713756397518841978413511562817839583252636321162704645475372525288142515252275965552515458693045648169110161537159262028456831217787464418621931462470439132610785305682972375915443173620526338399253452166810582984031046087791633629019982140717191429037096537881018191004151283198201090318408779133590289936968203560535488330918618495436979241214803243575427207077418872581274931762866236679544567608363221483157560253419074071227283019128085128421559089909445465056787365916021309025029606027702252792017149687994185949120688030984225588608272153174683058505038466993371079052703427560700014094735580170242712737873942268677869023329673307399051759893633670561321765372239928873470684004392505955628672675194308925421467120651185644807130736679122645626642348327007223356124963186187146979713620352485157490851596441518829154831455004041867088245111591805698483512956043297039125664150599683833350126819139570066477662339726011266825413244526721819569792998588819197792083553543640608377302720125599268995277768457260565485140483970583850081366369717882393807322057523187943691454246789132893838920077988144527011183723651675394648122578499292500523278703408302155805974762215836843670853142257273041166843379351026824371665196631852153455139477917759340244167668161197512212016308404243575976965747803796668026941038900258334143288686844604359204350710267108535899881029025886903687429942063131531061550928271083698039222988498192576024795671995921730858030524627586215849697161244218896631113204496750802014390776055860160420439267597691577574770332007860500861356679737345709280450557432853363994888559051081591586453945419158642347637878586739993445510821553798062119369315941432126336726764899886556848735671368016448336004448023971811842325125067913440581729323843064880358070535940234166405010398382603002395574274212564890036475142774908828464040411419841702513412147075609354486876581127101772665407479251680080015781291364584129385076059487269531704130932625201211043430743283012833218864455475221403518812776077916409763987395509563610060486933790804516105607077031830923818892020543944906342961250990979182690035606710720212045046193523764682231040080610916629810297408936754828519291151010202775905745642987500883094688907354550691103576797360407958081991693543309461352264649312430097327061809669862077074665679628219407415910150559455652177339445738154786504461659773383455656306810012835612918819678168448112196904245001245986986204850621548186051341708110304685211651666367659084741463985965339730013883780877287671760447961336527282090551347880633834272108992829169060413621512765252915066694806049260512920078285907039837497916274974846999398616585536547652295533327209968996847052681495030538850479659875894713779560904917123604785003377619911131562768005801691105447950891184247993771851584762123967272659786213171473797861018277982089934039514676593477473845199203482496758297941675897171638110373049694507834461679817148282339654356672785435739982053451661160089574856183081167501043516839934731926384855741542631088270957419082036206997587566726931829951118921581319315551769089338979250677272625055930920699057763749069271542442154065503220255640654063825608219004102295387623606828974023217925197315696671811992099449190821862694453244673712824152336462899765032204193433717198755973390731537248218300045534406837210939026938086003591999206573890148410364919958270884112442215861475688700736571997103492206841121416317829122575224212944426150193739139738342953939785387749539334174891052262249059292390578816985301618656877116672949436694205149365412484340439229028817512554023372127761141905559658016936586044513309159279613079444745359333709910908174299735426379858056009480744419382790639834824017372904925281079442283239245600726187417502593638833923523759465699704403190670732553003120364091057223143479235027308522137939995102153865299413308802828820720092702771799918872057564709621788264975634725730106706899864420752348303694864487301021371164197548311387507638223706397191758060486129969649317747659885276589306461603841782193911392222969833952653297739256529455617411701137272220243938119915200096325251043470929666169932025149450744635906661423494913310439463263604148930451232096638112591191951073783538086973571499029217133560245885717745489801041079619357278398629351092441099083793155102350743411665421828208100611568516733697008878475010831752148318734768186719675154980645029997128748006402459304406785616434601219218757807661364583497325090864229539324575432071174442095389824326927978346063295581006949039608160284036144984831352591457318610650247094061505914252020892389785430445313119085156390501122033025075295382887200662816617505778535279354483425799894861784309964538695998888987319250448925476089758800763832646651022008824944383171519204308731239940363227547549707441058945765285191927600087780004994290847941609234656637466119676563190840435692422610567013708929524526236467582557759773040851619206096418750417349484972354652158776518766554244546227592779714394999028515989927508226434868283116756056663081111850444444857951595733072466271801913308513754359169642571787945227201346503772384489386306788995053701195017431739491605294894744577136634034615689287668805280628975349962499988353660687182813100779852183731378921875870329390037677033812661872430698741988192905019683850740422102930932854680003526983565925378912964308627009466574499783965473863831499595820028666279072179750086988670747953083357281574046296338781894734568817796480136107503754123262191983707934003429600910248030746497470411338426161358190419795704628050237412257562218284470010474924864198241238726309661683322168689420926240706166131325944600831305769895086133243578048627982795984870065759763122615281549552230115696846512581449287986798253371791374423288324140197474223062282787108842859666470760577410502006136538371925561418130263634819230787979792398079318097634493833070464161113682407528173382730761209372716127881221962483895830964348638952595513072808633507927855189343438364768891128483592707649313021873144125493781154424849991112073071281529317883148898734933363232077417752500328279857963874574772102977140906718513547947089368374991915531343158196738528808691033628360092597119291575703175468715438650854964792754590337552756776137649828100741133903431891582147071314341665404818313363503773603459620562209130476157363137890293915832127450606765525119824241841689129366748720908290431103942908081520856054081497728422641701256252534529188028208480821228818634731767590959901086015119729616909135436080872191791363977731563151545635815711286719520241959036581704693945963637645599896070120013735099581465193497374985427381823368497019910857791833318027202127710431726412715735781579773986978509477618896371090579032364937671883608458282632541320784375309819650503077901519049342343935783965638017241491919151936907843831493627617085320509952748935202079732967182336150344992947204010419588083973176740103228627483052340770708536424537946889952484013718834443018062305857141834001724188983828767521605883121377659954621595296240582525261285092219264702082871414668238147441636535446622335942323446905280565184044893794935021094516850439399954055781727131158051229084503113548992432130510972785563483315730694821087513061700015056607106774293260804568062410088029781425571547089730446792214584289700525483187771715481789937047179902869398544354089658942940450791448915931295137514854839845184061408562803864060541290367214721586453771490165858759601604129880077588176643376673017394759084614696377638899924320693789461783176983796745051786165025363199005514726714379770570803362655357116476117802688989774818903897337332086741569092140670893940649139767302990941834133148393659474272153362523888863873330505165742703540856440498763365655797882196358821846737185009561352501117505707945728211197032860360812573877519179285266026034837032856714190279056630201266682855348103973329573889405671038120070223686690131253598616737264450466630951492574363886445860255766619526664740815287948697826806469257581457206477999594721445600529655811165159367439240699305119945937157468631748861232658968387053693138155443534993500610379880742954802388288334585436241845053290295847123237722980597707740233164217436242379319134285854942347793656210257025065830415426841992956407789505873186519768370800342199139702017422902182252006415347649454491855636173712018930337229298107667331945406628307471385890506992029257001848716753527014932953948583575223021269360539996686768118039462413387587566134503200830469448951618550537245802547232031529839598774630935002436923112087916452810244688419485781595154033294640000680523254554852768155490857295998558054380786328564577216809130046950191509011642537083950299764612774445069049094270607110218400256789232718599307249761256957867920927606172159790706992744222972676989455629105443640285699828791827710301733559724671906157802093172979769262232753952020960090727036928137367835143234484117787215772709321529128059187596013355348010329429658167331976303020148921895955172236503562326572776088596270230147384092044413609168430816511974548279101777123462994696744358419890282137696295702975204158771682980713631151396612586936617697436071357576905443882264924287239464054903815360730762253520721745631831610922867952990490201730865630087352653732519140994994849666843141864386160418810476503031105123907024638858025918790872110254791536075151890985153261328956586223635407959861095845929221106329859489179941284345197052660144654038305280259067668237641724862852686170155822757843401558351546743200236696339028682031717675543572331390966160036289856427024124403814061483152801871504171176832268860271877574630148395472103718330898854327678795386267867342359029827773877531520234062970963577310901521163689225996522919556762402427557275066477950392727212634321902091953650615132634502804981399102576118486196880818131101463578508325409031657641653840567921909987194325430686381708214934944742663045196870756767274520355236968589801383640521705796662352195705468330439723752423815786932912570430294197012708024182345005574263916017914690249987865118941476050808712898321276039543078190693693737651609610126848399329094759073878022600463039908710935604724777667691528378180303260897397809409808489790061479462541028769160935043849705434145122919220001456064147685710315111650929161284006556043101299661786622681288038944734727755500767960622984976781304040678493412761830237253369148038358935626078438612699403247769555097803820838287050144017893654938748615215459363458396408690840061279359509795526217636163788122060443963819953921112292752960650164912993122893941777233907771080052572927775674111313925107771534171075399476272595890323203484463151913957300096111757088298307885724249545665972857652968963605602358962857558709585073477281068199795504099993849594344613318578231905936732040346558002662747497031314644845789468578724178630582561532975693111485439909607851199948807282321692087337156444343687953376735541169727821216509452478595651011471475602203307361270805365718816669506509831311826751862196601295728352309832377571950410106436605085094634126687191979429478234908226826969223515997353916459874712359252424948877946612768645564797534953684565064684097734886865112396209890958436673235438753593592942916999091577807934189128617775051618967622377870270778759161422665357891724191358281868513872092306691303778925959679851236757590879249313567713241935965684991433394285021856089090263055474479647690508828398602591163836639405481206267804208020620906561799278150554709893683755956418302768859244230133676067815389117706296010648073862942611259278577320333868838202047024276753851966985892095717439053751366312628842275789703540219156223947776013410652714192628554293678609593277490272853785473271042719072931556784673009057136664822694824971749826474192884796790949995944140036675923551957905859302750220240091734263295494082004457482418317412586422801837749618441892627213911121646916656448437339790033913733662043050134031331795240998973243936826383471593295078953869082359897229325192908144134444307048043747718367485518621027702869007245147604984954903829050809310049085709381979189435301275349359690722864105818143924110151366972266105138806182230995701346460565246582006242550127932544972818051153001117234741798845603414811967196066497118212452876716413416234010331688215798165162109093369966870252579183233316593537390023823778564993954012636727332806306909062571741422452983607462995522682179640518360019595731833640061487978059111923632580267068522050896411061514059239806031989255468358200750047549692774494593494447041499004019896915248919515832170038164252411545579511336047947182747792444328184560438496202117879544460906533534806517173292042280160678587867542376150947148874117675600992581728506258400115068557424722799672954881784207773774634066464362616195327300490182231994624806914710367116346576138213188466060903600161341036914916390916525008262750203451625446816827350347885987056460752396446729291976266997068384345539941354456767919483182764417834283845566451287738887153398332235281768894613822911112631332729182021287511026500129627255386980562042700821991346567135309781868956338267888285961041840001390534249480933739388529124077357354653427744970575758662140130010773393190475860539081287943157964248574619522090096603459836860515802041112744646366426641380597340748653457127969536486220979274360205042828888696999321407815938730410019997452941490465420994232949293088702066086206775567030021772007573522542329554813291359638660916675423082489886932724677126504710129952134356589723430127459793379961401274546897601714112245869972041960915932810288292653008572194488552848474642687686771352638378291426232254790673549304330826617928380661064646416033875695740823612267486120185946446440859187242231637945927872509206896920053929023404119115877223652002619357899899921102241420041391909901665116988898223349220606527108200941959339806692110125171541121494033685022197210053731197247525922603741629351792184698136621748030993514423555689644618547531486518016251684943623590304482913231108247517743374037433511714829646367527533917849278676168309344683206612039960258794055138622527116149174190932940854580540363734317884415606360174915377101394526547938003247348017069194231530110261175002822942923419939957006745917118524922769302727884810692031985581356839979113751436018134408469644010339701709019991365003657524137093682468801970507424630811713803096626111830168393797822969126244206584033483487250258320164466801776262589025245535382411001644962774600914467765534317943522549541076303840856998806574285120778749920049561624522099217410296748519545473187642675520383144070264891885272852209472170847016670990987083137356531939137043640832812996457337475029144135456294899169551089813073894476432715247670853856751064179329323685810992321934462723869837895839531543385442262578097988317199252804554049659721822530829088915626896386586083960646262247371169444857003020681373611584412146968574719433312118396490494081542620006916195915637350945427836382403327361015774830279137416448401022154567628824441559912918216756747970073017170458152708285020672403677704172884969449427800861261723107161276450340069218515819590894149402516625525787699471612379978606380345596839923128270706464415638097700886638335694690489402468975223581739758921556473474677374420480949182264043441588140011588450370610578432456915719146730500197265431344782893343828308618479758787954065229506407709983841972668127085479580935342985260903734160273214948900773636630064292585626306362920740883200914581200389351807325498671732822823559184157145093004932653461155820302030589675279636657247363643751739728033175879471354519891148722816951357471267159022937434676420547767845716105243231799731028301760871269651972520632227798986324330294945253634462480052241123923897210268557400139468528731898472375330882448919790290605978931476922042644136388475829095863524469787860595386951374638273966216181207997623331698276431002849359355733220559827040225153121781238357669676649038084606316540373671273920388463152109413983806019438591858334772809805799143925036600777645084905616551113571062033987831349401137724724973810161323149406338066005023439083887085425662575308324804848147048798585844288436735501271141636318278670501932682804406733326139788587595243750129892155547644513215441275618433902557486726959685581568253643500280148039355224898181721155672968577416946658473434338653996055327905522835728129048708164972757113176569139503941048687006703294235717536263223498399314838269273395185925418581670787507312059872679000050822272511354666040104320982497113092934412530299517586721441960845985436011585153995334675188051279725965402372594325748627346911629816030467027476799952455629579950570136105025601849749141644065970705986495306659017161079895448334120649490627209673736555858541925007823346426368038096938152261787637414256694376966736054746344564495979002302648692866971299671242820065659369769731887838669704169837142965682986703817896066551925323656074544420503824116015099469226259486179956340757275414350670119184499350964980508179898435181002632122364097633802315619756530138955964785743379535760370303096615418165467105974068861610970763306589327896556373189290309736283467636964426590567582256318934336892277283592264535085034163522726151912954634700569556192924477879668486827829077990104207037070489084842234292342805413426441656567326766266658355437117355542410678567895942109550347751667618086769847298309388896358064426687405983306167627835222139989323440692700342573027274932796253724035837450078935366072565574958692690517200473264792233298451389376559570875944538461114963597981292755601669186600764944643067782805725234927929602632905212527507160188529720017020949937004039501425799247145016515631391448887987801220351834008844175219918520852522711176715833080202941046838309590374290485848115051135107572766182697332828828147298048862478108644689249454535304366219698861525497701313916261237100672520961291898863060225021552098301182098960797000488683467683615895885553052678828776212503119204000622486739798562440493475746668150872989174030164146467313983616183504729947543060834790379923225200309775666564380988379618368030623779402994523506014253137428059736247915448889313474580224631943324099626575489689726575792273855778126842204895283002917878244480124516502384832358281716373880239137406773987668265885222005141163537273421912626908934748247017273761737863664051120471055384781462005437569503112930845152778445823381341687053919486761127697069052076936767869990703680419564556304979346624066569859114687940104844089763253155688482096729820204688496678098109537407204860797861579071159205343250986559257346904871287141986036508967570405157931279887459287168953495562182043568664149512232325371048562267120915109198334634923741104792809472913154155892170496437284689030677482589725493613583535280789569853246030678449911836936726517712238216508682962448942972360132229512946759389889737543892684823997597162335792954102649409001041076736478430030591219679163493643812199521678699184087973824620337903846031846075545859387225787728493194120683940255029587771400889932938732059981107731060618174484516487130881532548677387660053007607557710749904624624442014770166286629845269859937193300534524560478394399113439098221605850983420461790953674025871203664123194584074104988015178001718399571830930222178652327036748495644226960426092837684567818846587823408877126299062789412543567971449831579520797785162066454545962269867507351392978972634158443869000759724642567231382582590728142474930397407694293688852620213813596154596888510410016041933712385919616305663955517331757707243419007666579582712386012423123683324620247554610733218372475175705367135591847247968543432875198856201267984101782843474161891418427992906333482020328523022933131047537162673714636206469220066847502703058451792052380152782069294008341914152058853400074193238221325930232777711831594373842310708578143919610969232838044918875491863776438862622703574161793837615752709253451813462303428602047371917891606877343104999705127689903923941912052147309769216070066997354914643164230613598379426885561185769111898405232354329400209331763164388966919781630089339508201478974081511510741226935667281535891684657383620572952440403772301168600836736541973589895487783707394263154357342034253808358184986957750954502680127572891852356310361033166324514488883044179173744459836923158479075478529894395889553807192894428114079261222582663219856607472931459491512472937506467526521261359999906419710060444870534534005302905368005268461657256132385231783814208102752639422904638799185177291793418169801802011254228612641346072520937608276080726556168590935294420926903607286610977197926436376766832505386630972096023718060670972527322367015788944231263418052622729686485805701928019941881330949355767908981691393743562778629668258973964599315492765171228301666513506338928644910944330539267077724092286508411707268854042384556662481906981027024288598231162747023304375665015747180308108678489621756200659643203059376495434544105910393107243333963375787524194840470744570290550425215185255887805924690805535045805433970394402054016144834545208531812007287477412498573301292306119151519672953098367655392344885267009011265421833137519119959818391108326072987429685558731196642165195591304052140758761861870913802068404876198288720859906859159413357462262558102744282823122445153976819078408646601650086951230793644441591990005501003901594463264944767569343119621990025126326377380584022430589746738284858091874605430048422734412016321953033759616317904060007826342968477701312257298691413072277411311889143687570108564639670975897885505854978823376534244994168520122202911400845111066964358510462799473234441300047438271844475125423062418694251712354778003274464290582413785198606512167071028825882045817851673043559049638574274245735135540765772819795372874013135972365111193410005064451653012621613445919473555540403296809067698135076546850160039451122240043151513242124219770200643041217797394038943696561795112056161615574737560982182151115259986003344827667792311313100946055081978426841982845361459122658522979707435944472954244524760536219060108588576418034510879456870270711066848429450758352709645289906231112236022802098902607640126123278913479770064084604002793524125818490359631787721341168771638485723983836891438119769786910935459744302306878393835090039340856208350395242089294695842355567627995374522143091304146673329865343140526824332267273456099104940100673268648394201665472295369134301794829085382493866015972022858915185274219286996490138231993226852143968571823916561659247829294114868155659570613182691911146269613234045487983186045477539933306471453008193459882483791909723009035304935284179197827844704865061952763463520946477675373820628257547499134927180688133882223705056789768008027964133660607786304059850254662350053889031604983780350731416909403083387677865644188149609627764428472183751756530305128357061214535214996418931336261709556918095408494019273309051963403807083521758326286588829428421123795795681736954029854034826114705334182303555961622120115060347560102997291699323586329276496898938673362925249735433611428736328578061428246878628139356832590334605447917290621691670940464932454825995169974373285058853748174449234828490281241848424363781276325976818700541285266504187699333737170501302799990956793258326700644602365401812787161903794966236707413240685225536246004626768124070527631124410865989156230333186075000315979300293890499422489950297619630853616953716205236337657637199891756304311553621163060546178363765621575835458249319100508559519057656851980106858448076177844401548885891053936407919974094208529419744653090199833612130565305754036820628997163091778090371316084579172733910239099070383844194533619546267996834530436621442605056824618427302223016610042839082001020714234138635627354598973518828821776103937343164785063762806245749246452133872091635136304176993376461371613452610943092162681028918502697886559254202304652444947794733097873076810743025857777875160743640017607266097785267498756344959637172617900282272473618653762704112085606614668185927029856061316334051234906548871184482561389517532594627465750826537397058946183097475179005182203433887949048970046986683732275894522596597653836944074756694147543956864380523105437326334721891751232406414146242633768267850544849246795815222795831948536391893640805349709277634716606868614128162279577438207767133021417873343275294184073587407912296788578891975503198541098131215472857438391215735021956828214031739887725841514290293349248263898245516931508774380706770671380253664390588375564730191498541945072796692256797221279603675809084978395231370494977658549996685798269674935022306206689505877874351985599569450540544022324420680840995665275698269064597739526916430489225174174578706667686841576880091547229514672789861019927719986681325703841543512712650170396054027730538653475617762360241565504447602215363964617877852748030299066774133113732041139796095050876236575644813172511341359223274010268623977123338540902635544586797972847100514928044961250363008937292346412542081192456473059162825153240582657289684234537479758476050223270212370871745763878704219564402757505535125465307342837744552858609195753076850181703812279081886350448362821306191539563910508511785445575554010415403193761111003510875770832407433721926980512624777448862015930333426464901316365195337224163438379668388520296122438621247212262534649859573082600393581641703042519905875425109084858299302914867956162404246433772223548076558974797556471647652391081259058328952698981606130244355471660260188001767003287614987931365638494161712149584184793271824653299932232835327422407433855404157405067483271247971267437610608258024147438499358976072215962612805971457137067198655638662572771126003994975653485579776107007304473572791724372001158595655543093806974334437411026990270958742096797241989883724670666111685743424345586000538197027335349756099482504248823507957958703326949378385326171368932108888187415323042705682155156747391925711064891844500455024910226318448087273046493672084034194508398940075593108848996474463843269756307504849151245464833598805315864420891534797628547419876077147810480154112073325342180886191404785679143079667525334003726012901065091601388358204779121886141498474584657058029495603982791864150288067205496244168483971769782482240135653426793970972290705669050392618318320117478030385684484945526968512015716082740130958867292989854964999593969220266994349091317452098331166945999793692208063859599704998962260750484230007780440319762297141281019600308024105866291711963195032078032316172504537577432001097567220824593390485546431001879387520163831986262348811082920912434987581172762954919950271289271565381791748264949323870508405752890656201519715038471819959819177481552492102929183616596691524642955966890684651566880528549392799499989484884241706747905404089162119041966342798180371985695819788894726371333663412492857229338069198656801445643048965883414836580800845739106325477448733307847887723382105166755749822987456820502107389885584446976746026687988450454353306095814555715859422600388574456752923128828735317489035817069657072822004315236691929673321100092429564099182929449095668875450990788656692939106287876074309639557341043197228376497069114449464837241413738198192258553406631233736500003080965021302759950484327256354769535252489026082267373958916821972509827345161297111500812151543908478579682215392414204295273673571296974028262587595145139841976469550392428271404752985983389296845483891453996600545672622655883398506937857316368407710525026068171724941329394893171432797012297146630756524017427438877982587564993660507037740861600277840009252270726588558629017736301334894123835210096791597410617922774854003018651252444096850978796356239835709387511806061185792667758060309995157968959751238317885239952690800830873922943856244580909218308810930120781696929587848611784444518356280714258853481867722885704132556292948373702437868562285621507608207276007730004396561167645982711880812089909418163292370240604674097036229859518295941658914831529081611697097556669325348845846864711625236324759000566466700370177933933502236625420725259434390460415268934928612686482165076864712058300051419089508470203794125890101456657532187261660435889472761576286255420002309751626704169036801326530323671788396867652184974801983748013440040494204447798959961149850244766562848180189880002936405503502350741944327010007448390199134748493496102474471763990238432259993638198687688800014768484941205467278703865346858021601705325922911916027549209967196242518820100638326659367103177810219536388082556741923965463423660423561921156510686133891391622103260774899486862560512896729974777988542727105372313408141287954806636406642082285818551120533774870902721290705496822591451798225493646986210079046337290493415783104469167230302212157301243379850017495632542916451671644873720657498606757523677011556337465334646330480341149542097331444998030905600979999320478863894344188932997869050051361117373037795323048991870257543040633596438777526993806426114123925024733090014746374338440390415350157479842210082034507413388024666686785009122549615341176494109634105222730646213373188828375742780769475587063920462190323931149053832326697085810885797112363318069422628135295550991367242059111689623787791381127929015131897795528629021120254948682732319314697503530531721470014857721751655723706491079887114260997444100214726424451600352471508850470567345732295976864112143158928040440151968102956391815919166519338016810384174817649984744892204176751757158224389296234488444899613129486378263556176756542912962929572223991229528627211509567270473015925961521528635372082364851553660735045693716232301446266539863651054070220462510522936190972834247974791792558955989595219525893504672587963129426756478129683484649699717779900024388720050968673839872992214030671642199673961249258544094715334772779457164174066643917219879150760852185823324588074818937882679029270334027281522705148692066502557591297016511049568348289289894813475249133759454445172922407011109148137569996889015655436760341766709235214454743764591447481762034347787954495820945989609421462868949665523299861148779313190508457094702295585785888197604778464773185252823369154869833746906250300980931013708292603635152408388271924295675406044045853481922629018788943236596431886657120739626042003683922895392737084635165108204826686867870769454496826887992017337206657578854718134330226052157729899256596794274653616407298486215535718105010193459176831497612646751795294722239608026521755750638781709362760397456653154938972930015840261252418971319357125481761716193288801522871960559593376967898555757817373891707234096748692456292087572328146242780176137911065583996879147017311203410470240071605032833174337994701171166725000309669643351409574110160186061090317947077577155151217526948794991569888930458654694120563211157868658993376489487502815503551852716986272279319178652969616745312438227537138912371088666745809384834018713146152770820391133225687155287242260024023562123915258690462009458654175145348478882983439397260219331311885378159128744022371548136028473109336544225814914061318447936052043486015257787242689387092714339612465716155061332276108146963585262928187029241246399457799303882853039465531106495280755442701900917380554039089197881498679205636071036586599835255951483776516315250852350703768395290684005941152316129417965506993470433349848552668171870544057018025466749299018945418538500699998555797132940892727729681119447800676025972712267509416363214048617139705272727308545763763033820263240295437855798101083211217981593487378546366243734098867814287148414285158464470026323663295818615168574837903855797661186691215732847312421681970725731677935955902120050114730718736976356569826646368202803235774278117977938589882971618113689205602696461295718384598679296063696560020701259072611257074589705150671737995746518984062281124539806932554315062310480447325212762206879666254926362611668896668010218342688305841339875504132923371937316119228308998744471196186268883850809639714010938007519089735676002955672243269297145499392783848145077446398850450820383171550463938995045389294642707413526324574889572087496926132886993879574162850252024907616528050916895972024773129850169232268862032779782985274457753330775622300652111953730717082151484333124895026297031409780437736877482847210029328847415783904502466372993279183819059669691659168157490116312771562436055061914567807445617323925549644840557297593029218520674640871596506749808358353133833085603587797049077086426769892174023522944115410753183279952603116929395850339823956878557200822953982470587111461758616279407041970472961064425144575152954532187171681203251992173609687027492333739500174335078313367415405610230781849851243729464490005017205037128019117650293503082899985459450120652022727308747581416556316476969714868781676922036450552214235605492068543649861443395162545665548748483544007137590022075235135460956253315422881632027557680448898804955739864138421056795908290291063165412159956933815673192348809307467790553717211446335326602745469317374478013094262754017157625894166788443646097823126648791018722812286701746007108393118555110891239187964402993874221168051672955363142343471874172870389021109883883890187303558394306204925505369656504906528591569316605269140192770624284481597304415769384626850316498782648805117373521769648684526597819217903527922209450002462650407385797480297389200227566772764396307848541441087452079976165366285123890413097108675609171547439141712673221997932557258359077597870090966516406486589621501460345057376458705797137658295097810852920510917368333301770255312677095239794937730578463132853931198985161781120590291078749147188742716823351417400543261649207476349387082895526016822722347258999450439489737650992151017826471869400103298665867773796506292814931181443445241535423522599868299689978828040971357584852574217652517799110735405747475819777299845543102277524457455815417154968519968960938600369025977339230579176667352896347522011741007433267593831928603737521389521164240202249502519937090338827085068995052909841873925107556575074045875567072854122369888993159041920659519928537059883448289963368481753475512651172772117207005214714131137660140404587617013365656880953136390289198300002026371885600946144098534808759869411720530968431066982926777049062211475318500532258979016265328277186576760700862721476597192408540523685209618781881011645104787631539349119249705460095992027208985229116372300303266899120237406463608498058919930507939363809431662163546827263412599467124835942678013196561104953907623939642220701430035915743864233836903185400070502533278125916968260168739857002966225908487847603016197362818665633610419215073333014979407641414457560166873614216997134128127457049615546989345578034899747446392271100907189034557011958827823587870517100773904504461020359854583870932106998263394017127377567951014183826487854222218650810751919456300584604106838278340453664646246886004444301538577552576709552708079248496360823650596263504648797317385329792910289868472943791802061455518985673822433744766106871607589697999634508814696115909829708628862164746482553117081488204270251657465669717736687529440331031961540382889521662353817068815072080220184777989186248106122531467567771538080523860872644982796088855010856995338892615525261441625330593861424265183604911256321848119938892452542255021544009480313987053743275640044313320227811010585205315656368585364834804721826226632389914679483593699408172212420409118698327949746750872123224075218473147601149560108274131289411418110016683212253280773624927791728566537123706497048200187475618466415323092083855744399183909719378623768200429333592613610621941011478249089231258427724021893103305255315927527226442499366121837468206540999841394906781798421756238311136713474067861988937876036390197902302982170978773158434693674264097260531714320508794353265698633124311733127990977958444923296543073719503754761875598072020976874984818857184401203245525977446181443058227415521108847521507556933439462844519875060068589921629953618170004376235122200513618546111555073394612534165690959907323458476207564768674044071025350211330758695953622907153781700861367518061648729286117182306687921675703204806889161238419451982061519760130579544330165057366184943292672866525770104038493261961313637785338091263476849902283529150175979479356613685682558191893744190484538581605174965045248904103226841594299011837545562562087744240328802851733244531155013117954959258718090104688105219517165232366120095135298746947713334059325572626633863625080440761109826419166404266163302233032103527485297941678576521949825204811430708653195479288585842840620938634337277822683282408450872094620361124800055913041529931207697667080053431905238558741645403758763125512811117341443082187123095853285426521637385851640389470017554794495267144296770886359506076190460219462146445356020106516234569556051603575763522459281186231948839635761524072253691233343876261261902197232502824107097835346434059155509411250947976209152209789048310573739114305996314540932964902525210259971254173850554764361902221578213199357554883803778710212424116437431164761087299895704484962461050192650808794755178213214418207871469833953584880682818456339284814401398767097345855461876124759046957033383606474485864943780882015292751280917713841694531243118872467470664984421167193386765955683511581925042044794211454103837250873810083731110859824682798104339478360613893311436475733309925391352020768866514858267283745143801932219905964828216378976145316803121701796709406194964776258663230441966480133806952975257454346599121809184162605710136818172244432069294110621781541867403620184626314482832833014953624146427047244605060832721612151535316318224029957926055914374305157316421101437606708115342733352222972359510016042465807211413984719222485882062779741388028241783850290773927111412545862631389165460013959127091267974990023218225380235047633398995189039211185724386816116130539554996390264074070265595007855159839557744981922174971295058632406548734078278231887348425428243724566581395529597101016928799164573450626292783412222109324969271834946420906099513991367526811971899142991631350619404760576640958504928258586433172368361667398348206261667968875220950705356794742704293402701981496212108463418601025148631264107906812079832721361598018377250001707718599807684616931336525848755336866957304008089127015778825211983633802451237036025315261556796039444232760516435413721716216046899887112520781112208471041198381098582877637868674675662765725176392049274303140326345380741078201202645622833809095027015180181883275212970027752161749669573788530157664025642891961986293510988645655751466677679430795040961532438813684633999915917962145773233633525976307757342902941420251580661656137148741554283208165185502552101618080305193683243123937026588325114642357245784800767313380368324550472500737508393013700990473969927941765286041070194654498499876273198310885865294885340985452400192583639834331748822083508662116264833427169180134279108320797159620964484854393554643388149116332652160929274615004827822166381010781318716863354966158927843272232566835434847538795270441136900938405403535525968488372681252521176252081291974932819784848584923518565497672815053981156176247489641526116374230244457613286376516562053139862469544518383367424883203576220012599300647905988789317057317211952547576930526099626501182656728071997126357370315773165767645624521614467132709061632029328889411928010963882345671459472021851228094464289598041143878603033328797234445717546098792128241718767772632621068926594321270203512558123964615057561414288688470569194691401759731217718281944260053864474357071791509622132231451392707596839204304342269336855021179279695397911889640559039481462110927286439126141194566085059992070275864071855188622826753334393984207526204030492258214673021581807973803610847513428317991429211414665921375636646056907056857145684000280627747858325081495880494309449977077979424951046633639086580139735532935653383187653249353472547878403801536286867936844488050868638987567423715136657824337044788804765772792283999856758920371854738510686636771160680798120938463693090426820045668025377446244558918530409369104687111196237517839485190498088706142489289545448521535011430437256964194672707946490033269332072546632640166632818434356254218719693998712951027792645379105608596948717165709763110418218806801719143165887365928326527569836645291308053701463802310626580914992187104060163625541796307682558788164220138077103536573164583431399247733790816580182258153779688029341757550765480858394623200628619594771846971165353468221371450023944347077408601145245223509680847574405164129804636084943978250559732479834450518136735187321567092994672213744731026185881306875478095242203871354958269045609824153888178692072594414641011251824339452731560413474383336835442550342613336784058384103303641662770014003032968284367046146283532951093913078069983882106088356695031472251759817307193577038380168794667608402633003234337401353188232583435213055702802658424045055602007957761410956651531313205847786764668438288698271945029212274662430762925248068274857004133429046575462151803320259177456509718967919434358322201701435012116974103976530434706134551038132695118240890694460758487789202319480353219667389168777657625873068292471115873678045321122396166914780509025643081096023344712239080788309701195857893471210062188544147751690558323018558858577645242436131005663176966403630243896797849042517967447057017535981310615503750164738449830949388104048586194686463137828775393033891796365998414449637230324637100403037030515625923853225978890060951239386034609725350671548886445044141678127023027815102729838944110307723929706160047553672571400684191975319665369360857463940961080814360031929358832883515169731485100469922487436701862074815771638253843180599061654439363254863128991148861903515888639406938409904416407527662389803087000221046836870406560472916863367131422271481472155922330906933335621869650183258901286140474521435115798408035534131101223819395276773171356546301114596316680225239467695972232520945444309270674067947464330958944813459718282621603791793642739860688471794755616509990255233176202530423644387799985045011352597273765767594721108898646317298585689663281437983100158272752805915057209120511549697981734068018134184584459413793451437602634271325328071408845079075460259954658666341593194973125096800938515828137729711347123794351656703444726851526292460333257897627664182825030685893231985710598165046541351434211671168135866042773772626446160010463064063276077774533259729304907803489993537686529587577838939984367199047358474247125602879647692272517855940319755995739342191648573978752508874663618608184504040372446981413704016511541732508953461316274968906567772083741761620286339483125418952039466333918898011041885663937596138817897592043325168382487161941209136654292691942641967052406170472130359550540701621831682724127050592992578600601439004889216216992612424556975505219006211712089887544234952149354767163993024057701259468287112558380877730481897793748005630570536229042848585963712430980595910063013476240427556526988052801414887455964704840549922019973927751301933631598615616251137720705155422176466297527270220938261235687608556886086861760304629649957834404898101488153817433642797639731485635783817426931343949056147491966066985483367579606062208774101257667611722496356922251850074495790880660665040168409504800498844358143758340251300619050776552720134573491411929104921461320020451485992952638632536892713726467961683836483849265431145928148133743311254598322725758178028321407004128037023807460304632632798884744282195120837456866775021741759278556236477741426904750084378694582446154579281797481979902863526291419992007437617045326036533883286558480653420922246540672197388856106883819474345636971108262232599593243785638971599249015805939252630683748981304449659043705532173278125748940203457456204670575130073888689719063973200254412320104831946907807179603836098419757728402349701090522198809634125171227585938518411279824927309165668644072593304596705885376945207146413662872703771088576208121970952149046276723814566946887371117882444023501088000003937506338936480301726466011989595623442054104022911500238142787475620395631643117407383703111685661969916417960186759707608616160530443201628289801845505400875113472216106553124308436204306838603374262533445080689868803536413931680368754604230406169971530008707440040300173246048087251577473696948775605233401659295189609883781267326522081154691027726874153682629603637963478355528779508301378421618353363913189624724058212948565599464491183447911688979757767971203073083864004373419055411950981286496459245846397593110647873765766801384867034156875693267414042499414508902459978256883829719486057014297177212829671880551052366523143766934627436797144833330591132878467461614542495519090075730373237055842474775005666851813273635175231606546559538531239020236742020172414283439412303083363901526045380622310050823187420439578054580240764216680049948597666074727757401064319525459451497314207306291772506280069857955497545723672270296684698489650608623376965342810647506644220823250270798032961388255096253310655884941814728856932465970904281968780477287983989607296470789118389987266983930396954688418052584335543989699214549291075213180996533374470377760309576984733315060079065855405184775314694515955083075592287581030803288596390492256670764404047628601287498772813930138849523213495900717626581288812085835066622385818566254769930575728359427945486896294431930128043211098446285084765761562849749261237308278908593462259635423625766204474813197765505939049281298499494875213745506387260650706776920361678815560875166575618516300546599025595199105824915676115272316500009783471880667980155059083395738380958076767350567394796567754078895077722976787861503331551428563416354534722490422628123349433882888188137376877145496849551103430988700771305021138774483869827614505966970965968671368452499358284587852794820182326835931265229481557120214763680064520738920448773263192596323071323313217885191375423778595640478270200018723384059898399794530151816131401321241542108002536114483318117954127619237803060148489126760929024321080127417179600822522998545625066197122197995573419236183779468011490371544188637077565212146561077418050468783497935894147108829368352337663066016773848675270268866490302201251345939353923559040698933675057604772432365388734331457980483219982648665414166937962609579222483457464039168033768399592822319510026897021725331231124665506464022053501241909127190869482477233569488389810335897499332813698394896973654987021314414194934445749447497047983935150143630810238980434507370858385558750379128662172150795370771530375270145045602818148875740571000810456904150739717144687473451281777191636158078912815812577153296613392613200851885609167242056043394713298131717373901241986448999005649228151580920104585718416313901057722915820675906288673962484259539839048123263927640757051804809179270958044334854699195249351494903995180307601704025168830463915633606778808118483427495554931919564847397507604042059259600919731161124399692534927680486432682705828967634802709707713086228126788061541335041175634170173183228384462322410531952479880187491330692013109719531046849650946173231768706826577191164467581621733393923262712871935425958910934794717839457312687344403201078851372863543924571990067343937215958522694133205995716081849464678463244268407866219411440174879624281824746150657318932686667013512441361666405883731627465869718863651322959020461246286377732971127944329841336636097153627673307270770773116597593172967964939294033500707249060483000934642109885054239632928238998672018066202838331486363807963885701692484368439017640653156269864017535908469415848769804224540744901612961035957016642308354962986140701339215499246041728506178266925769355755778661800670154482809073789005977510556051359393142511196659559525473616652258405921333016009374317433013675733173007139860324178345442203497909484270209285192112385095700055200638983712206260213879809452683596423384822958703296016106261182546592610060084809549455798661415405114768604753193816101449299135271857353091299657607818537277811454606113382790314572991154755662034833025564570710988405816204474674258964763303003786534332587034045097403546790810164430025739750023477676655824550288861570334735903118717245042841046700115597595218600271455654420491572546646822322933804818889691631300148970946848725503984521700719118687526264417010679387444253163130596388580036955295095965798210214490612235784606533609220532830527855543777456388260303926839354538042487289007577590311843528892542647805101665373519504740424346979048329181725346106355501232844214362937148632216253926022668016015669860033386810215945935443715329618143989247265615318152237282848145946154099785157957736639460708160522880017290391113179980354599871402110554610630476394693973525151657692644825610779938131555258490107854736772880715787052057903600600972333129595016765339080553898668777417925458550393037979137379969916379700348116125158945442462077231002914210706122629829680129211077322541427308021664173013514964564636175276141950171545798521012151715836720630021863811244216374910303215007507361212937394326078068257212801045032650030238407932847623411914297077773153147648619766742811530495406860143718860812319444909876047180368086085459733971388266800304346589423700185728138003214112593806378236088343673971599923271784352566065300499320706610945478865890066169163268999393710374418355532319198906260065776791759435787700199799699108925284225295140556293654935480215087039796549817733086025982103414074017598466248189085102553266050195164962966419316296789427086863335050717628071997383941115710675209507932780564307228753077818344535268257234642491293433643816232086492139211345559735527529060055144616984526113998471209280408024641911257339710617840988817374077470307207416209311123453722031761499928561644439901601861996004797113781352848823814799574350375179325467153972608070823956835585280319655954053506331519422964390561255580561121039019653445834864521391894763972971862507548201275671850530564031181382924464850470377230650499044567158371777288266310236505066722883487591260118814743794748976451193203504921272614729153163919020440475538454253763905629212273518067792852685903420983665864131338228128711472297211382762252265468023159924443419991698047422334346951128997369721792489946808459947371539544552735174120027010929653640352290332391407293307770385264739768792206491496162616965041315337618148638548547515525012372089513926326813093196966432614008852133677865136419892689457764294125181930633507908522856206591659117507834472633259197921408367255155106556552117574165042882689735649296434001359595596497454631235600576342905506804533286295849455094559640089622579857545378754769889823576303166044855985848731035086654262288573880845879036191601637403464857309273502923290379221355267096276356442885308079156951568076746849365550410137925500685666659475515956073270495742556110775607311896142996272572553397648777512437242425526928834781474609179681271802557259800746812801690280500656277173796701441739797291806688452469820149392426376973167987526647931414408970099066605255491128269185370365308612985776281998055962828157823920107891952658673440578279492675661088542572768707527842061126831353467327098272862439680089138388228843755525298961484552103712040761167866838652998783328304265103814923016165477062942780562627083424592565466936243802993151863117794002283453780911993395970420857956030441775404288671156919848094077853691606728184859767856253072192681651616398619409184731564000153304724277000075462175499662235745028096295000612261392371661126960139954403719659431413653562269018934759698778628871171886899134401839213409469034766795978274997912928467503911326944708761122472389312963444828796688165431047174506838129897089818961993074568038830033217827759442666610062853541016198910903872753546460999173234691855975538446102600956067824195869569188547244939473028775097317134853613716769681882655696559909580015409880258834655982831300251021767139381884963072929441389114103068266905758977252813783231231661146473418895429107013335339931054760371162754108182192291796909392003875402898727349846897757369576919099196847976589900733540684474352699467721309942024833670130631229441602542616434790094437093204218774182182366605913461562517108417450519940878342006790808410064732315275118625760168372463984650222514889604846438747926976851864546654356284831431627141709067586580050005739933561430389449670836003817665805734972533037782107225465131503187672994451845906146880392946200393513276713123288801755222813103348511521617895553483737599401737123641628003748187907498872072744132668813600927525062666311407046194352754349562754264604710798724266825149646631976180296207920286191149781511826879983983454148181137813299841620383317850407711911085853525764608160350925531321599929358336439815062795521945168090840535128663593656044133714649751808534885873869402865262901826576919379312028077858942624012273304942975026217988099370279155447525720582351388382102456537139310947042733590748393492544636708584428627054395534301228295143329446667820625008901996536553355125201216740586201754211746737813402033052522882902482231047149140946418121328153805291194099263009767673194434479970901420095740026401813059098158960411770588051380002194120786594655562906793779334818366531760746650564218774838091949753083964260452477721092106789160087981400217804686831936810509448547397924115824078624641032725284265466987762513142137290254214536657532342184076827136946805407033355372226700457638398162470085243413410027607971637108860544525087084625636683804875443899469877170827826500446984436831883189270839964172679546215381887252037977553677446637003834771157918570509430359203280383244516885325938754723800458938003242300341048152526197679052732061349775608542947791895730425104142437609444050853122531137186571050115810043543427254599125528803874792131691595483148600966582454898174020894188332620492445490068767229359677453945599661530559146662557508820806160950570922391656437008843326065293896616911168370072460961905275143522054599665747448032177397691649220254202957587076752189561486689868575559465868367913480943421798236887607129439042128927996673983703417393796270762292685632548864617355486293490609172230887446648744531557254096740313494888934771820933968034010911038915117776965548474113788152001180970724183046236498046100538775785527167711276312537338822988885294543435757210763816693429287259467743793250893093795276599337872070143753082765313437890429490141519103122544887500772499079125179434087386117541827254303515399725496338364002494676727656676424780657486496259076408987776629111926317914480295266760635124168407902783333826701927332511780101184935650404895530644196927789018024257715395991017905904196236276912108411071382226946472451048324937635216842423245689398355085500276190696769473137092392055040568687047843975259415142319210581078266180189812191901127349408394257508906384693747535880105365388278788093634750909719294230103438192577236906582611951916712118024490026695184259165304440359158112025929050703814660295427332407150744769513783969273145086800958256173559503199203571216428861856089144938027549685171680801010259953857244607199696887132965336278780549392485469104661805971916343939794384046402115939450043513051874213772903937989856655293132133863573323286762622071597733303718110329175835444142831456850985819443530152198678533371526138078831021132597098292818315857304304431134671580243727577393052467228670021222217948583099370053269848874560727507550144556272275974630135404818702065756090268292022479629688408482381996578285771594072648413480934783521832495714231091964320680732888645155462093558735064206323066646935067471096094993857734881158055802404279484186521622698946619394348920505361511370069463676699865414940163510684651679068771001873587888037340062335112346433210638535385258470343843021775915247736093963446852339694858475470623301603482562595337454409147298584480148279356822477423126677616040139200343510327265946279777770990503420934506699347274313777636645986007648136655707686476870482820682552005046107657805809640874133553149322937905872085569514756593457159204578207800190670324075927247850490608232430703742643579735512210315454305914821922871680821456905413915271265221200204814621811779742494039923226109759609677309271017037699847589462448383554059467350317494083487652633299351879435094227849116316358843053418581643229456270502207741626263813416435177017634409962271055905046741801242092352456791458354065316423937156856988138583162464764771748514892926941006435294067790534630885767811402057646205929542375089650095873933861041285587708492121298751956011725635799606969212766851130170867256572045673596493587489992881712799280131045790684053470977534570030548336029098831567031794574096150687756973833086736897591278702658938784194766664002876158787526874177514308228898512612343566152214570087504306311566966813907289468569983496981963058068389139784973164753593389417081746919709183401640490636596458575005186027112628642788602752168607550123447454829056397933503790570841698721457310037084752293055638086271671942111060029890371436368959602885363003745368828217686286427482193661987391335317006034465108870685184427208596028436782702632760001310335447202314243508609517711131678694266768118737338271627625128145217602670502599893257845053304458576196133050335367566664704048783831758154997231033166429599038633225673992828804221411746588693289242248203952586650318513543704623037723686206211047281091907108493965398141804770142819820984367436363397832604668253861544938729851697063584115510510367736351389942408549641257174235870923557000026768964477247780440681825896477722259152961482169589285525457535240828484622102488026729132988656255889316689627308680987635594272346508814363621408876870222060814940640493348954550919275693091677199600164421257033444046408511624253692988126770104665366744464198474553254454141577318554200863768253708444168875396851887204336601714817165106391626310328719079157195754631357195317745933820304038869121282034613097898919462710173868317940587479002580632490547719592709799965163032853197205335397983661041671127998496595861427510496215447938580262009155354045825971939619267328131922818402407430681146523503870271233082187703726522279105793693378569223686713861822071560304416147753770960829992367521063932696349718483455056532635626372117221586549851225272016058812459671724422533826607829732855838181806615525707974026686473948251602064677472441785136778824918976606819767572773138881955347627739321446256590679854710550896050204939658238710522199548148153779742517287135957877735494735355791041529070235181273119865766922299694776503383957578577324489802545539722425382354978989242196011880740487517491798005362680842739899741900576325240620557591489251330057664161374913392551375516384741449240431245898249180316662399179415904296580593698134504539800327465687991822672893727847403383014443779875754088047560066024161099567706838841462425639430862276565630140407089111614430350933714425819284896468524664521915592553334629139388131205014113187070217885826400949609812631832306689485893614191580292374403803958797718289780705922028219078682112053861194299919747195251940336315872246897183341063483411873005335258227966661638003040896905261871872490002518361176999225642165289382985090657467651860060452561459598692170130501809878500612863864923214377746319926229221932959101935674076179830289819916323086259718071879365752673384862231893190600097506830856817295122635803297217176442728251924596499358162796647736355511463919793983884308744889001918091697087750411893087253710024683652703949680608319786674317026256546834411011646102348060379233776148080162099362437092175691779418555221837471362520031242524972274991890201569388798701052454875427571218270822367401261048186791025542493167887988950529504678590262738000696763647642257729067544518741568968850639999253961096009069697003318455046300848870541878262597150352760612919046135526571966688214835225640579439040215331484034106436360622908600733083387927905287817106925979943250836234818393818009404862891882120443527202788765235054417082269877637484841567446923301124271794351531708700424191170262319430582789673091960373442066473588397341980705263147381747356206115161070612578128322554642788903897962552046407784997586496671380924699214255708986941956594027841809147117113480549477925240316146066279637225256414827731535200639851819808358457671064605942934225944556411708277122376663402360014963121950103420379921928820922205177969430295268304877250215801061557666555686026027994152567643928758138375081115267263908177449568610813152728457250250895426392286285722438913545983671757583459960805583847753878059244650437115238458052251825186574383610712364928652021656087734833119213211832959283978156423820745039853091467341504648393580482762401639239502460890497314663060356651810346270357836907216595221653740258247148095863212055451085980231800893033475876907953423149393258680044402741530330591637266302461437446434024893986457130529672480890459471731268207086936122237362078464921635135888169768997112308777069570156547172991650061689677237060678463338112208293707910179423891995844411928250273730695961392340737906392899986725149748375307911492410617849043792713424263386938360767639494414434192619463227308053690070500695224696117114050073661366435653425633610898928460830698271149552656103297908797610059572548037009344687811631539524872611171666839993911924068803514130812900939746852774312664365229010244371281176192136598660655023251425478245075646706754046812314464778099394026968610231048392556861748491737222463980293986397611877181606444721013387567375638026748872136008189289057753347878378387449979719944729678267759012033541148077162260824933856888361791104985196236279590588914655868849173102746131309518798038277432079232036715876993653265451456389025515324902473715696733398027327404217477934741874209324846565116713890178063474765092851375391494950367645546329674497044625324708083390161362729771362784541171636062231989937462532646476829331266973653330592143829643536408379848258856683159997139588130133325591874951679472827098274196305206437825779724663071333057656609927066035235124514237959254083593002254310050867415910561967797618093002945608458131801028121039787826029195558575463023997496021389006241383018523281681643743294596131994188885127930943131359359269427187781957992928292633615550956118583159442972655592333366928495583108598118287524927553788834716751008314401876466919638203246514079319367454285789475306735428991804048495552050165712979690459366132199952780686172155672305951896814957555283898524809979615808352955904402080140922635171720439014718801127728086626684939075824736018392008959621168024202398516405180126382142763055050691441833074654910473657345345787227722436970806666527384788088458309292756100666657363796165866826808012225795054066855242343686622010183986531311372045552716529796354880594484358545328238785203062957810794037189244679086844066995512294182796827061669248467322607880862335578699717787755506996509319911261550114031473225060940011198535479722202167685755835551982995913412603962275850651923844585604414690778014906171120967855202409906932862181683173282042843259981725877211863605173984482957936881458090091893657336981565386814681392775368249582568345431371056494795261119291611564910134480804638475697633613273762790380988653085625418630011864700749766123544525773783485484666323007621076143968413395198691641449813615542751099273272054624386961273013499309421546000207062589760919416358762468024657912593182305228221447551103574046610902314477343142270631280520515120722149791998856768852231311100206522993485761974137059319121182284028761590642500461167646923199386564575905523157026027915855677849793573925786830002655488474114621811175736897783199289587273473840484826190042237665450073254743886772520357897219880627571819800944018482912495018628590093502848369187381493775307595693220353408169641077986994019297511408598984933407266011822732337953040155555763230248632222423881154448125963629053035065232009625189332932173919636966048520268002268964462684453337253412188836163194051976793339768939136560080270224342481192155985004311191913065303615192242289157503750180712805304981039936420740505018322200816410920004023879309530838853447822216152517937066750915330022024422879216463232183306477455132528460116573799195130085666259014841396549698524078808821548910123059226001066427897697290916600203365020975286144021778020473276053607053319953469371994475869890931096459981634133284743438649763139396283697377654486272107809682496445272157612703229184234879137886020611085101466820155013267581870127882379290794078960381632731004492049553655480292660438909330549918175850307026980221209431677481742609104121708296794643403838388560920447349759900686250767232672231842590305105680761579271462153419310254317181001563422158423036477609957526513591394711844943601447453063126771534877996288343077729465355751866650314486167772163658774451547228407770267611844806565858824304660116285034674886545511201190466727359339039020327855899513266803285159291359985926546064019633394595406283294355650669642043437453476547293327145532317900757755346677369110159660172869593116285726557740033784325090672186712877032439586867499692563647395203882556398985002839171383696803712420088482521983820909882601935863561659774376445909824041388478372653116179171619175958511859775752668856510187343592295064389378433462047811686329682707198379469637798875543353510219629928586201710447397531007599615285255115823307734048921094521666815526474851052020841672708837828970033077058964513153573550290245861864869092864160537805203898315495378690057479979945642970378563207963129426239974124334829871663804553258422531929683634378841914759398353383601628089221011726237782031522486747375098399865114572647544633201827584234301035951591320453230038205785434762426259371049581127349363414875818873000239156934074492035724107601821689716691759579180737743586941672046421707966659255859862650221055841525653768909356659785213967982300505242705200307432887155737190325405534231236807083239698579020725888623101799627349278918374525679941395073269449498663293667659945767353556902465521319016990668385209581749479637501747965285093730752511109778628209600012469020641765258448837482129276396447896626991607695687990049068787723131728538398702522901126140263562401306205612723655269159635792841633506109195881230855872243235191408725639070784376165519803825883664340348934605152319884044634214219270074421815764318675318039612990035826750043085529895102507570323001293564005208528848039863518404575607714201413201215161200734586890580376909804869971144932588600145219180775352300845696530547986529080554985223104971275073004082260760942148419000488610158673764982018538359239884944340274655154684987876784745051925233034177927726786235885889167543824419730588132347301638752511758778171941909063508488036521801604590506874016491812072001700278221757278877951899110209429448022587106700358539659410898873157673720975742532583592233818858052586960704407663687859878021596178291637579429456531914248677249987290982971339747880922177430400618970056113732992150833705964616341844226953013094922408242193537606485159552119138449212955781389481848827127084748544228827893600576461298853682626484080843979326671698755648227689342471206611748720773621460546988785345005059437616623730741688260475444322920869332497554604452244291210518317865154074039732010554697005985321964932566527738123855225025038836381592218424369173122263172246430677370685204753080286248279235935140397755042893996468367206892675989990858718979035932416102099693387759343709300440787992298618229820856389879530798928606007775160991855707428268854864093559375110804938316511299699633825969617635871214002015847291181204812174996055612017689261813996700412750536654320663485003986590685830264105347043102634519784213794186617771108270085997057906061947128528801695795198424736851631024966180014443304138901627347852081530097546520213806631286183819528499950556157668399084601223091987463273855864455587007524964233084443750797228803443018508861761589977980435154601401612017823291813936773216528132675270931600972241703501712006584143616275880755782823645638796166608365761370013884766395213203948505493199890956917182546376321803725878486705658607667858500679682010727521659079210187178816047635927572930383846344677901308693461173363737921254383710036840484604070949023397298317344821176146147136587625953378216156850674966468852166888780994707115405580997443522625685938330014998600985012278499245160191612064507627195229108294976607101750073929264253101473039061834534153054330464000601640389772012065474868740086405382252098975418295107934546118793464725889969629179638064590260714396158754793596901847827939334541947081872336979753880307537764703789031491337677779949830482577762759989665230358001193721905583338974547618146814941820412721236263717867048918967515449953604151367211085541321325930692543666327326891789194114908984203626323659485834078833591978678927537383445362288161403021492608205251565301105046428003917810073163487829784125242450587641119426221779503867412870320604428573883904824535132032095413840898885243996958923355003303759274160769796109543451734417684975801819943745487113741806425780004604550144239447334480088995963864535892239021147067197250821289215901425080163330253458540021069079976590051997557410735728624779939933704436436015751829627378726958249567967899781552184203280115285107609604053354547655180566025082448386219393593234117264359772827365161826321717047187301664827141632112058450855323583748756212899127830267975894605915376024894002085905457226249658863667945163485212272555410307800570793282541834021740744262335510312368655635505263840071702803031174324980996779935037093054356030823694564230697208681315298662318043624914871839885248471772007676469943820549391767188150177970443698573695367375809767671783505333546509408640065779345790652274183980617186950041649320007956133312252908180344255155551974309934416094498062369458677322433921960643534570813859579871175021338498993191668581647022939280502768867908056671771755333511889727416773248064122992942283950415736836486134915900070341153481322381927170369423840229593554883223793141157206945701322789755651305516775560914744371445941468103544440943717742623372552367604762044290933481482939699360964150861617677748337269205435095594491136435623615562059561311980382428905071068064348991578447197850040488306400669737828530385046400822630918154828340618013126026919891062285079165318426667744453474815914586143206776174923522755512570331984310953200818430163195429993110289495814786431124042824181799653057253808536388364720953732999117687676647071442125729568581747233814509147068048161383785934840722132819157602610302472217265038849769764841582805532976271270504259261822297852962464078356192934675803092288777715068737676282544551441522181513171532440009016336921225432245868846531143220904521931492087938382513306490150587694260442813541627390213550746876349318954569235705220885379996461514153387195454959236191947907623207503890698661662163854110762692500306991007991477344579871234852313194267856172555150537091856479740939016202506259863618112176418246550072828415651949956153490630729702238541998174979556964745710576224817055400711647644097277317892394863967482099112930453860160741213768846443286689764232301954415537938639015112256476868204641795321260481535919615593246251192582653099050135626767908066183757120948952822434338560163295773238516390777629018459409503425246380090024784226196972477756455026602537744525105140827793041283360476397511881049929872270700251161235847430603932756739162092895722996605863518512893029698749321859177802100096597185942411599387222044735572231675270494823835932065888092270268991155185037596058460263067903055328515652384868664148095750265953579736134435600856392380770463143469748823009071383125210641097394359156566044269272607877098298860022028253466626185841471511582082214956387108311373767693214993447323091054689718697224027029415802426171898006477012166865050168284797046032668967391901870479197253556039072441121656121726826008661019964736957445011320263447768850108413695723952707045000503152612540862808883052296044572150889960737620449085048985840088697967618833251926548050763961661940334156244352115420966815374471643047453550450342345170917089858861267449590397798082627622977699332283751810514652356108254169497623558059437191467341925528134235329252999906648447947124935531959529701630757106870412221217487787129432728883513332826105142489001823684900168024051359673239655627120395340485251086096687463925976055582192406974945574432027466423036299471707393567269490469228902580890089607791331654699315131867459610529053474606188514830625014996167831366673349943605914841514171803288124444633529617171968240638097470390671329219287900605222860699115074664465388145133718407062007805906745573602794284450042009972301398445782247214997656622565030145731473729158305301611788320793883978442531296761940776611350488993006971443218221809883921566168453773692920105442729255060624600121693968031098956172322697370017423365640337425360521096406360636396559052618591615989709185759909206209097365044531345580706912917008313763955219908964729628637689292141802360568729414704310662878827978082364565026958519993741760370828176950590002388247836268743943445552682989848341096473436257900998406341248090174630686460706861983629383120593567229205645372786702770531330072480530790069045539377619826074116141804396710712360702376671991905569672979256795488451599166154166303628793862697961428687029639385395667580663750485753058822810758083213543541768630266365854231545158010618072607098821581664548981157392028558534024919966668126632466783026088632576680695642368637718673259680511506688754107924433351084623016305611674512388606219909832020849148495540691359862150028687158789837538302147582408365209982863042398233236008281454418910751912120676321299931902090003398033815708124748345460361518187270766772643428079677078991360930650599132611734106235311245638972999213792234698907106009440494443480163285073666592208641186812169270046860186258977790037951931779835365728680816864866114479280299929723884149955813774672295222228130859622113705287249146201208141886565586962890847902489114793017949284491437817431882916694349666085681341421427565696282625450038794706115222129228025173647556823428298996007942192688997053967271802618075153906474723968476358387315665428181336908205200444256061407056759168369749692693993333377106778325238717857493686648564640345197775085747872797165172187389224265744100664526095943772063429459173337694527862953113000278440579246256710934420011984796625447107225603303505426606523155166719305373786885969478217214234357372371672355102989320737761932872841414189983751316545778480249100294936814621192817694286487883843257706566216024440295568030370738284691763917119807600362332786128479411960047916359728802763399009163201365497461260993373724905033460947193475039468489505226351225249170980051884408150154684900786376966457998777362799539113223568150393915656298261473358772914788703160395781626979504335616711549729670432099611856761754717585782037331056491280922463801430409570308077377054006608076547391488620225663347573234555333039322229900629591699557819362828410116711589844147721132229712129801865991784593454343210636107489117314227825684461440132732659684925676135061702597956025670856842137995534756966542973252772393462416113493036156983804851826511540475756522694703026917235518521370187591762420543430698647817832733489961668556668773387807245244648233189018685865021879972224547599572207842627267371392122901406867527069561482033858478381600678157994749039584194183781069919344616513019531813593357642715024434962831219412105165995982071457118034520108664983668443232157427361390424901522467526366410985483475895649375646847543181488096006397285328899213780302871912672300539676515962660232700625292508995920568667165871669803115027696190300455082819587308709061474974591895776995291573718442767160749423809488137490252209036722953670744214236329146433521166110291237956620777202939308376736604045155370485078345995605632658942750743997688029635847245590504707106404881489007086272527425343726855658991878356742860671957836605177687549176090610058086369748783790712643718551451323098102777051424711082381860790375860611428032732557056749159854475962470800858253232420212503535279699208668776217674115676279405399050680722614148106709963965541306006824763140247619319964036536339962871730892266160509604863124308534700752995045274571612071829347249822058389751655425291252624488083423656313427052207539325135806842982761955783867855242405667579639316397904768165242417780573745972183530976133701085122336973847999069656357237962281352720432594404273031175113620486807076139797786468687711547643968947570897116088828674993426388572435524037090119044505463731447963727800450591567621040840615517266432963113451484924727838791455106424964791148045541396392341901460420457396418697932799762584369958833027097164978861443650992098639210986768185395977405174471897474635742490007591374118855817605580969510817615069659766526114504197260372245499835708674508015741255356341466636898576896724759914933100406090856199509450143368457845700857672979746438171551514683829079231729852267351087738695997173938485839818877267939969403572290947019342788894467564856075424708910375143727238539994444389254650900291793763454322192154774538911505006443109957644506300193186058567275787706432580526521489718547449713270447747405225543485075972161388501276884653061911000711459549250219087556529579843497117400060654260483181279164151283505215845728392780048400316382056006389569456668151335677047657600967371708488649308270937925394601948676778782390014175720706730194875944246995562777504611446035173495325913774577818542181037314144142077303192725726678082582122095065479646316759753946109161767148915029393696743574944945721931216650617278667664348310509478105935083559432733371889976744270706604035725357806017186604480451293836453672851335173221955171378066822272900615381555068303911306079935198513092605033563481121519373809207947735572056640467550574687397953696571041281774181989790166255904671578652016414124430947131746810667593163131661470181467976761953824648940664766172972078145996693734170007978352970763195716830665756483692811173978740492595165550386490956916312327303740594753911317534611324465334396523552331771341663585928938946661731954534716473411292638206408360612287532646002403494723714975771536691443642433523102627420574121895260154302379180123131210992128071915356194437567000543900195754570607376698970824503653907968554863083959724975930478453537324741647578769323279012679204990315374074615569735848160466524242751051991480301006875644351555395512245645143543497556836064652806120205586012800662633135252996863444607215121675508970630917362406203780451799102994126092392124190711312267317585640766343141355858290240153417925031491549399375727916763965545039676883408995607487913721664293977768866072294820356058969661721212263460408246558060637525308134537457423463950469118881713727714469812643394637658615872797061552640171806261000913807326041902985448500753904282384623342520348986825672978299506287259084348980921430568086705988839283517017044768154202191837298029640149257278430535264444187439924650868231355043571506180016679668722469448563699357160965767492746602033613198998895680951030250804961244642923187328368393814461738191071710384437067535614704674098879180380891561219549157154575065136936211391298226284834671917503611528388747282876529415290457223750072725912017570481079945005587130478490151888905565539103796332022511533961400004464620659277456192009283145205362733066772275491815075755386331403130994834861402453082716192050623696097487174089624462634973199713887788097204052124576109646043675466537739026583116946684577553927541606482111770034167369195198681246387850890588551834105671023887182525229492765230285292260179139574896822492713024931602523290922931020750516234010784222327870548751583288079592489411699031132058027455159837433007723538203889746670920178156996838715297330369305901072855023869998813980392617308419008749550431136526414828576505313869705652943792235096966706476752198066304841154452860954878413303043989616322751001523854362493123823362172618263192693726163509666411906414582746229173754807022896994941484518864510796770680559830571964675751306265234234682101108305647860419249259420898673551050018969432260848068067671401624426824672566091501036574881159206538766417402204142572085613836578483725033984942403453719088956913455240203666387356258899205352760663135737192166403546811725541479167287997817557713449266534517787167278123821655554624066002437548262975434124052217268712030914916144576292578870572426893055966323788192169892334098422034796551062058984886632239129637310178891753109892236863387377763504499483745615026389930673028808689526136572781586243411375271931235058560379187183375815765646200456160007111832645104392997844776337043368326069004436676845527854212285842436495678199663493290142380584750790844544670262613040508938544476779388637339434333601069824027738443435966686214774570827692872506718780696357900027371857328516606218583292696216341020618817929416772060905793852775051418335597915823947099039751213512443912305953967563989706709700308769495391620023610187024863799374765133597433357308436138905119232527664053168999051555128128378027843970467650609726823153649658809294993840181722505907557679119478640833169852066586161235496439602388245017294133879974426991244998059343103205419832692855115855715735969034741041676847456139441208607763731737104360799432646576816121189328053920303729396485508962399660224760944900959702357521261536903416471423280623471364345654060443598493291497805771486474477550251416284768596371673596481027157398219067186374844238984737365731464917595734020998365284683515882268201633150018353385680785381397918673717234646946006686759155620609085748683032535969729718363649123930175336166660538489029120121870610344915794298482242500837397972362484588904706135741026470228266026599603044317274146989322254291197386938606189168423907251414455360149503972652941900458413459896667569783408329381345854377470448806719033061019887429075306740767663791729034711324701122872377119119623896410419648710447163725962538978832429144081284120615140828373917227365695697058384016985044901156814968046027455956805609370056611294970201774718229061377397576238948029810071996561792959278153869130032042519621358987322429322839741571368978501792646107236876433172624721980128243309421086023628094802358421314948848590252313131308041052104179809641049511708602209645588808064386330747685785822861600043145528007006155672807075585976890860154015931969166701440071026386391711440450385202962120841347581331180096997787543958845741042353007371281115347201643187519700548644366523955127310292992457197271736584866774615825530809722811647980631675162811457551185521049554332063199017196891094550776844833303491292529109011312707321499741176961855418457153550158717576497056924228561713523460963130874176387321077388861592098199173296492930822725856026048372654735833970888053357723119758537942991395931935110540427378814061172762200655791127881799388420006666794763129411799372791627618025647171874092780360629611065713187282976597319461167937868600484266126622370016065591311358350133627258684374592599053618307096239772404822715114983106333581744032002317640691818619813541766750518440464987209557989953277754820226331867591712630399275135678416214794497631748710172029299821356258272551319423191423637494029189481195637237006113135214278823679982857838341948735566578031373266193225392748251024698270471865378255944313359344704478537277664628074659327803320639786226878614199908385905871921499191515413463322608480550412049570686768180564564057979546988147964871028957163399585175174700507887761908509382017567660377408616425567439629233317578336634269381626535790095617991033874216149731056483259999779978028134014998008185363761857733723443633079525176688628493160116826571720077463518078393271484605373367040150841484948350913787336183013350946976606725917993484478411300472368074185669539009752874485607315203997514839970697882233563260540835799682606680837796114653165217031805565861545366864700188845033692114152150603722280460257196058254046092619517541271098374126674107620332868665791601527056254935663769392273062795897227596265502515698858758942653722816293029886961006381451581675569661638250474708865044778991100291659476935837072082513625788824519475969497368620449993666620281009316837188372225656177310265206477131290471198343362684458128714498178145110208076640594184232636939780296406722702965031265837501392736665125337944211132572170516151112144975749930858724301465033993563982058496214828188475487608277131199368620430028012178211431947420094304733017826137944696197195902263816855066421429756051945048524999391432552189284453380528463283329374184375529167630708488027344826010465494950964865295921352091651459068007839779140671145644359164556868774935758521705594198252239926285862876966373094015921902776140799296623151713227367218776894459887632196287883222657984395753058103344883873049437688945445721238725998291094182370534186541086866883660691799475688098201000859773408952255553464429741161720743107771088107319802375873402330495679254047955446578179117418302757505080796419680580161708716866770771142909508793012887554311051976557347677172298871873809860238777418619374533216440021198360236861903445082254314317918755787901677622880891684189250017764304074590513585530622433577926261764612236107831656396545655258648965979746009308216938546616546220865343698400613839980121441062839758280596187954567278625178369117222899647137431006945242582846277813677318531923323329469707489750552222328699646698266893457765117003739278273276999541637775992193512754325430796313823569627908323963232924406660169095535821127727857647711883273996623001409831968700120835253360503190526761570169944485343813466934450784487431055648203776630342662657419333456111782608282649900923051711484653363567620751078504019908360846941266847762771323359833195208825209865984890488281162201266802033958959249554155746570996665773658029453737467429193536478278700363852696417935150350447030481109754906475518387060360565211076708952208605301255132147194932246774057175503416586292015804769148585127037592476444317301793636043419157601897391993142308393724497214173445498428379885219100643471174970203444754144181522288038182332183137883052519542469228306133693779765156147402527619289120361642030259395093483217204731238423067574245308677367549773369396170373159934596191050560146338930933140544458147785653842549993456655487161144897477230925230406060303739426719840390172277024059998523486950233156618116808196110561274987888960209947480354793240676993026183743493421517209341072483843247808770347642084348859973303273819924290310641821994790535089457022605487632965355126878186650744033955382460558471168320599067233481912473021392678108212305949462155526961878967535102823262095328667530499163223805929029462054305024171962475893163628660130403485770447974732843445564630498818907649943233886974316112946938316546609812404219780803147082881232803497238224252525863043049003204539806978469371531785724654310087078966828188403201141732495877453822165755130446935622275634763216292912515117053289188619220775972144164187524974570021899041999225007668995249487418672058600782362359475410220220500699488946257173347993283958744451272513057572740202811029737424117834586023425346431449058082908609194914189549980904055634963459963009735805588181564043795372586122216853614895496068286752002318759383031631279016664170326020462294331762650878260665731638160407825789522426084119343997212272780033313169313997123994548410814133410937233380069023012530538334457321896046610798743808125718016731113632483957232254390236456369209731976280519057373909381217048026443790653253848967278101253812670922809410739629006407998546141918624048822902549973671521881391011262759348286496125725585088577033404286971781409125647269856234344509905406409396353108390790089093390772961887437611663176704881534707458088108639039700553576401032638082707260368503888177753890065940859216088905508181982003289942494968907297466730503259121320207661981482149555473419905551143147688312552823146715863705200163957593505349571012277770906401912932309896795919406056197648028621683756378730887677966218821289072958739450543990555946023224647988144777136454908595218945713681142424013648076891316854233582963856759783649481186732482413108137533190104865459922741606481270322765716129739611926521573156392908680187263617269676121226319430478217784302390084575194751136988389333629109805173935017627814950447704888126618001984820115916889591274223656594759770697367541516893612227915604516070592456874293871026221958021456037862460766374145721173795816158070765686559018189554829951606936919873811475999849079736218953207406948824188403258751882510993301614509463440318038790280216796625049469632373236523211669603466307121698526551218518769548483570552314970813466187858234116080823690284271602500773003801451509164650338961318815972661352481284949376936159125097990518693752561161882531539590331424315424321772440730258715163160507405124426544446887075390978152829511774732083021781955225545601183074832678843675300997828534527222023730297185630797910062420085351769657810348969175268211286836243688970143425847039774644045949622979040596351983947764277997469036083997862495158685344460788008343000655531169229822899515601927295904240966930880493793530745580259663590834946929730388080137287924323306772026209950858332607242635597037808840020130509570275731774694212547620528319192239152491968447704374366325862580833561744691535661931027148919494072380337728986872859779372265544599104302757306678660289537970872725798661656492531543831016729372377760378426653717670941494747257810279551026987101709158439079491811338227995174061419925394292339212489545308793513049156658666382170787937457114512088994866739051917850422126055676824095209733042086046887699598711459590589063443256648072433525583953884962720855284534544123012393614737781541387685628684785725389663066149204296479558780119888618815958656257142705905974008700602235791839158572663729468423393393797157422151712528211347803372948181047809470651681991075668834074269455344417059876114969681874087321502705420027698619381080783392993786548091791021005101370926845288816002881326542041857702373969773671741173923639200721654183689188046503021216278676403252218862164688247073714926775221053835789437779116126921661533413420160658688167221330014637040580551348722525998565044334073490670959855353742770865733008878499426091830420536695960072529281954358996521425841458253294563956072007685209334583514125748091272257612639169461822518848829165555944003577604181153232195956942378920488086957881729179442331160545009202880706246642920158152127269755458665170726168555242868852902000862474488546844876631841835284621029881533485364222417498245412269759208140286139688613253657983841337174573635412672453339038417493151442159979685044141202033268089438597574139883730225599877948260296742775323886586158993390682598490257437045785066296510979647067010640259453058181706033039684462438877920795210081113988329825517923065810285898375965131601927284433358454239638567194640476877101349748066992070082350512047810449231791469847300242802326086229042043395875781484335283733106842008521088039958593938889924205819933647483104522473162676070764895927567076165331210920776809526895797204239709095218652535437528566904852969085806095590311595412112321973453587238692123371161132383276446312449006819332062949991402912776135245080073681697140639130468531256993059826334377253264020177608629362442169639477577061099693474337488632803437992117001004787353016213287937474976895679833947928752720817660923302209815166324836438980586967800876960630873515990678470897953526671787235713162645209932773663218392175376736335438983999660000198697382870385095522350393995067719742889991801900243017464303417598239334566107177922448254119204049367945254471153741121261930215331381784983587358264108076137522174747160287535594650766928310405480262419935658051955447752759512693790941589447890570552850665157527248567272060338697686527549644420128672776997755490708439188247574529642805055692499781077655180664288972838768215976238659504677360603869695375792803558678371151642066891727102273304524745727297744444250738580411410106108338823634320001233150910662260935710288778962989902348854581344779903641792827891800458560001909357590714871858391203389354149117218956639504207878999704501124689309407600551583304640758697047134924221720804652852803611074796188038426320863796324577484671144890126866096652504980594554468054634801370647458289027428099295883250897797752600923956102195327982970434217832481211082168297105037612353521123648372978187299091110743968882100445810517367582292686033671387888396185910941032210848388002349411536849647921952629530733587840521814309269176203398983307058346594141969713308655744209540792871783076341494503252692171410319066519278099901481503379734898462645572170357899968275361433710961404898792284509327838523828567947875639426378294105870134010242727769930503547311104034138980781689358402378725505350603156288001954859952953621978763141236962991083932473312814082293215574191202248237343826870041034237502109197842786014101078059637730634570134085978152857940164008817458915455424816625666056001982006132184367465103716588494561163223079379483754489218030363919334439020105272435865773885849380993092028445059057111143940770160524213338784920270859182531780811237233287431875355990672213760206662647820386085468619479414027536176901544674450915692686162333913679022989308743035722905680158958662027673899804994617130456910939989696589955564657515509188521099094741512485358562422012457557836632041560993445976459522559886179763833476439490631449857142209203495444514967846154008648159791657448436534982338126177118044283307948721330433925393635006036487569976274347401968273067700695951009919392648215804632564654713969205264459330864446771510508971235372156104019606766311659772519410322705056090321386310284442670705259362830672773045208851210996751323515153416554339737931098507632636413629118796277256457775053390191049509914372760441071522852887872833880369779046848603389410894477060555560537270814697136699330776398860349122541849026608549761134590182849880756022263375157353467152522422696928301058033201269872170771202770651837356714650223711182464613363832900593989384317301605220906659727948793650711065704866874585060765299127500894854965857574805857264964562111480436488443335840771060598464209972099763442425242319563818527849308184645700298957533707178626473261125637533926301936453313932605448086526939907737137808522342968906151074161794680626524321954737949890919279669322174200397556081087602477966698628977533112373336135284703523844209600158666089708096466126114818610335665834119748552647471599145746334566149488302338457163294249383353292709763816398439949901689117674382381412796214160991351832692111599484507887999894388818750113053302086965157975671618375298381772292943737407503258382077141727322808030865006985945555277812694906692172636337597921678483362206156498055449105245162401163760066013300918736427667288863844105280959680011018291209061348753462962849773826753965561955697106851336497734887032224459536770170505885150089467453850308546862520064682617705985203269106243869807031726962768432826968800810950131745264738809389930667851639181710491259420471621814658104762916587103257620829061304884487625043868851744133283359903661561855380614763702592322141425216150559248431967170686810081177426509208846240256878060463576713787217457324723615825995150682841265971078139385021418655180822326713164245805220543316666546034478940758477129078471722733712345814935405452389503265935119058771925714074928068816683675735848372582690826969289477521617530359626048288067099933677632276057248922354467191013704806355620912254561281788988920417628764396914247372913717107439064848260474961843865117828621606167256971240450587964715925227931094250598182761924104920755282492329897153225158850190640680285009238094456323929017643837049313881666880589585578225265025119656095140430246602555004916342034714103891194456506604250619758098729966966742403165700732168841099670457852493759338706930223525310101306575043963434423288867935530169286045974929571769152567577460202586168259439683382292464863954793876415921627432933979742796107769578308710411755355903342350384576799996987027722937010868082124007722904734631194830717729056598882265400094310559397667507042029915733168422300798097216612962397316361116711957323138285351469039744236660132916877479436571349925832557116760375448207644701510007710734373465268986439927895615596123652878177386119758985280626745246417262413526718592277224313319537540531347677293454970847591735284596105600565830348033389995717695776705999011786249420823558446580519485905825623760666939059084378152263742340502629012891466152321575238012010199754805927634248932351720891987719196134615795146492431228017710691091859258533322837771131374135181868092352625600052963347475940997336524650870880029296288712871006666698570989889098712557040052629269049887244171414024739933376132945857342697003237451068495308206152448067541082538907613790532143612716535916988799704885729179250677721430279112745168286269470403101971508516267103657912682927650398854845321818289017734574415141706153024469289655948350133780354890755832153948569471033914726048193941557564766712236712731727708255356584087602040392130357852888448519242008556594082551227714812415261403617656236136370911053351795304320268630251469032650449175255881452278752463339329375268572058505938500240008355504467276325397569545331267576050426700875357042162398748163306726842603317233693685158487469307747132866928794440539260080934495445531997158703242986148902541443429413066125722264498518199705865134445790799428854243376992051356284186851723069461256428937023970165000237264711027804037087968484683677797096522233653696980901218599708649240604797984810746527593160079627839384238649694805008177222729047262027479906575150735062984433541353614624629781108295484591211594783943110242721942115677666762893696530242416777195489730368652149870506178473865837956352699029177821056268862597186269076784354016675542565379080604590784438633635544576405502097475871678073265282796777867201980849333418746301749224095435737180173369538324075063369588007372858763776118405145117285933071313293195130631222949189611725588374705398606668881194902287412252835189933637135516392095525541863807624177196813973949254376793330571752869943827327227272788714643321951788976523619778367568018058773458792821266530904528775353782935316157828550035675834021247569081644002752352270639004196402728508948926821107389148959717010375344308201547601803174390978662131983852754837790954242498442942665308943347732252491795114438051236874380390621350099645086496962190931118442905113507471997630338265333880564180315021239635294283115924397362653231822522215523428853349751141838135353260998456503873163064322387043648214487737161665112096811630347985940088146852958914312358333821851968242677706035043239759710015351438022873740953112216862335236828682613940489761664822106838900483872032080072901262307831487254233842079611495895160101740569208917792582540146475182472457690886801243645224496206261989245421211292700203671997794267289012639251803965981632852334243491570154861065590884163021432590703274478763885850502823738051663003356807825848322133895193253933775823171195649214768094415727465443333777093269377317543459992387743838543283371246277885885447668068910073698671915087997430469054317998600069860507178468933347965479928095766372734764778967814912251649161483633773792475977404981671930565676035712166629734778479078287027993839630208410780095426061806965886307355251143984162348829514586804344145792803258751306539832952703184596800568465519376653962613959531492463245969113122155642389032368566666874071844139372435205756301258036123147635120679581873496369285045881340140478610257794614197265051027331875065875683346684356383646956193079525166937140188751202453219994407679671849489226826542708216131004704719072843300974380914212290482872765940259977089795872705241414746303239901155963460804816707948411277555342556032688816055639313215555032448834781759500164104077698118344591725803388038066953289151751736822151548753157516399677303184722959978153665189337879908775741468376359039065882894057349169429011278190636320450787288009245717277914829514382751688323742732267600069688500084285196606031666344874873160610050746652376866659382940240221149388957267301070044241962577630757269116252565215492941558032990331277428663811183171079973231481298539102916822749829382789039039750057158908546346462188839756726909541171491583072580831007391525637428398971185470906991915091645925559661861337295246291667577174583185086981675958835442208283174277374663955731528310861212504779965580616674158922509306590064888504097468529891667990633808772816155884031050723281252266131304371574431647546649110487782398759839409725773046902659819033281992693990160427428335721749918887580463038858489285086522297708961977750005599302150184682946909500280390245289602826475934918280921204035976956800692881692082924046951229718700655473834707606877675120837954864079998448003716092233340767309944368444566609650572040794940232025193667567931721672391799388278700661776633114915869067404665189826588324525608091765309668234787768283354439998896992623424121827998358912825239633127338158325876152278921477575390363273771777223496706840660123261420379100132849756560741353651517896016404074468825954091972845603684899820482573926976085181547350310531576204029061972877618412780813615504023633458740601942376702487550993279892757161227520959337328478467219447646051846391039896960455608243126487326062536331533896250408736235338461414161597608627005855633126740003444085241717560515052998166278783998366744287626134669744619787517647882945333508103790345900802804863398594276762590511722696787278047330296041550977286854428207694245345416595706425105059777285938071273744297889912451651506523430307429713864379501892384108781051880987179347393860686479764067763834693089423447896833511608805121689241873340045986730850545253880478075450868129357507490850236878873506871215413872441900744247872700878720810758514721999253506776184678964496404820503990787017069506291184706542943895998888572226206702525131219029180563279378562126860684432202932953711711156786630619301356248233790437976428970438624505021074196366619909996722290141330291548508175044378393941263419795753644492388764607429436968963036737195493766234617477964340208622740355566627662265899852177978730623996235308917969234038178003160317423413038838682988599570310684166278581091924848323807565127493454425580572751910661014373690924926947764021060202591571156580468572627182176943696011854265304360803551872405554392040074637589109433247323917674901567753820912921163821621544941744982662004023149953605303444307286537696093128093611273716566806346164061017928186680950808224506880581326081025349778444552913231404044301734260467108906303717734915582722576519919561483986406381578957993919559258260085460762424664734112036636390720746792813506238235226003238392039382105457206763341099467781217634209168399656873002632558056732714651426621490443634695199173930865998455901494956468195945515129171292826278301917415880043779308038105051091792653509361015043871851086810581325067266677923399946080703421249817266401681407604271668103319594562847563908787893865571448974395184262098370811968130288200011570954883460616994904947690338305350374495342183312111052348030008621408377661818605585557102305956334911303641650363245770888629277494163408270607161143757912053325203713341620347968455120168357660796757064884909074759867029166999196878645954559996442435003575100689434125526439669408840893402039959977270714657398391743797741543944489242401580401873844948610789928822500712414787405243331733550187386383777711638793182616882949907501114935265507156997807821277249771796209113354463310051937689818364096495363773404224936344901830775776748546358386413705448800041790040820247624161337334499415562800984837938088804931714967318952112888689812039019064187115344669473517639790204409287233352784112937264182395952261659961791022608627180663057894255149615393532751147736723343297451571894221017775380786755370382394792969475586530543909362763767686616519422251035230552820949848989599093327489766149891257960004531731456698532352837016599256327151933843852976217539658407677020123889063640436267860649635838080143043200922279158016451258393285921004589392874671484128009773746371868725522799131709696566880022369479503320627808342997577275847486547679929086121040292093232016452683710771604483208626597103219608617402493982287792208693375988754731417132679763462069086675791915616044526472484520768062931353244731364589389971432210340221725418341320555705237877970736437619619835836097225987250308907983411653550556996958135939387790527865493465153895490504447237612196777161070241846786563267152661418283189811362386485845621403818398676519238172895834560397709152462898924498642130664933953532355232087402238685637214695631582796484528043096290251957445917535889043604260048358824772479462508150178825507271921240811860837831799073812261467704768076656304925180097243236616353842429584326834600583868296150358910148010380470254032694904077358784588242937370878708499662491446465545614312506724718332970205921318254411567065244633576545035049886258572085103122207662533406076222857768869964276096914114349431699893762472936823584546761272134910331756907368949390958399084784789611635469959190494178209102634807631225432851577034507721284627901052679813659675940267712879977411319851005893648614989959794925049328053733394088115615765692808181905740906347916427172670656516672133204452191490541176573382691538784734117149465965079576098240981370665871861743921178124274227607327933522857502910300218935166009875419258816477685328810241658357224024314440017699456039143251208524338511130578436477194307712967667200370030902043142012862166560985842476482833474769476488177303023909599622707283480659784732504546412360784694701168276096015916575295229753727280325506053447644462536830844989047697538256198065064082280753074295832657045574921425049131216677863614122295622162729041432290271885776196493606684399817246245701475031163135058360016538781534870443851899303174765705863354280832997285986352897265813174110977108570809557957710170058908065690919134729564361877529730183445101232344485865060075146651069986858373149880231219022357456016393237968440940975323961777898169138623144342614531351173904093150551734076962468096850535657258782686003144685913149992126043720824352171658681678696470309019868505016483161588546149498089138155940489312476815728536186946390606874668121227787706005302338041978845169502553755725947044743122516566215048795546290415362994743828432530844798604533823004607605157894111990514777739471742784712314322341479372759654356173886123419246400886742260954665642882940143615307970519890410955628712948535652402692959238932853560291539339492515628783070445140532054380786562076019550362338842447380684916623829267200004787769838466669372633902792183402179099102519218734178224201441020047237997158242819204565977357545112978925276612704077110423263535011454187333640806398807854346035277996602400243945157323261491410874965380096774195632027181243418962486368789065632218303253281569322403644008656145618951452355780988842767466008032801018123493178421243120076522718252037517662129281314872994370512573079510947146002895868848365801765702035117042791555103622801394805195134972756039100814380411461074034192131093094954468526515895182717818467356077788958783005004504198462050519287237441571272168317993157925486769306067902443225859101025938610119992980909868566205617871994820753051025870146943315506137022549564623022354219232621281308171704393266979285409051982883649320685644647566202698140423292488830976752710466906825987118391906667511759737122451281392396630957528848525674061394295080256150932295191199345433183206339536346124168566856677685966313929346564523669463275850632736434551067075571510053677136969132343373636488399523652655847091449650115191811101281028372737058624834495598947098405373629655620957563031152901742981176421667960608868021220430505145771305887845469629980067020931928633344739174749565697616090731990157290338605911067535599372004478318652248388565413868733163234467754995726851760151079822869965193496866730341078571304564809966113622977500940252048412226253787273830161844350843805720528275095912181691754648480771127987775719217446330919889951007849955764397826445495752378150658692127746578285104710105168779000462728796322873871792874239552067895047829087736218660637667796957751490436134685335774264843294560493734903643142946012580069885386841078186484528140419033220621369070155769505161478001968867616506012852853132667239409197837398957124769173218390378302177181367235003097553515421521451459764375088966953379632306250728093230981263833252014837679330373475598587769390694114874967840294452181173961658468346811839542496002274165414631898574363178114127563345500024632433120495356710597893441533415927250624174857064001130124296594453796434544807041472454770467929902253909770241387702531589495073128740777555070438356391657405503058301773704060285581061698662483954968186578497256965040675531493955016055969928516122457340748901261565884454499591244246212955509815096706031851997337080816746225121010610368158353158588403246603217413900174587847912765899018220393735945158269230343660555593483339679530706856348395428025094972713632568692699745440605656154225718669318191369291845490302310211091419775577266716365851480268704181509351236164832601978407306861802100441042884990302758275376672208350008374026378897924640183706815171996187174663686077632340094700336808322323761163934858736383581220022097062342055752318604162619304573625216318878717580968122114388598543614380277689372211852004123094487461307851603102589477475362143635016063956343760546703903844065553435143710569095212079721519490743832868869427633219453482176443990831205792138511407238542634644721073184587337255215887375073737266562683747256516174640637342092168199853103292790862307950085252975281664168594912388984128671161668964829225602081093923834638208748954737792991723010343341804870388091069086729197839530242674489466320232061794837326902828419754227366488929066737659536515847368952362223089615988844076273467657865504093698179159709458759752255374593554868371806440924622713468209813012272988329760120734179984118028778369986302666589369463880699906059511962336098112359193399969136935985991442849345151211783767231619093514803303339536249267623136897990115601134693900622646644404749761955788548770631444533031232204308473408482420785951633052148137533473360000255075671880292191102184079177114667609224134971597792345896111127593526204036262269592028321065467704976094172873885895105449365713036630775267716618390331905461644545194706519868640421539494449602933705898335981553323263607327279257039658642680920298690680003003834293503335194808611103750262739951927841140094093367763456168297495016257154098463291321593828492717109959158868823021102786174951880471201047645677905048619544610375473948208894329683005155528111604896114475944786509045401367376592450915105883303245996947658788375295802433776460698080497187466369947343487127591617729397502270539607039414713038061943520076594651843638533058658299561549099070804469288467263926150207179022805682519368106626074878704707360937361565276868502469800206952824812851532389014566492961493381544905799336680986854193931162888216625006834229701712802873319379138692948825201071788725275062969225592721555773789340089261812272723380317315034680550657435596998263429762016313787639019792165660191404130903803915503696672781107269679812089301470182455810886030841581298964612540132987128099089763769401649824414479058231021786646864747773368232308919722960115905841975079098531522156897570696523766360233961958829247311203526856916095409923951737800702598544753582528347545272885241836543731658295836931648413797933053051519662440332327267145473772809836247770260056659291815673110687039742453029831051794922937047487779812186827544853276007682707335799407997901690629722965688305267931914647283594063975578561424312406242210021336576103791236634710525713436776612839577537918576361029929432377209271473516500689197666223531776411364393224973001018037287336904405180076688434359692349726296551109644440457735276849430194479042421438032385388247281922672013153260699913553223255375742712258806036489253370230440592400676599653798512915240447507963457735360009558460758038903817337466802966792280643962918324924783662343481374719168265335928252922030347487469070292131840970162459351127196764614832017762446555526532255742947127465864840459678537409134690437427591440828278099790867013117424726159422859522690716502346891442254053191008043554930884817825157645354104864781013242573450928361745551798687371239777672955456436681796853271153451111511776558798816041302572059908769454149228164469105187789001283912514276418795215442814151600686116091447172878269750302552298612011561522857907440305806749812235489773693165636350997977079616804744620830617208598055430322984323318552844272923135201466778751235223104682761671979683012358997051230380493663076974678237032521297164392204586211870677198737761993281901858851432518411909218674257786130066076929356040692137157485855807088609678844358650582349073728957435556601590106001723595176065408197931957802271507057138321276146516286622237592348492137895901389741650145035420442700800164675422040276411816581307014690669422746305216319818027142646409819044956098514953006380713684826544291406676534413379642944585673306092670161984452696081815359894555452334723132712559116472437432232648036600353250391299330296284137118180138422744623315269438486054185057473328917225967268756477982546447758738757116634351432595106345368220614455773585849897066053702513349323102917608974754966584587437388616243184375989551679127172717001961626360341395693871933387864463843306446600089992419477479740677071681913512949591104088833252452543865636723822861172148058806763422556707418460618472158310401148915936325835241017611522397188567257918925703244391768509930040115322430265381429244630960845475508244645086000446413971275409879273026148442777207887161123407201609502010519951288006025171042082529409228266228595908207984197877704458400507916296323000592864416326928853497736325715892816244650451213031056149591099175241677242660751922776513272251219419270674778846610840231528202487682116306908171066741368444977176417371291845360335388685544106896943666653320223501806167783995270877815948286921025328344699902598845534523776025463762189852350063284432040997197953116783786770579392918265171906951844473045345974869774805959366832573310666763062255083407314146877203611151963944126360819499304495330628779647647922683952971899659682733925867662358714084499889108608863735757015774604047093327508840572676585174737916520569133126497117288748189930685438779030087291842255105519582655073050599509330288028864012996666001384552407952712724549715171577594761892537526341906302034657512712990691773883247498797895396068594175788813798595385567189298537576726581952126051709066274258150249622294117212530197923757920945888822632785452853263649665284913187861177649831264915384696827291145832305723019394373963182811601074480924103574063891840913721845106545220825578764628589679615791379014067252494998069532851070882706252968738582283519949827288026431241572872780067548018418240972742391781456717161360619272580658351912263499372180814440806040889280605109551615907737178652900364256235255494905197460205820903701299158606247123246742489467916676645792535334664770382979073802314954777276288409275650290928575595979486252990872729207997437686642904234159935313437337582276989668035717909460809448718777427480424501973348423452666214811614503439885346136468400554424228080616337283606787542818126884364952807903176792262190465430537867597496311706350528611651139310650972508144302779899894075296607455820671498420640326317160601506853049574709225492899770763366459674337610722489984126395143464271777402287457769805735977029341937204303164081600211569873947318297708661338825453475183643210468443488947641410225815642236427002749235983370285380781397582771553421530263860009313044174464331658454905523701570600497623336775963052956607419954259150591238166251770418573592732650230195809976177357051088716532934986814211997692940374015110465464478499712599249511179391540499737939205773943891824193180620658356062244698691178241517160422451983127670488373156346847331369288265861182983110972519624528011605340768707959817100200292299110337916155665599836281266104924344144578339812515001927623035580997707710451677992169100189277623018891095759450600581316470136585440190955055168511885072161232558387542020265992398551308931373920433641705858295464519785249808886842337685156747011567444944703862610962507000976012091677297028704780340164566413545817750304066659393471173481504633899536782427492967594213132730719695612825939013782511084301117455501000211107471542159810325664257785731757164711400711819322198745179510069605542153409402960913450648676236539168001993769117077317052775638234043071993485886120729601738291300678325518374756602954649603641241603061796664575975817527151601480263831350305660616238939992827169171596720669611715914538749314037948605203017632947224113868261467819079557071234357139398027458324780189382952565429063418916440495601182119015303508657547698625343728009085871476521055720731140648955208562278230955647168610807156712159373084052402772827142640261522146795639984225310340054627792371405060587960888610700113834591415473973475915568754381036266901045854969817440201269488448444796481018965073308205930778053750417930782837696480888231202331648671209233949689547291390809173312182619501518490838405467443414612033578077857669865258936937602752072195319418941007662319688577860386846914185353551994716485065223269021408783158102360748862788059895850649426495044839469915193840432971010921095680872731484581248650204700224108582711565950089774156469051288429434017114573157300421590471935039496102869869619200346568598425182433453582571343406464105920209616359704956050662363679382320960640530343361995206394745618977927902770205054018176894705461475384989157341747608915321044265536865007765380647184996385683388734206791054355560741526073248778005226028784403907010570828250564980957384967145589643081939477995598740396743644522574030457859786615546369620836681225295915020157761598236660756722795967091505803272194030078758465333091421600512151641671462443447363466700931798269399908214918798343304934198023314061450055871389634044129407400127484600953033583657519558567547179683463966568433467268827768877425623327542092924114466908624002745719130442254321008294349471944186311748571675842467066871764393545585597230710416767440891285950047714583246303457612874877498054595282073912974144034421014986184955165106115123044390690229280400939382928305914566556847173771329851430641595313574389943085796182261702650729551365017993298310057488066290328888975985192204633899670777357178913087212204590740039296240698491004793827737337492229163257869248320327802532441033359959627785537967748649142363415188061458105183575825531861356752776963507130901012501708935007515854473760578645424388510145015539000249404801910807642855125451882403131113595977508803882963535313090667843126550826846944475520476467971033197530133505228729108529091208921942643508123606401415849177831955376407281687328459190218351514387777681289885339762487919875089816101999674807070313659341371981209911940334668802883272402340951040189895074197700797074876444780715047157125796100085223738329082491871723199587457015520887949004686877851225821906865274654674425309853349663486820874049713228853517806762678423726318009069933688024318535589981342207964574973092710728509826733004196838043142100801696210613735217256312199558421402943439140844202762940865165795645225699924938043790560333373502540966911715209279062706716894907129531798930020633398828545689110100900629204369526447784799396123886210027425174365903567724668379362849965010972802105125294710285422120993502883042186054670301384474185097137493643452074464552400495933719477682786244795069124311496859827135488405565491796016706595121935916034120612284328630984554022521935186887161467898348070316203327333783229379749481690320912039125653517365337562748474308569184364621287220335684489709715309766364215285934235617659776748448578116649280463610931382281891897387965046352191067436370599546976528129692890808132398685356408465222978698502256611860942315842537460804474200033309036572064957886050912695865800550923388022231698134677417618144577398834720264533103592073262564832690488156429009905116339847143043959753620948041246747930660335357839310432443342731429816930132378957103282979561280953450609750401714455441347119945180168727854760714397417674706002049437191243411013963817979821219557550281175913830003938823556499566966523435947992442776507943829960517274532597125225308907666043573322221834172066426863846378214942917229025973388076165694973235598536695432391046872144793619108307056103613148487666529329431941187590515544670424756945147259759749769088488449132533321670017596096651743657302944518342133949206113722267846018727829900459917201547065922185704465519460710640093423115748153272752409967768174747777382122588636393543183507242058456130343381369848627301169831792138576214084762173756639579913955964726913143976677066245074950205258712688808375214272568877996196297310642958291734449057099361727552724178231659198606570383054403387267880121737871041774495746061326859865664135924139518671112022085864183922805463021544511119229635570968355829836654709675891258159176913011404906018369054432434106029085287661316311304934189968339396952585481450844115302554598704952793670757392068939048623271584108176903542266979809749036275393008873593458847189556237534338716793965994970676322971509270762241759802221261099207546701742889168431764691643335693484776306322579911063551149555109347637245897589957020830049898955836364159270869282182657242493692521491271033690176698895698857877196552129050360059637984107552787374686543907835842136682216732829894209384639468496198629806934770099541932431385338028324243410162385078867884130785847261270217813549172822504609757433923496438742792588717137648905066801499814034640783844686643095175863060222425747961806446899445734891203848289249506830461802276687496571602847561003861772701649044584752335352227236789833186362095497672714828208797296615875573361981759122593871093018287252032895297499951233569565660449596603452806442936683835305903869401332930368699422631319866291905473433939885708458330617086202672872188261291326797365984888229595849800367882603696183517020215737970172875127214946138252212479955818332066345924536482204783154025348596651025549215594791839367215507229511248891554176211817023661176052810119914609082228259147711060723250648290973834424205644447645235813973404100772470530380202434942568721976775602640050938879696648362100591191756677295601467175456799547205257369554311294635891218232663246004449303702636162729705928453086358995632298728534477163751332239922860146769210263343874300088737081618046489719403268377165573957608517580472819038062445897645044049611529176122225805417546809307881163084784830253229458105388923480593716438272239610697024446224611629446842006675627788873215834341533219135873252834470191421080378861368088305644908424296552981249800237465145185555319698157803022403021628830700408891911359120471019114985484368699783772434008938719411798247061368806294347708725562150221690016323049958159508403209581189931705702026802293905861279230443749437557072047896631133334495513757644122503620385001396513362820136580384403972760482395088544519316635051679880597057395387234552960016855313038924340787556429494953407636585754842931345510044561594690338952037354943631500588832728572856391008487537663840377540477241256796785001324060073530743663241364131117678537496961505533954065617119261976820652536785377955587477343486877494508399642953821219020626696465274216942773705886172759315642478722529458901378879839746638058480062385569417935838316290510485933071025892510096091074015482056643119047332055630478370173132570740665320594399168207903868391774096639052052308680600212860903147935727923547120339400038395613203185619326181201296288366541621766485495461395492587206311271166912574436899722087719164585322713386047538394051510631662100887362152045107406617518238905873840990578509981629262580420429292264448826313999278566658399833059361310146262593836489254040743590108249135148251953651105137627259603732620952166002408563774773924317576054664680745106228906815201135700783698630760310925289160199134472157687733827001329566364716828117600813999481892381425616761350627728964624599393890075826545838431005135305699902320559358305229964127598876784046133247133134058678598901719688216331338478303437005472073651262808846211238934139066257757109516502214042093804842524827853798136483979137315004103388314597226054239565373446376987534253762901400354954417507573668076489179185085771086173362740043181643403464689031507921981596690475395323633192410354964980416702108809772739277967612123548143557734808414186786900540570462195507452744980159431490937184570938344115889797697499098855649938489863894364791812342575538205968978514788426321049523748881962070094943228103108697160735322483308120868200799509423992256300222233130803988717770398351054492721877548192631929818634489967738133236857547042911007154860575072871423673013590918483517154763922747724809645232596093443891036786125814984904908323105373840159641767976881467784766508068655521049944249185500482120010353521467534565248657549701749308888846511166616248940755568476347227625011887106020914515518696958987753214012317991822228002176376881666515661042976767696117866508276506267213305902835549395446816471905976857786266844643073238818728275394942096601460894680196583335571316269302277688973038949105062530403020898779402387991738993292614416645321753145581946604975249319553656867250905594882201671455356703941738365410764655438248337361032915733498030758703525729566784220150111867760599528224120494540106589272609771451617627814412707187905348739407922472771336501229446009434682116015553020404354104408932713577852931631957624405954537910641042259569602517922658782880761072118867497515072273639637835168704203848026545282862942068864644196627473162869568896354967195623047942684266940852548625696333653537055293419837788388582815890696717929747795253402801642890721439648161345035410392750925146422081108630868713964390406904935491358285443953320672454999216264787884732280748389655638522277791078570998766568083648248397368025120352768881873457865583806217897754566083955687992892405655604962841211884907999561192426637261115339686911876599485280126285627072320997862627094916389564826142996833217903482429464421322227157991900587226709225838363278784973394053628415670497985111535142928488486227666247809758768573247130573495427529142172636990251178235547885441268515363024530085575216238273318556425486335669116604019225535450576235184931056426075308955688535277307072770856608434724492207340139646834040050030076747255463910960198304144101678546774130094996690211338633941197144272244350968131347007633782532283778533639858319547719038981621219421373443430885186198512749147606477367113867968596996653432045368354113075885409735046256246254006466288162574904704713800025248124168528525370882250194383901254280722243310287149627727860530616212681234683742873671785058761354663009704732202657293103638693372455252367077706173913461861300211769804823891304874908706986967820812408777998014406489015429760435942421359586044036631781722137021201957157233379390792031234210765163460144009743687729728531043138856459481998430192605533935451221799832453602300444984521074705722065515728380391976784641483211018286788162460601118185094209593362904386354112894765965398619569713953654120510526707555001617896387787917998315297822953688133031766696743073696997874331752213432518494496752107291371640680373670496957692885374195308521935944726566388311374967204708048153173541540384662454333745024911316122620663708981664349738831636983126721262455262319401436667653269679809831923555157084846728792994776000673451927753647429142239607787228300635826730566913478527258817497347858016424119134088085623949983888325002768146894602280276592930669999328464268091466612261646638221848794246976862055906476241479501213109907977103313648977198447552862217492227914971773133426406673649901874326667567613380534674030171197190374933303823062402389012147123398211434736990127035013005287557904924610868546109946830203315407850979252612988112724476589000701883851161622914871193508524898907043540675354870674055765704138079465182506141353797495486418602337821521699803080447318735635229400752208409317382197999058399403039743700399989189920653799390816880563483014248634775341166039258578394233163714720813305180346643183688932979073849840063836705336583425307780542279666827231239084808430799657711756836227221532942474410399148361721205144119080755627882602896210239678617037962643105649741889373410437042460225471573270722979593186933312808597143360929345297482741991578675553034576539039307690137739839042410811737586482827878238730250419754883234210801038659194263442238268074727742686986326141205887656980589387655286757309807611725024204464477791085738014130084185401332589487759100322864268222843634629983751318004798160557756252567349488953054718201352534324337534644656458913102009073828968776296941609462131804094847316696740345406177370016578397200439381287453205453498622291329591801656863636142387539031667374214061371877978845193787381569610648783415273915000372325019515471071062864380315066186959770808970505932052371681003820766145874819713032028033956094267300554655684691884334322771004691086586342363703818958964829768478652135131857976122522721331469331560955204871732948139123881869256284341263501942383771000568983304157334776950773888154223695807362174896898094644692237488471155913457651485617312805904667992252236715944473393680363082074231516529849913326396339880941389605257490159794515495639385855318923365657933586433223962889504906427329896287530106039108423627827838634473722647803476648909221279196139763948476384587125976787890188007343268010915601989678802712871838337840942272662562218180629921819388856610359545092689007388984588313935290073915654565552244947287403784059290962341696524636330432328996456940309886240306652739821274346599397364412086628234452357880933474111374921098736753599838874778695269152243767898165947640837549497407469874124235190394285726188592085334304387328906105511744873261451358170952646068091718816882891308932810695791424686418119597692040175199594655758241516172445628854284404358059646268654744327606281647477857921780467096467679215749775815187606282988775003896331139847125960516739566252184201997552872874548646955623607368140069085244777438629041289339184281046732026872133289080204990801854867778968529117452958584765059520827373994859048092897367706843475430581911560877172133568311346827413334912885343253007213209394937526840666749563721830087936658813013491245103720546142798570250674183124635884071101829425576435163527918175145648979491245906881473742456739102554243929203158400198655220899290175226390104445642168786133250585328932395546707837410038705403137479405535370696305049162185764805350005822500365875245141579105703330990197746372434382021762800238854500909503970628252308895049698499719177252445443583871195192877073827757910025831836744509837359100135484271905996544550442288630008796563499363406785920269518652905618034849875846161262533778788966360017250822139762165374601791968103815021384128081243659340890017797123513216936188298700003965560460432748122095377385995394938893791071874354276001822359359830109068644661548456407333690427443396155152851956774778795627927206831162817031803083520130425339865353307996495123145036550498505780461110300147898348321792866083451244950141478119886226064446180542736550889539694404004334607410360007253924171069876491573832501486859425137978566843209461121110606379400474299973749596542304612187092299301271976006494401448146228265523918553054113071788336411936897581183574632970741817728039801561069728930545829506318772930642518936118501655708992602866036709086677759169786886707756428812975673182850319652164314980496205574775430978223047046938050243247235808660908302449335788092253714062224997157110341379804664452174991064417878909882197287043053680086382856052345479871129632369812420297607747751001395775984407463137796841993446336944675878123591699743111362354681889255792623392066428882978069966561464125951864673916792470493177057923515532762440689249441158242314363852132137125302650476661947601491160307192427221206490149412014696382091601454106246815020831323428114303506856423083688901751689630021968872600337396559493333969224677082449002526281475872246528630175669253263934985842300747508019052757876356135507542850524926302861136215988107693023458294692024923691986585076449179795518159993852496727206581456453630617737248263272273788072308540459775454532585038132821637043491723453867093385194302977617625026441392855228618203335886591396601813382378465135836929214476979758127076984939631807556945749410512381241155423979045849673476892058417252111709213025155149244118796018731542762944806229747597163008005376784549896100738745030692020162209065650097654026977664223728627071193109413366281844650228144532456539838467051301593384599471523570538948431835151615819847838592519646073393127902287559422119965469328816425655752709288473441753727583313007949582604111145721775734739494721253379056827486371144366798202891903683831933379674978854538294107084701106679181734483158666728065932501750178583124163792430907480242483533940919354683884161144108482082101861506845152512577152651739979348356519824230989846448851611263260688177288239384825500273571565258677028267638904262098887827112930153858372238538719831942679140180712864012460643221806893855468703744863392332605384828172562393817490498678553449719340883353132787169904222213149875053531045121013092495907015737638293055956450147632093431578994032492397650837128657202134744013988179069748811822926963772889672233115202660804783885938585602079023044785111859010327278893051171968065137675011228052774173555498676175095860252869314560947296412006544289873565994870455602749329092251181943812598931522005714452537512469912999332236290589130122027844619513838923994591896862605853311064901784073765579307917059569433125395580568712041579539908916374246844992047076319081338020975872717616506583554299380050546382528133666864210086692820149796082368408810532283665641715880498742280156790060585192601978254993747810707335597774733927764136886746042233475093227174276252397036199865453526529872917120709567453876966651981336535570961545663354522735847452001020248343220452958082924287373211859923369500183372398334091979587249139546619960689398419091981531820697509730822908273896314137869711423652890848954102940753732514506737707687869893784248529153184539823219989367249584526797440405459844531450543346981407123255065749184165593712662303627035619512333124545839158912196982590784738694476364668453828788840788025078954388411489305398225160739410592652972999257857766065041415564917524737191668487180329264668488927758016484589858956357667627645895230713199434026526097150036170448954618621388544725692841973890996498575450625682414523831611623539312028578516959126012093165783218459024430574578080982499129111347365516783609478808305256561785549682263072516019802345835592921500944701361749759619167374156821695755065421602659157265535456579101691313143529904310244983609912060961088865684883041402424536807245157007248556603675378631297002864295787615347659683855894268243619056338523954629092714975337534787102355856919729243875946139410149172069240552328396592973031471942456149625005661968014003277241051702828651768436164218910772313790912792794164828694788391105675355430768607739826682543033486023864661656145121672527396659550143813336048352324183030673887121653469312661785540166422172878970856049416551055758800663991810896168672609319518206939574860106879899291042002052717329666611793312598031741339827253290574271864636250586422640979685942409706025158043765663720141199666956165456001704085038823171729051787539367730018533457316421098769131835359308671013648930215126771394619702877757378228523076811764619285486968553952940792696460429290541251593777181929494432538772071892142311377169887409836082866505261853216129981811255547673410458682560466452811110841490001813315659577837153829058788319447708553726485578815379484974694960820490283271997501752170481132251946652006240232877685194464668294142463207988483395135618209973773726542493745994379608159733459943222357865756039338973235117184130919980086359348080501671433574343129289309112417490062688076042468521996441168848850653932292380249330513126963977611343489787215594621608831365970449857647085536238702622321050779150341720035043028670974225504212269398125748898331672262813521351776323556107873418520773733733105223928141416016967837876801127612482364960979770912216547728434830991233886744892186745214772965051702024849973827016019659053098799587193587808945078438570891006451594229333354801998348700157095387887164353914728761826147482558912989026205146985007389272369185076944163643563151912620476608402548721562988622176252395017537930565600450178891337375015566742663327255259800475266478595732278275845982655351989469057834285034557466545599098015084457540655928470479507776108528310829193047404702588348330829448563954852109013569176552021885304691589269915837094871360170260889740932699479800079519783915893294491354596716405209407518917285420256372600018093752124221495939224253115141323198965358848172182183483149732336790283606505339415368939202379853304642717012446359936600280219958211100293678090041008457235870752530603501711510365265449330130381342251030812782880880174469646893821771743984849540210746930560115960334128839343103548096657405643646893225016622806789425588431124048743207953919840726091541667370292385235200035355384095982484879261105243421225848160648498522337236717238907075372327123391850706319079439644498988345236737422894867735108521419420224904812509156311783836987979433765643816513904296791390683533548335750112184218118626683365829536737454016468472068517269961590001103962208961968635087878302336247115841469406045094630359650683812552990056085212136903746973987508864308087277273959071914634072319459221414618525309747613110654448737496349456743758486156937807800430037812104783898324814694863610188654733873535575123223806386834837734537809170098963908418672785324452212359830900051436894445374379456528728976248324146098826201549473991903711214834052203464435244769756349521270425064908003946084293647358060968557174261246592309852547859002628116886355598550355899343077768961097022325623469112752059801782634935419629860685838916650030600494026300092183279280172453279212738949332356791878919684848913227691895233464137572464683808342556186607304076885260320543410275127441588966132121837107557043571018517954515926710966772982159181867014546396345650613293086773665452557272998069375102936076730950154524477457187398051699501893575430570019718527446195420844156040909257135384673242364481144774180324361885040988881158471566668854753267463494253738238541487693502918838386153052773689331533630323810539596797095736723528830058442840474063908247600932477420616139555315323367753233328690059110286068071597247673880034134940279479435599749183988042740947852669208582422962395573405149656025801900765176960314453660417244895597343099455692989196872089401205770891573579487171519418364035757426448360409498799903618295893321667822225047269728100506867195585246184280787253725262530992650874844945272932890483009959166294352102243509075048314157488362829467038132079254115926876111084866881340462107300609222822617906909904786263193904891441012411830741701741452535953803652122455324609068634300326613708130816777156610037731899995022281724126132678417859398895402589319620480364132001272840796139179405023023140923739019375041013389314114900499578459128349180971309922145469452129343933276641300287271861871310907741942987368124776308826795041122062763718136500730252171567740320689457935914006046407980835371936275521587604696328355809900259269805707466894119759585754296005519146610162323597892164129345640723470754045464263181718237250444813848349497492290488352956729697842662456317533781707026713412544282816198237832692872698635426344039974006034795690206581324202291847978634235338865277806496149144656178172457940654618886508374605418378015871570436186574501788047757260804213197615521211751447348830664045581993087778449636219536087822514617286083122481448390515774907570669448606625986478256239968672255786317494511730575419415760676848954963742965107651017237013755390681842131036782977175733728794874654576517858395149871210281271777260187165318718645473021759646433929390534886177492411105411770588034472160677023554975194648127102288951624537178355609572250129864809300591416018626375780850926293562199070727771571280351263663525524468035386903235068502373336391812430660593229533963802221192562382072901536535923165101125509358767666814913869486610342214577415215715788059976209185634501300199745513181735510009170271887380199277969290905694578138964901190565920287090319533564973938971225396037181260202058891627678802423066396415828511400475687204217719565385986940843540337541633275891310198933574668482304776829729729936475987992004751729842787711329684188245486755411742827668472245656857108131119136425521930235112606298139111277925548051004349697445498413410892411026055859551946612028100303876808012900953599298226868916116702536808992126714312826229576384378581786441716835602221296978693092196044968351635268534727311474084602282924452426892848472549219358838928823198862062738308964065040423046313777014920063851143252463317698164227576678921552862598789678026897624244674624206195696083385141883479784849638078579421997401288694901067075896527315559463029760318021145574112498792802374859579573628079676983339049174614154077919448407253226438802015567700997200472952243555910037405251341016300900303155884725958667109058282474325378632444045780377981883755828193128634644700117265537985357464207577025665459047741309961793969975508302119071698201460680623440526520203871245969503165923578004572053526725548463380796812659156339979889150880663219233257218826521007795039334664536674660295597673528671918734382613613487955361583463840884167562527438714471396657362575674461721634887434095725155172152010295003321701850657612368081542437616175033615594691806771996477380581479143578829301679204985672825191510015457182220701090101169836021051892661269069474124300644574233044955151493070538585991006436924761122633959173251585047622503120449552245686245568022780728131221879285196966483491922520115834504026935632654702086352547024052297929273203294742441108696685456738354507610398091026713668464094335654967785013545811962760071334451083811457512542834011371126435234497287976290315371331939703860933199918570756094103165373923339922084185217475158953861128751478896115008386347456982882330746934489496427260711206548357569398668859984569668431488246716611737090627625097964173061708619057387589661759641575363137334450229269338149682437605153240653588892608421218838792171491870830511164437672097874245628515407695328147441098576322841168493742876069973244243036453872273506592029786456581177514527551826574156219135630486335929618395261573347142216179263413007620610757224720486539981008694213851148228598662779878264993902127552618939398540199982887399252484969665584679658071640867629282656233803125632149055182957493903403852292826348625169097444737014847022262938122250783391170232260096379120762046976648386389370493681897482279428391965844318853783584820928245686835340872835498929432952364149674509602306417987830082872247007149462136358181348381935672941140717810839774998266181397532753374951714340885830468749997899190708366959534765787994212668373979770023526005911379240409165961668974643575543808235217828719789186703491898885741356223723795410377797029066944562848136497998752706690171662237133551114227864203257140296733991240934225186871165562017478515322506058150620786710206674038815142771769215805229008074953310474776370454554388588915021795756981333323019803186777638336144850483953186011072613942310685902123993152607527258195552631406360701482558391803720589369070487439741848059604256876371197509311749406937734298699000779245762613615588157049754656033890101731305659905464888598301171262032354953117246418114559602680469557011349581733858443122104752174639509886743864876541590365073672297812154988610157930774264396000565039236622313494885455723182384596941597741761951543998044359903602385699168951049535001291880162417310443779542713110867187665694217501992008645904927699925996236304801436037809742346701084303737895534442760604393019243718160469618861620578642345350068866959981645771516160388929225011400490031615998630094375139330795358665760803090963750011524247842574323407141023422109028926516228709641094082185164087859032371428656835584261080257742468269239792371114939862848585768490251254305556228974325988487427853925628503096569048745187228110445774078920675022527680691727863948478464427736454755479815462085501152379080970418368089291404816479117665780297494584438640388475689159544642445021234325093136864978184546946441734586894849284291615670948591346678673616776135839641016357635371945077566906519264341075711541118378807364485917585199050807855629965872494388107366388866224370158584312839082344286799622910083066773697291403347596609414292796416152269250558052647323451972006912096518552872801809485831491850964551811715341672415176185419622014345782108091374976658416296924681065641215910725662030858606369502276166962626919023128914513151259796881878350097976259816085205488673862436485491102753882920655698307423798479800498055078028502193642127745203272241638328036511936355664126250489009511804578387198580457993194065178014752915522976150521054790254361755852488437262524507003730407932469989634056883080091687364134603569395922405506268482117002986052672869361161370445508679427333516862014702653213119500398592173608912096836017946771649977717856225162882888799947041386970200075576451647321745249059397530937992135224235453267450194597564234890630667320540118975269822589509684803540590029698200601063563549930991857315485183297176817409997578425845949250786016397039884871846628624462555934490923392133969197237645602005241500433626887584866349574866447006887507232585320049811303921644724735372891008416895488997985604141080560169589607148415013776756437946551741340845516151868724710671424879825897429935410106438729144238886279826022644299757216910850011563932610269672028190437091491449625437218450221225497014177397613361540690932111713723026016428146785853195997192256542073232768438963716376412846557914607681870069129149659102686830017654232514736614998934041843486102349204768210577538827471961448154155983326166901346498141963636282854658997196319638741232018593020285812617853040183341637257670680872437286714535714266017813142122187695337101828112756897046374274813860766490990110982399899579492446135083384012282663561597841249072893818444169765318988390126124715125016641389495820734948975054628786463258255843984514795853071393653504250876758176029311801783672228142090088546147829052242626676922661067006159148321153550074526516162403075271861729410948571778826194691094126665124381422543661733112011326153199324953171495484088013469908320419042352041094573649075558718079083612848799711985019421686259352411951543551847157722419524574788709500785807881776357898907363047514889222130867753391851698240259576981289092301760608080065010948871148419568919085895270175737622069409551481700805207497739408812999832193095028065805195896298713738837263644428115973241298937337818101819792837287298921514972909097914291800563127439171604688221454457693796314602396963345332070550994003579898211222379752354369830069143266600800191084217341959989570941792406210512627144276688494027253018204599674524758120783772746930382876427871543117831637848345678392535619822932494118486054102631064278992154750559515649839217122448059187864765201183074809650069062044724674165049419118717754129822558431507842401816686890957499931599084129521003552607457194594508715940332765508832236985631451537697136110376521241251366927461417579895992075751955610873674039333336583007311122034151914211789475357535204600289072050034296348698280912230029535206737778136420098542550434994630759247351034264848477881270011316059847825427909787010567639608526156535167547088628691075928706815003788826701826220512245548243315509233504802079728809607181638239911429471367497791225349825124779943861700446291177464367068827018764571890420257658323482821499259641009800676004792398276265535007467245475836441743512848776158732211773371783440737690123480691248264705546459506864822774033902065437898160050724568926695615531532381048828935074285272954204506236202616322527458535333225399894991365379231947172414840786593565850065697618754216217026715596311347332997099577114135974917137359940681604712671662744625710198744463210898507210647362231247022562126319103911995590267267526167987308420190962983093106380788637569499791922677431552711072864507443064522473103810124408052017363974843672360710481247627933536923386192867522913615911671679852529894064991752324058264867741089807468609797469797584418087281128880020466251051525415860925497370524519157681820646381373843210899786167798953883929873121665720773709960948268203409542541020269476374788929303925047176555128228072691428894723358409373078576150463465373333943989006701870664984134199730952280342416545327669719087736436954886730501857214154259261953409427539334420361473026723680708223462616312811010192698359922254211635878519338406850505526681648551005455761322238597528615462939433725604761074668196864457016277707438081090443307216826533919638513078440774976022872885107996149135189277583078057474359289600162011729393960350759003648412672469234819363147478909149286470230644655810743599813665226011262012017945884152171352780634232034109328394742289015997841678085663410292195541829195675798600447207445097161946470024597664373436150378566565056501239749006917255682512984565220028543473159136850853572119073123699562917538090970289274387895606518084752022781095568776971432332475047769812053422074946761874565664821160083053906754834654596634493525484955578769560316687173383080478510286419841819194846259765487691262109083415419166035011485643528151488047455019608500120749667294692432089844712647886504366012327950088656278309031256841191886304706114270016595722737375189747994574311841389021051599158957722035258682140164939400795912592457269654975042717689306496985048107976863115879519784789864008455739654232369282822177242453507499394645206401869284109361614241484987281123700923174250417743247056946417722450224183215695159969771487640117925439864771246513960408211222907207255285894442643357552008713033784829852789304582068959448072756516167596074673679671521962658351667562744128123215048117532376967744680851495150618463314103069389532182093245379057158679818998668407700037745261567138660599796724061019532186706540551125754714794691264617839580832631764938498104989596152402718257818573131526893245503223051747074889579382254413563888196862478544628322145147982283357322352149687899941149730180643439406074837311151888966925908978648646151593827210462809920626715925164051713606715207652506213974495941352383989351092158809445544265481668719631330421094167394509519317947916304779970902603317057274677360008068293604211460372659818317464979836298267213824216800890150231159461928846489007600593788846127224779303913229696897764989270994642299589225037980718881806215218810185567322905837820609013414468379009825681034811604111762252077204614343274212229159639926898054552840804690889742218627672149593778897290871654595943149004929320683616614297872424640443520930797695547523475292391599025656310880550482502629086116691944053085777705246761366657828326744907815046531212137442605135590209256288828275757230319989603592493864975064112195321398363489765711620947682900639896139160912158241335279487109308641070802514517678260287160973434604999726317290167945178113368193508595284883551634480720892575400088988700160327865565918495254726139405936701867652765512764445122778212009105335106380974602947882522631371406625600738386053966790319126245114069847720406075651951816800307000912215183581322845776903522119642530390960772031850717045847268301076728034195113667454668395124355046966786061610677600692661991693421726040488734804973670739472407933276742336879170473272368381017323385037878085183960709476177965169493972984163912702296434668845197711489902078288411653194208261640072671654389803479909149585846474425789139709891744026967045357528350929476379451344936005768344940377204054516342184455522863895261108170820832150382001089048974016626836534825599750866750078121025679095213583715110267629477983326579474279003002164149373266984381722800341074353332191910856106894407238725287443919976312169827964421257901608682959043147326715320774254680683205537341286643395903161928110184400603259335115954184329651365710263897474721116713589158493109231732777894277960244532314858551898486956294186708017509503623770625921279114118676181028198356428738495375625401290355340944458320049611610272092683820112692769113972299138318281367584433197677385005919245438448504014013021469973656530936904155967373985481513156350164054224529958049275607697639234877653965019525546266467735656386114910273371713544098422710700008944664461861232308938864712646323802947464582100700320467219190544105359105525388034097726699324903482341257595390981363436601413684723882717544724298038237136407717320503034465727366834947719540966730094918896220355530559184867482003644284420341137332121620577161537478748177640943348456436157082543411194016150874371542663511059164871745278680777589871597089203455086564794263648477115596433875398985353423826734043200776831480974953804506615503783665932181542830694909082477346692933246814422522185767277393207424270995472276753854010068416924120691297900725486112620251948405130865079599598982587366814037187838146200488670040250870713346085082336872837703712784296064123966109100867349875929559613352211600506944562484667579428927168576497892037244253400739606487364948944933629164949907512315489430856331459438867722437064258334264825905876953117254764670740701291432789160771570113659692940114199781163759791068798356296628472101563484157601949120497009721772773855618016424527562562644665106949470826419959389409031338552849264438440818017524822101377934869753979970508624341191340993198406548716781728759326969525017404746788119903419616157992291825618734252927427832005185853810755689175114384478275158511542458387619286863830786504890916118188712225700653233797001729708976046843694323880938735085567563619200545948454056266542444068341178495244008455115293953656739968113246125306200575448979711124701955889575607064866855538741678571215151911684997883891544021969560844362617790630877521120025505740462382255217138615807113036406045371848287224339602627060473861036809689572213248270929161646297950272921526526735187891084040332773538971904185175786421343072727368323683516129666583854686261638341119997943178028826670094398477988020341797394800430590319469535180662562482439467432162519041911257827726154202763665475566685849020396077461305748469399746118197492553374461947358336021962925829410086225996189514598810935228698178129518376054671427906625221999330210036135280209167378110410759456170070974797249509261746752319721191984098323111172190817655579405790225079509269416033509560247706215071442130588026011624055427304539120733398179848985205762849782460753652807645668644662150219618122933920919920415678039287533681310671504404256906683455408337422358900172962982579200458898829646786095560796714423972819088545251833245404280662026097764953952499601951490254869779847452962251335340498600655722434949597344978891016492359079100601096251210381231526659116262964943318145466932451173635164937821908673024711802606043878528517871874999274681797033492075652053121520746651650575883932406589833245802446655695525475097115425658127558010226779616374911662930671579671134505427789426635092832827700012797390061127204592990308927357771965077811360769225214098617169429999517803659894795036012512570205013075688503703273105580272335341731444422393233274863745080728273436881743001025919313480589654177807010151544778661934375981316519920107159597227688645234464098542152279434257979456991800145709162615850707536408334922118104584739053471774248141701114108816254030340829882595531568480107655359793854086001102046387004944147977249166766833628774247038868793078592694646014802826344052871415950230581536639509143481025885752336293239685351239624757499204959765292482669671277802984935449930826569741385966801044906667090258883495424312932342469164212570252699336104587121353206652144984558919613550419026564611680719083133976556929449868979911901218492350603684810177551274750990451938813864409810188184243814433123120697418688134897948548199607123019433836276211400510256212181197780033602481639167764400398046955202241108727034706799381860053443090227886905204194161044808090713714739678518978244504659495071135072692916777841850685101151734867557953602008276413001397355056550411238103912913448001503308261706897466898672668184558271633841555022289726526135650723391175821188051414170548536898010500439337485132235068985793802977221819565752691222860832551549591805724152770399770652426558669237292613040614250154620711096807276402285196072602201403410591037018879734716436282864706301993734559171386148199301927530505821537245857786316049702796397087603029794271293939489842619553556165933663411745085548394451085508365075698076019292040119997871697615269356401693738604135996474925460044866595146110800504403697223528738345013245236760599386085818150562730489619942118859349715552995938383295890878435504917775965959798607633568603615230302433540432380678082719329396997487677114351005141340111533587460739230223549721230396267434571586829383529101438462729330827454377025749120038135803222696858360077635344729928762053743523804802170300556701134146996848817369256200285802401670124200352668116157113196727070571971711405840291674339884439010024329245149319972773318814797305096988737375602652332389077908450682227477450042478014971079096477493012052054080644891521422298160573310170791675916964964088388172168081443091778115684332069198047433751016080748522487150444044225438429718848058184606754657520975799236310123571216995147466598920748675631212903573636705149650189519755365234718429893113114715403559925536145832495624104009914832633953081561202921216791018923097626698177943208175992453529313113263577482545713619182709249238077580190348870292992549958079182111756919776933712271326346424979179673986864645570034881751352653658807346426429938528554542210389648691890028397088208047242970023842401796976416716474046516632348988594197394330647819614775323006988527131246246554988578359837310603597952142336144023244900100417926804549972723609398509487159491639053964949475495718894038010116691676541494174856331181017756601996042469435855366474956119210470073779123728214245971917101363903390452376722956489747988628442900060911725553080445642242586936391737616580455084764143686502440722627851470510844869851727188547237232213674814315358492410140154494193650957082416381292406729271815761403016561869546133352732720589970377150263462621950832398041803356590356794931830994760110292422994823051350829019836234273501302074200781504518632061353152407916523673038694085777492964068149887101850786790915627111807967304843183412118856733935152024954526837120412116591739049048060370262164060551614404198934515343202635561009959500623957672196075009326254910292710011306514436580802640256517458615562821122505590589062470587285874573527155960322605342871468765910067331230485240062563748806470603588070067157308810144760864851420130315420818162847188756842546683903213502680188903979726600535183773677335966507849284095259622044819195996244111242700753682200039402066753023867880600379425045119842556864528462224515952329297179884914881027847255232668429941433446431145069853164283114685930363984843710069864111975317883199543012758650862456846888410321828712109441904555545360389870541053732305128469334518550987297466704144196903472671666866485993088921623051947981497481526657810127011088882530464630926391560077851069869455467253575446999368155692883634368909848454591444917791256896777534160877465881105427341038116250095300287733361674158780182382024714602673846375304454557171232300225010953124650839891794644901031609845143995547669949919307632470403291395656864433479407069327419452152960726958478107196922606861201476193634431069856886498195687720983610932699328508371753983636272444082828389424008318382467153696315518161993728182065802969687280338580305085859168288810673958101917016250628080341553418649941951894320122007320483067716847725692221979226018181374479524131356802088661729109941711297257642573172232950274059884480147213631353176435905655033756417503812029597350171568988614039823233551199207580488626049376552511385973458906566466116853338022223909902639666521609187004970838731655653759914017749542920057605155982533339023338018542946025068108174178629952472530308659938032482214974422309378990973912766709257053427309776107410596413133357065626662669237681290359651987958273732976968089912137970661423639201644472859774711362149472446470186155921109053553649325243762255498655055788157908424279031095494420566884497949699927815079463696019600082337484175593768751910003194107377251311736984823420875233384450271375870903173932233005274029129447211857686796826336023685143968938369613740837730377561910952953820230234506716490689826143952296446000020316929112899480587938852335253821717805932250694646976862359229939680495206705009268309149788580325614029478314487148603924994064527191949257880323081980755218389064065334193339226851594040624304348729885814880116660942857554401102831153149715955489473972836058549424188085215090171151228104964243666196226723075574922433187090610596985501834903716307193031798440351265677902069640803361917098287165854554205043901583138701555568346641306740845373635469744555619261610115494669027846605774977664412909124339555712252596233340191879027858502360968793135206814666367892827489155431728665502354569616855635822763320466802045841490217649053671266326551190631223827837688810603041914344158611982314670557755859293671340519053724211493109381002770951460119526466152217519311235177738868249534149778858019758665807639339000871398617959685834393300176796635338351414661719540418852464972547738985024935003655716291944355265314639213484630430060960481979335023749333322263514397260740093374448432145593913264006991210078619018723464494104800774102342438829924105024058588302886714239502202340258047824853075187584206334214651490367454540109438759831491690704661049043741878482024432496374182122210558631031443787280956780161779445810917757266032187350488296088086014103302462088234876633050791469639694698963311876038918215142612393966720515069310363716040671415284653115223136240475090231493250988948958547122042119118792487760948169084604677250143638161653167349293061934068357758473905241465299806704917819317991966615381258472513417740127354010554846723743878605242919826727093642486433838389958049235881247043676636379007937179530448458113770329723751725764803067956580273763758795018392219136954915780613470644807741118146550381471202279548045712493831140137942148704792952108925902998969664031422296890278950851264561025824400004620412681680667916754239732816368283646582232223296357118571666036907928692644409670045891465293141316375227344620731150592490393089004417959946215447770781052912915341682315799191150186351464682997807123733789721644233573873206918850253656706352790078483680692002811706908839957851705282337882682843060319799238405042461372384842024712139860109781552437492896637581772808659383292262740046668566794969664780113220804576305645227828732500299288583966522526076846151878575678533692394177494190576340439773161843783940858053306049667676457510636927363559820743683158846572143620223485413086921856239985710594273928201787088530438151288094637043356489276368638632442633881961040431612169928219794684340325131141545086061874836720147601078931662896319766194527710039382624811677256426184419949877479119954964518046592741404272909903338116031833919824015286609539423420833279070325455295532212159822876243932542678337591312693058696283134129071152746463374834734257490259182268881731581198467894508484696783397719327994080485814690855967234729588947539946437343842799393658207698222083017633580834034582881702237976025610672086279740669466426544956529877623686528781241840489311872908961180753515326580549369402497369971127797767860435001131793831183067296209796491203359447090584456767266476547881444511976191934190513714741680703474674811092239809164746867448722917121673646952637770891768715253138324575701110616598438143142633014840559801405732101569747588635638567526462111481224839338425540625766778011354805451645480887288650554158760354060656178420973999634544981524696984576536849059899063545412305834348379271145893429850438820668267170079060080794828501174236531573616934014390210181322372355096202361337482618990894824013491086728301621788167033890020871496705544421240450271959155205365448521208213636948810772714653175231529381858238221440247170354573669879963095322001123472607737789982298779998527123413536353256846224216795413457066158071334331850905275506503843060552130480922348945944553279173469721938612224791029190408294371831602316080665766569343964557069654750240086075229904064412922405215455697435593691004695356047244671049158112666949747112805035286350369642465509969846286586445121809741770644915627807683637606240781459488679879786864929051761236628265191525832577503067071588714747233308374680329399358793348033857506535222843992969126502741724343569585478481070586106810205287272806425150101614920776601663473781520488086699527818885920408281177190463861690871852741547609965395356251210829440995942115454824972806142072374596718300753223113567910969971779072453499914694007604529400262528653802677412855159455658100719532516341366219145225796370967541200474482965448530735016120045531437668131206877969715409420756846799270690207931229498360516499613820774367928698506287575235178829421710098672711032023878000341476205959420817879040365967116550825888034718273106720554156194889326803880986706106657462314460693878853250424393596620474830012194471529664181627248638491969712993561540234177311750354529390102276667023363178003193219053563395838584890460449122253129929719927424380003847959311854057607296101322757508898118507717110861533502650415604224249697762377624842117655012151938739422156343208688756066568407260748036611173522652138087742720367803004384324296233171431227142920818587296565598460525753758818524821024313850952958904736025313042808369545010639628130579397701135288889869944757832580375410159183202785780762229751519161465026406919476912088445692579656668086697186588723086689295616338133599929470993889944795014335853019339928679507807165512839716298401644918760737918978444788955893831323638219495021162800843100355684942180224071325836310928954915041326039047068466095525265756235504446997262185036981891315411865568463561234577600820770516767648949654781759742944999512101221097280313021271878391676057297781124515017653773349376259983294152930240846877795347402769408397289221751781674574378621420355713569940858221954604078153825901092087545170587149408940752983417809020920963632793020122265153704613630338707198877140464805509866894335550590985503954879674710353017946491157420037371551874073927975151076384011707112449855941401295035256578061578579012643938517524598837695582279509631605234532580465514925412427595851688482727194496081551511341310918409931434854786828609393583002843021210183045171501506082931735424821840443173138229892637070890524821674791477957115289173578759333050728310769875881705524599924939601512180735943444952592525944203418981731829433338771185181258130966993952359311378964430554949891423399264495727240210372025850599046960324710679123535410543526554941554652048768222432367957507966234372806121729731976334438279921674633304686762245507702000214509127882011132273924826854403020107911343662723736740439237299291342448311853769710309175447769977071391393721974892020659678566147013292933504700948548712471172321053453110465246589022070291027541493064083672234099124452193045512251426381326846647791007993008988165995041259649873877250712990128741066932325840411861136573118782881500554831947817138638414457941869267126379577740249825071982945960762111439336136933101784285452928244054879984472014212528277231265261743188716050515261076478263013674683496053860737982458058706356795066659721214786841734674035247168704158268623375888947606256430306532128510073818149545891954274291567625124214953052617270690545057735129392114428806438531490810294676782702354833119143395320288162851164016820431953919441496163241697476436471824849284317843652169755331635321732140100189074213026762948924386753860209013973053995554575481859021587712988322472058702146306415507440388353194393214804516295050835862232988886644442685040859578920882454171955246786450709096084390041166137728702191701009116131870192078973283395355167293029506053902704165830468673319494337822846322713082764205203816408038250799826964819873589267697700812075307052734098320163134745286143456972188267601486987632364612445431726032488698780530514917000337001485114433984851004257891878014374177977687736254221202794675636461695290323505034410780813638406333672129193255435090303925062564713896822315080738711259510184397007074969632752394998580908811759611781089222789822820815532644574472301085525061707982791019201060046361237762543797378120167139565915226550577300527788230718638916982048250542952361329455571697042935258272306786130128900897610125094636043222255666635547794244359732538799699947446706293603699440978811583573812562717330331899269026572379442287856094598378117317134080572979135287763363422490273778346049860663844433502126763436667015164183653479020230477712955596767591481973533359467678967501376990844748311924318106998241194989243948776873617237477558198285790294904690064143350787325811596646341007039925818166266321711369138502832152663685315341561053263474250767187888547694289453056879670494089100933133779087295964162513883336703651804257696455772009388442986557171703543518523130746436226226436298559579242410780257208467109698420831845381008882297721833363910452544794670924054108687295593715516316311407476178965076850047302275925439689020855375917365485433561922413548812134859168666314570639775477297333334624412795520898919961153420452554406884374094692856139522114772863267013825068990755561305124854903212778779949597832746869919564435980749317802516987024699740123307301651939263178331874667610824118883974597737312177837543389460975470239960225976973979951424746760356473570363812563028155502505658966986302599132576320113431142716710424630567808657079068030006398348114634131135763501327303877931699985707360444204414858774546912262974407621564504632069819812605918776302395038738484712133361752940455922014701291678409839362326544031050332761999743076010790699741678631497706318525779676294928103790378820693467352096837825465730334223047226155323786475339863806403900510219959704013038274949489682004431676567541885519709214479428160329909515995974106104682062376859111461351813724119097216493135764108110689050146712382848008934003384159556568405573857723598446642569997061489764672905547447854074507075579945092896557916334518819270376706885402479620296667407668595738772340392822142418463515431009598089365382810751606067531570440916259423034934183475902396846417240047409171107685434292328467637840577978815146854867363058068961790678148130034737091909109862565060648044121464176672927016229968747672960199475085833884173807971105800744232103905380748576952581656244734228781331589556437825309338416567109833602107383872333253608143566889558196725667625687338657477186565270811630903056935288027392533619139099474839236342142651904600026970152312471748334558208207313300740649433288255484605879437633702606415536435025236836519787939142603360241420123521800988305997722042634368344017194008425868929147233003359828666734148381420607143392156505288926173436338539382181892917959948121554864767952754799280673698407646197677122768926242548421013556761100691860171593609162614046347195054738135997145078124096221072800440448583136841103621245004717531441391610554390775535358747930599921293170159902813582899977727657509236368344177771599831617675388569918661941899436182933113494249946368411063696281270429457994955967595066800960975650695445907400865664035065121431794726899084495652906768546537595620871173550064149832226432349871743529929285415801503209770011919730133584120806855137257801949492174453295781180928569389953984151221298752598551890168344943419830955763520090552919837743886298900702661494947410693426617116132872487345252541105079124792555392870582423526038312254040220485551581570997509916476704580120422925119427151222442093011569526613556621624213191820822609890285209860275237045209589436601398180006922693508536400040875761180692484658309399624833991979144361104208356151287280062353203254397042337339543398931453939788329640174703153277861466608683401769463254538543380552021980756441859925810119999481881352336112616150966067757908340466168046161706112807146602491260532080301509737060129422070069531347813332230580937569047744309243247718678137664227610853567195509601831784475489038199650127374145656623683069795768781285060211381224417303926520659444047920229157857582317415210115236455646348716714873173680792428389701047881034109350285804599174550413131493778614163254227556972573208840221369651584916926067264533915652112528525162376582701323970445998148916319163545268216650413965842513952059027955331185011769242540468298044037560851313198510016346506828659806254049480487148274579090011149866486221591970995677284713928273738399824708047082599631244031663685529291575857297120803882812154148805688097721763815834068096165213117802419186115481919485963209231230479431415469164038074158138251381933971576001744297659305123842589911386231827369827000594742253898107098980364458235113199439331293764890071408135229263605708623512001582420691305936919373601188222369845809103753581356083888752309537490632322625981267986084650333094599569952918929285996757116671563209625632361103262887466496144975933995442211769461349721996146421252082491495607441159148807433488153850317647646445936719749158126813298288704005546933240842382960843389010033657978227522669861246558235205407279824687457978046948859940210116499638600516085711319066200640580520417630391151760416746229534488054863882004854647391666004016194137733811227971159319253686285910301414345030541344699345030355639849456926254871304660736758834541897813563929914040845880323491698298974636107349794872425726104530914164729141129674543509360189502691266655312070483781608938229803521341620549599908583613438197133839148385750281273646355653227914105731544981192702594186665233490052080245248385546780786435209903951583327622299351771042586863953947204670211303499507749585675264031141049127988146863587512780354409429675887113476357745862194941701002649157805890938750518531383013609237136620337686328989103518695426390419226999018302892890287681033683945719472508178398413217188868253752020881752523334081401508920667100818870013176802771756456028273365234753707760821175423013288599126093625826204398105747848711521632795140040666038568966181598810459164792592429253408794635272574133732480598483034498980464466677591168002190184434485264771729460136640563638821151502304271635952238003292887484639612206762556643099523459404511256366693878507967848580387141455260748024472359012453814711743382923810135403094155883121718130098580821590793599815263409150327634710538034932062047455252969053916326564561576829907156259876922911286445207236168254924547703829912448876094329319627031367026360103693538208781171252380105888522603267049701580781869311452137015340789043735549943768117636090573539901898083114800888626379899677791495710647512091548409921056741029963689240156325420637224949339714282568787770577915604665486325624596088013201702992778752406506848171185288728489795458905862606970038055110350115020989786432629604544751822189215440398308969873492634124526033075169036969935545353848864887349202502785132545395379625768114864415316910203035961789851540882895523461127947279352517405494049238411611412573286983218342841299719753344441917889553457487302921665144924140312464605346190512647781529094515297816033185572403340547203616978371242448788900394932468041496460272958392466440839434939610154274094451945884064919047909035833478016371595346242442010639525516189730483267773560915823513068695643539914214624494998754691112731873858361992914089327034717520803855382797446293334221726399472148306248028018535817758733413991501964361455983527681599905470187277903009389519926464411516695424513787697066203121486850382180104300021760288585243323235683301134817674200189218498501641432852502679219548549956213363643484218942825849883721083078773613357868036170026802172813593693384712351583496724864646333239027052476872829180293030858750157609163973412230287016639850925929713411333270280988477754473386452132681909617815839093509986381020910029049502740163814071097319491831311030185688976617055165533479710821847983161473178957873534736160315901667757234436765830040038374495540761479451149728564555587801835789079705889810992077869303526766276977274151010872104154709725293313021978991193010205562790510814434504794273694266075329111257848641533550087109036258578461595924989604256858711302259835561898853064406473373264916785001630750303535797652232059711298191173984858641094551680023419498946323594123942398084531867588927841953656797035459961706995754092061784023504219064402479767254716208591465515533144105256193666319023131885378184204232967678006275272504752848805430760223945396520067082051633452020302182664373091537259452979408940900704773038252845983992029235618923147994979992811609762992647635529529660177041093567090050186679599666216068785916069978695762652028634013833828036658358279028148612880694716156364420274742185443186073744442070976095520342694417129455992969421040409668047275515261960788300979949617197393648534063141238483423798805524748320879942030147255818244723911632469050426463915406606730079041056512818359703365931116416421108801116458303053559585141948204757074248764048148411658144464207800495413623793375243958615155735697008532613308690837822529094668255244226007761677400201822067826505489751411223380622285612754642327182070622025552211748163192776733571326530554888238547579533274120549302056331687985274562117801634825394812430331179396103329479857296791087506681708866711944968449648637024116438397467591584326487410247615181844390942813454380285957653306952617538692658125857654537266749491650604621463028080968399847348097233791365748349388910242084323902291912321644033614414968754401977144939508605463852091182718800061634696706918985912042430085133967830669211929178901025573911674646289877599544981570350598889285154892840822851362437563117354649856801586344258051938367624596217228741381219874141002079547366935221556464148675610654139325150709420037151042677189213734982962463685496295863700058689818671047929627516341972497926585227704582057395870842784284875468581564529585540826098771573649724643619814138222834282375932518602694161279844652503531484626320811693585570194007192480350297701884173706789167837573660135125899076878514270238805784300146640327828906420321063464701450354376975485593579390091067612379894462428361633675707448085853522495477938886230857552305561365117216216416233003710294463465329054905729133992688189369668784808694454018854893685830989803161768554659124074088150704224304802613004786072806152453444690675433421305393181895215688491634591675262150539748450856982691596732859678023705650707112022092216284279142593378531283659223581330127057614806866754922773251310937658959065326090573183808145381293875235515207959068083506325849568569465167547870227406083301675690250976989013103680428671067725962599530672530267141802091046030411410065175960978476739774187987180479107420684663216411235133121257255791482120773516264472351669330461041109704399137667697719896520064859471678111007664307554175836285786169798360676215077734094274554379782610742052260648158925823183848185307841713124449936535408400142044551298368951025689101035575937877097222531615238482817933634688131421466473261536014811058280104067899430123970622639680862152109276434724018185357432520600320613230951922728071262816734180619302741580793719087476107225619932592446371360802221271076224590416767651176504626551790934250991112981558924164207274643445343482122188079468464306108425398576706609528983253891946354345581481451349875230154049283048669890047311555840245600791884700246433038379331306873275896456110260293953109426365870989138666270983147906006317962032620904192875982224457296352016792398665570950220800106332959117590229223193413191891369235529435115803626571679023870571757749115609262184575212306469759587811829343476872449404718312776227374249767335556448797333625536900567106580354607133674118925116723195174918301917319528575223441248177480992675331189131030113217145661580568524886069110812536276543855115827750725352425493637446144545139177851446124327547034912537741296600951128330268960411922019789079291399559580182890749227929648008203645289728628035024116938756341556054311994046290518365071602875302546577414790652444984564958360765126486993270840615883464718715292158152721642288842579128307141744167438641241183377713351801534273437808309207379205383689577091405932632689683120109505347194563448187838046190849625278692101531439440250461970531104047761077332555270885242940396825481343188943131437858732753794726494059099834683943053327513966486932941348929438144561400614708071551939390637602982482072964720616257660873398051991277599959360214708520264174546052514582252649224039964384932123870304316386614042181117447475518036161835707573540418732534690436553179756740674207038962449391706582850259406970489648618760424811462736360506764729767753335698638245660424798564899403628436593958701984241765901149628909318484575475540657968816307664210350862804416318215300107027352415262832855115989693372230440991959021548189215600316512249316549910481133121024322663544612319447119482503584548435069927538488942512838050257256258854127738297621940399045937883858187276344738340434845114125925465088161195897382652860825210683172611083690573368887937972954985090692411944698127736038781501922589553935282457282720844200725537530151359688298606228618785221948040080039467613680807670907373122355762011929150656029749501564187286022726613821034294653081099532744963981137107295731613486642643479427013705470168615775115307418675272401733986571786262191321447784541920476134987257805582044323522836683279110934833175976945431111110184941080675020717016749301836296133134587860671044080313518961069456387396409371190081073496505023582327394490156382401698929542322739831419853015658949696548418034295769589056547884785793031037817545239212198185658943589207119365397292601720418488816943870023530687077715634881961241601349241881218039072360318842761872925532286212537735921258965418343779361268898948847484700512291262960357315447556622329389407214989265404223881303894173683635637295963550849206970087524082606368266636976626487329919074800297943035165352538713537977935429639390944581898617806299010686296741629122282409476880942387385817879478957440357347369212932399876866845942741522966051183280607673603133958937278085200684720448774432077489450709871959356134121983998707707769724398067265511866789183026885523458663728475462313309069727741870702982930046992599465854846303930381688065662366686342681133898133574345179920357750573048548035155078323350977001820365745017204447180165708484601262854799303932578360924787151498938706219553657129981509423021507884077850873260537645787073532334492129836010035708405478078797228285372361143929582848717798694013974176660940052481543906197951591063614772428577657826939650628568938499353297539535487803420394884147060332316034046492119212129482440766531681672629650118288480302077247742068349249570990831504086225725141556857587066458112313882306994436433403062323262312409069891480416813913639533471243622050265382425402747340495192504206811564942034175274205325135073953384406531039302079701627066088451184962668699011401623589623650543481825899740881643923782791075860276733809638599399518514823988405874431020622499806749962832098922081367582158007779329756087146608572209039520810042045555127695220531370661792256662220940261438038483476198524967262231564851550274274861954364276856489072614799460357956420299065085448287552538231741227167695307181500399485547127515632672716358223564882005446989345666846632172466806097881390087133308990258926034459233415770736706606703734630605813989388260263083041811953525269260940076127976657267575095683343200374061777789428985456993945432630676433363233295990686023108733628590139053708589753601524997449241632467420406055916238621581139982482679306758836852861687275240120589287148566975551852684359918984746422258677143591722655481778465991454592442176080385554644084420164824421634156767546911646791781768472695099225656244036894658773830940878838829064877737591543490713862545992860054495970744686269733619176565730443335172232850861871510790792306643738038683227758787583971586423591697301683820449655700597875147783290059811786460161203911463798991496445867464894431090336008227768713119937719940009482416065278429442843647792094281717748411732701586538107934997683887633050291299631456860016318590257333274822940067085371277006143807209311494075466226565009099696525795499905737206332869570817086759745591437893146089600001211972007703386497158012569680737089029694875036642027135222446217203500703230624549021387741115633243499252228501718415770067188543589161757176065848643099038794636227030883656847598798224514130118062745037595406335513135746921893541610470801243886792911239585790618933154934702712165207587052919727236088637583530011592926535814922322496684506270945858393387711111505695852805633608952375804294297213773597441239978483939083128219249398431788265718944131752282398348148368096153842495428798556537923550823204449560079523074766443646442780923397028427559438706311818571730878278278337107308041359186689032789285511153091245967281771945107207414282591310635033775839427614212869298567505213034054638877279428222442767063606923763203801042166331214958617916650328641567153145262614442167103541721129759862137536863145597162162489103649148686517493042183257434378191802220099100863766120267601989622488690793230058044478699581427400935619538300818657584162952903180978162176658846009513307303384919366693768545634964483372672459329329172256802981503606257722647150920370504274109017028178973103466033765983985291587768545931405416582340649491426162857310466925655434108942012455738222347515875346323077727294919102791829440055466696461594633505830658860121330072218826043821771794127146848751919473004852448821667933742432450412889701405841595922798786632265687147932671528787194496804643522668470190822744705776434354001105130420239908385071054210298029798038085115428997308529641037844391732123443939539223448742630518080477882432005627243876424447203563995174559853824093802704331855704990854213622557155183456194428202559817530284231951592194194657238262735876157335678023519486363598444129795959240596204198376824365662475040002355538338128463870951895546013795499859525698425794537138169301347224234215916604552546293557080905557709004348651876531082933485012536666371655378709567629893111948737341460762755195086213484386620829772978983721850072705060880474850741160014821919134450665704647468478560191133588040136868522013000545834471595296725449642449604749046676955200432955438055437321438640970345060540431440867982439478067959634627478010582091333383959331856233189089583874385694376737169957593200129739336624999870252310813831814639988591547829624115566237951466346150027755003953955612691660581496047040671312433925517902674395841901092472730169946991508423588003435654734152035754352664437200339729260136562242123660578462625085044079904446647840077569493725758944554495801341466646708132922766360520354467843903366415407593702597469779888161145080901621157932488060268613248184632474273827481105209902386903478069743433905969939138611312351624154195657910260840739011388189493222962942098414825830981173525437759216179954766274687534224504724744837209792694270250721662594277767056819940980464722963600757155928634802789040509573076517261124288098606989009602194172961504224390073055873546327098876896595056808123781143350035658094763424651845738821428615876269575489745162627443769038056736253221825534414117503998092739405766986720199181511985900097550068792847288616885111533500383364151950556900741494090890733578202989102225276669015257573864482445320040288806879622127592306913056653865058270206600003261657681545871598979878168158081121630949391599403778830861364732623096677761827846584485613136707080436466555366453344049903201637398992219318183443077885406006741434129349048891065171604230972173468206041391031690488282385995084557097342000089721810980636942285331048324691467989781592733588030035040470670735029876013558852578930612870473317590996033676395243230558756298017512665669659779144390524489339268724964798793189721789212721935601651900405845219247306916537763526093819685524241832649374305973824353718520272691218999056357062036206938609138306523664859398044006169284085912749105103955823515560871518116094293126857336576611466477756491815000574981802599275199444008007719332955962068400693709531120898354833325798696905085546043535466594132361749475500743036491621720170527089908962817117953536382901259777376929650924032948233238112909101314783117857164128445234831095326689860869705875815204449865713279162432990290429415365863703166734649436937231667656908805146098970816379142751164572732744309250636179346345350203830974196591739047366871697039017749622141950073961488318305045178203798936054668968800947721385754811656563146495529110174801454376201649137653168423971497643794534609611606969648785298973319571704211121860352208064501191825600758788494679377936791681789108788143737864853602471027095436146331342861511865410625293762823319234238473175841077094816233236559749135275224231196394446589026701515738530461688962989499033199207008727517699250124948972523862615025366958330979277435549028583726302493406141259748127930651259002271792855896081411714048540466238125032757760706219898003149649147164436352476402663840651326649938382689132921996811190164268778063610462495658319355264601447544972728865015518489920065153707301779078276256892138670665824682653073008133664335244872368166414544896776413289455390294662157974581098569421622004957052214199084156090655619395898887171656296067233621913376790417441950244439472216567677131606564603589036727414860084078680082926728511730246743166787841602570741066079618852598432292387494031339068443935739620749238634248669203965046874311296447278051206715268528033589747339898278229831962536703600335222767339355270285362238950598440444889958565435772742306922645694483267559806691412246904277314819669034489077250234259988534622641747640885133108859408670192204247832180260067748928645149281034785743671001513889082772049924294981288703222033650422719178213396031204868009707424326117955478082951798651584598882265874701103312147838447777725319106132290185518162650165619761126962094316538225007599268808257915666800485389183957930081817991982072735683765302455021571689215566211077140798371358114103783946884837827135406889841880227689616045303477915225559054173397439846428525062855541411884064134970785207455507012507981375136582435712603180401501264220978117882334635915554038763531341304649222018409335566942464368563152063534016443266096901904456405931305179285346284789246924802901230287573881935891073598040866841323969801915219613372463415204991395056974177862048597932341115746132210414597569499423992958006265459691610091345272586452204944396676229033277901996287147040553411165067979511958759326517137646136926675033106864415718526877784102891879285016680226919282906286901767828779134851685141122718184784309994455681557659069413257683407456793782292975387438853892679172575497556770607488962581742962045134647435462964777160887988969952783021549297420870020032986898932314239165571496058659646481964966804991132939148097789923150826010339235795532599768581477815742226665871447817604708305561438169567039410664076010145119915345272647326210335525039339993052534910030991357129629140606863644984231398747094722271457641806827390797778466024108258370222530111903662026492016990429066828476305712571607601317658719261780758409015849103054626433030872492074585552718295333160765141307977546836524352443045041360471784533526918294382126199046161809602472722644157201172570915836552251667760306482872266994402266957393178479879514473080940851779537903750886004860393169441871758512075397459813435844439469455485917270094378746776925719049408182749303193578525526525613609149187666651067599886803340597222317714735899327776971532234554587392700299069654739154938055530280270878616947532052989535721679283880660577160942755876407472901444733080395473806308268343187885266106658849657225065702559878913064123999402089325103637592760772101548690732238430091334361968349667344428665309622618008120309759778022924479532135811728954663892390558779379930106077725227608158802763651415576053447165467391086037380804202045671990965145475027415604569613676093568801878291852797849961864727043811664589252152983127160964777518514723286701753137528709370552671543936897850552979577670236702711754011795914599417457081843510578777387940025012630974759006786784283037690970194677704701084697559204100634796753000176806246366807147417031320114003676934430908316262061580254165976503676973272705569791631855814937316061405699879800733366338226432152228317785223808792440894111853937195303078945009403315574131813607765519215598508098777335873656004152668982850852253170863980329600996560681889215897511406564405321710319581454206163805137770919433725237749196867124400835256675825385284259684940171837751679743818672148761149143544872318654937207348773623908570252601709627476937076033014192067926501371562068854735228767965979676569271009876602635437798169866758097366286175648692496556358946248998729047007636064180238255092127825297017805965006323333666039350761958609757204281130173731590439962062533125042768208141461067603463365722734598634897700347368326979682381963181275941165236016173010273737041534805603830285112097480706966351175720106204285714675130187571593166342964101904640006330210816105373765871618681110058659036110617565628950482255725270572760586154358560585165813075019351667440509326250935195020917724699705964600887119821402917250268683908746375633067889578994117888694983350092353032086682625871875216879296932245238250864272474233715908844737492919677016612677716607067212496756613702258714626119476191523903784080642049043853701929496527874884081719102880566356652779388934639567937868741558256315719694236692292073864575831014861508764919887613236567612794338668862699065830625301472073059289319320229226363603247395455585027000649336459347535293655474290537990509832219453515410773636976393365315448696064996340918694818435126964910656234327106456433582942195959951486391826126084466133210658459252957140084036979176316024164382221618654764747964701939142338614593726024870494920421659718172576183691713045476306357412507779340025176798424579791981320264603684742548222456240813345429991170355364972973178695499217817688359646911614953301441982304301946394150721729935975533974629212812201230805224639562990522203380098414529681226752290529928450693891078075738482878977622854921007784920340787207960064765186821925033729332704916783575043318123708345631738219310975421793626792025858778204602741893610709998944144413575252954509486081971534023072390204961774584404802947413671514963365394809284916381193212496880720482255288340274859930912182146963330248977460856561636315502063891877781033713498198279200119676651670235443485993378964767447590015512326422252613140521900426186618828023911510411727798968761164399711744043378413250729526985245799441701533608075708475753589961144768765952129629827133525825962142100727172380928532685720745719727367259541654742207479970372312185938905442741767799644728352517031268366670254993906124242155190050821218712606768248064810637797917242742737739961219186977020439599276352582529336550790106639130558522346113837918591067900848699406531731821893283235069229028859320216912466890697836705939631993146741618271187176789346331448747014406361538629298055746799630698787904832029989961094553379136867661407117524102721532528464325785301526766938519510599079902775366490921336970511793241601856697154758803048491219827956939041783474057358555311571259926603375721937867469757244439027050511939376279194653573476277909918473262667486177797704105650219965597288704881229847987550509015440146841411562462412350902360038651582686385894189908715836008763273405923126425590567747809421036625391815742838973547191768587511122904416873240434483157173415906959496207018200965675661973851709747271908562757778108171738576263266223473210927148755623908594964911901034587003972755860551233697770482794373504018293195334868532322806979172806259347521403854182426113615835215776311639065255607858271918811751142311061521874781972305192453322463453953636211188585563672252996250399214964034712007298081106721105513352248514368318439074724049421812304694721725260885438106062159586401161373356353762401573467274609646630913781668586252831043138888400900898113342784114063052245510002280742815154582184371854008297884366891643289783872553946471345432591310676424924243130942433751554075152554715287055485223732975544988630809481384131802464258280726549805428007156158334906458287252215830443928560606840407879089021101012864267543160116337901481253689962277961041447742569410961653609049137194555982410721536248349478033614067142023631829082901043396073775234912620571912739709609643062675923880371129034836107798000952380533916685326189220540639864228513704166288104066328834683513368528582557165347081706662207705644491319332842326837625190940089325529281349782528522966511910502641539915820979710540885493950965716442250310416965255574343784100993840843665760292041830309051856832745178136216568519198127160494115768061891759251093056980977445572319219388812878240453838167405782172589449797788779853067021824791354326169256415979066176197479736668760691549145828745545766360195234971609901382154351609740466539212553103863332889621089127220374993696129672288578020274303857551222739256641669739055350523350199521899798308859205368037706121700115679374376279748385245556833673938469175477235853041891274847373193654264011049251701550818718268465191317353184067820019742146032861135529962881443690620060255704583210377073482339015521497391401692549079418929552498873465948632601656171910369875612132312837974946624869376160356845718823409011359314857529693110952857277724730250956041011329141754332996076623353281141135848874098917327931787424670880725256712931130439329613334394056544697668950561411287431512259628495950653958320926354043600322060692458303959146792900614956211866455317987702745846297065661801885751178713250770907064718620576909175456455656836126064949942455186727195936764406500034604266624047279759356086217116498847803890868910914728459709113601904238979372233995536475600326707295683550044635180905089353455868964151398520228547700020187435028286816412211423552592178769680046215936111467758628422793314945902188375198648548597152543646701702280829951300825781479286420491040319562491522911733635802655935460271928861163410573651616347263799507138004444788732880657633740130044775281777739807081919835815003353882197112455331789477044573077460486745080771463092635105681435967745868340950778435259391432272786103591490500378625771506555818936691224797176798780545873883175940229357529928916013817611676457210234888080052670084109573909995878028272563488636026341178315454851210624296241718000350865691305892944835560935900295833452339259942536357491053211724884509343220426719724664896645990188280253414152319588233447146372033162319224917304877169708188287173930134973566051809242708812455878882444080440992071408851580355029664384766086437481974911584354725495998703084916732132792710511207513154159221754848944749916431192564807898627769152186886982737417010890904144635996032524910589675860989387833564800663395748308731534862220798742356458782702398802704616152055772465861133930161689221255560351299770991506949298057501009403676365085312857486496138114967726569243345806114859979824086611619780168252238014216250765492683605769560740592708410517316798361334554780166573177006413551862124961187765177923489991176397871259156740727627092897997045629289634021965548795594362971823233591625932901534285419714182852663193317275446783877939394366758662438602622679073636922858310475523409005275405600701903806508017353128801539674201201264818614373982618222949696793264100684617709523934564660534506786696802359033075711776109913624127425435557823884438568151013602498791148936473179522821704279621334568270022127025917427123209134526522510764342712855027598706442502980550798374209519648707350577295692484654615769007497315039645340116687569272579642988784709127022156077614553953798045656063952907081542803881135787565788237011946889593164136680545687540921939858664416141423237013344689051572529576945896036421302604873822414456352705761136748888140223730861375142310045348736193016767788971607634944085254296620705326270135115816065211248681899978752178123829215740263268982350906175001474792572863410145811659231367175390519392965902070260398277989072790970705389361530695050887548941953127851841350955282497835123864912704962753525426351438333152745689392118025680645586118297923738934780836453843000686033844751040384159039951463327450639121177000139894688307062874713894428010333215973589786560142591332366357824035808789722255465498467934305882668225103920348473840081083992393473658973310271803688088691933365188740164610945934633606501919413128225472158056258025360998175739233944539000608071455769550328797570320967049520154167051447257038679502351380019445180391827400166185824481961147768767943604283947899305388709357555996721395843360758838762523543039651695376751085674829242356716978724328904133625859098136544897327838344256075539681517492847227358233843918735811766684303480722326538775764134104135849355684572790843714463498482092376944501068631780330606533852549398237617215948696427033879774959320768070278211321851285059531784063962997832554287578677902017162511855399666064629821387642094889626841521867822509086411570719973249954060226427434797042544072709745883003640154747143713237533226704994565876182582155166830855560588501877999008846057359211533792621431578849055660048332344503013657276953637893165747787958814146080958762076216921139413835875350721980807182941231107044279026628825946498948742472683053579167082450153959140701148434902194358084219320471359365690229234294580835855351704627182832195883489999655852846388892060269215570617600756305002412238892851905173854790451322615870292697710525785882368176881517404506123564910389556663504566979790152385470787862152294470931836241437298845693075944267921387614816245331419759699313104043307783027048462883205674018769368965729752195381755395293488608408521722961610611901809684355583152851685406116905498391727029103224033378025190901280126086944620314325683161036359993339339537793824566759292038767500531204737251750501699056098478140496332077403238267780887277015134157835094932612530066065378607218112589026983899499700747316181094011668709471072245330224017642594381036736967732368318737475398410481404882280853488166318373118847928184351570454802728933701386006277619459466499598942784902082331601230439167068763791209622332748999627143000035823294680805965869643627156003637656688874906722973399826740029126963000812405920672272107754739424696446031025554827406180215362164683199468562387233400864490303410980699034069772201339664396465456832284538944523803086104774590845505127309524570746419082409292841304088563500653399271959089513916242355622153031009561557999362826228926191469542671241182890045640386544609532583516134247168789227063701388729655059264215160668444090471010326386244592610851523381461085925464519186442009932157620896248346275310853207967733778015749082198803396866437364423654163715189799406780343953422578736898902394039339349465145362218022613472886977404628943249321735049125644343959227116041046389968798124575818019211337120938486542053380668405719765992801111031868444032886007672621584575654319900508921040142043458129174589016184713958283695993383014730057355957620622491293221831301782381508083887423357584179117302841615909830322122065954338854642002086180187314808029476538258929398212792478441156604917060369164444334441908040465582262678567908349298461006475809899805989222747087611539458134392532608117138735578933831955985467666375070616765501881090386963871586178493888307017843090989698345999329674227316885869831147983235606750478718486713399032151256238236128677021520370946499695760564546295306906877738945914027431029555562515434325561907806841924297098292681726692663273571938259350702060641468179461420504939742020011131936442978661858230280525951665950151542239031939066665656099365768059343604617470218379788049115720772179196801915651240227461636298579566340198300657127444435066889058887852854640547940844466527570097554750385853369359000848918895632228572851595378798738378990227299022404189859218012228621689624242678185920425361758488681791031008659712305827296776434081823034444521611914949933740314098541117522956922967693596523236460657371057961439452139247617011763851013801990085976088643813162399063765457305434114290866549325351843296396801354176282085856213980831927605763605257530080778573511072008986639822921286423242877128679978483722781251089810371346127502022246767597341059258322723147012273673285053962242950298611202077680377114239141984833479617062812271911694006929282941925499744895508780281824870408947317751417046099949495920325206557486094063053542888208758496336160655263529793401325807858909924237419807005689241217925911998483396111397608007782179258790956168625087455964555992595995264383175904034704870088447128717959969152206042844952281153842726409329681226864102425755826625411122382995892212739139662383347066296313456224922500655679396658793358213070483431674866356970674805570403607692300300284428001640755464804637549808139898312171471340742306743411672115445212675198419760541817870783305651139982460395208833825600848018802399490973906391599278151503874884666666549236905594637070717591814684445484509624514093845995042880739364470169538454102949759527082457400465955758978534475818016811248625651650421212549415678835210373395442557996820906799938793831639432024068222249574244463006206467213537858373310536790401720811847795673127800065537245479263249650571951412610247995456089033261976173254406077915674534292169700741224681486834425368723592787021162471874973345648769366159904423958454647700335214065302610435800312063694676405874330869846623890346961311187303444083476950755773624250650906832122209840387553003321819131351040823692904218608481948726006631634790260367176248841926804606715444582231100953630288848753904907380235395986887232612764838171567920885329181737538242553729969043840957122177374179776723816460683286183347833978464568289756728239910131200769035116016078570542496060712174680632980504546853893253082078505433935139272513608898656040954401152671992955265326144819736231565257703954502598954587872753251805532443115611127353002367612961324206942386560467837195438642450110045446222699714050988509287861934458171192889313457102474420203866613433156655990611681374676443962781299787621691758969017149677401334954018117714305657381421104687434008979799316873980341480367028726668102990186127649528801565643183799278293429398450659967434405789080085266969351761566907362810814770067334061251167816977506301276949202693517192422110553465125023804215130663670998380206950000922653696804237393933625275516829150459741206483593949492605948377580326416391355928226836905479998141906358564117301382339536828559558645890919258205958365083707090719418366285725906938688146676087971598822192849940037087876803289538845174734210101883223840166485704245452363495269627875022237833696592824616869605011264803497828671295542840472112375905440306035300204974206375904425152244245656382127237094480379464595828169957737381549558442045204606075379741943227946836159142905595056966983415258969918374333294571330212430776378989717127363125498289828326322404700157862787643040288218677026889157581999733880805079153329493867615601733284734898454705049056924592519260976645465025678970449965583031746110080111740534600862861365648158709237997012917287228444016283636509814921531064574792864840029492590629614390322343901201189742461840255039140790112822677604063945401414963727953646421590965673934921949251409452269323863536592654105265937984545750079801247198556708901298476691101101768431973001166456408673726200235324442025794133201188111835330682502559748816344338980267710925474823637555865191097960619095094773382890199476736085839328493783512005006781470060695829333457545422876754265382267357349901698056480050093783500015291417941436850458947410906763946639546824017719828573189706536749046818011991351144217086729473055788323504143189629088341803532404596773992561152874517812212446897663045045171828606920115196214094683657307538057708866997541557392837132087327132224586994870415136116510061368471521932465546487535957353749984780411516517061572779255461231768987650107624575688677582904780914540689926630206305227369234540206291911454995778184511434718220736135580991805016225763645896611216639081679663516081681292323825427989467025429573939831418315390603405095317080178885041240708205704075738816481780583665022213974754823961610799970072540653381910406330281261251552433904287975074047224617951069619015905909116698829135001212045189275020530999288036707582195934313562840408886969856192216609249528377169047156193148467960013416788497408869725468602483279759637949285790731862489937257761780546055319899075838574324297713507701145273922012891254437967070715717558223995357696920582734211492817928735757101856539376076813933538768114560305629992073068359272343600562479476107328537345001093589249001528265935277743277699477292710876044765250040501825259368253605704647384851257510564611605531366519744468706210700379509260133257934443753930321338910924155625784311442058728287886973134008976458404785536775097467122401405569112843865035348511075381990695794882688727094772938685251273972933678184489408731437919966742674889903592303583273585159657854137902967029427595063709920153140363792852627795606003909640397831380635177723536278840406879887616980926683996038382596748397087204165561223331534311274530065498924591027428831439146538523008858961505654303666616305874363865379845286134909312426240356267265308498858014275685262111749996613400870355166135066902017435426742254402062376424911983440212312988686160686559472450233358287119590278467344401435137617414527088034939343556300047921867640200368746827631760194850398405565792197018726153760659924515697310153547740636817484828865124305489932907003918352274449177656825511939783609109246027127904786998350979869903834669318744630203137589034362471829728655474137698590898528157466167685093769046204959386985623044388966314753344949395713775532099429095809540606830440838506981771950417495062777500139918105994850435704714415718433595285736014434528104746134088051336972876532598600451238018731458386591129326062895686044814579803987340636885293608252751436021223898235447198962872586833355671915682767150138486235594187737558245107400742097353761335610534338620385992847483282254040202837124615524567024151750276641136002833572976847343330859184896205963226400495129903577513402351423650692191508001698183836432182701711051762387237030406051190844852242517139829573998980946863888335731230339454586694845434222087080441227004961827108070465463252679638428954120245768152049711901570411170541923468509973798842070737723979663564073909008454903037247113809378783957513793188444268630742136810564665444714901699878384614405537066014465746775340294747524839884432991908228776424778494569702184410556423442007866208020455635470284147731132711344961566373518988536618569307297484991406694489333147975278212854766342340052102530681828218808552289425549803692841313471176682792521373625356980602354259190294767171113328428472036713038395641540176258502922235245227534140880906099723324082393688627497225371566991783902899743748953597106086580367620204563196124680456429326088427679047380594977416662579519399023818343718334692308633626797854381715424655385768980087977997314325467659087873203091990733784577032825172722850865489367192946374908963222320040286297213069971422460866124328033879869181967047105204590795244364897523358320728328434119015176992370308763490257227079206604389988831160107081443118139634455471387460276879894326903513912276869599891705278773694621076336423161425569382127081686266368120186054874199485227884735623383690018062340224550931691997576184021895999451279220591918216178973640371667088331397884369780482341440057401495842123819491287333364188033789388545859571662696074605317997087913626979317295228807842022684564361498410010950584797059768416654394070401027344675837605859648967079475161374501178655460141462623418089017605308013443270307067387195307122504921334785273402965692004181340901535516874874941539191533879798109286450597849338657219054226042094228835592965890457931940675791700880888204623593619781344674533228081202084575830396688442877599391653930291627703165651291917188090308742831051728445546440885347193447442818118151326741350824393681855859981410615244090575009960366343124999670099070480328850474856940212994311534618371693701384868199422096918237341786053945900870130767651894794545161423060679014944234872013751390359502101902621751087690669506507703161626714455825309248132000626478800313608035604281771422927444317034227545805904878970836087745869242732337690701110639646269889752884357353623807686560706300982198118583564825852380391235494367872493057211709412353740714527778546001763680288441812745967556142814556966733429321631386349127763613385821523436767299676476330789947564854245788865774165482101710562202004608226544598706961748329173687940444619900820044977351481569572345748004851799937310468273916901803889471275139338367099828872938417858803825415795000245114916566504943737113586464912373227299154855916128515538220494876905637253796128684398536474787154202875272272121994800823389565403193717257735615229189561138848408682479066432337893638688188109326532419500890338339133866735012191539627370064051637009546495955490172874039479621158222250453400838591687785789535385333011206443277822640361446284954224098038891535493987614348092131659829140062034655865991200564321054844101890011735436191202961875698383642683552712962997441551027553588662080782916037064110827930040341452487026308378032521113891753195968572107301918671674121423568607300547536066327501454795914384219113769393803206013506517970056187386232627016034399304417059082526836280435624701231412015228726205129946118855786161349765031798737088281826702560277099295042612643411436633970568579628110426329814694744711322651289158196601907689895524015120845785251590824593543318702090562235348762214032995645983066104197990355759349632232575115798371914752926767835054859888414133208791886769584357782743537851950104630309281326091838988695467245781195450725668511292910926048285570488360788213743328847687316073089999774187954362836912898053373015416131447492361795042116991504266059703591396337358775199656235201198231233051850783230953998085960518966604939352255437537674222490889272990372708241553166086133932054073754186323979201115383625542612887103381480656868498510413472570600146308117270840214506883203316083755264358348175944005968231570947235417335307215578817190135908535562240996757963196347361974965388756871683127914192948678924329632043219365783523902085090749843344585461904034602052918816931243500465163132767086364141510116078101576809908660812959213903576230407565359015569049462838982728164288884693801268062453182129682213228883494321814984424817116434934362826745720708650385536461190148763277591636527605515740850677072097750238393760560394090425225302051803925650175058620574829470050839206737981056484152447369632668046352693352058092291231240461872046859923103823381458000456133770965100608476718075897685367398869597114679053214282942148274031382721438789788962468065122899001966375164210567563435351025758522386115449009736109106118042673845043821791363998504992483006168020200600705567833069297696195360745693566526245592811471172399308155363404035755005801400996858756582629326898483914899199938724471986301423444971309915329222693523511454783392277507110915155038280235173699784798772598192995157873181153231123155603175722711093376825087897676486989697823380441509827631618586376670943538538878776571786559509286687205604625481971351307226599726960539533704489469945469959699500913393715945158156346362642766830876088217036792428188076735380268476128728078469481257067034583202146993867431361195742088704185794192034057577835979528300920674110656877608186303751004494752450180669060207775854408363481479856833400271006671022986636372936906405262141300606549702852570724397146705616432378271900685843038609123568724812561112134775975733734321832808022419991658472235299693383778468178688253886248605759509894962522223517195675400814464092926287264691744953825851209743296488463656443769299300187584260481797213874595702900713753280609375633196312885155021105425743818561460651868550153422546788393512964390107530606472566493151156064655498655797643244874295588667989538751113462102845884489086983727419043054326384796014550438592804149142845399357412716872142107814729686121986963277940952007439409497518727669258163676534431758759047300385833268819345311901013828880400467849979615832293365708792993013186888854714563623576700761822717366654897119958070682725459342554166961162167744611118003748312911951807231168963963622934261375214284058436978638501867184364541326369846650616995934885710634250533757648555898155090707630949317069871189248568022501954444531656530308225796828558592046242417831016550755437962342839229957530162887363058522734310932946149454861057507231553008503394670632294434208155367436078324720092959074711711472551785271039944423013471186755764247359457315453971663629346419391793166987309303909827078956296491904237855753539441692199535663144051122670404662335897756594251775687252606742760076419223344598764951429074169467456030479967455696752117577517782023002537103561891104639652392632796718389021418628369448826477320686911812632532847001627178468810093179472022263360603046703659857383595639248710227173344700972261769240181295546285368665308305962247617453313047305767903970686943389335979339198339384062849447496122896496898538815995997862372699358040537441614174842185677846146567383091451615453403775228650730134280900240567575252957668847025185202739579528669989905040846054309510973354410080389315741940857363724910960696254578803213232798434349093235576468998016544637533413314696962315852168193105590209642895825779262443002930666860758892596552577030457533085009991547587874729494945827349711262788646383645485909050132358503236920491843254911094817337303574894599119195171217996002499974362030825082449464967374030161530161985380822559909203473893307691253353513138734372376418921976251386190575268088573532367726901215349302602042157466570495808627296722608921086282687373109478614205309078200184143132556899737192851082365904572329632895618733998963667661518008416542251848140389272863389899034990823683804557185493549393222396836882242312718837075982127274574440858706570760626623400105131595159893803884165201482389484148773040719808841532742286766691027392475509727934258637566806040382124129157593441698828050039142642737800269394043772999538362322051186483295216381105069012729968339828621569668500091704948037909799484346894415930975480090649651300580376730563570430894422199721374499588179828349576060596069562926014376380482092106249115197118415993611838625371633151141519261138173866581067251788335250057846157489851323528836786850986584586869204694196152504112589518992828364261891367641007341790412304180719478266563427844728106006594608567122804106244898248314105340568127557061203095856091950780735334657329294342358365949348110321636744561133627769066589936704764266852979417383514838299934029402666832411268091599546636113083561482402373177360847935402438673943207052824884290751250630710316384555156153542770943632658814203430359751597544407758031667884387304615516387516281819698675810754902780288622934750463599288960346103279218810237204293698806931203287492783209824272808970830901006641871680482402603161819383163199835998238376622665077790912772150752789053238077772615728757854105944567580717147260515595174505443266796405071595245780014234474682851391581874565376171156606595351317831311921156134739326188685864264936206190906093459300089952934713793696238866352860374492536470709202463217934869690073792764832095358916632457206233661373587366702720703687248178554585311509532759909074172313022328842924666187822412730333006449264265593619256155559036289758866164601588286377484345016046102475345585320752213875371555131746382973086940318357726530257352443207017978288950763299077755856036943321098809940918093041447756980577544400682950795013870713246217119046668386313283123503267843302952594057112869141964010967169346220328011441006740615185454647579020017010642407059405214454080501795811885499670296288011797770321566344162375166835569078714223941529013420978772812494496860085150321461696718906841066054613486361886245987061444186988984109066180849103196023777737097373017482455473752174004855701813907272388251356708873745690086576160676886626694847832763696145754087240452110173506611333057041486571787413171582070168844931458705788644019565977279501901230098943234543623633522998426451733153811208267439401349618384393680421180358952781008309839848386300917859856017685810888995374511795099991726095646065638394540603607418601845168898358320865402195319621034164863095894531167893298893613341995225306826470414904993579886597852926802787506451707069016156699950573209341920959742980243035828909314886751986191878634198805236060816593158103895549119008139861905763902997922819129742039695163079439127848454941077731803446173854768004689821508440984881066944250889403958379330960356489843627084596574189525680817082494834818233584940164951406594219735408144002726608063604120624721031526511191819868615615420930792137034785627843238743259207548727595407234441707170850125744584272546752762168382152715355042214406207137050484835949908438150709586897616195756082208164936202912836667426927244336247262685597444488558330917290805590589231943660987105412159440123653793070956275185515996666227658711400724869197788579093735812372212215984411759510875883622544978272065680246183102784717330269334657707933993971802767812432674112417596369975941790036157460091195801841459283489316269409768052827192192966244371776965961221134482912101815563638863889016317922348159453829249283241328651349030721010664296309417027054920153536395944788244407339348705013620552525380062644416137282699955569442707273601887807903935205546523068053294883374440440350050546422021483371366400498343248581544008218686248119138957572319143584001074004903744304401113474407345139825713543145123288327622596409993259466461728173908488447816852580289451277446802823172071460986444717674981357878323730991467627115103053307935998213879481580424266873800693341630310519136119600057618727299367297361869868303261174027454218695637389154186319639329436236350129555254872500505391384761459983569461634232809481043012624689478778959942221031575137608544947667622957737765120719441600134450608543578681198960418667155438335203751474280887884112886282429123131756121372221689438204120920366947371330498211476356280555109222615980626550118439937502340196286895774968108277335979683728751149924335569545627177408032935691888470434479943931459174350153534936734063003875426379485728299199015374046650784866715867127986965310682827185814754471408271614350886618723679456774972216213605536870671104218365976465221846589253316180176565805560955486555622749816102444191867222496409761676097067036379492679106888152933059926971971239076288181523283342850105639215561930489345822201692219115951928685270120855242337506877114348032037767839513299917994099483420897555060215895563548906214281212539848352069351680847798005988545191911152281757327281291756236512088979695184768792068204876729331316996112246669015476282702725813451700024438126273354706933256263469488536276719894714959307119600674181929288104948486012088138481918532591399555588648384582061456912901166927047899678065926517843177967428549613485996913219922330706278447116319667708176906417136326428159796973466726328681760552036119814882383245390560280169844615554735235856675379590220026251855835246451237831243184940222232593404787211023012428536374035491780298709693953752782803167067029079023486575755112110305156152855106958709324399514217387079859026118047481879278162158118636339733074251597885308546396253088805681658743185248263088441870077033222772836943729595434496060490792278095555843732247032610955397367937722190503521021931824420039218497709537232493656891806680187739202269222064610912295554926941134713551317272442611756237036104527765559165421404322805160817669876384142344964970690858998165366373501029728416043918447203821167095435347153277642408183388052912627547127537064382712639394029642333208687647311674106501109765085566501423320186742125620434424955208265325620724176235996402075767414264391881469175490631720987472851543425178681458737142331846933390883636453843366337773009268941901882269723681924840284274206054916820228354768567865359510635503381549151671790239968425624590379470901179056493819550990973870449658192190537702518080024535485286342465209042663953212742556503144984459021830768922271518328470337663876953251679368990544427866745775484991830541728815489993664031262949081669108626921759357203299212155595708410809990275880655276645979361051116719824487013022205142181988399612273633562781411940549947044689417136656350845941452328764532900384587394819661759129566452559395458170808509624223311616213210894475498012795519409657740623125841070248225825051781941619255547225528365687260841861719983912689579228004572194547793555966691681718281889685399214475005971501246295102456271593666254990541874408916191733659037296757240175302747321897697528157154688377703846163113488016463115982855517497088844284558426768192109734506398213552347603299027979184518131631023788846074632587353020579678629883423916868648518183730850101582992274642483530576136954210404235204070303738465104180143530596851161849540708563925604606675356322409283417272493559638394909301705241933268208839654977813348079783025708807689801633288110588358081135622565253566318378903894177127226231655500734852889305051791250451401970657274652549216011004589730505510926740749803503891369836916488490756979836918319057615616075036928514483643332383809387220146821892820073044225755595976345723809256964017516633302602297629207240896858234878395830635119761796357901254003503050337102462704956823710055112188325189781160620390972187825250742288767792483262593820214668414052916325173604941629852090078307990653765860223319526060841667573799336189107184952559846315738089895971228730112428748231954594581433777397904032621441617428100109746796279364271388692978798147828730065006493749303708157875693895588815925429045197046997572928501754956968899191902494401549115405959516579649927675160335617935082808530405481248328881332325043937177753188483662668329971548776688723987240938853059562794610200687824537391481073118902274206309985064046563042483373217993713783117952557118300100999660871533392648515854708006497745200135497542954613739035851312574646256351349999098443578366019344879350846404483559606794840460483238190932611793663081394542184630675576253620302331875195626746638951228344936412846023194064989349180815987918489976791491970197714779386706904407257999505659731712034959195733008593082292750634494839677217144556201862202780310388649286276064971150422584801575720707648162399813607645348779867159680818614757833660435031214543914635110610631670346340073098301395215975436615390918964736733070507184796389630972281057591133139167398561893795899446510115983409383282699548818919501367668815939178189160810116761666562303716258585632851145665364947934894838157096969941653357594514287884835852408850971392326234780499880259865526661870556110167870304451732306359576268728665382477239704315770381977558354631994704888274495403370741975308801489899709110753886971234559979394751108925818305970153430840074309687499503981128144372311753399619861974457619995205273599772326328500254723331007661953586185669034812978171101087064997528061907357960594289329781462433446128676264145344029247854515650424358870186711945867999609668299779551548874751025128836108592476418981355642502022938206445912301431347367884059392274091983979255610660071907678645242412930588627387856368606390137750219825498762957814334016586361123111521464093374835357780341927599975619134254371993079250339599065998823680973081699154418563675283222811615758344406766016035215564375812584710923601400859711033575549540451638096078060038467283100952356414789338328470926751162254454764214234747678926647897062638278777508547231103069228880784216881498890747344879477230023226402316873387667075162554712185444061828105356086579773406179896150838591540881388754284967702164074170229822424794152747394630384745438158090288098401005888155120438964684652587606592944538317651541496713396720400903783308310199654418435463930866396383775819529445726930239446561711574583389642667385902634904377267909480046637716500748999410876044212440058683393963365012075750466045783744339064085892874558388483242766853330927116202793280381759419682494680619085651603084104615236746665038059530326725130267457758139151157255630891942824748325201521618738215771470117707802255505793019122512879910764234837871177397943021221254529084392007172326827709571297562839340576964541833980266849656817882805716973573394823682221610924849057617434221918086512695119495931176548941336167850599763562611302277867667312820801671519451237473968717225764545627096263183090863126547516710604042691220844141391413409110387178087500929040820847606540136812559553896386481897537643103603664595581552012121720104929929584036563766840111464065520594820384589631629935114713573384533035302662324643331441638456184674145526949334508944946218674332064609099110139172045568228835334315327040407272070434057255909764838521220798339345228387889919489199544286535976893507244988232711539949896954356530879286810071581205045307776990739256747634881014843653065749326098594226336688082561788972870249248405427612895670226599312461357435155534835810594495132118131324354514773065136099626710256344049673945486694151299310680863048837527178573290012360615189268122286327286550022474351031053714232774632547437680076804415207381209937333444163069968488011122695446294742404477603709099247204415168112884625175107113584773872624754709273830493750147712380682534492620771232198504731451313146911434840310715604798513877761123191253234665434204722006936961612216340044963028669116860047690720224969701740930447331280205642866242394717164624868827180012195721011393265376093686478180544075135029510839295270054780038084835183268104345744619341368607597859870165643964018724410075510064705402097874400032099201595776125474416028282278626275312774326586876329068143952333214480864311533304034068290303389403884428357862697793222099142642524022295864183040377043368226308906848068604774161615367830296673323728925857711033617009358671299729045695503804864851789248142792939424156687285234553103944167133008119896568669613903828231955639235593801475560723101486274869159962371482811604265598751317557655984259086266486220928532078688550866079815742351112633405711168852392573994484500448699572820203258687777553287508254784860173344900548170505944311907689977520768437425239093498161404994780671040217551933607948085162107878567796331730840528413632073973807991791970242960015289407554073797589684077552299528828563016966106613853367493293955237551577538892103319422559905017070833533930099333007033162486665084735696680522037044210848618980816990071618093245043670567548533604111977451245389011243171494544598438674975640440795693844611892392017087362976595456823065036661475948986691128916217860714262693720824934514428705888559680902981640289432461488045462279432303345349104229915317668498800614917028380500890654249155048961354900001457538488803806843288894920529210850749148999702368038397396773583186689966465358394256838297487415638354316378200935935983608169984914280002790354069796794837829091396559126752337760383897848415534056500573973337118648015992450023617600984229954450922638864896562277016328989246952907278567436385047334664448596598735236243481845283956125713324159997133120190710036046492830425939776571034761606831847338918981926876706493526826959493114927243595245535847607382002091017523597219179953522813458403157304857869858399988922493237253801437858328417403342582078750800407855252199369904840081300464200292564589287616519892024463722094185716076362718657999917007735351599766752200650422459558134645520421955882665853613766912626656327741774426733494839486407748821113903378371613998627337724608347289861811191436967709919265814341816694094276902475293510412789564759780030043801727833071005164467109981140197383094631130331486009103065208584352472635835114480080767841149997624679420559711218273322203435982159887220899438357906942951908720724042710916648692403982809586664304893006494175101941229559033348362062290493496571358583650348990367142849839214304835207290045162351408434594234080018521159754739478057105082107038545772122989039853107452002035961603257500502106729299497349224587867684230280665972850719545016072953128523597063109131434319377703653246214431685701151762885053227573589995575666890539799995835978810546253658413926843699135377945773877705947725439888825554805079885788031999113907513122066927545155278522465405591243353462727789823401115338367764849905980688353504931162856538160670922940238046966272375929605915027653064706050111962371314711397459691692540795692263345259752909519993905165540806252860453009440109271084326850464623982764330911961344264311841689412174943312778673447042068070534197416128784943619445401745530068867243840640369773010487022657403403356618422756152512832471064939056733941827602027771214332863433514161654414559654200422379747391420455936345125466337581460616499845445535826547348575984050028308598035298789889345500436497912856429264320827941100972705020560511691362384984809697906046955628905316125999053331462620492970006349430063731169305965857943631444836765445092132062473844997992133342887849496525354648613508896644707621373397933032612256245507709452204127780628742880263791017469812078764426115828685744607099933862546518808588081093493267482900671792038738879927042815711980641201276575589006981198624040837058451857135660164372415856601496719554250393105031640370242395822351225710475556545490347896757068454550009103299951722928268910044506599188919106696119574165306650834733677481136833723140508736275075227783583069227394927802931325812560205459837495814100037939850594064059378910310767136597777017013142218137867990007004292622234804468029235013675309460127596656336774665815047148427610262904673067182813136905128517460205324263052521279292853966812014401996076163825822890836938965359676997315090777416145472023074550316547383655051808485536175060747110451781751410917636482953724594264618018363388670600642682591259798911723068960315967678618194933279453284599816946204516162912344678138446797953666046541632212782044269781074626908901496784776651889131566950466097452653208399708524095673254392213117393786420717286195927879297503305232556403950226568866249472359758079991394623898888389025512780253099033960553091364761976019335110468443635923585081483773111151153116878290245492463200503614874689283552106549808235338526112858563030047062234246975956909815827616796527524622253334698099871429466496618368736429972055445942946729598959190413972251857970073903981070736875734899044961078248647075632886296386409971891487876631305042068522444637742473074046441193410035415912276122090152144790000526480877923382717777945703318132021446032746433012834643940804913102802891844386250310949283970407886896024390456544013456821272667501428089787227806060578704459847655895567261951539677642519033516317522251804666964501803757766624106356216405028629019295013981535421489311779489776968416130324781184089582482651719486516936026213322607232025312756682671908339370660658636536958568013463239238329765785810998632145735867657756983507577769961430976156173373226490497331740624594951033000406567226522109133661620004431105535171188183872686805821806565353830614441164359280362366159265171581423809331443503639143602541930252974304261580498877897353482937104431249340246896269118585582302148631808995405545593932398113314038256338792187705856152531211295042074098613310329118825670173814355798848092017327683672788490809125246327872149316201701187916516396306428899582401920780350415014752772084626233573494166704331853367745050043421944291383838981207846838326834517100967069597381518773885846548677138554096760306866287850483308452263067050336958120758068055071926723179449456403250533473217393472699288259214498574462513181025335771596967974702846366876724614878486849674659775659322221847515139929679807204963401705705588822139129348947848904549090309146425251307456167898076249125889221622828301692372296562264753270716728332735903792177949544620203178299173587243133360025566041433770510437852839490906268856600559871288097888842771482155088873812089476071257182377727655537983084908552305930432874615800092143512393263212597604542677835684160714702465757316220072981009296759445772334395990763447045911716669525234486401120055949430248603105299163406063869188693750250457132867016494130429286863559618972153930738447818826028715888469130063765882002145825205374459837855162757812083922325935257948923206381185974719176493087274545835857162789498077684008441355040645310160520614575385155818102952456591706163576594616154316277016064823071994445840837455825328919166429030201807422653225830335268978408144411144616473788697476265707040106698305374215774494991690347873873586204577353260356514490305940133072566718775009565155137664569684608860974676085353191673051327379821243615755684980506739032149874909019017881012926508585159416076938714155535232535505506849634350958055995396342899304987217016335451883345195430685625945647769760213536404274506241009766801307270219187175316918806222489313764350983656516817437684854895401440968147524007790667992526782523138447061594258797038400944243627275221051894921357667654549476464578577187989689606849219755765827977088570835860298992906726258185467431042287145020876147158907371572804772749061623235808661547580104401475601589269593959873002284075977659941159386802333662902775457901044383715334073807556690225277972230706836824980038783999521334281587786858595025632812645186963133655463758415568839891149054980630743521497112527066540866297870438760234456577045424865055563679033060393277042493369376451456253799567492671566445328010485092394255671293156673036419326496338665331482949254804006497088790235717029439463723798912649822985566514037163457095270160452117675461502248309902804870341944854788607779997730476140126814899247793546130711701781513696453350995947639159412163985261916518363787972837246551784120974982802611552719835032938323067573782998841190842312709579227402696618229487086954522439330794661106647173019093201370179080025337351183897871920600590659589471370785108192206243910166873248889186105899400973930169483974891100205917677905814089401390277037735634092502764055310908677634531235483006396703966063410975048650132956582362752580007236651982938140630240300200002639433922232536612594198433555453798658822870334398806024431153658865687635321756691789284854705077415525673437830702408176839691219936837628967942814682995621074192271838523484885588796056783744942343489629692192210204968655050000961903834278003906489551319257534081065157229767374900086375924628604053308009830513925382815951266078201937844486379878314223248520229722870636941264673437721685734057482267815280811903631151614398614542685185590348791451314065360769637789194195362800145501896767850007514003424573778640382339522633640166113425599297040592003208399916413084254567323691613757065859236228820134389193611487691692691615522948109030780662549970884855893540168169458442750715973353885524427433374133092982663066614280494856218975624359555985699397241252303741911505380612189109274321759361904179279430576408804353281482206366924154349981567594323550793816500241845478999163949694124056780909244124528437132884490914309163556649720843451719113080373121605508389475226935350173728586118578132540860125492876590071580525221839286793483879657563541487867378149667284895890500810837168477268434244909490842752748582359710264265542280196988963065045853675452906369229760069904773988689359177677399301103884780738997493993277155374579170391770338385672818181908921496259759588203550315926964370377658345058510402113016830175600291663650853546485094333489093073649150662597088072393871188603706082309733351957537664945184497993941838044478643352272248199211174031644539177442524396940791562783198016153465466894921906368774596333567238357750058127904462910984385048259393197435570001693965396799676592106896887478361891220118187631457390351391480161742835758583859997936132902460233841451365228523536570276894350858013745509446870410891821253063049883445137312687552112711042200463396659371333178681230415374638657121737841793191976838783142908320057210190906078932340897675073453095629638889204063367698792951837262482728869569815223647445931580583405785218973869135135448974900921524385027015523918755633399504269402464665210787402511350585797607827509617381519973764412702837793378597633996226212044992580681983080032561715362213103989004511005098303493150140469897939953500307072727947152222246334658382913485522764712900022303143135542048668873462156260830360626569934862697113797884946569258149607480488339557620539950603950994091643306129298340085744470639457829130588120517068023286987477676487139822288031080683564717695451376804288562295577447310186201482117371340990125556354203591206101047078837196120945480714248957300570911332030816646595403735440909421593181650485894963034225376700762572577392081340043666350676671525687383693104014220718834438462828254867055457811009006970436851106494905955653347938881083146156227560710421128023396676542892182453544862018099571314069338638114105273503213845012491080703564485907912144404558834739365373719115778229956495881650379006355343704195902106251439658220619375782367556152674964822036786722462695129394338949200833561307336964954917768968882323805534816472312174667262606035216000679270565105465359009043271949766954329893278597553352997959951066221372143412564251805035926220826601500218277940506345483376554090947341817994729734588885615257192337935973253570159495015109447011919874820110969991122717899170370093996967014617308494429010858280998270512772317836546078302682072999720245341234882190545845424318563448048713989042067795940534085377106643330249959790314367772466582566365453048424483359184610560970326253138011357293902373240657942210558763629640142349762892983219205862542268167748231227457544573410448810136063477734191619449520109571167909514219426516823786256545057802933981859494711248987675066430892984601472141427568054157339842450481260058869344424110674782821374444879504303786418470591659545741111923366289168850624594657427754288559389844627452984816061389155228768842428261258627301811189041591159185800995105913899033547124189278778711791203795114431141788920558047144761619877317556319563219020104190096652041420938941802296821850437269026443317428399779786316404590387310193864570531565724418696058440500714470038972803826828439868101568303877621461589235239683231779079612169875469484383258989975603958870021789129871019180827415030931405797416226206069796202375195659509698705161012397422909367536575950138043810326734092316444140932140882859638339470248130316600003792456941752444429200343938699583676698595921568448605460565049994549692340760828936718354007077438895121433009011310656935142540753385804577440993140905123878657842972945742593068515384823332817267999630339909727675604011574469429404198747089095343240687449432753641585939662849200265366024402649035822160105112201382506856325974193640698765476818670315056639854495274176716212892328377284121412864553807748372403239458356166383677845773460462911817318709211575066872561113655441765917040270798790275188040921530860061749476711884551829220682420411128718451674636607437093767965559937640902940802056311896305811114479275162235942656762288330597163095312792788530769082226074934219251416373572500839716972478665075523621130025134596801789802189939783698610376639061019896020187505450351842627292317363277583930984349743511172256094005901915047008608692267021173213123181062081555495353846736919496892384691370891858657091384480749731452809536588284759751082916827690923158239716482390702053427488961846734519534095005160163318100311253436553232210382836064221597925621269759767557684153665848178501479446619692114558574885345487848451227251345869323291050502170712946520282100827433505958065787630340777791631405714288377210224419217192716292676626837205360811281822704283670193509562536744259188578108896772757361116570924503659884944044259117496919868228933382677741824167795337110857252636221436325858291042474453449316078556962706238096800426677392275974510517925722507223376424521219402046213987255036816830054098483485239002592424522552270310033510992281748512926741809804554047936738923317144327468227669130775828824899435981815173228413134488255851445355820354044126098064647230494643814347983464866764459872553576303893072806624574435195968722997702348373229549732108129984135813491003469493871514896126820353436331150840115638900733336438675072002485702696747875009275305929431172657912978024953540772282939635073612586511807908298491102089741986256438362745030802297370166599626580706500919122344300603352166547358754385820498563250500458907346837040699337282712620920853408456567634836289845779480887327364936489775108254051772934492268698345905510593891128203802588182914479150774726832658639663676628206044402722215864432276912019467601412015448050499237359267209335963057903182493621463815062726430203542442824981213639538931663006390452782108939383630964857684092937552935427835677558712248326832607821637908219814338705677292146287746581258748344094576303113441945034285915872146878308358943737937524486170979872605175029207459304996601094116266934291783547361984702859376145567725828427764745676169747466844099295921759978465891226284682989016302710486422703878081421984954762712786441484034130893560719895169350904740425210776488133789319366953779932884285171563049604348058692674977103979578044402208817125601085057695930256808359164763426087427240116228584190335991735046359430653222415654936509275430903664264426267810352778485906185680997468507808638666221729157563256872772750684102572464139659352202358472187117042119126469669439426912129983974112048332240355731393360645474847512415309323308822425864695096944753868491210844228907094614758727800669650627537792263920247825564111006819888136398034933683722573632438782715193549647518336279892950988730473284078000700508176065507493528633768719670989891914066565339337446592686197267047411026276692098440774267914844589359884169719967130851397148689378683172113667060788952548981751843419934580135659888986679824290882639740864588864150186451771364127862700372798678390773559184261771865827843854715266925297259604083234736837149305126147020509557401322824757759874753080382207298061960898730220520378960570711790730644765333976936522970965824063090317700983921728205092987365720035823284267477620329066579825365016670801773721575679955941971907344088757732665921607047934572254521196569221418784475560471442131350921717104283407360133334446293632654442794143682992106554231925149998378545531461071667303861670429387772180875952165084172011111802478817581175965057194957287067590513822374708754479054669744382517520268101726738625825686397415365209433899823383583143744854264817204078183096034050310327988936780489051696572714428366055265888341770226598286895288373813981990668597071738339909573068779985988751725156622562503872949840208991885632960344462416621183923683760220994965371172602752237834010657821210774181396063300455070499414349075344402975884882199363208584040222481539722780765813047882090409194580676016878370538413192975718619875598493692094844546866830351697670569752987065235929577391053030725540716525712483954405312909406497901882291004134450122752481340050552209404209427391876170403734033418537157071365834707003420282254579354895409500023083480469384595622468905531545352981290204120400182944347146724379070043090985206650918638308130650716134180748111641919597796273230059214644408363434877455882331250874623950842587300839306701438045253512962752063608718643306833365351214974833591227714363440765498760629232973513057685313375413929198056158598516399338066882135228610960401554052131157428506362452124760053020772269609121044034161971720166872496490897731400389867025392245802745889440567367103646761873301621901494001558750372522838820937552700137426663333814080987617256720393779615682158452795239959737038174949126776583394073108040939967058021049374180250893998493776125019445748023870793408009286268468939077706060403439173350983610165434008633350916839787335432688333021316568561886697311796724600691277171820937775656137442168668793989059305564752636864633069435734391267749163682465943460322306655614054445934233686061881506393034420857733690909208178993142703829554642476068652214537693491373385177919251938147009269849915067626347869315724199404465003728347549468201584409960173763102402639878668613072542950450055506436753440990274243217137425757146702569042702660756409584249523033027991982996525654838274080524130543706515902886866260603518371254015429328984723908339877810746600992697998058853266551631559767933248606341052223964699801735899121482007229266814455740408842414173846217197955904343108545122926083704521403533194174540395785440697410444252420312720085380357318486433992496951843795628883684046982511635608988941248777938616988799799514053421210798874438232305659425345186792395966226085226806637718058532887440776809197943661905726086170952613152513019073581778491104898121682284800786628250652638311364758302079550623861423390992894921465958348752706518348097660835472715863250850833065385425552145078041960788111347188323575207668538190423122507301845477511136112479538150239596844136409484820877122510715453394890240224924212114602263710628945709444591837893078407877937844813438433602964407718602203609854500476673469399350379494678375636649032531709055195558762354710102934248167633962366917492537589075388348097444165639845860731982551565326856368209036828183763058491498486786852653683831450423743879770699661491184616563080291172272645140357876246395114458528752703400563735761051466178948421251748025237868318087177937544767862839732893952154824912611074433332567151210099681492798202122717542974941332017182438523827156196063819524945632696652871013559575391226005933903921967534249809002357155242404799209256175014245038327865149702322702033211252838173142793823630299408891669782739443412118803628267019549329528620774250908945003608046134095203257724650010512713401943684899934527909132778661710351685904968595925127465351508232090349075547921649463067967371319724375523516143844915649959744524448628445767033638029456760449701103210270234359135600496199408068408552633880167924850203655555934832314363360162189791869429422837624732726199106401311142669602247021752964118710045137758719101551487333676287030947820464734844159538180333828101387272018784269407379165054038788204112228148085760167462032403936287979959788011319704785165360767168696008975959750630788007802604442130179529465215100790768441518722297840827297312647134176807835163424144853078137635110762901026869858283520344096759858872133178465863480195848965533658815609596328105462348588582635252461985030928073792721523653833410582976796664910659767531832142056106351179702424122511189789049463648229321170418030334591755799142184208581430733618813782573667396108377620540002860586231516598807959169472010263420629738334291145800836006248354285433636389917660798063769265721470785780236162726310521616612810614672383824566663332342872237157810905849767413590115168316084086249863930145891323281422552107976661782259153213962544996858015505071138937583446700004210102248756361597621668829306643340733527450954247165162815646703115393220582548611349935892338753680391902270253116261854293206446158709023022414560200161101395249994183541237319543818539975704701861480296716851954427328617634415917138893298521062034743657337960614947925261335908010450849164002558640991494079182018520137615378839838973162244172856465386581868734047931860932520325594903995639703961086458232507875669216336534261917801700505664541519757806805506672149195330389002564104684281180914887303554690821334931265712463180818453029494497644654986596145096904651324395609226958314970456781281004967913808361069923694001980432015090771048978013954228206935475089269188984373524812504448511841607446434776831412226408900805996703269156636652593268047959845622066947593028027768695447567323887907591147001964628034312826454335950997858743836140597938063786134587873589051075675242450057027972039722424768930763576919475904864594595331106220745263797036028352770094094651828977225504895300332652099104249758321671420154416360437146955827907834961635426412337678725887369572395938034446565573815745589391379986414048809872989774121492541634563669810152183909441427363233361494057152494403772053920562240579169714398604973128185752353976483884780594503276958545429656158001108036087371409190199954485834408092844762253908402046057401480121415743603139460570926985861582003350542289014854171191711992687802730522284139222502779814556163316007954273996200460803913679365485685104651416360425098316860647095819653911474450253728926935084052045262576507163711724967577441511553175591083719500183386413123648443152227512258962622222762583254959225626141893389429408089045978045933762977859290638487468618723781607870285126570558008693614526918992583204185086585875201675218010782843146254654228717514858600842852384362661035587061237909095878268964157226713885016188721985992328673012478386019963120556618288860383684199249954825934626730409375382610816992851259213619984570508096719120304839343112963568098762060473517917332842838748793811014160443047269227193879809675640721212240719938351013455505011758997157142037390751577574303945328716713960728078591448096277169572668209686818242599642952565635666129942514359363058448498708753711303052106834795787876583715168165573484565065289680926689198312674852080093471638428801705979317013800147707551938067155226187638120979760505894713678540439706769480723281437992173189807252248930180106032818992131234740716358995643461339195791375008104737294617015246494360381304054697311049601395484315876362393750219999462259028848043992004398785046610361809406559706482555223853139537387669994092990163909953109570535451176005348259135701227892375229590745732873892674092131646105592687358097966846017409289510359647812638309368251635737350655344025041399029871104737910572621248518983886637692049811621922001443257510780335936488432321844484011695213833048929126584769337544515420381583551503636440326733200508416238783322257553193290935519200307278861307773015018262442390277272421890924824675687754371697511317459386846632206861529598751699056922098817798387319520039233829831743348114813923047334703792892224049837421482882552346999242328800142473371006716577704775628721521210553554373202272595945028881676038882883930540249392792353166504600637897198879439655201212140417489237804099055061095918405358905668891624234729290859010180706525702383021822211584592313894400757193661428612896389447000627321441593050599044405763398565671630007572142228010315223904135359605984134324305553813728010014038640646523988365140967443392800688112500822743273693859824436518958019520260553992426393817578532373945291994469092423195097905508452548062361556228900525198484867795069127321690682901248026882747730522994367823499830513263288461555111982704675804237340948061831220323673379937155576341762381140246119509612549496597499050973179295294724700814465717691634139566911638575058548049079006939481420370635295692201704303168049671619046837750116474255770488044598663641075161634022617063401069253927033835906858786078889287722763010976169203149518671782751665928779624867816541370617572592771479115875454637367466947375531936777374328797461563271581281845067441475020107485660010947775544758556505901359597330337411608965849756839591098681535219159320722342461507194431582764277417609590523723679176839810685979772222266316335303233149193948963499938275077041497245839760608890497295777319291183968237419344434458840956334952081954791185380116285695693707030242070735834728950709825249623532956786484266450573031691785422324309162835155616164869607137312952356264228718037826738945750564607244823387174704676128133744058430906385912721562508740641080301296369930751599981101950857906369723800022808512596670920997041918539183633883289758779633350455864338270128526844891267211870101250612182074481928847599888377708170739273257023289292133593419533101615360402031765675620930211303453463754673234357290517637332866141872666473535952226091655299288289809301836545695270253368275643535362614199822902691018385433642260823448700544052136723925318623086813168091244803841963495795430828498181077667024250316900694909217173594394677513337159096807919776230756561848772200272990208169108410734401867649686015508966497958023296366199414128914634152647020688528040572791074358030440105741683884106913395619636483506018223113758609152894885073237504566091957803895645484995615425962409271127502358893399173145755196128686105848171110999581316164894992707446944677368297760053554101020665471749612530477682260301581451407302245503397805289213831736198213250441216629483560960143739319396015994600511356218703097668073801797858507570307706792190346444843514683477020553402780775154477784973803383793128442759246571449446758592877188016381738256552584704969415230975148549412254992699747990016711424771776741461131193671526133650017857456392911272994811754982790271234403667658822069781054374332317887114394551033207004963162053102677328915723999312690067145661555813960105916787504390133289624352577324469759731396889253524277080412513505082344122028544787876146654434151801917370976311106270752775206614228540190840943481335547423993240000581531387009838647400960865191504327495873903663491073926127130755400823270087953330539807695229473317897037144259581004899008753241518517749974192885596351772560319227952351771542568695547466942306320201335850387862315609708045756087679213231632817358097007251999573485635504821851522678304612853237275717347062953309916864227904053881856656281511477267409950777982874736017875496840347590501233213381080751073110484239391848550576795540960599381912359324697203007145987518010687541157699814654866276300795149399449495490661238121465735002369712178163656548738771505875346547783969170304112588351918889345157627986063122909930798687539088011833862392773519740394752972858096537573112096814235016069343058293332844748125530542263400892282169202221858005957264570227172734144892846217943963802841528233081241741784580022618946840232722747862779478094759358189602170868224439197516094812877462045619529257449575313701707157259914227474577875277304350474754675617298789170721173878212856290969778884690205947270170059643754730514518631066102276763895270253752192948336928392356929016183565161371672021597249442011815039490115390560601842634718480952255456188079999458463846606415508247126713613342087790797238629063137629531467908851066905057251560288423117766529989387031557334054069204007287663593415037891838693934077467107376086167455814807075228173785260200599953659752610860121142858348471205441084119121541570338356021344121040596419058310425883689891255741712629675292796775255604994258360583822076603632886431553337306641986784713923356847200961640731410670035512886668902276013440483409710545317546765891713649084221049755348414591313909715017163330050074602047640506330271897993241324650944002854305099579428018499374533798232100192405378489803862484094667515590859707854445481246103434011382714603085475286152486515285989647684215178593102616828057282491040001850380815398376691418570992253234321650056465577660918622270090397565042927624257100586179895657877539122603591091781677906067418015874807137873668781811252686589786274506472441119872215622904530576587999113693875827484639870280099067659836888153637573672506587025963438133160723760487229026390894640190611551842149054330599207927778080618711490722389038199430008666695489633338089818742152752610042386627984555687217722861453593117325771297898166554012375522758430619032817732049992154894096133000221587404799129463420564896816806488991909318453218483131878570456729584664003808729587058531343614178285168981280744011822013209483233911285305338019088113399508823469609655767199979460151781947905222038550398254445198792576280826547774074903526517394627488911414585612684509680586936302644675796531146531487812804597416286928717293330713892579187278434754956083192833355898053343643320479069126799259776031687310844247947197746885682733183318772944046231840082204543070014244627854448375750980919641650234615667980459768523326496966248416626566016436734764238840806273627550079695276389533272721510725520823159143365566483811472848403939197820110037274558405159092986457364410660355949280309547739235885839340708611551771383357630984350126349190433892650686918136720900092015257679287739526096754113119700102451239105436451773345130865909309870973020875540595803164449787801820575293884762160488560433867871115240984429300651350038175016059334214154065849247952915076008074964012224419454446283660159108969592760869768722224471092944829600719093997650805226742419194506646768263344571755986952744188497226985598290534445289278878213362571315644002655691236447658935502813106037008076886670096183635081943000341911817026826422828680729414420040471487099229113062299776189226850021333405842788678037540740960614813055269944411249444957291914435274744391411131591552619364061110841970410068780196721946284196589560972252712108136512401665591719754332286113958227698606817762666657163379074959091623329368449595447077102249143392674470186225970496000051156658557643409343207884616334185119495524833750067660947303281473073543300117404688005514006406223968988302387348581016084023850506242570737400138869350525743383919814884771184030924895526669459602994288387654431139650643592400251597948423568845222924628017225239039870818659193337888662070226989675147024413128212508607755562597782442045619725916440915881290846539492059562984889377778653456839237014963281090185541881212591889238787306647684789850009335525330597685600561394430495265078787735406547226168776625283519517775509693358229250426599683534652138506590129738591668903745666515749190191809363729654720150229539501767433359459751947432145430691483359285352353225339575093177083388265413861237206199175119108925526016842112920087507677494106951005745703413364988354647759350065893239534148769330428466632533826275383934389921883981419923650500080112415421366471303948467933915822219686566508013491627875042697987176068632486712082241669817858865971945989427508543845330327752673858809195207220000448154965062042680674600645288369758656333066130951695519741814462324074565095053080842625450185942186232304917239821819488909848353081674616715834522001160707559834263709441184375361765075105240757573972591216877090453574954296324179797405918670866324615166614110667937302970682967031774487780392652027461756756229514572842809613678751626312709908672332856869232877705870148059063229893419379728524454352843837099043219201550682932885250562763566844519603538475579391592261602760188046430386555823111731237863930448055715334551050381552429266144945940508105446284669011387548803721361804073278594978524115429461942968141445335095458117640057849992485696363874044667442637170424212253285436895918731275487508429608133512807986351504873934286541873236962212724149683794348173042997677619314211086910682309280806245442796938538472817236276553962820224677977321491037268226882578872313703636140470096980510209191785987039594643720864311416955029469982746574141602716736295542022426898763398725680834644946515851678761804836167867326146562708946245865926851518547886693520737071899081891730507102661321288516800849634055165035112114673072186731805189938560184601530548276996273329708559231087384188777831341566462889022380236678767625745798842010548710170989028730589761622757897450326928042774013613986021467385377749360686089048449443540445250516138927798487562305432147137790715441960724100727350378225288571890829105117728921834785302236153258874035673023231543099516648810301234917357490403983057796014342079531380779480578036714597223017176898619331048978923915476387210453853178510509560637558571682666416376088230996722240677130997324455254722179014852478478094543671087817087073721597736058881911967925999949822512234228543522304418987920096201819270840134455020066028996329739636199359084204652641677954262011839676348337977815229710794131946768125028392428260180984585366152301435770764789131497685175676275027435150952789443623287885764571984552195358050787922331934496642726567334178097614066493303447236743854395830646164520538059438733408306592799901335593109242254020922340036657792435878732745540625517824997535487358694139628620064988963731618439560906971855436246260942650916782896843518616200968700963578425007413079355198009627246322388446864921481083912809051044736689719262780170369740824638151902909937483814083698601414345316038539234654631756227859565221264064570164663730055990186490523995293822604966433992176331628949346590091069778847540501440697030727087103793460414603251006815592578056609322078256398797821885019284523239894927725028328485777302578022467565464862092797925209743066931938444619084548452993838471154384389207195947759134353852590614886075608874611384354975806802965041404493500982714055759185228774506120623550746554104333020737159685189264423900054429099651823853315263049886374384093824445673007379488279207277876508325607540211048333491421313803154498750202262290142463195787172709681031434632388065536619869836435613381281269444075814302237807722414964859570088382406904208947356376600881897465581471383036240392772356814134007809802155362854730136526523569002683661479699888257044389743258690891923553510973735123158986215366672527063401452054938246483868001016220062760276685021521431378904319543991804098044909848730511541063418813564290827129678992408256588621189090519938478697306341641795555750519398129790250569451596768128152303877974565716617788098647501520360228375500488433595688395192786050894121579951415078416220311526393634386207626401041605685413187762318656584608688998842384206561845131303753306426366403496186799330878784379964792835570414713912511853265565189602095979963889504777365421985894486111305698209973333566143532766433114241893639954050763748036409510373075734909013890738772778522805516269376023389687012239342993469717359926750438576963966480768764919200893111297120775104903971478564865472981554056964897858431389757254681651238734434271622765752610924707252071371042196558486063593991883412082351352641294409429428180785485679920637697668938805851899121559956211073659451486201428003245290232199772785934749109766450191077247370066463823008354437370858613522741277468774264052294421110735154529442345947186362258323327965282288348915165798149364071191582963400697022240969626107027093412794699227743699121824771799806866386197754234657238535877920752874730183537521699972845830788877308525593936028537527541030006796420561228903265520227007469167879068346033317856960536554999811182855759351378600463262474831390257632277939038703069006578301341678916536372187226422633816282405690730898949734912807528112442228184669952131393011827256754404979163247604500790506277516078033899217177601519194006690291534781526489545639858130930688486500496208347905569326354191350125589739205056494731831954497080878867848261927776373164582719946471385294382332740329784499144848663241423868058657778772807775176148371818314632861085673413310323016628600517195881341835958969999384208926554212985681678664916121749875429919093311710052482331985919458774023643886752724269794764206903964166314968676888217052592657483141053888426458047191116659814569772765746283544063331262670724099798484457088348415039410908528977319939032335024593041571053423617807359377795375818884261696751949171355904262510798499217684047914790881189634304627080337061769281792175388570869502617699394835600247380851675978947416582563586321936553651972373819499989226536159655037872113323245105550568488019735159715273849625217363144231731693077691470033274901332495962768528550048626524931275296369351074244056489911795061958163452765962629184242108330918405554125249949991483687399156331910301127188016984976261554357908090746934996064305306963208551997683384267399075676764729225832443970462827413910486146371306254897991745247743020522600654232338424187940507994822334761612718126271653291313563204078042642370384555929698235590060923214485858717384653068496492873853910799656348805889234564817979635413663504636683763393553020140597488490091408965764675499292222737494854500766900303081639597255033881640955052862251714675162691664914038744322554243366876705978860026520082660363609908813211190374884676708264841302417291182080459696632585138087024153500446334876831507764113447539275190375940609042394184417697887308559919851458152046555772707471045496937056377399897229498364464258468735665217657601320421636349110953580267402675038552160185075345195246941062817699630908210854287214828524153416371769844727067763494283662113179476590012335691817859131865718086269395784292324251533736550335124048958244329101945499556388646682479293538898847571089111915379055509342852857814902236507415104008920641336458917882117215545247566674052384587666773371380340114532961193336725594265818363403509102916940449961942709494673334769817164597175510375687739947078055645791221939126884676775337209052441003826642681532858193124721391968632585109009345737946024583830022098443624487311297408917428741936057401463321919944946280690265659112127190146759900387620513831796616768319698288591110321392896691544200511602943267827592185431547987908023176571735376084120893767117005931651578049696302436040345353913452305092678449103250601945413125262478394238684015740687627900391313766251555658137211031568015749954635962502454414559230685163019648322543650933969445823641909591851307758314169475857156714832928507209689273074027024352138936993509972540985960112770277027456140494120875519709009759155195818873579214917739107787980099432810172164591558934678222576065283978445797025292338247977553524721861185042678115225077165825597914507693563171224689090868473115207622624551032212167151601241614751312741143873952089060874130666512861343239523510834677567298558473933743721856642365508088294343711318426319155064243348938614475342448522375869657754978527616216258896322124465997013167010420472358726346057886096939631967697203641159791645903911702700833354807920969947789222012568038918058685270725417781441134690367300547645606381687462536968937821590410175972410304119206237277314705814105063677041125740745887679264900204411952370839470346559751588019203902131431804792019862301055976008239394611154591700794098033342392745792260490668054103234980766830531275964541896264056621082355366253283303974791961752306878450365231731245561627713472480814616277247498877867069050227258851620728691917458040922786065026815054181829893680999160110465733011286022849025232580688129757507500501933403313079949608756302014251212270260675733736501485280851745775109821993571901646376604350130633301163578760841883270370228585706965171172547252012284556180692756459967032016148559633959324057678160924843076867573947155328455483590286433140889905757886174622798101222086080294050216239147131909472267375575457688752847422306721909285963787779447650641953759018466894594222833139742181128511579683106084308912421646393583604335775228742487896902421582215857759794635957457563359748980462737513690978717276087100901098426571977652117563550073215898291139251851186418831014625357676366899476967080624898106111872413963429483060059367776389319115558474849694816512646388184533221533525593971539620084384584432170728777092090327282765735476050865451888814985211762386291167731890470472353834218237746861947511586655805143065522844684745343838871165608898876796455709657293557795263342192074227910266230304200339861481481558245655916442056834220944702442827105363130526759509940486732602071256858629111066458526444251209134077077426882489164564467697002436755043910455288779308246048325695025954083220186088346660406159200006687519744318464339136880675009094682739445243535038277947513833216522520550371039142353794703577128243069014576985294060107855823855605068177100502555962374332987426746607990042731477452752104150600725214357866396108123006537810623538295567674952644163485689370658182561079858516056284795414306143759555962936294437401996595377267506297977453584104923918885967441600117863382532656079994069565356232023312689104840152091878846008059287582227030053904917054102986879384849406951360002602865933198029414017451881820836637301125253698773062879442888522870766828240970265202638310479508708344129589880854742587577955796040781610997085352461688053388229925462775972271916834616354414888875615622595954428185604266867563036608148166171321356701339276311113099889690747074649200261938655876815266414394495107142413324085468107153817188066912160012556836170264908554663559022128486977653462860771080755634053498921642319622674581155678321611179823724683247414561822421891812543929968211530839228556556970281217405601017293373631453674562133490611387089348728413654114864692326067300823675660851333428226912359126114141642274814265415241968175937215943325289163451001407443054130740139341613716095241996855362423849321440519158723210176305484404144183353533616659776574090211583468317321779361528653265778543694012796015857279853391403854135024874800408049248794162009233706407925168478043122277513899871851184190153809511398188483056416407183325353013831580073692813875024814810552275712886834705128986002584191364661884967597014016309234114448659666415251020841325520622530875874276214519925431440273816890046120989440693971499724954928413958234817209182638304671616546525455296231310157562964483496566629353092702326058577938829528520959671418207525379408212099904818618307201693832299196931358399809054237122218691286444732614949055196376231750151310935694501100198933261729813810844083628789359506271183749255747035253638111859750825316364712976529154363997362842969991669766775061035648344121305204962717280738540966803869436344548235646774646445444313439438098710261595657027526011474220865078453588675165599933226510001745677834798864042966197273586867689072110243581059041179460442048159897170748993709124197465410247954119044082837715387784138621605631269187087144881473823449839950923219547673183611703295413897658736342120746654786593402986613694898703382077467479975218035501459696814387508656615453751029787299292803840110507388982075693553069073451434828917097404666561243864862450972891580797830605436887641322889448682825122857972092765817632777442144550927240421089876527206765331132623458056905029435075330559810474477834155079219015163016923197110534918131420145182417516554398567613216622948170644924389444648100068620610371055573371303494070901221294334693398931159262424755282691261458410932403464157864118212817329129870032675098635163452992549408499226411327263360166952963100214963194499931692675931450791783107966631231702537410279122637016539774098701892410462474804554595081188553590359641481952463974444338182698623357595819261892035303600390393222482787266921920027003985564131770661814892493436949909168273659731268013581139432303311824943994755133753958104854248777990499203074821224689803804525650498914996886426247356794059267711457467050621308310505299283647525073298459763100522585073924210078376769257928811943772305673401231159788376561569478147271628090624508944665861586964213956511263826975517953003613927404886068251499115862928484215946052531267254215886803692730648798174126806862387045014448516627896098756369375672553345471503527052464682950136914877612403232607333140118748438433489039554115962855032083621097320543642965080435322740587561951456118281784880852844249407969165137202451292496893693014875744535629402414446855634054387629713497073549353524615581761005929046260391824324423357658225798656772876441552386026093009417765201948326229632216792915768318149474001828839855525354664205502556433491458305857174378155879931840973218681598857901383337232254290567203323191842901217749568955907193950809919313767419837449805631769574037593833148941655302695724237576790953397325426110961891501357679431217751313956719551672473310460407444093098179236701077994514358032231275152762054380685994736008340538628869401483283199859747287673929204387020143832668046207847908750145550035229588114160712206525193056388454322390101965660415855362941892614038550586438264919130869079736479807443542866190939414119837142706265197265329245037747140793014525707295049610389133284874082268399219087521224285676835806296151491038370538534264917408252627505762708752636410071244772057477501222577248105825918533015771167013690443576220553936797667739304115882812730095793532809891315925639225368906022176323814894722081681822431964587144849383086777208250657345867037717666260445313087356122692963979398466531854122686970677392305198145230172139436135903176774665256635303694088450216279440111464725547735396166057671198276493276952229758161183852742942370709952667164915450494680854145721430437061849347428233391422652440332571855708612300586773983217111200584721488996447381855667152675907321139051679747883998449684298038574195614442119519700141883268173739843525650914302019511712581715319459515944106667048700564493006437787473641793851082512725981581290991621530801371602567191590516789174597589330668588362353984631518441421928108363273639342531609191466120130151889826056668748147428715439872528673846007204829937698422122023663978895731727849296421562181275241410961838851050809415985926524797063876960686627601774186767302102579727214202862149881922395183543062421703834662011083885756046869303361221364465478814509815269004655525823760030322302588854430309752951631207008332038916005052839911722698027450361923040527394512575226438506416315369148612991975531859950579812406712418783766019767092322063518730171799460653871035409922231487087570673737522075807002564266179843603489555219713603223613725379004562341649420572627449176064384978269691240740671498776852296245266067589326548167488460518371003208094363753746454986591562085543499369541915816167640812718472080867466001459533287258457163859875086847494854557328224579864040536212566978995764715141226141117276209005034641183669912667736396126656439872520963777047170095158637153071369591383124287109202004957031463033607557244632963240347231686468346691043565706287689209081604845451792690584062877149867473923386917908526005723736881950414931120732175779024492533781124518813092740789969600911170613748491436848150735985189523208397145818246706758119528542768532184261688618889964847174386605643468902962969009853408778679832199556303436986050443192118544573899738981169055015072762218580949560500006140198246971038088722921507838806610504741935684297859900440429149367812519986182018930584636237894584926424340271932873523692694812811468061378414287646503053720445618920263459552225215495810817223330426431518420203736214819850646294264477853086338462311088310341120044798359120941344246380920904489835106798503197555561978563246246330931049871657974175390864864333631749909629877612676973624196883681904130915987418919006944903533671248575603942249280070006681301462348681333731836566890937020935304595122659848527010893564631799478909283135513687646597416894381626310881660653354548628705691046179316341697011996449420295126797717874059791150783209816662841159002064829610746638954289880757214068719431558198139292415749838815905184187921690527548334380998666622787973948645729995982669467075793906962432988393794582459523837663895858305464861106587080934074564457140590654721743038174977493838035455000500181610606551044248774923246871909449081657655511617097825011661402229824530737062932346894785267163385951075524373305670601290455622345909360784655426711792163102444739780311453562835109157276706295011079428642588336944278836449462578178967151792898339969343941877976580270046621182247040745916304743205117123043339311096065881992788884274764366805593304648709926044636952354942410972105896711942871632135028122939001630729094801983765172349900696189349444139281837451676142563471139063510739247825135105819278823060032503317164599686509934143909201559351846053696414138972880457039151356239299017595616573169467235546432289635209456548427467757914482904794977655878228624396785387509929968234510831936713685053581211843793405428788304119389811533330546066525186325429626837111214567008088487086382261339004947377919893469983357639336205846532065312647287729413760753103623928757188486122736794567845101223496457686231635644565871425259079707002718741308319526155865763197401217103701452868133292040439023885523281301938292105798932462283121136746334603704700950385694741535349244457482523161120778956850340245438004693327194692584598491779601445507629693398882556037583613799109633968806727274358910820106458485713496535960894414975488413797749818556129028842937766080782920699858714532130409398875096762493205263429246371741427799571413871786270463237147368012237753895319866999150995803661469991038336141901219513947911904306440140621282378584297045274524225618970362070451589140726551762316175432591257400709053407965523520589638504857231056257633561536268938274588892110879389329138464412993900477373286292340844878332872721371664978331227805918741165960586710629034721554081166901314489351061560703744415908791605361496778904718468829088234974933956302744438332342211745175369147319457579864916917274896167777550240389025119529853060393202893169276620642809521443118618579896840656392771394991803169654466392616532321209364399925362368328516200022920774650954120790180070908731868262535591000058540401852223546555691971697507486999452315556822105159622654768998627678603914795017948163705619562468835803959176406335925606726391232024968762738757798600127637167780511134048174820344033910869748246499691001747784965864351595310320620716912593028339434478014733598479563153813171234630498656540713642652101503758079912070324235514282928532638706389162882339397860921792673189745027548052290266722229056247810616302610222653812181340753245679493407932461502608412645904617707922244959777817294948542584071823964716677983724759438717616633445857933544940041063016163520063809831985065229126927589068561818677040100262223171415917314710655230411721443359030808698844749435805000766851713181358781552908679111914871083648417173899267446260532576357220479335006553815915066965382305773994566245136806393034868593015909511080220347519890671492904920213411254014434034672837698316973364145689517288315087071205081309629764321747174837713048399991665739988222063181951172738118053118467815271774833687317636640508583195649943980785070387947485395562853072943872814250930265062397078920224089320864317122941609471772821571238077449250534123794383121081957547382752300451226049142684690469022066257165742470662542053899975506835551445964470588723225717181615286061075838873099099683635598069306528126131517215288233768195770843348997824165262026897759804137002495666058829994826764659652513166971064788496295713552271346483357312248079442573348735528713216664302113909531515407370700046961338174406551833568531938277683262927956379162316063102018836308311597881832976406684562245658664567187172062358664575783918178288291802658100376109051272991454979255287934901049878289699668984360110504145185727626131439616050078294832744424978804628503535849773190503041623810746868873066022196438176785729310951212070328849511463364859145056255194942920480234001921755515954334407509256186947027861100256109776150417474581975759109854294502161405225046132276488080230373292583642539018076794728108563701230440869412551019407598827539326847647079182470442534153423178525751342385622747961729651151954761829915496961803247144525602153213955492835091973431520155462124510103998047314619807248992695370842103145636848000793556625070175417594589544922644785056019814864641333842144113711383019744615732994862991536361719393417882673555749431977784222117111084808924083032093437823313052952382098930985879647836282248027484812384270376805849689781149164160685937246458394679289031933812466050469363786613092279681882448653083828616929692316175475278333845264158968092195782141887961592551287787950817268253770295137498859572031358638142911827042955697352137711825982523500162328900388345250588816995175565727943227383261093895631668167646938665978129627968970890149618073424259912673245884627722345015833360971896198004596198004229237521668205606003596325774535138588190028041595125334303830515460324793555127305459670149404756354494993447873678994893105139284102619454763642493791638269539656292347237848768401109394639029075359227373609091449054657389263892622735575674653281425511681560287585356897354464978415325728285349672320169467247084311247669379712141660372845236115911622203267774424904404701632773569912960942568644719494771767022259016999009263481704488713998617235102076054097505411035953302177971673088569257157637572194826538763356373454712857595243999600984379436242446226260511700982762597095617490430800665220244255924520959969962826866327099795774429585951788446638395234598332304778565972449506075157565452514850263880476215375140659196311611983500334988793293298907969241106328560623223228391196809240302327992878994135197232505199348358954225648705253913245033754974476286947697812931794112618404308566070024544199354233245864626287694556692533178836719055364205341151653338947893340693554111314588147857293607626984018257281653043790163792982459320007797643342500918815726714736605465166014714883847959805056446892737089484110492581448100015730050953387706299702150405566427596460107783891831339637351256975766596639399432897809836928732324537927289656116493443042610078963001458852431402607565312168793808650346704153847017224627027579219898254635886225305958880090706396077831882073270557213028191435156905876158275449623544809435244188699425937946915650543492136107663710514602769034393573883337592380892642290378478603264615011404216437726797387234836002348744596989779626816304995747663703988389589984429281903944196732409271923931553561241441635379574896865728319240985939663686941483869275674232167731403591711567575057978029328736004669124733545249356635599615045825136368207786728601444881889806137419555668531900212783999957806749208394630617997281399074390899246170190655714392380756141831530066133505345061226694344178219663591353779647701046857427717568824254326048276787568393359609836839218887977576579966521614549107524422896090489097897457700320070909866345739893410612062119011779222678405375655219071878615009552021606677051934341114997887769191441201088502669960285972689463960437950210228811560036936717046238410431963237835955255032357198950631186115433887486316104137159460227950267468204550157748721332595090895146773991200531963118059741417603853229832976135711049860604133219014186698742097035248035381694999650822331111243516293707753141712423790059225873371779266231757366069982188999798583688034257931278739110122519904681942009768556691462900031125212165929491717098535887936012510458081826102287763853331214021094052508182480105408865846278592349167287343770449823864907030959887571218513467163027210995537945173280478374279361598509530483332188381325744817316076681350568215782263267884962840725263395263947574395901476897271555454906373564316014140546176749777083711702495917499107398905088054460725143642111070754365987158963896727752680734839397084005866664989673031873915445216080620531652962296368995443012395693280987987561777836465350388639423206037761841237720899739113774824040978000408781816438813476304080029251140766630531049667428163488140465656620526005211283089450231164660367747970440119557194893503135751455410621028364372639893695217399900489599456714022112593085152012700402443587872256211825936879517151695874091468415266273436328735447315822967192821863662226284678440345894994217034929062917466835042632803560257363172424872361523540959714101378331660264009402378748742455427295598716020992528146269906173700721922647256528110712248734863681936106073523661701711993957403029081642742349644348328007773795437955985655696940857142136250452472600643429933693917994244975410136378147773885447906245121921920868333069279244271784741408023451641366150078805115727887095739780766099125959578725242596564101314721512088207945834365734814899488094971415388932994545378557015767885365423430170392668775000009432920043827451880149852321680213203869675581328885544269923236606428124300094526574854111479382172793191455035378480246537104088877254102171629562471851333613039208655304571069230516947972084902559105010253230136935089608876485547062556487861357161168659190761126439656102373212716869615966799009334966393613024850995939745514605743123754976472105412247428541216811313065642840104518389931078232839879316388167117338659720849286982333244440986990387362537565191588443719017719113924383652539911513377874327632045659699804009815255688755859241156353536541182687127814010015147461042281216069686744384492144504982129512099601829096275112319475991167648510214369886650499491711387848036361064513824637710844525064171530655464962933666756637570660751759739036196886858909398716769496973166393140956905369458950523638511922531229570283548248841319287707042634180376653404651319644689373552880374165957571489958539999537203754844337868126383180760900072522465689336590276651467630032077675118844336456613930570360011225142783705452665240481048629018335276285041126910720018815856440802897730966572922855559301992983466814076581939607982084423513933846082071908630528346431958620631185649006754229300818485300093021401372166744535985378404205506845859484380256277087106851562483680512969395954713902841254117361086175561542213187747532994497583462010875268905138985956631818968562862019742168103305774126455185582845052917533167159497780355494432240967988856148902089004331129891120588638490517587488492126359866636809835413584900459264467281862138616636519027658666398542159589069423013737054580256280814981333896014134006238821037883642454131252047421557290378319788373855553199527440941985788582501057577158632060242363781667362449249421564978029648485003819075002037647813269180288093527772442239183609683967369782517339453558860750260842421370893604902356701366169115334612634193253914860300216481248510157466414202714509264120927700172006871674828398902078870974102375379181888302965597683219596878910412586322932327789823413950293214652214185629088906615297955416579123941212233970998690306188072872222971272109187671144446284049928192416488836999262111576986572536563436884420723509662211593349258214337811154850891997642747229202338160635763370560905817415224484163078359315527949950787723329747829171197352062461727780004491799539947432933173558261131173056333512505230830437878356470714428653255375277184962339017488829407996132601494260380839861947750891343292768868948481583154140114377049469360331864001692374773237646987588683619965567812883966441785821153075374891743289470468020012045282140073339694260915976037347101660264486195705558143834715838656583741937613062969599299808659519503302108696454964527352605172916459991693924413308876216673825332329428160629731095048879651859729668441345952283636168032076699272781336003627424335604162973416220312687780436950022916929317569013682426579056300784225454152993077118177868659506283520072824879439232579790526783655261891761573191321609040190790793478287020873322293941332326230352490098654862279043080918883498739660650781914636285284110002621863215233381462790003841991852095022682800104313320178179497258233528809740152444055702250569979398736578131864489568524248703564986311221226345694492644931875094400648716036676444508318091465386610004587962325390863281752529597320094488908528146337858800346293606119662446204309404895367552486165977755188383141624469576994869840565048432089491706904285191609149136142487921628098552097398038147502760180390273975311638404449991592837536746236747593260990262811966478418312059294054157521641960846478457490990126082662687943421472968617485161420152746175655096593855174931962211358905133864021010178843838111037845358484341717406877153711110718466897149511979720318578843498871398876961108093076026646575315720839983185955577251434580513110131700849440271680035453862969437290987510271906708261895408538551561962730265028352977774564068165632487715509101043905315504518474386152875846467604045832846747748483202263256166048447022008215268884189232258741505439746847062190571809619399684337956366319315518061170439588144570493368223441360011400308347745269027482206596827794756248575018245537724545862615635566789283020735659449430157975790634986140633696120360701297353943314572874720039058669562231518591720263602173624259420077039426353302833039468734382107490505681207630754677945042079955289424713569907878211721563277628236755786535688979753288888220839002140407031355694502042976989293887752191788713637676346882884513281977029649598055954960762440461816686013014051549249748788701692949746802188282871280597943185259316393120485817194487374569051394223561664540476508628915197489380975296795500673095712128694063356209523076307845599741250110385797737557875042853373073690025443802356226641614017871066573386129217679659434854454973785731995648297219361685436303352721828244511430379773112441728152134041803142509206135237561783392265907666955030099224792306079188666008474638969102679260011066311071304577001815860195888094971463366773367331303847446390085832781339680856516730892676392922169365011734373667345141366366927701067341891940071895171093020595854556406694093689305065842165763671564564796941275977102614224036477569010478580728599828635604787575549118014467757708294735199141572438214221231872461340523703988562194477077369208579292328988997805633063773497136030196553221546822927247635108965491405291640609439837579793483817671509177183034284275209329316702195673710985428320284974545012325118949306852521514799943380085895046882431257130413694700338364586942912813985345410532553503745404462596604664379308121643566152867278444973622666217722633660311713389499336309999800226754140208040365188471865227611900639580509617829692038396563190091624430736708711512427018859323785492176088428140726282474617417547002791939084872434540816283277042660295051723200371657153418592958153307794529514881456759567755980729200144190741540018685677437650496311887695789241582008801121020465269228572357902508251725979126100716315715215780330955855816731283672306088075305216088499740137328936374129697520232108891629637410689817176565664311670976373155282592087737899272720594511418986073303152142760949437862543108581605172599315142915255578813622682290560294295710143174422794113554223862350547505805029567397206971722568468540301612574654188030306555750072445928408679975569658435982695493176556730953026951497116918452372145037877438595806277993487853805343692086413373960492192509156990573864362026662022813769904485155991696624047305835328450233436076135231240538698373567952200750096651501796256487499909803449538793143022105029963260059557194487265841461750047699086907788602462457769730350895319137512109155032658606593111936593074033307213812762669821025807019739548910859942486413547299630721590331426150521929030365853413392344770646095575558216439802192962233157013258729165200413023167398598651800724182711393164179444035310601166472727654065541885897218648252204504614379762498785031279300668006045593391870154885716051440250150157921310172693354841673680716914871736862943356271818896989934092296399923744745697855025485280421043035413642350896154495265897947025237819591677926802145547942938218081761543605066344860840111353534301682233582940223354660147979160157175948006745286323153901681050397704274015509167499832412367401408251766265431472697282329993330674065661658240195828423083755236556080631403853627641182945200689284544541668655289600024891366354510168935639444169252867281169837206155873473020989100285109544648703822010715571265629713128587563124814442246004519498469137699421965739939567568486996962427301753539716830002412212730495597002771635649963839635070973612802819977957370845881006799787732641614347740359343768753870970980941472277025036070598059882594868103548599130273254227483540180988729180991007006605937738163133849771477719013603666924176685341805872059931087968366942901930766973292297464869880675988118100849966243377225477375543835264965713688636177215610570711174446450048302585569516170213683035324197819293753011205692514643217723642314266299841818454237931922157379677504271614921920197180787045561272237002120171655671440920241407061303781955858486410644838045871900058712595785682940749975635512566352419586162033683655514700113571523591987005318298101960576819204455105235682188475202469284128003180472148817824369715063919942224418380911386243530594396277325026761216093149302478632129752156526292676510520980786763675734634544261481176434149277727297877114966040666364190787373876795928833568782910947460725343684286326610904541207831004736962302148470675033566601207710233580432843538020053823690414475349931123122004456159961398981710447059341601412189589085444476150027749529078111917978271507026443860081602841847515179121850863967865701158507586087550448692927138357193415200689365071213142075424765802776603084110424442167669080106081445852365671487009942889561557944700576997006413004562773708139627805262707839914284632232571054738248039517893471266652012448446653477554758264484753483616669797112890637357360075629231348778053227259917981048433923811206347739163927915897286939137132063247197443521384119675985614326729627249733317544105906179623523862417510269477753491089827806285882224377241090362597337818704945130006595587823740998689414204666527235672154178367909938409710559968759778856095382385906384919519473576297426830688100709443436149667041285203024673778395513020613228445475912384803294024646472016496361242490714900567529388651323886439566937860956637411375734535981655302283971504870483484268978391644659418176071688548033011129594207721356194474822595682740682040465881846320538231588254805109321005439336330726129130364674458284781087125501548189932784939803647055323651921481285279447763924851970185957588613957924359121555931169336630713334430463336859528076441243399572894855160321739725038260376716617494775007529081690124383775393875078328557548542111469326643619058004150628084508007192946430828907998643046057875913116198052782964762788350622875140743589055122485209344052029593465937815230756399418497488280550330576607007243344228844095190753106220947025781998340354796349141180477946119890434773424068035927598863563620744716059228187640844485696656007972829780613212326409775959413945849144882186781049470597167405058695909456352314958313180402346452902248637771002020878626275802459653021046684487760318432819836740253420064153794332372854718087931568270094031408195608516487751841548721536131909120789272711255341314025870854490522720514842096831292103746580404342774876655701215264702493559711084257861736355015273271387790293782136214718056896337947946805530083080129086731265126410364431159306560674418424206073335512759275699566729990098901933060438491168851189802090817863893397914521442177432261592933599031439777794450971084440459246832233886091504031195807380043506752357679492469595373423611889534243077001265800452345562846114865548334603905522488933897485222878293099854801974888604039563714297860653842368218209726226881663999426721300679450169135472111415077478658191855495145818353800063366207414764449257433334767081110348553941544517365616543805145813180062746982705525263307571527072392529600965105547326839637494421491209505053949762829657457284395293427865991475000924003145421305766463649622096610459031295807314269571246272425700061875428973804880787019554219772752454680652864713075489526260052306240609035451545912436435454678232499922581047685682158452665413029714850388037852695736509784594917905456562064112706493550232933342472913819985615523546179750414709113708480735434460117046350684093768362935310455429936610999458980405175715287247641375183627295163307466088833887089980582072994890444252477606480337945537045223643957086496649935469840996623159482039919081442948746593336240458430035041041073726035346119376228398397631149993530641282168642456824858220077014428226188726575666170448888286142363239321298620272971947307458703735006250379824749358184744945608081441022962249021677024646935527407702178710286865735446095039872815585825936709206655625824643233983464789720263008785729859211354909259304213537693192343211666148504832896510915710681728707361822037783547626106447507061711032186625630458096315526874205893242015793714960550038410805717059928886930156842850010368106470386192831116929898943107839338792148168038742812349196363236961468040480877217403982068523111359958906840929893318393805761117429198481677183451886708766090069673897971430055832966643088663899462158019532817797851810240542481149499920001749915412616975797381994406409431680798239880121575680338290436761006937489192351499094362325459299454997947006601716206044489333658461519414868924912497629112132423277253691546083940440747184914544473772593114490510767033032014559888812758181288661693128443597716415415314780943047132979200627123277820909372000338289119360578877789521347873183770137216474030400357385317823138690765156111951922381643386496182543007096393656348411167842137701873086561618585701874388971946397988791138722548520955885149494257865600689786288831333171147362090189412675715020538839429162317780714720970551217534563867251453590489192981523108006823083162443903834490010420765741309523970135728915487017275055455046216373844239732675328658231761130208243502906993256297194471356602613083395082285336911984950164970442424550071353927533067006357511043671392323842120016685583958358467790215168676728751649590120422984858451669585601656401317956377109181874825803172106360135971001436876523635348041736571962508467925424824918207834650825539604327634209064683639106792200014416926073900414477129779903898821896072643791175215280243593992599196734597617694859059651494688572490495576967483074979134451052145690926915126513192363123476001398316077640170377271452319762156901216415633194278199681563512301915553206601491437184585735704208016606373601994530728781434894357391636518064273531538242882259392863815036056210728313750387500747468988921929127143031998431143292850780006804699467876331377392948923906992331602727150260605076067885456003211208582059874402030334008915854745253336174274887499674171208487587355599225456672778741867711343585949584322061099589048139565647367892560386581226012597909976445998094213698850727720556136431950279865994122970780329408112788714378016652582924381906597605992575866746757407543587073267954420328508116376089122368424964771905422976048720306317328079940579399866738715223360680577823643774223908693520502533345296986004322517655347186956071426476373238700828014491516186093201364599684913987350041804645292373115817401394195542111935485143311747133819950870039808051611327255014856723479443965046959375353693247903479691525355382074012621928147784180035878495897887987207962679291156923194711733202779201272831388058179409615238234072589775049734160510919059693330124944611546184498063002976700012503427148182228649446209019787896978575058933402152682593423927402645506413475833188185285173971843860266096817214202819891183418430972469179819313848513821794165461761225394399891230730996214165568895720308451754405987699304633175915239895325835443962719419339903757532228986844236368165768599578627033726138612374047794351435805640196093701100166614761011399000099738926053171935197960468457813953042418640891320620766335294370254357302288635022072407577304202016717372712435014258103698631058198805420468383729136282170560528919166009253012214264700423128819068530572866277468255226437383267168840236613378641506524011410968599939479008904479168194262748625238834359577114550644289989143384043143988859069223844375455737601328156124672356077394625244271743557688733326475000613891777795701437854803767760493184933369614516839286905484578280160476443299968649769096672809773184708699206207424130123611113635192386567140346599410644794086535470069150656603761464779667406959804509760396598028966954305475902531400958773430861774345281600817001998212620923852175561992333693896928027838393007828828109513818080433530348812812020013467058620087441017968234433967777427953066572146796316808675449018292334275025158764618345154953717669259515858391040125900341856903140123550590399757358828439120404862358524697080756118427650932272627937285200694686051185649573599175178509742695366076571048285005736310531051874463411069411168241309663986058825387002239772779587110714618590085921742425280545472964816930896311680034965259535168848656772772446280863061958558550652299767153501933884073952730060522208294515382753506195321727815157120125005685427486106675580178293013098264723434289338284482187042480213240286155299341708555302275307045677390882573786013037435827926897077240842948754825498851513179017251818065587888976316011976369449141322530625486855427871221539693335184013330051607926358649831740397345019833928288622220470070059406972703847430315418192419419913977587401481843183344189821633824112311905515682754347125848095410154720744658699405980366710382235632960617042491736176429056538001791768714342861431094983004707348275362070429159079282412919426990179726941220450768322809963648635391778598650322430664618696621926005757369140777798279921016487459938722684835881694956176876699817330828337553596338758674884717287904859930189439515791425109144655446363534196269818008641338520814447947080255401591341826075364482702064960406213990637090280859065085147692106529816613319165146813318165670108354038310765902400442920804824052791454306336080133909735121519701079676980533488604811571423920777330732880724405424150509237626122696403024189354152113296265696002233238057018561458890158002693822628599974978977319331815250842101061222364411853054053733408829417706503998362968921638495060977929355336864932285134442805860509203387632319548585145703107922899790780272763707289793126392370149626956468116642564960928341444536904843510537930408686869669089115415366698555876697630474246622341579782335865705108170011287398503364508695500079435817176938762177584531524204491064066606562655851431468241724473706693866510999631658010480873597783401560111106317708056270037173597868027244395214339080043891844864498957099488940482271468203398326228273890052366944383236014058159724128971737821474400297638651496331303013458914804228308055571489612741179332678292363749534518447967294564963890798779601476090474311436537729576882749722244173526291537354491816549007025207170662854462582144569595421970194160161477108721027147505894226757849839692588992288469334403217062099994240419632852431510905069274445089304140198160630608555354364009369602071906144958668813504713841145049224312565251229990428367441394040104196744576208088973656779274079320521660576154672203803734827348893935439931840905104701559482171285184165031494611269526299339107141699813472562678183445913260062524418715241309606002281485199400307063884330713851773674773102088767290387863004298085273492290184002803628297927986599703816993245542574439083845779439257343277334461893034368312018405295100578068627213898588775835923846670059117930456479109221761193228830981387774161848354681288215497468942461657067952597862377014598304092818445588263530354981725509019943268059996732073141049691697575656513076813242949688781998675951434871019186627075507846792640227932172961220156689464483691883992888325000441927117693630938546290053592177312700007270866424709239686374055562708466513054762936878366683830193647085923636848913050089473909243935570470679277111907460635466967451914340213321155274091908354707583593201632230348259523628009308640354050462671893438656128082035781272071633436870928155182588433354752399981701052936826675659551812350650690916156442489569529565448802453057963087607988446274701321273424527481633065929942581063773791064308165573806232433690167982924255520359945253316168633295184879434459516060867753232355606338657265854918532434428142965912225263790421353595131771074225053464468669279849789826892415637873507433361783282434999823017819896985996466339766780009649457570979858365301752548830840101389798552886943192012631109423469696285961032371267713815173589760750872569104732170781744905793200427313271440111898649843221693331716361382019153956325032882851637726734746655714289515872965101349934604604044906195480683017951506461341907578055329010724215663081864712044661567746305373223136830334601509639608125114186585000004419094294158686385233383524737785170820744417728391271809389852341574037920796722581081615658860748608978363078637464417742786091662679698321805057947238527200706391926064777596511520655753020547689813441692433912360622597449396985793333741062648979994016399600791411724420805075334442566727834030277066065235967797100154953574894358120503186026321119960084756637442722389410579471033014384840980605494725925941902359327748655517900781202079219451839169513412123257554447570651935989489195447649219410463160316569900970296222100060755997763317834117165289072521421636665094036731386494699104811442021714659853225602715789309239355262147285915427028874745196012209875297773813243189892760307825724170726494265116721148862348533154040690170118272727644688708463234794729541857952108388879881835369213568883835636096649801125764837933490120281235399949781991532318300402802534342374548764970082059578527709686012256414449018963948596165695252575426158474920535203253236620235261338957836038741092962446364026779847204698109253700950525925100980271416996164601185483885180875490771960707604654540857488880985051614303821562391378556174974853732598884806385510350167391660354464500455254254654042394974353885517323745681869795175654264788040104882988992825713265000409984848658080200208807623003473061100171644684439749954023222978268394388511125628477620297019511454934628985614234189701454139343457590416715946639695707000434962152066732335775338319848891451650382457478801123257019868064941934888415774523267196088081041311939749030384949842961862681953315951408113147732433957315733555983822272887910449029548297699820820591878384505686677818781642580972059053263401069969397560597382761410451242350527020697384712971266442848311922908732299891050215222759769353747584595927246993223662260742914577522168003569876414367675597105874051300766163401079424427714492758404885678406163719145558727647755126285139408007393293858426544419018996405597442673519393763431322336994272203876106026493414525752453663392627984888151351231353643211723706001120291677978709553135759255529969583409605548246450282673244737589310783731492018775856286404402014369386590853441310358710693581289635785241976389962847702805186225758543645289197694079056373969755873394400284040387968425807940671822946166298622215056760947191970328983727165725245915358652245444922258225554404845468028989821302083294438745498007790488849940982284678306720116359927145687229312196141762447681531370615889766856042316009311294179536374103200144065877834908559237270542460147095905376514388468561464682622039614278579925274758437013775112881121912805598825844412082405537151425331761092313847017154966248918912144425564051025500167796139457000552362646838255146670971160535600959278736783939116207287316555304505999825228103775385860816034161660305716820556779978950351474442580047555965541281100043547673184808408995802031720288702960461854708122973298160787147618288611252154359032445071416201163999526894598209905707934581668628913620532741405301541141985898711455355978359468207368000251837872810014441996519742752039826216970344334727838874704821731231274538563865638556707493125530913803613460685020209055060613025397347872335342863331085287592972744165296316720102352749997672537396220385225001130421344416547332145499161979544048371901471457929062574137697482975802372858184639107666991588598764910369661607372287316663470823419595017927980975858949203377661163377624033756178262552782261641814996362592293233957203942286322996723935915458826542077548711349401293777731662942877302500676994749767733879249918161211769527517733996049255247469315139025871730495442788238263895087337439115999385509119680375920798155726711926652459960867538354235659938143003156991388094903194852029333530286678689539483882247852158884185112812434862374577952135430799743635711766120753107939567019647792145668760671786254099214252446723186885918630835245223218056164477170490150268956612382398475174835685383954628753803661221801601708582013450348642420355829882116574343786578468225477380748037645915177309120150090289486140919651840988026591330437141427833018603101769739702696726263889837652440591794176244326067592681734194168442717737664929084464883135179400668257848084765935191593963332053177403235198109425921024810198361674332760900304533213051697537084323002785455692396679068442181969535557020624564650612978278925865311608397114070851712891635313453491497621305757394716893462984116973113899850708512056752618040640865041578442845160471502988488142025737793808642166665094572377406622026773663092532052844423006064813846321446649663188234055784766911444910760312926696964539061655144747366057911991225462068673086334974554912249836823858968149013072537388784982199233862805526335075333653207748770268996048236809508672905508247121600299370553060211837899820571072733120182991668630318037552504370360190900537702180403841371264477592673882092037710560156475316460564395397555816451666182247716505561508635682248549582085791888411295358518072763979590671278232458219909080928533322651736621518651354371094637126742061846498936738901876883805537509828892496786141071707361782706924907893330469141580584049440890440302771171861451583380034574879270966714033509923490098074649463579350610585324028816386320755114090084135062411866181587984273156748914926283428077278958917766394385148392914437016360863421571644181815462709595588699388750926174324031512626040154343373391814069623630587466278823542850021145059717748274436596441338163825934263080458208257895184311535600774714978519828203731427313913654756917159892015248104243561371907875349057829576494076572600624184993040298875659232774458896260121391412861482399011529850694159841108039000038826228607872772580599830950542873193969207540855151020511169174413423239982155947429470346596991423407190286878274467246835380846892534308616999856981318888224723687517557092322127700398019006472270869986079533183187998858237277058629615720025840619733129433096671374666864295633288917116185674325569875564259059594072375163222427440587710421830410005749072154880309930984205608388091376203866964391251287882943315225564348452407095117971756892359706547256794510187123175021958108622976903061607547999357627578072699863583028485040903501392878114393152187633142722516563841878451518884476852095346180053933640763060582898095665111256804948234439021271725305377902773613192303603433975139379964183587650860617518243912920761389851901412250409733630097463987835738778958119376302613249381962044691770895284167761817414041432621911763159582508424468407442239898050401093170742706535328858932100979509731528477639471986996241599352340847319443200106700013632743813032453821196845262526724034149188785775281083481604056591263275521621465320592781172233647151258724687260930616434796900184509986618376140700520552887889369356478747130371072940810026779995827384090163431275274652610367243938161390744413526203484371644882366097406755342130569933357664918565022934062836905498095916858894516770001679269984994566515862016858622213070630956671513415675481663195179767403443440674742444047682531543537221480117414914155186225790705398144907273435924331931061195341132837467695070933766589255687098910254994748753877202923150966552144090395998009043661070934926944141963342600266207037754236364388275700928763336115324108615008226171872748274071106314477767744280863216201784871861377855958453305336387874604927183228462145998386842308341147142682159347678848092323383024144788105542005970599143170522006034630505344944258196386245702727767056965969259403092094031843464050044341651480186650659457144257280051179710110237960037064036876413416010815614108380262135174353675071955592015892786557947835791488957972825493169752034835345026253323476382513176993398463881552555172716041088940105454652823039768982092124879895351017467997770048638468088835246988793589831822666202095100787670358194324976040226481817392286220913606892280413812698487759592487703075021317289319235553598124380731424103506941725866480780732257473078542572233375086338970838677388125970670391811775274324682267416473539107178509280397721051322183087418126535019645606284060637723693344102222961097108340694936477641160507950668494076780389535157590429695072148614669258434905451500134011076751284202259901643947888405800330174382400817735935982371982263290840741822304344844324319805568922424158900784802695330106981753204914805494106712865777423137782806503574348211495756371244274104507216082938277056517026196264534661066078056676273171223411349391124647110949692445883165302695784093054149520928282480813928616924065800028496881816325418986066028102643688593601245087021958250176412271164969281929352262059056440214578040407606731468996088950113656656910373470777622052898992996403071558766529307231344210198440263170682557573984906300573183649652987736271252394641596483615647988789316232115853550655890181081321491699639963954041974474998628722107055576492658737799167121245222892784997040599451797752351135296709851099357388069874515811993696123095391078095219936017804894188166191055261785544109364158631987708888420131248913728365816467930607384880882338119115265647789117681988498348524973872651418902472070875842699291096946041527277848108148324567117490947007222996738452661988587249153702394406162161015142512414821795350614473003618447864613148723805869682594119893202494611954671580709830713670642142276891043217297420429238066078035296767428394170252987243028886472964481445498783088109975885674156305697335271720018559333681265284135698948597539580217928818595261538327350268614779562520568300348129695051688521955368452688807946424640502058470177505600064202052815159118100658696979022736987266456520381789609934045096825247311695325462706119586625288991790884615280303647930388260438264368044356463920872621507422231242559654961969286175496969205334649346798765161139021167729455655137613392764048721640809375149678924346669231175748048715815708906103697258648777697152645385639187416506377779714647768936950132676863842417684529751512108583157443507987719607307423185100155767598018530645929175727180932669091715306718114759709383696745603914187675151300750205544030756983632258359857351811567227803882319718284489293390527332668825656280947036698670243285808157327722067644322503283342643829794781728363104401066722375348279892771883426770010568386934134704050323891929320017222681053799940297356098449481446749118833974586654599222275943723064434760231814431145884959648238453380375150152386584601500189418636784168993900583014338199686553021811048813134827924072242272670709190781884422579627649920840327459104406741299789802827677725089313475215778345332135994640962176127334548729719669695323385160088443575011886829020779282513536352897949351424009706895809039945298260034746131476451379315398312699342721041493623159652291866595321816310153075157995867839158559241918289247516213445194548020250080309726621880288381188321509977579402696505157364432306068495199642885345566875191466548294926610597976580887664250058530551819002929205278042467406570668538305100610957721493233050460730825549670621970545094702372190475048396597583565525108522142630082417971691035877440332198626800265211463443605206773548190221746362460170422206087266952357825289037932734702049599389680273599216257524992825613680772407318125704791442871746811075676641551180778098214272807853629175359501696759685856279238919829320177001754744739064819922626497906012086263650420860429345741410157751825974217560919097305570846849399807690975257181290477448001669894488537305299826043494238978711751910471695535982304555778012630954063350988773203845404774088102347122238203459280608976985450548044407128050917561608350578526880823353407219783631684045863568382594980478879951407813794340460316716139487742279449602912118025139170906819736573704637125577512784481493763078936822014740097496133516748262229143449145705715110594395188355153468820802577397105677637987620805172765768987091429926916760589268714948172438269845639485590156528828465941029614619512272019569425914071637424913236942817759557079049708821037796184533302895640492894810563686930097338950293931319190081349929949252639954926635166228849766411387629281698653190804909806784349760951100138143362932013606934793845214283258389653462462428454699583554724324359404357250233492194013070257547440615092640443601463793898583913643454203158788473260996968908861142522006691431359350508299853841109095433927000224568478707255958585865158103573329968370425094438663943871246311539740625914955123947046336007289418294047408180032992462165319449689734041629414564831333871349122421290181566748460842263349661362416700263772640919988079437634115042194892666846823714613712604860857340953067844366142456978506464402627831341291542006688532677204022263715130593846457114703221582330601513612293448489451479890822442071464465561291422421353756334919407026626322640986074488702917589434410537216693890903848933311288669734569279722922228010235689557408969279387502640167932122046529319767606741630263741270735789250737477245714551164401604097198450249685912024621248822097909158161892346796813036398882402634810058543831982454837260939161840883575532402022669616966143453763504896346143333854504368514972516587666582870363564885341269671911029643300073331026339564392990103436368211077253776131790983557743197041597821870929691022750411573405733819495369544845488148649263050110753459376442883748219752294188084427283500959233918658441686954769284849051007412603709673842258672372474856692579496541678864784307924359008753742202807477150650722785887077608011449957907859950094113777511654900999026685931633990444310845546980600570792593992169189484768758338896066937038840841927424906018902275843502011468315483911534555257681552854450646889317338418874232455982397721095444202169629931738967720422511667516983864603986797396500364837787739916424567032099440877750700100970071264492530628648220338623128787621860463520001369296362719754660033697826991871421298008296610442226200109059521306023051501117105464099083005726637914816266316805286199710458517183078272970578166152198760394146368498423230672239777648267760998901929002219787660686681105004820972139474140259417694891765387266419448140594169442001044751013703260468435909542417097972799742544714122830085001455707149113228984121504934079399173258725876448232527848831187785409471398653284419474060637044173613033275284826574330357607661765858676487308733959093180188334858120824467801348833792386317918675355787299246485361719844226489785355624945806749199879019261224155355513038389990841065212473691683559769700094086166708649051007328314599884301176437087037448312581013081113776071197544226056521696316096245847311783701050288762751520382604133650277744491317786504592163648241763888238754099232080046031553539889941407332824890365513157472491115175664006054986083785371882608642079474930589493103601772286103878250105744040545887488144330614385846377487412574071011513248045406609686648099257251128688902274062350666646827322925195039176515056831671432465741320737962497839748520876202237550580067859224285114599275713895531291105980179016847257013801314334378169933880204689239561465081022962250624880729599224114324216280530344765127458930617555432065149107625950352584084456087761669311649765506811134291043057547285811484330131209633018064670894138206053942596893057923165142515297927101438925233372126523083675463945552525033667757084770615769546387582437717189341856650762302298631550887730082053977560144673863421395180044519548518359757511820168025656176590110219714940117667329708507188323919657866421841276041525721502287377388061499282294944119063585265002145604875046667169053443609965779154119213748228436700565074820177383275147830352904928134454450579965655695902149119428395737429560592843693301097718845821002455022215214487930125887265016652138647433711181323038551979377216455572275498178367487759784936045744427575780756484580392709615481523074676351019365972595431970022663525661636611889030843244086148473032071867304665164499699975621404150721394116433695955722332525527007380416596984538426493311051771844225437690438381010577655493280908508010813803756659601556402702111834415841344265417744684086441036281435254479716319823846086992728316566707084715774118515868499022546800465321279362482249203114063548631895298743435899674092111832454301443942284209078480180903338708404259989643150780727954717485347756512408825690929214002181184359335680035307364692020053386861665323433123302667336723108588338402451927333448886993316742470603560396450765929416884015229230749272512727065892540665336382863867392271292070552085705480178462999982060008515787927901911032089527153050929273508654681032282049930130418853279036485879320652389366469873015284343344790220942468118637084380236291149572996700425970465996374997822959695986227631257172429221440960552165730280223917198224010677272015222330750855979714520197896392534809803047052512286096610215792818845379340729115180206652300767952758969927147067795306973494407246825332705400376016416724473552160869773845541731748539440550609532732846373128758911654160039366498447127532230777899986922888670628805777826407230832639688148809395727560094513328863708480634117386783247487959367950973248093654972038932032952366250510016401267967595117113706440176652327278719545540069830629354483827113701902473998485911922716759383883673725553588945941892760329835001088217156520087710457220591940242089322902889791023055884873119524320250657237318000690464692752467685875773547256800975377610295203079906095557348151099900435932381961710191929377329554366225689853601601207922981009741869838823437674023074783170562684516693641526524379479019788277716954593866400843451844322180259841808998648203022110000161998270968313284782169818189902208277589795869022626699523139903440317871038728055648745196017424724801099085079486946830133814431645366926968188054994134237654132367164713365451363841637940619450373111139033645084986611122400651457167380914710245073738477687842242510603772500289729637943092384737034054130765648459289442108542568292218530294297268758904701425044658996037902294990392220064306594632296748978162801265934159021476786096421293317819248593762461003997138105765127041860475203091717258695316949164206728578391234426758128716522659075472618442221339240986460148315549452147195495059585707393941277298669201318627218488071848252688086046631039265926977946141376418629080868800476142740494834596343567928288567293811190785068020696247801575765162436828210517314096686427802075341206979551055797184642993088665559155809488124508458645249400708110352329494730402426159924893574368687394484482959928978395547517804063404290504193935886009432814844188130356784486551393344280887011109597055088499428695417857075526828126598296989166121457018211026585045617618256625489447676414875723758661895691834027312034879823631259246265045668632128749966189641412397912706864904162141537878547722676440618127606670089292449482333189932426493117343146835045771259119268670409451042688084671184481268329457312262871205177439467402268081865335795346753133973933828768618761927264082294645546835315918444660292051699178454468640261435996669991094067932878840460082212681356987950432254132639982959067622941942873800846203886274948772252829150006613860115919708685528177984552890562485723789138558555064815898568297445661239945552239285570820022050044400558589026866677169935603448652387508324047234143207111702650822207656833998963454452672045517383156235691077129934669411108734813344464013328655601768760641104593436669275073983143722121568142661810976290614792399404426148359367913533210802112469569102875551278665394944704295152968656109256512363928477582458666418653350292589708462842453780546447626467901267650576096395995349284772645724469468733928648137628387107169445421802842060530237530761828697049662364091832378264913084216589749305300294986742210474666243607209530059999310479290201772853814965088972061619855436481490642518133999658012139666725327855435594881965495899256402538906013750404216320518455792287002007723967594855846786208082617750961277193152927548067444546405158909777049746603472933336483107280661484638992404407790883181109329453289563319145148277221374519963001475612620838131483647021798454397366426302334869964748030208652257323664666191401409204518096542388198713449673431048500459789155163331222906494148147007009283566033384245801670234472113276900792448630216084359931919964608315660909390320818847461901159338844726356065147014896374033556882792705028193888132194708428680407615837953027453813776161692758406419447687424602784078667920593905988177244951100872844302503729335594583231488859604738599251418034501798110400892438967037545904571615333226817132759227876835365564058015222890928477787317434500441211680776438203740210424195262544657053513107929289718273961984991507169035836614688447380059842784234888970315619195309351188708025197535811743377751975557589613028152067317555271686779311334507751231172661843407147302846154813108225386043470629844850030219308134243687995496645008396204523592240187800785200144877913352960513265976761696529485501571209294692522409947552311015255490811925246848076561434519541036852312289984682101615967292431636354300168339794547310004441817935173019792905029274389258490206270540696257256155019240682245149028974138166241447963137779454434779258636936657846108146686578468437295291366986821159890033543371670388107996630973405161363542357939268246617369992102988505979222889906867744771921639600721151532666023649687167593339528726485896502608776188302025130529082392998140003925553310770997802198138845571811587840547663243619164453451131512727455454323342014854854773730261725196646256326391264069279084833593687356903230298218017627522875179657629769487009825321263239168920555540741482903111859897146286765144858076762141364629028300742598516440527557239324097714020054685369861792215238859042759448585253884126319470010881420923432872131534763955438687063601126633074652197114169016843266748232705053507484788093400708713358354314911314906711257696062708236141763282451701465302232167999831206335205334404388710051312891395920626114720069166240768945253484958046837919745654039006515238358326194840426686691611960047854623570355539432663133787511861008129529841121889003305010568696409129684308089346849732442568742733647622893008054609559542337103924447246968189972130394198554965558008595884380818923466077574600853107219958024288121103134925193880375058946675837434483862005078414129846905482306202638649286497352654457315432748679016605623448127340053238994170016793019961594309353251688118670494323945832224890813591629157986585635566589030205857269152821901488522921642129820305874807659544375137210421481834274120414505645827385013416171886336995641113757093546965270135317736512146392067954309747960384184206633312928549589568825042108250553677836653336351721361807337210150894821661641600540213951499213568353211043954511577025848965983841936913950171776064193404983499568893922388283742855364540445109011216990270405005056198933021159013590841520052651921519034156185985196627725912294285397883297535027057291373346329330680660386644530529137772674817780309588416397711168198148667780817943554172760200094372111976275401301372410331089851649576417684211058681377244228508594651686617712963365647264309892868500068737038680477030867298086452891178229314105185588617600988923948531541341237755419504320937868468668347898811429485209221386115320326879720789564523109335403008527372094997013705607683380315019161057664713291443809663492004521938651901717124445928318063410009186639592153504517110636327014855016067225804846950861606452808317670349550985826177640821586929751152973625772366500212353492243703763155150350621004645070721375442417982814824675817394168055245914175364232968576121629086803010871744962958750978095572966795887100658567872385717854032381230004826640251022827646919071025796074838114422005163880042721534814274274248169062788848952285313513110595128274325101656388459918647743094434062717635444451230662850222785389581990823018699798694788229581742735823916431339207124285853105461725074351328962885436430711109066339407417235636744647154519639994539289556562027210105029209109463363272852623259609181131867568214943736064502399813990925561510603478494200613235708026588540600065631377433848924605358633935092563365512774627112220265163671145787269441231086948909750115218406772784951816992401027861964329303257270795857886477079147267840729859759109409721478678974830835846113478825931227714377655233524159485621026644546740886807203287917385899059312269217083663846048216087194486062641856522857569101546923335846782593821522628155216186410005484163419864880297177704456691958720346104951934937999810084176445020309081886394928221387355559305402190074718846575964925926908637837862635691969062135745476079532732234545567988133688042119563410055562270814666400434884973775551784266727299349335842352701286557331504203959058835518710871897855391872959099718670643883319813745777117097186711088483474087702990886111835124863175762675970812359203147547240351166430120423113245583096076710563276012826375485326011218139641271302026169980118261148595063085388576721967462454323823245660289369559304388333914202327335910312103713053648798327752081459954793573789770502588847280724084780866760592849929621718211096679980215865635852118555064815954641532325251050522261145418626152728345094799590352315833195379159732586822403308626421812931263837919225131897194916800020825198440430276373803233257452230791677710296450416937808300653238202759843628647839203252254501437977808990626116939887306610617409157089266068228955643788183564917347401512219892464058645862525025444982923395465948819879935794951114596157723150227998505068837456519862822334004975332814693184690068018639744374205908854108511060416954174507668963422389833759094676239003796039231241887680625678794229781374025845112968517615291796565260593854477739574223129024998015558565836402285046547790640393806166917144672734448374674824495916154435925227262974983183376167018449540513838463257803489639795883017661389957101237185358937310134621213796133669571390535681330718518636173512902436928519738878606638815546526633243791910574231529985616460453843028462218547122084838365449260492177560149718337817263171240629935921854162069139159590595042977919538590977424608087142175292448783491921542454076431054033525770527777069466489622695266212726903376852325253555470489834390691588952282641468139667972592042473430435972067044045081525818264193548836204232587567550664212923971662493247147379228540503496574217787120017788636342962488730983422336417067849961406848384552268040979625834189871348350037351919114555033557388890129617567949328743199780091809673275076104372685251034308943158138604777074059015726164244442642560856512471312193990980853913086076981174700918483118221381561772984558443780281752135103056354946589602175847735702965632761004011921626038510686360921373241836343124324691534786577833023751071110421664366483092463144918790442658599282744121886956609322705576431757233421144323361559825489533563772482758095893165469021058920788315049354074616550939617514486437403053806202696901640465782477221053868238988050716769134551915388470436265873911969843587531238034990685496402977706362422742663857167917275356469633246303574954729923328125540576203183141532349561228396048531781823006560139938649720296244614638368031694621369579209228706389660029725020305255295477276520723766803317335618514394900602616771509653791578293107760908736629761671035295811336722145648812622803860092341418299025750241914535464474244824807697064042060495699597998159664714513649059931741445369240626073332074200946052863943050550814158517818563727332449552487587025286837490351945631619095378199829845262885112122945492013117534821192571850164950486581470656087288344050366512064137287767446736562727837024104277068262514695652893211348507541033658584774302625787264232282914002332697320422375290628928445697176964128266058992961182066522025981437821656178579954353853659507059936914014869943442259565374719261358897554351046151263601091747028372652219985601398714074479432642274450387161661147611648921123970292386497338663722044683772497382268421735674042486059957543822376755017025520919067799065118100034284906924782537550904180447999569229989226404143603453622368383966766119259497208877261156798484853698038966568568285211550350181474452630184066641342219202781723989764856891798552907438148118315927458356855407442722181420913647491692259497425783049802052119532865646388991076871728820686680549289373257826344114030235313091426803431566496437430795862897974302822546992156687612193267174880548653373789369721343409778807691724437234035896969647311137222621256490347344623479477796105016846039614367163473247601027038154739015149624525985175047609044555463057334870639988764758819437168859568858775455560229048249464387763674780272759327807047402204361307528999282309475148322343816767735022897946902798600590769541067850496129321002505089010620962444431314312210334247082881287896639217988924256102145429971252358736560103067128515011939446957029165511792846641403185388373753828042124451808260446186692749073746726726291212452550627907913556192112683280081977281776757040815554348442265451418983460305633542318181673958121491385569955880096987053220205075178395870562272487532018025305826476772316394339867009582450355757918496457826913264732013757284884309984834036059421823157254359585941918394623400046823676934924035387823128666476892585468452156749764047251723805573583080874656942866069320645823963281147770500296197506245111354195937548135347844092871030788924050946207891235433398625677107210623380720879116281301574796946520577203072339955164206594632910120279596082521634556538769434848037172673322390864369048644701042744748447102648076710851776303867568027807314731392254548136122570276225239552632575103240733620958299509563401670832880617204712056495229918329005098982804279091426999236111390184156843422399372089366951077931329571560214973245580845504516628776969734549280395384244751477151139981077718115666532335940650131949711342906475389552379672778870904541809676744903047920613678343794800262780657229830092012963073414366631740813734409943830635722891007468220593382874817360013608095132154356213514924015847219295408386349429639782461775234739756970274796138678497675494794470756215927748274274728269107187250175951185790621070678679532200057020525610211427900910410080162386281986445706321564448529213197595726618130563280232865321934992087227000311117841321161158885292370116636051764154135958511047461964384924377225001550170155380098682765426215603899123144776412137463978791584608807416483436899124260198153323919432985556857180023903422786705089563105574621153818269318947796356101201520609878472565530617204649348918432513210260808683450959556180613544909272399760656526414265903780773727455704795876822034957223259295085030179033734740976583058629297310534890200608847031205026807084293369728240829386103483106549932962986864231908359982390094740341065913518257697325816984327225315496567788844476932052562441626422468801442369771210005671189063431908131652052500712149957941188529948938040151457807070096803792657204082560613032913256961532700462566670381404917940077756633403266922829702547214204305023424883987504530421129633687091447790745912305104027366527272396881856882322705353464141482501341597571208543675617163075495471910836642693556965895439502314169313754052331242606512714957824842908356972868280718166046849180171884630868534007729940813839938530965722302340631226142160521585846281254139642097380926255514172081512296228788684637711305969839547821881234878188082408662683622981380170975531828756252933901640896171857696043946685705982167811081799432619921407623886790486636284638647671460676135708199162647050381786739681080541436348486252755978187534739685907787278564777088343115887032230399862952713526420297535999751302064837206635525720496384337858297184857474636379522084142166171519014426422222795319928705239111009956077597410838887912221236385384484693105942536328808767077597939970775970345558004728616910809325168920654829757976734223744145521817567441827122759638120261243490766485934417820231890019715499342343683055400738187141921446257981703640266047129319085852125763949151601282073606683733038286949231800045872545638434243660419588674199388555142809785443770808474549753140643681915297404734166534402941618011800809213420828111869496099579847042148920062968154955815515884872144853884226127358331068764642636570378104574034568240384914499687596927625600489297342855650595832051760138030323411578873606648498999598580268180674926483242687024396768993476802714420700846078279588892610578432641036709504863920321808298908339547637954667116106389992451598092087877135644006464035330186085684457123520118876042097353297916118705838061185517057700536248868263687879627581522803674358853606515787681232320229151085092552340972952962032430468781968549949314675835700120677035163025370809543659677921915099131752619612921383375837413502718809207121719337075898880982066016599637035685368482901579360475251978675886159718859313226882371846782785926653748912647665098257748764778538191907139273579610917863029583383985906474449665989188994277332046139435929619069074341737665446023048740210852548369996692963854040853375699669337021989426378859586341788653713936418206682840313833940370493172106748567909321607453009806290220896166053147133077844821084022933878552686815191485147486440140736796616891240842084379202759911859974824732794015988574089935706906318438322193515591797882978660530251840557858109196014093447559429374850955330742032062576304575540218276215510584550663821337708804398573384463435645410788818699908904829121020894769207316281460746015850143161483217860852255837064135522517460267647511487954941779980604454245861598190393170134783882536223413650486540484084669693171752227623707315082139633376634698099326471000856227266804722431967846475040905261432436716124980236014552838986700335602789734201289995150831683415017527159354396027884175964982686157833980306997934304303307321978556395130591092477780820904252162743944463628059996297374105199567738632272784059354202105667299934338182879292834663305340571435166474006746345861435244093298267425014298191290220196067853896874267806367480238818810821318247698927158344319730289326307344374849127489515861709353154540783780815664258933284583070611431203360095240732152966106910495799425738525336914102756474988843833676346088791740095837236766003677751309781275686695482546072715773237781303252771851061812055182437364498612476528374432519855204766217977382656392439263720359242475514865698793848610407555336141798578851798026675939037184830712367262450167347283126822756532852768863911612985502584494992927415766948689870452799111393773790229045441556278902687538804333129165612259554884870228712262262686723868532533129401673237331009809854193644616871440706962273109556987028322711439331110766986059698968595201467874680990937918859652647653341981573797804212749634136082604024532059101975270930805176593054425701949594368231110046872583800382158301054198711136226384657428402574895375281423495395408873352759557055613686230363539430839995368179718243064573510672222101777240662699513120427904961844674196646630758751588760836109025450209050194945556927389038799320611862657312198084546735792347873589881961234385495159866214550772196508186080607188181429053239988281658220302599040587891767724944786757560867463637640057416631184069028472619694263026378900393094356865465224626201133032574987791307183559454443628893015594794449478061647560666129014101877667155627153886381731195805282946757278599380872322053911266474296863454108065231055423304417654838299261812029788433363476101518091772815453377454732141503434600569239961063705126861826372560711688878714968644949772509046537132530092319480387840329170784542115147938595387360601079974996125223693565234696763501547189613758269872105893564233206901462716571843053998771199017756130758940101973463830339799976426131195570642144682012716926294352476093198859180692223656707747899629081281121739624873784011177741815262444704152376431147822379718783505559677227180919099542511892493137748554768578700035924383052467459958086384134257804943425805130163324340270262156741155354539114775959877740642448267496776167545399683533296528205193550727574165735397740087167731228729101787524161948782365992084570646018103792662384203848038983694286837810827510360487511171248073895286691990903843476258263544046096486430679849749590250757739392829508307028099917049327131404902658410178362824788826387291950576058683993121782455064670972593571016037735840085526738684453217524069954495118383051149281052827669894026913586260534221884511042661067102707244801791723635144661469510895553685639610777185102929718479832850391830884355009439927653167763073196659125162731094246971683392890212134466833358936755792111712438044469776103128885017807349097478345631991250545265378014674866416016884689010106037202783425700427843661631266195762946199420683303886352495075620998287686985011199736595604176815162946963484326655576196977690511111817495593512353994734899043953134636406670527830339623968231226900217518660177964560410232317793041579580586910730646611707385047486286121607913588565331340792216066209249106396782056669639329082036043362938059582472866030518819898807899266381245607796884501468609295646170726798184836927062230991543397602518902340623264232718925365801399417446976434274605987383970233659600567669065730835890969221584744351463456994938792684718155221033711213244371152703453987561611202395368129098052491829336740441592991210719831833089745748607374974783893279726147151978854215504496902030579685623271159644703444092168559633394177219977167504276121346094843852738926332735847109536879472776314611302742022974202267946766123031008586706168061169480522806042124231805874262295527794950253628273566649018323735000489375487250137259298805515059833278234509665473798889234948733655996211895959174813025322296210903024599797816503564137675215178917220999579422254511733982827099007600059656650648974936110543343677344389718321610778674650358873243569672776129874471088845691370225479860519410413204763788051825703007095234868109509453363527121725309239592466149710411098016461342713079709225124448193264720241345667038747083133249916231479830112752400130843308187111723124539696867079313997293809082718593752496331029419720494756624779093117047701911263770051369508824986939745956513053297606672372384499924825680404170151327259462799428249123832046299627292100959291878917578222117787902790962629397796972144129224458647146707841182205202629183356952956207994348810089029946896823044692908265042353999680872511588814738379524176824404712682567267281999295459133668248424121085191714977972712817674219450234244224797322528445384960465802029359951109425165795504770474785696679331823097020209553574124041647438261497681577276099568700565843141552372214423306897422920134386491291278041232188114857650250592827375147564059230978545409533003402890277051238896139766328027451637543730680021022882072726690812720364224764468249281037142974315961288227441401572070212912022308068212583484582007444293078059282647926369098276219581950974472373165282445745381677619854679069392355018428041657105409937822276264755995095665113166733691326155442522933615969289363791019579314945434767087199087337921623376158756241701267889482831659556570112356612086558120549246405519447619396099707946248459307085227245382286033870340950172451338741884235506807227447660904011612296872049362383950744383166179317669475020380969395581296271230278639801273917962554476378424324956702237288136659278723578822559093217226045183185792165213505131375834097112444470231553114100178658432810899151732444910529471917705578271049906199547158400118174742583072809997075258144646376648885830117255797981732765069734644997616900694981887136512419899217900475675058112767238741048298060511629726364593312727023389895003525214460151540979293433259479202533399941952470984539938843595332808547744116504236757465285901659062779472876414255510921341282644351309932926024503962073027081281621765483131965884435203410637034099678750175989353396244993204084794799382162550532053267432438407412664310330961397376552155899147868184633346371561479864766670834864287456018057262470804018869894841135262399705391332448646777995130801608613103720962152894760522206793579595855635928072169440079707804156202350623442210833989774045636050962492111123850462776102003399696612444761435150073786681984605073049238529295084880783520999219369648999630111742293730730372737582665031438426154164170057945623026650545189537621389809364635578089689166392028259001819053908698576688126948409307814026977756249948502416397848310554949592319101184256689516133549821245402703718917882155440295051648984839016221654303375085957022691624093188648357749577945527250874781752812939235858099541725490800476642332165199481835697630555320651560945356939067242631150534930779485279488285566952160383191598996418713412563860674602999235826133291505420212168372163320278124213463130649693728593765407959085845035853058245886838764533211046828210154277266052423649490811709180068251901590676660066325831788240867904221369173458105115487350865102095102798729639269849051361857229466443202471047413089853951530386577941420375517858792992784555064156357809267018835607652709483660927231548823947263768373057251175869099397102977762184182043583488870759546222204857135420512306951135238192762328896359310963287384486268497978690371947325975855553120840842838476623858636538462279472646778781353467056440860161833105540959594548977718861115779407197053251930396598461712315478591715208581404303994178969930542012563456475626393478637416757829671164536301195913927115199565694382251834505890457176948822280268451417831301714877868155574975214565579424630194181967612257124214898300528730197986668572979723420717032761764611798887754149039672391562020110817974832794340239673743936998144394720686507225310890456092445291664166024829667734494758457248139641737634231183198209733907265152262440676250237552923093303883757189010236163748100334080148580491978968236256922253011524490489328972373668997969526144733012240845058514328080157003894831536670728379068084358061393393272744685010264174058264435276575780636230463158698223361928680463440759679508228502907466010112127182520759837800023776227153003098195216455248772222414126043594980704179434323563059409075613945473236389707875224511626958041153639060611042517477584067714589352393380069249454118024279603436687579598618327443287154986402431822019220949488011060346298991715995764455551489750862364628652292284519166386318948983311243279912073397034988998257824606539514839682422047294106824683515234986001739312470774415583651067095214387219353850091438177561060276704387693871867368687583039796919737885314362317725758624471493485313683884808493280290926402193049411636833654060909214485575844954201718182949323748545721691922347759450442673492674593852351829545818157856747445550760215622855762239622607664611455496121332851004541338107366190527371995675893994385127823863134590549302882381085281824344933534480312881769334926402135900348272079482653993019491829622172257174705238832463903427037184873633564473699455805827292676692787299814236153413897257058547729308337724739878780005500046627234088384447740574025438639146874360352649737722935751484457042174076051637943516013750966461778588302538621400410846157930593082795189715505066654872513617610168666276705878971426791269819151022016083881763018441588504867191257131336793607689507134435483156978513485729564054435254362267805997756391020129436393387345243445817527062394988658232669854009582408536076358710960475408038915399710118013311738255953890293010166564877154199364362738974550282042266745667117948715671387576719758315148091072086009637957416429250053746542281411820645879630595918508773294143130646559115747805207964300615862980426564442727986815680226875145808239518218000527225009767473832020494930796154765315815004925383780203482217893041637576694277462268080439900051913682863535293042679490390804446704602437759165820637261198905652605760195266212926830193486094914398154725899815780072949149658964411452931890401512079942639873388717093267614383435805347671745598681217223980754332058355865059681882136643430928406813425523398499306364416191599777246682787703250443957447110527654683480821236918830113892992352750899457700601172450240825665339145532104124926180828731187100201303762254798364236983444526255201588027724008624348329903413920674584575241464652889087538976440371142096328085298123491061739743578193658253517618963896399622531683235921592993225125244638515272832406944810002951408707165029517165392846871299682793936650866608458073655891154107817066776586345032390043921108383585404029135010421437708525058569175360178746552783594889410618112123136427072242767148566130311896847632490417680044822790456553867619065354209820226619161440229189986199645649961286489820834836083336672286180066198060841891695209508541793445690783816265610088243316522344462110514116191610163871580811683528864440880033612455994617260584461668496697059661438763588349221070304404716846481174261013709397818931342464479694847214090776066305626174111453328592049382386004555631037317621905206747174588295703418306099986676842898284249899342983451188668483193092335653163565532834243053088345863028538445845520141163668389822686863572471914427932165907528750812055505890734315619514856617267251392046146415172272849539348953934579560369474026071355825501420065563241558051858743684486183832073864083873357385882799953179491980612529287123927167633165963892836850051822618463926632354490323639335449998645169139761651676272105426139452362538208282585368292602703079758061494280273791819761399672553236612135862332598612331955896308834334539749710221092366279703876858710636335811213229282045519303462703967441554595611865758042039963580470095740794911334480966696011143035108712878006202623208549591682891921300695475084519835134931965881974695701360314042816599081433714076144732921028162139719670268594046989292402802222792854664922989910597726749335184962653615023611002335361323263839436948976508270068843251939639034415632125730125954741763574037560052354507140569798254180322226608393611369876385842572556924885744218615020651674292036440437931341644061946004661066692513095740203011696566818331017657210176420261469470651829888463709289367514041170728500985127074793725228940038822621005559414434679106832191805301866810111589803728970555857677908160144710741827978288216471459628222023540078602510095288321762967087149380992951605259798813891352788078895610131702895199622306681889767921208411470829014520261167911348459556216735015208568153821704887699703914697900542747047266954352342664555224675135862127292339686118840378745372500629907726591844690330367067087729305095172002538833680067227320723352372451024336000893631132115231622311261738775769325281442418807457471642795412648308693651785731352923794342598365857924697746522215386346234755999633206618409466993728078132010702437355614764337189030320100028799269027282836693394924432307808632648933107535380206196749853785924310563551644998596385708532041831943396638692495447344354625781940540697949309639205867602562911821325918084611406111315222570164996076419900772940554741376993744370264819537186137232860479638146276802551831284690504615691882957757202982453837276264746120302311154437114067999261184269924905095340184564672509252256139377952729724377577736604723029015790056376834039947338954975121280682294485390787222780747860567471418869148468039408501292316523784080070297114613262900576246279959208982332596389928417070347340916174826675653913351329265571236657923847987531869674953372452102997666193503373930796710616039538048033683829382637038434354406497794581040380542575339917443974796082881859682032971418830068309591644834106447901175441118746592136826206451962342381526623099072004957788289384834279295015507015360915714196237092256701901869919406760051192382881998711518377365126673104354493503651634271513408814135235233544013209832577298556274778712160007210984704568311507653197377844541981564773895542047342723710052752569581533127135693026756068962094965179844964970992126349125597575144825714623010202172283446760966455709082469206570942490856254773240197990239729587992686458154658762487103295576912528641598159647293705654415126404386670617059375171640082970117199995431685379105340347244015751201426952311010286509275374978224557906926593377855015956437351247468582174067430856118871103624532227949137011979797407876549173436900086513918941693757270012461612889853076032313929821762343838779547217969119557906380898853522607694808155243634541404416730657515658874557153727233815981060681171603597924862349184486230675265308109054587985428101092148928874543338309681652809216658628216491463575771225425212853556866615709416770757012396624901674243527510605773894708430480879714358390647066782531319266073342454512221463943655180070228865754323406630246752199704721683250874118147091267379659071122623992836239011103236943509168873540361496625005946096525649606215314956067144280271927730062662413395214199157711368387428833517587992276202987451711579686753169387685581120645768365181792546123434572977522345120535454668651419717697871600196081724778756142074491207783879757264465913257150700440933881887248418422231516187227780834842444121547883460467313810216845548650278409899943164873481834308758703992486227590337937337653780040683353769662505185569839830233937377371940005037740415692983066010680838336337342223184086493791061412269357177993396458147255028676480779548065476560666771200845267387999080595377364116462493484493670318789607355671908286185676573520307346856762052820492898395921137582076560397154509967611682520825163756271651628013186738001781034358504339558727240828100939170521865169661771451529074163951560559687881055024076320314898614463721540500718315905483275037785460457490473996121895416757035933000780498414371859466626836001649070090434664040677546826631634760389481768691948202329167435052232469951493093655299174100852326576972403774282037256684948038767268651002974990336199245740178600741381080981123366808671475813444606285755776602612920944886140341543249543453947455241331203589017589277568019589553959715642109572545193348382335242055617358723353462974835769805405627658501141609884927291138037091405815276828372384995760453847807369905592154749271108074831433214371394096902368800274587702336064912851115756173723061600995103476730169000498273605363829132532693102895323541756990020591298758903918747307935263662639776319095229503463421566490538665698853181732770217703848435311595013561117542195012055147266724064864042375463975971373416028073625707912009931390373920479845364711228049446548056962592883728747684340455738230999498255789448491988621870327155813411445859604281650463002557526291508012551973992504024551207553066483854731442567576110116499967830193150387989032851252867088073555165066132954637327118960001793440727563482662551138144003811654346998792112123759203857656919018918733219139075932884226060417425594469022696880019827563238842720758929939744019620348153486237474355373380527095327308003777782836909734419753626039507140188970860707050042761200388914384051926853725386157342738100703007340669289571044662248915013809705915354001082690141611420431785933822943867843244260817406946785802254369973012242515106149852695439699018324154326810734527417648273843780573160170266309898855507919628093393835029874428963137153468853355570371437551353366803403195855432132016635792221315478848213652815204924872586261151645469922761587425850383339577423778219678358285932784276506023117784323825746283625851654135632939054699385068343129061266710539981627467691546014724860034022179534988565723328685203481451290318179229483692194134186082652816002801227405064836959468813226755112910173970922204719866450767605095160380001554891641821457333458610085463000553387699844591407364752801276786119855793789806655029061949503426007045617468605279384548547667032260918046854783074511994994503184642182101856535921053670346159927730714137992343993097107680782457762994243832206840016842334882535217427495557169340263592591496749462918651483058382003117794750627550622174922013498411371414141926540142670309635779240353108386993234635549084095589630122920293290832536170230404283240131694738309808311934194367780091567027130974005760650567689488094780117472517487606859310624628579368332553484501537114370478634069085043946331391762285870821859903458063414277752539456986201783249652338953041991961467706105442467587324272278606846793055983613362314371213559177848762927419064075599639582591270280119834946165910334336415253795086502212832994137306699741783106698736367682728421567101576403183461555662055422750562213437429812962567052078731582538710896254744210558539808969277244976806738489501478797500215608778846834755988962188634592786277769970030062083412893092207020927868135822534889108733687062004117077311189230427605134244001711169252643759759503861859925778262151296222930674445186216470390001644043034644841310798643088996271134386933696254759055325245121144917670399706397259796709055780562252154761052828084850716053366485880190422840669282569876812186500194215848111621602049022557614600624075588027265488126036220752057640911399355891460722763648957257574241984279321244847574381168112834994089075903495742033722268489189759268702388163611489457391334021137718441810907447415379254992300202724241303039857681550394294885500506957314021229500999791947272713114899568740646478449686779237326744639736707149039992606252599479146457757208354278518343276268878927696872765156292948118320054269169475415659307295706592397124446734357485870395332469450382572251133281182294200833559802122510071217190513954202146317026914343379630973801795432699811747043815036250192721003846830125722058113514757842966495954814990467188578279278850408673830679978722706098755972602829648050652287465610380193037008757160563590548657176054792898792210651899046782429369075283726368594370503085728226817503992824289123643513360001506249924954526814404748981382736458864455968933246170963793912070770515677982862347118554964996856181384116009957477793908827851961551214034828457276594254445511290008265767870042988058891893871076459474380341728712021988632918479814084822221348159727255045630560570487089151337705295787951361619427594838010547361579955549097645883064987636943111069665642138231921621469276089418782683601010073331007390824979587216781559429720001737226263995177201915931413555096673159009131131754162481083817330684415588091150982352294678347880389058744826326295130112834499237764461996478880155161027951677270103375177360136227865631209486576965102838941998751015491847674210454192256507755504345973556031273488943642024593961325964448460894510971828878854633101010433317150981309497141885702030072366702569007969804279125921399708965077254019566107365133737473056056535361466454839632430816652244891658701761748600010761526960833379197357766712598326533517464430516847370465898038145196497200267763934684587221148544578750715687471836533121561426321933750102592193277920370787822004472765553086197774959135384469692017139122386918999808539031424432254022557764762015536783385059620687127687136190157071523538805493872990819389967844745554375698577390546123687696829109946350317804642081740896069318178413881094560422897669831064767468663502415864793495812430757123982388154868036384888741495516734717739298712375862701290932575713947427927408932005389039595265070555894273697222222433652983409521782954625235208685100733030867838371806647872422719757335592527833791659471241510891306071635022110688983940141349095707258569307436406657701704212522345769794221128903108744817244438050960283107984167178270436450235379291294331156378208664258348882811837967533834878838096731101933330971470283732812526349946513601227573283543369030594557282067625716068211191737515308203234533634463480881102425306246849071977043132651208698349221432896518493532531588651065666037170302960736311962382575848944660038634731321825002781087134915303451073601448035776482753525170136716170743713562401520753959789462651058764833863039917096641920670548475036478392825943488795709517808790107394927863086251100456081810084923212747878621222680498156462285693749589941796869293570569945647266468012116541382468145810669893641766659673194510356032320655788954546461694894368090820258149070030233692564050920922824904298274650584970284328835008098471033195712461319108800816788853682474349601183108329826539994533828812594949109085178612691376748550827606474822498376864590877768039406306499869480327832352912781176345705675211595447164027774138547673207685012228821445266430044253598062953560015622052019597287203871742445667715484033125562523222148932368789761310731142304231014924551687484100482266738139716744299236794823794820570509927213937396928430181527115835363389922086251657846040025627929256165588065977149634580958743437413608575685892880821476956820420632727917432834484087740776044230514646287432551929913088941455901517012100811562264930638736839579185238684194732127883420679696646440776416544758997831458286907215291050060677417764782854876161188723001720247766697682379862152280842448509959217565748941984879834962086057410503366468437566953587168520017993834553746864084502666113401016187767467709618463474811727539510332368949859639270534300732479222713336166878244620558904620244803526424741440275500329386094888991903984600838137497913237180758944570013041942392638058244736934661549447562634826511310819966656044875364616433896485221394350859811138503398130964060484659228466794940162980817048943725577294154155099371903798471061350042370483706384312238387711585033133104723856056779064129910840107941493097649922725476734567501987163037254272897184885862028669858107815100018161443528746203703533437294271888887828848804483580283097545050190742914954703290307341216645816680052648698678403564094827843758426130772178999246681200184335342192954789064118690707082572132817190219461820750357219882816395888474921915007535311961282024633307771184209510306243160125676189260161424952505613012685402796204454868407532733935053249611265168394897600753768843456094996270560833299811820228925680801393623956804177771137473523833801937676119697715735919080827095794202807744933820051924163514958353489365212466399452415741807552444641061584823195633301920974478701340576980704344671060610678304529875654540915853427932344977129965120528944325742260962587663106411923768403809165647157947266270805934736835494967891571175431488367630933661509148875186447543093023210981345301339240443305090789184352460686732441994889782066975844682284491208376909300585305674059147801574157627983291743140069188624883488966877220823498428404928774244262429682963196619849252575410978411022945664645147564316818945611483238368881490602288359279362452469422761098177674469255725298266393143000027309381333069842854989100394224541323920837388156623624605469975582212070618415349793498163820163739976926236839021655314276907591231447340674211393082317929044523329215073562314312854962433921719597662011917581424808782621504304902258102002963960405404048854669862577184376284584106297687560809266844511182825847121576514949403811105755728411305330912964790128663023949624933294023079332432962593212000902526865386991936677984318703016329314975265666707010653514874031666628635615549939857845333898287224947566474781858893823732449914263830651601745134582697314965029343804270834075479356496840691454301557375964278092845025717689384086234952411663976567695796812233135334914241129689584937700165872728144857246559235108133052172132379572190743639697357180352898491210747722938549218873827039697501904462832690258252371110772368826515068336499285364071599517031841916013750418369533578551618073095353507180513629726485405632549730501210770394141247197266128142820417102776533817624050606364841224597073829634221249043927345461348878593255755765538737428543865854859926036735742013610388113997241162712056825778734474295816668304662110637735118726090770029865661562262201852886217196727636935197078408237960910058587838894660548164477176321776783382399193901416107362473277753894846859474047072374177770474960187324257851992488531858687516897045807912378402568868127925687385135518070505650533751362145378821325085566637377979161945209329666023182729947059132587041003389004867490799399885171918512673555103244690786878049147342557519128685763591201171523616399890115075827430481254617053696994661579661385398538914144784669089499449549719274775792465651240421890675426233577704910494259929736196134646383242506325965316019443132692624127916551467800504830067690128904186307081386358440833363006465363669890364612292012404021664496406822812927402642628222536584198096928142023602280438755724487487111760750845883742766842789530674637124673771126465374599951546301285607425156805167704351827253675742517925645391957912334608784683155170137846053834312720871977737295626125715471668504822816170578332176983679192415131755232675149311956226266658536872787682825451889722939700624839732878287591997882912725106900937331963754005426495447433460015480321371324710903380646519022073772718214804111103044244948735723238089315900897676426448266068793463203258495321881469662704647810503779848760577444804317738153007864114399099849216609046933868533487056368205496633086290807824757823592637311438441870904094155816516990102113668151985019973629232807311218016247431757062370026775871376689570238376696663510835535735460418960232589720025124705428091999881608469056269798283954867401422829107801951453372744185962899009132656071513001422412649505148841549407506883347444727643107547826666845986014633870847349943316044756849977591222742913600007124422179500995913311175423863553098052066750784048678155288959577470090889329732866197340554857274451225540390616215583542734584924730489845650631408788870186534929997375810530767871738504959752020728396114875930959250411077895352804593253909142676554233975939596845298085069314100450662595175413534522526347232882407158887174000681053916475202700301077466452198787504632238181330719504793442017698538260270024542842967444744364455094038739040262752465383858719962157671899824517723342574904304020947755452013693220668357447309705628897221881783993216395529518770579432100638263390880839171311848374072795137269236015684586952018684740277394214637018904083982694210957621322940926959894088747588014533346809814428679234032964892272870342265035755706169444323600717283175062502570528201706907427790297618417028942718196928123918661660586564255152480106357738080624609560926818710630215878811957904635097648083297266246840977345380669588420047165378419035907684593436454848548523346886002892895937249326602990865258437280544540192489194685120416040520154671768799965821604612987322063181073705623667427750265998223847734808196073211531401479091367810023325519635783641856781841105982077594999449846382997759517704801024730461954114427932804168287803272720479268060439835734624417304026228739453746401745839737787501706185645557123465841930708894372839857913971018811094532911871086572321878653380239452752405796042871902467723262097270277278600452422614480146840369166310931242040270929687430385206282185943774375027952718096070704105383134724963290455050414968945504105087454255742115124238664106251430025180741690587075000887468970738578867231859586591053851422078810091118346264010463332186600480457212776242299291488789463941720496355473769396060206728485309160656107997882354931248309451281597916956078702411942525229503081376909070953073960401164909714303421890421299824565040770621901543467185972098141687007184402472055951279540119515026449697549693306395110616541973929450126691406282251578718030317266594080128562118200772979072445769774309853437548822844225655022460511854088063114379859317377859959235658654005441289148877957876507437551710811502034588817183589251201651451167091769586933029442368884178132120419468365318359779173528097428668856162399623398643970202467631213211584259794854802363621622315669722909417887177202121997152555387427404647112189735689548724098346623613114470603472927076378317128972535473234336153976615492620848999987947818237855623274561616425311282516531251362005581772203625266506851025609138030362610327789183824685251575937577279870659254148550130298987568749976291770179014692941599980159989668626377154057895083121724994942248512077920891132350955643376615887074917504272297918377185236083721130778734086833615648187481666469123811463275183883864310279009449453558560187282608267783927974649513326086971787920653447648618775544043476322008781536837802419080594945120168591298865065573506259996049767652359835649674071812602155477262455524328159836051797628546472611842392362714264515852345101295135322086685195178723727573884182707538853317925995005843160175634004810322469589256202024340861021667974405263358917239762813900760092494885485053721609180827055902216331996776605574882722093775269147153965915057408112883953852327826742744509824039494500736013470116027915660311753097990463668925787713400989466857442818641783911569930000756509542600122070705772500671097941211597035317308455527891243547105914733114139918558004715672568633039201970601859191333273856092653923263670884675811678054016050767771570128263967508240186029964140298270912606973900137540393283103894093381120153055221457621833195530627303721108009939901685275955746821383428502079068433462053270210608041487234359990641919931492238938958618180260154665169821470796106865969771515013285983493117244745599265300374425680932215331548480065632272844068115295886580433850462286675160320290492420553563389368627773694523350054813438082280530641093597334209786476350817866527056768509364849134082543410998897002456728421619579892769790571333891551205108667650421449857630408220189675769342308088890137973039661053792753953731016485159523926998627596113528620359076619452842805585782156257394808756272777874900363924305175352223233104888661686038082830223605670359792013252113031352825120485092631791779974636093640889770473043706994465579137557846131495576173161869531338755300228359415887816374348147470091539168958288790594422870573381346173984171763522364221834914384582683834342658816556664068831874740998585610524072151004795223260548921653996083300157838238292852213060526251074311332753036755934389690937474428701861294081825769714903233824898579864739065534872183055265830182922219019478652452379565760920155782976422019471754627019090061868416765097993298373732520648228250306922083996891136894270972296595233329938474401744800449169363686438263745420825977984850768876774777105833705710694020382608707949019985854138475843661334727507478136010266714467453801719923908346360345670196079314025277553345070982505005723798289989857833458273211449055075976774331915420668389357914403466866927207881592368116062993790621724456046720927403077784975233692979421583449593251890838355917882960535065589963344036696105181520182809870688364052675199849242550385815439897937652238839981050272366383867691747678746115072950272984574995256793926705126796464467140218210092875808201706964205038979646767220903569039700993034988159454036098006937855466881919259571074068238835377085235207285796859535705718270852362499944118899497236992563855380197249336881199996956385503181193022019875963171132695686883927806852296837725318232396779740985388709145160106528468593542437199304435494839708555717784051967920557503487360977165682332917516494475993674027715727929308212800721568884914180950202882518010707113242435841473443383418202307337543479599031134467949365476791461938789335508035073542312799062086627665382845400599256782104472735266888559591561898549293393853367809728608794188849045564753998573475162776599664553148340383224343184698247194661019760910841286011352344354972605301870769727742802531965592790206947544378406460684702041448717407413602281133213963605510041636352463882806667373223636637134359530523329396351257149941543120385809777888884003854237490861738327226957933852669017952885712496494001278005459469107781827001141804913397551745192230461373175049579609423326750728082464615536725473613579246917769072769210592044250224783232025990323849853600175955990171993894476306025315527859483165678460600217638842489433885006156392579835340151604671848324490619620536672493764964750148261924952474101613807389012186232214146671765259025970240596446124126518827694435270763583839554260040985954015868307824235228799307101799987617109306501738356864841722407493517370722672428045813758742599517381190378516325194980991663278245026800378917619099094199977313454816909872578300441238125386738319830249094852929701729450303392272120035217858690152161049797698090085196129497027055050139178009429725807780178553802163843920792886403299976616204908326485238256240124108279373190231956091834628217537650814533324661669365207991391225494087318888508688649876366338422053171385261345255040598520438035588532398884625808169268923071341439839816009933723019686648956201771537278822035849963582666903631487596539618335794068866331493698747644406821346441647846077574666656157039118515148648737591388544015127202151968125316879700667659688570427664222400045231014440363386386240438699426008817207359753993732544251810104345778924756256940940659533238001587504129775421186874923514264941738102520788005249437485902434542849133488320209151166633273154193666709462807738797049794595713895623590289765089026117877062877890569851474640146019147371092275808746308357692302777452123153363389213793427003462041973951064346662147184212036348572498501113216402124513218360180957067682067383948012825878758273554329767998024400440963652262240646613016776399837572648770488063056992611723648884390551441615268591489426358197251003523665047406654446238301597208198957149916541211799611154113648847227668314456137868815601140215918871590972224480114657231895561590051248317007918453940827388957904465874656536010168696488788152846043811638703803355054631151633322775253672756283501964030480163713289949622168411625105081197834643086279217441950002259048254047970834318491527727612581233942047683072250280130872295039562112337141463631159360109025754646472958570919820493573235462264217143291730867445510830133945070899059134621866761774750539767110359772700928958235924191987341372239414008069682977032829889928860757855799127171510390717749474756660153389755221311855288302262608827336342418319694044111209753535382471675549704406035443605487462241742167054087829271712891611888317689806515552118994174923314496000176785204194181620106421173805028862368518592970346555545323144097273229437224359797399387607562040674539318338051287616627466852859658262680926440214033231058374002100148638550923352315473521951449422721487359880218805521008206833538976700325559589302136674120746894612193157270614738539116598430471302383370874228695828139409101409723206904029336738052452152886135377776831261775110365779220657932146290798692319918273526669467154748151984516619378665037978952870771525126612454000734735674795811007921729389599788106899972234068712975839033686104339195018968679050400601387139905452277651230823175571585410558102010626197401284849147593674163151181579366452731068934666706885389950477889665338227999045024002514052035743269022161751505403918654576790135309152049471244978642165935118872667256469197637754492421271685208105254367724068046927321410272143068539728137488986755549389135680861126573128680423155302399984172111316209926174723979515795712994589480970292591598617887909362069914870477675696120815524686269285891054856286911793947930729293701933262170361505364428384060912938499729217471480330274123146677493270451643262847462704264188017297509536684388837126334596387648381783132226806357418337045327105573487960136448354993822023837057098047990150646177920842379013051704342740127316768610457121847146919450471078523439897339366655202223420552236417464444598658588658263022007948586282941846738446245641293979155290838394935105341561325649478082000337605538171104217974640670716241323586612049499449110048498592469527108914841731648108575591375758251940447104140424401965535291398921298344101940338477969162183483081679523244500394796915424682957949781383666942579330495209646419846594164550750987960565871132336496588427321396284732228494316068517887624688124956200437254072737794716172878498816999644560767916796512771722951229446362216201931153849047076303592709042609629361536428918815524883558121928840463403067227684614434398478350859875168750871470773444028329518935276001939572627613564551795426525191746430964136612404086658567346567938475438012905159492325955010706481619291068241306083832460451051072146633864148238800809991946393277366587069066222641772251509317878247937148725339656562069696607448351404038840768448415109979129803254058391837956970676425914640846670192022037575403555980887969845175735269344197415115882264771640613118434302734854340878612781626985942249128136870379934612071740410043733870361803548970783771524935625976969861928982996699939457118968222825538406876642775574784221657243889482182422665045708619004707543092447465976045202258277678626892358927180152687659453686956363401923142503418262981607706044321429405045910699240265328776895907987143210557607234564256452965359302544397513417832634092782398768551133626234549529768513127605371261829660754691938548642484531181514025758812387316555481157737039568170590611446541144639639851662125824095684155494343217274740293077306309171422579113659856849663897390988193939692952816475643913404996187420431059833904138070988596389128212276739158091413533716174690571679678144052690113393720610154445489006440186293203429322608446382702885274629552653709418829390264342637816001516054660750039696121686545470939528568362230815718921824556230076510403578243285084785862627266151573970645026458725328451002317749830620169939446173526252823025283492675102014614227198417443397374821303588904561758095479540383124373668509050885130652900654083000342548584891803046389632640752890068491932724033541259804713002910321240721529800856853477969177023579641221985699462967037345957071825043257476166722876416112513591189279872578181893896800251269268778597824552048747915512264150594050448717092549433724676760387318270241133585050254493137915128184765865987130364030891261594957768106829786961829010135081039189997088815253518724147303915666345203972897201878090928570192840265245684864727279584622410094553556051204708381924263252409620994602123792383772693127531792736095595066831311469908490107420636408528189610787406868590160107928686189153386864546042762630712690198607074639928822061049168278033440624528964874900153217990333609839621050062547651211312870589088338107300441743637498474919191828103098982149610151564329018108762403468979805670274534048204516883853374791070083030802654954296037281394379721503121862550789275998424202696197514449437935218843864649987616497697672657341199192448709565566522698541021389099178875800436320163054774616820725475423937511063113283278345397277286691263072608408817077806447030865638495955513823330012465032526542811581803605674371128063699996855356919006055471927133227200736454982610830462892810016914699002615086826800614038438275935648711433359202827612405561709081048798305923319033957326009197095989129283826046160501510765030886423895625630917781550630996759050049732583987321630672865146020426330706972685750410381783270281777241135985729912389757870535090172852288125196708064291967122185756576183157074688498276471859012697919753173251911748094269783739559601709499899680555205648909979479816012844770822703651674863893205504763902101872135757915671332486436106006687493179391740823331694596069404004452955076828851700302272284559399835790430902152910380130174244696871892336366364318023039767254903163005470361945419821859933031071396943450643452549716318723125741047906350883689729034943886088375970481859001101357909377599101947510440421857471351988078352266561339071273470551664393089532661380525810845138533218349172262753514876674996717966991484077702676180962667562200527771728744692633858393976918945865602807631317050169029210017230262067873853285962955892107773246768134903865130131577719848702677276219142783349409404097033896812536280696962801172371311456491284097853301562377464588472082380003625562162491751045007673725431948556955649303764729990286227708123332972553063596278319560671615450877110770673225025381787049353508282114806686342756888785114092116133247368310644268133960798084501854767614331905936550901604158774723147691342440375163777186531101541028966838268163933710399090873470973102122018636775791834892115476299812111751054645000856003354317721985786002287364980020130456846514262723705678112956900122166212259287068147055691689555010890195054264474549967838523029148765991627616124403664841307469783996761823677367126017051095257037367345136085666224426101070796216791319806032101189724140466735351516992439525903086864537132323997628841900227401277419261404878149614847575581990374624667750866167727676153089687661538789449398022146472326094347531996082281648574531199398265020717675208583229736937597613216978995771414269285502489081665303463580774399927422757097841821295169280695701152213950787520414837313664980738954099976718449331562536363175673413150462649363233135774551557187760459174449164814577252290090221856166780291470235465897920663716092603049245177673696692870464721362195379565986393833422118702274748714158758586078167449691967528777704059184848577431274946994290023314229361688892482908950149420596827909644806047995178395827248040320389799495840802631450373273657074642841847142324227335287282531747867826187281005550895350800591130038783565447428185008370016411608526161538066373722485197507698315995553108076802413586331954087495141286000030080268222868668722011478794709744783066140799025139116874247611440692919608060233467994717559075278487633268136667679338978578319735784408959239629807120319371727549909699025223057284918120002360685455762843737144950016441129364135668424318133479152735460651870898926154208073836261204608384854784197074039668007691893784594868200402603201512639194877464335732133600166884317742114171252418330340293786060061122737488434675226118805427434279633648445999249739277751845198145384145889667595704546163594599547046098106217162971361840128846439552299286235131826514700380990805687501659872498809546896327275443346393961579004286257897429466538116710772938712978767166148995514588032886285420542968809101372610504056622851563632024631865821262870120996290651581574888884592101893481560365579787230450668541300710723608471613449235388492379293245124419055243785080763196860048533881397936230158149253566820879015207800133317739176698981461499245466706049513191137723038291810473078956623856003558401564258368388847061845380710525369748363312472282891406342315022099880201551638865791105811312492204423219956700097664010672161853992362932665526330534192123087930916173239301143987075145609138444836241997451541171666758417824799715094826569569138784499242959317502457625691579900593389521843834789703193984145989376175255427307853434798391878376762441806472490340031208890707802354768948727773228500887503003938638316563924538005958954577128855079415429604254459470515088314771512016513533895345244782120008768810483555389921102472421072191929048661972463021808120756553932043133926575700147302537953209021922837504571888119540876591019048868288958724326108267046386824283162135251833614296174919777266163765519575082669319132200493022282268010488670900183205055367542036837292885021267599424468347065777514139365132547008081342401647029898104800237021451849229516273230953200376522884828004360979894935941700294848716247253720933878937153516216597308568533540287347509145715641622903899557839748971071092728745364081636896641226095029675561402628278914747844575600105527991974552659771079792821928284852894626571350298501579610201889184374180682004604350759020991094723812116980576310783612528745305444053815481598953850702775172026175609691455280032302230218993526948443773783172236482252775551246620439993133736584803964590595473809974087510044732429961136507660833800476015579685407603545220756291651444676760103429486609716891177645886131307793058638458215047868959005035162853180453695505135786065212516358217137211450393090987014069065419277362624446665335669406367604319979542065990760361018461581335580233296636434825169222219644938488048860209775129570313569859079481581245423436669185444485642175417801194628665294831155337101914206373194188397547028629298595314820827215413182083105724932044652519142404342241555418147591132631449852118832067901687227361229090547285609573513284077967229663593981698405560321519012384691298230178369996099339576572592388717539489166853195999587613092664186172875816276837983264631333750820433245367273526840810787372198550268362756210951465371470601114032551801204895008623457854430299177011732237214120320749233377818365701742374322239250779345969453262001449833868529687386213357372115109274111622029568340874503559237897226486360515086787621066099000337393417131355513188880682626922597541916574821435242451009648871909261884790342456819363598117576487066164805329655229762409019311374095228286632648155406744715205203792933001640978584447719736075398797798729498156109588266632671597505353575127007966145047900683736792291125007548384298055171025804642736431415327528910313780187524259098808536956402926362739283505090539432013680793148545281797886507182215454771572335146150544214234562285316536189886286707916757096722087755631236846328965449366358690255531002691962464229431298733084196214466849642864102129309342128650532502326123622090423592007063991380051147563874229092365152195661737502784946007470859355236213986628899023125597060305383896967604517448750529036705296971235239265911854405887533221175205902825248025757224408280128046572050527386908171914362216385037137808259246485240094863725267913697962926916735212404717534833176534948605527152792629178322839180923155202142478417200263507327926981825842644090531389493011721421360023650301548786516811646031388270761766167604114170854458108532230356633537461445471077088674702521718384989640477598702721010961031113918089069116327642028871616006589128379168738994831121875407606630323234906740431181439576909402086553749111562712662789107846776937423588028512879578475594728424100284708841348919121487707986585838684568137194187176493469856339663735548307545034813099521055079092360664963904896694436483511455383624775911599715603170391725059507423691604697498625033411871285090848430584024828375189855497591382762216623222910988886263507294779043953568973419741466245741735041230609263761197575278381712137761105291422006757087582393360757896339689889199621585191319783654829051799179893045151805655903136855930994418977964395594004633436450217318352189182946879565598213367521408793080182499557887375281188039725462889246567430152594394835655552070739866738344190472974504572935786093853414823071207528281058594072891198548605546818592974531110008178114195911083174845160615234158815341933546795871227086600661943091103554174138646888666682297565226835203819680898763615076387078002109489590834370659161695447884218945870382799199202674740078636945728701422846684758878205745340130337547336838459980532068167404087382971599369527359046402604357075827377627850468848937410632327068654480694223640979615450228536312173851347221731496399051106870669120081611433798082863336862490689813969320971012654897880239189355128022679985433992952248087218770557446001397809676202225684544620324938834331116600281104407672543118667996742114881488004511977544019153501459390771948768434954617184164601595740467510949722349683582817052608626473861914053269350154419373206286303868844157538443343491773624130073901559983169887879304623859861567457504518658341895774182405978508498598527429003854389396943612953161249231964150171528068640871707802279391282667750512417375576223914909378420481597834930051642589607498858585974772564847280425845875724900839617338768659980373496252855175970018694199830893191141855630678537667330123483424772809490703155412140932984094097754740193546142042565752872597015592176005503876065173464607685114182654345040209779334456466324295757138175178793718740175817285099863629727982872987074292942291583346408849837691699215604305514935412170428622627148486320508522804742243250997455237564748886339452337312959713950725244972299836982584003022168717912710669823672594337810473263206171319506774597506420397980573804823417463092265719768084108723814685484978122812958942350207880766091183246346804081807451075242320072508975930247769966720413910045839735214091868995733407626326491372253789645184399348392467579383350393400130071856708075454995320567884269112711785043843727385537648653344583917463912626880153302452912440725592017872965276285189851369738390955042532884568397196636260203231136253895839012786035948973219329850858214775627931537004135501268614339131978655970853208271355512174660702285716756479157153544712226209342860674624761332399812504732078702653393202450821832088319117544977763539262058196923041562071533037668797832700597857250846062698375771466872619466418387290989670587155910120187004586571118663721586210834727051537460388067100898598965424141586407241080157903941987378206346118695476701899965605767281937987574873464983121153445156928825819391705545584015450667761822435920600142363300340784061270959264577350825471072645695246901828704987293217690902550901407256620337311920966201059248578211575563376157341638382541801544986386498104825724380024209504150140143346258139666349154287580551442853631915525246861430483542464926796442967807477197509371355541079004266789150350520150951461376142181938369151257537822518167412057769380446475004717908329611106655881367204373918961283949509814229432948953305889850660568407978462588871331302752977533568899780273252720007540845558625287533387244517715797971243689259091255581995356257833023619026880242617238775353846924914454554107615106794081049932715121783372494992849068277890307045671782315776931019529305196995102076556911709866132961092241387437830626894073515080842938180878357859686364759199413854375524667540326044386756104376185200433331065499114152127182687949181397268693982639345320273580765787243411662819501001896527767002458048373227419471740710375995489433821236682509707043893326540238830939106253173117726700040253577482279702278134098617258096790325357882104750375536942759910326855796878535109461077370039654808858979776126634978778208581180702138056163677932124945185346767278670241750553156773450907883756133907379498197589051502210886696091903472291411960738260122909130634478532639802499796353051504222525641624402217260732281227841191135401285979025979035780794715720123605150234817744542233090808925947836523611095953731465728623349051717138314765572490681476184535598077471662845387552187797114617948755994761067111109467689991696962132305518243651305262625208120310994595042872506685068775966936244162574891655566452093034873491040532868376649851842673171684746973464600688048270854245551218511133158205735115375452603329542790540857058882237254627473232188222259175815762278847387345912236429545756130199203039734058711738148525266361161161860083758169203383723587828264919816076851661212198737755866861718050853516130747293718421315750847696895227318970487357041497506935319761087036265659471951055203060950709470611839221754395794493962823866681724809203970643974354861755135795081587802720320998417183032894799253823601823674000885730811194721645605803691199557911471784882678415576525955828443742728123266573976583793577973465104699677613966455130423299150796082473274872701965531166793370339075704493840102823455872565255406277252229690977846680462070202142082035601327578655673131147067329405205550399535811964630585822524465714918102132664721668425614559246881305613282912253457479447846799077384882223483373179149999706286207012891733852417749620452694318170838517012348261069263843378746429424140069879798178591151539568281406457303703965340542753988012176747815451050140941140989702735211402575551428094361922151001394486454037940661892557333257112798382824253885092468985050193755658790639263956466972134014020264916279095263712308276840219462299230395300784653835693048349651698955067412519537758351491680426155083169174899372556801820565626931286004374593370763922395261634807315507858493341320112450698015791491303530877271109812504559965018286427566635530290580160695459033593510671451168255474463004447824370346556974129259663416085427864858325186493306513254485285572307492360582226765873361902374053626494507833870395179665693393896790508719011944423648956153710802534168481471690293005944320718647876337171868053485047885417567531120165489671296975227823148175727998259050941765131781306091807331535253511394032522699336928784656289694548568831994183691858475327502283752886626502460799114185366735301040501343151247168402940775132521469975551301408913368021126984444847236295585131856367540112076523444162147674246875279181846018401599905033450080712741416943326484313932281513516355833444865631936709534702217014227003567303815860664677775469694411621961820278917341250484600784445757276040755909245388758783960344289753754308073959925446104100389264289773946367870633931162839571118293314353498417852827956630343869043491945783229116487939082590222181007144825589448216021638035032252267861157216666172865013317198860838641911063334097667835707863162127495539710060479999307210999273173808683413152130554922084197408674600247031440866761158147033926553807833280350060676819733351355461487099812058201162855309871547384161316427303823677259664407804328097410811914247619147716396664417997620000216496277133016515703809140799620163705576565955437791465011656062991145673948616642719134531365219373359676472305567884275391940733516155805022085667776387513384506578536917542662987030611466256660278165201017093871024852732921703773034332985156935927215624826672531791997655090382297873557518603157643556049315532701897646360578997057399543009884052810440963727176996380856914655653166153009206794938890301776425754125775023478936975367438218065056850746080597845623922024776379316996883794904634844503982567612978790832560644709661135563352426796860906247463462091064464689746005887855139342550714907669175206063958271470723722124836462787362157392275817345124119077999060684412225320046032763138106807116200408406682183797422141710903911662093440985766853537017001207474994783688236454534785542919813743993228516551371140502204571141216940521475340935201508791768791039235285220420122471582673713438406153616454379226324347240676438822447737078368974682779378359430340362019381172515046084898009955171873172475808405845603633168158085222392190819466712101162956645162600904870655838551185078739707882854696063312971627540643153636837930641359618562954091540900672481000921087591457411808248729111938800137218190908633428965550525808111652222515426473491961101629732370147502237828131445818621132548716237078187204084318708171416104304603832246150239297381495057059613551806809362156082556845606265436079012527885794835814248783620702489652227422104833108577675301534845652376993388565592596704656466402041441092702916504864033183604765831321029850937266778994388965552082087397188288739571359356596667903405266020037120784118859274216171268968891100975080086520151504584526129379121615315695230250222108546053191072012775043558149170981783032460374972297376137034306244317383944558997872783847904227554298430078207525974453638215752786367682709143976482099413372441326019432180217964143037977870556160211323044948893199782498719875361979960224413162684674256284831326325332651091759016420491906975875958278807596626956600513347875308926465297734135599572167082990702022141416991701478701668394596242787508174276594471421954104741585400048432576269836948148926544409134560096202078029417609013334074328699996607870097445916968669613083111397456016567295290703389663239770633006820048956815005572825683863946596224858598076134808432273375960953105163712080235812418762597772879915029796293087775358000950094241580613822228546505803663570380507240487884345289201670975074262658938202780909237175658982733381296103506775244344738565726799574219437541846903781996208483981466269676880149318536251501121027558004809110415745744477438444512254324009724588870805616029676222139067873243350420648123006798974215059308769654388359575361180033308889708486511405952844088692490560749061155369851461410123418306409823734886962286947999647830870961201420575357645342449047878436985623824774846778097239616855420184033447931199886342237612683020204044158547151507630248059837739716509280855607155476264463382084322277867058255367931031664782781008473214469669568356859441852905395297227744590630786319408518323421752770742610331531893344090101696659644112478483850295355482241443845349414434607697066798738615157894392719185903339290658523256410396693301274947649527116146646288601676013276174468717178316099495404241692788715265924994151129327900390575121775362088190682639609764154108383963651365978319430370247355252240716750927791387931850002844724516144884602907203552688958721585994979563276937151897476550608577701812206016549475586806561518521287716648408609816167276896274704255558925895577609062706848516369547245837114689082428247081194768851736057348717368637133348692181029458078239783034212420456326761120420783223718856726976422124747865664992013048746996107170594602443639082165531951673688556926499716650735933967232508114149100629096067639491349896424991342217494598030333178058717057501561587327975283083104084812082385879122195008857708671280312609312792338175813362585496943516127793556834746013189372970197061417485414990276363358023189879226979702847004355149040309208973503388300490959521495298833099396149990702792849023926582335299766858772403632911654082244822998423773328144245990398474031897169069141199977381168234764126617624294716036235684466915369388365182122532610048771814349595676905122182499970728496297201288293396160249910960318938603718538954533824092456600110712152256514435947638262112218445904376129083508108603716742225187928610893154309777004520583943445354765461144925767694488659053139417652715490170386557569848948087280760648374263354085075210430300405523064001226651209921825257710182635651318368473146734384261072701521528430158777497858801533601954095313053335440881831033842542112295964577464595744649463411554405220537744970619161869504682744543217678621182263475488733887526771888768795534437003280713943466148439978325199281430765278509307887109372043327816006962631182018254302764530331549588649840128906101165858973158214117612680787873205247674508581746507855304889242067115162593583431887804927685617531297078825103677270402845123690147365538423568297315306580572691531376993352896110528646194651587203355231446041756537634285769871476941851921482208300882954897054000711609410447214500160817059489240495304824619998157636560842424853317266797977435191660811960388209075550846110099194544712186784401849942503954531282725853019710593949086962013204373871894973689706068288576958180199346415098611103634705528654069703212972100415858062046167469869866264246268402449086605478469328324960708536760097513196024430717029028940527567040403224277085222257066252303184879234127999206909894272760950041502170283385256488194128680317769385573741185243180428586295716581818338154434851319773332598140899630502586124644337173035802934857683656804288969978065073329465167961228017519919837081026170739198566262478833391004400834276198263877340831554579192856497969474753870822668561091026179035557244682304070680507355606185151202477177127586927404779526009927129210450792111491675222259087033143273696149064920117476332455460497519300572095867094112276706880447882834035860882588049847246378128690611437026358684471510654485498151615031641385930811638681132799170356989983335637538757423326660067384493313510509356507354887176652566377873336767380778497018431977879715280703882160706351950083337558180847851985331292136277118804983209684434994056819288570832580603645732993340427620984819027257305789829008515414171039477152939973595927508260623863841292841929335514100403610766377533065450836839608941351880070513324751695865041743044736243066466595749760766064002144209359226817058861436444032398429391387379827631399430972942785399282158829617372006412925220320782837774030228895581428588673081060330262110577216126059397225823354008110145116335410721801245081256798820945287075577614533960925310994845378161767446095778789023328399666354391117753851224885947195257643786674929588818550944349647824633611043281810773707607903672839249962447960140028167027395133184370066402758622901901702211217488720791631145754691725392074369036068892837694775028386456108793752063478031078378793350003631378223177116139302190924476116576403609085885962039708658456676012895938220756948106556192650501890631803555990029883288454232315401966035451160163959119595800216542896064888114169057003423391087262161016574257108725002935121549844631660444074940346178686464522159169727578290845839346051235160598458324382191926858447748668180322265512176992965400850436624732431238976748275654355923712812369086649083354901815159089871119275322054330046815411218711049352035298376805435080117965642862330548628298167432371805494279801233383284419373149441525610532141833874647039681025374427586996859454153240920480574383164575568299268528187484947764373911920550180535263392220069586015567577904724801745956017853315408294377485534122899299373415478618383007857612564455063177424528177509552644624928778245278373510699816654741972924137888710743958999318310190981191733861251844092516943938954492554185167994301583460988412660041801195498124575972399021009746178310564635306461532229291420094084490414690481984703856275324944155454906963440154398231068876948894306330451333739422805673156452984649157506446450752733197775349395024667023278519305722318508815173046370266184979251977345036763477348782070457012244457853103577290474266212328087407679194284149095672390322291240399527262689769316370952536531289323681447817053795504698247546678007727416905913008564109558093477277678482156274648155937803178654946875139817854890934576280141563784831870702688113436180415735648670555946605229846734796012320236278649063492146553735656276166824175732682691159407685947961909268213203590235345657610712155640346306073358603782288615697646289600154108565109322372741841426121842189634490654213098860222962334822649671763232850735967191767255647813754140969174980511360597274761064590139615534262882144711931891899996073205972262298023767969920469818166304843831994444296834853657421181049416478889540365690655996544166445763496891194676868301022716986192663647155831638031103127911313016879585269092933662756135246380324476637545263908787384275844205814641419922698588868093786489623036302105642704769949270925986572026575543756060595014016283230651978552911807368941596464573702352563161620086351310334953432536306869337574009677529900037580735807504275363845781650658638774159371393508942716413359412661186882325312050407269333017804827974190934788886489046884256508772107243814132483101059284397566579118651731622120280164388735997004858149603501297966287704157823887063943019270096495419094666430186279629346499760178687530542334794379817104616285154158453579286327740643868485841594132810925976249758684456435017205745875059829222766888139479049732709631811013227007817372272653972251565582953907321765664116295167700589574233953138143557071547040623259223892549300394858701870861140420726115557567045280369094112975832226211839160657594852030781622292581776638625602358444057996603884755862924408550772062236776938959017479470077991016018741323924408667804278037294499103761518940601082373990236809199985062880012491060273280816442185208878333260459961244215991838004329206639522051335682392305741552799402474734477187642207868324469358158770937875596274602269234371776267556088933928840154934280206802859463148503006171948821574729508459743933780980674028591747297584530852130631750753124654235920594823612483280803538986301862868097241611477402414101545572673707417921013718994834375909079146843619237418110608750335295346414647215898241761668354386963475758519365196453833969208918237058661362972979101011421132517382523985295422406180145124736032390513662816056695530040330840154135719359642404004230706312484267845827500811250853427315561982395583656638933110282945367906114780708815386909835953383467068650035277753558158361304852880632937486468348151067701064335489880240246079022673833189584581800319663573713144321243449371099684945279884365995155392846944312793583035330348677782126807025925322667213555458050669122933569716630988240098881915046066941075223142400748645751414986220779797030310442996093695164942141343146109160924675818730605157031654302060971877341098463664874885162641021189592294397331594824451680950018019581241192718304629114805273884471250165685234825614876032160433386828599606637734425866304518333481862092946255176267767099303186255221553830917318732510089817937196035759276922515949093064931379226314769391701422417150735311252560218529208304605775433416287397342815477895613385421729687314898311295443379125610468601287468616249531718884719313730839104677798504087267851127645919649646840774795420714633757255433078102917433659151439278225432152123432662062542472154293797513075094406878320215988282042922139529264069508124532963041947190355220848310096960667640996647977046138336716467481930618100675065567985771350907973783016935936209328858174549848635697400205274169157674237926134021185268987564419377898592433984753866276080483993149875520946477692500572351907778649106354945515321791198721154750203657808375126312680384128512288096538661053928813945282028984843672627290017650566150309399320168490524226200602352122935476019625978776075171242329960327306916510171502935929644722438927529644957841163686083268872132545217802745742234913724317588255522613121875199744397231265600054494921143569963481044443620031713349627198304560652903283136192602064603041784184314643827304313905286732843760049869928886344729967884558462428521107660728589401119455153954772562359920954335688600783941700822153927339502867139435504101169606135227662185647608798438335473682379485524160827991616036199102458620492959102505000374824207869328151042383799470213080447856126642136049701607542682902406935237444988150739170328023497026560072202062342389763773377410585998249078481543274277231456175429629958789724600489069853955540475305505053006105292245715998769388803577423858987806278877443092788219418288840007929962000776750493319949553298356301574922079577454975268158363994175334919806628759212219681533997633583523605145272789109248483330946367469562380905687852890063900929721970826159163785306260207989598015793525952230920994572721085218022328654788457570045099219867802104391731683159771646773790014116227631962301596156065644880184122936385632082022268424714440291320197972606365824215803899427390078615213810398336343124882603578051527785882341454525024502796101938734517081990058373798886862950724453042884248756066005301587397178933877104565090393103931356514338787831315656346910194871410163123794594535460162230156762843355051011216139295352909278550965527067786307372369490325143404513109927314011554300724822458294989531171975093464293954964105986871727641903481213773308489269227792287434692449349464686969922689329771754062220023684434870266524302296104365479930142231024646919744795693715385247138880384691148756635969588050425525711097579179278726956605950678038889031839873600298835590165768848651936518305880169194110423760480237443399286253363421258381222212152304393264413592022404441121519044103995419460697186907312128749147647608048213824281453051130771020586006379508359536251643081532281531082296245249759961524933979028824346342623404861611265412841771786436100426833825891118895047454264033914732883957273391827203644621177530278024975190498084413518005244788608446786551955039698974575378034550265271557874968754455564563385466686968193074568382387105224628841138741983116076516925096843165196062937379935116346200212000480285867400953204654095532775422245274117903967982979844609615518678507843225461188658129004681036870744694352891731328666854602861578293884927793614901811092935501606002900050033100699395774759998320831027906655850778151328405364102212113461046558822381926643570079131565578963379991176666947868178949260083523376730884884485273328202656995541591635302902770141565936347391069256094651345951881417548875908420414067616663493420113069741832031207567699003388887883042291472571075796587867241850218679275215754185759147103124036434297704289987335203132291651661963245260715465695358558372839874668427266455666060212482305044807310386515401544178893327714325233316779116806661593060298331366827980374879263230798831967887217551614750333508410514101183691474430949745795331223215063042102950143340073278891660099928978244410037927701778459282466461759507539639861726629450775205499059966629511169614250557255624929830714525434027673870864822311552450931393769809411330831144416144170338881296471155691377596466942614149124866307122975859897151653688030035062094267135050878702213660475661371488935011217085520414602859668848564943045058571212606603230121395329277814397937764346509127049665131053972966500812946259961237731192313351171921190583853070616011486764128394466035522334814937029901568617861879668028835699803326934983554138794093263474268597955382244979220230639705215533748910060508732330494747300094055509505805404919695700405151702428186868182829861501402396099813422761669402987519788507875233863487914779653531914172339060599359667157328039693669694035464927595812420291023184336482522044217324179780202816232089885771450546994057550388263580952942382088514081938900382340869373011309706111018649538454382033677917751850618211247734596860188872332458683267279938047097633637122642726122647070098815641951603907094021299045631916213071412823045014524896149669900377445447860676415046146322920014500423667765327764606666081046594358739782179495397892378002893454394509334801003373809128390779597058972606456487418650190283711559491250078707533293188748878881400775329263768905157581777621281799432948102092108122962430250540776425294321827738446686473895827625704515518929603252082061993179723195470862148526809785712298859883011817453848954841608551267559918387939735093870989957330456263229799369178284742849767228229949438402142304826233154932815862698127794286177717223839060021398178276355561099203878198631987604652410476088963522754115342343896435498418211139047288493762245747480517691547924590400251277630860016302038704205644723312210300803241448263094594695536085397865574945769442511070730378318015271999311513728306767175170881002811271012839947632369211107829403120096328304878413452083016457199311937476076416930593614226743082279381887982106731594835293742019463683995927694141295528855229473475384442958021725095446922036197000810478805761250023398026321222282589343425259095537199733577542116822281075666194445653339735388440385971947282791943194965849636247841585515395130868763730013362705628166055998068992114997692992338204958678675064769930572098628925793709293208843577432564801796667672451664114244798102315728812090537595806889084866425977526364824342456370810376155747598481068495771469692098782497576910955528456759493237111042387852210172555801895220200967689090610093122213304063162077739921233683136103174990457706072714736280252697004656804731856923791416961726964947024645032352600118156618736297216741457212430829819642216202198118590332877244157070969659139320589626302441779418771017374542576442038929180471769340688688698743769565232112062583603329202964832710349410180254220654705535941005531153036879311554897116110640647675974595529084448655361427809077366680066413932491903243286032519924148363041159396960934003285947636907239684870429036804208485816536855776639409544321944138732077597968451234167748540108668507479304700928002831230601710830914828634583915656140502891452258176849583323438452611800027946231634465149705720535829822029026552361313854036421285704913796367455285620534302157341550710112268208001477546018603439307663504582606150072958190331139862899035002502747784868040398007246271308580075494244262467697093104913158066411571814159474520554299020698630307263510527125080345316760455827815522922004154324820181735448764903249693221374160023007629895721637499657193985689995411512905596322232167294037293167592406334318613811533051459167710491048546959208388596859262210056907727435735647457713470717844253820468786894356637090696128216498746454375383857939669148128273192509742382975342842394154728419320469597087852112240940726995130551600529734533811775103220424932591175984120102480243922576960010433784995329324326785771048554578402937847702257939624173510045879654699139880008960756971612029285344652614847921166020985034702194236909086612294013360289310589653382406853462997861680844907956127225250594104095283586909133558343388475234293639229593666685135727257276251006962071963895565890490119942899573719670373542892002099584816161037978532672851923172975430594192437203215588934717316506382417111438134131039510729618903021164104919809034896474083820565643759451902691769976770755096355358999119533664077654398572176638032517171816745318901217588871579739724464914899445339126949531883521879002994487895596294438928578450106184815991016548089618331921447841062968873654960389899902460310652829110193835208878856101413477018274969163493373903395900398888018310979650859524462941662394503940449791946416037348195067443665597269282926803100895989303065919092735496816378407379521699578399648274675099472798121906304177971373746763823239634278691339858292568594474342206148938261493965304040549147889942068671058664251010299459884859244632708484357701331576362234107815345406767123205801103633342600447194633055488773969347342316316364610228371951822283953479157905809525758497651163566418600677666938653294952115067769676390146239543058603120259385738905299778912394899374495506050694451677695778728047862767545392519053931924864818814082891835953971525700633922252083705386119448237027082215824698222832570348114314348091698511683752460686320283682099794011974517899130324693425101519200205355561926310200733030366391256484452314035532653027619675752865562730581003526453789366761350475994021585779160065353896388520132302621159240812099460518042639457340654984382374036885616292515287345885387311304535938202168896436261709224444472674199421159448413290235202301994685147599885559212507819525618750692200211783297319745134161651439695840844835263199702156265777448663571793156125314982509923449870614562467962194661029182560148118889869963158179003120105436550942727630361092317042482622980248043094930239791579543923088482255147721999601655152851707522966394444231693822858599346410336812085874617751124854438229223324458935440340334236579363400741707893876272712650517243159289294496081877274323913439507224064765057538726499624118481004493252367206998782047325031838510666854566020550595723611247082958223259801293914014913734989622980818071569933283258403449469013882724120111991708151685249682621148750517884760843108727474437085598857539817833878322940537615024181700296175836236316495577495326059090033884826424174437703323922186059473741839792703737972064384568399347537935403075553488155787669704114766069574745196491221854069309788839310581024375663757831417503312510235185934277376920520430738906399751815356727912788739373997951863636568156648374356536573811471356323323703245142983071756681460630725316875381327795700088460962298067225276342321227545375700536955700328558981184939561413719127493459222140190091483856121751401569907878445213789454728233832473710659848818518424080098559414035056857485894604176275300928712962225127080221184068953631539046615696720609785158766874358530933991047826094760807546534130118600487046402038987474614578505465229277148314866833582368788630067806444823491948043498348841972708098768470735308535493949262135486793931731895460613622834418055013783453125431486238756957426706258511019722030782930793032168308472928758821271469777300548216259365249880342603923220075614301764158609732590160233623616363282392009338362558809842184936355233674203436224557919019314577212460306718927986932391453185095323441089853413385549710655241600502078358727197256222310256971408453968292230295960162910093384408075352447870972810911794519944238852599787091516202096365746400168838148621975679635498252075468003325482891153741688665948230216466534837979527369819324946695196031440449978487434407079244629451117260840650896089148638095902548165764298110005752776894487992486707168455620579626590669852779504864027146593312837825061931437732851598190319891302297066518198037982845292293234457599649505956989277925747657210508815662104401182980144709979644661034168698501854590919063076134213654918214547469947607086332938438341840280961243600483295005210339059435649414959055620499440131256936740726267560191789476025330777870709745909888998583347888399066379787492816844253748866932477406603143320381493619944423926337477464362829688798383709663717067301600861578628055194462416658642769419859528295337876972606974764730220996966273945709006862842851768135160989122318175518952471390712703475772215160044544167402590041098729861117329495294707914005044690273942305622836596718513047581071543606310212309032995439396844595633322855434785512618369971561536376218263263520326747950866321886009249126969098451490613026966326657221848780319775476928276953381778812395916119514283416481033545055417760635405583014699716866215952118205103771871486184511315619953228137371930026494335980758595657315996129805108450556176126222838707383553924281755958201701780729772016791268043188469708670322579871501065751289709337203750972521461746674127751281672890761124113118049768570415047940102340468041539639304029715891571410981760743194453260713093940683015013457460870498858114723371584019706930137521122356234696004994355391012765812827165234427509943648667030921115178663126498236688094498940938846222278105168543162906061178534616396951207685822138898846230682271305394118726522023374251968760078845360539381016985080891989531714089453184505445645273396954352802310294569953992607496988629503995914142026608753936824307499258003142819165458699216853216272032390206637465313262948807939587257581995489173014577447455090574441850286052233974395060878290638476064378924563156191458109331783612098839400931224270332004600225630006010967496163428036391644127134061476779356271098433242337235736186643273918903483974282459392542435262441315697000104077324136769973313161172541785781619497624199286803595659901673720149861046160203595827877108997132573555301971015921976055697247223287655783373036614545680966214356868438712275691251186650841059714507224259472247328375170861685437034028751193541289072393477939969884607458721699687727316922255039305570137744051903125677852562261210648169709981244543677899388732328747249572558234016849299399283327508072224691696321567361868098741421746742750898648283726899703284652429227751626260786536239365419211461697578667939543820762420135590950086401350547377149929855217847854914902717519358296656238444366164734040929624468210668167656212818539545619162036726429195059621838327681760879829011688327604104621648055675428790069258480114655839463578884074553120070873610976968215742729165402043851020887656067849852861121096983453414415615307066418584381349996082598833601714927213804214321347284207428506316769166538711791934319180211394016511364403523091261733268647883978591119564325826829177077672352010890832379448862460928863813023423841984688094418589121326516006955879758371109296878279039893098858363492427552547244532251123858247025071037427445517448246715639029754993707807905970474604627414385757956937124005315931244739847109518266372745732027410245841157926959881596873252694934507880624094605420593328866610079887312999073098175438684165842736951181163461761086221379801651863875023134709821236158282155611320397000192080204424682341156433915201998193446486864398535443444557414803127816481083691217285279195497821093028806165793592616345074532021910108042815798147454205709321477503161095663047402587236960613799917808866111121656468111653816339299700422777875068036122646157513940933268281986672684058827485232919485054314187230069458047929324072526152719637036188173989112005362395501064514911844342696428622852349428887367131252105163502668321001510821028248658370680715636875626855266692223147268646635007272187256100368210444426527870960885335613897655420678121976096624530108090951633125680883812414696748876070901842783619536704268362286059690916004753546826344622447335448268573279808505089679693827439434038520003738303287498613749789928549265116929437762881125467192037701450628766693613199646014953422338697727362596995248725136803364099664975302992625972558007492351647606966276131141225347845490916390310197222489734827540371952561314794538593359905273362136602886703540145872348225987504884250064319547707871814713302326203384691903037897600538183479430372713981224971772259178281250021238524484558367001504173318513160312687232302855188773111120472900928604874762363566395550627542457517309089569580543693581200498339070040860208050247873838381355069687075471513047213072267383390636076061634278360634446849884636761675925582398653298391043088071265065841314173183971992401413468993181302901614773716572805627995537325728817397578048955545467492919074508783672365103937029627123280838429995242605546214473505002407128188863421967944739355913844735897503715660654007115938432213341773324974805332698312519842191401675265838241779123416943393386035844602299440054809213687365723560998437365796565028009929176122777640604300337491951633178493315985351040919842816818418306570637453749302492333847158396636447734487976010437429148244345048812037937410703034633147734130777622549596655091357147480650573938516793770096369256861885130726671971025321269751870225540239667939395506520684853331861124551182691156216337163329810854129984809364842950854926645835532135366783738168306979639221459253876125049543442637077432509270739724544808204065046134285498956024270883037443110904689782961919718037104796387046666242295824444057394772642467057915586960929124331225991726257057499471081484747789029876421404433173719183546442608532230432533223517114787869186560219465792846430007859435142569815042967754384224329319106932620833979445807142993709153375403113549340067608328062138759873561795478990115696491769488102263645807395745701381916390482889317963508027564056350744622198514213068042099937201183944117508423087128687228851216696177870571298517854950189395692088144938855830341388374745658546104858842380002016662680688146177512562542819382745198796595812154682500383486620584032652521627618775991387812428439853802243383948776326770704689439515970481438692380853879274416676873641412853914230402456814965303780564662490483091588954605050245532058653724564602321679206881654744018631471779528451590187576325275945964279766128532952606555627340156441527265601516259470867008854222106672939685277685535265882701148571245407459813870301379060803082295847388339141119236227352900205241734797989366654903971798456223402140647853708501160596217399498780720149703694809344941666697908263609336771025880441634910275000928072340307479071401892455888748309989318900926761804550212933762209319017036840420095554824341219359516631431584313582442482374655654532417421047569742773690632781597679578465011704911052475569309669539086833470679219638107776017701365388949491793863614554747520312496208398741524950646782971808195012644487725720780073030452596830453743348669472044479771734421899092533644566164639296728728417993732160293970060059433590048821180324736195240882449196407275543404401389319670714062204612072328783619291683295953690145694480645114436412995935426826076581839702966248555810617711055949297978846018729037715419334966287844329683363879119261750481225543802582002809903492722440227188874810787977910368662600677656445157157699347948701924836416666416942257520003796943013227526761366191393563283266805729464213787355130410034765188644365837388524812920352607324785547299958933308940330453484576251100163027832067607486565190118793125077926263939605634601545172272033776635952660413498321660501837128656980706004762190639731069707911789979968712723963712931616472142641175169317722276330341929607670901651437894998779596096979469442405468888646478782307434837808556514046444224134681375407600434578834498136297624344584096066342820014308019530761209852583083432986520304542271217905252331044374474658927366800736607510985410833031041581168005967471411102489404600210449626482885863273033543071501838482870925095960737293951874846341204335730593290977819097698008857898811888992470302526027521281821376229700560081106929584955213724795658046881013780174751378287102719172284522696951903893014122866225604821445587344455225807058770235273770677431253314689792143991198904633960697593702517198956670693472350579665042684294239685210562767314224605453319708429767169945812424814461494067060677355121695816876118333451975464427745948168153274595895495470865076521000855278552580971133719737093850017702449745363146518499783321305549535174193788339354150591406232340308156417414638420723573815123453124109589928819333628354214685722716706867648045878749140805748113414730783855754187468190566820030754438227686963499990547100068931921572910127578555586356972261438595284692684986231960320448902182893933701636033337626187962861126424508704586977508868583158574946100875322397679223723179907645072108516284808039187482119196886502137233773178995602032234313997959237912935737965106230991238300922151695844588344352086459976740725047618549581334286783630930767139144055296995702239688304583531833530885015574977905613790998225353933340678123454537956963462122598808399289364476157010966588715687094547175717211218888240372108330302018273088433922376317080545769776658686181273963033949097478045941106980138423880688490606639579450248851264575953586676014087634931848311132622853377412660685924533603750627073509546194910693200959762296913997479787588402140030611545826015391012246709335292710451122056564558247818420745375474839424868098915393605417567500707034019777517349438549126447491390184034487723054224155211573440282601398949190766570774659500496273205604796339304129683086016511016663689365760006285022257281798467358288529184390214142328766570583480726951562317814681039427269443031253871032155821837631686015360696307181880916427416757788943376832365673270332314909848196431193830143085859579167911082570820737912542183853284533157405728597069920776257623280499773361860374932894516275653111514023500255205889126501119101766259308989103417723038751471755431567831169095320173345691420574645745820040554229163351194525885262726964500551662937912928153980073195339889055593287326621870689230671684690749434469065131335074380535475302132181211785018539360547031506833458257712824781091529178675186627503063838174810612388093414280722490410143925573431305280396545807660018223046074991564927375136785992332196015543139567142215696591948860098081798846060901999107571315570902470671716808183782345031351890016767603976955663501248331917279637137077447443451075186842727744243306781430334498565179372195028772772605109978755268517676210109525002179451092714701317756136428217103490791580823166570317884346877599403897395916460188569751405142610281961577686234758348156746172903533684768290436046851958148418502418180687683847826540264052282286650240024798214846409095838766596113533014973992009504336397248027554177660651626053901246940825132292260355712671722492472054697019660851423183251970010336635638231625143574218692181491636641516718728599416818856105633737301548771541189185284924599782307524752157730077740740969045513236520690629004796819401287940641200615958208514204719743327826187662220599830951441768953251749962180118256484372882321312202549881244766745225547346878979361052822077141299433565149405418273491984005779279606418653380077792599663427703439237566519715478425893196660361918374792795744137800723826200468790568174153712375559695740956601267050218851128624791442810175320035898299757183378863225322704545471708500681893914883822903150671090585664772152312857115051691853364030571019880589968721983602882946950514696391215101350416922338554064348380271211483700622277398794453597056048180905764905048436837334472289053257912959030546063468789695830999504337041971996879809520988756653129533219703663191890779806804760621670853242664783606581326630655965935187310882340176433770761776194074611777136796877951643820956446081689633611074722440065671759659684686100069265797383339053121523817048089449258209569690806430539758697575312457453269660583191242175069023802706507831004783270004653776165827561940760310150140160863623138472616498996971652864885367222257128767074661959169520982980595130170448760286034991162963951692600730458570103659792031633309307423959734263866978326786363149407298915444914270609516991630404581237285786849366803920079562442506333517254265883601720076991248391286097054243233858846998361532242171939552092930356339047875553679363145501403002596214876497352454394678414320328235588684170035771487163697064558723154357855410445711422138266102964722700977733489438966052416760496200383738550653678747296435606453794070885198782850708619165089502534133907922954208991363734193625375082419936998620859747792125697858237596022604615484569142535783550648299896123465251627469265490759320815708350890368871311500209754081988799677226389701766552423949350821671455860634141379755571614941006471077214183625041019667730319787958722925395444590649999324748583435476093340511680456483164613612485795684401986331140428077955066406336225201227008986441125169191950348168240357327524322457364028252063133773062523501665600413933412525302276683619003452125209331768207678867656575481725611785876983421615437961372530863493720318173657127303339038413614250512687447952835353942293768083101799539152513452339230393675684766958543726108607789198810138911178637362893137792612948676118547523980958992587834631918287329253532471469795508016908247851962667874971633971168853379645947124640197920279951534547074837804845835484923460749663526992561862072203573512231125171398739539116939077308713804262526948890865715543392969767977870528586018511376109399846587447573393114004310490166478677705245515039190668878468149088142735937701124518994416929419363520714696846908027867673491629604083313946567674177885526524092377360442185560141593220890222828731306240660859133370839834349689696528885651682234388343909740582297833675065288754527325192485298307686384102621896826843941991155143379298166399726488862879616030805044063446303125293427475837409959092335891474895216410640593917353650673947135625641063629846034997730668498855109219135097906806842465497198862230041749467249950481043669012644701509913148642888976960642713790921401877680794963256965150432309739024928585374494192301815108912087864398339971900676634944525661729360596279231853140019378679476392851437348530260048742008093646909942465391549011941357746163460845287084087468517783032839129999773574383748288180412796686093968997413853152248358981949772453760879083028867220735771604926531901165196975516126534344855147478884818659980658808945301395830779733722653771423551348804719137920428019925504216205073672819912247198752157809937839125567556063693925648580994445624556037724119583671433225123534525886770353716698482256520051442770091362867043450413727523317246090908042278161916785458315389160943061979399498417951599687438108401763221553494868253383051893101140706921163962886349549046360143327973497949715957097554352257939180132871013399855672654018608870088748727187467592845754425754093246938678976650237722264083364421746869620513299581879225403134174936199589099969697693531042893499785666378138035859365242232295541222296692763619982843334316782572326019786818203096071399048932654253132147140460554308424464196388326735208208443217430447689915871386109436219642450810998691286094763539533232868075548043636562953119186814447898565950793931398650832422556656770476839916510731249683956789549374184838096789638484623289849633841346003238596566608933251066509934591990000537869721701843467288863499601798929262610223543552388411611419051596967473326496300546457152698337219747830173957260284295110133941796969693072896832165926672497029858793460685065431737420414128596375611023184710206338783294122557437294412663263299210513086502924600610128034235026464993448388095639104230612112511288222928248146842132731766870130297891562572376496865053736128693390445679749394239933917772530993409938916151091889573480444966084834944430338696730703000521363906889041370124667322983764687906759148395341368754511889536540836450964159840606599844303941066839243766905604812843991373319165950471213305068311635753587473022700502636449770677698976178377884072150495018977890774748184834949645900292636267934005887626676167403964272203872420543264986418596568301884052587810202248338868990791513451407434142547727168529485398364119916254307062532847915257637027148059949589224780684198812973744256767632001576099533374375501582194213588406394742736896787057505941977818570149566623162812596835546501124905794417742921460494173526020257090587453631711453121603008061143156022916703999932088546537720651250206565603705166802769885504125027256353278444822359075627782509222031199422859088344171984888050588576013453034918741403690006711885010200033315297964260781619421967618911881338178297578437882590063359588425259297882250679891176769152239074868910508127364923456702957385960738772730233056392564732895446382729480891605050125455665140434442503209218554480956259623111016094900934489346638979307177118875728400811243026602305157466174977804362106487774467183430584075365293126458814642271309117306157335325507832517268223475934005597637603936547950934273913685623123149057661613122479095069231660524838226804264523441336254389148327266223898293912004027856177881380743584021324228606570437245634270749875560225616766299488732049584783994855986409592038368074492088843905918131093734459747704179372543698953343089502765993744335992037313556204567921472026309797751406164051564914143335289599345561505005546311471857020165893966203363809853643077242259951772677717795227744366449454693462341402720190092250528362801976686553711055029323338070811655197092464756224939241701133864811190194930078792588826992540922022300274860584735342044598531167182002846665090581669524886997689202535763415320320570086344077403834798934509439806193172678240234459057657953798557865270393914791564060600949723662178602197214700395387897640533718626958516362480360551847358382938861925514693144834242133154497549731565975052502670558161474788750880071451560095565487914559919332504631608420943676445676345932754987669108971494555907720480500164404483347049326424155498617834193244507145430279164061384235039465240829527967149530774699900291527399787460948830658276138712709372300537242235812040600356981035210735459084003836715972868546844117743789137760730545104025505514587313567140463973266531768294872547995279645794272285436425503298584239390312402811361454821975578091729927446575230352329800707330823464392224268674376974424252883967133255117933679343633344502783065259862206943840210253206718599242261261130153210550797963158643468442449138794919854310213644790721042320720594343017088852805012962962238228703584828282157407684645237562816246822563416465668848802453518072315541487284714552495465934692160178800938029518750973841825982292800646293506076131423839185234163110996614748593846502935282998430601459793985427238375197321093916909527549985188564120991855953830073799228824630463553882092710039212045327623103059425294260249207289596312982293196024564373395087969706226525881054296981725795260646656935927577004132793643343351966018663048849443207604533592182773592741518159663732820397433331808593166994838586605244256587715033259305783423178301583688973478545927530144117422985309310076246693038376486468444131364999713138772858672757493960360194881494141173760598702309025312158506379121264188059988105204705338690895089256591561824934180066145130528733106587192519215051552817363993710322399042261121580844472180314493055694912727358214834204059235352164907735509824057841774190759582505118663535578301841084424291234002262722187613584872031483769187616052535823130827917580238173468203060743953753798356492587777173433062727122020264809793751779225129431010310341917971273451072325487508861391022355636754054212289362085116476772901087949030878737011355201760275574850451327979885820437490136792988690476864486052000823216716687828414714926377656430058387957658435883022828506057576232551417728776025657376139770770228653117231688162622603972473959201655650362254280389190797151614190396000123928978641484518890696619257000332201165629446226577234762463288476887689667290648368910505213370281315256801051648970710227373468745398022229885538221572143961070169070535204866569818057541195068597909466060702731058395904881777594369128188897330458070451839502624693781486201168566450002927751846533709504854223881621256242498922889476320968081828282571796007297586836501587500362305608274391534051267321571456724365268448359108098931520614939145958042545055673209392196155357823708241399485997163650814508256997062254449507014494480473381387086113582076622575033817831707027072963093923270570243719640123196980638502627306949337965626469949550933793837634223532578612220226573594343225210316364813580201724612183998283720015615476415475729678058340980122802772140913244172677890509081658108031755295283225865671100962237232631070749660336322892585040438608521807877365416701263910753818552607989123685803803051231091456107380722178385361222320864829736125622403136550283954646058577885234423889203587490956774455865853032037891987529321496433195197732760763058006314521578205266613743445654080857424232118741346622903164138855453609655902871260380249901772860272409465243570201935965631374916153117343716115826876312222570133471221889376402637440142600021199451801827396706294643247449155120875724367222358235591777768379939894706045078344630808033007174202762305294350669527786121803656924803205207773561306116317012368223132155715847138804617190117331964836327804312980680148593777523766568313374472537875937827800634842395817270390724495255504836306213425472756497097597075405064584741637671571555511361366161143958025684989375483947855948236937336908065865123515076925315271177691334791178251028483871223717856708821468327431268535870107023449922756007698120237626719576966973409754683299106553438239550491869401887413233305917916827657380416006464202569173694259886203069085789110517918437946344399689347694193607343047267325937374246162771068745215720711005016386708704394422921846680962660528495852405056865447232362958307341575323274815927561284262060716342759336391133472402506300476414576805039196355847563196285009856849068369217443019222702622031674367924100872269063838324090495629212844011174240727367565657129961190143991537215263520025143733712220657686198963976902356052683958474317194640250428146560516782908080151951102238533793259308108201372500351308729791413882700264577764874465898874828697408603304832527954883522892445996999287658514208256015993487711504599234598122146905416773455410487072748891005807253108130828154509467165802041482897023603561262261524464601171408048117726837636291674041090995150288094774795261350728918690947483260075388612811326860200141827609495404771744985267167214531655874303740573114687427556986586206309217462081981300198797589980580370869339237002213143310892128863071706376912101121524464169946014992541066585910963666857058842790075973460875844877729434125255467257766239247728312092628359183156699833784913521256907886396197379989489182710671946963056180257880298518335856972359827103149368737639473553921620248503001869869891687324677105327984698305934031291680078140563406661128106124865449548155248723520719320888717765256398151752070337990439374983682966758090623411479764465274228451820047463561028202521544883127808841837094891241171910163028146402745953148440193166842652750219422928281001132232592406721581192243282557858248050801751336913634164773417688908578339960043888367376229143784274165610055089469460340689508269547119591613490260327197328036969705906171461516154855871423455723639451726821956596239081031896513473288199234672306306807663516291703745813562697458084787102921901734827726459754510671401644828204488367918719561860259047368951417418133781456184103549801092881797053578087843206764203834101722585258296294656750661066646013908600982322795293544693454863428608259998400742048805171525128753927664395119902729903712534790715569201837535549072697686925893930723183050520100728788914517563987618274155571849127857918265984342665469859244200286960726934777872433372203870009959977612332437815752734708960257890312542939333146959805876954059277401720936329735413719277050007894660683379582769765312942875937714360266471851250600382458118378047499917230221758072072330021390276141672405027097748051288575602435086191580490323004389254995332741003394183477526675646659052583175288407682063052196351214486236811680551272874635446098259833076835299736033728104443081833752532278224062102624186881977910574205332144073690842176009154832163741047626361827377146745850305070653883900394899321222637341179776378990593829008241546979333551145164563499215946438822495612249409666564255956097696979397320722421601201238511531962213969854097273559198006408056401383098106367317093191780782824907035818022534159451504984665705408542230085587028437455288262833921678821365862971568506450761609837443758613827499909864582102481615192145896257128250279762440907982525717971088806257525280625785464843416167892542527728494781164259786681347562371727520036763487996799632364577203543285774891076388509235573115057906576389534497434883391648582849195862117015319299212928011983756603596085444648261128677565712822217364783778734868906231430412534363880628143278558958037354596574069197925389292581492835927414461335027843579052387224846514720792066664631698475811146478319816509213009080601077644873835690052775147938814020736967709977072290130573276249259829590881581790580441067746848132057883466701479073065471381659735204140484421976521375925735414218723238150393793929684548360950640418842062466323562518616113494189847265217702750297426839294836667001606813668881919426227521204948215193874006991671368922056462062351656339096575864916731216731638046424451828449142103474710202969201707681327991237370570248752504535557484293871946374952569661655699173580752424524970803883798894710240904743560590204597308553683088947227574330175456682001948267062783579719112798502945812969392603775509263343982495513182142014763676206242349058961534527685164196076670514377915649339023847055173620967412895840549914278413605623170472159952009172671558974179309528435708504796177499178304471807921917912363364064634664275406892131112822493182789207408627902477465156181883216055567554521441930561222187179109800992144664020482298630377287602690363747652589604186412796199768576170100562618290329032063531122534293657277442467126453309053107283165208044180769195717947661235208499709974476588761168326888811000134074621487894898459036501431019476174081946589033448908096907622632061445608504018971738619736640771667882420497425800728763032210851343155801460932175316580919200657647880544018503316779074206144840629207746912959838768982636464503890998212285266986690242293802380259577463358503096001595794137427780236828066394604068006851067791974566670223388053239931345659489207047826874815945804893623731631316345694414435267468910712531866240465586418132819805817914992696328891411241263720143031404345271359113560066991942136713405080725376616491238615830766397432988821040428747954474444616559822003917038513201206870289088505100078791787545205496392338851842703776450536251121320114900949819010514312288029296820303020029016707889656790101726025036099382447201552262158383933022068324339049478948112882200009774634501408910487291674722024198762164417313488749978073061688325558169733464862906593096027649870599844449195872546968252072454726320902904751213411033057314666444645893881328767611640343265982762166563227759207011936407065248192506524623184887336771778002549633903172978559005858506621502392961874450163500203366032527977759437573376309056036882337816429035796166887462791427478003478775592159101824016213530960309966814583598925413368252608441862807943790705394362883722481046759356967331119016327711889956991218928562982053393654185415292525180812558195311687698031434706497662599912843904686498569177994557535135076645145832350710624286216604123571877357207099682292633953710682799115585262571331044015900229592732090751202537426947377432491478505764722815788211433693576302176300463599117425338188516690293350968373269689601330364094591938022638372670004962332918499318463541354205759138024900771503707578449990469423448921363060230991556865035276953530579245559005416373045857207235004554140629880677940171258133773002888243350508043101683435209335043370563395835207565237226968662144275156546408363016795523328541889803977335555709147232726595102181988020458944000457755114547695443366845457373906592664672661136777641592880728578642519586409053517221142419166932840977936385947955050110299506865506239147762395921496157740598761095193521327338985211756738747421378090237526596257434507197053532711388099048005934929050334125958442847152549371857700402112597051924853684000489926895698218481035108554992384224331172087307602526232024121841467879265865403124580227008509591471002467797249549050607405944026298303589240895034353827919782509219944455687765110530800771554613673957558824159091487709943426085068110346697824779475982596649292124522480890044662137980747677812714432467405920930759415807964571543912866335467090813524724017251346108437647013380678196987660686789582791443757610781443142153685862668369634416646857440771126554209954874012112346686830379397218936870415782403746691834728733701810597512070355890586156888317738452011620718733080082247194228931620198937887258373455399877316858613995687173806471601064057515397517727475538832631476707976696236381299110333599424463240699070094234073500269308204801409631966176540553687499853394851705699257973078235470251482998664053117190378415294562714572425256009375330106272480771658705095221557913836939534203869939702371592015258689104921823612293945377647985457493175198943891696352851539515107586182055120356559987832813297754957994326082760058363939328764394609740958405275670506185961922049311787132873781415037058445761425699033734880899603768066062476170920386321491950649231084788059953437688323430439173255156154136102629197334262519580579736489298478595101092392231003058023001951491702091326391832024040523858848375544652665772992966485664526660150172994311209031003436071613902340314713953059321332594434944557266082440868969132024446384062921139392446379942139991543185845057777258117341813561021193873868965039235960120045461132493576656429626727673279542777725355403297304198063959342414697566950377794658182353359450789452206051451674922569866709257051173959067285246693224976002444850235012593732752203696123536395601537207882678968543492064592415110500913378884550345163756171949138609293639351066984351284667321893301739392036516622009947756600014554906957410454266485691299530589608863331944728698901970474039340144394202073038693328345534277958907680042504771246401945628966103133496880728297452470980692183238655753221268096027966172685319943131815849278974424425524217422222827637452858951356400326340937863173865622097642219101182122573559651438430767460552963956314536941109361188319811364675575855798715074474092045165813463745250766417442471686851499890704681542997313096401650341750912075791545497899823633481131723794803009666549094734200448423210207826035539546535540926326625537251530151347298879703633530652515437698816260059825488025308132457731943170422594927315995917310418122274423113172639075858289477607204634416631431281509942227482936298937788726871944491142355965613652228306008075830079837924860179603077885565176957605423987208643918965138768311286345719225900544669452700396929870225908862420757384963034491696752858770292859342781434942061922575154328861681560969377097502371764168324850751554606296010565628956763590799986832411431226980197500248530650821252681034797156822173437162465730317911812681387593313184635652011744306621213240449511358962347266275429287571765863916086815037313846982686768500342369715833627912217730582433107236704793640616003543430408983086767858506555196214850795954333755139777629978026280431033006573219332768834549650757568048297950709650624686749730645162663887734027752901867361219923410432427553407343031813882482609940540436858082825838410845244301686585562057298405759264320388789428319027843839741048641950225217762126888048948984654988141305003949048618923823966600582060881782899938261970021884955630787912408834425422023472228245628733832199026188442776443467188146225260492556523138325042445341896429555747338267161384337482431371114949988700362194529052847458853088094428166363978235691915297345325026645876551892830393980452143796355235849602461961247886022980534387989121706005984213004857268505247151485046166185421039046331135232024884753795565939422313360505454310144530718665471796618419235895318783017945136806431102608824208966586372216773488748634317308024802744233054645008595477112130877468713749446372520834569625707512656967235659807670472196455308849571726613170378326994218900413346983976262965515446770507453613386440560531632542747419101485473271631043397425465721342981720649395036245050854946685554174103465914760595366150371804785616950422017856577647033208639832587653725740664349154519454864888497137317000834761319403230728598569057165043019755112148457597313978806839833000426647787839646305971936596951361439453913448370116094565002299229990483281343405302073133657920971997302632442906679586568483068132266011076122121140536374334161520517194724028615278650879388119559014350342185983070883875466046249257693197340064854881696358155972390279770598396776720264903887066287287502610931205893480049859443995618120953737053643801127490819126048458111602250550007155591192241444368861684981911178904639088025850844861756576751519137184502129597184482884528131845266378027815480920677798126131027416761407588895666124878886576632394326178979355538476960360320179607788269499692586787775706386007192386059509839987270343641852582494654201490291469335173884558005509566274160135174625138043824223474860355111627740549040722296985506581775287031585996805234476227694865729495870557830272705769342629378847493808094608736521085345143009559852658715074706030031290340273925710543922665010580201297506703035337113671647569123489506644062932188740395831954338421448384364811402092862873809672047505751688514526990755601447649399846876390336895150992179335588781045950952463808904086678999773782866142257818368264223496641966768542726553613964302504126473352524365601983448632927323701552442008890152347141282173049879145549273871760228469292987725229109362540430392679458017089059161665649603450016498553278179276159977036931975195867616695918890025768220910628941473416390680876700303522903836758470952388944516701616940241308083161221378565097161403216599632964336370960227574752367802301624702498283673101628759183740461589985009575088692130008457750237111391356867942729949678796069028873684862772382770678605181044460863480517211574520212362458861574110097332746010412114692721885085907229950170345450376376716310837467253594747013005022245194597530973927017293483739518098239317830354650847386587290737193273737964893408666050891215575805262826546049578893686855270734692958322770711060637605130556768055554447030928663644757882535974026739487260024271162388412414103876863902305988353836518809898043820448008099619961867298593103432563605066047609428403682158043368870253614625559466757386705049483187222623051913206179806155182091699612053359286885149533328954053156146936037977678751632652868619564745568074499363276626680871637765657185774789590895517564894702703349759686273022901886587505408749866377740309104270671592447045497737918157711549562983171493922197571766598752411807166930707253537465772171237439285064272064132448298921091988548990368289816372851057240359607570984749499545317260532844855542604421915587684450516770008223163781930790608482425497583395148477085845836865894615497681072520547617986047381812803246165834707973426426292070907884998148449643535666459244851458124786298345800387552279359510783603501316816380272491337017876349635647856036226803480094821532414969622729033185343513577959454706528519522845070314742078727248247262807209957152925623712028037065368759609576228668347959108198267618066231925394037289644566806775842663837233387718951665770644655816439627231963745240653563042582568272105402495800226274695400399029683263442116759848189957930589970884042086110124486116881519972512979140197236900310922076086590099409650818537214971184029309033133619612988193716677059090345145996245737604955308084093424396641919423313374905521857498717097578284659063880966698869859341044732669105202123100636994178002679041131166500286237272367948113157806255462348805750506252990265974060592984849247994203145776988490904533688786287392245664557892522780425831324485792892498377173178384159559678734355358488050191765460022609534631050702390934524805981416407695694232587722997862807590794915019751193768669529421388870636436322781509106344754280063516831019773560466179726826987273228569536735285049587819937718820788028916229479245760320412385874148620324317695365124443930474089777245436205679651891725292272931455566664913432279191736017660899192119481033891499698969650936430948856429113343010272675658518047750259597634583344438653726720539738467171943652764300756741200346601522755094337591769633249827637524533396272365029573541800822427955166113039813163754954655036742500125981214488294281557759646704818054059558710561806294708749486827268474769842618549631798092019529409347905404294045204075180462180324464863936359796067324006934124288125128506899901087397664652432517819572104592023358079808233087302949467384482790595015851759134869790609385210711984300755701169892529822953631883310587211184799613801814115972226362813176997924260732287038797072340214986836179959695535886723176222388688508951319941536256090656218743926481067139647649098748711772237426515578838064731765516211234082565355443603112847479077750146895716459124595647666014898575841324301736499477416266427195283893464561566920243294333849437975460064163687079691485594589547632859174584828164700575069183049916473735994410308828531411354054487334224740691988370132828055980282925905259235161116659993575351497509693852039271578260800814644657287500944375718966307844897997097093567268968708379024217695981578258780923740886160811312927195107200075459952467661503031540563723456044101144341914545787703021542853338475374222401227296601523057049890392961116806502146021733915788921690608062426959396700343908453326851015888986869833458471089035988444401130774075596004233590777555400521680533762044995513975523598853073692824922402980420143090866830707231997959722697175288787245091608179223050768221729512068530307286888083827974412793263304331897055728863140583805046231299208039188010995916274286432979601235792766473839519257751497423280626996179328204875358287799689771024394806976566052914330104421445644957286841770515616199537469881356403017439325789492136144515757553795933662009017015717714622996331554735186709799541956230567829754819972287963825898480493739181455102610808077271495759465804613085423375717089144088295205252867958786203096967395461296389820645444940106012371151676739936142170066210608338730039567774771775268763992306141759333289429797645800296875067853910324097966664659657063542517112103763421226167275323269555783854599241137599175733636902635443226900048841438369446980464174923744824668662697118445739883398446099486282907368250039103921446814578040183811934427054224969704301186387366681333234730223485819130361342962971753443088091904304582031331928435775481653582556193923958934246736134686992594265961705911139696361365833425808191201011547999416827241192058605112001364109990986962974143973524400042344733288408798666060341108982007521267339693615751627656848906804407036101956622177651040542132033457313014008518650074599297895896914281210184065628082535344525737321336065601148744676057020384591152053946203696012990231402415912485636736227122971446942304999793931064125217233314323918954174238337214482447162683117166694085206195250016851625449058739077006878500234149388767981446576857425230703885654539974699240858130475269368252059260405566144952548626874532712758268281987008780109156364048463605014797853893526563319755770762938332752802949215200366787787834473104737479624169299458708664211756208200135775693270094807382796702822295357345913387541552611255246786977074152652771775860202845392439582646308096673067765649325995706831280982967307399975451923823304670752626194961196366861796925531197935784165206821756861566712665278775877581335638496126638679483091691860639275997949863716315018863294599877062699808711303612285114964117991201567194179895555141900847503197708960812578549553098683727593742142528176882727260868620769694235274565581390950069929451859445817784950642405640036037815677217669873506091351037913756940751162825015330455735811164591263623255546516939727769305148312809767318520376659068901923990835944830698574235891674523200832999710505089281216248118119785593105942886714111294989356208949913769907596917721849337369197187588769444335645711367173049412279460974831436330384091762842618529654090071640333770244148439866056417897961514451639747368869198709601508298276434661987821941145836944266410307344991452952892417018561158827219744692339068086179476474779035818907266052348765430544185534113174932837552596335731548134952599436872108764182279576748497936772460087643035713340486093601221993545591763544804591960120665146661506458437403680785286687392318851821384031499896580640849557676404341805838939917735200751676518358406569722555217708653859271333134307220751918491865197612328732746317725235160657341707991135967262264000753668268825069595002656447947605988372733752498751192885455712863727672321161705195911763642469321927957066979636319476130258538239799142364859539668513343210274048308535502072012439006041842725679370505479355859707350143250079122662870944877401343337169933447933326846264005985081253140945151173501111792066614748487647041405936382322290261961185612829618645878979605097948773679992399179541229683621521008701205853436862166538941260046899052851886659936442793922020963624353721407286701478662943853111913867879448775468511945128008302255637419920623471592385137052183544420696728523288044687158088892800515960177163660605309041801084802089729994091300640849439647122469956910130538180946487734206540412268993395985942672395960438802649072294206709554541979312831379865278979309203464548924686936046845138582821187090130231234290684247789930756473021604338216693662120630680882631549969833028928302642429866219534124178651893380432578298668432060797509077847357572855427395473595088897946275411189261239312824756168323144263609857918254661257738078640125359006707609018402299374267685152899908753789666280266504037802618068289610138233216562392096660806792371193823151034722026746739515059727603460932503445885548161681044897434674394350112646425447620337011923357916281333632741830154681168509950183480208772462144650807527550344672019803427219066613903052205020640864218683478149385006015413113075248271464066465338384932866987635223757461230772253452891182322468547204279183991617772939148327010244353759371718116935313880123183538531057912163222425871248623915015804832935203325995390450423207974124932514131238935329730449529086782269108549837759794283631349908154738184682750924696117347763186858885703416084791638066265217624853208199485834910487586832508512659399872603651518070242812715334792383225393158214234897441651254710952828324979385432203882216795373918540254901323677723349699578992983113423435946885139078607105813800389050670417903430509042336432810293841526746619160019274689966787729928663051446895205497201947746894514791682230497626323496012017704668400197268258518265228242858118065209550203689267642112493502930493247353530201849450280896543698098327097540134588168582408753587684655360567746772375719336715514376349164246864232386327393764800192722165740000496139262767254971478593107777096697270425238622910997103210182911902136458695116907236172589585231116522679310511733252068509292439620089697116911245685633287407603058757272043817487330198174005889799650356299473702197830000127487994468162930573558815828112800262196293814102779203774530991416498445992181492825682185187991182100273849914384993066502653401533292017855206367352809188601618829093669699777737043113717589002915809593033843357959116577481766760395784062620134453434760878522925698429882121378976065822680013198943476181918653967602492541774725497269231481647599684866277487637800765284746501637304644549479101874734584903114366363188663169541215803988063143230815302556837976363932620083579860331485648123732005613474679819626646210065586530569208511255634690090198774117568705326644241511501700123275071539079835491899883558309178345794158086292881176045180886679849736432581000666847177339781064901481504429213979681411402750777833766762838795236700070176551741315078705979426219562128097234565822614771036639403263526383623202192482602872390213439942489416558967021171599272744341467745674449505721476826715961238541209099621367209750638035758486626877413783203520747664101880223096118741734957321682064743515766570830468890569464714868398511738157622030775441810563368083959203612416570757984141495690603089337849363045746946674952891784333958304906533907772330719157765950560863856796838033416524406288286331847026589011007472278906396698584305739590127936576814186714767777343942463791965543590061016266185161736701559341744925807934373355040330862007776693061529699537818656722213889469947336488241425475837871784795855222950909547976196210188836648482271643335976341538127892345703767835770534901726202322692494467797009986117186282592159838426428126359125510993565104860206227225163240656893404327470422891135129706296349525186637656930796987019104608640082149285981706742044618571715101561003547134633566259418597411810100750984118331828008609151894844178598359147242821031814897763664674522562866445289011997098730471303438133764452189672200202428794572792370008660607263648086305452853975408997591602516367691963017788050348001484002181515333876417298169727625008239178590619474750888597940998479826135434240815770545828598171820832571705790892557372657939613868858547402236591336771929362229140596592668230706314872114428080749705433455234476963754241718527732276102786681453297498282595886788373786555747622980414935705849243267736903543941314818930340376073702121671873757394165853630835088844252191222062504953299286924725702123950581528154582659686546849277186866376380606852752460836551433751680483248896193454945530220781923151646546645183201065925035621984463602281511701475379993546972502795316412382773850878681699091007421224755357197403950675824565986680965045138903721744996246293180647162324327308967394761914244552366567462639378834892973707280575471588740160639118733945183751903968023094040540122863642790319980162084191209508271972694898797993192682832670945051782439700981031279303868107543013737081357992145291281147751087286496634189284921621140116852706786310494681974783460067030510735413499987036763108942778906396316266740239002600457506574273941876587633810663753061842703582407928250840545845907845049232144815537517418520951664581237804555921148115054900300421171977372046894943359204485434463963523250320868836025062438809058560311008820363886496726336232304308910405258432602483678941069111770776678632670192492240941445711989540551330400741865246109584206147099807732544817294420784272100568776487391138641505584667921160705497366368950909428495948054695116365855807889091305519387962179538687193419277948267056778068379751244319582113183195459345682078218527417912282671081294912405695510020052860771016419593488319181904886815921167830550732370586704937837551071206636500310486277400816718360729119688164690236905676401918124438112863830759160607806510588114419696580834112991218579356194175860890839673963262856155591397490544740553804786337570700627371885889212233601467602733086088289332236903669189369397534483827700839481680114542138273084479493084670392058039500083359778213008407239355319009721745253973667754539562509262501999834931804750988340431743155568576517079403330624667606637110644282927112544773222864585163147184090390743709915779322068488944214068230458468192438038891253123659602729472418690745963905312982539150959269008808630214131747490825540286382624712078569858143357593841431823598998280409306505142933147261231522942727249248068598546903062075429525431844572770725854740093202758015523067275138709326463337382342363822011327976958625940366246524624633636747826247822869111127761853976920865669116360913968320081638676881771482707811083242261794745416483962331036385878168943987330449073326424092928869221209562669033528620969459504844363713157689716289556948100448450016197354056099656256616033292185484098590454785796667624824325528818919456225843129880956752809778326617877611956329220858717175440836478428215168228949817161718157011395625049070946429127644337799734240828138107219329273413462329429514739610801638843394798305003165192659628873716325710723643402579527185194280109932149937377044975079743743140575599947110155931814021081905964130923737020966428623077159780941966806357114118679834472570371803430556278273423494992782144092639198231030588018631647872862976686523563973762044821661448278063308974700289762523209930940646976283143676302695547455247621833650298376785514157502659449054358129738491049907195470786448577138349722994975727473448362525161358113923197449976055606759414422759820398330929033335640038065268268946423452387462924142963426094014651888196920331391402619342715934143798722259974177339652015642348300089089333851013176825202610667742944884492741552557421126550513658504102225271193373133858704272714079568459824619047127301569750089497144051908767489229905633355842043682790393931179686632709671872630692784471109500746929209013325746805523355727087548164058595773659510101681620642990274535749210444512795521313097408993788867746187105134637492406061433034245814767453573013236343507626712411191581746588181858631548310538927825377070688639488280691046996181605774532147485737818604359509277823011778428049396143651517691323898720926174731796937316154648618425024191002176887832670613863092278078317522803066759409282164294317965498378426556454312904290667547678644574278320417487784502280056996541441203426006366318166541149333843556014130257197459071087139356452886607088975346617773550268545422487523377403493439541663790815332888243929894391560673642687391275823008341160412254321044707705768761023977038392032693474688249077580486729984667884165428842192234176029420607602129094127294831074217896632232459459657644841506440987647658279465435108465390713655912143046640850497595718196991968221354394686785393033354110402844538431409490124333353307377234680582763339732885353963070165375855423994687832853560487420273262215801754350005593362964875413448960356709160731523352421708785541195636398985743862172613141015308002323225227681401985079564155112269599447626804250229164692322449731931511269900494121801290833353395589989204874927352456282940906989241760020307723091493976406573371422977562585287674786286383067686820544859249090410187468453956669590512657151572382458911047359447632024865874305461862926620762200299228302274582146745966796502429092094446610782732315835655441414844727010580222346011442816713657917015558048412392709008289335878679385921967720498217214281474521527284420915836078616952477144946782459890723109854875182058590205118228779068297720700770545096950772392835890250631596034009201733795514988111010667700000695925774553555716064904013068424539414138884807484899762055572039637649927473576734840963128106275978375517989877974062605002943616821504847580629602586358552735626163798774956473322614721832877225675356236170158121147888330000255307069361484188142136426829044344844354089996440515307254260491768190953648386868961545661562066989071318677223321909830903834916164318806691131548966803868461250452167328967332955064875725595867098416248391929660783078593765762505043658010974167240784439038126062751312174455631416663414358294739713103646567842332962136000501696445729679913028218827845108413766642340496909519180786353515847381349935764264308523365809260262966205910986690124841329633169334073710360050011876762122639800728569784672114741118915643298777701201737794880841314909873424341881094783878172227331566019118557222886330926388329420729741928862399262804018938583091808213025966682774212882920200654068349992063447237730164297951833551401007020032513006846316639033027854441601498855661251993078992699289163683003927866072163579200753311400224801969417994463362601972429432160017290587864408489438838805382655022365323678117673335145481728702414844097769070084255100986093385260045333896521936610429666607386617575558428075479064853719405819426534064581538372816966757802363118550033349076070358772846964223205541888924678052532609769333286548249969944624182608557218165426552930512314145911749483985045844590933992794751415808706053169587251037608046503575128133307578150049546779849919820854039444743878777921038800664946480643966152453976085300427244818378048941915412427751663542831137584022515500068285780056841043982949482116529202710275000294291665600673736027848722912994172193566084820652880496421587185846449666536635553662056442795872624229755681566087244190338358895490494266882477728738191347202621465389658347646580664575788501059002273216953995387787647929851641256889366395753764097429239179264488411370172857510457700092294091773638961837572926809921402050074111124971818793624819755877986070132409432598681552896234508472335975059535950583293241151175097061084920643475586034305893636992490368108798218048297600965658771836695462147663977147859345913969920714386957998285002094295211005581783567130031876324097057180550110728287638876009327163440037222168005081475484993391136103251390133314440209102575465296730160348601057436364777828064539410436867962383332139825701152578635209509632738253600580704637674118150381621133408440114376753779832158118774739838497346686605191948274191068410038558282421086354620190950533441052433961863809442682513053090209563070068531732873415922486681654749957370714545973168048953442439727266667189449038960709000326330147859158976873313433854814204666348210289133977408932187796217955961525862290575367967551241767943572488026175309488153113504251430961522513104820283720723096773429795221185544882980864452013293374468868494166166543053254345310468874769968909423396363652218070969544587996484474611578975075392120086374870042191959787988911931254921369613504755960412986570707428793044841439704313723589567614121029281050493878187526369213304287116412063747541815873763781131123387409930603666735393401712152902047839663041953021653193185400740118260808357161327753383672036849896630360418119156589503036677977784222341926878180369366636458498733121965350198757825954291459731686473946840188911338167811512760686487857595978008290019305261458826161766404035340247732564283255430417310108290438992090458198265093589276702696742775833261234630240770107293716771517046683736328901421003433374607697957878132180680236552288857756326094622149697021824022445504337679925316352544207172073753958614471708894428187345984528146012157080396962186041211919091644779197836770605637984882397932241578081261144088172749275904380863155807517157171170317201192948461839986123411938549944149829016020103411065665451248855911988490461701623345455782986524143258042348930100843767949710382297282401924292906461158175027424717004386770429998916407937625179173742903457161760266033003988977496608622784575363625530310764726270545101233291059851480248095651169949802879561456152186535502736550557583963516652565804028133588637349143513330713720927681343270287193646888542000769784409384555825868853077026229975108556096825511270823070047549513210940639137507529055315460850926246060292708151344333766621496582791470983885936084897340587629710757476383106050990438846592863541716375505636337868159711378043019328223540117796746796666175410417209163677852078272391819041685363209558303604245808126803408037292579307410169599894430298929509698886326035240183522090991446669654739131894028153118546371898797956582757545047777137452341888137136740090322015970958018644860312662915376466605897233929922701908081739721388306507340205113436881506292239095946807612642297939651303082167980640139142306113758866822605195588070997933301587834713135014100775671791518605085958810560431920630995929269811227645139245894017700460790194735232791462737345818156320552086608478262883522649554902734181303667471340085742536910252285112607297358075596779611926534958888071072888516049389747832966127637842950206977967669432723979949907873348915075019196457104225605271134854770817220678620567706304264591074339037398858746837513993856450370487374794345786836491927355843253449583254045350282013503906946666560719508409598989193153138819966082919334954885928623365921776014555376891885277587627561719668381048709900996438045910638387036958981186461102912396312693543515967030652551626461688689400183012329415636062950858063972721017818155482191561522638229382614652038725050421548877216292450774268437800230912666488248939862681102110613916569547616623396680553567624076842600298211520086019318160226247543420959886944942927337260983009514793822120154341859393085821588932057156806270620134435148640984447614290720143851409748661855752380879413722383574653621114755192160168594620145696413825424605716835420815497613394910323319143010481142321183197996360806899578458300231672522430567243437247685457254546544632133709872475637249664513958872888492025124262728721450144354500618331376738373282213345142568820264561115289593350295471789487087141364301589725848080728007064546299135365276877829470715963111221525963257093470891242359257733764705685140751508755167320479367658676327734917891612528905911236883526694430127796510518218850483709374308226644043884528656533141322564240485662087490346269325468778848348580887038057399593213590606815110967030018048630511433825931958916867509370829713502582752274890195239461735721588367226472878664963228139397655885550216122595696451415686617239627807393973527575692038763589324642985990876043825002908764282849348398715441150253130863933618410117871832306817730503755859095900079759401682058963004683560576656720226870217308962958465219225100969261933609826992606926709130189019682546166300605156702854592240119174140426768968384844418426606928177320077558565044043639198372451128745231755562755715770323252344052887885042234410590890172907537058716596942355743114356088309336577038997468357713270013720204910838007454284413421318194652899612254111890374957115360854784990446388847194187933563003026466796495320500509451426110421090907474660932080450715657508435304371335599087892786381139064018442904665956814631008885622778923349935133214996404493043090931038688663323222760548507844711521279671381168186036749419387040928700798676417437979952834322219224789607147722524488789427896753155132278012621912325523037588466705480689259351909793092761050825999820149115034628940079636727995521404060262922322815730353458407228959561376099287466481373453575336716616186669245222197280962065878168357273622776344894461118052707190559086083455322699528616410204582882739818294856847194677099999903359404512639016655836552307909847910192875718314522475389036698591308752521066853371509140106201109953450365557582903535903041728097941143242040627537506044132725010941229867018283172901910041020189825839299716437097931542712112289001480521887427424082815816387902060931486566622117291857992150462158414702727322379112756226652061938364011270340917948573117109190694276299391272369920813282701450377190766031326623313003961372905163255675916589831489473776917318073330868799033405010292843044142265418549799265073282650142861653836074359023920122364757924430697723759599759645292873332538488001810471085374139806617700101694705867642399736070551623930614536618647328316665152923499151289980770789991018878970115595333320939676251390719119634617646187984139979030293990236587501615753897858380180974197880965433044489532420201455814354402203799110580855674958541387812263734471833980822548571068873104989798398671584051950044379931021283975540537856813938674411071878364853422045061654991311243521165610693554527281766197094005905841846957335300016265737247064844729366985918521996602935523951561631541588692659107623387209038545110322898850252929827276137847163783003551921176280709182094522226271692490727130073709212822874989841837677164421556860277585566476475435921473580045827041668098191946653964342342438388276668184433016743059570449085812468237029224949376665808709135004363246059698040098403771759175194487395109658367736347036446437135678718457005727407155172294749414467185982214683938597870915634169902626562217248074625008771891608356409664426729251062820836245956775656570730499803035900857610286771617038387434673956202872989899121793327922983204971838603754929432047473483421798684163949524355908163976163381387846509296731625160472626856499228115384562823414167566857537873918331495268060888771716361198458728205428157648110547114895241837028360949555532730889721754293009606769467228544012069183341481784153014016684313845971786109391228251694965379013068050402884162248170774916549787141448116108777693446708500204720886328795053475302386554197976446263105012836766998166676918965781821664064035898430402040649710207663012094482190683927158577687972925282954475057773367439309304873651326886739971579377358343078223031077642176777472003041986615535866637708819323250867444578305687666506010995553489635480737667046271381997199700242181317917283776012085297762207932258013666387917036756982324826120533090862297351161842473014840285985739433855741523977768508196024801703021433364580912777248302416313182662655692209555988373896434456548964520576690956287342368385211888861469850065475222822517147142524530544925254738423454614137848589515141120585056615480228622613102867859670851100902275699211404340454515176545106082303683816938324332022377581303169239407299946382729889402654034897184141656996694590223079689697407652228734092693177838633740461751451930797379494861621007998787886772715358883418556372630681159273714835726810946056479682584539368220250649038111216493762193865869602542532477995173829053833630920127678605780839969046052586467437992338204034285073943448434403068897174386629833816601806149950452292623627151836622368781283148730088690624221485867082221353140525382969282807868561078703903391566983331551201012027576494197915028962321435413214030845217919398382525988175241196788500630360979644760453438837838624283470082534852780538507424302321992138099078988409888098843544027184212891013749535526062494203988623772397679870237051697842564990311077416801255478267281666113707007289691919720849277315161152212282909685444963855467989049980261627589638187086149620285545438666089588856459981098078595223020823935063243037449729224742455239334930055607234653450475334425384734657533002085804191286162631966466192357086309138099386777694941798690036172713322363493967338640822969873528569794179961684536765402126105492293837416725046588729594355649683011193321115470169443905232271004962680892839461027187993071635747876896573280246021867886518847985893520407705882679797208314735373652845069692506190395761082146024635542131549173940700974045601425543530427330704301940244515907753800332398350202042367947592298232584439074478278691219001045931626244629239086787078756686757770455425152767353079216069875868214289406172979013856608037061867783313620233575037386129325495544909050265423842274824198042421550226928955663179232750671956373456862180676144934164148418816821693725003933751147531001629389774106951914639206343121815979946930949209405209136609199068244937681933013305460386245895456642020230745755970646060248798060570251843194817454488336863203860033438003868765278558119001011923119176407240899251611155360879242096299776379533113807250651359472751763985965242213686671535290076199161623506842458817206815619824486549746879671691884704918791134598276389412818339241074649671720741580955119530466851150158989035136013986641911863110059301848715707202699838579405865925916539326503940110077297083237942041981828167403798013937722730031756301199610139010931066405884733667626567983768513051328568603974623610793415512588187753834943796555270984850785324971314606437369587386225225455476794531975209214907594187937021559693720019914380384890516701494228851933773803483903694062393701203014062721504442549006197577387218244730114374062934772828204891150077727262590703813927395062576286403212398324082822740344373636639207010180176615040614267486800026159753404724725657172835339949670371432333825468867088087411581073317387928739887146942158641314581399628187524637403474482927862554171376371298213286099625061568308895983108894583617368326788993162145470902451483498057292138499755680610899905688984162565389494240667545921146171753775577136523772524476335668263879558098363719564202730677428847284939045517619581970231316650386901277525361498626672807997220469246744827289880428921150226921847807097506326680432962149247131432094623435431074103340690739586432216403891260861065622315438218557795363329825272197163330834002015107086442578474851047587765617235589335620189221161251748074670755965477537683305753024506289962890806547194189638410033817902076415557206728837922541155019389130001871772379200705919255866906268381670078962141678676916441710606385333498318290309140689842977554638715639310152415862584736381347129119602312932202326011182191946333150354908925977128766753822927581094400759637933510094231664176408595607553171139111673085380508424313654695391786553690019906905513659609104000991987753140350326517021361664049766647966643537095336798212408448946944078267508601801095303211583862862508493113426775957844461198893303917786151201596003490630851092052931914396590479954761998186004063975407667362561830419259896177786200905619417574084952532368223506960938813222788514065742359702367764692091136491800282591451120165312386097492180331661914155957698896460564444125186585701889968358200826004091310674244167809657403753177943771087932705841002189961862744330628558979514157769225362105935228217487567878056077714836769325070061188772764800995335118353190520305717873295709071332584728254093321884571783230614065159283908353407195065122072501862839351448513438181543257955896928886946443560244900538308014714623554660667961645230468950539159159429470720931146797154805464328353457599314413342891695110158861015832255810000082065052850803038263790929140767020990752587228846888704042423648405177644862700756702496312569035217864441598742348591697488458600656688936077755062718932804845183311233439527897907401598120669709642817478517482097146273228606131495945763433549675380444271604779265671513908273061091211922854088337800873318605305583719365474109206373946238802383717295654075786835022762876710193082545315822007912367767973853569431699647668023162022369209065445367013479459920248213295844792998862420453294964477506696101556616864773713609201552359419201813949397880223097456627147280165299838261035079745755967406486965838507986684266765134351079095704959478038162018369951699184697773597200164422950559308428095785291511743756430806510637713982037401264949309023298956665940746796585915854187279374231162528560289849315899097549947701343671010710696384901267949161483871862386885629137732228235760397912656574892345363987459803866400856895839434290782515302067244616794777171144662580594372526857447400856527332179043294508291329440880993354447741710306886792919764477243154304885859356703070306830824859636797577680324395661493162496162922760079510209322652515693962993644948176184242551143630903349530037675139487939649346721145186596581657288992486145652480333900145061619925597523948903645870507826155564881746231263699065114093815892962657460251973745410881396500196725323459130212912595660844959694367475724550636077017890025248595710912528966411308912856541211209619335414863524542739807286098638491830959374144690883150808591677145776405976316526062551742383806049875343379985757945925487533420594158992182336448213195869975664884134538210163561987030315291921375329955120803794537233984093733608604187578959802332872956272763686154817641860726933926910630930111723889788541861265797192411351045563787714013997746762673233469914760952802683599410828752977283902764299700402892336042092295976331606016135048235515225315688563200483951164890185914935873506868960060417358143611679886532061737401665583447341817096209125136973602535057363868460697800983225931238121267064643450353998458336127915009743938612592248623676217227225573511709346179551630825807688769866854464568482672269277069776033622439829041289933645882212061106234561579535906514588627148968066099532138015266259197773837972982265805940049243606793436065785785141590246605358439415324910417930176843666968991989669093060956822075961989121537339641202632325541687714056976726878969823799575839731590864667086833544523024678639488769642656582933199215231305684241864182240928449332669950837008289836026890448784956503704154448716290892722189285808846523632084387906332223713159649370869621463595317370486923104982098783565979026908818082098544860133827026542403249318088281746525943805465463055135426234776795589504701337087958381758793407617322404991888425352297089919833647376351880702346998524391068786257602709590771880254026500606403481150925933929806533909508402259407391062369090236525986237648749214335014136789380690971434321049835522414931974853968987244161274992437092950706887965340999982251519326785246287892091508615122963795899212500318955733155413387090695251511854196047966053436683517038249568006769426994058512897068107772540529918517357369169587767306137401636872938101419246438618758209217326080616904795573490025631075437990472721043654068294819745053748399202842124075248469350705973294549036672230045412852336555410630245764279657969880891350188307563053433489230114426285018070510083123767059104615510813422263392329968982686277386960186640394339829632971967219642266561133842479972744747258345397868873923367210072090531354737154489774717624094816770821624009092143625302122748099825037135311604899570384214316526476065131278727935776452060956842434873995931210552840920007110077740629251924430517586589332645577452336677715531472039359433008240898751826634058893152973013707383507839388907222311565967234740482247146846910733343073942400891912210932904572833617825597841317115203333467013498597874350148793753251109513187314844485239358740835697224508596291421659287352699809542607832597219058540975423535300062146803421343345667667047257410418901409616353875189393613926321776937693118916419100860285570774076145118639933132639812736468658766971488972964416653498368634515656604152857767950813666004955013862559342898779821406086228227383369926537289627657242629643761532425843758196748421909089734837789794312523586405678620067333483043736975907579784436365922296229756285230712233849327660386387820273541800109911461915950180299675604703469568266333672560279843179364457585252013198199360520707290278446738746423926618191660123322453963666818991218069494046928808001751965150022012725335742562702160441036891004529662568354492755763841287177603454671893150054735940636437037586311782423660499358883930157403287383318660009833650258320282341831322003342986137458969985488662099804307511941470274919005386619438622477621908048334278816237256082216010138307632275283128420241096524585294131649233389276845113705046779539310742513108738490235526480597376635361218814990933336407423758470685371021074143692693025574251571826646083090282420235081353058375756661317408242599214582649057698965804459342228201449299560529259323410452769140124013268071679688442278035222492383060488868467774467501915693778870523354900157903947329935548674667722737640335104650711844291909847720754491213415401119391197211553988761651513041917202031475692104968316169696532920808321807601836783346699081136285663841198258882842187192554062872098581791714309228982418831530260867379090983581856187763935548642798212212591303143389013054150844054152948483251476369151113648353289162663217156958155165213217803701581447084999053481182079676910894083275178026926201128975210755818606711121318410435294718431153527911668481646608076148791413931657253530040920592245180447312600481077081644472522066757783978952521822573444526862960208949623254898636999260889572244954384890183570941196843130920218530008509909726197704067448594334867848841921015821544978514515287837402184841468619706485874249993856038540024528081741658045786086373983147663663882082474326976326858884743567309810665776121736521551611476707087790485229641813482022483820689562792262101871869500027582855959495097245463758600104159123641704838298636870216838143737618382348566397347329073568967447855817071745749254518551137095971077709970530806995889985353365475319813518383609192382147975075587948507070107907425601681527421521654768227543520570562720324676910532759828373227602126565111305536360092445584120473965099563302597952380468666504995813561369185749548982274439972940399017649689879002623906219640348823022406968722101686593288931969816510653010448323319802087419837731456314582219318723579040435031464569808757943518843627668067926235252432869463593573466960509650266826002689713726123040255985068685708516017238453637900050608551721155399278286202479946149106611539259429553887466617341888855298918234975464425424793887481698657481284262811582009949710348018630824528181964191596918310863354248796698342375308747373079967100899194087357587614381687144246596265415335006249259320240058771795250557050914334054298715945913246024681923891878059876299338046782870693729443113357225568457232132198933588149499008312975533215319052258724312264267681177246770860071723576488454947734427456751704459054584957474479856387632813501019830091769311365057986435274623954451847669442190243353369078053806631880040325245184862955486481178310063907304836831685488801705134226575613276700842868612398719374828928594995245536324008744781018094255570596074419596972132267330223016044861410775792020544704465968630330916861921515348004667837443582356481562174371413292438607511719764045971964220352309456735793811832791963113077986393031131971850054975318792452323947150069879544406447137464858199985455536621047457908245802087935551132876838743800731261355472040117497964685293898295395201247915358196949657974838040928921303328041216731299303771373297338294217917004692367510133507039593443234196708609215868272117864497500093260155006640123543232106845821156732347203938357110079012538001567027722643577558335229036616202725218111213758224918614888628220206341597244587128661572058930770349849769928392255656165529725882009077837444146533022699904263250802251449482574188461435055410463372452078204347775738724684948106140046351151441912240117975049481651935007761759008230809235327899858872656790164578991759453720519291157768469901197162165600460117226157857882067721470275871452561327877331889035880863985632191731371616821088432913052392453919682860716030377280260589879550092104617947120328991345277889802002427841823631942189425005091142764590304226906331092453485033026436411061734745187116983453348091300167819438697579310941688831937829094050927555246054838420444857357629417193918900127821299905963403675874322726504800364978779085178620363364948086207851930213228188703272696763945173557933018473537708531526700359257999806760808088148829947084660744016972165410257217835068780377222034803107935708127994361862455947365172735849949266097018418607774029631305435029609207195006236709823606791535098550045408180453104672872284161303996150194243083458572389988478244919614000853737994832165782373604896196678595848238369231350668398548687431516508746399587111421091745018859368305494487011646131254872536109903325370011389966750870226489093056704980928926405299625266924692484641685038313629001893537557669500096251861600130821391772174762574753449594340997318974007355082431913052405528114817059125110284522177525704446074249581940572085538986489838941071486544674482933703800411177552421765461827487821882107413373587924270223801289619707102188296281971022397684610397938083334158799989618152948558748111731039872508725828938564208679779622659278091623632396296336698063367069296566520804865566354615220493699824010973553463521412741239953253576192295489963622014694944101546947913750847956308314454711361218076945971146907167124003297785519801705073292556516259052582045390740304455023488997860359255332850283459027478743355982240661562788750524343774198845426931058744325639586232636023579515671731795678401648081693458156479527969870456940094524944185890454680188789016249599585995227340624639623341003060490258583690769454294523403564755998310537428158992362264138654915358494554210746182564868879386483815708010547719115193833108056435598614233730142897101231112569187713839836007990874364101329103226711973828543405887671776025219040130163994365693333398855872387933791676447256533271868636729695057635777141167489323459098270514826438704834796886437070429638414695163564004373470952886453602339506149730723470507687705024955168136433013162214574329180539976262005073948607647214761292374621646031585403334140911067470198801758848538718963218501603990860750544407438048448561309839119298002568560731988580982029464635577630199852903352656587566033998507141929339265221787215051579392367055246563920589947801898438237875486042891857138946704068498670910903808358606902576874672673645854798368563266708282014460686016646234460327139914518893212662012265443299032055296236872061799999060951272049676597643128323461063345889901598832848400094175323921090780036317802461374569777473412444110195368160049453414817889230907241955468610274277632095593119433388415352200901738558239289427670256936413625315761074079688073574789598423709750979485148808663202474935784868236439104457912418422236268308683082753837155744126361990005583882412388768662915132292115106417036865341161837845188023633111656157031421434450465775369143856998773464121132923659208583344931387855296091082116129337673749858421979829096800073159966873669006198788129304096455162574752690502010116526119908608998776787653625059839261149159997443986790516637672034616068656116483706170838126680900218973953161663443434948968495209195857589939788221518119704236024477546861245023036739527832237754766385942325377810943400011345205407024582850645577972515228205183206509727949796843356091105087858424422873816338190759401512255601965198411560356586722138560206926480504451911951924898605122647225712533713635739738466107715364517240791387622637155704440283453115690787435898259035788453757362195267659067462834613668260402400412852356523242683396608644627593731696639970455275849812259640948650511541786767623145747079336730015432285807159465935682051969388791686863212285657993706677659252000831632053950455347107667368569456157150585297007950872566803240904357622473323315260710757160988027561692260594669783484852282577291204377426114710178095860501587827394921220820244263058802785880718281003051740606731314199013702405432386286838462470464261708875344735651922694096170656498016875326163877769420272032308200294783159613384326444691599752308367417714885281660713208376528796346744112172957090261733447280224619703752446894914171819832185698338198813701778765997762910693371832815588022291498118514262721823470747081746427501937602022430113247399619847377580661670735001137839175678596677582203779405664514743204089142588775686243212020279208629053986951876341032698522632272573593680727385381190500946045722097412808584554580797111689058602815431388061387607619114747670828819714430395433904828899382899620644876077161339416895120283376942759956986654224483036672888975248475905896877854698385496171583641560359981441019433921129932344887591152109554201721987362092244560558792281662811654169163181378097204694257800747953965664817717217352227909395856751437543303323001674513505850682377608489179559826573860767514269716371162054916973835893653686880521319681343125808212598005403856983842576054875858971033587715532745040654538911281203871261560546600287131431720025681034717823442539336691740989362460791054690788749956669930804416423669995726190656842756077220644690392041815273889225299409557238708755686388353154996399037991189778280411738851486060622489456612749783769737406773595600588892256955993751278712324135998813071507324996373504107283161706129676752899238217083458993704639709388434587529535271891295800511244720632813886454036916548736883979971378403452392403332161988476360827029788353532478021835730021903927517778256360466155658150620740272439257386079152574257982065703546363535751656637441793325455408705327307061325982347734354200713609575373531998132776579540500021014428989504014676113748391062921496630309550137473656876634492644149653518037446207354622027377559551166331129033158031132835957145084674254608229922378998167100043817054101646241722836970120986304426301143307810447979730660144922920242294762863648820598019588425047419261283710240084499930087942185178596147545906677433516939517813595691233404176145044911218490812471138878271166396792713789557486781615998359743646687176335907698859811060397372910597059138778555061589677471293144645269631980482195415594730957551735565317707083855944659526389799163632630846765287467449226881640308856035020011086870574637930871430534303228821129874795542623256034327942765524213388467152415900167342200819014836225442742698323689066347808330326213760181840311850296873115910027540388041857831828894387134340590829322171145878206905432143885093455347564501985198632802288935445454805657823950947087643704309029577297652264422729126966480928215272224284529963344295668923408200173331931635712006373630681438978792593453982273026562915314935320783701297723329757142052954755893952355373140587128371432720150808332517622069765970480769593531637189757228300756323495927267207848744094413200717269296268482968987629395480519419094624662986868085440524280596051913528869651511616902176511376155406867784574593805469304507375080459273701942365773485613465928345389458702721549152788945897448847470152707237697917607662893840656775397288075420463031657356721987864329397231639462631113066294823308148705285882081665054347100374042361559037371001252572989405832174201633761315723342139164072586017207109276418421489034677685705976373289426490985035605435947857100375933207983730460495059078646321135520844642139729994130900690913460155772683081434848381306818800676151324005970756294276453478436316191551243136110168678053405303204930050294912045022025128890263285190502181465609664344522129156915515150373516729511497120379186275003443461941138799223199211241037638984300685124171407538941738972786349767327143295978155428637986440592843009986945894105254340395384536729362689737692902991879965855664038458575097455303315153278606506320515448281010316339601854851327577812471158920180460895686950096506073090515832141272817928936356980908256477487601824908755404589972377554278465146261174391077214940794651103380051597566132678180328847481409263925988729599087190843612950861860163785440809329492327979378160769557220978876034822599713812211797424022204040474593366810119827069074151864752261284501658935741427564235001483816426437362946482725024870746674637101974522707076815107538809488428871597976745556228093405238989979712346449701335839407393332109734669909119187200128376658958273973734112989202808322272804572745731039463961370061385148994485857718227604868860991155598734373937925118612868447963166702846278277883576067629146867205240580112480687675962843161442528491995643343373557481949127679995852106375067906102848848496321756983741416763985254786765307989897428315379762241562980310172890984332451084857287465959234650081577062338436657349097190732601250983954505840310047537159078680466384757878842784630936068500752419153690037844461095640566144523643483586198680622208210569386802027195110031036259272419418799986493295539797975203706907321578805479163762170346977459164797790155280013119001626024428028012394374141827286699782889431464823159327854705762550061203930369628630123236934855521201074383264078339074258477937206176068817823532121726846132291270441407292549766939568398523451263305426987001986316921147720543633965990204519855338783529855222740599393861888158131364427617143205587723358947428868815245233903981759615655610963798008866859452161928459929847143942144881286818739074900708481312757801439884226926518601615574756372716098677446219619167648782982528331439813392919976499091300802990016995877361168401907073608181734655524401907302214754965936403701499718527504963738606457076529626701400170530013603979988184347089358617249541156544171138855583920973536991695269491548224141165340250923510043335661164383984964451746696530486657946283545390264970603853223736865274822354730414668460105470363330037582842380162233996388192089171469041410410972872735735923866962333135894158159871710547697727509228541705571322675627700565326811505125528331665217308028230009869993673686151675645125604467883449516178079818536108489277406018725259402507188614514820951708625148032614941986794627686747176596515209063598172363199850230684928074125002518296429528528529575571535507252222322265862515192655810877012200891719476716390831923760130876085117312171304248767470744464125078784965442414652983215873776348612030572861463268177778774894729483656713041989922631766526226034151418124373551307444959684009790673906879523902951428666760652669596969222145718771911771669145590915220804903053934487507201065579343896525265119609416185858050928416899527635047955669418333381164541596282594371164182448410920978782356030574791654707326778233030196834431147856659150391821084625008647903511379504902986029734082328553546342941433532721402491772331344857862657323733608305263628140212530134287909614219318934268037398034620300937484996833291470765590581245426380340049698704351054419193340774056400328560759459693909038759929754670068822805352704948308763771125847380775471094164823100048425631158873653467452914074690430333993931938181976204580249901766123737110275775362642801266631892563050058081462290795938719745928865979181417022530353525606894588549042924862035898127811686776544361819247105151589929844911537318907453957163634733063344424217495536741724806147592561019232060908857760545888564243125960953610660643428012618136933792357996264582814378737822492316639134790666708714158500340814308353966926691443512242210574550208097765032025548318577374340637573844842408828690665169394086924791954034430327565240742106785063056470667500567371458058915410400304712228280824040770222394206591809742201127362600002024591358385975652236990377858533869210903254250820542845622137678482372305001844776036495310559370722045540729441902633527803140809407638909482096544360788866051961032596921019196688444977964798662128925017808072862197596957410037185822591378589553370390139975522682460153176892298493522663996566290273476756400131772116938973997735949998121145181587169020422378156686193038335069502588968447854561373166242664859459282752903049508349195563494065399123681763644733068525884251525307415736289297027948395185567398072124856537648927021953786111036387523515348889550669484375497421224011863172529802279842437411570098186103816218837442712047767960250783079756471137440938861106050932090789106816494434997449506300474777733178640833902836264545193081390768388673566470561506711419226635297782150302634005217644732375432540643470106223792842309866167361033296948212711908854236968775836363979012245711749401506329616093802453867044499272883370629846457023914197746338531885875091531386465650538412882942698548600969031405933196433756692446116138457863764005686468283319520814171561861453062795778388177271235633855825524662466279188034211780715926994525438194619784360078511784171700442014049401674045191673355483581705985474505518055827206098054683990574737565224197327554537048425063190048606965886456691980689546079152384778352754848059430169007432295000018933310797173920716615933389107124045578791560976853031836384512345148187597922865598990315711803165056685855538338317590213962914121438847727692012406701101721288773131473639328382165707449685136050724304188448504051782983838401778008412287707307158603986771809600583807619414042814903890266153927811981311743386440209910656051037190635614535954465149986655422781760595848669313137521338864765527038169238982031204081279519262881826408770752174812267011361793451643569460594583138342560659391836704625949947218935180285163875041287815832489426605481279596530503837271687305057927827973395220176114749484458405804202135330220745420738881344563609890622800388232392243106862809212564845319391412207554645166740411648580963495856723937045654917908921127093502296045314109664568840749866151032489926227820370287620285741445957899624842436642491963846991369176589098815841347479992390207232136242393876019860535854041708190123818273563307999812039867815735943191212849794048035407891533089361360022493019802726944406938659308897137076780115043603543105687612290616973593389184780788879391410748225290974794519373720015579865417546922168434435934066558947388071229325651139721339601556265336588065411920393014449298634834163730004062664453462744057924147068695900395822988524009035515679949875401055838372301460854888977139117158381938108574417972934145207979049448897047315466294811423937360978280410144771201971171042295525071930418117900021436748985445981497623545687588613931335405832017426991638954150951672345890732938064886227304739152269813714074468196760747384727902589935588186153501802256117884823614373162904016513589704458699491643309260818881126044440825938029202525997036547893936262916475886239049164655563443409904856143071056475217656929382069067417385650845986674139987591298283995373436454893770352949742959413801119430611329526030472301416298511187608186685493623031487957298302286342890340334580248986523630989125964266894117387532590399322155116985205025345553261532174108446127907801092969160349898032160880126686375653130517429369200253427746247185938031290731736995335621670201918634986665228753964333776839718250615582140640990099332632578863505014248318357645965697214274167577024842462159802300005979323748064769186753740213656517911453412819741010418538103868997561085479192383514746712742939365208450405612693272960977927732338989524270887211472879983676371402996299243303987462169859873238408410848273336237263977173913886117630407041064917812867379760212971742773888683599958582556329796580652486152630963903861200878371681674367021758366567543756810173607002142823470176137653638660950065178285492329885467608350661757490322959698418800780028309526755505820647905084079511872622725162690944571606925729998725584154802721106877610180532719526544002819726904921434546152200667204638536759959870257025120568684608529425394464820419591113167892519269992655718259778185910970918557417986460766194202621843902538211382423648385812439793888555719165572786987172880212819450172492572150647160319083638842354775336514561548484698454718946997065075662827825361561240094371581832354524648951877500050555540720936356731018850644030019561306170219919582158514222109344405394974197357094221576073563618916775038335582342832838751223250531490751408980893391939922300185037244304970998560818511656108254661489279621756062213565921290159365611890844378609528025825243346208297407076516902532444215882026060263067081311794160680144244687367094569816593172526064680466536910121633676642025643657987097063221369695733181045843877429041192718194258009599026361811066265836694517606222415930546648711247130792762540624180724461237597261523177942178346662745141917995951336298968474787476621939266981984887127063062154451688212610357751356386632854060162700840932606618185106885292946510771087702096218138812549395947093251744686872821267622637209922124707680927053086714057633891292182522355559272599133530370808722778079185130707992115287394662777755557072189413162775505578601943238745813746643619582157116411621532688220176237887260225298261846889807833295913339313606595761904566278455163597674913691880648953645528283881949340196296371725306685977692109101994125668149391639240405210529963498096930442891333311066425323739121258089269986753541552894969113764041681599151980646200731874635541480976032976525188694354858848991877183744131817653065740986325347030672663887096620002338308169509213019930007021138823230763680162537190903715124247301025218773347823956286269526968017692145194334390522067091578903316125161405864843262656969191567568763518508201417764818506996675299736005023333673301788784561134103497956335895079024105295062273572854283242923683839848614248431774459269185951252477930339463146472825213313996198832989261249452253487544666495418394354248865759348309755248418567166281023404210046120615032773319883263155140014341668183345000082985433136106736853232502305849171533868607955906995398500052622592528504608431283280956678115669738495403143517495554269272330300431165447491150608979508883419854011734009251462730048298916793225689773327693223537321771779958297358789071213250470492033420235101227130711289213218142825446543205204799063851702571759817440647639341583581337730710163452591081130601055338331469998273498906839501626564803400566314785692923455433405184740206379712378968581158280384387656416577213896477806897016111195132613563987744493769559252781756882743891421716253374954577162498169615002161331737291316355353846498253363547067230127039692570321866342345449801077706874263626044872729355925716262130049286368041005055598730151605204187203456558761909943049906880143161387410894782414723729752258736421598275602321890048183552917839534749471400962337097236882353450022695980283052914832425186633023047852632266760275614779692090382969504714584453817019209209735268362447591540886276990211546387860322764217849056830372807319696262659860160981060431922076878931513286361591862753744067786460470737381168316626962997619875371336842609218804916146806733278272403449745024147506194788388124764210481768228346912502326883133650411337338909855532005404372144715804647160533093212143424749686298249280696958923270048666918113367533420946479663612544808464080762719403547054895464362926469848450040683047072531923680663014641350990127226797841283819111157024913617504869990505039629141756956010733088423578493720332723438392325873688463250204647209444388214384737081744875622595085445959193463376643640827964716424796738802707024407357944700732774487518535372659616932879141539329305913779465120184926515731281911224210358771344960617390501463637931459544930937883101236325460727856677327259290662010946717385917189323662304335492094489047481568954193406153990608753012296586327716730990327931054423283386231591766882166323858325978092053398328496388786684211007447820217144877876388251740361667221684650354458921812437394637225498937755946970790090801111073341005882090000540590624786359779665146259118253744929880325399792041386131493822797400624215703925100364806953680058627762557275750519738915449959526539652353307504698039134838662209698746666930432175878230094964140917123008307825138580170621895494047999333515619645303012357185847090331052822714907956175396075034014849927008000923738293653400259857589524317640916499406178328776033103827721222202223145795088036959942267263649227429144690733287643037133910761847784301630582854727751261591542323268946296040621291013616316076836223137210028758024787117931965020505686310608975203474897703533062499219124545996312622154557847612101913951962441483943109723229725623884606994668084968866193612740690800421383706580039762100773896672786276671612811273207350394168152178192384206670214432802678577668683917919652208812182986374457074155469735164952046991662897011698081994594118854314286823619629828854193907156564881462867370928105852779269884232686372952950632600092943463699203681253988226154611465990103420963639970274706554946579272832477896563542903482592335689586311330712188310889558354221701302528003026007434381032391864017327232435536383833347248144422990321029155798731840420643922246462579748738635648446406656166684784029633964600851945664223039610209594301019736242446118115731941946216222816882079567354977756589628324849020554511964323186162168723953673228323989651584868364858790747243502290655921937899294165598688079453092717372265819434671501912003043369923786977544422114966976657481005915319366504785911394198785907427412610074680890197125072739582407886277583432136050831311649992813760416117301180205007569984181758518237894155761526657296023450936653670319436893436522233933237333174848086219920645299451659056048470826677535868309690473728189566756816208853513410496772123083104804877240324420069849173435405423208555436669708959258219626121155821161841973774936641913238285903604772561554331103037739722548919421385616209193377615496122059400979889985385286824188140568305907856589333132790718537905600323644443504529358801963326128311276099355942643660330855096770726566668874530485239627996752947599731146575418437852369482803472809664816356146472152670902839882300448770928846483095016399959668879429440995989475258977881310414043581676153919785348846946378699661857812717123679629226641490671140379319202377628680586079049195220066581726732231495157497599309736358208967151788084853259753966696521766949187246268547576922921309435337957339457330177170235847486671982500655979369791566628373821870813120387696439621615939464464026600738706466300162643989235723144334636224014803253443657347660265678312540721017708225090870060669623564569952133608392276956079561087324208996218692386131772146979509121452302778361059723165583326885000685037846298023756433464316483196094735581727203368531202500092860091070524916664516592908039444984367393981100821643403821014054670628794230675755543603613493645872365559509833303665181708833874555290330657459205160816196353468055893701440812835281237869068492297057329410256428571586328027189461921290879525461010213218806172660526563409390576231551980100130361812246648019334802230282644943191845790856693019500963003358464505433939576849533220262308826866498653162503431015183707584794111706089743217393808844034655221008089196797680723411389704170322851051665849586976235400456821923046429778815486385317910730521679764263800948996795813530064303765428452084793472993506571452853364878883174902379294739515309052028669488810266106070920918998819624931858435128092199958450251602328154580548297825787374586196360037686852698814408904709461484071831819048285705741049467833108065964593481860036654858230196066516096860421096328252835645316763254126463084297200971996845667315759021834204778848857238850830408449497618879106630373108810016761509690980797677894028883901308580445244258627370122996828610180094920719319865680139846198363820368778599365860488087174339971863492265163995668529660122964804019854747535849372051122766841148227577626654116303000031651188093648180934148187725510582906543315166819623506148768296016964186356670960663500467764040976370416694539256262698723045134312724945173322069167264401811523992964367197201212632217107244658406260508673193330927025475436759034942109755208214160876715752954757708607668991100711128690351520176790917792651261639852658502765135247880265289516847093891773481897645442115830701713318340076803887352150673162590384011929323288236534619545336114470088529009268028509927997345983904908305918050491454903773342170847222401659264619508351611435966926728549866958477642992337741313180242291327787079597105130984918111884328242676602613798294917664904147294553215595698882623983680912736035874265001537612477567103919945072866013367868929733257081060304080388742781210253789813849046014328260892210401452587305847515296651696791108594013357553090773457812972796837776228068969587465927692417027595083205824332626401153679318085941030921227180436869956690920573592867860892810872235608414136959000921041005726115553171478960796000310087510271503492898639400280841873442977710320741172232090817341825512649849807053340479198586281142285020699518733321413626223353305779962058711487340445175566581754124211148149395524541899731398820241062299864592407404998879895720051111235228417049342417906592974580198838708763866463082208216659564123196114476394230958808492612234953146433524810776098465850550903317026387552702818995915979112343992435932430014595482108498234321837183085464593524035939785501742615201339890734615747987323473300328776614798720870820299472741649554649480710212572599945085708370720800716251255437492909494619464377684988356079102165832034706495819764939506443916116780424257325956024736033891661736563991391707688777461421527972467361861758132558409065838075430531277617746245815645975956533987914410556092700378012566371148442742439912987996688000489092901535348690952044542396016959800646672266393290886681245494594706697630062120661556587919974182846797981771853486826698477439883091717009600610067435172131295965732450407471734478836692613369842670879208462153217410285531124849451480629895827139095461314796777736795214743527824061663430180640688669834116028973380630490318167184240456745197187631288460220305330789755081757193217631218740138831228405635935621570013878515777225616551301889729742483145941515921199691702820210553452952354225497631210613904762089731550948657750571755454057623939336526335295339984251614168901681557523503780912519285700720607259904767180812188824179143517141853921247704545683070388970437766950766596197601102569782417424765326373249199656186578161204454990511714553491418537007982008473985960574392862371056648424903477570031154209195777629506341765708688510981371581050712604977752881278610396693879993955943838438575249924992958896585340978593541671274361416368040939696960753025123219772521213870277641697361427184699148005349515505312759491939504756222679944218302852328009262132356225384704168479411019820120506973864998388189368579113623468806636737680962911232145454182584556971526385783349793030314637385297041401447455354459578132118435831202772991952037942746602407124571355435141996619848515531540648600619730171062639005351581822688202206859124835514483736743255402330740486623848135921322278025380627116528927330278051530985134541473329121867436720282704326071573679572824272545989049187642880543074887624253299825002452934465940708207511878364297346339455824005106237807375409432381499565481615592544228912412927565293850644430483809521299296559518518761241409276959758170547224727253534171345822541738060823013358848641703366063801178110518249020372140912444117695609073499464571042883268089312531873976147607208477623445189971510840019515832657388872202404688292159404775126349888289762934655073849101182752035041365253890153042531194818482616614487689018720899625121036211975357487765828226522517757422858254874024520373042853360152288171065787515141985224018907234568361370743747672519255787507032139934747510383919855685588127676488897984835525875374598239325897770962166932631784859429577632241633013143541742423430650942793034687557094603900707727052373954246035766492563286184683168286732276248550538325075467198030107750907261658961152254556791602486024132334477433945567186005628383521840945440220748274827154531932794177217868323942391737462362271929961693415442462877465413350206192610569187383733329978855954482088470146114641784102469218909729636702867362110015198614207943085233244788356087280103629632805833119913277607278900999256823442543987216271000083271328169107440028365984232231596077816482649631786378286792146062338607986130741801950670742212914325937293184768429137694561775063553430971244770610397176599324143870662209374331781624147500735656107915416725689726865197525353072898485369477056910678468900105092957105949830402031887189699008912898889553000045552981701294234816727420377490610505431027906253780425660924628558097573133886983062327289644758414330944724148987698164291402741540618660560825779808183264660807258682641946146118083400852734354442372814698696134753370633883894552525468378340247463752646112187418416967079388927883471261817194736692743127014315568928327720014100618671057745766051063499514687145910493184979397118586585895022966434260710476212297153702846843921128412652865892463953982580622493052302077713214875780974291906610738237132879390567295382470817824124534602186042836257197343062351752650102867602074269829303437150181939990858646633955043491140703709480815750003163878398837714817199525028461937313807636145548162036867076103466069989397170318228005303538812172041474150853825874824324082722657843549325184947314020216600706111592199679471582010488701033675986358726483312965528593326171803587517706076293774266683815002585056789316075516494139572984090654486291976772050857335361431367735385614910284061667571876450787109818676474688018617018265662559814003276987559243563493940832154338241780245246227740201303399160819537096795698463047187420753416339688488882445437436905713344113824605386430799862851889985196631584040680721660633285318399165683234449782703616407110385080555326311867800311261392133764798139734761625646297341722276930083988410564414829318312482705002247493348211735498922021625537991978412574954563599059088267427595399658608432363829041272506506335883983655639020350211525733173348745815756527994431721413717216644007654616905183067189309496444569397461274880043478600118955312209197978512256512261431739940213507981162881083452613680827170738802037113254510519696251489041182193578274419457242115910676120898677691972359956322109102248522362788155396294677762604776988800322632938533005477373778411854505541251693542391484361668966466320381961698363089493280402415521606237590506017451554162438517225189340752257459505529463331292972974497358265382656330230862009674430832814084118694447508788670359907968404795512066628600004748208339644716972426447533312275868418321282419596303298641004810065929345619121925236229356697818669869617575825134318613192866279446056241590290039397269032516538547624930614125555340642153651608593036777567259678037947498977255736374375566949209579757405417647380315177107479753286940050745163675487614066222558295902466330064551834805824046161448238507697235137877224805275905807320992926152593090821380599497511308427854317542539151800244410076196526039805454569684411717427022315317111174289046690344907043989964461440486958222807515082337824676270369506695380694783844582225738282857150016051953197047769100598137151065881390002146604868463217416234481867672302070222584326338291016581263971433611180270331369484060873148704662588860977389643982317711977047491938012761831322397864021096821578679063890303179504853987145421373874766832639765663424309810931395910319719639636763374840549656059923471780192442781598522428916274814083704020971508120168771420048816124376143456736222411837737881745505513305829864336729782170694878738752375706020054543031082843685628334049491169784417921084637429186515067675364236180135239789218993314866646308084360690885555490583992162245025259646790059620028591420636070081809362402188441982520675929104725588983931079647304554103909390893679549842025964079141924112243460224152416699092759076500420949162133361895384773236114013650096818300592337348599571202847574122520869977326406766239675537990995594296979430705336985417128030311876153321518812962591100007305856052847890363156918088481984181233386016626731664863163886674174805253832116161571362335644901076730002090037191127241408925944639857135383390519990558815713269713274239868245333705310457783629781163902142087219909586465534281271477946320332710935915584461703835564860982401877026916576972183481803562897045739322571620012073328452202552622294371327067594820912598308681333361572968242848961601944533217342367161615386536711434442383909172438819896910322902394205911691148750882758978647049215048868286816930014800894190462009471089628768914356513723746045376810060507522969199633580839907329111515600379788633156293993944500800982528138517444607435695197920634642594456657607042875366869019170611086312098333781480322238080966612897755993868513117615975295846569082569520436663992667639833091197100236708554909483848853964901678439803365013243546113054205823476524106715941057283214547983966532769290132336933994459978396203064198247977325778062804947444762691716970237194854127917429596353309457717359956377502805136170301681368396691950146788380244412432383786340699520713114183904843821213659534351906239690463691004085137213208772263128045946579763299795311233292984777465777927862007551893649240798502959756500970408835514370918698554192406224042892772101412951604101191610433802606717349086421411912348922116208480685906840513770074803485412965899462843919596445751886947844330268205434962142913291499973082214305828937879209315020627568385098179365589663537630491161369329738699748375538141021983255897303611754615522708955230449344581913210517860660059842136469785452483692049314131119976632283588281857255503141151815174391564450031234987593103809713737225410231105042049013879578929497908231108736688537184550589727365637510642543864432957689045723640443257501414090326057254207867552214940405583525539334445928807312098935431184932852260769500710876850851928043781844686569262187794466283378283263096482017118862726584216026991927387309981411450371501037458678070892971480331157732807687839236185698724764402363700696952925164862948224835240498197361583152366965057722692539922593730956343011464232143531964191414740064535200661935135700312478291554054397453146381237356656999929227233129476420067864527719076335779508873610200618055080944672713360741674805719710628376036785432968693991974314835067873346466871487866495011024706273020245933268086511237079128749219030360202237521755636188407196101117968704786013392991205116664813046010288185617441193821729717802781424760677681635109529526597179722642208018311030949116279190914176673063111286083388953656566878201993148904578649196708415458251008116910936062092736703213136308700549250664918891822554688831605207451514742655526889330692401188138097192211418654902482325134033987374860821625792825612392433191627038599702137171560825303347539369897492165122319496123182191409623100701232494360571678590181205508929738305239249311044530383856043355854725949614198129534593385131515607538024512824130045608740455685500024091298064159403901088866254163423359188406248283409858919704813488156682514859500959290707112134457317715308555970970191909218393083492461239191370375128093477357615706423079840010455235718624485805592501213110389637758821011971869071907217497164288136435873758959026773869448269439817208461229187211162231596292789453125799867793433273876961429103396141898024574788546736665551824033385525262399107518810725586342552836441409053693216702310399165929001768669631781006663327219780202994205105804660282174432266172626427568244339290455975944731670032667096925474020136484833168480925261429850079396435599693647109499447233524474389508772022626065921338622074284583351007314652329329070034446761889717553875314092581402235622496455485071105163404112736539912696158869106605483106279831515619954885883795067724286317976475925309372506927020967808114325531090744830707427809643342443141711057283820400039671865550861013691864462480620174554935912913751897991870146538631020063448990974372044289905586006830890135337645934293814305298651822062975877249749130172404348766096992797576615517022362599560575615602101695842420593215774991362832033820124989976594176631165696644408986218950914751027684666100047915643329615866724366812996505843686055479300107785825326315081647900168403826090970062569921043244370069278152078602155526698667193725196041833924594010384638274706355876451613768477244485717377738333148830458023511970653243094768795915572914110082938051321618527791946768739349077517027012373813331919940070237714022117849473145307055459515611377111039499883826198127170456232211266859419032125543015944592147336346342851584937506050221370906863458432278784849342113682091148662951354273696734591222489914622664825956191213575607000034173601019370228016044856286202446601311903153082011197166868212776525868497168413436093832455158580177736408818926847058907557799591822153503365243450724698619746037674224465405787961705909833832735172420032225414255408352282924523819729755160172865671694822707340196994765455199288087265514476036483453058855334570644453321264934870741389114810556049906873892026253662822937227398144556717706921978011419489343516313660648799517037206777278877410470250476820025852161667154824893328488788803393290523943525279678103421840488981610010515153135815386536574490588558755028911994554643001779481446016557314271949151898133805600303163084423810089628580602271467254115568101669434961140593281618399418485100732922893712836146901388200592191176158746356558466639037379192695713214885267753365634740104242158756578811780326473465689734976007046555917535382737323074978784955375648470145202934640529493636415002049357291305985498113138646493557197438271955963350588335644479396117238783225378670580630755646943267865223770360319306491844660725583104460611345364898230300530270421377384122608314100230809697621396377232334374836800117881745433256204887055571739290099372305501493206225519655052323231443293811760684139091741696376293417883360156229789552887576262909911199350195131646913786479129669018812780731620115843616041497740633965530906713709490641444135540050109474838437879763788786280110224842530009189126144666273996232795041329421173721056411900521168149366833502897296478949387257221663392181278196719148068159062186004826517993340808184858113577013834296693303499513755485621956464533263553782979503128502400543719065660487649255442563210956743722191790141305584033945283918002748044997876314402350696735944632453431117822856347589731187272196629451019144228569793508883186569417683846061190346040471503204723029796815435475468404225164189963390349711881933469357951389323378825155353100763972895722369516923751192092895280652204277732938760855492890187246475385894713975175037939548970011882152942858411686196452370714655311824953805832375046182590776660724725724720048301501389985850117022201509344839108787843890796901800338211944068490900049577078746703087560486660864423895584789190938031153236105932154702137025257036059667160678712610490928813191924919857904425826975356833522516427764802627875110991320297191199861839914056427983580866161418386181276820784356684305943356881503882039621591597749821997881954367709072913138086427669610064364838453405024494940056964707022326773746393088278235098428656102124409625265348802923726524790054203583944406637999514332998380404827116291409122283676731558755873908483667266827716539451888551425155413576109303837335408079836420686665310091100277187923865178610532864655190199581005721712821337883276467281333486432307243258994835695948124177589349187236552643047470575558822297598676789773761837718068531826014913684527913062432596526547621092927251045844953101365409355396898184999247269316621302823335021679230845928645644791902930250067191287704716986101696847273814314069791859296271038007394213066272684659485603845822894187280489946912354081624795281372358292262230667207854033835522227577511135326721337656438533912574349814124765463299078820558236252398525006069084252901660634074315865440293277584556407199347007942107696627581783659420807534358099595234026028128705773624430265663974512283585510729540044329829922580953561929111225623674390671014258453354711214026355446230368193570550744664428076428808831523391685776276673298444754856930008031956061010948028694079952791985378623464727540492057345959953657913561987211848450889920673944607801877466301781569939380694660651779950255893913345736307200662693508834230872642483459844965873189670898466424898084818898100162659542381821114486206187101089298948895177872260407527659419937589487614255235728327253584128900672582925811714698577549228423990638562107498221270302653760772162073997705277339528694802340822916045101821133334496151374245225165479385074078443261357996121122345828848852909180654752477873554719019976611376653809142366586407972775025035197781888927214888406640837101047466622837264116475701445146507674509939136145185781464068203883983239037825165830990698411402230411136137033776112338490069943364030125089122742695718059051616185232602711297442338405426577369782445628034534679817864127291252500761511970247760145831501325149019784796829926570697978998125813778725979423767835624124932825467701856257099228447871124088510375724121215726008424427596601941992841369526852541232846573271837774587656951263807877544096782255894155005221132299370115422099453478857471542881048440410757837677746723504083885357624435620409885648463389375576812663828470797609883385407822257501384061722171687325413002921791769108431218188554384730938113795469428824914278788951229139461995316630616481764774430709118924864432713929139069082379325611280821137197217470540527718938689762830538659330413215258957959055916953179746688112568384313705639467465547096453637629477192404020934609851575497084201959383843525455421648309301169906726486958629915282795955106722757802817229176926206809112050860358617525649530202070026623966494980213209379255126912693923209716055674704527424439714687415085547097613619606123021780483653508262079865337549822923547869525712084528853558665795151170517876954011964429560790973120959125580056505654628635838122448941458135432220963511946154233215131073544437752800287573017267499736357862770618331696558769512486768175163106351319909867523386773414438405657012423492099342276978614773387866773592359446174287605115465120426672241699627328320434321487829452862605233214036952273048334420508722068567510435401130620553593142566556558394428769079641025427796880327804367064106772179676586854856829987990442229642842318949228531674609950247059463712865317995943654877220749240470872762117369156819552091310856500820723047720163892368472753958689110472280097934293193905148552263961373300063755591227847643102214703654255362698834707396643217987523490462560393444997445204772004343149631555269713496297837477354356614060049046021766535099347114805259375030406368081791295951388365227573155394301994471452157751284611468913589995184509298152723832972909150531777364178360084557587984124288390671754711897294598932817064564383879699159442255819928013703377122945928109331436060043379595590288580946317097237418198459890293121471318763095982144303006391259827227582517222910199438920629161920102950694492289763392937870186911454495759171050455623605784092748544111384673085272115279247925387650803137126891109957049778089414709772984149708083349374115698811662665409018639527988760699866447580602520500968163749532311121298523695708944454629091919834363198928668926586472387930737353932339612305329564832354973189837807453376533214144794718721803142563202667164383206430706556645303858330906085618764776756387624605076108253070166306587347114654581402732011075013351223781194703650309721843846426231311803599798196988694582903578531039797266192661989540247869496336133981837779610339982308445430089845410610633348550475856311454851188551133962397689698325319241410083546943277510105128234412940393477513272775177658195035272754975355326407623829044800895350973832950560050670065411209635126540278918229245137932740521347732669639404502502713561617102403560401160732760077842337637539020624928567848384137730323707870158625613396342678168666487698519039479119958263840049202528665420743020322001632745775126049195701251013432310965760071270904045041468060022069298001009378002725430650237817227278002264080870623894124413254287542293017235935540956121424363018085997344062792523999044680218731944941360817451164896792376939400188976994917632355853870074151349294226891253605127453729097366031843005354536643764972384338870782195760787229946481621689130005924704413459713932213019677131683888964300988423409900735875036443500375987326739462863384985453976837613924831366752648733869942636887525338099099778328246965438119815792323990352508202512114425061795518093145091545396798490753324622440548619214527482396692710602808472807229245605992792326525777490920105773555160097214441457904467811698775749363410669180138325966558671800141204351562594537067120903054849647298610372322833906338624729480685324976561757400778599079960137863798125508195382616541601516489146919948136836683838057105191098133491420050076785618442855304759316374220277554973258364865604499967905650247794130479219518706160965314990675370107116738665553381381681627978916464871888480981568165542006802489875878005152571097073098340483970373463888789965429150296130638012623005440440970056976614927715049970425481404681828142848993883689806698447731419819612106895667914403232982262417523456596795527107782605525821041243785082602156953730179887630248875923564022376231067902890676624606864071136788624783078587773198493035655651297594601952958625218194633234886415961221133174037519181517668487368292777430515822563972594763527638416531409172821983633338568532362643034214110665580766546430872731558098937523601006953963242334786693160830705892414909491001323633842488241269430254365125528115000864852346978267256581032933198077909703839444647254487921561759656176181641257527722978377427424490949126477943291463262707367967640912769862921909256082754955243232104893979418007210858629955784451146145598777265344170443868780904165927270722897318605740592939591631462055658181677101755970678169810007078915401906492460692610073804872749803545165654640713382663798691526171585032130594180948797899500834455821970051520884619419528755179829117080542727521726620381361400372713669658103521497203696563426309294465562823566898548133861661289590971122134148726977032588804367625416078663503090042346430212077304751680846394874924957216694133255879562961405754500811306280371895160801531882932884496163406581524541792607168639090459027618541777600473958422108945098225760026966643378017789096880048390431974488033897698085138049239750164624240526790710400877660125428786991612064737236306747083372375191315316959901058672854442744065570690067619219472980064448166160423140300658852010927976464643139293690145558178234781392178180238518411337976729523617375336836172314371584419967558260028374344739504236800515507859823572642750943653800392603559565896389549457252934346845447342856504154098791594561285487933078519279110743071728102109961602101309785764062746337102597705128130925849065159634373054957809227576073877021859711805675408453354983512597125892394600696144327442207543598162268506731313657023737939768081875660629591446734241331313845057557756882178668553112528053777736369612411703873460429570311510766101183023428638667296544271694551142225203537941371985790331108333865804716045560810880227019859469297101864959526495511555507238190935669717943430036339485444251148110452261205143155524711715097489169430945742880644431861499223174919208935558774285472554884602305469135494589353707570435314373185466595857433977877333099398800954508054332655612417148789311808965145027784746569760365003459389624946022054828905324120286950746191153030116492606770663181488687484213632564990215945809366490676404196229064185335493872478340734880009187125149072849812902804631361170307254359898453808160901395603561666063555955379852658366957094533284616923593478603406868582684005394558105787900016262737878843782839371544520658736013174702603503363499872760486995309279896403080672450745900118654960397305473713115290704969386942781692944542383158931243224630211480945199372211845820354514896185108152697644102798702954954591086561353145645652812927076330009219364008609137363742939692726400212024172690243858296319464797103775808829857850054034347669956724369833571379884033319309112375731581348618646890938822126950578101759273896268874343173856403489971983155845937721925632940448091794056122784900776272869580897497924978462766066131450388145023521314954550566568346071427016016580860035139303840639427932483626587922171101036920465984811970032513673924426760240264042619909572291672813164297298901452193375515677591516302887601853707734169052075124469704697994841951655724317816062607928730718918910167829961429238921594574922433554170812007083149899100238953413698041429831921623044533396863904149522477788575880754236656850418701082364257388483300142906975798541570117340862736273766026075031814893924109251049133866673814558997760300365667447659538056597489273971686827639154586295699910620292208028661997426157995386941359973270008934450608156987971417054745791305112562383397306018660782236462916164707210142408243019055221052785169208203398831259428381875337811097441438442582295720467304455182075505629328443870485189911065032652811521514241425383303997935228200311620401795557423757517836823744696148299660159507493944165203142307149026918881030896725327182397248665933732734285875257578745727139366990437058472143203515466644425663075613038868286216130977775658246911940931693468755454546902128372522064595973207699989589536039759442584868785085983834726736522924409563608469919487612052290943907756156903090818592650587032361040045664788616193398135673990265314651796835225719526069987936336104985924269186644308130770162023690352680500776877920386694603926046855304590520967402901641185825532599252845738796391180776820133282615224564006776063322594086877920349953518441442898200601805122034801891483454262173147225748187800083167372092266302395952533966286671510500966587602693100488849802606424352663205511833106749335443601004707150222393881428249324194237814789874798807129823254089968416044917646539836332140818055731985250393381232160995338594577212330998484803999712278021374032151666782798379994673861598156119203791028164809545944258236558200123265303192781588014090585563592257051655778166982236942173147606486047116996903693399319405072807172566203871741564874294541930205014638995483580378671956854085166346122914814891774940663838250128730914895864907109826494031335508731890524740170361893457675748093107097780696003595457835442128394546305665297366464977479943212407318491092870899138418787930644026665675018516902563088457800608517129815953697085621313282451807569200242578318711846309919010046334104839213750913978651876831448039078425496563770051439268149137489587776015882804822654593415704812443071280639541165624335047940411788233307930644223200129378223234716602832299303549407567686094244987252768480112119059895885268018328842744532751430637653248724534431275842994721490056432233765617020260971109623993040645280418863553298661705109840524240961650135561481411114118746854020033999153623580157219960541116928331650554180718401865059616304872682044150527157038160756585057332024191839447450762924997542001285851592714054810133208292418025118013597291487709584117795547166837783584839541046923098452895622161710203187098236683940771207813706531507297542392160497325396998974846142480017238079589664585167841677235651795808434300321726028201514347103386906845267941467413512744371358466848639976691828277697713551194017764976285279966490698879669255990903421460788066561733002216069412825482704167500609416267580604421991867176511747123980373558482383311852325644546662098973307163102751621089342797772653924594506230891394611529786240991629209864148741923980144760010961002501692546488688803538868698307409112833919882410099790115003917050768133915907755774116476530423851946101589913761927260636809817019852194167138242314959885169987176836435343029124281450467884257915306009623402501271999359287335306355460704782264846080807003298551275952541085666247941373852798033548602131160094042256832604451536264342605943331771313863721245470519117664502350290951797115301644361285364029097960901278651953315473075894672040069968258888387356797910340882449786093991650756454820480493658970822764407837897240559831340743422718573966273807071542730608295230906530620143822028229744094837855078731998772886597075499659468183024266452602180115505216090105557083372432816267805127741846411682539339299995790822346437069032670165256710154498859797296733130520392332084838186848856405926383113082240163979306204831063294204224366927060329740545712826699482071600066514272204561898855618666559753425441608964549768722958942415666382941401998757301885572416668875630716413686665912135575497273008147089909172562810840251898162240346985203851109796812987543539671297281988214974087151279002953780668195709755594698935126228731433595169857479009017371623535967152672173844581314310007365802555127348821837593731386668342067604418607335021952025838615952718262325434163671500170245323025266372246720216972559633551579944264852672204501397140763809831792412641252787017392502286102338966710539750072345529102960555627527861748132160148873021629151635019440597498697806599682823607880000275035711478056467416906051393869370183474240247691566416498695171001121762114508804929621345289005521138272729727720718367169189549318912738222794875700317594937154434951716350020737527288078880376548424157342795690158962978450554698834534638105917983867830742056763530938854855474462671579005633087800709257323303670303020368493716449053235623461154144879056403587380716362361266356826483920397692320126259564331900289662730357738285647816654119511341704673068661166796582051604560255347565768649188048153721339202243369416362165985391183409452191020740310925356681279894120226533001421214231129560418669068822986163998755084361208956348289454262891096799732710467432600408950276667078902537905601475992881924887393826751570137893246811915339494227806613906220946427082442341490646124439101182806920677499339482777167155452614340561575878313874502650494331512975359597113232648715030417206704648001019550406172397308767578586467671666323900929666752929846296787368117742927253742296269938091079692939411304381255103223452112105944786379830062653216680105044080541981365492067239461456027206689219602640867080059400230096820248330849646557798131685898491300074755944764273149928311988793736477325716225707318979879548107113027675002197778422381775872997176413650876462005850551999116563114105056787087697960994379181473058094964862289542782729606687823901397364923961547733327124629317680830604947878506191746241600397372456059323693290849101070821186198051696403197540331959605480988062004813569582333430322876108372215480452072854451544218185339981154051572848416457788855228091822563463056247567643243282637900010118095886555521827325627317104887522663653647895633009266408780882697895173841029545117341138225329658538486242451418687412270257925733777742551245226710631265591939203171344285660540578828474229363037996362825180145444395593259980932856731078725266141949321787305832048702000439613504512125163922157681280818848724658310055081328925269698845531593056229507794069551704885081708526176894781769290347837300078082184886245396343188001120554895747025236983327381856320837111447371006561171661398688504291339402430021674583028167798987488805479752080279769064364325922575585023606668716152248321710855401324907089604248587374076795401113486552206514613919270184418231160451600456260588732831950819234506713735529261973640592692704958959737516230821392164452324542046194222789218018673781919148161990352394937831089095791000472419188498662583304234280034932217727582193937470152530332105220009106316628349952858752220704350112004439818285545466231388254232202269168636224979577711898618594978554461778626794068987703579892181419550501476166883478689774183833886641888271625464890722875474926142125243784226475662736282461515634563797717896456366449735998730767789976337462689937786793664582573968813536300906089404474321844901719974640626861502716789605260096639777738918376816476384144203374434571219875290113656597929620057531640883142562170000239439735550441617095526782467579157334158293795725591590233030869212973499539358041710343616901017531541790744749822468446942603799551933280222976559003364686092665046390783626580311939216260225424278129837492847314345191137350078308945966643907564580510665144343767618335897823642418127614341566031806303895244032054688873119352662022763062894986079063739153834800874208498870372961790124972455108615822736551813598866544595800748986917755202417451519598294947213344385711695948293438094344715843731042275892660296579030777412959640205028122289432468412680609289217531164615870899121830902479528908471873853016831371253425088527742151233748141308474505625539325582329357008111882711551850939543250237432371589956351397719408072584906453468083254060686349111952604612139771838652663743359533211307089928298272886780725112035136001518617089820757890467365576110249726940631173667384979692833901353314229478978102404024520666044727508024209772151863082102128183262559837288980518280712071518502771414863247541995613444123192742389199638012278906929292267585931026558018882342246156065476435833620551885696634013069453871230769918195714883658334780337927685099359935510275859377508324663053521604423768367479902096954096223906987866698255025513101664214466130989189690390209916112566904360697522789470880812023750332421036828848713531858168703687384069381570375716505187085330229764953038645171224046228002944995495645241415236202268478089450077537088453786309413959884827888947856334270125210382023264798750580956123731994485723236067971076553836943948259084898144002707255416631035109728541692173680696524997270138310242289290068555991108168788510353694146185862251528660006295362904200463973297459917007499746574202068551847523972118233215270482696608257616765914104661011643302485530006435544598332201222156636281641752152029630341760188710415834974306975194645696578647934387498699905813239434158729737106937165222398508384369289180057217029687689737897869161431927984391338324244062912309962770645386738555459895671660121250843133597434021993293227063534044935413457654395882082883865755302464650508494364227555096692510702601184515511356977047488790912229062373717711938259875793076379393379829079415458336960484821845096772785055662304965410799199561590830986116114362577209038035019071448797551953446774592689959915962535657866266224671822629226871930106258948014903081870693918560874587311953518141552585632066722531612184626845060200431385238504605153514639722476994620545141848306266294809136324117236146263129547647140616138171810569960431677315356971659009554094151530522209783894787203613939655811300976285910598188117475671447740557082721394095366953182541549004571076356301322478533750253644325166366505925229455025680236558363324514531800387527012617143635913011450845966705949411536969664094212734842376921867957578940268984773505273193884859896340457483403509027692161085308505864068531254430924209531699887430501598706905292173494663967928471538922809284392219548988679851915138395521440021061366567720653812624981360865842365908506827740609933081109778021381083302760034190188168895949268050099151876414938360559709412822875779750998934496675592503853410534738331511348587490529540232685943763031391155249586379463429667327160599126117890016853365408668021642168782063768405122141586407472095795192743364630084246049007652597870686563205568113110635059319186403887495522193371289305149617439093967549149228111567707661628227016185948847151444704167536432699828586773350021639507536713786493345650625365218078156408152620756568417889286770485274655020028463201639338620463548288759755621470052822019267489531637980454902224411445968575858691631197586793490055745676280315739719676394910464763564866582323517455307361008371161765543608437257732162013163011212609493095648815486115251061854993936384609879320926914035278427906660528052656858085663721204174631863001099849772327889438982251506279024325764874838762008840849822041048873934355345227490615332495567200478101335590796268511811260392675812242931029001575387615614813758526837664306501290034545753641709826016979708761997355332452499125631998578083149247488224040810907593301027678311473928710747860347714918089350061946744695004159695511287258862203376608446922138724826505905351979225628888614521439033828348110615271316683605521168636622921201630033826386781430151965811737405195139933664271316133434766715598865159289164909361630899381224113903468008175345482950239486435207002591088217378523678033064730278539150815240387331929240083881391820457295347764149557034295167142445072139150760401171753802038552770104165450837482405338706102122666318504629749300880398354516959178498068663012412113394627621314404195078918630016363716334710958084438252782370886881390962544248178446980533707000063680578567733337688575939572704512856440206929512829125011375492641860352900825236504247139089945061945872112191484991680404802003232400826393469826285409988647590411882085438038572282136183538412890800952402326408432620638219481310754074081641549532777926105252706942974527947683562892440057307600896990470078417101220890741793578633504863935059922472975684362792535931312375734784059893095836269284424831373658253305205344499354180815193702026561248639837916252861295986465298198558304961346068521664039466520475812682521797511338014804584787207601349980375841866156294622752071746103940285899731241259602478493442731308315135755648290928429927196686468458375143217605334058280292321126076967107328680867992397691858437885561490720806895573256470524264216045350630666055871102213015409022239445365229048280087389343984756092402988276027979079818098147485198952003086340191896872580513499396949799201151007943369397754421255730458523333743719087498260133776763316568924179424618080260882510263012734225245990496525935978835998702898278837666803207683063362028016090039397816948595169226733144029375520062349826972147420954651115369151922445169531749959679895645591356101523167071310252838256625460007307063211352071656121389775495194350827183590971077276281346906858270504888310841191844101999775539882658106074798840647450579587205164127085077900638915020292843888025652047742383441307310617831255775523400057439251584520346663884037601600266939439124781552789017747818594235309527390443248068363236887643608530840619936472168232749490614077828040813186225738818991795514243590430797568893991848134275514950189820722623948733539867898194184038870559650387284488527212617222541536444663154134302251063003201947856480867828441905368010233461677055629814938685715870342896250261579360602396834872533018847240510492594774796844085401079926996667317130951681519466640434800210755504226900116065982618967964386898255174151695553070162040183105660745319185286296361443748959295160825487961094023981746722929302895085803413725285535721785296800026220848431610305760961361317174507120767031794013355446125636715833191556828300585118972250358204040086658671164143603745852803261376799853581018146149163905037264202295311310377536930921790366535282308885745266279407175786251283038971039027735047760575875283545652197973104467500869479880526057409331609190181319095337232330290305979523292457436763943823134441469481586349846438030634391502667166505125532392195415374970834509065429667471979683516636255199417607686336197986790322137383637303048059691325643001039132005768500756168706487920642771820390474419889038658792775496231505766934331423462904807514745441234721173580768338783543277326886432128556623032051968093184988407491806002163695611679561036033090852185784292147781057999043263658584268916581083489167400017374719344400654821648508816097764311027561215062495678273271889263606080590176064737646630161623763069260424202710481477353781938656760774780738339194155781213916257915240661039709598889620583524380408429468398697316675370215840724687902326699804974310628003868538844718011038793711858108416170755601014341994723392460027330292963336531967534818195038111037115515974958566274642008427973429150164415488912841320740153952957591604342588315515705060919495970132195386185640490972433036491835281221877725902361342668952499192264576978526904009089932087072653673599649507341218905799818268262865718640526018240622243197308812786347666098408374530757978112190934242596697545330809934976887405550816180604265387900089426331775003327646355785487469298865544099997611422501830993665715582951800110443078344669235188897515388829123807144562837137555868747604066749338657454121733375827973219228998474693200455512075071309321636730087038691773092602246453398235919629325596486717933912137056460224131027874087487381609215625819471959833221592190212948273782894116456132446046017628405382571538029225071281686549116081598234130400411889691796634049121848137324311300769517964952068078734938455527378185839426284868181066659021394525729018856000705701754347075688525716157340123760943351190642933558528220647673023399703916313306487996849869316142662301495553867028953465245110615058947413274398867437371026480238566571848552256435599391416586246122651985108535726043418592737920164404094550249161418723972582612910820576477155559764232351300142384232297731786849136026747374985809976829084784614436164025692973966610827607532421993208205933913313610525266079624141836839203395170000265818802854335434780219929667541091458828184203874597825168110025704722348072794995277714247221644885034686451818199384309017691176051231250884355304338836632514364906834876322396292454672369243786853572070879274965213338859231812922841446364287484270552811289437293071981234053465018790071144569659250156671036596280017179895076715332950232136578730262195045301770904370131364147430619460358882473105257456081963203999672792489104122588627633214611285894187199366055068968372117362122695254506012949021652442927031697845592905749421767741842803254854456351386297819672747592470321727403673662268882836554136487294457810432809389543743612876007472141321920315491484836043467222894770025332850862547317995402015309289914186020793559465581318559903668919784395717900403208985567989138148552391371410686755701060210695421911589331492207171409546484766487445100498337132779557174433552909080042359532022289448945244524638262080063272483757890857709866787987238193484482612519096494628532823022909451186436726003901640282113977971313006971580466780836105768573572898640202611107385201712108562663166855427090004713513927508457027830616210084295479647069785980506768972376301005081362937121719876378220547706462256299227480654669273634785665545373048624260650301238691441607061360957544553591069406476847654219213923511428606117138700023626989433862330210440059294424607942154647366557148372387404826581629511475961568733678939117685675266204069953340167974292843443363721242547159761691098696876479714252539170015158809022513764001442338597034787996835327146461465372924757233850751602316270683085024145950470960867380091272977591970444798185165657946707423158623454898408206069282231582952223129264035098115260016274456953370253367344034247374953087276968449482055019468947432370254994251318483017527017895117327767037895685535712481370244268536522092795814045404746445827271934092093918264592968732976561321697541614684424045729141244117233531165203426369388055445510755223675334405525820298002087906518788617098402153786370790774262087490974220843457456309075001050047516990563041651524342875111406916469818400547904449125336783575511206210306587662198355591232950458006227965050866092962494535785665347981433357099769901478793080873159995596697478359032360565471615169813212145086899349306700205696272965818715471805249860950598223161867137506798036895703707805276566582029056310898009940675253060815401574013582935779578702970563345758744603107852945469162896841306683880857409076727586534514723917971166006915847596644842607461357835067327046590417627801352189939156411663703790892779298780749170908487895966398084689465824465553940141414703851927775320596745291200738924890112059357878200410209528505804835798002832015924143201565351443364267768367870698382716976745916649526996877881773331077503002296329204485463845454959947737263484411526268652640356480578088137684088325885339201430672697965294327985225705717655981235851591351271557596170713429050892803574309332819189429205189999471687130732243617761035388670824998979804302006094555487464301311813304389081843985422398005613130890746028041379245886693800872669783403327488161971915135864919875440038510497423107741944170312358931557599576789520409769506529949912314313378786740524318194576567930737048093720795358347485056784220258884366669183151103660481690633292684630066825231991728173342596195612734258598470436984047029503035459240891652541728530233687282158386034119916725960528538411279437391939452944948229448298019283771577548109418246710662831857611860832133456232160321556244549704782835876357696226340848836402928006891914088098356843744518003632374771430433409360436141365583962765699405442005179750457632790052714219621043959501478624559554769485743800867638881907176033139273053052991151643412354967994707221352049697383986976824740726181076130733803078297428218290735147239349176034475319270108799040829381144917019322869781700734669177851005111719959253605734863994735531218863833203797017701950681278506992796518360722953180931813286438824829439451620369764098869040121736180125751393208578964862231260196434525103302505054964520661923424495724698668934937557275245859079162341436565044940481471692040219560871208885758729703906546453433209403378984804645949124938744238192126207189405980387875095649047204406524081684870850354945758822559205945908383236711626420811770380666282569711282371197081262001989010028924241925038997366012057592139878287038190303243431361028007404531441939857060703602523826524331233247503693349849758810959709882204727549767774563016499000895824954353899942479757851800962406473504257325385865689181730229865336025987443532986859416356962936258434690776249493955711545654184224086068581618053500297841495542745395102705356681076891915075153939879470567702764004168177777599640494637581567070955594968200492627724467678304147432738166017800121047683910765458364580631513378036279514401872103611170464291957976060868777365057682117964528244633505008690190943523030965520647434231458186052068986588661667919331684696975277484926368615107584170569927289404485667987518709241197518871522847715253257984650544987175455349469420072894592591083680170252841398160174112573668362077800364891509434070681824495103017056492780440870328489786938336767813013907757828240132553825893062601847719370621005294423905041051189530540572833180471912428087583715461089560702053772555684754591985030396296126647777072865936154485980429801597468318273450121686568534269705883310603482709993719432967607716090845687739887858324995472612897083545973828558230318208580282957771932173443785415753490108107483509789061645142741248687961146882515566487853420654604905344604204912554075463107434968591643027672727656161026188785622776345434738834695037959829410038720866494515138756800867469355697643617301770535777245465185669049926084230999220468160335612753416965885155947047640932538892793819881796026330499792762803626806465678922754263242222635008558369691284841549075273958459686908578498854371556174053478203464000047417928097907713775296725547659488441722629955429785602772007239066578303847905120090755132245096349334100931002149503731408943092612668707420715961145669178979142258884346235478725859741568014246547081777909496685790544819968876673875484069091402233816655348847251368692905148586966472930541702652886442875109600751018013982172235434556136796528642759535694379398978827346462705634223594815647002320760037769171707970864715978402174649660155240058059419897495151232230418188387258468002449475690104344000146228934125860682257149466827864255165506577583477898027121519774348122501677213286399435447770701551860980161260346167474328292413496940346941483838759246508561183386650138009012447492295294538893752157220623433205710684746919677255133773089372504751664408840923538710724034387796171918171810578672457651138750651834702084276922392651861859030597932292100162300430757119819498315989382404274242354968612552645118241884819370318571737377943790495185730903978132378345565461309835314826478933999904064257261338852951523925806184947632924969860451338711160724422834889390353384956621096775232978282767743114322946769095501987577100268312862195935662564742951179765495363592185729272547626238319533149956204098109923498481117493087878871096099981728144200341568044298382684816146739206397988574318401912511826647114567224669527452447468743893284929656771518782241583647314882917864941391747419084048752293685419850990616517034279421655356514280232475952065460284027516027770942611312600704409411628940336467223532620540436775898749923231256832779492538077573780930010358410494062786723632809502098385549423107722273269158060675623523314591320401770801036130929716227295774177884860226424223988708538860995062279078930379267709485658167259184577493286647998971800262386584663669147778764897375985117830128466373763820354808974930775584352947077519982243979940253693875245350650250819268876460710664845742085463822144604782071075522490067386701790739332624191334851264257879247930113598149993566569985831501204293962946856514401057016914289582420064292973307005308881107280130099261423165555212679444971091257766208909143864159454656910552474259743843620855485810810881688679626684239333568698310849976724834291054572573435320640216582468795490777253259374394871580375511242621133589759348352344875754197710982717950144997668045307956098699327254647022301638589059308340151307321784157207918365305167049559274791702464115579527724684998692597077065395755490017170943387355938020536515835106635250955542849580890223335642904432176585043304827252433092095848824810740049716950938484146197556737602343341154410745912048391523241363176552847587241557956089380598374476364239026672740883665199124592572112147377616171890726575833604705358277028246587815735485777440107096831290496933338297246638910370988843899039311353336624215781079563787869254228957108734448333775347707951695815845158642418685660446382950413210358808823063250036742828528846924555218916127721734433138498378376353851575259887989677059772058561164868759894242328241087674326374260628621102252049203722500237703401415683445130956197416654676451239010162924946061580296076211476928546427145196468025066818634589708469332687094931824418635891744112372950182885089835292060222231148590627322221394538739562987404273982080975017641368654367338481132374873640157901672920381734390211985539887397785195025009814389519385291110529993689233075926547385822168914203404174313387045222638173349366577611267491970581235000844676194223629891931737611317344975136204194106215437775958952115937373991833219745244171938561061653046770103345851772246802530242016471951635778730928098634353466499278727443555767070046048820699982316041350489431642108322776941364374831715368216042984546262321995065191477942925543541551444479805508318976780015577866953415841795960198186748134992279422233404847413172790612092822261904804233537342003762186000767468410957549602723369483169370439422015584179404599671932351137396371865347635287877330081616272438015267750164621004780922636914266735785752156903593979748990816953633290138278729150218293540364083175846902585059447881401454205626137212796246369035640873126556071580713188563352215124701728841597499457833091651468280318994502730646213191682168401418365097752788929455914923832490807336938311373744152760600029546741346506906333694127335953375019716236745418425691163657572314744228737633968053093019740006398444979392212259390066191306950474721719687945085139061242930603326595156714673517456452449588685637294915872153504498565239322792217968818262443416511487726940843843858412310658171963348590739459263151809969983241750838064562800527932481422785100838520776931772859780707723341756300116904823621483752742673178895378738551885829896508305431137720270240159970725422478632404814458564062708397917945009086810556377964347270246304489921055433044294398934703682264098807689644530439461667559089760604490197941954783662176560107299280937199374301036641994828901714843630583218539389649044969191780008194499954519429379864565891540156217986715622175784168115720807649034742332834643267002383433325155564044492001857101482587993868793405216250816965426381174408015604010536767911718970502112285073823062688109281982393626792817952273630132079378053124508312427052692546252701416119100510233239259221608400366702693738973994842708490688461274032651716275975796405840832523136858856920010880527347430894363864591479148442232851982592264165048355212929870556887598785594340628169540203464967661276205466897109418059870684481935102021930456651845228062934035793808438676809971181668564843448320454514450464971366329722650985058817351691247157073084642697031312182704117668605330540442276360569464869279813392111834277148019036422868609559627919607606430526290073470376160899798294340424679051029407179082364680575989412725111969038375568821028420513504950857015307977545823489445085833996706268750634925975144495521020424140526030012581517927092179107534037545717099250558521214793321630688354615076379296451816509007533569006201258618982706822853357777246916668396080340377224826204481938170017747207579386647949965476506670573866941326647320482840296672956016234990292876878276381401689306882617960496735047518165234021811300205980818176502677570471685790694525896337053430256779194242576992014292017515586141946035263880946096343194841000078602226453467124068467133339516118557445615993751986104777503850811757979711683113762256365251594717760434479505489972306825955640798004155094837782210348319482136966189821375821601652877587585268402908675125574031623713535908851460888458120685354186993897933281900052211979073980098671127070089261540256805763527387707782969372874081353134828496445424001673189064462560498726467865758450410623503275252481451004007282525578233357520943045324645269080148377970903084346808037075909777086275460802521272734655516310345815663585069437482874371862579821868827962747753532122298466723127828700722005768736769937431199701681042851726692279521210948784388981393120339231207026060745150298404975852032032475250101003532855875343048089427084234820652597648861040560716448634861739855650348556780451647405266325349789004154416845900885025670351852393518539299143010858403808778963399707323242970287363504214325782660385587751645600997851253182140002637256537974499040142429936305957023994869968510718620264219215151766242702647504727059586589479342478934248875882347625817231970811814596741295184781926967410914015616715971708181882959851974766551401152431732699159525224153462254842566341949438219116419528934648605210058950768441801882821463930213371767807639408674809546253763064670250909856806262772153121278758787503619001719719795443554513281528445878730413051028125672765331141487776103388959739359483196430462824957496603648512083796919781623116987555861290932232846423865839449706997857248721117999298853005391804922092763158528607231391908799070476575675277985020719394686176100096067311821195511752201151911659072193606941640547797283393912766797422553215582540578173442388452888822741934496551064584532068298603885827300141348416114008167194361720135698066059174923914524501855977513776870499871366792032685044984064825523831364007030077611545627393480164085531507551989740162818769984271212201615787680570706898692017455724595476066728008458500247811909240059886724937330873373397530740217701545545224417520774585208115953623059628856681805902873132064022904598306468362413034087514206585023483139566743881841638115901690449672000924598410163170391725003390946996820339070864406473699737424565985463063068916369431293707178223598736477593965796748570490072783193380981055939051009729951077080061838882567749213255811495069869907028251776508056436681423084405824710682506965243002675310033993605636491292539916252509990848846485781936463967163063592408760377667214441071563692741198506954196618197169474920945259829936466499474771219797151241222341296664885067039581925463481838286105866463962087850596715068547825916768049871314498293267496582599132376401000109569607515366757459051572153304289063268021500386286130911523295038497477607320613614309577931676350708807373826703041285342348046588297125160665057999468238752774414171198500826660736877074264182751053124056898039253212969272075762173074412937983046448102290491013469498134653405984169455304503587319983942957487182726633986057604050003747896330579903964889689031697417725967869095313681281057107966668394729667662239267680135033285482559334547514810916813557924213981798936216595653603090731687727749278314502678661667315698055349928611598431348622368888230515388849373679007263824519582377788759292999161523435075274805552583160959492890668344996742453290032528380754228687644812442271888964423981519403002494180735728953474785460528349627220897814810148445591484149554768766877724353973158694332149487021366564571131193321231561983159398918655913418105693275994959387290950298919111734644127404577277001535446133590548010187659500133938808747822020625751300418835081106949833983106124393821026286478939936295943329152200262747983881998975168075178405287173576236682509607274902706447838641131454505296041144061059645270550811410842465652305327810909609375127487507917360079128263404909920867236527643816691547883116762036835200491786712050956175977101657182473702369840196658985209735084262136674324533178991886485520879107750228723852251980320540521480497743310726681299164881305458409242429077619496413901186957480767916280312065522457674096155086734774563209186715898170294369831685931120002235295173222137255399499110719378356618581564961448340380590677840739297710635861523530878983641136312975479398957936364025382379783111683332329671931288121038714866262824569890535153916984006800401217634368654796312796049334761494165269627150642078236949743434257124780624173891956868769340189033430117587098572019401729584564757399280488263816644152673125420225073047376676491977098558206376500377016882624607394161331514418661270380400392582362155929178571017973215156999316686985848516016648100669800539278037221641766534944968814736257056022038880632155775970940260759357263750801864529650870731716235065816721973330907684366403986576619300680550562922784867398359199844055163269885067745622522199430798995849475949506399146097620386621054654457184501147649369291503368605109800575582909739405856971566863263381779608143263171487411896524739604170142144377358548066528298960802301345463923063853724433973084312069315126632586525338309610487884412057552321386599251706848075100405005591265879850357903233387442362965491319892533032294548750308051102479868410424993459968740433092310252915479040337177485924755070505147739327608992925123418412245548023532261080379041340947808812050792729543857591329956508892878396825148984759345717575916830312966840582712792133199372057424111487483849216863210226154871569357846431950969416489678905806990524789389575563510686088611333241555971751909991831415114483852453592099818482544067256609324832999127405850136219345666854472636568861017541733656901874191886227765941634497693601053581635487597678830117539687225365904109159436705835925651419838078528294150148830547201265729883453212450380971165636571865399548309103560560892574213035370705700719519995654727029191963806844910667530599528183993406148812362347119679049297530480634724106597613017810494753104086804928806458123648320964651673695201702518278808478455875496712263176439646453339183654702945475507200516985000280497201797068815829752916144772539512990431443249167427226749300316285634542752677519953150784511762781652020238750223762336586215121216437120643312399824443492941404098527766415437925764809256214661384509556588754863928777488582159237546353984643300038067075501629263914009817360641772907207678221815237925537847580721977118241927545083573110796023496244277470949129084981520400015878177173606333745870569186901585844045496115671356289238861906253020977834788202166082780394360125800472260786296261658916893882501557171402014734774359287616191602286877494309601574752214710266853884615480425808672591103803454128282931208812726945892995280055623675207735176229806302044533890345620125108524962312406826595533186908755914931774396768174176538528415459469222396175325137669779148218809397677790088531661897679617876560877288707355805902742474137536933675655758512240997582418022533553625498592636867783540962934684144861984619407513115532498463814073333463479502171711081400273792944165352659795000588915136717229247939531581096252237288208423027156184679849924143649600692655795126857348019064553133197951125547620001558036817965703635463779793896754850543082992996966991082162009045961764084802212170300969300330557389888920124941137097851247881163226423330368380243792365109695577617755893684243357575875689881511720790799482344559750489948054700779161199966270828454021150671588905344549812284814594006820323257842291564026777781676244094292844775226541772793750065853130414797268040729205110974920539003680816623534043709820138246806777646829869069211380988228577869881824763499383532778814113442291213498466238933797584221801269425944793578792532934187827075990533134839774032261552614342085170787599337705207204723684173886988400022066740210951327079953859047952654858602989685661311797668189840357437574616822190484918363095010632529187618439334460353394898666790158283342261230672321061931241291476125440543179530663841936345901631024331946927167440011103832519495277295863756751244016561713719438272808441457582625296268116946232154091803431299875371489936398781478738196857444680502808327918601210592749486806390555694671160318093160430204154907398055860910704983086199610987969011391529662097652851917115989460572370094507815782101253003143125145054124539571430494386092536916621685674375464854130721448547346889569407250513243804514664962216829843921133392761580934017429920970874583900816795542284516938044551872836915813324446748392184397584425647568041717801635526825704625901946212603609602154844125693600921446944662656981346397436491517438652337765671117691180584119374999485694196290110889111662201401185973069294672404194335577357948826749886181633122983457537942597155844578300361705975113955843930666687353492309068409192198770117501991214078929409294563341998871108501858881886219050661556294111968823128508169301318901944934205899320553676963053046441852447443418585654259627967755391115842184481452560441616067217571797800615421993111094823997194627364192620808346273650242129255466288713937721263901343199441011319475616083274879810625042330368630976596759641128942467875045209325072534130854677153504872481622359453462564969871131429012398761068669615142455270007153897941220371876869055760123706898936991508656875270826162717273019700877225089089935873582626020583222355601418890123868123463724912580381893510642273116120092280569151185117394450875527800275415273758503350602013319135970253340749595360311372722802659945079665792228190672409209467626056016209003442101472653541380970439424341862170771401461197220325896944235528697966578500786699310503239776245988071570816618711770798475682471552738088196976372127897086033713242961026475112352221241367847181980259737221990192122121591180112855402355713729491608787526960075160809357250119676945681672409461566190203039811041964517882849263866115263595244452316299450375358495463896701426989342161928605626257483487140680839166660284083416617494819379723593952821232809750476845153740628678687231026434060473953051498979955479523165130700613108107264560125891128296206584048834126169959156122895481726533226902667185444372991888291154956839389820023878292015970156027473889128831492786755453332957399314918582209685636399256198412080570647547507214825399529884823028035285632636940796523503140482970932314198161237752066320407966959232189056029814059596088832683022489746608495629176276867543580650384998763404612797850224881523014635699448905424174681676786480800482246359792626060394909808630182642357077515846960653553385167640801089076025429603351990181393264060625549919579210930754844729793556174298387454415432695703897196572505766762945619102992518819582190797573571777512681014065073810598243029769570488694669956663514005634551337157351446902188884401586161239687179446631853520520882782358870018743984790867939800745750922535741634062392032062420194042020844577044171562737467779630474013815730670831886602546295617349145592318392517122577657192405881380118021546404914753512930859711479523936734181275888854358385264728517327850369046768561302759317009968944403715062951584718055146078463023161956795914144008653472373158111330755987453468315390488612986872480296850566474568135991681309492782023939374458921137060762071282973230877477859572026180221263889278917689769175309981953467769168472585717268011076157750190553805316719859064840262383501295149390448540307716868501204092518302945509735759074235845083693780161782366642714473072717153219995013057414623614104157777226780403988184918030008899650821537226227089006379447021837787221438264969245602279655727596227157189221588860912891371636039620771848523232856411583580836813189301638590889246167351977781536449580253174654412386821178784048681043325313995777368431405765369575079358308157382680164415120582082819770835877582886460749120903328088488105155810389361467057662816184672734238585063687915381894407163120043787231762650361840397800052860929901243079860900723553529939761112502641633280201707295269984363986990170111856816576812128872144314588421258886332278480949984078171623698007667586909795495295572528199615621292992436173445939471783305252510025213700282975186924764860489667194896766219164799659561096102773680038114800769384183549659331013757129872294525407403117830681116856100522697667891431752393879846981264541434343881118028559580527235811629368342594853344195515590480567548575891224290031231309760527728276737497263557489701929235499230859890893571329538693865214514874925660597856854839787251819675738184614100142980107969675772489253732338993247111224084666414429587653310610622220569684800608162084196739171875389889253827322146711111326242478889744112748266257207717414408239788930611383118430091467408053129406893301675010005417629150351102074278340456991097506146994765789787484324282686753652327524603902264103929792433883111357602724280238367123577246203292310515627389261457084470271998466589782013314118650614180854340776899285224134597005270250757037291670181538959171742571563015078720738130160905058119007347690619605221104632368366894432425540616273536452513170635673973108615469455850606280655894393713716739217394738257242763604004173825165433967979746272432523276358612318173431827980057885374268395446428963605330729468788525310977806308967036057485832587960816934910833254585788450271439050849421682889438149019473429794311022151221871574284291192662460143759086440172248096354551176395843184866207806500165098468557629608793097624777719532269730154868321778346298579464399516883097156811126219741926131094240046672424035358319335920381547334789667566462025728743378073604687951804295802174022091957688362891678078346214884371863191815655300734410832473533521187164729263255322891550562211321643633945376847417733632935309635495513721378300351636407958831898105254807671656911229672294003390415771774931290213498015653414352880532175461845185155208804944358393358672837437409338542477088443577619049737614780837725726576911050229347323411871836261375061975377774361251406628899820984744559474227465211544496238466248713479411887979180373045965277106470774457147545154997770135471685059388880965374015368451613584399576726234125340895115718763876151021081616354282032578351203207630903762717204068601112043541756781206930136284943103846658653457434170210551849443562276505691772101890718288249029381048139291502055554569921130894012668426440403413735472417959349870198348532402156596370874117848537180093825934300186170302877097546300425545244944007336771594310003799438996112986052356857197207423075167603728416722882805400867205092315988311315786929790363326885122553026207489974500583508065218251364340448984859018107273729492449105793309652350705809935526177108851205408982404819278978280954139088632294381735949445334324677906826773119450840225920743530029404410294636318574668542264726468741751317713914418951181315675485106533029125132247133509591303878313784889546408683428246116087411913245698459218278115730157348582424141798576918449290872331133293523787354754352208388712327693648608753785788871475434009635379861156671461550325136461836076036852335581741098404166165058984418682823793257622352759628285748588588542357731668606884611777831732597142442193525698335298879919384982618850850148349334761482453596502099148736585302878339724724801519715526030308254812856859925190369208189947511140037614952230951318640028826013144125042326223356445454089757760968279824344329415180376053100036415455440852087822776499137708725219225020473375425506808901430393189103712813203615209754886974619131167078742343891164834450004507503708348491740115767121195551558716072331868823088399090714177426431064654298652338965464656198620867537702000391028500208213989133600726265794354658000773227545627029791998469163288950963640751848229048855049454062807419767549628545423748151898272138625053589683919737626842386155261128012582999902120235197516654007236281241414732190072399745260941487287870974977836497436486125538556838439366610423914791901075978778461687847011737328062987750216286064681478492653643415795195287116763211465790813454163577771859127809871974887923416879183157256071879951032810038385074341860439514269011316664670978939357204103672803617690204838224733514066057676310689043160668503351711525480965295513587050974719581721220834173748745304357265364083963329436543304708120456695825053049032230005548913483010805038954505839898632382125989274104148605370486855673208848283839231868452847786645690191358648726727537300594293159463823627929862816335240288495871994273569243054555906247161949862860604638030864874696499695737663279348144244555124511929192311650799565069396228915360052032487319591397934217024495383251103746705526551682970190609781392044925566919663424785910272472033830155626906525271430417388289025584649830544457772725424076516412333645420536289715158099425536307537489081047611392184692625257983730767505853889674561450880838377221325943515180652860298153560572150683233524134653463355945843678711224824642770390754354828797333481109708830775215789955658426032213064649004999604492921144686327625819648018875468780951081313809142325278802093571368271647297905278390589715804668604310568622802604676499179003667576215682046510524722717213014104170135532284352808881955503675247527300838582641777922156001265235547810936022355683302017409380875279400270800207858265085542265053008288592382318702223559689083345790754205935370258435560949098635807637166799910664674021181519851694948855273674442665280666719586976930094450691036966672628907003339537108711959219188685866505607754964129085097581337920698506807225749349955779430544499996734423409509515830256060243353333097274080799503019197201225896129044355088087677027839744085642678967890628590927249076569224373020069120178124820587735636897538316519981627260991848125071646429484359419459262283899579731742232947749433508808600343179779024290132101915343246318751504101489567601128439427081024319945035833917347497510582510458394701754913681969121170303383708414598296627343328311704189074453171278542753503541617999282470915705885279596056271096904557190495128117520681943376918980150841626597438282581229283440351574800911314505540629531099450693006380486874703199495143353547988821694028819585606267584566307799369821165180189755812315341183641909591365501991034382784623251279376221365801855342143624001962673333806816753414836438498489510605842420874920168354068340672684183955251875258720441302585207086752048209947749460861619569753060601013664402042231358021735411962340566701345404804747440060664974325158627227990245277863891826233066242996594437112850650792646515995696558294081321799622451770205073259468132239610383852031739814120139096509580980859856627474126624768120954535566728413305456292355007645206757654292593423620144811359011274710157586381281494517641214976157176467788663326190787365863115901107477837162648386292866892440979317231837268387128141501880687034685979465762254851314320282613097107652006390386310694220351612420490313187922556908336623534403961798179074365618301989960799777329031028682764975066415223863067622474048738350414075949190424536181580591086725458246081988226204340414392143488709227978661421863830019183846534238333660722435077889615542815757360359013890174830358558451662705941741428962634414320909968151484894280366649194572287693360892799432567842862656338971654246823437661221304153926309919004871888539279340776245079141509289920642707859581906773784680569094629355415222229711232002334462233575588012126789366417637535371369668609591569161003215405133005108245438351169433390188296001068791245305268742235463288882522143988965382418803313631310410850034106997909653978541157121700400329770782638202450563225075593820901944568946445650789600566329324011296431903624499420014862146701516732051666218838675292203063701998136408225062573054790835429643041148861535906923109710897825826594610378835196273880143693538102035501013554238494764319208778001466818227265286216344083603117760207417672202743763383153950201758033814556242937164364066207190767240961239933464308336492186326922592732344459204426865250754502533666732299076470651621403995157352165306786259640850558184054599902444113974693802383930236062522384565830537364968437084843618294679516715716672120927919331017711623742496237854141770377499574087348631247715300082571133435048707579921900916968519250603389894028218444011500590991049512330830952954257107716416917765220475841981720592312023399011225180035612584106255578705184831156192743883618054108776101269550680362192001853617052985724829263910163979372497913316998366054751230311285207710704145958071563387695379618751772352034032246621438647870176833369152041118571352845116495819070846920125798605781836844195837106361607392186340296876325206463291714140890922188690314751150823576531061723611728138311540960665406711609261324003776654419384873577302050294263984081980524637052878905414553758993205062142954905043358723014597393295524014089372551914534062759136238658767018211416932471235012273568805216797870590247420888225289445053088087613971495166261757619069815300252860529186479508231413984287849389272810613708560412772674489575769946271374221421920225768973118325211584345963839444131549057153122052513112009094919557595611896214077817387293382695533783169616007190513592600786744782451177887780623577591721533955326931313889504080455674817655154103244772135095217073934790504121218708437475779266157148240757349615679937884797902270498509680829758040860151153078880090273359804076376180664728207627081056186982415791187490422308113739781395453606654550335170972894827323133626365932612485127680710849812448041529081936723498807446962850057753712959248422378299246891931859567701018626311084760674161010958809241705818228711445560051829552935682106978009575853930876766328901396978101537277706986741906949703544110368288234557042431838946041372700564905162389443437859523435993139360661069167005194651678210319788452150920827336408316541578799318596892702042057030372510316846872324931489825890678295320431709147379590414341994814012262356422325342167836802404813285392393371816773999464004390807000485811430439367490232264353499275400452953444650087779997790276344176414219574331013162846430922886486524271693137618938532227540718714188085127629553058427133176403966652053670542449823673473301762832148851040069327523248676219521842463327690752573056808498782792652034953785756767736000197722768713161705872954183325713696117161611818176402910941920847154074246332522689318682045216545345876840880685433887687027411371218948238574162019216598611399740876573827717710251976215424409660590598145659045496594002635907661728460990884835610789753635283700561915196345948905466520663321505494585828892275686885884144442207622734386061409568988446755716623648977709230295547626170462141312150872371251293504798299093172102629948599249024160261398850668527683892594682908736673931199860633583401780601852657282411419138481484565770287750559419098695279299011440036422975057999895418407220173391185695117135626456100951158210819652663480089622917585372332040131105321879720411332603846582483688360481256796309208403036787389411429749946328328323813499028293454511453460033049160159328924059278410109714648794288225263400482695879580581402093310325554793456939447707399529688773080097533687718199573639777869027139419313205293026469547009607483608605834590976248418594373984352029157981845793273094957252480214188664716947684686046052070561139202853679080065647605492835537866390644213934095479383446929553804754545027994601923578917772942584573265979800342666831637577489636703941773275987727103980144116725468148237395628086868980126788389251725030711486853757114093536539106840545923705135884630817740271462753919873928035886178054900040403928622256955311259688590937360362130516793991191043223673010172904525208534113149516942105494169053374084021066695550982349205933229263239286484189234396848144255593769093114032336946365454373118296326790861427146516762237879721748427423236188160095976316765734745995200871813487999588398306607162108321083520681093989132899280113188957722015430254503029272433601621397765165480001702077043394691499578490175407982199468994247970524321000625533036619121129576756730794749437912511397617841646999866323780415231730804041558984680282678491838891862688854194661623579579019391058592707335178654692268074391447066926870211457979903343621924100037147109114369771363740334189021220780783964444129393375400859874822050584957256958187812058183001096590826579263184894560006019767500536352725072290040344336001288180730342144763088410859768411648826076987908812322681569274445067476615540236520993196756419348889263441939724511875587034386069161301524719218190937542483195827328121970814747782249341438628150339088780526725011329748377666716743663841550609852055208818589570848625558220095969479597738426904086651301710443796097469075852970584929844758866475805318311275045321062709203075660685791489589450269921525206055822399478227936735672330936012236108948361828207228320610085599412366882249287106895626224757702939906434001268508871339716948203385351309678304096878203571428096235373245072730186220547641007911426411712318985635839079544321635053170691479777671114314609176642172517889217308437544207549002751995871999712663501606715175123201372542816219887941935817928759800254696466380782106154127310785289597749265063206671379518765204359204949384140868953764232059680983913621009101549991726620979809956533609113221244614216471362197662933547161129502366490240966180312069536918368168295436575354401926499808085831500755783383781719535460730186682644932832795886984344330827341307211010404877975645566219821405960987607352557746624638637303872236778806493619023953912222866949195718642128989434681107654923142166817666676014638825182525688012568867069174816534245019478952368690031865586171316547856734026755969051573549622025545037718872855648692411553487015995857743983062592172760158255518432387297795106095758881618478574802898327322029822100067579273209190598188254727395531370291462665702473360233034788047388172094761719746145506670660541848005908398062794572373850124242772864103083129385228005978001022879866343329380548725410027264837445114399215777185453562517386718183356565473927570763809698227106452093416954407007708854800525734282112681005637067850868230479470851563747875228830329038594108381535596385767515440462134768324256717488199406488533783237601515555041700154646485585350078399473354129322239997884081721821284403432422030573333108323686743717315505234461442805924606191250655217764160137851591916293690263125451546431218813098259631958739489491630398764626110087345330786768095252059024462634701530750558870756363291262584805843652687204261070120061679218166337756425077655267201321368162880181321544091402525508319916928389864353280328528277301121121493602089368523062298959271368128845824222467159019063267047380382304783517045263250668886050437068549942257700147809622236001482330668492063502814169547370830648912033485684164038143807321998820384134533129643726961155164266126733331963657174043661163385816574174985414646155052319577528949008088111756368775214864505552793869229623495214371239750243494295634257048283306783908208342900815019715950915132222717638861222299290133714530750802361159630439983158268679750705756336544116771186045162267132237459393431960779561271343333127836722984413894904215582287617214610583930118033500179837524809218296477981871644903778175668921445247520209782012458852161356701421881498783025210845605498156371845106801489413893335720730962742349333613623514544207465328084996181394593639607615320479707983467448658599135737675608668371759141774582559402125313322399421689541849592674474216158436526376764484727764674434771225442171363384114427400608231090535113491424299240406842379489945907953496592062214589712929298938415856021519167563796604290216291446286152977162073103172236347802915167670721500564460404924398538672317342896745372384507880012267666372479627854212345560515380494046330290500696790306822466260053249721222227573625007759052622759668853609222319686435538156014113949830849294426603766825402260191496121388356062372434910576210397215416278370853738068164745423593434116843928255368804730224344467758081329905538851931595258802467514993714071194564535193522299656094708379010725489004296797036225368021249926579561161130515698543358150375461778236229962479583931730342485508817752692719699171043546100834536371896071762366882713295491846743284298759135017731975470012264411136084592532230598845761888202279532087081528102675036848031849874304334224186541854956777282907342782938301667341246137280619215883737433587272251368018307452537913525381189878203947659465579675077692373032155549441092704002078723811465859029716961619542972411185763630537679354460006275237938200310171897742446043066246964908410279820332917628027893354239611023635942118842279509279432543593507574158695489566853492083378310903943478941723940079710849369697476352263172831826934367472038908174549515126313624227869711511224063100386774292593674228139385744586055688481985009846104346947099855696077442383681453425361168879114911911673722295306352387737850346820181800634066121071782930346598101223246861080053811275262786166192126247830005465911872660391698027161011822115281054234669567641017636281639461388360051389250070529645774380267609080862270762390471356554603549266614680049214193248530792220843821485728751816371841047802286937027139014787781406263754556481328353284616209663101752828370832231802872184791800023825349151349846130176801468522580836025181771393584279442552283680848445643220789362396806604860138851108935803140896705511197103766440947230960905956758409865314375009518111852993633692898729506606738742832003160194957019093603100799319718174318483764088417155033790617819357916243984021106326850178387555490170360712440146178507383915599399379286967666017481621856732999110769648816827996100766398801701939388602425823272645972445431855153062593083960326743512202376996682808402300047879084158842557503238272548534154817200475648343736672729489937839212373916044607735804074887778478547575815545619982839004465918877994117837392179558743458430553930334751751393275171398922970499523753065422110839044960810469912646338758294404322242755692252725399361196620348409631613613254715684127571445429784466585014269658013411295925013151986405979538867534748077057605184968815097351106039075554163194619078948438491548580072084546383170398160614581402593285961409259247644825080762493831476632955387922904183764483107635186256932066907206793628304682163458162483325660886262649471905826217864411394926958216211346944537830823719600495680660772596690185839790934462039140081357176118568273962498351008670047441795062762287444574837293456312907002123171765401692079999205454689885551603603196215333367874696260942560793449159067891550679408120263081010663908644395717464423356785233281644954337188733691167715963713787531324505319057294848262022192928233719301440869649187561893401113257148859716318218795485414585381051070495226357246144270974130970473262809870591025717682410628951871579561633393573946447583417032914644941878466774106789003699101213808854417022801538107260636173026323402885684377200060857553963870245067796170581750026415607752305012463830106106466177330381741334108330190878429711610538719432049247643852891641055702494053166217593004274218674684628770046317364108760504564227383848313361161773349478604848987906043183262259896890625050455704459218993998329440216516112519956472758631761124683261833404278435817679942538788774715827518035625792701592362295002660995446986388797110271266841442215144916062027146953692218456544690352879193696961320567724609624911587668144670387785260593474906854745854454849338554757716886255789458507868899895744722446884010063466533602278712405028007533064256345107078948136707439490817023270660409015245528338678222410567289090725271125509314020165162810906658120025979885621038630907760332095259950471327015554286399568070312450188881790436493476981742689817427874504913350075123160706099419404707499544673005155664660499207319325191841691116969877806504945893620887834660165735207316146602554673352842131884398579054891991072877174665327740007906783796063008248773293836919739101419809400683919543823841817993904196770415697831346350945510246392356406013551093629363627252442089002510772779845960041785782883903288445216159650069739380490040987783404289896140173386942480129365231639837603122378656911295886982498572511979465020787618603138360229423978376270711469638863031709431066624010407098169971154019835517754667075109145725672480207445519066159675106395407233847152769457001168748113643122901623403395509686449130622145377164391028773295442617676411137451643222115765996411562769062278854841945023374149438298987580722190893040006081775407382139941044037324589346736022976682600662035833987056156952166514633998068424598733533520653906515865852195416493705228514516144847331523870193617786001514242907843634041737764981410630391283557644313522298563208478558152976859767178039102784719254266984407244418395018808866567210238955411446961500706996971803235054776251637924825319676338563809609050318389120874703489102016141679098828468050658563704607787932858505055973818907144439337520897937114594194406959435425810326222541421190330553206497465011485944730246327045181963985163531805967589269483860885251705450852123006991901818242722724831781943238856164522677717622032301947782637628012955815319378325747401352682217997693989181195478132865773603452927318066235882457000368562899692692200757785109433426414415313496915711775631831730432412567893642178458911888564880017247461051045308177879483166948831247502256177805432474874180065604142908992103548385745851365359365762574435769592183994735625877877141262386798088847595034546718321079735232106182025782731849253226969604237808115522388249554148014805940312203301955115343568938144052869812154668365124900650562610068360097692350615419285871653761650600742613029012812902088865334230884325828245396174681446324397594720712075320048830639204790584481104356219213176919444241459976764395417767658183739006589540314078410571053249317681961944207889248365856832402725286681318767508593812380927707619887039522237248472209620698486419853571804112967216715065316967613100634532614798596143779354697647937032002353989033986282576940361863561664437022943782615198689291020138781127763686972123411067396023817244739687540632940027057332093845498865132763487684559348933561282547986499772257075382094371935948146533978398878198463776196196742024936241372910877819244456946684967736717973123519036336385334338837814931368167019797964896219920865019382859505455493553100560429099184384347681047527908794206592769934333829049036259925233630255788231967210813984281928952616135614036914835456350829443888975183394314506320068585374555822349720590574824051151232205637089475908664052387285982921557073066582471965939837246896727954067149997019864132007709028372670336931704141525622815284055689674459660360864283794692362852505104555937486986007981702398699657495650515155553455953599405981388260441108998076187321894951291209545839804658005065876069863025160391832353751150855791946824685950558553218030846615281149295568660373718542550724234869715710736459564706481879615575188544223497076503068303762948376199954963953810326965356186112123417412294669841965933784289815132243797452125464352615376740839091672778772383576856092489162525629277630248753775850485987759706763528117622638011462494783540304872705580800932502905715780373277873155537584665782807921141817758032826443050806832848499448965286990850464319190746881764718568071549269552887587968922160024906354365878825300371136403868918780415725528763116848325560195319849112652440561482675756960715717002662972633383132035972947572794833345513995221436062794727333950067529126053125583006882438183498644515318261043853098908867086779928309285867065833734076929353973739476173878727961059086146085250073298121557523464222450637487596652536352610936591662477260059576976903888345109376847313548700517005776684406486585414800933407995683919135264855996738865082811747734350715204064655008700694635089133694861566900806314807826184180379653716347349715613810798143517173414906860078097439738918652622600953482434831136612360030039543638287323514619258498892974613329688187369586430536027355309852018674268407748900810819281960824324227483546737943113601911683248547419252727275515947165691479831638495660520827044399345056701815804620106156895573712681800510045501315771447120641344674687971094915106867435166241055138980266033942575394329575351789773186230730303299580292000856143918182591640259396698017959811350017654559345702940248703735820619048893339253879244955514291400650969483243481730434504978012422591039104938288929724594920613219180439925097305871993668147234939961532215866329964376008043209701986245844422807069059854951410559978879919524665806895534942977412488546813256706108895119760837433441689008922990218583357155339058539248091723057120455387868258533006137949948933730794792324359784246500755896954816386507431423509950630828938578533658932508365782384753295689572328906011974584204821348205576339358827621970479242693013384536108746338676786843941577094726697498609529012886911075457687406686345933456212532382968387588683959096306237400779599743751688282865990058490240695060067080824135013992791704195230210398893799068667381835191257614149611656367718245859029469496908199344190094608096300822443203803080378603043524597716885529468202656072959114898856736799549035122894579797778257658663454604597787881052873694659645312490280919493432633340816101726770869838574311314434595972464092444669131412972945852535053266536180578029151208226378809411643759994150973496613601479029189229496569650473229765314923607766127892420307911360029636912998070327237767725945934419467378201607206170719300141864262174770187926903256283086084695519581955038661199829986842025913257525397640233662660743259335004655380918235465372968166125933802810657267323598796400861373778325684581833725965241087980280541578223935746737744848094117770754369116578816902142947550800951657131840623504318476941646751736577109833685152387178075986383039831768760826629575636395691666867758301266576326251617714905693232626415322601951366602729762744964086367380311522611209009309875261418504614782464977151262239076174401205281168778770070761512475763653018603781608415041191574217962581294441519693643250924400897787006019854776580046556914653603206919943115666717973193117978176237221042546689156584653859966014291910472932504129932190891314908548582270216779624840866970338503550683162450333716967006954326650598386013927283233776083499884011413854149645980084954877694680450293884943744849674091119526880901818661212699705045095453186332901141127034663936686249189149262619883869931364577830092429272998196067852229540443262026304848867199111712464978848683513588464999804485901148803600525051133758190608179264414636124057894824221367438745853539176890174384103759725837387992539337083336676492695421623426836096753499283570001456602080868546989891504647416673494578592040092467220056364109098793152883015019951741517046462434247917702339670873068157022023823073547101125156858582249562454474492272975868691547866050740954134788901897875674959965791948123764837752459342249073475656428085505311007366666459180160631814585370728148253305235758412715473910674835783078762718175869286326409760018460704772770681699619579287482828792613504102875289128533787808747002560427489108213687314355789563829313085453766720118616850764962105570777898428236462680251375381705842997008277322836372678604686515108498872377209124987663660127550122748245840771866143274541316165247378371418007802179160993034443789824940225375466831236866177169323372144319190146776108781395509839000549384259094794623560246689308437205266639246018658655928329021482542498574982900922436460529798584107091425600892232392313563322317804302408792739648950382695840703719228175266901123620500455949283827278073053290332417093712444674450774898707626564882847454122703123648252492921812270457503018765366997346121951744362665161601242648863647103187506743431890238764311619006006803886164970489234585351245306639112677130226935924625879484386611775091882256918379111091160132399107976723773667778928044323029047625939714595558632512812202234858246647575705715782706698144301110871123800907075695777887908817394405725992895865720324777355906752102299203060733332449355474972593786147410428378183995474644842392402306281105350928182016906184287839512136686995212065298709457361760939096500269252239843723293798985605158312756084923713850591931544177847424665321654250073979219856142430672160490092791111544725736033149857849680662165030351715455163226735050566181098268146336375392794071416045747878036483135388699865076414289586866021728300888109070422918879618871695213159030245421318698237151600618974495685934596239129133435266421551587539693851828994590597500399974515096819905467971546182288588693142623193369051005156580837836429188741616128419429922547432433726118949845109557570067588362348363097110862986609281878516323316663358438842031631813765865184955076156753087714356940116055141239451787684037655376051198012089059205530359905478751194873347821087380554044487282105599751714678499533915118468757332210405276600069529979525160936520726113554699928610750998925470805639053569936731281176128506375458669056194904183217511400453619706225980492586636223735170164197709051558210889837339448901038797720246841431722727357926210961258433748018019215958998242748880242545078635434534055731143132196431676837031586824435851989115765953944760619826584154945363269570565803124932196398566255254724942665557714041510478315773120122855942451871427258893660852170049311960828473600160586446325963547823997402167760172918093022479155371800975796204723888887846013274528701074387118321420039514289143802982484641961177888090844775149701574293888509428698045262112713336260468319845659605218634850578067999791681363793758236632100301575103741580591227735383193364570624787821477204290633982310470228705768715617501034015258076693319174200734095488816686160569977783061499202689461890435233438844469319548487305232822265226203608407328413937090822732817056597802258187731323379587390903731745624951495027248787194639828447444101428713663378425037078713834239738915414200542646463712038532135998343406733091512567533045834905882629485880551790397846420994616688901640702903123747277062961891286579504706806518909016660406067214543005345279390483862710814630552159438708310455324248627221672213141803612685806442916053838359776645901707285190371844361498133291537224080826858531214442153378755979184365768426309733551400383592150616985425059456033088074353259006988687382557252033102967190034230417764246150064634095203476149673805185991776699674132728678085948907586764890391604323025344092775966037298402229310565313807377293903378154980129152408558980000379188437058875176375301493257541560882285938535812423397544695573296099419433775178974665006291875799542095931225718437967357778498143225110105005537539353630249225717512907331596726936807723672508881222379661707322615712155006563633093383574288978843133831719336368032787280508931740896853962427090635471096236903995883897770967131780054647727932008440678849326295577206362805085851772177293419377130880131034115509318833904379007578340007749246050342643716328045215928719041414174626781476978321531412649091220724640979186751220449598569170092704888892241791481124226680004092905942752110693454543351294732458902627455767435204740780346392308271216665403468216849020743772931854139267928208425180457476745592752501731883814845237050017927187215730213371933452376343248837219445267470907845733918607379786513916073389355243331919123934923594064124378973161352299987995691117790610508175524663410273261660724493685003337311125148655499328519446682698002469598122934212242334080201840195562798898054688623688253730711060879510665966906027463213480238377676405770714335476256003221415762188596940612072992515382090235745613972185926772701181857584040323943444157616631579329788030435941238680668515563388818210898099583962689812511824561054134008180655177908685758826068339821836732720768692932809618965463831282378950370374595907773657743599274094295332999811569298460234603469571914192824567340211612927255172533803912021107468692162510505768787498512723425591415186395887576022382055827198238459190524478551041129549385925928593483642894420765690581822298296880262842081053266608830571532105414276353861612369940110694096366383926757772524879635645974963068880858450602110155045018477366770670737933333788578138478206555473392844364048384579850058106173258208803666423885783246081890397769077131445480029923805114824321965626447266147974152239427311600990273407039594446808668638600146962580176891771361558049285228195425165498044087918007947100161044364381465273057993455204065352287910078410798229411429220769969920535239672450719875606027792594961478543519941488024912952464351513033347341219347901481580733734010221405916588511551663025263429994952376458907083873683942800373744667293359189397766275096280792549244455016094121475586834288947724533871432302711774919391106267628497930205458576895525428709498974017667053224209243709203480751999955865968252258971353029663048727098232945918111684227979025496639609658204147217985820452733785498562414255029638419426267965016815095582497798591883242752456862583595756017792711641923717686445686549663217340321055903321237070923832084529363262020820160308155126102250669304634543395254531260466960864633917346994353781026435100465629089511527437524507009701631595600735445739133293546199219253027423808824929197307580138006466262728267105401674450014872525984784239497067585481820835580846255870300578892629190408137887756914602280753349453501287174797788445180141715150339040779706103217813230794868687032099621680860370715188681990801083274293213970922124910801717624908678479705454421164694807186845940970009482960521634280405141643714838410799274084291383086023113015039452388664044882598120472731911464732630525407820264152209990783963882991556593727698488042427336007442032403293950188805519496939747498895710853049879024741091605162848810353130783024363253012984872893508434906817026344577364598494374478783989697248941560968522954557355014700167069585046427671305078451130805608727412776451207460749421878183571687564495595837917689197392404815707700990253659543608136813462053189948670621579320646351962385385391291492231359740988702587860404266011109576785865434769905947885406111875862992241801944288817361359153260139757395258128979250206107018212719011697798904862945655217641988953328180204054728271865078684125125107518818400002281461485760985644078261397997730752237141235683992930720941075972242610647182913159838960031412546798052447888395987084983637837798345668944201005655898590031596585011552721144778695539960741729208022982393044015045720235691795165353420234569506327672963116956924764098099615784632491798160947113418376957529103787616265703749090546307477087783004455001500021790426464210104874547111027265476155210407653716700086589096094590160035930152274517583756195910061980751387205912464315207479723419146979421517210960686009359736070276893348470365412815652925536720037168214185699516970076414619591316936002901349063663773259637417655579325385700617955789617559422484244027991929199521117298000968587445797337917159696617431468817637473617468857827335276254301841360174990093189646229273611259714597477221085446416495029714973786363801738020660496154838697272709965421023628287894571397364266196904668060623727592056578887909214309116972871575670447115606363511864372101538643839388682177083765128840023254838796272014285952493838829307732079143914053270220420356145434359007805051926530989785884720867253182800922605154948324620373471436361692790833535646878051442282659318768249941930844224041524103085632275588076291447588573538177983968751409809601617371986368671422758722848259440628190579855505975712451369258536522310874700654527342085071708554210008532581051587867424103040084214289868185325062367666003605786880560668290980806093349804769468550239527454598750108754301244771465612304540312922464671219753560117196754122788254639371738162059039605254112139823179888038734715295660014358617862197306359237737077379823728241826586726470621977099094691197323871802602017765717852303097432596656252527204273225797966417708244392107104800637942951360962087627874941878029607087455234921379408704441613534786204839483241488530717975168101628855712452681271983002490582982012389022716562930890760806535028283318780875288022312978823042474591922689104364398294175418502033470438914456566730088487483867917546804290983552629327307309077356191082860939140617022335926166224111996439090837807068270522414819841127842951183228484861818528469636052131276442491316325571354303429209783953248358298524617411771606035895818495516518805595366800502047475290178685501844937226007550361511967095539288924508160258666061340580179530453492971529117772229373591329290099012004150621456568166742728000184079287681991624177225494310965271783683112205801370671703281345873774137162421488157906236363022359471060940215135895603541155378706348066822130584203409793839964938724634508012465919898894014563751239536756287842472108140431411002375230096405590117309366851784990768681735298356044369959876670721389212544362470553541516571354825911422248575948426300850818403086719802470954194928717378080002636617097805324911644312744624564956636721089368275495769827547118817234664967785460755375305643344748487594662508078369152995908278357212262832160114530987745862961471334009076132080555970747980477269449463210762512926967225191044108494737109125818088377847204815405435444680434787807314907249765522995326686107918691227791758959241679486130949595290115296903658643140201801705417272480419693669293968516455536742085207634669054041898563084950200532925615778701584465960808430055308253062517410142118488311385968946368286009677030136612015102971012840259475519546616990645282113027868516321900942131985634253038634194809990842774134870564764778377812225870690013130024952143389152949314321062671592294465627144680683189997175392292945852532995314055116776249618679935928455064138300355437339652732166530353513820379423442976126581262016431279035249291901044119249193507661973551406576183642590623873098468341566450746935478724150729898791428119479190904012128239728713749711739685465971454311288148105164364179760029883792929452893484122817226680168997896346626643768036410067868311672652246124221467864053042509114739988856952527086358890178825164021091360290528846222663934806239317633601506319976765219804193055326199479209307381769070209435805003733418139477995498567899920911452628424227458683099318959278449690051376995009147258503642826784728620693024767392363165895133125529850600922617902202075743060507469988527946777027105590218739087321663071420226336642394098641030791821590578680431801682424437189406256704489012960928779200218624766664396641208277380793004739100431955817822240144493572773607608356095516512582028063951359010479845968935204662488634436277023451125717977157166529999709344469563930908546084813393742086388682053581427547073813172719837731010249296728000745109858450447628033845763409610739339756631926877445932792214746333991267136351672411899948553333808595465470172537328378729411553686619980662048626993445356687428573241489840376121549108738192063422739680497015077946099224610744964368484180369942107593463601373504935734488298932105861570229121933245743840550728726214494300356123481761741726516085574664968611763973102329142206093971169495576348264737399645502756947936369279488206791324555301511259861022902772303008165622131646991914543471546683693827993497265866292905149405427653322812719359974193758496814713791075490883565688543880451965878076256674760652210681173783455720246748878288978006354772357346614496205106073130004043390934858865856561717284860247587885667433349133437628230969797602056755548392188084083646757314063493168417036841946409456210493420766343304406552111877723137901540879782462968513467031628405673164391648525982882210033521395772063437708888349464656785449945466216103697911316953695909740591359527891909415076185862896016307380589367888272412521163198032352798747227328664703692055566585238380076059443156552387593152396988282995892218960299800922376463003896618263979856315173486241425780022433048502373171362828533992737836998351271071732318820474288450345925215124044710838842809230732142062921483637440476609838955155554222764855033138062196908022519217213107732053412695231247934194014977617978929241991487074845233450253298225738883479595031194732416519458855940240764851929237839782712852930016949594436585106047549199084067356145102215815323745953489594063721679786823006850320497785791121968829029475360306873594878514352043517201475397459552831515837298858638521708600087500452653717882117315381059006509925653325937472879958459716192143475678255019935270438282520007209948650119709976828816149239626831753542896284112266736499830506284354039589360361146977235859477143078665823140354719544462469467490317191454105648283623209363796821938992802250389108430493287474601586189864023685282007069335840993015661155076197989276939181020376028313644589545946239253263833978382721995997807055007897864626769972967758471338780951194422799888410663510609771775276743671421830933150814466769203473345614275931888178701784681176273142317548765119795974891230159119286575456239023613447446828663126493148433319118091814639506307681940037088992282001483813894671199274149732432955951608728923322906101769336600813134916556930757927618627140308937135754854130714375083966833502673725408934216709298500758132165898092632677452398617984256444559010843531130944085178017825428195413175110892375388733378273778283919898778327473844526113816216903178401222423432737376231382828749370599083061554429016064196800668632752357358624246084071456878178234027307524040768546365295979400849543186802365314720845157385999784835973308470074628429787931854317645287356237754859269772418446099983168081895300731944652594069399283401706858969997815862557054394737159285214546563240116279482471908931637411467892635182534111727834958580948350357659354888722566092540022217680090486715545105349404021715859519031232098473428398931595440503271061468122340790361539347475201460123549646951732852010891151709508752719755679300546970865236052998616814143853519904057009122272681535268290815902174616670425394681105043553640197425436506463710306308710764582733049698375473522113135789463657037925039630015698106656983253592158597655732051919659714802397686486918022796663178927791348577736893345214831993531546906517364721246244075833915649606705046465017616181134539484086879459755368186168592306865497376853270000548926271589381042936413737457151270727989195482574056832801192086947494241972289993585651496060210754915040603390438218080492104010826968207279918460279945399243678683803862352109264281824117442790878167845433970216540786898879453091213671292509614853475981431229143556873292434387725711063237494802312745630004852431022458585356622444958330807374169721991421112509883576982941901018802620275852185850981589017866253612238477979501343855612745123455072830739900297439749095201750421932972331655176158829714808312063205375708123860046703111549719078983115280621017697028166510802184986827167337936475398677341537859294674226064175562124279143047203834651225493387347856686802196809330327629892672039249139778528220461134123867347261797011798470942111619052478646421065505287529306348399233163250745753589661369297528813216699707763155464254125428919059398710888991198223015844763324135215282191211167642220075763403345680401813413189727857337056542485205198554641351433055863043423105423802128110826759646799897390910354468685838662466115939925613523030832622702506179977617838004500313403522063697870771783158281693142299964951329277519809033388425802494514718523116849464977324062068697061891962940937855726614125451822859796897948323720858049976985869051888003273819978502481960932862589967417452051245150986597206616355968491059983135520029149015913387487317745008646336224036542165290659105559548132898229010110129802475748121545107874914258434398076960212063177036233265254283597800141228099039051943009565523607568596386442217779512193380956510410510072075674411479163444808879585143145266996735776505735569815148630139530533823173316256559130280968707621890952229628588042038800282272876111981934581950368338590369756853726368674356690796274492339731616949185050154753667541266874320586957459255864541316401327324287952945161819566472086149231536317863587485140720539265907459719665376295783507921282551699222957097011755958558473851987097784412130639906778179523045693221176188566870806294816835196467530083556031355164660615794541488332964651540251623763668852609323273824102178935433331882535619031992952194616368280914021145655289938827152418766237615503834990449190793687309144747533570979956904312461669844529223289404160837301926125994402200871382622683397160370630665041332227830940112318232987625419303008851165378701757618393928982282923795224174241266875775688710377631771400125501925391473709891164662706222237583215165735047597071602448498341347837637029966125152066401155641578327103578323883418941191081673591341240606093217820711705377241520528030824269003956202721608479030165162730788056542301339073966519439002091570049343896122368284881436296913786270176002403098050800094817649693461204151559204247720174969407614505053283640417281604930248038638673840774849315493328111229079429422080882573578587661922544869743338435955357095987527651987452207629680246303041742886885385653542285201384578588395881034886792463859821512501463671940508100309986920224839684005928254804107977470785821408294925693284204477638659284733595088851500625736832883693725297229721812598277589674976099628268122212238972834576454591079150264566290203555925838171351604222266819973243292399155193332909599817912438786722448086834779951239524991007479927734439068094732283499480054468637711361056840215015636859108020514465671572532635482173135870410129139358217061120899522042383318478992986451663752975915376358605555689894994456302591951118302827818306044510117102973687602460914165050676112841100892000313714116749418644229556097200257923848005750225208443823171887245397120041798331299202101657498963366284198149569120075657714141419674113036142926177139048253806054086268737601104504974507518966206509785077854984415512214336677455356646017677861515126148160968848740272818731347417931353763334201528695409405121586614049511542135609687308664573461963349641153417369090967777599206128328506461691542226949949729773718108872347824481031534347244269692109310900894141825544736182424103840854927559592561805350392233752581560402683144862256456777784366879933698987128386303405787592529984805970892956255554088806294839499721378678244868807771047546056956628887466762737585484668543962536485877099648015598794679299528223874690683166535202774319973218767475897162616066888999846226402298655946440788083236560921795989608180494550642282840173607686869181027808868960248536231795983619369422117236331344663579288089622088888445244410571438543823370646977434675939675158182436489126537148157517181340418049226751035769763632475482042346615544882839008941350637325455166214818880997043564519481790404564989483954954994089495038737219996318975434105877762945218568487782817430461950082544097813061381303053411810606567047438987806956694566237020413174402455533666930820432977241639341618851375327400152955099326030151044948997939171161362001598733716741454252068202555888396821591834133229449285755550150181401051791288143605630143309815748900302832271488885647425189092884840654881137007638896902805188447246931959625524912898295336558073071817114756221386124806172394657950780180234616459307292873355561781808442943064192621090545852898891435268229390272282323143351586899695591065872948843029704161563804267239665150980387994979257033427325386332646910391764138171024220101657971119164549258734569520658611235971189400790983130000724962521556665148891933653096770191486560957515456172263902384262122350278501668913452434855788825055795600914284875824159146327765785065654549759742376536709122561489007816637435007833421138638658165216516278321749015950092749737679236803949887442313128497671534364751750812964965079876350145066357858993015942603052529482719984092946278384252920448588933421954438422680618153293036198173915245978935617765460206136822372676881463290503979332219174783691525214687471072852827912921495747608926502851280768183720258473908714118673307226669447045921710219899731203459619773246051519120389741553801246039346147428881269020241614931629502147169127412315874628855279869031093352320732723831348686280864781694719621337769902739455102832148158749494238580339593158808279895957313059012739824487450882085889397243490697841515763762344661255068790749711830956700065403245397123022795730921563724396646440558327340370054725291018067696042919080242482253591902289351263046543288697228166955303667988097536326962480966868848987774660502460693970942478302221477884218453124266352730816930193019387606147581640673700875478055853486485128860308611363561955317524566384808139238315352150378972474999729690611488117077544677272889157422507720452954357341681571279798737425016827905639223593615905568985285940066586526788437709319829021424073566666000013940001423266688379073115589699718171007442149959536956958188107296895962875612572946162289613132959282858265714114772520232047088715202988608600213278521622224836755811808669768321300073421858415556781426085320081277612769173489311215961697473424195914660864100077484597900616596219280307313338422272396377485047618827323645762817420134403712643852445389579392343624131440158188424983435935796076387855299967139525533929959007805306730213286949974495440135478822734652436177283871328630718318414539729721631102992587534283585609495434187175476766107735779799438156229792809948030512798969364753198887366385183368545905662799434402343655668705943230635002187716437585896639413668412129207317325132776153558276700378093710883700898393774652707505025831844611476429223094159760257390252622714683943465956600535075218602429153677974988342972781251349513855616833011693736195019121244106458991348026466386463167782009941799676419237080817111452625783839061266796693009352245879864179925640317365711973187395186797093042886038211954352220040333538571195294110612372691323000358296805168818038357915935407635781375932131654121125837425890600970567945713670663196152962811885277656137976118109191269035419640638145863383860426029582309452511372570302445384565233556515549220185386869279523650277817238626387238000802171755626621949504357843941413811897896320133455509968662507290238235544248081273815595071373882545298085912480850925144212357613072999972557767988280833209278068596244467382913081500660422143568555573996841528813046760380852984770779035758372724507881097803302030911136127021122378155116891414368527224768756312023999084509230469237716583506183573855357867233711728178680093464549456787550592640819692391197039846748422924505214739349629630322608174307359039851314215298260010103640124091167277455254033336930692261813742987242215409034244297520201897005550669806531316374825705094770797306819065101893662580796706045365966643719363850963455886771828210546095022705700770081163955430886871248081032334788284136328749247608073380102293801354163196800979953499383274969686927648178885671454365141905155318331458598088642730927523877181063254809396700289123356183056761542429069223736106843205891276359285654723865293475326445448352935950741212239396975564970452810164823086079140414061279470112836752602964506939312824626114780137464675691305422811175111307352277654646517391607858891253753837322912516506204220079663304190702744594480036201735292666191534766401908305025642490459230955109105807736420862522808196443484731344023796839099009572939180188183051114727384614249166859286558067234811812495861531235204351177166808664657230395497674051603973628620453306660249768842366586630385215940997311828466805886135139563452373464331313953017371945708044644705272355035993696189842446347491211159684345185021216293800076405336712958751470908969484956920442225892529210249270511355758412332537697154558515234554407896588623903806355522442404041591284609700273571772702885433476450352658219515759204280864377416820267142749184066296298005515220051322374444860541849213565131411517688235947632560846108191792147491984553795613170185976876212283394581120552634566099149059210979124048408871625498530347277443385162525499523463743073159306356595665058216595349409702158418924635074665066020134622992405255692665862596261687981902261437073874911854991592410034278622383513564719418253712951665078511313646036037589339140579872723002461867004889298546292445229961411940202311778777170885155191260297999017130590586370060490477544847597423060558136158847602498554832871085033546707225552818986981064488595390621256881136635765518087495999663045425321385911236715988588284159243465153357502055028194703729614350909093517435181560661443581761339059254970793267546022875587849141160443173342932799480320625871199253510109758197434629655141498109267371759548741857403573589748964954709430506560574955175302773222646833796108763345109379152537031422196261336292681888154167155679746240682155812022590882793201033438415279769528752712685889109255621028684551334109647191373375745785347214057838287694004788592737643146992937529714727973581299344125590578149419760686252971270200176078063257336900056168597325769420924872585362937696707509454015136674081049294959989471985407801783349077607289836124844221180677933158935072465370409303944530213502116912861561679903637852282887816807231376292069161555775632059259325907258721866220539885934353682679444128223068613513300223161211365777118019962309848022332580443138285975308983515988986887987054085659612376426637790156025398693837084780124587260244426688946034474348597578606161869407930168585370016169878414697630047897411830593147403427718483756358910465451433231191981569419814453058326016184959960890635697117429903402613118507060178347380400821323017848776466993254432911288956991936558114814244895655417233634662418981937222864596255853928280664858479126182902816016970322989546481184472931566242400003631879425612332110409390536891365473852843805296517732753048684471362455427219484893711837056239025562538181888506089078868329503365156293680821984707201025376634765162859433657960601844144195776761241427729649935032545199091473089225791582166552636277445305781660480256796933067235470358678130054013064319465710712363858760614172451520558682824350290111020007730620229900618855905923788219200016507869373056455375995302462593540259563226056113095608801651452252692791094787423618477131415955181372800435015748570116847209074949995126875694607425197803953516298947049703809095788659653008949706849209875268952501335099109171755931100762648925144527272028294652409889997688165387831507153134819304930477936567613963870148697372197953602011913734332365355270544946331442863573945967653807269142310412766459096524118423906034838080569617549816877810243574719276684680536823434647460093246032337893061107992657593271245437507603736411153247445724720725758431626110883454469224311171351784730909111264739398539032431434155795180596484010885918223301372996888150663651866216568016341885126336406613042111776318219758174905697941946771320394706645416774658405270248649364972919877302524461202256782107743342175176624866561534540927821336881609003597618162753779478006756140105620055983844769073877781481628852842202001322912329418582911943734708765907928006057067896888559476583743411824696907659237287101093312083959271980571508447244057209895626271996559581736727921387043039751758780948928789967131192632587867669549377261067173780998996252572312401962252640068000546983913176919957909380837884508315484927813795410028888132305106778469331797789987594835926628676342323499439351406706766908779497777889114124362224412000489392843862170768934162102945183471653102485452222365466902320314784337222571495471419794580914960658025469327231107634413745160992113680281316695434281563638538555912032831070758436653574171221068846580455954469041660810934947592209733739250643476608031897852661271675886585412417211961354143728749225882829555510387897169242401727513889214494627752429187531583058550080595328328931691169091153361621525969333352174161315302777186340506507519138783615868935005031873740695740959782959362827330777027712598958352737382674881022174480598574206685469552752666588600014917587788490414020854150081387174875257348741869254639766909306942534991014429655095174497279178550725512578287737903443954492487108981120750470756744527355293393100743197688052205130831171869541221062963584673535022522012283475529986096881859228206099838219216119736193157457811065695376973847348179690156899553039038119186785478664817957351655354135720542944827887959829886148434498129172898439825037156835436927960690225306477852732723021475499822345173006828224531964936496503702140091380556412658511777638451302529166247073038998676903913466163647641261869529039127958837631669146514076917200581322061221757015532858274586012234551651319926210762098328666783868883672587116085919121196007666155614351530460950674393534137321658952001358422826161291087361613747605208580937678860543146712804370856308856735369452275638153717064253687205410622089185675773821967267423735720608950883145300817512457087232699024100034985321163854343482268302264271606009264839311913118595178992768829538121218282215040976923069957662398941990301656544132848774040666812841495697507301749051910347809451138412755655867003462436740449460409734003659096546642715505476273992344064610325887454840478270179884531260282185049252131698475945270908707164300207824524576622892682079393626261990088663944569436649813022880893197248181738512361094516752081974788586314407285200759539917243273234545107300285088340189453840073355079091681298096395865824920921906585232926769539863532758796082640875432402642737448879311959295492404951325273507305652601444018206438998779329164269468459722378796564969381572551189453694705600767035388676776339717908997532725477235371081404164221672560042591548515957432108494790224715732243898657824444495178733801262861108226159157186000206877698432294607133818139914205739957764593714954514827538536945999942849696812160456164509838315656849094208539750526847932165346213727278985755623982039901379002516645038119517267801796436178495895464570380137016477504924955139148502449581178521237416920647803275071571350059310884229039914393718852354332546178772853286360429746728611397097038183643701125472289334525642487536514193080295112988393634450223461156679104716206200120445958140499741767034062733340818449985018439261404004594007307833320265968172376549084630278835605581329873306929304688478678701239179573700915403834332899078858650065516732832807159993159850323332474684139245414874079080222951356603699719775216884738895683644979012541584563250051042213833933707542800016331234471514380362371902227986274591986679834940137624544115483720162133553000124037899586221814700891211942119405772970451236351428808361727939162600569474840708312477684522381978666324828805126462992877677344511375114128875968118513550317652590620499557759161092340934544075846924520691108055211339100995624060607870194222954528130471870788686349420329230312885185612172878409667776750579464952044838578660190126618236617516065814176534039800485265872998565274990590553628040908704647037314525527485881520009135116969003902918668255898686911624227451823646540861801959230245533765477944882170619581795982671548935660948339184553713142458090438520128096269750414742348838209269478046570837456930557326198205966074426451638467081344895849945466012379812149118686809294231562046627682388444793356169450757204856765821499328958771005768897842858526578795563704647228954716663949460926576754887921250611494887925781499611423313708585509310083989033910959443902322216132724972945396687976059128122702799825215811637843139796831979162368755375984706189472478130597314069087120453232283693617217601466868006329845205811548452614132198300459596514452105731391391693658822637824802077220747910446725890489167229527685186047004182840857927230724188941425872488274929525208014251841946180944444859540214810174649209131091692536455243185986092766333550427233530947731058463576841525265178634592603611389210756487120794707026893041591910342279685749915252361264815043508447722054024945677514156837567523618580066674514112468638193250662836594584777687257178767128659510314175575990924049073982044919694435713165938177146014020912767005219690005902609729802577112436996805798062853012296857818432637964047627288324316445475905436254725755969234490770909205835668819693055924275057559339780944200890033454234822106620664013728876219167946163554225366285495003302211694669462571100428255410631941366649441310588640027893368733134924393805522416209683393631516334408475713342219544278713683780254603344734101689686536626866988844813867826479715395676276182709026557490824327086400534220438569725195262938050268590915350584440920981871065484833002169405257424000610503614760464706792820261450659207050538653417593524866540834100907153014052083576415023243340679788245365127266720341675731907285151795751371878262144606584958116486887699005365722267180310276180831389299697436373581406717742140221444158051562355797285670046013662750984323683023369972494327497953986871170894156420045882935156053273727232257777240305509495412788063080020841481060010734443661000963870261861053272205299163629758422645626876139735570217892130449483887287649692544596258164794157997827768668242339040449561223357908225777239914093545064918210492793378772294843782788247788540910949793271471767143444505214309256063699499172566530132487204348548423910686281519617604448599520370464359174102109782071603936452438594104760786426266870517240981821928978121866152296420239850301044812340807494341076586989539298473754695995951526043034583776669490661356364187449673963625397366171179539388011486141932772212190969422231345062243905635362068987666164298620379150424408286362108842853958387659585189095931676351993891528919815396070528499812649545336930873657191587394704933475643705173299926253724694991510197200162535823697810728418353003701892793386144636405054008888146619214989952925810177729132671948198689769679825187560328154587073238545396245458075926891626591812916274462023025590228315025159897599103365879393861905464378213622155237875723609020489494579310901453320225710663721999246129737975665607739737935558373582599019575894283825066550817806456649105596778031171496251695212728523886771219203664069109492170112277434409788779053579857627497871960278936131763663426734605614439504883491298691695419737496110940748177636229415687263936290332455745671680893888804574239289991151237846212145431643610831019990805035089441618928638326847188665890673048925194840722197224560043376763520853233463139121435579438098117587990903263618290176499845294903593068362792809311249948246196613684960596162841723243677674751382728650753223160458288250173075311190314427901517607683975888241481881142569014629138769377099483696780976218150468963113156193300518190036375322909558228107792601852332266143559960940641340495019627332999187878983591912798978315102276213381433476093038341215294821611487360770493699584477066588725714231002719462577576750694133507499007109511845652106331227563874328957892161637874823997574543196143129227737441814372725204373718014991706800375717254287646798161541186734894884521442748881480037057650189999635866089713549207011648382048994855800148695815455346204126722056860234601823938258106745948612857893584367813782128095518829859468929434246106540117846685838908794042214523892086656049444804167961703012298675519864779581466540997028062136416088514456588072869026081223077544608864555044079469698884109840053318987628375016181601548565006382158194995944762421691969462024677920758024317462842190519693446084503031539070623380012842188974405434976538595522326677932433532939795855138692360488933889686433133294185589173158744618284227716003129408818051678448427162776340714501923547240350774381649412673663542523182559615353224860833843400151277177917438442165070312270628951663027249570612381584523160129978385698608140638359713349051355290363662405142940288503875409148111942262918263884998201203517314934052164276692138319491402676270646823018855059387457579639549252750736279244710076424972527382021652349642837475909744247800682422267637249329616584300156458447291500667312181615081628395580103449126423185356420075150254577303152021382940588533891478998417732958080071170547733036089216346570914352321868814808683180898816693300657420064965605667722805053249178418556585902805495783050696808688877889774775816598425258674132163490520330891410589063869953459352651422411895433968682551388051539437866462922748473678141209630492322115559373254365830820091853254412090776803216240545491921910854230381040298867957730627943305431800353301588435213657607084523647809653558438670404800500009196139653639756370417193220365980683449441155278460141006631662268458044710056738675028562151604541634969369537614517781745185705607256929518013604994398867131197192534875207189959024157043725906172611213948526999300584102361585648575184010420320192372759382984092845135280769659372343642651706702521059067479337513555754295263898532573999009214580009962946118624178124869873893060328401453996955805360381909103349086736408644109638836505842261505129713266051622192552140629426504908806037360498890398324304138180647412010704949914381518719364545332676386528711602340748893906025553713155016255692852047818294170052382874521274758588479743346497602651035431355321176577318851754801420238431457287216987149669559863360008428107388007996531364496168897256112149525034325455151941100024287255308248227272107869298621118123721618884860486668450154955233323419289129247958977252310940057189586812713518691991785834076102308782689107628385239800349969655850181205858311815995092001932180452856469051409423683876036921392570974419482543504841537252809916909650551103031303883684791504778413400472094410000603890745738542632717024484492805260021308073490618656542871817317566343500322885779442564474107974700490403163974931065703428823070517879169310577700605155133336454872099323730066103798187636772725696093205572326173950755723643151692281499360219370164015778548105428217448055022064889683694448153709899157573303404477756865952613274204240360018806946342373882874854189328398035900489697301313915057729331959939398046492495532608311597047007936128867597652570438610581629512873432748823443675952946033861457744809934237154374322927433016447363591908225947682247519322050364421079665873009770945757881886557786751471449163077191693191072673469094638878480802202725159201261240161213964718213944885168291769607835567411401969134442567531069640653070175834125034224902122768422756536526179836756728995189412920393170747976813647546037370219208631176476145683938214450950261363327606103147188000050089069847784239681349718095835089043706870291350814994382221667652085135538434192606632151102103904773394684266470506004154087242609742422318521576664850197501686678110059997343595328059048532529940096703095930762582783216310054411034789143661738857941651873968814852222388255406550867729520860772539099938497937766215685988156035875437864685666961520174520855348720050019037579028687010654393057635576301078253197342554195483455192641318721090065860344736219785253668320245051230859614966919904564258059723506259345049186623485116569479309270715446370397028219715375757861089326142848936851298282090792369425105014278355646702029150503020706841036042140997806907049987467374663092925816184847425074858336092090698444551761113971131414104871985051028953090650192441403026652473516964792989751989004968305924068420459672776030143292142808308459606825877189457504679972825552808843148719508756793933663264641699011425147597692742737757999545660377228712733551899455514817907832562362716786485661171086731476755630410981385008221907375643433880914852683623809872611266838156156976971549525498035776288349393061886906762534318207015786878508991105452199360938080614847697122400296428721732875807110578005883524294291322778636888307962394683751361565926971407660360440306043884766321079566944668877841846538152728917264307387694943117266011999448830206944804971247261589321871905684392529077097161936864221117525863902551320543391271242381308989882795272111534525599677251237656761596576014672644884456326786601069213652126966861759249762593376963178342188156682130124413934346870666536208968676339006739327523986683571735442597167232012385113085370347938825014958503395247324870080844855059956983738249752108379914270641814715709440857409562412059196082899189483753055586378053477592115153221164868232566047121014674463377322781144358132460648484916142736469011716693537547735160277554166028314279468746959268498771470666495057997727321764398606950264661157459939043306912941433649656652602903725506253770019406911961426466768452049690163069650452447195342269917527057770372574299942502339958714057514393564788787104997050104385856175899009282685212210241265963370081437487691283378267239309393173786603177322165703713719279545920855179559859778589871459971728288567130761480039828708158928434847155214536120932066305373503308040464340030447610591592350214567368572349887901083079859740346041266894937294392223846439725806043176253553270762098892640390763183301146858570642226251274134202613237258751484245439876282468188390819914160714780358701519354418934562003306957524367107288328862964229745604456855935630558610046382612309244554088922773055654072474126399604949794916437580194589241758414751693420346887211859393415407149810544186426931859506836002343356496495248472531851395804257859653710928156795658507518490586244137580560324320784151186230700532964924498051267551913267697504656977806843378222438898369663782186261780711517455566020883051654094904671760393137628035756295967286111127518789962736383983120615735849596344265865084308088475210223477795706021043024846292801760632515255961536411529589066835802009364604393278303565181852570675746483991754954321589571604381476640997283438711902604771731796361984625720733419401270867764386176170895640447230586238379490004771422857860305244913975240199099505348148800100409240205030250038991811478109205904937384868594074544332204979198319525058498659013079327050473203296663673282120009351283709645505579987330764958434636233332346351063970016679154945135935498078245740970560225071918981555152801973713176281750460052170846710661121105160303128431746496196827660107067781968298085618884368890519117922508336027443847897953131549677390979009415425291945282327511673131698241404001804284412030034397361262785936311463422882872610990988810429156154476517371647925239487288861677904057025971283963086523411411667215254209935673134062086471352080227709545306607218983329103704278926652954715250946862029557886688138575324825897248540744931277343789198482005036072416185256747243279588837485914206621583876513802454753189891332564726153671610271785907214533267960696180881758458088938796873056346728545372922562856083151970372231265207417722291849862149200560037106115883266098904747804374851264459222750254119642562605167706736416958654690404321535205755928909348032277023827114013209816380837815050210928198087716114072817517714119602691770614281933289539527689900475572206446747717511210234971474011940991954774035588493282189426148858584098627590092437498890076533615483455964532487834810538623977538496195002293553670916931291356948698015773030446968615137590166974794948697592956069983230455768323341693546305621155660189365990492518352391951687165084635886103439126375240234573787126022993320421043244814525345428508035073592622380533548642677294392484630800743959239515309640159533577398145932431263286934894984968159366257825573435274791027668870433734615918927804886395963034002448496938962179007314491579298875027588124448231346150250659977214142248593319996880220612728488812753095979665213289854487524030831276188103539701509582614167843548251027034488720069112000847183734989112481391196141411076231835067143192945650834580449083855098166626605094598080818001945290915889882551570543740841914388019816301217457960332938548915491787369108338695184039099038097349244094506501667818320243494724357124054388883609890281139832181427793165245708561817314551311677928069530610444992310305265252201811686557410498874689514460519652524888846002107560517390123710771371990685207548711573215981923718404064906956637143836704266457773182581537305773223334313880912189237694942163848404277161980804322888915942310610788333488631755319370365437925679000040718822479646934144631388446311228032147315191737286466337806034997782546605290978461650305595446885233783367139255242669306913175387055913297001801958078718523028554796313469139030886636620815694553961901376538246580604539933665280837216338893003189020511309031127326759138767187514038821219460473186431145534188783513146119451557509433747536721332390422305499754422165932716008049128064293812034972458868850634786035569805962206946795532739723154288916630685929840411010113291499123192413283767221891389665933903075669416142546123813778514728338543308031294107448141293713922960659067561383462751924239444570130447761368587551584788068110312045383006305189177329228442186151838604516686694372594013895937267894878766918941285815058771288631847058603608973424656899338520793720892861654106841658943881292708765674348715072064522865367571456422364279630337193550699134541304484964665364557727809445199930827779705794666448370113313405946419220041934507791058941816228907864660623222740622855763354859042245626732236357795573897167955162730232906656165285869629957842159072079562888187797061894538961197544730424451921090005473245096403312625742159249764355258941523076970169416747370104165679902133059813740906856072862949924241461055149784390210825587657510340121014830320387376006550186838059857284330818498094028681094165969917661055798953791826555565897563112230013646323114500481225839980886788291612347875323513765002835923960271157815104703400972146563230670782661173316981283627620759065969632510006975330846147509893373313060940784444827807932052172787207117112448427859153848850956772908656578534824458165186544570879203278145231084708450244458322379662572763737675530548765464171332424673731828411558634206165487423647816339316003685776702198663531628786025737433808759317693395849749306027079918234700571576204039187121941293750918051719532932026296860936143514723363471786731778913540157503962836134243775376346495286665120499301597575036748618583829536040533482041456122371213811365239926074377594359526539893156060185866345241360790878993609089376555747226916506119799069493522474604457771543940333885597779290617223175358933338865837925371288022705235381028553996670267837433121228608841721884113990628290760415328911989163344872329231052748370099794977671877554190545564526952902793967722979610658294076271303937759704051167823972943559651914920103196428597067642226400582467171994386601565540036702135486919187327683922325723917975781072084956101446076781221697762520086191086642170873584195048764830336517500628146050844825865986028510340773865222162879078473702125537917839270281651537905355163145535016569133393217549493923696565266904382151539244056076439048270308660575480259660293921800900555023142048585310856115448537011723498571884190395024400036400766578390846484146357355106641654447167302839643827665757047295500107351115269741514634677688507152023101689889599750901777716174033509766337509406874282932096305398958601294905477581757806949339456084949206752563896309011716816388531361632884546521873717274659393933873986284954629879830623343191832361936528760617704292244408567726579712006359498914194470726581720683204525239638302273199491227457504412887036266937035218429626070314041480458838331187454614906447504267915809777835436813592418821888805297027915109778289031995076764758388180512572461289568366585927963414649139342510042933216161475837986451670589440565402827627896078686301268032913622521209122191710214915171035536617459462686917521383156969158725816484064882697428990817615802935542592249595378752977372229437320041674268734669120693371627729233124616600575649310359811296166500436940557428277810097696885522856713551822243916866824548228831274446904373397665214072300294890024220149887007750750595295672174462361728018214187203017671202621680683832952432662235162450889805215759328717255959390314860730206031016371591417657894496968948912594195940893043448176809585464604966518960051366831084876626594526985323418034445371040903176997539743753993704466045369405131555675212009881966980658854291550880356075386459398802461752736273019655932431657391370263619442821633772059204083883925394081837957604932784986243946222113416309621629984484886560271652622138070805846670199008079549234322649938476089518268083137271364577122786039375188138644011762294217636814209845497087006748239766341650286928635376811491912335889125357536776936911544684984104908169187920960713263389748839900377205452126810178213883084543550766731346497228937238504001750690150745099448034989019012110885188818290550727252598129192232284739950516169547399815863378517854273088497633566941537824054343900793977752947781991813528290599336572454619155778158754104869359956003435790060391558098267455774785783402042886779054417435728061859657679925752774034196673500425528143199698366366357994663962979318672708606874244891341839572043190918028392909435644717006483297401435317130189966524990577062302459329535333315214546279891152633498448026464694609687897766335895790417072084294544511908014112379280360218643262733440031203633248361460593476526664758880526213356273733735119873644163940830213613757098313388329515865115766321387413267916995464661205871168545466308153012510649199391735159934370751185337235131457879979366470454523844837676913671342869999280703222085943794094914720720053292562383452762536306394070046978504806893126740642628579983175590259956011029662942572714837604194564137116445597489405586145276780259913670048191606314656974057520853883984789916891600033228542120342681612285428189808242684719566546070650008109771458066983337755786312676728475761229350652668865771014069637111220377663381557903020446172054788946987198223655519972859735880342299479276015537794480171143826385567279458886953906247983117869856603240365300354498569776669083389415212030603425460071813569571010342910233641956647465690254695800494722373066518721178588202597631710402337281969594050384730417272643077026534212881763657654378814747901113505646521326567821767735401668081686074691130154274319883286465149358193733133246985085191650950987885378916406772956233093843729967331908309187812253590519231049916256810998006672217150995924580181792785393625710885507890126336118487046421169771001313780230156062169644501231345747721962415280728043513676238375522080583384862634804230065488545719313528951281433778514624094008328320606078079057900174130081639106567269879281332239377079426764389216420902921063588618277121946289554924858059602970584015078682363480033940182947198609355712192366028104619331779547089139048285105872118238569845334660858113228145189127759799703963007480687089098705027184123636397926064683228247685967969319678388593418350846382142375703608138861526390814594693186218783191737057874991867220386589194223271387254542581111122922588503269888673350091776517425317897850148524955526449694417270271788352345566632260021751602117853567036572005653617445481285119025794888326391808944428160506778958665647460527554054781809546965427482330966479493132634005702590332215785052461590089115318209550292710508818950475370823400647850229222551736817571159818011875480513711978235618932561448897937044649861261352587885252094919476069772988079540948050727706853546919290534015686843700599216651553065844926103730915328610042056318238472770299287051693620576085828621071928500887030867382090804436711153389432187183696931704421600719478405197001409531082195012530241149449863452288162463311636931816134214700769691357739659530543364685299240078724834247055450149217854486878494690368198208288370542010930880010493641355109357565929574386301427532987850231077438825878293401184849878651397666889494044633039679991787695507543031056025318786995996450944750935657923218925334715184149788291460222504341767561387668706908258999019955431685493829907186497582076261252930173958836087387954977230545087593818830289490254240022876050527223775890218553460832875807996381081776635851323844943789782046895004305496106502358270330806277980009891431389483089539645852165623566482075261627407879282274379347085561407022144273557853612252684408262424999182132938877737031368140027797118382727620813823603349640630775991579447152690601086728001111312667987984198683592112883003116022438034482016514492799964210060815882321410023326132405295304337985771050082181310235337986809403134138025753116581481923447900762552618635181737312828333118103519785340549456030119217564017117621898523200296375010363594989050292370854694244604001716979802683249182774600354144902860328281267365966286239625093361202699215318637416631188181800340686376444277236686213517602070452959285279809290772061344173919644347101496641847912914149431564581168967883000994838559096489676216564870412934413071781591956088317785712275541437603319191409084853644573884250723101065705770367765014534374993383998326676847442328852592821562413871892387366658651330840415177383770207920819703902197479371552041348696303000453945444951952353266041696662448233759157785948243739883998110986478579195092897049190704243189617447225599537471220743040460029894067758710312283664405305005893995683226457347194558717948284530475244453769505311565711888351105780066852063704323081524413842522397863533552299927691353400269512060343890371513489003808755657410168820538202867914520656768775489266977624895692829033911374079191086236508754948589873391572544387470057288497990397182151922323788706529386467965197600926699342251295400378973544879342597553766860373992228686605629729723644134997359668704361719172570726507130746840494910809307577339031577376050162210784739469900989460320651198158209375061653160637592809164518405890183379122444809385540445311402559552068670771474893903524419106640407736803965275035688943638572665886558307146427470547627755719644973276659721526730486872437889846453417527833928514655621093631831774700614942011988632749626423982124238108575599219752284630043598466648936544087347046490223845619417701134587519969906392357820629408649346455231982443640191264612564745620691315877069898589881169269344396230250706946515860915986417288485969382438125840527165625508271281812685351634133271275677609319098627613688192378169590717804918782592126929845356422313799063008711096134400086655634413910904821430344186490434864640129340204080806762650705781388509372028234595539523409487037538059916303206865155736420786572681308792743356130397031477778765649606375823213570620477571207737991808753179648773972653081432133159031175817088446545166553038140625582614504805684503662724960136820555107042519142678012833991499912646457727465307055724969863014876978908331197998461308595681677980779691752787479792375596669958475190355769729445974678160058798895307200965854999878141474607710853558267825911631842882614308238939020387241018268046853081531079393775329289552275712195223730795580346670096085124170510926754361188847881405492289678001590670671646317494403281395739147604551240580108944632730761297743934965791047895996590246206504950677965866896324834799999472391875408911474513520580239663319542207753437569941496477715790151529596203798691431763133751398548403949862209301304759218091945468888736181156500719255429170319141314413033520891088235166227428200091161606379745827278737592865338257632688771034278855712457511456453451401121844826848455749183614569695079548969135056565027024909011418025813584044039753430198204703244625382763523413562771354769203155867767592384943039049117702501611129445567392441548730474339031700083107598230816050754011747867895987297037599420042124557285936480923968584528328999965701671309600338555920376398077508334701078556548110742794145787846008735927584520137109198394388830148547587164039796764679699588554288622916564302514853850615089459127623951517852545647124307123687189134744918895230879925776533234717341991256253623460806208386718059010152080468143681329574995673636182506053173887791838950008855725063001619915837900700177703885685670964122103114509017442784882467691750389246268793431685022651327229976717235282152216284921351360199738557311509806838799771511636944942163526597958821435810623434132874493506801270578284706084707186646275031276492876897645786015319547192357548041859510673589071975432920794537859767300088989066202466886809936156271464159250855323145165749700568260630763719955460269492189589492554609945160033628811839532758364227845054412278923349190841864933678950721040169831953626526645334555520408338501572008897978623660624658927985761896198079339804482279652825523414810289105699659678340191137167806154061932282199333220071025766451778803420704966007025425200996737285463252175447788594430073457989249484465633577474884175374005752772052423760009781570589008838777491301145820762681930759996042596117860536031615707089846605006474324141805917868234286939560314911013947155281910685886513332949149074614181706554576731718273976765028171566418720532830017725810182125530820852041526676078912726329203691038068696861521943405692709149033163754791997444824347437064905373221765805459009767401741091000916978640394497454043750793172388798358828211243248893090780245152784825899062833150235882167226591083315729217455711391652054560442787467678997052104056630712757055926004139742407090239091080397521988638704668423957771687208164611598141184510734221381313928079345483055894527133428724430844550640712359489439987976137691710000729260071457774233663470308689549820461337359153478387799199572180754877708059407570989553936517001320013321896693351821842839536520594903629759981828203238619681455750358694249323293220753793684410898284019828269516889326981799438903902215091633504558748910352184835156277692306571297430032115443005436641555594282156043409289331675001922606585681195894282448197628945726610171825749412719939482318744935248999139724569407406234341256441830061208711346538932300475779524338840525609075381638406511203909191497589519659204497393971060408297730183096604347829098703774506680315437509599925497888406490289252069820533910931967321297802645247894881786754815530217101570729022473365588003602758115885045858562387181406546977605893950258624715303385061538100793363780781101752452373418757008380622685135678252084526267485076700039181068527451789729292747696728996948608025706026057168242658784578607203621468109664358418764058687435387095198771122756177686112900553977924484325925159729782014922571069412667993916408469759247958792295923115830603180863768741398609946210101357760665532887726142564918509799856905274735745883357802026624001317625638967657469813560652018916519848977445401448017931175636549602669904870455314456530546198891130748667607376627951203111679474777619771400157189021633581262284603004589362864612347181552064504420013425830791935584950037771336885886877274739323346685382360574432393655020820253653861532046793143813700088125169033932933374126760042108504720204510222655023865251624694765635583005848503767920462597411612227114584212372060530463000065891803157073513990033054026919635277871106638945959066000257822430949400733063780716452991089673797982947634878871967384577648524311382816309736337082239577949681475545576162981465902037561909837307348280923743657392520096277786180445075703441980183770544651199364303999886305581408504692490738349774110244053449924070688973081158696894905631791702885374327806992690358827798226456064453307009471848469035674057715274179287235021141754464133327950771173334253041071111806648590632899077768251642276614644818865694129562436199455423731688747475821905462195034795035431509295669365124209617636831595330827487599118925709464317382900056957355815451121008089999025140310276814963424552906751768188661277543391248520269240912053156899150861462316675682190715572669301279668975493094069904509733706847648475455929913900480645969885924786205344589394223879294935677902641404515072040898803762822025169387665669826204037869690791802563570747934371409620070511746677777782740486957565469218274222889359244280314006155899819395469538374317280041672069798973301635372672529379696194137744624160762961826372808484724828514219228447228286052141328624151838243506079853624800163601575905009956757100490986328876546007249242316089554095308952998361855399454049643416138301797620210371052829434699152260793948066875581329328269624474777342827808155395665551885980466833861257273047410762741391208971806575813990340508725132312783578899190280208393542469514510722677740937939389763096427228832796063222029210739510475777532069610306236815476725605385882152645484976429860293773711659801369721971977828682701228527801938856399245935652526508626073496294258174377149733860030021321984353776030276613278865534414199998985925417133776082397914715139882346721406899818325821278440204854264126002843675715392818950209559655252821641676313106609351153296216891724449223472722449099363663007233995714292549568835308391003283873564071230927209941605678985017317160450010488935995629683068664700096057965899173787623025914906192824914052039713205511826844738770729249885715483458664352364124642522270662920397265212185578146058489509424970940079472735795148384615824262600618492624184497908602695587893252015821567995305267504290743842717898648527847272519011454903603804635793332573496353144306894528511847060276563300024473737445711687451695863461004936495726568554236820130129491558283413503484231203068029294614278938402242420802458980558964073875441000626281494280651459799260628067125867395907627840872306903914255501793998732818694419168781488393560375828351795603024135435562348346140982660175300290221492886775988159368075115530641245418957622191737676435195071095492520508988687497326770390610707267148256618168868472806065220965854378922378223581062046611493985423876437057507082144637715601196688351858110568555712557237306258634651225913855543548837404563336637160386281077257802175102961082911146415332335676158930019715883055262143020135984466122641183264651755928777526633215871966326641597436622731088286030918121169516397282386357144226674907153259075211866945844188176437314140870508653635001131403126242903536225074217928753112384756976220204958593564408504922050136645359281106181024245652542362745449726387183381549863851418719444166920341226782520524476805852757808445825316486511647981285714742423860683879780703890347276333199471965824909536595108785903768134934358845784470250659118392904373686147255569910959671674575233892749421288424169947660220411924438011580370693811470840371405265489774366364978967247526236703059713389752895104767916194079759357088184155751411648759038026731223234516524045580133203407622429812587780755921770420977470551177376289510511081320115146253133130658551412990255991789289205220029204280220856911250482314867842503687450104679349880383047022782029125222302501248197076485295461211698780770990778089490748224268856142605203445869002705092675679277902103462350378168976276239248688485184314795094916485865526771856414315369700079641071917569337416380884322551195763545672535066817340237163713740569354375331706497734298305098002753267145729226681976885764387599976793561034830538334797575048294504444041658169349563425542109522437761023293677108529428836623800907657518295281564002513827278968949333749326234652066836508172600428632198045135342966646836152416348290634634078407717848529739085556925945967501326916084152551880998367197120381798533027568806403999205522501186079763432979114877071335186588250766779934837230564242681474795766866809618629875414748427458870695195714138011472417713810367673115714624816816469572366478146131273573978467555881377530875979251421595788146209953149033706242135462005158200743327206432650211519759483689824606375965427053063051112886205028711002272032946809185908473755985647123262381444547963064111300871313421270217557835452009214324797982241703781384858442291636356879590241263205130197818788894015452966082724855127286216704000781527329558287973121500622404792480236680494367439309851711945772267628125389816543388629884060056048828512593858209734963102634232211375846109994338599961119354464870801624386557854972640077557742819560459884069522055047348543711172142402894271624254116412502590313043950801335824470020168099614535960593548439363790560195028205582570684424639036146448615617633432785916861339933461453764157320571945682506273368659143829846929610666154907199220133396203103629404623623239725038635680306869476245722924732500476230402456182495627619523540456495447950841089057348546971164404171479761967903887980127164375059839133890521923129179725816192888576922579691917390875806923071218468103544610182854821540481897106051052129404365707008927999008948898291572802385093358060932244175245439067109242056940984441204720153970846495877920620014700186415721617461050361645292566919518151926537549385832281021082047674386636450995846244675157857424095257660718741404110889284980052028928680718429195387915397376901560605559691026481912240379485773325649349974050604509770913877355404352989569738283816193419469021650427144394174402486655955453184938487819398500777406245412919640078049690480319062726656187757322225953956673072056749129152933226692354345519240885520061207722790878386359617099295012072327418862726718756259315088449461561980751039216762266479901377406874768821986023426591075959660226101305555984383088075454378483362971849595264670355917112514161531659526855016985588480033742826048151699378169989742172759987279735587100104255838763770189542125232103517678657432113709040921204349387897414429129397549427509754613949893518936419388824373840532602380101681842590889364546416746898942868591749900524624685537066243272719549087817004734937376310069270679023754874572543751738526044820203125367649387154008487617150693836885888829474076090141346016932591579773543081424906163104315876396402626270855428640234582085619026746252194208982043298679918854686776913612337226043852903883768521023885478975073062495122595134230707682955343042793431452991302166509830403158390481967391589983760042839399743958314968489018926432425040001684237529430051884516356981249570372614402135807561969987259971174199709255933245601321196569950091663565041082328990008035841205888631389679994562708394544667610744388479238258896621301984056466573701046637598157759264219227858911217136088393245930395607305272846515988625976694990183800688272469407888405530153494733663604521314995726429107315636715344195666232748173572014004680882261115339704997324284728012292166895741595059560415006858848409925003749512706765958340267705753627192244946089991311253626372319012371108159245786754663291055960108695873975925694109196902782671865905186909896727785577234004020814450471367875139370462933794457075373972000443352172927010113513938923890315474534213809100190380183957481471396486890134022475090765057789761606429092955913722292153979241735533010041075333372116034641549248036368935268455247941944531330485677824453298928328679234270611196018547649528014362172551743334474021423616196828562934781679922851892465612588772656228481342875850213935804116066228380403882431671419627847574695650639201443900625864792173838223204309335725329007520881350139025887156980330493995362157342390875359499310904815719241263353357558130022247771944510875144967209340486764435607981238899628727800977907276337211288920465206407307660666492844533618976657574269529907678015999512463390751557953242207761737693510596121440491183735574917287949135023634476879130639617995528315848282589890772497321980454042543204054435828360158711585558110143832905041762555312766613416691667632958513328162866135629935069685122426768268798399009222198966474076168735676056293238142095702578794370392378083911770409241707820037386377989355858380774493974153464726926206213927553441845444705851223297615973787955635144687137452252450365123950721017186148205665565276228733474734153551417923997181499493136460942950555776503744649971285210586508151274765856040535853928611834089499020682127593070293539953501680713890370257190909814484551003922028061616162105306800128914904032809082647742719925996623167357379178861905365046373686039495945955606742439975418815763894954065631791962012702040772804159988932465638589656638495502194617322406841339498362737324536792271775718672000777141128586789777898556681005036295950794183966326241757441355624847316947171399127601559140224970113087504295510331597314965897800610890608142661403820103078874887684004481982873124080520957213059432551913645952353087546599132381306999733893886201294174034833519992676959615857044548058376277569209934909524937860744061442153040499955796713512296066615313813251113857224498934793897789891165382795522054244529240495451785363600100062452118693782859089567351433606959775705346199042533360544490205341576028956716078828378767861155487130717563820961801424707177312944735157063247872327029987903036909405880057835082260808028488094342276292603190181786312801369705652812087741423099818689723948294795841319673489581932838254557063600612801998981266210615413188613333817200154668198279936339238094561158705345933957766755785551516091635309532269238046370830394164546270414941172096763253031513204268072452880810837879460755589520003697970787776830730152709062784559000427783441735529703981528470844026082769905162560845350384482632814132076400329037560492065772308977633939213713311290318684756900557214754600043227744655508823616437068501596408829930934799314865076486907737940921282710742023797718830606318826088928328405374183957136064586404918994744214807137185925683216161985802555198695180867036538245650273685440825142579554486666669633578349560977470523854388677555708708477555533428263858043812892986537904872192232386356013292027667531437786903577609789234421104070919016346174523363356755521772172783927167715642958950468463573340345283438213152786441696093334906588385126079092019110290315187188088519205870857887713465671282896418301056423513266442358271792393347576888773624579749688744035868724670182121225420218275590238725295720271339750877964911666140116549661130073710330489141047099841743726865197609645061984764278899635081943577169622758931748010657049248564903728647063529648732770124893565862031689728309804609495634524371502047924683073068015218744685392083446033548633504093035344910726908653530114300375646898075612556072530022555252912149034197761577449584024150546618434565688752898015831699326473605511062539204525706505256198237903000921122299329841162155278166955845506068390544297701300319625618591455041464874865150486961676893157147831384815514969402553737064310893547551370152982881030281824240235051995909637847134981668096107987347652166229094230634140392215595167589852057096307167377121587596712186127182172731648600239028239751337953779593503727464135469625110203385809559748078142628776959000551253066121625627001419636170237711188632362759209520866415930856869302681824685064149516578167876031031561157665806455465249103980121985953664278086652401983365938796696376383766829690944050758265801102746782288855601276123278953931011774637347971275605835633996984437129098246891499579246589663553063167409571936731748581424086393520826642378839486179340574999369944931111717436168396126292406686677025411880669451309121057348237014043870153640104720374544128510272336892372223460315319313609464694998794431472007361999528183306803737083959403266507043399654857969640198200046267010392167711299689209756973914281379453213425321502733462166818476620905380825928709953670603244458539996416924010364033786390424594755069544501114189187849152095748524996429073290570872372169690700777211589197719902056683925758526046069628856793957886718428561967834691909074373272118865768637831505033861414351541706242710511096958828398567698193450346562554754483750432332239046911391583744802166304864396690737648719167386236079980888155668878942496516245134832588547281332271254381191402445110006766311094358097254653836836345643035139345498401105862880159429927585484701180499525990903850834577244282786093360354151522562394162339182335640207294144441371662336968338883896101330263233374000507400263122653571635809540348834976100320003521534149599114718841135434462605437378895824702445806520941537368982195086050965890262828877422097611149154049842017121608348905117723541292855161640175391522764643332938264020533796638114549036197684746346354155164257329253129486259421054393808776681992419761840702786570865367583339256305357315555021671758889920974395220654171505389024145806975051230695292223900372641387506476392006839167932443380830646226748020975156832364714167205171994835045004947081840476769208833681643162465470536605601448502965567235032702886226256165092653863358557250553891479216864103931073989357166387288784078053686784288533982842324635756881600623466173440422387301824014608008679390907286823927152238775260305117370049473647167639020903753983216767626732688612585560771177846106795544186123910439192261730438274985272533876358515549533006059220895232990692636615311827972622836404045305354207240082554310363318416856946782540879165625649896351255805567568798333443454794654318056495377366894480541595832837565983938405909319556229334146970848224820701189369359959382964549513134912252485959141713110224023803183365929031670201092149863488302056434475456540379094122277709847977244388417418593316071456198887513147649636260150311647144657860831994086121204479762954297688215189357795253080816114955816393709725817401907258066092175650590227493224425716752209688319070889804000152632375892968716027487837968363684606037822139421428775709249434980160091633908181977051269937132255508255287245702990908518501590366438530376965050126237696092766710123948544733782138554413648116434666901213346073814186995375450046260670434956187932733393740112274864952988087704965690289363586084639142722257418791742257653819367399968651107841731772829548006863095315111674417256149201025808261280619031928400151508186470953691235048322548118799436154795391474236943964646108723686345220855173182714333938333013716216271141761922483420507907219867266102099137867251951566553248233326189208410135053893792767738253757482643450565287015233151901861481822399954874109822934306267125274290527285250414096512068040407913783457702711015809551104186303471858873006787762965364746799162321518486539071076937447029128270133473700673120399642345804626853940294626516839742676410489523253458081976047029016465624675432208629031285603202206072921394937857405944490315095376340366984900202082825525854689842115025065459635603110467126371503232859799454180406085367446160016706735066551977450079398382105979934305981802614207401967010929082667382716573525766227230868561104096884076458759621098806564948371986144976908172286064774495277893661925323437093666687700926798112242285512003251300618525479604018579314428047588323303244227316085229497925828610600384789014164678593645873852148947127059399335559728400622522135986033821586643540913492579201699093950475447568502555973299111627462973602361344100485430483210109478181214456015156327648111379284270975312042893048872388183943931380885766737198356677087467809165234042199420238563245320904871835288443205105897073239413514971015613798446833607296603522253444965912289955391684821329546114160429987695704997055823989151942451031259658255232010870148944386006873937885095816913838677057414531541619277330848004162561913503038656976512725728719780231110878610915512112626844432422382062217911648184304986759567823837427978914578779904402889647620102539846750919203951801781478473273116457581680516892971276810652922853549025028193273405984932024430082951839699843087857076634109599417430763603553022809805532713406662861118430676634500773313968744743407187361470370164148878311065610623288918412939519622153606069211489565517225285286810136280574084352401800702629887461783465104521495222465822905189015937228139745788553553854818520360978683705251844246376511254189153747183458073367657556761243155056766760174305084965303191113784532338598820988404864230343765287583928712182363296491661232278166538679287343457220790197384202228963480214558443954630081952587973133864097222649970597453636073668190919850660967575666607989807980229360497985990767368463057332296952975934602514479273530999890745969020089850460443233952794926728076183909021790397868625108080953383800260850778554536963747794656189216910919897659791291224714438616601989947615398385083590451031086218069198119704093722093080372091081767487570106933535341863093210799364794983743093475093155500686521099660123905793856866455967241141599254891878574115146058579497144813502031667595546217311837634587639601188332581068819792842611176933998499061828996675850510927050962897515390869880301727327881449465531497181395514733061045482387834374868529848308758673038195824695188298936033127542862736868291125116414928664202886142915921659616537753930821136328083560766593126847584932500605655621166272422340972130073675909614790072235008255057291999909898996866994967100356466266461423169933267233558089381045739907593585827540725677875397403582557795083662362090693024959208817688790995381015350755553687819511690976250414210378735816271980810845743055526697807871337014229035708129822405309875008966371871432290333042463783568327204512668835500256854237816928036505529837780236532395115268213937640957758260567503909303868744347590705865850235299618684530174546150671043598823703951253667016386888811926548793773825559038093460509230647871667834205178232580116009844825088748055351341294743247944526705886660746845206134045346528928540812759838525795397469418592061969302835187076771645536747957229889366542401065279473361462481307551020190020180821127158844703705576098661781030104637977194356281248567270841029681235557871401171255647342684813471627631258085047144495905138101446812271152843734013872872073445930008607359826001118593723866840656289483622101525245049874718538573750345494167335291407554811039694554363999708655762687489483253597525981001434810094197026350841949151355137452242493792480076112366588724607914363258390632697951630399201801701116356853717270020959841631202605377491996559633269215582383940024325017574297336224353696773443390025394057347614702872040943300103956204333250876221168258699233241199664345207988032105224139954540009497977501674372459193163868616949170205599169930180059317076154585405001720069956984657773752130049013444264388799827900861148679277334590693056184058893564769693946441258906153631682170995452517590384895663729457328464274013305918416242300588498133241711225556151834982130830396171764836682547181651332571732816618857737973932937800688070122360578893090505547565663623123190758387157712241817422756396844575518399989753715656416437033748593666002742324428345475625431369814528187884480339092400852447364686188731272664149341694281505570571911208159029949373954964203833540120703757187457178502944449392044519469525344013076590739013329582130844247299773299756517416244991938066093282529945610049864035053565960485539736998862857914490756828623534018708526980527384775281946943990709850824285143437369916992868118332497482307938161542913950420620355439922115410227689842221243745983198469282739282378410616429268112735162027105257538266191244525058945501462746443439457461528886330375792840595472695969234476682373643356305722624816557340585061815112793708968093426770256212130311763125353779347829606213228724142410219611325676687267073611237903006310360589662923132232943394570525651553928022156600148465820073258999126356967667059943956085875890442045777258246200017820970683654941504415237741697923845434118878555766106916046660994193317904074235899092378088871930016578469016490422459208523488394311934342709328659359399718736058977634295629657818227367168571062316349606480229759689122053846167787793247441661766650569040612352918692016209254496151443640656961823232437314880247483652626832762757004023495016521353328424726984089308139599001188548707730501146628528048431916792824100860105772203721592837701131937776628735936780469047941973241579703971904090668968227179253731078355822064672470949807635540773581616431625848295427248535079252086100267268254628101176719747740058058882474761684295759993594835741448563129277226771117486872041470090091344576556293187811893229718212972929611167250284786849738419799261522788079116341262139703076727127644034183799776707036333204231346550907375652608022202208593688202149697039308600972234049407329537359344558856096015538026636032591320339542403654503925333314043646018920457840915496679770491390009270084192000821295870837037017327982246670244319189205741029514862324968618030005617129179467923316771301964252088106522768052658758419660351584073225866436522535306630790183199976639232009503745515972956489096591715148651956317138718524370494070799975841421155992609362413633192515702435572946806830270115517377259272790013509028560919692075109932152702508534386274141230027708724987261428833714833371976729826307488953500058451751433927760642721146093950497012557178552775061163714891831399972611186593299163625336638841888202685137088019419936952658226730832298935952276472274705424418513436655583743172096881062914781724524791837769663416093893298798500873267338519803945239884293154646382021137890138637386133105166543775761771758872494691660397166869429240549838086082567775810666287660757822784020008236088636067960617204042032947170081712909629096673156306956277802754945083825830696431814076682187477173289754438651186281786590913899594414581045506383076347804832416273190306076956647096025755735976708383744553001804581849334911888815382404810235946040751318664721943814872878571545847384135184695023568828795877821384476243885130239427141295124099900467970529111032794830012264161287014367933121554205432311876551313613433902260605075225976508994465975779729936623208612025137396850576178367070184011613293353569835885091316567640143924074465341165826011224205277545914603355049162622639406061026888426947968486669062957858725890131744566348738962785561398393223857775892227541811023850275814983706674346436798898204682964804830276119893215948506534216852062435175315992257360405816697564730117225402594387799488452588604946610670885546611122034773661665444852458436699455201273213656916771730447431416354907764312619402353875784767622374545985364931862256700514946602603992809557287548315489676210563087189271844014017693674614848537881634831901119128748645328791487285097045069945683255047615297837152745344743071323750579196491843478303901480256619642820765872641208638300791745419046325110403909681216958153806027814297835443777638858175870908912275248899135403575276856170834855778375076460414633876282641444419010344075915412896343798113898244487199862564435960897758257852904741392958550897146997939886599618991445006064838492614501475458464073241587807990984932220588785884410185531288530865477357064541938219738905570789831100409887116558314903164429883331034205046404380357897813424989715388730497942333355921308938550295660663000631997250477354286045644258688609326436238754423894543904837156373318544389397816669976181028344891256178916558062286105199545875281543287066937537735288660650731340768082161643158931947305202324022428730890289336108104412912489247893136842708828919407117630988266632252905207900941049089304746373010716018825443650538951831071983048261720740722470508921462652466094249498578924659726879051996070376105672722052097738157201817966991875320339249568955988983992571335446064945729231738355371961173320976010411931698111433278152147862275045108086572008224255385729373472888073579567921335503491170197236288590031930832340164805669310721713321347023592321631313659236187899988250102255600135614228630908129239291404817388732455272613565004872645925643643750961026610167712380073041754413018736570490624064957578218602409969153946004868435914917558838194576601703428034470423970477958565618127397139556742765867642785597375478723831980236347845937180478427095541830692039350150662540066484153709743945514717460290565686203170788950732303872885262387678738839361988243423260836016886399150889201770313651065251102270319185760812827991558681003987190035507755772283218183650835123801674646568748254411642499999956170964056597478820207547496754281658968663614434966543941576017978987053805663213680862651409182857161599398260162332919829438226359830431474970943375687629691963737282221869723375330295212314582093310634822091527812395131967290097185187786205781104369992123082080688849993381831141755037223523725396725084218623248664900079654310963889928059532203590641869396448828114479542679971000643268880331311215402605199017042490391637466622959437566263141132108640687072271742556374739721638837555518292347164553408556407388025210279037010716431927029767080957584044446304339176422665680704048104111434557026717945360763664168376867769604119198016453634143591960535626315735236582161947873570799812965109955877959461820952036852269459975532735415872922764908736868433047400807355914859162338368379177524779298903739211570826842251371093502092495339401591319017716169544112988888499325133274350626972298760308775631981169987425213065071816355085070219933233624403680549289566346007163337720816586740295546019362140437917205093606871066158144401143496959886518393823851687108098815397081910669841592449342734423741517135826660660586413118108400153379006384125701725041122302439023463926896672233139780798255287581259851040941348486312962735812556940664983278809969503813291947954858847376507448641927873461474941614005872970661831613148327514845211955087465159314528603763253586578727322373189571110014170435968791325095349417906238160781561145201089193360689333676935745154285888283097428561921529141373153350988992924651428951993370929467646375868274405228117588061930419283978588898471291008291208637577095496898704184815529410163880710987149784935473752021205530554431413246436052329709071519820785694638454367281619988388415991463378427903295206161115505647748514756256665207899589583381376327639069503672136234489934295797082993057047782298755682965301754436368548469970805255810013450306023158505778474810709485358453534068995715578726778497889347162674039337109642852788594141165144245673874643855106677965420265797526652799340788078306934901273634991394051957285432804282460504738309008944261709127240973182104965573190972825449255431688495798551072674672552954663059704346964194580060316008142182958659769363299629250432972140657570078989436362026723014624174655837671513532179087419987035012710515918658395936367422950900917209005621094811985450648634614299182521501980275357511801358679059340695285581219401413360481325952129172322270516801988545116955379368431023436971992144273493525422525997941738336922171833905048033392918892169750394280942897053216616822790170782143285280816425872265527276011723341108090004058235357959938287944075075020294454577481203256349391405057496919223361332206948547449550992412960765536902955028763519349617743782627996184719902546304051478546753314318573652331174985486739267663539895843248751648309834518797686985386781820796816500501849097485379154761849244963595787702425220552149031020005033836564400724118650570378009886331693655193274934509042214750212083830021248901958746942295757333350841814821428969266784211942815436154027045660314690705907376170463689461542306999829013398280904527054003533076889926728310754786040088504281900716819358373198272532682396992333305786852700562538319475434637346907036671473300340436040198728451555410033051929536698348717787832532296736280445614084804768485923639503530664235184045077667454281505118486648597012723464072692736754505188624779718305668646230018437074980166419028930185734105024598247682476608993611958739800527580343115874981663657050025385484627898351831452727177033184152788999606231715878037867974692753830100445822579979169394043471561211517527192791470545292310038754328038487879477845081267774428644177301384080070387092026552801434059359335205156277440588087274240562800490367917285319611245767409197743712639150547528163385218768857637450186865480261675902629454588671277931158042317250275592093981409855260974172422254307144549893930337086840937215459495026563365129661376824546030863548323828286421873110861860812230959971597582982339969622856702392435158469214832890634036558187588887167496510725901313604435446758714119389116825272809446611435747350891139259382731362416130200540842953254946448106951046105389720033315156807802280840790345664239351752081759431073322279567957278401749106043971801653567570513272330582644911843335743299784625177688592766450963517481576779358075503621107576736662810559748489600494498597230796400639808239596223201329477821709625604667488759198572772296117784383886551429541061235319241434850637766387693913289963614242564698697782753026733998133077885231017498632663869378549041690736927768437454064756859193892786500918139225351024607423526585986994754011470881227841491928569293814127693168883747243829375900583811387093167472160796522588453445763303046435744727682406535562010097250513222546890467490071733195347377851777894270302657856807792303879874039326460730762378371484654848686019604875042751015949885842957585652121766996834805694154484936989131425413227352926729252042837667204232710643943397282561880403960110750730069516398545077592736306793998701909111523371942504727125108650791989548116530685955316680873647569725692097378396746568841899222473201038470533149079058002950681803833714585338931708567835932700884545402525677067248193939401110106541008987198927194916861543761105597444959771462714313347409097745805455915097049545392630220871911642916769135120498945794666627239661926908285764679939328572508664239614091740563462098085867315226051863358650823108694587495080326011957253816053452618632542197203371256875949429842326947468087815672856863346654309920687542411093607378938424219516630226019525087892316142986551227408468337562648260726798050851059555556040869727845739728155471763847802733700597386182616794174022518885312535335698088711224580209152026985603154815863179931760650443359819837544704736898507752713788850262581988667301924166328015099377023799427104563397857407085151283442938720453145876803728669382032160356249046604825173277455319666686589403139651832300732406331003838403935998163623788453297190375112870918887518503609047175281471320571483848990547180176166451798896627265511411164234399512197591473795071757505770950485962022832450712945802915515475239165886604799201441243971634946424021683160207511315465676446407800893297658737726241136942164273709755676565338367089412920262351093019776342206351056505425228560036687693936640264043961901816769712389359094563078015097834498199051923475951871067389093529909534331454566448857522454084396406060530916876559976508028258887059031576770137304820917959009214127771984518240855801440638818706301637783477307238831038845038813480137768086583830228535744209633940462324779183888364440055745799400433113525627691014612068646595360969633253280030303748222218109750675929550587680140514837621122171294016743071831492429852972971409215334177820696999426958216349109697024941886200690962316445800590140551653005689242107628804540317205996117739966859435213978204337024706131031948558857368307320790241063997248645166685902108168921550000510579040444846159064042450256190667619350343796029593038226534768868123255122741922503957637379716426886750323323055687810071604306748086861008383033790114243303395245564667332602014395324427361044922269808688517820199162246771297689082500168902302552930268369617867680052455748867566541692036805254795350007919884681028603260098839341382864261373015594847489810882419275027720801765489319734468835237545820216514762536514345463469884066186456170946727835921908110195490462726857072175972206972608670316738606004645025781443295196242345807015050795073953442883305460191528137961242948177172447448975725651783669521006284636177569525645938723591683496585725386927811164398774423793256219548541503443792490369439810329287648428248759013468762979108715224387799918953504173980916639386606635138424189151032017028626728710095551510733108740295113412121309909264527795638779391191757693993057149253822331920220307773233081459946602251103374824255670829645687337381120010481642359930362332554743873143133661870293594226372770193912928027285081230537646609243149153786571191181367955980540567363821388036550362793080173721429330879686322736693479637012279576900580927215688768360348845219298732438765614607058930197635907567892449678104116245768361754078342774155592695111638730669444525437690558096181024395084618339375038276186748055773818496431567112513698083317621565802939676064586978443144557368209204065707060356645762655714797664020757202244196610650479123419044699017083342178618926364866232848234145617570006253932376844189201369940142912658288904655238868373222601316628878311127219014806082259090769519249020971156314823883349600915601332277079527484768654614819485032247027998508325470671438588747603618474525283809525826385384424728749252541226045012567538253764381233052361929151075792994338951469054126809442185877306617963297349193776314188046393014283045598762564886920505196054740886459506271113343881945659738706362481916239724620450909159250433792097108871570813013279574188293520597444590922859507117696609400102652600305007389165055478820585518796757106724068812424774656972289445210618403320805396882216190402995682148765870197823975052080773774078697653273113604889112571083314224002874775877745898441101257600281347700342857199995721540353503360449178887090760813466211707985725918796588307082543428643260558035868696678371572892820995841120344688683589002303333539813378895655946782983573247600739290875662743231153265402723735493050924077215190482370439479766887921450358495427001078716020398384014374575436266025911247126361541027509235886875217779395683065079376698315306592177150204993389182153531537363776104789385484419207235950094951332015868619359909533050989549363894412234128717450300068319784964633262209010161678974360719583095486250339868394708050562827616627473655180594327209738353080869875011528578864025808140965865556786568961012373629495226129238870215953462190937605613720755498795394754846496086442679600208794988143381061888902723764787270339520503259008017602750953106731297224534467977815825980905151307708807928479807714942103822094136393632553751411635243959000144761032620976790366827985954890322730302534168165086636411669445460120691578460751433508851997715495920612859545625621020306976436363754661235918169268698648257111525800170502620986210182253318221506948244059184926772561761378746771983938447105522176441939197663214160209952570218588117303980808749021075980785620268111362945573029000448374811918664914825774753893115659018577206864342941634646593083205707419923359078014630724445616623362197056165470257813027768166579326856490848764799418017211337050512950767808502271676620091856695081522607808367707782616828277063948930713247777201676058229959225244874537312906441127565058449230036814922237271243590316971746300998234166254869894016965473251462445347044923518072689257599351155673239639390203490405311696730967951443105204057459407933256584260044318566148917018452424622021342955785245215998505097592278952941949734280632102449177600461234640571401252013542369661660427421586144630468048233882954134088835774026905996151691821593528934652489515209154553051460309081924617837935395221325400990422304656381889316187576944470098877202167157490147366350356794532376962174773746758964039774445121079192773234746347472928787563385802883679828393895944637209714943014469144165169734653522848478831278257589162626217978835117098061910517396132294748467148867589586929857572049918899793546426566513192919503068030578982527064010581004444503655749118588339439508134151673523759920730023032822414177763697671937916114155703098986048597751469371441835498595959556540934581113029813313235226234872736494415885365784506391788407047656222681165534921605465749635120374040164668554370660737504501154902047881948564196883497546115245774626550555247074915685602587723027525755796524188145132445836005147682358421166248889295745119813715232756504916970339453218702646091670742202728471649135167697667434273194367835671405481444256242758473377029647381808613619335613856502327806037816963777109405032279930884530784112901202802894813054346351222285898629279247115465972957456514466415526047722468834919847947269902575826888116492023491340271978827036122081732815624947456699456910141523426984903531449129673067464801200978415159459935055383583623512977578090930742759606766407948628425652932956928609569372341648446659426380835517587900081916190799516853949018228459910055041874441854876065928299622176593758039131883830432759488455520691311944889373454927451604901853161325395907034181510714220995974146051104664250214294631556945588020668417980095848557776846865963236101914380226098112487124583495679713895303907075109868393093534352945971142848346216835923692580663467756690252817740353057397257309727027782345264262406394181194437766468070110191111452175196568112532126500016634224583805941444028368654602253404718223600370995318966878896088770608248684473674914494952289234288138223866569293261560729401258154563442364724988631362623574210760710654623401585335241091086646878716537400653818488003113170462380998555950895330606918927838569644460783369813737535932033392322334971537530044525943233431299056776200251069501428259222762639973275582839380594933868173199867082313899208487957252154810198808735321449705288280978867271587127835546020879899787288939716711661944214438324773933109586935686046244785676363735009460560437946790100139966174768096132479596460355677610042036827199610365775111708359122878045015491718586816465690310054892704592134036717187156063143906872705644222421433457404988629946992474559536758520574745901376735338083439791575114328670853211968144112722408562671531895649385904496901900862664713304682186500102559759675414608082669048776947566767939919481698121320020781619608675960147930779419315290081231784731842095151654584030931976434446816806127262793993797075320097702660628532707672076762679511286728361981468644729037926537873342161451689315928022545904472292275694293994428663224947483228874337944297534093587466728477075433159330225407550080859583492181898383275311008027114265908733884085706741848576541670612054578397694702115566753501874127479977525415843963543266646791163383637860196333936255102238026418230512964037670775882679463293752919547250515463569476584611144949632838450114132907759608045063285095959521482458592645579828776972770578406109299704135884193327594643118643177497842181239840293069115749036151355756931195805141693127137626955289382293514630707851372958516416040710433693118313717934647202866512277510125574966726421521927468462312412800400029136927203577259100777666756676083206280316873755744420713353966855628139727672625293767767940855496911375288424565964873925707511495392206108062037614356960254434029829055225902205670150688288282757924060002450032803817841953169108798990272031556326444028111757050339425773062617387310463364995203868073575849888011466320120825845398808372944702796977536256762105974648940023813670756747111395004139485810294288421088198267783888966627886626356182413748636591731954704725507296499233500397663339866364027588068353332646370195788718236562484900402683924071290643442435091907975705325840665125895823433746079602252323714788394778203047650592914998040423478810488431999529408710912097658128323196289577446880689103450882388280901728309513760727679623185594254203042646342588738455388304857268408423788355373706458948432561088500531385323443408280115034427009516026716911042987592098182934009155821250615477471437032152211121732648424366561789021103165918295825696349002219301166702802387260185003007714924353291884885368084252877477824896670769381711870747312230937981075644006750127665618549835838361858649561503137773266810553795721324824354117205994092312017506912869700791843131138102463314537454219626602898690053531699685914812737954499405429810588355418394319513476129012407627197013381879641272863537895813967281448247537837460220413195710341401276956864205947973498231768696423225058990764210011694146671097161884894937753996399384424721076307283065727024880068098631617139242759371333396786176130076168799100849956987545639531245111749029318469270847635325337894366961593528139304499441413799770307108961559961611749811923502010395107419036173958322273035763453577939917084722325627481650378169906901061777506951406074952459717664395867558738880319639656269879289638656724350781618476122359102156690478504245877494956257487187322329154631878329140655067704305129135644772145111806965145137374041578937219090038541487916521247619461226173833615478978041049821864324252203480534431396398208908909721728280256866071930287561388776846325075428399982413554081000315453637622096140758745350565937783440061799366888671722203122844131215755177296422686480689392458366938134318747986800642274883399370583777425474881299445708454321820755371505061328139521950538156959551508710430535067423930162293989307167393364408542907837938192344827078135087830075513328014097631590675128644204531322552360684953426810590870138756391636095795284538902255486323517015005581437493636090700765486950697986291094319761935273287665007846144152083459755111124823228070402055251814247856008735882230472543829362446511030020174577444256018165338586294969858171376805844334342408259777047656733507859569601225781035095088919376487053123037902785218286759106201212981439686249363064894706991512258215854034183846250895987712094375552995790431343879567548648799668338198130284663434187805034930860639156241321003560394978355216866642754097923754887684611872536654865322248417457083390757784411359964017890525048838055142124862596598061441920581624710500641361846905690523225325467400422812042208988302744651795449793765630695984164111864790722127998811258497201144792939241721725758316579475299865736863764539962344024819951455202646450311329734503877413184007031532924913665442614562361946366116082753887848215518096476856901901981093027516777499908466246280717371278742004522115863493715343422392594829385262681011176577213513960716283369162184643169214166532738774189333937348486469925454987822279982676268583021152513283904941495863239205116817308422528571033350236485782956606737385175087397816530911044266231584876182751572714061720634138041621714649787558321090852193934811669021505506018413652207059100309467198073063490527704217303918721980568332616114010647460729132721561130680980015534014312589261802186129539902257312646587586271220119401108521774645003979654097809679156227509604028927824359845128751986803997849297619468021219332379250849154933111838398663046332734062578151026139139777972456141722166541355062000195064181226281080310336828671693951023786559922207204087990631350319288975079433347268763597425995272123094169645872947169625610246407743552773839497086079272764207262937524222293738993396087551141386460437637166477289722319943522999435790628817875669144631952907742269952801582309292658367101078295141604555329123253765741264751696056400960008446331609464724066516806082044519623209126359043216770487773615513275911963368527714217935218627714513127792540102146825963780547990080091166017422132865514050499821898821025260900440723924710500970983708784832526457035597252088106306726162524157582023739553993079368115034551620408133909182719089484392914928655190884612736624516643632923850531915092496981792328128207833379764287640194570598934647488369031857853295303919152321783566319812922861463929783606890346342251777602574505446296358720378411894947633251286270885723830885022034890942700188106328121065971520703836079154082676382367848077610686468164252390303090539652451147579934479219189458493850753494747965126114988463745108767898687777371761897485810166904423439752643686263352092938380901042931315588111766662441295422211853287863448691459897511678524193851240768810426994617886714054545167219850509487057656316825735564407704487191967963398603449736791723272926176535468733393595032841744973260325777299388629713952451888678265226293482534237392006339549506395278888237857595846506897937781415532490641865359858128392222220139435454377347324698032195342508074660339667427823369152414763116823259290899055295544532225720250550687628057168054282219677344970868784581521962202883038908011360511409573719941530118908220858240870326474682443961879174620119179414756418581143428146146342685627071372549505722342299755291889057236170062009328919362277843669842022315852617830940999108288046802989389869218391607514784478665838824118737347639706709958602258113879437389921180878832735312890716641511556174363766668407364769052297035957842926400875735397882511723273198255038836205451939515345664803521336704626370131816274224876689803319211960691247428591328582776478334039021581320925636052301248526793319966165401237484061041364133553208141975236318943897045727443481695833668753663600920695941208453192849887146218855087570488050741940836589889332296378779863384823121331617474318689655207107088863779312640320080459912529729762318548674404657158051733348911398387668885863827905789927442793224220389342521931450451631756007492063034685314382835248505805714189977833121067587337907943811235014791893633276318780035002192741576481281070752659307658577457562201777938225018798556461099297431687873083657614879971866000531561217346630416820920572557564878122129361638203311933051495514243774116179565367133127549312315271913149698005574220325608744008107263629062662008247706229477397454102966621446923065070451337476495558278439333652810865331173380086437947397582906181677735718608714675250826115848641519533669262640685927317918255933831759837412711311108222334614208435084409299206843581356431158562598576824750461858841490459849155083948069437311891038885736249249399085815010828721623706118037594180219378300633338635958488830326022334813603300823296563193598844291749049281466389651281285745615668753954445967480524583030565784058738066526994448670207035360335509197472145550379397619096621644505450107577561157448920405779257292935189208128801394328375661004496364764402535656446852370542981780353896053086394572936019439904398061643974351019698122067661654058746966063975027553987403451055855666859049668931305766641524335870016945783813945940510992871034057515026458504299601867222674812262995965379146249274079386910247980287376495252080104164700736417638080697156154977380095133272275895703538893924475847949171505293738679353196438774714610996505914236200877928830952336970271717300155787194948632590272758279754462205964874086760304189264205984211551973206630086655655195032810731400611903092095478311274733372400462727720034322775483460043366860416078650138953450551894208308931639924666396079064818215819509648295542887121554558813963123428940129928557020914273779530814580308866070695160830140306630372724560891776064200588198317714389534261581202387152287131671953887683711082810708754143719130817288322406985900899659030952909777820315089913800962614409692859406435486083740901238837190682538789517528182751638818731870507057637038429826299160289767297108859986666115779494211902246766022019521896041369672839560710839280077444005815144556291479076183956059104729519213475090866688566934871848894522736363413962676305603309431833867998169860479961403407291181305239572783664360202673365103433003208390194607594793604164943783780951667443820112470083938603360012688181020984093254407228302897172908119864699966983908377323861746226603137542419769466624743934734946523402134818884498714362712896572444050087301891282072957907853341837871902811639670139934068072731685424130778509090195393513141060161945763899894553291101247662572208813672586174588052395106216725169719354203726858507114780454218422361751584845955438076311733503857485809843161545673410918078848986289890026565061384469818228554983228116476622918512716206807065384007124212291932887627243611511503851901355160341047582036539433674035104297459890030079467312456496355979709833249407743298863901227328663263384778157824403269841533954889354085057635416491129399734312844280227740539266017536748175003640203963269566341925962560603067328308051001230279632105520356944132435682577420953033194677461595478959614895986139249608350150350513173324326932226384818685322754029082010563596749284636392985904108117391279189716682437053769518729828188432640854168556777961523729660734190745760910179485149731826056534176481739213349222741670503291782662913194984984128765692168195262979450484881679317402416432635393745281484586556158029606214847319057216862908694852143491926321489779009764542228998599839226019395697773931252783765928137865952942611377922712883064734784008500906638959626716176775079024927319458579123491419154166055081502325903909215432138188629307254151073536804799961204190364811328899961572523962525986291732251212405193295033785079660310928899993940474754832275414543513031969358392351013849593521030715078393534524115876652877943389685507390679490699631255932699079594653588958689941295412137580376015039452417661099030447749963920047554907239438690393605361379331731193575657034185118600614239194097935119816212881690529521685651824690061198239470751806396935832172963471865209634048285929018152717213178659102607448779769238253274236017278281870721709093655319294181578994092810015012880218513571860283423214729461103499848056402678081654857239791417304452790167612169152404981703664516147108752637558231444015256020681572070128410600721349535776767313306558981355347723095940985177747647059114777933667656485495935821730911224799920643324916738207339393632039579513745759418370851067910266060479631527031334885766249139185913505563311552902971574796585438837557541075068299717092156955984401119874636651397701370530996667259159203899180169084381436069737524734958829433480629052619404446778890108132115458784472565159778664704458970209555210872557155689888793388163008293966958270476910914526875681944332906010710218493063316797154533400995978804435869573311663853328375789919824329160336873183747052277976588100875783798314364477443378962943168265057284638917791095567175494526818081927154585220618670146815106050504258515180960784727182925844275764140800951477035608308799846901189179608015291669064912805556200939834654016680160119293052069960511624374263157831168774645782796984525187402904123885538222319698875882801165821748566646399867339588933843330818448016362717293314112899869776767045890532048264071525868432418684455311324694168344795156829432263070382718473438142341149235983484611785835789527179700567525032130254817286754952943124534442082751326444995006271469585753289073328005905093634405317042730945727695069994659970382565402477524200027937525925071108408039317829543079979845211550378094924570822354109118499281381246150979514588017025028091652227096344480813591837708457922093085595561987599442093766835925858701152289645525612121305194909280601845975909520483657228425457431202166457805444787045830601962477247834740455894954063507257833054175649717973892896335590250566920386504019922029173156376155257415276666146182093407056199860220352555127290058967343508192225966578495951060595187868409108304535271957419250401330269203630888535634043785470292921301960980455947281974137962455593948667966649247563169360792750634260079838924156015812766611488482040032042257869674377220436660334384714373031918150345394808306998519730344141804031350587870788969256783829448334667979332107014281328245542247185085138674957763184858854706863361048647578842118476248457876117023156963036683834270480176277682071246593430355469760773513546006865588718348217316930216309845853882848893502758511233351985236114080060092307934905836140733676811108720178566561303632696532521684326644989690297007787363675538106963447231603363457611631992782023789099911279846934629026515080252491831631669181791730115792497001742132341240483228147814875198920613816579264792299622022393535026652212880415901309613818471203653446234087752253549077259977449442633691947516145516302238966483728721463642583423444959349130413946993961115814206255728869866129586787756330194324945582750137080776602182326683633319119404120621616225742004643398468521190682086619677788785268461177268038414360318849627729539609001854830204819209594609359763671936354109175449557614054099520783248959137228144432175524045903700119033564537211518957778410153851268430081527439445063759131017593081164827515041409816191840832847548340396852821697685554764629261274914251939379173219855110589830686252480259141635517855507231870872022950202513656180620405086152439516398663141167299565261851030412631943672447484690605327777526054734198516185276860641812167244542961723438790414067070669810253335376596534797168705323950182745555297405225763209911873183651031318333259648722354281787187832975305171361621161624674276993058310431548803335149884195734551447457840900377033331311163895484237429328705555925939140456494855903037766625649581442990373727442157188642969169370413205301540282591294016604617499758839590195769673422453367212513541308330324248938055554315581404064568473546504435879779782754799537470615552279489304040899439865809143382435237430873913253267654340903440829755318585716202983605597692589443063155934925198317797205519096467096811740419110725081960754643185234386158602800409854625330517455563008557281343322235643634991725613556376156025978011960219753024948441891980092989998686992580507183879866997285296606670323681283439309864011468724030452257147132671530942938225481940150252854140605113620329269987216207973151971945334056541994434120504746589231589230661631925165765888851123988560348387052506380688899341616758663290229929462153169148125216089800110333469302834598756894438210059570771049180214144070953352877515569628383366806831603576778298989321129344187128770738408757830314568884850182231563595077691623377554594402435774863785277534804024926996783029490377228460250912657588073934096398727461570630646295044512907342058271683223485094674611625908764481340373265986283887794641796564993023081688694406688298388650547590760849686276819579751643846642162084389449741693669074001723696487848453896160186470162008333034080386037956815652842543741528765422706905543075415033706618005277901565968375964731859353295277062432229172066144574052671488680675700500926856226325293542468999568542785480673078341328633018673657942444594599490684247419092085082369230116182360436601913938610854915299730312370255287652951738512644101652518510654721823632619066426898628770110044949453347253504989313779830218959693085037769616196951751001942669520139863789483135864196369999366389887619012312447354779851334814187662928514323836620334778049720066179409060523689111371080961272481779417271904385198351688536615811831263505062764621443806213605723715440211941901539603400764016540095692860915817480175557403860113365607195885271121360109633278608206261190370533298908795017571653918433062769990538069746708010478461278654418182582447728263727452884648038777109581084662474927330556842695132427156841319949900221992523397383943657129667826655553479115952357183455960761278756710027043837227209117492370785032576587251910981425282561053312606340420662048764763805201869455665520214773607504141327808052732017328643584204690138624261856654947547051271998392635801951516801441515346302754081748239500780226683797870208013095542604820965336227925773008309303800685512284667565738105194217722669201660189846912672013192519442802389841626992964448007817804345613272651306071713610132103793133893859386011967796267784907897076126747249845930659730087205307410946456448205468057779829610172700851342484272325300633928844654826036494476361152360438568065037452449676020122633050088719315002677343887582953317631084864866327843709822022615827346488806569402692473901984151249294358602032753903666667728717088588526324112589441751349303513496971569708858158882076137951459908478555924992145664345286084482564396303537814027478478316472898205858898367863447861251846424601461201252035056083642092771860370235317399807342963310490477931260167046235624458079681565972127475737602511047894468747678229940279494311238642562453480098053635258434916957580180591739792608594398057542463667168368874918042793598239950406966192046215547647635042174362014981684987522321891251979064263409558815575631339808463823705124465533988512447240129546427368679725345659072241207044002675290514570376535493859746713374804569456993947327880705272094326564660862667923852511573888803380214394640833521021621365316608972920975853857860219872524381745527524238618179228751904239404007860328285655859659982965872676208712979994100549685717428234148747137319548432261823759071869521907123261840788819180248061348619785992128489037944537057070466885998843153757831624486421842044366085310901717095726560672684747535481012208883243419668271327306525220000119397970511488059923924655356777109759545258850393725249138328683557041771543122988816795965351894067633704180440498938432046880483530293994643725783598578441170563824110561033822160558713266399046407348107611371662682392633040887446805233064677761544206689640310695785165483207283886924977126629810810714889451446600053237544804065404749337387415262129684186367172604395956407604859080423899193449437703999289597837895979457224438899473612384599312196170774310239457755428424409928526601166872679627775526262736834420176199352182428347353092617076098121929691210005897621433084744973173961530898288833078671904998739375866728937443526999293717362591148970061968984907153982911326826313725410423698974923181435281533536440055094203486542151437849077991617225851351917604382590560955628156581461745047691695601240399113207052831877015738943984596300264362775423143029489291594461751110638648376169795830848089454863364227832386303015937247734543528543106830481944146046335467212920041689322928161744175080399997544205760502280934486860006453891918113102846456553406286900108304674859243837119798718219099086064625208526281939656708395784712534481527321385910556198274698230531077750110632789890818453299004937721410647275724993828080710139561838148875669661903388464163618182843217706954290985686505209889449289359417695502773819797733301514883516422697126422736560243542869873024641029007739980886949452827921378498496400078009774326749687230054714781359104571885598578796824079656601469726756023311743091453666054739514875703351407957905146033075038159741239381977735729860977565814478967850045746545180956521818606629671728737342917984714904173999568693853700424469636873433727533459602094559332254636331772565242646572140590847392092376552785517404072477684039081314765221718633657941219398562500319342745501095431165223016243596200508339404228404164593430381862157803177037785212053183931606512446124888356393180412654382819129619101306288057962689037115746090260822383050378284350206625212971160776233755506483307820079072027109227255231678752207953806370239325863321105249610562472109401643182111833530904668842024308244703031497059502453977526475530989552526479384761028421648879859646035190686219656027459809899867723416186834503536951796984305395322347710298991736646123554213979637151957077675299997788237785162210808646454325812788143092462459089028147055551606742866191225786780567672140285353377839316729751336109393582119280375618124795675537053560564096510840104802563118414472983208521656100541676413723438716777770403100563760399164811276653681032270804001686243627623518784934173371674878158127064326092372660694345579848824389073959905934993033117854423145271362677318842955848810045618110183942786047236088960827919671746476034368113461261929785352021448170337917142052541453198958082470550644625913603638167063249875830551320027150304820869865855699250617434709937487735454232172639501260578652431994633223510387209057772055222680897159964058583418326112002612237223799352634957606907453505525735123037564619237825477458463221441201962805835271755152630504736863819915284120592324496791903973520198718226905386049424770413077414065061730039240048496266127303336753324381572713296495956541990617455815025421564261265324769653934721235322048758668924732033231392209942179585262890649839079004294128590185140139685149311144001883045426639699196719511333534868722885363400825345314890340652514953370156125585382852942598041453361843966689166631258412028087550124938555460696883536907815139011316347959554637265143585616434773058800495345082101067200296528788941663818041612935435445631550337912516371570202432795576743087093583017100014198243437269583143698204237431547339422508614953739675795017573909431571333448580786164214703906625447484378658096675000633041905851296011932648270439780538483878109891841887248341153287123867119440890650882260848135653266457325801844874913226522595705904184841178583527238123168453424232173931048901505606656776450717805973837552823667410561307132783190081506179015547191056100350193303788606344198128800829149605079297000334649079016526966581942232215577928256456007590644390071237797211335453561447961559993214380162240356855743069640580600746814707496099686648234633928527036845557399718335437693305889656316228601330441058179133534905481628609679869931166923799374310770437706404690749173015810035818569970781041412296896381062593915533180366712931707510358772526739713022675291939294222012267698996521264927922304685272620141892983605332551122627186872197019112071721891297246696262263037193012948752419848826385451951493643172970622678955026996056466038433553834955240934629040746709760444913954132072753108456924807564436195339878817464352932473190225863247199374387665140979197467613181423467378808336804453385964216737275626003878242902730864448874278419731478998907371975206822135498770580770030831149373323217650282318044726313208972067874947351069189600162271414778709415589986833628487142217768313875048662638305878759122777947402571871003606172519263439686527604741043182785345367724752981709124074745220985258641758687080797402172133957813611142431619150177438584915539822401891426161651661233633039369782390297899922005976815403556502133488452677209425270848462009726843017287276267407177654199361045332932730043248484391659182904080402753267955541633333419590373345615416157666827761442320730160392023953405922452137413709506901993771574131903265352420850907244988852782880482226682385736696732801476834812524348427001202638737609758522800307567796854158376611174592330218257927582639387904420682586586997979833512337047662696279959321051553873629059439495319528416082730848101658255757680788221536937278557654105058690559161757232398324349908649847342476919484788861853429549296724682056130987581452003444414247292493967660143065677614271484955395609207645687380264348556709029944312500538040684307578952597907850590861583777272077874905414215109149681750647200535085208413053305646092076474448521833505666207383137122832884793715304101238143895988782404506698359053516088513764114280143641909381522968896093390548098553478401168660934433497993570690647619840881140134286972623787999785678280269341140412996063720881851301434123783459660611091665901156652897714163802497274785661932898555085113892890198615301778832094452650863110481078406454613487873144050959628694333545352327554518993303104002327624710430496615985849592280008548417541330680973075603921721458484083825694456664864813924462273878429052458359568915705302406430121924556362002138766589682051781707859824800126506559380915234567722097369860022778823885765819307630702246664501472939922090998452811885211898767425745051930374853535009208902980812895905138554770838847444698619792601866351158122068166841998294397286295733245296304347104719922293701462850986404993457215578652644856561524118179858040055678607653898318147109064048437858415408053647943058965072997396586406959326389410238615001790431606393677892091726062209857034997685463576524479748528600696876070409271296208057665780689438005937916208128792134146453462159862209348251041949586710095906169939815628858964402487046487792030692174823825349178311070626226156719158416233006117245273851628358279982557860511043828997090383406977520194380794522268091382645685897383022500454142892839287679122468106172531588112175350860051396275038924000302369085791185017739803290624875846600110951597825162434832156834631145815150267865845923567205704146912600207764168191973904457652713867231351085046027331309538877161230650841227721982792309651955621919683515820898263826280766616046833607538874143816507977140754538704779355407944924030403820893521606722023250133924927996836070393953132703326967867433512974418809399119195657237891488616850774627869687868915463603960202026768406592393425903541859868445160642251379787295370042265685617468900859104168928169351990962793289958962668861123516493495105140219478033751478764762175674592880987092721370427040930597115470210535596176506427543221169720343335883618168001572779345167802488633335307904317574223688265285239298942940216741175151409267336056648965209639624142679998840497018275255236790010118026706242437298308163387617679585528667649890311455352148988232188267744736394824702092761774750695598402040470982017317146176121947918109535391600856327538660386308346831273023291463323882577355910998943839674205539182974254356751730960225558505045309236799917461219997215501494995971993894417091267733365712209347307744967172196742283709520057314684711100178620988698530697812674345961663677560511425878978562265251305789609877130846251708591300563014145719353802517395633134656510238396545588243355945971565120495818259680813844347599866166282471580193673333355247907344470854281953080697352153906473645848138584254601595854211374346733561541458271466826390342065279234830636907251432165713025657802057094627662471883325434815737219628859841174075531224337653219354682726178104201277646058518908866282939730345560771187395514391485767211755645555724943201749142828814078480800193912014906158144271823231935227070693688459064419695229934006814639558724019037629389137462568394431337833190894337063318748979959679643552389465394109392418083748350449928095464685225595505960679264020708151141129784115282383295673682900351182449074848595766411748936646674745797880465942106618356424802359196143594181560490886963892772209522938755633278914340329713117751119050500153158190106297106958164560570258992359930594985763811459398316097474986990527606383022312258642717034329198082563381431101675288251598769376257300764135333162522669320162241873271629337833655221257374581242637777938608555416084253338112498327284472023526481678687186281847582395293248543050011473527641052121117946567327606095750296938981478190162401633151596831350513420734160828422089171330453214289582614667104873955397310727350299605231276929158849528083240379502409105065493603196945613792952239231302362646588302546658175981006918666435138263145225235006778677366026318602737333347590495724448376007498556881759253418867658372784188054013554581449670921370493202218788072243625462437983664899224477960286456663924199364237369431457372815576304594497825447532639347430779485034203161032255749306878657992283963101191471038338415108526684852288891800266170350282524179939306876820645924413702817327409393661948891551193652721317788195778315468320946920956943300413346367797902348013347653326834059624765061663597791876546067251185201129826511514931653361022673307089697015212885769490659291294069432569142212420555087333060092074350560443215053910178653917508010864569517280445857963157778429681648982158628187878953629572467134235175686713766345072407518722449266757702593524823561760469503596557820073574797591126091808396858856582364841172158563571604198077413386628015239732792285453433780136331284888363047299531218938464588049617354420395206632779904743255612443760489748966420964897281829958739071913961494830834834963344091749882582591200629900422231214050875740051444583369593535892884764159875467700949382949712556432005953255502782585843128470255699037580475865380201042167555642392912849402308936952209360484465712920996136420760514718757679407544539370347815137036216238813826742369472441104571604566620082534061644935128591180122525792762355939580271253876018414414661480532038021338716262584258848932171291714963389191688437121745155279926745755441383859650976874755776796223906511496056759388456462873242466207370042691446603511686317712984022596771849280897725616606003178432377903740204633718766068873355360369181738949339477262628452066373902006106512718987201448277445396302214295452932487025970672019888931142991221063768237952724810890543683892601091360800089028289170321357677353961784421441079436917589653078696891596434924901371651182582287407851470484507732732637815705084209263168193734493926132849979779605889421156588812707526107092846285169471302395764338447783390989346559092060231269178976177774060403363197861757302029016880872041285538277716405618033627266224072851934215556184516811876691589273262319298934457278991883592548639536526047653990037331670974886261782950052281017282732839600376623439520121691623964750588515649076179798050193021784744107271673937923522516496442891381243920517352559926494261397241033824240824197387879735005526765667934994403131924098940842173984994647161976936339160666005958706584782444760468842775756971584840947028345411031133949231861191659999043853974295428645649443700153046765441069366815678613216956614544982318577610731587885416910806258084593061633106313119737302301898472302650611166898396603662577093830242415485142479011489128350384083654066759234951534252297575264273868731934871160695703220350234096892568007230517463410111346937638121977435626219154237607700543012546513708840919333315607810988440058127713910427389912877580262395710041239047013998678245668953927742215568855145962316084252297865527133870506763462341489572667731714442993780157088748652956151114131738963689779741001165973703522453564567729683649256319558907165922654663247239250710626758743379942006264543134037075216674222605228586182586350092229694804833173050289070189245746622417558928957560202476256876994818521059583373177683965580242391817703353086761989220102508227714713893027920939914243700231104280554492241735683422131294034541212224296890913674354013551996004456658170374012524059047815037869457473509487994227844614583147840021035739810328642586958274671921865148837078800935310703580826251248347375490821348630975571534356130757736778977428954382861562967775837628227261943804853573202591163216382873635734733097502964922549038421565453453942042714154556877933584946481903956468441645817299746948251381018295317486932555918821169215148225802022596730602472317645121046336647728949082058643770050335767712889659158632786318532215518995745053237835873992742496477480937240292769143278231031491585141240132490154180136495933598889528542476133838329334938932594289382144251906879135983606517120889830547303819245490330775663063416469791470665061162867539643647282226631681307983734400040642107173067544093403561894469989796985229191773469790295384546771399173590331669400113059708712969206740055961057135309762663415090803341324961552041982965593668835685110679304992383502660344395209133951190317314329204081455470970600591088879305379691383678206222770848948946052331600467656486897402277467252722779364151946954937034373222130896996326557792829911785261512428804881719048534057115256590381641056817939802022944977359652235595114657670210012601092136830057624354484612573452708312324441342689499056140966895382333318988765293081474291393089874415042164881653641215545611264581854810451336451805348920310004697884137904646604743384054776258020428154562854648269700870023805005394878833852081957047974799024242192682819929752202521115694665357725012382825206915694081396528168972624868703876138115672836175585840564370336746762041061937373622502958470104948675929281826103547908500631794217556233642517922345887360677021517859063589416214672028263037757581624018136891369720492839537161513375314957536363557920276631723849873992313301475553848905498480759858753001457159206213629175976452229551240589712454445278124997671974645323958424442793461514348743044011013276923672821731724461546230039854997612476417059081004146705086472053384020263485482664704158712101219398527124709771667837764913159920974208117909206924340007417437286004932894862111237546310167320527877126058247492764347150569956140057561617603640361921520022396300751932823389122690366413183481154994812491699135199278243573685036546398660244340906245188904176543982047508456519416408166354810460717017610838593135560369749008262426062009654079063901716677601628219349541124458359308091423166040625864394038517765767142290387916294020429885870311450370097795807733724938018752717502427270731959414903539221645688318886227225664734243017037443865463285014018609249521445621394759702321611695299692771867451363439214464478251554828015671703652676595408622698869721860350203724767540631873705951299949860396673968691463104948439131803100575326242309662117188256794211363775405859599101644360131687561424230608643295359412927075435627207616630934320257856492693692626153866467921741606160138144887836166118484764948424310006206538282224359879529839288194074456971171360497316118428796034701200649653661629902887002966049066122279109027400629330360261176413026594481233710182923612291468519125997144871470989913780396579723704711358910700801872587177803447647058944963298980135105623393665597725786056544841276649883113295546645789625269853940456794396100232707792292102310041113073738598895523906778168476473949985333383721098531995558773906495623152265805838163802116951114987391949243799234167514948999593940580246730811694758457437142515034874689363731961818631849274019250785501394816333114002174557357254972792603228738100296033284929108065384152294628142271320059803448104360567302581269784385736536217233502812899389855870020488159393345245682583090176825405582166826153312078108303578561448398864566389418096891762071473258604435969337760912640839687863970913320829585867513068216110408052557741293207715158296138440260364174898126561936292554757986058660138658342180303451184039477484265531470649766796812647970978147034564475705254820664919549418247118291265327636373734170505186824710693114176011085932097081629081646136508760711660308756762158152427538408960040322795950279232084850988953370606329485969662068378595047226261078532860511419663995259452385670008894027548060541281679272045741763174307137502354566500351834950071568746209049881424229924338801133114942463073557329740514778944933430815926112117214971956503074570686465048477094338861088744132840638870910534247554209197968354310810708084167376525236124703208846504233778630223921837376088586161195835299738500754055376709289009081099467866812673587136339524855189955900746329494794309369450791166751312007266983127015974346175598172683239473703389361415030284357939519952114959362167516212996033458310126260219128481123921078890149683975598819044895697624630234171480004871308280362299677479090192429475227117030584077613500174366125855348400252312086974929221658123326254372242646196099089935421096905008756858782291155361104891465803682741832206355593759973527836014758706895820865297252797835238398537136905036763613576335196809547672198525120460053337812166431267031754024002145169130706960849945815075216699935267487284255078280739369172670274565440801042121990350167999442371971556869665100905738868001327194579972874281059338800709498569480226792780258752486329627877828583126237197674358150261485280646408308461653611008979098481599401348982892292595564451808516046538801621115128657064937723194106608283482519395439572047781051149167467622745220812641998920107469092210568172376663145809922945267721906158837672285017834601844029151837392318023508435389401194872839545582656162962648938832903558004443165948227008365186973173485263794327269615678731720853256229561568483607984126352452345532392099412680678326248408183705344292052113533234104746644717012259420860980669085498978380985162294022520674305253100165928109512910603195301293298460944757542233173597002448903018249479173235642224768318827603080739617736976087263333192339735959965830314050625556993945380919964909181583991145476213582748096769217863228313963693180880559924967807420202047429951810577793824779847914586059450015357505176035602662053761519719310342278327347230373857437857035100401664128568897623964129948864516124545326370528162470894155932605376879868845857269181362738817420844384433272359941123838633082562013250629042491227711327549704658386785502462322909024319037826133078978781864946851773072817228956993440786264386274152575750208468934108499500272778180797311110192841403791227512443808314242197774195080661875458996695409837961066975435250772906428148063818482978149043879034603399818107442102152687617332041406298218203176684123171830005452082185598391829576123797006613063968491961714284859134576763886089151936926522410018194618030762567841560644871207650130976226301002245761912907144046394415684828088872474158564137088368275202824594186331279243377218748775187455103697518277156996265402741017956975022245481320331991630898505268702439673730033123958600821734224471358226262781911697925394885142380440556501755937177238561702915749512905678262563508452804372618025485928173595056849017371309309572733185485613406823204363527163991613092320767335913138899591721593417891632330667179820064047541189429314192687117651375205705457957620281299742129722917107453316483611725180214197308985241788255992197369564453092643481359461156981517407392952409697095554884610565973960085752489380270588846868203074414159413068412763513987919289425543650372505493888004780982136651168720357499181365020971524824085319413181872297186393753246697206020983800067562088354522174346185559430464427150024007951119342099126589259324039628354499816160183114952686191510233684982441995470671696939873797257473628846935586794856357119527491699044357610082641166713177407510642423813802146905047591980377460109751850275263357368134635438759993516915168743742753522186692626044012705044987765664002600256532680617328394592532741621236244143576423190891897942104479721470341114567938282313664707235294012258368584447195594181225291665572535688536638915153142344910334046731831677803800791674155921157605364589132110464118152075807618291766378750143831403380349108722192468924160435633772783177603299499629062160273484162379096917695926905461568659218485606343711173873841837647207324897678719119374475410346849365186719387055353545936282753836808676891438650251801874662637365047814818605576957112786151678823382675920812612206866111043161158505520252949163807002685245678201299660303004809522036938976347157411751883021740541041901681579584061317356850256465864801458965112061612368945812145070317095029679285422195923901434487187798943283274035721877476817018622391244834305001698012460289759809775957272951370872509489284802433692619937790099692406053003636471445041545763004297051346427252247044368099779400212866630770934138993920932524074759213030548720280135539617223768679232656318170276146554737405691230834954072785899235163450164446109653106402765055950958478081541690554385173924252126270102829451089639104230984585375935866902759117461961642821869108070695283114386000008972099525593621433736616771532043568622668833929389946910741831500045462458541006017402508800465771298943769931844843943468016328688195123623304628336231922862748772207750421822843689674159737769576467907767997951138633585387440934530026181262076065557270292887191347399863637557465979092176121685385965850628824488121789243353399548595148638151589873423862473363746622557773978687171456991477369979553554667586208887009422206817202507325394365150513138394279310506668939203145408426416697030971323317223370278858503230223674760555644278898251732166063181875239293341339077749945995599899727271687395443627407052512264009832732752638090648335695741440589740143589584594528060193845024099108198677673761218906011741224858817074574175838583631382049204850701432561451965241456396097757002385469462891037873332913706550794510156877409628882318109519271680566106343440773892301152030398386614696164783887248245584660858002201687888128096153745299972496817931550773435738250151107455318063681018341427546344856830463993743398026757715238300969908477701760818225275784334236188179634595377076322846743713741635193114555678227594240712356516431687177318652137616946653413074574050551958138813712445263152212435754137043232121846434572759225090343886968225010221307455273745590322510701485005133622853130961317049023568374680467408884450354394793628168869141623110229551361619939773681487511749774765100910024699500276813682065490781058005234897940417807740311006395623108963335286216376219833026307552206377294093960164801360647271546250983330274468856480260031097408559609299910145541276053909293411116092897869903729539907952201217035411256436284999987812878234891713070445070486274522553600293915086829388692276662492830248888430506090180378102989354017286435443456948587503593829650832110476472341007210799231511293408351698670111179136614894767500576084159300604327002511366990762068118376149454367382035502101859599820290827639038584145327238730185631057474219582678687314791293485029387771290830972027743105925230568554020957058802071921502249148086901118896548576868431996502746982528820629177070414488613701501265355437444601996642541912848934484824077554949386131788651768504336015055677790416277406876403648240945344958079746071296454646294935666787432937759566393466974058219994629652745962210840639007708787869108029303109400729530550687034312351870664681043141442762714416774517064115035359205806489984500503256524947608696206050067059332471313672749979155357720362243905801901109128246449377050847554374411815681940906112945670459171495865849200296571805645925618854833491245817286849914161747140071191906613283351665919119616606978831150022469658301531651336994424111016313461566255969980562115334416685592263453438272088788639552640997264999583194521174612988462833022442472914178641817814880186978516664198018659026712474795269747075136890614185892544546986999969767878032224896960269440681363842614152106168771012407411592259115697095222278720584444779107352555471554861558221733096707553568801578013984605996593074908966533336790296100842282106470101592501788510534738125711836711796435580495168522035207565167872850729377377459448896646095709716970998796516124350316610551252723681395840063288835965385864101014129288111320454859379165392200510745119836433093289156651846119046633336961907517612634480486262157357035845347263151053835680615074733828882260919655991834481483864566942995518041662599170527503673716456420931004346979856963526999443910325010322558472027630872522972458950514318511044242882854137011084672422379299971768762669024128383999047722480525811818407343547337055719059948256017304682443725191095890400975761916136948023740090978802250368710769114983874241567852933262578739662111646002284119841519451803270352324266123198354539736014223454433771548470263860232356956691664618514219095552879541820879094458132701674708674891323099694952318836390024388063699033938666407233984345856695206034730755408606093479520339140789242933903638274289193382378836171366312564406120279858924202682895193516069724262652845701259100097381822886841343592393883857643953058914558006440817159974399820496687907563653323403116772906488439104434802386221814428389443110913306262835284215902090191203234923148157421272106830296608530501501420990587295867593482296838707756830305724226670545337381868066648083775439519743588963364933540506345013080601344397103512965678523815562951018344109579518467595667654771151857475305413256172618671772345375972594638344858163722456926050728503867186437494492727338066420177710405334478336471396090008983206371701015783489107813061104238173375269167535202855028625763769497404411690405525913585737449983680542600633740200044712716796026144776068310333606764063974369068216522723455795361630346110272041568141518059324260303252475654279026114221019390557090318249871724062941293744601188892379576371364887631105594846125660530422641567321756336581611661223006782298305091204632799780209278177263278391388098871272501943511483505908956351983306347143623886033137622764202391661509170986218926176124497546854529645431952810826716744772280359963564316568693726498477860878057581167877367406567965793199704919091879696137768951062320266106075607036399548891399184071465193424986364536263817645707714045583523087673507811006824224624885730040441165008509132835841253903750506995898027947776456575643058100349853334993325738278922788768417517619516870493734650391045931768054451698789441283329185056800323438975728856869264999542477901906067989796332117746397207690569651989157014752089575951555675343228139904545307872655832485101279633950924753454237778342232781951927678476289497054462282012184753839046855861850210938631334458979255129176110267303354740603966430240192374731961484033537549535850493523621858313135816824371162210763156757519377639602653272503269719554833645648825956616009470067034376153575272778463037209215541385864353350421228425982734016177184534036666967650916605421745557441370710802651118537776853591348325584671063400275643615841208929081985729294135835107390380468857407277160325064200524766407996379016430272465544326527503607152271396547298161879507992173295226871698093250127371436291036409640087891159677531483008178371781377025111920197419178927828404646274603201017633479233482542983156835565165048141229588646008861920169343107595153836024459558504543719903887290901182498505604657984660815113376501804215743615735873435510578796213679290072557524249810217538895400380404338116424123237687700386614367077049870542214110630168398908379181351285386042957683008975981614391380893988689370092613092673307504284937769360395363318803998463949581073150525308220764239388764185595896255702227441290025567209784161424904077274727282733810567433929819716838722002713310845125154708149677676849169562456788653812338502615611016331744676737096778782743546072271778528920617334126634649462012125810944936734193722128066489347696518447307340631382655130823124409383340333959735423940468053129496000899429450057795721234670325453527206243051831678758994331997871171070153446546019197828853635617528525694642423438928477198815029927280609838035310989636877203314830542913948523615834421052646095368115992041379548020611140090690637551213267825199718872142415903789991985131221317833517981111666691486746095673439266935193016317325560718298143823849645663003720900997632493374749673641836442195074636176954886176392717475198740919661860605896181586671752717930551381667685873910361040695248314129524129212617524941675474735059941244695057347694024224729943154319895997637082857734509539008053290385765840486396143719851135354148117812162191800106188897009945152721570344740594161484442743416320856946002587768915566674376976810652778589947091659802747625608987125058550237873538980346521532387686143447461106202054657913628853274393017806728110422693228846088535512336508395607835519582782117658052803946816734829084470453730310886529430594822310773209476887178783010306435479926224543017272986262631398090862836329104789858430229212881129984243592142665634802054971497134621209253525485141222474406893126448946919311951018383053288316833074419218847507973154196076194728689614868047106684458310306725867737939926265863393613003501852133390059644699537586941695057874630361464553416849663655278260933254436635646403064414123410357005927747020482735631420505312888820831354358145375794090335082725134332989286484710203135937836304563548749690461634885059626613558443651554814683622717288929805474390250908773498941312858715591869922960617789121535311806036702844688430912465795411316714345836520357643947183965335276225866096150100521321249282050560018657006708195828958936197819008219623517800615108026382028423246589561231756253269956877736267628453461402919505913802694620963853298559810352939824400150014065015045952031851407786063228416597844160841976926865634936571745947876230570672464911243764056101922148402279156843733802927579339414848645705824617842947003393208226380702736607728641171816230767373533874086132350168893189533340831234561571980442912359517869086419400806189085588044937323812526586272033430737810317081445741062571489149930628309430525274629217904159837199531279637390651497821616742157288077712910715852536236859280897704547136658681799490369607879988735027569426405321420133682435165199612261887238597173566076048270494942995996135414474328547676331791359381273873284217850380379758084512307600530250527443303762935207873354759985008036627966817459385260734258199020208743743235691472973208820984407654007710097569873948226937269512764370969575598898343574514679077116586538699071568546439495173089706330466016564924436512430973831709376613291185802465259051389933038105092524935292314831974181030969891162054819564151447462382211777701124697840449465601824537890529221928530595624996604457527728664912708802000385319806942289112659068738033104520004315216181819036065220763486765953609112136787450552922535875216147064865418853724873222104693781891473057515595718541577509079064893965943880397936807403704856796992249046448797847101918034212372241091872783598338266060462058630783812657456996371633347306866724572072848474210528432642508711718668892106933696174024293395595687166681120536624515500344564042229493224118583433385744073082695572988661543206931516351342802554163553600792380930399231678064492433246574580776248457221076855125335804903546955014182578363502198251604432048590655758044000160904566376194466671179182095344749902196607236653412772041496577394375998632592238834345066608918385320359321314036730249352754245528139190435459754076926069321109363508538381027215516613950427985411863004660876904430376262037728222965057758688372627228713925642834067159270842864602079402063556032666023585812623315205465567039116532966390659528699355411745746659137367457249988509873165145889993858610259304353903447449492217220416592953988327798217106385812219281232617417070793176309153274798019082174101514019338097301159590500922375752125869983987947521075381385569116953190036929151783707770626915054394445220143275017981840455467593465301802198939013994351700381928908882124750133598169960342855517863713360277649179382639079270059959332189509599132842118992522624996077148013604751902144507838602426296931487988938478315348474347499634484247827159032154994800034914215701083373373333133279286009735751062407477080158798249075994958765817188428992759149393059784903535508328613229503422591117372379124061930929371796033960808324997003734856223906170499459867477578179698980264140001233205107349460826723273034403520733804828264436796643576825211038192977240448092176053176061274350076474599883393007822822435291593372302059721464168842136119627293963854859168177425318754263658018386877477366888026223417358470992169488523001851985710753106933366869207855615178343987420870217598780412803478771900307953261562515426759351240398568931072016310835692665552714153547398338076038482671417049144933733009829317580850143193627902339516714484563855101315569081316969801466664481864828574159175696278432410631696055264351634416891420386632792566321515309921202662344648074225018873385209486163865247981842333035304848613109459514795171997353609013544538433656154348123885575093191479536882009499707232184369761834943772335583782059037261654648838788496512739588993896649619733048170017371300880386755390856728638188431216406694536099531001838048288193348090431169109137235134366180959619864789823209591850829334279840980652719903056653697766391307779346795826803998719162563176296340510443280788938227209513166897179787874114101592910193212864951386148789979207763115637974413059730511533763847672198679811711540766101548771003073411846827875073947792397869131695800215313529484214591743889314828709323279850319112735490081046610443279189640141820711082452258571185910903335008438072865917066249882574636160469196880109196349722949158673639946420006321960344975073110505196545158648463191269070845373185461070913844360024695302075323733372730629864081833097131455571760129744245319506049029772991147998679611631716783019556023928092195762824868146122804687412304319480992462832722101480560011440898775079006856848938476088168228543580860423837334919110467508048596341881117222797748773250468288824282662306959879526328733028243249843120123032931961687559114395074418943213929217140684633391405253736957153240270074472047130547855851160554076671029520728435998808207212942367100442110958067883655461712959795142294811204750354457153719514990320560470366925241018637790430359777535274249529110681692627443872410169975889643836505859514129924744552550559186329676949379125272469996293495386308506303598318925319802069180160797742824620346040859681326816166626180147358301651986409479853264142138286583651994144837744295225241948401692844273211135677749978044796533060513595137768819183892463391052589992032389920196780563339483185389180911578501971639809664035543818139506931901833374849325395168696302824161319676238432124991805171661611501535275086167861381747630243823159788512672197820976747718136366214709410484812192477428788467846898694753012971447969674200836437878777786321118953978714360003033365983483482945552224969469324167008077036443827186336166402222408386324431869898051958037139764850340637831659203063134050441202539149350013932179999379570545612507600715297518225044808711362896981015061613649038337030135370188854445095356250575078308833897375001057024607380068026638398315873579041669804091461204811656997682480205275601418646685446519409378227754306493234649596010239339979773795400473327504172763360202510231830188498289009266985380772714007295910463767865196444065867378912075032354883159679313180316845096026437952403938373274265208380336524304070139635192625998706188939998654772434355523630731027009002250564469997197390797920198799651724920344872831299329058393452243088881771722729978607763782034415615249346338398863113465904316859313064439378135679573258037007769690809112948309536051419995376740401798245788218732691433403313863435552974260257630087491698561372087409655859799318902058559764111930651303031926565702504810837335066952344611918691204509266245664666440288667161243818545076039587450846597064993609096148380001216517062290938196926801630029309435159354623968476059679908352211991874437318805458945027863859355822348452708330530828972237826461408036868641814822713034841504270845169734358067795031740881085667595628024121872844303901103768409435263167925143564620080517993939614676392202826567265367100558178352465903204302595923892910621130982222525526917872853020752929186106585350974178928775282551931023415137497068528454074537059135779800178282687387252560928786453528872468059575350277331912329698560985690807311052885049789542427992970709786220693595870635322188873690985996202748429692213705187062196462478993278323859953816637349958854419402945116669606967543936556624013770737086101925439498576691039221595593918564340246234762842854803263340701344054402883549370742130863551935746575031436241285949925547176062222739266995818454203012800831917943131433226724879645999538515427017326813552855919431303630916745517097601266585623531390251323136128679578954763121142437402091349484326598995391672326335693235851545703993259167810415805116663997667864041679609084724125091408965497414883378090550535846698905043267936017323583597995662596477888293087661510112194938240594358477513364645768917551933738737817480375791801873206443380795742783404424226204024848377911350801072669560829276959862253800267071872042056726623018047069109791815742318452016854639682711682011325552375071080882100347622747474023414420858862749271790983535602519462500760183103596576648347710656548392972294132252438615037363537800022736090488324394827439359830457581619500659759630700989404333898473366458515274243620441147548099367630010744454316932457066371531909553751772670189970518346895672279026101037554043502356829594668880994257075473160583739712185975278827107686703018830486752577672171111440595010029004159291903767170963224177523544705860265599456800910603163550249301070214477129649478957737619885849441128062393110278814947306418382638406953860122597825405675416814392144261135093277740325472603511294666092653132888380558269619856082418281687986635450497539718375245597535986986066789667554677553484949169205636373793348135523018985358951840239407357928493905714780384532982615316152854190949081967495029512291716038104367620437862661942736910468055351073926331802328003561402568844104787203417514134896368361673853389372380499659771367375232965963814114365578738979473556707332037645347452328944411982801883010354431687622206118052304376178716795461963706735360495146283976877145244829878690024194055570130493579094095293683817419353860832558934635982623024683408694417912063006229532436440460169136627670709717346842410148772441229824363271426182684228339213508461285644235138146844163875381007854652029940734424627034727363484771283134467061731903019440851005579101813704993562003396845904103237984487395958552431471053155100298851128748234544236326397992077273294086545106695586411082682567297548329073631523568957545203451195459870892553358976768349150154404266687155418887258089812453563571443835286680676665891500209932313897571224066735235943151967335249187561775118435599163788576074338145003271662464711348303531242267050953425414162959310186450246086129188832762978281265120828743817305441814442866041467530168451157710385475275935083667520377902362125763310311956960464536562638127410866229461360509081879948746177959863874780964787810467054099768821830563194884714804888964654449174686932850010047701781611806316752814499059188497436125126220161121711492239952088810367897901707433832021532724302760854757968622393051103423680047178933178516482354008650703852605059331003327316373235095312947138740179898606524584389800888226193725841285465769692314620192075278930651005066022043554251819724481738993319033539381247057309129842750569502524295390975622622202877767707866783913030704936166153857066321343673617468826173528569161745445103464389006109787585940802169839054098395336637364689787100755147948785744552674705684082376301624683162145541984835155816514441877655868319294493108275578283497841363740190528650355011523652617830679262477669329338007184580396822982978327094380815053948613327372078321796202709646714919030923153088761105412357248304598838430344277141694388255520374393765708162737109009779715258964856697562389397637326017298910757929184103694238480297433812228163211107496816837050352984064179475297135998785832989132809999945066337571910515095338205972996502129892543870671703447254731943067289304403111013629707669818454797087679964468773782764544073373544212812707280946652991596139326566934439841663289426300026179790604839490079434885987075132374808939742035811722666669303542227422418153979320652653484722436273476478201109352454277688293949212579219493583484579097255399906706813210674326428437888386330042788943089849416118107818449309313803333764199476195658996517260082504747737513097169867801191721081771746398574918815205206423334940710164630972139521803269526347252737327599419521733915963301405318927777593946897847957024574305996765842344618593532097752099852316092879951698863302773253799958007614749788039334347371123551514687518379785630859427665109336731049426520416300194721387516826463154380406058745771846555845633638078830192104649981117089186665117217981060039611311957367763582112698215109962068455750923516430666389103796737063586400368823778155639676339939808591555925080520545192638890713725847580663649890101485892070294572099014574825315050849231251235797371940987422689332649123834887731796986131011930566444537421858859534799846621994092459167415022595113310399109087670975632599516783330071127227875233607063779694584621444002127450447227543324073135914392531330904857955451905351697648246525003373607688670347202981864782945691905091981092237633033688164480028212129676704796080096125784743499808239140672772174426155341743825322061937688709053748450534795569151150265598064854021102054554200646636294334357783041735344030843688551766653920122336034906731425094650726982881314924410697501563483536030882618158748891155632857087160450586195873975806976140003675185825129748078934318744898163014327451750071035291894128002855713946528820560016459811923570847433406089298283312836209407077235229270099037636614959578914532069869683500819442256785938945448618645692985024849383816723039123438530072606673107244772826057517116892753080106387947461207974055660806911460108038184643273238337505084781571862870319543680356556938528131087342067736623097211911401839242212966202585227048063147718597220370288331354283873109464714032352721524889116683934867401112368014974379487348982211892353247157689412469587414976101833762858981710080411094814465929524204644855000178448298281090629056614883682886212001015395798767513587187082395113581395661441782009603238537040538818470507828289859711578827656874890797321765803036720771315495534208853376234795238867859166637052579323099245853500769939539143784210465258953977266061441574275148009036875268710148329193552392666191928459860915871136138078076314618164626791629596619522860532305332880593348962276423537449126133372804919486315459688614725441400827257430641032520176193057999615409753834261476695412302172888741068904840700649804904733871964256708985182384406639783957267569514569036986537374478434209909804313067658524404332665958353238352329676802955716242218189207980011708701946197244376349089503237392676862893436748981618480431856457053221900451079196987428800538318914992815942398171019997244525490123354867111089356331434733306818494289207808563295534902565474524367143969109050568280354909791462717465448638166532100980445572385476368678443214463298681249739181998274673179528941840387550009837082624259118405214856997475960155042631794521346844589086656961446500501473641529574757620430980326296216423026982011607083042309427332126162783624748325885359277565631423612089478149893193554869586862285270607963159415649857372554576151390480966784732935953740842986712928940337103482639429143203361950042157573989578130398155888844988859538552876212289023218301992279707359702979062444974018047137832211291416659287388427680799769032142333822296556700366147521162987741186456720568474108365874755881011272738323653196586460216196802421880984758313491752424978207479239059858035980023794392311735853738914161091772716372432159395731650526754845764276140967198284290738381258478413543907025419490877751293058508294276819479435699828452643353645629884614618040032271388270794824758523661924608511457037487196354222018220340377281198653312249548741964150108273963710083693074398840421746306818815441006215241311465650311515626064408062526212319797695700596854565879076627061167836858663892097591286871393513033293803541395158327025956322274598332608337221353885255439231457182223461039126385619482323513483802554457268714507084636622605592994837723191945905641554678846734965147993705938858809280166375696511276069337264970206441557847977586080210149177673656923188594460923938969376613625951664307604963372781006146778403097929115537037568148161817722536489843448605818466326065071242253063747373846116038999253952232215710011985721469671347509044720539165092557874708703930772142042766824584371772659702907041157722269593558147462295992103677823170573541701240126002086810014942534839664417494622867821493241238047916149163022483213660214118102846500145838039411329653272920690611704210712537786728436618202501926767647806295927602745850929049821921940423674064067566973351171204185156002142627780798219706947763560552333388675424109542153605025129881486879617778177773468408577775077951802870389822462354782866889023812458690545743867221436578769750137351615542530190777106166104984693980543336594205619595301951851769671086328596320502734367248893857578572687788972930568243353582963061111271168732089983608687847359203429785793223972405053005108745990275842006757774734701332374517986441173242092947069081375400186573679163652168204802112816773925339273956019103768660020958569661388600643431582185973619923467100761689305128522210679231071477300162634310472220952471922607175641119787651512124116260561663620832509728902566471496682741060668482689863127245336128647751729703619586793361959011203072927133259330816882786721142471299685620211161994537044559055460060482981540945151247196993598677211527142134479789364972632407093348189993764354340734140243648990218582445613464001520703108242175889251637848177335197833126575646330874371801739249564887992052282630350363152293755978965082875908877658632855767986703784474772929333921082610478071676148597381042075223567461776701877917412675516447764043789201956584606231790431089049087627117051514324878462406848080388091339892907407114562331812792548214725550979426628872074280268305017847759613542335386660585370165146250262880136472133010456700385648121412235683314329928609369691545996956694587514850924646869018796954181033096655657686776317109413818169095214473074615422236700862451264460223978029654996774065152558686846140253157522283546312981900146102599547664341232299396678797509613171013244032937200658359551782010741651231014598082578153620466189863898192940038498533398811796635518545524664395237579247211200204159299312828104909788556571045846638649063423765797743040142333632504096456069083133617736871833113269603468634533450273634681780255216512068519051343481381385344359106695927462535924535096887689802975545537586068978156060905466625857313447820095670199431669213824745951389818922240463987216632202084178766040445780782486248570293410708652085943636415516967064925157160550623332826021480886879976353433393002457993480096810742110556988947889241679054858049091972490555877585207902595826066319635340080185234747390457458184017806101224365751480969862957578951619351082791982911828192000994559178139816997186408870849047493561328445017016533901803261950998340867424275947771142747354813354447050988451885837910426977836602022508734620383263161057595261023302102882556444805419588931025763778315570015139927955905855362364328495775297908091946442211400354661551891717227379451508826324287029162899001264648575511240163200606678954471726674788825574537996126958411459982861168889532497774760478328940000378045831812124590368653949134684063531210114014549319359731451809296845534420683455902796120717076278144123572951404886475075726925735059573823045443831054048043913268073208171263088237994165746859554035677645030721054598635766318290847156007296055993911533179352514854670538733628960375401245072354337492645123934290911746359310636579295166392287207360393545540985705995104023343345464021271315142639457142171898719055946866217221275970817878198327618875527078599670700510330313554074843596906569973388919767550982924275155370155966864385006793056679025525640170189103687443440251134784455646910245473461097604547161596361740979920100928927016760249017059785269139091148282245238447422430056788647135196818194184476238766997990405071979114450521104406674117713437233453042834375119652455397738063255128943507310499317148758471665159720544184742208032347393194131869046520684606434218855835029055227775359140479659172487249242261647586316502560316929313641250662883913997306321609505138781866277763696568490606888298663964552445009612982778324263303097907925515070021127632090652586341662687188546315581259648772164568460320945322643071387025946624921347482143029313354342517776184967249739784677866944850841557507000528814665811574371401651053595458829498116197345600982548815523704324034122194672058602279697675190708474807910350629713852753154830005672279777604486061020254114331660580617114727945634221798801586329356526222979403316465881754207091953176845929313211727176121952528241727498868305512499010196954260008475265830619567600467168757351984197542266103682160734811419079961388117685537360284237024875056316639556442516863938396513166672394223801346252665366772682097680377914785392667412123740676800721267528094159917141815504218626924351835578040903965195114741431120069921865091694538384051034194995815447822948733087466786878789502496238910620792897521281544412062609575950771323800499049071741003635903368369702383508267745293499710501176828837631892578698680138523908611722849942406684400099038879029577216317250001627836722886304636558581454804761268875105376585326793405719232432068744635351269196881280785324501971397963987689556549939113297123753780419210296166428241775139673324391152863616365906701999918663861551428006213284625870344117889763690820740701962951048770087981471825724931450990304912859828828160775167888028060368376706060555694758689558834002907385619933379385015787733825521721172405321703079634270984995006634328782655139057694510207357445692561771673245870397991823647637961889291940193124623074901956726994902973835064802317487842763385378925992593277963956896727303727776177983229125543078084504782135671619467613513076175977286948288460161448879392547786026146810503765351484042786467677929235778826763499016203986955093233989252048105895160936433005685373534972348588513291624537879506142247119820801299056833384668276999342613563727533058990639426165926684393748814754951273485526402659308781914459115635432908073557609536539449982718664390912477116892278443831883212416132998999903818112583867073376909236770897249907463543840166823176945793240580203462437433114571078897282850035164523249939026469323893617695241933524337190295029838881702215356799480762533778628614807483676573727690639161293717817395862088056577712282822396418577856182356185946623582170368556844137736061858288012020360367053761560221081681272573123848485635402126829689536945584685192221182456110410931741161492767883981994133389952822650632026764597615616043282931798598350592293174140554647585561004582606666379484699799563051990759289461335694576518526394826225160439536216098682295266947037059317030372103914095048332585731464005316305693846994975591764620913010623169775202190821020660218150247368762715905127063829481034171612931937986173538092766214482876558435789576158834881475493144279682821559785652434691910313005324251104214473384648815622008613612175614919878654502141621098040137376978195673804035859428544061478366283019089075965999997950024290175440793145282092844576073475931440177599969893931716375309983406326508940096752166499821375049341359363749941053190670575282371075027727474807439612682032853631789120111298935969120812024505111476853191647970090085383389992489493640491632372667292465672544010935387802637449348007928015267492102441961537879698061145431510587397418465475288058352152324174344073093431022493211544886900558251595494365031119823276598306390243081355886215033001356726227911036801016957016554441738201359419565191079995649998263138249443555996624996027281741611546776614093533287689931422612957646804792965631531629958466104922357191206845591469600880421665652641286197503882583491278091835668994766587023087252953737561783193241874521960640071274123936894872980192244077520025672862623835040465965953857374805090759900890484486575436991906913714108051317731713002107448245135501573538783479703731949299763391243353492147935630786297260565020386445926639340910660080793751678711133234510430789300373818288068450070667929265746184211333465308508599013381581020327653653020534985743052230682373831595639553491471424031715783939171332559957836130133269119252288334819909897406661799828489793260998321564079974632897397734174197216855422311092541352326937282157212146516950222210146371204507212975622508722788792785304326051109311858530462444764610571674513512466367691941438695766158415552870798592341736006855835914234771699034121105638635827073516358376952214776832055773255624597300948354428667550334413470596323103801541374144317682447381061096898787154891636919728790742451332953375937820711293844313154600657345999496643141524555684193018816299189660601092112853068203883905446252466047321440541610842116672640224903001492882895389161567004601888526284934386908709877659903525240956852902903150585782810517707421943953524677527666420443146114608541028458070046324667823815370939219293418925626450723805003590756093535057356582541438148318480565565033465518963666760693341247963891424517186626997885309580660549985686874554776593823841262647876263997591286986223873363016640916492604958956754759676723883551099535395309856838699916508027710200356165040539701379057375274472295907954470667971662140527777470668336972369120160115505016280384284266852366450852278077211728853653535213520681825306794755548665050757643235752059352749323720559160767172061435155529143146303916016386036299160062952724040055096531869933782503032687148866711562759495040291503832268522479555954653984552910890349510349367529320975390898222446765546893963745440836115692840873466889336159494989208627381716601203588116123192632116524764624320381566912443546693509163365469987880586100111915687956085807634869506558327444462494533966392028204469826890130281056437405273395055387663625821464459994344359562208638139745885203147367097106562407343438506345958711539853384318342657937054892268903366238781191770099051363706342498353942623502690373581912986829224406879068405075487537637214038778402229126418469229691332344681328955089620276737724928221297060919391728067625567182616505068375107375636782981811034314154719888523007991342878793197765940235993391850419194708445066050504613275877730841822678596248485882257269304552444622313425048616358824964044516287647175906423705849920352744760386238645708898663050659510931566944528290770125538038915857543782607169571880510416368028267207987260530152012739322151084803675083684704684156665230007492920913521309715381441002676597412063709824999808707656922005671899677491352022497074435138411880032933443980851040720033730189580255668685843778924379772944349712822977977591855742913798214296637262981886202053494844400450957506685773053492649008054949615813170363823303876756918930556182427169567495279614773974047060706801450851070041962795299357705180173898270250694637207732265402282791736285163335631832850993356215113504491778615925421890902852906402306013656083479918871125951973164437598955415049951054349441560367373498822286734395102400404225605705216611739042396737623498737456950050003799988290790246172014368695404965998289580127272125826597020775565994488132678354313063305567083922998750195203539082459549534406603958144033813003541311261287319205562362022481638348396369033637866489790133199840197455382715455132723928359148500296912531498783869495269242310626050103694896330544860481979816996783328947266831950732110151642720787119748150326873830823130167099422633117263960370676946877400227504247977286250363672448693014680474032589671345112059639822979527451707648644754948794495678373244414891416431567060745617466890683709529163172538417276850890424183243411544505212774314316021197761569102526648923825303339516678640133623031575113431582002298395395448926213180203610453894970585366164700859312019308815834843745574123787634176719579839434396386752174851612881780720839671283349887309169682966507964559975880122564250607161664033746204026333685910253645888890090751906764033923531558522300332358165653253803347361347973003431905509189221848523780242435542928262872081437319184229713806643688107068239973036641220404104567891102936717502860908724314377720076770270497196842668771388158823289808746198055513085149759227448551194183656384629443151477451284413128591046103832888818805346025887113489600957947601926262327305317363736315454015076947171129129221984537057793695112052047945101707152587977104177591461938194267680780797216226824285715169965674276742384233176170319203516491370733211171545868784752183870309173220982549139834055880328144713880856520126835190393014263562093697170432998736835973204590626851080400341491827864633209447747919728328516341984679171590812387300062545981208964189890524655716286405518403957325439165654426883731479033046465197192397555940637110270449415782721324740716798642383749892938695461069879630849177262381025471925011870018186091774374752751509138924133202825688008231795403034582300410787475156651202498544377840118839908689314950325719466725267190366857883898400551472436869259753083476229714042866872332428043580919700369844004683353486819077330686464741757792259554538046450542069673458842746524162210887097871668150986107072036836056152646491469355954408586089715809916675871908859644017086133263305551267295358757630682495242122071145079470124019326137330638042848708778523194188494010965871413428050757952640859343303882437190679154578329968555442951573806683698689864773382398165048782537032486414398581610451903744984882990954791881413736064021635407977015098175725323692596883032671207872886812126087593190264184762044811022535798045052455584510162402104540180890303091385107513651643115478287524708465680396505773504386390113733726292304532024992082725086596433650840742934261454926129783333435297994739485331841968959255989469464803988888219770920582642157489553356943923217456606489036166600885664273551438907538124585234180069268703582228438569527394632489211734032625141053382843596185602010701220493699311627312477453125104405026950300301054819697437592248741096054129840161296791032825044632300353690993190897831230955704988414761959692470625153627452980464738213088954161551564849737408373480980164056252414878722789982097442021663529151474411780334710270166958767888472446378528316115846164714328175441703377895294291959452133918564447499970760064014974220077753078945262461148537216769904379708024908127264956772637850509575138497183120713297388319023170805387110813656242680011871079715214426083917955848516964850637549437063857920791123337236005255545966841395277608224694666447975912203086903816441905555186011042881523667442142693080549242818002771158172760772085829101949580569810079024921632055475948345127636446530816175013808400479090719239771461175068578763049908438041421182227345363420037318850814653812577285827359711459212717228342584709166787175300028305852079269434897662816335634398843255814619319352850306460999016108497713043805803759071647539328461199405970584315391308236695199687979547344664429999303603125406440203567602711762242593423221297766210482260750979630017763335375002256845776614482653177924582335577578116907828082994922095039161113564555746695255867724955721892873047284146575365022690339460992052154276138993299743729752415435696510778502693072623439229675704358528650941206158614567715045661217615577175208628854019735407374954526853435358180187146635292700225575259149995859903674659528401860989791030959182956803823592131018138662199927659972305892057157412873188196851333882843498608775417412530495910315062190096831302991627382047230321592134843334423830277142890140857059673684682034940997091559127506855110307796732056428790934451449642427903522604749118387942391869927701563741115256614402659456601282159239270011399603982907898108995238969015746105650144180951404028336810199339394470886456108755749720209294728976157316040387178513726904534934542436255431530103543530400955660849788386466165299384616672307474924802670914568504025907306430758849688778625575800280320854262837356387544484539060704679952681684238663864613873204103373957515371687879762829243161392924085600974810531861999861256514352559217940154260137924138386428180150211841387299429838288608394943840100894981553930378040978487801050247444224860732002500148401618905608833699093261229814957299199604027879188937449712203487648329501483488674484807745677809645648388059949555951689759864090142130811795507889335282416233375610538304831202675899861668965868385461306320028266380528068610747031604853774328845037390130870584897831576910757968467111847601356539430583558640894426851450651575403640816349912384575041936032739042831372464281089636215104270843989337133630059802417445788065985523159766297358355966818804904045031578658189403902547495826377928088058985189758555619853097051526393182517529436525335562729468620796544850625736520474354706220821836116078664565698513824674187221416783288692132420158581540163942262320554021613982004152716207593362537424810891663655175944150941775420531666505640513217869102662225160373648346810464655770523069319752055193297588596156265204089486852492547964413049366753281824290960193866320397590190504001668680611426403980701525965759888739397246420246128086280366293538741226923662131035942331762380735724640679198719729076615587338854264868509443211744876654119132384757516802096142789876278038594711196196892246157614394545401237262865000714180158952485801762069367631485095303878873028470104910430154348372261940445222018527032381608904989452037113104657402676415358026289694871198026259090876357110566507954323652984715353869624366410297581071606935866285956372872342768551504665469093434073064996944136527969639121497497754298622760537769879141182090784034928073988237999954356572063473581222347321986602488167306895130997882097878595731845648767836092196828804557926523901490237091067808788375196807490624258794167711108566040034783635474636954121989098536446005737804793694787279177145813489148069189501116905601343046898340043855123812737077337828439572157215723398018719929019091406373739260655296194156298960186191264276618397513470509056245470032448073958725042065205697653203274806283959520049781829843564524907342016685543158396366021754184399702649476565779288684192315127626880197420621502052087171417786196365401424011314503382170592414790719093220920102953834490398510438300864176278636392965259982103495699144936759752422062418273127193865224140352684305676947825975551318382541885219570535992616967002173932818216164833586251895791984987815423799110081900838933211316254863726333500863169362287053134498831585273365318136590492572189941951443042492933203683450825603360014048810612250320426681778944089715584277456281425386577875910727225221028126809761395030286748461987689786881427057874728796237032031522813135334122705972188913507153836838246634355379444043035551487466377552010114207723831602159255458220042355583566848643134253828755664066812462865722251557452394506902217664249305718915759179976127062825943035931043706963366343479688922402090487205728648046171384126124592658691260658501223506781925674732781568603274047347131024412156888649998318918595214976824737709714430694650749782082939440916075843935881297345576417250382161539361995232873848070438635172539552158304385274486725156991524590035123129817226783229818749483311130760483386776964769332602832265817529667370928952524313699015811799930281341738747997100096942684370818206601686577704574621117281854204743071971296860467496059883136945683319320894023569443219095345151208836315352507736625141096461990630136497800638200815792573016942646006052104086705977390156205375898989943765357488279087866847962282784615636854107986646580136146672185243135710280984980251332344361051114161936531386561625059503036771276084067817873020173761794562864581282460038674263476978679213516287801670897497477826675212297746015292102506332113240661571384152587354484153345626599815812708803918874432068960919962394095866612946579857441706808652287796875899841186740954438285696826161856578363248794356539964755541647563075668948980798374324051019399959983149411682869090200030188869030703467938787951573737669068462612785749572087833259979271950969928706978365711618025762188797160026264223451776206480775056196258407088668272091019791130460488023591486709780119386850663539618098398441062420897555812747521843071060322289518536703516258315224672084340979801820561298490541177412345926342187996180238664791581598988990122324645734970247727066669073705954275001439064997392312436876243849509538612671579878423984657857144411814424482375917235737088476947513448129571612935307832386089480362797031327518160885510541269940388264958974867360480553121590822564781642435528489928453058195433402201003373020286293603111584097688552685266627796687224890166720523961215265153329901022307396085894059152163143807617616182553101031835160918033827042311149646262740663666748959829461689126699306528978187066342527345148573784124461758015352691331310872484985938067560623528958483412532072323559047930001961102236078006727858358805750788559036880157782678899597928682762671267577996273769626020234009461050169386558658101812634025504658986253341087874904271599831948794748149652471718542912362565336912841367687620977564687245290650505429426394858026255906674614782080560395714534525236142010616347730359660424365309896987108520754071156558810398366018760820102706325859237789883583105547390922035663445300152764021890374966937438421370709701956967247186321762654907565203052490672008539466546161852644483839477749872393969966279978006646613525106896710543453589575607173198784509900724161558968908658343084641087316512427494311771098837849809129100928541284222553945866397505286282117766555766272757497724997720053516488978744950600177610973458122150832857954696736668295364926955794645858441691994963947281312375978380389930953626018771809006428859131792904588357457446007913581183763357366443761611957548770486558000850970561325786467885481203519954117010989549033907108851864708832704051308022944355626472622455231921195262595875805249194145314967078012735941572481926953298721833729007529846291408653155384009158266986148397816119437686335446948623540498429611378094969547593078628307503387783085888175318320830959093373018882581610119578911945217501461541551395448319495942021887570545719471575948897140167122263591276428572890119853173403284875174820390552711311101177204531756276942808292346095116734800972663327046913424728029860113744779243570946420994112946627947649424275756294276940319411664427280409127140219884939085835980757194170363336742036443555995083450592472003881083916205518577079293786736244486526729588769376744583096966645131226783174667723778936428653068117915054772506812208654347649136696236005901754794028233351410153899547119939651120832586688321868964489420168008036987071529547864594138378873403059996106666257509773901634188297715468584964699322570652791847851951193046885302474125894610343738993940703214798950343920592647335578731166348935450387980664687487698426047977838612802831485080710144638124801650331968301173304677463602923397260190537600244208136073966933284573276254447770984973826035781440130659739001142431152640440900642112750099731057733828113982088267424685990348402351385920162807484249838211663172303746470309043409587224443641753100567653620211284744826161013569047097141240338859775524469524482994440942459030557845920092485998679078504944659038689094407133994490245332144209283530049809806869892482728657653675248110878486685365347204415139475063193240449773443886592052968115572055881061540138613231631006124410757013325556558321566633539686679515129585832296814219922304617327063874485407973808056136862474340335037083331330672680030612805539404923055548750178190303027006534500062922420910724300326248320522190648439078057478508038640827141143140071936071253979228219927518909148421426034315983306167319717363659650709152603179340436923547116339721610787950297449842182128474387589211677173635785175659733646529101278925138382359001920122467101831275890315448159352310697502911921742462833366725446424474640040430486476079284822721566822185333315272027590116550986200305776804403900985279419850039528219068828110749092232007074493484469969107730455730109653834403090019504996433218542949940549137113200567694045012868173732092010421930110526455170036691782682510957994762917595096503798538150391361733329027650110807914619676862904394223950097342729485327964723526718397503869978958185038124030860136447026782701923536456671678016411160626975694764465925490723380937253012583845702805668689238184021070600604395691231326007985669653122987891179642791790704809121009402849481238039050931368761688244702021810389223883078611975868059151706467109188518741420944353724873984409590968855699156409113793793419609008669319599475143975626435772349644106137022486296693848068525308770493383438786189966238078237147201353235355436186487062744492241685740622403848718281217759167600342202599981110670589064485624287850114573573313460193681916308693158814713843247137008465458183495859901183693661146393680623839791776051690250986461910109680164004241906295807679212374976928450800336399012961804898058841582391366271202357686218800749125987361882499103403217075320032902415425031156065362967759490536596056769439349838908373994387525017139039819787580520291078921490699480747590320099133065958529572951751516247158470339502866312056724045574549808461030240008577518844221331022711431115389751094840884192200215168636700972235895627562137197321567874482412459808430611465685536581912167528901919181851999502836127917328567529276055157333962319147654477865563399448340734837158870774506112662108822327489130302241864293301102351301853434203971755409186072281701187903136465236212626629658595125225542442514771598628803177730502336159294857290803380980413381948966859877389605099023225107905102519126531766154844589083720991195604997226082821550311490237166173572363700712751733503768154080988917449665878350452730935302107855531689978754697951183287318298183817100345135968775540837585226618590117648271918422272938727349226617148388815316412669169284760306323581540331302121431238707587565143466738856236083988349410851653103857505413702682157557557397257243667375601310585924239178271317141640525583021140571408794394940215099194478780663303044663137995015081227369991185512545294233873107735937297625755381215481656363727538502931498200501502249392125796028148140739703461995590367235227833784845161001343354135775118763716716805046456845951751821617134130655086487902079148824478741470789249327677039266895799431867379000788070549167297253717180501848506698241017814936649191119108586354844128457405354411997269048489466464184978376831738595430230392829492754834813115081244967918673018539247508886557668731893190701684257864279877754351422581410684268001472873536113356637129096581575939848601705342618515937461994565536739840077019207224935374511928067008721951987968990639164813699455673459452415889916307355756796716088713712359132902706634897017444840337084949908541545229589181598474423161413100633458101472154403276477995006991570893038823418684587418462215010993681983968543754229742042524548655870742258663514810238914672168278617791738463682224251195742739288683747033593722386381506883463139259067314194486835867717743009218758240660406457954134793724565913625459359774466000033773183497815383406097279696694573553117441319148959303548415356106679206885739911870653498175249650680455945492238293173891380240983628697005467849078116884921141030590984711156669212538965758213893858190802144531970499418388034894721762836974078727780445660686912674743529352102378152826081336198637083501511627702760167811672652567046521205462929417669181353344010641728477039867331575600617855687968691754675398492547318456689721008443655412176329274400721343533120988077564109418842692971813105018323657375240603076305766167741670865680047740639266459502368128780817989454003134362142806034932689000658586915700750494347884790629531121912777035401367426779753114898551892424418925302406529532713333433898794121968784268949021663803939910648895457408352100098720136219266679022580112718113199472884292072722243905951397265744043315614613724533037018775387587094520657944363702392086555763016887550236455466025194478404626080311062313112631359095384177202260424805503645613580264501687576794669673858484371298608301815959305063179096836275940393770050163823500328995173398712669906045336224447298311840670502299000374812686290496375579372799269414812349168323992290048749389187606228413652589147303576020022306064111750460980902365916358396253000029652317922990091288763260006203335246608703078471273705895178966822705992940768765082781429874878271174446339212147359584926947083466716892914295323617767461070224773665627016699301569035218671484487763087430522168326198744935021042226275162976861503078530132945518760263765811373966331436641866767534312818064513685190575138223033456770961301660922679165539414891439387346069080287458814033323384527823241403049205177351039838139372277108154404703787762784799254757991523143262268311724029842606052551041930039681880543162991444912568654106174326061302346101663253789709517974257546040824296520328775932919900515926093820231235229112587460465024410896829415578330141701661239997635578584094904884029814799997669168195673540146899766762411121820493146453900552443252308792743562902056885748604142438675597502879097458764299056718438879099533223141583553718719016242837906806672948678434257260073752939620712035757144406944858444894448060265719110272229827125111073945889781542260864833174446263008578268206197906124409814218847511661455558062884533170765540089986936117554388106641233435018274215281018659765337394128032623861192311961702796286539475841950835209221376893793403152749076955286972358553342987239144253881650201985577969775318325394787732395289700728073943354014832804148372367278959883729079191198897068435807533637822298205034514660402066929633380068211171737294707283771299853910196739139363827958565493681894914229111404062998149392368168130255095748557520535375660340632771592431582842704437203084552846718150219066536578350825554031277223172257339288518319052412766762136233445276984660638055960808580121468080834142937869637790872490745196424501579323275521998245764671638605895407993678339870533861863530283259481334770964982988871183534534667155487183233673518536724261450389701071750695672087035219089375768144046456072846792186833675684122576856958335325274024801018103067786896889026561403033499940497148219773463295773472803643968950775257919582299311306778678823849449571965421019731746169818526865118471692483613544334791843769899573500037448410344372638179402304561357010789069943748825370322580019888687737303011641923548176099298353374973019595033546902673890638600891454050554878999844883730390796366889587335052309143271390690121967909498388573185354551880626836440111353176713999070857126174612634601556241014272904304521655749952237677594050888800425965018065254407595011903339009554210499973186368359291247609069499063556075682867362194171957580913440905393968538594143212853263693013976157588875143061104711652774470529883348539014306971388307924459041251800455992853726792637239803557271747080753378265653437651689551711123348848050765414889065826069190366560775964707621441381655223604855629643500345883631760214787778285590778619884654773563201780870488677167408309731551626194545808011416330796646555376110938265011724616861269249336549890979274644403051992413729576940392250089681426785512310516145676452658927011373164840338518344901894636089313896631823207911363258258009520784458958788530774735020711963440597740191321419455078875423314169229103070276148700504157335203717589577904962132845345289046516470120431984695660770791091848407144074337956809614576789653921886334429804670227254281476927298981731279560313565709315584257853960584654291803755718975582592617755988738313458636892581320378927979063521418304980070610588334262009453095291601182309560713773790472530187340351827043045073738301586995023927178733191627792674482354834025105997523182402926895955084225838277574730461187035868131427718938053889030986148203663687705915127701703881604189711288796155235599355910689195375551985411201403331071599348831894795588862975766845819729891113125615403595866859272469321176396448595936892584099434388331948356647583846143766269637044697639674231112328595936568005695120876849626181870791846010087709282049659981393358418120403819800755731984813296498187973513311435576763487503787068331400813939519674148555232683177441478647322903245915849415085283871470975052746647456366128190369155873874922008301791433530398531435972103952426705182126241198262702009245004191906774556391487826518259261229942600398646717423394040399521154842877102485906683960151158375346413453722129261630520660800377362775657993557388708133214789759534729603341871276091801863161032954017937086336797035025066227148856636984248751780002040464425648355895961943896586891439302390436209207563156050709308007323879629238341298641462896380622948857012601291557503426972219575587362881761514559569698748231738437279396961412132736967376337946405790801859129158739452902709779947576500991720944343138803340886499452267510933719627445599427400224891464321075102344966273124369344801824471559403760051435898819977460096532321069296074340169552331028190877598679823494952179491232037045264035926339641660913515648012997515049864721251252263845506579251083117659225148483303325127600341215766773449364704679829170394978134196638320128987164629158416943734945382468584791332148552469130560196416640891251484669898379396190280786092337851030355914939492610956223386169218052884036212642920199787507890868209321125078314145142785029052515470685740412090579132281945779334985837370017233230378178144131004326941522035419407687402400371696319033598233500441939354313120697961869778582844830970513330569688716619392176931785044953277888515656872183154190590977495165994707581849661508575202445243564027899536125354678916521645468667622378722086528896077549700224856749792323932290099388010872709674016431285421965400680273496294715792246587357750426570898381425867364102098351882312199973161415630339612271728092777586638482015228979803316306038964259458571318184545339515233151343548412740552999365042574228901071637825724337877069038539790509582129080278685379702465871783871728838107966483078305804356265591121122620552814520099758933856039263686172108378323536454073532285437077875449202565748391597665631709707751064234046545782455620082161486978923885281150882147548712320901091675162641722965316021674643934099399232129777504628205367029031818489026223475425358180702163998285309167374499815622731212769751966596111194699751974137224794103429294474653744186023676074529431194167994520685303345158160900644457258707844860598608879113970039499043448481772977884031246310690440177876618982333570278426659938209265407299206913890791481357254829055714288722487591612301373927023542229725147747821206887983887939870200071438525567137723264699344754926911584991040538811231690550937074346247008449727937453199590944445606758473717531813655901895313549914059044701099939246328307277391695526754049644376057542203438578496719573827987042718256326736701192948189917777130326738110940734099342644658896768651007733164070729320012213598966961862706023074777679948574163361859252971468157291290980143020846445859097236220028856883934873481730320880806572137175374668849328537596005859835505760214284956185453526385566586262469019384249894899779452539312199790564570419501501582461178141948326819424607873859241772160365761547051570777295297982743095145338377484175618418907377374320776958650271380359329186989120229750476869831289227212623524303613553172098139320431577682625849265196461739018657995237141655994605717038560458407102415467822614840976636933328194209243890505897208530538356226982148892344013375817969140684080114334962047984247994657918728971262962428048589114231941290318649018348407435967788182316154271728101884104678672671743660468174119388721754995336775963156709886860685941901481028144524357785795991895581183448416132950752768697776225850255070921093481133069280960840718923156145204593124373487523930836887230719090651424214627372314538137593905634332195102403602368725672012542652826548444165414883929024641388912150975089964464082619882664363750866723682245114266926306325704232374846322197416344423250916265245010601330557759292939474213311428386090403726089010545701566929199077935711880893399457711956391027080545127459024684300366241234440998450122857475282630165194922010196203138772454494092714784197263134803187954317443875752428762348926428764477658054656103865420252447591021140002265627699042844766292141656843938776614377269006204624980530443679015659756482363433530838999677254591842065492809667390686505462833560698095913316059616218871131808190009727541290645750517559650653193296906917987020857816278734787303339419184224347523879571797580771687689519930290587484017730374414385722663485819209834885710719404022168389387402180029720861537499080924618527084902123869719631909836904765525960218406643808472127784302653730073166938518490491063653057014508958724918269490251308398888010107001227110989564696255427411569488181831552989084889519336921298907549557889303544140539662274110983028330090034813348462252236569264677070894882447897576375802462696002729073198916983659173591500700511678358160631551292502469644574238215403429263435832832658023824998190552734651639118997665206067626930132665162651758378761864283035526965137592968077857794671138281983060477998478489247778915770270144811225188940743794028579071965011479006083876375966433848078239639564390786084147570896355292034157289308161364953982007674846484185583699627660477711872626976824774724620165833509075080141540573198419467692788308903466220970719271607681614916862472652465214337067488527087381550190062206833871849076496988306122355663396223069425427242000982184217300817010187778285271998461538639457952759279881843903038245177388200516797586409205980169194272173820792401337739886200770781703857245109503285320682308454357393778437111114545536077767341528017326290049579962093152583833969574970936190802979945452401273723088290843410650116974972932648530359767081591222964215993486280509930778747138774078698495710519099740362353248134830199524969247064045280208645116119060309915322110765223679192051512632143130929133791394436669715441547514222700633475452689044873189243417945125834501095702005336859017833750985305690663228863267130093099039463512920568990193014997254762140511263184832097722156592647697581457279680019757169019538457357373816274830644620087108458605189754407778492352932411252323826062134589975929714021736073832717987163518764332796959119885483731856988900858205052494385918030970442337196720811984303726893038139441621316285250975925755239366712019579646216989530541186258702784427153052674451684628316505295322677616064172497880026508866678498322739895101958438049674646968337354340977480808699438057573715123516175635549126412396138884233431214140642288418046004236772928970472556630173660417954434276406653649689525916490071721100107107448980117728651114241125561673611203363556985361119279077306124419153962991456808917751309308982493470351798084269856729652905409018956514583779304946503774161964933620142697371349341390169846866819667971411946874873914256992831480900285084781660064428336725295394917702682066743419495838644467055882290289464022140449462894789005429100417577228697945437724295528206772726762820987359436568026491207245998874228461327240578348450495041187309766750535828573389835001997211483506687602537188595951306582518345881801941104991592715708561149748227488553763213368045029698118005389970160360397504746723815838787241734498118210080398337380783202513714329998951685587832963770957883045179532114149947819530263716502210206696024780533757183706163471746474825807817726420478383345616071382896475039886625079989998025768187059730305635739843477377176779897108635867324727195394564341708680890484994435222316955685936852320929102881248209553749808163108096195731221634338448341751455783013252613234849810972450152638085027332838137309683107728023690916217720550826969243372072170251080611373875913925538374624608378250961866216776765004342343289947053846221949124287949750887056722043864935333633910548713719852790414648397909949692587607047819307317934262369280221531582389905307526315926055002119470892111392060690376480898587851044159382122048988647237596692036549904582227707313508692841884676687713171966339089299891563313309148697123938887093264484123369078980758706679993077477682915375933561187696358269680197176889795663944399021276805229498560060290789655845408666563343472705193629231067906327769711134183247913515412273779925329708265675700694234570817313376085859597616538199099882508012200331540270858840049202514099343762487427764399940690354141736096843751268101131324040354498962105926686731393863827202146300561479020312838637595605782659684916604403193217032255086492300262777402790505614437424440671607772233443963179485241924488312454828425453757528941410897562214237693485421881016391564870345105987556606405915788483365736753555378176653463146260734268929993703627236866210485339311797275825578319774680907680467068024405645096498729169802982918876350368243033313865158476954425258427856635836845944961093856267025399796272766572202990961701461603700821400071932391390706505975378838074991705226307612522681705172341518688366406292353500524419965125649212889878254031066846751452167690057745300479385934368997345500178707617321988702215138432240809373206262947617647983156588011629104114924740631281536065968847999790239810322836244967304897042806958764386493711982609635657085791251686721484210343935833008578282333246596678018855681658330451560246734214024586219529505372907631366169866749010278937092690447327902062510339175557607194177844671112746373174815911413339720341529577484801384108707223739859920035642192268455925473301250932180774340579518897296826062841287107391172859684382811735568429703776567150554072147951196246767505041240058740346799632176355824447556540523245613524604538559449827034268244463114628902240526168638138409766785307946284620590923001089426049236807630609984214380277619309866812674375330335648404148097816631833465800019355518730155414652416776465574708453985260571824344056226765374889377746576555240717330688779360235927398824021136953314274087111366265362967169147694018087304705667869867635673851661817815282304510420300716510299288900772937404572842867847281571002139881724484057797130003291011034635075102394705306064243470498023196149092087778225006258783500619457721789866889803784355641784668339826139385937944625845552467692922887527820486688774198831276369138593252411044565990526902802308379511384525909164903081593966638719389417486417158240821621653175254817864062082980234457066835623413270708518729315352634057831420602258141179670770847636825717938025586320435445188025404898869075629969921359010182393685857848982186926371887265945926892789437076039725679790734081924667136665719882361693036577664103634945793566351830705023966254470386116091788292806077415159427032054711655028130826355399884042081703270085039120550858698999678776173357572313668953568376205096812049333323453970891380774345248142428301120472714940578924957583557523298053428869841086206214690160886661801971216288117301225162198676566888061763427881626445241571301259640896915519915005001006067917851483100288427705887126777582894674901795335572355756220144782779524159651003808286119982728383711173457053663715872945383207219233877227751545153891943325085140891580391006906599343291517813348858328952254559072811834590724546960501831988271699646790278851803189542375303636575709475362193242169375815156752306351599331715693977499553233864826240403419279465556718842942390303725134684747293573864671180816720379320306808466716448675517984122972684218268217884901653614785319750994109052718811038779060841417661442086462317029790246927621938297252220557538238493787151724260329962492334232942506089059783074056728259676057393376539440743480670080222642992515152158843743905849437946460271121020955245778671832036182648792115403072515578951507238682354924852088427274823642025977492415727575415905102431029876676262479841264332348342593294454474025495759217936749445463231978395059945164247407199770435350830162083303670297693447168770447684518489936014566925733869868189398605162791311924274525892590969276451211618467265178873894710143507338995274531186146304270658659878407151155261530221052735453998778766740374759515681786872200578883731752639368820083026765037334937174538090299460736813496558701683806268298648518665162881469317061601939749209543515887156940573492314558136336980038392157252961796657446905895236953126482993971415785018247895841099929558746234871105128911147501085345080194952582538746326249427306287133762577135880240749028985566735267317752231976154021877873566125282018520030497361129272451423601591144782886754059654023535233122447618220538411489112174396739130298889172382965062566958850032767198664777520024840207854815414708777388467190095114825408420375579159715401264455703839637691703884000193749060885448120164867461959076295156211643463501824524273366090909693863871197557223602436863724667611002536438834953795724679421176094331436808077243546697626636414916485634210383956250334757173336130022774252859417694776106551900940914641925350009603747929957012141353607000073687613143993327474707351050588764772442158727721336255880064964145122873292876730902452021773411408073622725283831626570711107009859299489922579510223200258756135944959114195391166994970342993502545280234273186962802408181244274554380925598877622089798062209833140818256085890232231525614537845936106718900671358787690115276151817614876654540099717294904869933413128758055744390725193846960763306349243330105462009149663289481086577231369004411352792755085397316825205899980862520637985953965090729811621684408345910596066952138371960011547581277715152840811216939846247236244937122632646770616393345464506392944181616795698717693154579534433598521347223264043672265795141164275936092439697247513374462886969790936900035017803094872223648144953329482745438911493056372879690431626718841214313214165453025215728386444505326716386610592827513498679640009410020971297447108592316223414275980837836855919585274590332329146360074759508762834345758833916540326893363505356401614224435085948293543888406095666012403777260782709659672029717775263266198141174420394505754411295133096872423359657589874985370371602984500966536771669270104184699883701338727816008657388834854094892145939972281353972896524174218978748571159053875782599465825811279189248143557407599929270761075948629858671554094981937712558736094860394351350537358900741430902120036554599785899099462427481435124907614394822078703281639761015042907755213588368101613844687727403426215966240355287633161487250392473021182975389474206870890260978704434882023940962882512059248981480147997698497817456303901535009947524836559137496958829392248478021546392840563142970961427913809641429705729454278196323529793608891952413045889791334359635121329127523594052144641081182724226828193329654358516966181992124751096412060018660917828118067018006069113197799517007978640559552517726846488946466958893791813627214100393518129227624223795733905100560365108085351768376724414735680095934593094919819943277423656912506277257133656641936331829079302764937233064933247344281993628748946881615466639815638249424845357690378778878695535785022583187235473769410679301162354667749523586146604327946265694105389369104424805958311351723763442265478628582844729497127034758715785625432619980983761546779783265866642429789143692460768790630786509024374557342178118745408669685813333602611744871821238022014562845044366028567155518885878597649329983595175844263928012630483816256612340923014860636506471630946862018403739258672647544554072760169920528304553002972793678864717400981122647132752633713353174030151742382539908512538439342490986886292422021526900670108672809508379381260834797056116867441796681559244475999918804439209421535819065214978795177590917417912652136580599888864873405038714821160291359099558361823638529740555775309309286928499158462256080114483379837743664927390304329204711393553720785551741038592164248998481444486292857197589911784955483233210922156645965073566159275867668577927661123124459756784257931167436414133957912567804895859419790539927649067275048106839216659486819641178186771204706422812992570214787287247278763380860014314741702213618191905459370681761144309818706361055143778062598768223313723012535571190105711114820764322000631314207903415831052597444194767353300872721500613356895932644247317784376960762847408311182692041169092645694852882396477312752656482947452381810709683223759759165779141257639978032555393610458991477784664480286411705614273144490205540789551350190974965764870284239558152325235855600304100376246324211981716902868224427949528810213895689963399226300811233907818751924133115676071834534251450574202705681531925094156932180601730077866250810327665629359518785471474045550239275669398232635040556904893659648722384856759831140809306828945184112416557558887516135012765392871383667932799159103888147942892480375737405033165588088373917428259971595827457684030731918144808886410194738059028701257826742852546042137019979955173861909465126502379617022644355956462865484866808703349826684385218303814699988976501639427808121641003617278910561303546755501848442735142005235886422901926819485011127857163456299004854332365095018065726667965364923573439136848813661554042409126677223475821818746501786410880461431958903104687208344415938107879621712122556165773576757754163455565696692808624442818727621619956524560312185196598048318774170793032986313997319607235852373083795486787699201972591501549272774860966936278908721311444313456203260582782466019634971061022439947538386911183029782436165243813748870136749734501013953226481313237726530427794362734962469686711424158955126291745352157716520416355876817895544475670343477968379812567412862149397838815017504981609708155808798291894912506686586742041943784013870012609813444826136167005486830185213305896599433270945915857942265116710506498909319677287239386829370843073930774308400309092719405091112646913656185026561597316280580839940961885736542859730990206843063195634885416692805972636465953737732598487985166396665844787310884364187629831171769878142688944999619200264358159273176684389390474885573683264996827925581758916253225079555061467316448198854216298706919984260736261015968209818636073906909700725734840412792754273274859298515432282071773596972855537858391895136559444650311816878885700504206220824483644593252928879363380266831465066469121111869169701833778405255940199702153518763819023325625371015247968033414360160639166753419604787259111801743303405908471921044608302827920196556515209716622726483699682526193316774554401054746152229365761516824834078474943505308588190971423819603213964865998312568718200830760937191979980359063165001339411785117304120119316419831289960452526315423210465362866735064400510613417357781144858388044638459054299738167010602196118121960896122579320502133546582877767751964221518215951652752434929743767007673415612516832000904507109209323760077922996576535494192342525832455384004028849396349963792355658642021570524970423080888056100781002553377919007676539022858455407917432969337268450491182552190747024265580469694781357875502743264247250487777402805026955535379243274405844249664950733376370537995239809488060005833247285974840562086106365171770500869131577488586527384840777648676227264567605069197813538002783381948217202604264797654824404878104749192456450653644157834566064329076280875192264716102841703166937494447020019658055867839401200277179722295009053184126224144574202811980365711727334979931833273697573538826357013272021496105594079170117144984288033301558136591421938567249978546845836465492323471962829875990764773776607244744473505360703870600027797215744319764347787401580739461848974433023513476348159471597653609787652443023802856019437927353654396015862040354222161051595896183633557800141043885021883237546798302974097999203015727091371560144943002464483412545006944792142443887028412352860853990900441682740919873673117178745998787620677877626152605288943189202853938220409216351824753968999227034599311749712906264733329701181887771746892753876830923746040737079299451661406872268763921593354033708347309555682224725744864992562787663476862973978830234078443002856690279105272886446812631011232027592735783219525158329177855383870379766648408942819017552485196465235200798119114680505444794605273777223363322832393477817200460821777393097338005794565018043315386024213968217171623240909093252872941502434611211461074321169366838449539557357846315451056307237196237237973270318064485258025733231347765503801859635071186983180486021341443884357845086635055089554855842402621873106109339364481960474051805421826079995347692325373997779403450715875713074785316152984401050950588161165939545042950809374552386292351573021241644678092074229279932117973920166730886345168008329449464002951484363754350553800677700918221699592067186974478711313844988174097004937023997334237777729632017768590968865625652845738552908366909457603159722738727940241160910732398949697955472884624590244575448696014861628600694925009698703671491398192552525164198360939549090366145010313929753240474001627974754322565018382220810162546035190049116914399016063916230668093658263386035916731638460541831697061987299418709334701717534039532994460273635373710587623623841020532551135013884683560922304884135572940570131743564160453518454633376491807149634019528176662553674051330855814379993354533682540031123983104647071290708074335164954283650970533687208708307767409405827496874758189416571176122649702764970111625790593906871674627946522650697202443174515201027034360263252795865050077077331095458636027788902363502486139084863568030486843013337413924115983136563021514174985106963548229979438025456182058227744416578425818642508047703764585441391417746789503760276575268648442522115533850826304398676558010530286177978953697915392440385839905064169407764075727457788025827552850746934657380515115361433116812312677122624243082236684195072821066655356848188086244553320434465702279225921843308326340820027271123253589668832443578859580035132644592483432205767346088847643389160472000957903156983237467492943418918668629991171374066422197728065033024003632766332763519383576009026124395468800591306146677113757871230358703363894040462686911553059974187039021127089770748140112492035485253209464102369952215770055437786315378065101493324450560466968563951340860942587500305850695489083871758745921038779401104457781669170106909444917317165612141354879281109878552063781291946415658616274883590700906628147870013735602270594213704177067619780769365871544399223093808128588694276424779115178027095516893263649016834037790599587996971087027815400142147307411839330870053308435804565389100655566777029986390567877361272097028795659589819012038445928429333565856453094260608644170056531256440327347772405297146412672483498173385791616247286165355475097686113283347853611597971859208019694179662971337378401455762587641505274693391461075814109885056527202538852778522246784626787668634970215326434624900552845829599353573381750141565502773438183150179216295182826706613039519821810145657468591539040723647986275160437612459540382716748012768827465384186087276881893250224852416950419593423574468376607226313978648725086288971498600910791992913775551634906232412534228788286160484133890809448877552399397297104151248497512828733603565699284611451025820217592155818161682355751036813713610399266244136713538289107306113338937158401748332026855404761975277854897613921577182182467376811730557220327731389428807224454600394852078676196559573502301226853438179082787343561314511364366778846574329473456612010216074134121018864424910640653808596014166994370325850079153473810235471703608454196706606145888723864332334016691268715917694181606498293561850497760516386424742626620563144898177919891547382330435650023807891685096542946490639380248344627533070638268385071550204123963869494846525665613996696116184538145110816742468734483691927765125997029967015461131155619165237634542662572145959707705455358547827966488326428924348205130363428038206943543918391549238770385783650084757894013821886977058548912497661945784201261481014348281822389840179482990446424258120959523512668311055359564007511387431031831520016047238248178570345766704235039815233809411535586798258526985952016967340425084903004220149959262687447987759137017136725908638329654383553672789010364790471708025422057634437401069332119006203704760792801577003502931096221750264297918390127604509625559396644351497181630653648847124702780929122890549049770854501600211241339347982431734969371842131815062389612927067501922084384757644237005168478825397372075816559790252134527963251595603271216748705940478004270330399563258243609500362837036535244561494193258301050829051795463752114135239913310671450802674563146544276388984071605271599809124045524793253820885930822820225121007356864830882145802286819733857048679432709860041726952338283171031848215275422859564022813182483424460799068005952372557346263298225575062045175661757695483000887942854987442997017021679664027693974491014884484279720612373371672099580258369034543259828727630326730096069446511801469306510462152821128788698000676278506439147285828273959899543931038423473718823333220463393346828973948698576951659583804311955321127641046699544329529172548083732955193027405892213470063302423839939133522333121529548407356173702190359979453118926610453967852052807102155726140007716511175431135773764600478661148279807905773209499541514291733729671843263174749946181148262626705483693938203179576196291105834347944520732378537177695547518367517013251810614245348903086051722384670841477195271090297947051561331353403580517955148465269381305350365780463752652806342525164510086202643578898532376925085249616426682170825236800953604245821192813989696209691798492819788088003148807638704329537659596860858273848048164314903283451549835072737762830686408690181007791636636228461527327831543344336188375999741832850003919477546780765295099396220501623989492032769915147952397168885826666972219455595011893442223035527452382508213289124510857505942090256286080853105772514389777354594567995203301082224454663639539001159742310319049047197985403563900403331955647418228024715994887403789234008570338231691529073838275686572140901066402144715469651568624855423047654270791374282882812831313265378894446143656120578695266951762276491732948305856251695760167200762854299159894946239709628966536373389767107290721903849685731755953633880036060382378460520730634192426044804227858776305803920392719768329124228044677502933439205321572679942182924445219745932584951769030887754590644426985383000675243189973480929919405765631505797894988946269199622450816377216509721528781045378414342644379640593587376098074912001088225110493619200720186042016373300234886392100070658009618302127385789253475103289777290671114757205815555074597803354973528897127880214158254239305715982057877799207122911139738405988288140346724208382994184441763644739187725123986299193304708221288875864441548155734858487913877944419295739569346099241364078269687016809388711116468939824370066481401491925317088396099673832694994793927570107952199149085043455233458465975781709148657075654534102597546154447775972730964750680001328927846132515524441520303045417969019153351008788070729924277802304139523193117267449949073045042901238144661498871818597567265051246423306668809278721629767285257403584658723087714090634845464965315206195509744020872786416171598457693623670803088046696309746657012094941337012206299154619555037184371396999318447765264959746457004052937283663046329936126532635504794390479931706095906322847457721303789851203636158113352408000492974393388091204505110683044003691695227935337468413502329393079213664195939611959424057995432886430398989430500163566316193414769181942666759980301743546128425863049929438609319500650861201942046559528576271665255753656791913429748987970068939016269158730891541148593668492982808707418506811001629710961775664528569015221982357192156746521797214279913825937131912167085575828615050141219783670208772900278113683024295322089222800676463931395462467262850187569285014522159902538042065124726125035747543248633925509997910409694959345103658554327318615036830676281287015281338241141375928889412570755355915065913633670289803664246947220034752517499185823061054184414043090019668080766619588878963500064113404235619545997757876302145483023163595852774189616540594352386304982414866548641266446958246514327673586166251084582442261341568579290673313425178256876022183979145234379273172535052717010319862039081385969706942792100195478211905858532413726863211284620037789311149055061175615985047945697132293465132112605893975006687331141308501076265692349452961984221626101760476683827563209373495674911781545085032541600048491048485423888434150313687185826043724739246022027353612718490040258558184415535978781979580824736828788383416836307474257908854793506973534370922317111081816316943508397367441497772477221979716158069683712664742121135231119224924757198321690068601296590610293117213890118734239535802958223589139455957395124109733541573414708238091391437554069767270227193605310438515688313729942391633576274262153945565394261525825401886023652463289484040618107263368697888655450980776258246190274029123740854888764589627835080077474534902544036823527500036834810841977272089572401287987182895365672735305710947846030557886216967354700199003827350855070684314365651422012067947690631269508021493044689666213855643924376948102119492828111562161140819295819786299241984959625543657624492401108575817064086899642829731118871974599358076022618568691019709190690719872863637212244374833417512783387710274493149577357838258384069041125841757627329392243131375726392194473274970806113450170818268218401835098144572080333505380440307015880761933297531043564977377038548973960843248547370184519813585516347154700196697097788582443390433840445333908814087709412236363502307028314340941222156857377736202146371539531261844545427207811041169337498100332172460184527023122456962363680875600271203515572216633049906407847600191407462232495609324507521027822935273160531853736706098626836237178716892914152008529163752298982333421242156717264799074354870738422646228332367655670307103133275054707627117518013841560814869836392172472895906983111685983861354284447758679988358053914973887773572376863591553569839553625832361826783399620171553219765524294732107762141409814341646424334703908744754978799562674436543347025458300471948170657666504961997269553646282116293143409950376369099613118049601590726102599923645633270585804556302940878952541282189201779403039726615007030852604163574088713880354802630544500082038286896909528416658452615570839993287527971020553948985678515352775321328269865332125193328354752369718226158531473966594363084903566142076995429830533105373690851661293133976144691710296017010917364220677338013460262381136906072374760396272268872688280329500677195933212615444779681217212961284969739355079795931918211220721510286374029325007431592987361252587536281765479997140450293170996761235925202549907239115116581122327558717435206935719047013718928112943784178036293251054543592249369182780576624977826126805057806625524366035346326680867533693320695887919193886062864353992042299990729565192610767308818123214690342483722498256244628923301494896291314027971301927845132417665660778072744563706897027582567152815295022072500007692707927721532625508988405207932856811313700958698995312091545041980211890404553472535897339537534375344792664040644971458566195120142528780093964340532683472148776726271556718379928941064364202198964577731760799129590703948945988998826877429158140514916721805280822283384665641186588949327297881610513780572061890728523075510032091361515095951391951115424750242307060046265743163455559272676956504388195856402089170824636072012852737668523766655186856141117943454758299719871495125115951751990747152440350821383828344769828370848551737004590837707247751255196581052164961750471682802527462502684152497442628451347872530797426555826409442856148244526958866577539631352505751589289088708842525968598357587869058107078568937138683452241913435202208995038380390458225946051149444077280934142139053009616551118479383820544217041232981720435423749074848418318183495367691349153590898116193305969909596361141026712488206236756717712984589165795808911700507212441489561300558347829856954664862011812347055371663045770642858671297065296830811277093579051680864005482808907886878878640165054423573136069495141744201413003261238834347227539763367212425077322162374936281805928601910484064782611392833941252401982849900844610525479273884199277519258778276199613731452634688482604967765154448274206433508246369936392045401611944837213198520519050586296622753934366154243891832905802918632920468796779109948230872846873098339546042703732490137419260940575683264245636796005663806807554454466106731795640644553203412811516908766312312752052235000492597720665042185756465635576719098628256813094108374643405450175336673865759032943046126421144689373360178986571257839297018948448571444932708878072009321360363436574702632278764380429493314133884986790673625619001815526179760883902483560167238698620837583893768059069887721974920020339840058576244093327391067431804070156613762574667935728622102032524153275918882505879786015181527684172252475983858093949438441714170418021697916222253669809962966050690149998643871007090560716598608343784709467192013083622495085084499775967736883256071337458847671214369050767622023104253421567813674397693594685149575256245726411448201835571038804810873837537972738457848424478595582423765796013856936703182296386941659582126189874962190141203153396955002315327998246992857645827877361154555611355492624268850995355914092896970220842808180109946137443045175507514821580933012640266967744846907360523108945435045879189897157579097359436192949441732338076380386229821699579037428142841034256563713464502851161365570542619846304288116906461533303577966919435776794537970750657699971609219149409762308735071444518369186300579531569676929467487560049745475731297586720477196583799967561225399953038116238956150537351810336789158590799443757845398880712422249553739113162934537517199505821259126471275815120767522857741966289478946862709047868626186160544320196502904927616433583135868238181004639113014570242589226442252046379024474014736508368386532067072495767614291905928608452628592438720168337061799083362289079255673696207387544782361434679553754744746290370655339641697882359602837830679605610497881116737417936655072232452190502423938925853392671666999842446100046122193892372552414523630102078156101460524007774605113811575690035813435045402750763759209028306812167360252436499011534858768078947562080571773741544315409369707457587646742728185373723919702603808234879718297707299047129544508367461884748743260671226329447320226256465933411287719566118401872293909018073243673515935581343179472872404781701702623711582799814558011136546083735941139643755299657161738583112154388383167879739132228325573608913174540165664489293140824961098625786940799307721569421219386474945188881595249912507267825590571116024264213810669725438723855740264920706197755419826550354343188729465563786234231328617675462985821379902431611597850940992893720364776957823700017567959471989515932570882704285242782569760742154935138443164771869306255822763513664001481822711136247723952740888597420167792068988510063166469685508563910080434169715126265869029741881628134534286756502553164240199199436312495621899542954955797372027319172453335701135011160130992651528469271472719952482009725187761451899490979074597342080476520474673187645861017192588541156004575139790346695662469867474843759227427953974094017255033899244086063606790063575219124750029786973836693089193213158596722465829463435603826391124950485589466445882803688289035342932851520819570465539100454451411412539840729239989501698888422242514889598127613132465281351524611483709018648950551083950227885593272476879655653265647284732595148873123350688861052328643298105936474208701981472122758577179462048212274387174900836153053561241458059693924715315298725724185097429283085453077193957509121525744566188825295007741823657242585741980594587375384294483244876496126199334631499036011118132687298763183906697755750854144385773490431363085102609274800700895011101609935130936881257979251718573837587398672309129363519975635988245076653327251306224754458676661984220786734583656354972723782868893306526158060563532892266946837142137349299961634727971206257557056567059343961514339031538787076892930552819021188073571980597414334661249245791114228528310505981976291376320983996223683153368120649518829437994149149787593609325055958937677530955519461362646488098221757555692793313009322899526549612598518254158718143660080205876815385024418820628206729168590503947341325229019996492375229257748646708753751712262023300298923607138735657763818539562434985533898037636632325283970376097947919710084734584390775388839263349409393364930050582047817813142570659273890991028542724867301462383987624392372936903632889294697970015166457493426106573585112830714308541587861542228220381957599971994234157478096121880534756946086893094537661562538170557512516550106933311683186879275230347927696903608096708274253171103061037810897725213793835180144969214953148139831559552697304258068969497703593092792106541337561750378221382755535293124813445712741525271523972585411942453575554620367789187508599036259455397313693521281981641007423265205683659611521191989861004966269642374814383865322308776894515230940825138212805308411438384760564083894989912635793526373928609471355589772803499181639201293925213804723330721099670143248150458966976620480837057482379297315143181268267270734480458080988343016284043081376758276220397987337352833888911216356641408411080470850165210927912564325549606010522524336062558783094219798843853400442715103728083284982504239802115861431332886209681208947633390097920208687795560718452577777597847842785479858678997242720900409948449942935157175920257327940582005213184845492422773666031267726092316067593042852789216309891084387520778808279770238367847295388083517892576055846083172616206820611725293438315597318674033470062580501915396485175467881659984201947550446167267548294223503692986603567050246982339316850573058023321048563422989161345363199207583613922630934716833088429881669974728773036485552127199131958612139485206691506029110174734495056342011606699894889392544680471550224008944582139391191032601471556882330987831859809853014776206246103509721813554916177231767764256041229077002501388265536074541956282605357059160844725561318625168590962426055357955858128248455092440420197130830988299709490405667988471130750971823900038337117692673649745291373474012383996222521476599830692977811382116901073414928049700111779619797870979014578065866464345092806046877891023795013187395587112641230293945399504491119799539361948650325947992344515019923017688947128231130670438712957772465732018848492393423552640008399023749210870323094779085251236495692145919644410363279856440772078420345093692708661487308951145392440017664375629158281280222059852498012291491040117713760327331156260538072548815984302202018413655610621668154011697334479126110576181233355957520502554171167439624648999237887401603461125980601558164534786400287580052337785025395637476862684218495606876479646285110496949455090116408252737944341281811996675667312105572642005065073525450252317666111910582531974157332784699992587051573324641019517695906268507944691836431473654851490701544906902443788236669944745631920880328071548591958653172144265380848317319531255684897661666679124270101720569856280949591714707278505657169077047568599410484762244040311099022645270598416474169991068080269629592142785190628260973294534256843257225863064835949387680210582494454816859799806211828580334899411592663052161495221551162198399926220903263407648811093227575925027401069992501579540032397979285546080885875262187666369586212175057080158192025129619038294062412968580187232594488916095699786679713074552791872128337021307322070336591982422598921281142571011861490974708840272873832292173513193136970317522753731129702158238069767005176112399189759729634397073555994383653830231254429025990960517896776382677743915536144655500157815975615569092978129650200888025124417377913919958405530190353704472752045876752011841368369919206848603153879360203530899369352411947341604008853550846763101159127054212657529716371545605317151647981197017028941249964220370452036351216167800872892137348026718223334689947919453395902267191524135812513518168855516687173443301777832135431664313346720983332396405397007610759897516412089253460231612321711916742260837943251537454654903552735114387851036432444007770500051939890273182883684418653292577285667137538800041298766919597660750742726174845938290195599492069972081486702809757425577131350226741855620474802246823983302458815151675966723082839931541980739520751522101719830450131030691332775662727923352606636783626671861454797295627412715324780226409636622338143059725551611803256951860707204270670687360643326425960832423098521556084186941713455272772317049954305978142020186861931878042897749846370529745081520346870624096877867175120695526227677926608600772473507303631634225498988638416639088276287217736255562137215928235625360300192957793030615363257004937301171052646840614335480464521739387884281249795279796426121859145035099591641880595493089718431909859597382058149711746136242497010070880671758664282547981949601634262398653622344032228158059330829221826653959127077602824535179240933660235096653956879699304342343369078443342573251329133397658273744026233475148704553919800617505833431577475701040845383298983180698135909642960399097154725389300415789156018035291762011812381382110864701463758433461965975918942162322028938380638683811517614494811330266700215632333869400479365377322388369337746899740558254931720241170090654082401264997419807260647773169046143237236681435531365221243242102431972976915883812479923761094317088751618848737040232351264013714364494453242608745830741220073068032608192826755170409677097302521815275421475761467288281176838011203284765007568294562654700648333701792158672238159795409865058109451146081134763752408367190647640666532563221640021330406989966427927970251367644431753816274022825537640676758280486136504576698881425920550727094154353185790276791631291154986323871501410393197417058624157761664065625233191915499685318425665677714202177868788126210784486557894650119553676833531228085873638226555597543446342142787880474114799314702807718783697047848682642104511491880808726059312963425408062080586359668495879228855635125753768461392389253163635772591071423811283680664766918080459707515495134072173404622161129769627256616809624993457282954242563408034054566736859728344983755154468835463332633042890310075227999059835256788767255378992305658649354572250422306701469896303637732472353054332655036877973304335108170413717548352302544768425819115793141017885923378049692924741087643353700325874012352074016895807518664994909712920184169344877173974497017440992045764332871362881849483483148265658685319175312357455101481989123234458562517566222882544319461091872702507166443354909150609273786832905016932740784544022808745973288818652027086596117199162518164439400134868770292413732366500331932220290933160489315893257101842668952034440679455982451959799720823817726707850063586790422269485287620878026477047769333553359570369707788132140226155155789295072025264668618120357347020209152701420721068260107866579501742077408947739495332078147442221561716708616344642837206556968940653551990230740054193351995150748427528131164459816443038701634465828943607541961930341267282748520353007602771539113498660118332961111996538744161763693992567006371734470103346846429494728622837716142866934956982519008025867539246737446552645458067772878076574298111804914977160352461122152477384516778069017732082470467532384014989027927110025673020845224840434081089888309470538068866936861816475699234167309296376823653385471876652145345812263153656565774991989248881409576436042450852360011524229907420894877168319504671571836414315003054414175964120101698143780659440835089681287198990364125798241944343821136751460225946673474182857058426820006066467626296519795623917509370001464870934847133373933755040841960247821880426436129154515032170371952332684726847896321548322399152991532133304988908653580323840728696838068227874448276627548054414443373869917845181988147749126730515553419980635724051054469986311038773627921567330438988538542053780628676307812696585646713399475200596481949418501129946921958805026328623705833561469738960130922336364375081453506085960637560228827023443261961092792622150622629011797620615157298331193115833467521730536743552518969422945955268559184246499658351280325471375514458988407266681611328177680355628965517781787941484442763618758897418843303894477712363848645956419393743242866945101251947908510573466159915027737075440973117791600653670753842195188616217810810610172629447616192481569240314977131683643877730274068756936434791103996573040280473323261953966323861725897908426283959597368864855845638849809785025504815333431040986781462334574473629702340347396766336071348803672011416657337560506911374937479266741053853917663712360480075122231501961208970534765460451272340350232610105327118307611598186703848061140747623823392140452903071094844515736376238143484636624451125573632020651025239512196186802694838808215312207532354897665059107683936317091552026514287084534069324032828794922529926857657529809555502187038432011717202044606739675178897633016589754129844381736765272033563128042903075589205952046426177661393489495749382945587681287223321932662171042900343991325390598034212589132213887894717271973848978206090329668954544742200189836631333350132009899025498665795576475176218428360957724598244894220243504632539099118142090220021756044438102159801058321093718910987674746494633329622111616017584361733392367238523391210658230697380957041434924967267709906003952508135593079831864177439280779264272786852548560010440652537166002868474619172660692285933730064170479827535294751608942166132765219586419502149785733819720802430900605863900481749173454543955899283206740295376548011502369492334256597245441046802085781593787306009961520712533533924853182080558842002533038694573534089258291156806730933784964410911638740247356990025357595051112358112147330109288279002651605548556820878198607400550069754201802790148366772588745391810835599811753991891704322232287739471128398608547866627340073210544452697045842300922527405307164650923859741199427803414340338303381574200684161348026086003750133991526991379156798106759931680903945108000168657045197059222322782543226086352542308010807588255246179715034121423829608597688948995751033293393287872495009938881604138349516568242406826775679934462180461810572939483029576180512322603711309465569457725116571999346641331975853558640936229717558306232700834831791040127614390279584519175239782711289060902355289806478900770562691400947014899388811119195755334129624643272310359427934426795484657124685288656360169565349305628085817038886436563603819310740620768978445447106424217695652403694419477552159649330461182793908468865184272600362319410575806229093954099729653176801203696831731214492668127796373403560583109635477261324615623165425969236123242620684642056377421931103885562337671302353098628793472634181180524885086419610755708403071425825657131234382338857263091758659425510921812580543972596847739772652333373823946841507033074709002008313763080963302811277773878837301994570501445286995855036380890655551329662044419992261022577452252018432058388074752813032225521283643932198441165998293766266932242327860231127224047472541980998723067822390889446712775179762225724069568352333135740827585512795820865974128957653716660191826906047784839965466111809121339641812561759392889906259813687276640589724656818840623518877539490684466673411872457551931043374567182562569734200288416625678604492732027592803567650496407003517820029826009306881447367630033512265806678494211520304704641171031753107175116662936401625055140339736782824663233105638576123292284074738566320164277607684110475157524357805913285939306603408729296258783041801845500092749229038357699514403658761482349893558478834105998123986731236427641023319775049890055123496929489631519815643623353397167940512869488847407531994234448871427864445533957965386430615004510030594627257084612198764846330346244630750398577310550320548401424749298723095727093162679671007511178705511156222132371270424198696839913541462976964913603284405013843682737458076404788344663185189033930839474205915902665548987117302943802952098165234003968869271950834805993519145157049408205978203621953470629467938836574394677222058009297042056510275536068307680672875740687042285916073209295430619083591327595771210706986806652607723962727293703530055722790668676240431175911564754331446755286429652536353560118662744888340373621668855129702247464637144552958386580476174710794413279324105254098625735187513759240207309759332126544228125000894771992967087355415213395845543127902686585570232440899850302508433046019304311903334378887521683365433421135442125500883277328645419610293366718369385085043984041936079276733613550518217732008362544055082911191407412325169446640404429409940870374011195881289197666379351546741748432780147199102499862831823378418444353921861547257266482894908814442291129782385957613866378285009470179298997035115197322572766489865411867419552268846064231552296895957126692993126271962579240980611578240456320325111446144289665561058320573617560743423170064792080131180010883444446141247756236354425875403099789845120001889974362697847852169328910363677298594682915694022025065708921942809867415567501901387112673779870050598354724621390100798520003751379853269314654070924684236664872390624351585588644116665317870293817795996235099077299908394117017369035717809411495244007007195352405348343834804972423582099642300435403188468643470847635676632310784310634662791569471720347958073428312367971072759158175197757537373928193390917587269249930826059997624814526961977977084729093335628983604813547350238827414924473239267585436879725776258265043647251332782092747806843959531026340607267279793873628684143694774490335224338877633581040162048142485490952694422864979344074275720458110675584203666615306566379284897060848028648518956586703339165470643429249613415185810148890741139325236737529787740507121252811417391094461393338003031985621109740298738779082810405975024184585165246065672191990552223530558479358277355321119765169515474195524409756458243965614029075609963817705306507120269723798242929978374255847648194936590698672782975106861902003509067291499185522987799382878737519344566852547102231053175830892023093513028325153671662903638857997828465800370821156228562521849236241618623637222675725640088556062377501118010979263846772397915108614430169437524065091453875074691388917050896270046977690930407744674472303992781408404084817948458367726802895572518720430807132420167876158185308271864858170087553103546670042536570374371963549547465921829605747555226678211490042139488618673714713983867709649785793580816849704130605903414218425181402936281471513775823817507030038984974878398825826589085043431234368980527693705758231145536741378917387509629337167006393833462822801712681942573238387770540101260053338793367404457771457212237330011736183157827959089333836986081425840529490613862318005174620598866392449879432021706121388125186461888043996278265488068710187876578019612446431259966326669343524986384142925381888000618795043158431532056112527924692729725225517766440779377070682109817758576793901437739700371461569820078564729901693732570601947074214377805481594418199530675596122327248599920844632507935916303761773702047052362152838951941004383815590593962178626932765901983195011423006639681782690426546870073051040689011219675339009039105389238125283910408835728416427807851970149322491071216878238948929021088659883493193571326574343968369463912142771856859628400413696269244066568125012955937316331588435814936767121133390507927754984087286340082728309223719143138852404580232227741973841616249758035720840043414081541965213937689030061167502642586897927827887864958418495381289759955103412985334505776079102243173067615610487237819616385531197502980237471277406629886828314192846132778864712856347907975165748984755091451657023541316717264129596312647871156192055439776012315852854852823017109883021793665595455988152162095111835538461904176969481260632657968262438309490358904907417102795377692940842098514582075183930161101972176252547874665588557558658650262473296568426425013995577099630309315967337530346695744619810176618104375652491729299235880174263736922117522266535215514414110580711917580511178614986291414206013837952349504430833984197856051145164125786413329276131594858913760432438165400115753049015484338099787983339128868124042869125683376742998259948141221532725819038425735036532281968037900593506563196273877721215691442180923485082125756520937327288395629422054373752328925417094857063186672942504303254086369761343487510608526665599276386956198831678913171433967544116711172617546372019281199368957403601601665359060863723130618677545515587691645381334252164906059899421007021547108558273847206082925496196434300196185478486054894236569214532085895037152542870373560817657790967619544130571657652378136083738625812757878287675314198382685645975175266504881388479250910144201349622327368037935942696456321855220813293282921746912149987115605794894989332663732968135375438571375311342477522146471854171876034118477688026494259896762395357309801621611989304188171980801136325165298556006993311469056754063604309263642499362309010253090123715040824119808984506097633487929143283505565275579692535752610100796920551263959480622951410805641067905358731267922009668506742750426009074414468353111263350766337286410201064673012631084213828735665903622102292648905639675985475377485281127703613889124253479337823483050593257781102444299878963952020249378189398386229287101503683221754269814052241964116393608156157235591168480380885965799735952859485865005405345321834094087914064552758109799207345415082780039387081495204288944433157381676243572892342574956418662163594362103975635153545677921314595931611120285152504226240432459005888934948773493101114967492237812318989099247757124562893345033137264696345989678087366470556380273026493192569161292954074125276295767005631708095766293252468885576875871618999758123960484301753069406394540345656081785168948698517362379668445202204537611674918775678584131794048672103558489655759369153090490930333384776803384446372373599262390621531590782695151711435312271528132822030213214143460690474326794702239721174028768085804587780925700900779492417103501060902139792134178297803272674952100466239563429369019086972971692189777746454545527478298769698769696495378592590424749929927621771351395350704290427902478521705674702906919993535115548937821810382128042886555751295640109046768424985698612695518000852517606803015819961807538793637876496325354554757181497108648592794848745144985794638683923515531439315120463927367676856683069418196713636810042336640633704827105449978693024942741452107726389909334300324552456910187151413103903219153944635878185719615569619564276547665981731283628209581517763549807053132565338570602227379599265183416222239555940018191950305489805636525914919160997180145463574145144834945085455649681791139886129189522311885815426823390733335948877274619542046097489065894955641094619538565912439175543610863512685538087983337793888390590028886306050364024607485339301861738730553050104104840068894149115589784163986066572343654805539480544118333140867442576900275990977126347592207750407646745388277066491530091929766276865794108555600689717671710545640278901156167703811437018921476692441363642605142360791121467861726098756758317600600789930495661590652190515883085675294815473942415147099364299101136027784145971878134035029437536331601606705615778313477969023780574424450023746495979935505095970187091887265041204121593786652883817532750804208099294438490629517335362826542787364147254965871307803814787328288063052113772197576606651688482193546555791833130995812140513599950300927545566707145525021394289196385066591143563935445231461071787260715292727550300657685917563987758909725490075563357931026674778581659027376272984936865950810614525868073291063250876763073447346439768402328960206125943573906253243366829965804452969492725232275353254693659918101176606264443562829652756775682488712624303311099912107335720153208402342855621841593992547587361882863982933015870962923351370736185502655856660910851511224249782421816084006961766459493337800356686219547361333645375326608272618748337454813509244444262260303803688803480755182896606917114094348593865608499099769843577351971551408213874131912651114130048262450422755520794458932143747666973827712764772722557716872323360156829050347879509488466142860472629252668382300416299549959853378378977873459784970474035967122374342305158276464788064949934747222734385522095049578695956233118137035277558382586066111370050714414850625746774379200680389238510552720865860032646558780488272365187285291351102760004635539492719774084102474336460213603686003513898759788187780474660903216777987113100565623759284277780534722696525959074781485757768905759741646273293713023286401682223959879988096754303626568902837702984864354752421046946300315985921386408796177850255893285855477580438163741956499689349969566983653146647016152969003917836139579733036427109771830334292510383571551864739542353001914022046462137532331307455944898844423354016007423373043781451688898813902417766597210752130135026354135586224519665277574495774178732861033469539856504497805627331424014489661277084665227335168585283282530623980897470092383335113418667724773167866176036153302234379507526591781663429335053612027318199088680966901604755264423821337987030344201590077888320660824538232731277310695136422209713593789548205186954719703017334333961799247329555487259433047396539387382890863232804082833479134463341771003466244654023558592825755834314350562268665966927401358333381591133641681413673804407613724712122039622695177738820458884932379444841257450881056188415137759180748812867726322148074262239763635328527810934505686562247026783693069532462682657066834876626485530342227191987320185942407180162284931419777255901317101858315948402576760359047123384148249328583728207235081093782542815374374212998479027696237821584038325895006249669684561359129616839231763181145276375941198124946316641388278386081200691389387641602396123200870085968861115315970078729445655613060107762778917282204751564002680173879032222337345252529418448431564976747598347444489997641039729191858235163992525924084433830665260496091477240539038625010245900392776331742108679518758639947707620208726351391497929616567573590145013750213357051188681271421653312956329442313129374737930377790917068336783403670666966499536826095085484141591259568443813886231389716322643832410812084648651985667304014966387273791481510877817464230238508808384956862143046101027289914124277318161777055004543646564736833415181196102099605060574116008640733771933660991199574429086541199171133880691733517471052902338802995958136450276730532287870413075028217086907319880241966725192431751542529234300300335630006248123275885081319600047901796818203627383854868172404790174225086019697879063396738651122861206570468988963238157245669464771554393961810979839701124665308154906413325666285168260471219278875168438073137331764834878137840671845715541568828320739688898732319200236532584460412007344821232987805144542361863029477415178229696296372397246652533838293327360203937067410190891336433441098808381139977230763470885700111601573539749145102110420915909377781054389891689053547617732482720040488177219824178917997930773320415470658437433240676697243515470715534509136965864496049061706059999513087782465874480635015384985955557543912409825881803393435962759688089568329757431151647322245632766339263698136164371665539214267605880466673646436994990530564690084895161070671112568782124113365252982212175470545145443219378077685868771179507041884936699545381301891779386002482749738754484359179078874482145404174107225742712867159137172109766023660475047413560207582236787193766319010015453039070435854047860718175763611044191922045444858661452216684678327382129487235334073430137329842901846760717748730181869383201140102129251273478700561974606503725134520198830117848391938813005873989083327817893849827665211663747372506616563272297320348638205706286675515622672370369053068509394793756986127894946958551762703601280276265311817047426432708138229446439501671498286976743221522649345928407531331822949310876373035336440956526030758860758386886701364542655470605417210266428156062023813877928488123719874078960175002319627429363493766054207485893684103575876975805452417089124627620239410929114530591751700080444504963051310511543055156978981266112150343297069798395163028495441099645436864722577796829571285120486670215889124844197829134083074357981531539754839898646289689571988279961394936231087161708953992254236114766754268500590074925458657027948055856638529585903155313210729889112055476184731154978496453146283768659192186648750167040757075557328088227944788418735871727744457010723825761246784047012094524644840368459419108591491731737353302516103810431533325285663459769255959980320747646278078539634483413591526763794562657444768444646591876810035491731785364773147993892873862668088338419190516148041340985593527940810385363861486456881091596740869100919216825594528811449142329979847003853728630031854000238833962980461901731355815386606261463412413772325784484241352567205509529809067853924963861521310181601706338638908545076466226462540262910706005742058267945272549842650266895739277791083233510089134144600291983660421538176230615736797275452487429642950450261194806437987203544840444654655512292203002416113674251388332870060818561974558729055108803060088349582315407846735363444661294786273624459783566551549370939686903278416841848480861836027018114509721566686990891519736209924648880033769274203190107047631170392650973379869950000990350105352654283762084024841486467399011747535286288012855697390296860994005376648505781670852003663470614450105037111217309465150863790624048991641550785375241019716491429470807236073073337432654638154257293359492310863954290354411102403175137791488277711075014097973977216961536555059934577045566366559708100832875076634758468008378927517903557972618522978219535802416437466978599124095365709010122577472410144006096566138612400064559660808743261710338730883206426400413793828724842605098115113846517668160151268359078571123060254865976247958213707926595364360564928237331283030379314104324610801002519023669972095453759771933731040916225076271448783971519499413343344226901701812270376042896815408168436788268443052943757885391473378279363741937131426385873562766873664211686539718410569377089718470213947208643283413103295249084820658707953883133633682376343573422228936129851347432716676526156641385192935256265883736423393337743686565226641245915633492207399011933498753867355170186444782421951424572426555312500605744997844837449896290808432109692483512169109930479348350657173203618095515711369643798111653742948868304788428612016971210883416562583650344464919125768241729443550697485380387936764874718251388663560181237929904834810591528208152838235710956830569336478433274545752456340149912604419340237442095000730486322920411117637377658322107691484143367337453134449893563878510167068348768626469786883722752813109888887249400364590886683617621777107395943668509986350202104106143703676782954007863588775468544040596957649472918374439521173296739055256586653635908112212598265129610802476998411293063268192558883931093444239859568636134684280494581584560772839662992459926828927927722012104604457898036289322730020524877505970661843073535959394124644007460532955144789620610271270730410779078546277434651663457995636061040674139850160325180266986566750425463029236365783266772540482521222479694378967311691456387038586056470691212941464656175265593475297228628059294477537482083469824130976711770595842844568509583315893968494463383190853532315385590819923855315491117264673994906905584555654942275163110213457996574417406834822985975710684569841348815974947674473881514487594112749794354614040789012322913080331060612309824029702366472418177774329047732833525626441507656160526593016026206952232199848088729206616632748047128634708698925705261569291404846691849309059370049331425353570352516041201865748273155054263081514282710046261390024247294252704699724071155162376013233303335160175424521560805713929771572874208488898017552120807964029235332940419707747262484073922443445288294410994058817596249021150100098045422604174064391409235889941428258398180132078992788228300245953782068530643796721503068581870788543538845591934546595102808331036094415828893277447223592639335894638859899078871281858001793222370590465513440469886933569474386128721091452277067438668092742806164656932350880113920063620179706603895899863019228969856226883390788237128528723054513637878445875539290345402489952251599426292217968883497420060398110910363491535878621785531192084141490697271952710876862094180665733768689150898285022684615137966896323409131064964080418640306617093453035112243301118507264248421589219252130541592826846456837026820960240094477674382567825605003027883072504721479921833713249562139755410813008227328019731355035752199452158835340996245849979395278345861028541337108089858819305956738156614210817492144331855880897888716464704212804940821140501814429552168840505426536360417323486843219748338448245220497251525417145088455525339047317275699078771649646037517905663335449762101399060652580445531492072705306638899089602994212121972414968739589939549209656062343216886370327306975591192973512931808176025241413021293218343319039233830531391797861372494388648390385715466899961729381248704916649756113303463099001158546607625276537826740702192655965084032372775978495376280139069671161830906047104779928172528447952127120183193416179673669480243344525186058534476810416765081320882669038080140787699321591074245259546755368638147909512909705998675006962945047378426050707133053602215909854897641344160141138794929317469884383832631717337447869440144043929668766907429080182880853149415947741096533811921243376713304286701889244425678673027717675247015487411000155994967134815941005925123357815268199694988864960712866386589804207063677026585270680804309578992354918855365609093751520610134274313961290703273005637011211689074487210361705127581068650877276534810404371323016501287709940957115621677243375169169678270996929644119541365022341924805351483628355208149464854125127459969303214938518957099112126533279041419182684386424873312971900626919216528554814266380416441283388086820521246132343983022342428658285282154233133281802580459656765382703409016969772647098334180720790641347994053003834088649655957519365989472661732292723145992919528054324779088783107093626536304334491325127590785428908438255887575920358171075683105957776079047338059394109303154805746999933597927545467512183978141590545701482889131023478004367266098194317845913999064915939388126887439842754111384149112902434295914088077803005629476859671616360042503522057736188484235900672790049055664660557684857877410250427276728699431324472686764218739521080183559881313514427515467337400234443262459845015511336499195533548257598344142263343902949268235623763878209839609509815961766318404709576577874021307549832046909814864334296970790475610624189683292324596789220310062856448980488310761622297923717589824187768735781995241681790346228396019227010333990243017449556397833493849427503397784584113073713066679317609393998434514013175349994823339666411993496896050402670589373149744621776523561938225735241017538375651377261713674062222595494445495072029544899979994833955220644459070849319192401761306968373874059258014906918674806188298234905795137272305255533888173552402724753536561504065916816934367580792461596723724892417709345251772365057734705521932203288835586199966854663791132523728046753735022753505956085767863311003309153995617400552346717412079459373580923564695249887170780682832618033964596950762687232605116228202910617778022366855068614412526069769029800116275241423459330566194862676189743365943897645974637394239251510257528508788700301783738918353981338241173530642522223579277724087692092135100334255198456034430640317210689028848186845865504812390128291928401115812498554604509636763539178956255550706002537053665259192193824390982855606647890897269041051667577152482442050381008629948576499340064190510436776849945710453267279814514523335742801243648450759511694270409271930135521178423958402464097260006632199143856960382151572569688229045747262281710426736886317153629222987299145512236886848368020626864479387762965166688285675445918098074204824271543063600210344867181325296773055011422739592486553456488070289771620002972984682480446158376622812202717585146739129317780816071903069315390484912116393836688971604193939070010287983910535175402461868280854090767934234326148669516859423563096901069534789821778767504051338044355748007963311258450554051732104964314284151615410534691524354655685396848168657015151097075023658354228027604097011969133950169592017896959509822826594718699556456044891190667702292840595291820247439937685745887655189787830432889174258270116818239615631750847407953134447230179273704419013344010338166029443219821116164988529919697098599455566479678602934233713297806965977975172537264142720313021583627679012047208872252780241013199876548048172537197891372016513822094737535500595052394360281014254397679287832380653922815992075071734688225169930556733716971203402072452534728629544644139793527352205249988233257029406454393355968202462016627862485446087788968581577236536639695970315106890179470476566054187099711502601354944490342631470890764759476019896793903774001691679245891498514396558921381055344128448286001481093677887685366815531173411039251014665098901679354118333189556109950194738800814315317018255359322829177355095763115219162786086082186643766424022855045696094921639419310326579347638597321116289249470283320556887580095873121264469721530011791993277876466237749452573434371061065235762303174940810233572968429313084265372249516851843903164965166179715689847807794116972173332654046515805103051617832892883236802533559392580579999313547816115164163097229913505935516007906713000251412555447502195177168215293822655221815246384394842231398842575519631768562057337580924465815362179374641654782314205467561027468845371507308178176282584675824549302155244502254062139832082578181781745864666990231204458390491876420971194454128189775777009921703760060126114214659766244033074453051923538853809429896904337042552261646378870945384098998663865096658766411764095072717971768676967852398495949976105662547740094288692711371135750555605630640210644272400485012208067668753890408576435982773525980343895443544661381933900148841408760659653987621351971449449007104059079517673110019023325703956909072819587257542046853414746774867126091472893472306053239135887912088730743987550996153263676476073577302817052549552195739183752610110068041407224787153543783817968531658235101520080818393387142115215697368787764916012231438690836541022762352036439650167298614139703191658858873712686352540305875126852496999429577260489958058739711699112987633097024352766523315031952008325221175220248999651695542712214459111103627443224206231538699237591044237526411946350773042643097492106347082593891781216452290897744783946930840696206281717861376484945694343208573965517299499733596114142103598600049926436444643330169943456933550140330027365150019538662711218004403099422948347846316884426655987860304495097080651511172164913571115545736135064256459319690920475247387473530782448380112110851714306230735018609512834385458508001841706673705150357520304416657030262051953267430707327199216549188112643447121093660094958620389103830838732465082755851878552468149440735245424396204028716465305475107033378899046853636781015022110716469787141979512623711562362450368516132069682247347696901153531463926468578319206023005707515333601400300336391288152252885576105412569916637403458703493361600331378977778271185932760090828088850598512614782693187552997628596890735513610693182116042703572579389146519451002560017509576754155171639371695055156554860496495200314387550198767920557023224066863286324312392685849084849496455070605654638723869942623924396211027885326938192860876399959713891439783080993104511260934957232694407734086743616768973886714839594591112080620291692138207965860154365677952226851668834838103940670282202330382270133550537052236493162323740528583568991659436451140101017552088172474185918109877638095866913284811696634362190399368978962821181518144615944468221514615743308572901755747525510469840460614397391677095985744846036639806598254716303288628703029278650518530595414712243452974322987228521684436494488318863864768611723958996511326968227529767709282322085484015643760516798903042691888602293403186034987828132304129005036507922574825141366724121030186572598372371330771481233721085399653820632641025939220252537374020892798674055902357704173698174593286195860370537802131397180102265943864805774178102376507032727808788845901389730081645354941650429442103923245340069171544535378316308666123130588701784898724601980311860382688455553470565453137960440743728055740098013781269232778869145287590654987148113209199135850164401965243468210850491453175744135318469221442533558372907192363604971189694003127005804783897776615264959193472073039816146442957387959734915698159791777093448365552734851728415813264785772424611516178695695099788863060628511431829655685835117458641273374008718947783219001837970670796868049689759751672043214060310648023753455616304727042642310214472133950433868086454063393694715349219001714898225283831769706956346989268773510395048264450342874454466070828396703980194225337193161830941460699556114986636237751787560659872784405583574309465348421165907776930857033459266683246081581460691360462378090349214782753423424979921619573989120259328155830710362093667578922789095101982461056641645387865578062186170892637715736712631051832853598621665490805791304220965848911714682295558193436329942400979995085015080041803204737053999447104123682508587777167746104551280755746626137068233086945604044785561721929055758771598047609800261360013989279403117098200712656953316095058812302016338901870636406229057327209350345215786088633809374098092933916779818449313409132390143817346938182045579399353690554238537554772771431033005981745620099404870341680190900474550600905377065657635887886092918991314405309671848306411851662191068230147245682149826176938770292891387374612989030455570505624460329176470124550665651028077438761968059087532539695255479120697127341850815143963254856127630218408753866230567898603577024636866268241977057756016167945114510997883280768470713844750862710848519666114435781907300522375032055359313055543832154888147207479581368166860790941284122010571184864854639769086851674124105813381878039674737549436563460118057254351875181794321888922111813109580307160195223963593906166583097448649039582941670939940549008934992552721360811674873662119496985597411683546054407167763980179655209177183477737465159216068591263437641635757768258046123551310359205324522534945953729497487503273440360450750756520156572003470583344992999022128670534780996297303247231007261905027261318751143244663639107272974554014977908210277541309341158465993463161684261810712899940793739728677142800659062202486653787772892553335404677897841770086363295758630656115774701675396436772844644292343111653884843535384483353170427922884386931428226347397615630790597723008351501976891304719325412842327565847845826908341660448125717972181931711864633516191522823732552725608389298782567818915832876207537009249429925182273432980895857351469686724460496484772595506261494016616834940718776065733103690474362232076219551077061449724724233627412145749555173316553762175466320134375330190097176300788522882802895977729837764346878022424662127949140000923330259855309912055035522952575413956636375682727056563506422582548347475196745214484663044299298131820498845542784396101998226074442779566089645999561367701296138731019372853923936767007390429057669762012788752074836394438122830190028474830459464710100120450866721550988846194666613711807733431514094130385426625113181799965515931871881256208134365825425063361034725013521704128060653370459131174498013996647481406586917628789962087153486181394432110301704241327793953074885236869574276949019704647053800637203137293693816571711204540011407529830641397345207494993232954079033055428902521305541002138063952778984799455802450642629427611377580546965679790168434721720816867965177779126601759166401257299594674663603443440259291233812598438453087193835090043914033706900007201342916045082415013901671389794554959237549246102315938651017332263360537732670044759178759193836849609032702455197192911831046245028129940867938952908269129387588881688283168881555829160832492588856380980333441812857019441309582560701567427887850916523345727912260763855554420907485505458023993132768942018732653920987169271639887680063679657355445955098317253849601064696729448401846702105043822996643860103518292459221882518262315156526596915389751204890179833299057147980894085731561108786947588079666157220310364793272269258427407526899006560547557507636129757499809195663095366560681698532358429101588912961604772723471698736832201912218147680257827550883854009316741376013144942286508326551689963415703231139714513896877509334450071405840113295536287979775942330623440084520438866699045841363454218182737800909389960215224433863258516160399387974004597477552552646331529274026721139310896701952288483244186430191296336477155211022644158755246220245873554639640504295901578719772318734672607345663405191774660042737842405488904325487870055654958396381614422987066113997386989310834801903610305118693114875995749399661288389269991093348788649388750704346428106268047327916503381031602586894377750173350406899606504006468523233652456733150748500705784363394015857484345040995063294709188565409396573113354148718969212422167707789283529814273889444271072761481431236768894926383248100608909980179694175374081391365030119325864349613653725968766716763921592661607747154532631417321747842156081545565262653394994001653248052839761898678216370281617508515563977094961187849683572168997102768348672602167177838369250425756662520362351008080215663722494458322846414492121876573056677184630569163411110120830576928158528535922856908872241608975981417025645227738750421513070977968702531598382972709880022060328376793891749079248721620976360857690614252435504332449781611595591887979223318255351348324323761858963741767762795644952425270240332742127930403071770687111889827086351696822427680131456066909523399398287400978613632923626221006990728970675153154950827086085080317152936299365456902947971088493447510137775092398141966105585023648818224127002171445542033749048508744918165520032208051463983651519220572465616665213953638782934340124371529457319153804937343904541510183543404308191081099292814419682788412392756322609883229307773197829529992803632270926422284211736881567129711783965906070547018239395729260037129649482063656819240191279812856890306854357713646160294492740627788049522306344158253041610978881763033447423104731135532174293085632286183088205005472320089069376144453971967702506715960963581184272453368645691425168903648346817792865156636564300905743401112364676806581891293817766031982856837007775780846611973458840265983881704088917831931897166017662630418140852131681602731230428794667273257668586537419470087537720356410639714247320744966271344589985280792054274518598389661572818657535022779014674853097719702549146086576905537434652388664151799445527045588861207288452187998668248597113975931580381594089726429928698099849885295022731733384533741007478720074752421659359024545222642515876677166221359167548926085542537188455575567765602482929214934190236996036288884491147269273798343746316918034144076661025711009180216457460336497527220297720337956382189200996416220455029692589985263649783746777988669373017925390120057851964891722889445110474624711181309116065147064234958678755638146464811537268588427759915845444458344826598546679540144394336249409758072740832083028362999345487562608891491117879272711635841055723767860695837179461218372560401815936939482340433294155287527526350727756802937238175176256754604139818844808138802008431863175287383911451660403765905594595182515200924412897599901585343533213887336374630424306016938248261981850012932144169352591944925316945252704641037118777636288150937146846506840056336904151026866989429118514565420584335081713711187872282926140228138523751072170876890514963295269367940131729625517595567227391356070844833729651433143396101361973999426173830634108450624284027966857444088073651464375193413074312705702356233042567452772467092513484318234853515240422875564630876059080571715953017707198044864868194822851904256079258631175697261804164302135183897685536943869847356159099503524905826431711391143115577162304294489124938706009955453288568907703882008425003199999986187441017181483459941612089505302045111339451307545929143627940178390735233300622802315212076793368332186260743320386577120176582220706567360984912690655486644217391584876225557743923973816737525628478118972302266435770246462561028943813009297354817333118690534139246190383450608526255260071223008194350607182786434227021128462254795729056414888326465283779254706432700493935877282381659720116464223371199399459472571193338909142630316825100957034878716436237293816235295742371654962655941237738034495047438134518940743979786507358460780407452801818346675824854381064985263465339117785325919965310913708418103549541341626339738805697212323894376651633163891566704391450558287829984287415390354102263918644125556280833511748184833349502132818719441214994288873764718588398420540734960550753720647355444432019744385948066667144714050468825809050524282051786130953910884474587804408731747832948126993643177665741571317889194573572627894076166685346216016059712201100494527637273218475564712716573435717207044386514236823753161361876348848935712438723725985520538438933987075631663253452825160219365196665319059605034561147491998568586345077867316697139797329103526636549426700147196944257608271096785656841888732167876729322258780722944289741387204644212365087726575418886531076154272066946765762512091533673650189250723801796151473014712978178488719066586384138483490718183682236869201586392968066188783309640796503759647327722802798020971097635568444528032244544535080543925753723128769788290591062289242745152934749075706094204951988070877857733001003996434315904425053623762205381519564322361127628844208579339483026322877439467879111635005986246275162654512325636742800676891081764027598038400371774833933418814318811447503305399769008049032291767327681797547438052805311473038784650263156249532730910588656182897233269667813096712081870171520447002887223059712857255345313159933520373232595237361040498569995191705661713401265985118273148460229456237561913052483022837017168109435992224644169814701754360681720854609096664592795209004306864733056511776940726459127599207317228049905776572563923570241794212100137366681456379594857875128325895689078270250635504281542286881134015649604444918602631939488842461297547689841929245312713086611808033297257009542038548239823802345183391737009786012924689471177919074334147464623576655235064683882025497723465912304099060046540627874779021118246278925943112780942165683313013155753374240451425296414466607294136026676722700722995184027280276810932441920691418949921622555340957778819347406233516449889579707393195967217179647331431943084729133475178353001681799947727321757753235237029686740172966049649913455545134710059531645819239156011651812992076783421562530272201539129943183655381029129538202881444517867365620470532567851941870680976372758375040930514175613532825915469541900179568656394435457979671714380603816384292638561712024882940414770634899091855711615947040015247341814479252817695618652730142948767660652225826183432618155900312425321866059646078978863749763438462072410668341028277215518552930835474952316883548098625546574640196741313377855563067304814263284894182358325638245693542984637226417668759763339486979940692231390032556681173914575979462256159052165826248692254632657113420719235916553899611137333080050971814666096343534446632093145930208307572502254455037018493044773237349473640372498031364328298526129441890244478373984301886482275179771791683747641324298495214450777136145911611043025881856345166394460171683105878384481923223200122641260529711056827270573324291496621375710481130643125959140229708430731788179810449932906925483267138609970926836611431738769792081918086639678835292539369242896891387078747217545537036760511506531019358985466668656329750241364702869060999245121364888452839837822649752668119118946859898482724973071045147031072568644574287217364471711810119938305485583266665291658426852763071016897052656797022567969018554961918188489297358435384240474691385671306204010133577367770164360927452087773791942841070283064787216789732221172453040965037869125327760025291555398494339464341233787280335402286064530393368132663880432247712933209720949696679200890188282009426081937220621775950689686997717091154622416956271399708638312608015941885116177296376760583582595901200053378386111863794996248162979405054086678663080700635421726881229885581725700269870980582145566766517349774438107708219702479824591007985414207255020997489025617649721613452807173914502095236915493357030047217548003554377884893629890131457988705434253398900893054024624651841322146104603501364564494718440977723583154575610091521101023161885031638841282448433025452730859695041760592725465491027348288258767574214643042460358306069937904590256168193524421937427858449296572977781526402311057156756484493775134764235733940431432166200174460694506610713510336592338925823835817723485604545422192194923520596160495695731431333357727643922279545902728588651727495055545657379855140107315647445956980265356216626931287044285415983988748056791801561044655097869530072708710731878468573308911265783467160081425840158995629255446693719299539853546252307132984543688169880716416690332760193305032973783832053491075271380766235179730617067444784066396567336113607460625472834071145495453706633724071056191964498997475335779355404863950289547854997061302469838061621574795789131000003181796354434362700363388943805569661527748709178670419263378137092795267797071451834478139599566407788112605489766339823370537164728762410227434483006863062347202581870249431493431674883292326756208998991344818820227651512768943797817112728546702856785650265801665303378856641426344449081294840632984000842322121635079054298899695224510600663322261225043900563338391449224511684713485708829260600497051202735941987865291375087466094408518855785159782599277655111797959659718581067351077948052499729839993231121407919869532338929844912994595701672048311480499514822285545943227443664871390440948380684118995521447432403727080946982409558674898478925299597767354723310577640653878898678174768251563726499453695323950417347948447213974238801003739965074900201686494930816233069399975651196360083003162450023666463635855387821395944618089702676290489641843070271186668524026534098717564617649081135346926218172701566072723436674433079220966506922097671949173439812814602882648761428983816014469337697397562946940702322456905081382875740010256692162353448379969270589717495542724977732959032667959508234876240203265422116690759993221640469054316546019292272383823694546610194518762748221080990361006205636468680430938605625554275035780076384508321848242545446463910674401064629731896188486355547380471129183656269727484888383044852019046137210811110538010823599126175391793712155705557862444760698850040774055382060158877414484247252238771792889528898777814999475049133928856127108260528777697315973602792631470327429021747679522986388759872995589883510654021150997340006120404418396396720147623812276691719738259063936667219144770799097395000632161107816978674985297506682114622499104217214268853256157690928871744114818303983640503255949269498857280582098253054189657271812930348176177377701197899332200753405311651605364757157421513616462653637105976957907112971206800878020959702939446564882322923752049999031589731235736888441806209659159619002331053604677351972791888719474596982429260955779467883579100063227592349690596187090509991931725254813716894104767829883221667644253957603187569858499239930769802784745257409968309566411497106534051270675849678932738298405050051575907320275874452735616045065487906186386662821533422451832772510589507771208860898970963363172074358800049094588223403656848220909769731671027606294314529249347191181777630121146507534890817431516792481326285403087393549185564565089957760156494012346163034854769595777551937903302434951814991258682998812260791208353494426359454611585579517036993847725787178758644893713216606461609275905006422589074143885391682036224338849472217523024511875508822154037461263227575501508093542073409658836504345644031224303426520281695608846991749612224859585698040844880183057276613052381260601200971756621805857929590920060892084206592246632561189683036981519409873991473774129470931951798965690174219653021478466978887296848646713827898807473009211374270486532188790787655428406631255614342764958930664843734483278178861973674608173120221806906227785810527053191715702476560998958196317234619552204100661544467466844681163107006851267132299155168991346408826355922382268042170447342470651356553887010377183258458690183554269203706938866490898657744655503889034258249827893784387427236030922452150523894839330241527191040155298565106486478354466734644164440380789780979459472879593820434148658564909621640072383346341710095428148504966531052450093954210412193175022218103749547511138703352964541565358350958629579548852176848594807977725070044939371651418548390978179789656219354793073844438186809585457935323057549969579772310005429579458706817121985604434476343354071070338031384100598895409451703869086712032268230309677147188355598948991733618525745175146812726919927297157429882499925536224160955454808105278821388896954741461344359107003377184053658281490931773140255532715735727705049569039526673390829789667681262602603713021558959778968788177201131765982283853944329051748822725397855064754812834185033814631319294608927154916822273544792505113219820836779686653476117753937798747927343034965521374082820280783691141443429657110284222419199260284174434622046204470142836079169706655800631498831549295422384649440868972881650021727617862553620486074665111536763834426246332202059212552703007347912680739182302400015222056039200885256940528007683313423723863518008357044136368729896239872576619813966058728294964353244761987030736950500123885913417186846903695090159100303181741884063998809631427438553800556596535121650397601929215770099161376950048175099454409767406932834691227737053035798238785572352444340807793269495181619242932739020940612774520606648362402092515769261829095104285129084678167918078907433907658847422439207925823203109078562869700767060021452098360989042950956310718126798446847524292715860504440727032984833772113502688350927982875219004841899031848453516300048679210867395334331767492233704225273070725327958773681675163044627233112620175714191227914434003414010150848141981390447387629793312529955979250923666272166217582267796311508271226644591428450983925060219818251562505424774612382235724113187206916749141989837694674836918864630692119724125401009290287460913188558930669187510180617452350037251202791578350959546552491274132529368396797869313262904152106421326839165611250000316252058696300539966424548983749019310300404819562590393975512427149174453424827259829682908115700150433170210683579722718015686373793532687817000770078395673976801471959697251412184155092173574761637615504965999757984078274618092849177769855112024732013407717140313187803262111807172101023710747503658985202978140610412600542036154973654612028505061353872138316173660892060056192332110456593052623295785450203617887281806380100393298004675853509088443693399060254924222292100313285684682256344162890609841751826369162290452331832642594432049205096213598790996205515949529859784549508483273773651874268995680709957206725103742053708636402370297343943198289489085764846660023351077290296478749054540662567057276682110890946809202760753446406306708342427898596528188246132716537299338442139870237330335305947066888607450352097480233893734359713903042207665174885674491612068080172560106240070094329743995691573248708971364641528274639006217622680787249925627216859213131929282594169200244621322281990731242595495866604376921476387379084077297428926849701535486533411888193881425194499483598253528731621016070273289675731975118798562243063594156607393317459064445869359224120887319049493159394742957280569008574136424892237030967104379717060176349869373987338264864296629894365033341642145070045583568437987764955582404878840189863795126521788220840160667971904111743550343316299769312770209200956549994447585946922911143965346007428536839387572702594106995910392642382073103493708385445511269464618229267555680123248944541825140189803664281824485150300160745819828824366702296867477539690485549755974508522239137209785750151584621191603916547200167285556601458829941091893451062644133235246675472292422784775281680071465544460914784165064780218312747977955987949383574288208770629525542650883500398958675325134773024535595550063051043337762679970055953670040504719153803951798849379390397744465589024529019075128567010910749849510045222573618959318155849914091945735126349910972124535198679861746546342055410410433871254290621983071247937159309298269355031108133400547543141185846677133308515687258658365506608241408808410399814181393466795814213721635338436411398025060316358374269432245275441693628678037584165005542118360506186304490230780473144633861437013131224459309479043906701104666416073967945142372041356192740967115693483765564633799013021716632103492693938743496920078244889805466039110538990996184197245128834280541986304900951846912831071911193873798985975016476377210986027040063295776031762157839461731214588961229290435733694906774524081396678758064379716915004642154873517353638241445869354332455310490724739705578774592165852786218947087498223077936164051101985012072421431629545237530301415327022068226614264509787555086570251270197899298480352559540367602311172361286380144746378746111712898547481906726571316977726836048512074827713858006889273965136262449506631477680832522721097280657346137741323882396052047760756973784977859709130442869141896385929986116106939149360768693172198631673984354488200811124911201073494573170931452392172385846850663724498265517326165558914666880326005620187590499032243605651577761727173691304419222662294827904949286795660307782754137348548401112800451440582854141675188319861307811279486041192112210949335451104095694960999059879099277993210033015052143081719696257865162465501395276581477922128508027476289153831170887720266295898231521012802157609174084382748375289634679137212632676190099445914328267119535740724540127221399487111445494993122951625823944796942631240819974362420648767936287568317984774104432931758222943151698546477270158575877672907447922619682487928125430999589079084959262078761392838562632912959176236047426706996681755871517730206040008469750679788767098406751665009705549442748631876518697324726496353124441411910989014089895422136359850162547826717082454356284108849631538969207803287703916207062647050414406680696675827172078158263954178878702715575701585152799753811750282864709328326473586406120087490868111554515105106037621548378978600740637099315292314170276957946267041394055988931170374844299415045049816222426383161682840624166032601581431555248591999651899574166733911399589102035952176402594613182088596373773608017738017542257843914519190596392011770976686013627514101916058756382466902713470554385027782366450790583089743168253191941040977704237261320894589119153815303758615617431827754497264185082117966129126883459151360606359380726352235773718722048159422735290439161937583759430559800839678697060372264464372044876839125412214522605420751847567554003567469851859101691666244447460006926524363657050109483547232296824290337286204929649909946628607958482549781577406005586389355818956138719367278882573299850320214968013660668113239876882501652608359806466939210291930584725312946685194089994402057330398273178815093427301840715232677707106575459818312994697156045378543097806610581048234450325540264389866698707696893698738223015628497776160344575590445719214584147752660096737380066052156519091305829981552685646887232863496803524703550939421220026931565619341998315523683889994925366889862721659653852600278495904344908673036409222501336434640502889439431301928347473459479898974351445738331436778076212891042196310484382403094829427431214093363265965037509427228929990012663077307985783995376187094283002991460756127147672488936067815736809824966364877012943097529846078900832840051466206485880821248674082668174566171235161901251715215461998282101762658237228524994023480302683001939836097941344140840287169470786497679945178602483516211887129017367606900050662247730839555668597485626411998892315540169888819992381394655739293138212679970676032244570613219833636395065106937681552042033975039018388906257431776830534612271818902091356468030349358643026109646923988719664230285898948787935583776698818727306679589714774785801107797807008879249773253272049510513604607892506016655553610354611639321362415459648369740811722938272202232853694315779651547095342343987935497018658171436087729800764703119265385241048848924574909552310071348330180684760003428140279765916675579709149698058449183827396573984530164644038254493450144045612247617618879163823074762041884855140113976095673528913264757516801438423251932334921795473126930477582244983392587707940002984142006429275874516100360228126973453972470374445917835008651641858819083804595593621014738521914524792355739173583354855543286167789644132480989084393699724946153952193113524030621942024930297658388205141275801349753496683440105007048525878910997282880462334462916501434471629854211849813339918109823289958094885260830288180586821113485492813351589230712218812738287128739502601426344360221975169046906621002885250508634242209212448606792280919531631028748576022519074749594321748506907249978692991974039482217430207440903496517991424520302711516125844580118268299624267203181685525135845811233114840680868852814883854248524671468122350777202707706318805929914414352729992617181128967105967966480478060975120917947073327538610046716728129909952851293743427821623692907250869658626839371916163010414029048429325161049767324431887198042908245375532887840838427492465345106839013609905059324123142442722388788764874716593177399848782817385157615773022682300178666584728659596138594454652645909079732516853543608933400253894286662607504286505387010903339368876794158064388616636346974699941322422772322785097221904995072379125254151425540423721543242895312678074802594349501845769076935062337520292671129604900960883753551798128232026976842240796991459902606515981185494268837454813540380187576840099210598228098971841770044690977901595606444535103648984060176116428788788730773913517915337855087572205320404751854777769380867790347514705506570755309893196986835661863259981848587897282317854325123178122583271998564755525759683390861016137058687538879794288167270240744452155333657879582171119125147089505283277685954526921447745865434329470442145600996772984067505560886253826729867805329918547083459800216452845517942515025307075349609895280817971830762491643834018410304983036539249676992549645474050413439621232175791400814554377616174177581396143945694787381325042390224973143487714684410259469282230049766708280258537157040709452887587458297613675345758258070989546904102930624868123981568858982587322869199218561409818220147530665711753587144877472252494895987757966972042213858231854385828906803908088893223282764082343287080025162022489367092905246804152645334343204139576509046079539434279974332352672597889321803169072284288086460733125188888875428519489789103065911988542283580514388485016383584078513332208525274991756392956478111618577943349204414843135682504743726833332167061598871663395360983142985056199270816989052925735640236706498413285124305879803567430896110404415188415665134064347455612936138734047835182341123011076443060220717065078036406841912940585316524708426877559725371615983963948299996329757368208346914509399434796920641539663070632055555058454648988742611790326471943467121191172202181773192191676999650974008722449656566420268156776891803239577770839699691341820133172109654665311407764041792696006955295998646614336180482052806216351626416435266481827740074354108354764182196878037676373840060393866548819587605791365175656104203890748825668436958162584286194578390459539263071150021431863163985554758689181091083458095758613908986814631983722437446621372811173286781052517024811726231883607242330991738850884894994047771653056094154652392170489261703259088898199373684364480366184825186776231588049242373850906685800326461820892800416725835481210113802377291592816673579572622699330279826588305756843532714841294314538688716130339919546994105538136439309677183583738191317840958800749991139748571877130511506210577843949064932272111816596960049637224348682973973366854665469632029441181671225087877390952286316857431766856700120298481516436317489386211738963940049397457902539072042050616132108571169874189489165490772548704995726266776707555176840964057995055453965649429974823316195069129497047196287759089506234272927381319770237613569446378987670815139400725961201553761054190416260930555062343283721602218649316302846821887405944324945595202384870463979141194085901832083376723172328630181514879734274941055710245323028801878517138963141794997626119031194176450487135885715826053612082300817745074737803845876757738730074943829558753911987485574936229845081292253837272929874641014884027410678448425774986611135892335379930463979778256695075259412479749068465861044123497992575536416373508063214433166146514138964027066820622592810751141495302044864763654488819873079527787390861091701940316094484316798708689046762430000607903481694599312926053858249092599220414444322042574739238268995643741100490729196657915986065574486546602800181634816173195433395674071329067818447206183840558458479461621540727969267090982287645785085274291600900932166274292321540354961412782568146254103707886922170924175520724545359228612112951667136533367076032808341752002727983111421478654308774187041754020238902742096667786064810589930354600861464365876702678487170740393025452884829768856896596322010253576432648744238440298122588234890293942378655499653346574901708372130345805216882162976006038476492720621673779725893440986410480497646995287330048760744789998654539747276267637159003157195571870804324973551250024100501105145942313728136192075286796023308023914144759705860611236359277701780318655693936632344988430362930839671598137160709563691642335842026078690095529559729597620291230552166788603242732428745486013120555102749382419668396951886057726298579232825682530928703511124151804490263072513805336491002142999698195570278533654316438169820034817171784604949729972554334118009898315101618069650350468950396336653770716957488807951656112145809926833803140250146269453114911624976617914503558785006453110939756836539570105959935330439382524846000029429994740455418613364680452869531889643687325202414708407682035083473785370304011406468750251749810607964469754646535506430987756058557078465740010860775179172009048933780589810375484350549170892119732450189013111657071288389820799340550443910690721698358998389069778781312750316224368983196722325030165663936607946497993748710605784048597950257263832623070461995288129610986912603645269675573903060759290978185339245538236235106087923367238086131066710727986235475339398926610710424708314754215111791050265203385323048265725483758409544096117529299609412008628597104685097184945942729412339528940494343844648814699664199411752943710996016142921159171551994949917809187531903233869276112630047758576913763961801151790978973363188845602622933963714985776770008952719464746756583716072402019222890469313934798082889972980250607257029334351718030003909078792737863117006496086398379201750332511269928858327401297478620976404802126197770817426438949111817562169165668685220573029658032259520255438740097871760411491194625460379090369431075190026212045723965898389320744292886784898714072642494424907943626035117326022173039828392675762429274210360100689679498982240063279738339668189535303730562885862078960488142955682136811937659132771498292996900973838631653061562728842216186967503751036919436390988182367859097614272875006070768990637620439518702462956958380123125965234351616360855805431386159442886589879361061627950602284832275409070267078240302899648682648193464301826681356860955463566966599615081432241664349702688123773578643823363763721878287276985462672838820145765228856645659794558682519305394650535718065736953131933407322862032998748732764154499960102071401403194099053336209045835843852313886989810793843559696031282424861780614927348858297579146623759768044124145885169439344211061017883613569658488912791376363526148865171300006025190663741123792710578876801329166843414181650991204745249439113713633485688317949742893437709217928356096308266514202009113601761501052045392232886206238249195525232604607798201671764032469428988624066444351010581440538365079316886145285728495715129255489151141123158848337822321695773146825657187237017321234908045812680154094476694482954545529884557781569929636841305969373176143959508137629333474451854658820950457125155943265218099509624105680758211131370767640106083099665702442055902669282431357322130949278119398500987183141185238103189947593979740823975701894107658504854903002972256735467787305965650401979114228651480982152904017219550632788816006918672779940986057278383113798756143826075934485621864389960923177720171893763914015479957468502335958821645968060306248881641984456339000526699500117275397161284794985754903277774663849045487520563619672845115599770070128517384154016882643074614744332867698104829174202480891734136926169597289469194215133038901774977364713839324564574626854431326753322555411978419141005193882096177742233916443174198672672288981593344669038786424104555318807726184895752179739963123435616392323650314054186095057824669542228200387122568189987931645945216699128970546176712320880869112748381592888049678770484631876658587508881059375131694974923853709744048658925369076882003091429231460909658677059173011014410080948320985209100709527074708699263708400087813231104679296862677680282749619897379476754527011734880159478621446504482157772150590795590056372575260989928660500306250018678686384693116454668610843417044314871217173779345697383451646799757670705831064448413385643257224551121810985981624241581751196938866311094154046806897909950975723075329999812591053717953680201374988226808241649837884838618330058251892259698230649765294580657321641675968932338749001385299921636699226636932698046075053468299120813167631036026595379431056461017599419505819432321792590553454039405551260378727591348236243936090831969023035082630345305734076488778245124586590912530384607568057511997942805245704284126317785503318670176862225263303915027531034267545424659750504040848968866840392897820866892518115115773517575431435458954676477381996820691552501515947112924986549422240925840996919389524511376063441028789600909483841933772279219311843817893873634707815870730497520804862284529467615373810754524508229129214385315773740101909867360235474571734447335438748308950145507987978149542592320894358265618768976780151106481525526500107008350689604382414938273320578593010206781194158590631594039071019714837671658447592801420996455510385620389808745119020196970666255618930931289464632220537356507754082553179873697791267816461830729064154754898602175717423580349909809006054119313140786813127248539732550791110058279133173743558605724637928829318176549943279254740595970620084777362902428625341499786791420825879864486299613889794295546108309677045500672101587853613237754585578536683435494789465088132391222254506892141878734863095063760182778399964615991882092494602888452072600375437718946920306506967429051638349042224187533694482069753665084418196103989434757762474714684017669164192543285621328047960355022844114975645558199525014939493804833403133871616599693624245217550381942030979649103910683324366145272797258947900221570789330092834202491507538338252026574557700605247370375223516715501042916840711868188029145301915387917672582338050888578816079669650454304179001165105132211860072538021717308118671410778415491869703131200776618493561790926708746697859402238686242806126763920186024811412238734734268112123675770155772101943247191586224132484110621248745112050371524871809204887899458622731004670536594111716523158326138581965215933320296531956311702710804169238578565328628795248639188464605467671688124588548677936414672593852679840277889177201361224704154654276152476967878569375242131362190982874936440126472607563835050446669632046518204729418585186739625807139109852612587322670213969820709292424990232721850965016534611872457463703587805661827008297781620726406143925816571488540875725306648431032679874863285650506431206565728057124794384958205862144347624271431611666596558300257987305656099019200080956149683583963015265076067994607217883256380359175907149639945542240699811455116482911026881542422680982239391448923310686357882868698319714495358833717292883408962913482755155247914872372775829753104685290581617487115030247058849455688141149418553441682522502367253201870414570363219116703534080204800779736814164016913986342278317378728269063901496717374935495026559622869402508085734242107359950365002500929753427840607330024979980787597292880612067137647908824541525609447385159017001154133210807367966292130140596802938421017542371862001246540547458154019103217764795410070933173104936956696398949098275283273870034444751587137758979166243826817790666411369623539419143624263158323053294370725814344492827688015192044977326447728207412640490360475923270396107394034740132028622912571842649697560010213428386443456026809647058041542764919220167933303578588310317136145624617462329587455172247159268417271199898837406088634980387702524728496087396805300747732879213761922576051010342568252752359788219043648050521708415093419725623964126828287302209520948593909043082435872263086158029125173851630156317114912884807955659132688317919324686497579424883589075368368206015057750401276459864393395856284836065839994262695312080500764822328475443238026306631685283019545974543677973913048148636293826625354473571351038622746045763525080891831913714765755571407548507948320497512225191166723984057206215549284477212426852444021051052290836414230720755392326640009857459910944288150443369143626910347406155637202995987873448197158059607163291083706181900508113541791295151525988885934066307355591381682488573960003268892374713877571599526735958243080166704152637943345925868085675358739940922809072060316622919266542969154433943627587659396802084878633294823237682258878491831290124071190531376344564962131100278806669231509190032873435243811531035899353997389545419330649484361336282606756110666846292535677951772450235994708927718529948755910712249622246808325767809480093162864821704424726229032381819013080945513945114849105632135862439867986448773134310584624914480238107472738779696228879240801201208764903901073204961495930980887930146436474443951441532941486957194532332288194221306149458560454754133379908432784033661664531125121242324558221287333040442283969422082510059090838280597101599296381088874784941995251263692839940641681778058790579559138734215406249000759843180647349034770998418419576038137977192180463788276399332327697784643616007377999335636240368502787907042744674211243897982485328274015951442849660977365634618672839885111011985243200875489878593351188016329502008516635651480624423218015234298408803886315964518100148852810918352998483821447681681038911577761738199906931992042989965218390143195003837142616908910091943067498990444293242064207264303523011741213158618693441049962787672135399468864123200030191137539548412633067163719355733593822168598470625600236242074898348663560257326626857768300592864427827660891354708260983571475796947703655263102626449374529501247950894171686709743416019535664228947983548054649424937019869811888958502429858644022495735315860600027669660659918692603865268324409894921388579240001169144823754814578392530571125918220090452134926206491687157955483913229728687700159004972754154779303624485319941002706078408541586520822213133411177624236452621744240430785045370332341820385839672253888966045573127970739633167388052718378192778918044977337535134386889987697624066507646251276436149289030617110356222839250265717786437909085787199967012286494731317603189412075675266731244885034302528496613924966510324922083450742305344859058654655202984633909945688399619512224439482693573265316297798121736429703740621017623584394532543157480141888615870111318437262592518859659140461802446665780568220720447864649043377239653303035457015820590329884778201220437025830781225810051956251126345827704029201216369529925144776511832138306381344728679617545839238771767881925946004605124446058815352550916362496817550228051374345755289964004679092495460461854338594221334004452998871068233995760751074101812685023124206862238322932691208942885915077662635971144487211766528684991633737033334204526741260343336639461497822480680633183478967289366836375332639129603109451761454985808638334421197389898140378337274764505697557592298989246511025015824571306604635762380314580208237606626649626474721654882934467026206488703503781898024906283489732426635183933803922253727298463277560218969477842878157285656542860731450735708597092289321643736412298924436019071308567934595879366896707040054645528768609045492942935295823143460209779775889140819236591913848108134387184322050536552643439658572957005198521050350499722078646080804779677008368766625376499682298453020348915518540468887990471182984263407504878879600347405978495741413609863264882457754394608151332059194552995439137733313598885271856571368820575167693547911637074082172092376095526488985333303923105021770541968738654557032862874926132899422269227349360355663451030418629849955349604109380260965675802257230435937473453247508874197068099473838012443773988600034750979260548856078668761627398341414258204585695048112895150480190573166370662088687830492851741913034035000487405806331652019366871940284990955556144019620387629725811658895314896508514622000343359130267016735000471337739478648314022934687347144650015202069605762109422653005904928317409927124524696026393395149470286866277659315577731873995463194056448469817183775830025990298069376734456236818520319466172293765989050859938547749672107438777039914893877814779475619472482600904726340250558529193402786334640106626439707062291248858168721041759480540399383976760019464300411998118993680760921691506686157139243637733662447032858057561369827128721057449667948847854301421175927922072637884444519616444021155774327268690418929108381575889914538503683894441380227536260834361919504559967840531145001193050631236615261272087322718564539534423212719790488251882636733753362396533111732584240196478089756389593104590470484044301811167673659977666325443063959944105854510126703920949877218191555431694959569579718606436669346928598037144412999415164979259421061186376414987696227505610004233193085327469581201380335452400261648651489773713921669714995965976148225802237633856565429250263250131045637293673854599576051417582637332564446893093747233351403981951562411900970680930477261123961397752509813162961600211463443171023862106644823047268800050282970992029591627804376938342317117473747730799184474360171617442106481255695628082674972100262669299272962229905887608728032274900640793459285624739084951340895952658735311027471529793293548942612186259707264663813605305905687310209035730780301740497385959332427969968834495319690334124014029968380021246614778405934420066288211456820175719693894501436907464348527939597100296066114004388432874133824319648949234050188328339154209480162364247698739142273052480840396671694243419464647739736739623677382029310927498737069469630465950010772728487339859408250995469328578886739846705927849924096009506469419919045740446259634018066409763155406024030640309815212902351683490208392790534200268543378375730090732962188788758130413870353081720974134284740876905618372640402713767123870799810434905798332391216862234724507109036660306276965346054109561301065150854807365504701343235715697602213876232122174894634920474496713803276006337965577888919350848122890535144010511950625703444304142196793400122083167234876150783426099177744157491243490221823886977168978212839692398990314738076700162536576723028163425699953979283010595343304711477373490487776847663974654276170671828132902727421751147758452034071856173146600333046969431274650089069137878010275770206668983700634253655042560476620717348430836846985225264996524030435766255607857080389908232677458166113756675995602428479355114732296941976304152039371099121793993493877359155552464602020921028814420630511805332341852009879564376338433462712618499756447069871449867267553659950382448220184204730840825364421207354996118636784222577020235758342019616501849162059525620296968268487401246132947321769352191683463237459474501380374208940452043102684714941346973990495102524154788820364920771930655382313398554509320480081241446761619714500119005605878154653230454819636515078282687272277921254211340955322247968431461122131497359362199600923623906722778697988245173431675305026377671640464495822826990116742962889835514506663465254144927861393618305310169460769234048497749538211008483460547212295282881308901137659801724604998656820755716647524842776084089615948725523902958535419823895683240620394035375977892476731886102960578002405431991552845984239429066690976995812609254763672080926382440708428916329523569407778235949353591051255739856371809008151348281061741896596406099987641242672458523172896141764058266276406043460166663392224032476541468797465926632369356295919881469512542979648914712382537832218697817171288382184464377535774290507623319953786095949996854081734962917418357651908725728374566116003173694132978479383712579916525635520283776015059862200842696555604644696121929737761367180345130009265090947374610763858089647956044872071899086797145694330258531822721464238294030395737845524551299008946516986888407157058440561789100200420684875898829511634229583583559362218687592356857387330311121810665495715318515895802584575918467762081249291341328463370263627663723146578540107622350423349711448738881430023474391399140297529782737403329735574176151640381119889660400113998441999449776025559318654871305143449129871141026390481135804641181491175072891403532467344892548948712811314862133670750023818257856202501250366955338712621882872309675227804905408095233602354344568039150158977273926920047466831619260998672763757407027193608010576225151790906858400845505731516030309955102367563805297007298538882617342860756131680068487241822887383023282651912468928502503682532570870455806915217705549027680263538120453713797269126798620642669927424679001260554759134719232404883484968306304706105923531041233782571834241695947359908368566018441958005926300708604572297680554573300061291981068466044451715591882247082064127307023050277200904999460251204470762409625781920042117727704942498841857420503897966882512532852359077798863662799165725421324642165220004421997910348237256635767108340451621284854443528367387845784636964320139901627039612827407766863196438450106352346194142167995303835653322537165279759561563837310676657694252067314131927599389126002376297101605984191619942170357320090100949772853470403798920052604380046307735803315827330873227132557480413274994277914331462120625426423945205463313823131559847236743306846044032633175597408954076615438621326418746479970065310675736906613134142109208942130785494111241443901030465521934216174154462789854699352350401755968254354031661933203578862182379567552084574606529900039434418470219077742751425187024243369152638246179770830857987837690580358506632329997722885643673788088122332267127274731614001882947766083547643033744888288231358393658773431169222700834631427002662224367170219593642265234615385722504336940435846550443123975258805037608331725995677115786399399074225456256298060578347688549038597092373104721863596496927285182850682981178922668563923364661952419560704028389324822864976281903436004702617263908226769883031841272033698771008930106635481948072737126198458797317545483059547196222764081044843534555992269733058463156971001968335131284617928517870873367073601715755086367999260459292270098294693729331216589463997881258746786314871537950148980232911345667817766561890524385114498256260431042177416088217670187427087881836386225652729600386188087453515836557663361451488550595267308709860498343529775106827495487206662447758395441362803462706392675931207415428664221150761007012974613513666151676708358140778907486943406284776248953103821250177058449478387707983527507741013407229254278253415189455822503392525890674041636046827979326902225435305631533936183174610701737203423785924879194896356736536038770377299696001367882487137167385771250989494255364576452127068914952689226781363967961161560962154559665663844846118018439578778460258007474115214237118477171109572551683887398973921542498508735790931879262719836112199630464178788076279350407191313208009022658466508577151262174324989003213278986764098568547848044109790310412003089524581608964975781252828037505100421245840119711685848945274515673288866210207757429651049340447361408930045549078647788058402180605487289980752517663790035671652386183797920785443198093872787762176092525467098425342904495031531147530464188364801005111729595154456273513365972213629785079158863467710912269624022799817695515483406568571546440747199254446909492787840556373362461737728800010472344549236706230297620760616822923935557979802001888788666726380460389301732904581861747538249215437344820408584837331172697443935396422795099326472826378609633504267660046357721614774271639616048104705461089913469642914208455322157041161338590041630215500524460778817318146269680263898182704444643065154131282665704950127583284965998031123486650248890207885489416364055802317531102532224863145527445993750333626792327471092058112533710719783209229117108581759250605872193361224129189962135806848144663718302834992933667142941384355958258276195622502815233519382561784661733743897918812906736425776974018862889456146352534926525301961205609422564101073582858713811043146205852969240698874718972541743619260932736574379592593370626420093598551232178560794520114323698777707343543068294232136716343183291984141094615571384892606818633070866442031957122343484160008342848593271046004972672491501073709877548883639296078563169085509746274865731375862071322521024724579291044773591374406975977876058406367896214638483655220331050527552578381641776046749768437280826365597419502935650561297815947275014425367473406544459648694338631168926440830118606081939108484200580999446426614487569112211765246236628370536501734331066918529878498074619640057203422172393722887516925506103005659016878442145519088946245736570214236576252425177438331872899178587067464014115095256527306550306673195440178416470488088173227277153124586747076815933126754598697255955979670992046151970896984513633652801441170718471603359959730846816273196233700897568484766750680652108530574968510019804702477175373096216886476562118329821870878515449741066876857991240657905852093432541331170317564169403385942642868304614636285471097069104089691145802073316721713117397737820383199992593519062454813918040403406619568637205245652950020759582179125101563799563596737927693341510484465613136901939310977285137072607758303661793578671470241333273058991172871176510581027885257961616992757472012808205509019285017191179631912328372543789587055267168510776592811561538189521364082633600285627832037244854625600150109830280545667731980452110499847062867751201501080951219658086116512010963287626624926584301634430691785337262952014944775800509992568731725136624590559597639833162894579554190604612057197821191959794195056790300787637601699370443664382905752189533594302415510638500494900057404588828997531935045611229251338728008373006213633311503852757324953744327853506422649388841857124685604238117964492584149277945411725990436634323077499087872617062019334129778867020343624515476429581485747609887340225780301401277336994585298496087899842839568844440126583725069629063546373123833940130362618595045328522120633895337401098369750284352017632181391417327500058169014243644349632703747437024324463983506736364471405881917808844307193885884526851850711627384622677983783915686744524764357554192616523408908594751494906609690557294437008273753061659139758701785871232954892832907707163144905357540752127623044401590734473647203493834542224539116025368871013338537712208447896289706214277547801874687718324731221541148765120415184021378273771757224070735043563874133852767171720355241990016090653517443166621541187807875269891977828541666002541532630962279974301555045981386913474598395343469653258368946328238006989667295192842779822440935550288976323360343931624077273628503503072660672728063079330506600774632707207920952667274024011279963737640323942185263567945646838671856777777532229397271955199626023012180411241556880601995177143123858300205112300812404871310690257676490498855278042493315081185059303960183235424534126917847035438010521529818284677161398214630167964925248734832835771897520800597221065631066083663729149616876099648297985865713757285398253183106341530801302581344354804694035130026468539276842683847575061184042915040370642345321690548958137505818489314464842854025524456802850595642980887680409525157107419448781882910855747142520411075804688699121280025900670566896352195765628697599409846248331903086232460775417961200116699351461807868099729524282985533533331107449376412005566370885296118739153905665758807452540180050728418235559770713328125448102086130868697954010311631326734163433792396898144907486519482760402752175386030565512245552756876697165094216958121065854351649896205354107372967025319220349901885240209692423963158489707625184975482837164755652421652593245177677076948085289114844153056897816366567977663938088333312335604831069809527045805960804201740255848625523016713824788053901739784478702858651083394610048933158063613043026420594175971050577869854260436010502623775768063594211384807409477889149603258748948987037783316584699713183552837919370505827499558224327447029979450616339431852044568505795517784442646730196768595065466793718308196230419869416257914700301582851210494057560525410962040516063468085931348271445899887673705839739176335714862444131977559303180578563460961147961377787424543949434953267899301562276354417486568319106244237238401288365223468302888916927810090338208069707916652513620668155169138339981517978962320070861704340666194976093131476265137462387098272128768254281243811601951365651637299827532854005516397493201622743853517937824414498303591031921514276887342625774113124405961642410105911496151701940203837949997335580392528896017195210318476165902205910912026313330395741133150854326670614628348618758433350365547746318754200954885723846765511084776027872057798651221738141376266807620990436341486173437237713369827704234869201319031050529309576514073382289970251138032346488664609949441720100210749399715068500676227648752396301593746470280381412304382217467206003764176811803093435888142389719486053762741952272090240624058484926133782655925600398620797941074786717163288506425308648223507385166305770027442708902675064310891898721618007968836688504410970050417905001377510352528535990844734181423371514571135111848213153645363177488401765124999621702041634428444271448057223097457709075746117060179209429235666153151029376666110584307394835658825016701914739235028033925725176370744905313084179280667709348223669153891596939633301390928558167046238587318993055134267739778505166898648330471156330338151823759585233221511079206448464766073486250932755692297359646315226151854133182803682197779389647951576767578593143474621051391267655416544743139850494901639698949400015648392044805831278851872478656190621781426392969989876169779160435102685132546033671031946170078367402464696128364550013434012324210537164432856798418111692284637439445744166415033316971089248731857491666420865298162850894605697718403486098264312969975452161077477620628770810530305511021819755116637798494333615928771944742784643042064240473168568498156528989756044399078462107053871819111631496720501611691969629720216468454641434025322862314994603993548562646626286173443835241371130577012470681271022399106941754360967443756893788221313447480146276320650690089330791708742232650246824686423365365075776366445393183282239436873275971544548014191149738014349296839208227854662740607971192860316978771919245272561087905918123024204526160396027254980852743535208142102130720081173876366286695367002392098082087418266660260557177985081599057794577841263254404700102151564695277701867157424386131137071387371295185178821113582255139791299370072630033225970287706843776458913862155208344446675800395187718163553029429617578754783407084931779900087621337061405873018205281730884797299595540006085196065763770321738938265804586564528871620889777130516123660098212345089740468292323206436602683024157288794986689248832288434189874975730930554984636243808512510456831534858459640205853733197925922768327013082771600014819975578002079033196583382618564185360758492468588109464940740255901170929818355143674507355509019976125185088120742876397525242994425968990645183995100024040364244721627263098396999017290427242346152115914805427623763088808039656763554658725062472580227274084846892225322248771106669576198314754814318621898310393137388027654679034936020683077933546686933535585011287364166978875248525461290221053892943865186869490326345565410332083439953426291888132726464471813981575035345373217188620174221282310441350988857543981670389024726120444727509745162392708631970439490301672558358998924569306386959284423679403774634313631082628114119814082469729504321442689631843845039665309064273405255014135235482257496377717482397173684809502756597003044310732389345069859994620743448996083935372699864641142174849468755593186279285575451873812236203500413116988046353884864297384765482989898141416870389693916874893176351796281138315338986396586934295613716502135114293706499219911838789967956196004227387908424877839305386261914718654134574673256623092893529096298778110266261859029579560007211285863580547017073293894998453241846541702896580301254723559448509081649553367336785993657657388836123825212989962955632150250064004040424075047900710496641276015449445399250507526975516442079785388988425662030624116718393071451314387980300933397096176940185545066260030880921409105294879367172749955884561283829225524999896140926275783480019169438469599672367629939370627525925614031565486286122208688537938649440606755006606761445210701552160349425792401821663696742431295525198024460162050601481438820642075016239433238061082295723925271416894721142987043137890399419629289966896952483897431006281105111881736211123245105974774863281382239804092273745209382865450269786266568134129906892477308756212242151998202471275858808318034996346429528789937566760936532608670553724894452902363123698422947585621398754797877999226417068166628193827008211574280508915475503785099874435770798498422370119399704462674386724737928075100542790736696403668261017216567154083596314198883525100519013805126655023150456784284882001619591754366847329351341965274270032180465766590531997426186010843911120478533205895822219622002623479993910089056868012002770409502970457112477098444527826966176708476346256770003916173871246574813622191407327152503543425750921780763532193149542993851258216663016731410724819666062938907594304737367396130556805709433325101740523840138958531405765267815924704660351026664248735688942968919162821097635047307620910581796528363362683756014997607509361851191197918667478593383689516747465615519850764526975655936980550049657340569174168262506212613545145573438309096381451547724170984558981694683169568729387234477040902856089495837153329012878896326935693445393052245627405932401779366474183823177835015982194437310858332026642400030487053576067298510594975381899932180400209388578759509893203536883023332169868842788820530236147400257574934907014452489283978629086434877598424029258503851146643393746400320608575421372405637232480461187147105743771443518026761791541962485759595633965366377465616276736593922467629277652631542624317552018202788818084711735399078977336318807550872022750665985828772130494240680303973797002981977330304624978808280307075021736564572715862729725096570749196948393219973655327288945932995658805436061049795490173158510015174215386372682461485205311586292696450556431583810256432795217830129197398765620094415842597409870992276167055924022600365045636327018691849675512654358149607332528209737358127036375700106788587561011935610734067086331891879395499088387343502111314509164461422151974579963428531193636344279254787060369034358219095675369238851101313536214753897493447392244003872994706555349803052363489325410920325910060069331612178116126219801042658120415418194070071296153922573732540612811387426675444366547603515810244165402580875453211876802772390258819465553746998533531299121123395640497531896170682057079758808514738507500887341353900981983717154574335207562870262104478119346990247986842976217559599710830719533842872390467845031196417535675084434129819664163048173960582559615426231086985130246059187453950097178308261581520023317205280396459590276957681070059448810258585474825897549780664186777793294159302652257516479772908634301941989016615919270022385586747442126486870467882420280915714173366551274861321099142313042880941593302031766629796647249771201601152936106651530646322456453113878623736548408080656594319605834698207069776693251247286141236093930638357118836696304260255795242881284091717359699525475512549346506034991676143568603649778550415411772981252561371350240535346608812576833325115576526659016725321262995830071862946310482779659264920754005220573629744284902195999520605670612998338199811604355214412720043973093858711492418340468955767609603639129669675884431917053172722663959560676673779067304935575122919533230972191651827410606963056480698150279447127883606198101831393140501158159060230682981513382693054262274891639271525741523859289310739373281457444629736566955912314427342248972110092948630462161057291833742077856739257980500962397549089320735806708312444354271607292688591355452125975838676201532916363220239844440090459356342874524043859087616378339631318493291387380066461635456744430042989237754357043425884614815880688991698403507994616520925232076124012985255790128467019468336230330460874366213865536551857565442345037244350697968569943581288405868477954090238128188026412081489881248384556519611951126832081864031872133721892058932848177837181103096975506543444776127951191441161967897628300670465448084551998866325723438248496676142073618053793357406578078941294827118091493000607465813478122660741528806358634393739448613144933902501965954564782570074535074517403507285725907064808831560222567649312969770577098441637886410078066902994406378259741094633746181161366471804667427937541409487378852756910729165004583851986082689283176527769991720313245518057579189319560054547827794931504203976279361879411251451573906448285008127530336737364931508872057639856277425602500869980570774211694106115690968871069215325253381207287234407922373873596857827096977335052392452837139971974427591740616664622751069664891951716711333558102373703107379227551266320823627764463176019712016042210454463656726855321054243349041006426985076001151765116171766118014072441662855514016316614465656073919777190118774428367561223401127990183926310212000142673966876774592912309926991041518224261232242158045441364579754446832274569426856571361057850858878059444909879797788859849063063594887548120147482314219950589414567169139084978115049045240411864189225462811457821952457572075517382481277058504186208417419963453553053668949627108854418043688515209687228703226221081533821716846015058799735121070254713775277176520539298863681591767216287168546950756889097516747081439795878701469936878832873562532625548492868810306800782894625010417844159940208245641743967709353958290357437840548612217539816225201562316058036911136186910678000296483612294953477694612652810245945011507573007162679748934872571223768447699091878052394033499424481058778035573279749078925750689627944225291051462067046821540854817022984781000801309958740561486165569162851245172467480434789525782175744869648800350137199089426589176132261518360989935861507672819631522275146248652491114340920292110709348556246182910806154962433474292997648749478951234432753923747685950975021848557968557203400630882817472721752678794809844499400272507665482571357917567218518889610378138476965380742156788538592031957500352106526790432874335940991773597783666893583760249249861786119153652714245639159535053845521948781484088714261352338593883324857045784183955108624841821449426055567699982040250801415731861389825893007182093771721813513394886199045889885235048464356908150395170249126832379309920154217274428381024444956282478746225884168263462234815780282370014845006254855209029705878701310613526853644310863593054080668583673868909700833325001079629180441474057314906499884656536139631196034161439676725512862038684765558800208003740243852123622574617258538114196563394964800825239054461007542960036961470682815505411281795944605152403333082780985155266725624250411263543815151272275500891184244546579791687708752905893324724217404245647083942802935160946119735228927835826274767223387432102955966217258423131004851302773599906401375771331672180696051463312631801762194562428037378910397760461103247324669869156416073705389660834993455989913521144551380341094697964960589128804757855423653913775252832348862370589328460367342313078242262426681804188764085285816746477107101147056778865409663061782527174319619511972790006536985647988036159860181512538348511404716126986558267326179457014782261012844345831398445940508583635817401923131742649133745555497628029337795769519323642666852818704774558196651739251578163227912420477854762452480674886848834105197889268641188443625602588827381629148386003448406414928683914229306215948717299908284217443147211809446711859853964734419432142469979517574762413544196921997347353137115540975291862424835181935054503046595416891647306696937249075744578618612074071865561175615514207973920485705791608467055298266446193520389521975014198157837991697482028952032388073832481739182560985141629985827434187189936789223949047377150784027785172010918586057601261605860311095309785434845025005114729458439653030961601829734159199298393105352657836910266172629055403646392581266679282285532709235076921809273546006869832227109075891575003916140657068619678130010304764813219495559379441675018126384146132199795729060762528622990979592468939050740233755788821137022867102622415831346005450055132504857336041636972542653145727300230599737998609857909590261923434268523677400751593761428088547321562915200420224794470658588660986933002795747590956050520580176271327552326559935647055896830059996211147480255007732024632053326284438494909005403321309942799836251762253996650387028348238554350725741982971226484257855996306057992790344884334028215273942454015481152503493449369540328129990661593030575730056583924603147080182841398310829758889299988487370565745488101765942876816501045097469419938258454354190179435050807677069227665648921597548750648468817384080879222447359809238100924791986975755410972987821563591528304934926767423647574464818007317870612785964457320627102918527214719845224252237495240848141379959113165486503210865410721675666590362347535332873825130932600500660478105468646621501188702725995747229508361841908331397266128417594409069467230109402358624127995749675363390918339605930732177256002831281172245481434044864816253549927900187767883240922032763426528724329037105913054416748495521711193404886100229358823834692026280760108192257181568030449309711134780949883174165083726819910638060950751422406575983714188317426838079880235744611507761856553182159348015381666649498416888287470946241891087541533630104416894853802385627952726335930623554045145487333480826326701453667130312656479950772202533236858247623614818260421804555569388289713569165489794363797911711790845405607319159898918340657250358234244822950417630310460134329899605385441920546229622585627208603535079225310404530220768722981072019546696249695432090037727944812615973937570651128980080659868864912210075961278965253990854839074560865125391437833649006230850829897319127034127100980467658916975689070907881061916609018003259802211180187022910786414731211235647714239472483824222004327469643355793898985708386767189807931281409785172045535576169713989905545990857352175538035476421803874366905564841682100102708897177555340854880827277482279508465667863927428152991668913808985767578526656957911781962250212803839150506192332551674089360609997780795561083288791244516842588901191268894050392878525767161292812504670712062187620101597096072834569132252584612555403397030887582706720581468011523116003349293146227539453495143004720438512162913864480387616572472444512973584387015657745938410375371891865500505840438529364057532561038899184653233640325149769093481020821903897771059704760102844871877611824251324020487113666497027938417151221965957864399542946591453084832297653898440894806481511224816805254729938769776641472382251176885929662203484355982427502466802837043831215957140661822960361378977008182679913997753061170814510709057728812282609189842878585825885547522809163190725295864287445610535018142091174341388460301561684433337322859230664219872912895273766349881740068304844926435651169067024040128213409865380281522282424024588386745091061451688580039856704342057731347606400040522056226054501416553285981313454625252588228389796704643329773182665531734538137933203992379741318196046628241905359829053988581913707933447578093238898708813611614607933685413675295228259590112157396309704281918699976480453107825066772860779219380305440148856532571168152128359745972938817558591457882585483618182738859011349498947169725545400361224611422052777150817550237848253517634795663563276275580027107328522123202126751548518647262955869339163241380703996300293553753220901260441263761728127157611173846591435028780007608788658407137445930690657437601962936084817164704792209946412803393197515741227780471569280730063670863803639922127634399078127018042021992131543991526785403164267553544936671023253198432475417340296388050400991554955646830833696991401497153017258328946088884205273317348855269687570782590904000409542937883813759409646031590317662714464481364510414767447211775784419342097208630634434134506882911562845029780426751313505565368573582638602651087835651641603162558955234434659146380599697550900276750683501384285378578827734322055879529819720727283100833466554161613188289464174178595110580075417287952652011464689950840232341863234326668722604087144086483206702391552401767800361122577460588049648862716863860457162342340241421843044615473055690255243755699260240232492155544376694243185347614797069124615476118246942227475007223771550437067968569952161654347692646485040448848221633350483232424343387380277699904044618248606672552436344149806513682795562500727690796046457874625705068574191767433593237728301905419894049165738892887571008538290353520348532212328524786604623640763039217178823457947076088725421538363414932776850204875465036213570657314767984907962713242261108285441924214406791272939887330726042393563897130016052791982006568064642084226042574817833496583191967217920963536433276286431777141338209815585813880763856257176255529184480384300129778073757940845600786368574053955699684399313996448804841391787318556840975768389920713138093548773625601348735533162792413402110250091837915221112866489163630129863973365029167227203385592774293874776873401838804913727366145079206937467782457089894163800379607981443233703775050917611349011030448973717052089422764044316682091546510921905428141382194297450721075512250744957447989960848111559897775582441124561440502591988090039790910899797371244885369747359952286017567508044463323877359262537902110014279323849738943443766670191906510673354263376665921550151390927143965448654898684622173745442947423342799051248604969141467616508801963221733870600343491917819263929728964075026001993349682523328936317754550156011318591498092636177486473329563848796657583531570931936386334292159616502099508271372009171228751012549986722257202556509171827231299400581041706330795161679931534744175150451699510292373900717695379279753613996492802821290364471724592397392836183374393555071286881208965338448382006070787388217368227552168159089229098207717695036415023307779452737395574875142956567103497424697373093730569273487326818150274712283027144103270136504158474940755016522224625842954443901622185486884320389721778409730065195636565289526087557029191092762544345758236617377065604421465938532696814854866032335231859117577962374928258702656642419944202563566965159256406173445668379030524377188523413268203302618743500183096793082767277195169735318383604131074458595895842883503953318057893735777339724007941479503395317948139858193198072957642511101704076708835430341990470655368395773368703884875455447056821226419653985672619103951546611601198773268945182160533832545540155118772458754075900417702977279064548894401722945914272543260274085121271292851436845344882875172439802029390417811688202437395778038303659181771997541894654785568497683353558873482397983356060505938564172836657659640567871104327741619104592369516561460823487746235460664203283155368750345965698140129543188726580573509554755429558916303513907852752603953913630241497591611469748856843200582273453159883744253570245174337865578565195375374925799830465892470305570057949439719007505764477897558181431123934870709309239241807856781570712044256233596483329710126199909105679676580862977742088023460172420741699103034178277941479525789279897885535004811736222786153316521908850476625528627061054371189318595602075631873599020595396436269510354036389791333039825963557186023146206563477438045156214781284681784918894331050521461318885353434347896917006748673829375094520419968572938005744399105685668964303815241584135269823676744186778107150701123855166892820192808933610942278973864037586036227341011827337648605275367317536164273544673307899279835167146936631719192036213984515533866109264572063833325968175918700736187887251446020870457226771602422957326126529554782220548310179150523688582172494032326942462922158746731181195613461370113157165294952728764183961480030210870059036696839256726078401570164249463012358223784714207355573119958578176144523023077266949025221741017992235922811822610168272856244667667681195262599350182685641406042684750193215244554838539174058092348704658962809668490910278833552136954903053389761615734671319961945685761750662157252110656519747558296017047928186272543256731641276886577297401885707887634928822527377727971773294198540125429801246554178051941366285481115357686597835133257951470648416162516230871650938395772438920781657336700297456739099162821796607921145567529272343608080069751913985693149765083036203424144797233381958605957695835253302955246248704766177586630755271920345605472423966056591203506384554754395901036968405864512590567918333006653529876294494930535518102908749339501944629542404647402234406885295907989069925179443335314015313585631315275883211498517390264161582774042346937520957448975855046682672036512128879106320290158280540624727216439345917447580693911612653472377044860567767594928985705491637949198463757099382519514213552550903135352742591833603508263229101188627780112049182506265710057672697978570289151995162774429384669119746148009505018712393763497975093030931956708710676230708841692836631478465157834940612566146267336460082816284039524035792732225897698189634670622050096439221670650996242407099849260380143240798756081240714878001463033064943351481510003739547200874751827355408541272441941666631047006888000714797710401374519285590274874681797942822812806437775650086063785112016849918988322076692942415536482014630897481335658614969889046026179158626518734540654546105088779345259820616577623323761516941921062207683784470057891493323200586940888037064031025687676980692412386294486471329633009372988438355251776916242185046745574868934741349689551935918881041496194370791879121505986955572091952791416012850748349735461818749872531365671758753916275281967521511937059435162789273146993478100844885475297914194126165360255841161660808896309298708407380541886862252613449047850002131602371373131843257177819620977544910889491689401030539854329406935081954712021151333902843685887724026557610250318158083942808666262758340530673165532052757502479434266978438754086596011664808152464789975207052787894043415781314355446456758300062060861777488557990912070334274710276945789456866610265912878921224742876640639392832407730567923054047865029069892694589573153481963800843836897145668979354028085612684658300889268244466191859587134609644884154542378601209534284567457739967726890621383398008156365427362397683790660070150581437612368019098409833541629294198385819426891881112741473155020632111890508396831522942096180193686119920406718250656224860084346371991995361762949589581968239320135471812971286396925611262946597721422431027245414172982802511631462601284345474909136390103161898937283701418355044574715058692279406438192114082847099161521052857975750368037986388199876081639843605779623255401026123133408593851350733731904056780658885213300478992466270750588273830914628621830812892004266613977874362060728092480647088164033500299667364252498961299740371444779609132024726717040872017905097613758119514075754310154836464903239194829535621183149147100975180050630504239577591952955747467462014938279959950439408713927891654700055936023333093770225391971128068578602141795246496218957894849642858739111565020659882751622583576366493637177265087447096392337518588740598279621720312347869976762546707905647273650397984099696274805709850755271154375759419485222672635485116982260601686476737782890043794590161425087433483380891381700028491548688426563081371028350386698779147443912699219611594614977275815479035328976517781752372020437958126892799610195178111772025632024525280814533344066168965262091056586218653214400145128192400994191004910644049989167652812120857652426611112727047532907708750555543858322409378512508373122620884431836807223030187934230087264290819296887752192744569217348434289423987116660972544913353989722330368371055011502261881016774812441646466560943089932585787494482086858705105128102714858675613975776397310621824781369318575865383456138549140690775429327098175776492678181387462903181233633987378954970289219106512008315988674163407029479479106478638352132506874975792019894190730031707160716166312042051785919428048350422148533551680811835333944905461645362513784779905006353880407005470581750755935708625487268103523665726276053917080372431767221385652025796171908215470894110144164866966174924830747194999810835738530988163659004469491866844128579906376452522662353828073719267081427512679020247084905796510244505347587756822913078499759564224700054461681754443466833214547012300223772271374086923788846766341946848389338713059528827704262761119201012315885660947784486453354890400381763960783462239494425898097097962823838967479317225799267794278081266636842760921917795536865373533422128670799983078008572745225977792704261840899506935536556706509764520806804626175426797388555691067777612637554522413216930745531652873705960949948452367458131125967529085317059616303956143485342155716366355082753753716615134295329005324199502061490608166249781672535638003775016690148633985330814784974333413981492451678127748623870855001830010311731175459051945946849036119405369384709906547431825343536182510257524411659534892740704731916596149334547512148191472200494701859644743697515584871792257272580072622011427136014491510641970652501554265235874318515433673879891018237736159294953274064600697697544471675865683084528061640631897045208768110911170680863039822321843480917557511307054639340789553740773978141260347349993593040262022503141224277190156361165150391177285565595728120056684856944279339041419407994460471391436948065529024719168770489071816282260381449279051210087584686687056315469198171768055239298022926971891727918025484974952521307334321599620999019428842817079833907789416067216010470690530761533007430639097648650495722152023143418171549021415870751817011911123192632900964662928283735971522873393557550626051018258091171798866142121093332084387102226582172911540456769095942100641263629237860211843449824047735828075112490784164441378669739320874499311980658321605029452028210702112539362208590548638211704513125986780191996662390464740041592546591580293751407285285040538072550634980321355221420487931365889152078442674389439156856947338171282521594673300628202785362618663616681735522153419564062078952078247533147526540165633147651423870518670713876913146960047134117664737560171407576109360529201960567325078820131309774475170847333184210595730632639978977919013239159906418945335167622532409425983651606810180903831220030690159051850593095273825388324588934913755906926859809044839748634575533371627691626088291996069934652126970395585108039511348538898837167789670666726540535818161466344002197316501798525090223758157863797325120237516268974010027521604011603022618976380542346143896740528477623533267856580145951631214367124160216933919296323797354956028119277918122000341766532554479056323813464022458975103355946982464781577641192283918099955225476983691218492276534383569781896514161976625949071293893251604958484174481864222153294413118788666637743880710603618238121928467175037357787917303800918697251988510081304319477527937805412043465384006018457903196520416036260718350989162651434489093493190537466407924664908002036905190503575328918171718367847163075540639769296880726280545801337704415755900252706328836991896274173394691764610442696738209374775041526371852178968034415222478427689629872277288198817523429519074220123435474352527131419511424216443298578965394345370976172575583160645755361096333068900845876037326310653973654824659014908770413765004615242880042027210741855207556185534382943339784194027210664580280768933740342608765112805744376978464748259314159565567087050258334545932500916151154048977416496821063901504293729908226857861980599642958022114156341082141913961009710015071113985380114297602159838228071176823812944568974275964318817297096028726769609101590353216705807986278104374105605647527477242732501423824025467887852610994216466036754317969012400616632843560445195477117759317647481112762598808288047532166646217889079880801378119837788029661744856330827049124927925902952589240495165527926532991411678272589007016050689884453824676811353698735675597697487283684022607419807099850435153492406135167532846503272745690406515893381990768912275592216426188282232664144934832042885285121196405402308647886979752282730885023259316511281774165067534158606869882442251931466575841259042926047339286658662953931690219064860606145933853808145085350464090408340321914772958654211868742867077300997555867222311135775224563656621810596879704075372145105183899965228508253107592834853717068467540779574071061004101799142046257427879303814721818497897145849514538935422517065166010314982193322582179323253637444721688255732907147129619877122713476384462594386716785256430912560151505214597524279544193110550852367306586143161528221762284871957415532973910111956839053081463017665135770706175911403472717833856470108641737949206695656212862558485584869641636913044022952174676499310677127940602370887491657704480935208788632550534142965643809641281464562920197317163207832174422911328286671646167069891791452911269864745522209493081035449534634963157169869582222899179061550166563991529892269546847997990536373690208144556553225948153870010630098165971433129554032198114167388434246911395562842382530592061605770279071587818014086137029904097989060707571848656594380597849299787440689585124092519049590836204931748880139320546894463773305024375109891733175620755703372027619339977194048482953402683731996577281156377154578212051740663480848595161118744527702970337453674122992925293373545494827327809612277420506803022304935040634997013711414607214846015227579945168291989550184771183911351021606752007664540091199484861463669940484401233528119790301036276745450290583532002123066137064691319296555300445283045522784393148475251343703609303600969464667571048994472980478200984136861481675835275623794192553521338006847566179961242206574935455350258408762484318253538235074238508486727563519513974073753977195714022441989844635045398451738847535375519076788302251705535511183362853696698431830560894687962658033509443525234336728706593319044281205099789181422436967591424876499057448108979649390730483357294662319049638434002651612176253158416498228977234666484980996625825736445123818133845853052276419727924522097740749564980346291737397705054222317000871808919926546534580556127232656815859655077525285016907895977696159048368257207609494767193234910170227592318236301028024510684364118029140035288569530136977963271020983469350663746102886824115807197949312645958988374493041202309712754715016157505678816266968410638446960649024800817220670263089039236928156503376630931045134570905430105069111837885564276630540449028548426924119004976629248328010711011447942724833520178589400401858764718403219768924971011517545629037638572830382686487257386026606808668798472707066830609124873473131354299276787192397886578741939177555216923627999736327051648901433788497154459386108746189923974080808016628664584797689643770779120627483508258197359448557139096872404246173150370249588563584763778339486000581766115297380275871328595781958416278228851247091564290594112483100325557168705097823556879411694688632483196712079977744931973232811959119211088301903094052873242358783136847779769166875448918863543028482477461681868194267046800529317023818809734788823318294519345392677376490061000932326234896423418580115753192136265595801030517962386378456912318009833337066706321530401811261026296322882234426181453363778738983512940132684465298376580076586502236742482230059539457869580834369217739664097260638513909233792004367628615228460032905507990455846575101237487651229400607931294442888714900081309755165894666373902124017696230975069615303417631045159447352071729501344263485386735860840540882092954274403597515776337117585434070929536346555678880214997342550313839150428605447451628448059024264604678677136168538608008942416240434414721999093590154795740587475690652879946954433100478893376731113503270153543689192493312079326871733805247452405434104633195594741569641475494089989765670344848080094370376202118774862478333588577374992367160531604261726331274069676101478807896645210459081640406204711538598498950315153590097284310172002677380524714692426105478405209490364111018462715810899513729036115697515446363264186957097410191075781886122267513705681495204892287500755306966920294525865039862653192700386896783199607860882566281385698738249252384404943141972090726764324876853517152691063307319355699921266762164041330127252847285201962896297703888274102305481735263009712925359653161938659635874335475236080301897130695513238214924801534210203949057415566313605198885184373569452429494214722150163062191106758546386940636344501486526784348615528106465547069796001846012546890761529151166464678227017448660953634777626114623680629157955374128050415767398919000868535618110003445742063372299934368420610099177400184083184704595163849042118112789264457623473068909374960752007907436767102228170790803721731087771378716664926501184677799948148779147542519523947447463029546300266464208866010930548411475755186971724818019514908253047517894315615353167845593040477941093481485517909062986001437041470314106063462580947010992072279967321627501992679155640858660208497384881799144947601413162894179919167214313710353406180441276046241433726936722154536668558042964704510267870770192582560177088685722862814739589534413627700926701819572444359613257407393735112416999933067183383240503679242339854295395883266007114713841138414404118567505448108319874204019232497259985829009615622304661929181475955088961326454327159883759262601395946781384278495417099270204012157341941178544319216193291056837343353530131997597317244049794989967923030407879732610278849520216065663204896886891542009722312052348028460541832425421522824017264174655260747188191123905591763814520532944802907318608323210964607399169422368690169409870272718393262263829738105512760854015219207730856534183223362769347437141600908926196546946146693067678808702697693577534014316782618041399258462918007791075516638855610413594291359426052717319062017568731212569237871978556710431466774678457230011531689472009623208965653648765709810946633051700244808375962893701103497898319782259155967143385238609855505077919354921508612980187283339190804972013394194344587249883588082488030564110925586161023841660672820959804313539056879290456997000655596573432906979731783919342289927880077498883710909673926788368183531162837970884214073845161719348009051959456414901536691774468167530035386237755258016881157318318440239671369816878492114907209803642366002101944211581327627323893691667668179384135560267503987542829423507566548457199183605249333348413522542337259358083438501360799578906872805147464808340443437815085394739611167357990401574317480341521339331008341788457764552461439849075772365035180194093301277891221325548389368369203530429150924914973799327722628620095871347834229420366453035478716143643271366110278028834304160872018459232906245141715706035753667863737076309990904041930899096043887804312570615401959083020951891234652495162213624176372177586224518347587914069822735264915071488745558286218275042617104801561721300704208417437314416687727968959934307469510513936760320874720240042248706043408097326930527372799411300915973172734500290980450428765921783150149221509607695437811718795053127773813500775720913212316795454405086209771345052407655237468521900381168616855308853690953477296501758047814549620484851536971023866492203424080530548481535366884357189962637002002118625393394896405261536458350938750219540303284497370337495649140089177679221090798993512189590704333808316320878096556533409571536890159217239154128403668774562304882167613216804291637317918469572152832499306676153100891606007630548764259513692594907848518702393286860956551348138272464651474617778657609542936547288872653821245901073324411326631984517638415398046064057626915593832371795669910531919028979334712042668035569842126604788465724676602364753479275657017025513013626198785579585404157779565977728905655794517788669018354934921932820777638570979216694667448565784732350278388205722068012370126658024808764183773047980040548719838094942889753044127483798046552734173801624035996612078658736620713868162561137450930865978343193657226161045632565969908294628974394631412900199630427802769087302080060764981270798487413577832195989780786571575685069612026300303579974524383320478895877953373264129157943908217546275076766184220649591206361315506299664630190968188950919062854300477545877326942812464716292081297708497475034070905485321579488627815335333476122031008723329911048396975060967452459595832780490940072142274235306563187048777688836769661283656263041300643359036121153935886759312659370596408535490793214626721175192760265348407917304316263025612215182671682451272803092008103072212894966137459842493760303944990371939906202119044070469047373098209901259833813797204468344618401435941442263980006070882639539991815968310474177969673114711265012319532348172526910588528795938779230316919425630887105405456166134150479615448755193982033927573100130135868890512161082665380792951020896958980839645207831189373378570748354053463869297465918690180175114451611720738342582330639173711425183902545789622354352551587636367390021683089014333867152091581369755950937362544984689386926785258471979843441724555968499351991818607751020990136576799697335769309406495877973349835361915089874227259533779554478036892168026267621726468330134942999203994018164526158286054717487978304956125511377580251864326387010249387413083784724472771352017892034125984185920277801346832894168148751686483690534972811440775940141916553784940807663822525042594725178551448978549937962840400014051283280603825489343601016418126374937098334193083972311091665291811916693480762491112458657133168102926841247836206416256450327728869362322430942882738420872421175544371491949300258689224368161909283855308215449891923615874110463995002978228484329204147866893709116195177181655916128937369676632587232613001030631918530983719496920637175869069934898206412730236553594809298491150772339773602082804060048674826722444550556184750576619217875922527951121909434297383706661402353700552079132450013122185288464239741024345538730550267933933827480810043576728926687204974376951733676531006687777861187624305845254138694081957486179656425700252385696290203426640844016873988614113951664467885140403281748886850149384955497332911011353148686790739067300447902578877285991890105504721685509617976947974566867069384855977282024397924203751467892410950307130222204414868311536744062955745079417973172480054023050728319397790399885762136532745848124743558977655700877727353852275801247229335280763611663598241176843880285612208477295950408583002861825257416568397246626482960494913658378624676024840690530441360402230922563664772795225100155548532671347000964055869465034324905292059293615073684877024985834120623755197425331675609827546595046812118276487960726480703290168096242713951734193907887063805453920439020355882453263326636426267954930429850376567478681688415705365805689277668005836629192760155938363012000144895730394361445137283962453748563560086682847204160294638717053884119655263448080014030415197215635054623907945441459620889309617836140878112829073670332175325937246888660319519346216482800252743106252296578144630222882954777885979063105203514747299268553217799515685816880924260128386447749987176033268229438122209108952982518629798400338472196745320144950859282040582989938328120944608938279820069555844698297758232134861914349655854527191923548128814549341922833525576022292447950491711450022548429372306945284959684461130941351515127376787094044973287724788956673180104832546822698501399308434236788193589751745609518252675639752916919004044139356530893925473171080577346367029001499282657093628685127273842251784033017580471759121443655905277171567328424649578708365157976482594917025963415212841429414470198463702951329836266616257900565700558894947755582183320133180364002875882572185628699844145860032690793010233404937556170769404464943457865933651768671021734751513829146852249743153170169861232562258012027813727115144551048474780367177055075610917588677793673718156640693656647449112630795150263453778814793661759324491531877912872333742706039678871517387103567550210935857517294657115028289858381474563628593665190383131491910537341813482919374100739518951725554892738314783703906768554358367276747854764371097164478065066401597020123899522298660344115824083905205050211446792357601759492958471669294912360259545433494947770241210480502032308484586642746892312554791713568506459510232980312300624500732019495120464300679437469493879882388251415435522030519834196379988412319140618939014153088665309764493317724892701172941441033049586412766255452038138467733602200719127761025342698987533555900614002181352988158446069741000714603948390241100815347112443098744693223806094199876433406274699762268599921461557694529858772578899397142748793021256199337412592361784782095079762373055876329941659537165338233371356397366452125186692889788340419295746115088461710955081967734234793855146013159000055049582388060893135965679040347738350804420418541363064446698458623379193784815101348529291967025471381667791441643790151622222457848757839271273169700263768748418527798071071861806878529790190183571997049957610041639209430552118170296430464286879845132942671268366720813404486085101206912026675469593360035918793135518197214011192500366915171548346107133947538401747911369172392862057494446615732627651845891070152661579174048084924282781143996851095423954155981810217255980381507941135424491944280379732808863257833552550338386744523451320585209706229951381390510671552315356876886472052006198594749988298158019511362791573251604748402023704075763937507163967942534860621564131366759406697415618686109120073788992695508469855016429077853925030131432809672663835215339473440065535048035897169522189062723537898821785356769655746804110929697437914511497589856587897877145551205056217536431677434063631512536925107474427227908378616628568157912579280592054385261724704487194391528781607497914298201676759503479980488238925629186705125391259631102991354691583495243831266105901420959773429249555407625823280342702274779441097705416739207709139597460051708552404151680441860112921539611318379585148980323887845355155698840097137862638589221822240498642935090221167111481218194494187209070535880294728412326070186143740665576549622934226115611923797837274983655409733823676483932547948942583089012468614847163034478490733934341085323055133081446024789367468660159733140574064720283271756581071811118716232937598460960973012338248356841803619343259011360598501202515021324458673855509851575527248811206352292454264613406919495545757967606775711097026851970320462207589837104216806707579609237200102883392222148136861750020009976581129184883794117222290349041409493537587144281581040079013697263030245113560502507096734258799240881713827364073815426398365080873722660597886792843468120875613905314058604069763191359384958122587400529369265391233743468723857615010632708050757104154179238600637125620501681213623207228619243439711633914153102155942387554225994588606338070716472716113146118223358152496570067129886094448440166081612002963652925872829722346265847522583912751028963680729974294760932622288584131205013598655783501091352719368358581001115917002738786578601396037502929822013827845196290678785319106564996080443437358099139573586862574797099885294646309980196803402242262387662297772825832001118260841548511558321533441147961919001400080368153847233383276133682126960732258920611847500159287807255773847922213479925746935878012801423824241161696201004860333116699473488973883641892746034957788794792812152645377841592818919493530044506766602283237948561987509802794598235165759755369929408343483078108175978868671959273543121205190590188900974638018252622598466359057060702680206282437232991306120828301157416842882060689065013430348355940772603469085590630050382069472122833170442697039836993453891134233834817615102705321819925221735126461692335324818842835858705831392206568659079996129318043553116126699623403839995468966194016134896556592973489303268589855687104499782754063278980919904374216725970797351135892690379253304097980237150098755248387506543264775084703191756086176425322982767865152034348904917438598080481659431660210028020342330383457891100530407786263157616134997681079332289036611774944139374827551953490413772826555088681266653365757000789740341821433667702069487350719264026043634574161679548146269529948966535456677814069928206651825583450407190034342915294694929140454264143218673670598177869947153243687186073731183811437630587428010287106297500031738805847409864013377377229434117809811552958108316348658148641365145216319450545632948349324676384574889325716047656213779477133127614742376595273308414150155745580996234866830541685163459527259684483893474678053076408764719244055024550744992999799562093441065726648755419513915175269918314657592720609231199491493770618440700119786229020151561372238579449212594277307810113378646878368442099087424866274572015873178412951094962840136293111254932927589696420231119968463398953533028701601155868331990796473115417043499172911468192471956514873895385736561442298443303313212924054521130386231017074082408555088204814694658296933886664831367235619247781049329222532096234294014676231333668124941366043678275437711788079441595341340965316189507095422252972830685657289120271714613687613304161029460735836654704835400406608359793140460002900902636826502991791555685086521351199054881496906496855658976519358971503704267435589369538248265638728204985473021901891943990103228687956725254673313553213667130829982698209211078144651329208338594132050052319905685786954962977487159165633129524994994226140435478021204492716833204142592745519126748100313607077722837297949787212839900218324164722249774584713558128604019222270814494854742879924947847940955254989483550551414597738431534519896617738018486579193266099644206476795123317931928660289929725654045840717896316736609049345461292325368729868846229584541146728553031041429764449078759252993243641646805158553742108306585713100053806004882759094396757142750777588726226586465342583362326744698774727039887350857521182868066628200506762330270115940363369873526210252445620575354559959549246468620564987914457307422174928210377233218964150442383784325884232404020268312435318216242437445969093451605051235420448769959329314704041375394840943389399385519872151780556363275987418160413022198758517411358087531425526841525604247207789013022986049928475366940923065882028289509276231362735228376860761033237794087784680914430611537476212046608299300042507483041832320142939500581021506249058101055940618406017593389803148385671099255237970049267384242783104477851661633501964942860796561479308904764212135873824743940694980432355274700234374623715538193953550697769939532052341872666886498430113123857401567320242054298837973893588548383645804787989874160902942823636949425747283856767974058429293159666600799489875082433489118959020633419057889714927674407741868703188028262245148196147028510849964667449491147822414696790167533437802404768857007136120102744700206088576098714383872299235902392679046206158399932091815911187637508151303729200464473941445226241849613098148398060472518427456950833886160948198606543212571404400607531140310517726889148534830617603006246376577193910249535660032281489131043913048016810552752740989239659564235018378582887501786662809736461415759516245660219009820174055872334549020218252806970508351066576067522516921970215985162610394636381222986278488897829688244488847388420733250969643344582815616972963061581719979618414092788095257967814093290979993224209003362775190614567569608080112906315809033809472078097951214117770852314287873812879937619493034248509084153891379893403246465793859538455508560780315355190370130991389886079507356917213420611736999663940139122924172019535412238266909735192905619404777950821898773347289169407603114969352613632099581927309533537941891214133827528840197900632406554572067549532168493777331706649260819489971670654652836127665104254974150723232165926412817112766657241209741270821978028782985749631591232962665046246291774883588438343342989952770969040184199779923359000365034780894232614011800728572892080789513692114957017711968230618661848504566744995062472952537851603584551276863477034147300049351043472616908724413307303898423058297893840058232785998551183491232245257197818517568302781507216329817652973949265993816709107794080903629487651616437645824696149111004595605078057021744382652736240328197969288791980783705965123291578309260476290185393924179529539260721498154554537237502945535885546694673520539933128957026435806713360461953630926331895361105460560170160413778079284489375136826181328274516382421332654813466967660201620906135348781157943464427113513256821636665190974980274610282171440117516414223071793181017815855535488337027098057207831285269510365620368683411823020531239979193638930083584644193091463150555809121645005572640178520539869202280606014553200332119770819951208024139876172160682067842516283380845624387703019842522212071209170956837926296319682380965136319899989735580725915400640740208169247189415197993140150791679084852750435612092048934615332247142438878310304371042734008517514787593225862487665634098522139701388524278800322931779382895413328157411247637441397616703523936329310113375978041044135518121279645399697765938994969594094824576588967621970859450797885118233389029200968941681181106794547672622609237834756383557286953442248771144481147413229904490466264540238295610206324590226867041543708021480804041017012701076913672387433524481946772631616733435139080759469470972968480315991642784377995341950320185251392781679975904575252318989282022766114863521365977512857985811402904928769269038723490835612709046863360795544462805327679302659303062074532235556461396085663503066008698594149155833675761621316560657783716235981850902320878178985683066187729889509073412913255892961186435630048728268364991191706197606147290061190319265294437456972928874013695538124748369351217380587708934549491548545999587624143765813582095916485548201885597345290020409687063853380389109374969888043531002216315193776510513416346662752542769796482552272248482347164914033421904756108920566491958536115816212556759847279481807074574260117217558195660045849068535441020275123226429138483370169879869989054188981727083949651957122880159850887327401189721638766719339448637505982786077865026298961263760158904154401503538925616006627978842739128050220379778398642079398145837851304912476079761484223375963541370537875831758257475688101018258252953637545387733067619423417431765547399561171533072669495742537924967796375904952740339210352062011654958803506908103510202534887123362056508523559658666238857784304691859981005978295443819282893823327005540545348588651638722722986794311535361705971788644920304045623117953670473483874340942746754033620916259277904826194245077330590153846551080433929646058804498082472543054952135327283393014972827665586887722858501295321913174573643625809043264521278784853614471827524210082028873659545182797232305509601398086593411912273156038128241787369624458840485407612523120181354957986898944231623005921947228699400121457973891602544571301293214383303766154554225996045924874381764007241259965409541045706353927472722942145836903268469884588561112548862966623842233737891600772885588374199414353666689765420567634355158070028314330674785929521556402531825808121238669133843995497385628820842628166244077055324375215757941961580080549000538713078738747457603389538303847435343923983548904397916928317787040346070559591178139199110125535913385880676941874823150920454796177420286997966545840618470295652000307652460957465803359180144712179361838463773646291734812766777890912728134437490490497970280472378015266688623775649391826104164182871242285392136656201087458681712903078122590964708724514042881605645208875571557409121016450281756081528954260912849552784756789245795062696537599709079370617933521915358525498124163168483331196169874523920876663365041440705961255131821342186853676697338738029847705182591150797238787626756371010495282864595470363682912357785532859169696900908551538700009624665262482134870213212829202160982692629985454480249653413849065744390103294163657559335637188402862970245849729787695403602120386306270709382727896814533035427176498195105666114573277322103091754992637063856230887710113523848593017928154876729623961340320288907239083322520366158516720991412491505668144291259598069849112524509217393335311596723388299835074638376020080721812206650201696769557110662573346743603051447201118873808181747843705641804401952782649235744086561725625618368725273195624031788471133346980323215120955690630950246936753930145755765089639118530051826614930427619467517003540593692310730932155445489138575402341645350410268099462891366811835719423900651019710310247064757509814933803130537711808783211092919145301294812118580367207148875979341979166678423912532289812856042961227393334938141576378148665043468357561421032200764489137779477734020147756308162219182318186869020231195060215903863745850516886472823262089105763964520653372462236595166289472503384125333139787635484259821669420108393402014793724189614315242014028527636878990585980615434337560091504318828746896398401429698239054653325409290603800961362846908500750908229465594430494997485898577503136234663429914054254578899855943595431574270762564965865418894804109415593398551471684109027692608509575328722838041742528722262552379306858515880239978580038030605850145715174166847898194758478369505839638521887432341597175201326824805477388796789641272569866670687715960168566487745662681648572969410214122860287739180967788723452680413802584345639640553095292497134210976251517796826083281999475110186830217571911804857887789173389822562563627278668445472482590068281252471187507238329661069474991170863277417636722090297862410161302463850368397636288778649823549346684969836820713857115868413623629406492316544420076551263422135038933801360728146460067724307369261059643076927039242995064446660009907859113125284908287416108240627842032897401772718351023153114094021082103492807648751944410475475396625170721361383942837434835284491214977277193738199120359663970834446200797631654623831069390319706610119220355298007949300259053165931485495231812962071604022350572728069179670633829825248331520345290246427611088758782808678311278532592190910239928028993900439291815603914951463609555719667386932836825258214501580272903142858403868764568048257337048480455299549840428177778983315555029944831079027906925226697188171155572189893766475786665165772899195291458787422616445031443361323782501021092135899617450695704497619174274005283869619506751305593930338561687030961406660576708091775819680245648210909136069716346884697566305751022217921744903572792196959898135359487812584944347699074571293153669218630000376745537552772924864481558367594738491059400283185362240047969925308083174678248980743748941916392392702807057493238751758633230331224736418451157160313318422353926912945921827138447992662603615457456098541494458340948995368609235294086588301347674772147875884775583553645625430728668065530799961323333042003367403939296391890860869872539321317834185806601135464510691989180627599483954572612090365677582283381750616857746028249215310844511646591445642486496282963780147768138227283214537832436483468444057856606523558356679760671351368550515752670744952752548448384880564411332559995006936039730149041945629700556315244375890278142385961903037135067317868010045214565725035878892888392642660170518107854875938302557627069353362526515114685239901274078303071753913085498386207454949764220227375459594741224337140951965236513028270443195849935813587210556924769904668557582404068135435475578334166216071024541489302045591435485224348949589881866153239585517072859306140851777690999228268732318336327853173470224222690589593737600210570846107098566846858133562528624042783355350794661420034085458295130847843961528025796072266486249739220205892260507660066867476466966960287169330125889064738167382961453968685028298008786464725369370292099894276819345222478202734553310555117430808952959283435515511645125252100304081444519036207699339176577285089175948271666334407184954242909071209131060208445752476730854590433299949884926021544584966824908333490384327480184427948422369421848614024460991483586984152503258455198102497967876577406926325641680007535581138501478534298851971586338549481854024952222282480385286626461566968896875943457115474736799904702249379473191397333249241702072694010152886896006700122842424462620728605503538738428550764610927413786653445147502048465680343847700495249873044215499119953422695960898286481652567922239273394434998435396732607329326900707399653005498181490163327001519014005718460766100652407668478963825511088799328976537517923823280208153938031264089933834954482703999053022188993936125687514558667848761247506501789275965695787938145489547188302418453120485799174822072431677177482512833663401263506710039215532876432977774025316506473780938395769412110599051778686566633354538587814951475797200508376646389803771538774294504087712222978874117401569414051448374810976843595596831509479610522859127625714054036654063461988905198958260300168765108898209519261512511843777976418629532865693615558635263142695086406770094274952320628496719604307326961154452121602873084575611984562464562931139232092652789218391052192361570105972718864749093335694361507645998973264902138405657889250893987089990416825782242338903906939096885953344008004495575479809852884899460148510354887473540743272173080771570104793074642175830168586806110835961154147506908014313835159568433982269487801854382548821918961962371947488541133618496165409942055853698427641459960437460317547571671092712220904110919588253976881026621443669113473137611252351121904091239421891572218211137960216327836820530089491399637293183962379563299183746946358472809996048528327143849143782172421742075612787430524345352614793021172538588090524075853706639306853668177575015633019290806460146910649867736786172833851837051109947633050568456607735041506466022761070365076187280644212460101819970900921672773047211473758935161788203426199411042656681705898766389394392296297078606977484499237302738862616921653473955276592990415416909807420485405530801698363324122899475926734515697054867228328323071838029513211766172464828795351763304775354476791835575434707831647031123719804178763812614591176854458358281640347020832728492565983505780043675145110525537276081569662097526475202386683772150148191168115492712124600404455503847541706706757698871839540054791050511808009467591010272108565374371691389741969335660784599747694908312364948057875233887887471512153069347770333329426523574122195720482729792182215967939572139212480884258246651521816322115830619546589271288176780405944229103878213894379475677315107244593282570615060351916845479362932532389227844567776439885447648190862849457424767013223957168005261657163677480876438047569941516080887932730943210302994460083045714953167772968935336419184719690428275637090265515402594807264063128628922430152943302692192628632159407911256798981065598548012306905835202189099384162205813997839056701560335450694360030231601002888394447121345113790523125858229555520084264075371559832960744906430824961215635694042910216456976458510651357219990306935476390237716892213662938220995049035976274331710985164440175498344170459563924257098530460083317444525493014968362464778903513379514477693858534355685698387845466310916460123700850774376185255208834000908334105359345692991582650045589478623538938286644082206748625224078833887084483434582073156877859696804382657649041451929130330887177050804515249737505857943236657773810951239387595316997898590310322340674216243004051374525768125381257237290714099233739960660203934005369209023264535304959739072019917283742998102119721348437774744826579091886060800129762530363660939181399389357728010263961940552230202707033900227948354199820230830916060821960860178369586698070174909422442231297832746855179242952798644988445250293205525742904796613422116451576732922499415553941190237777386747608353718276910194929281354817099126441483023505535043600247951961456684071679174511113141052472622473646034243642219104855588005530858132604611799084290432902220436163250508795982725075659729514569923151705896301750091896298761005450284605091718248097675818865110701728601561854633393995938717686105724150318945468822272758671779414844665242785721153566298156502625577523817212553925357703057316710744376518023521441614684162149370338328229817587590106256863345016980726919196863089434647820596880404311764743728037851890090982239762680602336353510577156232383407844033698251665737226571389542112187091782198845846118253020865460333680354450544404570153240733520226568469162422764923883953657609998214561314049072341390746246133918516883884607080986494711913334813193607868846530258308309052677368474805813260707937424489403905121502489105363927988191464267322450742051147030259891172896032509201072791166844086364411795864391211426016684772304746850647703683852850063681297533569268303802590675000086035271951221975377003418113255166910214865985115605434683624990085885507196156809288014019033385721485673467383984468477913772648712997061095136548322116002115688401700734842932140332035895483571736411216115321087667050977228182926629646617732057030930625547998615255125501010635205193148886969761319349198256744892963797825116266272507658162714626493806466867007539040593321018424236380147676247747055414740418708272063943878760786269937234807617226054068994171559802031709363998416507578963648836823541687290032836303813778768859503519726680998333333592429965396826252418251483868816055214138826444791834518087415627446489707554861854508160793903120997808220789546510561446257256354433851718127303713857661003811507934986125795124978248613572464937230235749788651015639600370665620413746034848697181653213354685139477895083526696922396082910992560183329451846956461453846682511835442963486652947260781808493813316810929324074893562341380936910009388705591284625083732338824318809766739905294484456802007648949014426531264795161545678872719184290884606598994244029530144868435503985791019386672213463277032457018501623979060118294490097375983479862687536945073891528220199909940767443493775432505052938762217600296757449864916035864527327469983334680450960403914499797616260441116293131529577334830102375042389637676316962685247937627173726868898221747029491422723858291741863896674058209047422696655775887572814292973018055437888388950999816755992815593947630372019324718227158478454761730250194154742013444085043945694546859953341804738120546834309447769490851225779690898222010991797966712827745091422433974169761537616831343899057305881210734285211179202635333102533241705234309406405256622525972653247198942688224494408823589806644120526148152967069126805123936441654158277028131155801125176610021275063448112722621799684297749892105693562342456910108251007667437763730733317913966662361599356369727519219905521503997208819722230407255435882426979930266987380393609109874638807942753883554126955154719904704538504171672937595050120366880971127726439742019683711791931057615012049041482637833396375567871705281210750363581085822994882827144590552786276307325201749552220025479044771288937973186851173222403424030949894168199930284269051635751034344485058398432567116894362410266352046366695297634673090774781703742522699575728862052359848636770233739956180233816561891915851261038772410330500910617725674443891137183714041706971451542537373058476571039862721073210293498962282138203014715021814592225140489585745504502037283193483890998820813436003792640393036098884686942197033706883651915644163994701846824567291092562048673172772524428466013657113323698141919959673853960611400655985430018045228922411847717953646471711827972451336947483331293081514523160243379895066694660016920025618665879123701394513752540096681346884430710029706330071911897244366735005029174932071137100804608856392764339466535837302412844785405149205296439327926108344883967918762823681871667575675906764400092847916083086772524209867619139666248677672973014819414865321156474425748330607997041530574857463623712011509854912315586729291919375178728346269971079780394160400008292057430694714906594111332264164114690941415530639539432893372430110555650394122292527570613860345028737322170841367177353646815961200491354107760938603939373935196560256305332939035793304207433803371778488776902094938411359797807121115947748568465568183051107460228429557132550577397337759232917339777195606554127426500052290614602392975143286952793933197045898297104126016872961022996140915941843380354519656688853004524819698179711233750365945154854059642565740559097574807079922661305034783856520415936404852842091578907729146669129839410499565575237136238085404939246285343716181100248069421309299650983027003878507868957916725034377344265080881882286253091353666278372478432361463275965889514653538642408555923344091880596640688192778020178553116305252014338768407199261848110688166114787866058856472749573833428407946918149938037799520376751437536206358769152700452970075889622181597616735902819813667479114731024720705907456337585022630856925232646779517928307908868796576525088504896209988401116691487457870394096642599047016937102607080595063097260523340010607211401549676807364821473748891403478495436249290060373335826533387307458915155087997999582792795784287443983232988938251217116915940725029652980695484258160735906664872817499518282656189228794100019165369317190103242658581205699352682198411998676991536647693483698221253740587131806503429324827135605180163011432331905149018621450322376977969570855635337972303376794921036995094315243796303403182778857472130396345378672817809137907451309790545653123554802410181746403695739814194076881719505501139160616363890029020351409673626155991838901897530231618087440712814846774807489755086930927262124858397752355051168912691032471105592940043530348282628141836886075482146728960302178615137288914450752842631472108397274046087731547248649366810415333554701886996055554102477970210710762814693883651898829575280131383545051492710442850083964136487228796806383130643929032861265824931702930886034329852035066232845763009519086564884525700258254482292521534966813779290366153469547748242584585475889366869182987804935138732009050714487735899072337255713284584225116035055561253587679271657115110681459172890365858618482839567965140748591807457061180620706681364522155059993230695198751417195163143380964792392732576711477888689537184004262898905456882065154358717858775991026082067390794721027613169982320395065284236453831688269480115928581356867951515722569134877597779866145576812210215334684482272150228925516406021480526053925031215893525657817334335892422043931314191513101089212333068400338055639647919606318239936529722915657910264263096720663266799355926376299533958819664357673835114423879055579828577909352187134145517818739309622300068032896894415413203119850409875469727887552626388291302360034198695910736675437062442642904201867427214128750904898326044586099826561873809309208297138812751907403316474158109480830555929303947534111017200738269281398585964227569855518087820212822653614195044462256507916419919643957831343108654099500218239259257357952335069537708595963084675131653765910632467424050031856062984225680038761984914137541915184840966081371437693510446743671329603750998307073611419211378776898304660633246543551541257483766654452766907653978287647238521602555970149108375595047154148677063213695108522954226575011309460848011622423361502418365203993883804346777000176906704641846946402139004179810653756310485697118486188062408364254115169405691930598655219937893328814232710678829447460929245401029264268799206036840509921495324505675410211773380699275150081301388686720966526416540775250365206345827701070914449074383914460768977094667307838567951434450367612670175422731903114424089937520637584869854431292564014438716824803091769062219130545598119155024812615462741284895145331329466788791276540780338675317145898712226606862222441648139466035642926217698917871013187603751630873725529817736030223523582107693820783875765680825895367168433447364188109161272737767897948778312608971156172222232432265013391331120668914556541477742340381259616074256309946799828552437267701411184987821247994346144256137062633267975648023771543334758313295040607285735517870037204564152820375125519741503891889162670506898695506062201243500462180082009770618704185824654990771248179304562425375303205898411918986720433940656142990343877591007465152352504854530115525863872819408313406385529889769627821255429765871659952325853004829841940420136575062703628201558949303883428542044774492304115489543206516367864727824406868494715107212019186814719494571154215801187042354605486593495425712558608980218318639336511715736939134456201517190493026843963036139225388287579968178588996238293928763536369768996125668716193590548039806956314795446370173086418785264524473599211586690540847469368051335096149563073838304115058159311990553253273600020660562973116304222922048491324273070239407421775228216928743302854520968321957086090263975238844918856450470820761870947982092367128759031018738448361418889286028070763143936923325771084741497727375253372253188108391922514188780732877325722255130079680963919650749539641130700271333561135476854806191648945841237010636312030543669689285461560904111570571122076632792063227201385540850390669307954817718354760050882910235827793723472112825089804566278835042360887461328629104841317626406935245835471440808287028983049776516001678826128353597773943346111251029750995081172411786287345971394913634659088458150849973162449540673236738308830432678364530146359822202500256936070092029541263918886005927637222198155197022745873751065026313219589159506899843083735831338691094651051353514900862155304854008282492499069248392675380771979449109517253031070678750607570105025319721928827089476569302712087176016142979937269472066647037592637099628705015125568873199119615618341700486749341264134025293411522464088518653641455113743163374799861780201911443895678794849983347428509908263424884133376974735842518236570650282590439078974300683451969741925288596804687371009242159852422215847156286287816516673522805853011020681527468338554323148655138591320380853952162905233033417684380852439337980163346327266627028668567898194445441787303177136906015522506896071757475289792311671971478625028643745210970353101351671873543435205295257614936057369192365233247670415977743825055922942940787870901489493746897527070281822965196816503662370363361331764026004988259683847191364741117481704090008304333824265635692458110219096980528046889392046846431747088649900372251277153158427087475434985250199264158817190316577349848933451949426653228318712567565692639678135356006213956280705127313966111333059677821622705944494478888570184251180336380477389096668211539840498247370045337883051174123117586122528841980424387302665927210976987586942964628347661034755929688185889892342675340756046314803738133743298111112449530734653701261397117061027790575522659596809459504903638884108620318185528954346198557806648318776869723414812093555971019363298468282350529641774655029762954567462092132327710264464517641183288461534173647829201634792547664476578659223223782967096251364678237249743638851091957122537989896243437774480369719138897600325619108333517671325975807407946012336305319661477683468215032035414680753603716857156732113178549215640270120635530362720432095640215710846512877568045166850274447752828109299544545479992079399804805172673232581962869070779483717574135602810690977217483767843736991212195299608859915441542075002772774750039636869864194056967911688435007001643432370358052696919808573988199148588308341528597482690472455603766544445787116385145740360183509842784272678300010917118439511015252481572500513630521333546953850193773986735924773351680274286482658166148183208815242175562967661429318533478906321916802160818510873663541310049703685111465100617892515760766830914728288411480102510110908199116079627494537168525294977543042260787322343625739057891930853713564028982974803365142506008164078611586590840813701745289445455734735933219378280903750499253598711069869217815844375516678031307423432167814749463591960229253350244765396630718582206304598214954778260043606089545352163168073100618356876502084079314571700811070389636392453504967942327334522851172917528551686925699981162143148992181780057499454853409664570542368737136434116930805179647770887499344123408049566480937000382064386591431778069282849373500561524388659906510349313009987870424076982664222488216752507012004302665932290699875786464328272575211820019325177337280403103417010981820036969417107787569522396742146350185758734637335877914651064392206440709370081060203793423310403702327842243628871671844629522223491037274444530480787268163429751146447397843294919844435759552952761406702926076752631121941543069732372442607265211507247114564173787307856133426871274449794669287678180244230412066112386350658627926328289949952238533401359263742483981635942560258088277017511531798504788165661504983723714247934599211191380989763298673856919824780690926021593843304287491805939850368619101170303661736408338598923450625151415191559741902384167352390659610509682718136042304868488118791874351298913456317171985445209833806746170175458131154281278888685548180556354670083144994660802675818842158977844260474782326711185808504661482168711628269831951985694212245184988592289842851354403078564624535178216804073954648201087091502104844186531977912312752591078397498253697436125712496157758761591669864537293920764597146683292844685038497646121509677115083698056398137630377960156576327938194566131303204782250769918745962523529709423661374931367256376577170156887374752883216460381802949103101191359272883784290775444246806609612723600409698276444957291611636847151177875494757308556558432559853824231394906502384138084315449498278521798910665755375330189458266678824254178627590682593565513467182122398065639240204243983480285792128459172145315285982227949043433335242356104644456791471583195791862968684421864808301163389008547710344291211894525906957928536339585288814580166177245457982919782833907182646361269330303369367328181898357698843700543286691675840799376686607338335842582470941931792258577714756551438439368821532447810197115811326476076226008117550945378587782570355588988221329086786550213309652166946244756111448146221793122254930681323981341850509406505554698367507565876793528057787900143790530899318648821532861246655758968519037843281377378891362571338348250719118486632185339532603010036447701968840090008701929469142801206249093236533076905611580460560814727134879259564100179789213855466585629279527521738996253959242610748050745149668729150139297633411014939886499042054365539545479835139995388668243776833747058671100469851750301929968030035358316692846921513108927691878373767636937096183471096923088521945179433070557123676281870439806206869055895462481445659122874938921627384916999239619771351583607749724395078875970883406175039409241339634789366297662717215803781961591214699672133157820754059226171815575609588421674576729815437811874268246001597038167494204534169074012524815351132769819650406727614910676379070132344946725313777468802450590715276248626755926536008675652627840754641524030553752878187578293027950245487100311314123997608651585434934359343395127996804071157779390898408312512363558438113405328851556516019487252727838784915338609896112697447917028092456375138731637550406235241439864968242459624431471696477695229156214116144421305211762351431862255851091978005277789370481181316382531374586125304703309890765010705061856632480078217684555809739574526269500114799537771641047674418740756780405046617307999299473509050794625493832533989176995014863944032770563304531372643392162238234524146656852930140909207132159431567476151757863659711848020036500762299658525588315380673992537898405940919935509181925011208663327773124135185965690246284039899314672110756501161231780482924517662143275135913863685663494359779239771026488910575254753677191550521862381017978768656211158597517173886602082209655959693200060519327202120057641243687836670504279455694280352773434660503801607467174807152251744368321815723915996158242396006689317239708976927396175860271613708214000365471603836464550069064186347696166184491500038068997821801196639261189027811198056351932957892152814202080041478592498697488625861614026268690088943152547854265325017814434312369529824761731407083775227725224837125496032288034394276538155765301127541723368170872022666269718117200016013027156907040185764912859461165773256172363382798822205321293680473349958057045747396008803981412733948267200375766660235358658323030651207158312754109590938588345508235344309070993865911109914232431645425579767739534566756307626542376764448202791412349642591134830162912539263658572826707806922880032479355707443744818779514251002816184155885188882944357811219473418266741853243822719263426132766151263000642454774644645631332799990323405606920925259680724859493316793487756804376222492349216388330345044441294077016810760148576340561983266017915033715637315830676778802609446484998803866061751395029472411162500495800186370152612176229690241961550472291741589514915351997568978622731946830639519698577828229545042042521378507164407928900607471069424573877173998041238328892193096291978003532345620342631432250794508314944102952106965830345261274831859773373382638741379270157897310778456063334858290828187288185039956034561846597748469584982799171051324636246560485971592933601284086280996975605217081378483533485287257748347950286779503576248778741485996851470523705441695327755992704144382463273307359322545942912405139549256769360187452421010545198888878799298038245665319015380936288665162170468157687337743201382610851067234106330622155841556583893793272097384981946431615720783840713719065547716937872251521484120344974871483599256451162228126706759565907450194314015740905803226127321181202000911534117677143008672748061380489460965703549303934260656726994461807275024104666194614896256961155949712051094704170120123804952891055396570051055478246900422000522328079991739653952166565418416787245792851234392864413540850125332827729693346042402518774126951950533585758884260683391102792461848682148946586902853036459625547292958333321619722339558727049798647277635431377731806364761693881827170510328908922618706218952016608980684820333800426880296609585482790702816612140433616563354034027143912791843945467296185900213420634237665500551821624356823733367417118261048081230357815917476640114458287890183724450490481952468921076737190015042264982225199999004930730636484403595788929186708337625879789260389427562523126480597744946860156154202049749161276157376168081670388011650295755944084450832056501568628685043650654445818808630933072250381023814088155338623724431248952950445527778319711886937268535343370755376716115100228891152265232231498820269518599749859515659653518948512101148369216181434644545658873852897484421977028721069063699439729792024191131304899215742623337480456097614267490345188941750266707971679290656279785376417697844585725957771276504466340498098049991062984628214479575639714261638350171304078548498498264956264638461656393465079488027660574214208985396442348821713517936425072418748403306892404534598859761306757045280665669869486959355968889123831187641842851521397612160843962512521001280204367551984939026166098748085866615692538389255834812632667449574256532249678507535571693896950311565026069439659685208708009089779118989203269829128856738117344420199246045084546885752259566997313023028786956169367513948902719038695368743581768354249346933974705539134106977877484450596002187876508468460941326589967176603388981783852929153620474313903533006350200057238390087809607003743283252340107936753839134647579732077054030504213823433259968650645249972631932323805975111495197266748119074627941049262423220876277283443087441903669031755854836410951110056905589993831586095487336920756950796597095699095529882874901623023186368981093018926487348213205541338535121012948580799265149746361596073276950526893666465827279794096775117737608686138014902110552268444129393252104157796068960796262417889262443362786348054651490743381141236103956739786179783999845158684798765940366080587526804785537552491823160354749278704439510139429669074875579885073106880021483665204091237823774509322927021247549600325087997310260335661818396502289161818040536386885589650278728425005565159483069545175857924854012899386899202026239426311234975018119910202530873872091994577146004983457092544034692560104100264433819065568087314715576079555031688204958049944185736448800100073976172523318492863544665837819361379132335113093350596237603630543686870804099872176131625831322957395353055166144937783103718790681084326710363893692904026424315475621789536822707090195476766218565903463390947988608272500941786552583693849502665201057833061450850889509770444869158597729733944745560633535879703307802891463741114429526004614938648877937268678969799743973994040803022414708392075628469021540671871246488512809343593468874635475186875852163578769883494535592207258628186961282543601499203422748776126369933795276389752324238045291250297322462258469666551959703921363077293243660779782762850999087605946750356481610113377435765431773080665076912297397382651318479048755467565020648269640849122801311482426462465531954130918327554335220580185434622380139509232370766092581951629324202297183012505851921149067865377086930639793168184375532837941136478667525380472431683684262109829558018714649753825171224400831902953425593363406648777233581453685336310571500120899777234026806525805610485452611897898610984711691574553686920422908926427579011143620156578642417516199873510949850156967357056280328306433868887211444211199754227901554690193219018196614743247070307729769922146671393577417037637191231339426708007468387330768272195049408281540098713841503673300428045842057415646826386478584548381615439234229751159583376267444562987996912736253698915060185717187412855509716673628765906332267048399337759820132615861240049532648550854872538003705302847797981107543240731540562129846681843646524879956322116880938602584639193837090459422668894316236004597054401472578797068151889257405471993780256553389243740805462520772239934878468000945389554148306865435829629965086466472324321094799426335532146387022510446079570326381828578486996917151301629370597721480884207041237307956476874723552101676987046005442959645188556457240011263745101277362201195783230367158920534492516788981589001294950200528066215714648611403874995868527578123368105677787469358792495022588143932215649317259854621587103030305254990004258631531561397157145156746113789338665970062479422591381914372313143207944075679188701642581780185003957729222135696602701281169958285493186076395828272262280621766008791392310914164573683767536391132785864156709760852725573630327399772042778069670142037480007705877102581818130096664302585111094219037428678775639557454686891933479275213975124683276218256935892929552570183100926825528480998176279182773555569375552109633236753108669557867017299140114784018279415681879677324851395910495953052140201360125884495333671090063677603205022120913052757216821834535300385638585725649291153532858594460342412128160439167921854311969281439001527744688138115331631638061015652693471435934771680115043257094795212405212314019421407429780420584023380985943094047787056993607051289559915646970832705556705145211703357256861703701590177083480776933758614033880435885528183150075825245029484053404058110607107441701375972379494603792622573935037809705185269615329766867730885510683213229639398712201486071352861233651177109227947267587879908865945519504290070655435401654528091692181530797439891048532533077275576549833906471304451703050424254842128233926908375385397729572316150768239924123172764793934592937254760366096519216438116400215253883445098375901062851412021242436683406059864081462070891040513127487860627257116823812257031343450934394982495921642023988666153127902971275026568610686340154037963431658468015460553344441786681374601116882762646260126501018680980947798295740423173499878423733206835866581654452594072359881425997859297537191203195508167961091036410813126207863142867623380609374101941997115087862272005459266461202074602961676531312012343458597777279002043497056752738577265433532230948130726953630337042841304970856968065682516882570337048730395379085864105861754324769978919628966940719308131432823593473242436209195923025477819270622398773328561349251499036050170396396926260896544054157048097499855810249466745580998460478790335243743048965486500708667119336881160971839626212856076566802390807366959800089712018820760365962872540225416465666247491767359426271475296166668602984746777940819052872516022403579503786887296828111830446573932213781819038705179179865649040073312882863828997170302187527419421776610888163033005728297814183197444444537427959538958700075748563458943902171488099694905924990473799214925532458432456576893409916803799595602854337959805175034054964978202818825205812247721003450280461348919829787607488578556513390930569505799444407713856882796947038901961548696198816815529714543798311049458771284846172773721197934404556684683506229092828097613052207843317508129204115481523888776857569533989992013610354968029707929735670657525775868200937019311514697759390605898849571300990205520728180806524274678457151193585206444278928274486275680647000284040885392376047802398103917634380876718585895730540729826893201694785170308753766214348284372427478111671151836962063616009324835657405473093369599030512148753477492909270250712300308263045369454240048766325833114227401616676796518276573536534643567038303942785207721218960611755303344242495755802009437613675083765057076023951703752842786826961298457547254045577057801085114244349563264227143451106882200134165119462193363099294154745261259167106352200561881328427789910409600573079118895454872315002783136759674927866502451240245433756577866369788446037855803637985161507301653525302565964555396613600054541381894818931223855260579166379005790660237688092153833377944408599994375772179610854702456975006821964909631519333198094339761586618634323579212233013842937196018602770968574944912495554153143493559710763602783224823276043449353813514730639168858933139722562423660973158193891125598525449066202140322680372968092911020775979316102596951130177404939195059541621943223317702496145450974358530374006790537520238272599435839222597695920096940705069755891775684150511509933868704157225382568796279630553306186175553579245876418325382146434716073233578264766753656172283039137569963268587694078914190885182330543025896490701875132373497200348998329541636957051722344111650671794059069455824176223952603978997354654107016172382015689466633096921333974161764794384507640457844723364081321724591040935081262064606857512399603960517968305705895620182746887151975693422578323852815068600398866591402355926732642168503466328479658325047659628422498804589833026447947328706854346481630848722546543998441513068559152903129817270144204884120183742189970672760510707169850312308003489258968469301771820784095401727582861911847288654780160026743307177985679652037067492380669000123354661986178576834994259179921668766196444462687136994315453373509549876305415109892744249350395284317710235919097126423102703429646301174529272806179275430452591253179363782026346670257505998440955879743002280541943237125605262587090024183226628527974863553499421141761214582270291976716288150632441373527455502174308152687378862707453235253511172613854651463484073877423107796883001768966900287507712107409315218133581674126287496236340652308848035464235511120289527474153307540569485021982356132390030643518943814652480142231482875174076031355592129432394292318607528490960770916049336323109527784363058971009072280276989629624391408059554128973276453781987890609606652733027865903034766615305541043626203687309610491092810026647758688900258208969653453277634102959088660332037856988007851981383151236641416777157832057794202520848836693121946790250722833456582657784058090024486734571942047392983571024015494330921145298398845195884398582198816248057653676915651361473007930752404135517501057229188379144846721631582690764347236171957569157757634017148876638956363514759308568364746198526667106542603911404151153644636143660180018707847193144057134188464148990434765208282800742085041196549323389695551170851948019727692083434050760150504132544313522131615507956866971746408283764518024256859532201985619899322324706980680064863551933040134815846414192876240394720189421485271352681535674025291034051041899631044803205149419123325738803298555725414352726633157711188131001955496459300537126557274829599479995445482601085174486742032817446785407779599850859245367994931301569737014754769779146260229604002148939766812659518124622767718975497548980470501839691800823982032710531557037830806354193695014402791414680388102327079589616184309438570104291599044209301447002002765420426400878702886168850424334311207607882667482442160079898028805021041012064670298899158570027548614285902423392733773870648292185176049660968593386894317945443612128203766926545534049957456219200416178241128029695393870535578937165932415810169576544537368444692273268048577434219924345463455288507845100341975465484843455347980991559666514069770476505898763588203413344646463302173235612651379983513454516256432415470173110759415489685863882660356899068731102062695008091730409630482032373214156156180714133029639247584285893230397994560670894187587722088508598376731168003441352321344322890621227153430976274756037076747772729548651228932765350980481907820969211253835578020587352926837216521195659093553768402350071061806670645672299985258923790538150614008780092812330656816483198880788782696956207473071581055959571129177977966487105894854262214357053307959176560051854768230910084088463799546403508171735449507272827539195198001656808126266456736497505276566553626195866139749166005340858547279384143467448935905653955270461835699770160289642480438055901012144670791608850142720853925950914716158402428553912489126382710586201497482707345951640880420906861824539090891324527412711773611736253933179883384098121113632631869782076178651860926668651603411303628225725434065528684638190529389039248180761177745357992573498199063172137556444529353655173328876235066121191945988818533599787598295267070389324762453623831996001700092680540254653310843850132678435977525359820317365296365161370667500147066660765942079148701469867561403065558128128115483399177261237497793145096919343299348475150703302828456003722556571398573114731244888921143785053144226121357155816708132295994432019039257545961782861314838976885887784756465895873202922115639588139845909575759219210599135597311871241263084372531491990827724372171640465150805032297778043176417389123757790864024105190788575289061731824947767389029361898526552754483292341123480269310278467544322082690942336157477526247104914655866776964544445026637840016090031712969228541633543247671505177609826764603868323115158895168201851224701641388313123179171468754523125351262567745364953303093282177375754262467407318755833817979516045846155069609219896380416897251894641300946677548749450657559963012588781345189015019291479911241570871174434837804160130866023271352337317308266831270927059645324356530716905372077363110525216804130483781278117345554295642811144772873406287040137978768752579112130925577040077043515693328378238735866700260128192067200597113655783327283650250006272745304044453771796964021027800884185911748198862996131678178047183455142206962800768104903298500274078892182951035074704178463970506687846720068784025647854014456277867041168731693159511640090591659187169599436337462765834158114395390390661978549748403583395346731885219364159786670845869250225571197060280516155588748746894972999739969028827476114464662363886195007079782447261108746948113354522073301049332034772821724324875955342114587208936574616521542682217303680972904794115309714375833173860308017077374837915072910811783833732199201951664776307602857396663344091598762424259814855152525590944708601375119989010969237431388463956583164434873832441464626830667629921378913398069870949862629603571504108705773822817047143562585437043356706986323174331339388161818090615903035098594277782301157729841586009381088101894974945566239527567322434716209088133398080669542054128919637177687204247791430862004371809221218638168678654633635947825395588708996619155271583510350452761673130573529331999717845622628744929986214184900980317574052144171813680556944698217436741236667667832281948925603321081742915444333323488785622652317122890578019625466493029370072393646561096719678940577510200545953789789277934999334089272628376980670865768300909463397450186105651833310605408461953307698835155960604548516983729314208550241248039527494689054067936679624131029281600786569574316782213022217642707078282561645468288345440016465520949851718468319798421365590552144728505486238762725047607870361852342663730434515207071458591495045657424217407485921439428114774580047938376415181232372710840985254358374400405679812397399268053543113185877391456600312804192075688531174571435374586645775834631773043100590518241563692113563037158264311940967556263857932946835107650506890603693380082460907821799081964309449776519272419394916193032385416497301353020983258531276568533426653047180627005944228421921152253596930660188998141238521397652476407054251808995732936882477766131612599894369893509757596651236331490718811941478520226164383603699114473427943142159395739156297758363848237173679512488102642902399934125756012869099298537165031003949210925187561132210794092506447669462891048413268050509141367535390961427675128502897462475831431036369889679797586076613555667583213111861246531342880760055310197574547286346896397398817463197604045627555790545861652072168365277828238026843070598702254798908443621398321390927407755179622744177326528750889408800032063926475762532482797345406392279582323740728798987978274511774099769781082634537353948768776082722738162386607195339853649499573490257142352194743905158772455801037498857978542730767549945947089041445711877907576709348930171733534458917732564879888740569617147532369547433753528323889208016105114107890055453503089336796869563285356100314057145699264404120775104709118056190482364915744061943083224514226624894986343879794020748028788141968391404560975745072502776849766751050702411695716124596995152095661151827413927350381359349428259972282726544503367566093464789663203428329726005390197847957110412896173011361316109029599114935649748460454941050368631606840817376427764630666761693115916505081891448813459044526310345642438930756256272715397988859063814985126771697974724717706151334225526050117213757161334109269993470759885061916560601208891824498821110109309853094297521355082528395432833252968017278269288803951799501998643029986773165875596817260497273747373137040482314002751438688074040619534875102640912686380432975286757084677641383729584012593544854271954210124040539807155298906720152103754389816397636432426632317181539168922613364140897146155508440870785615780405079341182172728471446450520392606505505020405613890638516319981074237712696831153341940056152554031772439325660292652137399648671148986742450270714682147334430267339070505087302787831722088479821419501438158594770290085868513560609576128181350390496731657858147057304682802782606876636136522755260978163121029011790181018673780876783725240020969825530817954148629259889187629121551199760761071778274863137243947316172877157164776716449099052433848499494097193700806857177458728061714803927306174702915844258115953793219724268817848807955799955409327992299364773439359879802658111186467390087290097189305058310474879464313516304477218422446463962575570209020376525020582071853747614454038390458832963838590964794298149267129047957750561858484589147876405570249350293737826974908015961257187822928959519650521334509799281591290662748171889093131432966650945152072666754210615471930941762679081629166593418187657801878799980269850770581145115271866539582803481766155291305565496125565833722233518497571548760065248575147192248559768681229772257326420217911334454235939499204637590682442172905166420209317146971429250846265873026004740046047026143201269423831917795701075025552454667110589438808336332630352642220898880644402202178323396420805523829945336649827286762782294639893607048827611159843134860847407616152757937131149570520184510529189239436747153865038099923423383172107195662052054961535640242831396370495524516944680348316123151161623254479754073610556456565229210890708221350710928404581828365797003528252310401225538068587073348853925035608883987967838463617126339122979260236864038052339341112141795983427676729632208087791516356883017345061527211333859863366149989291943976625103967485487863991951439952832871217115465018705586442259688644334315344635113018670267103572502211966696009159128636392008657233535630999606249614163443186160556343897093090248109143775920572996669335993756979592599346832833314963935253306876317829967575527421380828558731742192911822620013071468110441822616168119609909897510899901792463391115360524147598862445071549805935479170845289424021079100653044206364923805856118091978033151468624138050629705116467729794215854038239450494803523422749515668992463012997746866519817910209561104314016544984382149720806669733365527886461169460707527256351512150748113024116491082088116118540120801946205124490366552910881452082790358358067232119326108899252982890198057272512733396002777041163319005892581476030284212672862533605719200823743112066580802281619557684359157286769717138349704161932019917971201535789111891743974696092625375564433064291312450022940231956853989531752601388308497184516508096395718711122818451690749872980879192039143195742468622804301919052488889903182857067502100637213339599267000138724047541889417839985461394238873516540915425111759014037893039447243500210023780355057436901052486684435013308460180434512423868757021292986386860461619912410499060552379543103296734430291304972051820510822505118744944310908452777756882721634140542907808405694273147762766379473622325409658812642221992524118321708355757922202093478350011989149455421632264864341445113547080866057488569836065521486883296146288820412068903968807561146889574473428893406098370074477189670883647477553038349966215499398430723573022941383213530528006956809371508695434557359857139922066370779587718038544966027072464447554659849673717589728271150484964870741343813527469612995275526403437490755360356440582812445076660143112727576511321380850914627265184694521767909133753385679060061379999105037215835233880440383340883389969222342965291304561393849319771144971791472258791725583927017895267563517039854588508349259303122217511021835369762237160352235301990952270196691332367846108865791035989828857697981874638568275357772414790729915325827558626096252729067137812754006854376986762870561797938607798687698331730774268592412157330911616668892515899550002640912901816718903465259054194375421911742596980009948509167668177069088642167549515948671459166110725082851258322169224954424757855834002599048336647159498203884025590589629876583619682660190562261947299230345364744555135230512336415242311981912112513404695560352866602801758397755212380608452096438375313630052879363567188406690082771730795624138685567256218929009660930155189212677280326875955992064111438095729767651408881626479876514307651258338175817709601079744298571394353562689729232715828210913894551831869300377410486819767102451333890389527950890888065094719694138057270147471571636477043488772352879540472462766619433262333808711914657988047970199999294136896200119658573024657499361773265793891907957887766695034138592131687338877080286305930433203017957684240345965235964936917971099171077681817892809751397796373419754187538477061256994190199052579497015795727180157961424704211100877519876431112052026640739371713466843624297609507801660520633134453448207669595352736266557356351939601364656073403289968244834690313278196147421773955418849355451659209354036118111679485093820770516284435147789874389995946760596430327718536815253144066429588717435232462523432171586975268990853752182635196080174735394885348149516477630095747604993495836440288236128572635929626119832904674323644941791265388586644330511219611905172006711692691822878303827823555267590650325134949441801710078842579792567510626371182538063973429821119201916604208331388871233511287706694153393835210300840717891763965437313751163942595750144211046727906393739289229258847333133494485784720904291385297002440691805601850605038845768684077553916112292873064977991225037149270436939569113866961632401360617393826752687463668429584033133446525146142000427741273275625100073507658753478933464102455971446754409496238106140200300459841669369343379466969866678903537808610300412562770765598753952544059265958808365188415437441005569861621695934856996418652765202875764047753848900495692399186941405807197561488643261995604544975342310135493270973063251289923163960995099493194587255234568238315322912571569991672170570663890531579845540437975781867760467334829580625836237929254969424939494012317332084082794996776914507348151433852842128875586441452777208734937620733911636873301067517738153132353445783304407891479531825638023505060276440796782391101167647028622988357276792025117668216216190838066669293948328924553575436730381499992224762366000873117627296760520411175713625050156263833769007897738608414732625652674394827332520496158988066244885410723992279406667625627620598818416387518379402244546732162132364739269596336238947798758710038783326634764732774061534092774060546763204791975511302707602725451685326973105431322790198424992917764215762499617944464596581611177561238981390258121607225826319668934143985731509059654700359363351932691398470651576001915584734099340966092676747949004626908893250668739681182012636725999712351413407508853029472231126059278467401442682803694384595608476569296174414843759677878374055241497241086596758638333985346112695280184235685971717619538824501596877726299158245620551999556701322451551776563814010556197383203208211368604924729376103998679119475401169584970108170855613295850885348624228414474901067747224478872741483782573660723078816277230206147731338516789252415502640262746863698446061210755297105383120250504088138817427186798556455031656523729022131556514807570302238735011235081027983262563715837532854242936801517240108122577874999016131962519600144988486329292373317120158269496408742429534206931381688536208423996772201250282175671627568126514270994782655915208378335785555245971506999269009084027499804530638599601094183000657512395408237855098802697363131088008992999868411307069989659455812802110653871640866563779378213125793326228202092396639293237320617000429853209005697305922632384151834950894409783250280394238635488029340528769161547816336128909670784201156942018590537621986243211392609479711376516058249574248695210045941971089938872197663127684015685077853862817119982304152293891565011509978834839673096627604618973406828134244090201684792325760420745134715402751039367488053887575494498642406984590489720291234885403084568194500749711502257407544429352537719120891794171279073313732905338983617782788684662829861139801083812624444799221384398159833549173361835426188882422032352896509124609414784646040495699846737667099243592357877643325524386434482729948104491979098529401102146297811018333846689583819045386241831080539332193555199636498995629053418975693615308493191179801784577126951651754904619798819999501748118675245410576854383805090719780955872382011800968806883956255427051147442366419679351013791740759432504344517310204595548614611572195882676662806827677099052115102973491791659327998570577193046193939492718572866904859858908507710397755304961389655640566851259005568100666982040389856802226118501638477133292210394068409738415060479513909154156798954043256153647486238111984407718965938008166450717196318968849209406720246170172991623037920212124464826320615913363779553925692310888737389233126105659654035028226410687398215330059857466577389512773120389000303563940008278238888174953597103999082968782474029818303537178536945317045438311681382109415317397157917827741556970485061776434956356941366311043811091302936064337343453189860599065450713223631519801395019329929001603922915315368916904484909437123904529678015701265354741515545405581893898306877061046873193849386703966725368016694914536120767698852617072465111105483286743559912650280461433773207363255897349329769664357203446918896234213053774631686746753618378298369232679723589654501657563616511252568155591645279996137225986741264908348805985267789748544947416111508336134545710857345495911644403863014155559026657726230950069151280329951229241982064933413452567390384044063083057886754878654859735380309907094200196044748360426541188093334937618576073715245774907398204980557012143123786297553957786674123986071070825892654809541228344893624548805124298015544930321021920916299414541388184337256280841011001619866853982636027842573235686543453329438956597168967172787011167368720502534670873241870881904289195759909637544677286223924886298673093611197297683447510983164317435865844199195821375186443637749714546423301765135249061939594540567214234045516117436435280169625443751364773472373926757386744134406740846891879866574479431376111047642971699252523554465168744168857358774697795429403442093209787560201671617072994504048183551388155950810978676525134976975411952106102385689642979770271072682728029093664061157924676952015581584667061645242162658181038857291121567278618192453679485563274208351808611946697294885077767295006526961900408936540773171789622988442576872102031491979225147464559135100159316054813683546375783618256512600383312228793053275997282052123840181416199410588572797363833873466652563063641447124296681311304431994673475795879713458268064937769091345898544526571040056415396989765483615616532101463743318373188409276293541175862207073112607629964763102793894003926865863084816478023415524469613146116848196682557480461119734633252678038103775880839412799304134349281842678200548595504602283932111952357821759781622504433543704750554511435646065063087996541182541530681944517945206024982573328071666520797394784913373673717404632007828255020176433483445007841913303280056374700440775711788234694001624115964974437282054516640182564736329578435412253625223776668738081255077886558268095116501206434453720325800480412693602606848926334669603611308833260372548136916911616765331810228294570226427304021908123691983880752221680036074945790389399496778628403905106643583990302140634221078314316753538546950152333276546982808286320045537080393067959208732257931410820702795317907383744044347058615046449069227699663159286243803431680206992424352713945526458814418700700192899239020069384455075122990355095089459919688017644132826949715039249431044092143055571787357101697876760073566034880331123192949066392627204693807720782048572553816139536724787314210061966489010651219937695365094098248037854245970640873912078866546871990461937000056671236916116961951982258850642970170462356299886987968067950708884448087194332583541278187590615201329832804827462874969855157985753558418026578341430677293378574829776998429069982350447527848795878914833897278232934328202525710414833602283031566122305787575562828286276964897495335184645728440182494879956249884520799740809494554862127929039039042068531388448858771464142221198646957521990411903443735341901570031076963292173613228373847729812061649058312997751203493072085185292137875345532037407630420072571373674624478592934328882738803520881165581501820477998405839677312209700491556361022090814521535127884620337779599684790313980025191111419186698794703568122053293911521625497432160933179431668821334831641323533406299313480250677715766974223007998389385243115260290116688107809394120161731062006764838780024379320638821217232372559357672998355288887687360529861307730005332825679542825432015733305324268941908981053797941769605346609286586220418683428317068668975561018690063719465686177657706861897848241966433734393294309718339110313254241062890294711500631749480838155497560479065879381724640132921934966924039638675755288137759593073202769083170515413635079748975039958509990690900969001197714719069761130967847600078934383555030441635800288263460876149696568522499773545971402489649234363306434041951687355057727670478421739063118737331081881603538211775292922185712165130993588840648496856019458119534387314998694637088442177331550121773363032773889438833125136861401889509850617095643058553090451939273897734593201176649988984761959316259119775515001931368248292243007128484890711601054036123798614799514793369899122345279089392197511810920010997993951717487793004645129821738826169338672105665380310112030856830747647671026007735209069296327982239550320491079601573084406670499792732331820215749077684123974257410861161731012936485256803996740149397991618550257632473627754023309957498800598504589117908072853030970372993282130142619462249478335270486267871659914975418035437570699492305439067926161689896874388546376129501493941584942209492121718722774571111105697721643505231305233317495428084361386931054879405541351344660447254627837261734245425995787215634116171152360848607468341356014990655748215354840227236758271114114596710811240640848387553154873741736349613299369710314944211595975818286654147876873243674193114998634357486524716806484450518089614303497972181005842336564457877687172002013079672716361604490878554993677200618947352709044967836408348842576143353993816560593263914151906297980115502060746768227402935521381186296197481526831802200511662356334413551753630059617965441856997609703309782526528739680094316473169499182023637540724372042737803708033599019982224586721147909962356209167654135627792356913306308020981287112183703938508459828505154809751696471904545690735848989658178034738167202988902139253273062922705578457783318858339681303596222781651209554498684298967535262234691968317884507629547251619812932929759703217022801005137103996486249518052492435804620885836065781426088312777479175206560233223615071460347152906545784372964874914035529504062806744261326067181730477653444175446024238328738045614025062969356042419983731145083066946244044937571840162447496465488563590174128934830954839446833235859762140519853279840567639529530032633473810096875591887466979309331782602231846557251910719408382696790305341707070465430808397018208430872524409113759980258947343878022703595937030608062656734268399705613057309753757591072435706628622040071503879253800133496289698450328463962376640517328768259438837524116175317710363083319458533040624827807756706986494571016507497886655105288182915402207396585613303976418700648399933454536743303544325158811826492548958973558789598563058306379629719765092668174020168007923747373923532257189442378649799583905942635678524694437086397710490429028543691498651330468017642450542124355061809753495021814986201017316495169774598911119306692652690173454752844270624702629667868620292180751388011534447799932860364635764679532041617457961601412545036604896243620970918595945806852954716612450756714367003513379120892658715385398534157336562623433583545086873846042832087456400108620243625194482832614453163023969384277623403568323825367725386307743326533713098201728236768105739415619171258548890306145871617019432222957478570863386266763680068288329214010872438491399569942544459712145294692804722501802220399596027326567974016713779120244867136272886379262190293954036085650682600859169876072605807243144005923383257035979072514072779312115626000049947534797275585243836798390621836801708411541944796617164209810313570701597679703699119766385517852095012288238532002135623408730564606512913240494129746649732350967077261126420769045963524236336377572360929137854841433962520753802168618624728890996558341169999453592912294962817132594549732268286947730642306364510234575973405634146578197401711527151093854263854443595273439066174035288931024060878994405718642630013594885273140470178995743496046107347153244252264142736606782610525904198738753168388460294617454703579372499517389584947160788816672172367907984479788775918203832124766129855748889966710121221279709643569231908443489360151179784306764359965948067224372812229538147936654246085842314202242556539653037316350262525429894969208123485993433550396305850028271095602983244996764453100269880577569605200081656835866855295231506513550908426199667944344079661093433956860984159571746245799002840349800146888482003050507062180168409782997005967695944442592385301148622909928389226908248764653266278485258970624116394505415912777492051757294780450980497813466604022084148312946413664395173192824588594007509418433682828406014235174833647829526344607094391316012870750030279645480908586915826237953504453704152501311000890271207858747382057329369570340909417058187673144860221248078735857945565848498892040974658953265109525943855283736908055906141264753138375739328422959762518526669889657751946359643773587497446452548058549044666676843071687382535461394127674609546983259779277224096969234036684613329407108761061740211419979514730696657619614797693922467943265772425415026883573901129425539272898018735608980056615308472697172884364807436508023956337881111338926510105800251079924094212721551366281841727123114116381537914845658788636190516577466376899443466108799757382148408161297541438645912207039455990569428210195604718973537582897234556852506012219332843989374671405625359758979903876717287123294535280593789567109396487607845296069371562306265907675917366388964463079382075817592386587618729559042530478373345443330177236698409553154366049431825015962329770104802918888710884148457590785921274167180322287202475298882304151785253488562307563662696810723102215736328652154948425129157448519322525387976047222593846461731642163057685368210827225659501644475971751786642794860716777656269543275479268671501845589902235396009597636929718979210261273740605069736189070537388650571636843474898444398304293401700802689501886207656082043195290041777361271972937838511696008417638491535603238497989157188640302611738695588677163392247417592020654802434951407053577343463791667778260893547303175784867541118360855931994875666191983820896260004329820533753283646467274787474520319184792458909949275831128794184362056181684157452433627855997955527990798920404207598961253270441610198717316628697546872579417405905149776417256733722385902044318485451036371685386795983537984081417798817804835503237202046096226654483097224848785696729337772701856667976897706267131621677841584722040365702149737881478272167822051191764384263042401455320640801800650560378953806733597402277352910891902175207469505303920969257105463015567285168366650255999844725823888065154528227862363680562104145295457320355654530727228149451354802964276762979134013884320911971031848958338695192473930511501918441784118611507734232290297630306984582869543459194612125131692367425770345147866683317634984419926070016371731912663778970805984245891013774240528524542013144593851660501212341011085815313477823894676752703355841158485212964541097873577834094148319703827963678689656968128238721401496306478178916057870126791915094405415471163630402967400926474164388399536698689749991954419824132190395769016688760559638498977652136004683734944728357139739581211013957230403949730453383690722616432323200590311387150172474987820693866987004382882632650656116394803574127616304288341346975088687967670967396570145483261243703048537818899595456914319339345420186827683303016836216858519412411077000424635378839829832625236850222177177480520979181674737467899462800175817839765222403880057512553896438738240204295057417501204774462520686152277622202044879393650883676205770604130781174955714121810533580776007684271463915536309002445578750907279834594770221971124842540313981612157809330958562442935310689116983663440850870094028567639770049252110893954505785909570365609980989424235498126247386087299952677823693082424455487034310307409781048724757713414446264509876209549036438774145935510744921982202058209708706550694452726741621848098626290021975436225275548403839653287409253497379479150916693533117776571483633282504315170216934494539929401851660030549493670451405719523324717891323949547022702380510008827168193696282019063805595792698903619208289467649895169729352399001154555527098129077373873034073188902142380453132343801511885450015295512736594963280441188133562353162867161109604121199579387904091954349889702115680485315061667507279704107192418415500535024386705775401693635997219564473384425336266997512163962849898704127459652407832237661265525944290690320996872730387833301967253217472504681066841357852112936479960830716252762018042825022500261776585939203963169704809584203929949209226779200750398029277162220261309171350434181659850265357882906925423445068224681614923926155406650599389897729867936441614408517240886728508772673833920439803950032530491581904771808992704036977418043190007783590305694516365251726805040006771954929014758240131031371960478055015521261941569235744090238792407360023025911869761896436543842970624347531417910289336171775345984737047446383279340565485845063201474782506712049258423205197755898377171651392706866557562266468807261056092218193996082926153448368201227698115934095031765314158689729656092523383837271216190309849134253065255938860583281590594643762688639055159488151967217471741085314543473425442064739522500096273610182520646753693389667756635786027988231179717948540247894719685641331116867167294576969961844936894652156780812449125204805510227119269060703153589728536310778678220089557877967874973864443293587441589978682966558630153843450508888460014130014106161918756135519839385800979435634893424188137090051484390411644909478891565140278392548236966727079849343284300116753612165236083506774976992750182536031756499056232187103587331769805068322976941830878309027564442730634821868690894875647256339489422141617350559137151392514331883030502539649385914951632411372055832889303106062124277048829827051418849211321575773324714779412957001785378354486302701738948624989213747068465838229711899506488661397839049521273676316374472361503486745202054560384189546014720842899913252747736452543564800180984572071480579739113802797940258121872138516746063298990946260747056729113448644646325634800727323780562263879196977972418634556102274359047386499906359378171570306483032910916966571063674950988177460843989142538174631937084829377258441827766210219086092836508591851036514896345866245282028579521370577964459390852215403675918276180821645132170416347509551045312619552566918200952707402357738436443505950287977561443275489057838526377896910107806145276906161194918637353832816716770045397796931506978324236456845280578747102310309975389837751297664138725964152916751184643817377761891336934178379148473115297933009149586117901709095196353097130910094249431474635450576674910318367735679371913485495162125371783784244643497477541573590460920927194127983259194723972626552321495346818126649465415344673643518256290186298975417758584105601609171299194618890316776662819592903127012719807449275859567369130796613488953861665012656798464176538579984488554795809780281380449146738954334405520737270142871435437493968413843648340622135384651285708356030840441977318588638276835672579226145769948632449977807342393949750782565860923015175567642703126161228260792138934043735874995722526896253755772805601035436227764280103906924899996442679616593795674452820524072528424183536089867920501723667153875393450739161359793383238109745416184503847354410202295509367749334349907507246996105611328546176895936513119079946441506024749800274702818728195709943341168753408308393671081817945298278650779811440062931467790092068329023465163617941582105028570583319297844635670095767327559260738325391963033293917356529119677026022004933147953312810898669683661595498934443284165881029880379980139928322192601887878146758762507348898686270856128326605551313771733274872582004553466538337650889242565993954682184088653447817470072194494285935437073838359863595406078058726170290383322342806775214518576986724489409453330594533892912702844299393676511994532564274763150854979487228863383597986331564944213642317789409225393437059456590110368212917888079337348394081635983745410019772882761356525354858874529389046711889867926745902978381837724842098366582728790465539338424925670478553511288634884173345996260623804014090795713261940898381152658570173414135872993658481384254158720494944723408144728919188296132988088852898259264395988607016117335722919472306650521762474230929559260484204786653938226373542018865434165453015100068222805589977850059940357320681841761388454684517026458214895979011309156055961648080213848420956996400135736675808749235475448354276270623180508678290687996625438509698429671797146342760219798597688228579209385603436983426976630212147542007672187664949015407571425873171492597822990023827870488789590281255647732714064634744555339648307990062317056230184205748203625855971043125738709933471723893124539679823826993465062803614489345910310943228341374060116857992254251079541831552310268753431266353354774902628135442002217331575419745069888388926957448813746650176382594858487089105544428638314558296010216442250232724299473211240923485990030164570814741559339519166663943130706609265483813342492734075860533262429278078192243841310727955148335421784903855963285181964715045516644619833162816873293943416951010377073057855423791269986146610608919210458419815982191531134281593978380197148758016562573265819258754611401948016209759541389208856234507019596166100002954724488526512789561654361534047371534023428069228361027801106148445336036262327677771708801623438311864237701124385164861347330122638800336495785093229842302992726374741112037574186170231457531297713554920167011582710762670856893063624279963845220770637663762288237315863086843108115040380524593528531191278266650179365783846837316709300690078764852847536602791063798430876176279443515092771947895467932102681359574650277010726889546891819665886205156275925132478849421950872215846930571212425089060597271694078407122730091057490861528839328306877235574327760906819289261812338107078318076892409587270104589544269353857165317252475097141239016565657268477401326128745919873864065913471260641560463037969269413489278173124334599398334307107190714914394665966912729377678656844311002853741039107671135410252504368339503989473418843805098479896573996742174865034094096643013228493984206219829085694485815277884599250874891737895003735376909142170950295162970418405932071697624527009474504515356163855807902418966252005498744881305399271858713542980806714322681847473213781390418774681071806362453707390288284514538204224955371068449944057881230928442517705876508756373304869696980765583678604305876190598384219583344319593316048700059219936750424847091199250245290507375487404630632852298048758730969976263373023222516313312863504933323566735858154385801252327068851239369797417510042895002914457441329129379201354722418453232374980192877404113312012074305228195334283513888105308706622381495180327432959980994556125775871261773318524042045029135984736947642814171457256093858003450766520749316683103166321787973224812338751233387289969552238192540789972818371664134668152550105112183256338239050294543492388247057124532942937869085427277761608707827191976764335697441390555217988874419385745483644231345220052605508763980682557048705101627346092535521080682311996649580482141171270255726104988749980383622079033153281283150352282928516311186763254741037485573079585760269483414545934063541804711131352672125375305335238827225499914349248558712609163712453450978131102242152797739266371693850220472182473607056658865761548155549002968223256612148314060428507178814347296465320607271075271043882471507694591153882745032037953492374185080853031559139527544577987244570643799143041664734315270264612752967807777584391350288278112017521209410742321035890155839624607731268491102913132895892157632312331896713447390210506886060991064640203822188890042739636866966377100813241825846980067788822662890060177934709395269879660306931863203294680898295438833220088836809131162003367971969195543354848266005446477012865667393513569846410871336500496132851644274046740595907602536114347306062096768505442732593814383411292011680921226512885163993252561801755051703546782591609900608726344851081427533373912145066924530382499237383338819293326193286205607008213553100249459471404993001451404891122489322538642286380386272299627209399086397741093712664724823066893808424832970538651658594406763858041033030705094436243318960370991659633605198852373001333440347939078969967131118465051659769023880911296017497015274563941615217100166695051598381562664478056818200734377297562121176827812688341081670177550807731569171069139351837795985729980587531613963076839054122713306660226955373103754920466238831065832911634357491143186617513362745328611852143604022951422517070179200729985504326460140605133247469935486553407876048516915829611025802151624216594387305329450703254049889599251826690440980589283710102876437548950845577603396145458932019845482423052105911226183639007850226994223372391126493203287223529411283692184820278377286641526148801332438786453536625987023251907763402053658643251244847436578984925216474308244206020277086291847006795007578883315569170928175889341171957333075092698098827427542792733742193475428437373628455613664074912711834258332596574837537565699989596846043049993407538748307563225041758358354489707581312381078728697893218040685474979167464209461770436702237143836927032271217013369518769795202366571963785895394127066714875834176657752013310296331829200976067475949328726732205443051933459362381288909056439187323508739520947012604628144638554914821223498749374973512119175637385247537347668607525901947575287239728355911230828955894277545787141024527441454665561093065569935441744476611023123811776813700978300963801478122970775494326004007565897819007865583383084191680997370296137782890930025099448689079022851470734230170639088176151010727974118717648263094544075966505559255409062302934918146121534861702252910980950614982240780012954689601784887792732160580987041911289324373466385698887910078424461989374728134832439124455284425490655137644720697543871436606300957845710197754181112595034223428038203766138916251024537168159994522032561351247617501250226054852163034002935457602244417061980316984402247404113661605525175838449634828365331894011159159979934798167719201903059973144339144371702189744843512636185502457209937442036395942684778870774245875297457082330862187263872100901386885829525708928105037550336166244316420750909778054094752434188425336020568338174810726020695324740410650645035482471428219893370256750726052219211586004325390612911901242363939977694875820445605534020007605177590624903898331825282761302731595144663577931112649892734784607743562240450345065801861639587736792261350698931761627752830852694392482432217839067196123375345105745370158083457932827663571199989139987183549804710038854424574570584450371268830493823193639096745946271366327546377933384003394816907878155711582618672880292905324309386274030902406574589722910164766329997350674477551679099926931280459211127215764895885692447691295413205053305220935610725414938116007885971941634271780394786943609701960129546596484475726509990611033621385236472028367514854783099345284157106506612972817152548613508362818473212389656900469365006211631640912814162696984707095278553587276096074837016073760104164381638527525632294665141533722264031400035257294739023102092199539540567450204836629044258399134372851496591739243372082461613150196079699736204710792812000810168327951552905559495163600715689707751761742054718527329511151464444675016199057578142335894014817027752424699531489177723344767708755279138971684038527017782104671390663205140629078260197109519467967262205123998086261312007610144812660034383858742194916444964236056238406061228051939647566222146581119070916481599623110394579815155818069316650594206602161389429985999587595850495950692557351019637934708413230033940759724115678884050600937482540505928914718628033351837423445796858702820067938737020940047995733519147720515937035326542074422232522862824657227440877065113914628432167919314430039115057875461346837894040715137425360270858307842361073582084944410249253590729514899516430281637581073556517913747882159847008810528923499467095664891966811110641375344017309532320459910400527367389190593935661907471544316349926780927285579222654855449619801897358618180514119871381919120823177533844112636291386726513818799818551190832575629666939672626647731171588020934637749678786681341410719469412198947585051367631151584385185455420354697796601226448967043386774021282267393773225639589411570296821727794544554362765046332010662661085410048318235704006807071116671155754809022178596612412307060305469106291408211525825625218316788742330331486588866729743423910103669561748494122539780189760648695938402154054466312081881397335772204775129213322946970122374492494042432797065574999049446661134636326761478277922842496101938646848895495880029159381465174201489187862049866781393112479506918477882984708975105452107228329118302538758216299628040421935501457779924224563804700658924301450385507599741708204701874241499162192531935063410829294558891246759039620400528927020438321356039340449629500225916284002534894817667006274276776314326212936177916079086628765886258023011494640163673610940715681776898382205734754647189289951576777216192837873994674983586422629672506921075856521581324399826668041584637977674139554583442810284498974503703422813552925953812648314647998329043056656979876688135198208919407754211192141975174724827685995889533594847368109185948715347936560970530153292142314605927163823163660056044714005144847832249686319356115768078602557581141696316129326782646917327776094070879009107067724492351484058525101808972715991004321850709930064018344671524926103378380556486001081617207780778545268197598827819925942016964254772738020517550494205651431640137813390915731194882776222270573601517664177087333401168979597538247915896719890230411105107733878295327058294761171709492762526480531334075718562249940527379093763192377785991279277446621931702002287487271095139987132808076486351645320732935498999978309799660802703907716099116781786992728976252582922360181925828614969330297175171838338369000283316989407242613598373757815455771340441330689752686947281183020663657295364598814577920684255511910830251387852690352694648346674002759701495694072048112160488670823869186860540472286755812881133122112112374456408494721992458779162641163821029247987076935758825273090896860157690598642580474296302821797992870050261939200908453948238767538542827007314819656160859932476576381221586250521002247972748754578864215255382806722910007091534775238265478354557271600144756479141068353576993261191481782604000079788953554580434566594271568064103385282775436264047379572388557235059562142307846776878772437220861259752548386810816102531257290381129175804519760743349023672232931881126257046063342629944710472959612005384018233017721754164874150107408756571123011284234295774064119506129635477313164050760280173947496885414919673683433103782898209457085042976858887954227969569491951356360767640717038962597295857684371293552374930581114716499269276663345621832803732575094254871364097038091258544229881644050471359929817730722179070266774672058605676452795136495287284463690272855544343523948406115352767927679514222188303485099492988275911315150771900033533693377259227109155361502828607960900887727923341546674770597771166541704124451511286113086464601476288552791672946779362471058279399332135369407879860080895459935086085251159651200558546865461899735781022478966808139250147051481802435737400041052444762522035999616643321286516298085704790578636197559634800397285644983540279440891409300769020379845112882252998030351831222732980847511034039202860335607656609981948410510587397998717561656157551155328824840269247820881259024555888648451195421181983566459244172826869370380969146050504187523543994477132880775343193411316443995050913997384074664985237375682825291254751150496744885659220033269908897772038226960153514239199940096427569767834448414108436867811872886190113873285434706430334501149745151616701262581893511941025431012714832687483768778706025463170318035627385290689568041391336026605016560908294340889419354068057914997170084023975487781875343243709829741644757148609162322883733358338351284676893168355213071390866648068330845952279111230471405948889689531680791531084885829194554176715370243267431552029088318474829111351043623204527820066043526068209306050510048796546728640048844729436147409248719502056084953779468587702999759931977762334953457323456068995698307291126690413531579609047137848532910924343244080013017694857513879870107614084827080765005502223835630624912497777010401439078767886838598245120172022792123816322575346094840698724504552095516681589713533606569987185924788138428183202504309181670951995412379413914620562841202545656659808529768585915886719286244269091644407469259444396674742985870475161411495625356626560094502063110270018943856043543388397934454847365179078115418772605354123864947071162286074596674955875475986935068724703116297233824699894665912493415775155191116533742128242530458331418926478690491616919299769504704308344540558246617709345545409693584073303276367384572778156335886861706304554133888479459242732865690350311077343299238148204093728077738671537848635802804205195522161431439161277463895723352032180705691856194386284297850428896281223086591605027866571753456947480491891875759469497072006723567022263359320262370075337634039384691293857369528156483223172258071345407666095289427783280057396101322566257420628849741991584992987821655071072662818996422390233174146685374654162372054790741277453890282856566295508191911323536705911749926830135440347217675498896322183528987880231832786312398862995883593493982672938759646989219210526619971296177603066110961697367218833980676094645367431259106272887564433712305379975937872014616402028209058482048615265516465673699434410951991338231850983615336574159979855044402677092339416130991434114516336681698947946998958831602056013917410337176238497770425786963153231696359747628378369281264943984388073648578889273009758919170416773111750839069443729701108630119878674151671674196998009293312707072426951140576237368721946607228818637971288700408829297772380739178525595130659258447596352638829810853014108410415407278177373527118370284002580062937658454450561378515750021408592885878679081434009313236487163627246609133219735670186254865306237542130406944813787804188540523247010802190000620150999145835951551427138980716631181568069691497867210553659861798358214735972898180188896924339360560791697091218974762330119223327415250084232937892008986227221494986543005646167414017398384750657955793373432095640758169550964258024992146600499051956058262665587811753943582214678536832226250042566198489931630693066260896412881188092289164614091428827337060504048761389072949427690126767246481407364897678318084701780449612230689826168706207132000411468833072745378475781941973400990690828404771997861101674790619505496155042398156029714400189101390289595972597974140300380674797252889812293223591372637629300967751985532248616719040621015546156117632042642483271050582783717291872002713600205159441852611475658050113794431745817567448625768776095353754955875640515492629830463057654813918232281083347172728947455502567248082890507793042506523168722068847212016255131618204639392177862199860197863464088676665457446040361081953087546037241216715059818702889980702896555932335630021894526276071863019719929217578190829874963445165098638626775996411915813240188831055614923315735544724225896845190929006619507956178654531331908362118598980089069352765615030050180055038487845434776476870321827944524665311898652573041205450263831267802993637346852928026177837458848542527847935158217948138034091518021470702121069312804676664388507125052979327055013623424065132040912456117942653875995085164282739021900221653439240174427358761282987745553140850457262335746683832846850958707275327782846037723604605462283290639130973570483878680594936686217806120742022842944023092641971857620788687241160724193860855949332289308822960900319751476467653782246336841447635649058624574794599972681012449065289955220534859543126160884971244930753227918347807804642443326343038834879405561004075359939629276035394237893507966714704926854966445436992587175566449839304620073344249505271656503267241791494896844354932002415155252046745323990039661087370561696074255833762247903061845091829351235915005204439160599136234484727133478366283347299597799110864256331206912452890299237751503023579184196176433448756907350408352902548815799751228142662228650362519981477773315319635536419753978542559820108970513906518833079638474561116866396548960046577483915942696110277396965291078002776638461620623890819972047861785682612683403915281762991456244669730930306160670384287437545615952164027669550627732836722798824641562918580143922151156352281939963123615960287244019633889861816301221661515836489609964019947254387116786313061746949326748724733593253340922413452902386617870673155981699719233994623354338986138281239564542478847192783899363894384504561178492884610639247778818935519283845293826301908785920248810020859692477165982681132098019626477898629573005986292659067111593894663431820764043312462744793357983561080783970133135647580442487460254945202644850216797662519309033538765284424835720163902841179486369978018156673101993793241884678717037758541802694295064753149006064943246703585203612279708670379492103273282211148759233587050854601774000317717923418058167875965829470740387705891016304304284135195290929884145366137509887943101688999043842630066088881510155573734509343470424801720495929440076482224560803790938175018297342758088165166140676257924049601102842237432329257659100131081169814961691579882324093225289342037735994028888011213941472190831711686422544272087368654462456565973629066484080920227007561186270841157170863048848554240602120173489500001871923917118727506171392404785682117348573805407863334535262511845731202310803456172486052966720156710897383287520112443634335106139132125511912423418509937223942057818094531665074171471825961395635131516457573429322694017773691092016492184807227056473317636769648292759449514563931299981958891414668965767369118273215558080922171971322927773685403181050246956088303231694297359453457099529821429975813961775610485330731746948190103657210420547277351987484519373615594111711634768496348432658871555986955651083714979936599914388070745052338831343205182446030903893162878368358638728332612853533432841267059256237185060669741786046217133363850257908437602043826623384042593661695309957141966922823085430789351954456507148271198385681827342799448646677766311605350427925931532673276432891343359604619383389340850757154349283475589121231306015970194736592250886624001771117210968642280101880400717348119246583961838826785531386510568821825459406468391394450816447521760800559383010490448626499488953342760625898247712866850411317679046755995089520771774309928505684055718793440955009679386841263355680338138914288540857438879893084926153912033349841630589709869692365475620050751610605380584055761405176177508724430719149427970729966191840861879267587528013536992354576173411285991153637861721368744319186777589787777853503099783490342960487671343296460847644111361387544690075727586570800284327647395698763806147985798085450191052575068067894476732132144694399120786944030604322054612376039066062912008448731549720985653001603536680255762133344017146157710343207388747138967178750386898679453573105887538061839129386297792251379493082496626641605446393821018259126205870945401018426659785724712272618875214910838352073097518193210158857117808608002391474938999310346253511684003976435824751062956341180362316748356401689018599080535123294705793041131979985434449741502257892988823422006732131866881214088727764666944197105592017976014777986961566699716449694436631396072370433632847870641462930445552354698484123720871179018733728330034786957500885496564952855146185846857691320272085817432173520912100715751593674079806051233483550049299834308698661147460252424990122676355041370915632841453827641585748224715062647791737290279772575516701515013103379635391432872431628183897328319725685711003944882143258254109902495115551729991616363904652506843619064263045542570826495656689428843604693438611532868356827791412272492361535910134225750071595173394938426200680680072418977294810724445306643203887416007995529259365046470523802887133553978386775330617531615524052206178646405520298960072045605264074945727202128685576252097276050014804400412081135267093341238820852367969565396048874342132257508190619138979788597254061448626311740184643381656778285549188293647718741771177360246718956690932480798320912563876397362481239913239941298783025847136081221517636646381444067812545167939730766656106092283960717279540811885606894152572308585342569467137347614492318854787703073399598325293551748743874389248454464420944200297631921112126130411044385389837381311401826406114776478256279313532549775346712957481881653102306295988415150177971669128344480371646175016202093736790434597026515599145259202901272037292849112917755933298345009122174310958177803500370468030931626540843017069544918689392743614551578896705541818972930345145386597667252398108809909550816893367818045174979403565723556403964936113079288050215107950598237249767044021600843316167495981350856258783763229764494243776634738987221111216335031322646786388639424906123968980847618326973821712931889774802405304304327977169621505230426200185255198143197355709736857428838131536638711524929777737131565395392043732194442235314206616120469131609429415275910961525318935005430492137964642110035849043757944871845981924804248336142349373205592833591379276538678040442079071584933306710972264728488348382089706536975455716453908034488511068365750612117858018095823614596780988662684929316885063335620542913859645024601272866146033599867717264124298318640208840994338628367537674181355143905009386339075746311711854275231309430649327206183009835769196299384691325899353557845173615055789696626882699737043719784948673683560738651658851500151021400808122250312451211883290448301318666521646444276892917685884898377159609281347351843186454895672655165749306141036413918317749581090646147679878753993814948258431397900614852938070822678051942332496911935618479695745363574403879351830867263872017821866777064830023604188967901986047735301878853768767932187643307537981917474735183095075245822826970621932231993229199671960043321774070805796097831678220205869118730958988913953927744136159166572153750248452499687141999769301857791277915161603642673937622459001762269611888692318780404999080374839189182153134334892763735123746180511440879956058558953287197975255175536254788703395163120709090893915393330310986987103502975933758462083168770736314521066567259796888866241520189104171827143202445989812487432192524193625711029207867868646228582570672418793465120441835709587304822434775518425651348155614066603092663183535494398790641368493590531911759643601384769109428279744533088942027891321221269453275524819552116079866416300802117464987521961873690886401227876269225551106583922974392053017021622816456039437740894050315592967839224038150577642488695522825383680376046896894258447499403252068818087598983775730819094495454005243607538782953435305715041638158800712134908078009795161124233059461689920486541815278661442774924162913722458294764824773580922428446193162996985812818049608783952799721798979758036469992833598505125735264178424350015393672734353669541933059114658370546691117390727241648601462446356567122420770730053498947162753775134649840475403354102077633409048235943878502570716743556562233831035811035928159537907546325130494845263982216490800881316852252860497152231144358793230503864522839699516390332928005990790486818262632353887070741480010707563630750996961773955290642962393750927012651104162358190254486295668942150615327347400365819577986429369575655546561301713724085706705262738806260885816062107829138787605521027390624217825097282627825434466278494408285913851550842000282806654176734979479652423538460376972951559571637964690552782912415876261320970595256561490034672128901187176712316629248145444065988695563319057924437489761348022159069902412527065829834598735624789303041153199591950589929431540206188479022479055092358770958108995195442388716278616901884955014697230898078644196423410527019773571263308516420607570215231688199104114100209761332404835832640511572852456161394898232358935636841651125131312426377114201068065601193611969870752650946373943490573697860901628110369386569328774886980186086243022430939627312465137257799083106092444326274859358409576980819856141263358873290377140834355333429721839688617137308833876716625143049254775066865334386889439989330853549870004284430364535479648784904247265644525810799826975645921410536023289779077769991582763739701589105618314269577739465839724224211216538215326865750548273067016491459605823616737179885894347605958587620119797333871697035000027123456326832953860259168773720213616555458410563620980924718859313255338968344982637688237733169785928335264340150546139446751351994790515175081039844938191968289033542259836998807490737171463968070379375963283576305821119430388154247917285567463568387716180458900401968517013999114067741051369940762088340574660347560446641240125351943087329160732096685783669640913625060548291371333383567067036198657791830537834771216083398565252886379861771697795443886257357560034797181451975676481934736223296183242552872587420933503387009809196609979825558862520414866769729263217952974328760196355261252030523041618951626309431569968307984260375145459972851776226253167295340502309435739273192730914956765621018476963188901396354819776681217689479059858921142582358878173019900088200599364881472362257220201653016299909374271338116700541433380791740953648816952400111310987227710893055681374568858615268289083542893654718392147495719602673668703609546219409742690830676313909821779769230182466032538560562805329292913938275920636834687764447570211830796582315589431816290738744000037772948481330630234804157477667641621576909259805569341533624569526805681427743190913523064165920861816818130650819529824645388978895000840254313968031255355493706722878332005526394707745250120716778691511259011080694102184967123464752236109343307590954209384562742595061267893166002958820756714454034416921070467536423268726789785821562412723778118781040115061946321741673484498510655399383254294368824161841004594608666144337079604646226690838695248613665993577578449093613470462886455956655923837623067983850045704321624485650359089950541443710660721877206627528821972349546263569807978075093143252089445269369923209529444603589143472879483542125409448813070410113123516467395270613861001017673899217689023914121640931899724243782465206869623787747685971041345131127770565499472787414801613067039507973255226962026429964692798424681622462223782170959724495982883362279732293049773410822066842663057927752426579656265660199151656543177553920284094203622858607629690188046800593320566078203113289598395376232099873003403778909090615018790688762010530813621628500476101256276273624095037516574829346017401738832148389223022951509706458617280822689558005513439020542652947103203296373049924066751885447663882448310536254900737632795383373148057585737138213854656084578256894056433926637844649190421564703452303538801705741262370995798698815968675254338875331224359466222128610173222239891454337135294123411807349179732437903164143635517647470254226195149741872351203543880989306237811294730584505739144059135021934743849021856485944543312860913168225163222789103584523263534728382793126565771717716310433368195892122136408580228183046823300093012046308043940249922785587806707491627909788232334673414871491804346945423996417599566379724422329924228226350740622819838084935417103961104141750072320902292200141324654485296501177540314612990303923516477075073290996712955012095719218345663004594227025724715646596953228815180478035191659804145720903656815002114092554215668025696221419133138435861918078885419579725881035817413854458808768533420930911318234156235582835467189775902708494433131948278918342706651200220951275196580158930723043896822751670431918059238110632992019106978085812900756168999348029005376456358736431201611857259424935844882476898672912419121712639422460869564693432690858169615346999574947093283343984390079577170630820408874231914855440167610728363109170020879139825938067636647885523530383692485309333928519257058419743257943743555187231485416058199902375986110438317176447456504222694497019798689285903169744874859732335906769375754710181629560718455742881010821386735502524425892956639611907817048001337478217270053856232013327183439352156540308106435779227698206737019847185383392661668616287699515817131051278048303933803911537024856416561021661205497717988527369160253647666973041931735357714428507320606910672125146056295245847381444218641802629867129135902357150364864101567467755955113332329304534662087620715421460361272079663626402374034494745247751226103974814837131249060990929393902509680895988187446878635584267977535548604716186561842340033284390551941672575589770200435311599978862707910867822487915707325257500321059378703587908062759813676606530703544684271397309290201320218201271630094727466416270634890850742954448319644932436159013875298518525567334121298683855786454085512700662398889082579234734637518756082744355266439534345011014398785369775499441182538136709020043019607361089642463488646313227720237368481374351044458171600408000861055925156798999145081621760588493900497163279154137643523233226997478551617584060114489835880865056961496748650913295492673300330175292310526977338211666586633467733515132467483753947412613766409280428156932759040166997886811537387037214112763991312945607011003166630194546289219633873477469114800861441302436381968755058803703066026012018551216344176127964630560128199915914188693737247040239361295110997564628934772482406619724961011742713081601923146160274016606109101712490887569436830357839549159862648328619054591175998199916913947254816404322322349915656300508611456040835785247605079186840966590301132198807179456951200066140890660380440093094981488313104748642959701515046122795142238420955784270274435399787992109723192235897137445200103195165398796130273091039779184604354629165053917835577596598581170868788357505248573998149173587915908357830255779815641223484990944344514833756586882675851093334466373152551250528768749967756885743346783477481642610831963450767747917897064835553041464839830053736236488989859732914348742146001884663674855287368512390493581604644218635106286007176838372007578416211530530356191051538044689503158834820054249432287783755775149997232119175763734585233180820408381309533237802066409365665803259995986467244897024377979564109363873057341884612508922995148597909234109178797471128114778913980519644245939938608740970133958447246479155673522920789572847994350748804954950753657131340299277579171587033460593912374536702711277883086094079673988051932901672661379560538999758601465704096973749362946614316675433976085544228216946485089168435925902721632555356357041172278192424077520481862074056661247998593644669779460660589796628856101728400112266815835590406445657721909508103587831823906220354456817316324609794789457568562089218072969259241413601273203892169228061624886352769175431611415744379775073816462083461827470647178637402691672431217053737906761113010750701096354793863758226167215339804555659477694368578504444207013666789885049717397460978845027762662584409431504628200352301641937532610738115174078938117683128466366634321016036659030053440489148974939265324729901810269037068028601998260264726418299015190240866434491064712572132158331637241332210539091620720174294982723274111605982756689967578069558613603960557395355408165617247261510507517610961477392011157776108772093692604623476088983133408768521704753820473954584553981537642208160110291733144484014501946977226346532325560922992086693347990059021564223668191693411598572795848474031906712098340720546711812970480373147559800311015405063988963351997742368341477819690364650103423854081810342955695667024948002226223413475217693034135547480647313168329232364738958422349702372489948648534448724113297975651030409248093758517807571620646262597127044980101580477176265701374860802064437053360489496372504758051320288687843865404064161762855150702594014887600714503091205029639423679180412481479013379458936883872973651265383070939818576936006983487656238169987197784859608306136745659606613997768913510298310111864295283079192672537844463301175705430070049281365488919101785318820104177487846660097654989177890256910372544144995729768440199712389713022804373733859802082285189097069005237522073670965435178895119414072997536598294620950494671288896762472969071883670780919994276424716151155873014731914798335739822266925517532883086074253454113104966549827498826569662341688196580306559562273653864014887744282447913140973406398139934089320269648333071291979708164242605193512534064254531425200396773635120545672273182210700158371765909985691830890685056377576301283969863605860677757207847586274149163331516291328575220064740543454591406375565987147937998554306184326155822193314823793661309925838802601295321781329516456390578309449196980913755290625248434201264758134521217046629023887946307394154737376301023708128975310384642798592364569648880442479021323047380480835457070237723462593278353853055304600612840380307005456245535491257798073912323027857055340161750808449422550862368033889016080645005727517520883173252890013481840612441289543052205065299556517152834996463971117198283867917856116417111736313764981150605578984300426864504549733910585043607145658456917190220471525107892503450841464331517399820577631362012408595931762775868101777131727792366451637555460222478758134471898492896354634032586327204239347433161620717665859618174253075952898839664204170783698331312577322427918027395912971862396821096943465202905572513589466759347754425612104803902334759847235746564400128956946027183373195829156152471757017333723825289358010487059819578383151261675062244797571227566196796396351490962434702509069613312959300467351163305919235663793295104521727977825341489605463299589531032447280595370849503741741495349167084317830983752481429566529760569509292271217434689713650143797489944539170352142479430578958722044332517658682852634443684347313437554203446691064811066980757393376148948733475527360837554136941109359805038414008618450203321169711742322067554972267781581732592132450372056244020681690558712410810329345113183036573547046210668170714192037751309030076160637299651655829788259104698631518494749304701231195349771517788487374749548964892730684076828186278629986890172098577408549813789565839148422837110217108146124618094511004891630367038073563231256414011810898553815450948444925926166238355042477540502383606809721100540517294233494041393691930667316957062715204151362550413052094859109990995955674562223083485626340047471305627722084909622304098674740365718745915233771676977080227455507854038695516664942801698194790038339054270262127791882761783996873349905943835259955097731131092265728709511105023396671498362004869594202800664499097117794775103629868974264671422976957566264251581123895710023783996147702884177084558904429427443784698877290462981871864177393229983639650321932124327039194459264295215877319029278302289483589243802656697634851774688786886978950127092180608114237795433832921837981729299129558184853038916424601300074564150487618710675066198746648225417279820376557811316866218713229856479120591779833353420253151695554047421885284448495542176608661485995097075086594327591568175168921474174060249952817952024161513875718174629378663338926577878648371380697296100509989631407935922584616004885948844728441877798178044523723627659353204022072325514420419454873411410297031034750140556284032661606766908187602805827815568067083033382356256572151408239266506329619581775257194220617968700365321674790666407184004642068095401743462548445897796224069253729663636703146440123172919928005971119712657273426720645682206256648401368784405914832825815473091526208419458661428913912883703089661794393886036963781611499030720752154230915747870538810256901107657342950513124975528458542381687728553216249891221229971022069635383541925095135639478284719168290221807321504651639359628768009589880358540223819656065506052292911326678747777811953039134250407078166038127377903694914339501247909600878661488545311685210122592202694627977620500768729427056509845252779862807747219355535677030495156189743499681108877343589158550548907318875818921543071379640288488520485397179934964329692681956369301353411124970299493935855704420613027716917907407589281403427970693529305373647829789964157025694736648525221697100049235904999000676598003273842469096747725718952496527148159600827001078171566493020627339013847201075640521554988460524166383656100413513656387443360825407877872124606347127974637245118924476213784077683342779457818426702809195123453591117515072324900517373773732873901804445419325906228537471603337918182551827996226791826929734897878070557730596531421516354607511424771104820089040201205469722004942396456572498455096997554267034127995783725782346167388662081654184750681527001176671929633382969269857458776850104758063071521822628580209717793181834260223936895367646727887594976068793132763705391544943047583837753628933633311811818405123754581379227150078470993953996667952662729947648748658025841619873812839226185675942059555775148787366784258233492612952139048025461851175348172435255406681090447109922515957283051496529377739775257817710457871299595884183326511391289090729681467569439953189762775502469302775482034566046533839865387767156079114194278422259225833398791498467158136464822681643884075011167609434507912279425801543291467054044470815529790195661980120021056294501618105870266133439475045224185425885546948188406711229713530145945798772345344944595217796124321224835858777674013447221568965331038447455144822935623702084614516094031566427076517508537292894567215264591947106577101214202547192469377875282668175418324143866825382254063185009037636375129908785793522565761973827456719414038708358959660051639955999859813716897150837602213619421565161308882687601631089530533566866419386896681439108106056653355441707015970519804985347709098124739279137007162488135159512212987083342569409326326761832525410879381685888670111665884036838284007077830923917969173005681111388087465336916567246186527705623974218934893421912739710151028072345646146345632430255846411668409705096239753094496759351939588949749232647701966201243452928816394725905984484565779689194007096580582123232059045725069489307242914826853189308723213707853529046335525355783336055748977080604639850180652786149820635352399829701475401984131021144767012664564541230269154824694675089718288911592788528818194613268799722420827703793114597890569774159596178063100923832552229226354174447974904667510969817649668162713427362723400249179257345300381012376357460467601118633195040217510543543429473911521863396101411979821375508846261774096741455931777072551528596916538137098935625823593337281023793696475949092546985286524825919621509113727087917999032100035227244748814921516935557616696850894537865717535874564808270369287697859346449384299682801966683904049948103422830524299131725820452705012866551536694023880961643008363463356248570592440264494328045866398078537009954291256086240070647660654908990795302491133325092382011390506083201819314244600910195104040523518174078572903253267893579573978593326603556548904561362025349845673865582570169255253268462123380848984376578035178158491339315462229619243045353394200667212612529170103900238139260807092486487400807855553897806704755240687171681404071146624715989219338974002927144457279320719281644574814445548254477586667570742212597671309060544093423918080780099536330351913492185488251983836822710685533905260774643179315111562165418514208614374660449821757705292442953155228452889074564554505445083588562083318093800527431078281324704400249847526273437062340081766065777656947399443359176387061101660249455123861203819509780134148678973264415244668660998653237760390653679563319296074023004112443843115245716963893417870460865330325709394720069314172074778924909363022329544927197149020575070976924003848877493081365200150958106644203251593950086093687377786178437315954354955658958245066950791305995101615891335359577430179538127713458538990744374459912117746940521327705657700938814199238825781627646322881276178899714660011957050794431711885246804379680946809640810297148069741618721747271836527394870844837498518945134335426489705615041579247313013705737115755803837584300375760744753463396728766664135505706389827122443595265917326724079011416020255778023332864422126214752182623290578729131370388638998622267675739302489179174048846834873832520682012862783128219636208502441111387310133614908086785396283002663967539269090487355194370357773658468979499751848400546138559607094977242870306123923162535592080685948100609303760099531238210252777604015270573517821019196586632694476208407911537732289551851651940549081802553345294261679560658866170579359162071604168159563487533606928670536738767697667231126711411385101638695655796091052756872073513251645158901032452104865267372482288173350811646682458796841352485409981199424588234073658202671578967997032932629023972324958317640484791589747087929189462789390431181366994421794439040844696530037547954357458018707814076695914258568077691748066979746330863489341056428415597271077899905325446147310828269301242736547060209842628080348263207543483505452628989699149736187225499179656533942835695853106901929641731763253381853870592598037764264780849244996307377596814483839385149360692344426031441610840649081604856377724932052178238733621426307737354432840800180237521439213236005933559315091316272535450449283436132557668586126503605970188494297518488132371308624829742472951891195029249931607795360868301217990469005379087652189897869924412988516436311351907117543959939167456100736896644142667798748258294024249785526769638867181789997732233766208237426425033652582065572298299984428558151492510484001863381942234665454556094201032644379820661708727160425548369256587678101811440687782189109334080894222363840053053317833396287080371916861447667711224670613611359574360404611963734513179923872010588864788984242476763903975898999758561044400984485592501505192381162681396757642453424072443378003826746221285597015808853513023864088336314161341891003238537364662098362552844169908821818763145432022011621039620635939741992476084567618358791275703758256491273895387909554247128332459015516687596719782999590508231827244286397024113690202790366915372222974335055113387703179204067842199841990195271872011470344679016113431412656315338323428898054664301312983605687390086643756520938356394972945912608274048876247590801192808478837709775695774965556745223177039489546886420268063433604622391007737781047962653506653839814895117290101423576256285589764437976195813836921571457301126231393259573369294818226280207414561605305039731469381942047468668857598826154927117831581197264481370179460792037292222321512786620666857291455182047453585306876274763169288409267203781473284576226601705267400137669138567236609985033697922274107463465187654046983450986666551625084182073813026827799719901641553580672637105458728247365668763644260812827302523298545110517383264048272946303359749394579869809397574846529599045368574552479578515628107612809471005306753159836847971367921181789206536573432473586316749935039091218376916983963143436338261568232262981238143513423482661614811392900993219679296324307218556252227404803789580450603770357807263436806813060965058467275283638509730336473661845024188642654597461110619729348952744479268570616396567131434877917472756806754426906255256270588724875698319832970765828880613660713968325628446502166916121290477102703624999890466154402695190290387626194862522427449578057441711765832759341866514079701387035785577499850334572367475486620852859902023666299727605527270458166766340447444755155107302534109926883077897081822218073264330756527582102110151792740588279429203348333083378558106974960861887458267355363801389434902653072658193562689272706211816152069237091676767243712924569380321225364030986937064148391524322315351058003493605799861062358032554988279957727406633703080862509006123687556819166882807465434879760202296715412573165373889309495823749635667227713016232859389907908485725370784156304893876905910585098559749151362044954120607003338142874954784696563796774832229501525012982448287255643112528833647567073045128703592436526897310683529867638071075495651088946519119472467188796817761981088556673172778271573326042687791958837413907504950489032561116853499072446158101722311694777967826626523153519975870282943630556055705114810352749079683628866240220448229167499777678054200891824810495899487551765051355607344388763007165508811727029814532392627033252409258236053307122681901982849256739965948155713980465010705026198265998589424933526161542995756670465836173856012179262074700587968522316111290215701187937317343742459545640258920945724241501696566935112531614879112929702037193013586389251065558428514114929068247280346800754104232917719713706021875036917746636461563176958665875326019900591205000571490456334982833396850780880860889668297973344647192840534248809223001393196537649579461476274013138306601496687095581552011294024650655854079689527231930503928703226888876544667832510195875901762050541929952251362786275967431501730542421019800134064150340565833144466769877993361256349935887932341253584468096963273069287972306543569785745412781777758207465448530650879404293900704844903606905146623576944962446151635921276291899785946528984037251677021185533915495970131238617624422378534347603976223883356575636401299841738161912156358963955669704109525643115115729531699596655807698306970869099028013777793767084132304817886582187090467994639621434222828998171019274664412810811131112707767562398193016365947883916301814942243604305975544100039782338852077308460787400880211722261424879177170543846031316658977031161372369282085770783194295866436743198352359494044122508716555829215699059184048197102301314898787437809927332253048293480014476338347512170188466819114141803655972021759321985547265304621082182021836172122336488770023784203252635747739578207075733630199160416114184951684547367556201493938966620406684084665899145862181681051701354420746004936890415608907494091067678789760309937595128295085950339559002590411986476922891752282925494651391087429103375207409553745996067653549377661874975950593498071777896954165575148783741653164254316565050142921340675773281720529566349891434048816318065420661703764893294674543161178288858647470183888044423378352522116201024279236286758156191562693137137610778576442162301817320652863558997028245236126399556465529212465594774208193607994211099414448182758501574883899416681385617594608764139585145840424492634380753903649989187569543474828891172089248644382446116943654352566748461382531151681992982764303976544103112370494041313846537829121198383411377365164213007140430786053434869374429395365593224297000561184320073642556357886433214216266283622851116079171593317526567721849037814988846083930516105918354269678504212116032922693409015566432290060259321915238306076862167382540814998379938453120950766092364551829797450264221242031658156446259878440368634500613673715648013778432548529141708106059003852398492558538482051287017666530593223243694544052355581336830714483626576965524025113979886638332951391202916344905246533003741678062481396648875801209487840384455812368790062068666055274765875348673446310813345552572007404501800810043008453911078106960242934013440325100926613169482611633742972061337941825192585641449492978332862103331398812096680467275836818288991853965303458271927460520977492309138822409353781902968276359721778723017451539446462465388057433463026720530802481143051736382781500799376441582824096611025526700350985058690109293417547720441854485293840873911246830079779698042449799322448212263607104352796724317757652890004040487691984198298258800649273314437422015353455003466336393101519861946687854278477568956689776759829533730877715401707199010540743634395417888466498183777770493895262669678337358334568621133514804552469345060134727360479021341868682546968654685277317578684443533537433807828396807175534740934164635904722011117936189983487959005999688608386926000785042306284529297846575976446959106447097549751984909292498851536225916943564738280639509103040045889461283422625774936898676099871274003022444559115296224341680552344797718738129977705062704113209772504070740716200582241848917006841810575961812895949411706326813882763674985401705579616727951298879454416811958472683893280396063580563292082517137038751367639101369452568669597405696366715317277603165748551697702627724478052740371216663489755834857579562095884458559927062440697217151871952785546117473129811778606612688219701238089215670829999332271653593891680131142966895614632686100879127020890410295313629370353969926860197073151367570253019818834094905013316988497572396606923059228543011238975217838527622307744121153824214454048513823052135076123081460796859520186176868223730118585389623942513305518879981974820527610444067929873313957266032937360928654397216114892982519430805420634647593670235127973252341803961464407573630181367287591428035548472660672318279039057111863947543031358275958829512094131746579942226158320310248209677916966229093710632044218113616909394334529836463284981596639739557828476003112036392288183508489573006416571731177304151221993176204183459340552015681287397813078257037991588728239157895990910249645319101483859784009630086143485829761384955991059401317287225760925274707324045040319509547608969899165170465486311922131759453198694337851042931973687030259240108570399907819252656915125428264278175754239824865821286012228131328162433461566366037555785894654759100993095565110259750191592891233011940819154382395032958113225403708841720586229052451323933940847791400485881532699848588355426866870261868727209019392390814984277024594446333298870352339358706238697330161787195926376429346722227758530495590913344843224193170033996029834565143945631456774765737597287196512607349082706997818420425136635935037181381856594768123120992647709350946963263307732521470021705858249824363018664664805962836251256565770240454396489727020499109409400021507512712273786085337973149449132569437122572509919281191944592231278606678753215607069839768974709930344955442851346944155280431033239939700455503595400629178376191405231829316090588414159582540053950858832202702209169299385022414801487741595332045498993933823748092067151077540770963114046264881719008033785860774182199120618321789600836281609600066276635321172074726422535707100747684264455251326236856935040581990482314230304378980185869548060437273707656829570618354186396198974752107408366137006678909653292526524309993222354603673397081234045349808500266149206361998145100643191366773370206640807770177544589255176306673388403124091726893528598949584577821300941800329881685186462213623247386886060143931744620763545228032518770674447765772340858732232665517425539304942789427517948177901228186482557431689758600489611638927811093078346454788139711414682798568917700845482904076446899670138280037325623067897325729193153475876475751518866342948449473454002806427877886933684457408724000437852030897598856212387056664751052781653599875434509135329807542011463892852391467431570732318192417615452170187533503448152719456575699026299579311343392948177332233750466292766420590185648280246738972033316494980153074890055978785010929202351350576557367673452742415955813834479153845844486840535952688676478595018885777054180834809584977377924809342128565109703933717668996698398682764531863930586210416537125486694778651041070900701620071154090883114382080189258607890176571424676671832060047253616659685448432883821560706786925656623233830066653807854893278872500491682381777201111462342213973071801896947765414540934611056524816783129202627434608341554188830073154504950350500071230667677599236403509879768687112342950741954917349672788643802232338754396952615650540680577477632406604631230933471158775121695238736864266374424241141574418945004870850738989524415318010701045678009692114211499924237537263964764091528493546726831776752135090912354715033964926594306496630430073862645561759576874869973231299197645795215913685268055744913344822942106186862111652687262299835341880360645779874542319259967082633473580938335961186374255765220682822301536784300626932830801332061950575847813373678251024885145203577391265361811114179639416316009757548250902155862634722821415300562308610469178867999293032439009037951624352998638426220605743721830490715245776268710957537605752551817419942290048397907735031115985679647438677144526653045459134806490923435317136357395180615379770276111109798697444686618808984124288585650366165271584362675502115295905229877168109133575000988855656473760152339350061516898501678926442952765666368005515842615675750076184532691475056637668036525636610097688764663604519805241787174275882100355509583791527286809646010605058908654214573520733751914517613539374054934818210488349239286976183927646293076666255099176712832228381391410131442658964939484101077262126000542157261543569255130538629262547955318765848861705736964101549625656079696437118876175124812662096107709273408808631748885590310865199055494529612257625983884264968858471574584463035837088121318555472136221730097270965868314192294296958094184307516620782488522893267801932887459166789601303645148312244008458203493927300230272179149041469409822221538462619642561259872515079563219487307108830706226721343963680621135248478345361713510892624435059231481735455898805283597840551420585126931922924269465679314005128214615074275963884628299378013257693821944649952239558698911831076586650291104660000714785803605615226762596326900570970230912399807840149977324796985039103456343069360226196758436359232501539258074003688951078847878993302107496795825900115797353597552680387220421595975482675974645726022286515560006944165728323154804379604887648194637622715759064946581083084639475970269226806061921225968481933789309795276950189371474216747794030505491894512851625233753093992349072486377239104760914895255675518959331484142218359707648507082906273746571737133800021650812756958862052755113006110723299758682757255827332226516971910557632494228161386327315292647677465055349131779970631740258329335578067375248372204100426308221539493633137452404187273940301022136631764524731041230858681555843592148407921141046673139082574012962817411828472801891101571763802103659102559995339725601477779602412435537030091918019889171854506332477308366449061460922374894832631071829972528691981120407965608577739964730491108016509061909042973886754805861340643368664981687309539687597475765536503580524244094680094245131927424880786628053903148526428998025855755743411187503247290186457862721306469192925777036557863887020390050173914291639037347868571973814724793993085514310720492968406090107460657358086398660111440992718774770109363753579257645699581806727689292319126337116849003892488992543992393862697551825314902298436971234344517011565120343229929731508275557040642574281716013902275050360500231903543058198025699135136285143131710037828493660241417631109820504264151711183391026124306196655323091543397406892009425627976051094595017199871837918389334255225295412853318756897687868719129464027367070703888138044304634542217260781982529971964643952445458215663976447912945244378340527365111360326833110336461305280504768534671209690269817436268592215436733424934779629656821391276103896030970719412095155211132553804452493798296202264443607151377535564354176350240596224499806696440338783987147646536134124527477830850210391555561636670273846065710912910877751663312962396875715761918650762384497382868620254129155166534493540042014366593247363346142257887245344903972679540371262762936358245183996057113791360020679798754859509613509566476778050564767451749728749897105239686573916306832655401414015251028324315988656336860074135895901049368948052805957220578953662782315571217900088318961703490529161413691216087720471165281366923998667353335234163847683366002694613074478911613112136956971734006246659319318120994171061201719121415477531780421322832398084917562087045941922146227342116182306866471295113947874881374912417708563769729175391700025453017309095934181913098513132546889419485729415252307804351975532770175995835774176841958126227100337659575980431713267509834226139348935028576824302998697494763970853110951960550632005241266665856521975343472740672685582044468661874028819376669654155169003019234866004291877610379908453053332808332747190161630795641041009802930623563189871787762461974021618369605188872185694131336242236421263219709900236515480846337608757375907422044464483412725836073919974443122613741872104499987350758145791193712256983527987841888703552748517393161233385987730300053346941180404614407610782892637393383213956271351842023477362706618999488679492980579903937296046199476707774313159677778231372703172404775956399522102427898809516224950951840987484592653103839026515239070327717067289528048740931750481031059517343422903120062599103564892906159966573089436088998088011124343533841347057096181841815916169741658497537554212901843592804881279398174611956168151780110450144696606373537403118343928312078353576341663069835729727879133305269419958862847945814863379832279618062702688123699325033560718907739207836855229285636005289507111960289293630868052224157830172402730264584954964080025804565231077178527150510727864354283658764595508638155765463754503357734470509377555579481003055292587930620155327424930274732842338069627280838280763292098600134696160224743441208459714618645516917795123187465651745039209829431980483603707776994564994859000046178134755505471785751560472473359200832744209984882119414368281458720245140912013214615525444046870476557810205959890404578633922273561393300067948702773676828841255396591419247378827468645392273315512105475401631796283994476067567448266278736062845445846257874567700469225842799301163941736140244718661304996395931082139625992782062077272502601780526539582791050591205981287057664882927869687530597346532144811215303010428688776030600955173480771777008480226570003730940689146148904045263720513314986955886623210333377624664816774236729358362017703472472132350873919805526559138220111600815303124413277602163857819403340840628605166820496349293456598017305501267302307177397681398210826442740590769600593743226448530214007183215612843932350484741176925301659475399663752882310463845948160198038233290379847593321117271277851886622420869078285690203738543017472793962070957691650635547299213422527764278749505370675493661192998067669659349869160981978888290443538276246854402628878655263019992080723566030327316195609664637618766957175675047056169828093892818875982087600705044937742948126440558511860555581934087589613446800493595408034459168762085362837539346309799838674889763159553149665140978622119220627100454929968995972752211520222400208770644748483316998245758035703877478271457709438928230389850322917029041694074208129598706668175371118690032092740929490005544241856970929340307799551376019634916123987732368187794275567027607397759700969604396961869274698187533849959512533562391636099757304133192639013527202552388675308823987133610662265085935691290072809588467153177003100209249256434019080610422158538774420134199938594510709903475983396312940284545427780103460908680983039837208684574100592583055074197180237131736841534919945469189967802502519614322801668865740651833868979010775005065554943404127991053951709383390336189918260562580121871899350743846345833372495693254997937978692488446974338620387703645321740540404516786442915834598625254608063588152371385700740648665280621685834532924262485230945477034496036631467262195299664230628885183308485171661986796647143502147226122326935876793246270239242496858389389471482773037997534219452233532542381249481610212748174536104830894063688563683617821404266516999361929215940658555797897013598550585800221542876795932317869963106073087855153954680522146606858214854151146314998189695327508307035867434977376407222220315234101105401395610548986607551402637982723104611177527885791436372800437428284986716568186151524495481033309116347976887905425473946728935170311755414891302973708136592674531325315562239124786477386604613135869259266097187820904421987632611318613207570849941017342117041749486238704068806799541460521933767289610085388220937652500375707177270653673016131052985049453117811496524841358014680957594020771751566799560410410134749094509109051991153334942392739994752625544641512721845682765941248589746679145869828260319232043229085275066655709002648312235058087356211936516947442434001521541747766238084132191231118897329433261299513078019045792762851748483413835571533853030543985095540488436194644934532029233436905846759642266551078291718606854354856390804769604134514456570908835357668118060352149150607337466957475005576621249596728967710718911076684776444944550117021712573984116758240032147764243714364099660258130183277398478152641416572729991541286616184635450906857872968526070189823540550286527206292745150952305763473434702226632470790582235480168228607485144669072989104809054179579004043141623928316351744991834785291759819369268797142714907031614001807045966352052635078840669945445402264065497001699464831369738668297186530657087301459085473390881010151997903442508205338321027514777416676462020202393977360778165618195846515150305708040492609167484534175321036476018572526166838682461062342471620485206816827739871983990910026547510812429743948794939834594118254104447040510434134918168970457243782459101184069723557921044189241211208519369822372152247041072076300469183896250369968099388001309709369279462790626412835809085740953810666281327790456319925906419912585486938706108934574992204570653151838432211068564599107037398702289235033556026577319806501705012130261975661664092537175323011398173758214238574709826593714834254066125074398490422360970195040090528678986442267245820966309091905749497892889679013643318889293798169481367446891179965341930764648840127107106766989318569548275714034400540720178160350849742426600819045297738402349620855693606009798178923532721309770425442982189333966883852260433733293545479502748971462397743593698520377812570741419081529256756105693734491991448702037188199039282078289812174732349209536989632906801323092133443822547177802544057736945935689531698390558305652131817352645087198300846176288990096894156958761514403588998723158447308663066332583145070088559121387601478727102841845249481787367756457277976803920734204765548092444986568128665782510593059695822548562722014996448666666264947158096923072393060678091157728824482066078337616226160294124447636317381234385643672070713616135508259649154053493099023457896643098533646526841329309739724182038360383665781775856915522375917120059832325391495466597683023946642169490921606337993903889128673399882202062804943238104264401553131236138904327046187704787973107718487733055322981242569450952852459570101348715685360746906821314637885822954763246628790500281788393242040418970158745846433669770089094620019475513662799251603563752025938180042146660305802462101955327618074080602352681676040660554415039990590593039880072828254599914279410467393515444555079404997598587247465201779929353409990361810148470110589830081590983871301977371988828418472731342830998616457874445193632193192409159008560580552813163628265945340122232595462932886589689310169858924867399078737242914733358061431891162124543606311140682234810853568649547948275427591505951974511432741011653486384126401392263416583374795004672084555735159979080645431392915489693928533974881559919357548561087907239074839603785974884199595979539056761346329602433861627695151208369051369286294718925253169138216454020818817424514773606582938854470754893092956257001007582587572302323590962207153966787981203913026755623097354753524097419584472867177246460634833319213939045555145768641159767049635610502830027472020636167569922843144000939659140509567406573085013186548510423040780552397614255975234633745254834095270109004641560347755279512840153171903308776405537260585868009265429373665823825005960711785891856850517791781055845011381366381141142394003247203813670209087470157853861477000969318649663283301643804329861237805838511863945865555952686054426635233958032218359314877838545338434871877805711689575828121832997930660823872085836177599861208595928167963112522578188204290199345082512946962264619619063822977373356828272136784980839698494021656618932187500864838624807261110748504107574652932642501966068876133998387957722469492814234184711009406241762040170553539650001127942179785267460120826660151962066850296858250055905130342067074130657896770923513869064602486400210241325351656382203210513707154054456769758111126447043306409972504440860871511621554265822665885907308086380784058525561151238433324910579657003089599585324654495222032462289029893888338976627200653238535348674755780628762520593178750138117365885274847289038128380498190136538647711988977436092735108264539167089910514848101610131259089212602814260630267542421928684322858520082479099866710967174586159329783801155301960408522596696844159955607127984471380028382421287729998001286816539046250879477122338020763890962792177363090350433509287715235378529436366271725201525950090967510938408728568449323377745004743578361789294979700317939697686763273607392185688130625939613457610676351388296520635142383469596363342737380282069985015168918197789769327228933829538843337240960357406342870772086188068237573754088095611994255227115228997686181611466137342388501412669180811118721880052850497609060381613626249955815357200684775566848935764955962139450369392472590999071411173535766881361828519135214597010435301481183823863830482945628468433778652043798231374905360098957418650917712389208442007002299934012823747807933112628896893129539501964702790651024463662007538222809766581407028250329947091000153453152184066932839851888806736757069158622122516861281809897099414292673830112987841049740252679477858495328057571760161041519563407446227404623286204748098426401932460354068373385455692570734588425041866361558768225082804835190758107663536616257603360158252822419495031091122063568369327931749679172707621357765025238489917158180278026862959448377115130484196425567814857560208083135094615112682571204088945739848653879232635386752839910996752114996143455192636018905214260346500354946472836748070085118946592399360193921674368676213716865452413945563597155534501333277966452440037826761931302829335262826282738864590505334684685268039707043735578495186210430730530210901393659420849898331708937143956844353042263413813339649508109517445429384014578124418606444779328561089652360869748502500688432946975836454868245813928138606271904375083076879074082107423777854466586793783126448440588339139076327001953942369836398133415867634745465771031466253550930117283267242359502221010257031601529146030834522379236525337547131444180793100755670766486966220452306662704314624879257978271353515133282674175534877797165139804172956419531125014354964895757239041657839718368384353430471128933539198618703677827390256136466361041437138411039043348420555887791092604293395352393740470818449330641968226637145812636441446354173931221459923753787038892026731802246512902604312430769212291436571501085592897855060478003204123653289567556091885295885800628031899879741793228390517991653995991570232870810434769338856335352128139259774321143487600601272299985073946110817305588650923894351493482740352069954043751683189325558358500894815017218400229415458512356167153338861640029442230032414406064805822658898533169950309661199708422923934269800634479383066818103537538812483335443511899991955261249400077104288239433360479939536828167712795129815750326999280897732565106969070469716065536993926146759232315080515747301937536309161366726708207682628811024437570914743069539686573139632697216173191686859594210432104729521462446210136714502394149793375163964064440129486833088330738082372619930622494235706123664527505241753663099714591044369129336360473126379411375874505392730171607908047568383136473464981717929309691890350397107734740963234760321658364572465686434966793983601582939969208477906191313575363391423057361405399899801173231943230754036902650926305929243599390937164368934088372433112619688965476151724368135263156500530395957523499423441538224866784417653091822698721442523857012768843802677980773869305365919928600657621847943952590150407560706472941190960019676597282948820196058301851788114252359855090841659248428745742697977017632355917542392088034291156441819703507387311827600614529099741717298981313846350310881950465738839122240841712614794813133812232714905892707197847607619385749633943145653494870944938038646162217051895788357266536734277959645973750585306932361644900561360068678461508566729701967586971537245388918117970100972900466765517499648750467710180775753735119257292094415429471114637725816485065414246611719668787692258664545528464442149549159480953662917059491403714438400139434918013702294091728505360451709211847707155707370496508636251647314499339963287429112895916751425255646425229510232855995515657165565135746004448345738456859495546702131310817378987841175240000767533960548583005897638389663854698958133358359714087348562284321689112219197084420898066354382827075463442597481541594436004158370396942410130652144895897304482474174050722134591294696923904529588463319833242757496996593063614357555084388214158356580650801882219343922986286698257941571998851318135139026585634164901182070288096634141787443333686471784228014413664212926525980804163833172723053654787487225763994554249457712527698725030821536396220367042179954256454874645142991328090434459815253539299225714578453472924701293610062742488060825878000041048691336373185081025979635349209207785411410465513106560105516903278065420398471778631169583949794579201591556247033603018203934643181871293089798257271445976493870251930808987976329390956737912476300406495976607400534562041852926071454253809104215875823610727980513095645772726233295857612987586825053817261166206496970612476073413143397861062373824593384760480061110010230201679490832741512022868446512674653678363955062371416352259188920656168031137464345779025333046149221556223047602846459047233481850451108673230455471726028630291812876085915614260537054239078859910386749476721744562565558343888715419941198479165616241215965070465392454773062396116032967771612389494926961052031399724966654151293346835878946480155464955929297634741763418897473301341757309136509131936280769663294790619545569899425763552219398324291509401029616893159892602188358638476571596826843449313318845442409285083179560680143344468749934210789801374330211534790735240534752122104628004492387142361937674092651461386652369514123373020485733535231015050102417218637054829451863792046011655660849935557975284068689163169448631152380655583885585570838757942564436257322952205334495378426202930357892842412745840140843633578256212121565453664052438113850643874533601533486364545734411377005383887899256900383818911564526455474877184471407710382189739430679323663781078503918216777701303727603839691439204216719437650292838386976372204541224236118318096605903566032560124065903084606662049857355570939347479906095730270828365022472745955978494750224776151384766623459753313182192653748652660050199329691526551651096824483139728133055894049949176272036200287659532258561977746176402065557935894267820838060430737595435738958444829819955818527032641359114544604255568952449293082575665647005666290113508910596213799122106613818559875038036352913515965238280363705564807601974377423284779559348765699324324998270047625794471575824344635599328686597702754372275271477202097437625855939001348159968695875019885202063982047207996976507150758643412391104668516482630777810544779915926470491739291817576254095319967493243803741929514105274173231617458846622865535990166456307878985658915083955275441640568079767747293696697045868551717360296036800106272227343770232100339696050059264413360507547746769345927679547566963436369026627888510863155166791154301231865644495507304882266400155742917720061046616918162704536809993551056201270971288208235371596426894231967714323788328356570115795858062980021269530701037437533243780141666763474315935556302114191963638006287045379397104819017776221683567328024786514431516713548214291052121476891839753062644284156068149726836072085980614978187975855602124736440924027170642614535370134384096231270263909449053588172997611073120664357354069753116851531785361918685259213901742797548823616080764401828188119975751180873512199336100815844304645933149523655590376277026449049346792215116062593451738364184364978511228399069406906795905578838482169391433062578448852030214226002862360370787120286258256437949299907880278429504074630165650621886622857952574794449087321073100718049257309019879707496813283355557980015286549117682068031424636324091581269002217808590881866066632354258107478259018177504056392256389761088438970770889791674366878474676672876215339372301083381381334818041048642633006666989599673694023209525278368862538306251320594126607250680671315059671293550809976805708943319116436149287994242888690044143160013129142428292187807828942502589016508211103924541340802683819375648543922301423760841694547081192355369098351988739897144162839282466422286782498452137143579149663062761940513757295903320604202222012770928339319347430231142177052912022303255854088576967652812144692294620116379824677928342472108663014300155089464840408499836749516655279508537461088318884516106073966646530170490901655528802451510871779902000112669705273087954523144615184258578851414387910541344896476352521546490021805094103507091134727150763896793546162764652394586848593450491785605192646110901660422803652279579570223920135366659924855817918123715235051990165950550518187223014018929423785257164805753017554837007644608460015970686147595202236137556269203958134249825725447793297634535472224829511391358489840688291985467976429383329707278916268123379013624180564374922596877586274532227011695649337024033665700335008682157276059504683997077371130118169172658288529526513967524140717979016648722591693759835512781227160428948199989123177794822972980644328153513541308387867042374690257345572810588769840404327951210216195509155806133028166682630247670788792946859665123963004517299742729875580181249298335526997729544413492100502733640259450577813501409952053384143499961013637843154047680166224173099115784443291868788639761021316258771099452995938152456122658380952453576162874588599400444454995544920750909936636435060787098008090925571030130560565250598192256565205160406522715989743231427440417417097165034504818761452198638276995293372088414339640236379266762231811936972062748818702768151336695632276995519693498261707717700038450138682212344300083397720042892849766306546567510005393198517149426008605006387493319678061385188087098539276231012416447984693940700548167294680925895127661994049496352874274197987801702937738734928602574160249857250008735076655595219749281412466431399739979556131573690152470911306090981618224228261309600840901280081488460102624521507796198000329271356906983678685010323037710348107938377341083242245484218301581074449302979932984848794811763399780027265892692015580175427185541002758895284114844578614818963636606650542871992874740166375934706076035352528322915636086501345123578766573817800410004764727381382954005417879120232673849677636577611888567211913084531553881670116047336677008838245564201040427745441071084838549882468994364811943591156627100941335833143483663704388051419592850372496150005285103938304055437556592893681388730884968285914629602669633277150401310830267939435255522442527788881774231777622558988620905415087718283795720395530367342017578548328246340197005703545940411301016850803743931194701158293297575886874842082900094908123491138060386207892290398380472734704068088604000758380475268167460086626209692136899866129597473485048505813644439993591893298341000015909270538981844336288643651800336274227700477307825417976796197319416737367635983520757911605655534336537191227158392662789325434422860320903843153328498446338480654189867441535377142015425048818421724794485222044965497859203765058153597121181211034761618706840897789659261902209943265612972886610735866202907520796303579302725910338302689476100643824338536674393050605323417397936150674294663063968386136874483939188393913705295332579771246312763349488656228203298395343238307126918809295895065403252854418549897221037058659674821013604799924848419571601455097609588957172246535891186215690609194911990736986109561194421609007705513638372853558126183419732178886370470550772899210496325669617221983431920653885558376187482783535056356604428464586414324121059919176164786920580644360424734805871726267824239735094185772553078563283260623213293455013811283534557940520453686058045447567367510950431643502674871156421591354853175464151968142448747322994612272141718593813200768401530235768815619638019038734092851091265216601472541031111091403284755903667042402740464823025815237431969584555617628343701027563771941106674359996994629996208967581208380686491463223284199416579058285682433864366643938480789512209126165608137211881536146791680090702157035196039245112741763840119582618020425747551194983883008030288942933112357592541685876712135877331692054601926626621323826854637216522692116237497944451877762628465314317129464701961104511409217649596664015043217147407156625139526865545440369223514724113332006489141723534361298528331217302452469661471042687214922977966384822114451605312636485488174357400595268445466365147992142556658440136703046568597458494430685341060708830919656853433348958168484694715900743536335617239438592114948887629175153731137584036575305123588120075333389839608020598293425121621291013273705386820911796484207249346858779975958120948255533334787419771575392777457762952815061270501132424345771989018650074193266421621399532403439660464589526596442135980539709156937469084404428218615920451488128785894948962532749033355563075528789350047701929051094168915620681036469141909016826060868276694469338799979685253385411062175553257845860631352935738945882911049799176445603526437724661134337023515539286996046182994375669083399595301928382054944454022103512542482581210290485282121549522999384334598471197571301654822695119465293843830419942959368342505424681829170780222527527007083805950694804969875262380501397379261374514666684810730172154585244898276048670634117438222455949870582506285544204093564679788325481818201888282378425839360111889672005749124184774579050070362279064710981643787562704104388047036670674895075105740702148916769340669126648678844021107022366224732763023715089796625164492355423676407732472181779110430921244628492996868690618348202606750258144219008591785396324690590035813045527009601231908185459009916429505124547780522545215136323329496358262749231944878079537646532811489914053169229073411048891189496104772709855715251558432604855358980471167280817566946867355871312802224728906204004782010125703270571403238708547079966799474582321731576106163862686865274284420300105267867755258795785897171535324022799389794668186778680618231186143559841302088250497028229195333202000481780140199281237293652727522466700837916697719486497579419091166651124411887286897697345158392479997891653871970344318586488360227880405575773504872205852879400262225949598170577086871736394206488702613384194388500326509645899903542199696139755279540009056900257018284791368856706335755056298008708516059116848705529120151543106304167441353692439376054658404660779805749961421448819883118992058318271826118928157600647620898286904185694388932349158138358586863961835058598714508434346333489496699980233191756427721884829954603602491409169951539264921852809102288180878156323523522942070331519233680499517230464144610323117064432546202791429102284775637822105677291866542546147691861741893372557676487174693637553404647664510621962499269824865458484461082176237343790900704691750258845093583657388684208047360560379370584164640928150350767069008255688045127983941879162072496063499432869723842466480140134458872467695751981367701797388716226806589228417653288554984444798663804470071944890961970326673910171704476408600825740458559421647234033793637153757407753595229414774294302601932078754715224344773688860731248903440126337656982892334305101230295183695015763984795077086450430766111173227084530642440852414718033591481368855966134894741432862711514592643271083006600997796309856387631563848511784051785273255793847868362384962547478677674388067807611312926538796806339726700251084579055355825066922383075085453505421084652995204186527711783744102401002513546226176130652627999748908785387991218656511388902608684198114691275447803276807402162533578028727984985061604665037131303516810490445397000679100587701907718558410030542261508832620039557457750243906366723928166015463010278677553765951074250092634364237578281150274183220959558469405372951280390162056154384956435042680845441364128624316050349574831725386908617239444381911556372645036276331321003874855379244693133075331496198208508669448009754084398066901545639084044080385461318914541694297999469878077897423356477375251508649047305945518673666996484724856789912666583423761706748169865324136540526635578502569607557678219167865086461437236269233579064034353994150679754297324742524420515131990892585891109407162939250206053065356233616286862525778059770157787218403967086441314658983560994030015460977480057582967512189804635091467267467639422762623227870063662202124407584813336150819098157478896559080576369064123293474839844666414432179507950439321311319764751790990877568911201462477860476948511229935243916659345432040620111201676662629205136507228029959559574569716566767668127921836802579294169713927896319668887684986421350984367916716289741958997214059962546269495115208811557750850473115003507512279791325508957594347616154135801283997957456476209075304910179021862687824372353462751681462228950172793660321910833367638125164856967630426508779213350213836790977212231446008563846874235014126489562234646197266497350610131584839406568578160419931169599292838877249111183397729744483304271412299583195021861857154614635040989716382282937810735808011236915447302656139686986261400044915002710702447386343390105080973033078464766289449709992319074607874216460396954166886559289756752548842245992981904834291979011115314698466089104785114175238132173036557788740589547568301784894119521849232180417154553543931503346582229420478481199601462987803333900662090483508469679151499997605023724636610527678028677132138895737829832779825140919596703156919421430860050438714278624365966862420807886775374348249224323628412122358119229045289181510733180199033832484969778094688400414173616818489705086749642946802915178532855481185599084109840993321649265668178048450384942313093369581465479340533274270865999585939084913016601401803755352139366611953750859622090679637675439068213067348928340442146114979371316930336093012667487065965239854593809464467650257976081366417152709439792629151252392314939918400775057228960230683824161475418385289818745662957721549688977396773810633366990006338633227201448971800474218886359734208259984765521226672837640451238050328210271110227255431950154371375183473105081507885929384319914843227874430829003248509277164423012789339541580757685736928364151913010384820206363901568863708384493146575067527097998366141368158626447271120440360271227155259527236527945763953265944358543614493965060324706487927025125695603811626090670718678501574280758156936077043830996691078383414905191705525380281760242188301318066298083006056722242403468923361947694154430756992920121382197144318053607230201570401752934346994061998701739498416994422238463179818362011390718953589495986885010782131605389454705062936017463251906166006116363334455417468139837635350787489560098913724786343115410201337053442912161836921769038545293209986145317613530573681729205197511357305682898030510959296141044014601631840365517288748869428859205830264320797840840345300515554793291780870760641116756063602199664390324362876668567619489126288580244789357533912775323664959437155647341924527012411327428120380193631181629845255811490362678676195899620890588230752634026095331894002064345998599252485785739007273990377822548066715052075034424361507865066425377413977527851393014717765710589495978975641445401234527369998674616313184748940271326255796597416322232128181588164522790329903499534867652815256105092989731104702014767014416951733289766572155817718622095696152806754912029062682253714372048124419089868388351783496200925418028538161509026482262566011660160249800392526729702407758285305996440976631937653371318556865503733417494494679007118123600588064566364069801356353030113596065493882542864058236487309777709959152636540366256481597745129216028800425988574765587758583428164776937304950220496942955038872286821219910379847342860448553415569730305273570824680150559670396856373789443110497913221856638710879964095986603097221578675062673080283139589558477750877994624507867780623688084692231270576007868524279197179079448655001027236812296293113550347747352770289107950162275826138222752316937338320398873177492578093361813313892215632631193525705036120665158142351950375946869013799575654925565965107612727722614416253189923664958490736446873589761351640550410620307973669533378666457376532989702492379398719328781500498435523855500131136639509760178298509617469192187365579952773291304076960629623753788497912613562949384107799389780039025681929835332158829797340218573320487404518722243411886445908580626405688075477264732884767296075658303138965293997776449616990867764051057157236994153669586065675681714280338585549442801586821332513969207467809311583984496057845794144109461645405580151959513578730962659561304643437839060519209177330917955022810696159175527619975552915616519803542722641896871310468061020757957262772410320409774866449000113080769536911514695663719613124619217045924017154891055291217646275496756641886348727431145268960860562177464284379412852308171379632968913179011178411835538118225399984394964184720863778572178514119311255765631410701566673257675320904228654841051206359411438881167239940160442779341408024520742883187892963506592138330558567232055824567981169608227164896423310911886541212906691165848289051783366761095173534872527771772635300497502993940543504297430617223718736609633064642206970456435344455535312226951012979560074003939327552469403060751808360143422970122160905122089670657370292580979218377512828404233210816372383744639337904741419175893113834390601448972562636881045277615917694952483999923182290608235741412019833671958276738183105375975104616343301861722343626926535041039775175105470949312598235327167619037605820317571845700836557482308828117488943813325732675694587895565355785623531724100727820327288390270588723306148130786286708610959828848634494922376096970328585319729085162055983990640712434324446472123190999025628245467551117070455849206037264787865216943141242477519906000805404426288241516598119701945221158944626115577270379932370339595995136887835970449065369255564847381943534815772486404877108987491765433390262343056509237200675062070236219826789562694494926838846164875465226526980442904555381625249344192567127836653680041264670684475552559845943549919895096476845476639338506389726122196768193304372778683990861929301604408327661015991652064902940936314931600688118806644446251242189172868169856897725260815698072775454827064735510954307239739371115339222116159616151391857808691651534516075239371170468986654258298307067075168441944083121678332898152499747490857835966374902818121891491433468498966051474870342001814443862071772741179208358364721621115879026148363563295753525475060730469755612200967566759848841942668490332841398781315316165697790762641883729384739645010928803133164342771616893007729242019141605901326456007262254734016847091717373387532858943700317810064916202365137394825703891772129882187071283972252102238770244931800877052862193959154081780271843696977313509639213526604580863493087262993779513479892373386977518650805479090381726791834688553895604108290842976859221929280193968299579932999266875707779580716196925946237381233354728347748426329934374243693267997016373861556434232104005815504034421669609812429301286818447239235105096281470839904708597243382729458121431820615291662967163913500931530262679619761875118472191865213431105516042590800753546583564800519917550042144466211576636931507894023419674622521176789814555765576464082589369540564694682479708276654946577344782433306514500424305446898304548080976700798637323931938328350279444013574186323128695304162466580498199492293623067373492632720662445127478796359428438379177943270585177359919252065447740928957005637531895147857788822261165093019886506055910820111407531017855786088485507007040169328276358125367470974868323140558368849731482693626964642093830467197351479324495279118160216478460846348772056189864296988816496643726185479929257234162449341573462544736069628669101204810915801187234987542410317320816410015552741520612751242382931831215186829295401127391631436380916062161966673734844632178316628183322837513950779512123093579389093321919933869614893014436578890897809761326788645574456642078381612633646560440985082036277310011989263354509678608378644577327677116391372997190018728915818356674778397152819297362067656071377932580958126093771744513648511755381928624716188833020885766707613148649970749962273131934151501279162989792669493998044093079994931920264726442971735642965463924318067158291805540570431620528649336658237773736825983024909816691312384734322271418999564884917719360352692210346282496422182218676658874070769223551467577987930207598959042586543106536148776790671882099559562140168923179869352406551531793637077818449438797335169270203152489304956870282354949537772019473405210742273164649912461099256890264114392513837433495501051675818545261071882127784493784574742226378680952921477103819733661206443695942312651644620230420930480507417493525333296453458428497204880129294411907888173640875157796909721786645997027227237089741554969044073355930897239017474320280646400423023065677408342780776351768595132870831884951147879561118019087811749387736474916298088690391272813531662041758553294305094828282183663884360974459790436280476347937082235873495829556417139922256761555199804472355778749967921318729855313985530574507498890670361428637465310707593695282325361809489271392692237579898469688426183296799256896338040863539383862353798377845787601315269513805823208525460319713909387077636390162011976629115718429327503097137806064226063210256629783835406067625054401673511065551870292198717400368973269018550866323923735714451746110152996659368852426806234221174435000546752060079753883937462817471043236879234454383844194135861933563165530231373591099463112182789854475187279696490641670014975293285886836021145472269401925991830118401326331713361602323839215096252015858117324116304089375606896406647606240264078982913214122266304184878414969299367404060585750707598501216612271959750690250379610946242678083380384168401129468872785892029774248694755746789347312828749630184782736851870279220042049296698374182953679619778872628059259150084249511432321812744141000196309121801589522242809934799681842029173662260257969537300654476319041094260078677249265167192185547542016745144970013589615488859494617183380723390926777221261803965710819176744373772387895653377814045463890321488603047540838158172484972740569792585009605716590474449125989508580207780383443114316625545368467219527343965218787605055075974133965562610924676807538657210059794539056954553601827159147077500946515479836188175656058883505263268223695388863470866867396157229737987748252338493648061165280382476187416429599236573055422526661874902898481073179817698226851389614478255253718378280374880354636814074363234530418116220294436703366667092531979416486345290682423593557830755278985660482683510641735686957804320796441258712647989554468521373403378251247435605556279202614900151032774875042341408675087007806669488887479747340039946579550093033057046094103311514273996220984562254359208712763454002617857236923854309529653328049155855905646210761474977727035864841834866139502678125947669463565190867696757527888804579900419260420477847475061079351485708426538729271960368659021124700444464349777642103146626694564091528382869087097585970029698879405691533776528258609053114928173220374016945180336679465918994653869174504709000703631403250853329899780153252350778545532838729631915815955121617977311021548083742409956788814537458903515811615788650617850458001130570403765697683617078538022757738642336545460471404523000939365592941175944467732137863784760267339948477471737462378080050013628810727706782892354780149467235375547186864059870677927096847603600092510341001085907131360498613191108937109946415165237478146127420635843548886366851698338682866998307413488335087894161229535240377160128261827863715777032722840549741875219253226856891069213275240217002728270225176599958734449005727588302672926129878609338708733164316392971059092468260083731020796047129983000081140703511744804531525634728329475491556515200638312126781187691255443747567239311927641409000676903983704993557017592976910043293085191075700869929200167923684235536101857161511437788620772098788896244244957583553115237100678970314942133688620260538635342736837077823193460631029665493424541770715485218910101748467464090707439905586189991221344260006781041719627778891020414231801224827708647358559318321948525878256754543566547578929841282874078642066340600538905277767285397646709185584838483408060071907894394779066582098057857901308117176439754527360050680760746598625656619091570352076938843088893503470207287382592573935263683347947543689022993607623818306697938479890829665837777295337165896634850510984212799519335788730805752193494035053596432767413578433893178114937931176652079936202654500822024992140594324060186299330885021565026510461404941662527462615240572509680175009963400962601598875196436796272126483390891355882839214906743245644013599930143074402098542534562395574757050831275148889731643486941093987249167240196965982707317498978301195730849966593400455992205495848977806787920243497870849726380867544094174003208769963401977162791281236682459732722791920384808217191074117500458108417154116925351399284579958603974739869036227434074602741812780047652128936354999175899026828584889067360152768943157129163522111245476579561048323714830059029622474052639759177556723571313560045346773238015286013661353807926685849265048613074582976989238548592215777237276410618938299239417479529927206180079273302490236903288243931689668708627750377898295673826443115774027721056609070230156852014835493912366323093048218721203213549455311474960989708086715509579688714027529359042150398885987154477509666773632091846378708029854008376869916382518567616268069832406078143104259110300089337774703469718219012727326868789703362348440456206794052415302399962750401273394923288874067177437989465035064198677060564283840644120668774204915882053843104729359209562606569140162772171124711708823053037882540165214747471466346452024165651201062250202803007715688349762953136149561428217042776351464821799850140138948802908443585415450928131546963564991518175818613599481210090181803962020622641581950801675435235592957039224869712109386687273498814065570117541273040869220411670195247231566010152590714090833916306444640072510562100469950129886831817686878590358389591476299009527246067268114380907899239243338234782885194486547016740122729930048539512765107960725506719103018348557420455679659800955817448141051371803782342515904168598173206732485911075581237632640963631287810362073086037599356106912345059782540779704061708566125938916171321447779315423305356405130402638137100706495295395681236215751322781010310313584073686819702674624317709850548515496713466899299583742048488375056541924475337899622453528322167644848485516704009253626197038530279850082205058495419423618921146640106617123228425211873471126893672474030495935487023514749009662658682179974878099148780975131482701394273083481738458442068843664218008615844529774923796099313187133157925148066253233091263654882464470119655465181387600895446116697101921455905234121724671183995732078522525396071258949656077046971473655244051221372227500266524084802386836845704312370741965287079755981246139723887214560876331361527685826049892003640257775923674086782016755326453106630504673769693326820239871571332063846444788692379415709083137940390377689783516833193607469896223071031147187091806369458807061106947542604612815902606008169139326652594330802614957873722489601895436596472184839137416589414123552593912667449235905970067531956716794488208143164226225469614393298665945345990977819378116843950787117606211321797475152341730687964885878948691959412155490943405606159061663319528720634465612565210709122389745643016799997466417071052318228693070946507997262155883402609138849991563541150363703400292935618962489062560381800748031860345210919809431958791465125860517552449332011063950505288376708726075256765998430579461072570031735220158379256336859542969614190891802241639725151330843746193557764199432782453984110163298812869592292862338357480374174746048991415298564248628316533761420734124175640162118202656248969349203621502175901629694585124263141122655561173525780200208567041752086542163481078814830871251765383313548577217777087838013022625990245673795333651485777632875114733121061163767699908013024455296821384728668968631137258025839761354705616784010449314393648803542269118973198652750754771640981969648826338170056784006385542268295091915185322656367284202996245579197154626118969613806796844191218756621760183854552785820460565204594234855334617001820930159527841825088965600819557160952160958992236597140864545525237299624260809973710411595437087390482544020966779072239790243982661924836393313488728020050251467483525890679557745483113490615813931536722928789091127610090686825232349086475168403886313172669898282272685763086016341893095032190904091470454762644394066422781356316232232974287980395615351151319566211804236824100841332543244928871805129156262664162075435560123265458002682240920260070423820003766237763398924182961323561871906647086717126420254088732325044776312489588883084720947091648045910761330964675455363841912482833795598002376360222584480808301525443605991129373691171504938561680814944378909695317964781606593972879370896650317871670655175916410282225244157134872219415565897873595595535082409995738239590489087614626423380735982745663590248432453539490208294627227177011544713172585328091382347513289035622049000687779353886785639884536184487575010989225789980864594256011129134611439837027822221117131720302244653226418704712093917447546032005781448161161412641647857416517395336387665902403658898919447367174634226734778297792166285841738793078327317263957952570109746927974219144512080420814013126140091997326936433100198958778985037933319782731366370989884885614061876306888240842384880810089490708877769718972872694915011503439479858109459376229136327675092199948459834398869020399452452075105561838484003977801416557945142573997403251027872993069057625601452673178876580052230860784555746984988894268799332276130420095471946163372796807453655889577735478837244520443757894392983311030614690667909901815994498681473276292386029286755169655561852691984355134171464983456941371825030292948340269931723742820489579571104630181134917806056235970305502950506028632868104291251745522107598040218847291359259529957218129130411039198344207119105634866051561928963562571854492520569369664728373605450044853771464401447101597792012407720505924399088393327130008731318492772910634743294112633845282713574201373390129635458226835962867030434729067949591576796674190517131529983677119714705582227310175936417090420068178640722591915316756238286943000513408135424843331827966622796027890153010584732999439147030269571884705162658991323448771985196421704001109828837296728940323330137952955766898782547664435407076607033777716722821675754110676329487036207965851830339697095723427462987672157902489878080307825661163908845166489304635175380419235500900882026226982088842119400030865473030807679240069027398352205169396479674537254501001089958384972377201767582941053153551696706162058274143828613795032828004365647948832680684166256266895440533563207393650056463487182459708137100419868135367884081783411668066444241110537192025576583963712441104168035833055240068595771591413196271597561583046413791223147899331157610905926455683497403403048673174160940053053981167364262055128611572529316130208732245162466965845845763601900380373609227998993745526672006425124895024989065629593868330747086648311059441691023952964386555696063627738236383079976470007319813863510901638892422345162094178310020659226318985885460891672741108810640830330962703422083096242131195800634201522373233548855215694663013613626337339278562017738896742168680388606674586700693914262068202284169532607152210652491936364561401224471429940984789968159106588151857164218966521719759342980081217517842629053873173626321752317782937828908792671487796769769967675649237599268303000242598098406716364356945704267204124447926025467526922442415346763340707183873310618143036033306673844355220086343584912056137393536374275752563478738673629185295397860758056638886291613922622638778772059910235889806975512806689331311962444695022475288709388087589423140179165148076731589633811415340884607213429639795441004394996928018531057563534134581819202799393515411576222774726742973090287255508413874284369369764906548431949128521823232433004011811314298728778740728679906146632580584191615124016051809189989767422793719926921450847138165676879200213637019652890277179275642478084769645228062606484030752851539136288387964150455260019355370806724686263653998746760434066648927740743247257151609648557187776295967026798770328981449424648666859265242357338056368404575402562635977625710601101501895721590049244286248490674607354512500775337435541733442773266154784311523375047177579444925622034494544336267267027482625582193034209999990495006379547523394753549790525097389984683445915193812624255729270134165957787705970542325457329863224383491796224885093043117716469537941101054057429718994791633727691146208912901246117153265538257800369428950201301807283757635394306629557320275212141014893951199059077972568286634667319949826610510372188625869438272057485362901436073475500680051670801208862265340817754801773432448463925693411755174953835853500468266824635318215202658773695924947889276494662185815431211665836977874572101594924993034341398444162333178519148481162072064479664344161188314673623923525965491093015480528356447975311752970925615172397587366932391754473989207304495798204606413666941118735004300935653636065135773575807432066419227330532884362544988163277074946808231289338837340343151457638547840579730963960287647780384050700374608444667627480922426005741787454622320057146722669313415662201930629154568560967770515246897757140638931737063974368743888569656247704994064044409665304725872103127688886698977237243911817230963753432335035354560255763180494573078829342606934509990630682377568464310352848926094952215998178359805070409003364561253120138680213129997856445901437020125895444609422728791327984754828141746500386129187326918901381339423774940929041293477347632117150185022615383376396442032638673297378349253096800346128603170824013738366819856771506693134883722586941078476620967470109812575721796318149751931110640692532891975214708269213773092572707981366895196279053206171392492263282121921764916987281524841066956123169841810938985972678901066787295626678514209159001288886091895960473337412009099371003146632353922148377678818050540388517421058041218426597441755122987732096757639291273439970559720048176188154880732463422213351316695284258691257973937234281431126130785466056080337438170812105881697623427535901030668382265795242801405740895615108621980588965412443650250443395662488921023053988907747034395626868833358888780704767918546262086133406677331857758194768770479985320114657064246938427337198398281314638346677244975158226462545117485476289863947182040817234642486852141108171298964821398780307766282187526164524049002266960642818959394726038691169697878073571811283031034107777857635047340653716563517266945635899482771061379636060276344462499175760107523725803753565490998229529263860850550861029827637159672714550777037246667237452869124161095971199924592779386836790292574563593486377140988627025550961042288153363661742770685414621268569299708674809936695596181065518215750041973359665064540046863394041155132680516492353272031942139349536378733199099709558289572121352823029369726285347741801654780827199037821135689541855884882904047906382664843333618573375297111430295853575450454892424166291626723969055147567646416939391969082032589155141105086535167155059139121320430485499797002306227738096388000217992897361391559152674383037930564523592000398267493787269645714689671776252105997918007657290424970524437268846263130662174780977004237709841522725960165827971972013737055934624580740586971485408560286592697206078474587567156071995811975089731094472944044747044709985559799257610725448551054552070067314967853465006022438073378566472767486781977818618463156579677307677372714980434389759041559792446478123360837849852235005204966230121529374092200715873294164590656923698818530714432319138424716427410414318106399148095067153312350757615009780093158858352709371190730098085009902293312349925771396062552740822111545635120879495002959939458943233279807794796628681416074000061113452466780774681602402459670991403956799119422934710440812156008558276976902096761933453437429557542514320838019638018312843651879789139601842155363646991836995415676678901417497773082221896338267441470003666893835521280808289520977117166852875502679379981879809310014078870500055587903190728514297680185591651722452882727909845719301356873676560173403600632457015356284517005638274294593515737606781298501557157588355462773430812625194236706377153251704140409949182621421762758228284010334887989096067540189257872524757463356044675246932406804395215563980721123882075496785734641080134302761869497315544669949310304634983648200947520185216138558427194089867491477690670806142200245960342400774560704022699440938692177126666232354778943860180321693819957545300031112330082446793992453344319208716042381253184108682044187433571649062673009852276250208357694599719058837167700819613012487694581822456875542203915880316658697218386866755618284297545436997191911254233085333894762804063390096510210203435161829285606867396602545190338862475063082345635438928073321706771994829688349057394356697228352686339913387123148459217788612615513299600146222640805024825814034607321262047546007530680262851045903765312141805009652153057601820202124696620831456853416181894872709425382318489883170866844460962109781024554484412996421903154320395802612872303180263195059031446734004071590302388653596591059636112899251106056410029445862534981172809624653892680126601877887529641422410761052283755718963059089141324263663578180151497239094104627999772507432081711982056290145101483867576446655911110525869457397091825935551185315164206778648051332528814685247124438441710570606384282144593495458706226777000611795642095545418460404496086726644076344333653905358027120968131541840490360747540039960976778843953558940137839990104935948223322538471068576215954667473492986307043836914146609290767650734262875714347932046798076462227574991910543246322777331428896408622915981153511666662309226005416772695641259367135389723228641383195405652375313256532126142582869689386066146579260298212288400445237532852934184038738596000960082742782885057363638689205757781192300509818186663578153755111342552057408299833124024346336394453934666282201032784919572542600422881012682836244451337676250237936279977145347923240559122984389408945987137098390153710459082917790638145852942244831815702761323386885354797306025128729522114355884915007746008921152077253840826497964908167352824058815376143756891744517534180171550005714147010703042145664913312617440821617909960870465864471809298397834014275499343933959418860949966652067376756604927437939361316813421735637133587861568765224237180131177589065331170470493761018115043799575440663633921630995580865102164929078341942053469080679977670135911083918596702435080196415882440962476735868855396161245377794238286241789885042443459881505895977384172298909073639546101200512717673732663749132542901732298011588489473451543918483877129283639242090276883952089316937576943671071410225768919629435177439091254953169526101574967529640367890339448920489608285935917021538269832560800033580406298383835366567283610770964297456301081911105915141911458878484400720491688305519936870331545460193915825285267371430382524229848172087953350134908329957503604507900682170360931153552788313863047182597913256794277533819401002413876548217513150120918946125147648861333037179160564676049463097437777611448210446149931417026362583196472618412416859315870076315247025893577987834495983860213083354612624451096063579332904559842660802681423039044590828443149623510717109454236817135898448263857177699420082108635695029756208536987163531710422261469891142459150919662910119675173414914905550960891113716496231493979316195171788130126569069606956504204243655404892846313074295011466483853395640470117794956476814289948731587219560560219493129651150176359348424102137183405711918172466012664565018819793264028609886845458840131622540704452394886410976534555821928741514442521062409544129366160587920991996883486225097058063512266351831686786425117912682762728311488124459938568954295746048650125386328482468974044981144128702076202341038078854638450816600376980157897327964558811546947956545222457624870202108165689188624031990125861906522644421540161886344763955832073988670559629157879369485614966334531641780005549319682669576917807239434220830876773266498884551862370554167619517699688333548388778341448980719461661799115832335507156535588091267592967396564656494443458386193301491057039805835417855508960145955467672854769138500723070378218808277214868418572752597342474068608320367931687152498730325780384626569171070034362671277858305409572936835046229919713427282964754948602878667039909457745091916051397292371785931769563092540146255879109676003596558127126077918702253067394527124004474365030810668617618456984219776159250497102038919569130579151750703379041267842035972139869292238564595665288882672688686206239382944481647826491102026916915061928186493613748905262086102113448238008662350579795384997513929225471228292221371032653954893075873559021409598707021999741088847360292806131010847503073855348618275732415349076307128502411438980079177435220574055087067469489285447410002556851259835460382136223234114003364787772498534823084346703219216846251249897056827164777811932560876940709655194645362631098295890425910790403106307326324299358955843433145655241538025274244585253518014613100007678356290988110064211050526809598921766733522819132946187184396754500729238134138108865880162962763951882432771862147494445594131345290077517818841857346349916519821723266311839205477694066359583628807661433659834371952014715500155798142625458634209645394983490235045897013741921063126280576285099385163151303063575675876692904476008351240610118379612717433544438538774882210675702690887489195440273360034984966515600545226589042104043871866827810399542348752079070388786842070427526403166320694089145024392506921706535775892222162532733437594721346400072426084378264065218170018530902672655342826856793615971117160726914124757080666311701135284814179366026066368927747404688978876492050530331733833293061463084877325898406744716038646161562278476127753717321017378817242227890714339073196660472979828324810813050706458143986782183257536156361153346920474512314082453081370311732769828876791801055269899444757100520094906770843692650912232639921017996035172015791124203705036442900123394412858371234917384113946339471146076847537501891740047597511936434909296572480198907965489529159268805005611819722052261398708342192063071806386017412488576291894411724121776264454967021292550685358633458412609446017662449318886001342099091595213784477631830517941590123569383485448893761814960358353733443364395362617277377993281088525164750019126141512836202691106111954629514693229183916944571762878290917478472063979435778734301456646991713919816865888899606667226647283275089935100624556128660271256342253194194040459275961380496249062498011902191268854538917976752960610791863131928205168766242490018301089260822336965103475323390922489257124534295295073189365631152624781300845642590095550663215428685422367648115607671314673195082131305832376063409585295505824769679095291723174943226553016150690400951219175083795877202878654638828192860930869326873480889685678013198395293490364222749821717914327660671529001508466612081986290056590962732704224698060920816227612067760865572782458861070441037058666130286332518413980267259390395931495717774043112017453342004338419991784955528640133443936104034731845158165967553951965883205754517779512745475109520094792297649479187857214032107943604111421989509386736648190457680683855567492947953916384310077374072687414317560632721597620157449885969550459969222973384444049394283051244107061984957441486307688046600957452659480811216468581848871571749947544676353511511956955061971891580402136131934001128948047445961574378418762509917599881471145181546099697547463587043524789627789253659312305962758986244253431670065929678760770558608874776146029602520853263446277031780670584479946531488433920700631102136102615862931216950695512345669169669195024949838807557646359967983269985976640056501860229797046311304455777834646310887247398824760343519824371612738479104247765651658523975886062464734884989122826846740831978555770105003771511912563033917468058241515467030087921717142918679670142276196751670613052509118074369329692636881759646737568089479008510206567183183046688010607820503754329134747858847901034407026745669748456949605738518568111384353548381146199108137357125576483322206125767606203648412537067356991251819786591026944420662536284838896830569240936527368839391221797861013066412369020264957743242725103684284483548277189461758132386809077476965533339302143167918689757212509416289340370235545288757630871911385620363859761346978224607310430204608891112969425164941669115065661900483020999727389915811840294102619311489655107637069750167130983105169890096318168136352017367369079466257298245725010265348989854207843523154557666730805291121283012148239139476874677026879582356433006515941810509655111958105748990575214638970671929446599610647517941944641114645319957160212615412048002590277927601383887995208187983210828986676599916906495505230103089531482331156073534055324445127874637473319060241079302640749837402535195229804324901453645883131474680152645921663331106418439872227104032812611049356063001288160889718346074487342857392200454089163617832403486227881829774590111100077171695900827493329223028021466405071798473826836102151847728777296352806068423199108784184183388212132424492522875313519892268007842046781369122519090380142942789391034810990833057214892820053778867871670581807494354987452142074423611037738004964663612675725180406884607654428053912730191423300916389141220627113068063791939810189313971909368708317846283244535971429865779594760336759066043453561702611412512440924006900202895465578574792735307129230614569118633859380059618088189200798751622240334682607891774764103257477957876006253542589118062201758329863330908344847988899472642466630610339397502463272152585382597114291630873468921382937165146444637723387019844158821813412251998575228762373044212308886666404899786082711298201805041465666999424635487573139000813566832172752759544916624419108820843005231436788232543467019607260552286209414458197148489301703684504909013943522134657813990873888709420275158469745602149876591621380699784833754746184053762357783606390344364843504534629807066680966941028646214422049167110684793566810579900597421713478162820090197591812999096376745775329411837347008679984132597154734737488159350617769324686581488245156660016737034904374613740673847209445026031184489022470143835090661348300653078266337528174469176217969076161250002520815266529604367037704622473937747492571880682281120010406393212713741974311151456756425486578916015952728351021976097646285147997669562618916282104990069943847079348269052645642340786897421770757682849885490567313226531609431219817294235500694994673825845322258130882056779308694574856233418928027437511401666491592940114661063260129753111008881567426077932398671644543403527571627990533812499183750082040391129976730461317791646982170487554762264195769810799843997233475988260657189892334249153349138709464330888261297254868597445037072359816862230733491041529930791605390155829012993019214564845235945737203160073449809982640909237107083507635673345685362556032140592204317734069369770303554197523448459649698142770143325956869692932988423516091460872405823099631899726565701848746882046852985627733951018140247921567775176209073861164939655739755368810088164197824083398174186666348614653961160104026770924460168341465325836601979372548153278010559987125344126624766691358020112728172730849012173853806450282691738422729989233628731486596124181374768690990871010329315627767462588018438024267977804838661556011146850710172481634935342081340544692778828640760701769180623582018759140920476266404454120333795517750495893711105093545862372349082551793583624164116752047175010541129871689892695824171820302356944153959944540007449760782815214045644683315709891371966259417840994284786884530829197609700805788099879991320004290849115364439376659281737731273877713336881513299732695124732159290621361875048669549160457820727872718357234533055164676980806211239631160457330019062799092545388675160892088526244759111909764046059735960135508012516034502710405687610834634120219288982625464745285343650118001085185899419963591878832201026128989754419925189294320567282239835582983832540671504048456836804228901204245279531082959993935794480218773056193999879182734470326182894261682477534321603426347815900709903372957606868321306193603920395662859323569535369584426448982814498779972368845407221941633927025901848828898670068016590301880323361871711527811277472205300590902398094862217935065709856163037725982543586118218192708343521234469257282440917712711754983229421525127597023089982952764418582621470877516802969901914464752590061750564788875634280792087275089601817852283105135466596380068642761370750030585978053072421378167691234306219229039633582051585866954306084343439986899455765283073011003887514600607415562847305954742147917057310464043000327200786407663948868236115034180120536585513693110166976606619746458248639465108526960181724992749541047785306739261852031814020211788209889181730055422656753021347979074484525745271448714535025796685079010399586151328361334748725150901974055305441493976565861565139222385400253317171312165176325804402987931376760037905739829627763441972676143707502869165235164108595640522565842080433565431554269903579792030548353770708726919846642987607862490769985127031556317341578872736365832359248640526618870489909449836278158002982409220729616299970867591669785984722952924648139891595202110250124453692708160310554021409414622431437055078316907155134677648428958723462740841686407898277293179443112996869986037180744431619201096696013662671967784891359786968385008649686862225818402817925619198261733324023654451281245587902554705489903135162371917402333218118588798556573116663573603834258194274507638496825916132528125761882211573679785147207949995405643326610165273562240526676893605150085213301918387691023266312115432604338749683084341757241818718069086590349561960086897735775186412070345347473058626983336980667839946519149428084480483482014550756341510751151207987243772528084843147786444363202760557675414349472794884792315228604902948999334626750171892316904151735001850478692287266855518910610310439106641963389911212764272803957582615392784561942470807894990644679502509938778146312882001767883893806054047112872668831868945292007115445915067365239008178955407039484386753061579756640288327816844703805052152433724738946334097329087175639422709576305150718214386103031332895245270562737791078661256715613023034805096692609945893291188959050899009776558854174226278346100507827400780115602270384985339992949121172435871514236543895162816395503456731674927930443524776536115057333191884866388630298453922686421073245545154300747692052416817155667682286353445254449247081863541155301739968994191534219651804716161438457494945755974385788441819795385466628934702282081844201076386772402818269005964809985917563154023774181880597130146248749424014219795344390101123069320452222497122138542817169198124236280786459868826703072121737198860395963470933274055609175143478552421547846778545527300608931673522949580968655837835460239410391497228586577697750920569406584926363706032018525225106462196621947543946710701133400233232778876743775248928347156278308719528516829686581342135445915697545000582942541835982150488478334159485863564492513937953507013414187007091864781712876728586572191682154137050299814041982916549651916967088187951124298962448065981790285872729889304039050637857507191725885905929638844643517231306923943400152473898358982374140637051065501281977962270545612919217584253877138346237226882369680460440056345155675792389998820460010621572986752009865058460404747241063173362114400175814613000859422468036553037033191846043924243338878587923557794065742169487619099412645587604886679271114770996313154291500900538063561974062573272926630545684353342134574381872581933509972967859418995541201889459921433588674952865666530483608257402073198366144946633296309628107703009777944324285089905779716074093962090643523909779339782250384769909016541647434257998056430077728728438088730500393272719793890454326272865508135324650161350708144100182422472761854733411739406125893384648367987894931637783591109556622536826722381689781058379949479594846128284061503263550419097278587456712943103751213967478650619520823808958748817518430080716008367766586729626423411672531023506861740011636322830542288994597559257080664909808662483298006252493561418297028339906385170789437081623341813922424132149763111428040755532580272121571340312255009038865971919432997097140058792382513150647063139050388745661437863134476141102920323583618424931134725260199162436093126149556725567771653189446742098199555933393651897036702121151623238438214919795576704518413617587342296430831731654923417745219366506633006496925457259818398018293184027523346660196418809187780979354240162785363013990477779392096111319317286939664902903379006515934464901640963664345501801248275572897070291695285052514275410610895199458966641882529815977997834966603980998387228286978585797098029266171792413043169674648772906095441329502298717177877232997435319126868467495594423830207018972580027122560833970478785321719339723231278282168626166327799937378005257576917414963679143945572006586067511406418853040790360494530473349540814132529539802179731657977115142084489124492900591441660175428585030793507802334860950823737232567393119182827223820228941722986731834647881806512956735356639849817027582016910636853863697382884182743176063586053643671980324106699130759318764698068729912197936865112029537703036102489989597329507536469506737290591379559375226771194457659789032742588890820740340127962273210857246174725658006707701781567419249218330638152351968014076662687974841785262389144371485541445150303863858550387407717915354383623413407014622726476177491749845320141386005503596995711937188953369950558124113930358608228866748952495329839981581460295774638734510477941047904155415575060638108656954933566805505791736965915340548402508189524265499155347767318520626457956143298088129973365727039358790903354926720317003939643907764168184055388128693877792730049315010951047905005241863811889962834541104611238097835632474802014916008230623554044029102089390401294688788093551173784889483195382670363014787270327030107348757575420214483344042846731635549547277012137528576216207769920886404218341172783106891176484220611404931979189122172364180908630648639976019327238462010439884435925784113223985615324223083146235319222622516092007936145047707766705131464179234431530046883454968997437557929649464678981801982522234347764354859185560887739780179415477214793118128785717179225490701623630028366660871661009007015558476125847400935670868821730934861461216696703438963354618926377027171871627346608155838445283386344717070013005110028880150748773994991929180440001651331643922253442606438969624227398187760349025976722340072538755177853372457851058603028409070215939529589474086521155813569087027738251671924317392871434101861302593626665335733608981976846095072723870861337159563952382082021605345974417286142925963862260223674022126975385955375242856940930986085949222164226602614830425580466697402000193060731024068738192355915300489859634674099837575271773277598502848476974587003738435536404847033710932731333646726144657490593487677715457413827505090310533751627070547919317763794398628353104717968154199867891270739300504872282927136010891054120934452159746442108675468048942821280794458193555164438359824010053350982730128034962346679061957588273230097978633686208354368505238749229556445145268966907548921192397469886143579577788691543571994201904734199357642280040727995983535195903852545727593627959473840949874482086113840703182917554977609911779774995424838115828989591890480103876424783051341961134368356978571879838876156402831045227971468386094983884978600423975408427742790395659045767575667126469447512964369541795721072238736450657334130743072965026909222646419404018657148998075332599896591497270098085768355146117692381110941822249266233733462584113826826622230337478191437739028771338903994153798378500639518270352803747737067276056378552704830289413380296984259202152513192807762130847763403252723770654103921344973552768314151766641163467091283874389871485021075617713234207852252913137228880222309567363875853489216172077980002824669766964393948498325260934322153545923296375408219769263021505375122572722556659652313052515643696048984028660339183298498103748579646117476836622267042099303230728539957113406052595610725400828063501733055257624653842988491220331405161769353607988474142644623041619534822390775424778779939891700157474169086575656564828865712237894114772462725523532377938796612915261519249872012439152350130908766822327488813006909947512461209702932360406219375376067098816691114545416996247973645473963672779470447750322469456546312021936814121304536081204993052910965041275072254484271245955115095666463505061741749266915148773430679007318675247727398230233219692974194143294427139010957940833901418463194758861151971336643908024175383846923489944301755734931009271308205163120725038376839509057163530819458100424777367332319824348806330020956013747603798660490975200611278376123036132840085860815355229779770510754757057696433187034276656078424086452110891730052636208763914431350717973282629332234765800246065492315609152234369905558043584515894599188711022437017500675059968039912831130290240578701978117287007793907962974945629551432104327575572282643600384346042846692453660534284030805757817603372984368441059858788624522223941484182672856498883804444157753862820482399704375275511147526662424843063734533705388381655093261921064015698513790153542015073760195570548246182399447672923916782955177149718252795496292385492286933065210869783424206187497553199811455411244983587571441390247410893963233852366815430876415941922521248298464371358074551501884423841644986042971583564708030240998975242217985464324765839206348601532886940086477823853779341071757202244570561568021999511939787254930285142641005957843477988440720737070140251482817307653051706721289001612599054834369190784717233226165720295036490675744116200947903733413595778302478877805721734870525492211268119885173619149942166728022753049786808203297967087678784898009382529497270123053712413533337575191929622435500630176869736201132419961235858910538953627172201796615857497245587994425538760990261428565460202066275759213035867231117757591741277716261382213769263061749432378545793623576441282677576420768131292242192836675623858106418124163174439916717014945432663027443978294121027230779557522225039790622917819064057759949622149473749547918913172497655573994535105161533876457202013051211951477936637718286080080754256034027353932326014015810086433827553778683541882153857788808685638964469664523501668209680557276026910957827306838197009013486138837708768928548503509251961122364108484409866549275463995680976599517870889025289536177441512069562213538826355962065728173165080039347482835306443254481275642943312190242460300433373407592692091181929265490931905180200508790006365250709400935928963559103119366290932966172415545086609642234292056794133595417151445328096425689012122719558325822196638051919512928932428943434664364378140884591676169239210489880095553564750845505493336141385151517627960424200545972378852330140025429095679643995322015100033344565333949995115875099634398152873604667953959489226887248460774001949639086532931911217643823953330092081506532184442270899590184188899585035855808475193966049248298651512608153150911622667036701612044296301190603096123169367824555618885758640134559247259677583886389762473665394642741806712444102052602260236019309627390887579230891180150680735859271726818382693129323443454900462697012248368809492990204812127555185443369940043958283442384712077782809962246352148757692004573892617958379099535293807225022646636005907174704331306169891469413873691591837404425608934043920603498610503633031956217466578699341765664249699904125210042987438850981121177857587371229048230142476118144123053427639374877225635400394402331272340848989680253310793338600101642016894735197138859536138669466865167790180991385603842256265255872774543197505817379037435449085659029161805949116176932447158169137484857833071165663144410365311093961204469892765779874522992851384599615566644347323032427901320074863595467795183957506249115346276997764567074082353106295860365200546136604065679149981663617660829058394148027116752843786861870533364441131133796120048951804607057357079762752093474807112485883620866106319248371657073148258213013441200365448899708513493540338740871748164586702784404790670092037239931018144722373232620438391612054933729651648545422584447383225353060431314123025180563316493873810727029775520265121760892069050453720567530146331206419728346361842605013015030940336920565657560916948762969110496132763470586072538774005258774583816754633076608025920395010563335598652285369972459238596668926483135621386430411811241294274799483302164551271792360596602664386242335180154041907863799129455128941416607801367026535689763041247900412658029397726009669280371942706554038726615956894501543133688799469885159429588289029792384665485879173308145620989693600025680028780416422314789178214629654596903215966799703475419684416423383021951483627109454414705249515017917948840667963694110335335455481714736717966170181283323884194670499587637323439694711279589411915268943448606018638573544136375273993228941932427583399134780393998135611851707350312618761057391216134529494790065651390425060229875123554993987922455518808888630420459289319195346778072026880245410042425357979197984180710197389582919352866283096285665960367367017763560542851034014268814040114435440468569095544333322260120114723286623872575649273422069631882404682984026429132732254378193198898893690369514207927181332876648581173249314808794014578586558126534949674934185490852234483805854096188695231961729825191556896531304118558833651774386665688583854212268231519393690898929010127565906869227730893790901213444591260052071520103475333589720415166820180988232206281878069004551468703517082701897126729016521693731315868442515886768939331859395542568399037311080924497021505898369839317199209798700356768105080672280070271115333594533508478691205266285485028405856960520430834492261244950565545159154848328629386316357585232713294839166060892563918965351250025576299961935340123343504047891054921889195058739526184520976873908880238416430543493906308846178719908683161845401791883406904371163059668577654425186192368016541409273617333845901412145155950995884159451808516396947111402455450840093630848020457676916516633861638972546782182484574925770166817545835129351267685745957624645157725475497760294003663094805203881023906401605183214983204211276098076682936063817944450554658516731624896888140414392533883287723509849251836697511386557871249849047154364687294745428780172987878029744343542030056047345971518612782362178153157940061760141286132984952325708817421794310732855835042697870347798968806552379290129502307865807087115929509051610131761636858876561307914099115943547450013414793741044360887038858214118517792751624628822666283838309504703433336940482034332489198416452539732022009555622343937222947033966840432459977678849644440992798846536748669518308309169430634359253204248713364331871268146027249961309194601508736955721190527573277295300989313203948028432079402916583502780355383387818990018570604350154087258963112965540832109833170878719240962321117125888507631282391045915025157373002341638393259391896862338060648203987514139676777080536481486101786254089298764233532930874497360277695801977745288863507037315103393806498682742181377039400470339375782590100615204175307952472620114989586081582813982896884113312596596864322073723218812421149931761762278603218600614779147694252903941443929809720253800919433304958207863799329260796635451707632794245613542398089079173948647029298442548041271993215999639366039832155842099517415881515885946791565584036918905300533815240299120657419758813644643902580239209451173849356799266796750820873805777759264902144277444847824473913002502189358049119976364309515765993547044769064817346520128539415466155814291971413628481426167984054874060140646740398135919674076009226200343145917067327595469647462015319946226890240495746508290439795119536907868771683753141509367170772351349619871717230424543857214147104141134918687709766651346903888839879321751931884408118542865966414815441466235337709676539314575604290834878889330089982673878550953546107481618903265390449699880109300580096040680351510024804456229067405780979794146115926074350377703198611946478237539998465157767738802936755480198424511739903202482435017565256631963375957117664181522071185527272988752508214764708888491271963532134899000922487012672198206417326270093743772116374682612416118358989105623272556487164703407056489295038908489164728818466817300811690096355243876395840071799882321090703796515067861354301454357405441621391315177679512344286468793702300717574961870672764290857505203771923736463866824010495874804823706845195897571090492147714693521977151164502045241027522994927822081380268829036688634625575726601891144581526648121258112091062111945217997976606682529132893552614486222488434318191555179277570972147311322372049299383110115470917770592846788078876587927490432190006289436771876314753601695512729314527396158833230262864942035855776560576533459276905615546641792683267083560406742585030533120302874331282346250910715975572261875752236543930369281493019242145505469356378513566186115376564498876441864637846907501518243144446767040687657242905160170412459853159948712019143769930607841327309084562480161530428558889525897232733384144639069337361804715733622978510039751287248293666987684506315100927728682596502444206761372437170730812175147516024747705410678946108252691538085987316150846617055990866903155017856949974913413009009057868676338511247154135867268812083956667190498220333299588273326280931950150527139002191291985333810826470192632189663483357482399008135146841928259629792478851718038694263381853573508174093607798116813127754603344322314788546115609088993818411067309728936557106053310917497501363622128285889812318961715877937849794560314708433195676445056677363383673545062819216047571893230329191743369839681531140124762977149064418061668890322499542552649539422425433131214768660344369723671002458448303327572945743402107794283913408865323435843447491972613894212630942354847728528463916405728962203221965152108108405691108388630231827983505413260636478035458493321005239591136318602081618066630966082743961690643225063580509832005926013907367519732785353277706957597949053530927091557793240635915968524342683506363856272556116244326024407000212458913079613334442026693364630804006043585353431657631764037071562604582840318322582385082739827453845165868199348399790852627993146431556868878430547680430084358792763745599474549293263455099571276647557706411156641449953022563929108548302031515278248395349751886669740641019193725852298388962072023001714233215670141359762933875760682875900777682415156208323792686063002731984975421478068967954770726714183910607373768668054113184464151877307426704173406252520449319359056601579679960557942729744441076646157586403571427720250711060496533560577468264529932402150913142765059380348922959090818071777338448921761779471499523880906758895096240319713685508424779111095004454985674126432247084281524287253063749593949789009694876684653120592959540385031155922682263665021917193907852469995713830814787354484119392420541381081154928572314901230692065687575969290628286640129574322521766357625390654525349135532650391564044405391419504374863924065932055695523440768213715473375684177934555125410997509209223382851228449270216227937725480429933638072993971849623945661855185246353273944603279037133141564173098619773886076512140702725607114717776200689930814646196616189921445145270288506238882556228364278662449173928471743417490270247677251350638403484921531931283167659183187743054447861515527561909373533183042790574396411922159259110625233594969863806997511407298900766076964401100168380163003525514002703827001156571290675550258416958395748719087710441758006475062451613903779676197167727345559602375220346404806467821183437276784509852869844859990486293013206073365349262422085643250490533736072387255992473904207370450216051519452165150631261720228611161615706018582034843625091058021220244892328326564324532499377837153140439336455345597197583892011331629890260233511862076812282881742329048456978681713892301606770233501374212192787775230317567976675106150608793240154533813596316546818106453010700634569004780162661961701343542541913845978202306454798480452240393550524330584867899123137626581871922976058903700720012240322357515986968508418975908849369544789801395890930409742941173773527975945102046805091996901947888981477155099993654583770416520031541642608740709988901976352394221662862332573948892190657040220225045056974545525730003069081403908115592161410233326860895154095578112634635844056620869406641012158661035421622918519877411554740671483990480096236169805179742153580357200719391259977450426833887100596575024028754334699005753355664066088275780954147137789613269886474453954290458859253492139904140133757099634015924564606799194518008194884643834605509084688658538080661656318517086096761424054785317389901934620398369133358474059368867005852349513475137552888252624675151442795423982447272942211216848891970579127185721972119553899898148094297952447691779701249898447598124640638896409113555329118237745115712137247683890273921631605232692186264910741188569969649657977018237944300769073754852364387372620759627585461012351751818269074325047541841726419358793152651074263552127329738959657021158143365461899459930020564359324882866344516096879772942962739150421538670989630478531927276797502979585224514241574591389811855118230210619686103020456469178949028287519636409814846209234601965835688526404474516685442977296300015593191895561944495349294631188882541576515137011085448495204109754884067899953095463768951440194877668724805825900699284063761457639804858629495316347304987229071836290260103578735456036366476458375521076008542511181908775216582363741032826883030652932475339479854527984376469480737871236475167965971649100079522573593441606329502784612838201054560244234827306396217923446987376930492469361457261896926750431727545770081462837124859292592488523964210475943451627282002668745820514243176130421907283779170524372427238596669192456344281551768512341514446080476140576530151144948282788154824237900085841331982713216745739949799779223160838408504788901029436102601057668757931401779971607940962923064221173935011512170763336676767024470545986522564112469316898475610353662517720477975181693269783174548657612913115764402396477107897586024733986808371556981077750688809186653444539757909395349556550489873823421694693423024353872231638983799437431197951920621232159444658528476455707724561877138038719337886705130872220669053522241500122529913136163756096187443640021395247274416917520960410641224424319265817532218050193545301657796384360477410688641638141185894622316924173875650375011810680393615134899189462047896275485378722298191072395621755672348938236532520384449739440164424784092712201378065711592568217052058772847186331249533283274683568109003373895531691804220006024124741076862762325031692321368567661360431484355191350092110528194917385991124952165386096138967067417935371318263882691470140723200932819971377348436788285877188378308738924905634108522388018029985944305212250952795618049205971143375400234692573460614514309947697978648969190927275514385816991100011802097073181059447412871331807784026346930762521210550325552524985369957004687830465014820552126985928765144059595859729214423158444420340719169034479554649272584131473846336026848264031124357535913578181436071167293020669284559515650073858895087282694508512397945701844334620866558338060750684016886770953140754411727352177333481125676839992862947352590947979030290138065118228506670762239744018242008469102512790370323290928633268236498854088887708556087048255430773196131853505630222894867070757569068691225859738551029629971608259692374381956533614821379581003426811224920435319585240993343185340344199503118221337629312936391884449438105868225555510851165480776909806270846685845785241016928367063323423366701041652407641978193001209456927020406622311683568881208791517775080782777359047289956183061202205591892768586568211116692780974868453796215076698191551357285591860041708353267366714990078370274305982328308469355927592656481175049515178117567012988907518527788359017857402358244010483975248307948699557481781706698157290295132915176256729502946631032164577892375434623394598339214839585474935237833017838623322080568181178357947715319344653951565021247498928871630643065346670372902376012507211412119429811289707760191921692116619495661570332488176305536886503510854902084800478279657659178462566415394807317453034212084245464764158670844480613424849418966032315589414843518618649334525264047644067038652226809155937563663634949509137903562583383166706239296890056672814048582287878453970326591493920912192009259338639815603488644860354753008657296886842904115410174627800214236428959500913830863686308050298635205780226509418456995863272222989567734107142129458922550184291781542351134009745069806116357858108728779430152759195606282283348912135676506550432616175414591037759298905007907999403345629165930406800233741176327475942138161093928264273503509887053877060944410465501861999300435332406774744136456623273136647959411663003209128288736042854354070464893978237171085117120755585878002412862404934978650727556445445126598575434611617516788128100540741113184237313654172432901795891450811228696156712260419736252317351195376463385056557696136770893645489608793137508419447746143005863646347804598677458544276825189262977452666690970802353107795408049326021703301499877595932060126466612766257593213738517736288028403815015976562682947030832954039939331840008690857912176021766987049779985414751152087366795418471048558996621583581036474500570631243302054038644632076698423536573424115231976085615311663839304988804623870310195683786626620607598321560864348905053094699065894620535098809442460321318438886021026055633289127296420375589665898215437637340155171611755876371000570816004344190471736102132413226674820528238255603191606251168859705884556812843180907694477043145226025945170099018356933945806767477717266559763012456498305772114963120794642180054867030238895467170076273209532717357937397778524682651711030163463828050941478801125085562494731533405832095906865012396695282180761751135361099328273552388435225644927330005482531360608815893143029160272277150342285203023874701641280480758562112438304246473809779019577313351442947856086404216031426694430785114458387244806483759169396918260868261263621653994152585315703774261594819471891534575114085565390844279506522588414346886786807688624206813515492980964300128957802139883569665952802692426927501947655858102684034097876454063893675116500966736195584187556000451190669590116447962203360852350984360624099394249729898802555285603409501097032227800453562357533985531585150181885961281774711934841941749335077308533465558447105258441711057796850115574258693130296800933729930311573662219717126378988644576804929228355679297700162181919587697723670429219178002221271963647279588079493737737505926189797291262117728645356584166063894788590931453954622445114455484110047340619707751050620806560136067212298525727273185684841594643005353610868113805947007892509390229421210665615966987179442597198163216648636625461039014747478613247962515699501137998240629656731616464955803905930512799163816821109251077184366292143598747108229102881146398902571838302259997668707297935304742931056683349560421231642892959903166579933146296331567692480703484760482782302384434040147240377180428342498319424330798532851989718555112326752190080640667749703848135328930759141777493939923404421649976007020805207684906400976368507574612436289545877831513565932098283736916788771480283188022923117040260051230050949085544390495333176643102872122192555071801946809414895391689376853821830200525010684908161604427548556231873406204907746091805285299923170574573109541312643576044642203227653981398379943504747789350591505314215869142382405604195298999070030190885884041013682489370005322139440803343798819275284704393969907124284069214707340959127689292845430169603848864556618881002383502719611979183896001258058545755063514203047258508345393163355265031970629886875053100765462131399571883945840963601374422114573054822651011553426262739466860664551647044326662186804223983116202432288816029579334601911796124843002178792434487135322931531007231832288555368219978829221249737740537071974739665696103008489233344588486257285983488564047642660337749173672447381772499191042416103093749486644783045831162851679573791779375564700097302008521194493362415418794392590527773646809894793550727206635256100996380192732658963714989227260511414630770620236685127299207916668920313057428408073628034644018230847668072309169320650529989387274775681814948598038836690453865090898192495284747966413657546326771261590123963816898007924898841105366144267714659749502702946171154951279845114649757149092446583091678092894274937493548932464460180105028038250690066390018723596807939511592947207924846580440483245778678195300441366765822656455931125085400269259144886320492460495934163677883679502953719182829131903481544142257596931649908191853660509142439998517087989744881457972777731434140176555975124922069657905568153744071475355635954818283549169081543042881022957432692688376256619533924450994678069530258467100276174813783421128977173064010589805992479556471705856145695928434734395636954630913935770643090262528778485129485616401578240306148883910699954914196485137107459343549846738125465442727849755426715770126542010116830557658025910638197746348338683190264082852497227863469597856830584868932347665025763898738799428638974750502925851807304319444729381700192860011814206923970797185693362264064296356717460428512008980252813118382206631274373194531545224674389715886794551288089700462751737366525494428117891178820470692092321180175911025783545943577405115487980299090672644508572039512296236635593458041246229201192188277464397671693018682101988184683180106602294888198486231043103466683118413602606532059049971694566770112351665762458177012566576186298063934469606553105737046619914047616538748340130578669590345311748335363115912961844694362199228326630897542211296756747718258020376539250968452025345402061328408565546366158070899369155545954848907920962663852079315647657566184925886161640390722234940774354349800295667652138246885156012209567393857459930642503220143464856400141703430481743805166551174249686639169239294664841947093174060724409063651996086884600116449255978847588220784902547641487295029200973872821712882505196672930988566853244481634267183701782348911458952903733483008681029104015291649523949888269997963569983783525542486265668681904565779516939297600677902187016223235312914442918834378759215253000189071889900376742556203274429544411249422492590902288076023809824934855331284653487457423465745673708381760481722700670455249855792479425263311482773890965445693340025896373687118351750738473506123116689545966974036089858908175728493562266317977336816922083613003006324530044626615193861239269930090697530256494462967964438038061451172455569588861765616770543178775547818518547163959606983360516942782121932254845769101759926702531995008295354078411134031949191795312820239190375009720284560219755768722674027645295251646654881266886028236218039973269720720437530485470368193773657279881907120424317492658302198791813754593906225547366224661201547947915187892543063171671267600206486034882768613536458334596937479041132913473889756390410687866371871836090752920722664326895890693551528933236990184631233510554827049228348505999179945974346738532641929978190614853647040377695162846234295598786091644145762952277797902221445755361575264206274803000912588963755121884978636189651745897599976528164543653479099861053584331442420939943560064204989294307517203178516628959185403852937620507389387483770586387670184027817798818947072710896539236570152792049316328254248334373225268396519763244496162154543790981824717701966023306122968200302151223552471016240915012454279483638839129864313473392516251051703972539412957931499832040347292199106659233960194272392327406198515029419514025358405874941750376974308353273222244821745605889901902024476901078235583761025384704362555520677300283337677496663298544959548602145227441287475512410677503876862444398454344348098638718563057472695099812688487350157836961303027401293594583262836033139950957588586734160015263972403931640438228024583316722643149727558782357095513448168707841702376881308747562512443063137491690153992826008113644036248454211696976220223887470701800971247517344694573692434282466255579481647433982045551092215618988881594655783276581552794527456481189506727912815393283812400612073863402601894946594815152672009358703807441143592098636881043783031043785714229983750928544564944398421137952594473179087882113505588379981565351565701704189783340020768870212963883450468350452333610795456412121176948958802940226979180711920641534067535778212632275587986911983953343240566630744935538096692033501515756978077072158921505544698836184676991125507164464663758898327606920350552727327660210441811034029167390054680028755638122665613815521175952300084295688236142685516813344803918662106153503499999551362425403123837214062854934367352837351802056141919037806620979423572372862221625104525245080921071564743165001208794971462510924799787119935009087506917404483551061582698191762763861573348558620106425916728627018684410992188390615913212448781658496971418243565017743956985334815730697854962582820004130938193848582293186773490269333272732444457766359305501744124955060640826246404322364556366633886765698032302157302252002906768693770522343111077033662899514953000514027253177086816271925949195725920750487047033950002937364028421009358646422598644494755400806847833863682201523628873431028512269707114298902327194388028193738983527518942077876713605867218411744811972849586924839395361913860212014230380010725206969348794668554040825399860877632148749636006450534738715945945304232753423289540530188631211226819699484778410541380061771818188681658633076455217399985447110692194203788414642779006565032090289917423835725720875263574252438222016360673008206880446450402107738333656837423853920283091863487751304460411578518732810733700486168879715795281477411405789435134174300414438758403842326459994016816923024028752655739816283473282453804872494610280104295214211431423695923764873930110717136739700408919448930274096287903313083642099029166118672429612126840711968296306495794193790415974330014462609282456927430054764550710402755647179702942882574976747439707330702448273188133222919374461935848080912531983692745442795032080651266282841731515758477391857891413408958580116735520353367752174826076395195723299624152603985903477152600458221286476608742091123415064785290148801497755905774048148642371037688578914339291280415666136705623366145834370446090059671619220910237314344102001583257448926001237225852363356329820766164528152006458211019965095539956037363972907740442428955928102679510196594791457404030150948984919982632282097263950182672778343398530569499134357190008807967177061539786614992891653054802716953367316781148770269319504171272087078060701168626614287651384007737535822572403984968697735906742339595340680605071346461687088061295373938240826006466245682029637559909048761827340153071170270823889164146431518860814497677122810413854600739390511718212141363107588389249381008882553743303549928990806172544257762987494160997899068722124369797321329103638929951780597612799794718050690547447233938759387601516778116327771016699202119749909682223901772060660482124545082027782970005558411953454738764432634891950535413280070235135131455347792364882249273253654941822943799866563422409776632109985614117450748918325085270529517203151192785700147275097987106921084842560520724942040535658715809850850801585777791230360140188679413324300498846436059918897005632911088552688871519458451425468964854801011123784431512999244540385917306180374395749176964785646420236459617694288917143112309671509191927051694675981401667739842406921418210212560007703772535824108104796515402607702041062434918519372948685448986370155660549977761269844567771139135978711229518570684395642768382244099719869958319100212635098944053094004531722992799595250605333485650943688109298650486737648545780658775033404198714340925843599035562779502044979803995741810920534157461755994424796838353062344345109347214082465427216557630303347486243241607270273649409182353521917276710947853427823825849922461812527799908318647536680481506027475879998783076166737491739858317150383628371601757860451709951159474339818277481253522717154571802272502816197845965991644878347923859814394625933928751242541709610057591966588310911797817777551880305105075031803920052942873701679765778533977965119041153411136221001744458003676435052885387183660313740873172962942232319748387115395136458971118561001455523486427920533899073932100770601782108158965065659289843319720151293219538086151220980981386788982446495923774072354108259495486196204842475950778176742190573016247170572735789201469658006122346896485061141936670272617376189378857806642075565579886230553873534808660854933175982694263053025697353800640618706690159202792636555281611002544666357197348656166976020585721629158865430036081800373759909867439980837795668301328511660696077241490772348556249202851279749686565796915489256143090610872741407673630080682463414401864395917741148186849104842194154503802098005386691012655472640817755215455032734122809511434133228461929457648833782435958873841381859233607535462940938557211666607797108658614325895735863888889892020293801237908851560278349147374931176727589432670801973330179571736384546003701820239604220505820295424815745486038658560572767102422814210360093634872580083492946346396065506632197230051453471502614489112180260187756262245967177504942017157810838061290654731911291390157621116714668004318180471481519424064674089129990498369630764440176404463154416302018876748013160684838600453766648223742698366728226893311135279916176470278739314924898417830167235144212510219692009593908397060031413104076646259980684157724771077697457448414591655295737998265552572999491045723673731107971992671972224539658675011423519517666502498907981030073695467878900527002917341023122750160969627445532950063660246803112515546629553074751475185403477305894094330705444984103760157910648077703435068748855072432119874925781465509042516632541754416440877507278085702919768351358512571207941754322426035317864692508472259957703601817291767968255373397082025431037934643490796917560145891688841685552628737429805568120720366422458603507788852122741344302034353120360092044618773085710163064991062664621952183029715177632001446118008517730888443752423541485648615145692767753388972318526422141044916197920672274003153431704042539092328541780958506245836601093660628102189169238368299214306096861651510685886847544498732710305847866430994013742629176830118526310102757316132995066203220738484166720467856707365885701381840791185414200191549299579105795305488095174250542457854639368998938831732819386228184272274372897515952943875059171826585403568913841585494737530511556847199430308700865981295064161013721292231708078015002185498081483041121907815727821316954414130138593669304063822852209789572958428326674463527640300635824732647475312107122138181573699315725616135121090714051069460364686117061359397769614485197149174608200143633505459082824396639046592601871746052773573668186455180486569473601231541513453844066454724931620792930361823894577943611003809486258895762250729265280296700194020196184786520593294308789256422467124388858788604775272053917771039878567458248246547977691337811202366467309239214376548939641679171342680846332004629421033082854232532910107863197940159085790698564562195094956252499037678469360106611652334997765266065374009014495249061295254834837883350007894265361816400575270111087920106970336530292080845750102174388931538419175193048018593465967202529312058667792669674322199351978688305002267118750254974949147823176449147921012449232757919885395334023829484218897262631231861642646673102227097371599666395028415545699463124107155645927291154923279263940963025065957952679322507118316900876204987637778877789235598460924499532939058435738190890699586644944643549360773668974150438518054028319371119588355756693537246136792514526270520479567229536196297109092963809231258639748575595809267248748284781370945606445867937545546760618785762367999387216464557175853407623802723534989992242317560891118558233040756289951593513805503051397082879272644276114164515561396397376947795176695498144141200857250318673963667480878244129524788540160366589324393656046818878218860981196259350294707262730169279772130026120676504956221996486902510276966339985027539726576507868022421726291284772696232411841136233980038352131579708610858867100712697644045612678712801861358304320813179182464361002949514925032194784659026450354425251673226513153937750877703676543487632155015463535954388070540715289579538395478285654915834554791033765601116206798697284322272214728831991859444070824321969682027140161499392140799841443896014034994292502244536108887791544626751203977599135996469156137959349596707452996653068870418678500951383549425071554653165391850403533240999437245862271657215983930596327297782119288513792438602289315407855950603508564637290896592496002967214680067392454793841843778102629254885022200604991593464042346182430314054409304200915981213673501032593534470575146675228707602494845243994439493707348583579095693191077310712582878449887223688665661449242242343181837186184039259361805639677386381488938186997072594436731235229024179525957148819077134621784951018229468847479531243269484530720403636028056589107632241166692646460179643596143317582207400422333433744140440298954601521356370302043144552584081316593513052810964867928027401667752343839849859216652779078508637489635351791170627457714118479384570652671737085126229386399761136561732484117065346164077486596282585099646932378777779143610148353013746515915346929682363695202744675636913515228826229336320775211140814880850119476705916848135069441670177664078097180023977361457309994615819686964606683596475066017467400487813150503628209804053485052476639053273441392258386760150657823968559172059112440479750096461752915459651801315002530386475457090413513610299336993903639172481474818255606620825682804778275352128902659219209967962667694537420298851513088740917801140804392563615322887548689769486206383849176387919660135831340907975066475356736417182448946267267105495083894192926837585117612409370419975657888205357204781255786741988826851023374842777716782838572054538970236084837880752097416690302789837298759602745668236956444427055869039141634960625887488771378442783330109036488008703036675554912238130613394882146503655573034115441396290921732164355364416466577924550673367411497415509027387742693842400834316889172186022493936932867101584766557760797173345620833448835975886162520041113657320207315962123590624432796841158441042384984004836342046846721973202471545290147333222945459638586223765558014853419301871102417869930548965514662608458777519020102445529165414921018567451005355808284638491991360847281731232043353323156923054143273061802050721780999055806330363290863369103388083038090958997755448686779663811289821040104878510328038044702655073918537111929699997833481903746211031517973122964280833242452597423844388909304633637737228573299290302308758800788867769308205852419858896203676597889281206153933266656761854668403692797377050707255525812947756634869360691987506355476060573410327866233362653745630523507462133465765167108431299935689020950876883002564625491301307086662330219127606702499646409429571536346924579466044481213698097479509669640721964551000295700530988945747587160243172326936379849133609243542034165225530217196727443732175667233161180681600644932733949496928407479514240858616786313774978354974093832589147127539983553422400602475804646403828409254455018561674028436487147714337738844999506155614994288891913414559325125840364996086347188783251966106397886634827225472983256618484332102782038978544262180143143133447504938610307509544432797219920595049492685659696199874924795977835673655306432184583598227272342631567925865555046532984580128162748158680825902231349917887531773560310692579520058554564495393106184213029436560916069401502457922673395164721372282237267472415731481518690953552497180699490424556843083116584388134224937848459816491952972007161825326989829045577258519022906216161929891521843185555562323325222258506122122708803272932484596372627460529936320777534201648729998775609717924613524985568932059961393163298347135992848190159267230950429761183883240382279281071201762483099507830896720975709112295741415707578222635758846936025593510712157469554127821115431371965812384120456103780146606136896814530326094408632536524506875435219455925822495106825843108017765845720283030731102243026818683555296952793043624194107968662199009614993114715009251245394282342310884052729590088318140234948320774998727144705383992851075240963785483706222725481764574599040933451801137744494459994594860278650478869907906800469562344515536793811401799436945741345891727128341160313008586834435536793670411462920943342043551765675980437720871418747679768477789167358093257564724175495189254979029549140909620191625507418844403706375245245761335632232713486106535075495985932951303850639415005340217883771044451574797463088694964403481475557455577957377955846936023189909508666355259676875683760048716624954909733994815120456718687392743064777299920313702058663090392863837996820478017015865571670986900985323104936391772255618151093911841262804325976125414892791097728424769270611156338725929361129599995055492324562882174189844780294455711078941318284956088054032465954803374636608463931273991465506955103308970824029338005671453607894433347395536228806422663839893260709560461503284970444058409859763094909038573388831155303614628044699876915341538449505101511503245372411400495952223166568267217029375205569895012141772461919256678148503334679097161054269110742629291357809532354186531917583186460152675506670930682727933323287491065412700190013165878894381493453090320308432194082903225570276169784475902654385693985349795039027944772866865953632023295395942507225669808782969937688920562899392338540920978502294343722125367277972163417923354320824400735913535520259803600325149889075742967311233248866959576273132354280827224378784107421743881482475821308213072469791471259246723368226667902803100735771723395040044085847952153137539607285955661442585195252293734961987102136492588689727555071987164890761708827020026428119042832794849715041989545003323638786712703452076273889158929261708253979151165268027735307837328495794404493386612378186540799972872322586726263072381666779557279874835149931890696359064200233723256595590226119388662991621715316792334051653331649183166892133856311265448862729086491885055088730382429130925522559349325899600767607710330068214871247260928258049270631946532312070804437204817135111352023680648470698742821475335595331667078977040576342329728900218416201532718119013224624822758098960226449081249015170491939774082375302913009236373312349510177814419003649970129594111087839448492536575552934743046483531548362830414557381269664162719312477495711925275802452502699449133967681711651959191383004750312082051144552265891776920387600503653071470629438997793785400076710418022896373593059700181422354009480511301184181402207494172810482539943623945319744038439094177233551120553840880682046456442936036073879191632753061037859003788254949784888205371991211814625277524470656804435366887227417286298530448525818812750577100503834450735414442961957663911867941376374293763138221037757446725456002384124266176410387330561416358972684528504991556187740940286988055022111114074104911982818906395243086799319511226969880933504934784383484747073743939751488527170626391854881473619428554550930610735540678933146748309434317425953857141277297838732219581649576437531217952234008095993056011540580879465077407954047925159298447566114263674974896594852862605784730046040404615713057189291809113874881611306004365195974118202849747076341406565885724495704086532479611711474644068042648768985573219578737784195425153184812010503035001214872644804321103686878792157329503957447809698016804353799370240696414068114308543670045793431205294652499578241391166572467321554196792034383332485812559769088089971538005919067230514887977770195337550136559981816164679808880656613417134996621833397635624486479449085271835660235754929142982650807161024101525432906230483718616527276887210005817815147758710398161740246680687713071682464121088736541980704399953665237772169692880860855991092540823205927957974089241414511498816252963094734382837391786397101740442459447808970891035914173901808085595525504559370074958472568896963538240337009898541101480965621454086345677030385152674077270387335716025635651430482655113404470216148999740576237847214073095669305879813856515836248456632668235295256952460395877280411743183297546693274025181247209270234484275881479296354487997704884926575727058074922531383958876304370406620039092734313006057896653377759193802745271974149899793170565399083167625874643914721184550487117115103465359572842791375850560853020711487041730308344120812041113847806868987811207335140007791561838692081149800437371436247575211491547289004049525843081387335874022518737456778386000702611174587748231304400752458950839774245902075017976163462011830145078255820295234299811104617576318276366100769521445047757587723720009730849505058867810770620009863735578052230399674195537165865605850221344188603992191272862437498603077308328675832560492527569509888087739427553624352308371098003449565622175733122290609227110195420958595642394998324375198616228455801556945147737524209878798976915474236040909489193979765646717828172918641998033540207220870821712180503511373666498726474727863545787516936725629104808317545877136220452123444228463035353795535693668510474087590778786739808510322460871989619328417338023122012784789219939233387778227724988267339221638652262505161189244705868939502761597215061244581069516785721938649570991970692203255255750082361474926378294267994487445874033737052247588741837964526337565677856239723339317624388715674992335174989098401438441756245594127381778700372892003084011705763913968819358897857518985947034251077675004637237066800172671675106288707861921590510772062605466196429683596581394912137505702967778047901436597600636882431180077892308644940446045918715592353912877521904564970268617543543198370014704555335720637424019097768244935412963108655992369236697025837336720633042661262154340384841367206196451528964654682989340635996072648974854294069700939609813457263936522847895638077286435886188815669535065776909462175210310308787365595737198301284762776707264685734927943998192501505758070513228723353842216333661524558597400536974554142392979169796090360046764472883571143882384050611548465953020848544107159347456073635143204667106825651836264753678564417212817669595071242720008695818478521984431465903645454735683724960974730836134178841771080482705517478732327299274658826076077352154863762068931324544391702725456178208268107941598576118999916554025673004016294780763949616059142956972199918257411361500509747679001715615126797002147486215732247689587115274525564210265004691509908047417646644777981550996272532934025954413504627578588110910347454541175367763366696558637408849252042503076597576061168897188802947365534994559144940727959303884022810090842050576646867050866994190467361572197397123432119559189777112851136446300943039588824729117165190499235905519302439979603386028054931924626496110121371703348232570996234804044521599594706220793349300544937610875258237196946230075849424603218480924004223119565058090880513488095158019065783099378126879097017485063652049540278866641069532484544609601191420632901268792378531751057217254657180774616124897957414422362699407804627796248833484378840046357948400175809288083149153505138066451427253599397161460151014105115679712077937433224527410289726779646997070508425426318116430340501330837405049810587518621495697296561312428427102307150034852865416630871930019821901098167083313233164842222033542348711129359178631264742715961048176181243577204324624720068864200041949663203194994895605235672921887006033347092371551395733148465087074133508738724869755166670918023267221613280868700546163195072617254132114330916917862253901827757569148497043435037142877933277371429667448238879906323785069668276494550612537005889913754273743754028611515744087274808787958949224277572987067804032081559599677225481517213936268567362395268009314895737233685802931675217347004156137159882443152512263732892999956960236296173159737984291569596500032340580948335857016650194704878413719179138165980542422612495694450607993466706346206323663231604839726610577789613583219682484995723485037485965724050719448497204955954344371172882851485696778054571188654180014766036432836699411124391363018936270738067105879376008316535662384711600096428741132988192794031395672145750942585575234867195243418882134802247905311042069329152621562398874877585794915220596213621701000965731110789189020052515620721069341017415257975620143949030677196854683490166567543555990144929745919065949941689439408807797915187848695426278475146281886677282804710466379516230214172719226444421545174753256879653929224066791803519520327574771026067847671170306457847845350485629162804572302680975253421602205434982888813215184846509982242379721224013618249241523570610961612031672183459414958672881069833192689478609407502288959214642317614881287379454222315729817736654623801461781926285179942506626957385870697549133495979597654344259395636187899916696716191740560837729104794954843513048912287139921813733721849857505802187958199278809883873226145403486439410314165076920372105791552698498286161379810304421820814356197702273330929326075009475678336426173400377206546510185528470717368030179871533831087950009127418611495952297098064483777646588294909471030181637406673000839448132861040318692620723707419642297956219566295279731077620335921151843726875580372011996503339483586807292329469390472789569264013407742528875142049865928429336195731228455731295308682108085636892478041129711874453019850688131057763467012842323259929512070315217278905512991772799198796539496520748008719509360831784529857332214722705046368963632120351786010920165390220991521231392320181175836091421862470669097554185648827700207023323489661649368146517317555872490391568428045127975030135988259321334765105055518658469777909174745527573238997058376358102869864823351174150389276322111693067897783703367420944106667132591524299517331898914590499239588483707597696737903168693690937693403820347390670107823759542900733354209041624359074266493280991795679945165929595596814400407364997400643324260470231582103874543549950768127277071280378975652492653750517898988427578076095812896728248453828672156736482219421834085046058410221832009541970366112600406450537513562197066311949773562512538252129869427679551591404603450931081653081070761271122965066348960489115711162507130242967959863049121862704204520203920898383243135858704797197257178213347599819918327459888619625512767051898063208834767624141920879091815432464855569355810145056863831928780946596279277076934217460072320809309362027355309160345986955148953768582208296010403849078125072223837915917857070617910893363009553389954607980025089917660790795748178638417443345873214504433792965523983888595969884787693343011573847198675866846210607455640466006484793255120735152471881083072904268162666449692556299082553220903423860119520384961178355863758548037983066434546587702180467064209428016623877954915807710081493813949391938929969235261209820940438095921895022034793188373344291484408394836637079129887511778142118353656681377449163881489643436070250442624037538606966921692158897896704463081088100959302866163534244925422617570023545493232158298360016817901759685189993285291518738527285097967184492393015458645039443122426904855664770676574850435929894076748737992951076918332430735598206905997189073827253697606928468789993829154460778694841861794364896716008681099863285363295275522326562789613949906463754099480499290852832034677387858147463435064819713537145275065107359691503964778662260849212312386631978021682064240639419427962566192493021800222543130667824800800585691867106985883404139339803116767359887961382660007432649751168357010866519144413767537809749420971346390890267327806947134655571787453525215767050373653243507100628793268376866658980733151662697882955263300574625918501484467529573923118945908358266571934975301509337051011370154538076034511779671816069379638465308403575199665222481239874350124159454228003793515108592184426337850370257564075953879484170487284277485497791221719918969937038633648270077246574431399073823388062575291892272551790477658718822914751913701174258856318408092272411794884236889252489253254624556540404772742944870870944479281878403825656982264226775643477547730115476756311219913365424747186934220527651047443895230978389203123886184079427702451566854211948826591634996448237413190868537591039886317248451114811582849561689521662791196102337402405772046110347987860530442661017604271376229025140285448364959909065487220532388707490001672660646772161172850648253471179015921537389869992536424242624831874053344636003984499872246263434684295125843165780914800376689373204474700387905517956520765231628055461912706230186545850378868150188209164546020176433415483177721127573942403821737074660380472256900696646443817777764588989513413327194769374786810940377227189877887100071892416019311394031192249298837446874646208821914526429407565318874824520527281735785877570658954583960031806794608452894397853479150739183793473079056848590979270884896584456440251147506957513154531137360155578030920278153555379294156735621610132696986249197186356134645184837593319369616654564951457289961951411632191776550169065974850483587738542880481222554777115844671599460831739391601140505660951868387728281088529465478331274592925521706390481101657420897942674014740708497440110406343663023575352221804022574340120746456182497248441295069729495501074849062032437654342478701084123354002087395709240311238089926612409814728656176566671850457427983727806499626888672598455789896841367871926070795843067903519057862331435466473591212195732874574985606483512094408870347464870441849060018732278339249070932283732054025360986142766181928311549564610580295785966740417933304972167192859472571774120827102763111689780383982962200602153784807137335300832378192554686276508177528121926969107186291834662995279746639863115186279401697426570715328919763328534467207754617240286625081709462433909754694654631857289858944456548644538731632047332393526389945329054963828465500021426282166210566081874585268182086097729945479569504502144213565645862588609621818277918816611373891547206447551998200418555043952349618592239083582922491372352603505637945598444541606136720048095133352855984481915525876131049796585324051734798158364633670362992304775938386937248501583650572961656823474262320650975751925392953635483312938046067348136649076986889088762753771993862631479862530644573963364615201028810927144671122283177945297072455225104744768473956820494768018158283891781482133115569350467705396041226083643803878759190699266963978864350174218863382807447960615290677017318680040157127715406550257235841161491655615154061180540164385826485259614087457000645292135666198610109938216603127342166486431531511960204207709453965430840647032528753281904674273646469724793666213462736106713169821640983380393092716868657327256999226849585691318969190588589998671757042989292677411094515838507885285081628922397580865797877901421962034977645548405203187228527429869434028254115011351616832188536872423835165039851553990548026597976892325675771036722838032959814321520450391121009354781089242562107874915629678661326637185534368435232498268452607687477133467398495663204629781701257314174372722336807107359171234658381213793278042996832885019487208477796547773988515072708767737282299488242571589783003486174913134280625392560700840076752374869635723150859984247047306947060148998861384826798255949410569550460280235861610937571853376858691358565720862794004559562815503155521931647396619042920288309734493640508777217710438419515792239828641581508700626643183335161619605596386351239890684831134168457328252538341125404767852776757754237322601542015161652049953775266898595664892461954961791606544032624543214095871772422899439686197327281270246553997830317252779049351486747138291063818809523593216536696981799111619067975640389758612553581989974863464253405484604235491734905577090136910599589209210484007651430822489649104463517054770717531872957327520679165288112857857829717849056444097316226936735107439124077427298259677262218773087845574180764950227995267753728492767333622068491907600679336462067209848317514950419200754720177167921415926593013461949703320256708271160500542069710721661971491216219246084413689158279186638145649637213679188714240639324638119740944548334133209678025576764751536990140413703889331331215889432614403541871989702779458839329064155245271548623287498142894359643415754448937501911642160544953468161932884653672265873199870803719114708611044145447765725739491143448712840908573249656533132533171625825971441713677588332229443790209779556354268801799424455138778612322443402073545061903062797647328879301892957025148612047254914053795016882521009214874836219202532755932754688098680126072704157382329711599657885921719782304777610692157877110491368697099832189978449212135209151456839460807552419682434841811334912169926711963712692068997261794077131043886354393829282920692018386661067919476067933287543441693984694290769052179784909408082408964183106795150761681637590814202160194449594992129956519390157877166971285095906528718095369159381713118244411771846927774857192937457592026455423873520910668430630390565913743989846675491046376244213664539146734852834626638927596612699278628797216680653020786828124955929869379048420679668745673507228066286014603016980221966774489843558061406264646966686635955283195773317768756764675038547966560501151592616176674634808976713649891539492650970667531494965235773498465977428597608037982193856633961754655390692377202730465529711976921601225190042659033542030094942613204122795669375806012848025244857173941248178523248486891821594435969974872707520549709936577891082126389771305504567406575974026927894911271974122476554559691926803289311584132870348904978635036708383040452529912331801287991864179774417291359896029958219975572505961335159080222396704958406247382998736475577231633121953286367946919138970758773598846887346625743377353520830652516004150163116586641091067763123007194874628006115256118840961450819325370352436530954388656051551399298805390557743495180320973973496284648078929445306839251279014428041798362367518337625288364488205503193972462576679031705187539367640905439969444071263368928922815841384849538150323680827801882343342793112553830936621561975324048729219887109264209208672792782449521268354100817079933284237417932277984683622159030735497516636598034090499992511055018014540696851937913097267740536502366876692503936758343896629057563423326233141995382996495843412501599720588176090513732563978426381899917216288007416729189381259413051244022986081996473653507365020313801467178485920092417809299536174099349030699229363916982307313931728041218273340317112094358308645512632456686461492984761594670550821545540548465681717135297657890599651897797986225335803652199048686333544350758091396592637110713342012058295586938617147784249926772867541529759572718454831562886026044748149195257768647017793763138067090903336797719509916844274308579665871315444646794086252542709822359461363077491268165567555511544513270059863063566426697406744883414336024715071483686709665906750338572675083358397793204534912488534682290979622809464912518633478584875898233085142078159619268109486298337379888607899187607076567581023438212972395934358021841614982571906019146183733198169377018126676784265643284322940546981627122188704543625165350403257899542143814664812293296404909747917677914851301950255770865110280155567701430894822935974752335544390211509161242754877361084317383633648998661399818165676509500299846794765158952750539650907961102426491965719009521561451163754734787182973168878174470821518565000287696591681207580984449812850193606767094199407130920467839055666894684649550385906791270211379856203504704136977053814755941483496713956904465411395479598756369479497367188295691111483596283855943649868187220331077074487295574554143804217404326003317397744824366086629931513216883755137214217313330487788675911004935676950906995976969512741362681342410053890297221736168810607963218634612835777283428228292722133131520051803899588984319857891198075584566840025946186855506935532238373360856210589763730995282870783274680500250846935853938968455165386233208327823111655698913138367999280372509681095778713769954379164231040881178505685570584605034715602765068783643911976473125352000158061161324621623394491432061218853239784955491411805180132014742520390651104140780689578429556048307016589408717714147983913891607541675786514304239696202703626382987667772816208575704023886107188982850788688353327815823104523917210999507256144275538190360573018160584563825765235692345162141369036265170999552009805227501074178436923386687554382147909090358465623242708654599184435193635444206263838295766353507487148951886962121617970145848749936340174284363803525608012438631382311617655954223459092453008040546922061097236137281908724008533514954718527238001422991460117056169895493456323605028861893685796844070252942472328614117537877394506300388583507784317041454047446271459537452496044255844438710041745310573632224036905159293392268567374085558029188459221760957412389745032487334325792483112367321897430492138607827929743949173994851021638548034892708504041086617349671070312165530184445277410475033831443878375332444257002499849811403239956675200607037429400577044497335594465737927661869697344984613286902304616380098845361045056183753035389008484466024643086011251054029227686629068063911874682595255312820444671473480505001095261047190839413000994828521367056169704321778087087749554283220366847069655662080364839734190677887433949230435201900062445497468592709039215589149743260292504774542160771464823024580790578050066613895231550635918446446983578473408509497456875027699101880276375652604027257662096543249264356518658371248183751271063509147531151462374457102669953929603305444123064414259440421845782414332806439250386535988839201338383046851344996670483622188562530425446428831126133933048027936866220645428536823049936004878609152929835207195486142643812746454906219956299747063664281131708730648003872218552019248329318964388027799295797859328788240362605202152854560897300387500205490958285030950765831887954207117608175985262378628535870658314304915999128960629112183080550392952558056349053476217544480000490290426444379260284884071605890523506685990880884815521257811522740496959511707834972010120079282988081058596230558012950325250250560381181122783532778027017264751190869061780896296162133809568711531110387545400129007988056974241799838511149546152842959517362490454159221794127051998034037391021634817685979157171145535257232385647286553124362582893154412828857321862392446340993673817043289948195512448132664533655001315014104158902424951715103676374242952582234169003094678994260192463659331737751423854997702302235253595098772452853910390483673033159115313048446631272905384854046576245975461997312627976936499439079699288074666301474054217777320964567369483021334332991301726481323003858176431057570134524649649724425090453542185645335065443822661760356273267860238309518828738557775269480035411214724947388402898915524574440197625983935757931827348037260384839039719661031284023120625488798707838472753408578265211638505233254439171482881772394396349440908590523455902866856794828379472920965179850296111581285708744615184152958470422550729861566503099632034344380070108268102988551851162571772516440646416885728500312848352133094199077372204887569154900108062074193766475964620979771441866898517222807891693212773380696329783620488491348850188346257781930157899312362673508867609359649355428614964554654440647655382089978010675607147850319697374166786177987794257117537167819112779574034584335326053689792094636822762620674245480967352709854150326588783873337839730285675811746469386089325217501195851097771970325754374004835458496928836543866703196560093252461827597463599248670917861839533256235719168904948993197926754506691053129821515361163168575838895526132467924563531553578554996674051728829197980263092867596514436890243771186089408729925641683265192836924937771578010710863041584497162918088798619199484923928017652018844027062014844593432553885387875604579568478367140698740036454047690281554521524642163754922978153227158217710154905516355415068852324450123192748924995840802314974463737985049061462553139677400301514608123947048569368549184460575390788807262722871719352767936871772741420365999222363062799840297519846151822307395081094519223987443741562315633539359679183546906734670895700239941560428658754915138919792509522039112691957578655714712328471560635733274264381403169371838900189557014566927561123369312319551632558991622693131665722677543756651293731305968426485972846879196699467831854497455888676567396677379303214598286382080226687993146781039563875101951187810689508701682559862064522956621858967425570058113803597424181360575321909057835738752762574398172875227181322524844285545318228355835197534655067882750105950333586198295881651372810148272857365739945399181383477740708849422722382628935333466980612118177197796172484845925587759402894277064157962152109686290806261535058532774651550159623649538030637908149253261238026061131851317296154784276429856946688005583052520523112409092648161777606971331130537240800275130767443450001205911574800276721187570757847855190937612720176429714808943852937829861868481620859160393158122133604540526208973308377546850091460135459033421399071229398331467284005718349644294501937571852347414656825446090931817583950151701559518144910221549260337646623005735746199499413644450667822237833105797164835324466140014695234956429407509917890842857612109052688669644934950510751062399705193832513305445010154783734173875019003820891867019392113132141955766187911217933153737003857249214221831065328710836631091907331171002268772102965618828520894016832688967785454339524403820981663626524471328784372097039746497797124058913519225122817171178217137535104330657047466540065900521922406357923035867304379767246939017697259264921341121778131567131903547831786174045128468891608229647443672691372489862513726306040635606563126404240737512308251814645889207259711867628227760141742548582385441058471019902689892411338490002245384153040925683112120342927900067667994446749048394218611677629434206281828874427506706605155292338486647520890613982045867654367602028361938939106687532291428451308240927308399865807839628001802843608184339100060629106453769287158021843011854002793170229647553880984734001994719403496902153655071633250471547924723455461610061258828376303304867205190056568309572553518773030438094097728882673391134102660872936085614481635742614586440865650112066094602334834871903133503881088610766742356576042112960349913982132209608634266840631758715959797035770454163488872310927014822237476057868129572473864692849932300659785304037778577449899010370140881109008396049033845556412071839418891191544093311073015795754030266927581931369810727197583909459965769225755515321290209094516031765003446022104599101689502924352478383725495611280172616532452376660530621447822913430626984537279748053215390845701963623055539373688722148244091925052444786209829560959325091561193719806786166478996806037008146442507017405198008708662445687525360077821109266584370088923554548810821914769521443121235536637137666725519934549723658056556753401462014703464603169097837197201003786635055368202582432655301591773400566716351540671631322440183068696483090129634041581713941402567864498389546506873197952459561162076249318837095998686322901588538794445853125347732106880238064436655405240612875941838618329210874399914488858548191716577693128815378669867483762224976974928763641121444038834137922225896022735046912237482657425365941397718146404802698626806474515706420768897312643722575865852634190363053072907585196822403167234884701813545395678815907421453569546067523979383039508142501333972724085666893928534739747210961667928071833365348838211963958422424179366566928296698745404142850716526164751913992778668742316493556137079344396850603994008487720415959816457462959502737134316173969192925490549577932846151629597732144624408254621619256398354831940428058236904500595862314319295698721315543116597001006635076834743865798450410941282081874146771385430383187129689329105861572691453769857742299569684010320312153025523443192406474977475775331944747538636453386111542475620850815482886995161149365672586538783147088460673191363469217370141232012050054624291311049372816888851424009095938324130869147233530367025950377054577320186846481252091199201287718916623369174419945239326542311078418601116192156950598893875618156474826935547791739186853743718654727565553632441566033368069300313082876571289335374854233002748306200364088451083315306452140476170945543967627192313774748737055486403358168306812643787434846197790506767867546261071385703413766620756738627206634643109128164932136059034173504638027872881474580607186412174222002500260894227326881726244646929196329771402759815943389383331550640287078226722619189591806526237313955303553591653362111168324740629510945988605707942189040972110842133600041925587673682918159319381269170246422515446343051677038581804581248966236460297618322903203459708151531681710904015257401977751791187377025923630077804860355178221192703569176656777340795266280071275845427480060816723870755124240039167695155931822981695418545790868389929775891489232300929177749622281245755497263404811281138358044755844639646804719295433266747765333119864203407352531031441817851808150717413764920836934806665254839442165891600223268515242348674809661157175504227623104787701938478433291082244498333256044696491841073093158104249046464845260813683241072197721065635296370038269206100324697847237287348041998720097372756002812437771247872232935214139121314356974423894285541019122858484493653511107104605912934194905860595648387113590644423808986920679077594132686801616876709092862729962655491071733849880565965805633919821230497411394263995499728228133872971534014695874982573672132270158743908148434827831612289021945788049677708355968949713311851063495121130747558818018711799992043205277035869670448797922995989880553824365070028393426146568459232973328435368723654103816260956568632006125227506498514169034896423465470177918821296139784370945816334382964299156742010335052030626103683321781442484042976106678385132250604897810753835984096984822419932470061922666234474996692669128055143692861563296598380012692165238741007873219888786425818075141079258280455416487291336782080048873954933709402519865077003128614004297695715167043312295196134716720868043701325592358983098175484361893820737662894132060714362765739990174910003454937165939440549972769181417181222358364060172909354503056432390976913938011622319955011293674764263679460095429689605190003361167641237927947263534456719304322822985026786176586580424175879678481189584688574669563035118959088526052028951832889947980392045095116125233618053323505761497731631203360779163082915565952790423930788822064344195855919649016650133744634456560437221720327943463316181310388795765547982687956204245009461572907636356733030274920165207404976510014227138582239681878941276808435342091295649619887296891926247469001076018428112157261584066614157913321135634960010756816123424454562241966372964118943687893431842075820250693462513988349311967114755391975512008667566727954907964909065858482262962342333338749569157166591688682749209990497699067661062545039877956016205891115664447444568104287358130499821204689531041786006225898857904808296150318239602171876038451888945956019254426939640009087928675497947824162511812222313216249003501106945264923218649384661085438378110362051277874142078630189017562020435818407948289057440382876844034003673410817062654418913474223882067980888945850904004749584689487140325115565421613369725172967917649402483298065612674117701405255796894969603847995438487731340704843043853068338092971728498763396542395211504395343544163219020141942974230958181701282189205207674735600832018608575010253145922789271677459713625481623166059484586864256761970703200620825518322190105709687499368403195209764029400150138007358483507735301409916355594269316624755215674994466745155081476310696111201441026965501078229759785868297256282159534036266893308593360453384681127060802756448630639930597294513644505136112713995244887004077426737897158955009453673889893467256868476246624199665617220200237060187200334506287088273406595693119036883379724919263217395663569670682769364679179251252311800450812611113249188083839850128450300454162971234791502287109044529446173985320554999890895162219451203442152404935381804410459359491115537015803014845432848222637292374334132139486850098870671944626874710989202143186680034419512567298665080646434886265480208724294535158477642136851322885032225881742140008848315476796844452448813618035723674299898746315916238521019731144997635596953189174235152612626648055759130632530574827316752321723346243976686041430729259916244819966541210417770317679577266294094077773102146448717771346301709420450247520855541007459371006602069406628998383883951207895001093332218419578731563286894143086211189524411683143816166391570296475934573010849919171655441641016371701110643023514594350538221124238256977279175278663676154075962632832830808857589748226089504748323618595412489759227294568247203389604960669710844089052004467184680607987163209335044268498362990074043572987523652396068417007331001319190648498139190895686450614042707265121054884811971318315983983704289175585927476575145608879258592939707829220884316534319249528648979522878550924429161909639931171640557145186668015460554302300305099244976259699864057237291266055992906259173257630864878861089709152598896550311993268130685244984387957044798774479885697949906827802263834586867086978406371062810417951665426659588773711936892558867890207586951424073410257359707039698873148861177504794352902955844095853029962262668953851206227948472078913532858197912068591820858960396101243855374641286277208612014863385872794912006922504739285546048879536788547387961630041523176755840798847209617452275836154521206665468421764530676044548009403125794908911201168375874761366925362980308078220120143924729588851265658469549607449799240692724799153637783560719802202301283432043919895946136608965209885269598752195895915347346213579088039338000382777812677190612680665663632152984217664503157064674780148976776099004298265326329756365161321578424704154367754441129462696106285455181756704440048993622098905259372141088811017399280184650942153221487044177570998240944740068987146490876021937156868279908622546981321047095453389405893846176779193818819788871994397318507751410725177986524096367336371102067914327720031826480485899654179611818874866724433849901152055300062720342794492541527003102932691509115285621298381158987191585871478706071063474255904048143443915878089273155346784820648463311076145857567581641369096534138849866877212441070689734437928665877611228281083667370838075722295835163923324262140554582978939402302063552627038203993701448337555173382605406660781105382440962448556460413469030438153883542714832525325422856370262542629501601165503798286647421163134041910767035804999284145532213734999289226035011825632254329134279317429807953880063354065240324212394697723737818162433606906605419236991708933025157879584221493187719473824408377241429655982180721516444771127643260201494921894748915573688143465628289064204021978857185009964701422848759222650377594019572206887070191811078889985626179264348204732737251431702655232777598895304316311574130899518646435320941492999545173641742645481424820384013618181067912395391301253683185415282941536878067889446190176524444276330733026804301584839283503538265672978347550776646741147565043534864415337090991171367056976794764520972250841817266224459230617321282437419512337663939740150483520515723250131047056448775706138037510483516200410684233404625071191966262999107425538291593653214219657098179554452513143862331509132211530699326776129004240016746545080874437161764906597126558112192226097437560352528931095702176925102815900248210289874681447328830337552912719351539684975265672647402122492055023534030844516816439267313354197987519047293208200619858098785299008711352125467805446814336530524029990763768372052561688413257489517726232562931745871411979885353035758397839489294113691390724047390869778781166035665720150003490813154344050777807301642264237382128328930407676436479704457686716610218934385520689844238830076735795865877257231369715654962489550031397004131654740492302241079029961248097017960321126344741721393292527921397079364156159938971637969281949628243533575142813396575673790283259361926539055910808306432837741831691475227804590548195821447695654097391118000387238942762581988436380309849339503159436722176528421538774764587924353254449675464100849941199948005217188481805795358648909068299189792503039744459184565843134058781497269242293251831149289831191354298818327448290198781742190116857825567134223348994483817254213256432148862974681552365693532924428375092110931083580801902913914940709639379129684290066249963769166332856817010904100443484527078791657131162875504181957052847258045255483107701260654989873992895566194444195846780362864931506173599966267863133476795250429963404361642156239161694514457788547094441280166948766334704600761507094414246897903449384483252988116539205554428032672248793379397355334476373895365874454650822119149607909509918402836417992794356668274543872770117019117012326141770363109380281072226052892050570226539967679011204837859729470380986202170417814188119200839013938646961125015346070980525873156305348382559752621599844627615210888100328926807575006810776089386936763807797217702184421498190852067238999721297708218036845219090245397195184170159674655817219185397353151882694345832314380982537489552537719732065819761408274463350593313835541693386052196738603061964134109959191985546999676782509968888674190568348611725430431320506755353105025634116036076691580019960836752213966771675430861397533780628811294356307503172102980964049843633792586784866648733182965099499479032133648963975901295266933657842541511925154774999122672853672113791921310739729977376612097383840889768789451447042599965564863816455027595214621990794774032299038795032619482299977622112460371916179157104318740738639538083190742358922927257939261224072398559537870362273201164040702527781372654259706138856360176991670287034068865368531177522125525818292976067294949725866989720508876429853882110373053738919025082588210635972813069812445749995654552638581965192528882805962785851819863541083893216529769547495883399953599564663930890620407584903653594834553209033527500977155770572647802661783857601201779734431351086105703909667782545802165127001843995136824946551551013901242142180653202068551305290314740579505401776881448797282536284477479468010900229058893456781190134235533523669447408536378368334878686828418375394035467358758687724807518762864679686755064544776127958851230006761243338176744061064216666619228564443368323236154559956543759341729224546278640637463368421283048991051893449390010541366049031365752285440594832440343748326666296462992114316373653515382267468804252435172853091750704243891231697538241932886820394429267597893437044645834411331384251499610832344209690445879016936889745900050502760680555204123535463835931313955733299111255952691998250567959400465206374354488808741061361477361792167593982251681382108646462129568042152273397464153303108621044157832441968486466436947495974103604017216368680776341626185019213126845309450573302954321214921734799029260347075619455200127355278362619354599345673023866316609827642370267743961654200743431431237109824714457279615809141167421985337733848094656783433101797046547565738223433954947039876709017910098864661515374138215504796593916717296688549592997787936261332121785911561825793524355349782615224668533495117912283718187218461081744032769510415009282877154817520143093163412204563424582939274680743719257518420097951490768908686356256871434693242095074326856157100294765282669310313991738174890842304469476489238642947176735272258409781749768524703281871223565234485765204212068094116420394023230217734816212815102318474712945785446887458902061362397276698398109039497249832524517239950072976455367276292742725517121286029186472037529005153478466287304935692710067981696906712698969265419417751979520168824001823385982373412563871281230346672919580595810916541238850891424549117758016168272177148403195426084680433725692928438695910052265625559570619003529109769196641889947437616576977949961751037206894007328261242032987196696738723969234262842551171729339488263560936237746101576095535135608153361273046338761422167254161577181685001650408855669767377072187349813263497094042884932097885038189688639128104858891374347021641408645561109428560139297911395585987056427380548261335011389813074634704769884440987566792318158122534818706980829110893016497483958804593249627937825743747023164369291567479593904385749317436233559886106390779213652885092313836507290487424879083510896558380618494567171994283851728258102822335918097879325312325126296063419991757971529120512371844090488818935482508972311311464834660064807029136006130600658959034336071149056659680304381550080773353113590589491646270699532384060963150007736497276152011721269320936070784948695748131754725038941174874151497638165370276732386964298637791480944963710966257721286115702033334459787588726276675865273275873270723307060274437186006419098964536938016678571317282339820576647295480851004147050084503856282117645332268388300779065556473694988001768825687849187138923350877796950083013524974533067109022636026899850812308828565374436670818923214054144065604364602418855191782862051564710064511615874487718428391160436969162888015532555191096894554686353662710193761577641527903843693748153056813484862892109549089359442216403060373832142559135213736202029980657641518128021035452869030234239204032810078885318299307413747751895573324308894436105447723454011661720335376500202694183247976036654161497368913502490678389479150712229868292265568612411330297476359480223845994079031920212701296577175242204917369528315460762697040111232225472700071880058502281545800791704200165396091847696462016071475581671677277889299672018165276029512157884552864563472019350885770643106245206778495871042440718465478477345042686948158530932163614214515069306728146553331242229939554303551044986060715596462808994652703263882325342547309239692603826695020708524478068422337379159074811783398062270908179422723986444244690760078898373043117935836136571326966664353520394920261852032399291664551686072118896315462842087903156006738545763512861459149464993934890466796664873260259991722852100578606619985061760697551256594988130350976688733762744370114708686313067576299809338014460202245873757102552062395977136230390939531673702729245576144115848141119691161549392797720245317392291220196299195230549421131815350830945952495971511720388736839520728555362347849878558971319596933448435077241485797148396557682271657114452062034626446302826465867561453143481074163461006108023879586092358493943740157152092181373285038427173860505711478807821213902421379378541176769635779705177143606828583642728837258435871870291336926427173257689570909716818074115843081708841940290407316031981103338477810834844891053878163956364085350563520242700957711330690927180729461286124888289889062289643331051618796171145437876217537172793249918373499509457487151583834408573427873263848918811347936483501422103345058721483190844980423571957152156676278001885544419640280286093166165948776897075021995628835317906116879950338964180959870561541425797376551591760746014957034250039583388210768048204706981568856355812651860643257851967109522254710742986342912289363528234259282676293483794727212014719562640277252301264816688718191915299923907699060029976558390959103050935826924351194849476415091397972161772325415899935614412578703907527411566315489094467371135330943190594841381693239501316959447769110059818534750251456286471496555134429317434550019614565976635854364432537380078265729048880980438844554852943513020744506525009436050762116311300908601831917240160322936666652555957355497483278647547658815881453798772709428421322289131385642418834004930332854167065345837944469698723382876137767592754806009583613427331122635631834703151492067298861545906302312460437148874077132493844691888111160925700170753833911015359965429321477512934370413366429660559140099583458271276570718886350896350036639482592675629198649706000074871334969601576528728290807678548291100168823894813414974705390729034055790278822527403222850614857419172049259715275517841638925106818742887910194564135024291483923117695496887234361790003729463209355092156555938492348496227110914777057103171696712405565501978591636399016858070828569902742868751119141142292417624028562403579543752311720664818389704634984589294825269583301130338218653920085057723954943542580641934559583100238122937911445914707607204476024144444504606814806075701188277100418878030683583944910945063705926266343254656209539114717696618828535835752932109806453653939462242495692367021230888189980590435425079064426033834646423436979566828062982500912198174259504614001369640566185329072261350547406459286914013336806718151478649661213796779663203017585690137686367837321674863254682329581992064717350709221944001335846016360242943602326242875820187592818054739925700168325117817222414703150484922302678813529823702551803684944968261369486765733738403268294127706801481951066115062777124157475995789959006213741384071465084348389056070498482185937805048278608000947539027117484887020285489296030664142378720775713920596684194476726423485086422138030142655011115963741814569915982097009565686213515003079390569315372245994567401191117774614739335236117728776808371340874554900092770648911115178357416388241761692811007106823465909090174642097144530817994763840934819890344101940483562052992433072124253294936406030193670208809615224720185954185563748359662931790970093378535283266398231167410188068348201205216403389981980643860862434717161986913069253541313905259830196708540949593445682405955242320604057334457577976124967406959395794429735900751035025362344410117522614355062379744092301773601676739506112527689417982325960089066407112281087774005242452550060591653867932537490228683046130820849875802355249664055227261718725808869545198983424233865045487575183986598684695764188762563096785142603381132726772492315878955777874293898368825422893002185874865856324426924835962219722671400095477249354112124881097847649974441534377992501395644038577063788700688985502425918185724144216704228601266564711031155242432868806126921080184909044846540692496935523035322712704074866666969719214623790564519178306521203398737406402413931526528029468556882550770190509262478607663742614678034929789887090258928535026690951351230309611772940056209921620091738168459568682574726054236838767910796270651023505668575791603956389672794964561858149958223814495267634930696988184505269009920185033454370854512180343955440221898451067435678867890432770405505196414430269124037295786025061124353546930393321036898178679557434267265079384179286727822727333103008446509416287541188175633860995146140584931000780007507467813717002069364071351190984718677285468961341899976820900844190936778987838257528081357072955179692164028929131170449352428647841355798480283101729476407902356983744166250462589654615022366105107085052843087346354330317877577209798364581979280043533669833171627272744490538126009598812795398348445263406225556750459305201785754519709565541843995409581727806174726753734807027222147829380154014560306467822576720900106265775519769339671166487268618763470769493794866014414572432456001796363770683157164536260040872129714417472882855529446861260782147469354397500654740018396988031057016956052287682832200751571168443971704608014538453121151522995601185146896910893688331292453852130797761731358089153280977404888128655037836700316194526230515895002127766288765759158098887926788234901817663408338124059069705199656783781535866425593150984613221376692045291866051114406227385569994122949400686068539885517483503828304915625404109556902352890689498949261323790843219997825002166464452401139060072140876177910713194660925673594020628609819772252484841220905766482607832938267402805986462453141808911293414911415954306783901132464706448105696239333748794509190484611415981995661821586735691690443481178632522121343797690795517143387212031475906391399679918391168813994407989889373862163640843530088376855585537678672329033644928429633331418572971475521384333535878047422366242127440810523752029945585967555860690351733422645909323465236111350487265586175219900038901371951898535317875174753068715446384032440066867120938131907757137354540829232655840343204206295138470639789008729267791293444727894864961682850410636390607890562768367987496932101101461288931189844983670229680886647848315073044181672659530502938066528289241807438518372459306155481628500979096290664320815668258028877458993846735392534447338140149985776004901561315997023111674176939135612277117174401133526673273809721894060144590345027026131754634147926791111391955264644063810028850256183743508072502040694133014747521410247990528513919405435638649834022171500539908004928550626303877534431087255000266126375036405966922454677153357119413882472834704270365858157795693604314533740755576182785667913641828555724599314894940274569910958717722883862887454708777469558742380453423365754131281223622460116445511454183737598514960835193198470784504928753522816942168451048854216201052860299516921616060530425769848667012929999198385558666168225939218765423791729299146014360040532725284995280674453333822422163376945016993869440326881732570845035901362377759374667486179229936714915787520127514868838085471308628502757797308191055979548387695567679231743346619922453008393731957168627065251971653592836866470066428973951488538958461253040445474743356312123573507635157160781948714068547691753404073559490025949308174979958218480908766849237791824946788958109400721258739664120490217059473648808772207882362126697687957460859515451970893129435706125711962287971438284300932248489488020190980006494461174111955806687056710810453756454697950543627710966881726407981056850023914223937325631290496090367728125426327281341371392522210832064710240987404864739001269796119110079853943386028889237944687758119514249415537296349102930978548673243865366632423330839829148187045895871018154520967170751269428965447584592272483182643894269926940883017757716578645956093272330725158857902248640346082738155069158756024975972383967894679897773110274036107204221125617469805034454791169839401984725249203756007150781432692155065735227566223836935404038076007999505034002082164862519625772504684344572989051253744277344622988193874807278951829172310684391361788325532367637128776090356634609514624507607077062553089309243523677880976895008914895768090981324081439125987382936535116569401471737491170336624572438090377898814416588562993423915373126460154184645681622732082629458565252771603832494620681635733780183580355807745766340494826413940691666135710539019605597641714581691371672307168496615497661936744065963988004903826425186899331515156189200136870904610950168447951750435227666092120240900384324216419792014931794816018713450116328129336947800952126497607112284179342651962101007155947597980034728831323426155321219749364715248379927790284170747244114120564206372631790073092312281020134530556385450591283246889388497923124573400571863371635534589747271172222291387403427824151774651258338204892747184768765348379085165622783941517473213455804077322999443848283443432862234431628405344442813144843242640556300358576531396924260669204785050757554606055983030245552452151540999978878755607472154938460326310451808882632247206004352198512781320031160840775311277325140151469644621154517808909291342991895933012439583762732879402023079241984274277829617132373172249745996320149247780947389464290544770993193277160291735358221459132984093599823383097384557832316728249393076212879202121359042540309691974467576535209432922057702679889060191093057954364020480151948849378483556901758032938411338558994052085602317735075211953352281175991073103437407327041885538002288491238100650488650151710259757259235574546239274283708156511922210344682746673442202747197753234325694280220231053202061309090164699235669868536441675001991275940375789947266795841063896389292461062663418329159105094278749264080533388547974070219318544733901526689959597881202922372558147698382402163055362365332538235876584786245095725203078922282856088379968635549078666682110876382354646310827460853465329093520162912247251297989003255108869322591734249171740019955802977394474576981836847264085312105778936286830460007976674307770253658714523597991566938833345878874980420858201456219340605732410430038505706740056851974973434847502913768576057906624804646359035289130014530739712474057037945117760214050113003280728941126954342187860667818158900021211987462638562113501836620911788236981023842895752987698592886744054116563988124876300528886804581114927641463232906134091874066585671393158735857394733395785927901658585419263039360759034386856376889724726581038905517865596837005723869009571712075307872775996485448503834719330551100349148311528690346667652009130594870827805720989785452263800815779230095115932642362564402399809078169360588125240718757309171380066388867882693999763061700461676529362217505995414608903977282969580699779345252866134969253704809574794895771864150384890932503500798759669846042971541641491893241700726853657757409591500306937995332789655554080759940505106084561339914352556405203558927341042278585850507565761926256067837680635377888875944026586453011403610977829630384271908200164505268449273940550435388064410045186490081657045829291595496173201361207825025845405042130164190002723455161543982820742979528620872986096154079450648348910123122790534075783483267672754244605497412728724569291334323407124907553283374038617316763656281225655771130105697769512640477054573804150180588975357754105235274876407309898579093427861307478242777458243128603594454064249925852527246882339751711142788025498357754961775770720870664885998351247152507084799818123588713219785948706242641023057310546725048446701241408774037929956707107946854134448891498910226896158145083915941078078778883400850588034492377974642596886842043255093391198476078821424951093390628960336814645464555475666265882544730637683705146301349080000991379733342239019669008548034162704656444552676093725108041961232897352741038549260819358747210041705342819830558627177885597880382469689449264218555188584240853841764529063854438456606973514665096190086520278896690282877334221061203653175994525445055798803987325520120048699440495917572841357481693561922269421699853654698840698520378225488506297644129040104485300917931956773496969230645382511002282115059356500901820398163555090968922332219734450515822122391635754580420863371920901306371076053902131402760444685768026524955128640260367386684225857613175494642162761966126715188975415920335051889821450859519474405090219745993404232450671705107708081858452188809836166659722047896159527640115425345562456788842851894017011623983906703151688260767850513423592526742296466634074230620322666690917521302371413243606503752937697979508864634706418138105604526710740319813828380727767601917711256331974636882010951305830721064610960413136088487962514956812607031945486338914191036328733636654585169305597097954623282699278953820761459268574693506486809225463236605790626076596988048107942036149010231930526635708963250182143877941758777149928074080519224698081157060797891412938768564715583691363296112659056517176013883854937067169354743673410654330679738393844109498441755190367962650763933189542678576668302809783749839019459271700412669077634202248915629210792271348191814736898776784806144232822554362325102795985232591743719240376584549783710961327542147359590921213942123000888927489894607857931418447490338823465995036269206789945846567966947686222454953869679048970300064248686258209353431894709998598646727665286711009274296365840845209722960636545605686122655741970138185723853012219400302328354809393324337639613242372659683691438979126044701359200066122899998122490456611713701443855861129121939931331394350426722095168252523139990702206134716158196947689619495460403737839151966337763188722393088681323025781106283576762714359496053739374423948950011426620656352263916260335340316840173466092988001280967453189447533635734103805527893513865099192415191317033688757830065319624304127530602282304487657562319692508490373187557648886475310430333696289350154241931721637121675868367758287938751804221489806200324395109077678884467413708466568445153584542522512096675034438870690827029694153378721569908125509160263314802935149279306465978567827993090438327343362997107320133310381408005015710236728884094582208619783588119978157562131820018383916145426613706638102408195794971793078625792731505029149426133115950656115816696231370753467778853406320315741282163464541708433239613911054505223165432712043873310416836046034051426489244372106434079051938236275479898589010616862734716710034977099332312847194314317806331819797205767495395045863613681789917460947481936043202532019586257684676069037062362043359305716473561664938921414040135760134319872305509729322748269171764581550997887511845405510375510372933145923860919332132437129064172473705303703300557497902492223940643362039111329732466760279732180290848353344607109239409980581968496727624759439826593336531960239816145695255250582702682361126909319721878242108344083429913564743099596689021063472839246690138254156260532092508570535138704386456361769015074089827674436530236392557263285864018726393408275091928931464009325279724579984275115483475579472584239720978402924134279448209371847030521340252987743939186294145159769632527690100405874552891367505966996308997278910182285999181991953453050248434070674343914429011924268297028463976625693179664198457362398570731029773162739723301497228817200551609530834596791928061121859419853859178030202323746218157531601790402026955804364026008706765077558649801038353672163133550800663174844989976848473710460060819869599542803683394939951794527612420100681439764927184956214614599114896398182623083923361497422318472038787529085399144224993783194665176907657300565023459498135256357126172519197328477421345373653643351944837161236216152994407913336103100263259543426619000875152854048098799148847906757956280551322793420613890039000621042024898640774107733609628127752556741193236231287983957243027618532726599812910970094132850600814954012405534941829217564801945475591962594834422311352202287400480137037758959802712211895444084068278525308050028409250991859792086386669265097032249861271246608984593700985343536543618512978272661141664184427147048067964623179884761621321079551815243567801662661605416276099183685757062409077879565905480685557694431295689483248571519733510905470138073309986106695911889869034917831998712410181341834570961039343050301924972374821403056896678784456701918513783671330834931640920885756515122951333622569333130856749076764593709572247869777184320587395837949829887044372004752547518938780472865662768178212217247434618865048588668168478351139448228547368889649715906331109834144190689271683204189204196566917891468165241204626852708914042847860416185792678263387084288633189765676655281122031865603890354294548514266803815385650155697194012188110277638827714023200945060858414979847634537675328329133358001218487019424167463211552556410954644892277638472552792107442718868993321797298083389184989342586982964281869790693167621184625442669817709998007160486779602066161191172946694703783591487938073645920763246686378036077515360265046090434796541595588722344549207249361337039111539650660594460442615485746824635982915659159192241435869616168175768928708752511946611021307585178928189234275633211330116643447892617264699198240608584666608170774978084415567586408724093096017973191913793263022944220929929839039008502636797159817474027776445975681419124735683677761292382221846033166769573804665467579154302989548028262048082299395316716920431487430469806785169470639720684994645105164210494719352675673054829952568854877322687954681205121505749937312355103232712693165266325792091624519129302791840693057643001307624836437651293596412319779216325132692419912678852225859227584552528839262505114880695851341092124555449626028316612068288636654336533605836118323278266902186146827168934563769978127560158267455895427575013262553086866424594667821003600578104599534160956119576566892624539811326280765218485593397803577372489173208458692088754873801453150403324581580353532882870688298884340307861974449940580952948516721100793904892493963790835732116581230918934510341892501537458985048683076885179307759454513232157199290630056646923904736397537945793493905181304386306810963077029925472246731647283523108926528427602279232599816956510419350404858224501923054910898992237251331015817569051393264431192604583908279097992895891234526396605144460186360816454278912381030838795251084919472861068895104952880852725735649916346768243176719133631152402838825564558023484749677676873414212854807568236725539882188938529921756958291625635668693586308039142476852599820071505275613983507869513649335471561414110842227481043213410966663143972768889607405813323178982683626968923087014455574678706653984214122111805758575362720550730447604839390181402402228774090373397961755722727204445495341128600173415742868192804113144321105068067639363582072073399620997423104117117534289542804424110924205784076523348476247935597433118785062574555291340867700856200340985808991378497692758584949732181399344314676134244780882384587017672175416232063675849072544178336647965402311757364741025350091198529498225006611332913223838787868218407640966302182326796620102175380415494932306712188464268203134949090820360027569840141304872031936247413129860327414646144709394889220826691618367924228790282551610015011749135231578061911752840723927534540613421446922890882748823309081645890878889579188566802483149814740034854306622623862363278739751323342294135355504761763449143634214895535572713214504374017322283496915849284090321964565676490914097504046518391737429822036995199433878145093041310426731911727176554710892534923091722568186794325783382349177740314563982513984371944741428033795033988065027913604286213384686951375584704028307695025340782653407197379402501096316684144734322172900669909638445739215509873923527785710931427894963529225130173182083950123317622275037611045394099672490515354144884174875920993109150903875554175024107594524085286373898923562947649748949470767486616938560383915371335725929363184146852376428963783408791019281444461295008120707209323441104243916300181371434601450676319708823383800083501996953443067442136834671309195350218396056884743788976846624870362577358028371848352006189258824352556120147171288010528638243813328729250889377896430926129994619594567975057997588897374475687065371945455378892945736627845443720010161687193520479757248046031972667057513834029591368594463404983623187165313906940234190218290463077935871046731473029148391558827771630749644938718579585649635080023131043767131504880171125026488908037804899280753090167165607548816764280913242717865839218843873019474372757964462194185319942959906669701928976679318685655750184341715708611117771276873747776257895572439033793788743302383929206390487742504858423042990261549018675095301761699588124474950271810367506211265450648411703527961692045355896794565310642181246872404295971373013228655802515966773926953125010139437936788414252294760626564592237569301365983405830841343207331095886147767595731412671666685040563097638797081071720707557874742705950528878497711415223503264402648231956668470213116982795681877454047977037200302269575485197931216108236529862020953709088814129870354064785386669821526785186838195533781030275490373063078581631607679739836951446380688651929329835589484513162740661604525385385039829338747682941607012176928702266136974930393487831537881426592561416414244837430360850386070828261189426014738974532479191039840631610531023382754455353874357807938423953943371022879733077025964929038106386510396558590696199821516998638508183668154107321921556303735566719034720023488717698966099995869519847552274035322373385198341167052292792074050808157616761977556298221229859186393874809489058145088935143812759141330238227544249460287946979452301423269273924945745815245636918469988297565219608198020551680415168738065610426695611406730551247721478142004062558599327338748514520278431357774967063524381153375773293312329783008759566113869459890312429270703464643448061491518080095714995013353400276664226708550006302429345672407448346901648141155268456835918451707348188716264622265697267067177726649294086591830525338852972058681415793049677822707017390628551422760846480727714582908629787908772698163814410203270281768784706521227364268510453186660937276777437742790573606399840547742813564796169471281258731484158050667461654800167973331710279737151539801249281137277898368306316018204935286377840335513308866504085690732352390331812709337330238182198076419541623911806881002221802320744325756762456533665885185650837112624388478660844828116425563696830518307195676198048012800656644896859602760689675805815996851410337918152948285086122240716539743488344616390917001841020568214186121774469814386140868512876252368891160630701862475456022034438455239736915326550584573188300489721265524956220857625190877329103719196234466102024784147255712404339516056305209153478315470697296324565024072094190786055112897814189891535772060615868455097595283120983119933480689311866748949662035171641955223960287592613940249929706433215112097391553586272181376379988298486291339759277585585620797456294343061108117910574057617753899325476296497067633779994198451988313650795728974917091691321258746375653322096046263799359535384116556950546171569805630900182873576682969364557962167188726772116020301477364613715522542859886007007789559929725575510970389872544129508541153786166471120951641029561078873808885740861472900661221256011137555348756342003687145008232126440174208492156304772343367544736293337047946639476272000567493679917905795905592215020413846479826302369918051772506187998898472660586490566804082849513053040616599992616942466499083599156071433232817636982185543250110710626852837821550011036106594307347684209105280802041171382765284168544131583557660576226340942136929290070804302436630774511187446172670627273442513430666765424334019798353841656074232154984291291305976283191465066022064467012849664696084703139752127492851458782373615122535210054357547803971850060544972481366954244243501447375384477120788648147308896606631059483526771152699523565997888678291436782655728451532580450332444396326014863871972575919757179657831216956701078948553174032882268825761417041369468612885475175829707824236667576467222512313932524949217996996574609346644592036320491559808012814859656368528183157032591311673152910335554388477689513900442518436289388766984403122895268198519147190253970094091558656064968632416329769515244971151512719132656081775930884935448833203734637964444307878910664660965091424022450364113566657783001848235203241284799510817348919206528138292432016819487044299321491737031467554365968057880260456398511363474706686414786896974612613837889679065436956208266691618193879094129021788850586276811923221698970898402908984642379996729249750200907164157459705832778868259019316584898576546133137629751298298451294994716480057726446458990998571634149217906034288284974881596646635014201906762455617572840613279861105457293600415009626728585461568775094447048756598136831085561319675596073706687849323798434558718436429066325369366192973926917644851367617246006126331069438343052203238368933385928811533767797051394108151076588268095072498565254620841065522578982223129305828444357542962404381279010643916210281847893981318627704248213002290040861458539286201845464471346757158983791144788733143986898649601346095436413509247746730095775951715583624457170112287850421066638722189524286625983220796492706220498847888852771201969944888208671880093209127513167079261441816118929684994567127287817798552255544451994123297050504731148618496480685420515926279333843054800494314494819000051091544352953597444062580597091765700290918700579981643721386751705991187978032201777431987090457097734068974113011727276831505333443438429056898399030146557435263472814143327860462252506032980571477070732360972089560167647611074289385495403696616042427699054133845567981234772774030288731514493236981125478585640960289021833688733196974085231216827288556705758738872948910878326608618846088329211080182393378544126242185921669145574428707957449457727063467673500684574464135752145420548044314349022043935788833616243748741968928846729398369440559925840796993669246408749546641725415783984641022881358004395505446684093466606105164001537601038681165553264574294213832325470477091653287542500327013907986082391984246299167647494250294616355445253613765616771095450660589558006079631738692541141210290254256830248890303694440324308567095215431770559259255932212930976918421648685177052583425636998808593568997449287900619433899321056602719470601662825284085660278995901667036964967956406260388031662766875572354386592167002735425402620439818716156985181833204215613576673851478672017459073933758922616496763471209227856490002590442985899419597491940082357122392466212019941047576415614796618426172665556588282813437382350308094404739726982485871858242640492349617265850623389978691572890142744642470988642169354681267002682570466016491032459801957720294888866965559459509043107073347428347857838038662360714387356090571334712584066403209550532096748779740949410521725584929027803696586421908248495158485805828170074018560557302732333730013057904894904944217706570198988960843621627783969922740641549206109403541690036167434556184117879930261300256033477480116111024062545980351992645977190907291718530758465924518289090320562221926061801190230498924880010520556339495943302218701720922375016102765686814360124196346270887353690611773284690748131620531303585488706682244868753699541709627626166690864500300443032005725419499032605546189093090736777658546241466224277036261877494325589010770387567882077484012986619988640945447269068754556264640141487592098400428868652425948915804513172142900156263586959286776622175805417984280677273010857637543497926852429161088113135044395843850427533154260596752911442598052935394555003881518731003913031374086010227327418639770008696576062216773479225312781985794152790227294653411619897348075300421104520424190803788768264836701945081616056446788340837396638141883134475163700520722353724948153496522865437326570290326867803681317373712902828245985640656624976775711041175618608611262837008550019267491004004007124728186868715995948858821142646968887667427957615619785069590598909956189067826647216454282733216921970009099203357711535069461991367956586245957685715566982429085465466368193311804982529428543175135410497925041810791006145340181616964513271815775104287165441839425280968576337181669612939757383789861539117381742758633571024781869189160967638637798389301393895275236843086585157770131210108007294322599643817053668243448054593615152955771843124683559292057644577052896213570444310870504283526585525989189050964494007531374558564783345832804584449243529192659489566065525592065170210757311017483702296959898415282725056550206470624773815465911837154431558623776323718799838612056483660040063654550731489958838419634145689880702008579846028670317523259841697857947249695775283380026277198282430222334288061651358363379839640770965152208004329760976155713786201535541440765599860230307522237283793184622751825500754938130322270765807078861739811536583902365581993075588786234681624458273005931908939038819195154954021316260553598574245950941065845169976823352477222130062131081713898518775263242114671416971521449201068369549228227852653966140395423368978472574017263814547127260706876198579417537874059640975283885770140026283216654450149465455257064175930694821391883815181219045129382950071749433560538105431453471200352017441843101272651882189840438442376612168019642388918287859764604688053992082961802384087289607013879885934126440964875153645431213097190197690440088422321405509240798493588731207890866731947989896787112948223058492220365600523569996811082461381797312402357596080442648316681354108509888682670133806172586799853106218871775320657819130019035610290622528594189316470029015028486460822510180873948017238682485091577582762381863673354271620519829519467149098735836157770739748277654123165194852720810192983497483524962229946274550780975385063842233166043657493411315883030979897177673650666814776489979283047102534209032605367486742380415130064535795318077265851115969730086231547646259713440876809298472266890113675002821499358247402726005859046250899769388452465786641867655755505116036573374558131465026829903756410727879375446475664693315084728809368779051902443493817610544713761016569426575945277689442403848822429957338047872689611305043609397340108855167466470087070185298661953474109992117357312412692532986918274328863457903744827256003868801600869277226101195320516408761541015775136785023386481086772748914947792958865536499983839964439502786681647608150454538900123298642413618119871068338096230914146046026485224389293079795499098870403040861702960034784219914760503371575297484110480338053281519065002266320514302795106622615682698657803544149516847426142977662311706932089557147059314843042404049590613303399592542864246640058045105121244579873898393914009022140035795510522744375625251754715816134079322635634756907322130478597998096887239371380961368938885072281964885592544638141471005694621508226194710665855113361004206050058330016349840058687581110998244907384878866117201635522368175231708464990969093363490971088335643441071144927638805892558633062886988166121383177231709548679455039188706616292320404655765901327404098331060378006353050157208859382843222622547990756679449744656572611051678967930979309691968499603471877827037261650240864882150294903105378443875455096184804787048029418462359339913278892318254883483411841036160639984457280179921504899466360950272683660111376411047564051011643051856216825117822593841768224253662149648172703819243400693123574080475943128101151136757977477425895009493569204085955806747153408164297132014612971907004401986024203498516069117485449682552572076559769384644166850745130229949142605449899998074827166160725676741169502129175942495329842711820050052571753905364575869872459148197744013779568736027360129282062879757006741372360145875104268030880452526041427741170253467637834320831508860998433133079384149219060349016250014807792885537350873410114329666305525231173410160919590764215272444812700904949898087235911070510225392975920836709798050643792353422842250457584760009670838409520325342928110677320926673559824092376187694461715370708755767983984231829653578993791591441456048149979849026240229502955235356937358113250006864840886891172402737467708969553313954679990497102252824654099543266487412519135929892081867546167381516664829744336904044720981903003949542310315923191600249044086786560690353519708687153114352937538194368187170964630641681700149558849957891496112306868186772062138168968243064072923752696538115560209745118653250502366195653916838628752991323064464680990005069848663491849858407871892637248984781600925484685985460499456214453055014713324797657918858353756695123761786612409798284245912913555258191529049541996660367580021501962898904625320568569852110657605503811903862485996830186075227494737613644520650253567106548465950694785055049172601782489044271605541747255806304092132142538171785375515867233811020597870028935992216019478313021977364325257613754186455379716773557028151576469263812116606256935693167492798531466228442704937878019206966852866890612231903949556452585545127690577006147293616500741399638596006548037303426397620184332186770732217496574522543484491589670859475656105909201044770623734693090616210532431375267777142008989228813218820778638896173878237022643770593960154883820028434648756501779389907177816487812715327628119918366267802348088979232259718801917520087501379057642714109907873960018867199496060535260925161477494821779684464130605174046745701006325112310665678614848396477989738107268967993959453353927288505970228973231623170601593906839416642565887398205819349089970055556572100956976710175703476673339360598701547122259821520444498332997680283234662753435576270667046852215883640629922065724818621070676866316322951348786109839288092424322683876264030202909812193041976969558791757579624796408756986743783324514571167665385602061419989097384216749864758277360200559016191327002058830351114264995927443687647674185547735314776741244298166580746398090291892959855590607228610863214818422964303991931023194186219149434888299774200269400695366126304128735133580190286105613884807778204573441977372695041889293124042975991381866763770795023914415042015211835846715586413785172407263081921846559777226384798804290651727587632170767800047570610699727028612804060507101971154080689270881214941789375439941527817020416714508036808301310863259762368026477835791110310922147730044723943742785471216674809274800574718581837255694805155732215425179505336893408979580999687753119032308899077065615554288546856084406348364076284334200674440338283557355901526621592798561714699116683799561506230501972486238266170095887294524346356067782984730865921221173021185203277836516809117646677550382701550506166429861214922692080581891339877104235572688959324867247705955509307207117880819251479387405012569274225180240154143803213194078624504993389232288532084416117875406029980333583098707168170825973661241643511924044049556285309990137966963993028795183333182874006165759894426539923101826840740622502328591689859783205476733880550965120423141935219418890663795686765316670240396081911074783669017845141127986635387535689373504641402748811447842232987709618794796363927223951498334650951646265295584223699559803167891227346359025985982806333083103218809527008336558967079462773989933203643791148251143222399513625082126476548423453564238017154007161780898035319929488919824905798340704086789578588815812333744394432989680196728141440406478625718374508741391107317315634121264899906938003964981562526681669196082486579900532754956642756337088397960527155499388662631702440311454425821087265750849644633786510937900546139179007557977786258300460298624649250880010610499764235601134109282988011596578973954296206217268080988537642094796210061922577169887049884016965749682778543629669025562410543127501097907009660361322382074192892641324800848700736372206256410741093601195872412377596713523900334962678602473970990671798964327006390166067160624986053607784579238004913308367978889511896482999960178300429632752859231227251978111976707373245490072996296785321350808620708415826627430200501856108291795857454715591289913897081946507351069236590543973168133304984964976601316230644522605452964697686417114725317906231905102876049586969425192380141456745283572544540146844721326379758942002649185767259203854871614488883653694048098368265980951727693592909266327970743271547690209278942517309507352203795717040456124226570331617122450906743837245682165619387947398858204683327968686381858008043515816078242701227781976372895733612539506663521617157298816720057858468175078034224187653396747054518462745117076603694103161780091587308639784379987090091793005413708263236222734852104784236674612338523623668923884109214170975116085652903519956785942600817604874871007014932523473261841526877909282254718777517672380003754946804565484754358192992805867662845156520693830301243764438344575740661322877905348843787554659295448496157774570120332825440013317247648155995373644330736617131593393111159505164244936109355123452861882367482532164758867975357029441204064861952296299182643575049236489124792616076006174774491780476826617849852750167700972946097510170151644878884264119611431711051622876292836059223655846025826311238805236479682136317492505229969393908716533388127158933895826550938304256168286573192316803282459137991998241259076033824896577345087357723434856774834535282121678205054146702033394379311957894182536562678000883153089111384400164132259465859261461068848884672432920584367595710765130173483776491039322950516357063067610348869917478025593313099573825450831955889076483956487946628937266949409668140183290723678853535654252125033612121085031381009641922321603154550428872160927025857413733256031258772231836207301016216056779804505500156391243914251885975393197315392354170265158684462408267440479930109630574830237351945808059581615372148018319812836243314213559182268542068603378954974993692979043990028511133768369163092279384935041603991514078973800909359154114251775489081037890409053795026923979749997134658313981151798056940659799292372794387570698761150308070062621982620966513098903770133102948944670292372560974603393689664066160715050276448797679079687967159417327731032051712239439723319370619486848770895744272799575437459499466964166492863985957295216969037241826894876653725772443958526922079529145126268900728281475863236641603270877881656652932118086141604041653779585792553121832080326295917849829417885535704600816655209612037658504691948397439239521287791485413089658884240273731987464419575713923959723047227156876476729987689772686352398926904163656568641091611077225530482006181684957129407263984827700140550130296815916919791332462078859197715790778853012934490281172667133923153501621607159103490508704275872513087630160088612405273866123464182592152214018441924673349744911142684761690518031245507923205206604067379951468021567550932967018793959975476702212208427924312676516143572102141488911987604522604883521132541630994007186470018110995478259668815009178322889186911845844858194270530040526918829995591775145139352996815061369968565017857602999268584396143855229086286422049446020775489355360832044321033703968444713325738271825710687700356012357822966356698005666074908077967486821831205245243422977996109699463260918860274959018332921739717634491739706026310895205502090861600428308820630814224822782236564360846275364155746328049084514310813083890981477267728992799323636951968173243883623056062466113902389074967184371071896528446658727227090833507519187174833198416986389422139193844666298769043012863562509304611399970514362298527196885602167911196040588574775741691253906477667475789918604757899739500980099469136502429795841051370413790201001197472590729151999558760012757296133215485198277000947667296904579413379235640953827503292864330302775993642795259414143230905259391671704467833823970636257522314148509664560195315165987524166214144731404656008564690044789750879786264169693596068630000081393005570409416540492082004909554561240767011020031722315576096548722409143473315660851452633381403969260700241459755184742038380205348605292314053376932270411998809345190337106826135610058434305090044744296792524712214820166453725676907017476118363173865893153689612702044970731792100706835205142468978590692212312218572963729399787275195572032135786762251324777444865290274655254889774975539873988425921943923215351670821097220809126420872416081225030951433455168108305648636159008153319764532664819705467907534957650301348143126470398178704385471226534487496158299360015718410701032885343747699695483058599367984878662276035583115596347414036040369634787423800436485882217211031856266623366604393682967561748335766051912883235002669740592531012501533266067241469630327788693020458766435760470437998680262894703541626095977001912941747007192056631932362233959059716398584448562911541951948611985599432740796940322537229588109932498610502043432512576033877677902280449528215997547638992046627333344425225683806629175082950511858636032024299815032026194572216412444354408164683090909516250074059569002807529152627862911777671191268770433669142785906512023749081052290280429948127128595750235806862466118816598148028676250333927312661225915085524335027094174518844818730322046601357914363838324648707537807889221840508534530351611855127661012784985790151222652508456837324509140629364627072144788734021947415112716689228756014983261845565262389184530817821567670121941553618842697025158465214062785499858202132923301531941971934193392000271787030544552345410813539868347985395790530239571868922716968047077374395542404587014335410634191219009451997587975196906734904537603943433737340621452950806741080677830396877508308008855508732198680225830813155711192978805980215295402224156409039668641768045035336648037488590707178210531537617127478440244488999820421031466652416933813328352599518825792782993436257148735521290724984382426533178700532603820895091952320558052606489999957625560477394683150585463735132403243821093187754595596209325708017147568249452101695362867481873372130421452067158327675753729492185861453754618119930557863116662753390617975052153996395810999580580910433807063240663380413954007471644971316031897472792452784026332627396586019119639271248984757155312791982219083744661006127710908974006944007910957737020347386149183744049078575034934166771274834899940722916638507695583744663006379812873017482759102099475608213510229608941669417735735710078573221354598622895616869018039150282814239291627950975323863287676810642812614614021367544825302653316768215513825582545801959131479748975605156386595868175032275311306125624678924572408983375475812890004891650079952909910036756960721169960541072101718594286639127289462313874119635680139522472562426015800781866961194559513058434295601088545685064913256233283407196845409579594203177789983104328663089808637075308817670868129583708870841683061309415078381931029010380964781090652818301877047585985342707412204850989916676906757726737876115652627336041706431510408238096630720568644235518423893995935294561532618822892292392155786169794007311912246931445410142155711791575011894307778549234912784127136889734913797409745637189838100164944712342543280414767269027476513213493638451859962090616445886306122254627905468073307368851779987239771959762477904018864986685965882200592686129858839343755193105093027427358000227061966842750780159620502021783956767930246632073925067136824094548019133758442949398673265051691204504184276858057657958111178931908919452006106199766104283832994124860094122444707496039263891081646914188427692256508467325276526586758312527047919888384073880255844609312610839685688394102857945031335023094551699082674375628006316831260640098465035303722524878647173004683446415307252255753641076899596090088098014623910439457451994992258892549725713796759126666597825484589002796077865008784672956058975745596244608645040506618949022855084797678550677115828892635182132988259504608213323899700682061075262686933498118618928705567178027158408201651008909596037814437213850495562496116641763666113161358641723574982531956068634833495439214397375603882409001880432421808210093416709369841556346835663379703595126059601932961946599184020803551893256530247482563944438057605483435510826167862658945239638249393046742978595576388829932981860917473523985877445040775898101317271172445494149293339985040166941821286383798987871076630125599333405557307686292668363862651184011007300229553862411338851734600456429087493520695721447096190721460207654694550226071043912529935581101968848985578323083532713424774683346132665606413042833432671856490909462705690561843471253907262610525835435722886747160608133008936126854318636040180064102164976795849971426660163182784493758016657241476266443246775918242379154717447404230496806009551382486869596406051893482625485528905015603187101902931050376909283977570721253716562935057873802222583108557473258882771013957301863741209229532363625023626481777591334240879481628142436246060132106692797479635464601319435338494341855392807710969765546415669625153931194345512339738692149237536477225139046001173624477198628743488280931841836724056083497900380525430692172221313432161750504330644861764723888859686295370103174448080524923160137371093573016405382962777240761779579903619723976172671092396250634861641577117135663709004109308446120984744165877668082159777963287491242424884666190212141578076888855885298150106399058808139051387986847762641230363408693242794951747239528907029216070038759006855901719287831254533457537384764790453049761208118495323267294463624269506012495357456844836059733811913505045241742401085290653963640805493230363480368305071875996595149747766729742817770361399883466286259248553236513626443855262380429669843076305793952092297431564187448363900138420417343274604472105203055919437641158963330453343902694686973492432896497882175692431880377404588608719531835185312395596877184004706988051064206256759476693253604470992094379008918040586180383285047044400492401870178008595814002894332571743600859151427222544255600308336772332695398953360116959010603165826264551738489758309771403589556472913175820735939638243029374717822420714295953275991008513540626078549666552589361445379878213490852002965783333489811045989474799351318013907048350595772230710391843365429325373534388514579348434962792885593437941871273199330713391084623193620179718213996000865581764303745218815443713212218710940811322448334761136820521763446013998439672250836137706615562484352236978423919921583426423765838496449676903256404722948416901513616802620524488242332459851468480034549890537222070915893178944248004207440433278844344034073644784010204945298362542971391120667121862010863426682852924151552129170632977993093191950081505469259016835155626542406608943745767341424258296340818680520875831407894295065240058293385667299279627763717536790392055128631396555151328726352771796855718935683341349001887712642633265621167354632141262597898919726113683645240536163531463912868460379213473677247206060436467125936617055667883454331983803426668925837904410627397001636845544627171569774176785540443086462444800327559271074984174534697135305577540075568946806165995765445948621987538206870643008970385865213487784865188569956246109569195419115878415655858643342206214380029718361766239170503079436626823346288305871491395821075291139648113410550004236335073681691610849259864464986780878139764726699711045920149210823637629717216274078064356207161570604538372922375848804227472729794073337531373378861417019932943937580332834482373308949690126411057713237544680268461599463281882559996628607003496576989274178991135684099189170889565916122101846954317243037529502888105064791864875893728384719638574607764839230058604404315202080240398276984814568460844109418479680113747291327340588550353051694203404602882835063398338140589957305070084629883822425543877088756649086347792460419933812810615052266766345513498936143978578725818250638828074206381747959083680869425383006898010609550987191114854868186281389420772399751686635899516910737921326328961464094350804471909974027919304983755151226797521579248661851737487929030810191302288613647466147805347001289353973305611651248618989059861873523642562230987708878919181561815729457592144829567149342386482055004168162682420374116054570596109058654478378663815168800599826738640947128400348624682792977364306043207991961082103623566342497574088898165760550034788891982752262183718946024848227703928817850804091821747259449217914204015907571342877773540132769975221922611755801678539913052690555213256310329814779914008878932818882579296462263761635174336639290759628667306417764584872163462699222721450286830035530528913254576920814507026433772586913498551545255757993513860952679678316789966889217341710767688717889369637212901527254359366217443550770399264437270547351062959337401983172313764509250567957655325477649570494247545683014759043778374637684144110467749363375026959391551863270230830601800901311623978107525478971676866124970658384024096914678400074783106236190476804887819435061839341789655884878482523893036453212205510123191154014379322056880206153348422895578704172966908712572442576837103977238499803294975824779641404886150283528045325120287997578706884011479637087478121363198774028310334966491923004115154415894121765067439271032246667188233706541428124290903181312099256561538380445597436773298384435865815244263213210790513722918779657159472431969363714185793837595106391523943695246878567296889687587195029030452009314761083666883425109986644064576057589723441032266901716005310709179229388666652371521749722833448789300703217838218180415499247692974152367198738688516995727700282557652606170724977434269428261969729266098817548364568542345002618906033694816120180203429101450561191755825805309189588592689059652534867587637077831773738676763561554428213836686053343907358190579743221241015767148139929710873828219059087641305780004695490344661987278991419194387718164053822216653853721704224932568353837703015615883376893888855034124537613097617971405404152711522304936189878528137736829324336371085283896535497882326703272977294828431866471329493464284270912431508646552571199680695198803759812035931459196179289221978013701170269768968088564594519370932483698786413892017255352461715910685023755948200949133088887759222506726550521011286849819620882495737283710322211569838914600998639632811310740803752069404177875139557692689734991107438184715206758098797450358536922145321298895872610660724330134749982510790487066261068169113107801010159918528436763002000970314216890237567009007315790139102025412044860547526112549747822374204870583678244817149571158371956634560373285829969733411954489792480000026470074386850047136905031973776435083228170669931390647839675224677026723503640328995796442051767782664189032413961015664478601422615930700044538592257550419333943428912834359107514567795881441157617345145278604724791637795049344956318651367239519862528763968409112702771906205776198312842719819654949638044035648042164776025694939352944504438252214416117945176980157559826070768621164540209153967773775779402819520427318080975175541973669823880097628539602012833343585208651495694656299780316829237748422980065304146409438821901256738947626506346604366808273020468085548973747354494654538090964017224909484024475980651608447107689764818725732876971698567302966552860323813606848827591895337081541750879446249038435871350452541643375838936554047771432342997340078507425218804380134316160212301957373514419698854256284088175586687821784380134316199816956600328266932914664221620515362110732447788052577929145375849301217614700666345886403135510838954825694952850238002763846052185232364090996462334278848199953909441992423338161091509920539080880417300503214867836522471077928600523485274591450727487472072163195114287833827438417379160302629067115689514153547352527293104488943145367638941454902827682014135821925498108499882717573766987629452895058212017381199703704772012093719364990291183691493670244360740909778268282316234972771460548559051216762103389636289584093157916496014826858075531881212329061694851015095633812291665139878983780153565440216063551964885117541689596210177335747845283687637345061919523014763679777703214252731365486316926456753679973392203191460035935021780971735708016686695985697485435407129158171856535660294209489278013057566309773651981998008576976661536970073799279460902741630848711757577405873646176101332484517429109737656385041761428426397240338363284663609556859237829737431632699035178903221031562397058957461615159271296694249074107297493918969412659819863330593390702002943790674861405196342324606213777645987468050104423599378310129310592789619057193747283351255527538674633290258738637141594529367555713704040917517330776738993025440338776985656091463901730226239442364491635520218636231787075654389676346135030724353150171898806189505051648791801551949740780701642361606654762861148367605030947838820232012305577828305684259132663860636530507423594197762406506178078135724221196848473230700230065865061643684232214500097865190950808226184696992955950146124944344848225050270885411554174360103957710316279634524675244250626154399043570825903779996033883915626965445512364591734138147121284817606499957650594667877347587116153978358849540874017520335493142757852818214897184290238569754187389427040009074512226097143913199007548343569582479835565590425277686749111182610946151330537854874954149011569170140393460285434338814113197592922901580562840332688813264538119374652528360377028309754539829705243957604993566273858483197845677206809211390151851534427892206989213508623997312631004962015924488999476280476338528152658378444693410079950021153704724512080120774799100150006102399524531897925417450017496876095547642587511300777860187046569035430859678232798322005985546465827885741847548076026059453911073493192455342860930297907976310604330757436315693449019380407542890724033246934409167163162033022718029967052583090067815818411206701912520880557994518192038049111324454550363031363602640144961624407756333510578053504784946441266888184626016539025146872614579047225141890382561148727612252896405892487136884063008703069410410706212787700825391608982029370432036004038034713890150038238723936284874588221085000883872277568407639498555863550379719428576460942437942739103474392101274878355287077410292736788090045723938250041779805810898880731920466335752673619505622012278990396672172729262061279263305330285026303928808688529682209000654870646236122771802378500612202127472869936549413830937770256361824932144394588986520704305068047864271561052740937002115783968755072507016644576847276040201550711199149751395972133305303799567619079127539504251206669898057610831337126828458806372602148194224573946888572491208798379680326556170796796621301429284909208506360632349416737166489908970923570085636930817842765876587905605955142167571880053392496202136239524203366983629401953304169047908504560304505099864477682614590652539864457903190854369687648643929629501391855557129432495321795941563384787316078888581388898132758454598814468141368392675582969575032689972767800168746685892993656945399912817533158641779628065864575296292451602088878264757435895608583048189737628917769290008871764349288881597770831130975580457122654965139607473563906700852725273085862984923858583037201675726310843559677987871238907170043442925514980280914147165594623092735697867945247787455583555620451742417753328529506108222854961679092999556034629604500821232465227227175811713366642184263622608286461242144388342297113220364981636992775339728971416324633214782713054477072534752042425879646026926596778801010329747212914330335128027245126512191857171552506264869654811416002487029359174910230348518830459281229708371277150092031922145863181540333844014691651953802119152806536573187918483309907574901449620931360834028453796745058983883900086899387714040222164492231753587222538497124832750396741445348060965907883313272413527277764164152035137653158362016606719240295576283207640550874616085815032269372574967911223242054657573869199552481535245479815539835039771120818487632302348978556932573072537089706083318920856113273938914612831826634283038542202394171600531657304196319138461298990814885054165113347444891334643581948188993648116895535122649539278552428939279642165424290140201090934567126161533918944806030979430835956889658095309183475367649493463579574750033148555128934902003070569714415855161465781234479030977708309941264338480520239412816645087729000970892900916417119627620306802458041839454590185592281187340035200774496500788948752208015548853368580169800323957143013511002211298447272165194220784769230901784828050585253525753344916124309407499614284755835155374746113622338944394754145679192589138916215281951099301637079557873181931409433973005720459010780652307317959378623916234876223999531203228648434566943118293360652870742928207688478858024814520870831159330673492411065078618204259363076379512783892759325628744064873362595965927083255941079301294601450296634371597802419379360896115293272571230989969847876975686710885092529690694037624155935809537195536563365898659952591419011221489671172338214555217989885675787648818413444800695657758440988833821070443939566819442853001466317872422346323152916800445504200397718219412552637649978992997110016976372747586155276771787547890759684010719928323955180269821003509803196156968040569982816346627329570755594896815722698486177142070653514402759013981229899707909870707910220651740538650465377042324367927892197242526649531265768047638982613482881168087335608186720030490750131454822194740538963169109909434942437150707902889245608896746531805987969943154497590900057988034272563543870296155061702095532183393726700306865613094154268449635493447085699142714919151245124814439429345077472317778408576517092602993818321401777509576940782912635081288061099753456779647896078220453207640908450113275111679186908017125659082398654423021897732984804955294041946504915529408520408418044984379297166787228490213461378054769477932930586047082394133933524651574150887849242478189486038843378879102535253377050759718133197580401348682905791788973545941722551463420114144154600853791645139786378592042698899939249904136707335894440540139243679044489579494842165712995300685086118103952575999888811020367757922170680184068321067412864997998639871574934878032975530700092879907090579132723797803854841579398745064370026822185286210293034207436503978329899952695070447802994950626063759970558296971966487458928686349781180851802887121037054904075572955585317542109160857847735266844531051892443550505231109595788968857199288647253581943207544650722266424299454583555565431210229429798000705485193969807709099172912741731492517682434015458758468021176709781874467395488595398119881273308002148805751562750013408540452076576819247582377768763110565428289914075643847425732638751600526511352046725066350542266547983811258227871070529685204767680581048033624538116688742116955930529041210296855832697844241920604061590894722879789605697001052930531073444316956352864895431949254650629154206710182338000581489556770862958645394799509330653795722196910451482090356164244696954800353456312930378728541221425100622212966091466928196690953661541339806089603687150533086016999113406403642411256228939010719783639999672552683947805181595519762342303108949159536823354626807979068815565650052853325751125245907847195815588310345603868366505019760280264175497151844769725960062480172576300325457018777131799957842508795533145295086326577408974733663600605380826286708965136943487921200203820885663563038641662247684279357764718181668588213528618639488830365715316564555136454474034495157807563156621628076400649678995135137268395213135788305530611794082112092593776395075373427660773567734633209637514712314439516222236028945222107233275084483473551830519349580473951356692169937766928518212542366252081582365595479036947659140375390935600257503274969021722898325172622773854076622988079482134843568133946348811298560287422595341558187711818751153773929354998157153548615042876108411525577263000183762036924988424902529222776604673099487893759137485470066879172907347093267775598771535147270852189968774634246943158840292535590047700453893808962688263521042776633067152400825118062567193328520276327737254334745365109074321019492951548505160944856970461649373592124711442816201186280222719158272395297349491878169322947521337599818087555107932910949678810425068928797935233214678583046773666844434402374865526880306064209440532979059322019177004226560917315905516828118815622682978852741478227112937561588420325366171728610827813112077401375493114139606253583461673252396462642910544542881883580760702339607229860418408358314907615182117992993824855968566846037264150975384196100223118726378745073806878244847407875685448465811567820645564228056455330055335752775268989419508642406743065873289640545118653888053685059223590953089941471386175212384767765554141344505879270498450004056083849654390429759343257115812740762221419402427292159880301607234070379439001176078722886819312019865283772751324144238629093817295131632312411350074182110907363313148817719684266651588405524674619231599414170042351986089624851870122614487505004176924021234384218287361854559501237912725994331831182179765340910076218641639409546693729955617193143778986023607084057172217077563016452631398223927954711832354546594919320289573235545995026144110345075366262676100630128752868219358329773705773734554529123525384380022515958353600169241053665219106372198872949304070062251106090954640026740250537836953174395851589307692452256444260569272945109442791034284542563462231036433425637782421849446498313926624308369001301396193859016916432943732315468679841017990653479870782117407368754342337595850578016896514076230750910059899416914137462692636212087458913599301455235104822744509839954509151873044748855754066044978113109307945102185900185560641993008551401643119358958692615850624714413865733334506221041809054814791590947098200027094727404622017342825632351541152835745922367409510925148789428042060962136803125641559423187670948752893449279464668294125425895270553999999420799005069729753299780448226561154349789797697518515119130003771440719990248804933225878857231028954993258042609044640146847148664133750157351105332239218720761627745860943608161188721266740190666923550016205720256548876413415764157966650658311554093702476671216958595972194705064370651310468743034334614142560179318313603645709665918548633191914116009182244361348900014674035083610956845523591044308342299194725503486848833028832307451830410964586997250650231300697738652192817643735796675102907355615651136234693857842223670241412160728886810161503056995003623803398817724594005377708632492983945988789049845740833534259179980149581686776706398732189119132063079392415425658166354015653659915660330996409377207681636334753663565363059184299745219634122632959958087025800617023174865163754466914582912407932698458546220915480344937113562904820218603174179901226312228935656949302367927486206916259405394837362475267483147683635784872234563223690198879889630407894104653856303827130863556627159554332774925878898726684931815369969698667626701390748480519114005520952596248367654096814055065460083057540918008712727715394659653449840793750172478164111775930528683006296219139842613926931578461728215037545570171403927764621989787402591004871743086608865917769257031827481832357891873282015690757778268114638813361310671861859832698972908648346171665647038742584962699001167013199950970872363802280194927457849482823480699119701195862618639698872771630246726118855163431162097010893538800883436585023448364234763846499867127409964892946776156488472951839752231682087430132943121791394389549161434964481751615267250672029825530724534133854380924019268329532742600316315035954211449429998586141974123542921977350087167875866744440580846972907676829751807390874991768669891028550593753874307182670442436109507468022513869895478378624721913812149078897135604365578139780278085789534817441571275430201407736303945840551713873762246808113054890988493815681621458934855228227301841005004919160960453957705747126673642691870324490248544986864137599242731326496225946429700302922102347848001000946343008367255361038387181784454130316848300099937599605724740512074672668810952824125593120008813044051002802771677903644459175983010477876552069339636365605100913880544829954466065915777588423857468001530049056206786625891816700023648708023418175593513850055095489748027540110270737562904871454365107989355752469455988007215297847846390161338648831257694866324222565456545876866709337381136506486693566514350446393370448733037761133893207050729643834949000086092012660036004191777164462894501819297540890977189273827286035468056541160236304527477494185842855720461388839374899396359117674177057374368061638489634928707564864035934420158062616865358442439046306222034049619824922056829407988333978723842261395335189217584338620652361979429240197185090029731204237868565766510685002035319039269377575218591852445400281088535911025157926171641124806266642746083244919826170744493610927678516095334437515313888991983932759376523438047178665622124410348014219485080488093997437560612055035992222237919909132077473470235515132987340253885866439529357212307510113478789414453486018052756318274980236626322530370435931273729205641501772925423056900597755586474854019459051745220088908843417296546688965413500273729858073067378864206125603007109201447775740044404281722824679392636409602547222843053140489356379768292734019866694821049203577853167692523254967724883398709905068680868787504052943107455774427206108928404818951253743348033790318314065059577305113901298713395320718117641802586141006905782282794069576519961838061287858962687463293376566147405434185774127275085199728850960871416255484894311803316965223727000178158722656064920189348069425822561110730757125717624255730816379011091693114733146223396833162229684767927208933421114981135133397210442390906625037228220186315284254753944156561604685383643488862895410327187833332245467059731703077638772672309031696008010029385575324178881188890527670238393412833509815577216961311101660846141146157588124320002178568723596659380549116971903261560829877065465713533946488623771131414233587679688054247364749366065716720557014564547929685369862942859230861687295477069094982305351515160522349094255688721216470675378521767201951830582700068492769501951067593939524241815655747332087160222601628749592491588823941109267536512340429270951443623126261915368185221700898298704891258446964230757077813756230441108788891067347145788257247778803468260324186838321099472903048767140625741059046292074729801647361228042396147167594571685410873077411342286435073696872113152308575208210830204187353099372754086683560775316765419788586157808854003112692419549232525537772377702038091744341091982765164711433775589985417100496963555905689831191588097567123680710337722460492514744026365480082522571914865301290813841675352361152164133981869661317957759622845569297508065884346259583848641185051517390852980993653702237522006118214419821465134125711562974430308477203306598291795132676147495501619591395613518978178127387820486813067978061857123212217034016765418815964750165104006649572977390754081230173345554596703939299193864728751056637474359759245694129428625253877200390632393980298476754533236085500028452985967875604761472764204095029740354187879647292136807627810464271797584306131826075591301524079905796070300725292112156316751620351708708502466182522030247750155419764701853621898619224794511869365862129930028581376427236095552005368174433561013761040566027053761942085978570737129357608512065738089821283141836836288134561120311676843064425586748040027356501303472776864588922845698282276937693893170305784854435081441609887908794502399041751010301087092512956464529807983038453539246476028237647384224299971190555272853634902395819177508291752156905039541010822312650240225012540576971476765628811758450392584733626060612929963254536657203401141983083634983903393060213620666607892842328167458238767113469139169939357511035981944140010114154357165156814524090628707334266796191918510625412087936870816300784968283646309793168338332515245348687298858564508431045131856003464689207531415574683267157837904947477284754115159752469656991768161719101525459267986404055052354447244517246263793341629966291427848608914230677944952855863403579902877282014569443029763495104577149228436340428075286515389900743828071495508691084752431798817419225565987589057381944855078185153001618718461475942714834771924097192216861301755286865054637069875611148638383696263064437132803965937612014770571082669652789636340663404630596212388507685911667275965433916476385843739665263010467724450803709428243895352727481576604447361734308099115865829093889105090637790129240180623798656747525348675038376756625466324631622256406543570885841912902273588994522150479026118130438735137507542475062230058316100197534483221975730024546281880035638498551296016404747710395449707166734916600750913799331257942383224108013621938918195618211968085611157520066172283450801361937048150242253712706467064827541986551036690559149327811687390652456077794208502389175080745473692081802486877839997983114938974813202677199314602871330582427635788179914331017237103911393016953619790566330474953044115684746663241972544490116133313058650438902738381251783111337271143410848754300579242551678591168400762480294774896773681077659798086854562022672026325493854673980488237414272234133569158830023353920797847339596019987301960429095452401430615890671317322638541006131794314142806283640032514771705577877409543336731630266753870334510844435160871673192995303835187851104605466091845050840563110410442371079763946014856974022401986438945134645844313655061824040118561564937855506391654693935036598699443827304441073224936771085528826254114163669731571124534570083135588730672759558028412557965383012398345402357777226662850800712579268553277498283540121709641640434311651775946786102995431748048589402648038416745929402220014066623470263928074530873038266772317070721904474799831260415927281604821200245437407299498753462677404181944011015917033090136269545500679092727649808237709826575317185210869454912253291610380591659440271582243074092548672278271217598481821496895669824996031106981808763399347507151650260505191390682101278448773491088414673183012208934048635399330178339051878565282476570540632947502945975410970757370953703881005958192620511663325061429912342115419212264760395163150610693311484103475125461766998204354922022676341815781426468804271147742746625136989785067767067296964585637732069030996351004453522304425625819944918057443666946701531782919324668296208455844971117756767525419783842558042129282474932953123199759865809391754553134449387322440748256275071459307255461832946342454858962994844483667158021430232671868454590064129600674331727403445837327858687046624675456376001740023640552157044273346135390657726862630472922798381000356057633343400187438304010833361276153429458340923494304850644021332338628260916719620221620929185603228816671430028936864603616614008995878844991126689573146524027729569888059546316598403456826972801555154038827796984266831260883713564003194768859106140690060276925919168336925485567622353899154282049415110075825347748302981772861388296225664571078662201706202191954779857075556597963788412339419615899864225202795979729224406832369568178636812412952754029976426190294470307703111649068089699317896948104095398728143403052353283783050870337292575081549996318440925250530561269496053718532565932434502113072010410499218026881037698776901599695661604435666637147320289884405612360737435387283808778904102420917583320752364285888046751893789465012123865938032812444436839391332421838468551757804956832141385239760748617761098298256558642340888662346993854093534238224763314820633152274409245642722984591492743503648126534034306839762474191053532003330210205001374934302342782402129200941210154739416017380732246502839650481136403944740344495935652189480616629314610613401393079059375895905410763854521565314709593300910041177303950815621024648295901171723263849836321914549380445928085633210647668057870424722082961123475868685444038792259432394403265999112872139317300827226555121092032936495597623257566770158200478905485744983539511954757194859561171769270098691122185893711844248982702444371140399538288041107227949916974641457019090047273279368014421211490419127180289926855414664156278035316101692083737499288155089576095517616771829385820603658397785378821358920766177688169260265188892415153384200936758524890928927430810653255729765662063798299556007115247813534789931364238931695670951312453611419952503390619860853840723075315309080414243583339126455747742155110773441317623903610319948131411652834155019974503515899680587332083953769519656184386820926566960336111093186725749949209864362537845326766222988754523039855865048666713733342101732878961902592645746008135197171140030978952674277641104179702427610152209638990282111076494538947058090534790742161406951225661887026545599874665183850923512819146922621834943796201148416737603456103630815457859558161241265613357242963936766863455077238792480011338129417176498042798848195120259251738178026573757804353778075108662568458019636136212437530316085380148606133410283311992385254454400313828566219509379554845386733133008941363688043813891731000907136118592483616941707345986870597739477685475163259954190985537145723316419004175304080687733265577446482797094276964308931759089335349745206233934874756246581474193367278454985221852259336061182317384498280833695705049289596914924523976602123812238456539814310605162016284803935378813413517059939373657307513155077122051000645508682842828449558976036179126819796716843048762805692165005998796996195387694732385832114262621654790431503591129306667379868998032997252608497668376227323193831169658614141683010211654887739286605714499063663307258455804418232230602161741585155796543176156830792907958122881271131775302966059899480511418042297063285256233863276112237497824008468060460439627926063846027301671806554443547685244829227991731416830582781945390107745408420865773725077281740205338515695957701445859938184991627843274964699746000987784129406554395480869643168388411324183959475961277069621857188567109260273131930791418759893900928958968656716394927437745529265012827921135153256094506390416053035890379721550576541431730701289587847262034534691874159225343239246035271544931006682796240145406584550051099291616155118335211122605590043516933202636972453810220763166684858497917916440297000028939521082447263517672879677822102324034043560301400023645992024289235779957156441498624017198224804817144098367879139682255010835925204210281810365576273114554021153242118114221291626462760011397599332791113021408759851798000697555931922351746501228398158432578826527586455694321110677511982472749698074056232548157581498390590599981115414092497228316991532485505368574454619683967066146792807963596531152811265334695110515342387708337533787201773432223968243321391585747295202444257060787543121808504421139043170771716761644389722933091939277446476085271436551412679520682870612712430200393302906657183514476612606331607237438438280061483719905789439941664788589042074995300311685913142920576157966272424915044619725186182613185244009512126242249624356674205749800366987454758130424030758027173484952322441303286323185526842855821984423549690631604444622269817473702852798584199790852636952154888157054161479937728059192964758630092553878827740748997744904964591207553426128301232501538837800108747086017410947242604778076685158659792908690703793099554989999960218463873304940054395027899426151935112605383726966430268262127471571718849420484618173108322568946659148388231151310085144758157242042760377472204966536340141367396788962910144392441151498868441875895476741979329347115701880551493705839923400671122541424724434001039451406273393712777726199454777076962722489115662433435129460294749489422037244085973386002934359609186025113894885961932550049654664192367249339976830734096422448481835412710747537138499938592753476144840022176952623798301045562548810436773017776192024008505706920925831779093731808014460717618708773880790019744591229049794616994959281302322096309790738924227462432946016377922762521554988017983594360532996105334159659457973448909650453867310922690420700989287628914050466220624346791369405644071080795245591109259420061721624237488568216124645819296772528071528159299731189367564083347201444254377081076760669526111249904325686689462794206151830977099960095805922455557228510856627041610065692439467212952084892622277928337595799538161110136890944524842210270408378845778124837405685015130307330967594093314227650388036987179631994284508868304496743346496950039085430774299978790837895229346531731558198988687314444425894343955841210825206612680217379601406051960848867293663856459889901069744343877464767257302544541720906750804713773952233597133981875977980806520992093046464218795178438637835527136188665472290401196520594915098078302408603882087541870907287535096225290883372952541914639608594803145520256000286089119866839364730872451520115142892171276069186775620666030661877310991656050029843304193674340710598058466855145105600442612489141566766344483189308263153842918406892999174488877274213805985093574775629748483699664007976199733457531563647729201416689958634738586314967381134569761719062921182592074942468628753851608919231361927275607888459252242480310952055035983095936206692207663845260760068678549692287961587518715308151343453349386082800839368852547512058117662310968475862566882373169184051054513600820172011605172493889954341961372943453749827529879132012000924331883015383015972265199539944941163719043217937623463714023834336795432716810753095325211436346717958280234286415954179083371613306676963936687657326394523130988503338465032665249448455902830073126924595626122507611265728286599210912431463421966558565338089120747176013882215649131135252597017304239540342568559234126361996470461707075516895660585635564208773609261305418853931060451762141961959738559999704968906133882908248857780195531935001199695295310557174631678036530813646600563809043818665713957511542582132415800246962357955497994462423594193881941493427500572360676166485951416886516005169033798712300497222388500558300033235452799539029981195575080587900482669884197421651375720730422584975003480988679830170209928205022193284374334336517408282808217644414308034971611714615187193220822260222098822129798499420332212217690602015124268812261882023825929116636097657131464863741448454972784971934161258663612969479078981829072105946845941594223442574059132053762723748745100078694785977721134404931573893718755097677858026945226270764329613054033026011049286368382869721811121215886540556353259973668330549312335646254775493732764075864089240221876561703917574932859827306644259811151966911896549042906291163073818309704279249305731435043130371453725316366166310643262731278287537014497719492344789177426447660976228449093927560465457952658053696774906040375145692207522347503724756405298566277201767538360415327600975805886365560391680114252597145232391476548151413267518544939825914114471440909647560622369365978597308582004536868285255303042658441236446370965357012070055987819248006514310373658347559862711029193412247636089430038819316218445937211737012027547049464321231114933819102089528289761121124658792207364043736731717308631332274306652899278436912248143852386209902817328676733208099393476297747906561873913584996779127318633086745719406294110535935190794648107922273694525036399755466191264185486642861409337647519131862978800848168721772492126155764495659168022447011375553579565223085691558740832560837514089817550819875278192582415392730602814067228989284293421884315249913613619104247698821427301907992229697526160104170307737624074850498935547279255834666606843237856662435741940513639061595950854929587749963014720951266600738920073310749979644828479756519342479338719427427806214887431226969581554488924739790587469295062582842274425630117327152463467294652593024071466385149450609186599006036613629072890371881464681761899242005722601041874771565650344903294782553641030982627223029615454246992160314196869090224717125516490364743531003874862830412871029780237315887736145366963934761200963719635900655833372168265346208067493674795798832565313066508162254774930735574385890015520449587950327961560009613212326819939981641954903404053592667841265569094428464418695501413108059550596668918676651001770521175975927528590333562893272711876601117771311615088287948930920288196304667112531446050804677808850416352961024928385542518943213737875537631806499201914658669015228193649826054651769500137232497455258567888043690778897197507101026858142348907080822618734594649504742408543596918493458140630985883249287136088941673078221907603625145186839613754313208945495965640914779995177922275727103476692500089898684084708694886606854584958810219732669346932081754745032604339863797918642717426133558385131366175173233106125374356226059042813223260261650298595888076230178246650582367444861983236376025935257254561402577268027521865048217832408620656285446910455781080731388552553287872242556529926212260328503189993021322863260379118568533297391888397505705127426301892552901864036484737422775222815181663366908044857547957525654830835281181588473255441086190294533805809283621132549418015281727823213336145147226592268756948570921640516812061678024590294715687822613308074009015155517209683111307938173702845768510309515203312414042359516367095821107804375450631390559846402808773763627805293913000284982201151990734343214836873851323424386153053441752421219081286396433939857331436173089394158144800387968629204702648253381081967999999175216963971610316674512719508001302367265270479727109458152852980439079948730626498737944324344989852204876687965389556754619212902975327801882862128727453466355682148948691182835410427152583406913222874959682293450331210495967991386937577909477703670167624810840264721611318651102662800834638880193738322290624985632365740860799697737091904439188228166394488510179838694998856130175673565643121164658301821094459214567062491411449215475882210778273746932455626451494080610847418900534094746517920646617188242313278452561258089955251487596951590538562963914371037901391244810242162490656512166338504259164932930665271302184065283861468832345785737857138106928049172925017763427017584868167529462843651615725264525921335094155019607080596892553059753440101438233335137058354008263469048240724685532160307061048927571974264563902007571192582761421448535631508105996368348570617323387569710878580967033298447840228165513568362773387548728055441002026224202545308641916402268788601601030090649651725111205381952735072147765844665481040494293399514827175928647620409034149431030474442571296644130234265382321967327469337608493803126378705299979933077338370948858027419988224343088185795062399645433834268451665134706948648644333374582372692937029283148763416512899279714852396420649937394078038429214736952328662861342748456469994873859983577667801320288714416655237787101691576697590001966917489945474485502125249807853307887203648276013504462694848222920247482028282191798900110491801807270550034998882353269783104436214469983794965991699297804106422835214922207800984521830713499341837744706582881600071468248844020962654571497600281896065383245126744678385190454665251821947838953933880259272722410484157591129559418665103731341270628064752159579242597122699438718546826904232612472618120023674703455283063220287612389486961477575040534132632119071838492113177858681495877619385362225215363691052891737592442091629851004188515779059133031574370065634565314349306866419667339853996423201011055839159174657366029716494689850695982871059484358482298351577559752813540589122496996852786312680449723287176250117753189966597250170465054465178195892903881912179675583423133206044602870269608660971766455879779846080824954304543727615014182681589189755377376377038441130351186852572097639354615131200304398275815148884368487565984087625127845052095969649192739624142559673313486627961452886611476833458287302748061994747028991800681445693975012494784757467965369321270857404816045270884929203280346572459658541151502753511446624647224892582724983372907699046269616115715795091917617491517365969946253557237977965921478406984499786070664249214325564216509272731076046334343638367967136861161345128285127358570518538395434346303080412094021340638748329631460439505941498548595615510975406729843387513497583640838117408854106671028820948981425216572206904695347101642538859442306962974129100187741231131853405533572071202380675461373019398381007129804392980207251882430507642071988827088029078246835073432494094046795810563259075928559123668134917421044981907740344494267711036548283599565376461093196161634867201621170882369149431317297314771694730320499234994917433793395896674031099145172721010528668571508353740091218462485022683597933015411497008985252241764703963349569512064030701073960602519282228922969450769776512415998184373125074488499507619999021330740962072043427663696055681397470295414575379859646409468198017757320491210724062887778499468923632244982673760573999083602333617256030850637251837898298836036873859991787864548990765254704289002657811685873017929771185708970797519430858434574102370981313824265076692064527174777040258166260008763582484060557448827338627758211814625543665817506896141638794224454600951571886308231522727815500756013219322938785156487207999417508645485540265323757809176664834308590284591974588437291778280895720436990868667220069112802908186809194965209366331068190197248017266496122500079841470433274004889908394787889411887361476775370407757447060507106437904335884647596602124818877974156147305879944166330464898493433454027699869166728831643559309673132837898271853964510152202091417619095025490981667635331210169490440555004453803436921892226346236105914890102916159385879916684602912182841930658075311577960253817579458872589896132577017795388473170728649026225247884656360604154104975295229634005264699812447400404465473711634741676238375287397781673071844992408394199668842347169024183740796852219315377733908661145538444669184380796749389832846095129258205617162177387954281104941335857472096762379918904233671190045366642667177799587830022227825856112073696715108625157847657914137356766946156406366212726120111826952705603129716072303341133939017211599226854278873722482263911452500266632537724943167235046339744053147624526084496662609906989665922979731720946171898402586640061495497136790120693806484712566976222440778890436046118829055543792006054147749498267744808255470527895472867817380036427197524728768844620530445397896817722385042384293481305950956664230077149141778714873745634759943162385695033075060412275467283856689120698678755974644094015864435112500469460123261271844935070009170023536839753985639508663643631330938642711288551210929514118597731250981572450490729767590747503177074322117159426098658728815620904756579802032812976682847336433317837225076248638748701619880473559049421516399614899423397708477220006171684602307003731711374601452909685897976383024173908818912387948108790176932792796913495041843317259049133193090908016041485436812465868982969659867619378307657717237437752236053975932782698329393103652873530778096859737153962467264814701912911468814842426780293392843250807633679395713599050433466092776154345160328734025941258613064118102464686397241591963041733595497223992705025394715453757764798254635514605043418971767491406635727839816203818431473410438268456057361469573369483610859275591809313292637119023905746129891173977253154904142956698517001625193885207676086259073704066932634368304174822975138529187553956340272818265407866513913945413755086382974046518743961224355425592611019068032706272571265493128972553511727897945387946717646117203883728386839365163125518837817861085816215752464957227052300436747541729243406471398600065388925595679365694082550016945267556759021486882485371518146911293876275354122421355118819561093731707700121709510996927507789182837550855664117237985367845006230351186777827136989766673566624655982400775442076158064009576035937144827458983951343391774737486392033598671371409796704732154507605590926800728087025397782146336041233609502764354940937837447579043289631492510483555601019519911396771502725717415541802905777121179783410752530022031791818575746842137090632418120820427403629101375708215100909508615161746131849002093238126129024114661025623163837099752769069536636332435028504353330486514544914325853513590456879936319544164425966818492155574605194387871086806558052221704321092565754327410192686089610389422214276444093826418541970260965059804667731490815744738118580320406931331269826498033147855068891663088721477504871252256931266213535351818301943861572046325397722961314735766119010437334065935500350739187968208772451372658193439653888604909485334408464278195506794687361659692446462437460469391338341612539966890329235358444179658539535580561702471515448911243430968698622614020835598120120673818756700183811141202787607206170759964683242949596340077492397879129795900296582561421796121048584132155928015894917956127244902932172091629712817515229827240430746360837606709662646042291872445639437870061729925808904175991884524915102787632577798433156881575962696819382423419500553759628635399572948887247031194533365730999235099127726284195702936404741432869780147138157746648265311758658555936642124290235336023275849169500398126544492369909712871864772476834227910109776076034563984869048501929269343125850368669277433990031442549797297938736804300553145080977710104775602063016325018292583707574430791861462425801720698121310924683099794022281202775060058083478230960210504685667889293634895600534231744911476354049420040246535567435732770890847248328622478104660339714999591396765625761128036227589650031619199076734477626725688214136400364408595828084349343882251598629045627560031697821064307220139501130272225916902556840920175540318582073728774066525709079160160823814887205711405227721529414333144366323220737061166130634197465715467080283683596076604795844652405676877236424962712209917207705629978610594225099392409586679755127097471884722776943794508457734814957303921253916482141638873295568779406123320632937301858707952519025370572133788903847117880285163777102487727730317345698849586662638703570636320249749065485033611957099802859654437364891550813817702084906477825603943491299782272907247391112306269623335009177207234679057165447502674830080778510231217662782423453231586186438346236705845133441024786492714158437018358180421611297419467080769965662045478597421856228251678918696327048565038048947337798768737204868478400711753780518137618852253842362727804839753193782029400170361448229600452155849029489958231829415929829035515919373554043330259247268720440057979011677928002842415949507705577028515920530402527887657357319551963036382504857751396002151318835177756996959954268013607287973726695235366653007327183309631337172234752947648373571848369316492590169229535357647401925869206039504186021198884726242729236907996790523621308445154810624441197801842034775444009369038220976438027509656318886190019140591884628468394792292139569313537689564462891093013011056940822700099277383268758735662024047378426433002390472743986163571810234920998345504201078641347418224179328677890140413524162700128019614159885884874952457941324953946265040160308631618661610411980974883569802852755884959305426583037461700373395085323739444687309203295365222050684231178938846411209026750666794614858454143283782326246859646267311388086556836624731313777040750758280018248018539953812059316746175594634946481718712695002464614738406894317788882100287164173260990385790221714762741644233033582671235252430998998313893979377414076287998981421354479646637898715662323939155655496551087315704106101857128375679476242108423071612338146299802909127527907736329308755216714614071672134420416297840211415180303769115625770675704114864908444980587919116176648032438555756536745391580943201981530266786401220530090388300145413190277983700598593274875062128393854564034777732841139035333400175798898490347848284420962439059159318232156984281233609158657916793075138909097577040471257503740980768159618222481806309243806985237377749067120302018811361657026572160982816838386042573325905082359575859893290238998548413726228886627408454973347195898738423182282599603702460569281311273853242433369670062502390014691336454171641280571297812311705049862021267857650165610649342617360946729343355227764290241642056462041725220280026402843875742300461370888507903899974644433916953275917868278770414786235678519413868117405145564297871928253630365745128731387482992552250533129368564731588288938109709240290530149490230285101758958500408994595712463908670526737733702473827723387464929485512092250488603566224290353969795044640938510433952287538359502426562365726743069303894664633005010083222974744369950055240241975344870217516364046862333477466945325129958418348658912971898499235480323619817432377774335878316652630859562080952738238926347039033467764965489920288184376866518405924700218359716684873624182707109571881012591813788293433984590063089157837847897913301579698073850143505945904255902273157888964227466665562084069804573510488146395805142021292033650422135304207378095669749117712552108740004670964955088992606291270704913812465974563413219408912725403610289937084321586702021781303821792111451664631405389135029964620796978469115101669874505003138273697154805599367377093232777481223671321546893410331385704625511028103926561613268418419829166463557776100430340205261471700341511699942625056973558449802403689499037373097691963002267022034481961740837963819314767643212069208197440594896935757374735464677511098328710419935213306017678407439826359674025915139830555090225795274521527910833981805022311908118994414427525209712198246101638212806403514496825887450953843190827362844244063337753435734777235789503615720145437008513292282913997071943725245058064409710714514804151964843191684739129577815547925583087741012084734668256801441291398093174736917174550806545778475271124373925184123437468056069200939711717597585729589285178552469471038192897156522796866652670142029386509206998842014360878215311256175216559082333951320058649503462704958067195594636358978748037045635339497495569637465541246017624535949761542663147458680461870976601383579344441042170506690060583070692760596802254493786152768228413162158357880840431040372774043656831155488944210966932428463005093078843360265878681711990415604198291598506524673583407466789042705057139059842462754374271752260109623392625763075563678444583882277800117196925107933356289586597866249769553472563115043292762983727980519469227510113922514854159479339039442205677450340508021932731274076411495130716319055745951296376177392120688914478832608033913219464202776370776705294031089738874183436661487631772080976818949885291786461546194664501898996294253261056015593314733743451798785045085907193767244739979904972094648844030547770448656936287705999743176215032581318875133864149682044558532758391476522363994543187980357214946742668658139126709844293998089634629354184868749760499027161799203745667953008703462276097221725450508796894481894717206580283040317333045288603958966922917857281663896335041550041063885974035841680987911609221634441588812865609500180341519661550568899525541036077372721222480197364645367496348007996405571286595256167807204698823044752547189612872523247443504769260988015515473972466657084559515730696084158597996536333630574879193067260784206934888666996279321830296105095407403154570674923425684861236999106986277613881294634790412289648184795034546715931035327440245895138520021027996077627428972843098989005592725536178893706344126272631599733945769903163415260488840948845646428745709349846426804486870049246282522610696211337068794936917283715199264534373651937854712220237604185762793480032498327815049260158095716127352091209954305023982510775503249540411968857067824435038347725934392561683439703384977071622798401232471506599636437512596702669407055767187632166512072906555686386186341098749516894344670848733584792077526318232351686364406440794725300070597936444873321813110861774253653685093948502137966571435614053197464635655598989060403069359866775944216779520727589563048413468011401493763376061416469320585826068167255596763058482785339856443339104479906374161353914976053032971356384987592809388714529328757186729348439557953450160491722074543989210993716400789521843576820825185593971676739486663930635851169460813141574273517071138405660242375468840502011647218256468963814354661898028275345586343715431128992327604594451041813517695160889098583519158265861896320255366973916966533299916622538607796528779945824450783882384972552079608471607482107456356709877928769038404783589428477086172197933550017900131847165820582722040497492257033440270000227413602424535975336982538081618266193473676607339499984755767044465385851613381505448822949065677728754280677255934753683144157795665949661760524245049728773417906778673217773054206901822691932012463122927573217058862843558400641684581447140244469128785018334615680183838339224109062968835943095079689905820234239880909475413471876437328019890407987471961245613189361658966232550215411897229012551113589056922973359390057231417216484239702703231844687770908645512364777540532010858711310978090636226348382048509977170735534789584199417133534198623287108933352904803308896887528590203283842029536890710789923783391264147026335035536507596832490687567086409503498361077998484134656389005872388267814158705738183396732233028700823910359229857354746787030865479442071062379852317051149596198035437326150297647107845874524844812450254434670595852338621717593843202247195157575467909153543911189648162074677939554331716272545143519666376840351272085649000586635343690102669851286072807437453086184276788419679232916924854200014168312888293254572875952284866711436528684515382497866581057062575086439483351148127890977167644112104964087029654981591216624764972802428122281828410079732995802109507495811620059587587299501893130101423789788905368200348816434939590573099748954729962511126550042803188920020523805908901980796854314877703655999849644067200012139539953577208667132915047361007726241542170145152372056192669866482834355219836335143174273591098328701462855495889312077653602248948943764563298893272110799982891372750668969502355767952453457480818959073816932242730211025949359894920917765551360933873466851509996012942155492284987972765794764408049390610408254897468892396477858930993291329924253718198601135023413237534728231969140878013408724028173478896219310139902211286184086763138820164102249085375864447173973413979307078071239847308426679092916897683611032844479788569935737588129297923071140848596736686116143808573528570527722511026136588852779273240841204035552772967873159075867868859065857183267237800156442736485066129258015299345153455924985651599430436800993184801620355446676091950165913037730835288070498451684642699742401773524768623937644905859964901204140600584839170698651657144745692050176475147712404358476722086139982839422332453540356933998548550145575364851058537228134581728333629185130577248420872850143115021961265115537771646197375835937346908147053550330866021301524553010429462994784383283920057213295108084321571633141334955158728732439909716018363120845903571529400385073682027361179513390072860587656674567215361640667783297254532265625162593807489478292699732481959325319029150093520769158846041513412523118133371294874200578604250581104121080167124614445676492617158748098900949205007760522570700152244076935058243969381527706106634125696602466501297154769335592386810356035646760422812300424801394275997068774768444866631259379066886503187136997656555885675966185298594659491170693541466910195266149321248033186050364785760129541910019271762203988146236576483351014858907906118282023482481064326845890826463780501959235819318954999266150057656606473188545072327237740281832275996093436756144342332837267117319336954958579136076152425251370563951174757564402685896882446020161111298619889285808167238446292736870478070721752455344036615870317369520999313621951796699621972516528793288327792407525295058531922387876081597763186360487638275977066657376026258167150994788138321227096763232967545405565932750418812464718050788430211305981762587746190251179128126140879245617411949626138200982247538956484604761334488965437506456183570633401124931952813238676851176521252975520558597118104799903395953351638913953517628868727163856489247361411089809256298789993091749422517501555718192514688229337120085742032790440166219791971659401829877501716319966640681760062431220665813524645126840373738076791434926776376978900470353185326742825625970443246257717444833396737600068261409066727701848915940862250288370864493588887658234525650569024606429546172654551716142851073672804269172197200567053774401340566760209832100610483468542621213894522937115203968497092125364460515336874269061170807486669602840831734934857718640990392121081106196132600059685946991396313619603419763960951639059354306284534696260128098820998199677142383837836192889680567059965301922617230279712832374273070525800806050266931544244270930254993433087136232363756878333890400538813036604400029636590871112642634887796806504712472176954288967551831511701376274448829480988737493198432829394005311672900018022307611282898222966312646553721101351837941257705940156787747419402679705595381192242679919320846965718562841891868947216202806317959197685540789503990734525552303938611651151347702828620960533502410459741604857645637510627509968020845505403251905366276956752072108051919169731332188824269011165475314034128486836711543408265919858101266454000196058096858028694693169863824084322611537425732910355464785480624368757062622996309126304854992466671965615567350436378087915351161079630701020267211299460956411033394201781170986707616871320922452156807381540917002891278445605988706716784950877841563489245967490904366049867013852121177980805619323775798764996557278269462491503195334306335834894544221166448958155745239336013603648667763352723339647599767137454475067760472075749897062247694881439684475814146705326415108221437320205768899130677134183821372749191263555826445180903541286776351345570529526292945509277797494963123432861400465373309698112704226522505796383321104819230070159412623008173796805170758019789797711023339695168753588748990631675733583120679210311377841065918770962758593931732005436142027944728615600347897520327986739792653317733809431434845445783815239098457177571588679839273224091247942583784993551685239885985977124304882281444637799634443789338012911448256297135331751173816367937351479781659280354957971247183985980463040088554929059893125792507889620189044974781111640767023858879687763181718708098874400403252099577711103599793844095778430015171932292908414442247203358647558817075262258606052120664957051203774289316937738850796595307147925531105238872822203313016618436458218111673422531577248653730031946718025220275474537633631000749702272489823312171023277903387471252471131361459881417730440137278243603520269336722163762871447885092805490853969929261241965292928912878896309492481645951781303278598003523471407653390783848216508926380719321076601041556284223237485477164077280367738532517855004259729753725144483479189681672262047121732540388637185977966753151618538328677124643670957588025084256786439007394262111614538447728019313431035675825604871814761752108197606646088366062129960011519487955548052426376794241700014129163836418157225929890751221631151152997160027497287712017809136849354618047082596642296573507708184929798892022234469080062250221317298684707749020635584043670062600063755078867297910813859620397464443822449793997598466631846852663430995705440615526913465427279336966849868051710165480724114936267264446880123174312575033141013209875665026200507565999737709715393593168766099381249400651144421577058453254862853101136605673505321748680739446677828335527418242001279823701693285751644820858134161843661586034467485377683310884082523553146530695090054811155099719657469148133223131586633078783766676792609716126446255106178581751555617009411424154186884204252101095465931528943571076364323739278619202292931064826990158186773153703410404901875428318311406065127296986387625172367306500263245632693263730115395503071362222094253238825402482192604944733060235171763017576141319213828075261071224908428943275707818148008595328380590235605495860665947752220201924351527532060899204691297635472977109818087242753765660441534113181149122774943197863002027124895544998344357320161280469335196066425492911502605496437897045016671288696648691658595583427597867641078506942105336683190612088054486621453335912302203600554791547869394595986703719950990814846689957977990297777140220168106598131012880595716984528778905743794422043309392150218610197230010469846630192280582874939655662567548186814990416458155722966346562367073336433956961653311876537337988438318163637450625160866112348273183524549375631068970004254521961932581002560163748968650646789744155962890065590360268810986387201808001867688184699688374490849515861223606616616402837887689309333404787272892912774333897813041719640015407221137020361504960839484407541017851189342275074016811017058978557659773438098634703228415997463690643137271616580934713474593486325627397480944792395282089578679589647284835587433894167091894630703637159153952060487603428442266411455305296107698904801037222207670427789938703254432121780910160654076041196958956010800200172656560542188710062854406989818259125973910631322442740832981935298701349009442618928791492974358131793943357334016084177022219057178009289989693117265491356711441136029314626160543344136699029806126118331953115186986139296651510332537618886168425090239475252373047373896307105125050059138422057058746793996932298451017485263239224693328083803894102071491123470190702313889808057250316158334084361561013401241397275860500418443172480316949246798332168677846756631721382742751088418829330450171811824710589532394419766541287030377590285374854793294834474228056430221717602589190954346584293698269235061596053205887065610529866890612587162847976403793533545515671148097915636653752078073989423761836477727741371870246057845292910116449521043025179148960003070524988224092597328955932647057992173305028244262101670789529424699487157589976348273530639804786299144061389560466333218837155392519938643088854553308744804112703488574487234803089013295332092785173429005974622655135077438855928296151267738562902509004712084993191612663559216051169051062998505860493130097663379579821223354757567839497676095414262227559446785880944281144602486326311438276734709932704466414799683982895969197330164502728357715708722967162774484078643438209761168757614081078867603755856783575026434465809793841458989232985210030412823857499869922850706569861195386983343114293874314630782021143751211270965439222391856162425857024811821655080429219889669693047044961479425448528610236034276298266003854371492180129527691811891244473391570936336380770590264537941174809710420242759098798790109228399738113944327293550630271712390673204537418618347067266756086046747501251547569629597505237008781403749785782746127177512336371471539598875412547248636425321183209599885999551013226810315196062979727424321133038899278492888937956462459926100466696949219782196577659302039565417349836920560915245742639145487387522225262371189948174568401407872494428727010076680611856755432368644695850605075678152396477755651473519277670230970611257302978328699921617459563658545989144721990522887360758227698160062641521118645973725885452845095677324635890062562656282190849049920289699713149226415667234641224833123653433510801927207392730061752991802767227325982304636933717874502512760655277101310833164463109545628306880196154510040612013891074980754110648512783327106861647516943109371167459938805224943961533055169114019753546621898424607082849441401890488001605203285505850002188324534070415499599370929295964672109859617639265302549689504333031960756629005373486316824942152242743409925446725487812126186767375453591449948467252417645050307090394881539178978889030585633820158582597120734732623891794522037695696327704104453542316761831168570223822887289929316226328860588489666120525038810181006364086545321943559352420030614160670467297979630705907973680807518482811321934223009175259269476858373947030051682952819068905826740152993729899303981430080568105426314632260392069191977205635063989426787284555054113300687714328136129806850085056160767530039890749923886750172471464249597241057933499537695934830377263725811986846025596917564302806267112359627022018804517391436763132923119656851687515908267102668492702697122847800062128911751630450537323132444624555939900055767862784135476823158167995198312730191290352082937980821209338590291520468164470650476339185557324532450147075021272156165476321976728867988210842443213818756731729510171720803776786919716054212973738703420839639507635759906214629024142276238080277432622789758709428480272927268799712305603760581888276980686894359580980844263469570618839106359660624511763206607262642473808444357087257133556908203781311421909504224995693003981598658642358110268109492905961517893441057912072004211645873094275804905269224839092774053626657870440753125083366066142834962986285851099289338032780868995895393865416883866422716247930553196601487033266236974537074217185250328229774806125874688027038790296751239456560359698084363224743882604085524853126721508128626074535293042530486628118948506521812791786426507227628171156169151845836609109139547365725700435327124082580502044482846417337613126547346794502252025875614629708366731261352424815777038228305754908212368407949511958846581653938160058357005024356096837974815409959272015594958950910758137619301834341887481476251740697634229945982546215897559491691111826831567970559792631119495929243678734863055147992382273316369536395086996782495998469939564529586681737353041711663985995485696054495638704827849337080907584527529158477486633022070598476629106275761144294975394982078393425648276280098334082662284338570427743107262557849754018097053552423047996083022620289718918746338720604043728685483568840606504381655349095456066223945659569894586423334095745569282971451283454590622156620458683439523194444056984174367089816558355513498877864551636434572425148153384270682610195116797424384730276414677566051484858177099469352464572546662979566369902204767530954916622278825594967435499117397609907664411294655318313228232566049866456792270550906006212206860745606274719928477751150626964397979243600497454061604591450464002157810230833195463887975085889535877990945452110300520063628169194510504391103124417916420673671869116461347907116519534135796028456147751309200877488911031933885881909631268997798895360941957435273822685603414219301905247096683145314913634447645652094810628861375146127788585636364690678774443540865456973119374774426605595531225666448243478159632939236578026048381734939977210214684471201262336873591952187433676109889211928714175574393792314599228716577126372815780490703622979825801316654616796250950852188171486433573329188521849460462013064179139838497697316762911940161495238491621468214660307381413267846200270272993580382531876845072551752741112422446989292853743062372088046088788981583837322789629842326714584172760909515636124145693723621058424294973254705852729268875300596968818960883774732233273900673796004501375344998302060924569568617906604495353756734504413192862011509057928952046561033707012968162432641097549128312284897312001512529433349480831761483276375771653189491239435021596782939920045925429821400168188895212591243793032936424173621658227651326571260930886147081761752036025075496992175622250968234155312848593065531154548502364051844243535249295081578079508952623946335469351321886762694597789627050713013783883227639728518942342748484665747304850540870665958615620300765886322228613662845680979671086551332159749810593008176740030587610025341929904978083997535857497853558464436536626273297497535089844615269699907022075475751834153697330293705399514736020274545367640675194945004535649574015015651446666302925630346547629558999360469342416832700022455078226944950916257858733884001777130004876374893401324960406525173319171601099855888745374601672757975190870680308791252822626851385831352869112899073891464533901141607758589175872775985103630982901775238298125355527105687606385022449576841024176253865665616606398972991084704567945737256349781218129661178456839394513445959653429226163142054459155921129289455261082812449862985150578534868567217260504026388548998935843056359948277311530593426830918464676295477511888764200153445921257687238472149692913364810062208427568395408848547863298432965372257828840434191365198207276695281959171230049379495305190903259885591266329701102044004684526909646510591469021077897399697767945532499562396814808563396225384219095741033829014433889146867055837990053316544402714986704307251530415865509809886133388340410279376477795300723314557899888249196738376771113645109085086191923540647630952231916944609482223683742340817402263505652636166254558323274556206614148930526849314143813789398382451328833188662397727856240739631959473123492961266762069727063947591263055622629523055625567330757886700131643396734065867622246553411984505290148954513907889494828204364456282874110364289051189698387397404717472595530160365010036159793462043472470080881329460157453534875678528472591330440267338006926504679269350442065257179635812029579131942673210144712719394068245025267538062066798370849174217949153452204989740991884537418608621091414038373835026181462522474379462418323403892009161481944356874781345159919733039808883429310629780049959785060700577125606743951293361390880771346639864164321583781785261139211151565709605252019045796161664764819536923786100973580770304698559490026654772467787509664347712246605643165091849878081289561885752622056139223927830708933010434049755014921865499900809108103248622086624621933777444907961049106369506595670379734555756970271174935064994585892220692333515195971983948433941579498413077984666717715884632316491782256637785132337581729049508678497353996967232548093446918704089013929178306315625473213575698565510111411447323392064455185324705498943897868271588047242204411941087479666411887064696850805835239224211718533101786160267347722585615901153848758246910653795388978104990764445300526310255006530593106733011217254033802907107293789324596249041234446236512226421918614501162039210165877935296228723119206512391484990014853085950324233995708552084934584382199750273101602333860425976752988412225988720665987209927993202306393309109403310846690943072158361074011896973828111239843303513283030779181801290850746583852278523710835555120847682332383959420958267038350749645380758880639471228423625000190124041780739984026088049645944818169241390144862231929695279766102056384074233988593183041848559947204612570766634673760610255769286351598163568878267275804046622736112104481190562967684184738778319086452715427518342623297004784338045347137704712839740105756268858493716189157962556751647660918939348277080272215679948755071682054835524649160012072182601971019974000080229052013796768797654027552059525203760306477862400852280919594812005823469325362565486396347789808017834555360356199406380625288858856068925599247353266175416478024778870046405677538243618230713582632030364929096075640676348184171256312920145576854049726484153137169808711408390518138134618336201868019926850597411534242027157071224898862640221750734549352491791076097578340444788007566626174936047538741378013557623840255084151924507193975534305543790938945815277364150946184665865479140870835834664786053037532021980021611281054099962684119871575270254163286101624946264530788657057853415221802904115126378517139616557250941498006792575424413176616368251893581224847194601009011304730663600413030285672261389247161888745732237322282440004311201375914991718256452400318158536932407609706105851335545813655466098724981790924294320409009998903415462800569314166551856411739366235433023384832239626601829504625250166991425834954026075594625406907851769881598698188477609177506331998576937924950828041000789200435589229116581446280504515973255538107075887932835476721018901070183683325927952875935717302902797517701948004506406561190879305309394777516948357588661407986979502008420905277162235712372686411545066382610520242905163272353639074834621885703446902719743346967578568670377087644006875765103404297703416968110332498972823806090184021704550120840030625810671176372965120461958375420087783734072229963684472477940316605998012149855831600857746697575609194294710834704904680956229845096187182300027783682414038438731174531599503931864432169168218228616502318666541258705464496439075045572994723448835834972479034008048702883467326873204749090363782269153563736357764686974533085755895605864199500496442942880912700484001623287482986165279278063665863330306573947680428752322917022250831345617188014075140411432161917537087859327107942134462920260409375413467392928404144156718687347881750102148234556740566406952667495288844229245449009432009732915109922162294229234761404709240696500904156540771949341382724413449313295916247148898588450220024172128491382844593917802183175195363871907479083107807472423259229584971914288079044878850056457479564317968895509025179583564158396845941769704866605679971450931256687913168618017186240391726594465238282604851631877539111053062308588790935754207448165123755092738145424180628416514303613528613278273441993471388366986084842585935767671246741076315089499200928660443351036436450348780545042500330543903260074940540046306326516627369376224285268940630975040482469693259771188627611486919273610457896335298720116649699657219151615181697468845937456544650328151077908940165228474336627126884159433374085514881321309066446607941072984334227734211877246718184954722755897093296036921525664383158882102869992723090593170678369260698645107664764926255056824644224371808626315938264375646747204554150342947603340729141249801050381348489018616233540982246740705144588128719831851635651874659924583259202032979043481131807199136169283061418413237991398985636146880174342166460625173074657021414773539820106278427668875863847053619509225033220392459133518932250773984975955906482924134944374401945257703200165472760699266256025542452874256792151480774153671282394478846653577300001126908406774050121409325137033225055434875895173099796219017093453673791590255412839634085410151758540813198442000801804346809515007973572118660129662806018427255081338217367812082399963777191371535707056217779107927258968093835639015882939136378599488194327562358391628942392775486162354681095380477594782739016925386752130459798760104869675673284022614782635928182178546133535128224450543199452677708312301375603011746600753734435263470474914029882449970878558909191600036844000794101152995347869847263735782066279871341734996627211261923671428358168505087968871334774509157661665041381830194854637761217454324173602987707933850372993145249545597529502738840608321654693217493752589684857001590781177196342532781789138572384237051018250530895057421251969885226746714178827263484110476258396356775544018144285366547782256394800193425353025041975659684024042023469878431207176290241804124186955917495515243184956125513198322939256000882609658178264120030381176703049182986647637525117075379060980663561632601462183399346125225461190884040951403738476268149787582664154883271482933188098763233760846807782820441599368386619495775183773345532457899986191715611955971914007739039248518705262129949889520814407497909020035029627667207192420374846843111673157395685503518733345548561971880196091684084366270406227015856535150589623225807870511409010639026958641419610913777409971171887064612127138445104644774772057882227816950231451057095185968235723004377027385511577839884391613170254405218733682228053073518067646897170291470438900545059741854260316487283284998157808373943013787337422840921651278048145415462350494309602653101717083365771205947624216606469706550784515915153754192013548092952417073413295879985259340973217742089828408290919612999228227784498888717661219503286284050837474732801773151145114199861175352826717079940666168232921725232268120146113075654672219051176551781401228065202254963048739442508083340323559060769072636892973453149769990134300246194996805961439401831761844332154007059299929060732051991365468165189220118069428448983486845130107318793792270965653785713340284208108074837596773123656091359483590674538242978515052654682209362665231354475757919085673941236549694678860493321121524970102119670615206669587289325146960056055981801301605291452615029935675127311021433086033941990163590196263318780740042168596730611597292616542510997261616315545698856595453551445152180556726645272643320883199523254234916875984596330124207318197609426571381172096995415124385183334556664397891984209200917201597896567852186605080221925034908237939906908409871757705609200332489510751413960595617422060159570051469454291024205127094915800797687810199563297513775016180203760095001481407166522026842783342579709382061312772100361691291859093884656886053062017452742613160621028076679148709071138092340904834663382519543615866597847692690544914998073923642108612144135359454510268774487366353021289313020776605440368812521497709729283711097377093917945562983842997352140721854598614545419739321641374771469348801847038927448025644661043073562077825204690922753304395155385384536339683626127952171599015902646225849178254133025240887982257089129735664142746318134800936111663275245283905755317596488675835750314480471949038242154883335358626056665130786573974676067413748160983846907850485034841888504641059811707359398583683396794864500827223792707031220545219359664542608851669185410390467678900489149038201769803886422907514553369548347572973905400587401811481161096312369405275610918071080256137876124997423461682356346111174662150922170732477053081975649899468629013958176228481248193768567936064472199442174999369027659668374293920105416824807235535283569456697791653718812653094539389550944710600886251200775823117524657668786027576611221219977926610465015861764250021198928668531103945271476903322828067709700575001809379022496118817042469680423102378151757921806633261103427588308759917125059874977907742928005295938717569976359670459916954530668823790362956072008673523172960047946323370667814560702902685237460840113121473990048897668985559063212486754287342139237881899035842388923485114210662426735681959242773743041808992322586102048614364305670592216065756376004908424270144583597841595107787502332527948593529707700037076605867084701872254311135029831650977784215415136377595841225496366352252308712659744056816140003560944704887809335772425628525574900168925832978746101792533371545519854269132704078371045744949153286142401613334920843210385815545651694645479157274872236213866472532752670809011780435041129513504158824754401969354769821043751434712745483726916896806011898851971815230412858292822141160588603263468632153180965963374645147566832586529257257786900843974750173000852621990736771083279255004337808746416323054081687372480180496191287227787337520438658191384295162140641375754699704118376674000860165521296165650829683929105844067170291293477870121970924849770385972653013275151077347647929481821321594459494737199904894208945438262770101126061404159134810984167816736675154429694786289512895771143414749977155111678191853864301616517224394591184548663474377802770814374228506445513892232802027932330915614833914856631868829280889216825963520867575190594385533588169339231348070515459116536669298664824558297256199934826293503522701698974367486067266061789348427974387513945208634657911524612412965349171444491629213605077239879486158478703968586048769111945582337583846600422428275997966470407866211044093654844105678495984268137853647055416254653581178508368302148998631561531218147634822757958704420478460757602559918423749990021712099614737389280153716807155244846568045821799337589839018629083886302936958737239385516281117844848466694221788724306714375833506448655708794221677890634864379163534716042076046619418675241134589767007039538063374309890709546535520925007163301779816956873527801702425098710413284497555470078017751533576414417380918170405793008899873575186783778356992111404643904004097905524757679936375270698069301254909753717689871702833621607916523083185777429751196315526207075992516736100191626523111624267956611882629246568483336400794625633906017437822239750646298013784768884063007955430334368787752507370535547613649178211786189945885079893401621878634271168194798053352187925530154792472320146254695854106913755250104760525132337966936232727644992349987942056011913976317869292760110807688591141124942235168765417959356124428031748160137529018921321362629326718623370858148991474470514102077348104728638895110227101227643119255890188352346155178126096563172833078067640960688663827695417579519496329826216483062292912810013114100605946257254508673515938217471392728418686525321879317199707626130621559846315707824471795155482070810873980097059595330977867919488137624615396137117079745736938875883235462749843345744000274905910076777035588230233850138152810910550708253560701702835133290643483503393522975911451710367549369624480387046260894744290253090780252303035103037963793252924048567730959659281226868626777937759082954280664949683280993159926103757850768074217608003461961381530665384657641809457260288642026423252685132479212095375695412891403414109851976950789787167762312496444807341193901636960120717464644511843728369526933680019827535749134681579786688513228742625936061316107469214691820588953068345036384072024805504227847339364433934739902586561755380469188240988522311429868032492637661465613849360301076750546517170306676001697694321401994134842914947021846020407524468116390715472250193104405717852021512102402591195003215700285017284717740522102579609053923400372135133925409651233225337627407291043622593099312074579628778526941407085135240963405875729396608231492845517323516792740703038240091097530157312375592866691025288347785078511834744584369593022756475152916691358330601123100215155773847842405963616105059690088829796206386307000828486664600538507741006336371704779599399892402196334097395143351336713138410239220942527724414450862012534849669630639892857548577189222986732962197732614679575505915771744000764213181537122845513553904959603501464244284452561602404871041201587127925721734500320244234826504626569529793336152231385620672667746297891338109998220296254602952584094805592115160597055359293512268349895235606737692130759930638718105989337229117443058634334758999462960951125691935875224290946692125165848508728355506714970616736760877400045121511387415384151168200635120524615509681651220867935690567903729619555543014019375098123240549664711321851242191869989335804516997433147793390662954623780925893914776497640250276974972884069988508893940266794756438821300726366220307095778337894946423023521623310415964041368244927222466331535688912408846730066291289542066127507912001520901966519637629096937079558703493776963236945535559313992085564820768732379000459149070275855570007764345931960267065038006559477097443481553743581748212958620571282068468520185774674105666307898558887058268371401964912818893158343037078893615987598682283774208136090497386603468376375272614695699112900590115974275424800751583073336826556621769250711952845390578772846194312113258854558048058827265491277110285876255514788528550172389156511887057503801532472456430348605042861986595702932164241642679722709225636029074406757638246445964611654740639891917893714213390337677301184561216795548660345048963241034625613284043470912970510405927903653152965315356017154855312106924861705254503690505276737929359858362787434342962170787368960393070758445927221250807909516151989205946012124365043477171935008431754992759181930249856081651179592716975427530584628430035598116484386998428330287619642451777088966927724010031296179677639753499892013764678975333574032826479602875743334767209705773640499961612146543913610964373325820205563749534624738144808692472785251119337677277974730823788081171549097781578479495146241852406316408243638749455753272279639102962506502705762431380734603231647039939403586874810657837812688790745672526359090706601045749937424268460322240701573783151730310141852811501292807968415293366129082080775330055573960621576207976061962327076355089640931931935845282395053244417191895038082855970370296838778724808735329652431645341355600477590305610310182491706640233974048862660047070417014545458945478799041679740552218348991121762289360951230282775634032414717127580733344518514495746605164795096993352877538231601030354412325373821922061090519832975358450440372521669955890865877145803611185174130969746833114733042502259963272996826971703576469395602508616250814997142999005579149587769678461970315128473980088682403678092589802956351459266254360777393493871887401502399113547019142729806133234213524141708599501748233348691982119830473550153294737791116173302770823108275436273146187834229214030753123108964071975538267956410274003834957944070791355422744675148919181465932773704023674387328583895225529154323927034579965354064736104862257093061699916093928744414976990830469076671866049752213439269579966524862637627403601925408490932263155039991764640170126718823063261808057983005660241827014845933928978304283750727093589473828240638902441865260486384602852367020769814884253140355039039898011552013953310190190354625647780334535842220610776939662919617527428409114771174594964882976436215828547037764935217017799397909778012681081190480058614845391454209029578242554210555634321723716282553556067408537151107960452800526370495906935403173333311575937981660175300658716222965211220130322920620848350120716754216046821052162766751420405779422997884036033934453792084442094174670029689846283667948796034074902580620191922383992884198752773448640653563926828776439295637359561892723528837455874019059253845670316545791704067068382858897622050382225142560429439169695208873506763092766729359483765481765928993466727213486443078629260096318114662460956678837643355688695991564358042867915605646958110436781737401481394844989061245778137065480484973213514235669536481497740656950846691134094428715485809217000903453939835369626652574231535710114309475586771930870483708718416099804869670299333123370680148191244404935513769133686524075927719302371851203528240100066353886766145411147269651729195855850612949164752083896570410014203215614199588243041772475154296801090158612727192197396668861447912562420308738025212639873546869488945273215782484065973578606327975738334558437751173260723671245753745746526684825872419485395412186666463609492174924821767795804884255528557790198395788303018067706319532108756438078463116594007265602825924025383383628253853091266971403957250710543455478777132294188524203264579027065281443125261014396723180140096402749452148910868395477126581461082547371552719593177611003092367372322788193063602434056864009718876218136545937121011532642181468398167432299482067013606466241620753960855280876759495738308484626433949598807098897011602763758716872383110601011254749712340371123962149113938747108847003769243172305221879862244604469045208095739222783837703346850976248649264835115078274866057915899311744332297090302249729137784999619727667222886206336370815114937985015583705980480302850863554488086624586679159543473958330367293901423255043054688091520268430006267960765867723844926382501413403914962609425617032212943647588567566385903836218154633904916735492687789757905590405877526520436154606438064593560554705851607451223674876513795743154879938860695693149511651586158844986065612258588080730511879085374574232246266189419297399272313676846556407182607956323999465763884976522091711370436113477081510007034622198127602375292073630579368737601915271115229448986128469486670496870453002160119766933366467250814761772256560204328983389827351351737801000147516219511278275580959644415314452792339343345745534721690229179368846121130586271272631580809772161154884098023986890680596298217614521232732689107493908823950671805861576318919982293284603181636307294280293957866154732555228839356117324693881043209234013707793398117884620256727179725243597965387247173084468127245396635158350805602681733213540742593162532030234748725947712571413629317340103299641060340678889004551665775330452439846225880966739766992965575780639976423847501293674349212826737582133236550991306502247236113351006770227732253588748270323812236807178389262735559764747341979762104844520039990957126975632535467385267060836475328723582102508420848490399533221428368993487515586783906053835171305710066122481642601065964054847993939638734880294972240887619039869610302498475460866236473868468534828997606273335205656056638382541649941315358521453033794966333258694920543503833762498912410198283101277100910315825180105430942009143390890192694702933258612965876802793899004666489466363894919792590297305604480798526775240585986082652969780101808846013164278983875809154683389187934109288807494233186594933689518149945472207972500304546822673876414626321714992691068816765920346663428283728764312481182218060123313803013472453435404221799438517984547855214622480735214202793321758844651671213931476114742131131805334144753592872607752224133213309309364552436218247685675512802276150697941470416278883271410006243226851254134852648729637502675949598295540466657683942599504637127228532876993215241278688094932338508126297385072892720789838255484665031921020424714297875297674658559570532365345894075474493570854676843807604135413280967040211997482937020834379745268625083158212121615081160847752452640770874162541328821795123865721473198842609360285028445064534836970154889147503664139647242465005917155178318841517376138199677588727955714943968002597201141150327446994536310001047692812913447977130708966458635913436452977124909277575658931608353019658956115114500269125504973457348920736711895708249940778463132662633091573773849536013889520097709360057636624871760487547615751599408873719486651964789280188248242656201989119192298720543059886892499500764873026920425988535985169405079007949581358259519785884018153120358962809667773160465153258693643079722882902304942706866624746602855856003035603619842649649996163591002812061073626019530243395613658910254244244902291419735342915316971815544644273734985450826949425644823114953055638023960832444984539798902150663463209543900410059265756465766177329118375777768830194779538266118894277777727883641603371781513147539780624097636595053308571838152560732712185839397110829589336424892786594961025917551864832064988867130226389000372036153520828257207037399282689946560022855311214848384819451429851159693573985545248460801350982898493178193798132549085382016976601158202632338220313650285474273299890688261466047300374549165249775989561765566439552664921033185078927082603946813370998731763313944578709101495399831019698628407299118081730337493427499138363417398858961283352435296332058817621908775609375056524901496561047326762443941580578780719369089017387296659975932293509412902592997043463289083414212425331620946949192902553969756956136108101562926236400076393698513892850900390666303388900740990356448505614732432676242082218863123263257335092809187367252070550464417238773274672262544655217900568311635405131586957001844765133310072874609800442890679718690404218763829776951482883224568986338282066140336326387507214864776218131037248791939297275110709554837729853123507714665976546851226672295766860744843310129116769505574686111412888755154976846473829816851727119294208195376238073952700883039106983893954435575894848512289558255333036896402883828778589182941468356240799211592540578983360286403232239816350265586829100394864681967510298906765581659401083502104057840373417528573681632070531033921264612397139668201049485032765054895547240489535959438321124885879255498805659631451283923552490202233255343458852925169844669067014505640624777337467996229940216102929959041475606173648544839871492239971109823579905186949528225919755069301638797849570529632620506839189672047318194393605639468871991869413398889559015456778462963684258282310319098110386076615430897856773047201584807906433493722259305414749531030783388893855315810299774977826877926112410579117461239993166755078152519246775363327273626816745131454684806839025043439301609459931509680573892449031778776272149858409924597682640315576648085620833168075321410564162542267121142326764445064409111624279756654375923521838755348929016587888411503473213268462306219205472622519914309803071697451642696229734482880503779189183018523588780918208566334814331197246519790680336442306834911203475682311491387961559699012992244325029538407021143312375989408945859931849014975378440188510813298509722676428648002323381638384455018407147105997411936144953315374267334945145541228982490012110663480794156749545649683375179546482793502278280040088350139955748665216752867040787105979493172195514575680293985922708489157908159645200580539260571923809506477389160955247841437914151020522723787102819875871011727881761345323816787269459668712359780289677884071051671931298801172671103681629133225280162763694998412139025376773703748495932281555493708518236343062043025317393407613958411069824869794216416131732407842521911992243977711769117022759471043609291223588977767581289568100996518687363587133039604031331431670757535869205568484492943426131036431250117965574996307617660636473478949363394893592349523960724326353460797403922495233643975253072488086589194735930356114515914550032218223000941600384412489635842945216519839352566669516307892968547951886359386928323353389602088029229762581319090917230920963533155887657332987599894826066854040914293638530111966258598904017658363769649155020605258142900484568014737111415788753545553427656682030438274738625713454227976682120153884760050418794363456979865737644148914417610786712171159683026875618042221885395273774435490305789779846089881617173670728904689294456470875616463797891351147577737249863128040367577025005858815346852199244051784359788158462975093825909931912224392454186599188602250421611090356873076103412298588433717688756807274711924609981433503575405418111481818389447434363748985043454802115139977619250132086969657752216261226273258597208433477507651720756317592000636384087168040679897266204999031678351804889250438990140687013899048186393264796084742337918967028999913900443684878438248474191229323274554341435743575209823769266669199883232869052976430440349539006511609607884683727844709854303756389712488394099234207424316971928648499371482564635400608707032147216669884821013613762365306525906158694090813608382337086219288955617291161226780165350782284757455552685960718190492306990728354969482893929304605425174333697957727052154222283444738715138276061020773155683441975247319447341634440122326776042738626287914976205133676080870791538027688503804971136655799918654023854778447784437835242170109486683637974075511335338774881975375389207598008870482269214196792346562167833035101711159624478582011275776809319156373236534521877920518994762098837551529570767125143497497097082068803788074301095161787383930984176653274199539491209353002583704233715461183266342188603481568144526053257424936188288388274084773899760731770944148071954156636770897861875774837168349242503686081517020291806092661878579238582919306297529542648070056866555436838210329439610782459220576659233476512179153580491519042848832963332714499255330931471681714157710657981384860133118610994339004667024336415175905631928833336627374978764669853371479423461779911037772442386186361290790654574026194872421510546770775832077382787145621598863541779857801159551281767135658796700021848116812186738011878019584910508355150544423873893188367653429309902593997576734630258231253500106809626332002393487658086346052592928618865215454639844417045391413460280571861257208073853436366213428567796409334864602071785193632112402144125205824953004131598292144038282018263320607704376262886937759518319669859326662056829299751420168261766934274404578230133946638344759474568307977926025449302802519192753006010241444011475945261128168267142139412479245168347874270134735952861001930692961534843382453596745734922073451295196317485239287978343127583299411830874645699892637798719273906085287199634992457037516512623158361870893637783151702714305614705571241278973077370089616666358742837107771867322326932673501369166898935061016428889479983550172876276633779576873760730495925134058370029360133636026826648156110527666913095011400838481459851464014201306868624528970607027552133816035174370564739240977807118085306899615196684434508089856375705698577900363515525749983306376879537744955154988265300054195140106155716153294276962059141304812284356482237093318585075564854572283228374759954222869330899209112940497575115371771858921625756893256138725746959584691359140918262477007840673276611246308123244806990754326045360435099446480524621844114471769980148034283482487006394897624061491226943271034548236330692788983062974542070391850178030683605486033511338596977665640538473578248560372826569032123953005515179425125082933330086365632670625483120767602710983824167576874436937481720112300967607133582575267310571052402615160373314180665704451307687216781751735214585480198941266954058894133917249547949431402246621008787270348124203938647419575067412764312604625748664299175486264340844688300971299996104130170235135984501344074305291418657447247281765852182637880662441776602781911900292767047177735506496204982806181769044536375225353609896744684848590357971332549343707918129476506396996654490951704103323887009547688772194426378284094201237590087157705604447282321699710162259639673859520891809729107446955678862356027933689676344437939181041680650046434311239429623541075985741962595203508400886583276055242014069318873380964033422243344787217773727338331393930324939052105775315108462855615953488386792446015282801280094231510214299528632831508436776320940526721384023869205792313534850016440801068099244183576168633888939235513916373373065829163785697606918013209169284253991289801572991715659856753347070455055753637803848826833765271695874882418402293461024550703427089229325048351347362399555749796714790335425615640406416414460704063193474784336691824210015203901250900256183127484497924934431985597484111360256968112217026779713240744660313922215819075559296389496526088967633077478453831485892323533300133188193883086989601047518506398655658049054498941300492891675242914164851555681521336596414900090511269178110712502972810293561842433076675364349868316618169041538022365612117380463698595493492199127885692674200457803476068288616543546999856055252773092900831072591746195743691934785301886660726285244963862546503680539619031663613811943629107899162552791927827316908887291589481254933110295310193613047045672805325841346438910534123424787370352662316577291749813687591092093795499450153431814456094712087986426715788983183799571512930731962597386483674094806345816710480699423963334657197232117087938557848731146423030736577240628544513213605740021207292826613007053082476872012893141352084448922421232525205985919247549428770878715023740932392427340774866139226102553401960526285129598606803961347019087973120646481000774658535385856912034498132437394424886693918860909869061356233754765555182395846343771770600396655505426504467283967224108099936141893506653107351680047943410249708105260572187567845094802037050945301980588232046666914922777048079613552265343609602318834180091388683346340714510464158000376304759090710452895948927026803513640120779704367674342001146432376472472461909651682595668434227466104468142509771413914508321051607159624371063334915188520226103919856669362527121276285329286498853014625625146556691727364622309424482719468016702663204763309583493124724372968961537044938756945618449219171668207225293723398150905362723342740928472692622626911257927551121105929208407805844681534224820981954795336579524127061101577445080326382084575971103679872248434067938473857933764191170221133781553735402243668680520238873113744398542569287136281538207644341317348280763500677188524504056953586023173252337434115379874672222922264183484720397740287489856352214450636028518776384088925374613507619187229160367133581786226270684014840778634332541273658917188670805380382072157658801963387390486541133901508646265082177946068787640091475518359297428906194802092019817223142431520450684718803358038830822551842473765966658276330170401093102972688085877986902783372962560109517966143226437436075415101083209576954494451250206439341104907002524911050704859780056355281377280303894505181185727098388694674756199559627700711815341792626868767972777001421400219000521341339688054597583899987131192495185903313178214907100793314260600843712433926798318222704340124754974097221087043688042457349190010088832732383414905017902246389551340752444160120597136703460201598329679879561038706112054743675431796619064672436429818471175256965057603981485962899470775485852935945781580866037899098090414303052144419007959972834420196448981821085877425907628481565549519411992818221638626335605211557414133223093135456370499477326242816730686785765994939857570837729606240290028264605670463171776872979622145917452751789637942178474672518512541465163659603251211690341845893366221374312303447691370540630093065952030802725104292746245831936660731519719769085937744693939343848217638711635601464878556636271821181656973068386506187111929814243015123317657272110171183184640524995739850192091845198884195244916490582293814317480001693365660401759671380278933624958672163800548919732298580234014602408078505000917099580274757531117512254408887236576493701816795599010055971487932300969460125672343142099087207513177200868903772112995654459681947759719094910031020207251249249630589823748543625273564755069655718363148179337130618601243667809666974960881746227246304385316146195656850160623634259417197153880145689357292135942552845981544067720484689322932731682116896365255395388147290225960868478536790491997476355236311348748287725704579225532828620676285901766706091712653966115042191794600396635348922364887713328370020226362870325033048587337621405807080879002380235275862886775467610793470597967632596748999567068005506379173034820949446768712726718285885352122691598262566753199813047997880388162204353924663223029926342120108619137654832280139495319480877267055105292643042508702664454803148645732159750656079228225504423405997465732567329927947568501137328987698334384574181995190125800633155654728093927233013153480412321082381468012193728280378562712337337536528844948897620206776529324223671650339981824630292717523553118460607079347070054926314533132596548770458221400168968135098774238361697432582566043241354501197002252827658188261086602671458114322559400493143793119151850157947194724638179611988935754533027659196434627492847851068409082833830481200281350589936750997695381182558637817236234653247667127614634241154786597915920214894583315395845697626997686272546557321570035993757731441820400678744900583045494746594091676624326377805666422168188844340572050380067628915351636395563261861926576915241293241793570999779964833176419007219307396136135767316071357382557967785949327755461026093391143548649009764148700186052193034738269579557565527979413455001702529320079375061023349320374849928841515876665831731615167613524158661720641091936661843063065252384432661553895199120473973691602297293467531495872877215600605398892088072182714370281719573259830009418757715240515729986896413663107854615555257728871019737663704521495302051117039883347480006998390500017487649470117355893756705579128496214388525790000471317502337936118232333791307752279914044509572474889920282275611030265138362641380043616800670015310265106596803363217341190706659203808650070062268642070273323866260466109320229430362909007726264441626521146015302539138178332618974977063324256372745070624068030947832825660274750269415018639712144488838681657334413439379888109612097127424077167034134513296701024233373743148884759192556846025026015211572579471686437073293422093305014140753749287771872859840009291461705745730989324837296769114065730656596055998916324368799655401170432425179115772724988491495982560149954265536602080730319596442369959316818612638649307352558901829732479675148156838107611954472548149442385414617310601262839011918896231704609005468192979676403108139814883283959327641944776586432736160953486940560675663150445993003975131554196387514015453732117447751636357467805927499350496554808866763416468461027615475850595665967194970442667664300032463539405193086701196160297476914319171538553816093777345624695360425717137420710882487836390322103410345216764038828395025114165436326836567327509120112952722567418073564968491246102039902938795194154323975437884150931638231251030212814977582380663079899343856907302426847761201636128169637718653363067462845956563683708132638696458603376968191958736019923554909329413936071214559593656144849347875094836723170507629474846334679858413936578246051866383975372434475227122806889923740349007867907720093743157531951999074880320196872333526550082061108372027900264904375724908993338306611608479528372181133338999214938980721457302288086401093035882864279888923781849373045781013719101523545152638885042603549410198461378439695442512077667604615319991856849787893336427964265773196642990840992109138275219927456048740549152387311931475083159904159191140989532983635141165382593513624841042422079749836251298768718877204873034843555361695551424514319994064107853600443971254427327920443293645494515546862222914727654754461470590994395312477217034550619231690294912616699988979026873456884241823545649621157205392230199279147799293603226115273538633165410984337367154811113806735247402266678589655053281422475217082351758751406415473123713470488409774854821178564337835858401168254415107380655091379943369885199392935280086675589231949253134305263659859675844305289710143150940063342710432577901217399396278754355567276890994435214598073430362639401924084153829024634757835645296952331750642885538399759835611238840373108248482181162358538155926408940346048331295389634553675081876349101691684958277527784287207773445671821110906929212344072052481935510631843421445327855704726748810112439544665520908491099829913849603739705508798490961948556425353210388537671968554229437845679469912083776019732342559156501729097266293934414751718441620702143591570083343184502349117703263745720578005167862138550071238930672074908269062873834150700252701045511736445735614347063613639618290543222619565517129330360983117294594414512350454212915476085705295432187166512096173760682536601406443660525225932612274348030576853083639482550057988488577923628866026613511102501549857383922565499032082971900481981828696287440056426407782949612421731332003230687176877351972495216438367966368188617009904883553716765654858562099529124566276124881831290824962925941469597557701005857872809761942038456147799988486923615461038887726559165480532428163464240847771607526752130883652475396637259604408273144496533343815858500769460839777810731878791981160061460694248293094825271526537999139943322252521798574037789057035518720598158859946863856506449112667619340336375970764816297784527813597784600442327532892701935551618224293764550823807302048356551420560479668840442837804292923779602148666836837705815032154250702614472972683895520357377296829749059647284959242681610588697564174272607174468497421178549300945701973836258065479645967164055312035150877261773391072298115372411233563944719186338057626563388514977347034610281613081455660324720658554964618294712501658574321882256263484416750654228017073198939112596450712330052038348877845054204519335748936050172335514327222209333798443281496994937372817846623147611575704446324601484315721948411481590934226960113377787863724023025725837699743768233684716926959123205852634855752971880145128829492672524731123375468828403889591600257254936991822630140050551513100960544011908278016064963681585050395497659083206742009974348020824196674468658021958674864800118304414686251632295426885744145642443478019601887734942236164474274700562067513647504360703753772745458617659619604072330447058043937515965572461571462258176272036238166318021713951012976712388006952024460601320588523519759698011651951625772792298996207013226579102348379483789651589065417075443112558569194542753157851567552126271219187893374783695532637409105644138633296110364814831324962408025589398190337313139519342538674235855549801418441434147599764604894132832170263842992300762338604946024132051499037084718226059611145350651465788159270882833657542718223238825153803839710482509430802741057852546498472745549514877046323946207901827181932679480222581870145636321396027372540809125963376848056335660957994795217793846303103837061810763247222561649731999848134270786254464509139961207185782717061473785045417689630061554222717177085498775276678336386985577438930334743918272095753329305048850175287689387031628324207984906489008236863730930230249325989790859673997462695677506844156340469063452481997118859689949256811265305684057616770301228134413004807119250210708422272008438503703750767684507878588085144599867327884518130795012855838093769897306399365651900299579157561907107190527492311772415838231582693350469490526630987181140023885816021218571131138614121423949999438174987010198050548341145766245803669750234080338740747130195616726135720477523534021201772452384023943601037767093426897029117507655108772377640868261452264402484245813816248822463557087880301923607499991323117509394261461385841348029047727216304786372788165312889627371133928391480061353847787496904174701756405403748355731914844532671191040811393197216909313031333116187022215428269193201458208298255807316605308395432222955653050469384809593593224478688975513865696381342550452686672289159838444868846554081308142898851543011464840004964644973752585545103888904117938488071121716126094815877921161950353313910079646518541997858103585230311564351829545224357215400974876437756315698233198495625318514379826117981668992226308154161048160384332419663029658822647729948276031555886955099958491432449770364652181440412479281411126002554704722453773958289395456738259725826567452053513439984693598747305129525580435695821627838342977154516854076733682453287579896820640937066307985529171545258119239240844603747191768589002239158779730370938817861491823340668869456858444902803171673328775271635956427436008002850308864565876078782385481388557997980183959612035592542523095042743111525198366280813848686549177847229614898373072240600077596611932476274408636821968091849372094196365292224275226735436200982262472457468438088918877693527864987623347147633906948960385006633132674702008602354297673849083928004051411357715255826096198750239156619034681418182495065284970445062893352250472695519131571637968083662578928104062801602715879494185827977862782797173206485354392066815013990423334385668061958600720064721258925689220459041492941982417288810146637223547733420834893601848182493894884237805644138368219405393844596508058206396469665931056744041995450567254354921802326238840231247986908918718134878846361551551282953073096241866941845673126719418119707537441344058679968218990049984407898654819557429451155833302593758806313518863117708453046444200075736110596238742905990376125527641056226134709806017014362126505909056259008529625282528547369204577860519856537052009169327523489946824535713007016172881502761015291036743380587700279732828344738160789510509995584419342536467690757986275366414684200636437269526935384234376491389871194092200825286601894001558342133538610067625714629958725597333548585453738057685281161557991517309048471973946130521358832117283047687088718403059539712684670370128109019530409348043846454723024175293088171352002107147709254001634428142198633603396975511732110202608211541310123906916259808855329111936340889320150523842831061521605592160375760924535370007795148732569071578059598003312580878592147375395887303582948130729127876629809619413071083436602205589122483391957236110992843237696527506631853776209107908612223186537207949300965635371127101289761580012079287399234336489809163903760146698367166454556419583598111218447368114809718451726784354781115496950563048283650174363872489330230930982189735938605068551422402065925237331968909153415431905154402499452027495461958501352061365546226691257196732853894736677727367560780890019380880838776049378231201674387103121527917569523880552205991195715202186410760802470386574018291187861390642999622244472744631078528319574374211073219863117561339332376282080740189232537194482048867812150782106072766981956912756445730793505423863940377559991710959398526382544064518073125113358978423841291289026193169631391933980755777538083685726671351194915192620661093470089848363602548971696277712306920576378287496584397325181930278602568513452877359991205204854197238145872464625610771738319957155328786793583712700356267524042556004642920511067426014834890437017998578306007531249115846189550704852389497936066644441588245391636223291800089997975333691218793432890011055280447717093920631087658767219846126808412018347025643724497218565862855713148681349841724654252576934200576015099800868686605332313102710901369128596513648965374623186262662401758378046821488374848767555945698428706436839291816700578120421868115717460236531216730416652897750595457710547952661125246922807407960546997766655669909465677959631520712922824416847172694885394607409740037149018854098240931509129845008657684835236332577785219163793216377275044994193865954491425775809906697622968082321863087190259512160703329853756069505376490927373918368153154441130742053769556711488620458665501986400184833087599149638650737326244061123112485824736701295902876877750665462134996184496111421297414295709684883022475840024351675433552610012203752487846346928099719771868331971058815404993855909609710870141762461424031870046949591561025567847066102210904726982550972134603274244570060410194801889739632103079930329992050061755583313168191461617287511626831931535674851814714354827526405588505383638881072866736637350381040355637827471594756623722622371352392883640444053959346527657139689368761971019821350084915670617911346120696949689769226829964179075556427745328514377975912218271384247313365091274437198637212030194292440820658524738525954674830195031074368040598589494331153599633496144072503546957109027814633440138025138665055590744184659544069678612749483464513940583925519551761280824395166589067217787141833513471421094279727830986961600701267685166298452258824005656717393789538835946264205608991367926209761378916565474134542201823853948531469246810861240452465920246731853475956041984911939878301241850161573748665034325085907530838359326193997283327201778163208982281728335561003911123120517566000946224863355434355688507131471811009631619671006409898552039124328640928806738972269913227002382420524787736520872632840292961957174819505521275099230700301123386374637980001824130710350657925299712767105075898852257585421833340705047227926566150064250975511376476332943387922617754648450597947449188493539910003089161343817009824741770000858187611275950339938900227487531088012937355834169540033666394841921113519738733907576860857146156883011185517231689110655601787461698270785401794545328566984831753809651224238286805452026066794712152457577264934689338693089794061462342620332526630174714910172462249806479932446695820350599808376803766907302630255747958955185645669603304563390948430357214096816180379630944221234480147188304428087017126948488162693032377644322174750916828095082720348981779140864537407546458796258066087412160233606490515516780748755948433977160411784312446393853830137537442359606092188446240594126042159790099689045931980287945292733856965408512995517401162115265744679984805838443187782772215980862971195411613008091074828646258560269696886286069168732983178537750229806560623681816560851107651277789762353509194256112784842908317535757176372251484597596009559761566002459201880729782361349761825355040307079865342422755103711495169255053741342055443616479774762218913878234548300937730485545064431012092707980294994443764722059580205144964110860306615545189669976221836839050140415123037463336654570170351828146746860565867432167676982602346058708590389421306821824958205747136573147429070640881607458091284690537158653035518408224207492094932034956742830871515139181190383480961027175898178150747566455950892148821395022712583189070067957479055761363702162508056074830061327174186061949875256981690191833568522937711730328799254910027085586046481878462160785778182685439404174455771267727408743439126703154573324590565641479147810093064778245939066235232449966954352564269974466711887919634931544642478039137143493851362948132086838119062839867903868533205116408837364691641576700218103469626809353351448435434998393424186523354733355908191131655809267541856959369680428064360669002936056008898941924086259579469206357030082844393721100130578906675026507391023154275738181280685305478455979297839612133039110985204172059278326169463708524504023264508652643771829125094097557386620043051301944022009405788666232866499339888578555425997853607502754020820483037842476264665925881475912604045648634141367711535584377938886166949393371670034374804210570660203664322477394749728494289549145196952220378226432837317896620866821427502645362508570970375768096504253955623228183813561797608592175840769055566457713791040026310509666101765873098614014305982691402195750633471258000724002173210652276654217202897620055553338322267306650020641319400902388674603426730120569915664310857916325615290130539345360647554514809583430235766539744923164154905527707387844435991103428105303346601467518513268731309075820922347488450003279642415735916183144294609699583288025944177239938216176209689225896714597209127688745384823042790055230935236848034221892510068376413967606349387944655860254154004944310405784026471175518123545806090771135023260833688106483110989038892371428353580039019209003153527716410502076349921022056890100007573713683416280961084256854349654435724997248925526875786405747393195614185002623294385822272467653848354993497938108043771333991261049846892695382939128216213067363575968877899029694849570362680581364430875586136092011003644199460658574218235608037158319013697210747593055169179977963666989523258319165093556134316932427352950404567201457466285916284317477525598869272556412770973665117846353041265323338699355527038484780591822217478905217232386206515344612745209322601739525225141542636294058701914372085628192555047238139616194180059454972568652051839832944908075164174972196749132032216884559630820662761617353096065327600378586084936119453092887035395910495468954898172166790549482652800422445193370860792879626644892115874294290196878082301167789652737868701027989615415993991348124820789380947553142941788209379238266953262953760868360924996513563106189934325845431254842105251331188953968447499099070686502517906222119344999424215184808812757160476426980932704138899606611430365985474641288756113307394212085919310147885707550017376602795170506979625075544074500144610377062768661716191549223798909932928840004010202667940662854934082676941230517508645413652343269803633638127960573956824495162143860121314604704341780840793775499795475813884504429589319951735319058342278932166946218089837324538107839790796213158061231695469224297608465579513202184554679949724496932113238716099257395948925866156633549262204239522745795522943908563095317447444250195001261705921071604942478469031659492579920339354886546607040629514327465821327264640970497759492566463546776483458901302147746636232755260291160171125107137821024967751105918062056894381189953572175776133931910885351695954901435905533419620583753283944270062673402889431125577633789029417802948922591029845546201970413261046064993973484132296384497923130047995368376251464328602856165403650741173064313164732139243617548810360098571035051244781822509579195134306842175088319469814496800009396718980422329239536151804766390210645871609126678084897603314597248315015735505529926857924237719076888858141398350516500161343976450336874108145653618281828850929783482706116316384613724922086658851452462737291641533551978594568277716647495200519620098711341785436623901353414256294017631308369049936264061250290860480983945276680093591961866657420576874359050493876105941894153876644434610299149253354681727413995480546048957548148343110914237012059344781217532838844053015750168648754120124094568581354265875499828873444526482712244349148825778473042320901432356106124160172099872209224879616534448155516204168327631284332987968688135423745734389436517886005359972103699746705316995097230440573208809490160081041557725280873493360844847245487446352544998496343473683981610538724214315956497374473278167527135536212263936434702325280590323800332800130331111601876782288236179052827367909558504379129685745304002239360497241530044384099112225980333149490716277352480749366400733025658899764722746203883200921879862444992650194531273858434109478766446980771092045759326970941678977704528785728481757741613579236453338280900033349313861419082372469115741404955138532263879544593110639175168118346029666970917494077238075727527211832942533466848136565906825295255624499993849756621197488836325887368500211705555579005817479507752207726158279744781004800765193491942991518165052926915362868254903422278219162295798377940081771850426864992348653831863720794388790485193560399670442799067132761577821519312891517079040191597776183879987285827822626854094876895623939514158578736538454819619503046465048389853766094839257790259696500365999148381184498942361623906987680735096012673118928804933783779712971694678446474734858805977313663442620475498337480940298230681986872051251377011800470120342306455115374585840205445450790316512653105714459299499978330733808959419325715026411950834992639961697729581335658221857038407174651747845872580174473412044677161294795773826318430130612293629411989560851613093917415518122610730564998786543938080892514733910220426745190617045355192977606042137261439763291539138268913790010298422389248069689110352245417447224289128266541169478257171112631926996370512047647321443746964129770229416494345645616761075356141749884071258130169543915191526718438407664686118107535258891486852291577987205426219421703552888488006394977223104055420806308801635372051622125625746199364368997706770222911311454470744043910584741298665317119273488806661172154398025272327941238404650285369129796415372925610417570456625585141266428283441809476269073697928129909756911632544937451944260089441945961122336503918161777840995092637697296251171305468741247433785495255455867713894271490018855775496956357185415750095266747382466579256977168624895424235287446427798595026032598212214993705412016326618670142242226379626402066008793858671523184397710797817383876708610470468023158056190793329824582310714932014644006926992403020663817010303675696879370837611594996381356583224724904776193739117032139372983813051853242127991850272918175250477041521574422532151311966403748899959432272658711653656010201097460157838278248917882810791742159641756309500282793998270786162133125400494291659946774874038846256122609203992782601604583283529144961739408575487950212028151203714496104655114584774959627774384628787176779291825568719224886897912031452067468404492366115425845072480642493337825946160735734214544179995028825771183976883674602962335642113763609299066461251940897528140021324594506418996883306598195900331231198462610565565476270865499997938236507448798876489832097121190856271774108579268303289207885528173684486710448311867804834141927422424485218673531983900944235457487940033156462720995710412167409821943587204983530383676090480768505198044734383029283471994738405949097681312633821992251537139479079975991264698181644291629132975683112768873033396895930092655554188595934658253829246534513549025577435923397056596696927709730052022320667636843000854967002557420730541603252155453751534266999486647176120202434986432158345597229346948726105211209269039897407562269071962525340702543921714309921886565913552543686204693707491692477710189223573096200015970411484499678877077527616860349876922413823452976810551064342563051465945042391439071150815159617661105106529155601641232325141449996224799178801438974422405642558442109965072748219400743972794320842067014501699767556396381325813824407477832926173100102580236292892393592443656658761293641380589443963777179365910395508626147748326842789393144498942631370622689858281248886218032408186585785179296803640763014936638379743789719623235729427237993062009002600808803254572183747215091267606561155868738780247602177842604932891004715438286617758958402274923628697053118689039099713121319223200825789795062877701728493777299819062469919907873726260347456247995661702701864512129861200291855138805372662243356717703138883060343476229665749255233076023961626546873746441633358084921050839449710277321353005308629904599718986379286886468133650322292033796048321108283090711955334267226611960078571271330363854653915544818850195974448727330202432777704836669846795587650951960670305350764085540948793274416396379188674287572749536555169432425820749965628089042482599339374352493347471622094988736202246038453566987058125647658832851457282529968815851191296163053238751728544480120712407122219058332890924156694562029547154554425171858077786257854028350874535217226790945130521377628336622662100380350263298694879669888604686458765231392446933683751410312850369002913118101708237497757673333131415431522428069822820414700226741613912631776466961995524490904854756580541897447622164724592200426146715247416989793742246808082381143942657915297258109310154729591626199474034236234802467770724129534356301813588017835857076040226310310791114025159470229905548219982919146939230247919957307531121932843667182170966137497491332726363014280064553906895620959529422056863655734094714331132276831348389518619923463437420412971259376638952451040979020060519022098526159309006267947090284685564918563265125658572202906094575697580739009786023187410820307957182534908194696696703305414297482229646902139165426323591020176178400024537236040950879983305122839519937078203684934384018812517402199283639386494571070912219057929594515260622402843294092411430103089918181556348998989138491601117807488391339467730947704873657386302114435057186661451878313027946569585107435677524292557753985559127940079135737281073283335529113026834948070662271772437068803853486348466676262871157081928807063534633070493173212398315896537755603227503707736013289482229093360245239288258759321316133575247468028477691436287901877989814281225371403731233112105343367217686565870297876360543138260581650512496280319519493504233965032621563190013078994560110613350207076464092163917722571653177736170012566464932477226010050309652749381314941578165751736602412667870402592107944502328908351147308869267278447514785580097949925162416681513608842950239689721245462657042690290789037212309035069325910406156629697184453782101661102453421752558166558436583421849690215950027577509490987860673412668106591503091512066619382518564380202045072820453062766520677114299127638058386750811926438836878669487191657521820607104505867541377384287411543864653113927185352274159707374898717905022973153395145937508994160852074393544501468627507830539516559773338898450616351300263685458651597033390022909261524010567292060121481654012279802565866135456806631773872641311237530099964327078925691058713018140038335277159409837816667998037781083227001699351212587056136972805628519273530613513032823292060268275558096522607394628605837793712105985169538456084580570799439464969504413047420483418139650316833236470545377222847273308054391965113925106930418550975428164883696135453738012002126441559390643678333536949086939386397614075730212171723087083841025873018896937847475462298785897803249396043014090577264284834255957414249858097923546972522760011236099585550404151439361358222192944566104097603746619208397319315605573232622730283075938463155019278760536821041177588269052541388614709654258639676892146198650525198301827425977461823146439648084946841917103937541721909277749138655535833533123028282589210395468276467901215480669012549118264834755822007236340550822271258671717439648126684021402926078469293357249723316085402155251539075103923707685661659537778321546912255913270026802972718665684519447907972627522468126221637922862076504666805314186025797085109383465205986890948156338774536011424523739788172912043480836511672010480105534801072863594971400055678212418544559707499090054326621878534285232824649997402181544677260590159910468555247901473730058780572152298698344353939960757865823126115080486502091669487784155162773636716378868832316573961112005793612800015318590015576967685180100042247487466839649600936940812636512733542473952039126316408999777463698050233988571343307123071101400158459699189592679786570518027220838548214841808881789147963593094021980797498765980248859818835431741867037931070436108716291054627755095744236826269800441411802407128019114340568169310793924750359934733354015088923914392581074606774913705866184844334072627896765436492270140967471504253280565619180066333194113670695742618832868642032836141969737464724188961795916492985616454581769820029344753812922464069510992856370707063347284558642395775523953672000615818399075064284722070975718908054324680845319158735179232563651956713088464548983694297731096244903901661805521976981628020521122917528266907504344769198687822218912258383074753344809388559371039065301524835706929756035822175015999677317826189523741906140824143584289977709216218773691057650216111213569893565522404054903147167769743057718407515311054682633954195864158402754903457405790724802081163914160638544616744647812386237459790279843192601745890793382551017006507227373511632763629569889754005669462274379240200635223953056112692114147626855519929242962772112540042652214414257811077806141307526791353938083455268244306162161980806802973318899690847854383772822744889670372620269600074065145643638240670342778755394309220271908985968615021785099222585571040667067870007087940843131236938064583666457959550018394208264192725431754361913195202906880790500987910925474494022642675672318379852073409926012315773182383626321418337537552615019537061108838770275249188899832140180054243039185736677899081809412203791262507252329852306325087891075828211901923524705947561306642565628223481900535300291799738026160246658580120193681622345299735469859792918716129163112140683153467894275497267261590526656579316423553138620515357015634510870521216608512948795724453694507854940575605784947701550376754368219192615508382232514618297809456378876697618247055948454184776130908399566400472910159386547517033912880929111211631672698647282498965589144400274617865044351940763226020488087320405687402399858136227992805335004518952336046440586895170563807707943008409945960753667792499652404498066533490287285314311529232624745674512330292538800754905685148857333082575383306081492179307335573272896746097174544752822146087146805757573288248479095010279742430705900687892762443706680824280815594259569683616285127001456690664190813194344053211024497548855127074606802460510121812040194874906052264875929436393706125344359801281637558242029719794912422692928076333000699807832151596488724326140683581230684120812047487029203876797403389087016119601411225177261161740104522596316720387588103871401785107351022974526040917870435182182768662208077487395304855239215274567187340782651059136235945044749636493745008051536209103813603327201118060161441804036802234725726698279701901512395761694061990790594482114518035476270063070637407123875182688309301145862337924359686450964154819842755172074106543414951889978378265902437305939358510278569090659190714729947069984812641508319142905689064124786001190964340330000509940710682732063942571371847080357581524787578466593420139229745083929781041678350728063286286209291677025738303787510162269675900714444946896370752148566162340891436476602388674460562592966580990716467546489815876834746944086367607116047069992893185649900676432471962101073671683867597337357786608053301327347849005932689809903760569792633438214483085993729409901288192797217558108077998655565427321413313077829205891164780792775677920829481086798407409670496373223355931720237172595647262570718014432192715159372375214148439447863058853218165883679910152412376654029060706717048285993926273741298422012969763393476758950849670230762090733868563424410863033701018827681660564898857619661215526417176664510511029706921735616597766266680962291083011109776976252087668417330932932018321562555612647008497345024271011061262927329371506152736955590331046650187328997551856118916718200562649090481793590520732261385363066764893302806335014966315038508208740526980922025333040453598315994900030235824863890527348691671377336483185310277638083945752945213495326505971760698799433946057576094721367225347740473041497032341174176493653828773603505639139486196408865138862842927212470005986042129907777076494838110051218639317843010491981333270389700878230991637126599702539998584413464792103680915099873408067694616008032426137589540894235268756791027909402291441872593518609538410822556344667540440885188425472114874861866254279268245606964766710424358460270870451965609935986894079853134180459683471068352640162827147127053617311090532623555846729421168913420250801473847937211200193809137469433624450262466914758923985859532694650367006793932059740776102634602043834219782033573240742222547826443292432466064269480974171447083360667338149521144727982851078500015091379951007302955991427687276831280319858019624321311799245328861900036240805177437732228890788433768969885879683692031532258311127875876451075139315215391746688035412606070025784588196752230150807418195721057238778040557174363936236903495916952099707947982313227380163216353578943011765854081451624244893035080407272402373378995876317487107852303355830886858653306400982558872700687719337134912274189806658176943597504941343602812008349453266243335780947500332867568092648086436587426957025097174660013112331790171834977793111886475041468271529980157212102890150559155625120541219333926966582020792346734561737266366131876014052245510246689985789587182730999837041360077374846617923965686214686707077492200674868839778568128810655557412325439958656391364944075591759857818539638110027209318287745406896386528688296988150311924625603880048321427755622966113743131103836180206173176684774982281839111904336181453659396176581971824268364672865827619951650577728946743018501182981841817024929670090469345445231330576979653491528008763733075158168029809234261720628060015304054214172070459789730493052635571118402553718061628768536635784821808237561144105487774949908019497606811707049897727926016356400882903839195460601481264096564746877006588015412507994895423181694035133944014079492477098904701811958008508749990346929757407989117824038354519350053424765074111908312356636074869744692934863056452247137192513386510075954264808010909937516550626442528364172696138437406510872850733242408348060762936643735639304339814040326516114702751121848808609062643822329335276356327581380185235360169025491849040860294969781101923647152766185415370832957564408867620033941584019428241032429654470811688893361068811220827467107356891872269009480599134923834852480991457196371654109220333621343614280752067485440375002699502936817624898908888132749199490674115843829079073031462292629475701567270670323648357332369691585527475557428625502198392996880105419963662953218842067090945046356805103804039379597984859728811839134263514701473483579672289099955282469027904495365587758238533358977672352036773429291973708808469061820389861231753355786862987156775607229765349214842565185037959666336480148680517052195764606276002436410078863851006966795269128016074945869216343679085373784844150449115760157308403984637456980426622725238494233658583030421972100953931748885143099901414036946353110508300682070284560778528540717972118824094209394012985792373588597281187061684628280013603365380321834646402810275699376338857001815581237345359424073239748914948111341082686218618098222599627227705338383514001092509229841330702124720389962250071058726883431378601973785678188721871943070618762737080692073088719184306445919214120218147562388340968872323812194893417850140690640292773673007224549026565132018636063778642540509813979797565223803080156729990612778180921397684878592150670919237290112366505668979761726361879868885869732038478186307551881089402582188652155876445295385558409317118519751413364164574679747005158339274792567250788241194368873889270225559391759031623355879183389139542756126760112087068897767727265519090027993221600379527524555148693044031463632116150462457141021120400444234525257541824889573329015885192073513483455301842966832406782128653797733466593438567236124038464837349500371794146377719725176910576239278812952406463584529482303211565655525494874741552338944535969423051405791707551359547951114729316848524805077893854401121177392173721637347080695556034547657267469020957705697963712547843668201108289367262844272086034640817032814948362687280781860360716834692034693005311512159013102591964332593687404059759908636975169964141544985881271731657192944419615516369540628121776871596296537221597244516638703907274543366726326081610054036654947838935980887143135063260205886225776635896132747651490270019007823348333648243493071789052670037654548481459237056371311510744557323745377439984971418854602823196237581183656896332153319019874182861291944257355042154522415892677109103817134112152317882395922051764006488838060377052894762130012147406722618940570579067830087342016993838394983829082412371996547294828763831591516357760590385314330689198747716871647612025546375182854299255999970992865739895739525121448733408283820547631984307573368014554729972427390121285350625084105930719140753912571442441019454276157462096649973417394183064396509297547998181387892844983663103399541685997821692361775742943025786383737463248576534867224265731031480196620813348228775002773553302945423278131802358971974420150458460860855461811385852806328352227162314177370921037180282213678994110373498384329533388619470605654534768816425131812657790070673729739737282836055310388216129757220669518894289073081178922521465985969919982020833132708082121378623145995273151053471320500511146455934797750167887934355732593775624939091004883258332186779466324922823902557780874816338274681751369266553921249637062291075812952674936520630642555678784352093218514626326218953194324814927238048746844026140411051844519547986924389736754489438667733325196027693999735680844133950799472326744126304371104969243827258826462872796630123317649221975374764499512035825611021937511102409154719786628586635355206890319842975139194333682989051956898447946061930563534677632693535228314342097034170361930415880573481529838941686970709538083178846916330868133477259373602857755577004603460334570678066745852388178183491188756149318018544464164674840110013414252264692297064438506704101875034429340924517868515765558344161053971176072824120411070471558572293380677272627740388753631334937103946800663524758186302368669522190893181346263221812267841469999307785443118933047136247012946116800145605014205863186461997893202598213857306893039163689347891381858668096224965384008305990177860697968968129520979842260226073780686852446254255181567396667983714489056730670152438428141738998801121270349501696709690890516195119476790856637549870882917754836886235544969651898764282532416351812655819659291534353420301162800403725669697207727859405666500038788122560126087937262101370590365050977573969016781913348284360739266207457136301331247905107992962997069120226488241575187715684470412040908019829914795249007933745833062673755757067860252459554617744742932692753679554679164431311103477747590534072132996429058601582264278199117618748933986215513076763889212148768066018618614540286855031754698441812916648122196562838337286092154330346637337272143069381017083834075407912173674064038394404778062124556230815149067426654254798011317628168434993121894244121391312406962803389781358195075937193539396765741016997419895757338828456223407917567802634274855684973823745648426365758214361684190138693210481517436122971668616722199705166770455759674184873447321787168824062926867245479320807356412142042256445042751493006928385491361554706625621214501773386759115404142371937558764694451579124161212635330944058215127772755910682117903526840839752766426930293635624405562306235183842729127433268374675836549712427253895790984042496279508690858447396115815684269930085819615523981863943519157626333883398226193849517057670405256241436946312588070394016794884384689031290612545190363576974010157496539013564800467031850267402626809116336770708965404186727556555875052597292408612133944433247325135298410412445618660740032008712145044435734000182178114664517480067584118104105140475673531036980326923449161895956927421767219992243701726426259584294509595200061027339799875606323650310597312427006338612276324189411414638067369556559018125848111979413301797013312152822571849773089592300109273508021494678501104051440299252763783563373124733696041842497275852613415167115418884980131131836782559011913208424217156368916422264815209695610790616981849661666788120450844371097663629428607363671275084367085031005178190207101291753816626954632458578083375790062737529138126088251362089359053733378186889580429088072194311908787960267869596970701607726554811657857834868328286039758005716699793315227952272447606824767073490711384661897396753973183798264824215797693712820022448764917024133653259943527092103365762775783776924058168833171992726329369395921396831410992788557455534838118834360813826842586155516303217858558166796980479233017426233649222458479115735821945543358349551403579365818605699305208569272311025591713944537794903148389375300269771916191612845364080430039147830640406935325584752524902242136272227364323196137085638100714069647437834729463034839565214272432113554761912756181476688320914708471225827472231422013495478780616754367836343009427193470791336726077168591139922863313309688457936096270727036892099050310954094826171019488328888589875471069643986142322106896113831818859057384922926537931517578942203143011580176900352994364753179253107941547261742397413710890185360579720251688627388060904035309805909707114203339941798282296122290504210935310476967014686681398420055209376106435785073001417750791006430439927486297228491290309795612717100068539693537659257558422838822204092394494951124140941122873489855789739458374045365946876089215001504391932687169476821113088173431180426585759791826161675420948253404551284247638728321463834175686817081692149284052550790362811098083868924936599794025757576852617073340516966432010649843748050482948817163778856663198974571816249182451328874450048208627789696610548756600230138924725061056321674462732863113588017818086884191076768051272653849521187392967826632544805767119553973129005601396365842054334484568270699376450795327437526398902460135546879426619993122618014101638096746959164482676164237909940156062924491909408167256413109948492019777725826036983676768495011365836039940595119579637367773329097272752715001735154059775257417269885031304375920845245650028344622873555295695747697917592289263286405599902086584379103149046598844736034698317795853043156740266828813476743709198294165341822934674781298828544998250540565592447527437905360719988143003279164833583530748392932844955560014836475574777078159531761718956871779291412153998251384970203773906171591174684600419505062323625404769953916928913958562324514722351020073416316526238321877624539714298198928255975398058730047465121400551853910443834429499889052779615875144491443311371882198324947239232215099645179474931157723742315540790065117771906756913672251178841902618463995294920419550572250856508778755048924762279721885906586774354605369083319912738223178750362482692860209337641639074794330896261648471359315429446222142777353931665519436888518558760551997668907083224047351906085674281613783120853715286967975862889099074384126818837254866157580662583118054717165059346472448556440199991845973004436067149095245737595809051439665657181960583123284832323729536478685255280430767197674497096691801132554692304073461905371685752551040109809238559181634704755409643230891494181170330177049746655450162195317610412593246117282133701188427492121710455216423824455155749080809582656103640787511765016494541550091163835918955082979519542592025940967618674746028214388220618307715069348378461241074250346282150150117803773067811570865224895869064311436841452322769491574154804697995181235726043985114951165518088117308253662962144071796902539736497870303221014435600813350759932434542265419727939559712063204902241902990984679174551286775621769410528361921729155086431443714749636938912818437059542807368047129754487762993440294059827003048021608879083311781641219641232478784442989551867471105783798539805500986223810951912736712126469220560772341874761349474217941425354025910861846718641520588331704071381357969542923506221587757085692178264028499830378709992289002244874145348387136716752786785765251702546745356778047699978852653851153394371098881342331930167145091268465059059968969162357185102357025767163148750140396218079857676947276810249639542385190332861472453809717264065856171895412949032866084505703976444142986552409762364834441275392784978035191782114445047490174506561204251904561379070977913625063658965610994771070853022697829541676397877850474584798834885479709349109466140393355137689516088892441693051742627063082081622845792827439008141749870756206559263286590229981363476506253424877923880322250454255404500536798982695049042697364346915357373173881200485636586794433889062790510679137125037975408391453127835012590074635715199298045401525076725792573306097727796205187276214223271333445471935249697587580071894305207618511902374861567652335895007663816842478801896376278959242876660033589665298901806571603605596922464755832761030230867033385148293667550101342945897665458449744327250185246531785497812649763071047356170808282670960909425204672203515903077728293970021925191955135339164331298723134880299167318093251503976549592602977249257937744774403246313126152489045058190925636568898991891924939853000160929814874507814991901301633149487386453891740239324545616088375998642206239626779866337496467454380080618569429918634040471315651704001029867210467583081504215528396218977958339302880149489506675416328863327481863289316651397238564304464430890233295032334089605256927045726686283418484521369475824540248664472854702792585035554660983297776594269858350623723673372400901575905508775164544768368462417812935252901914377983548915858391402546655368137042833939070424505524978187687756259519636115465058391259359768242923864953558050986537189408179856286785739703413609386270031815453465513912432066109725970852851549702864728761950203367787145125992631446685179080016984278719179636726461072529570460106557785128823732866061373532509890612003967628422327304466982481340959852477318345026204095097987801877876950929746459272951578574203917151912948701160713893625990731155768338773555975832986620278435319585335356431380913755355769117382064115979492475333661547294493933640551806594302403432368097201983749287182943242440317215312898001671293523377114058289816860087854945047621937004551569775488874411852882647808671851223317092576345136524762295873920797768513380698905910869199741871905840183462859008435349696689041336446375861868506470168130966485153792439199713674661724320209656946849361246525730256618860950848447300172660362247665696976987486531179226684755935556777251975537709006241681133821858144922725509927310505643204322282386265304504994268401707204536204354147632556700361318210647058871671948304408336895402169938717496467716664917577303587580155911779911349320716995953126251411609077491245880429647986876279588059083334675344005125549826298077490857315608467618837601927295176899102910511301898251609491008061937724819915294087283392877191529306361459925075732767142361882484555285580476643725644821368149933052153092105832716253672956244304391475616852738330492160285588733110710473079417927693385740621340233888351415481030421863643188719428455042793565892443183530565656605945622648379735686302808300844739057259948290320191650912561404203792281605375283635341256258158956250192669816291074541397162048287849041083611030977275534609140028603212132368414344570657261652704127710515157813318584837259816292753931326838610911229939412223695440651372262931406838812499625581482895754462696121414422067458211622244821090399214547042644030870672552479992465865805028256194724370774661303450972625930781212134862723394933698572095214184555360984790747894933844209920828685843969488375468340716774698247944458485445201994486563105357575565901165715764187957336141518502163623054400035616204887315468902573365141219291825852395639459193891848577018616234158155444844927414272652917906967328946116566728804889738320286622284361764380818465996234511335331577354573029656018812093753440429956389429174756414831195961091421747176328756590107342231097667030149120378573875462224987422423399328426798199871570111190250275862653715341214325879550604397024914233527718193726569716029440442338612599106388780396708466735545254308331266649751949432337164855810406657259876209743120620054297739678360346775642594882698152612629927403524509935099150331119207175551914480598340602750212609215225143360039130561579380315161742664583940181318020827293604411566606904535757668970442853492779766508499189212545238569577738410822806691970075551898101733980071229069721222560313667566624974364464354681996735257258150434083145869036065101054636885304369135000108294443847095653039331388347187189959217449442534024511872098282999652847244626691793096161909119559149003616442104977469823187815946417800636485812401141135492460337583671629096939081432659213972209140392571565231480446409078078488195910836251265958764544219772698915248591632950484886381452317017878213318841493133739408435804834243996712246217646050527813929772095825022556705778893251425192420581427427696892964327622417525613310421957820388407783245226061069250444631392919555848649296589518286462733890147371900658344338861644964514348251068912668768935832604969437802912728008606011781534513302718859280544659225547822610928350315577917597752083048072723959530642393538772744594577972452334835754172005882140570682394168001320590519193640064561673343765233547652354853524401378703769480414011989761282014822651944413330740856772348398019695411417189311274885866097690481383876813825333635733042554717156993893974977060133447262840428940109866012668306442840113460368111489153888676045065134824836566167063547728838868367399318781896714663134041420492274070119216593094909299981020118977627396294550623630622389687872162908313197634746635236253698460803841449497257867543075059051840671113466895173854347418216727614617694797117479041103868934062013188280922007584347840518089418336863380779482779245302268890283953845693017883925662368175310038054920345765835748543424711412025008159039856750805528595175026081801205411889203334827371397821922088224071596893318107933698461125274912789349586062610173004521601294686536093405473614357222527005165134476398728906052957535766578228338984652233288191815629955156882803597271720315569730466313979659844982851462558738591744981349057776474885458818525229703666309034563488419784862959008266206618983618822976800342337266880666439161466864612471498767735318862635723835080288996410156399359202270231302734101626541159277400693932567759944651250791764634089663502916626597919095802754716454672714781793055638413687431863031369920195132738054438860995096790983205186724752557271547432553117677769062930627625952108022446056747342667974039793525410449454057925531990616130563253810017461631319431902605515643739717977697556559149929349456034294734696437845199767916328299658172596994251141547526981633668954736838775390092170297167116775858464418512556458277068621308996924702538994314147535158143292564323183155503096420140330996677606245496638662899584985259820849258099869705001055479081758734612842973703871482092627968219348865687627131272788472894557081231802652193157262786761220241702282393532066226507162347884872918840873959232770913343487313006250284727196125925174862973260046792359654647968369352158789397489856364443341476909233462341488083830192426749135559150235570921364485714642235269932525837442253463589495358079939923101218596904511467287301853782927447894235923424718722455274590187676374880127387708121850820540152776700362274584408416041566464443746929648922989592391571742111752257186150498453920472303873955483992456679435750217493075601806585124342935446275401048157623966929859616283298492764160184778195508917042175828887629182052557552915107868310365427065128178080896585467142795238620476628072883173707334749599571311045977273202415660022821220254762535109487949431795133985403493022155803520958561040268293873320238357914764076892289510823907025777823870443133586774842229831395857865693218146644923084268194004180347038214613918698542128068843393062363422919576183744007156386141968898326922292311260372262162950351926327908827928856453875598065275802356442089969056960279156706557061285381084826552202691772638307009986719766202417352186462600924205077258161381867536688231648490099170887647686733107423057366856434154345720557302280827098916024203553385733314175456238205768578430413292721719179472574376512629490838481174866257743501456459740523135994317846541423917350549403344649765685565768637061061320520196990587493390963659395979827717038705534402211857618436248385802718534722718264999857018113321390491610808839983098130995857709473438451698592897176194855054882246797318319211497079111860439144477066677173505230709226371441623487850451044192694546609746301967073238146828050848480965497402514345157018651495745104797501903580408804166906568289120077142418318599516034156827246118956619304667969915061094780945408213581109477578462057092572757850368236868034659797384073680397225847074226716914188105612410764621190795523848015625494359246662172859058118115013622108712719858998732683907074588149961190755745594319640044528424004597040658806897586461442323782034960504764209947079527353056939087936080049569361648791913451467571235391016249931801045932509298219691227092321236133620500369949691513490865212593091332557621625956419803884095269850622880861319762317989148027209112487260046846498995347393915379263880268998162206045630069800531757832888809478980372938054952445490362245353633310870924950312929130998427459904841148924209987515625526035323746660637316912330340614554144180405236578500420962107370265237718782802602864413555570779930483090526094233020111339528876127910651165449097020801696303467236036307885760427075070126624408902245982677071126620343831057693312993169417377894082938070630984326296654187691041395853923385959873437940652966316291718393260458247250354401553660866640877976417152725100534682746730192987212838682529866590251470393077484543868762374909739419309915225132944189691905723843863123438617666389633709400101280818388003421313345144220408032337985196449493074156321041807555607328610298366567735140351531206730118831502750070185053878778875842710468113508114250688959523238409558237637552648309767894201370984268556276324313465002416241995457671512627176458989788535932951285474933678483759902421829045487706337984499194373109583358905971381413146589303118698064148031156813708498525392685545132923415112379507971406789022618839917436200908858004666863912949352016902383403940035215224575701064642744964730025943070769486014280365557049973391778356844673378807046524040879697957804854595570045079245325108557184843000201087886291262846499322847448867825148368274766282853862550108808922916211207890456021776942886775911644593517641632638656190465382393258922957311859154865590572805168852776086357090093430840419602617006649502499581292965028680206464067856881846435772937894805253915768601937794655223592461146634498931066091930015716126921473759251490130780051713298657839031492184487948545747928961753491575962441702072822645493503254287707369211267767417667380038283154114959012408684593761290973225413564829804132977372459632090004810128517512243095994249012922623100943747567880172651640096970741440709931731203933211821334297218518505189921570845566663465628392074023807672810840004093693864477181902056841109957635610986753575985392907178099414766324514822758864643472293461963302737912772093086089526187072584593596990140759127789557169466829298662608406686967881140854663259803231122769704688770919711045638070266441222252518914514677116938960239560341760946228179053559994506739719123795676050069862463622603648366190014136398083501576049343772649958288700333371406293406068462788316066188940030685120287300822514959717831769448325168392541930976734903795917542569751198963683273302045260492332402782705660329066670316913850065185913120276051415229760678931200276447399459066198812413074989327798097686290376742111004844626574381885139938833477505073358381493435343731277397474209499518575461670041678257133940484655993060179329887985145290739492413583617205541387099497786788395668476796053926509574826758937976379047445281062151595304812684617517846585965341271887059145039691004119618855315747060790533742171362767381858305702931730466992927967054243320404542200130145991027593729507999881331368430946769866688515596583764540452885722575350680399309062187309849308301897555086761861876575770620291631220342533786823656603986386902985066134546363172984690853192800586946124770991111796914427017065370936137405103931915223488499036284084384156028544044136407120868906875187873590308210757791482496269084652557206823781118117109043237029251425306571326665510997709755390426609088972331297607562687612301776481480763558029383280694572845886553157445410396452255253585214657779554483899212347279883604032433281118300944789616672783127709419946864415916424816325140895984799326720593917967506503015859337980378125972590068635609210331299532711813036889801685367679959187094273991418435770634644101188581807335562219671559287888543433333176035894172601557092266092173759499975074360974132404064938342585675731254057701263168449197145181481201001866847088253244982245664330599563525321549284871314252892552436522557401733815454480428077678360821043631528162373958193336263890229453057092126349953035725192137224974443577945833152420477129241557591778420658616223389230742661586509611420492395740322270510128688219978751042568770818701412949672992672024815027310210570559457673273779672615377677492627761061790283942797096450891872736791865667381058780696614349286200139933234028930043153309751861328478423068653239206138616944598192418439845582742400641618339195052120722751692795787205189981440661197927591875960406076593152314146090268897496485483114565898136472713518575025650610583698725698160396475785310681356657829895105368272857709818587335427860057902240604309954971273583286537319545815256287881963983706222015934083053412893301763209663299577392498346262943465800033043194821627494220460340408182367243162410895352565618455236831601126461477266965101845812476451282046784238847380793631791104384111497400373026805865091060878126779637405758145489395561377557855245539997757362886113663067497459336941101362736290468899117186434041103003201839245606483072550734227374589653811923668946751467127465954789188915121347369690988377300063676426570380832449222262138473580131215434272252248726810343426280507809883647275759898601043649209865856119975822685757228704659697758323977181630999043498399514425289298681738985801028540210947597343300339223359566384616847459829127945838271366375555545054491722818390850525156644232621705175559936845995912952835039025215727577265714211836145484598720034667037918330422441445460383008254942583404484520536034643460274228687059463471605913024343777309939211148315390288679166013930465186251832060680498387876836781971985612525318392653690557873615582789480796890093866637461448731451732938422159663000094832094314475401888931029428346812960310418204269414050830364733553610824370052964095290297473552372013750719497014583637243984761092596752170947818497799504987210824933395367004040163488966382381804241197614135715832041840546163278749709926076900377082328799312744499355804732191364264864176005304438332910194337861687484199387205525390458851440801235794540332062655839555257670977628775846609383055785556349260943056863710833935118733170246097097482043885010372517132701077312961085784430034868714204319000885866008372903759803693354494151233350957365795466764602297889898588790391031098478665000048960166640258111440226537802828029285324092872392685280173416198468318452667052121420765394001690947973620946403135802192615956181726296209758490476395301788138173083255064853829132062760968367477299065620512692615509556721061389943776281692133513490074394480931740309480164443333062289130996312434731546768194814392116399121180404302388791135172417169354112200978719611803090191402196507664474599190921079546361342177839228363400663835987811661562679261579358902166340031476117805355896451059921190137906279472198604274352719616960363408055394728398920738392119346057593388906119674743708369550176224943560926647718297924627441244930776174808059466583725525225010646810262129233949725453719778782777450593767191127466278055947983063870720854288859276061739972188183499869249423487176594651695180621218637718211313962458599747407094086282864140647083665539368917377684915054187183549261495646236929670200378091547444109068947563472477548194253928478831655094380867217884614334475402175643643004015634476208653739331982664277874461046451220916774463854583240477188000744711671862918245380364836481837663061386731664280849683639155079446874483381439109883604175192001833598939723551134725151200419037673752176555876586691410204704101935264987659965219386252083908595169412670627832519019286083088912148052397135520849588833654382511313966892400882511921878762326337478838664432514198625598592190120999869851515350170242088974845247194569212427195536965401771600634332730246333283177205342577072122304012378959658318482181288919329365386000088149291242267339112130708534410554062941957958481459070168364629079546605365979515341585523412402472087395312562070799602436822284064273105575674908535771999519525587612433193217263810159570754390117948927766861688730776753201743482701959969983004682280361378786151263979776839319823423584581096836151705043559082925549072030995041725818945995472319335621345289813591156473641991964184106979446448019089131564174105985074465925880944454058460176494833360351089426973829684444124267538775907289924190892296082695140876518036882034100472166276647135137763928811547568213712925854004009064352811501415415752825644357069915304257346649166619686276137615089772575892802534343901269497265496309320193812308668024532066819345628199040732750283621811988240712514205892749081373130938418576805093608054081542166236056938851779100355654945725510668010666444651044665467582236760007862450824991511459033286326025167969206015202411892052448622928357849553174530989890524867231437482167196021988229739703867816070666954121466701410545689071554616073743050949215057586096953236949451028582662496297791709405600460239284432380006921044004774070390627499298890339668525168540298779494627436879786379020488474080516510130945788140962695067596062236399652437914250255892499451849803115604397581073080763368517806240309426762449982002880324928917880430522538924388653489679241628806391060248071709400176633758749964161085670633537112989270468386256193770845835411932674553158214267224933316810909983486920603452540528322160251707598171009712113838935405781126796027691147702830540183764790179035201724540684488628048358264636952161176064101283190805077683217123317150285726036227859188093539604335482278821003808619725940109801285125264085876568386998065496539950766083871438938091739901612124661898268472574138077463163745035101824363517710842784775943179895607086278988777316931382847942282944225751928423533632857864436999468290403720107714550044768389264184987431042323085911828526023345514892496390836119841387981249324418170899840051780452935091404090491761191184624119784497566872254463757526472106975001968389004246523898341035760359042662848679775189894246809292339595159203543142990367488112541368492963914623169204629544707364682423519264955359907634147220260939830353914842443270606781269849311309315555704479268605962184818714826772926449593493971088419852341290795557615866507350163204031522664487581121407640020624627178859256391185866140423660217094960231462813173771891510736896702541030503940435996922137849556667271260724356739441607262580017755347934370892679961962031495615018531386108085372807945544337680708766699587338636227728712826695841786549368539848234363339626920356271812024570556961455846384481590151789769733409950625785130905047816825261808449868213490677671121072855182989100366725510739079989494529860502828187239991374412577651239039504349554811893114390540653299373405001203713106931405936583511712480207800298661010409708918359520586821681142570340651654471433230661835810146691663270942583962299345956854729683946653602983301908469431703289102659277240422448435079615039384417020640422426785195197989406020264471610965967507529235849726982323152105975989279961485971932372630514673098619652522318658812340975933749482836143924853849552939932659142103792966883143353193289562684324166483653643719138003368972445304937594564489841117159046073389551453686173447529910386772723471568342824263152259840533741010082097416219936300205397444882715219831143686601214123905978088633407286036029037710356748910522836653497560624237022945035299220168785044025729579695615219985512640557609551500185083538880745144502119236151763738171766541714800505274023414827029396814803081935469885041380685735787046729183942496549917023885229654684203645233161123712834715915548718557023866466488631586808272696805076880797558823802281847925615595617372050685048099687606696139914799153507751531720053861470283517545675660083617115258146619769165943865397836442429525482599775454434223554952935129747239109688110565492721760032707873270364722652001825797289141160419154069560108269674757316524997891535674559003399652826368315362945776377599302279489987103734861789135671664964852221382818280563707084320616225827258039942599976573203634435018390389922813191830885460857594836794525957650250869170729178424419648276649106985737319999313198418959858652657907045426978761612610780539144579124489347497092722225523482820678848312186127275156286193116940623868854499376945659553785094615340564559944793129620953183047673440123163971265471680371579425817132410658348512613946355219676772798838861000431889355930863212609921662275844678018629506756855220521094983855163146214612390916228617092036139221291780984477615377194245354632810951626168828984221943052656409609446645403766980155083839358945617745955010509434319003050446829506944504796921004317301538051818760422156917744908835198556431195420491009886746672254395472674266550794984368070041650832801171428884125278547940571946710164008906958023562977824038293287607872480463994100782538311399155229620145402671723443583979895073796908540374957684944923587085453286621969731891939773987946604201053828374981591426781028046008195361893793639661589962823935774728694221222326930874407960203304188200863962740501491723997630210951367451382541909841247875258686950657788426636115548680958076791318700975009027520399611406457940384619851180486264874978837071186306049777718181873695388099437168342271109563678220451665950836508141683586148993053447958316816163885216439473952275513370349954123462803652473218037957952546868656682862888910626139136044499183346228315215977152492614800916173988155548384872541864534377547604384420035176731842634258691261906984517430464945741572538282372414640326544953873618791896993659274232086841546728058987933108511402941882448247932014863317412608743406463036313812724866054421948527798457425537144828008644125938246475579760987380822372691156032081277095012033531001457955081589273638290097412621170910188854743496411204829003301788336017999667504999612640333109782591146073980812333024967072671743522577411992105558897609511355982865969145160632777407309120758291431078944376811570695505158476676308083561839588691671584987610987099818540607336099911648452342766027201858307381070851634375506361181757013312881140045350753393977572944760422580623235138149409805375776804544759133139020973813116891706155716533320060986644540156486113265628554077083280361117115472567413817110473621237483310151426240403109501659004367444526167387173258902781144257860468132396384502548782949678604122909639473056443816677220875398878936772346387079477124638564223105202282474433146404427756802768638006821616991744376685836171039834768149753215617752358669086850214140888335263233906975180957233556315391629199009427888224426446528622799883807486007015722064985636679044308925473072151686018695296878344447758113764129643049435839312571920214481658885826747987758014559770030215388686193441455829299247565462601623367763298957965534818723487035323333338561319165102832500251267472993641990925045828463904346699879434501692204088206681496729560307369435984390599310010614492201702068776295316396290257152524769513675734146476448478398775318618904827883392227075201998677132785459314221993065346786753947064367440247771154318195726969425367122837258431123746338164060336907119929907768277764923761433168561652933957297948030621547216050806157624546582321175222210175529434350273074427000984521908068362605408473130779725138050529929585506286681896233198458573043475572124420994801255558011625867993505199075529225890753780875935504915484499632597430482900589578771804893911100085154120442710997626523093441650041094274505891089154207136017179384612515992189698521788741448866658311356920933684586840618743616604428509934612001740343679272464244400893592146103000996582273556150393906296631534116988530026811710167258264373941552005447526746720113215645277693685773001346036542301423831729754676159934715455649415826573818539336049895694733766703307519515532533154083273320067360492107385667644049778635831881070236298057222178791906010828086740778256007175023049708294580030516295048013795333516554275296699308611077974588214731813239106046371504995728339362468699815500302967723176682067761028790783207253122681721809182766963634980322544020326038323759764717076377064940192482715674113521971568692038776689296057901011509574708370677479112246653292958543865656297495146746312490657832594078296745215973680247122976329455588933894491358524852290016992249377700802712526896252900583778269171469268051036122287721133101086848863650434309064672514485630514232213764835668519239650732797785622099579347290248429160818925798185493007868515312821118046250700891081282618939287634237801491196838196133166079281223433641671759145574235727485333090717599738710099265981416593927236931246958233798503792191222612062925750350797001776005090026221315812264839876023334643076000020866828434318292498883447800000238148247411110179440636277613782444111754957061759291750876586135326655642791374774104623399017722334812587457365087009184357040515463352484739381606371089211937618437413388283318432158696427939961521217164946681418494433268305424164188868612625479090327754325199262064922523176685719133970984965048007106897790696060100029787094296877586973330828960409798681993187634885124634059326753200709991744022280840513235085074665689810693751645695657656697310758634390461420943706005362334377241116815735074370388546417750640895419908143471892235114553628181958283694663075949409971133203175480642499949102284597333717879316431321009865932467065090841333207171698088198194545381250649765129769778278218190674872037483498892596420212572852057857334522720961401497950405560501678430437974666046078264487742144902718310401918984873851948531931634746143593943221942680929179126808817162144399963919424946876651298613765915019720828325543214103482178908168200155520983717912974745430523847049547703696156609564979946122259533823314494626908501604830677018513406883166547878290668374397421347293580014839439089850131089586797928684111265719128328419152274406286602243780257993337601593193496772800056120400563315966715501669541861758141148856855505122687784066558128713682098469843432213841441117164996569586838263097061124014510808110452819665166450839244131710987014179285657360948969973541594699561978070093348799331023041595690182042377872028152179775561963057694961907917145185250351462307288954367239134454074473263751138015368868817857625934159215444512000265508518866579008787260803980856426968022214737515593267892939287064300378629364057671237871656070010836342192319931077107381184487345141726328543631074945748041846405323005683193533430946186348517065549476950621396450720482873754917383648573003837825043413045758114050386755631423870682147712636171720104623795338895912995269461335265623456336185263635949362051927305036846299270093900350991187044898803171175285470942054543149984040233383607774640111525407273037322571630093287178450340150558153072208672474980983992030803888417163923880430229100430266508769315624549578229731160894251119934171375564953760265118596903455067213440476643188458238837110909549106055091932551503986095645975856996226051147250168486255501050877308999945503157907207284057193476253750768990361646849749024330985542821903899051568251100480037992074766235397729859768374150927258951567306728003450172355462620316075997142251405050371510319011000950000241659813882861963025312201082592340391073825364713418495695138966420677331573374466143857494933414020315373670151354533081282872481557650856502802409619478381459653789548016459198161311749249704610652042603938612360358780274395024467143315785155797838029867230767706632523330614735660443733076709946567873096438551998845672112815563507741645407872626865634885118419834221824502174837670207737319342981298220049656222197550311608824747667526688884383449646042950284921105211072782317092980723469645452072555878855528073464888982806977754412439469474852174978638155904447732700247504384658578333243764058464127360680390926090621631757717499360332951081707110634779425447350394855304019892310042995420195169579986197172616794587230968253113500266316233007426589297488285297503119837712415628974153790920882028119984943399792193894725145149319802895961522655403058045175798482828044674714429323516216757047366135320738978221707728805760242358452981897562730641269077511119339052867125343856713152662776007870860958902028480698023469014887002946339752712824236589099802028365469058714987474778052243632035222203419630304534005559411414383558795798902648145949423632435933158177878826204495934824939373319375286922457545968117024062491887141187670540994317794590358888039505272778955649326788335250710356295404400372445133412272143083566834309821467043461702223049693752221102307675055214475860900463976098272786117843478691732598471892743010983272041323351365713607605904491297355919520218422485787838705778495339939942512495084125396026761735586235758590303904271904037195694286095767561512306710114281655230564960726407370103252797866632936614272528675629781971069434426791586499186429738614626239594535925293932557196069871754126037546340319367219818112987629230191160932553195519609622619354717606095391591391685386088588441447939973850255340616291004963500205163746388992015528817228325789476498695645404046133539770804110056280144047214571695244385404632076564920367428952827023189436394406913108705108005051195916102800526074992422680809184399338220145855859806137990038256694120756036397607968540566493238817916613644688372265451540659106611649936207383817434795587394658262522373888197225543801283953912330880663959252043358009754439440746960075153806530008372499168052578397461381263853635263382869664564446840015140863377035202833420792914301736550798699437254056375559576099874713919055693245538483999522856234195256768610779331812695136356070714207893555908238057494545953654532606339053618093541505193702592009779733955005328761606020538357905252723970787894922953767710771636451477290373806536523740517902091178481424569353467588728804045042886432239247377767670518618173510678530676222609191482369051727030659232608972102619227792205864316428267593728737445070236099637785898680292305296516846270183523241380984778060077601047277351493924437246068705729556030620906352211440183391276801315569152237868983864003833034659001188827459434159643139537837763710244781314673931415897654430111386192332195792436475478980617348320131976242459067971558033474577834324284068311375225528885552307886992820217939853419692425114955031681757225477287708133942996619103126879687070027386596458194373195641181571967482883873158221325735407235744591221641431170835291319370145373923628009466861877012026136220005149644072071612413108036915151328818363935214724744114781224808154206948151137625045705613313536909400102346970436645051539153824762002153476341013971185723113243866066572490596917820238858583938024208026886053582709378895165564138167433905402463496095511855764651700177669592374239299170921563585719277973716640008475710961204816191681280240973237395818379867962220873067720571850551179465439036941628473751027835491199649013150583727382135315326131966799112958576485389229737214009358288444098823274788932261158677305967741549334590234528325450097695119957768116104388369949004460304483838596663775389224625043329285948358841178048098518648656075725873116576191363802983489756349702454582850983449054893527315600384583105672977152470968038347908681379226933934697856971774145801675807471034907727255975584615365009732285599326566779426127354041140660606237285440887973541062373160289681247689563990583604812050176220006304908996244914798529511332087811095999588218624034720286918442713144398681130103614247389123090235592516702457848749103628976897427325432455195171866674922480416416630231181325313450248337509444376594552217000730722478289169075259217425406953503039399120463329343694742777291464087129437373636832414630052914216615102674426308373615578855915988270543396667597313267646493825288614185930820105035223538236688077537150150961586110181848908275628290930168232350001812863575836355960692784205141239486466089350892336124067576901230080800331247373937502389895283006465167754742283063983699342105047739370763067466799189102880073404621388316724964308300392215165493003844365861182687004776216607109981581003709249716118126539651484240829224548416099995475871816432541228028475941641618840269716135180678704162821722711562455695078333837842662433708519933932720913596387905972785595034014515746667078636738747567354391269562833660412519290146907388728639074606762533642075474537207538935515483305508076852440401656228973277266141389138867738471593107648667342160533039725593990044144145943398956293126689685835854109067357812614402014245811667975326336321181195075985335286922941326242594100783805309454775210970094345293022098747868642658233404855456991496026193914581923483554673715240004048482768666470927381685088039234489324684417344527084777903238255092583631721568400531512599812755260487505650968140232844895177233366050275119746030038644942482366379842179315371738669457558168321181242235690817163587770132224699942991483359880154792968265544019533404408975495582570413859624604464598831788164292046019718649418270050966589845131191347266086910803212969809091757922635300707027022436387628625483197695023760827294072198456052922889871910064074820728393374747002378043660037566439613676564063957583383065280884003012861883642368156927857419665037199299932438024479963735267247194912218719240235601841388941068380725667931263139020313009827657235308146422818245561518716663801401398752126062386278405748481009498057458194979771176396291930076344297214117484499367705647769937585552834256391911779930005809514248533551394762370509815825394412667407217098485171032081470400373268093293416035449362383027397640218373739744160485744071062963483730615534377150735316656812949890931694744137016051037943478230726803407500072859702503958747608809878668325262387776181486548331268513136703143611862463964386938644011891652066296716820052779673728061629438577309693954621548551300228231204221590607762769639970829047972879203658798771055688166018039109201283166128519981398289900065080887724911808678083567682011453244184016059654636422525925629362021920142064397328006844142259255013537285724226372600805277845809759421646002507537147895355211326021073786757316687711699367157830383695857581768733880953468706807161279097718366171593444603651520663492709064201755176107801662734747215482933128131456983381552213125175960800884877501282331489275321074617472265247612419004170309928976521791051983498864840371671127733502939673768606253387667310589462908874107130208830735515712060212115256687243387172030983519654430518852982220105105177029037174692922950960133216764208178134196611655849559486635876539168397100299578700706280298394343319230657383085387824658728091796151340216707973222084643262297449705993155930333787762139290648958160340101170760187112139378291088905619708889611033396068857918978362009139222374567736207663257921795569120050356029089686683786265007698672886082426308724395715608563804878731439561817249295091745843963445042741563772093405462198486087579842221623142268281662235956331634250627130608852645248859922723956966479883059561758591754970537104560906573906873887280564860912023306815400590644457954229037818445625943966194844007576498538689776989773014106707950884625933389886646481834777077336823831041560507235619977272703310141968259485628263329037775426133582373379817916460114802055282541548262088210765289050899823370296151187986961290905010736442032208977401243154395692102806585298169352149740809469487138556836344671338896567687187732524488069295015145362651836549572277919203776279227839990703444151445425218120340329434475919638431444031857096698365344026863290844840527879983871406979559063610680719245088861061521204332348365190503662012904591356883446103726701419302289459894926325879789192408907040859826099374217544816228394926101923162750135793801119976211527119420695443084327798860007587805213132228531114254007825260798207161291941850597866331101794092354695722500119472236661995806288748089878760957668576251858007876634978678493786101106415544829274750218026820693521647021672992475322662807620756260541701730282160698347950309351737838966529513017320867238443977448762164827579429586688656400110724288636382711968434036783998792519393776521992851519008476599006591804125871291240557204676893037611604413114342410177740120793791733306561049702307297298051686353492472460077788247151107168812958287110084295993468410709072890327940929054211974101238945684623847249913099636086054954147439985692571791288440485572969011668393784920665952069176065592783206811725387866043782059874883730024353246424746010094737524875364349547404602724988596255086505086388181251533039892157783338124487525582902903444774229856769987290860517195761668520737656584013176855330238225814627758393018724781532038864145895555120464890929825984599462521118618679073287656828487628968852588698189265432200227218001702282909920151973448094040199696099073108579323891123365969365056587336312816769985094268032997043388863694444369965118361196309865174193629521712259022351267123497726074042592068678728743777798449010077758543143114248665516977474634388568620992551449628910321788051343766184215393583626237700751718313648199652566483247722384044183317562065765954780581418802160562009995602193772570170024390670886096662496709588141217666573960527510884424471451974377473875811444774193803155714098151676207004343573672974537467011912659461454143577298415960792308318795311021689570427243978686154962741571410322212653673408626450159890776604252897221904510775370991176828356749668240487803075503519127438222913953214234512923559130873217618829757500944093084910422038582435648036198573271522724186439017814226632141961993179328044521917440112695421939902765775958418314535655797549049564672407423435299649111568422355798978579040662143393188374043832684357962367004976579621262956475539643003306927176884646266950972959154813446490324310401339906745036166138755831137432896740677574694443156523453361710913557247982140613038384523426041615254922654900404949249073440170151572561619857764462166912869719098680033962293654743286048929481312296999789899337291157967207263872240026470113612674824986346268380935131384661891821425873289039179934450857088761609462570464293292289601097992051195846920507117985640613186928247943807586099263450701420628851584023485320000190139755571012748912667435776603290294181158961301745569358708892503054111452164407468221588684513013911084201856829671352800666069268023183015125363831997080627889987172458220912596361329224871202744741895156506415288646892401349126445894433098484670353766014903522938768284090568748142291581324719200929393915488880313463114598878518962791511139564969930023133568233562775298168328984924819096788349077117731044447067345410110028081663182450194510549859849931180609903388029588862322779177575962530486111013607242676444385944892437263159249292184255538076962960516329046634388609664708888790699175627546757151952802007205069457459466998358849791202379428322646312796220445798359452671767059845938164477408065652012028042822059635350114217289894105065392322351685164738255663622791536539123157430715059835588088962601979971256294318356418493001876621647988456096634317953117761069022229693361122238988422649683313326862632500749832012323155640064459261035766353319631319437395173626096855483235899585263190033775842063245334990341919207146383405902733229340975009140428914237778001278880564857592778632182389591609937769780595892463244470939171181821706315206009584868734728957546978257380121428746070082438937320870186958164307968868878657139703122339906205710019155963038729223838243932056943184225110932132909861779245129274237783298731599930411926518195164333785883754135031942373593065877698512811310172511060072487637569522864939196360812890887030262132664141254693972972458650336733411605779720428579232141390058871944328665344800672195710965548285256316863012980889982207554899030704722705389669930583917376045986389012779717205434494515404811802046031554158610975152754211292784245671548432025112707995751784304687025492091883805616896847807031368033282486947486049356295547628571615217327616032959703987748890249355397375089986760946574603418669197586743614402721798230589450500951400751406872011711382548046332590130748500470673615524227282276816614239072911331920096249192886220287584466234038600791986465963513225518685327044102480968660477595503706021751667804218646820628812254875028332570803659340915011291363693420061892099962655829677218411518004513238282312654054214869599838068320149488880829446834607200487483332089685719682248449366222350138951603696631276782135836161621314935757748605190508357537207588233140807235292303869156231183934586153884603120195491992146234497251003573875217716582420812888559588183712747163430012090444972481460654517933813334536954888771024826827435610469027345071323553183651219553844339015942643375435854898520952571434036039020258403255614225226196870079022373667023522647529875237202468872142126089458803311770421569469451409975830170732630614510157610935775894289439134714429193815556919456230816156164858619511460314813752752296879201721615139334999773802293013222757732391594671429098432694638518458807666495374746785015882900903025492978122852479028564931821818312161637421552728625985405723220156859226395642826569292312996131996387944023542655969229952169567139954006249958433295579443534554545819143835118690267654052782077126562015473944251892244338858212249444905055088255985465544549658861013171641374705451858814590159630875956204072107809766088244705388608658777392866595175799834427722866733200506426246056769701885902702912137286542039536665419165990978660155508998650196437438109636007565324137476451826253552740000253043248513532317344493318259901060609174889897724728688710067639630368726739190562667086223241492361728165474475975386966743540780177439520289949983463582048762378127551175016273573356390272262180184375486423346057731844824109740162694948730748649569016729920311310571187062678672611483570428627672937014420387052748312718897587813602533652985584002522264754330389328937448696468911985919816050376962801784077418352337137632847431473747042844757585611399780479091954655999374590005396096782865806956930401109825001801641031163032656299599362759008504349138088334549972016363513491955379120981766330990211367985712969054892649625612916999721580155885924353298665883074351567582063388596029368959160174313938770879709441582791202375026286314170970056917133017545327449923725039565933957278140298131176804466531842560290083459693192575852045177362247763438585941809995397076075925378149660700858939616276062105073980386194778047835488512913633594821377335291095305674406338456084111511404770594269386747305209394011556578322318968900050954900418619188507497999888268301631421407286758738186905855534611299029436309992321103224296908071032053597853038628753154270110857314543375702980719210294151580339718464385063258257876883069845754349240096752594170222977662774613079228944644583276330710689515698292427475791294167034165980071910479693825377353177021595003793327587658452202844442259611303128089852289843617582726930592133782922779985121431910925408325552268076063968431645085529098835233967110677876628949019599330044364220548642423172792410987379698987074498004743536169434377039916151900774236798278650704918127447922842906697810239407445774227115849661047144054615660030838054730913528171991426876858347025933496565156193015139420101565449770135495424002986459682341311276358697799352406322158159924838420544072450992802285885436429313993396913699109497066111769801145730561597359253322338747474840532770452043905463205629738660811417836607834520904257453680972071300598979531514336268564697705866148383862297083171235868627293911482377664866323536920491104973056941121294265875615020757910793021755099038655812283690644424844501393378676190811774588163703263424717501074705486217011664499215345570144795956198543250456614380528844633574235611201124104000470112194130504655126686608576245776328671866606980132084320908715622258370686203514679254015089062538128732993040856772040524131160233849357322832439963086225616630223500689747149635508823397484986228687057614229448351660662384403958946025449290153937382196037402638063468572059362336443907451935843775583637112410656903841553838851551043337917731965204110898310867452156031407919790664377376912903323883932838462286664404033632766578578320225466368653294157401328513583871915157687163240917876159744294856933220010751608985141727845872985645284953819344010622276037788719031242034552005637346857151651220094710569925989579133684762129959202280047026876799232227031955027923649454332766468974469678136534229282934686029536885167558527790666426258759263278336857346009282535443582817684364036837065226039571518924058799002725445754284526403861627065951122928705375000308738559410666001053870304704175288442853778991572391429862223722290538421609754066365526054520416975902784826891959332305193813361937578372152777393606029949438879100904495907351664410202025298892186482439298593208105300681981141266233534488863392709923579235827033889361519983444862990035119514078741444819561360576837423270160986382145569490673767381722971169425934273176217170082345353940772151545391878679974691514291006345626586770568241452760856588578587675914668231272781593032699857380621445194946276945910063828988206645603498750459935177035700228079114111599374297696199480363343377678998493067912581113568696959548389790715919004855066650585152164242269336659550684725984536750551089786276352556952276638585943003756814834713984806778645120227769312620116106588024019096806957323094624548968838236127014583793262485231885099303313391033887747965669625073684416993483576386442501114089640806694753845492153097765080340080322619316591351203426119544569037136283291533912038556084828926666090674347027484639056789258175385376281751971590692562425041509419130517403942378771983785702660861697634126633828778569861268692066467386618313043112653797411188634227093788608697470570793506673565032963669754664861060362376339985646852282953707708656820912408647336529103222015217723942953985700284561810927236453022458841645714164458883895425376967774349194801276282768210551247307573677050815101739012138738766293005284992139060026177904128119313569543397065210428482263016411364648929479579728617975767293236390557072015597890504345766576109651730722930480942911778136886204836803335164994803352025547299035314277094932829532219910005689018345951300783262428725618864073962231262494020104963217451432120825702130277007574743748152619959996251918098227554238460865211099805608229306706661796580292160118041078711507525326610640793000519750864773192703916795597772049863976103648005047004974041275748306499487929810021792548573666538331000989524771133999062341043818746982678072206696218253870356772658914872654873781766050642444045386753576767571942534686982848264261859270485956197974738351729634589856210416153699587997601227717575039320249807962757810551864909025887838655201966895354570669754491322974903329527934014271718595317810434370967216136164565640430973917002051011029039539836251755823338597172877278209842801560647667704960716445794042337715237830827999930529617826647734925069987176124855690767792183833874107311734027861978968547304862721918235698136537516412689447379556324031386598977422416937523134907923886640256823278457848397448554349498344350791194973695123233437528562123352091352478467331810861789808986032399655160691401158177357153619243968625671609519544813577470059495121645238495536929564528495566748541962783091806950067991480795323805510284039559722988087666130924627068445705446356015801082191905145511714842796103198931868671742134935245384499940279556842560858271036636698664336524057311430354945054683925217437092702908238214674877264409899857596993854370255071839070226142846286369377559365422946697353639320787354291289840496948391237998266204107338918061830905826424113085367357264603827035082240778222935195004241171328935957565061769021423317011960479886876095795454638505799125117434310073046431875630154471873701055870728451461906438802954369558728133196611059280045828472468371781199746336767744464133543968596154136627360694475343264441464981389163326628958271105980679596520201157572317582852486835575105984438223103049739223252893459155217320684234692053663237650191241312672385571594982584081610066366344705217242930382708501221803375128208897029125985662609219731390380993826997410135902329847235612659277922252707680437404193648281531364514074243643304819665759303636291620843958107471485977099368148008077456942503958268671021526874990858047624265554017520747441138667583342422490239272798458528081997204709044324526409494819355368787574869453559165807088342274517858890052597427043646120940828063109404279401982081697528024712671265963760213565468333178782554978877737141859292308955173374289808424213182741279239834619023114026115693682084013461770485391767414128691320010807417149450442542261744785004490632370049454419312066466312044509965186140509817228321261167980279739263341805144178238282143492306248154646153601616109696216916809816085621768336276783162294995949264948694023387115480965671391774909137082051668417684516762888372748958500964176353854906084621462444813509231664087810444759760638792906187486374785532749518104579739291424001667857279598901831397427354674263254313821410381626501592145929442278962845589273531065759776678358245532312015435252053232019582624928256769921713978448163919178782401922631216377006919474762491474097979045248900611057265412040634672353425246208881594805054297527488988843081146864181440531554945588473088166431969668323346233455228375276099251833851391300328495424399921886063198343351120971947970518759755477440420903474247765632607777818917314356153763664513171510974721133207313815974179243353211475358752170884247339453869102157040852218877448752701675035639015692068088946363103996515138342022466646785412722405841988509169837570326182693499165585997555864981591951616460948619178079191033674145572273131067808628073901247187317029442876141886023316535634570255195656657939441962940487327394082716308773622196273223535647256313925885283982989405128563381623502677919583581577306109687472569083774087197037306116657234841212910142141475405474164855671072576453084932546829882207210815721924648560864790426012774934891763298082149408309145051663371430193012865461780398997420056900743551118014240792340983359314809709331876776426006250064109273660167130021590243159955541979875436876452884578112029105065883056323536264422972510746670981250807262824650798028011268927182369602996615351986269386529639609458824329463350270495219613020852900690919828536731495048108321821010509706055029575341889534465394666405559932435015039162186814874152989272746978802881370031856379648667665346644986497775848245282154087733782270485070243305448027471002684748074566345586449764430216574304606132801200713204500382264184968432218075103302608212496588915589871168181682377851422281633794274173532434920174422638852409740689454677120852157153023417424813476273664836693771073719041526249786450123408838303507009018537826165336974173881726255705711451897891317398822561766294210431625270777205092706557448234164301654868017220522160981799812926399283825704293016881425377918134444018235949554960146269465764575970430505035489968691505289832706556060997595048667806311465104910971055756756505391093873436135966003773289057367588802695056335964997792739157871712327015158388697764623611153451079650213380474098801591244021488788253857396176274561621635702324367857145881573908331292273756474666394630519451158791976340696384122230604990314250909026304798188531705732974142534720469198627815987928440127223532560528860368379624062427610151703748111763350248897999599936349780373527907646837819346341187277279660146539245277802202465493169926257058148002305125767832153323251349125658441717066643805493792023244331064855375992104574832795851339492853798528219357548247192453027328418949667888759169396362539589334500735787250974520731636877190024891890681417639880345142774955029760102228635788404808941313076555986576323949094433110488773615688952087187791588070185887737568289012043285051374167823938107552977619947675113178138171293157989095094679190280623522159793604591648286551105572133783869606881571173372638513688679974964098330899922390032968621715151476956069487082066999309319475883379884242442961813818481320773558353166837923551106865445920961068184547266695595607128789149670817714434148587451928785752865414471277603580073573490731822071004895264807690453655633244916151918410000243861704504104407430031508910439876844290275979879747609771373561505995983172726656490735194702439362420726225659930873127480810291335152680031379195409452089607417076084236445181659351536843655431914956008386245021408881007105019307751869292290125448085793888945452399043920100831294443684886594510549200245125954408990710917922676970432547968258632987836745531102701642465684713948892693423538748180552468977384274473042932832059854243049415869415829036770864214265347313166614767756615679677893577543459109271238310961437476878842504664063856008802048321034693795709346702890345334420558137408301593106314386409896601356004157197366071495170883118697988911960208291328035431373940521204388020159595291728583611181884966335406422026142068933576585905785567255252204371576760926842754686534626250859264341797779522324899826154850588586081237367199598601285164545894548151494035590350257416730627905114846242486865247553817446008290903767048101078727408204691930712875877086833890060748850127808806490100274471624237789249780814837663096966151019541319908099506090250525444980025236625013230399871861860056417353765133648791765944791887663715740483775002636559040838057593732701221914941768374894751181744685712181705495247230948467813455003230722379470630466455435443970525719752850411825059262500952744361794073448615258418015766440653241160099978161833199282222987551814132929006892002310809941658971667653703310048555365380182302250848424954617581928949578451591859145951320130329595999565914297289732598385092416983059444010066831864750514872274732407369780098053084458122442815132000964971291927464590317843297920073894082322166213071009942693859822080043455490820078496025158863948770568205863941772006081534330383735492162278229786198749281367117977693760000189954226905164009071225519622377044932458378201759568436439189675012753128419800402954439305721011173281718606741585196444071791385853089885490249470615035762434411604807071828458967585148797752286970862852271525379798755233634315358281468417729819961925966883228894222789278239959087919737115265947243370771311077940585514626363488253306847588351653745969477460897871688269949150263795571501347752568493372526988840198819134351898220831745843783182335628775767814339840847667859011655934461861068250441989167553935246105903519086929961275966166024320523454312929975906864496594575650191821010633401381818699640387453627964367830860033152417564399921436105198821522551103829031262389699453763036509800536013892679994613827398948347796550463117764565144821304498354604909248518378145106375633052874477769185224063490783761105785412611365962262631273330612516792010438282064281248041937922307000590804275721779492562383913433050940469184331027939845999086923101163778584191581626328736178358627136031828841765853279196290859205486566961065183247913404210549641232380480737411838090099253520706411439778596407616993149610228233634376494911542630545599593927569497410864361811581283182563963057972688477135080331943854528214412361732038183268372733726994214896271061571907136825871006356941421300552325745675889314103459719430855582342066093352497160840681644898454534297775854822759698864933738948535096272251982113389754390792231367075001871724582618831363993734706015509957381203285490748842729045584829474787628259874790437010269062717801704507730704853022949405069996860853614214753112929353229441851798005142587858775785067813705447320739815895606125181219956223534918645966329175912492662263428635857321057327752495789819029371682499481697168601677338288669055199718459707371698657735537198964078615753157725549039121009454551415875300494813541109106988825180056789381566790586619074675088211808643029372502085076769838932358159480324345791862465202120010982584249789207956059527882240013622551496956665854946196435090998492606206074566971127090534480515661043635622242040452231068670496178451469820831095742566966483118345781131767895666146526457590861381783623610435452353883381432346274481749418604562186017927623652159731995484558028514939690189059824082265044271464073914162567483618723438579149962917817642440150011515505765224212363116569365628810767329198175763499277696084583869198355315073602008658501332214129546887028390047639442396829425576376900162957787451956990844461735594182785946654240127762877865588790238612222099021588949378145762919529240943524273789329415887968517844566545204925607571591098226055744788954963588424893258665813722757172372309623228589920537294764987204481894694772113830203702872863610839021558758565510201384174551271797175401873152719727103378330942269147701301918429587469703985391399080906577722455930158070447206831557840404022207439368934531032703189057289898244748094360150713961202177603707388276633459681643235527395711176005539662132999805234186796344440621425993251064289646457930918550282238013859533226980656081668665624060839757372450441038177293089635503508140358690421063171271969086344194495929982653454066153161722808212713778950834159608331296441591313209603409441679902775472625295888033861125187540372831688518469116772436492103622267376551846625171235186949436391590671311025125507656367053735357181649748074661153008711137101387176105188731566176587774653192055689623462881823098954704738090024319898337804863131688713197162920605444960533899802899058877737956096211786444536408431443844949411345739326290359367673046545392673430787034505928155716397729995501092114246928253782262102820120771817151528787648434601680715727562810179040044151770964803706815942204496506383667747962982716853508107814612946229670920581825283027762216110116258876416585813893877707552115025063595866732770158820323440790821924369804661657589421853327054702017636148698585125132760182693746937084703858150949290169917109992850146829953652834018926780761219489901175850336288177132645668740019401384254207575418823933077035905298332518278823441199811917505685308302274673685823212965452321329824531546522411651380452482837928136470720778423080321817851984077482768574719507546822064348616642307099254373270420250258955997666456076820565240086896464230402781219338934181987132253851408545455703939463315480684979043636659306367912215205125644271495520606119703862461288929038708445646273537179024484694532956286968459549281037685395598386270690955774015530767336528171846978889169617018109758240089358797672568934260232523783091318747516838150991433278629816559605008404188108193557625527322208647264569879927985332779688714179831438993704744815068627714790152960003416086649440015402996081972930112545119114486926833021748088188796724845289852733803170793874848927524798366075388114858521873979287050827442328939950054689184991765266041618942315080712938621596833340415203149971258804921254218515395296265832028874086214346289993304328429502172903492029821300270507437742168926747287184198471269419772105092011354782779287287646345094208130508171252781594010794230480978788839250855826006594219112999433210770871713982881114579163039277330315386145051316392448462201916520335236919868575226116352314310911354809768387251723327544562611239812809369210918766462910543493486291567304055804931209977925234982747208161553522811044387207267219403279718860615294778573652600360859526735147636860712753584945611516279269387336476061295106122073727368853954861827651407058078354746610414026903637758010063689890094910509115516674166146695617360807091756126780728325055679503981917865238190484750316821865858000402029132591624145460305309868063126999314660637714395325798658883493550835011793315271999810688031720761661211466929302909786684636505154477506185976438474748867429582234529957465905215228741949183074307537695390726425065750179594988318846155602198439191421967628570164278115274230349441722880031819833638656632639359576576162155744316754725275967329892814075622641931253976839685492566020112173400267455619810082334182991666172486020730315201836396171252732736568688788762784727816140805031487333087492152900323253836570255661058227997302698817886280998895265676749768105806190523999230696345154564109416414341733940298469233865032492503729666650086206918340757073143864564935752176697880488957131633998574344293372802511901876977815570793129431424657746155023646561448941007163635891693894842744728014734864790861252953514473901816529793718433018778472101081597070639051464663732678102493213063445195415167657763189321751776721318424107613163328611741614837936235968014979100649125182351291405892334726940518383770261257042938737827888721081535919494244215443120021320693909625034894522538572021849217636693743907382341886756769680943738684553439255170551109248958113108889111959014742927223185064976566749443504281187302243306886441838555364405499344369005758928460578805858707535013834385909029717441934984834418395754215717046647238565797487711035659690295554779216824046071852910020402553001889868908253461362370374086046463204415154111920755222384945865445770983258434425462374804152132697549204011381978029713083131050051602809308929444198571434894122608822780401155364675154224468136734247254787168257995643953387676281116094585144458182031675106697547333019414459869191787045932047548466191487656172495632030920263828309241769450308461024544668773424138504850759863953652866388179407523842139970824000685552896714359223224938555854861562127299965913970784108977070124042438293502820450305294491368284059188658456731316788667397186007421279587449974168122567741152982456313725660194684594811441065137647282379027881591436412751096024514585857983465677622089264137696399143476930832839532408041460907138125547842221160215070808483608209729228488407041064850858611284758149326814859592733576694756067027090156317564082556009349362177990225470987136348087911757488854005448377763167311864452549715720610892021422711408330585521344365469577950452199191453720269454686520867288046722319717743444322643014027997606916942692646356926743878889117131064547491676195927510899246551255177273354585311359660700014914164071871935230020380542780103989864454686813350868077415183660835941396171607082607534018626480238208898717789650894236466171290605189429213427874302426372983216823069875468917279684677933234681029542677977375406715337717849470245561812850063234950071307288454039805380933486346431608930692330512452878999969643442654100158948128224415277967317218578003530574697963800842523749391570162869879336958504118239214548589714044461376640422435186910789416045169854847687151128338407720947333108209872750102578453766663478830027156379229757398587660983780489703236512438042293905425048897347905387682337928304559397084320297105654881130912282417512616071050164810709451212466026818728515998435863574089631038887487454714042255605212836552937292845343966822974974316719948890654325952292110011639172581340215623196780411675169740118740764314373561966465231251041797400307482680267643073607599030457309272597386129992357701957250090173069314981595829954854498757194357674883515016760295926910735364145639231677506451300195640528557737822717717027730539450354993737708568879383476912619744524683447703575401765991891832733009591074323509780990442302603798251812750520743250713766027710537212393566045032025704466884284347754360646767267946533083668548666776152351769169799791865348945742824185731698655293273378635269243190805983747844041367034695356729778894105560761983819946078108232105153354892290271308908810896063362424175130497725384812902724850626143690741866273128022442823047553197162155425553704324877475261068830489666444562289256464106848042046950542913384727492296015479394444433094562927248013644996950825766078123769527637092458536927194171436448962784879202807123866727731435260489368069568723201561825665210902265914800027525295291001826124525441342105819400988033851348504760978876618111409360119022675095872462078083086452151266748407163950282790031722918669433241595414550257638246637989085165180926517587767078876231798814159139306426245467706093617411060927359515078825147329497956217570476741455874985669903693621357457005513210395957187030413432274480346890049138843092446791298152243365057367363367561384427381566434902136383900428224629240757699663392971709905437351439613447000096039537228261802336673597718647054664918980630916056510300000724262993859052865985652062668631306813073026609862626193253180767464435344300744974412592201627958746773270791075381811354309135263087339488315042092128926274568912034556808014482906816514153597733588336177854877462468792197649691504046465185478659938969648096768874559020538720105356031766460292194770063870740263394311587253314809438411335223866071596007063161285932467765999472328641295435409225788093664384890401096325630238390959218657265618813092614280831462345401342284276428267841331637703018662680909694988860757751310562125970165841411694140775329430430199527299739926928430111979094690085133519795737011115639176891310961031882713972616955350732146541540738911391848221683705537155449923789897626281672188669650939323931654566079078514669603164915653862387173431708177055357799648698885569492484243890534867848660124434708004676652827430942265791655566953612109272512594799389814487062961431460695279203134890086210330805673787498170485095476768100820119671575436325822004013732065287583716169364024123203853039469289275335189799164308854125858266309714381446042239613878521957633084836035424918700538764642383655747676291223359238332665805633871099067711182543776691710798725582953129743220450453277675032248082680254732632761539172797779942945815517305079158566547916456494941613696441501106919464464863002748134057052260213022136539310936916404051712100518272933197441655330174043688602277344522504936147199860070488628307795645013117570577906935455181660393459901748343499841695698210659140339579609430832307658686918376654917397627829132215660635871213774991301590299587601206403340837185675586152157150890270518679882017475696911862948779679908045786285103091716257817449837987519808604064671907410158849190352751830390578337820763886456430521449728772230207894935456068111551065392512818188899626610227867969262529007771388265646521347966290188867464045059066572759627409770411788062144896034348067636175467426589694466666618174291109453710973806027055271314069180981395645814368120641778827398319603027984885958775123215256425213769180170768320305440556720089891764633869759295348133124412703351051498329147154214489274655428455478135285281491089979680902443844380704362813041053307551260568956965635653285451041223723162043640596106123067617691386615369371089414447898793374552214350649839104728662740354512236314898407448188846778091811261367737567672180422579566453647865173812467273920086829903958286134888078167872469553198188509746439439669023105387596681329241255237257309558459271630705813479819000728328204169437592162813635501521980854776422455898556386176203638920255440000378361188451770493600653132557065896733158306546804464093538021098917143630616570604945397484040234632877529354711716811034868728752632029005573779232123846673933080159751722080288801343587902690762192951926704274489856483169618846360870151795825549679187967298828634613702820041569814199688954439835748935715911285666506200374080606941492438945537919798618999042139880472352101111568467991763089502928480578286612234213519561049449420633393710481123355485907718579209299235640503540481933664442884661790392303372370245821678102700865113730245498753240739645823597001732932815496560013584809794260918051557249407446108733865657147545766024223950716504750829429514191587688509647346694833120138212004110678868827801224556492718093073957558693297292111741224781900148536025970655819844270898072133182381355577429922054214660610785801839385875388621445765204791268744067935061595269287410714398354263469393291688422161360556365428736995623544827705283035458954810729641751226144289274548284447449998254611871602127446070087152364445928676458804298410378475492653491950160437702271932266649089396841510880349232313501965445993779088093573408883446098313270865291702236847037683622360351463792949371927717349144028214530983942703139390760670307583137346046006267424793918287170850030682567033896481141312427013645160002417455232818449335817423639587609353553854463912327202624998868896157800151703107245545750869031421471034579777942757970960368805133298918071299542837710171049491796441469249182695142488244273656929630195688277287426543124974483686498885357547721652969807286398138868716481989672018882997952344753187320405181588702933279302374602567394903050052668740386125315494651489729663844522069355081892229661794083610720499267727612523877138743153762487416839662517202840776951334411398251754000815940067734419822118813747545137211700409126409660847473782039023575277849747910761920677890191348138984309135031544213722512990081786984339988736790451856665666920972640981602732971738881191753331061484755476722309209573885667770309382632099150954244523990573798652086734624239348424244017856044028540602305185023346827511937378877084694989253709462792984310175621299711396176255540194635939813090013422790497979881418805513277059438597779755047648658994894356914086806472983262824015585577228962674978495790072774764382403581878625816969167125859602503378020496441001928685075466577843033439804607096414868384182329188068198200417951391234891413544748347620463049337193963711673284395254755024428934695412726556581077032032531412894152028112522219760204408491599726584253467665759056977590411139021647237009534641664559084226831824952804266957166747258956113077669964973101341565779623929873047125302165992131362163262811592942306401005432493237326992993228894763406614942989455227680924950411834640866523703815843104135997903741197800168491389598133121218981195510553280055956428793365706401796750735532373876087894914745014236736321834495881949170855767000284188693130630249392680389667116238607980621368350448462664700829077340192597011979728263828431257972646941014371513662012739795222198003744866015342126782939570492459731317554181666936032751819854657997562047921714884681016628909852006414892082240881068455789311487189697261667454264672525161169066530552110575289739946597113430503486518951991984333105492314761055863510943952722135049488907955280925083472731457615516569872062215239530405055367877962446133981416382450655112937591012104119181366108344225245247128552399979744534015865719754062325159118227538598630713842250681330359669376984411706071993433697780799373551296148859881457402745319760155762623120110937501743555747099269633836929850292108587426097986909583972214452663719157777031867838356117723302137819469897648577263004633374756912940940236609698189964706036286935578137591249185488211060290185125741872920555852002601392888624315304668422847796999998378450363709573309534135564552557504525070714596852190485234888431255946535766378988750822697016283430926560978475128204321505368508036114095327023801587063921989278144019283072257170330383998531314529013435956453585833990764573298560922947567618386549941193826410986780739404391370698875359703728122862003624401128024461011877941975983468950940945468183350207499157000328257343590816055703220953044708500095409348057662768971379453879826532287093569363031129443253145731853882785833009001946314375629053648643919751854118381632940401656377118950836376548891624484171295571723824718718673147139378055749150501509479994344348871538647370011065396564035005762496400490047190868569528263227320480669976305234305667575622275210714301507451636533397300576190845075180573235177852270412175235853168598395397232440218601612012453337081412769694677357056004214623134958587198745179167120221767504158468626894949435479664504757989148814983470347404105711541590582791705288254073727774635419364780157374446816390996527837346246274247429184648286104893088782913025665312659991492379540850940016810880966277314344870824091689870203291155527141547200850624667912291402335436670904253766306377116397119167462642614703398071110134491873860978628599502415324406505353498178201668263475208343961796505804595805256486527766083833403492505526870727490430409328521394528159922436994924564462725633474838356033394295914792652649225104029735325581460147453623777552766231932545675837715180855720987740992913425461481363743807563941782282263156757477484061795360667105704633039019664728589182618154078519387545960898051696478134333717872296309161926284711935553934275906434541730637244742955202040750331453739512459865861471880684764870114980604431894190791727246785514427663489136649848282913019146716330812700089396940577276993758172092837606269602733029704923733222745457362141424432891121614763968181223053772770656221577357615473610153003545186493424652851494140471050956857128745302121877804139912860716975204311760720023181356640462670203844556533847216382262116773875257005824041213980773673209289029937936488067941455675539147903659620174868960457313918889518875784473465354561305163307177536858306912045972656256734349603170652609777216353527007691066206851964412975458561217980778064364353030949847685395723939736235767244628062669851244811979331404674212593314771701055212575352763322590157404750433910600337060684792305817223447567273114202317168551971838375292602094526490935497866236684428056818567484168608617560029791755752649639657921412093766016350106834487563789250485183397797693060821999781978794618976834539209224857111952003281630170754190102918933692125246856749208685829639164382005393665190555152429622287189832129052469969182422241244052877886131459580528928613708710196751849630647954215183603318996376329382156910176357171650259980812165734271967767499530235035752777789195313162108905830126128051686653857012844966383420345495246662131641184905521702333055050923726425867087727219406416117949190023150306462184112731509470098076307038478828034200756590379731300546338392039801376923899989371058766128694898918897673721358822127544525810970771533888470467655553556422485145606313593082852064697836914920070497417725950336058406727883790742904079253611890596746950264621173089416767590038823832853830347618846290273282249820963560900045106511591352703580227872263649719647475648039538932498631685724750714187428571020812847326139629360251843385886522272265239859840518077407382507948441902373600539592078153956242281562533946170579693299793403136730548812498703422815870249840121411177766167903718995959876426392247671080516869112179666779339947744698134515567501482812794942139948305356861974113587552358036055680675316286836107594484609479996212640045681599936768083340419922131369063105590118562502308550388495097187998101959098736162797060122271483825717670715157244785572969628239874999679894808498405934103262743589024915135280301557715846491925942605411478000575110643379441031809214429645652520882279646593932198343313063953195554031201443477605941833607557453823782162013535029799039965069086223687020189593731436540265404635805269294384256940480631377339632672141929637461106672104180309625944581563624384239765889918576916051033341472676981692389466505813176054316779363376748784681711756161284722764032498052144785358685970044543158520164807411164494137958163940523765079294335732366645922515323237900861443339656634209810054387529601893541012346186988839134327137298909917230408381868528712554254455047514393806903595832459390846599967965662122012419477839578771063083167168112484793244117647225491937457952589358111074632203957518241423707860720787827215233628421433941532639323322799681371033536803882430502529632919279207760669017162578499144183813999178019967611839123926816476988359260167679078784985458049758594382853617244590365065077664318507733750669522869098681771334018389503822802392698894559411023937432257714521385462410826991063974966058849011863170336495592710368781246901605111669202001963531589070159639960988102313032075774890710113943904157458283001808405412458355053452457134689120308980013652209101798828449089104832794005765776496819036118037378665272988677391120575905259632969123591456038148935651673748233229078607570544545743980819667718343766403945342326376967878076707631417254187935773679830027346968291412446410528043926009035618301363851310568436488486567241618615605100050120160598382726441823107322176883139240236107139865778114689805311519487004628639719740967879710345637017017555672163998416486190093088445372984035069608423898189962905855415187189404542523158931039765805769027308898362333191785211622917797345017191472477706511485294030962059311656985601267495686836308547057903534966102487989368313895129164494013631666063621953996647583766757572006330508846804763561236745263979490052760433702600128376165266141970845209888145273406421965567139665051612104507285211133810966415225464407737770302826254756407549341955569384657680070765021351017552467949428126769894933810084641875736823756643553764170486676723808592419464633388541400367603000659896098079953583909321623837622476690607366075541252956827333887215008977835193385032519139859190961001743255245522537828082287246928216648884096927303016297691697884402237755580359554742538286441540510848005155648463974944498861464568565124526276886879101690787675160092411260942245996537745956116203296925991037444193692517907897918634017294671685155233358646498724280090069045065500116703053717212974406695184292882405010399104861102789942270200717370913888234931410263522395578764223136567521644506332224803567307200954357293568470624957337122950987999918053358692762931769934383384116277691613187578350869935114198504683044706391737537995899763991725444961947000154452740486680126134613566990150831527422226597706121080727633491119322357484475145416927233432973417412872638731995221115000757273043299275537871071933521806803540579443565931952686529690806197348653105919815144591847750684267802378899656008362067077230354948846898345584063588530745235121601635231378583956934741788835803857491560232713658049025796334425375348166175767503255720325945841208631069625713837711875523264165211752523933345462081144408911824031844273389438101445665974398755418983638651205524294430580055911591183490892666517273092341075799302342319788164082525587994076156693286609031803784774740472600747887695388809405266226565558206418237038704626078287431585612472825153168092269285598553222698802800279213240064697544042378422827771924428756575137291668735398362476170329705961459074896845742539707110674746542893113494628406808326925473738524263744119644875916589576203003235285398767274144341777935042526605478737359524193793736749828475939367283214291333652588453182231381709137242552676171452112702684496109217644268627065070402665488157395695151424540101490338532171711099399033661081980765880310426287435614683513278103447051036275558012284732643917702288790734040079583265864607511853734964808265219642896715648034797238687231095652800486386341669685127530776159862460253413717544905887999429479226368336390093121826618715726306792795773817378677124047441328444312684934928389925672406173800758255086376259046179441705415180626211091072263371115440086022776010462135541249993074680911575114108306762520710941613787308094606772138764949134573363677056263361314707388449768948552311765249621677119946068150589550071234249952650219990114163155790305263911840896025681500754313970578911280537291129679257973736097509300441033558069306026365678181019770628172085870251876547442093412380241189713723912653278595543478391930273372253414319167933815676515452389485135733011954527675595652727912911414039784144984254747683932695747241881194416681345712277735480131920289888934456448149717784762370576191212501088654580280722442962768820295090599162030394039089776872838994819731553460361321313474319430422509096577716549031677346588105134445773034676330803192414460936188844463443986251259813955195968134337800051696991135950438273920503428048443636200309053465391900403647080901447076583713337901646175754151566090342316032460606710656506733135458702492888678504656981163742052166051289249134516917594880603058680893747322633957712613769483822466234887773383820713019990604720208137238826652955428566685912252158704337883543822937899321486143820165192165864934119782949325201999858239199151826119333838790375303656906531872093318352046049772326312529898813723891262150080774724397788993936183344893440816048436011566862797979189189961920701330240175030862822324328614239973623722717611192952454100498612493898976235990055272585989176506706515616045906719128181949763423052051017962433940424285577462057349562896845049278687065781782936088994860146190971456567579777415689759193145873912782012095998414614025756773398014780003467948505528474567801119633850774904406783533780373066900144688041236820847549509708361660767786145638026574926152859434158457174657122999059292301777591648071903831224312344563399673484713695392231643619333489946432790797060901143859264331400744602661917711239366540087597216309094837126992495670360869184393125898748960097804220138579892308274652165306182268596298085697886738995372913338651468331021382640883591167064678553498441077543829785600702034231057444475861738784575635429110376428140844722782200577882017826593104491286252536224410830405734431970419261656390308055680900748115752454946586232996463913285034338020317613926089885669370673713199937670989667057869875607935389093022067565506308697756606614110931998105720717084846460453076528813635125429074283586378190501229174631515638800322170298551914681584036619603207785429374932916492802244867725103310938488928660374245453383871929658067868250763958622125646884094268014422180267251840947891667280572368047821480329537358120965270798177941251430772254551674718138305588903520970405652790591602390611307996705863954202998178954880478404335658832223876933207573073927060633179597559213991290028841411574223106859710186449732531370599139668359148364121025824096778424971436309374835934370108541230418153294869880390935576300340126660995064653592105565657639069075395496309702406277528243420401458539474011654246418636053045919472786435021477532783242573373698203803421216520098694614926266352645663083387198365706656558219473281442446742256038537442999871655791498151619317683893803971585178549182644894757608029850642596902863783897964056114371815548293154398714554210434832394967666695320818624558152027634578781007021277367318423399363356928461010900398299008745135550492057984420773323239851161814985790343547956825960816242461047928723332776000830169140945994694363419239377318362264081295261018671746714516230829147120036641532808149752828961917082043477076596551284503260416174094476657929704253759860940235208660201238687764422151555393141396169849846685658688511859472787445280407924379689126483078914729205956125087839199073382583500037073207684117150550278717268902448669004560677553947822916250451830815061054188371443240424079402150101752607245164104257813794020829148241339084035050904446529388727516167372628275367017784475376550563848936575375627276686475325848153065684754354709346304024969008247769670844146729506970041622993141913848034237232483954170775854836203179238626525331030042798563902551847682028951664720323616361106666575300080227496345471241941345644265190562651312792841045682605445026860585061397451227261825963058342619642242331997716797158115987373577100722310144978651551566585819207182017761694022190669563031046591555271526985531180265631401027569181415922879518934603458584467277606241488218894636390736646191899957798664631407756227879969732516359585364412905061150916216543716642330098851814464065335591851945545154783011511862615139830716886364796683045338141389931565612265390877206386405544869439196881672853003353424474755156826751139474307062125031978033485582920141201670719844380768286446277019586271202532566566026774185970795908154471592189656080495504073957845097855204151773422519167908989605348175400754356284596129323853783184887860542969022368702183155799101121135052483519488634535653035964837294184843534398320882905167276171830732830211452841606594793563908620582617863023753355374167155036084236349310904813190844334579558136483190308737249363965262533056682067512111186557839619955948184916140523274916080450378774929044362094994452850821072088975567238875709973865622198471347213794968506443558647484420737951825096546100937347302665937151922360237944793837584429996235806948564096041451608375345161993418727191883860967529179483916267596473102961958564710213373885353052453133862996570119969737580076878632045740444247069597838069886670603771675241140695050609213405726335155741518718698266043316770059972345503784558547332163140902404651152026713558693404814259725166007525955827711557641314296087055207651444513396982699984255832875845264043644923591785333409630217687078265334149878587924899694079826917290533919364756374294200171202387771780732531123535535409392474833912072434350140148544481779621078427624043736261988639576115579594096085763737654240165150198384408918363064673232421206604214964690016850377819428042806608025971277952442529456841223791219266317237103990214691580934623903664960858343518759402913701963436212692133935332081943382938894842083797216126268766894336174066864321582185103148511881655889755735924028945432520668330606877893709141048254289694432095080265631163119835570645969719866056011864239889005794549039016235615698181156960730944587311009382926523110769341502099101500251100292030347657764659355845471174241834785299200693949933553234636415660106354819880853072714156090183981452187715599814351429958815365576695938255492363447436871392069566803275517403855924107943967498642560009715275007956826684036963817823300794781760678894311830833893913708210314993529816176196140909417351074944275276471918900973776154802950768131977383615423408354732070064472329911759451331289021234658757371404955947072431204219548327524313631797859471823399787946107286973996881287961569165976606688350112341617653251075921030435892043617914157586443837080877069886987796746726473529213775583154326118270025871756259526444550428920538985680101674413787401388576035857915638483777300771182484795388443911616126367206213955091752380304841347134100502841346439400050393855469400005106796033922338068591515165650476538735149072825203828789404249509469928125596168579955825244107368886843805391612845923471566000604152105554169542767520545068942877523000829792755977099619502358931159689881463891076700837927388527048787671893478482919722533538150044725932069294060212278570231228079317738491757196706434573377071788081450171850946381071731832521700422189189651574828469504779180784123759159650972358040091780480599567314750911303128414087547969598895309457534979379225821483949127028934345612451650462780492970067667060213472763661771541097204083782125862351027258349806030309170169776148968696737091666806702679700969478413029663232674580420119478589763618504432395307431717878284185703241270374644291181659100675571887513867148055089088781875993695847575439370293104209804442812332710392625510531092886409366745202512542509964823570957334915839544891267418450789461675158097669362955784087508785479123691695329554422613953140789241952909069226092146124113753028364244942081015717943596547512650152770295839534165091749210936589722003605923378778052342087622788113746049292828925887932641910390792012942590437902954077650048665317149672750539627835717702068885884676698871095917741565217100483501348501842908201553951681284418247362140989097246646293493040131598700338758541305696060077077214975189952262674194005098351538062335717972756051287180012528476664279224165899933498563893378756568494363045177999967273574391106934519549998560644286646158891723434969846255237735533041429658117292066417414756352832724138147499337003606526904714278425858832677456092815902484969842082028485131364827084561303238233853204981510497713118808462073959594952066261159644135442734361760968642040750968017711055063541491891389686064114507811079578489354133814803576696593606376323144219838252935437115926809778725114901199498662513963491372449373665235751180621573182591912267195076125597194537712574815439597449991808948332721462621022079129570058303117072270362997303104567677464999402598726729928703672268503398380465013430263743965805402664198509180608639649388257106421734852259138052703488523202034250009432964238709303480858248495821964715597478405446336283935630584578335934185195098460365328968258899609716686035246055686394421015892598039565349222220810666902262879855668162363731461082836603221311583249525495870741423370345874649657181292089302111124990053313624375025030099493965779672963275998222003966507822209557140325455586568209213800971132964279290611813489727622065231295433396286416587725664130325900886578363944301944475426630487184224311354631578283712791335585675224452907703452884989228892151320241456255186319340725878047057113593865098616853217149327928343249133358250854023259558910707628726011470785722998937069098488364910506438434049478801547631505046995090979185067666970659468366399157922881133021700730800473849640679305520484150549308792617013776353012362344611836646613436421621005167558223963193175087011985949090136481845806844810749963058787663038441843909020248133608075416528014937116361324232801622948136574652458985885901817439671855233095141936511445854265211802594449303003687777521027708069449275110975538504306615690085340601709192201204896936917082006989327353009529082299116834205634757063939840731112431804237323370288275860404694693123610712891521226304571800637223968347918342786841542655904684061484302506294325797154264095735421852722608816824318981433701535319824083063759411818332309898434929981080708197542324335331624761107755269584136219325742410616008497139767734950188488600608258010202194244606085524985666727815934193667093027735157179920605077297717976206040878345527632374232927402238722642752463613985092223151343516960385260149599946619175887134172293296611530707167014767448316105754620454849601553493816249784232591874399275806399503754562395223627023819203714646800936195967858890246946640615543755885787652391579916449016763572105924498556255271357667847647229131475723611683970818568542035978149422159021192747780105460316006936498827150603832141095244909738977010784878418377495887724967212028319485691451824929042454626723091924457542542668862835542762107914331033291934458379168928933313190488341815194473439737749443370371289919475667574802619428402771803610097552456090353181563411404933552186679253938958334809524206524878421150892279059593001519621586626114283902918577276358713976068279307120313178410950506998970882365221734928443397601166281427293843336203827069518570643565820083234368453853453395928610299501478321807449109510520249642966400369915160365347630943479713176757595938516910867693285216456703210222014120383215535424872796945137978530621262713116490070492831642778788543394903410018637012944887733924589491602427996664165053394484144023768118243978347254371041581089135827300820292285323568917615104033822144660003778880860285334854411097177675727158300643084686970237424306671862003951846699858649904293258886997798939456970755554671649438856891608005370386624040147377857329630185393545170418819992242545857233207854330150944536497249124491593038337780237322300724715329577319909211964049103248921785902797349619272452423684416067944164268490424084987022916262507269494214027463197435662950098194808541731718946353939527303694373198696742848620563779855712693923728383045481361606104732900204107679424851223944664192122393530459599619842844787273740879947522160031891202716530760371483117239680310973097909523193879543399542107895769503502689572207580868000902062309503520357606131745390936602299191874833332272377579613474564803645182159628991689547495524113821026895781811132293539966560996413562795868219162875002558675925474019217207428853209488924153370694087935135613456590319639175491290475199974357923327851222333198222997536275162926396969928752135861804045782384121422456190277260626591105403508991025742633129179754894992921245848224927970308935212000785416571000622164001374133818180413685058609974504629321591820759399724677607213879832324966711594562148085196783440451772765564081328747076419349728752097430463268472572598913820441095455189175572442271528743186974291273243531051343684174017721605233352202735610071386853919345657423500982325762613238569257732383685044365117087341793460688378161011823564447952376008557844289223546346644137454975166974489868172663591427106141091529989748341381985971838657807987859072904525062849673339849900627910450721987153615856455907019984951011964698757939696607524088857642495033960770963298537034746054158731042827138499291231455405403868902053481844491622938708999100488326128623555203736572668781542872033389637434801810415922449334838389598906392490036009500698803604008087800198884388939589693558062185778161242542600254780579538643938719380136079151587065367199032902181906655056053558918385528342956701239426787925016075909228227328997081142170685662666831578696211105823600128072733899584255747170215897241678780425317797239594612855029766616125809912080507489373618453206629375036331082574417626144821900752855752522274719613846540104694006686725069801287396725094631208079883310682946117844639870639993192159446186357684841779455020884164710785575277720722790454459216343401507784918225400598418988979214449568262914929023015805303233403774995466474994776603914440988212507337879206412433317657166136155558689988411277394485818290122702888567838188684318411890401746745575482739391153918983790097817069054933789702907181671596212133359016316458050347995633318235427101046789391445599909879774157688559869234247647232710266657169783144745179377742253255546529934600066588970546131588389353796013062323892337102240688570642088683433158708987202795238402215956575017602819872240333173450117719886614827244618129012161513079858021056993600897118778156015095061201566280126540803565781315327069535588588916836208787147012370570998431361056020133012066883215227888458124168400991449666358228919975873227516117697063567287011488451771228211384642454243286570806804895696612485140009777937618045756853027954244990586579405238415299332184500143873679105713582404615641173824554520049900898552299253936632449164680484536173821479721932508325034999037407864372553493636126417369386684508310311260315585253840267947360770559252428813239048816979142771975572058695325135984867706947929885631860538835806817916279452993374507596583347383072790945593333153820421928025774830612454090260383178054435776001281628212035308047431248549539631822477556218394171187948663434848527430905618840047777802834053140206129146141641005117706570482334422571904452281178034294393280491738389106441423221305255637841862721413523841726993075132045604439196076002154024783646359914025444015309599999309311651921799400516251038739455623575768119748468770219969651346443011128700034933812110965818325669067290572686938655832815120199097908212997934927177935973474626643998329430408730057730177517526184650811602981442941941475247802387874239738198200379289740985400349413994575337610069025853249473625994541606277568406241718460179143358733995946823731066640586223274997437510463672734593092342446825676519871417593049251027086567624142178151449130612408181339280978557563763960314744981041484561962573562678941977488037692556609218326089421813616944890051600513451382555564072854552223183879695329369968101749706455840370673392684462540618916536680936595188304919773883669652104078065092780455764535383540521290000439693151894683339583049207795235326518133176285217549637417773728307181388078940661451389785462081061492800123013607979992386847170122287424218139540192615538496974374175018879217319955890636010628456921817020629325253171114679533644401020429200294776219122890323752703433257148984064597277975255069405656812951431458942885578401075466551874704620624231996139797401962653981971081139646793109841280138902872713942299455160764412786114369377036564656259527404276574344596946697383695622618942378627756537461592187920500068762995598964833275105367761827684275427858609805253674689142112820077547121243535671195629797375716957653736602120803254442402681946975026064894381199769803047718250723035871873175119486485507720511499746489786951285101708644859215383779670772857135958674496511236582910025761377323974088121153776292835857126230023641224824975961779350167362660271015187250819663167578915726791275258359032986617953955150284523032783471803946188135336945897911360968469734407937509173184514402679888701833420125217707123152539031126903882674983558678148660579241287509584413242050015269968116196747057035308222219317382020779543370366562804049234391415584126531208999638217256671837027035826319083718052028531353781916415338688498903753029722599034655041027395559960379799273759514237720689468401947377178086735060294908464879845379718277724794691393387309482977589688854536332192678295245835108122249860206403162557584792916691292212257056779276264741239310575380558532750257197869367000821979689448556871609961638599316721663772364408039940734990499126086392280695139838007888097818406586949352130062984384882775791517786609276664851648370280026323870409271762413380678318088099819075312970987736504009995930090904377558814132188597162908639138767903086958452811670330878524747695367850223327897479162406445276248686404443658387792268786219089481948914979143748906951937585676791857493754865047756806604837158342337140080074893539219570857312948342392463264816262893235129758927487047373833528305166405256686797046356458204829593394998207102258429590360653848805444714594224673983654890905255063525596312609977945790344781647450045718470526583012836596225234159806537102935726915901347232336426758533491180231878926981669368880702904962835850401862791360894301090367305709649121555383418743247656662502108074792828060331859494125651749080059875793421519964362741340314966149046012278376836694002717444670037067140486524916445097532023915550772525251974435475923538884752993943548831321834351900716065979031204874757469602972316618328087987842132625457329689054839342888460393516896573039083962183375866502661205516124398833399761556203573447879892083522878256980885981123525037378229684361531679459444088061234032462333863665952908349976313242201437525479913693614176160646435958438166906209679772638196139500085326156021781145445779486118020137983322223132763819677725856297107981428694245288814635492998593536808706404771202263798215788712069867974819279466756212569759723319110547453834254291281390141239728666252345575062621402481154768451056155424774628610845290576683883906221011829918492490113233956125101541931700337306440349677569273731836753807776666073444804699469661993695757685472852560053668350247244756539787556824409716310262596504383031324671462260054481009899240136995792433315894152293259432436972145982735356452728662461960767892830593420974634750371880564258725008875313096295300458787637813958371874022036221663467010998532229973559047058249812060711443530262718966925642806940619073834716016523119530588637168834401450599148777343178544091943118803494892786113266207794556389803846474458530744888214604827448357313854055845769495350599946968838515921545137216093055092928437366058130638968522844685498023601956887355516964177340102236381928633150392623945833900369528127380921364161692530139691622476967306029490359164533327353485340121931264684882979283207609078296128988268348163943017517029502731593560243715718343555047763833618462376046838499022006552224120465480447188509877345292755956329941534742604576804573217733918658492356999319979442834723170939178275392563167359395022758700314911149233407683965243331471698083810478713606622925559853509818754906273455307762668969549025811529164422311806672390734971369064111947709204032065867681563906284988145096157304704658876279317253555732474604996709445721932855081470548316668130587645242754491037957874263396729673147806394061115266714441785887768314087824125248501024876126454182876537656375256900516626760517319277496314776592182137349117047337636389244835070086311596099709457196216300884668227762233053585369149840673999664711943650526038598578283079036089504488212411891611492350807262347903561970722834535360628306463327754051844955447190388798747371349144043797734421326269004821719641321124943020185655004034386588981780362594920129871600139047152216811960769883736687197306318885846013071098071072433841598120100727945641189492010091784079628297582798125074445973119694882303206026120068256652240724469320595624353387310036611634746128172009188125299677081518662974462734475133500628985794000426342568191455611735019686505602165037583482613033405368070286090396071634758723351990974912327430029285124443913820596483702252472902737276506446993455833182505670274349397291243406506737166003538418628207644604746574870818162547228969920852255166048470443776729294068071271722849864287465749100121404012607969688834916126100147435338824307528340365692264084134062475931980985077259870676354139834640761327048496501090899744281574713575617497720461999196094311848872266224663798457423973600783201192634575192681848774551190070849965884620331928162700422382234294688833272020294743455371618275191235730742938784039295770610010151728340362615016837663281681075382005175879859639632085077733883752733755666818875679584707470856069316834634827174462171665504457434147131905680826831237497444854853230159777625924264999931961911599585900698709003085968636181468465683971499602952788737705456689613730877834533381333549226249373844830581400896139809399607506456499938273879898286972211550646578314574457191162732527412762179537845406189948504832761083130481859292729052442156393676890409133016262813869276574751728197860716197098657478358118773802861761521026515762319733228962754139224884060732466506518206087039009790901350623917526172827366067156255570766068845002152483035649577308698646154101747552744297992298312840578586087483741799950814216326362466954672134832384694255299976305701711404774534022291511529026124336429338273861028922080356030261140873516448230994242602276777222340559679056136190767171727670995987095717239715000790728464244821908360572360335606673871327983789928709557627875935463603323304666674665438626595122309660384761531641408356783304468619794719999124526095429573415381639015777075630178650103448620778476578614064876101775460185522368272995220610876266699198513502686256203042076726930205480384928615680192734653390124759877424790595200322842981892840258113656522872083827292127359120458916049539049953092347419311301566814272339128688905938549468271922056170242203147264423001172027253054414411801182685441243607443925725706711367216302634570688424783817243721154905234139352396840357725623088935230148545770664353009382976625958511700095544044078976006885419890094226111761915345586406583987306020107418078953748756283779046303350512456752500961632340042463460013412208871513670459310105600258206274250841127385891140987277125593629611141031740957726729433762825093951959924944906025472905767521868166296694858172583178769386659924158773888000130437168361772371138163989290978081442533740214080545514351154623281055812003961968502772390512417729306400962568010272189506910620970306917000435105828736388615850331495822203546393175156450393689563214777633787947942790526884638621264031107530346880559112188567042021618846445284801714257915560839377192878486952142270134438209121494206334017633668297711086405340084306780687725135962506670828819804916068656220784133871179732364039780589614214788112312707766403366425790698628601873527927615101827207271612859225595304537523285327649631567656965418836347931336454156924774076349119441370198590329204278155559447029191483534967967446929324073685725335177671498483124219504308405217713089072592142461829018815696380818911684785453113912778773083070212033780460163695144341366041798001884827820656657434454077255650387939841936197476129896163319535369642605371061429993328671250638703184221560465333311695707725403428235795507298544887168111336731694545712696577519923035256511553566035421259945516335007281079739686487621530427442430415240093949644845589570815095036352363001079784808678421883058957476720159010531852833641628592009687548789849973376879186523503291052929603544995204046158319106218002149236916725098528353447906315974805961457010361833767698067363383107202991383183579505125600529779872275511222616358712015828135132377684702838956573495622811791455964984245401629190035670025615194298695071190366337940408899247727638997214371349651600988980242230366380371230783883397997577587516301376671472518390821434756658948328679327534570954456898825099708803612106210245475722679885661939284391480652685077472374027371931203400792609264462762252666667010359292454686372022330180579852351897068740562971010838698571296247726628942423263582822820253139914914206214202689002126257947479879836084015585852215916274585042448042717599514724615992332395243831769853548690131050142639886019248891166950346221251167337517920990872912843750577448413177205627133940081380007566821073642707247559265882783948602828841063297499676317226164433355819033107309460971283792051781299825086217811357198759545496317744432988611005541060037882724898495602917994778042168249743015048703161866259747718394557290600081420654364956871140943199253701779700746979079711350082221627082560598510315866419730031572892634811817664343287648063434270689808041938278481804250556691848367014394040702306087888111396671340872983280764904916478433818338947965197134752994493373343045047330195934063931274630405087619499020430421805720102615946428381313506782770889475598393455956871570831932976726093222112914246154743228817941330653528849206297406007850723947353063493707214519725067106547653782101073391918530388288198380301934562175140267909769853343509337878759496407133591467978280549795521372103070663793353875630595306900246999203564001501751054527418746248250736081335091408878455716315924978514223968260561514712447748894949008126877056167852047288132604138093135379362781755083227863640946611110880571452755000095586770979602749915242514795966588283555124283740543051995990926398734138210338372849987078240320737089023225564614666487440179528994124764156602534719266348835908457812323061046510868891078973342534433733458959269823942803772128553308195134713127612415055431348588947739094330745292993065077929073835237088937595335779078334043980296709714818572026299483800928707841439419526909890895430411991828515739140666625182312871420046109753084076502505491264426382517397322201537423677680948162572695996757021128707253166140157073386302714969989077927787324004544387039340975845408074115218213756370850219435442749164237889316068163522863855073072775629116018100457207945504250847389928289222943538846054771756404572772371511023480562812868790815602397233012105662005096749740055858047367444169734340279368871302840575890923687845675054407142397844232073804265735890158613315100677579392380324648595098977989820474600319617424621903655566960762595455179719491138507509121442311447122638644680724979405401545143949062470629338371237592738474022005562508725654433440426702033065427826802384637206955069745687527612534093734896254239531567137012050014149311113511072128436184963121511102238209434893767569578423014861843713440413229193388680026369118797570590313258558895426520425980066682710032094029617779772113360208118871014117847792211781323393431107809692580790751171840962274654000248366262177744727417706179237298032500066970070589950162994944790343127548545368805317010757202277156658200654340979254016491525405885944758179982836669584659958271412317252699276347446499747312210013593168728695242620463524848194384316865904570889480388733721084968657858767271737548613880665996990853558982711149056192701680123789398729532275995176378714020484425430533179244903454927755336132841737557160874294042781918541514515682791129122683305557215088699424609395659630714642356169376052312316128822283542473435162828782785603165391308141358783200404716062134938467868838901443770439199897956725337029330809407932977998939478258619947834654110086804240102133311877165738929959552019263443955877978629086163808000907216027879707280667910891277404527406061746146638583788026584472257488762758048488184451339087201263955890447483262053968351468517383906318075615225436777522464133653642388550515555720495391807512397937170260559814440807791061977627017305770711310432405809900368457869430662109296680405061054690386910504067760565754692028679820881062316269236879838967341738999981999712906313451913982328954619767514608917794139406995636408687913156176889242929160118156474447020036330202494831392208187947686987056396791158879548455211380728025327062279159121220025894466136526727214964567641526472667467281766647357878711464497159460992533218751546876650940048104337178638234590553958800322232450799556592373077102886964829696423336735443802438791088398538128794215403553173388500644962022344877611420478728663066038524533816017821237204887409007347159093139782744688264834825521318352680725614378264768987728114114105671471106980526896788464295954814119193332292002632131220953520880044098211980377941839117381355533174713223474677803968291186197640388959008397940639907339895398367122935394018451275786187022497169405938787275719139554957254868196216019660943235905807146522692493382423605712078748930664113337253750403445944789970925212720753267113978511820244776799547879972248093790262741357317371280601902323677734311835286427318999940109659497571261137088729119662505956029712773927599781477702330691983460897039294602668671103122271827476367625195780107255971556976163216056320322413315645640270350808789287233726241928506241295427689881187059281383676507651397337973333908074545994693515781747429446894610161738951935293165422221626955179698627373932743505503434950403269259068418555215795997844024191327966930307684559103724910650877962775894782377652427883472903275654401066335024993130403864159030293183140272598058808375711488144315619495289782686219742069800683654790296387247973463210824214072097851562409861649746200454926415696168319798708149440609179701486385337024738910971418310903588199638121770653985233815472608967361244664992889649442767474960982446062941951233367344701174140288016805383225583256677555473462019329606882228423451286218924182543612779730168526137146907930298969637549990578812591540160382658688569355040523540411753229981718835845979120357058736216186569173431352233922145440068825917452940569164785763773861336451355216147756930287082742013083908925091057728794069803953274787787774318748726945585181235198359996229210477990044437085380858171940864367214639989495338805447447099215364982656664282074422120953999960273289190174725414902728096109947595492248718334429570352897320222773638731240849417330236341433603354784109505985406080666677259927678582219220816410401485420101773563482593148114334799094006782213369066842734172451689764754862316810505072525638496751850351086153765156914981667361281669765956493978168762046518863797020376063355001989360666798560320244392403379786706096048657390698609496979363308949630509454970064352142640285069568124407608804110641929115887019964210972526523048295033553849957565899747700317408234021771901614344064911495684293680394845285409076453516548673402795060527684318232599628651354459735026539457120297879865792471029937343665750349500046475660196925036157540415724186790776107061044528526106724217327267345987160067920206814711406378840994467981668711164541558235589256913881738295248514501462248874310371864003263590406736834139914950701861440550822767593387612399799826101839713355807665671187483521785247400090774409710201152755631384512564748939734327133615533622334816979969702749952516781225267943662254441932742848647139501777269332546152552972430630110409643627305166924647565817208363582296596867245347808648771170163101342506341138702044225856628345628796105484374515955487164602943883867983136027350297174099530722625542053379590672460492035018161854323494163604805424699302862097930202272005505973262943164111040339772754683734149788379148811644965113120453601937920317082118390453543580617124893622087533092906047009702746044718280180589229472407906291429823232658870865239741370090304963771816471373372649443412573351949423003201548138026717604543481038429867598799221359381637432153427286783703103866212525261395766620193046324431960221650211341322401309348361220013050794118225928349054944025921784000464917718803956486493231055634066040055175446192085231831876791296391079934034094861129025545686034598746871443379425368411520970981356560224103557849389841076886651254937668188512946084885607519860698409887446078094484520474149044434232654151159475721242263582958508199870718561676160861117572686509858141318332488249483807783018016162703687617184922063848539260113782890997421339802037042124431885457700740740949090750917100248407847675216523525027091193785085172530483275065860823863628487509669116816164684093107598567369288858948669158898613060163774271747218631727632317333176535723360502952509770117765934716673361143666805725735345329208770946592164653081737203960442229503305093566507072009973472295760972936788676501195346580658511049238229552733634953710627724608754684534692454315196194868293720447328643180516935874606575033156541601982261027030528531957344167445973122864673666315640082075147501591157104686867301716399152486903818781283470265381179323820769931947051824562696351139417892747258922047429300201032517142628779067864565473563972320276216335303338157236958266488113773426446926168520873402418293064789583528396626415501167784993360549101796216966334472120680660652212077850844813754235657647103898958008934580089046298455355946161001628667929941151505818702208506410728148723687432725701678549086356035084036964682811635897002921678087285979790762266237491216801259440775592390135824867369998234595287605373519211463797089952332278044270029459347597559786581676899244416762810809359886026946391437858820559171076336052415698633534886556276994420443575335588752158804340742878642444560670092876953184545880958142866085800279011738839013760474357766690816354060015866256351643059258208983038896739096810581380113887553023469436668161680192657621023052831916795929597851657675935348665060579286619938969232593503665634118037590576637623789726085676651078044859185461338646778729166620133170061857677618671551455033826311129097772037703327632816764384190162155838824921465696968293866218170306192656050036313492157354950630194291942645438969890858133770718556372495704093123882402599477258082918410276744866217995158723204567392318817203935696859975338419230980167725386803878905734985620530561690098636725160830093281457415911513133988187191872420472189284553780662541124613926845216057905526326729018064499439496007230438609786778528940285419247885839224568953822185534866405860687375086832542952948997151154839291022529122735007176626771408590510225054424745567670925346068094861003227083589026908823992488122312954517467984424793471452166276025316020353181196992836293010909521071102871608726727736523316671508839272090392593108509421504564978720862038987972911536442695836818338690606460492271114536482172404023189703793408192423808519739371946560883922807503163023655842329142747269693993124989376605141642368184936409027069666186612324602122578540483588941394658424442633808256441850166927186540406717051759546573837054229543780241411099184636393907749307130186244542896201279698796632469589464753422626472973540103954650149887123610903949848937017064158442191147751498202211012279288030665727934017321397074604194809756781943305649194471201203361938235175546336447298978530617170560986031171812540171801453697706866941092179025630683125231793985454238765817652274081653677089834295191929794218311800073002928064732794405792736514282689162256786736776836892051680547101943995937330646727664930839573103566789572488468379839733702450113888915448314147236514897572109347036248686494094069222180764498301235624820308119317310430198882490025870324216904069862414161063849800895352471689392664276943012026915701131109397126005491910840895183776555183231914248905332729713107891014466669453622380833090067344293857895230705954672865231767980820565794971657602771429600357666934969415845411707206191448114170778204294320543493314248607119610510375913762884908235826207055115566046681861324838757142393253163640848128617846732279681547990288061549402349865403068390671927217954863942262107040912333601194105049426466299100369515281160520569144404304209151689400204996999199033471106960616321618725904107476235556252318227935510619804069750101723234785146286495828319561087342444097344015316322742724951870035741995714617398361294608532262846830713313008667698806917208161304429133487256834869022417276744672007337317434050273891340196399048651075847188868081056937262043344969916794578198629652140385988979864214096674677798777848417889218961948801099984066137233750001884861178475707217137775714736238901934422715305307226087497611950915215612544899910615569542926488338795132745788337917980950990376275937877599346876310987512600305715073976927819079193722356446695858093555249901176655036393253512071970905348712530191628600626631028674963439737111776287933513234906497189309404129236246076444183757862503772151498542009877652379056387655409624368264287357591830668801388215793303561220138008277826966618039099394345449585231873629286266467931417724315620831783049993025921427800257638918970366992494456871645885903809899668664569595159396906495904071020053699192063560505558394258932812957376290680239306002687189088398826843123361079051385473829033030739032844480317919478845513756657156125552233946213790981011684731810436837892723132838825884565689827641921901538670329501821601864769889826880724266801473499356309396584683518897651378468555581123099368714983925020123196334613146842335696119187538978056751726392384857970472294292029360245168061245714861619039216347724259385969427229593534854231649216538898275012482083462031278704092017357181642783320353888955618188006716610024793720285422590255775395734380828040697878665172888671475903887006505448308482540088824911488586267962648318195993185899701845290620680438899103401514736078358596881386517093872600761910191445236739058123140506486638270626485105219497331987104446001357588833722124043723431018374556568389040064277381530374797468242534002011075511492929305762282428003957321161433302539515652106424822635034453556951895686075940309231957259310583562721672533348786026903257391906127501511059474235799031313988489538626992445631120902760029673117913220140967742210449853931416832395652971260446241022359543964904528003389482529800380033881405288844880734856847655497863371974748823714938267605579240745240526436843989216057022997171679041090877371737454405187736711060461831927208261116519889027408456505906360659936365492348788475964731474561640614151956600585176432957431649558588903162269267239979556507340361689192714013834368978519671349237764896097567992081490911964209469166479062339746213684625916696195469604641484693638187259414673993335185898826404598318387697178075774803216102745686777971234012684741788548956745136290766885537973400544700044969372215958173594154260578410123442908489519850074423254085407308378856341755847387493983381803555700877607619419714791755434756325192419590350773359434882508545342414785889380278425247258161705862803042218375437294339881568906505488946660127494430583707357529015221585271911536064287751514259068365875792006661556340614477590002566999903157936525619970390204022204530558852600091241557026585439280149132139343818887683142088234895047615462712237062253233731106908493289902646585815601319617880302858713992813144151840664533468279135249150451305422315381460064336119773252050070627879465816915162751884434021318198931350109447924755887804662706813800061666366524969723146183248164491016963143215760465873031424445094850938641364276304345839071364751997718271009256706290346216980956862138356523621131529585669431858172209273022371159110425216545791131488817617818465989429305589688637615693156427827414151143031026811488753029918751817983013114131445178463824974895987194451382354071716467839306807834720944557152221624527569742313735354022604593878943669511129601550176709391320733096872440014297613495386944859106686489861504081360584528702138247973168470920575760499166248802303705325373668736601317066254639963698979613613250341449452526164177173806898680049768022147675097627259341434574008510382328338806433117073913918435536581474466691322896384511473630925936427672091764300593267915346471570234547743494613017097508485517826992703358066409199379035403313795204032067124766204911746830525748344649193816548336516611919301871324684186086472853930764763291382672181468378040868163153516189772582283200439225257279482785787466292276528475287580349968144051266195812095058704819283736315557610137706377972980449502992217692825993008992648592004171055293315800645157337491985937224169675199600922419651502496495309981542228118784119182981285094135360807760223356826702449985571063655690016322552155669273473210947876495819302900264916927158774514826004145553783006805253600428053741328616429494266565047418528454953910577789682400561840864986502413728087125558697910476597565571325304274345371193911724920724526740474600114548582399367599483839081867791815678561145002928757073821252934809852546855053777448540413246518675712837257878169066667241890844651383457989906163411324325897507553359767757751943208572158008392570790774159387963769716377784274302291334604470160870176573292008235778311753046695824506641351054653745713276541611692247404701932064130237076955697145987349635335691579523135027531252903716975235372722983339465572024625067366954570010796861659141468165218335183326729329561502234881805254082300422683435715174710635144182295179826841521454030797731432658992500757491268861770308209243692693895617511360315165041632866169049864183169631363744208437634618565288082154723427494191938279855305300096222336970925846721272680254407327769806157979281053361086261715657946594800148744918456927778101684829727523747042682924069850182940326644529630223706716638998972199779291830631472801994697596306626958680529502032691749322711646533864354693794612993746598645184478759445105538045491647211441720388043836663936982845841386179313555044865987294737520640710450246975132413755818670439449625418408973903103176661100087507957325241576177834203651252908957287957210135433806874325642510158919415041718941143868841943180032499671714802031421406474756677851764324409779842139112343028426720865570093684236385588599524587946199661691216775520909292654274294367494067824747050197388640688537185771432442075842307021185311453890598939495463366343553785589658859025565257944347685252008047309757269984821780735711150577600610414106832613152553217897467046666599225655783395176120740675552853484961778878277586799763314778910651741382808952147267952141260559144946800237723117023662253796624219758386182764346769747737295638917321308970950022974249193605082774879518232894284484449915418085390005977061055362841830203360676151477385121582768933916210249583537857233897203857509102010485617884192553843838767585498863941307694328271437072391483414052073281636886828136092954807442478749603156316738889518288518732345125595290717180440486746045810118094094644026492143948306997427894369150984369312752655582220206992375423245274030657654255774102975046115451965929843006634108868690426695085039230410305523344980069526392092997720215658741543623078037457643241538684253125382414409570320605831252653522689406178759071985853128269391367776615312567308832362834234051997258559028975680149157841808456139565209801275710938040308487856449071692927449321106887573464615513859645381685328223387549047581801779650457409222726215613844293473595732126460530073270109684343407388401386366784204709569241060886558517439470614603722378429826705859577990827271685220172656366213159081211877822989149576250190392515492902378209218755683741489482029258308399006121459877507337208974594853161029235290936493309674107674444278677011838641329916982763894849769861232055206132321338282509466378704096107233530095955197387633840247113769272027531972980154640684564919765227977873029203236650968628066401222625952426094656759935028934188649794970183322507310439522012604461562450590098149042715368519723049985940431548769410911190051411334209286232006782206306629677197044089749268460280279646846777161667795954353776040100846201889034000052552094594937623914474178713192134069359593279287889331013801263525235114998882491154395359680683499060679578571812151232897355469123958651954879769900183115770084572311243088167417517335781086804132500966694583974478608904116065251097603324849231592332416333082930282759049729727051291147407357880518335180980084544266889011958770170174615585252967052904698036361508891845814569768755246405611226343028135225424143848704529773965155181145976143333527458773009978668504047123256522224637259653868473293709825029166105756307336549334271237621043854654134706958215872718599336847054645400915200690988405153986865659347734957495611706831966831027665137665961279971723345133877963738480231976175800608800839099003799330276048695536234474262846012833918153650849618350041987798615306150645156072781849889005145224783551860338076264703920909393434879812815288324133550997649438506802427906536734268414614201267395319600485197379580036150407127161527207733413419242996210648261713279744637617358105170992330976732032021597189141310682477531770093248193695869143371077155910909091262043932962007123298009861925318470995919760380492003079992118336343843739050259797392754809598160587184308672269694271029389724125276655563398423618303608261300874004428993412246070659412774775908424683138577789095784091608775023038952858984515125640009107283135956611074693540555739311147366133059728900440700534695141840314398816548588819333958173888250796937548712956573101207210725213736529795156137811212929857345346726517013579530934598347652116125857581746872649090338129678188774778772662775262448779202092395012877615402288917208932234369436210352191613132362609922079344728330184847632209450324858646100133262796195068069034777050544361691202246726683054999486118534523895219502105122941772568841166372219099269009466814064209382591950297085764263517857150084165771036938773428043943962503448573378115569244093583466020834483582200322452890739987273481713208949260945720045679483102420328037939058574103839054457102255821914794403030101308915174739797220138917027530318725553356581298226961170800470016874973536688974442993134721112402936743758814748905604268187326037446201314366133993208851386376298465827597558995036732429938102603315413889785719259795419078912752583029444266427650138346025185043711677363816910372280400659068649077996679875966913932286507791302219077648161973739046252854566022395465503891754383777630066277054922100135122659301757757480899950079819715518587487966793893524905026556735027067174998090210991224481237459070819474238054893147238179503874057339482901436249252632002442449023440111848112841429706549805697302976368418078349417783433034836371842664541375428157265553949632506722013193530729775696340903082426395909041686265059548653457628661150980298873277707692787240517746928129215930675424318877325226554311222754799372074288864794715648929747368815771584148743492454800670864628730374569494818221062202749302658685933872164973274969447005886407243314541592774182918798397694745046564466649414767096933692840676643133505316802793652850434479714419976824342346182905365505902158593850228619682593072695290143057344631601865495763079620642024464154010454850832081906384316580430479568773275376162990929872445761389056352243544889746952728277321549949159998834995985851766070366140334359304316856732989955043273592600253851939254102229325577056521592353608974321297201187928842829737984072184946519982241210037158390852171842414557613925047619223639090096475723374994896293818168525887227037639082168483879561986106401544986347392116030949341228177701830419243340800259693106832730531975491859410777038736014594496275585503767919186626814070426623333597861472988112781541088887376885058666062387064789356405571179213239199321405774096306730679928175677144727797671248499879089568902086061914904039472722745317590560618702012804629788669103052999120178693599001621566708326964675384295040821322827427808374844939420110792000895470816509447035788161089023280739321737402672849060986237497888873400251793768770014054634164136760553172190664554270195249429282362538004397833320116998300321233662934675230161692584215468195603151238148574488480521739964006429965140549376522171835381617945448563489838183814955247055945222090252656889138729465028559816574417930370017339681382628125411752252982475564422331005850336462997934832648265251927979504344580422420545700744874628749926574997242620557493363293392850758954684727328874754909476742637312779743452844399245251437179070278993259291025280687413890935622793270655965454614645416840510887510695588567702754809900498996045454307250270687710560093923869804940623396944899213020074323578519354470776976324179538120359632193008423448687045124974922983966891133112508635085177406620347940602514950216263756489030232395303830588270900769091553274943733352355255623210530305376895879782801842880875871549890011431838533176083882086145525884298438960309970853023376581700754846153086134791530063865070762227672654058531941229855432234169650866433052296010806415970217227779211730979086494810963365411882010924724990093160615698879229496304911382544000833158865196701253999476576932477336188536484265866826426010431067930886831440960192902507435023349767245999342634005041414762055301324990546439164662134531515867495296967272413997060507267038256854276561152597635805078686137101275806602251071625822058953504041905701167336073218329898787645439563191244620145562505721862745462387831839060952852715931219020885762248455774767691276209854298908702669185072940826607439571280213823817997332726060219639738907230801286464644722810740078156693063942543215565727801220740697106829115354716426256252276401290364685698147251427254423094610033506174330383738000037058066499530384940150406490373495906511933114242794148654601803956679820374483850353697485252876953487098830409138750685699139675339357591472742623614829127410239780905331995610432824608115890546481972573152303561816808175348874243005777311197006640803120373817243990143337069293520254866580897509855434554789917030101059503058769247167976056160039576251269423309457212854609631848175482557648651686286464922937482038092815856057314964346483620760257449566523155441136210404283568820864763800796037920249941532613561413757011561986100618854284850531372773317123535136081926564231314907513720653871132477228533340476199257275171406809099697485150648177023616731007727597039428751025875119754587708381658950475432279217323172097974425515922740220412159737742690492267542261319286227583098938319420305334753782583705797924432502218779658651877308137461148879227881685681752513390906628871172701235645196140611386546516206973040946633575784652457538455814912211127269690251466599958732026557967946974076934176874355720359294687478888225345626741579407532450786015754028012106267404706722157150146633671313802899416910154817713293444693828996576517692408767086889015268516530335359139816386170085833115126170729005124536053326891504077928205219963959904231817249093864254742149293783790230912117946314409365012726755919365106634355890895656901439924491240901707291247414801465759648920143617990721716415673371734198970752138863426805100292299029951044645463479839698716367944792813611294901655857491102132162275860718882126108207632638717468849802707560484739014205195879699526505998154433564664927921948554678250109469394365796416651028048230452080267453792498794695776834066724246650921731355923046197241944509711265211329002052067214714327115083598480692581217608075725159788308669367252355121816234524700062021041770393798241152395984802721113602014138310573386492841649433451958686759540434931655638704421484384914464319989279096099081561243853715506746074979918198013183686356894128849417241465695565801990607592573190772078039781344948595642691577009306573545960251592788154663733241467741806832165727347007069546064355394296466155437994243856072684995537524109571189991384605811553201564763243332084335060613356943610609384909902905748232807869143927344043326607591675148188791524555831482605182120532902282104338397866017158076034564629775183426960576350506893040038854819191205408579068102802285015049937850176606655273395801022140659405162348281370157210148064147875366783342876761076270803659075507360544771557041593875027897730259588255848963383798811262253903998409081419110164589760692601760430113579076183253886414377063805464484383609638219416753719514315598334553439909057496276454218505388323838786564603954605896580671510843442843417591312427180520119854269099142556385236379723600800156855514942874833724028298810008895696602559778141481278638793033831491943011279161127868407101357323650133855428501900084332376208277500694959326661508564687747617095797673779859499479326253665568561445230901664108245036833371410763620650902909908261288271688585760355497789728894670098813445482889398167555121825038295808248697452569939255141621413538196326868658823418614735863490886566951739505819043377988898073440247760392404984348951561268963177678938874790902847684975065756211298057229205024571829298732858676283227564070077958471512385882189859803025608383550381430434038237012400125535952530585739625757909482523628800701411838866038337192826638821966236870917180813445972703654450452305691440114940270033802805724105188427579816306801053021344938043143356781739802764262384795248112188879328751638455517930926740991995955342775416548325098589215066431537206065591706673287117686773055089151250199925088858292639138356776295397872615589554776679909977775524157267361768102981177038758523893954431680360736459447014871812588501343392497935221686518190569749840295685851568096944891216419303754444275659344071867104428280413950123386837330460765403942479571936287554637208237222360188939376859858678237895062972245700630663684813575050194793693642330357755753789653674245827626591122787432668177162151955242531498645464541328554055775215995551981075261819236893460090869940468100474531682904700477580144969525760305412191034785063017354729932778587732720742726129187302331682932728942155155627002213175180236103825831426390016305355915100023077669708498247434446118495684737715618026317434460561960088203574758114963516711467939925203864839654864264710101726808293473545743295623962955927089051666838617227543066255525955487489748442649378512104264307906052568004251866424963260615632461053393827199483313403018737554439755092902444729769130537924388017467678152687298660072226740641052606741030597715265550826780605931342461906329858440759716621415926356984671730163765509558898806756039315625441725597792142243713444741607520810011929274496064593173337981902129107081795368788974062022869806677593864650828469889734873427459425103255823945149316756702114652678128758756752149641031196878201131346125415403716077591311190749672973473515835489115090875815594425107175625305571035559229602948754296580789696850738160782773198658704145796152445642349315623154362459971389071583148399906391441309161723667357177918520520320085089399319275987512470307282207616767249745134599218597412527532804294067903125885482357120456724030601885631568729836577427736626412201697409798210573992911727146354359813372644248207187693111864790899506013866969394266084519784510026347291191796994021117813510232869025838691713222766236356056120034384141091485390492085029804276527841423612680616933077730822268698618950166535165420647344635773287750051172128554617427616747987356875844687957402048437550602606448991641582369133139141836357729420973322332423885156659936362497669505800738160085840259993547357354023093990332562496662112132408063334326526856991194679311589094452627868028403901603022888778507556731929295587859271525417669405191175175480863712751351671432383198419367048501808628076533972094434535795503369734181234809592984693984279064779786422069351623520796511253642363193695043787429754385038833348978715586616046410388910092708852640844624773792317648268463479345634424500929708916775986667753075349764300467648870527496408984492009877689572574387157135401621468373412864742508471542420873384268742970327121420216102308909988772335565780498167699706255659158579831559808077676738078161398712471144473129196697649435461264620579756808857973113223718608034665065202493354764195742861821538272987344343755425590690640250169406121035338280434116120613039364084342548025040818772972378241103809594067713831550649309177674350993721474096567260558908982576013488908725225316881653737077378370391064789949022365409975764487108398189642199160292837895466683527136620603392153039594055004476077560219912425001117182034056924150891303400997179284631559205523920795955351582754702962051876225069989977642355178399584514887865917614916590274618939635280509334016159563144973112420188344433493453800688400919771188323463277376905822895960120943417450046786151196837889393539207579590740970877097640351321366346735778953492892582880667064418441043456750433743920577150193211118375869667845150409009298720395525890002806586422477634479423429215257778969232019186953888059016489617514494446721362305891625930498398447929284857832215717290011938981927346151119425422020889676776270712928918543526590332495710632680044833451301943755386799651520960846081499221696246791634600960323724031177328797299960900236465763628572756174137691033419878595587035505774524711613311650003191004697449407946547672163076631450197789696742768585608869478467485389868518515969566405287300396838126208733242710075183847233860673593111892476055028410930831971052516483433920795762822591427164949222769372449958354882813810078787026645514611632389018733569324004348764010784504170001548787226736518997664144288460017508175182385023996365224159072045314423520708141497871537546050169178332036627494923321270742403271965451930327915908405324069136543909663662773003950471183219733894729668139355287026660744289041087624550338337532009457541616164173832828305948426613317703410711118141327674190702231455159972149057027639481219044904844193455923762444444662760974591518611431289015579575646814955718275173019796339729896035758306501472129833770836823780463042596261623936227238484522157371675460005568620480596015330674278584971380470513309828333961697411741815946944484392095378319159138120249009215180687800839412589932466185673370724923614036868318509784590687414767137818064930846372075749237724793122180796697251494517947367808198930292172883309041855210229250735605524935435706609624864813913212977926025693989331232259420543346641116600121735987081804994539008409041281318815001913457998813246146929875721595988242096186572103140791768252696340651198905755312975532475220924969799650693563723664191852922090512286763584976357816727013974666966967159487605918983136889317809416027047048504888698869264963672177210808574192929249342329281684511600234397417138730039315998073756490980644772927695289412939080880903312402474542433632851241842620890316164615245075249936325966712334892050093569321114944382798235054620809822019803260461913129477842259324244305350322346731803881256052670827634178870715141321589377818985036513518172166920565590275472288184088397997709285609724183249452864224359820119881150346708592755126676433453485797111361266786352961783457061728785080309245061987990405781688987759179966954072941812916265175356635728090779423453380107515754402574868480851468669304814976529303493963197287795733978800508293760519071762595123148626643153080374853450251709530895146063897705241302893792274737544382711979329593007829014343891299576652794775445910270501581031612964032235834173847133157182505962645307997471285667397712932328538383391410695086936819559839492982211449354517381176420496623197556465748597751023241548558318137003801895058623538833639332771757105693562455414106797043566095043885671221943624101596416252886245035986051005207259300463661841868441191597299259056122876951420366208515049613591219750728310207024500504535058279044986263170989395716254268330214897852707509590486275523930739420955173730327055055779409455872688441756233034411883639361031355060641467595997463870120036074544456911736215175291978355256545309259769308864865884451398921248752739239982249456529031492655876995402810285905129786663987945770834069447338701357146875635608531396035689162936091366199914851945720846657757197630524838076969995982147127414252326188224973092742231128348443247806293164882959402712785662854496105415337222646821255871275263545372320797322123740226087239309267045328407662085688338452224738766094854029211250960409511607764532399692317226175942848980802803491317685513991211500380836644197647758680083992560691709510537797358523888066368669425600621781023970953321475997981954501116877191759069573022488997244448055554731601988421509695483469918806916550180322530098517547587679165460371054668716491378166660324920803071179603390887676228525984220910873656151670068558183535651971654169759471507487174384469041322340397334615663871576450064497625802899717592842089041081814491105910649601865707382558532915331577848621123127750316959887032803736175854181546589080546576396037834522877477326723726366555591772713722510824966359052776425997252158650086734431443189027195469440101600262380037273726737229001844384427547869318259818273618610267667743024616076519265434490951304599217257502532507041806649297885990802479664057253131654610363124841947852839355552088708480514819945787936718094589739117312955687714434526467460828255002812357939504414999405594340576132126611606712309279145200634240333604795155694878372968120688381350724891360969601138434806893740312566670124245671537291969294036443419027673746577781402120722723696622177107198422755955086789048836438765606484079691613379953273219832298866987536405206939232252181027512364221489957417154586173609811199742219874443678126631533902240047655284360073080804893923440914410330419930037408677917454114692784834981653855514097352030800227318963335542626485643329052352357831819269387466953244038740878175426210048312178755784817477324108554885468096854280887665220393862231264736824919722602745745646122259769108837793596105067394117897927903023933011492810681851695056652476175695161634180172049681167920693452315483983213213972610868286288006726303683031742272723219589739899131355436515859444201937029089452414586530170691187091419581316611827273917290456922888848173526318525626442872769856869806318267653467935373315333837617960776117636392088485863023506430980672472573261237261396035464121911802014172191116231084892981450638338118158284224072864188116173346036154353660521600904710353067340268026493597128700107818562390006902777245370908828392473168330847540085839506373038341993845747513631191470187470535044262985288392869969176325758632308193601230835244005954159340591997450491706478422759569760326817736846197793274921153346976307718259661158189033651521056286365706928072309064603791654886895753725027940329197401495288919662846984706113988322730187160475201360243885862474267392242594849971143790996526426310878629765109352711386217611640397219846077025674090103671631007105479897179379946192838326637782834114698774221294022685346907288063568604387317656684467750859459833698566074630801443903273207996503841976594651990028389600977770405496289340639353624704602071315810899205911543402099585745907341289174013468577280512186187322387854757732536900243731060050812667436957147983642630648787859489079810660911161658458967462063846849712750025361057575709862175092450734457391214724001890531516448578182958749318304475421048162063008154583135056043742467072958922639162868919745185744901228051580752082149546452675844946378751593256672784474635770927420090639143876346239246029739134314871630596447580430416066458103904044483173153623224908632844578759870315893796542118608694310961510542969807296833011772502533404428275810238035064219769477358629509287617154867987047156747933340031694243131248270693789774766545174179377811195122771586546529063532333820901825230823364091435430375885886614022510178017828322676173748926990349706848678916867362090591879228599918517676187605350991324642758121674893381471077003793551822075720174708957828962211085880305942772544072930357111972486945260394299535198997478098575779226791011064138199829278703276186074060799533036528404222721198948859264015233809382454518555055231926150423350235229072718631554883884551614223343279840185123121877257174589185042663088810207537325543417499826480072541344385766951429126751566664638736619817606189083972517143205908482064420483924067025769258750032674309569147972567871193488373563091570247833492952778980306981965402480433205802318580282026000408156188655291177431321151105241941113642609813606481511800375281886356392139386882729752970290049483865289764836337418487877469025028690650895442487340599155332936559443777239172637164727071649583173300668883486733974034835989106305989026062962794361187832447055386997423387685687820865206938048080814363982140742084212005740036514170340128410112071879998548609158303601468021076578018455590090456172160413931321452398009130962767262065789117042852249932972202968375012515975833022905667862427736772646250327831199140374484540991669991402126460266427874570652467744119641806423044055388961570813755879261019246152439444713595190726239564734684087523119408869490749540137390861534143287866556271244731376753666305518674401761378853634301839506792056012686483796855306055817941179383852805294899435831975928197282092139812476902623699945740084338375159701824770359427871691390498851314749821897461233144054251973657431377286755085134120624209414051262754235173442882939256875458378973845236141083838715424598200578845794368168459130125887086250267096652320965017018181408420583623232141306804440714887091644081971741011552574616883389340404492997592302715320215614044088303271223702630576896929327083976024484448451611375145972845015424162642164502073411987760508463815891775187941003556950740561740673454453778026975118188483376072515839843066518390826440386043003063022647700425559798392369001821536159669277645171861643642208914471969413688052197560637087602363473732952835434693341926151170734466423366280465926015009529708044126711917805280802884349962033986003484634568965717654492939172587667020607816954714695739284016489026923255097881450591966786057686552797557440866427155283565906567039836412474357727005541205606275285432640936303147422611645515676597589276758101728090353028516979752908608609778944676098372391737012531663343562208449115194634881921997825309957373210304828419015458702989308855596590973259705617856713815199272129277845346114499061637745276476808997997574486397004133751042590285236189910196102411541992299206950502661484574350193411111925693163620196275973550796071016735362382691910423623918179080140403910643033208783015121332974631386017985924598076491167100882517894944516332722648118108348963676330487487325632197202645875540145805462327051233906519727592731066620021597942449437435440165477996232477809285015742858349523321625550287518506503675906928159950427699376893672835600435765026384531399484514292007267970103660366670273414954635620785363076547370860535502701793890876144021226710309411446931037256193749949000600244852659332604520016253496670280276279650189901963406023757438387943659354941854435176363582792205215301401650011545751916543635661086739604038364969773835229165911006416165783282990645056615144646754400403684368213244419902789514157005977098966405208282056941901736788073701687803553298804707020665629448472006442437542186861718815203297918516812755557030324504717143658264226222307404324060066494025858773908252728742169197216141398600384657337749574677629027946488877547787137763288569595531647919973864884319022846328515537022447894235900687838257441104797315593036644954578252377250698471955713443667162409477654085491753861506413830541513464725826777391055962335006785762589654141662138618637453744320825893763552170983484634210512776686459259993681081837438510985972337795741253159905358349780223523778369392668825953488166744662518699810947758680856157869104266953297107111117473775350374756385076061368903598488934410646612031164018772975118836427037903334328458323867999775132509971689605252457069906083430425152441065311691727610287219275325657025541983874039765780257956079002397446428883866565539111819557125176286503336472076261416677787928868969992566403378194591320990370389843220099013078059720729665493427636990789953058583374257622056769775778609601494145025059419500720303084816145417989703492829536237324554100843681251920309398236317805217490138862318356201948828908245340145340660720935564083313534208214917720844851874864999211422686735803721187044523342287901622355965636409479433352333129182552781746496473480332680371420040461400020932147362119838756579250325015315087223683393691054498910628022581770062970062595326763569945277427926943113737157889715792107513231416334382000393148388487716052624773984646476843405846665153693000123022186446683318286447600047321568763058042920695781225524278666957430019431556280405848074488753371291098362623069865614150725767355220518057402153235012745250976469087484879761277956961834319358145878103713049194158742832755397067074014986210509072665507759173849897822688220856575925616436736824016605920593506048669291793552745598503779758112046138608046011032431207190407848553883434546443071075328011927538194137180459807120987198835411749884728841340888687579848329729513397782606233489557682312051793190638073432587746794251187413905512205194343811701605371923343898214499961695913790227736754849728406480460867092112426898321535979229701560592222435031040162379362772260872162281775506650667131663607125774548076735784473153098665375858684272978311354976928312371504946774601392198133696649432099619948790344229609059881010170369140345985348428048595600149454877903208452073735965575063820507444264715086832278914504799012557032669307863416344308540286696965901862851208322546509755766228016222317544343537616308803009202256738505165022510579947126683346799541287250518195379403846147847553394399605434033502999228118791287091112936452968375206389209328866816831405593946484141879011698723860521968737303223184259759970772874847961328733740080905531386014112837541102503838367172746107329110965219682240488312002500540025135099926923562228828198967730397874575770057792585424006681580974404724298305506763462682581672514140777865484371168086985012013078062486922338860727891179153896035597360380822060912480679839891604085174336480966279668247565534008362017962579221502112537915450522581691856896480556815885092051641197482412167261274590591052528802872158281563398827093269568005124982945826364914236560645142821484203014423592537818790530926803922598985732339150221218540882835067280648706758173332947040415965861265296049250355370624990567071134646426881359904738499821237923336000478511769647152418672326921389206503826960223638207810694687377886378581655040721914663761549343997868290711638544139186837198671329353460855075228895751742309224774986387263952563804187207873319752939340146398558913320141948025663642145800265970242547079469726296472095184971615133211079724448681478858203025156803156485014996878853965002455930876812569794688882763697640293676471975175594849641395480677854145761017610554261224652479620163672153743339333197548640427431721023278168598312248899876599431660724006312082250273049263676842824794756490400155516560240311511248227926193519026837532144300929407197602155215580424941237131675849427607696574743186214771643054438307723328915870767600291253102900097779424565043672857234931602728428974880742633317401559738479456291753594091555253115075186197217515575481816080528271515677215038305233012103318547101282781980751980997233879599514902229025297845997213059675070768238837911381754159743493402510441596915610353320633956639094350454646079341863399533518753878555012349483102891202471070505242318457288648805596608103674537451083439112625509161586355644381789108171148645714844116758529826491502127869581676463138790273005573994827438768751452412814695534583298047748027286247892968332844133837528116835635388792534964535021956156076586751162603573471434594964138749168040845677204290225489805160246214200010552323725280568439228752035072131201995258411999211072238959013342034388099547102541032577536803573139018258502726094201970295771476514963494115094844556657790259046477894934679736420819764325380922200222861672521412428994819345967196360755914648661042046725776595298712353032723713450094953787234382243472020917601234284589728183033647810940748899989807405774629795653197167002423112189816272066671667627015003308052321485662286610747660154032656051054840767668947952744092534344336870290005113626666133264157582644909095186604849806593877745454311515829056087591708016287536106206776293204362299579986839993671663118036196530242833420542362390575900543524168513835864053604476613453413686932005343130599865143368004742423223320206076420463057683654485663699778734603508390895865181957252558370092309647541796847774680665002715646071557509085040447602071071152040035779836878735018693072272159925321738923280592791114215703597867535312719437575719639467433289645124052908393462316541584319321158821579402977943297484885042272885122678690608824121615534626253851083381768123527008938930851999571786882391088126604270286312283623979591222382375952882005868818820081778469350461626250716464032028365833934005827002824045262224371620043500891478448250539612078487672446349134854495679572534748842178302607578946541948962613439435564483130300541772224605024992246320163480645676627509527385102715287832689113762320494745777575205240340994534334819714855953196764687853916961604489017019024941411714534844915992597995202722892347484459794401651831185506761319401351905305059482401091538874084628001270499567974152983747689227715479009414547528069466098614984634784956485269712787191988873903395742379902908243037425016064622707387125109624641717489944991094192403662302525777216445518895913787305772248457039847660155263176258599426658311880696674763279543298289775097770382994636205869437447348798168803603009316708496961140130724181527389538362110494122760144337970596940322322683166153366298147786504017714591027691313190727435529936432928630254992350813157289629127176533001894094185912282230453027239618637276679922972200375995086315842785033695058840045245816891017391125906706870366735691050645738630903388675479502015348153653784395799405098268701689096290980559316885469007736706074445120316746215565519828316882156972133374724715323998008518286697815810475289200468206139887701367881316005140444284824903399031645716580948877266999094988403459723509566163906911422390399659638469428349731874191096989186171642607218041628926563072929437684838123597364897602958744376619890675287668018333800450238096461200052221547034413434311392484814937536796829308367183714293756994166373081142118733447648526048715945140517111449972652761232025508225149043275974348983320618020573059519435986455161411040389985234736356557480660449400659841993672643122625855285857589493183223305947447427928721585797287137018340767075825790058880935339332506301151367520358030505019243054574383132309106908695989709210044810402654832044639030461673375606242435741455815096584032651267611222457130553065965596443119336962895785633936666744518389973433931953767324855940043775141943963372173610845107232181148628340321986936363423855807576982538887552878213810910448882697153533288710913657488497397856818399306232176392314847572164954849558973896081662924904780268591703371315908542739923718210657027495436946272701168297494410028656481840077971480295096373870148589153118058695611055422009532539719478729305584106618152579349787958010846049783707437968837173047344170712540594841224754583881699467204484815066478004235104616422299616275928943051017783829754142938034697588537355177472444978028411276132722188696448691158756914643458640193260693798120120140782292830728663771401176866139194724899804058645547452955316284338683148933828782929384866183228750079318436716186292219131616292029236572333225756210428617368350397589687765292590403400736262079373417179484506850400659015285462354077415056000306619363704819598140159452697095337111028237287712133830948783330401100134990587484918795608455462500925748073631089829817063320015486095963863299795176690727606859242319906445561514196305930070605302210387455532408538754616342644557158027693360658827928497443555895521922147849330770037586215987765306321730606890740214326832635884823984242840421014097858094708643929623465028057932737953533537047369347218970790260807521970507093650161796331814045273281699267053830402138828019104651458849995856454671751846049688468822663529436178715405923048693295032006006078906193330732392218893624496566634434566691701454109853139855724417466392972287412618492843883185476521459157796273485843544424719326932797416941048534712837524664878530395203119641588741266779230356752983900751475436508241791561887920437411026896528016196414966718553840483910763759673290315387245534358590627514721448082613591508577267858213420607707053165376450642122794085936413111914398451159754088597713717434910125736844050373637073136087068300357361627966531223345382887904745635316435956809010413913532125079452068123207744929863818059049708570919495530429102229500943930311014030700321087624406784756081033593476977950219370450659445083254439176261882101512912461030046452629803471245325970730169112641516308097133005038437623022961905036307916925434565112756859356677011738398885140330539134948450593350935292268205856406672870465555920885578834402102331026454791667330960315614892848278269504574534533649828278748926050243972492019418445791369385897460759082450070258026885284005753142609319507615114367929868599863890926536665304225479513729055051522493381189239639289844310152434673469235110903875071276737651875638839867469251500456398963550869039400647947261864371456231073135763858440783778621239814418825942472993722488111292613487595769031311724362647741490610457074746230885804100192193745743274321035249813922993664470165451072530770809286647431698553611461837553158997178579824611959852702420777720142986220665306384295990699091541561453865378211056812428341161140182666103507961386551236040143509842879474987383219263521888144131699043012533179662020696127501803815434744157998382537928036815308987083206594763056944781549668899373109713357299248180740671114741466898938656139140616467763329197226993762311942202750396434494648290613888543734431069846300411064947502153449069168081008685254385401370321397916161359691443716303775698772801431564723450264385401839749883389385338828530236592317499158290671720518838198027843453234908749563473947462816042140407821430753447577768905650575234762426407910641209842445726517347059393267387492696411735830899413761361323183521095861470272737972974011786105134588695364233930364135782107717471163946920934532282060431310485325955303413774460393908668179945708656694303548879367552181348765196270471953167194027725148505676560735008764320863515094577155141220356023114021672915163031838856027419504459539282958812570996324021213379784451640912285787872481396947795580003087049758570457189280195499916366093343695209245658554260332505331586792859217579353412155481070331853540724741596979587847925485852825437185245804275479091304901248861161010871266690631305255527229633804845395231865906670440133954112772572853552855234530648845852503103903598630443910984369657804063448773917293923681298380477545954866946120017410283117203927651180140243993944812352078120303325897031243559273999111126259665477548023004955531576600124874992016085025277761267568881077576100456776285447747956724675624456703552646084910232703198532114325937266525551818251996914783405767650314610183433983789553960977091642467702854304964398361572153139209103546391034323132970100013343227447277374284754293802652260311386977257892340246599923611769369270837634300406804785473014410242255192533959418423284656147126651086832635215952556242065649304589061834289689566443712135662245708501595886586685582031230373649208729797115188371951906791972723721822988086073967280693226942913261452188107445861911076642581405987465040257631557748907991495532348137951970372501613412115020839892571861125438589565538227156713144507654813785490807181340645496198152630550915374469541269847431983134430462017569830624343970543959930575196813372977498175504202056498139873158200407759786519686248654246437917939911903552821342423750991036068018646937580911556847108183692033559115489208852255694093918680590335818435539054173614426114675114812491543248846779668552334677835484258551766605300002630533373298268144044634859209462862991324991120816753271326674011179814586479374071033794754108933882453289233571146488412657764419549238617929846212739444313227674433311113971042538438805428133074658690678488212690979737832705125310676114875162685200281919904987141834592888140239165531059118857085536886361733075695204583281526463726651583772129345149150692542999129761712719001054698894825087335316869810285030240799772899221427555030695009790274958328940354320125493677940208453522827712349836725079179662422702617253246401685695276087033657173354535729684883725585558575274506838121692600056267411390215059868740166725975679767482634314550362199519459918560068023320324001143265823423177310943977359940137633293243337256355648640933269613462225503328913324873933933192591549897899851249949731275896199909945108201249964151901953462059400173221442585437953578928643164447908107532914501091811204358746572591973611545031181511419944238652508734001410513674470971623907364160510823280981808848826196572033667225681384440770684403264473703698528498141408440140552366412574408798977778167646891660098755792715569535030687704424509446319789867071775078918324726448435053668845840451011053873859462825342657030896682211507360423718056826599688660783417510113185472019388162201026100302862086800212829156157631598266059837087311195073097790891056027070026950982786662785566918038804843930202015212870185419013928423351894986522819357399625897323067974385501779989637612028921857206415151937414488440734519976029626109734928209558655245996948247571796566811588144578982508695145660800407114689959633487815746373757435967376548596845206906856437509081436669259258993588152793503223681190830685392792766754000124422468627860259007475683392262674607211755787642277724148120489712886598512852156303325208744883981430940637789690424721278410618553632136122040346756463784415078379466428606226023864467455618223974905009028800385844794424168900679585569210370658294860944363918006550360010102993755639619981081057774234568408405158901718591724550083329443058437613544500988343686519660955766773506428631000045835634633242072758551276619736363561378721460939290177469173119530134869921705878680049575549118900385454959218496025353948987199454434716401795689691264615368528142735687299332273121891485593455683483731356132718145812003709380128744827030795860434050551667757033158915950311587670851266992289465343373585206217913994364834141499252440091298034799866609358827155716061454821426002355035075187720284165328157576272442398353200078620473191120807401198847585221288472998538025547370494289389867547932338644033899230611937677720522145139862868072525087986269908716347906602827516331321246335365557698517505564000255760892891950675309079552029699736908515271042614325168426052230933429201637884999896721845672326388217728991653711458163737739737762208300016879493144459213499306138607438599635531864938372389173694610826790871355290682444796326096556144946978541004083526290546280507901439309792043591093375771386662766130071874544393769669082171834439158113420692627061925292987358384959369916663947453103665985765351073540385423060931056571322450532502199488862887189176058814485255635499534830323901497646581303569518792381202213986387976910057635806375066967992515311391060095482998921727065809362376645885814714591114221350431502311734017694215283959794274629407793036149515131913739515922836065858425190950050667239185031086055023101595049299078864534197011590606209872322276035160878807343809927802162799848138610349947835447007385136343525441830308080252746249297781614238446070338993452050222467595468894395834988290679490444703672352673935841532733116224396685331308101981031990752735135037393804991431511463896811202210811477618500000629122711673460534668635190166085163224846437426948567719140697457099895724953063186298880557804721500734426024860733565984714818641757753355580682863089953074661373977307392371871700865987253146193738303608662677405385361663603781348563104333175921841882821110841568028343786225618129261129193268555366138246517782290795760492065788395126678636246592985446684070002515854492275394924049086233638024914420472062200277794947689155652749978238166800885152911821570608148561038578465208071929727210539681169987887475027480528665330045970973175645584589084692661508610028330044238036869252391637580644254672398353091981059559431163073539846061575110193704737323362709655263827201062757433422014084203420848256569139843027596715460271784002634145733355678147244774500803190515937612018992082320448587794445986588380258543993349904229705356794366847991691072970455507538025512554977272311147449805294712031326566954597105119156230326815394809737010438904503342939410294263022080625123263418068513665851954805255158283986211944418364027233950378647038575343772602865081449985301997235985125277061209459543852484259781317732104560212251498121777023561912609380082795153694396670786424219140832112483555538758041121739427395643466429330010866234448629867004872740825155187077062783615593346730538713337026345698606453800404558400098071669654199440103797543606289946929612350739050880494936130639784594706517414453320581941507132445860475469163578466579853112581741986308400998458020263142886867973157439937656915056218728582537689382506119009043043535950041947395868189556248754458591275791335058804910366120810724833119623476457162167918131480282397871493861190728173724799168913390964152356760001561988841140549772756006469891359257049206738453860390309368659763991938192611752800607914633373847920174279487022723062310451547285894228269615998589100963058146096089081146097035725530913089445948849508017164396194016029686137551775233153737303617536181589936012695918683843946888719954568571297675768950963357585591162118291610089300827884315927734666924068878794950206057956463290626054207797410438049830385566455075891464107776795850816043583783442972300004676912877621163155484593155788573964256542400932165189819301976607217255711481764547875351588955839103751617217981554234633162015119487266572320827937762847305598577086085758768606018223185702570490338880480890569737919632102185459680263948493836416763059578634963975878879019908290193342734107706303959687530828635802367832459254667646017827857001534118420509901034479303193169018454069609763131241297998507751849847278275824575361355573687664746938167097729200568098101204022125995777791703552786530637437410726402531602185515141577449355711992610697675422965003190058651623782420733010704848174697840550095394861714564961571402578899756969948662321377241783892086466534652292588351231930285857296717748038580827634248552664891718275930113170775977637725389043111930016205021501480598720557783396308356378449778518492521098231583565121298261909630345608978434247733484933394373546929484532150148609130799757829905611439476883383904102728668998256110760842831083567039327478365197015465589025314625710215558539411057435181787847545263887584967052196932586953645081980284517060637231356602180987854033319026851811242305412734488110860272911393605807337836928400368761822818100871489668122272479262349600939569247386310685008323478728057537091361231590740867574509563371105630875091228804772533679067868412404744130859390332434553151160209068129451780530186433778778235988051485239966446442458187266256132261554342720787458888796117303166972493149390669521969098627004926721800852120805261990148351311409584720919224693815478992787966882598466948352678349820894963165520750487865191997990397841459328391658697986465891938012447818554318781491429833489311227202784182811530590668202572079947255062003407588276652609353849103946044709540651887400207722123834252093647833573393466359686082337657511484100649128518569273568168813549930339100911876817879393641069752249746955784674081566270030111044121439639997690987719854465697488076951120945177346299241941243767533382211587259975455625257390802603776561758457941213446994557702682709845628520326635237858016457457283153083240335436906224676929624157518023912047173162969604588707479557713980085876829535329163104275001404919216615483806173121052146701617180479775592042081428214898764998073965015805014273684166186532158257020209230129514681400413531344232391508763675733994797854481712375327415894908000344244636842027848572790537867568670269725012955571802823304684823981497105132277799893108665830147852684817268824495496239923003612696590801410359786471959203264401283213752461053094088916778410261029926140398817886304879274540592963687656703681745666149858337329595748256589173816754929625700908406888692493769724863392171915100909803220933986341835422042736885128085711471205307950173429435661253076102420443929948848939348537667255236882513436962989246445022218071701905116897338592907864352137536967384331616732159439337124371365247874083647182609805462337347437788284717953268233859933107628518920221619492438245514955149175660185959871016437829407825659694555154851896663469210059918760444919052895467740051436077834902926465073586475104407831061497656705396172230589528610942714142618457402904723493932670985909079774284740467694670731702611319279797334729180752278313897756863662108782674240727074747477882144517817239205885903329428351535559335991237128900089069722464575141521114958871546534950908319543558731920237139416607607428131577795506967071285467748002591419645730422308166315879108604710244674363268466289416870697958980151699593151559741093298367708351319781531764900379653007096218532106488557426346697567690073072893324370565399396668707845002687725686320581893082742508446849057591368407228305081900962885263258783457366830706051775582331331198653308728314181637445500483002445231414196146111290168276884386604347020658821420347028186361703575906571200774623414566328786507709880610519715809439229178134435325328805505764418918887064318467507405380043715244506230971516876634933440659863656802885849819970322738322174446649735787915206076287528332209044014788917696775144041223889915929315400596635958852564993431184355817728340765382152678256252210898929638121827074036593690733290942658688707605704803949434681993025004542103982123392376385089840427461389079363793960914868579217724543356194342802334081365764060461340616419189646584917297537577045797186818169304682986129397150131324138358410716749122930344616303367094573403270306125448854553721170447481221088268981390346281632810512100727366818628864401534633895744310812971721244074121119290348480139588973805476504606700898742589415222959671256436232772198239973158935316942885538242234309431327602253614402923403276377402376789012398279399132809716787861540002233194625839986781135543369636085638234385725369663807188806247780185759838351351762561392733786353950038412881997788495352306451071283047669317702622494105701796802938113214233487229002906098109971149279463094407120981831753348882722078221618774011682075846302220272928280637561014119654569820937035083652124831127395045437818593171706156728496536883004310896533512777003970624422604583727549760130713175398354645953004037129189837063197875018366796088214160030502386762787380382804034921593653486178317843614918886120483187507732167873967219286306746211837772162890613680232108768822460550137395632892270484778513716870020637853493361189857310357636737074328366641173574377197380885939669843162584571730491446774278655700048342709626364323176766790655980949698248599195195776743569567767548659974050539300387836723786417385493926204590745672645362613279257273589312511813475843232790940983991450781114117022729098331638018777478736195932905357111416468615767808433348746706423717546925867815323231253178401549278780884156591201977401647633045005822399161032431902726887133050455100176577679388445490202760988508040855673043621512487826320409721593181327649664848186376385097848327740069151299349434406635702684032718550386255896127954435387148590172827394499896977175481852338137756536757732733182984705442768514301051831512949312687961239976460773674386529113200166498588036139685039273990938585723507789976725472760271241027016147876519289544947944419871462287458296078015435545911546808661902476500897621096955868204515383446429418914817728096584302316863335661582540347359423659684282617428959125103227665800639796500136579529354444202161132170698699855212968896195702914923359216152472448620636843282095443401364327173827644258969138404133523430618079032143035767315929749493754219330735413895241469702574895987890441997675356871700364427377550897838151485882921955375857224025794618264197805469088058272445161282494495806237123662453637533784782686054359608355213118769233059025525681732716872682339015879435693626739853091460250948079747340306384818945238704273965691469269851738089932735723229109557246175114998799900802419075584427563341496300946385636608162910772510782301091916636644976436103410430102300864716748892785729438713851138250290233555001084517836252717943291541052510646272927672446866341548623376366532585482124867446080231905564554966396688119660801838268284478489437149766782969708616485794420814240544922104263429982032018114229816539216915993176090504978969965118099319826685941232235834156599177084091154023949982933527604124078211327747508162028749279319435961906954188931434307735804884699174020503304226473937303134609548265904875576179669575733150939080223186481095910126250718313583299931640628403310005628203749898586917039835492154958024315743448586408076417208818043651094560925198638546156979759601876435118580262765720685665777739041814878377564551810850021828858943161257990615525305474664291681933223676782917822555262832226144803695784715382828449882568042592000775611190251019881482835986250072663000058402053302447688999788329900263660376130091491707122394826046524627866955102499203616919902604817371776101324193698970659436679470334638198012089504524912866154245624866594295738266956849861976852605947988851226649919901385942559617272123348967239801699814985847022602719955043558780410190483211722851253579463034563879831151187619962849000696704476815859580930662886054188054487924596474771479853913094280291098673864272718142014510926155341720121224135279544277049963277378304105095596463460720947793272990395972637724877116130821760495120409778311722578194376139500228289429946690212912924167621076558211746964788396308396755861524500964929693942469001065306918511099013550889785131203050890280913338758144956304290491144467353449896304343315241272576850834738021706823112411025496264025354707487644459402854426587328819450921293526197212699123827508359704781091476536616934842749248792914338679869357915732577215151515851039135142385013882052666226680400460804482355133317834114062867733865369773715524978151576577275568414985685719400114137790031641397797402337488363152607330398176665092627256907888741199650550080002343940624322280056006408254714975568347806366790561774396560345228258953525246227947420980205143786348863657966941556338133896254893093490134382063251948897927532096603794108012092892254608575584922023653548015416308988260711196656408666974385542089103288983999202411789936625045532859089612209924255544307740676664018033927403873765457893743210052362525921830522252427683105093001555667736387263469992736336905925923760552988464763304085427774713170015118099208280743378847953932942918662257958897782814734190388623086279144045647642434387225348484478980730044636098276503148898612621762810704209195811228477082679851611871151241464896417766663745019236640187749702473607043240427060715450616068492695819084255172612476904517181373407916986068148612501951465206454525686958203802625362953207546939291764070522455896679739088630794337363317532577898371773516258451239202527669112493919821774070989408450068249175220397750947774432692435440701403113222511187493044611522020767031302034953790802812027241861170742117933417634406152826624451898368642663826112491896134396846946261072246257814995809701955086459644693997504793247267261486653349092670643276585494231025624135801794726761468666972615667195519267394697518719804251033545066752328063238150576760100518747090279857332862889664665459610391021170012248082505270435714101091680017094817953200288141920255743836889026363994769406808867320429038801720543410514949854268309297239290871122598658175400169362341034229431539363707365973826875065604360204283001798517060652731481319546768556495480387105403701590202070828019835667859412767444684280224810681977547250289415596539617665132134244177561444440733695323250718440423493290176457020731682630151376860325128947127681259156479150074333144261861991506239136056712442301356719438700127181569223217966094396682620403726639116118081326573253904438262394361808847364265783132234398405838402480531950248341617043328406468410553247375611238639481325013675741687423073728182675084497566117761675471798913115831163065437548283882348246401010617628664909112217420840739657059678866746947321657234998582115028368655103081459113146997053647389685065389427207008981821522993785469657402245377763030050044021686440752237001721817132660264390246569713642378621111721498692232303956725585566188160840885861169824204968960631054422916923923406133614630809407270523336559369284157412000301332954031558281145465123141967140144743030830773756669350621659116460173153415005092957782278965081493178252022576559867941706047832140844134698475484866054055616639208009170357707116028993773634044069291237224503360742294143362157832801511911809687426255887124208628599743279096316219878098127475592441806268147158738127182741669690124114801459717857383011384869960478953150371739410032325516196108836292622387718508401342644020150795540233956559063119514272486004214627602255160956877319386164770167381563906736416849368459578445150168733159722603264865728971975482375495349337847230860268440097099321767842020478732598389866596507831096733427974186057496696629195469726432430299300307627886477060792523933967112160924949361969772915872810341440125552687849237060821871512581983678919895907235423332892777752581998530552970744929375188660356522353197616983348116071864759108824105728822405621389151277289974425875728801855047230951908738744644013703003817723442462631222587343224240079707065527776413175686427511232397861550585158154110171702215483717416731289528187535399931786317352722668057391121050040707987231828757996825376283288435665332685051958140067731903124177462984564439399620943831755561015307599213324688652629414802539261412600890085109311895141417272799542017836592163914778998589108787570574133974685720615969444405991517113079344448352651534813509696205575974509408724118132443172010483388351366757270506442079480400527031822638248385182540079216169348775228067380979863373278107523305799236118333679764379270550171981728744914964504202582523313434482021776528178645184483694115454193504540454029870792502713349139581074575319700265086627146303615562541368629226875525241308002544639137968599097540123214571284405676790003411666256078646510038145407839351647774957694912700347560564806596599616186690468273605826870587085967276935158111020301744034632832059302906762972887244321125876993657404612866712359632221848183870322165905743147096585873653857841099049100821372804703331472695651260789612089744003245904712063616768297643498737590916552300558837717466630648636022620294432555624322711803956767316468026973951128013246715483102141432280212564287405797380298023998642387615181406714846433728692017845273664849149468236698931414561389848713921602749683289749209531782915479890935067784044495154966305989558773586000934615122513235959616869100592396992834480784706263613338788484655817035662906770791080076950752972518837797464487143598189489789002805895710850794084888813478481034158282978781523826866095019568341338761650892440559942259471242137419831270598355440799049322143811225799222647340675561199672514499853251704539103959648764201568797835195129429570370305889589860632949843191678652887921513255813836786618675720905256942415904131283946275052729510037387820641184509245335594648884697178241823462278305566396919374795440190853766138375974349779125727440288212013667515114173427138379775702403712718940772652756609905685700847379210409686176066779868747127440412417425056049472581183722811834473778322830135017493897758091039924118077014521157110225258699538832454803333543512976691943088322408481873145269146302644040606242001911650915093967660950653015422519712018799607609301289134284095460900496204679097656523752071149835808416096698610684386276547884364909383381689601173906646954476014568784689337586887087095323061021471579362275105009205623194588582597257274056289780288947063547126568372404401625613343133300790156207388194437913829939667371436558208536579003854074943406798361254913855123324921411532699892694768368585103612768943109192797720064663222511660379582322601997700051733785338454717945099224789976030221529882947587271243903160194513282449881617588253660882261843555809061652023883151682523696494958330212713628520373869098181849689322542196374800456850610700387362242518175490180102918814284648490474136618824173139442882238828030778069059369273156284349551891239102695645166831627606714988934344827873529955906273408957434425127047344096268848252159235604655803433615195356898069957185884584661221645621723845863886782633708951289697767434826386162992831725367248939882340725715151628684956201572459789416327068079430636223990612118326360470513014639845340314174349851250143698514530423741547956213440741548208508962887677527321248486350453328231538652187305911964857477424165437110349429045349106992470611355153264584253908973108502159428740392868093577442475459680579691427375488291098496494396118577140748573236488037767923229791033091665321390102799923153795138902418180401360722770588511637339270553039845675146319891758794912203384994334127440129221854011076278249584578213415924800489192976286220990656655641358978627927136288249632002568706137127116089380253362024113640237690114063816655576513706803795031722374444496497806480433841368569482881305590496946030158972387666912552623637723000762530515322066439771915533348300823673548587359934475236723040778817410618444977072034259290590132256262586306412220751364823878209706324250292333072582316281290551080203859595482429565090567877324758273375257579765441951784503864033490200737538007160640491658101231695824101660356295453022118146385860538366005734081078250836330025097739034082765251651645333313876003298406052378372167349137679917794789517424027708456919014920506513902507830644705301424112673777952551735046971453884437051303868749669322213461379783945886994664317863660409352577567891574370000246954507575308252014769884201501606946285984482604748041051844365436504183474173837085735535449849214170644013526772690178663484046840293325955422763113555112612794253685721335761073290288878676256173171238719582563209833577236664179389166487982237682186812779103588028955788606003869013131945247357909485196661208639731386528754865249997512293676708589648893225469143340990470988372496102032610067038019073265861046375625182660575298153579977353219295463918692858133252520139189891333971610468070403631790868921822954312179460169027659487858151637386817788899870941782495716657787466828714991786454104282662490343851617690316368819495187342589575114384088713229683843690239782744773179392830569606800616784538611918676122303386447985864022806555524399131842762390935557514350711007618508951979950246168762983533014338846580463620250092486244105257050532005186965660826792193327253936371985781771965849344516396568788042666044236174453728130995319279621044263195424112835458135910178755554707443434991856719613987409559918324580274123588990740250765612061258502711202298404195849733991597629307388111563625876113638027157270347046019111093145745703846381284560039331570794770157596854899889989688999395308586567197565220960909860392522076504623737615720171795399205824599991667552240477155044271411398200779064740849368112917819806436349424619550443760220160330465650383642307631940604082670550308661867045682856880557095675692435956276033019423127626972762587337521532449475536217476773271860719289556100806656452866875332046065331409094498065556877424006759876228963680984750641918404265402338629389404822150411532054116769817409812478595166830320313100510094953923069300543383012386115003659818546263895678978684800886302786661825210470188478449481429743228270116873733708139791520142867064280964127040567049974066177725161839833695861497501817905478504177871054794455410354995965359007924136457741209310794494764347428171656575411172214926379429940488435391256957898626316238378529889882454401157919765600072005925166089947074686541022779095181485298484355780086388907492090654158913695837880166674963061753200407250808901752286612114616534422859957996554836474221025407425857969839415742060749530598706679134403787766924340231993316267886382222241199494289268355239028005280320228424661235306143018224514194486885966645357963747913779604023001535079362515702031109635733457149671939868763157359168360127608112647683361284969365042813371617832736447433784086471103730066251438977306145652793277207878249260096800501682211439267561266090929881747007518895759107546182099665422508939238993688443131088756231917202983424549440233145566785879896954493093052869466954589379590884200804342680141510745203998177047790009178986757648426125585876871812948845707536774703165115888305804341309889989691252739277303286299828840643097390566881618675746079855196889708565382599558563354660603105758897039660321408327864354369026017937515453138057469469970602843289762658121953568279938297684922422336262286130140168388623911027724551213697022509082416968279957363752010148539207081826730186889280352154557027638399663875258804676579178765386192707091373252912606332216366982229844549219351996862313638400398363142165109750097616006431638165821321317276235106981484736706250543483704907573489526435346211745464598660388580277124880753402869070174423766308613375498638601554101712524890727654491652206702761483698934886567710505307258217378568124426945849192344345415205612467224606910050481800199072683006706691048976199219303914176362889246185288354342940793820466167179075509262987507386554513562090598620407402169715358197189625366873080933768407278512233637902472998929430192688770268512230919373832608094955667052277608609866574435755252298905529171591549913749006674371178409138311696683368210865264599778805264673726451860129576419198065015379733493318492121052559108085540862405858171909905172052303186929036344646911768203440824460768130039221499088465557830759990148254409984568135993792824768963008359397311615327412874246378038153323230476762207454174651664404867211268077751794968908613356011418639679785869425020072027458550171500330463496936425543453105086787794423120276886542917661007866210744548390818786855954979347923079705947940225829831859481961744621547328846779444703871408052053524373419036349631003725752849405055482575105794092018837076297939627406192072247887024392572382969421665100250195361763421744920090954975001917603859595757264885169367517115431555010002600704625157555667429727216649281889110399597508450506303030494486634225475776782640342493999205570066877570579126647474528796214810525348207992653251183930479609040039965961117213255065059778734663117027244878208938196397370151702217417576960719072376935458343826275055317598356005101572329491407609286716286345614081377719594619686144475558711638808748084339435479787913931084857925295154092901639566043797266275289433118920064224260955291236379488860166289704773745884223421434895983410846221252991118170624198287534903511132276406039061241655488135423554738754763609153307718257585118542262211017669028462092214711169552672081484213436054488644674216048072909371313541378971129087914903118845324901275631075197188202916256798157803429789296673625532734571067437750447022161652243823299878479372833250477931564773920112847330561719886127985473188012154087972271008152821616933251099408263875273217661228053191316885655176158276247180750143706433397721148353453865431807767572560473504216085535880362637113145666114830781565237738213604013287144228239496198817177493216100461737555779588088576965182926681002421092402184695761948926528890334286851758658972866446536022015177132808333924700306233113653292713710150116663639262961421854356824122979933010226146976357378564390067209528022835776855590513158141869697732629660054431959350376735620592111727173274954632152293899481773630233754657780090295339076695296067595596004490275972704173363255962927468629758138256687414862315575631354792614894457295937846765856986058010644820264817372163363652125692253672457850068001522063161191868085826440967516623417332349821849946169516663460424729822315092502751955339646380379665990725980858755739516537551722837271811662054152891971062964966016071512642456214020755426411248008124483744444534255509001596252413260638394943808043859211272782594542068552028773371368964931221933456420043302057139575676598901270308667795090891029619235206048351701667718670939412110681012254309593933937911989832730328487157283856614963537850302408906803968217072521509814681126138475185200999657133268209636615606140489861380044409726447829831127328709638065442678992611894954749374983125966808245440673240425330966559863910673888120939735273549851894592525923338816992383674454747802664591121547728660401450599538717393294038535485540480826495116483603388784916791713367997121688917837153944409448116196565635424785663646453284523393268728454932854282079472913836868110343634787393691898782247276982451304047390843610311755614669169854724140676423507630929873944489999952247872703433023208979312613505336401033285588033833136024831920743720143926564199827987770125320795509456210625069614394145669625547388215840476446260109239087712195410555041920287495691755297067269792159557269418074843688935142039141922461294870496546603897003506723949758534470210934918393465263077054745988664711156971037654956198165618556237700896129138418560164360074346579928395049301458643052114184915513716196358711297311553348997220769322874113902562515803169576524535249217098631781528348426751136807285082905676689052300885185890203265471489318022811878390442767326274930410418184455403943385530043337064933426191221261644476232596076083065405930270286826140205410561417573701478227361041429948463055758137324325035141406034520566312096325289021511950932217442724668746369148493978480720272497153216300468796131924342607746532604801165951822104418162295665405360610985610604146535831999515513162803709704874443616734143407115020654660903939123571719019086023563682500628993235507810815446422351045334704853000414172197695142119797278856220417931091391700505083334664783754313753448810756404690688106097185795777490493365677840640813073457172988303773313610681223193676535185273008379040411018592130582583080331903331091541083638618393233945172658477750314407515576982652840179508897516504982370580013424301348741213480993574996455568501200055413784213973297094769901228014094172208363143386261173078230876439883338753614922834605206050880480268725670541892843654560742273897543177263565557741255173979869642726487858037698528948515384790360831456164792098858859851755169700033604108945114261827496421826257228186038098217384187219474751911618425856659583793524176614770282451619721458482559607619990550597334754527170315134880357744897338625292088753455220051903378933419007003800617214174543789771080828992252227075227046267785192928407827588504360713145237679903705533590746140726100266315732195272779155763556564923846935613769440495282633760916329752864388119699482291776062627064596009990399654476520217429916104723382933013818596439566995070514697837042230726218868611726154840513667045257142832183575383863318562895660783452862172168943307758061698907726969420497902018962753779032728498238115949381794508640822120773106544178481675484069943735336086503054920521583879677547667551095561004875159343788123168902318062714679393555166973228826294645639221585720958600406088845277849555153631502606341574188953533582007437691156856624837701366685528762069901916133640388853582801255425415010418188591656641892767516872341178739894464916476078654551489490460766294224249095874446646927344585069919636611710700853295227539926427737075194892702420191493967036127742087682083955907571408026257456895664352182883838536161492179046995817129258783198334093251057631411923005947517200121962033732973143239480963170598529594665717991218607991141897103800692259284896788275410442293242483142454042922827509443369185000383528067377266590992035432726226516088926168102646476520163421755075584982767053269834076530103070092499236205141833176690105166141167723969022169053858362680847472132804558000293344868782015404460190322037355639014365791550640043026912330278020219806737717269150277555276583652630694322807469230328800662110541644748055013354508841099558879568775126560893500458542870060033865678092759148444710325282341233759596182504494756139590867104766756895429532164190463243024052909725909020768131443249422566923781057136399992803468348354716491708251944320486082625139019272104472519363199768518606231654093416997536260627863490845863596422976789627150624807933442283902121798485080815932034237532785661297361836495809781159707994445278535050039984420227101834964699583084071051664358229438772775080438295309706079790321097912519778588623978492035156778213685941914579390157594495499518458420800061258412075816161688234874934585399980701031236087013533329754951053746838923107267022709624252059347639603052313999085929666149735074810969459644819077493155993791998027999971363726643986238410780558906045535410202725782490871105024958064739267244896911373639380287179778711696633599295403943865873532521038467246265873026681303376512481575448065286993595291386007604178880365646386723401950297109399783458886469302656950767796673159016090664055636832459909964537349596284595530376538566428549022172226073169332454574857995571762153190932238809101647815592903133233625440452394311032591336939992713678198737272966106733987802003458831310363546850316023692081239781110370149885324391468927757176127558618582896710053972388811363455630287811507451105178118824160356252501488084366263850041443151724667265070439363124950455184676067012873958516204742555025079642002856010355469777513736901631456201887970538371316197750549258214077087617246507066027618454433758261838473153871538377335562718791931312674230301241993101833712572157182013994686567646998462959298115783738411342085178748832829985650427458363170528696973692225133624761215424931483561805635211159730509832547213877236790082665798066165585397029699021812918384018616628392563733811635144041194604635438826732702392585115697776973540106084007061385325621965594978951980700556892739351265736665532930199391225235040692127007817159213109529157590414754101975352956918454709519037113931048156300377134562756918185678670398817778629117495314752585281928034651250833925356474907469374483594680052422431104237355831248464352859315113528001048894134120242516083998714154236247664528188815175092713871762931582660560624495608246919097691019865650170575849334698602932889631158471337613775260455102946034212991746943684746796204909282097973731338037676362370736251525390691894446269118839840150894512011070958618519148125989386588942261146749477674862925911677751678672152741119555835282694964470244811131098436909429659547995504234741670592249720104769014575369015683518459085539569021469446073320456176541240441536016434928922044877980347269406292970803468360527042142547082039200958851509197394985672190585849235426958005041454300700212099006148286240026124008895838234162456168765008353251879228066009500259391479289367928536176366641808745787907620406349571839532634434770944942548185622302420574436120844507014001901293969456854404739867215714620077741485638495271576737133390600859989713967111991633040699413753766733236485308724744498482244077250775225847510326074260485037127686895196649956067061290743580652042503465817199353277022830121253831301720687980017252694674792698507988485583276276078909718886652011332931561375897147121398922899779736031079279417414076021802907081350850315006978945952944078924530227312882997916005019960334649590200737004108640330678282261379392865932906174135470109743469354636435322051880044292454879663760825302335333738984072069200523605973443736255644297793501615379210911427662019087922904796543494206847391236375518621864567906000297831718383358284951943381816576630081998143363153607441175937914661867519901983831852526364155308864677689050724041824974607683454701906263113364230470364265537502345123130793296220214694461879331747212209047008121407776671430088643904628662742282168351715092995084546500007856250240953061117481222972355079577376404176384826488423713588161869267213836216545494902188424774356433803573508960229053384927036188374773251598890818341177095693211121126713942893211843310020651350347629229518151523176085039103372014824550690765087174580764008420471199562435117288811786729163048320749501876894296544446278763229472882221326834993934790463314483954740073521554962659350301177679566801776500746425587621196254769808402349158173740265442783237719059269303622811668021189140890622596483239240794418084288673740180858342542075299899607998396266140519240831199380350173884597762894836048110602429962691722074387375078918222637739717455606246027849335424843421811419750883656043988105141860628571324676362697951131944487995943768511677508901264734323909659597832094028778110041737634418105128664326391858738015135638475365877026507361259391805766102123392568725646468417137137234526867209669519067130005416377677605269644329043789892196293835957117244272951797932494992678229606645767163900071553512805127798527213708823069919177589471421321091697798931100750509532608357467325869006515808818831400462340958182111838431897437567007497705356638425993373205731856382442534637872138961163307372664915323709003649248457801480373055566594191128806851220399001130613874181258461889666110938986449817435483539820695907759524250266118002499226966247384415304235567459722297430936005088916765868807008194360102879937312035498506239332750670351893859616705324184526689196737501183129801161785211469762869637883766978404379810942391629396555115598075083900269408572511729733391565988180992436599057360288988312387302428622067547990461271116051373191828007144196983159774201295509500260833118353114721269617606733386169942269250413726346410006768768913461880406157539152524850754234405143059230835177617352914232833685315162419420144892845187401176919138816328059558040211456731232451817533678821624700047238296132914674011271804108918639789360730889916215206251851245455993308168628575168714441689375951372668572552333393988144719845219710728872306878326102925928355548205257407123625695455958352998759920484436537245341088798762520270595996605337686355455149322891091507984302798431558385924225672771532329612529808643622502921038657998462873077117289991060426236506214002701711484769840010713215628133979982460005951951489205199378113664195921589831382021853191550250893314674954207675845658764908081480020910641948449188700726388867567631701247359171582514009505750227186549312647567490638337851646375728373152504876733518472933479676047667870120840261874612602590654248941478016112400581340755874573326331504484485451129128336516532102299614218965307889292603351806346081884682599962004866345120848929410333102864751651554289126614726681553207110941318373445979812630235606627888082562354321144935083231004377162383177443166620703130722838987520814379884753134757427272276628384467830756048605353512876830087429704225741226776777412563847011062271635116435137030544302892114855183864423009491773141703898663920202072950399387380261729373680385259255865986498079423490770339452742364423768141003233628980552169455949482647057013684140699198049267198048718132044044807286120812394100691907880726607934441573272688370382829229915960280735425149095586384637834252623137963932362270791492310193780681982250024045489097373908946427011253611522394117851720132088355500755549667921697154061619451561869780120073184220421195849436750471239910291006631800160887035007636467119761571218971827178109282043449548099645414552279501825562560453613829816556391231246979475721327706531710023030513663276157284876274906468110714056358265264279034095820590478185651798391838686678103731827448350611361072581053555965203863779108578291413157310862223476996901207085743396173860146173487408401066173788081139901008964461944516892320457158128452944403168824496089890997045771442228004506316121014119088138857431976947964579404945065094896083009287794185456071446374588718532030395801326101101035329817797238048512312439962117832293534640610391474001989209076428272022424360094367744888800938544409424666710797469031550978033203263256520612835038418674110669515796130149486856779903326553677713512835806062737287810201630278380780009731478035550279312784313510094574288478521824774793708771820133474962987951854490086281744246803010170984555813131778854355980622428786181287970051179354725013841615966153455071198983826164676146276865458460467696799018480602751919798982783643978414236164064987902044734376816994345907265091683601465867919690655170580831202835844698527160585463042368975666098330056143766600901125779824692884966215920043787517877475889301394826429464863540476175741717731215203338428424864510290033976094602562209007477858869808450213929299305671398152461863972957276977147128155579689532711232788157068894901494650245869511652060101437804515409590233002750287476093990678300124979392321425523239420767562568818089234819955793985604434973094793481316109350814972219397545608378128599942833066068100488973410246280466699038221601602680388681799918469079329496470806938592371845056989109724062243883072435934714043357274461133750941667483452303945375413876326171236343816084354194597169088037814841196716264443416819998694806919349153886816400949728867178193376791828605825088199131063589569971584392941603966024964514398093068219192560842023916839436723659061968763979082512153531077388571232841781573966690035628173137112985583162500396089738767288783909121916285860201008705940801018264861966877850868050818214244722697347000435920335468239679531857968662931796483330411220070995919663808976040457519828271119512404462212284602997808605273322591256856842140245169011272515370269650151106260690749586482437122123813358185593115375952688153546638147150160791739239046247073547573104541346933741224979330470172276009314039407009692524596628937183729123801650232402956425304961254215828434548305790984484318404733565958364661162893220993606729182929969619702746104827453818137067797541593189082174791431505401812651542244120280464063302922976101157853088706447996442769505478706476133581341992478890011827708796929075460634709496619351862162269953667181181439720813325752275480457228647387391737910402956984634330510543283708438794499312810578393120942783605321096408809719212944521912341606685894152365972135700368291177596905852936015886963709959338827778218410620105099793926307555817171035421152786480563577557262235703343328141825301087316706668360562927115505544943889205350193556848017004617381188395406019220065018132465755037232387864430219942139013824947257464002333819804004814886614247287483872424020553711166561691856754933338420992710219913107441028866619964944939275308545302555347859910611622449225250627197398887465577198849045925343464057173494017596282047680697248740002545280593939365825665894995763868229543796048273857586700621225571315895958341494871132851614738948467531010978099172955563178153804756615413234395702438955811861957179041170738249069146373993850703886577060902928285970585226562782963109847662715328367428537317257792839343587775815906571490033148451420746471213654790552365592774908579096375291293530615740876726849318025008705709952071609614699532597723305037158718545643140191134070311263406988801497831821504919752238588924990494780306492411977952492605847347976735829642820086003249938338625792058319800760630744429777992589579777861270037149250743007655087920036301463709103853089398657904080570562166161058950591016299524202833944527604640860710794213261731331122874742988468374030072489375737601125569153605836134338261525894955542368553979083066586367561512009809427943992959482886239889956780635487855242115385422785826688770692297155767659536059718678342039569147112925976479300497455542635692477395439134056493929014456940926004005364668243575474073167572718534109577390919318452139881895192018943915278385925508445370673362005843736896682181435194985093811751718876389664883448768776412422337258122746771400447211058456710386348441112377338133673221924343274430414554485412510840275190524667816526776987431673733668440020727574212120647130852926581523624801818246025653968758076322055538298068778690334411253826420113928398634174672301385376632392921416012760456099637314553069250249493231068900973749167271479736412216437085279471257886202416969023860399182100595512988799531188120613050011401653804164686266074548430059314914626220452435237748566168372300087149863078819286404909065386216728404240810587501898379587193234476194960790796641756856927156748200404195232178509752558760854680522651492106337791677886542274598099527614423632784870870929087245192230453672178357197779183883456077313840271730572922594433756443910166428362780069852653112600987685501234453337891499806851248137299116990861231254819786100666240258696157480638137150502367992561623735650591257183900227344980708331613751389425708443896481694018337282898486135663360325495686560391965776640055414217056348588399913264637294290883528347788871991817583775431436854545638411082909737532443087760814884768383783917608001433196777852656015084665657337375296359798568885162606115597086020648013544734627775250386811386100200564073874008910744063753529243610244531328313646756189898447528929942780572427281726797834343103475552608882275178923528475047145116997801854536556081527490783338772062547061055400138100999442997628642009799910033464108671733432238315384383869012175420720169940354291144267133908745557702300761332770079249656476054221094993711653438392862756867669369027900909157524131070490381022226080801650965929200548798916502830416118977381469092288473005907183319668759295562781979132866508157081171813429247685624100740695322963424230711813186104619467736651029457907538193205906354593011156897350215647426736294347929438863818884326991102359806654333169449443973964062373869698453468555866609404266485668969361749506771120188576638602124323022660741858227093369671301596050280324081327588812328740517637165111030460799519149828218801710228133757229404119840886586697441084196454962582418162723443920588103426531825725459793360596461468759140328487377922771933835588237424513535690419177032931989981659961802132123280484091238904549236307537431425913778165620455266045927834522984035282567462206030120467280055689078548517901017042541698747538948598968712074634286302840482924174071832657247456138556449633247684571157023732174041083926594274833366777351369757730878992394648093896237727117453404646718741377240099717326896998964788127831035736960169059927857796977433401554325084692174874229741143904405632424537831602365954883495630057975255556541468442316687827771955305739946605076385354255022044183248038949006275253095830807680876172947468568440891028232798770887617234032330974735906188381046633998081542065036843793208626132928303035272364078953206763735794422457966180701853554030359583034066760200625382543796789871711781746408023684974248205587643312540390509697852752758121259812242062877432081205431044142420309700917613681049595231067697717921425857501063329987864975629082178593575629285344960279525143334245981474485293524133689409132779902299176562132465718373821596919212160032401144989843247263839513773749743859284839134391576838863251814124925936819408541464929188198767714027030789415648894040339797562196112253723785972816771689835460703257066780558116606154177441210720014349269453288584723645652216981453662128094777344536006155476756999246280626571037985005405227814177965737632160753353037697185065661257996392712799697601425498979565591543533687770585880940113003286408127554003618865069654740015783502169571463192244590373815598075455868234881364760508905932069999129502664994934982878627316696079495543723150882157344960608069180576263805951118157392544009353493910515006642598324247253277737740287396618726315130470165434525099848325401509774321104499776546842894558495944617076914243813973274205235514993891581855646352308812114217137448753420680363950214502251466549125653622788177872307985392359050574226759641359193226281124141553327549688717252538112983890447406283254876346278412610012945578170230676683007868749610279195518613905867817905653867071157504689359991556361701408650332169586032207307797718252129945273865951827101583798684164484682075241404788547434999136748591359066011069877421951534511137728059019944400585491251275472970408038948350672568483880401335662518556940083934087653899789296500567377222495281147286829433453131272947332888956336223956139145842434949259906420604569326192485581770846873097141130560990627169292858238491052805570936618658741979802614111547881713076592719212194289260416961042782497048808185136583375391366130611825184442144797574398223755451381029077973168406402990521134691576736386008230283399588148867154665646984466126689054537233943260446152495551278370534898393148414131234930197722607676181779365268256825613127661563563884261530507919612216668337325516814162152951864178619193291219887155618483931951911028792530845107580303400854370947870951608567374632364830307403547282796801644357312536284544769373679304506084443678542061799330629145226452641157648975862174957972394074241396912682705349690576194942133321063680294393141295983366526184735656926631314158369726470618993897072869418284727402435042078596421799911329133400446560011416827979364435313626718241654913881106401589040900847703277514217586107710386723531138277122896067246687479248659222682095716591226334871256416852985465823238424031057738089475688249473515307469849741194060913126574936239158253067521943936277462014576680416464411556973413490829561077150024902528716541439024823424495240257544038973300956913829664118666170143067965005691831411991813299062200983848003229260114490341181399156180828062011619346817951720922529554849605478993600365825459802621880050268445348931613772779945220589776347466103377594156804254122056082363089540956201461779684791157175221077847396650284720185273526645643251663868514098301911476293342391841828302871214438255702823036093144968617136897003653269533687376172339774593370237857818088753301602203717326955332810971430071593291580227292745245941312070178850887635131284757842463425529290733546351026906413398704688118912606720369328506910602637410410238197794982841764770415391179717944879984436759860352234861034813921833113837158347032109148477935549437459758436421896995438322961565587596326522459137739267338028149363235008064615787630357596537409911310931686294111660608297301872553363257010697491601890641775192144100030663339049495979145045903707611045687511404899313348061848249509131809196196119503147182013862735682053248818029477310132000933962457241279778310491663593913272814471111304682212712892195035718381600751389289568704840109808138902598434366656213830111244080212555739330062663399791968996850757269508161314125939226298096556950138822350250479958029918419373832854561914682221054054184088755191445386813817180868282458301581003223435496311560074046505812873052137547830533312239488678217703278442225906624529690201330721138014474742240042832801170864619733828661828156005255703723457926690378309828886625397958019997557761850417332453637224533836406338573789708508781487315651390918833750091476836403399349440809631291924830894466225805978962968237929028192306210520669785393471146347416517633392751016584901112037902786871873488818882228860406149325441327988807441437304585534875031491891910388655723400903507567079687155214580524741364923425780302436126661104946641069918439047014831418212341989549106764115983382561613737194007529505765239492065002195672725494684287157627555656040068879565320053439373962492362131911197265799944354126568291046865912725351193636744605010707488867507980672809647214660376995864275896481931358156101588380187608154775777317604892347044039511132425634628591414127880445908861450055941189018599422098917048523744520885898686901517120171502420446369449937908532523693415782777238016020959314894048723577261851265587852907584671248320190316877629072165925360362448688725275510694724816482806167044880048176070080731260646628074127413764083923443033690954980101283304366965630557240259745707120814497482420793612368941652664815294664598089518901215387160611602057623873641377686078906927243082819810812053993959544889814771331107274444524719824687384107569720962009125501803783498334002561888825851778378753623114187400273010294383622632922911257095528021138826963150458600993950118533392456923109690599995095508488458537407544403604052343508774717587709393189786666253369450560979631837866318435251817827927091785046172818272849577587771766462983076673309342877040544676788353451742670201786178312407805089331374354555835610840764936235643024840525256130149051133773800595366440422420827889698702106053006117104530133856904793193506613412396844875080578149307404167259133454058722244036670248031451162384700433154315187229184707574245502408914711750278412003737086707895286234456192799691602798473766359949546667675007742925277180996909397725711538471077293964824106060413017838246731164521555290975564951827101228553449236715191632532067722338830674251316299070455557678737275057453431290700777438543105820952057280779240946707635080027227852852860460221939623236405238856874057198130444515800913643276038378602427768628486320648837331707356617611145990993795111102952419318737067157160214357613960446012158718188838394315688147416096932397482099094160961955307122203315264104766935573617762799241303221243831693774375388848044947161350888329259942402092298559617063773168999386713820705875584031058137520288353526541640710948647194400319414175601598524863035833153698821666253095595269379636303403278912504925187436275966464839677810570917920890524511640713618750851498860118293922000152593683001301546622778958356358603985581485153572188567576238647912485297375818331918105543787755338297236137807158505622203262792945824468298904549685677224792112362334032581049703626021647592683714835671692673976280834721035565492189600080848353853484770114206334551287150292818956567508281821401783275492283009092353287764685396401308968149675443736986991088003484190463821121401919899089259197344121648508106336343265215915031812190037987150781073083259993015019907009382326017103606501219660972506334475657469365552227045869674593931960623222913513253043993036576546343209919341079721204299269509432774882434510541955475160891313222497555561482153169259918844781603465026953461901587920345472131235156024829105885450893952658066360518735170143637462786394895986097582763691670819882942521994646287902355781717714848327591257900874925771812773505562215403859853719870384232865668197596790636144334451242540576788235553633536733877899559944238368950148947170249422713061585352205602014491436877873834404469297890951646087937259982753674324251836623389464408471508208084201315679226847920203826565302206003304013169987180239708856590159548293709552209793534233307142418096247639969678539327085551987892369789104862988416303951156393038375379549691715410049377440870996216153880583012739535193169008786425980645079232173351015931346955056402725574348318045611394931609807687788432852779769206767715193712408246419109639206712401010416747170435651632984872141919589414644439479525460978718580456491842752594987045536410693185397143165397262288963560751675077993411271261383534068963500912599759320255569700786157016770489613996644884473514033198117286038201107839759569226153628525671114752638448879616346625515968429111247877877503213468903004112251599773270397214719002025430024380828250803543329207275161118754006359319444471604550385539641748791680353065264579460888159131694802728565918454016981301653833352259320568075908067037698743578229859514236502092793389515740992176428434200387509538094837051300761099685838031836364203413478713912986647812422547159981639624109233395126101205449509073749121835562914691086974610676122957577141334138966245138160270031602461660966693322231440363327857867955282962510936578156717088799483924829591522395899968885408944325522606897798173440878046736973568468463518281325391199014237305611410375941096223148578194377849956992073992375705626009817929854965792942722860994843443035742222686152260894333586985691072121784611589961679810575696877220782956610300081637243109800980421730721204218761198785328698891280915202203707560007190836441833153130526089882597071195717145225611252445523056378083347396549768163578584618179362428714803030095485137271481933900209183875919681884735865887540595125830262643954377721543863093483459795232128689259967821263521743711974755488565300398258456385644721547027776671856309441024505160753947786348646794394455919197767936957665031621966206094188742420234811958524676896115593325032103209237601778212551071986194974060134004916364916177589791306928062004110294488686714424493212518659420351645952023257306677155855699246767887147953782318377845035184487509885874062378384620660499125780329351881365249970338906688829730324436205089552748621844175028591313284554174624491613760561832207971820966850285969724505677541841168903028592449856011489733345271356932693368584470763745034689373245633927969307811721188771397368447519594836730962219823884388227795243176567761545705540887488606261152335552471611562324475069769278513538120352224780500170810059360498315869029772421700851430995607598927775994344265353038103488920132434203412602291206344227895387330206720303758400893353496541058841600504207433329924944401614776401874384119885493434114109665984206681057205168112798697158797742848800247551064569583697873651451173516993888740229002897687024154648227949383806634998364881205557654770565909693099283231554062270304117947829704174797088055337415427651829036378618000264524133482383392196159489484166970549205932884211109038905982375667803638754736809249900012332016190524039273934289111148645133010322399335008540409342710303147965596696441260707976737586759259605361116704570628934286956078209877280338919516245730202664018041306354166656893898400770834086231861820204867808391378199602008159258655418548556556738109929840577844432034568259090237624037537970578763295658013302398183423094800511103175960472649201413888085553185104456217450056538099072890079741504230651795061030836068648005021171773542519519712323044678317415631929923184965083005276867904507310756420669834630023399262134962966855696491798860520403073407832457712116342545467367261598860320739519089450026490732293198724677493208330333332226114133495072404050702666639607882302339415406516377640332579950062423981003268450265441571637133269245809161593861489630392488049633795402865181237646996751167118269771768326343611204573665788528862247916153201257602040693967336694521984993028768149790330034048061884289866304096079827400140043616053152721157295796043865363282761409114144794316568738594923733826608282402561843675440877981011837597896149530277381911937467576954896773118894422222017022139915661072176879019768457430519341285379874477939989928167908547266563781946687045133498042428170047480366422671535308543445962647631074951655646423415819871202817610924459630777670852698832221729641000018927184154116599808351064376339133985393444478509903433650664692520708733078176446602342143835678756426272259424511621393583475631096721852062152890803592051322038892595573869852670345547981110966763197070305701205618350996617984879643729110242526334044061380475779918389823089130110869675861288639496194663007986111915742702402518013715939907673970590642713592663280685135967525978938224043625636182527609918317448401172821466891946459017594016586095695029563038360251343285915195935270338889706536559428449556542386591458125990643197428365970065400569567201864830979077909229950654228625839074185244903483631988526301769335187594654045408527230886949054395932846441688468945715675330588258691415684074270883903976778892604790073239176142862709462976702406989286888099750984810472367025120022901343666662575825669488135049600853666632573439281371526725431028837260143084836370074524934306358662760670736742655555206112749037195467323254681807415589249805178426976548437788854405191943737093450377685018577737184071387548019933710292381080322760509641725473252717786820371494398792385707428545214348122707828089052709649189831450095426695376601325215623347056591141126468669673258282325192307545054664956511252820223154138460664550664214391605267197531523386326947087039447501780747902496156669746488823674049676813414008517685747116528820877032180331132531456328902332468509195472421050869876116851884118629287539864097412958954552954725005178656386573400344052860310202211776139642389013514111975671018964448850803511721260486754134680604208125339884219867180535764587494693554469091856997380465173492255549308594054933028638574971249576725398998745635462678163310494729619851183875931674786109414601657990681978726882413237161414246959053684127659393816676118506761785267075169841928048439687919058014837976366381544300831047279381825076280436918787753689691955644822739850404881657547336825856572381579028205842747836805014443161963898790788954873756647390751847383433780750507224230736275774071038003300753360552786201125322112692316456533516996164471853579567469538670657511619275837693243844954559641371212951093400923905881135457913684536014364644439968512919371269450447475138367774864036386262467069934321407252815450922898368394586516936487502062176735022958541578044790181382463014274449836728563887502393470723629433620933191667644910306671512541118776876147641102296243316612917837347438300529918670761919436928819932216786493035328167112765046422333838204669362561763466983779195039521445814381110834212384335776450442405548933382878135969337496973791310499291993168386862744090447720032694316293511984366331195902986781478318695476925551535633426095410639373148579338939401198793698279295755574975740297762049373418835633572960941805488536266860640841269996119153977323606136436059061988088322238380246181964438688865608720063891818577463518489463948355280989000031949015027209547609940877433172526972384822437352596541353316595274601374844042289001854629994933882694322169135222644923068556586463000671417794054685353938963153385853088376715260459978616467288867972297649112401328955742174629353363644804713976147103122386552149574220687146663542079795392566993644496787560459245904508297703524882246080728179667945871583263853961796477994580935532007977889702159406496305884281016108259476658337190402531077365789666393980869864885519258296476095646888998408722078760014272989073387500415987053577998188413286469874965194435986843126883139707524463950767925745039716061227156093734876944158810907940085928254174774327289129168232949764696075581444321629413129859128966970869641739816781151664210337891665931285445884297530829692457372010217151670787524147039398214267732087348864340429483013389146419443026330467424952177206533948179695685653955690386670688566929170067140696728931576414042279758694216795035923848647740070997056796735385590186421324597510614157548849780375886700497189209565301829051312921037922783445650153498502915490719548501915296334252763050115945014707284760770698922936972974445481995887247887616339705297030098470508219585216725890568771524991379951443079524793507580427102202709898678002646346984693119423663300662198842334281013853251922467092333733672813047990764206714518110627841362743206573686126050372198561887910030674370709463011575457984794984998351914477164319047206342738522121169986755349454209376443292656380052087319604445255556850908659836692165005043825299833020803045825683992663503959434854634855347086565113019588469504729770485329533198319925099623521479721089396524115151053396460040681914957815363636043128089091288602457086661178109125525611346928107644865583277057133866075065950660876701207223646321936744736334588078877078135038598724747529422315783914666502717966463275315864137519165078314557582947836833223761195692436458133455682318875068732005091162324581938793846111736231020550206705267397021866245607720025522624121087801291395481689881377341247883864579463739034000153005955698050773992646451467359410995088295782809125693359954203765609330310407286495779217594353992064611816270174545418908112071072586070953550078323901944817329062077538760645202889316385421972437804679504410769838781809786158796282837190837466942498506521349495156197556408453817654357058607892166241993488401344850778471101942507482130403818559409736539813339945148536562571595849828400996015604406922528804132508768443993819106636791146912083478272911030665266270472426933414463993155900583794658306616101170662003403705241745199526995202451565328025841346718297110460581349612066179719462863513368410927900779709013053065603996988450093305447750034176135455089438554078971726749209466732369476780988143199802526573062057121524916566679501013922872703559333587141855199174913072277382845971255602436555637839324166482975964440842118411360219521698743332568518046731361288313163906419372213937977386009344063728901515851417183872568154121004317933173379261901559106950803014307871616755103608370124649116311350173158634450433903437693440253471356123721016954063124926570760794856085925654022204755699875661637093620133391713129037039439465894085885774370407523259805219109767899048603049364965386170613983173430663596789072241176195718950767094651276959652303815749685528308800598089967620153530581058294314708092762470277896902048509871270424792612704904964209370110488566190762395112418036536050989669072688157433380888961822757319972557470072953386366847766849864838736979699877402718278174881072699831816740209767741024381796131842288779012491816047890941697912933005210392653010859630970744080134295337258253673779169366081176449493618415189470341229059088238772914507581359448468894225530609072901149816002000727846192833236954323425359000377040980105868134804683494059047233268391522819860364235141509835414270334346725102150107424076878427247684339468568812264024737094832153384905724642681523824848169154721571066992415659584858404524168504477857673922212853667187127404831743474843531459895863994564537395880905238272451953568486796103547459923261635477764402033467364337904248355772995784062075794292386602349447717818892722882652279255133025941270299494095485908612465226378321824261034710005733995936556118328460747727824622812237834291838516437636809721919320436155902428515349265623362942245084705493918530549881456300924822691778474582940948548854076526736777301426321967368255215724158774708893653176386760099283026041052270927837233741888235407351486227722485517049246361796926186179252576123371087962264309101861219518688965673448582519732994956438215112370606284381370258370096694069480232714973439815780384171903641864654964309902051612150278891631423090483176068483507458797432228626076971090157509572002275112451319451799709277738011599049337009847143826492200542048873598260678687057824081771339320485055690970146011995664390045053248473307064999477451983545475055313487841568419627019435739367359218550094829941029560778818966362807125341682764050224440759979795142689872098306221504562901381492774135914436055917723830669795009987182174483497212166130237179086471680903417302464627689197144085830185014612037390234949542894045000875906818133840852202165501823751562869835098681058927369841573038287504417999534254601411863298235992309878730648878027392084258389054937938924885760535022853915421548794870227810523774420722246980475647757087088712696566182624613868562961290143433529996258278090828064291928737974507932134371675597461969112764942239351485842014922573778888368390848316623976003882587475071784582970207573620741573767953220941726519414729211698894475535417241422321689077365994059622049032706162351237671979415180657430198211833677664887118603718185958096443765145808698534126721684829993594708471105017583954281048923038959244588166322121867941757531512098569206830646182179393826394049107195870690328624092151870581558637367991577108925521248939528165739597656277030116604096089883726706646845080502899580118270217177775383926020300530576806235633831230226204332735943204496810830339604451895075017341690723724502160189762654188883824452739853226593986127610645695127627920506496529685476053255827985560048025374854948822461535175575425199784322584433215832336715354272257716584227600966269063291436741421966580304298654714639602934365369398563326764833798723052367429457948424986253775987483103465796598256203052968096982897098660939217766575798353002195436892811651626202116635440912871014935006344881359765447646839298138181050693073571896562990291435726482097394370394373699337048169746368544032613369063926905401658882981415795737804924599060081103334071013214201035937091101206149616399873795862470556373822997172907952267579804526328388963240300373211993759786791131956637487500398592160085582304021948806024241371593182567176154494020146283146591349728327352894177519777257433476489763058215626201024027470511349342703698750008149835248974693926029106348002987773084628287624948834250381480507971110907854486259737346237662955728498307280350747074653428120671011313398196103546390771592914603482578455087917139306294590636535024154860622316833496805098797986683087675386496825879033840236900953071768574451846445807034491095359958419227193108252002557353637392172341878192326838713760337983350784523173182846322608789218585487771913208380205862175520522511117922685746917586269222833377752312273993175287540353586468197109524564525141381361887305476329062114718228708775394527120821680701801460273667728350712610187276027245505983887345783805579660530086965468857566493310108029902328711597234221761831258681691354738244163785436883874108091854939052051503920733105152251660924702952498168959845473560217996977306393568062669041909552414526870552847693479943452809192678144193946203993055443851946787464299291997526999819202053593938001692134797987204156591450499092054479702783383834278094344608547106683709086416506127830580216180485458494312693312784581002096068203050796710927055597401525896842094167714638571120994960281195284252790051164744510990188374364601446074535252888640516317930249047807202478019188909953777301770146934295553065387701877952112734585934594552652519577806870114932418456867842710867565436682005585153757307214299685165125227262531419807041407726200481310627814502561250116953653733689346411488355962587260192092726992858289205130736083106711969746171322145359480226530552823804795792985088302713441952046266453906128799754841800371436268849062698383314109155666556735128551124659977009752357342446602425474019521746994619974505904726587593410751646736692142116128681381000106245000288939454346501880021115557961495940122497209980277715161149622886998055624475261269067477607970461091645227920518102774779557805496124967846780282609520468899839080064630078162304515013258015065456230602374295449866605968756458652809415073953654899989142383857826602539717812390157831784377376868090427196189535257444818335384093946814776909794126196763263412158892155480002427472924075130605375227374792970901869666010071232555962160238349629171448924784028343494690332474000431326657067653061585086549270534560912057290636760882570247747206873955851745868107557948604409563426845896223122004598345142679921445947028535928698635797909605034393213118636663567931092721562808911460539125086900061446718862883036975357693399358345435124800434636157319220664379538444716542485026245644570749232272106967508494072418139899732946917331727887655652557941620251726239535413911347844994110000729315036421228889941726179721707812334882557662574023334894580604417241432693088519579971359456630076533357203773541587097081569819900119298524280321151697111059719990602630552968076234893374266408095062643863090441517188211346579547504982476535367753713066323988191490415843266751795360282716591275291073168524667844368509048288060010943064491912708040162669770368899189985379134064433922419091723432370638533420731528525821559385365289609783814165060016212460486202258287136956914162685390702479233092653525987570560925130930952880356388475815111522637999022362156960358690374343599662572600445620178196327272339974281150246492918435006915152923224421157567387900622327542762068566091103747958374979003154464908400835806607077928101076103698193589339654965151408407936005920809126590449317235938395475340274465259382841135031183168094354144145527191663620310823982220650804626931654773487845143400079682405693165099005088653016143892760102180492514788554143894613173178197623927279810579047878605358879185276078449185830542129479708916770449988530726762191572020381726154905228015807709614159654650068881606617196012909493265655991651422910411018439426446587038777945388800871155388832611872149519498161480521986718501322699415814245590809206094246276199037145616197436476369243040347875713432914686865664958002158529536243457845494695427759110338030003924950244080417756213516368675790746876506425226824020786341800948194265023986306922264403715739712886605540625430275320260589827694771273457674024945236526453841209300307351707849016121670223914861278863727990164532790580641507438797542441937052037884178064219375649776727788128908332000174122625631616848484803367940006643844119057413742944061116470444388763224530896212108435639758047305718366243342897715832992856806269177775498146051764489857548218827274633689776262429624476715067331399319037973078606124860512447173627011791411396472336574167404237442116207713238188438335213928875804377486803457466926859730465776087912158595610587492014446468159588016351612883135988722677542977007517376146120431798909724334789785063498078795051782975975244866875668470363659650239105136548310371197268787528876006249264112963013881984434646084316446207032127418239881853118792225926284868892251682941964741146188226690414700398922322118234481135271580081524514838924214271026422642428833094070711067482154526629210066528068793552023438785579569780608029439119562959740509401497395089725307469810286736974238055958671715530232259194652655429825745480847038380725234855051003956530614215569904181796407558610529617979820422094106160217981250275238546463868885284318049988918724671100449871269477593745445659567026982171958220844440980974104890992705443948358715005127855262666104258968198388857693190561681662027153459096832191776987950911223978194876117056807725576780301599408197284096196892104176522779619052673670633128315378407228671025803859800762973040510849006240552010433992851413314326748013621353361271176175024192405080263511291198887963842414029351422875216431390472228016270914776461574938211142239139021435032657751674525287124970622331607853493351471238886182019077222444618649181017248121807898768328767539009776819439099410501693579555749259184565961087450082261867607604203531552708239749899968743137943483520414694931902055375147646864334837384250233183573123676090056999349807010178858294684797161339677513429400583415687787413205032971769687910209726082285545920734596828826124274504652626587253603184173457375422482952953488635327371029498290777457103450691769122817995081252746150440266094639730749420759398581071484429334466425818888574007146387359672633172781311931088805030543584111525564719003797684469378136032572365743641818751415988190872051206801769816887605377082212083063676326095348329915736830633185146010161998793304583021639145786843898944497841140294504899248373672348382748402536097585958458117822680349155175253755396840100564431017359243670843231880454776253326035487587372011402309918253648101457657422098747849264519762929854120307147767304651111787760733168146730610876402592606472728167575682258155054616243205167396686895279753858341323524485303805353967638808779253541809935264877588740592591392439139852004192684327219196168628213102286250085276865684445913863183631904568541649938549357579951308136568922650288251458153411291827420228467694155118143214074069156349815083465858355331634130653911633933593329001749276533514175527218491809789574119637156711289233025897999241897968326671944053648157621066332265254406051190690538997295112145017398581253225323674351514370307431012847014794536314383326126893770029288137935336330842711587655025154413207386202169223060264217143155128776349839492320650009271776503186488081716151351448468384918440479626034949961924808797008817931947151815165205818402854667116653578646084327957544671809827219983360015603489916582767297562232112540651578137581262265857130849961497215419385466633429257496543485826776819155661942533062422904416013214654716506836705929809380746044627333726124730140594321283958381881654374830447231181310645535436348502608768470479390469364074431171421770751973155204787616716756298030589885688670406989796981888335578644478372734555679524967722804320049627921856342175854501938623666448315823283787688760722848901620732877184542368489698342380116772612830063444683077247870759051243961848166556552512195390802078603512905120091204390114908328718104065949939028855304837453501089702748220884823936186857929284379517292358755942077326310037380901179626011940363590810053625903083522064839040381722670895341892679498447540845607007983152384013761845196100841511882783723671815471550521398891554139179375070131801549550468167835034918030266834626754852314106177156891950006049975339260475371984283406602158094059772745915122863828293072743032729298629361632354793674279557973713149631597071224719138641806169438147184704251197807355597730427182789332146487183559879400226733367831724256275526667034885304116944368001078983329293958141493779304414316468510976244131802071510099270811012017437312629921580025395019033695119522576500098141497594747206610458590751810084439149362121497838164187186143582169715984024261015878353132404918461891648447353786435132073460028941397009610441783598818573800283357942744699408639706665186709415636957034937915545013588780507922078792764980392418619517747456885316162446990564856464481987002595094861106158633796327872913346689665860900377145263060743289630749681692935045119196557169555354366857674282346425534070006741916174416730796463637422259385950446132656391427385617817240889382423078225576478555517329077362821338968959890026566745454868228284456634111036364301066369229905027173031425658951473176877719417368807644611273478052868208638083631684990740804094668153901232741452683728517269363856189713960045521974593401978377658297693139463578029071785360071297987401668208623493719167774665844789429917690567255630205205780466213845098067931309828220348713924518597027436518136609850206703180093585778507032408277204280905521994653141653049155472767146643483711054233785657026225253217013593597612203447807182531576646720862339672709441626308293476770649996678213150727755562039745889453197236992865850783126684640249165093618745941635628635358883618260074952984400223192804781934254627648578396977598863003990878501754356444868891252127344134468437559915159958683062119291922711134205007990557417568346035095585695016224613490329903963913983663133178348957920754559342132462020154822535844262346136059003026566256693918926329242490030536865841572028740059364723691750448423777551197000283346526635331704184371330906134418265365796083929628573976239111200426997302124732314413510988941311649483701753835173499316967436209484715052082981851690890130438391203471037742778882665583304140402849492852030447228614882064275065004870942284781918473252076219301229749949016288122211286482281937478804256672420984092605946235543874502362471559499758631086938439389453548449018567250212207963129274251660673540784553137489907125418851022555327260097808092192660330918536342571806353089188319823703555101750436840201395732562554264404066235548736458617504945216316282739634104097319353129443483190784531156918501606603386915226038703625346659288406750063567214922563075634173469615839196004455952927576360075468688130167100480219220960902055360788189733923353362426355818529847707210127537262927341986537155250150795050411892349148150986681983158248181829195527782192242033941161121555208942231966255308673070410391042235149076227785179839002291143576514979736865700157847577362853355062808324383192792137639212723223193690112066178746527849699358738305777528752285693170486583971134229218348241967643497716400945419763799459812881422369412694947995799235211703801570003885658896961580732207415478318508136521775766649656548085256725538515960169703395654458880775824216590513780047723900400046163963177760198325190462716454310379052088120632621218813831336678073535017919858551887614244137205747752521406452355372673942654395004317346771952707710065895820299697734610757189799083129806401028177054748172241032300733027120234533713167642962424241560378756722830601364548437810855459400554040623294954540552312952845383817097012009458170123105361689598044667973971986135367857202392309956067202661584106187609181351619801690406992890715055948612225673230312899091062518017019605759750176499461022419645521259940635554480503076533909816748970581864411027723631547948557328704195935785898266375581080503825363061109060821580939001262322467220828447263045187106264710607507883347894161450298352184390613242244662464136616509130270758648484548605256256469555081147716081298219636080625164512297437334100558540827577897921909264618832181467661138521787223434487512550980326518222892565966292058490210875570919476295134200161333430411855960402196275928518212321484380660439220847229117267612143274460022192686220366980509407371814471165800222151907042236148508370168095531494248564018723918038435185510682589784268415542149595721317186784424710606611778500195180105274221678266011395385167550919636051172220200648274352015505699864142739823183768340610404713324361612809874946701756747928580781849003268542766320744814995967198816357932399108560857413298239082895653930977313697660975350200819584534213367857852020438496514277447226295197402926213781451259356114233551314406981537823086966357519691788332362683056920341897524260752755042828881487117445275054594979558789401414350158818438854764282055031200059451298858316864180135123429112852220678073156647451446334622100730963496089096597090159271668408445555012687054854431536187431122256565804353277663919182054328656045803509869828027465921940612501676378727329484584004859746185477285223599060858256039673765680800260948408556654926501906200207126234069677045639863004037057484705389824457032577135819699161261005550086611151135251196560199524033412285966795867663793323030960701561263951300678874130293738555982150547938009833736421556772736128041821380990794062300615996927571901098673229305212371947986526436083225547072348833941118201030413302639223471612435991952462690549640366852895975438643261401183372596820476655138873849356727101639718310961289176798796256928655375809059449487893541683001020855515387598481815959861017156625820030433110191481393353191396509596236345006208404690005390240773822599848261317167341383117877151204436685769140909270115184978116452473788554954275522202113477878585122660614825134380043273705463617731081675537597125046110427690221034332756187924733703092130278768649723806745983113876034283442805509784382234823542619963164882855326123791917001990289920891584594217168434851532819113755846078266773647932639288178499850977970716172433773939271560897235844745500570067251159231908225420467904796687797773205342456397116220074896047160176269914876935613798700656279005903515994972719780315069596446639435539149971842593336683449336583029383648447554632721942611682160501312160732286591479797776879762920954758782692098143063874459656048806194069301968124764079097136789480901259650468483764638842010928355670043125122833640877950689349387494651065190366587962570647262025593701468583074789310102557242590965492500650340763081002698272946252677421645738274855997048833390637366438587070720191627936492952803565569861503390043119414683332122566043879994374054383882319755916316361893781113706234135707424668021677491327227244245362536909893090708050881254693190204865651397783203900829631722364145129818015367055569097930928652837475381439854602847515321392202608849513267964905255057909563654581273804844184122900346071586212602529991614504423938751321524795267059854623094729108784259988875311341297804976785423897839506812931472931097697098064118345025728344422750499166265453937125601455409306469060444442235726212392714236027957392045199780161938176704844216713117952144512892890222541646187850147230732990201325501740483915607790902090603772244116845989358044298212724756250906601086490174324421272300428407345342628112560335210422772826020438174092533737306643764880202370752787186165718270298361723138663558427525705446873561949199711072961700534021960414565567077545370344932926590987731002626817454539528279282464206241851566576134055980349829633099716570983822333251100629119772983299497668120696262516121047848192631752482657369688400219081298423482115414089443580962058360959982782512233939601093214034528415207554940032998908358581931807673209116931227515142107949210145873295729355914326597028159544753939458831734461070512884067551173346014261993487286188777111170694428562488644863323954108328563879592879303689661400931936579179700277207706990774252633856983388810193768729837657462963662219461654841213629328127799656692434244691437327681081574170000701932459024744178894407793099013376193436909786798342056993619072870663882954781177673635795400786531731444386764002096703973361212144175040130929993634443045645600329708313638642383679110917694984871686879278655939216071465929213892327284487275757795555289810539280842310752028782066503256594998671404733038991269602123668148436309764739298180098892001273020340643386211009159957621934836186791515331777004670710394010693640728231221310276588867470963899320631225847627551426749287587769187925362440229393040621630264667196391371926950767907910368441005515722673554600955773073151676903906208805989193374071258756509728954810227365109671932486365626989419092908018638089885349438918565007846023223782674961733929908551940150579693641471414831266045740655154334965321973123993806415805838436387314893664444846585319278933043628819326340143168440901468757863462373825344142162468402304675770489723839998586833411736234601936890368144706681716604090713777429570470640169117026975013150850384084100562089068533048642275266668953609195600707595290486059549244386334702901484109318930627015044916590506544375490731175024501994218967892437208161907580617168155152049739664542541269112863747663613062887164472812955426195760556691974546211945360118445871556510447683914093994480465792230084749089444066869464625821621146968951356772964521491944935208966299699843834693099660955558014383190325339193585298375834639440619475116394713544598920404602367550467257967802141693394442017991992741441924440459204026997703592890078149218144041688224637397312392070094904039504304085007060998030502000157693139368516269260649388091235367129067413263488511343077304820325153492045399588083834201971483016405148578822275138455534036193986616264563309128002850484188247241179469395854000690083193978650717586133740987525526550082163618776918554623653523361991667752137037899610958231798383146652623137321180404556683808094999977988918295925788676045057590189864947556951355747595180212116777727849839173577065148286230459252562831937636300116552165694856942074551035428910936884543742746343385353063188136753497824289280574918770749134398767448692247267686646230142774400329869132116675491219671851616129973535203642615153646096743162344875014048406632982681623586387992238072825366180175095310931617684402145558783043981177361326313318035750068907662006673122651522292973832098627140546013815142972515856648957437965682737654167781798151099587301203700179560923657686764310444555880891600355653697425818361335035713570205141951481096572392521674600011417397391547015913160913331022351821684648072937732731507395640618512108691354269874201529674759285080605190395343565616420118551852692305204425335171731403919434898310764173478213070443051602602068287970400133387688832068461960144046588314688745159176933673129104498788872290884681497151969536089695015586831054850106756146757144374924440662172798476266586012851441681402975318606691178160894212943117932204013450765215817863504173407074353978982034809337474837410975404478673922519835711206714100778559754730213815640336927327143392430661957876028807993799644175193205575185576489369913354217133665805098024291171782978830955029601849886160676701442907053654998883445230082134484491410380465850053284936313417930240230822212495258687922634970462422669993514527496233639296956771574501738234739575383815736259484984186325575484979442976067845173983503084003880450219142595254460201597322171267142830210960202572995483265730531956460635089639753528848350008970723520984953884563076941557259890651006531923039459963203384420625695059597359890202322600144703237904404635082912658303374471828611813758133596989795454476078141582303195534595416223776660972362457691956684696013187939806111371382098919002175232427586396785746375049982478231730512480538674429737566682212224218827471665569364593521229527183965509794207639478424238923897079535212762662108461440997547462797103144590977876154870139119096331798504542894334810743407576797253785237450129924150509396320456864650945805474791495510966428758666057353630356398931336739372220564451752408941941245873280464586983769013026039033305226134326216747895313196295748407136701079079800063489817309951893341553743909469207809949226394883285789454989496518639060908726702862205985613405857979039029623490132301513576615720228416128711715142479621817022126594816656004353396667100311252177255476703504214410258475580565120468018386488321313211999356226058053092388436516963693977990574352712429218671142241302957511395194476545422926530498269689875024683475763410536927359004001432301877737356116693881724710069792972063671668754528449447415931643107280542920413547751743345237212996012601398582586122673061080354354601212047869678902011441672194651494240670063957880435732524430984834666875415729393625252380270943520099026484267556489232804326631373181233947545636346143041407205832478004549664874066503885573316540393416930618076759168018831315517894981085561055255445510451837713152434491352053511024416418694563952722147964947007905748720495055307112543507779531535178063295865874804931265763888625856617289488284596978830486713588280754366691204313056997454213246533611027669955026461368346837720104069787444177204530760125341043288888049409925117801056339040529366464124175030071950114843961112503216421088998804739434905828521246374441280698290872837598803911935054086260447656456402038579880706822324444833801536911446068773510683027364133856924568314269083749115026553336390626654152032936053894272480410298949891705066310055324651516833360541567342272824647516083660219942992882161017965899197586284183649571417149585868608728571501953720506695967273549387974542771354103560721101530978250573275536568915769504329108327615481327580217967308625732351198817564200405110740456294661203150378899457589207628137687242404784793449676551336498544661493750640457119683793316926136403910881792358661439806865218611624229693532177458392835885721189318052241003359127872213951591032775988170911773515037830743531850548501296773971421653907586575369814164408529094230480412657532741777951743694962962021334962854261024716977861006701955833759836324118099296385641069706443085539098485244776662060443453652173288025015999099213113769731676475443430192077408857377743920152518308551573912855211215102316824708255800697990203882439159078749436036890702362935225665981610518743490265681426979103421003152935505094500924201905284217522497016325476067595881763215642567331281136846135588217276208945125865038494919347373644538734516856970136102082956117359336265034334891974709241613550807876122837372704815589591097346259372135197809617154012122931889465431356847128160684598955884377990718900604701073481738110583058463639433081647962286840097272243324963280776744620971033870644322271564830376794867775247482307404233612490261187918938229768119836134080529834247031208435401100054923734074283958766526303640983511979002583519397346818154052451064225031483861903061746686325603932642477008243725500017658429008990913795999189870100237323305255263438555639130378049162347327271920167552602632986943802033336684053931048784700130625451579889124811817223540931276243855343132385112845211163907943291455613111427995444114278978473453360352967276891555389445107352538040804962990804120435149898203031615199269659963808355031687476831962082923040881520183874388905925227140964789982933774107612969758781382021198841475584518677748703981785599821210838524746070156752736852152911474025426694758184201599674679944380713545362429671991701531131810800742380704516446731442301477466402852955742120228793392075249364003704344082500046170643172987254190058991809648266454362606269023462193156176020492401940974329500470197815064245608740037893587565591840651313686729049261624501159492626562693357023705345746369721253712661759952531510907918143377846559399788845228121419264331017836330464148907093799486851621840758252066385158882471740893505803229871818649433762540323887649969964534492157040546979896226383881110245626980218868785256845820943302637281634372952827547373616816895779652198655658867164680994539409402823367843502103226190195501434196411798254108544706617681838997004177369065643339581111512901508161415313457749081076296287983479683740878668762139441639366934507041207915923973505409445147253991432003515542810281092148456477705965174805607493695907691678325404201643762460690774043375588894332682712979701906138005400663513448798271614692342663584073992603305954559628336916450776592665619624712567491404379352074577878918438358579155682993790213144411942000544199518662122371537131144726598777404065904597225693629898199035771523264132851711711624681193287219333778777075652131009114207804137220167830464009021821110456583621518414715201445395301022782600714695139916556213176010693555486811236482014217257869757553319616438069777813866496667903768022704217042544197323809420759170750231050101756103862960681502442864130261318035790696283523157006724503013462470222720986568629723688548460436193062029706602933944928840482271097425869599450989714609525331235568640193118640560109388485395192879848591397591341580276173924416169884780244960035403380220213175420955610471921214084975161719955694413069054835526416577944431098750658796254642256411413983343205291285034523712686927878956001858964254547847114177243315129115543392505753557036576359965693130405618477335221444101142045941731142810874853665128502266272307514053424006540922250196057123773337207233335425808653608703998225024661403259257560706349872761049192444082280156150490165763739791109094080082481233645352097213317938664360960337047621679152797341376604975820886827471555682079379873585520378244879054500845519550015269356299241123359782758693819221732331942584547881402725019969610592218590393733678612337751028215073078107176063687424194186849424405988707662279880070721380145602836633546726783489617548039952561318884395437020764384609912484454705536592336631442941482985405757538643133107351514396049079397072252400455872216215533597429460146762476036829160531082801238754482266074875435237394942809646514116194839499902268067898628441039807997865525492227477757141067144350243292390354096476929313232422032935282353325821437395967440192019211607560720600309481194927272431342321753126178807769699252877655073860358150208721179487498262127617005643460673434492286771428145907600225462338456026333460346387092408295258296429681196624085509767652539421992455758178047350213004962813679588886813710683545459795109433609740116877339422119025944890105386813374807914636866479562632517922816771793974578772847341342066508618797890962138648262171064414478092798935042308754307329968228467072159689857993667357839841013457347797621332112123867814034303437837490504395829567650018200461293239773729863084754955280573117367636773984161921562035532760395629623610773362445098944336498476198136002070577271827266216986104200561025912416975368483779823613172170494186666489650053752243405893784060149611017625784193554029893308637974936360512288572571563607651092294132389542802045931380302699396157667447387845920570628913773146415388636609986112792135218487422756235644958520686581503990008177861525552699073709066894676953467217211987415181963423737375886705600304512159394867329087769933589697751437432210380697118206496496733313023334569250290035935506866358500698195732544511517080851191235183346168285386209335054315544663372508517455807934742266854554528450993753251383709812152513950662029257132819034606176936128176381496158287627358733083193437996552596452483392236928409526505456343259691745737917420723794258581895499440420531701586447048849586024045558864404199789297849400183575842037467092886290660512339537479321319552743905922138664673126320547268992783292852351927919375996264879422793915659100451867813534544456186792993122152238042146958034469258439989937841253632314242738531658207786663018847766900633086042435607295287235999704592852624193257437640136411390316847902380289051730048486668576127124860402440319249479133980914351833511642307650558199167891369972413206744020008621443375253857212501756591075189085826815027859952182725354439174738984706685012115631586576993558929029557547594911322786946799592712977855593288754780641345757010950825765798789861649084070501867857849377325951747714490358762884015893305669258425068388861398741748818149088503643359258697526341734577709352296232105987246299346046579732228355746563908707700873898808979860853016790232068594410754864534812050429967815070299429456552592476931027084154205537139066562858251798044472990866398076176382130272426830436582666706327885435450926066623676075825286417029211939511774445913734863410778729653954105452170519018450931846593103770811592346553334945563090445925965592941548139399763602094766941105279095293354607257912635152747358937182685487923476654145817037253917400380003524138129727648667649094019959434190151229556530254111619730717450857142778269154987184109564633159174371842678977915196821220367394437932295314655365001879409974273528757746033103772791586042051977324436855453815103557270881434121823328556409938713792394636919523987031757966594938025927660040660868335029213816662732766917017226108738363079144363790374216237726240831433178968103497394839300009632575921740818676814225211352638309849762698074039466916822897381027782528416857158131983255765198915795468828349976715783776541918573922056772475397488878505565197122888782908165585217822765044063285608049567126954969011973651550713555828695524506701183465910331624367049008151609036604858233519445654017215460075372806315305148715467266497302102016269554285662656037394363764774506017634578339728930932266266052580126924639504465517534384810444291134576286385353536735221151550902808077763651203157361365086444078201511774856864284100176421500518950272843225497982525355880073916462126035112979014757870830324316227145272271161621930867190786701303733199722065373559239942747739855741334514881694224904829351306518586889001830526220531126610188800215125594199156123925242435907670283848101149483354068298238579191202032973944317443285025240716912668125150792102023589797563895442358204409247190490295412380597367995750717750164016098588731229575756962116846334784389610213243696350393212430155296290184693354158621728448084332681028247152771595266118980834928173019920110395506859089185230202364371527878808540329956986975326584149795717738620478670262993830000726174557820876299488962093270539032544386271667513284652469339962515344140510636892287221321961388224623028818916586999349281859344195798060580712604478230176864295545402170548279583867551992570834380608166507293259310631201954427874796373607177866141479478336674099301308035812283062683248268459574583091422643004017916373362623818801964718259317369495838137554932664031451278148869336428801209303623389284536862272495875422223306862020595782208410476310387628384550837664046310636352418500819078863563709428751205468091534568205325800337933276438505630022358902048440411539862188553547004154841171740724375255540422994552544144267188324302684168653338592818168501600171301587118090835318237654261204048318413146570348099840061493375901132993520166452432169838026107922555283795222122220653502450057595333347559538268846798513304104933686623223658681660252635543775555330682912845419626941843972289062379811610951347167973883904644286587854136720113710343578219200421354347725253665765701041018464230680854704073453055567511025410162350927077946113608646144806345286570036148784892094581585415503414335853090744883835324923417291618628298613682325365190231022539111953775513874185279494438814964672168013123342914869022973284869284280892628048729732989518214234891336622734017010302166145355941586801175723903515098182771326018724705099647022599210458355430018116117726933668906815311045891240266435612020459060665899454687616683008223418426279194253390392559279240466346460232240158455395814573758260701101476186346723038835915780263544813274079374567813009338330022648631728787071987220854147017145969785700439489459530901676761426537640635323842913587182186495897717526831902458016908275834824929842830163049801086241342303425278178479337641992107780275443676186955286426411078650750687514619362061843145670554275981905619366782759320471450857981791081332698595253711865015270621872875739273959846614468844726929816894445535620176950663251894873709993968108742944284076241667812143526547890892526312011554167454415064806444143179762766402698406795682043527045333495604234296342682784727564319508324696779766044798399542757375167279170710601287504422749604896719008136503306771351545656806722684814757584030264016391775942354639281338202105306775108143751258123520087904996260113224429373213709596217826073133090210551611013469722738151081494270654920834721927129367785183137696440202962181195987210399797626194384815015344607042294028972805517270186706817988671329955016744706606901640600636162365402875117943599917698804602638342750716859010986497310453826740409536202865388207697340029414871261506955736553023476687423435661089666264710520849612018614928086342503300670105160034565964398115322033308545975918067950596171991679630240623539833835975654128511390162833293168524912209169685072014010628829200740259470745120712537033179405179127472819184210905609732715782688468248475794343419280492479091255518759429983742448500398145067096912685231137368629026339460385729765679946595768045240196968501877626295522296298362868476058304580168466009559970644132492187489447150133771637420903754887239712599402743454121385551224794632738979751098331222617340142925507700071056569561359300744475024055214057873614522097233765144681701403005422420467882113289958531024227887531919776761658173200550250041118244396027583393811444858467553530840643678959493853596127477543877868728009950324507144874694129761412312074321521304622991612549596819763091809138456026318054883746792196997536510031555540471126402818527191516427161961070133406518862486308788603404184745838095068361785225048494921150639550166271840900608020285206488230858426129252112629655735406002313239009478655739161443808738702280081196648531297911172802776922818782731684329143057220218389867449861772597669214821265384562042193073494337676513708905572827102346343649971854344883310841387123230010232771119535192932828728063726293169114551125577393237732392911300998271669921565955564650675941601874083447764585469118952178451608943067420718111808604905006909349882318383394527634007200463654010543268171903160220295320876380608363641171192764863244226700737240096419983867499495380913648972859618576421805719999275439337670199189156821288918323683671726642869069077349731334318904116253082721874590696748929445213707597108675679353736297747680785911824432989156880727809657365470436700677133240923339048396275385711798165972841078492253739761053647336485857384641895100287684464813317622879761050619245654555025335849265115379592658639238782892711642001020858084083971605921138333481913867353269555194672894777762549148626562413915161128167614092499468569080358810468930853674153041076116226320228191286314704558522963382528695876156707957405559295575096809779269471738100622645350684111296129886168792987065859676880212367243798415299543384714503380092181211969016840936384262077123524362950739591221706515295956103360645488335079961308133971982265786999972239543511025225440166506942277827247544537621442831163178413511461757667640758401614170445457886388823692910092412121011141614685099590917597028745878541412292501768389269120594031510250155497666059476401957383834315776900410006862804277925417481138398332195690891226892481358915192335565213884165609096152724582007336390288054320501201504155319740600140866623327366735685255542298727334378405660174041587401075368524615543098375750676656999495455713636545995366162287731977893507703974697553184667140027241751821038527363609808643827981299331199349632329366994699331915296923479086241772605779032059099671300395835914862783380766276852874120494379062283643790814914173187578962188514627682362949063745745373689275930094968850678034820788626762653490533420922515381223078701723708117901862967985022590321042328063104553161412776634483470215804251416327793506663124694462292079503055721622993931626472459893265950741774476427381678929774809160671463270078425721914898601098012367788396114670765900751280920128658507726724772623085517000705281266491346494136210282232118193315284347560003292778614690966721683226061156037611741772811465223817762317234454667004806978178488941506689201779784697266641315788407797503864042600245959262124733291720189068147577203024628521180829220662560226062347803242217749735200406023780338771418908709308828990122945332126707136782008259121937162918859169431448240649418444393928284912519632968477239509758074994939334343474994753953270327132774192739432702474291935333466035525133942131009333296585309915193710917625797036180337131031678121960410414725113747069054544875082833150623041255418570273671817808581497267978421322849911448829374887948611394732998519338033847263790179566272968248447356426168839110116832618456934156298900513645593544586968876101774549244048025406278495335315552016485490218827939607184909658525061870697866647950718494058362386945698865104228838984301156683213706583804016684308474186738347088211396567748689325368021082394561087058588705809813229665730032375623256477340433433707088998384645168435194698476802377536372386940825637565157398497914651984418760859271270434679458779346849622838297914129624795514047291973184465228319824777600438679580403411003199020616641830986897397817695755462412645765094262546877162999579687627562648922418731924008333225263194517169695118292910864916619439049663089457692401718892368320611097885794279552980131236871762380102293449044130808743599769938753960712459582779649105976211258449777680185981723140825332131742945411751714348701043285934270044593390344344343864790290258388818697942457540684804558151712046515481720935803802022518707117886848561224839662252825020944599322900029832171465932872250317743832099383009255894545163277587119019837761570282213481349523321446437740284335381223852864244469329078932154571777107482679213502040922098374846878778198376744032132932054632099002377696860126107860465610156819387296240803186285626878921782301153621709142473339485818743130180255534203341673358051134376889175868302673932770721943581970744225936044647595256903094887029888013972912817054475514070619560264683567735765241816765718408639106360252024134613515639665004888319760942771377124713467409605833978234657975933194259530929596843615115190165693080577433815729961203913697905536375787259306152419262304453406298407372834922483343171612138897554540796161440904726244334675782049614935852739949528078561991495986735994561564876117304003122674590470159962024208834467712591097610622710272204894452443192706385258088568515712512937245821701487538873881065417840445660255012705405726584209618368777489438104733041201184473724658961656487353166949859868245192021921262648211531767239346723466697722018047852968201130817274445109276169275103820059516197225836374166144067949923801635405288193471868558141783276875333684500324195412877964048116757084149288650435117845374165113041425345523359669661405136271859640170714966748850538201254041911724491823539384175658428469580506910198888867883373895861166939481271369670478706667292365545003534665383856605029100459079415133124312657595717308691797757224528716547535203286963030479367682340416622650753956431199676494414835986579855087300277993851428876113995169720830468414340292300430503104006926330571581740218601260775850774747597287570784370517463625234496479408930742028858719718574420422156931874741172899905579252133018391649372675070041456068400580105243001379563150939224529464819810763491413860951241696834334586163743786138324483502191159722063079890022044025367496356361508986586747122549706566177671167558590871631840716535604680431250688279723441047266388417826148450932525344764015982958311785372848260623545280696072538491975559121945090662869172509502990720209263774789364355320706865012479936854256450433435289096675989806956357175883540325645251875857619190945773650039763128603131868691936277127411988777941405075541663622221661023726198597507274404292096368094197694221138973847308237936801982683397041169844934741511508660195515685677830237145817719046774943746200446116732084348112119491906862263147805970336857556747358704820852979305106951087990118103158737784274416336796150970408219156374494175848272128166027422546615058609160200542117609314990654037887052851342338331326285513438183388033988956292185770104700361867400890131762251304344064849611648785202992852162922022298385097549650611572562566843924034427815107649794461966159947091207438689569102119917596550291081287747193874656879067838615293456746955845086213209760743517706453997577827071746768046089629191406834957062412432887706434804384145342423562099463578921995004725197696946258151548664198360660167307020054286332010831077961965383925921162824052583414341358080526656673846196386603116590288987190524759406247082393067575363765466592841930085598557234065941918696168118312700431492430407905212167559896677940808174906114911902259678194952447300764375822705098517290797897184307387350884332627047189583854176504546189523121251431483720046312422612673971039964385607300148446967233936119454643146078671611166786577529662105819703080781569697313365359308379782890132432809528102566656165678834957775313550749825740232456068700526343285883730766074015288929290832975675563704090372243339394612519553465983510561333246021250858103452047862642238314065426436597587905877573173199410753562099000400192597808044746586005270312103748844319694281206713293864898409176853943741607609509312275719459932464731509429173494105472451303390882883890548904353595055105699602675846701637342625576071123302646259974696937723726602926742165084004391425696374982517659929052479456066305591214574163041621553170296601753280331601796918728706738143383768672128427166796312932706782125053398569377526831837962818568137382140359677616817289766323115235478981397256858822092694329521801912202461545163536941133620978297769329662286677414577508230613823405119838085433098429276844796098134856865933870007120739643387154531706172209191578593156002700171674793222465760101129540185595136419792329688006485562495844865260759210154958086230292652844713208823679992339415285059493992026732335496531957420511763742450029779796683921579989652792202707621566614116774985587586535768778763851516478045938767972756693566535133075206115614340771764101263334359784744205171403225687282725086202541040586363375052536035787925482811411295676673035891507785304244198109688449549652969129030971423362744639415366874752802918421940174388198461045357827432425978989678014515109425823085309302573219319890145455627633642942707599915221761979232573157939718545419617848862212096957268253402881919993277672435031302004601416334174997022689565654972651180159167554993221817666226675548674989695529717403277960339222777914798342696257444458140585617429725982864781620638674317750745656078595897943659651804085297227578554556889746221866367918594531924020804128332200956413960837637955755415423908983040719446186513243608671678075644979271364821113504872436800488102431031922438864966384052931618828433847886574079099563273284976832151535714949042931277291349857737077111209800453631872533743299155880328051026157086898211732541792579400790926662917953390201896354790995680066689247851270050250653245517524419277356017928872119860650636676995183026760293082445779451806626030667611037247308146260166476826637211224682643689357185233357222757893397183024616426512289638717890473058779966548180981620722986791199804704071890359603759244986334464027956496388278979773432569054952050824799155060402721444509236282325466534948017325113027741861819157409877560263066526695651831732425945861529293284243112866956672763296250876106638827105960771554005087849084116091304052958831218871704336832464386266710484711462964672864804221637182951459297548102240754274860123984122033982819500922327040824248289750420574211159460776852908164724204358689528280692618956099045321200619460876556648462514516932514488928317607553485233090553688977748267150513325945530200361509810740282171869630518084724061822762131136815499159275134159808444213535022837899684592379778012475052134782750841919744639741432025303975905186341204756666539539550582155993457577908556527803429746778179176005377909937353472339434796271175085672036998642163571383105536188319878842455217274068498175132277115441199759529072971583153666910138061250909536669236957348455266456732579147834576389253471563110065577740996417501368059425831973070618974560183652188931290366101885086580908415599971300597661449621370236967376250108985787053232704687137449328176827768093160961690619555357714142420133646756431644071892114232840197726798182839952108918980220779300314427971297198658078595999975284831773869036723630012361244216788298083828590468275614466849611121477239910386002388305779101074007117265209396677928544775181370788931843053477982857781516245609369605779548695110677563549209895567159950406476963718044956924887669466097643445212505587722502634525044598581217341225130194787618684629082429263619481532088961093950150438512669700974202236461030050814867845957235231934212823092300355277467386092864963817576756520038480884588115679359658436381724895375687604641005915366893753379835749140303436964139279000065242644854839288108561853052966302558265860086475737146530706207535370207340682867074177401508421285646016467486470591471926316775285186877969937459158252122145999424739858438941135684278712570179535253558395426154454480363920425239375895701382123107663568138475866483412051870756755233879481110244284957182307107984380005216363378244555935943051758398938582630929237738070792480132155363791049624811911196369406243403085146743697546417149626165430799356933207638701345286804675557065856319569592913822313198443711633694542245003173590893178936170099772856497467707997200664537653871796374056503795768658317432294693222734080633363127140412547766775973174452212447008176988422087446897585366246697190389160768777380451579934322937446280476181483166305655312749617535351146570404803410411996104236873460194858120874711393929285040220577503140634633857315416076175699115930618927312452552877214293597900746615747488844737942409171880062955891271407475849682310618176123881361801951493306406133327804844517150046664903822626558610546828494851950603170510139547367013980084290692319707956082918018314392531649173907743324176957244352049856048105473393698885579965258343548589142704685561871116768401872963751717959043245637287379249538478870070608124532630534904157708239313079399383741647780730656602538051313350776352424689132425750993041903170962397951207286982059471139296380114271784279271263162817277256751854644870271133033801955638809647784081690739866010794146743524770028867713283210035570221884750128711383909881571461398560221190207013554448647162777809641248828893187868349946283536684764033871030337131768179893323507474741118004366185736354104160106208736938663075819773425427119047025331058858354946377673659324240338259818631280006374276845173588701223386280689479734715754288313462421710138277460997000688414608232145994543189363501645670911073780060411608764727289968744241714383366821469929079811750218283430788433594362690565270541441125915654250741682526506310678084601009087819522088820440302103423536998125801744643228196717973933246200649179873824761553696960581639664623777168816451970389097734083578424507485370046125768129631810130426406331609521721562242004515061012365491174859725477709318079092258170745439079051089992569645245998670734976510130648334131945277311386051794710381466434641483831841390219019160632426662018353604810230950085685386087031143187005736095239790111545082642374382836905299806349463567586100707115229517152213404150590343628474590208378067717036121326375349731395203015135519455670041711395111360868705406324438325404743825125938802816877718095833825782098143838780106154177457894797680888180514268004859764401043864983523814612481005369256467471783455868011386408076591300592970751892887502879832118864683234169387693471587922678672827837326788686935232729210721380578944081111609593351450377681470595896888753789827514203876130250538610745353176302076912413882579632608474960370558606715061644895758225640798621676621087634570795949881928567252210361713794610250476604547502995706448147724579659388068968395537476992414566780248166675396202331548226609623371684402897136715138509143938886601543535582119106435909696385966168054840868058680310493921915697645840862297449317729977428580277471145012332522518664422076487058089218829770071338916592070239088252336461847147823131552657496444671465857423261480901287536814322974274064687148449582928685700550981428562177300785787076419280138520648068533634633945568005819824383671885574902966068918842379642835881968831600556703628331877195974780804519064744286039761529085698685775373923243603687312363228951597777069944829585422322014590846981173731213400679701011607101247749542255542428566096703863102318813238136929903005513303272441172450772051536822553487219187216324513057636809369767515957792135642488779483851219124923557209586641760395086544092878244716803321705823910183273744317732976434905667515501602500020054548595778342301375941796532300614638957865971447499849923210757701538720125344405274790152799988774192941007556872220803288742565130860495790951849097790262040935952034269656135407414652894567996889567289988602664633415812239786456784302378160613641052678639857287645097733981476756168572748968252248027171952597141038800763155577252769573573066660967005568207160097376949045898535219985555855331046599554606430821842704986283345194294330710325282885589325526606103432550926914178538444892708027590751771721088828127451240303010023453535780414966602574826755822131583854162487341900884941423742949716402649701668010059652662520482638256560317868303123349249148136013027826724290741167953815447494623601825956083698245470097233441095186166355610161438443663711207563517024666294909435384686260142557858967557741951661930882685708765957490702891180557142526073989858001602814863433594463085176902668019120833755094756204580656388596877977387366252700899759512135368257393434235255850606711795210429421580250706288205111405800252595377759658373836959371978231976658161029857520699871218289699506847591780007776971972703852887166453866275384029283094173627401418961711609180239026050693717636424797133564486408567890108851187976291474758719060919120183226048895002543149877740582422956901970882218518153099064236367987465952767384469050329849241822734292450718274281434035786839226083044806156286073211247170583961448737409991253996041926849343024849320428466907629225739456720501523433976761308374665261762432718580235328512343304780142703640172736114261001834873727510811774311655927080023521316472029922373330788660494633952054745355008639898496113886280222477354093768104413901118964522298260533785316491456802521111200048369155341579636482278041201480235918373246098399464855045463665920979731832115229735020976999576679615989465260140396691941336017498273673337704542255289398711417266748699572360477785445059211419536564373410829395029904364657122559923258289160988879197696890778592883022878595732909188912759240526261185218768169981878478966073844683636781239852484265480599311430190929287278028971486034715729177675028332802605764252544694696164968015070982570966207408462302094785894423284255098649618353977437752252047845688191526092098143990201304599555932235113400231760490414792501050302985709255966771893504593362599323960986039721836078933011201853419227287862555164661663740424857807196776376240552331798684619635117725470974081834400909766983989205523748784945713798535639027423469561914166849739002744746590997059761146241002090642559207007234660501072411799949384087849951134147694945488085855670889576946650688859278973910774604506200751044175293184206677458703411545999381021378636245475880766431851112630999114440310534070934842043296644623900887171998354748400159981707892431949487892225269941253888962825725910106427502902632017324241782670370648196975530774918733153213392018194172887421661096108276944525034597650823790746005855630080645337812848424507426292872833507020250374998547768478608275912752569382980603053627779393367068523020437851681744347847742750513481688522581663114602989732815511729933835581569899403917088444461399474582509065307584060868647411191428476083473847900294835855229513565777712339436041669213676411038542607458181894708482231715804429958133495486308737577594090385819356622474826224283515182614915762181680188364760177576504802413592305922918091760895411364700171962665067831970434424698993015264102672583052387619496836830184635423430037771614202398837368128359284984547678452908393006493916254516470832154214095957383316752830494668263569671786171582395784686466129428771838462197182269744999391568223791294018538340060294645875577658167266458305428225121344725178866309742118807929773548658143983574555058508605422760445148994322122797031892263736954123974484546189088316508447074951623154567488099419983572573125609405467631171444324263695832281340683752385761858194725154409717366236256215364352796645253073622149703610416647474676301711361383665445159641961773714059272188290513343005682409537271734713907004639799468573608045151188508824741029767564886481428965157774633145346066715875650751006470134875971478340584924426433257534980748332450528341790290378835066786553545549019455205556596782492924507862955129774103355879558892751715934525705305595937953020665932550692833004230158208420796999511316727172456285028517954321623514508907271094105659664199037356921038170565453267005630583879479401998852051482668823454503617237955642996983125567331523332988462520112294962739561983181863717067917127030860328762921676153375271587918814509911501517993416077179231483944182326880962898099723083867079180565167818228061201871893952317711642520810848737155790622701037714858084525092039312320898847385416156302192128713341734338318294847608452492310963778619906157013237194494061875373755399333306585978991141709826230505344878119596915728577003564787268490255297757132860304529122151501807924887060178322121436981582839882437408143668671739519109182198047679158101279031711549971436884774452044339880991055498850215843950165914949761829242944567971260747048546535999165393799367016733123939879803471800945387774783476628488400558890043338695751970684070092506535766485857175476211462885869087223933237420880566369594122947815697981536836396876144981649698791436635646899136743944203335630979281895531290141597954464052722952357926941758513697982385304995975564209757302836209294937807736873844537087651079252701185827287228925725551841894882821472634115518647411097648116173163816309860442225316495142410491428299909336747691044027346753430335218144994692887550161177303132525977927410285436416673249759035122579869315253100370353167541121990290810830616826384343581062315178476942814687103959746180343632117095893228525586736222395521601648223364021087964318080399900445136166801164497317894990797630712014713946063484383847458759443168559020669014021030384846236826243626985021872520861750319254770546163570296539795182259400146086025387620832172212048583942087726512310579102331715646222056497564885974193734097440157072558935922889953603096694853383608609006955918070878687013142368643165008694722973103805509431835794743568689449180341269970173651934910460326559960723408264727682851928674891793350712920294261312753771652648814485588594515919468497174331216492865684894591588726287676766294153933561287082956809853144874964030910939231095735110177056959528898569360740222208534236315992445417614948462941135986922363225665468252476690795305332598975272331076851741081501114757574885351021415274226434815969457842246708083767570137945373020562815206737038361195007453967437417054727553729530928190868591879632883669632225968851382759331586885938820393666459402108650485307065008962710488842504996569794842295459899919773310687532734731022147883932015420314290660485199463734185509091810494355511700023190908799586237587312137534121146118198101121593559118180505984145339521379675695622623064222167320273085553004250927402021284335069397470830772296254595752342559472542366092581350456077004066973052254272187440601668680835497596268768542959112672769598904406597681020043426410644504291246487398998935057446819034974917473811492995393263296135865928212407122981726959786387590215436567037545097941247044140976886564109515118388439351781542684367489264520915878549054058859518746786855839543915998250560820030365009681603209505581297937088742107391175125282254746104875936667539601210351748222596382943067245817115690274140980981968050783355048326338571688346899935835941544489680336209949524917008550887621658816179204753665189307248044967402941684260547646883174490671638821990050857653139186461162051554294368671330406200756654049382865997875842260295483766540555882030376813381680833681579828884359374558221192738162950723533226184038653090527252129980849152612740962117556706349105640609576679557914792850627894578488499331032440713549730520280742983768695521369767728649077857516100217501808138082074838562443891731837310044622796046600886087783151358504790473472506662395400432082336341236277512229541016839199380436313161860821220284613272616840255716940313260923433207613737909982584483717206953068022958630108507173105894241759298306519299270953540098452202068835065321374668707246508484056839431666060294427066058523414531897813585438965610604294566837583214222990525568084554049562309164251660207711838002882430525109485552140719827199770851209722202681941507346688664499457957740318589346838053589762713213656462993700779490659400710859681063825739720421558540296282174238736528855488937162107949839845858075187189727201665083292137536721713463132020238043248544024111484299707431489075664906414725822841870346291442598136251638503521761515666654979799678160631352428259604216683196682947032969091262684355440525940019243029577350621167062337786262419400106249580615326006616544546830253926422865660755239188169743892094620574273901688584286254185671988210438789266756299806996604357062602364090831429101659286613954918927687472005813725508697816834215409090899159007015103880966718269942895634725376723481990016186543761141890558994940373902607567677813207292894567299190066950528184728355131318799077675927680645494038866628968821256841046549800609460780661577641831990460561684332497104749150702207570265849671416166653812032908366784871924045167204419006076236115197725978188230562322556517284517327104007362552908650941148521287022042063019394034010473762414852369831178485755475758394773746312880307636713075179858628299053762548173770676506303141467664648899221064774204945853985627605709926066425968697952596383286032098796988681623818400191348902316588226770207563401901562243904466910267809905997916787601385047262636392867340892713496382547169586968170542586763666079974129951708212261472459780502335592483300829144121713811441982187981099047642433331314535274878274680962269868347690532694533116523412383818691048504981296310121016511804613415609274268401922542633571534518095295292639560169103519471862622078168444020754734925113596284507795252391245265781744064245332919307484303225424496721864021969806247908421179087265303376352708594299503137786835924751316606118249569976578654938593727128831899352277178030925690208477710340562012948647664508680550037168740362974301128325984994881356707579881166422924332367822325294203417805037215366029364008425270587250908570376033589280438841200006872986455686781999739267425359230981791580652333955863591603589578496478258457111230893389828430399087429292047146208780606631980358976724750072807917039833232295456336043745706729520413152286214686478783801530952344870500804310990838219319152603908687779216427234194565134228817908265535621080968092015258720467804863870589118932026475280024923154258053419369637812646161171210778067595565496576177812932692523967105663449369536119965443450261226944494207679172098434146726007332555192010068144536773758461264370789839615084406412831639748278235171822447925967969956920944580868517149706995860819809657306683783320018452849482646704026633031666465174724974669759390741182488523560622664054664761280194363921192453516232245425195664357248197946295327883927976280000111088528461835197942857112038950451127264773834017948657196286439423692212357693158951509285742873575191040272624967513785819197525503154244615198534847904731407030929126688922698448283542487248351091240395330201673654344353461214492591708892994770360369385433380511576853262416669048819447722124411235916795835355762108710315534871361133869455780145879519517641130479780692679738154170662583053625250228843477239282425451604443317130736705059845403538826027924079557365414581342532308896019606663382873169321805798809030376885685839367391304162748644599020249104195748715338400202493987707382073718554629512035298185803241788648825173161720521966019084711288533085677292635454708767426753783991237953343533867343835730410207441578002644453048051273114898589188318718965137648874858142515619923065333627871082728284117759715999463689097499100734760381515471255702539661817318226659989504831434316385412270369379522937800720942047278718666472711001955542254486947040865172614523256779034786448188130586677057860091414562075524156172048314857072204897875050679791197534072063081257916867292666301833957695535189889149454273915219171821589119487372983231118603059495233357544541454034375027042860060478673733383232779810228919972791140178826786636626395208679777803693649921666857030625824517323866225767516043881692618274382833321487128528272715557020768779511112400800865973302304011019876161530601355902525212290527665722405748355176027257197391048084497282351647732040400598363592302037006107838489464022259084202185459336365817407274187303671534484571371614939566843914688049609027555565646501170354698378450644160205800998592399902523485784773882929497929288345106374490804985605573914641500218777135969031191042517497542180347240893483963847357284114425637662208162333096553766487188876542010398072559523891284723693597299238163149883640091392754732223780870840300331241184920841396592746755159192569525709681701762120732898906216804481728533916963614770837347273555864593745127710601198975651302372573439230574251445336716641787871572484985032696062341990809222217475307950936130789501507735558813112666084050105405286922647670487867413627386587028572663951531296461288876653358369566373103205154212189142741155799934924778436388091321039707733163545356531736006047444378324519105264109642869669251320433877780775160165246748529395485684354198065582108533554126418476111192348867549572051283370771375975837679354840865691889332096115838830220680687944455306912976661673894950971419790429213737993096516198360349194926768372346555415522633720430572212134833676284294462820073840813076459989304009689000954850686474676206133826842826218527730050801626424046402743770331283997240556960057160814276500755164500698368707213269621778736684852986418169162252660883755791796441568542181351737466189009198650809675026930946049891280004136558375503224392131846584913342892924269928707895962419638775843365394456845442147990190877095647560245239632985624976490084842485451349583214478046429051759535241120875756808813030910958418588959902878854140370688351283554420657136949650565629911838920194223475473103007154062546377033940749729880669384080412195436321669034395783293348813008770287443424428828166137295796494852840819109673083518191690745686970386336217143266421245554181934666630866118990845377722689733409527209084249915935429987791305021706066584071960829696682944523264265855802934070173668365981315398072266073191401474260216184117465191702864124533218354955302568777857992096946278923928881220923476720206973958919953927044858282840036052684347172642299240445436483100953812128495988365859255729028139203091916387711882390500406148538063200025682665474136136428377870056690321091788005510624657901832350875759491760233784847259006359884041310177729475314123101927885703366939120509203489259302848547083730394567148503471533343978913955897545920533567636160237350280459257663296999161119651947789300910938360683307277956443095882850053112079412056181469449550773902764284818602548279912771593357219576498205990861476657101148106959549649577761950316801682404761386278236122970884248732237046850247571095355095851914444379418068810270100419068823765262442588705483550210130478493208819526572997542685211563464660019606918768517264422412652573519409685479360744269589735064685473602952302826407250819280644446857864592464302896835484294093568016831827700982151588927819141886745875904235780847369184477689472168296483264369164237336792133125309742596958527407944425085791117522790841284426022693904998995071179171512613783618668118554378712035702114237557969968387058999411221443957706767437683535395507835483838085399698638188275499060941181070570278801947629031135562061462221886235213744463136234890212003623046830154933127941083374643106815244927336032298042779260819136428096973795845556130686739257897778822932983963624145756597188999109245407616243779111468727540242371888468484113681689321085651456065657227839338621799636151331716101411005612541529626255755146088420048373005596339415371069709464422910798877979471672957145810470080451224922577645938343423829547741658729898996312051054151616108876088056165357652410646637613344214350740516191031218763393932555217316800331232437877402801953245524056813173347725291572794913659692516977670977150751965484100010651971867225361536810641722766739192484785651448672264621807178080111740577867380078802454602135540954739154916711504216423009334853867624492275639873977632285908335663691309791156089210261401637702653626213415976763064138884310107837632361136666439893503766010982793316930623346203977646203706468459532970761099977076562020970248343786431082268114570982801536050177615561906818081595279269179205190684507888856371609046534249705838675203606499077630476909419801556993512476754807474934917791674725806660934975248693448553340992055616071863418707416720566983478113542161778435837998512063989217788599887720911799113731900378799156714017827172242656274728546801681439836584111380772925961133671254587292379753738646782356550500941757411835032268860586254650273635917135544047194788203885373290463298679671625759853767502267286356223785173191949642322425068080337420107742605703987952277484918872410956693442884726645971256330326732469345856499805035010164050400212704007925087043093227097292398291877358600449362460996104233436555974501822421918182710022930953504758510350996981132541655630918057528491670969776447397799679103085809412904570934189198284094948076751401389464331839734810773561974547681309087614652568459756627243437400337841669603724837823797727551997702803405147765650474721116401137871871854452941720038291759768578801624809131000835295360632958402598487973401434066973170951323152287053729824442724094730188102843979448678571957308141070102880431581045907976965061213140882086371023241968495610685234075471191765828914699977379576039431203300967672552916579250309403554044338075035417535145985256968845381815203598255874647304680511211410567790854854633638019728042470454264748266230427794926221377643955538677205838599503727883618770630703997334028163983825884095065307071460640172578259669385323878203685430991938294153101963632503360034342809067041350482377988757940721567450316537207775988045356515163714059617975023210450963241287334997047473964370195813645223085030839910083425415487194027567030753748090751024965187335268509468966966875612334880418157724057658895004643054679673421525667865796571195701880193942567534902565047945634785621111169522101954448269736512303344671730960996189439711969222013848562610037014114501605952536257487316275823197915808776536645433487215634959328780137288723450422341589636773551648216025886035311665615210670989808943419969304062608858926915433468064261424908253407154072874115322154016981241312265706138050655036679135654872509033870619782857121215308278811453383152015516046602425191995146356007106104641111123521117801332706918579243094587932200727869904372193721537250981530940961610090260465325117838241930537317584065897123773842063489414223356902625622258976945710673375779021367232775232371950027406712829134757009104519679608741053726706290547331577150838258882012373042428665809855647981390311434538183913704368699775727595405843060019807520643217288788415995004538461023599233557768602219282948890365260835362515252222491948829695464377971557416944098692097509347410328439078145504215623193540442550734876410831302693343815883710051840309355709423044211844821202977521969453600036693330969469131610559915584679843599551099704422042874592693283981556778849545128634795803948654228094629921328100924343060366557041744878297736256933013226321394286260606300637474027758788184015890679748576595175065168341763350863007072201414532144845221598848496245941741419817502549153388444233897526221509583154185345433194456999229192105573852366487218565631863537667366954048457666688927832741229425769793124447390934646256156865625603475537749848351104837366914096550635276121830839742046423178392285955124884312462645917476361767341698044535209671973721463422322624580370450269421027640681711270451190164228696485708637106772920515132317842892706050411739967031287589828563768658572901454957784178968565310142907314176255270794218897065600230776057028152391669982584782597070918866338500381641095851156295955225896934041069309051071904309759269915532421408158325364204700076982276718988314941835916351894601670941449990115994831413346598106407573266066615096420322806570481585975177453394343272500566149236212725196183085432938986510683712415047622429061277906774593057791796699505647262152483124774219523043258214876936351844384784859544442185688638701099732436966897120193741413523561701537903460007261914962149937077088048683858186949922937019980747426840960865032254686942773722846935983714256636481599662712507523152554598264852752563479820485912091153931591325982549113237142538507538777208906360217279773471048467870605093884416125910691043796625755956459739376838426571683205560149393265221625888025194836925988021240500416332924097088764987643618847853804415043138257527997609667625863275030170339722805961251737345075437358706474166119539880732924121428317670804045335420887597132499439247463750238253884439379535645528667608110108885465322891472138706407010976366110157641371815535124257235727436732793907293007590274126907029721545857134890726120350963844211212387318251519032426189745005909332198209715794199000625558677004905121636084654699742073170505758727540494408291737071499456008560120065039253062049442906641141112824830761072938068069873226938680058750847240914853262649098759043758438818267273118055095535939353934048049076205644919164679735201118367391918474116149732258995144811555416942338499617982005098648064269038763978806727316170693873808829182227203470825493246387055253202750272172000023009065173837981695719524805162296486327694827635319023785478248528203055703346514844129489691145805053783148123784147563217825605431004266614289494105774339224167466434238222512648855171536601625476684478987248812648164489524211382285479942554857702297226341326621873160676669269457432774571240900468123694118462683484395856157973869269163410847192325978801229224006960184529136910375976630808387057231154668600576537290599432249891632454855093395778307051356293351050555365613390523928466093026711525116800865868144360689586172978501186892778335769679388904698240604066016618469787934802635844403473596945190344896195447265167017758768327002689271135368736451098223299442335595224735426346571515007378339565922477219078023551969082316975500525306847409542919383445501248217351953713863081183646722568527669104321650467794987438679480431263710928760081746101489669064249097234912198218998623308684268227754153835594043952833901718780311251728251746447840978297866082456019204066961258412674692978057209700527753160961864325803070325119882862021224208539846469939403639746244292395996786951677988413491631393465009964094863435554045884368782858728083718868913477935643582501108231039751654640053694348759426596748803535075007817369932446674354569955451213964790749070299841560510702621036022703811239937095843943941755923879203639843564405545167331743544225296467246011591044747406509076604328235354975917615425963965014050631992591808981133420752539941811126515262794090267140713201132111367506464467532723268088991374998904458203902558513549042305658780436657685584266364131895781958734857156795337771476818897666165509057558611449690869227371340306736371660090408475078458860830696986942858815219983018672027506857279122093248037393817148756377526767208820855386686816446478352555296266123315450395066287666320862440031234223631359751301418210104070783517046827784842169378299279742958013477047009422805473858877698944131444826984112780341781203403509293977156753289405191124229757105248897904890743240901756078737886387457603942839543485114397276938660508499791364330335456944106057292879165044115643240801290541888188122121996594119613810321110246723308832050044223538771270256317883683868532562291328251902881814633998991782787996404374885673982704039970303827758384000732431980581647935180239427612614577009077474915496189131053580860430048543702499154390283659859385987624905279089325039020442983968738570405774957340103231258110062453751214696087447019333091913519091605004580363496423999311852438216706156155622465865072838574997452600613005535449680908072040388368118974403299394850670947517863862042526798766340096958942292477102310785828010061588199083448747904370274053262468361329073637945420275017861538728154735739501965124572977517717711366766785947868933619502902362402576603815215135556786942228765551966477969052305448830125641432489748188455555082531595137021508292775984372213974076907321234117089154620421860284838071299419635488942380967696693338897189521884452239474960463924456954740202895944319453722028146592068443522070510672474286668036922366307659729155411860263286035937609801227350113879853117032227469964486529298346146155461054569689352389454399521651162219020995882085989772827349460581821382319474986188432095963495226946951788950540186179488117847168029267966421138383401835317333583468082293478440082462327714774894617301696230767664361807560080232465279997801475887068012819258134657232678706637662751077177362403773628321517147563921675801957196591726544858288786248361064681263966955141054824873265723253865017193216444885089219278951311092817610298943343999751316099109858818790372834771981768722848023461663059174602817651714447881616083503045602281090777255524242906461077626429162398221599495999328321252509084706566682416825335149000713235814420013494068580721189785145228228930012041422847307073497818665378551905268484628567194781242647037349726979692001555647214883459461058725850044934186730013327786435951727628573957741543126777573195683762249765742013262689910513133088538160256445832858267841919150257382599245324674552917228295143915831346194680950312508969192387318148348840091681301331614397694056035648404461315592554461225618478783842200772091259345522466330698791797629086668049950585086766137677579283348591248614871654707470764920992395139208168542014243407658837861435112643561484724456943278296677797876258664252802226294528769690361401045866612538689446831655369677293216268038151293026485136284042404221146768459163641833646188956663158832630277073007404368195878259326477221960866357628354108352274948144130462765977517851267228440617690320460862403578674956574862410105679593724759783582288808567566365458501112064907217342133105334894722885151179316771111296362690790120175885138475901996772074724194229321199264768057784804914391847129754979027884719605859496738051425992097784859874306654066246600056394238045839176680876262832716020103577752881228336091125183871593300252593730890338390581371083966589296175949407494400676568083153182664304141998275353759698054639695152215101084059327033674178149456616897454943746264889268899385416737765184278105909572477746607731201093226818591906168361390487762104012241710227547722138022195147683779091916773083730631767850024905423474271819293224279964629579743006218550942093369201672330329020139649412379454826396715564340190629020947696595835084367633150402435788852709247006620151815436823791727616587707820348311283444962345644575833570114858693974673340067356290690850975319933402334111481721230030351003334264754487679884426258318701021234225501285836873571584964696488267910816573939466813438170556912432329657888612070891217991724797807137431278953064286355357095918704278146434233029633398582109483587246063954321906875211088583574430013321321079982099429036251628333884385317933138496223074636801444167279810763306177510709938240185454771441051722766729466475905962029231478706899301097389566934411150715828366559149825309754306504105943827428201368836292495984534575288651867443080957276660027363256306555877303593760307306075784772488075605419650167165035015666972309573243986502769015479915622436605938604018788842714064054871363099585128353657990170047651203200201300058746498606783311560990265662171017243463960095143153253354761387157715691206006765174076787660801736639983532430332981122317281004186299778760258257675089935641343534281767518807479643596226968276330384992043997086966607687762411217263608508770940256675238074829326749845048079062787901543703153861262943164433859648047479634070720487524699647788832749742212439858927131362859137660449659506906741639981908660438523214623071696985690220579648565329022509372246373742397226137157890081934994055351695740006138229092788005425381036066047331751367996386329695354236869079082519056033395244089698583656149637048955796894777756004798864742964794878859010668990104815967638207458147579473050928051550125529804661314718791615289037772543789312970580160245570990222914816831456708105876765828568878207296078827500480869481069446668820433202176382837588565679991751701783885587656364682250784289183545797602890545589500832094505240130278642921971676589160989889811376861758182145477277206143781693341528748007351049632408533310937296087743905256220721671023622291314970085219747739959332283491613532315333920195979810239785043790773449145876736980975955626690204962902650038293639237645473012665914508772645874945086949428249477341459197259742647476713884950093822480900064509985526301856727567048550558095326429746221323740697714777860661916997481725353754750251587193948377812739895807048035555444902517098552783039209147645557339487813645951555519730412092868890574120871377312170438498354805861208668221120687164502671788079059122899460490620873509841879450915950410212452032618526051978588136071278172636565022981180926607385319615322898798221564765807916653563805997086157262807233885793043404289669289175394409684457304992278084122094484170182085031895643849445816154760285112828080933784021402791003501071806246655546735649708442714621373394681489421843022645960140724573677174321241652953250545630154232652186326831382304243005459048917685373030629036746118473329105317217511362486084265389870435747084187107701955026414729020968739194351334470045924759761847190439241614712906947606970600439939928426226271603679931054057877484763430678468710425861060466001492060425409828895315987817082695713091653151243865326526222913030472916462034615058874546259244791636588430139878701342157379977648434849403176183367314222584657071069219405137249687358550090157919996345055988241316074224724150605911094291978423057083118725188726365456209357451872285544447554810469508244896940519572218395885777726651819262063831874552017320936608114023581505907072549249545558373518578893976785982579155314447391725545674753590605019272150086367477700669907705418276048416932230328111050035279079553782698683241507010876901071655909832168680949804914780243626961358109783650449164468879719006332978034852676158487920935729328914013123671710477540058697531586081405609163066152575056329709217728002410788254648713744850744256084092187297113186420437783958585331452158007990624335082413675118327948607180530302858363792509446403810098805863568434214116414055187987180403201648188075087126506442542644841578672069265059348972953466534857768700210488943287615174673706825544404798423002027668208785215859000039314473336449446700335045832449798902908339388933614127915740755587146495752957356150688138203778717542208020345559202388297976266703867892320951041300042625696306679428265125052497281282394542600314080001563056340656247454207819608983800863479879179595818745665875547001469077875453952838069682624372468428528376633765088152268429092741999565484751946216514229029957595708654304294304841390873512269388407466150244526028591196952768932196554290819276079016389974850282174402945593996965990086553477161559819134723610445488223644493687475030607994732202864749961276522599253501637303811198861938229574685403886319021896956965047093608469925780670028135179623029063311632425821712625371397009551984342775268225638990383867295495625997735546872612959597268857242427079846173229239370656817231798005419637657454330548040965454755140643757973615050525541600501144435738316564774906231467754889601519206347264294394959058795604670341857718179878665525729263087130477504822719327760347078022404358528872917766661646355982310587702346661463012460485810615097497102658690538991716655978759936002329238032606365819095195332871869521667176557800749861285618963099324477867668255201493994064091592205815270594296388928530422897969150069710893663378418392675576793128868600155093672332602664935670710124621859168793292438625781674138925151777563250580080086073051704192533386410858336517403408503638613296092705736817286855703640332585627085482229332245725380677052332971296175322839110363288706099357485181637327403950686637099950797677076735458826199312114554912382424092880053163606301768251523217893492813295632384682735019878396129933507005520219024932994042710768935069879907748386416872601246653262818490975390972654249752621636116675782829561461288635738763342176782582934954022235201972323363058116558143850620962054286705728569061170386717120339902585461394166905170535374079951166782841708600643443231083506791025974203650684777604369818363171440577439906799871627496942019902917816995460304934300666969950753691114664975791139972326785621804183591501851532166653857945278162592843343721212984968127849331812909655625835766663232091765241728629151150300793414106281623114304593279280588579846173079555815008739464486235219899137395108440969730100092776057612918412857481448131803671594510543284017120560148431001157568637641404882083583359522021170605338146413970635843944742826806011422336869351059348205350115486657653481083479840917074196411627248088064208816174031052503784823924343994203865145373438551700235252901325500495474557315056625224618125143232849073100970500476301555690623010274795941432563563312632038372776993481804485644588077920813552882657105263860385342522554046127947284318276059389510629715124752986984430729676568398878793125269458112564933267857986427508805790915618961097576563039522297130497331985435375777003499923773754137587805682083434173792367000458328717363487241593153471160736995490715387212478881013883899378377282416439221397513576732670586365283853807984414165630002161487246933790135585425826878962131208648790872305803924691290023031045336713592563384783028814021297356067464652191800180374412917406520948209692133043296159130693350519937935905822399117807469669307732871870456783905296001947574857613304805469548977242454468727252575197302381822042128515502771308137784270248533374988083283485055563430738536687424691478135279361555677911598072504836734284351910076733433513391660886103210354662804971329825511397395135325933962542835334361098093254765680583410729111311873561842633380258465799213020681327761180847716800398499084552758246303211972574172114738239260994291416828784467535606033333981922220897537596281629511526978514167696600459096681789186261594699664428052286267880713632588822120244752979452569251515983984744600194005075411276342312586340784595563251175635404197936184620258592911238078489029935084500671515743652095687828510070663189741005508169539737594335165684221048191811578890622552709098304486625072315236177814371633743568029407508115997663372196772525304919873559959910081657338918795153276105508204924431713886598894258101332524058411974156835281743916950736812270690535287096808999128364365786134978703966543227296444931691191930170050863084110758172627420734835416334761888059263846014417398041971061628774787647503213852743152836337547937580900509895005062720989402782520701364843551004861157899732109368829263387855768471487351879619989252733391734813914274913286884522944427559512687302341625101634673723419308564150274160783337166165901902238762772841683231304489644089311630059486793967585932282214036947195901896009128999367179471170296550894853054812793653281797567145746827190506974944717300781527273716030880455615253981822611700530680701637832006466186528554554572550897941806243436905068959191294763512274748653394536828254897675553831833610046743256898236951369860538902243262740157239207486233273475913319424755428549253884860909771631707008953891162106908813200441844489072786433877997925019463860356848462401079736131821770633391654291195511064326225998211133109150908249659751183797111926517050410692132183815939157679185778512243901649805273575025877783151948179915845814576009997148138634855589850842535150149819748732118809953950195384869632073172700422785537494012873314050498905967027017218068964474695859835393835774271465714618868784457095435418190068958393381624274287160380327365055890940924224421597638828446733614141376324280871123724946124177428850529643180966062560433187547447573583452903151676364910153404287881001145029530076085113128982745871133998275423833042665623368174048670429245100014827504328178440312991036651713349499659897978871209935638734529609743435950868513700188461677785430902317462708940554785491773036289754911134166590805098684364193921204812718925491950141104328332514813463315271514425616991560376708001843799672050657185672382760736874179705528889141182347147806420217878096596377930720876282103216544547408643037075266302081008956078502944314186906023339837248112332168375586378538108531844100971687370402866880097346779413452550709167096494704062089823066678604248781535473854818203407119485358694176972566468480368251182233172076637775114346120904541563704167918251705670172475949205173645860262728776324466307347922562938238221379480104607073293129171367409775159281723730615152738523018003294208918445956364733385139886479342640817236699867214324091511063076131825438064953104378411919021368360822146900538141490380397330722586423806535359071589590269429727192099137105238728706987518418376599909971281780817762322166362028072496202972471538703426552284571676333314742411417296498603148551629042446164591026360067202424405574960116020216892376222707487575393773927853735195202895820751209664187887446425373163785575164247602078760893280681235666201849140316403783669406450594688851033144521641310175272694616934488650021498816816390230350298218207213590559776532734222656112042550404329270528935674358301299238639880291552057214888522087892561256063642616833261533164854734437938959038237633153935500845983456862330791332172543179954117815521563245701632149066136280527919666917877800826930870678023372139966248385031944963341451643002493418341585094991127136978021690752262999366883790556771335661166894890711046886042233968672960644859193057810643067582096220418065676778878784956542482608203787729034938810761939341672491120344096549153658511303732622815108903285686533090141108117613372029127730777470139823100358435139268831479009882842647175811705732165727642769490889312276244135607315271290477400189751925829048093475403345539944852373889489234912880455026503595829746244892561050719778746588737455130959988829521929645754680292416649973571303333464152924429723268586702698221194825523666541532783131621502834974526103112367178641982148005976759288344622694897632405067307747329260628397407458983386717133578568583276943901334987041614745253552250395083405247320650049254439423185403048836610564475922354563099714280087792445685479031666348312316933307425242184882670557821719767973803490916546373516734235765167347160672745015297629078665310382636424639923928121195247006008525914249914040067814895552692688946859319546616864157366762181858850380348982506080151374618483286667595348447815224088817168000981819060657700084759886877586108518250915215386927442894786758974563917347289953256381572103738664601681122096590772403924915488707545223432554041258754979512628870781046077309127892818219518730695436478594866395535648281852016923677525378174833246286464226430220508105848080828534274159471288555957778948624008927158794038130328159222428817684345015352033261280696911348312000175388335623532451650800359475530362113808445744733973879175044266616556983797073654344704520830998741646934336442112018088770485927499750105167924786117607323222102206455717815132089926928219151954787335563701542352155416615595406469003837669134915345073628252607597476203824658005947114282818782100178237976875840731239454473212735853649923385281399037598801603387853648154576482450195561940486379632104015536243885960995430351786908251631360386029631527677515217247792325061502369292275686715919081932953602707147401838376678265581015042645940250604516841726730627672507712588642077559542628276712736215499811522609532651990147469040772632564861440789463337521587312583995246350224152470392037055254508967867418445151408844671669857078118030129607729220955468318394522975500203140979195334683740476523176710702069356583628791449190462933942634320533170856764704615853594660632624225221911504490265678748818739258031874428198861728774045317417608684954959968331136709775206546767890959168217812130602210677733220996293965808913950605577469122050519055897838965261559136301827154648165330163473190805529783950841407831224850079736259619487560102878045364738246637347680216577272234851246667003643505385969842056655052004945792400290382120109170618243798299591670472349682566032016674916888446043352939172405697333147809067427856659302788308868550936201162305342164062843753840577524258276231058407571868476081304844408804247301094014416522750494201995774476213639256576064269688174328673410323819736108861893789806973573661646932871465714707744278677238870719922640702290891347380689120808640527381838349926128266172123029967967830810087701557678905503484758591550088735566870892323613652466905596858426828486237988615458644796439231452176694333091100444841810887001290769043681772318932561214740437461673757130751627825245636337946454115445741738530460635436468395158832705478494702139259698530272605476732165660191539368986799433744080465867707603357977802909771976138925276008667101000475470456204805463920251866841671961000038944567386203154199437987252964442694834457327089550374743989949632266288847288073101997759788359757167292106855442055656436558952995262338532973962288579612416600236908726791434924588039447398753832193148858897227145139463396216050302693542570311611725287903827884619502551310403555633598222482399627839382117214777196610970531541840828164111391450448627258633674828676340129470369506510552850826532329824291113293293553397837005735869632105595508901309201321580622331869476229027845980817399864778349951070839370392590320152967859717308954525291792222322655832940489023224258422864440878452155936463700952275093469796201101113892975666083839956499312084748615785012342039055622841867132258340304203959587078772734233490468853075835238096870434660072010711048119301874656720142298223384397907539018674620635151367431863700669922091044402468337913188207838549220556545128865190363401081223422412848368493180579695810612851928053619062024650633721924920941063363913249461406668586391025217946970930670685188306005024477276810607230543621986258174241384948376396290057532456115718237601254264381461732214383036562505012421705559955372839482433713291638442664926300571854660326387809084800912112125205183924104727149405047409477163779611550188501845713979702819911590341435889107847210440247864441342640168885972185653472801374753135171616618584853811754812781412179107249560454625717522535466073799333954006986650383673587834045789662069642655604808720155710320811222321585316761320464648855949935380516550202526630458207817451590661053733914437937376907907896274179552626179587497472432716396241463328795415568538244482471657242963836945244351704292207843204663355685318585217758048449950731507975929942961344596762086635203039308678541109176238951085015860928054673032863766040929646168141037253208527784148871715285831601252505836113912287880917906758759124078205783980041307122595338955393918386921153808548556387198633696399856688835986389794825707819333550932803139892963652254937967035055530094571852817434248750229820668866878743291993682580202229247592539474157952141594013524525234617272722188978047295757898196777840129599368082797946389219476300555973897913002034127768718703972708801041774191015010585057748411623238914357572552276893735004147011645687324475562387769215717020768599547912476034689438443517340404201586999721488446107092352142079537064832575489476126608197456005480661331454701929907152407423956937492047321584156339198211288651417651085682600540992624023324126228692139458768494638270371483322542300880698451037237092882125956177005615761222480236677478776155932529647776682224377078822629647507948487247555202570027497490236497725238478284557504342213791458944319463084754064717705293989265070129633802597774767097898735715373466036044580917555520730228447556683090934491560920001984353028214221566977895991982930546835565373147788298708301886165500378889063866075997270580020838319710459494622184766074171135148626505014296045001328881623479677110109185126992403086665716504814359325689559088238232324149300894151151494408522795445512894668041706759565577860127326596992618171747663919826831808785285751295167568668573582871932219519979257313448618757708169173334913550930399192839877864060282745748556071543439845616495347192158226698422098139431153983123580739539634697179013615512008603786506234808912953952416011059787657744186064124621873917113974966131755027531569572224650655364466442682449559969291353439502608142105106879436089316225389671819039291295121598646869949640478121892318472770720420986477651935068904882470838692808431763189310282143179558895718814124678021599290841497425479081432786292636773912028708024489539527821420176353679841032376065493070297500490701294431703988039576961664813591975007770938954665715170660199150911393773846314543329032179202616566494579040658611117137509425460427968168685253332490315256336739954118497460972972760292369635289897012265001830155689792624359500847196853771441997285596806975723515903185484642915469928268553916373638322504530245321631238722513639022645930729217823623370887625248768351491941410357987566258970473462228620779765982836381686090789710877092463923236345368330558889260051287362121043795129239862066389296655552676551677182138289499755830066369411023521154947844146489277866578931681106959118238945002097794442241520749722837048097243058635265702416172320147248372811993652381364017334735606938293559676540933266114693636782577812081526932372349541819148957015357775875664715604722801964175768839287471611219515411894017266732784926349292984316177992984116421046242017505818886643873075304748181316058534915672102104637186862406902621044606139013789028423985215283484511607097307434442092837022368942646820513263818630173017420623377414991130715211766076394102774082122768579949428871343645628290558246224563054006904100819188769199754509742366037405261338794140543149138009834283948577483970629528174785321250925212027836659521577383437087955167368354047458280667773872528859636129012167641228641445396827573174241841502608954349580711026261908507946031849193227705996278267691494159417841573463103833554259672541222921655803441360208741885544508851313257665266877418841603435619371735249217757276887150357298716295951751693240697640474815111120033190066613073734007397137292328427560198198612369924951308703943509147604586802718228919197594579686823823588200801293694723425061486411181286827646983558692323220338856270987008296918263987965927098102143985699830017220836022130692126541497156926718665174983036550175423472635086734763525055791666796756549730387002796469281566602992652196534815572485417389394028583423126488421582494616472207441603021549146173644441950058085750104019291073603258270111805883262478249039931973981295310138957242479513208343855737706772267531915287430642418217269565918214074532398854390563764230649981664101789393212128002266208419136147881307831725796392665640956435433733036691819270809911008676875412599030584811183482432390040496147040974395613268018108823622025838687568646158871054419787425258951374458625439649296575004677829412058945429896638867787857101990695789574614169404413868422319235346352662252067316484497240242714852321757755278708162272588510163680913144736714211135840052203397530485423648528435460949536880498456514032144921975485928629611299989058942323774597423821285512257579277540398388714817162335133467722650396679074301686268564727139753637791406615087028820969049269604999626008694861024665398501126041453559093766764716512299228402937614911926598066187744307908589596045812903212958032514907500840978549156361902675045874163056456962630584305866625468619157146107524141994304036694212122567494496360647883100973097670218517849614108819865493644086342311578953209900126711161181889733627228432378044423018985356413310217515176061520606386871885773260770617243932256373684002457876694622852054272901208637817786345773155853026787751197745650551603588821093326353276806974413138475646484347371681559679670667027643896829374091777947499276542507259395356833050401398581796152396213187403392925244619020614192233137569799517036697245002776583087946509357523183676911960994023491380923931770100638024069446338490309433062757265210716645942970029626717528691968555550601223563265182524825856446657537895861141767424746873415494862159818981011169631278531288047886490849510869175653123895783412625836115427960532434801557141228847687499146179488322677367866376534900378393536835133841890340457071110941123669205305386422217176575167209192612679173621698536131038985459802733269884003068225466639769274523215400127572135552206772098702765353386459572408347194291727923512075462775952873472531858979007662031553627927501108657395893464324469527227321970387787842480719703193037554660312257910383030789599974872304545672824561888274559246198379462638961825415230119884190214485114128583807183127755493041699135738292631383693773979034443169250288076537405664662774140773532304548089622403060561615363524174158475226994697704945536586502229530717980234511961743198533871861650269306749526671041290283237722975653321314956844323306442426753370943264984479856147879090791767600420208956357869014266920996519451548559476674577394915893441261436883619098207410299735748073959021276005668430984189390241643396956934999005444725985459232591579299191077828920282595460741274457166437946287757898780316852252214102610113831898045052997187508759628563893017193988757595156677413396596291176961105682134804530975906202063152853641828248237589560782086173515083098573640957633051271293375126366757014079822063968696380093872508127888839731978083475156298827787898528679574476560867141042279589680577204619124406063088124335938805435675942008231197089034135719655286872706269660527168581588590573944163745434923573226895787486955641473798744931284825834029189179150657559928436844798710540324426900008556460419238675640900958302091702643445378824158697071752613106045651322660475289516615995374670664251448203051523261970823568428038820344623815042332407073759565029579015861535490919431305183543385810130728257962408270573403370581834792337349694458562615734374576266052473095616351992660837723677900547042432169394658874979407496684872886812833566141607061436794368484694490183090002330600004224715257669614801120947246406817458296003959617717556684840973463524860501139451648664122530643215090942821287932454384848508601663439483330430720753382712123053037469786069382745236753923509848721031647589903301123489768375849713093533977949748556745114243422683185738525128195004808680894510604404116515309343996468214193967082862334142924383973427284439960129244456004971772013845833607445699130758197524109536673212636960139864613520149059432231183925439830895633493546964053839190459216606245920242510446241627985081362849056446733145411534990065378619879072285450069355304882309032661750232420391831159401263569673639862139796540155194688405372191781781413834697201740883097010703700699808607010582562721618029914013088243226326272185747538814498553281269513781826497188878545852467023353287413736245915734255271013446156863260765075566608050263074917896015153088460214311568951732046906743318624222299315528021774560589942153548946904382630105787410983508199850747393284491686267687856558599149295677226450442864145821663646602886692377604088668804941297446671359857921732967864596176858348980231504101321819545670209307356616390379119575985908984179034308269448363676109401952200905574239248862147964953916250349826535752325120046614576281387878270133031377599134663211983958400250626146753411545503377883398796015330586181164493284028200596769675164179329507739208417180243264473388765422579352292573347102641829564272480614849923703531914381106948346558018294340025598246346988968326755004673314051252303970756954864813809605312018369369060630012706281258884011105569769859080590676415344760671714852781915476083515453575751712524561532704910884011645281463568676867905782230553244512714521906782243341020417901726225960948715766547756171760985460022166818134552420971223899251649215257377492094269326399231677050903511031215955162381577235123380013671619839923427996053400066043428127869484697558003667602512641317631067710459386268858419772944786739251024227207378652067214118713667373450320833126394286509417434213417222569526786192762681342650830007752757576922410226740420350079635978073017606799155853624822476355166231746613026965456032493524509800154901997250226764114931831168376101424862035014116280232898876432388861122281601821437691666441593179845610345568332435694512294171218172105860311074652721844618425569968730479096485805796186498516002335757003231658736415607147233094104355177316137383831580759908758172964309673365733475945534495734775843425367539753268657856755569558523863834350084223665027731549218776737159453807133414992073399955297326911876147234067544513680759633303453922113233433797226968850901046939592051052488211978261818288226173820939736281606007251426046100394678238063104755898086541904930868807177021284595285382418176276684768991454189780631428952209442560547352579880344742550362711270910116916432827508645786602504030678090302285660424370229098671512169975165731048075406273576328781647051637558868225583619601587143344753625838737650596959272736109382775802135427148346475310330598265530581651078918000938857983617397570321535031298861362902308567726572542524085898976039670778987914636427083366706971922844210632676512591406149199824091934082451523387848560967265837974014719832638943978268497993848273002141399687411930336136557760000277057775592303626112304785074334194088794028319832806412331400688959186370248449312576340357162500608115476429832619413813797963811962273081895206177872899977831478427951183486131428616753529957710456884041579156709855484947032564947027060445440634043677839105422221317039095312328613976057884510096919016359258500841405805433642441951608686894015546302035371233586303680024510249051463592521862469354009124476014387953543992877971210531188375083441825710872346312879154718515958309551473196170697753311880881365342358941605982361271823362862673655257931850700533205590439263441110787317379433951957296451064277144777957397913731797094427926054212309707218934833440620302109351904343122525014202285806107283250481430803528011743470786807815289133113671289663276251882157545134790160254715561149381771993324690349635769450413830436100725055858229837748423984192464465327199474250088187000605189617723085478087809991189178160748254161487307881731431142794053259690356999418885323089115242565592194728194815045714251166820854939044862189030345760976179032114751883549127733371973169938113428426838126624486348308528203413785952121950029449121837818717289807203647546321234352102453140027443904117769682462284652002687560775997789359366427006144077398257041886818509253171137429619421300757343646923708416604302583772937401769186069439580751232049591329389886742870119192597953415403822409555362771898480613555579420873972237555237574707834707138380272973518539259708010099548153871386368946844788647348795749901420717156771511007835764999290565654186836681879429706454158124727706866565194476876653567500726763445682811149529191029123727445517088595818635163114853486852145280844998973211543942579328219804611083397638815838454849823202628376844195752768813379601344975347347320405866435242155166106933600923140058618774855980547040748826308625739039590762381388592378468040771286602862072909544036505663035614474570510506345752343130805581929401208905724068221375463061717488571905770108594516574333907636629144588843973765274830030870319249095970434907403700347111475038545338674735194890672758660650325587970711196057786260305084493136927585426265014257191999046725510715668140045220367132554715780803140258043580283253214123186122285094379005276032655392834625478730003871688447622111153095669825076814439810687897425110977745929920306512194384308760781910009762441231201513280134851231820922227135823885649652237966940234355215026132337432197476650955296004276993868716025134828558433266127597225254560654664853423539019339020421662215865862211843300822170102665783707540164449125365178852981644018389628756090372303379114697988718380261669609600009053517239563855782348183050998588468251236865457184000465389964930613796630656687993154934910406220313971026475943701142792282478211587788169466492416803460044488124913313378150047460219686113172417163008236448536992715241885586984383040767367707341866175723968315634071876010466902659094227232844976558454694529353783854191640878134789219518212969676499916439022175446812836683131567766152799497035748378062072359604138132635418804293707899394556664559056886245699402037283224415777386254255625837801029989905864839815803847903979401780876634250707455410256894206374043721068815652695656495105027142616695699352702627990908605714612278333900919895574959950925524781336449153179975529524021461737178567320604728920078783574050262165729475251201441484731104151319925492820145572305844941765447717874801480482843135307908175458382616162043428516087160054481759493914087844076173054734067599838669378733944679783044782067024038213174599905093187424239293609576713418200622980370608483583489295929948311089124024391729859910132094156256409692621188588709082983154035512063421542023289378612957140869108108933606459302735004587574892129550120554640721477431333959183759563063348674324211913394881591811112394853794378457199510669643617961783827014787720267703340272460401501589688672894787589426753102526229158870344125448416445216682106593890312859595327073961191185560599167977243159256186907704103901033693940997872921255604484660171093692612233102284842822875073894674948425961880035360112592511035637362475127290631890676540387805288218355326804886331288842166913842768700698731000006579433334429815674415861625097154941418224174244734106441913334853397136411620409028144768896638129033951437599897467944879902398181884620059210511844375225737825005314778937798827404958474164784121246931154219759093670764486846991692329894823546241018602018779507001177307633535469481639690987694449534497261687938238325295496737550448307861332255073115323675764713884749708251384040594664063581122970359535719830350138159610227797601444698484840189443744688143921996861421291500796943236726424877089379263087647092379481725660131833227990846375386998191893882950679158639755607173437714963552607795141211088395014668508143059920909748545286447493575202437469624876118244816784677726568419754419461007110123448994085808790809337149983414074110718589621070061928787095749195283088681167842377555700126888572351389268373792351441701079522691615931021852008699407627410799954193672374928877173052033676644662862448252536608018835901030360460446047875497977314695801488603932870407129108764979021483948072563103139813083844040786618747915002026304190877950629213136225302089704627783248143089047968710744380897606591415049390737631337691898464832290089786037047036291551049596998663145608128791003403260489834849307406871142602067488387388681244791625118981040475896406902205244965312591951791006883590766469019588305266010692474426526620489678340628414899195990362056096892932302757485473037028701319441578703563451749407787573890201417190118948363846276559797895821711783977178633141640497587210009103542041264224435754045884455781856803108453387189479745035560541004755478037301619602852389432848080436967986255269736021681386787656979667587184025904012501985182452196670143577945355434168341752673080373087918509604486785831088972607681013248891491551856114214888056923097498535880261890700366877303168075811106617025935532704616631142811537942816031373424115264118523353254929904082195595287517601500157674336445212855160667927614442146719778864679543336687403997086569525202606206355519217417039986585129442812248494577217628510125453450257580113102647596564879514897174330911911405517619177502584421415122620802096839227325336379905976330782156460459203499770698414903057983558465037026817564692165592696618596427292109184455026366235089980389850899308027195342154575445650673677138147327278061682104425919811071853245449560757263129743972292090436076506839911880050208020273447944332419441258845745298232224948613231456222250556649110438732351922701572984357192914837176313824505259910612170938697460821608375854797616203981386556726593010339401347633689911835643451250618741109326264417534542934709823864254955012071777673396404889445087416151802674030217491980738900381414700169430322279016476440122276670370971046710091488849557715710648218515525384308480650868917978221580632516241432963946636467725850185458604377576421620771604933599089155482460204178493187678818657386314516231819280593990545719772311724572203162458933202658727917080028883953899032453373692784235380790577063739804083328819230506706626971810687096175255155600058705476281092400569982999308768026617412670388432109356192233386656350549966666635627851724281647063414489197561948811736610648401249097533093975259547200923749866234343286476168162438417975375136247406334756259452612118005361040004323367340129886285628003564858896789773276389115845267692873211093386337416781340216507623279447101660579719847464246266655487970811829980563843820112579046340640164997387897097308348671200568775134458949744849010058212833873417995255118893438681824682027555923052671122467923580499618320678296507879119269267600227258880391812639651886310067673424001889762234914029105519014352464787671338835120640035413117317239717115501009643984382280418856233842620233541649740736865956440216563034054751591615713796927594324509819132911677003931008667954075818941360664731279107110960076012122506380521410284350103982195554207998013629320342552254329011752945838153930839436465047013405881300893653589533847565631110243004806262932172023162150561446191396887553211970490772535712467617777283047346130494053131038660257219265001320047121344680642312470959014437240375268438574561465386296255106935824810687256891029339804829608839429267160829476419818680305641046149509829233270885886391573675456005045575045752709054180119597629882280191345722268851618469321182456216270577436977446162370234643774169518213354216522770066825952913709079384525671159032038635514792153589758821339523289690860843599474818376320803958241786009528432161353459502616381830075605484852390593383915271503840749886421076435950715876218715887730164910123989396277820955817130833564335469465659894616885833947713129727875333674806163635454650893009702220028600634941171630969487073318498567068601888094193080116220509219949425074795903850005196791143442590114426314635178421101112951664748278586037265498751830101773773999259737937191490525150211751569290931958643949300933337394664675167195353480864366444498552665543467105959335493076139281953043234308524655256785236489735400372411757424878162066617876947767762398664681847053319812975302399846804396325917125533907858514833860284018541993558374946020232772581396309554947364268313202432356328176794206411841356432537490993620750490158782841053679736015871724343035341640820944172331468212898785914051067311716127948137513088333564505008314414886934169132431870120702415751257938154088924571052023577310121998582408288636394715525040849089069885985737615290138543444665529687438627607632539616617433290905670798643295461110198668594977735919556787540675091192438666872629372204194426880842932869123848843253937581519198349615435982049172056296395264436431327540753066263845230821204665056885254784024830254044959647988425591570720378922279761806360246728056915349129015327531462278983416546611817350617941927466480479375568212162921407810115854788922406922035659947021095721182117563955691648450709944497918096176471127175235211787620285450669551449606542464617068302868472804630086419883391347484737006443152979088991598905434879048982236392858407864648222434469242834885255769222526612286099197088431490300752576880158501783354533701104406229655048268065922216243406009273723553250202834295930376759057055113062093850627102989099138575516001496927235587757426384315319563792061708979581107284923331037893140494569326368162211473242969952501564301720308605493903372992124494590543229080392893602597277301736514078604237735922207579973341670169840847170175494823361206331985708302887330587982860595670963295506428949718070984005728167509321840528304065790396258276206277043807292250758027223060137475585450066118381300888974829926123999030435175653260477594442674171592116610665495111363406139406278752526795096964694563231190572710236257700256796566751257944313048105398168602163878857586758255692996842142647436032315402987676012548943552965758455618885311030158275451498018097860221191415315354691047549222994394614142167560107435399315059304417823019188115252160861059226124160878365690822057901327695361110150638601719049031884121546789458983566685725570129287855306605719573096795913047943789327078328120024857558326121930118791989033495276052628603039374254637410264459394937847079068180164123342078173477416868815786245083389601338687515101517916655377031224452780403669562922156285874595400098983071301525219145743154256475046608186672912855608463054308464849494895972809465242766210553256242271002542591910746480798202049656188461003006554708528041206720146586610372516165063522545408809827319201129848623281156495512084113467708723729234274868016576766466736030216554709423105228722253139389997536049597770305740424815043338458757807225171997722861369114882670558708495770334347504690473023374140006894633357282055906590031182161172525836161846305794186107713734364308486831252860520128175336157359315342010794447342840654867730449414837197621324873942541341431769696782838574519730624484941067534262090843312842004573734026839947235772466580385465129523940130692395091661692525575480499443837325916750443347179046121325003073008711436909034824596053035356510870049590361499905349208180167984885499714372052377958345338353414642880353988480154738855453277000364230808219135158748989944865272329614496454749493040733713519578405185340865812186091589470896598966437910603826110619468754686042152052343600912863745519078160808794084111761196624555820327395961730675000317502639056403600107193745779768170250577934817866126985032725779624518069834857976472798647176753250997984536532767724480096043646263708034101577488797385636778666147134999076617260249207184920374749213410941030414596677420369691584018030021552400490088514719308563523410751226126137451940995970906356270606961974448901034020822462228737250089086051375930038150483589417058034392390840587295396887913738150904190493770774018328652801887335559055482371148157986904443379605112956104901754783721877108180501560656146510331167864540320546944870224640898986208189380196987522724103080760497408445970341405162215675715280194064263849632867114210640235798250642887621845065887685565602696364172092131742655450467102752848505289724219860755228943119617277422223950989291662880196389491816059221614065146898800065676120738984282056435544183754702831315006049083450232460189392138006779113278264693993491963118135340597108928623948947309589018644467596542950038907249113897926391491866337576696227458045078824392132929491878193748668495358668993785582389836353629856847505333340370625783710219947921670478673171044815697545230902797734345343516831785656845445481730377367661682973723940669032659242068679214239417339728424376147244528642804818941594460147122549600580779687764318767428926684351065116878467419452518349613191422135457581385103693216314669697696346066504713794707295568003871695890954802492948749734306777858569491839923332799632508804733046716562821006118809074685236037679348598588642980536421258724444799902242412656419561875100549503937323877096297645920106309514588158024412822738715924145550102412746700197294485964866085224519041289604758647991381296244753778981243142132634041228741166613219402765141943551956774610932736650846480499613155847551506391689223028239558633458964827372213796141323120105152868385794960763183387837658882308646027169969496180156229110180444783377549115724680234639305641948051053826606232111384301883804865451295908749115097022978279734964795496793512840418447637277884146159747376025166557348967128507544602318712253980642816458983477070116176494307260046629293921849003866951075701734112848987358490385808897790600964049218547089488734877745915805048585342699090034313893251834035268698270238687545427012294746125866590841983653867584374501752090519999777557958030074780106655130142863753525674460611582581331268004170257022742290042550994029649878146048439391636782195218408133215475223151793504976671872948199059649775878989061154679292748834548713628445224332604041183920084192414014169370766594566945440916112673651419791712091993604710004679349303523730435262916336568577546138187265778616019645994411713280850667420519649358393343971660519103690976224951687831730589567759614140263693009718084946183342341887882527127499026752275992455687217358209572376231587502269069142969811041193328956555455925624337730568769152365305476081351176894783974380650212304818222923990661304076463112349867751732871316717173549823686996912721376002641927915757203576574268176236346272643411377134892206356531884034560201243568526673549679429171013895385437237972729855653888149995294212678655369232031186680279995966618562640459347189020886215085278929304392071887403787829083271304926457526572107736992442647259970374841069459156455803083888728653405866188907337810468409755153029885875921185150853233892240106020937855071352758857279362676078107096701367017539717778775259628242183266134840374391433756557371957987614177360939907989063961318292579261650944964848321027793428164902404521601773684027113227743785121100963625484679651258542346133574809386981998637477723685895151666157159233285804757093684800188293718285735930648941077970584396326225135496165184228086875499332594084080910080729758783303787754578350978948489650000484476286906659767217865204183027799784273111816885288649043829534452683186626159112606034097440190843980732095928057039451933997513320484411101196007512618564770599581373265821385973075809163844430070639987765755188604299358655728070639921153017647333307296928589847699658497884443827547611512094234081148211181250579644463656728504615834006706669973342757720543537195719678239652198706295641886645902919471201486859951103374264869713122721470480265511496369560262384361812520694141359832481863656266987855974576490324908365284135952214193675616905728452300729075669033969374885469217455871918954930517231238388373059968261202761718830612508264895886604164460637974643905581682303831879678358494181513636921366103287094145284431698165196309088607207515608318212949617786622072496305372504835034214608618176290698865380247847501630602704819425599790286934815928514091488641389496359044945842291928988924875146790751543948949398366894962060862433273581840399287381631767774375022682352846191489099824753422741698234648634580870314305159991652030307352524461332843345840465358868407593408583489099367788059879456807598533957852021614054046313643796827373535257764156590589015022130005087269278269705900306291377479696742784507566742984944649620827780505784644759482198148934200651937352694806131623446857315214159582526763748357975049309264051790197287245009718060268926661680594945308371984531368413195305719981756775907512576027217254653998124287367239005972374345509197838581658846817169716805066423289592122016521750884697856633186933212996922324266360676211398857634439005297201965837447546604938222730577983396414691432795359510317767687604371873854785362960807076185974945438262469817125949910163044603159634942390899677550604062496260505072690304579382043065426536828865676418261363143028910800123459861219086564176415700434045637447784648644099886174649933502988323034772706844792893898315681369074936281263758206088132243692372878482058968151592497746396653441261496130550498218403522644223025969862605157861868994288172849950567158415303012904894139583205752953241200633475923314775212260266901633572957362484505663359478842040271377568636692577880376380507078907221793552461243126242993337204283138509047509632617691891719513465393267550383649873580135420916601719238400813383081513578591777665616703441429768796736460408854322854855145831713103178866775324593249921661332417232666751040495823482457347973744071149702130317673130156835707154257958442273066004530305399179266268640869906756765353881196108374156816016211002766512879448303648839732290114458693576394357537726306940707462871994674370673509664945257007278283634325469211632706280593651392012402284661091727360417533320886321108827084388873890559479915614925740130089624248203294453131175356739134462010283701942504860780106950703469552172432116882874878205310203369277122004976445761380885305498712468511542876765651511199067680145721071148555006776050148299645012514331736267534410030180863245291809628200990988390487071361075181200664110490821342029551528636820513283119905745415328600860401847436622160252854192460704804389117497956604532548732571176314256732201156689382546901051348762375815354174673373526669933719417361024502176759918660897930499924043706819293007275395226490382805917752711318041003844601375275636729681119794331924453799664016423596709444542649894286487393919240802766722235223319139598248305022104262317968180348336438164329944457045045886833658430310842448163217765692918247740596243084322181749594212465539332954611629006902033067775533356746579871203115427860943771953714640855062914652370740813233731648103727109825112506258886196319774653051266271784640758376447574341144064658818356108145588570928436502812365578336393112994189243074567185961276454412079552938119505343780289429796079451143965950575114507279392005302357631903417882299439651178041724098542457011112816983941021640283511047749175339190586587456421817655510938913136959481040255776625543602471877877341353938469865912738898102185870392789790275512123654265332117847766466965321084347870561870761948368268442291678318262721892159882439016746576489422497051511671729640644945833952213668838781007489841652042400928782924008537890226063041798140030456036384227865731260067847330749253952777326664298158535580490953641939373890252440727863916303113961627817813598821132565585370595089180306190955209603951545226687330546700120707439918823093710279247949985280741344609599005222227809276714141881867704366167119472713256234617192534215489848287470540097719408663038467062993018489977154254208755147272694827729081691442824615902640422909622197035390350836258216026274343399695057135241142912373166608402089582187991671525669755278809277386522853175204877146431616791866954640691709193926906142559045657330378723423419839248609611116098482736551048637767538063047337506687483187383264393718607223424060784364138145214684103784309469646039176384633329305202976902156696733736622374366339778552444290499726697933960192145335204247881551908219075879142991746869097299431249647720445805189039736750150381282109662508797988486193196320370870057188696534841996785967089544325257216336272752179279914854547597142294220660330589166819111518816509283762451613738642275723573966594207047361130655607241467713579532364763721122565460236157749680087930880514738660823676329984458140159173341943388861441308215284819928330255752408171940917061673715006439632749480662487306560883644348001837773255290720158856734422766197575614547827799047624194505282648714708512060023295227248030166754312226409259064709907190433797660637579349798788140789385607753038895489361771221502713524852691477678569528598615273485103708969902476761583563923597042633106249717225791498444868267335722047080704192687467137123143255927207918489106800767846800599420204032957627309489532300874029725099926371972497432293058908591582635258887444329755379459054348989996224542575742090191589426530522782566826931573071562056199144098217869160362458896838096533381080497473353770138344421758117203910669498489821625656027003069126092426024784470027932659789016169678289474266169135611077002104091159073562623868915476101578027246704404401977961259359570592539705439409435598391922330806307898956143546991825223408453984098048288816535439226544179230619360920794295884970698619401938376848076793424170095118190285726418387298300343069999115488345654766946895006269536643359251788246210531993748618648690410634747796422749666865281695034342062827866965024466463057052265669893500868582802474162009567073258279524935374404565051315739000054073298300239921140996693875858465753576565391763043001388678702425521852579801374273911868272177526429158516801730401396122967796604894484679389864545844291710774302650461768102273167759400317512177011985123462061259215024371769005876738820455152626587115444584405519631341310270316035135836924940027423280237859388642064046139580911188212030704686512078235877009394222182765150191311863180485039961049489995413109489021430412712723216456593953194783549102709633504533428401576996409329874266064673089215401342428934456154309485955003691020539650746108156164408297994956670276469211606089475964583215608527770493241508568840103037353747941349591198680023955587588312456700273543636359144801439945963346980662558152709830867737661588545343948186969302652180636481243943205123360491376102918477371513156483178694934603700937869111427265776460887632096236409559227672153886857447488363777847345365295736707734851282887559003622801483500673514094818429378633171305204587718332919503522636189684658997188482818107427597516370995023934078137848142359524061886637596707376802077966502953156347878094208186858453017756481458592013292157463250611639473638047861254477442846185296860457093518867155942189536795534594452222704617753275308677819948052727820009536797865293197979168044165124199003535193889223352196315779036242970742322188045244801156356067419235626449556982962398647943412650476085728780579937857254872459002474668281998052997262194422069757158538120005677408944260971828097536903999461533005542952713991352243085497994401032354959728786894013327741797520815878925699256864817246090036689152361380205961423003188512471082531451681301345973900766924904131266095314650740568449666169614245706300802252478489566277216145365300736741740058281537618765385738832557063303368226765131362067788346291746415997537995794630703682517335198188508294148115012897274002762446147286590240996560206787838169795945572227981501140234740146342493845359159819967367091704164868213209656712298114701922952156153478630555911489054034667456350739024742809462749038187293561304675232297851662442288467069826385364315402004019259619647746765299026534981374430329176323720947564443695022924184376185730163232885934344020101915852563584700390783146400411164938768342568280403426171104513306807880237239634206872767095691697113933058377181474182341890001044626418824315634951950961054515405166955165871709226577321427548086085161593307139496198764529086757535206903933003075393024080102620222746180685740523469244771712029121127741107113786381333082667401169634998961399572254088804811188563607554193150912877806686681497953127218165396199287458510763891021287044267694338973785940449635753216903154787525192185094749465101331259814745089190634751830094210369508248080919930963290334728793013005197925005191207001079226420617130175011207568330312736094860040722690277054160744970550380195606538460425558743136672411104195034654294757919230669273933473099152870026310402545044063924756719707162225813930273737611244468481262115307984694925211883529653729775969924253313559924209399493423356604570269548509418470732347212501329755562019665664787530020298136169623854348039213334035693214041424806481177035753962060290858711702190830411289288979956970510016556454598725645549316837699113544284402073280536789579399711673813745361166760462254251680257645090623272831196667147715978740171637261096834244895792733854621972157939493956625643746288745374678212008096383580126979823806803596626739277624254972741278627992021873492495217265393880593316372543257521683326267144924487592098988256622754867170387470439583300221125189682683685096488032804220639199494598452143906884489313042989238297155612353666916504452120594988032786440875290538563281091103294987681596551069562667415561270235123635187022106020956573577561321093487238093935486696504369732061398160675997140966228633349249333110517098546299179270636097269392079191921851642001046602297929004662204468428876657407758473872494927146454319986911096509627645598030353624162512103043128033058550391816016028914229736457813193015330055789584906507477081734101705955496472286018979756522540687021129227273576152600621382798834546199901865775940230218875115371517986241692362133612841972964393581081063935574396850290928810411697231953040263489271130912122261967261630346911361314403869962954133370316006153977828666918954680313158076439736927699978133530779137868986483412753380101349841184974412661915115529505846038285812090685241914138192511195309392124129759398446573148725107936803848202455932072075287819536194089355869094798629524787932035945745298480144423839112707985654116937021476959132036413004515722416169059064562249276159310447297912936672743199888250148519754255782405324944825351663496358580334466999149024422261951000430013259950027301263415559134032122776415392984278940840989075285028234496378889950366522807705753532938105882089639252203001194214476931025610245536114678404568396453084541798545238502942698833387548091242714517830190790761628314644515094714392837170486349086454729072558773546901340032072377922104863176764612307714103212185893896455100237366021429549336258228335428504478944766533803351739802333308430328675783748172367491264851656885848823376636226618790441674540105819633038327252062213839019562881899853477026817805370017712299753394494767577536976959197588047892013267641759451830620775289122072880310699648927580769824600594396022107646593803462951856646613676786356289985158526430667005087215812866794023945015058071631849948585441184665820420863560295424532305732497165772656882497860409569084919828521802657577800885666116891958303956942215021112829455763227489113920666336518950746039011449594653831309365279725454064845163960841613279531728405620720139661971816325302092395285190636972548376320993819849460919668273972672890904866773868294544997193920440434469735724908882193697634328644214216443063404961102790536630938894093488055655473953390068623046386609533498550972706690404870522336738987968997385210162713484669006333996933145385943785507340311284023238073460951364019053324108393622245434066952232428669176641798888695022742829732633241020181094681633303095689714634470580236173920608522621384212909179654826359490950711355142191665522862273616908668571795501421953915407710439787053674106682442446879536389763530336600510528894642764183220033461244696529862167862987352628068101185406773660014284047411111294201060539209598489890136024003465436393911229352381005603912042241233623994130171874781295934436874670858873748757768477552897664198314250907698242703904389073518416035819580316766345020456226181676818640002619145235374883780916000247450309371351173190107725864702275950214583322380497353317123757316960576297600768787529072151591983798207812528669599653213167495305834542439613084220139956922313109103748000751467102557268208765460844198639682408149095958664782137901980615294166708584011504811633274249351023669024134604941674561176172814682642272520029544158862704480104799659601626033209414490227518443798981068433599217685143201838789434393574942981402572773706050936525597730685398326319375303252117165409411400973159036280736533538345707601404402310626472225116027364891231008162107854719463831055754104708546417548324293778562089032998462014077586593550564208037981426435902218195533363291903961304382350735066812994505965766160434923018345414381980072219010170552379423927910408681520542049206809840651278962826737399456173401411593561264750243517219144436337126218618832814189934191511893767892836098433549000491301375433655699644848947995955078684614320109363628465770756405973341825185645223397945085338717567635896746621926281146643525541248586217885700971578086423243143870415670614699492420408023859769020578967212271656161633470700686875066900900481379489284915923247827437254917004217947743814182413486345036795797360181309819958113233787340019791029102963211665762089122752162592580419055434482667332582959266508333398492614830259423754206740737902552735692959818092963612225432785016675856472405455215064112228295172411924037927839566557229396505009917939028564821942980571204430568559243952122475348802405610237718498618782570591230911344308531009199821678023914083129018352249791645311032247741472286660619897262439647178779438456217695735214289188672677359949962876140543600348058236607729651478974410070105655579104940192968673037635941502141400855652201688388016598632967071602206374667638880967419643123184892460184335580048746164361675408967101531265854778644259321244617746982376229411879114073032779791884699017180009611814605781251907159831343609304252475347413492383163788619648252112982290796048725126795103600806268412498620639308428874831975571041208905495266036686423148496654515283996433648945595627971463040221082789682521760624045523364885651864813456057442879613556263919876644221791743011523092405071647484796202481450798010646912338352515585730312539972518246052557098169597787605493260086685956934019557052674196385329660248105580261045252869400744211001218725394246174998919654912907721875130708255227173931795021216796616400839544172400923654876609283829146363931519754955512983488937421197918530056477092583417530057315520184661661573474977375251179626145202406257235346437123275822068996109582068827062400201235730011489305570537589747161096154692971297727629404829495664847533252079065607309865030750829328911129639362979073771670053668611270077163913722907661479067246215418344596712540378749770482987310804570026591846712586714472377894349130707045146507816755403613469177104767145266671228632583522511056758513304677933389411986536978949473268898761655919389301653051776198058137961529159012562019981094799896491353909296345078277172114015685658170854631292986529813624312371154692467027581229703027057474103022456455167585760784330877601602832932762765500204672364784351849448509209062422398569995931368944187944139419976250129805289552741507787069020795349360578214505217915549202038360280136050314774537048035616018934676831700232738030274262395502221999544674689491558773250249861860873924470658818188715846663455118034344073873615935990329451612187550014294639391127210090731405212541305398798876896395225411363394871442410334139478068764025701924236070157843679509588040393923863321537392610307279685286218664023808006642063560212074150742800577144197366298871204723616611110002830930079518934440522220552756981976299527045736768411647612370793225205451568758678275388422764914175907163694409741721643613775228568702167492755022742963924086769545164584501502832617628446474706863868165308923361691364475344429056369360094081457037748962045078762945772910819575192841441803001778115773737842154500586281008924521340976685686920282124208660246986515170043687542250994269008237362952753846501948186484739418369059460117955935865144559137126402860247143965863335719094743901603979007384444995848778878925313457764717778026226820961215375053341286919024747911465247809273410930630987835806523528121157499686214419977955353898880735868087739683401026686119395962802525825750571508349750315028634136308014863450882578212825173572906022510261860670007499359772499227150631396709308303686998018544387211911568475388702105501992425820825647531321986766669902863902065944169899287830841289011462008947762444844997576513899342251086890502123979618201258132874869033004654947916680892543080240859142373065946357481610128711826886642465778757981861214479142008361368359803187699908210579342115145169126321520961870172910265626947183762931381334479989631228557219269293229885123915344901886953921985563850520077801290906511035036579961659179738902124638200510482887079278763491765292916730781666658349494695828915743382912408701526113523568885267943087922627435658354235736762255844100732459883914766209828402248615612455439186625754299014382713032055525443199038738675335806745691463197293472812061744453710313288426525054141325945512599497884694537355574078465309451379295407438696103434778397609998282358226860394220344241331202312522814741540155150107407442540622976553394193695466034090817097180665550997780486188470932899686249521921897502419659046718232839666916181149921501340984942563343136501361479398415348822134705576511695023668753385611094048104276734944917910718860931547534325314928243168164452186662984781312831601525315485094647746335660002942179001260520200967442600238826641937051173090168539497853654378774376343039150144418719746676140283026286048570426631946466939307615877044533180340937047031159229788430982133499619216195928945181260308589428069479665447770737449768026737923235867011366821444425806419687011106145447743149295828175534038447850977349766344892676411129101300945170241837172331025258766234131166136218172015155435993098302923744399033856930621007220613917202423487119934080827357531707695039868755085134625888960772541453132365511466892843566574886124511413526405812417714979683577360959626798092813440925954687047353242797428545260391073110835935510634812636601169598270218880017021907822393646040793828459166176497201546465422721512439218319368420451024039060045677217704493391291083593415844822624715904122074593775116567869034271289049977353502960633707300661404553613885295656084138616853514145199353433823588355313382284909926928233276483839400230553063549207196544807737974223183929486227246549208415091104349405028484591551465302024869529775594404866633307829648547950455873717091090069593684572944308538162285829608458353312343750716489480308440039018968341416305151047342357732111405072169813110232038262842877940376562554524132516533376174983790874626271115675165830478088032766276075950375584657823531739086316432614989406286585255417924141311768014319320050630889865389718186503054808280829989315165321206871203976930742307614479236718803359691822424872719301363511752815631226834518574266576786511258076376559372988425930955674471061829148398063494128270977842057849198798874753432742149095004950860825658602023535857347583329300016076695285452622430836443719613026547920596242858576652742894931520266013536204580693409063368625073251926630554486604222358548314092877816386876194754376768096821849222058563173403737065859352874975977375505999917659773360268371331534163486948078358498590237652266434781643180737355064918207365979348953239431617708593468981604417566071163560905998706581376920666416956427432580292330937009586710143341359320502691161352015307753357557860143680489010888966447139350024358677668827499545524128123191577831927980794519730549251109863469250755824321467588938690648655637980379475299598471908020707569890802967181118318557641551573619122309557405116570148238008314436103138557139792130875148662245580431354012736195476272887742433044823614627950450016655541745932666145366174209053162883118187768031548808936093845365524384597880280190204861216234046964933239593179079770717261044650415402074635681446729173732875728978251635514771708155631524440180368213252087474159703995778096053830437155233658015943315556753081708358835234532446702696793022859572150940144002030601376980031043378401829737767699533305386046287658614371477786870588914301936135797471770060029779365177349705595243780263555662057699569214651536047849482582069828747022349468526242638227116251348133031781399547144297151085939774235146969711148310072242807119886316560124406221255307965704748985980030216106744299230429021587450660927098229240054865612221864610778833667190879827675276228015126536346271649550088985814599658790392175905093265510495957488739924142333444816675109825953776538966330141743917709692630348489158369518314195221191025551350700012194862902608475796366027776715947010341555364604166453183788352761078229079403900958812703163320651082328468410606887290490913825367863397327831827285772821246102085167369857281831022519696763368111099059117240618756464407530106326035231147176278012475979246998687718641002375738531536867045171084851364242929115541576345759978098794602650368105770468481741848666473058697441729994812808892489480324240701934410845696487625032343523886083248673866860924981364879707842161468042793843900488342046823481050303789550942653977859302694294769544970312383360011171814275575320557330958078452026971697698376569507711126089194412336172624781200686085547297895345365119615676431406709430650973095583785755769387944654457853909035994849725009428521903978165325791033222782130606283650384000733543084212034981892996028541974823339356622475324228504401922116108237749110014653759550560918934609764231795567008779272322746840822969443590151635796973766402420482212051512152088830016644772310458975478887224592197977653754599332016372913384980159907527079692945444401994171786305038804557345871499248033404921657564930547333415715963289430682100489010905940753646807070732578764905436672275900492958161807845313027606229062842927715240512764776264238531819535748458668327755451623518182441512421153096993031410187246770855817783134406750768785964166672553612565702798242418506987018070861412430965920708276321081835996274633252429262304923639605075297335753102766863252062887105570841891273581745768663465165795467665920566901917188084951579627965249566593792941856617788188694528051372650212145017720389026199498611121635523952457861840466542652029009297206149575586138925651017536334121344760589771110481886211281827127508802900500825329664365193668171723435195684166793111401657380432591645157998725225467173024488062183911621525465724128247880977238325100774968673936093160044043882069769923301076060100838119782478130489444729291068602957255246837095644844076354773464263115489833545973910341835175157523125856811255528004615407140980502322507687892499254984629444601113936321639857697543901629106062708197815370592467228005476526641127687165548266041808666529305405135207532965597773779593786065311265333354128950202858657613448186626401811468140796152378829081651095849476092766279345630272952924005515919559239335313916507934289884354676673162588950634078056223861270592824777710010207342106623613666550600498477961106805568095986775013756682672045191358066083930920347073417290194087736127476612436176684230750370679667627986172823760218743155013276269828655682268829818021240027222876957619698713537613641491650568748307487017676500666574367395015496555278606226922580682053232983758964073602548657065230651866124423391481937252501783988142350809311425749925881895712241840288366258306792502855929031179322395434700674246208419997678465038752876799334434151581860525071716602064211563211840620925306135721729597782103718422613617861664835009242451144085761913003582348935430992321146499721759656647416439093236010814705746314982949617754280401162177303293517368090793838495890227263046813597872973109853420284050624072408960663459924272663285244683365442979614557315795549150662097689847494822818033906856404377235653776204649772831683443235006863422012737257492028393861114227437104033384484057322338650179924074782895740393531256822001755946256836529487397589305966848764591196343159053080672738964680959532760885157965305238814127044134400541978731772128721155624679375914384992762282444558149534887798447159544069738609954515534775368218203024930658566466265708790537926054433480859069058218412652328172128129177483264733694482186917889179518348195498203499136668659004281965337077913880119295495063013774966136247294181487763072939356520047092468175043236659900372537372434817934278757513999336669089535420918022661834502146365947858474987764319766116113662268272884647533094222908775891321005581574107268025373814409440690156307839825626866643044645965610237335342159683540867988080475499721533138763678180176360521868717351597685311207099567716918720314792261692113519613921698654458526934883274445075498207898998871994347369953555845778302113605756263482990246874421567960009599227745465277607353246714457064044226584285451544620235408188067398486155045964213493555561239911599102992630135464868729482498554125737248500138489377492861332300457631836360763598491809439975920790859158152177834200994638085743108176616616678434497448233234377774065583337870604761099559381028384023011965785098370653972804850717167215406089267176804239161083938021920555448576587912083377203669067531597428411447629795048012934587071377577917465415151020178996215496987769069099124345370481070515578869613404933588488729181541188400382290164767752135411056762757768023768118007158738423886917808164910795630276871166038794545524408221254075786403985064690608585545228374477671544959120422920666831941040800368525397083098490376028150609140122322300418681310603524023881868345826928434437177925258551037203978390383259554462701205306474868908975939266987471344792943417275420892417956569605782910070370382808791477542549332115878407859947776038401530598060371833373453149644686398111721405602841780415264254083995443521727290742251771675284619093742177130177034950415394368902679043979674087925681696800641487897429191019675704773713181312866959589409529688419585632285073192153340671944417734275088892023379492217105872251554989051437437813758022720311497293315404349896385688302818558260777496871403167365265127693693622247469172033885912780590128507368629591838825474327923970777283041707555627816606803418027492738479769667636755225313141503748063977835122320847338486297331906187315992657651853162790165518939281667045576237925862558503042200113944194548379967139171910752421409367396957942215321082147258458421251241406724852763095859454986254191171191157431946666083076069402497132864505676136814425961843685764499189066737886715948056395645238446035196845292232299243232349809552729432121154818408042042750978484926915889795117967050738473537532577609913433193883420212260410021352497893519699120154435711905455522618504150516478842314416485337125446025015338550182307858010194539585889443307148075215619915458156838907544986526404526465270638494350789629757704251696609156495725373214943526266480526929771106698631488557359837684919073335093763732980432136336694237470025909130125387580791482036147691048492579973813830378096408393823267803401967179953672616001422674648744487036558260222210849114135955486743753082822120053059416448208374818125033560713306631199052304074513480213608157645707366280200536709436748582658988545986996183528972233390631024803794566824730763766395921586172164394364800897631325004221848328007416395574131370826651185614264736178292836830850381581965808091801578654771642784545066249863007185503414180501602620020422296773134459316149409875341082289713276572674751229372542866723111926002142782009481987837941125619539400996510989206355512577136643361559005926068104071315730467157663973679389424887233000204671641884968714803038713606629518659589774880851839984365495412715852310783239270601571483829045543516198696604972168392354188967459224994067659249806616379837595524087059705915481631608602590563234572134443314415366026064943417149698237045351273820618580256513242831090744424252726184491282607485301554126296114267931263256217186720302647897962505399930068329911635645946195699966127908938560694564660793017074952229743981179770740455494277968677021748318073164679997760866419734196451408904321584288135505550776563676614226201436930620834583021872566572358916885179003523215673957759125668667503023990442359793491853777770133112598523989930452842573635338960701523743531927417216009959072700880174613179462604019821619930994142784800880342630813065293089065870073230095155939047615742181137938129324862212228620668953360507757695445094762923638329403705446897224965453807615374004878027500845881411365777966902894889825296876922381473639970384579479558812304275579156867483059508869560365912544673487649856696714442479913580517263029527888150714054337065970409552108012167755622558104441117363961986077290845275142680955292056032600242021485342688538616632940440015516701846115503010462417058451384250068382306427721879579361180737556734998747548453451769444390874125592178710914214936575160976369888141691967379738928999575853884284629057465363255891887607672308244567775168673687263252890542323629294871148515530666655610423153993771190396212221858525511059734544218033939953419444432206259572072850193113519009936341927120390857541874443441462578796616934984829013980906155541931765581807670796722598723288208828244640337898103878501782385495778376065229378966232289855564663077497177106842681793064813669428891991076552507750924690857420104026762553636621363370496195779691696135458701091670616273083103157135343036295682420716313080015744707375879818593483452796237883355705315376872510153579588784446059695886807753869661440858338625225578681854974621282039859103906836949368279429939100761062510835588950299589998180960362961103705001058810486839520812774404657353640980965975124819649142300084524882323042003156312635749368060654583195170263889149855562106110628519748761669499399684440145845166300090175915581376008868661289213565119650432763033162809761010823650569866549212334750665773084480477255632246451865284449272308410849539602959801501011736536796112089904768283697151098358622649258833707474431655359481593389835677788668001439930448386602425065446876735922763762652434196998059976990860127711577777659746038128592201659929696685252263219546324192110815026706887649809008096896049010225628402723672508104580804095385252368710508641628962463421791466053536232572862364515280429563022581461548216757898349909356423204382090998839302356223562718766896439293892661545122151587941325563951088009382265527818396417049460763935726058567432304285621210408029700530647027650728170008157518908189340537106977676506592039892450327698989436728509545835007542422577349928890978482203019341257299849967363007567448894946555051190429915201548168408251239969245078058197794120945963293563398809620192064373772130584908240913383181345315022057071025105781299562975140308665959659164629934822586490468392557155203496687275330693214411122927630610485227801129160462246273682118418830296814896350517833879209134569190867732219410887985972224970519008459125515631426069269134624245033300264022023335719027462890327413073731422200506488255848408641730331784980266013148037648728889805151786633401529490320896858337293213219065296676611507627186674397476467525547605768211037140226148397547983109060823919969230225874957244268431381050018396292175507408141067283384946009513058471769019892443070586645766837236097044288074411997217182779765416586670294046973203201981632384207754729378514973987194668743481257694766376671119293016384684298410326840711491799517270973890377340883560103141929471627533548410961520883424221533915037253854119073585548532763334475417834199339986648327187291624971015070799029204457043577671810731637378580198941458768059456947086947183638887374407415327255052590342035585453594886194309582668126653403975906869249078844234657596596295893257901874415297166665516523037116563016596944136384269453815912041098977297781372162859254886548717972170001058757008187854314209033209529088690961413288321519947531541917257085007191562113737842006877593952745997531575402884358482378417110653815774081250642958462069362559448057398476581554512896290428932878205846417555514205600279523745350564908135457368669988282590824026035957942225081761623285785067710294221742444205087227578320836246708378685728779045588211788626386449436617649371771307874849685083246236966150193632967955567807742662902153864011815374231668779088082771574335840086714778775871537353693837257109882878283381420144801469111073340015240861955352891057177532701791448328288552010070583634224868591753774220419671877286147062376052226086301781405973072330266267242412124042058887665898873320213102512633964761312631281222834572462192818102519824234135717056322745357770349761589571150579200035857251421756250899859618458462934033444994345210286126368086645060972242319318621798825338727355203691166096171441160538728536025113863321135843082374499614281442381154117728881065213784224564582387856780770897280957243788255679299547617164315192206449315695186360480492834601717994091448700778916151584105399681351768990739997432910473458892554283836293621480840289728742308081913225963954371649247277935300579523861580447414715704252005825763276199785538937350145604391317251815934001141502553200430449645163215845954553502503407378054713957595187392919793115512931425962927131517399134058673121566229349560897088936902941070588348327243321535739546028366967298499002287322831286745664729582887163610823677847586142128467921216241754658665357089553981240864292834730149100902378366143732590694536020349178384371417997801819691512357893353216196089271557747486770210638405250111104530963393745518447890061960651187110476812137237230600015876851913064982175889916439917736670692824823479016744672230162507565462127733601861503197706104344903902891662151869750741937393601396270076826621347729067853923595395410174235321608586085797668708850707471563793271879027993602463234547358074604911734090911987385187027771261428687821761957600640737015069504279611900526146492116130782380132842184094289737991678368328087780813844648196568751172191277005262097411984918461030519481625136129532833306173573534270254701957189460613790217921717691600823926448038630941084543797795389181337855088574154723600619738327912930177321910567803501716780893053940382763431227414658337671711328631233634324542134010144924233431311938786191207287204890004872185348601963334339805179464352051872780515056794607534784977246867390021687817312149334036816936320972975523350730726351624853909882341795584085519637558683408293204571338353735489089622738236915673048744093095651356045675106986309052439504968124764031655088121120051782863575539374628948874846698463579545106733055655109247284422874573650405966512232506076214960972965152716827696859379094237184035485656791905859972235430221312819681157287567720831602741499460443515168401904707739570308074215888347635838186411788295229871837263463790070189254971243289015086038245540322980282104078278483605174386729292649692743885210451107961577857708968760779504121444919971979122861316178946076881149568349893909008657695874234911360471584753766884319778389619402927576835511871215859896124868088171259983392492147491361004068081876061171591054387246795557269344803537979207797763488113962827236474068590729792275315313117245351740852356558404490317898999603755636646108438236985496839575732572835089774870106324701971853107331222614872012904787850542240947264685708427698380893680857968999488166691293852629453574484255477555892844410753788401425699238117041884441798749994124486620524039581887576231125413491520160831423787727627857627653167025236122593530988025385246672519950464076610044412983332139104140054995067147499580221652573497725232658792996297187072027511831183434903714083333805646417641541969220836903164427196623966006919123299376690728548064105550598486564573921637879520683683921138473603918779000757424390682867011166615870289557233432445802151177765090077413418401768057780832247412108700579004617435035931410564737527592819281619498068045010986069238794074640738186202218581390015729686601303056848637617413079097121509761028616617110606786125555313002586975124448695716591544909042252279050059413965777738850458354888271668795814847794389360016528453837316001238450076090792924753780538461852317525082203401975397131301630672465648899181732467562415690237693174571561899333502548291519904297394033955812706866588728837063303358236646720933090886417500014338015573965561509756806736879054302478590377243526046626500839650560211384488618565964303699446497268503252012888655547144176259568140506959893081483106730073170587969492953198874948515958314932720351600925559187225780210007075952373130644916181347060251874978524477923575194477659792672507381645244617043025617564021545945209836811279148591205388333645599893661167376382078659968277879133048832777147932216118043688503892237181996401991785743502797639959213355560493441820960146839394787947117815686711117845605872099132911635654845321089317102683206505241200261435895503034979402525536075302452564445662272585726163745901612663369137023612816484102273395725024820525056129407401388378579719284483111000182680122151823148252749943479017906716727828082714015242656780882450943652105405455989286708628757247637674981052037710695531159224248593174447422156276148262704039268585905977635016711697212556644993602868379017556431836742272940751612062127052972091847467787373641137062174023292779731844147083990827791695114372585031945544098453868910140373092006050309784206670554006861164948725021499402309000212412512958495980405513515657857456501961007937568704606765841768179431203071416238222664690277055572050176287365401504735844470792003029104947036363257094193763980831006835186224764011949987249994849780788076872000841638237975974566541747978671265450857197825760553682786172867238861353690072440418899475308663899467655630871290626236532323263642567377520676204570682450433239895153798649784010267452810430236013342331419747372856825912675304940575482769228474001225190882499593836625949119445887694908692952351020514079227675066431347683024264610895781438387026507157070781350951234984577018320375102779513340843095456460122647654729071343961101771427490405012581144871865300069539261335155524400878851348767662732014015947584226363248976279231544442431168350410150472586306878719883073196181702267696891104910164393702771978601110108734729113620441884420891016873131544825522890322604838828121598384630556613903157582970814922421972607025872801006989437516991762420308278972603018549989223764777926390822556725479532213152120484044883875312549692421924828452217849694155171505428887591121260459398328912497128695423683083182535504490554044864381713353321257710173773926319079141762082033064453582586685324684319669949218953384986898189164445118263418595773812776784433129444249491833139723347959905807917207297459510906211150778685046613189196236954428278934193348123290151729903628207244655935663647956602299069437278963848582929695028517327629984676097372367246585333631382477720802435024364812013664531595647906095675080316370316203696951901338583549425317255059730569590609464300677128343464831731301380675708756536967214907233950972692554116710949017023165934879548046538626698072482467643643819875003717507516067920047434138883135242327050279188700164273757762060117011618765911033667645890079936957061468282103695047807718728927854855871672137318457415097349284066465602291029437078718773764144807965489950383817453499950720167694958817435938047742020132442738471559603194096392025938153029098394517150075803865980883514003169301709304814815553264679275358541231508415072569719938715414387579931456718443481664543364032996066748731580543917035730154727625040129450582022975712946618505681065882803497915100510716826107662426722997675852417575783881992284948678477384504819908632352884056798849935413885656115409470417393956918808819284531704051853248475357052900127767658907914381974864482602069140108893489547956379306456652649214142796488714906432154561779444722186874665550358119207189621810312167648607923339444491735184940590399259733873729191530872721171907683159797781186093684575851929245471664010397928315775357030169109503251248624065466413892465824657441159984640182404351288357922549793412354506232609502380277547041761729412590188890760270542204928810612490866862227652968139618192416916528516252810652575717644826518206990222407586713805663933796155491868273189278360639808408288235338191747042892228030214275968405849775881377713486530571091470838873035701547664238605118966024644120721611415260643520385825518645566288111490551887299818397257595017103797259898214761432289491171611075558511930738341610531959826352312199335095925865120794812763772405763370533106734040534984446239782880683764898503533198284721438722498065135068958795348949685360968310663712039831318645093933235943682712707260340816597535693217226340397737698258739874567127929336411422771102898853704270430292303438880926043334082852096937870314076612500615092648285398485367953071355759646867864136719043490499842899709206498310187144857506887936406010992972255805012857184499736197559242212625948187811327488055381377747727328215278784916485556185165646222657406483392590492448545232436574983289250536646505548358635581163185765469762835411510015139879335261157318880059934626960632837794332227879208742852265718108604470132506999078001987256576315251508714529565507893665366001018182885087934102421467166430797480475140778253337419663801475361366927451694797284947771039812612511181746275358985003342905555473160718768671334912356743758851459531216859891175463531645855035678746927717489840886786956132137271536775438297714907590284511369693257723701637495496523477606600905660346841291791213594311224239087803633177849219038663518862862228529083038750140994127917604131800764439126788987331984236019200222942665592349021619021946969026381834861051532804902436466474169378994472697498953854164058559832833199018609431796596037929327686087410885460576546207878463954762195916988395254925405675140835197061712604883203160150188729550349878979460443230117476872059052822076929764724584346686487297727970520080092089761826489105083995119055221928739976043782737377378475911450444860349823376553624989722080682737470080231148650470227514286471292323931300308512449962150714380189905552417640553610848088399017628747839460824068661640504918378211649745518118069045873046936017599969271360730229433529014428774449174289788084145646121534310563883769477256363805611595549202543266632661886349338339912875922615846697722822019196870421494089037821615443057221850451793307696361332190769135866228159058801693954459140534055762043620623844043820480143646576974469992979670716489769473134063136080622481244760468836480247045856088828202145281984191693865942252756706656052021557364889123514541837579090408975034851666116743458212680303747876138937577207538650604319060726947191685271347467217692068324158556350425315045699410622120688894704443973989365304896710715405577234237399992463548075299478369044458726298013594495996717411126604221245990639808592003311152877611302521881407479536148943321187040712627321856831468429386487459477880709809134142069897919874709113931617496423123676660407308636453252380641071749095485410686688196872453475999886493114279330077863858625277938527227687148818811468248396823391423237640018601582642844389518739272560921566440988926636566937714645979045112402149944760868791486869533912433539577083325273624289858690470504033586536080521915259483829826463954732384908389711790246989313609000540488485221256444563352716696482437409047674505329211490457699643469642571775869889090490938656004448484323311983952437346357562293099876620689672507839283683551935422393007702739279176643063919901326359652165652384926414520194559323040253829408248913794635864959008492933251089999400835924035163589860067327234734365760118093792850319321078613587733081827946242064379621354846386404479697439719340428226331423894178359481899344688794666931193012342012926350382731022310418785432503036419316835799351269799501518092832464850892475034025785396716868779562559130304306746347449854812801418547007820335954332414116392590928282279406713788860106244836657855153303749761009667478539573713960093100239671367736692890100465760077713485384265635995626877830270205808187507293066310902130496846727000327002436986984246225355012504733246006145909185937500567321634298709129213175753012990182567423791586551212620209543168508183720090793032268630360658725297555835836230144367919313267020605175906307846513425651399287311938443985732507493161577838202493773691852759144031337809776613216718967235396789756051871375842906829189273631193677368093349798990012431322510813423718388090382559551153740210667630691103482991245685765824494576316414131889343970403903628583328841520620047409712287061768133580078550289281882419398909725238233939999122265395394519375667622983789827280664120535689283399065326225183942678228294280547956878042201233153289443033100909006691457322047614882397039706220301732522394579221455759515524455706020929028280519289151695827187620791936745800918017679682950909246905272562105311809270127784960561904206634477839019246369792399165540959517453543466253136844839104641625024247543133014692000854081496920185596910453956522904927832825789570177905465159062604856299964473409772803541814011936123615629251768351851317969420492263045911198976237484315132525734453960669740709770224813214764905877936997411037405177391308142343400110871285583926877102955133364269123095946403142923333369370867279289096316793721977303970946263899768816788882343244256958989899789832586311078817167804309564292354659796442287274200185442356094006687529874554771224026145565021772585412014527239705090133859302646368025394050525636029214453529001496591994045316700497023975566749126468342035261341229715298415065350073782675910219527137289203354975916186166751606632650059914103511229169731110380461059701480268854342380470008416849169070359135514605655921688287922955324017513315814275258674656288732701467996727900299637733447568516393881405676143836419503901917499449880778994352744211262923510316626175427541092544745428204424606076489823812171820576846423712075562568357693102589095313819367949442952109244562364642416692232391255441301485865426433333515118656341625152493698031693616877303569167216548855268251078388782335783899462402885334162303001269543541119915570038688412930092704848766464826820521746768554418071571039098224383678620569137068523498721171871653163201195260825583370648235146437206923181464709963849197851701207077214095415043117890180397928254721333302694860575554199189121431157640903403509751210195174324010666965967114054661651021129842109385217759859112576766759208856135886091718266436045936839490816737212036452665748896970012714032798257329191794286256875587252422284495530713707746908934602239021775510278706882883413115776080215031529211123753838964714877556099044467925211413486075487095679596490540317051449020210629468175537759172935371024326453014288126940751340010021964560401590541597875378856867359133716722687780199532218574865973503146122493902096266929208336203333422529347897400826258025649118761293601701730993177849497322186521039842491954988764767768008982308074466752868677765485008110526968921222021411950996264548341938945385234194745731452064273491620476643928996376788321420037063177444556496803827317776891950738482406150919006750099407611024203594572668327095397103537979692940293811980306014813941617973121088337037523029133426733758027993473919700920694271175529039531684037447227918663454479650117601802152905425910064672685771205259109482903546693425214319743524857782730989168490902044405817262251396913563849962269561138037840267861251392320594440767632142900472590829804077083066210493675940019595306684416481961079340503101694956864032259058115383248819507059710458455011738957440641410923798934347036311947547777017275330112603368742402137311163986876024002152747639826952436065554463452908299438879816098329685504833404101256314153341770375604508459406998049530725141966837333347377619785944476245514427023924045289269590921330784029734483482752305668034220021674485007522479056606119069956362746480033913774087807418548450884377847591915194326258761040977654685349079343379808297650932866093144670714093364421562457754003843863362168870176656521969950905336694202662410195480249332517758977535392708484509469225915125276006995841456314353495100295547228216154496146382890600168509772279778757678259409764624060755720284866444206203770865299226159147807608930543223141273015291784708819225017662057786100697922660781627323829449255471556675349544584634095087557327356120010944889772505096345953054610490607970381837710200434198547577036377853876094414599094013219256346323520186611284728116543081746885878165411095161973709777632768576675978642080782232962371436818608095099922039020645907649767303838928236019205518276098178625079290795092322739818517502485281581016980336556574489066547065446783143502682441353590745453681147622180384194621262620973947704670412818630622539303598689861498924631971532989519909288141227096156401321771193107538347653866974904458512419205692429942942520948181675271709025684451833228662176507574843838176308544498431070759825726758633535363331472282582847539013918679245259239894778649638583639685739404951997160042196972159044293789801911835627394930890608478271071077357957938217419984820614098540785065599314312922640528512027174923074148011552509427521130947587703741247910421231454679013825462910836259703102272806746688111983282021536849298467355592368339666916826557578711220954740734689358215014643473266139508793635801922465204380950534780107646017110481932474804864525575891648780882243292234703698324807070488601225432895599128272428758936329332105488463096815861938672295339056229814254106085689719173183765513855961443784130735994501149472419278528188833297624142207079073262032827709207649649683314486560826246285002339646211803017872129719906310644906138221332647063718380340181328486139554152238804603809333735269827198438003054725854834622764507474488235005556514033755263955247537154978664027327417562909867311038646451097769479143050033420605457710858792047293187178209769361190143965247476158215467063695532332797588274479661212276204684071266817023161033998964430101361793366835866101557698553118939731879898439840978245746086485297181271025434445436235798698871036132279514917740844119106363521748282243220282260156323451201018321809061257071705630438491428112950338904052980275358169822140515100584625715384209494215940701965807768588665631609141533960621187490547905781590917332931645093558008796122204951350481588445245951774336766520191737413115501323075488485670975579023126875354944082763077496188487115789977544630034239869141617558266938672187084783654727445178177306119294648164499109104558655542642050086480148143939892794415666109015252264770888566870145121157220493025673617946293148185634053788643915696557187057316926872635293671135809442428529871581573113116587818308603559594726587463129582744769028346907300544955066915073552211116427290305661222724978317335785388020664578170194975493059827691413867842447619685818916222556311089827371024675733838396327762080785497882062660002435344224453605606874619791248752048487697680264823022454699448124009551862786462277599905993584025074170238924805415796398781297134884603962797522066809213827816678843892915969321065675379076244009289460236165367879657965560238893992720369677690039823370591154083960713199344241793070098295208331081950105875083660874472542720855898735766517948163954501750427333352121176555433930316041449857713094305665209685781475974628514682059419983338381001882992407249506714552964110709797295417301692294658837840354105180529010787730693480241701064601621852409794829997598510586583727089303932647757846359590123476000928053123820439611517317904060366354268631788293905421709487611451360720163958831068747529068626297841068144458177073130977779783163950209724500746206755197343563027664346110178173751793915419001145116062790452787119753145417415598572471246126920161771093657935944859395364399694970634634330613608637986278010759975143952031794062008482502919391885176190090561366080670755855470184405892224755070914793967887959858574529291404283745805875378939075625845349275860666266742443808823660035089771652016181113444852188401704985813761556617110447441465316607159190027620105989626534304535480739896318538581174598070166982924244129035440247296040858626139363163766149456249248588296631630896275957808917848474642394663779111116470301796690974081782100009057481790461939782538520775376900924531935115300149502204543570269530755641114099541963486809881982826703116848490598894125618130122878702896403456084471048914528901002097143320279803813845325754413621286105663823877488723759226990288360382910396784412820498824017663315933114616811762988784449619049435808778227733116931179738900945916818569801521847826498199505912076883085210315449177776533697777873516537459219277914104904380570664052872211052963515318294662434177126510709931638455907531893977928294014246127402151802624153571253429027090787743170805774344368540932047643777588035028381272038992862193332119100503288335793153305758614682599092314783093394917345917157014121799068293455942191894180529379466843153495011620780367275105844126911069483768139592290091115323519744165218453950700164108301474976247981835415863055293711801716378723630822108175919891676558556952829812086216585116038760358930033372710777287653397248848972658182059225961221904803272118208538890780732726904155871840209005648793333294416884244316385078126731073787711819292151658813145972175240894968042725898700580561232294058559478179272139477258552258467924401186832028748217272764183656534340224951503212154361632816721925360082053777428287335296351845134650000869124340784808917716562525792126047625233391030221668067388615666421045626583659267956636196042877279686454083783648775665139346669713207206171401596155597065426710216308473043177492035830885122112061069482600624349969236418898090980381213730639727997536229965643882269543002485744685920802158948366021261603901134992558184573119442219265441734490163668986502467577694228628088245500073849325721888900442125201527558187329724192371982758913035223841107842097117626743824815569888662627273091270235586822666801219494967453832089825161465555027052063594479192444446331818779871747865370757401726646574805046871696156132627152427118601249491218408076543018750528133972798852172250766778537805959155961667444060639125650649176158303067185020127737411391843429812938873648211644948904798415887636276023485999688843483960235840462630375977835493605739760451242649374073314762844671970152535663571508461064967954742393616274722423116897877786138410851320232569684229677882187493827263933587353539389666136593852943787121595912139377588189573769513567972226005418902420853513372638473025468727987453914842998088067272233343692547130885819870561882577315922691657444005767873346631125247212317539273408153770492476383844429065166362048123288291774678892199564731919050452800639688628310837728791786768209654474325127777176932006709299752357601053100994585845298362180263273481875962148611564193099937993301534982953333692328725111827075278687177263252825831224941359903142492459034095673396343936431922470482461101668184702088807079722890643641965810575315314434776684189635545280983847095535412140393539656408143971502813714920411704432865628676908054772250733497385071613566181347578320590301777054062068463981834926419667252712405651171766914748493306985197928181940034600974435634650674412684386868967025302085458446625666922102493353436290831881249764433568018349048485028604110814274238830650060931138675432831914396163884185448538377581630336221758979356616839070953591702274900497204908648579616156120345574423972860983469683471081371298561365557274874920318712111754720347716382285754035184319001553149820962816832231219542323880219258139572207114410916976130281974161115392287695887689172470110964299488626925978949110345202344295251110937670552549531361129245399871042444561368954347779567645948015088554743608017806201398744917957652271659986903687806487238137868925945528359192181707561758007204785080737718672871284454237796045522539427454787325333862236109741769753134664902682351106516771542310059998277435436392215509785805650932296895591387347487112911947136611452780981642191209782426277366181492887782199724050525779216075787912622184136004330000794051379840553794018592464313391134491788978113844046140714736850991585828197979680761195390399254103724738117510378526019629715521350672127106250427821172444491708713398546318102747281988796386516331161705217813777072038395984695493580479329860799872909337047369843615883885185251884840251793418267978585384157488050748637000917543779770939312946530988435848855925456509502680556944314984235896982008704775032894745600444183300672236806907272957807880693652693371698220571414717907832424890175102253538683503855600392032917705041994074111559765461130074404614915171227858123889982567851992031660605516636029407405982869325766558469715653716050160429801416581069902016757155460959072811556153697025421661908260646981863836101456492311438401857378246400012093689617195704412126267423743213617063542080149222442789656190274802988593930706789875222724574757152416023945550774063390658846154509111075242325720943344659412691256538977286132102381497596999997093159583881627038517530733386977112024129139827332792220771839722445799757977709434814808970205165007470207783357626763777749776468840142589350655394282551321169505588746627825550036619889751243493016519659697838085573106479760978271363770321573204721662926949243269457350901427128539215385071261144354039068591001412883782594979957248467980119734679623436913455513076447728892672049897622843360389739665686456660373506501694659821083032641849071752251795589295584222210738310070228357205343146534590989350479640118580128843040032017401233420066494905320824670442197628875160680897853249101180183407970705755614827715756272523671760199481949809301034266914888050916276057069374452171402471383257668861892328649555309073018172095205894621338740047699458189381284518345611945078294716486271915347608836888407869245069759759884220844157313266053977386011233120296862997567481118592291768038972445530050968465304224191136263608400602672611177155817025606373200069544787913845548044701824896959626314528232614195377937194076657014581454998938918615447089187531672476749273012980372123392275307609418939742482396959441056956511772580967072583011493639998114363547056877150489761696208734335953409021342227965003171988161209897571892783317979112165162849206929202017831799624140370364747973717373194200850668163382690949009061839710731584841653702709060624767109456816692481714739257865243832521322566516278014116231874994650538453463143020870510790953988716762483561528343232194125603155502192682010461007456318108302364025102540657217460251495982768914551950023586560121899802901925283677036449355458017139923174475988559999279104912742999164972751741564780059195871828754686519168484403262417221169573509819697093998088729450605123140002083125531980168468283688155010846728286983790965709532969813983368702740676756376107472762516045892009026202386698330996805823081490390959276976482925397847242574303612417585316587580352158022064714291517047714319552814828287592865391359936779985354214097458060971226310459921760087403321689025925291875846599059573529274698986453989027495921860378391425951239459168126162793481477228635626803315150521668519595576396219990650913216905951587968645169338658712553462537025711233423380653399775308918896864703207872071464407105693636580118593703214848658997762043877068786787056930248335950792037993811696536065035690976516929400978942565349357005115333791019860140451063329471406392227819191757145723032965857683142190334030186799761085464513513327224268310967808229258861711491332683718941061793351898862649462839920237242232358738966382740715836616803043609228643020142507466865854443626239602449327010436408545410271104795995809617908653326681624478457911904932943989247205697748454566243615155678014959422882538304704178362257660054905015928233610821017999623175192682615466697396706190024027914771480031898108498658078331247179817104325139875038833062060996191557531771308142318974442929221794703053497409715576298460904058797337983439809849611656662790909559451068887497488818313375663276507063284172738414895025457720057570227317382384594662665290949949449747858698072663335531801205380088459919198183904983957913376995545880186870519421288433615083952086831772106931950854778129102814282348958594962142349745834170037638556349343265285499517550345319822433721774133119364266824529208766945361321415427100387268159856775324972570323643835590332407178195941506047384278488702857135485280679466619083471639773105475773046065742599277864815074419237742100375330105352552936316217131857349165974691813308869019350630951668263033762949130711714400329644574342694937128958792286516326289830712439507708828485847560723126128824600121340101738883339383865937272564347906894617739585910256111508541217545544164808319481364539099942314135129857135141750621289577783159458396452328824369319743022025966006609503074026848457738703787859825842193731784874940188437559256700406220028177504518516824830824895979945891340225337683652450265912354333334536218327141014514776874929458936875734837975275221574859587213992846066972308685319290481604963161181382154982843527999351870627435587215122952752830670112578246879351925126782988228696195648364352970871758649343420577485124290089135505014954294642679373887102724055819979427278034863528315482998192773784974891245244033773100023167232896284652325886194111317870932442707550078476034655066555487078768198730982514013763812157823185701086938056110930836107474421692319988339405205296199135712221519189408741855786104171609086104820542091045264084616663401294605047260757167818793356383243197453415254098192317828004594419864978923673705128900431828009215984088109552054968171041110888387127978781160727411307602183631950410264376677675614494412847268252857248137327701169966243675493472422939569380997337870880971960242884928981958390804786448963595684819656562901765080784756836481313755425599728752993156256816073328313746715711941503470439334364293953494587275401201024939302933011836389420058624262630448418801577943583040283085871238714240549325523441072560777786725732283935004834809521174916014016243391313705058756273953637884550581084432578704940519077157392967136836719438517842571986632145558262887636811524584482418436075104303317091192418696454815859902708641381010104481281198983536171227757101989575118815767649336876268384817052481820280102637127766656805966569601118676788310025781409464994721389425582661201785455810243106509394779263207905124611296683369841611679707402858887167533180414958955998384644642462098690641427380622815653096753503044067378289696324146223487196789495416844212521676908815146552629804594938633409398947806560794801660161307932037844316849101528123455621529905007919595310101866841917609213454499576514031120884056331473171267888345439058098768637417848464157181169101178885554551623025950923128546291260622377597051179166844107545764649631280762076569078918437310965542969942366226341673887171526519313327232023590452534353610775937448698643944915720869747923310912845860139132554708181096136728957465657300364625110301991834972537126838694885044821152322987616444897899730229242868289829142893034134932821665636637348258406346524183591663082695664221940180448242401682867457635282906827773127276585075157153283321095247988830747286623778033489353989846781006996797991828913413529734914407604081510346325312828462432098517892389971086033377557914528265238840651858959401230524952040039640700981919703825152789777934593717534107786961455286775315548354006092326228423428892981335597949412946813078869736617624404807172717015134823779191035357703323413699535269641994250344707599626522817188952940594811126303146449367391658913672699958719411811539140611622771349972017523599950510561584606928975697130194132483305703573599848952490101089637419973120385168040520326720795196554901659861839569725490082095169058007784719772820790806914047851947720618222164518890608690034499130958364788152162027860400408092576139673812386745924582230950976982123467272190200824323409772984873760275786491383824040775661733776967014301067032147932824063755175147112299423827430516857519780191034339390581242042010088223519287565119591041634323616515165558763944853205423604602206628626876700869587226529943431321421692529023389702276656249427296229489898467014343341081136385978473890706276142478804422675198333015740516176238760651375708328975197781804530510078114385187236162339422535721041870104392157189642649861365166650033963864932633620501231334122043627005418485538699388679899836740524153470059379697060394419619020605310066400002941742625892742256774860455030353121457305357681395373372979705322442721623122925730574659020792227694374364684078474323761109392662122442899289805945541747349605252547041644164211390175014863288729817874876796253023203087321540527523073662530440322532115146326947252715152327017545404363126223854374910822236688499811922098336600698519602862502513145672389483356952445617702443787931285665047868430823823256113971155734676649925085564578826938536631421714780970663018608518604079340680842678743180167619160249505628164671505750047361313066966286306501930518481412696268004366275899452951726446737019774167479202293903454685082708904826304998270095254138278174482370371153883080976242142403237159266373099989354006627304653885294945802505190704823374305670797424426171472849487831396033081658847199764009828071199242594864180846445069385806696430204552515231032732437949563056486965786048698448354079978440775172431175911984929618804667364839150240691245262467333018637741309852848474383895858739202571709725523908388303972302285395642547172773344742131528229807259478457756598791419894221250890232689860105110165630314380625089509484616165189169064191089530581269820002079651115543850665370920166920222082419369287798474703936683345628430002542581508182305332245437709856096793343359344306731413262967118423811550100864823013085401413752740135315781484399150708637809673496573641706032930848196449982258865621728777357710366511054385308131324940541496009811834522866130574774076457066487860196000425363392706963920588488095508161627699786597255857083136485465274588471156458900248531464026679501305695866372179873969262979668373348939582271779418832977199322408509313749932629184266861539532268498978470943829896149398008378485098725358228828840720897232677714438168382321625191440157554306956607990667535554066401981042928234304572453029698513034947682723959677035024521419880563968075072233044086935797997987721960435558998109846181887585041274997750063128024236010991828420442002470580001042582050263615954433673041638259175304299226686472988355228043397809048068316508434316077031097352214863397484885665147485499416929459536055012811263044726065523639280249019935874095455273176858443670217239700440015099190241489543650455537502160254892830503336663184737312365301322067025616424706360374314659544342953166596332051300236286475988804882385816649993011115283519950216074119587079642027433177273536937713376455296107877657709558315987147176128707270173186944494697370316183245928000519397889326411572098475905597445071024052674106020308184254915805556111114981093322807055423964625833651748337873560933496558808483816479397141327718181128310939865946509844987223707886723922061897774628308716066192522009130614307213090395722568187856249204051712495804276001561396859834066688180773316248971222154101523299775441507774478096704897109853885927281444285959587821860735795661083790890150858733709364348828150076844562152901617337312066536415319708615290460450016418524081451350603477666642842148570922243108209778116759231821194200586605926996446477866341996251831657776787186257286482620902012402868719705310707670343657258092757601996173740871986102799024052771560629845140866136517683752241932482667829336856986962965936720573294902922807786677507229227616946123319137095152521194151150106182633194011051790495426747500587694236170066420164162849072713779034257591563601694264169910230580280916499478374743599613146792367927957078368086237980379583340097947822222917823926001558641735804811953724193911228469330839836030414015029873481833246616505983875567284885471589879810333561010220718315521285961351748419268103477032195414952718874638832235004922892200749436746245404140789293098675701635635779983031467340113773350141648965011114232708678214734423755170784845621668397742506517563345009690101036581878039664144106615830562753403580812888938058400507339176606623455877370826495193404462147001539833346391062474526931774779581988729155825158815542270398032054045476617396825916183638031999831057399953614786987843088224785528510505523482657563807455064267400423847268794217495569990213942040053088204424535080722516700240880173958316341277543831036741092550967001964952452787158778926682719247972918703918151758787040568354435586405238181152182604803585164616281397268768246598252646279189738397639060938423379649505404370527812606759961357585128103010666849086239168672670514183718878237267696984506911173622420495829894771777444523126804073094394198609923700320907668092464012394307970064901363244747834206894082325647104511095996184735022018840607383521946697824375893748694571529610164168541238134329677487421183223556797032683112300400994196612666789140372637048029862291048720372187724198544777026386646823718470225764247936744641260730925014512318292425835979308721538601875309500542350430848054451427577360012354614953404621486612533204500980883938650607431391546846061023534639426006645019137306145827115198759117557899728453057353214975662206980412436171199956993355781355074569741332545035441220930566863899851795361463204616874088037700257530731691396533185501568742820658092165912027419405383276734132332327375765944667612706935366545006767337403567290853786019331312361878018274339803729211206820710958502349894164973361488665171234320151970512885940350104197922872490806814921968197311748722687354685306403427866752879031751929982153776100466443413926451155333217504420121940253062692034938086870948369326675732439691966210151597242123587760366528009574450974127897961531810219622807152647777662069806174606803879371718151314240907433735303539987534300620783533270389876692365448525605856203344001637144292344942462966949029909408005172877377482206490564329988709634985472105183705597566301226397557138048515737794979194898270293930999526994830181188937928033155574431549219948376851710560610398524508622463666529336841034904411659391940716808180554648454250934455015038026712711177655226131734970908419189835302361223663581805514526970858877589587216326132365371296231880421658181082563383013183284992165840290883067408607863084271037733764582593259175510249498432591035047364760679473550694036343909555683513950884724238290501975157968485379751733580524143190523049951072551885945709789345687044479573315279409225185978795272667889337640191609017058513731498743637033280466052433239089284815653987995910418430630429164204410518947419385020400504583433682775298136182967635467206079992754316089552949515431459515804936541944032871083953088046984102306305748355314392490056112279018470697596103658679276565591677443800382601931139834140053271845939503630515224992024360675728369924208355409125941460301149483070570113373902400027943360191111107637400577421654059805382042831105590995062774343695030342801713781198533753732534221639354826489674517370907222085312958497804083697767713185603107853310217187650936520794718679646087368654248481249342352745928269185340880591430597044145216717434611295711356832876239529713540401535381564489978178145410099834687352771377883028516637826446525661257251417232905950697624799443027757059780256493219953834045623951365410155956057441526212660315145831358036305220582357083723663573018541397670613521598381718414628489716345072615771772824911174048750602485611986083366052429110131806988797381693202258766806725560391039134618730475892927891438600401100619813851941866530601260673718553332156682025347955556184835072902983239182763979989448828419040855295971924057458937350330937267898990654667849769792534174706219753658020974663581687502786828221326860538605482034866071517692405965013054804248102682615767886619710256249677744762086377360718571808382043700344380625040790696571800759231521920114548393035531795469633989896692818340166707998461482247378620255997344528991508768454595362334841549966013192761008942978063061545621078242518041034633071953626082761621347623185647632820893411996760172762082110765950022397582833091798410834651389700475815428518342422288342271352221766911492677136312685732726123534343127316974318828042264920072542965171731150918809459550181415730251687094022225906169246925554065266219969002384828392041541895482003714825639927686926495594735413493561677711016479725292944819465985723047541820900718595934263914249046690054208738631461495627655073350995576968228549515686802200894287837441286848395222622812889013175646568520816219753607333723270927436084982542295190397869910830941729163027963923952399007851533128108716489817620629741129963463628433116363035029276669142100293657762876981124143351261777929814143487562402551132802322356940747128047910833588034571090598396546173528971138686432766626255600950198905629536533699631227554394096206525852175066666818031549152728727796834311229829736241485201854861702698742517341244083303242070445520183083377524420556514306838303814972113635844876599405984291159027573241739332715968217177647498045309178526564354779982907085721371342509880294044474742302922507403071850597263631198423235449039058721863318072494339844561910676934108399220368618436102200062527766784359634723872935513443639948892292305823665299614034551463205624327122866113760623886428104203379863267083065956579077329088986436197202333201743658876085277283021284040562413944878744288584044598519662372642783305393923738787456001021989068934007688906689131977968172481266002742350081329061176934805308093282257661835647261348939133651783185374285084570839121518707657977776129870461874763924160011121017663962008277630728446717624535357724586898580298078152626075330478156876579052079086938211540075319907968025389775033976088960328354631367557790562945705623602557982106131929668002400532466680437128096877664632204279060861949731600571321188817617573203824221366334842808941180974640728405570630721567839000713621439718448785397107749457165064327939086310368252388544694213258507404857233896343715576947818489874852325384764311441696428279248329880335667193081613328713809675181271330990965191522704061064583569866248904311367903549384769584224844979316998186168323853807761747854864685836963554857795986938045090367373423364875807149158676301542123247241184197441537254610967286982440753192075168933634067743482026137261996689926386482660533174862411699921567534298627651391990037817181369829449590758650839268562277755128326104791253232167949367441192616702954253094347874353716366503010746307113376907339382870916520847920603032703713069678023275593064627335555796305049442156502825130542208267180302644660988237830252289100750823792796559896126127788978624483244026640725722965860026707219269332903002415069557256675740782050452400536153473571724245035304578516118888675579443382685198248960096892914523628944626948390311441111577004269116852125076661205518457057253868577850039167350559986243097409572150862374244841978875986953714194507463764648367607237569279688875996118073469664392683398520961879432030608640140971072755291586714171018560311583085376170907830623044008808749460695516595343994686517752278799610382528487851408055087096697257126495246247281016223812832011157113727820100005155655956781522533864206013178563676243036487321038328968183449146016638798615243833784628030715016285723990211283971994845583652659022979871794110158631170406272243551254641544667830352107287617982155776001852869406053001234633230940441930021016546816357928547362971075940698040625471536094107959393287453802519576934655933617529607211097815134773127590113736924482028338701849791480991255158538431166483444635428852079092629456254423654108372840060394955143466525754494243425849049452667276088513253126279896848060145824817419283210974372923724623003435839312209256020948841583275263593104513254978398239626900222670971529914594490852600365973872151497843101295185512510577138259897201233818394183640269726913203997697430570500068366803982486303137237587243183848977458659965515449009411786427916236771061215666170641114073318220586395390647923916576724016903696206947946849962999683415452362534842284909769093670322594968104317241446522705320276775110413596980293251023459838229957635468984351168658953452025873532449557928013971176466563646560524183424615820591142553580354368847484180984282533968047267456520467166893615940343864414638180666855432635744853699981681625589570387344568381577908873748848761117121270872062471103905141767468386619207537935579518378616803016721059117946916866391206452646450169999262140562993864911501460209104999782906883286211864002401334798598852688256741749915086470189875543937807077592155276390339003377824603109669539441168411591673709548568492176995033305696411013875557248195245989307925440110807222206635662585971165181731993885778820158948484479493163476971848582421172601172735868643620487845215101171728932761798440649184056868001231565406392774881488995789015131452465568420611107338799650342930487858575535511753073771236858602062992921622016326429839488909919107532505233548850342614647371677734703238362939418470293973129010932162848404028025686034996138844269723594019077049799104012261412697026871721648469063404753632478908688435904578191186351215459589618162165981115050186879823973360277724753243849082061032582691628318014438889405215631546136766478974234292735519041794589594004542904610503924488992109837114159913405292572231911964944856821771741842662306768594345833758515017088304264255837469501034834886715516376966702241989410453700434424116445748449151283697800854301122611869406374919776132211180932992692335904240546720050644108990220961983838757933512073866039952920350895574028128942811633785435443867717009328291400107315352740883140110932924013677528044393326023914100266529927538104765508169770170404430627158189012076470765791356753654839764931350272827531465624714251948499507939861532520184087024413148077607346436886053481266884149289764150151366240342261832326422437267436609344683152208204726994100395858702434222593109520090190312648696578393949352830387680446328568514561739780825974861284218347575345143591652537736539032179595641999000329342656375700634562550317220575227260225469741492900166873717714249320219367000244829839442729159169184934604474898507889511951118191061699772669882837551019273158187630369158492555768711896443173474642604859781759807221900207899569724340987561595226026141364251814738467298276960726684071910007893365834846410396235548054947552942843699044929726044177081721642131329044831519033770578646608461581480820649684414275368998070107112778657484310641664143793289036743080371308252396454851000737011288604408298676568208552467048702875022075837995452963926590588517907139965888478512012852577157465003911786046198786977805616753359872199585210454924286649008600005303211329072307580753888728140390574807914871364881457588055015495824129044901361883494341430104311214141556192953835126894884753006945584909209343155464120463337078445085175551433015931206453247648953798576274939130902277196014935831730496678184772265326936072978849166456101628510773828924117381922606678589572506826704923719584393335941849307987534732263663360077522568736605579490875028721305878504236142171828562055502086662499285830111035724235711380494142559010924360595714545090997741799608060879879338847323325788727952153782526429596673601676627639352450457631018571612930012109548075994950236487438103948238439406317927524940171114949967539454338401752068540636714239924501308751046746891827961255152414529633928159401526083657114357898936840272324405796977891970427574910780470293825349266636833387844264625502253088620593832176853123991700251376406661058576871533620644243427120563175875014521149507985028209822596739004942666487089769667481496584761010840027851396542174134128314833315636913748199495090315281706903133443690149435024316585762698862720588809661648596115804908882660270626386390538320500978788915067934500545935545080440365292346030285063934628078755056644906369860714750464401513423021647123375924716016560811244421605053325715579095286876617774097253931801518363522780470314873415148231611208181835297841282661102401496162136084650296073742727470725466810661918148850306118954565144151930573722867225762818824055254909409170082934231911411196078049417498314287886886774406324112284548514569450660745755443272117303458066560801078132109644225433562155232958276625439462924023324724383518636975896246549808175101085510681978595487613366810819798473566887664883660369751565176715381238204949975897622245591958029778627377932867368354955258598967598768599543126279606019481698730616343121101128643359601613321458880064366090336510751825495395740660280788989092750134877306880767610515556992274273392702911438890761381073476883260503245184568682829869502493518997509796101032587261684706689760209042312236576297911456868297868642752117233311991307601389357185543882526413180038520969378498773171663953798598489627093522499997549432033768306675329785545162500469543834985941827562870072989798933941406034907521525501155451718868734138244543538524613297222071755975355158882022724720134271475892203693427776591228797415279608962735711164574793932256825220978030867004197655478173836547826884247773735344875600818001754686893966337305096479764922668742991327390527527830579321774518662532894162093758176388734185105697240344225633128159508870657305129909845654808678431301574952936361301930174970157907132347507025047219610203281343064874055004306703019545185444050316921138277068166629188910232208788031861073338163758049479560579405966451247686893380592742708854734581639660867792696173101297694754378030622365556552371731831850726497089693526837075721218467120695352431568546825416579268124852277289588347315819318631960471904364256615833439883323411440364215367236184437833890463919530212443668806970189087467979930303733075687491223699945109216356189260718665688813364634542027738434936156161362607450179554864338732814573043094227749769914347541960652259151166328800525888241422945971336509461486974991484608689401757663570279511984072849346026938017544193614278638114761878998826293506229777697717447644456955572685680424831251085999772300817996764903025205215484444466309669821269962274575123521577142217483517148144855107103845860656879276352031675281208539502231375363502257214310178254736431149495826412028674756292500648504024202283575420445801968194846311256632896794422052488984974064672924480054751949894480353622545269990651502666836288552683475042562403242335895885172502907487805579326004593668488484058702574590660428917256494579821593012649289253293081439700690769219623264466234929603617555261436888321016406585299073486115345878796492354549802959465807410141969424869259716483671234706926790311358394527551587478859737542119075765442295230387236116141747136326141920109029705716604049280186742218497883107100684526623438516249738510959993395212589483328493172077008798785298521027188293822895368922386581717237852809843938855598689904700295779599060761810544646280012565872182783809668677694898986636172892142284511476614354913569706735660951159008268044270608921829790197397724797900443329874876543266258290518307998133281524419205977017212393043600455804335748079270894327783426726876175811142607089586109008072910301597256213549863642968411198968058752934054661327853352848750885872865653435186472679176490609329683946472049755315652326290464992897309634583755152073846972199045256543484323656319323029993157056926282012802071891746382091318974512843226712146571992787957451296256261255638533694112620460422635271512396286205901468680536728757292252724006316476709535718475594799467407400592045802024542996378643975182397303398768142792653265622006396323843342056208661364355829293919483966432771328473687181582292836065558294730432228105472631261374099743309733389833084507801383707633181197629583443817248267120548537938944239278673835957671684998274642475166927346698939135662797905423262927012322283872007886948390058440944275865145590149464549094816367193283592705459345944644619417337104568090741908859982959180545170827170779682697721871391447913994195821327393957129497273526563412129422683638480130820610525114065546297368484573628652059068165765246730768342635782338236673565685786675160781226319071230913674407330540064468112117063765950207565329347184127018235836412297919263072460130650199359610704292110111324889240878305855184304951749921413366095337496359966168442057703635161245316138911149930285528956821160125768329123759246509477606413856545015769620307737860284174764024221532311673765383204093029072681481620926312686269183879351348762237584260296569696952917800811791936629333383991155567478890258296681773127027721962564122431274904461196401762015859896221503328968325442948257856459085119893136236609778889608901740501369308314406459758587552103052908923192513121920631789243069607852807743078763504645753071143383029405543657170697783498084043009028699309751981862633937796826895341847165215169544311625309061371193951803092610124872972256881428764462484518793946858654288072915298487801085639856892042162093105482066764392556052905723824766027479178226055149296346737427289312257898411247366211887603055670547924671700294571202484160137647757705930831934542186875120809816907770285934353009638351267804728991409548473386464582002781029249517002687739780877249760790906935115616378983331125975262511781537306776093215534696815236410633848043258938833758024144532366428396043630552260809686876491959249977861389035744510353976117721123809888260863387084754719849552615562285887984770337664374047467854249902803214680993288242522723156429847201279137528577202403852268177319553115286409234522025235753817182212975416826086755241242992199290005879449556175559536371503865009001452278482148192457036081199908036109026604834184792729902686689414796750366146655946778001959088234128555410911839533164409634896532763609788145906657385718405557612421602054070117039786785068425073307176530879678058589814851565807283454170921717684018201576804617518436613553525837044174025433645294113325150196596647018677702848587279658332095956874063379890250748273947780392132931691302578069346053529122344076736707973515205218256591478492182601486146332385015036181229413262555939196496266440199888388905121694005323796773327774162089498650277321824473982304150483189355646864587276826708863885089169973315611629445714149091893794083854142388488379452422245504603651948238187757731189128627531307800425813946482436801518506625472235411367658287823203957148131144413553284050727839509959859531493868560909558298519087427063422180168233872028452208427837550514188294745547880281182360668094444215469495207788156122987999802001686680070652300821944554569838538853847266865392895475368415960745631284515256493162719124254994312128689073267191001403795380215328837354752040664172942708316651893099325940510881732664791141105251061806150364365684129617713278236089458362281478445083037582992138182483214549271520468869131739091393317426818869082645529690323350223218766836828904375686305337400157246455252048597471963818059320626133385336271960554048347782864909803762622884753578054683241506086017101428238107867051538231396035465689477904769214568516735897724675291880195168132018913238391119291212192493686034182578618967348074823954876133519138939706951121758514794617994118659808216194518378510311862621099325677825868501260766160559304289446057628605294169565693391398583643817585911321586467755736065980772116452502055453064515362532989002049174199488907932263604644945353737940296604706385437842094925244124686628505428437473677140431978114743496885414552922628305832125218746006924965045853365446602651731359542246055370421355635320099724996837788256233119701467137712101250116595838109367750138829679325381888060198074326864890030900056354023327898714167347916870753461501528933999018967956908778769933136261416061881134415264689900743457207501491147946584583964386459099476537012525502111114647319184961613399396151524645528718860829042241719423922404307268329380848368430634574199338442819050610613844405072969418487292530149964052504795002732504710007659157090412590006486354344763896989397835211574009028482946188029130547358092083706598931915778429653814049613450838578436834985022574795857801624720995708788186918310811990044018248773035879448758926096492529006735448831837141936713804494258231351127703929934495775700579794492922298369499714761803568874857613618422997372158444625380552306372012013345771339614962552672040504574745340154729995548284263184987527661290802662103940004407310805436558178233302743500202989624158337412816441751878994322801597991030291916926326989281493490385172138851691032925605748536160696300243469011356235244102194862051674538749152839150654650646055911704477762736243505150393404477143876092295215381167818650041165869517795349233950803613079140778335096463575777417417089247310227066462309772914961535165437442082322091580063042674568799627912359115561376481655994068781476146080960880998300335532552929976878727037054862532060591365660624751420998677381057004385380611052367463430351530543017906681635638940894772369323865378328933362875080754893551775076375542951999819565320804613508734755606565516544459215619045929155581316502434586436723461401741893304547917155918372823543578655292458563916757751852644877476752950528390231622982896501488327132566902177837155531038531523149664197160551341206553057332127216216343201752759604708670266806182532083065901359973400510895631069035778696979329935706801542313138484622510044962174249697240232348470859970831467039365268785532062605259648971557328768496861905266217170054569931333734262909448491308671371178046960085256928640892925497036674125646242584514070974246574267222824642047323567477036875945086409481792991690000798493564238700575076629791012255180512264898693175719894686054190860700446711575158183307435707557285031484915434784584051181918111445388743165468084529157076368813448918193036637521200263854266393817375679233553677576897872941884960717196093987443173814272784223894478303655492225633816607132968785230963413944368436099509565320285485893205542326994482970009694736216783669727865322371856078168478193851582861937737058156111396449005073488473708078938989168640291761780364413696991203550352976999042690955257675571426323272410648952412169308481437122593419902572080340755116298429901100755149118897745825397400853861152401084397097191593295037745621359097295893924940887749510549113196497966400618474007744426796349365453971749894630404423065210134291220300007047729943439256506471329859213144776373920287543752192845041582738412456566467011183801384823879081823035450298128790275564350626367925881076008033979767881001898505390740614996333448788662937210483601194960504672150712722351085481013069942770288016421045701803662056506120508851212053123555088992543227888192858349974143273677284825020810294852368302697524621055117002489358004569555088403505776274105889590584357571814055180445539509969085568139777001092858296974109590455671264438497860882797679730448018530055619847305316778128792749552569128513323318053252366509352763541078202594268571570045219946878903043477244410912846591701025128500744497933299438540529065595856964612809290645648132185589133276456484488002649220050602407306868546189909153042742284835785218205245947632153900206859479831477522532786094536397040593531966921908725380690668523007415469904210664500740460776246878087449086858207685514808953674012507766576413464172879135712085979660053959195187103628515856892414987391448820068033684619274853464738592334912294492491569241462466881142205749968839963293437406444430278177072195077090278166921459632976116390329207992160882356051568310516638715507359803237303353677828509753476813417431727615092166544479981295152181309476255442980700841039817632477066357495500653307970960295146989621257061148699710698233922258424212292728638487903440114926992756149637891163827003088411687582651235521889385289460546646937375479821004197491627162423810569391105621539172610724514881045343993113655581471282474505753923152233525658171089103403726687680109015734992845111093171909057940943786258297020598090045833068232833792443845826666208891344772882255005698246156659969460353816647368328541680838574890406041219783578341150835816667778046684388892612898356860739713121741837373322147639574164363929262956853801611411857762080415908159195815779653403045279239214311734079324926220887783757902583162434733718418309242093420335172180305436989977896434336978375489097149696939180008565912734254175944868201929446271505479757551955738287486928102549041205592572679624840069334857098284495391261597188362050014208393418776660996117656489886078456532464490719734054702912869726459736263952165455007407867134820423939873193265504747003963605542007423559832112199399271394829259345397954037403854568115375125021449057887489330124187139473637982871124133924992945278127047380490016568146737700910683112489342507142530305410838724779681513754627079307729176582351937085101797355869919093430605679525032417595761917401339560847266550175859383758712458555754122806144197430047457162097929678484454497341494785420000549846557139997480001682185544292021633586948965945536956372694243268119450458449004330472806157623529347758627010877891461518758636385216961644130065690325718633274162462820777453336815681171659206054282394797868434688652912552366845793580827220646485856411571577543223441106986623045996669272227128685908168985989857731063551152097001882732874888518118544960504779357804906738307142498478166488519616783998895841446407293217769333892893524970151268953306482030232483104731076586257584677354537087389673383200784830333774002642305774544318246262202118501029411313004285189905654593209816990708938629600488328207475556000182419454792601847437914168747708107240457246151770336632964509142797609737272489038782143190732954864591256273254890695431271115573278058038699511317101284343892219921671831350414095890608953525431748480298993412821854446447470978137722226235682999854593925952762907206233322843373940047418397281092288776987806004317970325684018896492230198921034078759104716793779311183115284476385839367840307951294131107997205915393924693299648896649848109681853481278270373816067373614957649235157695679273187352779681835750928069377286050287022906415229919905768692906068973759752803448743136452620188570642008523620859459413321806385894225751341544712960842320186301051725382184339452038505065935544700808852821887539680753840300882344157786263578511771258319277234368597062171993929928730980612743168077451481115402165859884280135206353046262064692926339840787455442142297138971798051616135685950524170498220431416100328157983957798012677218454744691872923880611647835455582902358563030362307940868427359865266306289058699587946184346324560406164613886988828591086659938789123239620110794766465844018220565847276049103546308711181987603897806863093588646094268251319664110847669883832326723111910339381137149022204748911472376411694488247298029515352078501485329602457493747171048515015256388771254040337201027870090642649875890532589573096264899186415675485449498435536645692746473119335505988160777008376148828638978989905866892366672358499315293165089297918838753206397820437346861373847298225863182813272549496641821967734222058727141382292843007802307367085874802226114811728583536654701763322615651589412621671563352602381647816959759838652176915945021451627549282134795131561611475667833708014269195463262288163814313428528686813102284004010345858135437471288864954303712978290426791209096859388995573867015123181128197470075716918638699352266581433925843244287589677041176364306323416876153498846529191484328265435768548438851005751178186097461988616273975453060965550718529353408997124626609342347103802179140067863983769251328795452912875779118068947387950398128590000786765989052957830647384338795450110294434397177330916529015406906167430574595259944604316270274006093002155146962453817244701422831453434317908256133899621781715900068520649434359731800421975453104329401173139754939797832757784371391328717539864198110050696808591588279121945268828566917401673370509433083515958887204531586885652182119724635068417871458696303703992113129863643074905033721417376184439596305966879070554138958203932336945809876553954529797209881423822882077454589323496964815847380663612182629279858876270604200849644670616579403221336505378216155758378812461541260729751225765139451655770820022314013724443352064170751516963576913206015997661779116779044163682837097309795386303675607753866604822910666151308810197917079678418199477438737858373891636114097607934556697663949003088692434122968127442115405600899772741946111720078299696205449525731921972160329890967332427006613456576280026520166025093285207761989854915396951484828563272595471578790156115833485419962833569656146845026106873209620944529237356718999802777154521920889048917801072496705696125832600673680925489096196186767743313965840286544511591004110400133342514639181285585303790336408457259689890787779622223547974525258195355146747841942403912479170767182160335590407874164546440377601130756193793435031495872825593656778926080437016061037574925217743907289974514390789639116191113240663370766842347464403346360223997294701451046096196838556142937094263817591345285987280562519908025207850493506760505997906490477169762749935088008296193552696030293977904820374975029445135522624291392717191269142475037078009127196239430784768545613859320799283206870176007426754825907914087365245896629894883469475582875022999915515646294559282117761127409692729592074412997283324151255246980905354701477735978667992009541873138928586708755961543103310588244733451590185444271250381219992613782558862846775888690423594223548287239124099801504357051652601285884834226042133925762581057931707012645078482838305765588466986531525821253107403888843959016275917880977745355733905477380147924081174587317102428227794664992469207110929111409449689693514835604896533378536432617292575399193485695632714951713780978673941550869616466621606910570258297716931815098673387672231213687155081242158008806253678050048443467782646105746683094042646953909428669244108805687814910598925237012965603667354143747903353871934828439936102354824084959805394461773635357518311529555795086917625940932926319792355287901466674377164464035681979604845874080238236249882639456522769742067890973633104441899211468619391467310474095587408282260413893000578421900665363267029668546267517638950212454431001526100250029485085883883212840620053803136260618157229793686071018536299177879771914022902212202264630731053975043871110196091313214503497075596055345517272402865218011241539946693570233871565092190154326224080920531575775875455032358245525836490732442442939434990544220108960760583326212849030514835663300794556456507067400981020438678914292312301138232253347137509346377836972803309906214510725340306900434120844512913755443804933360474615668676115941777575213463220597809953311021818931782408622389364522876284442185909913926751271970150238783943662197476117829929448135341893096428606766250118964657343272157009758775619878526916015254253647259179745972053106544946014767402074622083496561390118943412024606947917922995894627498160468427276709576978678126410680075577902562469208258459567266591644590912008190913786700917354781980747457627136818928832153471077613211155419495418726700144515373015563582840548855995698686841557945286051108057623080520086806406788930660013167395513643710111176933597468223041136221447476755562137012787627117934170882327270844035534349569478650220475044584567620549543757601382971297939377763255843534816559970461127235308277433554617161723275476708120224759591543343761115346648054319052460177516607417361004283479949488967494645430975437258371293195621159362052319811382490489273217219149399383514078416406770840042455668955375837934860440615103491447213164489819108267439530971080317868757069255740796822935263550416710470041616453543581838214825779558479301128713074388411735807806151255989938481405927925412966826532826801536677039057119712935758593858908830794291698089379947805691540756774568195665145253580780192488891171549821140508218744298691191114886058040962209858281172221357735284959513458818781231440666339544345831791942565231895494098203999210154017519611502343563006971292663559508145111183540274645551777995906728970442202810198204831741135392899404148001000002891141193105096693825566706467792314998276810489545628980463099085955936582140888426043595951069667588712262383321966740574021873966824026780717504177214895192512465245469481937574724728177896531286608561327534541817158166214534965732240056118694992375407451025304840437712356269031520994089333039228634021555782152913773887029147342086463873727220438230850940934127551298694190504612894917630023099079628132234658371073410711881637654025366507805258069643029131495805900751537022469997171619703140534073438340231551096154317808853140806077758596586760461851210092109782773228032934959542624162632973035409991123816207379568643239606908321243037042100228426273657927676979812827879828117536552670362256918125754971894955975774370066108739084192223694815492119959609113916636144312723232643005483037556124749865906623512092267662761823012083186241261620801521228883643031135264918519812731447998821157931706257829205930726197321364927688963841562270912970160618862657253650018876774003226632224974545808708109861895907975409714495249291474242175317736209337688092295079590461744101733341752532186776679985199449159684948289311894076931704107794946230030087745620956891388052415765243196987026741358535378113183642356557146586497810417919471878718815257810655484755302424335047548264955576686999154295228022968915274594273109130338016357406983968455647153849649302372231205149863639368601422387358229984176734343977948939641470983193674301734720863446307459758990247835227323279020752365508408432989896193123013857149460723094414812506928794764858866260746757086939705120168493367045349167956154361220548112554551752845123204495861374013881122977016064891775835588494992958846545841463941208191652989313090346709663194053134865860835444611245560103720699495226357185067622311724035076471160797421236835938514237827476589786396254322235319759493029885336522818331830981512349952057783199709464111873690380877611028271142418119547724096633143753681235736973832072994712507080034485748871432130763504420896971332004402114046392600721979179967427463236112415042415376351483141245270560692141947412025503409579487571194001537661487522832298948778909714078757521630387699153648789297372731343620375528086531923257780683361424186179476853050795625188549398726191893095678387317008677419008967139048837634693421851674681325173824516758116802881115314654423477554900362944809681906647913526700493187729269047222230296062731605985322971909080409920425651052118470390530966111473201086979408188879628307168123531772114024840270653620628587210308656924800839263186377747311605372170271237188130029706244684078192884329436472103133075917575934161005018964270594540761578261574854746528559633365861076033336005800840979642062332916314200689768069476436238981226541753423455400390032899455063703538817089139391130967116346194542758411004254379823023908047344094864802118311373130663480321349989384010484024070884337313282309014912723000153550062750271613781716176453530200907707137198784526383029466313833709553273152022467117006100034525949751415476950111838983692932167419068935317040548988571540853089754032189932208252952345844292432758908296396751220129032391138265601153843893777731190512338587990717533842755093567755905808952529182654651194918078891559398564848588467351325894825993142715362088704546871310033756646390546929609106326704681799463389227794351626026210865252870880542991185392855388405699654446110687829284279788033042391130612096753982320277240965547840607465759633755333538095813563311358612590526798898162291692078043330614760134939940491371434542437021572933433327218706358715560805047799690014319073800096556803766936638570521624670355423214112689317206339362460688241417435071194965518691918578969859547828415836457770776388139812043874129805884280343130628971406666334810443388269925919463972524635385582015325850872870158925996839193010502623355258401149573065334055618294580581021606969928322585745868547519574931038523194457458787755598524287937194163242617601388324963276664186373468727643180271861038176122020693264648942185882681773443147143918302227996601852153856324280982201420258053994413050569446126935830097533431086714041009073136837747467020249947530938912191243521013455099531324676222584532916691003465570837439127181930263028758712847656168359430308860598406586606811456996489238413557045122402432522367501083579214795984201427834060679709649937143712769441576447972651465048849492625092471994339678551435838324397482217117138406227622029813532469550118348489774932846964859093021465963327401081362690210065632005680819612558033891509216220144920765998445590382308985607242629564711678183407181024916799702628036776682972457986398249523871844515093947111806377075053483361419593250438089476536458548070912535695173640085233878430573801001238207227655051161906647539360624657535120910224840260842121172873709642326108357643125372586464624653972941463401890942989128871735975558635357679286527727365458528724723624820530544385095312521281830878201670473688147432974266151063086975736208010448741194960672979168540160014979511189095669279141833308091957726737793093775433719281421771280233968234185660474328138522412258638893602441483704905564040036788515043408101556966229367747330166862097940251429020265283620109953876265417057957829936805081176976069259533360331835233146201456254855871723805758902435547080622466880986309777099607096877918506231268441637281731164811773498493991620262532189111411391799395471826755686684864760693348738559802070231862033656913738363371240999541423819253552819604580961357540784420489801534879419310416336933158688090414225546159768920247487455264780002403584423039735593801178497229282574186389275615109030835089903343110487997592234622036839036661454294078428588849215489254364788004656621821928852316674532255778782576664757147057169705671107950118278150574550526063668374895757609260613955564261573933989683169219906644834064534071026696408620305459779491229757021451851693546004594694271693341994708153253623336672770308048228858215100059673430767650967802569379164000577921092541597016520480695149440712044166404300844509650989859142245927616408268837055939639858399225916622415447659154695064849534991540447834085408860968347634225877703287665760219248982909423263628176799783008204707567983992761641909309712629647496904411157408850585324910149211747782123004592776653491955717980456898270544521049580014421859350478249772497739349276129945630743884729173503976774724489196464085316155017704148363870300053040614425314063383175394123768650087216990807062780387861895877410222857609418014044427465567451568378859847418743154308778280709047946070786710474979690351431090800903623011986679863211346438655488794107939657458921669097346763206149904399813478295552177234389949278184986493145858838956509838115358383178451089466542823732235119446064428141152138114769087492721376576736825133325222807622813030744902229296513896287861163323265611854085199386860215744982104263369493985844908784519116441006708063642161330401292344995034414819558433685770590261690890075490531215154200968915636796123928900416200798478745009359809710753579164146259903888488857466113267919693412772034763876542649469302421464141969282432040838043602094538206712706809812564600798407911044175693255316699082343095789478669293805963187503316107854467909211011475737973862314152612152746901272803291488973643207762883778082677413192865680883433767100968958832377015887085911645542520458079703533657108032039146801585192133205760138846874197935591949012239738551159751272682521741091799449439511373908590720760515792542187570136004481275731009338960975933809277786080308870610675551866860992644609171417066980255727003020467533952243641645787586815827875703271504401327975120776713469915738229693284706447117328980250954738849234039057288285057802495812718381963898125088868314376139182292151456517098419227579726680838675552618334616715536648878244755393072597164243872848932471319862335108214252759994117839826139492576383043815001622417399339884134798855953911075414475856589652360990211459508281847404817900062792592756483532695960403464619223263909075185103128082092579646415368931542053145423381920904191056863298505692189930204355282758601175446778990626866296273713088196764423935080427587548553945230131397787149655022917149537874074963079480419721825750576855678115820803379968395006997987304987751007969715587761315083166359007430373845991778659847276479326961857401452508130687735458995194388674870861831769658936821685118396796532838022474911304935779050485114498279706271750963832531483050682534722610371876906925491388031151107483429960027520289449488969642714362359398684850933418288886269911819055786474456603780368552991137499954831984008249600277292759695408564807345694261720168240846790174857670463015628227099946631271203980904041528061012958622875848762354747332354119975624040799441612193047613579145566230969351823804263345931875688235903987363701678026349602532350904189154133903918879869754140371485623077814440376141636125264398017526162168892511207609368709665743065580483887063832023436837195214363988931271292820364119780203729555749434334323488128910053775006407667721332405417170032487363334421925865570601483167627413779360082846520004547194847767547097498917889621265521146166158693816873486803015856994197174943451625313305594662352005751723027467470495978165229481136603217471370407461907189524365715425654451061621389147681009280869344808731591030483468845085225654033250271497235999150034135439037237416527467590139560523706204530932151515410920636613126259472786135749683150829672066829060735916847172580949243003870237929372975381415323200143947382689296148109170905029334848796548792262718373357178870489836649592076099786351227509375038901264777812803359557238286181320247728385141903922505808277079209562882675606518795237020601625182599078612588716221705022003139614360235302806005071922756034990530320528753224590524208458455133171053658318068562940268388082165877856167322390453217199277595209112623641277861514254903182381729310829359436422433682513641530904303254274910554668255256474288813342353584222748755176549989062236313118134856211057278793496278289354878225839339461925073892361560933715322672754186246264923310898137904135227748031248435470362554958069045449559962429937276015007589023324347677577401086756959965653058706867919502116782395380253917005454126143541478701533075708809232715293536859285713643650072137586213393372522511816762793284402690015592617755416567932938128544472858802213993865782831934585857810983701110651612004009767964776619302706285073966813569195705074331823136475423131364675620813528390664841187291071964822011275887676156758713210259624503371618643716100743704020380628809141314324219858272498945043678279916087487639587185433649586470976730770447890682967600902902028100994253628648347537057002313997989138307532473676114506366457375653797867335497929748652564139863294370104481985437733330368954066276841204835237645845091012915327876649134720998196641169504011273874617611570493959569741603420697172721401500268899631568750052265551802532712262023287813171587644394922646813045630305719282492044926721377281506697316966217257957610402791815357686322272676232283144190737334358852087953913582304297797378009337661173538122013546891173996474269375935304881291546579863775653901123463212193769367453049574143623152531876574027091112137007274729977642171202985029938461842103567425825847351095556402977491078999357834323988948696553709667568987986745882729027287465992049623086576963114315197402119809375116440612622015509891524845537028964819567554400272805615992631248047907854763095309033912080492375467629285905118185269880734779458310161578975332248623785660666507141057783285357656228806210611281092572030517010657067101473143529142589949678395481625744135520530388223470331878788173805300539524269829942212437412121799546315513374602281674904280525231309519169626748560917474417206611577315801358383439585341427947499863287023737213795961438270301332889076381758735687919632651282496351645013520680774315661615926939990305199921062097065875430495054390594243923326911512873472069497204749766415991097319442344058125704171586242059028590182033093299134735694659011196942536847959204342174097274311881000250168711074326200522552241904988917224592798591071076631918886918779555703323730443638618296454872943677136211653782527815678787545694997809536303164680709041457715757364230079879359424882513790345229842715972212675088619592032422057320775680179991145615483808913259805502947633290455922072515143830217772394236310757023577087953653013455684461849503826951809849027647029651246252808010187664880996827550949532184741746691814997417414178702930695830682603531664488631759568854672453423159328055374660461091336439064504530354284383877119762452069662933942399696866602993029040472672935473549258566775977854631120587643941454377647087410788613309224671019658156513069911810773656660667194302881375155119027720774645592589209042530241954998008293256793293962154777964758064560291521221670049011436566412109425820791917875436160471017767028225712624580943929226257992485327685912421487007312318552018186509960486476209987848398928624399684964657952126879805849186499684508799638946107552499727562842874405181815830701641863614476280811266915880460744189797393606303324562062257251068013794290420721457900622744414087488024067452371873424117308601657398640326040987238661187066422185939174586354200573242638825015110860272730428318242434877071421658064190214062831720750222375574074219854134118331478621226386052030387891898918115942336471330113581956357158824298172860346353846023668107136057499721227526543022351308454194976333294116418615332501902701588595544827000883112093393856628029429587372009359922411466531995690986680305308973885500108121324080022760314920918486030081790398024586337205540763814053626712865250114232420336553093438929570109193211742456855251461216221017051071706784174958437987797718675627830858817130006197701256851988613085399194625802184333687219482388071691366532815734376321293814837222795911541859518842987853276932514801808623399251297249568667783206440591780201680107776924533202938687645383518884824852188207801708323588663758181087350693034039442924615599736058516968508234353203241951786578030013223920741532739586827822059180117261417653355968756515018094171933517301254452058180312128920710051374692825091668261044472087853483506192182431395397705524915523716241038071844765129159780395595100875220807427714425814655250605234479167521980882821218313088932850961354713677286583343760519130973260843927614744246122953486872337490457047250116119583594652217601704259664513285142936055369521133214467776108906674069911378321481265172592364338992119180016233906399917347613790556935520518717801594027651631951829386578579798135747109973058721144791259343406453736648410710339398452440536861533156057137413657645941341518134535352596531887723847134788741590913772925062234877053736815311144497161956915878479980718292110295339246544129144354828388149548465081529482469026276443128686891861842031398076057133242187889878272707968601994494029951328882576005119436139140680427876545520938311151213520281938862261630872929075227140611543172089138296734461692725902516092837386636335374360598983975312211680318639262263244023449537744374288681411610347547122868922314039111582437417238024450778521298021909292192179582763273303220883226431431439108252247781340240052225048598527423969504554997635694203262542835500881565376292728942922988929980593159823901000956982855057792966427305783145630958789957562987280438406273498080001136585237581914851424471715463326737196800290741898537636649976471459882961485007839521805846801316075192683284456098905964712028938713282457536614144045155189938927829068194965003862513275011829767812482239533649091493065106093188952281934631672199467880744580039548126414682062606446281192235024572686444161570662404062486234810727963563948732730753409742672027379570190374957985639775096473733910336129041668944266659791543206511966536443956748413949787635103149911431847366026711769125086915850180220025798419031877214207229100201315681449154880394096208753266482230303536556660437471611329877741488433098091623940989153538076677723831755858880333904718826373712507826214427219561720300805871132728772516853400630759429920312391308083746400307584756350021163276716829050368213925104604031651422805696933243204663748864816874726286452732460812875068070284901105678483778428156306452453859591873794811725214068510404032135979635214549734978751182018092585728683322928983084089906424824830332748327843517890840778373772204422045949111770449845446615542479091406297998968714762836188802784340992285763196916772277909528431425593188996909002015875641448936824067876759494694466495449097634191644377545948261878031690893844094500085898627771760143743632130172802197486889708087358619213564609421576584498649332024104233763634533763261263204146155469413428322378191627608303367380609331154295310357988231143967282566096057225300077627485281804913420881504837288271099295022778659613569235303654649672264986454868286182869924024988841020173087945092454241878505426502993750491441559239795254930234039609077636289227175438841360382642871779465104249307342813459193459182657562084766533970396105413517565971097188390704171921256362756229577555398407969232649997330522683422729299362957350074693048935962666893825046811379490420742088455399968936372112244768767867188171161734458262085559135447839092813263013485524945233555982749593770356254731219440230721997679532267431606691395510283158623382089490660347738144278151930408184778843758479792946680112713350416956997475972456032063809870188327474597837195544212578976171289836910997546036788498996736476809917959622538395008790925793075807503279970098638901192401365712320087466443667379717486325655891012737323344302121923998132122000319095912264308826982572878742952064045542896693603828835696642318067951313137513019482960508472756778576143984188664755286747958142442848912937745674783675982572420419709471104713442022042534855692760015014234854945543677611234086930023552351072207109109213309562889960566237705687319408297135403144331606495309726236394985194625343811679909128807925564936226216192891427928765408331796108884859960633826189858564884739018195860121903914932543364248834741135782679442685645978486841175817188784889180166254995569850110463483758491688797179381987577507453925793384527076701759810492091118219676561759555089714000856171523337989817463727714143771111599187509218555857227845625690616635355259979443178719298661848578433642377073661085927334815060166665418385498960349729713952701175481907410797436665553411825485567011573986008271934982984461808383739195111474677993498081998675970459626595472802849030190788761020868674935879323942316645416855583134214745206476691453752422435273295405528833490695982938550779187122215936483799692405716810321536189890833095354092464854299493108680171505767370136158306673253205233551126470462030799253760211362170979460599694949195422477050999835410054097581295780196678790976174786133014992589253926556993296837377160093405209756147554272683968784602539151778425361061728907175736684822834336530356756676857942760470752734609974186481507152755122386854516944006467841073817553418262052999217665419799747131995298601425004566793107375466093828311681542842719668349790199121847809535107945650904159435289139499102928867095305829318107613272786397200429052744845496595398265750006458250916588998801520294606638451396105123521405803229929421713304795530922132429404866329056041274434537129577449270642212049726043162911906589470825196107300624689324139748003570737137866317991236936307925610711290448414024438730175736534207842659479325959058198768240792713625092471663023187549161362497994642180083528430342408396408504313646770497939843546160169401391615558638425170464405334835165657969908765900897514981784403185846208331529507525563126074422687947489666169933243800998520322051563438595090224751595284753490998891542823780502620008727654188903048918233743271366422792026735052613234685579875475317107608903162782351040112155544663845432740963039949635167679559229430137313953726598229371715696193005308622935539231401363832209401202535554012208068517963076100708993193123620279177271499213571019833082366743958418116534586264441278168621245112014053878410395135699352580442273266091937291143284999892612532403098601021233407765728379334942167439080383442425901094403740530153990987183369583632630786267627788835982444635385856916756894412018079203786644432291740084656065533359599088620765101140661682219418184327598757501293946503413690599157246416300588682979382040869591231057319411487768628568288182512914835716486004634680561425411777278488513122035629663990294021962030244433333171298228784879095853196135401615587585944243744585084610236437002580981449873835950003448925092299138356435909843026861307664926824786802644866569969440247610412593435498211808784359074925244385968289808469399932514853836812311452286963977531766902031509553271927848579792390409860140769063966224111969483440165423789693832634903091441770878911773161240168795746513309470715567716657246628187245698595615979601473387766166488738525479924781629267567414315940326584895371407481189024904884363460796420167588805474343035760188388180511504613297111404850924943346667521799800856375699021669931667550983385945035035716587447232504851912797298103000661910794072238600568835480634877243351098044169826570218982307793232381496292924931884347431364495025009254871826391398666324204084057910917508220322491745815165530981423603892273747158926243965723119130909937921411481592191246218178721698528174447010566345634612619888788555792651478184893198571126333337417265128538719895127339634773904903032546607741397636296996424796932506016923340676132342407425472936660546990625769388958390966488910038084572338323349103599530760312921759201512405238038525834630025709188904955497995232758898842256709078759929251149111194705548852687512456309012477772781084084168854037107722482753586680596201864931230845571206324245636193682092344275646151440583594117330440491893993128684331924666462925546892388288248551093883113428792096769319360288739163551795444743846719943218228625014580367644964198087436620696394206162724468297491389472713657455366858475149840167814569648437307528072490536656836195572376841871417544536805477405549191195105430334294313240508521077166380649508115300817742942403742021751506471948210612152575149611185195206099963531658017922423661578434245777813818766813327200198809674597815146789779621255378544571632538853919963748162182611453744122767131978904554818052250156386585166790741198795777892974625391240033531707827953589002121708782986053503977293513222486217473108484708084625325096523124976319790032583698900990555676783366869419580936715868415762893250709950447493234829596304388448568685016221977724172755910033464348569217538584051970088324296725464660357605210771918643458723850138353217174358698691520196841732225060857254480132891320841065559894823006280492523732384625088187414011601112701962316654013870539241649019142880005818830037722146352834409854067358415366485113760295866378674467628897624891559429128071425595460180550288707076656781146250998332060711762141922570304362679950829741402877611156432524442392535285264310434603184216426381128100787103472437285378328678786980503178740937463945922044998049128133846506477792132686657911418660017743920997613878241853989785433042278732487077566061006654101629204282130852630005192098104795654487734507962155536373842549448382148821495212695957063786343111336979792159144248801565218651599794664873631288371803282423652822974315723662228372636397929091552032978811865954104910481169199489536274048127806655859840907625935436615411796847793720470994313197629825715953116587457346024321308759367870389414363437041564125747356238157961272585209916274189743656558789476585363999103818416570817351775218922915983515475384765444758900634231384867778250926003482454927735013893013480690287547015685469387496002942062704238909079719823687295875586175516631718354985396389654678260114828887102353624645040535107274613908460038214072446237621275868565565914822991616628945929541509138199603355113158661992973242693103853916719567073159258033455990537902344463789967716535624744960065846382378337130330348534823594104590259784983764936574530106269607415154500646864031111551595540979877470651409250072598518089758115917832000305153082777643078097521669201103509112165301477468805845802577954579284364329944741305634317466743606415171810013471653073246798883019282529774391380830002454473773944966568574700176059878318673334401158612730046980506159396418043890845614220503022168102247077607614040991576013931780422183654352231821687084294194780631823325677798815390637701417553092638990096397341225680515697484681983357439904961768338837720092710509092901067925701838107447919611810524666204428800509492313207820379649952057705112983116700310194209312478734400151796979912895145056944074405701951445263973049456924474448704749069226554302249124783585144228237903706541291238073944126401232968364208005875195343134426686317440107330330654177901304518208315330611314043364420910124650060294830997657791390407262139714660014757812031250009224058391009461313714043902709570654293940465095358296180189181528076562101011383661807255412041834653397980014103631076727788526018451819151274275588526142898040744484550458838485697744181858978915692867538251695012817595631946904406137655446983745062202259287660915769856212861753081904535658683782082803896559647096283139897228981254797091951786255422970207168986956868940695656395286405337365028224176972131517361770941628624504536761197201543595827200996701629087532238131811406447745240804832294737508086580403599986688055260799469817909705401089942663268433589292863241305031363535060759442684739016116788261326634653004061384103209309389651066443588392720984789587239507320985673869879065036263664010780287920640084209361797690781785989369962498521095756577103786797968870220958256302509346665922271574460243003220792065820707804358341778440633061406747116361595026425510789772069229689338514376333667061397858802834286111254042496431972598668926776869990196250336667868912812656484454066769544842482221266319980704120851665271491071586646518998803564351259237155309543514732969833971258196929105520427657827662314197685479897169807860554836819083219168029674666733370681681644772385649749435813529566474607468553288248524544309199065571762385683557009202717268020226541757298211388671442411122045309259112723746694947229888882326299321409560022345139736132450182569618552582338537718694713040244491732875321148264593404489414223530578156672963107635366804844106167457968910927640310231803651797886667462033754932131154432842122423505883215132870683148377436662903490325148638570261576927062143381919391552133080154369488452768083904166899761285577217945519973792687944676254098017479030189155949204521072689260914856633416845242605531590328829452577542168660257125077868569794609587324680184035420760856148352348739179398043900708606897013734404188424909437156807900166913205976659362110810024175464289865134848958948687138427691882942816028061001326766894144787687121397663766258618144734514272735581207499942314938997326986515922983882328251123466849593832072956861579305470937217036883777150943216919305285696783154467599755609008390264452207107781749304064383594085487865042788966735448811662875681714962017964541561252890315043136170879465443000400427604454777320737654815115812672623233477771279235281933165850149467637314995846282682310222534622087603366221534575093816713473117845311162412569587107844568366719524866073788530420282227932072786582322738592761250939261338893573960436647895724224163857329737189362007405586446027153908082046791972084692028343343919889772968522005638878099295367658319698281901971216973713683762561650509774543186187823745227376718936883771318812198370833963039375766586582700059855391322861208287717069059756057444582403047714123481784211690756868052139023802253066633758838099221667097670001467102137386784877403990617332052069177562818892902073958261199305541148217735548346043706842658381287326056969751623049876046209466457530960298364023071743002586797429453495059045256509946737646975910834254410586393683027078583538799133316147674405620569733919989471049903304847656964671501845755426276146874806854810209947880658602800942205918061962137072085872422128280986094957271574611603759207208427233566771605895761816156703580726795925504840175875474406766992460703791048622322692052020986901746493002182795288961465942875949653827330936965853858911718812599082595906995255673744765673386485486690086778212402452573049766568854629570006555010745416918669458797644051135412352878247820333757798104392027523166061163678602583074289895006985208905384648889007266369780788215522648383172511207894512452520055922616458468888986444136849700867943283740570974592941213964749746503250458743830319192991360574459778822403325546067662828419763147709122222972511751472089954660145486846481361234535069427251905260747664951144365779090828646746744172064177521067406390809766283088451280969271559156654440714322978607907663573446999363441804274050282371714235719172868325800956364501336865172515317074930599912719261956333655985230507447501473986212679882596382518481409381649674086722949184064807693564222127946689201202108382371479754258164850660565624875311206347317735756631255067343734205404546482848810250825811554438279302270647975623962218550516676984643309898430366666819164713822191847413798643397514339325532246229221085377503187989765567341582539883817976769039145461536206823330822960586976758727058973984748551377156389883372592964834016576500258856070747110046740100968396602148887314901606582823910344938413078879379676355419324178866730604757702865732110015053484732251303792059925066588276928149543987311691997030396436867791814451172402492785845019770059334118533452070455547355972516248509509515006835371321933992442355982443887825164796082609132972088395781820504486177808121030891176429729015719494266040795275344426772001709569924877950551760425822063380120845969922314230082606736246560835842548628505346923228149815438601034607075014166850665207772866410774490046668074388618550961959056133536341452820316372756434963665010465058811532696776420302845697021272810626421052388245060629397576732416602194782382901875228897259883499723019395160765504897796950713867775642307368713141878725188265663002903778170978817261344005906671620919970900972211045017208522684823040429167387840596800654949310012476302762214076475356894647962289711810038228166036376168735805436780105900373102085955452679041216340883181193714966958818718305777406145722175064205793191639156392315264602153793145440172138062942635673544210200006798219031249002147841496728151491387949065877225263121401865103566250315209474380648136883808288330529773938125460105429911672912269011056622257642145986221127458299371202667153819091969568734353944066066863724256586153086479812486190557888023133816734025040003381313837389986150735565582243899754959961908655411097246861950116296763510864104454398672112378965177228216530745090740447485658938761199193598040572071541588342812172629328927835745705237349723784467297134172849281097564231017669826954517685868029683936242604098720793550855841152152374190638093782418561069019821738443935948911227182081089331742909184162033201668413345984768510966713216431996019140721479984762906021303073997578513835369436379415661638006201090830747644377872727808617016507557340216100515681178069509667376538479370322868471203316504643018105269191538378182039541838433118506359818732945885254665354838548213031254740098444156894314586983797718302195570230157236350896203362029953490331428275836636694695416495884797300069087637959565424007640246635667218561889802946869566018713914573032120821873614843289022163660544426915096663584483481324324106718969494617748757898253959029602038545137350387425095642118906341396344036028460537381082197212954250687335949712717365771031506323029193617015929035351630633575439471582773887563871019680628630941448494313212558641077687322488687121375958630608932670518914377184070249177755112893315373399323134829234100939585186840100771703970641523098410663975347070541900090005869602103853167649703661546549290550263084412667578483663782144110018941948378813176993534759966285801421161476909412679301157529327971588693615560436486733577653750980058934487785540406879475527692841317254740929020190530383223673035787055796392211681607443812780814064763040694162072153166447381684788775568046846279964129010624897436755105754911789356315221098786096212962897267555984653211843565526164083184248674448910016856092425981497477889862002285395161098001824234296237442537303636922686618297112634999149353738590202334560929364957225418553524915964447922109358706316262617372695984880865430619250850980842383068593190880529456553822298069304285986462862529226793320581621236709723991990625231707891653147913781435741593370411586844773648234321300806859821030182457974856968812005803391994824112575235473556127432087019351080251172936547091982446319820474525123397611267059047095487694413528148684783072066356802234785447006217076783848317590441885246765847159047238458030131078889513151560076221867838993750905860918889039067204618703269643208919675920671247376990893010283352396369484644802142363706285360018854599574252435098162269806060719005071746948001036685123422421205049129786140859640509141150736288735324428954792539650024204043725121743458760912273567384609995668304436939047112776005602959813430254796357662201518010227502818445205101103273023641335496969806430557494357108266161924394861504380329691688956988780905944441018881236382165402527472323203591198422950763766244411901584236686149426356622629905785072667231277694104504189430604058696889363140213717151179831635334131528973859568441561381065852431881947996654797074286084561392521191628071130433710135667203689551578103199929133807021132375332824333367079399735576789902929341050170418052903329008712462848659713348261478657093949504478222482300252909277958146627037633231229778397360712462713720210964374552246061342643068302115437214477830553214198738199704165748320062072906088089140945255480914775746133417945439444169994491303592895452683182133721279838741199015454063842022462299875993241731825012464544842988522592146374186850249498156492765629689520233319728774585102767026717256770348015747882373341981603995248598702609180700599348192681784940312489017460743888047859077001316982545798977350808073059224154865138799317173573244835928196150195203516075275858705246382122307068095819242680417404959356452420226001840893155230905256080559441062273536170629277407564531137711323626190160198052187270742304423733222662444541888259769230769343713883503211381099458077683970379994972768615172323616382942435385290748107631799560501534699681701377209222463535667014543322052711463514541169293669439631307794310137070743540115314299053852800560565355353150828499209075258298358837101362649062381851344222265375342137339534580331166383397241607724687770020254771276007696674827667751344345201708277236006826980431798335491713729372283519306630823562962739513907914416990223232502590145404415980153574253736647978127699549314337585761557736712172872634644019781171143082064593339424137654701153809612087505571339828290694230901698513629044331321338004245636532741988528208500290683385608344494354165784103466581838407112344910008497475973554445755177365813651065133909172761642640222103923032158146539470211113941920911879585712311191540371460153070908857592046371077041901387043098407989192492397646055868190939072711142059535800523307347136589022588932323339936782425208009776673275986203350215836966177325899736883774443620832371693788115200759362071168400062565476719493077664633824035758138477374006028483881933560140156680910012556559233154810660371530039798374431493210756959542992879744036216032882083734472027948974857409028406312932977081286473192775013191388564099647534116302712308385025833765116931057526034246470088300008604537305994222211503491094089011174743650097779428399609944728059651908310696577005678554822025816349431018109237395223869028302906619698093450829843881601685558169638236687340491860908534838412630998060696733593022587086426766417779467170499906262297111962293691243493517159683279460108230876754229711177323656877953470051677721385376982055796743697874595898496146900339438689314289859741735578413622360600959878235889536764841773171657756080651821744179452515685087658362698890618874056249520826561215772845901557923780166703987005180022341645244487496126930543614158609059955868437689237514268630589346195282925343212640872023383239840497998281057604044995475428709778312332195981041856260685464631912301746117888930027895470103085416367188445388382212247089925045443681329318733524001439380949714079455333607669205931357635507759282338609801363313026604407484891488882419949532658692260794702453824044130985850659453657802934223112104992420344793412668971141468831050241552386293107790857633890169505650862227868285597637478191654248156246319665927151228695733820562715795622081064463343342049916456752317290223741707752249322642017008817244829339522626583640907566952579528474226722077170927217440490271680358448373819878295881930324963060902816051418465181727189893887474877771973201586622672967246833445884332994515814809787401176619942451740467016470502789835706384557013000356471191264607764543031068326664708321910672189197533143878767636533312499171742172374227943154469095977770294978993183886445530523781967372143367579339948338477438509468129723710337829271112858249394709431977682279681889436301162662561569077474507250297293503845923843741527200851924961072883647464811437756132354299822974135680762726100033320524900820851514283889152157721527819166803887424606271325462303492926961278717087701706355100357955638703403575864329162053152662625126832326206592145258883144636184654240374745593487070234315000277033451697508498539059373403833884964036023504723031589288782542994002498930923672487969493402052189307620151650458626305337045858879398855514091348566684105343330712795285382069171936910796787610845933532277052161608571850059725102816658237421772016341012344819321289709010027602818744364679176663124830901260940594337028912342382453760417231964436477497394315724374510809369074509090766147077678904526150356270314115279772478316366716583985059480635721030161658728517621166875669612636320577379033960992409511358987270144982080543393144055726507653933184267124307686251487116449123743990631411971025229924474408731926696913805985433653369621739329288773633537998814527950910446544229827338430457623796124125044201208775444962453952898693257982293090122968011935668102632619632129089172222902469405402638074484976791080132160365671458363800004322579071457838877545872097957865543390223653285964059448667851042857377847198624467275938255793074893140811098271154299217257997452578252888689933791535273725518683812053282748179708290338529727516729275254142594862389033568087816103368531864032385736004515179630730965071127495494736310214611535758921440209339173267913518940409935805256323389407333763072126917350074230244407453720932622148547380554485699973879574789157349760145849341738145892434717800557621556421609027307832748598423651421761292883273855593227675066173132936875440647351059866220222088834455046769596596933148764944666525800889454546321418827886941182006627043298039775910350336394511786465491281670425595992184510598662743703525572613943296324248199901074148267548861632285402187986702265265184226652771707627304255607648942905020480639123562452124212646775129612227520421649938976510350476285087600652291325746874320162519835860435685322293608559124302605558885109358957126568862495958990067342392693849734303913103492810734228520869813989266029393070531282586978516256824567631697782258950251950300342204081313489765220432930016101349257910032586351404283472659847894818894023929741697487693785332705841935042924368982415343163790898774823711617787919695919335871798431341199156357615063257659055852536287833523439984145362495692913775483304377477524999711120803846544215087880575224853412661442059069932249601775440352482599460559342485014161973036846685364456946337310113847773326066426679911843128677762555040174192716798528226368896333088628182371700878421231684138406696991601840128565343617886214002533119517105728171821614296073730520136840045123448393366061607726301987824705363505429753265179745792195283362066611350737946371395673987049418873320072413206291031728575624148919733837288037785899234522269077290013103967997165562868671569773228618048635607747897471895872285528972984446004193504275268088324569950351923001071806842299745740974851910014677376592242303793462145767281370885265775507789396528254420835766979384586873347076132580619603837514570566909325069694954073233303606343611749579916071550653182398665418705875989419710596582166441972590027053351703161990958512141424588356384540018262046833464261269255795374433406290635242441944228203909680454383748925321938305805802177661042988908075807461606069014578194339345676061553259185260553119829125743860447859936106539236540759668467974397562082149083625822698010403314820345704486496682457232064743044138263333525264640749881771426288432544311277451394330857427166434048063858912096506899437589668633086867143502842514921440536710093146379941717773046010505395872908194646772056633921467643518872958940833983275633333465132575187321546180476888313056607035397754741752745501819245349268808067601593876927374432256434819662051115074066392050139399564685757967811491242533296580426145445527542880279981327015087377984489458907889430787874454464861380454815386813898450850677410735717092489235368638455526579633245586422313559112626375935794969326635903334020931760694752854136823874108029014911014967988504179129477720848226930627480384853224424910672296632144783944798673806274611864763073669182563176003906682990715684969976596442949891373397156265105993893891679472837009945008542994787798678523600539965832072829862038362636324683085211176940503847882744266699229881262860868365957865551215589909413305956203053125678418872848263755102230206309400834739917644527194084954543710478761573486588820241166976687616742907064264431602832930638525033808775052691149799297054449591685683606094946992670326207604573420330908349362833332810262885523881939207165924091895292946214627076156302948508133714606102520925030596631053741645116187696501582528174817152402885230878696835755457009323457430037394789029357339059815543287398307470372669574030875961677401210349666599305660133368243382366339481330215107185700190070157110185015674071101854076255989038110868422431267103843731010468265209444175808476450839360336277351956253454316197909416441757017938842541328865656202155903504415714542835046864162867894428150182270896309465066767117754124454951865181581188000879241865018149070118464049503142858146666003918390530128709398130854930123285487612672103910500178003781122541043549772044388144514508348276967776356802285339539439931462127474828535307897958058499771094203860019200703990407010344889481985362541277360702806056639131380191054868569580532564879843822541095150971694323651493229209034659400851771100011199760844684749246015738626170695941642248056554473465995225752995224359740640597686345094308574024392280365127112414994049689753145100997363354077663110383944365304683867542049788288424204052630728215336746226176613454003846702279476791325333363614619129230292454416143717913682351479547283772071140400209426175138144569403722119402570104012200172218395430547760587713000192880995565536398493635648781667492699007000415341238054194647048337126994963077137081062912986023264701098009054515290932276527262807881612770932271598105724746122971216507471871618767049706474756084297736796068030325067143774776092253354968272838348138872285837783268604487073928576861171353082295200414355327988558112986007627763415422515810157083067563091972005136838117580698806911793078258146483425296929314420398353518057090588930101470972822049060282683658786708704581110770494313035641620454161274040415388196299215428738350083804594051967913149812228797697959239230343409213208341871886489464565957210211627438151745715841407017236642190180954620335059742978419611019706888645013644936787224819196989327866919294658838969787397565152347731313598831939535938709671794783361119435330611233727133125754197608601706315537033287418106653971839534081035162794448948724957214559474273612314488419458415864518113063538932352856666571953780937657663271152976891569720524497032790171072980695125556974293245081417564351923429898536409682470145101685624417509667367754085324852088100527911251023187848678420164131882581676458215643182211658535739139725244027431565808235089469901425237182703812066326930355662941719592777801466979798964510385029116651799788987634835099759672698368545777194666403141874932983998408433777030274696794653132978094265620103739368580148437547016612197387027738870712449496632157667059286677221041139221958505829114471806693705467832524481545514645567204009772455773546844045115923202590803687696530789257722702249222781136670517959296099525321796348226059503603519104205619541750227946323090307339622552517790546247935704192137249970274812640033111198713436937995698387873784811013526861358509877704674886468252727794540937160127295044012688945186710710227622281219513073582885430534828818772510460499832495826628309164232918086445583205350385124233051337552645154721832552089137731151721521260643312566118849241226260130335669024201540822061631729825206008580117155656541092949498029969524746006907412041764786486582612325223338062868597596974119190773579873343848619111886492010893201522438358198115343479686561187918495454539541380414982430304713148183310179338106584141400227464598546334349631892005485185663769347220498747361201204716246166547927838921426386587050462919968487227518419132958511082372648062591986517880049378389803704458938175723407305943653061629525803459141286518276655876226626972442790260872655750117118765935912383350429321771179954809256485467198456799077524676471651675945972010972533433304579288685175458043121986367950518716405839298125047424338125465390055224349553670860001147690690219421520084045872418247732266171092720482046061673766001851392715046656497882342628637032137940796865750974555756457542238339870502066674351928738177485098765487179509674032918547035049183733536493980594142966666456006270274879027056728864595393301844314500810460954300076562265705894712413077275541628286147221912673830064999604100157428702331369961702366887551772470120445653212692348066508227230916404512021842931830512204268063523456156069708981267251428454755569048733719275280253345716667886689703829143996025244261404568440995814557634118404570091968302371496706279231063977682049004554499935031317746599796194273786617351487105008202564919647160537255424880548570481216368346124934931751854250400859195966338182645440623288758342976619273500931195702947230851395174634875922750177772943678600110571978701075070762643399396378277810813044563308235893952874095624191101451159959140600767354404313356280547125494957679796037140276780116261241971190030147497704645634971057850945297150439066207559260657744361219376473300890204691235249187107292920712510728807306823453284798028652528949325793015523800655128711541882858225482782934345234957128137174992570025910422794756942573891003848747387585424032291329336009967603374894391868620644978884975649966081515120303917534434917872495241043958423836418404754163104739670266966267620749454252542711221700159837884478788413217100992118030046366751137517755135520967544775315940202077381926646494682942577910140015039445183566563649449055734198094808573768337360376773286057131259109852181506221405479255856350046555887457388924787582908127717035470797021962948243484707610379572691013997023115010854950419573396247200122858412932779253007433739487276541015646546365645478668601071592773186562968733239481370299713602165215862430922749572388939166749842049971715915888921328896418785359712552932976738486624791585895166067680076068174146421220257495829764082463232314063152681606076741054248924735189306893503564866770078619842328943822514595837707174427781229842024469881540602676740555262747891839033800403722814706393963983235502343969403357437781355125638416737789268832616667563668323074024577557572361971701305710556828811068273861426154341161107907294452087405797479098949528335543185595014241046475041117518051488597889789266985287372555088936464181132226946377853593109239717730514210606084881136526419998275704338465777576272852897393218401264740250248068185103534598022648651526019832773872474201401884176351064205245698058404973745143442056602475607361731622030421311214749689651605183983915654650833783104210853061568579298349733983437404064518250743284376660062167867715309223596425625427033538733788320953866845778667778478407496890328229310177095812648934062866967372739477551031119571567317747914607382685006204656108887737872017639350955923773267339263514187335045785303945691866696361093659587613300070740698664738436686861231820850565085642115195823670544298672293261521441069214657839426786588983085879873504347924880308639371258046663361535618503133167455974578907278001298846524295781222627146990201249975173947251803835478758777012572713667892168425578428984766727172517650801369686389665910443670152623574547628736703825894473418621864779718661118025182624652225373063139141889364934477542964878413777854285147985958354660521577182209562890742416519814089240956185449545815505049175978863261971010340381264565667323593112748918965018798259720696757241572616063374345052739495325635053388862490460558438850880850838330361959631620934901474351934980080633584493490161494248509867953714197982456175178534838579315817484427334065630146664420060201072353525944800719123354977730509409290114440591858793624322807990407825496373630465164723434908688499678132535188658629557805751243983406053624259163214253876995634112309679964911344426872074510675886609849220144788632819981528395551867025282036211473722509766824805339038001075254976910073238247279149524913118967545678598915897422115352899181991054998444161340723264684960826849680237309971685136614550023942951597239981373200334816636782153516290225346496075667607090604446685506066114142890878941809499374388725537726779801998742923112886644872303860545856385720073291776901854619109554767341544960333607809621465354013993253450034917506863704665575318709939553283209919207936763175938982349238738022560713775177624856711920564409059593230105154223465606071778344169063435660935114432410972391832652359414821823121081781219142917797861732150706522573470894708666585994186380874484965259191018338653605782014207694647875413813534338253180423821403049394735555359810189887842482536300776987428827402638134890975186080193781246904467206066966133653004898357462928018381377371085139399653837645197305335134411171455533813975800873928950736771542053757327805828645229796597531062149776233686463841418531796292974796307873898654560452774841445241892353880945851964457740451046246496099734224787010635220566724212439456854389781677351222628037238126762625267086447614276461383996500744288801427011926996662380434737227289684941786190673595915926224489256392873709436802331670309968941427419087678007118648015064618334061960549348722495839727041717554160880157722532554211538441368090334368291088529070085864565833443776869721853296621186321363034653690292418909753791039483331195037428137659051050953949443361766441009502732390864838578865988873598377717901556894932321282635626745925444265656176723169269699620829028451921825325346313082555601424838973308571970664754811006807325455338875013390829487873718107586013760716503508629006301004485058184753313415699826009883672873176807856498998368876968547198778251752845828827272855000880852099886025148112595083112664890220497228013411311528423510661042655262924409772106444186468704415637903960953590090744502989756014402664090441114901080864453272656229462368321247638496977727889378518217694523759548420406993715360332679589032682378407003966657028767973752094711695259227333706781739374965908568764504283748259658032233085905517199193312921954204317854083465045681246650346910095342384083283278844869087628525461680362605662845294493958157145967503297823154813837978884073631188587286072001518564429964923418198886052080183980841674996347395245445370189699376066201336820473208521301063302402089134044330271018870593814909510253444182801964947374114347258516367411545209806784139939208880783646732062813181892232035917170184227122065162182485774375940394130397063144354619707540979098800528865789221048193792015025257542659575138264783562721132338053554108208817729095876669464020686900565267810596150849037279242968307633036865413957442976865152647890122860165760646890685145359651928427045081911118189457402754367421823997654060068868368319657736291658867453979190400406104759677099713873411229716820067342851992652362424461603966872659407953255532742231524112986915916482191687409485223106373109596484899232022650327646404450000438808029978582107558982869430707870960481010527236381493040602139081492947113973410306301955806344558989177098343352933839338278073514703000173606506718063268614742899083244745977866615164768412884946340610216285779563723954348916481748478054235800586804273802149790804364949427364490271625629783771768092621801094380070172682627135987801203960832046856554874582877227065057574373172022689022240938255657678488412953399029548745185370897153749554000387113821341074475950986554081816222067772473821719054840315221495399858313832583965560237086071985647119399832832943146083183740925135005399726340489592160030947347073684888041200217559577174410977659607559779383006435705525651283924903286835909428337710359862020206568510580667119498723092883504337320520453538179416195688510263010141406096071280388482253391914074026582426706063190795217924339060359407498112527713575053233371712406578319942426436421719358117578015879297840570899546464984924135560294352493940662907896554576027504899660977977017705039877263913074157628489371840340493773455826115517205508893171008680428680168035865739315219871503936126833473250200150052381847814328349762528176028155991020252935694082091436616893337180143762027135579812861828527604589451665179790542267666083039558985751123759803085408534653352372307044072247490043243923869389465992369186529125613364273209987248700964560657630828642053223052361161748535632094174645970266321964296610415890161324540386160445646139185763550554418312030905361966784974351207656918166046288765356363937795565394909384250062636146839638622346376887451769094266144658801005592276459257530514575535967954487967439850647864895175727795961203205662284629643255306862045476175528028311300160242616633683947943613083575456721142374028908432526404092534056435571389378060717211811402299645307218955691411244147538108188469323667968810059358999153336053904575496849566899040281521897238905852466171340142376929055048491433312557983639130956284355208635013978542713842022922178427508988292019784302124043578610974880989492331177621827445519427050740241303097945525364022977631662680353821491755885797613627645870247174745438099059701706618521748636227666709595501014198847457663248502396080652200503241385875808355851567885043186887413075733110835116054310975451197839048558193173646691101210936854504078396184933607688624465172470798802287969079020880071628030145126665405095592004715365149914429791223061169297513193202553053312577685654119965162785550878297813653768174878282721580589244160924281684234695101953409021410463887724572497076722136823560906985567133697475984528506205906656057868676226430666607255534353153106714224618697851221978007361174780196873939512779604753161096409117942668804094509459996070367646722080144034288843999524170482488525822799272198259817771366539866447603758545568902427105597747546892365665652807552376962971243562629099495433080781129556020509770841669540560216907586263422648822852820912270841027867446092732390382872789520983721259812832904361453721066708857872038336908400766327867829168392930607749334080639225094508548380016646193115264341399478965667091623720325080030047941767606996134534880424870470650551076909168445785587376805441991097962034786894613946467238897163269799065549937577657050769513706632518958348860442097792862672256469559573985384966857845041429518974750807497943631078894014600788089440030429868235395076731320546460408817222350296806434942848357379959626193480746612640783997107293262424346670372778227629712576482235743147381104554468153645593486905469161178025680265424707734324553571412222937190444362472450549004886107101426025354537283993178495968420188500715971945979866035972152546766155854363546791591269274581302780759394335326970572871145647917337910305030601417944540823309824523551324571032523102080729435756635710840221657124257084282621890909091143607239761159329857723125102685042076418003677468266688857306221012671304651682576803081072524746773798378223628548246109263378895865392941558511144092393276869201659274253288255018239985108711118700543242025386937896906320211778571383521121968933548012929366455821702596292572449899243055642238805355337351117639335224544931759062452209143162460464941306957650398128337549012220066126442777637061439992440401019737953988181924168483689428857108839471028765772324149293648796773211412133404345053946866757566644161497726953728898357154861741060447982810904179451202307050254841413100868998743971994450680728168453981578328484576047736165119297240305970362387597365565479070316726528664372877883199707784820141191148637356036168534818730394540432862727386245334210497299581731414236913760374087757586379981488239030879687115165846804372982717166636048715328306691312904611489003830182087780799216956317398351600857679338877592893019198114571017223142180157220051737342256358636157860521677842267682532626003693438832146566309984051668319674523033765190859801611762195885231210892928881125238685119146879260605233549225505963789953929275431921772687715194091313201618240372733133129356442272444443556811764183689083890091405490607914966668536751412899083477789189717753812030510584598812101681459090357040887467582820877343927470722624158024008796598661347014595086051931672110114272587347615644133110222022385019841650507532488385793811895982446243851108847137600227859274075532996737666512797971171668689290477618437658114563813755332518610947410421680910611571546722085062218780376246852566772120436553567992535906452566679261527074222596548792268342441658161274667529341368322063071394252453153476292874869057787858029879860616712212452756424439164446172497202403652665095918381838074282339390590718000975048833706287250966034146589579857463278672005178110636878611411224800403496952628866118114466342843723354580678577878549923014636213270383167756343871542043263245441234038146584007720406566694281214967683267873077599516696337496432186476112833729461072312857200375337490333060810911927527419943238919352975630326782295491575328618139507788553162559318734644154573077535647642951191369546974049350456274965929722778454129950957159333952236327090292322461485624883792464218191805710231071289052817066002975860584460267983151534231262445629302914940257266576468369843516425271280600480278323579610021947828123327072937193038309075545809815204233015999737895166006011297560657809613861485414468274249910691612340922741152405799679689483888440435225383550143422002918943115338347463216411629916754323554584683440993382512296634363499439222988063526324487393947016549262342523882084582565030038812906317654080182177724569927961540539935198263793583444636763943096384050688568834593589141711153464431317363844966781826396498361082067677142443876157926154046878495389700855230365247027172577044635590612567852480927023065252616089636788339094688259189776210320806591027211790014496660202489446141974791643109001191888422318781821307396337817218729090796000054528023527300386154788707425511049508592027357400794503087357149594135211541302542132609736952916534231196941065615752840532262429011279717359996241961273735604135120664931911530303613828556453138915408376335578860669986910155741475876898310612980499355150998405643681108881145720410150885633561392665832522692670506877240869512630888419548859382390608094942203375653551311845308561662074526506629727785394779246773775961040905641825018421049956705649633702825582273890691809562405046587358537619033260982074362512642599595553460428058204706986679281920873415508638495379936348730199257099841682246636983435254981103676501664634604125439839453470175031895402374787400344584763175144083542150061215889273167057270436477838183991911301416413519331388155311452630066330742991034184025404962764270541274144988896418131534982869330496028500597614750069006365643358193716906003886349626589248716918689353801697190546205663912726114449994594106761322974632419063570445474988281580978240451244801342749086250355257341708175623556560091336967961825007181442695720148318732140696940096017495558458615922748136533448273653164503174003430471917053895583804955825045468660526749130941136537802291123233318334235573369554417491846368686679700620177272995741373138231376845318121915536848417256713193744856131932492142372089067917177847404023922753272961104669500727097585877910580795033145309865890603225668224041989750200811617563334741900989622070530725669405961617707557339864566101501218150638975855905640863907170204150058525727779310555911186507915486387484055421380469688781878228337733548362194071520858372199752398803232421447028065212055558981585654730432146687734088639756000002883694595699255495537764842664995093471470439475843660834889330368808489304463817771386939689810846373606804238325036230572146869790974882488374119197344156982305738092397794752134224722205151598887008426875005140908508492783824500522674216025421329200997486713312834786762917224645301851950189397397938604437436491106598821570101464652331249539501538939512970969145189052407871688713900146705535782620059641774802724400048636782847915149877251265264230697152498511780365452869025625705981089885823306785643008536415529566137517059982449267648072159288545403073463025483956529589792923524750572453289110208647415032025467551952019997165352581428015875351457962034250586315886807674639015323081007852772938457443301176415094505366580174415983842006661640961745854749170048319773791069799382761905937001073641124402277177992840139887060375883013497410100270727803325062215382335416404740665499995188161270375335041869468976281246549853401165445955236559909396512096534007662555594667467392735686484717172368346870556224475002845210724224114301833085730964957354212698487666374691863395156220277294634665283394725044241809217204897236385387525638152650607350183750531280798551216417630897532407990555031664818530338098133684480624295158698915979639480461226831619361408067100826564247586926227585630822845988556914135485045700873605739880383805319469666165040829035136526910981133840265758192973897788439154562262801173573459783178602464169490735109600842529230488213721327532145172081536193657716281328232485907455062261235933003248527672671626637014163876270174290565527602768411321518633478991129955432685943537683056195919386210415989663056259526568009662904373848451441582746260606202138932957880653843332676719149566512380548935808814144011931217949885002396426634601889009367601183544933281490657070559926514743416234359040506400374711127656976866766934260489114978213690532628901158339814742338883831199973170731398579999467143338994613069426928082714410109766849749301028173923506586882272459619547623242239563894391403354335371880727731223723516531037047800390698518047979593088413643802398883301640566842164326965262352657682190351126324040559800684049046353592053024334887879523348428768449162694092405415227453143300470536070518866884316546557006913558237586657950375275580938748447946637513742784516058423998215881556813518619675450929266472244311102214809768552629724495178851419577368222286071530916239899640667615858335847328152165722467609651862444067561575456744538265376019066104514123976402264902182310382096598464711634239602407293366188009251680410950092742290122993626542972061382205098220603213205005285674829282965080944432443730936960959798017899827869262006436917582887114240346922859154578310632908157870377103952952572633641757985806470682597844156545407491244452245510374351216324541044046491015507620546446683932368633623964803577605904746074867337766732400234503419610113969374746865085587841274008244301409984937870491898258034866685639765432806499423296476253620821531410644974641144109234020986473666965733907420466266917952314569947394747822304365935042968396595038448952028588234838539710147026504247930059717160955688385434635845819571395744163142493007559266564009952907188453578700150112248481057321533011565620136053005734049403512673280236763824376880392878871430274144643395963845944515533983906753279236630711414149608368396682727479188477884353515905049439775629568790472028479217424263319051252526029912235641523668472951804043305926030898702986137741746514072761653910707889719800321956129940897094198500672397901486459627056093533864144876255678370715332424930363558177398141944834906589391018515429381745258554190236166283429702858347921167495959939646169355623566453019605367950019628653722643023174740017986168957197808951530636546243728087534927738926036912332093840063433944075182383697872611342350232129121385216363603225017095570126673352106121947745382401435446170987883146500745895363772129822046136268163490352442541959236585967450369884857374925326779868134198054471901174054258148626075231731233640335340332371823813001593779016979447921796857169710557069720181524475118262344558072133834277780883494414147454242998820805306183185544533223123694766552096526008477987225968005295985921766458937495045913399464528359325405565933491813743442097891932808228756068977256049028198551122450385798581709012354714972758078197055547807597247455210537985682287274736668772932020224040416124983857546318935532970728919556565135162189357555355656937799561060251324618565810640514777529751143357583786992448454079024931755195709868219513614238842529006935614945169329000260524992244433749799474007465676945165794818424392962317740316191167649099444425037210385925332168341037107726552618850166288218329934966081262968248581096740090518015958039420994722911593362696119273764005825931788661389227912672342998126444020512465167276865335159868165959923122345496812396464796123209172498894943183638092409120440053249351762151250689306971915135699979537043359256578680339618128478592453059154132892525532898600160180311040401897964899063094195645789827069465732189834813172617175353545581559653275163037298441200581590123485899727963004842259904824494516586209105880782077088681151594033477931355243746245463588489554665546907002796615243016540858557574198462237718567664445626938402587082834153430830368989916390336682884434716935523964630022234198203597660319527091517014753832034432447117906960357040774863900955862293230627267435846263393988529569722682022636259521671227910198962200382027306136756220077593440458963774543849838281134506285049350744608345210498221765280512967727736205722449429549671472201603926696813080662317932931855288087393694375553819313985767480119005264945786967753243972663470909625159816434225983868260239489084672788555160302691596322177213735851841288758162144039703605013359793852318420383180166061446607517308782123375016416792537041192648517859167349569196600564541143702007475427750175537429772163427234164113037619110957019097866786290223076591937616182586624814258875190810183844121336730978621337842909237476406988020913292245251913447381564209251881569502382851664043794914426556498645102478126286203521274576421327654294088111985673774805858401868849036674632058643801852269569511548012539611428820955030738345540389504179812131034676251166570916022033345579326666792840799436920972758714805339494543169614406882817064177304330861376155449417859503447460264875099311906023706507942435999970248618906741605827593124280631077966820493312623787127825426425080992576159972299213229975826563860910710429623817292646902198365879457876092690801559502175221204918505867952224170971816567610481186190101162162416627133853001391482236819455593166446716915393630114553821144747245115146217564310285195078750368277106721050849050627814102381076227176946591001856016672926266806576484368366112727091426167956713595246852357415449182048744295973505811605271567626719434298473196841434859426256300479172820904411002783741724705657882228789098191111751935757361833010882030321407716167525416305408993116685434420833736012543854120548806740146411325705488806783139132179821300237627733703309735946504946003510885661238692557301828573370100459411031586828397151500901555137504350948208339337392206066800443476562296804124478609824223067122710421616698451768522139009573986626234975492997239101114225258553591266642638898780726866541390795322314990541464945055151397499720909219001441183013574997847195226043710028434259537186766496058718476495239167261149952824852228455767950094165016395514368335252556361882150184395481969859986677586988015569107811922541041445411476779532402271893949641763147932877868183719625545721276113460905059913060346843517557851879258496709122085075638306329493658894661911151245791932315009667851077559349442382145246672098819893657812808042317479613268215217859498499226788984309211009792893277476370912870000493140732486775633621198573450062718992930248057493172853507695467733107042853314770507102803563005219006657375066800949341722849813163716625980858286307076094591307974324924514738790704281140446746955282489730503414967535878262009922763453662041465658940258656690056127747741845897874591933695561494466457916839482489618029168298200367549243561745816650776658620388902984946651972893722671669072503797672620073217226032253872515908058465833198992015718717710677557269955155914605226836108268509201784901127811153556563746442774935967679690162551199843142439110900979345143868862133203106307153560745243736273096908420684749136106319560430037996934155383999393272928451033601659566320904755710907069300761240676237742346978975980689062993235923947529714049690874392070477680806250279338444259653815831503290230298954613883432894794495105267996699970019726328788212330144650141268391668411018279276366482437791835575672861937320520110724654486822882577884159242394227898878893357789485396811133944198923619681165261491714892916839410789111563831000822184178506944945634556938560404560750303977377921460496556397386864904778880225375331636901289752035910742718834169425858309485333218140213505389388568391017076540102783154305258688502655810158892840934681053780988983281358121312325731259431820279914610371487627589667001119196894610750266432174687803483025883825358344959144186449769311522012806302571285554353012187929201643560664950688580740432206907915332036147256938912444524569953211648480574396534260942434610061809223822522408687570493846971177304493873478945320020652083980010294974605183085759184390414199878262809499682851612463089426401355548550570751558710348802011415981212751754600667782678315107382266618071576279246940315225848269569505706903876521835545885136613253255271919729236895407334737067675986183600003471521675796802700755683526429696991378495461781473570744656111542116811786219240746489976512933387206383904013699956880736828771619496588487306185056763843481576958428941731306415599790259597008553326585898542234912117804349429884910509038902195702196061559221536072674801536062797278310937260447259442281870521654180621926202592039983900433952418860349867974198305128539407783317891502163786910609049738638420720887317151544673685601050641667260253391911733161281665617419129983942748476949418739927996244121239468325651680097024359485917164991428517904520983749690049491663796111860577273430184755903873125273596647260817795660701428118185563876872566532792051395298373829634315777856010195896661706180257988075145124674309031040769124157679266622479264257991261379499451908985732365651016874177004859945582438221289058954255891120228322523528638047503018682695152723201376024533798981674164113673315653084378240678155055464573433974719731915883619057533682754176799200915404645344061724866156779828667786661586714180019893114582236229680659758275670680618180670759646481244524486235281434626969681241564087977099102966140749819964895376262771697810213946600225970926854074165120813021330359537686078858335513643099120894054834090819953577880191106680268407533873838958596092786061419276951824106214050829151290684089337675151058496328568672732552882633534400059403113588130008333421590063172188732471424746599803534031632891249911411824858219929108306218275493117465904525818324343636460974389304291824320910655181469220164233023454826677142361459128039669073153534662753935800469303067041438003198090537069251232558451496416757736335371271434230024282957705995211512118812642174964945296335638497468599718905376913695042969183612067783744118138357055155200223071592291786370148295621438125279288158825962750540894226382592668538688502875740061499551299323365728230339893050640213092367906843115279886560354169041238175767206317058471422569798177957113067623964097367933145901270259754974035682321129582033403821147968804190113814334290234451889156293645866969957434456982880453423555415633009696179836772535857064383207377996628713737569731190188443495102392840319751841419825197690929886735855030868076955897626507205197627892826871716236328171388193488403203559056814600669355014402752284487596724348938224128131164421799893573178694079928216503502558156182610451138985737561458743738877461065343854880941367304711082701902217357496191616419815477250063106761504235216405311576714354284223391095355763067680476435733811003524934852052901796861987762698685758220041465309915101234721000283691528066924840223990347302958859933822813328230453309569066841092560093551695919843968628394335714709058515490618737751034717391101392432199576557851368073461572376703260246238150240792652667925654695410618886367388159889759084500627564703237762941938430927889072808180135303063307415529279721103699105798671481572496529819134198853727644061955691687967601939793969423525805143345282650847955168041002228406768805485068027653521317585217187239134713673710220486993271591015864447945147695792439283266432702371798558864356261324136265197407010494406660116686949792785247920351339975551529825111330455335288823629056506010164312493053550186372642773707394675929157800890382823669476112426846680375818966727097869664354114640453759034711248844539440533852681104998912105628098382256583079517967037653857297804325834739722304124857265707619508374557960333579033663258339693683086995257816623011493694015841882506602215491016843118646144172011743524221826265836981050742866818263312931049224736360373030509788518331602686326924341704688833554137551278244902410681376606432752359667804976412736383216344142436263714391222244173120465465130024501899801367914416468883886852170900759691440100645186794711001789474404741252832663671310290374616030161664904026726170138797844870996762368391119319755615918458527108003412299435801780017899037131420021083590385042730799254206947643643954918939186394814322441376784233138764941351747080660391027901679069516962409275936202338362199907421714431757245912108819688335442215919750531135210452371234124397219175749006786525658483250849893475939966649409810349499019267669257849958114135093723860138334822457424734942391687384243180988801771803127090848434201683235721155411037971035633668721132972480863016660174990511434240924322318730081972803192254927343559448147204433867879794932347125989899244837868309074597928012740792084969572494256669314881268558570524096293583466480910760342944870809131734719400305005882797652218980102226465869743466446153180808509746368742328691561892662889966322402448697958864890674584987382934208718261981918942628905754021021741432398022771985875137174237115838460921303904727031147907035231043867163650275476768471538398065313375624777859294272169401026512195837354856401870318559633839022172170615048895256854625478975761001584996306705893651224995439772304436588285343850888799035411234431166789004043416018971849383630109608875904627270787133550703194174520447238703480632151847321136304019836859514202672217778446401544110575665036620920161098434718728539638859870553517832343368489703871965338489489635614160020628084216055285742055007889231926537857193419494184878068849934509270959766541742519188178967580458759116330884359475287359639697811193601402984132812404507693862204016599491597964381630210479891063217250600575729943603729050613370205474273529278408733531442603494846303222475102506994565350368280554982800936224182501548801920450420557392225973595038142864173693986460901045138584311874545049008593022821176327909781753182954709301584557960274479950773904068107184332670962633119445886446541524356557567186684014084961596311331226510678725930580643092866064100842965605265281392558258191072283544756937299615135474943708091484660532356965838273316571647559127345422061634261499370399749779169291024186003423835433069470283305270276737307847077465107435100494860851639491955677447454555686794221257599120020232889997058547648475689115424286389823170751678467887764667584401040520599473194422921228797434627377573620329526748284371552127445974921237188179513745135914703539761639941892993001174176252159189243383183972852055426816266331108822758497355308951289462569802439640742899531356530318673658552118593087140364567677827487355677877617153113199050848536306431064782293996122304138782207240969506347592416076680325409722879812153145949525440839381660681411144663155310357686190338403659759880408313843026816378953576864932228077012609126032090809120753596547303345182835754452211333007834188337914512304450108018068575176801335348471527253839465003932113658092941214705223998239805594321661345199472673624816137726829975540880675197197171626857390786489242360046134437341763746942889012069846037142222758086137827419932718172592235474260670614007412338929101888275706687600140364177021405833579037145124262470822098128494992617191500235351431371799978440930231562582273608425595364446528683835577895940889543187187858675481758881781539648514264829624392754661962639621790452973947707851906961302671406085445927677008612977711168367400359615705107923344693575962192301953569924491820029971362584803562998732929912439910613504359803235597741147815867268551491169974550548644936309111296727525273567964661232071935336178377405718125199553239166443090514589721766257225311432227183358703591188982453788452598824479913468799569504880511015574301204044287657878334147360004952304452008586523848583926252290562713161759448856270505097064498938922160073202265144572189469485117639354785958930373169674141376668693807715350443057667439132863176564611915842226236088167278806615056059199807370026057357786584566081268253966496363897328630081402290466290861334028536932129533187850294673247941949808630888138397535216326206893878071939623360184941342406389561907971049170695671756345580669780630882489155863750273641792158595446670127726919080535843207558882644045160734372814861613290330052910425660340346904441057739595961016227033713530040733534488642257256832368283562785351577545866700036900764684273737132860441257267749877588080365755268929793864788812908769282971706431672334888161885628808429060587496207085627947349745091751205051182182180820772326511241689602912127800203265071186901875066951687187764600070157762090518583641667395360315695591766443594937909933471153790200989323489003823300686276582034155277652913185138416047863545633867726831390618472301464270749583958044152989548344831921674387482078663072533442329745036478255832670080212366946400464661735479061377539430369694342511324672344255836708388285264539261410509719601306782908495415686097079188632523416230136310832617083776646633786371854181121793065403882110156933902045544725244981679918353810183617427569723347324497698044680777643626346173965631302485820235450721750572241868624519555269818135619147458730040331172263284303460252112697053897080044391935349540338236341999718588271542133487023105474678071837633712374271032860295109840556707556355425949256018736359821523895474561700579159246762535122616740445315138128701350250382846295969700842383602134772418075058253936405270811793183801034654660083577502287043940116235587875541876274764160499950181511592016443123323404041953009132731448496973368123810491353715636843445252581864348896219840570403492593799656240313944358476996157110925616019274439679185643665436339574535163505983943470564682099814054719371071030568237325351162195516039456388410939905817350420001491325092854556912844153221035922530770680117026054167590801989958154561828709761981849482728010306382002574374357402874279285063983082324226863658080033998499550667347987146622260546431726861331101920133198777016362497817574760424358833679612051272837061169120289061701368870517458505060511237728639467175667768062475350284512989888596233783078468339327140987011643394241529844116480704452568536580661734732494956733398569801647064597252512330423046947616846068701102661572747843347829006557668913362715091323993584604076338644321488533587533363085934761051906912219635256537187473110213850973377684021061001019761048733589956859119914548182667784993595359546450512069772562638657659193977201812943680388721953989174643182653455309049216839079240105370214154438952197366507333211466511568182184055679714765322003082592189031107309342532947613447664262922369572208195029552036800198851549342656696718547095604824469076734039205700722397162173129903762606918539546890275414249253002274093319904410443321773377237447156657391476914192653730862075413134033445833336384513651401976405532208522748630191188239251529515380306100459533910681895192916770693458427310108840553108396334851054646184223422356488553681808151081075322647017647135403329231844306844081881293535950216976483510228219002387796640174935263092303001744052655793038724954801030649800245380567545283214186607892716162142278994011590722280522655705944184866530708939206809918101363187688144174376321835215317706984911697314175642202589981502276142022001735353173555557366902494016335199014110242390136191504322423291512477042597117671730405819553300144787242865759401262644331086653892124805563571077888186978738229327195876615230143309426858246756010670479706286384787404675156829757283402351393882809672934721957144543681720778335757362677024437274329365418900268720468239740064328236538625593479250244151439714609657134227409684300413922453899578661811401714504396036082840521235108155611956531125337960839815713628363282165694724012911045216126308976208202853472057753004148852963507424351948667970053504250659902620973108876051452726813229242608862500314149382106296521136039461370835323003185408334537576885842584580681086414054464748970824458742727394357768283780481146873627153255098586393804204968795152866338584895821274501241330027344150034742316145442378482464866245418376967051284810759083747742333631458766092527595958788864470935831598910602167977472217259757028215125267500766654268913105951424123338760859294516786479792970599756075543134605358147831439630248014097633855374032081923755320749836786507312592488602132520093441833004256168600739672948457699212973472486863965509849526794247890533742399179149658245644543070497759652808504477808668355769009387422363051377240592175397983651143348180639055225213159503672751512827799078029108461501795264665933013107408157001522897400185284589822126692157321355672010105228031804413018510461594200439834153561931265920836009471593631992696077068521068090381317858891661086647020428487332830857605775173080247516024589467079055537289132225034551575773229740915546757254091481922181709723560423245648944895072051299945920283398417468382357755295915952324353489097474056924803026251317089182502154516839292443455823911177815579395805314286155817842545389233288365191050448812397513166258010527499751314882878799761928010859928581192739207414018802873219986842496683817039355323235474763074976986711587410162378608466282072669753172534739570664069072738261052942423853354779808149479641593334061389821956704756991078448306486427910755858118049106719919990034729827914877316665930153052137948083412702620575155758351277692686079480522132300750924161602128206626136548272766185955588053723540877785014973048951802611574161565890342805581235876480472669238969176084528091254408815574126688336377946980037000095612457998429420250181059713460819919522203204808159386420624095237198880734336171348418864854234433595004498720412030069024197724603389285735324819934506224917170769738351498014477375870561129485179438678824680319515241309853125130623122945193667635087825762726441779221227629054109032106816598964505979435731531349041534587985216489509537209421628034974270745290741628030241876784670978570490571409962748985396505239788629859539385180873885963499240472834407249932898170280776827795022121373054893257221927259981022244415206019229943275944289059318606050106092628562569230472737137117282236455014992284444769599516214308991865827197393561745357961227831123832846728291286551537017153028813492558550328040661761859208308913946098841417405049513131047351609808403637422208277895791839764363627103253036229370141670197901885454812320722431421757951095266114911722007033029503664276966912840050990470721959633746986423844609885076221581505202096191056589257530022435887835762154272786602853642750029054477086744750274282143423019594568366982466811774038420122697202547281796888269057107470091061776891849411676887398128191681528496344438618016128740507247123764673203588390225810302394863427341484870008269586953769282320333917623412702637735880434079038266573359674292515988010766534230651194362558540052869936973442818939058688437897670090054709815476170585156932243054317740552159140925821711262272454498408212360908845631946003182166142398135502956877334938906248566300690389517935816478342873955172195118312486938772902624003031838929365419098364631624858660196410941049214279668758789024074502570880653167808401298520624461483703160268774667845120071118887682651948755484791472709827911957326351440175753110520561180927372401607660983590668987211065178058876057272206899127181143099549806342122599894326333207414275346454214719895332236619784721772607430457353043928555316024693465775927288326546474866846900648493568513916029486735507723603093788675155231924235699285879072966997094650951196230664222001112240779037685653747412541022304899440646132143619788848921967113456757833837825530520023613765461028002765365670240404620320703300981218559800662057587174078291425558976053619796421612467441747290330315513731731775985679145600202726807220660667281002067158517147259155804405789318151631044426385787127055317626798441721796880171823341181283702816513478798157247139563993239421955697496471570225304625100852544556651769625702509240805177103442634902983535091248181010877935019455978827409356516254154587543823329551818273677182039782600540254635184171093132268875447674979944827373065708798501727435529296816993405938282299115153090715269089189578592724035751043438296525510390236838698820105097212727797580654579315530774213187319757429923509910979348392519949871646425972768689973500841361650866090242211690074848635208937715130706390561894596306326907053673442034117917905678691719897377144004191304961864956868462045041984519121075397526580867633840028044053359788744869957095642082674261051401601116643689712897535850360472701943770920673496565938745468366658158126413607231455983876536289859698340561306596644371704759445668551971300138921514560917283230126955138567073643826331803176648210844253294795423960351935016327491165446427646862514434238056877647387912914632442271068693424129626073473387230348090494043118695912299467914458248093729444450116454440111389886045221854320040467269524013632909537409642863351042764647008219555059260134017738947351290173644165466321480438583968383686724531879550288686684662705153191488598300177175707379662751776681278477739904991421342032889575567429454843646252264079638570695650821654660160314565166238160672290630135214560091739205323004339018219175589702079566387067366618386956769940993509171672587950902778993921397363888234893905709948154512649635230895208968103526069991416010773386810535435618383994600223048949778409359667396256106049390085039673949950479899708686632536958303407891094646594763692118085043797921301253819394511079868271184200111012780202881391357467412461743852706010948208519542625517249002861408735027808130569925617714770502994619942354620644115812294523918297238493482606998387604132754402623743840732147906743535795387046935482269490408397105874338842802736817192011041474521259941975930412175023291064238958993545501681186638673038181942612904613640023585744265614202826676298422856673239117907482971902604604912092655391810886416122059137173701461441514760484629177295180103963445837846907381730539279275170925758562207326478959402816622116922049831919500929322013924242610446914030918700198010104993031216012207529266427518434321043511392434396498591211406212253802630257358463987091325850891560164457723060275429514816834393513838593875603754456441969189233303859658715360823873009548045019999894472032772450595450274740556503742150708631476528684163577403239481461101089801195475278279996262711538565965918294281582554802921233808522346155977596273995239847461655936993562507104276923287368586097137262730159435045207055505356521301686977994764799447888671251943704424116464766887524282379370469328031890635678271607872314856600209316586721777886355229795300136464302656011424762645045593608304813499679117797885037220983725691245442920134287649548844065794804734204766352737431857085813859792122788687645968777729959211365582959510340068945261383335453550845257058102622323658459016438439398824948359185303248555478395160064264842459558145509468636335600703583996405049084895311526368475098540835002558347471959397996512513710391241580973869990353470533848571430254215022044630390533230730450655351143548332846771687665701014188046526529443154032668308614007623532498440998569138150714350868690531913011427533024257442411236362676341463523087286644415500767773209662530723812891059473852625821404533341264222727410360548271030206025556419625402322442292528905455929871747044901520968441192748149169289345355519217649956025864382879345428082977507241987708926878170012108678163420711590321597669709105586834868454662182419099355234870972334296517867839548659745607218268266645106563231999012696636284610023544811701420698531116610195303967904153548279613544586924945897589915549033819682096059730746916725790313963892225860651165486800579091575042988911216652129285359384278428103754723119486536035775158895470469993433902636021438286831553474431113863796859838016931598194032329724038631847986028777034400805442087372714001374649897935047244266170762252582516166161471282681675813497504759142372501008847985057729217194509202743074678785503235920561354293622853481056655570750412845495507843957971638305484837829007401372682557069545643114911675013207178360036261907016106651579740272412310054129377858030930621868417339183216715583872390265445639752994972527244695464029030370072722267726169629861764324303628639332399100942963412375741730226985127932091938216964377298276303996036960935218214709374839706290464897579900878465572387747533427736962618449033880870756443553056523475015153414193537867194383378139449001677464879563538491157760682835933053654176841951222783922044170872812951009613958334383664672610616825012155100055582971658604527114901162916827974753042148806281923410261857672679026734254534767879566771052198328590751630071220197213636234193884981979883593245223234913167997226650052294049972106907802167692692685508942459578501451209941835344937049288830209051800701298125334129042109933171141952632054287298049584208855813715282557108150691669748254150665784674061632127140188799995414610534568935605097536915294684882175250681182279365504593019090294832112301589249466476231936858245966033168650027370123344220528017238406955498222378992740006666708466766914842244079056957455309730761774907281859962587708473480234756426522446867930314209915401320010318319743863369560895314464556759315136074340759616702054818597107802197657029912879329120203096543009169468991706748813926945851795986536318270573661101895660643711280581735744942983984896910473670416449832526630999355254752192155701887227158308330302722373662911288214338636667547630714137276785929587487804612334123798822915398690374395340840838297282702470541195626433722754480254792231591938764000337090000255147545631148295794548449800789382600204441140539503564279870327203295062300446322164619301549815021333838991781224199824794607227932771840834255542558209875266276107762661874149345556863393497821215687403836659181899948675216895049227518853119548507707416898283321526630433830816620266964590310047832544487917979971298701414859066440795350256722948668996693876339675259624851277889602835083074381782655566693364288710667125442821443706276205853731785284686849368967293258018104526082023488279341371363806072605118646024772494194765849715333552993310175716568541161492304863708187654050099666263693137422034938933802891727103224428596260118224427041478200098774942962164232440146429177499284998523381898459779042221059752958555777860131570684002006198708550861220494451362988720963711082696042841632997375160168190725419299023863994554741592259591666849837453862189694791174194540547106002578364221398268772088029537879772956024311033040538431539240484140645406331600372317510133633117073258113027075687200257578678829608957361929546797358989171238166662183113104523667008357695732044720503846018730380598639006863225177314295343489680780860004154112495923395498178339205855205459097971609111487403757824088405712731221580266667083772038316285937101893549792849490006366198424188344000603086703419223633943994442896433149018992498169723367412373707898507471321817281859671140181356187200699572783755858573393871282911240274923735389172217133391238209705627060678210206074321505404613363700337563636778723246741703154023315643967774037492710447387798210083238584450063846296083940696196549674550288186416390318065021165466700781163431037597150576818015124084966894150224931517763719556714642634858466126403824419702592464689728381478384846473792153520301142979497667767834078324166331148052219390360666675008115502313329633035781181618647119994225793199017803444488265047822773117707184055227249683855632997525536408929839996697518189124621377342557493032348156848201169509434871485711724414736784697634703147996325382660367780329522101230796971453099512982629403122589983762945119939355768551963469309506994511412343463982110170961585410560883620131367723326549538486524593792060606389737771278275967915893346832076837739335050819412881037810898774639739180676183501533533976742077146328790171694192275962933436321301469787813124497500631118492809550063774194226344399957612908197314583664362342030032931139532327272627452823922859130547179609934912612442841188497982547430765038914980594448680494738504681345174252383233094474901700328496742028155349432912320241920364671511000815450830275920072882988907499392952608999996050598775272563540378858935336239131013351148471756146636862613856434841659223204571868514446887333987167360298676162856442423521297275805605537655322236784057084343979985396898545037556063842833891255921679955078264131925547251953617225848774688389809956626282836364405366425470126852290484009160390992870716028327897149480681292283177988450099080808260557392012254318834091302255114039511113542396671790193389635559693422797046195720370044453090483352191934135921659231116324873257907458737794234489848319089933464892104920334931754445851921196136075068423511317257185856191095822109321647811309158638731855641642014768435118059610654384208364614112209206678340018165699008437715996907254071394649916608903119767760117183357314851951596966546398372861841409592838150174747680320223024460495890675831869303152825070509677958903860988946766374714009402755300318109186404574640447332501077789192420492981103106346330219568455764046932554996223740409876531423319298424913878824723958150755244161647255204510627879132455269657019164020559231452521758309933733610052505367798741853612281326515423571737153799742640229550132702876002011732574877443571909938619197840083269667373640083139509305159428683090295645843417151882060878392896238265770410888422419161704577959917574788294580450346698788953048051323575187526954901194692367048416652334305126106245727752931818595752104959572591898769942090635963907270093436570961273853828410284743849216514213783272076140174395438778298608116229750775622985232546379522628039377462138509938497390735294602622184875811758846025792072318575095797538831761179148878920286055001410079018882360606075172150867872192340793497193942320673493579624543797712987329782922879321802855887067323210693871947005305100385799410344522018194506611926600636431320991530279439132027571702586953846620241498551348293578020310484687850354965913594719085933868178206676850491473924975725540784520384091792520244152123253101227087311010816828805560794729957549509177641864117869353546448708371089397825279045105629495057936257210087763411959865980442039862709890706760806633689997487830256138844494230750525954878862588642607103607166215212242806178908669476634655613726169500497483048063559102110297370249514916736555198734243042450287604124601679126105934992619015780480380454969065500763104767279137672713789842248918592850459765959036502890099832477484019425532578500530904495963754673213313616002797162122106550685470584678194879336153927277989655043476663065150800143558581705984577797369873171731570475458742735083006006800706915977995093843892629102947632670110457379599916031618107562320084823092256917290521798665416697301558977374632139964171451619656693054449390212059000163476986495624273264543576316151323390894284878518319927339048130163363749654934757552200734410418799501985345178593769697140582490627977789747497516675034153237033376103218564353029704097409956103315882180547261994107870189438599813446656078200014620174556454480219669374772069149981216803824463080300532295203945839887043708074152834105566902208391625576758843558684581048845432600335595662318443169266476706058882274622378749209838614049470432629478434507387766894297166598233637978281334683087819545154976192826599316861613388640049828821215460168805636927200954909020043291277596621268690020208807552850152726032598536334614403440528588637851817103918924511400265666064670802314476001522651620713603426624219874305867053741484484917396482656067567026602233697267608584787748405416579250464041124031518820114993820903407905102634751847855816539620263352956437526512321315255899300586995471160742596223579895047155189513032243030504614088246350871910302285362811750122187200089493226199839982111374529763388554041405800466161423096547776423295560311545989528955556914262298644303244714565875844710087843119149363883815654086642255633887565039030715798965054048627298480943755172002229557978519196847739892644389127619677951376157488190114557232506977045955833960826297805232731891044505801390558969839182046531088449081029985704102912417296919884305020414240356931987864714081135341788996525118067659579160025420913814580256779495897527969591476551422372493124270706728689143707738323596444891916089625097882642313828325978604158584821047941622830180648933549923378774881225016546848770413801378430627639678851094364555046051541027239848758486165022987783774643401518166237500857894718403037126441103699269409107014642371958407459555696746339997197985917227712029476804112237461184990773608680465203796128595990636618196952818611380730008755283411503426522876221824960303900647074130629316541234059273580331285996443237999069739462836587151931086124544275874660288841539781549124640754856225817475530690927174072809637125344481380234088877199410563739412178195369661610728978865244986072078857801332572861593456829985005414095746100546312911606086517368108215101722897388542711288127991248703326047481884539135203662702748405414875993303486033545790687238760393664784200539721298333223608448723042837813903061460015804517248307613630652903873479448672791189983439793403854693333870406449688032112328282541141441957027516196228772206146993426453120124126738129843516807310762889489726629783738875280343136185382902068333000906997075207106764178410576515556199979355971705113719879144694432283188649047047018453109113532789035347096526338287402718915022859030123763067078480916103795646957642474375784835177151577393279030432108756644391594270193532034522770347727308462992860733172421316992946536493509400152063611938457158286522891639066288337218508805892928735518187619563013646644800555274713830715220562291483379090447505492181034482288265926448506233144638327810676019503196576380943834403582916524431545387162579789460342417783806285736116956330740075257724302077254109930453671974357755116218744101322670177526469586300917015702638015513490358875871328262045849919408813703951056122043320301889034653162852128118578647326304321881678241851775826871163719400479324756255528863204117150754453705365018074252100490606495489533676053744340949750118381836732495226398658150095985347566760625343904364796107354795702341179581500963646056341668205460122168342131994276392064744462143782762343416725041579570011884750689243641610785455294682260266354864933640494380318612979759867940240118898349256294666361698481358901077454093187872583630100620993002713267035816341366300033160833334267870116261275542721044353029607394890354998048061510500533905043373469567624721855927266561779579188321462508762677683454784134807250305047688610934946657434597424987281515100520892815223103603493862099876290738667898644792633245633853518442085828612106111921719831048063703337849572576360845222450789736102132664528912032022589973204952039825587069541818833103498649193279066562820236764435979458354594383137568240522156973676904149712128294890461798191457754018481398894356232016241087124520451824078047648012093552590431061113804785169481640991107458855991483582778556517911593677174214338247125690230872190903759883935441792838363993892912616984643559215396387360026196222976034483758670020324037592523410947433774017700234546429372743710310270731958022513614480407340609880472662615768710818932502590672652220801964234428085865706873574087381018553352231486641477209022357310290212731190568310629060907226358097016713741881688879626234956473372092810729879678578812007456546984420737341486003048305593538548003579415651477607671788743451021236348550281112964369620583435399848357685577401257328740444430994731936081426546270647430794173966472233453733600605135792337007826407051087848206514639492141329199209815872901642202630422561087916938427317416767482312376414892645984214732035739075405597615773843676484096355280667888617073713188084794570748429722719735465580623868684355048925779282087957643206122449055856717429385917764121959178982593812710048684809242490578464593465896078564788831328210250591885528237186077894985319118801123213567197029306501217312276400810549227551096697247996282868386380489290015479816547354056679545309794503276822544837231941472011235348681323016708850141564832532036538417377119531629804761089499481844607273667694163491492297048891056204509084869914752335394272265729864297092474304391153026011417467346887515121898128858669639777001245053534537670790841948606004229805325434171781362136859854858725981573198658719240174797372217128280130730754410075963702058626931182383448728499935920315114505784383127005679448427235312813833328373937615138107104334743641757334168040466773251598771992441549822417207219464511853951117142766436074780766073802956527221250243284053983790015445260773087622424087188903523029205158041872848029014773291515277510903604531126644593359179491840071772395132680742008162346367153084894486235163476645906967323705126819858456031272617475082255922547078387038984479570060878756120155142628450011919572063385230250860716342699166655060581900035043536290042256456981592250260293238214621207338111453784170502401561288307535954458457430315975388993477011014138831898619516201835874722180378493784376515921017806698709333131572499355785145658182785520203359687582232144938427900304783195484397105341061332672946390794289717393712806308534351020179810630351364023850496229813824667125366955021792991001179569311041138391196014377118082322097399316163286747877021800090881018731570289682743007065469723343863579439282011173213941283672743244871077335908748120544272979500212594132933844457794641549670633629893933662594726386813001450673524177714737981067547806667542822215648368556622063146152723405612513541918702253190039034767128098648863410549656750945072447795395716081325105539303505028928108937651555788766659914773812295022117967544057111518745607452111459581845651070932241567795743158939633187560241390169954645940214693573875696180457305384605992063538237592394948167117868463309291058843228387432644062866367645036145134168879696292897604525997112927198224037087562951938408455503924227332856062300898843945165412296288108513955253391960441475273566842337608405296596277938489376941866213900507452679377787609188033718090120537099704716382154419380909466589222106064621142026023911625196915125450288952287838513608119808860214319499069054056684429993790086332700979735050853512925711836436757264807079876695229906802485066939050318097248763035462123548496632256187471741904303174895454703038266322522685851406961076693614122709927749690977985893006289759871361993552976340199109033872357658371831594193447565488032071341915250595181882295995765788383097415595575270946040903509852734878288159715923680567342957005569135836468487297510525136035144802200670899588167421882360184705614933056178395735233423130828642097119317350593621411827547550748873639375667743655573095911205967655038105187425536847743918532020547968153503917001538959193148314913826963844425874081998626360464270408259184300885770185893849078036670737459156413684323044988091478573679325168708788756071464478788366887947862524366873006878732140976292067241666923332530930040434867887280194920024214745359945174039218632020369173581900351354834141217084392898846409306906465078065250866473115639948055396878518586165160985313563014168399296501399477830970449797024092479414773790208276991384488062153176306051995014033932549379447977866998569081624451861995569092725140283463339642730022764787375483430972764409799929114939254014447916944299109551904051175212367773662707312907275546026812272209411600107720223317210678319730480757095771950944357264184014243290410682664733639862976744470341284898367088509088003169767673542912275221638568804946438564255716738257421973534771384638965899239124761174741353387159830327252873382343265506121606851453724277189669676609803571541730394638143413111876493001324645363522241954402639335413279240800080933077987107633092002454251780697693195660125592846596903716355427088297139544355364535126702425968023407873725371110284951936214194524961658772899561576741557383321396493957759261990228902516647517841054052099897418230809634979017084595286950687523134961929113166768836445754018300103180530370224451658734714476415009048931134553089007788240087886788773223950999613702715383233750550771172780367441468365794865490574366470907830000154149158737837372357060866700048621554882507197968142734897010144717288185969837515921377194851983376615311852269597843998677261020444958391439122211933637650308041440517058572770390570394799018108154995400772072780823839310313999709295045215753643098120673603921229629431595200245573023698250875977015514691422711752411097446027048533591221767157270359527861247649129217797484493030082621598660389534435442227379275323683816615568821411769310632303718959575580774265291567668871612300097392853188877984737846586956374186426295023172460737591068789324839989463655887235768879648449455267953075270856862466667863835825508963449534982366297844573251685914235671235944676271083499184093933384525302152973959142472255003602646252259238686628470697745832191309402872602077220038643672254899322599911036898736578257275964882790379171656828027487443479113404010541117699178985483982264066802771706585045271566279578055618524816234215122487523231395455278825926143566323673176174305275696450105246527070298012124721453301173026140014987538940027833541485862391395262515827859692269954973400981674603592764475968170240029239969257675817580787646582083307439946951722851409694703807419864543767866235268346559202167209285193355537778234565139682938295727250893975352915606099368769300654647767827396708446250586456678234284717256385108087807036483640485735886992114284450662686431424951438904811581036143742785243361286215873217363023643984246954508621801689713494643571693108918668905535601477695689481832325152216635610158752614698878041643906155640163091689190954652939749253420823631376930604812919365093164919870200457556146664521604559194218075306332477830087276212702014740115230909847383545723963440190509360199897487921976353960131891222574344403057425984641234387395609835229379170784252541928517019851368648123425379394423072785233106298448137959210581074112902925089985923449313528795082568246862097957167429061105868342509215018092093284575612870362070315514651254427929552014772385937557695910293577211821276275025436928108842335220179887967749298348344465941148274014648328659792739830750361532446948793671622980055670393376169679853850596012090840724916803318525869590861958309287191162912138667483453060456721300773680250786717975707084596200993873189761830837176626484914048348547109892361518543917732657344853779247695242262766645310830781759709310071547347807095821383219095727816995076164613752177910043444129098219609328462009590859597951960010982907025459679312040945267035344416409764325322992199059621933343268748153061436902159949682930896344551891314964967374253273165784592272312301447012523209926488297412252807271153352683585647821612950823903949507644504760506224963789445825893111933954022822195918477045249089027187739757479206330612361027577959687075161782411233001725661895608119829960893288219780056485484480700939430439849547839202037540777024414677703719104505011133546754755855499208123942717542202665204644852429544203699651532789951944615916881490634441694547958319166113911261589834062703610954160176598002676278719177632219662831153063793989993468648692346305072965192903702135379692560068592134067249332372101566841247152921238810952798248188256948381201187166102554117429842744724155967726000454361557107235456694192085863451789772450510960504041623888816195582959115205128285964845721323039034344206700670326954989661189894617675527377365118973550787164217054779431780641642032823426599754093219139381408273819566815165549074966079096469753382389403974871135716042091023779111732310199946095682899458484329142522567232502067490900553839787728074672311485860701664322940884607704052316903959489920178698527151055726681381817687242900258666535294010094594987433713022686746970584577858400860999450676650547160326532978268414928956799885088431428210352088671095631885638836877133118296998683532872595465677078208088209803414604618657955039103044902591274238245940742033857510143996234273235241106076138417800536662933552977285430457957208581830536014746113939139080089009249647916455251642039170843007815724133852538256064447215783036082076003753627026661635485288093190505356943403316506218635735658607350745524900008916601832161240711631685401383741661323977427753677280285797080797476063109646964027924258109065616362436467186760267220232205806074318236081640313188493324020078703317675156096073044422841720502558436709833648972029742312200892284236511551953771883285140459185427027748048471557053503354997801397855966192303773028419115550768666883214094675405560346660387863091550138063694421455239685934050799653044943303609432089211504587079893604865980387132963172596050433036809536087487369118594476164939182832285936955408849468620718747682300165555101942417817098791573755350455834994939434851621167123907873951730662192425796277925403148971546508515868165079871511393371440059047903384321644610388081436425111894652362052164688001482201628297083392217237314137504754517180936127409582263503840396609600284727244279860337771565706115254550527181941607953881929384928044445910947899254680351027410342935390772573884113543050083177626354664530039365491137095947080758582056391006234684434841934714494346726176567995701581789463770764633936978079318072225512117723612611062400305888353294352922621121235463373078692284269258794024404317466750635920182605488926471171643125920657155237083367353699161609900540507385007649503248810953884038831057197173041271483511960681288495156593002245079306642141906909531986315075968949893841797236807731613711992731763773630251218681897436494461390142438786913185937393416573234769185179226261542461235752940700581563814100675096108064485726033423846879024201580974286395838498869497372123062461854637339186122258892370537160746055944296078453886608547651203748957366684776135765950540098999404957973088062556630228643595976193133800735733762610221689297859025045879855418517741653312464124340853567961641295554620470867283373970711741396608691409019113827343669318825283226778545730101200783929013058152020212836830162303332886986239999774792886099409014195546996353595295886615359971000189019725837124222678433357718053248272908581411271905824230816320062189219292553054587822822936949764928079068580628757862902461584489374229597956213000635185847907729313601357913677155381675413081182944093087245850417715615234729646466749563151734034257130952759151336131770331007704069894083131353495935134835780862780877778844896514146476640328233200157462190351792123971477356450987087688300041943043909971382632171337674413759892925361082579659651693239838294334706870970788809098390238671071728342371098866598621172898247692902271723546016242308960641853157924397594820381108236147942555263715727220070528209248820600570384879206237829011449147784079186484185464312482376576947931756116487181801861728923740529711958896045720652802826516938798474358639720400397463574320742947483966205043203182920970288744508050669872543817331890974399735561130337803110889985882321679422032601377502947329627412544715677188297801270000293351014110580338902791326432240749572508963032570638601484689802445851608418620631370313192177910444431339082912478339091426782583913680432947995298307065329407703396316687249851350950561059270975080566012566610485737057487927631510285639165921120220349355729697484476232028416756433569864440555899956254162545404757451375051178169035364532033389899066414070791609951819594357493846697587107294942051941502317062609917874943124135688065783519407720200548720772606451449146522613929597397544271530877313495492883488611091052940403311576244701295314851445908869022304416301903575518029506819175378633632163796988039006100160819292386920700781245416016013148476884522865289195337785293819211027824403743602620111444472881968733764351896562757722849262326455207485791790250436402990788725653389636533825461188088465523671650577477829652230033945228705554801138111402459566124142606862183934682281004883476456035094803287498867615207951265121739789689027819849074484796686454965373945480843654584154702693736928288924547528028621503780871227660837530119238482483908808778121806758403748080788366212552487844091678686225342240632486092764254078391710180398009975993935433478757128215996456603803100231487044183588015391252916527594629011773823071361678574229769926879114499698126807080265925716763974728074680307630411250353468035197190773198731398277279023206411085273978220017423436182904523302265852399188170572253092587994870434570112380844467978341331480782768878994432062713365677941870476709167777699130583667710837954960920696300648272791667591289332789492985308306078692793346001785625609637750577856162015363852446841892804347734075790999985202676125398428960757750451274492162733373125030735495590189559696480741624045260384111272287490513707533654886567684773185180242827733024610055728822108416788806969857673932598532841773345555737585053105834160275868283375436379620647975268881711956200618949529629253224506200422425686902860651748810200613349610679896951112383525051774363143686628728185222588956756409346164603843410374165615546057387535149292289686609097151242022604313121745042616636419442507391930874200350386859984618070470568715749864268138065105981965204822106566754382010224302998783561356988822706475108922653178170473729388359949497784777902031114003039445046104722472587984267978001974313421577861980524174761408426234995092383473101221732679011832140510889501373997961542428493464520191414929809878507033975609870405716438234624003269272118633507935260087932366917944871813498823106789713226467375690737577687308006689719246643522114863206894145202055332808780134628230219015784088652107161017665207865436329111339033646790266714691530268663289374267246713307020507654931869270314697932568346115518804701921118428416725631730412045183591136987909656761408559626607063742912530112226887913180519581885715085379931647598380349807296143937470379703354932291323557327683751798236411250967783066674237653835048217202874503104197193240078937426420069484132802130621399644304194580000075568483391084137604886485501134938454611060290513647966452682639297216479202927844578502398072187901815790930005416196649228402177083409615206158170987895075387969859022929802785929336337227485115989982984594017259809698395785403948756892229745282583011558202740276393130838086683628580339666244459309808731743944343128262305270211148244733419234041029765275388843964636248338895670487268887405449471132935103603698620477704069849965385458895517432809108112168836226357975965888336876598112001193231985587548288260250842836794065333042431944205327480544488919845165524778552941755836141003612044986422455009094535246392636743638270839150558395329733204124786772738384164559249038857988115912970926984576479117795580854461936318154573167534228729920604715430087333236004239654654594792457396291508757378334070856344152690102037561765925278231358121151623036036875650527605917379287802671130321197858409645797526507785305273001776459097854976748688390227703374351069176561492950120130260944746348073761300315805889417743158138262370005159309686259798831573239997167021735093948511872478834461702504230127500603626947641273067303931305683197769019482113819182783152110111786574332802338295868306495254175766883583279970027099898405395699538242509779799341834289913733153529302791437229840356443600167226945393601100762849574166746134948568356418534098633715279547555864646713583329671516276397736521170881635703391026162963870135738222177106950426855845927593722891659718972926853179656790113641242083862466764912859232912462540913409193789970228400774498073151188459730714269906865871940341157603780732820468568682779083051437597736372759994541397954010657359671850874864845550375041988521299257319789047896912625475091106436785724357391794932064798103345233416355646520238515377925680402893111793808320905767605946683997549241257869142243698868131790134518117292908561565565905718549997748535107338713093438537065564743960931249839453606231197998681484786882141897062170366966172799200758474664341655768303265972635768786094945898247982479038358738575590956892552417956144348709105422697358807273405536287796924398670310115646250526221612268167346631384463005475960696470414904484304700578255666115215200667944286917974562462395442395776610527081957202311591948257595953008579215798593287664728632011217627120923831717806359272034852250555329392726923509501467180778037685922196649117815638817504392836582382626580769621348039845789881188171258605056775702083781743068956579506624005520626692870360687588250970625310025660729299118891840939673297138699848302201280917591016991724123837393129248905552367428930890096038986719485978551865499814230893028351567149143670226480679856423930011879469471237741828016186356242581090186608448455685106295487464326083486928410413541039140397570971763217588575897156000788743712308770435411589629958421171413918848981162596347650370159484438907624195654190404586535334893172478331564727842075658690414355099064904914268119673077786591719153078214899218280895044700919511852453336623901877914871188051159220729462794872767039493501701152209033876424154507507531831927077087102252132902406088699441481251198612627416485283549098800520481112502654049671549459885895268041161230247575473575053335674032939840882202134374711258051317917099613364301205171036293728556417230239860709876880033625659191596238585588415696981032599992453049508695496065083838283761645095598148555909081479752223728068563038275194817765738194033415052488567694147026862879255044584481020933366182587337069597694710047313943497943595908717428285489116772259664802816202573486473614065190987069607535567497399669719231107089304334853135643645775038433224039289558375583956560342366535484720247217109856510222288315785479427834151832977741578868010460540571190181737286522308201204041956075649732885333323016416366502693519933833551950976850817105035558569758921375256302519306715808455920160345753774633776169003368538059350489260025076261674949866584948472124673372661195735697562380820338282943572728547411040423123459937002330951903246548309469178879944633442344865610237477909766585723910790029215453257955016930140855041235223350278424469334549572324209785833697310490891280073281664828361216027602891657170296855947861838685111812410554558322529377894386819792129240931009268087324492622130992414690283602714359757707675234098546477780448281581339448799639747499323663296233728608725723708841633012158401494480179202314457199769743871664992522353387462089569898303893183775124988865710609094056433534043306603501093965706135288814056653396803692148673052041387239427872787169993783519875879282772411675800437156633400020788525950490663161710336655032295732858953999112474176102518576392647057980995964517952458094604065177346589948906582146668277949648712733696845351781818561882257661951907965361814027911430000438920173279736643936345505802553789530885318658163720426660714221646505401196727968493004752737337950021166710707341981299557072611232877043282377475896101094637939741689162287788065449690912133015444898446868630999647149327063478069266874180723395328952903953186766800195345739715203790822466363415223899753533633259655746059927418625585687608118574891183962995755999066114406772828484630435151894419526783891521325188223626451259957367018621940794774335478820752187515860600921921796132317062900185592080134563025851014067586759743971551756854593041586581169255325877424312748939382988198876703495756983144696376065627666787147602561132845439812770285872210975413331924985204402195428702242012326553962298097642246655576165486733832864966599027328395226174044077105325464823360129719683620961350629973952037595949273828787441469812285938681950685561500766179376077439591314651357399384482822286460264959490623724325449457338529125814040960648778741869960109719457225390050623751740221640152566964132855852772786943174438004972562144546643749692301422245553541864646249916677449237931326576686026684912590901944362061166605132575442477951389003650605075899533473093135782680823722388330400845845812010458800464718883995917124909942152727822677580410775132417151704226494839940774843668581447758223880811716955815739795088473915960902801558155156779302517113128237624516734651730977939787267806173469392139078678029697266923232656719709955908564006251009984632480012379027914430504592223149600619117356275635405320352510009537733788116232702832733138545830636586746550439578699747610639116752211230108633584771184043047205297353563932444127700020012994036849956313126869974257737129593946421656535959019495886653088039999523982651195100416975663064533377217115358446942289756106509344271556368628578899250936130631310501093733437250404024773544342955437770889352799154302632728209716126847877155184495457606830432862961509747459082541290397792547028061021977472428745671193742111158350450475120575310985819259226428941027056617207545470174584698738741296022002336593859745042277826711571298351208378788977995156828940394259119559579886051475078423499787159252657881980504917853540427603122181121359533497288684270014390016059007503332351809382653110019607379072798344915732763909200192297610410636159995729457671503521957402938303200952723049772395197464956663245833090437592883299067753409361826156706974539036558279080013829675064358979149381574739575597533197726615911818711812491425606128452501362870771104268494439511090190323835962987119210482451965115124187249828722011797684083418818734331804661538977667688301218273855326951016605389687960231788808886499069557288258708542057124283291950066997785984365387070497648297408681778361296961068903823592899616592945119146227046625817818587230200961307194296469035902910942111034203115493471912210279859418887441689443958249909358525090680242472120567497624038581368298753605539240989734055587278963046038745101023748762117096552559263102981107836919034165990920804737784140984481434477999780926265020108222326503743239757176577109336294904509613020066552200799163015105246680232788862746812780870335619597163528174751451434426185597258129874135241027808383360808960507941884174298084851018975433493398213066318677710108519787824107478855818906356996263714056754141324073949059762952302861613840816598837135286354515415507810942032099914963137508794378069035144147510883862627308112797802113092121165107321760983341028881747162160745728557891389306150707592020934784306278934427817988995940530298002254960507063252836885312869503655302005532596230246318561285416491439001973747250581413642470221794335675670855601980827833436434165181351612797240598227496393201986306130229505055160921827572358698924895918766467555419640287963652386162194970378186452910803367625682935175317841966412381984797124978212923857516959367829175010792944865004465881460679550321199183487915848982806818191442655424328248380582940753924533703359622622341950278463020721087556863664296424596164928639795521276530748775370516861003292221208189605317643735499849166681141921264462301763449064267743853292544312658494370282364976767305879768690313210720916842654515749263801730970555239928298598280353709329564483108347800302698070247800170498845956866740069431112744772317659431163254682496166270219522041207279606491937726197354153977765818781537959358424192824688966826181083953147735179505198077047057883844043675979030950102539498135151534729483303801718795927364638665241754118204834410033143699749973159872899153057726637453110609296996606658673637607077923168892503648373056608253073441715577704186251824614955283400292787824657761729376942551335182474434295487588330265346315492244785109676248941625686016694465397446994146894667554858449953332173245428920361317845712840828340560597475648060635173777274969656102400572216179590026710216081084911779401150730139099548836414195783119233783546381727920510496695094751565728344024181861789888460381248618362201915687581530920129542635426330929947268622287864682000183201890331949078894837195629025870743182393702542538219915240111405265535422735121070807493357818234123136582848779260666499504616057454434778889503731224445295462632807612526428894234210362242535984924892025569616211798382059470001259149243623764291153068191885376752375447571623579523146645000550400789509011759233147807294263803492484953078474599917380306855190222853838443921843077033271353315750279045273006973477076425116351557886153688936116662403990114091491189695318053348191345070960680901298754843856147118298710962199964385794288044703905733945382083173506438068572161160766878912202553246068432765554942995534187755020043890416553614020645165405873705786670904109806407751009463491980272012096065108394290756732348672589276627033322562276540535371197367646820254352858635510290747190926447612169450797472777079480132944228345956003768959947292445911201607497004549826414119003079835113477165282249535172191941469967401241292064239126862455107363586516305834829056041992991721081316146305224134196598947656685015123319991967005319674458165487249754004057097656411143714002878622388742822740980276422727807752335412207859586753738010399531653753375716113025053479333938087944782054920385810442198324860985631107767840813902415808051000541718212059196276788724479667000336358850471128904447826267508409791760553110060615477989699444169885536789474495649403343141654203673400652215355602612517240979791541763782631974166464578385891530285383358426826898258710477615576742628091331656980877737582154069225628447481900703329335867624158454921992281356629177522504062815507067155099128358630501241857113430428705194212664340918907200323418705529365628218331656622689872046068800861994512548131216978603551467229819513331206002548068354289020665688328106038053579275134543682475680400651256187287149111189664666282512272464790161322115918744568060603237673452178704645529717577409382932616739767671344967772995937048437521580177849562685217160079960569035258182492524859120285298049764710807535921630714902782750979358702574789600568777947578049516981625486572436463722848339742807138251331016645047601433813020951005355187982871524225855233486190352174505395990286069849250505830106877949390884678460573741462410595310873066574418182063492441358560820958000282427082374135363630054955202266269925664856155145185980632717397586056631825128710523525286075067073332062880888346700167390525218392395228295109103974282323701274073977342156649534067098767679014763050146338583751503948138079514398908731675647352112772174223336664849569096057583041473736952215455350467283589230185802693251742594285249074865772954061670905965339701373774338160442021633747334866812901271841312604124854970918700972556278190109717648120876615751845930496020429682880625395670318735952794980552041623456790971776500729627940950264399863363153479583037789517550085454420589899095567109740188746249762838767385632247040484136794252562957165017818666210503742027917506912886652974000379868157393187692994906180101040038911808472410407806209311684201105336088944324374355130965664997448205619696259365019069860688936763248914033835964309508325400059464154541701219229499849471199419070382525782612021729104152207485865040273534115790370852281874542961960130056764316531239266764647559218823566944282569225755843374725295063546257371946650507391753227117242965208394823020331467878481738431923046114694488219220570052601566433940226546812523399019681370787211460056403162463707531087170895397012660949478236930059587687990778793996938194603216699470425080779703267905825980255913952065522115013853842238193324782363952924596322824340011925331052312786058899597775960225891316297969767647692929883840175915145041766272088218444328953898439017608071341332955963164147838274727462648938808882103262078466028681487106099765148297715479787269758100493902513377264084475354158358166840423432210550097057757631988344331268474136357013951471459173233094521433442221143799968285784569077306820400263234816437671950978634423267324604795709850788992095732684302868166107161858047134091337755648366790408320316274538552572074805908753854957929506582895196336773477166131304971145507650077172151484789583870092294700004676460598320903632658561492053734242639264966149877074928855814522678147810896522853513117058523115674828823757105123421462038906753193979004526842721754955249775451271703569651110048154033693877101231782881573426684299553501590350207790670072729928305149703092521724194545302756434538855604180161510340452540983885005404799801550442357677307658779315289488892069404616088592294062924861792134960068450027789539613090267785421964249199858324713761407237573779549398290046184951123377003440636510534200266344036087778343362611656944655535832301941998227813977639538337479854367834707792945870565053550158842076019308376580095383838694957559597153809906110156723121890017631459033102803411586053209888743186091776045359367807696929823612525561510324319245927997627884098019104046144423407728578068791567413850672660040417050399597123794065977339945542446381073359255785375919642594621401089899281987172626210527934696448144194520439679400935917662863772413164103191829914256269110660776074408205215154975992252873526275073943591518003030361474813288793148988948099162139840268966227367772837882090655801380615434413391595124312419775367632044994915810353374543349748925946786066729985311872030403253399142488371056984165079583817783941333134160047420546004867661668430908087775012841903545182073027366216310953027200166007610215099729096276183142508144749000804324675460943739496373690483888075347145277625847464498283003243320132406739420961912245726419320165970889527909040950022819296906966713623724635462944943100983197905450806835414583014000590419078889723817757812650003014175307386533114340812470993918191995664657627290022713872354867818953243877951730091345102849795319700694958819873048907814538277894162060527938872510280656099537693524456078508312169312985132196266842519624877260869665218803973770792431723866489503972922831154187095374587612561732588522455896896903034942382764439334258383850820449682639144749942488352497193617899258682056563396662907912403826093567679423146983477692055751330754824948761625479547043423514417258121694871017026759665352938165098863860026026216589242935455191349527045866714939808466530186774336542689831154696801434521855283612108778247840215298193157545574174292366484295758243958764088251252490699851640789429252584092285866770032378887900036640640905797867160349867127095552817475454484162250197972582564532503149586494164339930047660925572040924002018177996103182833593065917162982583825078037330005503372146910962653730511963320538328940568690796574273728892155465668522224310961525775945725232916428315921003615114154208795683907699497252412022715206899896499637337188397202654282536165684210685414754235576296157171467152628645458519125994199658076900383334608051716256408318724461684395376420133230120302345115917155904504332951180844687372093063676634802965465966269070137099627131369711596082815652138774177703680362620236105175428276053627993296159724122084061685869403370368779005378251435395529650177682292042622725216957299887725074909764025041702014222704166542231519596283201832196900119015496838690263430951470399726599566031543866958449159330404486100167304068207433843521681205254631923676290614339217531099773613191172643006161719041610236040986285653476921302950295518630908320551967904468286162792122538371183007221010757738483204206974286421939059977561534434033313290186329797270280010024555756117169795743684290563680488878915725201870429287926912687609358152354996582273258515033916536025770609204593187406315676568373635148986388397181227134677093459200527360193959712556240387488835655758298168843930596400223226047444785165826864568023424920309512946103139083104391317585224015841068503920209223784277570329218646105738760817292083722524487804895509716357351633013585748854959064259683341827873888814641057845422633179036156454518016773102226823583671542470672449792115456151376641960373089159235277216464962229978851896979002072712479981146564803837819090199330024917918171135170223632708816504492704685071418913272450499129313522853501636617053121137672211494833692123382485713521666948628104978611909448407795919530763190937088731381818744953551113148834621621483096485911729522946859903465785669592356997376388524862099021775736645568633749296047927396219891456398254948098470691823370171347665597603727402984344194963712430017502340760547699910425518902203481132127933014088187497338481490713219321417654915037871946522377908015253160803467643149332255768403935013221171351490576443334248893080476638444259263567399870020031966681811935993925055494182269536369555119645445938438030062025780028738690899334669805700321339132832161054589693574850081160433342431070231000599564590754476565925861106557833133725154922464319921900176638550325217645067080069912753223242185024756695973056747504139387347685243007981821645091976122130028684612406397907899737701844324664693394910508477398714789842699844926736821841564303541450518569122644034017315552933796646982391665914443360881639043835690228135315853461695025372097477680668986290807618396455243141488809321209070237514197764331774920411088119871330282075210104154578324400614391199144817645341598212452063261499707653935106218740657052968133211645381878713440091143762551116304367936533545549526456302391433965511933219667330059865223387395037858936256872136915814418580096291185988932098111446744756929411845873526302995944987211537311052251537964850258373864467214906259295113883188213864680126776025564925387626495801300759188789653825571011375398104874399244334474966673197024724362880476447868235774775506256664059689771336162516776027610671495689481363129988184580831083878700419665443979461446111233718177452604655898797290559713467253667442001876646684321440105926923891123443620233049472434425229661397229319128681470169741600474686301398932759549721241406222587639253070677626798226518756793504758104408280169189113369645032854659879083146456879336820436400142039914349704828374678172261683815733295403358533618349694153586304195202947325004661133657260247263274077288320467802194211073616245858311849044981047583213498094878346302473249657879664570827305756104686860927400855547128542672340634121809685852342639124929952070763239975988113110223923536182956964512248068294594669346864172512062721622504305079516520154887302317090855428997502627349513087316282158324943047457683795506717474680927250423826461121145216490200656765634496524788953305295284007617981953285451473305168610796184147513702089350204872322523338170824863012105387235644761827454242658683567063277655121568663097677152534270710019148074349507940069972478817147920021927426727674874174833389618644369597957028620785723429407541297765638225341598380580794360830787435277154743116718816570035156168474380635554937996095149089194748466234493693246384061151837139937494989476450395652947342763742141420836167737745360578965829408484886355070040547308309800233017117382374066185694103569069252215907162563502614577856343632610981289719035455822259259685805724065734082280286570858120343263233255639749524073401680128703499721266939823370659361279669203841318556846243584310067131667353378606107932922601233594082985248018738050785835820145443493158973341418013871779221917074452908216847667633719044835357267956153373347716577792096266944896444367375305266641372896238487727785983778512271733127054407166332173689290910826122961546254165917231397253218116028539417572084632711851850189403779462846112678289059678934537656652787342373434562339884110554072910926925357109481214612489275418158518604896377307062377217347176914235530183659640973746711434992331236852849735684359874682630086186557984204444761218235503084420838777639467107886982541969782294601193426307519535242158771168779027216810179862660190300466296826546181197726008989647722153179146439157006462516878459005918700240848587783589052373712196031154818180618561212304696528788423632894002915616045181513365345035964057504094502555492019539599242777172785751462231203783708349012582422297217818603814513933155080926710379122894341640609975246993166373199859154575680375484629139851945102409473819023332838530381299489048493617087597848441231041074441756156964496275280341003520777370704209722811063430448774029504410902744185841368634146597887569119736939567962488445281903266990188026238679531080850710032670600820750777994216431711492671212698902743173135145900953764571435575682059005713202176169091403314176974070369370306424148509098280112762912306551454449857913771310312910589952474614850606605882294394006834231805494591768275663385060397386075374522139086553511348847196927076277661685678296941459338469691668813774154116351707860632710060363571213204344779461931430081720315094007032051802719007425026815090134366772053030919978160656306523721463906848304364395680387132081275486139851461334121972758623811252655880113991855721326647040981526733417572723765768303766353846292319880988815693930507075700696084961417578901542054000330173693785589616541487789129873312889467538966269331745762960621601047402196542744084078406661067206140409220417782379040254132422460871748754706972382349936330812994088534780768871365545108424704033612210636288524484711947440664417620829170161333983545769570452240612301102830814829835278154478611492995945453720942393091641514923684693074254909081408349462819612635382289346155307020619023513307801631919999708183412296021907535606374028067995795728895223395229041682566449584375680481083855075637617499551227726414064567304809144111079637242404009179544928137449983034275325213468520850379753855756212928510368151153178807523249611857681453246457160957594678607262143575869165741718262536436254064117194636133506650101071743434992363649029087329920310953246484885957643727849027602653215867606199225600675314519836902783787646065346188945685940939228177068991710656143070747524605536485244618497199748565667912189669062152942036762831513587772462976264026015011159583726752006837954143684726814645955338689875848020429895054867933407615308107337817400667318768583449480735791037930165362233463489450713269874067143491301443180080402321797972974962986775917786203701411286609285626067705356076922703038976377799281835910799986148090126848285827222165895259493008451962955422697714655830000332291041035875660541891949452395246460150091161655841529956017758719589637021171265739650262509909325360451982944759843577077214497898840892735834184176712111338507896013891921805267248983270510869628184346681079625603620298411228539881216599255411026934819853674244820186331529474431248538333046310289388986585189942116017814265323371517518792652502065448537559683462587830731739209568094904647768528347960421760670032078885812722708748810400923138852671745050348713281823260347750589953525241018077261038133046390171638609431371493751646083641679243183426878030345762676141533549351005389437756958297389102286835693532242714312382843659314074889112813001794508454046459549082587980763965301112131254713568324374169031921943262793439351690702104785309007426330114002003548974416618647410466384658370959294157110518954118282569967390810694365122994239516163625618371260733028896503698842841409579720418314921651859104634766794339107231064427063332081421406872976858526855738821250439135775310510990171084743974758947020429879258230629681991088932771494269583257034201204809526758821484549411588225332359684217139356294100851912899972242373407410766158406737849932590553525301059441907001092288294463246217747316954572161228054810636178819998102805546168335339341602294794942787175265602189733710996651994721847224922337952075040615857017672978586373060027081145606674036867068306809175485058280910914094838408662855744294166644837260809756493062224627633585970180510895453674752911750011643237119277097912430938900778596505574858563495562719933823925140501112591222949137991700390431270293216103263993503173708472488258400819866907451193361102075568183812071753356979033557032440852921322246912261268595202230030249946221339942667216093193996041502022960946743478601867780972484123660105934735266105955349241332597307250337154355325511383508071951911952029479958797877162956723690044080674192450665236074913487970665056571993304236686449800098960229989739992752966288271111446823309572323168599559308340248186850505038274034265987957659818321326692621660858043210811278889400102544631853130664138203731612372044292990576399171016034543662535121604799103676239428871004824927219838298525664526334093100607482860256597849455441242860534024109764612378504887856936248998292968326689780912551358282316662241446898655523047987114877501348798188434790704239681617707644226554691448676208607444562213378651628252223361743816106988761636168389252474574340188960463687427394186948343529987707242775454044881202737835628863743454211052868292402095603501590712428320956779077218396287690574571368280691843755292465247057314826801594087624549799132344638690217548088584679460662321706039734169061206249558126478291369821364768469990349391001733156692572097144343395350715632056470950576635913273048335967196908637948016227536007811163592026067864466952979572833525352828167662345629930391144796730297919044631524223354979417520099311709778556629539927281820930246890077255616075024651565516307615640522045073249035868683973903279264823345722286835004141523667839742689286848310952131992736642925631280162828700179745494452977230079532511964142244355431319167337615778947885065569181608912843265271803708411378726687102477943378376169427930843659452198078605091447475318871297131966404748624166161110374517958979895715670314061219580757298253103120564961896193469746228666891414322388975990020417704465704318630941815272549125800351875902094834977706581320570173524632948814133215243421068072846287212488709440459880696553679152441475636764631029529425357760550741397849177116242584279589174994404201336510987729570083608848490716021030075186901107679572402943201375823628624842276212168665459102385016508565209557164306610580157926789319974171715607701325869700721127656268107466792424658877056737607106958117622108964810960245741256406329044026193970848831407592289988660171102222973156113707263977782084075501989853711583997944796422410319555245209479729660975338827408571323416658756486950491638937320236532067308179793140473724539276263937516051782506304522199755209441300225142925850650960936869603575056395248954691379596384511236891854317666423400461771058979764064364525052307449471397166707947070489189058799888002772822559447109209306051436697954231932931493476684357901757460895917209523074891756859914801491992066085873839475893691019504026040900554658206296567518443845775894594751046650876116881096255843006497550322691901305039776318281706918645380255214673748818320893919464509416740893649638864927707186501768971281707056430847917199706659874329132745788828582543707381909048668298346484723571604853084708892539980772879488875065755023815041183026493047430482560735630737645977013941747375730021699890949689720634003688856865979931666566381151821516712126585890288601688248973647700360711673365928490982388753863978168010030214912224378317502807734729319238053501646687904013549003019632918693754348262251013112933456714341560335401343081796608896995268167065498545163872372930480355261846460792034844731633168722486858357886765143139611550007251196232949121139208425379134995645552081601694980159273012708479073555464832176216991708944029719442819063977094494865603767032339574192594829894658017153942402638143102689399315782862829745547340405642752045879953955841058089306142417537532443076823114730196130770347814981993951755421751517992002269181673959227153063617664105843632554975873935145791251835844176801920668359872110665394099264633999502569398638218838111277857177476764929594752839517251741782235146190481438284620797689787251934435110142179314265371443295817631472724986299420778098062823632086620152094624854019336314053871746265931255397772367191385360887158844372044162722773878904650469788935289208282482171038449959181965139007891725604277545816718012877712461124326907261029882281977088754920988684762079628584744210984822694584119708471268309524148560483404119191111548464397538841365610790691405688492033088930570299509997101334312899097197744208323691454017662684895524754019893307155516104498264850040144039902556457645568333395354189967759215322370648278408354130219817242846125631816259875950403096719630271443087837095471980808800204129929690248528038939277560020778753153592787001792027774596646819756030550089537638520011407414663283596935879852236020582213448525023465660403430578641679305132882404120267541857712394264675401227879576590912380432590082440659640199931864210798464443799504026625367364251171845500303251219771733545854212964890113117544877106898816497075226223818162324226043055631559646453898585590306780035963805259433003443245694092903749683865721762604257018727965689098375267447498475023974342793005654474600610131544951294475687357403440489608099399992011754807163428225267710908773364325886206184179555020551367571788862883362386785353641261927737852089335114101127940230495677214555481501502211475313764009276465095685535269033997394968470293989786480484687275228490004906672109642521879586695977916164513901237803044784349969457551123510874288521866370374802592108062908049427129794657948489618472496151229360522596412898384656024540160175382644690826993930621626717552169435585105009992971129432130797291348946139984182155065843316075590301758082389833624771634261727609936278577985114041784469376289604680164191605765864803991624037481174483577927030381307838928424907246863426541713636574706396342426616526011565492240667317076577293780741321324435150236895606374364580068569245296251789415654371404092320563109292489241163211787968760460393771292601725553408318424214802634361207489059574965461541873256484384554989350637078824726772921501611572358493042436077374387849774380369701473499497571784854666030412806126203801788614982291574740688720558619438339294143398219511966344018164417621376356550678870416631327989697946189427880877120702409090388203590770519536065772993186642224828527634481959849345667416138295375569378776786937512278636972673226604746403998501513940104819047098408601054848635208739332365144222455748463833136088775337485565610031278260049098196169860298354160992038447445054829584218840159990818802946292499457797301392620976155541908371591592606707218918799225885489962366664578699173959206531125301324977124363682850513035241703979628064374044366507182533316916739380970259184286434192085020507803162896603353423907524792282376192939186237013338060834921531955744807273603838811323243670521324622401118121385576826264790217743347780859457675136618154236933009826739031173091127333775056471057125818794270162488261151315744087168866289990894973019651614779586167466454476720779926258395653758783878345442535562579286106349216288246602432053578976074865254075922891456131522131011079136116529025702964258194185056378760931512519128690124548117906410391251397172967988150985908289613491042991331502494605935948003116962396989275345130719214573868271665849402043831989316987370395559437541803546656103608460095351515765532504819132318849331389899739991906323236106022519445451694499893976207245757137877301739084599246324898473534096768653550265828364761063108987099162557692706415045867820637470136302001896270929051923752080360969646149582455645827042542166398237839761312145186328135426470487949309037620672426517125140550978595806998013100887399907260597253759898537094456585386353302536878247679432347291614410922777399036683713379900492975114123414198083820342235941877501162914945871454053841607122428934660744908616836060030514528301640891336352858299189856492537662238764769914997229621217383726918257999962095108500724095822569654499779448032727298205580945042624516775459678318054032856914174737618377659219915844407305716245693678508388774003669435760739556585699979774844043063051616831024480767798308429490849525264390615663795241615710707420482902204968312093048584859504014799926593711416589798342829717482875423620913944710817602722976331230938448454278141955897046780498035749531018764976063432164364585144556759418126503737087382704311242163640483096055504140690042395959841181303664955488829463256863064759886741489153903298993514121031718659970112244566511609380136700888212526761260056471114536967100746219524368018001820207281593773846578474032993844519022151604583133524687607478227081660187198739684577108748221639129831226757123723854751626187272003068037906030199919435713398991999521119448570393195906959010560069049592043593323983675347855299707406730590355734691751747606577657957811986922824047562136701139224287721575404690729028602032169002454445557878288401619991926975753959983350275053284613247965484329268537165878987187403262109561233407011985707595316845486736090461781879868722814079497829982596220864754062025978260609964546294818200799724082106177089301818645042511429175148078811171081235338995822754402188779302013854088708584368870752141145316834981479133805105773423442134417199147317042486794228614695555311701905830260751431150617999424296509524310045781885743690855613335062659650110613083411245670387408167689004694472279388038951693074989723078913820035382524098491082946808381350728464900800949625056489186038383006788416590810534426969532142409095117996840867524538725468123099953862305172543871208659342382506303529102733414657471321731132266696637330381515584804498163890887333307054876526856208711904635732825589532410838172758225392441053390196641525357921613390332823271461063821465600798947161546381972406089945806785915175364883812877552783831564039689750067112006657767677282400975215692699603247229355516745070773054797350708394118455416291784564192357000326717624063158271051665927768137633317536581600104591272871758754228425152195264028285931486344894664600389279713051382171095688957248118362765486912706815645911151164771905049102433012089454854874558626076125762537414857466127586721789980617345497148336368624502606873476188779334026374787928436872203009705334920439591400098099674368271469936552959544005166053034227693061471595086892787356130400954599976110703320842699524918022028746127660201460556861039145557456455657685303593872731636345288608096036080906209937136338367993266948682011646980186464140128086752268048734969051661792213874866824741993394508611335461714478255048248515420826326977622452303292800717662638149808071157275441995510042206724391803091842267767310409229451194541158324307184746506775797117816850460194309454954178644175509812534801810298823027416627332066314872165770361416468273433784078884743612511301705177888723606246086723019649637363416702946973513996231773120337764474740127750034373729664113684626150288643536887402052140453451528606845718812721187935855710068194927325590271761704621347039903364283555331058816171759857562402650538930845754493964183776679944652307551606460755914312938815214865207915623685528735604839523517487785854129147962373165464411397711946061639338813092704340839406059232324081635748877317528146882862121764885027873212074918548310677888837123284780542265635013708398361027749523235730220482027945039853997357430941328203629455813629232636789305504518363287367362775093592505766242284616170853152750770070129709372283232088649057397874378216070247232547539981589618374047422091929237046120578431812475941027804170981607057319745018455850415321463085481134653134195420341972727311056102281291876849148305135712567953752045946412296764198002622160547238268207952170277261024914684507274453788257934899631591795105544632465319746456763186889859164203767045662882805386058864619349473513881936345020251292742670987946170697541742521768121313407172266593260122174670793138023148036795679084013137786246679607549015675200696495288352266753701292949065864184172135489568886344913093902711410603878517342510486230679160034127785269723723736594871936049441632116800266467219232378574052720791262426575662163173005091524209534854201508882796478780904349360088871900652065470976799955149817981304495441160497179753429780055909871255291594177669594397240260466720439440331850402175175506332316016652507505032390838498748500633694196803946831173840785429612519507919972381542390458390290050602219483460878970683905732071129714559694116438650919164283576477158094254779947012426489387454579935250621828507703619458660979135790035041656040607454908983085395671508875046242624909494251407651379958460607049743107178526397229544402044170545332154493285825392674363722089351356530131467395882930936523126927400711756117445516695442470963411429665800199026850774648465931702214809879513943437294923832225263265993861270698952503676519371081523877758747087535626633426360583370170146485710690865283225854603661270045429803553827342376121028807819751177396808383921260764592426363427373395968957869242993010631711949303827113900671137590529037707019571379162068628315104178510233245597642611628739764918932829965787977818470258862004365916256989047117103018488321894894762551605980391494310698077246836687802875576103130895197136268511027050258538066768954798839935136915907012865064178290687100510307244478484803860615068892373573159435914580371468273977166223936897028997030806176031921756043727687492700962220348574230031204986178832031576880479409852362109088110838380573953626839153829895684097325609627714878104158203228344752402498605703269552450734696290662890994303745491428400414421601929700693145879461028827136660853322871347662671418388437575106184474864048746924591593928277866276237753906664286218231138571667322162878820340213005606559354366844686552684076739379866112866611904933870348488121161043842884369588299695216803038389587914467988307259759071895184698340209326858230967191933560037080285882276948317268594338299032745904832284969548154673610184237489688124298126713719636272923839324570848307703108319158982500840588491998682693758528034856431897941776529507288788894671277641023542892120310896995075589771155232762006001647921054376371479774424511054137513528182759020862456731904771586212469220650834977695315494843025773899253386715515477811863674680086136828278713912481330372262141113728054939592701872964551434187053374616561199402651448320353881375683935098202968830516926330126337084813591700613275881182944353412437778530623620952559272528743671443907835697576823710617374421772161234044994638866187329990591799769385515410102226406781272483481888963271634127260073095649930217888780704936780042980108870580670468031146489573763722017759959512257880824320267618320510131892060964702896155926802166329720310268915874366493984661481936570431487625354066524779146057423089093433510599047618394191347308908780481096155279964699017249099975913271920903882648363332172493311433099770155150608964142233401551370712348069918918759068357925699267322496786357574130116157400933817873981624775312868949926263996785195625701007543272471281631816956934325902270535824288406871699148498091404401057182845813242200902148380463958767961957508983758668079566857045084102866760972013016515363321183753196932043307818823926233846579744533099456059524168641527386868315906452550522539769226070340162502682116257235345652299145125551144211111933760798916060244657064226520587131913481698945922730420203028940505816458176817862364024029500624115453471448629642372376426979454672691544277529756571488914131867255823919048865549446600977354468008707509680749088920938016459198957336277505798715149847202512457480021998926063221101387274738924291910607653119352175800111329487581953735874992902778081576404262345049184885142928627894156143988086745829387811373714408362017343120941101611891146500117945569987787190163648439622771274308080620488141790906783373537883769070057546681252886067251780711546735360446898271279654414509347445267883027033570087503013706312605318022386631545990348620804288652506288025092883074243881816462043964507017244338039570259472904713117481493172646146280772757662925426141088864266319910107456242888121947522279692656997527355527422408946220431507098922599939363965446262121227928023604235847744607931655303810820417653524841457358407298498475836361335915374345410303268399560356401231212054218928462055308231342472140137785449277394749705544899449414004447575361294707562917262674937936320263371107163865654111063095266670875984162002799520018494349459306736076399189756005044012928722466637513007418655242940867754774482573893618658107414930837824483515721757746165755381650107468409367055048125599101182261416982383598294236813252689141282279861817238893765432893414416112558085141194855480136682102922082843559339757444340294409289302516076906583301948502982404087725464037353575610740082840900702476051484694152509362743962428987996091865231736329436620727199623215995374795704802367117034068782342334828963885609097767814344393833060198838280014360039929740427079614100861035035730527077439295884056327392860304395982785938957549884908456188099487322621988006563632718356882172883211456537485545277955955246570711964655945645808222942844835723978751934056328988041335959691448535402490434865001587925945614308656466450995914354923498545740756599849180339104199640073243656404908564222305566047219466263111086481281672508037402135221835350402121558064577067411900764173541209255264728468429156064132494013658597649098796852948614857023675927147633412158337806367846579460378284481101051046235818103301256527715018282167628119921715078213600836832356881665003806295847226500750526480258077323018526487845962590292347762130129616714793715587930254902375487366682139860636795175669943364828578170130814591731696090078746090444542987865372913275817804149419415442050571778292535356566922316193116704903155960008025723809817346054428020061516892306458705471266505064938370071243549938842272631293983259522734781514284188643445940999247071297234192453045302660882390142600195189880321691983915638589702918947311154818993008689137507658691074581896060391343005797153254561522528279987536784837143979448705339448738821409069683951306553686346232343809325938234551706031534936037991038873245239929399399873969749961186748963780605785634237261181387157065560188655236008349007359312521088630860450132852599016013289618989215276273362864445420859080773825120740461367403969055770502916363098549344164399585667184728107900394361665980080713285306014855308884739389662913103069837759277435859501143598872860322699453322636154992085301489274881615458389642379435506889098020240429230140477372979882995825016075465748843303270850763198663386671393538927234865789332423762445513827348873561812931584965204299613173231144357867771874564870848053310812011400240079911990316619582482965621358045709432884539069864577795045711712107288800033312761118244336578372773721298783028567464778554089831845401024878475895437901603299852281418640542629491000284013860137267749563613501391863461370821616638231957368184115816301908956229792187718046616541526313812301932287223375882260853385167795778087429667684546311868077815739121223801990748500181599923044147460313274884873278528603543638130444722442786808244103215304207759575101491638810255488373955230512524594951023839600276799536832536227892827447540198925106023083760153341433901628926955074442090861871894891135989879560127522049603042770958606804384174926636292530440308075176892170454964697553180524916456216283883950063177298170006126831147690754106944939503830443810317560997861171143989926077975622562566909635233972783952976135127130556084376136297422781103338216773444765886389381149371344218186881952937196610387914419936396373052305517403410953608912979470895485264018158447341355556388069697278184442458145986925338788510326103811061267281352750909135284615506149059403935932965968252675904440053715611700202200316461012845540757711184152814092366938561095474603690987968357841822963342691396933098230775749515560512443317530471877638601781979572738981543934025673775265070325500251200317264711820283484623259167089830216125003777651054875604132006670293540442394111047869707244809791172886234239227364595312372359865693807105667399479339204976166369759345755325656468200925346518749515587737036239322098824713036307168798150253069053940572669230886447111097718704500911241661944000018479019405252809804696487937212123374350734453906427617806990496464664629667200174649692085911935852502298224943925383630695543852414060794090444013828268050012282478825192144101777752202778224803931938774473998751453912908482626297022758032700813109426874948993701815225301645216784334233087350734823885373346825680035609473841617098475133317313251072105870598312922651835032581732312994673265393008772394300292008484168138935402834828743036181596187582684357445402648384783004540977190781778384981629188615043654060305468915981045992335939362149243326218734385346201410059099329957191573571850846318967650664386280598215568316062951992510669005659116956551771057477966720132742711079108625008733278770877735629068756273124756904214780156546544573347808293033686245052941703653016044935419151331977384917742732815723194391167570710726568458701452065785210606388506269369008239183376237622279152132958171539326830814952449231113219012619930973270858326222135587169356602523874427503996582050260792633645769036741132892474171011970415984702406658560293425115261706538960910134200055345048393678997213054196536685783179790949647768084758414406021979445113654606710650404380761538685367890744930936771466967193155792940430234366543747784863281588249975851306905159549959605257937177506064096773093612799385367599734150723315875398543313653795119089843127484263602785040379670379452219737890956038261710654697314722088755812665901837314071665886684966429249805309722426691378739541427910778265607179703401803961808309274696410601258896368664165231818558924269213106516015974997512785698334298964030709861142504237829740442973601204564457017240094768195469670944653057404699675259486442092976798738954700923772936753049092477979551103900238829688456311401932506071453435719157530746753341471136080170400010473985670489398998820406810329928971679424415605943057660737862882232375605528582896731800683318246023155314473776179833448889464547058144446477117564074396468092103044004862488641048098043912591697691486045279203467473790317658901516157885598668024907743089145364195910572855651383292678857910248731930363433752304932952240304274017050235533863715602110492057021989003047088391037512604130808851741625579595868483038175518694768877301318429066167191239310976485783820230564082588588200518235315382268108566203141364348989883161665087741618764261427276570583917029518866444387898412364716645278306990340448594314418626487666032591959302334778704382837540831003844713537610494110548288943390392210630271848851930421011743395687002839269106165782849032545645404273884555741044442930843941248588531093960297137343914573923058429670208048068943449129349788596809778208482454982430383977193419692364393059658664539659564285250267353546627081491313433089416798990647782722807381841796929210125451318621703875785983947007189689821750017270131289595735409324731049583213740987515087694551309935632005171358607076233620445728456886818548073959905039206968092244510991596158775378446127108269793803200289878021850542745038029965744937611119194178755138242156046422722829686413277064370074930126587429825902921930541848901162028135155763369878099663338329459344552860223140971910846294418088627873963950236979091777405353952284606482540472612847794370920936822841526402938114861841119803099845078071724220183248222639990325625222698406269240000961138119342864824075892699296078425583727271780980352644278142735838295513389372069863860410882476087378062159419654755786611460726358263315052941044409601412358501585096476258607920630115273792339502482705122459695334106020362105260094117344981388425454072113718176688180109746743793246152755877393631872354930249186139847993281576006858964761410338836884078535015402309562712624116004520990377435070941386239676998691019510713402787044136000049269989817070203092584437392380823559770858441579608742136570866215602255385938036361320492124119154574158124052458139866149292264715714104296781933767714060617563029539344665904668672218324573298710816703966664096737341054505866336829508576987090399359469388890589533224927644571562828419410723100578920200313269216697077711986696583360332227809145479792117615487256173643887902504678891106647744334878330419531695468139323033800799300166239399513610217076309438932975041962931765709588383257224227358850274333342955138699940645946090384611897889276064681346655974747484870189124062459297090020867032201883146457869148190157652419828135888675329801275747173541255863597574143055066170293262927212375028491893809621427736066196860825105779221450380089233096782642123717754034510809165013216792127981042154720144409310509908296536201414696315391673228361651017081654417727770085720618334364746892225942577101466647842183298838838007281736370398000030926182792377055827067986316202914450407914093733690771272053282198394800554722140972272660050442410981367920478720672607176016882947931025011400688931670484929734391930767481921083349191772286968552147725595296329160017257378225183607510696875432881214138605316851865887762507432402511067472184825386458829869416531331679406672705356522026511085129789204814691565044990069720519034588144353190432839581048078842141231520671531622392054039618257543351107526390222173271236054049549460763100667307265238488402308781152782275922103540848754149889571808932386863185435937031869727239288844683412487753231076640257001607773926797885759102290679133362965904896755665134202659535582449489935473284503731388509137457757956006882997932864533345255901951012344267431422648881146135039757856775440592172576118841329220431474773485094372063545007080976267111820004504850194198126038456194889160198404714264793508454510665543905548381496053533242236121556500376532857191105668454644808451662090880455435417881530660683692097234662736337749802655621568043774494513308109620034859113354579757231659410706288238783484736028467058346531459261331421885910460436282786632540304769874792492863020030391964813995715530251177284061687782599883534623615184111818888768681542244341571937698272564333015307426383861467262293636001005434449139963242954152639323292042965794564958942358485267977558534574344879985169047425427123359102703635248992978118777785551595492093057884032936355346994820452502237644683259804870325301708979825859577223133761253067053060603213273289088854697825584580968426696546703026360419601765126125200655295492590753969630261171222422965235561320756247220123281447261898841858826127987430191865633873021129535418228425424424972034149189560326392963600026377226744242443772560361023313091683156751474456794975171470315520055489930243593107189995091821237189487816574603779079904927408238964533518059495378601093838133802150714828162492773345652535341155363729502386686073670161626943917707705927924286520954304323554546769264985567015481464251771439134633143807574951020571028000689885061259574250572508493825446478664480041347283691507651927576618695844885412928062482489190262827923902474957066944624403525197414272663972160762656927753037823650455414436826092586057257022938497806341302371848180199928633277059633362668274919692252172799236792598103471645731278778445578339117472692223869265020557571947820456056650497355884088484252079952459518510429809003784185922042914316586115033744483061619893892391737025416964935396279354073236359106816527768018672401940736548903603462289675507201951221611972315424049727730228348823081859327989272693597529812533904671622876396475995226892457030601573833864682492468103397294356861291475502114349344776740723068953865820500421387860852997418369462010898732888230072051174427174705803181972546907625929003621816760851658583065791688763727239836662361016698850647083952073883157203057270641060856348066249344885423472347322860240886967598618089334509487393632102083521661404765969985364227908112513249627456848139410142222201248557659017615822733817817244611283345901572069801562059761190275104107836377401127354894928320498806468398499624847409142267192678654796997055607203486058317539817548812740464663616890588786122544082051005458774749361110515103304474465944771892512084448107838291388925208444663630339849941960149711635271880969325476074952624253157633222018535093687416763190631915545416553659998330226698205305051190337774240612574906848233526136254657342330399666890207075615784548802246490120413666239884426726058669764749691400847728993503107708624959612862681953359681015157348627388879106419343331385367908520338347800367910634368968591119496815133432681581070570341647823248726435618611199388332534938475009961230773182591141559914654119041637285160821176502916752856295009404812475500632472160944310209407434366804998502794308521277254022491806806058057609298184960767178093858249579202263567507403919981826173089715463675724381906111717709269643243023022436078625094426951970054910353706291662826569230771881018906081450568788360672738946300482688608703687239912846904544924800022345771057435057633919578292926420764853172526478783620717267402479936194381771327488364808801355424671849067814199918899720059453713154232840742350908605366493576623485538541458942853441637657521121235671894126293075096213727478707875613852944856494638962808622554517812867966920345444160306671509887062142163786402253741633059528609604680299168215198378884008514305243023069044207528133734400951113162947369775233971423968740208604942837387677483053805142264785328314566657066437095781204279693588773330959244076002045435810390692008249959729075511140784281310821139180259615365536110747696505451853952701447003828960892727628557375234303566845497212513653841231243360308159912212528426073623464284515798778649365213741424127408598457026610862639139338175138516871365253566915255945752946018388460449480195516963351528469270611706276340817719429592937162507332256903499576494375076349879629762729331240337476232685814489001455745959810363657224077100550110761759071682580369651891775261028014123494599514796434604261014045845324028564138876395933562336245720198108368012131084118992790154025519419904750468792738057498129752472252958710217826850907251257821392765060554519033483826563831402293296061529929976052762629409589451559817769259030256252949768447229140587437745096837906425535911435491610752962618936658813183246703929787939172385664562929743358735551357689793936825478855677764124463768093275443527905917047336556858255707887080458930649765991429695137518546221666067616631572581067919830650688017956799518478736957083238526306237838209527020961145026721673831747059965595875893258728003322674443986822938340571041258093103717991951925199884557510241895250736134808724880579226421035614992678548050961590564318226790786175127595170956238152850087475699949723036297826892103959250243299848349576616375837410373652676776415314754759367699971251879741221761688634525016640407219827571202610239802993306163635441131511299913920929465290893045437946394269366540212408131624202665643416721572595026700474051921923155659276432956391953116818341792756752633681988970160176923054620151084646273845220309397245247655621145203962388055598980923596450581747534740885158818499429717397785024647461598122656561139142822951053334341660462966386688853370497660483622866329629059850741514184277234542679895195825949472703685971636120344059839382909673746625182838816719642729287616308127626653960690122814627613777880498400821291114183849689136286013525365011133816314681983305174628748021247834538169563074551261178990435169002288437980816774998419524274254885716941571318188696833532619804707848339956975078520458275271381277111548335678587259857437534832674729879384559331096517626679955216654727699779964398168940753723717990281004519053613558668666983820820080356006329313893181542673134655451363223579458740519269946569912449807491862718500863017262674511506452451853448779540733998425546050085072263565176295269904373022983857236173777057134279715555759329391785700306234533664758130022320543998502159141126307007081118907321039301290416900705369728648010588513100117826994092972064248617029253715288773805796075706294965100453636155670715799329005036810896177614151595628250584146774113953868201028109761585644700416113629484029604408223141108558756243927808029944487547727060154542616817058070568351462346783730737624047068934630341723132264177923383647639523773858793458237901377362820723052144991147652708531821333279785535427244174794042643624404259775815134053529402194266369204468191144104587516310012638745120324519562165817814311633326424406369478349307363085463861790204562660540682395664324760624906884565770579520979856709110815250938936114711965648864078352050538986860243201131813391908430804744668481948384925319594251766955498614275235765081867541995299648290046529373134755483233556469932919566330105598351936120030518745016576647903904754382437592190116710588434686947136091712456891990164483070952634233688969717486154902104537829228367889902235485876753896677066100586179898606572902403206137842171785859969932769358295098676241347747016078967081015187600524255953954350766604978931278253549415613369796598087214749165464535457996069636645383642591617906436424068318919153832273648418602046301134308808933946978111350432362380934292831520800949789503648084230325812430709351410585089790672228004097469437946959981235773194923061770966193569184560469836886287271104703609281171246036866113418978017483842676067503369487749956357920318742748961395588250926744532477387677194221517852280651223351066689597550655569848323826802009964433689218304397743144753648760498592029070692492053199082256625679380139345087060887191337243684038794524357226146265087078536414234014598872265460623195415840560106945821499917498798686435627524793965119450081526654519544352077584167961413506184673307627181499670913426223378144213599489167642349261867609238680510010447685551333772258432438862951613759315697413688378290863253015696540674120957198832731289758319484861597441632732696657554812951052659409548038440784387013445282944069832574583033189567988702052358864305387085468521297333114066737490308446934533168283548900379824876246448007988223129075879747798853739263029766114743348877730367566808374686082853809531864548443431250232042997439598806239821808476246524915282156407405068289879763071025825160013473181028090836292807256083723956776829911603191497722383629204373277016542397880786926971062637802215534612835293356354684659882603552348508641129322479107009273727048119947561519704279336477117255256384904954590878157169416295377514566627202867626369090924223428134058970177846203452602280807129040090276239879891357716131762704167091391182499542625976438549928272815486849828481678188757258919727050942828683644989060805660601623070071261095528134204383756503718911795165797106131983515222116087113332520239888901791660560584409679127766142105005674288914534091689172716044888513039656569624571620344560353870595229983975533280627712689081861072857678108805544549401578254437246157777503408385954179727561896691308918828652073880298680038038956511504110508077277409280628296124422188411746812524199636745927990273944386324753704556885163448155870213396452071551772018050153466858921854854456660251758301785086652759812352225310100656602011527210166390432100917850303911927355762363439671478444400538162193240972129861992530010219313812638398095853736978111395683900323117538095644641376679741652687701855558033919663209195765125693213949783376219079222696541284949652584954855844347709971070764883530868895817296201867286472942874555465100806590688248780141035917793884040262982608913142392526393946557326585328460682207823273940812010971558780582384166036306819166306467894087967743362344764865723011408502861397665359358965537648959371861066322834679143797450297787046722007853908565304242532186193375672449789885517657369118250408544212287403908621052672860307925745151367457738060154272140897802144894460400142634529952354164514299498732320605394657028657902229061259519993707686025737042059852496120758773697344442807299658852067246702233807114341741967451079278067696986766442771075722742243476043632755853018555919901536857198569807633949378689107648545369350137333305207582118546747349180218853578794216222155270152164147169058954430813559995296350795920250826879550710370719257639911309724290022894583651540969299226299626590058154298047447955005021815747789417677129481307498051775876681678762247862411358349052578320329493019318682316215364602463382399192045335253650146975147182723240185852815938629785658008191568366075573998076960620284624736435491329755100472493554288693370196140603677097775163795316980725388483994967750838366662370734035471502480816067042822745525525835292691842161221038487264887006095341389546052970432269985789671736065385608493387196650777469899950389158061152939471659290169443700731756319785631114665003736882609888168017536841460652882716760007926362834589304387714861715580482100620137769287751430391901744959175487326276024957263598553843592172767811853983748865049527536387476872958325411292942886677121682019365710200318637275840613194158867789087110324942151221108769417885646688897031614638207224420568854550979610590572473602344417654613045224873925302973540297674476238462600245919901842714056757986987651670390144265340213153594108921887441443309797785399024910848321059716082826037403635848449887059086331815917428977489351340761763688856779966208467446792077575658212242596501657484303851735540913506335107942217942969373457140451304018535747792734181449273929874503732457410474303512629579723472517613498810057425240248839332897594010025814572929705086806298116757628718988676888724867911702715186948104280323073425955665448924747810499271610195436516307062529558907815252535467275407703265220325763661252682192599827738878357054013834176412393488897713409132699949659822764359793419194035166921431896782525729236774868261923496804779769051687110735652571432326398934884331147337027939490166996201011251702675126359184447815991729756451603678078171275373973559118355916150064896138673007173849696861984897791663976866718024156952151908446539156911475670316084298597552913930711668348443819259340576343522123852316866793468968834208844383154464895298215046805487335885952870797041275508588477888848142035928862510091102455433602520262822737265461001273640446384136304842681575925355453412001095908468840468989370170252334399467258270081627878851682787670530319324358109705684809089557840753244639082920223774867147616011939988851778742183966678155416140931826112225662067058073334283464606137041165811907253596968884061487795311169811183283574182979312370604135274908028033743394925838581590764904414264869688753406477205941041545648796098293017548955606661337240739492023521423878130733102175940554389800040895075209674545601283522667816041155355326153013421644994584392958589408750470900921522078006298820728350285805028991100325326023917125871575383245781578860449931708693802903855760096247123790804873431972304899608822047769096612999654302442222545562181555104825673387428134601024438289271957475178504248571722306587729511944979261693271861329650803107320766333279134545570729282876950621290721220943390421885100506485825960293346851569260770910926518896169598984658246932144687095954253941779503521972114579916685761312145320252811166008026409679024119607737069378202793431612317406187372840837323469823326392689471726080218836078435773037179801713909803967050920157948644078477749338132287302403594360723924428535276496197763354557565142007803245433177037644346017496715374390034151333551076096617969948271354824837830038752428853261165971901478028952097118178780687406671836451447821183955445295518861182953898148238824078214055802720012815878989539034649190415924866509418592699378037016329745888344215587502101754257435632246573891301589105800735776277158291995539851038332234596078996326717770877594138214380798932260554344004934402323680025885070047844035474711912228599750718697078121224636939675885588750556916300894972776909994707443205278927118606820668819527926545248304915601286913396529342837010900993883557204136279335354888985948128643549793992066026579169685458860077089620967188959077919086113852066456673947306860981472210717863015268110604471015632606792519406589045433604121581850364928813252934328176917318144352650195655434504074972875091820116668709858918658488452802988916024960662716525929410359721855922468509203955577412438160525801678785165585068164134376233145796542632470301352689128066596693475925038398920903257161779858007395572797435607304330131599628040634241109745478577401487950001234607173674100418444040464450655469402119753930345323863512606220599352287524555414692892164459928922641233477553580778773679444437049745565447382880073147445203391780535784230541912482411396495103836784736655492456997757166706856576843398843712333753501842110674262697900894228832837734848624193728221805734230337268655405523791525203482105297977323992761044915222046240534677483471302217849655457618495502209378485525303440827188686124299303743638716556502523183103911545401007297380615999988157368726351495069682148102515745908087507624809899437980930418572052771012868181757612429705135803049224236930439465210229046345351862784691567070370564562928666069667252334461775784338820554487006439574838187330109474489327277002231112016448939636618186798713487051595143900188955011618127322281068968777209864906950421452204972597618254640048061367796113774904474067776748944766312444470813856074997613643755003987780581253270650635005024066969139345119138749176925010770277221056593300891472638507328440008610053610152135671084327197334907280752020337336491033703526991640847550124824509820120463404279950254512986931955056977218914633277963307722671276766200199525165328312244579450930634793487697312167492493067761401830516488572600783451223507240575519736582443958804337296932075086556950103834563161758347936344487415370930724096950678024620814008969389860615706669129781549522094689846748887631421155597106870479766230327822222768796841354312461971435157096701974946032053653189803016171518299888070762428915565491931047636371508414048590632010482208249118644807255418532573981050262951435932152438157075826010102318670871696869220800578570326584977703653762558236165745586065901447204505712042350606431995478102703872028429070870247838682892848736309241233732981868324534297573404761169508566694040556124229854318156711766579435566338100546247792100521723829440467635123673176495887378753791283051742532762423009778536407623265429398172225521091732607507524414012997654297835627225858852156791622030674468586698586347287907561875807470628985049773981440404397526508675751237733083622997208436149585437397164510858989507986737828805548889458030508543181189238764926719634052878790342981275579331836522572852171651650402572970715348042648712374581743152101660498135881978998036737473884435523196446182734442228617968672048565257106884981869553682537762275524110334904126640996489165227371590070774558391698785811328685542583929933214728951185093261567301449607978657374720681966285454605271783741462151489316656929434185589760410000165121517114529678459085188327210023873184150319264129690643264843332360445813275023997797423269494897725042018938529765966479532865769170264131025713485633692037777163909638325654805227105840886777981341909182753771554354090705273524913214176869607752426744725464955809307146339884096676859696508195111395475516603932969157696408727971020267615763592023239563418427664555405792013768699796731265922699299164556238905889377993540785311651758749137137003414022428858843283721682400022394909980354442990421276473431565649611148428571046295292480558132987932895654210342114765907814242089633491239489673424523477965054844257742094177345794875745819131773238017020470206269502439310245943196895085397009330023444718382064312060505813678154633770354892535718051806492797350208505906500372321027433256521074514874789836184511803369788363196610735276447163084656768136302129166868936844116014737791042718422619972882002356053642191095315973853018736990865120969659672007296865448439179144848788935722116903488902703085941662643647513516592323969634915550316221066725855733200193671546122090208704132066312326973943170325257823175852754323942119768703687201295764179226357562415997929744370934536675371054216594958853458788909386272298488797889352461475458823059595855324167381925448907075823092620110219475620000285988746386785884215226040867091866517543102582245838409785445600725360628927305873271554342671660183413154384496597906658540622192644778685839053649077588173207145329715549479010271593993785891504940121134996372345240150441992357687247273883224875610631706710840755701133900012434632593736914964590757072978445562783564166362732560830835807618280302588408662940493793750639193166342297993415994327170795416586170674485763580125181961378446651301754805039814787580855855025659707852975687215282339478536072036610261900698150760285372919930954220192257272187913257653213752732730852805743227425778774567094857521865275251009644546904361446070121884475181933484186767539229667645494961169127959625734727794856933648137989532739637463955238981923575961319947236881529718780751159009003530704209041911199893833802370356887827901046604578471635636527002743555409912609758677905447686740181907454719172844114752184012192169770645861281876189408018240183732627347282411315751063279118586801733502886071117108912505394803092043924020410155882387201709640027614603941136508633434632412255536478461899635263863540049109844538000778794267659981997130325152368175648244822959240265309882372767272834192689435666831817570562406620470439714832312766729553371087757546547248930796459068367482886885387424813766223505753747462565903095371399382933055825607367156707690659870210208100318973702181810528067095044492743928737699443522035623397565917708411713985248023655123889035400786667831421832654606508651199731802689500857618940417307029505690584790531869749646331997859360424471513800291361707466840030366565922126588305155454955810875859973753715773753630827375215268244287706305666315771180385647928559079648128662542099490700565654346392048711369780969374347772768626687802544792517299893466195597810246927173839312864953458737262586406575319815056600619800455799444131855279454467775717316427811998251255485881088375087509297890512564480410037015736314828275512336247748106971200778347313297894206583341154112735932821638154672610996766878387181467207150192387346009088047764458115080235258746265958282050542645818150131053664489983833107134044351417706747262532164365350656216981054967389989505479175084538393632682812879410361928892674692770708086953475305638807310730480791167571280201606295392623031774103504390877946189265748028656739380011869872241107327256253880865647420889327086660644612660590894449996498900918129187478703416212206762874374882580891145305310192578519141783571427340286297994832748487320002598920483200934180286577294060758387817573854881703964394593808220004156586762620282512942634260568202742049676624241094195516953441684492015387285759515671656017189510244877157784504091422453641569666484948885520608249348015542118151169402553053621529788236867867015328466370011293467038938230305869215536374930918613362773332368659369577903548170108080787671918897894729082024143986506939448112621777990470005084436404701637198670247387972272182049787956995944944122655841306095475178367657822048692205899001862768512844695142674555290932204263562473023733935747121951697467688534028611232301876541749500912211526884268330915345226099818800125432071652545436468369881191123736500217951191464456818116011244525769990455613001716127088273707407291466731549433424786537029004085744627837480345516040372443359412857427202690057530449485477867895451781861880822462753994919144607211181454617631516599970745076092554625871360412518551363068522424384072184596184394890119456003935856892985614659924311877203935107700478458915235585067501198132334557312826695957217008549994900608108050589688976144430500068998370511659954252276285505417911871368442503289371415921896023272332843557939099216872964307850953790885557842923143745452212473534398305035207560813858208552800203059884023106155258401489928197215573836071480797114520934514712658886075692846805290322806489950675099389630678471781323097021594621411328399839360334835970529473673935996614441058266702279530197723606820641203816686382084883178942730598538848295479352659956495801946917942190435185971097624498892221771513346319297922289592332960543392596404263674882666746959970325889396238010748167233252858943003774227815230296702470463711626705607308642416637108812419663550263477777143376359339545928125748325507972263607516914863592309866945226077779214258661541063879396744926475940809273880779721394837526377015303508347442063487522820303294689073400480068473766049859378013183701081173212482996983697428805965575748901261545032941328611730518909757113435533198658889624000009617360713570408452939450562664972249864710196634844209107551894007377051201827001998129644291124167145672317173313338747868605878576825462431283219260748159131604072704615033562011048341457532906041140765988080112600260551074853581421113413642157663640355928089955871724198328978938038179971992474117808157471723510222228214872275257994462078959114127230516050969121867305248886229757121713893991044502225541920444618778217703186864443594007824302726330808181225391883925422105334005064733003252847567841960961139455795692837268869089943742937560798272213724907611263014809700361954307695628306549033613800295288505865715519670747901108159344536801777943026591286686933478080417547202370570488837032577273025703351127070570385270931512813521701446119575805898827612529708573812214194383092980130730324445695926347266338894086848119008191143937521377328687786812471615891051290248737464768738466681131002422439440373159659194481784428979203315161707582622074929268667638695477769561918891491568019661814130821109433420808228340415524812692389931697776576813917721796768345838500538388238134814441991559601926445921286858031367082049411019577945280292132609950619298524534746300978301678168633716229927570540541240718846812219304237617593455739973265148425985441369374788490678155701031416602734391970078767092452517359061509720323212943221368765627417401427823759327457092137661195449384903679698418131452838914106981277863568225936373823304400943316704442983193713747044381586341650845464489980209109488700915426473054833540260960159175990344952849110698128519057402525110798489910340291824170223274186523419951588964642594883476975587756682287382472270655244125680076467053831089269718236569165978427346375070593718619918001614853057087667539367055847781929754844107830984736233664627132104722554269672735206523361661709315097073936446142123395237460112772530250964175868192243116985432609483749967527965378244036885072236264330358523158587477556392327465764151954200561322992943345386373551526770396156087215158397032994589208303029391892929932334470791311076616451036426387124992770990881919235576553210952582901376643958902302369768868384187884280612931509099102872459886154160962635417773028472054165422831767770968196178619781023919975811280546243940563824092622121693469600856955953571807648753843767812237124148996086386175997596999884329760238162168028094098189659525519615316566953539518078902598452747175952966751844091972484630427199747979068955481194544250036232385583844549297646298881011422296147697531913860367016330737351219332235852011276020796354964413748853180478979811709161947613777111812204573014421402528442632900845650105038121883076791876240760999051513168667973995993821053937900366054050567397998149281198638996055897783843556592274551475771021402681415225975676968652773335333677648051446733369195717430597196928238269857667091756530740653111916151351613986701925894988643937604381589579002332115217265258171044754297961027847822433522062798595727652209998245508264955852645486115362238587488582820355314588954284311075488484300227097080675915216918297152253314509142944664954545578633798507180543222638770133931402874962174104434053836773441909087206274524441757070070636045180894711756328260002671069891340074313616566487420722184177971915871842808477830069432130451983770425597237511252672449794863287340496815303197640073359649886299195282021646199908718935012706725532675655782123807457804909173302944641165552144067960986024572737025611754039762882708445721433054030815929779191228173904880604989359948193880967160984520690822188407205745188145915431380080609542459148748975119897823481709998937233523255872818954623214132288764390052874182409200583683414208112772729038689698587444633282947165375008547478713263199659210003554825040886950525582623148485122797323306131961739189171998838913869165975256084705273448565037124518877632728056522646485672201289092454056132026605495324578153456089276183233833329535347584118891906320870219855226202672982587643220822141476896012024164886109500476734356309901505304566461498134569084542955611639336522549215350151102915513423324085210522066979874089569762693810564915185156346178217020450155289315912234341469259915269071773108756748320991830392630721893567542821895797877389675485267038547986097279031038887785248108113608391922549095273074670256811820662749214140232109616110996248734922085954773824223791494533441869530185717432463270736661953701601702616537188881397738876773142067174205120849557217469477742661022293807410224647770161722003779530913949210678978916186820036020760241716935926145508384138950077472828954475977345927869849027994356654748500139478202954351768175244709306362177220818745871279711623032474562181056984698936744138700549342188118781896394960854994113413632520508322215093738108070309656236025917585935548988738773547623460105943662066925458343115391777633013582830007949805165163588890916026048023097134572832189423149441501329891288750830575655187893107082888887676450226508929799753936448953802577582313403646498779704309395549889146240115608511868497019834235138975960401706650673515964879152051125651947728246474218309570739138153237649986753454686127016622529255352478420989225083815991184758070411607960139232278954341654589687504366084388722721344626782798494488839268070412906982469842213535177669276396424555426049045359696896174364190266343956494339646419895567314783604216360066317627332664614858961183483311969681455631527141247538981916369515876852777600163118976235478691592527972772761733498884376790899142940900670659156365460096132120020264116598327490327232493161630193804512166981670980485464938458250351888981984987695391015962484802219113364615469317248349473525267390336137506122443238152354863480419808051465521588951820093988203027560134176855133360028937871807124531546628384309301552896842165277920411894393555997956551426047601543144225606419031893003907352862296620212391320951664351100383210724381279268942672091963540673498139262381798858276191639340583417994520718477045380990528478376952198686014325395664426596339452968493165578182821032337865968406461767948702378272219580236593375728408159419629913764048417775364939843326664940848860161457990688408148909546577202468128966654984222213744903577242035991639877452768286478106525308957886279289521127301659841417072717865111228785593688209304039013584076563493501661672636565097576891595926415692556580876038733919149507244059279149787787401264937475409992982192725814212253898138854518081979425579761202477907102448925235667979689720455320997442428101668737996336043612883916549425900476591294066168872687224761761755801795115413248496431563550322739309367856875024327916671429308588121436363809994717723134044800473768794166574486647668520271736984968498735034054513408493678260325554935674822588374069108542001404368143926844720935756495134773540475388487871824069456600308701155650839536879353384808281831455674634583983189293450702251616175626178299836537281364686160976093710340202864260326887923402592951979642890924709897512795542546451102404714602487569883481009620979949573203426380967498619368657869764415206206315787772429657804802566243963586240330859754240758556227654328944255011380580530515585534018914891096952064151000616208965643371503179820032247042218421443305682939702052513324955732580233101640129680717942123674171638868550710364595016634409341854011351170778885688106136801005209725200344748590237538711256459513880125826838414636547701401090553164439583117977284333815407617879315950684541112295140470801235254637111672902135050243360345828393160416227268435280236343726916193925980540868500230248528555421633344355061958358386521354181700545726321765713770672669485381692131104877992891310811936460042725550321323858052914963900539385943869962720125477411463216156813274416684101880194151873064719312085519332158943581079577929292665214609996190410707836291629405606181187745877238264209446058879606994211986319507883727443175562993544508555047792819949429175000749929371325396623983321698192211786624983004123430028249731898008728541710176658789069485901545983272961048765370222552860871428593758290571509120420073438061312898785477495137567456961159377313709431628568387879657010532961533714492453149858445489738446877920077696017581227173219043974385724162579321094090876229813052104722770304687433400664894514213838243002652275134546902941129506666889506169067093211384869981238938386260288965085025646738338110935216212785686199722023341955482150766881478298595096670154790323801563298196053966069172789628715664432411194440003763791823400827497794471957146027747926175415486061842829520937302410648120110963411063387865402454283994792218833860758215717283632464794703731241947903673396231682880336327409450369431645995846160505467405842060821936185476088575455144106569136608712009096187189592932907723489863407481751488977908327232407765535307316910217724741680254139042827784035850322122580918332520822476482003820362426228063826967689418220630967506591490195625715574152455070416141349444630599643374754049922019701598875254754489423503457194137597698458809617694372481150434469723909353026696677847648170642203293085535501777171787480188556339669407320399343839719255978332786052857274152592003655059138026761234202011266525366730556653062702238308681614881119312472011457083782143715935473488261703843739333928560158567021586672368159070610377497209767844209389978046536647363082249904077156035017296594731316080995575147588032087404619990938120681764137726921069835599178784009227441679195599029867658986771056320401379224390855015929952594311287541433671726001190001897722842357727478051954306149432498713057391414591177937389478758598296220809760533402703862126133499127516093456276899185149098102651037007349444744218417852726009709128521828969258011971212645296876800477698849563896529307370608653924655359736739218825367889114090564303524432290651967890263502412809390332610568146602071564543327413005163799418512043530084934424202786545892338596041631321415286545224933025994081452018101709212365351569454249818643538807564123473418554463187526400951745350779880218710659149018813347426733501033135010222494826419338629313669069607049988977704636681764990431563770504721822937060742537514200773066299581936629993482274130609470078368446911712163775121658690564698251249134162310873009551763700972538073678876316681050114287750598598660277117327649643785684925559896796858992514071640055089064129630427390474794461580633575658749020300107482567589598485360806162067000836828747116653946709125127396690578961173992669510884231139180791760051636038956614255593113679312272289852760942768873125786011491570773134503533190184036973812616491306684337500114537118793848192363974488845732211019343010658550070437284889773527404411463952477306152175834514116944210845788602806487406062802718347086304238880657485465221964697547483252029663692451282723212831490867822642475971036274675892309746078725555988459767529445527574899527419646668629365734803817742327765841451472426212056822278954241826000861089495030462357375827923283090967228899369000946001867091600947264908902620977756022656537437240044420379432277821773913926699519942376152033318671905590040984329477655663749557196245621912511101878473349132660915226669552619693577435283402270323008716962514291559287779300572683547567684352099395118782734092008606805345620626999127027923344465601508530276728787616635050746306848664859973769720866940632950619026164726408677599294316040476063491532144404668888233846012821455730601086581448876388643819496242702903696468164177055685137995117163892417933607378306090776803973827759012104365004951369152268861915953210576370817056945984383247642448323596537816474232364492548818381747138754654957043951956684600150824452552791440782521815563076187963620168687214943988814091915812192048706658200243857303684999582327147471368487724172905298801066978726082485243949668847044977491402971428953800719682134472390379773543855633735080338902631295653359521091519991448888699236312323927009823875626798052050518486078748422048191720951874298991553929811079273858638634392161904590414978804904960052309787921511146803827824358491163181068555964963406004389771819372834539774691020303489547432467168672604823278173691316774357747643237185660346184661834346616442092531368763266063070640653843981876630658785938270011805407414082963308678712364261863231132725676210177562917445686673727127971189457565136412718418642166421259739671691240008979754666908324937577402536889859577848229227096081926887360406454801140012452990408825947415723037692749671483871323777577913143015205102599087052681670829379888798190112748173738742151079638281601360106572691361341882918608272744199522717588135106233111611716927441615166662762859016504698866054229399943004351932850005441414807073641109141152526365471267773754728850267311305671996846004905837552310073597035940450576493645257660375578304170146809771514767074103800398165019838480830782671053783615975355903846047862817841707288257483681027307032798551342889401375981563421857416498528983581844648768552316380842993427592056628532336698199970690770872356826748514080667486432431462427219659612621741048397100593021111578397730174121370325369802628972780160231623207964681892089209842137303365836828022838702187833796526770038084144177580716364401634712071502648246571206656289105470520967187113057787470002383102486038334066498618822724646815790745797564415814501937552601227410287021559325855556497521618786525386418369819294112388372192746701634150685944921494290623543870443506929675970986329915256318709299986684871020257152062628226673898889192155494721920698929682856780062465446714332558316989565969938534633630114594499662035352424964390786859463723008994445209391522811551437463688019107691101596849219037997456081205879282989093601818518152583621669771270234130530154652114917680932275265556500275863252425373640080105003291888315350042335861153165252377041796612153377860838815149903654304058698679670426357616776827441315823845084448170312548415889252915816905291761106235856987627244342558946838650322459225939143863383171935609423272359168065316652078209760943449475920708193764770854102987060082074148095464896016506399474133170561282977105762716053651487418966570532200129537542067086736434421011679378898203829673119796189534982726022473726042951406175184230025908866194497415988125077041467828911042987612634514800507308232246939747540729738516078538216409759381079938663538449336204416693555540238695676760206410926300414860485273757647404565134069028775238602575474346258907774180119842490414769905647384606719311671370886960115323167148797203979007914977742735912687842654510600528290314999160760511548151315638962981955628278526318736665207419003085164448324279540336120145049593801087191509634608953369708236033480318487147939564885964225883703366693339614617744996853220573111644618954621702934879636445699497145741144678284402967189059592355892599165581990156030346542345926125606843560616531570981479766809102959472223166960122219162819348274248056015502090251123686741961250330470492147069900214005502833602604977574347428412579173682177350858776442205732541401705637697970299924322219864183160703037871902049918063188873055848431217710425079638205788552732829221235166761144940022490473167843951201386311848815166604625920328528525109157255775458869894499353034892756417721719613083839560420416538931944576869953819804970921108313242758650767543818569961073224578416761644414692116789985935674681488151263742262986914326874648262867772992709896191780739329604897875071519255724556180930647862863394361295305785418820119355509558689301771465417985035700091116151780665821271611930710777038942462314102946731129971522623187226548861831177661826614095755337152209078665593717823228307913943907762788508299840484275978199556926991770035832364277047852226742700561244079324775063553908785953945345018655195169803274845634926370968975213236375504885675583603039441827788845088881766825243579389651367255409769035613573130240931026893007767077819096170795537617863521056563113182853478090501228868504168313496441684297470236928343555498449041063610869253735542446972619037577539744008779100122765924928179196248613646576383919790841116811694860652715496534292766977755116574084738804407603246917324156088318054245338205640663424028510736267454169454272657597455723530773195825671529067633426420332879083439846171753542530792974895632984712189161832301828214718037250832988454426499757880619847649212006601107015776454591918638719094608165560775019576552681638127598127515937207337593053889792437743613953482341196567636011920638188561353481339895319582797766173719047905852394927144211854305948633265278172049954411658355822692922731255223085554139985775289769500206448987373674379113933557493276865429739956053892991757956168119147649090896974219424750415880355644894622746642218615232207936977928070491508255937693921703659992648685567621967913882437694912725311546715458765566414254646287035345206168996056706743908155007682418136159774253979170305174989702788804095766453366090344944362939133242880963603404777749120295541754749892184702403510528906814494643393956949888469137023034451455539458408846315839025869115399783779969591097582431726961736534300630142605322692278485612382351790360086708564626632425660764205808796199907150119076507415565033013962506765964895037515642639516511599944855910255123906182729840835226693491006359979505183711633813531021280064710127675911055114610695095404013273017240826313630506605507434610839826416926725402441014042839138068294899473124205370056731268519308827830571384894531810184421324365199012152284433063631814946027274950104826654815443692757578226078724205605739641447896174856779187368026370121659230789173007529241910720034994362336489987790131726431147315051400356277118683946007571720458088737672012219522957581935865203897436789641284061619952968778608891013471014985086399926680727443051084555144358278971914733174879340660690380737053450403303951091299695564573583916518482145002954878431516251453392572731302100518334347269177648376312029819550320046947507333322022566567081684809885169037991905649354482281131260580875586084943214582438551607253124923111278274465810461613830363453560193336093058668251339354902875104430199257351772085081005554846240400840374949417278813842776171128816712045068828038421778933184861073993999482701751385439685266688447820217687707482558437736696054693075261372179924615143151680648394826755055139699021269160548589561359454599786377293206480478938223577516134121389546048659151376732028693472508476717596287480539616292348731784309949954541683166829807573425716088775044876579299117405055200212827070877439376842589128068110344420621091840931695441750595299178614780261582014092583688142943416112049844253111286147296546094251068043653252362174657796993340381471734320658481095633222468483241793232761870226815109072908276742840606353987034469024958533303360933387781149518180963185832010373011347922064147369941774862277432909114170439963759524563557665442753787547109092675840304463879968627632294229792727016634233732204920026325880564817941774935530878171034958892818668845313577709026412800334606984575403952061443565848954326957564752665476433226761707390602209092859214873249474871366798840016906030399121201990037487577016935747306979911508444339458165816818234068550100827145510220537300539255687868180927760922741573704343162912411895336970629846288323022432330201868540968146254650932781943726000938593719829358152111177616615485792600118471361182298057092452937203234200326022025891479167713000123533840771808139776332278195410015258978803741009747669110088973809114363548326395148804146555757099917344951989633371720860490842426903708478178914996091325575909928981963912163444693584064340570779903725878548820003076825424692142561897268630702488835372183177193155610333453086221690451229086318827633017614777309468656410006149466963679230534323369213433596586070734161996395374548196471613914217653083757571394441473821427645337006073851289569228989880651632846931925013996528719491220598651478547946963395847044123196639262544205177256879649691956636338103730248877244066179061904163352563990609389503517532795460364761270984072709015343509461864450332529927759390448575887772662499040427874695321016352373275650011700932936922219753902518009317481307531211367313976105377579539644540757455300592359206482473804073706736583459086939115028851303587560874756583395028348106192606461752901244141462901776630060295773646747205335958728143981164910914167907520383470810006580651279370925219731127953622414588278925725958646131871811535390410086590109597253893039780056313879624785496221060804281666109974629428927916013685424701156700924834942296576415874544036504005205390857734994276567365617889354453650074949916468348841855657868886453412979408925757641938142999808639577904289106656060636770843693259295513920234196270698066101443732580126379861349862320466558813830941863894886361829723874764326254298254401269022102262813151244744401190561890621327985001928831525790887260151231624086454581160450453683923240754611819703044105102601480619704530812697398154386709978022137295928583111992813018024013007761375700346433139425429483043483702067406974633483432941607919746961724911454569389163505937184093491163587290189249915711291316864523193993943505961802832111197689669090337972952260670144634330595211291768520865083852286497128781937760456292564513174128974625658620157673855252356741392523536331462927163157350195079488943694910027595227855169625281692800653208903168595778263023394647516415118212083907398360610542954155260575198550952607826109196827202518915413762815152200121515527579344394871939444088554261641992485032567345744997021149407210192681291542733222568300837498391926802473386613845212497548906517110375030123555837077592633570957969841258484456967144170971995888464416497518078161507787347911635709615838202074642136369727002087845207638194869120747342924967148675751922958790696257123815586211609769847710088044258964950201044149923407219838231861098350161540796363207175013496893182661029165115693080226076759352444095457318334904880644453015703926261067050878173397483736118037860074540696279982657559473654287411535532170226119767905596821502302359643007523994111713086951686532005196892059420452499065611626125992177445247843084956777079857737861793919301219245645805320132916381318571331572781652844777093509434971039373611013140222990167258203888095915714997810395889405995108769467216343424436250329224630518638188224620701191748068792276643850999853486628566283349609796124337145632999291747126233380021779034660977647224465598576024740085796040376467677054986970531935744803211102023108496262678885193928288349068389481870695656507686337940585743982780337836657614847147485591411733529402217940483744598963530720459433286816839179334309552468918778736903909095349976608326621774990049106881719916141527391942477988108407744798527316062307949586046529436891491847874964507462119159390978197668399725744228518350699894999967054249131072409140664845560250620030527461022855925872950633551399475074554578579285448892252691983866081666356203826748356853997569808913453623080291795680052805778640515305280674956871550378317178921643590645817949852674077676722770418492125125648828303182997667236727014178459215520457988197410061266317614067478222980784982621995293383011930554517989291825026931033050097407923118150238459600336338120418899918087264001637076704628440279023055075074836260400875756109845334390578759379992392034989314087349180517101450223766305046583896994017545131425979061073793260610115676972415665266753714117727075499409347136823166037834981032963703830875561920119080754280279839722204877095713880740568211780768152537053386383457065839310622249018282541226494180889314716223927010772694705533676319697968551456674791975271901004643526889141334393719704334580055629280871835359006061828657578138988069960518492619234380062420797144910952490463871647501719207086375241443702750981091663979601759525570817326471075630194871275375962406402210249893672345314150472558351742348127098666129761222559437506918704825115833072643017716042579991241394505886930731541894929509084196001216546819970423400824619384267917800622261962454237003040119314476989484615543324104255124972000702563225986472427045748524514988912724313468324665805935595712110407126360164199958181733870958745169310277073998942180701887275221030992327626332437761448341956533129476259374497827641459157479759204859978383554137523048948861168620683796819724072220684701120455940909870333481357908407864919243806498124492488033123745642411655435002784818126913228969548798800293673255939280622371690643603811568553002870532411607298429928142117544600407522375635833961452915373996117716130563429984007444664850899060325019811818264962930328596115411473069460566379624557905196893746435914980743318485174506305123806494581715705051467798594052823251267640731990685093582294343670353456425737592377388320276679913266984581740982567802545395618421342700436469626399709165988877065612278842350283833481523322599060015517229453071547598319796226273344490497714075949067710294072957458375126522170269219724540287588409239012446528102946703689469184406735933592504921976218725232367680943663541251023169448230264970157738840298367298470598004060896497407430820319620474989709364819102884806790316205491697958414286743730944545803661599881987214380717948465685451488982300672989512796337547367765645485349444100534487447765654018415019788808156694225273061077145381098854978516218443481454107325055822889723345487903494356356292867258894451596935196343213247790809058000855032841225715780133004558629078217309970229584251379360383574875050739597760765066107957837317778916254774878603483302462543518605952097389154912180328839039084439779453113933210691109369286204272395626693532994270141596041304234316668423021774469234134994778066582459563021929911428318940763221947778135482171469355831639865658235547335431907126511094495936160489140923653625571378341169795895421253914197445655297900183390537254194609015954449880390822687593734406472606424216108407284036333142001051429528787913860496608903158867370778238860659490808320742145865466468019529610420912741232591716803816575281848099910980514000629788205660555363006801550472122797872790181929053604283910997230835118729545594287191083520697313483630669503533062307985306986148497032460949477920494837852494180879780972654388116084455866487359539443505514692892012354116708301709019920361990363172082803525706981288286730206276953198111765102717238114587995291054807611350177208691867473719018658617206786748677074319766579078052604982683563346770962487524486765577131089307343260447320884739372623401855014293035615313426729993715220557025430041009391442673675903285177676731452803164440250582669093636142386257964021202721239312771323913240597979475375801576929831938487713611074250076392969073890429633855770392365346088234997119711229205918141629632231276053289483577886008455853881562566297886644304262980245526498250052016538871162629098974070438310412519344126191921486492710755371604968409881912408250059241295182699987564666392365870689174272881080235980552873469164320934457050944881438509159630186187169679542094351739731569945888493146977633941081282689449205655872273082160312462400539691942271546045547051334036317424532369685021664339547723279510544139438745339847575189706517625840225873542125067558838810994348696581908909544046405132226606463732311453056090588368681127450131760861185278128531347792404742579346260135416027166470403356462445517657445691308180094987734381603485235254200846540083876783681247050493628530918344595706646795040968008590967586187682648604371567623783955275728784326479582476115631482234968927726119035074599067937737942033474940472764425036456277048651431968196545051892702437753015696019613910604598330629418711179835650895324575374734552699384076790694831113284859684904046393253007880986046542520559473832092114387622372121414500029673281155735653655807294503414031943596542079230690192246912559170946969139804185898536734176891094213467110835636396172360474210716638175593585600308186320328618525576589029737477225012231775030255088733871827732065734832098193650350319631386212506196452730430517993484094899227945401273151159259147609038401865743566786997378812015445527389834939935096313023555326285592128931736750351982035267515767045071425463646294829733992545167847009333787882651988979458681054542839893289054546035862457529931364593251342243022182594125432436307298280794474965967350901290284562404838218185495956674520303000841068360068208034047820999164899874677654407885072783801790727736309659866489753164305375393233899302771788545448942660647366655029638291977075440438295696273067341818663139302181321699450716990649824597983363585350758598136690236663189294067371584435001829926979469438036342113421856125721546781976865585293458383166190038542018729142326922190975153867559584108751599565457240928028878381749648074812683349009467682828745759618512803831012924147106615376708647957148658826846427027191037459535346330111273855899440403509346313793921840667956764725422428647364803285899006581732238231110227948635120402956255988990258341265655745563934246805371317086785259154550391189221469018101527640462550814603697451711202406526060780107505780607080440879824966902395958358259539727766813238730937522269493854999926619858901031167289481916625758808386761631463677548394137012215100215384958923549125711592531314237092654644104629105137417487250994269717019813429452537732890031459490622522376889659563028488271411028891634297600483197516588446601711693342170764333439665545691284348199430052867337402820937120015894128125096415465156628278238833046245092164628227099462009907000631657960540886676531045143882008378487851727955763118741653573968930069788428667492639718639266479546426289741165066885735140301504396404118511517827464660899376026421509455624148122521262118479425959111115533140691004486992164248163703108758368218534706935393947095519849914460195044852583716002072231333623415452221518933494497038752998581526056525108418840278868914253999797688872633669596972999260524576909904029589815717711679947357562259941574667474381104639535178937297579603067492816536467226511108387503503046404555301175071484613901728295776725072394919897001408438825477025137201155566560088355200894246068568549027243220217635179856437459334614000379295750427837006562307330446078146090829007444687930047132394874886832996313073058040099691774159698474624490663112351111843472587763837398492621481437873069159412176568319134174339909024790918929152983598354509538754397295030515993085730794416786663797397709037264510278656849495586508584039234299695868656053046827951481312565856616700044572754974032073685487010336747248353340719019464215703508837279626716787582039731802330959145061362881187797381575843455177665400627038020671420526834727554760644381609254092054352985702059822413214658106483423503759378698398478077981535889285632658743609820369082444301040485246029069197416849385010940750378470768739216563285529938683822881531247559758120310896593621401591506405488603834627479708559018961924277289321391068921280146654439937437464780473242602960861648384174291604506526669572704176944008639418162903622757399720590052158178101892308616723721174892368389795983295636407330918255338281463154871486908764930312216329110062224956799477518032621975545461784631598826539295073246309640340351668632581212187768212715647984318582972666517387167430962066342153443022455123339014944578351284146242679469081651345997845173105748969679302089240023506696346385257183568631601360243060820037362698755899520609255461942740520210081869933854242306676137588404727227848047138647385105220866649385998230243383677603776041366346886437171471920966524548302674486667298705973332461618230371819518325782528611307822886871423380998683152576842916634980359504265039472666953228303973119938660707163757721135698998425760653819876479642558366965073344658430267778853812303641248195244364223138066591618674920618769816693083416020131817780063840260150930368364233260313129917401070453999026422038318968820745912254687536366437892420270557043487622485314793631302727480479857213934197958554549621174000400655430921617416127578288145865724215921956855330935091711510596257398632828765415302563109354754237702066716541719684921058318136492846231834312227637771046420335950908981333692728139408190852870294386954285318650875570263379253763177483640324521030681750431630562254121551575255710529603260713364531117732822247365313602847961835063568016694490989624655837838831035336490583148721287042984253945196070602149923677327056264816848500251104055836802038785930912369507225103160266835069185433329441422793665505604670177681060353608314570890147019197266587983813147754937766768890452275295235227881497470544655541525269610261998166308313475979092823465843879356917324911778025523352957189291188854241273874748100371235681222885125744119617151212737028830846935809575933291264669769196917903802801338612248224313387648878913579182695650709616102189295810878713276162224118277201250523796701749591885883487150721592430366120462993181017363467989675535451262448781583796701194508243269250605164082489968340389659488228843812359284892681844391016037070129669825420467078103402742977381795031674668151536210369035395219254382097002021100559342459285282282010376536058892534565124494133172648788613515089232552565826500469528009227631639170796303760102851002122910402306680368042833879117870172539360589134787582571908468705747842621358748899679735887540945239388269432821084224279617962536169543892581114376877547846088742082557985488707054998873534355392538874476625913940234812660958281023266081303580109687728543722661888654088810122358875946419787833297392922906919008312176813995828155092695682461601906999039366218916203958955706097306451777084473763717100486025834558348145533002183178524461649283650793717037859918942978172100427942706775158995269723942661494671151188570353137268091832009899502639816917013452245124402615193436142781425693460736163114629604386047204524493152242395158942059147846233066926016836712393912327984438293035357586166321255909693089550498981431664738074927462720352187558638448891300730442528191393794661906817583315759680435636892266892618618903839721121928829199637922017525737083134753085918812519052392286519949557654651104338743367130394614342976714074838742969608783027492419565126582504980431779691423816875153881695700675006268491996507251119848767015638773318261320576825284494286885115475000676632370417439894938199207223773603918822114822495115478911397892428156209746935392213242604934981921624348811931560217060636608594902909559388459011521864791537385234374675931322534447299526605913927171146617116272930620505677786902392897846423203383266640644326769374053717311491830741773518870469375717613104183138122538228764836692684020114786358938617856506692077716948547069133979955696159848750991309305744876554119309699215895914945851578545589483409551858213315807994065238706531226071283900181567000964376350315979064417418546375900150956888028330466626483593648002896680087557757516287690834043524119423595845068136603313586963238591628667906304901359993056304544941048377755723178130297565598912370509001285155754320327496987349807451422886011394143660742395175774831427360179431605717512526432204693137157649010837179672808530656012989816017697385863923640044918747505387367498643084842316456047551981239820071641746931022678247078756017846821748387170509194397215942689125911114148792456484878766650218370111371070032860982584471241775546752626052069963597401651175588843934440394212661689657015353800682471610259844052878931805382714868193662699682189338637738365780113987265486235631273803389472597033810152649496046125900677914961975989792762614738797559205575588353025930567073707492235825936891708353765934671683157822640644898410166124606724345537948364468355589485850583429358843534231312453222931337793556112520226929716744058460961702739348704909706078144297230957157003454189596054682859873257931584365782841434180329471288053146991804252073598377486087666600442968711065943974043662049479915692160892182412579634787172314610901069441491235502013810659397661659877714556003251910222556823761106700497073592005093143319093862945218149543142100306567380061583482165270217552597398608731910985341818005395879913898404450239285167726292443927333464225080544392225203533725405178875845656476957711540458795139863343557654504697649238477314759920854467153805849547813596558458228487184220614416786680438831648544924615418964779516669358834908872697006687583247834009696097648944043489848860764891204807987382577872745931237800754382775714017469821277623063359647857450282523962454884872208778882310627675070029169957229724648238339030953542074939815688198382547706362574640332638424708705109884607303228219826107081403409226449862044491404866383229377849842272985848179834657507691155082049768461282349556652189363022114582194699737323940594751068071793370099080636165861358214859702040616820128491372494217548727880772309490642459110033058300494739036248504294483811483450627938245864685036552305884175920316892069279856109451359832682100994092969814621800354655662369133995358548507833995346060367385953414806005518685064849054609437200417980991737582447757230188486340351509608709350472140210765672416224346545679063780796845573990149275436090124182579544121405458675131942833825931678498057445802315372361160790453037640963529051923900820205599507076188310649554628581704113635937851916272033694436802318294013395258089372579620146260944972936571129343578070748680555941574610012778682317181070848465486042362216125962176487456796928457578704340417167311463701687946933363776241230939351483311911232137687804458786145186285961310850845655705166043196491273600708765404587611031010474400458234799324204001747270958978199943642753914869270435114488146096750151378943587053395960608333060641801734018541776047084807711611602312523906224726256487246909399322607784397844966911629481516846906211750222469359796454777226854157377062197335448015816642754818922462231483886673112344244950086470629223343070146463872068332108178491335584486748940857525877621004125676184152967681665631065974188056172343376936743753184743417786736763248677746978774470823774901665023173515803116019262398381134116345124517481091867148183491992498353911018598538069624635417791406060039926177613236888547503710879409361849402186340607907085295469252509115025409712122303415010491823423001040851308744885821559183329048617066019518724833123960165043251969684449577349782054876584704356175566735727160036155085529350592687096772999860772050133456869301382155728432125816311480889801139046476672693312359995499204951187603798242256879665865897565869414058767341889449958910708119399264601335602672194709489333064714726263852947247239421426818413260252108395022232959542882227227222841213100791836371100632552150385143436412851932540035730870280666085838115893565099966610998955320601997570513061171845486960363857994378720307784266443099736277752886994167571297790868372472196394801475229878708147073586366729563116122007483464269393119395569253720538761633835247803787047845527825059341983675992967011943423777582428762155557969518900596529040648061205279185279470735919035612778229794225005944684269494255622842256171123896649738511369936274981566857222829575311977557420562394176028640133315109354894974380746259983811651665222032548075015083784386785099081452279748069131208534709620033314407233960348417382671171419387906937275408565940938280500375188627249107637286643872461926038817576693126564220790129588570132708638384416200614120856529257554300167106277279223961874093947924816752774518485393668339021598868129386279847433940379166677692981332143694596978695997811486311552826896196842561966781256702034594976505323734203622904105062374182987704551328205970191718754588479481721104604437563835296899497925486019159490087230741399713096052142413962049786472637939637526267907980959447534051898027221370581396518813201530388027618584112008685743390732124232856920001795685446112839546075471620527637137210927257961791429420648539496100506987598323670973850496356423762873020162610460078895102846727340141268113491952267404996889691960793689077688755408484261043242470468791230139964364908933152164796366438266146171048027674292103916229565478277699072872504418111100595029225984399787231212864362866409601897243436886340382104815632817609802755233607122459122103969773114827993034457816097224865284459049178749978402021761580127378059323326043429957049380129219653686943541406654760471404856508897634732035584022094276893293392498238941947060572709277087656686149752727804034504953752400107822046803129857613739062759698631861078794953857822112245170498501437882252522291218063088188085142312414905932707951659879050166883139139259060423930131657304209862450677200640190119093561623774002991779301953826106363757823367483204355723184401232637790752063179043381701082041090678406991957675858089865446046465950978471486805121718637139035115429078757660648730689420038601273049119981278318182614547035494674652692121663633704345613524666640977481708999317014498280386281072970514753651924063608515651206540814499641990174837544995843734595417406922027305349276996621106976242116890500361383583373704161496210331927992564958281940234499482325688260250211954696275976806727890931737026373848891737963823110119557271182918276439158399096929293484601200555454609200198878236947050274005918678471019875581174765038905926804410766888990308790979313467910377355701492269123243785795063109764388034332865793291138104411429446492360188982948910287387872211888034563454581121929747371877051421222831799580856801642555272470321678835723964881961677001385579895987184566631006602602515795687711552868238477051293780778419673992190749967112029666104887666888222070357117897979212681087808876345086102901787410265090612599872196142293842299009400771426660611476851639161663554645248379761178511185670990263179864913101627422079691637434603627664860550290140974497620231084845488271177908877503230320308659563376062111876300769560134881893534715272808919303399353687442746353800253479302240062694884966086159789391395271709737414247722970273097237485927823771160391142313288257502218532795688934799318045812418584846785893721933331000853348766180508735518654509852756792967463209964933304128117843781694866700556813825152210375945081278785441363651327711832797104262266658590537852475162710545119652315277958168229516599091849196983588994817079604313570717549218101056852133488175797885925684182153294169442158321518216086312489568645982316983227666282297415471793520113309200413639336476331551672693604958217711067123675768775414352587052265848837114574309605185155150350300740093066262870822261819596340410234997500267133143484509437719856110142287579738679667367763922054820208441392776191504815361716994011434406269550368189461198781427070431125309884245094535392243796113756089253482229807562848015194143215201601624179631303078621824588740846158614381701811442246018332712309617388466692418244611617517474024548958474863220689312984925844934877407116794107996751093235557185470416442600344590864967422466321729818256184617440408688422597245356900971921581918967986823552151791755662248250130739457838566489161295523754796353104629050173548152013930833814047153761762950154281615592021393935360002709967299474398573631057826756600351953511255276717332856319097166375773201016080645877477020272010171283714883127819090240150432415430718019804213714901623549159460087147888786657967910761143967704896582622290601960861518104034457770725699061129485785716638354070858799365817434767139340042104849460540011283550445941560215991382918669075138370432363255992137308930516534468034551089267547194662939321983244428332395508853270032040564572284692939811699147201623518417800143143177822528311434115536732429192455070217863255171501278006143972261112703496127794411072544971686327788065924785070334616118803989351665427071418295616622690564199864314637268306979032868167500206610396080150994106914739956257653967698880822052168915884692679245171178839710837131431151850767273551915961019089878811397091952998238098882824583553323418829240476350427466545098812542033826203291501872443556676928649298041937061367212690861615743840216475033519839460135403463213063565414112634630495470256986659225957285538784889024274619305182895495323249594154321284047517571262587078069190814767859448076188675007371538841112905442630580886040729141021697700912938928153900572268164986488964458036017041562973357861242625369060236699241064674510092604494072129853444042953071922051222278009402632881850715646772126047382084786559105893746548422500010586758639903238656016297509304690038755942589957221951094300747750451263533851165902519634861698730653002225233591314445741942188597493399758165049788940642928270337600925446237980934464560668354372459907914143480575318878036181093727198434503053265690772543799832312978779249712084403149984782511925927668732631787743757902395690862898296652230588739591567635626043334361556134567106074029590431377212813463136266945007302664455282866436159170350506987987095512912883284999000771745621015349348588950816295285972998362052409184733920926104306026227203899476985656983763166197939046124414873474606854738943661130135553863008040107951188319055364779585360084807257170984620164738888002329292369059771573895812265754238882047600908626727039733115288105969771990371168071991054320045255724257789492421218413582596851089975769037619791302850228838777440619032793372234294744530584324380213842403736219328023563073064806167061344880526487721012286472716886040079112585496105150510217381086884126414221846076429542888869147609283269451100567142638934287118115876210550875607618052928519552354440143349383908685105867220516175302923050815065102425922912874479614371008231647001543215113276988873633809631705117813332351487274241600693687897242689073210646788796280340588590335978264101229155936077694088064496000966520754428723619592235689291411007379080052759967609388372533254184194625937563521737395721945013953420728029479550734328652297455945278252477892089029620265761346901787008490889328302976323231120384156286605145697855657041966315405237445039856788984069383107444782976558699354542086954709268404590422950791011411074390011228949556875657225485803007896010569389140358755722646866928974730707732950088846581541709683538935803222148557425517402096205008388458863529465291816423317651335174136151287280901660651858317765306816380142486944397322033512215962382196211911795139225045496979811725127150269192697228016713405524507326842593440836858751108192403514317948335562656670849906575178467483285523914078839377992313565111465104693358699359319369966193776804111857129610520063152358352508050075665538595682089167878021742350339359113893610806494781462295566285811200599642321032001744361623204825353621450791378308341404809304315617452416401376279426677286947108874049081523353035526571377180432605367510923038810351650992007644441659088128062270307209580926243529520449366139144116526028014430465650599271369757655960690284437498434849309629991237972647797757168499718531512445771494107361140325597750639669451970830954715612462214966895799643113208389189694430003438331551228177667723282129619932286243158787827608811383508795680794381270964081371207740937745025659253979009075258685146910627854183252131727734630262109646837869092137616739560474047033893987739993183145551086618204224891315086572863700599778035362221258370424938440602742627235111228486336652383235337552630479552060306105936975335970859893964695126214061459215540681588527517279120341055610379354073832480756208324336438019231283732139365837035634088557258119743025761604934920571659089732623051044557331956260419665212845614080811077382413116586230144362870852291236404542922495709010237662650517128283274996130974933845649337618869380956073875972363792704828094481898280161064596358847870642707044710026041151724345458244144504666810396125644914084457723986262251499489030768386097188115577535489603979567372291424389434933161865091589828664034440564358789621172100746116657671575094313051976264009088323177719758195906386274350466481865907015315970735307437558754887883076522932411357824481920652594810161227639360417120275224901286277975522929449218554787031384357530574083882677055421275006855909124581668401279561288775757028995696520396465466018119477412806074170675573235150648467492277031211434931724616092592747237601833716623546653991111358475223831833386261972901294203507469529287923905276188438764285266313111370169032100775557979332265851003065954039355602140589774543492897946733224039002179706073846087386400333555195397378337701935438351473026551527999193613787212085024320163867786138526564122353743018690486801514084120252160910267619729825417097187511491548093277499809047961974115592825570360896677910128645399632273077516742188228885305968255110282059951965104709481748012443515288720175643503307431972101805346991497863075308759713165539639124730905516316109619044637611795743585428117444381084982970187043547378463110997715028312087507116121224866830402010028607569600774988835452848906294952918678405048777257426315977608677559143735257365260622688230004763926715482932369088202497185652402692541567127073566771136285919004403276650673696884193985818833755158203862340330726558462543532055160168302531674208513667260349112996757495238573110924175938508439271616447854643933307271101105858731197996055535664607351959255192622955514425322358096023487007921277945792696667300792793524798718270308408726184680765470637494520972222694592144221919443540536026552311127297164435213925760783023863104100800508284834713704476479475035912558401745626007949730263157056837166843274763361014027979807754777458515039773115994948584857997380046580452038399534217882161989132824603919777422983790875821738889455949840885592751123241752419257946803764938448801811014681580207645549868997258307473840426730190660320912383676478106033698341713955848594852697987087617214321311792328013340161972958920467094494127015922557599712678319520873317210934095643803752114994390345732773231008137757799434292186760620354521860407271991936063052886091971850426655027085407532399996045432478877371088761982809284892695791876651399966933381117360328728693793765400636143506113059891256219245127304382035239981800749880082245731740902218338982349435362695204118688103151065414750982914714934904847529337074974592188485455502879449037100566820232038538989386453487532079895509972576127781729531445858671514068321886344180845325135876276403268793632637566028539097995664390415017419735653375606970469196382553075432533456922022513771230019622116178590629405129251129842510586873481406665527126193333734634810688198043589894079714341250359079540067002063305158266945219868940664818067035532817974215206255839243404704903726185147676671020786907921846267559196061543144451018855005249338215374631902523896348783941164881367314331001025443909616305033854966041134558715485302347895850058608887775588065766787075689961949912545866970691133842240581943313284605043894882344045786572734520754048509321286422000199422927071684908447817760961606097944869282441857208753804411350385188353511377985445093612668145637720044487318921453507426572217605267744934467109264549578336331126889452208404104457349998067111434385388026357151105744976431707185893708978628147620867100556287119247386736456695881886271621596365428401083232917165001717856309710840824676612580886664817799478646038373166541580778380583259662128427089722008550169146540591958580580232436131308775558403731045686718170634376079424388936091483664925957670738915771474505059856574974682933864218766616793507542029885711194331551314161713809896816314518417092875312278721391699263061678741867819630539059529844601474508937622138441359343963619379364460596250797780986223095750547326381825210680878236368023962781759498904550581516511270834834889394172401609277844627948620749929128057234916936274984085161494775506955874965144669038136837927743894020038519411822105992084161105946243751680813691172950551205644523869953543211672164349051036751377616382194528933443377406821262364521065649392403363657590822549466199556909194837827456915248018326177084218725112328689307587469356341065868110801629638964724425827257020185204048383628500114141809346718302348734816238213730904082704394277249946712140843385471989282324226309492338721600602974324780584730791310621573693977074871560999112087560388642480659805548344672172447425549278840437947183097522865906119256700163959700668360926053773168882549966399658596514850305038533544271740694721299362097453047113510204851157374302539743838348660947748057040205056749595169371832106728829456801588839760941225315208933306532671634943428036166829436509812218078080194388442337793791360206058970357722678122937505416175043862611342680190962574192621578820234577299326638558959139734567851466612271760284146650884831086338136266042265666315199167680099342134723357743349356326297078629852265030880918145235764631784527820155734872039945823147083716111967784959356045712031809173656356619622947562348191928963949258608880924407944370482035942951060386623571094334905286554901918079946904915034702995717788504239481168974742060198149606537736149454928133647379631674550315804912904500900935566660927160684077667982205229090753163455551667705008469041866842010848590848550427259146731998475436153954929796178327125607941822999982421805837911371553217221961390285019577844149234714021241853504282294367338703494166200933910749857637713177237366382982413931584599813018229651214749932544946378256209017015270094758653876241267083575104687451298674547780597353070544739968250805679907210273688909530306042496854688222783381777182130456723867873287867309875363743543886093848337860578959708969268662264320349764858447173577981136537426187188385910932041133976128494861881462006814288463692494205326611604483002936903993199749983564874929096436267172549803387334201980274463779402706589245609116765100492096614582049428023010471001036148983601051093476916014714048294638072543443626882254314511296745476895584281848231052628821916766301917981016891330858821116381615512219523577986369621559654966180680341171468439081952893853805062245508341999282858230299697763991915047004603163970753255734859546631493621147671095905855861711151943277528928453044894050028336766392372915870767732793285059620365592524635465541396117156705138692672775742000508383344230005218895519422267132105952009595710937413205141721768410928950304350380359293301541140570734825311742497262219756779675076555810382705960195545630620945998945874388804246253068739721303912647967812592366209762834297043073395341618679555539180104586637611386315319569220642265708069737660372898699535855824511040375204888512000916985875097402686812990609024624377103682183832531442548328948948693380013590543831201508529309473046172980504882572274270580812266478243263146468770921833989406403517169614244776249864496017809772649310667012923990566354600405286249297698730307799127536797604507992200478323907272875602594052549359553076707252260330854821191004523596450122178514533975054020787307015337594973504061756400001003800726651096493946172242928639683212688700719187620300565262545871290986748661289699995516328077724374054445213782411963411385470479241770666970043008247697007726214866533750014035219138572895393325300068125203964397878077617951421307939591780458296285233921975921691630497684944686429971477007459500529689211843226042778514237925517845177078090196623436800329210958521118491792051660509168802255334009267462911888121137358433868264476102357700374310995670070982674226603222263751117508236502256701263781985505143633399363712527643680574195156597049079455087706286399545350178916517142051493180569869295515440678867215703685267817307079117908133533834227000209021449549513019971948129594031199066685235588672899401843137793671491281841046902149184312096959392946768876576464397370118130889182439977906986098959376599464527719806037500188813684484230544846300014153694833974447513389402149856548256143333585095945847568568566568753728247364753779259584799500695051915939343066315756206972541376454578452104353188847225719821235253269232039117054418015273306910570074462959587031579810647591826965564683110848004567211296640188115755472196022179523817367320545186804250595336752698692909319537124762612230590039171830939294621311889599628031450759580033761819029810934497200586345127918264654808116730740889005903159805616647959421197319490916435295496172578571092693564157592756476067232786208387235441775654859885021913422393451025020130268371825867438280049225310431917736046170979669600171726280320685280877696130053088269741941025341620366676561108525597385457847900782390080269253094389377779775982052799954056628927119587253678041090814002815195426709819805112242078945833592263667730966637799516365411679977470544218699015401555718415884875317202012489892712198016139608606350626670218273412299025076314103181797525707901284558495356913095302375656182991120840459202769238482052663642550334498118948283941183750181963405222317318717733367562053970627411361042220860653624170104380608002384021470452826579252211359401572489583978829473723931173282517415039123365703892545910390229565283842333300881136150740659288061517363080772883364969504455426116266319264086953900022531186354622369602772211749548252670211407714348833865250796101640683849160529035007552207767722761253134259776090190457607835643859248190110056211020427095565095462143926721078397925892433525692344820834464332238514040549302459243818823022108800591477318236809251244078759561204574593806277054423426815418744919054074939448280910682107709093898069773254913185843459969730372519539948652905929468386705755752003389770832375399284355810098939581822026147122958539205566371031029439966071265773347165027212087291429792962591944553161427475765724895747935500585798391776123146452500185611022939324903843483370116039481029785582840272389294827290866055882715278075345041674784641747987972373430002915688134785347651462762588638855984434726758575559072859127116849028334556431177209442163146330532170471951224968965634257650062400021732919857685297124175163526871173266507410414834105335095834407992717068822091845225951774060728393188320459929169546005592425940372266900509241738329876679250998053385985382813377477025936571824742059648016802532392820562634238694650649467455814829521378842721205727749900537043961711415359039589278463705307763530386446939252725866474008893583333803907234127741664275895559119633878764382145065346056817207127440756351279793513044901272585415401865891684220006859894726656012665803892838609556235398690236956948683274578580455482411981845971962596615944696040777519145944197077762053689828459304815108377254608114092066244687640630920296223388824760259846158948215538115171956225666875928336314185603849322666547351121870666686426343195416970650399004267108091168668452872314825563985451599326601400167526621582407793508039931400950511914867122635791057090618299231503962478022952372527991383900280560346022788126269432432363011976483706375608322737322900316559186635868612420579153926533933687209520468948921609169152258339547102692734268182155845346061375736224696379563254830089931209449233794240629764602238986684901972756767301796802638115064434051616911906218992608499358543932846290508837827755079146175567276202214931284603199641480086553987069268476836465066290154660553759258263204157401506986614905058623161916978523453915448246671144077272691365322177253982831322645611094301493846359682549916776212601467907748513099267386383895034964798090098287919951848358858412341815058794529233223484549687755570251314199565881588210173083322305078165303096966356781478439915659603119229407002466949450395826092162899954869530716412173407635455461046849326002987026049453020619398948718994547941208863658727078046421842836555946614083682958902796241439177322355337492374369826256985214464910743733462352467174599987262842375173270349664415981147636081782861630407856360148425198473652021703043098609280704468703637262511986670695361914331458212696593431350070011762640171963689958095266728842425170386229400446226174546676211587486282663788928097023548620917717386349680191644201451033790905001444563359146031592959547453432443046179866874674802434948590446608856292331099171966082733740995488516720108601379999681910029014096691157437597864209819480615569213340923801075712704878092348088399329779046837562965914591354315006127149379152243060220764850903095176680633691681252145991351365088554126300373176635656413653820290800192347223406393402863898027542600374749054280234012812673780765248948964441902449975362477017009302002743258818947852954541119597288446618461096621320439420255391419099274437165909580080637843849423541066561665564921936823714615453822046135464845116339366874134437403718905093690739501053371371968354001404162110161108987607108935137871595185796644124727377092812872460362948297636917732765629334998293137976389720550309771701927965309077784105909750721991108613767328440965628836018186861706884133429396366041570660213022073020299256171902828327255960697324039656414926441552992714427174250181683098646162780300434698590944818612568759439865138870121919763885259273078867451747324833512343657207427636419250252037549022570665927700260696179349553452279152465603490611235594379918733024065215128590032692829756751008380537202017090959419126813283943084990623224162432133987088601578219352908280598443037408531564233280324784937915396071682504408419386907586874053198860502814202209054322728740523884133177151776302063876031372742535753585920416297833760119652330597712501434149523660461420970802724912872296233882033599354408848468857510399856205492849992028923898525723657187104822080199809567176057550965494199867672271320309718712562918203459818931409686055495626936756563129309210930616117604859719921481493388290249824199729169601197381248647541723016774446142535626670701724107750422066106716742216622000949605153047634106002975182168396464044605184627938964258133985118276839440973542535344317073948688061087511002885377969888515506504070570860730426186350782865982700379778447883506686614589801369652719646491962039625055827873393528719586676570177605705466448391664076211239069109626092632897461648036241014989521514063126058363296359227041234203507961281122110880043847906450345077014502936780041772362608694167562416492664169360848986923440865255554554571715827618274107315458162014634537694079310450392299278924826866372127197300850032064870153937100142094759587792494766316376272402633366990319818789962456630161744072014808674708172071847322252635009388560836224400708989189456709033431100919100323720861283229512602185487483091210036298201417225995850584450647420052922421903174526341264797305763434129593897843538687769745437171125215140732012702981564329068198382189079458738571990217334387065582035284809492672550907943685665814851577153065130325351520944099469950448892816281011544322391266556737614062218998121825864084281159993156642899026463111836995065945056207238368395280657166966499142171953202558755210919870303618056661428126395747706267735056049686593789560068140029095122583397106999653226447640171037968115883278096329649356183759801192857314697946092761493658720563832972062154487208946798357228242731349200738525406710220145760955022671435694006654041739050021683886434496708592237981569040524890313036568420032166474094876421538761898878945761504300283471450114576241410122400720448682467693899553157866742526444567918297816257977021062909993681234423976181430463042948211879207747079837009204517473941356181207180238191096634388717845627111490673739527078742055116768322601397202231792069146623766517384685763008534498714293541059066131529118138446508786093191212745954086898154076457187419326488679077515421096805880505750941810533222172422493645835565654740619806919860619541903051164307598957412326322121226062539928730127918417656630473046198892958393019312623887881048049793925484735837906812467333286081625107539386618489682459641903683581937912532598669009161701335963920731080866916747565955708496010275134537468268786315337376131075473641766365602009967871873485107243042925434369676142868408416870725781336497041500477565945143475613634561943720194768538253054927266539434880583729780092754866016250839489375523702359724823367737550988933296899854773788213496253246008058305697395025467687269325189407644976923701746043611359345271091692792401104997424019850313974135441345670567191562477593553562164505183169235424278577003455529895147068647082359780344438867006697008982238620783594964546504146274289437609646813348667708457680234763801462165874419060998706947478598375085364637251974269652683085155501271745851010550118304588512990477768616820930736366796774885439328124581808209070356075813807525345299254172346691527614804255230181656895064668789262886438552569092508555185456645963099738894241818272111686181343638745164692875873870416599757971359215561648347549491007854325223008875689215434046306485309369728835693831630600346510658360105570697677364040526253637306956108654403073849350315000658288886142486526098266621854315762628129765236636901488233818793565339540773431707996322732652522303536507283396943220085037760075607952252336842453806413740826615487022524563741863089591203803770651440390642233260237855946234629707173757083274819052470578914920996080711229324175575762015680105352895129021500851555459367132861187909413992516465872877762378536156049874126019967744497208640589429873075571831418612672228753821259786989603792639808439257818752777187760294875898093154869805254095508134804816403881832573362753086646561107921558093145221152509842085389271331926436179699113682510232812615313567237011388084402081029533861521927799863735363899167750671918580303807045166831393411962327873942388962191514196201386209362435388536574083699225130177172020082833585560113565941035176885156139980625688386530317275763337338742023173407276589058159371736234570209452669646291347285882107109413974050379620713344098125984063390107438750763511004585937266557586536745753675308941098181719779372837841909915767126805587494800933658804751163491336637619898547214854098496431143014289632429474021497764036737636814459232902430229462094606110254089127110165441083591659172492443157741107400136017216707950355825454171708084042317854604224350236030876163538918126017086659742586535860385838687927252012776074036036924266108474754320150054455842742457658402899406857928130899740752147752367480110513490399658076977241704309823973995057618845972506530072973087145211311027144577891253947930035812319202775244566083216056552609574448095344154681958632745195287325967938731140359138851743506904443299399432884585093586547079350437085504819241790926714627421963602079132046417903126705279887278617443448419612826925269921907632803796504971309537933761651316195534234101273281175401404938087046958308293324117223901009610765003916556182675696768017760344729501552704307604438050486194791438208224020506312616469948197912383711858694446742671394196189523728931716096869957044995886685680719274263135077154649630327615043561025867967577169239080305892360951126395205211613979122236960371748295341974383502391616100206296355288830917378011914394975420585060451821931548692711599606565962076146795009872818705090486227570699530210544242412868986622116388914735152494000964686849569104955295937643873249897449193017899947365445013628290801299176697876732595844058679111861399378604993672361013913981095304837814801923589956402299130449960521326569493747156323844809851324475618867593480902533683835004010378735353715876475594382580371094220344027794218143104920855617654562443307453721613527818486601422635126296659345409430066021958223967327358155415189127615164700479755201362849734269360241471456463988122882521990870337923434179343850134382768016335890266268857435553671308860076674001006083576807380285736648554267062710915792938898909298657921381853978845390930547365500753378841301903091539606313945074552320078602613052725896969158193218710168790420734958058802402752730678588628497738222451557000678789412088730090062116214769952729654906983020306286131338274018465859407706295383348435046776134823312700601283621041510098744279940963481904635682301457361579740250069783875668260299652129237135377790717939990646594295876622194547897496612767930098324714635808203964743272814373026727974536225163507232039216938564408190629251435894951873519096767786407824012753616043554693616256972257963159886185564697787599018277873619595826064590723276403887495799219694143595125761449000480844342966774092941901003307830768119186624571697338680253830234191547732129648679291549019008494078897802598789351848788164561337139013066870714943134892125692225177909768503911027666341799905735874040438618711975250627620570354472725907255000196495007665232581335642862718626521597139431435687678129341154137259362022217401270568785750383543609168686064187960020289045331916910018724078798854257865585434187137535004183641408822792104447856314921819734371251361312576699879419601820154342547267429696134001627399315571360751892755162512122482738735744082173017005838057375793676474559632702892125450820396376263184234389777157113475579426271472150490486152713918854440002525114262192252484211288453777382886234801406119895102933215943084545247514372165917557035864830795997880585315599641618673393646498387730535750469808055450350670436893494494927779718086758649698522420989584884049223865473734739115682368349238288450968913517674180896716604999944115103497909582283357730347945396957644148801577964170304524749563518892328685626002184374507400014487817503440836621354572772483778851365972920676785196029673629704805023817344786210188873009628182075612640136445984431964509348876423790560561770019258526466673942265516656665402143817396332111104020061027942545325571004131713240543377846658875890398070880247749580462830348775842548383144845115811462966214387712458040496435521105205985281763956751960601401536517684377912816475425177504074201485396503233216731248044505157829980881267352419580427788305960349978564194120877910114436668173223454934862357330157610843451572467696900767416976451591115922901994951783453382307663257303740554556787774518453057754701690473347679586896332720618419581020256643363225885527420095491319781166670656458522515284282651364222150077485838139831366356040694542967197568539932983456621515818171685550271861415199898297629611114282748607561970882091673512548595551321650962673093696459911975255042148506406791638268532583582121995029924296654552919335673608585822521245184731137201151635753970092309265641562405995456085924551753357450343697604088973634725031148124507687565554627914679321527035587049876234750772097611797709126987918753452450990263335671596737266350055573284841246627692003590316853063489688511806145169444106813724853620529623701922401065844605985952431547155430034732651031565485264103495575268277057629849460386256844404780681673871763766097711121353585105555292654118060050227378650164187794284797957657527442995853917075016369842609225884341970421501777970202695075479965871596991893814279703272787074054748624722773838452897235759846929409727052373559385803383736004529940249027663579169408046249308721863563967012489328726531472609798946506887180931407368080348557628256445758057895132689351242254366095448521042214950248398151558686689741187313453555644572904570082887091082082125317795747750210825883803017286483515612343299919366326322052414692119457597230611374702702354455979456400227764654406940532206881694163452795024107893035684208917448218652832221927559319476903732787055611096011464344923086657972073628207224862428484665230955642562106928385744107182088216740047927716852423869122700888143203767210149188387099616403935275557755541230031836122340184068496944974221522332194389527264127872653320963778483983216681331541608739194736668609398696379292628082903732724963589485298859204010717611181245887852795542404123139603422703682825109647982357356133407288762417128347279466174351352828530773548455772301792774787512115805258727374805843960918170689913718365227761741767266092713604500393428145000979364468378439288450110569945341874611935584610801594168373459013879594621552689494412638511989849256315072871490004820875689752602879797245661418164184966669103197054930066227735365914284010739146178801427346144862812216439455111133830834864887073299914039038435533967784517012274065212256513843591866447282510456283977529357436383811153354440319246918485899888230428878056410047048455775240402533292442291239275533168460422279985866129144294515881566102640447629296128190887136957790536222156873577931998677920148188116920990817050912845618625831604352206757824332861726262838280633599952216163778695473304720453194985572247302143487673256802548275647617471548491935480265789039230622503605492203491202437826838767473793409478719765507455490856052073633019285482120722357228351810702173705657581325912242627313716968776230342003909264466871174722005656414190467764831023200337248258200320977591430996063630919555153977083561656196242381114201727809550302998752258749793054089362374834971156903751340681398543379689659024969579383436987444804898924554975525025271103450378393441071978550246317254436232419219555714727322593974958908349976265733060999018713582696088580036181719032612694022149661254980115809016720219302683671086452232799758203602219086840388583878644020161020854290094004933902847933132505923645575763917745221881782685112212143247330548016034160504946432920686628856613801128721954066973875657530668321442621727240433933187995147781030840974560659936765212523658455564831424149068250942944334395217231119369738445767797315457936750703941369862161150706950484023696624968554155022801287460240974780639886848742869983796143871717308416923673323185765704542930698666704868516560026069796269166241011649896360761249488878652663580067441586653289654750178458441187232282151825922706715299542462922525267183962458517435977894633941180993650281998852525538268135898965172614130195657737882941833819288062505093647447462169375622028713745705410013108802959189652385171065005339552614825154768206537455171490344041155446735747900886334779963797372944237325616831879991619267238487615708672760178970112997833637841631488325982744120491270369939828703934806705045888679435520796593077804174629830210186177792729109555276824954572964319209142082804060854637674720996896337057354683451548485680169483087605410255931551660846870361863669496571925266157374435243436679949155099664356020417094852767405314038623333023671654024484876670302223011280823953662281636883333568297182527719784232713674281344368746192077451476828738794297371326112278650581414308960425281919856952112622631061687159528573284472189205647365104500514256367204876730319482265401322246406483733885044620640864022955642384723627879116951629186883111238445327620542642841084494326103822283043066297673149410301770010934747146528182256214384055086159428763391671761950197027825082265586064653317925095670962520641628106544218371190958249561073135124789746749701976072475209970932670850104503961597213022275254072383116727263185013723577867156971329771488349254205289820591743487672249666676697439344984238536102137954840717652293592142921643716231426107007401467930465059407456441451761435627362221472493104933729865428268470859948127552813539193518300960130429160598019859360439907018557753101789326316632752567762268966380190320430510752054031209076085659328561695079392303291461424161685442456189390335473567353819807129907335375464911640559928962863434039341841820062469478300610475886137102807171388148875326445170323696036301356319940176014186052964029250353822270837679353521148023820200988067180067478753993206588011905821984180659463895214077406632308541415744228849785079105423875301154735781446321321025808660185100683294797943782381017165962213433612884166368580235213269299988088202643235674297662472205703788449333416101386352220564946083294006606208625678094004182735721241699640176543878476712533192261180682135668435303986581579362670021474861820537464891324295833114977566088144267799655649212254817673209495373040428714271990923010281539352898144240238625735271107101354484883932736642911522503446213951787141044759629019283676232712643812913684244778289006373360325564152216841739072072480909233200520871486830285877882317711205092250653569257782003592703087037545786211893846096508829319216403356605133775848400697053884513254492805934065369913268640632455446816539371611324303182469052054723395469830711473425768613685361993610936403805072432854050963922992864856202649750105547323955650786510036475927731220155539647527965130870994212496418438404915432023352014861040915235862369798721642518288391399045714118171354252218359611718771058394787282093999030985920455811648622991590625008014272530480039636371146766189235162677488823288120864671805259773088725471795491107135283631358491116171568183912469446296596263230211198913171014615298773702315790629470940358915534429608137864481545813710240925003269022491149254445496078958971922714581140307851619076154789413680516967339850225514544787444461514926121990133550340933868399127499556179379897057070919489134503939507478347334731700524561064023255346025985553231348626704643770438236993428869358931175160153141710100619192072308540385128643140695014954141732780613770988801388992778866335311840382337936069057253364362810179918578337888314954842933578306653253482191669458178525207341509797206362104114775349093408539602893342659523046601326761127755861089016497966899482087466811042921972136100964630725143247429177179396781724425408946187488162099614219932717734193073372986859474744498681574485779857249208034345865066923457132402520420466554323580229032034378897001753602349670212689847166985050930870659038114188018343836011504928147165188573142509630440273366754577463065117049897927825430726738357018536213028650430083218283171181402816871600309380934319208835084524246069234262343146562192015584086893400537830794300470336583797482755701140484072882828269589990546751697191859262229335011369352861967211766513961532667201795209235606612954791793139945956695547285221401258222219065238213598168208940258399645342906069776464379899608574616328427643177639385502459328207773522716956001832398054332880903563309139843811965531616258161809178452057683179348727522594194479856825793805574034476233929776538372909927441792059229330821547931923181510620554935314700832786950702831185197986735570404210503279305846868575559023044159011788698488918434418400619401928180301842251226088789071958360645321141384055688576854833758705325038856062522962813934048831703049273619010613595376443622698455302022461526070906273867342514232769814569485455614670854786069466941904457998184085793024566080466926560044924383994250577313661233171213196374619326530764828473656586601747773896475657651996018181091240060900002971014811717118651047176654343042743434293271658242481835697361801309509022775719955100818020833852949888918517274360209228002870581875375602068721151719106191285178424605884721836689148136178358993721975674310578680622798512222872985981439798187635592326703358833156066654217211426555592372830778342012758677140025643709053948782104458361045286844224508176480613352771720555292535325982684695294784778412130297116621099547445850973321577252098266873624846937883788198330765201461594354739825127326091274212463407669008184564908183812242346680251982950500386036441303620276423206046675056555715165320628430788903015758204417921486733686096162933361424513561937103629738387152002471097224077343752543895218366872799290720873746110359395573775357482473318661982411900227668123914931012335512634557234467580414133510672896938110128463023037310617038319230260079002381994875703689904766968884847480337776167656594756307633576774288799166877450773573063153161263424653079435704505242502448457499101985717747138908495586695224567711588831857537058724183954832602232655000475745903148329915971596743070995192847566375156911079623549380323354080089000767153643886292501239306513447928978024265176374727644353033583245869981357277833607602326002075100408996741720716526791295294407775135026328769418766408867616644610911816177643827338501678141992502916979967995476232124987861564124165057997316598180715543590612806742597375201069244930738333880177749584912295339742079116500347894286887852320261411910948168110110504801515849406685276013795920052050143780204531078584049001674366063056127742912377844291631589964872084948157539204153676058396036955965178805296897569408934219996520096861844883456108673685033869618684878093923892792408430396734973601754949040650319524601212587661377451825239042762222748838268254968372515314442216722490562894378408573446318766617260482349366669554003496633199252476567269218930830768234335461296879473871733387042288128128359022830692080999871765181280091080221315736368156872635237822409371989709597807040415721269925640316385296162356302399259360361293687114650869946080885602045322893531732265857962779347166120071844260706686204915672103674690217711784590060648908065722962940270167379936158080177574271248025104744398593994311447887668543546073294328742283271391097173536732082535210810244471087845523842968172696343081335965487442738678987193577372532721715511531599130218538571279305580639581102024867322840467189868009364040731318290096203674880913117087203819838905813966187265531811703326559555529793928308902287469681856089508630952118235749391462061318873730750978734996592950042931828671403726743084290502746342623599176365345720756268074892615765307066353778651653604434064582968519491628958078356467567186966884737444163815151686628774432361157222000912248951833308914914597750748075753428078782539641061032759034090698789188758306296068931746994085715635858852548374783295303080640305714463266781934125938907285220942522878583751240229435793582695744902973459901197053312140269459265860489631829449393795958893182850565173805623739706320530552979207061162243575571872139853223235091831247092914731630257109975973510541545983757969516885457494280860475561041459035811173951318447951459837290864333707678684104499555738861519763308232246721494009459012084254479158953144321235973282565294637753529080313563385904399631177924978916269802604813500397179055734603391973283270385320166477371045038510391373666668008370808587947442005929735274206574142088602557913636313077247901943939141367618345932208068538985219392517929941982314017166125118238091389285588316416839204649020869823260419540497574037695502384950644316813678842228468522275410194821154312896614402156852523307676984029024020422859902319738321228699798557203373620050235370642138057808123952569015913268109605120528967617702877767321186240008008803551827242034282587002934355085100615787042127513645227256221541089166520303519104054488859922150709747756315297515807338119371551298560330067137313250877367945854408030493073031023295543598709538573462340207405388721449327312229704781636090375166956065462357784020286004026179436638401033302207345589174070955420033733613353278701032172343546251861807152174719424453313987917178210120080338317821962564084543963676858599947400840782859748672790780210977220297830666883465414990260875194585277640739775254473514605258090356386507199544639478543571502250834109442466998185821220253949659930273904865772862330780236058024772228066229588951268486488486840920447229236841539255578908134340532838430313697950844540773378582760401553255393909290218647079033855341843376494737521814834646096967428452557960351828012593995705102905479764842529831071266504585852261023383132670739475785746120066562594314043240992081666132274768393998727436638201181755389972005078188250556688087199980885968328198187556781553946868570114123869742245790875967289815098366039389301951731588065971466742735146578518612142647498140120260609634233347888396996448633864496632584406892928261794838186126143047576017780138389887034322180462356370976452635557270882872825495527499999145356724014440926099474951439141423853519262176746222342990603520537079061801116978988469107292042578998569880642797514781227044951565704836895217862530303337609078906198131448074250461989177215475549189571998827200484395013285087135261560848094005998264176193244976063832961622457164887484483957410913506221227957371094643790799216463193865986854240483907631593098174875769510111235002635194653552005790664059000681663049132036710770014724762842735272817694478942673844386152306796762912825304718463467858505503521379498992832512736271584451182924114676324420426813678981856627888238984429134819894263553386233925355196932023939732033568757762863774720259085470983811802401214096438235289016933725805024605008963855254524245327765971624133752812079572486586203949588181618563437691753797477939712783935034373894470844161097808881728737377872280926113069874746502941258668936982259701565703348718521660633303846503497517628824136309601113162003353569961886561758565346593623331483599557450948523126226642221425942143837002441770233604282024300074588252700803798021871329055112444526156111899740544076781194829355855110281343630409776693947101303931300753674481140229301924641201739482024479406384944262092104182975953666155914239413793283342089138539422894043437991262002757513929800856149274363238592693413946196721438708989728758917311265527614332008194256495371883345231197768210043748498055437163816230276298430151765407571472520319639035672990663834234245316164744281469049479627199737143067960181743673330446220841245327923392968564327230545708683001727236789307951828235710075994580596012868970981483789601623915928208068780679188363195302081130020784539426140410168478468914326495340948078390806167628786823567849303213360435546031745254652628804592854065405436805459670417286736938599305249945765901871797036889931121262879655358105422280685500419240563453460528233007590972580695418737196041432839981251898964520877056305179854279382994417312019088040862183185947527976497908914398269491468004037141092445417442172109548689256182303519022449166598955020445705475113242186256299974258493697162407676313351096548803191475870507608893717873375285858501868741166784846919360439377218208290809623122697954547408531262041450840223455568445286244966190866331416892810428038789014216212454049521288817418027438331357766123502277177807322962787255911849137278988489826087106109903861549508925518880957616681070046418451893493519109065113512165289039825716084074840819221535016869977712692463179030044518596284044002354859991627389500434380502628837456647077768901833848607662344718951109009238555642805153922573490185643226223427268964225621532106460092943140678238105143547354698902471997509319306553399014426537749809676841753990140729710204483164900444825641474693148479868331869556785254485828809540165641373733554661287867968822695375853183134816383201909917629398937766549858780121800277364814550725876930070573836275823867151967878386741854641621341542137894690987490476705661004060176776788104542771463935057041638096556377564178571495598638931258103110784880027661694225890571423611271069059246120104231548472918424215700746090347434216236981686417826946229061263977842397046454110028835417430871437835319385544801171089605477965278972783190632573052151257915335283962768537905672937863104602574295800134763469408341830058197553399739260089914772099077606392919552006337778168097365632316642095103194859720431193518195456064711629864887188053026178508165334192155543693008158613680609581054268167884611475189446345789973853224508861420875323471544166084231666667549956037391956225600844645093339682342624142842873251362714514535972654275098863286820251930522100746282617704603421658272847398846875886175184081551378470995661127456163427625670846600121309122002915717090791481406371838339849195017383024759417890878471296758769309952008975940485432268155218977358968308700117034812462664244332818548181625781165725300347556741349365985090018243362966495072166908675367629240281973479593250880209431076615474175984265896000874140229840331210918120470495829256187796466567122722283753169507032264225738421010593412378934440502532101266911516881956715988015871928683300374990730580843230556191061889197235317148691586063547440564132994444110955008694932074096859187455093392572375033301620113403079176106934899855680630164104576805200753184100818822665405238823645986980815728179137750102635127973738517042674625364262652885900334476765090642924154505788246877647166215688744238326491473353389059482034994276400270156071478034725477574957673510762063027822868747212493286272802477604524538273601267686473912783279123603892680518350967159242846582008923111142395572976928915843599551488707143768763037111837648692492239754692268982201150614812869555609196784884172537825892215260949053929714003319857348286454023015928347778320762463231116885532406628878829224885565830877629580016440939053453971486781744173380509609949184073300862558982805326153833268093779987519568136970253282200851259292460478754431570654764069100587506055664735298146174969221365190562975314854114553634033679845617260015442227896312566230974405101243493730130366642264992950564623791841229289262491606651993047173575791366703963882089706143766856577882219189829461797864496607899640055700689850293538900040752793814697374030562478879245055444295733393157750555545458856185208420423826197105800325125950051086409836997160692843806349767728283502740456886251015335767174764956347044747216045125952442877490113291488757092531348401873197299902703952342027412467876546509990218526349519836064579914420656519542358591526196920408465857483135041261314805069189610576225225039110760480597250106083211577318863667809074884930296852199836904343461565064729734117743191532724603789436296197335208957011050909994447087261357521879217434194722961083797600787037415569349347328309018697186174492432395826199651536278764434338796799017530611884272895594797950165263147080948918160976672257722256924751722360754939187904966043702325108054435170454292053388149206759533901264195595227130716854189608504711883516186809802032337876567710986602058447522875035160673245038975063019929236798168160382177845536482054790076317812740373482674342600065079810346023458914793618150104781350008209557620634586128007555235249524996902307113137078282858470599845360992938071076480868599795332075791238178026781355426726080863351887262499664438451114926622694807689472195519644480617554822939113693825923738569338986972349333969859799800659289061427672144068088422586461131093907700383870950209484081262097065415200400594284472052124453053801200488686262268653196704541438809351175489983883572566122068870761856801222415605226512050009138569524729206888628660521941689332286361589431917452770638730515635722923220285056737673097232095908431568243689120820288150438987268595189640804603283131512141137506783281962154578401070670736999172505520512921863369619877411444808717288244185071129830502253563509125483215349229068768983975227318765611596383921803096527920556181419185350075246715228543922150737721558808247494912835685605985883381055962219456092321609321268558329208933402033188950821077585971142077346901091741441688656822844267353108107108066854081923603758129481220346568794714936344936123651628505134371897526063976873030031331785097226038342211349699830307629424093338475311475554577248826665889382973360534700301852885377583182349015134751707350460850671473533609464820013528018281666014507682416635669412922405528345528150021642000796125790270196309270561357144672031866678632490689259398595176006644748021520530365046363002912443716851833932770565840429680229140734199629380449905736142005213980752568090391516236829185723692745344955172390195396005994408010961058068335444904755376319884883512732276348251460694580275722668407421703260448699292930934044468740464524394088222782477178856033070311832317016237244258562241951875702921862578934771025132440051230429094175805026571709046858298625974636100280059226387610666591837936909363914316156094757519643847015265715086254546910538785389773658600485976138534932487630289405833849874518925947305135097125950580201156949845667350580454336086445633445406654964234406834602043210228947568151375498832871073573213619755927366271248615149776530771935904365823784335862352402232660451238967365339599574502162746199085328148432561087333809456207296669968434622148179212683518129903628926570795717270644271036861474777632689247164389460266592768085293827960075722519049205684557744740418393927481069374251641117331915831280436374223757552640995636848480917148804381099927601081058128201370670968304654485136828223390135044147365050675370202750091020642408804225001102207878917506370669330896424766194172197226101425204953580751152679033804733029573119499200117983095329995725092752972899431117861280973468975849259060478795624631634116829994773519530571362530570607461709749944362193044220363813606858137470264719186096964472727447356461257988120755047545636870160672391441269708289753884668322768794752741669028493994237637416626567862390073439909709186035792930367940577674593617338672002918653244159759702057079336760215891867377098507342406683751969139324146699997465722367813249844472314871543847709878740090067241123127745364336506859063593788373505363314148108364826731008290599382569545034064394009759882009652546819224979983993728490722191912945484804591287767437079057529906037620079284775135295437095937204955236206388273195117090276459478439122519119129500459973666374315871521013240351197924383513405406540581466985099250040359589772481311864310943109010372217234968225156077778630421453579887889550008222611198497149958667497275106131674492220130029073524733708072575742482143623699899866226862428872900219682968426332851298281878378584111472113642628338367238646391326189280413692743551916378737189383179826798582630888430432956469355358829063922352276928127513265988699086339626312929805415944628904421070503205672571908206956444058261871272415873656434230627290178776142680006726250765480471658486706358470102497641094739767866362915755783081357550929387132058006922204137874862088467232034420518876365527350936546094881892228072317671890944499714646126791618217863617705690740803175117270244152943303939455530514491508705807795352628482811728640969217686181022315829999020682569332197046339310483483370328481134933856621820734609399051539501125052143388361391934794498974593086930121028419414442065974274085926310582057864101996298224545813965067897682537748126461261143365729542964604951935025293460303536719070294579874918642026853123250527579802616576286375897689102528018933187948882414463322883861368623175437965378751304789730095125259896824246398879110106752798706276713754540187440886340136449438399156479647081932448736679349349770700558835587717665381806699928998653189485445325767609630911601379559287640762930112393386802600563504370138539238372865953241313197251403068409686377029458102739649022392668916140468589328768478249807396074039105011396655671584341174432606407573621496760651395959584335429035939478343703723081983129814324059509290498918334397487482553626021342463925069179884708023803937180417549753467819377685935219556837069453803486232993986122931558051278752434820622587708379780306897513560901232395592749067891147492876119624641751549771944725735339402562954537740588937876077047586365418653919467280163384431457131170433818127288422118790442773124673603431127858230022664736655895157005328710076686412740636732176020633354460009070218076689278075731890482159773988812613088637724479357974567590573924132981075983291545106085297578922417201069108189238875453711121240834062377829703516553243167714405290296172264860682445336099638083120940844731487249092059705372795537932156798636374005030736924294425159682944357198268083202658625663225591532436954817751015549982453730905131878371475286978107775895333036370860411138362037097160523198492340728945001287946306356592518569235640382103652012667710201652737484561631348616377461697948201223099929816407056009382226583683974068212517813438295464225451720567804512708929520615126151775303087175815271878147181930530926946354046010736861712434182174344330710555607440214715664245519371181623151986458108318033281826618602775083104953456020644602933154373207380774083249611878292279789397112434928967941498019150636877625525847115002688964682411211456491730574439768353663946117247480450428430515491642591282014663603412327944694716498637415319777785987471414936487175051115115453513000485239157370743692897266925413926384717853958270806639398501310840221943845690086370272718142291144794152663750369061531025538747736350694841818617912333234678239929625840152319405689100405276812882309917298733751472147980945652934676380447709598234987527494879734594998368973680932547846146135385798755464492087688727721127454111309482172128267471562343422797755536121391296899161273995070477326121144088897986489981899826257235694041921302481657055864320723929657211615062575306038112873573168335180195824916101254643955405769935503394396259754060752314005608779628096168790308997853895141838398850549759183254404094114783566304695406072839794672458183347321223056347304427633037031263322861095492341586786628730929529314742817543522147748949619074250450720370764980427227220503765548351322051346302047601913809780736625548756112799510688870959539686946014755821892557297792876366484426061815740874675983707447935615158540545595579733371789995840560387806377492610808620858320260967168070814387889773625721380542771187366799584799008198103088984565809787838485424680489855376325206926496380646905545778809632837454063824121239509568432072120013661008912648252520599824554520730823931086154695269020375624743584634006146292634795197624904612602846370915149949524751582795431718340929188436208914928469043827093020515863325746211599694871420263261891978868661437537168781585028116028190312313988262880196620750961677391217037870601810400646280763734747586760491853010889280176684736643426230044242135215899831120493017986388589671688301660370949030085336548979200335773152138061168104703614885077495537338682767515349942429902014856117377095907509802310533506358433517158305901959240120825964476315650674856194895295056880512558408199800382823434448623626898980042851485831513073894041914321663180813197977403038250330953048170281955234434545841470424046071710688766824259820591387676616279073774704562256062964011383798220298456067977464171856826071966059018302575825049884902434534188417768965843753608624957218250212525442386116140105053103806899191163718230783574215511133077569839372849453751221809135227249278055360570024667206884443964171831623969225293677233127253260826428541954343738723142275506955606886010496371703344124053420508145392680952378335279805266700857833384135215180439926426889849888731798142085371722704407820864855343491545371535046126482259297700442954077377044560109580955618142706130915138072702093930763050944270592626995995536600522717269837538675117381935142552269853739674472651933453548370209328704478541051412954792486971963610101265422741120278655349301866861481622687729419765288500326714947253918016954776846243205564731134316134634165235284782315826254228499138444251725418486008408036339743975347012037608206248434020980066697768210649607203105146519172285734500730372412179296469611982043060925577178050159498863524647990338693149812764780821705470843289271833900321191196817459520852035985835617206145674608396365629358367560887135036430945666917752616157536749511972243519298532798734029515763427766229212548059876730068444957637711084997852362821422501439714882486272506548602197818610515274883585970173418399413518547566529590278299344944294454289002373919464150072024008532940629189842250440380887543441313559509573783909537881764567159146821406181261231188432759250370863532723417368014437594924296360240694687868736790875164018398252529248620150124811038824317800277870756655079719992816130889553973294646900949001897034405054110087927744848449496753534994878182017036516327318105683961012116903819253839116880993859319707321644648038470799099454427453802020067990042290547489446570464574910063801249477440310832009965088264997083988857481694076912811854193328423873906772233507329083876704545436908728425708432700281632073935497287420419708288756727933827463733931048091178939057598343695929945649455347142017817339791478516266168778952465877838012523212996042018567168071111016403910839763220212629621321892434004681311220019377882816049959030701765923987577892594688123326503216170341562915428765248182288482990214114001511743371302174469704410585414622941128159178238705694050265470143064912124716164616439670626224403672460336370828229930203395839423533204042715545489476489014358060273256539770241981432833420661648929447430394282282688805525920829122244809248625232577083964885303564939493887986431731730945730724813250433663926189819283367782551972022569568418265135921843962370369590245273144307985084338472425218038971092429087725209259201529984412646359173433219491833332372447783245297757681732324983144500610624424804454112168577682837837868718496230464981894644228676044637663722283821847012324032623021551416451825821434410009701636166124722815445401164233342159740780267536750719531517385082029867502050757854196379950373962297010464927782704655405281046571513042050309702960351943628094740424191391458445903507443164322753810155464227330103635935489352021940110097786046492090515114908338282191747498144799932967675786219983789109790740440246524236743652772931858305024621735109155314400169495499987146743441936118147181419226814602294116478694383383690090391115959725094866438362110893147216712530803357649481048689608822079553328341995502737335970618435121418589349127541948211399993199973903788046135384684578008419578726444620562516266264392532040047604579418230426556714543508552789556584313110088649250117603991558836515065097874488892533032466391974928829978467970517543567729403299845911370566217342834908566640649513776961517178459440601738269663062221379655004595743349787214551256774318215939259790237307070582313924904101923589826565294354655512031021817849076332808671426897925466111832441206888440552100453915563021955848861985686301672843964164367376091781858738746215414634175448126867282585252977707554596810081103232639961719265652652183433963457980354926092378522480976971406168895522796434416738939509616005316349369288312521550085474724250903843148873681357962033735272432659091590299774847946706103397575066750547152115863046320059939905414053822889028844009866180245902378867372947727474490081596541177178469282229351246387544409923817796925790773708310994205790344608338755433297390299462804661609965008919853219286685955022507402845824264049779586302541437533408882158803307903056767561161153570068823054450512204542901229456428391578839598212971669839984017873546350894607932642701606749485349160305676605820626475028520904717767600562184809990750843421935193512145949334761848173661733616638516390138513717327516491353139807388938157715143521490956860443963718625634001643466567733320415152582092301455298072426454972084346910464301158694802709277846425624605991643250785492059342705069555964933360550929012033396899396512770721739537883071020787420463405333599486797080271031779959903273164683871938702531455193477716672323709353486139131615341455551677318589133558474376074661734533586963710835680768021135016822401369815341592871251944441572858893778345813494962820213835296783974099517236387146494764881445328240558939074348751305510005085109181799129095253456684945828916319640535710661221051382353848076424205174650719600703776863481484719397225309977823032021004290019929882001784865394313779105144684170202918914065765052599409061956355173189256452075748891031239840350473089357750346682756160445031376290248513758296362287487993823472170112831817242990649998964891928339657573235925477816944480873632069303019303679886743569848869267704291912370527058470544448360677168878501712596053623198201280311766806781610393755266827397723586039881350022823989400696610293284753878302970804708055090042133740605450275664174159865163448657283346315655910728782663021974684470421897293366071449936303784695590594208253653226579769901469653451246348182748275890162723684531148205736020462930250788061369573398381170566024211744215509294683623458066947357430652802029992538077930645356766607200164954750208559087299058806610310666010259981882995015302557019685789918412390504476489724283270229321501050203158524989268126589595082502947794647460686729332143259229647278009595717651894059840269301318670946621383060510399827269035734761474757129741388801183580368234256802244447749733694549854268914926331524290750413080733907129486266829410068101014779933707706038808064612238721099543671895505316702202799253858915963180587871835596639100901011311651383388767898144309233738944913477417948331327718503565198422679272635589713144184405640708746582231219863633593984841778527469202277144295585864279082553094668102560523936009352078617964091424052514420889921935597786554841731164636654048630872142692640822788871413363859805046241640664201431769848454223501120148766089059673559029374827354216102264037260209207252255151125447584090050572279706164370680812161384884134660656084013662323843549457272224091596364891723544925380228477673906575713866276279811755895016220114407032257484099375337640690424362410989316335194129004713641478602162965554806672562724204278101825034702131249340220243444065302769638916778314062154592472772134351959303791995569548287378116117071678900951883705618107747781564279647596688944755704301447330890239838173074309374088546784538818014792076797934145656493252747064423148788032067201862042692189188190980587152094864138961505171748062778794675544924579457745492887551011078103038905823902204524957721652634272081929597277142083829106437527411559054883626682645454330179298604055106063690257907536443866658262541478321964704614450891772310707009011488698225178098417622817372052499193267559530256147820170292187332363305165893958063012200900035102034679591401029123926839905309896501632451255626439370860175144535700274376148644288867670238082224465255797733348054284390064969082890408231986826035385891972743197025507127154200077681953071465241629220327773872007707133563347700032869399713238332729831875277423903231354113193680298028985107596705817039869436961051582837346744078207481094722010243803942885457239598924930013967247151389553508444535273209623081393383140996660255279778316454330555428694217008752653510827843234061455274169367780996831152203353795482281494350889942320681560998403475535798125752816392386258488539073306405835588999682311207713230027971542519407727513273740570675803590671178636519854043392066513175696380706626394063271717339093036826252953337634964449887229749150375554247797438561533851610329184018256132357209093828321561872005746419943000179185407595994145686159782752971502213799840324698257951982839835709652788986103647195107350513519042907254517409848360964013821429621315729086557966437063609203802743658754703535855166755231243541148871186668515052700391552580719925586811041731722586413098391267090130531753551334994839443276444467776465402256374447915135377621336347793003468491260570731665463142302732627719070966405875773925036809742938239093224741059339071288533525079200176450493048558176750357488097982439452359278911706653427498067209668087420370539282669618261613994044019355555009762399994820578387482698435203926030081404962801908065338740239365542891941357678118226532061444830327590734068015577726796956121026423986895012649981100891058521169904190142963770430332432303767563618531156992364612234109062103573328616226651393249012037186343926859170086077085279956221978798030196887563035923098731574325482214952912468933720481108949286010783379641608434188385708514103670454560910520756850409424040038085959750280490270298687842156543311918417722612938603677440018175361926533593727939670782731262754103104238920945244098143521502302988839362311530555019520873194941674439427508817057238968356138327578938683307593356953898488615454186116452332819168812050930272177534225408377191752912541295709801881369728428724742368694453887846486997974827271156762676816335662659019261564618091945837122005130931309294528922618262542203077302306300628777576052868186596713396729249583025881550370292625844703068319372776604212145610782285806680350225912289843207955601316907193122638414862799522019942461053217875937292146970329042892308861360339062844495468996386819995377195913612611239303710783151075267415128179269070788076065537396807745484865393057730316893911761289844992795261116107359114750197899324359871058515185995992952699987988319796240877690165284395095402882758386976339387082591118820404069652786385216511074158152058876965803958130515126330590444348538262447522758344728058134005689527081792389968434391174188350895457813460756612975416274495427242260167328635091772349578209681830285954795881160704921041722822312136900929044095955058035010107994860123361199436856694358414322910050594134607841220651050911293407368441622713670958056925486640134296996351985313099042794190379273840579956006477224712102005450395569831896417100100661757974451159234147324658056828218177855007147133565637923409207342651277866305916811116419789008644625155141783638609012078045386411858217295319520718508977851394352403441137417594810397970737547990715509975490598266865832428792020126461368264411316366713536120350637868390720581854826988867558501531611303602236711493086101681012996232246812426033381542145576035198617952383363549789599264022789752513878854419583644849805384163471753497729279291096166035396543457412098174470132632530837008149249566531371987754913213893381129775075326695504750050580440823268979673917537273909657500685839663097719453604118941257780970672226931834300012247842481749490163324155140674777921074695460919520659516808607647720273016659101183062039876062418598275594624342165487865996502002806827746412822335956890085370377668973700814729959945534082546531418048326960186648565587433255484804396576637542009599569154336203965786413638090219193681052229579274619005443575155432762484930329709043599470399383328896565317688138308330851904059132540835881850142346154410074744421488847515515717019985569730676492767609493414997848677272869315716672958412847584908484495886913025432015795334518774051358908352541584727975942061057179122839106214128193859244246169270042822603493150285048991786402318244723825900755621941414191358473822204797944367779790670717720164757153919290381033658655999127318867257610855009881813015099506686393763039924904957861115826990516665026287896406681078398023489377427830090619052140616857130590278527138362378974219559541974193771596599109924743595671664690896597983865505716494707913187858230635979367060913464542136206476275820988082990345888202018699596413535270354193392642998857955311724649406058181297198345602447913948966213084014633874124624537219135028070889264896235168218580094337972034912612463940710193476782110834474750510858175561364144602118970123066388419836984587604632793627070474723632695865327585690612157120088846140899680334335709304689067613756913954257488347965896953064757193232665919380015927449821994608925233104223158861609191473806138089478304623667577998198146781445409116500185340027267825480166076648229077343353519231202696843715976253892211866770065042833162096079111171237889171508801594054872301252562351629801672638303032609680926922233837483302053796559423099798970909455552826537356070529091358056248744888924001995649321251754728154895125688702398253269352283236480572886652496003670392242737914965308674405641594454018717450502324224644372579007437549853847154113587795537404830517598780502423685980015363114260693259320941667249155443808510321568822746538679359079158620351100901720830509917728551784771317788963508402492140620282490829467387599572053779872016212967514582748173723372713666499419072495107880902990285412417672269903702822115248483256192469497735522161676812946917169933147422507208161590761844705593233595236378568140405149839082072676813459614475557111226303449997227983084909521671537681015683515285923475936376253662684485345092342247720266727432845200508409862046505458286778942549665370203580895700724327809011892466899519858047698783636229410965980352373037620090625106736836290827480022832545373693048761827841418832197341269038352286072646885720711648760761090107579250195498546801724865623785905665879411912397809375726267926650061054521735778096122870934304526346918110213074782132303773042368531337306919748066486309533840828885219293988435000327677121861776585726574050675470967338416754471562481797455857127023481980337727106742300916968839009430716124314268408674196808892429852096808828149178694850248153564988291448716744947678686464414539044008450814100380331704721774222249547638898110680896416017265375809865855527989207106874436416285441685032627706726484084394146158869521380076231687045505077413340716394820762638819863373684227119817969331716585228134033986655616854988949391696995628707209325994889564865830130522084879227641750233450512285362324404034661745986616211544774882273518467447763283507141256966520253353376098790721748863665085890738445891312341980069337548008074293272569530678179968949206692276715357203241628677197952682534526296560129930100292503202471751261476911949804027842481507735990352421346939751362941221788171947741557963005264395683493788278667175899501962733419727604119921992378954176563569716949750890214932961605930981429996612175130886616292073686638245317382036981420614759101730408340826315046295500201721537884446291152556474234900838760927730574894981562741595823149913148120621017891518623388404350066209279299159907394941215528417158180550851186445271862199458618660852423298312109148432510299428567649136766327606962557840510648867540122776152720105039364075368988794388584771584926319430465764259061270129667155788664292388888024753469470514999929205133747249162452379273426393352148211713313593924061381807220619480738915842025952629484533674846729167793473483426775424427466262327364786310708435170687597189883384927506750267847662018765918629578213888572575841426915232220497630372528408741501000570296810831948505010467093138979552345265306652960599201158929420348875248278283000070964188129792512556537186282709306798385075965423293418263275108469205865198729583853819164843953245286685082563065219326717729879081018470944285989772880073734009740924087513903888223975684287682871858211931475733355903342141000792747391383177402131501146342090181307158413382920315322805032770685414434395273194286365641918164112930378640656394542881788057031339197126502589364311978172355472341931811235623036848090597293603583611641906081048650504763774682817896965750142924181198805260679126424804233034219084543599368313570800090094358879653496914460352613536054934258055565270234262433170655005180556101712261213925378844902906915286601381488909915129742575973844868080999364777952052550018505661307873073788183307501982299265084032249191404610808417610835115958218550948172267928536310968208974505496695009652387258446156460382876303715140358011574413650923151185476063836425625691634645043873928931851221201028821672371965626206255024044215990418636574019832069971961206938176764862641072397500033910050910943526132592867678687747410540799140607674519738646828994542199011379947428043650691221754326513662095594482651134664722140824984880784341372637263433867811882458150586087187246228551492171549275811226707501095296232917733924036886395431231767274811451810810293263076059921783369713453614134942618690221301857844621608168581112623043785417921004851113492843215810610256462717982044214244682696063283984463365465712176298975965987940526121783595798860035682093496844069215531904388159372579334363499821097454301016024826707395226593192573586726958469137111635388503248580801842961221020543602387694580374977640109353343510021023358432388369203944124749794036480979916719239847746043291528484033680979889755444194039848272432661112465871146554173421874400009723167877259800618171039253182957047363105567524774963334516341616129514003976164477889097577891210812347348460469654687573916743633185941164718499257600290410948937107512703632906230478951502214598699009081146572595682310825599306172301939779530650450698084200581725716072491149507656363196295163195919962281476507894226061862958324046681628286984078603836848235917303569484500392929298266740581838749237207025722782129051197841966524305965737743854201498009956131490323675693488705981565169411538651563918577962883599374675510746207500320871625512526152798315959905053994465997137314982723954999523227146726290022687025747635370424111137216486074626955131568377270150918016229484485980374256185828529903588718883341246258560767251072617238880609798789203138864139053526053130899947156167734227413681290613618720033255977625179506681069364335838491771159034649459702853805151297975242062334665186217089888655134215056245442016393359377351377094147433391722065326978906824437389262339091697142587462072320493017543897275500277547124180116830222024861398768628651146761393373489769744723537585672823929799510676042455711321388859763267141572897187421173768206697966962508411411975281981558231348075818593148960151556533193085148031063441192731583625654787887687715703929508542090734080079657975054424990043087178006829199065205491070405374257474332308932752036976003913916459533167889144380348149665369875066065742568624677982071299959172716835024246237803792928366596070793187772456261877072590174800447049359247053646908786673982258046345089822670685407047641808835927872872532196079328611513013063251479337174816239283047833831337416029510207515672722406936233539646794625415331675679820746980674773276294641569415879391253923667620878126847745757717700018994340561479334565326810529194292318852458568230135920809583546463099776937384537349795642785102470210525570756472091407442271718763977905178460261405218136836570163841656583130921377984010924335862632928629271021948017801001931815801791655421478281443748090244023816710656710107618810882172048274190715563629886690063889414808411198280586164695042245853345074782207333961895225214493387410664273525201138732726112083862363559083327710562285578939394534451327390744545345163894258422293243279687163075150964965249773302304556299738712955283992478442910105393941583222032092909009462303030574514504499356960986559891328527618892681713260371960268362039185374706613864366449916867936131110667692649589882207470766897169137683215585552374311901984293665147010546807526509072895165148834172019079690340102723759127609400426634254812114972619817758427842079530085353109799567846320407970638764040928404110618505216074880955744489248761614036544117620705917758554158062035112970112921648537516227253920339975487176800867943442916143457048073065234139225408370525681642290393176037557645023415898628229299940387589240539387481030066097491147599833222701107628153749703754916867643177203588541732244376759416446063888870412606108717471286446394879231868681699433569212403759470713009737259154284902077539086422098201052396868382531320914037284432006890954144761915953251922051908541855753992870593635978594943813892074957510070547832701877319194968582306597802036565738928986594365308250019987230754345235266285442840945038064356634271808731305907264520397258405946811804004254954127302405233328099539408775448869748918010675454707309242592167038440238908454560628385874805091618890434247930035113384058424015234584693904475385409992966664385328946765558648634835711288529192712415906867392961129513435175499692466334845127746151471838395377369728006152038632075584038414225503549414967319046729223211136392784266955341030973010482565879599446410580708558314951226541200253585198511131526549354067512890469734920407353498242176509593571532137063242670018978755067947433370514962754172939753049026075000643113785955028141728338412968720890366831543589506165246626186662161859059277298759436378597340772398029937759114241460740343505466202476626427820883478261469978096050561667959507473577175380207177435619851884974877303011426687651241671717531890861657500408153102318828414843099927260912725234255824697231894790138918488421092872165353353391902619861212071116666106051816300922867675205015680567490722482226891571088140890138321468630639601172865317873077847227238748131545722133440909338595498534107726055139375494478017855194353144796766038043095800817872761312360678451836998246789681580226552558200385663150047819448498599876180925528003514987757710319085159631925901098940272903673206041181965119884187668972727362366431683314824314057597921409845701435637768915032891229364863716465162607193755323795947290093814744321870630932333991478022024227703060642047544772098329493653625731486525573276072624252606682912247476373632288577737157920192051620992842177195976891871990797554070668992283345434110114675230916728052280017975409103820612344243291014481880599366722688125022049604318400438608659940226023577339588903546665378037999334874720866407947840660624616661017293676844018290706414761096556784778227099938039853576704655850048974303972104519675827792293529038504771246213490777799437299680821728457620157448260780786963581661889840316332907393664244172592333190624896459628097797263888656182240942010380721784086855801996086468604555426818490842144088814231210794245190579547249488982626024952477838551805362923442055085287908118557498461430006239686479391946567967513855379553652191756982560504734870020759771535872782082417611470723741730730201205326410279754157776353865541001000390223747475267245027595218182909868304990488991232984460441123343511936515482673241259716480488865881826425046742022513649490829648740225067671731839051716434613608752734636883445163513435107541486012818329249862215315707388711048064297585175123711301060668371711602844276989888728553012124466461303218522784362759717638978023730520871962077151829351241726747718877439072707187203969359672210495657090820234912025583972021852141576778233668597283953650473077942800743056308347225090984082922730356312845843203567582526856383733691173449355057564474471428881500411002813451527445557337490367991045319241329717654712879723677864285697930533704310394460325611343610489545309488205280748994552174017055594753654842001432987581490799426555833969780060290286189178321600589527421448054213149148382990017009257762130643869552175914304940938100620925958759866983862017285850944200041809598181628780183994161605250838444651432118686298388547048799783442921891091792673979021681103833535476027845203755548092498412834887455235901925584636356711015256039396044013675335770708026587044332442347620782686709628962957517264742632418000509709167254886667608173989588910874731562583454800905747027923560218818418917863255914589021195500794897707495172429698551801115079649736046471620251780081910223959867198326217663394579591217529982916062130853475917528767674862157338205096991884419280918287899963961000030602714708510922735397153069349116178830972438770889699574628469900608665092095887084412753991045320324972124998032116121506660332799895861663965483927463133028943772111022730716177487107091692945335355701321539785851753473763390891360888042197989800790819981585019115201548411390057778610262141337914243478113943235097693717308981323585404054419798190730204282270389963071159982063220033835329268459439256102953271129765652014751989995358398573255952006149098984365419896444551648755680391222358142453656406118594229133567981099489786166998067728418507283972214273103647643278330702747350382029359526367418200139026228491288442667792466469179435852735413962326623554082708874697506147878559696212101401531511543961310564109864079042595810202990626278002228407276260973983807497405184421963179129211907996092992820148920954318543140685378759413205051936130150361188730649376593616259590403161742980008739453950705091148265345025785583438420986596542851876943126205231007165374753191412246850037983839660614208149164734669794080594209652792998576682377926662820704302723225707267007395645538409909012588639715186377250317567893791880484688992609852388571636870045852522893055331012059997517093489609814552390626321515109716068854111634489100695338825139797183220926635746099574587555832724715126648447162132677343032875305036024932970665300996240909104661128049816825015175177343632711327764893582168681202464852112173383348890891130084619417754210045639775369457683828617856046592606834873619033768983974906360548805397126257806328015496611521790415695920664586172244281166979546641293762727165164651413379121101542996179683771987415067699256420810286775845410289152632596894024187699987064620089057081976074627331643938036837145055460036677574895544290087723554514580299224080962575530088022494467551562261729765954676479621448417611040972306630218644858750268165181792854169639052710172551008100072759053768319016147945900909777924242829582627581359740114830300653506682834838602268198872354769486622294209703000540043412119752492450621085481103009746400235079008845604173793347637034602932802470615202057368671871721484116573974910862003643050907722867838145617667583547756814702817474912468882441853477881771259289209500878335837437259998941130748110716461098578008240821892045544937893596082287245760356270061099368444218730300194708073082629764758895836436546794501343267881647141743575268323441464551625136929710706292329590843142651566166319096366544834548166330453915608005244609547381163441574196329951917013989767901535541154265907616037238658577423696929159928269818664729566570672837620093063648534834757358168706785219062394764651202249908164363690532543306367375824269561773290352934640595065933896897282390377210533130064480535178703299795907976420506875305705754340623273442118858014914591291827551374453588201526305440253104060917813150329861991835694691215203623613758885871556743139102302609556988082354343941241978013744497144898822416240140445459582361056995296773445188859695937591702365833972480825854377591955982340402656156880393195154633595172461455514522799764491231897598538612935616413880890185979447884132197372573569007525527800854607124496232148039379672909194321661995777617166569033934833640055479503258258278048374259656782099690106664034284400645697217337293479825415361855717570787849408614386057421420608675535269344770782226628037535221060674060236688901144532655872950785649228747126374539696087961738074646755793250816790699113562622746310029024047787077298825612492315044832590961768971072856297008917414810760269709864601714757171569190124982692874419414547304596580151980283850458042167739020570442126024817878872827234850215207238880431791737871964666447315964990686503616774630001873827605696302221526433746608604530769096644522845191741165869449368556839575591406606893469123532665097514361433174717915730087203351174506812999390669231811949853575062713463484099675706040560987616274629474144405586751646190289616529612743815623751832964925771433008932343882425381491635433938454532139772993915072462703576013731355123299263426381534797193190315311648649375805824846707365839840707809286465633723178910586219570961997995387650242719098200636857084816815082774560062541731962911340612365787951769619642555089784636261563777413063009703381544791387239135397155432545610748200842809820229366294217839106853826778705340992778983569393476625276962174329467955741594988812733575997083765186155653078933128895302768490159888910848014552540239824421910809601054200375514959912704409387734865015524357830179493756008397480489643503173550556991274499491342523635918885382406215026504061264895275199246989893053274257269729711555279588054950803411754615845665588822463608784489597402621766190865499248620940385400769937185019925129254916282791322890813339643204923112736863132522259889543119999825386721804430751360811378078550360173056938764793745952471121403970734604254725663398485001901580348426175496557568951294234623872444481826783479334925347477343669829323466232810029974696149577841488729459881015540636193315801334290812018251484421514005517635940276054578761704516770258922126550270448831160773611515404706010917921277037047348665403152003057449422566981908275593208609033505390812281664422721646489325324574258379408815620774392589905663880992280343574442777600923236583190685502945738675066021846968518504875344316578119847685660322126466611937581114477778472636786709211011970782368880512837066980802641800887420452088903910926717790100899162826079790885809228295284721673685532325101320055748743045940829391264357297262390588268273413873783683362062367407330111298054310671260047389721562735843410582391220056591180942252078232258471794638613653637534321151007091696106085642521348449797442350789857761459568809363992739811456300475798617688543328350222834528513996168868613492417178698843340946687363507312435324866084398490806200272713536948426324987727871376936110897866561969304640671242478935465963852482363846941867285648715715648172093160394500017040661934200578745914256744776857743012481425324952497070491043238070693130491217423692694436264032421887768326125818868555555005678104290787683750222733408559529304795692297780801546176225055213150001052595822542728530068314983189903856625525652333326271317962942536623206892948717011621101969248630511855549186298967000008867549614048039582968358441801101028268792603027118528584273722178519756073641487146559810278181234693485968746540358835021288277874452455270012828836294247263210789509306387854584792296734441379387181919403124204513961251789368579955320670317148909391757259433210945864004614873438944092363797279287763377475916844603727026609749647124659530517251272674019804188523269502705593460870151710140828647345061166465992732157456269297665886090343015051374201671580864072597331259448205243039567867057704966657184886254372235874968122271794654293674800587021783921855318180865021896179913647908720068244304043308206011427874378472128907931912079789761689659822850277169419249091528916408437901707801453335080112063546244557092643909956675370574399125317170356991023519969229876314217109692872731466277534183300084273305791062757865199686633023153745136943121179151465918070684107269188675053663872325844542972332842068875337037148945655812757610332171369534272993394233177105918025845959980405814509694627874131970610334550935195220699932997760239041600078851070388860975533990250191198457748647106056889014680086184328199893307018095524626065166272510299913904801038787554771760453534196705913144664780254209882745126526696949970357850223554697221685709060494248527444313054295185545913109660450103858928003391769497501238950727910801725039797581048198123061744204864624892947027391702256567932907645781192742002884927962445077095896598677373757765087414911859043761146928275119887484532389729582835471674578151903253245469992254284625630355170475116351132722163949157603454876660898960859545350924413728104009779659397667502834335098848740197100950981292789297263254006195798438672394337790039942886107785008374920198593591535512283774477181961606059798332145267584916630221531956318415422608667708839360212064968873768357130090360449831918757643853675697349363280127880971594423380154674067776953516134907027127867855094634650996336929726120222981357802066328457072347676813573653471003983083094626399953721132178985936962112630560316294734352597565295869585609936385410751938518457572566316766242934106730814797119834469423878965129789853966918288501522268217516680031750467933391708491870217117756914159622168350174611416680186482903012738930833677940999522941067129942343350497155448748369338569186150479266665619257236324012810607656867643296404876537524121615346817477488118437402553665066922025008067662696903445812448922229122382633631012285855942177869463744271825860513851616951605724960928309479651275792385139803889765688230411680559269126522475396130215185500299304666116497000888778638643212466426309563237755275038881100755939549949623731207047455728077057229879879355398944167220328950537486017533472946782754466924037874658949134958298176748706979327239867043543585148112159186450264311444600380780829982075962105826635687343626978492248137202081472502448037940162806330727785817810691701580911441055154646047329241202397046499228920292140325793211728182498551571841196513004744866065775245817113706219288530053333789146221347102890131590544448970582981832666490399961055394446484580639661076337887429521126210146706636004770540643350849785162968796069151718253956068149455205288165828224691749029648189563458125784202756361600377524743925343740048563390530793642632962583794954431961379890668090090150534505198555311997648171469963234872764160887075287921215370299037987932791487907478137304459604859293899223842954061161488859217362183309478893701039522109908917906929000574934517839113199389008138874789790938491502256815147720505681863329319011123371783833747456053859502344294465188887881647910379101589859705605030167600134884843439524007572122552285915502308580051848416643475156564468592826098992658172001328295115414630839609184285964369573471560723259312212609660176379847287069735147719297866610543087420657339683032782699715566575567757480637761488339791979277045900438575411065724584809219291096151586451369483116170959883468798482214576942948919971651996285155683514022014338743611952486304450308840361557597339214730865112846863245008879975490348766854837698615636291916435878345670654048357929492797259490935907726518597655949862406121344699435591702174369355357953935085159612568938518662919394927825486449797059530867261282380689902438932658561179773580727086167429999514455968879606173323656611595907935864094515510310469333056652840595315813839529315298310783200847807731322368557462360027754424588541088054833664480336369212342032984408649351370355032672187230455624242806036238176158397449352821623214277575604967962463437041790804463890426761175322192639980390924900398707257544744258216724316115919525363885592605273121815652513687125989275963313623397594742037202675319409214244222469367265652914743938973764630822940161953860364713170975165012526307918901687517503405412496900574895768453331886142385636936053848339596092552528448641495884416267381621152337729456876286813589659713264593891628903918172280198136312257919520301838105011434769379503891678204132174874297590107987821111290103723670716124861317179500474025048353820339896885165106947174342235480289777495106858643672492840105765632148928403874473011383302267616283622535316926267381544442201042587439237991943153114181985818976641066850906516167442250678975385621616512139211434129739148732095135708657914634367571639177581865922355300092581130058305616005946742373471182988131547155918903388069747365739586462685527132033854979450034372913527954094945204008937492908551422727860576352797498203103217326281266360504954241961598138129190571167963971892929376541660855856073660821919381322932321638821935244370606123502625675208206490727961579228262301213819111794198474436828803414058968906060058287042842251164528851723573290297233157852107067840409840448737078137015533790986717535988036762582820261107466417924567051400529782162489445211093109815131764937796064187318717126003954670522522017179051205041874542928714607459117761419247464390697569028225763901747110216811081892007689937239874504079942961979951776292814695445730533373939886454534067885858443872546174306825759438091100688756938994779761694285914289543621840454507628758834529283984140983895239480420195186705931717441373415272073073761135688572859735581169397145820136474982190038655826533021871209716773635817771010732179259995013761566812805263493593326027856179329591589763321347939001601244356027312280076880103918313534149907119787387309573701477928791084913901971039105708624362945177022084696596201904607597342054796200155324163149741682100172171488617959453453931710890144765074909999266273577860785117995116963280939729086058157433573482349914688718451371449567478958967458333726722100420311815361967483701894613304615367974358228995399165315688340052156244581944038808508967386635586751202396381643560755871875422020696930104407127415811676815618823273033019383411177304378817716234611419886948132414226935360805449492625030868965577326885598058834282504588139460501582718620948742013184196998561442977666618813071730788994235104433203051815463992918641285907789160831359331498703065498634823776821609676255592080291920246137877295401239076313296566089690398006943443082153381509247026214868689936466888394206582199263280900201456077326374677174502916091614622062103596238839982379338691471692721346896342643412106916427898315466397050962291434452931314790035778801065459069967624792353624359882426336429591503445251650223452836713101546302319800589331564766015078071050208344515568657905691970173265949705153606398213797465151680287806477722434049521243083448680619921073276912658314085833762813367169811787619394424572876421924283226671526075673838043139961212556644604330636984736487292812883993406941697009852164323426731105163659505333212484497624466207826003721466034059747570529955085718278575175176534485370015446432229359334316954823435093752917562314272010694016060843032493363726730010586033314126521841059192817612039913304624516656792256023381229391866690097203716736540512289265220804188002041664595035217916439973984477055116207102453236508793003852636325433037281776887740080976272342986425698373955839061849118854744680278527177792796404870263338455398847117560791600115012733555340106953511801733474630221402568306687191182362308696354887786927041345546632826292953438968066994766819733170698237897985379404943979590722895068245109358242598993282272171464342214325741809426862650543469047166607846296501410477496195018165022544625859705826243838077612255509129711169062895911007365333279245828813280399931863511659778591350676131345155653083175930571288301950034939363924516785234384162211991594290208158759994767551973335508649588531048099537032309693334966945436329364441680540473639615715221375954882735302988904258495440966748729844391737330488223931309442516045569972699390361453003227244954805521735182194256765428655736212614990451650451119635905564839578102430328867527430177334730770638114692897258270742534846739706393304432917501969179539239013981677380997711433497030587021847113128115163304656997940275038556350170115325047981342937892327039982050258636600458021955643714859180361741705067482678160388307150987172000508682879723753358523478541988527559784480437058247008127499766190098944862476290331427296922457195090899576778894423937048318996297764535339541217409901834145392250054905768961014147347157395807574813564528757076729968011274765812384911417051754823881451235302434604817270227321995189930948786238399476035894171594746256145024988965225124984256964637112277984300872890020082564635767608285173341537854970219713300722152975658561294469315714125941924994243865124785885699619368567508839915810442035371797971395642805625877428107443269082962739152679136382322146399001322057773729531258032410720317945114197917686665182843042901779126719181389946045007693691145384607915729383015120901520589627825164761892753981403164264889446132042248245169581919509521724007788075063312421355567885959822668748309378773214681540109205982167987999705301178264392964296231380499558867403456536684040173813031652983929591196565192170489967258923131555067819117487692300037654516012573035589393631444552595336006709119949991870580506936150078808011605610450477505271251449196625281284607513342980785016740726630250107649886570304391117151007425959852193379006114783484931735503347413757986282157549256050785480998857586651043991581827511406125992238219927325171225201672048188370436106760379468327107250900263154322763589385375749339751247407649084171524404928998529371478656420242676887118862493705196147497386959336181151062278733607965429311719966123302464914080350305247146063552047231900543339809903557135101034469754035275399160118879059467383847382449320149235734806164364700434979700171560474838341373966485411830596455731583541244951834163328911464618587857620524370178129387044066184783827531966593002113041582721925535348384498277046803331910627389456855243262728591499250824121759645350427635203593384093789291766169399871786775923447059720258301446585929538246362822016014283045269950399364242230520001117152077778418255454633554240272028944140096111815498049082939885722146726349796451564162026902302696824861931479100265597409241830758035762268197334099486820299742718961616785080857995629583184459963954826984730148161501665350935480530837293028053518625906308354351091211755762264116786321802853751817890406834908030381048251423724835560603808823653829328241836255538537899323284586463123975173832254784022497798547267709996977024657119300550380373590257780126417950551373917479390651636110011885988123725134154104599004951621883864619476090028822660609071064579284935545222779304093595994700177788761706146911598893109032352996390626756467115316291112117324634854480235975148936502354133739810097117591487015433436005156200078415870143346565051881419093148950676615103692388871340469317558967196302762285638902546810928266254357306838481304389321160740082429512411893011973783126129408918556756807887767107266861137859726055991394974046608162639080565084787306626123058819089449351244279633398682596103446143726110273934152306926603425928445328351533895430139665757162706829813531671966367743401588326624309128900173493528239203868071762954307583399177924690750118506779054199970787843541725096866437367400522965152501953817641347177985687305837922054876106468711207022660828812997302291065641463021204465865783182729378547727312282399427993534168071613479984970258802411823174215595266314344316400541982414875756745444823418351742194092146251519555549552205561378044072382984622336277244532856841921257413213339915501408218615719903511483816133719875858863582400254046074429081473860731381983729303189953565845515547930768852036256320157428121844178400888773087577551795615537157068173230012174492335351133106724656978872903284808577862796689320541773157811075303695773713912467478673898942709635634156207278244882425802887054547033370869701579292942249084331513318333859961573369666484650160014385205949475394060361586490974340506001590347435237356265154030854274755301797106461180375472315527636467913595915109729700820800533483516965977760101127316790803998758798491531298228876574651608048044559270300158387697464596293439025165765705598440305208065248515318509128934312431983390277485976269331006419108052949569924862538923388170110153073950759353406396597811546924286082755213784408728221405394715341665280811379259637826258170442051535942934005671411194609431098891526210117869072824944052568833023211341934567740896774412269824387468485192562142346057863925670506494558407234549968669912255490407551397807375630526365434536453855448992160356171065922792272951889662006056977689300246749931349037930771166080814866820232105228495937671044799136036185583973511390493276872635503815769022640477084282975309185536790473148472726363017333942247728457344092188383521848720816947670684551700636329220779562992200012802232810497113615369650458411827422341062070140093352634561468922027005295439618008642004050754529220859255673195102999856296129163672274850568002900054492664123410418170917795640619581918216199135764677020802281067622881490344018599233346933732507350676159402562845366346474576107873873235839897785705506918369461665424286494755129308571955126303010940788276329289599076838199159133229775557052389759337948606002493053431309811056731275392730295594108804506195765992523133499267908181598089920844184670978063587080514405687491034822079398723612635715562612587053323030376314253152538951118076157014910895311436481680307044853721795958516919300385207811218305888270596047146937877205974620809826217334406498788956758650027408441352906411884952304723173702618195693706068026342308002677146443552129619751320570043674691432131044384049237821369693833205883340988374484234752407237391095090416520581531852378366873410468151509651589892825433305269994346513905935225762723059780858988116434559888803346771825668715197052602102225925534499533157983655745300959366608907068759933291203539701260544444686714583551064284406790992829765727425223028601454112206320357843098775160914478614951017348174962329209481317941448986931275754180556221510188980825387016384308641946853430114382073533260561037419981647724986708740879066010480806531905473973692620806500404627300516316457945713675509905363179005981674728344274203433526838569831480664176563223562990274527515161209429498165611766532099828566998755190895381861863715575554381733602547594076124351395767518180459190268166059996602361904854115817650510621360804333436475519829488781557892032115355462140216441851444181171038155018418744629622432975511491292253980342584776363945310334805659414684745046704583226378814215375241716972108210186989031398667456044258193222353001905710909997763514800068194033540790420953867195041831733930284882065941881471891068423833347728553383154307405096295730186336385366360103773865418493475092237828684980002366719152460990070752692762070437002871977609470639980167841521658992456977613432970852203385235765138466442572733645474786938273420838854760272714323385362729219079700749383602680697216727391305644844911443004721205606595048408121032142211671175353566683770201266691100666585921284453951034827596495253654799503348196939873355733079636894553327779901681939595009258175104563776862771240331904332991200644998190453890547876266187333668314234581420536464425418908456982299899882024320404636243056625291565622073082121683154317264010965238099545966355577767146353936060287817653174824268809929420391051002897668855462056000242606928060035003963478450732354867019864731120630604361304919084522862945725867314003302382721194099749790216526129175214406372210059868005187999545221227963416150988628105028445972022189163661347485715093709748229652255541055492608735063709287640087120042169517542933234221819957274831833228682017208381507071729698229736601238538108046509195780998292146597480329589275525387899015546737776232717029381364882328234078179405146065867596237846199666593016666659208125145284302079895533011315239670931623478714460624134083559355423780758424337606873414162768712092251675966236606093846427815818545867071445576832027123992055343267516653023197282611181008623998015868150439175740500324650563670361613379765129758129305562657578359953946779186613560244569666172470739616702668783852751828611885264069951169316461269027604964692904794388707363199918899447939448230846398890267232422371295176835424296799832933300717298784108066809712090345663885933455896822957064857030185023766238680351080334343796512353885924973728966850336767915466137908009671472809069693971466758441542514387545283887555787490569084207855738226033564101281832765738959276304027926857726967765006766081719156546222975322624606695512971793401585060795786159607732354356296632280461258218695708514431182807092717093302668673800726064349708075466235597192526452063586886855644796904086190557325651031531633271716597565628091360703164891152960282984299960643895273962806711258093134881770592258359464421473269730531940049851998255936143508562278355455159898575459389613746831726010008179299190357610509024024188503018381066100312730027617610798414207956417839986783868835584723730067302046687532468574251398448080460143941178099658605666556227098799783108436353359367734401343152155589980124652312940697206415680699467617679260298313511722501936310346520917138771335111020088608735980322801285923338379899907750138610353947165553933307706421836440369214314727336478273163175016753135934747610090685925218677735474063486072342186809212066243759833581518532645490374913280191940698740183404442378766786577970104806420785207163743703091236496929632013661740065240013975535220684107287340044335088198581050959207821210834368369020884003461712318624972568647817537083695094272101600467256582975655152310188943493064711034944754455229992750588646576313475543104211787167533160356469498163735395513175524177501984444498932481354205253441350818383305022800043508481973126927761037473065150247567200394788131811622439627273820884423943950510688253221440078331231500569582075827101629182537238267995293316110519819504915940212371646434947221099360029189135574138898260000783093020536785031756992227293796276535114508273711432740904665917482124411306049186392339919779170209680548037068318658450069897181422210766805529508398702038955440466725744354255978540696471748922856861665296238632325185824274968706748153044787295638569868722897013933349487272347114387416096798550055128989611317816405174876888427275427941369818130847169154236036378132632322714244681979349823326766701440867822917430332578636489824967435359927571617005119132831910356188426213551251189829395776261694181049980457801948522934731599168882297262373417704538251521964161999333764565537355971601000711869002948238274721291257609782663234309036215090770391739241182823178216619650184156660273975499426899519718105550717141971931075764041318634748154923070171390754740413713878135656625122086698563872821889447055659110164786402012036384866956405122562098412091061936357586332242648257644872951371895142635659603090906306675346597911166251034117370170423670552019283811893132830463586803465054756787482886209832718099983278996062588712143351653401603780982045968476585142394176041634974613487728033496035915217444273151729500627799149377626689603597977224037410462009591955505242821691405863223984476247939595679856359587402848901721604950421310035308209322447404031143685873711967596681949159270096184569098173765709209207821965035702178454407037777021936302485322596551748521824111160379094957315540079154912141166572887956722798596528599624969135979814847825466936556070334609004617882523437569135071969640110269438412352739864976108650527946711049884295195438527159640883060884394639678885209461545298847314668501796848848839943602185367336904292206389872187700556412651731917044953735208587575791257500851289753607067231232790003916141019859772845352372647168139318149269628181207154847008157648868913125240917225135778166264303816752551665249651958531850971423632672671249687511697178770271065675629951462858391441769081062114013723622662268611161770857433874192743237823420158409372432279176425356100925255607741812725112089901528229792862105638798726138920091376149633512087261485111768331304399271344547601942030427775017164807787559759658677259712308821939993495438152996232816006641475257428141602848016393533639552711174305756469826810230681663428162821758997027017767213392285557036379947995874989920717411447672326687050644245173557269878874304568913450357081930672204716800399768689592681116052226454946382467806918076327116375269553520447020171909606057015957022602799006895982785977041801231696669190775278815471589621199882445345301596303984963738984544255192233877172112276033172911050561741663718657889400676547177675822705235762328330795725166453322760992935154606349237512197805782706470496294992061117074661542291108848067702637410482539420297979699282273892049389273208087657160360488601855708032402756310681716504213041647445022283387858261503015876247515722993164147952661856294344633438312034893643864158765646966976298012672451212153733485889402619923577984393107193614739004983132819340030829776581188790760684642000895145307067157328754294611175951771783449159502168861587226158657671137022415621199044470265776911252509173751845457766517714409905587184975057378205414770185092598730621307242483039662853883124347299502064495361855383679560315812343182757144369081673652638649993944525716034777537184303219295393044281481956372412552228824982563756045988681429823730775111742374184055540564898427604514364575837693556393448701622649807350415994478253925553616653488777767205984852579838744240885001976251561444642914470601899117622536795095244377862800900479479114839276344822480387688246982755549702426053434866383616649216027904930666633797742783239243715377567457825753551864438446721644603063007348817577278287230392222009120201004283927028189465804766703481235915758003745831969135791091315078513962919462805698707406240633997184577294178672117985140183375942740379503267989640888162295748437377157181376161287955892430276422069239605471378381764377589321060168437801740794800351025953990947198621620590220053801995063010744367069511124278850987843525719136649039880339959105081773353463142927874755708054058846070417065433977771360879050816285705472497724187648127192733802951156767737425133053043217439813366158792696468372643413914933010480310514138949253974402670689931753961129541713459469838219691228202439051009502975175825176572729090247981767999604676789596026630967473932883267715595613253023125072083677838984198606811280286731977687590083814537884955956698725825218857618667826770718499391843324491282177161186773693622280770054360053854612327017388925596538813058234685001331526235935968481858681514438927736258294407768774440616795845036318491982695551533893858116648232131904260670568285830661860200051616928637526949153179272328699797251134370342469824734519158479644338976067588137967886616879066916757608866062117534542629393409631306243828176521952708643746902633888657642566440233137959688101422700239544836060077216427033140813621188206019138262102384007331491676702622365882515195227120570140316722387340704339301258710925019524101841908804693160782667462258830919601960735217843339870755606484803924081092652047328129713184937339269730024299439716934160231016510659276579627393502447589659192880507227913727351305524855218959045933496923015657755172767410964502716471084881836543871967322393728542581853118660095061685494893742499728675153444129267084867669732245412904160169966601638083014747692419253356833441715783408672208542370027397907255321501645526870659212920446939298075598111066474125223553233180961408873458515916356065247336767614894562416066852062342258183046940069312049176379643478667876579691593154434405663982252956251966540484528505073869251897827777830358922227621642852831287043900862468627338231305506202724433945173360295185688175592977032200839349573500966269890522800071431640601366696390535173330103985961255444519476863924794161611152963860960784756582028166141187933476754749882024238798716906154031649646914457555581312783507397761507613231437892492954278571623022776476088245711220363549747981541289671487965190581997732575197502398765934232841298065697892277298289214321424702122408008683671501568247069128564089559496812111600315175909794068965350484247612624440901392878665183355087482157758903977107009505949939682436550144500882201643961105516144325149095831492815153216620962493752708171255335239892215315542500795382589183966612297406973304785122232385700570708305939489169647255937786333935850457834199607961968142006183770603524646699407174011529390379638440502298206371696236339724303152469637810979166687371181970367798150709071757297347719004162466282964791387332732495820068549849663149513904765687320501276489412185451054089394424189294078713126574630607002567219310221141324793876024829791775486904107062686979596809364001184235866117150200594830245506129470118869260765419402506525084830706046544778139192383449325828710646125887264024066055394616624868851656750998924652990188737069439220709436482278210507796026360229935684106989092450236203753513404821394253670663177929487212473996570515708610351333452589846106792963083036688513260409458123972995206741932758303040160594359542325906677178396155442607614276847610130245857223594631612340813229886598484493768653288363596468030795203062778702993707853951581567485201764135255197415988328556762019162601609481484495555405225891147001113937964889472267760001081607350788201519776213847204848909250794308924598504767805888792961008622015572882852618213009844509116419740482396062576056279587764682389103398217379616107911925745033369866836614117542646536772115977620408400843532563473644678108071713191357394700389540883443197196273605913141665546979645828193208475616782550711438614983486260773543559455112044064090093632438091638173633499349161436489017074481722206619852049228124083049673248209040920677934016062207867110583636265567322114948387898039240577270884075099078867365316571787587151242014933225335670846273660257761059395001574644586738722527300330192629049732452900085580894333634008379195595189155625439406171311478892415466687841686085412897751740251247763577964337663124632764608325112130815255065939533687594594872025628761146190593905914182624241678784263504159274085560103359291645449734340159800666009845494007599235559857345781393329542267473382658217178462119703999010733737988066142966707605922775315732725428903224347129085641848382352568447686025551321443751247478333619005276226514747036994075854891464982563883963768404517825049581369561720000816181392662363705340319894247304231957159448744723239216509891586263669345354554159597725985329405557012396771766124279617329220791076537254170947282859220702755260098798254689483562845196714820160001034638563480534958110693873009284831917488258443980536439452768179732752428651354098566566401923736033844654253999532716988147706852456197699150287303099087485924087402937918127715492324422839352470942234262693923589404587818692005935547713603819481741908465749825380395531866345943148815609457414516773240102945993903856770402200172328093355811152855252370722699550993378031856448341174991462752347360869077806221736688961704243320803421231121668312950101515783265369515818201191279624186551396041038737700239862288045550511947881550138157688033562171648718259409312110546762789887091370301589108088685514966235924908577984780158892734665904847117063199388139476645304739880433900101079815437207435648760030021177962527233216012508801752830180611557003637083039987351609652998321537027630058388548928227165772598278022968188259875608312635869384674719479437828081462957146862841956462437752198017813219371826230371845585947977430444040011147639968031094954747382307157910553834443106323114350476069837784575902010587349741284718602448356041938442628770276563393149017513274197114105969035098158497701759489371236990409201246630996331894881486239109396399734020897634209069423873590061745848699544708410639553498408615620481413097585148900301666367320630836250230262403514834024788572346084516855389020477170801356146897700165996174275480695497338268708785308178359989223331055710729804465084788772605532699620297210938961349334144841564234466651542870863399939224204045985124166782456591227287683096719715992389973923010055470354538108277164802806997559293075589561450483011684180026543068436567249421391326681844202088693121025845888580588369029217317353788549544286867350132831980788195002787394517105239888811857445372861758814850227679735311024092598463298822849366511340747674061996288475617686232863616911775401573295438823059082711451991640527960793911911447428174668226526577559568934935968053997509363973186850616130952514286593807857736969432357945636617806533509685668675157980050962707942951377098585310280766292384389959474239947348937756602716821039135389209094844531803912706594824681040640854626157735741934120882071442681460127334148821478811292627494671150213632050781960166252976172783148048807994602838847817213623456404592276226945764591769629539545670131562296424274912993141056656141370279646369001423994308722412134729731180197208205212834302589096665548825438238524826234901498730367664592964796130261654979096315208769646645102416019819041013606444047379085239019055930976627838123705491129423507549071334019664062846282391372394585693802242649448798653423694472473096803743140538484053672209245879049092223755161512878229426783136933514610895494526725084388833307716310807037256270334861638121365775113762871899219958713347708185326338646469254690209517127246669127289854997308229070459814828230356703125268019564741677978327041253610030840344144352802098727850520553271975704394657379734543923364101728283753586575574466683662278250682255857313091193209188888032019393124744624678748810016187290771824514329614146970637959413961553724603840046204742437329392208560997045162319650755125226368134838618504366038565459347116730629022992497731362787965567990021632082866723662680975298031535266177050059598145420860907201925868328573941654886724210803366431511367694265260862461916767830409733730405044647615745788806648081008443003182329373765497511588773777566763589498720970379524658638718976609012971575478827007943268986369209669258699329641163893594429575752088844978456793289582433645636156822957002464824140698811798095281877581602808387777781531874475948108672407679923634753976868375848514944963999630691299108650653918943858289055746323020000957178924689058573403863980143611811201133414229314166963766407657379787089863848874714212184831494653178175305837595217257756437147228149227670255554282731293867247138441495788324858181221765421451748952083299942206262687159804697097777573735236657907858991636585536566572433747297586898470368359999476581612700461122270756727505091024041280355438971969894425123983871913785198780354566293647002918817871898015849760259517109651271510427418180306142381435607464027126277075089251084666911094631321688472085730759555908556061774715778027778575960207080831817527883787533585829274944475553890962303636002896588037532243308190774021663303337816484129379546085476503928144241409561471674837668645654558275995649161467093405723089790179467164234691797496928357330542706690730536119925212856347185329270148594569736256657923828914285420746404786078903847092457013777353709048963903104422044133081843410742475174031856627429167203827081582596199107796387095444673715358378059987189535812551931139421057323214532868221486655479987113855373747725123267959522687827840368751665059424028990505132828626765608926501318737927118987914554754821503284816789514749084179734755789922814707341470434397063071644583636364698947955343197433640626141991161717634532361098048705552198266326035912071581132344062187691657891246893614976767605218465393163078912321822921376893618458412215016608591291390855942703242298739128452845993576808304166696018075255239723370237866411765018942346456413688499373328758218250734028154931032645857814753904391161291173460638891089661713001227081169787912131846692021455902281603690332552644504162245112904348872753646927431312082183477959752472948519547058116078801887683616238657390183012431682424718474832180251842788685348477434234439598067105219617905675868338215476429105858339902916213594232544329973680454264557299563662420125964511333484666261453543478642272823222841471767626754705530807017016902388442924835088626089359135436416435673100618970583403855731379983930719404480108655059385028433624650850354282992944651624735908748274066780470677340699303086910157128897464935037626189976130992427338600527885952663322908365015986319402723780199608346430174027113423623741333087671362617619868089497353337357941032295090326670167286354981804830252608282402425657679137411679182626551820660689473162523276956067524319206854814018079842276134424169680583704297435129138794736047388888896281044994221593005904406225744375333031114884607103422711405039095319448161300467384092590141676534133534631953309841061723003154741204108748278356536947497065973396689417249857475568585052333286608408159546362077084270389781440251048315569337561099713017174966364607098933150029857054556955939302022847620248330392788204187368647777170559876027989701874764838758100297196306318433047957129424374534981895029255982597741650031298180822364596262960943265177005615521444916098276092920284183049529879199187289737127027833048967171666931860562955986433026483065285430032940911789140858000241623441541683184774465746492766323274461276282211912433425222915373306208767225247695971452125264877957596183250877888971807917077527162713460683732330476234499031937029025988524247523182024706125287099115316240890833042441252376938315257573551966024034969520309481768457574340435774507445278411830618509948301144770247756997702524240679156523627614328818247202423500201111950463852944768455468670735091936889397846998104697768922467352532237203892637257428651876187000755751157960518660410968557821114974241519883376881293575732047074678217949493924279008750145287579501447311477484425282677820166789204961884969026775964318299564762942339403180967703577638259487619887634695531173432900971270253096992553461870913666041384466628341386105704462820966449939199899170782711188223560741149665030634186157559727262464990073955892126737372494642410377655037623745688595356829301910195679757499666652008452935738060623263708015780268443404332457865432505230153127283062609521027454771133021864265161635471989095492555740233648122642170811613252807613350307662635255710199469624684436624314348344458488443944581558483108629206535373021656328184582936894446856867813208595260020118777371622642001286367999212233741353638558747627158651134213569366315751356570458371159406644729453912658905473965371607744952844172231643630809002900442272059670573509538785159299174351881784748567896300953078900705439754785178651948398606429542181422273033745047296268439737614325535064998518326431775420157133129631766885975406967024194839639567672211324939283142089523515898787084010891459354585146754862083386819111094119761216797153583525785074787175311611035119547535926606975279209217212914327349834488221295259850831015509086718257152050918959402323017707438112470559588759636374323083635876194895023571284411911751707573758063950238238852475477058655929140759126875851951491724726894646710517266759909914206506003330037546747131190498848911751507456400627295099571039226054311219334028258036359213125401320002333590008771792447542988391474222648623493557929899919613599044114424097570315772036281487119900582510050107970100138256240448069434018290645147699827657587210750031122595231740568117581243023257419771066504600136971504014530316650074607119854908429477684888494874356305907727261895648440012902565646893671095390737134018055246379794386813154527385572925886415721971232574241859860877498567746951275758925358427019824994415646941383268969732578809883543159223331152169136854024479150899304304992266150461198723803009574313701271494426807815554095210726045863140538345007364082711427893187192150965574808045990682315061288197016007678491523542654990807070699770223739131377853947320763042572357944368947456908001125501363975963164833224194703541995943471801315674788007640740487640111890771198009704928406099270939005359786364530133980647015204738007815941661209794957520909748191784178854212331412746306653248620853272201260644544622703858785982945009015921248141616954516717651511916787133039065312196781118879263798614201083575734633984998117640617861891002884637742567765792032009885743830138568143565305777019992173484490345992238776139452127348714590654296859374580671734077573295620249031483079764433175846538753756546996531618687772391085155142436912480321994219561986772107091465158642686040001650130235510301576481166318477307416009647195576601188724194849794458365208462175795629838000552350672171012173947511139394415401356094903606514120043207683196929766679654808949790988065381345490105285602839611144969907167123848257762461808500720422994240858435707413863394516832891174869861031115131884128541335431995288522751461058402290494829925714492795482936714827592642684843003262727009291950739034157213147156425697875727194637558822179673508885760938307719924038695656266241207718527750025567986460578661966949574432801662923100023283817405849845907197681873545412388885343037604904709463794491129972974407726204977609004335115741246794574075253250024950889136048228203675062403472517704984108103813251586610726595951826932625290883731387335374800640167102043990927563017673948998603825550257669190377802724767147589196146945998057309281331663740695473897022436248899179171516381664177418933047227638116922411785819852557634643113089645045129321287327898965453347086968571107432455664853355772497685424929938006536655703149933576341977507695686896878080609701473451328836754889495671362648384588937412564032423270319606542608867881763368504902528789098554598318331030248639506282252120230209514650534988741144839357385842239791373160350815744961484295368600275578706451267857667147271041599488040785615058468598415264291550423630411409524565772399625108095274411931934142087962917707567917962016960774357379441829324507318435099111931516793001014496794470977359620474794804272319228836287873433782530421486864741205396845670105993435621598849942423713018626706202271687448082784591701961136087434032576138939268640901603713475638783296405299212914585589415101694082041097174297102818169160529710626487149029141649452680116391511302637900964578592116624309542025990268124925445238968670517331079636270071443599360855943519483826203323578796355832931484710286226858753675830162121582391933865592336577391629463044607533475509176197190082430084028591189391726745396854564814124422950085718419600940603178587800924904620136835706836343015115662918868743324915405771591234793351212813062733806878770885350217342878656786950623470039241707994549554885435468336242941030910507520801628086155261055609056325899052488368934170087912522348091294773484762424964115789375043512805998473957729889019997613988442594792042373848161672630858587497892185494049824275358220968658515064933865730166447557989891956899699374900366804464704399802096600368132896432371290098899881442238587486225137664391080788914348185916837676601686031567412646656661239943304279840171382826383221075044952679809125305682942829840888367992935816076929351817131254824183545003990970497160687539361940377510742426032818887859613333572795999935914543830969190620717992784003540869313652375253153110063066623944379899534052654176172547173320413820064072708633687313037292122178509434221472263755061625697847369926826370929493681359224919964340783688887830184208958782301447736682180065959429302780445788522401760422815184169335079152473690054947947985564237131101434743833806433463603108595939398691534575320588568349524994879824160753964495373068228420018092383376951570617618410979632040346458480966338586330670712733914059057100002208014942806713453307520142096731985369313138167944362526182331106609711322072665640407079293411873115924149336771490184745343533146855882774971846690085906817876311835827507320961528016705228414650443592906355158471839489592668912959759277103115384637539475007903619437983056936175091255608113017207791873841088477930110302999714131502102569800178094068793008659623314652471255651405521512519002809104103277403033098377225465427932475793255453006954319166335128954508090796703837290542159739117248012311755698542704291105801190490155210889649739418462199804279021909710438902610954654628540529749562009352782542481578830142147667341399843815139391967151819973818243567797396063139238168802159957655436814894640335816410313376203837022567717884698163148384478043781241562069144492255806730049001025195712524407815285416071733359100287582833947525364082001951378131632080658821607454230012429395411794762868828426867719046957264333050863174989104206501959440020298554293978515158224441623044698692310429098380986261738715851551251520687051100446371625272837750850611589733320632024911439202784722822915679220254207712058728963742185324044077235902281484942193977907609446351025789728074492260850000851996393100002400674122667261784664071334056305134787785917846563696569050482542790935847294057389916336912302593592463759875621111278980326419206067696749246381250233372788698238460133451690901652519864584147382670995924459509377664515963042919999444713908432564890623158983050356714256434118795515802613854069485551986353855994670230110037176620802676684949462938813469050201475389819985547384152705463117083105046017676802924361355087762892601918923808734819434437133788310728775718150720792558874957984142054882423579715554045213859953603386650395828762281093535490800630252198957562164900489402761511997057608726670701002544446173923282323418188312174811842112418937242833283386578673401982512741287979253236732393499505511502613592268804229641964728921303367706646967143665838732909849393892579964285575528223407821942248637863108293426377846429795279460921858202891096692297242375035281402410887276816823673125924142748490389967401235577363095396471003447351777646155699373073912049197941414630094393082157115706438478506433490283424960775742488446446005654122607240522464967072028678098968703653897828436576896740146852995760700256773806645534264380033772832175931982908190880194976570922596633508267600365121789213524732896219634436015784889279104609189840038875450147174204826546258820928636547149710888799761387008573114621059826782097078985507475528437993488467766087051141898751511221168560232529531513729092486020338337475021364500166987475233225679781798488256785250114509690107889449948134376979387208069246922643771724492958621206987208282333584975700890252973071834349371797025915022344791399916213086873991482186740196980785254517598702625762744289753767458809253705858049904553043387608060295769869142141160760145216277176928949287770374059036684500307572843774790548244771051751037586869894261213068921297363677985399689911834962698413637619506365155597545234465055406270186201319089422665948561608655983607395744160411228475164438020595384061960449772811833487098443808210538539687024803632479610316370187261142174086138251376894540687615380128739675397465589203896739289304054201895651528054813968831757462607564907893372573036745714756791030645324504033573367890721598687401672416971377658104856980994138017661754056981010896704121733894232568439700473241134479681539693139510693148665072963701677196632563340729982500144474566940416088715264937545192775630376660570405991811099206770288608328045823504753979589341648074060765915978762037068599013340454097563637549049630419047428701906894853718255527560318268220364019337578342312713313431894376531718932108584425358574720876174457291902858697851684335129573014321090878873739903637208313757448029828401886860584692314723811344002916689600386127739155771118423987932248674353666966555797195963554865831299202113751179181426124715677257120845689971358309051765445377910937416560198434876446372832672127542643827622160865988608182314004342075110946221729024941545607220241401067807740435222641475392744834294614149960882772576956772035404258952266529259272495943339506851708531923305068451070272773401148902531367026878735415359315493864460664283029981004049001841301897203547114214862655861930656333351131616581733155085072172858779354751244802932091748725469800276262565252346029812047635089886557992310987362535600776416341842671723633658403061202472695946207299240880388260629723648288659579465100495452219786051430228093179226519347748470367562902223459166956410670346693461767362755060615072099506870304511412187122862418756759105631258107908715480122143982755109124668703512600646318236390761940625642489925344810647022273252815315968540007632198503014029274677881069949341962973655214257065131772696413982885121703963041669472630953355630080729911475861890047806803126392763190161810350915299370536681672918541751598637195443222290757417487445681280147529060695490144749314252466982675529801092195621535749993957549027028650404945817797569106677477215967077557932907821429985259244327188437419744559607613127757489795287852509785609424165536261675867879709051841492534373963228161057459702396475817529656651139370541408741208835716371361708190965524599906014107933887993849591570636160019171703393153854229523415678306223762175327266263362835443857936813065842335037710210681496394723570025890499175330107556833455650381516418180260826838350358260776297733072582917342486156172373147190123038235922812222486567225455949789305907456919069109110475555468999583373661080436465284533931876459469226189173723316597921969536967704636438490004926447508815124368380417561211587564727647757330248133309103243700586765123822538294424282659722467936595758906770423351875645024144070257224476874960809447189117235174888696045272851472037608332094014523580974393683662881141514764817602444230968682966877779635557229795290980227844576137690944635806395044855730298328956169488430840540005968638733431398220154607141917177646132962452343115960583355903862521938503115286909682525034859540886711737622356496109134792993112324041027925407285713497842295158401221759681730934223516422123383196154743203343428319633080488912350630248630598763958579306286977749081022050221318798556916015030361187875183682872800929720306387043575075400218955608839586058006607746159965028783518606970102668790328866201619912319250120129648625150931812524066472515089328767022359797718618808598888886858486500611484310554243887114085447269310972135598253649931883255688055303421416160821132238390533322568092908240903288903466340716331771003075922569853198777959508955464089977669013445784753822142772891633029194519252080309467072608263638345848038619017711134338595144971009042180492331600783363523767709726981319037269301459122169490323855011929901256705601457333885822845741249079485139258142925164098244082841310374166771851893052661712481477683205609647661216510947895847344731881889639551641142739129546012368925490743841709859858181888532665369985025415770710859265157247545675687488832674691643294149076076215265344808201441484725904003611559161956406955640836392076357121572425081445692950720110535105392380301750230888447736894955227031526735166920838082770852091372861970258253640889512436329903451811191227431636777418495758155358599709017015691946481883471137598336194931633914234646029482051921479284667274091013138358870211035121064271024668797503243997057746175987282962519165373077833363589475947308175460575762481053737827398677076054472963738913038725236126239056962875469473578588151468423539827923698205313744586945254959930184064786406432532927068516638660150204649707801725752284836655615349173774653645349160211635117438072511804566332834638120763130770532290231318543382858278134400066776813908419512796674257337958698907591096361634165410651428967579644168172423637452003066365332592289964115657161870142956986836859327077542736615790047868839844854579722227490498166707179524991654654219682639749004560093260213644674426561071038661019386776662721881829064039913950850285618945195762553599201691538938190143602163823964131567953208936719650743218942036791101847376081607626355855932651140820523587381534850906832301250911344842646505216190178081892716060160899409058342733563009073773626550194273325737460694040480905313081035549441852681116558963761966628578263885483284115174997450171409813938294976899258738864842205562861906518436632773163877145680934095624628896845818166384586928543402344081149960396565613285191438996334878842099104908454715896476956418868939772800605150825109050177752652429256238355284002968276898390274730800598688806382980176918304815690594309762686887329891762639492310236027354248369742250414608538599186545239927107284443914335155016978152023396007727276403326121619901728213782709792623473534121904363728459673428103498807503425119436888943135241125794551522938303957789297628097401179900139235080035324152766535673976673682109196267821344548630179412388598989687725045229170371468045721298182699533663996206002936188516122427614160171740131778835547978773560461340901574493286191777357780875256910086343770324066246452966248024893378608880630172042534138679863257124214052678460597865334585699677378625257085640725391179571211448937612240402667355277462396668446311653535193277712890644265209636112633879526068211774575290068086907756824838727947046124439852472115575693783577005101662422443527118223911200551429003015763092994134251875503492368294943452216807218300834493620595045584016557144127786072644931976522413298855527399013416631829763416096499700420940277538641374559694274510714826709558248158912853543651633486873465147077836069729281670034026487799834956156764727340532965784948597959360037487482636623919339915079899983689014706456331619882743982046155160492319395977393095175942836196631230294474396437928438360943650922463247335207729862516238287709769196700139797331476194063822065698332738452862939784628393430329308598159779428300483942297249644134692669409925428953166610770071210824104727965032141115177078638385782260914639834041766696980577545858848103184379198415871414054926121636843090330303571671849370388954479696389679105005722232148544353305256317519324317152786970944305660270633918476115043452899614914741851789012355890423727484094166661508757285270433364283071435541433128683624699529855384375747032431638268841866530558666383394377950442456072553202097743447125397342565473978938829019588524838985635974115598786824964679873901200714652134905228551140395086046365088099093886238793668116268253662732754037094836109875827569143200975776757136202510691253558734747455419851528666788704275711762863590850176866104491714398997183871701148458944402002719578972324045794177801254808950121839474802780047178960429314341688051215036085777408485292695434133581322674411212329661388267301262262737529444478202415921238747669577321480787920787174973684655911431345337490459522279111164125368429013891867550846738751554558823309340884761789643936459383009531302145174523334983446895726954318544192862447656731998566481990257351866716432726145798380631569122812491933895531905837566681633754507700419831310914940149157213023380220602631015777116879061627209965519118112432761223012026916840120607808482817030744046063519178673843256124350147971572632359287681834521694640014619675429982257825668187487092190225103838950239228914269327209754484302719332765986399266972900098107539111490936574952249016041857311205445293845294213107964728124708005016463520449676546734042244650585970509776819535433385491134110098373724740108846429128013331998155735191260103988739818301597530695924481900769589433481226367495741581408299750265836588099219070480587113119543658482740113611978148274139426196397800754398287831597807164264948061439133374535217596852265349867729174244131551380104699351845923334191541069917160002346763362540649853293078079474735318946388434378141761298068091973552570681731195247191643810425523425601484173125543965189030304211382255568365811891992988579004210031762702983401279144607005864789981856912290055443722851218567932980714714877303396186548779183093915379740483563936043336568913843218001327346610125591130252218586465780733859533467651415983428601201628764262147482396773161199090865766855320011957587906400625335665241428333407939233746166111486214682300360793167645158201549997691298847566089463467873583530529356261179923920141202728695729354124767082375844739988427569249608990528967304651329595609591719112570384785264951527547595848821259935416254205356821999322049595001867939931830905961906570632067009322848666397126130334049007483891402036486111750804373178053618956878313722647004088707795799476506796841727763577432402229302480680855110491894989677921828942099701929263843763596554113514879269010045802935224387422352358955809711333556542443426467032781950803695163891466249218287518250275081154169297201092779405586942916141745662903372196517194372425370037771319261838828570296573576213816734886952491516983210758092666316267230732215062887017187685429687728522291617887741520981918346260232719934640077885395300214387193065876728560291586506804484882794299915439271842722629327370320535852335738423096982145386313181208297414636752275664246702416269813604172555107480874610715653669418460737809300666080145858033140699336808087487094134160867139405280443069388579822980965803829368118114859300501662525786197944213063230748572141358775477817578177686249197778672547846821258322395820634898871918352926411568538592566444283902783016168206416203800625036894168416121427807239354469495242840065130663397682449390925982554644397546241744541050417203298098619584866062970334635966763216311990404834537304412879556566312672252519656058251771278195235760180352245306776361517225546305610168545150289385214446066030802068451515723518580557626081542561279721331922134648052869591806320914679059255887180839802659614348592013011079898049632475129121158019651684458442726141288573624715134285505368644105332988385852706810827865797071934426362633411471223800701304683530401221446701881566699964295757334388441807742174750963149997563925596517897022314783166991721113529452259201015465990393860870892312864372317007261788998533619566546834352244852237814927262651917976151420623172122649003803495623379132287488061939214177825782062328850618595041171564803560303449859597583209555372702359832839450281727177024123271787078870589038202950753196654747171190790203590615814725189318993483081466592156305523270773357377564665164833000858931160889777866709848431252636402850945462575804703354904803583979660285730792863623725462074374969420195809958221187263622221122334926866053736284631436566513758143643544563388054035569635259434025056817355791010088139747462207925152569892771805093581636964008051250945735712742924631109842963244071390232129597107873391256100678545323641700986057957833391340303629193877094059271682328994281479983604700699019370954569681225936088262520007389011989718697698305803967948782729656303646965978331016205205614625891269812442842747325160137874380939939193131506978212437088486634004779820868117374177523577513763121979173336554872963685625996402212261311200622793449847915963541697722236019563070118212844610630430611386474356698059496842181500676204544856187302988223193044453814087737410175441736376672443322773885862428944517648709968054074060567366445478708418382163019117463362024374691554864886356160094090449126261400123272437710208303222124198575815933008191408335727018013419688017813288888658126684169578745951316983305834761189931998197423424284211877350477161865669772351478687312354254021537685846308810741462732968944852660961742901457412549132895703481560485332487861130636138196785965331986866005042371355397848538738768012288979722691768805488478626021079580409269952653602964273838981863817278244235092660933361510241738062802766267318009208984385803790933291045765114639204256242377786299158948664258920456568643994522264699369319991472860383671088022150010615512261951505002910743172855958332986516259332865846773135937321708109624402290708065871742483678598289944785161626330921373535255508391127908920033618532944404550381037454524374764641403589005737735015407244273685877658002212599623423619578064596243055967053535572179705051756623971147787619190893279277489372456545128893746107118816138557698251304062965894206787393024257391525978366666795461890352062033510574254218034782881250263440592922238228145719485429164425058992409333699640905315471073965746104533439372440503616891147743730147675761755210215785737666097544418165826720361445416013949945534894861016940792660513919124362040744373884172030401081250612920608649289189803647175631499526894134643328354746531485463647685790341536290994094330845440063885917753155567309890561767240890428708149355121061235950836931842065389719076422349444754043968062872914441189342834909925366181428433815820168656233925645709982322098710225474046317026604984485059362477497292537271982647205626189413499509199942039156395332594394218868770642891284603982190530850170421136117671128135745662649567007910008769468470541709159127886196106614965447929721425487644614397232111456964812213191161391573985806594774786364940394570932476341225424354803287727102294965095656196476395377426574770849223795752136669714889641060050377397638029946229076024221905506403539717153253377544240271602980160011051639464239940711752414205268432446126482787547538915505329463730737659085409913878263760715308371999157989552733097251394606673015211045431273901983742764959210318734481075620022571392319227950266639953527094875893225223562654566707971658220634356628805401397120908160830434888688565098983595645554011507575997640778204244438672093776776640119020450528070950530556625530913972615746426294658377423467258693674765542392905118272083868171011718553413972331293621427494659155606698787046871103172017629918862708602330948588787845383123168569996731055476186424367449861967607053830059039880836788354536139638667181946048473849409150397161509927500719566179935790662543575835454100830531849299411526389474322709078917586482406484141600282294178278040376655059041171071737979385356751449684945082779091282992561511345419954152704956354063150970083870661258084924855785966173156704467159150755730077996176386251950039359249533916208471859956592294343145699871820002722173774787351825334168626407551085546054478041898036186670374922294733656339484842783871102465748375743816421135916692778957990877272683963329002736526822580458844661372227591467744756850703395226376823866385968609519804291764435897091941559735497726836843107040353630903636293692753712795079915720411531257566962523507467388887456828913283469894074217026726950169299376103826920926796348584066368273791072326369734048590126576893649357352045397992095533394157102533578977254024444593061432003638876039723316392033306723649308589031909477686164736543637804513719574390403790936068467882969575473679773414151010655898739327935179761007415532343745034659461883927847380168129846116018848762936649738358842201128674661507093180520282590617048376056433476017976926563069938482829524298831990150167990146567901448703815280508862395648513517023178747450987668222990600356365229163740732128699273810641173244798923685083331172973687353370533129675775042247882045696733490814432308837442999997314208028896005419146518458421340066436647787151567301393914813616764911367843351500910211992092286683912180892965436186220286844804909410534354126999989461605420630190256186991062726872761310650540705018128665905068784255110689241799331530807218425476329061499921871285812818250347719573494054922118192664108294735232979919456042220709665304879274658906570780083537139386431271980428103666494190131132856825921952597501588953846137444506092456967265339467966831651856141464497687225940064206557447173825273114390935784884064030956800494519003952591176500964956477333550968386001951819906153748757406589862870575192279415340744548372330624444629697463322124921681756351260762570924741500800917092503913316518794012866632648258560740179189230525584377918608012005011837736697637147836379953335699197311957784201254965647979101079015856603877814590774905641833650899504075256146795451572478338528975491056748416600779239654752008543378014253817897085266978700632929052715028018451969550549325505086618911174664570718079473815820521444062727743949183617698912282910629126990341647779245068211915991811210140396692540159610582321585929180038604813097843826093161198667827958636382346776954084563287288783939656998808347778467998654859774223841161833964898085027591810139814377752661577581539628255052202974921382699658291724259638283343498564239359129930925399308461115634706895105443330032058211518567444104768493015956849771556904005012728479280322407528159268732565268217870327112750971978924391605773158370916254521209964929338882041160308124818501077321580387172477255170655367185554914563851858617583707625144000304500153737361661205271625200234240750206854160415455242270452429162620814759269055222620401393799252624010655725740574544257170564153522578448671002971117018281264926145234436130532386943632118589906516404729092559881008308174660768706380407306581393253410102151224938371464077559160479863610621797528571595451576204290065027339596431928084465149703871780611957349903599872803351761606466798070259135111495265128558207900871888279139113265183774544263249261496527583258529713875605622306411520571497616054518497644311027624700541708411790980538246310262516619671591339148847779724729258834489344688561621140260626865982839115115720310745256298740031213666146314925783395871545544829412217094412895353721188235387888883724545112506465516223684411540990912441390493787694881389344920519204249675412243887524777437483522850585217206960336613966962934222511458705716021524802223016662951205136401790790295897224442461438159293301048113377085794581703755107708499681979426282724065030172887414184332052482918375286111351072229015831658105187603171100220677945584239350198324556307279156649433553584391344750424517363245326124439727536752734064845825091204861824204364961528233763623292487845386245079847819748679820662182656481670139832298194350189269880556855148414968194403388701782494795917293299764770379115135272837719542348096873897623162728804822500208982559871800659967853870756551866555640655416773803316681185475127201945526033818307149045196884555071156810447147693391470365238514602726336158795926926151726457464615288597393321218427472464212679347501134214741940226115227293267360750343982456102349538293730947968513182494869902233137753047793332250449897371491881503352322886191983444692673698015991987549727915168655148197696129421749626972801095603367321917925208407056009784334036615590830473456507908853782833962939210202552883846121071307930814403454412466183830362820742342996959860587625208678014030788813611004610512556325603529085811154466672395217229685965129429293396086779450245454922388249982375909883736911889501129699836546793208373874828383259300985022859161311847860587582298704937680508840589052526520862461829475095295995501559481931530253004304561543595685349510353686023697105162241807741599619418160460586489474405812089233344320326827720423583892496666691314218180907940177701644662223609973658634636649922671002148589903002156842400381864550165530166178511436810766077641350811411327422979429019410700493823716915677363748268864407042728052503494441649765296746942876260433944354255766171468887231209816906755310714109491472365074109692307762863575322486691322121718976128845486301344828507900680671009474774752703009008919425722525002664358441122916239001773916226077643829718581262054508813700392292476731812205532375712781407721808355452241870272203207190625346447332822767703263283255789194155084577236562007137417797124470580002216492071544584645979953922077490779138255608450348346261693017517808117887002945839759696851273130459761911478658168907589099578874401081546788643117179835758136857573115268753432148543193354026632131936356230044694535838305312697813074080481045237971207513378500238709851984720661634414546854649939575954521622724505190135711757340471311542260065162494184179999153423245677404332028159486857151064228228100549337374576074808139161356138638816859650859953665872057455627441426116638550756547805165332842837059051646948822897279105533440756638549296813221753476396928178730778251782843988727901441005053400622289924857547104537532372317464385432018312512521637438505140872378260917358451067322562217214148581598170335961246707205836095772766368146762636793214213976151772636367623991712409577886184929076854997869261252121805303844019833384259899744029534133848287792063442381326382767368791086119841381030699622410213318249473920332353497075709809239753135489774004187380311466428384256803271422412706676549355759031296942049113839898109335186367657740313658602990531030528460462790824396136132713861140196591080464109607282174996012558473290483828143591092888064105442361279209105413411554266270759595727145736476591574472285357210126085939392315244577196494202277502340163361324806175916100886089905753271484968217986242746417078977401623642869039757767127200030524899014892512675389008999710090781138248887421763278230371009692638433313719991580900241802096003570004365252618378730360282226835241522262446546347633927051866821251090907598607061568167018545447861890882755436171210822616104205093004727175227362232924365644037936389261547255461923855255167295355842480990442098214444465526279194183516077253406171245805262942054793638723841865180473794953224030844477017766485319532138552407067010815973785829456194155570095614653430205081045881749958936105812761703065346459527770913644567367821297078573308642273116370137572762608181471139074189680233983668350489897198329740501222743082323423301403714205909473520638131227909918356023077690521303693193487862800542913586938653693581414327902304038333391360408369896213202943476761506238553605972414130932165836030493161272312630116119329196924979854531973162714708746242847323754928125966692524230299741403288854901293404783590002260887194503076150691979788512543482339125749824961790259234252565928377452341645296301443579455443400367055003371037831041639278939989013980359330970027900291716151272295395109316375145024682009206749221745735632671576276224840020485448429344822949973935794722293628266553891256309333852423611273197159208758548785615951446147756973678873020724096654608569595906565894490875906534371794438896949374605629938888190092170749575824967453547376042514015902796065325753393369526850283847279707121450359677948120483303647368232058182732397047550464427019115032286444387644161887644368040824588597074449283530347450882498939081461756810712650081907227677879621787018535788461545144539010766025067341663716511278659381512477455190310793976064748965143044515526418238013134579721587095451866231094637587652201472292233769037726644713793311110633728782101425304575475405497377216938549031703856435737064516304733069058338778431243249567862675312230923396273705047015311227491988332601092567132109737780711221688763625732328628830089825393178304870303592710078024781226067286251900436223509267813898018145357073432213878179628314446316556170940241975774521209281581641476559369559366161918483496096361258152347129083677133339272948035574482706056136978844498944919373740824163778794227293812074069741528451249421102037165412271839699412641832540105321156539997798341796190514704627070241449086401079740182593611456615662638834779039771660100620281486140077326715743186692212577116089549345067546378525260301321040474750083375862148785299720953874639265872538577904861980627548888031254109083006719894144660113434737218312321916259164509857059151706901935556599991050531368888477507756234021635157616166990505891192544807260597555523138604906418028956569768765579621713098342863981734207582113182563187652220791755036880408212835730549352162135661316937322765447671585275395982388248436270888362598937049717017818388850509586832839525887958178128227722786758893474393905099118871063120858799122871356674371075598073927906859591447269674064220911984213949094165427901024118723759300338499934125676020481897470873107224057829748949890020274795667824161551137367477865003661364461248377020744375994254900437704228831030987042941782322235512025492609807288836521445756137212715832914746105977082346160051349503557269306716119971047569210621591728779099230186723646091732862840516868113149471501225033264848786898510097322404478346502123257650651208575472906349610929060614554344482033410497380668602186088730929922567093624923532102082927551059848443983320376809233354532923222468334486307193971510109211063162483225663667814482128269256371287949924747651072423370109387259670886176514446574215169343252611748682405803760887614634451889907229165117161368388039692191997432118154377038923826191551650656079666385431395505506102580490524783924454443640695872549848895988075260057256016308064185145642297783258329442672814963125498231787345529008463454888346222090186354185708421801260554366356280927920603982279328498142250812881173693564505633899806296795445379599693014510736260590198537619464067636127819449237757369659658470972456005247950054050563882771321655431914435521395533502329499916171185657265339664013955598276007275658758579137748956526391786608571574252103261075677708858969318858642126918589899209545465833610855337523633057438840654890618827073841128110951542610207743468435262454059160643770160623645308696997314989668290220489318690379977212939174715847153421907858372425966746658408453219840281104039683723675660332182616553644871309653890729041183170078410133826225490945201871498464304587060992563123792355462206673600978244903882054883895711892405974898250370950162276138548789690994637880696056181875005523549899364761961824477125839586442924155345442901265518300452806532357433204930092372673564377793136079155969016237253065947056593550434481722731698679318650264073401683078534556741349354105149586406350058484106891807199483678845761113805270059689642580501213236164301802673502413340902994275674820821646257786849286121238295835762349348719815571870841595949362098929581773969956702034497013078190741386887613828640396915926782254994270476376728676563056964502282922276604425716302448588686920585550940507497546052766117182087778400398734288941410678127176862580815473088023554873096067932833268257414945705115247758587326066473537473274120877667179329119952022173063417731347018403208150133252174078688669913324195773990901880082441633603113954559000991126532981341360651024783735769450294261321925351259120135137302636146682508810388906906982315838056857681893044914731318613673645838732452058961570362863523242833236784125137222676573913690505401620042285037689629509695017232749955819260211220236916429187932554943192308922733249931470287533860471361835810997656390314425757268938002146745305756842047874813359754887792500489658360989805535148018240948520325079774528695203489034300295557338192576773743046209040103356542764084104087134020463786330655013982080854140685086461882805635099315740266086442901723740569581440590418723920216284791925088242024725733009948487291368133816234593758710992051053445679854001899871113325578863831101974032189904534301603354321465354475532961571506667983938976662050495695835705822846680539610020287287933266986680034005421718249936661571419476262052114560977234494859181119838425657129828349817173428964404163721418679190252479484771887301013113155251329814035553690849260720574924873848855149601983907710631681250998016541985875504868931648527419517478611432330963843985521291097600074183674722835954305828115199114345213534389067617211185183700740363286889979452798485460094343656135424073843656890076864089657908919953346266735473772422609230089597610040217492475615135455979961542270672289345927565145189956079962062175565072199177608287239833167130992275174442690297880627041512817230878259027370728126346835702816303457122379206907445414965442043797255348167561889370718749592559002699297453832879833723643339760775580882953161261536197680135886450802654809261851410321699572850918746858335100460167674741114072643144458709397616055539944912329572045195693336802464175190594238832377167144772561872308232073893792391701132382185048606019855399713698590605859215367511797840522234464960386212166933790012106617808845200842816329429247915992078435251908291179611226359018318467592834658987785015490601402572222860920056518153747454020150513733475464507039905508822742388407990760089071723256343124996740538063836154569617971507286977010646756745612221150565510434933066923589087777445119771060125799211593384971988250940883511285334295397110466781020543568151608536954866185229166436874197688970035733126325955004063338985623014210426356936366604040677221853533853397022618641729862125297342008591654943529087656034963164915590612086272239759441221069396494374184810281024247783888327711628086932634943794927395274918699845541308651535036455133014269222103105358760688134409402468609639282681026236946272394510384383617776949966745932654102537108591815601353270968555297229599393859343333609619880699092632645056965892781115057602959780689426808024702519047892951560829952390770121298288745933920514305340635964518867660620667251237621314213646373280165490827648960015662029447605520960838172520756161998385406053553735150106937505392138381123627685671159010380200007309270725503828607662398248897508955513607686274124308454275832691025938875641579999405124477352866922112438107353916434917613623691574327463788869929395025161060321980280974957887430410418555686581286615440334975708876343902061218375354471218612434293520486696629710493296311153479077586215628737212465120310823940689657441434162090328992418075821052671260277248747700079735137946485071579003599503018305287925411080585381184618868284274259305640324910803995388800260655610868229711351544827614908642329625751563721004440418352397965595077512381075804369637464754081186095035044905158146162289092327094682258593366680185421347117509800568465141543679904926608069877735861987420521809624840156932556472680098176019578624313791276097427917215553810919888723781073805068895952203856691832769761115547759798275190708563384084972258700154789553245431469198421273730900978411752389634068025130963075630900385578235453525740070470139982199463396141099272891938276165041091431107258481743264145926985059471943621411519574576640922553762921867349209690741761320317159884307772808954369191268664142659529013813496520538701167054639461525000359557061970080823210355824937596209799969152078682384180375422106648346630769058065061596276887485213483969411675323850851452524162841088800320716245631008412418191868791439368019568525202511482047615705838464324370364481086589524899012375582784200283127736922229631872145908328649411841242433371812447614452448297902644812791669050560406741422060171507420297295616798321870291626361070789672522313995085242534373655613493439222284638137344490905516269696943461875503786744750620333486896344075362824950380241097297614530197069682050067443859864169058522214131467448060197207284844184980873010418575228454067764958805513778087243533963556156989688754514771031950785652007349304120107419469591659986590906720095169141572269071784357007923858686103799878838206802254989418067459753802889283522899716567358553691432859212161048231763120921449340540565333528648731115122855097070368676536599925055469019934935794306295710968104755571001371223965533133975564328994455220489286491358178584846285633218119541602346316904530926669544301074312761477184198346720421977819876400500129155870793434760709110816180258674029533872696790304126407304322475113403228670356902704301702225285688265040710651640149120768032411916731479568168372677854032285185771546015530919880920938091505978458167872013064558947834319999904842147298335084827445747736474885310502820323122785387443926690067040998724349804944405404788264386558772276637548738462230343940892020553492221039986993001029750087387081890833878127417541280115938203243434056533953818712433053193049385867185866414001296821960610882857441217053902322145178721442888688048116313243463989049961142439285686632958259529334198438096774087112278591628504590907601725842175289484733888395187244876600864487356384918817324316868262858116757741885306746047918148819968830066267649622175810325975688531612135783716962636403783759978814630394795426064589784925976319888036652548559060562351617761120235312238382639000216257838647577589346597446491426028584668737758301806418207154081920229482717605981476450184670624417643288705861335007476760582305895361992692676825710944493404424085170702421953200062005398859429861594013909743863527822601883271718328003772415579575372229831562889470788293851923928185836822317772559927595854007867693979562431418991324060415934105876173105485183332892959558316534257295575305255650557360756331906594806374522217177587192126024055613096385754997519754970147841174894136338380509757383485589674784820929938304453879590999139588114325239961202352010800957757096201902849711093878357266890432760131902262138545721446262970114137349551898759030706537771354033080733724235331806761981518326234457940389298262687455588340028907051754813449200914949035476481907288147400767345101889040596429816459367351997604501245551684732005942948745189004880610642060459443284563623841914669643660933601790675925259431475329638346408419308631950533577836800655579259022507623709599739320497366441892253609816198494074912501614572768591881948529765518234618659314253197766822084942424844622909800809872944753823383745691529923332391492805195559936186747033125006760411293687288419721377676731743025324608880382140276165298771212368659137436612450966413980792894584880630705662340782414063886264636478079124373621232310877633737776206402921129394915488954263859815401926354082747038314666843623337641512788723516802425585098698892012742019155432962351624779912280649765932533043572711840230604897664387468754780064308934299408738214463570494221904807075680488462905880753500225137707490206917827491981736761661200784127909435264135789329728364385129703987979393270920012947581193854367212009689583966052149157782255413452671505196529991494566899031151505167546834255148241827890004179025596027801431991869299256455137872187808460342032267374025006261115096042704422825294832192769962426362085159195200928637940387920030102648731901964141561637310826546196545987027994433506491119230518737717889129313360113464811916227987544305627685025797672707862438114124206268457373034980884617839660856383181615290605185339122192767754678329581091128285412830858629144001610228471938961272635491468807786261644553701321120450163993225195620905571672995156318800956266927625973634484143099476290287102676236124623570614289844322556118320763284083939610757122180110165210326754290984926833715014242950362778611046493627436702218308042366367932739728873931976759262104515722074202813188679911578087238139474168788156314667913492898959513050372664742499272414963915277678025695221510962062839964127220064794712365992754782517163508977308418633410980318517791659298130749594057111865322362139129617201044494413889577503362218938481173141603808358068605721646522087959884608611352543516816240317401983721522017593264495962876989571361765239954795058479415560000166041281122670227794385148789307350260945615677008035666320894356495247489871492948052680896609479393406362583789737054981389595974167450039319525542701355814216230457843112162764263278385966423752891644009851275917049997984279389269959728617503952451391431326716846819828422885693861946744665222263007544539023140292927283531850970997768727002208791440031692913005788644158019126489086912264883093906215039607674573192766512734994829521809845326179244581136759361898566064353404914474933989320242682861601238172736422081890852864270995997826498734913498981105588617025871103119041590039139995243771859169052598763768113701373548128011187182078209892507725147920148677841348251222388687936351885573748551053781959336509216049798009873390799010671501670158954899090393579266087761756278320785433584401708207016324694252318570335139379404105140359175492471676063874862393697335130558146010663140734422498238045305009275046267755908173003106227535310053928006045156941000705003785435274922181842249694609827215310554995831127308678763455325433888175340554628501604543648300801513178117150093628517626736454680294019522808742579249623398907648766023342126137759197111162351022933234908260963766210579631616559066974239575267951895275845235828377789180652794727092917838314540411485402592617184074747332126734101671556073276049781588106502100848219934392001665597701916116071104683379661594918114437146684875399239808771370779260829528769043148549456825374401156833333472233876440196984339004189647083644092358818696635662431724332654042336395955638457552259644370005162470979716125307098074944329195336252308593882121688247583634641554420688635289141561783516519326716686453269848830572586205498863187704910956203903005352886450875753623324299047021504014849199167330835746235813596408890554503362877181808831054596515411866584081807334189661944839618761794404892744791946448068342951382274113048757302584130004772297112568618295637429147791784620537592863784297709609482317979680196924575279408850702427660349751873230094471127792805215436218431359251157608867264048831519942355220685418473951684079039235426045219459751337126560962745732437359579801477226825133035197683940715056261858034413136079680453017058315525266362568292104467409781995332790819746899048411625925490974368118675543696834316228207116271117165990947467690664950543645359948539405669014790333398896862370868669852016060497316490852816839642678004200952690154996069803279671909072951927943949160968901197913480013107355835768079476115482143149568285569971972910609705647953222648093055345437705253079617077298646764341620864035136670924710077928377211525813434970417435424606923453389664909715118180140103402731174398235081377093820766951467670756827703865196244291008536645067895863543457321160957005242019996133809488877867680676007684643236076225141575524036837628119201538433491011264922117937586869360565251204195542167054447782388596363815424718438371110151824711742891197888777230591038733859649199027054565306184416050176882221591976369254947385012033305038776405165663943674635479415233579970117695797123442058660368426712791700557683257239376986193702209311836305425441746317460813995516591241279393307915519798517645550997713420664669731918733879301152516231542745705459057506464642735813783937946451686705835277086534151998096357345666065014768250413311613565806834223864558007233232557335903031816678979340548795081951039509872438108970918464700206328375010780342594331118606545386592300036570909887411600526665650908646698116676775907664951862268745278608540540580074987875089301668116091561458896506184732582768283611258097734444996797733403833454898368258666131904675187585994809162232764596982881114571163543279111558223763624522357495125757958058377439265071964587323878941313523731800801700438875177016212339438078901719273984889729996542194888543067374990257950888112025372591662449231397434490723453756168887434572196725025686772106101408537197138770111511491080111500761694851144023058710242474094533390538057305665817878577585692381566466278202867745744044382668507678717134688210946851037052157017689801467169121562385132575922248995009771425063995064026824069682963655744925175797767224136440868951471863561165332982692019946038587651866340567034853941977588108604160161056158082035562237436962416963738791228950053810988498943686416296938988023566374700032472186691840104958314220618650685203179062241869577899560666316679455587699144535848648245432413427571938366364317423938715407207345455609523746963261020110403445500404224806383668659217183699428875748935920921295911239813483967426247837530310628404199990271303317230838686004504489445059661514251857983276945136195222582724923299470162492632818743696632650287990517587895467916679593642268352982014859881765448271310055833648472679072631340286144226553928994489729820298991607877187987836231318432113399581125488832163827255007183506457225972623882047951713232735756723457193123670355422781237478536937593584157353486644262846788226664154286895138454410831583907907451358030489481865107638780322079488849761434399454079377025559573932869015999602971267838878960497101628142286583072204054926690372405757275038539963399438584742984310723081858485786228650713143443185147186716972829336789838047205946556078620878179819030553415160056736057487078680846839268362792711906104088346490397099061817727585173846061199933018168481567407275414204910365023008079314093881228901697062538240379297386295080133238156311745814398574778894120415949500248354213988931436578042021630617034891926845437649556781951758198935534451612845567363196201417163747227269045728257598261125721375958632581378435436139709056224084559620835150678231832139207588872102360419462890322206411610106870824443166788650799009889159750014838955013048891263571697099813020104476107828626530888589317395729968121860788977948922678343345927757805626470786905706018388281808311871494992826410827684855962933490695242225485985169558397329586702319694950649658535840349475014815116783875999364405052973243743529371312198680425927760286727462207347845533727157511724887509820395112010756458128449076163839414784100894138565184276878924721083855946121432551793094630074998125718642283548806888044946289709227326112133949062092415210776935851360970678813366662271582935213199579145778614042418841962908321441352928349241609822019445712752932674225895686231652162862958907837097656669240408895522031708334649856768387182965560223654330583934350460984365020132343564688423782333121890795846430345222186595701922721129782888691062262547527868909159087309397038185283655127199529609855161257981306825431039443552564153273241216778197167586641099036242048422814829736031485583869175937142801896836908918149719562575185103200584193014371761150022352136023106621177493580168213708238278465609471386153335828268673339500912451317271220238066036387116127872642026097822264505415650312363578458153211222061672258713677054205077349733935509256246335096053941413377856794329625507571278997402984988190046781560477281511947240481374679450137523038198986416024686690235096418579834028810484499424273183125634608180979449926286419686012214133595600436200943176180481094258550138737354719356100260956321562037743515240111595179637385367431558512261040541376606580983326921180454189253856034095503454338436344482612045264789988525585282684717182194848179314589070471973325113001040287381950786988288024745855718365016328906664381192634182137466612865716499440503151725441308159133091140463526882002197804000198093928559376339242830813114272603051318843193026852710483161864040121135956037471173243207426028598774544614862572571821358715932651810316395814782119978305704870835644580722040343727012876381571808669735706123985644296721190090708021473078484567955633621749962080745928242578558500227070769204532795247591202439612732166089443536804931464023313276301685536349915624175127206412962942653802203761826410069842803044768607286688352967351289760254573113751183597715959156660199503902070857402907095946156074397658658527537055872432525761917837559110188398804511826901918251042633694402635272688156399369257033993419900037595914374183710132594765073466950049119812142844752306500826060691409829677395311299528230722548010055098222196078172810074647452217167322678391668629281965772976942529220096111594597563909323542535596654697734711021366589025993008512858808167791914371253909062566060473388522761429281194678876956655599672510374641254427557043141365448388772998747256001319128441848988136514621214058254251415113324747474183937697019500433084864453516174504505497779491763718581040851601453519890579901402559670508284173468881657592552762046209132255430304302714950471355526318556215455685746450549962783979595956590237356722921162568109996743307401776508179634785506794483196533444425521944756639208281540617423782609762891771220722769191272084977789997233121829594538582076110758959921985344082604576025255648515425755063883628364465811653375720385039893202557779763895193566213607792360035266018641936341550576472399068104850707414080258609761797085131687678348881206328000984422584341201115788970247862052097891267841249511544194018848230056067265645768013493944787817798420815233464022094696621193656218743582927479583769800736671019526535975089908619886467806176063009971085905867760491134966499424655598504646065033299330115887136070183493273487093169810800674370664968109523813750783376289977500562902223429536575906083548809477687718436754664308381166831234523769680786274694379101149758045039837280772729486252430267050770206291720976326613606848620507978319321355217949123794918507227077091282483286680327803042036036124601379973819320685173402929719049716644012609607099204844771109788315746515620714536537914378090065082525670135793673532480924652396073112734485307283878389520520926310820247413483800090644980188690416573848489929825746061519571262510426307841290929125389071423621437348394653596033872259931422545108824210421560556287674777420342136575984003400885447011782486202403908957818207834304344805494310887921446607847241996184019575059784977486497002882122279712890718077706143264194217873655178437269097902915883850177765296137049222364195986172553691590693931040538345764345635816015294353140936873933611380756140035618211130460221182533981885339456692369875645255015511915633157553560599463215829833239252426143412151982887696717451941725243514347691608712028954961890998139999051506058598324186663014942333552936234236222971828915332814284450523819029270541757878500850703297065676795698119249137162972946697364341794936556933585994139339006387228073783249196754936607412322156213407406877704296164338132978752904297101777544399601821848386341392896638107639353041776088093244468184872301757041333173492673387054648292870548403940627047071892236533119514156119958385505658055452383800949882962149531584199699542844476969103568272718554043600228207557612272239159713288611613029325715971906299780471185407550791201143883282386385419138940873425440104239924225860602414619099087000094214230187484976957789688070041201042978401240518580999629762602166432552804898046880501865595054324467246378839051535315507613527700894385335033323045506048388641619078369060617244268757203753638120910021981949541643421556810384248641102225521415808633167366123621232755613471707562058300512994878850681840347857549916681513708019802527235132659257267955168128051340523224226853521810556207013483841025796596795328498949410498436041179749349885452208194767775944341503395451715242467259973148230484630715811415051044447775619700972749540798449715323993004281260957918842293842361888585234256788435739978209278364401244554974329498412903537355787280400910012062943628852618153590079754814334385317818331146216159915911073822432647183081169152032333363179591918472251095694307130602726253358710379273232421781507109932295774209004877148644532364290048286580368907405767358864803157439562355094551804342067461092077157200321146607928915369786359181393872574467839413861282518933013135236512590390989995603657189859492745772915293602422666117196891559025170301288306833264059826028602162234106511883647109124084984013789162635587775471595234101147059406594233544156710581818209895564291307320119079498990683671872594708579992494172374639283615898156180440952501727507345021054518887444044955608720905185156712846224107730006105757364146211885188919005605377206198680830079009580012245551151109703969273262527836259011969995056669456651546792409878673225217477405388348966126912020404520244458107821551932262544988946704400621695829117252530209324821593723425918729601673803291686558058969739171457533617002120373635637146145872811377515096049562253259818199612995719592253939509673469955592999311423322299471582186273390061860676998413534639616179234452522985555458220681011089608704357773725009593439831079101455210239554812053624971301329707607128821312845054903312887234450035973544833070397793304567306865183781218772001269970448506280352777580871626017949978635771074387991576786984180595971910893062428772919361210444613633499409878520581345861735080761523536846957047153730735085238706193812473649266503699114428755218455046308850962896924515461291570110238787641226146591114292360899785488852976212855001640393930788582802751123781768793501702569093532235756207520141195199587073211272042035962751117838780371825883957337687034133023313035024763604755728362416431705550144565357848928126287327955187215272752263348959866697306007904525020333566326958822444083024055461501285656979652260781649351730567242481931488919770102985217146622353444833831398899507314282648641693511860992454508070370768564300057759264908827095603202792847058289417299112373729817250504271393166389397096845150239712505795447287778632355095566220382071042206721053868957819687769712253469988906361373008665779088053237161571810188575681938552497336310512866684216880179166005843181996648626946234438634701958338095652114001153534985463567942429437043797314109943649436443462043945563821994902206186883619608521515296514162673046278431740286509315250846685588746103167013812025234191396356175540170002723361931372239203921314180793327525166458017896249795463584778740632369036250412314266384097234586733155280750794722685065106766661779886891957752281045594395732966411832847048840693947561619163236172929976417425474695238301207270641468441937516320851406450597877502745511789767512059826614861577484631719007511491211356409462045872677011416910751834090047085680082147452946890835843204872939645400413174557629405600088041748915101992191769772645296213870793540056461884753024158143054764719802487575789936718054994615918518087590664311255162087006529556097671310908292946550800264235662136966917474612461739306633751526083609982362076137930905678537382284605677262630456558870266744914092857674593354369227418234907040819784161998374126746863002120348173796632800049093687288712554153312293627443723566425191710921474590605768914777411191158097870077003905797507204746534991836895174123138285675281418638633775940994380061354981552933006698412321959117288889459527164864996760718312195373723373789674923892006315685357837074112212916599386347370098470619360829534774715038942833308791191255292523844192956822653327079086576636740969553274958004599823756735748031248060620449857614493252897979484671042928708320800041657685774041702009701916562837372886340442824718333511186366273847663833923256669091136172109652309338500078013415594991800834256759277635517184744616809168293027443243608556202708777134951403545429535735470469789989537584695629908052322121021428327503639093904723703263350850609523683518798345922673437520298624115948189597728782369114732162019579644382921019346157645158113102538198523443499312883383580300532717578580445638164060381108631841527347052195299459066828294929727526252618066260248386610463842921535479566269908342818231903701132808565664123873472320713106769360339210262010838626972923768512536119427078282020600147984670856056328892864307270296512695736184847081571473526214547424757376920975828067002786871335110275393843950656791702935744368895380490431692786769167721127888579672588518681142264017047389501315695164891162736807974723694415245261806026900218180798206552017062074462395248891768857393766625450188202540284039699923147876074717677583225560624993006101847880867921738480794284954375303928963285331256126329144561343813429705018478616944202430644949014706490170529310186774922555093021175252543847372501911033144318516419669404428793797371195696879929791238651312970882248963669049021694141811995506304151812228797863480123742939155103190473607031969291908712099039385619074550266581511185283758757199201518308391352567451943671408536731079810510737078119721565166881610188131913455401639177013443982305401394770504136937503059947610817717802273391577215660376867330924084133076211609545183810149276198407297548357619817662049778978505876975053358758189538904901215303771294137492083931345723464664016471203746830201253532043623775204652022830498746751465143617071498839816308964338173482284910088836121755377092012886266493276558431157403172895107829351373424247927168005701735548663730808195724896103397206063852192238809280518960565190963746965302650569393600996188716175172496408115798653325850845142694896842776880141338224267117006218483737811418472113954081541608319044381015745751177392849556606424683767033660485815155656176618644090500833231948826508705834993297473682170188445105574623607517756853088052153878945639312243140599154408784983666067784448451063813308570904438469306399026207691188215367100999600840212546460794675052635657323635745160201927384211296586389933388315517917266853605228089597714763292468430824857932762275504370881955902989539381825017390485265678888175800315861524323608616522226671387557175440402293416365201544086177254251411817729716178794128117550985279123205787627812595103048837473489387028237817335708297140763598331353809109667936654120305058649921808377347623404662959679893739167606057972666646207744192043977383024811169572249973329046882092142262088151738406311479751013685815503656620620124648119181629264406976708123756883984990053509633660780822247744905553692758405196907304075144747088525333328774361266580198459849329183077037776896465606442564108200200120639715997892394400771037099233579889629293806928873225237458972294217191248585446069699833596020599422899903575171842749867026072554090552196877374846803228624494085861893477407914265472628923318393310237476073152468147498764067118242052003996049326278239276569760836764670093799103852234383067393063172136586560989046729324563472082047218061113181880314335016424605256943445748086681086783281831833982599808916754493789796539846533598186217908860761490530910841915121544538078056343043440514992297137632231564079537379088118826963101357639280822756473634943288396654672779118368282311307860710987037647772917793620164819957874794923958324523914872132749284718526997166444452564643977617020336711725185333745125454898671263779733974525565954416485312445766339614733174455151140591143606974777250712312863414343760601674575546345902799421131946960662695416058931053690557087588025498542993130156884676072660873977242091415124404246243787316932101829177513262646432850211409855730801767202777822023944449973111972623107903494897932045923381717213833624633092646005702373254927922899929239149794947303369906738308356514123444840689889627439851721230204713220874794546318309927808660093419028337381074925935258130359543697975262428949352214189515925433124369157100738034920440214487353182046370173112417411246892943047781355219372940571112386111843172625220702814489935048036462069282372330844190920380043530277833563586593927527239661654897294250504513024296351103629384441646590270227965238201682937473152896218445289095503528444355894485772562615037727240013649443149380224370340599639923742825347046557531855698527511483169979131543367976552109141774875197093532092740395849131827945078817355051979962455209706948880270402057803662905304817057997787427845859031903043839213419110300162709609881732421646921491766247646289697544528020769223885304131537259148941303043930135044595518117326534914030505114758154747683952209563897402397220903317695520463842571548561132239348926680344194666603515188788964712790395295152302910665370494561609969099084619061844459364945134705873317848791277813090911289083116557343868227470988236841038010479776377884477197506352073476566020757466548028151763177206171877335816354474489720155563102237952460904081979164824721784279042834756047187999113937575570540163900908396908762092601973940029607364446463893010127975061156212866629134251581933738450131815334733858995663826258598402558743634194363608324646513348951482752176749681891715448632478643104352962744639022459878162544529130836786291129825728242831132347442917643027613842193481035163672577442788108283269069258111372049175273686979154405047162295259772810720735380902222447409165465682075330739728608368992725524643311606996907819787982921743790252896984573490135546788941692490549283956727204973256243955376480708300717937725422303171408400451590241600882760909980941078946090961241075725736773138494517578540259457859438785120617028250372559976235423827828768891484431416268759309695529509715492587016606615273975188406833910681958838951987117920085731616606472187883123349379857836927334166750257948665693939522844398165425737247472706591897966552041755418936161600883278518972460984582056202069791256305996360839259620133272680430543130904264123804303716223380796579968087181428690490837910248818006373957507029877537587630378562144881744543529201589653067629706607246233603544302900593862882134573433237511758821903124235389052360003038079853700117520411779129580663886306834667912482029591261813966623027632310318427206222954014085761357847544217502738495236095465988610852874102799505024473528674594623109444635881066049380885017809115088014853672820465656433733562282642341691655974756650903296105396243804059978922731285848417767408562814903816737192041865619192605892242362158091614474931604872090973633367323976008857072948233914284738919112626240054639860167309808040186404994557969967507834044990668000836007297406360284975832027921547738492602579004486308775036261600863967802336011753005854541915842676508385823765257227024420548584924006747705308181117627058192747358205594168623556222221682152999860578685284075057257961792381197380818564580955879695915433391563624411768594482835082805311400571942619292545350904674009025528031859487035358162611040135041391039802064576841703169899392407594075224925315520542242057494103526834856534161642222292532569710572154011497814783315016415436575534740926682441738860752047440882267360605040587320042538923027936339416017340112904053967812156324207221340999478184112940177034512428083771983314600689672386680628083591456962147271345282605420007469757785587523586573019537898335479137867142812119337452626788266681897508629771663342267746939411402635025683081867226990148904852083196324199891978345630264078274713224348873420123956829757809556212885711793011394224849382468515204440032305029285971345739506886423611654685878482699340742157798181631556395389570419271098489238062344074402941681108085941359074109046155612155853291466658087447308327407080432637680565890598002706224038767725140438802039184720414671178955607674134859268820021154276864074132657115406436892686984329928926044357510035905902767364000355794687411875425412712307603675677713752615432024041766252225775087947118970027434426463379301176540449825552588687120205456930572535574708596311171507955311135899760099635986278834316216102820619052792111529593107784963171747690727167905605731001622356479839381428696183616673006551696950097282182112865457693702320486611473659342436925071539690018283278845939703766540159298648567342252170225796600990258884257303812181526567249281836786149771686749404542256035940007946159889867445064779139825600153233567841684330844416135471108814837300214299066590140783105245715499808051739895375562945256092368187549284270630901791944019421918505163688122381747136699214595089095474236484947498825734580132975586429731945320409881064975274928895569437426397747720116489008273337219236523874619757762374181939430085015475579330660160758469173336773934038910037281556999535215660307341211399325184894780951954714444746435560273190670821744019845326544530533853251622240455349345615236834537031763317365255063149857820019167428268866055833821736681735032743008282648080216058052397065446723663442539654604712198349605023185795521673613137187295481720042987975673521971125261096120204608339783607845663794227472938046117467481647320112299744524678317554968401030807388263569610098446939841245704256406894121879101113639204517597974965213804310887441601781848211723153572216760540500441561504900727214150701277345904380252545471589419176294825951284556642525269484017334776528550360960018846488333411107976510483815788004992326216059090563897082318441014429656576404433634988524357741733077751654562611363556837474484290764687175674964480259251233580189416314150547781213754982666293212985522179248631761557917127606845361231608878977620326154713559460136009618504313209591563810374415267254130265618942162767792364385550966765313197866054678617089432943518909912540266178758239722913166633429288650456415013177578755252827173543925501004145882550083758011255316827734059658316698336410228890040936552982199200394397990515243688452348353671334883567310864168744811791933694197087473639980081882432770169504686105924747398045823817346365599889775534995746454045014123885340616391562086346196558798977297529835030208810932502043254835892374148775346417443224995114949724200915477915151301956962775883263683497842495113245946998087070836732427706014628676791133962034792510154068810268113105099299484887057052559681055991565118956699198889430622139993876958046421632933868151525337461573471131074364138013212634275243388696742998405947868411552147843649864865809701738897832232226654982327714517158135292024296633478266103160314526747461608233201651306027202019493270961954232650916603862917675465497400617879373388292800060942076571348145957933835984743182268303937877659825287041397553496857716356066397600151475237648715105313461809026381532776928227719770125806213347932082497963890739704577858066530367839111193969700873295780221017449158901991552513750498775230353926077281588138572281131102918531439990174886521823444846104541834110057861949320034787026826291889209644342241930127250280757032436021298760166364264975427457564492400025125433223051149907379819478269545452996174311898516014157075241593725146984337462392043836665636153580969737857224399101735580282438973121475339145073223900201185790216548599820049618357873061591810721564389876638099230454341721570251386589602352994739537247188371412396272167419640399936476516100639856005626891104872567026875863678232703069246236346705721099965052936134115882871586839509486632290049244435933822832261466205186222464652458518936372076507345903178916007786198899394723997116247782583740428943067474755345533850666193253494944458660070505943445874495167636132802677063713805671930728996808353927052607747032596900415842695220519801898475195816836229413033203135108300124875426110609098033154986159879281170826496122877585671926907424266448818218808302818673206448912568336164524061262026719831717149537056002231621460506366521860363544343902965405182184365107130314899801148637917141339656943646847401390642296772925658547166802775359666217018210121938522368409188252411289761831101871403247069849439358831311469618079181886723308915800607013797485500475819103103718022329624838744279741018739088921732733301059114893964553485267613144676365414434751215576692258683761878733961566751325430911101831743278645869698876987397758104870128222212369062687242096380650744538104436329787378048486839149670926853378359181623602842417854734513986029335802780674894970235374087370597892217731163097398056417120488156292292249103266671898198886570776287214206115775699856996022332222030926309938969868838096112024596815345462395684858001342882377226818445964422008076640395113392495027773360816955919167771688002489230431573960086806195251420563268277963970992480319448877507784578505342957677209437429499819612155541491582644274547084296550345849818794758606273814159897932995994739834859631343588091277951259987357636742424319763595441002949977396865851785398079816041296756740053276090593938517589624077608587483433622023424682057410542572932919784848454183772725356241696605461512375669277534711124772246445978441816350739138126399043818401014782236580526421848146727121648759234806567972368676354271124193192945977025875085787907839985889285890483610348874302705197071834356172585828760433241497525821721330929634927762379507926876681877780819756555219139674255714117707506091967792369882426945843824209401326179383530545500650503646720187553218287559143390528089500475084719808538909744902193982185830532976534672128535297795050498831985861683209697504668456819466740964681972045252625690027318474522160625118507126533897412335455625302652453367168994394461766238011853414901038062462305188297096299940967579932273393935933018196761883054665672252924472110695252524633806620476505736307130901166294303523278730715658517440402838700222084358378283734976335033929076824344384516675190797510164164740982272851322033735615701782090466604847016309129530201012507656546406863976261490529152764748465192827848202609639310955284620852276022123192063658879629707319030586389093068488193550023340191278040183423625400428036262704767477352172040342852649726075624382225282258509953018762103065929217100448005955302311990713550199489294201337236708873212554952020824686328445600519731661042261724780244793295154124155911299358336378117186859502763583648544322031714198137116943291794721456179717855270828590366595740682884085393670134684155854031574036021068806507480679679607194628753277528413430524654331455627866229576628379411956107385805738507771022032882902710751505344849551206219074351512548597312827903382645264002045256178565964899428015771898047879053821356961784934772861666677188081174206770335324481310987519222644045755882170491558357508405379707543519050576328007075143552804734010517367416609786258564989982839749721435319356271144956101291495238929462187424839078763241028841820315891891545560241686838274995052019584971418066658192077080574102389573940571401395359564704125047918087198706740865358348015388701446260047114693713526937885744355043784524511410933383963293903248992787614917855489827785230365756418339494702887863985864515151653022693890602976423359826342513911954387369929544371962709944147865986231768823490346498639741147313349066649807472292324298956442449873743461324676525876934741090761067596069369525293445580381752913742120189216683413278942095998689974989488854305945335919484674873682201887778435010094647981141021948566092695113147538288037739469720421305625179971302471215456937447446733879394784138219141549025629250593508721207528130619992264530247472195929676210427296443696797398806411772957700836603596995833966692001633427365593744015577715716828481099383991845106084344684449969183994354360641482437413189216263954089878175597964846788242667478204068269913612727632723340840622318404666694286730342017915218534718836399892339763280685798499549606592875387751739263617212606147314430447656891081945440978508463075181329605427455633597134957300922332820328023040700607910330122638777763251304352770933713090885860388780927146689613811888995656286870777202112176469249687373198662850460579169624623016828063722717271722043762651429207008131433519942552627805339758174930729514775887335192547730401565739886511673537980718118775594550436507997058737758139790521561475196697146426834703166143710634712867090896377227696891342350334303833256336218381338719921478476704262143842683316243499936857746122465577222347990565135484917636459639481691673396971696638198386011820409663169717352335966769872531005192416362734716868227064238484925325120858511917634136769166980229589115095503044882618166209488436424666177515070644026219924738642672894862073280028737389613129984115120527561332387125968758901717604460098509695629414449890544289724992622049061446851516028223242812494682665096695126804587978058349230272927577939343912382540819968839194870109032453377590409747010385001868792934996112356477115475075097718064054338290807652478575955789701243810720402710218525743297325509679246294160435346867456318362836023378763518245706188042034638728705589803804686066855576588085521419745542602834379818597502587643798594296855151509710138649920392062152715081408801956389996154743414933113921011283663465847578265046600845482146925952087104143094698960461795972499011343319054737754811039579343264199674247933206190963547916056504500134071718960881203444991007848827950100057617465529396519994327398090965358033275103573423364398493411398036024795815664376536385504214619302457255951189864555352988593864444533564408870134461645842156250927601562239764423545657665614360038406990870138510018720681620488956952877451443997188240862682882238741633735480767912972085989732412962256549865587111575057223285093925679899527259947318471849938054429865339965338944397950646007519117368555823017866134322831841199131674070524561405873448328465103452481312424839659850474515041718294757456855687339124669379198821399360396784632703778498104780840591089290102901836887089871106688056379352656957546544650505598487607121777437747689603216274428963211845978064938708547383238214705089443883645964541812346732267712298559178671460417889761267872384757557321500239911805572003316639414043529458944147498672411107440123681328399318865722637114342267761253931313922960211177900820288337836980473489646431166270177591826253716171474099004529963986111572804953042034258531798571839932962327082332804963659432968408433830324139448344247320341204412253834991639535728113992682979615071958930413656318335978106876340212807801960479518507659644972355536519780352418579074312628298138508865921698647622583580278468436566825849887042852678926433933571371402272124855778393519989865673014948636819891498330944882888611217468530090210499433833788264575543853486086199225352303198471385777419161787081882911436345880860212137440556648322569807044504816524651273667352313238071118867325289152428272014482079046669149673752605966045160261581023916929819823166762322716363678110765912884604434031010519164457842696801238567257791441832745556960764091526843442084892450595357917080701004603441780300884941661577081878829236761714989594431648972447079779949048157199266416901893023207743749007759024001274266588506632682646514116921269518268844116479573277782671913420767770904604440551277111153262957482932761488134155516872891983652272884358480314305724369109640078121381607904236213303857034039103438997964439384807587824987130104276159278875210021379481797733506491303474843325396694918254231010619205293891213385179161134628906877034525373159988917455092082211807581209825047882778617191920241545192854719968454363651631311787084875932264564469385620509273654880509246272273030983757739072787616820892334251689163169993717383944078625022915417154559438826791253970441712192224731402086163935916350713222127765063434097382625263753037183708947430636740706761503245678300250169493472700199669586222134396714611356922576939268838572427441306448133915405888383864791414601593833567968725136467379652944395292694994940593707199290094625126561855778802447011086026106009156539059473921893976434708971687163985651241156541635708956304988033350204147955331364943004186044948308782760035499295164791289037598024609551224737874538405412078160831624759737825719775076823144326040311508933282776481234577046772599870875569652751508427249776033272043018001157259866619602639727460069733926647694280098278645982000092936149866005237298228575609484093495414943115692880203913404948924247731345054472725645147780940686552470367168404846233878987180163897400184406376941308867357149122997845826651490897546411060772861988033159046982300751399538804976627026363272700890833628007767336291629149476259422477393642456770032668918363425010320347283051963330249191510294685086020434430348628379764843454716355684826947404644774713306202678132647646386132693172136225422693951432409218470293958775198072233006939842836306762687211455117071654980697910636469945365532659649966363999789842134868746722293332682684020143287845344059583592741885384074841274106204696854733062512229270498441226245396190330912095536710466021379760348924713356369967633695737718122380110531284673876672217897176205702052834903428931102179017085936168250256700714089698932333708355542313435504729272424652603444749876848140086975285384033462627833074125899686504121558468967636749915622371073695640380229983287697362727828565490217767301243629976478236639088809789154237539293554262069069107275354529026138633785654052145896830426660303937763964191416976792603308304935039024821701545984590181114416037054576928775065907157551042201271136033336351298993115521085541165304546744090461544873604491094853199796809330453784366579284187156451970314042811517556181414407436204204149111896016822578327886306469225305110855990174958787760563756890225097040299033737134969527131892134813774996463879012234787606055309269001065122512016258696481461502374034296334082427550716764480821245308000598514400325884721786989904802802933540371705651597069407056101680180015232456421691557746170921063144370138269536881737534520794675239323630896568221496959697533209640132683878777899224286552656485037814514604507651986885785665316616247066020329901060409239530610516015896424906944673690917731255260021202658525978350794019748217546567379670789805980342581870187862946561743693269242382701565751447983560812939233508232823932957244329072345910476107236614847681212837962447971469802926322982192387271602327217799734559893017882008928426709430608894323690018749323404603610724801637449493744354446209955908609529597416277036830564946962153587165098925170251167566526386485353794509594069558259934215680971218464405754169698909795569919909604141500534125371900875635370915756964508860843021201517494634630202641596230180073224259558820653252103334864786862236633585890762762911696957835158513675136071541876213005056677387689854126477580238175883226736390697665673019989386684356407329140733856647130769250506315753559442192049237968882726244854685686919402342566197851917004299705644530462544359873679761531694280008008960055006200236402136127653197548103231294354495205752238893203840870018094929956740353315953270677396438290270710061794971645908106026851245485657648628563374641865981846106839193430401429222372519266287093209748060240043272809385609337217113594532877025244107755096463375638047723825424102538114140428737540725200516705784634724621359650278040864749448287162959104874055605055533713324155659449972399112326998046729779305669716567561365553190003054882310957280163082931592203914364574218075597353310131601173277570041042551266422523578127673530496287477496659071351337871839763012729769517665227289741275973313626837470422753724264556313477676249742004025203841719787830831217837038751495422356508406561638052160147408543703971323636300756437349584139710294780439202997602294398695802197363289519265421762710164881923998376324565063477592643189816739841998976271100214754058441839634802325899887660329715515294242687878319770756130040612113802874341194831168567556130230915371048627006623474093887978906083266449384000005615763692586100692894256801548501292935747099244316298372182681639766018478252547206083254340925294676337201076009796700574821398175983990959283252682964993782562817386867215145895369744160053517955316551407003472002426967251559160300642591181422925577087760993220193515067277778089777422256817749674974868224121650435019077808047124629947003270047270818516083047998140744212194406671225674506772114063357820321612573448278047495538638197769738750193161059813380487491082416410279432052239900347288508332686043420668412380223577425162299584022493895091578250702537897204008924416670620357122401191745952541182327066125606246012953019931151124816631065358353924213279159497722395597826471347638675565075125657624742837348574907232150309811736252979743592617762333476480871211689533774211363242728206839162271682469664232540535771758159653647741601990234875126340963529045381626489545655654827408478902706358235862757097870412984379765855017223409556999802508240149100703897261717127405576083192723093159256273812800289305411038947537594482454754492085126564221587910994537452424998943105585858250896107286633149498914762380129587871863464353209258207379003888025940469556684594795683619056215593104745948169642067030441515869327691792447203675087776125839374526404300943099352879550940398309465195466664321422405294382476398239584207984947897695406023189135675149617207525166962371107716154941978295604392405317269209633630297184724268130832265635966913967709174291441671733570902513847871573491076231301877198598089921684945993841575378710810652783839540917870770007296005471700997251721804409876934494888634326730043891139457524955158239097996150699902422434382192215520681693503551502507704972263453084455206684558000581852054745932239357305119456670559392689521676318137204717449715559686334704324886037825335235494424845583196145361733366437430189977783236304268347819672895988179980006489996128832378970494794663282666144218080200465883534492814444423823879851711734071097170728931636314380370012247965338390809882814819762766754345506747381639852014055385705826186566589204818543638163868035360940766483193801534701532700633732529635613857760412520508573310615500007515080111419296130651946589357489433565582214041761855768516574927276923480945661153134704043344878804876426101449711185474340507928309964879921662467166655541551699120756197841612466352383204054770024968208123930055241493823831731960993298697758879718900230890616340702068088720782865447549494000405917837857272006988441374387362959192398828582912214696918950643860941022319418048919052729372873782660556295366768320901379512819215580584120367549830186187249820543331861359744903351913024871526946382531446012503613282040488631965371432433293214106709046782656258685537338071149253284489566677905541799352992272202419397957127685704600802040639042626729801014986857705404896975963517733507985707114257687818777574870280543836223610976013876386450725111254912632514303070700903538277350833132415122484008896856058309613741590943936061921208234629668562242383189610785452845417803724209800338173394946420894482025333592502769242292473423530985994630105969438138951050864988839653840135067729801550835905680225036324100560946080141425044965332973654323621781566625589691132294146860238208464609424981140771415894563114855702715548157851316600425342345405229894950924135825705152078713494825896036838920518245825074910259531961504651898333678761217849923048800402797457524455294962696167061732088778112688038345736215545880904285162698307823403082284492677582690675785504675686508547147335352355427160689820474292114808190403190392879668409171071230852872793699545341178204566974307600119522903083072133741442226797726697334478115150155837581410383017022338891386306252796302952124570589791823592729407948339161808378866242524231815117425134251914129195995345194220582827671797604621781879219445367238161316878488093794516588109330080776452666165298483725882979186510397848081393923399204348042805651744261567667900398813924710834064295393029214020412066092506088761593941678551855453201099454744863993349049380226986882262712770941615962946405616266824456543273658030528646165228300343123184739440529599361550885455088151520148124409861166804892849135448229189014947547833765466639245428000575143372031779318819685929884911931984248257159905916904765132807274184700212346159139309669910913923437833332503998647211655980739783555817260732884282548606280384627889874659975627874802208125730157097886756392664501542540000242152169435923212942466265733374704300915328181017580139328937917526113722394073652144271916713298708817436144956867442655498680364522588659772960885294373655516518206047015312442596578232037072480522845294979890745870315091493818969845051293548205995551685401775367398096333439178664967001429778696111598829322199844913961651097659738246287893430065018175156572637928910877909495280565391811256167213495327216588002197797529612763136194873681567607324520547681329657544521817976395841853665253836761068882584077573461509311252428866425771032842710719182697448646788745624700084037735089176356846724597697269782883968716418787430921225687245470766132132026753855585560046022069890453922853504655571720157576162886855757098729453003573079756830695061364269636726582042707247492248346377837275866625650300390010056710664596282369733734758193231627432514805994828039853620258757833101605898309938233298263812108938096730360071473780947838751055472522869364685085970397273366985028764415666833449677299116163803730545169482833728760259088715592976816575152407562205452002589310334324847239557120804399384286949674494331871825181666345546860795063834410687386875091625134266523285176754806610661305219968934062498982219857299015297450011241296305404183262239409517766622569218545687442726943371428252833940683464508862591663232960095953741450871515536071408877690838896053299492472293931494825602171380093550813998046736016943430520880525349759551681640651552622666518156589700858392434049055324678816674823250513981110663042032268249714962081411694002318886848439455327058772422747138644647882279352256165988477279919520987234223230890667416391294436449220288590292574091656487583203645189366275149990108261629344173549448981131068135246492594514125865753477357354431657159501746061037250501685403591566701653080916273473289259209056017106956512487755772622457742009326319068412901706415008570522393723558348208689654634074492372397813786177899219237597467744211206174278196412465673709170222327303709285432852771527466306523527773917925039702142690552505605461366645979538794191634026684682766557058244072252479218664847923780039021976019124345837218500136306883938242099593978392102253640211034296653485077511477962644541714554934012900291110907423154146395780391576004217323341597360662659640795923679762194373366551475951166416106611772943500078756977183079854934193783761693359433262235886700662634563337980106463240784308120313307877639892446957872505667514436216401869178530399417635716347435127136377838066446353479212921868383814387687734166987615964444821567372844805001159866765767168932339096316702192481482979201602183617484715052015641592991949199283208147085497714891923584558172488778901687957459359559898667291664767814706088949890078369394835563896510996410508057673464200734998212768583278297829273823390482603657338394191821899596085612233784695038734999413511530231328826032108659068416287407969439154110913146322961135704550190840698202066393068460286755363848126061624073618301546470247845428714790510562591322916416124344881450878570236621405091879808072037202044634388195730030228841518618683276373162750138261312636132812123586814992272345439216658259185347785435128741559313738200876434233246934563982146157642963172702690604505106394507570368846131665984629064660487028050754868797467111756185730329696757387800843182745989997637548371843308540124199831707590650366776614371836378187541330460369750993850157151835796671562401202899156644931952001112912366188000385378246298691063541697782089071255734169304087770360691535150656311086209801010552785909812668851980082095452657093090065996211220760196236324470302821143265889370328946603442158238628767552014323674428716870282981232822799258975569894928715577972661114333871490631345131005518013893608071276011457341997618134136937056089564725263931099891745867630831807868039955680667164119847408202427489666080722123219218132491333735752990935119069266329457547837868730015438673547699167340108477305390598282893431266422709780294788363140658287109752392326710097725282775277897468466688099677943485506509591724178151441565978614101226488433947757843994121454380048385465871265035097312675054863710761808636347436701213986889094862968888174283030727318459203684893826321613155861127849346187048957955186055717085686271280508489406583035422621993618800641906941736995945562100907544720661099572618120542819000119331295443813473277541009857925297825891678393061749784889504899565336081209491329276706497199342901482163833601810231762182398465633825542833880698405296513530953231806179541751042283047553827428586522421649422580466707295810609227491110384016021964391331097500033586476749505504291447828687019458434463204655625478307463337091306682154882319201914355528100009217964713423360812027646015044939382586226420092671764685992291502976908549979982245953280076327663769674083074117682572224651340891022646238787211235338370495391389197084207149535917299508507445930204404609037392692759869916061672642049113633034017656798164283968231740370628188750908726090379198686237683527766078999367970239982658281162573338762004183471019575932767644879778113085120147976627464124309818380991187977521002790022619132915141121422143585473957728135174415589551617050406677774932364406054121015875856159288093285875186902131323075669592253183219713969466469746543093361271144440826667796335840975301862479622382736889109063505072025740265991179991750438029904445606511343264413711493990246841902602623196820387459048566553428405866092189173759321661584700191674376158577569080751346732876316524237441973813291131636899621261560349802778309741806645638710042178501654757749776506912375330037882633236630306715252504324667614221255592337601533675063399707114333721138354872095767038996542832644930227504584556932606046515696623419175956013447492324154814598623943855975155339759768933106141776586688862969250678291761186196096299202298160265274629759708366574199824815147618057023670760125451925095210697988656801422480176642957706066998733306813529785570890280093048552815544958811009421938234595379246354555327712788554221264867062518248066172821891818104078822335514471401751974651977645186138516083223635160773073446691573769857028115006964992900432413573459891861263571645814344707631793226282884371770678868217388352071770334843942747831755239826574217141286482596114601123400878508414050422410938985554589613274296850199560308294034224163080618008533920411702797811210902859536269291323405670337360881325709492652693310949479430377730890369240673000891690164116829323913190582774372075457452155827514859516157406404229509231726974504395578635954618511261982341292117723199699030980891427927598490111015237658989693394881677807903306574643127706846156809682614192137065743252929793526994838871502096809720007567518287545976600618207194738746290146576959035606360450558888524879365735291305790895015785085047171297559300269593483624854220815834759170785376536538880149540540372958393255027807802331268559478839299451844409142051458404177908720873903292925559712015113932490583505761667085669443018118126133500407129539791281799193253309329630245789264292049257280567261350007206112571464217831106750845584254235210028354786139530676823927569935673155710460935488576542898747609621417562220373389011876951290095208170546694779932456788154184782210923685282575570502486858266672321957613013117456235328161160731042576521803885797629267721863925418734127978291668342941890699737724301503150817417390169857781360972461543134155289322434288031063491835038508303432772684045064688035433029355802086476033646936860613224025013907835449732321485699686431096232550565389893808234575418795391026910985042957043012821747479884881439579385068465182148043792675416406124114158745947878354755905571319695435660130249347846099739065420769319656724675777010332261028005673252461592951028923253570393713739911936226534602580027354911087704867624241814742644372358943671453876237184280308467229045787303681565644979190423934047218170985308905581404442203389653538156413599871709632164505757362694243091521488041967510063041475670481793256560049595895920805205441891341900764527384907322059599573372522282242440666314871794218488225631108352863265840543487054313486805032779438036336402326002017557621130938984967036419071550711383336146284966406355455940873599703784501124343648528565733862106275592424621494563781781604429436553784057417821461919130028206728011299656809382051517719152117982629135618875606038809594137272358532181758499803467879735163788767809124077823558832990167262971306480478893310510968360928178638040657507585412183115598432593169827082694488077864501319751526527498022518507234386007164822940089105024391078937432633159342737783570292836224827999647660700421180698120875732487670834861198278305746005973341187910524799468996386906577312491503449171460783622314252245451306845556039405140207147683091242159874331097656661084689170934651218052185685609382456000119276931076056902609524667930433496369156175542057148220679857909292305169357263784915771887343399739712173927108775412592266131289539128511681394627114364660147277499703014468355186373230120803360117278095113111825784251937484663358858789768258557415062240484249768038986889768547608051986219308034147892937424047762359468339382919293791730045215724819169435526957359617230200888880643147529000408346341412133296380326888039849850043973386272931141743180148878216970910759071905060931148602460042284785373710419005283691552827222556630636820097051639576419154010159431520675798221356827168128091094889695843572998893714178261206316713173046121229544803514284049669767029290882225162692427582349579680903999930737123314557453715787679981502316149189829863410378464524046800781880186876292912491354664571797657094507984225578011834994312948177012041592246447162538993815514197253740378960289462229074483437129204978334137369725090594021586345916654484883224769128587266332933618155337925182440552922795766366576970735781861520795576804515922174729660218777946808391930061526344182525545281450057239178500834399411128010065820001253730802723452914964385559466746223141830006198023659441831379844231438914300381110387072454206756938044314344785092706804573877050387773240874788273571031880163907623731752405757534626900549689142964569386335822578829057590249651602910568396997648693592523402454383470473966424381831100621278066912041355250085576199440784702614827775128042818988023817968591568189906531742347445520601295891572927100224399663357252226820981013015166073418104946539955006243755965830063874185279776314446444118968967082028232036712098705782501670438590031265853441734538380560019611371431625764248900810117305578519014221767627741414250136079083386899571569594853479377536774581494331603512247058320838282244502276699688149487794595539178196036785924602474870817537706195165140368438804697472659893584008803262775090756844480425854281125946450667490169533146078548091405307322983783287178687953206130987480777111628539484154465503899638067890680217923347744505706183135558837968247186259642698661635933674732967593184256170738522580964958169652954525591144951627872434822370095866329498025659225246198775824103540985637429547402589328291230458066326021836517397196509162766157455988163759995859761558071199429669223067612188587061532176555409154506345040820522423955497380009276018865110705099701415610877047534235549804268150899199465835895866633483869779461774903212227625168123595465460640621383593590940628792595841368909339440821185957611602124179633168975694739073781155366263401437482951726855375214505086690517645885817046335498100967166051041911367250169913246963207651945663623478441093104184342661995239248110950681945336397367747605066370231025314175647004838451543453471795194492149824794108329722413708225205257686160230760326862905391903325980599410719064165700235766762866957982586660881891161082169784883672698852349217507035936982921636118759864649476403866398074055795817444750121618239911996566821955979855050422714963621594277391684701854448397964629477298118881487404492001233030003563539468600228028609296871260057290280855110800540914739461130384128941932104237352119448592370018111930698658349683660919618856783366987347752215698618091579953300966954633664825845005187748784208262884529796472265581833410225439493191027579679144699857021395007319939176521795960647824422201147256390863550242166915864716884803448232725695353800921865867902529932153932697088874878235772632359553064010792324469163607544702583349826539410960874796063870982814179259005784148305514473550536164495328384599717977230885582844569247994731229214393836881585926976831960095770609430733965562064408769071730379765715330527316868850843586842462309858958096835462801257560640365238019231900258648132214898308477842003333784400268705125068074539945046700711473234959215901129815980132797927172939350762741020246818307717619491975833032872641597560079075500947754478634802797137446603955283993098289701216407642907587935922756435724883531966910535723090558937652756977841558615094162564305438978516559256754139305533737650319122611833871849027783705627747403358899812294575561800102761918196745816121974061985615241652105368728741237553355995240657822920817065238703457749245717417957532936097540115906921935438749928676486609508627434636129711661020580806561386441979281921321874193867541993438478318852321021928691496633964373584790393885539532570348161841802412434689802875652170242941085313722754803682054417315693813819210672706807186639440080972428805254424206504577467489243914032052302555685924550488942830729270946791020326288307561488357232277450651548516988883786027874590297140736157013630757198966289976994243111188993839911171457805461158020849374195867702840241137286799625524103766957814746418515535511594360531712323540647544305181712701457338641977802214809881721313446072133680255740024262747119938206217513997455442009897762585593852094092611250128446272426640624012873301729609032189007122085794104846925798433673171449454146970287467742941480129718545607151024059039943462875357353144262890792189393948996414061074466446019815304822756957840246517204469347608894778063416270504944749500878112503055437312705504956307976410374773948894874061083801525097350736140434673016897708579466353320666040919450361735116116707272530350909926349671460990362891096285516240767083189741926555634876250921208922752443295108360326312158100080639779986623283009009830262501407457467677796543499292598027912559356823183539078296720858305557162836072373417595184940835364718897610938965946727390968993049986854635785189264455269731539244534920406714785745280584558129887275662805424560352239077859326798773084783679249051714089071858674638686623927817143614224954080554313854813816348534525987748768465735197497944544381457539591815889836330626172496276477752441946346260113253904154526147987743099060163019580636628230280215709158403984927062937707099311932661772288178553675560739065593675131051656253841947690453040721891426472475786527443284795860342815792106603526178885593962258591994922753137707267144548703125930519028323980004309045274318812825954413633642006362866778048049473143320561583182753277593485420571489163985960468382392657904675608769151716637039045929308082660564451671618443475143821722893319926437602443184271004831371239723841932482009154048996231573402027184342592651449375938959255949026963145014943060385848755867947987721965076029394664499839919058540569233903074919378201747598257703151123123888699930671535336302553889292788215969043642164824957769971138450223414522609535753680647368908891759050401741788291260928646436064935615711800959267527566288711274196169780085532330040613801015840834185273162429253545605421745145472058184173051536195462555313439586503727310843887079232054913103387460699778515898044005260494097550403948370864045790098863809111054909768078421713395840106147084060830845341333981928744905508478941990898240244314803828034591624913032609991857756857774767823454395354300623678075203893868415462458929458955328455573629676417798724468513682010643891422534405774519934077645673528569799765570023766507765278337305206657647132095919846423950650116461478059474056196234481063685931275470564837515104293036260715963524256114231990413250778344742473287920133658855760532437163401868685917892189314863686283875347083019485226732331580332282554203886791160438951154403089129242691640973685379653785140614356841284871172008048993872709381523018647287432965747477396605877650318153227511716511372141881481128410864018344467276862935405627473208551281495722634985887170872400839552642085685645526900289324828133054640027596624962112761396362312914345390924282088802736653320419785184087065488179844780241170640269990933200440126930548397809541294310997033027778330594577956618989613530128827955235992018675068826154017742639172835216408017795722489296739476957134776607838594477605359882270964618458282225995665255363680339666323893034467597284226813550046888289997198021153607786336562049572716407093308549210482712536092427451092107602915458355272792337654446399341773550483235943575374666322734401904865580313464814295389288243102900949151670878044197782982294377673233500193699239051640880439413332191160142294638152582945602648332554002630524555245095815264205356408357361483706670813797951046437263711961002909690772929996930492718334934476086215902690556735043790150032394528994249511492461819321685341094556011515729147609050401815524638221429311004631326102863430098365579102301184360940080627324130569759271699058202936696408481981385885269149924809045847434048236328707355758353573611254726767456968738185473427807834474343783110712813906727924140843699917780173257713286772875560982726447606285939432025290319454433819347137463598424170469860478324095891742001163986149419233951097845217666901700342737618207801733088769771438590454324339949743019714507463366131798323668439453008747931589380117321951819528533745793726920242489630069565831035381350582063770898120549964928575615435247301556481533872792395736929839156381325275270318065963993683710182102417909668853904075864332100977952942634138513235437654649892399208740305948902345108775583754166347426109825688560302813605708822353611806254129765249199396241563873628287537405611116449950046602059145165169842086473115048676534908429125422775264740294310887631474926278128043061955067006232942428235844098378347359062521049866257393412628988455650323042862058664911909395941005285735637878823870472223150992585557767510873076047850987345582565459000909529371781241952162170823897917560778771797829353003689288841821828951177748424112201587113604565817918493994804112578344804586254633914202788905751026363302063692777082676547538235620460777157511853765141528847959844791765722860706953105125716228974643966473969896372940300850079747932629581698601632405255474156769115854809584885141570564636412976329208709390288786444494073823061819308117332121454094783412658999106985445767609546042709780419082861677524779056167126879871242599616163557754811558225061972687095084822755743006724919409778091180141209138913423382506354220300121835290828566140904231534059834202161466214205085799203004171804893868610253345049568344744779772151012635130032793833231894367771237984674152124257126314065267238270634106432252077407498446002351741502437526364249234374027771771922026982652127355880253238029072290732672527962028016388421514285987925967290193724710916894258009324471253477448757572268517754732568572009036439319130596597779160943599292354931628016981359136659048113321024649841132265125678139812733495167533326722685975726387139496289719606057205625732757003752264467522717812711486764900928603547649848000509549844250926836840302321394305930305532106581859039910156435144450825657114750267178920146879434555253323892736329694894386733501647502284957471404499496687440116749222266341325117176228265526650243560620927067196577419153499035044073907111406618140994629153661398084735757541927872271314087711782385099958571448569687626220628904112406513071018628649925941083126620413832878526959231407170690937880227276513345786154377365087086340012787947837672794106264367615338238371006219412734078224230212770002778602151561972006862240514935485593952552660320723538715894056573396952016923275529323741874577905733803140694942760086233847797194575153964182071616458953180912223023093244751268091739038669935772630750252428562305461128151742154305632516677481339093163827626784500198262431353975908021268993553002997339363053367291226375877670402511382071564971342492231189812998994769156191323319130929960187960611020728658871569545691322643507232878552517167206625509590944744920901905615572598237458586148534000953583910028227641022578124383222770568972743914737862934352038896858260065366891847996975737681235432054151517421533800785154223522666080159081143442816797202859216223201284709992169832932779518529596323726323555311826688066386582590303304627893152372244669223683502284556710787343301304208052968856065644374196112519178655789815065363978630174732044851355199325609153416616161017013190641011986005639214079546152189317599575836958897446509148237944691446565513304465252687943724502043304228221133202965377952115768350805593101825873370137701236681358375874566812748789315001775053096037982609577052846106979449073587086525367287272019485655605096737325405994044122710502154009952706649268642130727133350072844317293956310528751141241182833158333263457482364240214265891220820811809892405935228742834571789077107156556624437919974334907472979183784640202851082995146832801577459340979625818737977085292348650351655693126552556715305744707794450161535156558185500235501557426096163596192910226022160013622449566018280612202136609857945451097959232589611368765848069829694411288499542787657404601479787573189959734782355459139979114677269527757690825889450892241513165795224280724437024781353772396594772946714461581701480396134638226275044570903991890859069998713095385198578256074562461891162007127755267732959960336348230165431351981521220750399035821493286088997925110990353806763081047293460713109993951884527072519889849869932380656069571711052178847937576733198840723193770141998198798153276223310662154128029271592349311148665988073720299302096749521527059297782096473672189014284163822293312752050454690148978400049157653745501103970971016575372406437165934441164751335908771097498192335717976831734373648953787769450984092517363576987132097210039111208315146266932923620638816361312051311433626723682430253885007667712328528199495927004345483436292247864579231931995504401427084904709730810838728623016522272562077796881267124517928344294543949262217401129089682940413219207864521015382097800208177087087717931532894548507070070196957461048015003004218431259768617188133129878644725946177751754016464943622865707917508340073575461518822744882577754735915154144318726271809712003085271411998914489242242479261078861888672167211513117686937339397914006934796212039440788947729457073211549366931740276420082670209887978673659619170721430660968127716813788567501722794539041567080115345344513476146631741494712760169983136204442118792080131460898588009864578937437612981927974904323412721508754375521908151990127824681462544099444623947041898590609227215546953146452490410024651738508961173147747278587202483798055626120786728260605050084892101044611808480414803182910870636498189635763414199623884564378651644359212410574177919786881920730582497561189564556916809911955305435049937289983881322730157303830877250897185831809546050758082158228416578136343585843193109980377254595045963898617220494114310421957493279676607066319101463044103822673937776252586939479655082592408099936804013267675120864388003686291286717280039803387245981814337478396672588964519475239375127384559237492131887431451068842927927911077212141318428326190616409086358817302290102167248096950010265420122333835418420677713147638292717189014205022977317467857360803205932113879362886038772278690678593130137186940113403804928056685800017506300783960218639731595826858210431387972880078862964841005837233228146849430319143339110501375102949316087396344920400589483283471032446003151323823603324627976784720566360807591760286227807318309099274847124176126695553627364955776341394311285047544167223238323262105850315278902283423164761411558811153393033290481908779460641372032033310449511483314553913451608865305876237024967649359107017259852329621079049505311669862985539534635976126297575294414659415047461275170091255773230176522730184833975195505762430657149664891232389843450468839273215285584144171478620390046003195699767892822596576953624683405346313864244025842226691294756631636290861447120592465226472296923873077553200064256114781590042360757782235923390094463670507636701548686029545597838811078986187223026710408593974111435209344976942185198513163529469984768952603519842828078406132064216322858882408177658576572234890046689536304943794337147654062912648970725603854195180992817021452622843251942788377626483270052600973297849755451203277068493802832723710719140273578275494685377800294143453337631483299023287403151724164689913508478478501493238069672735582663474407856871361264761486699302335621095460313629152566121712890125809646923082053736797074187297633054996760651482213899891718355040405175788205141296073842639096045434699039854059557121917793615221347189939986358526229092096830824853648915387754464456539211331734008720326433780020538770967342169475750928739420524085743280907827688998273177473902673494061290256736970585769880023456639408760161049259601322840326215523845906924684641698595013040580685040127349993473841724392607942670818296525556988094413425311402774308475967531886383728154639837210513235936761081304638977082445758345427542109848527978773852271130343233672651019389286637008065617015826309978924110117175750442456121469977673095933160673533015799729581713817186490996033036292139546026722145714501546630283574239381407370299977299056344498372060534135105626412913928710467074896982042663827986840205251201675184182057003473459236974044449372762407152065848740203534040891622021181462300552501308882119742357404580170668458140706756447808441944076122511261503060922934528299043597516121162468168800517942106792741491263244659818001970561206940704506226565102207334479398163328882249621342125960959212051380579181076103980329153578328431108674705457363731592361171837225239078015736905012978377042945224386430514182521828636483672142676663323051367923569203089941474152831219184752948138240630081245893818859881961536317339734334639845206200425560434491513029825662642618820814292160854940768356497421580274348478568444842410259133239541586021296520893329125562734972575030314749736008964083230089771251470113495475437748089214473421340298348431519906670490486576384619388454591541198649949375268181722498674760956333008742369317764211284577164487536127713162871947952853585099672077013318459035656324341489550174176329777391781202802140283969200929441580635437171731407826079721572783903793805722499558208095042716720884002297348311708233707065350976071401364573634935354198463678122425027580796161321413811439222449158371663266550281430518398310872314448603214499276544806773017252175607097122663062504084131480362558576521711096758650824126920993498839908215206304603091935854362963110263368992037437638646535140115782507317237079825975992802319637661913567551090879533569970865696067173214804894078193605121553381918260683127111536867863931742016740855687033958233608539522400891806601153700305821888408979713837593400910954672013553554781723340872229768253663602499368539067044711765633741440133398847592458780329068259473179401548447055231004657236553428603161539008489281174474211828403904681196905173158011516311425055179804116211211639848046079061005835146365081212985278974401564940415635636000035535259382559749480887940612396591627197008018019498518300252601731471453011958766306375651853155318286199378740478509770081777509685895666638923322147662500653433227664256101097348944414655907829377477045598436827739926020136472863834995672200422850987527369183754027134976866287779072911034652131347720815447603916044619915415007321418871428680943762587416224179893470618510988999803005432354265850832864219380425933953457921854544967871096149013535835894310841169278760780376762499656380039050584552039079556621217257402355455990538770183396547209238158112484409060343561431506431171526909915879135706334580394898721982498449413997847336876055993160403568896180883781760886260384440082449831063862612448297420227026165465214617791159216667853457179068912138470833568017387879895776222745461805377912210660213320992119296060271222552102414964335316193073084678175335982287972523332139741210060326738357111144048064553860776471806297591922958412063874269395993716442390366100702916373025681618888110262719744238811214495501088306693763402955752990044008744770130282010670693007085388900205181826627600576903728134751897506470432350885775592714507415935831927961584843999080417939296044797146108694757839824498587204269022269852666167738076368741045802260544819311707022977392994880331790102733095491738846967739286855754043586849687023011551614761666346978695684490838854889716172667909492893503085528373480843544262932694632432969569214199579649336354946901423302520392481621165526584678358126088949472378919529716178923198839111152072712451811675647634201156389404662176348305573458739428172474402250268629452554272254294968644248568673900573301624195898750236621690991523197720811825548535625686594829819579442539087344869136170745673701852423258929104649750786609307443061767206957539538902475272069853668113366951792267693223462127817988195258137379431862205837757180101135492748675283160114041184021784224908731624755457738691448417255507508954730769697060210852308695695885707906041584099333366428749915594088185561634572581494249370547957849681542220459109643382645852598703532024918159712990986874671192656591948816300135393795060153284912856859284832357648270861651118305229186694792468939875283859149914097381636080970610169283792434230329982228928723876127490549619181567645527615342203526106702449331427882766717541204335728274664144111045841031278180519943295974602249172544600527109160689870397208440018156196547799543204405253541875337294784498263693150307819413437320194919233400161316851400416473467580031811439057885553704419143652939708821292152007879564598633641488452453834860921752192248901472667584152004356978397508623010794699264903071395218260762008860317812631580664530964254905622394037318209306691536776090359953395783907746324264661865679266719708814880522315748298500629052290970958732357458708021458470506273100883626425559269092373249510605199258429805867101201912820734669190215853099909152580182867102602682962566486386086019740296721275894780821325674344451005144694786631979470526584778157759199134067196620305569307133957272675455852893052780809726225531797879751146474738312019563942765737726249198685357707576014012702317934323282797885009055323546880931815116440797202326619003771361156485114235362126265306116283370735508420785141762610472353455458438031403292044595806196729983213515588911559464716097296923025128354068787823197131197574410445411317341000329351917737021291486794795959874611745459732494400649654182868453217223773343365048814289171726910173221620923159800165195088602588672717422434525641648129987475990214456872955212641913569626956191212522473791429911872101434367629726232824599368560328668754649051320955562206131452728266694023074488608722354075145144385121890406895263695661465360321623344310725912575886813258182230578329044746011856690357962993744029196101413039104145045928312633775653671425619281498259070559233295271061873243952553387010744205300060743231988256182198799451369900138627939631342447570618177983286014696688901155932816578423127832363400833340619349904508593553216732455267385464607747834727627643580027432569563118783713830200771799517986732170753822190171028833755285696134771971202814565618001469683600018196878933097542006227314358469749027421603084858160352701597110619520526705218619095233428715902578357294991481845116961611923312046534307676652366880458957647689744215205140202015826811679803357221005430923818028677462898018515772808194684895239641045494722087448982452407632065177202742923064283724547709899715217158147631970321444458968400093758664765824449795145615843140203055034340145194728447322957647526204528216847163061333218941489077451693502264151722808701893680129174209160371558982486878069598683341417023091583295983341393940481268576504605781447765713486093043178550293499113372350736609880087226107175808964035047417603804797557768357898846060168386257217436654718179172484514537407204742185710550099227852278784345981108574793144554265907098606843874074858455203053909818790442823535445344004181758468809529947408699445993436431754018488370587597227979776874583486157843713710142997127571645661668442398142878196775973787646199395982163831675588173598658690265326107064274605687305986632888791420899171320541165175418527241089029213902331931638368793294852288401617776717626702836940033190828985208835756271057663636131484349983012701442041232029191095835040570497386445533221220710543914980926915219199064359516470791138698634178772467195422789565375279421803026150100841102455053165883683241573649191165037397954756654372838792931719438923418714440476266518481675500461945607848729924114918146225864513136138608692064390670882392449815872896438885870516491993370319822827586211782550620385835045335035210062243968158391878637773436182825551278036195982210756879091982990480481338097584359419706636156188144071920047877495477810544953568214155104481438671986179633489443943110074763305449984599341401084521346509064990957848897707912520193254579839115681812025614743296112489265349126415735876702123342934952377748980026956241912697043267122773972240664311040808900224562751021229303883845504826640441017416636398290391939061908434100452811941258160696910643911021798330662187533657795893293717255132272520534819093318433611779751519763374539368381539787602649891328068825313165844151946561825568659449964876445567529427895991315389485062685250025413496625656985365280774932515353992658210633135684342021214836775650847079997343815370204794139721283343086300970627537544997665160968572106355413560952480786273044599673537386773756305673213620568561891095855617224806044900220903192250825712952849050159471820147205162531140385145145077152463799948062278067871098866219238062601611953799335331522312103185902095615180366600684860618589050370310726157240737010778700286325071353114119640766461095233746167897510591793547050953998306506624407951827288235816752491918985677075527516529756236541085156159167761919760132587122015008518160391790811737315773200293806384851200756472549695521263358159293688813463199072031843143924490476973381309399902206022858120750871055762599178991138982059680036178135876126948878332395806327254622853783044597128402441366083220105282979021618388202469775861918233900603963599218121384132479755580100296338478217071719280481635465595852804868462807731753684347747647406829766960916176099423381603752943754598983257404407690387069175220493620287580792278603196298893790790435758763429106745111232876961734619057272076746180587594934430092867145532307669336844261517068805064699052579668390154959721373417227911354065389396457263573191099305536682320698541834441936197402085438466546168601672455853341409866536566015440110799228542194705704955986808247394531953313510280276083144582198023293752700108868735867803859994026339842525320996112515055959213421333637634923044574848831477752912234868847549533622862739900787382271983266477613355745905042175034377146471010349584644397815582044049846598565605840511737978337999755168062487820519633468535537748920189608732986696868292825376261092069970860175222097164761731545345725266444454434059018203232620211931652170510539592360943431844192423927794624158308695488195014053303572130555185615208673530087938393354808112258782097260440359469052271450743352801975259631909317328419076101646862315053302539893474685515562038016994562513746316114491911186866604927740252069874866539991706047003250820746328828613980211819195938285187825616446132384497733984153037187522999846967693648564414282654166125459601062777017222370054995889395590015415678709976658008520328191697994114403657827110591819141977261893315354254058495264575093878176408256619329598379909114349490814520629291096725517304894734493989405382040988530386013942608525320451521721956699271330491514000482298928580202273185829921908260682620111174157819033475960538018574986199033032203439512775145437315243148257033892560237264221029833105724509147661895764872403601968352661587184109911350741108338780796837307913337315477142021470784964486567103723490167598451642240424853152612584798783248433094961989933552151339102446227103203255942707586923598596678950787554165348754577915619299003093073855620628423176463935986964087319578039223116868666793590847740839007322076973977505461677585264990043901673735385353028358543120746818757925419137369479136336949037256408176774644820951460105302370538624840191912903215524793364643407864960763921739865089261824769386137171480949419325977330307492288040904355335927902701848928961784754981917874906680225594461468723863692421145147267723870017119883674899980366979658963712543412797644397192832821310911850616712959202289997715554380908563553352403022553323556253821185698707458845547663344073739304429510656377964491815794549954144337420426977599878231669110545283694830039529151155624278584791670213686079244782279381101620118629871416036520700475387871780427474079593543756777410770895920461100206285924628468294179766536647686865903292948184455217841232068841124939439043745409008232971495091737171840325804274121518714206275835979377057442826796994082573986406957602786113131307128001355908669414755698033186518877130143729164433749435795489397171210931040053066237105789015114465664962197219196306638488882874113090041802407929033250731030604280418808017747179354044355353896034721039762644220674484465519030557405289563598987372599155524511493762055932462745816081972539432936778955775809629887147930344365241129976625740768665707776564760921240627384982959678914435654859987188494206104754273616727511199230750676247689345034250737069184896443244331956294631137223776280952533297523703266835799809263359219591829424025407101090795870853125501619364139385024499629047558668279314146159893979339196034961460749145109132650506674803427820975204149398425000058230782919293750939383065141212266077099680678726500345994512900740231024134270278285641204498536659803463120890429429486177037303167915506079816984423268721480592275607856184250244626071921427478222357236727926844211822142283046091853414053031969191118050896293886561320202398258103734472773427499248172587904947699969651646379247435515690947291151701199049815248749151816219754227941315772007897051679702934457998192274353987462825284977783057251086447772276156736081395652033001008405473028525418823568372117055442726084316166753178639238190228636169748723269762052029127193551597435320400559672800090497346354743094128699424431621549004201524941852356862543236240953552430875958764650667149309734936453258453045983409142317485447685334095681604237780792167032098798712153883249071114536654516215196517242553573185094490455619838953577623080816152787777477444985761283950205514193100107207048675171029112763625757108122893440686210747412323682386113556083989815027456224164000950542578988126027541086155406387407172044187128782319748869309947489689625294200752837578349454112886475719858923631098583775847992073853928737139131267363352075012001742145962157278876751970747274709459471597621255067687508040459147584264646202528656077937610689989759107906343754696642042303368102113584613466376436526096969385314635732085198859656989688209458841835272087882760304592900300267840724477565569951371289280937211229976436104294875588608573333164414846723862089027734179788021753125703932705019024704054809854627945109846021401371331567016360310328267578276458596304895906064503375447459229773567827496014275596360409380606160604230323458161629661970768866193640567923387920413592488619616339664348117668664042581144158967294943100659990157615404673927436135456155808430225565658328589815039098228100808896937257415628966071243474617382215850633243275336640615902406611661799309501782475840142506926581561359810677636757231592844445967722647688432679171174364925855491591131419959457887940177253016203173297656601206771370565334322813608645838423585823612385347654874378334928235435548945453983050179999672070484351249121922196087434378078631470532551788340595609927666526300723141622353494230590030758079416689715621024762429876480428462512484972248487338072367660339953913128741732206084339071585544594638460210278520611064805800287048851244441600385359889497776458635122022268175242396065635673514582186292276188659842378099592961755125312156602075149095228287084491535327297656835549293520465810423242053651271439030908513627934270353656228056106833158573476415905745976569986993826324903530113219550591852811733556144280161445145490173336664895854573860305673796054352938961268530099153878059485023446882315117929338636572574710636991916257244224245268708360435703828804812677161795119215065195235708780561228966247629490280758864141564701926116937269953254705200304666484063241925837538032849826569178526289082348620191067612043961357388492089353943958938960931827111405495842064639558162295685014081601745621831534873714448573929401411104478958658082674476982301548390280347675816344513457090717107730604011407427154833347568118955153117411442977699851716089156524321219784753353151276982613534552348725316171929382918695581707214757676544109082002529864983104568554719099573082641647694224563777385149387427516394128408236442029908127788258339848278087393538514137066399789077825493818540108175932818685413720132864466708742011462246207629300655838949782627107318583784652666646875189803134565188446013333383834421142737645372662944077335742088936659670158227146371304690118973300688941335673859037153065530998933883465206525600033858477287438683546122663730210733010303957109715082716036607831061805076084566932617223231756636428370490414460615511786681464532495957970066369931388156309004759358801154892976914979193921721555101522087485728740679312237973363308017818083938399056422692353994502353731348244969966337638516144203291452908424987498002426811218960107017954866612172074656449097392169341738099960761780387156703937481942535662272324458162619801023815330246060692861129099628174541168283364495475511290445324017490856445620042894869782019487249233359289390754403791130991992457640535796432184308274089979610996006288743732371277508527366841290590969266280207831610023408960054069449247664917944620072067935738062549551720232286570368660922544741843009538829469200344833431096825985865111049887538113684048257995174802461156183385907229235973642071003111913769991495524881371835789871980511801992456379150347709922545266012381791041229673489890485630507581994780945694866429083555116609873793425548375331817151433357378332757372420094445745840880718129291521210286731612053839712975134676047805207296208506495212773469573500499793868514071362148098487751197296859133649930218279278471886612828134700417287044794515865740516314181862442868081241447948216536929526188207275575462862298197925530226823056407797190578414987996109038419355653485801663932155461372726717822480245697506031917224830293078767326349109891966610739769006882606764211364992235218313786159321835429812550941959651410988329136937110606340377168522129455878808232004639737175005569907294846092875456088617821622847308793140673600117020006484721935238316917961912982342817943028024809796864317753726448590310694652240712412866479184891784862055392241454877604556691379512931441059061713726472155488885102065456143980320102362475517354147754744047699557857789996640329118774397561484769701972264817995356057957452932338658544129475883210740002809104573434492414446118249218623267864009392030733555578942381422661334976051988777949544692500453320631591128358033661185553764352075384691205866635747077856289341220516186241266344545496613649868257143736435192144070704338309295347657645984685868376672397138914390415646034900968395765987492709620840510618384316089534337622846830144422021035803315376560924916164956215189846125256873008441112801930003903314023045828704733198296923490143490355764873166783254730571966777421203203267941180230737919495840483025004013039371963554719755060203803630777876641334195641169765531608756024318267049595109281393527841313548256765702937849857255426110660664355464334123980037684985306066760382995145441612390763059893243865981379782741570742598671612700011868350866050517405105399183999154698289081741624948496492032707375260745326615176772230091144972428586739782495606965279879191172330678016552984781443256290730480457738538394794772553699001456191192119905389520810237310168840498928901617960634915569567749785581369869672380585953763854107575417842779865535302616064160880909357763621205029426993051710769188772253281336074814610936091138368984480355390797915635632492623151166580030484465592435315401224414093499778622372531299986072404668018161966583178191994445966271968296646530115678779690002144135133814724958381888042476875869889876892565923917709285548108742789407685859833734132107836708985248247999872752963125285720363416378070153927643416438373231791765248989797023237724941672712506740447024316964541256112600912770056806039561228507620891942421179618874104657503932697254315002124555610736741922677848983754782811491786408066529045101335661406010869154620523683590205614978071174315300841750242121461608825542688042573791090316595448506600178267488379091572439489927616455868690410140661216109574265302797033048532267615534457324870477252414203984951051488648569900117062750816105738190569261432348127002431589003391695018396053280483266096670468668409815543225548430316102597837512613112751161741489887899830381349470550040294760534998224648419046278144242392828841666151478172802433555473306123339635863398259619292021004135604743109648704866843921046733228491389047274519440923365759526311534792174877308122032082561385430443842425073457241763633045000140303527232813023769818619201252170178691759981595841498795003437973055365606045140521258478080565346284368906319616872473568785445343943410759879651988553312853563211758050045075647900072587478019100786258674127334271151446136284283116815744530025819842551941843042520958198602970283978117090683240960160037887463966037041207247866501291978898723007433966131852258847212645066551882485851611274731491275336264392538724599517396475751633817269544366436993178081768211203471409534134051405294255137528195870792031046969263247361858838063071074864498909358151111843416064272969618089584912792680281803555260221753275907751512912897599384123766008993750793070064735428639907208650684826130155672369818239860113028161522906841075826958364064870690846438930105465142300373875173734314370683640568147862221173931164901249505190302623005655980797678934257300708918570539213060832135397028942496361047732753371853795562378319151985920465093940567569928897014737212274635547374753505201834753867687299472633554331031915183002419012478720518347274341101220127426951380915245137553501764562933194217811021640417754402504986271963399367578697578192243464542353040459528646027473727618818464974681617370850833028880055364662668712568386816809542440015441245526033700348434337532190680729329953095648972199706026810727707299625392231917163967291233805973712221954400423418184829227955130238294570823673660100412619856960952301868751764637230698489630298793834512669991977089722891260393686168642675931029493723678215351984596811862259971225743705615378897502266881269677173995269811447011617770821103969207992786531265425222449949767489063430808531142801862325000219376016556275855273631410180662627489696842544532809876247211612950809719801337376248721377912229857795053415991006516269013481952560551523929135309908779859093627044921749084331020163959429719227143162979815465114020158598845117295976274824924943906126818504368014568695158201835489967103903700801449129832878858993884325124472724263042345567823600811215223058236549809197677399380517215108435544345595075824586748047251049247092835547061164501884276591976573679118527092755129586883055913499372390381513462958102668295122762657347600077712691450014178530271658050984513681590295201926057623958375754299692603776333574807023433092318799567010073493082044282707918015378593756427519990315100239226619711737259073575695487100360127730110751838906569775676801354316477042756013872938966664444270436492935045558774403267723551198215226269749476600034832159122657601740434354553729315818709962931655412922297175737481351602225782576685233620442200834540855219566025689579701727188810722085095517134927206850288855110076235552921879967542422513197602411612328769063756600947121355008748806103850082772596812496315385378192064099714036395796094639035980730691658659064940217486633971278766987811723233543886863348826725421722523434142669249742057571475811304789251901347151954222263341094014417650341959407709441467167436907241404063735831736070628153837646883068738866190266955301948900063557715564149615628531293333956551941803298884227072359111142671574623122147180975892837728837187652419956408353689961811756131435605485012575704573990425117027512640889778017710939095468000524202261804402405013146645029120553504335642016799480617479835937405619683259558846568875801012485910488506762067379428200809634023461891583907697655289381232230796926024184971892477568021807140656431140994713981045006286491077584331553063130412532683579508361966299095182951642994819567286967491427982803953373386809621132459247899712685045362830363018815966620061908602155416300942676330373048882538289981863078623304246466075687650307750798420756931399184801281292553086309926898776062692609757097271737305218367711818988349621293403300914190357357692248124502667250558853065294740410967311166604394920144806139369436134201165194747146039317284225315323932393312980840273311111254775011416645097436216886294614831179930601194645975206353682315479934347640980132431634606258073765031412862233761834528009797370896357779453612036002399355817199085312019282822255541796027749577291157123651938065465386393836912542701407909387698618392280438331591394057600651345925949918375080221420914828228415327913899572984477432341468288552625392914358584547386124769418850761698717309929032411032652024204567901607036435130244211192321165690646080249454765163635160487295675819522459825316178199623635863626343687771263927359216181677208380325721248224929827061457152125371198314678757090586373096405695199917931494484495672040089445066540990781255130674933361141330330809145206973982261886333200854562243342579675473576657229640949392032768566156375137756373119987250363117538534294723717024233530646404346962843230559502825970953138592887220770896042559398098694112805231480372426822209372658904235478778494231561171364235277929212182866501160533436853973666985808190254617957177715292114091435960491230196306614908921589599032998374953422534141562762021776064408157633845611976002376437620917110578350187913851428922303127441057992916650180650102949008875994215802576458865566529486696650288496667415042439496632543733293554351893174689432157595357729453961775849510430219096526670792558778533571109128988505747919901363770981692269368384400696059882580805619903277895385298478285910241362789967237145528641353587837790267154559745960795360806812881693566701235237247934320307554497135624469190332158611953634228707873069674047585390721313163547368617063232810052524469429723499996245350820597799720007704620355487029373672853175642707073767639637583409049913994363630210142567107770075218226850631769749107523376727785208036632370408717999232519553075357240973075796588910943973449020635310950113416853085775613993728945380226786609390751462918230786314616184085259213609329288423625379363831980973681452675268813308715121811799397241788189532880904608105187147114731103840584895507231214322204314851351193560127870077518331397531980932208701953677042524284163169280475885673884440624998602977246951070917719892247686337368372480791942633952898508154485457952310378163954554715250991700593032926373599923323804232508782479062133369695635085417190651908766327521053098870812999506817411731556013761608033680575749631181321217326593763696120015223891279307543170969270205780518756941503091905987755617080735071189349212350061422110265674009169394111392125679228893697899515150684232443966369488986364262576043571795230981568794851958872887210468451770447108343383135382021339170406792388297035270979617138810496164300116691985451643677250629472864169012144478830780963042859875120235190041639113016505648687139849390671026928842740327975650162054684268006423263683638303088319188913317194975248333951032421389315295519463277241729690679334018428894829744996964488466880371163798474060720677812801042159124760008110704260931154989794628768960107457729144037244523157670967526663120092423372580120134952654171889712242103206250691485075714502755542884842502378919595813180353262213337743249573595378398625298591329689742025966473401182412419630122898037527605407623230859000985783898959715334863603806591662893258014375509336078954352056058507068983551197696194508393915851523819764138594066233061107865397710886589399267529749519241306895480372090626989092490677894949470943024151795423272954568397113401340046339831208735893934386873239628194013684866004691306160726254592547182546791058340920647168514143012231691934575581696741048163736743080700125509451020003994669497223273248507034571922275248831469621255379062798989112767393853741138286134617411002885504295497363483148140010801400857644493089856059078953964452184433926327848773227631213690157996134729344842490716854726804035278304514084221242531190704322525719661203086339101269340551854151989420337845084165086058058692124027545163227988629631721440662269991508437995005773231787911798324979463556520538607328893383060920419419069201812619593598155927889186238870124143278323315093175425496934065063582729662950192081317263221794019879131444827686756476112493512654883949130123034233094526477950648331432794503556833910556933410942200766215943669101358511281600794118019580758935403663585481760464920121688870759029694238154522931070127627269348284908711844170773187332228090046231146673402586523611673831474904138746915242013615322452843175326375205977105009180182305369412341473039498900212669664468869668991251371331307170587905628010457651493533124019590023892509603172398690605081585722427153607642638316917983837091705627877405660930097240976143193068925981618506801008717143305516868685078405996082651284741779532230315618008765037643991869704317807402523858613201334761818106362946824111893659933095007386989991441858025367601331217408348317150626262798180341324304500993093725106735241143853999696689077803638697868124035920563530822794550347159625078640761382037195175248717167731228677933007213576884150589136905091753665271681385638471908434049345194954275253874554511766637139526567889810584747378758239429532697246786295065920118340093066382532073601512372768513344976393110746828399752227644847335147530258402545742541134826959490494290503122281581992164903466404580587693548120224736968148251533424464771331610756830650602138762119049896839310842490933579780660713001227933362233966756608169957816573649446120170268277682912016059071198094956624826228849723992921830429769994947343556714374173858228734138862504888898520451932049353892917522630951105316554367446564363665178720538950329067867964601004062991132250121443107641409114377218893642463435674463705118641252554433367343613181734719961925746491046670464380048049627271287881169014432446592103590308351679125914830131356973445802050301908679220709865030666124718589704019421143632829873493483404262443254906925305080693541225257490864256681281307262959152696514262642914332194020897944965043405755970097624796636014362314229004170673615430920129807565741921925301903601780714351408273494143224984458991500476021060910979800564300374308451739889854088582659408808018844695988146754390693109423036134900816873612455673295013481318165307102541676369675837063349910842723578214158400272146968756928840302109154766827290494026684300283253027530486017472803165230038817515807816772395484976124662747318616821169779388559879382759975812600557840392687997780245741533582164699949535730281255071247718922262355404665888435442416352707562128370154285905641257371495234832635423732534006853061098782128736192250622588504530399845784785137234446559186680678244847393974767477889495259653712410014774685016584021295641379666007913997537697550132651748738140995192133255570950081761003627483234640754559734089679854759738870557123502821780159008265337112297603658494204641063197190839772641712408022859040384830387275632627198299827620036183158925482003672285527185022958539709642488425833143502014817382287870289873880172619537285764503879341338063308572100399673540975207549126753895732549650332122120258156061645756290628889483605794319572342632091289777591677303354348035685031349517040819702186663941012997845394280974991394598355185531472984978773832160191505178986664521338149840252144813113844634821185214457613082225716792510000773422315290499978059799557076381281476776321858114208504825386981043611527607124440734449128659994174679994119557275947812973987640582728686319339528323890168479108802982369059678597130719720049032084433775779996633125716975964194897008267972990805291602520229932583169044938087980683957906511115297595498262240125514994185737399528797290492874401922244640390350157443927686273817556844257759186862372887099926724050272509723615313205941342010419189410620306342283919347102770516031864721479647279569804568682012440375388829488181901034154340613175617991797702395133025885954805142369246530923068936025314475580832854842109241352317290530232995161544611186332050952049947792886070555831941242768323306972418026517236657886973731284343079508407836255251938398380530511311692193815303628336651067667482309753497757827819050939412526824767296283113131291639099700278595038270467548259666735800297888009408478353537911610913691711391617575426453241548973331280757554839264484690499927061752054332061950778478160873427912451973115822402748671465368431713276600095074784129837718439674421814922942759343356608060557196389201188019329935389921373302554311794129615315517556598601648626644705781220429385356122676233283661362013146201691299823469371676656674739409311101126014517670148931400172095009938894996206374746141597541179343952701043208098993308143815110643974430363371561350228546323891579432633362037697625828596843736087280686750636947229347564285878191390757807500972838403979473479478550156011699748517701914519447637604882529434050866944081538073690412665351196831597114491109693841538105217028750419248434473714862362369917802184597307471318674805178506301979587846036785939832130570104514486573430554616525159374257887726846280603135874222482228159792920202057798315843186210677837021365502082635605853889079144133744791683810959969675440475599501330180303350513639313469043427433538433115232477371550317553780794818611637052852569293711874714247862934772622523938895548557035035135341854695602255145994516815051569828123237746875704078842956728414337696696101924110605640096267065492028590473199772409678179125240143809449434675909957451740324670478660540905682040256345346358911317918256978926242723662191125347050129342456498422336509393761888905441718346661432785207941317288421591242726636414678555147728903861585139666905426950722218581193595664937448483316564850902010826415714175746657022947540243751139121824627012973423371876119493373545643206505513131201467108864292682174098729793322992712017728610446549316567184103614891162069891097161374993169589433922854198014064039145004376010175304257159751667074859023252205036338317275435770703428101253310031089607559111608331887177249330628999999804780406252376567847037620269657468886232466388321235036036253672714237369169894431710243414042787962805713634564151789862268611192683008353835167431115860893752029292577395544056799384473844703963449653904679345262676249279371316466418576265364233294625971484325508365402885335316162613912688655128418941336283812783081664355215751401660533491113837431618834361153229905054166922477888854061481337934945944154402596754080189257494975400171400192505252824830498846348260869090229803633365202846992165998265672056278962992389208312398553649361169245758691890403264885862105749557733781870850481909873155626445710551605560051078898542400552889278383980181177490458509958178368155860662939952909266129351405992155161982339272985422330593152491238552160985219224830160782852262468876034534371490763906056844183290309248999780843712056257617031423735879389665945699473401365997230425384985913440338385278905400349502905114379050102062801502127370837534272662178573531904160607067645997336997126545275048698931151953387376314873387207920999995410491756717357262438029868738731780942783109222004421062258963378756933988120282493649472367900893695217119368087021594544445787718526096311852140990909532566693387555604220551927914983717375021790524535649892519731021394886871317392398559817306496649952083387784874515723409780862906009802780787569916046158232175821872367919482197801469796042979611669764861656414901104744932670166420838757339949994913671160341079661490927902671362703346519101901620413716990425087801286809887928100101862175393509529767808349758036879393871643987405597084457640854594478222862598296862184263350449469775393077946826774560000159626680710698827985499543949006452515212465388956869639045774797493029009067344019775518645156053436054035069774087399024679412672869647162733882519609259948296991929344987492735971204324461266463429199606238834077788411185189631626739710179783869566067382852718305533987706858615493982782973220649458512054927707365577633463644460921528442812080661296156417013225009625283767919800337879730211005655493719192813937022098285413634027252551181601896437970221639256115114348131093522630905316089775238686296318108689748257136392516283778724039826157316118085042432809878631798573699228236358624767275045987040154307864707751446877565550470309589595841179718816149260570937544449044396786888126739695386900299491278055660251486677216196248259909328814560188737229326906341222189843537633307624555568178055834238520045895267867971240549675877374317152430891104201299668005809184664733430916609561552475903418018378313920958988375763179690896041527166304357129905248669734876814216556209475331455525467116786172475669747369847040164113666398417949807824401110104277474669204093375291007366791574430575852759442812860761975141394722952341445585019828731105876556219171631599417809575025862768286448042465080725840530689424743069154113280111771807224454777846803896299797469323870371506033969401900304111772822316668499287147950868893706685105858050050000231073349684493411369147204769346768998809980405494094599484534899252867420189572924636124948276026187388607880800451876770928271948139170208950537294092661574481806990551046240591948858980075134952973663647175862972099138301630437837132088321769216187883630675714940902927161941063974422180350138798686430543102000823961790427337385582248485563757218843662637035412827045499630622421520559907584885866537218491336751928945111454673882453430013930741998827325035943742494723988188817569260199986320862402548630420945531223458670120198001528837564178187254600232384007878216283192134802417209889920939218295967723210390754807480483969342007334168202410418495327338805582066365828688672410842547308127417790644910080913983932044275327947737369633908541114422847749441185332456607481114107283425940991333036758616660049068724917544235390198913862012678413142147500776462157645785884952501586114978600388551642489015995311454297522918047300931096182868709293186236491181586112848644552096661814978542678034882063925232494515653779532603566632449525578467010770157789723377766684234498040636503977865230677503769057075356520161319970493065708987282483961645483641472863983227730170170752976721854142391877782527735356958748460153613690095971436327273933119360952199400566097750363639828946504352701909923700458191278685021436766499844270004089805832970153749364100203032939825861770409459992282029782444146420999548288433975148706254391550097676035476426106295565896638657977039125779029673695566309411501591881825810945513522016543400947959727227381906680290838963658427562817129686591672076827786548797890568268288683027304343755227233250759983689081350123679214996237268051572936606183725953312277944022211948685852598827459840707216361368762233545518318594893383430378430480111140749958868221180689763327730843555208883146588377524751559172412953422116296660643864780595147820488058514126259414088699314795182769568552094545036292668359286429664180335887320224432716276093504601704359728861109854326969936584851691553893278631776659763850141031677222273996251367995563552271304131802916880676319649173797037828120485603226675994428644580876849878508509152749404635864767534616700541586710386978248446722254233999236170780674146488477301705770611871930039738364196390827131895161547716830137288623961209084833112733188171487057152275947939321017241410402788311044085084635781779827896903010270495678126205108801111746239523353515038945295685718873402321772021298206815509918399677372863451740035091336300311036568223705542263574961328432728276263635161601854407965422532187119548307550755903208448379765025470693946184289967852142622149157740675479569516815165419804206925542618498670004408913877176328110355341197860905400639626863696418028347215117010830830538486877414140380978665403440028504263570670602754825338220384744389065751532597321018437367363070892133736929582841750831264099695017533903308604395776182053477054431858598059188065927174571453837491426167430772282361758242298399898364635648218033391433905844894780106611979705883253468821972855733383489737066101139099344130386501017736093637353308885835619474258963154658250594646072814804302940430019212395890400992823662883937083174993951315697972295916217470344153673283340952586793115731193467008778963180060360103520267857703158189189610926862337665229068483367446011168906575585349375756551139015746743783182486132877503922100328869290487211715987668828261113952330292637385234102391100692263588429257000913491935306358398178081663690962319076655650419178072138562397420419956206236613109724823652270973435483487920413496399587921300474350710395439582669468088877639479107444561370804846343743011216009176175864423627278274154132849056445875994436755027880883536522076959818183648246164742264508563733764604422339215296137145116729110065915556693789189441021201952597779158316101478855301812695255233854909471343252585983297569361221835098290474524927663842233176247317032409171693848102744820259628350954701092374126777280395160022522388745031656895908210902110447351383199858547080398155276729509544335568104583558896316259510441290582244827057134172809544864428044354585231475315831310629261467969494362807197725452837547935397627961327545353347262725955092653872595762209531492190885673022538182683979173141075902114505428300773928166148809479997093353436818434378243759581976186308328483259903993973882911879220226809351090966848258003477391183838885512652384093665148159810558935770160824822997429519430604118816506611013213153112912466804711960426021207107649962882436514345901754740960723409410446742971336910839930150339596427829559647979534804600117716480950714813278947950088894500562134376900655387653963141372151713929941487345233754286550278574117265115735469932433726174031484764667477739695534853484239855992599716342364574977086464251124191363842969071296576943122586705958676549963774547469107811787462291748566872818114623693288483036846333529416495577906594109801414427616996228726761478461012255555310357463087722979088557359044233457903599504266273801763721265102729234956763240047299726316492415513014612303918019856203056895793937642481777334284833171428877172749569121779776312562891848761442799017403322912410338819901405246234050732813104412105067549493467515502018287792272347901771875367806599567399058115546574035212407010240125529460539743327059986431012744718449335163567249702174359994014333937663287604910165532351427850787347486791485400413502498904057980147792215289137225038193381133219750573556203588731278669592524997731018308000318285582422269100947673532802449885098703081208084706299390647957379653350145714562515570165112371407163099671410903344225054080208600739130863630621834814223915607196552330638597961196628252789336476639115186932640075242179089457027071031847329538400714860426518439179013326568431055210198741591522605119981408227690083838780668221082248184401378893993033223850218367398663259106950009608692529352486550268223751193912363023766431510339484819029631536589716898708376861816837115040950258032699697519818747314642975506254924336071585166499246873055861374907547225993741512797725661723298713422948558876630533818635088253859203215599530328209006873992353610772487554243737728745900072825658734095682619401847571319576615814238966951089713694934871214619658344896345152836265289933942856399763002633267740753008451707771757613880534017181268600634236076141241015149106222301075754316673778911891717576856094201846420703061191698626601073866322216517148390316562483895097526282928318568251073937392162166969808502781632658016632796336090274473075581929397402005626393161097275344443804368046917961843148980427822778800380623121421233887822578909162152850722679501607023103815162946762349704721030873920513737557872426368896629828826170292422837943323953424770355248830259879649168401793721250931465954498497001430880405555312153361605178284694935125453293511548645186785026133050173388576556662791592155592979101855148594628987273329021246081758694590192982117974731657844310773064685846668838433565166890337763772235484109840226852101156796510260273494977366501353152510875712823858255861197430769928490284635431397583624997079080550051904432929444013104774399560916747547615487050631443858004950589150776711159023674001005930189772311315024525171260353742035809492738962453923205454836130328033776964194175858292572700179013566089725201072611210965997253333160393054061036328944093310627523978650765433990245416980697344225076314155699495774583899081379748569491065011874086486084772181756741113900360451009442304793710562784572904074500133531168148923608889042944681446502762304380109229452108523482481225333029332471782321086162192342863172115534718047751023388687665571189616653859232198581508218234085477199143341214931697977535282439577908683754102474313442445649533153082143158433240956570561646222690995679274242850960866373363130411543837817442516998440766297384154351267110313358422827392976370149313802100044289114777819942800582434085883049840025493624565730678802608035178272596606215355439950718495891987574166996812420082951097546007712728940164726406406967666377611606247926938778717084225718465673860258214585829313716963376722404130040632815358881202042912548207125128591510674852241756056504673282914794482319580013661286028477261140847993615709369602942184499463084566144143710097109574344140243820229564352113156018553558325194702253460894075425309989390224464651261045583181859643253503476886735284214671168646779469618141018617119104960610799649453075575584156446221271009226770892190214957749050814253691296388389141798952960571660406836786603516324113627968238698818887242028925095389610835766124853734787981612477766748946080794428967654374561418030198808318080961145650338486663669773595253129175815248490775534264212706959350764745061493914543725130176996247306120484991576174881614707163875665408848732840346328576957488549885465456551494800568688545197035036250746382507523979464522927055908561693164478395382644659854819699033709099824673907391515734397770005715813779941434215618852980238199060441382442925554305647556362538901432545692681845510163075811709921941082032098796042183437723841514241915682135163134093509832053360694969118663691864574178650058695041524395726617783676121228689032912391309104537537988465677721764707520477011767606207592865045903384006367494780638483343604834740079682208300487431411344968247562235316821693869944880149556872349451865002498915420878093050639228916265562077653107612541422402120936782746188088818713724372100256976589488585197321339979024580935498926897718851124780505905758500282818326359464156850714163372817016317650217227986848683188555460795968861294473971965469839388311082391231928921433182874182365290487456501498255273597512891528846810092005177621620772279616672954861350095862610183505338324478087113669423643631310043789484549734989272382626249363290908454518502307287629343997032091653857504861876459140115026405298389915555973309942105918246769059131191425925075645547098494789381494179643934874655728233918164968061307438413239861582285742789792639940097361365738266375989445678784034290068660033262351602302558413160802113220219855857435329884843941573397979328777437991130768053595111117098935164690247622318329707838667443722509546531300855440289497158527344410901168359810683092954867104392713018631834947074672007337524234060298931401936665339086375552314031840946030322157031182704385595449107716868548216517992330066610110985093389138481523512626291440052604656686657946104716266024778821888911054043054310400437672587454239952149661090084785409224880156788087212776345504844235663971598593404782596575050140674604964211271979032861445792164498797583857314460376505266922723790822951230520951412155495537509210005242776799125024052730511564407417846187207289440729309432551050664506936353586995692524434429651965580302777046653827421493781239426809010005806151931294283862492989519725186230247490723987805395602858966975900916774878635980455441640162771917812918486257528740395154410402211430482000819392870561095152375816170591708244487295930519758698147465321253967854841777331155033525590353527050655422966371932055739512402506982166121506742134162954542962610959791352443054831743226668555091633696425138477581177390779637267987256832726072389959315273936433082130638792317997652062798409653447490884982012958885239764871668857253421022766813093322135978236505597057093766683648326457745034676542821485880964452139246765574331668485378466744060330345972096920938049931163755071980563326605825639011208748091589414163681289873762921850275530831674076238632507886779852504030524279054297035802350037962741431123966463863211072015748357246154238825173920655125337740266031063062080954544387264752199779073907564646416147621580254875209582711514860007822940752502477310331413239045020622065380451081837816495329563219219190320671014313206698736315665881163042465857203747499907394044442055747667735915885168851284075477443914023295981971749240740972664978274329041218940132908781107586865996297399813834156866554373159894024510730933337378094860730899152015064960327873957430673231267250357835712918529291812948025034031692577851870352676476785407798313790968420269707754057548080598011512298374415897980715704001197174265948251246378514400737545476670985152782458326927716468339313322485847018422539132762360068252084696460226681590927842692982674178139241304067674980516337788533128688955580502187543830147476037571624904171269213577718426486278361196050229972828205074736003479388215926368572721100715998260023013007580431129346980396062449484726367911564564078498202608418897814561072917490311811273111848850751748319280727519242841111680071896332812761617760873024467750997843336383270090701393132218114936317627132530102837679048810713182150422426898914838784013816172718100291385311561079379035693723420949935324713036958719617677273480543854155434190733026636601417549789899808810154453376704376867671852520290206994514748051419939676813707829136588017420814117804595379999148558107785984943624628561334165382887173117991311662760941968346600706721749257732010366049120798121050778258532082452291916165391121559795905723796982301764486222260170800837834585183027910171594220660122178443156439557910254085509808474954139862909380561816263338014784859365377465974813308409412705975897752175304048458471154695236800222809019076905852157540283890135767238259426342909554885097750216507231902819742637955344984755561951117798521370979381081331098770589691757995179482920077260481796725377351448728628474681163128543418368015834767018685194647711059181231091409860805948341890952832913619617207286972594184535581476265418954709716006242334209237966546793076447536885532110239581226052460082672437377113019762682233512453527373238383787628725032605151060586487534054476962343630538317285430847848722776595103782722244876330875207586088519094086798576782318131098465985631886233050697562912855329136164950968372601881086170434248560936022884765082718615404234443814498049157880252426483971343520446976781273620295936044303678809661658938678492851428118615347874990237976016755164323371146251277299246891653494041591373149023763252260916701202373565405520244652600147033788871231944397059172304843314743803272443508759973466159676325433898774029063623327408103120860530174944228851506569808717276183875227726051855168875562915595451984240759808854726475317324817095267364625894032242014452904130624341553630416562443043027926822501549220461190381598452110391933830664497409651453949807036956311502584269222639452895235227618713277768069286435818951110557472353349971340182527543165457397530186780335232431911888551397251110434976149846434457371267209180715809599772707571911959248525358360414378848987866246211638771642918858625819737426754844163205583538064488177012539743342786009535554446336136446649879122037245020507350668556348189630066579749799555181067203616429360508498782596583706943008112671183086998371627375919069641406217714334356935783695417079992793926842394208271904179739431730868869016324860426523391603915358154515464261963029100392480104541068174540749742313410500159084083627552770769713803466957530563433407727652672621125125698426415150335890942686752219287364415853657898247359843652833010196288930694430593488949885065295611664325141576934567184534066780565012801237304318783513700314384606911175274263652290311320560703487453075430343546098571648594188516254049754576508383311000425812581156666795626812216220742186852431542204806404069222265146530117132437018351260884419166394202693428943371171249156799814431791298420926570599052147373447928609744458828378947452781125658386025265331429994132472937594408113738806993823030085473941766641419031800164457016785240891620019927700233289924274084647644231940264280636977715811613720012473033492711694551175374976425350485233942680345018566924292257671652327148217043579641117695098580207918075989135118595657091458201234181117277767879016699830397670233543917848329496225656380596381465343223616347791825714033414691471647408032214143249352280668466004925968507491614237271977833603809276669926808849545800273919512210490135139997974798711272273383413762197010463452512726987364818953517973148610827673615311849369959429021293423448532950693347590575787818941670173263957090322594826739157279034391397492123662152511063580959249106131967879769126970473087387573894242127065688691375362336497418233186509498907727022871452680345305551807434262876705909881429403346043512110150275397775609158983695263688057576713744179786533382780450387897151816002696029858542382711460532277939644540564707843817465568428737994829028821628648046088789691666672776208450562795238486498211786097614507700214417728821743354787552942964109705224341029700122684189219162862719942568106235376353082699791546830706210728991281880924267816633364437490072507589179763587656903037407235275669923191068717467115166663655448924204572919575143622007524558653849814334907770417113207210289664423300956551807592382181251288210773613557376715931061581991296531860344312545768960468058306170780995418965039321052108011914051730205591902757243914470550580584018256695024175603185406668287953003704121502825030497658982252278731008424609443667379204518846976752821431197618198972536084116985522224311171747922835578505123796569117226536945293892487574916556339225650692485181808238182123827302607448395563602691626459661765365237065216718868398216693554552550966294026242689957036036462742111474844252122205482300535701097554318447442444094117889198422002665502822620896789759167580990150843243736140833331076357853549308155537415335922443448684580462274514755049438561713936400298971327086026301358311559523139493170210994076335368413503090034451977725104618561448646277007686587217368110026859562887110531310948650836154345485206004283492765219583581920100403991307261049655316962681182949236782411017477581684669406511890289569651779646805052881445873212504459540117639970963427394526236593605982730518227608856185315844913059021850972379898182497869549884956260597725307641722163962951660648102766626592561618362325892250985789128748100957854082203128931400760577781323748659653350020049812859546700945879962540849473603542157626949751907960277483497975012900746861181225082939282036503676218194183703411692457158820615210823772558730364297765325060887904153902177296201162048281005418953426035652560396797698971826618360497733151656382779865230756676465518541114730045993131652963200834134404635069301778723411184895600740503354382609424010405775498698682276208757248562637812367400462766971362425282459869216438539595714645189871133419894622014980580017042198029959514514511564632470938499180574446904968414250804200928613632263603909709854466944884099347708447830312202438829311131703608365704435905541008577069493180493566427797752237395532555924434248105493795906952654850605331860027222708076634913487197341886161599068243206410321447664277336106241523615173858148803983172470507382097026844111504002434327698910905931484730404574772806142853972002207894893579802543394716598997728398307679799138878338414085126061819015451729545389037653469444374680699316981164671640685953807897075051009725108154687658403748183396720641808311044805470624819125473850560163451953570718762867561365263615452068037363365489531323794974018232664336921621259542314992048159165438930221432208494268725530531034088291500226976454404108212878712271914606672333121548631140431577644630456702492802650148804617044077613397471197700467172575986632111288754448538576291909797126259487821702655421673488257306040148946442407402214300579669523671746213424896888243413220512235999700012839902307677269074189370409703301245053576042439694349397456592717289101377840197419296289874663947948531046527074320847873321616640670310533510122198832262775449240632593906330643391850361087209657130684521541116822590387058750612211310077144732992571090440524140830955990156378421472771046380332728842960930714290044030550610653611680105102668586863712169182410602178770462344542477155860437272792939376240507992997361355337697476564172216580084035127687131873527756392881849242847875173319127616527845327503069388224508630558522155739743218822644857845951056161150225851030894294340587768581511631428502444111927708330425461511353166801727628518596902446761576446924255219017955131448586824729608406356691158840060002431028903157033440427309740344074495259852300627696709262846319186028522664641631189475742129389935685667935733235924488174471125622579872043237206005792717857324856136167115213812031563457004036504879497099657228607542580489963907612694716973066315854259780205212105466847378105675602458859873815641866814388572092226796155816458790274663298071245740547875713631181935404478635867574109453869842225167917364882397468993067747047401662629899864008659887001641432443325334286692432446046930990966216563018653580691427133364243044107653017024776303650667561995018936820084026588309637692324789091592718826453117088701115737110641650338412932809208621040579767604803097259063169217663301033505244776906975455068943269478824289678671953013968911413138643022104732422854402499120675562126472678096999263567278147150887320233881521871030130190594587982419253237081206716794214338834350140705419949296003317781192343087175749274265529243850788640862004286910940316176378808305290210107214233873794279243452296742726276688143780134644751485766099940690919448611717443795399397688038832369813138563141824457112717080431023527345594567045847135508729725888322311861832106221350172180912914699885386683227401968698848326220654385986322299311372344791141018616576664076998510426730160242621241031088323857708003164271502390153653379671178238590850252439759265469774802278445311704938814969570064282599027163332889862050301204272641444973911310646958769316706619174995432487472257641625527151239647005492286536712250710453268065992148216332177810009836468698613150221770207692787407828319604154869034646799825244739900793544574498522829887887170434363376244669979549768010891666305584627827346801998689677924697203890801298593859117994805301591380029942812782416162672096898266470840624911400400447566162493081564452584605088091994278674500551331264390002875052157323462511760912510945973427102399113677303483273257903367175173359023766973146815884254029628968152123803144317160836084191166841927838932400934947874661565447838114406416344480847358393801320274151532049711121976208753476245150128501262298149570291069996740387078537038040309402561922391156248478063435321407799151169251814045655656084005802660113293575339354591143876703540450305067239566515314483466728113300852915112842154764436429782340204172998965735503701321472077714944531568095669044251885812953075098330800718511171865007418197103304451192694555388689864810737486869641839947304981628340240062017190584222385016382136810742975887456007906715473375368628116110058445287066647455734309446731144765619951909543588851228057480285074779080297142727211538031254394152998075597441413336150252361911815955113323838301366467991997946440458931388538524557804613919942676827786630383837881586951336931287514888527806522161427957753041247724267754602422325707127192002371055416377431941535129229277109000343843635446927689254647116112967805193237569752134079679783047359469111561030238883396256093872586281794561670111923366821743126975942580807532771186620448356680807119226987557533781790530399062561023286815948648706133728247654806407577256122687932392904593329981531483588657782380775350598777176689410900140464770732425824528603868244674426088824280227198790865950389385016349685097209619787895639170678539588589381892922465364685929764641311874475726665616153927500721381447176075655562265445292820575499490223795221537154631783407288280657472687255623580840405254828193176413287246368191413167948897607137615384683705369276395145627477394225210731446434731743302242770321828233012371130420589315699296655627245098571646409953536434483819699047931234835522391079989077940373091944693903479429271674851351484900893256487232894677637484735289556342566611764907059293040045338794403791580255489994541190727667450877899586771615824455179242606943583951405332972121671462659827922981045959680656241924024048479907459073062770524758676806988994384926364744396775825795724329236798386832653185824267729814594551666889180948114176501630433081888169513549571129542115144613259523720918648572381178046962124949339979481972605954216822239183864733737470210141697603922440333194904755910652308451757825591824042433962844386135582386911368803959563350043012872052856015251764294507433194270935688441261227491615855621789415086791628107657753885647456213398004486153944808801303165664814361172418696916401057389320149137287215507133700769437956254061205007195600847619410935806460241452342430894956523307157901963964532830301871219510316875863349568081688594570723410170455392456193756184765815245097655837716951700012474066160808067917980121226842938964877675116292367685812252116723673636633763813291668150335683127773442013679842304614266619752917377159248040789470448370278658740909195951404628948758640206100569023302420063360933999075662584421283696023586545320148377780844249883385598393728484897645178080287177994598246614984789617824493187506918682838613783696117249099533119837763915682422983291613317752464399989400824962450859827980046671717662202546315138521793175381745099034782825820947496979306018357916926589808045566059092580569296112847995665097158581653749412206774095509527703173601631854938620396198846419832803950058049215554233125862787941260146974867861948226032380119384695153301855037985093379776683234887469764525389183157828821942519063325345995411079275948620183585061829295766799109226224990022409236751023305540586313080378293636381925600825041653522630358267509933488102533231405985690428635669671880014289780684778322097977729426574780327692648422606906899934655065581641131723670204191599007046303464603977042050502307152957576501728777990875706575317568283723143327860257548318760604533553597456797882849382631918968362325391353268956719000406756014915679151837541887187603176524277815197126691525958697303365000684596041846233128524322993045881770722822817929018180545269470159070790033640893940741296726393212275790987915667128015741504330863706843170665868727163549099959647320946471839619824055734912914126820510078134266673417242336684501721594443112744529879907875002153803613786201451993856378706222603089519011056584405828166957456183424861836128817236862155823908713327815682564547236415264736297688327869624626919977632719894511493968032805623101350815360742702415689813619025735114034477727950900311783848971898106308195296369940950087789099299481821192891162399266174575248771491229617765439014540239101833312116925079344708078962324149920156046797933402544334517230825212244320041783915937035975023193864512365712879904186080415163277667809064961809937372995517597843500614531795462075886508956174894027773959336958497685488197049113939799651807739606100432010836435913152213178465412088245462305057806782945793316336737693184296327253425745563970610444980925785248292073102686247199981858811845388254500061180300189713110880932732860996181773768514078862909437043039276070025897314436548352723176490247931981189376523710334771498747060007705111427437873679997570501993891996922394336328477321347529651584273209362912775720212059337951636211957474753235701909922121156592705417515536161691862780453919526119726437399450420024960070010905620758532009781478590636728082483109232194014570151869488069412270824985118239543521606995952818583662869560525660720557771749320997584889627130768082935462978735436316850547476863882588566493912261409788994275486584848925651601496342341382851085306034943182787085788508263364606748600877846758107176357450129564981859416317439204504052996218869354588672101657706313609379700413835191726867847752375859214057481190564272874009950157726887141949781893811712577248043916339622593562521348635147507277420921633500353421558875097889950699979956463205189510457263453215828191967028987957032720365996159201480892211366560204609518179608851846962280023159602740272780531703809160591251196322443253341183984488843331069438427747381733693288478614708677839920006421203562898438017839233878023471221192594078100518214313862535571823827737968518793575817043962238196316451203184288900335416636919136764613414508557800765867519443526589565811865611528259839374778861347554736751045656486772141866481593154105362791305597836305868085126783396763875926649688141511044324015408165016645665676225436458723667263230356244200724503231673044140461407628291372628325847705573566109817774656832919458742617688103009882489952161085897375626994475418601549069671586407510404820960060180896450647568099353583008727985425669049486124584901529394737464958814976864485162217977699287627010532105572037279493016497532163963654395420248371973258632477669674576378598548748690708200393062137499848699307513263750018150611476190029070191606808001945476841014486146241637800869065752159828946577734587340349324283949074142476306898169059376357801202138867782979408515139880679126492888122424913063490541413605464930894815747472941446809235127094499353610249982186358610862662429880371393444815214353310894469447100443740534252903978002439029935548721891021468314343723999744253961487795752993331417896707097683370318007600351145974881644296594437218428879117193035870938906491601556550650790272181750024646625894598128518550376020256648920024450188677473216191163403956185621454103089726684555499095907407330203847416916845714780092338410276076252039798923690422654873901098523322360681142011449074764593622335611740738065143175652673645681061567637954775995142492352125192121770553014488788549385079623205613379605870409125573778053277878962426439122821957189202940763686772575351000968308253597802338790398123523175643393339871150242716780009174421300207182510489649510455420929495980189255550596543359375034410005239985904485513264792275882934697636810908917250304801886114002593238584216729203952959720283355564095253440694758741514288804044375689179246938295394363070815447817374508780440242290820314286398052707284101749200373672188532736571353574297242993733062275045080320487043346413063962947719248416267038970408940458615188862505061001337990098694267398240525596191452531663401818552359726793729965027536667501705661590132618032620175712640803265966603614608359457077860934426500365911444132867985410670863570182472827139681445111039577296551205875432263434391613579709243162845176099337327238685663413254825229695659384777524261893996892420257566164330961602351989831483691958462735769178007322179135393346188330125518229204300843591808779580538404459132302025549344166419039558436815856652102698289004250758328848415962076593647011220711614454490408644892807993524287267238718573683503883866910519901032002573112038260771261873020095792336525898322387755137202843035922660372960828552538337377808199601605871324542375749729786534922733053237866267569655234986632792908260322594638449520392479388972867930413310288793471420993093895281558617123246099491571198036041662542724749135880053115391948809184172891769157824923194349941815152611497831538277128963117482483111631904505776848073952262171435333086698377410063588743681200718727591088936879910471405389875695780027207496490668462948898391071878764415082193535402036654784500940259119958525070092224064575169034198620871209212616166725591420815342830408557284298673176701218686440433651857962737688337524902470523312322843654477279585824361011326517645140068307294499877421039278238697987031800363758817591603588442104708197224524688075955115201898231178039924755913189666517565574841007874374744359388566266822707248168203913558368108139432690935575352573287249086903595524388236974240406904185718007601486649341005847783293863917604110524501317317953718116195606442259447583864745015384386992736688924714030894714526099317449794762515129260199218982368417009284303700430971829410342142213832577542355593242186241297224213026588456102886949617049773789284479116004416016902078653137449579644528358660405125354293683439331081926742284553758131685977336488393180458028164139620049013768719900235781206192201115161264577566102469288373848608227738964911242909656757870630570174125939185270102550686716131275556205503849032316508810198848386937937717390983685800209591043303517645145763829578811194682254127016617466837214266172753846458354837683018634514973960062962383224488094063983533782700458952734109015337206496313043854291439027884561638162347512528211598664201746151197097059444618159003134518697337219493662648844800526750327198969394992128825880502318701438388903520539213667275598837494040685565597697602017598390206687468633477772148727261253890681026244285745167732400209561388054627016724764782739610167707373023507899006881319347578086236326388268044270624605712490624363125268432794100506737643902878782777480813173570961267502140567093736323965596855091224919737063315256273401333777998158749458407557823999944342494532299945856235656147641100870388318954064543590440614086770329426933290065309023603580458928092807713109140821211678797647158152396746227190916827048886969467094171093565432444535202690047892712215167903008105527892306253371207647143123776981758234598218625213040190000648640644591137446143985174776235516838222033304532551389679811728740594216501084964347490123417784348046972623862239418244244483538431419116193317710378609770035497112072170213886051279410091809566780561116058543350563998304354005361113531304313753615575101911249462027744082827868918954203476585796343721812572229614966650061911276042266013498162907875620979829500093006545426442634808879604858763988825812067870933757891456241774802679357552261875955058784875406564174780801120589030959360600062778865718447016855524535481125355352052951365818795490705608197525829496747245017636824428756014065854583065301995933551743394205634358218174342376853674082931996201443387355841500121121515900480484126868753321815043133055973213745356441121070133083286566262904537503716238035278252358268152890210251450066151990786937387314180631238079506344720669792659236411937140064468586989278226428604442504340763123722479645330637624969716591159936273446770280038959111539366664416628799500804097807601476432909737986445050641635457543545071206950624818522477150707833993684510274533949998601388428014297258882178713166656703627671980219703731519140945834038275530018614125049430464847641262118039934060947510739375421157495660512649417751519353889026162994032721303785749775686073042601375570854644475382971117893811578189712407495448592530535321647785681801132157213581169300411507086975891770276549363007933843123847221581536990493034227010945708077578562872754996848049986534451933322415345681650956890897482388512682588414217293186609234978767394816808444265620560113965205333456238457508858235013893291437046182700285350802296039556323899060114629130191975879713804175378891185801315349868713377383529139344858344172786157934485570114609182848310370400005523077759642355427835529304719749199279636593510622707204682485213032810944602501517343189632332775144235472025472088402845309614459256367446422367403428372482075183332249253171546850806892317626410409210062276725222538178784872905896193597404816162710897055427596536708434911496654553603779787389396871776255561296120075990362723366182101121346511117025143181286548833538589260223211519282650996888426600054326301295913733042903272034717051439834311305243346918560970367050063511388970188666689947252981077833899898761020266981127427326456948119070955757377728178265600712475959218019590633318599047976460582307339808934607577013630203562349689958516408213540072994215144582653905941131509661229864141115140262907847907747263642422401558770227664151669650337822153770525939214937039653971567999215417306647654983615939892688982957123006456283477134947626590533127846342858110860687534968559398019958830057760659816078294860772503073277216828883358615027450070476198206933809707744610480109271359461398694687990455985587046522994516349145395708613826000589058524072389134152507133786409804624403765565460220586212278580997069496605352407520785990377120318693740520698384881249577834654686137785190466557298297483018035641378729801036957075871318796322506257934010670053902399425111510115746341448614971670842892061311423090885674950001127917100203836567282576216018819554219030725524614689591966073599339357889003628402117437848904264896288737199385611194328222950187834046398448344885888706884979139201554981861957629188960982835122976805332504045362097172768960014189570148335523017689604633402518397641441393779731386258338229573854817244398304945892791479847775719630908096171780603890428818812672041597355045859759535839226540502337866421946298539266610537725364101930337301634728620355956064269127136836122725054484531957607977412532984545768715950935945238876996775472378973362945330807040807916075352214976092039801859318461603761219266821554859097583883789537805684012877637070757186499487453762236128498615208131590281575900419699293529466066982782956975006038941725354250311718436556925640621548407747207467351205493736584110657061958826543516758390135962331269265248683389018017069304543853949917810081731018580822290990432333873378972791134288578941499307339897469104663055370645122943426599984175683127142668642735219685179456617180627828542404316590803027462552157143616441823581783391867555302606632332318491369149590209022237472605443360457488870696361992985821673842421009621674019129302944572603008685121205489358144224369796956079862670315773881480627542602723375739823045086955207994969184291267506123959176087862318437516010195482193006882072312781551336060402052068914336694260826872563067745723997339888787127894495139646235974820587319113128354137060842306241173620236543832638690813071673911455595628090562631611455410437304893826879606892611286265078708363750269460759639191412874882010150310990334147198268331477988277962249685933049720766561298072555522108541478848585164506391753805819887285572978226072799211850520792090539015018448952558062634563191754945594609473550323500037718073780676311528216002809651249085233816894364475421788246020836514294495250794877419480495313275366794871293787240790827329382289258227737876235440643017740726597622839607203163434935350379999795645228744651530829683881272269226772044002348281860815660754347516643507242201163263774804654580924796294570374696211097821704388517179415065781083611856574129077631255307621690870973742822478863297042095311532837436828757874875777505336535815081327913058713119683792880995308982873322354720665452782779520054131858454129713814524860321723779459276092550734165985460644039759570397974011950637573548579845560864097846207606052905979665297641526965357475534322539443946080832686357153809770737075624348589273462718713962735208913593211632958216714349900405552145481582436595920666383581145867649735695248255050893094558614795044792065982830205991814176019777206496773625825113204132488708252009447551700059110041824858839392131781349437809056461770917285848393674565096492087497104812377558125304524704260011170869147612311333200880601420343709989627247986889529132628342706849315319151020589896011862777512694478757585218585831502200050671656653126108443698491196002738478909174915196913770641814451798468347788590648074465613258711496566782517288266139043810698480866332358218222004052779650563084130271750505882136577395097647146575946107844260760941416261269151409697250283150114066586558005276282973948430859774819289522844388874890208660846167187175130025980316917617819963436394151651077405443749194779249164510508197232538944920795308585763438371159948783968341350389481608276586316028109885410888651830654402419914661652680175577107570617263349633205185648583262950895006613580559074014445193960570747357673570686084446583466671701562740181081849254648078774898722738552042558894745299619803252986783804469470563116385009847468746873032023953075656842262591280338215939654517670035295917350497668194458552316257176790212551717112632899002363633988165361790359979632302213949168641528487280460801647816812818299119827912722614836163677413261217670036859066469781652838653156880107871679178253473676028610533815028147869278793138989048022124664221326378255908714789856118814193522040197620566726702190552976307923909300846559128250069939406848112855473187986203958957857882988721139659384472883516753304371057333409741426733659487374019264284504211871856943464772080833736684764808478044350403678239091079073769856711194484779350738921563456917947294179056281460782206714945731295978095707160547556673703006754681146449989510409284659206384038110701299288232588197888877154612205711829327657231825665152630323038068762707069390315781052584923424383425123327901464444456339150229079878841507735633417270955652072430213415541199732831138240835071861268779185209293521424528169675615864850458115488560912822030088597534673046269277919358631347864255977260380698578486979851068810973507502595811772818325685468653512490536181028717801176380077629259015720300646358985401267354336109958199426208417785331403665736609773250156957695974932004333506402475455382670887397761932244822979816905725049540354202057927270661839566842655941075393092176063033588389435895166907882705442724360198718889568198101564216189290859065470723819689943080646828927677229739311788619083488674904724436397944801200074750519966249027196957751256241388857957771668911682769463355454161802521667982343451499900090544445017567250153289025378899495800141529874252142388424521096610871665580537815252067970615422179590149755033210733066152006806453182304788065921930978791271937829276783664893571003374689061346229911730930902936493064898854920368097905934866535641667935070366108662228968055034975483090752245429662205070333967875266372955716301015076242012562461365823707049789088805063515456903109319699615749374320254411474909150364582393102700318275510807282007237089597402966911263717863603019359608822518580662575910414274631049846940995438579260623739483218264322148486795345482832567117963368032783985261962039797884940040106381981825677199876076369777674109845648320127720693389028353855240294712477025643072745536568668001719387253830743421988894179106302833589228135096054272315750989321828099571848013892506880794749065774435360507771732696826035278287753224321309371341536557657267439847984649597148664532208553991660032351569251836278636954024267547161185440443048422808240144417531428778718114079279695988946345693565100710698330488656361790057628530322411254924475396968177731609492921560264424441445800199963965790447437140791687131849901317763164027767263426757653841911176306664486465188155437964887653991086366473774609413644090530454959505922319885475714583929896624258727374919420343861879732821689309923978969590688053447626363770341628902249793996079086251370153721333292441068765361112343612855458542602072786830790896528050798733994661093609223652061777120904634721715245410968937434307653563652697041429684790668402698692809470499170552376156693296563226275531125968404474411209292705218754786931642609551349814766423459737549414061424763303551348320546445176364263384796043556654540189765187922898571384631445147409018508293346656709532145567354793062385069774547333923826043915902780413443932727384102630479454669962413312621821982687742811264665941243602841043747561504862538746517459128091466842207616519567379072503260721367418008036084014750691767679142688558275239966549800744035679634788571977873344683167751827107010874284547683427082100875850079327861212288498730464172855975466897356615252902762666098841573890330917774063267829821225902304706696094465635200644358770377552500665895151128335353776488616642823653794438841254409647679285483335922827126548380885790115271958368874176162551070141533866188991284445041989573244959867515176290713814760828129942074544483307859411953465861270438502766384143211916251536769292946728829565946675186098381232450116227993961122383777122720278694925022886451524692940654161005745139322663944107701294311275619366826968848675008363847443693385815405690636318277378489340443565132265569038089980274188796678518324498483812250655787252084322153886884845241509165665743446414153169700103041220854507181161838346437330354271874156184012646325621362241640941857985239113550835678008289774808931497788827902473527151295748342182937891373463501320742384767149637221918295766382247996629778757798118471085580011614088225306333628965221730189463901197443642958823637815571964216203205725848385957357409234975355491353954482960735755678153501718717248216633197036017902904795011034107074598552399668290702422657607910175468644142402376229715093816375312555975688266251218661612929070168345610077107058422312247924855112215823851422018236659272911390127711731690920644959415471694382449529998511485835921284946088946353201496350873117791676885506867344081076565421564284322030610911881400125514685947269200321322144119392849264951722071510069818970039615998466514575146414151901351260131382093564442679502552092008076498056879056811872934032804493990904379192222103235353241021992073367946426353789544621007161642250175474719500962948692885145846245126620203358767472936403444759007136687942135925823341025956998202256284761429768156961338510933229447380160050325349007130218931860875227327856073630154121150175529368450905955559296757505144544477214742240528901807975026749239141386479571396336248756297973179176896390382859892519825127685516344488965663105598051811948338212522104739369290383411684902602261789832571066739027968537823169082112150034444214274263816370614064845795985194548912195446522171463594821133099011812136152335564060454889679020873127546532638140914308176431011364127705092280662549028672160054860865864363439176321470504930496606407771507776744932292005655815410593412669076359450781169078658850163491855157290310839064681330928974635905782392815266827253619635392227262774516218759600390921971919032671738014637944953217092594679895071578013203661738764316516900837051858603278669576758965323114254716025218249112796480535253282066156774231899367617607645783481588473979891502580278143488973756504925428221561290061367332239721633330364933096470048001826032283592885022044003961402534069368829974718335533677709824582855969011491356546222902392860193471276031868266354957966080159926816001085869818887619617084786413250985990735736297212239503379886168898960176005875831728113986101097788631522184185137115549782866875608625045101001758071458431346352858225925626349323572409256041824396886368650801977280775910054081184489940473323657091654146692046414841426633623637570227308187652894456432050886190802562068380086222596849628042346767772300648309438376055412947034976629741596321827690672312804503379420671702829293403962600280078857954992518169975260912928416630214550248668303389336210143387503561754754260926712173900701641086282815688074236831589973567477941151565095226740829885286769457830347225645780741827260027618632969160732566089403715795250765094737811722374623113166024958768459671213157691258793426899100444500770559630784719549196135894758792650247326564052940937236238778107128869136824690247488499626697045521402125064211541354585331043365558324214118338185644586647317959039597559743062281514002547810784736295370418105362593579957507770373831524615715789543905174993329059072859686285659691598640658966941583844111118813108533782884798944521240287057495828943514427844431937646454188968488673315220015627921566287853754187848491975764284575641468806641348576958913125905569846209633890545234386320447073758024617394386554514034054036209512632525172000281663069001635323369969822237384885777735896739891713082107847936741137769263583469644216838860382232805673455452027740735567016363286868732521706235864060965085024561597710011055657597554933811518397045062196781771948155742317285482891207739576422892182456584025853453179706484601867345687963660390700891255007289199697204786959039892930896248037855985142729313664654465997083160260932934978791619083175408252056712620971180016124743953747817718330178354488271683139551820672422725173122371612766453921136188030004011639499538537744809953574078677699318198488267335102279719686489092737910960463635279151162248468097924757259184064254904090587671971946327983449345000589539322328320781762626830592251080563661475158918198996672374442500402835325699883105215054089685259374508849753481495085112345330034594383433439876796474081054711936768366000101578132223558251422050575044667529259540681103205600912581556220948739126095710949067257271847484437593187388504943396210050972322232256160091471502645914090347729868658156637011828355937299688981336870573042819764326044199344323017046639126509172797317688620322993304703846481008548905343522741870174495662474013667764047168669814555884289698985376928442968011735790465753615918430885794979801734313505982256247093225481612217174179893708111168901237236119164052047504581003634523471682314119816952268351311578198972651140170334052190169294512426400281698014820173161448768781658198563994466862523901769011264614622402034247302542971155695846432723079284379472707503261348286717623255162483996880546737629817291307608264241269433343723920541858940311019075059151478434768393766490520230653771813929495010705644705524834054768128706175108785214132135694608820358335045701339875034402619449821180474339237709274374752313616194168666712995826352137697016627270728984006079995454493639802717447138404144816703761779263751298832793152477502188278595330181773090708488871128093052766500802194014529964440203004033974581053433875081537937074206183114714669770248130299470932116277687151497151972485971419014431901956490517437611201270845422463108790670200802622408234798900062558931913867662716164155598049923045691454846696208345524982083905688383292132932539810826566339565296247882251955822586354504824968941215698632766337958021495258690643549384568891753220993191666873025475026471283268963690485516102044594329795772866332654235905069095009168429487463501725118578836826421438948305153081177148081011197952045325738533860254072439651851208786007336192974121974586997983590208967354632717270047811953129783479483084721497767786099166616994913219792702949087864595513690435321843885288629654105433049493588964892728702857885122186166871577926915837764333237858287142654781343722212667686841616378732573895485384888167793842198375157814428058503397323936754499145768529783076542674354094180974295628513014373205530754405211073097600195394930406864570933594457043486189747196104225990408462236500355261140012531719370512766803485671458026532981594611953477283976353781846768680727563091517980151073226733076489065042671917824094376146122804554128032952482322768136868243603127710633842746490776938039723313926857088466476127114652892817456553563149238064736614824864264838128680537050599498844328022001582484114849782075506751378773573974844161012692082147554165695123905679172805689565255926043863824634204518508649435727742117967560202315326751936176937072722420656498401930995073463211389869832458917796762635559064924619381594065000838923882931383091243688945877032851834913411092487668232922981209525177048411376091153417641068539505148763809022882996548274179809621810181605944989440715765193237049906800949305155762781863523453520723812786938609119945880624746245425858013980535468475844459326806809485135138263282391102739093994237239753158650863500017457676339321084163911824636579413285536494928063519252710958281946582142998534511946299079619134211322271646868464804409436889283815717899796164559241880436677703568746849464677499653483721208993362265475256016319031492349216048977567301250906439366040839349012408036560041870059191597983786998725087351503785756015901969264894462169109079703787917423131812217027781846729534768634150070978666816980237375038262421146187194545536051755645712158156461494783778327543177965753058028458130864118209239108697919467469654241772053903736080086854285451782145926875425611659799274783308041170171232041946882350036972366360057422705609335869597176544238515641940475516897158195011318220777217745863296022906388972710954899206385430828195957575503764606145600512020952708166948981017927351799632129761927322370081937490258633131422070171461369091247120242450720915292332448678405639956788023970359453041010379529124504426002162178801303576206242144985672660821935849200482154455570436511737729460144619735958685605055317350688421765013972080006654171303948560301565266595364517111602492691117367535169443424291238471755244066634917397274742824974253090281616311794421496293558646045655222652793485840409226895446411740833914442628850635913027557157332817323715796115534295497174294496049596825911036156984995410911136620060400166140486253765413613986873886642523503480741044530628207107649725494264798060693764426869461426558968810727860223927495596654525102787064129233804216292661810885438252720047165128930855891042951489642936128407013295575783984413397165059021755833617034971946635674964478350992611392116213856391116636344025379787635717565723422752974026820822731141208908094132997457467369013603455166010673278744471627123493929540783099406927367146305072262717425338170798909306594060569693550311247724541093581373698585599182486973484768878897490859548522808823617140712031384063264375126773419882132943328832900654210416620185151158717385355611017158914383934106894354098048830034957271765194991825806721102293308062617781433186777672891740975230177387959267405891296764920009617298517758516805621137035279143578504021908053952955288422257467997599321038843946594587538889734110297286433875315139921419664936305536903828545513223009441749556203246128233827077345208414120318798804139313199312203728317586649663023118707500975669607339749771635583294668922327932902325369441949458307363551686687379150702599331853425930597721494047455342849471326348603108491482982494582994226340354163111385801566506724387423095929807777866101068225634713746394185871715003835409441635261066546127165735946356925719913124589894425067495636840326866738978229874929843291730301367671397612536607978832169673242869765458459745695854990888650365758592820539336978228644567937031593314444998033855629367307008217081380652584909016821675562781411073229002739936140189927924845826476260013718188964877873835363092222156586423156991476935994816975749239399739544946371235026928118940896547978481990735174110466372967679084137869358140295497427386330165121032221294748141539282905274883581127139300231531670313339586189963355456724797666140828742773050288803880402347610537196851115823290657587853837897672550611104350575565802303594169437037741759409555081382428979446182453779035591233470225382768186725330178330420615790574127418769223483573502089155398997348053826166999364613519760654117990465270895623476207701644982150744723201466264246942606411244276577836833292912028184960576032342746242826393810930172566223441219382409667938150962404229337575857115446612599587414267973917847951153600458797422758922293183817548877854506770365940996418082514946071819238658530284232054348300987585062591498862985909269284646502531437061758390891960035462664351438448874938376861870434004981813949477111440235433184665431351523347655283070062955336864676460579237982499123305616779304715697538304677408986262008191789775409475269230779503382837798716004635005077344272656025406128133008439273652019719915883533512318109568717048535311480044278645579022914473108177092524936853572025996850938451854428364079540977349330231679894136730997043151825218978909137825213960456887189771936957674845198731175395450762195584409691182761036200360175528786699269884899458253808770433627805372318984397896986262483249163091256746743818853524299632773726969007318931020915603659207830806483018862750828183976909609307544836601633077627597692982394026906281069869437985401031885524277222639705431877618641935261636306677522518703690207876007871527921348400520492694746460958329252951876697374704651441348587042894143380103902454811175463697767818083882459290103812646285730559121330825081731428420004931227300385223787764539829699568865622923472999856090396004210859253387202911719291002956048723905526951677847836547341951154829132804242544103479117876372483536886605093269734249475412796647432040336993493853085390427783543199842083649479976257805458597025596782371658712158357768892971480970288092163525399450399356659138773903683408909762567477824899898073565248541815363042973898121992484583787711693877710132419525249277121017204357215970238894774195416695197673405403467984237322458000774973835618800957028399955908020163369180378878814053120682544509395389228438745548395510487071183964983126717853569973166307063007034993281698531810825665395801197620425363665091001533171706844375857372662757455558742604686933289169335126496546709845696967943569129272841117351660289670939650646442241118575629167831731110125282503664368942486157848374028011155146797965329414696785996555398847802379528827648784634736094539133978936031849397057905696197690932215606516857665019491230186841443861624254026363324639642622485261317489958129905767185542906483708704113259011749261420730836814478443755078667604615470423895332867074950403700585986912787668615987176684473471686795385860851096214809909169886277903225190306177319903767086980193785817051068853884817248121171717017958350649151118376582060273280205750207249725878382087983172797001554153700317719614585296245427011864936565190987038695782255772184021195598851571468351292434358191995251617956483915818957706011356642395458375569507732647763013497791458445969800760398434957176024901714000202527443812265786592726518510914136017356014459370316499616854854567975418794111860843072949113602720430047224318201610630507086326778267355790325051181908698103792477780282990463223695945265957236491549566604570648256838254834776329909823835958299003539084146255233856773844589178825039703264993086026564508203541779849405995993876903598749616460519606198245424573674534551897188296155691331265088179493297365178563789194590486548382759775495683018092863318459466001547059340253721524044008279868428856048046007681557105281057786755342422728878274622737154464248131585897971689775646560639069817731148382120920225890810181201717703390254674743146978263573567911920701139353056202108195391665491004769236894900862120847046965484275564423671325759803061537713356475642603309543482251455523702174414100317874759051577627117635633484420479525374759364522837880986566829133841413603772114744024483322313960868278845155083195311042099706195417609696817777602763771345827776410662278106376319034105386219484382786534182181565979273107195182385055436733036850881135942690195409321156621597962772471537766981293247814125649996766437619372629245684824382689444303084833223980292270123265066855902866926960267693423324998377652665610661682818411965149045649707877468820133425322778108991361566561151300533032076964004621333444353270242776696907394924486951407404518027564503274727109645854767438546518556784626583633664311072951718763521867395334251650339503817602406282019857945923941428319953965670832403335895065751062038766489739120954919789126243224593669491085794593812904094422564455479893781213178946808124644446846329542106206802042019314586855550983809599983906374782463121095320252946183054859013832028059581963081582774324570369634114701702802192804950734855331837415850818108470006551251683042346261619947787051454529759881295730319500681389395141612428932736896600836292074810544782715264433787698313591867426592870269337137482496860606386438283008666739285899674697290167189743037090499640774175337039324282631430572606962920128977104462632323514548437279022396220662743261902323211193410183441464043296310136220303868839423163533944449345898642913054215580828275362766758307709397570386710914600619160062028531166385421873206313713890037688976169837416481978601727690803851932475065544086142402241696639387733635133020305297909913293709536511539649731295535006066382663027389392765815318574686101130231656844455512619482501056522640392607295411766840025653773830152725334630584471850638257452309879918053443785943774246232711132485703289528493381813310606673318614029556600744168981935274519673887335144424337567125528582100790547488256865057201949559896427899355446087348901348714992140049933241795130260939679843620060130820319179438286591142506498155185617644130979776308650287863089510477353207705304131966189715194273318799530082776924685716613361519023128169477507825870882233335888790340193857616037934664008186804274418038199222411760111340060632190570983767780178096692634611681796665554139910503797789313544386160846148809421141953295332139117560735338304207795647290143038362160707453013113429530857918234417205604481576264015121101922941561523120275830373761326087098188635069964546687329363136986421965351240935671796723269536464518185455148364176866849974818914906659418961319279051748533995447209792454425297757095804292709239979645608237316562943361786548306991964438242188403029791045528462473311036384033484338274515165352816816189480166553396279921725851148895058761979725699417530835680312995627183136525074026504197340497263630271216925471616535762808938270902071584531448813570465466457252352789012729529257955684193147512899804496043896909660216406850347025179962837611225186781307963509544811518271887732326848086099748342321552028490955846550687495786964677540650838303703460289045832298640575669668635338316280117993007825911898831237889210098109868756110720134580528086620282847705397347565874755800441946801059151718282156736524996574985282858724001288550631887864822048022443875719229427879298184417333465830919962134183718111797897048697253578067369091654075398200201620800406217441506497939165689868336032899601830492695639441329435042769971521379727522406514976283026634398878085678436634116016883650189482902968563206354903691684177247362745882232574679871980368831593018026230729907470168011895632270347159927465872593735137088754259615362626510348017713519543903709464581778375291953260303127531137806561302577971126801217694745854594004579208149862656421849194042476871699368678660190626971796547418332527115535158220544837600993369996611668621833652605310536123327609599206041535068642316002113265989314388420663216135381759060372421932845119410813418338803641592568973643565737934722348794027828644338250459273141861404863420681674510422435527018506294845943196111589914140269862686405996931806526704975502929199846508054930256882955400039673927688558981727667288625373490082359956313980417303306404266078599663169189442516648502105530499535344706571208830797790867864617741961002558849014442015724424010727122825088933003183814205480389484255571182246597004106585712893521184133175786205605025876475388502837238693393087590471277358716877205389430162124904357517935861357683130602751920979329005644087844618821492248742627575657906403433154312449361389735338547641571932081113992273036642550946662974030959356208038951061297565335547088257742123424147535778945789372518442735739717789248845493334490240516768839545238125580286096109435521537367247032742349859175751961261976878789468880508615348213176218415694695554710896123412669063142958655068683715846872304923142428271220829863880202223065758042049770205030271267277656823490649018829368933302144027464547699094187237689960901048308261737287827549655365271889084548810523795068778832270701135169043207856684787942282655696480159605050187499562180052778461794193202151490914902962242356046658297275342035429115307870461626249249618087798696945732701994550459872018590745124375122991944833683084863569674694436544553851897604083548159229111864536011222673728910958314896538056250472698973076007226808281728494963924118518207179638978355777859829975192472686199139740365944024655233627957713200675175511105887647132004674955081723985729917081208869494785365381970695755903607191755976390297153144910608777792403634449631398473333324565509972797920501482036615411469231978628413436047294295785498775308740779104170117262320695088443341678565117936229221375637830156833629726602368758709195266974978880634373570537992750151920897063825907932816133757718817854021968339665453503551799105156106136973633666576059469809971229532331180177695566034482526962242059809911457646079858770606693905656596652167031305209473818712966066503351297748171440597033845093361216014331962425583810125155813668320784582421363652059104041818627640130826072760599010114241628076250532469587095297888064191795585535649711845739805458910217896280652650378072053982873392316092031898304952133988702028180905353193060525306167465476092994656124520469746992782997283107212599724815766878024115988084031994472035891306973593328041374969551667673035573214911620602526545158671440494406168990582391467940847542479892681831243404430569547961230816574903784628152803107638116640343858226000981549027724569122525722640932136628616586900783821387910965815733819883779043351011572884194164265218360450322042821467804848492816548444924366216858583476742747538881703119392802621462912993668457925528094487297964058213850480770838917683539946037373903112846005172117977002859115630868416137662011183051139700519283506606237834324961677242882322010703082259959205671202617343453874664100006340254446258742523042434054542486614542066109761107353341563719344195363113260635368558819649953497231477879648957268745508334535663769084694882139348000206752565758562143506980168105972408565832156184433103752120224449494315864540236233945769081299783376382425821570229616294725531939584494557253433735858152082262535624225063825818783857460544569003192538457399014457240666133885798005174678170399987082324953462851996619925592715514960596814462990428590438148277305990677728267861355489940065303793443767158963969118315517089904820316246299740969278552785572522146507228374975112695505394146004465148414233499737802357952303938524431201156036154793288498031557651911884958050863665199428591339461956376286497407425943097381512317026900020786813041337105175550569125674472504421185507435611288248767558208302532039181595702348241022973038573311173541081770795142483779253414482132319876420609758852797525615376089103647188687837578747081679497567394148212000998468952550291904400344049443520960031447337632093210666562920969328317320262060705265978861865263480694883416402106635393580248753746358732725533999501751459490361076239667390082891025903625843997772551339874475820573154539629775087119801147725674245228310445428322710815259311858883217548963702413245785954037516109373428352615855254854084811149768326274669670692883316402337308599302344322312093109767270489447547911165530768548441551962959914288990109937350111801049325780136562211043166080183860638603149175199876221715526605954451640333669657431888786050124619177207071377004582021000225973174566074266877408807767675015415879592815903147592319368651593142982817299894998152539521398046753459206778376496156553649354185094942059526690967151860294665294579483226629345662005928440003746673403080987755036724708707021396294114026921505108409644479679387024626790240602070001515386056265507697617260181315202452902002342672887255203931462173280110497554376939698959447092019872957888203624726731855731801464992199042366585975488782559230564693510360859339978281604577810166227321435874253179421084570815785523507107004208383702394341826346231478959288197719327201478931861555505792653805572459742543696309707034758973342703355682210864689605105073858437805575280788956201615308906548354724225073660373140344142627429243960583468347867379447364680722114543901644594159637023195266109082263713344291663130921966453833063119318344554878765300802985635528538639677213963172672179937678238712442483784930631361678061956703363530786088298900816927873929126807474511566074183093278338187261976769875418520756222319571167789898935050847896085048239000772632705615708621534619981311578621351763530289328529218055936190037830086028758141384176739629416240993213300383066931987069065274364304462381296244241734952273513204728635996759150102425327153352961582729111497962081529391096773062030125959798183245997075402718634546704478667764998181033807941399344477513777487481264792258222292164153590068720466473007529361180476068802155536708860554820033820875095760480115738239812693763519547167458311233800451796722164398649708698078423476266607112366375656644643265830587486081078103780949356091362587190772188680105605654668152494376520774510202886893374812830171688134350826304797536315563102809832337511560885571191197171045633520846553545899209855929800680325284873765196542332225747638381538682913646038566608184646438868638028694688691601055504115397706312080335429132345328320496479765969222988903580040667081870809049637174515685728729156129014151643433334923918759530124565660702968339845621440594036205056627479698165676718434887843388143626245399753986070000553393395816326637118238749297771690708719070433926822039074684181400359835867929548926582142763127413816150671188793532888152758535991357769162553861387899553588899312125074245264352746450438654081026989652347995606422865654257099885948350434449113431789869254050906252275682606139970994462089350226790229638144194996598840217812148281060640477354507629108660439165445678252314088888094116541122788747408109187060561196560974060988089267827527818733256765104446287135054422515292088058314840757728692406228917840615656648103800426173499875704765416518943053548642813609144237030905319539379543985168846285454817317420930591994205210529611367416788477611821864928129913801271053273586689512311027622200685962658010145088858366923875404402425396619023084869722329738878446876394117873248362342784766495274383657188451107420020504513515029251071834778738974237558506588599541388439492832710793917402885436276742951704251521411396882550257024613844171268337637928508572326506947034386950835951671193958526095542681666544418783166528916630857219570968314057765274222647002709430902476465058334771373533848972699873318747547062327168687313270338841262792917347605664123848282111717279787266537850221001119644054647016199828252925642585752028948272122603137145268628599356694917195712907742631529488851564815654477394109815223910031025113771774343137926929012210866341627339139482732256522799511915641945305112416647488253834151770141486700699447281878606610575210705615681297994495721357025928677423956771918774213208668931687146381818271812315176551263863549890992610680071123114227631285208335231542225272337690801699441585834365839680642872603518983865322750149204544210613494326133656017570685024958795250589309393305035304308901612911428038444650495462735160007031258738633454406723553811245804293185937135095420132883189582396919707291676843588631062078209180493221811204962079563673799029794768335129138075367165625605500858866583252645516364240191952887731285861203532474447983413167478797915927441853104800758636860497866213633411404622286575815530598623463861206049574682417184484956901750714964740095978696905190799441778383093773868776981628546893191839380994900881282940358072312776643303101976346922681867234141059271769853179981236135207648884219945177227553514857568741976499169146379567361856472432248695964676813693768658469164149439063190019070747399420511103077229212428457114530994010778732635359618260711379218007724364099810176058735362409912725914536458713394669035167298196833564703652552216545079710245021953337795994358218323255110084161446638602713302353973827203733912311981867282883559271177170418706018534246037224146959343130740029401086837749043733202909635457259077908116528683269486892167477428029756152256180265817180217068335047949879721878954376044990680643226281683849001234197908128609214770281625733725742994897282791407261259222053500444714502838971979309916010908678926723604876238341730190367314547734422769353430150634003882521456175346293669070544382125796451341717571691399053104235575995330334851785143021111928584717342631509846768439791120442039463400636227583588302071835304497001949610281707238991115352875977174457064603113354124215439519583416135609807308551110364390380128415431609096658474715677947599916141609154428394633456329777856111599724885279670066711938725231654562622367255409016096810056055080789722464663212890493637690763507187524503660781571646529510093655277536763640779895403289498365085428375846128448752349493787525960227492057412561085967090029801902226526022558304001013315306172960369060350938874649344930241296582281027432034380230398191218323212894960739705107925010273977262102255562161837299705657911618202380066804900426135604929045054127110523467787023415502192485604250883579212559614885075594720258641298946582649574948242296460034279625763093422340285263617422890498637768092203723097953856834450615630315710895231746688128700397182157518439956058400402268214411447078892846526602768142909211352923567500654047509016374398783374990036353749788703601911877484238147531711200932194596875664771462668089746662387719319990964574280678995034887921080574629216701339757972410657361140752800539859827507802986807965766482704046960235749141172179331758129866529500758861892661171674008302019437664817890909843748234957804494867996210498793848769689199500477635284840966786958161410309410703737788937525694592297328710854333145058849962305744047571819396911209115259941762133689337535825748187710072933291324429197966959109373838421417113636948141246179956876833645621152338020424485729707119871212268236608633698326689748655456586586194978890951301018910168932615137888897009334610543697402927139944923386809842585626311307997965048116654605376099008637139015995723609525453610362580207368684987773305029263846584461734595219197696504241172822576062647130620052649564925384314581876467218323892058297638038600571192538710333444696372171221251023790775494508687794936621752934463024416511802216029804734228980116764737345910963080886860206999676760376350475157142837025922029388972498802685860257730158295266919875930006284279178111974876326079678544502674316484522698608139571212701769633424453364060829880303332380774824194694016605209550917626429614389230775083159202216518187471445719455854202099934560265805227604623030005028868604753855938503019355278810894222150887700849108108570976236345921556855707345455210398923153610633399921587760765029559837936084014166113417488149774769300488267178085751330384341520600945262465997748399211736676629910594752968666727355100317513909829531873696297575983173765835179833670499272834318364308071163023105171431324485354657704962037698645685907721087567162479033948819390062723035133370283276203809597903033474526735959851862209358653233725299970855609133784173312275514676773592349840653656642640767386722664270291571785473688766352597895889644206388053372592889525020344975576268803034380352939289621380185298111173832518702314045106642883522113686593431844782105561681634815947074921674540194691044410837594014525094786427764062800120417545631932743340711283646664206088449705837726805769521611563969900053255051771249159340971797819118536098376547892716098875643100647040528669073561238585537993655436708326589658047823583107128929583955709415070470674762353832309747069331971161638620768642614171141475871727435756871375246682413803084634865840484552023131513359951026130338210317810980867652741169189966401642033876814440537723288057577423526274282462596760078730329076740050901044831086945233106381257952105349657843197423254202192732457034419037853160902327401673381687827083477490662229444265605653228540511127998586798662059491178719587373753625136871570954321520131420690266348087398494050434025494469879816967748985290634944894795615260004818879539583722554685100786223562351385427890734059596407814001516960173839672008355178456959492046731849416229123969093597040903026075789178621592028783356819260480647433883073789247522920831161890350203293746418299742357900204407284179300677178648947198784568034108400724238366714703021243697601278738852142910080155732463725932521955306089013635999793402845003020301138570416744211855237341114023459654716904181612152093963239646015008926029385553685169879381276484916750754666083701480474555687409169731768463339723491047028532370960189730685742653544498355030509212269502070545498324085682596353443354338594821886826386286955366434087410942591839128759406539211286853326897208056788031430025960641162532521295670760169883137079880083186340840631037120806540869899885190162901169877240196309117358131307206676349931028662107770811547298226320745484232991366619552360066605639785278065573709545957600268892919215200648653283249023934323968430890828498593330547531781187107684970416939261486476255732185381713432263291218896785886279449914187897737157021218065395414569638311739205049039881830312324309411424758363174468497411593041286141106021993638922583957538476882363791689042169433185408662310448084735797655492760196174086008618216826560558254949007411893871532845313288884703278647479645410666000618272220058576058302294131073212929045265659435700531670592505547324021990033190456293743234120928022958716971899637150645649828956340550145213849726063051244073911300495594452965879746399223655207435743815216017025503083879389537572494088368096911533688819921788220659804715618737375493361694361407150563946507782022309774947808779687120893831220640117274812594548019563300411977927828176531358256090524660845279570988823122562256338708692231950496627768249294078016103308745182308399276673102187649525707344665923676039784665788515111586191273548156643255285392439513341460854326605858787576996329291302357427832735050652901488073683898297483217357796793937536563925569918001271776207516930655672457301793403552387973879183130614154052313707617384770261465650644029768519099937507425268829677144293911591547049845726118953952870405971940675048205272605913313978943683401049899014734654815806120061747351386304144181807340441901012136162843812507531833873150890931795447406226328893924677820642800752359061025301784399221374961021458401547972876952030235856048539760522202264787274547588361747426866632935181692013118579682179391568003595169843386295162605662062089444084025495858383154218277419384587257828753917851510853394875227459589074396832711814993154075807245048790547832884034274009326107242352158613315275552403185981252946961327162730349585489210096419295314423650282347722368327898791547238551995371014200217516412068575194020384727828511374952098454212914016704266515074709949169468482745628335724470481310680322850600041959180104822623514428636406141888800036078865523541862038769712975959202781794019854037938639555208884942100070012265580899299775612651525927511122185943439324127549025104855811117985151522856558781607357420634187178507321858050647042364513615274087493562647912498080108546830707762982574440704556490439417667696363957672817360399926638074942743057296750695925854765326333279624023653955953173538366717747530013531492081928582240005211552209630730218440290204432930494491295941424641211961211619909458259625633538956157799507734958287266604413166638632050426667727195757049569308144607090776948639759545639317237451767882689228481748940620244833028871207121694952916694090338042511507323495567046757577114546787298882339161663947965959962422980548074130916311012540071722090281292549470359063744032722780993112842805553202338408011289394365122721900772420003620859712799773141218382102639747893649164009714184729364614317763540608203217004310208042548498614745606991948853292942222506793084347685496290962667748328089153194033277933586303672021542440058473563577495242426885575976016863267378791530336476126444165831650032531727935748157211991416260040929747598403933775938798964757203932153958265402815797471616763602934891193110124958925704737476753849066042080553077566689865184361710040252809121395749032590477831619838182560663800329698215913040289850832617662249997399529356505990992443444497814057580300508281876313703692070508627365196354625615580318428125699207137757629070342615306608981448690205379331533716574986856294628183212833177432089100534549359687376170388430525116330286188962070184350473467529625405885880523127479469707005834038251685114280518812045231512913473330190168485249881145534257939546412304771581195756427015147724481010369180150330304805838878946375544221256040132059648197567940125823828747779409095800472368955082085511740350628250570249301837670224245546177729311451060953696559610871388434873067886026040538688264857759166173411319050279335400879397071935942490723646933458028271924221170084092524643055844528276998192092567858541366463727915571327848013292526332307892077396600586855317123730437586710268159039028015947413785940699557743195887524992915216298064794267831949058198081946389692280445601558349315765092148305551966364625376583100795216117905771899218394695815714478872391531234731806155602522989646328995972818200674264780953625749954318176994589465840868461002078089634258426299209686243897428728132352630150683701883332584459047168064486900386464345389776508898635129511975510075077425590780378373589362250558960543297009243624336806683410358214513384326803419455644211066177054261893358290467622099150764082736979414547697428344028204676798384289848114697262801495239907879586995509725216743684352194410862463165827678186895200643391026332423347353384333300026791060037497106782271835868372734917513344297540699657729803155854943001828783728726865838902028978916625322558293256669902160702297743237679735880428694451889810600933986015768500624799395974427197296953186802166588090813056091737055770317543664802086938374830134735072993511396020271712596848859683722723131085718976244589984868918682276925691635679631746377725038143299377892182360681174330261007282252033918636966527794650172804522567952674108124219542675768602261750722294743744411016293444434897498246877663816998129969976846436027805660349822670817368263857604343522626602828278129609978614514243945959021837312029341953934044305011775969804598502616841237480960723247239175338770708630194359727526621075551743231442208547643947778636066591781106791610916551276785327586553512638759111634079692843690571280304635053210780349888028916833717571086446957731400049746221484310277961656040471964835705216087298242312683771896702893173408570693023179599801595118066630656904350705162048616006366392949828569466740067537146184617298788663611268610510872512770760533638015993146939715462072549455993052895322524391476098812154996056785684148691154190546800557264055495162746946354077088047853770322758146153364908672680898337526625713377602239093440362376530747962141536542379930560942418561040871535613084603484305642204741688850699214449424424638631720170641533525503546224169675009567244984705157988387449121969192140480565914013710294556003769995834624757967210696868927104907689191312964861168135644502608476418388370238076632455564266144239959881153595223152077212483830514033348108532393235179689841690653745905404182774119281036372093322164891478504868463613606877587499784827736583609602902584067422691535326481354808754585386219212327144594604056454881410851650918860501348216442166039307761437065646177538720240279095837936149603064419473969878273472470170467759882535224420208419575949204867607835619357973940585175459992623071324329902652540061935739677365134723891078252614074898198193963752916338996634330225193417908054384159210868512452419984105743502246656815784100555376934656829991933808109902414511368528980545682136001812743583821116035956392765445313255780693787317289568720638684136482366700223082215746028528349666645222384228562145911956387954577001384825730772978136367300969067272048202961165039258369601485398914031944473880417349775431604553138535160885451062450238123377284851261340699622705409046212321273329484347225547444668605017763798990418119901112650913379753574554535556557292019274712530126865641287039839245493280597434783294218111372725347395086613098565796683391281575072203126442157102362274557165761193706351354008181705548401674034288609395442217353473955452493858827799712043958711406272118175448670788545767740571282513269985370370159026768033735340275119324386726632601541220641544777218978579149603920747713434425005839088037671362000424736247904946776390429658517055983168368811705781728820824375646230183233434577619361330211001991169428621389399361834299149678533870144083657020573602249011808909768610698766953220232858278037830425325356813954413222526971206503209552446261120268813898632695655164724971997039025558080468174824800341291847498903706947486893560319206690592537468801413598492909508036647541154863410477339917904631666496693008023707577304960673138292301903536143526991391401540177055330498229934283983345603781815551272415865048714296637367693130853038645653900418212382953861186855690266360672361424107676701821696893090276088793345592483599976580602116279213633713635442836533614041045557055107680414748056205302430130772615566434107260848687380436444828549423227233718416650677301339638170108675959337429553527443166544395531776788416457497693425203178550352459386695296095270710526240744491529744604401871068203631424549304251239250667691216741069598857221445539996624507529609128093693564244820391532294765531296223349182651370353699098873348293061888829785200810415747910579146504166699669237825326006853541419607548872760522635008545022387607049424657666205165920896818866370286528531371625002852250301313099508269866106017835728875644088904201111409583668960896612449840567661168638411403616500210237398381286334371829384869777974056806415532484149861815555098761641447272719966243164949082263906179247529857994446523553875820186610014104947419846675891349671717537121586364481660051534050619356047546441310574093552544183527115149629598698166033253470999281771944955248393232392850006682050741589145181586703120923462568416432673199709313571045233954872045282673023313826639612257826602482448758553316261146044381228184893034474287931333755950588658002013936289505295540648672220980903071807024973437101143225306650964340329143009288391145718579567284511176295807084660556678304852078414954307667894416201394963488990939860301180783742240850271584307990328168953158937969599268533266291132499554891194718764775543863683712518570773432543500025856398144914579767231233583543893703892532874284519857307046922157978350719728566404790454707421613826323941557377619126031687345291226458985203714740329740273697108119654088089037253717364301150914405318835673692182035937032773500085196734979615362625122803370419779094366690888844265154133728389231620703241836844203603533290494750867110838997822450124030959607867802714852463092392781126275694415299947055297747012153460716380633954785648102721472868681954462909211522207106630331181745158209217692951651159940652196047567034621800120423824650689647289128534876022127915486184187761769895967782365502554178674318092349730345297874124284920082395593894865226493585820952184929247924452770233914571354175644738626725937264840991484620589455176289140069857374982246604203310898035021523136452430453163698561582719266170361151215925086967605313125224682487879340357337058728564089180365699346073994983248942755676364543393764949382297745229875757648748296165804507929300090275935443167921246398374552057199568104005706503874869902783972652627466067555551095241029982174922393102745188874570536890337587080063960221771379882730248999082966195945478988374105093490666181666185437651852729127571750573913503943520304000852356235936456277340730328263208176708069396033019891387648957041882505598072246769609986154177446680531815949288390597735022073901095883324223048601219857492954550036045674524497515643297692203671413567997277006836159193728521339421639802909536835520394103550843187552527908930364402069573623813985772744248641080274151248587572359473173538232877712023778516362980746507548107041859749838552370501460443285558063364826135471556267690588674992851404127894531903388411730465745112683363794575330136401235974697360599771306518343755625794578199881214945764006287384694901969239404320826279918808453110755994363634017998256105393273442640880885147684791865147284841423638399173320874987587644829236085303771462409075345251951316159078483938570283473429831108112421394677266939760668472759476350376415972289841283253470126543704387959331138194065374072560561192199696978673558276809361787067396834984247875905014783383226221211718014275197319567541876942323136088850039639148553912626868266095439037296365952869429290163550505148641244080887425009642067405317659188962454618574090482986008026613775038700616405883000703537067349586318499437099424594124684867821020485703013090573747506780968325156723932290945863452981669821051616292180698710493402027349152131133261938061137134498897209705666416034625427519861947118654613583353736548483281184151213138661900024645761104285715975773894308824700077234580240078444849398497344753258740562785828193304329713689014252987929153173941131238697789773500659578803920736703563931367509529066979475150567303332697601548165540009441112948252928686195892191418431843703723668941693017256858610517674220471231100493411458716032648551957792352328529533872358318204807266281220775592377419648303432565605402535825919029443429379443729463895170493926102187031652585875585102875677844858650332648151305349312505639075563108221191280578173312084982899206902663222085232010126367122673631779613015138587563558534118612422827124037551610780581926336851443504866924852526792839250029265573020238167885927820373386627918925574733755651063007244882180110976775016346955103978758894111565203502066239478844279330169958270422203033892717199039384299904104120785438411014085282102134959184085417396191299007976072749611547725589841881221797129931953494874296614321730939459565227089669607060174487111748311610993956624598676307704587044220265577426902023740167243578720619460397864420904162239204670815450130378284897967488457698944647276371459747786319680780344531183355328661364401084054392670830179921344177483411089393277662681817673160234593654988620479960262249395217399048042772758884432350708931931210302987266640795454968753932070524058395862019043602546520097641673267529275424173371501666938429088460343253835072095249311333926953292137964760535866859857909320391349047772191464201606027622861440298238841517712172811546734056845933802814604266308587299895411156871158986561359476919907123410634589164165083212885623576660049288320411877802013276857777372434976132089666616660163263706657812277071201012107400435517044950387912223098823970916080197995962954323692332132073943142697796176942848765335066413755997206478889377490156583557302762931525358592007173509882253283053681288711155694331352610404146703837742283693103819974691376918004970159182614980481251238064452556281346217874270518020489320029867374700491086397584860003745612412140870168480030882013796899792811236487432822708863261683651091073724322570589527374946756841526275354963302829994554887722184632565363309789591495263142139986328781488938180922995642766102454506149245882413060011372632291249196738262521205703974000413343675705724289763959761609202609144258478528217358341219146730936218363900904541502471795718917752354591687926039854669035763533983863754339659703258379817225150153081126900291996141271451895672895834562230878919082228149869858644381150582063121184500116960962806389114297864700381229031238819991833050311485222666785024778526361713218550300483206544510576780722274506735428489160881839726714254096469616496316661078178601623108692028402043915483823460659744961237936500523084199761537973773912867136438195672306034529168452851338450907975608970646701580450256544680123231954028740213166781226202336095240426210559441533241316021373244660915587378184168819030177923117017518815454277997806202504637172816777155092078480381218829154418447715908733980388658602207409670602824570731545972443144731990541121172991825922395912698051371902503433956928382016069988484917769911291530312032110450376587527635354875522188670901991834526726978770685674945948236686097312554555027055757993302457852956814130432420729278790676699664037959346037681688351806018024719655291959435906117655081147387094121100128140702141138168777704138228039695852099460874323471030806667997470707169205254030025896155694253092632197985941980207618551275702208259855542711441605088467570097569269318884471586473153082979192446770695481413009350841591447907652140988771779901297833550448118817804130610538911789262498584370393642350025673255083285235473935318992309060192927081288994820511746031560294460868092869316863859287344259531923321608023940386276131977130398884607980597929049371999506218723545600333043642998481348665695105676148521218464347227335460480472364511278507458421900081276928539695501336752405060881482448464372321170137369706231799721836428665113662675284879934317075210145290290779844848761344968692522536649219920882209805467785381905000894591734716426296988778033139237956826668473511154291163322782955813659435103075985618785596291331708184142338067981145187012211322612128288312457526967153675189808618954587543947713301041573532296205374529254642095083608810916490362581747471327800550872366582672726688292697684417810292954213375893598969660451439162281650534872371042330805806789309770293104313612072351908903859655359685608837906723393297669381542145864193256899242098549466643677221950886719005966215238544861536893668016610077075594075506884916141901962037616781316734169121025448019156651910287208863066426161444484038713231838491778126778058514360286375447954230191720888015470059454601983845797710293720957838037545823109084274417884499526438495700484089896749715596671468642886153959855735648904383591400221811024622861811743440910187118468677327550161565249234597793341170588184295089154288385058552397186470052757163604519986549549785851873977849384754276866880391949987670866009191028564997837634659906445044892019422376516855335479691332039362850792236440392867201576452006916284889828266930598027108572459752886180668741697049253436452062310209364216922864733698178778586823316397294061750717846445126197062554254757577622954257282868097467210488511955458133141157413462752398213234206799656718662642927611219548563582241209290223659020238088168658226586447736034012523766815676945516237135318754808408509511554294129991226807532088955127197060511488616867025710568758713059272585045071762241154419490934174876501431296378462684798496669954488055338572348179486474505153609923948007622986614542984829447609589600909803499652758129777800983453296877163806127990784536161728395078380409931081581097524221155632250254430078318913047114423267950012368837654307886026833680933690024611919862707210407798477742756702625389130605804431394195439392772294900858031399767625416363421050341919389820673465058214659156527978987234717941889417610827045565709654737890613283464480258498073657421466428999202606217798048366355378728940049380955180723360911057851043047858996962436006376927603069843210313265287636004219312233128779237798408302184008831601903941136051537718722328754955663868135285132996132276683390665073187723154129889474039036474550754291901207508661460813977099665348313872353958876995253657490809170665052968911093611314881271627509819873801726903488523770566844407424565382823414913004394724357673103097583636533270946176624095546960901757228060604533694549952873492357300511948835562596385244792510355365377767959476905213219326722128470409794347291804694454484189063737312777575098237426019070252385696169362683716957761913373525613223619246528474384183694249943850639046917366875780064462924521617855840235398156356058219712280291735717431948302665893218632945783892058356950769077033870671111042088434477133065370515046822826112109268012103598798529753644748069904452989496207788043892770003834021472196139193642975135334712095066832423747375006766794884417734841173085114631607316264383360686649718355072797567297162676583907207380748608035450427688346230975089463590442594334632437244344599342339994693573437314705489687861213850763305334427795628489120910636588006565389982047857683856218355536572731805805055703509081955766324716668553725529879661273908767750979366149392549377854815078989828490651984705479563561164497036965566494590844874981316377027591602054211663626603913865302769646237853014100293561927628253061293020871592560799249659347729557270579176736390816187529526376577069876651968792314858907941870050788952360545999816874939906712365985227740060557402745323144459147083039621103808598304690938027660785293384072458136225968231161776170815171477439028691598146016592216383003415112962359109007755054333394169459476157860272118522767502935732793381130397057971568313313976728562189062031906681566957505078485147524049584505343018361879323224822694178587964145269301764495965932786007366234801576679373824296026740396158069394179144732911432600838792276474994842175493289603238998082315923742209144199217287320425424102917576185828826310297461660647263567629655027601803541380327115236110198165848406404146816510863573172773786959066675080889903501881493490174045053732963200240746966582972198088559866631862519500277645348993419217737738281255376850315889193861682114250507993538998011449481403418633407915685657297887570888833481241422512639726649197265994256084272009563906923320812113560774876408231319709828110069900990399119571285659056353307242229438970355421592020010485043063270592636416921897622765566579122422030364216736077808910191994315337573943957865538623822802028546990640342750243053015164070215061727783078257165722205953349550973783926759489068659028088417243072179430264626711351578482276378226044937382879502270683218294727129563185466426773413434167706086176499771754402371167293218705800332204502574932179365409816564209706947118556174578031129566886188767581360034657413362024158350601988249108262581116197484292946858494226353457504537825828287626410697406138355968424932877211181446935060639484831439617630473770603511959686173666193290472043158804553021221242530998267912217150272369296826434016912817140219469593710280718208395340781296411641586576946024052857501195818120356918376824513131563002000257257360545509995282904005153132092242786892579603517969596808674976919060789698851046459081737924230579487949103717467125831562343994889719688987906848703764099375136237122694823516606978806230389062784041477017973334005515321103621975845364430506546609267810765208273614416964144744116763808101998996613017935210389434387852694741377157609105718061630480447021912668007832542900721393462801006206254882950287881326144585538333083387687130305721934100865608417494557596908283208004963724309092553561716849760800448239087507147337922155385922443812306630399671584652538058150304873059711776053345030696121721177341820902297508060940464727340590384705944765055414996237774063884071069952245999370106727530389652620155800153600081094127871667809656696803531699638847169050290989157269177649526907489409413504124906513591081319175127116079505769641475505028608452045168213600369635299891824825175931193330078731507664044495585237511353676048984829158393549278275706179606768060121013755707956555286025769178939889452223075811380258080496520720683915738355200498423593772536281870411802843318414021691809103189689413568298196627338457353200576600227913658189696572836480168755873140863488237690005305569392050657368716413345975255065206297121922980313609019252223019563317253174843812359289985670043885117536831976030741305687178507711000585903530651180795046871132460797627051631433257888328786084099022906027972997316010503090887183270830344396100571693302333158257968325146308491489596012435353288293414792616665699235431677032591958672710152065400895193371073880897691683221883846432863143908101814780455752502177359185573093283397921246171643775588707968967623974639683629744814162857702768726883408399970614146425064081565072801926913919527392982460273102760288656550962189377297331390066562375782064577771741058374525104781911060390845718524002405466037205819177572206359698961975936630920904209077307933104094444974494306102997512752677253245044555325171037891558491578540025657210248401731341139365681448497730497209985491604119693104758236501838329835112623113224829884061264940605750724804958834178100061106439737537572739046276190864066778251977676175316999891423500629215779300073643101499539870894387977838847807681516913553202138063657681269751850553074776154272623093983570542985051907723381634229646865859019480092279836865203205239069897566853673672167502775087575139339037147882693937393442692210436484781796926887112231992382034993254502840423811769062887560940800794739237862630330178586414510176525671921381378537561886904128777710497500939065898467090029024790535833687288690654071303696056061498329567947165837892574977294418058736157638629952423059045242550270014475148852399206650774573882804822807426240388799393172711261210987236793363400100170151426718111368968111660020666928502114127501089095583636993900958976249467066081208972071792689846282275854233753224121963492029853563200548367086692860365866545744459544555168972462988528960489992682146667712595098430369910486952757435716811764368415315923350428963681231045709573413418349691525962016793821840611003865735085244465089058483917579738209103385783852334726477611414165691013739644984477456095795325373589410556464697152425089554066492124749608194620298067111593315980823023152807360663847073389443450964293738250877414625581879772890012013703288826911534414743006145266982348173778999062430272777702403154217165376642750546851392569494493659267993985878423777852438296821600049036167572700635186763074817881211574934958584067623498965702874727695059077284739870588692112595022511040468916546670658446619356544960231706759837117432016216705672452663013740104758803325673374252390899764233298888785173560532226283160803953673841915861544364868322838703855496184409367729762834771657774616408283696869750456276310723751291626798560185731805070797246953756992530899146691178061440654893107080417601685327546344762541620883308633597410276563992586954326747674631103274553961565947786922134297654650957197593705402425982350242973978893386675878071307952116193433737063809861728645162828377496132464335591914724253918476725206635842368038497440338898944011387721570423918905107245538057100623552389854327222459719443342124084194904257889130175423336054038502863781663593743316320317482760168805897418323496329343040260909570855050059327589850734366752649337029519295593168695577102828260780262726574593018643517115020363282632831979766783008572124311477211012072927212104063630052308117376024460906831291195125223361125764204393622380461105647805163599254656741412273428145105353897461388693472879287717432562351435702541860071011992102016159379999330693248049823919871549876220927759439812569859647822718595751158261614490237599925406542605521897335728561958939246708676493271049421561967535937229844102509256731756571724208275035635341512818607120083117668316839043186785086723624191361322662269643079561634455879191456776944255241963635088254556599429239547697129135719401529330536748256338474858014582460810871453444948768023488646790066904281430943410760272247392366779497927123237118806286827487786684803096549857635757856850643516563577175755144794450492649604020428463083246161722299099531813561161163073855471802427088831927202842960740343700105829366921877306470049863968025705404378466248320796842040647547609291541880417244676078454357488347554873353785578266415113447145530414500979937506462341549452074956908415697869260551573725071203226717390313199998057121961468189835927011650577511200114373544664183688906804069680206938813715566466594519578987300841661375951146907247669072446795099834109379372295851356961441018180246783175858850342586026634987870745992931883063731788419258315175191257844346559518079432186910908251470003508132526434684679639942097101953791528000458876821647721725157706520900003042773338520807589206380932751759387432044757333806235695357540261603962258548076538844147881165373548059479701824164234660501190278895921511692300145785692529267154824448814074361622447727490508140262542394001139906642251304190273805445890082525063381843110022017196944399399600762391880376955163814460334647354805494178211814169219110096498309824270900282684298736704739778567556430036082718102846517403920124652161289930851608277026852676368013347802634419593411942878525248485838996217644402459676959968808878386285617697421497001927397412170839139349432187721248383978405906409753359091492592643044825152221161322396970731182782724263980581314576243188885850715708616850746581301273833085947227751283604055918745785645961014612739817655598237225975879739704889587094060528234116630346125805900283833047677205345622085652731181434100911268066642378574925762652671283212997991486302340962712087861095913481675185593583669742330089496597751850782770583735879390834971733038042051441795757082485403092846155461892339804759269286561066220493219665983679748099493397815327446909833273254881320971220401790242431149025070544054904755342238357349652964183979693047697774822903418901420490904944450754999858964786672710622361519025553910280523091856226171064443156273868041191141557293081643514731105435672554785310593696620923531875912908108102860335884003355611530210121436660881536706343606512447300819315379554494719424156906782285541237247922395764802715260288274908265860711931126772357599157908745300471257735373449480207114942555550711739282741937795111340491163462529422904312853956449963531225027805631958876708567528521345853696236499249077058775666682040310109174949716858353019771146509832946557594623395474418891853774709364097791238093980522959398129184239554370294544692729618348964092684424045483512397899691185303450936001914454268675079489500676513294604478903153783455665249458087532372898624803979198544985183267568432142883460133095256414539727373780927109350936354690093758320251583392717697407952830462992179688810691051199451782864046937132996449823569545597713168561063135105844911652290112716503596591906149169718068855929740410499543691574687162493885890146782366978560322213316640928016698278249142514820114242412419966741404217446469389986618699868128499813153297327684702595574736447559046618314950728553839249028759544727475987796264600543516286658317636861386966617591347897930322595295121414102079922257887831752188347574265804436312472297888766187073114578935156217349658183677692780712207784737682020503591062592696167394244091967168280881335302882624419664488964692682742530275360667499442318937791922883997613514533135219650136603258383514916869584871757951594703732319587116209044877459276717726175944965886977785111664408371616151561544036126869605227568550645395796307655463500718418902384493912667377543292510775097777191020414783407361896173719576610183337457984691713768762641445589415088103654396204451382649756681859732013234226450703541819503885792118282526958524261393495575116097964650675191094369613362337802786918707539056403064519903592779732994896141095095736775096554569513963023601521025946972534041620424934725239925254155654200024264433895383146551334355715731725089497183999993374850403782693683823078548466026548378795869449765226158153092738447091374432336671180359295621591173030787031023328776133423286372850217275353221282716812691801580588415244688881929212108489855707467628916090553296385122816273071076160559988394314635826377611945018150583593304971122067115097804026855981541007789564992412382421936635060401658631652507829848603268494482652805014008813650046094902733248601992488827564471131296497128127096516966339567592860769267289394506399568708006206134621508091968455438609590139458385543479164439092219811475385251694685382118392160288758927805917397074680619355144315281572038123985954140272023260648911157969944726662226625287005389596244739578617971082571410500430740354696821596893771494500758588967536587117866150151404695535511578690439391169801022552831437771140596575144104497829125347351797954603550996479684260405390392891142628279609157132914755516516429871786695280505800272664281867628477699098536670743477788488434794799080642208335871730528633847659156342806478963614048031289029978679823330084425476300244161198880426325325550084319801277032064589894497916304640626515083608251499699657002309794998399247215108360375920909073506300292634377040316114733198705970767785079182012837853942685785663309704955104678147846062900824306988442437797935024212960435263857159704432449456429424242984392034669470729809089526866999927445127782018042155396864820634581096764155667891378627840143179823950791012975646433949186037237357072087209781374641368525621971122017108072870541591411739362592595181718949686296599507887167257723977207356539949804025385025458909893683417136330388802263829997504180187192540423609467158920710796893706012144870422425317224379023734486403450769402288678981983474029676252370846583803554180828800670140018800041795662807810837632218350921533606698342916179219584526240813351003224831572666012053378664085751654117225176856158694869077532533681281351585828479721948252474284160657329524484530563272983177181227511918683490499679394673381268540605555980924738585512712162258340682108705799877408160408153177800770993617398202063391974662659847631698785187247727429287636638896488809327718496627090857536020861302325326501163078265147463364130391297390855284952153183955016685316390729072281307045710512019987033995225992961843627724862554585012276465780688915034341311824708483864103443525897254253217743268310114325237442288247705188463592970590482963692389750322942601756914042307367249047378437578254945699164827534873548633415003744768585044437511262888246211624997759557617518505892283212050777929777205011576909834218805998105352467867493190415571673079114979498236851633365940981652657730665281222228218747030755583780281642749786059863912213804439865293213195835010637737071885548637257903686726415320259078169289954108068182774498380419310931231575934463134056917888116776069819420395927970239071042868422669454466282931517537765647353065307686263196711185280572802654384907548009722534848640153606930613211626318848075160415261947338676859409499385819586507963108200606026093188691141810966559133802817060421394380761323785637229073440596398450692464880621109328623923412393872758085197121655123086011604472313816495804040117629341804209422701146568480492559653113122160063484988506765971682512949176044735791835380182857278463894182478639731212185091014972155522575193358515132542777018412594098991159957066817751773483893105079860534718381417868606964647220708049149118974382623731626653857651046890156338616180223810021596200546739590122892139627637070138417883680957795667296360222730604097866820690742701530754847635864110739222261547482430469787694089090705381868254643974372484613070706411410200644376075917930584748802179617675296864367465692571485705310378308665094074599893489382830545814519802585324575914915103988110726076026589623799736372336464269392162743359765739508974083137913764636568279821486637006684134234450889130442943376746627279740845475405577706476081884475544261947613893889868534532826565878354977195757671036838504179282578652382163436195163655778128793576086862944175125674835116032207601473155528595154817885686794491273892393539504229933577421539904350910818835611458466924080553695396194769639002246098874581881764300022979297169725240477695565953819649909141309159222381387415558194559188680047616816760239431770989019986003551171776438134149784475627198334846228507026566957776817125625576073003266143879224074361428543951419497383846881647260731556842837126627104445716459995051429376644157091444826146695385444504354064528884408420162444199808093438018601285570922179573114813847605556545441109270987768914903597941707938520466704879754387743984537135449285375655208740023824217519159361853364034437217748777991862238623759859762638131315364617768068905853678944170212158141557344225534971486841005174256070694844368275291748920727381969595098705163783976765269196077757002323922331774092319544564713472736083811555303693490543733689163440189233600066492332589851515959665542747788524495247499115930451876192887118374393116943214134054868889145414236881445383429692309508375632060076951337868095093901631409634043271105100265300433859662094394029897194837336086025414087939976611930260135404948728974634643482278841367525802867160974458463779892072605686107965931960291076247315269887539312857674797803907058785338946539203281102888435980955489110911321606114564184172992528945152610084712297453055126574164724709254984618067367975244728637782999708756426935252593239822564370041541400379963695907006616643543231833829716106224475497875266618847957129822143787035154174101376158059073787321722652235121436031686631023645590321164890873348234423640632828642012290122942184043876692352053273291471206686416539308395998691285492856348759802418015011814793679604518575786027546358237094101241456165684716820882330384957681677422909571898937477997613827899104802604926032677263003374593635361340086959078418730232978424162210415478121032624125298219949729587553149859898948777259811057278429129928250964785612933883825174145462938847433412282238170824261331669019941324654086690850891107538115472781625217092169525688943581586884634562697093567360803610564917701464019727385593410564947129825085491655855032288756259294312396036760735861124045535854042969495007548429677080191690783913161262723794946780743165185941023032633666397921922226243647490830648463731608236780245804572799816410723653173697044001588296055081692308012780437334413231465837408033559551715580945183965198001170303250962715829564266629773292353364960622393632329521430244550535250872451937166718025068551066025841028435731968242458650517471303007365900836670267268027378710078761753694565842629684683869065319858558814524314934658072122569385222252907539134851134858350489885943602528967246615445667729639712991377784785401033471724388645754873688703150499467818968734733719178150782832807258586891912525146655335635897635913017431005093042829600688361088239464431438151881304513060849951754967964942436466664170881174888989104074561279695849188413069140215627922347798953291969049785332971672216674966221490095974754943144681736823672934211244460592342676568446276993526365120138429566444695407878627361353123889691856320954271457700319541028821037332566151209452041544334103924469068915274089879630016756538833578616879633869831918399352784128170224119276386279790466906685255028389850117247114167664904627855118301779513001831788087701628119219378850329473061510517343149323097489813225695478335648029807208975397250581103614196729687651513101171501282669210545126871233640276805747290531094091459915673975219231979931511663794898724689168861858204279645324026106293522206916228194322281029251834719499465760853876948659443251434464940329809829676944138525351187457765617484960080501591506482058902559454164146618669385642571152336073537349328772942189242508790817396495165602820389460067013013806335173739535672446397926924675359366836584133786128210332908395553237856791636190990502210868786548610720237847222279039235284032796594457978564040817814970614260763116155673698645839607174652700346521562841961165075975109439216774813238487087969483920124449997114575276489645109629651107949903219730936372859356159131522168015991748865614246472902137294067428670031097614618226141724597122913351003986334860740961043124618182647674034747843062496126315140304962723790331719644527805547053186841992774940669272425820126548046266814261119114104561554626497850129197282020223882494126457174745882847611725504773355053424630067859885230526751515488092775243026757667702762873356694656776292358586341314855988407338995253149090280115769100955948396389613406161059365547949909076443155910501205621230210027133469156230174983050416583727072607963888425937095736707529342342891356953845551837962763967785189024321612412881523804308186482752759921618655830035266778490165179657796999731738513031313756003175831854336588630555113690704627875434131919468437105467561054259426063440795793083346047479067707816454036558399748761481829585111008727151622814332105067365568811773178076772332496681116850903443930732836937917684317955605886243585507695718157848686451155347408404617778616819394556835292139813034468251515857569932862552627985982068315442588039246948243072705852359004108226741879714232191145704063268448140570760834399870657630178548261840154624967808833066859551639147439166192405799065018954810325404028085789384587169314124500969283151811789170794781681445877586441613192773974550530231618071320445551798609525270833039366386408525223982881139793491902950474783158828322409398296934608660335452128985295293380753488280141359969120237673845451383027246316047389303006316697540222611168264695450136897714487380474192176799310877234091299860145268159818266885767683819499460106696531693430632912888544028410787159790546694821081698932855814253861611552005874966720688457032661460784315551726539124773719600221002909946400902243168687072641247256009402966647222077829123993614597955162978998843037309535037612960098448330054654602950777969676237329604435480622484927036222465671215255632908181665132757388762547932487338896472004703793615547258828893968414531898229674669943601884830005625722665381717266072927929772902019860457940267851090872972796676568320684834087187709720190389426181859664016664337720919401750626605319711514908207945626858862549485061075191860528944000737341119498728995504508074744934793293250119461377294541845691969091209853066536257010015232850977263530304006117738109675879678835479551300911848025891461338512696911584262105171396355805564140849548639794919737928912004625996171158945188229813083289102595567503475316877106763153428190508497435643606000669249294229364494326265106079198367344585780355376246719169085733162984475533348917876477248237255782996223363806268684940536019282506587196080178713430813736078970118622132057247235375142174355859747090008316163250750110583321699421396612835414809572940235621966496451069082995665094468688611828049003732576705710626131072318317232100935410712326489645508664225208960653710022473772010150293629694511567050594819436738200496548104576999684272268604029056010084710148876098620253538006075058401765000983063635929379829170387953535975794362778817319541535885966601005626463163234896672567687818425786111726717187195287705577598451409794625555087868761844277020820890264008670508337822768335498427377530088584753906837002132123637958992614401814262081952858920678900290349343493947743449245503140071708949942295290981596026571222101764593010434482094845014017683025956035881129119062038585622531695451391729154869641494049441717062899742433580211605064462293757969385442722384742383018634958807799629301608436449708107042169951406885332478006062815610965742395043973996137851476095729633762399678280035128604704506144302037552893170725942496893518529703036489246852891922205243298204791881446631870657129709272228579639048629659359721897604453066983415546515595442098201135800748727287917831570698005207529201326525796214215814792373362453465112392720083741366521225786525074248021261319056684725816564249441855835263088846268396298320556705604915616450278036269571686894780786625165133964908600899812552554043963979487421553892459881034027152693689030880295949216457084988160076990836551291968847104221937054453481686015802572474959873381525520949951795779167091344063773012094073013590722491932424580021573012439547734993560011414952519432155268532272673479707358831624838474475001398633569123535808160491971806289362485392609346551471809734002108689297026046772250138822375110647779187429344497466324096411834487001268566425156567918372288995738587925977270362665744880315020305532270155947068510598050633153241886130325681961075769627626868634089722037576724640960804133550446955649877530361332577028210735151924937407332848398914325404064306840111644270674736090884256445461172397499552744148479984279325288340332616349676560740143657240793288518783953850579985514562956577294676681081781927933061173040918361839411253426768296532210984751394405507373260894830674771816779899227116959756172904327690684689329750716435927439125752565594127877799265662531770880718909480165009996570271729937640018430241959791434695865014747112716829778842296093184541273694117680385375669135409903503893089072319387663401398293031435393534425950137887469521786171616287948016682463730905794476478627094881723142441503996674625207137835874936083992776910211892057303162944664864368198213996142491795962905300518415060226212059340290674849861695017595770047469583781876816883448876292319592507605471723362792534399701344055406479697469843775704817256934746090083825381836420295302815578425388038983220725251519381919966577168738567282925216476529802423567017631224401238165238509311571418698088505378789077590072976972072200334577326789326700510389416248465883032834681732612582879164079832518823889222263593445568199154767785434924132415799868484857769909282833589819596611181156054496950279838698248988435917955543494384584155933066917378984426094777765896203623752542684376185552093844910785596019560888109544904473645626410165882732664143369514924186568762778632710058337748424833965298275778457044659830090538561185593391646199951748543538212166580075103196700372219296399419672751062043565186245818207829682930762335594349566843326685784169409131586589123049137910359135182107512063401127059396487361958111380458858204478519078729289148656161280512837074456435969182244145265677188527442533845789203439606923936552194721990114200234498574068628880190179050554163364244896975695068072021934571903098343837876716666709877373569717251049041636083133915700304548250978634034142047864699627097413197579097802271875251265722648940060784646144190477653549899758533437706777307280563835601324835094812730691435722892731504425137997328904725330741666764258475883367583644058377244624120124612454616473635120689995765174757210481316643832581866668399011362706825539716940322794518593596934537391694329049510855937875301490323827924349829010503133022266878678783239787737208308320580035267147181169549361340531219216849307593219872206878430459563084319166516234718121184934570004355604875471754940891110874667542593989730064771568189362155028576546370788267697447562301196845624498120912791289671107003304091710181004595983642960839201557323229136818063200813799775953967273644751124586814173450408097615840208882346469037330909935695961086424665133625519541292551243490144752781311943646366319169855610765195586940131668230419057596028540784961120287471495959671421872142458638080379946589518593333539847832284635887409073160762811357372008704314290793583597615350070757858177930357354637990696740447926015467442699481939142808666216810285171141526843595885225541190859545038559147010175911046893567402253370031637024446650362169543733033946278408150689306227072459071356212830722745864581119746607399063255548227217736706580770364766736484393837520215444688686242178749643178567748607212956680074265173273384608670941667885354265351685026696784531007330967758598288830868557127280998181550290815429255274944888135713133792245751774810778096520199671804833493557739016218531771529207435696473121398310358592550344625254784810916510635539131142651908272857898187080046767933664675944180737085491077297986593517788723620870423473815452255387328382553022698385615224942995136187349986808005865789997286366305804211465741665486606356706362346778978314613207716256178242630925808208697463057885848606217739507374843037705558758314712575700077824780803592419825352945456998246614133940843162749499404297120286352709117249872461199994597523310252071478196284442796700504270189575323020055629632536003198273958649204045197736155059896029105005815374019602190986082007103044565294861293048910731396724574076132614946643280424165382632443937457246793675471542662793322499746551320508506978258776681401376567592919287002777266191027517708223680907505864416081005577451678463692038282627951825209961701462020943725250056502468537014708936143754350450145022461884849858887977527900182518805477313802523398168489111101472769171167759205504092416194457424245023998336032253255496540476962931010101481786234176414016044636326976587566987839863557267344177907987188666371911754239582305752902475243392622162966078290388614570556701183643797108651605173810642545971812279247485843298485992414614863201671044891832020329100724742188972289002452693302835376990571665601527973961598372763081440998941355778349121414229112016861728300672621052295463720901102913320712402810029132125431457534157999191150343303415203010395574106097210518385942382556008569549788486592649312807966675843179193204417592519912735803673106683234102409419467520463797191904351440809034621264416658498959647592747897077848853420741720796404296676640303889721656661306317490528662628880213353539158991043728493093337197339625216488030072788651030400456483945084635124752313889685711987892985836062739230352787522831752532152770082341026779616933985738125111394717686426460250006777366769289355090597610511834377868720871550184709043754432044150037161252089042005897482816406032129564291721427565081584133387037058052208003764791873021607904136727027498162935404886290564570973014245060323194857990036807842648985435591298377993348132012941582255404906097839051369321118003164971590045857101028528055553514047068921750085320306160628245894147045079385100117025632755538472726932998719668297196122410095505412345057001390524659998353704130772249877134367918114010054905197447027311017182924368248939459497587793401750451821979617432616640314683605712853902264329541868244817515846976434733124992631095791723588875688222836198692258102999022393389546854819059265668309763415509406770695843234371876456675629008543528779565560610637959537563326689044959286414840309158116851299574805225828069785703023821046149357586339604872571893656812108034948280433442643804747705013487442268158720457556590479036614681071330532520186427436531440257630178950373546544692656069800893367865434372016382940175617532146530599554503739220495308042021518492743846585459995283723112905354935782070457022197193624492370881585078870843346170443597873275612805729558004899213319728113180705900163914173928398665730679779534464286993597409923271035020326765859047853282271087233998233925695078276671017823775848828322800829039185868399846682551914831454409405364796634394857684668616431106474399331032802775364279400226246194278388782086841642400320451790058770677233002160793591133726346717262375104294314014730907306623920199915327315506137834804769666498026465007306145415139877125117831918281214484865473256373921810596515076646732790319093402569574431810733609614226614257238837943678311769552478295287266804741588007618771980834678705973702879968329192431208972384293848545384150689766237716011182890318707340944437907086819942831475484252691214800883795297713030751126412091899683204410187471654648617814738934749313620376597295281562498348636474703201461481452784780361131006423841058301201316396235243857870478802319049806199108961802064475158880149067114376603479763028905077458017549514566100639257460512847550890114623965949550103731142809580662696673690126897528890059330057625961147424821088633355780575441770099405144105687774856123804878318309054237488535068059225897339295484397080196878219539368617885809160476069182338367655994293504721724471624484425696749563453976936684129548515549624011886153539398508178677306183293626423150170698379169909906493452627062828124753120789736484473010900446525576160687418557384782428580749317268629829179232932320130978194583780936839136706679485423291298436541488681174112826602040648007621948705969534606069521208334701340178895846168156175615118477363991396603302439907002817731134279403888454216771308129001505575833139724314170003456855286431951389143295953410042528551394772531859267226807084919660143202464200316383321525082887191845489487420513023838173755983274531388102163138579214066472454345314059353446782884528829976918680594857038044043559225286543295728501939950449974706733123612658663953367716422974573958074193301250177165008445391446986278457650703308776513194002374780881380218758417937474417202414100442787148838079597545850373318999893198266128324156094235800961961865944246198423106766879384716297872223467256697001645171348381230811482946664145554164180303988932425837107837608219941582070384828728118547530120771249908513539885806429861631335718350598269744181927779739111452964826950842568955179272852192923738535814636903982874385779667281485503688622950176467679361897619317456891237799116480042036850316242819408987805554351546864845433296068947556977443470474808690556479416596774042890166619647825372855730931827729611279254443605411862002120127799072753101010937255306058471311062182874116572122457557996423419318828636496361644995549978236480939458924031683892123509675122130631636920185999902112139559090900507768399815614236626667162307243774020988740178966668260999042744289871081085757468523884930623032062678848240110339349987973464776160848759955460012482935887482384589580069100598916554145729138746989441133925339402200193107304537629795325955731715715384028039599360400971271131672737731849623671155797515228941950828225443604127945289192663562820804278103330946878612583583640460036951838871021279913628280633500850760734518964387354649148019748546145134284360139313396075859580108121116462996239356879466362192515739988791135408477764328613998216286810493343327970648288358847661757020437518827964997935230634788220867794534412672190190865984747335778591278888096939188550991771130680497700382361714089990498121607817484501210747394022634860290979941819887210757100246909673474886286091566535130876673554222619588794622068097169437771624522531676157450483014125844026469461408852554607927702316211481304206641446147704880828185912795449527615771502512684546521660746357794861202757249985641491101489492602218645232675171130229014089325376792386843975506357360908069897550670781260304212530940077414867606873421872389034990128669538240318860161985619975836078706020280399855561676003924035775180610312978646818205836218153274347166030956204095521776293759355295816582696280306955328708417750855040198049979938851271296200446365348978911717749437682668248873356516193283891733431547248176676571580589261063850756455835280223130567699845348409795789263892164962534418880409132622017837947448461412121568469302093220675286978262735179363988988479325611114041408494601862707849976414033290911431657992572393270040783923074434079684678647179590037512475234692265317715475454788301514394254625520818286034333963485228937550077947257956797983478385894255567986646174321701658618600353195820995719119184313387473038450301269481537682315121882899683687655379214655251779698064061679520791159138826735287206164022074520179132566384792967435474333886473013505973101375007910535899129947651129919992619252917855161217919723522195861962582068511663378605395947386722425114615356432165947676234871410906931989810508598077191166052694854327499373862189774185504234197626566974618266050603304467679210038941583135731515199051253855599323503253699008133280108062385083635495363738408612742126977409263583818020079242924252425635705267679113246576151588410238378792251416382096115312378125136940432034736040341579205931457328572135225462192064852717719670627647660851067347364125672170106817514177087424442993125138669515337984574792477103186258540906300221282178099714180743219575155995650732789406263239831625030328512547103671069770957985815364577093885574872780644405637054500908670263466105741837671375088793337451177887897185635151193643266505842444051991405860507374532501275135747623331324805462526163131933437267665840303973233324332197847424741756112416550688530307641211997563597050244891557719471028833590602796681411478990968717922190606529859264744337993166209422085449070968695530448949874223444923655742929926998634312124351559489416706013837637602126225707796863097953811609035209762738429058507661646641515966183143316495357285157455563433130288475254882845102945705196040290411751709722449154560062163477164032630361212999012912284720070382974151858320252922194040829931624402970953405716436422329122814071202728017412425057229296256459376796894132827692060625008651456710571262981680128876497901043648899438920399413468305041639477818872457645012005588484724877753088230567067194094119265822772473774604831896073796136094143072548154341946954533446571708261887746494190168436342702154363405729624057791803422560231440834571668538691309789429985861082452307842599464468949416326884411703316218458598220124029448266052311202576818330913774545405106731753239589014200432318979024806419532863343209542240373207093505235987266035408621654196673163299837664933241064505794897380578710569975008808395669842043217884301578200365016512000479686995282198740922266140480529661154207676943577687382151417383451819966011952747367484531298922960557992099616038220949936423358952004132085180207800367002181374796102638921113113168599002789179501408398786044156104318946512963943859081641411481575021546527268840207551135476879944178662542884362772100978404350350943828383731980575378104607741672930014106765287319918194751596798610171020595059129092130300611698910741245977022121390148740395123662231723641132297076911786416832010510422244643337882848419621660806001451996460235642128540461572764840629665848009588531148467777790527522184597926857753023830185918857023955425893784954003762161784090461454924249832985457698552452768339677224200974055621016659898801726943652553367027285211466409721260200151668772952551986964735336023313403401390569790297238220778025203361546966259125314777992996488754711031795538010447416915007162256910096387262415694410118427775712978668548861927774869869340260050182838772914401291711056985575482391007204888464020406846284624737509819677363801015791639452356522260727619179286272185025320185580779277647432701575024532172697914001008287848684597751901047532753312912921952431709437487603483779499632879187359409684776693751979385878155264869036696540268900178767308495247936908026021400734726170976674655131782348487206474656934536608903706810053592995354608023540923895126691550037917255696822822669890922637863438404019559913830366522001936315425130742422159540307295491963160704725429171866745097936763486199610616453594447921061512188261407983231627792678332994925259573665462923587656166565469245684617390145296845181422554352573642288589572498284824268067711479683356158612032890951000871733985767309876192888021299178396386710838272435804391194032145072616759644184265331524678201429545439761766122018354286707375820805835927199106749057001313464959165898206555405551548868145581104468881331473670322575011592462871863519966395373002885694566861989873950893847839353301942232604945077963098339667541394314882378975020111083522652646619399089005918909649436528856078939209329440969654732708759934493080438145220654612271187093017171392639389023438734130171197304291057501750490771148571996248616124290343445871257761661338213118779707944867394337968043379165246366685688827419137077277232969551028051449781930728885213780283058205231889812814904985137835883693958386083089500503584928040153271070209390797952612202167251391192298933470874175164451574262359737404575780767988043963484850828125475057635283490453336288302955602900514055218927849326249883462684275927910743226552765118852884971017531657400838993776687918952226429885841073764413414918499411814370317821451207389829685980279638580568226127311376854609962452937955602950248680954508469763825538760022903479270372071347975001477274292977941461661612961046443046041447541926019978256099097043570878937134039050177991971181932583770013885787028133255121255925484080809973075998179309733397277644112332527847542364403680622696898444703398660747422682231268063823444130220939156365418238326986477494015352491068913680673820503558401926994729788058253283837216477027009536081011728136612986475382028950847845430546758253545232601634192509164901871385575266781927643537742522658784681913682028539636022200165336089448605248452431060438785922279319840552798816091077482224690170034826578221995693810036059801854802387451737345628202242075411665338707302657544772627407075001261927923683777249144256501261584829420581317471716697920310665552233784287091080975570746886420306703224986805100111149997612320712444614538075728248012150205145523799632333529959728929532429827627783628642800716380175825547300683602158215460430899419046542133802088958847091088882835093095291199784967385362843935096699481984474277500636692181399145515570997675397167700403615377565535230551024712984821599705626843834722806684451432372145164560897422819663992614475756328531809772465473141529283608577194706344352452340734223859555805721488233408621151013898670127292731756902728648462355854911146485737940128062368566077085991864915518178341639439496451638710698997277075339010314713042601576788377185660496074348061658798414897084299258239372814057360330433628253256933524859664902169336626920743853689517259236609693877533422774233378778911936181350985378092698740528877284025978931083394510761371601341088842759355082982934086633893664475700869896036917065313589679584250167076880728087397654924484116710407961593849829712544498324658875417382759052640264723940023732012326728624156059515131820571211437183351887090100954429256887694734447735907334183101975355214166377839923281299635401634916823725047978155247906953306102988171363914148049479052737564424301865309613313909040680705975865013237626669317395018436603489142657346514343180170370663990188407845326085438331404492531671554464085330523978299926090060601367035281164066657865271621868192319616619533680911434879418797956117400529876079971607858735625903432350679606631557629946944149859241257825056882398212676938476491465553298318042402738451187540700085742476688149992149421925918422290739814646819774790087544212424352462991849154964520403428925758785201995934083464817187335057313441623653333390215562214422628210387266501760962565154231673183030078407690345980461150530967937149623379455533090114027663602050976403607956454677718682499413351522384886832615530505310254995791779599371547443814081586037025001454147702234590155464251975402161566611611658668638996631004650138351412900015003536732144323701299654699094305152268126638532105670318523056083608229735115759398647066180159502051050149324614371650392790757774387156701271720197564040468667773114717716614736181758063991105279491004342931868638690129134124451488989599496187205765843812513610081290857810549642570898288716548479260155835973352298857115009193054002781013753129171350131778012094573148527441301099376474981690135407644018112789368587024001644751276859787512453981391604843981594667914448079804277725883929901293141858363313606407207180791966727712038041557483823531400422966242104171472271758576027298970926520300931076699625701836908389115021665579338470567554210569183231350187986857219537873269358674242740001641789941893830826685180431470597701099063375957757851342774269102950004743952255514907519630453915943237075075003541346485847304533728051282514850149971376912796223271733848036147761180976405950660871141438608188983264668205272519170202470485510588617515391283718429680489378095302353771047597147643666927665475003039843050982059979657034208758764535732876008242797532570681952337287424666428773391922078162829871450976450521425026579734043774468886204063409883079881787395107953449128563555321041625977740289284835224844482771891393397609182961316746625666589334839166388040770197863143148052828988106615816790825540963271955755221953315519115495735069030440389653170892570075418501463337946847746637182720026113313548530791915209850154509370443922797611930218855752492071829187921905499313065560926859911604244373908101675522638719764679413050429816617811421663355851186752669995456960796712398945058458122464370990084365571616562284543457093179996649651143651730054638966351035309597364204050108654748270655706803085687544273419668080966515594863889535584064140640756478919515981004610216638617513659823062086163653154250402878266725655696441260928113578982944269249689302190114978052682415859895733890726652537931133623652515032274830036896167379232250570127108597194081662297026738054323416507659524372917124812863401318368819810195841052161103856885136981672355415174166278790940962924792919966668290250820227464653841722185961651014969715232266975567436259487106420692563909160224262534843239388384667258713505869847748546751488569735359224344618091390448096612479045419970679714024167516767019812493452522686233301787619625094845500510892669420895521653565141743377573739471094753503780047957798221072346192896869810652241590824425563695268996910277255745996271689236431224554781868529775896593949111900189323511269355823708889162719739616333247911303380463524625847158024725046007486785417878037510333482326994392530230386973980128173389122963788778680292030586768000051812136176292535019664850992602403216556535639008630687383322672521889173517008734607641345905314663874458104466836850777766845500573883046978394413077076040050419212496466375373404649967779991697532541694062682417523240338235698972533443989075025553381274291962116580450451487856692930852093553458246523882318655925984770826900591721118633605533580143928753741213893008145516209029172672074107587720944011853680324965537690175811105330598960313755395588703234172137403117925789813062737483527672588332921795997863042564459236074297346029750859436464551048736790974972947151228738636138117266335583001078517215733900161643486898446657214975338847238590651064123268667908583299326561620518904791866160767602668722217744098139667633835203500714644298709655164873756408835780399822101686471037731668295473556858107996603130048527195757340350434886516113814198111045444205360819095950267661329514679954158646898060142095778890849268440274744025479671713986950501535131323953983246720051864663973224209196766408980951587458984821639321408758951005172819374169781559743136451957622857610986872358840315244540022281659685771781905854343866683729728795371669296045064076147288053697093018372649156830792653074757879909532409080726547632346738587018770710830918252528943724713113796254705179835518806178643859500144833874834126769224319199916984508649677367191677945198152629327245521993059368806118862001326067583368988595541341688503657334887009753842598017649647417837425590275391793820810306812330512256763291778498904585581477243155298259606366472008596244437228811549001510699195339325269019258418946112004256918550339104617595448652970692719648360879911982934905247044221189851105666414557913161903803931437135888163806337578038432209494984355053704316556372885872206738263483867844959133716393113096280224929566351779585417373974202792147046456112646857130029143475910814797301824186009964695955828874996447357186083327432116252338206731002409419186970676392322188356782916103453851919490654630758561290082679920827544893685062418157088287728016522884985346135284228291929294579380783957882477432478521090649946056696422853053439535727056212197795936218378196512024629420207644410325407362191991623458932608043835452032594234480478080035358841420152268750806446867117923538090031627145850589002112295184761691551856349887438293060727648850973089909550123919767281288432306801536341854106966325326578114370087692787758475505056525179060435528487924436703278339461250348288263233082354373066080188689427688719149581196519699255551170495082539362293990320045021705606526487814080601189186305094844036966556914067488149284828934956275297496000835919768254835015810631505695315495656021844027633522245312027016650887220479617459051769768155481322169189521931751439958608714331845437470401262685426670541967129047010981528549180672587162436791069188017557244720459716562448237038533464520844795754379573400983216891181227922587587241141869708991130330281489845544021636810057222253025395788766830923605099520210554301100481601275036703857958527581468315510566827780333762744389822015504000147008996201803312349249752318296023915601903573754663560064162554452742284847828759034650321198487370798978628236784484302455260297487911254173499938269978900046336761667339087447079804234095405191323813321129699939904862890273068387086504647704674049903309806154504546438551092111274629210335943903555013320388438892684681728355908571460589363388274325362844553015550187671407471066511604670351168772709550635076588089536475814399042204952523521436108143589522775449007247179313329578538907794071165969671057857513882249550283145479218919906634393903770939809972149652765320053724245159054140984758294794822109921304596118889360849401396476324000338997037504937551203936856510024588624645626662423415460652926625885562459773296337436981594446447174081800942891667162528542265045151383928336090377299069180937585687139181426060777710479433872712810665760332437283176468952002372586430300376078367838507056031143654205127639271424875739159789305865322542537756196125829494019870094004732218249214029915724557486364065547448116210325602492163166435021167683454334816840386213851192007513952893159057671717411785159546536279522632338328368838609243873753182219740366212017262674967962774188405255851929764394402739238355532757637379604855400011378945713966340679124080421336442101617647417653699042220919240483398972780775194689364487954309961747416221518918311414922582095974059632581513774752208748657814599813853491229020078245844680343407864682375061938285580268115447392980539696703022232906546364961403557340368458925586278113083805893850773879371070081523302714088024834894287004616530422535724969543314459529184179240733775363111948550495046738669493980568776654780183670743995046834247560609180515921506790426546496954258539166197639819833420861986096910209518452278848048567172943173332348415804840126619123586671717077142314787381675495659546023367336589891520940977726716577213158318381194901673454197237879622978424911988588093993079872603339906194750010411091216752044636359046854012745185078281863243638032700673427484852777917181202547582525027843739063799908272258017207904522739497955182780417699897066623128563580083524287772838666913053487886110587416582736082592213971154591157225611550981008602931920997548849829887793562077842091579924252509015214546470292361733976542472157850707736132504634918103958772927381939928780811797429837474149186158871754805148172472033460314558025392844461930610528798188817673866632404886923900679944792231892132141953395421810721980307586561533314142605901554365835257127214649235249240121876209474834382078244895762239792826278071404963065251788346518394805427247600101426300575686156845084193083137298058190408210564521511521086513836844040315094951544341785759388921836912544398050364774519250671764800520396619856924030609265961202004951031892856479570800086746952070879449142587958183906715705133319938093060353915417638144113088363092972987160230389879472188657792119719965307633447357548086570324480327639485052929709892880850422250883343883424823596296882253790961201186375408562439644693700997635863354049377346598896489395950605433477489757808744870092912763523282221402586632334011237914338408957067635741537205426368508440807852942231975903141226926279489850939840389319353916836550158160953116606612054959208494243752051132944190630019387550278021881016305686605241840407659319225798412186957502262129383026095784467704591733244370613511210328206642377157201764131116855881358163483894979425602000117267158206116191419739021905825280239106679376355746180398655973331651181475083238169448563077518506603853044774478733596854736446012569232499609858568061707501740898406147431996445757900210002449453104324713464579393887688718350169678936609459823718816141828676009806315926142665336208078163532414140297027863617134695841598527038885103482791127265807719273127011496707822373657555410646814570539516868560617000142094985366770944010185536089637647108269313911790364305760280240455252785465843076664185003049020182803231517785408241087137951028187909491268766022453242691372328268177697381782022402489579614885629233018205569495498740664452993436901021430478097379196546035612592506624895410629216497791835098085517686887929935986300885348953816527426816130243989544830438876022793858396248453844780026269831825493537694388031579764094924082605839165013423964941207124754717137681604185577497891323925841395656117180389472872552042070691997597483176220225011578052565009386733869723425754952223795272400054808289501446006790866701112276562658839517020249706426337450478483159418218034743093187531287666260387474513899272958439762872543915826141166360003596793636440214618729206077479440380084047615291595750428645998634656466399339916630669856581173470574782978101578374002700165534728849210599912716979963379986256467098206586161836255872039032637813485982717283254503849423001282439631737646883710158237497717856245695062222096231276694704177196630243568307957400487834596847088993156506835720236539703433124343275733657081834695389301198223061443812707684594795992133714603258921267297853582043270577154624549021095643823384976786159299465568299372907182410086971099100708974523073598651663346519207016979055241070298944494392471349415524456865646856731523296945017063453611252283954662298503967323157202907133584353861959926619231082485072948043945646478982058293365362060789653699006074737915134072836743221812293567049788526633773630400019605896919362930854364916153855537845170480830750666876386891908386051863805912835999760643058930285211219261296146961853353179893777812322768222063192353659913301264789556804003996028801203212783138138085173041785790629820592558661060052636092130289179046967308579883517497885758396380077023506922797191814858848170081386081901136990577805271735371509755544902711368738631397451224582293007793896227320939873084669755804972638714565306867661010236951986748246714552719775780342696906584736661712605645910887451053931486698786614898432890224152250914318876742188113378206630221725458558801677973554034623848826001216106059112946583197727027326562760710996166794815312796266737506778426083432320606928972756667998397381645936191551571172530592436068270479469117184133638063415987338581298146580173482417316616236010897944382835650155125876695062542161947628640237155439333008035552444891475582401739671361071343337689836901143047226735673274476061058293004586757029336417155694010973620310171249143109938720719198880161883527149634883684724130008491690747161268721290549192642081593925690027063531121718040867837433947151165502773986969235638677256380381564089596209539005055426749564207624448823956066969739727459371771071039697681708030539329577091872889714768813625588229254831859224618764839586580296008209466880012389339965464634659226593712025001451173866087403533023562128657598614558971280395648198563929454934455714920852143672508077705534947238349097195310531614921357324086661854183468360478471555267259347839031949542572684413065632346471978443436768815818183147063818917231686437722075164156023017802262198901881942667127891440586892493212901312122037249671569561263572454251125401611300781840371890207771434749350221869081393266815271398973260345197467946761277612432052939940848737796212071684579504863292745830157205727384155030618901568141074142472916822499580994961083490057169514066371115051010242171599199074256221595907806606303684149374440960678073998158356178590992980977656572751354988485399098830843408456345883725879806514183645205312317146249184855860537183964224821398402243241043301903873413534395456543572240161962084291092265588441000821506956817582454413983163531550103108518503827845233225415399167120489027356727347950334340822350592247244694389750659070109926153144309870436448813739702058417161072075160453495250523083478115258188270303189468923086404608453540318269955134952057632125900235472891706268596282195367507452260527608723360067028258756970841552008164048516181736076884917560583447187238257166196798804190684467957347949384097277557815397955325176594298457346064242565373254306797330823267880318232612482214265683396224940105929818008542899679205870131405264779417201353028265443126190679013557500089402580816583029917514117118112427530201014593418248602328383586672128452620876789464759700053684581528008603772437535408776607827218077468911281037616673051878081738865251793942961936375167379390106058563215661327167214881398103883851205273729383226067025051960935954943702598489000976414526456948028569406727000787425495994997833291903200270518608887102545742823466859449011962188945736959277544953266500583004707301862541875905760927373133317234473032904822880853935565025118102141052881183407762565427997942461139513207466453278708374026325342336951261450300087269679531263217304253013199500219650587107453170363105704820424116768991288045022603451672833995478409219209880211486917255236421840873095351668345204164121387097196992750618401485036716979276745562213243034755025992629252162330655118458410137981266461269646768597163786385234152958328730053326103757971142202519907169485603013578315264459997496404370884187677037900926429381963958351863987821926664271396488191820028047466359763114858803786715313400591333702284348465891590426998061009372214569572944571261686051693682517426935057596223482901271260743215387751630563176661239906043608708590216558013983512048066344232717172576126290749625250899846599565019338378931529956402219682909099345321836665720597039323037767282172399322005189787429153706209176433091540611558814198878782675446826857606163522107733881680993792108738807496539330807913145272342024641803778274662166913623075672784903225252621432416138669614275389620102261989889522045971447231843001305032045957565926264276196827011352496565272241605979867591220272637480394464821399389760128592620103755691830589344639647335988853669103537065859984330343192752629648025045688262820502284246116993877971780205556811697153903989005650008922491537379999016297362816085646291735858215898610468200001875767495037091607735610195602970029019483029942383033899198330924442601922988843813066429683974900981561806625659115907879170557682208601952700693377590453608087725884437969693853298864659270200932401958790299966443713688853691877080612004619842196376164989509717277480713936122748321062715136916636696210398394469035711111991902937662359682871418011479866110872971434295989053687110082481879704140349255775525789074226047516572287865816979671118766064652385909556573284918194691115781121207380425787232408802225571610422240314826338141963215196070240181911765930872733093980676776774196256139956067771382095926027646202632687310826374053305081601879880371473924165025385836305275528128340898820475346483386600279688993209580930865612008269884872009479104634920735677617678784249699360138883014057909832118752329118483301477713102493716049199797081485946172267216276139605337600468241558904012597192359821413732920740280756155573964197693937402960018372590110893742911107048997840647518693505468554973537813006756152179799801028531793665233975065958607042511806503094743546953970697527333415758730684478977865218408002076375096227883710718426946619816543126515597044387523478291867890849219734838326135954838714978005987770420291086404228234164929321296188912287057231713572681564030985979040393251059569949908766585403500228888537959068958478895155408172580035820852842031567338251924656718989574346360497702291103263954968003763842558933390291000439437447654968404960151668065877480165167013560899891909053510757303854611659178042116257549960132168436713390788419686594098976474417141366484506144824574966761916632730509790039517093625284630585118500797728271068866200934061897779626596757237885440195317220279416354533412597370715393092497070512114057669118953376359389344974506747541242353860702534743985714062484029335639731929936235793909222198861397573849452353173229355142547093778106001465802707087904169784443448274288252017937982043086427082714985052620991417710316788276195981241325603974775025888877244902619746133000315916587854210251529052061016867268926787328051525884859689860227580695694706240280098230937515042549887303033544751082410543692141755413252944073032634395933206171299216481412320862961364593721204183846712366254268551910894670704820839012946590092246580207695043349479560435734152016671049599426132342726334053935783681056660265394994852004149412734598176048643521418766220046653854954119893664945321652330684419075011258819484110110719319557236236832291176937918087868084815631288740591557169857425987483998569378671806068665074305698671275988104636947441082606166504753781333740190103814603943351142572545094871570668591389192164501685694816994261296738202462509179703208758435824787808561844679023931379462894231499114794051471530766348443217971799710548487854001448808078886593115253509338598402101551653879733975218235549409570373385380055046800878626129769658590097657151615640003322671836316252946123106228477669848509748000436584104858663453817154887613400350652793047661055632129702978133972921910237708923043413565401619194008412475804349862063071415006585414924010993891141639702486559195674956765119031472616082734403498499897224542546982115977137844872660173833512745389600138782761976599700812808354071678998696948177316474918632732904303149481258034485457616491029207967978700971285651349929856713649342746384368063189659537609188958026004154933371501642127743460205880346073391835737204895055906777389052658527810478383682429758220058962615734717861004017579036883042624258445928447609335933034807996651945581834490701112430445684687317187954790360695872324017095328407425476239459745481751885951434166555616108346081961009337451386508011418107869882736611084839794818605534328981734756664430769348364455317787154180093484687344706839264465180941171047653992194843596274860574591362021914976628729804687984535224498884130885429071250198583354748342095515130437303769995603122651445292649707042410730658837274159672088010508541740913066465186257572581625449464965279829109303735172513258032585007417270059593135933004065178639542601663311201979403597911305848001070395744817059191970439809786598670811221382077187497185966965651297814293998184974887196160583416613035643576108273261728759607713451531668856592347382874875775261184098272529262726621671141918052238499912409774093260421159494117880841244640000608047652198476716763147786304942177846472279094826332333090333226511488962903790988760822658902823370618116572673783219254203951050339846575728276975701608750315008582218801799412827183414484826051237817530974899499074997686015172664890361399147097183114806141078793192790306234266632398653697440523081737732155149580236529605827564804921761943573446256737581788170980776700791524923313503031461222073985644175679822956994699540913503912587208704152246983682021400348258529005636508949074836294835026691702547771784434884317641182947362256454340825083814419114849167627046849941909580401084849078190587900525950133901508442170174266032906905664883140450133411489173273693985610167269811834116429454242640508434872194366006415455306481840858848270120932206493168573378736079836127314877854616712791559679425030785161388021210033009561637986470601794449847892631224055831598187894863397737294009098535175769410824222267312481585590048569715660518780095666970901246552605265054493457057586240971316467165068490658966380457913164110058675226028918943524172288466174536900160723631617779449259934012173539792129675451380661203876893218070986003401048360311394090011552216044798266991561325688524773707981582746726473008976535489578158096104617957534108448210008021708371939256994443483836506337739312206116158656827154483713830952255356154564936127488091409401033060061042151476102358187894548958146721896133062351390299182958462504326258431317442512539200898236330532999758282973627240771187939292114432479367697767328664908348353205374135863700278535384161027429138766350954304110680158983773554694232346040923360707958526465759871818057545493372180016497421420045393435844213932463109811412762571931687753718195987890661525027975999612549565731748541486695138254418184168461094706834893949190360919825212692535938324780119344333599396078113026699005534335447745530719745989736567046577579492831400031163104655488683567180253856509506621577513039656806826092862047081409251084179948316878964664986913060062169186294330708229616314422867590107160334755837882527838981726813817585206560551172943367351159824713165211000198129762769865033319185986086033800077136673990499007633544924393005532387734726250526658485213634429519742765808901951921316094369156268089463471461407108465162770826647106612981727439944430889902183400838940526837131958244693622793777178339139780841588302107806331315117755688630589336348839581155155107851658809681247882385008406035954632574328606244391145431074553000889443192529025692378413796130781872575973907593680953283907718100762684944738890043111182340551206076149834990077212470858634721989933383480893562719058447423113863121589215741651888467461239626480001973871529388253288117829798121924279510135320476142653859206136691700628127646441134050307748577776266202555860483207945903700438848029453930571331641799363729874625680830626597218992702218995889443280977683975904175987811631522258512478803900660621237863274968872196193524891114635012099224232548904118485202557351940366468795791335531886807780083094311102556293634945870632710304917211371376275842628780617978421464892508027373298106454883622006075449270089552473033907276603259947394290898030307404995713934497977917270781039998001096819619331391912465090473900032777991105840404904417389878918100595678758956093937259495122047762566018235974759838370721398885687278128007957744013607920570747111446746319218903754232542542708204915727238134512477085130304921718711184934884001468123006838463744039626403313700998585151620802528703933128929510689135183943655884522639491366350675982556046593282825737319587321807523760384791151512631775879984690283429985010728073633330752777222516967156566981076941496867548983063155347167318709381056599238392802622915853799734169231078135807489421693345601599892967349457242845370066806330439284491533126020133125744326580655351158989895378486609239551342990678359806562334559802805965870693719219778880328332961106795096544639310649628837770954088341789753039616732398229898831893112021794585906250518886682512096054915572080702980178890961393094154684536876196979035812486743244854619791634843289863095292184484815925756866211164551288797516935460193350759736309789756769416252485795579002909679953920206846271655325884763430593174088337554405457703881403414668292483655117322644964134003121804732587479116573560098079454312799164490001638903350525728252055931466829934578787715650006615909982151177980335298870802730081974568050572472598618729013719723052087122700307886949569199252174266220048378973570649133629325243026829564679043413712782344291142370768460177821520684218001090363025700949366005294227563239414984877780044924179937996574033652158908546709426136705713503572268118592593435170838932042761783357692401334692457091846261466887741942379836374070516511509198076782302300621869677263131836231384472807195835504945412241768932862705641761165523900085731796760212661963306931676667907063325804922155870012222369011136112706864848926443863729080714223923996879463594861404525780608437909862873596208042697383704910775212846083462055964796923431767073395469921545091249001633639202234145484300069339453329980851358449329554464621109983715324713494120978717400698692811344074609934478242437797130054896904994193393888127471066091615276673782450673826544948937476165454223818983997931018988813675700118404049818753388059060454397496991713573753367202580772102431862032203277684893441426109909315908426213911961731377691121434801709846461904666293741130802338358125182235222574086344580214371371039699385288179539100346969071205566128799114161885772555422188091880935617730345379190306840280043804960421822062333443453731967468161912747718824320621564748658551105576293242041486704351155134302901727078901123887479022866518992712335612563203372276517764190724069304474051021473495828739425532273901143110337538126604121566605863397332436026340522772845056698162536211152344409377644835593503437776684242235770203213183640725136478907266434569812066303136433580723866318028911694534794477819097903932604216971520007586411734838343762264496447613388346317070377779934586865297096868544882683923285634744963994752436681481424548512241318999555011989909394721042946661893987948691517914100613721655770323150598468374977017518759231130688262779119735797577357452758680836541212521623782994881871643116593456068892853904665905783203659022419868522812199524577961829121093246935746589444808865795610495308559697893459170657563781358080665126982373985303143353534870501789201533900267173700114510020230812690861635253175489199831732214347082238528022172213538080935133151385417624325677873320393799542060159236873887976617735107624098428805268670411351857909004274152463601190436320773733359281037358788252474449911096001341410091942750446737718137766589540322270417657537243446963909454202755662401440601138381031568989594877743739329779998028046680156278976907240407499402922573248670879086652246416304470010822362862576487088271285081363857009308148010732013253987387863945855320081489444549744242799744925204306028131807168846254143673815629786277096233651770123919595504895897780603130121962599076001365588942934721782256143334363362735986969397638028258563410854099065732648823471812546033702990470897566701584429676582256149582567066554819917753882972638786920350280484314047939341326654704163823635046107711410476105122188903203578896935002518573339256681599058171058465442055360615467535270499020810750373797549131056807576587521862988846019594813886025624776832537638548719819215611271242608486033524592754886696945301205341851924248995272352878496434622709201646548551211560281131475543758294044724129471202229757582438552826188023199516697756933333146410372764904127486377257350549494827237639843705275659655066154878687546413883813367632759722003244028335736233615517859720917302937812026162819660233073226636094438471259830514768865113057387106665400767204008541924423709790414750191841066008852386222897014441914574238834696172203287651890709407106218334806146028592203182499060611606932378395459900424497187421299612716316850214968101271518077729353084144407117866952933204086310569390585974644189240589373714894200930142018228274090075452567772388546676233600928795783742281460413902382984961006257665604366452846723040713832445941170834720926784471594681747174827440538901827814147701098752453971023086183263280357701218197344510004771956006875417237404221819051879592715068959327044302293978540742284904055065341799108251091456211446524371298237277279231908817652681988794915275622297453026067304911970810457309911547725364227231033089522486682292202977394356561680420677137592569360269608903753238264635320957174924372774292459834717593489169576763056229739374039008217218942252607880740911514705891048121720029274273256142423823781408288086650149911442547236544532677418406434746727802710898436084861603185860619119623933839245329350217131934249702889786978388111689377357220244123151899355289928787978238044473426461052605722369677665326074293450065789068719101226583631618200285391639083683001636236050143448468408523097420597338041078454343480281954693185813410321490055647531306467944387155418329792526263157461965659305773909281903617718210370236309662525015120048675821373957616535495535273858279642862622103305762949148604342227275187925398969903632075236405788956643434373397325079876765846703756999377003974117397286888996518720969799498111839052953750048297134498469497830267743797543959004790779644660190181870337952106764423692278256372581821619538847762110778830410626601463571327640218042010228092638506629129660920489929119738835555019585705249160482501850970020384562134401677799769884365604114084612104836982405720180220172427408794840678744374246215172939567601519134778469188419509525913723634419287992072811113473358830202102990806960122791617098374180439897565145940286896340445039406123105607517635684828712601307386408473048780327579087521451329809747593812185311753895169527270881325318562957742331429625891222282989326303736316165828041608422423577795763653213752456253345206562701389805743747676083569453412967390679622541039942577465688834858343811444432008349021776065373085497196052303250011003522226564445353860376562264243345560892290809887894504962435349832156844471170247961393768557696380965556925254679322309889127795143856622167954259304293385886065742573492790406123524004141939473743201242679692525704250887863595036179711000095264643441273150337620076974529850325058695689844927013649207539082863503271733955809126450341159468427216428533727527621245997927025651465407014680996674531316316905553324743302400436640374029615160200676874561990624852215110449144424537942251335181448620088202289540491570448399656289073297776060404325567508631594635022646948691660703011866207528381954913947172105293025919639430327861802339767928605831487144913484587782556858945290377502142322912259102050861837361606481755466571438959441692885131253205833417731676127512257597147840850773134140350288264743245899000588116609805990399714685396602751312552297033220851488457861769772459420411810057004438747745141087391616566060584557301821979065767276830389975967036940508213925865713392018668828527923457563114487270333407050007493052279066576319950639754561597036134827498556649996290629805700981373181487289747144868803757496679651167765812163446083864793472837254669265777986829682255215085639564187589834557024304111404950974899614219477928633506504429267398457265709104914439907620923034177166534182274314599371013307634499977610966159863930134972508330577218304695853667383803724700560910984361559107457208603152937687037587162654345711257129310997503440897356718991597099194655169944921917639011934713054676016380026396482521589369138411714237126958498281918634173562719967708902120731137426297431197986864477475643251887045457783066502499724322021410689411809392125688919805364615534195455736635690457397499773527899287448596512979504114850985158459038743015617282145085673347459812437408071222922580785865585863650001803637908967953333068879648248607879095438315571585767989327562978655239921851971585683164490150514165223890420591223814072850626981976210614633976694709296294151018021878897297258179206283037363191812423422273548287598605921962080714506639100298557134751073079933193775524103183920923249710833867154474042880262836003370155542679712574740479930571535794901733150137037719112687760080027071587399016517188531195631842335167889818096183960748532645978145739486734816504804889634001880776336728102646511022710972779875502164974009430775819007667504188353543059387145171856451272049586002333410439143812573587191708296262610129017155099066707715997723755064511389308078419716906515515665355967247800249645865911992235538132611320849417292054980124824951983568804925492535298601576691701313941659705393572178470311717908543425555612786173412108590130187739681421505655854914306616122208351896052065987115060329049956782848978534563631193676900561850465905990901091072613494406409074908614469968288795621095897443436683282862451958984205634646442856909136444256552630535472557521749230043338536644688346600890623331769187821957823605979500323854263440769918528253050127775130024203033866455634262243381286585841775017714809968763599104953851433289054207411374411489450900204595612685792456604856638929626835540488854920536564399419243714794605474457917930165318889185558925286772750260122465879347491082524929213054023534379783012052822048075735727561422675208713944590981119853983260941718393595095758746418593317346198935387013811436027771324987125910966424017812997173209283976211770037146581364076236225256397691193113871325706166237620644090767713745706502639334111624383941552708513399570144121661233945498760367539021640995310617205315244744708029421699333807655426950432015687524214606922532217598785855271803581722771847784938035570238081266130356268903644787193173756974624462286700162476145121605794463662311872533713138158073964738817158876304172474161926154392863546018991681736205637137609948751020395514798613560304213925881326267556900443719481669037565501528707764109747161044890942170359203613072836121009241682386511758074233826036465985032077908827194643923848082866698565843427301433511475895107402377731001425712731719997048170542292771198488831089874209150597085430405812835766317698602804645306414887917601585977586701732822243337020623218293931497112056433344293534083448380545665218609465922186342274826220060982243367955684575228723502461630692754531302903836068633570923129332959052923853989226098825464246125517935319861308969380848897913805117620748502405020318826126287893625696162893671841335306640757611035541434473996290973403405589365260271783591916506648359296529643588521105757614296501997460858410655632119418675751971516133701041763706014507311571113482347417945291904164302421288254664876396394736552782073520172417933184027179063394585863652263774727170146526321202881580071077114962654250490181712137607611918908238593301633627637829008691513120419573787040973715094957640297210342579637031342409471394030996004156209048770886208964568202042040522532568699694176207913391003804250177211684554209858165769425274102706386907954750742418719761853614397646193435729260936957372006482470816283376588372602744190095118186610583610818627431213766224302617261550126750499642544463707621722064126663038608908624964461910384401781849621314751824835155643996242693584811953317809562794666422573764043701200124674202363220285283959300016485026090062786958933582861920214372301479431490223377799514203359235331090323467989319387967789366360291281297197763957025588110658928668136623846663837346870283687967099034077762601595476835329408402449510178021174148560686736997548647373490352038658316226935192855656703156686930131270286254900358267380980473119964711642770331326574627145182196101814249828227402859410752050606091886644451581477612174847423575519956432856470182216563634856745003138599096322870725575267889292407878041225700097717772139534861249287370734946239717499556314814795745038925491107767671558903756505232491059916658814190703800203535469460581960779266465490068980298951162782032346123639860356426111983096451564679627705320557986557172829546796447479121322641956551699138563263191013414495595338064121110646416392407971140894670573599977932771395487892509990569965362609786205968407053262625648946807663618249372189323822885898482089335680319656044339257155299243697357972957570903295487037260229546208471865692623069517599782740243363773718687480555150854579386045799143332918777692409239882366443585682704198733224945675299317897311009187522969123790036636104979068890185395342757705354854777622860369063725394252606987141829074189962779906682485952271239599185947944507245497924144549261193229772004614089870943547250336562688262828587686722906725162151644411365661925341026902212098553474232173882294004937412372288637879097583743801163634367711072772394675080964544676836658870065567976465356289491391576775929074566515146915431445436879148291449955087350932623713738796174323900503691692844235587374198470267317423563886807914485312843119450732548054805043897315042381113751583758595817904721710302223814687432618054347948789824721666258840278466476877836040231702413413620139180705085081982728322061047113591098792595166970167068753891673505590365582403872774861910199072999820650034401842774786309476826872316463073974866844937495984381675597905218792806973109916953569099909971016393609313372900729387250603162979408807848338420395994839005601826566591190095695745190162035964034853954687248609713718775051051060782329183203065881249706507236053461691718589144629290067940800908464509237332623716900022411839947913363670780560435148993710870819061433829141661598714910624556410565572113103445477140201203100145821662504062126655678181782854526186276129873897788732180305077736142350396151232393722957713790859471890210295446704363777552176394915180310350975991513404647397316785779833512236418962239934460067167243263514072289623106055316865377542839743991401942528946766855707612712742449141781053491615464298911352433113485614766060808348076308009988425157873827317836495806517873741264107477334617721917959505157883300591972892744293748277234527517407394500473027306616131651318439998468502829584655408239710112529434921327654603540796476274762664216072898651680007159029506316667712335084680592931934304919049297556665783392537831605449255497643657945214262194967309057281275415197847712903687904680145221321455199840276018908650856911894846015343445292233416371584121566496725405786345003117580206226997144634630561057312696462855619520960043359815669466091988985362754371136466048503340681959674598940092051531185386624720775564498183162898944076303178715673842896584233821832537548752291726908537976065170153492314646685338172463066284539135452520361755370039618270882571034096537899955764618552703362510599288477078299497134091140829513825027417692812521516191072036331896437163372403185368683046924994372112775680599386377803825496577253185830538407182398280469972383300486188238163889907520391267826731236300013885860178432212815208686893586265126679424736200503067368794058265054467262187391014751475134989591036076390714330933056879896814807199427507555017606265151194571620445184237408937544288615118953266235209514705557043191425356024595944854278670889030292017379787958783028578980726717487276109812803901433962797537890709024890345730950289397386950092085361377728725742780857650023831792575913791045767544569971423968558856965668855630161643768438177851946613291079755899261431047299485692099309868629123461523770252954157582113476342873449652835030595878023889114689105006070954470653791916156797888234468622806811758948349771675957779190040486603993597185389150640495252757037698106652704924092198080318918642569166525533119558630087754306336820150417125091574927735822679983552194935126476568662610871358769574862393924211771232119953382403324221423507543742960495555763330710599064139319632690263535906064371051711657728362306257380284805776069128963314851454202358913191054662133158727318714846920365395320700048609008002271247372301919242168702841782577051692299960139172450717499384674229848831667607429705618900945888180940816422236081216003911995183634495111977917086243300028599528536442949162227130649376992336219492258676424063664824072584958405555840326437681974631676926991723362039652498659475373281384746784752320514764455459584837206296126338810574368059162339684525000874295259306488178849422231079253008689455668156267995982957831016057271759408857086578457769021156412140068940632421357672047940451650796973962568184877838847549437397524584265711065833661758317374584047250797446301255716869915229210659418248526955036472315139036034346213414273324032849166917861541960568652397250449398850828518050553000560608343388644375185818041254001020330905799681292012702452242816060452999983394730695720946318898675098730696290422159946614646400261488335107053304623414349107086695315998929711507101334019484606870240597796856883316822679503492069420304970135122649909998337277557455423767706714561779230063629821606999047735349593256741304263772227973043364852695971036967239749299678337175651495766738230937272635539934140677244063472793146187035514465616839282799562589091443149255509357050656056391558139465315019145626243190367627353364412362214119264260306623629420576043661126781425343634847474621608762710922727273058590556488507527183765730430616295626332908178114060882477833792934720739059457890694305946768579016360722832859508942804939451051439273745597802846555455611571264895445390131070590295295990893141476202008436527565681855898576279674645304058491399434821608598018336332255884981649981409105379418890802922446752713374304455736961561546086992163181842550589167835867130055140918115451734470709015384628050319667025212167109307421810741345079465664663737433353095908274377038268281519801330980737587105461271341653568666032244404473216987029831837006466330579384012347431064473859739786980275467747966451311538706643227646248963422291121574291741949490530003608374113916465408687024274123860589807297025358397938050076436691307398444491758332917968557847424649382670896183024155989705423134475127069389336582671790406544773195197147627721600442083216991296682002684551045258438060293355337544814087675607615625672407941625437268229106824788422987635475764443717774771074319915954933926912387910150153809565853372579134324371410901182074639522669702101466401366677081436551348460997975024376216318029742118141037915888825540761830133514245393735919533609980796124833583977479752498051142334148480495964683468930204214842052138948935919625712855831240202483148286099332071646541991309501056409523205843353961853209392590275248197665851211719051472686155413124042430934450841863862755351026848348542361966426076148067315808518487262396437992450427911832610046882540152083160816644384369578298147882574641827624646612947589006265614059241131660904362851133986124986715954379692054197748208241578231263282773303135511397740408347114938052206109346997937610355188610046872852334742869169744458553040707729426732618996113054414696956753254275629556366889936868603538461267406137826900332291836344052943242298664484541429536426818746395613622776519203436118908406344659338901039419411648627513409021474067324213264617089814422642427202999556896723987731956371629499092939263002291607147554295769600673020809124572009947891525718253256923574858536525310972241396874071429380125389728629349354691477009746382861404558210455227271892705082662908398884609417310947230684475626514270866643369927153275391562426114169366392605892779201656832328796291663990111444869602440036388120824577791805662050769411343191078070452666769184027035435000918758427899118558871777162634190053668006651228016150682488123783257584050716027790963161401683984474863915822193994270213049692437545123883668636992251039003221631477693703453881288614604098525816610108005976897142413571937600924047397167303987610193259990914663332209001115561191794714978003560409323543591293870303470566120673345261046937709516603035473691241676403880825719855731282462868259189554419100631322481621581821407595854205814147325469006607379682244575089197507870360116733783624572326009168777661201067176550955633407275614367279892198263510652555206623243749839621028394851815782229932907727579265299145302520981335086873148560308248244405247827162163543952637766194062276386652275902415923057730658411856198312689559040342319015702696691402717907893575480406982003430130385933395063055171819545256866976602511345559366452836850437990115585984082686084192382053784071221450480490800718101937909544696718127290948843472053141066611750487718553583860823170233768532573984221018785217926830084907440024464737487122828789450424474394130744486499541378017135893065433549825811847382228701739553912412595143240283167338235160478563237971114973119191789831709652874431298507346920869785909860690062815704409994454675867370405718924928252542117027993025595871477453490367507511479154581393667743506699316149284822783285105984210067578958505817208048916514295257415616862929011740465712814946373051353152295692283595063843947671536048605254373740763085322885788793669317624498012040225561293089960691809094281716256355088640673083816753834974028970419941358227104680997712343960070212494848712404086692673754029820280578988713268760452928941261912407023391540388602956854907461898952104639239181343712682470646749628239872648180539462248745071912558797440408524300290743916516434174841240758346199024255497600090942332033317616898632159410174291127973142675699350078142523466520785392224601970349686655232204440704579915767768266693552958139938507549140081713422099176540461130449837108782626421540161573714576248242137580147513686994540805528987627774995716201311901831152890422832523118880112850322780444326062439010112891529937698131333472822183398661439010028557052835110054603635103321275531659777044609821048608274677941503732177807356668060561152774616651589532850237204786850963922064490676902644317537505504570877459320916043263908553774763629073639427641054151166858171340833131691230942647367519066817110012883673771288307506731740346184374735180076167542700202687756983544429439685416814603801618518814681204712459801359463573208715443768518357146007614077881485164745207755899319638166291080239661512533967476607886724821441263929320924878859800689986306430670198471121803698437434227070766539155565855684624360320481220005356984613362566462558388501824456989283142786190400602427303949576849226849645055914544023281399952507463603580435726868633115289851706408476027048342740329171449211320680854379773082672074604139125654141859220598056719139399555464666905666011297648429223299572346421964408393926634715207322970751837969182091031965517209540891115591996434023768219214606406211391857045399784533715561576302082077933490235281923444404126082943168304236951919946360427989570901792650745592326290640273181452899068954682803313239901446704835670138302213499533809040929972309670105817773234540325281402407419145987896676323930790126233593712362503025652782190373905495252428947148858638503294598133746156306093331469819881516869220721700394714299154522163957756993625322334634389402763894340487652743039750605572193894426351710022722611062920428428607198799311667074887271401771454409331008366387788735415239508438511128654835205273263386248886312813735629276069310050716821067165877594296712526647462821332018564054642849131467492765126035360077194394029297553736225441585812002336906497152757620482478382023720527134826455402998732258874862595071594217145917382991489154233506921028011486956665305432466770483596753474245870458520571967079878443737024541241934972873670161148510489224324354705614929856993880708876068470686569952130223911919949060647995797337187916786835843305103417552641750535091507797207567849978118077414221856718619216191122603058164697307853381533768014611876596615597062745419594753826741158700190192260598495326415138357800514404161804791122020840016587706884801477509784252883429589571503357623246408487646737027855541307887285176961197500244102432927357028830389509196492406794746499109850482564697062585185630994522180704297034567282322512068001918022657469455061437351336320920868725041621172045414802015769721888926602583985164575478567855182732979231083519788934969709686634839209632038715341184143957267105569155411343017849446541996664144291514272645924947190198221832719076375998319960088739525245619313257416691379908860685079343141127907161205690598935439150117510823886178000933716395009951548482651689117318362362489020962744920792384329558421869690064482118065428766058061249882521420308576864963325952501196562571698468021301202281124942111501845080329151866371338317562205464603426609803693546279094857002627007309570838021133230334960012083732494461704616690697610613227390924161753823941746700872195208025101388278780646669028035086704624345250558937036599777525762956320146901662620619594654141395395477919197717887428767648218569897829157194958049175675367513030930129062967553560434804725065461042275030787207003971190255941797111088409953572168313345420677486204543314704188843405242941134898755703174978816726335632549835212427372542510046037036670014626388792071820731198594211388856229928277915466423020938925688944155051476068900384748880408906239619384062686193263313670941989351517773733170542844504692337890958338852814692488697460567551728247959836208798097672815617013126010956476581460110916855268461616860536135161165482160757968543027286708498314937508948284343282433652743285336299822750349669881136363205982500037384304568600004205294646307272623863559995817106461056556270552846876650095379563283785402497215266388116731019919912319988780396972623425819084760664709229968283755199139703303436055296367596875069430490221380240768330761832767115305614823551099893418933217184420029313390771763658307976569590180543901232422683689887531496064130750554388148110524206438746454078263219156421995713769410920683623446338947765590793066008157082379257967564522537203353873074348978873853815631963447813046191026591565874903320537766285779492799141984341471713379477396386334662504263730305306051382539954008187198292946591039617378487291579867644472675338385982458011317344452314522723365332119823958539632008779824478992144394590109687757900066889042437756632764804000856276383981679766039515456778172287002364604729781663339575295679936582545105107279784217814899397587815123840199064059317325247757830127715245335994634042144270718240806829176273285226893138669330424030066095646701025139205085159888389771917353845767864305132575981300390129371750555165066362419370689260009735469043287651744610056785856496778023038203711168167038747480034174162679887572241334363320732584674676710118181610819736987078788636528133880248758055110507473417819393595807707825032455627503694433694288087939259631189697603308056313251991820404204585042185065139083071923385940539353407998892688796218360593433386332085403639839839485869791677226231618542626652405165794397146955288910103893561861430341879686795857199152657954960841381193355668351454826991909856249832484603810778889817385827340096513837850935678223272678610103413044341834362767302009239490795424002744895509961648512282293017945354751995488765247782343966394410687136875864066951565181058105242756021131425745941815801878313651977226417586888273619428401167247244999346741436554559306102380402319596184447060014458059299587095619557886371066519301771405106011350726780323399785147053746993917180386818968357783690056666313616147939451956464108331802000189126275123179736074523558789377055831525608376476518183428186028425771088495564505711453390525766221269528774669775177309425105147520118180622165068866372954903618904749773018627614883564023621127440959790589708347237475854197026922111434547387673436770387557073043216193229362446877741516642129787874868783867846439558511419632521467806043453686433796371551255675755630656675041874868523945354652638720016273308630037572691426154059543466815292660142182171764634247805162163746311685087613140249266190466925730314024343426932916967313706720103758709376627964753738983853348686908340545464340895153843780291757990479430830388286284104712239664974797144603145858067808977789722901001534725528056849243416623152770712541251494859628063626329076609418068247732718687855579605696914291016199920924347401972170385946315116178284267989440187160628794427240883775815105622277894001744309704053929042281412714737214891426083378684422011505908983691916874226723278822631579563102511571710396326868209418831161879326397709887740482993981885993102148981540055435949121212702762525610804988863401753228810929023450033091881374794077562826237305731514662025548753791884248840439323436888964377822777746953413486542172772119651664419783624822254369448178823450148980809338912605038142137017595460782247300199107728966776274327061161239523192290005805484532273771852235961163848894643352699798554635712705342394136562116155264736737835455712410414541788945488951926627533829056170760348539317265833085160215277722400685994918389719198353218319665698229776190303289299723225706712202479404644499523393535040654341184652585105915692128843761191339639788961508849371566146716704165424799800890373971889431981247527652225451782325485342222471865949984843173707335389899649619791618206153321581844566016648491075606860888921154148341222053299729955936820288722046467742669097587981262277033722168234817252188101014987550712948383681989061235464985419069899874422047813670603271659117735525642560075996872756994874130752709048119471821147101192878897665679911632174946752629490366230329343110415490200740492993128636724343263637085909916603467445087498326200288672923879836042894375845804657287936896837379452358119862330198100552891916239036740925661865643521163335886882493149401578137351033616452859883421228025654835110270615762201954368266902707785793684419041653472301010018904481776442877115410711958567220599438911219249842351318264870380096762912404678465864158842846588202612174779154834842470678119535294746344981797196750636452738057993230633700885035800222989076478731831843739987767073081864903779192576145970623398555520199426954861773777390754829883730456367902541468407706369158709167885930410010892126484155607135259989046303620987548541124399068287910896435528172444928839937797810562531524082251401360847898689574399433983140365055277189332168462107272127612590184356676188757369848695298377441329258321655445767511569212338858491660865826348242238230210583231257144338930837681975067757188801071834396406125804558217530063617549781746613760085262532876117646902014643163034976554808555431425279013487077658120817993988049934765460416941075472786780060097573420922023234916652409731925229671298613113369163197357767250967407129526325375411463831643041156479280882461577906339494574420321990774277286915685993250462189732965138494103634055320536962442365197066253089525995030343685497713491901065931190989390216850050675070905520574584385606292634793273461130420771012911783514927984769057811222527628150422817513001854092355935620257744680422261749840755549009624014772006248469237759039275491442720700904853693611085296848344329600209230913302496685779026877992072888143612640271503094144089668825451785864706034557957537682873696724502854901234048891840837196072190727216184477406420708583046702108482186178575026734784874890108233630825851427197292547965011613159956116864583972020410970782694932402942795953600694161337800178047174490365131828863143058870992111757799003560551544813648515739866802479242629327806461367519618198666128835983044138265204828088446179492426067739035551125292237145771024722171104069593752905733194738120770725669730701502694795081857255246011337707164592934585273257661643068596789998834520087599297256398524059261991809513042595214915575342677709880955198757817533107704156817592867510367770058173843848662832877028389676124232556047566642988558269738638827487588527672945676024185557639042957058200874948074742314759576903388087948455103726717223191888554573540385561448460117423010838920069989452823360201086938951575489061935541414431043781794712677981227720405254637827492268633273399070235589387388377627070744201783933078099346640791841342270959347428153393056937880670292885142909193760360199929745981252434644051683429384930421851812980772694900836374898664491398870540433608728611122524018203628425249018157623467695603209268547338945771571254385391858067868000298905588413924491852115186594944514264330662222495058069367541157626856552348677527976685843898542988652147954025941003996428979392840076998451805059213966556571310885965844788279143957120416253306157550025116694528532727800310405631476682611875425130444627646963654407963994006050944729476566504104810736495871118858814543039626019427040593505196903213591285464494665611331137931373061394534964510758113406657928999947707587579300095002898552892196989281834816320296543017498056735978134869777304975737993801736512208065739463650983192216011031779297545941495917678652971365638411910086079996951030229293485549685307314214403298614088537591138169600148963174190474166288239387633883619338559907986113299245493808809318899312083702589830636924415915671468886828467873053190822286446711330360028098369942652913799757558022323645224412569774628959746285916141405602179717168550422928763821867863303929736811793480990028510007732117814573911527363060896643150926762675927937607017278315967611108109490372445882906598676065820526854301891006019790789914451437352837302099687026938102506710875173286318536146543586628907867888840262273318738641265615459602112651994137412219072459403159544693633485998105949383440714953227695741149498170434867199847405440918381958594011335418078568926687346045725632897720698576392121918643041971941846727836277612142585741417011512900719509495787060773609956473072587152520044017233142749181981609492718144719559062061200440754944646933291848359614115459803246605982344132900347052975368637856278726027772449218720713843583832427778966873397189311515118045951842349542711340106890411009145934149069135294236318651873230034591866727810506613124285182405253470968484001477013923881816499226439490530127235446094840283170837785206672832452666929374646320894712616387001625016991085887916749585879614462813725178593015078754580167458275782389518699059228854036228862256897238141908021641315152465702806426305523808771006844512899495432298559231280416347850075459059202847109396941521804501182618316611868932212461810340939523449332005923095060305353830879279161379206415366457997475836432111618135991999312320108267928947100545782851806173640603192821920862861711033945737723438659679500642198339779170585452967921044567361545015384644925695224108759367615775582435490282994708701062185939020670591694817970516361209696711448640546506363175630521366600992314101154307842070229630732756558430976811132332286159714792967937408352694997204511352518459857094432641709414093192126455298754292911939964184703349027746963960118829243319229425508154111116523468229278384164972267978877111735220626177238452169016970434778636968166068021396644292024712444394517046252816591231774791435879141038380738340726607066322304517288218246818669883829255663638414197524476023944454202295605057821671285974094505167926368882241049917485618752942382549164766930631320781755652178248781424119851715548277942014004884221921896666519538962422387321908540939547297939621631566131682777394769438220707845176742517319698713434929557937990608526249511854787661882731593626254648798630527556433882723999607616250596768042083523399879223188082264990929893831900221634834631038785774875372308357874115873899602775434412390454297835114662256571477455320535829519277982756130246554552511622074175280612205008684530895785584485663998089275871760280298022472731840973175802059659361735089427501385410774683952267453387705818227892053408498344545782272941494940155496968979744868936723945182885287587437519562374344408797859284348158173260168930670666017165797641152422200163236024694972113911125158805630544435093608995751803797080132392479053890610171691235167623067525082705201812856220328738516994192652703042674366351958848080074088071711003864895611033505296693442446506272522399241956316048561969200171201303690504234983840469234388419550070299046914426425425892328120683211970068792531479035677563953066927431802015291013313226568305263162495434510235070418714516024618229535064864162089357248335391942235490804993999705408922023028727637110737592417636512206630387350303573816863073692082190577607607197352637733899619524773755860487083226086712858556013942459153002585389870000100955315869851494431869129124145878353674488575463976504891601707865675763742630420194547091043800963583182339181147758163628191725292435939308821314640901546251868931245494196291518806774950349844686840055728387978914875476235332033030925291101409400658470461582127264556266073906803554999610653009834944877150878336000034232256023075702918057263219845375861391676193521698263618534702411534251161471767587570950273577998717078227879843147999856254236022704844881312207645375775466871886306878575212010072827491770504651637840751889307951004479434971301747671018658098234499386956650230565405514679675249508136802753908904220168415039392686025531786100767095291066160164907393445024365156039139098978306542141875824982055656406905498620357327689920747638644237224205190894487297361331719660650052027611964979246821070214971628618942674877910429349149256522062899873250948026565717962323080453793175030741150019331319429543536147038105782151163599484553102348475896069511660340996057382797365754964796718055202106259806621482357821698287285112936018058387204715003916624701452808082609242121369960955520313386129920706584360521582898811152023597914857641956740396965068750225642149885919378219534350543390906180674915636071566554022105552664340927781784189241921440037869561161082574838387832192308711911572079079567788418450098894223322811500690641933664431471221277492956316988163191312468538909280790137176209981042295126931148436676442549488023656729264780287493510809437940093264305217112546107925468574519333486098477271925268755490353042426624095653553871258995739945985956993395591984411826836361752597780569316836441816122069152934789486416481181718462078393102032880403885822442738742344778245446856358870827228996153845592601513151469283854405777263214319116786140508574515459459594637735353328950244343592866336509308260769295049208281278460781314625221300199181249914635267849815814209182173983024993146823065437507679775970182093536319414349287971426100953986987254466498485484705642732307143481951486931684060565888274883399735171222748447300738678232428584230192476725406434601943725191123371977156908874953519336104943650252456118049676573716675094595332408821282770938698355755931654960621765637096921781353300187114521286253420823125316186579090717751027254738984292361394574198991339512750508950650659255872034928522739587362622697519588905719620636039825699382540323687335985309271243616432498316156516023415339290671386648351990480175501921331265666709595376095761123017782741117361943656818043010208254484369940369402846879567420460163651125711947073863901995570151398146738302173302482334347831867535936063321266505103438994498828903875382328554634925313598661182699221592950199739949858699572012039605478634840897256535898906238709458579802648568446729786399440004200389979695027252366987641239292192052931694041845997750606765439379685239707973768915538733069229597923800422552415986155835942664127406718426055637489615883221535840425598816677363295604153392773996180354422715175475281406159357172647825626311358648671714427985048837733506435364209255285875319979688491601301502382224713767215038795664523274650684749219607190084282385178825608514978519073101086758932030400912246344083337147286454551532887723380517011426334297635460325127724497715910333143341203455680808601204806294519280527544295516532612727153563739859053309384787265502241823107018008933138717604582523353056052303906640180179444355950522332390877045012809908464027186948138250369158059989088464330095397907396704617843986775486455823673894703415141924530794177127754663213306899105845736990722906021906317565810302843474977235082993607917755648315357776265157875018121994606733853931591564849396427397041638226731844417728093670445638055261915180673631324526617440282859637824774839007115774366210417774759952229093731998078547212597760501972574299962220890525899077203661262655868428746173774522033493237449173678749960880076638756045066986841849919548608861914065676515289010618302746233410169409978603895777335102408269778351386492715967304953118687326349620465369683377806021574348009341048207148874857267153340008717089691559921281243213130482249442446695209174424842414438887293661971197274314751530210439987435776413926541021019977724840981489327992464509083854972326601094338958698375036423670340123982988754718702631761269094025251874450251311160465719092093399302500320210892817134976124350693325194246084099167782904164016250436061853406175181855640238570860226529403274422598444353662012335910173180435573930187905919011665094837538170214289643269103752970443787349000172202313422889389707065601404335684678329445873454249603915315132669993729950360986372773466996165355771002759146778375901594397520910097945678386416684824139842575676614109316349315507097368298472384270949166584831216329347842834478467199374844943516525026041455464941606216327462447926487932707833557786246736162936612110317505745447224721028381391226153478672490699131875247723219739031196267683956610372070568597025362792410775416403643746652011024240675237306837241967244261549202079714842136454133131165663063702599328919447352944741810478520313699884824732163336153356436173149107279312210378709652192566699083081671386472698547426059852191152544429996385557431967713228908270091344130857406185157634441204157461718307353575043400911477956358435748567768090498083164624174011672379518907292608452934395435241628184443639261874096258901252701134308742928138035822462271595925019148870923062035676124114772553669209877810355252424623666386300206636410066461667306904392528048258416939820827569184117371510211009011610751277446501164378438701052081104383398640546255454687693781611467747642483911378620406385373110971644233517215336041227800363534947711792505323840100751830946246609755254430079545804940677018399993779699539864021582445495613301499023074075701753647991869177140264972894521281090737414806924802253197038411293582175746811300995854617792396072341313320430294897648556559893870153827625332648492289981375027907652045340734710359234414133547751246875299376351468374449879211579254499117731234302868528293193877228064094228576001640532248913605438920140053413400420637976876102648845211150991978145112774151275461682153295637672261153187626331673968802329883401362905323365484065648355717129513197762530572875654335745374799094522543823039405266525767914851455503474037173120110409531368564667691299503702674492747103761433505073872337742220494426852564165773820952306395710592619338597036213559266944145679075538970500926929667753937063798423434590011741743822913674996053059498667802415715926139403491486812279113133466053710595801521194208129498832462000377127811076605298908287812702363099306561723248980115454054012067199316059845035288393470391638916975295574450998665340849379309757157258275135740174437849465813175636741912787577416919039247004740161650336061475266277296897508891839744101649264558249809626673770596381176498717579647971661988788738489534390915231729527786153546126036575502056099458859255114006239813977909768678671981398565632126557474562217608105926185419165907857855554292771623919465925189905870903894154187710077162522167452049565606512133809530805196627120512883423090004050445233017020153225746855150658124737784466979942550513656030756128935691925413668045821321247080930489449701059068417693239376666858829402916190589658430521814769727746569413898167221984898548634575820604839265454035894188926390095569221997279237972806203701312074391775079732547326554080122326597426457960051256174158578898797413017602988585301986267333844973885174835028653672332802741780752213712192197465286364278125658604882132374319758369295683444960010710559061802482160958630807846978470201757652693811657436807501617125897697713089373923398369452569700876575305923402068058411005519337322913708892156508286793414510645731352063157069041777842788609377401499039475100147512165093706301228896388980901150471326881814852538441130145664382423177709914718096419615823731762503385216695741854438475971202965584254574307760816752270298626682110695002454902209043447924164862517612370371725891197959326333408121937639144593502037816134019329493529545603202096806053581951518385023755203389802728574913125968960724954495098813222186896823492765768965294106364240319996161627934093413388524181282071982937058140171612336992022592944443485115592631572242112677083687835528661005946480203866448001569948668443011366701944432024882345906861558898960672990294524609145533755541841411208629550278016716205591288724078812385967638222341914275668218086902394438963032497793490765129063088105048350927878978732812992600393411878624173435035723269249106621407540208956143545322797589365619141422055910682445956667110381682678092138295303755191857539453820818186653573165287712199425370442814242728969392072021801297594094014404296725274687366548817839323825029852370546112750971924668139077934061239451669481429122761115226118330235252932121006866981750788672377716548603528346602549623484072084251364183786556582276445868387120249351561964516762269059788595715981748227789734100653879615019263498003783438413840605962525681086769577683530709521704573685974806401441599982908493304536514861695499197948605395551393756965446382039667877870683146834309158592196542118901109567189729838708143825648424638510430228428252823841628437339431836658829274237514456916682964518293525045125618114215194117580420053428628683108970929445172779939742483157203896782332367507373833775860726936379097968007942794844451610088289793764871047519916572491391628214400957705188402797449476449509100397828902276141779574332288528553530303482887899241896995803301060350444244666496204827250384300288580660032950791780215443152766075773856938100349068469859461631478960214894327064011968346408434604665992284471452978931996100509747229288214386186101803158418247865314091991829060119912212852718075918390414938768963177764368349542095481056302750994414603473350719768670314037075855171279813657211001682102357113564006544733795712112091882842825549860037539794048410917777082465441814139119648958094259719155182878985116724651539710693631751379189407105517877088352770712459431522679441563233734139442257779798302288913510131555891860488246529230638486537419785267011085609484214420289151339874732541637190058165942847277876040685045716761818368156523346762434456178197899323009589613403502823752665955314639206583956439084892134799688752511369841631813778002460377512011838172843680065300200437194539277876970577806851170726030443908683491930807508469010529791153842879842386527671109448264750141524775285574997228715555763352615080174355991767810101411828960748653712431927035017356374514123475042262404399174451837568512950971483389408907053692796920327704380670861068093826112172799885172413975422080006368312992670586641227913562933543443728426576491061770102737160142145933921708098365924338872425152332735509448817991985615744956297053107766587263979269030597955062621640889331201037207786120903250495247108121810450995956263909861649341649065358698868801115729162541036758444082097299305660497144462509664871006063809995281103646458136073090244408272655433383030415083581768517224778671929309064142154478985866743862700850489276930756303412962461244463784308891935692352680324623213145295812961944008109141691007115926873752703106259430138496970257677166601494888692924327883031438343335803518757810903101379218851899537674161581122990277667831683359314924995250914486367178893607867546051045101564199099224650825114206299566424686944763399004876285522285585802430128889113845254816787517859571693967741801915840816437133016337482516399194517330520502277748904706755623962944349558209664350519449186065534579045502147117771216908093132809148785217621367556108028324274505499787986865863690048372433057280579698351555170432257302809860104126859513917634391157443105650240883759133917131922740939954990452288096147039169025717724565618441008177866011192974834899247258853076308883369395963041842225105332114833072869580340142040324068758682678727360255981515775863886174833233270878183843740661667511560125847221309762247341888832710343635181058253593715090906301199347171183531514001865986055076251737326144494837087201165949795215650692942552008363867823930810232930322363528276585923768443490105477994619479817074651434720255093415909841941616444091940499018064070789343752894958812873503216624659480593945970432660261789283401029667993646899642335519903817449148746920106608314178170319235354583652403693318669917051775760049722557722880149848977673680253941213000361622762074826715188136403667394506328677007912123729890361072403612717405892596601752599937245750835642143456487366797649794913580358559696131021516131309108206205575535790243534322468358584639615253540832541625206665962445202241877664528010264862263739761147377894767934611698728451912018080311436930643444854687775484456298437050866508340987370810182156234961538478615208898727579876676220096077597841105091167601900476680181997639030992072921024558436101178751751917850892857505255981027164152426454551221537774073770915064636192146822848543382283761719978658061999506480764825686960249013609118592785869412890738417863839928869882543939190807262197071441403413745918088306908809832211857743160689817794473795883203019369852232021135201804207314142260703784117114137458642903035393191763146228645488683703723272578909303294641579043001020930851784520961868796749618939534004472272906666660696417491357375839095758280126174712402382468620628669379511871305153036113552481993093945271417579524234446228901592889630308029469883027354305408250905599204331240797745551332206683048232854289367859903870937268587020888159857898729071198829515159498925867289488412500440847585032309501606335147206909138521598026247916594716730544918337063466464859377511639898104106052093870610494061585047339208010415053822383010932561167903746855651211052837220508104405094347830910233656008874144428926754477344280872579895990719188939311778249662461112925505069730146408994698503450341790935201423312301365651318234498001090307765615813132242779369399219398164463050485538033855035637841200565336683225382082748390026040397730639803445023064402714684369958438498315624957141673827320551036558926401820079414860565374757953062962925243788277162428643409423655989196583284451054686624735908636618377872658414740032006815937152031394702637887791990790737222799653234442968664684071617786064931912630760783602562347219499648824983414891241603552215176060697989264454408956112251170876140594343395052552159302710607010723920061324176621771439267353870285171292116555337440845233372953431990201694627924085519847186724619377975180682915053464249887204872215793672233356545265871534695331010655139833054833839284167364199185516784538972868503704029459686410743490093891504468025062090237421134644536861865004877670392346287692856169795909430188596305338970132925663293409354722617011930781850173706635576038363616013921179484296133969328727725538794754379190013290172216427646703812110875802006761731027678573004749366425153950300735356401067769387591841972290641375938648974503629882986040842456880320435117504172216774358209627139584864683479765154300611318711072393044690154162756539318385229448660472956145593311363399521620316930222965158574334447836164424441669437690868996230665823686533325087324497631385161900900450734832734993742441435240466767773935373332672809967370747506712684932749068097547850512566606317451820446197283469087260136682885347073602515343765435333822652055028712166847482908352067830240782704683995032894002086042360120916568798598228095851596667374827873354200481091950924225701205611765761415203110133516256862477744540510956277469693157631266191498804067776565343132049800386316213696398714983653590054128018096984828921593691148691706596864923656974839734569445799018084914278764914633548197143335371039257579083878563171246721912991680549492320798079136188044501605223175768122424240284291207586939763941599219327817545299582684373919908334602325826760821988773828915301808809002163335401477993353186060493153703620876504541613912293356717432569869785217507117932621384095436603557898414487984909739314009227030282826061997238738402953398887290171685249100925739779940462616194188211630955543608834895747519738171347472220392767572434973825327671831965838070074468964776473311639844138714952308141835666847511246573715205295769870278755959740971133940323900996060458879461418647583204119135396267676258151872576188303460451026394846577027129793730197896278340913431004690211185574499981553976407192767916060680079907006542496210745482120500712406338519466420524593588761334217261251933804098336759011770107245058913930089198502476183125085394405983936669977786126039313177059691955868611737679632889307108813870325584741386677533417705862591986787040721057556505854596023782931907647254467047913417364918413478156757476354169337318500314791346797853260595149575556979148640436076677750493598366465204954725807541691797303162392652779355271901827353699948395712587735217485453463475583486223783586674424415695276358299368726611574595736815335886625980502593881745175318706988971732729692265385557327316460271526373915365321708647191557371259956974077933191254821453726631786764223578083059079348027196876190465022328809037192949069732163411105466192846377872259458512610685133029100766987010428857834852157448018518149798310474447066549885450599057383175050509814357185956175296171352161359177424693488711940223422007558116553572921757837409249960843909459110620672026929936579684481649028753044432763987234529680691042320901615960318961169021541528890934286303716340951880399309177217387272214707295600206132313717189532634767969121707012778916188319052110542165280839516311750599126117871580316930610089304383785356865719393192640089154330424103767148827580056313294289835355886692066967974709776200623266798895510395750926098428743890321091154078413576181863173943032289669090324081047080910861888860382917244329155931721986323237437146091656161577215824910673097993823563356877120476094789638980990313476806818779100800895552101998455176756675659400330442279111976086852745453509125478064701242300750004450672289265266355435695262291208061897432529259665176979586416429210539733749186591564938546526845281279571246314983784552648123390209772064664935207503823474707528931574673657067352457494140326841806499515621950677739481770470810730036650828141856269807400799256949582996474769215854797854122642685655476985573617767373380461947464465972777291397973241645783762854133773843247265040602136490360764822309480313746137222418459180622681810704288423601450428685311654133566527420513900323449539887459007228572631154411219955808487010679563122701344298770645469984820407342218633890067151294927562963692223759590435089743779679690688360993549940461965354688375264954830092838677650861876390054038579722170647398741533619754787624511379833333062934826270834563676856997809375863683654604991542870798082259957383692378968274948662167057919999409257397933606395685913168720973566685593224642515571808773081553474572228740714696228927526991672934913429827053383902771270276074053910836792947912955089493056877443665721248636884295709884063907807621915438308254302636990020495480852162403713590559028854671636890399987393820622036519814049156755776003104527611335298754652352109239102931469878582764264287867530060169746597909205185270689293359397990698966761710969277740061055634783301915546576043182545006677019478309952457135975775522209733462152818377580536751259556483972803770681556811217607094157071245825533926208071896956569013599878459016904506445389108606356192009326162106854174869998135229954401078141524791076863588845068903099292482575028669188888332457275152617323043834702177824716117966511437064431117956627053140085709287644548572293860030429325629816681421735808913101374952959218100653710504032360722703747174289289891435236569130634841246982641607418638034297746028951318936856581088866416443977183151647600166081515680516653136480424190684760747483513938451014874904164538608248167776228509896176042038082590354361591406757380825362812918442017812269451860309325465063200398732712737600593318885684461408905846663489769594953226793861017891769826450669408735613283441913477552078010715294267525117438928229433237043183375939649312593537258939336460311464213703165610120148527045053157802342770666447271072130048800354364967307922567684785152004570658237122673609588252526369817067093029875500806630800816989063645999714377344445153176909057468204026697825295918738218389791617819280654482734826757672092662472065225285354032539071459246933346711643369103857585565355967278655364418334361295266793250542966402864785676499034370683306236247659739806668396061387146860484597205276586313071399751194080900477020567146118858947349984517856023154104425493264823918915918559134348608157568884384843747776219217508799731583474805204211626542359600421125872814050180617513961520874534738927995282021939130421741852697762742201606142095418192765436077510044019660959423636958068355467718248742193310183023936016077731842653820701792202923990026043181706770981522791689638389346995811782137317725984613522942020156171435782022193253350888855480283412819605802468117527979649137921417357646434606090361569559215939919971662623540293525816029020680825140688171733504682213049042906651004834592620129092279142400072637887186479037515831931984878820918800203892740516297092401324634195983440582869241950022617615180948088399251426754125050406998578294151290557026170763236873861753683124071094731850489684171450919977395835507798527417621641140666087094641248935048209838323199144756003984209041242195892417587091609747331359353400272281347257098955740290555659301533987730069133594092460767997318046746251890248975636826098283030794164634269790780578456813285622755733922180028781542375511532283963603295847874537202546304224215440913829271292801619134391061548952465953454989951283137159402704269343853510623978379569617640593723030951382951536635502601130604503423498653822636023885013788986154146500305777100880901447867732569733098622450737739791242782552396127706268545522867352225193911338448542477301702252884341618662133196437247343002893962877225912931694063930577540620303938247345475127554612815872178409252217655876988789508889845927348835794914821035857878761212579065952782686226833155481054525867539326645930346850176991831582505262285630507513661258367066016582258313294265448842654510812815700728641327469163466051089848525192468849468734311556572036067337665373868883217714691005410365285668393105886145838057969856624855871280764435291483721300300192636981954305057424937181123762912689527726962239747861407902379269016973662483859003967038894438173226867418469556677655399396321628560774427978285731761719466913127683675662831978955582111291828294856483690673909491336533322088839985292512224560168346905026201870568877595643007983884958501451164144591665299822771601241444581969382505270835472287559822299268670392744397647656470545002773954753868030922942003807929467209583778437797351175783203090238832911249876136977112032031658663804971755364385765982813893305958596686475956054814117737938597836932927933042464910165478479534543314881259952080851105904208757900444046384622765310365827851828676484436944963501506863296923322900637287042791041650383877134717612878816263777304412481479278163739636378844340995905175913127286278443656219175301643937765947200144273566041957743512848613502528475870176410608539571477886922360598192466951613328475966220989089804129578426005738920388650089875751735094122328777197692922110657007976626563992427942731621312063284644258207371861822908055687599406176336708406238514341293911098406928489173266368868332660283564650993662538515742944892836205122715104928179650836979392829551551616534420182911530629565744169221855117345718225870549013342226601374994784256079438136130160948829552627991212275634289725424361899771237015395142564846395485228675346035486200253587221244439161691432179836069841661906125319532252375368686892467176256746838502736211022590620826385762675081763410820196405832011254405793132374795272455015924344559095921143888151164699926144063941998424917097395987168885809965648997765031871114142226089045014915684275237850983895130497066010515234481193380829685098488484722541289623561105589217343696591544765137003514547583406660717652436789155261316933132337742084018064638990900865595078762613972852030296594615101421438847580887100771308727158351575682792542403465866832951655889814106488688352689516241389729373148555780255239671082966368712620893685406155509504260040305338409334606848621418184233380107692757030222371405002462191878095221808369650469752018250502102434829619348322205066867920893134106487752097436202960993990121757472709738294983695696649198974822905383208809678905162571489615625877944889855804444935353971926794169863982766402132863981729297275042382211690001655020310868875573608973758894914014169954817697262469134071165516064394310760924621782484245517559580672409739608767403342144726520706027847792374531496181330977850273974159866397375177483524546781071988758576508881736591464370186092473112790780767297612089343879110412965466092580864835269398593778624843752683766710555651440460691385939776838780136546079166762663155310211256372073070693321859663515051634505121924574761412270020904330418900562175625419309144233478821282895711261191856015751808040490912388367267248157276605702144471858470345931094682206653916241015086148010053728198358684852999207729585523130781490858451307016567616575228043310108088303609316767221602603934045255680370590049577634667163096763207061562574583155555298069760365897351799064008651989020752801197305883843035030345191361853943486682597337099656605695156459017108549384398222795104843430823528210847702681511939185153732848353086999639929824944460497892034587561510327816574337772039131283266099247886117614317532534100125484449390606803460600200292734927436245002897638490191012437226201981172559765156949330616542425399379906277785598470089691098480562504062994782738996548067950639825100782461288212608595411706700677620560326319674108955236126781425898632165744605845891736023404777045360011750142733702558213491035480041355751189875865563618175829629652224197923174339098209277419869652766479721677925246287652725170004618130461695146411507430349630103990895820806324872306597387101071345670161719209571994705593912847849961011084231334965948227490085867928608240436815565350415274627021507702330544009910351265910694097010485939701941403277163012077933514776255661326239806582059045750555532499231592146690318557894165469564192237396219364797714117866406440075733500192008843964379245683944914689290827206184194614521644251571592820594016812070507180393797856733645914447331401840095957634446252589262034711875896682411554853637736807797056369960873189241793938747297843679749582687790755112326181195920869459119372532786174556002871875833726901366479514017100221098152336812684888413190769701718770266371081090469568381598430865820329878115934390030798406059275155169738262641442241706368979106178674959633925580418348931410384949914395753072263833653475918082280155419678658851861254527592962909870772007950688312676132710353143210775371955045032896989673241255283333055262199768265400289375194403835988625709610233537676565992066550524979119887089741496072494748821967384596477121482147370874428436384187880271324458001540762722921807198843504179657494403671153550160173247062260503532388204934628463306229439705842895451695874685254704497019232200473358751273771222417417614053825127844470219403644603163021383981732490530447926598685237244104818878429497620576419897668338159436687379716264959476334114646473240640898507497185579976030174282407511185552725308223713849115487666312062445638081073098854272676017006187795603289614933108919243185563776037724924371638990465236422425840715796144649330397780637370626136755177769615724161221669938336099882456385019095945116272245080571387225104931539764930443888726672307302693445455310158259308780527863816381932239305786368847006823607739562805771665059317641936396860691917593594334006941254807261663931597896429156227678040495576448792046745469479926605141298359997596134647876279911039147072899444018662063739103202376323103863447233221824442823496056333196136548221343855220525514519218987229767471079585569787796603815517855079273824297031055707381642205193805555824173465518700713439354507700279945141494645459335075031449546141880999926964386103274809105375840600424274993918097968190488850357982898548982309432485995778078134692876767759618795118394424024584301734734717849283718618361814716523462638681998076917998339781773012568370695508406331543705364655462946306789359920507516420314357437324231228675349357312834074432967429313944710035491175415381587932347373589678564960940868824975422708630465785210688105312295218103950125231117601676058759711269862640513295862612721616371361077125027947685890427169200540046960976185714540848197262987470214663330543059174614330247701320613755107502780326474479656388368186001039029528030546464082678949469138004064693547853004659562422687003870882551676249724862334964101070052022003114826318426475348780926876917308183783221997932484521627110610542468144083659449019271720258726078327601191284287389242783116834828752080331806299025027843012488625244918537811890774779036866950309846637642259736967941145675754387193990451164142771815992601346365327751422221444025671146905505101138139979283057263585801929322290428343623525959929703019843848272363234820418311882981387689252353549972138451209623895197644891912711677993441595031263742182773036974522225757478681881270733958217972997500632859816877042127385775459624824518412177593676141822024007299493067952491386125641204069098552613267811196073045448695832107576603514983707481949746343164597329138125365342467953652630315541961162084424784523199745941367700411971053289726441172987143712020588917138269957315894939159726394774419063875704449670600876820122839390112246490382919746835286906416676085574644089378412579842523056165254908444146747271394463237074164960251266541698222788396527548976395944814275877371301320463895567756972406083328534597502793417472277360834114749908968122352601435856844945518712353231809890516294234025990719003471617531693712455174537862169985644634329675164556022756046627453128964871426485885561635221136106333850544917085465046629731111571799158643134887057183667652852089837523400639162606109454681280113862130308361653419702836248373664681702048631849212713792852953597540989089345598711324738612465133590032111379625932716440486530538444770399609056920052651733016501638581884833827204206118904731159106175715901103189029299942739817515645455836775392355257484081944902965393038401039979894794972771353441988574278362865274241016548927963294225298008440874527333920178159952653441769251592649557311671293571867191637358685500970727379758108543405594672730276483151232550694871043875238607759026360199072668505432839835863265437165926314704597339212936683765498327564151758968517553477535928325261718705755868218259242379434847469011537764188642421773627271085017658521113363199560868049458176166061074245325859832068662248062635571817254184682654340745339905482868945740725753686559378398999039096396566742176529669824111830528637997414020455222977118403293000999872503313704635272482098021931531979874267167226161358435863003670064057960593708844327832913277579787128360279794171384597494613904063073286902228583930404444878305098152313592157870235598280861296735147852050531963593132005204887818708065033155952188934533767425169056299286045524499844420832229413611828532007160783349077375515690876152914860860693647893818360628869587975711434088445015357640647405333667203139893517192354850413132088386697856812491613796747736706777852590078389965813994402935396797044682927180238184376345723005413871580435749866802914970164548722771662528593301122762302654277054251885889595329301713823803853426887437515457689759198195143941782668855358120293267382662221001273170883520651297705292150589051279011958683021035145101294977573730256352526062101044503430809827825362968472582013042616441426672904112069836790573741900412147694402211817881630474648229108782678333298087473448227136055482338032765479155624716297301830914452208095173123251079811169541624726341936743846034505304381743484925387921287428356019958318443106345388244725600078845419297269995218794562710056010010722134737909442773890337690133144817125359182547701965317348897089449689386694157930931551538618103663382209728575806601711727643548832320338393833180480364731963586506189604285945421388430641698884863270697472016161788200838410688751748649088570293624146182448685516511333963984392822680619566139504848100793823944852863119776926512187226076419431856370633580734267419219426205704562981063567396467542752238339914155075280267363599455794623077352354950699687787520032722030795743632370092465146698569983223771019785736426119208433466918083670676601446170989222309518064303866797386178454468060339898373892122912067174724514015977055232630906137280940259281445739958983858823714653869679286552113026646486168924759709514803324981342697097135077185862490322992798375449640234322923094711749177177999773902629002952811004543620632161937120846988259313905544637573439605279222224250908374074824497664851462713203005623396555968795545266664405947505989669747290113711084483056596672428077514412795325524697125368816161380967423224434732526127184728060927840597089657347488249041825512673887729900600588006125750745936605628960207887788852512182612172309803200395664024543254793120161851870559345015451012416849003190824104365365745562199483836645698319927947445233840321975323954605542441271088026674177908821206268621079336447054505044332972586565831441889528865624480125239608951676933809152785956267605813540888497831556483219860263376163640384763238294932448455339087766904651124704985967796726240094749283834417814914014184578681296333559793330033887226647013597376376900387943506360509794820092687445730403540800330320485703950934540078429635475209535364169034184506869556939811977650612271129777016424027371478275132317102595452061258461089832621559091191844301095611953776636578138999304304499677352070659870623337854834289555689590970953472733871844224890210486709567260224108488935234525195542943554927674494149517249261287043247255815221779187546420137620043186619602337419367445232709581834558295621558830617639784791269873106098924726753878468642191128320441670016683622304778173358808741420052049425954695917567329740129970086916675498296789253500388066583977934999367198656808327683858606498091900727735690829659066241666990219984895376128006607693128356473106341153638961025307648080504700830537581099449096738503075269094904307746098422979962608322883679603796769942494578208405531176258104287909030671179901319494889606166849307973099150929454670646668426131811365843126435087306637158791268101681486562652451686041310006914890539095566596607944851776186378274348420716115743151723413830969398675746299866518747982996464036149280439233691395062908071515766877141957538523585504316130194552800449548603500786332793663647237595211199123677360588022180918810273273447309303158962403411225636389470392315897137982354531189889383685411650865686369772700927475576482432144761865374363022437930933695588865968936770026855640737576113980183430387603114029636636035014799371031942878121778780502477398520448884574128371879706199691980158971819811268428912311227045193310735048216245013857409424144653304430042345192161794283768993027273340504750322395420675029864348158728155261537858562155118983355922447288284469014747098577036146847811965598484255732831865799723300560425956689514348990822482691428620948672203026950829984693499840864982000019801190040300900764662904506375045093542162356858638139015120247311786248568145232941452316243683440350888164380427773743911337992486922226707776490081963179529159585577833885907663275833209261022815850677429840040131142614462264928181181142314993898618661623229901901439373039807524384268043663950349555439661219056095857718764750537721720514028036438625811444558938335088184184573903233662226227128664246806286218965239116158280605410579233321976628467127059636136442056603050231661310030532439125210130601558057853924745284713891620554919681486087504281462852315717930431254773867820970598189025832803741183475429270704773794680719708783658355363734686876992295123541576424151771645573794516010146265254554461981376552854416212962326486931432475940625382574869429836798999306858349913795077579374778124843539647304577802778696775773465319271796267976708749176803288832341337445316209209205215867216422013246263990082327708480292416398664393151304463268579315026424661077572666411009932434610990454769630187910895966063694493424646418638323207603413770942131623891217951714039166327047951298511557084816555702818865892134130010958307901393513735502614057670980376874902062960630738246570504041840489444891441651039266279769495685871406896595831412044773457092424724352947876339151079109108169570838251694100007094528224992494630146550463750769109907102552365692561812523771078249591692208828860714188337463590617056840577495386313204074730287421772146498173193117516757051280991463710511401322197352869056398069215120925600084490707373897187965265411941603670929843893221455030496019502791841179875523333002475535907262751362974917298199936939970713510943542277674927590152736463212243520551788015898328687048590054508117228647543021519702349307113546439325324459150436015698023249275647121396718269680592481006192524880792720416815769147484579715433258304269427852883566568615075193274503756737499557214505364088523325046237522237474049917300865490992018906620610804029275564829367001558493310418947492014635426455794464096884149484765569102830040507312423802802477098920799609042405517275060904276909168556517074930846448186339599810161852058651865424821469684160823314152932633985393692358813027478999758093752151771873244319209415141741929686469976759949883531126466597556867447839906248148865936569750728000412341002265364667173993481548154810561632403213452631568352602520828225292347690371204905684282945192599870230145730965905288806866581840828641130531315942522940069489917464723691229284107592685519849819320852202426735668403713819287144758904177779872379903916686681926037099574921341438895223604284789725602489961957346292379495909164609284310220426246571361265074249893831857214257286410705792115210520073813113518347763033714042910789024557380887431635946675215046983873352014816116216864448109520895784734793869321607175545971686569783438226252214091220242170536832740602282368411627960012657649954038465373062799187171768832867801290351909639054744499915806536263880394402353931740327618762850598650675702882619832652182768188835242002586016030318848546211546065748259923039715892567595263322400948417625647800350330366097697701737980862601348408639190956496485417987826818840215612782949949180294279746241706110730212950538188246249631912895174674258444346559907758888162715928879407183766050321125224752536572044918025108254388409679718933457692505872628547654740973954099006122794472937147028841366440002260382344183065688084200335544350232573987771994383011574466907382740462192973125077986760458276152378982010544666646668521895148321691633632192651710936589159227442198597279251517418748931535052096807771596844629880447582106537750508545620124274119161107077040271512296977318935268587680394575357468727350963852057197319443954467566389098605527934720550982233868033956383373360800315534851081668889606480142453685988810353009604811643243386052910188685481649844620923877126403037199986706008450225800528763750120679043407713933939119126717210534539971922517569206378037395751479073785243742762283519475709420313124163218316266928731620626072978095853107039097743687139348686710996481521932052672245345177708240928880878510476877594725018686057945469401615906621413925916291126260327151290341182185968456081461293034260567713717446953592749100084051027547540249119666620709327929616463806477671075702167581246316069890506685134958349414031350169032284536133334097623321513293204703806768345052177091633308591369783761462715721798696557121704401977882975080514623265464460927691383938815043549671866399273601275824966713579319773921273616052884861510444327755141734717570815600751965038784978602503864655188448658412462821624148664738825135669418002468780982836866068047983998626525746694427622873208583945956281489031325004432430400626090691961711072378982421505289004636017757365031547275476766881654721075943573833700816766394665866023504342261829836724228018122759926102071895505068566966961189769129213786019377164166655410976932997488937140827553594401416621793453507782167785849791259935136014726820847338864052069904781967912779478217787605855050610776628125062387670034103149456628603418485605428347756279583909376161992858483968496564266970219975338335171604599901585766607603000230159388407053510450870517119584430909692700030847818615128619170678561949494993775676031643686138811900808931221481541993976329208706767923556616391695957739574436445035441325944424986043119121946999980172159813214392149566401828594506605328671402413869331616983517133714717914121908169222760878124698279700553188557689945009194746620681764173213208715256667723183948783247821781268815704467183296012667162361918976124993719029523374726527861265541729215140110243532206371038678089411982457513606813227447944687335142035040883322051529324964812404038664849810314236149421386672207068331952873189147419237444058355205388732115502986410312942475853642277797854186234708553432481147945536636984575264852700720742757554166059563538559787735601027958407379372848030124169359918893580730983623271240000024529519953702153767907644020602458472502869686559104384048481696377767543348354345772887892293005363982804099983493464883250345854353096040875307327137053249017152630597821724611860317599155881299896912250551734807778959080062289660368107113600577640753347379321953110056630774699733709475990472857004000374665711248273931280599234753765891922159390894881265608547553359193445325250316536602828260340964330897648270793818761913771627718640589518809997377058628565331123937119661828223271458813957505120761624398298878221971057673904883541388293612657088621050615728626059152829612870369147118463472677996513249563171565850307970402109674410954615655583419695870220588137137866890595876074850542593808342209530568289705440119156733098008439663774244969133339335830533194433847039933281707889035690175908025814133357377935678655618504161861019979872065633141852848304255435693354854074925932237874310535528361622363741140685789306803455058565882325483163729562015423788920347751861538897512711624447084156886252206954022071405671380373201589240563736229742750988251825744375851357956952938128368012361308979437376433958077734217380687254373826458974498193263334809378304081412083900866627019619573931472498362356933785703242058481245793173092314480616799824765252450676806113034739020826232188993150204068745588378719885135990563651201777500588221922886047649127628144005761164808029693627795089556301276207769068867285751442902919344376605594537328363968791998489852348332367640096304574640724066817231245907607045414394053887252230692394875160386723240751573462311241055300438858903149062200327251913252156515787651964478325562275551900036060288927698785354689179985026197639528670135092202033859808638196151578656534476837926511658359742595531729578382918776657241491480351230425811105341977902125819892135770976116752289466418778856826368060476327133627144259453892124693923906835552306165925049803911852572551681557572636231757706543818517625912265429162175686760750831121413968797012105067127586981942024472689581252617065699432636197445998752786077405000306935229422377027484211027779213844871687806744079263593528344426106101907940300803791907665498912195106777421210738579166243695347484903266568462465500169839432599993501753614212610323002301269425439419595590324495196986340200947962017960018893656529068919213689108338477872721540808515822970539429623527386059186855224152120345024170257775349735271085573917178025776712271989563588642756050386639904639422553209651618969951186166764981345992018623087278298093533733462673900802934870504156299624710004464595224316969907552352416254676194952407478999225032198863553677439807361751630401697239667040943824612478812793462608476766905660748929290910859969904206481544024335622950421945874672956587160013627616780760483330815924015661048709586622858674418359063387122877186437682840269199397362535571239531692436624372210133264122948074423089503327307261861098688931614222667406617295800764555558294308349406699531704422040101591242138631387915534351511985485853127379126460199987457339420340284145421579098208720439782657090446521209309672479175032837529174900521016193026891866575294962920852536223406810103351923538392538889138249629674290501256895555658452625300848589978183650126738843742476035965530474006954330017502923036848919759356329604873488632743765394484466478837794428335098835296557780642425590163541205473300834040791360858328377655495215284138861244660016772549560082690282839044832842346941165413537265870559657775950079550717608620829722032943695569736159905864270397354169368373394233176707366230650155645902678852607525740023050937774725969231867384224901554095347367407888722145064035380045384995078228286762922646227236939698631646174230968313066215458803357162582417779683426639546147950918648848124011431768247982171211457776071464907573235534846157701644644968641276402636177717637764447451844185819989969848809475106510760212502262271857623600668711814900854761526579507746362368038040723104354945343487720922401172965319889291784040911095997190759407878540636253406318672270124437904227831298281263901104209179441996899157283231594075441185266514953944161466644993660041392761005661984043011546877140168069926115528447679662697037988449470230470014731976747439871756194809202683170356220596214820700417622118394070555506983104306259065222166897199072849264791046252780677919930034019073423531795430770638412780353061231481617945099412001912425766024930803211924323253846783385234298216514909774248571104853249224045941730540246036887712222680272959161092800661599661617076543999759356850190960590630202166321635664455218268410716876815308078336192804493570795639539533311158350655327389101739067898517400678627995524417178732979138343414370731923012283868579221134485748155180053620111161367573085421518879559383278176544670115709988378036388147839969113417155445676100284403006834056849072369910936179392614817458978895582380384206097653585237614508268154875386451088330958369081038817445545037762373000495560366191648754983570389144229448465072162965222973687284232716086421461504765555883351899747604435916946245382035770994454170242946453175566056945115696569641956181003125227418661883548687870993471098044214375390159312266205557916610814663704688712002589395289634043223921400564403870838628767329346384651835623648584809962458979256413702686760047752527832733979273393425268108641997670265016446292244962504707503736133692843940286227720267083961606241845397491236798279756740924147740278837083259348501936134904621707272040516719798317682799542062274877262962591630680329793730948194222857279244862322283693816402315937284937180025284737002144043187557508460565804177292008248990973026846290823905410619923050551555785635738534755041457087235126841375191039635793564656789887246226092497785361730869699200996419194302599130592306915242340190194453052011188133206813142129716054898492342320922361746310819342556391528694722002375743414119057756297605420081957212865888519930279422058900321702672572723854095770453949834350942273683999581821675810484852213875090001049594318919938087940280820120366659199347441212435389863030139575336183731400344494751231332071234684294215773488705367956138326132269613016562791565333372628932738893163542371710690295168293417512044190168851946204650749519991503105556700348341074451032749097818196814721794183226325970909679765206900115737644534040042279837839108872473246739816738876729885664274461098528065124789850527808237204215050009430497210481585489117201803580758182321114300483549026927462600944150488867559960405101688081312565275058677498544825006366234744365292457200346474814380574448415353820909283546940790066902514193758839050395566769214838552332536047958684011411324201883673544430882423755675278585082308833322781428685680590389760478334366936184073258941366350599226992374763174785710298369584795131238136654388917182309863911161538557376960983238648007411131699849904902767638952153509270827683755422662306554149346265488076806881390939172763849518540131405638577115465376909570282762635916647042162759330442809643771366836058376305906026053932762360867609056410842667308036650715777457650211430654920834204223546177596299482600581479360508660574516138456875597590534099897984538912445610966751368681679212996645822032928967274056900220452645810279776245987964660197048775061493356379932463694655074849459959777659824474268201329091103383562081490983922844897583934623650058517510809926333797281642558452349839834556236302750415552183074310735172009692642339300998560298117877392116648826518499752833446980965551599691938943886228686159239313512488871117808285081939723912824171557892443554391019629411541153013138155106688164205757710657137998393870133490314287022173516822229640127280516982433543587152096557333335331862729719137427740612717769022539874122412551163208895778610635820306996334531539651448982380760625249207054102755074550941140725713938951966893092238546925520968801275848851670810416229305899925979038092991165978068278245663750206811109560427003437366534928239529660363686802308431102268984712532456689088130318541533179095695277338059764986842116743207983344854116241220376417963462833744867504585298124342961869556613629671887127367678752284964589390585235719774275784258190753838414990655792714504770035117774748655029538758049185798241848682194411120527310731124556444598765959666239575220997282848957245912208579208129069088263234115764518333320407123116445747710828327788019700796570531750110033396189037039622703544770091393697151716781801689650938269045428324221148012075377890096135157042293006301899263147384485470895223922314880306435008525494564595603005807157674978800332920072621590500710122114327597546193748370199893703295904884149595220006532127080510200399117143273764133728137252923243944565756154250672234024392536237318706622460371392549967718517235650641709057738898705299974048309570033413957906767369509535379763860497188065297859318747696422067291637576447453312108780474615292596853625197631668533131665233639265511689235307531646352695952874813663443034207452641943719674837120169332838929258605032994784737499157199465618044672585969676816919990709022249823393674558445174542488118481597130367409507283182502685427856327515761840138676301390681589539075512262983757105971273273863291465629872829600726874948293073312120992807958670414774422515498662323602926139533072329950773785565606375791802810378468235704277233458556643156967036841805210623910541779841162607143845467710571598714508619956807045318016783041894612490633160469057569123298894607966081268573671369294607911729960067675116218762285214437388804475851089748830057542739730816136189918178079146049510923814682881574287487866590510476674890324178908491474434527555211529938012770842054808795917505901872510967799547540043578774620231038794843832555700260992206268995828673885426847407324151886530774683927483432377853528720395420885464230690792309315727119336211931266615400622590529185733104698884852223414123054319186266605951462212085200126013141826809923404667841603605960792978410393524266124977338604059869916051221534664245634552456667143077362279009428004799132978034925992413592149873724857719150426326515017657201492689519801053684377757351280520664923979513423881354938007788070526201551736877724506225466014943820320888623186801741279901280102429409530308480818833814954098891488856839193269208412876292841110592143176616619904911536912176532378426713628032313626416752404239986610048079009108073637641631060995749155770084224066502169182687246122802124575213573861228648500601697376487415158255824868537676218757894690343379365992741980771389592025813580566089463674958879084607962852524823495682699596648304816063851659088861823243188064319606749381991737234632889737625609775728437322530037878928177128615757884128349462711749628171783367651326243319044674111743911817611660815374874675247065043249028729859044589199949038728342272831583518459353617852118983480188331410556362465191150020733523989437272896652945548875325493968594825194428116024267840045946229696590062586775018518992468649869120637332322313370478019487576736184222685935649209316070080004338205040727781680338585269558235401317793584097561661805864222045946183653833618682566278368237642784721069351662219944430142704656805279477093026975922403874857379698147331176393470503476707142619239847740812218953483783003207217309473810460551241613393005425737733170669739588892546017974077321844457834212159377772322061875077939399409992455683722801284254394549666457738796693266927084634161367609978171599758415596596241634450626268842348450235654207157394337371102953612288740196909108954940862754430569095235133537511109524135086776043740888847985178728578905848579381361388607862028610038939240511720942115781146044636792427033001824774470057831186541978827138044950545597426198598077495243291042716389812754289035617935466365335022966701525769195469779962020424343660302933836511163651888995139406410827034028315117424067696257209477029291121372844185531217095183575640511593828654185589144528264694041281437925545050305630592366992120945666499135179752196535843957606133346185039352183721526566164448736743317591931706587542972744094242524112273914915789273893320011165267560303876456220903876333592141579184673682111496430722817584213587013258747018227787905101147682016575795562649055052557228465394895047435122992327176341972357659317345402872220192582682237219033181935971541984437519954758353302085661052050542616520962263048242290112034161486693032216782653357573451458139599214261510920983312910356860792714766056998411496503762079946299773255397765698086934033438390899407113100483164367375604762197872429484462709325985867610443762695501705900292521891035452178804309434931170159079708125011022146129036847324871528913574799322698206268792370799142833914918179390232582019366356402804643696699963010215564603707534080387767765682666317531118890904982901918557515715462867085595016086072905396720065281366265129135063466316895816444881339872993777900994869274918503822253779527609447750084152729697125130255590528901341231470474334840485230853915511783237438870671310801952190282134327110403225461521020994888996877918643217700406639877609043096984378255550407422270100666888816958823341501880389678985910357789439225417584786541936671909614521479985204357744431754421846442917442091666281954199779015950442885462266158058755628080792447857052075705401102440907540200593610851772998050708170641057210238435357860334953967074285694354598611413763466450422115030739082144749301863922472000147690101462857427367854852419958969379308425068628885600857909861761703128787314075668856094685610811044120278679414696506542709889383572772380670584476635188922468572525516431365776145382235915453755280760518124857513909079000555525467067585640836431875743533938088378280761085070433669707924717486861167679028660102640765903587835615179887082986154076369073110977405596715449865659510715824911607935414570224676089899894987846615411659867448061259555157428786691347904758583478952825957333890706029275419057777258137584381939064761454840893083411172859697555527875164109131513302884033881581480898990814141372109907632627186581118699174448888322467117464882451481913387076715009988491152214286424790041526940386941757136918848550131577635519686417374792369457332747987591433702952309453456579130549153100007210778916030490035967377324322822830589337051040826031067378729356615824910651148344280334589564914795034093984455626755536582879895103639731342383257755489966227924178077256514210983387743988171178827146522992613133639749701895065259626557036204906374440423202600910503765774831162583166325637153199237976105526908156739739831375589114755072326778081947970651720231920106796206926525619207516196065267294683139694165508189503287940223646444684747905348308510625100558704599332376140830454400535331162494477433209269094800839163404293379417911419101917699260211457178966762403909345527016468758688280523045984271230671588795618978014400754750764602887897853858441250403443638964554341052772357734022102313282006792447262941700511620764722487629745021195276227939359054164518485235155451731593301328335735159309962352340189758668195325644500560583569200683437540703228677699064193146980678809678698449241647053362738857195830521539083655994910705398573904140869247568896031413391305941328754391027269548090716427798851190454415952228662990937058365996251849051147024151388381583602514918652032086691717675844222758016124614122870227820117634025640653795730363862321672441300002956247999396364949367948699769837731953570178370346720638581904213164440132314272945235584242278760021474490021711055257359655772594670019660969446527500461885607929702719396906761012253935626864968500557208989346380229208923623580430156579685054554565382493782241341399944264565260629592844018694384817227136489780069147642835170788599989082378235928231814835032037154229834025132751237136297720087854577556218033283277660624760504903132750117639459064973623637143919548731018663307259044948168112184140788555596328095610823390094021274580787617611568088781116141528962920674710390521996238746165268994277279792836386635737844720255205136794921764454659885351878048258137196001752833606770189998358840295402067392908947490648733959160889848271455009059893928886464882620177615228967927011309063324807401470301129010138431627515942102941494255109063127578940985717129791713531685811836015288670194779785678025235310680802111862423942427497925813225238340870536672207864591208345607605751797647674399651035329323672943849673397236972123659969394662576250883758596225514258337939110440692090043032861392954215081382942564265972262689849167613166641950741463539269483530306830603849379301422934739697600264968170352179564108881637098989772809599886612702913464994662228043303077359264786201341229792001820770247800381178601568705819622929661383609620388993004804740108682023939129945783315966715446972315334039886255476209059866103382900133433183080440269889855459940471016724906081679601628779896569651441770217939316816260265745945047361816913247827320022374481214913771789755027248605154331002326991354237473235048339131974880043040581099190939809661176888370032774686978411950864948844397889568703094253794762740648242321044071823156978306736580197604241439625674664404114245963622014540886417940382126211069249240300088990498522329869814953726512901396060632600520714996635486699702147862017614311869163850607437626359629009865304943537960589494943825032842323524567284298636317577459385058124054667384341462863183084476612879236091182222824515422398758511391673978057786732341355887513485278482584631581248649955408743099878390346358675222441157744244030079961913410177753028512814777807397651292534690249122958009816658401008610482835433628717952828176281469979244988715888149321778257604428082738604529833621429641359364077168258179328272022547600987681111346690691658035828557568413943576602643455079325578337461836891486966963954194803663825034937706993588341377095050887972104002079512616503897695939440362447215278013513878284898113838509745532661431481057812254191663572608026688745428198070480600633423055340861798177341038738317121303602430419925357740601382354245993727309885725823671698677396229427941361948147232762703059397886040913636259237560254980325213316701177614502859020456437673569134432666156181991738606027251088857437965743437926148850807213844846932286780543524135215880322181566471734353778824882028492354387667342798543208913549279425517514091738308260018563949748181977309447256472996112610088277384800133473290901844949633777164798858105266263101863271495208881492862602838926444170691196767866669198903859314682542554194955459835487887288516933733946142909337138446352787507471764151032482324816779772231178606536704326191739009229499614487944766927427490319326542097618963564337816461442749969588574472752110003689666961541112143071908840173594807660492463602065975894188687693497635411820363330489603497569849245890087899628053758807730769922395279490962079196470001751623048889912462053274582306093526197660565045742780649004747977329273464115973358167543020363993303582073497530407758505637976579412037804772094963687778267302634720796010308455209756271880607290033847556933846807370624681669683209656489223285305947119029652207524669514267567409148684438052817548219215455866335758307665270925557972737551335101760265754259417146531595961308614393224764112627332035031937353637785595986905501990143201486785792125038652198879704901452432204720196640374689713129316480792849994813993544695420926465683777490876031260389433734263588675703829242339582588186960329745034722341334624301113602547897930141246323632354662179168554442852019474975854524908776170729157663282693390921731115072080078511722482415500016116856356321915354133419243381534572651612077360777372349798636641809627942972256677514958961723965467159949268666856293398170926739364073590578762383556541458448593714766750225801636348471386668920693963579666742461304985491037242009544125905148628507571106579167351734577314812868456554259867575805956923562660947429318745051378553559691468666030552952514077627613663111298963084572372224973605315152920775703665378589300918131795092189627852014933913703789487789326841694129792013498820092850158966891390884605190550404229166152968976389895538332697156984529859562387568927885063208640296867899705419497557939753401047614485531553779988652182879623617996448046010894850143032388392477843230575250150729288094165954936699708371470389843583672412787093119820426462588890315608491636878019155039382835062300521239691832355493149283815853057162020303916156766827266403355775655165122167405134986351724787514038476844726630467981536061397074133456705298999629932310037880526500789048942640229197423134746285235018893571064164230187355260977621885312325039821354290641521487871337498418387908741460430843605015802576969908059856405440821547052121693576346412688832377794309570893189872369574556439806675090461356207390573427268744636314155300311322826286091724637567988582038404866101743935605951836370393012768731728534547894903441457433402175701632444794950850157775868362247894826766583296952822515597650406590717552942595828017322023811981943042197794161202893799655788925015875444748304707562537165332669615047075511250676050652994245751471706289483129443013513600934156454409437272993986486418244086807535151575583241873438646771380572318736030162832182151782599608481985685909247997790106501458915068818739091507372072334765935423653209724796713995453714976441189089713704207768390233712924253074283922531024252976617662924000649213964853824255020381861772848099221736337693755295539002644903659017305116564558122822524371777006554333411648554222474858991894940334539594301772047259580674547651353083147876547567144964866750547674958076423806463613213373440829217336201671976742211187498148776932121353878673337595795489614834306782134965004097179957154094028326637488291462583648187055387941703737369357062433739844543023853053203220901573284256957553795644906658572043789541271525928362017041147322296749409636103919218834201196753807740983165148556219286111607342096228300634440823154081783833541750929876238275120981301310169694404193149412897877949403703732719272642509157650505772305602399188761795477065449990271099079074556781327309953435248702751178337530153011546622370769670053367167047347639757392156977693664149481444865030909772561262129637550643753685403519481622711708966051228451688963929916199409196536848302789947326916671697390391025396776125580328235545377115633464930417114629443575872786456862151392551173713036220342146498238748817256814411375807715810304279122702783697759553053407698897791846054442272482858343899452635683712579546028437298781295291460847424898611680159216341163142713226110048849774648596829576697631253333748451275742507744172045668847734513360660412053475226750020423434753012343355065852234965306592897460447843733458262632123090649367755361177156820274894020676895274297642609476798298845843617776053262757936507719475714474414327653574290426471205713045557993010496123988237244915080211211975815476069049654423539325705200482903565578034157463705656164274322614728351547263531909893252204665732402254887194644131050350628633917980205374553483062190250069292113537317453464950612294651147320595175591280435250514392133565022735786035246912413905094227641555476608848025090909581661482855858295545228557063420316547224900123887425982193594162478186851838308626607513323420633411666006989137031132175644299619031697146061795530925666222315478901360442473964719971950391546628944628120949495741227444457261483689874695392155578614429134375103138639378165702139080555241963340378087709652934479143310213597684861626597495318626626108858137591754197824742658056549931245801121699751967119080008164873581298618650971934600530753617567562114496478561269806265040690031278307134249753125560903561921091332636421780796154482402696787293545346670022090872020265716445753590872322157731051327568561188394298942162588323765522267173365955026660148745408751320944733030259757434517531081050640224260888427835801632949319721779383912356069413260332425868861582427420554133866259453543513111394249232872914699770547160288484869856380169402038533961072462661533872471495787763061756539429068363663398057116027807034803920766771853962110964370220367266354568607837083555442116605523602805318969228478943708833482515042934233704786695403382299053264937747282628900079693638359822373819510738722783517348023545615476389513524844954913777304627311168709247627977094391227730826994670642802162407798474918306364094596499201355118000647718222480621710066994496916204134565531114418447027162293413335111397720434467083190046536027270507045509900113104546050116878149366679990507079990998893328975270854803335745428393630590857287326796020638388112110071810754404162558244498668648652545911387582775136271035909010143397912757132487443295940737695080082397991553595100714901689939967447673234519203900269786784312799004585796244791868142243431684620883209295249476167419298630924549926647624887518149918610917301919314413594780028711197392089891526952838222084765760255982337921353533757936859097602935449677238089541814788053250473794646739954570392068416928693753128412528555962390870586301973549227211595957657310777817208315697469550232045451408561129024889839096753240441866690769413415327314818227914764732704481867361678402234347313140939865001053106049619058034338717210058861295066845936806189847447288412003080442519516547849184435839692069236591284270387227303305043049868147599952414521747689175155729331687574115025074848258237405926794794481104682708261520903916268599761146679418330376862139418226802069543334664610897998551530862515385972858077801713180869796329270388955200964492877342561511723151164991716449781766745781802607176201296565963364863296777596718053085893698006173325399456370613884761512784191036658611099584946228667417413616917157110319993463287727511145645558607723767576343535001354228144536600991440299301900298685174109189762225891609343119043002363326066595078188930977782110525972434113644272530547171906334472925678109688846302641125678216103202168007091699132066112796931260133092939627816202898275290669422311632867138777129344891289460813309308719776586387172357577203389001541757608462067655965066391582612022200815595504353557998983266988866024755249682823018507270688296897661479093983189571135747069371072011991668818032572555211904240501169074000878334666506027912419212416269777609403224768177369538963368056968856348586014865929583575990082967774232429305231143339544765549114595929590229210576056746944113663525435441362766264183706956243775275923908712868662585900133892835217431315256919505898293938311508430977705893034792761992337790928506227946162613793905751800818979810246072953709678393948220401560803115377506674732100117253245784715414035676307231892717551049057974437995692632894798617073023636923603019320812647476529567301492768120434521011530440932019219377079317645280174783891727621679630139894698932138145977409255509805541533003056027631191134787852572888772963001219991670862493434915979921332020234922061720319256580952853560709866743933414890031259157352952207755772655864494068870842156627308264409754302853771504293721021112590969470399487314031106369672246826831601499915881214050146811289928277463646130537405906453884677623983996443087536746413349728695891135748578336641880158092017131006206311431000078931133368706177604147193810555795150556091342958745233982442676390987778172995122697695239618378530058340449012436930358275341936037744813996147211578534269462075208182520668313646615044817211542671753314748523849447622855205726225810571829352542463899340138741473730871423390403847067220605672958194242678676645666108877374702282593049778087893237094689079132597982038547408699224778672708237410524987161017634636775572007462379371719108862323935538386173605668322604845510042513544018640320214977412384480820823044703762955236314143474351752285478658641247841269141197226396605423410839900719803242838454420775135849664387852613088639316298497372767786074417729176294558834451809042974096383916997873919131681677837752139399534192417476095779178207910142757629787531285055986481070243215929850215588515965353880463319316240192268308776452120715497534093182327043397983870066172851169900731733500213730302325096867943083389612049692769384125323695750914195547444972712350227218134668273153101899406679499076725736331258796397107166975551399597732994873390075731729104268302876873085721395223337098698831883587270715701789510643746227185589752824320116086953610976355362414853875283149874150692334244411187322528524536835087408909831927695373785434508461263571776800545991263691000744555692553543424851216655232890619594114396216315041465088263690401509825186921843211570517741319582511588872976924805852503648533432938003734873716198803514978162333721114746244789575902166223856773022704162586320376181154198456720965105030693507180808335060992808094232653790892716565994697294013545808429678217549850637846759056894036203986354524352109994627691230671345945289098971566996476088253369372941326014127701614357660546606705634976093352185591939897287231939988300303912862431172586805197883213477003477134619213895356752365025677289084130820441318598952035515951716231195450934268910541080899479441398468041207421322457133356835049459927918405967578784901846016531058658215466908448940266868162179751036905600214101772307312899495910710014643839525217675920551419475898358604741188872798216081888749574837980691941220383705252355758669382589425433110435837458853932779950001811584762437240655490136236589931329393091360756328004288124344251456312393528213372939992752245285066214527096367121401982112812104426915659072821259714293434924660722865155312039881618288615544513447762908990071572949704169387435006708178019227054184322268864911111717039194232152934930782158803761770250261270191766566194691231196178216218202549376328727982266788546010019271988357436911357085653960033233832952512838147441208862858571279759767199843813832124488048387817587751213681290473817833878516747065561218654862215129913894503235902388240590558794771860166313687387105718397754828175776463577749256373436695989828079801262308503799558068929936836972731336679788683870518334828408858065604595945179738450265185803925169432419984672896539240178813771594914663546922293435835246810837551637175619545417767101826978302119188847258563912796911327552758505563588888742662826132334392546792723742829404310442463166307874662582378193115837392924911524719733117473826631326588865652701841195461608179911223452245627370272480463529388322035206058716693619780460165803767603573072082107109511363057063268718620931032017630172207528278452172610558096232478312019481337767687884662474859522317898067125746433416217580780599728431639362745359880266418612765642660201498757039364308979238038195845569948451053670018549903300845393946473427890081013416086341908423899571086220730280700629123948482007554811477297983731842627235316170144652175496510694136770870787013978064062992480372371569021375672352844314946403134664865693060637225502001571044367285075372666440916582383187040590920188436777131530529420069272265540661442067696032037721723066830953788489807882523947983833121245499673394099132764038183436331355412514350945139876549087638480382464443221162485557378906008477018950573603035839026685439087769875829366428613934840122406188960626460684440743556115543339465699865585882782715322247338350259506834438745753458189368799135169377340050747132596449163757925443235861552948268116192215184626431319869010046809021118193110730829327356491891608550887051090862333937971597334637764836739178420457657721875983746039764727482129474139756727138454635606356361132250825523726607987607128602402990093333014959434295366562362619722475432800715812885488847812497249490373825413001534509224253027423342152863148500495131985583623393352522665547210113767060093384063680426470841176861523208610383249991647590932024478408228848429258745564743308252999619994688938385840927347655344446180633726225193577581664315054168127569173781165540025346027221739118104486896972633508762609944479015557474570999874319954698515700533049964398855686865287540816047029223877803182270953749005070158269725810937063031583163194368264973841415412253503251767718888369155260664351183792493131259462950486757347551301328035241610205908494352084814387607849638304433863288362355312564121394215929168379622662934572527848040842414797445551498282108074094433094774873791157124674297397643727545571691806953419418739648353229577149793371519883972959242665976102770367832742161131248615352933327762999226593119195174147187210939165865779511944799627676827179662480639574656028898318883639780279600701201170275238171239255246669307795212013249802023560501954403011051587532604699893590928284827793935749263714016443590833983986196618864294650532818368471640749533933340517949731223260891966366774225171741638951623387181948098338964443466310736029275677752616911928770119143862033759963362798118268304356614416540566885432429890313525179102598090445519938679716607578903928127584346878440361125317609123591369879312554736692038170588080240512458647729544486703713301359679586567449222596969514300484950508623064622363652324667073557916641547742891323960121944602064923466824975417125999137903125238095001766471768823502314866466113896749501185689364842606828081667130896301990159529651536358767685972802439342792687427210765014767063150061542142728909361071550823570801016917016545544645176870138374875693920137056038217940506442669253109351866785004201264176811300432507532330848559063682704742041441989928263656406782395369276728167955753152558085487021941863304547961693359375379491330246935742006523106519047042612161442819992164514242617942036979499787185498871062369893394495568492717321597616666870220745908322340983721126561831787315833247732931896509046410353226142123884965644213991058386531106539693112171467470964486354384886072516132574113825007520173435006582727566847527791015263200927226698490013785681196880755049276732420613934959396162751212053460757914018546351754514210202511740315690337442956274726682060194959527553415325344813085907678300192130212580600501824012155320932450695981235953133635147726049844917119435529879121916189140178158096473259826890415331131411092673017829181385171466895143955435637133947885207880417668262168446401679956093943879784510079539684627634486021590676408441407950376052874580643604163057394711611092648359686830797602205355734698026874743681716674039579008873833400808173708273143903452100121030800241683749985114330679087551478647515994711193920565217604832414670789850551554863155208496465063322294130914546437562289701796387067041094390185283995335256285440354675943291613523286983832009681441327007016274975979722894943078356781811535100578731080400406869805893930395211285914004557692509671104325665716436436184734042430583181857787323735573956482193410676906045877016549591430823794753072306197652096087092544786338106523660719424938800873891825109531845993668039488028248975798671860550848320228297182548765265155588476376241985909679813660850982478151731015851878382923802909901167657664675214905185517591578298405199784994323038408669644343805259298474599997868117790226252372464851265863565041416070089485305183046608377647218436760156297740597352919828849903355765169123973498490650640069096827614049416790685076930457593337050871429033157544172177362757732271280323802931417146673558069939164141637962716705344313051802000838349676822628420316413210998736563979946987893681847704154943454544509962578945623267157496180669825425362624270177781182085533789351145253334915141877929298143458149714902133307177729772399522178832719941930258822222790090931828052010046577539984483274684291407132291360676026307341904957593810733518123800829837986473657226582649502769954787918287437316904479518749139954961199424095961665782421425776416395681198212670017811198605036802940182697904045316394557285061511561783677222505311181750403853562490369881236475521679564121148717204554913028531132619638192717346246119009951938562103262127208840119070061980455713824100367256745084298495311911283585093493801475301533309080570989806799112287794149166594411446657255371978994899988611955444633215872230254246576984138366976886462266666874964995096394069282295779922691063968895539046378626273827852403725699515275077025812200749980017974514540217807425065846027844287757903697865598106785345145165904451954800712488134440516709036282328007441457712956359004880088518436779716643929386929021963462481507323400623468915288940326639395917074793856112436643191454612722736963313250148732685914291521071746299801472611163422857128360387452402765260199859811947718127474223099906284526457586646434000373409464270557957300394903207382452001132196892238916276181873433841015127196539368868962986024996513941498310337893025342748988265628059038363613955851121051817166246411494818138194293760041672455238806541095344702528780660999566199669542265231402455669691680012376754955535479187649371761059645288461496479421838544186105076050919664632195407971188328219127727080587612258292583739558211876637519909739751507224860852422595003310902998252762798638275441619440073819953947823089379079257219672819666453608644229475724715764566623111515176347337950711257680014337469791286758621425276783856378859413146943555731365695821999727222405617301531977890589692001311582741382576446056394123966716075349922404832290482409855335037121851974400670270820410630684315197211126814785162146163489031370697445292236071361717528713680837980645018819378125506003525444450995565087985442074640603523742217813610255436396085574027603015158390877956890655758750937178872857088760219811184631308220557817280779906379030543852562119916167138492667654717412228346916848177404749756190994251334479723472513316034429505043050216412190885894520404642841708121924013650491828301151371091343798036524263079701838870278669574342023507763292694371209559955759757369680396620258063301163260909754612660707387849718773039269401486415549749605613318547926172831958146106419350482134911267800923445422979670774562350271790122774257063728775244413086154740467004961885146502058167017833357767626075832603851311706473583032345095525754700809234680176379790824826449035586077848193629789461528675671225980951014398704674904027530239409382156166870653588630980581618730052676953981288878319655106221759638310549335042361150725563496086442191142431505469054198903138957172619277791731905114678194602471788238649574351451145286423162396081957472007643447949722501796491285038091328195681222009361006430248010068767964257762812229114113460086465890068135865990988567437688514365597132241555798042967860999692161733911015927670156697990677989980029112227071387154583783245451369346345409328801679305829161149145274446680502182173873889346269001744680579524753496124255971588911406730433147362169389606176936568127334661150912635910645952281172888110064346567292622943230249665282991126337939150542382072809731945911068675734536294498677772404390374634080339000606904669783383799861891094995402553079343823801813095871683150372316765738540005183281174412293085136109492932552312200202701077896376818716413669087991831183862380942319790277203815631743754939878333402218620440710251587946425798084120933427914017773622146556250953934590949924134304984262293313563002854932979220200988666181401195815605092386286187110160256261876171726171951951762077084125204821302092717666997108538803570192618524103855367041111826041273514041063081292117140887410572146816592195212588079440318168762075458981014019203980886295769050979809695759855585876975733222956387225835839080078114824311382931488740627780556400370002134912097814528348503576654775365475237112842543323584233003314323919584979416710878079279967025713846336232990959194338507895638476782884178176381024806130571792181319506411453402906374507598771894331189617058433778306917689865068409077585864962680588694348825708738283448024078222226516990398733723413385881516409887601997686180066152700484815503345621253805594794288847305206150741853441162364025578071294128748339701890465078971558178523659169742317652079843651504461060798711585965326757074643187201479427401342541687893706385721292975792777710266158452963908029251575745703210103711669625547590947021797544739970172303027238897373206196066578836981911082727110041466986273496113870494689395295546780909501132070839355712541449901710206958266549754727525216113100232743873581413341567398985181636332846112863534493473275289232774684470358129886748456714529580266090876299413550570370856505215271280451472616838090221766887517653435123354496365706469092411768186816130226378358723899556001391709252129426431528030762334635946682979528584938292586359272749473586634391402059153217374834693763076308480137752685106083522055925658856865439692364529959907829716846081622378939303850503059995670500308512458119238713643737813292758673569785709918490779410795735991222463330909853157103990402529235186913216570873614020443186685005895088772108063214010267984561367092955932339616519906870548242281376676242547867928866776454667822289780597395373242062242936601628389531286708686619810058693966735776537236651602199879834573603167643557166520107239958895231442126082079134276657158298262648879845167178708410070642111462708672514968360574628333040879018896552830277662356994881245713409161685193248995895714982381421195305818098903829250157273804381657719381048151950371131576934121777678589553505403315271909827465129252772309229640779365014592570191895303475501432073564355172737064609189997962050833741844890628043581525842178614530340478422484931462637534714096080838819144491642810798934084764609440607155755941328165610281469185498886783019847424263336465772067343562046666119068448922040792309157127652450989998596636858407168430083734439769213942391319453330425509176718597359245893405552349764130689007515888358328175556846915759659552167629036632212008359186115760468822269620434867208807699725562489551447124284886798311675806713235852340938146020878652586923226738621227960525330155649407033640723399061429098308602290320264248083325517681537914385503494989698086729671311142361792937927645812256677150733905790412942316761354138333357603944066449592191980797093277297354571029228683101651117208988115976813150302385788101104029949123617325322914103883507650976124967932645044554707333059205877025973241415987632335741631448433632557996935508425479634151416133507191813777643544435915068142749652980719371087283972171930718943057922573277883993503734484402980767658802956663679452787822262471429393674285758397232790321482998582658120106197408066772098835688793170556986368267288347270400823324130572341429427023440300823095932154928304939114520300937117270519752044213158654799933759916632208930501448338488469229072395678484906535450932722114267974032404875685223687234661023083509696914527382166029092435946738009062384768700935297733955130334689669533085224558775541210941452305266533766796322358909623829866206581644936828343568049892827196540721538999064104676329178438926593359293045597401919959098421541481173808173798930407540220233749861916641055287093912720366741749253274159740346212025300915785301513222226849927262759157056144373356207059599416773614373382070292538415050801320515493544983786634487822380225666725697686845680615293163365613792407483733484230019653170409461596907907100466242182826923449993540589344454010511451651303429482596591007227245504410497193511311688909511287085970971527518613717444524271086144020742402727548104660808181245866115538648518634105854384411182781567269511530380037076273215372128950762004656728526407413289452583488243041199443996273682620133570871981743788308318960906873759281365359182643904582242995697801903548140175722485986948222188571533303079823612750267851919952598786985817757331477693192695656494218136872963697536136091969972115009637934846636330760430320207394025856247430198296780642843870257081234395307771554375801011754635024407187012133824157964298358507861014865824197183632038734821101441577510745754351452050824148180070889205967098850515649445471993759257849979337238046145299434788771451785120375534209486988184400085068954181627263469248491416275059739960098701903669660407404933929559340527577431322434756213455888266854800556205414642434833863974071374038962513247268820457405257070703417348295434084743786704375952868867113721922358921548639260001991142726109956291320363146677851434364425048395750747744072605537587016431821366961225711646581438171922482090215757518894264577978330411367398943648711520370450902959225872017150138181821971637669146507751803604408187158156224953594805067093479915949381658940364894434896293144280663660869780707949762643033477115043143483648124518146822328817089474114142976525403814529284358414297249435975238918593976575018789094528362839426457127535611097508011517888852579216443467126182386124725248522947379186183696301472598389889385866518362167128461539059652078638194141130695636061537770951025471644967507563096674101036714054539216695662019414292191371816633335704873295846498748692344240182429413078959624938089072416583218030998492328927971201618916580247459747145223606030787659084536773142229219789402621880497652218996559349270680974793687275696074800609036242441351558786628871180346607877699961892956817665983469833394618896898353653065453546510320126284509400096819514100067674149082951714283008630466600522325059516013876883684243127739629713409131295085566241904100934659067618001318946371167956012026462639990258111500661260620348041327563452874836842270088544717023334253418420928156432199040433569862619878457441637754821776433935928746403344060731055874808883607104091227110079681860828760821251370342740970542178308706091696312047743541652668665213212562058015204325392133625587468175919212393772394078378990974682261723558681951231396182534360519073563812195825590821529043420354513258909768794797266802961981532261041658995866579622857174463199825872218949294990528291481786538660529826502303097985966323138085892731091324377885049603481991565298434027577625120190301812107371231648720424966891375980355705627146357439685199377051118136870382488497422830252548839453701102485331426981603198158014860089425160423626540408557421378255731756600332032114437992610097112551561596574132144095101329994550111248700169731882107165426176941057566559213388645356349885019542963694905055890805852581228030635003107160216790275106698503871135284643404211390810433895707030277476032467530054908272527550148208083346199503768882790882290592873942506866664800615596592472601610844566011691952929881887637888759534344310050485750309486542372205377589813303221899572994339888623592360904362991620813311553400343767291970142349880752702473326304360823445147255740851515840652782304905428230048384881615806635185115995653072019189710543846709809042377697330890689274586170601984076433908861066433915621585263802593300836595320633262896126428904235004435790338317665916287052864522490956694702254740422435921882999999521399373737537539337435663017893283749627462607893504615112476484515514475635285742556344929940932531841151373723372291769989155177438200895124841988115651980391320574897719062157562361311340720462010903555736198632585566739108936975267823206253533365052880766388649493523435836166936147645753185036049313407422478945494162883366228942557505587415917242908326830277935820715680350987943557467617865186680836990677328842591819315846608133372179497722944495716636043831414408588616330019886567093255451395342870286559699558904875475631760927291350502467836056435457909041450255418483310251795645598471529920450659205801476282545230843080337171834048636943894918183952657383205358509421495253870774173921602948563154586061084328170680029366209417101557785005597323047179034471790544669457899601379293395306583006734939207354948670653566956189207915786416382925288503338337157005859767252705879576719833133400099920193017998903601437772026589983166400382397796332832128947782036491613011720307413150417351415407995368526005022303804196595502756792275712677133470109712619009208905357850209102396164460402064498057084545044336792171426593833886849298880917124834046757247820049645212036999538664336601402913051424136331307352214484515324805218829434860896230135237733325073958397423841629734248121303562251184930727567890937245554053406903368695165283463300369914339060494925412582877055252680310933867497498773865650863753536007915651112463084706963684964535961761573965600455441947498996097946332255448779676498309549254546084864374749280372864214503622312509958110177649034566872409338933105523279463700937400855899283408372026745481411149841590336609299674734351211949355766871700573612476207162045905072233920508441670702987361985355685918972051203435460788986854804017638617924718648605431118773764390526723641833893600081047593473127339900205909888163682219162282592934628351161073717705903913443534445060769512146428271197385176969000733981291326584065402918909077092718605673609414595470954004999799702561521665037950565439464564867344403117315098058431718164579115867762544000414015740343833987135553944087692104795416208483874395908696133600473005835772744872402359313995281131363238860328844169730941292083296457445258584200749888668692973411084855766898330077429212122658255254538923270699651363125448292119933418317989524009289742217153752117708996283033602733997041909834429843795158465010205339872499379893474444744820465121144375580376110125843794968007055357883238866887939301419975988089971908025474215961389480096569379033325721014089422194444392402216270120360019775530467829028554001746764909353070136777640485331984045817684145172914955629691638947505789285738207875086928725251349298854801470331284053229362691074988571523336679631245726286881636442963174106715417188757023148064129606938957199013955594739584908513114517106916282893858495458365942616708701747743892570542332057488810599788510323900789678250338243308123640655021724966707769349762597817791240174356245024947448765597569100072363134942536210633967291039845438143707531066099716432494688576095493456124005283049612849062512313850698986500259890896359417771960873648832500248264775522072086254475769346301360116067448429993082154658998228176127424893881184740883175805637275298966500011714376535643313969861661643895660873459715825878472675301669351054943432534469784108074361791666292999937906841381754752836330984764363101390014053284154792721979482970039950801326819814120880009583666843354413353294131179303361324046558444804643716786269965384050294068138667192867118077038121715995822299854893023920718051558102262256221557937919138799856687100600886615671691525844445824538378277920437309924406374744763026229196388623148840872333846544116237827828476844305413714663894555866937242394101807962858783700915144288119582760597730071085851086717477975685265949949108947633257038885535847213108163917881551716213322163199915111527404664342939683144229972116041720988375065193159848353475060803814100369748294606010732746440857897879562641551891550291985933113839323024557423485852305429946703613366404650428074580013190478696894306546804976549257797763834761286309999132311420211814074543659883176890825331558279239367305837698608995135846507362717129875650418353131169877154365269658298970734800479886039463830208932722672791314177240962058930705182864679555567552970116456029118059260868035673865594970794550806245652938717229477493413465211034542723173131256461275790507692487660042501664385520017331626420082290968191913742729787072562334843568593809140956233934351029544396502342154156493825946229472483823039805810217606789566876673154895291459569109299024268698268521809118076887981788177349091129990098604079760533642148696406184800435802354453367583832546608924563427132928595997074201542513340071505015608295491776649568495943963221197400762726221532119075410230552692759371698660893637585217752175908044790724479014459401114499301111034692853131042377239517425460844387073574339486671382938131641488302856906843470902551296702344909298429646239914722587247472435298570555671387364792681459752525410144604186542558623642433402399106109091919690363286364626292883051738913952457028737962896053191107751439125881143732326796011320196547676031299122565849059269950233176207714011350101382950124115750315076144569588823160101453785944589511407514166949190394221628713629928911161559908371598920708264689178025778702013556443325609848774730416460677579080676051657755579058466627441789821170941333175615899787005823902096269105505642493630622683813153073747935358606932094260534236886629702871570741284171252539859592276897002116082688113707750658619896519525545546563161266918877248881003147319116316857455201277755261159266099979429286626584749607752001282422651049124276416555606150318288624119013892517024359755862713943272951998775876605913374218424449340543940655446096476867395499578957088845968207251221104943728993941511796460573606196177510818482465264374476524669214586653397553902075194272635518203704554719742667595999489998127022196023081396158721628750785866463297087150645492931967242150800469898601425162987108393225500614480551887146320646328459400691432153820559561559593762716221840976439349236543031247448823105205894628023859932118261913885798214962639465899826846387425045472768705301170845096254334440521311306858368512830770170471886118692375370785925264585367171342376812823686818903571668831715236659730023161608225921512925963067971274301102535230839307745068927361866776358983062593990475749411569091655885703409598869006717832470850578366828331610115100189843773259298245765452786003043233454499636376440540971574412483613312475319322053558843606071099336502178194121184512265685512851473604728257808796103015408878899658755864312692103729855812128729629898661701799701978015645492479757888689112990016393339110562150428278606316150297944714285303649390195732896643042089743173942117238962682228599417282786151389644722664064938431621831264927155205897417753887909903470084463667765584627690163789163688892666191537601214180244949813244525368077824440576441857059478075586844944368163501028330156337645640552145498938483677629608489972847737152578913246701658843791578475379383334237939711607787901493087099380913547329530351057874367886951375199837777589181600729772893509195467843976934727084377828679575296317496624956697417665421008696997478932517646130322461919971384985766648121414471210745581053801429712911874262079427352472678078915153161916520019423943619843527398806218617425799374080084176327800629092105886558329094758046747470425043117525411146489639830004283864598129296356405714872650572901502670164969950218960876485135009560324741639863446115190977196072877381787481139055101857878753671699303708032855826006048964885810796752280230028733151385912697541025546479333932132525861911105192834807742288572109675162627357981449603898373552468514145782791918867788869911476518860828779980196555118469565417323940175919759699264292237662160658078427085242565440859408409810800276303127258873284735171174030242972898605106749414084387647705092410074796624256251094114675460411056111161770326867081579977804260670303486592217480446123806704385306938425871217978095891575687489962033405061529265523041490797520602718927264772675324377555202999651478325017505914956707624494650063221889045928912859447077829891007154305426382134059181785638567902353116259444397041703040742356275238888078931398615504711826465201752336106143010672959654485096758943577192516722249963183520485042199178616359527559408644014851594928902837185442417121485911647977955327903814840327416264753598161912193570084007158427354999764310072967213661537321557280337674405408171721981999079306405614016538969573489923446332926460090448608039258060818991491254389747074346714733376168983691074281099626052674545357597402477549253307639565730526574617880938713589412352555206355170563715104456374161372237109325727574422209425624460987249860714794391263127954477674458487783071147928191383973009032629899829113655660289946963784415029848102172158235213342529758132673709903998737302195572330009811649931242634045847443296809282288334298326355207971956534808475705504783275879279849551405838169221230161702759694724718361116910375820614162275363716296350518760516630891182764144646505680859052486980057680401075340392484864161147208647648231722119497571220600575135712508074396681585131848396785075349860360123314817486391853538780869791683312605818985930609841539669646265073220377354666307677246651464373631602547224031486600260498529338696680143215629155938630428693658926466541643568219712068787785923130476471961628056872350119677538237096548469067960612822884605969092638108663334170974513636713000445648034740900349580609991648010599496787144788186343547122221124566695300050179765437149774969848433734939715627687240665400548706923448496492780714429568529028526221799168808076641849080324270801259584309200219097179287243902539485432926055849000038712874745561632183264740978580062563961537575629770340185403388856492882368569302043654975836479430895163155689543885537603013007155281322241162270122380860223987407700753774885396037362745047361887734624384722740563508476493385594827552461412319338491329033080092741876668734572736848582998231836095386000745313321553581654250583407803347081393985704179311492264998850565505083031798087083328744574874443015938425603636690946131089961710617925034822148252755338192672254534422385690707684309153522549197094712213560204415026798115749250228397623973624260679012216900708352323833210045556458166528135804651044296735058179284013130790897409719408646846725479564966114354332111811645872260113006192428520851868967551168283132894391415741264706267709089632104921436253150713267553214989014978283418835606069557249590554695114516382162298063173053511166929350842460343925578439920658198500314283111735043014646525435437295367156560767254505822110535187976832934738165691571037495612258826915756124480587020875891466212979404089727533944469019429815436331737432661177312602092971811124049479406069631952194188294730334976204309170007243097368512955213432224693746888263354904710249114939956619559418894073188262829394217865708298612603981070567884952709105059604238985145049879492206266025258794275062346253483257737773948491624194634658797734253902046376224467983939171739962137835433853983276496644568668032067525225768849289039860513635921856977349410340139853550933520815813195851473630018289127166949265901556705743984720307177468936975219815538347402710547058984144984360199071715053728601219594610762711659928680985109702967381857367359318914337409191524187777553696646599053083203052287761057878115768483712417488113960435851768637002083739567675788430649856178544745001847787855364691804991413111075495896790357165965720400708860933154363883103292380634433062340285605191221707419793234679954142734390101556440481369521036237519388951164665456278872045056979895797132622429934968422290881894355360331688676138102941655552964986631709289817703764368527138272554328974815938163238870907487196225845370747437018962755746886797095391529323011801771941574361530844382907717369642430979383193272123237701316134856760893969191751987578710221323575827560605444032564207976319403514624705483198255946938514731939451694973540727785037154381605863427179547410257222945347617465235112777150856976008254019057823022597819478260570263948885111330727638237585272128147023803078143506727474418575748530532398823197772438470973592833182446569182079371849491748666570797348226493760580057106925747613178942747173662318950315172067891434322539775558661775628083917502931952113744055338481270347283576667044364633771965330659833264102453312506978057204743266061971823468115353054597823605285265663585225182731248941648403512544827490713554496437745560923395237876947373630059783315553721626126584514810130071802120333553485314304593804628471974561616721497486729490358524375103027491396563568899227065704794443090928944820834454443726573634691470621037211758121105438152845840789553090419301019837492473584387787653536851957300068503741895164669297756278927011400659813549836551381228253623006974680296946715238111018718485141504948911154895992930867561705098189207256394596309811459891852909525888859382279323263563870479144684299743650228568065043919308245551756585519621566871891963766846864625024946355523517335234998559929787731409656103630963424896493718422969327650384415099961579159743916682424934642981706354880450574205769672964275957091209420150028816715191972837551035690820591346004080307393500683156748827136843678072592059247431176557288556366846070498090187919054374334909700907131724488490357413116723501133963018097961016238502176563471736780006937923057315159898406119958937403062097879190944749494210269498543948824556470852288911456845793471810834452106588313814995639543175840795079623225963724437256188807575298771601189992463635443137906930965119036365517070261216407556892892947479581611448373523286944874067337696184031087824242902923747973668088242005429635450354390242732140838821235477420820188884542231680587597258241050358903253982460065855444868231296988032748104477056724997641874929236617180934762102164779047760867184419604006576832855603616634711403954632381010992313394743022126796818986560806223916709822563360470577168311349137940183190804807274547306184234280101334846529671416344135523159171105881285089836840083657376183388186113285686572512381768416460856021442213869570089482483773075155612584853862149402645790896989288237194753519635167489054401898709833394268283018389273486819643157519742219512773105701157827277611531878338804162725003040286842930520167466433204917340691367848943129087307490027899282963794470121219119810437536572245506443552621444667532267445563813353956855037218562371847769748927174302961201267463600450133253847557552013721803834316852524986444463774377778516155154963506084011032706685134782007457381524952265106050121332891052130468738020655607345723295008960659729160014087529422268745155722251237206895366958594843726729406581755952699664605458863008267006876762908488289835750214257422401504563116058374555461709603895562995951203478429545798526095056544565192034064294130511189689661366003332741303610992719868319499016159861180182992196723098455753695167000830842585063647110048039594693499261992804556464182290365141297740405907400871750841236236104734583119046199964271418009792914887704117287274455808183574360411796765332741141605579641119501036440954721351179148873359557133260252127965350554250178967818046655620836134277959447977041024317895079828946783198505943897357573088108822503948919603282075356916081704554756320438925186065437503144257632146860748732309466036857802632335473481967119487354363915736288483310181879821078250614679750015434462271719267766344653974003466677148829639174777017388825169040145260214728967339381643145277552121312418105474704046341450815366042839330651820412067987666891366625452706826079074385865191448716766073271025398611454064322539186251609747790966356821229934234897642654597233181266340976782889015665234211131304035804227979251526308215299979315944901460165255808669778914378055941866294069635032874654484468348899970258961857264531590000507540482291850750541374180789929587745010764089159515269913223281417230971284327161883798353669863409101611998195797047628566756090647977146202449684459762610402285828952197418364441717759110003235078570061585369905117869282180257015683484870762316102039625658625870691166589715210041429133387232479496735920492920262601270883268834344796685668479562308341129810658323840059239473811179207963116942948457820862468962460107425685453624963835042133867156165505485792026985339757096015968207380385630149447491095370608334044598073945748400909889308140777950690371468860219872076590757283974521566198243417882167427408313208161545001359006574825526630117814071057177896355737661105982736132759531161455941447878130774477806063556916173156682013382638957533943659847713242473627377457054514218921598895891458314628390862593515643735175820451608337629852066368880436492991043564527049636652730333522651690697405192029592736835646174154865982268711471226838087299123440226436726868410882196190538310572833098838589480061998360573862379650158725143154158873443023687842788087023992899567463365475556073137232202408231066809287376376493175350909022529871471217917171400521526770664852334935155149168566686066913684073026370998196718227145817631596732492454697441402661596307262054359749500381957542813826213022436747426036634522032458511574853059140057736026704300458479580245145079000874960994023919923017245962112596606696284058899484870761307708111000850590537301947766632124510233782287247805926991707948034022198768817061937769237162030648643672341000676326232613818691496383690046910254935294200678222292469885712431582617114453246152467888904688616281751380230852358389237109991694167964734630700686673666622173705167888940668218287230192922526600135515013371142465192401488840268335489903254051099099304314842527238524176447650911368910074104526691652337748960707383070555931246213811820190863566563893887663106400430229793045366668469921212581331798127197318577482649646309954777695497473202940326961109941052604544366408873558620179949875080248356021121495442598494377996460266739247854068106342544849055280198674554022249035014242601428833984331195937287756262331911380724787047284746202328209812641590049096490788287856390858238052454821938494373650436157745777122750438565430587592113183979078889028387612573572443242974231258742906677412300182662842355048918737374657282653704106274882811890913990728548938574447713089552013662501178317783699642858451138821023217535496507175748018195037415964729931479828944138536619043125240145473446531861562888257142462163062965383980949311850542390330623084164900171504245277701624515992037954412069381825583317674682085450687008619841537425490543320683968557698239466397969204160889118276863275677436431297947082814567443963925515035826061530134023876339556518145175803997473858039196805746569672964255835504668477413485901259859302608208156349707653900340178886968601367398832201132804619213793783934654749728521272542549269428781338986421231145799173078751205550930750679052727422981056580914507074290670812820768450191289606458488776875170221975464984599731527796920290096973436081559599996291806045842880295923847167206238977167484890782624970087541010931585021519689048946166482442322561826463609829129391819343579717179860297758491450834195345697605762456814063495810317867457331153402627353236777869082828232903348371987611459138293936648914383646590051192744289503332525430632250021814825027442376856348423062774725155767377547442084001334394926430799298231506647738951995769212738079107475774726151854008325722022219862004857115277057268179344471987875179358582892043550439506080264230160555018473379168556395692653275297367350175131567455158554991685007340714259801693652454311934700490408502471927381724011891568013434426511869113130908916848831301946725128987178825719224780375742668354313955062394437397183320350484528487452880948698081242881661576036408660897071407139286685968002611620272105807378761015195490598871705335835949516800655922303486680919932478191529085997031317343222028805291885850367602561798028997006894791223965430673035427895685494899267541202704661393957413705966389276803410195574750865229528980051345914441797320516662369013021222979660341364008377172143387769568258663824231748186752595275245335568725741933836194886806149500689669740157392866240631326917151789370890985878434550644030240495557385191531313541386671490421560862545930679518023491541109236365213441844097476960324594812268274150839470495401639035929032439729016041611324890903105092410439297947622734550330301772873992909263196330957035133191524145006560125135333120356427665413299521884087030065532654634256467783756814202462889439633603735610793886454025994970476334893563205389881257990037005699221353655646982407685793861342501073741415150540473504483645432109136615813901860856218022970826112108489336494884946372466780072078614977680879306264142736381164735204650933169788436307864187314339747638258117981574229038604858732201771978626183831121094429341449157269748259333238099460699863600194077371276284623457075159650201886794290178450511099462895750260562789639712857600212678967465560978708755106107705030860731648645675745335251353192704382916305953732266274851261016050968961589178196081457611769499620675100033966524568563512224414821011141118893387938631118324919645743543943854259547926544075074176070943154886023802042604578682553370295479687610910526170467835405429353589174394241578837205471228065243314082454654344580430992334570773175714111379266693330145607895747782962465731521159046668892923894975138274138705460849040529703087811613684265367831595444730908477473823353696011535775567425046603250299490326077559114655608958225595072026627091750916370323450088581685947410217427817331025774316403844639682912908340091496859616320398052009287384448884854059754476936479920207269064749239619746735436203197330059180103081519735643617423457994443178502770018169035829349703039685543383492019214767115072143039462950429798718463635741542730714776285007170701781912307854768573360415936534121941828599665808623662552334986929573265093808788555076097367240300393440115450597602551910927230292506610140781680643318788908678856043849344941620323813080357737636726030116911068179809319753288262950514665354021063195113763430179398543442180443009531705167780469907077569730842735904705788469311336510467921870443928068010344010667129010767766477881362675090412369395549947547205207695240599709007196832158604499042178672521386980680528118912985090246372970241045015260652753832898941846927818051455114154577754018109453352255301190792891751714870203840244727457815588806071926977213069412473129482373102012620631115626437133177757315446526781034175823246875733456965438224216996553783906754302944944052670096242013094933875830488764083953203621307083739292447231467973023267870154158341949713428233007472018304928122991395954365621794692045696609477019699739162153126046750602772547583516871965189350459240645517298220916892125707096604666691325773005284740211403600439529804392117783048177929591029497318157534532241332354763248375853958168683432324012744146783478147126225956206828665626033284978303149699109960673845118690803121101906686476757999666363540886796676256809751113104827471755402552128376695411045077513984551743408207223804716639775429056013016809840310781954267819707035537769688682244215344732346897773938400134435017756474746705448833835850251666766508794901118337805229487871715809489385951822058298528854566864539166075626611348474947403775794978636573644449101708133075079995072384009908268716946815911094423367517082729118362338560704218137725910329497236192699291412612331401285880469675319018207416858492600760056672709465441771099020085019531467633610916027723754915503341136916230221570190443478584804536108265869683448524336316290554534213121950081083654349445727571064901754402766922849855445306519846999531353899724260273289337194636207425955769234465037106765783913170472138168799998095912277924620453301205592310708651980854513332119833966261147452304134380445757252222678935089886007702395286786539908305103392582706041682634033534566908534646726552079547657860322222856276877542681259174098050146474870298752683626439467286740114637128124059023277706592325430707501533269573535377466640629617201276720302186537477447940344978124221089891283745278898884615111888684089358545515479923264498631291259720630677988425143721134926675832579516389016021731416825471443485391127586259853041716972059120543604404048889333813081075293736221651383746817479283673545860043439402768501269729412571748494400235726503754730177540392040414230275070336940961017610034203673248455346964935433756818939129536945516911388153613194346499267020156575673993893856117768062885407704727991752215458804209322667026141960993421736247995554148777113510418614819478614648180114270831958053188822539090585603878429562744073027323186122410105310601532530390499817920518376910381643851856808423845003096374825619978514130393768714414972941961768486929036344499423052217165525590582732874530597103573430370730816173512875163334585032167818138461659584745722521658713431895871219092807170845027738752289504536786380089918459397152208050489496846273629200756474470038978893378318853552972325791054590321679506212463701796332922575501476526740707454626235012090000723294513369178573263316643139454834527748440536748526288184648945004127083159246898795987908943396182896499381198705446930767947991910218037555476574448150398653411864028105371193323904818631905778163975829638105322140667064333801430428512068407158343145977555281358940454409013506486983288337709178349610383273440391498384597639876578365112791332336499389254779080071319920947982286904426556714567195706385031542960599690363931450857899675712045983533236451079507973442412815548138280346560151567464905751633852919055277679683930530251337465243475856035267626238820022298760468543188276978823963868470903127982662701863483049054161830002151792798647761226562871589469642384633225932947789621379119253849669431196552868224581514231633972529993801269657696698118946765172220054513875246665760509113858764157146868971201791000161513740770315319597416708053193323010559450444484700590669303291770744347769367766707096340900851613177975667865814948825387107328078159545388013264582932808425909095914904169128920398616851969754896585928049536505859128468567820004636829527357412454446973603998771001608859960095260346991378227901863903486580289436512027437601618487746412059742225744000552300754389554061973994490901161314425708869083507425928669504986591484762790878221918572127759992955368063303507722522888301505683184622537552616531878063079854229436727521854472268161598240935556558614003389607458865303189101717275291140922619924318262356774254102176051320462837938477902622434243112801218374358998646481429890083314214920752942814203770866467962568826242581491031744782037171940026827066772638605451365185231660510368062723294936362687852887688922494985209599176689588276156495926547661095803318400103140248737824655086283213485196291564077591953870295056556972616788791534207271833761748552289741191196031320931663352132324363417367565836724807038559209861978778950846551545320829792853411382217749671859218194843758977254111886733602099841279393808588383682701061015097146636477825701480135800239547614369434578448571452337003193295242380339454820410518228209041465966423096261951718414593009501336298262215172332971019788407922776161801467646598209799837920796667186820967681927721695033779626023483755214717539931358640784643921802201332344015810613360148718312244876093034932221224412064991992978192670567922061392184441147240015844879929359819852897875871571284554948001483571439860204072856055076337760076224058608167009244202915403296250506440817725647297402094563603378451360156658047837795675072722057574362576641524646058580404969684293162183688808405027237009413159306237763711271262813105844609825026000279401105074660619228651233946590641936237836285800570588264305558186886130609668106492688151532801965805573646266412241827534847366318997770041649154579734882340124127469502275656653893641761555842604595008313646987263176900194444154248734478089952970005203979044342811812159964533385434373685584098681235595844987081743768813032878377254562122981820111650767788149310826811094465296660325381715611954384308510476078050166096553769760855958626555620122206392968425185550372458494361828013186301996889879453458192798599288074030716017271404006170028920695782186633822317752113725107274057404615093741359577982624840544087734025676323797008912817708603712068332557320065112462425799880604154227406403883324113987872133244058787154605219027815464826179643924412216170290190936622604634449626482757588892747071432428072645325766811900935760920689766570035490130972131009795137230941669485926711698561209284112069338275144299537917604867316790937260131980388842511840298416744005599442115413218065551213831774727764224596801270031378262062171650232463803506643544045805845282809540192474574380209146636155599696318299557645210365743811097337212009664992143361896868966090892678206511111127058080260865288623975270609544987138093425842497986786047458436900258169145374158852323163756923999909590113495266821199674793998633917456626576754002554257435104337879447057840882623141348644237862834972405281547554994508594603193746157342744810474943958813263517459739791281128708921198269217017314364691093931134027255576445531675223243892368415594239737804624899197848790556436540824722936293907876291444938114056567017503280232057829112294303054902529212517252290778914553409475935052937733715823715974529604990064044776037662475050658581147772247549710983377225540512307860241784404659489491505802412040572494211868537049000594814288504426105662736881023245955088727416231406456508307967232541790250638194792222691145577908609671494623984986600289726157692228994411957964716046440048672692445614698599789070561875294695266909543720470333595952091836290120730037919070710802480874007362932789485963189587409369130488288348946728362126809332038225206490938139869775144737350645815528695298791673755959805967591442288658001209146167950443447609402570518998099297629069708179057564919176084983545260978546495600104403015000068280622872061727308623375259913792796841181622123456960419141432126542065503596050263744211003612173962505216020497273894119339300633580614713591296969917449116658556065736434339007821948213412125809821986971725034846009994292442768712100099677863188169488134749153534424477973061806121905783673529420707113130798352150819895566211337871089746704356349229899168678342115604337550165615497868147097421865938495702328093386985477339915133746107986246523778233488528138291973540168134025011658722569243875833309036030867496455086159953227839735331687237723945781916972959468583690502890049421088288763520654731726190763480060642717436383116809631003871013005196191695058209604243158071862941289499705459468738892238668113297579125084684106833593430215867252756874560322485163055458914980953861910186427803865426332393787731469073748619652967469197618108624234440621114878092560563180888619550670273655891787326599435189221712180910521870954128782265187293999909427363571826439252750841909541174862271956503190049044777733582623276712952091830285598012642264384182716886032653652006701374778674796990912483821784329269418726979773261961271477453545389554253257907686476965033912769675403421187128943814120363337517516029409031810588163739195230501632084448571917097190286487681305063854874056339109692063730571955826518789858236740206866567132622508088224988586951642118333491487357712178940822822670210909969006388095879566276023569797887879868134754233798599074123849350470010608963866921147166582766052377881478009986531525827365272722782374090764062821818755179447373443784143067868986169711862467084139472167287770227621752841892097631858788331010951484493238505572491894377246352609405885504941866325408064067884938654489781536446725553225383646743611202689775217830421308125118791907599291813119249668733127809122582157885836535869153832190740412422913960167459217573750348064792635942557185250781462372101139643927280850888408044316021006672864927599459944836447462885068144533879572622339093427923527452764481384729553165500537781035717142069460375821870602627349084933959653317017077658217636485654773006656995443864843036728091766946086800024627795936916828711649416859787545545121185149864811015471893098608852152976332711949004536218386966470576096691865640852595332989055700043064721754930014470989617955011738672458149500920551957888557538027357233155598179936539055916147839704265276255321357923616613275986274863361458799248251346906699289801178033572682489753950564851670247892249144552690326213983813290741588946646783088251713671647816139473636767190785552519378337931445011820175734744032220702306256390975874225247259597879254952469230953355524830177789446069585044698620160118400020543199115591198706858215142835821853899614772023428543698962784159036513313479869471043387999723494605362579782979731617034602907384620426325387752206047363991111846011463690489372330252691893838425217551252265341084311172725717545327060340535292194325935181215115118162476751082484502740663297664994554139390520038066298173119430012540856864334092189372682020634164645790452402838250074921802530801592969862672638452605280429437262237741174975817589468465910190487315196337732312930163886412449164055377111733744676847165178898833689712038514452098554848616784542583211500434779842710581444503100664766926952823225295181845453664435405034921267748618108495039646086011909906339482630950816492469246426967697800158014426338814159416132546469271943597401159739897401190637071492889757797339747090837138391445583695018844584285918540203756769538057981503431533724017148227901541308253524920759134715000836100517712044574718804513032302893745371669020486991481513660432717761714632261719011272986522615633533293797202378261651713488797855083788234382763140188789785815014131413430767491900594196180804033987587532757469071245101121647257782978959106803273667321951921270477757280624781945246376565804449724718028208077800719575865788187454251051951710376778034313208090068089105613961368137700513616994217430680731615362073362584647537129844135725368948021497989745397465273905062493130276436744546401467234885581473847886778801824881260013459159046270825564591826947673070476015153852581798098395315727976260370126175506325585338853675288477529007152880050682490224740539355309540995268678442850964362161968246332897632469538409257637665946268537687507298212116609471740597253797008061864235365028708955157267604813521186285471638937969628050108224043431697725943799280840189985588846063074312415125650471708006684785809260334652904705940228315836796178491247944027753344441125432897726414959981736803945693673966240965438739417899691622391951144994200729421830415580606292338637794663389623466726909493835633395818016881359071345953781770574565505109369151815098022716879198814308453368151879993200240937134223236777412613687274600986813053494732907991263016609691014578930466954381405820219973514468661109438414149520337805910679530829912354788811787221279405331574703635017868985850553787907685004855743379498068209782400582841638291079183961358772553135970360678050710818399457828100036760666246429664320222673595559519904560426553838492782142163653017091002134995849582301807248919681677481849903010836011260939842127416617040772996082336310846299525186766015728178144372660860935675921346250088031357147780949803763840235760461804136599827121794747634688865134458678857114436378884297047292017168511558556325336070124283244108009559802469755421768128276582972254625002938650685274597576504774681823920185441225727680786166793233217382111442934614299643388271944987338634983502527922712049173859306819400156511455280887853348567092486113305719063829753608759440753672125892855279267713724317163281502141375620927545437782212608510561881459808554548348410253194741735583554620128753308769890946455108410998703496372151513792064698002000447534751108310306312180101671421835491662529803179694554497731548403199766659399374857524908120585160704403235052696740844897687122884398634482919358916156951980310901300328615558124520570102130936096324382226730226603108601216549013104447822487304086219794307729885501651706135226347635635808885052720227791761128947076963332509964495205707155604969243138801550157662680947863390818019694217209642153566286796438390173889531512805333426409282211357989582136395148316904211666593381009992845020720987096170816771695902064253985867068170287338425033676116165979472044948920474297304371589567198921770930063967002835896173590604019624115116292108010516079445065242735209667897934702049809700305482214905686648262310026046820515441809583023572983598284815416790510595277926157851034876536300564742310336976777841384829836413817188443761217465539326305856010199362598329405041931048791735935474450322509318289504519757147273833206483667783256034246866215922000629274086419508091670799789899287213111874827085201340820359592490543805209846490918581432207224836377098266737083953812222277557684941025114113196655314274818053350831514154822901684738034545684971424155511962361885317316041848727500272201863815402802394390330404011525552925865438060251217121144951444045018596477536618556084922273517525970396341782027211091361726502487836066156627504713453482739213615498924933158008491003721847498632342625724051535455382070210603172125300067388331418144871869648816047520141672751319813587084229961343119249063995984172699196616574701235108223676825821140697385111634527507684954438338943070765231704392714137675551454823350287392924709017819721986689254500220764685227145310250301047669699851558964290028149316525375051512256981665521042852497866081345074348014624407040787736783034367209982277152966740402815703797769204442895195580601866091399676356417685823786607159887997879409633280311699300202833478957208971188819222552616406481422849083982596927321923724895945129645589605595518571670474078815216465326029844773586198571734702851071055103717432456102421746805824697368222616621392508240766683931276138454989347296706396793304288651312726620622832890673609848205866137609174573676349168448589445903905964753782841766835151987271238172482073605191106672198712167479243561678349098097221624107914203987020945753672124063164132505638879392084056257996427643168774779761219347149792650891991770001392727689106635322997518722093889315352462947784569666148561682745754999365393185476339787566939052827775141902691019485374914751795710732293124138509472617940502103149994740561526882656541512674006003928161724131101143623153153635983788646956008247440717953665314395536242990041933003869607669312481425039611324509126614989598250412340373760634778443677705240482859725750268614499162557289953489758395356155088167644533332715616291386126245834448049737392364425320904874928659072617246244761549548877806090310207702551986247450998903462510788984732693497895352361011618873482484127034623601654262005146874659609692281730589185141322907967026444259930451229847697538936326241402041290955819378588759457847129697763877340611969000581161177764796803986397155771708510904705586259350080579625322323087983697643178725438403378848509795034735711366518711109077647988818440285486861218351772983314083761236872349668955511960845968550325487543871911863020787873508011585825323864970997497081730631105180828077612525546791477873865311290319204862366362640576083671990133811305103527640689630256085082052511903451502964570504917178822764066798246176508570896750697256816896112102716522967200749138276773757007792104596645094502067227759750817732117320272900281219781065253104898787541015337981649597414749935208750124079888292908414253800937593840855798359830848295063096249907312883709847036139934055217498537663430182300934463960800067411756375503440339200455504585862867147417058337250804880570524223667218163977603700986737087880220622723168929263198779213712552977990058302730641951196753447450082049648006508189940496967455463429246767965277517462598664824279145315454604067445620833547753463751622922180009948015345763987226126359356932249377511750916519749875190152393329385730593358088468819602158813889580253882832455926272919942004118825350429668254845264612710449632185111020224520170766211429957924148422399796975424424907389377558742128438329383129884845806893012586123045577140390677603590081915397976444059907927510119349890412648155639511688379781236624119978515558246892263654052747853296581124975616377391895566240067766441855625195710687613656389147466446236739200567628244309479395529630316355384510514602028446710445925190549325243716829687949735006223709044276235464957053365740868558514906691042413262289773168469388489282657400082124365055191007028176650866621284106825702107128183837821919599437306449251288633899085791676475969124843695351355771822608873058016878640198172930932114726556362137310218708730404172572372472848733179085387082413168372202832291734891541290257744008865780798319748192078684426889491810078318379935682730579353526797897476857362967266675774228877892713266194233149504648522231930052597034332809301841833874652274471721571032873998954765362174791123409859006775444525012099551282595494748214056390156830922724006799875954466402524754446744914696340670998074762818241248447208848097243294864198467646252097528131309181558899392404453036015919003547010787123700425180487676223060285297108245465178409224625036228375329691813398628348189941281707681742258150153748291028832441855875951419085735210200651345229797454277544724707864963407816466633982083074793130042765128386526017141592183065276564167773209229089584868019175613109984351293666395197660389538366819043895019191146352968051143878458903120881336679835484671963352258063271632845865556154478139134987265052934509086111507206202285307894073220097126701342356910710481549138018285754094750337166089869502646571121731992417294873139772536983084460162424166543027417855552741125343039759105518359129531010695557992212982069261327417101680489787882667213521017295211794417958142597198876401021771379473472496590876925003030629255624671141029449852642534419508417148133879950892551923876231948468875420987661708072554844857765374322644368510233453440639761056533132151452560514937018174408064950473873059313084631356683522429146111958063337092670032626532444136866878320206072007985039661907575384196624992849675751742037851578214179797944258189189830122651480456069160323868551492202117161400973238443913205125725434502271000507787594492951629222248072763717179068340947010995047429744608881367856999853195418572230950380961766150013670231565630829915236038633234292274325411708449201533422421381561681327537867196429953332683006415063638159255200013509551148745428580116583238719890103945488948506636614953284727041511421785627149561459227184169616547412991057482413520194278481432572540701585241720429005044544151840223536375088851214683983641783789473179094939872536924325926210468358425154016723426879070491034226195764536947928088135094538853146892503544624321215700179539835926620115134359142390308547037515158641373761828606091450324049140035470995094199964547493367686667642844250296677991675383039140568601477439497523068372849457826139788050432861723767671505192583191631201384795921552541356016303432456811031997387609620007644605741855249151088391985977074561204996635848245194497731612705869196248951652387286532402563278763411539862489763838759834833678290162275874477813478009987721080788740192353162497736549412385223139034087452352752364285379897819521922739312526811954203397318905976916290493016089020365667364460543048672240199415625340188573987722462476899184876821650823285926522163267281548291954543620068242093162079678643283101693782203657629274542095561479945077971048068106272438214685611051597148768086196369334574865163784007448293489282986267517468470392830849260969774393399825136806346718986781692685387649782194837815515705846047617867623728084011014621773091978360906047300930769062216538565840019693179619426781170207773787841708770266091530208072664289391120408583524550928817705707295522413904553124104779279752830227096478933887805108684685671827510324502588940422226500633457576868676676778965355374587034233268134069704160331476564407032158123282208600871906040245142129796517862375568012503973774608928904600253454911339013904671917795886339265439809033536813968360980448823913885876811369733466857549858977914245335162213154903724778775252232600874244527990385509060934506977907766614793341665635993959446203112399978294395087640783722832658644080424587113243999234016705028320007760886211241613340933693303782080466214910221350661510308364005372980438642275344672202631735921869399967496399836857037689217294138771103216253970789437192193467617319616725656310471904628013636941417018721034138079284868727187935008152458679096083663695233977827171913150383656675426312515768789571629976940502982149543090057683364670013287584485651652451091726256073642492724956286703670920568003965478008585264409638611688871199030368662486720365219764893140245655065651938092135225897206302536352385457154899551114206290579147655938841165944035603219627543729347403573642713934668651458546444364875002745467320268197974671072350498909183496455650333459501910132044875635942086622504615260428215331021773117223570727364556769852429682600038019802573986334644548997493014615700037505197331023006587169620188650260192642043947169695406839513565275852641736261591846375435668202486238380493469176439026769850473589372475125148131673116302484741448600740940955581693111158308545684961269209966277400389960789125600964189133179044120687172018558826853012986580385912931904711145677208099456508130303903155291099873246059920347668866192639354317779095300789492557859021238653119634148470755416087935079856968631678638003487624948949077771637126376804514309454247553075987854399408960643884431134193124775978118008710755175439346213552632327403555051337059786895303164871113410716817495901048166716343633089718317678463772904351577083682243448110910854798396845453920675888436667494826461159121791989420471270129481259609037140074434028824232890029785453772393483158865665540264057598479395000135045968966424861473229811564894212600486039366660820814108475736037561671889189033207262276023257189247293257873187142328910902355521134267207912931189272302494136799907968247763214603505495238268429804721926072558958136083149196722971785408248079287526165082253267391432357017307205363256757104794928304236418671033051841195903978155857567561975082567430866455438502679209411952826901232459891927305526367045425769645191662443493450986428645986486509697038533059669436549580618209168498084051827500950113185508502139290634184043419431313494393944169671368033584926177692984595540295618432024117167449315285721635179191409317471910613948043272906858393634180988343486263048201762467901664310007810391652884858738163615127639208425443313652723506011375190604101661295086892905764555051605100097508163688303913105904150592304157716593960127549584824381794532471775722977856427270047156673893062215548265574303671150923981890078512427176597707134158714217148800865703229844098743104407727988910820461536640299658710568624856980318130444516097211195216346416888574282804756613780956698630202047294305216429979384109300263382366804257923493123300161638961412293735730053293759031377617408102045844042084262307578889003221995103740340724527063583334071241348220459253850249167633282369732875083939096891435154357323969748037242657067191865117018877163787121459327935080313342488956131787767644893178306384057608978553815965680671765114131675829013324923909712430194443656989046919063826852268890143892742115362703948218068916013955726984016314641094433721425900798129787913461410400666437557300960945519918791025872641764724672424169066263781431285785990861001540501639868842832198745158673624906189845743849189931183143371611823182169371721952120572073984204300867053636204240225501314379916654632513879899578480266058541173283660390761720640744356694878259848511978875231954609880226292739820491912440832659988322862812179681424175610234390491039191086819668856749730907116264633080860145557967917581624629344053931902326175821028319113077031290590151043617914704923262947602013111530049365929816369785809519085892697574485394171301116800183472350145799497621443589874768721110084681898584254658485341224768675021374019020109209385777546613172023121882941975873269274318433831794295000500925159384778033636292168361395707921280772888092584447078943979033953393638238424292938417653409486431430603937011471351056292109281190269679797372541966844101287769864047271795978925458380833296261826998977170342407565435169649161745346694695623479864889806009777257631954836028857245094208326056891917480396135124901891680548182941775540394591024524113681862538930779283490990532177803497223251965098718077323461269664888331185518746876586293378778415973682065164225028902510181170159525738415271169681746173516777427514003836611609447490424396526073784835098934719338851207917853547931474338314980072887645157042649498234745481614077533010278476254073672558199375089497983122617366635145927794373721115206711328913838142730434831036953601266588319516885255409193544702743957898815396801039928662549468527519909695192331140915577697241326600704027058772682059203855086518291368851472707250746770971034209774382534682718249608382191277898342769850374359800989150315441668069562044803286186155289215067530134885615803835775315780173007457902192832060072707016956309326980187459963056260374716917768380547698252744952027478841338597811611584965186828827175650602972922178588390986159980751708485732447417076884599347021740456358161697429075213367515819402062905502998395908784437454775923475694618616535730936823848269740986069938599230397430014010988411306777399831186159440303100735827111848053767533866601201005495627020394893784484767208430211129888590820617460840773015547174157530491317063714114690620445687490113019190336827992639552749385163250675624490129537452433330738152589757966007069853612187425165249356469896265109246392775693230089586650702183709385217124653769712870235736972093773952832262510553283111917913041487713252406318315198835393054114693236899465416520606175889013726958454402751801799974552575938199636066763338632598687432343025818344971723955997450879124296194856149493451081501864676166317732217421692993737870818608553502367557058549943022592397961746941560742208831812721374015213857401889253100892105720947787448554482998284499797317854899420004557851078524660596168514987723059719790907090910604051626223188804040844443169068357260147163885117293416780764307201559528795300101546902246169613255559936171008742147739927706788631265896351370943585606378662684653521698121417989171210200006848812034956068904858894384864233868448877147191123972564014086613564800783441934267121953761428569089694528403555342588241550624659639738808846439452964538352118248227309253900278763134613844274524829746402275545519583565232274086028048620195232710876037595213840661224855089350580817035272922581111267310404429911128030847716762629871991078292898914168833652852881488877904849545956417487843531456778690425213844222502205251052168769064086319906947987346570770268541949089688410963033376942727972965667827939121303218830336584214911224741349703125177128239898856653358313801799329852746729624824825768474109084506026521554119441584902362141745695126895671597536311951069516510607787984158239502163296521153291034779042248945361052538060191011693386956712049603050174433766858465444154168077888412891772366673706252055996944484683295266193773540720513858380710099223692099243453216848724237764842184310539213476526031877502317688520104583276298137956782113137048135430260140975591607533666504798351546792034287259484019804122892391795220022360039862321755359403422472429462718091208658900990099082337892641293894067170102226901315852701234325811216348034741972088752798632702635053957424850654056209371747733801849793993855803526999792644099344147137340068797017557596019861750175588848654261844566385405560906143678832683192564982263423311259095792223877243081031863798411896423803649285671743346692986161181156967082317387444630424700304107608900106327327669743114894329662278524478975859327069877652892866757858555592542670333518276599048450723585750061790690002225474092050168300055029259000919021704832862673407521449317801292332822826719054793335261983219226442089699391127190234536996507114263602138313250432720383694084701823114047823219275655083679544553727118315710179239508283396143351948072590011452022403721352734870599841362523493433594647750534533115665691887024223921457096605206638951789087706785173085199526154848267005894691891095026954574914969812132027433735468902327489209893532883520654249362356142049880094861669774065672941553416354495233067417080378614613175471309140549716134338066572189371202033535986562662940638459055385929761602627679183022325297085960442478314313081794026191614725580580872020271042761005267511635409225717461247582897406566109844065595186982720489502050532731297673548416483742962764924322729023610719665168901012956219621949803175906630060175080487224687234669563768564241652251472328636669046221193653536720080616840020834195111597697159050990477940914301725663849517875021605216491981661435807117093868811262845310458800289004261996863116508225709864186439475109452241642783402406829088752079806221221036034996949933356872596390536591054826512044406914512107337126593413997984089298690035858154793817794179156724434310352631919853279064226885205485886809243574879018247462173192654765886032231897948982570513053126695398489132302577015678574687296824035657039815829169115583166524355547146277357710793656145691191687634472043048508262107172516471388688143890932113523542655323913893185592126637612648509331320450527072332768287305378591383145899753762324085823964698921005537146522176125555145360248936036343745769193733256938880139333982166346570160910659600466504522206363604210631060960271550881076992282022404258874291430613252808721922690264060988490187262994772937185503673376453265865062903222742091706081177301967680650827236383303496177197653074481824423136819481847517581245473210027420741202348486161625468096257607065648735940058835323209950627264320463175971565656947183949118987666467374275926467394032593696328201715511943031967043587347969329729861269077621974479352274105229516593207532468768015215707544898427207725042402225576476037943783594045961503109171788202578671044547714269291117637891753904495886007176541001985473505846151684653256931364433680358895988972470536781309160296833938265313929834159902561575069519916629502678116950793315152064161785155965711213609419100059526973720872727419413694171195393250011085391655598126778928440084883055217994043415955577714764042912131985382346363695751205726512407369192587762453677424580607798563034344723110683692340209012239679790899042144817217332974360786985294659125957660384280743986655783804781676816486967808954221817212651263418863175495872061357194825046889797127929580930213512921808740414122494600735092915811165112474771240855186408465347161342114304107318866897284642457622669660334938072279376902834490248590428828408545371101459608596463040228756489202213843361182637026783509136484431416905186001878391352692451053100910909998834267149067584968779735692020083067047422732472242267567737326592588803095637545610185631141748440893073847660055152666675034103956686413114925225092929119668568385137485426709422612425673963774025938887020148130940203785038249442911040429375692766183451196958617214421125894915429373545162763971188305006127756911882798553085731022576896868511140284590965198391139040082745374767383076005072741921647617854389884131412936763122246770334588319281776700188521134526827579862402044392300005691223865386930103185126058341378735320483149114778489050364859696159373870697977035411783477612495487577206677070957710847213263522553335247460475500826537705446530763264745884815749124464776701516797250087272720039585057858766061586052431941054660618983201928462911372821619975655854081740169410794368670366589078024357906333139033458620148516793681904876265439373505926254375139323519003550975043390746094694145487451956827802334667994798850146034813680925348342482377253675236422159491926323003363104846528022861110420168450290553729544272278781514097615401192019309523575411745474529908811868136077522187208667664996590444798788479796583081745611169968409140730773341626260066319309444723268123375831206311087745832673696317913639858277204580954668024251860869528706863896699493793300713068704863006885899773722724838513276019753726527095985027127078689579824277956882226061461617243557403315179908526387599820419109837688227525843722674030360891906448420341109666489270223179584327214441168690798490501506611505279199852690126848693152934036686604827919431447750311049161016529754123822956670740374737739483752014802179117850091575651119280024694061688454575476042475349654116376985245886975064075835986662705839153121461914906926770302620821187592178298360616470693125756311115723882042092188237502447649081796064334204042523898550954162135683326337387273628835566491904440968251201743405793002912217473628504036265326813247359708255859915882895782041175141394725864176229906972083525368916035653624412564968726577285260202216415446128668979585596456694189079570087652671784845865727560480278433080067039937978303659152164051780851389995954693936534324496907252382202269196602361694837008116508923535198114889987975501506351551694540832645628534416889368084755695689874309422245088482043158891831592347008125420481340667098668128110223970212286248858971039248853884324471004992381971949406973645028995225125539050718599603043182898964699690930933778959146672335073615331243410822171351467012686506739347356711988498790080053539663197096822925127700047225614321463931760605288529308888693664063089004663053076673090658842219892415102186739523269423668806550225730757326651653602439748846924948895454711029505127286516272015882041620213000285260626544185937740917173219871595170768799490169704855736252821808473045236564781059561374351457809231920849364328771738081097214635596373056969702501440046195774652039075921469412137558683120864321222180406546388419767305794180234013235202931938665529800348268352935272109027236301990821643042259407849341634541802948047975691520795118964187363129207887216780482438141303577488684571706196709234478356691432479751520919620096167635683307260253525795286249051184015346400997282929850031428602264787589490022353231921598155287467829988426577168652422253854961680999878678295363241335268620878008127410782973713596167294381216176172694729826327973350483867934694116258918819599697011404249767071961849777756113141789251697707668848330969125955498737962081778917242609837133525844549130260215985319956579718460708869385183853869596408211277032418946312532239658942375335543564703341064616219201868791872905456733387119745025332694674235378624771508627070527014757842649258605904886991210132364179906343477758294554817320150201649256869241319900145575413355533797444267847299269739199325298175061560144389752026944852557904255518600553960402189558066465942529643805337358703356747071529010520863780035435386530362320152858576791653264685040075405861177257266247955747772809804077314996255064410340695189916599661540276585530257815886960803472490074627504481080637603523535987923197180576992400989566026489130865784174146332953658761989785040501757004911678584221974517379145665629328705177349673294243193845318985993565731243053561956880334720285222086432105746365310967031107341500167670745226937087417556939537013446707013079242243427400241901096376586929459223562016113987736859785866775436527604356223539299175608422052466921301346660936838251884057200803794727774306475485046675792861295408033813608492271287355821971040756183067593974103970554190569244797134112464507381340037832800165749468816101704877793334759469272318274307971004078723203635012550821859390463925660770201128452340274442865362496418016655169199779373405152777851644047344642005838289980048447398055702353722619384495383301481655970821864788964581900276592549533926327031597834654186922241859423936767547004402702899193934234685017295925907343765751473063743622182328359031033930888810165603457983958756077385231969946587269709327721452865692132265475675109303205418329195271383345039262269881691789478256324125477427743771014997091594844211977913116679699689732476650469355081010135052209041225629567818837647661511075320885219414946842301468761124782539914706315809106852050562875740367377179720529720356265483116632761844099405447853388345309598524173770273412115767274661484953980967385855091374835787342956565349056678002769675735350918992845510496315393326041649630571067844285494397471312231424422642035138541755308388367919828417519174363173439220248550164322767764250244064316164920744088052639239542487256987453924932963849023792720613388486196524354667679959216977561980095983605561844493003725968706432024378730629360779566875846825826200604192845985927409440651616159069986559456142424821135057174331889078380515365829341908338985201554643421724814577160019943106016557215641374368957822743402551793013547638998464952407449842468976764451482668433562185136511074527329299657421414625569638892517530511510469717174190865473901653994911828028605836103245545720899445421840474105045851831020539093734820072678076326662433320339010489637551639865774846258648258352289518819651522898256282232644861072442299745155348298058676224383706047177725519781164218471002789357329239754688491212142889144567563782800923843206007007333814415077056872528322834642516324826708441887874783929931445246382383353568702296643870283073370703100690105182221886612563856029869913597301536859574623283187680177587765722490292709017611378399012000067540467334133420206362579100263887748611397027628737939600594982497705970687996634899320293283477286469708099423921273072587870777992456845432222811379550613609678816134609742739366039829428043014365350921136304899427373430557861690583173889007590167171014402654281382280506333130219198430622698634493965765309558503441158045451774275341163267439653744348619110011609982444677788531866230738130828198019532962462832308676721782578978856524491284549887660101794031801493010994909662649954453893838581805280996859030164695207524880672145398180329947602748889282584007590162770692538870780088649979021329195695236578251823203689384944487993865427524229840675494892888789803323128304001393572454477708924206205653458631193451752779770335534017972158186636070370541268268406923086356397599263141101816405789796797044364135783101439254753795912745652853592522330924066840218324257098989999175717228175461702582595925896339596044509687151553415830656143090917448389449960038989687003291676623300069310671267307805863603824254921948794408511546951796422463439025951684724001432507259000329023742141439414461066407572031939347205169469685612774332294351421794488145154400132534970562292343705413191866136724794331093170428651891559152818085080860986697300507535841516065955212760487538361771459905547255497226691242018580218797770001879843722368527183913011020720343329767654352633739264909473937572869311667029375078293136115524520093256717526827281195521312155434432795269585829443793541406739978802338002964418188523624144999665801275856639076871163612182577278600918589395737194700440868793014840893851398075917933926268951444792555632749310834135001602790806518808141697717350430354581541544447354313281126264374174475515905177365266126554236156118552937687317780927976258118351748870608785405233216929634177271697939604421727678643392720002719437694546196732774713697518334835253997608862334563760695784547977931907102961848618476504185509092399066632801511179672252243055716644436669472771564749573785505242444829554765424742730076840649906307933112001574969933844103497124544353785163432132419556617511321663946206532279758167967387384843460887658147966154960051362468270706122459951299155396282476687570571984162164030658125458128552752971929494035388559226813462472154301462626836457500632771321445959219785745000932642837725002370871686052294839654466020544261623379274985966772974209303507995473523380380486685497612834222310110117734276271755874613714520165169219154617705131590596401002233733569829002758999386217426925956562904817597796438382806621507506471206518655632264984122679143628887743428695219669396563542966051981750816921845114906557926591708434366085821215415126967068188200298387270952842783239948498992028793749754551839029518550896954440276683997750797993116663204111341317653180318399649830931931309256920999331993028981114882508708033909542612506763698599399336541789138523054572374388917347874113745687419519641886376063227396787135964108631541589629883969581145280075459260978675110401107377676849460915622656137379177863854697096180437810997418316403309381332667442970372589079042691822972696629799552400428941238866415302204767999232915752472012620997052050402171118274200226851156658301819972161519315041987395478196448569621910404889863760479313903281596387116903840274542615434372742982925955297151480232264041383837906000991973291479987213523393004011671185546831980225180488253514256830969582069324896581201658601503724526716591243777030821537161344865704109031305776327800325042154347140782212969263872213699093316387610145951123496253289767578882978171060487945720963072225275166002836900583668519020322775603225337083029738081325747025336966268820103607166040417519697004831218747830282186094510169868699752315320247799864626622756836984704758005815673551828615005887847115314737028804254128318642656108491941979683203295867725318219151960321540483144058928309274387593515588559708854459826208832746191113249162528010266919238429675206421375287518391957464220719290158487331331290833129733231871648503929409522381584721327521424660100552639925677618883111436420634645839871274999774642927967903754967744660020437224536545080074117386196153622936587139248514436184516410154652038816617389307343867053346634680442180813908570792319124619886878182778516979383215194124177947163750632190748906255718676045436236524552904794023897601994873936384657151174938400647662102161436535386484425612255915823449034240570618465260098466100705825627771722464479203484507959404006495939668613843088546574247981731582496988986621679463455366038801927626496187712381108668462714119351154542247504471835295214927125262405405355417804656483166460034881918788051182984081048158701807649525185097343706427220933365871685883032937411500638569007503058177075364631632921829566262067860708817772432300556497884789259258452675584825574702039873127153829104942203596399277256973670359994691015722221321952864901289020431509309635943364437429090571275576095976358561328281177674495691301042051533560998842933142584366357075039080670577713590263355309282199163630960467829886197240261757139778521569223503367585993852001489206935892243693202045589910784154718243898322648932065043993761174167118512325727401075290344107415393245462801205029439430455201355798454845599554097119859634367898609707688589934214585222831671873777912225329657475849110253000625401761110919314931160865300086241616023785404271986240089411024138339881415730327408049815386876870991452021611502253092442317511609903405099749111603948293406604539937297865760660413228557282242094700960997286365184656821701016083977801885076336157030936297698925950487836559951722996831359737860357533474936126517609795437797237391747902889948342524169514581880474128841633707844990283222958828402858539492715009607335790571816440940521807222842139467411866773257407219854400099221934395241489357815642233428675745698592371507791043057343426371111574253184289058224123948662591760365266827926936622987639281606372601039637455632354785194593096471508016171611745841882601335834129222607212233939940805290394888165417076164170142289577496434778838977096610669355872295097833907644569601480535658019325856513023721769322867449012505059771624238632783238049332023663167788129712092579757151410427393647510207350095053423731273869640749877659789131261243302505868880932962475450310965304429423995468815082539240072054180759831066345152789300219728264717781185879692083879098876688477595435521718261421690959667333826152903372622953527357443693347199400530872346343884132887899732468415678165328607139177989090514200482690366128027539646822731700729412075472345499186058038591006120794430284590936016623154556923150782651710553246349763772875164612555158666337782616545501015294926338628649618194549075345820039751900029948148942687334023848780400718666870911358518044622117234691127194927178511220137747880062467740858532224857195187241179092573931559718127155015040391476444737611504174390693455443647423228797300647168683579463062307000483649552873138816588721640999561731115267245166288834617568989496234800313768427763063372680640538481880057638374482369164969301519670629793101850820233249644184138781579961449987403232762837238306444659059508536766157078835094286234509841564782494551011646314537013216967866427028544496172956292037819089434797192344786707241643082112814116094810317399666216398958644033966798014683335236646715553984045221615978466061787552047028663172380603626738984390204308554313013771794013032929034932184582699707452040264627801048984245768014086219269634045731241411847353525646909314010918969535111908943074879422471114178781231312959267658061049243562165050983068116059383876556656254219280957167729951491048547300115056453416842756659465565899597292747729824976129726768341935075922087884268301179657489764788030990665674662521424835885692955087204345441646547647799264956559041698902346601643204532734317576586183355057086190133880701997502799080348732097066335561044923968939959993937870104089489745346522399357014590926629997879042218551917053305567346457418252215509726327002022711278573582681916402688600149640564702881295057029232786914983085374309886427093296883225871906403552364660814344127038498856362392181028805042559812282824260526988822138996749014133947129977777461509941047910137251673877185673690858211752174036723087597422937365817238511366377061971953448907464732471641050410336727822452397990987256346784386220484788562419677466618686826402115511466708066694885274543523480251410312199164510012522440374114592914522463421930780297623325177957909571645962573341972868820999990581068759035103265132824071576898187849936372121365482582185809931857445129187239773809198871006580194528441933128605441833230747633167121159906124351336740967649561910573254683497536012775784900711047078588782391403187111866282582949757548499869869720592179045668912415387300525429458750941927585867789964394146910760772006873942975642319594303827282781190063259803327698610351828454411523445858323572489515901932675378486720388841366473502640457783698601628732000545260737134798531362803924892091116763337965142553004158902320210941294205703269375027839849645028101482355598123290879245812079579787256852410224729626028588922191793458962175334095339911844892417563320553939859051253007714747127072204651361144538276766143413494367333384473370208345371708393925851593999467897840400133346052730894613248953590411474342984390621880232948168786812375158110564786947466157436883551096859644869616119443191968708794902769384847884529758456925752603951404501329054994067526046747944544257500578548641913418280517914921924259155765234933173454270748439918028893324396137837118360976873969046780883346864429117529702002772032666621617620918375896857842341875283103540285617697373282966338335782427047500945598247075108660316349477182479948073417800212399578190813870326264269153510995400793270958870745784022774600562508492341464840402360377622092350911895561930575443533530940250025619889503127857729523113102183917246023117371081135913969847575110222319283136946200095226330503735577310724290206474478109108721842618870988925496801154673226201385318198946574723241563726953529280298020051214275715554278022740732996714984923783543507905169639588349684877417454546393900050512709037230907231606802732557555844544765712994919534298652285059755581007652810009781509741172745015433145463113190316740431360188373259918747741640217349224888842669616745814899984832201887024830148995839353681492527786977461097970479698527060289964440341056421887836295851709541798450894531558375302378297529656646541842551738100092370280563491061848309890405765113259272885168925415127835865435875632472697413938862436896328885005254071328215868883715841612920125296634087559540091826590807830863191899088909354257807519519081761270213797625097582352295183507842883432612145281761211854991210813983236575649508688700022413853797325943209523301359118059050333966710649053532718169774022279232906391755839178040437448444116538300897161755807353923383691812251489365291280583416915414992154747328816398901142645422634853878399823216139794181394284044652782128349751524335914494846576738786807488565293016350385932833414856674345477874103133459268409418026430953454348314634803426390669384647675518129466106692621266037015841822144967791541736808219524723602496445709647825368706423742516821999041449494492688885187240162824692671292530339631315718649226745570621893947321262925984375235952254600010382992712399229853300632876262910915984104125053223364576644713506767644372742714006290503841471096218791919141779848991103144234238368769472917678702082069526404892112812493472688250051515853806276528244384142292343132135639438810334965911931429787765054953764688594771451360051117371066392970771780592911368364430887460430710084104961704471474204502770372942700585576061945893840448247557851883688745312883934974299250124225290026253752598169134188599123739678478239124092109310038430471175152445444709433624846806435661584187903069949607812092605202581804652741697712819402234561223688284430893767811248174955596159252710726813115421498610555879923292573359048928539080260204517940690288378104274788798944887485016078988496246427335928588258262734829845596222473472905958618241289112627213973197640662865401012495581652580714335111986929968323018571862825718325272825588376292037296038389006822925214703327912780785133556036072979641845306984914565309975449792707346939394993299318763050983814313618988832774983862568398528129211539163559034084715177223746282240462027516906294835891358751290174284565487572152183088870021013246886275376295106763683320376791496664312857975835854925541620291757184849762261567023421801744215234827036286120050719015421810477951144630820025154979690219646353135519793132237859580990177578128511639057784097313163818647538314957728368455643768475296838287400843741404334023782719121407085083268042303777612610373468438484508227646395861616802178139130901988696213189373152024659227009398243964229117829445748495291941185049329925459681196296584839540469079466443924586175130195626316750182721175925539548381060930304824464217362935064906616453598168547379907094574587032297698021652539477073081102432789559388963886880553225816188263112887022823112319418648259983074844608440623839953681819984580545985074563479550132200000183040292617302558841193127817373324420851512962123640593835777982904458359467711245597273698836340070163437775382016514158481875685701872522345076635209465162766974035803270381810022053300040020907649724527590509081153202577439745237003022868751750258354622799620720708276318797465543700377659676082208046002510124269837157200001031249834812314332240559199681820071653279795573248763250105933000726048779376182505244320618234792023412742090244156763137351559290408729413959760871632592522169104923179085829866007061980966154725153210158512560172322656179266373780558966055186905961533122272359041657962306443640939136585720258987532698583513684625409547622636896086586192000185714989442954463566334886587482873722722670189665923479372547956497440284616372611444419823598945207742114269145850544777325831981550870204115966777292868025772874370005055626515752222005030997924384882246597276378232655808274633225346371354586512662358078063803886838499294849721742346125240504895970944323055178968406663875108609386545108581161255475506908095139265060277410953336390587653006505917786069515661890890561850427498735868345312330170147685644756074191567252448528897207869620631158187113641413832415632089965529027617725691373681362588024910186151480866498506516762867907773851237069764174123543772482933379183897806467840000653359432334823508253438116999051453627774057356897455239046070029985024333358608013622945873950657417409368044802031456623136635245362541035646407875628746403477678954964751663254388938383224147518365966677189660963754192557263132679574607986172233456587855158873070657593505764767042886138294662544982536721908348511970216282197802791541836635203356314172013912433887956004061923784810231885496706100345563803289632431599257534020959760581567120710870716705821234447663415729737739591594549141920571807316815378873408420278929284984483581189226210448383030439398908669804831462160926275356573547209295042652224416310000730972073897140137603066628889271301892818049057355275256834490196894954125822656224111515026549815947342162883436080880314006722785790484014984162839230979824146775408986264980503945607849184955359045543119018842766627969881024094955899261390108165019644619098192712595143685145609345130664065401240719899817589799876028607550584013857504583081304467198690409874799287684991810949136353652827087732785261883768852606526153976971702578079460425761432102906015844849486818495343450646766843659692305404406176074127884756859554339879776244930992278139421165160181818870754263462144087545268493596914919479469060976574664147615883005137884432846035372693907582058064750999549356379242832398000764507185078121826549462952795457568691454128771212658243437851654235863453299370485334797589143333266699293092288462800147607466304238153211583821776835853994286521437888825670583215874940309190678282303956344867071930486503716354776109691254342579642529636642280915284251060620965456829318435304558088429354342061108372607049269950648807026820571319468617698038045203149618915525746762571470998632302198544962429548023986334373471251755855567332838909299653941713212514100201905984670943356362613709807553186302632796891840612408862147636458462942320268542191755304415048585215972297778694732485901941596722009922440203454791318496298095687635617665644054553041477023627868842648940040165193705777645693253291730569150982998502410413164311321635423385876436214165216281706680927884742421107072995256258842121095756875336565000087569073165150805646342033874496069884318510083997175436841899177210437130936992017186532621024149431704280814763312909354952016475114232029873988690412211108203760812574233394083351801774762483321626992666803009778589046438387712845031024053855533765052459964241051875317803243996419477022263016762665536202753306229113161080641476832507067968038797180099647606859098759326725452068641645398602990016352813349687908047923235033932710405255700567445328643832685206868696866987007615402007450296028265106545591307745574830873056110036049512773260197769452700171458531941587287551903774707059549514380456048465228712317145286063597538671364804261962426538534307312584524230637469229518385099012180866541219975798415681947859148259728524560332007760803831255248548719101449386390769209682514977786115649057423773894393952933060118107951568582309341828986529164981452960803395236740779133338279169507956488896777894666237820214796316609832618342592640242701781487985192855340720334374796229074000019540095738596573442311509279813413727458770147770722879135918108595473981762970476110205125329140119519534797708584528527718396727583982897776104737076706861245755857864500452604499483271674985978609467810736691774846949028250480701956790574440216494481176616712591792164263758599496420321063498809558822855081240425012419411550497311612010480010859385855053999048374346083881422069328542099019202403207363506417836519611990141249885400734673811152368560618369853623571034805450776315140767898638109330239347252846811529912745967250259540481827375671148553951950039599696948136698652227762238331311644900208097373719841484846298044522438417022869498702691361390545987840386909602681092714312831357140900055719678462497417455558842708493494336026679189940187191371596171842808814093720644224492764941976615250620880031792109274158387879311956617854364964108205526767755716022706664937443467041983052537414486605707357321571982901123605207605716023542329269876499475101829350986802378332392825996358266076896613086188059853018640602810450695105311279625500066813403008646672709336009620686598506201432737236168892481244104908488199366636172577900806112706528954748648286566087402963284606971453544097091286601525962819721454657531632596512034438738797875390724710374523822364243955664917038364753245349759300272019967604289657697081127044637824889702776121567165637217389074895503162001870930444469663723199598174152939250562999665291589706468731592070945464483169790933292872436153092287659907630243527211416387108203802935202867429880835369400935440371398979067399045399534702976714929880623006936095336032898066595830419579931281570315253363469369912096548649836189187528177844192665447101828908073852234164725560201142850405840443440423000233929114860358029209373649154978207956064958285767472135931569731826942688291686411488589521585989175607293646022422297308482966150493924230840879057859705659328006969004956221190156710508371334125947333568484705578774128206511235528461511720949991832785288643411011190667147590362205320284771395162572415105118470024172031528108203255468778637260298409949240298808596118320839260595240860951787155990105898755111004691732367631844428951767606989494279442835256634318225503827857586482374826103534964361075107049627981734798674991353963193404705476133115126780326186637695633931645918609962919861442020611125042682603752070182783169092455209379140878543723272518626895657481088386698420636805836314531041299877163898841419437393015091114054796752708002454389160993296446446761328989205222867604888003254430720806857580228747845272727531302453958610794217996673729819162802554987096172944224902258660836782804948604857569788099045333690742458152182351717421073864686490197670997867616757095386210416789287824777922982701404206945717731797737712402021048072879607801318801911723223474904123368638486953443340666241129351250405032653075927061232089101372008648081648163444692369345355091536188905977556690200055441506989900782214212523455119715357836927404769273956490084409301238291130159573349363095063344960614926666812715349160488173398574160931840418892547173524208315015829671957322088079005994669531397988718608932806109710387703161306599028612567197104096436017318878333984916382602666733511600457195118731065286435030663975558194359130816457513436522153857651731931757055678550473720786949990937912901124628451804262177740104714784324462136982770193395465668344682706858220187359564842828687946427414051050865300359832888865074747693904089637140136022747520240825547960131110957277545571956618019414720496002468571256350628971946480625920281062059007765283743814238957632820610721929177180163330554732202033035104476444337830594802840385345057557381723269941879337452720748668518261550095900803766380285824224304845244859711706545483512329884759687067973725875518515946210381165255266580103337772882545966925484437151651497982483346013227953407976397196933561053066104197880575540535740208843951302452910473786094489155785196564162125310869782079582526158604652875041751646826435059636322350967928968330470118392459202540522293833392730924013592576691408252039447917862236321676755471032480089617144841963716272248114306130743724380425317319897494985922659272751062951649448331721551476441106038090668325025618751640415920675250384621245811884683468975543518406889064313993522832599752687714268216508590907994705828906609550909141001569615647082357885729410707147004067412609885345336648978259024319423662238215525859098685173434581809294215619978399965323436289977310583228146074502451203701276438214278887711989744282456734724406585514187639152323266747545640562572756482535756136273363585640201990568828883398673977673820231748448454883128705080459232347430484101299995777144178457710845060824217704847988871937691631044814762523393179386585226202891026964777766420169332591807746320755033647099409463119573764653173105084166721271760579414466465866626261014164793732721541141760773021024487693325016288560390722158830937853416307595617732610125955356745546953242648083635094143962074594541197053092625048656537802233639538238483523944931058934141901575647498818319743472864094279101825490021605745708458394290707125110340715573150351909356719503299673557219009757625955567325551064701659847047536692328318441480206776656783569164804340521501795902118847013920744938845651517666981571691139536982381558575709709219305762203143902643387537948268247771452254417964937875766840730605190825354655347472749589787080128158220628115998061050107725423545988769665683049028205205682702107764413388258145428112646998589502803332808132747885804537236371141660326196763710554995375519478323107761317581551155361043691900043734876346694049178617919444810935005565620287488972602863664045098339096878541826975703184162794755502011305418757470809929595683360701837508078509302722067586828367395067813164694560495478306656516474845354816174406247431177580653639572890698091446009289776039698540793862545866289891695668749705549057884231416240604812254209842258867504192199848568939039912669384318208491255279983968968463221166939796660324265519258816967300582630847633446184633441072831050873863462689545043608302375340820618305862187060017422554617445699882792608845274035151741387856831955977182175768488679803083105605880599449294721712484207754976140168106979188546671032455183508023009047553060196564535902592932290456078155912028526475344043474574329635314861336083716275832885955422168829344979535456984434241493205937025387180915223122122943710777602802332503730597895727142525424653313293625329820608203257682996616436580143652639540219360235213681080674853179015652116951825549121656998522516367196000380506603235568600581022112873540633554374739524279300457519334400847189207210471116333503297023599025011454377430252581905769153542392284145452739682479147379919070308443038711766909667995362207727516442825839181711382308606358532273090644115065215170996987352077727557687391598048860511345984935931289168474750410646734341078164604664690852888746693567358223230067061211254925475560497735855908268472730044911478836220673053351261831937706923796664273996102224679669402649401018693141889678544700202450555422148235890438120294988152769876526205914535747561873989444331658024485773548695395613005201493556268687051299178996601818379182126086843272389140809026773696151142014193969037830983199182935268680522940584924780032842873732778171299051381568926769176023398155992720972819778996429824275530030315278662020487650057989514005590987607916872421230373415112293773537497659221222907171435949918169367758072698421373673508565344611878031784546503091206424392716918630027415424151948965696222024205952065968754314411556934838816089529571070369318870901640168810334209677190460615123575708558235760621043072392379219407503450820546512535952292909087595557779847532605099285631008994491721902014054618568143390810005276861902664260420297176188498722891548133288971688705440071885288949514072027661550020905653161601322112810785701026283133409460319009383025832418340434542802086810602578164964171969796954582217386563049572569958837488979841511037385504391145352865068976828752251589839983240881579343225827270714227997059401950154335795395213902427124244393137892517764792957576012341653827961763959494256369974249913831172977128584060904467763846727936578644605808813876181323106052727954612076568147743221811671634400391768864404644101185030471902822410610691833852620175150369439682144314957762490421642588474489064759718338355433313209002847046175739512183251651560697809328130415076659983484100059004501032903024268185262897589710342018412869584237456128187673020460921686543041376504735412027225443048912828141644180369383988259461306783448311767757112923343003649201074213641649925762134688064106032427682363888699029608856445937790005512492651291946277929128392540477881393496664843095309318508050462859015586709783940071281929494320002602153440380683547589606771025208336068571999974886407099431008344539381157031872615301231182168363644615694524575041715207426573072275767806735128601403733299063836910414818876234915569541684947379514514414783259103376538762064725063215244696720374643162307576804074709493667773558911145142137734915085911796903969021383955872000029764420176354508741038773226448856839119140571993024987092913579967931926907828344287354093549752049743704393287125308140344641830741146552152128879008792243595445287415776304694390081131581174790895140798402950146264593499409447353793045728752296483270013068876518627948785577520675166956591839345701704544252586866352528104314270026358607495881184878416147111356190050328774570972845966046616368557920698072888365608621153209173076874846945238106067456808434621665316889602426976956118589415490617829624941399777822033039046334722064987899913330636621446650623535952778682963515944573149467591261082956224875672916388710714511640024985609538437249033648893497548905251133851404233001577726070271657416296407501871882436390082482559333370298213670724770740923591975687193065058723763521360431598596415558245417239453140470239151566376123975000798622104220627931614245227409664911436316086800299689409544903453142421785684467904418992670783300866788813232418839305334314315546407907200319596857734506704120474213383919935954670051399363053752107720669190559047199936458613735018730790695058238312240657357817685497229025668925374753396343842962857176103728311301238657527921639572589688874496494508018670844012162715107333290887997314246825804833510636521251540266431196482320881529186492215188394697921052235111668525466645443190982249550031394875141608466756723439073637846916377798170929971072886418143820766862203964648622445978045335019689314011621620182106269744302826230779838160836464361399778791134425246188254336034726064978697505050360607687701094695249144627314521991173340167350623575445142508418458561026116794540872324645290734398311699940419795511931425473494271383479977305268292927387054416660762613508071693882849655713250723817556647811206715335980764389797979138292690079330499139858375031502428514435966291981115666933009407443915650541446267055036837337056924398187265797409671208648010646015609662261623477070408334968603705522253888200290622622992904597270895495030723507092556574407272902030342737105375702788614052149775196299591831714385524314303267010035760400524236262567472553619729922997970803108929563463860765897144359647541075928164112089583658389785517910335958472896444830094045859663720722380466280004816579763406452194993493312485092214420586345363301881735253891378215394078210473248565925747497936685437815440769949942395813813501450650780475258127121005090548872757212242683564550943419831796734545611440017381164748674671662884038788460248622031489084825327472770369581679952000736019929601298120108347729670177135354161487186419994936375814500940883433295145870900392416177944966937790717360603680613131299617797935054249242822598476212336891328159339573664743060820464037448693056388553385965708476240718794935728541609649870863451188285610385595236989532878713102231466708621527851382591955876106997380523607993689142696617446640628618613198604000828898551943280667193896016431116432814184560385687106657816063261745138053144603805306896517408509596823563098230762759238927395423477922851013737929319004659651070782053817774300613982681148707751063749753264537408485100742869533212200834334517646742411345797225692269576236165372549260546980710762759438402274526148282986061270907785142556144788592661426825691649269493362077406740580319557216533680853129282410006206935367824690448876590273175302076564202163849886962187643731548896151673549465608817794735570018156058322523521219576483217904907981785348196531227853740632002761530240810698747999371894051927655046548432537264642593839524127260172527378419843025312459716909360814199493322995326721346434307651778404962764381316537876023366860465191437451416722548960096902038454722812703144735477292061392985550224752033540829167714659424067881073584397014143559405071210364008895823527372287249621264159225286281156075529993343281843899816637945028273869424556303105735133049631837260093478264214940409281728182886636967236075171857675155039171933544185049689726324688526848542990180308569036688658177216337656953606693795139777158047016987475346115269070638876296100582603031081785468859204596167686762034966174872475785570576273004421209804376046288484999070533879420766052244889084272310501559065135087751356413533796908305506621830609166965010627261047146181483136684231714937075522397935848861168876080493992962735137765994085491986357319122598222980873350739273842932331452164811366374635572815865315902789708067563415933123573676380520847843051123879051771934252434462777126202353514905714662733865356514711537831719954375546533262104133765209435071643558977391373164837664110397730970559743089051103992885061697048776941610471251475689923758202240512563449265023087471773076427200783645965066716221320599159299901298118057059757865476538570822559571717855858604333750256881805668919278481076361221400353855694034409685322353692840071962507773493998765041193319835636388674339003690633109484557156427951340716776590460604363899545580689929060571348286311485144636579676911760057871271593224726872361706989631880748319297430334046712432060649984035962511692181868629824731072684947844436564085132542799881691198561816197284336027541335835761184865080833228807549826501916251819282774505993768213561858871745831150837977966553714463284763166246374011638255156077181876505195090835245832655335353344467012059914442947269324309742253307403356652291581922126305338278614895075299890814674672611496083863368844095506165051267392625962111810074353463748121471758143111810550206632808770182268931482161892185200887978904377654176163831203035168757148873782487016976827788794182534848755079301409749511867520578926156125320708415239641962664024774843808479737218678934293583711582161548097039708741263508292259923083966500392696767702512919833889980631781054589435208145051043272683668143481494078448759480757589473083996039092836696166674956403942920374518925733273460639355647112335005321863181062852071391733682484056664376056078332546096444394169762373611085474741800280943271152409346747920713118097938235300770895297384413667162673934520896384947513857626633733447295813098034858676033385733796311854425670764449683107054573110416306200427992022939404702092504678915987646163364010558703776615590640612858361011860327332164965971135467090234274799118913022726968564687610990527218477004060033985986184526434290175419945819911336893518925872903755516712388773758009272859725694016185523561869352721018036601079161338189969927638134486860280974601913259346391659860180498431181920903051626724740357626937285728932593257142752851232346663847436989299834577371433291735012168614821785882478210122758353284449971808868414438399372103771887639215466384446078771861434584606535625633721260821444497237054184307485784194197965302932600890570245177811010972975685566611651784983201209408766493257482807862714790578114577498972307612892700494472771121172402054129047900954482361155425802333210764108784113494920266700750918732965109961825225435198478961722213942734950753851603201952924616958519804543315483985539902466945698495357322456332815812000074040654593739752699243448947317435268069185954839302969928270300962410560099465904880881215250769135106462205704561027502182657062772612029702156568732454121501354370146525218187616060651312539680998152987480578067759151958569862973314692907159387064015671436829237581525340960972375954848277880020203692798255341599465625699027262676277002966861610905918307342587995282717130560434568488663559412755621255331657864876875579100622540421331780432283985331495783425877988429977016459160760246721243657904205992552575851511290984392069253537046045962927631831870548825306076379981662851313838027240340551736050248118385374392596734289150331413100658590701019386448481580763833426609426624488290914969590898824492634491063393249488472960163576418313168834436935802798236665457941050951651736458128292124140209377148001675744388603542396796466327856436698530562464272212600334743095055717274516781076484997034234896995812941556821257160770004855090860873491835634877436651177541468676160330857770016790478983141233654258170390929549717905750507801536265552650540911317033112332698591319304024346156464925864769122896656384082704104167171574098256829904224619137160474089213569754939207949018320789924015555593993693630989414331511193147762441963223403576295569077002190239445219288511578607039315179731562097230888780834222112520563787494756993251571284911703727152230215184108383502601456312713001242237848330350168984784274027997464347843847034276958616270124864755347997688453010099156062585367273665284561010860191161006408862480626215816964075342124434817243038256267216827049120785576240604314963901927223535627789470032864799318389105564396523305922704090515628870493488274522101572701065097625739902037767603236869990284249568651387179844792689968975109889162379236752053773909493188892385534115543862869462415602667849024046066090655515500760281385301589866570901054765668042532684461539212959032958597857387669833232521751633319963613541079478545020518887440972304101719572931640055403881345671375199491684188333440128958148450804376712120855898895466669138581173853552570639804642470596713900389116896059128400756432877584397947022430566869543045356547345737176193881586588814865960831695824913337668681175796952878700977316483428715730310661526695014635417800071492929592970101426768687946590321412520056553984347801835362366569139189528058868386762597818171758696622289508441116507167165323584350727909393604837422823880618010763783305334886046513452394313700452152298289046854617397373703472234037642135689492673570073055860549626240978486269610730318958949754138639895748450272070747879685619942045987963692287746597775737006707220570509972581436779621669579302580134934169419911699883831025359035529509661092686672755474379958700878760944239079031153961259902696820755598987058984825965742352644412425715579633858323350267834465522700770856556930010226617062846392424988473408068754820933352752870564933773934610626406631385854404769323192338684425002819066344151957880455377359319286975598494602275568675158579704196260936530512073506878225180294696338894710844398117379033240478351189399916376595617902557158391827624487515004991771381344302900029137307071870455825425474491670211554875198344923107647419784357521927786778828298183249648426525756805506429903827603016408705565589910226156301944668322499188777666960953213956935976136294976602469423815052061785897415859925327733643163615224294446955567328360080490884396966169878145403798086674974845344598745465262584133239489916274389606100521801081532173123796191512779060100834850465305914584764394166808275698406099984305959409345116898710984342298703754815564739895718661926738480110895636080275212069027767238934888218691385653499439374122160685884279053912298359066537755644535963950160418206832068715813393898965729801556472894621084948851076936944054342967086549807506371811930715161206974492795424228990099677443739171469239392148118536352215949591291997774140401451408338090020744541993973358564344875303704395470795570743559421736449347634835473941797603099508298365690547334464898854650728920350149676212704297792879697326801905330801331959097480294419372107338290535233200687640127096982141060968276847023931959829217892899759473362015277846934699992170345072794324588584491914098780079773224798179587058711264499847859989648150265812174707354845019623038496729462790591831428536133524074069318042872524848205069765687348215486823947729868641130688407403503068793721764871443592094608360915106280754700787189192525363210794529209566878593533169509766292343535437856278981988105609985229655368262277781812168387784785911517964189805676293974849491921623431183352904764669786448435447982570429528050008168638143322486253657867300425903379384545041306161508741955506003524823273895291084575242473425212875653305542516488621006643818344736212601045348668203608342605965271281597909347312327462797669826057241669596577055782707321525070031365064779728949911916663928448851754598269746220606974116097039839938021528534314986893905695307604520072864261485498830587369584063214613549592705348549639929762364300651321677417742481961337007145915567426008655545642673305807850988954997178143180806690281804135101836536438797505099042866921277017582853330104580597017146815211963227942579793068449513622279628723672985756904501345991764398572524154077610432408400213750656447446885663635000858719805521007404523474097582219731558889089753182827536955133643272297350784304528836633914159848372615598151008268658620774305075117535868495688937186728784203347819890437622411862896923781560634221499632361399576356316827582802258619230056580785466570091073242078834366528422045836895122654982954543056889447881289432652673509560575961246423787977863694216892564702868709959435778275482522304178344051860294143013193380611082819053487030783380905308442749943458422995756288249090491455506054518702388826167294662496819047788305377516473896030929553939273349182189523757341562426829660264399955522006042436771790277198180533967890905842559025033521805262898698378299507977685580639220537350512555413901522930406739297418558743886292233854327465082962116663270529336911571358521797045038931753735056238979803265805466022276815937263989707502962302172981064337431027148296133151480445329463555903281495581859642531450657028099549005406904109638738447354995172767164923378188055086062263595254760688918709014822841301636275880427656315855057753194512492279074901566140053398764895834590586764274572045934543672683894687578499967471416579523101426825986133206778578792963065356846927223612086155914436245338998408432514679382620522175331745201887799707640701758859451359039685479775085924933466771595775494967157490182959851898112059713199419329003042731630899726797301582647990596934872468608139895276339968637173434541948231927656706484561721336798241273130628920764000877495776078211266259586153954176495586674674243567882987569852526458270738633122758093210921445321026134452275464322079170010815992112418296439640262014695716719994648271415581668350464421006659601018541320286978960190115481101979228559385197196608044452601355175379866592723918938352102347322743286650481113672836720267313313500328815300689533922880897531149842691137190731822400627005338836062977202005043009970144134934743619834754862943948616538507331647471806810430312342712871892971176057745468707575062525813056339112763450381171007665486597019779170828008766511900832811553520643747756473386346050492344295366500256783890964244242553735532301834340872040785188829475765687259323009047750323764940658960940534743439019025457454475323393480478796754142294417264846118932754283453607754959358401043340821483982158613598220253683928601030567050278224061899517856929602646345685620183466981032134024947891725177578833785754556659796661854894954059573428844382110704575216263531789259976137633457315481775215129000061274967839660939481017520740514760302760795336701355535881680271341121184212695256552081136631719435372882909990939146682593436156095598064883028547753422190580406390247425517621756713558780076772350694161146932590328456737943176147283060542063154623526367398987827135623783662703139257902990496068613432373929244880279649126234290425880843452013258742725349130417760588187758578869336536530806532536936996690886587274023041928257472183857195700946193799454445381674338322656630979220171458708249288411505703526274843134617607331568305068813180865082456462556845598824864412777500028996857720014869425982740730403693500494195575465074929807190912716839903957094058491798071514945160136508756244995502530997053946214003806347546745486953909609264121215988781834448041827011938602297654256295945851789796154000294013703761244989616494206668948072902132246150021812292780484622163216257749475066621866671296040632992051000590473706945364554276340296886182198070954399983258593555403273315678956101155581442214541278067948199864381025999470721015622818259639330846908059391351799652313619563833452738859361973808444907259113781905108381492009431692641623390260799020734937801454019241427215191569396094714077271904893845473315274622916867023832633298132187399658838326752929824003236325682005369083332267895691939252501212926658568949246252901411152866002259268347384390377106892443166840801595661285177318038794209319574060035795714020440583746424735979858375331516774963962980607186468507807249643667054960061804945681176233459322874839972998598411780381950255903690385871554554019792380947660228230858658136075742449812635282249853269861321270737510886354800676034087281457397130727517353320709301543754203784731041981034077121439796952751494966052825351988280013441217247838833196943337987388116059340353057880620181224292137497457006014428770483455073859080800247152250615857079371620375359301686984624002180585089861751138625177929698956357380561636783026143427738595412260144608446151587603576751653092314340910550178385642925708920782630560020794627061362692729999127430469405264544156338622879173214096208051482768381374899398732817834328847800465313575995985863208019739653075046924343171687166089172051906776364685706959621990110812309497227750996385064344990335250167890467051321416056299424969250684255724331048189054963112451718898381643187363571158395739074165443216943456072161924831308799217259230838402988290414950451523609815855002634407943923754111626028540425138466021707245200869519184676484871693150927783123296296319805309210480554227706067919128080703707139213485671092736200147864806123478462942075519684771611308255234264780981357265788184534150590028739691102073544689029457267153273296142080816330021872088921047974338785044252825779966935519116163330383530013789681950392079355264443031388400249294090855162535048449193380851005406732488811523582220556505755220797782771354091876991868432250468603005768071810786376524613941691357059511097047886172807666605326627749142670643788073063297802003199922047122716916213510346541936890937757906207797954075682742675480991168627801562583546439761576382900056035108167863452597814606087501809605980800061990319245523576737471106056645903491721517168343652620800051745832009278894811623161023121599136877015911113659925528585881038881566520116392174342990165931868191369834438245244432329428446714420679272038954732484395382226458995596054489488400366274813103384530577030179463879640732242036166885488309662347983720657487272099674088686822018074249703517073553727622469970947458890456855157934836366895893356294093074450713693953980250915323795480713768606998192433927642115986603084280241521329185643285554961163749429775772838862393159564239410456030768642142773363211923722080767520196042840453019470736185667446955176076561264962405879053261542193334665287498183041276648127230926113234363686989382996111030611152337892714767831658737176746900072013839666589606948950823959347602097716196354890928204281582389020600931476791098195749908176241315391569332628521314109585245321418722625886076990205951190791175353396101450829271231456409513810264762526580675629920986827488065180567202337800107758667950514494022633336710438861081814551500565930114189866343189581166761401605564984341337172546062026422338774802282119951561408659918456584989256968117009884818529195580523060481178511722262781559510598360008906338744874380668216943580774927430074747241660342853375494159734153726654076057551286815898808874528174987038430315691459584986532660565997810087339980260237712095531906699509440926202228773036504775665074073421958133542574934165900335709064977813918407331893661878636265908983837352994993307170781993066901116541743291938584594037846096949716072459695407299995313928462285614190601048543910860722056733776585982186780191519973940533760782774977922269701937785634025782998198049023953849751652758575402974945499928250270377193193362619423325521557562909306066844613227458542800976035182691880536952668439231933783141128947739268253897354069648040266494442408924835851532855279862867267089577146241948281352110785395399194869168135925526579144620088651705937545210031353708886519483247635788191106199240796896225841811618881629512153920050864241026447416061428133111680147651264989692616461847629569784234169245471615332153953480679512294834290622151626207424310834012522590752069738779522814849145296328247004355697994485745879826077679191338201296902855981893661771621394882128553443715111483238653986925595881241312523755576394463863540408213098084873663333074016348845066730629221546389556022940525728475241943534799250492948124813802981537824128876879218096626086702923788974747804288944862875172889381698497275814495889603035708015842605855796489823552116264320669310705243066140775892196624780895715568724248082100516631401130213827085667749898700472777002358941707514275353172431934964398256538626014358329644099018772413349729342934347246846694567601070092514551547730608751870592418777014180158576015717223891868077457958844016784956608430223800675798244478702241412172668899348890818129167525272521612596581844003173921991029952075891060586274373192787422892197673361691685739261201746995001047976060226622409013807211078687935806302495428735966138426915049238605062466353681935658057999425378014447617500166422165270009318731122726557924074602877872750280646857211220107943104072399836620196545095550525696374681288527135764082629797242775893059424540634103353334224514062815923294920000880715911056849369119298776314557155819137725213916595601840410109497830616412973664192206814794056602801855535891138061945543372756751872658627248794451508866090761735439037654742162152040920507251835978109709493891876658335769250660666037662968794199090889218280924502199209586572819516814669919967818228941238481256415472380277149858485085014005196429651191288137441969488429930980366069516599073149159991001045011623178533049913945634643762227911018110852571540973039321293678576691641892222087025525160843724591502089962290055672519519752532761432330697325751987218887305758291748053841176129685545876734298428706387544512333190230856885320957797332626681907514439379653028112117727221877571822205206032923949039575210904176156487479244956569532676536609797868633867817857123575506771930539848895289569506476816285403056578969756003648343723736609143985255315801839751259417865997538661910363739274831757764809219893700249209790682903436938768094239752335929451810279168036046242449281983578877654766941118148639268273370534976768494793453867687978839251075030736887021282723717779365723581843837935024695629725886390802617950177659701568562511754556910546262267991924556202343104186074497414528095634358689446166424938341415068067010841465298339815606869210119830536595910095686000294475417543450512107118732718951843957147148776754988691547597748045610335456943805988174732006870853106218573422819911623836681733562509463358118823249216428656954358305964694948458455315058186743961449986004637241076958495934425468285766153139831318551924580077241023657400832598256121714569891431094748345314470756639889017044721941863026236337834060592212440596745814491135366129844449358247568298940132142863930702652036062818431625873800665929517486096431391312757057598052234101532543228091069190174258907442996624305086392711192089550652329055740262254452535513297779630429997572596824985559439812688430389672065581727232962600741474689523699954420491261806299090355668907088878029571806658894153672420520487374259671782116850419237330804334161812239772517671332976734951893432242622668234754625527614534746235360121429249401236548428998281462582701816712148876001523752394604442518161432958237197860910324307721285007085120693539405160383376154803041269582915471488432767337625997139669640804376042603453979363420331986559567447106834907653015490035561675558969185505825515035262001083423342581915018025062954080030508581401957949909548237655193188071254868468369157865085327289665976612929568681381155219217190013005504896214493641887295504582953995119493958874045870610867028487402316090400223441211944258928822327037204666511794456978394214449905592548370615464752621605942812687712903095371728302651189628315078553360622237653663898004380144017902325784971083481529934486588133047549656902097956082484228584573173335754448358190160962847668302724034830710040097047053558087865988450132470533897100858628494391099438612793465770271824636300984252399990578023431225257379882349696908476326489395442139346585418353834091128238903464553850215378507116640742442861561230371358212773830765736661153638336010714232717123788351965115624972313039101942142287931108824999346293323307410353847244043367774647638131351464290677489283672958900735103114993176862646618297858565095964530419523819824113496127875045195936557497364264866239569699025152713326597956027618350733473086688387344616427466783008081241650396961437519483523018117964895306750327186964497240628390653480095631410344425735357329877328264220916673882221838640486651499542461792510844466034893070357227628791005348280383513863931150168407959182245933507030704604609865683267540167054427768114648776719317206911293805580780496583275046389157385740120181268434901781428671633254163342777831889284362444519088281711451004805822933011793757719389111618590200855457179705671543198720585322352044672964175026424367487161068823639614195907147842917797992574698984670447935645240159033162305425859552512641694821923934112960048558081903671797595783391805664217425268214942374776241738283797237828982315795581223773934640793397747439396762626836292522943300098919293075175144950948234597124908271128898404913245100415201436505417729420794370904016572583322481818116711226698663318250897316359705295361079950825656352797837182103685720149100461617486471544404920750830244353184737295834450902170876302934013671875972398659438573553538108376339656671831786183652636220403501428453871975539206578103386882866448690456418051648364145003672965276690441997490812197192394013974596148738241831543053289227433474077237689531115673658750680727943664706896725352686265409948830293382880204384460917287659249068398183690371015524975688003858942425122503881611456657281874436885114465417640553349496854373692368062071450319588481904375186695903812565239762466148231760347516718497900557605807686828192075019522975734944041646205155740529903851122629503113038222910832172661399748881925806329468872024967088025172328077117293001056934665572347518467035213636768978673833009970105876431936044840027661127769108952129648544818984138066981593548549896907360901692529210606429316620142796129468736947006680983272554113994753590455782465248029882082255930013523613577369758557372998147415431244695138829048562548953327318141077107502789589447008213730297879903359301255940108382434811012239092606107166563998609369611155879683158176580845439199124712537660620806995635426611105650865099898011391968703261193984487512880657351597130161884642918000605457574616754084757341865097799244478524417504094928727308742952416749813475999677491133380555426708855754773630422225269692268879888431545538193179082972311925363544490681150958614501643189695291807509857979529471247458586782479634757153995400741955896085860726933077810637139483966000489227455319201263031529987539120795580396306473918069955233698044321113971741084741691694701873899844513385831039603667196472186280057896843265413834713966649765151639274588978824635218829752801044178467958800235036329176196879248011062704589123347972840933955521061611076622786116643809483736480871032021119165155194913294866574152378692108907590623443739711779606320190685827572550770313573054261293112622342518618941808593323012701950992346196823156029477707961457373636686181662667804349057972555853580818709155738753831149261622635441239145700106225400639477567057752122988312628761072797807422128271678313465755157211928181504636295776663342917026362105676961950260171470242794660908844692272188918730646876526147117714531198620920337270937414450143541033962229109848089975727928256752184158240847262710006755049824400891677675438106560554415913285566971410697273075355994633498619248680529900735977226775914222952703567528158442087536752846683368403463965985341511179634580600919887000050120622497405409977689988587014308496758418576214382748432763489065813005692462097212430268606453214652008298769917621687049961080887901409249939741407326411505611362712789186802742802791345841702783339934509124657404505270169081111295812432325700436543195254214789852042624997785774157687968556468045744345105548409455989583546117077792086105103173250884658229671535965449410896916467086498813065176303617468830762368415665040401109268076734705331207378992838688594598646525045061459010290658896387711660499228123771699026066626560253446734961366783348251549269568742875880716807156380273379125011547230744855535665366627992388553275263843971944496278967064744308640597885258391895513985672563267166593962689258831807041065083086253875164693327452118682182177008169932076009182075532842184128949739698701138771701285409730902983966575741520377758453809153211241521297037971918906611231835598374605497096148100600383915708413279161682866109894988116949200383895340154361001557785538636108577154530838175601789455308204676596515207169382267429155709416309819785271529206211398922969071609286112940466581038742023087902401542629256514405375807116766797635111397520888440360434556175925037314921388288161100758271519131237787188404189462854916454570563744683895973036380729709268089489076112784318679709836591519794708958609093833565889994718602558418708015567235688238711439646815497962952780817205780527725251140824693739862713878337746185524984542977821843614029237332384301804596438658736558027044593081146327579241298762831905082772166175911799655066074878863354421969874918214953584544341647657688318085619462000980400428817182347751003888274318392057688766482035091328529288903599789364956548364743181324375009282429944346655313889911982958508775777519188033215375396742887521113052442877393155429882521925244485404317857006573514773516704993667343980057603819525253526140996388231731761971215197993448626300200607574104918271304186848540398488396779956258699361911303477180584114919870673647177786668041586476725111949911049532907646354980795662917479691228257220163117262337222239090155300816407956848537977565716126272796813462635959164598579629639365232999610302056065162722277517370390358655311027186617596719758748907077790718220899967274557377166681564789787920403656300613407183398107093055020041481777346022718143145440184940625114920670284601171234509375617564275867279042952263657616898379693585659665166834196917884974835733854424087498594970689923825915075876574277929069428742261774778601450998390202218354238754032235764451119195800253684490713622419633222250255568039434860904392340931636317301906446878598263180464279366273299599636924079136302245976960928738077984066696640122951229003282666862942141400491145707186059140705594418014975426009166938027145917943446703694271929072143037324797443007711156606391687826617374762724539002322110696747187063079379421074219923827426102447183347459484603497717878299763014568945301908307497165535302619558102102862281462386735817061502548153186216248150784795609879184519549494443194399840593211986113981861320928680030037277970198257775619249716380483023948088904989506888628512039624261647026282369641412862851719596199740105383390942007418462603593071052244301196286365062229464487289381949293696427047619947739223785406352481966918344196891857467579848849424311179579989454972910158603259571054155960491877943577315990908510388562985750611548821195290222234562624626894466259785928102481497485337207841172944200429103790461856732816645037787370952264466438668513151782060474877650938632093068162615416805396147636225129223476014331233011898857381544258748832601034392874270479569925114684846941691467379693970512882846196823755881950734420565083603852765368576704467611801278219951695229050040431247168172204538260041152813406365099770388664715089531917310681584804312611991265124628729692071255859913645177312098911708417102606575666466345690787630164860648901058015637760672994434384629658808003221442772858518229412902832589288601660125293385081951299652230215878694990137619429660221814095206352326868912345264616478468373637719147175281631807683363381785739180562090409313585198629312128695748303304020594650682190667834162511795971090361927138554081039306490509158639656290423969991356905161916923745865000795241241714333117684908523293510044335658251720542131597225169815341929021523225749646114998150255379061792046672470179955572989865377503594273407976948993520297619628537908818936100832362949663859886561356914419489943603374496012780136401405355080163155195112242504719996731085566763020216000040848636030394010937331466608300247791797223273467302782839170435769961647745441321262153484518978642931360589888642038753856263600433701614234284341260276878886916948544320888714189425201964300776128813855399794974919589521961666359578685821781068365769747672989488109737015506869571893872034438580072572853676132332909431310703985101314825900936911645149314134230518257324251302292101612135719073720218458246958974574911979546070304008792056770556958639601044643964995270708772457476425676775523797594042104716175181842093040840098450996882775645891887337557125037786196226497804646026313872246416582551859960897896417808362070764186426109428409610906440932285087723252084942893579927521050171231218420703463649934529371850327440434929430094962396112869826362883246570974178547195685253817715720060568951287223761178356254828866019200714598448281474947542139340679556042035391660839087844261914118053136178917322752365989603075201340199426067245795936100828857996985975626665006652271213967952603450890171359695134517074250156489353092650592115291253839932889116831985674156720057996217604504520186760508346401714087938832069056229028603510655288416431320855801252426962037427990395488355302002480516029866824085671840397817664751843490113024857481084560026443477821541438477511286460463241956001924455355912130967611858469718116221951541538396886770016124564100522374675889947398552876497403748170643874581246726309468136121907024418182150210468142382033120820364605246905928051801377688236662520628228311013760569187089362398692152289002486862004474763172339424617295887987741606535508087781174941512095566587961078547862872100997037612976519456720110463438267363299037906959821447231171835019192372476794146849873548412634049189843656144910098468983533818550029690630310790440623228549958864157979712852118188920902627510204458516869062196243499204145695896982416497824269603459865667538704965757681363108073756818364420198155550604471159188475921853586703703489763830869829417474562514825195967890839292047776234574903365508254330067339483644261803711720086646931304835121172806903549228788533947701530655021484425291097067251177279158566632101437702401913045837008801530936774875440967054012341087006981733279504459514545885606043964907104284338509630439956684936847112605818568318993947327024196130632581405119580816224082179695513381208220339288336879234701956768956305375952256960500453971077269163739002201557227218471622558651777056049492937666857763731819373560057902737952124149366392915980980121061133580939560808143005192667103390319821686646998864061871109436482859924926459184296274723533182551134724090704412387679833129205095814875791489178944240082487502661289233984198000069506780117556014268396606449194597865261232286022075709969101872664690839840136690792155162355252595244630252680475619041677860325642721137593604988844001515145954911412056137439542337280565408717846597737273423048095626828902189689628602408081799872759816859440919578528050243767068288646046507284744374828077901170676960908445722260752823489788073015706977550997114360120251386861014255998496134125814085903866388929891480937079336655114498384278703334825940531818684952679895861108463493395386850577520095541091059026205085939261374346899066107234250376457155055553392985744507857563123220187889009044036694847585491010175508302703678092846158138753556518672950158067787679939160357778188821344958815169473824041307627031893779715270473992805245887483941295273663199530956980845803796842032113912701583151731650597648135544284462863323120787335392329442721179556982626667121750620249837491646927457743484448770669194707839374706045332342056401665645133258513403364815284183563885982523845802998750245790749915610122154287510948755801872949286046754401589093745332744720434940630240859191697051047198495643531712088031546993992962245756997034931763159038996673722984201765806609792272251895142067302414650214718105126655353124671721375656437837061217980274322173902023098083501620896616787743098832165138177624260664665668381563852667519696719756328758345091561291721766059511621510378634253398841688492888474944432895273994927838533406680979822828619335536425613326604532347908934995448656853669993975752524794767999060441290221224774167959897212555907293216651214519509235916726302557736895071895488153635437987227569615115800028724087681234900503986850211621889287110959494865383622245567700887274271430492750345132613860846835268674928718274810382035710271285505252624611997789740200967883418800330599866130800103815433018345461395480268668404174919047342932487610917610567804438886788179586114046922894535348271995259797131034087149774149273511112627216995678688665819463991463777427177120956721111899869650709474879266883442315227827448015445102003961973293664012015906777441111412429176527211086716832733562716293268684126264727805897006406908615709692105652060420063768508366403932551199075815003794137271843641632833775547483337190240358386230362168980502000948370110337165806475202447528836351145121017998254433991435017304025797509821462387712084888853856246827649383230416388782111284436915941994247701500778457888654887436272771245265687932611162834822869032149697190516585803452145501286228664339571672258621670826306812464250438382439664423608764969553012771721654167535946587829111725407228432128102834404498185517046530485957601982056240367076260528974663908313284693723145122680805591928666812845092206942682444672428693914436612431473006806389257437420011740640561691814458901903083600160600705407821499381159140692864083896236201268538617594164893621845512109502882463085112994630117648742967674661973496348024636729611944353410948958294701531251540439438528804708028400870289340874367056765604353683553520848007520219451889593049889184560007594629099968564282869282362608419489064651329216175389911255468950878234789502716529422771693167478623819077938097339215917040592325609066453652985309735465862742112576757730923425748617989298059043704773464825489340101804075096095608031793796599053561981900428655962696295935282861061480242078388890517296977769322494404769319922528669504166947913566752517798730484342075436215169944536695033675985601231156486879657254500994580973949184766275968204965349655108243807090112917952910517147043809885023566227182745788216120828465782749127017761025403320134479007981934810889657521270574281781223742184090416952031672095392201584122000560550834409953015662091590118165830755514462721380290031695887159054327628653346929763175610161373493326950647777044669212057982299948572823845601907709750223176281097142746477793958999560283857793980410861002545300226482921559726008122586159955875097403933043386951562998878247995818201822667677585220264170933458294184273013449792597404839648872333706979128835659700194714978512852323332102937813564692025421826142649354092292024163321015804034892546863411059387409910835846478392279977948550017730028332567570155683134922898606281760658436924886103153688257367896600794324738138451243100534676088619169839774462322003735811279553244987165460547100811155258260348983305871711821255787831138845051337179176946009846705072012099769841551203297342189357112859507532172369128186570483452093645626004339739033337077835197232851234171909224916313521118770602567063027892436850914755424896589355284012254393525667638905309464304007013469328390554379701208056502444169961577488697141189506787678593591367747221496667876314987819741492950223909747622172388216325400912735652420551212558193907349108962250231185179157351570662438204129450722916742791905149526731196388333122333544069885681444397736862481438686967703488330421575533406416975429280588969769995426143235549656465095723556822712965541280816110840744670219370676756657834293701335116385747614191715341142749780435479523558305044854696938550387752842601265482345801600041418158862226502804874388396093010656791754641220445217435095724633126149745192313781123913945269159699348696017499550246410644101562111038015389072341414141673771551768220847642660633398836855662345918767233236038494312575321978338143903623500830847536257014091877775315745229522050718603689741011737753106039727996542573181652461709728707225671082425072224396142865075333179286664845354430829470754466732980758535223351234777975011907810633974882772691150871222571980900268475542732515106814611487693698407815372164210216589269332188360137777145255023168464612503655618071557817086295004008979303443521364124915572897419819125649871186540271724350722759083385356049876772191475527611061378112988346335124655122650379939945581501964710578399571595183836649213222178833891883285129923541668543264554932920296278697565069830261156099151687323016835812527664919621030669643751597969490388897451223115624761243630751245899529614652319257161173184548306338328773726348337570268166777910603155031891843256793030952719410036695639165085624813325129614880903743082200256131868597475354085252733411322249000548691247025546389546826010654729757008451664392326292603622292932189144564641404857456592568432940959903877077668829305849353528836794530347182175119094148749554734315057159760880293556042749521941390704470547635849458683702455153878808525744358244036978124088158851481518287455633610656886525319281939599284840625935998036670627972495443515411719520416950937666197715594941232738710880575231919352338311888767401233462303619561469857583664509671788144197434943262423287372995932288381201207599745330158723628279035482808128145944449268130676213631202357804200130720377750782197475829058741984793541906449423428688512009435189593681427709439130105016104765052014034374296892902974738153448066800673106674207465628743648328134229705926550291039434786058026713236357562531075925731739968232944629308103712787455674873366875940964221740285024021752619217305619676302543173474247331411151285453014255630266400482906867385376590492184972326120755659216690255065154070492472321773949573754266144989299772143168090245314396414030644314805745188396135134158886987862652348721967278470516427359376130981637962777568004833682385410316884231859526584331122249673101985583920480937186854997771749567540554380387924353295238646331951142207319309294457693270791770944144516857373149549193507842235328510926231099744142665489159632980647525199029291340150937455006648726235258852337245285262127626767746309466532915316974715215463110379176526098301088884352986461464332624607301437184768720328288116169355674415130748544145781487793823853615478933680815598858800222402527793948082737222417341557037150470539989865704280083679039252379645676671407619691332211932626258142959212407957105884185979605726548801516576812396927945396677709002702140530773598331464569900819967983393047030397786382244807593049332462765255480582746346587452429815050840020082306313453872739759042690980279668484355084963783312369924088860546624158032339833462395585762925432818862840436031291486724166467352610175333122758732943158062846589345933706404934632084235803330581379775221271815666705228416688203955253014417823883199526988934330271625573197039989672132066384444586320795402133470417631591325373541276514470099447056503406168603595028263410154059408010164254677794371599696136801256398639554408012543780364446952392852132066254550585457096038441885584306049459719875264331894039567551780356345378298896212138533706704524366398972454237442766858968508068699154403713542397430615957425783226330061852764976362161043833663569336920700050350525562541222434597371825223545052182514049415321263375922589583870216199572631459955499857525762640810500764343489504289128879686439539396195317081672993000211396943977785423807812728488549051266617429881732308944650987702972293339666812323619980813940710242523204096940448703447700364555962373954776340569185700745099705009122430923007085161287812507451668891255276798809071639701612556313841256623863433513945624875005163415939892916079599805733074480473358180787439632582198087571265210935944883270108209264590613279405708322019228472130172632084753878570938154987516846621342731791927261665663155840077825146753138812488610275941170012539811091359552452459512043398408803197287241362686865033908336898346567321270323171855853411240829008010725685652315128618360955256551266805793831009086169834556848673864948462137064492422691363501355140245889245683662472844475615876445313115645025532831196337387888934000347545718125224998610453453945555335555452262784162889261414743615768323342085954790535611204734554218702089289704674875963709985543216466194972850071403785728492831619741604012654394228919925442844376933841688245030129342843815341622255675287481108047195651421333701688065468877780096869133989729142866969995648870514795230166593678901988872839078772759852071152588368672763657962185219699248835858981397844017732792961430090062824647946444846587510716566634072213136931218390004954834058769485307008089448184479426567832082700277552605920385766563674613495446670458814763814978745826061178553062661803219585815637425191535457164990402695304917868761328422556946889991669082289470994073534234649555813681504438371646960586890561093151200924102834522699789413924229510794794659208480592821469086968921408341484887777605183059531175021313736533656854515782469182699449261770115835376812062467397279966088642242377780752772838329137655478965801198699266375404072956196262149225489912255732742978964435120507564189018452775033558499561050622074982472052691865741355596504798168089887758710628268472069559146129673329813241128136828833392948709336488069904941952339465818954362185600810994459820701257905674613469343594501393558987308640761873112380700290418318791018731060465732880332484065140998108948236060687626699487682709879322271324557136463810433731065248342540753589451346869779782284384413757525630395885813372023454374428597825952100129847585859794263263042780582346895895220217471351510736218935250387633981458278730036809141802551798401163489778469803119184265591182936559889340868143652444016279995916146848847878847573158504691403266182976332351397634253179798571467344722176558765014531970945085067244278457907363287764026457930164068996138476742622038200480964680416212142545663561956472164359005503940775760432988033070322993014677275965379025901455429311277875608469465567031398187279610305750003332616804674604136748111903897966802702642756287645960568165365295622839598154080321644978691078723160738345967868460069890215178264014769624336792134419776312781951051584717767353919821951988856712398327627581644902855593711013089748374660404676394474887575688403964250629181104492670256394866179274691540201984604864899325581945327315763031784966309158516454496199249780993664199604219190386493262579500290230574843196854577285822601854830960139291303462434715630780705013795543529911203723764825030195502042200449424378179030387344061909791869075756151930879595109132126371832658254804618787749636065961038151554952057365858738433477570579936003151464069089446137341151324136052026692919543389393140789491876361861791778318282727379133204568256562719207724294966409731270421688536278957680845404631004582027758597944075404504612560556437878543060819264145255660403119309910246058814823433481976174656903963678550200548142866758808774813919365472264118788926419196671870996295704234210005437132555855132679971744123791869531253116306880629871293895482604603602431898426790103876626506598433579552023313423290731076081645575797556635280792475393296933743734408867645565258644474742895042850255695544171093659340618340117881197850541875884922836367755453188290266108454160802082230184253859820585380496310431542475286424351641007812580231433308039608000360843977377009718646741892971669367295501494419534335311946295135831960874727062030990084234423018530491561151107321662302589028295868467780464605434673018396399184433340019826505719924792393126341985357988400391247857922714589074892346691502668507198588177599086742202526082762648239992711484223574273028435440410442700854251565887016706417999050991249488852139987940955555123618626464884674789398244689229627114331242771215914495372350744919656205891651319249903001888707052213528191193071600321899325172918055497485789569799511324437916264123571222766744475150081188048929566666321328192729604428944654951544817508258626245943912845976180309734614304549562901361834971894927268835763204059595149755338470303574528857378311123547982096326241433481753795210096153585968221399027117035432507810001668182477008770466514324111670841783181161557378652026603748711102328575060566303294508454945132331174872950578455822255897097154321604127820774921629313285887933617694073242704476413692611379656751762855458705930174035812628038919185596645882167196588758620925529107955765849651660518506676312792354882462465771877267869623982381108821971302927952893725402489866451595387567452184010062564481568299765791251641021460873671230610515928409723762603419533433235700675797824386822321346977317896609567043653364447990955255867474199372312730473251391774628305651829217322345214146748213801508185868344118138258365884828895019901838540429511381402517012460732723451308266648169567595917649967784696069508794663158272689254298876985592515447752380382789011219357942106066159814874533176258394585729596966129367636172856573702621730168286709096200510063264789851361564477887213956839323896405131727583939852620873268869882071759447597148779277101904426284306466067920040491210279999223409255955249833107661555417781128650932878264120901764735706217911463775345508928754793755256119028452292961051836400499503545536404826298545149387168750198144917873798345535503058652273504814413499230159069407702517618896942333181152016322577886567884134025924533360236419116006818559336011947129664148705491020786775031328893952691498871991026747623422195434116243102260259860039776536470834698746872024133493135614496557388292513491312954739606313536335864292179335810648268132621883828124374320754812721792690111623409533166996800461687606128673111064439194080095420467674446264672729274906205754037322359893198126169314999916876171649906449821136652258240827394750409757052668500742581512036474929808551686875029807842299827132924967585090562300859749353366087280620306028782777212429587496199334879356109517327363765627876721919330424326285569399612895418461115711544732440371635869838677738512439801371223609138058791116704998814505247874796907098641578189970387551074666841133007870418250297182235822799562440801216946151165679856273937045583262313808318888471876943459127001888396066996779104651397674626540296931534814877968809824893977143207784472703087974971967375610072002564147193816073145271306013717342069907290827131905016170843989887847015489257124820853052693198047613496807015935059253185511314972449271955596625082679260040023667929501287539853653705317901681936950585149206192220484855864706598711028851381275289769307110418688870977891543495478707618850875289809492838257927628576834228889952513096707980263464262629427152419286605056538212775951993235051055983966820503048330002523956294877850398872224624022738046510039676196055172967860304360088123746695704614849044475801955811480125110206523762017364398918169710202564220908838937373525430893720296683483136346888920241139122704024009975350569976077421865517327388455165721930292552009333509387773245832294020087053046202903154007722312591475557924979749270275060000190851544588947135692589982967793544340721769156155934092598280012803396725104043721357833403160848894791860291701943839020976634705628486455523679290217368935397602578895023487812055300188352914068802254991748714653550482610023970782619446308250376366416118413459354184891445128176289929831317116201713411652510402882582652308685269781549619014923258263347878365153221705422583920052046512370753444170460835047581728617072231756980307208299404072337855196115876336917713338447550191794076280370759037059082267115381598773239109123877203447120677113871255471526398153947342921760988738395432584092889906438427403173276654872097629583383293911441668806126524150564209987732044629078222406351275466818266286357835861631846249622308781829559394707536583597052040274472799133063978338950993122360914650154836078551638757734795625332416304174038313880567386516370584133822252012311132356105637810253699944187318685457186833553013435643753805632334803069928296797566600616516731729893163980637327102762573686789881973670916426089650566653417189259442218639713244503063219042485950944622109866672857370117375835547070135170325598133314986804991449348411598273389436071111536750896004170542370881443211938287092778298321338666064491868418608404806642320873881482980725627290930317317190842182165041546428475059625279428007193904876971342344861150119390481647517216535631752196273128360712702248819357537530919817452096282171725944088805946109853259946628851193098808348391077889260286272978132057231349531615672575225437490182509125011499325509939771512920097858887861831298084993554322165233955782130997736453152327683095121651693765069593583809492460026738300521565225626024335511485592099862123412223593244230221183339065636529184462491420636564760171880719879995775238870959484318434929078910261204862173198820223682826339488778194147636361800917589511673228367152791321183223878505410055714734615681284729338073122737825076918780294175511939064939541192739293761839494258913399955068731575217088935832682217732316507654156676598490187013429664854849035478799924776593440104134777139134784816659894685021308913386335969237786838701017753371942142237700885914151375334945846158196978993335714958251834339601238075206677954350872943953642207297345759188792868659990914156072052433732817374270461387536543408353628062531274843318569440003957383359283344924901106047879541530365605354585099830405981501659575984604088619829855909979179215776478163447375552286494250318879586832503982832662704814934651720238548558177295347116910441096094723544688707245002340553582971771445039964255941397798003093986077057137726741413207992004294411196194755227644580384643758151155412577326045300465458185085497438410322326573446400156150509130140694278166840137707709965330493861289162830093015275134406820324868626344788366752331965273143583911614893860480900849129620827807563418749099037613585207178609199808053271370401037679138498877001585225429785189946042699606378486043919208300041888614673767835258087532132951974723958372310688194896221685551217555032316161903715700079520246575348595815317317942432816554919364343409380209881607877480868143562239789080339746244172279825439022980881334353689732726277794176617652932198276472028094749790363019506224959661352685021625071564504774106027305873942545584477645514571709989094572755454828293445771876355237684839137746843368473672625398438445776637722188585463662308846784500546324051936314152010231887229324458966490034767527870702937228382683606181511771825962712904075243459807636657337991447405783171380584021540759216330547824644591684659581051589730315685248034937211549717072091125643977308865710764973009214646040479987758534509032664373352310361430936891195863909877086811729682438771312150942906039292137869627146269072720129666132277901156661790663971981462934962460558665079185192017149377502894925723684097873878724318791401663648268746447087873692146639096474274637899546948832288899514739871373109865107041755338303922575873573808039476035412495890336745949947213965049648505478518017934004914478225781200174733302907985265563062768567267554923997367790236789195836296318367483768029883377424947487577862674380923486130199439472501489682611516836768044469340093074327207248205094412061724384864498267392483642445027770183504505138640557520196907222676748966268323884116908430943106425753833234662848741788785726670333243137222475315333342180236420626108652690858605262766774821528464566473118131153748820096178222611465107936846385881160083953438455339700179657747397443605840361310349865190758051906248556314951194149141619405456475532103981908903665471529809942906332400778649097476638064021389429507359160975835517247910426234174927442513863243754406781808244488998717790790181466744412594393890081945553477291802941084124052987424430216597918652178208903648310595832123746416933176096647495938324955889145924973334030390676491740839507726081995736830208797101426946657748376438481184049692449009511588700483892380304595311005593397112555281439752411682872128502814639709181480777373602297830575209673072801356087113085915357552857253567381261805344775629494211797452528468450338101247324554704567625139825913983682559299605373623368320031020488060703188228961549434207553216232930863474395984318699350882099558979474081165508341753987661165937962774390043418544757403989850187298324994137611806781298669257331206678898666154006919026786325154482217075370225975015442273864919562949688553144378601755983323267016633975484857519093137599878983613336718187102654709539137918169637545764928740931461345031528920485062142014856647542058059815084712347772340215293737356563359986533571339231425569200064162581722596946466929281108199183367761592061020844137641555613758279461930778390823214797509845500397298158613265730119479018163016765356704385295510438011195663291176130387157909629766161964931808122177330598090730827389846437688395751302080091840962557597688709261457587420834413573182562570262217719879310345719340238480740556511513502693241207974026248870403875313336988056004196012663940233643292050585775216865933797078709309153554355754924210854151334586478278108301097227497410323328769299430822869572919547538036088993567687897820392681550134970694791930105967052088763450282015419177360532868736240680917299576115220153247474563875014606223771912452190549780412029959398954594421004221422439818985320388984438805391862934962546906876009407311412851503073598969569598327265058949057800532696296025230845151444247059368934009699414121945283221613473515777485763325062357043447959453320950417291344498924130032908786591970334928023424477826909977828202842752075468390913351654128054298487981248791511341639580103219194689893948351721067513030696293683438734389502042430754888391689539148556701885034173172034953765060316536057448275188895845390616127246145123320184428052979572939596205710232230154071146696279477947533922107334346400991611622220520134782378168207901859837362579759588189111870351342827366816336003926251787916593698694748169944745781103914077291879700435611654397166940030345987406173769597896813787407558060906424067479342670461368050669592210053412691095808579884111232727533914946494434848065834418641806806246239065891341692462766274137022162880404747668999262278146900081678985245438849020845315668301808487583207877891953007644101031864196980988709814593250626138566768422383670388028113891504127695488685786735252672667590421228995868308443091079020011519138471354359430980011042323408478892140976501918432813229623380380212007526081855112104929022747154345354429066551732313154781757441179564704600773337225342804597676886661337078357474257838305063121563758254795049280741572898224442011481960958491834657126906782774204755791369355205773151466581287590422978719874455773042059469390392825208590098283350863152597886149784618468911897356768944345357411420780204765509229821029391236762878653409468139668375639427395442259513659290118783226695991707421934223137943589512906470475365873092664912051678325723083544190232734628384437297106114844740709986319103887531733647630081263475306044125989263005055502528278865447337639842681921568243026802499703893588732466473794166358717495747277949910891564858859041743822623099586274497114596065536368079859111871143833059663057512249625411541198569882767369369730405404432369386886049996076698409296340249702432027075558466558702934261431455847651159618892951935546137492401720409498253141620448434383927342960618060532845715796685300423686304490288155354281134151409031954610660674919130506978262001457864552160176642902381090009479694836298716522643692236019956031452865639797216029695953934759016210687543990391705247310864091372527094204077649588240449273580088374989660049083329227422915054529884375274593314328925776827512526634825867792679708889497915747833138733753861424635912068687465938862312191639630751188980529588723691942607957189931482587254203627861063561718537007283774314147319681326698475403572062029099940209272586642109193175214376783719420022629212932899010727686438643952704683497700481987548348653707427103560430902222465318912801771161766341311541198672631994604836527841691798940795400353093929938010311333903727893698949162841946364216412277514368848687069309579406118924811143676788213390954821752140574275515949544317118845255425859024650979975615907790170628083370845753823506735654620181751964286891857301477831184828132008351615265447587943478772716368912346331607370326051033824642423807233115168975905309783192076390079170536847104470496015317703315614110373191128968706337830865629342751291532544862311068722923574942314560699198749774018944105770148318727613272034655318842331793768251481585785429926222024833487193829471466230216170840319335373784386429070963811137965575717680490803183326184778556611198168101647401310874135649469124987041881101094045187739146570073662095305541935066475881124064216707475507723423381188913676459097077778273318946321649460958985957844098159297800355934725249886012356387199035090977636431398424886892121985514640590945617047978862381843425192190398827631659453209758117231392103845752040464164246983887954951231408886613368128742592230086340164234609351216790631671283455618090191987598667962963129751855957579202712432078684467578139246496646478524358457054812926225583207541433196658972687224648207715415336674788939166574252114691044085105830969555765364406553071482252427706511486694910646002138618723899992310679925214083164828268285269108364608063938866685887041031606216264834952597301719721363096453920075215028053437231587370114138201468768096267333427840867272594962090095770338678483700849565733923507812737285406453916207389682486523142873642793543825605477343377919044902284527115914546484374018247470962865460641525974501078541641892574030803413087601479711521871226210830796724448506671299089679610684826383538056765783831784669119845756125228236961265175034269267996486459573405662363826976164731085214182452826020445203756401712098868185668009478182134236986107722308099220601767621748669515890169462452303985719147380717034429147302037146441820921592883696778010326649742081663958857564680318085628958518168561790053320998583323923194490405127481157105633695201318008695280449535255374292763906577340471088223941569761829818181877306710332794504327950455501179815540573309911131025356902509938612296842929740431946450194540253381660177644671141994799391279578898561304568948981140401746623321547603356266547794957713725729050868634137892550698750072695071427601019028823866336819565521537884488667322294886472031148012679730140111854233237247950012993462082283752031938869059285075717701393610009971678856469685664489619835367916312251170207650829250677781734471993605428872587356907248593365375089061424364870010745336147050993699745250863842641183129881989277382263819724990303982250033505289219381686689646055495196175538452908683085436665750520987232248758163385464186393143865629924459672190597616059922181185888572643910198312804810564642024860778634774031031503896806801526788947505314727374649978976202577348993482002057178823346616793929745206348087447015082209924684687075681101561523190823438893142425032074593937949447947272550077088485108825264164682614302442420506049537648544839803514345729171735794514873894260683267880952507523550892148375033551085079045222623414631261186083671629801621165590495049880942017028624538507423970296500883118839275605605674159794813248029069109805816272068014864123048670196224252113615211268150411927924980643900634203112096126268390697670320761271385176239659965560756668270870505992111688198046984856414320605268444767600592507807814199517040482304732080155871912166667485140242627315227379324211139731307053035457293225605302846295745825040618796030047593379161849090209234796176973038423862134434761616279163700067683962630773624639336731188167554470434858433944196312867136277022163403371804828773575565301100313641359653301760535939623784693968933836454808498173855167113059718259619632820011999917437411474731963882777665230848108681877197659576798181233180099423550569817914937079098584013246947968192848290154988857752266630047072821927132483347365632293986516020185796517103598789289940349402777619901141163799592144202351752924619748131327720904419886895884741905911397702077922220115133340840766761706955190138263433473273965022627819999582215540210986869619292068863505887537164556141825595790506726922660933811778074058823072699638703491717424258903203186541704234502106392711336023532917151147072282728748618111412453812540927533296969937116589257166884272021522821621600454368271926034544965340165371108846326876790645126874781196371221372147954730564078480912534278684912885385107755401708064656108497133112544240440075420109212139153879632323708553552961465496307931996386496787467294374642809618595436845275325278752182658375869322574775380516723488756162739274256664826577178314113235837435284920355810780160717641968335559605532280131019994541694983108672656113762021823008994944222474509964155953324066781869593710622155124871335988821420009801921810511326940227166541440947990838479022496948343611907393527059875155020987678569953226749435641403170783856074534923290060525651457078705932483472518903834669012613817479623266798476486602439521118456773899279862343443821022638095207604136287812346347782523670361240056367713201121051443116573521781447663214373825725379576002639684088977368689589285372109584714291294623181412508404746145281797276631579114810660133682990216687311457239487350960319278482036626864695508967052388292182312390444204243499072482129712889026264121268023870877475146733839296596496764907170935545562983964813471889772566490128995649988985318875599560006766445704869576701543153759597292303837525936009365183208696578074833774289932727489529884391413259759675534909250329124299223351835552112190448193185667167059720692805523948964414632352763223308010553798786857349268903433830260480018019463516585467522385353311473669722556070040923346349258484813485241740079714123688808818088026740680508315923361181180968015112220028029276414788177298693545303547370596680537166786783786462071546573091008053518312843010540245782648986471639363019076499830713860802936141660327625618440275343005921696297121803418904285040694936500350522297620098949415098517547623425845471329436170517209262613440372242174186862049776435551854880003624638986515047913822979491619294162825771018288020713840962625114781890441867300195333308449561274917039052743973824397912551348680727044981940139773175021801124616966742882016404762546817283251224287175104689895520173770974675719576270697180280576934866005649244332583558406945818074099533265514204166807704806129247026253837599348087620501387779216338236382584739739966288381194702396220591380065229429592102132477797840861773560612337162031650769593907403269629405159392449958004700272835289827542517279861879166892603822831877578817151317936959423309301711629525491103614953553105806592644722920058068992783461591337838857363688233933002885609483116894773169384671159263184572721883528745732147787518031279176959821808583741472932286822649642609320936272257284232992055808623695448007125256496163514216011065269106741987074099426965950294962457176240211094538446212051156365696955743523864061158110400336251265375240965954024879091786463061870365127992275552544166899031518421399332760205681734035629963292749018049921932309294965791198362965831889925382994936020009858093552299370203371523773186918123111791734275027309687282947925111381323934297507480155758277066962985284611903813219295463847446969215444874762376492312318341120166122379144557286993927426293400415786131131055553997918551936544356875244776826315700707275632890693479812257874111279955646278389357803882561572115225558918880115270779953538166233251216265574143399707982370630310715520718668610059696808254986708155749133178120707195546966203919910716434266485750159980182795364442996870858124382347284777934831156465796602340929956547446803323711556540570214906267055829620416397476574976319728935312433600240777618945474904207796634349386653541560143978000054487530324514270156102599639836433720332083937839180515277764295131593027468896670140113280301189511258267295492000063793871906933373892853399851096385637673100274385355241205062310656436355102206155546931639851920167118284116600566422208346829579323252573111679780196842367574916880416589233196003076977545942031018273506272804632758713435291735374133298689525407483078811317232290717890042427794290784390274407127604531237027370947185223616403169840824378196515929418036612323181186103913524043510784667657034496780225198424383873819769781190678438674927915709138819741521998493339825406106460984087953350331324178900440856010034991369421178055251020714466670373702151163285761535392154423315372502138894138295812026704526202112094353171841394971100116955412903911989931049928994337368011322683437763256003433225576031186043549006760637348794529032357176240420019242055346210308952431205813528183134193741611429464948021140469296499920482971583746191172215659004962816070591571654307313550710012874007355095446958073812198743924397117333825808594554455018411896298321417854964756848677578346368817601921176306495680677570440949959616354355947090896258266046159498809528436389415586500414627809414964098512406916080725430835357055223229904356598970202871425938258787424691070800437964483885049428069301010172992672665700959086400344967660658860293733868973393735859401525428061741913259989044767141092077468832536044197996789124777758160729970383598306941751324389249026545578633872439587889605372059600373931841713881185585282312711200607186520683097540958723824991178884571678008452603057939161093997041738387130805427460382793672154110269829795948344168893746611124316530049708100183474212692742917464287456794780756392575272976088748418357586578978327482713386674902808140937565124690104772998153261923514136956745180468263301884871630223599224362864175643497169907756471486211602044521490931995364425562653150626883407772700850985470339804099116244916135387881867140425858711667562107010861063654849626235416862197841880157756285835434425931002810021259099604849203715069639677072019826864405807501205188386930754012844955077481701716187767836285586493729393716243629343216510335129516410199969793659678342768883327510278706577978126514278848176326446692495577031753761733228773422284165407351345192998370154204350231573544167831333550668069989056442578540348801839038529623506573215301270238819656113045049245008768698705536002968234915662922583832141397762231731420284571859774794081204633190012696423778770351471504011636243749363651850967400421935525113515117981976220390794899045398243246191832571081652816420849826710275884249485534697314748414132295366473169212654659900825261677889096071042250552402858608142081957267534116245680647784289697406013010227326158169696116748142427666455231090244695018387418514042694679646075707369760780429200027361265398433589440510700071664162213546181463682241464317440642750786738346262890659973773886397858928083605892757613265479380835770517412697159576676057514676175321828388991032412261984627103170146946632169558425477593038630582571385699128867240674773864283298450908321563071349750893783409840409098079066160288056163350706578576117702589381166637529745038805139514701420571463863392662492444432127154010768962407159846686102542883125961116783798977967472009463867460215485044173804885707189651934556764203354848442881872657626725636630392784634278733135013781728307969811991224372040659428916286109582421228613859307102185778426680318641950298812719951360722974239580147243594500093098985086743880456914113463603689069950001163167453356535640623326548722246202505955771313599949641249753567705463767604899860476078361526414018169077945803735026622372192577824929745480808350815016479908883686930517176454909434388180502190243657378376620130273515263317643286175273515715014380552367859419915670332319726278867361013738552142524994290656456539590528846721959853738524976999465129863592492020553277675340626878999458698477793391608283552312608862068300214748102896936806857773669658426566618047384738568124339077258327047901427265235800222752180960889051152490724050010640837157118177678891631947334310216663051783524138672491573243985536029445968954931648981299518457588650939502570367725812116963783746784337243933049554486879553521916528633898122462715549024330942170910014221039453379374989740752659282077437597197207140097088598570409460471691316199570266403282358711189589160341889261533846944180972313865772371553404393952426223032775015941149269696665341154000223653584039534611057232216992500500172465845346577262201456314649432461174525276721938318471131598214384246356811093629822989174938758329049686049738567368788557850971427690180509967737605161535646800193783583553701288853594372242309484942238739172587742975027130134502961963906887083315404575501110706273734491217086995922425316658161400480657920087032506958582280109515624025311422389577020862922861171010796648009687998057537133279680072599844813050253760808810142759098067482506943837861563429446598524287451223315135420301354716519298431888465164859249930215201738421419882935964409803340952717148890171481037840282469803235364966847267754077119298735240848810551744248068773063706654344057206982116005407827722173197615677789523852386877051260899322013075220181104929596816103589955488148009088732818998663793378745736350787939506534181730231153609986515249471665479572893687845222033151937653570700129395286247674660693818576994658834049844422891328008720912117904463364521476695469393502740451100962091008875003689990714203290709530857081604480856648333599281567193063209129074153307817706177056352965457376111159812814461555056579203619823156957935998128335029614279855872458306221498152876562004704182710313252975965387723882567749493520510454827063618251081475445181653510557982475378630032915807774292624272171798919874615237258301542902025161964424956464280597366075133890662418515844916156294744394159527804890286691473614045666014193745485823327680598071336606989156332117986535145835745847892099718868508272394567808995682215743799208863880631855686951461254459632766288421664584869848987460434943017756804493207118834028606006375293928766906240869764168595580738815339177035546737516807761136974281514107042682432870100264691455086129625658733643253078640349854701823970184817084914802558303021544579756320665127766416395931957747018648820758898372400315370840740225592333403317286047637936841288242634243413817254445256887315470821431107473897868403596292070856532358373997328873347214917789692741740732817253017997147995815298504967837820829625104865717698821427218796226419555186984180275477800581561183230092630588738919761647904371879563672786207572866856399301954721499363838543991770124764403731126801411552739403056091513448406910298245667953172829046423777499588100412180610041404905222874458755518649063974856558473613337896937922579343975714164050164456882258261842736147606550791537793555688488540400563021257113930380277300370144519725927873668956489208279228970851220262455717161047018861762569651007272856536703759127795606097895404892280153602540423326583022814307807627586192507311974109732295943844619414643227153187020094302766686950799194462023712954578424139449706096460753809924586705624204423850227331099387374892071881393070220991615166867152757072227528547440261324112982294494926218608936010333271516647311158220425643523256558432729709951317936743187291089967925590088483700215066886839413595014731350203391684804021821806932759676285948201628105030976122196649310779845081694594080968087806986791922565832047494068276307341782084154653838784669865810630221359399894684924833042787876646958927009032859786538912236743094273676607138161878682060804238053255297620574038171252153669238858354151850747178461611702577454316350144710463747735625716443336017509339869935952368314075667668408542107154133325362178619944183133948961371216770219789798204797854879316140352366915174882773377602498961053024217163985268980350542815336958825729375392642614295170854781707366658430890979135695063471104422016954531162208726167585107305450193494668062757010084208635779446961606269081757911977160503602114215245856338209935756180615610085927212215805457527855168220682243163143819982246414481826986797890999019792726400903649925042253110800816054615564701823494652912870919085315391534144863010345765221093643035891078500592433252110931264382543501873309680831995156233582243395270273387318514880894496180490336023318743773400063012365768074690697544167915486272250235476182387388822809823221942594172116442611873419039825040209293826563557590868934608724704057213845091820596416024651483906076861749059127511401902035512566111315494368525959737387944660048859963383403902779712768137346794907404126106286076688795390905527477336427306815743071393025724485255985571296773293770295298887181621022309085126588175089996361533442443643211401636278774203206598153208707020987138591787149576184376025592469954956957248817278774853398723891117506715955096947766931713519742793375119447558269278644204581067117379285647057726671547359678554738062492749385488012341225216245158446274184033292126025493297156663788826352496362026949653204116380304361537331369831548150427969914172391673702652179643995223963866824304190615702512338068145508261951273918381258094841341997096863092051647162641803627568221296456282773145712063981465967129982050852598875331446128647204333816052764678085588610496602959866750522699653089984655974626651416795141712201766777895537392296836777945206576351371787752529985488521648888730482916558358003317368493309599554751228333164255491726064886739078423909002572727999388615851355834498299921996872542184649360318739594406027593716195641319346589205910936685136182997078826469059328600363267392553395671129256484308351800222713030140504565452249069373160817306712087344696561937839869941135647433746051145041371002990159471497147670204747540819486332874763677277724947546440595808136320961569892150980936532074205476427767660390954974355689592429405262164574965184404565064068711308645113032899840983099071142681724122605417294115970263841927691359579303363280733140960629986202751158907680798389143942203945551007363032057386153325395822448647951079911178410154215024607371989037946936175881340910878015239999658267629018758308457135098246397234069331680510568832262047267344826454505547319494566877680550875273217304974037256883305048209988027210162460765313053062499121921153898208846925732324613579525372964488623010937970587597757888238697237842569584221904488231216320608782359817823099467693544110926453696917400678468227855867516717226039669301998913526843381925412550936163350485153347094157879053944245512818979137890974955610164697735118534641060357238928838597663572492514984228786415479800920475959121860301060241218015727718963006004318011846468618335159241027166560085270840618316814720800243654674590684732591920716790044853758732439798374411226204223373855121731304768776149575405818722481655353763060956160947129703543553871938397143816580535165398330026278739916650220091816850379329999358959941739847168242839674165044500431508597717542772774045586931519628585127526847358049590337809728152150008533903675597167760811831302350240382393076765083440893619065725966853571762703307753290089687801475462466293877003904233210465864307859305121617896773619489773720951625613034929489052423895400931507357523727405643136945677625867461594141555378917940890647914973002647869866890745205314450225869927622221179073092296626901594856377362543652187278772828984926211027450494467369065843190221389055383984819911054359167759200080099092404995972321431039415426272443386808097665421590923298642942416890086623464009331666171658367648955114505545128961756232461227583464316496086602903443377373155994457197254135830794062127753406705722179708260718174462047069054747326915587162013659945698512081379954169294275448349947632552787283242925724724351816664358852951413202200481384750172625927670855900763484636850782620620506226951719498399008731624167292436451474817035966705492785778909166794495349063810724011667220602385066076425154763835501805276543301053612861797567896255522458343711469927219704958358774280036032975336498257706042027197238449413077715164592441035013691875493404773101210650545152085927729424311583309822197530731187944716262254345234393688611866466043517117354877039867327271688535033089100713583545743531776858947316557223972037321991297129778418630168848316387040566668985920238625507954347861121032663961494501486201218459405862992172152252539503923563229248149297558809420015544670900489680172894812140651217473385798777414065204627355384976365856816725436970167681411917273532750165836916116143911497875333768431803491571926867609875613287189592544418612965744446838270119073760393121280474638129106466829464029625655585043457899354364498463652292422421513344704719186063257606169879998949744688813506352922747337619776870889908340896288913952835922049769921694126888531044183971852402462942935262210328901719154032131293697956000543751935215104967380416020697341236049939247825837725331717422461455239010273933672149996610143499480806277593329041100448721332768394085060110118606266064250329812352508700393609875702016922704719966269527423623051930464492717447959063079185013712531990071426973359768040495173291109341970799081978605243865459973804207073349581534970705035928938229666241102395556977641763139761213300949445324016057857511362252592831255315076807347982207307679259809688442388889208999545991324801153219698954120368471603737382366799014032755894237668662576481354345530937442032652784527073599635765853009799991188113204702911428090814924250315521833856635557340582250353858332259481029629876546257347945597967580972009013197518525463866433393707433035160174987897046279482606547804055690198182024361448806820483187261204774584865672238670723311549257589551322329059186535373850726012084425110295316034224676692463335537558323066609304988840560368424335513391063988477244952262429037078079125526256590659986028901935034265002541510364918220313459822201193802207393098530875646126991397368236059581443934330803818483841811741014758468640678413259323155597313353239115424522126226145878798056045701765904949880234510259108648430972373121073244282053231641642937055803486847759225913283713276312916146276293634054310391006149713276098708973483453264638301210216480552762666567832081760510825403952306134254714049067026023056141041800446968520369392410164700452331005672395853227136160930940141601813980629951101001989674165820060266399824642929232999711830873479194998614660838017422601584461768121395021051585651271395221299195269818818693219189474072503540009520854813549946720525262500624244252909270829137904218403217987419233898504895022635524980142229935916821318673394164438713516797575731458736579677086188935925960721448401557999405558530397059022666071126416712848008401892406466917260742195208764472048838948318041139678680823042088985235451220029994006799569958910455386015995279752159736819004506162398774607929713097777713315563582116770009464567668140624804216716610255037077879801204540314815808146301371454508612144909060752197097958712902502768648049886593468691749849063893202652623860984915966349885149834070355877197304645427862303462595091005710721766439409122264107034756888792872608942060740742299167208906139787432884831973375146197342010315495373982139851179846137438233872228718955360149076474823096304023166653691189142080800267386115201684377584861784290286001153640362789458128858870042220991345950957937980998080158797438760892260806705043164111573124823879821745457250884716023134770371732301782329484577948857306322557865766663748385281577131034545565412781550471076520368699398759988303092244932304788903600581122777536329711476656099875235419283980070617745670289733106724050607647162946294102070379500909935860639607526702440853402462682577766514725486716298252504504184333106037125893861079715954795611204901985485139649184364488378918704964215014275207818400140899746448668259290265783045581695578776671410155834836742836696920377268490618756937076196717329818566952708036367681586609107073062689364835271696478531010766868410346446604599065500003898372998333275751308331873340878226907920160862141112038850335810820705061401823777676255922628528016843722405963855750335032176208452973812734838427005047758767848244148561078109131182159924012723383068263210554218067041829894115348161143499629568745574244416824136561850373557318546976977981651741776580440688344033482395593003035946589373024812154612264647532289887427486024055300425235909114234404797123613505606259557822063098178571107336286144502857598893988936672246951398057972276543118016673115833897971085053938029809555406103207599432634794104221971120748941278377927392823105666196138529267075803832605470579274687074819459602066227363332312816563066366239713380705060464389305981239156910787438646316127677346207652408096213437988219640673219253419385025852931898101589602886425041262249035694751474406758155306856940099592769816432931831354782814235954994328389778965562194676475437768249209353726332465060286165101369084245304457631366814915257663305661345332643938420815666576087820921876761428580741973902266104333081720704766661164575309602490592221644361635422859510302892934645519202227255767687697373502974480725564633531281012819524573268892851744413110488529985819392007039657081661786766290030462279182340190018590125008092065196417995415046577772255136535994998239532903382898510710631540173445694584592614746530344010577065206984535265895906602641080233539861055326836085934022401731684400634409466145742655379755638806940790315871672879285476882496086403321059912158739336966108177932583121711533126739545362606083473610274535278455860301906804605771706947028674550200671701689143390327956924891501678419377646711494858561220741450140021971958578147601719084996241097330879759478819698078434068108832818988820016396240258041683422495157367214433668056690378143650787450769953975661498664149114632556908779599800163764225363574603370658383446281226580083093803858226682230711417666636880020439181869400037089281133056970973270981870655848976784433758030421569942181614695903913779984608500654711611313648982657678262850699503939826645595240227941201092660483617020744868049533238195904108288949456598070525205792797925718439425436262654804103750428579723279759139649002047681269953227091700375535093901717323104576629260639983226669361220414455981174905304815069437367516544226932264655013369219229772808234672904702577366223053123170372875139828183707111659049465254800192288409991179826456189309290085977893117649930739902424639991349213294313615837209472948536629940935472468040201857686254867863563994888472582508270820994971192508018476926165451512527142683220160890725216433460387901376730374453807957677083426809394542704387381501517275032019876524132830114466239866493431784166419133518363469640738819931966678647043850890258427301256111536458819329255537711057068510494294121060357128850985911639281894538744121442173415473729212883757678526430394788197689195336853259408619187394892877206846778119376003235853187059959570003080335957431787527092641161154647237038335408495866425116854153719161396362670799615329054713955284690858862776901176258434260330336028203199747777712721934489473231114540035161433137451702776651605494877410062584624378261501725743696939794602772477514019240036443189207689504236812588041768277882686976758654979306902667104293971600594793135561587100260521798356055201748187164366949414197095431674711748134130709946007797838943590007614081445269069260747982143604022723596342642126143864873868130414956673335686772227408774629945413592320154510344206388794803060561406161079176291971542001034585403489605695033185803816430687598138432803474621301328391685690500310571594758270543078529168313584741830112499189246278300012007835590469189566651598543709386687422627779952797675273355690367295403006068180245446383654210984108447270607131364959356587166636884270895164855819251062724625555405287609228500808595547612596884017301297786757186444104044455273166758882645477044658805334063464222008969198112169750342171496063633126042019720185270181697490016758116461563356815630986500775756966425328097138670190882115762981505771401394487234737433811838269102279290100377621088058961108130867423365877044811437196470764223268589539735287608205187943908286962965594082913842542857237899007602554803240742816557580100581710138143833239737761331012340565006581429100643424973937917519877744932062689434799782808530704321177567019240849397874109821875703906958100189358649025016108318114720050749134997424284143047855388293273513116149945801282785227765344823090450480300940887343233576678158396040119911292773251829772150836092707843305098277234664504353371214730969273652296804949858784695103905400859326282989204687252470679569625123912173188746350080677033649906219787390497691590745804736160046121719345735747708345623830713062551682919380949860898311398802908756325435027351809571715206412657473991870459136910538743310387549388805190436694645301379151262313836913786480421916852787405251962230943751491981642037980124638723659531537101130506370295334715224310319511482907346453535247814461573626023113051762526094272276541900295249099506687238574237487430146684823422019710446932865422343241422727420233016030387259377602352729357086622521578227182698717534067924111128163344933280200059971485746271784743735004945937201235360759169010533683331549491374437992209863387249620315040583183115902029948585501740768510463787576771820042521003381741776065755979483802104449952527544631235091028349518751202207932681385135824865406312894875954680781775167661833191061656301120248725821464628244808251650218270549530676558300583524250750169715514844925366061829754593237462895928393890987279326211265080200091119640309530866770636716793256293321605466519745690239187931117672076055239420205557414780671969551914124972881574660910375168195494084022582175124161675237906309724043373440698786421261936535790866487502349808869022706245166083447959280760171828108720046932097485113754651222950533002878425830304701134760825841522776398040391001454897220699657502934910927456322322981875842838598924699479191322645275953374395552514890601346577353778457969696470317894788186828387152733769679811027096656148378704182107425392645151629081020054640902277048622196545450494517314768027871774570766140554117203052610118630009650579369378617446667587808873255630821959403780920899946749894081826765049553425618403689496272483678386813769092574769171177673083707867194576680924059257764814739619289986350505744102302395403826207992785890037189319943697226327151779235590831998290572129845155924672173927258001767209901593876912041879602964547431771985610595770913508669539606503228714304916735959292116806951796002507250019669111065881136543383705890486521437833504053744892974525011788527070693221829431715836543969616653077774344041733373855026816290667182035984614317558544017845481968327295139093064975329437915757839015665806253865608427133314017350199543863593599635442829994334028155435770179830472873263544856208842813848251562928404768413563896494318534744843084720766070958265186072778572247610764787365373201457120658029676321433044470341899371442228713648233726441334534155699614160633845542504561507620351507862339395773371503162093940073618275694278142653806060281584671229847183973118898162619959459243584256111991125374079827359889323718177614243321853130461230345980427963823206812671650165327127504973851558330612691406334044943747649970280206848471126480794325938784512357075741909218436651904395289662707891277090878818990196758541380707418328765941605379205342572100256539458987521082264019199285469605948056086502595742602473003762503844752938456062742244720396812226893037629605197358814469701552250127183163696173750138299816420870354272934736945750765039727931493088093091137395645528259759594855386867718632722654769385289397171448008951964169600923676405894362625755819195266981452730673208808529594578793568894422677564585270351249246292556873477064651918289433652942849566465525573158542282865461705651250375770820075704535460473313634214613356955930101977103941789274225835131680402988237686579472381540814015572435046132798877361150778274090034711546943530956389501340641266738237839152087032097496181305381452481958517734744538129005580252945869386643641304412446791430294407789791198610712183251781258402753228058737891227434438475848338173388494703185041687147965277024706176124661290602881545390190418220344935688457542937402565057158220897326695148296004333755530549839490719997077613989890237856109006855014374497228575617387377422356814270286684839527895626246037363562171216367580286109498820645400738508131636081117447169446848319788686662183522275114067635395835840069598394937108150718926180461422063008202428081567021843125942334094415693659085257530519608468856633915918639257124077397765281285976655829982316029110670408333760015337695756680995230415400072074409664398519040402921904346018827596098127726373748305033486309095103405853421563678760317475346544972522640942362089729963232510558082960411870077498826100185904197050735241060404880457495476811690530877051362893430551884331992286979894521518485623013883236688487260054448215849560490762261915963837560148040386442820879517043670758511119902405652542259331772935342470685006430957945103113150333665609114956014948050811978077748234573853166843007364220093668666645347819922029351488791257422561352407945015166414563395867536304616483631557751699203260052955698766739245948592979993091142650441637212404424247075724002081746851399350590377980576122401863113634334889648138401136196132172823873215796103274162456579790666987509736753836224610136155890076863585620915173362477728797491837635115568236804769296212076477085621019854317769553470892469609673470101918555315101781606722884355159738410389252256445166371139067568415023446045695526766215558415613338107672697990815690644167435752219032446356400214352464968186777260732473675718089194707061261249682802119542394933498750695141766318708457187964445068689001357401097672663420726600273436485568329729638300196806921991451020243801459891964454533674312411287048041675926892965800202632100765110245351055498607391007994789457296477906807293796230552116119765974425041725547996517376763997520267957972148297086502804415082990690477897560339774657977100884491371540285247791881691075748570968679778173786674227848475164884348072704974823963469940392757894677264703501803112147426622452851194302178018045825409122691314851329906365406191000815982204920884666557372037793885290068146710878016931176747722336634103120597248929599011786184023172141537839755137864685711575541670851254070550302167654514038320172844349688523572768557400067720459334774100830617757799719542818885486604492628726491357445834587387779645616777252244574369865943286147027412952868786878015256380828611395166994478536045121663964257526105175410497681511806234051461165214528977053271206713496816907983567505019028803092885383528851812642735000649619820847765924764986787682472927210332169327452315753055988259447300485091909177700593232840398290710286744553859497977029370383804879852285048769560856096876783872224463477157092791552206953106377448277001601688875349007715425530912088645309656850349594025850245227365237415213016005014276634201617388902028365041362581187821175697827308924887667585709854436083634513901227318979249882941720100571027551771274254459285124714455770691058918713648402945630011192028911963617829202203513474576731950484317542739768319395718440231399526126451355296357554652911719983913630825916746473235980851597065984789045246448165053389172451682645052817129330729618477809775458141862812248818357564984269860786884699312380588718407231273981845323309098830261486819966685919112323237883477240777060587450704220693435686530099929099942339583149802002261789367412949523631408838858961769568054228126551310645706966552049935904075955333139182242209239766193398647041834612923054916520229848187109174241099297629380164408332985101689828606129385625620970824507131270606293806121303684463291508560100895809199249481914345371798037122509691297185915557523911060034828766909251443250945339482583424563996079138669725629458623911081909310751431748277537589699360031967389095289352197089326059517267051079474661811001765070452955330056861655648452763161211201695146616928430301800061663511056450286961355638270070490573156401993978457119400589894929134087763291132803562647581535093413235134081037955135743066939728426106828183709719779393299866452117967563013557037028658815989000587008375308526317536617504404211946111134069783068746501097087215988092552587432536261497689304278453523106253504206290364810548973234839169137426486365686112700196422689944730119889114808505576028652840702914831689428315572284848050575492690105192832798190553937580039727604580073135764416177465760877593820226849798808853613604565849840628561898476315377292518130139012629407923308838369478569143859726590118153572703307391664046510854283913060422325406979243704407210742338664353158497939281232388857955387619120865323921125705687920367561737403684722780427223985791025805538895278949821442534528795645830716315654842389651634168976081378764378481816470578615589240968861449203694876136533426735764708988816809719497130634658350888279698945480214194731940290680371367185876847300266297998073134312122906375742695401345981199783833090969566235526993784468238134753039548439561200436472413671090434864256901016122829925459547615244852203244242332218292807554865375859978812146054965734757811198910710916335667113464110843410990293439327164418513671398797026857733993506206561113403155452032978815878383438936562317672816528776701141646919866071886248140799886008005483831148772340882819371682404004855148422368607538869138697172350161132224845278409996843848160547107984374172626893780472336126764221456260550406770419957082495865800559460276140570334238740337827107301294089852218784474621644414783570482957488540286863316593911249543578756673736997181073007614073529677857490599024052232259161209923757514454301596998089394061070078473186119648166596723357369717975127972964182209764757045875651268719502508217306169924028395359891023396097123102565172475423380731553218219067873326801999232523886830611145014914343743181640619930665904514783740116766680423824420699243356753926646914452014180387626536365932615286093853379868159323733828477074526821297558674025487628562772161559561247631353933166824273082557590967834248152267788870120881967239603089254539748768718153471497643632614902860879944329494894239465116065252672327995991779041586210480446923814861551178036102124383789490935904629305802373903239482444665140716690787513279710994376123125619970653782646306419593264767865077184738105336886446479890735857902803495501081815164857194822822832137200966177807996187613359164479918570659925609160979386978695401235113028781960226903658592840599421812884500967084064284572583698826372835092742734490289936741042285527680322906810202886309066906375853985756812312794205670115115711870676819011769741624544654617620499111079203659985331947716439218538831458557602133387777062140398717924054523856609298660459669813526803563237078703073317663661628176186505223204888782297422782022928793842937061170734397621281779338209244003121499617734265763733568608646338596719069571289016822037562378086108435054748939481588205561399572103332623743700391152827686900515385050774791408809340084172769369182159894878366169865781573868792893434593817399814388487420593820323373121310912165152612313539678142793513274015281442049214460767882621537060706622872302026688368366553748102705603034847267675257639579686346315081588461594301874880597232740492636789109543867607220619871163124246122273040985301604618560161785570787775683258695489921426437651053062532436587507772620144406269529117161244845066869495332849780422733663938834611148986908701810597071900479173279640362708385609638838042471180349882550361902857854972678522512951584190999264474540143954945165002852191769515221691980918971781266218645892394412390600710621674771667652389540058340949524449953700466268422382880578498426286320433608587710470906703245475498723368441800733158683515081771749020258435602327963828957655094408815066258304305079127330893082142917854713113970074424554973770918174997527957962352126115057520479319590508766674639306827721981448467196132154678240772612568289735418468672191314961838866151691393840680174059691070430328192889076591403866338733658591957737856026283504854937307330467377426903624570450981194039032128135946293512794639343174341517257070936898288688857669644220081930475819822357421522671546127047091216287826226364816261121809425213233363805848841054921602399749889327439796357246143624633492107488031726776307493826664113988546680394697786389637488915710311881443435480300106770071867097728542500805834797779433830815189373893317656584878992140438560052333401289639506298324663150727150002007672029589566057163050383815679537799396684657917135648188588946343956546452360553608712988139352857823566534280649989694723926641021964715533720999093625462812562203391120610872725195537393413310849955424568241052534617501074984171309911627720804523000869983071820498856641286992701208872407449727321557373040999179787085488739726641319927226179371712825900671590356575903775268911889387150574491372235399886877090726116435639073523586882892872256176113954716506897650962954758882527114894028100070539005418359206939074531113899115935481465742810844508391979042519660030759598913504444098282122510169748938806815908210227868153061935031796075033307342808085507719219669983970693103419258957688356558869874167323967514034673445420292096497632183605193768160057445494300076830139552240810217177657471509686421175976539981098708719514158746339907084999801535019647616149342757261935185344799892408695310220197499672811600517763838082057022883089436839312667076098393303552169423203097376480893799814590369978527058148105649685468284612792917443424050580813317452960599364846649473474757150687919820090674215399392669816578470900614785661331292252931307252096146502301326654513763868155326194950642057632399046543540637257381124714716061391135677212859219516529433633327260868234961872380946186790737949618218956473384717542944638647152122289251696386443674234064188514696668043705347466606187626170321071655863635629724885655284738395768923820946633588780845294903181867017671048521981466505434347597933509468417067531880664778119636230060400600541051898682212017362798132451990332090383797972832606102306580805350629401193577994831434227057021408305679763789483351365425832765999657381588032030076725759249141672033842371676934394723252149253522850348592088012229389084667579337867947990104039988882712236472972147681861046252738668660223871543801569259568696843923545989318777313066894787217394693994664095484541916749975267757518461975609686840358499102173981319042327355680435697786880520323177502158109556525590234711807057273050247367108496796659311112230534377539198457288034137737322243250749142894325291251521378456491528335202456428370250543703352912040349572635485729463802064510920196011780282496369648250817274386540098772150649032718120705888247663461359664006023330796028035380197855969090091761574707013052986074219266614013699865904619840612834055278034201963653534803902953496624742816741202452994394768724581816934468212755250764475919422669034253575103860217521182168033950723453091515476849181537870085777808611164957438799498170543336181485050137814473613863661350430050881432997712314653560007635659114264976652065421951449287819152161884545534819258869673747336279042020784180376926713056855865213081869228298363008997089734495250798339553091430417536379919985075587380800477594827205758395005494047082763705015824018894653277193505507979410659295935774011545187286665235209204086971637990279502879169187452276919098379585624249561770832591258648090912048265762004711008442986873369991413046460611864219137287059758220501440844585822285955887628211337505089228235336714271799611572689238021406070482808069186094735919090625413831415638452752132736193912439131860019384317756571196889645932387476307931589958837935906902753507561329419900275926007080093679765570901217294323232209087148683617980483749429609071813291474982597070910454105756587721617359041847573421870267449048421366845645462067933164517977594305952628576606913638150432350484014967714157255737840667802367408244974755297680806692436805630499231453097712056125807218471423860512314173452944126126228664246127587268077898199444713527377915818974525982754811508514024920043756153305856780867921550786733197043333805998884389170873860714211583883776978926933855109614882522372478497228754741165855177789831022905003835618846214061247032377410948611395588643453963941355616915535143755975678939974942160403148905658330046934016688594260155707995536821583543895955643653549038617551971514609411006985114911532230325702926120539987592642123529502156500420305068902225206421283855689270737356807599908786504027355965190173135230823401452498001571662590218667781328566809998716607820782096677905657969670127425798764684201211092549298970850331812950654791139367288012504124518685777604844346154452787439893662207779001541860336190846696143532428036582137448555076494073477752231474340474692177919849542946479516305743267535391046451391069508222811115227199008029941810606743991917465073757230705076450406409108158971860719128545630644397292082513452010127759539922660193083136833886156276847015035834244995955677645363239838757982042981594947291002570086401452244858603537925131698851211473455818747766071336022983535658601171252214826099800331430940122793655310634251768396128125035588457011034263919193757525566362385101314818557300360749876404074121248052074323208259467656073791407900444113000545732800459071662828462415963345078557302087236219321923365526927720171283396045471038986296941639572588933339362284987333757901709245698388705538221398893053878357105725526561787648918164847401960138082028633564000845944585741256590059784119088249131624175325962441289901025385167540974017811186905278758521563971114574050701799543395017228664448503255524428607655959671806387598324066687416777413843959939287841022611617297973546967255371008245209952535309520267956114867719743806600461783509517614764251420650959422005120312930471513225852432949902924793948093440401719675203873493668354411597834159372144277549625359270732398718749249406682069618989962589899452536564301132150363801384759513774684489824182058702872340417812169080827033616623496073727952990436052945363459565483664850520612956304119981536386057734393776429383428350144765911289476613434864846284291919428876218220474067699982148599939884937878077390870563840763044080593503750814944013722017237618166929973092269348080179229305962427168739436081115492361353956142932630745505031001954354855856775815645758810961979924802925125471347650797642164013844700759966870254256555286772577850476404297123267554612721980256395675379426952617228045063944473953444412242423511821205696688853173438468648053259015191785116289610455847452969314231982204127363867674948035180414835974245025801216253822185514172243112187104685072746497892624347223672189711524881337094705883634344050149309742503490945893783586601497693174630332150558645479265338522719501700532862673590959826053542288029079481583260710199846102442029778163103200286831921196805418282926796948944535452809686876090426545413089162282334745580463437142366834476651001094029801343936427586089567837080479849843571217351305908522668725954757288526077342811092997640126056382547532493966884955284999453406297622476196151360558709899798461906679777217896087374725061989621482478830403669317625476823048971972698167165626500415348652384547211711031315510918565620731232983702625741727492834391165722523583264074912924353210894720531098217998286179401003521943489205579555714878739943206784262461887659468200187226804064191301358803633301575012656908554428626186857839465281914545595449031562333246724110465199672497593986418252585371027516346505383319536201672318061089009603669282565240704076707747094062774799131477400116164017681189875626593220064977637827578939061008911471293247879274539890539422468577528830466611908366159692244908747230425663293951402922988494345536275156860305086345528603824523453099628500209589218884082337357186295323885667227952544335375112937019472580729222617138579332723140317555085750268229541853835621209693083865012766536816486634513250413540737721859956992167212612280025263596551459699793795402306448200675773651996651045985862701748105638819623598151781624884503054831464242187311278336225204119801658822335325216865485880219762422546486467225530822964703989994631554491267603746731807748086694918179184960655338069382078039101404986214823463076806915500530548616498712802525452166593759605276236282083763894517581069435087867192519251646515565997906797433824005295067486308768378673690556350602010662736927908902767072574860063511646255549423860794018905001527940686039886744245560899132583095890126083952817997766013898343534362208712755280057614271117359151143817195571574397778142980223137618534152391930861740729474580636321556331523131563029898821748746454950701001998770013561661759149998038234320279538995477688385254291010871786928767538846067400418355793166977648565362053573120087303180651310667973842032989004501127253658731554352675271307631258672299347433820480577600530019063281623829150888130041105341846479261854057955027481840792372828467219485607740901542173210206811831715742870368739328589568865268575427745545566989078767980924758747025037755885919776359526527683601119754408969292171096569438556352930690019747825566201637082372645695166638586393643550207949496247676052183865865465277969354954923622281572076541673492905745010301946710017760895792870259756721258198667840072953956802430964683080784372625518959003091673841695164638389830980221768302846490767041027004814243091240559009071625748701504996976442513762757040766673230158656329329838960665244366776729989615807178582469868879432679411966738270769127538619573619203664109563170955576131747536974098131941778364300417773136964553297044877603457344274806063933621493489983181370936018341629404626927802125615719584772039338205939346572135318998614420193215541101395355719091246675366890270925543577211532261035178778160259645283743038748985593939418484223335677569421107208400166104654782058636233811401436105408090808806966051428391824562193862055439191254758468282633434772639164562223018441800991742225255674233719921885534627124874451709241081891666158435627801540870405880183465793453710610529171412186937497207198041279631469423397683013396695715009047392781454944267675995478985576519181763074744406077417641195284743489980010134032273700445030356397012426629215467382862783020638792148280913072084795789396472430743910094722779273479387605777126137126672209613221058392284651542712790775603179495408261006507100139458148192728301858352105541191781401114137480254511983016603463842424213528074760563831610541607528816606710990476394761529861243163438460693511844280870892014035338355704097207005368641943526924343786374241450324097072157054225901886274297340486699364170254621668338425924034979973777212996781521036843982464684041959376141030361133048693832723497654478627264107703415510392197469757226743048940354746622376336383800257312237531210928886418476844954566853949796773447863808586764234102043390850661380951135633845003451654760889873744284030613830565732969516430396412564005006810712369299187830475139707306838667406854334999220568292319924698959380246420631491504818452651874234010682838316713544061317794631492482781115968037950453359879246795420561948750352409777152992433063017010449431469498284054578876083863069773532942841753098894839169710003936622312071339096941577608255127274310727933016144351774069375190777130031070987083461413492573643222920174131796178171043129488710511886691812364702975326415382819525004104211936749082693554034817256809870757476449116220804468158443244049196824826857586109078630425241947589086780914171848046445486020368817692717052417874468095388018799323541531083355546251242090897029787285059936574666885203329722949227038254814195689660671800914671848728136026244534773333229149101976072719676625690445770194821269533137032641541461672994984628369128411003779322891379924646363257927400748114868668622107671213228800818566256483135667707783223206745129910052345428672398683814845582529756215498970661147235516222612229442393145422104235230774735949977867449261655635042958343365764263066565423326749868140161560893235341033107503959846911275075294340421207062002463625965472064004064795832706554825770864197050272006072888541862862832219037172018713795920122309644202530193246358164906759984998088881767457624726974891240539333818149008123760701935178224014518099859618359717668328951244117344297906828971225735565478783763422220577828687802023279317675049695824737678412938199608490653013180090216183419942731194494536894146773644074002379692804986182118405769150315413820432357518879485848337571517406136926753302288728895507293159735152208186180699295490220764850735593638415001173604609419970084689655653723543536079585842303133079529779591721717572381756292830786741842491843362571254250524717890306385891682518311881207059751835338915636501860126695566901684457215982600914608911979951233569838597121469387332206253475305382967343602990135181754145499591558536590389948553030478710157542282579794270964861807621229099898845245909458226086467453955710297882079840840033796394761643720288963019649741728828513302700358651486898464529553163742088516840258995391222208387708189723313602570045034648142327808468841456293235224428148443035441901052935458613467576812458926690987637747965561051430370775951789644823483984159644901132750527993466192950964436921586709211294725271814143129359513178950261587995483394731811022933374162318508523214639948887777403114466358593684682976217694571936887607082353633557092007357518006172907055433922310326613606380373695237634329171354131910912744790314183006050483427925991199311182682056996352112958955638819068676403832254177950331720045580211888771334067571254187451812280909456551039393263748828059593662637506036475902007743819473791310411985368596934744058901357898563363918510691109153970926460186239586565470098140736423169213241132430954901644524990318923492027460379268825801739109233387071734749938237391539090820536737432621256899030864266221046358556034813001249287342237754718359339959223444992615689422205096480581338334237426291327566433738119931311203505923270970319696912136772149095860509657838182399422594730205623138978989148379866744348802023779703237139810714972917747235486820012552560141993023602721026105347195576516468435816712215410246349912968886775441171384373761151953916280295931566887779208990645499817331067540080462728698147987910138163316818461732745500042787634490493650617510493478109856477119373329003967602806183347272355701285860348808622436105060002206866014615502104799494085496129602137870402045283708753390292590971673954296601601645528007436427057766818897696133391849829498671996947640431227119034244221810302387812307833015058709107252082872356776894605720549559019831106313862971528749794719623123772242037376239599112224474247833364011581873724792836651103487554250366375449572703976179165018574116607468246318682086339598485429582992195913748495120558746492227103666063566559466358077786206523123151796493888019540585396101645107660649037607654564741321075401835034485148932695627473647171743423986008873143060304431593937265022725381504716977053650921239058083137239212556155329761229750970242035586694429377066404398225016113546631705312496476490065099397666033139643996456727843954727938312158967418684162052957101681620675300254971186894418983248590783540834162747245202755393481338658439080277938159788403028752201106151355394602263882766494247335159517062365671039459361507781837973716054201120730808320488969872054747200333464073980689213990877163938506105797495131588195174937941022989291652856173433718290984182114355994427759513695959213996910845685505307243231800508861058519436338383049272623999548944772731893855197653618864932185706704140698056024822547601024293761359482056315151421722965077970575843811488648174507264660675077660856081060267077585530536100847308241479098091062161616255989151133820697568731423879370543036651993366630221147449248166284566240818025093087366480120342165182325177456834978532637497231464000914282444375369743784597076428640962264254999312960356316926935185892970014118872363449155085554489818177405887247639481646943127961351909313622720879745646106320660835556953421692998073637281230164735371637741140475844425643064308358959462771540539958945663562692236248545615686311524503989268727041963909330618595418247071680108390844418131156370766817031953040200752235090000649589748468350876070748941360020278119599783260135477250597425094355502317310558131395656609328204663240489481038850756615491334473193645551871435897757686334002551049605313905272027529206888627878478835950021529315210290604238680915957706004814781986182119873609683130009419859016588064708426126791499365642602267814651847785056536670155901386993271139781378934585703486256630175879958812056921990970717412316706872781516130037705106185445828688707131172788048605812934952999313989458943475272674811925441570299661814348116324277817790793185234975870738509811099202443174855641041371715335835937582359540755914401560632626545785003082175040776377445428105971343066374957045006698466705598259496122603456080055479396074835581760843235425706467223028496573316933711639381631768675978282717221710811101099380075838017796809229588303614496931116495879566656583478600724607958108965673481963830967211375985961882069667685989016734089578928673188323999498988924321892092595938531560010543931776362932904263314247872957513486709294586804551034061821924064045242956673802155282309462709450927442610056526701986524718624934348036956554190603793113472388571225750182931087613250394719733675140557013390608417435508622786293981349610923014650964981606281733557691539456745602979050327019293361253350734411255837004744565862309480580806596356801290013070942213186172872840938216143724920059885330796074414343103982323745643352132694500420398756218096572133395701896332647839276767417810976230401484343551457551571064698447572402371569805796450662543677070845228573876136600811509306353289428796459738221811678958965780192063996516922387675267359400858752351976793192065300444979550594896585183379057822862773622282487930642930661512367087443038251790276826003004705372184638596344830775077179940947709022683916642870603149935090519498631821011308439657243864093446080761322616693066700323925546101231471850201057031524141625905385796610015483607351332407209676047600202823223104454208692976785339110891215533061792447724119524146492288900561229275474714518577442573507394385508738383575967129849200324427195909634146442934176893307377075858886374606122907010434131822156657704668456195036166975424754304218248414702074509052092672902728106592949629634235681238786473411200641150878512860487965594961211896785181835870585925417217014380971940009036777439710161338639503180667770129396482229511980522242666725967857036573521689178720119870545275849677834547013798080147500036404232314193006645738907989888778999446009487955777631520862107921052491864395679256194372913165558451314918831624837139245055016303440775265764366839330987588866582406194721040450737728267976758673218772112344329113403625210178900726611203458701489209148464885816334826886434164690895516269024220352553751656061752260907747171378067159477086824946602096211098919420494693031293013533787252670588536483155436818936024939047375595714295818635830340536092067842037660674018902898780656670305114987233622630145880845382330995808755934009847312498946367347327842002714280688713879150388110711827989023232454347304907490849923822132568465626814916054240603420034814047942003025272069390034993942343703335794054564533336288081021175697590569561795989547696651253875065863950658855282777644365647810707433154115710814223967773228238257553764615687392914408645644023306894011906042224864498593485355755573362202877074553376882569087731056192907761142741761540837260446017977429905232434423358752086256796404212773231688708052567126728443711221288218089689207802834643272581789034079604893609934422186371072338348010712429489589545329920447715905887320041279178318074569310319615155640303960335217810270853233710752975313155724264221804892959112203008203571503370818561847009613518446262931670363583648564430384480907554760606420575635688782961002370773736002623037470747697267619924611420194689544546240314679135095954079081399877290325379440957034848844795670002245639215725647325723751424156281865200218064720497393152355440237495934212835473341901435212321340745281064869329321256803550753382605855995925097024176176206100362808956055557368249841172027503955014182562605884927016251664865481130925486905506870820951324841587054833872696137692893695441573639236639921119151175111935262564519534256204074905525932321575090498696253040530313494721422241956179604396790585117615943682762777909464768435044831851920315776554577908077126097856484305103544238238491661713927812272853844120940721886774284317380880298895609986046892427859531509080590127745848160067833700003648970806560792702293170303774211539284354275457847666571749040660275967543318902170443565786064004052450435322643332460815508313849952668462319065581495426276379748592737201819884767430946372433447915014573003287745937049850335655119137119372008124570368516946971880654791837511017696228923573063476325870768448264895398258059864050516457759127338892794467138756231356845724714216568477499007790176520633648805072751287137382867571749419857139074073866745684309955258060333621098699327153562878970189333291314029338211557819557669952565376994583904692977003520391871280386787109114830786385867672112471260341647267844782792539695281653114492124287815209229385510102908653780953307788054862736221764550951257324760243573874978686541702175020847365383482345782695139206116571347872015621690033877379093654796941039579072391747591001365821047974478485037347771848581616987977871307949519684841968440633423822389005022187719275217571860409457956399138383068982329723040504936237963494686043619034771565193191995722062972985665906155771848262370352644125662500773188300992654847688262470460917341879253975206116638506425665605278282952587190960477049085617010038350255018231485787174498184083004167930280021822322454479018318085566988989200865967777171989910835280105541985798831556946352745381042994868200464106157028679088989589508337631498480042224386052238216071414082376945919690948979098949066703513929950180855522133351782065880854738525226978423595416558251201697694792604719618043152894787683757318345030150248644138810232888678846495021145281024344842179229053488492337181984212788360357094994584336068643723482337209418212582774819120376372303409319939479027966733489971890940728796746452876018683222962501303324062154707482588485056010446087926629557853168091169731376189316782200134291184760938199371999484118819770144260565508237546389287094594279694455346368144710400884581486867690037707882398760684205249636967293404093803829515991738931000025814457798202702368559706209271419356372070099398038370632753715259301943912976924805524699672983755349090481976947892863481283580923636896463099440141300252529964551261005352066833797779265755980313317670038414900813041652139454482834202038214754851849285480235354307803415087745615583523459199049935887358120995191458362514359177886116396672230326767403486745048480726638292521870715456258358845659542338749017952672013279891305659083812753250346247183709911630064859938041581378299106389997480237613844278850786257796853498819403152061357072731751349453982573211949399414956609592672429589216910082253847387011006696013512565120197442577132718171511057960748163606271645634227314665439170532435099371898276475719331264212833558068518064831237606105995084966754435270276711394056330444570509475277812681222039965440713719559579437323134032504190396029859984781315320136356937459514057521806091771277818659279918237648373226048342293038827343814548985357087852995491457482001070101971486939811055778814164959864693838481731136532314750582104189278427332084442529852482198747744946424985728822368458107877786056392642194247578661258912045875568700334218697386275734008695076150107437469261328505910396321446021578077476655452082851755990554202370931052816991783863631948671646825894786329201369756610298414032193223204334405824683713392985623231777517011663125998035276730877563194745320917087400675783892563312776554058133029061059604956408096264787991113164005765540238571868926482764548620818563757202471638398167906795129246388997954776769780066662088848222888434479608868159231760067859861489898427876419645496629732950348645436179056001425146524216432160806554470725598594517240282644526284527578247777964010751725107061838259724605244195044151797061777773655187260750163634174821525059508207806623228147289632090338962136626201007854272512453462594922727918814203513127420946929777980929410875834560932126222367018912214334167576703450058495711817489662532776952041713950646890263045649678003393535447557273832165698074406559918691055957337094764349109464551062033768782393826499997269266377917842640527742515856455348046012343592882022136383887561212220527446778006885491505666389227874899007130460296254853269969786655780713311059224666838132370391273744726094460037168798920078503485480020505240496231244580118891958088461354376720174744346776004033546512215168946809794953215284458784296648084579923131891423307114044885980069249654712914033761212406090180895948020819385223181250870906212169923973210442662329486153052157950986102115866101588410051615478031025441034157408920136833725884679016592397864899490054604413801290070416114605588599110392090857714162756108197468998701884660177457141666124096420427608616817944637658346943963720631001157385427911133639960285607834752496940532278366108597361348317989299531257004155033154685030328926016392618887665875736633032622194025949285514587690434118713780269103137503766170534489488595383627467143446941022019502926223791771283153044869816516607597615697632679036654552675083885902305261856449304225488322460252273397289721430083898552652948624428449191914380931261260045804464483171852845643945243228203238440876260612607683111635909296951618985279430673583450577822895759271694690031898124676175945640320756785514159907319359532509386300476109934869905169791214257662912260382104729139663018261335411872034989467129563703876486982772122722602324744106159897636765614755587859300403554698191402407199143982923997986991613104079919840073042863207190242339658356625072953337892150539083297999715405746233162018572440663575090117833671617350049655673840782802479430199631858611133632793994904033950256353867899819563281289306103168175563496621016089742300277709875703896790370139456714854734797884276374235654700191033366273640531293293902343231518549002184780732544275963811241161387719345576968564426259835491072593191588683603277295271270653451628248081349828637755843968732566259399065545269301973041877483465524169324263380464869071617402326242604878093192752876586841159536019022022683275737486460172018174781897556759807604520069641340723264144759924433622501491734507390329702057642009157595442783908146289687265515378152648622685613422717021608002342330300063794498721912701953868618488869945342463965708477454849711713965513418721200061618746878016921904457798227609611178261864774769209461483122212939175486888196370176031626861546134217916602230853694633138725091894175507708740686846347466016801112881225519470481091474086080288575242380581798058823265476918969131996823795423359004186743850149482738377817951031501835252748250020912455428208159414309276404990047592506568800486824230931619262368411459002266070484390439251546790154752845485724427328678207468668149384466546413041851733069829053774858358883843086431487477865297930424349558814707201360027843477561438117275431911030619540342485886698079922178415558375724215517917705269744307392728644976814922988137636894685593728750755330116197565978333651959304144592164786684677711870716920496349878122400793933211453434717532111813857917000282033594529708558226792823015608473060234932559150491149742117046010530314007172982508360072948447122478688516749338011234575197128479208254581760215858906672376224440392650633332738212262866213216466404654001292423015009869037037424486143213889066283012389519803959173468103290678254198309379920104438082370959240763853596096157232405393122734555460208898292957998114997218312842309598297794722887687225427716674866527380472652974292484942091811303019873133414868052472525807509518175290845000565904253169742975388487198424817584582363307582477129750142766062227602905904855750626772976016712621963268174810984372675494948728358178780722553409118220647220878389012252599719147274828002957277028549716242258626291944605832304759833837475222042019612274722997144037140731396302804832950089976567509912933962183743987599784805574877212180001331077617338099148292449370012808813109827486407766343638562200059165099638300905945588801973399295065492321462800353123066879733346999621418909424100455805475422965392533684141066951816061887371539976324798795427135022253445538477868707953261099045886176166312071128147013479518579863463040821445268905521138957994876345745104116691986383646266545414461568583351286952525300541296766712175609333049361941406153402910150618985572231746261994375462871267315301057463448318858400024488830826370676107192464854837012491323105052093964438793171111926506402172558267910205963395436546730403256352712591560566667698198176819369275828341012225705063017758268758775026896746336468207797772750374374984462525375728402114725873720291876968815534616762328248607517382001531212109331924097423561672589802461425881396258776623363716000781997872949785377241417441316622282536753195871422276027165940056790960347938243642776291114788657427691999901370206123169630783660037044415122466712229166035287672549502610826435904293656612360666850929624912548550791054631325112004782260978833985990526579714734359532968923420503552620418758633862492217987801255423024914956417635771017552258477160804982493511326735741087963191024902745698878373135650335682380412237014239457492667479812115568044361762126968845908937050141119207370135023465178369641940285944783444449298812314041622710785507503568451282981400988449594275062220851718237761933696273178280018638257312567101780180846660661242172083036600657670748405091255803601521035865263704179185488900737372625621519953987695607576190021450911104949903571759255312450745286835437140158626105196751394399651605678001923176192889646002287887123505525990021625987880570511330530872125376895224715348218166137835465826216696533537746284124276301448496499600907812285031062504183883075065794400018036213269545027318045356780700561269375350052641895874553942731099638852027397571323024862678826359786035142915095650528710175528885699373517764216851654634036408719314586630778845907878544864912164939060071001993628706745518552858106798587155687383133649516573454994567353545705970811120669838907273817167799549811727349485931509987880230321763742250857354885637799402583029865209139413118815657237417044723555296917269958250622670040202130169591200248173033740829988601387899037716544473656759589891228698498966561491494649333789828914835128980587390139943990217396788926019949407442554725887895446860523728176321455762362373786107837829739528873001678435483874314922737877644414494295588079005798044215907493665200688700271200981581722061849556770782967712935703054027430921430923269929912769595591600419977349537052929296152809422710598332881477002299994008856162123539935916137985816368409454483664016543527135493357895328082832844326635204371189497475209810180104163722530546192785906980409739002360014543349717615769414194045991951264770755236692959673941366344071104013569981284716615736525026875603593432788939816993544703736012379975538467096941075324514663141601233872961022292526910305103215634046662700862998638862382314717617995956946824291937369763316985434468876745096735181112510192010661605599406831953132473630174653554660015011131550577164059846569314324079947521120500862019746150897167956572405448919012879809279659405666949753798678675296290239430456955982265543983072531935317766302896767721110158855412156316877997004255832425668798325649916537371836055422433733288298816916700218688573913745947344068338964099897437313088885729637883756227514866587474549906846038266746919871283424934811495569041950989487578641538839397686537056391031104354779698239175482524634636449953131036952510291529770174858109012330344393998779918907350402946359280001993404900731627118563287154438383648039049034536245761395192392901109750084515618131252498875054885902367750604622462518132625517993958274503287553570160235179345516513970097616757139788828312660525517286540464254775001309057825982154787766966776894752228970136976028897385510406654436185238104957192013114912263914945841851668744951299418310243575635358132595392427593350567859891791924427611038439764947217304495689656477568095149059525756869488097858079116611649250094519715589752553172723595174280351147413890848060457381019546174209089798683708788534540855600487147388722668532980547026974159532401464482763367970819374988106875010326588942056707371431793342725946674777629238749295369503099860366469144770280715927880899708563223086609144743403736368267458658331018410213794775265050359315154616332911647132180994168244236499735070628822660286001910814882664596118926840731458734313251043200734475843941562118189695556215623983199248451551109130549114034620740020562869776932603321550408028465259064219283026884630969177757290305056907154509216977736149472373980183659587239460421898602603803568296055820684135513558534898906456700933055745304553563971802255856789463761203255700405180821622530438289035113096663873731098137318043028983233132557735192358347267248687904693986491484415343117581003697698904184766462775660813899435330146091274531044109087278601697582883237910013116121293287431441796528825186992030377512813875484999496623409543369029856784227644119008638116176123478121629309502918011053680684160652222875102708269979613221329178563412432286460074876802771825337715658220519090571032942320749065685426688917527517969526078688860354268603442233171934400539173193542233459975468801359972679730196471225052138105265870310846747673341136151220775926873456262944673070091636942539895758868032041899976790642030974557473314392772710408556205893763329019530480722981957902534646919985538952661019424778605332311914266159930923888682935307888526845382237332778416767002286655131034733935408839526692322976478602443248875595748230080099448763479051436947894472923063290795372041531767565738110149291936698818415080060809991509215839557539035586317678410893354965558204225479435342760039335824181082162434581326803168406185991204914044321922597945547101825140095292330156919721256805849648052321482136699346637273698437278961954008077446298817541597973128180224801078481526581708938044436955113783910580775685129453735039863330437144401657313305698732069184402378353173876728492222036146677230555695990668193728341041548728212921081888753301776216616712277391276482121931332587563402112456736515240439811139276500411069778033831595831160716651587657432595461758326775567841554150624921787551406582287797101966236329647292731081562456856520331756598658288506075641689802912244976211155609210088917660594136561343191782766762648525461402005454106900218257720119738716762435902605039921057716310671784275929176377313449014018795130952063556114866914079675407958815418540966966345701444306342256692521836759139618300603047628058310501856031840375678036953803953465370480219467098385172375206945620324105770309939121076340734509235502678463430867902254608908954663559110778868684227958988956924550543545989034465904187217725551357513845897408936289762972077679181848514414550945139355018963930880809393741399864714197982090073428886268513463865441198382310680831225257832595765124377061295725987159607958655605768135000653595194834723397407262758938640822229640795747348911569854643748316671166608254328060560163342667460703948897487899469688633878056402828775098796805011272196240196491529814175858420957314731466912237845681376416744696364466153485940464539777240819148776725569669873671770213845607434218516808927183953470288968180185356357597378823637930217751862109051693507450607383924861642110981171241957169990371538185362341833958311596880566562098550241823077878329825867306713578334831426819971174168086287060980906373519876783365016376112111622528843737558146146691128106961575366810252376168132603363731203212542992832744437377285420556894965916549879085395529468627454223576375110325383171557304197609210851753485198633933524567326486135334190874446789886629220683646622373240162753767898340229045385951596497751728299318200153565615283056312902596004268891226766333231058485071727243913185858949915719536906408035666789817563354938220107523682272164130326013103556472078478312803237613832724235706787305906908494931187668596321188834574789634937661168435204723208778313967093221188559954321696137038141791414358260941258520434365923440648062334331735768222925607204037408310373495460257428193846596090304479170881949116181149766817858008057736877726818230859552888278197564488908786333936090607195836806166266210318247219044054351483890363556123211932945904436898121153274819936420046165006134048716324991467009089191734133433765949283797481731785752114845706277884257746990086278577512692958289186183408315091726801862426947493063328183028720489379235379253771109308325996317388886500594362272455059613116540865930376011287612020496046443340961021979924100318028169189583236603849584949743623563894441824379068552944184711824301717860596039528929930761533140933693128658777742200950257606729883873321671943104187571475379001922662490868368651693364559571671655042810958531453269423968435144892149199068213907960420696303318257964400179958760570095827899580002577452201846650555649942017259548038374933066414536116325619351145880530478602502964323449185737079247175798812553361881837199041870501734907709273835395308540182621482870953219999312970132598992427733007783814951092101709537279236952857761513112524819740246629643224965340669606343263708045271508972944008960960480250419732819666979504382891258111348719776082769181687766206384790263297225541171236539563143374199308933849750535056705550331083165584754648393768715915238857694884175017744167824337129565568886714725318989938494952922782196566835169677451043374804815402122377099834077414340222563094913427869688096682166138043661859604052753778078038486590156764438458428787382632294064608255736322906076554785208230370845669388519356814130314341005409460698699631612397906212519529745354857606237242341015516670068061265931111204893323840052287345332535931195637663669432038345736736824356708199804328929423792134108508571001676746194970177970892246435577322814623175497771757192354097831964590658778075167611503171026534164020704308253254403615181037750496887901569879736376337851379741404178143179534761678403456464980127620014811135898040891451273356614390999625700119043863324814851781557035870281257674612226441071726519336046843500050702607367092374023088935512499912919940854431276700925934312045199611126134212399759504837384033615537085641737970418400236444369868664180369831102190841117370247885618140096099047030073332089160357160716096098691606216174746827490221786472738664022136491377449834123022878741458080831898729983282788628901601592303640018138590375699593375360301931626695601708391804962212628003497685680951989055886739308655170542710584983024403687468942298488471964276410890224927069709485826366654499673009013703202012905697576521696920293684743937608284092500667059026503085286963648650410568348405405599371980789252100808945510888742276635005427865847661847725335513927108510543373335024240412815729400787829599604456449595074982319003749633436738573224016680736001204131910211936990800161144498952189942841385806930921452919652349666533961380131436322635333903181663041733138941004802444496662228643983810838657621348493549887177883460913529537922264719387023369253028793382309492999483416923331410661879107137223935794570366156949740756330734312949619851285308496106000974712888546737592934108690728414044233326384460870213148441634169380828565149360585026543493211098169765965099390333202115275858472509772142534573703588547903000126956367030580314461428586830565989325858685800180655773865709242715331949844594612035125131349401914496727394820324262513476521004874689052028581585519349222317543709046027970344549639661973627070341091778565753384169042318095134781435204928584636459828271488099938221552180852119819712642742897017115515139968193151523243015715276336314329666028656568077047194630076108336157950851926923196626805354473709579841363757802720690404395881198395974610499195588853933125928539872901157707541074970359223232573280661478559913721784934359139710967159049395852270969961697334155566289258998962153699122904064447866204719547683032653772123850128064261032226121936690519493432493916367659440438825351524473482520314029071009825089471343533049846288125933120619747040991049102635541026895564190611184542663501991636705223789618354264078689779254198198844804859863588198531560518804906600660288792027662241976661717801972827872584676483032986972775281947980141118829216405193634228240868898532073305264616127010046602145059464376335957042332716587015660068083870786233443703237137858836805678475828289352685448374629840792801937027705939322430242641490029451926650536050396425089950442578936274501397817833602145683695578918072852877212729632978368515519076956234014063588223176336448513562670162210317955386952094385483779232729448727713302503072107986248058242491107054633751354146140192714894189356299283692447720112230459787313408610717151797580816817941825699163774887229308163292466960908688452143675518383383454484357668992619996205731510837330970714635668035786650799016603117959057180636377596783891416399845716513190672854312207375305776691863767865437102725077320110326974168212292592540566405824001360575825890181000762294902864818253815137356139404364100471745727054698287992791935345134758335653146709619390019504386930513115124485662941496726545148915627041614743633249310926917570696256044980995364734646299946988646411552932605180883160949022339461104576711884577389857038712502049523774060033203724359269584487152731048383711487275099939955460996922524210289424840861657290650898532634567804690812207083527076492934376792895259582291098542174697888393365420116825520620320721000156133179599276861275453548181301457310105796111575408863954787580718162280940826987948546207080598316530724447538820653059724134659604922152091838335984272749013553157263168465189014597613537744233287241336974232602797804401425830442597121594284455101558076348629603116170681869370389195168566024800817068728414790650044708145870127039914662547309378231511154076956734420982201652381244145643305064281767214904878041989883739516947505848140434615806181984616864119778904594628525901502467820899839420480635430962035819466622808210845489329486686509223889058896928156628965242907124032762840727345850659743556815255842739102075207167174366243426104999894138375207585899906099719755033002692097404714747267181139615617998235188267942442523443329537800227835154973978744914496025975399613636805042296481703426249704173939329876655851722280489093577871805859123162780639067785274076796974608104594381620189784890592324478567896028351666212104093095142917684270672420300847589501391583070216710425408478962993584979087466910184908865719697534572051710413315456200029661505568911765474102207490640573643891405275630610914270708916314994063472788719682217825275715087699360032432138497101568747798768989645334540083174028737434610291019425556853794489053657220321914919775022579632221479857216719381930242548158852765538133430797773579311681973168897733321155014548369869928911415997790750477722184158806019120520560119134925598895218428126750593081823235301879023586575998442286383370957653786659123128654940694507239935812254432452359518623824336140289404428444418920632556767922948539423540179958805905631037974197241768449871620665816188042105710090491863607199523998809597193562109497817410912889304329464676212941731999014358240185112287848493623202214772315725065415308142847668312720154368620267643131102635414675160836869619518151256020750982475884543450114361759553594888032748901132134318343226182318489800994619335640351418182217817955560395660737667528421402499715899221855071325357171189135257766767972444315764778649849465955405642857600125305883941064195269458243373404697791657427473444085277289688443322331583040430952281216034227283203596513598963564938650161198848590663607353895968697676409740533989288713144769083888457885294863020329965318891499894145853625401098415989412141671816211890905636782124898620503631995646555142461659985253514305566716216602155759157757835350749414644016202511636646553866285652553030074654433618898279614361439259942183832641336585713343865821683002391971715216399162751929269131531494028414875306109762845146115994571939754109584661497137008748081381309508799570094944035441965651393484476344109810257448863229291549996411376057392322820330164854988866197525238717453008107146619499309556917083633604282505887580351578700440060391846069121606892960769598201483551822731962548463647955520761611430076049067913254766918101939864861360013234740368560188298908477724847161553552531843383920929821246248367689214191416209308041350493720884072190861726437549355579278408323956234202499609419671445975135588208089902558945718645058387531482622821887547949728641243443401923166319803879932085261800659087589134595636207176162054027076040214709628344697720138069742587162003126070636282060630756264840887115797402525689359302283991775070721045129892498115285123162214380881589302564351739782506751915772785514707037366574116061881871471782870965190758591943610238441972453934823598512703527302210900801652768085268993279373764468274068081196854848709136490950194870035993050570234543414801699689397627077516072072265543156040819777361202534998601940425291128662143912963906788092521633263349753873768222898126595130918370000457718713674344663524139860786899644888376123678823781531639098654690657120707872639931870672517284426823004538870318501977620632385197112018977779844030072355777800705083570900088653201949548298927063423857700388932286855076569950849659158916016705009152815594490473984749519441600984913092553534689006236126126380679245952874467395917109228904384797937247026336196861147319209106475541098296379450483000766333348232497481209431255977920639646973485767586353131969712224009467051412326510963800996271270293100170217185909126802884170904622879671980961459171308272835590539091460899545998966423023742108934253311623969257627831553662358518135069061507419223351261161740747002226841838479729123109489271863670949003113668068121393797462503171998011192735937405302511510250657143915964375943595297773164749989756797513455502302037146895763684885069704759738290222946120698948049420102176357136693100940460502382853692124408078095374921500517869969234777852911369245666871938411046435274278800505959393364923124260743978723625004435195288599905359529935893266472360705138899830305984336195915888094972889930832120486445416437026428913370000885333865472619351896952343393877141916173406906294759957528145350395764480597328394602823907468510231227489929367792070846022990038223295598570168309775542604169098932158159295429508746169863580399211134094451207882586412774497460318175875844994864735891258594855908583677035465973856308421562005539193696501988399654581019741643251020559842515167046442220419182108798724706209016060134413225807803211396662221357113163759858799097205328501300593875342822890024280564395078223800496179431008319023644508375496920444086630206666722706110815906477354660738871577581323493707678448923036488352884692283037418646408148195260059770962290003944438227631924216462249441697135129881172881940405032700022273787558492078067819987776983135744275198288630991843116701548349948855511152361788668643055804241073435392721287887965240979991963271977400731536152753771970771998447485101261550776523559560930317608124946437328835254627338582637572935744933659836546307696321282989432166235787785307876645951348275619867376962476269832566189394385217674646344594350262778677355004408066101246840024207790085681342448574884234667889681390407029303187243720048139280746746245374624583642194587354625926411519936661238263254794416551348026401929405750364687950880889093276499090727576118944971364633269517553608909603490518868956317470099680048357143439475584823618613944380004211536831896553945985601386848838310265595632788282592132102001469319364644513712217421986025536360680436645744918677322533826450419381528331257305416513928734686091149327340759148673019629042461437668728014308154738373683897813525240606383518833886766200323668356381005272509642325499274450749712757166273489392844214388044492121085242776577370319842948099212833410941665622215418672126211219461643433452389348476507956723708205789614790831850809531394256328311244991064670553871554570238907458064941117872477021253049767501985760311480607110896530882510095415805908466998741804151647797922922963038836850605526326337904413058858266210319914648238771008190532828339102762268704763629496976186194457383566116611179455614272124225294144364827418868856662856883219090128778078047403312583500869397354210484376888056230522636567569649139760898824921956264371074344595669531448365215835973611917031187757698620276732251338278186695159406688999216343815452326863739013915948371153450468110414653100446749765624252581662534203038625261041624065770143397426107537514677312155203716499580394473947593157998146185867674204891646627261166980819045380045508816329823793852221335903207866944071421569137780865594866698114649172435962119103636815748490225174721475268248857760722159820315980593445106946232196000255585154176691579041581128353761572291629690952519179150284598485006570764218140448185444961401747747152445949766943270692372588290277013301432029395373999101708793054824680887238897770099297655744342421675220748419324129314333803442695087932055724880312412901085392634227830282909833596409450352473537794741332690932687539524805839727805566608711600514902537023279559198842039293305062167590816829362604623657840331568982789832659754451677469620338846843293876827327560361126999125310994298571107008477650928636142898583873639344647959253452195687583321726845685375646543420028671547587295031073467375062670990761821325899300198517466545786721417762453823323870077882823227590320518477057331035712072845850910564444185581921086377665342878251834852313231879334397521083419715895565775166305100114924241197915696603005667901031542511516825793679964011150154389125268094162461892570478744405041948961432550687917608125902624498390605859179840045230687614529884110885189207710946670365235626993972175065965902258375322063351161058027779551005679928641288459574774331904941244661403813142005201233124251106539789148662874060888078975360649988036133841149994758045819794523468694201864116554381509535828019248789795138397935737019223208314765994940123776045829511349755013845841167001936725484406601454955780231538943072346449303190815781285211678910298976621100352104198330424732478502773252368825919430667043949089234041837110572474172481334591520322233614839148442272134987304978993392259709467256885536422666989848762139604264309952801958627280362600366375431333831653946667291968336234815304278457130541970461910708338142487255825865048340855809534344149021358225956331088339508461060266705946193465525136668989571923286112397701215597269158753478656834669352824994147925170104211648726021147351045200354597550825625531463563651731997865365670871813006227783127542281619054177545734551090779639720588909804284604593474901942101388655452958314569810423250894846898737247085978541668775466665849263403293448798669522595531496660665790700878093364009488857412407494824257822831984514425137527761810181903397606055343498759552847203209421328121863750588307839570884073209735803018852556445559441201188442861598038300110120613067465365540438277232110311852218234752923231513728728236288792702740792840962113963797634133069275362180140507419740405780838911898058452471998361459007602776950359941356413078753909449540606349867639932087437869547827299412743719831733242878710680101421283805818491981639623993370182951392046904042416196363519997272708125313739450185135466438000415367476469278050416034850590987443348810725605586827488695706559263786023289638095268586912111840782406811636261618358297862670959676739625469826312958884263898713167277082090861955860741442555991040373397536561807831647849456205459033473209288656167289517903431548901196003683468114846004248554249760977157508143248700741997844722826175188747642123102862580519957086784707034780977630125269983908280404748074839959049976233548239179215757597630063262183651031116147468884165912447185014736500980823464441737946339816840651246254828895323099776742886821566576319632459187343095723398804236762522253091628428927831104091441651575894182694283638650579172060267757054642273859819750945150819676812706535637099471969532462641151638370484906680891523995176030589787664486976479317504816451423332564593791748639522384837996616488756818590925467242130661949319813861537265720131194817400244858442402058220387837301951320837057057261770560252773794240405266592963737089513164777564760096546468216855282937967282054401881419621340892415689349327200293792832528225193087501873134178015236677802252846632215269709169599473427971114076000349909775576452985838864180681213728506241057180132712546455513019616123564145740446005573190740141656040021019660516857836131119330495025101639206925566099123099291719215521882505673001974215003459605199979153845417392776802741962834037258176367941144054998704229105322933167307137588388271051679353278042121511858063087969271106596570778517866713897252487049011006967687875088649243864475940864143098784770203875140243132425593872482642297273232505689470868882344880051598994620899093138856784942473372024204416721970924605857664594065893870844924707293105584759923953715495137863068189598950140918564949142917433713838446641158221169660448915516572348955681195223150377178309666826264984697001613621906286155163808155719406007996037642164758989936532398418697501288067714374556164243160158565990591692243690311508492789628154430153954194978668665671227835864617951977360197159050769095313727155896080628761981935888236122863791443042295293976971313949073513735606660829715217528861094071317683318733740644122570305680082671801431881694004477110373067472196140992790122969220602772483919152247984417270236746241197391444703220066332091297482814179352831968011704170055123538320563472625905834760842007326398534247766562943931804682556808709199229287711036852615935373902556699666794378295503301492961422641412170906677493384058387435993540419310010927770861314177409243835981162818727189969160868954704580178434445361043468304657745146587568818511642461189469588782699419332864613856086242559572149383957414669074557745834644664853444018555502760891960240593618590025725897621619543273301391842922918067793933331396881157220593683852598835007163889435996133186944796049602093529450523609330736860297604281713861396355839284419711972210949183852631391803321532959388147202312193738373002427064516514311998160057578075702477426488185594184165757919556889635066678639955758295129519217237022297662060332692364682633034029336379690003594322582459761063602870264636374775308594546043335797344725327928067297432245700973977547311695069534170074609570203191658633414282587583368151809682342472657540039676648512318606000930261958504536642639830776868973733891043537375107588193807578840228288829526671872149129833995102486174107219109553035563732380312632837890555561600817537651325985376535441753403844516905982472333876863085116939867780911317525783533210783889494124792864418981208805406387073962576559443240532278411490044067873655921768494453027608824054018635760143922892351765521764251633785558311900979798200551941553652299528303465427105563149367398048548927888408656687638913622115730547897397333424615969369447812452769278206774129165263575587314190312766368821321282995689246840833431535150643201530635768425479297048227442576500628007748111511322724380357796094968493058053120924692692004547679820438219607616672652681809567460127422286910984081579337292174841666768685572371326964080763130205009371268601829314292798374742056742173452701801952822924341622010231634259613297282452397516209065261651442649583632252114126160970345896890899132156611761750588335694941029543793525525977774771402504886113413462041769009530525993035150714588729543555458921012154299836185690286086133694798460728627700999048364335450288866463639418478096748568220505141626651686589469685497278417607329822068608846165856830905957395450840502152957731293723566686620934247885980349497044380642284946789843829143144281730329402065087814060829132625550024429500304392007870729246062900407856619088438088158074386316764991904465066062434995668584827430016195593136476724472655319861129765675903077760165896307086897646405077629103644127153780264999611379497537145659671012959219698202569189401178475698762286662585384643751095357626015572156846282534700592172182149505742434129644225105398470940249970481915029393114738977629367297824358672086121024126540411628266032314567996635273918144957863947138497020870758163745463325422827505203094233747821834743943422837330944215087469699697586343709062243047013529103125626482385843682372410915094715083867645691339466307532966253493365369425988864613447599000227647307205146521164003700870540602027871755795812047472056153067796867265825056473919640910822511700259301646361822430689716725049002045820493406529755381327050419844254815748781201333913279165078330341592228581169167613232293701842175317175560867266279467057140042812032606116495900070847823650216103504141723252199335636588474916891146253564083889474128315888286051930412498637675652018009919894836317676018181577090839424007900096717774391174081443977279578972420622353098557883737718943155525393081846465715855694803515547959057588994686020155766617690338442964944069953697139544437369433182599855864957448270450021065462469533560965655860712946020753758207513853516872275070981596177439757644499392618287818931309406037081000934974517954213593027907274873501261834825643712630038607954613971270459593154052224188788610567465483691923482622157322119595250394822313360203964621588476645212433183507314847690562842368210946977968112057921720438365682318096595968964828684032390467712228036639668889629844977565298026602060554181023421913280802773643293637562776278360815682492951331516598551367109680857061838193969179794762867135373672130624509162495929000430083110018368320285509362986489027086069709162822023732402159504328880153333371760588596188824493208099801959051965313170451500774230178961241026174210884383923689353398977600959054790367755283906224155203903935399207919400220519545023790677516626261258891755068570940278889657584777893587703824400963219010539546250642506437666722441227495549564044407440754380278698608150051221699188963240351026934514533760152137229749279259914283666968738735364777490070898374907322843387747733625595291405151733565017396062904709081859722902484520008565834131338427889185022720723449265318617610268710797253744873668626058882616182020390874601825846148541209464331292414854789954765059127515204930613955007186988520711676171665717423934970212887232331506884865215042483286959130719089285041095845009972366614081742965496735846964775762705945448138058510193025939001468712502651322677901688176991162449244934620353470894356928715141051325461863850453417789972318153718708628216542376999333688422378376735979309200650068352313519585149988198557428278471451451255791579307596930803953575446513575937195824195921764292043586546419716338897438387819574514301980872185094621328656303084100025605573576322562111947871745540597101937029924984857042899127508757781030141625740916919535786255970807167547763088656447025882808364253321282692356582954801006479083835767121574661097985917291163582757761648767897785370499541399852470589503039014748168530888761276300734829970870227091166581683571919447877648568023715456701144076963690434524451032488195851619416300229833452486035323343570204012981545355288048713030649261792002605246944222853134062922042174934595045580252238038786556018821575970039591454310546226154307585267911620702050779631466994951869736660431008191548745023695593652378164204744056189544149148987511474716180282335362808262934889409409688781095632618947453405909608158346507706989086136762201065246410918420636406081574165484465424729454100948756412092841083414949214443390180023757949406996588885015852883050903322118467794852736088067256621356271177955748285756998917025214423541127328829008373404265270819264533580740829047330505168695687646169695141768505677307446362069683397289624019355247974309273728793210659780557977063154823020047725221451796344960791109317372931181869129273134660839818197671091530468778790813030126329722074648081345015825106003365357872620814115318945720672758687339855717583919938848599483475700963004346028322850152318707188338191776572298235467083497795119510008744012287506602654958021356879802610811915748522011150547732609759028748673935027670016397847821195059053736074376307577964622876828621902252403325974323350764966774789689351809819416597489951895802898618533444861270164028804860705655312178057821880348557305564765221257376380383866321716252529734897472530642978455588825694493465738518075258645360265838576904672212123136096645240798876735781901532434890322928426776517384129342890888624289900702092695116755424752499829108358849203341236693774462775016046957430774419816803611260709774582858239201150994788278992448835308481735472275035931484550134029928029737144399198214557876069060289452256044704726176862350703786859845808893402811476105911786924148759753895585975835310828950086586237096756599703097254766435691711629216644524962128842409397970907464348439170838660000353755910501634433317203351776269712254935954322274497963426398279028699981923070956220048977346222148739155409898633038191696055862531073487203252763125085440956894106872350569040009757841614225816778060246822624534165786404825620727199469215712258522054084587942446461602549366386249481130371622454702050330088664453949112311056130831142638588688136097652776626779689636294664584752580300405477073225115314882385035511891259994643357506336076850360128928240984216263573518895152921887404549902834911400079816518583153159775857253440132263173496962591853035843033518858919581385422951066132492767929297261905337534750117531199978595899002973849443281155358649966071786015643905201800216208298522510487479434544477473133136028350125868959807535133497223249630721224298855005013476588830486962175278751116847110483254677448413939560850035366939642651874683985850099402037701641713881274061086561583664863123407666280212264115320528735690118099614232257809444236064264129999215963603588315993663698040555410992148766412460402319220473899382104089830532769012712569409428796857911649582036423959865714376910512830028082977165501031711637884982259479820994598836531095378916123583480951603432032440335941353903887698746338206187732570344316535357292602200414919212399395665304205899672777330761808068000798245986831258128689430625433266293385508452185840768474153732186292829811142887306234241848090539839651193527175133797240839419262253818341520538863123852872890555051499473089704212863734840487365639886802790342666146855590293829667718664823490469844978799626494370228991266104546654631981172397392374739309613799157023069969363534972582285126451003138848481969932203620740650270859379241248672733428668047774075333989768800253930565744635644942010863435103155317995688937318710817957352494701138753416016629042136004436282183680631441022197484187336811826617117194735703214375941688357168488080206376139695631776468127175351814438808518599184280923383375371903664876803368264356403380442259777967933516124496610760264312604904804911588729607168315424734393412094783563628653509272803769238751993164866397449598024107827188820390336547507490962063054303953148451927163616862617565771930915409112288836326755427065500782794741045470988455880539084639002650123882319443400705052927005679858938857298804410594284149929933918187634164617132174718844791117100541093615845805988017467134544502158637419474282632730321397772204564783883217736875727366202861092309970607602870885393065084823686195323297624333788877056922020645396708982859633279025556073119406873984481108558112646169206670532019710597779500405432555319109997260123657678335717282211697223127604328458243511687122717615026523145785266712905944813744248359335319507175176761983122762185126894266840692005971883247625002205620980234721588745489045241971137020362881117414375862144244114184690657762792937301670548740729809846604273851088253372196662871932682329415514542669790245592601395571352227672869191393237438464257295742175475122483149341370967786049322250409217258759678006327370700152574864746085488075137724070830913764617911973992666905336308196651467298460949808238839920938913045092470204834131692770367197811271485893118291026862500296118617306262410897151930356119000780071542175899565955489370849191134765671443442982770146334511342286193650416308849517219533003579059461569479753256501169320431847622876209950000399906377467771917691340231547202436359927101448565705457950007814245030859745763037325550929095097521642090211380448443398502826651549126570202027450039234089383274153349176040703961081840999639942080626007486677523313925974257957028984754151176102642109209258351601064220405605793142096387338209039629779843559687652457377678375521413644773751805901865130459048602882889899764622800693098693494987298045940133355611358849193669221219564638176011573561692635880837161725613933928577122690463989505086731569039186362570853602806339647140976386300796153394264947416174125903560546790764747399703408119944889909707636798322525742693539852871455867506832640789169587419743923681910068732627991821248388217457953919659770554118271112729205093947719728971207038456330469956033829855614813603877130539672037294366873282176759809792086512935499401251907325367274186520158703004607019504004291256252867427177016407155398067548706436240485418914794503620304361181497204167036628612760265221383267551795291469041353603437653144174707096527820480225433713497510159608648119926217318526173248927804038176571702798673015391808850348805301838021105019307402712451192514442291153411464174337199835012610442527856373887983570244359815022373522135027358170274596221248521481873718134105978120848205318901428136740319522918810242762632882675435460133969200775223067837185472210540283378765673287119441963121003336780654599846246264117735175006976388309427515146881483192581051335688318179626431155012868223177907086529440012839763918635212376988675938516042364017895355146492923071069016195093713602081430845849050033440386488613431025124310192954220390200686389983572954601375385523922337624322946175470756360378199062571526728465539426416668157208653471904526181557878946745442121560468125567326578832360734297736400214389196917183664477127165125295543800548487790766178410592750816288383860373148027962553088337847459856631702360794526423706424137127345135508252653007724922854071795289104157699496338264622953444451367877612202110770792868966297125256229689164430853871569773675994742735599694048985335986613254621190285295588344049999604364937051358206723062321384292699402557366363412386785172392046245320426867996143927437357425422512069944280199138627918395711185250503345932148755502976733365014170685834146870021501121471401240126374706714536457091201922338630092968612323619316299877432646398463643894698378521430434138152051236526235141698905623265159341893155506454134573733754652212665814522462568484771323445661759042431496881666573990830748224267338218051189666843748164746324614033638692323348235612941216551150801667195837798358946590465860101189791720412278645194371314487937872425586239064987753336028579289571573729784871915097255662079965126792400152866012537799415632661469052918667373143980217148649761692069509188597809796722518072276997425706949913390247805557220533914002094515593246612746403471776395226549825451192655346596273160754955576236149172265712803560443236370155236894439352826462894598801470901957400270010666597814943580641031714372672571722974906115373785263839567910758294336213262120701921448844046524710630634167398013491361496940291248937958106787232236781003889262607827940747619109838315216329293851984993079792540492637923987931813929562611755955764272866516845578168397161900577010967710132233777330703561593343726628095950732989774727090426090735431925837899577528762945957607828871862973455781882662228463710347266389472737300690776341265648337045570550171792501985527418643425547366953928808159718975430897738774448435947513775927783063345224810868917888745472088197542144700177363541988979569450695855400451187402480967544300526886039484860977808061715114594674686932760992315502433141803571687738838255150663673437668800333329127590937577200824565067483458165170806928762113840380260101783683319797257943732742333800049218863414729442447273070485937469490443031131145774875544255244865007985587433054968690420519052672540865532888732035510905990354950709800881133477055717395676951029692684943603041280722717661266938989638260247609055865552108802673722650060001042588720802135098173751999161351971786570170360017435654948960430622588003790173710645668554225922550263877352012758617087020152790987127567614126226563468616396726559472477240390533102884054912844528342881212151044458913797274865463255331337389817363775149510105589859650839032957453802186235660065512976482312766217066205682834635530231550844889499592040319399270774537816716557842220106028084381027485896208411524231353754286006643143640789253175490288548183070524884186523904032202542210700075049523275823462906187746434737054775663209453048836784282293737012721602067700082256882982877324680741943377589435124576830194170037948964110718219060252330700929534703744843116011136685578209551423569094112137269397941019185619994118516646684008441591487245924722189126462836716064476807048354136436821537126091305158878875209736200481171765112148327361173656863146571465410608504328546315380483763600640959866683668209328410967812691070334255932387537548304758507091388415312255847631536350354115271536390229524847055637597211300348899836529907983986680430065744370002142579348426270009155944730783589652804580125584982555577971417417663240160960657856858025699020287721974844362028593273012062678938124202822742021422590777666450013319567688973915870983328710690969739419866151155939951008302536473234062861707904931142878773171369209679226940139772181672806534968064411338755544231749204443855671024008558611629394042279173795959030173961163094807403262952824779585978977516175446619484471266411388669952960015675050365369578557349400071812878302310593756486879934509381317711949432823334831788099985115959414002170324957183037370997362598309621491776671061986090412065632796363027454777068281160711877366657655460765500721156732545648913215745661793086677033888590637886416268877968676324391077433795519437411049052378448557001718412246358084379985570127733328503975931556259941323300858647026881952013005393448572536714130372039705399285757917201652425968070184808490576258827459733854758667947189205127570282997242623326829076832782041241338663628019432983519800774859009430734744254331285781248943678865767737471334998083344344296778274686656253045503384718119776154593022548821538071378341795232098540982244471867222599213044892098485825241833884330429412528207222473325804644884673761484049021061724725251878687899969668056581636877944695352853744516583909419284643144998338724657204362687368266367668415228130574858893522619803380113225487117926002697281599197242474991623871328100758939269581383453798063275099890426870577524680225624289620825697353664226328164674886692979603059907137542020759568412188114759148194491918460898640741762237311129022117955083232265886944443347912209712736043534277109427931889072559292550835479555783248123267668271819483914595605067827736160034464585976286082794732351493887612448526239644348130524899021550237139928573766824622319066403594908263809541711829559856248747962227682906045993315106311262181583771012636998432992746798686922308524797811958973113989755157689145975037895048584767470873126195420187602920948502789489546713122317660104653670857999806592365930672058911914037306029013129852950238316846789730575497432478024953195617396190859308168528045706191829475554916319593329805089208007362156027913995322305837776004740289205325691418282577268498086127396593907251245488657757731983361131421645872888554020692521068564081622664206330765965539026978915540018940614344639670159547799798990507113445534591928996423933656593044399354871064133439406514110772248139784618422031573302246566918860335028829189895052500167401678530328391260213604946817570727663514362507044547718968702936799357071283598340545462608654361983490667941954361039402531043580902351205831913722770601255014037492229129277327853543590085879454484886615774359154514867695220546653610895640913547742690244398057273569214192698975753397494138205721896860495455241885257359440232546240137554206916397532360103123619200304928716676256351579943423880953666855467272760027838527368659290947209559226147775545209040565772870590456563357172008299461977874191011546574645775695509767968109933454367721972323788333368761718027764709482408690194095675610890974285209383312470118353072548829099060996379055462068433973303467560540336518897651758688478807928192510137917439044033157060526177627801862600809719816221525170420798320674258481219922178169180369364919841431971635933473930493465628129013886484534037627768719430474073269494365387086087338945899113559084494939574953592458456926562554755561972146667615409987906633961778130748607675139922934489072470710907570934591512575119698146289556788710786334514338848043622781429377502007064469216283834886308997712734470419818561977133752675358072261288702528920552385594305068887304710064763397398081492708666122268258039278883665510458711354421477191465063054025391303736384922224516649066507048264402057863948707573280996764311981537979335738669522249755044953990600056863735092475152509256526712752555322365596163728874356405847458571309681028016286098061483299499088488459095127591834085391310668085313771226688552496176835519731783130127402239668133206595594729503693630065836091920101488226235460643979701473088767877255170927032262491794967337203109947262831427355163792561411988946147990652442708958954227740854566563118818024528604155991620388634596889844012753824487739695217709649390657419843129886671760506273809681071795237760579341500486079256578573227038295713195549360556201560857624709768618653350100210672018849924646572975391115392170224472868775561043514288608203818409271057323221926563773421803940201907636385344435782923599499307052422053315581047245923221933617221379555825202654940796056172286911274461086160328156063280517966876411676772944882862155293859950197597709555112987630987452602485348031573153744839154973711164690899000688112130252609682399053395587295311481458589862177476473804066677922305170330060424258156036188916855922512041846067406964970874241023700690118934753595424544490533532391017341337770307751009505670370934350811118995612595917807640480714640007698125242937544168121373255665603060581640884414077003761641666079336370299599181982515782044175078764526928446246425667501920260197015106303248709477030291474362352732550878030237069220691986360413467527502362238226816257969051754078291414469134555993374146660862491328973216052987299863974125127130553581015920922410275098984007802742804080063218509200747115859405601488882961157738501484165970867929832395240438365011095999371943504066113197052119919799918999970868265135788331366288609310261020017337488535750469266581531936526975520073537922633523929770613552487618757118072755301819176626538043836034407913052804780265927665344422586755562248363414887199489201133132800920117810852732427915278620980442247651740293744703242356601489102027140828032323971151502470839246072583401829452370858561089553868795601193950634787338872828430168202997013084979750859586239235827961868634473064296566893693388468843399742624776249186664638377352451510777120647690496749432569562181044285005316112498932244025470877593916759641922604180992947741006662060440686645301373121890347777743522431306349537694229162577395147428470651081310653711349967694595348645010840510690829626928715437315842200745466443753956468795207612753074929857812810646592689401467906442690440946429405119867878061087815540789561242396341509339415305932609550162458936486318467616609520873198413967615573147046949976117735260191959723384773223011061382674110985827607016767318692430960652086413591316122043679117964332467128701331617029794416126970847671174535576304983439829954120841601539175334626070940600046645239563773024578579349122640186019083059167711492372647851742264993480683098240042692048167097904631855789771358483756063273135874243068482424679743479203315691672147096364631634762244591131484203633830606049379544368443876740050850050924756234525676900823657772119365737704625794054193407975411995021496681462089003272426883130137049108946486122815311900368055692614080694478050083468484304498754240879661717465771265555365733074937511128046441197317312341123221023620773026762144096347166691985425029561512730336766713338034205862440271528304292547770147728710725987865091361639758420547289606574968849191895881156051645078646560172864762792998437806768342194833996566754023267348682906881427603775324558985212138283317366750783761419933404524872626451517677178479611630781492334926758447757054797059074273422851611908951520500502845296913497163499962772309958349885093678781385476792793259533521846515290829733842341127035059508836550432484582107147911099612182338534134122602092221669763000787742730834279702990260983467534800228457042472277092972576450036167338649031173295110591979934105423822533106678404613018958314138191887953502519858955122987799218839583033271249028700808243850716483204827700786167515605668612764340798206381845609767106245180660935546515928359573233157845733634323900049446745333333954202346382335059591434711054073460050799460021956927376889283487455665416737264746720465057315997477661633992698632918060293476156318270252801923942120909270128605745349914122446363632028352658619559486101101655028553317772843544294844332961936226876681475452037234438031686439491321500129904768946702122950531071166069616757216803452918954578890631712923876844921232477494819305068921349287799858172103062109733875499419996897682764985067028527484780666104164985703969950708108191050003905951642811726809575753008434692640078275790295411500957525153508783502131959995131009217630608290873698865956214477632058798668476021474285252153956513303382264006625622947070326985641687215010812422140300539988503564247227858980724348486996579062206013688888680141726895669213746933959990910765495346652193353661281163216415988174546765990058002046966232333039922918417428463202034251141804144960435602875410612969360807825134073881136763780679227990968474594985408018000904198505659144084083040184363708206942377553010994530727881593060542619376971451511437738028867787786724190883496979267192852711801043509209588082266860396844220797162605713831100236564467387987520277654915443755250777080286913635086911102280204418126862822742628220424302616799446116401197929921440894885917444109595563613961251599382837293024138127224759657859701564910230701847297485639361406265496325069480873599307643670323392209113805898072901077837146426741258314423997899116777361720397069165162454032033550501098216283464436032622589913480106964810094190595615129085333458487821569178397362869202015531583370744726331017557096502260970257308926749659244830377757891421839900697961153542712962952880338959776844567926027978319102973429657800900463550344077170523973899821214029654635258905429073503651037599072650930039888934662207820745869202367903085554347007060844686929250594530622439526775125102604276819263993423719642745354321508390850988111965377845784955452599283554244649977131786139281854442920188498765325094606942902383380691562469672296874889126196808765271122334136663491155660241787227993207503900807081741894005864681990265677190199986545706949473990183253168566288352096935407714951439387857778493863153351476866333428149190182119314641035174653273226512961138276930031724347561019078426031847222756052688037378182001569187864783846454391966575321605836084205520447592943879085637380778232201285497371744642441286786485236554708185749366849305709996004905217512873741969551240566682943362972005233508266337738566959589481391596495965159783264137840523842258502629475279439508002093646097695987869962017622579114819802719303394436335430132888220481843801563852789021187669076427633836029715638442973832138031623498025168972386082934640167054850737265059188335168707050432549444610330878421145030015828093367734979602108523752248220277279592079483119329139410197100038943206464268795246079243282785188483933784206749194812351582116296762379783560457507903433434360321553941256329998878005624922477523265548200157121422707429446814887730377833471983881445786549641544048319297899010231818732883662247705683078651026962686215354599795024322891479346467352331837977220999266761233143911821474072550936755042235700659782879493070342919576662087882432677834459794070742096133948456567463143527694917987994292880336005051374181929946749720788695530325165121351442395975561505229539544583820992646180090081420531081507098331780498184256165090906400069169290115085225326935736728020852624435041338726060135354791616101298789229386464573217328058534210765538101928902705337043428715499996973048041484072944088586510515494522252418604062771866569676043249064735922717863972387564551452970248930124205608225197164796293151817557714596930401839985743247901943148846526922513317721402529587353220226919450090725846257049468435689708972137167111610533760250369152351183204543973031523114591233088977304648099701933539144597204289891647012343430406837879199296696254728887081829441637574401889198487548583703828925237364460261060978378136303329721325038308242629686787386011968075908138392277515796125634102479468758955725929973136832419320855938461944373441835644698850415204873565833203309740545379122907934746175594282881934357727420069972312543695093896340595249804764104458360357493569738041533295402470824766547025859058125104714824636351720859617900409997725277940289052795074455493305582297619425011792751426366272734157073375709228457689389260722455995338385719924509958508707474450084669406088382747244587807661044337028240309483310098166431183709677624534546456777569937474010209306920193269834292866958106846296555758466094347954290593037644424935134705897436619271425053771454631748620679667177094144385429774891268119730631658892706995723136218478202776180705754766233375657940349760935118528369907008899326070947988488710731006971355913762771068370961806331872848927883187242296625343307653770376811877076628866276946393353884759803146169075583110277305893401954633139119862267514723255007657263618367806465485513333556958549600534901851563243442560108439826820353510365768176729314699507610862899550598366284951229866550635862887220870088585163825098355628276261436300072907407484217572199237476271124150366071600110630900383249713838358155869670834830160962329465176654197868017514656521855887506673989019056606530641523838245428116790410882695761204921508168390477203809593840093808734721497881297666297884704117616894059246814580014364181666383080724555112968569882704331884657633144187060590957335142285627223397223154768446301799297563059489398031148326632268597244674972991625011195325630852122766873347082515504819163400393020353667945295592564017873244209785671927139768484849167445858841940312496640141091448681026951627164064689843602387107658542526054110738920081668996250863526768406220034497557397848070458139281887416196868364967918135172643229452488318373869779865467655390818046770591739122649379034696850411156381364622972208248962807755788500296472259048037576709898011594084886750373611446180770384983470218531959748586849875932508609810078946301395408925079907043756624999656353082140416873080722385445238407960348911458379446071903551341479142556982459580950021277255755574144625355934524860500180805220672953262448278012542249827337893857993523028960957781016262115298630620008895135263823414802558187414775897034983584481821319686686025651306731064854741886144811864484498495911142990812998388212295158207780736702519104444169595756152077729862778681131561815443716491281178338849856406643037278963922102967400572023102207643752332732485704257956940430980461615232317930741922656646047055725592789348297693112634645164395203423877186046429061404107984289172367988022630220475726309575659859170339097840986885006699934011562628336432914498029315097967602072598298687604129180142281958197875838825667415841305809580303916797024856110064513138864917907554937125558280679964397773379994148718719438759055666118253070574590868134958809184130158467549780989424039813105976600951219384981076466301970813074240432738356314676935769824524288088940690243883539065641389489582184598744762138536520857986446975423774147026103173345673213225442709774279882516823128126249261928407442620685721862700316825403291648135215883055067203757825459977973497218524294164051606360917280751810118655788206832898169436532765695138302972550888069930553975043526085188701426504262628174723748465740476112713738453679205641124818774766552817131487441712287018131757485948003119177105821570363626413764747792928819756194660167902638153904049337963763259391654246770690457819298755805563940490523268788192132405431029573235720736438654552639518645993028519557809507857414249958585853961289038973087218292146687860777244362525915239497946595339207878157234143864463491739660439470923544041596100717734465271680256147270254972404841920610300049515488269296544372276872554935097531713093697322340645636549841943113810228438161309015198519630371690720037535858550409483775453322781701142262826342527933538097884685510730501831610243958508981405163493395145012111714477733037613525450702860439811721216863697539927422038620496215571403693170103509733019907521176690862344447961484606768833242847051607175733514787409772254698276403714287841496045261343999691005037271640175013292674440932401507964967365169257173755162651649930371477626498905340934553522588598531783841708174843749443676301937856279757924110756958379036479934606226892882128942769156059903885749880636468671133899453163536818012451066044957261109292786307186015388841283394624208186157163338466018445562889132579015059462378909715662334886758820610518861916228241356971668533325531255295563314142319127420265091168367392044555888228791401788939987764638083149790216280313550780121612558118579971571397290203197801573471815502930964032339903554364533262431269278044895718429469486163394935133810122191427794403093998409110170157112060147073275713000192126878914793357170451528215614924592385775898676313200508259057596671094625179787221643380583571177591237997770543184420761727491124738824759468455181273443226430932921112940977764238509241713975168823592109498044160508181682406828863449484048406475077715006401834473254210102652242343663051561947263006502301251070318754192476618897185069392853334845364807167157776338647160500444305644203279197180876744575534222941612830757242640063579204265736518363065365093865055658314996175000559572210544565294930472317983592734508185796548386519360277893530884652575496578352093051518603872672295774070654909879891575376947002942007049590945907261708065612831319076860804572804461311674454289204146647820136952492127398386894882605886033307349576087380853038698909770943555390767422681970045623808772004349510322867148369096258912645179015776748056459941409161270851922132968892074124685693133720210588830175021241063577651351961160709017318478329504158434205843037987140366301699724209854785983910138432292080462472812787923571666302568305197301594887865103035351962877480346096395224219733783979919556721903114000311471905799625771676334584162210850698053724491119840870580014571328574942434082510811986549912389977766710978206435679115935000164141279362609385475629505479660237431827504812745507221546540905697830203208545578319791824095691170183360083393559437958315564691659258522915298568258772220261180331847012719485443114959754772624025937640229389002491191134966061160987265578656653172758305098047065057544809660467068404495180332137677497778697912642893735187707772134453375538404984363534587853766942582122096652632178672945812711624223861397357414945722769096912915105452748131051887621058898372853866425735520700487201326973537188865633917392074410428789545804156803067948638832536488129368247990937763413145424018159918413228652620477500843962751265403612644208663364424615926817738822551010506138412156333605930020964929095355258790531889808644563554105374240800026735181995126020671275430909446289081638047719684714999185068057706782166600688715834413693422870374322204672239057122745267274769050156428949116664640493517375791027541929723114775224301959728046042004956629994269792296807188773848070024394925952572262821403517877128044773767803928720485262035032664637966356589299885113934867856474671089316555053812892062771987040061151271442720812824474215353574020064571160161898246057740708123123836859511553893202857227891842342913778672870448584580966466046128070003836219222924159013369618151448763804116055554073885018614743893282771960347629896826251779830205626826446073335900156859510301831552336025754002208586662885875806015425419736589662384558639641574156250746436245179226635867361504932413286682920013427973587758188478536810858153807736298021304125938727041719030034987079614834593172775064024048697045219917040452352696837230689687968605659154649423983881993950443282478617749826013383508227791206404235537029599547440949432665675438565803072049564734883552213400555483970970756403172619934752417543343683490853075301391098303272917757322817884536148998057857934585614989332136286143753613241478233754386648652500714103811000785829025865493444540654901066685442744705077132978973408318110968772700416969584776008581967924558166351957099029244350853369638040794115532296815428756310941869004145582710471692213472890835959928535018439743335079949848191610794966564469108710219125988125897876048584465387889700679381408651124607233381652481044757370274113922318274596934693834420153549124096280277227378278926366432513107943875495675418916539417674949926321130799683277634993141078748260576748707106567280377862688235658404701134790956348851280945512889752644535655143190043469305506226633436072910550925569873114510053503342611567146133984437879371278568802498424764131925928585376204921640535397151881776871038980523981483698737113907658290515975211478673787915973899172321077327456427721170113679801872632678474875270130144129006422445313895005236679418911088472848780631677370568014964767796330285249696067958859443218014312688154965835780062485718004197465674001769349635641125377451638262984460207659911829517470610640191675738054145670852517691488146110836385790345396677637866166856050326453056631609322051847482545968222485076115561313896456484805847892682074378800648024282658335867554200698607399753013466651864693481079641154022120621268469313701767791490708470215405042287817108858165525801111143755684533228775452495028870251481517437377773958819827789073502983221398833399850526936126052802096578496896047167074968488993461636847974637464854878164863578500409020608199885679931145954757384300067161929397650987866028346862733413857632597764538441375680121194536625499077018075422446485451618321937888099495326810039596851879542388050697120561946935874497435641856078863144343842883773460205494214646656658187684318487043671097667001757684908710524165610190340709974072553657985803596877118669434406093320018256477250545233054170491801711633455956576705096948366699251453497961939585927420757649416627704924467124730861820918566918528226023491692303394128865025886711659064026287672742121886458691870825149190649561965855019370057202452557219862537299790273736557319394572015223085994411323018451209772121852430243347780985154813013442828127444631057721735933768931015323841031672541363643929362256064339469968686573155296993166832742417597419377487424565670472563662201851392271542375771986659637775680589171142648483159273217402084615405576195272124125929169941994822329277344527111897710020159457209975685032802517125088395583229720281395598333013903526679843907036224674700891381540608412824700065796577873006871102012052369414287679442261982292844511272117040261927848764644249924458203260942771487506161552596094447499138963248929098767943562464042294411206665897413161018056700461694218700550808381444480091784126853329657808948051748800707052792354323816758540862008323953535376511566558563507158253597684009473991230477625988493244353317988601352480600775609035048536400179180193723984291304374616081807489930748071862236438983787540451565511224447882514895241640955300666225361892568459297090049628002585132690716825058487315195282027760381811776782897279339226214640485241294311486187111920716165815085557215989783521555809015103216181248820097282446025362450612208661542060258593819827823198188347104979460616880620012510083004579512679756238889613567567966590280825555641656857626859370707459508068141480139284656235924485845214865298906660455047815154501768308424531402626454941219504777172394697578311543207707211593424596283274335859692528002093904274849422394602920856512458756784908610883346545816035778945873662402951587667395198163867949000962599031146929738065197910576068224273413961534943681728729475892421787872480068462484048295580287984459145226331669840974530881646663010412381271380310950202472388137471659360872732153622237890608454928296892562979186699423561155982693633087567184952282888728582507405518749186649635760647419946201454738174289832961603692504357458773621042587010144135171485474652285905153122842250888610936458886104946866248111672541094770908463634376094281557759598479720809226557335652071935721653248453175963526574543927848636140572882315729362457144121734030188120686600987727551171948008102104820189795874767290504510248002269060301064619155775736472734380221107505243990530711682833872415688719288779865711690109286812768513028050149617799560898756290549905412992994936650679168154537729138308010561760927079015981638372502327305109695915464062797805775477679784865600362294066086711293616212107832847156472714107910909703842723995631084885146254094800785611408836696941899836904003623251487789149162405234895699831902811012799050180470479769418704094689126753939186265605930561584693552052986362553498813661488333819946471298699059247083342867612786515242875785739325257742667247257357851982778811516719263790794953201852181977082036935131801376586501080649499797869772536795534800357167942848352532865622446020479911935187451954584086020611281460172690800827292046369648610961716914999982475255541232423979511055666446965638741623223475227882942241178180077301275317952615141945006436221287667845438359474240605007032711910246032956335544749071764348789911902937816718221550056665212081798395081735141295561349808099024396236982905872337342258572966824898881688505495720501397191130715146601352902729865927055340625235457116093086494018825511725709597343269451821030645984091744735026230986885652977559845426966464666381625132107125046893028647891076400054376473672223921226579137779362442242107206724850714487439642840234377919566306343812650967832816982073088975661376137168118673395385056025541255587356922034436293497037740502208529636819589757692632355784094869118908563336429007393649584742602663935557225409668597426093168043945498837515426529688633707254898019540496990907243880022377336036149241229891477889762582989821219427191455652801214382149680991911656845993807091998455559829491257257977902983843594848367331829190083204411346712310268272540973738250478704054692418876622635622448730549338994096388742681026571505525099893455188677327403660052793583777402753062611694531072849998377629920419099279910592631459216189160246137388244964220769635073426414451046782751989501261648021012025625123822069974308662649302045814566658401919799718503208188695667079094163062245939215134306109799000260935757899797635140578742375894637796284861679641636803870167272395872313152967849551891421559232206051188203843293936651818981271015884443972577954099236819173734630055390171145921507509539704801189941097597455972635761209718192934246632678463977838040586607778987646568242339732570569690477794359688436997313122647996171423724955249474871572160430621897727211717457833499940258408725974918540776836009834274319444814669738694033919368789468396622834586227782622928740509632947661837151066040709615072360251527741092612015750653367612743750614381068586374872451282127649303038191100694986120844275243045818134147469711055777004571114394721233507675297776378616850642270030479116707241255436833841676107210703610043568441129017838098404120960081200082884727682933115295038387017678780482117793530054821088764447356367936955362388656256181033732467827920483994814582553618291506867965623626759449167047928565622515273824316129565526386184200013518784586639768178796362891289693717615689947093179544418966945415104431039054019156547106101706074064038301639330687887175085999402015244224909293359580845301431951192704513289131733327286171973503956132298644344820770000919008251650995953290117952564247415587445437165942201154521021428458970964892445900030835368561756968642371793575511995050036731084892026802689046258026291707902606666331857752136932642175904287499985739938161802868980589022106367825243095098286817485589646832926849919981443991828303089149411298486058560380386474903571703753597543737864021420565416808731594528286678402764160201110200953837323774385624292779328019452622175899811925016199867427946562594986553884248367562751091815165566271234574654761026742054936410020913911830526496034969095919055531698796972761644171705009229486325990974438865121483230821980229264346874913148800108336414037408532278307551764730610185038571308868590048055152515191107871999021241105252506271831309799407214888232928231527212661690638344737579167752299765403710748436224869193867891783433755160912573245749786284310267972478694153046296853094688110069800371607737055805225237546451789047350122674327353548751089083158617037084560067513192071681090124112030939742020934839316142478171187026625295277114005164782743367117322095487836900001062259289679501857103912113474867124179160845565662838441061379939490505791092155858752961337456559884538878900456375046438166171247940558160192094254498672082740315569621439478338355449922059121777683822617896384557779751724284802549603023138598795714032662504881532850784544884848453653930246357724756112882807782738365720823330428512615609271980692183848949529236205534011308999754236058915432363725271921673798215597810569879007690955016576333498679190576328043580720955067955258431379917974116130857514537580616863208463073597646791642614036091509291609284609265475302313831585548850718746030385481988898520219920036907247349759007040078625003478566422079804860552617423309455505150970479654751061945003451104295293563154887996824080170738798361224138471222427507655948166644427039769387530323672920878301139585131615194707727677071047765587053448006709123639704371053863283956430821963745912880252871728992489309564302415711372863504345834991289798033606611553576860759387665478889042090104248562479823234935032895472975142431729510690191499853832879518882369283017963070919673223705174999112178419745276796458272716381898721309617230279056039543371976007091308798280117333054777747407300045436363155371983184984865404819040553483415584173548009688894196009206618448771717028964618932762473276244534562567557826290307010150575828881447247143746420132533490162084810116825939250880564850226560015893967334893537872951330194523931847552068077110284525423832507600218770912376815168939700966445762774407196479837051186628498001646346589567320412903398610193900890913914899721837807409128765631407495082634111966698574700649434872763955521328119768857885311799669818897865553411520566734032343755250766648882258715321904546221114519824597452560982842251679518094075311762214181810044993226276067135046080407118970797456800526935919552709723341516735463054645039150676891902681283894455084549051500843296870327629026954986877989694131938333741292816435868859886126480602209876224625337926656725965963840308466576396780529712637739138383305999873990097689742006943523027857000495765803185529038097905998918781093940973018987242930944454797051866060141617919995877698687295248526124704972189235576022923918183818798028051035775349610458173825780149977801312384881292951725664877708666817237231553243344367414934400415734102179655674395098657941383850258238077509195298868667955565944257988079043714026016818898582435622018342684406192559363045231576796583333513538170768450967925360071054583345018916186191557364322371578665108840707077771002289685878180222746300472675614815201802810268183554248955610577165425639828668457681309340339243736990112682271276988559999991723190444967762180926695316298556852097390639082256552263209975106279273354370526502552601577789683088388056812673861852399274083020075865524430170671584046275869587403856900925787697454229964163959983890662116863232591536598424220098889826747437651944060920681508709907483258312205906740438169719497435980989016138403005808271253666858888339347924701928490577755906527998284019912683231862487827656495225987178114488778804529534668916929921816233087373523209736418260783869197136684718096452314381965279912663875042269270141925713517613340231531527943178974193058540173756071806368729483099195256568555015298176863646631943178739003452081477461907442448528533498780579030831772327090731091512695247382386564611453089056991748070780389331976643198906616249564562229668404371811519355848356822704073634464703552704166092020314314407427080984262421231926881234752094891651053955626365932301024151746272845039006050630100882572032601579870376715008756784357338597334563843792658709373225479690963322986992585927531483468348137187734855815367729098481462683134507000096417649872124260160012182263565986244458260236356194141144064796517196512012867027510925434047599787488388276055189459743697454325833297254604235720114191192661002927991456844306511537335821392134773928463136555220436515474984320407209039684906503315987002445107993213790694406294205762954665896743629524862535417328513665817044688315786069870861412542487612287967746729383416430057447268090052539656521638990317472462645122518616408651168149932162997204559809804995099099906731802590071488943805466592453385935042786237969440386204663049371817114016394489446765704093473380829584943885744719668521038508050013914478946048501303946980991707779873687991914583435185422699254424519211840240682807948930552784601149851850153033360781126140257222465840582943660983586748928531617763976318258256179516002438025023337802240644836735652070018171067644394561141092277282394955208250484059886618410883040143603968269870732612863893397870676409208815982261914300790514238125004585535483634888769531547684088668304963057194498921872453284178100717338212897550402543566046714533146685385821580169794780914440825172721117008101609921573487696307928032437364709248224083055969466368564069551387622714225488933392028562178857787063436620900069640103673081553434049113888758168453635218787572787183676052212884336038120514675344396313349856361099724126535127020225940883435095667401147222889494405763572717714114108520580009705700060946509731790966709439979299177238860079866964708849519430728879508454483476548365764911152192254614822042533309752327406588244949068367977578156622833994980694088514106062741413533656739755886836642082422735172433666695227304924896040175766813243559308692851799742466595414012376623190784162618228139521273045482131058423973674925069692078104005062579114436761496053262145094931025254289730893941674679624402763540755444123373166885033852853748380831916462022570386323649802527021564358249545730453294139569296143543968838518290054902612996773742053589652348683536173792979638652663589637955925665767083295261031869438183993387757052369577610283276884100561121915109984247127775324716523222292012367828400176790756720060285715405918878192304620377722899549543786009849235538179227420513793237167134317891247551733012413599915758368213665151806597303501305542640964193254511625384849886963811958391324758606519562882958452017550455727785325256843637864931144935170574666256336206960747967027145936012079435332877360834101635639440504130692194551471524594957845882468239044439442232743543208571495241888241209147237370526939239050580142400040788223673652007816320625737674628768776353939718490290248583975232629734919544346531647431577014769502493568724762523304237687591709096522092526229151620256108396240157278429621242955925389920919789780384745536868853227434450167145546332653789844542770932291999837482581094484664780150418478203117284749047466408164306574882651826176766976310756209641562150032728176057594380306897666549009129796763828708971111756612606002621355271697036334699300342221228517937318121249232457439101536181222771454924471091573717770811913686434224523963640055966362981855628431842995774829933502242804133052334839900300292432072641159765752200898561381511248439582386719492589731423679208659126820306195550115158014626787110236393068187175102369505494136344738860771382885944866919815746974788649736715507255893425913690735090500425056511111748390415758848230824916012499742717826367382959239387862192814296444257632290084832112184741710582910610489990337304213901820992398102905233250233185459300073665489028484810674866603106736512461842811260734622493996739264805580775757946823336675787055139191264525311373201873767505785531058843117715853127078047154263899956927661376468448502387745820828840487660770250871136138757177769330542816957449830540151650195094639944405135070938944704824257534983573209137524572620231633630136277354669253907476174739251072552892196477363534772650190564049341525683043618149858772566204049199197188298420398673287365079698459458694775486668960212777030629168246743204459175960442986062885619468684599589810085597086451759511804143977000335828024704537818574777909073718038508252404547106431117103998942880527636817352833903612962230314782757792092993642357008770094535705576009667019556402924076716568957802961914188667751418593926989125115941576457773676129941968223778014788742705614065884243228411815362106263757061909734849876169978061140471128869200414576162946643754318635861533896574128372049057433465369063843423510062892227839971708140706960988331302425623175831260393458038493745122438507935879934546431080150244242848082484227607553787703945963507052238824709266644567405759508985402881307851202420730209793018798950924327035910355817387488435727753524577326427703026379850784218215668432009944189200223428034116183713404599107536530164061977472970336626850585323509108803097622511094653682302637203653048553506234116853510882692582933300438989557191507986439886332253545678664345588499670534217640962198998876841417130218593386937770951762362376663075672538411116431015041340574408491921192951081995708884328414005356837367846594952992399615025770987263641366523665721304701746308650315676624019443170245181705598031495383084170578112242293546923688191410786858983098201845032089512480085703855492902871781311900101593454069805918743132107186162778717309352332590372382903441635485166528344879990446058069095583235976300196358713346212304418331482207604933204568113455376543029169065970343925190735999266634599647336009462614684316347336951741845825822738721782659136611992309030034760726010943561047115320046252086483813938893653973882812083874656531465716140609215641804047674878893959729083407544151688498950841760593377334174369569689080488318986667603148048283586662631666465610472918336533301732225468893312084386083619658012104445661089920074182097647030195553020117826919278487193842116316997768180737519338558431710956477636720246577627578478206280020932844853095709668439205149567390451359396304554435353916269866705063933304369075604410054246951051652079994412700244835494425921558599260003859960170180327947289165945170533440676624723851789297064923360725288825451502596327239306274291707505434270811131938500823900253427613218634038035518653841188804605018959059826397468537573300575318296830035801812845442670170588964517955275984897964244434162030828698229973171690296986921131501584435069691365173880844337487924548997043134291547025142106554024344286175228299555101275844564325175057741109619779409117380507417431506258921666502095426962910481478042961301752578127899118956312213186855888528019811620111041360849732834988339298410359514812406343650298898334495717681939806695777742752632568866528385891535040921105993962633540779221361116116491523228661306149174888377972946234492246298503531315466895069388467657110878528807581954435041995520264592622313630776511293702386123590507567671356102264324078820468600271697262613035890204753097133477612766608085427926726265283611019558831548544337706189912262189113402150475945529335748003745339999209846398661760189141512826550120169511605962189809060434980487076989941673053826253690877050941202890953265207431983807975421948428444766338987864036365332257057965346216408367877019928352363363384275594870928494754058554293973818328690573964694121670985518946884136398819980975701218424496884008373078110010193550688324497885566752986991583455260762757700695792335862416376450327252304907143821370161702953689126774040223098198044510079379175464960233693858534030841590776784965534912920904057703270961289968812853285532173535171541308892389887341652122531863431641110573734006265217023741844252021787388643966659570657315076488986003014230975852272016678771722074064691370377801926828445613951935100625895890963668565442413958837036644448343912024773132149998740179482145286287586136421746344477103130646504633549433776875784003131975277249086508062669936801032111573251026314318658282984994448519691270894178516326772286603682301078677825694862569829860560976704357901725178348240375610049750235697775537162030621938824829253691548705681054847623196012089024574286687144233820841016817043918403873327113626685014509134948517360803275158363915381311369957761543943734918585377026229640582693026516029647675919206080353755186401405904887588749183823810714523041353646833084123004600538494440469609078512497299821212422284273242596487216589984659310873756123810134659424206882704507160514905543791088375665030673274621424898275741630056906517633320580995117120044283022480029706574845357759423670294728419455474762612687181400807502319277808328929197766769515985163745029572537516310747147691096832319090788756830199727549098218371749417331526538129522143798190769434068958419268552920887327231258207344671399336364570535583661856114873331954626274128407709527416512489388906906922622700797820815027612735255919822531690881146967465718420894338126533804474393821246119828235193323898327564870667835186271520512802364823795260473173900370399034053926181114109024111822226893289526137160614327577360469047783613938017961179707131454692832004650507045819308874099366613332564186329746642690916819329168549604791973149077469556047114239762575247162491319946445447777438374628581898174726000331302369822666833909299469826524788354354619260430253683261158466997290193981655280574944042461855584934161592373964314483892300572884318173158894371907174753783600483543774911132044725207224968249166071920732211600014756264555165443572035555532850252414935835756626601871349944416082531231941518675714225355810409217071202162493203625766491719560643369823462943823098369748517960513330864213367751475585989926745434967931657575553459877634988770593078331864162754109966836422675620056522471121245917164501184423466952267753865793977089472931847640897304299068053627772052024372568048213597807258232827440616355301255075713785290348991212189323056824786739457131041874167999707525781708049669542539534627575612355443674508220524951644069279049098553799226997806516243862011968049550088808562713138561069733936223529085285297572020775999880189426988061903924756735541582259396627620011226748546373083608405105078016128579394851006723497778213683600257728434177285333861520961896054790562025014301704067342609874910929547779203554589069536831463096444550982732977735663336807926451398870792003530435563286216823767992808462582262837224330421056036321664122711976043284940138072226178187412200326709714658101127153457847041641769800633352717055229623993587697734649325219700282548600433292518838340039811954702763927434799420697414730192540832126505602083438884864378357173873978044832061019609316119594144581586740010265473958167574304773080298166506859574750076355191123884427114055781246279045484016486525945931213491278456390964260641967925143593799481386218833596606086288302115296569296442531150855513299691873932988129085181548338226980987569078241753432319061094345766245782544487984225231324809189580491207266093412367400614546746606191484976409197095054694802721986821725017665566562801029546587309769696908707467392463787589012470013690497480912152556095529257304052331019804298738341535588001993616549481668027431767635348724162542976245483461892807465441777987759844631609428612817945757070765325321038957919020299142777449329015680652573020957129520973180080914847547008179050412278252508965269210123965946492911901808510762046073460740112443775962442974701996778644856893017371017122227045369619898248623718080898874968807560245852445655762716230884915257394959329050594942470099621709895372655194274926253345985519344762264209410304548787907647862081129979857707196727447662703577340426538543812224769504697666822092622107921476665645685816363504927615427081103673015849064897684053292033406732546173531801706946781533337909363044527362726884004968279484303688367983763816189635585477206912568217826015133127654642642396184323916107521124541844290193120397805239053987838055723991874140803047942766439354340467729719409783500900114424469621966780590885498259749999160898989096944024868160053846946934957868588890410145411270241635673845463256985187144843926227592362203236906003991951862554630443969576861785952666257735720742604159855821348019049763154143160509501593066281576946870656797659015282094769785161469385618440655511899808708928957642194521771202190133975465771300675150571381556478765905292441652732767225205745574453993029028315490770298139776996650397234005808037184672951025466987981629359052820967297632229902909424483321287648540889909794956546811615654978693171666633112442801016282002636413030575504174941415893677730302640721033973002348881282296653141679038100188513898625439453663917820475103961642604133314948585395391052012100294146073781244399319884327841786156847241336356467977722648932458591196066675260824207595218332356491200050570316850718629684800931205519967495566570070110261211414117091975060119255018534157262283376580746275094856348482696893104646720649875735105837228347449526103678774938010632215077524926641224081046137744495775810485018418260503638847135482574973156291861188987086807887147717598364971766525192080833208868997735330688124678186218768964381787225560278714970408018702764719970771728444449674634247472428641363424523935497668960174774047290144100603256070437393386003851778589138804575371370526887296012409184790318175660113971950254570448431642452566961456200563429789962963516540076779337582167151412265131965108688726069158057683088435149466067022820528449085164003553194627139892327588753492254639115079904725513034032171733999858536079739858817294689782485476152597495145779363548381942143275998831560255113814767589206790278087797727018735287817674055282038688569799564105367351984581300076655689617382249919352511461295551524823769127400373165342326793219387647250312042456972155083288450990028253755764326889582587276715037249863374576145504517997394137910587064929569211077017760531567443586596004833566730012949328857835869034337416351027555791009892923179821877118128755118808347797903062419166060895992455288020538344296296095842792929773729566755338667147918962498694213997416041820383717945744206026892175680411899590780222997924935986515489104748568681507892266311688292349833619662424180548739900360966915697404860689194032264551747782134333378204967965341963525664514728767007282317107539785978062609415971959893348041126148781587248403706420511298682034190350421372198717858986406563669949759385584972877715597098037359769747838295080598257092059169262075776920543611500842025464426115592038243684975435054814258667825230315139854948448160270969192621819228733240051045469927473327546389506148391043566806139796773086852612928642016789029546414223612928290106458684267948050137116449460769246864187938506369042430001086968755988225827411903938268845274801616920560100275305156192333014607572462759016667769455543802516750204365833211091634434046624769299888239986629713928859891955812934688136294087159654879449572943697273181399656848889061793909385051205186799310977809249979283424375604946419704815035847193085635750630822903975140932692569454662834166897066423620846489947424910498056546776926432272096658327275505565391148176361666335948109553022601727535847249993331239266467030676259635422087701702407358303865840663567063487740243659722877630173631360894313476976569634816899740154345245361843455776226979018520166244528665545173169821589586344983065798692841782924933188714123010180702993239927377636659684147769434654890072385594635009148719150477434242030325405234613643151280544675206498394964887102139975286150127317844390308987962370758190210332289403254579916180988602439002409184525617412230660813584261574853838012772928106162639759821505467852483333570531289827649992567625293540760274684751620341154960879768296309939087389940502327345436171139208985143143273217132932013687775103767674323018906759639097672589508238042901077283003328698575281276547720729571752982180805505018521216609839358343084243399678668403968281854407353469839169824426943599994418543753628182489187440854604848445074595184639405726340636465748040344566757121334449102478031185963592878180469077421255614574873430384040392552154138687681709746135352511491577407503595421687141316414155714380011199494930686587411088628515141194934718956868419472500543111708529860438782663924929464568660722666516759322524372588401010842442063687956301091604113308178955560838672025133861830210053765714902021208804135038886691346771085975572306905873462298302932903549699207898245100080052744545914343227147757587702519257605613138233317339466154693200170089587753444875356354005370058978418755052896293068741833672274209534429730645996085667827939824050216063042640401342196713815084328643862673838076860213770590930684997263749315519919978309412764900687636812654068615946352011330840126404675228309460638821255537560770271600667792229945543164191979633067710633540546455366331232063737246827211613085167587033042786189289199987865588359973602398301144752658518966942206899159953036016698575714755924096992864702176528908825963697482040194071239523508567157745682072343349685414338099186785802811955333626971734380175332170896971099154383215073283805886026286076140985716959785126049142051732560972405135938271867931820858034714656948210760455562040057114296172090280138731298964286474098664373244667496178798089938654972648223982995995526901838486378946397372809585908466425074771196628150758377513225353450651414468373992709929058730347777882901568667482652099266247525157428519622211410989372257035276474543204327051779629008057853849221644929081275583316523666324224125549984124995273542107967953947683679550217257877971719993550081622712632437174620168057002531404394038714215983703930197540302552035307833322982935515703264932425453236860370952298287451876979457642557421509964664395745792521410396012419500760145240878379602197418875592294676988904437920346534971644141473932841374266745101011736896205325100773250224898869616206005282881955094539952985506645316394956773076987584036954847228529121473547961652145105171986416972333952389981594101906079992108622482545938152622775945161485812331216647545415197815553971206355438428500952921533346640144000734883915109779849361799307956394101249253331643338276464442844731736926847858430079823262969878486655474709912337663555224108270346346641967717217309636708063296523286754693678776240672129077028582915552793218145938805583052375640591363619939097274115801208108062781180850782488613187015240279780704587849947712579883575473380659528480728808216808573981987764294211094095616845699623943364154923764027108599866212122889955444989887824860346157901738223123780151367292431280890399518160070021696224837170409742836108587514465860410334104972649637559523127652100068354720750627060867850437333299779199381223147163847674325176090844404160725131957307762230213795162643417473286241600703698628656970539925070899769196445648000989699139544525780338672108538051577785748934532131216553020198652702971083215188270722553827046173577249566020535955132237457474223324995806671847977947129644324171326489011409076904088648428240889853008109546563240989646325920101510069547067920382953161031201557036275099901736149848218731344215315418016271133022573755494183742799549799951022123635431668506974835015219394802643364213156638664672309516279832367201220584300809319504003928401044194393222897590568348510352047014506156495638627025295794143994800178570860705655874647171126850056138240737302360316261703443794721293493116550814850351810623180610620535508555599655161116226225214288207210994632760188809688540516608498194005241963228015369202613293087149943966795736920767616115876113957584792514313964739776961466659059796450398777471010885693000972844158900883302620584909602940262156426091342306293107737810508210593638410295927879411194373523854710241651680232152468473908998379070560357197495207131113036558990955916456588416247381445819344640179304589069081644242245531473286009188423516020211190673609683210358884440378943713548873576952123686525565899941795312269692761376767757302171398860104173119139812923512224556125287820190835010495963540444785582392923402368806235016295583148870862859610461588610089672488220555305754263064138994272955659341501403750846575217514159015806712286425708552572231759315078595020055573697739591883360553154793273752063337443905009159608224511576758686174735535693534261679943650898569897082321864849159387609456377927905164531787505882789959882021838448346624335515248399800986973914730890915504619620010643916447738426412032551074559837207788762312712965198452284342948833267762278150085326643925879924171551981073184144970052162711542945822422588645490827034124824897850136994015379856202617125216719055352766047903117189723377530807293921767545066561075989092646025654948454119350534252302241229968568944556798122605036526853386461469824515525038135755443215607569856181015951095646921512930354272934431021209382579607782352083993016984664294509157405326240834956041791708465579628835898599428096696665859990325526746722135967373559691515040093686930008733423086390562619450632528857981940637430687375586771928006294872299375274474535596898024663924654995881581408140319811310877171785349152578104761203807166145947379942537791160116577839267253825973376334407351336791144930374557091136210798438544984406681221040963904279756668958679345721754241035253178033932746567123594708977611295090902077850712214609112834043188259256520040065921137424653083971328348613447443463936248526027269455593937940800662391609440027655403599183743713163282489897353934529081056737783605334281295411930068173779061320605117031559325206177743802405906769663966290769710408917036702974815154240342917486028889446533799358704868653271299088281351692289154112647917847089919393266514726112273380304866167783993886761231818972924736465808931073067603895381545658087531963188317792011438615325799888603624944793623672627391671518505696201482459484194324951879603784211273172156442219330458590785883426346215883778349388170471059077488043763703830096482242398131853528101738324847629799283288637114904951694076892167750147896892739773689828087602343276222113917694500062828767803563106502512318001828608914511359922137343879879002799181042990824372116045016664058053519282003479949391076638535794421566667273295959345927478196008189682544213987472523331002211304266862893029273620117648163073100285281364949462957030094009175438173779439780450157615975076632598853697329803269958687983744498056825352202370167321190150761067607527280127241311766453800995853673493632989117171209798436845332158914456580839946924589216615323308919044722581553436058635289893940351307336470719587528595062595718049482907953056457593560078875500036693549403064950560551933807067620121658958253805569411157601717276436696537404401329972958280515046065696327242147699368266349949463331034117711190444820805945856269509715505280997326999824399598798328503413193609641942367097600539848764716276825389347797156710734522177377949773923869778962356027942385840983205438481684495720593850553019286499807866838855891287494595433692354583404515023244144987975624420974737922160433737762444018969216088445736480743223332901113722628675202012019159659764543563314271912131424725894963960916252627200825657943427280704390654525120862713829608825176487848669440671503513886169992695604581770046230579697735377783409175223375974815336816240239191422574995365898122903810830215830265282638754621906954461431114350342458617041948125292655961458498777200874352643304231101337604462790531256575887495785030871171809514431501711609273293827641456503313004733848200393509659126076872170372904095823411457256578853898266295191733074205028417993031169161512698385905344415735986184812279649751000775447983295422738010700513550108109226608640139332213245721322486586539202993396243606902190023882010428540147121310864394481003484960562258121019711034202357793847783125492416157333298966017267210208059390614772015311139597845765075561480643299636786333941576063389500946929767308964173896567586053539298896693488395182751175483643395029283832948634619394779045371608920789065473256493199929818840231870739664163817120658305096043273276439747059185918393441669824532533224329867161566320784080811203850939136112641468841258161854741198841086630177179016157219468747941036360947535860449830719756728483377373854346941771094446735670187968229994367708603322241339977884544821399382715689599738122807136955004169068486005659723026022104570466178283331485289597693303578395748896038834004530240103822350099187440135727297059955727226893029459527612693207548900637319338091729078430235678304675714156314070308879238250165844748744179678453956708748774022894248440817485407236670473693190469888381585823760812075371147473397259552244453763573041521692383772076260341161951042664142624791271712465262273853032084092361090426561258330074253869537450970279993931042213594484596641878232190117276283530601800230874024448038968753726389776818049256700827857076302311535757294149078601136675659746404009916278138508813734195352105152290969420788449527622371292102672590540428090167319597503661583197870863337430543723127836039338182178477466490212484261660252852251522953293256956129129945810864260607986949048973940678894391815794063734453114014866318844114456363975975650172061660529837646704939662597800488474025435576719308375981444912896046867092819128100569740848713955470260976297353740875242047883372049774105256878195733196785047155716578080142236137694688671841255876521840054477100677822844836280320966111750781262325605567264730219687277388589084102156415776262525301883861656514447880460576826655315995820818956879108365718161022280097113526133478030037301735223176708451892320368550078239034770288300240459335546359259978709977405577744790881887558032964945037942848383295348150974904313447584141267894572378357505287373393251675277359432405236685903277052560442801542830400715530316192567131063575524564893112239303032201930372625386153990761674078193902876717204237371107580267396487570961744306651488948139621358222536059879604470713234189158955572271787274907564004166836776190324950014327791295293527326097904787125728121151309342842269510327565668967460064323403699797750676991567080493082587272914843333458479962315717391876341659846742284171312661226933165012285529490938018844049443557845157033335636234506051021920667108270317468133905197587266242185370163019895556131329490270990183776615095939498244706646397765499419815318255267236281424678385723477598978673625979748093421850812238873373065438354570346887560164364813996441406822921605165195424926593523637167184583147087177784758145785455190982617924616334702038051892875140478763157753639437845532449921550392691353502843293978528748546291716573484591975313749640875248092274655420581332093793101001530699149542252250500377291939112066303939052161276356410679689057669171665783973469401581570042791725951355385115950907588052750278024771418743374471936855753704824346048242677391102226145000378934761187389565660184988550600117465137087196504525029949285434897374267358243799439783936288387942835532702251072549543935037666891647462440726280733004092483030360048028981250517295341805035626639506684117347254444294770345258906677340622847486006067240665660281551855138797945137018124364876945489150968567247401772919569600514014397206996128182439037642159702747450241078455643676515412944903893514976190914233286450652802212460666003451317579830174882258944928821039480386778669166898897203281705946964770582669413699005466142299223668136983806088686631739787167759332611297471482877368391540777247376798080095760361109481039904160791328360578881025701275801201859868373267744461337502161994356619600228143958149046594783811870662754338588850502024206436017304821317854253302765121415448604724961312726711958763479917311512272609002104980506429945250573896822191056234820414347361581664425876067856209388618948074061769965569744250557024644226914055602016246845354620477221965613319097337288974938589389939516282949167674151081420969071679147040273684038927951864861642725327900324326078382090795294308735210261535775441576376799086795575972926454901375074395994964750295892584634208137434583227994654650687715176199261132394098433756617863834165446279268729860192242618828727422548632504370975195602357094341579326446297951319313645754114373675255834782244631089950281396442735409151636296174601356498926716213161188561801462587359737656565475409329139384487441871195940911030229395498401429733177141578834894155575603979073323516586643374164599730836488626731708314102446116419249680705758100813823848694333928409691722781588049668056841805183360621980214524584527817935300128324842068996384770580196439137059804263454922429151122062091634707610252906726823208731110753781876028732859583095272138177725116181129380633610853743404181563304635805585409164105021140160859875310485979628057044518870744297238909701511921225068702740143024556493555760701281025170810610947284928207478017864198953416701555752144187081393546650759011007781743216747509305957655917175278690921743830356223634167634065223704539038848780126442603998861318144700136491932175862183278280191007198711661542116791836526006858731138635506746023866899523809771545088725266159900393826676011464875498248346357768947258855367815120988170786790019545422114230307023662539472121852205763539529028210042620800356928349672239848422166561875354859678223472551775856690757034480880904239644037838990778908100524952067925534456037569166193896329715769163211145840307305479095106095985904589565064653826109809159334469722753798207426457995597759059165712307862645014485898428933774580585739599141460459332959179257255652588712417541266868758641905830731224599806088015329762594556127578490000164918388346963200594511909225680688253936321872876958929854171135518518766683776854330852784325005807403614775988166590413570130110476809540188963678621387397810494090073195086820536321299377784113684792443374421320376419494808286605762581608363063863324614329517056945957659666257893493160998517296513526392101092288509296019035122517775904866577100634080376423231953022264887942502562054667247129440457672465854701261889407212429218978047278999614120389087093168562874175442994061877408130295113152442043760919244310835054506808898197718248633107509276832270760091208362254428656502969243947636642729267962929729786841925642523876246155293892304746977818923409571431032788844102128806816735964294347193098048598352511610385308145675958714940946143834874328954777599588744858456699933490442276608919303765357987076190943147138529549836964982639533751554701174840424296751426134618549356744718956207421336799882617150613025058008432456891962685257600813729345033664779297611406278988111196861915457698270360727095123194623931785417548234361925168401723236372734468362159732157005715608958231490052946751957833969444709709611319926136437585089894890166829807731013392822936415889400988679082271609950813831694063511132527916953320527320727562688366565955354355469359357191245811376217480235155226448341510872613053113503647824874851526493300933864989774800210528903090902284500977811377365723177387317129981926157212479255283211396265889366488284251581810490998227882534746756655757693789572287921257264812960778540763452386128904104703905281998182705950250726762476506415222195923137611363654527644968673602018436053094000207812184548007621098213451756966607668135229885897212541856148555047851937708817876070196222154977919937692280156713542811790515434085847523725416772852581912298103971619044804538319878839299733939437950101352147737041245857956897379740616283284243055220138504460132013606574898556717475037934059849132736507266411259558594251201751078021817371363075559918818547016924929284431780033000283808054598750070217207478019538021588811610127165091373961932497606841876496456357981565043757179955704898464585757474926842089755460074224105535538992876000754271141303054191321919139647255958073928338876617303134751389142338699385478943438834894923241018289353209655703686515114639691789033893742154964891134372896728488456429172035734422207748196744107191708888368449812549006161168803757566009495808647405480904815875883056308869280943514026632950401645772867523750013853274167404023561627908244056352754682712067867290611061824288149829563605407076067380598051624062224375304359468051900573993963636628697267035473997608414056424968177890947131011836566928312963542284779409041192971096575850359117427383123644393978040921516106626113218081836329579090406404876660163751373047500513649785301224980402043279067814145529281097235691210161462340023546759551238775982043632404843235339504834707324502154496390564260567561033679810137860965805003931392408518404443670271843811408143988975415331517278573314743239674252939602057350071188515850736237309116668143237632322899056436837146683788267387918302750719688760149939895131081634679520436566822802895163396276175271217769129170290808385752032907756842252783210142299630052964840925128285738347271701881766805347059246335386506933870735811864707428176175384989701749901495438422915582503873171393157301093125762826697342180371542723043960029753140497274737474188811472965034541134327577557781670570813551002754226789612982472845931661740117167841150792460661510287700233865545572429712049773514556183762318959186757765482435138834389903912408677769694900473710354341736976350445558222235570720609787589487445650131141633172902089534332355120461135972247963284057279650791606406859532576781577753779171096042863224421903401584657363711538415483541474230032292766682691601343655084697748672982727031316811443900229658476975424394982055086711099723819551090360303869197978629799566507797386671740579982345554661344464050222247548356489190455655892341081807574812174433673060195612739833564195658127453512723285189810175732975698741727096333577821790137819324892590165921108755059232020763095023260351175900033980322258211271726812448712741575665209687475780399793232481847378657716507634665764945781067826859871687481811161384886542088403604344125513391414657760621261242972885932463599323958871816923681103610376248829131292539775321664040636816673708027447727111976509269756648446929979328626941962981158842674711395563131507972203686957519637373724912591374973222728677602178611757682589354279724797380627205410497537189324289576066097823447334343180269265456530366562168691089022622422472997094712528640037627958225954277263821095834401005742102295928329390542963938572251824964256768807596674713196431226782550717302813304213992971179250064259678759453540310851782107214310133250244546801915743726793370367223561580265628668934989333848556763943336012493754879741064787053371722043660941803815223085968529025034383844230926101595294084138501781786958319321269467379402541001370210511148857653468541709358759160573842083772321827638323210486533676005734048575735356606130871673528895149080915594596090735836468986164075783171184306650109044008067619967853950952572708916571351639353516600073715621117528794456512613172465297568347082288477041171812065827778040908371920820486284757382051338468492790528923895821097989325920734387450824867327725157477966462082562757736335455338915165538521009891045075183055513071783613485377399086249400163807125692416122493209217865139222937534734525129362537629217262002061481720004523899461640644222065034437990575546456237788023274573451355388822096230136227890597189944565651053296745749545930769689200017679366909929887825664116063633162748514549267453994743127177187637654305763541943397559223325537879513502917697638993448261359326591682049674113547697311140988925639839999070891846042090215656849454382556455563139338603113738528200041267629241817711673231007053660897391968120741108925885459901529605407877601540389743711440606039280348082536393497602946940830696038982273797060586118179672133843613123047637275037162597592609886040624777889250950610004503852322598698322447594980527305734221646611324315765585012392935639222764692108251762107779488761448971361757855005655332196238779310637794911470719695137773550843687031059733655189809577385709850190250329747203751674918833141712784351937134485954620842615436641377590265459282230361747096558744197825882994892078775124510342736484113253259228754901489831163557871903081033647867681538237493424859046029518298599754582368394551240605148538953238028299122485159104911054856230825147916554796277383468234727775902576938092447102470815037464358145545636457053128235873355844302849679026711672716399543089547848315062679246755266629805421768074000710342680951443383532761148972159689354705014476953333936931569342086936240281611011690157045845835396205929941685708483548254600675220515463662126744219762302670686269638918883615166556286353916647575218875793061117893242066695152681750602840712340407039601542406310252150227323507420860860092979430317147243124496258691493120510183563771453202078010257273223344203396557172050287533306544448781479470617057934029480058210729721900311765004500486623832161810648461676426273813485328743489841348121904279460516203767992686749941428829596634926851542942003775901705507833955504784974082285814309327181392579449942305313692738698788842506598548195197727022147272514483703552642703407567298210710774984874035457841534383155341117406833519616105400222260000344526296742125262484633189036311272484758944715001621545903493403118317509047415198424239774529398677202834805181622241204022150155742941838688395154262292851625827449724394883536761557239275185552520373797238459427525775815129975558333064735637266008220950375738200006621965715320114308743690616645261577618026522820288142166573642944400055585510146601773282321943769862448923897265227400126790796566668379824131630899663248156239249368470463485931691184339952174395519809060230697453193195029264585764139614961449631404365797997629275615043858578831407018041812559485515776773034455700130152585029313627748513086591232010933310729177003866723950418843255393361460421410420519902702650660918873714247691888774894350550677549017913094145324442194533826638300162993624441939245173876897604158034147553506805697278876705074285798905086880403733450509492861821680814610028579270013742639896125108584052252200825180178609902723753385128772381465208806056492283934613305793339059781454500755995660528452145236034026234843609327111825647353236684745151545979878165714530011910754570910566547164120427839627180412021474364701442956509610341456504083502794557426151499290751303205753908689735445455765234184315016132785070414725361617095462338228533608076539658824376699051777140252547221934706491066957609284144617263863569015390503223715544461668062073674220854655062839370249456963815438601472015106831881230800947575829805651772180102639184459865480705466396322059517331991721197614896786111140627620333945606233553348035374772316077248666606151997992441905564349227017255693457803398830001809857000174598249199586851266614675682962985693839063372805506512399363023591313653009675209617402713685093682907584449992684297197166047838974323698629052858923218153914953236332763017985104528436417159153898653614773954792395698964651444658237760116579931446231534258734256802184098341701496823048536969372398218570346332654641668198354589745292695479434182573926825753320780900919239240792999764068790890894543546173140962946057802305171908203235847623696093177546869395185870369581783868972076497769941609577410768367729721580422989185561877144058425305400079481108228598241421538042203566635214782909058008263845071311902473671325202216757248237484126083087671013036539542599766588980482063953138969687296182852052152216750803110815345874789363704818290032414156034766138325044881234610004911870258514551294641979080125965102593118359042379548166133421675211838497488788953311183675697206912812629254749482822490704465610717519695122446656668244373749844261474301320923661495585056072074993938341955390166975850863925503560541835285215545542248649824615489627715044944248508688499744693171420985267342218845151335154107586397137220554168970756906353860380341642429853786828968059478317532055341788513425557477839657359033894562507869994607901825935775066183982189263199680949430640384758390409203046085574464990308824888015785043567944136902007333233071535426891702791779523566430308778362062929710133522319801886501138236089038314295909974603213180537361289393798105951740622911202332719620704517429895224101258226331427609864260276729634833130199497526384346101689084967146983056519478993248118061943858781492962838083351755208783637519636366477309143063664056265667850961721640437982919047745562376555122480783175158163143449118322440518717579419688946827700792621477454285848526476054529889376817368219326558927617227233013559391017164121010871209259655184142362061088727638962929517977131351646519918003351212292728401321756167097360762080841391627188777821924878334036287309195184350804282775255061621423055848044433528644668864639234850080006735333142161802727928794965533827732421778529479473720741272246051813638669901849434105517086176336108660890481977999583797665980134744783738320309583147779121681679872267565991019056846538808426783098993090798820578507032737930600424435976774841395049261541476159274583163690199815051235346871670418495465208246493219785242306563463221597617748931509125788104186500768780270454316869561402879840577743651250961363149029834804845676834185659294954541419346937321154505023932675221011812972610984428029095171096865484118549148992297605380354453499409189928465844410792556814419948137685774565006764120103995841572851470068470284249578976292087283919869424500878135368319669082283497711547343856749749421764774937333605699674807992078183940317701595230255846124085271652901389211861647364230982754557007736579087515701532617758382596589242851144089896179723236308152861226286964290063058496808660123141118280240921610211922792691929583424571193375830888810599465290526197566365034292152100479378599641017481012625205404441935436689318196018657512253899451135685999632538547956188232812092396757058532125822576867407218310957888280556736968607589059115390697443519368979112920171399857445120189360925539966823568864144051268589726531608488086407523926085314832360456992928382844542686365680416276565234109292669431342638436392241910263059383121081062980790754284872443990801712116792808779057263302692778021580717714712891818169782275832152999658578869234482988751865880420459736601107860185622726151774891529072100329192076161847639196325525839228696802053528510880686898445649164622385637599509563916037138143770389319593477580489631182375373580761295258861283353070909653947578551813343347762482342812673692631980598366729708267693749950721478691695574878013512377996766544535071723848045611558878458290543534185737925170985107715916039501775609581749148363310802623921051787612816064308152709131877586409280209710002073068365838204391715716696699126504716580540547600819701257317597315323190760263345493450769517822546048788580327238638827675791449123241153524309887903225831077689527181242116432565828380438554462584777166219918191908075211115818359167344220448611815248051244251161239244881520286367495766240962418289149610800897126512656544769079678432564752950333096238378907090776802921786064336591911955876408349501500234114120618761037128945302338797607376727639269360014580195548555227167493009490407106748256367439032973468827103598823739770433931346948711850228257241572358195945840503089485851880180852100862440052077934591014017965870557720361428009266625401078172924094263746785072107172975088885568674597389029190788095846090092969163715203116222699677580723468972820021141892469124498900255780518188072097339015541313726954614745154269313831173184613339542387104353986253516207199938512921141946636313006092613984333867553597041903563882174402472618002776942035987032647822477241108502509960062867470141487020533513369831196734549264836206984950296252565734398159472123827459461621031922572388775551633064467897811638142706106151172201212396157938860348329186986211696865939067773067878216654329981239986292209371068821603477687266637952982235733606093987650576056657254729254355440784055980916502768961807312567895919265157911905774476184211544797079770684833026316025969365823669381061421282130575158646717711420817448318082525036142052384922630913493194468980051721823633408340893211689769183113490419472673233216899933624713867768195958919748517138204372037677787122449997595712049470772764661366478538443082874137178952035374147571563039076726597282526697896581392704392581653317907129093518163371770630860725323252489168885247897990121973443897396249530787434100051845630801563183383017894372320625018666901747651245919854818275256813375195980065366514326434175672287896260929921903999057624623633727450795742120722919441961792844424046055442485009336673492586451160162206434749679400805758202457245673103135648971996965588261073069674396343109693039217062705291462290028128625285947513862173812434855951543795174274730907154662513092134739742966265563338728037869568032249292035429518185012519122030746330415217336797775609544268579065842701058295280458728148620506587123383705757915375038846457721411098760668908141863700530480749067668158670229342724327948336301551919298187931192885466181812945339423516465711968670270102211253349556265163335783224419172590453577349521151819917151200836281582435103810565896690949364857721123409660853962018360936322322111056450181432571495382497119976626332616571531456690418829246941475169462155252583258625835558342248970634856007499692421830393562040831898401993470428079849517728190313226003388084799801093276691440290224919396964836208106729004997503240529556297665000302091814959621917868125745800839706077685475706960233552538674748954299423180749372639937814651240590701434806740229601535635597188870834537720966249440093000070820724757246139340514019185504318231659283258872630766735112062643882897697063264743882312529892056926895276509725262746753353823095148354831039775513305063050788614656725821850170500953489923060732461988959785271672336491278642075936875340579967647410542514089958140561514572052098144103444574977901233646937904588007892306751742078237430188013794644453552670921822582926608234321916148811390566890587658978124110704399578023923725393312213880006555983521568493273665109678010068805597002736887146742877008849687308920812767125457001276962061875291667575767753179091824742145933964076775156916428241986048843127259736828762529472237656981117488045396692129327365094317072099272978502580405368035004424898066689408124881928650917882280570936967520905304725959640442163710778464273725725832085050740532379410376149229449230140265384118620411850499080251389381479650366145366716067526212221492675193353516434634922078242007770534386217374859809344615232991744333769765369785622713046339223688512057531551773840714567253523214988744906783740344821136346245737016130002396248159023502669937915308513924700243016144947585064154569046564514563958913729220079185352680169257855314726733202389229147533879101811521133188328698928283265794487368293896232557657788503967391101808804744956816578158385689721151837121113043052820059186577940386021863930754076051063077890521891111400988943361569587759909343021500710629713324360812907016127970620319968009857928250014024380425162299347024218329179300354293962796483805215616367571872526255497319802476896606965518335986060816979725049373740183238354315290109462069480669458945280686307197878184490304096818851578673759132238388963640779750971536676274871658158109330675575593583194999858230941017310632977173453023739179841793607450334784360058692426186891601105699988864307730117755110118548276930441239579796552654161683965471804879734925924537228061922982042863205898027076067305299179945477792762961616848275832842792716496223121434447368157347175229385187753551534801263484903827605868960847610913061173796424981669608053727575986441715820005821687896677474811686275950007377071046764961480218125759133095099318180826843261341374525904737756648631604705638416426525785041921889921984703238332581582579906435691522573282840395229411302488807765790240593893411023230238923791415822726659498289207573453173033464481601899097348636666153911097142130716626205906227743080373128632968040959579292263546687063328663108906065877544443291036629605423232745008050956279342973456959782015634976575885154359975716841856700458524748743224236528874423894950891758336018693801375438564076572194010636076258362359505904592941814010710261659487719176184326244883950650671684525819686734153912761356960563727675284769466861904328416506674260727679924882203738223851576943227360831171402696654734819082190188790873056142782203338551476727604908740518800759911935526555773236944693181840859373409402565401051347355079652611977507508980313294002271411865127917946873142444197275619567900045099470693678797085668077900536690628139771675876265263795827395847582739305616791640177220441201882378370109813643168621705958406689796936137499736870154476102840196065964029741415380671872336088746199539213891445462617456284317953028285514777196159484049455850842583231766181006731459924280637214532376136936063598599662776735915884279627525390064219411556931736194759075990929971840444657461399103172603281052251726561411650133177165447704767507520231905120323839219209638851137343871011029285282111823256098399452640743334226869466154400476692199422339407695268648504293030302452247849846446237009030860363172086102993664957705349806466356376975028714069557407150836033557814921079911695546347022704133297236780285487704913556780943371323585065228522831383591370735869862914352644597145549817924175236640370279210872409122507093279568831062227474762242126236667568605278004703465253959457764181007491920221886319471938281192916588230370106527827752548074801523315215472129293100959783395699147184326825955401815563063987104870529236271505808606872459014110092992218782714401179124956957377679705143114387212327888847718986858211284746552948872923801701672047968105932717881728239965593562464755049119440609925928565064658028697284112192989737349676520296612083503494224786611582000413347526919457251640171399993698033908328641299656106208059106592645174667422894758123495482219981834787076908597311069582513959163031980237656479094571677660515929634216894810057841111766694299718398524269590757937062368027539108054148785327025523967185448527279639560996282737788365190327208117302413832884671218165894165965032189498375942288444596869103309365232271647719393545298239655744481353707746063884645600793156631169467610302947252189843922717571883450688304172566338141283253794124342183742487673277412987119115891864927477189446290655633941476814654347187872172725880844972255404845725423726223751687805787171110302735363654166947621163576176511174460282508089362444492653459776924612497972210316764379492246424180812819219045792343047177407965833018555978650953155241885482026885409429772895492173074079304734159689162248710337483375633186159875964005962488463728955114939420787610223674331933827039992012742994961287205405686086114688623861255094766234370827684122959158198465251286488246841575412648345021397662201513922651799874876727617769641918926053847114066528343636968456217295431461898404249031643094066025770869267732443669526636957765487153528921143782180760617443496749051180579980319211229675356081822219463554344091031754961412513211258164866449989986661004014454602958666373314583575937334052248105651918466182659281347107764399863356601778192609208705209437043791267648355991050313964796775396156188750884166083838401657761990254928030805790690274016644974582486940615145717405903356005747208591827664125332972602515213524906121263450382260490375906062834409814197505299426986585294787946352635700360742795125422460275961593196441083137406607917749734239774918610646938957178294522560635821567381516391708122943812350595492513676981738571536137647494939461228438068530396955718299397890318959940113916738353444972045854810056626506536109242684497724189808227620363561103429186652335714432145489884214666064029167317275812164016344241916712457150687297320404739873567918553211173460559530724321019230698537657117423652664462755260704265439838933380213385432486191007780910691570492976005418894088050798023280906465482139731630290032090446042778326273289823558280709760060523906622287162414507970906191440485246384003166413245796928783071945523947180538300252343024140683745581815300481836968904805412728625789047230789245382848251340362588538469510526454989840229167880009939738689641958121413745422433289488847106765473469291383676385182571939788377287613192068845475890540521050249368045847909134304740118583725814125678860596740713301663845160245350667408962168651723018844427873463138896944217473773403168304672584757948413492890413916052928427100536809437257146651496559975730285335035988591102127004285050756749114367990144661509595338940524516388710784377778148449872647606081060853153692233108391769331064244357037144723901509661067232017406371237684028240835857705677576029042294690513944644148083652338361045947020382358318812559282130037622440446293081638771066555245800496323414430789097442888856027203062362632023679590134263360581805790810814002057398645634577380409612564236593467493807408670709195177690017839333329662663406252340139813025689270338291115344222925723156112284306806679505719726596609769683941009257580164913580045979168135546313256728810111680461675616600017726918449833475828036975644960432021782793678787310793728407188835797765818518569092521250985650974920791413827029461837283972605246167100007430712877664850999340984597463224964963992692094027206897874379444953392740641528821810388768674005696430566737210312482876182165860889058235398294852897049088746059073471222986630078585227169740725641534243672315706663460351133561733992135435410166844140005224488580335034644917495247315098327722088363810793545747658122198561291840976515454411173573327566998703770533219973651826731301994666333618530539406646580714907168855098353026984497685796845047717865759524732720513052160537884699937188398225072906320753917933352445732510889390555143849011969639529904298976521425744710311372847786497317720152519561433370968835824440065281057558682503272873501002895067025399789884982508213040221107502312176357189786286958085652967121637145154956661187044846475874965913553835730648834556300752091615765301953588137859295517327451112352663172120404489713939832537709893895571588912822606379214469890965659804539073286901836099180232438066919726491327587147813221418808224361275284654207476500679830172926395949665894496768688557868308392895659626530306852627237777954987832895778833601503484120240872667179377974599498299245335967810172913798162221149242566497219937103900750034368989706979062416326733465909215688475766349953918854633891094158347500271901249187399758530881672433522174559680476061277419011066738627345261477849005967949066930534505960205214596711439248758924751056549934509784514900657160776564984828648388240987064235721340541294066772089053996737858138515362384754903137056096622869229753431652496564849363902981449365971628227718667198197495424505900536110820905524192235690125308454944454595631431735096718961552723921805708802905519263025948387060454922981164241266763932840011890789798528458731876360478649737267132766602726571873602312955121989420724733140611323858363211358209378792091976234988869709033517925910572291333965875532836149207325250171066215191149760401924426567630491386698944894812025337911761020707599212189413618463262575735438732847047889695307833606488428938067807753824172964683928485499944800817165366562626904316780992450845969954755568896042595824936627843487888191944636434526874428041924196124372335973520546802522654554044390229910698405759799993423926358223456170938622464429115596124966354327438594786668447172008921250760797367060813138286949166124752773342755087179565618148053609407801701376807752384259958655675386488500185815214078702909311899950568509883719008296801260621145705963288093961711592427937675702264975609269078476606901530868972512483166392979818318827199586184632111170076385175828264044183375430402111768622963078762835807556176632694367586577586294234946519470271983202553738820806147297746998400858351696252590513209791562247224393735604923724833819639747091274906843911140500946719093410423478208546307775540294076702062049132605881892970330434791884592439336326903403930939758217032282170870200050944570613430401835622828741609811580602496153390878865012867484494928806371106850332203407431872210863770022507793248799263752656319599123986210433628416480317934678114780837777422617835320578158073917897914135788090935605121256874980449232893643567945688768877120739342778797376583857979903162549942127450001531360893129666192072771127198608554345139839913357117199498807984034148914626508533315034316064442454130136612898165787533925038859988410448626372880628931313791588015546045761506040137689924530462078337414092059590156092622720172981166159563052760409070544582196774794690851823284237815776604961214452062032762431960539010010470483664307995781870152475893852664693457539977937787252343150475420885444066480401457168083701109616547621780090858966003279143337783951831742724991613176608398941223129050160220645442349438116761487248248016479122893649596809490033380054664497229370816833298945785148779697752918080501388168404995939974444210536207606241457117416936965241722327447072419122494575919782405601726972166979056339625440456296199306943470546976934998828848777381839470669748824109845513530290315445441570118463889920638431087496038191941355128352207500596264435614431359147858037771523429254373053981999362012240962861827967170742280040823368310857541925659074396731723885083027512143420808343058920551049075389980365815974157259258909515884660192459038526364960410453513699777047650904863845326971796984244893660254236258925020599128344327645170729706086407461812635010640151615836203923489219513570936210546728643270788705114928812515347858151272262593615368617704556172470585182674275774115109932296210210519020059802379528721709941058013736125246536176159305357036038981819929774106137227343534799950424427911129382506801801285087515464402151028548000599844592994122556943265139433215716780860273687470243703959209315751814608168653629780385104874180647666206000122822589935244734369352554520461580948761525446390854353915565146479642053804775157950202086309554986989894439047815534222419995957822768183658646011060691868540913489551158387894925752428068861641943124116928917879081763560883199975029753572181589849202585407249880212437426690276332870371396855595874671072632206061746083138874952962772880150295523294256878496374483638589465908292567829589447605881615816025859058320676620868691103317206956380977745129210020527865200313465191204452317133345624004190596368300521186847294939496880865790587530689111129535254810355609520665446920976202009612642676306137964988026641697171599329593367929339853369550848309248121464461737264725788406059675235278965515985531077288796248829412917765554319443931740776804685063069508148034544359966324157279010900778780227080032894647913354516455279449747028403562632682591380628062953396072896796216930446166628705072153515892500841675712508597041325386162124034912768258317934181091855864327742529771995943326925911096129453036202855657648808154214027518079433100260103565725283067696069292851863252031000334760730919903103455511659772175867391415489586491795650050096246421202377979458672014607925752077274452509732856887477200738761733550300218593201897818755139097533822649123081239719533841118319650693426143428644347504522508232575678588403221841088399692904579467014821469573002258648182723745406814784262621003747695344885243380071243814083238089124991208505260534369866810422982389442213121818983836364159576433119334845421300042949366061412656151995634091625100106396238068185253088660655314471397075884194180090677022751876741543710985360316986524479164421358331947311773053525045994942454844982269162369421476674806213978939642336788273022494076661155494181515337110845793889602242569831653287886392757392273399510064990744318073687968987186944553919208761338463601313468037480748854508492331312301407638645348541133743283503290258260351452856977109000458209740996604373291968461265896248301826170233076888626938261027169367511700327316211292017899070868941962011625390349783808306873723452758894066367344133810704500115785395251788981939553571561712849723872954438640294013838260968450477640193021887824165562794214310823281885021640590563931010021078169083665073010713433800736919333907036204367113681620794405445207040233856130665793711731342915728752683959826593293012448840911797971073070091609670670177781932473417888776731543726447109957833930994593287694660072550214353446740768059238741851648414590878327636604047858707548633175883306222818703088356415456873204188389388641389184543574289725227289976302620044189976779060591179178718561482778486129807854605401168881881531433505866894246402658105108242878582536304605261639648159489431391632037064642948728350913493014048896038631537307035248673363379971593804859693493111694963071762186105885655765292719018405201545867158279325799814755795750375671319775128829602539054232263774249285004307384679351643525015770132897030857130010136826678384561026310767723511789324108789775210009664598970137258420612032501532298135373199312496556475546033533624657290972610193389938735932126695564540527633577847798355627426197909946076707460590723093169324788335635253393870333044601371864208472293276441283810130667471267489786989155375609909671164271672032697415277770567887911026066291643211635477670950486815832549282521917944027575459942504756953383092548256765922666971794289627588811290609046991869866342961183515039709120104304583235469575446812707896167618687866576257937138154316625638389312559866932506276326185861938961679483630650274417458416793242902610014139202484809129500894362571938604612889428022884157907464940402253126054712404217512637210986169539100871793843654427732071441641002174018945746625177989709373530050886876517323761053078086078691373089426930775219680143276177673229549439560531568034739403765942591702505920422977483322184377541905464672800694639635588433542736458281642245242906078034928039979704023063732155025806454794720684679282122919339884236129184231980935974033487234442354932743162284615296672173768723427117679436289853658100279653656249275745836881249468121720808653459769867807256098947621715498540299612111416910068646737858110496549080516408738036318568716830704476209915599904267940027378586104661764507200314438294660700579683029579995518297522883564578687261881875518934547343887919329101431071280161888248524255209950348723488863923807335517911025294983015359055942020156116956933595172465239308050194523400260762029865852875231376826013692765174374126125496271537340157858938922732985195635717934021257184501517716347064408596698509505864556174412021822025308719087314483904906208232813587237788422032467967544588661601099319877650604213090145831606349258474826892049493664678631798231419471791765446038238827121351940475387336946463272451134860613352911645476719376717945932613585551609716026695792078079929905426161910197636107731015057416347269356271627432738904500175757273287586047344282796502385393145481913584526103686133072180702484656204908539386567952725504499973770577540645065620866447920619493701172916881894351566894340025448444835212302343429075820840134192519450092387923736141134228546107598271259716604762318135096146424504577808296335556925999311457949216840721337467251721585928929015440710254204223497461491694606780317074922628423298680834970548355950029043193687952375052727759927639869423616634034151888327047150844958637754015456129122963864073015600868221558151203889002257264070450166107293611043348070141195248227940950168218880619985954411554607071302684036263901061216701953771273258292497117391446617099074097203987296845948853781627225984141728210518691823860410480031475833689167984273432915735916221556196986106367330407365322049285365618433056481225055857923525180829288406551942362221191448531723307075486753398494041240495482796489142871513329464142644559194293009822581378237253349868169029186535775215691678969538830726091863949472362324195110858064077601859590630932209477751834787690198007937645643139562804580453119961540149965371658535258942516451110349918884104371218783533676696502493242837313537958076734047663665881093631004541740174442558673860463416504487536241622484168821771776988078420216697465660170169257171319959384557816947100091012355652226188520437078006871936255234853628998706955809116631735999521812201257257916882001996873102657935887564722419716599572926966537933416312051374104306741666114985895595605234840962676149025637705111169291705998903513920250724655557842438107456761984465917798148498214487253457458908389835330142757017515188823490830293480082327070973431988050851693428058016105590420819162777598123375867500810767519434319069251682463119310075782015533002968231523505759272584331826216810218738862099096269437422047840876647060119913119062316710569290044974054383452887396239509876157508073311934320698967496420735263878886231536220219843394901782050044528990193145966545764100187764340608256314500491288619647366949288827920512653631457711792357030848396431658994881022055546761453006538932199749801506935213156802087846957129884500794614955990663390652689851725031574752071127735191615494537040942936464239543267699759366714798677111894499288430381812370999696711594575860751442439434272193544316496431130431322433478098452337757704113654219219185048383358197713166396948603131089737900700516844822654163665561748937724600323709751719620965259283298499980825399684037854949444822654487513480617892564775284805163510859428507967149732189559928863152300610307817939270078491492425687422582825959851480666999317694457264127217822749418895708865292269568147928502339945413037558676713665341941630337832931814195733578494921312315732532199028735066626666931882875245124140300338087645665079933660039394373883458773358584437649708483579367647039235958303084514947747693819006505677235561661008383568013290821673657302414977425852631041047836213942333395560820715306149726998904735000085195451754951752893871314179322218832085748579550617482467397564222730734547770532005204252303682882529283325164118427891550517663513075036129203133293319333501192337372883968864683908606919135868478745846954663646997916780049250815155717793502873096257147296133524870548901834387193078559087332985744491592060747604593778362544801004177491603764173889683900919628648855361104066490586207227100897949749184237888631710929059789902620884626934015988541400959242595405365596875006338629038419241403782900445093898699625447081756950556530064642868382545994808969107829176528124552358685169950777218881649625617675437374877828692648950973364492072378270946308574033249712705392475187234852045221407377860124856366800294679778301333220263953838425284396707925082350445272397883437048679005858030716318839170512932218988699997356164173854130416972770026211533721452351477300587152051116088670093394209021191512763060581337010137286236550138804598014592931797850025984058252302603129811923672682097307333416313757218196268932170557876658788556626346667438108046127271085287835377046147455837587736718387007995359404734686673474998062214729462755907757705653999079691787485391288354820137424149363999303248231414193385638243968169944672731316129447526456809957243970062142581061574328303723215073611021147900268197334741743401230266337843329813127770663791259868575187846922928734425811245945005859189572015922751480439833364090636200274674565120171408907253821572524256609565254661569448669895594384294681745583504040892074994283018669605471718740778624081122260526291041262849393332884462387963341118608054233439315771077281918319581890931933885865665489348436526345007772526501499259948346549239218097514409515648113953380995793461919906608969753512557720351468615344458174592508258122152284975685339698715019678777071220495297953864981216423048714873342367759791174939586644244826572990537946248990057953103919853184315401108341850842260424245510926867419154135976666887844626448182920395134176953035504760761044885108686888374957707261724285693650481365228545214515906385160099476384112975310501497445152011485445609225589392709090511113349935538516177733101378274231703056938926996298280511604975124425984918069266334765164555094308751714896465475553221709539963045550019921700157641506023283197367642010528488189069429989588987066094618097570237156761125414072021919737931688378506356054228154789430619849725803795911457106093229322184344980748283474651393381717132415843186577540097087313342480264437703369657753019642633818455649557842180218985100601712530259998412028243779487273974794937523110615040853377362306162538094198597490647827544033243945175865157514397497361421759688139788832769184153812337965356581640441497352134902662090553040199394344194657977122839038571356686626702342164067310257775006475790343142102326336174560338908885085130546968288498995803799465101145698527892525300544853688816912447659799809345907821751435897333260581349083466403682251817420589223445776668578549923279256470516025246689956859961788477504004162083303311064216925101569323599816323863159117876491768543450791566400200938959132430884686590161296847555303814181165712564570421790415852798242288927982171085374385383049817857069952145532365421117590554270403460253026638293110581146138409076337396870161205955034530387611472414257413619638193441387244138370102862043597892532963107488631083459250384071563303190382577224856567736747933939342312267236879281520887799949245355123577064561468131894901837875576280730180010237607218830048122021802525250365366540704716488120680226604681096212832687930018272796283178530778649360300722855490173468022976893866961979145489023702771236253933577164428352124349262740363821380457276161007673305114476196764369555347225680272653618631620779199611412593225134451661825351541132086106051300982914127472168175549270639623459298571023316292256080123678153389991124438023726472401416198650810017373236261703425912687878504142278543833673498375367387234856021997678227669820082142156181531445498216168053220681344346454352893559054549198491629512720171198634873981757300769286874543053534217686149626568677362117892256061634229831210973603259387162268417530005913920849508824317205907551131455412094394744928231823360177186043693577240590685943897141425762301717001919811551566357086078381141520817701307036310763969965727160851975982733418002973796731179297950876761679003591709146240156805700889553964344569963982023622264981976165288228165090700419150976547256476596330964872990727239843996579663597216133482309881044664423494701225130981959317025016697970574869774539066703877493353721680354508061604543259436363450569315298800747945304995609814315561280455373354099946047187043704711969213530488239651543039283532434719509955863701649126180649808389686225829904515118077651417708323526853260434403092637431977758976557446127362649460360903906732724066866039736833588521798903665315717887596140349178652760287221314405873362300333581452873341249733050173997453375677136327019465070352532653380430565079778517914658773055051809679732843838104236934868862567919942529558858956390602340254947670197813501165203400976250499273507822502948873393253030317583769525989626447547484169056434676754854198660977102162204477918581450735482984799254063259977137450166166444067202972540623938433335837945815837027299202593404118923948642963265627553779660576915257386867140196140520537799865696800845751665856907802087183524793432131360180003533764759950674237113922039399006897296245291161251205338973827585953695663750132187859829307297218510456737676346451594061680466019345859018260783901822242433437808225584098073680146589435764392960965246709760475695381066376051904979388253667799766227516869380888862228884433034636101112438050589189438558494561576153939668568995371112105018643768955892094476167040552875441860875439670928378060973961967483738138988867365554152692840954303312872309246186425932704169537403929694650163593349764476251228248710309832176365451162614617375424928930873909356583206657735478436759607700137829723296131289026763032548649650065679670143581398098899690283308380141339694322771048203719509065108250993379699150352215569819428033905334664388263510330729268687870668120482409266353473485464583635641659452492926982322224660051928022277078952016592035310821095803852950917347964337462347990234038679946628096964574465606954710559152091240256511956443382233147087395618756550198158792482270093574578897008004106955407992016854159441534622148722889269394126602340409212123213300808391802312282285966742516011969299548740612436714306804546716463632096596655935070801564847512512955616559854787958669422683962694193577424699244457887357452098249216295065558021299718417352399770562908497808830754251735966395034771681671578203417129100743566640403490754839693965874676833233862767209050965052227473866474922910514196085932184256126166945115652858578875390756364895292587457922763156527462061047656788957292092448632806293814226441709695449311734188254779804763403995042384973737094016898498038741965979379275134334118227520764635301598949841717238388508642702942067238838159094995528693795780358659563517172604098018337819885048807172872550164676762673513010194568852104794502563914864230879280656177880188187104440875976263808797959247572661657034106026643186637879050309222462874761502734322878456997193869511810177082893233115944704753010327920020294305950695040274092185911815771011216978549324587046000963691241688712589738790317117809229218151208748773629040617769418705409769454487463085456285020439093982646896185967852788531486182738620351862900211804601988304877041611434201992223462844730937453421930309191755337770911787745938441757606397402548842139480466337598710734155293056910560181382000115471975111167807437523333111306474621395428242112949520572227632013425110733964090997057914691828411260190623961976302845604245116416370746941650889021933094098722124990664262350282458994136705768004689517815490299925666650102061555618321376958584256870779972908219891485530404952450252477118903965877066925484387737885364512835541071324729696408017224658555322421137701862888895962816120511599548003030591954278898183190259185476939176512555984221658525475485429770060633572663726943074002413082808633194817449065752119189690876253656766968562017526285967165248775366422008792740769317237544680779639288573870481831988721455651426894195848175625416368125707285277485469206520655005463063961228218900279913468133943886832383336259694422858035204027457984448635038468607470469443536881296402348080941837912711773213940981892729398423400983998015495168426455338990358942094996497240441686754704818441881468872869849299699378050795296320697788590357832061199035454097997671408646390483480618290728435014999788937528979433376917421303002223978501222237074588613323298279650581364325042707576803557867706730727956617787150164662070396566396014062635822090218781010250989300908467807613863726846110387764815451316166212178493072725752020606569384850704689560005237763209508244374143320927518299701743663819821015806705262976508556989132186656952631830946998477256427593402893136521043449514530623913288418813466029208465266701955731901298822124990999797555231575076720186716868042722628647547575267155424499222464426722420337911108228341642180296490798172698144627700453368346733619865311404951114264235302358732089375423367594935331613319764396080007298159469748704545648926070749157230124252843833991305878896896323219161427701836538002288758705062197545527623963855417635042114646400335453873629062615258577204322917212525721445257079437416797178381001502791184495283488606313077070164174857824120850631360084709333963282556733092988573521006915442697013898968722901217920014007181161930477443981777659065867486494603450439686186508522473681550257247166294770460369098543138794206779229212723356812870125213608043674088081548946827843411111718232693535413172740903431868521913885737293853707504219355760626480544425020602558071455154113396519238490255574429687286387097549931016973927055581994470632447599123123417947021099554699601351364075083942498298018621047885758807293322195017105943763850926138556986079522610762060655043669199363194363434111454838317742521854804395999778380212286673720921676056986010586238078844067745620159262881182467855285594873382836602623979897982919734043824536185821328925684970954914035144960698560144282988973349477410246065179212542061591037068020050538378962516417697181397131647280244434454077945435007444868159662865732437650787844585199204590786158912084006857608075792149238330915024982540600909766668873838321333621191183176480484080831968143693466836633528365681555943797369096261733576552339988353866737492793166534644211262315619450576382400771431706847402267619933597978696915623126225704611704671832104385395124454960006945257159660052131844672648929745066269561404184481217790848414729531317563658692942355087017602497406123051460461021821487822821461922460059336632495350382179307839383685731344114545256271449109867174469901324033910161057671343628907940265870778154298252796591833529622094020497986033330306268626862622391291640035317771189017985489858877087482702904549568260780970609174956657654685597673558944226341539715237107741621500230418431526259988247977843539153394243121048294165982173277706577223949707998975183599499003588102598465236583380014620166284658197296550865628910909558639365242465726509719411495190954110954047155846341108653431608196260555057115509049717262404532652956957540375862639455119718148641438870456601649507660827721769522261954891899930825779795552802617286131039753954947334364059881091277489877615906391479475741075828287522963537783753395691349038552386328216037053014029495701542115082530165367007591873885048590159554670121304283521281109697676483007282864274111922851234740262059660476583165487908954790227449525389764457671660594036970832369858339906810952434421294402705431046268693809409220775312730212087228212035209991444713779235438989322390724497480133881323985397844699987738902292228474604634855503239173770513837588485401701603596208374418958054851188895593438365304193345402089281827830211983879700688297150882397173126737333672931744415895215076389994928769645081446937904164584538302877231124644380450572745397917135268443517316389409996712969795499333053886927116908577060968182793845506353638786345443940472437150477182916380212687884652451804434528562171034737801617532757700856426083856809917767226455407285285329791445448576092104636776618077572662760253491146537565020526715960351324526158269196092322917655483923924644229697108019021175859290295768373797140604848785318201138360623525952939023522495556937453609769131601577264091034356012280452293541879363869794385558670796596632201596650588013824902450973604797873022569531344265990224324850948886959396256088388821265036895842077336005003645246989648516036021923733704826036860911144733150518534019746991428314326893254916082105978573490904609699137936417606168202101765365455349870433257333569219853515138423805735175093287230916348340996714648971103156166150616746421519886274614807234408300468588021533286120608352591908984163125206278966939988913659103228719286113019781855455263488962146035190274334266046381980828484256369485037639403896638360535347648443672474164055363832685777034186676410743095861775160442815910661983899532200702275555338796113440228965657044638804420447371266109117516598712442310446124365529295672237426183743965084124800321791307885991847910819527094144797307135948089354420881272322674677792406062858869880726594521368863703547996437118122884932957786523556780135431637020895512114657012156821850173357690804978063814872833092364479434564191940699632063690650615842939570690645809351636315207483406645685497412606922912604704439042982173229031610872472881326747412451926649183831494628172110027180762229742826788433423645098457703577797526230653445512364539797240694808728576809863324644073308509769414073139146884292048938948460307373708812775048603087132093149764967273174731661327363324814455000041633033338747732092916721839479554092171866263284799927423809477788906030447421370955055976709385419817798375929591946210107481267558742982911935810137636948458025290236978145094124250180025134365872911244090843998196548076451779148096110914069064116786702423329276638641998244330323930658178549385925453441358789639291893218207641688888322325178613600677298359807517243872002375475238909953560552263693439019010040342631275902930408132259995650698911237398164112068929738119935342924499949896370840484672341110766915974401144562548941984782290384890293556586327296854129707367895678221320019891059400906505017586110874091999246537978034530523475048428238309463711336085784996720592690322629224095622216134493788209529547788007178657942791036441868859598978001450306410504709967188731443407704524975482357372644689025525288784066615006395676352784904566647918657802099136118933966491208345192716501609834498098245223251009467511405968295279551499172477352634021287043258228383807559110343091134099172299549382521627438045138862712164184766382675512714757509235930666057157297991352003417241073567605399115561992510996825091216982086234624441112555008196107209299686699362469334165258061928323469625707170162061189997678017853847083765042077081825531461109937198848967811847045514773562856385586767562288697612464289139358545668175932539121740815836742156302842386166357917384414502560442507058886059090955035392761096916319654122277314947948980320721161513279815986241006936457555767541107115263264815621409239759584734537923133031452738840341001756449255128087545334271957697669100634676531758429234247438374036045814604763861309750418827920300775961163678971603101764930883896946356658675213128597317990521228644623417200508759507071144231432563461533611718660720454242944218734690129341201953038707754767503458287417124122801600969386980448726043641313894391859544623053706398634516742458519533104919899180800582690737475119356119045332159961015230258882751255142120227307808215305928848104656504226442609171339780629350890538534926862979489300747715443654856856700101866188680303248674902184504286931354841096391609323613587897930681867257904912636833821454611376702770467464061774352132880033950688836737820941794890070697392413596488070810771894081466460185501470855756799084593490576916306406948686352383273994492583181434982857647195512655582183094835866016246207601547305000108307586349196802302599456431785003775188596892952160647798557901187012028743724609518127546734774417016484685635256690336281168088197552109356818358687056348911280693061401652434676403327540552558731330810094399961882639627004048257523338908095765872202498502336142050953176470739705199863680093445252359160928727815166840044704923481569625837161711371304490595307064051381722108259086493966194084638880097944296178038958414729754559555975886066950187119498909523434171766673417062782444055656082668570728983351651147531667179119405804086147528711803656114781981264900545489969011664103045076383636691686998867707333562555400721783195928666745272385315040485746364630237075685701894453657306475112773917157085449594025220147219518212571136435670357386358830243004407950336833873752604312586014185460698074533462818232692284045872942006649014171399689327504578684497623952755589393122540143964127868576474681386013779101481596204362897994538091631866940033975215819424877139229270915478974647445403854215478566867413635172353266195164654944435499031794870025274368347171931352984401436573103286593876386998661646696165048571399616507095721275389116463477432573795767678914963973802553331317709961954182400054620434521591721489519128857850782071061174451121733824607259898976567336038228971135223201586602964431557986220478237730981253831603876025160287955251165459214624651126140040992459020674119030439020450962353345192036710509545790602666715752093024279208336367909468892017419897557636799952259621520737732319792213474553865843396232187583577062968461535340185721776980193371371199653558896844105715198866666544690373805274576751707970986217997071264579848067701880292216787210299624590407974044749900830725551216435027221122762537953614415373962365204467957847447753684745983135916401054263615239830789140201722562272054152356219611857573338737616066991526408232898493850690221649224930859920500283096593806726047051831428431734577988827153360754828431409048501495849000318824388680857037477951511813357090708716055554364166265341002990077101572442736071256375478484124034491722838997166290624699648081724843809108026266451789590692232765968469377126351041942841171373832456323911987447871939240919352760167432712462877637159963636017852319833701103696053234003526777191625254822583485672623640476104546805269462399746730211084752782299172731777366130013893690092701984023346518931844057634095298814006754706528000378507916111635171830195922886696010794280351036179785276135208550122547827929510638796733869265640254742823144033850611716291277440265876417426630036544507527295789510356018408613502594775058253675006411656451169259095362758499016104054742810011802321697523689465749533431844631913998511316611325693432228204428091843834688166275370156511086567559559772535665653847141225363997018759684913835888787040550466488537838913822856989716762509993042490319816996648227901874960149942456030583929551596990734364957789473287008326074207370623388091202657955449866006620016599680877700787384297988539351693759475471366408728765404834846759367296615700927121433285939179292544417800137978716896106380339540219488910340086451299598211374860707832883962361490094443294228007611252697833570197395915388543000998806147522072916120147675714590125921081585724187789029670947949643758203421445238069781149573191546070557794412738127401730909896280186511179113337452446495386299784300802652084275214068592274036380966923404238410741096064919444931813851239478482035983112966930676316680158713953969913371588022545121626128277663067572622538080665521317076699504296129297041296837478653757045663607921198650587516724170792738704295203894055705859541853575720938197520536668933680979018688084952697378534639948724104442469164917412259676160547197064804033844830729238278388119327794341233747500059537375635690691319593649864664876179162678285669351600132984745901950185505023436456060228060604962756676487964474323965582561529441910756679706931440103344862832838861409964002150998055666919375058713674727238557113330282604411592301899979875814652837741895393597738396456308098863165379126413474328839342055727582571444576923805387090176514876693287430342405851841926360951751541467881711162334093669899022265381691607072232531584033530258883294020526000119801982166978944066825881361139668027434430709275726066391135029934834046180186608093389828740281597571855246829926619960721961892812794668703128368137799113983209224590470535055331856251664739656562347745989593532311917346044395986546354043490342640910287443846442168208171510807558370090727661266561241910258658662726054232363614462647349342961506502296804225017333860151710062564430906603563061476108422400531102560861000827928597721771868316090829208173659819998579999264226237560885925884441790676934418389643952601501471671244253784554146037184252774880307605965543442895062917096590090368077515136619809191721570550455316933816316977180804618517566378493968918282910712386386436626951924260973715175422766562599750990069181880840840635265138064556124220861589049125098552674000667403595410929900290515534147015012433457731064162415596574128160466655042640778914720931298400494904837660963500698065647532679625448853269164055978517917754501000526653037046236753166960669856682236247162745409839456416196170878069514333756809206380015976662351444922340757318907751896586515646699368220298168848130701073866070041814131418980184412088284339597883190805059953197055069188138131998056908263221473098857068656957641016255956317638409465081674131476045511804400467999791942141099256337825164051193785979669255174683007579697467022738584086389461788470849457577372222674758366915482442529422191635744759578532092508304681026773474807630325713684760414011428563103845189515728946890601936313995150805926570921434285345919609944120539220959237358811050650183254736821294342226598535801539530621772480082050387838341173686387333035067962902188103288201357106156464544216320335513571114277157991133339517565242160230273134254687709665177733945960334605322440113092651689633399277672039972332156104255883305686119788836419262553004531887097023382353133511308411425579657724955358830323068565948520588547494404732353799450302250893705443424134416114515567780258205341796760508187449917341831880517229180434348658222075663765380417407870850439700356645047422116547782661098034182461371034369758059848303237117422959716297049653508532516153441005281374333269578723370261338081759047912760683199081498226839059560656226064725345320669608039751245473053769411054794765676602791452819147242976149890642702878140298062350361585656897465802970189019690153181097268272638090064632899800635153657610447915005926314266205752707788164304581962702333231411352168532057462610317608709089295269820161698956092892173602118411197297958399711188839198987423736322916067835265248448946922079301058366130466463879822352850024099052366894445695527670274132683961058790836676244495297106381154169790691481057448764598914935438409189193362006475985524706995777574855135802724575920179231349046891046775451099531560342800190380930574286335022791843594614607105197198312525397308295000144170955054310569263843842409754057781387703646200562032243515158180718134075541986799270083166468840488030465621599162943891744247408249832434074815436859333260173829440454589772750649934316827534884081626617427663187564776993359042518757419529401738515192085552881760337603514477560271363412998133270794500994723814772936361822134360199169122892904838836302747759336791672583775728036196454016501593260405509195530155344614375516556706221792206390407311431332246706507887932628473569213134911633814878837106011412855955141616260424775281783249124561034119645764945690938308498532614024546161163539430915006206481830752520935636550281201235444812698565047888046994108892690631871305732405338996255318599998559832798823215324085549450314518780641783564219016751437908358788940873985744009230378145171346156310802519722579307095261658921108451370361467222421642678475475397571331713765800539794073156585308048547728875836941988666025131870903379773430665823204597466894158330406584559721773024453464462585599988267196162604378887738351777923733322495180794600496895926958066606063587120802148505918401451537378095865367456803807277837664461175648910191840542818492506351875059193670729782312685491481084572556365910287138046616678244378438704073458936642031198023631162501918161203114694473107962785915434375741160539536496440375932610488128224178618149990082924572932135051109959976078315737398971253746231424817725093950995039870932295503989145268124844738015952103084150943702169286892988894703550040716265455551874746859261939487850403588492688305525336980265515585125181849567775452799754723162379729607172308278986460178290406631703703294204925989582766951146072714760688918871262771406078125188857711559265696566820212321758006784582872209615991845682056792944924211988209874087156431748222052350094596083898527348259309083643722109620596890857029930104436035690858725600038463769316780516477017922175337917514954612395429762731102169610696119874934961591841421504536518297747708897011721447949467875150357976206865579673146933075193214266041847098065496773233401272869724147659767362711295866324182713128571755181324945647064223123890302726179307771151638710494559905223317944250661275124827963363444723181922296969265940318324749248310723120618008403602397458500545835108461891955274502391184132960600720242434749033220161557693150553739818169284015276850595973700792900078097801255381437052626658279399854254631551831101888898706866423050832923652344695291990300632266485351167114612118451559184323331246092394097357338232445522591674410101317491548350577844755629229006161061059157055284272796036241517461602405221441179501578501674729767065304731610877166320193108589024499698435299450268867260353318919496746043281384414175547528908998448015584607829667681516090588833635413105124508361998945677891214486841673232420099939007927191561452737378752044029831010163037610605009682772741663735820148954212747615788435329883295512399518618354660500485167772524480717096202113706381157924636879531932161416860558877116223536449538703340502387452511844427454413784902842362572469304205556859524469673540498899932193860210806401820866189392319940850938782262210681188461875048564301918179150372000031448936515253058995074985739748475395107807389958443813040084085993178497511180676691928277457930045393724754410642003104045983423387439548669083752300086156949021896713146124285392636252058150012060344793892052840436281965793918561329421947975901237749870485032280448661679603252479665886845203546908129536120114667132337230077401850106445723851181881001951741995557388901674011770568094660905853305227089799410474134972864344394481872330518660074255841746791617297970859649815252349132607868460989607706201578840795559736315560499457594183323060825579957538704590202022204389375316568620679905596748389147907830261216598890563889893551100726885538442948613985819819388163393233368419253862222457791060164752602348680592777515828413435438475154049409265764165946051812600854256624808975178731932509667481563761143053669873759547747341928375137838730962899039622983998250513857964220768673870047330960484964410011747390443756140225197503092572880548989785089393460679018554052023653627363820101780254032718799540283696117255783183639284523062940877807745553889198349654920321682003772800788068080811702185799864716324121080223974671860392563070707540874963298757923267176249112450273663341357825306202708173925243104991561746106597896709804605131956646349892443798443489336654934856741459452901197503317327316455437627228874483624088940911816034392591373959869263360917156645719937321310331915374640038552587621140652201068565484296604692938860581727194951476569968885107227057562961552221627861723317136148915214338164279073490234562096132201011347412206780805849201811671459209306629252507260291971352710637060554497856602789691000818835717792756800842203656039154348850905278304312677454967303776644817365483746907437614590263888818699449335035877437490015202300437901487209186183005309203365680144345560008294625786212944435207444026101711281703565913226576984148217793937696131221407511888681007036669832512778379877737207790381192949656014835303135675557165464437395016703971328569219606590204635605131290532064026735454534838844502971336271322705612267017926909587897455311268848285951412926562605496002932189238637009314654667376827331606733745911442422184141880961834682408584372048738082350102494234388559990622283198397088504695817383982181085665315732866780064534212935473389503696856865618871942168914235694640116431199354036649821002312579994450122305493425764510397663587361597890787102443862926969148455455744929226638465440874377937850922891265284063819189759784069951456617474565666731054985939386392660038178981502355206547782231002801093066057679732137753573791339425659957052087940591726230371433411809589949234648843926687260014489425854859862128159125038682051593139785467940769353396989131705760338863856918227544871336839527115278422957064483574760597878837948316984027328349111513233660374705185739781905358255360720318720945562806219363702377167442078391258693621623736836516427987919249228104686091017774345472509854703194561760697824673661578472298698855568953477523038965573403082170285211447754484798565068789482731732887922492028708396858418203382136776612373634988286043890195774866173046949197902896012579822277960889228863118737652173693950136403947359514567516239608812452589787525570159018738248066285680669633625817170124302503686806049036725702940823030969091512968673986298837888523437054158900823359869923747044350442818321890745615364948308847685138936689200233554659589638998950133723936622547715511486957573886599155292409342577632067716569838505035603119231503820439260022944398181858808367293514287701336041719117917386665787379306301715150958993344648786499836439243937748165146332573167455128452706977614684163061055251248132266156361124358410706675626754372112280220360976136117873738861346438521168210534311224745312065969156505177261291862179083723895206975862563730234927640398574797088618148124153345050500354953793382001149764497126679516963133792506379536611046439043808659137219824335224959271795531997483261815944518943093152609425069852115578992579455030220553499761716080140415220003378640717777390601729503572896577644046685726378048562789456721090262151598614248405646158608926702740229695569089319554251929126365965508371096895069629281689365880606043353933132737167741015167104652426164737103158196911597469278640239996381010012230162499950789950296135382074612519721865840081642373807281293673901896880165912533858149885184896965969280778940309332320506101700069917353683489330418868634680536808107201653549689198891591358481601461010208142487170819541375251254634536695890013161322299266536290170821137876956181581707703923312530963188432665845267704392768156647228178254255630648537118173868566197348431711487381290267333876587529479697960135976910334685344062525086009945247565600140974276517197317967803222206630855620266444042100670539228096599531691709684898506249728855254769950925091523491499542954165025802891097393023630151944774052891821766412580975660523261640297657125848404345320969964983660426871059693532178785353765050071111220734548003080871685425223837284871222617961207387746686867428732930369693425302971622856583998907099152746006705808804921888901703071569234691516471188884909280663107010153605116284215910092897815323033377867528775807190941448306397927407071094696512664346635705356353274234016379789905514694227420306475949934990449598254086477842643776622438661650344609777395467215393628441055528260218184202308018792487538782178849866449214082754438481586373652835587118046528356039387707209479340608318514758285411141348481436815887428531878346676864434655605392509283413880396008954078472379474726106886379512056149526852662596609204397581120678251082755460804124626798884233848715357585987763787943747723324732824025359457936446027225194020621123403301082864932840761419164624947069316356845734654266052547413752954376333937881580166478965897312389391774181407962455694369823801339545503791474977811634225241610935708089039727152087854925924931266410377792356005875103026964832278705085518917647000483479427856972720676897589493124706174381169348883575302858809636496471614951572368250495706343847312027301667276172342190402972755432604427511882529389663519129414332971218292705944654779249783939548643228828063329322995251708397219983537974591175394616351714128391333976608245549062684259454357922845268171255379707943202483883818528197832566622873975543673462557781906649234155854109389609122275044672429544558838302947200134313343811288109811709958660457678717041116140879600445033958053386506882799300783476336385410096677802740022424886047699915195077301687068659441389697554341267096866567420742874522700941401020338925182456063504320677839080640929605346102487476506580017515791907229951433711573784359231730108986346046088276159069316674603828822713369606684767463909287655483692678521654414138312890797434117099969459320738179292185681625602815099549557322560726052244869589318584100366611389965324343438816582099321755985585616843244894996397398969195053989913166495701538407128459388537743488290689659552819128541666928639369854206094904598523845227728084955787766542210951388060338678678640129010263735755593793375236601995245963757419481097119872262822726743912610714534798448162404579333805896429508170974373915186761641698277391155941151566272185596156390506941091842917185278673554996305232390301266387783536784164916689873821168899009508062440557020412222776914985360298711918521290126703574868366884551973250327782903543175230139651106228931359774657611716248400423802434361663323266072130583592345791327943626803357716660333723420234898705206788943750036650696470379355506000917148539341337898795497626915045216965277053636805108094386707972112054876869711747807761646872706973340301558720624240990956821672001509524948143657506394888111657627085798159215539758616746513939023507568489169090407799925060860818490683817911064015631535407929236420159016396256508571612013742475818349886832001591219410748699018266224249885304961411166449999799969096518892611329923754167127542711527619174368970306025269110994267792819071357096858173760568256780387239961855253103279982515001233745267043215567680779084177102027460319153264319812947718506210776262990820051457609238233389513218122122294048263700842705717363451612397193972401700115062090230234227145128162334527089867039481060273793498547933157160644509858415165958999867141377944179868280479508435098682055639244836220567430409344535490359227541380882384938388697169468166983428434943857822840486204326054618307969375788649976876642352512080160807565107843086919524719900568509740903929232194737618387848536369564075217059191556519147830801392206565028782058473724608516960584648182069669772366137735412263743829124982923532350127313565791392140616461945366666448992223767582289058172674730637295261242407055804224471169164284911272548144712818473739738108849434171441043656370172715729285714356097728851732350393022772150964356277255257096935034194496366350328455251066676193538240301532206045780216490383862049464787086863198621647644894967085488394089251241467796263868083197485404682246219484121939701799577250927405257755559580285005433737009666856545296135673131322908017062041858413328035489892529864168068367899962673646652250670309179962092326305387379551267516601165554208562697376988360446667824468023287538569067577988451423473492511300142001521256018070853877074123274586200226258483038705127200094354384477345908299489332350100971432554744672504201421113070168381585289078627884819883655561683108068266800455507632974340259152960496013266759458227049818143313082755677121143064985307059586375144526575363293264276274152605110560572142485032205419454113338595194744709196959038998762414385009205534235843133187226244660017875152409111330266225428518058923988166107563762463835320458951355880347564000031640876939288394473199420629644725501954317386173600229649063229897594177321643228282788463639038441517257526235201512003162530927091127051675364250025787245486131738637217191469272840021694155423859738887147575059617816672532192487289185106981985209389606706304684745804178673678592783592554325632374164959343301576371539788393783499149629795478778628147829973195825500366339443851997364550618719022289595484720848431589380494443742776934277521703724952260056212773633535975283785058414488160423821574883830499814715718269863506594706902463332535191258244725534598592252555851552721832192899052506120976845550399327767475229151586822735379902504804204472667492176349951456289748168652508507242510308322709263110497243466728641116354371326388513700079238145057288724654599919437187858102430960450332408094712369673428147407303046744900278124648075840233660574144757978897857250867994363823780805124953638606205501691659257160867100562495720802155228641337991297433580247003613278538255646409574493410801123035953770114876246523277170950293410703218382322172038875089201232151221857965041625600751491088471314176135762621978221243898510810671723432457905855096308655461371764970473950625835705460685661293616103310338808935853246381995594702949760711202001652939958871471014262752522740094879850684146517062680857577606753584800277421195514730675150812065240317839277058225053092017399933645688817468362655758501468771507100159514707501172086456944476035438327676498556152463346889077645240106206553336378247729934417962364015518581770631375277738242534062739844316279129279505972717047686995690325797253717523567715830222522031819583790892637176633221648890952527079517410390005624852456203516797970308973519457620178624085126273558435363167232188577554618265772480485270453862526285924513196603112881494363371973646162291243409743926102323570377228881408603742008556133907998992167787349394268424731470638459493787043786295434557574543452797871626340289682213473884129957107686084866015690536663533942083999577613067502024267596946528134368018993349234470057358119945862684974808957817541638300374124288723725796829647146159265117068682869863894394522339494956692760831225520755779608836786021358827950929532219734990908331313689871384026788974497931863233382891655981524657737620208216117274448664416395938810420121476721349137657263158181563251962111578244739149026515632241352854434363412314385404780880893794727798330439003156054020671702668547915998232161012303596941512752693967391465479500954520578787287033661457018156540009308058727162500473035365530817697452943843084264012705101705454263491235604854108182218851688635865152636924970527063121398401907587748080272615825392024601842586667550226600557006165077832337025916694009589993062614468668594792623414127999138079068291726846028431737661137436567788395888984794365479326184631076077105659479546213964708319932963873146711112711608834407759498664370059854311948186204202587529034411529936800670456186558756315774388091743463345405348142732324951919645940191573261703533267624667157431589714068237342225864286743461357668359292256035405002563099849955300109958391647827099146984527851787089746057846492443431778124397560004621386211802849803226363077070593362514310102060289871931644941194275956928279467495314848638264900793758658730019646447221395357311183299641992306267286306916225972329602858496211391037506937618422662096723841588646533130879330571404013955807916688129698923825006977199441309870725090135429348704285882242108144330254462378183241441290222354134586023344167327213983881017397126456421780305747355218923628214566189954671920682467825547691084447967315018795287798419900768424766998868579359332345967130384801072985154268193168559582098903608902421784562929667320258448292788336075239473092874572639822799404854459858505687106405484156856120883675905111331159747791543731731555373992654310389340272030922490739658755239254182256368325052610488665214025691622218295373907718715550807246437513166486604020854675939230249589201876845249841545581845319518002077758836682975613022904281321199262046971300887551535337681985706569111594342101921063663703026648009346886693531433461963431889621390056286321401245624686796534930168174750902093981178998717205295038806563681150177360564729815175714833898444559265032866659322643244052403938351433159923382258447490375238153018148565526883491342874624535488408718356165213006111438590397196888484736814482763607332435442063252811916390853759893122367480946880710103591090344959677688261262035210191475043182171312806080278859510262031913988970186429236845523765948118821474077496294689329248609765692992184653387525912409141106585904001195258490851156892546775171490310473950727495386228790937279015409925519277554915722222210056569122673844281495125262309379883539804770943079874008739588988067961551019821648894097335385223798389717576484450904055258450370613489707283025920496521754100966490576495021680212103478473565482717181110413626830496944567189452723998765782062523888360417645473185555288265453045262882017168115084049334806332220488675775294868487114202267989767303379671166157831287899941265161940640410962337178355603419894560341914594055586093594112966526563953308251294773635457538839793283081236781964800238636449193779042863411890311471808079985640381837697403465125879321671322178678393976238088974231466241015976036227892161316982630291362562970918567156994554915394994582034188000965008329690545585313715324344991232119708255826084585997791155415156447653133991368752622935204561733410743273191025083794180782735327118718707885581943424632681211135766182949128698093599321046859701751579133248853145504748947833375798241827150489631086731553348910308609169784972717807828323420470285549932827424781355713429153988417895868813115570011656875724442128547857044383934358922639224932543267170089076741071525978472513905219511447361839796476786501058309648837476640254969721415685391632891129417281900256586548667417584912301092367170220150165005143457797809907084072193354116256533754277249787214596781910010091765076037257830263859667974422217037182497184515727160669587912648704815767703938616490911764840101525380362417674671771691135974028203087904255388918982221088767326707277783435307793506171257380373272919923580166611944431665124787063890139654067865727741091612181545961224865487237913541733987969174730666908328352851021205632707089106560360374353774863752455107552784585482623371742356926995971399526565450444820161743804599939759735153166937376163761571515726820756450809584014036087997794905804718576968991592234717804442702563796406623933686952333295290736827676525288191441700564193891154551311302982069861312206200637959814623695972916572337680013494430912005499765852945447059825872776616971357711705443491284779836930738526726592046857884781602179752362212743834221226917372985459642066771888828340684605729733215780035998936090919570705744094515084642571893105468246088412767006844798207783244497007826414409456304631740020437042561650605978561317370377731363868312329102741132753463207771241249274895250668956768790670856427264850676646369685820560119327939489479071486426618311270698234284096052797913016709085803469626266203314648880549293241207953446519322677130649426268782586823336376930171055936740737474599964213563171836001093966698429831824374265191016515096772103677636592688618568341014357454003063869372185653448146755159659025082399394803337128832407163072035647240499800630498235823535146728563755861429035466567460639544971187582860158155386705968687664769000426668625184225960704670258822599385849681720967624342657200029865872034484853500659221299405740931858897228336558560307212331104964520644776745977603565234065048833776207695329964756526955564838207229374232713174696036020894281056800389502200212387883182197665811057528954770923728884062879514514708270759252058542920321949568669530486983356129800313658419857328496543812833492518703415044541812984443738837862527711360487519970268065478871424438514329897442952830538001728356289329112727225096823526969550862083217987819610393471619392791263442969073168983096966968450991365661043849141470902916649531379852606833734494318829208923338903223649917598560230736777903210684001844790435036328724366704711400127245540801951881521705693463874759400031905105866681127491788563067436759218011883855799173190449298775323030988138997281380193309553563425531257768441799677120636010024160644304635032365364232400455093611219889519050661245475901972564946031412794979233038360488507371983240359167898554685198064535575196017928205297265979973916310257231217181622882125710104220707912441540261060791700759735316370491768899535631153262899768380715079777846068053337881793775965596126393561008622817039020497802728258845678447577652258453110105488888663697427073573412508850347327919148421900861158704829622535485565433068855702045637680529072256094380964657711657652919735134047959897417195695313184377682685836528549761661551840425030236527951260613657271348863574136498203738817338372312316076794673954225616327097061881483153787430475326479807932072340408202332719531364901518254598800707284220297536176404666542259794131146364956234029937103011559807155645842813688626645185636976916444541227881626204400237684430663736547155684062847252558462628902371828327162450539349078256611976663905768786146718787993181787201628012483313411459681272195097163095321980499646811063789922344207099880073616307056454973656074934379696550475821383836621325894228721432625167915086366197616022385278390816169992055574111019825434670903567623779821504202387671206254155287129851467869358134390338677989814798842930618004222622448900797916312707226658761324795157279188913837135143296686294995077894200996006938384207436900566892411768699318757115153632556593052860441795155561193749334501823024219572455968178507077927694902955951527925966365090671710472587091421869200644179020960206870720558051103530326371044426939878826575685010809341449850352920167803474848913386979124989588655505848351235951306474747836218983081015830006026391290011892998208369252597327940052103904972592520344351316139257207926831941862141174094072377345030241502757247312428408796682918065203961707028033552838610839343592131023658720727215039888125324298891035546994465148694494600252241105857638604504100532294373549585331139803770408370787921122355986923930361212677285627644708878401546662856318261155474673514407359723648977851887705653149523932862443394945038689633094929193364798407457848139913128385322069497422927955476726801828279460077448192212455513620056032210467893027504378466378172733788458031669577092871179599771387664785709098191446978648876735615727521356659493135714558955177264044064434055069733411819461976131537356418736312552970482965174417760010989751364102356502202499430278180753222138743975431561768043228917993735775267451703701385990777486137870353210692889597290891334449551854549804870600098626053973658405575060254345132040611486413000658877575450848682921463118536133921102658005289486934794982419716525073504532839689844382692780860678632319830241340398242399074023173853786822578860611954555692953512514274370840173948311754845404508404066362303629867473174529621462833985615154858521294029033288752716870912342579823839756104602550441192888034684680151426586605085555446491839583540786401710476102689281753629158896490114045318456181180002698438453564292676869704400125197262265218585712947522591485126712470733429364646995538544797785036841236511927630364176230685503129795399917909028885273041646971816448580326339060483061930284346963262059133776417470062871564659053989077014200569012095788980328399339089975200607027889469945933989019719016829318162708787740821969717383824686313895926911312936540858153856448257828059563080705966360981476079315732247868794457791939942286689192391389092620878152950595281246685686011717215383928104162303071540035269107386409876370762377080466034374410937225997895922340659875143763587159768750017570249816970347945467096946854637153339184865230160457067782637965335436103808270382135157657982619894869641303893317929339143466677372714539751943086175366915293588499972171019742033154745813744169952893884208747545578033239872775768747009101660579791284011923423881225135331354933305706591866710017064910872463709597991166568224976973356162449951987531028203313749099882609130717444196900758781759233907183129106094294082595294106381950941814751488204507362525394311909490192021462658524819072646972910036915815050523334782353497816572660622753574693505108787487690632024651556159511095165385236423721190827746913924178414381341399016121712700941763484902070241794263694959878910791261276059299096670621216582255567387337853368582515475940875765310463512552999801387886900698995759485130853972177487702934154029949118852843750986933805905575868830610077627626782010220072848607045993190693668337258298703647946629694865213303217938513800770635850786923772492420784240056529355035132998742044916908661842639653287950525287838074200187941635725977802869058682944369610965160285742054820097722125081451387458995428336602928958692239778783820815785553348445664048900158239348990903086448500608780444789991667017434154748155246006688449032889389890521235534476995413278799474539993450053046525001346218344130330982312565897606400448541359944978311488243882389882378331482832081522735172531673687704591883788645641867283028398618645359722120091502222009870979542783927986271160157774714946629526261802334095997744167238690400003199758892349890966870365734879314337064222247884475364434382461001063568883691133698073329860543212246415444772590523451341159234863432311855707769652810193625311408154398793018802919937274155931255308539133763290240090433550625381926433182000097427116106768219786884567857428300179212498489221491358602941534552290751434201544869701217991374446749035685154093066456775601949124216833715888180857391970635642409871464633164529091347921583832093063857740570566984272726857560984829554651833382939268688933120988319467763606192760647420419312288175089862881949493670953471317166768271003374504194305655577722303029019784714473896755094787692865926696285297374571557820834754685026690676671892374498717354997787388898801590034846587470451704321495627490093432043706346075942514262222275319522773854125799349354158256371932440077510009132891579265785085196388056300380508470520355553885182969401518417283334058012637251186862896320783476002259481586327029568604833200586744172220621347620197501653532635982211562840974956909350792730495345733696713226392448338681010745485277181823635365471954418993577855250374170449165512663760259616044869364861565266595233335300863500415761327372989941023919293649815409742654834444311952605847426749362601510618811342063511830735843673262276908990266417738470298230480178928128270168075116789650504277709058318112504590302601262906879913825589844695933259599791219367850998222197800236124999369314163335519202055981603367243194764955819952875571682990840043803471437590521808561917421990952243802728333951522080485496974399110071333006352702646071828222944068546576149803741890271266645445365287586039395163441533891311134350822272478088557783854026839259371170914718535538670398004799608059076163563154449427084641765690150304985199129777215561380999136740040276820783732684294765185631903980208932312626303593271916342875395319413615105676115435424273165431251219770636164253456406364684379881552609462022028578613099142275592715848761500746426619004167036745079999448513592360346383653733105695206124390833835794186834331741245836737760142167970462983527498304989661125449464960159183854715242990173317060110163736605621909024077132545702758248522343806580084746581126413903290390888798019525784211105874975134372540891962409958709471963540352931434289119066487633949017842773557643072681345734510925123519204486246272128237981288888856041860940418479234342765392289932879305346131486528379264935993121967257213595303508977393389110504970788429340741815285008481172819622709016664453568419009365644455872190755846961831172321038234061745102969953794430981830805852297853084096260779125369373816155492633217816791370629998449158806622583220796053231367043596032264042954888758457076496410137354688610513833309657598837556532469488000254801243075765581836639998018310508088483718587488651484298359590459360886871320457866316586596007217952487690605845343840055818363371365613456145971215890141837585776941728083553013757483859581867935983231437455737596362870402320428003804179098831313872532326779059757624393802978429256907390108027300243674329077901472618751756342268115908985706617474932480202884461893605748018856460948026683253906185555219376777933851170339657718501719015896262612840004248287041558340272439275981823933699854479717999858087235067348773214185924104565773323017669253453430290169116955015337717031331264131656514633710784557361867998468398675794216965965341887194178354178005574682380040274455211317086131825195280141078583394322330590877493735086130397619229013829049491761887682979091019617388623659067710711470372295070089196876666478003601345521307866664152630485656774726541685279980940485549087111924437295257802757665997733126433496052576053040784355394206021531801146806216436933326275542422019045091333931590383633918109635320188677697183125384092585045390073418111187943390406448017287358805054080861609068777299696796986729210952461097166136822988017752096039827028888031109624059352071165210006041897037062517803621099658830304094118989259661242585770309597704154640556138943708248940620828644713403310393176793235790044554819027738496488828937411365631159980962640057275491878997983304203790883091690699437250226866428554064816191698923809368708989820499810842385866055010981027008268843888870955133301920025696285435887130423126925011337857540668268574449608395303140345534477454525955306393897726602717427681469611582161777243363752074871810466610808842573515993880178176126517614371328496068051123964092424167532726198210796149069161225904403200114053122371938863879494195955964459322646910517609623851651694750067416027597803086622808544366565497428973116540947157295954319657350030068193303224493743941920498790694599054496222854694516792197002332617697585911038480370927975495934523532449456140156518900010064676705762122705382743229765844286865280514892668201866400651454128401805641884335985264516567974258104720670213029316266976132608355622173902571988759278294545633218078982716566840078475234057685618723562420061926655305081967398556204979784118001998299747491999184377672846445828464652424534907935170363407666887023953512860492814336484164169180686734404978741976384831828706649949316318974116063573041385554176137892750221312646403834456652916081023036970256917529870114978618829529721199724756332200657079847050861808172262662344736089260169605845236765464390328084915756492545415875610814510623004530269734977147038140801156609555936413060236253964333836727607515272847340177231263876371322916689627589070291523109574610272377752326323138075350118356702301353150481553408523286062250498559608771818517758672806334382186547898092456108740595796330369621437992549972678801778964898487827961037606980817413432044619959107975101000041293762087274625438790880679076602185480114969249481001789313220911398537918525105508259761295429306075515115762661775025748486990670141920035521889511412435592350717965261701772897119422137096661409859836245563121963820963696002648208052447339000793611809609698745093702728347652508221538520813347312730645560953960677174499741374602086627730655752720066470189406683238286435256267196624089876099738588860749929534918185787189211203275399344506533154318066339112384022091163424325182532985700795137831417161817243252876555852060515663343548059632572074318958202245623856133992031051251472776686092444793423147319024724725274111286118574764550361375647330142821848579178810575177020873048304955102092956414725862880464367298234933510297736629448297328969209530257021429760208763810213916658827750149762595448475770469868180947013252794831527527582704744333483568797511496538134048740954463060516552848547048339140417746312286128999164489076928457052723590269862905167700384861532400996869239346607603567426246989772846050672486201399637819997733700839278848156956311550948043511648135832449769309758945743502010311122884713897380721184879827203542715893212259932539176564958697745330973186225777423227830865168196903654524350775286989486291950912843694121660382340043448027881684695827978343622808970618699679568465777832932508049534762460518112334196120766428839879038779186258472749255074930444928275898029862845784372176146307931686116488095155642255447958811193863376233865709640856419860697942237366556658326831561026820082724512796791409651456490981541285582306064226634787059300823570822139181396737036593907811353351879391193882843744222801195439414959637372193697230878932202486468213702603154825540415598573324708516219402130467183085640446429150299335777078102702287079383381304038431943008353539112460838014816355474290450505396150209067519461597269382807787306984120701318114702324832995371039739133743104158571201074765108022498902076175752867720321560741270768258385418312127710845558025247161502396859736869884986213466425852388547425666553853547414776541952620408506749556895467052948669267048003894046525177106443447792142166319361890409839232254315688634865795410619944925780246093074933257065291538711636990207050407927534071399596738266949167955216832000814622469349423521075651383769070369505956912919661134369873058483350042467380444929858158174869795190711816631334299346077999866890269569577646657414986082845847860471759578852651160848772811064061858914810121494788788379029202805685208559975157059007431177794130316819896752404080597617900508398671551179791093744016554339101013180641534550206255367798329152794249529758907248407887629061699401434229913318455890259838769764801765193654818437425111179813254298940413281014606268251523887499078233497375300904747430915137101547570973615012885870012697253659455696152748969687411421770841315765043684390178667587710561841654670046322909415205674272915982866907802175726811519764874695485647082646454607940821280219391565252872020462563343062948986438519107291563552692758022074996225292612367762502095026302647811438039407860894382352302691465134205251382515065679759620673468617731915589295216117131417791402448088379198380003919544795920669146357177867394022309095533845622311870577846605652038683225313134222863568150346278266915075253662014216412080362805721170288476789042870517987270909878877436011485003020258926037805840081563681974311755606437958959513670852968487182156906247490697970921251339443928387153233554247826008341005223566389645525744734098045109604905980593185638657586643881922985598200082649547974330853941938668829907721851763302982524401039573183126725012288317612199595469582977888241371105565000971891977988527122684713098969054050851101485994956817240177670433641459868177056922211589925594492823717240212239521685515990717324055120952198773690076919705332817702470112428480545832594620186586201967124138287356362468931205158999249411792010222689098485638585128332870012146132914532105693455830343072507975577122441156236347573380879542288648040187172332878452746612036182751132076149174846308319801006596655334021028139436955995130805698593782289255961192034986639010856607534069221617793630395579904344170933464622962463796306804125977822578846223665930006576849554635079849634307432354754853781044719898625045739356062127756023787909315488551121241924199758093505536489966113171824386109161426665673523137132878128956683051713709287723823660789454711123038684079982851644105418299401000877440284917504004200523673354322536459809531930355214536804587490800897833082336736184987008502043350656919413591908833385192178877004276050285455574373076539357673331752263992693513728709187312358144925162804423697832138145674761580557468908651512729873129201065212428318406731472601430926246285141114176034563127781948280876405991130477041901022881715295791024252659937511522182010264687260521086372833895814694678128501754344963555818199343193467813626189979874053626889321023602675016418079211640637431115838166268010063232969724676910714454910413215149848641122689323432738256967292059825690785877488154880853939565776450327111857460929690007155871369319086042708216510621653926403414536759752078254696915166500187967980795402261671393953669243437556878696714084330769452037740957721626462754417546557122720015363641654539376560600412203010105106034060281254727683939030690434716652073496265839428159754341963912316516087850642394221657729908974199176501825989880047590301277352606059115233784356440745492723403711953299456914822471698220106536564337515339849656784706256431957166889356836061797909896704338535014444643100486934635865618763966805045014767051880735907988238759815570878389142459275533683986188903577906400708921372930748284817103005186171478361839288078477654429428782289781181713988026872430387236768443268910050632242157504489159014403966018478989655953485482934693659282015498750221544345038937918716222573586322283884378727428276945635810512127880096048927756184685633814851855636868114091662520417943177344999862874108965605122703574616144666509952865120143439566216273208885500547243636742975228244243753666919065845106887382760845544251386115736511904745274664566324176288003550310388767386768024060490574077571077436289384154767484419526645533611943266996292725725325118184519659488994712300284399809002617838681870704054315945552612091357498684920347620842087136504216480631444613589145772987750614589384862373373069769192230677485634937188568406648119951244050794803702115985595128365028094321242072157684634988478576190872968406585579269884308809908846000713232457715568742363535661091496553742523987829936861479539430459606518711491441945016026112678068814678126582941704351804115038967710240124666181664461806780892904491299445922558713971803796722160874068381204056913449953239196669534412172897827104757751247698693290123443131231416557896125683850988437094011780990199363538691893478444815148722342835531829284162624878581761634512139761735779533190923216531635120642056236056262179075156802398736616640636935809927801053598430075678818521244119137885401746329987715924390580222821207443274153920556627601144238991860663326591322472644305471967726097918526741210381903013158189638035423077712109915608383883668476016261804190754937967552928767588776188447159551723004830512342114680945549984170215573849981537148726959167650665784193829690063557810994857583485905868966463056262909870489980604365156090084600778550603948434010331200217901857029989353309579603288048180067478643184731701950311245384602383488808069256801163337289428741891447455642671279610828909931611921229813615225623022588872843955763266444934502587914266844559731131268933244391647458240031004627967252828788513383938613336755630555671557260278139242909118987642339288227577147708255491833781923465299575089025493043118500908847559863589055380013746945735384966559298302694323764864119478684724287192734568049631922044737923939772060364323282250026408630801651367630729149271068591540208301586072072689167976478936816590951389050476901510962206669700272248590546771933786638778189401670907903382133766779195527226565225275875864882215462833997805638317687456109492767648072894987628939643046673993197244668559866208523052268079465148186695364084007906325942674873171437203097479773153196723892658874767421340760638118721667116501842648551570858785628083134439264387365640193435926123535933666876936233506718091365955992077552740495485974218140684106832393785495662913490344563914905485137581310881374172471230902102237729746531167306568706884578287822309948953231012847730422079027293550870472470305408655012118634452946959224612032275016631772781141759233248629180882087979251505945686215958606739355789720428499706933556743107373897604956845294014131663181640090288528353111418112590555383496771162745541031715898155582293547658905087100567487291731776797076277475116334080528166443964325356772748995611077233035532665368343861835319654700270176269070842829122645441644908374772361874106045744384793932445366857550893805643066220838690709225152137060970853204959501499379537024377539045867494359701871618409998170561142058999132766668010401329702121805845134621130612672241333228859325187796666686026400106214590622097331350575772512136715581728801421983382656877637449106144446096625829935102529192054814806807650116286509971137373849629071544752144122472456926282285512813575760898073696661089117167465622126105607070356698207267953975590661727273683762351491643139790440193654336434552766614270755578333518095823193190473803579039774007269617776062827654454669274364170169834163184294856517583050234346801136497050982899954877188353798796961369743804480631236942927216406617084077840955614439494261826487219877488548691682656079814709675114730472679710793566734309124795558417236572449644552156700487009872049708325004735329676290206229049500566248368584202332096931911304876158151883115540130814794684338979201991091817664892780611926021482868875979366241735421264939598505617578104003505965524377538245122501280989044028253430679163517096068043134309264462765794405116031714517830741703365688066093778710725008616396094405271587075969957367049547002164398137848336763124565997434706454460783958425858609163741588054350971436831105716541691372883331732272330558258891598902860325580186574618366381370941781168793622418306689033360169309721141437324647316640065878090557126193783576915104246240689106204484833395826023201305379752943851243127417974722523550384071566283760812911625599161306974770055747664714038483003047038181352187251677354120316824832047596619576924042249099738187417467400760159037634807311657861773604740541273135162320243030435630457015719423743355870205801859357653097913488660221382651151293268780348666135794248262343354447970255904217188523482795630974849075219367967276721039086023483775024736461488894226591592770502050803184454084037496338082964946942610606232792581300168995395525124885014053182489944483896807077598448921938881464172939656847649932190250673855325909907880581043466574580207097479073251863777749780038816553678857364077385551030243640243180358308835730528337232123167321372088145641956173919682921338143801569944005855897585549700365860428870996289816497939387736923797266071409452487490763748958195321208734496105150350633334124673718642744835065997468225645971967980809116332551804583439747713740759632023428744325774673378604461574475067327629988534794656763876501133013120747491169001994534301004320092616859494405713879817025356766248104340882109990595087104272705105158328377851348878207594962355999968169675398403712869534204195056007052016551646018704461489224433591213583984372895894198887393895170636520276663620854662443991229606021384372149986147286487521869496028068821418605977393349149361450540338035063029293914797511226092010667327299621371730618122536350034283959594575203683030450003020583883722671246518280454710328516852742280633166131030350645994371559576273501724314909443833689077499931439600397982531099348649876126375458448748624939480470675841483093069306041812817624693679069275239402138956220928602728281928060622661287101621221179929054457198941659469109426050952654596514186916322469624162219149236999341990468428784412926279739518507824918180866750817584486358947249491667229274356523420942793825830533791584122592423178724887327377004057063318710247187960289937832559213722080046379119151468568108339867992098106176568513498924876431335326371971851491549371807416044975628756124805090600428666127871973631631088541463262973426415210535055665037405184607233979794346718499030881119086974216624356560259562984656828217353637294490019237934120886583110026182423974421914055218661096753697800034862638235864048021090884022170468192466990355094948173594968905998132287229862470273361850127831563956606116814301475059193707517303146560704220488079006955716211006100502893979424153558721545196713622138739001747446143958003933382602034502321998668401071657997908009499394407857460700763605700800026769902843499211288213601390632133311988133600645120742726033658603012829700096500380996079901683948918473729705467143830149782858749089337484002032499056012977657496953593753432883920066902518087128181220880768976674526499123842424083027325112596459138964344905604915420923692482441620633694620471573837047504929700302249920077279157247151724635930042967443157982594571523760205937860764966424174338025574464745548745555305142204425208521783465569527284345237685219154513984126965371200233228739707053209294686990843147535807325225488071059759049474504547287357576072253207239901454703682211191702855505977917292820398655673908730108187994106959367846083300969158321477419367892766390762917737925715634893274872351227220071550421431936229658759653012540799197890916766178359058804788423391261441857620306356986738829086421319861694020032705058152496910909812876567151659264663367020143791142418109124253784148460277853258963851495913247858832360590241325896009024106362579216911723602063766158257929756479659213233492682820386803739363090980403960758948619695126226619514047866750778672511721581080414852001687312281570667838745006326771492459513096815825730216834939486331134415328441864736219759770427123153178881020830335346254097511188368563885744807106424096725617269931551653767803315842063049746887507683441439554519250001319752524516108219422126119899346143626268717873183802707972765456962825592620116708695375551462148612493852973121076758861422724748820231636902206546999047201323052837768584953755667558089834499733972902975446514312785387130864916830786497632284872534705321387853020731935720232595915868403551745539180992652199529348994071657671592145757332671686260000772362287704076660163553339602865509115273754374177281452428613580262976158692760216143790699794059356746916661748408472629599610779314316419456673173315549363496111261623271499624221129739026478601788486273107882920949564434951856512830352315515916761167505303723782535595362165715951758481467169334546840368305621205787620935562471710957820257118016362776886388208024389574724439704918707797066795200903831451618000376684828277896460794967075544133114796237586723671947637823814778325440813155914813803111530166851927637146523613783505897679633684454604566989206264499047243357185011760357566115103350697464438369603577791100725968576038497784474088524059395716386162713548431742878900279500025473411707707715432867303552747632204845692958353484789112122083733063497616286213405620781779199753100966635648815877412212391782463449755518663480891590545364556066535137842404569395243737178135137078972309308231861625359251205920397786294267063661861397687764120174336613608015373152110931724890526236383738608308387913491912611538293099856061134988978375119390724067749762062274173986153966463315137582027853549801892462696714424748432502493327571397764585132282416745942785069192389904099318303847197157844239572094404696261856072654194500063913063298546219634665602001267950794335644735079173227111970061566689675872078040434874959082250828289309773962010924697088559650201872285235476999773980718540062114508650800766556496807999313572072534383499907305792681191481792151183840783582795677251186797891370990001750667471110852268538679782452683760801564163430482934873363181293917273189963063665712982857859360959762661510793625433131629084541973672007609945662660398949276803284828594414266645821848057584145471762585286253171017938888367764399970919290343728558009110266757339613098164951544085870780011929690168192891669285344868577355501702153866609758562391238826456528899280970926489391141381275612094344646504136732639454841037622277325613013407319498963432282787499236774179929360236837213275170493548020177156007077568033230254894835560868835596209778980814265358064009190356322794030175454375752581247193756433802764993574692932644132653944121400556549238744158779012051675471893042872094560849654621726617781950446322235329124385805334283668425145177891839576043641274499196897788075435672515287225829329853507638222555039093167637625347835828263564543120501304396924170814430489626131056449319737425852964956444326075982823431039803971561568540359747491560555566860879192605060531772805106043832256828356563252548377554660652917047508965571625386188509958738769881824023333029154654776814176476869809111919242207369292444724667576467946454332523712105396413091490608506314541087910180384994768044912611882917857689317945027840551431680800472293863015745789777522690292990722508660023613947572536720886081227494609273048567731965961134497115688055950857910278451086397488043454744129111614170685764470361585975530177039540622906676612623414122055839905449898694831416346941628038516099296755580986422655233536386741030046014654205527642307082905475109771220241224031364376581750812569546116696591149769962626991417413990853452943724867844199933260209334884351701796179255260515197383863104437094585741263046653949931971896088375653685433993220953604383636927206882052944431832905712710445617570779645686620829958023660668747328640170616487200119608134596806456688187192715063877750428583349638638618724183223241089670375482099551051840797281458688696378708918249688730058428760512182298955725492145842530805825390021791351910096893901605182101905886269969522345688887651097900653940081140533584705660904459548062859789037028567276621212425731703927230633442270135211862752701577720057219337981216379275694978410337790263004915742490040482925630572942329720063939984448397929085047747804430102272916703571660836108951642779140000482611656604615484455619597841519390016798344748079373199158205861934437020084666010494864207501079416928120964758637333811512341402843234422059665387424360051849689146199526556122654880401582088101115878245833702035999353316957400831809183629073024706033642791681036250276278575747633222977026130605371885100404909620113017109000642256498318780172036391692149819553386511032346665813184018806050591830522323720344721206709645678285981606588880967933800763373533337012597550561711702769316416185650781153897166411464233213319742395121975321667378016028606517338806241497549971396478080346754433771847114496671617355282692104765457118430958437909450739405321286790602235385385352292541608491236274472719482978207247108819562007938946833365643836721794480801839853910277243657110593709312760403336569627109665473584623714111350233387358135231907088646920540563759018968831478347346221290167887886641291607211025031157138906603124675984013610030726860791956908253446932295194327690154628798820116086563535060850078831442620638924417090811212844389733470169468136991777034671259319537497341135273384796307439643638965203943771264843387557242732174660934018259978463318149819536417323750243750201560320861511139570225474207211522819796333111597342516518321171502354160176911466695882757435035069111924229791037538214510074123429228495505730415559152195313283038581367555099466028416695666454982082993237651768694170077939856634531635897100021250085667713660594843318126302071846908465333800496079775656935107535446801592032487183713023744989631450290321455966932157131598858952326691124929888720441691629813536992922864808425120806993085810251472085717735575334902110444359557906329939499684330008671621163293621842805571862849786592739663386496486345061400726622281068090459212307493138724276138393084654005888382097545588450702297988210871624331605369513159236113367398394885531969237240564226969796123966359198033070724818447039682852692385861870654802026885241030674884848114469842352319178352179771400277801926777822074550163013765725872341199379337074920249604196440060028877271978978768652502865067648149653413692540300332928923610568372135394365205186508195028632467577889680730202258465052127904233969613028231845865412820277951641111866944045661223883948251266155469499766259518779250866578715006875359324230443208898579731856848241739038093668869101809773020926506156402298637296448650536936176023493832342300779545341920315575167520974030788680194504353123218175889914684805069393076301821849744778525294629859751362323628882887709201462121739235095594056397007718656165030121253752118926228718130022387949212569113943726606909251530719385642649086884028215558417875102704792209020472808395470893647828560116059727218191360755234497298738123363350694740242379980773523194471113283245008248788884243921238472674477587669464918786272459192647957170321165362472242205435592897887312136120691842364513215901230429259469409717704017681172258672146752488880668842897007543858609063858958498431182097315035285829295328056273461398534639605786482414338185965958531917939145374090117161766898674128958512961600399804845277280148375718881031917099912454058360959026354703530408591444250700805779032328281139368462296976838258506006660436462811047005646595256554581828892244297500337361312809810102216654538938360980331811947820039502370383672271247636130124376963667439269554362439108296717663202784760355414761997943046831646914142579261710277607378756019312176091238844678708979089635708195332092933839324460054215127771700763891735597607949834711242957611536496788441590597571113634193617853917979292209051600359262748197032818053830752637879129576474908946176889540399116705427523810265966468055112956073106520415927179803703911748867438834086923853218984407362341265280194924234963895668708274749824118761494331317540792779406931373518899415442472881499665618031290707217353674498980049557882115856455085386063722535123193522406883838249933759009590154093929152981684435709378936635743804201220062517040942069341491096175359545158393910606461415483311528230165536883560148919763988679704602979853914240683028857812911345828932657977918894638643293422166917047545033738714178919714752543070708502001570949271205323258052780205980667668450381155312864862103683893999878123743657750118915821433838715229180145174637529799058178241294030801142641142987923310318079718161120303737904730331760225405153686206165667666824162751167616357994700011587166276485844454358644741957981418483534275177989876008888203658582395477841134299301055415755354937444360042789931043613002115601922061419398522153049502777727279209241447495096817799938947634504035423472177011912689082934983768329450488270130468707366710547226965487407377162066147521122045857121807121978497611015783273888836487183669094935922680552731282188406418191849408141456229660427238454276014029870363352768024693336445950594229990998825616008829256459389366187047665082377729205006504543137939835985904569219754881401016645532125415244164356120658866976094374956986026436372907473783996586088934113376568229192604444511391279957879585445872394375845688497175056086742284063504396143774561412719111161878274089737902492003708743897760408646185128873955047205634254202456209106692066053347325160980354877715959325553559918830627702402184607052301861176030677307462156378573125654967279621161317235332763395938435471385074068173491963259241321684879439512033304382421555418877884842821349678161034457005355378013314962500702705794605255313894212240509116745657545139989452562049206871102020656773849245536445587778733558913459117250283121205427496487220279904396162316878823534156079406134602932519046525643330475733976204772821220013563263773866633384769732346566644915620119238333839941166217443104857786719203841256340425542596030756023728886716303801681482074122512144127155567159861100859955277127301750440706112022004723171052323644051175657812217653900872656891998943482740411954064572753955643495856916249040992255735130012943143526842953796607032974554115384567109746012741136605679109394726007306490065214059583597294934918252754550790275451927936204211707989627285124087890323273587410122744672833511766761050383390514531040155028643927410572342341720634905797506728538841423443107796100291263625156440380796146519738441808941618756611229965808716730549740539955813469683488059708183980197930986983764763763827556100892916104729712381241724412435117835084083580534353992444879763370486049157715564783511161492656482123299446779706266534899878992729090068074291245842641051592692133670338007817749593092207219012367418007563011934920518013680065315062296273160269194211655540607596969498256859672254266849950771457803785206956048351667972667682923385471740143342692765663844333409032898901278977948913502811829816121571346762302844261258031939144368742373697883711210903428627067648088486689667429044309427024650179259324390776653218013410126284840211277867882026739243642167538595234207938418287166791171280791403514855220078358326392518763979838055912418960130322305228288955765033644434815506699064319434183046791140149229739722560602185575466789377649011898470390837757321660536498434762295236134612576573597648869915988662452256654479559384274730313013597565633745482619258072308506745267372042115936865009960685806961493101039100854873745803147433956894536391893123280780752572903107724184621054508623695297754123002762643349429678703679544713665547065591419499678650025132691108851057310807563685534707985228156316889366566605023471004573891837298294563204564089502522845568187546863140685505445344946765787611714530082535468899403407770851155477153888908239856271184104412878127821395987117218451076453230532338479668808336491280860876718605805860446668126480297749519425102824119796342969354695386518646814221969727473838139221318551204891694580674188615971262778319953134822536227736211569941452805710630154617999862666323990673937117001106831908115340879013013266476626847998250947125225567211873017761182389795838518758769349708487943205649258940719449800374635468126307757959501298616107598303316651625931448153104202712706602250478033743497756122690301553752357760479153607358435274544839854613506058183329626065627386349884264762146345649217467665172214021613057043771493665644471681872292205002001279782693416041242037447239218225794230318864164329377361471878897945753169596597197522209466666611056192759869671418793402780046526327712938468925656526129512119828049087622017524743218144775248415515578145149064557484682725282359299355188265789581083175175200878598906070827242054890782966446420542348380707330279314153488095796761303753888297775138880220856588183508504949680486387891300229890144223190967735051069895862051639335459665000125916661012824051651097295087213827479137668249362944588060191312401642667908232948204742233872619467351357515476632266625005091994605050959086800557923892241488339752001016822420709849164141364151092500805054438302849768450173590850616114948488239939801454552656471608333793811794470652353009561861675141934568502801330272068594938907463220733398694507361254983750771292411417655653571067960870347813806977920494104335636204261119951093988846472219031694756427944181602585752036768664258237390980697875518888591693997180120499771459461032605561960586247669260952631251214501845191561836262720247920923115407911547180374654194534457499098978716119931134170760831936330346290024296857033208283984036418324049512186508680136056042174116281196194801780183124591249251685332994154692462526269323739918537380996212165430206081005830972536027495097445941332000717580919099399217575251484604542337784621542432313433380392060570515901241598369056616305229504227965107356057063048634387112797355395151039238486448731201384203029366781076195133313971786438582197033783614668073676519549240843450894061888415420411933724778393052710207374249384346387852278834626224155102504031051886746824394653405739407402375826749756624133012777597008684116670647325474693171615605901193972925915212258807879144287994829911246746598729638136047069772048368762615384008725177112989111983656267312767856315874018528452102961755445034648394330613451307791501355746532516635723345306436010959060024057016197472061491781361716801201783279623746611325750608390178655733018714798028092282485336863706765397505064420885786981566525389136117808091786613050377901788816717457649248911474532664180856354037723668365212832868040854136733191598404060187731656408679885486972769690167223556357140087845753371405571693972060198213762322089527835042202391433298049899337911838742864226436084387360893507921039900893409718799433918219374034107673219764145083300117847056470934921727863918695610116801908545429796399094929816574798503826467544195591198297869348931075084260398323011106284379486165792203913707573901212984151073065726489391245324104386746146929433432013204005973893687132182609037615677741181525918467486236142803641057222787349279649566624156169333177884282014594002040901234593062727838340275417021343303353000543638010435751284985233482344587150911814791637759464025717047154595892354388041439181777801734319860832316948648229855937566298767467567383492239152402034450338914919820491917690791861764823682452564515113879561382317352150756983233262703778797077592188991444688076942742397898543458703598242144807855834289337897794087637585654131799827379617344141596176183376219844293689949559778982799212413943374149462884653391348490468443397382943338133951055430146274994960351361758699567941991939308318065201023107966690501947302724483620438880351528626192520229535420060298881996753891920513646151856751415425448601591355711327891942029210055859506126239562830075946875450135768500187749320184804503492127978882688447725716700321882505685950795764088299424643676716324269411029572222128436712671190477568332443877165145416306545146687669547931186373438082433348087864175311219365752621532237231890421843335173743298146304485083869428535439602130323342874709287576997868712352604956966157201453544355513990521084678177033296556108411527535672967222533715411369548662463293566412905634678096579734466672596172881496530346569604609255402108521534006175669916453555557411832996184940390305732880194421312626911663722337484273259255979078936955455090238268437447265839223485066462825009629513044883786390726812025330081984164614296354607686059623755787189168149802753053429940466945808260930985578382127819408526764969089401941305533259817940257881246214399200118897188529485560662651845336621253724190344187150916923122214515363354082664766250842093911312373800615199986869501813266547128707942948113947913140708456598940023324195316984118832819806862723793704731134307142795022166852160639265044721207868511077070656080054042894408862843645431172811126837798689821780848945963992900761530697827286934313815481111871983044858233975729884043397696194148221137739764130914851511593646481502293615815791516955479292286513071020283101523505804469370118455865796905708083558527519772763821570097436076083555193718445119107315798312901897448591952641484918857578444790742711650426532934786329473894437303627024060975416955877723411699405760084912939538321837039786455690202169311318424474349923018470677250019217609343891791366338244028829247992603739375262477370722559547934268329646803935737419504580414987744175337005899582311951747241750092791468567740412980793627437892479525547350896570728114557009638969944821789110417518370324787699002038523687412748171950421864157537572331170679051550598718359869588786116011878280628284599829250867050926087803000932560981136389708003132564501100826074869362625788266442113100234406159540357483341325657541480023824724786838320466854832595780327631684528221019209492964665879645950925293011074070626572117905985158309084296139798179842480247001699737098784849584722616289727411021238142219563807973068018350202548322222191317028182992372028421488338706905620600765113237694644711511198799499576775717972992389695433653215799470220605390615677697690683812622626798995534801443758339427793349557714858445392328633989989836701161233021221805406313599506621345600709142575704596441742498120234067929764570405838850947549578253130027309558195872445287504923214017677602724552288685673828790747226548679841030618425180962427192045805004154680060469982265386010644591844217386814675875927929193154240168312468222959346479533763931743160005652937130215524615302885587295110078680680298647140455785005712841864738982674364304395621910332519094848762122407635559143513818168109114370323333061064592480037791614868701363886902524468932694971931503892463078712827344016731819684838150671399044333215960986643008011260900443497862562976047635210637784062177224411440440348707937327055873508797619310402926279699412673459542644583101902948998502305320282975471644048649859947383381071955586100366780927598825587624794057276211531132070710349721824849642608691975925566773028034998470715443958408248902053840152610134229885395406090993719917635539722206155307908787761447490080562785321246720642479841690277843376010556234091229897486467783191179069914758087121083342023910192024243800717757012277192507354004741220704965907212751749105277014513758654907945641889635641901564783782511376327584407853945635234792162865605923305785225200199796569541417028342673451105279347560204892633391042022407913589358866813997267568578306859682666692776220546805458918761865223987406575589853282783217792248631263541875642976470693698099034302398755428623160579690274555983853752135473337761643183828078974711216737326802820777135922704127745598793774551651778774161453265674078351731860979422697675022511810507431341009617763794146408517446273853553096532661487386025888106158110255146505094541879750707274148192463625317822824489295165799866206114179660853310589233198076891517982805942463006434214325443642052644343471490815889212268306696208474686957281759690082564932559078965463045600349698195544351726164755539235447763988332520692213846491820209954788771492119853772920049466907309710144854612765789838791559834046695792523438510248454560795978860095037400443375460536316905319849255474680428391648584444783632525566387809839002883647676083586886413901486106821918449543303621249429931212253690517160976321742970710894870055291610257021705309787223776754999994680650031813160391035737504207306977281829269367649661245368846904160565506859944574403650584832174981056037796535123119830098600673838618982551298114776177762371710406012863430500854336540893570924790033491444954763878648569330095197896436575049909595417829600282001582443464573000773738442091478858623613038906870916016358879566464608052736073029367425802520556720478156434840700924023803962856659671078569860303085384689954648467295499488549689907334889507152740660878175890925451417503767848020810008165629907110346790039189634767588766951180694112020029527387558674344213015159642398343497014022751330003709776147453028767990769631706158603841821847906850486354754183537201113387784916669717620450669733217742687419044633957358108465848228134269007932063343766296399229680196390743490544897480610296018801728312000075794784809991254868211979520834673919863123402932616415004531750220877173036222645295936927745506931062956822105679190758928835100858363836138718709987211716473434705529424172101766517790213274409802169454578383235170200814356422730820499190488048386057351330514976310051199598537021992910498565029142697148158350042572696017666315684584588187344678481728981291122239303714064784017738844924849426076536649281684541272992565580249404311658300546123526769102238612183566360232395186581660955334021762861803496612249344215124441613916820561327725754698243577351052282203123685754409722978186418725218109534854843638129387084188995197951025799322800916761780813407705876711682153846235264824113146520271864709901693178293750606745569650970873801726180741133908929723487940208003734088786056084998443726595524046504684332850169449446817450180083595850685147121196405176353834901522643413647610727778557133062444374596635763613055012538875983667679643173990123450827389796933255419799844227236889956899073172648887562258985266694855117776131211538355818067092511514815273011445713383331676788950330526648728257146027438696039717560503530551313492880582055007289523816509951291622084309486711840428107544315069173926642155835657434728807440722417146352217271552115156155249327809779704389023720783388093417723317800511945542485657746406174812460047066302343637532397280699148210241261591765321801644033523127615609008309815938912995659036514203762559656995900488818388065385730637938369614999686916369783051999773020372003217552496084471535171354968392951060518580393932771248869657408413156912343441792968430076863189542605396347732464604832137228085287105585527680526289022024798197803530068171422278754680072860377764545262211008564456935662489570939526042380541041679687757813304845879090525597254728919062923507596562641712203470940953749795250679526122465380780437566580578075263483191440281281048996592214214458070053571535644493385576732580283317630127356804453028337462039270374043149144785385534399056024833561445185576863593737377334607626757048167610744604991645696319712147620331463134866020024625278436443671100734262530773771926719316482133292327878341353098086594193808418232201722994911381871200714013188752777417204235374170023274420320440882728969129704195340332189097782468203806838911031627097845271598941074869630035848155727899870122322241700594124447305501415716454980545679426763819364426406675094211080433973555515809576339265780536455323218411765241893275095106042153579954854101828858975772577833034844618911222498136509570868347661625897899169121184493939726729135614406579815608759553795909301195392137791465807592761975487728188406646125788766044665207543878711270039415449512973265014983481581882357180642921449976430703032758568332784366819835091435232939743378892265246375882892020051261062316959660374267577224453319845448702221724500935191590593226117304039714075671287236464860857377469842302911138557667434762364331513625690629681120343950837605304100719010830123485746121605902072528907319568443397057307914328553059670394088000723479680461192254925585665529125449247630617997993480095919643525721571688142948928927179935839054625983419858530091261836394841475227811566491242519575129924945538489299301719775180942455554265862468705983331298413772653379579183833539334562937514366088863335597302620964533745348822147282083521201968734004213588796831353655352606171226006660127539962060045864509522845378201558133913989648901653815063392288362863489969822123741950870630570815991381884328057073756900548933318070130294768267924386344925549817503131751793158056961177899355224606465774076582261981735849695728977728165853708137047983381552022741199588952707140748305760016579363675039306279555587304536491429713954255842912476683559786176234520608563028849839283338367586806372703520402797252792840276775823332861545653911418999390026653780943291068239753168065405067617609111724609245239608397557120581146281726595874999047462635387905457337215087988353821079817103566366517676203030589851255956442149754455588612590430010102595988675658465605287632141786852375315660995657790774451057469568107498784662707523702582098289323915699629090031178973409684063953541452740653630740530928662062621517871767121451210286094847656071928372387102301505253866159314254116479459622726493501114894778138340245853153556386933263754667041416465738963922648191211985565358728515457466334931108647216792933825649461826509396700700164661772935569109244375929456781927173738974385868130588908237312007098639693118468902798556585887652777192093867961641170491538929264563880039520094921935258747075569168842369153427933941310137680408234090364902039124467529641086488633035891692066517415628867919296810634740931186721892256994402351806174850927467003940838767407832516081520475286403282765312403696513625042649312071318521733474114111509601799996701005735505081534743515782764423520508250970544705556771169518340868310394548448656380963278072763022742147901312695415694166469555586688526264446480668791821208077667002248729729467467177141996067885367679061461623013337135554768117912737993435552456055402230974756959908136322760709454983316261432793686431980297718029232325847558309743885853187803662499786497876276421596129073292714368902790102974905092648170082157344506175573360060626708105369136781457684151424574989061888411279740782603136947306756125121521448843987764113051833421460162437853864295175405740631057079863152184657594143748980200861601303225673462667993123826846525000725486844465400697860447351031304921889537108581366031887797245319119981323112762950126447880218868470613537995600929925509977357064926030400629439055738950804172383615251455950583737311801315139912515167285954193815566313825537627630171217055926054763611937768184642885096350798847609922884914438169359537333720967718721982540949039759748692960784364849015258962099822054115314085085673029836618926488779540779332654213943099227913533518387278112299150352117813348314887549192351799909212186134782190502948645757621524434810783972902680395732607237037726335400274914422933484958904304047677194338311052185844096113635741331053446176137414620665044739801773198973897404005490827427270208213276505267642736333798408004757230783310091337835657306729320622465937382364210037549571525404705064476334567520293638763314225402102791041856486349650832682331016135229889477214703670724689890004628516906632481117260505326206562633345567820884602822032260564138425123293203659725953228637108802878485587654591492100488053117782371102896041341346876482998348702281512449507114688309493033768381826162396935692635340117547891004905928526332778175847219113044992911402925168007365434948527562333720321776382212437934343817712885517822226165381053202119621337454858333098648995801719024922573331907751654798120149362952770139853340390687964364758813279928171492341152911657216620635236218092687258728254227660954915387359798900095594940226801027305395198093181137448534986855035521279541964044148483153439489045353203817516227327588296067374337801247561097433115902736217521496632567374103809425088797900650730375133064362008756962599008955657750745688405673759196459774590023809822046094088944158370168028863750602964491353342093389441584261560866608794291045929610474359644639141341960609918829643824783323962460193414515269380981488516936606424576336219383278299398699730516327791298767130254990493478701203468880237565294561161846551487221592232847418178429028440404716949530947970930114645993341480501104096658223285579020723207668012940491568943128807613112724618211180300072738657987417772148343168394036091750076738231899659640860668269930793716564928574923208279334097816781901567712724642568386224634826192680679159872509074025651395059857193347392803865175708068505790537895459284238385598296020609120907902411752230889207116780198111842586681800703075948393514186844451615278806255092477365870834166594647906706848436574590499657256458955888781753119510051559115815981263224991071784953379113246273956712466561559876738432222334608153651292240551164104568112864213892895321348058036705146138837561576369602689819998470301927867059966388729874028800686033253042378316697576836810535557342303394501472815310163671822681104246994171466496426709758814331286257741709229317433531483194288467715797718038893908663407328080577121743263848135189936189560600196186737723413797219769731768511857177718441352970807539854766985992206525530335127414627324863295082099869971691298314578224004549989130877557892511723393445268902855530126130863425061515547779889303588359112516747411425172900956652871646331000160339249267219555541537250282421200471338472491783360182887583903318341228254554442711776004219671369246352425726049753497638301509129376677788653584810620193544293800764719299484911770705898896175978507679612894756110299864262813079671782200153553955604733411283283906824789526868605324801499446798476214119547970048853044829900647107804834208549514844916061925483723526071816145995112388621390703134587726843382925756719605928613243853881041752375627049304784421573893218420592693440707768627305703719728483712534699422757585354870143551056573814748789308114198362725266703165318071388087514834508897955814664174263132582454707240915276743941376225018823914502696204522159298257775437087671818779934670248445801342644982957298695343240374103212846169690678107763354117821022875699430287454995205441420182899385870218944819145833459593952291822107337230383657224556429938822081864558069475624994637822568711949234831974840637687466902397048318048856261335397444641404553821986511071436003370232744940616555189589812060354620374179283053048810734492489474218559927329868327144917569979240011959212166071003808694444417859708612573413547593844298213941920592686582034328122380453878589252504969454829599624840493266257445242618569987608956455925849393627880259330250313551795352709311692500890261706130713270258044316983990607788041287329106711888249472500276506360611135119072110295153609737838470591289274806452875460177221372123184123024346618949354350675711138152082568870999908789054160035971019951970595729119689845380985234034086613724692886471574493740080030708473071452320138624067112012244547270138120437770782485275248774461469525310211653673056254288584150986825652812794647400061008547106861198821527223636629685015319628929161307537865163277243919484225401842811689256088442862437668000547953125077498429484185434658106461691662876052554428873673720756837196309711291947683703204661516749671910208318399476755004599215717808441272442061056134117680828305898335312599111614960957500201887601243792551529293827345666988391265871038236083397490416622833690891342863842957044487667707075817542835004287350803861767848137637895623875183454547206314392900142273100501377976875107523502333539956287845699726472313819474571014916966883728304569941351335179763166795888733888532773108391322210016942676254202042329418457323739064916966836016390025727027095025893170281580652187841555302126458858057666353745945739892056806581840755926756401552661818511027666364779074673838584806245409483734439512660018392185182808719131561275916059353403678968878578740824759449311259759062866756140167769048220462819276289918104224458279061465943639707944130395143915029049691375224388696094828960664104899738545450871263945998355554509127891713038597968914735729341954404150453556952054297101966447230656055662168861296188263295883240942345443517353559681027041120376135146314027346128805394862170363188969616676246219330510321679707610875246687817328271137965478691512834471764149046798927803691500877324623410940227958125604462806593589158931405243963744053435477513208914994639724053727923796324937844990871422559259472150072981852029512274613775756004297774306624408719385600067816342491061735115733320557995870331377530906611421703439197842411759915490920137279653160768156234170513638154220171578778866045996889344832528476392437670478751963577352718256896817406108874589934820827209541743983735225786163098710197542493860568168429203242102528627885288386738219187625422871150904917568669583462339083321535752003877402937347331691247998325657107113015851823458422603791301387941719174899359398061132508946267266702340358785531960158770921969197631687166552999869177379742139143209152178039373537257183177694286925527627074479738291362901652629695785674705972908927055521218272755973334875882187485545330671489673323882019787974959731817764475403718241968652807845134772568901499690416983521228997031222735681417155574608327040052377650689384099134754111934924683022115370526346327931339669847039681296549258830472974854650003146330644991622257162727683914411347932012956364495031223182008218534717177886100888200189384474894689685947748517024605285168015042221083689334877264193186192906579400215521537127410639035520386763014976760286025897026204418173532372876332337929528156356785143720083684282247516578223580783950151336774260291181236254499934382332731345742979667097675441084345572641966753228534588677492241783821652092340897959446682529418172573522576572803838924821573127271245302343801229685070231919755686228110029751435963067054588816726979545865526867317487703647771503806618187637623853517616237820807477482517951598619646211685744782712601166604663131630189557004396972382699493862534408912698127987675475554790035413913717380375444299666384848916560204265124564783001861380188991693526120430695932328273194415291741673768980185104309374411230535817184432910527147371391134249237359740656964597476635515644640519487767744409045083345029267413723675136076164723402706090193217649084233959371117778937506702655608265119087174702722992197603111448879103570766127144161562436886836453209189954508362374010897430184784763185931956024476193057572277458864279785858799014507433952692094026380802880811003897349717415933687943006199633964540313606375749299012925178504382545497660234533109231627337639113523993240009056145455992372586971260549973461056516371667832454643623771161695018314626271929170191109438246500531876887219157057934164944956654629104879045166048375585432350503811899225171074553069594732499974763098478335784015061891876415227645964910661816282167264399318946046719515868801219233239392408595334672220033514524914850180120928141456056250243881116153698272026271363852366889541638094973842184748763104846952673890093678370344873246274547102844341568106261836316687611253924360576778787490278973261207551020701540002066458110885104362063501504062904878022646221643747378060113877355768567774019788363051473802261647428553463740178209178973429704758939111641598391042046193322000059665374729996585862084848457207966387577473286742574179652296441939230661221734138273049227014122138779222874578008761960362416170380860716419779178224962987318248785322976858816874899007084340886497826575344799381378319490881849509467190039059015820517004139013039269991707366863831464372957606017175151957213566699231216650025722159211351776295223345441378441159008495108983818192846538793304413503083682606787907877289743701835341739919593055609806663262806650160948718383712963971809212977997070434702279825889347633393883775106716794780407456221052270616019072500960194524813372897486032025276458593503429348236405511971906035137500079552584516442779732868091858653452090181078628078346385086399713356849413556850570598479139100292929186669343530240044474170298647574654330513984589530151057831333527800308506300838496019275113823598603544506637965786130294882357888918009908266410829492206446855365958914635652154403341412904104315129961996359771160464887834528111908697211434852332234151939955061405707348849265653423580128478253754830545393054147560222736121978237759014733426542971355119824938699961425220251564582573815143976395849241386573480523601365942956768979861174603742259173882294148914103183877383491852741248356409298086221546314031027832238855860014657329832722666793335325298843203284512004731066224071124025854767398901831146159278317580547971998504091317091232119636301701652044070222099277638156687497467971076724608881073026225226044289335545412607829881226344368696519904515132974475426734355811957073173412170513003618344157653524092528895411277518944132587115260045893518164518452441293574047515220371616804097185277561436934999926166797632903058408508608022762964931515833761980464132808957854511870499964246946071383509802652580250903740267012951488996261402127181956292896355351383421999819714681860325606809131696871866993188732921903960304596049549732580006421987955640250986564174767716610274373313978818567227199636598600215792300069548282021404407617228892695142808339366046743205929532617634132402346499449469018694643298142765710395111057972707813081287933968580491866352724091169060964907191794055518239148190525729984433160088220095869768918254125873632280302852990199066347241588633258513531959088804485338920844949222869961323376330464565855714905345583374087321668928135310097513703029302579827407333881674269507812598039149474474020380026293728598888731655590464656400682640681642835759634437913750966786618227895500041262411195197363263424701712029562584820157316505795153756121517528253775040662708645289746896950042625165085734180062090145151050316752262894854235713488557512625472708667536656075718974424041417553133221000687717809097480448091004047342073019707777068087131851725497540653178749969136619462115107927993972392660518042906536398281312688955878171765826013283988748180038263779920011215638288660583142012862444654862763709267797185105386565217561145580392976998960621966645314085311248845736454816143594563003412567877659066952138414946780692204695964295748191403709371327165815488118917259416924248182392874774557514539039129711108464212943883106110775139251867021216199366135038933364251400281355616367636184264508083833222856771216841002258870856038853668210221367860039204895277754941070579504918633717330063685123658571717683192173594068235676927135069718872955800149194892941859857967520984329324296355475399477545133508379258963932388696784730791640028750972326968569869064726820759535103836562318526409174783972062716664912103495677338754570497361155044999091116820270950620369169938283619645749711248503874178130703373390269128140008584738436346567558183271709496235675029559794338720500971137147141964850644866818751756886094677989122583323186485135262561417547629252405226963726856901548089238564876484808946817084985221225658031157163976696752984569004799296008269714320325647768444628136940276607391607412692957057851704850142883697405653729250128725710583674114546946706771003980148825450160860750744365428339283407862033513721658121887306768489412452354272290983369640367824626926169130353142445459455166674772573514976693190608007818761275750099779407081272117572218080098789161483605818528417164081527302814021983859040678763820827299667017384217095614320415723075001686292631815666602029685830551725204226632991460565810935858802618777622779538652180269800070135485644871721841696570012404039230942283217356953746553059108289192733791592713086595049999441996971225796408053501619643225029119544526560016657229790207401908172968042332841691071848728822447136969021352279257558372591795748901474840510939976513483897706578760171236444872289877265918162463934263693220064024609681572363551799801759164384575581909480674917436951388732813743892127408832953929667941867067903014939670894501810602040741783240637931690696370057311962712938615022452696812994121206459342536783964153700759123680523462088452306623167570953034425503442201878736072825136250810582562294361638514336177854313395455190737767135240373029572900485479842475794710210845333375008779661551068397890751786571610442330698059713507190218105832154202682198918859607134709575359627292651311693684033228350980535573874650541682938237611133133761993814853174404359124736950311050835253215048575432198392617252678951540883647815146820241909980699600052245566990293468134244273684619551462457921328553232597996290947032381323208225005979511534000392666119389370341580530401058422482272811595016950314817903845140085768871929564213929811946875087216265650867067623699624306696393608817533122317042837127809473951271240975524686898951827637703183484428057687613938953809399597411830047173321473191417392009295922306477947051728904603789517373990874203106106699565041231259929565432243181546263476695087741110521725416068555194717704025312884304290154781429771631668939364975290273235868712586820591199697173444561007294930678586322101436106042062149551614232100186891546337456536044391079319169534281352127934777853135395291444397613795624482399247659858203548814707420809708010700708829721694118597924749995535175893738328009479104404954813045731300507615440687297597658198407855081764917985784435760279748585664783736898659420452710697652742095595187266527870498912734620063594962762009342425059235234631549210442031048083489291054396499081192417150745058866593382185554533428864548376394952097857316082780385947880678726817421441804712391338695782894277834551862258248435615850099509881012680440765053284770621516169771000555288886939355791943823958826416916875188527650023925489424400568298314171965843259042165592894432348423456573023537665107601080105707121264243240797926634618095367482950394793845384641398270492634050744129021476430026327747637289738312860853594520600921540574910377940188568797810794645490119082586718364153084056068876673328676023919657965648411528221236615902718940480166035367092878270783229042143542885386143059429083177061135901649019806268583985468501295978634833547054939752296056845053307416363754143753003528782106022181548258548655665805830929303088083478170718094196335958072604298153585514167928731517057339926879149119880222981299872034428053631737432749370139155980428075541003577735170904590747238243547861146301619217228638770144030891762171341520305454145483181959587515299990525571429555205825336537656961213792258173605003386771891180357840475177494043962119960742734541205161271655260065441257837112814474331407237307791813822265296523655272968751508676682924179369348743015226198310679714388880521120143090007930246297116963176201423580183115372447050537276735935346004325349943437442376042007514969877280990837029005370420932760024704766401777215679780510310581640079136716690118785637773103565052629064142537813507042659322880983266721396985224400256571108174037680748768624685083673326331349881939182469490272422256019810995567366951692928810456748240015724709062950673256659608760470855090031282990203402201424412582084693484213407468898035067610210851376122037459629671306772206101888765066768299211531033361717949150446941737299859500607982605093021011834739093899876445122628346851015077757460506579468566167532121134988262103069399049824200774934431858669906881085969871971939470212975449332662307628556612102830580644596864275053943058758207258921644575531665709074952678262413459336781446119627590559619075962196247492145164671151850718793986273354211009900564203502788932155789625501774834847196148694015107167399757986711253441777450882175592187636618675868588998530642813337034094095603130887692833855154977145841840725428300765939681451516611253321770457835705322224739860965071270354878497667110399166426639254511562143844644943326263597589198259409244861509805601159053133750365023251060878992541596816138113023283801094976801716441038401328861570611548936799976645350619411505680009831935862814201190305181018612416513495684945213402758458981046110328428758286101141441643616795127337427785979021423079035658780156340430993924625255921236268080402027360818019369370407010346819889922135289463341325373263896579653701689213807956334820599735103723311220435226976245920124629686873485087473874842366046300780447089909433830489317844756423700708726380419625771470464984189130673665374623977356273883952407130907016189267971760811346541877204526681416125292890688753478380953047888425978181738516259044433467570511517634764655914468037431605949139339267019440559471563280218809367435139910579005430351084689886510458330258514441230144736776768794241199898563899351302847077623829650009153193390424357787945812203400008203708479877912155441385884990295771919231409765194791324575444453223111758540688030280175464338352120516837247551981739572797646718634120496862567264152434742905864401939801828536145719314318020142706883526265509043144377487808582427735840218858746352757311324137565723146653304394711767420431895096845659335203070959663690591243957285859759884116395244946454228062492921550725549433331191744021568477806179977904218123636651369111956112330952399879644068447977364667693517193372892432099703882691348883000194636241035274832560490039743484809521412478215362850656820968350356266602123633008631323270124063766580463641250982594358645074734249444790778081942881819341720388894556892563340481581586900801617703161757254638350549574529212929189506270646112255257962473049234146416961298839117014569696269497184539626307079281222031619896353348928097660627441516112945218219759293352250745150427569307215596127221299896353618797386313111159225273600214992153220622421012010873331188905564175048371148816600449334797508311074473752967071337630409668257495182664558155856073850446305844022486879134910901707666663340555144002526692145073210362642678618822141462760165881115243558261911085570360287328114333249372881510511053954967757592537516388112569581886346486755974532311602040185554975152969230742390109359283831686447430092418409851593680845674861104623398461247314882518082249150109920912964055591103618811664128773470260103681178251206018264926334863488059583678033029854480004555999391787765391688388474720323129183972983016178180100073971700916687580530690496847063483068644413983924844439651579980221296149071178344837309948115674511262008247388399544692533339748537545661595838483538319985847624707111706054498483147346775042556239926155805207528542125807442806177284169861492499339691463165217024302387924170517640281571802083784152905693864243576152358911738794380026985485940302507446709475799583522365234138783021055143289522316293909417097432978959406262011401543764526506431107335496639549519051496550595311868012887961093155650621475103439344859601133493288303845625973528656326149563622800443600615333018385304857509520185821477348216255598361180564129233364334253547442697990340751374698414741580623010888890135471336774861762459815747340290979633041211620424953854258515421560911560433271942480629923228067184065932266894466660613032504310747746067328745161226519457421725492034462711597906523220294505666621036750859686021113518113719855004863838898192242251826806250859679555627685072663424756155081916900306406765554493569319515249965830434739597403484665048763446503591746793050045825527806244779190185058610563797898123149721508094006993660932014608845558092525022787030636353127973851790576643760877657244435242860928196831701167852249796027486983239389027513786903587733901037113847962981522856328440244534582427655380129044927285637274637000963825306668310599391910483084908892768014405685109965023544953429733220600531631910257559677226942736152073796335304462900342076855300866337807117735518405642590965555592008713153730128581133332410887011356110922732379741903038392947471939376497432350041952260889267008369933908868563784341126821420065889638259723659363445734224023154377970064321640106798583110159598858538436215644343922234821907299715531087127832568167794421906953175879394881430332283069795081029926227534450804367085787895943446864332087796077749118815993835928346122236253007442721491570946536123920971860970556182190645581606069761084662547360808976167678882385663722540217580810928028906805373861776776349687456581663919518327811689294254471509754000172005809064591711996275487354893393272072420033564610123886040882319690794408611009546024084350234433499861937900587774293255781928746679745184218706207992221260696119780202939083919337601214787374201130560078592364252398882864560110755575510323454436411843256336340137880118031350244079653614163341560301005541646523156514725072652934178713087459497201848332124970133467578831881733941140121669977631533672260803755560063866790809102934606290006246058008938323649960275484175625564515753167946044497901371822318580626418117484841608168587640249670638524058258939402099209366488780637204699561150858857642384483123960633025560538880413817636713451546918388588920829318779152938323788743450083924009403495351334876279092081064646594900010823476702444330389970072613558830856406869547164551892911135922663989904617208470727492159801119428737140748306481382318543348887619424977508714588782439330142589283728936440415059430317399843839333634569065492418764254165096455101737005274749486062791759600153725826965709304594909969357945651925110157114584540817364587809799485450908120076807581579611030792203981599347204613154961212184438951991422782878450932392298491407496664307046590154379416388210484148853313547844883327294929049272946765443975616318197218086943603298401216360549406543227083426975700473301567333841792441806541358589202273967928856301857364141551525941725396043029366654561257547389951381919347950196202593120802500285982154034565152382052443478199968862343092512228353736963136737985975587446305444571915238495055109170597540802178489361764315661621028437180503488837189064677404487847960375170024565358502721034724051668354012433211417992973670941092110432638920511800709854177149649666619270732270326520637171272545005393520086389667081151173713330841363758975432419847229335915944977298127497918979862983611485418443463057402417089130868672186332923407547540699100835756974332358232760892101251555091086937434232738708697750489307594657159120745768101272028904178623438675458533493740286726567982320079715420691834748876656648887123892898930330441428821168941127338919571006799857665913959304465983288083698393941999180683692074975467785865725103365731547945798747708496025355285987145893125219505611900020146647242101584745650004455584836029560308307027436700258425656839743816694130335370359368692303896679326638486334463642768821951710719579679608841299622999323673904666156101257242730307828431323463306371624061903847705314976928480179879006773996351783307182848681942173505852248945387609183421254980552537983202014321657681920090701778492371499207953160227737938267897496738501980948973817180806859269426464400225296127920834914902149222460627851751621820276645039607876738591858696231729345813660415952897460312116643279270737540751827588288479061261820607138265843353743941689286408260544342723568716350987237444441769606391634474672912881623988819762798311306943530322445954341754278016655307316571781901391979553580124332918731770475893295020585067483859647619635279784993058177306193920351950076683588081527946344566878288617360566610194987350082982152594849491256645934075442591916444708304484963102860393592644139021458741081145426109337676157503862600281706309514899494234534166337266650177470136905502375672180079659210803000396730926380047347181452539020428626632658721204650805948418746022120454030996686610203790433771572075820126698370407181575354963048037557441313194462432722676099788421975537043946282413535201662120112838932540551056083555550119716463541337783951802400228570769968261774118373952504008331591410217177603417283882448250567417221007953495470958565312820895273564294003523354426367116363156901332078858671282313479198154665914269218412784234930469672701248683652967230782160559198843131451016260511327891486144572932398831256464945470643819173649068692594219086300186148398972781131348485097414036082578706759372319556035644394605124607931449727924647059511503435340059310360257252650410614601952200276611599130104129708504485333160982478829230376967919413134768836220998412321364522380376434193251284761562997101770281009859863778072270187589841317014403767897782382475807726779207063748924152889223911644794130594004985205712613287791140458332320109404929315431577295978608585187266812414504804323246276013906657751371995996216893561995444141370184630319724313656522479098270373718293511253048998174179309382745007793343352807187514826164878048920934078052100385709838006070457252716449319530769983210908977088799516362120853186071580379985631199769480409152014653450442033729596585017743722081465212731416337885901044876204302928737984311112533923929221679064077626827683066361408893676724990652885793144769981856143433269332380159949242661580677572674195282348044634836035869461679988230102509790658875600537015917341363720448520722631671647334812078650298615615602506776118307587935942060054207639202932358221307502068846678963518046698364757914675789098416201463126174239302383018601566090649986277589008465609077751534116920574440116965408723835948557126305269659396433582035573668163674978892566768897199336454608242217618134593822781963181088277404871144491791548707404134905632704343138870954614911842525832298143220356751645692860833019381483972335478432952959238690386494419065626678143462846609870367264400182484145875088488382067509691907811424094754669779443431421138627831453630396102385300691212196787233594465218531210874764094749051014198730312193699703109683374025058396881935774143603950202244320060623416332577159327063231743823953987095964198431241475320976934883976444846002940804877640091846531111600588662779661046150990396504975475980128477713559705744575981181853816706378053310525388854444979176275716776219872795095556141575261597514848181646451014966267827057960865814620887730809946371446310413058998852653786786764141982141183322075632870588091821361479792497700891141774429785605057927065384515530003996880496752014703916379433390688245100815357148736013706439497744686226955682696321321499845934646064715923982198158296746352659877384157507755337122239423340475169561797966996191070723579729050186679995976203285099225199258408484314091591081092928080408155127786327891533495760995269987208018281640123000145406166599474612314759482938183009596373845459110133131222582686631514518945670538521656492657266356518520502264531868592413094165077089340006856920864457388770655685229174033280368694718327964153957713597425562850808164769937261542772742356373290874969534335345431371268380316294275125069355301096410280640350211031249162465150125211722567943287275985866418711351810953731780328851965466169831681169769561229512898610386012377267133964744956419213954110702372504835178112538120603848035640368213954740745285680055440982270472830983040950577891001005656655071911511421193637794323012847593597644074428905467579019200679734472708842452547400099842825840007986070625628396749792797211308472478398510436051862090717980065102341287280383523903435502644885227942531392736244603656717402271251959658553422896052364270711229672888643943058716847579276031587821636745665551357443652646344228820105932587923124583590881106741333411955632517170727069649221710706245829131141298480399388275073150289150706677808131281534484813880469829224290676786613145606120773314118468762757741106190227783321155856016357121685041763947871716271693766928818259309031548998153920491459467735771589884224478859509651691582691690456550705103036184560472878301496683550127975502751347461817144110872701652337091660115126295167003416797451274467735016135958254173632456607952775632965349485336259711123398587505109522799412273365181021702250984762678100108790164410789686204053851557703240183075332714170457029945505422552334290157599374666859804168559041261119756061924935401305814551942813940963984470113760426733011438162842428107058365850820824814385558798382110176170494466733511919555306134225729359237987698114436232540273985715119301926845183807664172261072625481674115859333149428970057075250483015195016814460385569481229467475083122473901251120859923589947980097748122057689682982338490276527022353836867444345548888002158872431373316151008810662718683783752973125418533108244036840653181153852576019346610951169035800354242434246256312408409512788871801962199015180439509421006775719097365501423112164554571740659338886849250884421347311261619697052238664585560602488787652996352285871313390551282626831479747732418073248189844897699543261637616501797092548639155825526239415068050430778079778386306747576794263452528129724711409563671418455981128472272350775270359340927896470119505407532348017347272845428089941091200055112758927301030814846977229389574450938053194423624637052945727689539436066243654100176039347462220558415603113769087906607576448308468973899971228471737749515775426967956867311964537708493034893329276239503001978530067063189149094396938682166654469403030663027620769653193440749027072154826218211474164425658448839971381948306642289939239741185668935448432997437178312954337533803695044581210892552472977126680764045865523213758623446057960822825875765438014911113674083182824902796938604661321531491407919922041928090694779734225578494548791815220139979124884411788214959229768698598514022180746730396109354310642945441524545930442346821793677217126460377130093067368009032844073444586444005602833606856571716032335220991921408690950124933572880075349102624499957589462683734964507607953697017064154248823546225497551384119862852107869253593742204860011997802005097094742720727717644999444445023355660401413804279409436451349272064528622573045620617341044661355920970807942151467403428776479213085964847479006924906388894600678202123340355734367589433340176215655360641450603614724824321173308909523196513300761784252705632891403647410588685151149871097083711713717570247332511985787250971783102182148945826557409895632483380133648266715524278309595307783026939966259939951911540926530355512943727154685244032687739000540898986706323486072245990663566366579839116468843940295137911920913348246315402429236313398081445045260757156038224507777340184438486563404006462927980505945447988058586885540037256730177296158915501113511032629357033305030419849509042744410531870350731963262528399695818614453473767388882968823003587865946170141494795773653465536365846342281126711958336548323705730122469994014301772595355765485288544843571024032125255254031398586015308875384403189515880820337229715323948439893471183539651374075562238040158128235104031330206983811916007437341764788402853475098884166903071612720986248327637840961040851971662133023637915697863432384098315953842409047399808645765763754656863157177953355084758282572319930436235097418188008699762784987917928873450832298287315996336645959587365135903858963745301884786491602599513046138262833026679751097567208881261565538824261901986769265195703493588046300628643888643806032613175466805400493679680409814539647037469184633702221863703194464599459656700574280038840031119451458206891586430162619235979522080128767165143018849717083472427078817300389786961720166230863330399874356229051882282073486707835618958307653006718797076006525114004020008599848583875216040446753834851716902463481272573258778636533216609462624870289343153010488782093392779134579239055580567314428078179054140976337393967148288213222115453000654253658076922922247234846286226344098186721218367773493767526304435732764459658795953366825914173828978667753081647392576649375766439339643975538970806644884824992001737715648211060065716773181807237620380495257615909096507523808848602331012860995572963200688139103953731135120780664134730043210721261947339393011784757396103980341446109450656022674366679520622206338903053767347542911638743659906698393368483599012873114632728366031182610700753503424953456891636863947659834170526432277902705691871087597620833437096393027364503207800248329649789574783135895021892094334994683184920812542517563542314825322988964948829096362221073377085221697859987570669316930111458653816068464361399353278566471112657593341602139639059022005810557635392410960691244920479365073112397939784602267175955649680118729251176025725125857456702700495464745984109796294825084948283911551859018964790862784922610102175252736396669554938125887376314921275503859761115767039468532381181760813079817091284095875911248880998829898551934136106694273767420433201663416962692468733434427260166727799176832288799020166743741152041895917065615612339467351833316000618463308726161214501339407626646103807094033395450770621111852643310987473383391037972569921021456068806337443080554175475961603553960663603144537819467222922698967447205162328980254833171748348921677794979509416120322985883306884885503744532274210815746029034181050560084568631342474589407760466808899745589221291370376701081516105987187254896650358358390264750636224933394274824469293585541246626258612556706739405793958198913311752049826861395860665080506091951486514859783915989648152074733499376791427334786322980219336038869116913883306016063490691249813368513649782439036013571252369309175494633711453626420665180628181808151136026167123068664539152923884178955125941817658399843513561337516188100239054917418168382796657379292461457223433223163651273414767451770249925888260743280724585791710548667268460996210787438478161326081055057081924832663829875097822404574350982357722155272147046048107595675548157990212022467365336428207824788388504532259024527107479674438113150940334271840844056622500463328662769327406603850354196505601400678254739210528985933956375500911407876754249236065798366885947823771190669539279520755920334832276600708795339840406533412074482538192087846255539909255862754127670092461290674185253736836728667178231200510597947254220037235168058624432918173323737199523438269934183352196390778220939443054743921081106565876760733938454212323124461993911103698332577468950565113188680281822221138813782761361864685716308507975070761588648350627726357491451466749729616702141442383270829166627462807236147878803702601970296530445459541628377029612675625765630546047156664005339953791458850017449198200052785680210258845379093382073235262919407507852699296943302577793284172655220494611128266590602046502438003855543922201048164717483490433684511404316971817813595441397711217720513711162979683424843873173539827818955775082676955554771953615578112548123057913170432717946874982946178826441904689079835186935476279930169013875910092508147256450628528096745441944956561564230627981125000048976433967420788041343100057719506842640173960341200072900743470255556192817303493386652005014232651405421559950739069064432200860851067478555513936525641537241207367289259211247248512002816467705044890867318252942444820107764194772423794890533989927658339537326718487621789210417041177873381285071731487559683126337954248686811419556725487644557288906553209929673648835950235619102971613313819559143989316727466951743599273752654364577576210223034991346330759031203034110446762758551196770306636946460482192226386107201468286848530208508410272215140796025335696649990388473585501838830226027926892017204496837811065724206617829373575199727687088617596039307994353540967800740016188469598593465571633609869986219884217986153845980697300512438389937660791427593600863639057506739523934900925007657126689902010536640107051034316398859264968532837851542334531903719379893288843419541186596178118314445208945809907679137787166445039247446488520825822831777623465469101948379913846142264649971677305700626911036646183160329258963009216594350858160071250563379014374828439331118766329778341962523819816822644861465867905522528249488887343566626655216873625261338659016136891763809331110332829990878500468554895761542193924185176792596870770846344682100319387752994410551541268562806127419423687926471165677031635951854776722273949880038111229626150761559825720013988931191478965527926642770534765608888842089815749030298926936171915036859570741285098779974789170195721561622186982530653054615978274626786093956743222141329085035057255695602258960935824836554846308938418556384351255440765469701684410650659411117606676582039363980227562389736327029075221041586551553500230153781616326596773283420831914443910227663492413827816234810296624279258615281380685951048127758087220202128738174371287996259786677744230890890565521449361235574524074456028961335608391699873610291545985439199832219922876041606133379871492935534416853314538009975277495572212059852035009936927103064309405384864855379188803794466197286520849047334392260694858421027236021916109599105492579600093037720113765456520824419060114374982598681946803911361554856372728277934569286063572334336703236283707693156013284159659352132973241117697030477564602430157053979173644723316071981344865652048550787835533442309498934963134500692065482887434418203107020326669587437621998372012320786796463881540564006785865688849429148570610281214595676697626182335060496783586541611646897931380214347163473338239937417002737602878808369807244614249442918070000479838541506477099370085772766622156944891511611191853354564572865742052455623466705279390117563526697001508766219301789687203967773198428484619681645026689203457766691479594299689259927046466278257076157798859008725338301718154868788763492298361499641713513662219106235743147453982355987856828460317739740020297456964974263101586136773753969809133956674308325059655097038776193106882699345257551041642259821054092033909584965625181494193443269338167298201986405834888148213013021835858902970256486300943620459805875294748669602034398796548953488776181387973952073673876626360092226968357944509206056114013366365889245149576747356458738851201751671924579969234148740678560831422847788461565922476809584683697669365813839389983718715675611878743379791809272768480235263243080393402148093869120299220434924461875743621915731835454882621904467139004101815896488227312953820762946605939578265710285063391129920317503728081470117525145748829311068727240300615695694316864653187405217227226674104707567106609077355468895673465987328371293643376257802004540238687544871143257628017426318017117824188276424048045746279720915575213718053477772187902249763948489489586902148256143176339736803621940016977256668709817698069747443744077136537246561079868291400833974993556175089527936752198061266542182172140714113300257177868684468797098682219114727975451207723960067895815639614776304482101399604029054190291683145974619766299766429470864742515126096778712645701036311444540705302306732929482865353321772944430911473237414363441555204399755125053498937508900853662508230529693351949251981304343200135751970446368889142392106807677178027082821010205602762279248410430410688246391681536148360094265479076690382952530061425658802071975735950063054228478889316047640038161179928070642852750572892094964729320175072280787952283141821969947582063272505957863152854175932941690688895498219756821049678794648546408061253017483637676675696496420725348450730537789224127235114853327112339368616448065277011294642704596431591715558923530865620304321490385733274560948633925205830978015719126807337877842100454137842902109032551826317864407883031725169030351433535418120917295697619928251493605605465626734153127171458147622219585631346060714511536169590540311451330569472203178490454643296771984342573360029961852904933355702533851765401153903626361706480921045820058300047161361688806063264627829767161693129500086333602448291295998277391303025293813201232713043962074376729866930307581962356869076555597729691634360959620804808029007182842719233751372392566746031004389903754864186141236267680121165087807919054206288806238833169153715398476055175618077606241552993188284676050672343075082148689939128684426388352019529142948596797350058654037684929096578911614749209512913136025082769589339398109925075749722636641290929224173548721066382673679392540472868200886909993985822877515204069370304119432639995177812548420327588726918010690603133468637298727716507113911815047696327816080627538881090539296201470101861790211910165679344010381322372067302152760202650506812137225678486109271185741478073651843051165031258921308466299223849898884767286152591476834633662086710048927089558619284368175689867594621489858521629461700130791377056089422191379300433580901445120279375776174200169656097505069554267172584621354292089346725211675930637847372327450787775404504106157173783978354709071304889265844876176591542712711672553769382273302949519896855492086458060427218723167520629636503242461674406861866558666243615082778184043342221354405033869232425297476979747331016771747115270658316215189100267623882118600231614840938684157141389133727137312459057939212570076104146113374905334755634304033575612451335279366088265392813429763201528899383633746676978709000118788345754222576944367776796064353210946417065725738512450560367270538514734116298219544558538040039638657895152440232646005004208256995392467414238824180498081792541782920298949178658943502631548943880805576148486934066753461366083158927300793621692172520619902377959720414595742871953801830067135628104351888881121047223323444844514061348761649733698446621227839463352174370436340747247676984322361370841753230185420774683471079267585140090713125051963167161872150325237300732743688338330493816535739006619689239771137146206352230558536363761185020083915585438803848399403815851626820893727861973173532050451172332179988591599726883416151219115481835684091218206338010414652380654020338563391381121774462779130388378323779621894494960777747125513019108695935197966772591116777971236254573328284244918929161167363464193498279560661378795514061704661661177665147661037254084337201061451354876963287637300393133164270783000130072808146217266303524679184506185953200935280071091645419988131601883971286249913317460839992472271558605069498429078306324332419319232975926366705670515739254715258569758956026296036669944278132258084712822572988815806782321589446882490273853064570198070158484684547792550280091356207011071361739269128225189058421764976879725789836274727508604368512038355513987324154619128543683884897459998207832691564659165864068474264989941262084640058107900769571836295802328251355011520416315726838830658609998383278359688004688324578785939310696391051618203015661118155233665683928873589631295351826551392100126331332240347170629631384350958136014984585719828566883152513336042975790829814291230487524229494005135246285234041495295006938375652773954825689972034224107904632858341508043186945448197971382172783452706823275036774897095093088321496419701819449829820349810675386443675479014288917182826840112345678655274267272609288694046248746038113701862145801705275404341140407850401820102555895560234282830688788224408921669849628271370382667768100568862940711352023343587387509445847868051547042920573619570968347499863410461274656127974796321025340072407310037670228568733897174871903912357939383618005351786441955563540876751873750720286646977406709360003032629027634845072728643722514351339576624716802479199139573668955836629733870560563126517270494054967259400865733333794720578462398940397466275035019885733739769341470402355513547693999024501359375469020008485784677366751338584415664171550694167588867467003084351369389569756199645061584398740980113415931046305615508813962959327466060296388570852695928260494333277859888844970389285502608449575584660972975652003471392727175038263250354860625231387275606901377196693758832489837594933860182067802868025811609248700003163782850334931763031366132650294254481007981746751128637884427328405757937945851426173574977469442919693782924455972760576627035534743722238342742732048371653296366658447708741049905853695395468847609467542605021830153480861275510384774875374920161082145498284956371333756628416575942658374619527033902988342854839794547575341281764258253187492094739588693476356049530219409335796176976903519838599450800355250638742122115929045178332868290738568682418260545598426531035327409344528091438947747381205894583543306530341991519662590076458944996009262933757150017299498940490029914495499578461745897104155978682061145956893613788562424738205331913535286846181086449562805462163374366229822491759097331533754797920740460840026190225698837361287738580703119083093936886335886999837710236688464748607095240106015452091902941820650405762348414176472424850012308707866301187201799508228392560940432636898302032283234153961959913742742100987124086027209879841843293646574134783492401629865630836013104604164639102264094358525372411124317827954541783435099582008786143571161361342940807777323297487197562445729895718181902465782796965374979317807954381471376133467985014534374940194226447432517210253870200966951001900031434789462640295617311918640220868110219074206734820285880617192740249593946955173222502238141183010738918140190947919596830820310539989669325649980686252438488817974022243641455922025249919782116195046414418825625433627214292167091999870117158575389633678333433801373683710861306780868414021423648024324292363149361849747802444760635961959339250013257167966763783658441381218669216798707198363139573009488159422561722791167201249847864612432998846997843069085539664375790207982906673913784828131877283923961474275797690395187576119650930171332875298734508382369629064634367367113755636651179293863321321214831054846631141897442234680396287695493372499767691084653466593485123491473350575440345795117625391941290271439587112316534659935794462332108519428334294280773190388388538789487453081040733864035730486394126898633332924682279224198896961585260295817195621414056124858016361674564010192130035095109745570383056636034970369907967129569158821563755472354462079856630708967510183652895540667024303079637182467522268058781316250647417310508091789375147722766435482756318466617147822114289083581879806842357386302723932622762662773162850375545464273692264990085076686690811475222609709394167815629812980341378167142983382608038965043105351680240825581806718234340967148404052235196809311783262853439390435361382417874897516795864773403830288113827060585385127131791046875184169396721195340834427757749600174541846185588239757984424701048999945914312017810219120468617516079342642610250804642421556486076935244328247768310402213788154229294754900178289561434749283963529647500624886546737079886306812638954108621568222950132989114711041172162682875426461985913420361550045195280131799013338109324177521389636181644684806754745253523219327300847910193704050108103493919898339229028876129347930081188102633471989615098450245055257879188173811032630289793309483032467608950147446818627660156852701927868352191741115409589291404957657418353175518456716355947342061847580210635490445083777974654335414800771694002085625890095592200646670739434262810919663915647278890165495510858281035362877369372052106364320921977025515423915292199742261511762919887579005503418032388943106860756968647361481449347063961816671098727469331235482221130999734173460783894640948432819432331239483096090376579660265723569269182952802223677082182453496441245116947197894758287176853383347044043957617453547208908089529407612830316020660244396094775204608820864604952310033873584058052692485589178115983779137716434250236813840040780054698457187533225665923716304441439408821104732153759478247981895870628270411501084025048503633430134940306135145745278812773791130125374916724101910681010692450699735164893799784146129593308076164270387549051366990828871786698021514303603557363196118868493234388383538937552585426952346990694378468604675050951480573322228612197612887631664449033137377584649729008745383943605958052572581479513684278866167209119328996306286382837580694447229045691324413517055049496269870810844058106530362120811499824793308362251094315039471142400447822987928684332842335200070645202371304520678823495627744880397240616017617520536138459849817237472717564272356324989462785770751688324853107205628066338463591450154162501061688011679924917740558304149532194454858825194156586273845508326794807036721986066406730395903549269701010248837352426005095292689118685635309168992900639055806294735652150581867395067143742457126771250826047751347987806647494457531805483890346578334248341697520813220464357738987920751530169745303790366902984620379906348171495220292570599795781267203757228912335128027626591799335961310068327564942353367820687044724341513542899608093706099242323434610132310412657545755974144479414733089401982163686090668452347637494497787782303481404666112744110561156083615367503087137401968847270430659982415009092241679117953041356052208503603244255914123035998916573537437924012179579123290856951976000981084123907634838433182709317987028221143034573694257705056696706790799722288699468129805924210495629009793247302681032851830873298844666442884081543525339889708057484857873619324428620487229715325478422033255738075767208991251721352711781940045851296537821061374206079914927007091830899196917322231283975973382545642453886495330907642182722718170465890370145652366474959787898918294259615665908815026836391868265492948978753935669372035928974002986654109452754813955138262118321632179997044749387811516773802144464896261116026231093771620118476077957782146961404221769049108111615366558456908683918469692765082838935864179370292437031886056024828166223284411462754951276099650951484444921796033707973307255136621992627437968997118949539809564674825173795126044439737460878487529718411694807896366518317073166021360603806954767549114764088839916059428891444607351971918972954910316362092517871062401882758537003860155626097288435326042710970241913557226216690835649740182500291351939454917162850367866627268833175665519111522004019356944658209979292006818228273221313528729205300100654876676235134779473522515064121281560772260781300027422412293748094274196334899893388838064533176101173920990673985398087717858286009875358968707291702706972311099675655237189627877198443382246779597485952128642052264826592355861472071412193661075779790784390784146318638611042551218294677539786082034334567015677984922542055303938923122786940237847805010849105849094490277781119304543989969485284685140995550251641184911616359868511055351151482940675069835571353856598170908029974185884090720548963646134052791628433282519017891147802399539422546933389237092881712093527792196236740613822543678127022357666867147262467901603919780714361318009245541616135139328646291659430319536022814856589372187961629479953732088314642780794558015875234635366379415899267042283698554310445602185589312518895275774677256154558881570642906505232738755354392326185397502541137275317662930865998715325285177817646428495569165168378785189508414077795443039269374844413728835291334052839538515855489660466831691531727190072155653076548571515233919979858316279956852107231205121276161477879682347683940430646287869730005202079294425990552799966735999476243008272746234688749729115899605025088470172404530307839188897272174608691676171187663866582480994310996602385861230970160453498204621438558454045761400698710264168508265094424182230252403242797937323265363163791778006208509323469045161907516112925663667719960171940016575368832902830781087233183792546059838200144512223280453761626959038458957981354048597800283866245242126623915996824472205726629681122516417835167182291834307486485232008709076616476289879467485887152783838080320349081290208980902361746173433127632185446736042908805955928126748229676449077289343025181866654102575927080291758494595217131382918775108786827959203137566279572725407007350317923440188525502006627783015226290894676558724909202910933734654537061720225175837515380566420198174178449264426519731839831670731197188450031982646137284910259519027336487202971539269028033731472240984018367235104585838650965181462734058152593056336635327813426161445497400201963414209996691184481973374604934987656455665543431063641961450651215178699293278742093901992770872992205630863994861546955343190385258196505804842470251193620704438048865416811115213104242968515327133196718668204110438015877925080241637374758021973544975328527462277469094467442586254588266779532740747727482139964100043287336856804036356478581055214987821888235734172340829710674652628792789491323383717606161608676351520719435551521254815069930715920279331766277808306295468229105958739818300570372273873847133393610212005661954706938051617677894859495348180960072892717715072438207641748080345989887764543067616989840479530286575611558686740088822790293048861878377839753523577378780322655202760274483137306959131519876207055589832216070819838013134934965896542355828355941100720803054573751739503257662123730109656733551051858287295853256350514120972113048055860276073975541777475404839418160025047391928920498797647145131850722022481581393734226959398094049765945753555162014495743330710675188435483947597465682909214443032826191730051957307348316067965555631421582687476170126455493101796554154769018990001387689521703804959854537541372450040515673760567096227031141548866628752886811185742484291862116041070965053414902826642619614010934219772007763550316353494567107440571018707091030123759581944699610073856691475788406470444421266937598974577197936593549532145042826217807574923154954076548641776359939295949232968926632251716417598373438025219481599646307423967509602934530022133913181651078238885320601707472568351733847122666205728293592988133379789920927149686281865181456773521606482944900883119375472810555007243946034424038512058513451597814988719875437008612208037043829805238578835383964118023680370576801632210025923761875567405328161910310461473084954899829871138366184818365585000348026577174457592582430238824342494240831262764061352245592287404466044429707070227825833417311982898081087280796199233951718675299530765408050673273562964856075846052305078845811621800387474096421024659498864165247466853090352733357070812011101186269967407787819055602966126260764400317440821730238247803170624222548575118910572179118949865232066255885040743406015099106800083256081573200592566632885327195405170927888726310057631091679196504426402925473265064639022200219516152298715329453486100434620023895980699570614233815928686136286467643585050799621017891589900218895104232258230740829275172678798696872472684918687262854633657877673792822881488057065278682631987001212837039326320395981086444919525123372856809495161768483479859423293079157015813361901087028326560511092408168584520281314045706610296992329483138800095917097848083305674997885615063343868597441972147094274734600064349599987807229775817479200749332276052196272788978508735251628394242290849882153244853505005216908732550114311260481646006593255173658776998961830812251200888507452798170405716994565992549760347865220979328581844220194792131489039419875355867600153940891365196134552775454399484690049547153149787847408749466246814030962699893001926109020186321746637142870077260065532925487099285668371818403268720152679943878264793487591523341724477742744556278178358547733389913882758632182551076329913148569554113547783012194686571392643642491593658321154844928117934124351001159846819383854744035132683125589074241948274276633089758030586631398102639476012375637835113758883225866661073042662545885958481539945513292990502379368365994550708114742616342251761041050336858665072436861528752995734857253534204768516027093120400200080615051213645046796549769154170353828907537913298428826175848155514187908977530804108078942634520053855235919572747631562132041721574585456104404160401080109732744550808008504977322703966529453048068463336666462377564891065566423380375290516431461982709598493550765593195509015212566714520782547871162269621244233878546926881102004126806373000985993836173837633626642156746771422085352929487899285015658226799238140588198524054268836988679954643201599305918146715816642087196238918805673052533885946856080613371425508693248071186759492795415417474440030243658576263356180414959264046197366416849942954274206550068455991795488680147574667310340781380978929893625429087192319881047105077220674711525492918944463552760898793737586403658549491312921666337300060515064594224096015629626817203089000037295998643287604034888659453740920927004685035117272888471269487315720683646315708898496649140685104640546009488097126471120499178460059035825362993866413500661729500350937002661968659122370080274602312394207180346649711368254115068300417586267181216410030325855743524283247655092549412084740554955409000938804880068030077382977123443510702201840302433248103859451755539070099693032480216165568676918880330169894325845542590563869869572130716196255424634690353288509367434953306817841469090139030966239180277993878894177950819678496908173188997017277710788626060608394841035204476833301343106494338074950039533401000582200547534421690546060932068843275783984539431311262405859784197572464849773289854405365467042540930002069114830417616533756264198677222555529889088914419972968443693578535730773417226496452975213691462508758033703726726025997534122398781808469984240774214721362969261424471742404771436205573774616374998974252769070913485732907160112068383106056771637932245203547284953263692882815628569409514196692732485505088202574042740729465874403232313987277206049379214018446442057298136584030926688773788567180743722228896314715217332508795091612745526399266100028195537821697488208826871589975110128036958029647306524955932155128579025653746350893124909039579564175110162276260858541306763208539941815113745345776250906395005668095377183329779449494030091016806424432129246668272174627999793945307348059292008274978167983507492629770552210151524755559969734697153650809114548039407388131454777846568989989545075880001053589632470449465621016049449215643443610210783872712301883783259558599917995521726517670557967341211348030083269328734198251338532161035538456333951450084506444904474554697797824319396337700377543394189127885947690142960485082220458472216460158822141972718504825007696754787794332224660508278122462724287269956499761917061898301345687496666358106096536508492599593318595555863321038029021033703074514759926978724609764964131495502690915073053704076603829072580857609513315508542705645734497700490434519665767333662618126145680222873280658081199441859057507253500804049648060357030507386216844127565740705249355203807495265606375607191682859110013405787553901301293529547800832021281970329900398972671999265338174100952891221248602974395608714095641304729102253768669796211546518692349140982409196750445788370404797309079104591870652456682354204519015808024156978321616417444962296992141470878221985243309633392199151269077908532416703572677813177886601608356198383547835385617294789587569520534431793389842544567224340990457930944544966284518916271783078358371255278597975608581104192197940049280234948646434310958195348623898552154567002911047001398490584119305698626249014432678130064233869125447031823097008770587537960936553941250253244417401424336436204904043715168125467217220318259057059688265430859731236704983314746093548675618739396181428932061315109438207823450844226532335245468242335940040707683758836141925294276283923124401943234917805239369166826940041211558511996011289846237298690236605882390678953727019544509091060677792517648310518473750972644010108548297959411932912555327807983425923551671279882156369197240060313284816619421589138548894233294658587788402079514579503481901239761709326363889232901793779574450483241670542901716609917777746812128279886002961084103378800399055743148338404959391172041640789025331751336331589963078025967937647883282233272586258745615986151893090567209631998404396468080450344957354875532786786806740603582784997857442014345764661415824356115865047806198152294725683013871969726058646446956912250927927060168753210735184071946046518905524833370760339291626239586318627249147629557867034776399085432560770873044738922601088574786296136960850488185559567925659529528549808713256989118041710180211180625308149088267565709319722312023018989190987242257152876955282512978939098520946790097137095182614239447582444299904153742897141830183918302504134133273614493735630996121170703330436740844855428003276116803530457196245993310421457980256300609525376690110028027045830294802787072508450760405437704673034814317845416607502121455666879999932733192976779428734351503311876383657974251478038406539628374050199660621604984931392991130615845044193794301244070476188742929395595796177133467571359489923624597691916623565373018837949952375175592059448997023097606140321443347325999077758795633642930755718952076480137739544745974370065456891518868206118065055530859984817116345745119176229790702409485791767093295090409345082882376784831045488794129059176081714992331935763696190149086473634701109774685769218999180888847883278563534805624695436806308971172702816580182751763701891050811644454088711952602913097761228480437523623015936091921017595580513499477314491365092489055114088401873113379166266806456980221291512952812002964824059847525921620349978420740622131319919262330100231034282585066383839601439724532673185412236239821665745810993621629008507999230591581790449974794285285727072159761560629784670199472996491991775573771806586633032389340417399183319137231415039853407838459011650017190915119409287942730234763837389995075497034620263154192634691021566100147476875647935753621699463263252268932218859352626553641650127754405971888181964599458731959432159349780436245129259764760574223918376118828580936973260442857571495825892968263851837677453680824756326648748438465712681076189011230649204966176123658263883675154899359868735303082775151373538440544497590528238937797228001349053198759325722367487519149089514342026739044505570788567504812245528421606269574017215654710905828192731654997984458591164333649329540250942068604602375749498844021232203525039517321672460936963709370151739757122661982824634035203347055095902078100255591443784752938236352107661360816741382106105129138259029951467798151223721968991244687759617766917895054567211521751943560265982599770055452712125633988404496501499034371185669673511571131435855695677365267564854043602453684963003513235861247387254964583639163255069071172545478771279938436913977757376708765029528534705312988323754202745201741636287222017414599075608874377559450108851710257089925629444444272979904111027565854185250990972612264142746307852319601731223958511884462170408752790185115472876546287648768181668202232715868471687129533079437750164078294909328489028472774812106205945725065574562427707467033510042692142387665983934811505314693433436348678854548584509449525205761067871099644234160775924874134206807704252449110241180947426695630578645494693282775965791222791604784379518207913013684361416978263423040285860118899554486662397341435145717004194486263985732063885128132813992252662022889803820803007872961242278257649219147907205828495665711434959506868401369512228419473936218385541801727828226560593243351207370226637111850152436807129269979270203927303238460781405643634400104464129966853802279116892796999354344495126543811049331283394972277703915510088848255144990951834248331393544108481003730330516749631609468623595713308529272336907602832671907767143382683492878346470616384866443239824153098287759607341072750217699292232087506660252771067987044295963694988303310359912876445957250115091770357467007919750127987109164690384333416572275030646303888364795781301550560708190448587996095764246965635776373518505149877508587807374245177063368612155739991701701535312831638014239504784221483127914260947712940628004742027855566255827095438127759682888993139682923217521870175654919774923000290988756137801344995518154298350930717469266877162234207484529808698950240121709062704815565003541263937661175782705919148724763026241017424280156777189337219096438849243757468659458402295258889486444680732082175545139496838648721150995294071149782091512568481173956277130773306619858249547598350181450406918815708737150427624307718985331508864840685001798495807290898941037573713786912526826811842299103167602595909235762572560089144736158295135874149326005824434230404636382068774067458020360098029767747415450694366234543369465418438043976885051490938489398956881767543211014895347571890170036991310492586565893794683552347357416370258444216141245770776394143050764755015450136199403430498254983052655843851517510579394185693837022904617887880848340881383377379883131925432331796472259239704110949524460587438302552495421886800052959003942352692081624858830041475131890488940425224157246376697730977344678916071637277839674344011557942227958026814691220514899428322434401227054892442399834509114919183888790041849077326254839470161934268164833823643640354336789961251465005204957723746564299228375822132923658187421385687234826104359241211059438472854010138390978682669364696273458407857318806564055668565555466218505803941339780661201722357360766205032206349489249863580873890797784431037689501862904989064671105667526259320785665195751654212821992625253541241004417760242457817246604330076945836477555139389409541342934394221121616071482626282468380352128299121192671572307272048498640502457323075827634214559588856552168765282624682562378670799885689490377078209166643292678842576716922172279635748496571515707006486373191442027212081423977351389218368375546400390021214792475026113471161319548475165880386960569926993859811679166627410655812003028729935522816080913821473271191664227793365238702287417331951516361666815406774457011740637115730647649190183924511194518401099850877930906951104137203407182966223324660950887372718264430190852573599186383446158861418028296441840249063263428184032004571441447690562405187957662122999784524085721598409710548339367987691264323776374683566846487490388491422020074726408876858935271798882291919204430381683099598030548219797724018899815837265187098517885972682996931861800368723906047437089382535558152358294351582418483898444576350678232680813612935751560325792351079823845427525737352102007829336732986156360536228318396999533324296315416632288857944335576935339284814866273037928004256012870215361040933633821783838384239684537480218839244693989738887796050957963061135511653106416720428464551390507591556051235558754156869763044682260327883661463281632767582526175665100592070452142047956384249008059539216711997824881533742112486233187146943174256694322366231200717433067101838768546331414410081521992489535349660530019304912098320874359677749499765567212182975741284229581055521029030212356826630384231615636614029236173628275603036788246026593670019526964504183286998031257031721870984667336998907713927824995915071702858303580228088983139673132691654778397996086994492694905612639438217998048079467272216166070514281585219511546112207082325785560650407313304543470089881897866132860833887955896742832362763623370399731141358388357329678586843419490991430961552666657657440601390265028031469912855715485048684118365170081881818852924354536067377909223283125552997201271978872642480101408496629075396006283475493826485936243387653115509370439820548341730007903416369182397972213541634397247612517029169022069278511694602313598948862990458683186107362101346043517298911995000246210804924750337978206615528822137320205089140062749662159487346456358182086769380817051225357974916180618146044855511432148549253489562637710955536205821683256729533390413029359874410556782484087807587434003373575095515171747729654142656598269535393700647104025177084507096639203817685869698027268575358401006508810279502516519570972730378225601919628377085528586278580541304319406210338771413796463051175276924352034696052167133943811725536603386761648080910158746851568334342182738421352365039742347658468910365773263010863207908017511893600423322245404274607875739179083604181987424182502132905458624872322479431556230927489053382537290001335842509246333307614384009540854062349882330203981330850716493021856924378761229670646642959636448354733094166533846064919631842722058741358450062052479584909918347819181699298080644384398040769216686623768207357225354254197164810258620938447041194308895546177281178079479171121833260857392066591230457037110213310465508259402576157826696889651192304019534212869309389179342089644876458309349791452259764664907703261157240873677379148852569134371680597495015635728233709235135168404555427766278145370430208007627073835278308506620575555533050190347495934952220364548805608302265360784286069496360457258493245274708562480863537870575263224040580701798192868946849793059622681403305965402308310113829102134170905840311835066684748877543613993332356032923582201287806961035311386483924145429376064619623729721319510006557808784188981746940753902165521337204738770405829979488232630062312779211831074857845996404175632467053821812267359114743284817232567915922185393213597378379110588443157529009170035864086195570711309372396350206122338154195112462281983799248910890668751858933748191074880572176001927242114215659800751027847733512099169859338551520619078067951038859603356244732996772400000080318289730609090388691831705136233775541592050412443090523592608608826050278973140761537172117553515807672209376772640046044808862480816044683140457027066435231957595812440278516495341452917504066609226939840916693565704776335410111176290563782384557907250391849836738528472661176840818652229209898133999198813487142161348635385359080725286499286683331012819318116414853605030822710050914856737589277859913573648008225355136412237199481319681038638050356469873659518088722653115549593931571567501814705839113596034223321377747239431976387714827611655616126318512238995335571051656540848139682366769770180490267976212410317753335663027759598106815665925925865118620567290861954797142428013130348206604021079811672105117223950401324879394549228444096614812801320761601250241631233824293788614485854015533049013586214764842834508825020625287970344815800669210742052510408828720383598622033325104450141491265575954888619519636867967726289501863458273221813118497404521090719817662574451681393293888755927862678701966465610258122911044405446299608563039307038575547630284618759187166448554708549465091611030127352529929855354943133564331240469567725488067684607816964068493497392677170211317773155151940556637499584581613824235934972952862056788226949453212183505650504654061702053118506174867880563312305685632834498372109366252668964534366761896994286170607273064245024280523076723117413740194982265583213622193434705013310688212493069237636898143757108637885390968349829972963712222995968900681883136838199186764594287716214807819811051334179090423219005767038371748279834649340393882098202120049295546025424261250456597722107904976105635812808425279667757194447559102149230742217685867072001796374338083880779304368536214065520528004045924337773351861205762431859008161903766459783560470351414491839061175000679616898787373968683584220055431405341849456789436461215874545015960043599061891321862574627955286259940991743633496353056412166506686655766578472378519484281154940221469829739304540895925683976065103581896006670390025365896653465848639668466641250606893375254891963914370897351867010042846972980156294368002360188994482692977697696474630630271179703099613782881228510591642182050415733771276848623553461285754295429766465160721250576672189378440971346730633202890228430316562527545051165469479077971740750144834240549038618972555106594559268006810355226189074032596017410421690929048096989035134059239265136954394489520558037583099971854527623135561699108050400277118071730966065610223485847306523878155982714816398258940071201010220946311641977563431291039505034742053810239563203686158844829498331623654411497044610815422360503663631221251855980117883119174612714343915014396247052408999894930233438201879528547501473442375058485791014960936926459123812096314070266080593126380089203158538145304841398862798558782049707916504738420827049129589692314662458368226216787275458478440426856899360829983531000433551486612257178975709209904880623323028692619352894223098089396529565952883619068313072354831597139079712256333268015360792265034364507736620085320885445348914802992449238756304253550762312677573229933784653098570766236455946312510816211671433634048257224433576589524334783996861364944964827996324348708776448689341117734407551263346953079686975102223951542901007981214625669720715940052110616069452176444820372413415620086377507095402418656084605329285552181248066497689393963265808407419083473282762602195262323414805194137873807121466841244658081321453971050721342693469879684070159064483186804952613059792119929074564681420694003086521452699356809593952373119339040940432114478255558696135593527131113219279821368816800461787552199505392687225574963469044858776732728779445810227145989132131189449925622088783233405388983801095109851770955442807060703757486165513412047299864102040870095649209503889813075873351089055200039448192225457069423834115941226517391653859904467548133541730452125118594136391908227549433106667856122595090653698572160808495252886067000028530306808085271462997962666264275096253385625511190994636167608766086996599130894616190054007775991627217804193609706052692709129371650667461547339453909787868931297806308512019302143168762071551323287269419500321702364717070898324971611987020889475114615250189405197495666049770016445784137915454439173483373943089609087349830150706110731165831508783196604636580337135820749310580373431604424140577285672333284697283928647476495924722291282224706931528245410641974327816839074100932622796232029312577744727589731343993336421616966107007616189391903290187287399502803040367496004141665100929191346343780046925939780219198846429167770054040679760375124597107769371728894608942735354659702126750984067375115453834244091592007180572166830186970566853973917505612258888709254937529288505879505481229534680506743014168395392773999135428021517594885463913195792232664772391692356197550848254787196172933866999580756837629632417712539030843483520205293248027379233583073527688877348829331448937880501533651056016766216507308722419269292274693330045483202911887306106148061703367835454072579176415065505398361852380157305100293763203323822679765602655326792573665691032147745159382149765293243755078529751276547384080247489005296236641458340751927048461475420576129075008866173812922802836368665679360041371021262479167180806457694426623518647606935127154792237200417927176633940573608389507370322748932281191682856053387030968498885826405103525634378614898991870111822160266496866712298473441150566007264601865324079256528204636282437168947569774378708240317633243104137307810656351907196825592793197174934131612515394592834434560243043044898348922403318959585629813831754746608708298485526394869487341805706100440535395294128613435800735904299895687883366720250735388079389739533540989903719403395439271402366254710929190852157834948714133711165884447947632797835075677992550467565363530945484530425131154115429049540262339141846477750798250642758640783769959533867638921386856620582407017872718938806110805560796395502604371669640950419264643352172593099913546198962993866579134005873186683559531887785979736169727067697040300390543040153579472804661492311863931308242384908796138806953800225481330906899785891041944417192066295894806808574714484494362323553956560760488218410283852516218980963267472164781263220771401420489931316510428450084534264298062228534691671229386002874309801282543550798507011329085687823392429531424085045977759478641747797301896490222822978371205612418090187664968685039940568462996430935707933298340162367756605019409045467730518004827207480010239873772479683565315743365013028246139118757559487845170047402172941193271539337895430268445812429402061550613412092113204368479274879113162220155138509549440941742703057860624008670047750193776541512672111273866579659369273774728908932754510582232204621510827588927751924254670474694224984978883932262498779429957147274845655040114988203029222703148562398919920024771844310768178778939107692689058644401601994374116216898295733857892074646109433490639562320399995294763731038514897679319332876673362181219137822456228499309488359343018595217358558571761034983543373949535964849585877867036365365590422433367005327278168909844186534916270929364101143426183617117408316140032686631361075889161003862301771849549944832696618921388864276859440127583013608598869396091395209926920689471659709414393350451021703301464354262273350623626945286780205781707256742200336721046644647743625196537378455415192659031931899085286498672735152175891297978595807583276280814348061920696243986842564166891502052276674255468514223942895999545471007399030380968926815798025992316843836265024401556377800199379603010461013432556323183170086531271380142130993801099278111681672303852219779234020873691740616160944142317499765630837555265390473628908334899335703928223021727100864552293096508722945734070057931502323870210472612444497463319169473726262161146820776730129155943431430469400624584472127527974762249044337435322989515947301912763495495639994939721136784011584228371159896443247414019052152302408484842616438715912682476175941616260935907426742201521511979799119594048037735687713657526957824642226060501580735365107929350442042329798600130649781012689540045311118682147541220079606402697926234106490682686046584814985590071475995335800874264707242091178967446283369745692915163721761434882191250734875861083434245083182149535858875604145760635229814143382752606432475911338902908632460348172341990478595146399245523087848479128349605866352864645914554904867675782695324001170227009435831851768981612453171206200539217136704662955210925580180928117618313356254516437878232779781213040020917813654341808626119647770184248694324742770205604974789907430349347934974542405391807671990132482134939475306976058960704277766923649175701004911806551808353665059972141285357376440496570487516975597950638259060460869987670166374480297193744989156890532300990707167693616747123033789907006486891147007841373306694309569488341483712017396064688394729425733650441844365054256445119681289647900303821140918116529045101601441392279991506618962678810103944128030342725428556093723906959385869890966542926792418223442175273428177383867335960572514231204640965576069528455205919135299252546550146355106468985349163532662797383198072863288213717140606160756835575033542278506519938255824317043507212590630658011108601074640672104901813460386990474930452715872269606795481688996496972188535925997052200968642021904920490120800531155936188272291227815412441855002417616100413134592593255865440986836943343116774436046314647168712015299547437374973766607018396492048546000145226131033173214776887393084746974894270696251005487192687251567381211330734959752976485691860682064767946295507011136486564435387748012864132324405751153677083691879852033638763348977017955386984700812991366618943451280064285665660909484411329836816323043942610016519395377637386322771917780350575613308891802285489339176109319272898590585631979585731533513355532536627802706501862204091661820842567453019755801112105150100524864443962104930763368895889732183115983343551760969982331044733763183056808645074580993272295612652859845202440643088359001969551524445998794899167151790782459842389908721578732464341028199767495420430445413122692533562008160076441533128234934364883276439446133851494672627255405997177913682300427743421305876819489339012132088392928950598938232385961295523869645325157884312945447599876368512038050759896247186224456698883932763188985833043451456212709421196212572311368114560824603396218798419640250010019286693967931786434226373764958894447716235834394788949254643695217543424154567069075689004243100791039488858309052376018927858378136258111525259291462361407657210040964964520893394725721265391933426391674837057393826603447817373732901515050919544197724203897732882651114031406864050685913451691009224942244235829881885902014778940789572884122200826789667781187968347436448239429001112293325024257504694860418045912595727891710499008656927245089943172788569283439174765036736923634786039285326119909118407903423012372519409427055331511848085336072623121930542793910989057033118475912609301508923577620338688359659532585334014654409886757143857713053875213359397099652109027485013001191608122560963619256255031806295786490657446694314728208818683851122821057746937992850322876552762278912073689843503244894719785331027688719943038599096353243530306639841763689732718419917282005395089114892145169885138266077600840220848570387901985536535602127371868376798213645374200001786552396668621899232582313423262570569095239959070454521418808328380101999971710420972143118849173376930544711624631446940103279776421019976780135476686835068926922635869277922163106228800665318155641741911167622865412077762972372437680528965944329992740800605578361941123702220298150198723298465847981642643682042765152937269943995880202369108892611995977075180448297840758740944073627893663453799566488752794476243672696386364620492837569867521092913787228931005709629761199660536832402068400519815116605175470370984674018102013364206732261289800721969559943254154971820073241688602344118776486615124455322312484302342247296740335186398425046238433991575711790490457888823374187720358445569463951393181194440169761611315193100840360448345450003687840133787777521478040433060572492240517619585756195383941502472022328559073957966839920893741809490612358376649675573138745995536255213611639065149047041498931621059828319410928032313245938075332396227711461239053708162739849607748166101305311221983809471947317547192802953222331020684578350142990278012187966658988318584209578562368140228425335218555675735039177732011375325419725109052865743735097733370868430768155181408418111917683893628486172165147800084314996899526547437872425514274174723987674364914843297121771650671159581491819127863427069075066852912741153035397707249421772492095568436722974703660102902981472420992975490833592292926557248668709884289192355772953679336840835417386949964729114986951405122865025634148105547881483810959917334294882378519034099932644179330782563238731352077707958644010590456404329088442296930434700542902569384808676266944461783446002146507837707463084809470170074688245553393599751348126043445591226118592320582067774353905568371736609015375054145507815196133451801920108802106852638136851579906885552379282765492505257292566533010751983430063475033159138296147674759558825889370514297626470689002434565296255231882795771685957535777937360264344152300200622631864965662282720921546957495639261941819470052124854171058456007132089229110657682909611504745750328497357444017306465992367612832815667550121256304905647219819072625055380787383754301609924586417249949002905413971001950536756366634915565448166480878611311769277253693486812393492587094063043700127279936813655124560517189941525498749143103563649864091682777138113859559874073990414618712365538098754029528961975093584746286934010587569483987754174463211329127817202027302075882273565836708654645983118576147055041898470440198196037200711473460389251575292067910844350993796533834367953936821940273770255152180412369524472255287551136093717806816425489474107234237250573313325754531767646139839559925890218010851680871848873258599268713758709304004662851685545590464656728062277371138560293602358158384685362599050776930803309221024148907788994020815841040875557246080024000872928968444870491957822465003911200616819581798253365453211428653638699728281038451560933566467100367580751060458838538601245337063384863870213798021389957985598256533168381961764162263236953080743706418210715514712556644437144645315735518881819432761445132456764292754265687718748537254330602524724113535372482099056254165958924544096741606243740103420615687645696714023389453545156381416725898468332712944972291701878071551523227100371699696196181694209700163578207026177112305041968297361538228131519010338502383179594531194507903369651063426066112805816896114414063302534242172593336759810076494746096050309285088256700092473325425425681747107216785973116773621092600713453431030778102329443004239243841337026602472945776213679222805468042026979454529850880746183753458965864149723418408554482552527398577847702379534683451964003097272165292309604016319641340461729324301951329504663584798586773121293876591486221813570603783877702475731573001793780626679637567215802686855782892107179851720702906561539543725962852771959786034459466378792128085959666943575524470767916913074155722773678382541576121197927727522897173309130001267977929590711159564493205743416365323909230869531452097479371008259444195523389716490026201068677588635090031079183174250115842611011608900353360755463022936604748841316456164188165598665174340606049950982546068260057370682659682599542047103445735247788698036233319771529831649760265873023523296888999909090756727524815169897239704480400477361531252208365934400478501569974516898835203956691559868231612622805185831092283858509190425957993214069019175639581770131641450687668113555608235982547058217916764243041606399810808329752676868257141429615978171513173351651536070489851207375048965608402053008195664390010216912473553732016354016381152687879460643701388259099423780059226565581762536290146371260768435472210905309378781256537274428620128226077830915200871808097210886000727327656008453461107124680854202512659827648905511371509656780715920518444100326358001181847617643871640915638010212439710523191428539347884030409237023782192950787108286232144221813266868623853947998354817862337044934289373580015676512724702270042814155064037176752323940351657410411366969801216530307852599108235480515059696073314162593900836568108367534709560607170784210401274205333482624739139823434359857822222728749183336664102503197264966521901563194198635319218690480060654938725779857096712361572354423684882837377911111663353676719177412217880188989915132787753269742249935411991252733857361255799164381788544880008083651350429987800596705727243944335942165110612140405650989938333368799684353304561315399954770807418187304770544652995610624937456111285328438839359314207702252728785237797118263554834627991123171546182802060659919976388514324241335310678347396206684721856996180766247724039018774808902880474520575530961498878716140631438979906258568555477935641074991365235243623834982708355722058410699947918054766171235263733231918940231989153489495872184887983613025128005801236508758051056741980746664193283584583914380435278355858108916732942524666352005641520549027395774707181958634742631743253006457499931443016937955044319043773929089002077990313700267072484329722398665864144301958101847761470599243863171541949120539335584128826882436549403305647603492690815097345548611285842786134275442253738342996552084998035044924577605838112794839864712322978681722342810105202452017483519887092396192283831159643821155619578208957078347652992094377567434768456344529271597580661251397498790152114635334409531651550874218868838893418615321086899154711158321502765585766684313833804760876036676562092575898411656351701559914164057641667752237289405630708339844771670163909686553599282747225419547083191654710915873490113452164167182780713588437883612835416383233442258936853730947289395627967155795014984475325563627540839720568720582540726309014582018892405495337215802164997041711431134003188307274074255200302596321908541241134553517025871917687099000904879478167330772939258670952037017254769050965834575889359435893561279132709423777579683753175291538931691955956780185879380077844499032642282392292833314357242017488267734485251119905870312735988862698750965597391659894158247195466248642781168059523300471441551346411612763139739932566575321034275224598381571211451858429447631285271659007617661231902107997004399901641289288757899289540013883523019536892626212457793030864350429771732835674575110946330432791599105856690339619789132707822786934236676509379693658573294824231296126916632741286181095007004685909563670756337294310829718057739481528843307331185366951579134717013303903280250915938588590460957094668412292421563976860365618418584527770686281115025166723296710464116861832568745486457976952994481864882510616327121598662218728771037271167831763758223721611131721932515394170364150138516695447466988855257792559420420805399692763004777931711876080109930675663221749721604262200081601009055035098322867941733030489503455473019078620339114825009784399342418417314886307419193014624367050058841584028086418798884044531395797953719132178505069487683159533588399462489598687123750572127328384301798957417584999951349328213437223802335220792091232932960510623854038069138156947331809526629348648410536535590093946425310058607267379094150794196193078761684670250744731465124252691073326743690369667626711640304929901810132243206582268452386186109888761717626229261159737536460678407299351113799135685202013469715018539570999924577659533596284960978949570716984738657003282254250923380636940139576583680776909303596387951151341891546662266481989055786568439244159341998203829559282057485226800248046415032038168013460126853595359442562894153072124783235446770205433658176356117396353429209688027778303341790082157871160265312997071814312639248013511438808274607415024610663217460182508677033289147735082133613351715398261270912857908039038967260197866701833989358368419315166302219308993545177065514256154038691116988093084408012126384725705353849102795965985156722280431249505822323971898221974330830521045847939554236984612606116706931540254879944470050551125711477254399919406448951991194590230268272094545588803469337510966989717564280069670858353759226919436908420682456415652275217900385823917579802888697964779484623305962524390354461104589510687704099875998154323533885110668707752527715499011251759946908578052071679149069796132660518675221074376366387781471848210961873959661712013673907050991048304224208275205656606148827367001776049288521250729232185222568682857974011302946333443417590201274284675324104600682651384221319512417994272012808501854495914171225976638106215280128949732698584959558371329095810559017901447937075002336057237967537707231602053589608424038444252865306092857382826694425512622524627112894387932897889152286723339235195320125291803497014985709313727821042423534865016531661527727808865112411666456836514096811619019109660321345381503250944150096826900279412644964333269199013211167094736573699912974599469955376415452901466491020257247259505900237148700523349340620470443697120015938701997443972361025312777479384314212643465490752577026036472434218410057377865778798601089368088211185871825843288647363212830993976466405478546524511757294624970058696296422638846098036021556214669362967856576118944167028621288492461216772419309919101781539890676389928883099883524321675221000833269431607645896363355450863986422973882600909413041438980275016580488713039115775479379916695673078097460879865275713604788559293119886162872562898846279924518524564994926952531774897833251583779668307589479816386097229161927020035508508394229011171074635802053648556189130234640352950563057412723388170647905775610314086272339453243530793072167827802513457854056935443456754000001639623630777985541915173267855431660214115482912106583239266359018985522196152423231242036853351441327293621677940685016831268754494453093973221831432662632136084249609409357770773125371206233272524967872234813520882715583686178164942158838794849430061999990659975824028011118195279114530469600935473405570468943862023941775007372138048423287862053361764655753527714388366868844080557433540186250638607993338424475246434239898103349525993177001520153917964853475722623392169854464576189099676680303561373937928324559621438402764290207919748695863516316848608114096800624910049283084280667487349806689606358008167801238016793814496845180378289223226107808436109644856688420890636357020101326097634064035151269227585503375606250350583321288636071171121922307483319550613207059408871921119455182279576395158250751157425255588355132949048350788621536020223290468514916026843404688862715409029080937585182625209864895251523680730502451189288553930299687861161282362141445158416865116254771043688339204403249206504900131597938256912801207123997001185632312779624804191306933433959318645714585417766264024644643039423095025108144830582662130717329819412331251584686699849573565980751565084924121515598764547298835430968411995780322039080384327437054145105722605730757894668044332646484780129360750127505091129477420366611216914584799730560600979870160221037910862453908369057500673894387286886696622642495623219753003807826499329199807831485008674814028227244567135924599576640351171782985688693541842668471461168682021459037715524199357041327788228687273011217141027212173288255813265716924218054367372847240228449296945150850540199332875643258196015463307699728890699412597553224094477219423092954469178505702520553711653927675074030612823808222596347290209048379606396535048901089373366276319052575535348136528846837982897221208179871431950363147636535761834299398353499080154862376191156454185187264082176977793098518566907677351460448487697068389180528300198539270724370465742732937384818959185405199337462421472609611240016640472529581737106746146711266184076697290820323371206546940141866490134626930782408104222824256024584179757892974157260396178242250839942142791391370676218411479096505473204651468202050214415983466122050390904320419937515698751656902928866301850562893222510662118683900845166971806302254243580451871754466945695546816099349173104587468592560157237795520563767184594697142626953530979330675210720870969309580074887149837563548074808730637936900747911882599945606945571467577048425378503137736198542807777924613619734287267854004587181881925331402860739072112297627881139775207038515158878117192613068305771802182562790039679635661863082230642236299202597651656991834319171024360876372936452453040009743378101450260000735462292557408191280515263521606148048181842509421918958247801373476533350812077857714202430207782314863167747105473241466660838910851864297064045775881313903533742180188219352079177802880175638144232950212544086626340007322657145740881604543805849569588844293272273968678079256975788610784659498405412649276900249135125210171950498273988198577262011769531321964751962644897718084412078952600908569878361071544928062219225460649175028364960511629845631754715081694340813004103900816415952367508691206587215756358740645834279920593318307689116779382796551708811258395239159719912833984440718018568104195664176514064970555860008575608165929911527487147042084973946185743495542321449868131422191737456068304814851517884179224729198406418300739085681237571427821811816449096796649460065370390662160511359462076112083162298839762470647022041235845528064929418703981731951912588193185281327087979827782883890745809534114609524006466999210730178206943148790782638008886767021443674525299240021442195378475440882057419662490780661832153031797703464346338173733088431463536459030437582591086124484713661487255210354996229659302700528672186201383988804921505288404969551270463694164631651247395697027056484296266091902305349324411855643733443580088869126057296608322822720140172777637936647726870680588436584526462467477410615380528380402908074872983322361232612954534946887526449634055966447357837389425921016226679665309102953702704870426902049841787653355076721462365415546542618867704310675250992072155319768097879021423429254443406223639136046214769171381939987765367399180939615873439205052224369360865624799947239572422124721669188297739082489546767290235303831422966555073969691771517802810581035781600557231504112713549161924715103411594380048241266063162552569772473200801820756127166352655074650312826936049951368189498891561279451631710027142835210704121684289201973949242232837866787816998051968732691672605468436209168800575321056586913989339907915235179738734225867412655586314353581540896561031855440576417985292644124779763043526727800612354778659394526566471090766474436720556973571767344692196866650214437985084006640709795899094121002183369760267478352215389209552010553263984906175138709005756326681996319176628407013854760842756042693479796055260783481110281239022159870964064379582418035315615750664602656243739806451762504901719713729266936751045787932107018845995295532359944310994010872030135328841105004378823418037350270093189517135515627663385052336568114027147897758143961820989387635879853179164300798115073569096300691700713469734213134653698719463531521151280841007837008399808539722201836403375389528005047663891825785673140399565266189337216536087740738696100395256092616992393261645130033484196742653995941458998489277619938716292369946224263630652129288107895734483138250914434425638584181342577168629422407860733520665611348538729412500197457641950664667750296583978832075888941120755324988894145334041182780504306802338253619133968097318753326063600375348771608467899842822068431411791510097931237836187878992089181191221883319873045207083258114066809656485011053455992042011342362339627531523359789660737002535676139862707347028542412311824156455060951367122457120524203134694873730992689904890723934765876733258037227116558932447793293404827386663388387875177911873146858713934370774961403073535518212083874867099721993729338188200178713369511467133888917337020724976975692473303554346280245771260254525904956173865148960886130999879510784560059276882841950143026791579928602513922280665717096959597653530634544280848389893696064662089348470058539261362904345370846487658182989770521798842089326593179831437495027804076121292546843630262171257512285362288185889063340183857308491422411194738277702014637464195184458255699742500852956419255791542947632127954081429278067500916956784066387546863379507337287431722492585065768096099438075177440113077181552502009787136764270368661463655434370507882706019673598195175839071626955105545566538511538936294207942474511654161822245084522082324615585862317286024490006326743657738318001530240699776118864566025255615338808584629595197486379264840218521995380682946776035499262082057780721116459026285398927661500037259392377590056160293256270916498792242643743513772807354345632897912662373123399717761218592139779761713431871562267186930524305367593996953257867919819823188917009893811851418066147223612336426630504933566523215201678662671459450491090326959567412299663199435626122144151590887719714301681212542598756857824125443653101360416640716871201439530264864548515191571868891710288433904891032269939240099425658841664537911510903777727237686377893801870095192331551878620285365150967226863359541242639797400688596180268458471208361361385802707624485421157639497227497671429189837489070904499169978185074969156830161546347110032257096514222842537508277227644342771919328538008079773207996930629635748137807683295681544764233019356794017820392576695135445724146192166331037889249922290938432084618279617791664740303504758954186323014096050535658597320466746881169504191053198976242666680944902007077467046610828271133164578863655958003474128647882720042779115840207215645007395921338306791271489288275178729271504645050233483780166376925278277859215406313419914340825106546753285492467552610843405336834067445882014841233455559293458888703409397699476737439000673190748794433781278024773928809886392061834706843662087945933497597283176843982816839672702896455393721676869728744828140162946999174705998892747181154652713145281517534080330300697597849149260010334066622257952614910861377859837364597736666512829930144858481355416717952829217711643820973065769118752566699698106786661577427229203956806569294837605589767418040106985150187927762775389809828089097624242535702712308785654046079212902221794803776541839217422241737537651345892150381673956534926427720323881121442288109813228932710392160229040953677682063781746982610466104782871583748000839703318342920555964074358395044396208144739117897819531214737858988870476282766726491859676690715558195869889667761738511073292432511400557308977360715070774101446658313539560841456587624737184907941828103020044118638624136645028115037215636028717361287580478214835561207524983012858070258288711342000257590306538925946939725332759285800866800819575208424862434748221341129515967123325602707419450116168786718162113869931238804619526853176330997951676338485448963995100333716877986892247765077831442101391399006110110797743933601811948979402776970072406389525435337537675891262841353050322174526476373223344282983098097884552790282528164905249262753564288291295696952850345398682403035796264671562145207680357995460207740395441807058320857964287123509877075354151880085152299599645752241619158059209885116202714314644159257762023443272481510748525003229921735200588617719984028809479306760460481682484009977557948329341571894101312016005125988844462564544819850447126260649431917840023482521920777257662373059704712182956741442621210204186402275925256383807491079336793474014148776552940106024118060368806828818748780732059367279350317417342819607756707411829079036803953803826855047189678482751230659566611280867074468884398146120625299293263670957390805867256120928713677270344206544210498411702326513028394906794211739186263630151269649486420643382497379568291875236957131717449097949561936745753207027197262343403258221325833969648012138565551596517645618068726851131841048002148801814796143145000121203871365941270303286715455582578366698423876831966305495647993457675237260349692320769318135608953930039669095607080314782290397923321921051525678929039575108038625434325706561410096504188066536146927606232792343898334787611724515310054920579700546539453312354020147751802675986917835594523154035954029776073467212428635534083082738649405413061681594414760311983983069074284803269774559723830552995044841577928333513607013296757461610773140217352313125010152345435364907725692365250951345714201735932826914421437211524882850921596261570122845469040207279667709882226231625203942560543061795370054134969809629534797599485232592766040781437474995009440774818683790687357798678012790501117564423865396153654932575046113930483120762876116988397857425920225749269550747254737211493042630073881058631028233549650623749673068321194864594409020610834082746722626216788041649589705355419369992493022486480650583695608103222697696739898094827237012422446865309990556927825189174970394410256037102478081702856463216871981345733579550616396713098411978438317643952721287999623229550316061801533232454655950404791740789926305447099071362725810526502686391750373003256517671211793112719313590821336456290135263197714971713117474933173605531686157463462567071271095338023818778908512551802196098786413522944425376589875537837322874851835649392430315187784209109697333737378448992743213937629616564909483237676966495031004717198206462948148402319130047671165567602951885005259529666009401667324715493719879009315473101904212632722514188352306756943015627023804614176334009915604457576103288294379381298357486047334332238235766830206557526792915833713726533712212688665574634548394246372657651875024453533501686362667112536390619108063273065478659136091668217506166665704947554671442805807749425869789933139775949845076759817780215270307269882204575622158856350120951676707843004229919527670462276093201349035186822453193875278808842259018338646218560762341768404700283355825037673375817977150295369234949087646147505603250518165922656374158707195842585273765018578553501765703373202755359665421658404688542023196445440528498552849859124028532323696162222911186284023428872472089157464204795908718939292686816199606945771814346638003984649962714932156031021769313586082185438115746546393372366935485676184730611888721470659549619776106825062275183195576910114110741515109288771468773079980707122083256129255553384352067960027201459539806642176052862752207781785585842623158881270844453987243890989271871115741941208631835623449725086229771719459549418486852576853845155730485267340399882611097100114230210553302294794178716100656429743284742914731606414578483538140309292707616142011354918607950928891639932064173559652611716828912987642712509177779142129701755257359355277363805528069236244968805295511180657962991991266579429155221497862395233677017365413967812863041808179422489378426890392482079833906641423882236907876673000981985915498484712881340514630074382512347173504334018476695847127156518722384285522354972395113658106889740879742169508793100111637830698986814364200406519307227308766761101038185799799524902375739889188736190548579415199925341021121281040114939504776014115173359164948079593863649598678092327304349243258384197911072194666821660922214652436233323377934254036953271338751781074370685020073489047707070341835222302494137030576774682290148695623741801954308504227506122562927363349010140392889871128163361456518928066155311806801875695541701260160454832189790136168709922481388950875848708665098250756975334401034460284805793001916911038126320487296188554663232384493279882770839602619555369064485107612652874024028973113285720702468556126015347502971048575145938728580302960689208709151618561615506926805062887949199759478630577174168444510439405253626423049021208419973880212905296759005077737589617140039807977368274862806235673328454483532655366283595295134028843894878930901020736089544389492190274168340675511346626823737761364191046861259591711883824346416196170795061546557238941712733858399250829895408962506053672246743727999433725456932020930471303294876890234972768211783155398860413253108810447774920340694178393717609254450281743827452928980431998662819131297011142754754948577917138555933035501934589527570631299948699163918695348365058541736345517515288435166162533558292310899852958463286028251477317044589653507651526780317345944317376186689600901297781144360652736962086731051646005444301321242932132635518043959514200355272906227429785339926991376104147112665111916856793922439522602670694852518048802591802047434841308162596240913665635012185655388644242989181271294643397199347926660968037937041572239895178907415368966700571120653833466958013359278966362654189606945844262146542590611285243432147467182926857913701573246229557522881005737096907028846591943480770614687649686290686226705273424640581819744914852227806709161438118386840592520522815483418764124453344146168412185120994095397791431816812372535941172012068331049804486137871596795014414038483608432303480036925442392095089038927947117233867839079055356551568455249120735994166032248022859789958793785074058301548328408707187069387062021511174900775205335188239371713039378077891776005407031319672494768002516095480560880492042737457605017797009717458910448692841649252624729627588047395860867655624779853394097716546147273353903606413124197313826784129309455527869363008451782250052834244052871622071390418246062627033999426351765014182490255708254996418234539714974495142751457004664707187155302682312589041491579877183583679171654947396481581553694962005763374395637456629694799885664131119806262107234061591509796580796258421418470814435088328471779423837034316226132160750386258895714435589901841330553889847686102708834997680224109129102230122862149123110505428812117759126374173151060469188224775712528227393804501842313604096249261765071328084545227259621822177890813702669916292819244567372078469919814788569339397192414732878016514289913185311594581291324854494734297831392600717765078360741076747125635704914997601364295935795394747463961464363816357643732462826082944673706534321565969819657467206273673778969418083759930060197887436636859599298094295804162738119734357759178356594953604899764935074868252948883662728803293711353905633248926586706884349937369203078559169916326851391083561489282445861887907483273149498688308181620679036096490931696853600533166787684098732244407811674158050334371354571527854951805809506754816074245093747780728141177206920974912008341018591164390123755023620906445254503451433582410462846723080153797665819033152068496839763840002595107368022401366705856096510514436233148748111756408066269315138899018107773233126516836182122224004213719130525324056251670251235861930254474397734169496793597348942763155767221488113732370250062727124825295317963067037618558645982606641469261673135898002921172157725048727031565619584946670482619184556532512225936715318425460706035814853628566425964234459758797410427375404510858860478289446046368659888246063026113960376633927582715781411337098568968740240809037462963517280887804546120075290004187600485259637713280542664469579188303758912645106762670431175612220794975011832399813875780243189325201479847672169017852408221963938371949199398396629594613441043743355235213369695475249403088670749896118305938473576032066769646684172520937669335226181032761936827346775274893550375062668816181674572698351586282469276277297981491700523355003473015551029613574259304229292542717791110028711051464615372262787954681414959689726294415027407579093277143845383756333103487336878752691449930030808835619051333652778804467405784468682506016695733929929472115272041459269904503445787809664856452017936431770796422857360829425406449100334799897475947690798919150087525547463612402058259411828463954906791722415228578380038260581119408111805837612369951266755305516752477469159488181785191339760703332041527578971080055378078900629776219661683172203269101328055223853702974191516430419597435993129824179245256942400645203013852668646284007702166578266124061904653928111696809120859836177081108501377528857206460254064812122987206027011592855050975237569670008888355991847374367803629950211709775898546438958919549379301444850902638704294648537017388404316143586043955954599499997452986862494530956108517685697380766670543480324585356517740686684256874334726589924908383886909808002575837704032993146958325487131457910150760301449992060679646713971103401808234217066612753726999974387358839154427156979766918454842809079436356741006044147531242379090069149797972821815830577660841405381527429790170379192686414696352919120462433349584465306452929428088781903591103172080847137957552902769478934319864670042286165706097346494441774107253127111742131660244384433350176630125427380253846330522122910935612369276520066030675224101095086401450849182528541309643743542853158411445640763444113465786955858369165893480289237354097072131623451636769279892567815161855967447514331067137398626213726584764426154049627018460795334451110366010648502284334853191375229320969607582823842618442167374719610258755425420116691416210539598567914582647569151521899182288445520581355496886730595663038322028941120934913334959572008279892251785181693245855816477470514499996603814017461903934302523452340939217537875390656631559333419669129600738846805584955450912293413742987736503544435655870668529013312611192102023835426176423197705006162659706764772193385764044485850213124225279982616644371893285516936767109578929870277394920977489458887784156475766721219136217296011054101824156559710530496735404384312762269968819355439467050162818709278450278163289037134412427160130278998129483370278189259107744367790136462118700865152029563109864704318436600337439852906512567713108332592371831397920629228806808266798300027655541613077587750916164953505068777922153344886671109229314469633402018819239203930321173754092414236368858101994189862898027891906151799985537562706360982721202052025870845512550087692677891116131421965070314599361149205810173766391838444534209328935907755226391422918161933341832463288395611235780188525585335611935239460006604345598527835936430367475300578703962349473061464692781422076435397610637421095218628739233035475169386848676585947123590760319884222399736778657859089350847106706484562004205628740409365519031885390362127291090119409027219621455230945652840717551532422434208096279888584861269278491695240656050863323225983881034938602526396098864520509396285697517060833625803850143181837514737008735416471009114133027888072745671867760524983600322087481253355824540330609854222976494542922605783668843415640483363345392743696943540765153677332490773334474353399376086464748756277060739375464325204856293512538906790075684157260154052040185097937030680319356915584827323462027731795627949551741516750335932001358671176038967351113359764889219353287176464143501483582003975500388858258936944104809688031269566582276693841995256166090959509508102507336767922872733987898962603589993813678453995265224169404609641752841175112291278178895493779551739826848332562927203959491665253344129824501028582335519486318521344537602495820797051229112405019647061231449148206218143248298251409299994457137262143763062320812290101534069376351872467026681460027000112158746571878173573806259391103770587295667484229537437334183050143455121248888389112103142720524315414473130901326360490827935973902564433390221793828445505269065842280428413846306291957623342876368625697662208524822813611163754497537373548211022041852558066424177521930856846877263946045301384870809149844244830025871214655980080993976014547434832792872122590668125338222406262040942262623296528354362527055235959667484904506475214712053311703524293826148408244607147572975663700144310943759634920313894468207835094968928442413602235967906263534594581910457972713354746652933686390810062660301756574873076872793374448434140223794955242844219376057305734026586985534021266775002426616657862515705720917553917307290278831404518048445797928633054505803082291283084916803998539745521943439901033016689973529103416802763732890488263625961727923894724250115768628730806976674053623892785426815845195527190739228885996878881374389938885063463858946213624389749187462383273596832505078754999034010821755373670197362863363825050127260239295334058842587672003066446363064723063250103204206324511254076534081892156270353779286669887778996824714755851284640500031974118827139445829143056197896963741631857029951591611028733242208649797630324764655102726612683080955224110528043923423622311932821637339235283817295315170573617009114371587608361612592217246359702634085064889890632657702906906238558860915900787968772833347702455988393298193364722836996247517755291861039441484091072072941533235831224573751077729875896252522592966806381537939766267293733061651161756280969827200403576155839077387057480397198193292940541861691815492146174187134168285226851993166294128690021300946718665426308346215128062789038122599614587643654232608076655598857206068410664225948840346034221299657039133715191339558542369058303172155088037448329712731095785335780931351933419002340963674062377070543179131776996069527055460635296118448548068369703347394185722838118897422623610570454275946068460437230273153629376243711559566962622756735605799301615891641042092877405622115663379343972492108374365016115924248946571680597028350987574551668785194896920257503342546596979477832215352802703110649179813820844936314791710102166468308358183352547374778020386432633057036510288291908435491866615199098522499055011669344602289626964067229478140694005276426562234369926562847267179174318345236016348862702961876972920073667012672269367233167845746141120124711505542496727970187303027197116143658701580800711742341904385895919198945797121123856101652743973052174861300848672186993604382973142610191553082476661153872407137533413149718490505085577785776756899791860142532335894295260004412459356592995301294668300948573975518397926749501234491632790631835230682350686841012384632690702992926057554751683479237301345384912148819446077016259111709142520017604117046645710987171138521668069458273338354178762742038457787978404911880576990257671800110713748205128067029651622574067003052613838455004365398187721964413447690292795702988951130716975995890234111188688378300840298800112616791836202179005431983770585221327049333837064758276023415821741763628375069477878034018358432995581422969951078711943987447569540404863437402209662294435414331465355407576624273264220095495045052262406156349768597413583200415857933214684835465024380926262059766419498849738768266041170974775366172915860405042745595038363930764926269700213671677222950079501395836242221450742345339985464367806540802251042786525499522030623939294410876095669229207780137660414173114930337623320891409121606342394324868429503251547857030636759327848482920294934536958473250625023251230374777977952976565016967982672070035570044203288794959535853276535504619261014866476345810705263435330681954324044757616796263208260829233797147544780378961114548816991456550740074205388465125927481809542558786952959995110866999234485216578420566543063098903245252748752427840526206751592716530982264616246681535488974244696979369428009920688187600934060742733921305911327223800351533942836554492438374652495549410948626869761655674794548324668465031558949895949351902527463606491951550358593676358975426617249809126104201358458643628140069193246926381253341554293454553043980949398556859555723185010178372883199686234423109216278728762568034642762464705625420314252811145189230424965066817884074405482327328265088239746244312073984596873753404037102999400249583001697184452121692925944959539850395771608929586031133039209038975693561183755121063059786955176567632308968892881357041330138302401422388909773256614676666077542920210328017815501271106848181661687223172343936534507745423041121608589730537952534474050359619217309370675117739780986449156189112329220107029574730370772764036820243251609626547443016280318139680261905369018823815395916240156408988596447997386036471002044441020935924883637725898790100156214793595768149100569699887576284892589371922958103502001152605705238209015802895012987046804068498287320753520910983258730485475901802082607438189769711986391417749459617364947067705202173133720213211308391217631018532580209156259518266610501824561936698511662381541779750671240094007692793675340468946237766634948555457285388633490217930994387813819073279140265517428375378323226815510940751738800448192006479979158194748358161154018115412072688013560768953997791815119124017540245168249069151533556239729157579435349633124065001765334777486990844134827067286961840924800021020503330737786250887596271705890379702915086342399697484156626578734881603792398353015561233563352713465826071128301956903292850365661975439834269308900799964707806904913452942820494094359765105639491969894366205082518476894731185869887601684775187326924402108560440941282590067668365066227866590467487507453120376052814348416292155538632478224478005326338011953161082871686135470818375043874772328583915935447853119405721402133870005329194794129128944212323308363063138080961645470332333656622241599932101511547377876651613024944432244084794888931740013310386710424011213721749282973324335340661981427742248881076316675042790163724676722130365394923875211027154305311352087438482904520265494659408198892707500103942163878196398109280815946871916564693322332045206328304317917917255295254357351115035566353676575791061741483081868384529174369425555917144971658299967240965416324884174282230609976541498883360902180128014363898187384698808034061561495705174088827011506517850942775643212520012834193957981146284713689154755675106974205004728759089446118550086709758660556878290059900509167080741272419769937616632105288249130321428229454832992604255417593789467724176318578949142042069266788046221167681296316417783750211912029275304287711263087247060888969558129501669236800124257144808585468058442833355673774449676639972442202337524247751773173611127788361734748402368507750615656022714432220249537000291289233641649482390115340669063311400327769663393541652290903195635738983013366491349367016379261622346319679276639588751965163586744383373698818542193843124529340810175221409605250998752030470173233773194878946107633732931489945315067565076076814105041851146665104268427811981558410144434593447788013325728549702952483461986755536080020402028260246793419159913926043534592616795725476469058742215990572782427514945719312579905097298910655601251470053019101137883488934943041688979697728095401242486151227061318721974010952898581721366675859031513841645159839986896130570444797740970895481144902563967779156510892074891389363124326514394813291001614125825802849514125795270056656702543162918951801577432636266401944099716939413319591942333040245200824033132993102559591366797163806111830785031447449807870421666079657678038862448997483866267754621194271686037593426972067242517679909220585886518638204978109266712798187191663637115140612642610147291885546509089557102206570852859730105623259780858404473845383197675160811449163509364968336785545171720591093233312867595772312377907946925506142601501368636650694149094622988962700453252456464427862312109818385440430010571234416873290004575408499610148366296607811036167600500686090606082023466651656337799032250771413480314790800883977786849746860141302466514213846106163965015183100850966882671666873700774732141127305821078653858109346611691320143715076457130406884821220810156133916145991792639313566262255687003692258942662668617334456540757325770492446800656393213801386788539788134995462316120799756994108450389536454926139989263951184587551966279822451940104004210751049516016594475616326282197504780012201267717487680096395288089131762511498405807798808737969889291847092153704978011983839770298822695930894759972120212813771922478764580150932219735936768588758012318666142270899554021386955926925055558995855887981668855676152489904167160948892606710318816636616202745625254732858292832979056303221512045213325087971496914759470344083864465881364001083525675166158158173608790565243858367542152285930598778309372520842261198796756694202145418777781354801148134252877437256137773143385701345264089098779042549621967050220567896845023295817033730194758860298296661568081446027626279642098453590574130441807494319788270729111640306718884129968456195508882477822890162132244087264400370976879710759484046547048156066569195593854002968176468244082950111131383663256890354212181642865688119493230302195607785107037216096908762035624409431315317454093437568087376684433115372739684053632268859555593310163102693005740037792058309307564198031787121571110974833125204781103417375215472514646346481391508193130949684228217076000418960659169246308538774160612596728054995054618414676185956676351135022801072253698336076855438247292842964972920357248223395032896558690530649137481653936725246588931682962139916949050407906941346801902082096787942674691909843245032254256032594878891701359520840411594241807009765815123073363870743995546194177933230095894079253705277600660436414898957661076408303921730183285251217653063610839164060044021231434294387734575911687599766641720578448460976164376310568802014431107325218326217043258086430011465310343632756329972891864711545422226765685501742429976787870434445913020328968001005097794192599010631331326074027683591073943760602009575993409558189240735705970539053763721471873262703225048666111210513629309072409589493747733779130606236803422805830053774819681709683836997891985974864753481023363287265750780474890309162280902512151082248258862423600907760980308067877918025870785808770808745279395788902992813995927316347431660146722446511543755754661074320477986340976222424363584657970263325246968253768127068801525511874500560852380870256262285577253836994278059062123431938038739338085847193082002565438046120757504746844932432684260395962059746605977909889599583958639343747633774424021547070414371482119282983234129624880474349950847301701639013195772150133816525682276705054854158122394915976529847526592141329962277821764434291729529176926592374084103935943270981450777652031044482429324907918919178976995520353638760682255934204348970294733285463406378683596180754672547863580377278218912997851125202905852879541145080429430756836291531231846355993825149589933667841879503639139482490337739004707795247136235945603051103491787308943082756699478237161775861042623439921238295660492391320564399294842600847120805501717492270752682735686940334750193882305395283748450540291258275717981136273070502438008693392891988141607162155594297118080535468013621026319020113602793281169423047087339386397216966651045439248536491088413577751786789751220440234068659783930771736666929753005042889536793188413558188248905878286270763679046774842040189288352775339424997359546296439912711801466165136317369004720862229358850545848222745838616120663438125887385968235601972476956355473128918888444466787350945526921921030938106027576329951177842268943017798175695507224126308131987092170355754961706395065320000390090063388244973943321546499497740503755800956095794752662228854676133229730014829362640899894798978960253271146918170852103042048987475652521494215092679384947478770313480454669479933518923645230896361465548686956262879511604598327574485154712533319553929170329178924213231535293144870426849208953804618076102470941759451833992665259914645157935950046240866472941508238940140077152754331775558791404795370530085922971216049350933483102083274824680200044912279554455720672720836769729793039721973308425075176690903393942787777960943024024840203528640997754834934015379285883776000572637513793707516916007720099733774021092855153027665833158711592899806512878807071325586052768784041582926505329239753200835556584462256133382392623494284617243055660524635322364304968098192095354727713839152160436515407363632063344416072742969563046243558032518369359172418424755667502694427962125752615696826532108951507332352572535861643579275604882932282991300508956954538121471519294278243489819913882195314009316383276880624674998039096906184136607642694200258695735449621868708597363436894778123030588196500282340910069438806159622996539214819055823692439437613050954943851397426328387502927433004319421880592682808775325079927187912795118230617803188141216852608003262279303696963000610905937760493041500241234962974953831120773155708578131297220283061626386189720262051348789092840011908328750905396297932733976498539733834740416277731090266464700254035692326550953034004060102894913695755064011687635815180844266323538915068671657183828970298895528271170016443565409171190269474361661565669697298065917499372560571710103011838507511929589621410034325933713523480876753715128321135514108750532644975626605809257186181752127304288436235191559753510879596314490502633214796908581787062359601283355085345365188221094951370626269499216577992902884252724045471988567774341550448236579530776966423882096188234332268373275902433203502107339312348494732934761174053856073885476388355505295358792147149751702980280951547727727640778625174048608089545198539459318213318405143503358741975856314748336474249617329788338483796401031446852772753586087333562249919027619830577417840015257290055682648079719859705285360319178356270233751064777119191648599356070031854536433990015811676789738931876237145803252579326667715391653004469409584881154388772238476125498996389457897523564705772158465395490037421739030603247059745384806828396540342301828553926794370843628852228339787009323569448488754484399212959637146475216462365481237223744754130030348342567264072662446303138423362777387909130462141571342295560955961802928307748135960379479285307292033490662761297494669340659580092543491166107037907453626462016065727380463436907132062920105146381334504072989865292116418880995233762748756017659456884096361358838403973620983195167370446119217154108334737383974241118429019686403014112255897225716011096544474740550935987183074369550891091395774398349844512675572908304897006967798869142970287477456962457495447630164701268631375637227273095226739643184059409854151365458346442302449803267337081774334671995631418635762886981783030192252186508894956460176197487727057495513493224468827031390932702721330784562679879306083311382747143904885985624620785026646805537071305659457446319734000720718862483014398332773166615298913406584969438784987331805481225782343039683309554292888012603550147800772328542670905138692518141172719395255383643033902934289297403178533793964007239850763203537968378266662788265052343015086261521217680566935188571018326080027806721143144910698625986791198091705894631574109193189180812695024283564816527708218588755466278142799703675341520965259826972843634458957575693223759306915919234054974295222553993081934048671115601576065320584016383348471889272913888728617674023149445033252161963630876127775544511265820941704800551917804471322325650549477403112561910609412577654829503971241406824490864838602108835676748326184125186339981867575538267414738552537488187985686883458637414731073834791874034701763354554611371213545523121940772243942076643955550103737067757576702643066691012425762315328993048458704398478018235641504179214010693863403259875678025289961619067406489897683790459920036480769755573340266267135695634646729536229834534673086332842432830771224366027677490570036338809598547552830572498036010987584284986072466473306006844659480924049531891811871770083017999086130904304755917121052307272617989869908302741615918152556581834756291943320540207620105895033874307119364945230294349732608607905950060795490297560896138365552475043564166318489051821028050911491126472875744635753339483765034212447475078246100267862913059685090716849103165804919802308045604385302660662983478982673640261629162542550552629990068884674644233215838178868695508544855438314416195015691903016973656299549681068528783167633227759449873482298777235421644361320194188281242904888399584900121143741038363391199472610020844666348347489809490946123907190956927589646732399407006674388516638072872489659201918998859305605331527437185992116591725599397123842168483451028860527510335789030626116126859115276309194373435116374961362700194056355180691650665599573695254732618755135829500268335266358721628826146601189982127148580133766184787435026118593010932374048243293235126263963271591416763222182901753743247210197848769448944749456806174644381668212309115944495496170586297505805342066240194489711670902979583176403393743152617192269199789843647117641013187421617717153069469752908610772012833072409543095477230134091372512315580039839180046073583363804779758338277088948157195657657476926945538184760927314992537839665375718375962128556517213535425221472701863752407238324151046772337104329991050405244428495691446081070408880201595848115479247452480226702586577452254775847938153882810497644616289547460918048230768841198276918784660624236435113226290719023624699820120713821131862630905057582660058382588362080638392631547615621530050240936627293211342191059879030501110537798870851361050775442402627221765157620353532148095695949268094934198333220297029340904364940244354575844001962771129385839603382239401972687134523008300040792642095234789071590430068237293081441707403461992679214256847822949706375343745145163515878023743943176740327501677734671172001492095589186104841514844768658893697363567313892273161270406612950205431077864359139183404371007512166838289252963796498973642272773630835580872026111818893443765769979208606589458824061262981733189780078089066718256374214455911362991200949171420037028490983303173948997718055271102807871462150911642536344730367336076556218557172274484128197026660668122589808672462160387630998228038899788148074027977314315466913850095458253798631110711060508316189115408057135998243878934195750777388701213159726636186462799589969694517722347380012843036910338822904922642100840508743436633413179879202637651004831269124556376412322326426504629547687058836900477582267235317522419261755632230391981586746906667172760924674002494845194827104750126316013857761776625698362459268144540849464965595890668602216520879488198287066068232844905342461967255713977739419632853426845561765430107890893827049688816389816960015433148669203855868384728245897841880307015778606405293299062721534586038016219568345393129047815141557808335960207447396638454215918287892041055221323431545677403632129725898900987108985203603818101147644669604596242771451964735036005885914794797154494902049460096791488453652504370524159235423888335041269327072557264583743512235560411086448419418605503619353122908572069576873408965920165359672371880498342646471617442602058706033228574410868986822109789018244513858561282810208544436791917943421826953841930445282316077810841869883962941850839323428833428189924623754685919806473573827331146226437699952927728849025854906533837152134808138123969231937652142409343051313345130516562708134664746990784699661869764836679153218761272485656362239564836834156713628481423869753220560862992875397299956506062175875488812981895478844830692834891082234342052640526791669465147841679254283168212490928578174853409928201265833967161984722720933520533547832804657664256581609593032406891067435268895030052653984441286827506063382544399358822571306751289902241966877378208833954542282172971068972869094589245680545595602450933722085714509542746120267604178279491435533506026052775017101598299271626080667240211493509068490046743578443983465241354740422184100777842278188447073351028229167856598237535200414818666373172578442586583660437249618859425621609478923959927085002374581653972770338724220490351753569601894269402006745172902789820207746074930984832878779192892337046564279678948202750193375042111351815105263592483840449351458729018863061042944967316135609578540012639955134754165172707807294701233477456735619933815880418721282231502849469669494909185039546757465434701100183937367776228261772930989920878015833712225509712834231701067880479764239706310757930860431690101506175791349080032068082763341279042851914333809813274640264471407340454238229853529606755527513705706579182006860621605414540237618616219927170893665277086405565917473361244034829271639690850092478284996272445762808953455537643188067325944475475502501714721029421271678670635564172135598398794605268646858245630474095665345782164341017613679690938055804651025392823010987394192175831067491910595312112826987766664879973014960487611692954441579020993388901228214242522170420024839719113142042759081574676860545572445977935015186288624679286793244248178441996975730049679542068577852553152128776850266671051387575848678011959870373043700769471087134736229472166938433961475943145323307112021029780697745978852452387777530393043854751881474483842569193436185049440155554867922296148477184745829124797807332419200449486719740718560986555923519815910363174227768857732760891903020578438653205038220690031228589554670244040554110574969880930958257770564512166628621987718375310578393594015520826212924329762787327586015800624983325768399834596040939309828433827317305803135692822040764710212903074300243070127151877552402866763232692556887576695631347771919412397978146914116059892247259152353053969095902775262956714398346288970801607744235475792028085938522621208019186993417362237024793743311145770429143934066421242089770255256006047555865118852652057257369502611000948753827398825917622532687073702986431444473007480661347098269638517739617600953259528853154189531018473816283243821492635071828651473692861557022355649421076872372463453663530765564375028830052854737641268312646225753359347369198078052799172012431970698316217573534237728152261358281660947926215401224085757654469463060780252985188057042968421583995674893203623590222592100377172458592869933210731847806174956114244251101018528376523172411067157312511302349269702739641382467663688877083320531650650652204224869883331052805093465716385212479343221154038250636193176584534538828862850145909386472111239551941808764164802234224435548687000828787791157067066056607774654066425123215656852495570324289298163656642235726239652755174521242527721375919685395735708832674111988126742286050248318500562275765444483672137540350540853607279237597999782885127162954003250447464078731745914732401467123878921716561871668567038910932046638103017392060123036585007072486726546653542830337449471588531197654576284100014712382769887929439161741677548483768126203646732350758427208813104959275715937470960929807358235551206237682491522528260850303307758284269520621170962170644153355809514242856886640556995519917333818840712030598674707324270852644175974025253633175135783669057536723292079545020860110005520131581161971085567756599622708867804545973099553813172459943509780905897309736082587921602543855548805917917531424252214933785094423134118289184066731971281745094417272198906841459546764804775454003083010913514184369064327743198094602431065436135754709704252519641886112697539994014191146571803027943654796360514938765661479729865538856247838103126206160069753872653477819491328657189329434232828605783748547137721720135081185898002619981352460957743084266478953317441514580412116894142246729852740110502414679362297340491249216666398386932848596082127044920276595715818466070771695082839616062291485433612786850044571623082183912753322583112944964991716790040195562009740292211578478153953550682671190518520366667380225056432152229540479537331481731666513444918135132691557698916071097341939933152847885192200737898214033444778869139205145238777669505446355676658529640877033156701736792446684444257727467090221673989490616708000351518571905085781944767286200069587968040965786560594427956668580850879440501089705154984804724559058677103125396126727887724832322941483395200868436367201326553606129103942886450198522180059346966028207315905950773241915854616235473681715734735569956199175492845936611967028437625497244450636571328432745362635954066239732309413051268777919621135774765887940116057576181288165126341379764453847480218200127731668809795961151766924813994316026769121946451833839778064186010457467188721425107859638536492177164212068409534647498966878356225956253706437471944261381170120114285765764077446430700696875460870146920432358683164110598271954041262771948206780201361277914490684937125175219830657344735112798800996353564469424838083627395577315681762181348172099211617392739084152684405140363323380533103734494539849968424142002596241829100701067042321977330038898416396904507813309840462212735523893197446011115113351608262385985701716590385605979480016232250450402813417418592123707600527678286571526603943942242709123732036862855216020797964154453122522789928938191327804842089472651369709573860440666323935930455910680138582012508514348147152949564651074297743186257946903968529414888113392241143220213466938660906086017772371301034599025147674476585553521662149842822323955729640039470958143258673984189393870590675972023927442206467176491295540695608246703239415097263753086955214167722554457163927441007659618362419757746202986723895825741559658485493725790728174604524729878140971792823174204949537825062354639739410457783049109077599147645593717773077652788062706735102099993551273922691514654473119325841143187228099765111433415152746058267579774548800809634543342734530376785156154522083994223776827455702742339769634485408129610254558044204275363040561829836325857476098843632486400899597423841608897168426576237587046346995889303313669043425991992395167301831875991409725974457951057139574882457852018434093100515436323442395753493325070934987667916337588432594031054034691861331794365675209113450844635775626186037454205183930317320404973541034683232325956112125667187333741447914046213927134416980645514432782756662408197742850833136651213619606542599491465411686467840551304236338262384772871927768253022614836381272939979940697189995712760305365131876764305293017638951814214564087688998080409912113509456744556184729903975956067597790382942851719478287569009667505928395084161856549344360033945545796067858933751974132480718938811657125658863020056431537973031526483229640543392296867560431103925876385824533340724634930853505365767336740640850244851495823299228776884946033830700506234986267028905890132981096955367804767793454100619059914338648030486757773396289153857603686183637645821079030825351624391057389519109948711769346401351973705602523200219470891575736120494354788946152908765286758873949273975917740794938771793408335736866624333583883015194915908759895370471181506837773957014550612570395987634219437218772915312895586068578498667387308129714202074205808797421841650577691644629330055063144961729507220651074664631629277634358448358057268114217679137635912478752155846244526294956071950444868491987254692669993056780116541766185333261709443894548271704111901833383524182734204256749084337079803117286718779846358791319150843062530577584740957984872841401966992670024821864870328827485972339305990053502633742606009069391115978111253375845510159224571135323224259633684855102962061700279834605692114526899937071993795148047824392668332572579032820010549034935546085443956036573041297588373300073364762309916952879774889626959781297807002278309196772886900345862619387295803069273319117850818466531248021747207863670568980036914134982628434643365637287357138684753486880711213488576378702263035286878013578885887285820408386611730911541062374269170568010318094137156428485985077996372340173367390874813607656081217127354342944620942291015757142744619654983713523729483942232493293784472148773274159097957686506318307014698458225487099972948921616745710787526336049077185296408290413155407517609706976058869741172617332209131884188166909827570966929194932325726998825741420023953696919143268214743305235945531860823225687844287813088903572558916835590266207005459803325061364393142855039615163684117161038214198843177895571461200055480361086119650202114704966225300014353402823099074699523113416893387360752435657802566789739772683646894449317373882451327871556187519870702702099266892439642232478580418429218052245980610935427345920287641895808250838933166946463839251715904581336278350173330850807651041520736300896968440172726312959730119271020188891720384687432382002432583707858840331254506508078403452532437722534599825705207271360506898733640541218148819062341683131023962615758162728798446762921398496421037629864975449360780864270984352187386058272135888412295722426183432385330111265673166279007826245611779370460856504762521515891466358703386057614279574561064734234688057107909206380297999223258679222208486459940243418801436109884301634008922385945006853690277627976302691945045624023631223992445184633339126995765159085535330685926673399024987473308420771700405797619755186864203273530804178879269362998007589177861035904441348756845499718992167480412610405040261244068180524765284337860646442769223823917940826118856565841160627863502732282594708645750045394757330726278769304468381308107667942797318148795874488654726244658872355253010672940079066272165633525011925189526976379732725975638667722621519244123781808191490739807017553532717629714891129200954962118332681825464638989114390549963998950701871766755894137746608994844658225485135177883175465051396889708791584514446481350850836519039959777409668805031511439147192625560859438300129146475620198294510080461068220343742759849002771412972370089355276265224774254592865005407671947815944952704012397445214969049824775983259572704987275192524869391335763842717703169026733254467259438667771052918856488742186901201909377430015325231048006395922291023240050481890608046909644594359202172271892122272210985364632727624652400530143529535016149935022438229292932209296051208484531587251588413772762490203708988878646557295011975278119764625363048768185767838392088473583737292961587634950059638890745123201686802811198601937283395798793157910087132242268132582267131668585046365924537780572709226552800061631162737746956966633822392766489656293423945646571463143969210150215017268717207471452003085999960633107514860630118136865473649475062263813972849908726465145114666774584258073585753652656145564370401465684345421269689312383936681879924050224497666776705898045834691141374845475380322413078902020476269177065634077961836097616111041368028856815460772580182453051892945395184647143512440795196001469745940463502776791159729600131331718849714944191425663380504410377466202615786835562757977744122344780954070363665296035318775658977207873022214760216947901461365524649493890916501489858170398689326131052742169492516608902775051260922129081090920089138156309202992323008659937986948883508899858995900353010866834662924951621715813207739675798157033617827215624744761848132079590884636989723572677791416471763811774497929531737506976412047704903805979209399000964625430918404030525729629604870175239796244434454501439381229026744605114187455020461615942998737113829791563513576292496158485702884493781822445819374973361180540549979096871196309274770392129983243575190247112795374588550395977634374525566524134095665139088990686096232688273511160025091665411861199871580807705931032124515168280776842452152587606533410323848934362925135037048341854353987706760689043834152946481111015929482424469410475579925774736510048675534909112158228609439617544493460010879380447609264655447707196486164935387962392074122827257518515458705316472106846126962228999086695954920831040561302847546483355771747725643732720254126371469937142506466396441848526696494541775573077030715886201161432661125590018337108196928675862818261987626328616468775408163060330661229650710885792463343990601996150641594978069175349018586089458655189401797557470631367660924505343253683057573701362099492914985215156218887722727550264107067320458864393026638642227953207863676483383204338511694046116120534822931265758500158081995488750707908920064303996738550490179425017566024794362613029130303163011887273262956681237199311233178856606324113056298220511746922004431494511919310766499729260784715636429613851065030131558626339735383820638032753644606730736775130544945733500619961476625808284780143119030691932604096105539238840241873275603056505371718211991916437894051135618316320518445963094141309872520589214772402007892869450569527947237079694764405490715497162317734620104304898592815640862721502162218162036926503038483565672270190450264061325854880982296469407789652635634640522369632579151951153173823807806777338403600023488325147615943760173665980128233425112307278787112655490430579375301025924485355273643816772495863100962121968767802774156000484888302420669746634172733854733831383378441998593878172081049584771616609692378032469650666618584885483303046880441104122872833981020995951814194220788638430994619069133278192111542726725625976885822311476533073234559835201400075510918394331673665233382266141387099734199697939670247372482630930484109506361816552570709590502522205224763540363585747636618044834232914540328080144367707378634278049388859935625403987013255600960474932339447622724510775710947217145574014955043485037048658895130748986719211899617080023239905605834643754707803748555996928330455371363469052885174943101659336610734819700204387213948661004753075216322928707440788235179650519405386087441519993430516716893242700421664110754465813197466502125164491906995141151379256113210365048389712433308458764219281362780492479262503702116614477548401218927163909723125743971916413805327256710997853838648738070351647436893034268728371221997490050798810930042249017873582067896473421561119021713450821810373958335303308851364693928737988213404591152417651630022903542766796793359228458559482099249186969205765185052632515811215580959716827819221416080476330051229549569230199408587958319948776712697326453680254838110341170209006873460428796007617278473679093253165921068349769619670844496348893795937144210871134170734052449211209332429150762311031996677934284629167912798326046643019370899254418047387385224586499545432691404215469098170577153492716451529855652910438026117723853505305019965788968492653994022111103459374556868135997975788397846660351873562922137536701661773575316799784919311310002401013679252282355322124424685208568746534640683725117557723010122818417699616964638064090103476837906753004492916263423794093028609341842315704304085465325438627721761170697049028648127814563351145591402390534309252891831062389131042414895032099337761455543606392713076109372909794833346232997250199676630193097090264813776151102348461508832460821392238323925299965231923445913543516622296049796960461631822828998856617994725028768117331817288152324329768876207925572177692848222590137438271269067686448345963223469132721133547552796882489019419437597953123392135650735289304044203054171777781639873966311789570086637635912209549250015538414853215913776471609221034242843233918636283480344033860683219488358534584294051288731958237842609903790841207489958360305882707408003043596124038074527181691213610817588460823849409014447488649440701970490839907292945731314079526009992614179983876389653086719540456321131596081796796194716537014228274990409367042438177256400940409088645885882543429984508103572465380714670711357867025955764982667505262887036449414547221487742484548607395122745328025220770203670215900677319781829906518253706009644325914376089805660841555079889640822423541475718066144652515660674536090328738913417294354834520450667966319803896612706809494718453333237511830177810778638475444143757366528535650814055969110437079076416523636404174330706933300256882085404455160747924130197892026284938242902051561035909483735490273042375607584636967955154310959331267918679787831422168673020751894190107824256507701039841272835932861642772478049528006613140237600189762506845496985324827627580183317612758736186384749633024259664065277545125192342780450756862110397727888520849608695240459362705098031623328278807816980477924370775021704715287526520821141984606069771425182679721041295050933214051237862596115124571932532220070006387152862988141165144960004137839457651057563989138864382438832040689226016039274505253130894696789001488666036054958212800693817078506493317217926051035741444546591428160171614318066738287832635681236382086386271163925297415321101367103892809062319389655058185788829766076323055150802161465705449860163853823948251186476339250858221898518490182551976645687364385578839083320704491210311300584339864618414664843792311670143245729040837153754309105432803706441030187227747677593040199186543014693206293677719508643994892561204905908337321147581074462998234593842225709030347752178292800333866339940215202542054885455985707202792104945719224743347782561246637773282121355257004304452368753235816901507973356995073506672156961825295814271939781299582644176314213359832960105054939768088105578734813001486763412809961627787040800459790457338737993789909906266202426450782671367293813386795126758574564030714859803127525937331607987045345788840712002122165834999291561589171351763714224434581951565305638134986352448474686388521789176459684493080769166397333861880932267888959833924120015921923823550948827812598452440665664452246012725159744430033237680343072579047786382143997666362949703451844723757280555458898957094279444187611656781985687326616087386668241569547329346270499664773559551202828916223492670758854168707749433989385042291636797593776740104127074500456809466696836919046330470003703266970339600767289811667112919737771986388920679826782005644763735627620292998036000595758609854455869167081095451117243713782203762038006817917733886760461670311229065983914554829931194815996113168527605835854807755265201885619561734216045650681802668327180499149602931534057644700985211229117047878860186245900099886117462149062511308139148544631147833439632631218197759152118651059152339348563995361356405859285577059499912657564939678711281948554815177406842992284664112883382639831239532995065132300943856909817336793463075738587491219052892711543322107181073873521687258212575891436338868807446737501691678911574012937007603312937665719869653422976582601729094724867127210735483544718485535636801925044446528075357283564226760174406002359004009703741557012436111802375446508991468930752119799394306682854825285265838577773339431354576141329602642298882027963888929633328395786915648439915998002201578170132541409512962552362637606457637873295999646940972425945779590469652521789008105115764821042615361857349887780077470615059319455872047242676722755136226377020993963414112510222212841970005246985354757377709105594550742576396223156609276100658800300997804636292173009349309214216857223128401839608128543331759618578842670041079626496782966648654811790032156930401551327034914599820666855688943782420214730590234809188523571339561247660998755345783069763487449667316428371685089398579913401293628604635027496916362842930383739975480179975428887167140820453802067946409890615383447880129486677543054245451878823862741094813510456790660274103307378399079304049417160684323009930027125437425217311459612098781683165978802686480757670222457424030864958973871451371078090940378060032746717535453106340580640135309540662300106623049690148026604160642203722883855512994288569836771405909082242324716687933796620820538893618223583353851445458210137287312160948141751767609378127479230894963880289148711146108007279557869654101762059559467637382760207388336065108760706568556093909513138809539226132742507852274726826872191974134359861973638201230117633103297966033647923005026811052873312620507371590847818911930961171653185508883582544947371832327018950774593375131986267616970370882143016458217517497390595661961961565699409326342223832996291741744353831543645665587928852388174367680831680245399737198918829802044806164490841537309922082122047552724057834599518181847557315563325978826644089965157977387727222007041989970278076471240824110218217522337380856524303852481914219068875949696656028699136064002907018537288643120585494420256333748306344997728918153884705355611560458316364255930035107641098853337367937610848428793000143406810695594518067561462068101970779774614601266889675268804007110768371247688481454694826417206599530780057554551578795480635565881304173743352391397989004020928529327356482752594812543804301044513142104805191595271179396161708014022566215388200090581498879895709775910138111572814696401638804560908914884651498121076439892574489412074161992648406721853806724582849661085782139566189099243133939552009829887706974324415625324060868403994886011978835551145176446924404165754719255336628951837267353613495976082566391801120151503748698379685306817764379785393560036850030011758686681669389798939978540971910213932469167268752730393416259675145005121058377780610849306971570875456931372945811327181197595218440026911966096420330707337104690799582964638150458280267189832582891563343543358034780576203607459279035527194411244180921107277508600027010051259643564295206392814559041946738114360458933638731591376108775867909594648809247044070599274926060194673707134592024935244736056564805147407667556633121544869731069993292142444452862300124850303297309337738122888069567843944183048452278566421229786058348896688860505377249504912359325743002060975717963972957541858340886492827909793825727411247195049305893795175213221835342962856159471072621719332298649343562767503098351953037358949878609000854015715835469724739032055678644757630494494990271177471167775207095137145504743037112252169225181927595729164443217543704309965802953396004674043845737107231418284713923133226563402150035707244995950175848945297006748011419112440170642492756580681591614328158115171233289280244697691554184819949906808662226276910965897058932012155877465909868573102611935108474946809657527923059277769794011158190231058351242104313195614120673689525229646916099244373092122016203536922624073916096129647588484832982294847370933508288206461800772429217734642188509981689831049374212109062166555155827103716992295740632475157735424787043680662316335720734673807571680964644619522798179299044684545334858022891345993513434116447435561420880727893941486137308798494431570769916193441376399209912960568251888518698222173700004174263597171956984776731789353568155165479914667551453206113604809200664963086678550139214146071289907800773998212022903739398124142192841379618856648977465995853739545139848533782894669688698525466605967113365914395450039816935013606152765327561129971904534427200203697922089162978927788856432255671406454248091018187688648942404203587546672008338063729904748684862327801596589596895072575821800001607442868901631250171620096315248234291116217729405043723207791383786386449397931726122665597916838936847391005150434295266673395083115932398808268198532254244653029344676182951420594129865732039605583072638544945488223362219072204165188471436831634722623019996709400174818481699629929227891707853263284565903155159134018843374084745849864875112684034237799814134477678351781078122975090257943169553844153684937576775449255131641367183867325842333620972126699862076413117431141896541270827000587517461191211012623137890846438154486178183033167676563513985831743843631363892683402368278182184917385113654393362156012481508970136559161406093800263236424375401084842787509075906459653447290845938040950308786729074458791074592306757695699875056832404464953022253934130438063215697006320132551811778502296906395209036724812630162594930964270081457243460050576520686083682596444900092803593848457761863289585924477115153769824661322241806752957861935372466823866196332946961113644943344890008082939200137011502597177528291670162865160503001403520115237260221042616535440046979487616156767351039891541266566014928886142491168739508992571240491450364592891846747951686878184432139305077906698355299237589105073407727090776447795070552299542631782385626735619369115573067941717575286588325538481532134168869889855267778174265318749135053424806976315107950486126097216232090962798936445750108813135711485615855713686955254593012974254337003067442700950629139886064961959288764908991038054436784143877667056880690355058914296243512096377428269998688374469054247660457493278099775235585204983661124213667834364783313514061617494672626700163408866746538113623062948355186989952887148334118652737553211179847141029779086347326191337585412983295623285105272475358141521198153995721642805763427946729717373702282047794230448264670636288379284515465648232494335910189862803108330988884095596086670997764552678475627625245010211473059613143464869008474190166557416661123616288886303328105349568508272155022979310814447946817719722280646023840441969186778080015181567256461189030039786436550294557922029599377999299598953500851294062505772003053629094377499834831301866058933702341907508687443047026642134316471566137580466544828877120040574578018960818360331848436460230916711870555239987481458341024321134098160486361809563698191509191034085559797094725773362122327627889171958346493282216957048908699566531398496624676167939200013057400655670628343605073580578452806951649692802616512289137332488489182728162361026584737438256955658241058449025264610358362002481443835654287259128204742271151934842229697136033694317057205188552338544654881164123707784710995467465344737091621595761767678157615463863882149400772078581764365626951710638573504904728550771737384906771707875479763675575178649797686876986257074362350893718777645362263394931296578588102791688253557467215073424295734337462950664745739581605354438110243164925442368880548858265721588079748481792339675776861961397678383371238868460051975647496931769258512658027463406696167532444278744821886986145280987426069486127548483571124000456998723553033191568367619680906764366351657850467136058148050215114979653286819589390684872778116109167399116759055122680467026534842362822715691500211676972855747759528959690870149083057496977066687541318110107245793554167059521733889201101494803011616432600317556495940959156020138256609387013344131598818477191837948379278489091821926088367743550653122411941152458401353903485605111326862591581524520081758427534037021441289384810792695896116958684757217622480466954713212162366999460988788733281341777372780799897558876422261019928821464599144426542546683619173146620333291471853614199721634976656617243858019254250385539609366281864027942317945657824984505429511078050433839782889978935682843018602837008243426757728311594277358678483949218630648842284151103152227852226910445163050954328970905330016754854269366994810936786091453530038807593814444976097597618178696366319199328553870272706195963824786900207414635315983950227423403052116928664312254994678835941800317506077765448220355957138032953782471918301848958345452422260992624951304295452209470237698826423075688330699454479054708564850724786587104455495656826245783452405791706253587830376991062877546171085107889463553268860256174522398051676802993728785385268011865636237262848975581433377026660688169844678563516423935673984626726138157359347715596568200994267272552274694619814767125069373419919683938416825722257277845109550698126804442168551333901823568603817363471270125082595025858085892017236281562860845472898260354360803640771417621686722792007828796946297513858708702557473367656975403040535351614069059627259021183653287368541687194023436291248043377942858260417606104042779025041741840795554207385112919992061749659147254288892876478671531475611725731010243620518369883588119088620132397630163938313958025541799276431271693492575452876764508082454184487037833073003076631204458721403747909126782858701715168750886829285110845657767579184328548376382554988050308084104118344698654565765173454213828808057652534727336263729547061659151261370854574522132418735300039709795553707978184772236128387510488953785122661395283765231291709340934745826379576767338713398895246205575446589620187025470633035669538115535715066174516143819453017215295438886899278741804376340707985910309889188342494601508328675190015402552428852616659459600581792835849454137171765779270781008113462163950414070608424770198794741706274531414852685132950687361291381901201321717314380443479953735649674081449265170983962948594957416499729121708040641979306306287768674508394357116443778285275241824217283175735466875234817789492490153170353436911311226769089415714212673077781101854088174905202370315208416168135739233846240914506227029480403975586563461993932115937535838085034108068533827895058984465915032806508096225781641669551954772968425168848190643899255922415526622991313073131937169119053846808226370589289772287413607319792113479510499726891027460842789267609406157957282552645869965625622720814082740028466385693066889125957382542059959618164298060675089808639562151673166523967308547101765900898121855023887198133066709897403351833861227161961093646968362327363740140301220052573511642801370110777796231498615460065468479387479076323356875420617905150373773373227995712033791559249037654427377058969503415009839412605625824246884577651300863098619954521917084806563752639505630748454726234692221176495590060309724328057749295036258549498897567366179038447607840050371394503078683973822026707189072392535243475042230005688449270006715902095052263557437595142502818497779239261199600561309518997513744213080069416728473301100418383674358525791294134379131770108242146132053029991651080770641612428072253259408761612903508212645501406345992095103914619821296950078943601181449181173258994474555658114606934847129235514988471486136040405473592118455634093890769849180492177035555728533502824712203082027307108374865322077790067990198563509643742609795496522286695835524591987247347020419444668740781314386430164024930693379321430748588259137925381821383444581389402617667897230919018573272238267498885751795938562975761027592037215354114103502188301614146696025481088575208198254761829944482161814871138151455326980489423348819170539756304661904561772754801591612200118563381166712645405053426058529699266578713164181746267915647573383929595225261287629180497596126788807066983942938383276570802608116248907192433691052559646124910291979918777443219735528262637378540759719594506974128542672836622792272524604823709220569761037742067846236584649494473664944957425671322988424171683969651227792280694776445619634033160285314490017266769284824372534654676391250701460605487600366755146836574692701443864254639559540839395199163519998312076693567239511882554363506059306926275560135868011244037365387231059578240253955190896281029713336104080828031049806013567676565893421686292818350933984673216391114675724576128116347383720663458827260025613445193326881327760368112332955749953228308990941523830329881897285743086237177368490063686334038315674041711472597012200815873032967249399993323594625396646522792165089997783715016158982306159093769109188719590851081618810140424906712373547604904251976902359683018618288400379457923996745009900608147659906264479080521707710685040242541761671350383842335360756821135128231826453824991634163396203200263408458744793499010746475894432079598317620499838033764993990850883198533199575782842750969409133979882051309398027841104491861277876233689397826122867404927788754652621542903553745370254635199874733208895219129973378093409794158134478795362861586067450499518006146623226521242176571621612038899435341850944756452421160448730535437863725899148324004353834079062594645515075673638904304382576857841510353911382089494963327209434750170358265679791660056589313669497917232011644769648543563523892771363491746145668382310363069711963214687044781125159970727750226656826689316952742582591002732655601867506944780858263560150780858923114761089902280864554384821011597228270151204799575198059505580329129195953744450987786059196087906626278425388340963945991395301096791093017072875945982496846446398074691142440504318328667950120936560913583628428434363179962264292176465393167247587195425012935245184056209762614851116381727678401253559817745572639829273208918170093814344911976023741273273608268196399338913348268491190883277643576045119662403021659450065768631091299313052873296671775465368307249101466837976943816092658722043051171085893789003353675543148147270629719563848366012997375009993527825695362303612559459340388135960834812990151367992430982058936751208484486227179637101662064130621172537998609319286541158051929155975874279335074336989403392386333388504852015314996798315812285050919958743621651004383017808636317085937126746106603339529416723828064167492720228451328498485803592519631915974542951160336886612441546140394132224533210575597247578670486227682118445946949531674105816182685829737763863684204852173726810783572754279390082541084929100256695695704207728270484935434431919585522286922967119457200413125234120741805508136245193681991830508180848894767107881284005772467478318331010880735702187799645635800307825764560747356022594857924009542881458973931647704049742903515068578490503039358056370556951177964143091521368420591341267731683241922331309250971748424581639363700577064671485531197600768755671801021586590604419777549199036986809794153050231088481475714607228938925210567023671145292832735305419395968067751284693684168776912124650395720709773896553176087085872558202769645952931494825574155080772158979751668948982127999199911732480441681904226746207776041303947721938544488172235205478325453855754684907359229262213302884946085099538043879771883722951598937269297641407445830186809502176738816533393303355848894009280761433073920394245779497172234646248468210754085127693813730746379556728907212452057436142193554716018176634339800403020595773742678857359956313003051136628283637129566759793052192494820365376855931868599488771922967785382012974738282453444315091268119662549198384651111163407556212502462991767315903510117243249995165589655911007094949935963825955948441669731863635551813984610279204767915166073817080758706903311650168435542548411395026421049793703423843280588969227347669205892043045224284595533032909698359906704115390189465563783601532724874042946305948056606949220693062470524732733108730831018450379460836705654278306248718071755480864338272271083305371136321942048626150674636473549045012043364996013594645858624660863762646728002265465836605040186021123145445876348943804290585805523029462853533470395726211652666084367164386275982839919976851644520444105617225187531901924704972016140776204398179900421853608899478042222838744726995163054770592504192290943007967892881226325442057271098915102570032065747543665918303866778377545142287430725464859435326951867094165038717541046116889629968007950213287928287984953455650270565344300829174293866719139362519471606175341556281900449517607954086670454673496996486443234546894058197167496830732853872408741192093554030483437889813048712382682861704852660819022825548186132154446635321111750914525557579221403498795891404915190854059962784486481617571135675423338958819847930198713921697894654054716247686002120323022981447452463689222391617653084028398006296851767423012466126113337628006679881077714940734235258969544661756552090367339975998193988724709084649028675885236295910182851083450263622731384683350186696925651679782390867396767618815293535253310695419539607288243465921625081438719176985799255667279196223066302401032920520063606674876005697208786724907934080175005488725208322097613037996330787470580665638226014542666751070407230569713056805212483218519264824920037145442111311459833252421095617185084960026993991304307979540324191875499502027110254222219804427104353860206367452882019170765053779491874855295976912189506055391227495277830456282385119628546972902097185801759201255910219178862226471087303852542582741702923014516170891621622417355055447972813360635978175379244185093473183757017698391643409430236322452472516702009899104718629070632986569193918075841856170975992988804756231601869820016570420497112644582101161655898981530602162364051926114481083725478701705604435026767163166410894069483266165344327069536054669588726658399868305062185145695443344963406207355826232936568924451924299372657139692509639957673192672235487573280606733640308794951165677075312636385335708699160024937067213073676401932536698558595106425949771925910794561947156886781645441685945051770201389275450370536345170637485638493017010856746259056872591834316621347190215309547351167564256962838708603729217070599712812111202231641404294023117464442474525058446495190634985657205061366003411963160880180767067178475730779488694789205525634042005977559231070141711710088796128158590212234600724437901765117151099811843832938557909830820582196414779393779944692449464145364376297963060313602899006611018588360561349748594133265413486791264080276380488712012527437638011312943324616102183048055048747967786801448733380072464521284755680976344219950177545677578508871174959062919042417650528458387907181857043094716181359655544481216465599258528768946035469260614299423312560210310212004103927387484229813293961396001173080343560779723345475267924559444106269378523780761748024635742764052227699767179187344990115359116493724042887168155386187814513352803248380280954364437626299980728509712086233318646769976793018482362815237481493994333564819688262601216384281121862041469413727525677290301818755225304048318988912515398334245782128215539609985935632556461106233670734200038521519495991768002204145956227561486826653722033514510341384770036562076674040393075713906536122980212042136510114961632027182126240151565000741016769497920077020295168587567337250006807138500763538305740232595454868153031173570427661070696609328670484666520674165375712619564060843750667129469648069307209657236099799571447047169425296909212573706165628525005227628890569157695699833983148953563631752243386323969798209275661825924083176178614672353369857792306715230146770966210623751084636590975012672962803045172313316621867645497526772768914873566341099833054444711960498653076569087849881884015977021869886263869670747865035434379215989654456149016467806151391223705594202946954005596738016694465384372623912534436793061382847549675169401542605426002868380202002520619769479214900049054114030263657950820468413815240984185843408541203160665113375600931769894659409159091501747135663832275431804166124678959059684532189073821192580657114485051329611059364770664730705879203515232368200856186365573878864769110994333072654308652118317286069180169745544218809873857560638979984421169037317578473735190374295493316454661605657195658966805304587940756321885320130730834680755877075853343762549502454028925859632886864697551467046833425887034365647933302075051551557954859159498588594352449171840043258535329865883966827309878464567053096933045405095077199704250777071408071862080397462856184281845059454814793256258565943058522271529544435147456733534176502528499516218367390564629863369404165988659193984760061692402973601369255323604021182189412459214049560850807543774996976081598790598320268320575234095737723867416863355281210194383390253786520044471092226749000709879958843122675178962363882363534184671620957326746496677672616836503606011366573863897688388470179339413072804886605464480815413249034022986437088111850853243713356594116820292564574455388478832961046729211658570050082426132754522990395011628940635095184652180775082742229087301950739779215620639519067063087496457853206322315445478916308893911142000827829808164125101259869950849455790122535003145005541029169505197826028949390854674411403790922754957627676495635352333767523992752867512484636965956882188924049975149292201577487233994313955160333107202903395319921400717606650602503974834007952110453347800301227515990349381610179627412277550588718500855018708243146276378605402219612845587334364648549021864297231655733488853666753728721715127970435926690999968845528978308988445478015936451270402923158670903937775908686422645059665468586585130949547605045231661316293797975819480434509071705531779248314546168726766077159277829860377250653848109742610302846319815418779777649867045921344998761530325209853763496430176222307023516007477345469511890423843131050615396045417057534599459281049907010210289310137393506734984773874995704167838973289145670753543948200839915261404060515467140947212570623681155674814066191799719874958915060121348198091580065980518671075303417480908708116731186881110422960973063347581641115882815075005930178609194051164935005713512147599997710219501367116693658567014543786807249094287256728228682742166927501422944193397247317689320728600949098367561122947726302497042982626447512967484032362210541571869757968877474700019634571235578783412617372128095759268066980939998456503753555936819100236369335669364304834949856004699442786249547969801659396328414291338834595074090135777465781591738003047328743995620321308013731889503369470552326771364472112671239252292473621065920355372478087896360840379454383920471041855371211483134361321404326868281660518523724568690602077975427245567090905123019249772670767705479061844500067230143118916371197471424048499618832163656472819268255159987319158225355673895172511644601269889617030257143899811796592920635611981498425498749372946310245343327262955888661261507017350008851943061043000885279774774984396088782596075865904571875850239683052556814286567477441343353722643762714783451376580051139590843825653966253866990247909782476653775280748636958854717829823542642733636682212319116603105159415693924461817180731770207640032249160203978694902485609609137579049382326030151227033583010198980737060812151742091040023394588174433293712269012753636902716265096614834095146007294307225887449866379054264516015728628611854167283123756939058151264012834500189608790679137599209122010247334652991930764776112345360778340278819756244546636484536160236102126845945159445802719090977481910291696948043842978513343831268696840748428960556979280365705953471185180348384525038577506360225999232299768260286155489758640507544818277976412187685744366299677483085996043491930648067526363253987791121036508724569154604217338127162169553504135434956444617184294856435984954915268251066512456251851756075249409484085040678868825201158839525739824395242115635081659608712416504832544837744592719099921758874668693002884072013009790566120712536895834305014020080939310402941172477444049551571586675888542590518090750701873755023821529847892965430862091596519996258977645975042879109657489931518237742414639735669887932508905950805376791056219165803973255398752074148131206760292223363957042277290315375250310372436645282593769260434936709820211906342876074038664252339217851419405288505794709967428784906836024069529693588111634726850127430428243014205528868489745042891656757722791147677686123533362779295232232944265755456843151990100825190846145159720331853389645831092409548733882361016155465116731895553953306736030410176110708896452507586140763673392211305176192913422042366054262232663475818146571874391898554939493537999012873215644132407450013839261907351785188825956868523123125372896329427736546842302994643655383430136466002717878356283137304270543582817890409825911326091008799975804810940860573492678657876354731633720656066953127819711218956744235370097079892762770891451275620398027916333450282715384071263919579846316593264033424357668630623987078852500326786980021259115262664471604660057485628709035340321220281979369234681723024746363044570511782737881363899786558805331265244953956083799697254579869321345145498945267339435827583456445240784380724155435757577474129575986127219596049552136759278467165603119534667903802481680878105158334243378080334858773249121681038133226269391742008726791658765155559280371829173219533291198585814834729100730696021963682515680796179163915209228689646329723085673717051762399880105918146568066914484093827200458596578467914675311538814635207931531672626054583402205287807863705902566386426850576429090713228581089164133193500860864928116284333226030971265840268421116166552736993280424913336154777653185603968509128264292533281573274834766593499419510585815941255608719503723889264048901863538776949920310414433642354035524968165747263057998781522192499619775385838681303157284197186498406434823723923091054572726470262650414896763452574194409205228111468452114231755003142587299819545854242380832297162922829377880458663688111883518610972717202470214351366957872532355656400946938066533724393655142430957946033657174709716724125577991263824283736386320843817493444641627584084327893603238579824947168968478613505339496213003215266587035614179991790961463623151059558323309147504569553827928458787349175320014246923232959561867359067373472211062718977060147971269699657927004283198515382697633632523695979396102294404206206177748384079203045439408644504397454627329758278832793531410495699071200401859480294898647921560471007016207742802162084435019857506606948360371685560897312891937773073965526942936055363778996261626987736007633898328481846951565792624749448344510248652763273241483021898188403300170524380031290688156369947016746669826126595177483758250701469573911690641548014289198285972449099490033993527183435310853191165674723917349963933592376167613665790056480062661462386614642252673021448055259162411230145747414803321300123494576038736432211391048684970038527774376599218579489547316115605222903609492146220049091701400721659063206678794398425471642389489906724133741156382431754225152475738771495584681875152150992908539255802117306777345871619189583671993111979612041113535442237368917028192712950070843264834508744746377933846645138115641776560049562232661888390268663866429522716297213856643296048763183850870676277939490546105491294943989304792275566433231021948924688597911049529440707331548961794605101055001749073658078140032944782808128430503937928565369174487882167250638123013342942959356570103078817081257042992856257017997641121725447308057536531668895826901485342149073399459411362504378239147543032458989630044603165925373462508048817731571584878637373460369563615781064568426626909300159778597814409250214030685231513259178086353769796531792897231251812068325557852012313194243145324639531879032871164380348951625364110912822174477845004751883605925137608664647495949076381226771592203652160247850189625744009350524793819906439634230099079120443498456814832195483973812300475517504094567957831329597367785249966353321426298778755313361433501092621994866281154106684578344075579592750863502539972113108142935151212786600270074691841693459949366405037652589731613008509558612259073700448321913603112961336089003691851460457308046325189583928932721594965227398362100059709666094565812394189525714258091551876831407206645976955164161394448398689120292789772794544211083145223423355400261651683984829052572614840245163745616124959535173389963926395308423657891658871296013323312756703151236194827869074584430144014105185154869385698475253099350544080310751805358465874748819015891740349910770905133009835327747302965651726631044699631515226677721247316972582970843303072227445227497338594516947516570849961874019130485658509440029777577995487571332886298904111406462197861474432365717932544488909284077965675944774559442878055706855693454405357244199379444721761391528983100359501490467728170273489355555289442024568450698985246875432611912062275003889440828955539144194857221479800719799624545174174115582943643560247609556515746787256601124303943565375177758151247356956728289828091082841059623865792597776383300288140565120505516223104606926295165756931631637324857024326427115712521369854861089364658032820181433733299342130427142468108677304191011934059111781502281897124863057600559549466553166713254835551848993915770775548363218176418648917875274455146956113941749927728488669865822014001838904572930409067375361749278150545644286859633755218597757278704533520136095547341283640620292340275516771729778447538268881919155845729845468409757570049967751084768483564054608309975454852615741877881353948046530575059905736262066620575440799396942006036344232509879745548518104341107274266167094815892798847758569396550825235884451554451093486424867497467291227936918356152328757293670111927635839568677579911372945149210554786551853852334510988149292423094371440144928760291919802672098928936173235221705088681065504298544113441800498710223992842537956169923667790474191582255440119022789031789363819803687292568304416055686918062609136543563693965126330979002515156697319511507316690936098505675946708721916380671765822113859771658219640462813134016859477462899916050846915301251783670257510428234576941668227410955107514988329830451399438003228104989354640117151770664201085146237952345056854759522115589164380896259965422868455591708062743444780637907445653055779032954577582099359702444883397465006512157468983921966546629673090670865294925112157439676774286014047118445241571363893875257508658564667391470758494124303740087447039620252776309227784353429475936064903078892633424094838943267654803983214513290404667130009669343885609572597203400781895280607900833213213243735287993107413948960598098480078836319805111874098487033729135986185104120404402686234522372103925752724297250417451437547424134657697206609576275994900053756324617376179256026843376490378157183136847800611669653590864084682405901423522848838254543601766442625533090561399186190523141909330512754719328951930073110113097464557505232773380319878917126291071075084119489872401285229718319963192280684646163424832288699485191371187017146236083041361263115931207876454133215073497498127718640874144079975057112592001211669749346551554436278952267727774609741065170674837952335479770431183101038224857776380216226034729709062794748764587868076191208052757292366081071389671048035172600147882895897274150467980531185734540146917271273401944397302438390827650983080539005899703087022807848102257919138900040250043769322405673959369862709143061124371714128629622015718427228155750015465446351052550192655480488254417267204738492189678195961718772858951688329533654626848367377933161995815577951391770411074685274386887002135958684236173915520715551246536913604847523386737421385717954477701065314315246441422281261305146028141010806320966381246307959800276603345478460429410754055763926433068735492389260943235745415079423531086089175744178631373120895071258588277663816825729883824859233166242849602223862195591461181801009955270812941416164127635210034890974347967220499621927245327923999564692178813475288331066759351710622299580810742861139993838898219377933641701394436157524605945399487437779032403038705219401685041633325484960372797194743758299159496603245620527307248012454306062569177288809622687174770007363479370757460211850258245456898132659316869877658900813763282147505392412557009498160917158061445014486496641013211923894257641540224052082746445138634941263352671582574096800185252760166729783948155581126147258521019232939654966912005019762265579913592549688339474394049591166055284397921555002177610346264480289938863863563994579609120249660279885759097931115829758191712037125562293288785563539349682735576808999831186776893193788807792669634000817635006381621477447656193302956186626711374690980236099035680078247948473396798591073979696170426690333897934125149668385033378552901372951555557106790164289408443612864178259427072672427171949294758297969400271861132315750617552474456896987628876269007356623173700217081193777710309461561517104707917578270627032274378001978900465640161537709845113594734786498740762636446440613860571275238093415277200361358669877275333810887670052618377021725627376902753392518178176420669595104773665518423764356830143629640561204589178628154565372015382919587050625475132321556105015414083565319779974946563553351141818099533313686960533362898407514834089888007353498824787339931978343804895435545664266425597331391709820626028867302133970445767084391230260420968393343689862739167233263711956067417960531153042656233560085815353458908902471294752635156281842339848874832024916373655933919843854489441374338459369447616165653664244420535556424769335976473232807324303821471867628330865859185080086105094001292337035139434058844058251407938794652169763682731382888948185595305830363641380822050160518473689822875252502014356869100650273197542491978237595528820940043930349135405437837688010130281706676452681123933640159087987204475680939391646949446707158146636089496338536019009374820767764378441509304344693054939714788723761864025169708143347065121780731887236700415379056411671646023185589227775862159043234491977113507516568944186727602518792273041040331504909098036960543601108656336323651910378649538219583386831708176591384159089306919646445372733856399918475777374412615022409529888580085519614258564404490628564668432055400118089528100513084935126939446694578883502881096817330478011898618145703100392060319295360376153631074000224646829332678096918501164343813888787722082072922104156597373854753223694810217216348907328368168934030759951556135654263340864407605633522141152074684623066007768600299696022086652343570183897726050029060064895678212802907901353939388968408637412941655022409041450660257018613416585278847294344186007343342723480040207310077043127759897053424835187676284256038962487566839232804677338916751536686263181143979870679408293300860913431788828401906501831320617711461098795186118428853415674122867625233710620359489620062106835476324556212941836853525773007299472206984960795265822301793339107058735936631515301951223481356492433188074591982269017235535323693443702577629256340574489502136608599659229415862509160916454215402363983591578230374383718508321785126831432496627927754006755359484272535142803019686834029786620445058198019041172630229590334147272162613482997153834469998142777388038331838727107832701030458706622964820180487142305035235404871913791871570331098426497247389148832657986397127735756724044236092601102225901558062946944981126272019034222736545285507682599123616531015587627378030311362288110438313113879511976672562285276792896610376781960164593391519252937154816956178993128604614311164100931408501542437321618342822626795709919528605636877457644585050187643192113529262000657677988471273350353888389907162411400599453358577871540403278058033433443312136053916447498328830249569337024571153917995787201078552662896986643095464954335967340019698705984400082348746257608135844865629491865160299454604414503307224936019659594590159275629060060177987778554019743342911909638504820133150267084422025575155617182421414503238647297918592684680910367505384802274295256029345666662566226788034386983396455720359284786278170043972625111547983975252814090793382254538162057520878188813819862511152267753996451028319160776828940237460700904821918109273934787220154130629237155232971810270497929199372460045718520702457327844540850101311662916409263215135607234993731398733602444698034918986793107587836717644433559973961630695625232241425756817864511928421654320783503202218460421531848029732221841654910768057266589094599448956309431002545908393955615735029032974853635523070730614241489744036290897531326274872923948616616380795722698529451598949807299235639452677847805774931672045057919288355269977660952207610952456741922021411085696502275790189074434931355548864109928824401275666863533672931466030352022644367727661210999807031162542465327971732933301224753925191062346406461558977419184568972082350925180572618922101067037863494301824008465772686578674369412309523172200248006882422473005225437205839255246160900247200658906791376580604402300528040791141946020885614624085073627267363963920259387550570379466595386863412693972710699913483076335008223494819619022178966063410547483663458614350877746275365420883555665005047602039501340013344654051632559255298251967200431278274432406012521224950763629817231406518516404942762813254662261121752407365016131911606829132797277996150210553289457951293247594908945330577359204845554363604128707019957785634303164231929345360742332548039617483807326641138339070805216728504271976743191018506509660394977733757637574468159804414674617516052070138242121905999931830237347952486809538442174482088594219312090174952015411224896590806761664999143438030742403588571054535618682667040063992179385084442237244229057317988134310306844828502288568355237320062847007769325131938546897105126213545327429255544069488165422536877586271600850038497592550287301795206995902640521181375157311061507993950310002275925264480929609047000867387938730772311023281215280245723093141259134689373374494072855315978724006371307678783409295756648062849821163364494279092484856911399766843246802747655328756591962271641435284600006369570727369251864634095465572204287205146882348328037947470377487998677451370498603120976225242022183892826548840687588134053117152549249846850426502036057376440131922986692408321145955462177120954830915883623245241582873073412469773693133641724139431861921324145019813648780680545950528567342959781801895231075411463798698959094854492539593683405819166718043507098445455475167104200016141908187380303674667837735135376479093812299342908787580524548330378556250435352497176152455117345225592804507858558342453686946331043331130328296927965066348203695969607776964286552232261549257460945011428200068126616728805501861872821474187479647134202165700716891431618885797918659703240191090100442848737082820248064491309611890608369617834942837379147380222264557573838825768344169255349799582571746678001474315482246958355914993504964175881898847907169506896405778514675485399147304260899948512370620034938725145212978548737615373485050062427743548924071386970555450591174232237858889744776630007006546998803728264053655298491874979819413338515718901406463124357307937916201625023368613401207804486346884422962013177360614102054131365095473727192478958196064509644773960859504817429023743226895632153096732112304473509013585464838212701082889011076320564150811548480231025579006743472487049277209251756066117883477682060622304159031682987339927872934935822831210997153942458322485561291171069128757411762385714490634855231390429410129300164116895932647641173046671339835867934678133073543147915293449030732019655097341299483752401563859441860811550957179410360743534847109421900866373797708482704759359790682301104975245167259480493366573416629953816297620564566867471103119483632388437931295912729603515136480236249922260574510401700346305567887647333654471329412837268227651700785857874445047878555984162341226661154110221820426449930161770127704291776136881971213920033734676557849842629741941717239283277093233415924941493731779608998317154618725558991911330969159950485482671493243561712324019298616861495684392943127477225455922551148293086241092126270107139636001805973039287915534921122712119924757162451956253572322895152312593996886616794116412482217818763378910745935979030337885233341855309596429384496951322760318323779795263970096601003153117285758907112216335989361900847490225955912454050100099978469571666392931687624719099944076119473230987608267443362049415285237283232307045169731786746911070020545142707925761243288634241973511389446452393693068825424839709694696335234186316531713986583398072980891206512184306400495285742203294950254016142986366124495267181969634412333964678272764142538892086294706361039725077344261126669691716723458324897130084093764004703983117048175776764233837985374552695286724578021768537718890155085120672525141491870190814185029295441342669873594181584239149027890620671098313817450878614412148549203246608750191247479839229933148724197316835423708584618724411815614425389615189656756058927056864330747798173508491884096484082603349078939476331094712460243495400989592573107351775189529277629196673225723636548157138274352165342584659066830654230546340540386327739429215787808740853550462393198438483693493603806835708095041183067202060474216686448261804193010152200510302157451151939870479011837005922750026185692383589308923903811871145304223163157029283430637918443111013792972721895704155288133447189522583870751733196204155477780102010859405618228294826177511402023894493655452382452875756911378980973747245454601645907661610891980988528934568846933592844406809153093949170770182762747708177649889856083982594348490324519247120651470697442189127138489064722573256650437679906211393273069659195239954594038709383877365612350008021320795612241887345209570233302720575053787293751967836840867165185077115844559098050384223447189449777932548112317061250599254948101989334207009871827564819690300486819246456370758761962211537890838172268855999478385529509754955164904111599128803160575655314817925691459354214402152386768921730944701398061412981152743680893865550193545323858359607590633286147786127496901281569675575434095006417289863771194057783205279011311588117232818130216796063792716627241630801160771521056456945323258353547184652501044823901158370531052411224435552723440371961604006865102803321319242019420855603950627224138591716926372410504993280714707220178359764505627368353948358337293935295807575764376232989467814337071024756020722292954328223643616160553120162479346005818394127163169378213097635182471003498358834217235840651578973280412938442809203669239220866450209506700505303614650951901578429391549391674568330762217770519061658431043814071045664488088738398348187292866607134539461265517994154053654097896400074861904612971826618052706785206777588770535235573682350774715063587159353639074705327449180502599524225873910468265018805339896244258013888433605887504675979660196809907911332065758843447766596245842749071353673117078266210719650107015108187140171658139694181239043853610112898423941001402842478772272959574301877165939506073151016266336567163900296804234100373434293881359321875105104752524086382180568134799077568279592924991371427030746810824555238057844879902201607158240045104795074474162701644731033696194144843816340990748717794206141359301741270067357770740958426877923966126338704886913882538079155485584192387934324510378314051576352645304740007992187039336343332312735639204064024380926280500635278778884105646360093526249406858037472992525867864053949275464914847458710921062628595070082108520450477537487555220194125961896787221591400848599493069158110263432863516463457712514616135463603479038004492346192009205783967586403356034714383210124565394586314464520130951822660640010894645406903830664837786919206954790948353850559297849887069117898025707050132343914391028206889616316843510679219618184881499690605769541171571581506182544861056906303220208749093222608675742413557576298910655146491214306584773379612910404194359279188823743772121556694277267195586846798601208027436316053143885390376225430917193342146169043062139349114886910669265185590431053153550842183565381263225906237843440996921824834648215481987109966040335947606074449001866481962325681862212784263898749498045726799059916767017600081278697121439918765062093176170792949797745414286629652590510249584209835538827120576924649662895520095107499372938609858505311776930323866361151805338187038162409852686975339917400141054816858953410497024799281111409202884266378579618723272944086461766506278961558638034465891592882477825403346336905671513669991046352285080905840071674768993330169851178789012367797716678633747530930562292290511166169499510726283547364044478668297187759204296776925118761654388251094866388325383607542111065504551778723365340366324354649009766351103185750240075278354216306339707351705855758873656109215970894881853320266169374338812148228795645566632075986051055189715968866399341652783732794730015058103865794443610983083265250982669972601791866192090452857973316315664315742830528078788133876675214993089427931025159863225243941818387581745619687450934558510246528920262635505896547638732729089386281114905967348309226586516131997506611879436263317524297971814834228619380605899826308397023601597558895040981763759950362449398291948421470209568893569436983734378291601807372174189708615008115542287821824814317827570664773067693230905344670812297292766470900178798873787749286091787551318702782829878022297311206668468831340348943356825424163774010095837620076500626897498632049490079147831027337465673725900421097366630248434288121386524991406445926929078339966222300577204165763914264685864781987715511379518381110362000989666173389899503111918775163472775427355276084828494131875795980144927515069628609594072106506065221164763923939862889977303386877633794543730062554216870919174511651958495083792967167982637497676390304093942522152707854183251381269192832873941131527725010872534881119698643628316932161845369800321026004926789677505424110208023054324474413238532601855424230509577216518591327404884859640886402089427605841923333535656242277892527344339942318495410794563406998539444625314745835905927055508312508153824668337435318195311047035625412647441483378854154771117872351366918678787865622790778165933562814368893868841996173513027066106915463530712681854850581948286912749547160876106431328875610395390735708000484700362399751155026047634564812755535294901016074391819854106143517768048826496673334493758198433516138538330581370902220239425364570172754128382364482973398856828902912429325643787660786825701214044624383727112270963819946341272521927051118652550467976694064836318407977220045460218627723271877156006005277111247907218333692661185094961828453778435585036667377699594408232461143040645930811765294522351981416314709046407398875490893928068771583707584064153914196666667452157791486979469744549760039690881685582678305124723352916473337976163090126662434125574192730166567421221050332654560909531977529182800531945844662240151016662133202363366984872413999500792421344088548151150954800947741043681225198832711987928737823940897505649542810187614107994974581292537871517091394344933666152937644116391256942600333340116992071005163358261782412592997889010831442528935345968180900793668543955522995216929343512169102978946807494680997412740544380087144657968447720024790651315952321608943132610340554690710497508749080165022434050851887719186885517277364761144760395149591160348367649509961321738114422528137515297192068857712243987622025037651814890936689740215493691963850219928460153121839799770062833566445877081148948611523453572170039389741960694083033962218355444157623990183037483063197931996936117460670736126010971047669205924224981646039222842130503939441514015629375233765636304104784397887332037882275116652885452028313524641898463446228027611150016308986921987781032112189410289896694566584206590855708989840733007839379282088022403246778644239896143534356046844413282813845685283084361556978291345623695369364465520697550364411343659701614010760466528765687525454034199976651297513497099970952030465352263471177092772611846226161155303092136992943096367094766338655690265085872788452005855438030197756849420766774479357261885628465671430036233206596479018907774888628025722844314266527094300792045347128272492110831039615175831660334362349801142236977442403294664530229815309235871442398983933389348794446043745413455563127353153094479604102830985321061956388008179856114949237188052206964368631113833357043663611557422370854861240423480297540727503897701663570362497195664409602182278170805188368336732061274122438438285708939325766150826670321532545255639072970628822111931838020414687395448496896343402111158936095287396139292754508045869137683510307145235970215587963945914450052458085547329959037317973396531330623783755472508847473246929454751414185817487257235122121487694242009511097690766384330521213186968264806590144611583923279376082655510591296384471147151242548511423014980628956802714242154567782391603642114903179289043046050975906372822110810149399650599605724967448484617704030637878669972888893156719894278428861847985179441845292854259225339172585362118204345981637551681142813382373949537700120825592930168890875305121410644264280269231229360932860472275825286817902063469566443275126712890372770212109533133786575582860776589422241564994312277128953401380417639729829397760369154652769074759559129954081909514318503272684257504447828399137961751562095695363740574676969451333304612171453789883572115212135087582555615035097222162601957412847970542437337754389995643256613146564881012629181448042317651340389057842405025710234686253341837341457268696009260780673442512545240182605554856663229280796887791624758256665961034527039833134111825475557790943961307129942640774263773848992234392940405477651100258042212944471067195184080345545639737822156381480872433613196453167280328714051836568586387062067973573385414934807180977589597387525599130647874991917189537269408826393458636471511702578781337099397248098137333946888269305604009019777256943239769050486093592143919267789812650817775799453539917831260557468158449116635986762221072571175946608216608572824867640414213396019193358609216724336354326145176638539490500895868150505630026752972928295009675753557316441118457553840717078196112396148355613192627425765422649568833548318525937804956305262843052760822783189144027065984237822874129519191085401615140891071275343316141344436231100874178443560944017560699545887618795482942413783684932637810181353360658121755909074389948565171861181235477788027545823372431105592688356970885900459479656423501694618014268467303813661260296787121906418965941725826977666877278497094878288199430871431873902825018859594986325587209575867047507473914127949887175178377854440768479789608441411138184657525467401426858445883095172295824702368517798862752230825952556693401965873935586181061202178180781867486473688776434908379260760277032613921609476343652517827788237269882586829754017916089351556297653818087836912553758491490862407534728423739502919595830359691594933440247245406409736923693717078187552862764649771221639950414501496311952924959149795563808936591863499939085295428154162397683441249682567163048107922548070815198063342801096305813166388056896930433545750243708253546819321779068616574351593236119098274053873460794840098779180693222513774343311619862503619579977242363228885794074931084800046146872954081583974406481288274327007923892005801819950427037997660573775188413649457492745795621674458770663354075522269190957273409940047431104462775826819389656810828664444154172507854573974810896803638984363336221893635616568899506194570170718688168124024894338691295470930708079729792942814065885790637442572694721739266456466317300006261783401070480071341484589844711717679330519801743795740322006971369188223383366048776845702343453210241546120258782560504734645520268607006949342014111758130372728487985234695319273156142915784469651259656332981842867560628477295716280686492560863572093096345048436295965089972121400580118075855781164758541184654869603916276063826142108420155733252210971221090870019980418846266970344220636609120831159346322842131053295372883229984524403402772789664680285992171611292796524638007875287025257850078857897906425574147028335214320550279652522226372432964705348296744922405746959555924044919335115015385010162765281664858127335883812263347293201833204372371424492665102505469753190550788183354916953360035521784311514168951109347896458619912586684818551165963582534849245364243607847694077868930932261920849066596346257625390652069137100689119439288479992954433697620163579047990350723188714906883651367549115094521103740241802827496840607075960622186338415227787617628918471810396912698881835804998635435987991083618369751610906659562409889618619807372145760298172130974908234417765532363295205732083292946685849321645989702719480372548400928626443486609286671777471882640077733383920122793784780464932362248104878960663501607354499347281402839794659804248407443351787348394162419585436155928495378498346430235901634467024337687623385127951464907464766575834758830258621456629340439449564674227606430701648728538122325114517960031519113861317118206328299437668270168451938996519479913540392404012286606947438102345936113929345649413485589148747358285018076492683869438176862140101220903730388631205281904812781691693431751177648558980121833577322998575796302415545248835774438465136660695505307241797517515489602227496942124788967218882100121120730529828285914325333794762658785358736588556143126522868188475197272623263618733178511919954984332912892386440900246034672859996935482805924891991164343770180209728358452486854112371808966697425670583692889448925280784745875773760432006022416867591475689823512750982404041596772656646057995145476930762632638495714272664935031370722730075150535290019402738944876483958856130260006164693499297231175962671264317194823352973690891204151884221860643122974565032348613106071523729368522379275566142570181608411595510389363437626843233183093025469411876130240910237108518826716380202342631042132743725286727741599082263314112594508292267876595554442826920935899940523518247655217753490841350174245097974671041201936054640947628443699859296449786183033376044183359716090025966719214871742209661357813292195853362402821952157560759535960076370578013912760501295763833825192747970748627853802047080676153099106111656592831657508617460414184648171383671767647326717109163937698378632471160245416328329591507206586126377816706105010638614821197195131973979438901495884658464799143526357448722178760180851992684356718293831550426630728623889822963208685878165638649860050057965156899026941787705205039527334755450328218174639735528264266232402970996712161120010414911751735039298933862510854602305736443204447558214505973777094750520668550999106882344194201569895237084554944069238927095681768964395561849889944720514353022507512508018577020020252819705450036186886920677609716898642950682904341549409448464761451058391261546835623806383109916160089298604130583887242658634360312293940680277643656083020097249269024222604534224686547884158828006892680129957171341115160383964231321350063870833553639204355895582040393926845069938340929178774189700827807645030936541192777371958671026189672490653566281912519696869205106411131813462119814760177257425927979053250140730844193333210323757611496185065845948784277194324690085890519517882183357089272800223752410889397722806981110588687367351482182759410758415505473512972363774266823027247879929506661965307878731373838836575205243966667384805423671550821487043146452743715151798742967824575304777196822650050928486877870907663787772169474723337335260700701825033749028362333479125284789396526517402042729475988027839231820907695209734744600839017554149270714410741577852080879968187524068092138464763281606200557316936728765853720369466123703833622632605922554230729870855673645058371634749699421550980320264566906065031424719505587880661009381053091938299158106795427270818795639861789063239658245421316257462617864926440511281366031451146721958593717911070527301034337813784027836646063933821743867594517800073983787708260937088490880643197367339026727493885266948250628118142093206343076603015281912374546625125811181990125712055066951416074369067229298116412756665210421212008367701937214015966552178329297402964827275546177565105122293676676052985645497197869331210587709778439322351960575689519143936885809069924802872871454224820329132071384812507608068338679822331384348132714360019703422906925272852475127351115925472220173771121848108978951569721346529404423274377581589747855832338825439504058275668442167466784043658943672154139955166078536375964998369382112491959238665578141922056815457254089468333164234612961579550483821519758490537775811235254433863477195444382106768321423627014456209149155297020957555051443082070797953640867444955940224016658619668147179996132008325389775518531930898678215839715812661965738312848330427672144369538966145067407099098604513185570636921109590050052893852407834891600298569699232526231598838084564008132228813523802149133526795331334612038799827467891932988978301433401221598557115742239799291408273573172261313002513666762048572653538103598481310033360997328515374907816231589269976729430835280642346818736852250993984959316415420731323326157349700526600470585095348461969197878011194893806593182923582776930189525550199910018766512108693524597098151948649363875894169840457475611925925432415451354136322701925945472612643188954703302988878426216821575436369200412136305116950649820628288140270859103294733016840312899680628043814096871212585372496908546265992872815397026608928451062733799854070721081019556667113818690931025084826675289792504315496699593696219617142014521697624651933103852143166839545817326179542062864750874020872576574255052164549779056554985675528813643865276481074009547278508538401271733294819469801651951250208478529941519800910279832180051229157525911195432568583566305065411587067706227279261130302999618144053736362562432857324517985360804616271152976059751291429808266195185911348605356364663341640895676108901764440615791809285392070712709080484225270717747200719171116040086685134284741609205976868711117435877226791287853456272089445188869837369429463779058512721534878888992453234543468540264150879004209109697122449524828639642833127710390455600799045179290138538581500095082427759732553962519643685903399001226993395856347456995062599971515306163010612728345375445442829928230174244918058243148233541205754548881824600188355404435136846840321748795647026169271546467117440635527895661410649496640234497896033524115279296236020167152762655915564483501242863564738546587840080598941931460900227451107408889304789965765809083950534053643860126117063834708172376391196897618971460314239335522790430990927318733792769817986629568502844862230460272007510255804059746294178514559595340125334490760591911026105082265244069341754019683112893174406662465658947779353363244210833208675496668839974005660927045378259291622722580381622198327548598688836084012374705249270903649376224784200069168274860967925051199110799298558513308564709847763449990331072691084311005527036938058864611254836848386264624244501959627800037683502418348928927909651194522103920644710934738668727596110781474620234677684256515843430612968789932212281582714119728437966711162945113558520760335071460362837845683231204979505770698731930539888142808675028445162746944791057235345191672622354467290586921762942429894666912119045597607253973688892140952445970624145621150907485703027051788805028677926621972549312272024133735063062550640456571964647206475785961551606681729300801809788265948128870041111961542710568791991543658483900865271261675167199343514528973242456345422564521928025669668443471561681506476423086918876868494566586621755257349012843936875324592392608948818730067278903297778205536231191315464466435291062385768821097015649329591166855190506950705545238223578932978049927403332041598653413115571408039831683486944163793069130980511527399421629654417636498326932521030512746320031701006471877923375959302870281432630489239059727846831536746282003509323466964099020186871019274192204624042815639480540686721272038731254133219503662854842176401171363565390184599230055767597914486283022176637633497822087945905097865715186409800692859950199516515056204654226591696066078384633594797528860976189802292429517464042510391433849866218410385909289348955015558050423859042944131822882626762099325406293538770151744524609042991798181070997761866815428514379889032487915590154363001914371843029035925513621094514852168533463462556928004342737125367778583588782887972901245175441892002190712482088277562018787786248457875232233243290329170573232074771604552326497820007307541414137987323666087308892393366864961183254562973358937439981819783962308486405039680555534815005746160312890301165472558298392728403091173454922857987620896687065586659058321167667118996953806355706961675037730232447918881958085579674132329664917619802455033582198136990796892904735207616212607976718871979339721355838019264243207254329282175924281803175251492622596786537520046738102166026009473954036480522594947366879702988905404453438873770114631548775006903945545276885678114767408908565065589559779698554048277744196567638773111962703202006149792587932796989062411421667451321091214798657073731485226233296672748998194152334872421544005305171076355512628539538044969861669473271084557353847860742295306101771314340405040268929721892186045197626957408039162277628563608768376112713813695300524322592225724629272747417210582480272340129920732593536113448414821619602562420390311011471484642879145639840178952851387801502657186480824873516804729318359549822680810955010921250402392865760527822374369187334496893496957561150311003299431367491993608246313796414586159791778678783529008561958947384325175979904404507339157808007963390093422529962207131673172101442747469267059115998431066594551144488357792886960282856774256273035576218482015751477606053621742925727875921125293329202207286127353462843959834958525490206739805344995196981241858068052067466065698682228571415567364074934756075986291875396268680551164730205652905941045933950096818627515242981856873918721788086506727464417797973473249095208612599686694858517593755577751782356155986163469190838536670305409857543266588530169760291828259050591810086789924435730182279526397846274307312924546995321678070361708371937973343240383943047097550076820182440175932534019666896945240960095284568243776832311803845489254522934762753897541574862174576522086331546041941636860694752405779173540977446383949314927985464413955150579683877006203396860645774037305351657930205103807513794617921787455375907293623845433715729329153725670348586612522993125420713035651335393296818376325616871993756516116437528928517535487661199872336168534132028265653884865408663086835761805275679999462802890556788861998661644633745461147903494714145783195429820365382989829536182160507921564138916243414745829829795242104032716316206211579220223662036287194877477024612132525278497340989059004749250660206078940974505095361269471512696596318357890014044207784055675640015628530101864086393413422694958659524718727244625508442317811537670398630446210963669551321968204163680985353631515479714846870322085687446297620117118032925259346883058123155557805279563888042155729857504701670493470368874177698919626783107666829919438932473739967453812753748089331499552906915575264937539851660417810312858358839593196861718188995308877899742125447557374206528257813876045499354524666356729463179152004365602088213806756744168589325397389278756017700469853803574932525663494247321234661748219962698325093367403443810378544378482831784574297969030836523184790736724666077220143973204446724222099581391300659198416840784800397548939454583882031644553716080250588453017689813409037412005420294609741151900463691767369656395513368303702060171008444151118430926392449811815633386147284354072753723666074747127454958253409730002634531461914413544757174404555167749049644943128098983487149813215250648467483896826257112858732241653367655090484690760067509605743910278129106563793829524506674466818719359224412822869992316750674834043022991161588938607116154049948870145936380100026852610203404700113612162139982585063148882819800267174988604273610405051464975138080639381490814177641839202568431512930548347272644072062519062529945675047872016225318008584691696179739142276800616269040105733926682122788632402808552600864645393585467821292805572766651233808883107976710371349771901089780034396976726902881009307214914637866626713718320715039886452638923048365778792933496069784007706552792172524270437819376508238336986788972833662747943199861054288572701651742331303324440995574373282022211696129678118700606077401456682622491442750682296183318977216313036361542087062667983727209105573067764512864226200386569027960115806698956002421525206831762959882668400898007862893923235400600821642166673537358276561268937928038809887048905037843507168577496712616144787194252151437618521374468451846334744735370107963372191489782271841005196367635901319019618822600301613936455123719977798828537921271607402591573038714788927355196050134885931968849672431767196777584060420883705437148981148209479231688666745696430998448355224651581872277186488565080953289356992128139776335149566132966821824216082106038281671914529297839770795410056208869044591654105665076719752309048689289892665731608476518207526478247896711666138923369760325576653891320463337027250997545239064683300200165600170333460397274524662843142228625459188441473077715434944452529170871754385392320645757724957467705631726793926958494690908592543340440084453611680223471584173565787717624535900300591095606584372351680206595022981077877345002812011807737481928980884217266085692768796566844245428479465075004133897257267106453522093657825542261567578956248181303175931984935482462237070239688638496278385904836597895441483653905755307521179788892978742202169075752890738770174927134725064365508615573335509441720729794059113210699410974005066276199803384513052891999849854033304359267394221188179805338612720833549161934498427580152127948482639971158749226359573482770392453938477366554066505857599750117015175959505504018775804223336245124238227092957391671870287545154498452184608790222588118322357728493915796343725267414859863657268118568845638134647824157043036131007285129312038349484140715880833891259476202115685921057436983514828869078768109075517120190703397673220850142775254389096888297165060549634683203471437738435979418164352079524379464559482590843990701046577011863224358713380790310279690759469568083127209082855012924217400526850975222202833432976315396932033051467993164390685025967442946743061333371523102487977070540968851251507804406294030426711301931689017121777598545226672188771364434751683159337160997798444887786536252137360046536704282023435385768474304078226838549036795283695452774740082657603201390052823566819448387406952573032527602859456320765686237486858139647741315128974858516326775786440090001024888328828121798459328295234166298399032177144263810995951438037476003042811317304706488101292498510929046815028806710158796544247172485743142000316510621642602060262478089209764896266951096676099446664334980134475611042572383420768482222379529887496163475418928680855738421231518440380637533703773707824396498703404879306756997022370910166064751190157393037972410188729572227656748332155516129022428504634733215490601687867863522596541911207148173841267263810367303788163396281076459740966179043686267421403233709079200773618723592176509892535070226799426734239245715519519249905020977580097638533251368018604418200937386392619042963029851443105872196508616584982559424694884430880080783716409593832781696897697484233833995212369253930896493055530839068790414570335427119361271083062674242878128406953991420488607977787710979464062926707756033068454736759969496371661218916228702466309619934822255112237955114374329521053212158652302194900310948620295487772382579808466705788715292625821100691613853635999384686198239828105632363747681401836672658016801186106962994460354378682418357081066224085106066693377335573870673612538779873762000803360381455054531219242608904687906977682430296277668930926454850708460450594802233589667236343512076395078503194063347051282178308517679249488483244863283220953112790544671640385928187710120539570866680438910285965471476667403169167451170318841830070612033138891192386534602526306746011145654391443301825499205762333604789937415883241842807855574081510323657568804676993075284406969657405415782535004290291325114369867630795388360977417849651358123923506943787188786444898700794019423874049476784788432500566632728934101563255604343823667958137809020662397794854665657395138432478860690176289608177594776894664006163377759623387082495443647360126388512337818839038912049673724266151507692829473827636916467871235600981626968696796418462934008023539382718321539736500759282696551245133169935330626478471302165239318613528840106126106886766556631518572853997343682422645042431027256967120033203851976633526406150234170194568736107603603146648925263363667236992011907558806973136851639047032426707898118538796683682530634696494076853201653264177257588062855463890169752872611369412329205211892602962078506389716233493107987254984016077811480634210352391994972728237914344300512814741488037950927427555525816420940521351080032205767943396878482802288270479825168719301503188426157721124299928264459023104350932647221066114550329822140198508861662899609570803467983382042929632275772614444699875937563182474254717041748991707772358363251832808035435630629791867601628038178583278988267086374124043484224482067738507377669195120415480187501038630300963970716915466265613624793145882354099041778915602981377609851862198999632642506395789972127584946607874888501020891215890631340853823041536333385840615054947746122509862838405998035189731394680386822353301703886046403164038167216180987743473201830123947581513527613594252818317509607160895238102448058278201974945677252331072189054536253539861312909725042184294494202065503960632521334591962620029160546756819504587687483388011074526038684963653048461729029421234437604954629777089935568338796714920465594110393080007799961241216534644915719731280798725571784445771147660152039917952835031246947847433447001779276418608178274220770951290279566903879408490007991737898421224091476017806527839982304634119398596222027941761683004860625956926403965089141587864575538427713830627849254554974243385418660130279458269996931124809397367923855653073234792823862678557805821463603403677955313588173871785976994410816068758076065206580662189560635961191799620193772821027662520464691708064228615334779003494922856247060632593125669989448077136653629451868866581970356565644781525849229815144240995801393414227780677751671441226334391682631261491917036519934893593565333303263948720452081451636465412935990306599563336954285599989879363889368930432522019639185595707166076854423819362840892366755067566750745000032896288386049665524586052736917917694604712520788705467990177975892385588806581753387705000831238825460549553457878917232858961157450691505723767186539052617986569816160952083777416183458514513200366493273192126777486225148909920142716393844584132227869856506459937682101513719107584129722854277305301240364951610794732163617798085302147033563071230165719062953312622864778626551739348572634408370134925548675553603825191999503339712058623275778478046360188057621064962887962869036677797326113539933865643621835060286406962416419053105108978358183173737801310018659126230060618929529265987764003193111446550514849509349633969033927283863235541109739746810670227257852344042832040814836700020707448398758287707216565033446145001069128864245661528791786207177002515136907558778339197421958250084901795514132423674206987636874995643143955204815916749854833378696047473244284025416330542940459957925547266206057932056131907218745508323993236697800854061114734420394497365389080862916968800714405397941494282164968723788078178104159055522895622692364155931633429946221904902882797127379892284177509863659322189944967685141274595815319562067411637283714853155430493559294279974895869913728493596617447860583461119291931584954000665268224697393886251867526346729804418014287102520663500161148321085096041701869941205920695158158962977111707974537735385849576831028883809571794211591886714013116331447809228302657409436517323406423995744871999036936848009362531636083224509610099616069072500233379325580618362523059876095645897321659880179791395149814956374225375702729814249624508714021475098499519884588050162573266586469526978169614297112498427629266058889839045084085353944068882152064781523837881754657823527265515599983179476030571997434653151036500037826817175050034360055953410507297136728515460753162310187722478492955184925703845202395762951993137071529380059736598067546933849287659649688916254034644329537789670571587321497748180624992352678706598484142498467994707325415927446172766240878402487864629181159346958518329816237809298512291183801004874285676856366360585870746966575898043285569535232681117551228781305754039649380697671814819387834170743229025915208241331863751860785121296562431531978443718110583278247451183862726839150459962319316833272904586709163752638588970740446120991778616375725346887270863733557175712084639938096035128419493128182161554182562977694819311166554283060329744489814580157449173567219151895506081121220702787520785278963655428461011034097113184349651709359074339795573931551654743221309148070559661315707441651578238519831262876827914456501248545065972883918415762099999050711437622850624355538629239228177609210325405055084987737337076652034682486589542322369930680160658272788314634921345652289206686313160005825757025196518923284191107124375035415702849541926301033167871923156392147188039170539436573577622358151636747064377087407957359657466477815465031322761627102982358970180656965379191016830612477360444739063485434668030925570209040060658087551691345679842501240371799494440221123757732443596288431880433298621173470116005418443429875773160120294617747567654820954206990675578992996898842636153713970513117817532417476892621241792253227838674330264766442737430357350891361322965371943200808750531790328209689379119407165854962745407756222294821717380119660018652657101367909366738880473411186051198588740382662079705374487924837169604082442611781204088810953935245199971435335029525728412894561756351127668295318002162780382437354082070566092597856664311594186277374089369618512164877989406589890159897024444006721768630438885820380284191977930986948019157883323699196472689665422548614159618645162940758570733877565367487810928395730716133930400301412376490845260093726331237614661462654807620737497791156657208213505960841653814786524411950855461973510803943738574208477222224411380515642394105765542101585233427443886122660335232392743257549862004819393193383180140309443485340248143549310601009418690703312511001049559048440228989358393200122699805581503581692923997696081618154804344548059001458061915200446575951130421122912141342330866283222749893080361207635697543971676880351146616935058284371748376997268298598752378999209930170146792632075093552194811689339809228184482121998401422239410742439839186228051698806915693366004032076128106107323516554564241274076692125629182958001020822554775436414925614605714523210764499153501362944967501610715517550515492058956752769277918856345472135526933901805576588154342668550374285231868508639933916692131970672872038061824244262337215915507889985831301484538688206197991064919647704188425908106258677992789611475792509176796588634767681401180672273114713781449031241014258520948897009963840492841979266020397499599223606615626289366357052023128985765073729207472888001194643179875095315644676647609831335356200678682039506643175298229478504372366937794470890647167877331995946997842707666464810311175524489563616183579593690892366625834228843016952279905653783576234564171803532404718780061552202036112409480139424559756877124330366744415171161229218010169805389034400468903665852938140461596070085847864917631441535610990294202815601752899409647243958455863169031379830293944543796491047418888495254978612551259947140565112885134728194543285601856944052545125135671437077326459575360964206723480606460255811660777071284993953931467076991090522678544641208548790455697016242668629208540834468697131927046874006062726689711379803254036732134986721439545709660545820558221471904476866612335865301616798212705409163246448549083069023138924237630578837220283751411831266455795088263708916148122882024456529686267656719693098661185659893464131429983047004014970147557628781233496014459430318527144229508453965230567060166376974029154239334250424175570781566504877334697218049159477454839985781435543522680166901738834473307898762040581089920245987539872955555193779959460518901011394777689543730511852291110705310512011322937341027984373824780285139971760096579314897323411978306087677814783742005593007018782454517913314318716678610711122211676065579450829007408092174668933945955677500825631356655556727867944437580140179708103605965486714192472953003503059027298332778069846681269205511574643753032590928728247081605245612999932649654037936827847908035302273676059781540524818769464267700947282029531459923672597561453768537891206524412698335033246607778797798903601568342645558465490082424285998255312517573910086073156007186658595451992498779846286637281058886762765799484124626526562682056087058115015415703192760153162835695147564014657720786007724619514693969036947736773657625328776340857384236535598012192368803652411555272271876434539282326214171009648497557381756647689184185805569432139070186936028332223977330147877387745305606833524893253846232389074108101437947182816811436600290118312532238741518284065669503287104664866674065655318490733673101860280849809893380432177543268269939621259478853946553174986139529734125737411627027575345639830273692544316894803239180550964081996388846188952478624316038960734038359653054917520092036113492713598964255932912645843212310057638098721066451717121126085868580042851784333689147337449277682290470471234707439534061910567549652525275429617161260336228146903746581141785314568947062441272239917234412439103059118153584665243538085987220908590453214695914970975756927765634555151812939520330402672256270116350479307151864236773635653879579179780248640098726188841035803330497571722876793557597785706277596696149449905614336423908237282228809600488840981144766141338537214980261181778475457331342222766282077678461769773571593151181972228163521549337692943056533408699303971719476427284753742487443863217088769964985212894698957800089988714937405365851892732693235945305228653678670078503956839629206223656407552100711710020010431830651697439591903930616771268645949577993183352578115007502870637008110342335886790304013781248605494230284636023398944182362181609411046428647572164667902084403980954588468661350034269931250598728404374218166255363199706552679759602892961929516379234218313258003574307110707091815037993980151924173441795556810360566422186269187809973922150390093852842167217036473293818196626460437207281285213531790408533358020240762244406403540449123996139600694779424968272840125609217911530322620717110975463031994713826844748351461178803928124517734148029579514170500555014039353577575083515141838485148979028926913886824470211374005796572826305603086478316966457392842588450110201511826335361786859343235232107140774455438967545270432377475346227172770368870871833747968660572754156398641691846276901394885011914103910262802910555460798614325042523345178025741507385634554473365918455723511352313574014488467716993648765958259511700551567482901946325922316588281139434094045456986677566555752971517929547946262975128346133860302048867314534788353586048764056853065397439650753306424801890004535818217828763504539612322714021321345655658223452414336742304048552347275174267118426948198061455374648174310691604515710738334125239414030088668880693509842594410258388406901575997482593330544489106325673014831403236384308105513452930275419064199236782229220717020558582352978970063185980807466742564397715876994261142185556159706082610991287197587750242493716138754370261481199698590281487569577101300289092814666225401955813361016154534792555125835347675863701622740442702706176442528253966227663013081036428155543942189933270218627185538698701314268955984309392939182123543685512542224556959447122239658440080076207927664675637102309121769388006457067844517567615534356443379205285965068725270337202293908346657881328491070042561867518064029952095587175042798547148888002982778155978615045340530483260535907320341242366607063952222614579993641975695602506665138162723508693741828705905473682996942370247036180646906905444948502252666957038484589915295621761424634676965566195323430930117105698243264696098620748865905436507715868080868531758774765278276147149171896754837510192454983397618780786858307698119889688546601875847793748675286636591368413784047651530820726837581625965306937362477205815578898833132828827198992028074435389088217081113439643175916154574212975843774457487635651092785764147875449730048855608496571984225028421322158406211095061217964044864732840943769207048181654764658213140370712272970662113292405967602664227080321021039382268668959489680960768447954439330498752361220960937490021082369878073432092630134358143987822740961148300656816539794662815243273219113033254260425398785673438397497461683114040058119260397010316079034954669602711150045511956591725756423461061450859454099746827768386646230173815205847041421858415813363308802830425528811891012475522904073704511810793950172694889345369737521031237326510038489718878449891948669675574609328247782070706276978231966464196487254679372106148251809818345003213645356994299029415994631499102485690080773365659310945752389786302580606649757894758397298522859271545210938531983726987858789320626986706285319947673757344288374298345341462955948483870218839979110330445827142083365058585458448083835227707277712079646918705424992065198397844295427866822178192649592316150040039325660579850036878611189549520426509184411824485488005501995446028823783513042941232689775463655221305146526110781100236594104695544927884393104362138079202579862236708920206084838267982608074882994814675649055721616892323355618882416178375354113037222105524600681787160236892125953130449411692687895490343186106783515753697127935510339246209575845220088416293018178751185621762859155930918094806120561873767000632655887924666200586406240815212881417297398118254621593623074955449244533884139342598861380871945212647028869865687128047756060569737335310485358314377737708164471823489200025418782949038822803211717827160326419767328551120972971866766100473465109973667280753749977232892884058648980103422731667189885237306748083503909976074501410409138326281172462658159185366631954900459775366866348027944070738852505345856730087502962043526452506754698670325308408586805804139403488262577865032496724640635919812123274649080778326338610892934452792875391808917551833994942339268163370298020657491219450899426572426354277108625012555179278561266836304043688818071490458091685014373223116056027431759264707417466007052803098974030106590559622100425465226230914177166314392842536357482312516831165033960896164867915310133094540352642005463851707113557037611986587491455650205003900898653523292635706779485594745025952128121832509811830545592413216623135490495435252213247083915450321384056581802029129161837605313331703170927174644881766656299731175000574113413456865496396115432343971745673487432714064106753247506439972437178551485091971670022528510423796379697338157790880736079665867852520715136986034253392767206945040871162651466615694439725753582503339861155725607536936056839350345754217899145342520698516915766331886883480012255506156020369614950789905310978744166003687004961838422421804743064151833901182318712661486926128215136684221402224050630520536489724078064384291760859498308937948933747223609350405394836516331407671225418952791369780956347027941673384253170607448750118590185109207770497172892181500673758886046241448296341626806410139171669863602238626961408576831281066707255173122401275408358839221977152448818459643722054012406149319972687406693020211777114592003494385675396031738981139288216945286049685237425841279587548920091873689296298555148593167760814008786502797248946131241613202959806514677972117131153482392738999434686918224401256312284506382781717270579040654069561985271447920851064153555852897843470127884829939996770602624662173580212037916976959413273685211372166593057705397288632780605131532301223895830253532832205491781818791263635556903466348154591873678677540031567580140505620702193717268598148822627128610971713486333539045395376178691126688649285180055486875069043424825772530699644152863437663532512982843871619188423665288812289127709021594573263794507817285276847366990914035540403739383488988700977502736131921064149578068040294659105556549888534031804331712774538797486487024804125241018735245690530255361115884193716430297381984201536946967558044599248320688720956590044760900712721135791751782152989426275286289396722367325936417102304058742401137300505496119887327594471462487427176432981594683788364805866281715691484322117385106496467650890518362480263821465958403081894263543512424332567290184343820731909282043644790072500160955915906502262523451303064204080915214646916762293435180365578228667925164073191400650339946787825457424967934648845991235689319458620526009581497539311474927052868202418438578455780582229722542471410113228170076401889017438846536431115834036298901980568813571999999062373314875855908936867593826265538373708069002649718619845521771598003614837057000155565743371343607881212994196845862577154121599753789096515105847274779260153778966236839632264751458534983139208761100946265157005279824289371715400517171233577815500491199528647108545865726984829747703927405060027925678818558257659088457410178187996999465213173895524035369951326489701266913265931918390641469168857328338876557542148998963914827323233644726517006675067279880844819697586536639402029580393101143818173748979601843592942323129285881469524821627068970226688406295289561561913194430821653147690600163215973355158560929495401856567837969791736396049186929826156862174877917900140748427760623935962053606505148725387580271980408800610638135492707558336162496263059845578348000069055038346801268630307108228907110379038112904403087739973409624053017566287199913117453857047437090189932345531748365630736565763514362840904428725936892423511393503291160006107826691668546505594406882605762350008163214128032475295165996414641325737987117194127472932264383629130274808918179804577740052324420041288333751622835987222038783218722088648612380382056117401226091613658469668161792668802887132778310105597264991052458734439542298559948369441801576774654744122635722405686573342573354022576216332895428729832245407401772818941307352344342726139869625467869943474749807144592943783399843801952112384872836818673407564778660907230112286329151321582589501975532436119855683975923061681821803617988306160169607669973495141954195188424428208677398856434954438520016970019791256021660547108890294219747880733300506050115790023164417443109483475293389194795481763095831324794344261778111099809896448960701926588147889273776839490244695897341023547411033495904719113735828082931993145853181456642512435522775657130877005330664508372318713916622052853403954952946794638797615805214873044450615265192350526283292375387838526266771883565769263966485293646209323503140995225289513156065778135004225926140399761234525026136632153245164238362620633998033546119048152953252768802395264817781194263790496796021678478732851670044479907373737870642365428171679034414595129032084733026197141866849369354737838445937920846324329402870608117579851465949206928027668379511407499834193567230318439308524973300400823609721078026951743287177016100791140340042002990387343845372057618644745454548134962324602412636113759802979619105558222997853353359690651831477510829060285662177805540308785229632777960455725328277391302632863129331502718656999381708760327884835389192915956518153173299194447692361634573831965361022113354267928476995119676145646093433606057072061654858152714924074366040950989087520682279478724840689186947651190190628636404618243777610962485060597812230437928872251903546034991402197869539961654902074820606410792742220553552392935371682253332904077238034273684952439652312754002383085056030300623196900870578378461061198684577881703404909775409617549818735916529065216616983097357967881870358269191819869419445060507885967996273773365769156917141389985519435644548153006462756230385625815201575336605158812881753250643386872683886831946006287583591864813636106219761793468599895966266286744130691271106547807584992821115053090619216052577537686250377551492583101428353368732219755542569333450117288361884051707145172979455520661822927163169372898605923448041861240828342535168238215773724610515152248260332992462337078291632013632990145148176034084822395498103745311814563051482850630800834126139416307133881495296861651984166781550052301411416534044997851604459516053071026870483372256529339315533152831212433882487260512356810342235038341305875677988991736212810658285589946928042629137679425828031986707612781045777439474300042091802718420127776048264301945641322928646043224986325618537342414835845965730252639817501752450213453975023983033200614360066808036156064739923536424940704869072452919426030683960678915159087413701649148954965078763050084081176677516616962294475499976127641190645685752232306320653160112021228409180553469818884194742386699929859618255072401801764002673814859122536682849886671411616660644281855642287328054502172495257580006895602095723480326248061475739248222567671758695126900114589595242713049175733412437056823342895461312874447176396028447473611758356551544012035633720404232929713218310874208110016181241718477874181559305918275909538818180975912347166502824313663108212911619527580042219382110589553099496453464503624013048339042443822051070286816820419314209486197287289043619992191967420300361268283367975766367248716799078602957704662359175699035109805981352053054137024257955524721766968625955125662516361815208988149421959461386248389516993558621177169086605605595135727351571079566634458424866228714984869833329851609303922693056281383337385271367387994741613114837927944348768272683767949287743862112288938734517805134867083671107115428248598990442736258203699853665338809029621961178513394047126692944433408266292269362477524207768628252581528974117492426477262514331850399216312524342676904755118563611156683529417108197869756923954843446146942639286382268952200783499187387959880448003161200272366733463335191067480860183355150901432911484112684180171814287735271549074396198935955949685429554651895504497757886401052528023332199189879127753669684065943582238115640613770391095571203794998361624734170398309847218825181911794977995426214357653431028851599405696153858372861961998084135403157622630129380609381448252587691563313569494485044933612777372005281413793281874660997372660474450285560504806264331798996221796410582150160591675580288284069157943350731463850835138840553337117413437261673134494004969390142899931532951872173606238112875538037724713641796908580139845323710130259462163534598742708091149941378465879589970406016599858087603388122188534205105104772114113218359197405553054621287786411629618432773290239162525985091591316594100315376230955307595177977283795798658467097029336101707254966096043376295296152786309230893717471636414137151707828415997949345316739010537357852861933730420043116604407886139268508924573061787741702636245787634089547125329278794052532614296623880439005741732026869326791695064692946755358950872678154759396553439455820961980160734141852639785342094072147164082864959854765649887140899193278634357779392003436498493567562588871966758264906664690095294110974326127476800043948835273918707687344576948985976784944667465643349582126728535756848584591222007040026573149162915577459082436479017500127927364942169280889963620013797910621747665424843694005256658204993388047999438838965538644285421218065547322800959563156269233261776314178500227414283638021938153902851248047864048065775234972198342392187752416758163940847614502865096231664648804316079406916529764414111990356338790516118127733253004438344336465291641425270171632318765729723052120619130577603043931416378740076842112240540950388613220656746903228394381436435939820606586406704126920736013180371033174248690108900919888461413641975346440625145734432881139196831803720292762453998254678148035519304322948478322274214196927693313214754031187985745805676155458902401758165544056622194539513705232148305838458813264859876889323889399585271827394384120263177827166782198113878798941251937656072389764283376090619669942493854920222375722752756913138242959136522888817724636155126219956622030355285714242005680194391421716610959872750354479255586120732456376474590481651211588379905276299436112897366070636359517327759344722074671370286280385801247021779706064463165176401228449117111419875355554251667953327387302819769737816110088705325453231227707413453449267601429574468109682933142172260697923846450738043608450335520679518547647885948603540810574897977536735958300636050344888485318885841162135875736398828105812597130806050597256400895988921955111113519849792921865461738921347930148325460297312502779797907979177268555036855132372350365207321197010230592977216112408614953600494500434739102658060156845722378446866167931582520619677920517356144928340672774848504571303759123473598372942305256140826366065268071023544844989067192416795192434243356848437155480120929466804764826573285084032175983874631375293057868863989259014859579210623537828320525997430466208819570410501695915872740676820135602600450318032187925047416519457195993272201649096734725889563618262638407129841459184679778781656166338855588119146320040008586280471679804101180306509602087133774245757418106046795100425079626361351803879180726248931041939294922765443416693871307100966619756887658926861516241826954554435520724842994092939850680233816603063805852505762265689754919292693630185568747363219669434812353603130419991821443176872936003583154935791183392683529234371288262258820427030443447011501936424489641146997892518645991723428425949379685129629458491184101561174009860375076214771326523290303565219298701570221627748380270820575914099519066129175978935998510557367575886783695054671852554938185685025283526681732141635435114174698421139657169204966332678841573078542517707734751844627608327695667215765703933806681054276372278065069020077646216569867644799288202065041058921747367267255513271332352435199999949807609500025839246348087754786072094852202209005610422011669870989894280489926950058482832561951921940213951672940305304723730093364544728806732736239983799117639607452409198619967857217812958069118057792345003214937071458768050963775686329525514166013696970550038228136596231398042717197157346588310259958221493937454650362114164022917801194526620631889795254363567348708689363380056776963146467820888973219491227009078421090428572920380813710642423884268978075038436551519510885745891544046649079884749344785662852592360388331706359561119152637943669355436621138696814264942085637094527561117111685840069926327831726502974747007478383769329267455308073216894632139652701423048848474035045536304074148214194837380388417567271392151163699723105369161306117722016950315838723499428573848252026755717775590772609412769588004317800494469130600218520048265024230044499819535072043111380348567338909382578759746358308867601677255084657057449310766214549121833996511421534431220670312207098873557878532345280287968905909916339210298397953961272961330813290340469148306029466888910736117417431797249888074656298247453680628808161680009780447463020955416021677082949497235935729267500916374503336100017320666997386225855888436015259127323055151319838452254739575055273440504870048408928707317435251312378775703659671526127399822803057209523151238941738058136391172540544532273265810781697532107985139869358146287085246120824915114207073572243820243325621532065747689339394582293654962386922251823058180932654237030051158453183858897838186584537238304285992647637339150439076624426486901133503014721078349148584169569679835437295026810124855057468576753311108393514492530548406538482542274989343032245406280434044468362606340326557472664057282782832944407508382245382899087178270789291851360455464213429328557526646658742149551775641877975380834939385931836197679686522383775439901004332819898898115985932958457987203087699596854580638748965541954979080083795124336844947442245842186680190013939181963460355404870363450529581117930098984128401198665225025076637046505050704651989578895476239345022985206599720532048103200087809223874065249588234644997794186751780870346128683672418810029191078118513482204504805516585748074046354958983680647804656518462393451649289920985735413306036514459471251136281231463702118643502913354838441982441965713861319387060754579037002946008415341930512370048699642974453661446098811710346967408336341724403487013294544327584880009047324005817862818670123998544840766066688408783815808227552189184411654183030619038101310734078214970759578957225658523126820256998825721408347820217071427800995486866387983331644268336983052124510025211953444845207630738930042891978500533868676776563353957724999554346921065663105584914885376236589419764887548832891165133377727144837104760575680074637150555471774678486230079862649548249685554628013043084536580622747724653894134831764409120718384651058339090463039644783987241726416081981890530655450556750540070612980515968131129094979158417883837191813663317546169675392999746609279004634273688999821891086473962372086462802599438402750908429150676628955434784880159674093096288629796582408113400131141045213053402078576126381573703955150076208171048189699683173416679177554381786829038144600030825818608465005894374879260973333601545305089422335326958538210191869329513798951869542467508816025473637783093377700242529389960462109223590002741355761563121588874261892257354218576417892260034115369805680198986337243138154681666957122070228439350313684597774444563824177075241919331140193816931861822640853280643435262147311370342121343593227591712250064761161705203364161145236173241781884457273274474164411645397181207995357588630589882580483875473505614407626541042986497502976266160868398997855199879787733744260183069547999087153103005247316931861104249135859570469220603803115810101823345962539133595380296169308078811152558767518902853909605084554549665122921024485937670747558587137178994960930957377202735043873807757906353024862910611575058140855207553823245292762930259994141556385127054735603374418381100644546089744316623179468238889532616797981819547942780845940569839367406750658923886868314283159714521631000127906512921585041101585506044268926038187397859860534932993049149422713380048952554662504375961173526068048732205845504930847332173348103491302115163427355905746796336457546070510553856744236363121815358745231579071892449716912738983545903999343131026495102077633373583268987669695362818264336186126124257861444788481008337963846506908929865676259000523185066719202251372793427610108254979358837788266883892602995711021917964149652624842806607548660859447143536877419637368930741396884342236074670534846488455680478540293239501622732705223868956991891334357062628802362354874036152055455838905415508284946132000593654440265234579850951613412099049829756478323715504223825097154819264513619257279011077219625046854632266565376418063708557144223578413637492327794521161199236352051497077435057606457386359907333003827738868868716745282245930487984955117187459683985290519300920659456153982619621268749877590938930634775805953133629795296949961414087545762355583648070156421236066798698962182791430503912530593510426601912080843140819514895246328296779861199820248631619438426447499929580253748983984207682297731678355160557053541377490717464989710029340069077723691785919475831753407504916977338381258986774316998271440551504368493392166506877693684293693830380844118191084868542718113011670984616947607848840770198119631925667506319277745395467882800503735341270251155905661284813592635549827887159853934618141420202117859182149590857098950261082657169353924405044646109277901770236444606054630793852005977138863321405561358973545921103087550091820191663459267801758548483787416603654098533847290128469910292084971259340027379560067468049492455223389489589292024194680409309096816905631134648489686413219176662344493430273066506037434320146828410712070905984950691303220841540526634367466558663434579063439031295192835074541591253157448020037764417368204221120910404860672867772866306277302447491749637454608527852776092905360347654479440997852441463326616371433061891383253807937600142297309132889739902924603644813216918333519888767365596719114363613028028807278429063945551558444884002999122414232008881906509388147513076281473281355219331020000209398644963464373977438564943713878380927409448808812381806461611214455039287086993959310944509405036934711512832622181501353818516565681642698643747696789325788479895408585241489259243400696406651522426910789607208652151406145512441077160814852940021366022960451076114330255679538774276837441952253743324599923946957168797169674221928371820221747446850394064165906373570872657981940652138627569131692362445919377270445910040665163218310901710685468712745563582706225713761879213509306177858028757650328684973743730084445816905901260475902533583305405155825224770832338051268755344607256332708178238131127234005668934318341527446074852784920983474433195899840345750953829970836773115522724959854806389966078513253645205972401650064097577666126655327076949842756716775489641941651995380808944729398252610623441500536779226276149574449934165651402717850263289743667356518670762831504359399470002078052002672123107775980023901225205625733577825234858462274586032853158022722612271310634143806177362036547257824106560172198664121852957870531419025235775266752849395848143094568528663150715980393632658527981762870643779019466672172937348965832942760645341622622298401682756154984637040773454047195788884300849671574956314996927355122399009745026992649036261482910623342573465975936002133931577132850684034514443134337261202557217533528920934504153776368673203398932114995116561732118764407959979504961934263657290869973843056863396549435768154779469137055318706831662965662221209494443335899066483362228563607712693269657775272317711355907985355120929968418661220512422694055273509439683613237199740890536643272905725323240718595014686604347817395665607349421625216903264155839557686865977095293707179574123749698220856056326895218938233627330987264680687002906967131012336060494159169697900637456190419315802266720380757983459113996821302095041908204536380755700934681177646853924997881613355329726706675847642705486434603896161274022020649947830523553719786290076969322378200095645195853702223245523280248182166774244935026471566985542150106258518690654026213883267939936732906022467148753774768851946663340348660106084314599564281313812079408600474653749964336130942428518408035689742938754670186599879938478288002084253418236717288544500195098555083618062046444018211174609514348381647555878479999376822377576597148443860401356146004080992988872789585392343015294685707748844529599701499445952392171234031810070853262193893735743585234463361318064407848610833791313770476252182521454268803270528052175635735925615726460604168419462215918087197894898327600692486349025528224168737342897717331264534546556000061979297914059130479905725401777323694044050996168384711644672775034104760496791608061676780154492449816582083884946711979203756563808725425634582568563679845767007127327056116384193643059039061722425625753165923471375905024834440122979580046437018701840584048344059890082091318462373410906977417989199067081396891004719107552732577487723981404468393112721692991353574585739678307814178452952922900268433786244106671095897089841746661263531873431330878525627502293789024164498067533064779253644590529936845871284892949555167921248214387024191875824894957747017820808290498935802406116266420141641553000116894557901840506246411071316987911078373584932735801345100622567018924479693117613473105688678838011073458595010760373028323592419504867443876662588859807889265691763736207772500226822053318155082635219191525032565085132857249225668498813959299157899961795750562849975424648111196492929790568756250087170403296138368942190941521238798970888001615813692221651366125744462376754271014121893445821434955355731471960327017145653853325194283949393213737089398799882711003454988543167518187915916811509733387090903035218690167950408071270824481064245545968945138001419115593639092945926984511499384819064880286240671763419930099946088755932932768351942292954779386767018877464088263512666443643521326038295554675859499135290826694040972791330243071650335421690788513520844348830323457987018813091849269648375313667649272550759385424743569688574118454610236094858341329431169742233454770094053084765670856514210941479756613862613675824443276167168006992956911676701435790530264589237267199987719667258643479895327732971414790858870085302563600137257885788745792705584450474552565114808615597379223618554881875165141420702850487739386828279577065151595827704000028872184360402220055046906747118091873403261872067240781577370092730555679144684838967229513967371022282049953474642332671760203889763601216394635890363557232824183855484455600748647849645416730774357717860006826628245421915217341483980319128660833477810072783713873602604802629508995527948473349937227566902742299803974882996744422460688696953587253355982536226549300751440946379270490052183487212173987395738710782069545134160074563273074907823566370469002674525275221546535525783133626982584173372379024541122951214414365690602059126790629901762602167066721953496206117800173473971232581106145986776091847603038442645535865583234961529320484969537863888672414970185014158533379659255288032059291657868599832359364256052103623692144792320465935315144736060298378575034028692678168244029073720265633957672761702133273984075633132287064147362602211502275003970787069932719538006559839552942710440823508982248072320318932086359549224959775204239642105306611348535366906510737930856675656494458903490808257364978820176132830396847628184586635129219900717755069488395656030844933574607657094281772309808200809975071166124020785513077834408350986531438891072591270996259176651123691718844983570796589882331821249757479304574929298218927949563870864885528572067144159380702209514709291071594965229575975922588373846004262111295660047818748065552698807237642046280067315071579188674048970955726402925867491153272929988331395485695788535061975510816310448002801028234806364783546284162131466513804644120414262443233449931374449160737263409388367406092297343506231706932740631842436672248614972884894048511805141455320558533125632471197035211208102953737324235499456022237314983699532301281613994417405726111539676941400296259385428365998597554482095165711919090095832804239189131138885269693834826210788491614188609033915191018202198887771059485989088340990683503067452448401528228140677646419207596286802782263849758332808044220511071605706512955508224692319036796008128279142621691103138800672305627563751052149755856725892095905151166587721196570045488586444218214594381466775337672390036694501056951568107193641437557111669730591610614633645395074075106902034818056611205009954020323420040651887795877469440295706260778950732319113792874238224702218483651852331606217378931817162491393950212229465364174863531576939419523241988066984241340594179548356559032535771189894404614087595625768512562038641709105713480784436346275333808133660351783569582346752288549454031099179199996959862405021784263266774873796224169880292155321422877953820995341147956645994500622361032771242911799001175958594238638597686924659763333402989513624548850504998843773442311076353275556625850483078512269907096388372647407159055710353383244268390447671197187144552695574872365930651944239992900479147736085233765229205708786404957681617082554581518307593693258239365347245438023108380504803621744150856622274855974896037973691820345195049980822290835799371417006311684804380643429424499224796817743195268971115658983925676809489368538670691200095851243497094669653804006007383479851360405962590541643853063388790422144814791009241390045695608091309627428993172743910694237359483148776317631957555453154280910182462373682175347038949399516669746051608705775613371062129133819651336836952106641604414774578595490890279693408270915852445458275421625717528925770495796617739813016629581891879856169848937596833424233504223968490859926925204807136163553187583425309014515722835311511484611685339278340602418737432746078888770263368311275553896280439396358271905313496288123576276476260246437296062001289679820081393777617428322909085576483790280306032388997438870297716950540016066620745956105317255156568472723723616999628654398472737034532359827492506181136714077922857666522773328512379787261475192475837379789265030119822191459690958280108670698164563667985827810963906461106182043659719976082457060006022896189631051363981782094976265312529638888983255482202546305662777659889385268869294547651292732752471028319624355079802925206929562619691812652967385550841747805026473983066236111717002998498181381613597729621854831381969245957736692729999674405761193762513459771785121724639413113568005861201573644576383628827110067388276134872829555515414895605182481333184857860428724215750661783585406496415427081009655975864636031547191446633738456916164276423662978449189344059412465790570699113585002879294052474489645470199016572236332813969233631613126797853555125657453583184396018192985672093929255614879430617780175887648769221517033595018219602472441781405540112014587005556222948523627335125372549564906707048086549558886745500568226528704332748141192099320143166076262350633300673246965513011163756403162157348191739100125005970732976493222976615363549496535201765103947148359792345516706001909737013247199915869130025603010110982272373962077628261561805588842635632667332348880335312434189951067466424909131287168072332503940297809055303856750963599909518051727054640880279503641022820757629454150006897277057099577674244868679328572445291460417237444334299072320655052992322863228476566092135676380695303670086445025431790961114343439660401153360043440699259840307948447949477247457709641449607725355289820635946896017676534454260745801800592209430479637984375604960669808258005351477475278439351842046625659964690605667742544918060670235116671076681055469661319697406347567766180878879130482367891236661300102288672049852649711062030817006554832796474528006974220685134924607998609477104271872333777339691596270045620104415572966823262911828386572799987029691420007901138130469171311135182229177571515550947490396558691655379047488644365037869569834242090009062050671679372982892725112386193463291344346367252240743317717956841899196406614796613014086885879090942101581007426814599896841795950596206127606934176840926351595707661312719964325412529087091168476299016891605430729107165154343280253669506961125283458283921641630914893691335227374828061456147127487283366148894245529625321205600049592244089394587526410582792594574547924086871094009678908032324775737845643537138182612926501603911584479339656305752289520485301760202585460051031531321636999616366371065393785405414769509261207678330026155592189905591224941917765707961651936495036701499950555714505456344113134869693201479916068014560584803347699243389654252555383726873993627934158770568148196586618414596453642392035072221637046822357827624942587603053013924728358477629668825237277751064649281358221775506766707299457395330331145787539569141948065005998465196749009464980768815027046422484874598982512390427900137034815255731123007918716925982569796257836722608670733733043036246516293309975102857234876575304415354531156927463389537264864544752341202103506699468796592645933094201256821942620673989488120447294090749222798987582132115230717897371459372276138177024972688278023475939565031961098011463452723191873285953955167918190972328923264115011671003591930700491774019589952448014486524997130575360879897546399100807747380596386295698853726566354770208289405950222619674992984118740266298163465697706833482222729711094824535206373260613736523770003606858845576014854631420855202585837244003413397962305211850009528581458340666036291054459525402953530308237224181136491861310949479650315629276925090007569648389495888095526218948232041619655565538692914666005655247363492410877390581093157752094459682979353183022906494936257123637663668735763166029160785268975341437614372497838750649212435344947445255498869291512135547053327663990225776403262711246780996629730476215586719541557235959084410890882179176628790867558653036216699523864443432248014303145103153866466231143183468130388633898781116346498527711793425661340409542338523333859120852784346885665553379267829228687225313682392004201464765466766959553127771803473309391476464197891286139300181585761293156137259637062983273757914758178931300557815548976813830525127321643311240535871369952296700001606770669336614832385350905369216316161031309252582532002354314648909702241398742490385561383833155052941982224370294115852028428798223985546142216021070605414707120636136024474055644178956182763364457902459969043848522816605863193527937575252220694417253330516612778360314190594619957472098273887685389259904655050868288156722254422270048291643774653970093916068411905184298804791086748511898107511125414037378690053739314196032233689228093981334594964878203709903035338512520273272930409561766473136209861196433688645707463599009578611434194830936991135549685506161395428910680889387770893244676694217364371835024443670500013361872838947420331249177561887195844860371389344180896892187600939783440809520058665668201579070974116027526077000655346310965129519094960336640915154755212871045585197100709577065801025214047422372072597104263533959168859412095495298681871996400518909593573193225862815855035996448936814103455787493946432079175369181155633817233524980883676471844859341065414796914496382172124272233421439342319825771650833814815651179428648542297118103834284367487178229605424422353878573812318820692639142704386192564312803319367133866308362323336337513123389501976695957027538768002925842768499751752743844691507036282555829055248147844266851329717049313190568730382290617101733986191153475464035540105888717159874813203622568054884319026896689774333740164929764544108438027446869079327299483544823495650217854970539292184788395458634054816861008061786467278314721942988077375656332897868214767336836443539759627791834919054403434392812126483579027145458480357918546640804981854722191703994771447737684058684111861407090279484930179411483439880287606496818328920860812258714341703572308055406909007167047120731198823243823819427011959985681692423318106950188202775937629905700200120355199861612907720203151758985723052168860348581077446686508568922755302226128880158013565387521297080691871029307755155741727234702994865608253074627132943920981889751875804426030689789646041242288187258790832344541701934856334514993874367674074602822872948718867684250568765893828306783785037647465483002686698751665662956837873132540831453558474046599640765566307716173967888101651222633416618340046782203602313201939017968586524737476040942950533737481546064778122193016959671510634290859009977899797604925661675663107963572143119982005208329881242370264567513141188722246532396509247238604020512377961032105768235483855489586233293858504325333416683372492940979587798804584916790756256829885738968465883610580055438382470346696329564815181405924833444348193747191000801876255491377103259348119773146906468143378338426628437570650300505592648021062220972408691643350642044573533038908287926621237909018441570915083125275541082578522068064313788444818165640214755146792654945720291512820455745118223157065196638243481947959944962258022833852250648995013296591091662199233445585651948956548893180591281629959589427023992512186582588851275938257243917035356976214084792043522177807239347388544933527480511599990248213641217163930772968753892925118253208827428364214182919191817167923377740166192370843544356880206563389754201948924520459409091160509215755725419326845695558469084667194637534137401322914140296098204071752858479864198656336025748307496493836623344601583378179193326078760841623506121898988579089676889242322459866613118554446204168367347738472935255084307151697426289888909784753245420213343446205780908526481134046394604565965467065249491323418874772668182840775818020414510663064319106381789423895828695340193653251857223159309571180927949929572203720362134303276062670437191124025192221960434237378024255567355999381840541617556033208960544156456124076288847639332962639886519660159289120278114400891527361300261471739906955875436805223695815781582855683732975313857353141503890326164349870468922286823028233625033880987957238417984965794398023043295656261488922973221285343140309304164022015628595129674699746915787264076725392351951220113601130067267760832554487029834805603329280977236216093938445650530759434505161349684419327016066696877764065728350791970494216548938690570850652067573466996020298914433892887401920381283961222196624548621712008539637650855135979829749823631723231817724062504519363815136973991425552245677482296476026960234453509996290141257940815496431152774465489624218165723472421222508764024100337250947434537150863803341097335160701372524527000803021829373283678075288298294528437112665281782996392432432680648120097289192931153980255044704087538400101474716196142104100862075069956832354465187129175426629896325100784274327943551502995872055992142365373131147364972970540595147066747691972931465586556929339109519232642234923259055982973191869338241280128859724528961367813380725424317267421022227172245591240054582261957335037123670101957478067486542280549433364455157681027201355870955102243919232220607443767011123674138965131375159520688803483305293273877276819904950925419963629589512611425802018439083731457866730588478126614295549646833911175744786242605283467604308458530840417208439061802757657418281555780710754731673497147070499813923497624489316670887177073322882716943714529028749381944432588246346065948333920137375519420318429497366060240805197227376279206311145836823477652194243794420146441753737469852988092290564552206854229506976905774908934974267619902206703741417589351003688908497636478389354958519327891674878994630032674807724074436641361790900349421628037752333623627621737776699387213901868752377069382236363256178919017822009590226035263878592860875451292770022747109329667946225566248540521176110075283300714457254518176127783500549223072932659755435796808221231011352823994672341692095268524976974066368742385188906909036206421391638768526554427111132595399728981049721067836813899396581014828270410517978670196224656892062906020805491646877737651067336899416982348529886638451425742893514274147122747220620584285952504079899417519172888381765588514256926350533130112596393039004802826567889448882155770642226842830634884740954877905152755861486330229993115847793565721053198917697643523224513474294127396126377281206938353290692923924056026206151145432458900990418774388224464994591373212125392399156727659138365019291123900981530299908085157654709359797905930052494444456771781513239107700511851482380147972547788794809424122076026684452762653208196662625982699307510812079116967968564680144345855850828046308887545760912767820462873414204604654390927538325109208912598133978855247433275307082740787696654262084103036348593536174348832407467025636456171848275758762833827299922886338270188427735795110289464835869574416716547796868622765640231472552353295962034140299298886004127032401324342098272142781318322193243526311256637445901263871157052117513082997872516351248251785005315827469700313823387927924783944554271662637988235615069918434643429684303891459118574842419453761171415875928782675407199887669698108004273527028542423287699935323407086524992492089255768514366436668991926450973730407212586443178969201111615359824972419774021129025220635993104562249577135166737056223331372890218243324820452747746326698015397958984954025638378188645812356332320296779875643239705977239078661568393192918559843122913162516242290495649445504345320258790911353421904166727238653255422399168334182181748970087266213702332629335321229475262658146341228026197710342361137898224078138930431387729603530661270720564079595558060137651232274062580917867607292903707610318366540806236490869273635973415484374135275480989151037328831510179069229761653037039413417355098121499742726117766636821672048102796881683981265032236947888377872657658021864101272386710575083297449383669622965208476478280002836793248463958803412010971490331833148333685172549492470847219843628963204797598145035478013553074669675489022956851069347274699263562793203687862113064463586486715402457521193847614437840182086883127330098810011851147415686456965877979974446523385891550259986415610399312781398173729142130487017589290157871159878556544257717543131864488902819046891535269221715970271930361869585416147341546933881163850757254260277900446167099974966681253789807276995747318421794906804565301294153866040385138392285221876759656573107272388314429019906581480862486441327361631498590604745765177101715213594432128323971467771617970231860655388062457414684092613160791257077926293329391590908826011294452729718941837965393728422079855526579951747889104337843293248251197445890844933604484773814813536774002806459510983934016282723758647413483870383710189180707208695499316812036172251701245187514538701482022798103930642938239316922797601322567076418084610909551999710846123531992775217387294946660295085756472634343172710557042757105113040384713044467023708357247512526194823319009197018680527056268262362495886339640752804688652176798251451647097596888349805759838629629214713743778708738348140069102298833699767259443264408194753675922364676244207323729223462691859793016245938091726238791447242175142903122013259508898311942665958201634877397852590145015648348486512101589763820994021157502613127209775785966391111150432247964427524861825594632968946571588044781485883726723792277422430597828871644870667162028424466528813403657399029499862088199173874816919422438532177687076535884498050598453296686383733916222761872240592380984236661543631713895865996794175427092429798918570140626401952695391338980950623507389405950087367377363842717687229403104333594128201351197794001678104485943269542049682357286787630169587479004823619904862948698863527952917773222759442544110846578680904272959986548419948863989460048304177430151757651198208515958932633605630051322806058325439669091569345521599365543547103422568677857005207215187746417324836851053468474146694554085541005587860873089195580083637650672186348153323948324814636382811972079905842921731886671253811530752290133787087335848773592376060682755725767924281711504217638310543086341892636065080416067440425124765489222091879222934721145072116101425619377761056761211652278963570040712521567131490860252070797494198622747136298763126695593630229298218390917760450767515798758952681463441514500812095886983949921249018768429220409583166126773724522967146981554041403624578073814903287730921862007328195582130700578748446675730347130090463523737690620421312658987107158335539518703935840325498859922883605084883198752325075700835646847908925300561674794285651118773073591047389356271360824147235267511097365041866408413879102496744954622187753490697973563364773110513370032857824184854455153112232780456897108977605833412361656458771032868420794278515814106595148260184968059986493253207572316671794144317678952792092392048145178068343357602004650205194161383990438904790750793629053596235617920656467654528776384124446883567813476910553756907030897771825703596020111700693082703082657751370122906698535173963853592206767641810750482237757607187466016204885833634576131017836975329776985043417558588288239137100226715581683520357336918325762828597040592069126530355106382138283208061455471439240340921121968708432915929597926712180817083595099847735014186199530245256381174098434512509292679858302825397189090120232804061444453708172809919562389043009928892080137201073312070879640725197362153050383451651381172911222222233387718949080746302671196016321013117284830739222739746745081198159217557602220023411976133925047613909128745902314662275580086900189117300004360352500317516685220373489226158690706659472546958412005537660525098822360135407400676954059531401256658213746211089645758994439002470834731827689534477782913712319594811485443167645642218072718647027762505745859560981453246398280541743368569011123563802903420373270713593275008352908312134472471629629901848144563968791212327576041788176765518139082851758062546050119317334330781851750071387213761031100566918920891979776956739571884382683408382247957439998509868694357518100412678440152656739225293102539859456144679263734535880253366549234763900459116385482318553641038048777352517300745648232243576532995570404600777079190353204314796727243810633333793941513767337830642029364108291913572474078665696205911758921700101682816798258438016014072612451308850007723600743605228188765243634557423241827309710810637862355160686674770895077608675303127428535790080789228960957441223171460023596942369354255306612489535237179237481490282114027191193878714283579346800332662921006181895778926680318180794421572751426275993027526874903092528497149095938084978744785243339611670609008492152461914288338713415422102324429029071324096128560975858622241075468787773341131467199893720125146883536107163002326463387424583001805736115734560490611149598124866324707910378593759563867298954831979971366706127814841418403378953434547080938134411359145875943404425125544477918948751388367794992485168732842515888784871684625343914654789169726907935096342358721791804364433482951982164322033824199029147445923359390059230747994570949828906305577360033081624686989916656271223395749259819965811695972027809108752956254594602433847253603351953281892974198199628505931831612181919551569953450814974240668519877038319980390160819246866016729671598155108035917224297638449708179919294030768067985501818141876361405647985925268964766831536741311967118551193854477152212151190301341361788547610132167901335256195005078678943078671674932545400279313259116549801600992872019021794942628584184035322402931342044813385628236095020667258684253359184090341645346754935731099902675825789205718035329736201131415801363458981796183140442492185614690433108008518474262620509516248395282143146986855303532838251053102900231363658474904374257130964344834522018346813782242495307482673628957028940475367054709146684679561461089078837252026936198170893686859187708757688403336491070243647662936879158479065579842244903050686507369954259839684194711248673333373641609048986469963603366304231098515389277336231689606507112333365837921812872950117367422471414280575492506589981780520818255948209797274968562160182923126376642891051174909371189445294683744961751873225122770826458511633199096142994985382448326012474908391234569551237956823590308393080590700661834597887594973146414409468752496527661844232841131588148148493756224087636219334502208927517388833085270489630658147328201176715424672423684512191006694993608837380942383385371240197261186267010991236308492770923251866765089572155718408765254681303513330216382591706377707125369178622635656924373042300677870142067667437199970329627190782578079289910029226744235641498945887253557331500457860521126630921337401643178400058376582485336540681798661016038239917249835286358576089582102458098720194779733719468253710403983204796032159390480071472473093711500742617511207055343904596809896033078387996482805510613424001514021871121319252415251313062355174492612925853864616402348083337930155831680082702076211608143968092809997871289785695958271533609126180399638934611122419415964950232078420652207047946897564217850136800694393807464427406150709023994918006593898273083128528289366024502748416222128365908497053546721504790772923654232158163168176684513373515232380435268359460015775225454565459184334575219653104854396845260321950134272132024920011984669277658011275783160790582872514926279731976901910157307548456438547142688735924420354560165676270573734444660907283215653348370462630885144438059962514965669130453319257331639493929399145859389954367345121365905799673031978776879790421101315247074293933427179964734085722359569740684004824314672265496346563720691581631600553932894672825744490607218529337160279254443323289273235838090052864151536819414036752210233855403251304278458136800777526691356957354966549013346913531887814631053268001573927949224828743922696252186401798909574807887035173460286554551961865184571847146126870447728377576598719050345997386762849249309501240574641441061582684751634188221962876859391092120254542937111896511492896696151171400316506799949904931102809821476471322843343200267511493151776501262129293203941304481487203849878566568487308137886069360255662956903096314206348597508822793043441830607396460483658879687275783734710994720335201092376334050300279759984131664327695376255593462763121083793571489210635217702764918316919427518003425356844323776754696714663834409116167979530307742369205765366258035540786576116218541063735713162626033040202107579684589919689598333106522627315419024331506808115068589409822306124223296004406808522987652247664164323202536303415355355803580816577329536600628214649362053701664118845352497412866079007604619791449779996257702661843540693835662380220062409936307500176046078939355335820621433668247365803432401781211841398505971677355814857416184919937559627567857523370909247171544653583051111854373714773738603493636599835424465927180931125460659948771983904270812096471858834369829945374589939205112646600494065200271893404309857714935209354829687565513737638976398033829077577961299834478084702679510826486010650218460653541792178791287064139997110118739245231023565423016186185458211235208260240991878670730837648869808980546094200108005100249399104906416240170371068633465956403598906954313726025028938378337868153728127612417838725241511422496513941948568287020963790427477512592722681868881749295161785892020277623739054849755580571199277097333888175478904503541017980970731411906787798507190401914877250867773795482404572292315581078791096520106269572846460756094548520600685666295499256338134534864985003237717559691407177902016331237579878000787161928829699537448408811607370608582610730344614110078550074898684260492972282980053190715769343829555512532228586463344208819880730172423734988355713278653609625436094582094825984684797657394512245875522221187773666106949651419177609766104047275378524179333699751015816766662111047911841682476087652233143921467124723280409222663506869784354871909576951623258024906716403973742816096304923017139549642143099254209882048275385685640809091068461083041202904113396576188694597126618103791192515112875288728664865205216019671418455206270410611558681103782966837283659051870413519047644081618615836028814777429327641777154015244999113451965113883116827901089094420854205922690560616878858253399548034072698919077732181173360801067402346510323330338617433622562310628415127162448353249126545834907060131370903289786845689581339703347202657763404628279637295539409643653588865072395907449346478676556106442241733816610382462498373696236723354475007900311849577905625760386994272325872100923432301057696844666346601994692284829012599925146906481220784141091966563406785329076821916522735685059510449523721325636324268916998357387626668175791836877591624103416571556542564046493664803124177034325885102832774503551384315686542807481311966721121309678045089640479566373715494025722498320344937944364453648423321492422790583460569837533905931096427437711687677635910746462613807818029690160085588330984135504328990781798046940950484381035526505616999778416434032044235654440966217005384766761923312209089234848565463561260068274273119811184720641111164352095813027510233597981562875908435137007953773526764150034742435373608079191583494397927904449883190175985594072914624152687655046410689506853773713636552660033212021008601459078265252505585616110661560164587390001343628923063219638995275988002419117423521952156959400067312024707946760124252082621533779424828526278469141543516298776544997039409467585847621618685998109663579284125444909528435473211017905387588171774687591437074556548498257486399133216573579781629852014723552832063261700849596973614025425206073387453395374187098997802170116570302382069328960615295570296437691053289964808465743265511756917286762062937576932031529378859209438579427880182658539643528478697150423580518639170155196554947101089227591770716352843298776400770893245106144370307281865184938950870878494069627865462170853926371413197644499041879319052703089254663326917543542629015090871037505940090152743524688746354336718183044844692795122196273178602942894899073625553961201305445053795318477245423944519375818286753579977591877509285195257441149326672089123600693020989956198453630760646509849693173671355506556766997769337132655239187672500539735250653928048626945242951744860043728248761377653786589664928637775263684371475789229610056503142084576858255672830680072008096947753562758154362560439806117748161750324648202147308165074553277565940691683608524708460242280222128493947573747321875844176588619675444546650533083690560142427727179918763552730463114583727456280167687154763498489083217568832499736880318837363853309923356491567781069879225656588176980683937428504854809918882081836437735360690173933254091605281432365624071172485920416689756687510308393519763997653379596290534556793878074607103170446112601782151232379964179672716973958721249877053789303150504314255618064240985896581475499918972149506615320143639737852814979329044063279695474206298736630524164398830509096177928217174227467982480311661644111295218413251222094348358417273272571641224881307184095874505929299049902110910926738770449181981199569046591206516801572061446999331564588676728208650453807318267180110184576834447776983130318366250297691494208409323724777751155003889356570035622737586637544894031852777338783697629359860928361393413115584215963135545379842461301175095621131633677058577606377385821534932745049572377199697190199049618422263591804136483638784377263468693309611029099864460039808717032287583680363793509338085816455102745322697810715000514461953863297113155713246251759666364223070917711778510625486128309257923733572574167531977371967054666854518365969328250198745362344498418941589775237357346782837379246823375203071179872514517700406539715634738575131913137056201956728370706226830447636880165402665473362753212760973443389563146278132928519735042792227845235972643104539455658070134414779862929328167794833184288718079049800662364490849919879728063916732701174831409693425022787872018771167834764076049168635258145241378289404598467925894248302158070579565576684417236947121582184332790622827179810887497296362503120948333341128053070099258048905246838139598669943498410369441863806385643333556275633732129281355705003374721181937506244656666633039093256590939171470923061196113302994193519219032815669971908344158787882802357750656791785564674212609406070459353313010465847156439181034444638626055176501201050659525256068993070345329861463461516704979971707223595353280319922558633735520104828201800079129821408528145386141910519221219553463656905429571289743336694073450035844001889377070648216084368904561680430867132322462902937818583257114674098995963773505147458408398912537247332602755058607060750017749302932356076073470033124574814402874537223663192099099574318088456136322421182721515292209671767280696818004243883549525552758505625919106444510922170187889365117638044503153448981076790014455881903744480724897966388508597325101921509163819038245683168267650355198394129550865258212714053804773388813565789260401869546773162032372423455590085751927620225722922733777309883596355275374475892735983730232994116267892760750591690705630493179895921839432783794080190348031896539447326518965475236706921496923982125810190764646039429706977626019410583612635157470552801346536710572082883728067436057274355034600106138423330473910339082984048849990574230598514050043477095732912140188283801731830059891059153832841835449316325948265352182588426362788811047388696891684035768533707716475870590183865182145042865510392799807526403548213033283396996413721063923774752564348382228321551705847668076942369974899233592891112624193815362760285992175841544380492772689426883803196232651972360848180877914610020710506030769847368572372312273779567407390768099133713172040984256386377305331429975849521629507136672898214110956875475181076540482136919580753048159024306447393351032578327676364691178156368656633289357587046206699363124116748212257917631437566638071130567794582376081209929087571990090701243196124416250968575314377734939593893558631468110391636899613051669296069063263772128829578711711196414934982586098520160727398581958953369671603085616949656697736961328669438615272642334806369780010788582250739019161436103249768185895029089891294961698411935595436950317757239295997501475881774476228494005471110213732313893101820864666401443362704363319726714454407540555432391888250802928190182167281585215420159038990621451253514844638186675072541211406453236923559452047162210732281329712689412722585363992682498820117483390889001746737112741192688869506816197086245503290189250915690975905390416510139635291108631003839703400570613085348536983409409491016857768709364720448889263697750927141521769161558950654530006742794877681830486380284462320011476266884556160626178410667290630696769843823352489302803302751990026090841129910837203681281187398825541444160615879468052920030009206445632407817141361143263018457674558307236665748624524778568168433750833671683341903803470091307897406206160739648742684766640268465016451201918220567558943874246653679833261288816075680575549984116236243963547454134804007841304677510174437477061837998537923920184863336597029244703552813187021759382228054995759204910760183086834304554903066657668229986783244386377645118912234360709116417110092744060245906320031560825928821324645162664021351963791550932365125725371934999255230220708161963029789477511967401836192582925401480884470527315155338325082293193169106909866246359756111931109241160450343169794945540814685304910194442305325386823704886894505233577445246628513016779686398095432757185889157818826316069918408081041827010658497250218066260299500812140169379574013416161367605319045771684122880009093702372906740662874473539709361574792711797991293488038779817062898531228244832970199365395169808537236707624739995454459897835887459503475981279036940285142759749635710091100551833705594250763848213355731381818308456263666715901460091096915963188991107804585520150994675109984361719184893182867480371732276799923725025641889753847937841058403163963183176926440435099656015422571015837584954113329693638311860568710601649018268855065622117732651761576981089294607894738498519279024188032803142753041171567795923617675601964841354569892423312861704281231949814324330866981074481828210471379020074901092473087782336290395363965048965266092325547241595522070324593639105653630194662832850479646960859001336296570411164621181631132136543358141063706451532517911357142570148739950746495356025686625285213962461884432487961038748170830997197540359182523643306271855492957643450892495011795489089824652618337710185539867296154744030992281000565013016590662526978148308487117313102613050203711956565450992430421765522164821461252074006609803489601912024637343677380490794336170178612721688744795207858590335497275142855390397895235155024800557480671444881480431427468746041552992973663347642073981156692801293118695374514111757782911154829317886548514371200878742101303912483443739374355408943660160820337932097279736606288090991727657210919590020150573608955420936535615547848432548903451395103836489228013347874362026903556608347523831593818592340932055234478318924665501083321081636397610598852315572248657102018705884683422490218839057213207367423969166471718542669024652917147417706532627041885878377882442708178654621761173972857618040546374802967813793285370726587979593531465404543972411723604098405768770759806811535055441220521470723568863887061827795975910749865232514228693743414004688727922823025496787907286107118065460220123980071978597821268140766540268566709382574360006588040642996162298816699529157750470873414387151034783347966471057645387992381111121226994780092730715743413804309066642596484021395261305212850955722662109846458710300198637248735418913939748663578589793767681089779093547567739022040432478599361042525394956423017344541911839728107569473024694318266174709827767011020978905156267151729787976152022747724667764337246007326904804734910191413620866500444735213681975650062741279463462200643552033710313860603673335662674591203857645796163326494936420322308669094359229462916313020538946312916153357992146628803391428158184770205057786931017998220612884701805547043617050157048369056950847029564146187498003729018973918791126281463915937564009612259612658570239464953407079184619317854955472195661122681756790592818091418976167993522911486888054266395440524141605263405736214562800521456052036194796825281458665460959966483208067752791553288200189370256334010106124998720473782272011289418217379316199310573710793232935108149252617701217522543486124493480438239779095923481281315018521659925304629366291331634112946013442028780627721469831711310430632325109466050254663105620446213071340344869601397309946797259082526617256718552672806915557311210818371174629442327021421873670944431643933498631213874237043643305517934224934070959802474981836741766454281367072214920111827732349176962663895005090898341783179845127646961581855248308265495989477158660296552510324920050051675754588732605665564562142197401747041748357412926729004646642057520069563377402018726506254212874163110293526875109654033255337424268733230653280220337554872998067933398787178416417726304874803353076449620107939622093826266585444214981225027662292017869285648738884273005700745052529994287274832629396731248012949761329213141824421469553625470811073757340122826963267675035243576564388703895310895210902087343083765280602002645286184336764625356306094529182099880738126365827224160926842292159786928363474902161203219392127502686482091775537280653265857825511109847981574662382455589494793861641208145834787639181682224708233563390203412990035407427524015636288729059735075982846974305148530756401583688047879645957712493651393263060050038579801977595798665764867246610431656711084803427054863002565765321020428215637086604019343474920873128360309670275438062887277933782312489640663954498889999911277302052391513408197900310515255600996792230286757105912533616438412649026783664237026873915416310792943484304118988605638813519700269124665995386366774188365026689084100161792849055007362920451319751748709179887084425840445415092653700450446752392050591691312108218593435794240648757065992713510441163305160378074641354062738113400446271526140570871426344145706557379995378947302872191495381228368082105581172665860093251006431590234804076193103422536506846459592171776672740212729989134625299923973322090708484836198560388312369314109909927765014573531392512921073867107954903736628402960489967987194328001611753108829721988287297444068012353059771666272471816239288996203415410986760322783803582870827294355899635726995080621592893683764223680082100424270523008160905480548148013530020853315971056698064686065398251012224199866141355704061231550897938232858823594494045402171650547250300952101605536462295060210233234331231818833166093284820291036613463595873720662187572807671155527986956884558909980018937176617798685485716503344602576279825288727714761150789841910795366478154554563768773608117744456431076607009646615615211605728086249181572943199187864068437184251823957539967514440359206165346730739513455319124857277161590039170463205821015237389218159040073742003921918015018838368696839322183855305096642328131582786118249450637254601070758060748510405555623588966716919158343214745214411321913433193827722799246336067716999401764456141027380313386474214295535209033494517160349401712491134845849362965351502161222626116198097025137822355046713093895740992935985888381808351954338787750946500606405787243624693086607606842858254793529068191283153904270371056689492134644910524405642840916507739898553854263775109858381029369440876691927792199929971264744305350348550336020418677204506540987130122528419866230768996596633958503640429075094920594109929215906615851539190534883879930064976130389231293511224645521732213314814460849981990561505417787479879887746152107174382397571427221868454439277873878733310980695763224371530458250717518320544108686798801214811487270836172747275131561745223409283110086256495601593900987295623386288343369179757681458043137130593852235169227580505897455661476967197449742207222034017351504683170630372910687783944883334931120586207306697821248621240632931352765456033662530965042338946526507649092128462905167671236815031189315175276149537138086303741545265339719628443409034769320994549856333848831589803201306556568831740221022840499409048086033995993016371790018038742355763468366021666723922271837232925991080250138756959673255798207535496870061389622035344237040683957174587397179451436298841920734114114367975172768071748775962593943565696682697092925881891579256987041162285715217315765226538614542005947834594156343882697646449675657562542695091141755498697440220606521419704691948805883693786376760389854738712211646615474346711887876394437791783634430151073325678038563192574867302660790035293990288005618345674534201170416744669221189557488258852553410224926255237809623282306249900229124439536164472199875346794939274297477826921136844712072721663940068328721274151447196789707034509417705855673172928870096804643584502775126182126751499995506427545944865456735119765711897689633721010744728447102286883779085631570600279415907300357554699896957849762602279277871699710075604125193353106589150899473762911577647620333181331241985202448608708294790546221105615224388014244117838558572067457340883016513289470429742225103327976438102812876824065901145222840418478678571037083823875326329264437215852025876332501391135457993079412751367637778613495180839836190252639453836706582335319646319735071560565827589652463487934862813577514526081952700246261740990887909509271754525046936408235273186666810406528683498127229970231402852666667602537174627500004470329046466192043440623215605473448260326535850454248265820121975886289558060878065463070307740210965529280200546974547724465962531708809472996347987085774717930571539602376021288469900612001861382531162735145567442098582022597249882105988263136229020172805602194211187430218701819436749513820425971832381344032719249695576115779603578779471671392566500879156474723150307155114012849347498828272085255896688349935207239481195736608406620411892712972902265457862944991318111247089407286083343434837563624320554186952141932180192935797929066939941061377873908228820770952504330737617646238925040154356995143727201719863394891193199598101323032994133663855607954380803784308190053363669843683157029679631155630273189486486297489319044873528990223676394924185828396234022403832148115892093148549416675803652110807685465892937461892838615002396856601237560162945305209645370866292034165952161396600293322139228251656031447257128386081912712007219699580080380278999290396223987306738840322391096800132136734868589462605288810507417972552345061896569182309200624744668162732253414646384307498221314638613389612062773988970556945633840240950444969805093393533389836559274259080097543715916891052820280222441511145233371996364535926051478191533784511377676529727823793034764893575693280138472819705017296878390306259408007712921473240192532281540838400344174482381162229986907663000948752862467756253381066189219394343776444990230040557195488792168949644816237449649280892981011623623823452942580706300100354721654599181391637190196960489142263880588845125573872621693275818226056343032616409102744465443510491973932532752354746103775334003779322986524206513501802990968270269374112995374334610452492407818857625625946662483029007515136383856931661320634526513579601651956771227284168837648944995305429241746744459928930993605021880184700806754285901674966362148482152978015068547431786330092039076458757604005307755886792497598278806207002568561690022015121845689237503914921470506432722393564942501536201018840801946566356304893868266787681863276797721558278455800515399594436231772614375587264512578488182316369165930693426016006260987056584443638375626662608393621020665896143576417486973836108062551146212816581277488818535222008702688529913936078197352607316495938162496201750477258365607326098395146811298574980041685931883802223530916152898219458822682521185017670169238336507452024438711714413803564159718004129503682482967902590210876555935301305984590371910652948843228354050452665378430849091136413720198155424988159526377341235479586353076228682383451438430064281118449675770093612208961337719759040927571807711494184513393767942592338517851349599944562367798845488724907505424474389691925335618386154223233418552220170766537021315291202889007167615925194444031570603343788120810753090916128066493847156050270153849755431166142391035660231551583344588956120133279604376397355244824223113681912690228486205189005113900135943724535367230091383851224091743036593625211245556642398962824168132650886375453323394552224703337664265966721205472409607802537175917424728453862891124100111682252742606671635072737026011163897468186233603012521205635338051676677029791080779659299189996414184154901032050806148323423978058083622289200223590074357999997538537579343643127894438226599342194053444263362873886086889130213928690639838597461953510852862120464594167753957383935037954185866793871097838582453728636773909289332222898785876685931024442861589672610255122995659870346965694739424994292773117220328284720328752200380244352841670635105486501028951405102452091804498768070147617261357745343339137694188003084817624760598106898140573803134605359382766851769456082303337414827974537376635556029804587409900887875739258155457953729789122004120978302105818719634760860154524499824703558750368669577519186619238586226715036651572240034447390353581642207122197380654387715900039114581336630473808068501413411376385727411768197982345713362738404188986803376204417261165198516171677773044377221361914689291268257389022661259935417876370468088105492898891204461492054048032844651094808959237305338547282617711343326645457613838076086225449354776800428608903166605573244003289771485703397624087138297398163070233766423418100126190693222743556870132632072972565075775118440681883609249689845302978465494834406029839973168188580578242819623465321789379207186328538413949069780123597664775867362057264069713377886439896434370152823511593996042732055372101549982803369844579203186452600060070141688992452855379481904704973941304890820854279124219753121508561254458638246145329356504241218089228026433602617748963148265512563363716381795315610120659542625528544552485838007519862214725369020932080053363820179032310507018878822358330728256631972668161255602005008448508797659913797442753512243799160740694689472663058802004917113268970060952763548832664123157226814806358389495285288311808586032014058935114564780198850254969128382679691009853559735476914755982343537962960910687256427175436539173672899857600083748691526391961434850391484220143659831508212767377659666702775031598949446702720148629873897453546934525247885429537025598335132880287861137448023958261680837084044680343626375339523369488728571295199502791357959709991552219377681731381647688881564507637259432175623102605263261539925600336142141185468257898955923082818820841173287213643965872302783353254613598981903042004405818136824988227397559642099861989304348683577091598958717438265724443456009674667247731258705173365928840455728450463359887527750989267170727025810117918446827543149823163818106059142778218540919074839851052601044344698766408105523140251055243181663697030710287509336831088107326010736978045497070223919631736769914870703556267748278744301657824654461084640605330212325948265965112767883095069060849205734623333005427839210049689288278472300330756754184665572109620785242352792132832012798060525840694190365103903780252272480674374029414520739710654881457927310865872771903262791544474939686239633235720755542213979862709515598291451908795861288035778480868945564520150116500040678217382704215314959145539192406704765295938727485946203169025350051618171863045354946700729606127701966144288534233202072650140159149914378572483735588372302005692101837073457860741695254877037481287647977404118802978273741401889714028130223367670833084902261140415024727890415622897997757047935577028799457388197502130868824884290258300803625481941700757358056989970003821599941133517883528280319767030071893656821087166172698526885873893544069293708789611464416603054564729616598321062852166447128142941939728020954373371703190018906891472851876368237151382801366508398976767954367644772416223351052244657841958947360368665574731590337401979104716055168152319935536047030143468201129524092696748386617955235900158974919980303710963220422896248422019584793886117084158027238626664537028073742700231747770017940665243473477922406086044089629402532164406621810276423622645471901869977687223773535536364459212986927121103994729827670393150177881329079477812980957342890258790692672685544637724666811480200825659807849909990847632917928720038766683165507388870015958489520179369730096320769502748761105504252946680054529680095516284010510952692066827244301362530819471240505280013552041548867964704780788325380202847992219313481309625420504841949832271494674037705605004094464897048297385185854553495604613644625874566894646185253413182712610345825050002733732910239826379300779860343022839330561005369948029472230544655651027090018253318372787431856247432094299731389877311818078287188773360431902585466591915934602278503538755507218856466859389539136650694613526091432894738072366511845260634872190953798768222173975799421091111653988656392651010005805951598774007800492222543757637332539609207760062824535506951463144719554993339748275941603494099658575352765385701509012357114304681710869129603926183416076378710335613761573032625507914647629478139511248530165854993269219353716753088570300055646357518379996518604074461475192549824026156063260835067129682131566583976428340523122962806019318511692908435141105555171848303152635433087978574594432259690772586596186496830473181302693784420252590383728921963546410385021560153718845406569724355365257388799332071218466489045517351338155302192290139683136194409446202985550900006013244380300107518566195873467671315878643479772849858479826516239201752874645075324889342685100856128250201223228661935359038830919192777278042953830620034355536908651338588184900421098581801152313961813917305363957232618686452543051479158824291093768554579018862475942479028162777363773155106937174042759479941673444511573859500369869509418542201928332476882456523620875367691450917304467555363334457630551968972866648011006408330330090917699883619390429304219768577336538421432679190549946948348311430247280440801048182618682326702004338877669424580773799837925749935827239211742075404014536772693548124869542605984373763259252070684854484503106761705480743587523580951332434876368902481377535122400946977951088865184530058416651971559867454052165945397465846427128155007789717266595948464572726648579341833694163098539366569883064662361015164869762535026233880012156515519549099558711779576403671678733770896048766240423713854717265923705180065543033132834134611643087206965304116543683433038525123917056142234413591441513774200537583530061219741243806953117691363942970195155641575172057252757467486943702973426558350522575162861921530712084692380594111344798469192999518665963896379311336739265732704798273983875623490724472845881460370314112470697608006916473154834841084922026584448238289482070328747811508377123926150473433415304378082276033102261638767860828646187960770160222422354096924833906498487156211502692370699901357495280088518582827255899594501327304114902043485221066171898735455194538484877728385650732642028128286895031071061154916489245006640564710400571040614286149053729853527023888543649119085199133222121059445834907508333628498162326883286547375356937663636173657563268407186183300180903335216973431149234290213262508327272922063038959531030929744141875777203290668995631514250142418950975428261473121096364628713631661748610395743606285200696918099759680692787285123699311567800664403660962003736437760947739215890946099857801379765359837073152858565465469775414407208593271597657467379168522943615665306905849004172451943488395378960400922510233456407337622940146107863476164060858432051414790268507231664630011451961571527925628603255096200161157765080576567803498993642033849765433404195475167009402817211594372159448148688736203506320237252332301245511416680364819588275387326361190004777587968944799637492796124591348863074163534531865265206979362820034173724466038776221099191827705096200364423290458374871834193075581359131363775206352631629027174413882006529826848787551310248843261870764651863499480195190015806953949673538843944163791106491044365843659191581305776948961384397022858896317142978871211398853409459992389867193396032227757583582683497372999826906495082372427623261472889576193229658146520386279464850654241993427776355100577689772441844313534684143953301702549042042508654143685868603298998990724257951271421506861967280398026200690941481856306291675436125003500554433428418762138937691313667031797804384887391993378408606298402559852062027615431413746393660656682209040416848712419382938104709364444397150518140175106757669718077338846119006738376263521275746426350741604037873730015075510010365870110282706830899199987935750910864750751056068664791069817006423411390641787130373653249024808504847928251226838461521002450265658976731681462848682253773965404751169391944300804521502632736425377700244351366039199113428731577099181642735551927446802235365237235273809138529306118860720306381214561151552939502962705820949209162765150849236682181797316387007469765902565740750339966685335397935386034654666703086213461940784727139591814666302833318902035017217807767180720913295352093269768474469949906573357132084367120346270724666479884770306232603548103828414933398540149375857962341226241051951648090856510740662732567496617647790669279275044450925693554301168917329888827006482738595526221571225512661058198511988567014855849351096303713282162620170697515969931892176363573099398363865890497627869393597599690575913043775534124373840530069395797673249141900438580861444523858600990083067852945372122428573529840037538736145189624536261992907520622997353608735141442399332599815111891597170636637479032832775878056356808983975441015923260974138284988540958679520177955268404272768900600344507179249822502263220808630858024240085308981768159353228000961096143083168334629607360916800426304063729879919105525497250837353674630134287942084499745598457380336144123311889745546813456791038737971430285333006297902309578914638953025687407640556958576570554284722633226060315722883286898657317196716013404707732962240195901400621654088476305822778706992677122284094117321663193599306496813763342118048435020406899067004937827397939675973824037416185491495240052585539247415840092713236126414917378738911662371921115692901208065374900254127244319427149491170049139215281937122290077967929620183875565250345883454272909983812683860191002401063079419269152278282343954833804659791060178460475167305546796367666836308828760407560307491248889917123415737309158497708492945286399541010817841301751875319211600131610119340205623802608099454383938971410488381651221408326942362035444901034165779177538276857526540229578181071247540277563408094125366878897257594874192245115740312769988377539455220577549888622816659359522457811452330237737279279885214374203985946620364468319645815992270169060324857707457818126845755324048702348521716112263329888443613099659751829442169199955518666059009555216359783356825275712657679985075677696722559530544400566551482590611066338367438800893050416706187464157872148181472269481852180471305548792054792772715806199879506772305674695755573884854182631195521581226062192875456361633836621523970609262369634747865772848841646654874898951737696988743488691646031997919619435086126398858347038515188417970197382704593345353971753380962943621999194005084470666658322141312969003913601702954520043474018125221245712646317450771468255964240234348077008504224900968075652889728469563517105175897226141393083576960174903226136226195624534618333059667114825394484470813706581150458740823825483984756597995240398581163868242428187962606244595793639118389366992143324607986431358829367920029513375811212541236083162895586544589060770992817823702397916467035119347410903836855489312290026377088973576569389121732168027905152060323216389808067473853367811795859635246737662591134431208987856076007170318123398225546345968630974141358132929794671014978940938326296653450643854160535140064439295517180420644961022982690165507984965914056726918242217337660640676306717922067666607047543966789748358158253798917814056911927485030116322195554220834085507446436904235038766732840625898527330454774461716751440420213845822220246260615777548735492153770589895860388871464929590197369002645148410514813200805253753937050596813966974394936662802459299364965077909405561161228288001212978829869502331788550208547551541609872234720173767580656613108722360040248088435118376554433435288808137687397916495996419311389850279406047089690005718937021780729900555563752068254749481186750748603106449497257749158065965941971686300207150221531581514651914085825989241144097613081183336122710078409652919893777592186677948436982786441651227888114919330590881636229878956856822011860929855149868603447235261992644485145535325424058504559133522185689474327737934104642770126072907760724547609002674977977296028111674067945953555989942852211319791295587061679220233868452682817460396879590692242140835963068806055935488304990496856853881672169625011637109929115934062002060312178650356234966499648055464300443881287654179371804744292751262181170013067396752426722336859782699190741691042566174776521308204507220918619506087167493332413128720005597991837942534192661020479442326028715612351576428525705548015347278105778969034498261284373162156054454279248275012686152955537921471948494236468968912945834122915280156131148567983147510819358051932765280247488753634647895552245372705036956491115848343224072545019701623946949561921556006638582946311519159490017470728509230207410766829816871298885573916585176568532692302811183750785044223130695815789143591089341316019177438729005248311522294125647129762896763816466106987450973497664340505244380099712133905129357893091802008349669922178932614851906713461851918171330090988500461807111673129621854176170088152139486296446816052199511210879470462327378387006708290375621069622186205403556293763940822348260523048145388961973301112152247903928849144110162692111252053111792502986476504909727392659606572553911992142475044043949151548751203456047818453549040379576626973969722481153726900470203734926181701116245912141612097322744032646168636475021038258071110025822704244937008679780448217946219989090333241336802335589956609714632652299125597102550689059879775170877297749333760970143680060050175411301594521039215549608320801857782146796346636272393934035734885038858205926016546664100333460792606893000247305950253481187296131596362229653256033240059253600233690875304172163552362490189057139651734036258296750444674699444733888176082537984382335288415658272018220113163240576037845788770084250542597004138345242722112564793891574500867770928206507553969889621621046331211850951954916746860440934692859440111888766316589803407425828714222946980576752708189908134132433202136313259995444638514420507698762092336576122079645899895017621168920012114836080152577834198535638055025160355197072264689735087106929622260873043028438586326435102323574096991998396597040167496055887889814996455356685349984570874354151050998221261365704511082052264305382911907308688996754758399210779132580250744133704199554697849075549972566450730763227993002576135685679293957725362863696506759001255153752595227628745871680287275405842128054962516664143311737936904980895807187503064910174896623621146640828453876849021521175499620706728720138069210067729089324277406369579698098552289568575092920460960481630293654861481533082673053108156301968628207009715854557312862650063108992710134104430494499619578039677837748592225406564663083597985311748468914682914449801576677067308083883438710767763794374352659123497260044364225298172880025181584735410132147470739602400070296462117036815558928776891836650269847853543247146210503230623503169164567117741707263577029169547148573510909820878628194222124312658567373603453202907329150716601661831340603483581036561513332406081110329052384672037419676519837360302674046989906009467415588991729062955386296942090797358609471928415704816817885269636216510670099215917288975536643354769641721348200107378333980947270046784989564640055492163658228348258189502803723956247186218905809460867312221008395087008029439212388589215781971158557957212901266386202246589810869685281762241140937377090082362338187583137301375554731098812255919514538376058101122196291755395650886474720114727312917195897604824375783041322406353512467673993368031882142547471390922065116718665170576557715169083111052256159431662622940253552680983008911691196040338079941462274603721066524661782775323380693228761413844380722595765623829152344459768499562673766637810763622014995680911034056320450978331964750571617341603823778434872153063012259804795068691079607800570614628731137003580871434390264427018895921133526739265121628019334971923996184618163857241952499924019325056742089463187022211611551274931999628043875637589882613419909674544269892287737737996245817212158948287437416637447504132411741159592951368630095991586294345911443512694661825988378027456444591149567195070143084166781558331942377396896067916927202431522900349488086874213001885345968086621859638868763179418746333395046975107114958243047617206464473963539840495343655353642050088698433386428528656593794831278613170231886456427792067742342261767880632569937650293280170112022072221518388812574439065799048326001095610948751697698372359175381230303819357216785930663200998718468196494038637460681204244228994447084915476334898816049241150760574534122005310261458747412773358800882775630203549081248257092036443576884385371700828206741530239707985205532032895616740751115531118670194866007892982289870562780901989906547563194980994417339042515135523681445070662639525258067964515759352489789517178677637385886987104360592296093968872739020638214457450155750261319243273950245540083198080146411650166818964308294708365552580210895064648178114559109549329925201830143637479699773346326832687125271647525594554784651370130662657724621812577014883251521949783490832510301939073742098292839397015098764715918046162818451668230834087812766780752706184498505157459743421553984412197257752935317344730692483552851456497239599285027397707890395510768776263651949702234667026101322076653572523806198939528492484113202300488103069181156065151388310642795218254068996819735469432356698078024293780312991236117662556161628993036645591174303271269158014761136582746664699149234774683181633439894701052513126142039311032956139313409164687488870498045254817404518758591558839892707145329280239600876733042038173562648781753022819684061070631702742437887392577061218200251442315233828214458280212284320785578330394788796779888701697792697979658926157123902068922686505038437531422410946916190473002370132352549649774635442511097333579083598539042054549458723066501087012588988785836238821348632358364428469259852562624723101801845317858966248646923423165857977520413343277983805382586104842711230684731348152602440961019481376349362751189447591666691626684714222847039863830618156683163190664762957476036156188644010869275545064776974204059535655631411218608779125089907513271254035169020360049345901019211434461159489962999081673007963742125687009682962835554358382577771738005220916364639298591046089370264038377655800036724046826485409395961070208238509198829344708743329184478144121571876229155673709541157913106368194418550127432967660360308404152868926875458860210871836105761506720411821149956229865612940620772115694288801116122304563886052513794747906035982958844995867352037380131626813850837293220721984060390137913384577157614812955154427619895332886150988464787764569047986076418436100344441173914513574453929183305494949838920205483647752051878869708129004181859768755577336582824696266320031461543296613236154131432451528062790155907492857622667688672318915619024641264173045178984745269388406264981937843938922408978325179385218498028867244967834702523740349069585013470325436781486200682099115909364889746610228697355804633398182240974035932168628121059594907296072412509777915851317183595052856601699704061776155798256869849359919861530801040112985599579039022307340194205229422794235776644034483909758578162543702407303194096259057429020672008945442400816508776094751712684597960002191813900400890065928662318990717824257456163400596594125387199637499166555232535190881221946861526605606869653322115543505451596085294162425680596256997811458837012586943417411754143445087282113928915140880293847672042012798020426915759337917872803714824116773077468690887690802928422670213213930168059401631113100258074695729753256622556465731049174460420628486645600102023626826592750199668730695562946797000368107267151715374072325417674277138649443536142650925641088336523388778292282485822905446855334903470941284757079253878008694416425995058843669631028446427880041633293120004846043417599524740055409697829158306026598254192226155234711953636386506418012042437332311522746165049803794280773201724294380833376351652493017173694615986607641066005845967366936714471733846287328533481269527003130630326645852998389946138739590656827424888284262358261111021582340824874465785303519319599614645534210178659464767586335368082817539565013206743056042205026662232261028000467427270341114223867651483383499104726112970135736625273953490914861566069984218958564522096430402070948739583741083338185209985108644013844059380415408122996558401324828808218008346790696234456613739434982720397298276222565835210098159298429612057859876988055048479536617710551445249500294572721398496591290585480267131259006576091893758871113855814039436466169296941789004437471365021715091814959063282306019313926182952080866327869741752850384422522757785596969793308498199717935728941029415375729101978517907004627440364653593782901051767044802168630095841770048552665483836015446438144836218900891448394705791145685127001569428492371670542305335371466662581039537491952599157100428775555082508751498063583187600473460529390464317778215905561976056830300044235378440944214749022527207273652798142598482245302074389574179544882602842245630661826551195104739542625771332379592072856308550794922318260722634180862369354883173764351525675200650389606656213089416646863591842931353800552105915746384373491686728380215110096212514246946575427401156011284081910142843846297288395936532546869051423397456695065803643548407646333248814087780284691599525882158111757473146493905216417386242275929156786568891471864716487839820559869404001749563647150890837126931607188987797348399264076514297512233231558976041654639891664062618342689344745207159391282803739669275753320023907877801077281620932452834800360009226608068023848362009637792454452164335743719768140274407197197506123217355851963277754719977003248127437844424183177401134373109439512018526857096320276684649715113100059954616307307782243665721025724360779390500773930068130980942815843909842491346951624646302598879776232263581993264714348436035467869364718337515326160365180266661039699442965005989777994474910389835811387132373988331889599466125782558822938241404292377349182727584861479996699999206198438912026920498926464517253506545908465429611211814001738494863573695438585424151559948753473328096383599795012721792133165740109922559530710571914028292490330055942456342443855678436753196801765594011690381139007365816337261517607796183781690254128871223384380736966332331479967477128857828118837195701639075728931316179868149570691629408529278710107512589518221590051161766938216932041321034035343475848943904256127742939337029176548835659168973895077210842693538016891115304056113450691801440934136682630982475743378490548541422603436069951907262293191833306041820911659021339054666650575376300603579607573961667595419599094865193423235404222378732177750289912832211110614275680794225500983806109032902039616897484692310082899996764153439374093564333328610754558662245175618883116172292660087550098278857305983331020901465933572758816557810603650994877212029725282059693973696609353422925222871739899684237794456847035967279808427408658990521517397435631593033176529132082151958499522056768603221485332752563137069731404516833289822569569382198589219920750167181001089094483144776719936346620333914884465764099522815554840024214216125116773958091012194665735070292309021719090576812830272883985598999280741380941060404123552288014176984066170634298584219649050302536952850717156940630093808757516149768284502762497267498346218743714346718095332659243922425251077895540391526243811178937079738559282710886300943345451199203827793972399318813688230151528488305676936833026998791704400124289562965398335900076738945751428309496367103658637595347506078920880516437391505186744314344001279706938605967760036676826778026112838992344105252249709632138901177633482254742645771461328342886337864296367432948700580602182043087665287258239867234767663477076937710492206197029645386980874595224615662409269674744942655095825691046167631927721781468871406875328808720652857251662621553781622754468528585868711593394729393702122303856811206743102989012696807466594170812550244027468638929987501921504444965674402990346071604478624035278935802273630705049721533601666631358238716767185085740967856916257469304492609492843562415323687025222859571386568962128692720245110205646789103658658316629284152206397448663319287462588857838725004740278851717651497241032554598587193061720097313019089805947476656602343808804579506558637038941193443226683465223032030922574567373312056199980456626943284900005643130484082804746386210575057695327527560768644770405273715692806145165933709035222860477337648772205470143126643486131531496065798816741268546202279862153075772428727580568996212043545588576707614156839995389747401478838696299476570145303881909180566957244244595662712216990639496868235603257837356286230796771550096636051575203350639201096602598472941811480846859537204955694973975625376990160208447456436874179870770077926542270315245891687270194928674923190559747619189337882584381168360684796131104077312648072132502818448940609918464609115834272736716248508023010873491555253780207758342815549775094796707133673638121775450801837718098333980605388249045404927574818132462444175874665725087373314227953339867044436101655494856599735310951359993737657866351851450455836709309596505060344138219983589744718976561051515540548727074848428286897460912755437241714074203935350407869657051439815954997616452820144032137966112715592809697027587172775441396449488645619867016840824778255773575190226127966998000917091136747364238809539948838177540516474208938053428715978912485511970191684740787185355887523457118767536866440180447408040010502358912679963793166709104988298641554130235268598584745658925737537080808702604378336436378903910114134018115169896914880251616257763929666541761528058107129128002729923229380200534929529732819575984207420759982677539842799151991243806313638414634359826917752419761950918111025202993186352001950560419450922774036370464546749783212224114839280777987481644162276735807908445300992757244018811723136090285309629795464239926364353848931852423277433428902715095752710774367296881616839958578334304082780418724642914756704451804741110288103890368192465219290373148327898969960973593258645007505980412264164526922141970463167810170319529140057660626271029061616705737546254124104665366146873170862556549060722754019986946707066357435764709590714552283219479192493300719130633001976577978704578359265272550334564862148216412412574376849565660636788593630845963350857149012247849847439433033051902351075629677053097636134138067549068567262435949444286958909665047001333591508769818135215956106093505608178823860591994588322629861077830586850518895021767733557422559364037556780394815424111682317077606932146897746308745484801868124378067287976512191130498874742648421166267167149910456731974268469663380875502631071384931610287615812181461405737996019180815202829490684239777276188024267521170580144909752185308745627838374296668273225432967890326082103787004743827875375385020690144502443348879033430643230928195004222650678833039372208746910215222413141353271178473332606767637216607755068302054635439048743419376529379837533095736834636894100767047530201588675182732280247133579213461479741051422025317968834162645187524181088774491028879155830468863845356992474541034934811635710990461580688103319123438618132208033860844990201421849212699712063355399218182308486219146261385466897925021452609999226260669119233360567373830258645516134789132037816263237233107768399083364105815810275216354716155217729238595753280044693272327176114006925586038011264406588711694035898715580084319075071454366364184683537640425545168091884470714136292728728349724333459810183111486380589729654784339026668447296883228010354085115475443205308703018302995535332808163312062967735711621031003757662718573903054240605609338920658808970615573943654572921514185892899962164918265244323952843219635538729709455892708725873395584745220317301972074753654116551683846382687982566675604922430574744692607777667187248380455115487899974506423371098083989246745047645620702521186611785148085522441062652586496195370052605538342453608548216336565355720344359621246357377741316813571260835914616577958531208659546861497701141750150736919865850988520094506980511792670997319608717887222579536731915931777690933007628607195362005228915409960043706466998573353574932982126230376745509132947251206988770750834251616832019436364974141824472579272981589512389623565323002121485034024304730745449824126435593109147920992195668365288274170553774916456449023849321094441069993154538428298831638745986480362904605666744065487382610999656400225747736421787765949731685960238970786110760980954518017118275120708588548050306312816802254367158453044609159179924281402460308654039025462490603229647444998800342782937723136612833173760584426928829682153465599613130355071748991494865217732397536894243930734257808541245847128588799946149328230845782173378718186277608837825714676482864832392827761228371325389827812409698021104018427198466932039468037818351920530187551677064965271482170089379347977430245547473927929605765065129907420362488336030393850998845551950177526118528244397234813551756454531187720982431463576746983956183554441669056707396804603620716948378993753438912153587462586746680534211836354846627340578482476595479559681609194397219587413983239246135864710782060439924376619423421240511155379696547873411255561582312847496191604605650301082908281868087795562314724288303224498134353671998272566637900081754142684831787424735633377075776113541147455563149780258196406092195956605505536572381075198687950667900009017506853297550009648473950342830917163884620941135522789022060681140891397381426221562348038313178601670867640283352808456939611736883104845035727207056584045606323402486505165313025572550603754753313543158749323576744740911421131561997661665406261399262845708681188021604506640992066318734103946250212567318404553130629337302749691731414762994489375580301049294153668453022040651937308591690845427274042385610428002707186053298012833304965029317132991192834222005991710842503446103067802054795442631299787700510355721247760408820215908826811758063061318228346134465939064234195789606260099419717669485932880269236485481486054324298886772217879825758207882055522348243501696377569032626381848118812700576091709754550894596261835310218260031939274169259502356785475510266776577049324620510440998966306927360113830367685276056110050322281728251909292988292723256414750168575204857347837133926287103206628472734670263607732002684407026285557137407474515711269496304788753497384688437637063235292398217441735484482368752550957444144186101289659902404065574450797402243571208056459139727834755523437883797949745003865634970616067282212851368502388151485973602981290686026687600314343470107807581238170793774493721188853763231055604106889461582068301211202321481840779158193968407719445150198644182333946117086647766966513184433769488633283464771114370950177932812333089235958389232419066851085189243081414747699330202747216735871299617277632753242798992450053114648573887672926841892467306297451105251345238838688819519798887887704746583466734932250562637228608527453026709520023283574705753556455892201104690192031479956729276048888829142197915262833350652768576425781482493679168287321314065743784184192704923817877838670606331307783713073294624377731715643788973684185639082723211986250300695636732039450505915065255200111947288866122590260986777683001008272238933576622442197414064781996807154498690258720078899838591682763582124905628210956536572935809553829451272752778464488111266345883606463041066167061688112071580361659205754332178053408237183782246011093764820770390156104827789402330589192829265207882853393157570275114880229118207487038660606807495829906054619396032326913610835760604965348786071139486229793608781898798486819844569416920166776303837908649697122731794187766787503549043875302391318797970152685591075210168928791796890971599935286468155915872578388096622586893495737897780599372393223659838707775689815620806421340854158766421633795048962424889657796419547709685574957668188053919029052309229034894471600136790420321787225611018771245612207733353300016162860383050016801856619219849548897616892165947117052176938827228353708675983234080716404634700499482108455780539243433646053205801381772353841897426645851678185740090155019171376032834689449651334437967544059671091903553399021195720425562391358687760779375956183262605111028007127158671106112493313603320153279045499458488220074520970514100207234767683202214240828472396336670402837854040936928873598479630835669845636755748353647387875881092424060970819787209762546014840427564230244010015632203974866772535103368116252789896734787396165018977292138652188278125768209185850562611269768151937462729768737235842835649266879446561267398993049893885176927612862544968529879984613339229458576965054108180607242986518883551284766465913018147889762213017250423082862977636712744848645243824351161763427722210215413238049150716887151497362659736575176228128629696531024850621263236185441332348126289326709805776371770826632008054299620736822090331270017384117511475355262555218374462742966395291706817182602845216994468388675084359957075749232810925496284278481045006018359697893155898761470884356457478569455542961279580758154443167881336300046777794945911093508905683110438859842031436667128870988567129190093243402502401018144986357072206545318315568148583252067017963840437591557826359379403990240930536616649523096305890215356752852254958796894519116813050121441090564317042379594150903315317706681189533675279324463611358763305560474145055838990446644709159985984265498529196062604611781185392217002768025029175650161691985898964826188122280823051765617883691102874566281737107920606570433132202588761917521135474079533090082659969982203207664524256758966840894972397485967015594638746602180672490522968645815586080232518714044561499130875290939924509474913519252431270777281333598852353614589599086557648305590010943368518325157773685477662980179401315212358773384116028709030445761673386447320251972556297475678030505246573440616902298478621681769136756163405629477286077445186250942454491172182703472826766588091851964658380467727586918466203959559422811773729807918303538295562633920829474346680273831537452179862527419024952220926346736094106027815692265295868212720898430358830760874064735527880486020589164124844241921268732053264031889307541448997199257539795032643962797957615046342729423263323865227210488127965329519971298932583674151734939446044507504914018148508806378698386834726434752240494656320043560681264211113529310706510560553127336427152128711411298466053311831846673775898173383228512617646058915658591448364313893810870301805964095727791933719112862292351040545068149981433325764956438997613510418625958350813650383786777411809084792611058944948659038218312980842764848356884829101735375568997849477704933474802852621566906695019832623605287444788945180764266475577302286763375950958579049178804200221466294470086928337768435103718503964612778185834633687497133765196797756102471162984344251510720071325791542098542069168245571258781889113045317351284820911219777896089068377462268810549172552362367799351087465573754318590239773545199534234052610762403718637915122208862397187438785899554982771591153108768210219652146838108927026227921742680879644013230572281768073341358591943355081661253143622208561548283820460975227963021770628697340231916555191399616559333773854613204258779050985339389250246172309279720367352599904716171947298882530725684633046662642499217565329993077527422313281349883188130287476094369095083694909742671829317723239081151269131337471196894206097081974573241941138279086554718719984137689611468694609770631463357606473921775491148640647613779896933320134934046060292783237376247360480010098494625403468385281651665578231725260794256951122274286442075339806027231238535856915675544205481237067153940423504127324636169819329008794033693201074556253121595122588726462303009748441761107593970414048391665683615436180219015936313345964619191503895814097993889096042056387441446655371015339711136974878215117363199489894977019388792428163946736703589880075652597725987671357616716945770950259999526114392137253507756191739416866788265605791232969818434476790232207112617227438859920724274817037433479137595053782704757548890087861210249676189712030803562744023774620909263324091340151430619989380783792084484964640445382477856491831034453813132874817485060736741761128289468934997116956007689574192420588458811746763599686114187698842305930549046684431594226079400518174254839862982164529105252777999906339006613810471101950115848176940042652270792527437362874016490820139065374534741362516690318914160125173917977473575903405937026204254646109153512653387925989719730655124010283625355002334606723424451132906309594584804161410847520240746693764188263147517645622911322340838330027958730883438203684030164918753728703786231439685013679129466540405266153916956618831913767722906646177190479491149352685597185377241564923049199115739642144964715631232991275555806523066527021781358528888545359351325227106600935257082565915165497064310204880981444383786797990840449471361465452933525310230550258330507113275176650987323825151389877798203230578010127920871997184876292229047016217860804578946699610788869995126916296655274685940545398433155653287671647164769002089000591275857090686917148876219164238403642350716765343878746505095709464571155617849742255215276144547240608681653515653229839327261992024044210600928327992017538174728598607736305037095014039959972025923757467078614722560937498402745450476091594417175530905911357676048638356506581414450903657733993852630909880380746133450281890032537009761270020973732957827709194001980415495413370676368241121286574975900712464747246364335278228207979383498637277526818709249186171598548469994265358400339165424527063360844339523731966537172366175727084853481812495951072594563677924483979291795862933963554162311747566656902459169217990023905318140688801173573982771142325545814127494269928904216487512916278744823127631931958733856830561451778639355914241283664216116338152996223119692688278778170359876861807875671611821816788050369171441180594217594917320309340525656801808105690834602284189019300973086897777105109691453953597365387749261120759171998475237732495795930312633488722702448465398398167937353445036967476113047451137536986824748254580703813852629246178296615535137644937268822336748662608019035147766574347999667111379559732832961149202496870700663069523349211052591197154280698109093716526992695431559460552592676299033197105581198403755186212743167524812535160843013583473920002447455625551547445203720337581980370490364176639361099933453670087525268781375083420025119519524017709809774160118693841594498649720823945822052997602754461650755335464654022355442521933280934325948307705164740906597251516369799281568935783166256072910295671168062689265473453106659615266010423248542114342127529718828297968458249526942859267603012482049736697128692596644188658363010716001645323022811262480019252101460046920837789517174983192688119875081145797320500001142010058185511026603571076735142719715993777960999723470833316527786101045666217627270145250965388189685321503393584682586744904379512923276800711525060331374636949425895843355322005916971377097196202223108216400483895914614614299501368331072141827228020094823215815426032191822156344086684730924240258812706186132337586131279794422062409164624512062603686033520238664006650447967925626771143176515546023115442135492745302571489890908613729938563085594464363695617001098511326330688071627569186251754307747347463167478290157390410120750174938418710325977620331278611639901216276161295396065463249302216186167710936914424485918710032228415760664856537174251767422023052935013836802100919225650499096867806847369014677635752324691984642263106001982486392070850121838180948669980350515131946495744659278674309463418297411623942952546370044203005904741283096277292757952584051016938806513061970981256384810812709592034515104762027465263466478787980863108711123490000302206914381316688476070683583750986784355669957278110177683839541074801141958698912996943877100313509153186127278958165139305948860882471943565884531046650504874029196454031393618817410478627037739797585263670223618860183335884941341831388116052274143012123805809095957769735922312335757358194890314051897231278779976072290481179960067625144314816686751444167827072434016106236759230662188642156432881226897540092470398939636463860274887887106890781632004183247749473106534036152247494874934128519452906568497768625387473693429641603868218581127366243380222886222820592093767758806489805032015427697444041758157262281360359574855151075500273959524018548023946415427804040775817329791480698619287084835558393999517792017419843563026504982368525530309378803698401842258158897167769352367057387737443856151754200620154254329254767591230384553584018142500115942232073823174113580725191421494859774429530428740209905344364027225849395616737946774293301253160199717773820286810797825192406986580171732199715907461929415182678377188650451675800116965962309615846431488866681680484274923952440417491719620739940772209948979520315596007310663611668728774233565793538977788605478256208111023832707222004496905206697548595416046083279346938459147620695183459566015821077959284443444699853676893154510122964874185904160930432631701654463154987780993171071493677195651366469917870220777556784028378969916641583796379716231511439292447915789367492305986574588261842385687755330019295606049561890385253210024440567486362734087735060443072100825380311389557361270041418330737831113029705976508208316986351210474208367655047676610678899340795850696592267300057790655246131813669711063028957693263314170161594515710356552687900089187380401288493802224930961819067887276248484831171144538543009312512611722783075620163565518659160257784463138047706248622641879416458846426782671555662846290397914531308080401540236580018216066223626006340810380613529230154950479232200221130688475691973789537799340956321090524280351459372168428091123447066102445222108984672869913498090823126031257356111008694807805154796610556831327528411756707361612810367697316443924953372938865301803035372962181173485470570489832337688796452829925935142039196097636532591837536666501820836582074040261300970285078379420072266214199787598559173687749263772745234017689026077934484223687632855425149801541063824206635827479303878684034156730338993516978426455746850337541077293074146324837138777901971705618775209990621352234150943128502678353721233018315762523208787170241128827053253613340023115679253953704006701954257675821275097306815334748884080030317560060201214508488152902057603254339407336869745580579688846660785250838061485271326898089863034768189292131026242136916917139926117063073391733716545276590913824867172978664231410977865634318852452985965061526691565473676004407005026566173341091059068341870048744848177756012909105109631171640642942413919917324766209507713679296887886418949323833092998874748157273272979696449730791869206973166872296038815276639997025479022568997785061387745804046596091001590084086769532469280145144880839358182589442796196514176608848925105742033530396726566583373530319770496568581888378306518918685681175661971770682687032623000615712471915814312092891183905120961127755580827472622398453063022272640487485318304326768100631402876468088500575096887911992920107616474686514697010632309274260652277705974519729684658535968325243995113251531486830697211932320654935374332724620185305136648612758550920598646364775721323344361708011987860542227025698834067333909140664058035202605049902299650362994162771513695236906161727308981277830587632527765789647544860433787541554916729679964113993168466231652238655184914883800260726981344020420360189389019037229905070724179170095702691370233198424372486182380779616033931389495118048514144621641579884463547987534961816025992666294237534788620643911682255103308948127461730315699616921627544291617163421928815678897229572171370915571578795629273966507300431706697841161327961750843381454067494839400059091407412549638712558006317510405004968028992456452366845883035515589681692121556868288263713976833205862146271049396972271116306653019777818185767456423326698462366018021863363154250724540221456904972694457325479051911425344179639298332252160300288676558447905334558519453085716366452278109643392839129320310469437757346804606804732292903162854425588324329773949854932356712592234878710738759945144157559048560713196335296237582972731601139998627031626041897849420003769472530930807846230543377965249079306644137982706174558226356985937367255151677651136146127819566955816037796848955835242068391906365842721727385966033288750704177765517683314301327599884525041547619059955022144089070176542633656087276530323206699397060586869833140675544068987260774505273422098930608980179192364681513511863153846661455883879149838238704806686052970582090779265364103122779444254785314866145309088500444397869644896381965182468216344783616711344557651865726442653516325368876275028044756581366141973084597069213177751387213509023511411564660563323250126252736759778314584859277169088820422419558623539060691614982730028885786098039941092381897269926915887427581182885090544418523745159333158100812909662337615141289532563265568659112644716704116317354325190790519654631386067854109189094593219453131041833059867672522058996767714374778335387972560325456022410396283323355118167110540446576174862015712102431023230174316745158666177349131183387220971916354972756373088292767972786396202582903256607428905543208780805669968327487451974139209466962106488770709897922285729276998419338958704732811690264445166171753387311650954479142325657761973009062569152462943423665012621463083182138547678698381466403065070244230475515538156916078546588630664956837601355910568728977967376160608361260585011017516608748312137320346074724661493167731738761529560024102177637314880620206002715551421452351000244500507002394169547165763709148492457121257823555197732567049255176590467754467177609020256670768979825417496459102723144788998467011208979801180897135369220115537519020686686199483255725517573466692663241528575780636947033285649598834324683974792253098597175917459446038787039622700020675586680690004988764483214508065213607388959676414963249461551397184006322724664245034036855759260074470886048447997991423469184907373935878939876866992221882960460685733282683891578473695263625306004293995022641767033314707214032919255959177963917058617741660820682587496641747287109644796441100543060038043730839089931052903762362584495199485539508918868517629864293137331984071555791458005972364712372047855171468910091092816930060971894365720088683036075817897192274203610636923481274180797331119627265841701617111355373285103751546582712610332730937705804564077766586925647062747417768944224526087187889960578363231574041610026623325483760665773596843811967169579187233471284654783195547412480372993427394029815168850841654333117400154380051713232370153281406594307503595525828407860852741271019369350237238114877464351719143964344678158995282541891711367158851302122827999984648680042083872634114367526432229070668575212671803661279743809873408480569172255928452572025620422342597109398303479522421972870170885622530623650106876297227923733701058117001721863417110385600466843459311543833606089550333632524942680794810933860238848604378072183140020953848133467181663873075977321744425550876172621476165362146270212536047135638675114492566287015332390976507014665204591281576645426830989433135346615926877316053489628437855085541472034735686918449553250167893512385795053838180026728281985440678604019643559725787639457024593694169451232308006721454016583234763977590597446515145625157548810662382517847963712062692531271677187335582971762104575072369609004581132914105741895463755343859529933906354221966881976573174086044979289010537565517212691529623367647495812931797502948331534889362151928160891142665743275606043013185961649256817418091379139047165695223154780580057573660820802612699384064719906284343925952445023575661213069148349930569102155900571632492155063483398377477811838853822504097509058122483334904998473659840725299138004819416337823414191875174847029438694383835539435338180674428689641112026182522820912210110773171018328252685833994062927536714711158948460806484347216208735679123509130073553258155717156911272477655723443514091999497057289994791786510938175101239130761911200995958534988824069085202350864807717711411157592562606769692913611525013252032424082545775932519503176809127655938289645157216274710967823280993520172987652738359618497182867152771439586087921400996903380725741696507318175479085455629464952789141165122640271633318368091340948468604999024306855222029032094759290488530580179208453180069336303650757915260255998863273640319264210196601253746866163207206372362839424409461741643261051005391984770107556896482766455277104417901766538502540251495640161772896959326762001173220642124313122392392517872166837054157874441194309475760029621822023645370163549313745428689041325829655684943879570310676318064796340545336018512768646951347925306050784435865022913580859018528357247416566752816399782813666813505289888099438771837895297449148067958296125924385769915385564221141720965439024511005483808479572656480466630836873641144020304891178501754989311775145089006886641047394627444396877586407573101704482719158379383558979377141120312876564017723921622140558059761839473765746016231162974301366179557651755196063752079948249098520040449937828086230980342059112725093087647078344381469965505752999779381604958389521555318017264375056600624238698492199461086050665640826099458659036993357337102512717500904642864309974971438239892664972540067306770759980207455217395722118220679907928314557131983372950380013027940568633113913270954744203539391766830161989677376067066930506561691997280665871511499876216274048892308451361592219902863427657772264616321617203301945890816169399050947481256342566091722495120434258326541943055603312542591201434535158179939602408521847822074207659415131022209756776128361450247708735992522080067857827215075739559182196379752179855734578559517960807675144450310663114556810281438393150700401660665098346265081818411465272090584932443757729294957208694224182259593309377812543423783032751949254661140648546938254684708602117000789076321526357946336869453821023998649862104827862056246195493635392654683093279560619073154703295283048502021608194250219156209924997605387686168828988317284661233946987636524735876110463304969003813113119799702405269414301301142120434171983101369531439596821903759803783727422505629343467321559269062386532681643396907688701857556188516561865164176431344100541947889704904282239738352739732981122731994265273044021340936718595888579950795693678689440294230366994717879489508507926295757703268712720717158380657828061064227366007320633247781027374211719968545079646920864383639463077283421998166429718285054489774389583921520770033095380244600501739366731063386366056969185174957769072332781645571764930113231469559819088022271865367378647079440925399839370135650065803081820950143091982258372145247722861846886757660908864627235070563266884309747137234458910986770179819060938792025372384194751912497204928500863650132931845592003996350946824774665873651661275762144257024030262732397880293016074774627303940867160471270393378556334779018911474128410225975033961163681567097790324500902362042914404801485096385755670253442359131557515277895737356906564245290307805683501478110485459578668041177216485835284000759076845304553775923590006605663881818098158022869235561009584722650683450681292008092257393057390887981765451806120894141617548942092060588576158988381144116695006079854915128162432461763890554466279769000274070187792300349162424516993560576083681560486710457775309025850481224322494665935076040879880509307873942529301903292551184078733330972032078169084731467090072123386593240576066397874723798165094878667011475171617342884627188750859986996317916101849077095968091280572139620909443710940223843135776228427396661708896627130853262296090859576407051896902021948750712133760362926504609515267314204985596701586293682622753654772365890437719494763024160672471078370171517652353071579590009497955141310160928607802266925491072264532504529977299938812085590957913464083401430786626146450780166687928351355813884067846834871593662511881701062102058106520928496575707164333599386038499170186170975429939021106752685714609845152025311346229025146401984018881903452878891037421421047439872159088591106795029872472954636258033088876740784493181195066430849110514163701002124359025934587407319425561813029246341192886109414241010878284678925843638627539624503454635034604604868064915792556370982666551325593178401084228940840898143325408431226092592510424583476720452120544373096612259084521418944477430970115007184680824517130076184536124332884035113384937148074427076494407100976841613605945932273922697728989745909399662901381743803610530324106474895302901278813825808695969271075481634296720714822100295946525787523407495881237833658528293264439970458872394199598034579810832078351686600571314666662382253914108794808634322626066783557802108054315487877825838088272696729080878916834385100773143726877566122892510785773090157128955449614958906664400961131413669579272777708569314516750478588335532643226527597100149818685544775161060265396760727166406004062914946629457665068362546624405738532124238078562176739748416835027837407643145583923695900726405445912299030010633741442047476787457825618847485121505894902878590926555316060134433610904440174599872875581954420859667787778614516851045723089696897919518681922454483262145218246450388684333643759733015351200329180678113012385668305541772339935993456339014346458756009844154850765752901765760263784285571615182513548919129360019327902475397710834548399780313278547618112768491264728882087997025498069991923938550226533274524672584421403825358886596248301495191434696337358500636662361317482723276569215926280853052502156950089882172832722956686583859640314178013692375146590781028426296801868823055206170334351357876149939780243710559576417153709192805178722465597324871337124564599874777596462116016002286545950696762846381833421939297328665809138877708301137320672992138710612248558292929379723126254915794803300113613153732034570890988052107498843732446816496454523973080072622854074280170406633666949742306876792773871811852494165014718226133354925000169860773352734017247042723406256542697341981320987249821322271330147749435795961618287958412154581708962936845232496215840822515932051335637492653759436115189039183966610027945848315444575472807265640994424959764928943665164318137974675199450948685942002394632566881497363184639395664340131922946389163113538220779102148753376514398547868438278418386136265485195634614799926874418237384440314963702272234121738779435235552834018697337642092189001132389648116771588348636280998408041948214059684538550644373561036359315328298795645076992897074761028738628138683885844203123410282840425262938504039004707402216177586880829904108273670132744943250119616766133257344390350285095756044337947703375045176338852758888615852881556067737622497039526757736424126657268957689225001589398078076799367824918048238649512090835250513938856872995844528805923691650768743521612057378035494946910091261400363802600311331172786699186665165385609679620210526051874826797961874886462225728821875380548072356520869262295851549430569284929055593171771560514409483171351530560072593309210776204819948719580173594176995246694865655244133589567719456680951088854037986096793685082298145357241145677794140647962981432786506367393238710095261006935277438245368163451511599958725248215920000540735306371552075112708150493229055688462250025976643846299858539339735376878960308332572622763491098152175574638234369283456448983216771410464880518822362552234194601766748448423784463254872079790450115696412119346648605988058041946797449715185809156271900580880623780504407579659208253982529252530652470772413185119795612202218153703898231869691876431886739825729478425045226740704782317935511780121585777255978079366299682690280440559536881206628640673864119983981164718060083738217731396841044378546192961329427226668891456353054026139562878906693105897791453685372263265029399197582063328071272119642585880491737743193686053330765873433031843619041244862497199617277962805841708898032514517162130947696307717888281088724227671894616917552767603423838012710434556656674749324318042267253609492656120216264341043513745156347439118261532147150135081159633300218619981105169935867664502887335375185603638787181623474389057417155027561172603208804752634538081321617910546852147388550158465165335219796664316262034635654859635295873495814855733954445532316611947880635650366278057252978740925431709168442927630402934626496822526885197631106088219618871552737586685645595707614569584126171877478966459308967297107856272015453739932658042598660210168126732253034340354254000277184432190557953969881862666091579663102270547071700185716649802138191847684382578500031867341783255503356387318602312893206950063505679233835531827715643777770102059169612990054634127477733257546106476051868445685763317189757881441885203102435377651711249057007284858268093336967484425169378291490754641718908185466495213926377586837689021923858350677360822228070924475253639101485946813832853895571196009428700151896513172994916743428442373532226148337802687769922716448451458184279456029761583443683977637611949019619405735547070364141021295635869249423261935039294038881117213498276253467802502871922726414920467333536198484120715400973046013997272375194227182733187140953556789025369370040026668494700331129580174188191774097484336770357005479381335047662993019096353969571977674714198411355915794476111656407027934358858945064723445657827870436187851881695818741257297921992551762245855168441610832122415233492880298267054216220648098351561213253185303150807751925733446187912570624355264519742192772996499843765465048112576743956259899215107806807331678926937719205035364757802086476884804990450086824361911945666891226512001037044685689316358832585450664751069915752158252489546358208331616977843243268381728083519795716300037939815612626699273045023834279079801194355014561261286539683681070364722333865298309949344874876136235418474610156014579330181013180911024323434628748633541646841778676469123372397818625485791071992649304227943032891803240476486383631543716459718237033409801452055043791012756504562233504665105875140941410418452501998049310262056601810124183526439969792450212431035305548537204254065411502002059758747399448380069838012409801508806504803001831941222567847412850703953491481560200797769757451149392885830850087451119710482563488752069572457548769859464354203597686898841618574196153054803437396141028141919166588580157437550009584000333940373609181418822005658528974325867721932312910100376806286306278113064117021943743202214725008147059698163671014942479315875239971551832544784132961333264937154007947336456331030397586623697431869081138225463818733805944989385660818212215051261900646100202139873252618155863802225093697977201791097595489214887801679312955123335414232437636043700284906422290928013103604837183472862235485620001446611082418451527813576225695140624476423456202199557581695686753971187897699197620593770838566330224786368294084842159414569055748859959419973126062435002120159615548178230203470208383488256500143637897753806993698840200215276657616384981786644154570970097843420715992135511714100650898824934617326508210432066863078406946740149443840861443131168152147630861210896605019434701616411102641862441614389042986400539349650809881313043613996762754033051918511107087024687120751801168426880858425890934203265308964608621006180529414988277866835763157217737960045183070366461055451189007381697092039174629750876595512258886030485932843428864814039974348490910265858746354094525136310231355412812059106086991146950644105493327881560840454809454390969230201510654902058700102680860521437532961882899769989049151207774895369592053031112661963445421154502468117042529983493908618536661121852646429498166718294569275210296083448054352439948528573347231514227840994182386740191837920705123250263745615897370709232304013872504337415562953074042063389672069963361834089961978939239472903971722209369418392980679336860931864210512848377243190597680847556725339539355702271497530254585235950236481765320500756796001686714486472142229194384301282364824371424412851633393115798563058645031718349805983013896183048635459316554637893153344021150406162670420950882731791929020644551280982923219137080161859500147474728095621131423393051709127158938020100400704823037867156176481635948513462559503297958597090534130217983365042470033101118561169056889200817949993893335846964009725323748479398620873087197596110861064604486314753960811798437470473246922087418363141254415820423223921276504718794813733849006403347394393790575267193398230150876362277366560858168383771977125551126700714946080182828653709534284146024285010131586469617386949240785244056982849339891938297741547347303938723451917779651252818741953508071753191380324974024358452639492055056193926823374325477624641336190791971218447235651755759121611870194408604253722354376549330251969836875177843773327709615343751433529473089776534005434938062053900993560050204972107975974669909436711538208870482319040176601982281297360316406852687737638989918964189079702135341680431641895992737105389128325837925100472157554820507460379279059443345137027486802302889056583648835876370863277896630760926359648053618848732598245991400950585205975572576014886986621884926120554630259720451295544905833484806846914888821346936957499642504032029031817000841754005629435001445601320361506944784431240190294691742163266064071773777340137072362206336212326962920444115952126098869666067462082116448865925748485000856819432369686352404020558741016525137241993124636791703419672272212664760022448211275316386720256832882512460086461328241375992385644636028934445512176623705716810000686969037841042023587909867670631998360513108820165062624131344726872460745753649011121869809940624105549475470006969967197849712362436250297529727098012260138300590298069320747181011791535048583164326475068628439093076709399869769692566328396777658449856917470571019761377809948468677845571790905139593762098614619490113076426223813984856249405430407167039072048203146812372335753189984703146491661751457161540037534445640756882691458563446944248927045465637919207326773934188063624517607893665164725591380816480666399114738753535891441696586043596053458269388930288032246799290099363384585280783682190869003788449291206616998105475076420773312145042154502962818221721642047031116029109161562821138125529283280852713918467825040763022645560653921713932033980673655129581155569109626546092760917578715489616986225585755637625411969842012268176565091117747186080480568048127158876336019770470630450530976709984553612656170965797120509954806950048305219061955139346045405009605126694369714261625324628893027542783957434337872850742956629820322636254166278124742135110174484764323555706033810913712531976874349854464197737414895814827446980501394146896953116456003934092270483359539861974348806997123817060988696894045842644192596249195789114815166665197729370883620960364053781347451036119346759709556045161779221373027753468866781962666986967842377821160187536301317878446145430260359781652627484912845079991722860213938196061538475700939385513965536495688772653180699365863430881075280496805006260625560016897963102130799093457501502543943055948863740399764520380304702927070242198751531170320823101875514537209369708593900830766298718856170611561314013914075310468975223786106752484486031621029439649246534760817834878784511129282026223785227405501922150275291584419733538360008753602468519614268601839307525083181461016944355928747397370407290425392118456706279828317861654236077652170986097695248082836510024568354874660577690296897852976585866603013962078090340929504349568426797910032666945614817066722030492769383110305726732878379521157625607755448192429318077292503534766183150584879265344558541401396629346734640096880184597816415395801042485758929105900199803989896934755451248519984089924050814406774159485179500969763055529413527400647262380776485786662733125992828596107500580166031693586347140328723660264227612021152805837334433456582635968631519274173774755808061818075271215168994653752791780985376045692538933922951225571895507323392207919687506993613854468962956611879295546770709767863658141351641600814667136340261150736218408073378671843871542918089018649912676200852332254044415558413463461364377932715696730919489827831337337048167240531691180377231837719017718521992891218480644716507142830320530348498283158803838480524588446620632620824451926718804982743656031428672758914726980838839561439469014876603233300816654031985312984916551047258032723113756055900461510819727537259911586003996175896573780583471387458744795400199678992061304944742793997327918854329750958957991370290849485257643857950918726173427255456969903611615994713292586732991470918355947765052275855479523907023142196955376132162363651958996824138897053399583463680718243257457795289302698893741637580524410115269712223534595326753669986768295614111714218200199015324041331478961083412780189727451950653257661414438234140806089429797193163830188095060325118129416131983992670813021675090953142899317716848180198750867016484719625241409290809822973114932167352281220143934771408547846882188639266463965817258939953750254159030990556311054953204750969564716424036170996284040438685186564110915083466842999960951134193628628543711190366488570590519428473681222621400487385321381720275573580828052364417993613809741359389971962130158690851354670449237189802913833543781976807418069672209499651574405763437248839449007379199048382646613885714123128427708779285665829505619541516902115713775264349616051414833151804089248339843173790242675117602426701667467767560027963463535044891217911872044940787000888764808222453870538571793627999664178359589369627538136498551660456461147539764657784107754223584520900735762824657432057590767145544933353264723286090637831345499129713496577236146327514887581506438441982192285041698424896398124450381262846301203561542956451021824431715962765521291089354481999445710454687749456402811333647263638967201051223930763372456474223670341075842158236661562668765117489447055171313592797936963959144224952131523726850350693288597100528973786774794116114172140612536829486714673401821964200668392589244451850290197658530307172827957342120602139854213832204920333107502408768877310166784921152533678341281288625858995332843643780799592360977236048664895221083392779815932696556383053074156534342859965739952563979913764433709052966930526542900914164287064881769103663561538001692286389719855102003965667298154227426174518123110364142904152866904115912204340895028496866965128485610004450691369928623692707640939379694408777719465863505139586482466608938829428692986943186354936025624417153312940888329348579036808454106535572000235629657153340605658018993015162852131806753470071807567823950439937877475094045776655707777093846625937831339474845223521229465553678577292603537317169082711012014639151840947080075321393243291114092623373070237731627796528266379465652343863714350792431010953626800892298589726941073164613008597063119418238113945581467241709313439124028490058646881552602508412690516109851246893487573022284956315373029521441321811691849327208729532375469767054692697645096313047859994911194427336944536176052772433020494221143900654384188722294660942049814872948288039255557215186451795159814406707779376604542407989807493292676777216034108537624438284595938962280239643465488450550935948796484936700444318657474284564093243125333381003846764289579728067596719312654446676985490427612468922793585669904895630598799152209776619404508262629685887650695278867460808682014202471271798110196094906818572523898531325966824819909374535688310903222827503166189037310953610526777606115734105222632016651391885324409221498531475789750624925930186033958608727301651725507467428730748819123687282769850297070976658828875948139859226313550803624427124535520106906895736650858353125933276615018630309165287200000869240414145570820581862214720875147192645576250665813697687259918041284510921035515563876812639975999896381931613316887948181552725942537623088887922976115260185479050735418314159491620306384715910756605380366685695007076371059971637800539631518889459771042570664282730532034875411433166180453761188800773089377840512604335220443350878820383123954674129790784915365204084098717469228809077536096038564256610043775463887482458575828874776916251117267249563426548193049202113009599389830254370250525879490111702494671228510284564746563629838294369612177597029914228579801576861816851477002847755987301452247945970435219523406786701014923463328756075085662078870719469215265472949983475403332217226766415162600003065801801942869048316494178692517661045463780420052468677392931779208942892855232031809041590294131842966893609083221045910787392700238915812219180181169867337775097558724198189127778479619275631199099220814426052131617561532268553484714057463055054106762867595799055431043011653039611132739804912053826488558699869039497906491482267402350135438036325273882196258968213683099680361807505060748459623713978926283915076405268281066045429640413220416456748325790305890434244155266351462500454712863358467812244518757506444738462802307125674420059844878258111102052520583444496280929853175427569033185299779900490383935391606578265318085149626326265429468464382502994690957266092269809431621406340129734889676016344545873867915595216884575752663466162946579971761711804417685542078247667515777357021493317477775936141742961121278379916985102935712892534496417111506416847488946822706752290003796553627063239230271822926311847886956777788938739529806808939077492660640943917988274472526849936576789802575029767677482676713476666764790950983075602350968116563098727830327873225807291404547937335095624807249153933647018940110963586479266961905705038870278255603563449749306391235793359024252178596512873401461233388799994359742954901512119333928629129564398116401118631446977039439229095142956263683950078822444260230327672985476286458061080599019390449438526055781298452644912841507745325637117296903777095003596501835538234862227417332540241935362159875046312779595623963713769409876960311952829896466994612180572564799968583908208795314392298115607668337769590480635647734479133756857139112271782807351642362447834459357901086945897160130434983562039036158852314122497651469589268335669238630247558337186592689747635984932267237654923339756670636156247980295927447557986585340203771968595149905375373243519719268527321826746270814950995634362414966027725757227270339549073778690547604316166261504410777946551179235431365689225429902468034797053533994452018210987895486633786870747231180609717648117714290404566873899015470985515855270938624384276018892109270836809739427371688237619379813298811945290082240649855316383691719961036883902966124459312064774589244565245869928993813859702005415218757217706602422565301242551884127864627790064954303592079430436986169336456969076819314485806941914814943758359445647405168305060636281391206799046937380193958780770949973453443721250398381639917911718582788984353824439001244280614062463856766922622441774459309614295704263246596183309257840837294644753861152363072849894920393865756780141993514570447246151700778406451687147213452506379684968545050420480130343914126961851017639998229847097875958065621691482508816866696751786597222069363942294617196391639703366973989985460388684869922378926860071349602686100878308087727527962993361078037967488641085653902339748914807671764541164718936716470340613745550937510993399688881244431779704526020990586054840870524427379975538608261885153520079050862991180768218309070996985005463224175009361115013519582082716259079836109706462090700236011203016855406673169893992333696731732178902328479130210361117439825674573761634820326794116507218004073047960726461986498959094399918026793645335043726777808114688063675243247283175593739024143371517699072345143541220965568750489922502826965740038782703554890762523415927336675989722223591082285372975878360029462330741758751078983921249593400727218968413687684245915566154763567989869430728343578790183620249721041401549744841038772382238609626475101145175335241371591321972432592076268064962768207730396782154471505312120916459071214108061490221256493974485307637143777804778022457881690898958813898085948874224074051874266041097224250251928707668617992315934698568933383277242897252646719945643312997804386218640777366111221188877331847821410936512601303829499357325597189960797244068131593603707506973626034661887236647794558880871613768183304417210136071059066640551785753517757482661153668713890966725276600243804011010204533355148201989049024852397247918958050002871745112448777645468148636738448265722117844988239465193354996485511153389962533163710400958290027052304317087582116129817771920028603151617457811818863141554038375864313980255000184173427837169653068138667258440889767421385265273563719653553833839277271145450965918422173183018914364332259278539065796238517030735931615715762275513466282416725573046892011268379165907244293249085692319559330978257746226399365400325281244148231232685610810929352214389814971923634777934550251895212969532784287110396746816165710795450864416293676355733146285045075908065543562110856897397800981522668035975734458239106209589806366392231373667654949319977061479270628080747277502479447356005790131941488402929891112126951592967699843474081143573317550961498658208400060277201574019396935853780781755198617098230005674040417537814200666875460830458548991500941527908081720578323326539270284587606736048384146707215695312650442457064276865371075997497497665060438753491498721629491358792870302013927783648887723983530726072576874068069244776890034538773549571994799877665239678201032780409047438986245575023989487446386264159135695279672072559879168117341254196911593840000545603730509824880243466438399052993098743481661386086269272078695849945927208127270439133526825177070820564030714421246236408800814606049236137967821693151017013439056333778796218835127362463776751331207305053778229620901381852818526937809655700953627119136908482096137957254179395175504141101506756307634331572585838327340592876478560342978993477354569112940784725128636061724541264382828023331275716490031054828898105420042280298395503383501876648475478997762729212345340065073324126308462596716925532041208337509821245391411150137063046699266613284866358687778176134139871793883151292421186080214450355105054673260678366350825859917370980592946205139156683171545237069991012034936149726819722057770957449373687534974049791108318767782419970194631022631964957986198459208478221172321424661279776402327873873895555287667619453319720756006774047308934201274555125365484059792850203360635523399187145472123354381341765915663980747991713550733370619926274571410071237673487787385835208106314574045802071414189993696312200736878433836581621428250867327882739247519694468511367247008220091120883515270140999304983646911600240433891395185921354816855422203965676382249671537552240910425791020598627623473819874491486486896175053266210762571896919909952743578352085679360751126676298969159103676585525409041013694149475871358262834668666796167473433880994221088385070132683813481289404987607884723779465981334447015379815172817347972007623625447750685683673026254695638658733641880509118918395304388054766194794469234094149541969741288325516310787833163452343156286743604236602436540922245791704485320846608940285684308376338085371977633667179459206082435149822378346787292793778075083638441527923416485844064369086792568209578524320538450942849026718072955105623538462982203543054804912135793137143382048352175380422314206851836987329388605096232900824489915556470035863934394415611357730509135669004717362718616153060065680519133257994342403295669672266087119169793583084465923693769872768424704157262930108972663136750275319675632282118608783219181656380370000042122483499622457880065374985848244106410970654347662685254047507635845901390570661714025212531812717864508888238247697831386623130006516016465326691027526553314152039728017853437372963573987992983840063633027673745923198796766659150963766853968639169539662785865623497790364604386929934363660120933165874868856866236847841197412757679242307164739644975036422414217055586821645362323402780141273177534218482459773981224171759660698586943052763095662358407985034823508974458996818276625677702271233957886787372232175688819711319385668050602411483138631832788389562448043149345872354649623106552838936411058646927010446628019960276125007485147084135523084131307641971064549856417262566184920723738407976534860484065800516829261911814503095369176058486135424703891141373078148095682574181679418325636424077852177982230826910069331500315467723015401537071171220156693103653065690777790126624782491950919578951022980204530236657158140500831926665050414628360242468411291014145931366278804509958450080581679520745645804848706973936287838373516882760095574183766415167262951827243171003786704797685864768602122205731822327169565307743143908038055856817469924404442576612412400621203462599312856298797577900242379617988666070111843797583853818011128722996767473831819285716422523192876899288748758648098591087515609858969983988902727164734030509616545718410767031135665868767383076666718361421821889109475837983490782706223420392259721605645389518234364612276709940167829832515745463455232065133478318463740772644244497529080736573260375053231338733786704222593197683229200239062614197311020284455662852371707457812569295837434721219035011916158293081230877674976700510366224536286889339850151199706406084197416715623651848728617247474629765187955810744831176680380930915713755252366430796145674359910422504545814514254920164206787739308474070895252452959294274492749619809426796207846408494904668126808397186933045061549295683920895435736487378723278708719351201891074080718445666282724474983261251312741390592244761626265329291554154724917523886558221078883278680896818563669707012749651859783192387449262206651099534060947430369173460361511598609167388078645671747733846964607533008601494649732439535073919581228574611439906549944501441285912849639736431687692324192672611241086355206400144303483777409046325994729286760102458619310220616673610726119340333538572689102400658797104315454478797467451927702471524028635208150999758611088158247626712051425459563288808699587493195397336541001296427486850097638124390269394795987491590510165873207581030962885022940030643742251312487705631394099157829557228911763299976537685493478110670230634932602535004657006269378121857502107111344568278406836026098427238170071606943885341262513636799918610261604492352606410315912974795528405250195962492858363232995609657633783753343390803368510339269615592852685453403287721731616320084769176799631309956532595561459299832441924242795278364940278389626160774992205277552522518485833670539642892704496388104693980573165149672136749771282022907842425751888760278704179144883055843404268690869319220945457546522527809793873812528897236139304794621013980386631557902813148174103379909689759431571730450644997979995164723279335873689884182569337326915799448232463134673769349302357896044010166046736114049455210615379463669065121169799830846562323726313705610333198722255940361841529392582084362842087835741548989569478721500548437882271702515604073078914785145793599127623417226981981428426720321671523536188074580017591521403580724517530764462184937514729552289904185732201893268621934481457228654555574896199274300911816494328418746262193320952157301550577271833308494275295786727831496690711266497951351175729232832122031917580970641825029643760834430056896509631653360419800426362628019763437754886052567734791241274217893855398135576798959412552413825660551950763341087309475957889145895239602975840125430616190892011418596211390344196548403950098585006456025528601206023322747393933088969011446249462440217172152801492742982389429237438906755609090482883381172853305223934076684944696377196733686591247304828373630809555410897256246718168363181436538006487023199566845290756965183135311398303508058490137840688156025088128562986228161561580791408322915952363638068516378540763022384873005500594390171474041560145976339368176332733882692490771931783271828487398358967052785412473261010196563869253271727887275124661498666817556368882880970290420768210459485905398318367187542148849862391965626153303539941428992905245987357637927743335794296602669457193265891416746535450415111478980959562063654195720890318603627302043393471075140109704120890445622310028455010988163715049473277774657872208725682096285901055887331993415632836994434816301188151749116686643921641131584327800282102130235278736087975400546673860197415216635985742862003108457882942388238015792858366493763309844451483677654754071648313612765448683946472190364541396213827887468586566129834673697891514181296409248313457955244004764886186533543960663526283681998422588749832001495024916430783442302341810470125466378474865597917537529529625890417207425770530477914369998954447755520447281732502647123739044031266718783081732936274149502585604447252381274634889096590144133618304157607812322325360883333621342311686270997441300508677061773790583891885441812698606773695468744549019094963982628431816111845342503238697895841096589323808755605183740488871239163209305192855504183127596493383950796411858552951536736673963341785193234509553462480509726304715914591361264709956939482884343939421521700203791562799710590589522031884253173977625061390756258640005703720212524181618535286629385248736220204860955869850849042392045689623638777072792880872082247173803730141112230614209307026480855579728871072310318386767008863296847182004743914341653253375937418195095792090920661177300996164087465955092864701647214022540425361508052614801298763340074628965929945605043654048638353938903822940024060045171979226786011905476745548312182289457747081085540734130519512395323129298516278790418397295907131966181454976907528377064513902301175290358835108600386286115944701660538956696236218938530085777342690695760870928095314141784291580684741448840302256730924061165216457409085024651788887468321719115246298563901805173714047341322821663376952577709758608455485561684875082343902460843025706625784720452544429296931056390230786592261035214911054855721655311748601650669677619583709529536043347822522533184391939650889543268286044284753946969896975875991334874462921221665648130575276429698326149368761084731613684954027706375058244641751785977666132002937819044101611765582187557871867829211461734132565858940944449361863669245132795802891300373246159903603268922308892533949314602426458029155271656074448458963558813694928389026605345961614503571632460386377291978373032369459715818721848322849777444543611771659198043078642322766299293215024476721916122601659801951326361091055208637909057375135228746557961496596358507850057188531760140716130619698658309832215974398268383974552454631973690374345182201517110655272064560308040954422479405227570986893083973699908488284436707520722388268852575818267803973735874964609352315051091938856077111089300528247305085565684858540675365299640123680420087221346999772357524793525492902439062015018990611345345132175662009004322143713557121039747843957420443941063620842774012946048025870415623674119582702344703027276125113875005448859541169203647540698181407381002445605881018493093236234393929484183649706061651722662204117171410114068586767668422825522087929904183374473353330042084582623496854505634604473455242927810019076513034636639364046981447538080295703542854313303731603901783182458169041274849131925947394465460954104401313284795273101397213396828755009072863350888149774742851161646930931080974526287927057774863578234684823253725376687081851675007985278719225807321450306054072254235792743078544689418094964131415401846134866652271939948158713829723456032036971438283457860008193828708574041769179328180790324828859195985714526562655487795128598141230441474828478902829564972184833925854045734050001118027258296986994328907920386164549702018365451829468786301606834783527213266867789467343621993135150693029743849510553239865767444070602908232232764475107813734394955257736402487802198102209295917487911537467125918815335132214095899983571264775482152178925589562308646261893262577165834365191129209440491451121329381699926209171197337761761104970634642400631973406535061541924811723666092716387858686777464891630721129888264131617223936089494859212028126768564752943976024827380976992551495470572887273552898073051173237561437998194462382722348472418993177300402386357686661673461088899590944687523370159782988178652951897019710567379037198238624487183318245521188018749641914880409360220501746534439256776448784784953238652082600301885200340723921253007838798222665839612178849573132474484698107247590002133972766040540906149502139068334752624148377543030314640054781116581705770925695583444404942061170664925668238703239288207346105980837205910741804325205380237566587512574498718056966430901214215092488699258987367554243087139893733312434172027965110068719898387646323914320492446314857318014078691028981610896900612645106378081241585741466929219900945703667105319546191498738587454559213210807717944015421054003520496776956763533737820213739651039457806944794721890954049925325886462365024757329507520129616403366907675367626028927898039048163948257723548832163772533949552385626267176037264122946336947898981730146500336311023231684731409835750464267226763646438551564796621569422635446094966457693421701290067536555688596525898042450760427606396155427982357980661555696396897601614161368407170081165273971179479518324686172844847318290420642340040212724805543479083970416122870324946383651139817762495323759219916673270736593865585508273060031368395925679998383971011320324976719226890164738583526682270009564689138210037237270443710367704569610527832393221988414995642960599040907451600938393211355892853526291361835838640701541170125191025081303254555938659205773148242384083489629080532471193188915349926941575700739977856569895523839501527776971057627669000089108882838371617252234039099767345756757077289466945946362963793474766422234317439815545851667785049318334218228876104081656196007226449334117188564892469907950834939101956762708553061295454563552285420999327691207951664071017460485805933713079506583874015158810921710520859411975512104977497123651181175206682236501698612984095958601641688428558701166068063050629919744686748718627235835576929988332284538571064462257492027950358780574343403603087706845264233391866685099691189023370225769394381877330912936445909541111051195237200343833396313786399368829858506712562019584864207043576854660194911368047857206934183048643796255411850302447724599480649784816123950734489241323351582582975132361844370551501579027582621958009167535921046698329495820554109801082049240419433846549789505142267491904586786120450761447009516998125070659490255041188210859709740225434017867984837602022579238583517160799460159041406283606074704959045239688998634520171950379554905021657328762563769131703610122721523057036323780130699713718764574897762745800019955670493413952590573758763121305246651347839187486908008933888438831936001320042732649316796269716305508150972768354230411216253385672630648868034319126209585039397554608856729502463288733915553697073990755257055639681101022288091861565729167075924862075376289413329898216092987837652274769396103607636526319682310688229817082035330115141091751696858915523299127590318496179345983186672051966322459889495730664257389202645930052510551709414944629356616299442244525425805928065096597679073409079553406071284277651776167065790302193491423028870776386383861576913952918637186352645339687963941362488857577743586251077164787496321385327568315181199841777944441792567043489468938093698796112670199702103169284582604894364473838428310723958487488207516522500831792881497277543422184566517319965210145594821838830161878695155915319683633317904005634870264414816108231183607099380266993087434610210814247697219013298037668767836397092566288019884703849061027214045827574955307252772120841738467044739435178726133816826187817606522672544079738314319594572368761301740200557082491765562696208928690113995865268825637357381682759949451815058909745893869372044049645557545566383794222637729023515663066682301657712080015525637831632003444613866977426108395027988853779103849779609096993060137644894477150718532294309514511147440603423143616158091113057877854457752893168283288572547128129042815341516942220884837718802281385261823599527776640828305092865131837030345652559612428355657728428607993683853022199097284447976039833751892991304553863382581704188093899935454257684920645913446834280202047987930495689242073145318172113746542467794061946128058883756105863987999175469701617957713926285503316556309891248897460362364315833734216786811584342957714643950828649017621646233274923169669289585144207927981464980396566936664922716112220495753027515908674023809058009904511142549299732571080047311829169958760681671436249881318662384052799188712458734557905256269166861735065400940954984990005166199181199956839939765676739594156065067343196665965578514314093463328967604046966901241364484900302524877051515178190452145792488596018189938516335734459997385831410195898436055465600099651021785858443846527306868765922378484239992539262978528137290258351155374650734822123171115162125416379282031581645030703847922854451460394739265867481375005551403324010564180749250727156468972914416157066360697375725366827130520656954949507072348789455922966162366721010992067492283470046801386092436208150575383031579169904747050575164799053180664277792647200059101063861318241426414307697524481441734766592631279738979741547706022099712631374610927331537326905375908172664146797953898708832763700160683808192812013437703558263244585378685816543007733932609853645702660570997742856110562646472225423756588933736713685717417225103719990241652623602849330072175985723976490404254590584535076700035141628995878947270070713541831580477363791808892489885172728742532357412970454070242629871807970840482624750061443018879030211322591345292220274008264846083994631934128751927054135123770954951337145893652740823852056413906974030260497484512159405235010184492894959108203500945727723289393629382881171835878845149045987560473214102247581783926597177682391413047875106204937314177081170043984477514160428044996506346580037648461140453104904893247244205701885053744877294106498097121162209757096723105328038631698847115074155194119473340794409234418618350755759772360417336621625254694434255751793136349775792294697701646195846251865827777657746733857014401807772458516345338626899441769630575302403090082440953424675229149406225468081348787935584887267094655260296041687917762763473992590142720004341018533995561686036903900109691405761032417286335054813969655748582197474038239867792512145221519296545624319510448687893320907923882206402250077389477610061337604205339043465137886867072262528778262709045851870414523651288392977942632152058999892458592544761095140266434579225703140445824274788564851764091385197182402467389122564128172902641638197704877259966011781186648941635379663426761432848331475350703235282752434599043866791531427665074632513010866549484334037927092890487972574024623540716725922915932027489624873726082919667588218900406915250192471428245476188662471540042157452569918484542854674190994945609045219323317404615176208782492052296765145235768611695792781555178698961071106286807822649251922812545164687092007401912433020501663992185263286493282363567334447320098604149235627805896411840869159225922233597592088541784286417263833727059311670114186092877132647038040622672431615775534474916843856213638656312800334425290499732510868601726488162391555333056841413742950706857218530668074239491509869674799375346493092848588224447545526918665718458818688785708744662345410159355629435726119568281233731612166198444910624328492434663595374152986897181611230434229541166907854151411051798102172364455089155203791480527920768688934687558588187344560370636872449200782149732219882665061651430190681537257962959722726549337543882419893369459973583947307921538231763359023966174869684500442948016409076596332051370823655986645286382113713743758106219119471567147559674022383768261174263495593998801521577519861249616600995248239707114851014395317335276672396861915763134856703169624543433625048852526254084101782227821139754111576162455173745558994624762791598802120494000139449050090211294212122716849472628353148553409877059308931976834814512748437277444623210887569718628350868586407476540563134062647670731856971570353406087274440366264066987955276676273435957226836766703060793796522190360566929959994988353786778987020032730864905050738584831298689486834174185401281898114146413782203002641805496531194361991248090375312839326646170100358618441430316730915168626360554006875294852856264714851741706010793737720123523895180265756198522301740353255117243445610906789199908697158085102156703920019141374133508480299702248497401689390220651070680947117411063885650637841079710686707343543619384554332223953697702633625935504402610106732117717074336837775238530821640568579645194850587589502127273282140510405739548581092050355559020666520288013576054216895082769992139886367870690420480819479308155292277789014244140285293466170499710041582892397963971261500874993972630688250809901968820008794867253134385223585339958236950439036647215115033599636989264487203744486449840508121611917819901161162703751918953969961251632511492680850928596402807070196559518905206192633715092221025619561573782220269841107935002668213303997507765291831595854445046828547916585101032158624601942110512349290113785840614046957559756642632578144552464852337740463340294374077494227122133249931561531425164593397800646153462846915000300428399086336797393692506396480893233480993691086233994389453576004943260676073759812124242910713431331386448986971611753377882650154414054656016771994651587429661480039013065087976837634428100960546859544914369231221897771796071995956764061241466929909340157112928340453304157261573547689646387009012951731221417708089814884140274125391758287591401310211736185302286063073777399329144087704840094416079009869910471869229659173118764968935131319669948755526298169097808841339257550166886003910254195022261114427954281626417233302030111786903591435155790942860477142893210258201075244701148327190237054863148809403996001698281366452556395063835659907723707637593633026136501171812764079385830439786806047109486131583885318913625236944366739152051261076365776992059096390987538615227546806060794582746814641512304726726647599138523471510720658363414938480020977116039945678871262916712373395347610085117932941693639017763751519374656275237265328253183914716118742402407887968555776335417233144505805089902438741912090530670172726945120593687897597637516671790089546841044694254875567942595273736642414508814441460159999785715720878386838696579515722570712347591470111896222084978649140607259800213268529333655765505638238691618716094973845331595575122745832191816290300142924264486860282002752340544609939465019075994578488950771527059132187813406086529439609223733464331878066182592999734912564053698024840597721805583616714063554214005164882128604086761831084789779564682314985291115942944556105085953451349165492137061641127826002593549659068322749280804627442635933654596832696782750169369196732702076939689726962897628195924411249413225797406047691916366522270588705418114659470953708075961525325464291718190122871054377736753722827111992323883069522458806713428605317296781205679249746807339944349336809061111927617001387407181108483453538245952132403342645864955142531124409353958186494914135718625699593628698718020671672045477994145389985085521002327176543879854446774376666253250972180570891066559330739078070228991315496289996294061618051095369252537828789131478720207885484360083975116743399850684062698464731077064553775980459190808665611095816973466848381974606241287430190264417026242730362774324210951529285862721051244726827788507069288225237130076239252214294146568910898137959571297938100518968333327459978373949926558009396135305303618501700584588317543154554262867179577165291973559823792266678714093015264089873101860582255654835616417897104113485832747498757299941380667113177661041685403227268980668326287265064488350566531511763315790778181642680988178493025792178575279898030264604431877872395882828104483763227076498004257426369411336677314060148834216704296433128603977937066569165156399845319760265842320573596211815140124610780019005630489377665662057237385557266641346559406531339183044639155705062099124015877837047696083906846709809599990072328080302402204217522665885166136050087443421202055954651566039313921158826310988555752523338320409430783156755589374570988195665244330850402472289063842333030289381695974395145850122129834364817440705542506175690695419472601821300392488257550909102577058493347500852700427457522551717934147050643509206755429000387264369437128387748283258967138705058094170838949999859199701523390208952395050203388955830150202401673557868130947851359470567903527228728236236567339291232403623212795533968251123032900644161850235754838528311523567921606637800774377073360821197514996097807702391155515023615755143879888826291626688848017027072699166957338901229795681033463288405815481466142250536589414110813119699025571163303646856434376238465089948126755546511146142275960646378361647689640416854142331642278609565331990773054753800434412918013578571147390084892346463654482323605770390662630648145500728885275623583121329314037555349786364608836733440611310646441809728365946618767014554131135579652321886316861859021551940857391593090562966575421180137034667746242255531000999287557618624154830701087175478992702144410835798583799480080531972099111854098647172263018225997181927707368002897677850426384681117890308236266891072449553266016114977509021702618839371817498109792282284964974164160827988336170919768892558385379908346795161058970406297428654947099146110452576037203929659928546922069736972966114754715796787921490018395304713662445365188739983745441644355977262061660473675195950419983033153332652521579007790569630347697717519503339649140267059479752032519244245715595108729126866886433952044043195758342797446690893892238751173002565722148894035789190991676412402804728730000312817484931254359670515116379140822254464760199908801995589556656566455442206475775640847280009289632493460050378282610419917948056639367091732131768711929805477893190971303989545345004934010855854181439700972717661072115707355085655251781827459159834853474971428351789543568845697785574966516576749328403476635339990719951128641525781526545667522932815579998327627259368692319178311994668058603654332175995779683484074512987826876843602710740121477929687675939507541534033852175171767772612048488224894119810753890873992374861750723122579095749125423077300640449536762642848294397660301543974598157643026636633819166988703996070593017741596402210280207981847827054879787660929050711011336823564664624230026810903156863354604064034147872590663333569446393747869282465870848544580196005816707838397378896849766553526197765549534861485163230347823903415464169858346434559318924848918178778723879221686150283477225032761570285333504319619984805756001150421921784764214104357378120245757005561218508802980998624529714107784989649785112764659601450960194450504459379150628746016214819257576477721369609630757238881304825879282310498178105339143262919607256223730256109530476321012218848473037947378914919724767140683169291993587028033291442030445089288249656359183834311499018949408278817872056272127725863350541090956947502900416711720078758827715635831992465721367160582740498054517100345637003695355109092264105573910095515988130965956543550650728642892761624340549336690965262207075223887095551343284433744951571009594888770328998767934683130528593542734609029480553588821425624115608813571970465328238530608397384596030937513925462110384989891465451430016798213761359963473870416440935919511812466543777429191534711194122163519386878699109748401531337446332631548955555061341841791111711695327407596769736683905772987723893013114216878115142199833962874491627331775834700360328922353365010358128877410310686416638004777068816631193027654682272731229248777938665525197812246992437990593400801101038621915755518687818298909991244696516115400124242122403369960719190238732341552258944760701126056116717772032161170088239921229076889271176102516105558692330274895211669749926520762549613814090891387180994637574009233909179579488621982690310427904775914039153421359533259002203402460082762407976794752797993308128702782638071863895598676256420730951997210753703541783624243889875460228191206065581527518916347245614837274999854612908180998483837232371988265399638425371997475464292653563705437071632976146521028565621620676996759676684730085801795692230838355052895862454938120196583732344997578493949500018866518182423459876214551933556048214622683395747905682076325114303263808305446391673505204986654738774959638678269492767129018364754991058335493686321344314913929869273491705467614548904108209207974738950654486660667846707825988732790426582600035528098829233893145702370906851461348431350040733126836338230436490034361107095571005478119542603399669553475025006472258240222804384139335022012682919479466491494074634175406437529886276008940422699272917125339380671058828164964450303835144393641111000263806887686807104604153678125006559913155751142883076390667879647510138613771865281001059969351143420816797719508826170221973880408615030687791268910070561015535171551968938888008587852193574773678909154925484138041969592888021242382698057561191807276285637498808900720170687220044997649691646949151564499253014208475489996327085174840946443976073035641241901167159345949983802108495059306664295874875104384475951602230841923369835823881048761791103968139424500445166686801697790013787616804437351703134375486184756946370772651136852865058236530560330963585385311145293524354238172236335148782793262288690715811173384684754592246219237859678461196227311661117757477327445720013738392821400924050739871638158773347508994293264711958742028041759184144906858482811791960222372235706456206361312362310407613544487036763927179612928444796991167118673703564640862675432097508967381096983207236973303955036622896365066758424153184719047685850011044048385898171012904009674798889881098468382095048192974682501793673361456980345239082287549241228985605351506518560320748715080914569718046376931403963406622410402667024758923346637836517222600131067491730869441670622174113577833587197601031388843575287169129228303504917011999783308301267754179098471103153925593572200407970974556680603817528445114164487757645197440255705165445940949411828525557442387464204577981983818382332602383844996214554140195329766487535299874988480913538463427557671946800807132885013624630747557635536034570276097382870806221534600649794661421146258982299316299230678127336790247018264576449492445424742744697926284991710596061167587611861117175696973452937583776699526868586928859021382529614774450188662960374003514716512344240113548720074805553486074687332618307346942878903054071196441020546238156764315183444065148437951418184357661876060902092773397787654259896717895119935149764546193479581969414761191659754742445565310809465019425660964834502519335523197983524073239838369343208893195124524346623643414787096915459087955160241701261117255056606149776151926068952791020243499063503638994268962801326074083929152615535916940878166196948360496262250230604972072753797400008563301722269754333133067870154888544530840461048021471337128552521672830605612544345635861152601574582214449114568155694437546838172560936021016782090547108471889028315684931093104074000748746525827129459069612927767471765708522465407671554695333562312372318945655512083852366516319864461659380409094324674688922172718352016977707323010810330050725442213961263841691337377273957786665908625853900572637882911237166336779774804296908948542981820568013561556780795625912310190790761754391209463903956003229208186590576829375356124508055976145029435426415017816239154211847195244141755872457574505472807683039107532381386932654096763878440053099052558925970610752898328447011339652198825197828859780497877037112566123388026363259556586801402683883545893381909671569992318692039461267523325562304946827289592832046053445303236339743272903839099467220839671186562859448591186080709895488867300865669087829214011629969164613937495917434514967287604240623920806704084320380799742365476471657441982732770945889329455821939607285110373069454494089926379715501508219090046709235844583480838468763804836619411469345922167090488146857670421791485942013558452866055179679758444125161384437204981374799696217834580807166143655495060091425846736141282300110173195904103386268863218053941556237057532965024517666026891482162162006543804825911838618936279113694811882005040121434873819818247177234439838490344091555666694067306818656212707247782865171254865160475351517592830624864389255131651931627282080384252040849150559158518225373368040558607351956787620839324102075820032227103921994939937088566607132497177433738795788713852397833590333721796334083257721172477650281071140217487146107041787483863801771752480346740462737499546277559894402385064685015468085665257872828405321435569624213256621600631143351100278803727980648372606624418706319111091043686886007566357350638418500142601615783144734297076518326631390806492259852407184891838936039430680290667155239686160127357083696943007712366538011733454854772428771484467690648286449093772733170880169995386163084363319187710229778061629903145554240150274303424632876855543266875733125656708349388428033188540787277303496155635681500761570704234214358827525647537830360752510032140359660213781703476669782597564284396240615233276922763779193796250084037682050107759317722256960718725658982234762761880517220951745476973870902555266626333802642580472771970668720265450637042282414022513978527475838727512498238702846792921787498530446411192482449003294780494066689888643501869595471920682205472339414398063857953315003918479419542725960454237680132965273254714369386104944562949001866310656143197068378090871318398753202055202888377647096692883863770081841275591022478842879926425394770007834630758977404511956424647655186149469227112980453869039706164670344898321163599945953952979684897921328765308745150805693181753219747622883588742256605423512432496282571563445564700356680506450071661741758744546945761550980884810131883387911019578534322309072569637885667107107776903622329215119450226564544921256564613104043311811389710797959132929214619135009216311856468914262307013711114098116025044247674392790971883098081335939246521468586447633258109655024128524993488704903470183222505457513718503102373342550124086355987795518260794582727477106348742363236952372088821783063559225084010960153442248797763866061498689283976853811328407952304086469594853300043046919839029180590164979059768267955875364058665279370722944818014293416531874861680537899460352833628460348026806611281878704234282322828445443441075766522662302227742426907685039789677827756171394608630906467168167780571309004427205395817050146765551361282085344387616713832598560889017379261469717796664472801098335135952196201070195561187654271281413570459848382053401405572154946378707927553848254947199102879773289508546392184838241588703426768668998266995086752529836150285295519530306537623215484299887067988559605378582246469200265781960913082873421922759431426687504716665713621859434967073903995261949214982377038370541509940006710701364217394810502361828629750934601449990367410430720134137067709005915026698378031585810091268874173639506344453769045363182210618066300224399117536961047865074731386740092022513040857715077959086138331332208915448204940852626559152188487815399676799373913936464176241052399095878789978651202821883175085513016799557885444685929779783496279023670942672520763635389320849709526205859870006456728215562218260168511480048247783823064055790586548317051317367482410003850502110654640913401243652084373193633957923925264656660946642905506229217580090651463700227622241999574280914271736388738860612907491495083170521824217029326971037346136501630948220985013608104120852079594803506498782083926176345426212670223367195769206977165979673717194850345129016864523276749200261076193041271101133366210247437920150448604882510860767267656182767699766820180929838524071116035297982238161994645527568709929970392064833418255585205064613076876754613136740284835904546504673171011105034786913364968399123054995887503321398959689469209328754426096692135679747074539624139581716882620836050010611060137062745902388606519401937190143929087297606000835799403294558514633833560860024133404711862168121737793884110916188146867016121597844816010535298330936399736957258072045263684584842029389141226432667177926632885829706089046358095573482231348124820434602421236700953813206297425268463143520488800191064335502694294629365258451978336353715900136709435331029489781703734961740235194307372245814654279540445231557181344705411909590656875685790886713835093151551612721068994664227484851615656696889497005807619506111873271945605298100947780003485720563390799771672944762380991736394089275623058821700286534312628290487482405057045881327261714093237307621492357856491757342919268877711105094827923424732715381656585444198587559041762958443501393662045289795595349208079701749671751762666999868361997769000978774112099305188588456322762940425578935822755750176594297611189798650732705498302141058702844864492233150380985777310011498762827986454208982119917728132354338219694355095534992664229578556983991793310987236218073525943817691968707997694091332341792631126853212482745987750668160722708415003269604646546179033790265672843855633568841499497432407672902916618131705394925635341870365039089261517507165086631221234375417827664379436586107624919728235304179262165206384471938559568378547327866035443068777719160314077857327176382112451063782938608227503437518109781462570518762997115035185716468898032396331883542745951527912293075802052108885534559738234513745629623881918779961226168385877012069514600872913621251507196103524215208058997117556720491866149396884237766205743501860973843694979760163700271858966705092687568699243465079744725713975858737774336422977053296106999701900955881588929743324458669950247809333267385651634352865298315744038996015811654909810466202953483524688777042871787690157126136930782739535245952404472735798483474816207038830028217716636652984264634544575287144556429965165294815718825348607288725317001177145478956910473582448584561772551494525416996702324838916112039514979104746523373586596268346231528696492724561365075480738340642986463925085320075896411293232714696037153823532298468345115458594534131772608952973460059635947534001702763814714056046006434686420419964188793407401952346277896217355972048957223273924334006737444649507546621653056084778496704924812217825934146015100153898050653835336326508368151146180905424651665997471204536222386499211121457693710303397866471198300934176879247589712819032621964561144203569483414255648522927752323854405173773951339160097671415047168188260431982848131474791036062328915365099121354871981087566424576067844427972170266274312618033527156399509446221326672170684552016141720837555059817610336460352257141935555317261506758486678604820831405339525613988387170078257925831973786825532456174563541760712341742560732575120495141415461495873716659024496521775502072337015204924622435019809894378413608938129980634946952238046817546628967236048377629959983798612812548999554188304785573964711352423985131209974329117788815396655822489931797371722683490504468957913106239190848492667404750027983349824550727895830521758353160527621876520872558838601224913505510794847069325225787773950714060937466183854676673569506926241432503965658291159233680638337063438128896094361329224847588064375521045462677022405067992807073955996494336437075116236377788025267455813929868122599176658328383203700724209756827345158022174633319243748734288809426911973964460880659281059059318604946788601274196514811325054786631647010229285066038632429482155273205885788877102908601095179729665403317786917217522463124399135020005488211012226078278682365466907165041189372671034328031874866967960120622183270397381798187629155134424772979311407402932655653011371255763859157348427386296128259565225022350623782002004648442207662203853825766952648595531248868580393034850268207598666632283071563683875151561394855691917563496066824147029773376978597601608623877491729381075537746995605449382342751781406479381843726930093110601124305609739646506062745772260487349790603133116942818618616855393838869976410108725931324715679616801278042529429548786876032469502628553785325799172237746996592013940794706165295366412738745449659870969367472785871820382265316622471307640415700973769859975484835329009766186242094299302170912413030620192561316053031820354659113330521379178088719024220428670693353190939192128409653321922543784125647064794252473141141852261230607635199201281897621805825249267427455508857272925306905064647829476884215344575135490278215111810428785066774599443968863191952063374623234684650326752238722709122599878118737538728008023062179525438045944667710751292278507343317663505798178738405997813456492967087765870324271631308597257801181240912234385644152672299966077865097656963287336559402642503394232962016707768350689930437164145952659075641017893553118289320566804092458163738106432864843023192833147312059722377606173518308313260627832507341276460258238889173571025248739215718806759250286233862346450994547565618644564179063311801352126773750991060824965817751791984567744028464599657212080631394388761667767577516334646135786766368159654016317688515143071145690910245181793044421197151940458120538389211425476604220099821030386580788780312503758905114222954554593134760464202842964376339679501230661889410533553929996357587829051300667667762142238876333215676736816829119108841090229803214221045613046213755755784130721579266932769681033122290693706378638953226321748471658293784435212483255881206820292067987218399988837320354273060036499978483656803550868280742598915059115397375879922177495667935978987902317100724054704099123503876921879960538041093475548332137530834906414973183444948303219101704879610036785930487703774257472077872397790133972098737847907264011475182407136872110721095372069096351054778610663376629025777964858845465303301969072124288140455008736836501266947579701080570860847970938128310186061297261519939488912605791616426911565386435639544272499169305451365811767472705384279337204170683572951676264707801645895568702872817302618376648029697327238407861132385438476376524541427595853014372356207041163569200112472693699167170402932060534119809793494499615107244208631135356874385882885225502866828949633024229326866953628874476323899408201092942994879632065322386938649189040245129399359865539362759857396052593891755188495522137481865926976194687655219519078967575648739767687343811573839834301294261490301163045694550439930461067760892957587219201771990553812687300026909180759774943546883968298299982698073146948915773473433370233516938758619459246205418315218719594460529933793378823016458242663418961007050593540805209754775216893845898118378436093734951660500223826703593782304848870954159131461642738857605468039592696611246240970964571137689735960546473655924636840678680161971472487430515796421071431697087090479141913231542655901033112155271858240111205836132629192787816089199934445214461744489153055839580926157191697784684426705202741992115573554767881761384257070754208780734561224782470409762529636546225529842093441874176646117633205790083960640763716710965589810750316751945912157131089082580733518926606404813566478401555138693051452173953866704140221994188914789962527720099233670964319345898782131525589570467468713230488139554182358296794706178513107900592307947634593043853181689287019471472394534590899222352089373712439692551279960915391676910606278401454115515961217866055214428193107273556265292860328361114261304974002352217898260374688979373455214189061891783367527229160297074079439408270337052531185504903191404000580414458969721263853463470340552183687233582665839891920886278447844488857067013469680003964606229002852160051338516817857998413944807049065079443188070451717765694362357223983709930472385249487174040830999712418047661948729612377734509732171398712241416349704069169517486998669188291866625527195484119817506562482221233883611131814884479047055211992699594632431517407109694879790150749010079098271020248639601806227218477041630024865675147331790162181554149464346465910053770205875953912913993279441935916962261150250321417728588704406288501297495810462957590661979929342597765798480134897207695630324544225471828395507086576366413802533627029850280944242266284259614009448732629220269988945789543924622113474353650907367482383844082916641125778793484108671908066233498572153879582423147538147368277940095148184365759055205914872431589126383288237380166834453168608965057003142342627613959467802807798250064742042285876257748182283430879653463540152586740787858767745595856415916230037135581003806802166073110278643528544761394773928887303855232224306675678333604971807070341849341758006495682386694487234062952495999742091756494501655872456968733995914234323369149532137571937192371880256010755174006538995492292461698401078526380601855346667780694689802289970337800995598318195841688156485069857319542788195011297929580580972667768902951002581078486239281043601121200066624204478062842415662499574246790694021284600491364526269861985235343935689950891878648581134335074106949004847209866339832414358660111202901258483299547212877552467719588302506705895561940599941793567190319599165893680306519778095751345004594014736884979301620860972864125675814331001112578151736452543607365855285518043648662489516813944449718185569951533877088897089376977976254039333599594979955356620483702675424991742486342358787852499528301131242849081754939945957328226683945395949265502691341873276005936806310211772692777905400622709002628235173435443503595446078663098284336206447137636280575505676373569700063379993715632629471161211487279671238631735074702959694538674149173201630670426239257262434702500361394005594419789926828623893609346452522624750773663806607710178316830303852259905015623908295683088678483050407213740660345989216583576771299972057544796246689126434353980906165008712750393547916905136805559553308312255560775008492625113575787377341476296389453890061150828802014651395678264401297521760770227203975376580636307318724022790217960360041367835798026651812821625220510360612326575701645533497644357866860948266343582966416971551870504488782320739556088455300035985671967154414207280888711988094894846466710697562947124969210212014251862049443644494281983139948292987329487361825285304430193979554847227391503957752147952554384447645929876940399605645978505883511074720472641706499892299695753059862315387353527287611272874440830429108908592333851019912007137490485993196559334960663440105046577537416874777608500437623989474402400426875273940738588960540047531273114903645680076333081095027356379458815601215682494112543462356963621466329990495320656354947200187793274223146777949941900051808246454681218170798931857866521080944740582842574688211657111857351343518111008042413754562635098751344512649888803435126430385900296053687426371821613640434627901838515725966431849998726859214076156846247772745442085076611986974969782114919370967463749008050103002984062389222640255791420476849484571863400659329956086063896780956475383785562295469704103014309536908351876667056584135830962207480624831873824549028486430673632656082453713690572631635125377740629256143257677578030787860878439313955798497539748505020415891862266078394089572546606593295694084574174758560858486114263699521911257355941042775210531038729174093329286534477548867975365607904037103958730388941181458145102557963754048434109348480313285006166752138512152960466180423179793364422066930615049806063012415650889893997147645547975255776572685208818360710486191955832984145251500886132341958288807043002485357086216270840443952132064411832339153830603956613654880452451027304622938531840949349878410359032548088116496962762450783845367732441048775488755643517411503660556247615953335308056183470698611321160244968033907875501142387407918062252955818511971667111107950983467364814594862078620536421558971036590565678896076552347344426736884740660439561586620528293799880665973741834139598151777758256128773255653341181146199368088939163883010295397313511885071993103504716686195786562182504534689367158158612017955256884532224116431895061096291709557833150476947238344617265861839768057857814346802578047375413349236358052769445352022071801142374893639487596901116377935038384350446107707653630035048399787733507733970630019306092941642075352062307520158110116778937660632717245637636833559629309101590340596557785381509121076289713367352147357722171827297338486625160701348864943896090330843187874200255899054262251270983816411514733675463362323276097664049638542317395210108348194918633083745533429391937050494611110866727742658783686427337498735329496299390260507152767120532846362278696482060257327635820507552345991743989957864390135797560746994915006675959134139829160625094148325725543013673807415243563555996544726452227201414793743649070392675826421501827895497466133578120221163301984037740410585019378652596219573556632424438410528429716826567324032491417306042411052876955539585941613063949213204155418647115912779753824026295196759476289856167551918639658546027842665922768828836410720610244811001964070933121411136483109657156936997609825766679700579154539813619701549136857577493427807681420456831709896530775229702412029706299930850229189440345628437248345431127022123686111761917761020068480393479896277032008470714458953748758534130638988137904311553354206537161842744189434905165638523728416647014842089842667899194756636012605353531050434251680008350623198456730207960677298425563053843841443551628281543500580912743579477553559245376215661187376272871364168827717969851626446032692035651852137073410937971178647635280824326562308869564634176233946247798296624428131750741159876126134506217658229269273120449449548310468237078337640331990688746834454464588751780591324524708281928525561733078436077500010665629072489638024683628854139719612819294095285694990628703183188683036007785550487603088835590354046123695783868220551816392174465017823778655693843430723132919883795363610788013174218187755594926473951021490973857361449321179377058947261789141448184997798061916756465711059285116227547656641407753244298028315716989101690124922632252206846078326742024259741869135350251238795612855891360874763638062544315775230786095037354912822131110108581788401889772363663663036299790160896230800336161270182787238821758994133985207103007291843797133815329207948418697216644823834766057668521297658640072041139436424986098138074576425988667473031831649446582880263841079682765484018019128146557382354706567296057061903870718470552411659184289555564742460040545898940811620806628602441670554212634314750477978318590424160777510433678693830961175829592092873533990472105572891812700341130034055555873243447515631416281315784662005887021252862146068038576374619030897011732240916853547415090381747807488068087304872679821640531200705965213895854650436414130032873734679103098701304457437366252203529068907689831860444443552579241924134584155150217509230985319929728137622535008844295079587750357264076274589353912771769131834453483902765014361416525658855576294090523621584821344793102153579291016526146755494712096093764395363569233755540483497602216733981367167145972803165306497261926231433112737048960948095546007509503657175703168309243755922683488031986289437958651308086653886697896105703849160230831539667986722579534952022479281550175591447165601448116490689388570800523159021473324188641068381620583878041927332177066904022548183366501923679348667162521671553218461866759403873538679412338622633278642222838117918051384144933623405690510518683564417430223395364989918506645591410192897143533792689814976948827080767696296214349687059496449917120099213873889440099579796417549345793064166913359530739171201359167718952894040618560428665862128207496460134790013948385954858317534967564372230432492196126223863108232645050772807177632601950721054276500992333442008616773802788042608905514153625234342349942467510543490234003880230670707841704419053460735516087254097233908893058627284508589027014116579756566674962609873322875714014498607245755011590093097427669693805061098979834327152489184743817042647992367841768129920575401374297699073311675499503909276950272666778530037845346374487792264084227158646047242456132901173524265540332121125659736661138693143571253515804865199924196550598241479088755464274141448571038847571022052039214159659314448024275665510916685965237627489364737025810247572598136539037379447634376879279657602480632187697855083420157261875810137307104901282578027686390665268515454908091963809409304488014233282710421735464666266962596070210108084535981718977078040585348466981629036305694815046787416695536062920064858405185037026620688633254689396394455667335900379684707740616932442753459236766496431486996190006429816414681549308370176608309917784728533579446319880019004752312877029147652110357012800970061525283743482608157027243744950513192740938702053964303791534235884033865826495646817423228706979103872755046213698562926708317260736290570870799335301386226108737577744389447287915406949389926252984026401968722139880121837298589840277376882304953708886894328368756637078937517092262677093515464952615224446182524169741649882787545047781353238259732640287503074084291155300441388245331958736989910326476720522726616149392095119051455115757435423477622175306618145397059996832407382294043616508881465778874704825488615646616799814371223812432046233295781528552254374704236511086034908972113720440677108577260392816490932218914410858731309531243386140600275664610199821293420527595891405013344137297259840858353083369034789492507468794779458001031589707246413804687409072956692251654835320553619136682106555964848115972928978662581925877881954203619238448519738112676256425578281632209060077298984226024825102638146869741112389592736525750001220378151223084737287951573913728739398077409278591570595716343016960456422391007035420790720399767138151214195866318864435111117382903594424851021618900502745553519027790087039536165868992146093586396115733977213194514168980275894447672214028185913407932705495159337928856678821834375406886667319429758566357713999371764612804006969697419359972714993454253386872468844354957514451501577110593841979061071055671766832046624501918815466434432300025880602501488440531804073977022514523715490935146686055261738675780847737218326612137208736752911596431081952252225155447888248514651240949251144215829981099856840985748827587416789932949316762024899103572971906273599390981905338670286985907330707681615053650386285627816880296854626405601488225866858806653859999119572076127638083040154725148355069890838040720222194118506587025089820825674742218987061357161268684985165535103435745804494318917319264019149594110573502388534869654659472738873837319495746952209912419572038357285959461218278742846598190248260611678657237546901868165829304163827521934874559039257394563761144242520056046348256092596658900360686740604533460150923672703505952913104603238829947712618673628605705390568367191369473823863841526154916798032655377589000059518669908432338151193305145905921544640334761620760452009895793075918803196341953470961271636058554478678037556816909201738308849358706274490071065197605070540718149864923870080821290326760247929573983653456604984990096817906450254711064473364271772179991495521292098868724593490351958754929735930601441022922180320199862612694998265333047053179285246316417460066135816985817984870602361277955485833864633841499043399356816297834532303642512167277766613109246977021002667544354121557524294196528458921832712153890275687961721841282328968688791052529559841222762843069118260314926642123850616756367135591356422318345354185095676340573632535896784223996862445985200623252896106811468573464901466361576145308698785479884763675760437133503703228907768947124984886148510949173394889883090351318486378221520878764206841917610615251905543145957366162619954629473523754312088075794936097816693704240661563026066478285177862113298959059480542415962628016873596812815824393944545249864860573956606041028963581431387786745040056114088377055608313847420826010006575580651664108646603273225427122518220937539574705881429485892669225210803611239695053116126797021592952919829032317909493146407467413776236864412155365310031350441542379662905356326896038257836679217334700615889052572926917842269571460248009559078936972603119317864445778999395564484235505068313976631362430525730098179015582729762804744669137652486746223129854642303559850694542702457079316627930921115254442367637846683060768998517657360224473671710236295542796381461872840063660409342326635995735185602406579961855027619064935468579642638902508637852360775539969986641760554486513686004317359136565598344099855053152831501004481779047116659612161630440370004600076476078690183175881123693063875348857566173161095685187633256838057730687350414444921064200759347923965910643579585183119934280185021310710929530340597685418553753611278852918311850216482814629599778234803200023105104408562113483199920306777876157115907717209097828214137541510623569854936982585939398840941602159484333419733392795579369703111588709048730033918194921879506748367276914818670102860283797622239889161640561955613904272938844583980278405620285508573377884574856734887214662248232025556701814885776397837509212887889574795148086944020727088817823322666104150332660562850809816257790744973184897032645541680148753222711051154152563411709897442964488790966782969515481221686291258875892474512536160990425275329363563067921751485981675926714582858138143715669540128267592507524590295217531145408402251010866315454097915322061547521139068636315121796620316700919060347631950266701846969946143164020121116326952076738745768334154522921945596289934317359396898549420568430952551026090108084041210811749457166658095423256046623655284832636565039022185437951706687271933711016072887913442681003558236882364766696358694563746374889756745521020442625274792168248293804907591018021785441106466099784092762351478220997168534672144366655408211968648904661009727773841038414839497532154226217747923957766167373496374033529059766132380149539651968820844518482270664082696435537840614259930980231402383989324432399815326915390594877248213746823905336436923597038147465672784250796795520468357586335201762871825545866457751158194183603984706675088422812513816972898557812187808027629620675640682468859070975648167862742822969352687252940493810668428409164162778837115122506357846202365187211006529605083922745667510957108849641894814035225485115523702797444926160486444210075257968246012500958227592325170207314757730776401355286687326427514604923771949467126931389826237717867669107025643687370294125678873758745525241543453747850528584595397159850853218696801572065918446301239813480917798689754419975024766573894012473659257609854079972018468707794242703150213032330422126547818935603104895043442819755601016751393500227547587569663212435045105783683419944331595452695429812896713194856477079695805712030407947511809305200754720170006896550849104350321005910491068304810256164665148789630930784670919358660811077460792569374289012551509482413926696555357567626758363743897905017013332303118786042399476826079231773310594728479844914944828774123219940690822897579583356772692562874767349463858948056334337460512075909862837875483243653249600678664308999716170052533592620249809584152510316060135288680097955243596084210603163137890103199222711129856498281175786562033956563915407585370048004568273893443798162365008239231838743192986010421881317034271208748619199765744201927431893971438612915213196139784065156057517656686001901622395454061452756539969088416080628947763250185242654429403514880615527462066004636249262274033780605686547961889396333374369105769678057516947443650774520345654100452079033313594859679417729852030831989120066305697830660882407231081057004513942336312886197716163217084320190672618143215807974831030782757824664466576387900593613921074739562246086152489475383837914858745217710288661934797758613501770249711153804257160277236497545787382295449973738661496264864957227984909693620515194744206602568688917855243858633463374751482356667710314136003592022276316681404721911274181151304494830549772731331056484998263157880868167147705546670614357836806500306069786661790996693811763708660625335996695452562117405021095501110766274218992501804473367039076027754083337071302897325027161786859394269236740299340273288804510929196219846010483895575833183403415709371282706845722524518013477686436332621012299190666539677321802709191530848110147818130655786721352461016985793631834795362201777713664370676015877236267824300107112087735789521387318621270483664947520697094506590413519576426046528545855921859676676934980055947362775877338560208867949462454942201387815138074539642521026871541084533842793322507453277983016865115608671080724650450606053926694723836137771476423676441144090049025506463518300868277569489797944773260648195855827295670562401111163153526025410509928224198575203145953166262482509332448127898968117218365079045817399007215711686260223343498411179383882851400362781221336661097602675080316739819741415148526848245774539225883704338393279834285434705723523952380109880877198447289378942824497807013177942524471408855962492608701332239067583466580892159140685505955412077231776349001972868517483203444397418599292969246290037436452098120017783572047092216863794985489687480843800452310192953796941819444508313733658562836153761207528940437268690789917109848361512652948330612522983637360816075500293561557843412244171693500094187322225272777942420663016991581026942426425184668752557031009790562168533481108642864440711195146770799537881641091346985365753282305029188619534917125070828772308659876518739688132868195995821411466282813422817392446852145520827883598746456395535186027678436786922347795656647050443720791416363741297552259223233403932938434184268854369922931370483432135400571447576112789625583516063885730481757874377343479801672740484793639680823882539029956907608214949608717720115758453194836590263908540794851037352082888605196085033828240762819383728733727873350107602711231042423834771756390429702990104000734159991822043288432481927184341362736728256570199024894368065853672834749561515284083298340875762255819564721863731343013511432407805989894673976061347621038836979943297729176820948414107091153230722504558268735298291864266865763469843664787910394460653964477994860445005682245347177377770789074845576595892198669444757093211719657962806619901951823458961525711991281588573361470618772506205183066826062520615315062453556228203073720481503700021316607654460843772873586041278783687634150285951434660400953700452759058346931078326736189593610390865121574268359627129704504895971111575321539153638980624324238312962735710464573461413896498461814539570403320647176693503853875427680622319986070861005959591417820170384068816428130025021703398161602695997475769433891138574585518051498435360617384564639264688969618714862613056254014306388633368455461881947701141189372981011145883906970602459139715858264801219891987544245590110726526009501539792586171844421789289288115295574366774683658009390220486597095763118352184579566056579153495882561385522704523224323313570553882253581379066422714387890406117111520450752132280891125989104498672478825318216729644453624878867518025173328278158792923407342789824407668400502231214862605666585193344048849035565676750746144531112974563176927052777299417487394165329335324106138274091511833945509953192624062925946757441926321888986112145306272951761288335968245706615599812360638459557942973654976023728276340473255529145762386339069742190580664770007627984139966888256529450244379705114260986726176715232012094230695529060758073434371662905706039303913559526217481485709263461692904592857408210158441812832110842020829955422594863806175092848924986958559166950338071025150968026597320810483061922093772566137496456016886137373995554833570322681434243517626923304301779672462627721073026763937739375542710748706654961680604388568294780583275047554483772835972598994747942425025972013197881800697946229048008830071928881912221436745130973002851596359924461101277091190436453637752547487175622111533970059373705329316548080130566662169764061046784897038082843452782946055013072934466082742374028382754925117072532263698783162668068967844105411878174111608670036200902044598612766438425164245337280677650348814669867427403750623734397445848189374376976627565084641503316927546914499945531302002146562598157944980670427546171485238792769726952475362779308949226583258438255250196450554842600367482230089808551210622396627580404515713879616359210042489271981981383053300037186252650735258646016019491817571384290030360656135681647754991125959675089247341100621117442730578002628765437354033286527916579478971163585347829071693018490489395905343754021075211136958496978205747535775564759967829859598837113864126002240277512147097719433560445545855018449625025312731767506643154711881809525576330211746207539109715137353308798376261631753904234939793665318874453205505634261171182317319455009739723775252628439336518098116710367334660977473924035836490912800783732871320458998764845251475154407014091281227552612360765270202544611196106538653026811845479951752651294817731585314538991952738890399849571916536661063104828915004821587892488695310718999386008823688638359213456528937860977270734130451787669276757339725241427128027623949102465495444490502298291320266894293626334308390286396472732028339623145400776906041258787295366935026844450090148976781976537028899219804722689405061422293317998259880312644858668144115752795131880613623101561085501434001740974212827519448882211102115633105599406414932883704161415700595338284703547371903650317411660483374651750981427850229068366554905146893667644487854426705593314036786180534038395078335680573244577369298376285286031800031540525589468848735725759198879692367391691072650258990063733623003031458629422984330486055049117930366163147284370837383801549481508700579547645899939716042458394814763584718488349833599798357676709296183562174779251554418484003496955374984324177575383631254694805966809518823488715717206886875327896195281200199964045345634274629143124735059338974635104292065506084281715039911129669779067537306838512891853854783662438936343695340323575816909411786556641806355192195193757595094010473164755226419079284602406060512995566959060307201387645318643320455353258308861023740008273524674639342677970592682082103698553190760049857615852720931817435748102011436718241883769280457732150338795713260912569900866116780177360816839255212665108132877303285373848633952127808465325248051950039496898092252025364292942345520970284506857219282394088816190122704780306929852783654541561046618255873671278986788074820849588127102240885182970293662889635588994284043376085673447764154822511001529547131163569190791828331937552729868623002117980008035469197533894480971230831589650315163669825450394523876513574541827550343361269104074520949772148035001027869296375167917300508871460660975276548721275226855666261228594536173657236542563497994267858685763190248958877504182230500813936662963102598227558264283602635376933907335386618174007202429774455398038334244307395194695797832225172996329568798830603149455675611235239061366281294232433003001956894864649434449058449051235231714800231478650814860245068809686190778831769878250702984118336348383619999913100121021888211297943467543072885606740183848819260838773017128742145691399114601754474980823928354253286605051973180573114109543687626012844193312745891616710494916642094552939306285072963373240004859896433265877827208062353768496957877635299431977563614040555694622097675229524813784882738977646927882585837625421496242770201110258034706483984058551305084897137949241402413932120391945534289990747126939457418814188923351504844799491931049774032397674058166330309325618246808899152521732250442164902203426984149612016876660874010311768634245957773730464310829509497515338333574264580930132937191209863306298834295437539300174102332072600283415598161445924224182899670779839601215283655348227531870336716878318726005949252280038532877934668167614452342959553736792723857320058872417425261076819525890987552522328985201684494210417716036101698524892022311956660640267483914188728551295621614147587532001290358443291477070719177733354052580144541048034526952560024431460539585663187929372577898712925155797316798760362284097704776021180942472730265293534936616117317690354896662349193833414857239096130955494888674341844794103479099494456348908094509682017593897760348383682788891345692808962580241463027117966249578258104659992449204930509957984602979312138206094008321750712674606975241434189656667777295163712947054554549949771625325335774050529347361571702173878425079600143213853451207400638487214404158737827432197378963791388089449002636850068246222688212298215636784745173512516040550075707726036751342296617512963733033303094956773528300831584034869419697743284338938659533842792987365158716949413149699382692495086930505349207778954395097914972166289979694879817304928617125466987279405367436615265029182344600581959930696854404699720688861747879964954966046279640478357673716383927588778757286655652604940801723836620604621025264626202828716992912285024863123138882268478376425674674667922677805055204028060514259276072080114193046870032905134104376435151408229202016175725002448372576297927508188705857008735504112351201286837181786350472301982046382604203757744027645815089233296274152368818007517888944045154994038762686265701489469585097100415281508857385840109311636780748777754276805780558840221496636439627857408094099407906252116193651691296626132901217864289529862353647211409400861562347357469354424018824455738763331093444872713705319904858132805002105078098202923067619926214233322034450402507623502870293866952999993834137080543980549383454875417000129083976381847884922254366179851701533728698066710490911848855855860986367643111737929501916787750256930389889613848508209185772949812184466601217580045491769998568016353311256224691539465217965556449322982918521075820774859852411164445367197546700036873789338891889615843473623819711409588304773743303575352157748164514361215907700861052744343522536180028202413161006512400164196006942355807345919344861981825949554103038479500187981633764972991606850274852239051035681544050865016815543796211761977963996340999714820394446239975138984163934071376066447212471378222779793070030495091583217325071335043765947238555133697432918161312728672165823258851762475244974307001359910113406189914244191406603826694555512785223021277147242365616359335491597296692075469088415027312695003843709965258881022732980251820086035216890764414343649188227532878402162546430630981374431788851281313120654032299102056683912434809331883699799658007607548373379899933899196583476085785247274402998489037090424698222052422558588081681103442279470716098181062643708293321652325064034343157246683736828680231550460484679458142266743374792103898774003675425879438304332351127781489666063792827868847363550635924939986377876743196984051694614102093868572887314141263148098510495566220145379682505914054271982820515701375849512737859112178838232492745342504136317048926669726163214560140199534552679729474178121464251606655270329408848313514748590443788838532759225204298142131791151624984055775772489005384679685062535296675634094213884053447113572613694229800605192662552935774537941988003499624425282871314886734356713914571732122097012767295711176606129798703350226343186987184894379702884434570175659730456250060818336451672005089024018609197313854721635592931951368121941864736293155295958818627234340182578950177714793093935249295184528779430556567039663908938766142084445279690235049685790270043734604391189017762011350616387895051002174617582804505295987169070863439985117245505523097109511407596630900149895843433696339952828361494300876180871591437443008460045964203106072199025138756668963447480287054755324733299083915212294139789448252530988221405708835978099631854711929001467548666351395643783351749794556698854296234974452679942950940952620736003571555283164099294879201817801532413097871143613936251303496064498845726018589726367025877218147949502930120254501024669437264347810145091523180183282974937840519069608071838310561234098567198670155465421793228312346015472142232843461724180651240904737212845558389041565980504051063286494356244627259537094668725445954587725188728566828394551377818358410687845363413957756348140367380678058521300117385123024998484862927467991925130230088671286551764426627785273008721131979584219470617620680108715340033178764676859605407357998055457077338837415971096153286926596003169621595462360702616453104976020259611881783555131998839481833976533542705583998908213597772541600354478593379168585303976277346721973184631802969113061058388323128836074474210725200638541888236925817528567431863923166433765724177265451922135904737436734221953137932614732664873604854224263936994615636756337502050973981573886363951733751144233627553728557214342333553930152166358396606627547146342278255545554118986886729504318177266959774109173086176056357404540481180042302222439509674985547721452649120003044842239503395630249670392370527442300529543227447442884239258704360728084632813876418202367708037335358745235831509704299138317255670238003712029656660884468569685550007601157605603975271038146806522492711268298178051509630076245287796490445722581564922544103714019007563768118693788561191793893812149701404615936390917883420750260838727663538649070691003986963283908734162189815887964343281901158867943053884845630374258750678999066343231466185234466438912032262715136481289817191966122980527115394141948860048658594538344472769035626164432259350510097700246376068238559174707911100188958858218692465780920328072803102545056934247440801388835119633373047938068095533794666145961081608115011689541545538517301163502728533638075101602390597271758371776041653412461669337639220725998858813001992553520230470542712781051268187178318090325756283171142025740653569947038877849007711332699100310634814887969114281547963498606554628577160559473651278972731794086193654482753763352665189532495424423647203967334208796736109412510728517585881746281314281084638333794181799566505189870055991379215875254308543670872745552764208240089404280859966816187177033004652863594922623755177490163405586533520812862444038825399591103431677231459768027299875342082880088133299898565117782314036392667743994748208470379063387644035151310816815615762227448634127774392145693918535471188615806608840011264189524829820909352452567711228403677777247530535025195563359427737995114484285737437324095670696270930429078592566346986313440297759797182430359458572220941103516507123357043675645976956003365428037266142557216147374522119754768906159000357177682042407996907401305379449965552587837308122661242775712272854968589963708461271877995547920906470306027564326428542806580610220558674532491230210706154086121775398918534154376395730565701269707748712554391125450504942637901908604868547666759775441399652099532425301433674409171215420309505517050755748051883641237631201133520432947989944554859772920559807071804905463595295332204231004663041370109596609955434568561162347177883966709433974710452205485780363315638085849086335885108362602454803273025027644581390401072854443349540281681894359145224981571843034841185286385594818473705151618905589091710746684619571484914014437371413712080414686652344884091197806989542819318896123260735153189193335047330876248380756361556573951615601964038802756460943158460687749492200617296836321096109662716959316391299443472052199012853662134042673476278032236592169438345912780045535782575017302029481618755176877097602308851879926612992267953920254442616468729298090815808495658954927234842516705861204384171258177847894548675457508465748316080349880476638512577590683896969106687335965957773621694524138597384689620979063643541319112658498014037333008716301291300065451724760289472392545975587790781388705141548834731346361369089205836108204776273260664959309480769471537861969085843092164699754813495782354933964495851495978756878557992434848487789006534986309502704985831959040169006530053871582397261192030669507936900687962807630821023466044630569008644249866926843364672458124458673341957645740332884279402987919018535936686056223706791933265832280400205069468732880713107362579596353546567776007927524606121298867319753361459438945424025439439221524546356371085908316801728092246936975137085563372405470844423838350487258889331258106934573041783069145876911445726197948392199699994918247947057191418709372928791942108362326800668366811106199367884257872685508064884401687759762649518075892170060365863526005300321756470592999611800563045626042315260793312620219802302669808437629848294838562208838032911032636033871584546397237369767467201560471473894639448212856099513671502575039341956075707641842542742371617939889030874234161827717928872128815225277551305173983920673572196509054194607209769173490516869082227395223103675666689709571829839563030780688233064608881582431465096214152285860990116043742798540093425523926120952446794537567690584886185248941579539000284489583868398619915665221161448049224374610359367474387394804499592882491892484067403786967968160985155739172458616490241775971408502017652205495286467722211147635807074101868275637078589052727564949906597124741395175825655269289896654294333869941309644594284300636082650059463990700450813903779858869851474021190673933940387415350814026278124675026174109104116483205615943802114122929355046558003407409445536330948132689549904951676138966345158937798216355337491297631209798865863194807669164434003326111295863669709447083852712030429835009028969269703953807721238249089569038495927227451210434506806698057241017714801382705942156056791364271874901755073333581354090783719224865178140381996688807813740562818143067910598820210276721795983415655886144234808449944251330243762016927466224590004396527901480956764815083641457839326572979803209634577988290172862844695249414908442294660968713336839182227736712097514565148144198232765948011304258642590554563241081870088984772762179906089533077008439374956520696044822766700997312129298121669195191379884714262924763945913169136979678019705524516683982777423869898231735686269113362024149722296960682457971824389253439283670425400020901721875167195033283252502811930318074710214913734979498912622464031809509129608727768129312040650963434929493468406924966417040672929460643024694311008068080924780677802135974108879378632704703806255410847485750983751514159885389762854004865897085568820829375028373506867762115204911576505953088203944086145101673440883576455779621725121601525003313281001173611184501134333363074590664994028156223131545287324272509884987970878241668299885392655828268506085487635416862572322375284184542524867330872537135759951587126780528855945147493496851058205003936314244263698055839485721426520933966545019302469030916903822617957616257421587394855294771438348946670699464486151336989054993744267642345573019833792065236865796590317623596646253068314895215488740024759186195217151076806313105627890325907761418301410957310335596320629436335781272823630874019803659604501664603062034362334170395564312548061713147686187109179825706081774087366988551281517377352688190576426746303160515315231161728737252584726919744014328285460431937908192963182658570959709707941804485321122753713087462236132926859258393738644153560229429177006043383671708924785066106998669358216679712432542061492080786695602104777112569000948150099982301399358499809739766103946367723299875623686305083115495449265783054232822319441402832927827399047149288288379382498656539856776247249083248492675347769268213145090040722991336190663580141549847295331525691248846311591629938022956828656522922922964602063384336928636077942787416062501034715749802075058182816940940460455776634922017344600759672375164382168316773708629098007794997093755126700316015157289117252620017156889307369411366196690492804460855316403639156966545070514864507232951148556116294015871464494924751470285491586171491602691294947374469678039557818438932873749234099411353377118058461690565378963637084271935768373316395534315250360286147897174444248120716697459903424150124015534557913043133479767713167551202383421128922499191599629960017260960001381468816327201030354953018666073520003637593798521937860082058541801934219979788888651661030096499352959309423100143167036788230753617728038053913996979737055963098277297568013812176137091545231529895232954993714492368222441027455724860197607035768738081671050898447917587158687706124042737333205535927131180943830145496756678957127238475342278160289444384667547456648388939938308196356572606499777026736536792021607470046037320406066279980071992777908386770204998444271668806737800786364456751226241303802293310479490860209773323720243550614149832835195758101116499635544560549383545593233322786948361180621214760809230234690294141782652581593083837261775749736169800919313441549460128915361385418261019756789585433714143638932574923028481987905168223336327918229527762736808743080359269313196118415248508901811406637811349843592472158403437251307773237070760777400422206500466516673425018081202956646411675190713277569114449288349183749739955446025862314463956813154637597229542406131512972959075547342280015351352763196492572753299807313663931090944502785444260726145964773230610155224100426284902912492529027581822382867993429257679029515914388741428937918664509791491848279730111136872876457187186436051402728927536801265302847113772829369203712656726963758513251863911921692545699863879533018413134263674633755611195821653658021679648636460512935405911560527185203393210966963617295604824213760910973167113028797210812710440106775898631820288533904226698049504517246449342441788444738372713070873271690492274532970807249222804937666299359684321347024863376346051751636061979763791293492784379988674989449160233586220801688445766423646194126374156231652232684635444008666591286849298868496521689028834449509336825560758644148277398281843728026010163928952607887509531855312654842705371840116011222040614870326678543356007519141601483551418075856135783899799403101071377427554612372253918151329849631954959888723189733936440502342340265010125299713681901211393655016397774095387632574126629480222610394833474735892342606497638752368028979963012753995114174804099116790401930898648449806330764208078229217927312015272429482683794607882717440123096931895919033402779530822418406772499709315878158764883203513625822683604910814488685021543097016591344388777110695602797834404819648042318709115048007445274773180643341639601444688272452902029229318138976188537266796338007752139942221892599081420307185755090667927754125190164190774255797102579354256288707483710508814664382324526686054438947068428377704775417638320200639284132582462652007898749645854555213808460074763178522759981076677432854858894754685519379016714208611252944488587664577821136508106509471477664050871896774126953475231387526455483244058257899364293847956114812620597457152918887725134716724554505392690119254153358626482024964750905328618738979885791764526680816841405861140234475892458653422718446503195528214862064693296133819012913630109706841597664245707281654702817560885078153529308876401487666014107055900238081249039735023520465092398912100473171862264511018299797574775772475259550323312256991420130731787131387924326233535149264387417907373904588663251392862463439244693929703323190219208500804311094711555614031883083872424990994240589997404004450914567261215970572565003796341198582724721659263615759931928299118175640052947909484768928523122862221682964584285887583549199979228610244162187631037059844596082391960920420470145966936733373670844455674077762141672434083179936643641762789647685481433297597501307099965707590381543729591064951287917571883269970415375864020428015517138244574205980358244991756429134452887955483192139629698264616556822004936765337019519179334454040644659769145738429267222843654764216308357189974428669032316933020947935817245477494642670690596952527476799482710581330071516958017654533718552008174062474751057309833131197611341966084428592622643371135136321767360665832798504534619489195607330510687474612434260855572367454747511396406549214575996882236471628105765760396966996437227511403671995661562729783344743813773955868576924282844633415030357387835925436184311909009562361400113405988167546110502893033090396435191283936412382496870021828556462949208353829689293732207780733112643512334473349852030934506179857824830784511407917392770457397701896959586867406038069373430218590735264529671529421605835713449802723614930095217937814272457276871178046798922122181169797468175969970702376888411180925529961570931498480198346361435664048421551788890070299740272397147376163301287661854064095775757249173609453574478488727418932684949123949919286639813345843305313737901146277068368990155785900246746108143829668060005925978238280577356829528683718829685137677810615909606706662508290641200304301232269858074952988222842680214046711439878872727993022635396551549833910958359599609851395184982397311349452265302558868291226798114583276994613033736280825823902928661812415782735141825491654334323031794215390886488407577990229383608507735828511322164200412558838260706785179364374201404583288100306191036162851989910581860775764486435087200125589600444418251526607411375964770348948615532223567491992814843784230350590786278159290773756700070201012428913425195217438639980355180857546028010210796990603256618752333402644815523002244483151249750506969585838453893632407035739047113271582839659362796506454503706741453662700478826225213084121459759032436667104256813139430142914824642826221453161355813757785894223621578362942690960077196604645774121175469178446837983093290064536393718863315985438837969572522052278567804103021579519076926762656029015232486492496525122909334079420789594410387834293659817212894145164773283264305063798886731907910147410519332867294000293939621723151408358479819987854321981300206561750934397417410967861065105359220778797102785189095062955674728238467253417432037958613808818700005822053537809470354700850813224531669204584288060211426375286569240560457803091214593059537618600979216781984155327926702126752397307469151354690516311496541335824530535706705280931830757779062373461264073344836477191766105939416715339664175698135835433660865873385354002992413997762983293897383445126504043582829546518894943451041747104308743767700431288804987749333857314882269934984832394379220177450820647719468678380951365423629519635106777151312676947258606001059865822203410910264525336031493764197952020218725157772269404878736198941408960662948030032042092146718385184669351631468845012907111309234320162715250724818723883917727867578399586195195891175399303930679312071687296448586105996310427955394955966712317697606475867783295471233166906598415050826868849629826899178484799641669284303032590366306069754702095446142030581899652527345951347805740838019203178530473078207092242463421678932156678267890135760186985790404264940836289652952834394768463762645762274076770482589456020621421273702062038266506207898070357408429396408781723490154899189193405499333285846820265046170741309109870196192049548696085156738486018880252908158679327032629345215127210552219960116386496508379275660707746470199244783051177603882900870391783586344861900311032875913569454177294133551706881687958402730960447710521505204476710685841756327063024833074165478503363929420685106996767785882000654248232114918683448221787398958842493501665819461586509456723228254374249521298734769934653473247856324189611899353724410500202084740583716111814032125683629127312925339666096289053239010551283126407919056225941101009160476980067874529783229096902120770105906300703650075618085630563316854044890062022397256830465291174910092659906382451256747966063751524007882710388547601506362712593604457656199994035886430906754432651870804930746130112716243788229808663060597841614787821908658968322165180501773956776043052044899785127397538148835696062253430941935668355102768398595366713042193793748546424058868462431803610717378108169895220599883427302529146045258811425591617118060003783906871831859810393423916926086873781656062983219801216580258534620753926521478720055134062102672204842993837567270457132996915754809152162015225483049976263886823672062068136405306619947085139778747140355954696583327957788508405036478196251677945426953728140963298061923336199597756659657816830107944872713167348696260411856770675542421835304081152551559777339788915314558647396533764247828881034961541257632357511841960127221600480179579403789851069413344988462334398918886747319576486462030280842238330518312700648885721126923119130470215736830781722498217096279998705924481790932137901161386333924758179693590252181901263678639571604948445172154728156414975297624813917755617668545614949795863545077910224075025114431482269435463865937873445036936723018756539479597617409644440246497022854943279271409867280726818012533750549756328410056668709241767584998588096133439104854596504339786622246518909231472560701919614901858243810822444443451969235862661821400247344184325295441806504858973566507008779499285231239575822737750057203101295134911762272062142644801473211522311251325540500491901032722097407652871956300870016714014902838596167586122372192446344311303372588517065738470081861260287143252015727955730698061592427801282001237201702712901458205926965457667639563351303858153191003468507842908218837634536671372519042830324778484894250459719297297043204011762322369249620982375968356259427452722554971077559791961473133520804795329009215626273909858660713565659003134118960785310544139254405817477987930412579981206797083919777036986254230071005692280737005501339618102817719606894229895405992455725141303263712288629075087793407033800357290515103048214098464966233523706320818760386946302551713846621215496744392617928545720390300984297754545824882446575359783289190926318991106937268715448561132008421968920920490153537026782199719977901459405232309658808979667653285710277976191063829645318884619504582466820407448254128948079023238280858063624187871606625089743184764910917862568270245198505629230262650302919529656530716807016225395348176774274795215892923800149247771531890461703205892021241718966070738269479358303813838314586826722562955007522160900228694967777200981986987466721629500312561076925869664329770187877750021580697698668731337009330164715840735906068808381250457665358403174807740849543972340533640681626229603048660526784089994400602967263404410448484521061539655080390493663977046785327967383793091418223128597361896660115416146155041168595204491304869275993388301712988113518646434154172649860853206362604104809127897812885034347101340562858029962775785089069410964282689758026400333985255740713241608867063684108077046636806464372559534689644905331889269813038189128933121442106105407321724680412353132050812226033958068412095583821783247047822024764660610100009658987882883216511205208161635610843012538531661219697278630276523686669196125215683044195764120572349648818026653214419987948457327418746966305672917598104117715577242140586952113585705096906442244591887831334004812122192719729664494696836067318911596110003270673067590927551576839322799067488754197433868556789041605651285351816281329543506549675584970359455537904296261996816742882058805440939539711053626457316475568984687508808714699759954100258963637595721888256417840455801612960510060973547278633865194590628752798142217899302398447416678065164787512272963710064050398366810982545363066633679672293290461089336211896015450880028823110270442062042427087755841816297092692775572327306020542410552063724954419314809529913296984716324363919479721322007354013019427004290988409482497329965244922228230081040791159145375335487269479460628148170749973754459504688450936336241455535802802716336436610359300659468828178704112172482783190535319177286828553424030231508655547801962842634627919056805776717777672383343382566354997886516711239851122760324679123309748740180629401075385412032087820837958864043383940468280099657535181266950551551265922367030908407111345029729245826427775759674996197221354116405968193952183057566157693815724672687322358231303825545493903870727788379141117648938240017953684100205625579590923566026335448816805396993436663761521131476482028347920331063239675270515868378154022417874145313295955081349579415027640054564983809250615234000136111500164488641490667861691301439659039202917446935607870093701708293965863917216107313955177501320436393125202003654869607922873914487742554707460139239941715381598343690271372455539675427291152977890895064340772012625623403833604002985746388387705256775164067556558510500692871248452226563701250895681035606780797743369849491102902693810651312929353897344312413496117951725745980051915145670264308817373706723634841752785785852327777677528604918661797724425656367534625176226836386290860470343083459364419712201251730996546722856511276123274872391882568261900614748815031057686456693262713456113853209532141293591442381402638937755649383096532341827491589542295934873307841046062769475427087629413875211175614038098223947476344861050906348814157090727686923224473986155276572568615864912263452455785941116487698196270111080267193792227513115298651554665549450297229436049776851286933630012242995685922281412313796581346485756414829181468099112150215263355371523880017067704984908199472925206330098046542513970608528339874627500993430683149747437233983186037714772450022420826736135023238502641885198473678026300466993837724542922504923685430245719078051270958463372323582640404860667262422601992662917083257802588249588637193506594345742336193425898811946678046138705137412999630062697634914223918647553620340844665597797349564866712457848981626784001476471085047019395751805834334608046229048408917235943558476907326940291117339365530109760196995352245409827081451602838223455307894992609353594494690252445123243268883298202702234474576050195111023868015262508769810863918854765292502643390853046590493435128793672727748736051647334536545913655006133379727682524586422191209423200826017538936605673390223241042850680535501145557961151260718564251958009612267812521648120126359008819156336843490646345516971391928339050252064215059475523718910925867063523218328476700923710067818626789819374303034996901417406238817096654168941981246887741724330979921027580486525162508382363126957539982929606307140451097738235402431162054247838599688159196786614575241646527673414556094944393118126366514857328013052108201769947205614424311385831639113447757207696498987551058493110292896376153159508982081667438574173981596951459862653814991318408481268998444401116611720791038995313093115634403782220965122808086423721745960847378731096945565463842990248002404633326611278781157682587075566421724916530551527215037901118085424138888916536057763236369759207096376519082329997028629991906941180907476914598030473504962114431761740729422372590082676594764250572221786008821975253100519018927158444227873592254069731461475915718696292534255858929686576034595561861814223639416635293104809721423209705730286229683399857408110230388034042669763681471534386800953035536897752467559224221895945582335890097615699909614377227584616993184691347371608811393057509895471348272589147392678050707322576474239975867331542845805669767568472796978807970678277228215194772098583703223564224704494125008673013880456693408599623446189271517019859667765657297755736140721148660288928189792560463603645338085519272387294681339294814733523224489234652692057924731367229682813586125280512326949968744171016241063435663105142669544494434635158901519688334611265684324147982621877684614153651362656082476214423455831947353889304924064253644328294282240213586496417938727023120942278696986025746017579552327896263231802906700815005525224083113066643110680826431412274896922362210444332068200382783716448121798564590877518344840011538802157536564804222543835340871170999112586723510386006020135752531977657321380113073941611089173224763015033465262248551650902449124272287906573776041989455216986223429492666901455790799367598124512635776835239442052785813479280102022891066686407420184792142757984872748912737879134827556506564294902664523774871594482056915579418303164242501874910196847401611620550760869558454580978699190126389048427664306302829486300805562037445979377053283617088314924557674755727641755282314086488219075376982599183048917361209649486382933953162901901202753093530897252858054571995764274681963825726412714112626152992398590171675698891637185043278066842510492210468925405766200060962389428456829727716269670810496354997684779003101372392849183072172036788194278447372823337830280243742710431911946554755252527321996965305412941702135817446602097611706824382745568182967853844673209273271769174946646523869024160391370501555616036167088645278298720633425506543108674275843514031635506452445988641673227667744161788661814354007927581767744880172855494475354823443305656777786191109811902306122810696717326318142832591286212782321042845256133382331664587716836813065493144962255921899032294696087433476199635102345953932781767928972950173879013565743732983689297937793108009892981189520696851221541351281538995988519572468046065554390911373357515018945173115312572078191193519821779636675239725578367175691822998987003444541510106515010110019444140765745724399149127827777811443051938060798937741241416883498267663490138836861212037185914709090215914732636981884184178325960272605481986315394442609695244510300166263499957816727405430343530473895973653955391112901409737087047786120929589461570135101710361415883146837889165185007868231896058261178934131992366857003662843369847356411610728309940422675634793978256427505072759996125239014355158193220414479859928757664596661204373750354513879799949321552854647041460076940763718472846719115766024200680274625806354005082092846164501830278858347262659334778382817872196418555432396835520600015141599674812813060462161512928426763697000448805602187381261792587336273863281550665467078794825350407888105023818538095549660537837518558336610821827490210472543253872471144392190075516819193304588118344346573908330197076316015665983148223845278085040657074521666011873142731970818492109667401062084252963393985635889981607981000212414548517730373073147173099468721840696158238990580856375456513436322865645305958985387629204168921342618676453610036470006869994891764272468207622526558943683853134150774033360600621535659639759849140548999857026249032499178778629254519773711326211110394819295334373615036700176725299050620831760606500359653266404888441242444827341992923598740119136036641016610923790775662055997398583972419805639958311844179560107895329287649478253355294197122996348094194768582460078456737915172891929208379487279285836525928439897101583272855123519260245485762547623246579896923671842621678554058504604748713038860234621261759145375848188926950063659499261538676908384938967969058853464991960351023139182557021461681947761847436889128658987183031102456238659534926347610022138618911388726806453060488183669624354331682120864800335801230305055247735412930843926128697932086913223562779786320588240624330995436746581145927842319451553519968926675339775582211036322660088718485840865854439989301673509527718842967834858829608023221728926191852025405070679887561021459183158731238280152723234668104305503353791160729332125710316304666529872129971914400957447350594510449160220711824184935642084288055706082306532540514288364729092016832002772304491441379411619307622031038673798090688754727676349086860108868468176750676991421595802660248327255066105316522837731070315737111523772876819521775948617119545644727785611275680648286315994489802484357858215935520823204242944273918246977722844749131346375710050637479113904405036687429734683829706817901581963056473560090517261568821277638252101858913862429809579407993252740455660201534615374262319396020872982833275127749273063140347917696912299320914031287538206619586645650945673662851869260642638412104082508901085770636743516149777196189407868883387549299281444588813928005307206477857552047277521357876460508132797094877807523655048284134172118528122033295373124256771199949396015631409075390332510640834393871119813244573057775207643378156379609360402406363355164401013555844713789763895394412136639049971007070030859515134191426374391097995839262017090611370451309374875972955447170384736942949666070577546016136716724417155243244491576263771660273146758845696007547479188190015439728651250585470770761432217531512854964925187826244817077697934630240841490767385979429861925347542785536668974503370937567356877814209238032634802881230055202260188077023807249443353053290886322121433419078950769567060841392494190484902733255671522881918293499498811536315400881200516810762227729849933433997475550281428403059734707702284734425037086017333229857684800903429424587651413303323116655322570644881516614058364856155945166908876330799666312758441724047049258869553981963455517360022047389871687691758023863669880195769757528203340724664904370060921893267605707241911841976255733803396214872974693264639919838525571556529260456085819888131925457740125270944688493123718230788946843353932502080263916934988132611231456349951191706353979163662900360441285605225581124364508861255399518549677412073429403961285895303930178648506198628786097026023552627068855333431129840093263201624057561626261534282152503130555358537156038640672623420123000767403543336939451353676022371001372395768712398182436168246393560372265330825579211147914223701906341609619003212100089122923534012146780529734942758512787626805279595147972687064520160577753283629314589933204620451484068987328146225811889239828724847376790128826502942066399894811721074495774881821052583033434546471608045899341382241510552254935858583183328260405230329394642726642205247969206414526284807878607627972001837314582892196887495142749593131464619501194268924076846033829861046238623361545790066926517039538629720826985951015137076589237222545679490568140516130893968852804159983175380612736300923873829465985756652360107757653328734107564197156708145201202183352907743029218984862243665245206818066830324962832755948617118683686551320425521267416527088176296357654473091304704462502483105930129467785882445634733696880292848931867202234422915345789260288367734420268949728376502001918049701580618970826708270247095350746329412736470463701675855485565538318807090900485344461861895503731706479306127271359661929266834892729918455291778580656515986146340093629869681976417705021685266645805172884204606639407941810169783834777050103421216708763681478874065238184610324565444046213415545843608879547594136362807779935858007901211461230223338040246885541203594539344396700832092972394350339114636642647733230045851343240030997842669125591072987613712622678288838363626175149777359608763579657755339550764224438961748100758733504055115844882435275349998799293285323712317641109555800070958523118054816398931025489102746577413618401121129302022440904804725881248059380277019058782438461671171323848624819419092525570028043390627336753580020796167198822414076669570783088250617740474324174368444965118737134694100438291882893193845112030554146115682750685720557400613664929882244301542195027053890013514854800789988737549602801438917834090199749500660274331981549706858723972647081199405406709330329676417389736305575683908340717423640608181913779089273694745646678535616710526245072862582390800117164472139024089305846438596552504597714736200106306125751881833338702051882533690540699975802966560136583666572828606566492521819068429837429836466245469476386412011454603792938301455162221694226661336387390361909972904660330185186773478002791772751123177029281835745012259504049600974474164260643534316662181062883595666771409203980258059590912050674274592471022358350801169792634351354808607507053800238192995215538012363837368646057050880062977613631945692919071734826768658922403304512457523531239741623625021877503701837141497085968467844996426054052519629908646618544475466613724943004262664234174242299634775142776202138491185790516424325609985820462739515505627613786098583409869817102874603051104355163075133849016540914839893723386883900990448185949438069088894662396309621615042022579796470064393020926458772283437590204674916165918422384137696161733484627396633541080338401157359725934016361712641555220435966511308543061995684842464498341156388924324108979690477946590085579552093312309649097592138060192130147591061628508213423805716372021914322952343522989652061997423335825343004250908951810633481826517159550358902950877504103889823122866818658313787390708156592816739926439919689583148691817387017984137117230678603832612350647235950058658303746537621126265644268215706115939573090891345646573386392547627634639319777321150257242497818073533150830603402177602425526940277973041334993718173005355652513126230590509148662710903255718197479411955492988066197917475765131960731223985787659891954674582851930673441719679839891464346349506691562940257330748583996403763772690585070049878110152197915469376398664683328470854554220847900984907430584217741182609509420315466354210723521175565351398272428882543383709230152049640939416320087800715617173551136593102122934801808464147578375910098734246847368654186262568394059396222781617350632769424178976125576429481179335081101960338156235139275888980438586494929523221678634053347809951733462784426889536175497058784500267575613670911250326833855094975961876947836213643435863944401537680150522969362687047040553300582508518829849145802317187436238908408039064128133488655874556102522488169613095321386653195367050492688556712346069618231107295307611769525349954727086306497215819458780330127600720186308926951873150787070135671403342459446541812172068371374997009283872012386757252806448810926310528957737779153642136502084032684375078232594870816668843135455635359442300438918599891222342370028376059390714348477267620925168440175716744332514240759676872235790413244104026036164543683326333472002594605736924884119753497845277787507409621783812000353825279699755046599493361900871940643320470081193320064266448303612002039820470753627381324047821038075429424841364221085140958950420245502374273618269007666048729590427466397037087329927010547793009762099209754818514403117717701540972629599430350238205441207296349078436485209882499266934632781600297110315767488208944493976680183518484755556874021497299391102444363855611806793268755442083166142229758368075716890357984702767384851606913744259157182276553521410652660530801230707191568507713649462640022629848061377224676831590008717708797090082684503734678512376466704004748448723701895687003942930778693587520441584061916928924556832348269613541992399192051916637804867179023604296724982229083919539085546432739641188468267652538015738868743131153645153891041121039613121233207282352698248878690749489964845401748559466913479377283207425691538824812897412395025818150782461152667381459270729028628492311027192008808277487227416060062980323459952269219417898593929033578467991205889895119943398330290149784764418295571600645032968386614662277435643661705951305148223473635403117208338992716676678718446242786082777425988900635336608570108811826506014974833943575752413081659068498574654052649269656980482400859112881134970842029865347063122521891094969107492024518944949780261356063154536173150418613350157866322944668472083621818996961252852329397131882826927475026505727896893320038157835985932015483342711797275493619553214565357267827768840289694644118596956683616192468506990534975521917921051210206683462963243027667140284119459950104154897552831691676813519378885315457697008587817938874154125046358733221422205008886067117438459065981610684166170784552015492663416670259276233360673258713834045321350110528564948851062695107018983019029595465592464197016520201739014309746612018268727097848891472427645392305170780758186115045987024099348494216756136402944389145496774730968299528607042293590539277934961444018417191667677794557943060814328897412570363254279364995260790748253079735732770547361450766404931699172044313019691969653351064091282390401130885876580056731004359417448241425808245617959979724651096798303655014567684414348198103756382164352180761042121682223394362356365146220177846928091081151152861278380368729102321287846518017973646165130442061251179762272976472790964889528009838130386106327399462768324345907978165676150492202038517878131181763043162286415507561891734639423515015080164452951193211532595347883998035913984867660191503506331999608902408375743926812141447053736266583315298585991386511582814806666682600169137587464075560001652947971274254007130895400601166818415934860995785942213655926328929934293242187772233992703819264907256501345390229615901117353619869415128029269710471501386187402126764701492603190046339493489805035735411123269333742519559161158734522208873752297651121365295206969033889932989703555457698973400049254784650508807481930047449806723498151962264954084848899928388041689729255154406346805506671713705784161523208290813929948871249067928854892921969884503525499462843955369331234858030821172000888979438678891477841358718934168629520249416365561351860724449270369963891393087664286696511705303008304777568227739259220331791338029784103084064310788210128555653805317465609399833645000713319670314520234593629268017495193080232892519912271917110946508717119065929914276025010578087320746858395615665629009788114906016392974009080698382457286654643113102688464047701118803493616443646895170056458756284004287093320817451548924325569742130161776656348964064174330693993252228956067374662343725458293706437899207188293396367096278119645052800995897737454910127616967026081080346898097952476990172389351798569974244944242445414357539241968454169219964366148837205422604703705468376894472819972851735111332984599525739279932746619810448418263406381299931230803073813760598648788726609022487705867639121600786234581910616783019340005829818917058009658610376644718339333082381431119013677126428012004957738009182784209222497748496459724427779722355909625586031531315535303113033185632594938769117981432762680823437496618960547381539384806121438081069905654422700809125855170285076152981050099543598298598306341490036072922746139342582533993974671125323267670318107618774253829516545857694052459520244888356612643950823085040426739860864604093821225888447303165349636046569462673119005293306574704152955261224911993973185072796537808287011281295643429526803851808640203812688451910478382968417936933071872861232420769514990150341231501677128469534660906700646150912220310871444007786933625487756602978155168520687592118910598895769331781329494808439740572256175997323073193184008130262062606312674249175324323603269674193590821758115833284940836952009259574314488388982243462561464191485508419972130802507194858313943335635534852527229390915198965739539873903444120420066136125583592194072406890433060127063037066691436929209244241148987340247068049055175044580350867111551931478532973452263527120927995281182716869985492996933013466594605568756751185361290429342978711319273354557237128113955639164007144193645676028765010707252212296180973662092934513308194034887402323170020242842281724735340666830962335184496913886428443347549569271675218760684330435909131003442860109282256648180436706385807207915474662390331640499608207687292768699203166725339386996058733226224119585291335010543172804303483048132386010893796721631480486928936472075308839148541834250952223588016280302947133562903873481367380497117811783921562673913915313720791167396891048973025053469932724769956668067187113700250536134840739130200505370541101984197187340583671155672170689266477698345458662381691729135312000271936472312120669008849313333835118770325753939837271201116223083881393341423563796255592300544063190057103398834442394593476891048128894262556035849966785879784938735964693665417491009388010854550771684376033431674480577990200252425221789963017509712831970794983019117330858468365232207267535533915273860945814661339617422271300036470122842042024385896773294239703552632549876924887196989430324376292285943597402566339696322482093970281108256321022445584562949296247530261811150119620710576587247656254445079588008265720931345313620808560240414555817606427471386187017054059624813086699374087305859822229309055946525395750202710941007302611712277094841640977858790788716890001876657149648371047981835566552935673726587663658723425431260707104036650185657418499957125101052385203910443799840977451411023790475813745092983303909801412301457292819059957125315328157888614739322858021495098824185298702415884140674914953791141600596781539934974870415490104088563600970591365824302060101857189725842458984999627493042560687604431817161132571218222662224643653152412425954909818075199747403915387279129663223045124985423089561801115862894488198357459341012753940261723324452983461602641563302766739767611747745609659579782301706651778187815793965962557322692521574899132199420863787542682893288269504838736169892758570414743978288721705461495631530793254681902227220893831842307856729155364873839072738361811005189590510010688572518165245103824898157705466091602117751030719778705815808961936838385526999096772780822076996434891529192595538331651679354571752267226043255974192432528560380870680320581947989699988198591243432342866347488342700214708699569269491297235562829888082697858831114533366270198003318570159869716558050793706452258855229571920186206786028831280546679267409955019695157734972776452744885941026021062492485637625802828686656744871295797619325435353677598046077061916198979050914245473342344898531937515239661916448406117681251792967314026445581315260045849627258863753211300710553213186404178211366838686653739883603522683381907626503267842850334310447070612156163617914645839106710790352599697349259017439243349727840160930842343887096549351703419579453484211417501673044628541962715925630888059640612161119186072805077815825538531603320868987854095543451557313357261050349778658179793667887628566813107823239777683487287052096324672530540824981590932609149718406971478407693054739627396749506287912320292555892159239831370763370827950654223348503278397596251477151925815501595558126351430617448030339379730817512937600592678834723578766631714826065013053833675671016262985743100867814163642799927439157298454654900394803318704955034967292493584168029849743566558648100126110958972005552718342641671390735979938502865036356583009570958048467186569190587059310635425421252240275395044104137492957751382562263483586748082741350201142072984987219134424105142628020817639369402246436054580443169219716471846201913302241972501635887720543985990903251273078694471173870567831671665376607126003174746408919701197328230437992210614967290016282133740843632616181579949579779569954164142534775952788098166589728141536916078124708729055632667316239587912901434764378491706159192374327813654911803500567256276569295827657545924676478917063800714475080477861352687833230516875236892876594495712879496474425513857376219071520223377383045074702836173441860405292782450907660218431518676208916606671563630664470466133742585456709821247824121131893361697014720371893671094943287150076428867859223965545907589136811429646409647263584245314047681862701482629800654530692043443085705361783033358483574490187575654507109379556803906759767273279698774906286618300052790081076459961239163551158211719662040894827834021702164401048464346213220429799351827301103771388345556525063322170540084315396056637933908758803159010707832074153050514132327996232385891850214082773339424743080860009887563214570328387575968324164798741991576948668355584906482087254580597380126142821492089875651791635068576097491065290203321009219499864642740853927800778910595751418362238874843182739755349436383774418576006831893762800967760216215761429144678085855610957819936946292730875955081063538075767739477248033178610395961039872511973210590139804295294214901408454047935589911029954294159108754845978112277125458628085666083813566838884687646344534919769319691349304822938770924296035504374545886705040132112093011435815761006797662176236166049533641411294390556761524204433829900290995368225219362863022101757284967330907877970519856319436467677911419922486834733045811481806592622103899239551386827310453106403454806792321363950163481005840979354463778663864706768356854136194263857423028322328788027618525372930066212693090934613805547820719297501397503457059330060900566506350248199733832664367963976694414040055468904523874311420473677807957958774921855213139593730811124565568773640111350774988010148330222465750420485224179958246365130704454848776551596329443942178703023022128762674965200811206812644239944988098280339013991155932970809644660036013774010923531263649714325390527850796932448834701035557468665504625153261453390001462348207896798606612600003744302520461937312631228612580935564755967260830259685934958627502995248277959137456631969908800485679221687946274051577478048691177801723764771703287414016194349897881120841921944810212841720920398817138030487453992877673809947274554362727497115236932200030659633768047316141040171090341362167187363912949485525067604986101303373386805823428864022140369681504121830203529277012322008419833535396657435301850176246531272485601930349682887805365500033373743451891826641223058782975834640103360398258819003916046042427539482820664227242833236178309194089024596116963654629182212507222162912959478731659365796535808623401237333295922963575550115661940993302975299717633494676662568841100714269403038614463392329902857021157211359622188007967187658753303535642537855578997913660730468272257938123165326972686835521651597668395101644273757325905693947657203941050231200034149084258214293712429604335638215016420376610181241679478615458618468590352938520803265767997315318197865869506116186111068256572725903841489093910561833616877734628128331626155791421407462258218793732318437691869746506950637301096746082763543133533736295663673017511472008033341174819365731696803041337825797657319643863675290979306694735683307808220084855201281322611987250966613827696158654717862680117056144325578906747483809510321464637082526187115917788851051208378053398100912902456789408211721726413945128508752947859144738901553569405648334531063535701617169167791313219579522077375880374606100141531928650905121624057521177464465717984720337071281334258395680352689785457633406786673151391018021040803683221209993991930496477552930704410089489986288858153970212846776795852103650206435278143143260322440125827829483255976921064721638125269727370241777549979597380145174732374480852313579633526145997185947249512835729542635871477159704541906895914497288879396295814831721929792369739213452899379664175071755597502251046851658201070687684766355190935042469927709733383588256059057418340391743530085029283594239562022000461279851985992381477906265372736464935046047835879979858130800780655193998069579270366441993504373173943620574651228038237496646084212592666600171664888540459682065407788542600987507882808118706147874295723831835724206397561289269622952305132302260223543734560803481950179711307446533587015111535491124438196846538624581117411809687337834907260349076385692352171267987104549886030144127040432932650441500669681169407244441513676524299165176142082287987651800987323135440624072970853106294787036481435626051772484267398519918908751643047191377415606965994270923386684950808802441058165328787248642201093828046648160577898641268355566642074168426376902521821742983382821556598731638928550043701637819260327858832210732113895564873726327236435368613637093084980559349325040561780375812114375852803442347011484253181800374904824056826476285753938837932755515124841697705686868550468110568655089074135417893646121856845095613945935094075041397842358742142903313635367933032854836651521925898259331581554914665083078739894056480588766642529757948562900511036206932305923824857541648360413050797888890943250812203370281468474615126829779250716993168876481199989745257406805136547444919775539853211360522111405666712523775216879172365659606119377579505443973788959255369864823166546511571964229286557971712012336563305996318805350068121938890527604875172049947750182751982461436456281444741052718880265217746077866889521964568549749928665537439008695978780463789218915185250290765454524191700037788204900022741917670793971310388284056302250090887226345505864240903058978905925073447330140056242040380681075907645666290730527422447319848249556609045637677289762439178011328003492433434561391099734009157613531519278719567706681599152291066765287248874311048548890356897723818534669116868904013553854592461935088309729569083238391615084200935382535357021478856357514607704858680717495993694217595166821610540010538904904276366065524044543791675757742078342443655887078473399218023665368759274425394944246204442913228109344770006898377372309694204354444010883630262254550906898090369242212166715044718329093275505032268282908940883589448491829969746138798869384677099162000436022647192511953998149879225786318718491443129688654784811910960501877952836109337026821029157045228487330579815698650678782495828010431527981334006071110819808930588276953544370784930001251303966639422792223999426643286441005106495815822830789246415097913801034495659506380970941703817321347634718475570896274047173073313912844208998665868447608340275914067384812732275993161200332236793023882258065933813357094911825658928125186510570212861186250710006320875185155531145538075967321966268561207739722061615688508546254616535184974215879631299674464667196326277557004581382399687749216884893913671924581032269069949122073714389817500602221383165782363640368104610895603717068824376225473898410159604288487143697659111949601999980867630647138025443471407640723525290230507219155098940238154930442970985859930777753408924120344132748565836115254976811957501735983629437407732469200404909277245246646813874243265473886297842944186563098902911880709235066458306273491204226097355647331267558677872753607316297935297749948700341627965848320130908818217905986798945539761583794431298406020432019891589241305747126014939732293522766560124068126256621609675266864754555115217570885602491308880812195370672027550557241307508723987988340183229478019542271000722648611304651760771230845639732472938493673960061896149080153931085782355069378457374823098893355644053636378254322438812475533174830706794382493202311838902004203101262164553878622154023526115173094062453338253421911706926097171434758199275142949953788087832852801919790842839848416838464160344987154591816393948677815896915615703237472800565920729201815453952617719256364115427770998664928811401784004738176912533785483832937979239897660808181633049002911194212507447681863090504604508291198421940800534379960133903321241276406246644147722338473742607990901002437937818336040327823726636862442629678970369406366326490395644273268925888909249960322150336665869932259782715603088738287883464925680580812811423062377141980184947960722186935577950358449883445474904812917890831263789223756807658603636355037452661419947899668141524997608186411866386362937619757019343090963202120960439583150455117721255370781528418184770014649165896246372156549482523648752002597598174911735244695643372407307740130693333152254480453541444111240391421643698359737646686872251066141951836877712358418786193974374121493843600968426132922158687358143044128878735423067436930551534515768931419038620380505820149620226520285595542866886209073533480379388934425827160933501484612444532799739917241766028810735984940647350874690227866233565655709525744405959273124441217931607110426873268554755025140111459894292540306529405935580727869793630244370148709939062419574213198291869483257746685049016770812341486058782763871334852537242972386482911483161918429618799411242407847748531801774430479455127992758842330736747792051245391756944470845121780826496450122088290934066597827355930427345993295103364764433466754671110987747385301848080289979827473679663097526788015414882217177901408779005173157993355475291736605431134319811699696734124941146407308355608544039436365841376042510668213427649257308579198770025592134615393687531611488604510193052301430497966285200983523898208967713317044900196781425440217157923933195002364684955593835518353523113181043680874236865001692651139366817899196607943891963928583599551710773168462420038321877391402634922601747757415812812422485202418945209378515117654296055579301221545587535155959709556679928405046993725624224893814408738143636380495866171831240027846804362553002409060062583942428434090424662713253723703559579179817735242909439176419937597151348003187976687174712052624042860942193022186963351860705416239937999625206058726197636314077103720798319388343915646544121644884611828766347553702972366372550495662183342575503195387181483072574552181142136271039962785975272361928442734886248441030287975723106488023962393323746518696183998433647709339328802261065766291878334687082248652881277208460898794316256966270626084100152524971607549391408880343488508448515287637615245575896456223946996655559859518142075421037979225665160314380956711132030837346868421577023561107620179192766833040078513472809328539617574190461772713629706647436618092295317738047342331516224087258732110958779239721159388352058180290141918057086437612201918154672147953358355025933941932757466820806067926060579831564561533698801378471673505320458903728444439675715265789760271005274639138722887171405707293100809596475353808707014181830529878279773526463629528182309276546226097761467392088862215731106811991011381406423709555711679092140844565099077166255592742368894133447915662225721045190582420284032730477842480934951262285937733196563237445177372503529678330853110025105153931371808276742022122380384716663207715977791975536036330414550736476007584051880739056855066303657019596181745521303925427910858648644801575643621579665005422452251418646142031701525324416437122223987537415301072398027013921283324412569306887617001722950647228275657113044740581837329525118009561378950322380071188092585982057085858364113545430807903738483528699547595529065240741663252802454858248424118678119557611595784348181568385307495686229824226302223661822051213097265465553120940763619411174529934826547890703867886759168350697775758596087328420974014052022819371235426549507970525557018441723801057356798368171780342687305341120715453595369089155470698206271426715699593789577122491579989842723258947275121586112173739437912026562521529800988197127503460632639199985613599423472869507737820609170580319372453040873021563888429713711945200603091961009644144862669819295448234211462382443873448159064038693600907239932567079763985494836422829682113549468731597122729939150930527233586616628353113276414111922820085032953483934689228132959790120784134416655518730763263029130770510581424021439628455403287956218552090525140920438485107568287224136588605177087520479226299657439674742128616546095849261866262296139508367236993868437878961760604181984375472385891898502787875495727123011334024830053522075488596014656888006890516217708468425683285338596379296793465654401524985447987224374302656804455613715785595938856623933492268910732149204847317904496569591959475518605468521344801086648251847704125801172141017859141035820433082418458298173334859130258501445556555678077376027367433705925032643373448425532928924071176624564626543997833709353151158007273895609090705630375802638845824028316413491172098844037745989639594634694885787491468199649556348735579975866912032940407832371992019456246953692513867285470563382816833760849432052589504222243742858609373607782674504424396637402589126810403991977009556499074839407169826848465683926691729961456637150878872263829047504373485391546507795153973063387254684297349284174880889251470761204882815949881292128526146002871700553753878317081424978529743960968267273247140540365114671121705255376627283804231999151485523391344484701242451289836732744717447400239078733792734081738582178710533143176525088162662319534968024464185590906861359667446991083155278588378719915108015932473495551690287977737174164586194332186890068359909171446773610237908488934930072669023890285121566638981240410372175758730626104489957174108452662629235190041904832857102624005721053963675417209421746754834821699321542160124335995109872844549219357908296933376303729883734248284336153686837547697646356371829808503979940918196629216587981201117133776508871912490408457968611046875697229826866924892579396555445275375832268461431071943207355849993630931629037919228149282880060578262273169616907796419910547377602179852810067301402159533075950475266329852874651251713908701028317789723155514525797993653962040541854706146800064294305733599399025014634715726905409660432339737386225375778975052285403887127029253865555231134810507913259684722240960136544122409450166006129743700401089437803484693990236892579934431904680287439075957923216427005506343355782777393296241552076639549048595570111608947541214988461186711579470763845051257022225560657835833318415864385416256964237192119995420076299742538187935490348186172870973367084411331347271804756182152302949358707758090926523487088605922953035766708111838892434208235235148031713451942413491728369845378567275171383762258889399702300101683570215004487478935393715481486960129338015769005075342933213684543511036616475705883174080903035802260216378880189399974263780277513634909921779343089432662581325964154681736231055769189315455740019634741386191373665459249034944984260662866290028426353688275929224333568927013120071725147403862201139542640448424770490430745527090119500510128409334225337347390221688417052518937427964023849140188696215148686521426817990195860148922379236210120548649780781211483610016473842328508256831320953855992846885314540054031023073853778847495253291899954195863233134825587116955052111124393026382768121322907667923132003244071868288828863744601164192182648533983610131293807422714247408308508890142097675955783435449724837650370157111590003824503656237255447618835781817814665002453140876338103002387924845956697949951865524486876396073071953416388341791244661291862518754383897046844242007993594646261045841594993984559663252110502975571942812592961593355547423989646484689619836062006908558179259299831815545506812404695684694231309715054153578358822918715878402547533339262811972452927874711322041709899640495261077685492269784377105085689347915984881786854003165107275773445278886314769348639074284807213964569407544799402306895883871107471868728017337054921232351886063388147989876053616789893175797871148316256508936260689393876299854698373025701322358434174315264105292330624850937939613894987952863846099520931155607936956842312820207240036965552900659503069372243208244075217753816695094283382035578136399716885930979788738573890138793487185237444286106655563538707497258390420710321706018982615143352935850885599599641870622226541709610190346092709644629452484504878703945329285385145822622480427700972490743001677312984855173596812176806914200402150430997404532736759304973198392974997847738928790907556653922193616569242945430607111065769496376542789823208325132560176397957460987086984235225201122732737291016631334278524531859230852996585039189451843223290053360999267933813518122872015717602570148803270809867135461335575395246872636904441442577061864845208513550154088335437822267363507291352084261021123130597465200904786321171578872686027205429519514890814270086007929105828803580956570704123254723126249228014645360200722534450911744394265551223057170063342250692521663439761129761618048465527761848365541093528830455942538877442489116745267858644700952598197987961950566307685371915335923408091178662250294787024651174646511196255403619669436797794826724591531085355068387852470803296639839896136407759242840051522022466654848233838504312953953792888851175515031403016627639339862803346954726814600146122121718827011410940269045471449689088483062951604663433264439907308534002140813921376613605732911541907035513844738332525883806319298154318339951245007307489086193308318957253540303966784666439006594379516194676432713036296441105895053331894080701953601179473166120727748180066920734829162865139784020344079345362431844493812080152829494510637900669072158799886801782569561575383811201973209555386131043005587850483868359052870807705557293978931926207986534966537750387286914523175310038056672651684888409577543964445973340636334364289966058595404631333063867259498394636909933800986700651432502290274437972203427996187726814788521233751824779922015119470605555035122414932377912773106520092270821336158854720544265620825641211296548895323977491974072714332978851213249504491081408230679690390776185048660395921791293321464549143198278957130045922630551725107167178771992442657702940731815205769319045966578565389530728277731787175134400264986484641256794442602292715174981446890165344817864299384717270156480458236859802011811532517617183498277073587162541740756503640847248850305176799613716530020574711466896247133804950876925525701538370329006552411598431534973452501946794558844702987375768529370154421053313350921367299946107732598548224189143297068138819378507885955561180099589225913777827448809149583582951648674182323900142754617056692917786066211017901816893947634256419946688893215841120278699475383266241574684716735124310626934733895791361444733595917289927570254200042583963965762578021122096256018027436969403869614791845429874972098602261246814630756252509890398999228284406743865446630761224686793738260170743475858232612581238190179119855962715023765234406040822679337875443245995772964466031700068363449527226494401457039013355552884236008439695714417806873405038359464279709511093433124864124311820569566699329571768844500893395301658563415742581422081719667362343359232055675794302092999869370927764162088353305671598902554304254041157307505276749852965949302106675566046530121978569171356971833446059036662495782395699691642252669728086186902004287353699290502454089541819966792691946215799742682561766752129554408078201479206857732508442919733846110981315007908659191190620805921101764107866603792726828453469595469081696366534877302327883647469442433118718197976215577789187285454449967046630128837746357683801184922217246055288552066316138648782833747197341011181173802691822870951085807244888360369118849904166573528944226552097859470059479817253158150773740630506929683178154020763440076631263101345204362537866519058500981530121552049057238111408606807026048462278841412350286695238918917827749390245828030302582957199545745326497548411630741882783458078744586324176758747446373410450097095410731278631665555174824046098696024800442197422207709990073698951649955657561392551945432729592428287584222225744470941493551560819472482470544778317995873032653995680732017379962319001426971010363134652799020740265855615099051395245569003022478537514521082636016953254296616502369405242624954394358120703570988158797634528429307699225646374068050152064182622342725513462210508858977643533978112510106406084008870323351778632140528513811427511920549255442787896819891821085474104721460226228026742246686396817127402559066863656446431165498971834371443845630426461073348059505809892708594099693812226814580170248178451572544900934435369166971557831425937420575718813379768819770045096478440647561930898851179716133880033288766190724040014201419231293504013307631329628557156097830446147789032165523092152202228923252518592240138773529483431741851924101900621486611121915545154170522329673114960398333450251485458085458745587973303897511219636586919517059153038002819296051550669703782464613639826115267294708870422675096265036845196902652990819498287498551289896102675210879227820756978612497931895446165300249539801153348635763140516629137449985273184755447980603987384048099992943264137160855405931220983423125782549292072021171146932689034546435687404934405044451431133380257155116076336639590478295731922294253047239441304523718064891686825413487667955777727944283152725653875787300500599287985891007204678829917537692745007361993166015542030647134232135496733665814177965927964519317630177851186184553065646296418433414147490211621556797279973011001048013544777774561870785118598436895970769391653908986291447783915263198710065152454273832638540809036466222095355112932972680555918774649331220686279008001108878332801073561166259925423200908115927213446103954978645835291545587910452768029024345037462417634015589176179070410205673413737594427416156220912944410622238563570011064708726758086702062921278938411382204189017650898707505595267813680608482912304721895713818699157622910899085425952981156363287662180484758153388426321152512008128555468018019257982040939126709837111856917794108846076757026295386984475538313418978723813408799462373613919730801947366071791790242176634866889784235644519620181899353455286722969502569027926029165601677588357653623938843988284098109214540233227605541343644566131883201008128193198033443520518352948199792679157118563434691894257359424802811472362534942423243418172582968934723743694766348594161449361122840498737225733107311007132207854244408803387225990030586598813184375191692229469668532186250724731058461361956994569296088472230119416253988798749251969003214497241528530627288636363637427725075567902880092575628419118193880927002873238016493587136001315279942797945773684385321245939596942274302767110525021611610991590219780598485372921353335209759865729829074871450731654063554216762400546961018990016655158998605161921705148818104707674596674117256027868247856269227740445954593931774101741850218498083190363963640065508457254572391425114313014604962695518411710651292447891923763935557308669561377603644850334966524388660947803039074979022335032207552913563824932866600477967649795572508684606556493568043138158124836820159936230013892290869703886857334047500586678420447828654885001836648851474043069749889056615990109440360542741649892547268949957519476724860265419434598613338478131245292125179091583932269462857867470907616613586296006708141747293643174519012546610552405084864174043928542763016444129493179138908490543738766077740483921716668909282120610310222692554698003723502997456740436357656482728121572316173260562914713788858084460936704949474144340592422866453543173844382773929123596382487594636511323868527783244597705082735539197456353529471440632030725697716639943106141091409661112191762399914272618910680816728069883747047106660189289743821540983209516146181550916361206528114066676380324165161979354277489967356722125088943705644852751033968681785966450560896698898504472654956475430381275125837714049686340590427259844981396867139754160542063636799679891497266612811378141695947531594371779916546337873507012394374439500737536222153016994875067672468710589748604287982909870145011170204395798922763838605056157298867949624246072366968736941252018311765797356779340764377372218387267042553969520994071960657591429381061947460586573580830125337628290881568082892266431094195555177064943248538814961739647065743779570602998538040477771180329289055422603902065103477969882117310095854961606770689051064732599088557322180212537278700283762366704653555335601742124067458913485530730599038432522134399100976120414913832153469640285209597313481853441622052408786461733311861325216882329293368144124363021401342682319771623940042900453531581956995454143114780318840418967894179956400419145447830118446420744417550877400587945217126306267945072048692773803814060212197469834647869011306887346053762878173514753133793590697445076824151867824952345102364170544888386449852477284434420640409632195456285291383158381206669162748474180812333954926115383774536199703323600325981546934641619894684878136837282417451888023709555296680038292851970820370516533585597642598459380172990539411544933050581237405073234516969981218262973191003811357087857296243903082661865843740410978296835034228928134189380460838757655744584045119908678983261156588063275264365403515796505511712287627737950455336557030196354623331595198210010548065255400252870594977037611078486641871262329036396630383897451603936388769439567888234813217757168442632466676879189308031028919654504113452744149558277765027426779341970022784699758620675277029373622811869349149272236139538010237614063687911748564335480522291891454869283580507392030579917200668202279673201122054606742858216047969597784505272290120322051315983066469177657349587686775654600054199997780286692690416971343545746910505479848358825231115917120349441407396206227589422240744753161202957429870098333647056886459818271804483391170163205120752458635472828570312450672729465501695383322296486492110952372385011437568999699354705798768994125703006852643114550495329492916831088947756397627180260426906116570894333181511963331518488957578273362689054795886591982222605908900031754228760399971334454671092353933917325045820923234488505660902497956705770970396091993534631881874999587733060990627439320461383350411063618549944291193747436782585774690742474873798543641863336300766465020605333516370636889521617006466581530529849930383097340395615104650347056139293214649243819734043239315783185864496888432415429489128284874417451668562557459309434882231456671895271330688771797431647974207710698019123645836206712599185869000359980265608539111645061952441790343424134482571157978538941727084104460769774753236525604941359998232644500684806011005189509147427676199254499622249194210472206394733106047284198903386796693050689008312898344674801439717748031638320581627008559520556099482585798630485381628123570112627242963356640459420671983295440003981681539126041163658111170065349511026233581790131785051517436439336225455487993712318939670327222096936558063920014499543824573906466748240991758531051570268510999964134151611525242909816092862782118628301468932858721328538181885655088351388644643456390701688586492684435172883742661442986179696372177121568218422067057737677719973242655171730014894054861326878949039637096744438715687056544035728126436969360370294062771542551625148825271225275504743268690883033520100593741548477529993358116055459060219488899233269922771571657860721786816837065981693103949611466166464349564704511891680079077521150177586795928958879932753916148752699740120835806278202470938799919778141446479635853966484342410098286672788496296137336803819588464062109677144128116351540488424367153113094594246328577048294218903100360816221868495271576918960774530579868793925822237782566687500624730090590403033213700696328342197369284180861313115362855287624641990266403857651636192592592834000187938444160178049212414451960729083189595028685311964526363495719588423903350112068862474496019076887087460054121300565154254725698051177923687670572152271483635442857391641330734185082772187886357926488338104217962592484071484082747585649752370893816751470774790899875292433641400303016503053681998748625735625222399720141302644133664470321101775632533878795980630471114812781120845372959089310513091234936477092001033605084570150216123785445827743744173068924355506478501368757521988787623949866354819245006842190698563330657934059026468119441548619842744284322009922713737398756964302894989743351658776329840349966440441165547948866221112335924471581974700652663099281299980149249187728221376050834144909185312729336153837542922636436740776698868539199730401523179633021023868804787053419691540990109474507720629870278378902974130412488740305284126483575755580840854333638012775391983259947336327699022232716607891532482790263147693076891764291296980470108503430366408733914608837636123967362526447937944762161959644200003609802317425790811360404006219453359238964567190530065506429716884851374755374429348948129131298744500575302872286599122117251623133823999678008045811988474125091393213959274397225906420321785314731039120126680727448966452727071462969582689072350386937892171020707446893385981878877821727949464071492369347606985681154990714107901100377274472176023668439563624295008407439980992258230126565572191513038406287914862118397281119555544524928055024148309458165446389860491308595521673922201327814400493432450159099310087400960284061590153267544418959573594842846880565431761042301462260610808648456624569023183030464731167369972800119457389956171409602092186561776043883653644474751978491830567516827222452680811374629425124455809302900799553733609168442256575750284191298878436327001553746665718918302377763567261599772465747497241345959827996568552793690975617732981090317185879889662689317367542533197917866685873718917400485814921383979996433842349550534349649675035991410499558348771428489932569715812831039721608686582863245464211616081281444732406970333908073146921399118580728110600781345293343107571002625290696793072652914069426769640632508823597496916997729599700040090231138170372005329876117582821373833237185814943277476025488981125110288444911472583400746399739403563650718169169694737898841851227291813819577203091163980928253387477538566186258624172554438307101023565981719157672769287926877035768478028446538725721903684387221464320266975880998451156343232608873184173810485817112233453748268709590223482426175310856676042017522623732875949241783597261359515320651967014259705723924707567622704822807463791274441309285601734095431038619915285411880927172518798904045302663175605109761762654335403310367380272870411420462790429450082704441312879820191836255461420243109059230586089048963552961710105081801957012337892025437862919225436153171487430065676247247985006818916078916471186483076308638637120393217814533760533126411941470765064297484732061842304099509866431028816673123890717098789833539586846152447606833386547474927266644108055696986189794524129672014619893765782388898521191742768427495984745157719894489661371022047291547335333970819139320286046255476282355207723634674252967022355910101851158897211225238209802515717500257709666927902590104294726718599607744298037480559671177839252335848940907309732289307435604902474835313762162618364054863835678615554184933227308113735942826064210300317495341798014936718364492493845978966678659231533900535982352084820414833143825078381117737289046404929183110219206322932804853734172698002753521593320901312254654718741998066243850002285403483326864212169051911194653305589440870601588051683818170767359007125538778068971447038068628049562987232015269164384100789525500660881650179925853252862175292185300631055958367946900829449593481832327633077948920341081175449271451842697057654308518482516681863048446791215715943358739990696275024921227042769303931333318909444196233875022930461201551933492816493583713212556943241332976563761952280278681319295573165644562092387003273062171098334989435357523233328395003574724699518035923616404285649712778819392129346821471662654869860350940857884674960583621317575844149668146544983162178334238067551420130801915511327024453933271166696821867286188940052357249787711397566403916372165087617716249277787015644125205109324635196089621037068618646654812362736836954149566645158390534753595169502752717183896996148163050801063519509364572793032723967923573078105207576909160869059054320224576264253823504053505408771893134249069395272129954037393984264052536113634167448997759694763300241750723531055862123620415253501623325496904992117006650283950096802233006254513148512535581920195987078868060901273499606118182559870394001538617773101716742586404859337084025759927036954079928690064535251407898541447671932249651276097170807070310378538420215991665908033611351688674504360115594664944216112914837709463761832594633701639274408445328711454892442447779901272264446617026607916912063712027643466848761935097837404173692028142178064348456747133612163545413493191744986595150679432523237191684663199471237033081723730481664043943332774971569993603630036312479162749192795116995403074097859987521329988109250067106024179183303407019682184877541911178299841653917609643331946324926553203592810332389964736072755885613492975775933622193689387999520689900459860195408310318549336944134837982245942468457502783897855995701121878357109282015319962534095355371850948834549917158334141234718648720601625838487369326884654532194118171095231171538200328145291835067089698252361422865092806760272158290520126033744275256185957900495341290499553813311627045497303021321234742838543337676229721885794631630525293868002017601742506400739225824265695618667107211271888215986149468213148485703152645392332188891163587917718722485267663223280262043357140528578244300119429816949772056262465126929953215597427620947806875398657915980836907432956186661162778539452744233860726335970888124766411435971225233804498368676869219583348774548959854353001583113494595131829676849196476752445244474950002060637978040482403430686578462338318026465458370046958490830777503744284567548430081462922390524296353191322117242424341900059305672305939694985930927057947369891745479204981462048763138855928313712212327086851595715525753005993275641845925603430145533025818115003369693087987452639481506355088587761987949786371997783470588927188414463566031033567654431673145968229660387641404475339720523154437485906706411956764258439599990712449468026000298685615015689275018722663294505312167451129713975817343943853146156181394545945913488215033867359001885358223144954923198233121311335885443261803419501477773492595189132712716283706776071400812565871704003134662245411991708225342413891291363727445537794870163348995093143478145867848452376696224167978815276628533008641467448958101282870808560849023784122253033418713501165895664898294484145279128944460035966709951654357760672834454818892833400094205253426806768647176024128346314878148159425531586263515859995652204584314246106831748110825110942952548533369553888090613306103680690406456016510522531281424027567314561154166724617692303855183053036866405160465054542999302720939244184736257548560496726394757574405535746171273741401861102840899370475509400261226390896004576036111511465528118391159148494859597369441644929712356257687799714410261841566137140784091106220954154983567104143522463421140237979814004825427456947654924473480962882139360663877113726434832404665132412553670896594635462551833127080396891808924511563302019990892695286695877802161117495910884655775537941997631667250306297426691355322557856978488821976770215939765050619279144518191410341802531441831604222775881081556507332581183661177607358864397418246204967934709575376219015333731071640962369824991404878236198014082707611688349827966562643517098577617301118983970682872173941521651172023447863142679218840499210089811390024415003642463280565096681260374883952646331594886355476229088773647659167346396710249812558165885941847227263751542608022908379534215624066559185323646248502129846546588316270871273282843610259107947227700100930422384705393682103021686227177675467236010009844961162225526061265723721277471401544687467865967446552963592839688091748654641004496767177705068356293347344642616076654082338134881829864939517193875076908256064579779584122131760586013312365174838215634400372319555985745872615258766676904093685247128776527364467584454729224817575720247573185447193472648428290448297998209018187934569628906790353196933501515196707807762739959165660452747602509990877516011023607842402004419663310130225264935706956310820481155038920555010010548784828129254181753666697380861167348693217410392506264162025899529042084256404549183404025589996962015971677602154213990976480217833208269741887405599350332611145169511387901148435146488181754058374106118877686487390336624539339153818031795160707091750951956437737449072794986322962833395036826822997589258059952845286569767533146975534003117032441094526050462674429651044049060695352972250508658223923766919836280683635872418071343085446425471135014130517315441789858035055856296507947658522183574080832372233356534356437097907780910151436232751524503783853178452344442282854317239025046329036987846402227170249205539889939922066144411580008127098582467554123905717713318421056726644556355996061651690609160366087231784740030889503629342178984665694417647601182493409465099997115986496905620443372057548571147880925686792300390288712123137827313962969414783356349701605896469942925441022740037354171173100015446644094228929591903515346354337016666844934616527762045081680453148208694412815027819944854908793220377970095087055610663136066724122557318694760665242083645530891061652854208135271104121683894562426212323431062076677265728672659261800620847049821433949025292689300995067055446645501856770407922439809797225958478089862862829931552030780094732720652529971798040247480226324980183991151250124921114047592935416419251359505114199008873383715852737800452862431964251004304058061473408705311830714072599265069511520638772635872276356831170289109883997663448711525938841619465556930433541307783483122368857190683933497402758054509282984639479301385521153451984380224035194490050884886103180404420013130493466132295066461473071229934961502238070331430334429314290367245705797929159945918073675069393573040620185423190762530774641996103625788418997281555293363849848060421944440232647797347061417168818742072427029166785124801419870630853501366754780096926276685447149217796784584680922496422967402433050081783610343438975820248037766192728138459154755310236247799118947865769413347256842475551103339939830504873038841686551516716907192402348296902697385883584767500909059135334484426835168722470148486720350782482270183069633610082657929984447617944998005770814025871866065263656681789611320665245100617179822203730434137600611660922083961753372058113351956494348791323562933073064297025812672012805412681352085203299879350467899130175029558581384097061738588715193432140704275088810619453542649802350786488260289937997021836893404488143929671321956271087511499668154568417933664353724034269839545882149580959273553487933571325320673309125062111594462245896191185956920817710356406785106499123543040621612080231758632026087084310905455531612427580505183081603078061468308828351856370275092198321700641123649277079930729466258882193879918793464593124598607402251428008695739255728810455800824771716904325721387445858112654224072009995433098798269624884134211412857810670020225698577915072142660654115699353311083783789842154058429840739538911175613079649055166899915946878621843722112421619725056080858916004577780930247809109880820408507534932434728367267096004593400867392998887064861952821146757071432128394134204309638742145058297610619240002899324817705249816699237160840376043187309986699953188289869713173970023420576757974935137030065052132682493885928733407982030803769068816544369579007467150772366463066008782458737721791064899100162355287361459485767389233980761419937809923806501655593810815986111823270835304449988657254300917264587427571437772034609620352572539380114877719348228241374531909437475828362152058972427352334743348741980119085844932910834950574606541232297880104405911603617897103856784409589703526090191188074120711697345919770903333536898624822941051629197285232053283407440282538310744739262069715463220400046916915732356744118022550492412234236927113421387861746877919412070122745678318833082218132695341672998475421378445570259780124260386937640230962757865642741909642056298834545088768218554498563817350803315990896175023993321160376579020219467565207245037053474811875769405268038486154960090956742281742720913321006840490919137112966158565792612192463524409542023830096669428723147816129551129300411124769296583755120560614429492708270741532785359494150695173037417199982483242810697052296712472971912934496228525484937979608294766127000649623387168401324427680026524562414856247870992682342391376298104758949400218900445927225133576963306628169065250165875266870220941244373080793210760570663290323390427415467770036606090362861701641466937841335068723763390437634550470986422300537415546987915345921675441683593549413253397490869100947098286041415908536792195844261285095466698056932327867495036046255612264187802506724529523937066877992381100752901868126961204282095132313353848989945164282583689353217733396319415958950317229875639333057532645533558242332986822872683010816504649422821739896140765494725883006224244705215879307611725390638331188168664657481806879575002247729466472160111685701336300798714561141401859638097351750420877425871982137655941822912182785138246464981121954665257844815800581763507418803132041402318119226456645169872893485963344497642099619479284666902982841900759032148109212232997775281042111369557193050268692052539998740694168061602319891109201031227047313200714304624849098609250318027903805562969518868558368253453050920308321075779437736892990035865564965339525664568990954564905387036006227249134178267260863696120884366856011639866764927109744437300810116224832969820541218382378700994839600744372007450009277764403731811303477963975605000519816616453259979764139136061464085581891937878468708531789394939910507816852419229660391360620033763545412441873267765130429045170258134014117870100904382924047683343838373904301540976475692211186604882082861379604659810447821406032850340196142515474787261396356469799508697131064044443997443240212166602339752078721841534320414622982904425666407263947143756898039651511704954417287902344043378685840030133591637738381968270949845157359851384158044618986981845952099404039744452335581162019628002476728052702609871846707961928039108177450196474769859653010505065204110760345006113197067889606647221047152286659390013941906948520432559377647310602991761354356254531643819637984105325298199970192660827519364464354106359416963355695709362885537766086989219711201353001780684770422749001756814587224244935303889165530276064696189066477759190924433873198314123269381435544923951903311278998956582467290039849505983911504472106302634563572472012515911740054315367144992660417009222766955113531685984619778937564564708450243758736319854148877983448599142375765130936862519420259716358652562936144247246592982355472292776621214924858426650120650335201587727592669207963493365487918690247159223147514170046358434275399855487395689889200229968256790864006588576644926246419866085162627002424659383261965139679258016693528700089243414915537923521257730784918493464060180386945464381858654754668333552894384172263441987570381129931521931062194756155692837068341526127570602345421257975873004456950363688119104997074700365591503251901596273752269264446689626974673923914664117410509913391227986860105992454018382797299666561699471566419570441966003853098676495769730734020875975269688809964970210539279717582753705856938466832018432107695905653253200865042439586165527015972866564714398786466552511323549940945087113711101729608125574614091413762664923904325873679169686386550212046132355110529262010786091598850348647407778803694697528249867745563213900684372416769309785062542291488535632991279633282689185437684302489725158105058625968586070009575756915755845592411407421813545568362725065356660656314828972397999641431969165197334860401146803572592278295350308619906113899547908474714333262555696646588055377772287193340732117159819964994521521492778283555982309313003686048451488297633330047102645425102610340612651669512040782587491209273637061296238369810289216855235509729909059863958713362472912525523487352995090660122518244647671391952835081861587109431800482230183473236343595534903819957286923336614572733555233542747444461116308445045639427655997764474812087748396488297951190923040575772713062274764462298004629635929444530082956339144116356577030385432603756716234810386420306648447834994600011755004217490535569320371376902359846829899108302555930734346203621750571388435215592618771523675028379387373571160647340167691378210834255881061158736747304885749070170185515049804394573611059595454543842770088573343318729695000100432477841511715778202371283749142258318627968074784807344358140258920437435161123272792090945449416964311560033047981698568751393166793224573924567030049253364452554916506365318401195951387069881700653246863465835332572037911850178950068630939501856575468678770620600309767206130332739734161820899946806482081155509999197699955805895508399764694511744159173617674115628208836135858796301353221965296950931238417949402014163103847394584625505536452414459522010266104976693370916731332107218061894692812709384946752158943038546349215681107015063017073603823981737927278355332463930296401355551000481489839634315031228161392617948034121662990227287953120657371744950813171779713798098373809165491985834347717897966943274805591169698761934233978254840991590898192882528598201507350692110356838085799478639619074909920790243352552366098647630614463549385337485007226354808621623820573315835601940213161309866296698756318114444789251265241511102756963181624476967381857691889123935130592428506181269750052454951137322708559968080328223847505393887626743623575722243671134330875484643942316277872091694821950329442702957389774455518117001221133059508845178237370262045515280520624642379369634968645984786488919181740600056542617564210512112818047275929309982907444386129492985774648325851422561025878136162442363187836930705653134838703624818740463994006507392912812001130038361012369970197797140224174648703351257622181526829308909034358210445250813611061616823237517674764240250350154148658433084773634322698275073314920800322699023034895075013696054276889490284049847695429810553718898884675625815378837783069306409584897711899951433567644803118399054263488869789977159323716598325796008625850456958715873477351906042962932694937676122673376656644844415041497548169597646766081363765165434131050449635569514048147552030104882934039149844340685049449294044676366293646029095976140145100433616495399272983873146136611755686296480224531652043048385572594443443374983649432638735216447877622123797789722934282109765716990190651041603202723684501765788453127190301129110836818901593110874708454817231264111217788619526821719533598282067848129229404071045705595228135085015964887541559522607666204553313044298562825641371947139916455494592285514097469303757164026999557691748908608306839395848454907436403840546204266741250095365795967171660478588375048937511697404240656523585123787374656843167943641109388028460477826390595330600157059254511830155771911996520195282316526381142356892142181251316590504634917353191202844677793319122731417487318858278855002130007822675750286858073412122487598259106440925978759421920650821717318014714555031527670959655413372162455274479360205209437813977561099343614219832051280539100125017874408634224184740456286926272391318614412330118764753004554009376987894359541006075747028297082836784734574764104007086369923463288317198555552574476482949578471033568710419181650964899881199646886417285895163851683678067464335359739156949703130543666574931165505841450213944119547680188102059903089290336597671132018127410455742479300050242907956404160177890236668358258039395409291252144317691612099995055309549669474841151428439134039010328883318817765892168815407911544821258855219137537322403621149587056126456647530428695300322242551176474833204514931130931177405537655544561597319548192211525715392046623646777895511680887428320336829450741704824419804527358106962644339686262171342220663135277321767688621283043458467504964025489586646877970102698932915501041205014960021954733980029685668802991282539948466065373970537538980001949516982141211944223938728680099178902974385689050626111063924165490369301835318546107577148582996667917974824629964116559403743530107457206388111512434300942492469983597715613389961884989937233199261271621900410893306293634835584958719329089530375709427536223492428222621406644696388709138214865264474573863535539492319856209949549369605007013530124826707152591052364868087926777943672786073260324180479774909922950821193874618838145090186712108751787630443175025933090672803571996359213963681565512312917728724158246082178825785355275428976343423737433785104062374561980834493476779481627396188297886658235827071503848811531128479660095975328196166550203042521022985784990952021997200539965566954284693990878315086008711385139323741216891862397942670325039278456038795292731588070407327101446779894792182165799033228443269696810262778745538519415459545949989810520553903233291726846685279056939793706931945959649326521787588466114849839332271130023367448059832202331017804287143301081764882778149278562259221879644111501027440135917057239131292820818757670702268196256680096249120277177096158358254718634798553752701700876537789366549503603100362088832752118194085587959469477522322300465813865085502924522134288724792512589072370255550450861668427343385413313802164050708050272808335827347710543055551143671780545564794309222585486894068293574672313315217787671462740476857808387893340187717333248957018897905564354921776207006978891736453400208725830159257078398529808496174236735697022034878575072148800946125302770935528072251442239915606415670557459529408861478800638926600015114362701868944065890790214362175346450514620992337570799421882919564135333086048873452797729539738459159915383724687069257442586409928442056942503795806703910604739446220110737762027864831605790335674127957628375501961258944026509040223297660667867064019539784262617099979709694369724760717370878329769365584561343446951545934449769716867751662096416261327264399828948570891039517425089644787947647058104096732659834001294893503341530273030630744213315328371667729008468428335033226396526464760579415926643954315051805310347941995344277818835865650868227849016020533612544709829901113446914460919254331570095981295000039181060799426834689863182604035702007433452774264035551885102360849254342461722991036345843550235342175879290342590966411953335018438868283072016691411064628592880526668545119326707873582821794470279334718366114977229715258508187081413597675536516617613422906977450882836303685583207077139108090528898888563109503252880816970863974021447869026512233644905146181343554974474684074274332940408193374154086554349801931543063270976590716449862889907533577705971590749014819610871630457007345153878309639345585728145472836910612396282904002865030527404353569615297923480860113697670274621264141435312327072895004412707170054310457461542713037092308609513654170218418386247189426720737327539166104883757469032053423139471043493891100997587535284631855412850033644607386550206543532913486706819710276019802205960927853009347070846632653108801868118101805226441239059579665082082634759200761820078348648647132854370336006375612647779544831767813316281512668429819009480159840958257270891433172236345663572273941679551648272835565374237296449046164205477769096205938526259732006066069398172090410857738910841124570365847982385989882627162122333963337285535339066690436130854680388128250746962411949344834847350685593225293900185434716654324980238515542779041189034759775717423619959804610438170133368161478575152282094719228214625522285795402418957907092782513175894506195046055936827717030710482166418002047233923178484959134476121463119225597515166215082387436895325078536287431140665757720156773458316409302208323083292133914490656123936173277088477081601437354547276042378881437489372736442762530629183532711381700924329189624077859260530200345981815149954102542240770040299734202089958053047598682272018653731315272737232527521140788710777458120480596735538942311359339492765919160388505942696159836199226028778607822479996727016052502843967396812222278675162336195094766636571621452128054289019602034922652549742538463263770667016824090445827162757379068923450201672814423540825163665344378913446042779899227697691080640034477078142874743854284442069744148222841927516240768654484568154142440176522067242830567018112369991390551740755338317341994425451977532033697236687298863539467282537349150927954468969217958857538293316009600539504470825300711158838181408445485241734914657204824112872391448464055344107196841894830679301172010608702590223260125389294385489094761106617704229339539260041595738778175556702782925310308329944696416373189629773419335315707107585613758441035307294581181671422777523690996987273313402682091514159752198300188907838515020097637954504293816795254889580636972865364147943278065853471817338552992550979456927203748231517821446076843300176777582092490879032640599601915028686663382036301606709450625122589057274117725914727583564375517982109746327280738685198424946377352410947553766247987951429265949921900320724046199251330300683069816686112144790682100542772339235062404994702919488316932409298421723582264691355706612836056535209240362342798613220318485584392711569795821950320445381277663776972754937667643696162281079034709652668380062882439285200389013234626873871572667282038624310271812515810333866685372588030348582021946053324886075181319693856520718898171726003926311465802818194493982314694022522874177869366517424020393095577533896519569615531337821486913173456051866644444431236358222269512654612054738029190305646345848573250031350805828580186377187265036448976404339836158560079501212808806780612332192139272917722504546622097544569381384760399166163921134034108314161425236895186843957622204699392266436250886360706992202032491417628403454839622659761174034042547876315860081254972263069110180945848515093195223446226087012513782257405717215597256299974984593540637633774977955004122553080160324847436869067606722641192611428969970509192987873715233502785842134160540515541666332465823768310923214828965734594964929392980648605853996876029915631855354979667397707439769001557363493806045328317650049125971478539803201617987370424487522620644043930189055309131778427221661960328369766264008627053806223227874755854365033525478112874790519315850189952561375367040541164282672199768660065215612668992114493742888312731824194336958564735305262622197052888432874309237235559722361646803927483888172827979771075008566242574944133254116315883641304316986415554791543093613687596883170516576225053396644050531026244548762324308665201038552395297381017658149079279364898437392833588862737148156403587259817480050477410819501418917132535096241875960645668856889013302699610161047809621747212469109090847313732503937196530674563624556899892200559020893111789360064906926249615723335706055453094810397048403058464600442881905138499988519122435363705897821876154741834359947223875365495232469118317841849962176321277417514936753395792136745862871820285091863681624868053917201839946838072238470830328144493352127294249680568949548991698093086765545675483335176955354864954837998658201314944158192799480765439214435720420592653700990015743378845826585625009267063655369095787764201874790993342289383286950801126114054956616857766091501938919512899784334508356558129391517321172187210309363034214732966284735862601524213005313027855023711597826859441182062676343812984070665804427261886998293519950446282285939587824035646954142820194189492612796102282551012670135953513559393972902501061125606768666722271481533990178621904301974535361467896343799681285231728018073112086961510993859585828930322529907413074211225961789423775179782492639606894505587835455365579541068506944271678115551173312094083780421202342645257113984847054912425901133592429645678076061519203802613045922252833476747775624598959571207317913737002855685154825581661864152046158287953215538631745433797415663826251756484932026481601080501749436302251848898493004295011633336283628149644904707981291028422372654464514458294289107843889635252443610673225606466630735400566197640688725607509040423912557320251198764868266783260391707880390791980112324536012326558583225337423154583866631906899349560253291580991019719309441626299267849530504794517382955284764579932717236980728182764180948982089999296910766543651193832043030936262671846393631069065701099580926579159986877736813109172277920114897682656750303859599467459838790855424722994876001958995429819322189434864411114477623880898790100504131471690901752478768437375013493191782984552918580070789824733906755163778848903787779414922485685700907347340507853480312654691571812886189311440462864066139346635535772302599178124845436831943029595306350467058276131118608008151255541189027564705734456548697239523176812995078056768041338535926240003998024439003985522655669083615454118559034096617260296739510408357958887406548180062312976833306933464061700007429514334873301298999373267071257423756318951919654357833518707715922172241604483749253448108801605243246219866179770494308541819062414952519066661717375348915917093831736786409644628942902884232379199400481395011876469657804779720774916200780453063120146488801854522997555318016030767716768716525518158765346489969685649289720475406387234357642871971450198154695107899508001831820421975515687085563111785760944644333704230403602033405909153278800567123213615937068208000493072185356996299937991697555752381771803233405211036744835217874484657717831698080002108713013417727909936316286598080455346789271053523870466623052354742806514264716888315396692779079097920514343579777251770650116225315149605631151221522400150377723746958453288828030890264281663561474190618573538866614516280956295844616857290547135428411422863283223509828170308647375801952129536945669075320631762863476087147788832829227971035297912256343716898608939484139744239790710893300513554689523069659294129390266420884019656603896407748502278863719678194457370780385891920271210474187448148022279962415191039651380214407534171295784704047836575694884579318353157216210235234159552487829199182063863804338070991657356532356274362086916105710428302004736763012753236831233089711703962326056428033444649791424728345562228467268157621963886873022434724362332315063027584665966990012385984526976301885591533796925754677387304305506044764009099240022412952132243187872683664353599725024598708452480863050835275699678498299065255792543411375250142412635973162993189906088426629088055203176183617749198841051976339658227464031861308200082785793013995808198928129582094465226762597632571294795351408047534264303543597149819914242196323805950749072181092757746362006489526247587848300541276274917470499818638152174261117945782169329084842402734448802003281137143559250277955447878719459899637533765761333315352842072958719258187805676172328511659142310981075960238800445010328238195372698815548306976272115210809752648232602846561610313041755544765369162042677075919897080872161131552296857404535462791385834886931205689754366491663454905935808853485910837783825471882834734859661281950611191406008565800806850478930238667234127597374556970959156716312830172035423330990081665461291964364575458470248104002997548755777652676320057617975873888959883829595108853273401008927503695767585887466350438747593951639835366647292058662715927709940546462858895487326005197541039097807232855615589116460993917043103457919885584066658940762670985712571478874151609945018912098070904398307959952602439133433636431980934699601299719611406696081330256377722722729937431282538907985183471154287113371539660334203099001387409471392764545351462683401010716463012336493897686091507611364703058853360429716097661982730225773371457329201181761743223728429761963445996533882866790046181420871904647198626916937476297877065780743089610392812113299314570014113644594934727723715502272668170646113076762752531309197463187166536929562683657283372936442648747590924097926208379958565745836925403085694301964030907385536849644753352655498475172459807893343916463774336992377950456005283005074796406156813843107628678721034582121014670499363226283195709026027906653831144472042132718805403691250369385174240234715272926491013546007624971284730756279520432555273102082141283112474689607730983870250964498159097631659762281774319082372081461104070304433438784061852623674903450183107530441107988475106078680849816274378934523208793506083414339587657822141742250404338229270625496411721656192280791299031035133299303884579117348525183389937249282334214287727654562687063884447580570816114923567988329390675756298362328591375729472914665937598422278549635118470433892835580701202428790747483964487228397465256099129383440821821918213178832030084363735638572119823397139724434013325101773827029002504289998160115733672992553805716769996782863605783923081232843980670228636770333006832507962097818451352633919841311719371031294319938179650034874054913438239699460577300340423859500908833288541847992723796632387789543378807025915121972191148383021063785085390190238909709990244674375724607972203105400090179222038956319994595931367068495412580958026925119301565710064794628571575749868880865563564545041784223779202907100612213179611328060949862327119705127677990323877192627572430947330263191289878137532962158030973217624250816156161179994242139845498174344243892193978825122756505864324785198852109237618284719494549375181003417413345647956246486896299357964279924369456918659033169335016979213596536202660542944337988708305131313858046068167669810580251960392752552655571941233617129514072632505263240878792708319208874577923665809652854813847004027114820810522334798781730637106389911464413801578816052683092047697921436775372193612370667892324964922244238921834224326610160083274665631449485734393959525502638526837433537157777518351689742019406865209893744572756629318734892198096060095717221850600872190144908146351472643807046772019342416428669325989900865327345978384980007437723986779827326346537163469747521434529034859398640959896549889193489022049816598477455784020079920523340676119226195337599613909486619383323302825005997053200518822012590463149843955142098290529781098303908355399311716240268954087063755154491039137780257928257614972320709056316995460988491408368259264986496982237230647108757643821115492241492579014301666545591813919653900696114543426975814715457038353335932385159877260588846799338912063605953864406562532330054922762979784181233547046636190053413995961640384468404755679046657798631062137226938796989030416694594427504812107799799810632760590767024142248541222347190892717717819221981505002545730320639691087191825408555858898199628040054588854607862269611658325617266561817147387306818351185619982807020734479530948288412099245368298800097455192051989138757383935576189183693462482900689019158936456382249251673413257760749560095031035296364815812086448800020225850745164526716467292192319373906276679121414096584469104202234259352160656943757179994457222418329855323467755375158743134803161275925170310332378759175465824273353232351748319643016049573238248325385049683708999112786835025017140544510310546008771676817375921321158881441745195648872272808512832190499453323055164925130460538754597728126956928634087303141531833507679952760621898484645026060517969774331209944511276985453296781714481488390843288548751699373874487206716653900220180715174814329180289646519206604744738401929596845385792583642749306709119963041578862268768734445477249247988161996085653634555328799903807601394624021509946497939962710813321932267885874597879953668746571720786738219661455554610316583113802147658507908385398085048437696294438154714915203637637627102018086355886834573261925318646502055329635039497404043235962775496076883564820475247621329135337064901708255841921304292968412643107081337753259261301913353011511937789851596756817978670788687696662014490113576541076831741819389103079459482384899188915055681465347348528162331891604968668121197967877500007126836455787703723263649995657820098444049489799527742924865759387915410806577363940875636924346930365700479384123670871788950220678426664990672940472881546723490851813421721769987245737354121165292663693250408976468915482816115847019876898298999484779817332664938783638184472098428136967494911440592317441779021577129860488474339648600926123972838861061871746725781214281239134999643422564195923303634087501437534609215502248335404603144968877328061635618218122685158030448531057305551015658540558434748346391581414005684776622323808551233449629166298691175253014356943702174426189721632007471866177439500926212355446902005263308370317923577249672282773268779082970544341617025307265055689657735581301498800123427378172130396698001619909083563801229658186047730899857159134625943934530415592356606554844686127126396955257525311383024214009588131896734771321070363363635289282700877289266705790957706944999486884610230930068024250890207904871466592559744861702224272843756805591118703404220859004696331482484572195307166062394603350028564861050206979943482426876125429734112790888612695270431403128743071432847632173890150486564977581283026716499468086119686874260621134132928219119128187307004839374003616565740680239403187325107104618825839543577629381566852051793309708912740559976712321833027381821788089198716335472413949519798170312024092381374200883770184068170233795437823569775070623568499750320259945409607038627456635081032316187411088453306049507788514166677681479870256033380962608595239135347636584951004581287927535188082657734267799928895325457077132001840172838925067766345386018148708181400043277458690423290019082790447931611525268234362378681994061372685760907544642757880742791139515055307570961662445830268204728955622687258621108099323077428587162139573374869902107459792236918117910603847369672398378392988812040396797635962453099009875106646122392077783938369640789713768807653526287939880298075758524382424770724679036731977481200260934370008775464401978105862058536343809610176653341243174596257555261790885863087257020268101161338126792304725179815648844072270750653514418724646377372297755731913210136063200599106990528164374237304394461962628629545940187268075953896932700003883787315756266775113901048600584383508089860149130257859029676520184046598794647670906602854348930241947558958088064333900991728208323198256733351173378915432996724986599166915142187321812211514323024220715552319310812520233437906470220872880786191108025652044391035749792281243610133962258116992610075352266486623111479366952440748367367883761953125839773712314599854427055631182938919925733829652516356444831019925245135448256895649766923171425753808371201871955851440796173678534447037836417387214871489939589549430486672972755394549756671299095194375785622968788474311043653407433701601091758187388357802020923922274715057529170460296618252877898225445087001882159642936012006006727393988996819017500164906489338783711618081976412839450909686251124558431061338922197632799393758600907092977709282195157412984564114927863903070646384694212557659388432103818856499422123238476345993553857923754264649679811903919244413053000145297601993076014467760330458099489748302605803441292533371516726281652490263705978405339467517303669768205818611006289045757342232703923029939101548768264278789794164421560499825353596681476867314555230734562716496868746612484022802620464230546755037659319483485106568833025783823311178000463657772267634390529720951810931564630189013114213196567389537264437477727504209208495865762436269555539051674767536191880800174671954587541792339383653218813925400618797789358806042011666352967909817953014756297655152947937999210397272116712261909594722254374106099065093394252012380489692540908446804367235067909489194959173765236103643667501163708475661844650933557635968891449306115127342131588683614745986926367161403296559759824799111596705209576165635640609211514633048839133513592237325480252368057565974573924105797157254171636140537501482034113755824105154085739834174711210022134239925830804948098024838098314206249022377799517600725662895524620396821263839328857847209605024223405004183756857758804812300804674793457163914416914706953449511520660168169006849856850561677587054163728601463243335373970916309458175801342672956762722843749290234779547921890531901674944478573406551125905162620060756235804993900478582839285184346468807049999780705533721823670787714614614241930946683546672216976109971901917672083754819009250376193852726107048004107227136811824940517571198082671451445796561992682326305783474559146195756429689596958893898355059598114485997626432670120191618850347927517530333714286519303877281428485075262069380753744658008518580981330794205721435781674951119067387289023687178440242724184183917583950237979257126282135753281334329948450996503753133647769747337803501999393156165956410477696246374711858203507509492386723637649660453426883090566879102099403580666600298144547996358018069409617573837525634086553898682475467230602374986053119080407029400310964667354394324635722500493834654525047877840527824510821815834363088750654407494660662956888415257389069863369952161002945037765881596022279994872524836135015106010536007068771063216109923534831772465388174299808028794550381036193179443937427011051024128429510821248972909987645425609799404877841087143238177287736357057438130400895167469263095254620348360641547093006179925198605773801109774850112953111808863336459161898694067718357260562326493237584027677346926077746561866459935155547221705850876550842953263062123416394696799943571969235449903731045705902520447679943737279532575619993196120275610262468693249943761788287330848389285529633571605169455864337135951502647723827439832453809305207885188556710905192059076380573536236298997094186428017334577976178501623316271569299347982119021705221009854110841658761805342408350020508684461541586370615274063558550619182353219517958106520016659865433712568613405306983615821399314533100261412362087958622814725801108472126662705383396425340268141702310678199668418750311256220651648684506251223013773374215491008854594539314957792471532039359185408850555985969488496576801031837517277605365187419164895414851606656794072937775342780625635283663724967649769947570752600437716579328561409306865142202174784139630254981130821028949345250912397756304139752704942313215031998107168536526249865756915004969314055374581619288515273441081112515216606800703603371600891411623963601833013796630817830789732490088675061074229087527737148849013976808025466966512742267599126474479398719495499231377591804186164919948372921524066090458780649026237843543253507534526971340864758146904669569126202177087835808765774119380661421831556546911623402306569156461602134548970722676730477557931320929051282754450240659836663815894177483215309299719538255523209624495093613162345579521242521414853161323247959499146870824343261547613078797303725206667986029139931011040511261341697317143627477143439565025601939194529581275422019433394375641836374819664083931865609521412348007725503659963660269936433093820250114710077283585847437650886885612155110171386665582067067485954064677673523178646798402998355975067656743837541346254210308394033583216113083672771651093157351879868176816718128395486552543127386592768828266444794581488781779188294145928088028830575441649138557109863333757954977392641458590723598601058994077596778218360489901710133293967312091482715105951749696162049497893735634916360103801608109884765563693972189869513307390464319893541918018519784005021966115897597379819045848739663449051771001055916279321013175846238977285226110171249128670975633899497273276367186668422483745193025344634958401754025661637525246651371044286861006486257422774503895438540617887824886664897917598188147508988682766108155433367035196037927019477091881992508185562039621695087572128313500025391236727727060845128526439191696584119622102074628550416621831322807876769509784078855575364692971201948149578216971365238179754244799476474148067031829246685291488519167295229279609769969953948510651103086200787485707514012041748428031743061891876558281965690879730557894847092080739516770476601332423407144731440911733158409673762012730986868318268084315089937007839135171158729601795082955198927438362652850045191379794000255755949530446683584561534180209440327268798531678119110802249552808478906684986392801907545781990921099737192880496246745116586106631000478531538395870765413288687415327756306205407198476978168828187559940842963661690038597898274472024762571167145386060950847506035278377985727334461796232777648910427208480347688049807715456383659123545726713012321501679559845797598753490773011279558664655598391164382678258149982889273147972498193418969165977076668433373437631249761424313519013181333477400929130769648432274124530105505470066858553439286574730643135979993256331531428464996767298404833561592902043433473980888515507965003941814953172907521723672448620342609658714139902489020411069359875571973571059421225421792089198247627081526449710762848093348138400192396959414354086750641642863070570012555357416771818808953078000277792415038682707547049869937312508955088048590456881653063756284373800841718082209805835021660615281190793847950765926891598059061961070033130715248855982051848211757518930826189780187544624836046692773837424085194151397428314264913303359093731494442506914940454653866487502099008437255061470410879663607504166567509969786101743208320881528415751349505387848686670765391451179265962589533365151388615442061714648192341864689980880803309512626092313053475026286261630509437902897107261620171243529557067632184941200654568750651895288987650741096197350064543518394468418442836942324701363015646995491857567301423606666516455312265899543820172057602439193900468295655192482648025046543457083501169672924111172150575672870078708131764907869799475949184908226495610887754014085107653598228269181962635968308592318697520867276318588653184831356772131329474663466766663481587085308415535165830303879978026591466180519677612119251097004669414276412992073203265731434623423145050305534479828318045163920271281374423369462983546019762918369511048215505398231697836555977003195065544051997573629053606256135857265691053441388113749317067861161918372827455708684038801598229821866105644290029550391987861135137617348405026193597019182406929576041491764790763511930932035108921563703660217447354388298880691311755647012255542523427367178696386657152454835105374473358148934010286910702545994259116217942395887569024304196000633596553380626698228228519743094855574221283701379734478674305141744158869578347838121544389464824068305071089545825645813630837896673473101828790612313291855848820262095394087928509251106173096147195603661945198593944378032331658413936108920503102617797588241204666838733827739924463846039972072022746240527328781158993271576759269873396756314363847243248414093753132373897555337006017810868319247605796594332586287237399775121674574842628244412642830523537774780328939082275777376038233251290488519389445824558224581766271296984303817932963076457868096085819590391256545064723161434160872512181698682099098464302697385263673308577147870538297442096923680592327077845557170873829039372043697768865028631606213056970528376841403755952445417930323764986493928234857952821477899877716277264042989858108735042423631312477693781028992030401562776647795073212195513620199387931408664675593112154365532737953943340896892809258540656539614902536670605730118358328996768716878395878807588286124743405831554600411155727201034648109533479712666787992299667600719376079224217314561850677982760026012336077880218171630707838245675542041912676695401465267563623075485760310937225288381816112006500800700261318074794251285214850423743962050880210114317165646557682520405954470557947290726664008762647772102496541878351812925004489758383963287325384315164194928377149124517901737844992059297081126098492436593684949258149148369668399375468514261194881915376395618365201539360946458399151461590451667797126505584046411746212089725437280443119511666648707806513886575661337361751872270670020592573608414688630206708056056931673080220950555736036951374765199305540421277981264588953480782519941531641894839735864981169753996805192373697936488233122019761087473446890193214876598853185171066141725633015950053787791458151403748707927961719050065076623443538900929824200539175114280911621612705292877663733625535328569197620676044725840584155836759266173485416323277453554775781356581122024109206772629227463594786461915756525040636056833622311123496353676006334238528155892795465115803034154558586377495717334544008129929148186086976628058699879083098341215494612926376331597993269684143921584428922685025477743751762421903557563173657456555644319437294832862803808627372826715493117607985045583386054362454986568011570635996463671489780879648772581083263077928222804888276456008418523955093654120832140387571833376874967337444974325307835872849861500511516952423450807491601685301673156570113987265488706043851485457478326682519530095138816267753547872184701933399605972519593093573125421567156864510125334876129355609824927276887874825130363951024989731535276633425648693527134393421412271849567051680473020996604390610851054508913316210008789679180629516886136643882406150556361678537611850364723964780474983996592350231290472159788929001028027124140846191749493282123730314478006861337640938669351760627918473946664827475440716576572050311567085605652653169042531770983808473810409105902678815168407084699700624578014318604834654283267302759113869213026117532654372822516793079172153290639527325570229689406346597347496135531213159667609765772202588988537859058669402807907984519144108635338419516947813325242191855801121166199595906323438140671103982491146922544427923671416910426631494818942667379123698754068683533863242921610630253899561012948347028227576286569755296402862903193373232930474648768606492130679712449468540988814481939144908289122626180483350863162723492698921115747613197221157943785210274273432312566606192831829882278787238655628969803299668184936090703826454257899681017594047059133534548000695246566081366037606819038511774196288078752926603357027723110936980655456047097269010098703551407950626833127738289265258879752255213639421700599482445004073667914702250763533897656743496109483626796200124984802708224370801679841574257227232425873425191009120443195394091412508103319883232661380107453721652467896194287721041481077539573449665228047328713734151167154979884584883294952135595467382048229817083612963847084167124088512903605810397210159790403467849406368737058789956868104177131847508874183205113510969237412573495066731401740762770597983876784794386218414036983052073282409357689448286532882959452381056234142503538436693845260757269187293793777298714286775438232373687128828267065257801825959677031647800373738645797104966417318152256220090346387666903089184149458316361922615163833726054932679023004478137148776869183302877384302442900343796804256565202510378123663826070472665456378026115460498293097726316506850213507213698312036915928607657083932486292605870205726536582199798311289734104161762696535840407783642947776730434689317847240847727878664125958433837967013409476686768033554470801711159118204450865939423013765190298028750216937014507055888130693188808990868568637655403348703756416111261605895044427748761597803800757583028521333499726156864518273096119321434791547643806972029421333922002656542777728969297804349174539195786212147988087648708503986708260980854577690862419515506059602931263528663184832863447426469729852991470379077983706126326546816297536132574712623490726995901444024590811023968925380817757250432122555710342115535425488530244743721940912778162344425303301519072830124158115310418825352195611131246276682520666077114624976280208268548160904652764387817548961125218322288377570746108197435391242717341631054383989923172207880807202453555528778048360669493671587563527053183681644155655237366823166705574413084974505352447911436576878433454274573005173171579528398997367839188694469625244299524872536906066324785110126844108170042752002179656195680182053182174320992174711226240467431357294735057939827171328822713628123571729968309299012583687602715352700057224237782682073423610244011328452062342573961905105581776514620201158916533999377644124536078798135342395059605496996442046356365871276592345763677971494649193248293847436647008655014225996626656247971818171182452711903391722088951577289253955795649029329856158962859727411716872122883071085472924524562822210952601553549909437489643803861780357597404994283393884722671215766093947439676219677675419681812256334501685255756756411559018473867706377439930101535891762902182590626586819504452989828447508849272832908290897988015262316863235225353239400481947583744395897570303563518040085238591918082159222259760042353302596206165715616914073047124919840187507540056578340741841469104936237570186236491849660563280025653731442686472875289867376473360467561667479847452654475285400769659285570504545128464096637367942960081640064857462064216190505889629370427903792970448301399585751219324271394599692092602454399863242964165933979656208966835422627266763390992549922536967057750545699757346927892162420338600442781518177990530796421537430965797900625311287954114755611985716497451787962957240877050570307691071467222550019788276703111042800639078251943388210389959601975399898188618439241787201910405834623230225855043698575034402100973238536771040349208334143538202322998452459149620956775585004943448276921334926112485762600828149947427188418192921501330285866574209328168710590578911695121522870867608254631166340084174649826957710469488263854470779409867050072068881457609417247811338539831651265133772160117219079468648398730331502905651444525054840215496093108929218146188578167142038963851727520048831690836339254588925318242968197152191476650533605163236292303245158290863554510832421010128738304156723415446056245302941149542700901670734950960956378566386476565765009249983071171784634462081466469665186083417084884626876521709745166748121716018226807863508783931432873420491564655056066878885185631367311913755919181882692199277173438969164475895853827167677410702701031234949300986426487930303420234979565255167934823623002239514197663752411752908349834504598661168413722361284296960312794531298616876248097050975618090106710548703614224862724911100951717279756612210814776848654270246428402980755698827002178194795597382094248323006335515960189727402568247320001682047316538823929293946000186223175188165633687827821595898876733655072589469250339178656119081916269805102365644016484592154845023072526554647800234739102946727147320586303481585828585269657288682058676127401545432784818970130348812954736311343224719921296046217150345074562212101752240579840899288490399388271436490360075094127234478649883205210627753792317064767119490267597073376897792330789644932912958305081493155034113663308252723716103470373201133030751222973826261983484339761059842149392191502954493070378516579695199738684598303227135797034298488146407465127282126134902263615051203660786150573707950448690203630717695868999836269374296646628325302645212184888882540621541213897713162567807354611071241998411719728018740665334695635741712276952019546648466247900328483714178903661987190702499174035524801007326328431557004924085670114046578829153991431742241399574575890785095719840232165617008953763281651595799080007465643633556202167857435528474836654713439705536422487638938657984564957367808564750038948291214595738134840644937620124223561538225212706523407834965945700095605835667023041789578577023316945077536409307659331453457824631892567491427671021874153014738729476327559458796508643041740041526531017591980712513899818804559707543125221902149875407818869583353547901065487228244046541185766741396652463271069046022553282808749029874409779871227702947513055684066779324152781001149566430721419941603469762521677432145842839130917562968915706011318839388797157481392040546892895686550217618019594228270365225026427407444243115888593089197717691113721186094365067143016760934035311075568459768219898856091996618574768919418526076946547403258530242111044296644463704096147152774604929049042920357473999663863664225944226700515247131846606204465085252558465634778002404686569682564455002332473183894078624148365862406557307267659655890924659805003979568867722632365629252487760405395013727311397756851863162598856650315840719578439918002642045411722820057764628222471413976709976053332750916160017996428691789260065222222956459275043374033869626358225071405236650268473444548785964699519250118152938146450792319862056453549944923308325659493434715059472630549907073898546879978596414020411336721488171974945535102103651266277791817315045148514102871969468883391707270155716405281725134812310106193538397363901989933006681144288400476910302247281990764016464115904587604556963306561302033986377351641804727850661788494600994790255682267274223038137465207912471715910613477601165051487020494604023571400430318733407697857425856908486967856320632333033526843973281915409610283339832892140038293659876198448319074313920121624809636505333815703390685560304725068766793018010733470828619014846399885178189210923178788251574778718340623926735081046705414666233054475949245963303235463949428574729363238387702444782104420703321263875782382081595014112002588722482601012427296543408072433386859985294875136369101057618051591935636859444773594179054329516820528710937303667216216264860552466454283878852924336616160141398056254787582351487590438924885945693818334394328037697922979522207693867063275076259655801183962964303786450855396900174651481110789012310216031654837218297814514751301698950414054320865757685707944814156468778114563727605418951514050843376854655607634337482460158235352693236497503484007053939740843140816363626358377036427070486816148626976510651709295051152756068174515835089635966131082324442930411860214213698875848342171535806222147651233456377158384212815100835208153302428213883841205053143621461099647498660477303833846212407505591986447170305922555221763468750141650473773756014067593574909613346857758668377264237094183461756567387775451848747366532385831437583053279564315899709935697121106392462027148207068818860840423948513325236143466610821731583140263024906358081569745476255875031661575371472783252576053391544208841026926335321281218932259835345133180117692012137514462739127590521673323581138155210927811823055550078540101388217414350602147063325488494371519064043365895104922415906576257591438089454971032634378809600466881485256815846071812199698786488747369840176307361531747221338619644007292229036625563545133878285484003381796123319373989676020677378243028788337120678951936591106250227119058626507090330761205658734752041759100528550204960569990231732968006580183381234184456358013830963092491236262321965017943859812532014462280294841139437068747329332924725773169397127147455141817781041720964580951241933381265896100717539094205127216343253283545468157968975768058161715918419756428708438169168363873720035321055181849811465606964392552187961421659948741372413503712396813640987144896744613207093888106696129701466965671470604361630545299617592465035871334685072383788492894615762725751897144095334353614449506647606640494305747172435601331596838543521093373873958664506362675726312513528008792744202798128654511295795334178545878522272678006929202100047843824601088039391158423719399802873755500826485956993347048846422644901116389836976744493128951296591501666957883604378780395969625837654198766139580088325033429664415610587353401482394869353057124413454276710814675649595057896716663498069931659712590281898675318636978558650520742449041472968814804913346883591925466848020281740746848419644640025381216540367988036690788450066491827582662718624317662011760906755391213002177344585150214333070096067695521411549051840784404641790281297970503227560192544975881919892304288454821844827589472929723455022792050944775306088288220537017561724888552518545733967819978721657789319591856186705620170485158836150440189172878257964119443548799334572535420300682065861554819619157111819955934401092025891912386956882855378001858970493543235658824774623420413388332429934903183607356469997974809956538706066969817707008568827513435745459860937016914319300634143887550983353294129540361273820513807774471755622102014735507666212368591948037313395839581778435184875470114893051903466110945357915622692773509829064701280681532650864681794944451264144984216954112328272361361319485978299043460387212629488591878228177851635171318693322518706136559941410021287021208170273474339616372250561914395212695893432348823976455127064945241858359675206508311408623739862829601389895167828634079587290759683066419110835711427808937508786591735482431535685027765664095924473735769395856161309227145700428402418094993845805611955768540148281761007863446759121495826623270723040433067846522713308459393917609091767416228945202413023759618557566315407706235224297558768573613256482956816174254667649079433264129434698894627746689293030538019065815088949340899809305276370959130632072273947826230312408098471529766066051566317615281938263071168428590659861994726386253030055592894532212363633216081669748036176428355274242890865003304569402630924807462966095486935665403703766255987798761394903243406457725408249870484253964196702692682677122056288139712024904496202974842690852238739298583711587334299635670573836478146532358567858603405374121565939092812001301398679857388157065010412095444736709258092336741602456877246069857174599488099460313601003339895829689254239518844851695267757868216603552716348494743805903049614875031342714891850897590528748909464073500532460226972916679510882070571769620011563138793531777920646003944432797291681699296209562931148245593995612321372784260816264431925931027088303727955463502098532490251792587779771423733388792718904782310664621162933323804748645904825796605822555702848888854574103051322496625291935031790335460832959060990280675602834977273769411491288441964312001161224829308737955335640784588883245028104049929831222200338405712690101260187408755868740111653759563328972444800495589629717122089523907637939758480765210622496334050870042782055068495918553869023816999729091358456405848438954368256426330973983694518995742771334938208053645201983758725411601582676917653000266436459565993634467900584788436834224678421974020264464321745508715070303747871810958492205444934061426159205465903714754620044528590015239378711035801124490904402148916514595575995015253997300285820731410440616793837815912260799820772472377296461693158046193760421606332124008244638568229382825832845221452151121005582489257181070585043301489405704925704499090830589502813557811027917034614507683898923641889429144446185956977969109885770759110351325843557402304471192673914749924402219988279762401281606193621903453157048768305591701694393607998097582833211103735334284757409088342456760784407398035283523027420954968182730266949329947020282760886174325432143431002707227751734275296185419384994024841898257769133685979334478522661387760402272535034628806750131186164198250012457675678197679775439733265979499270579616717947657389990798534545569402766146131201371122070748337807345738594952476089928607265143589620937833418406581689358111072806944195540301311240685690843876974769505919615949954888021325559049340004321439940168051012266438671699129574038608234650971306386404373166344156423734686875894750677373276853790731327153071572314760269424453140654082697703908240190300061593418599978313248586730884172326220217562274429211300626507616787317704485091192087468385194898037425101177689342521784766206066685850454171126225047085732337163837104490259133897078547431832653437467333314968812280997034027557968498834324025836296566370237270426486571189757141435176101925595838557506570420130282339110088815367928680521072898934266800278774186087471646529768371544708353770592984119195214382884941114357357247795022726819222242621765155925384392167696899030399631511940376821182470910877386527370589322960817462834825867776420004004099249087474470306065404378501600612475886080343601286752646811721836390859942669758680971325142715495875593861826531250559301073209297688998845768686013842539406325187413122502678943610979611350819514896420750558114758496731331627465481015296814275739562027979413957350366972076969494992920389024823371099224584430017540993008790906173236126305031192145913177497804355757225316256634631001359703533413634510533286177886264838771446054219022247168591405279520293955840088803000564276254545950906668637866832618219921790051987243607728229927122924701280480276694456784588936766754941731765403472374949507738983777188322856071856462592111321598174302268255186877570423896730786814657544684673065876030918533689366544577610597707967445253584010259817484739104927563906012590535012708696820780048599868163915069211403826150253894241649873572851065864747780592613045687666732670622165365705913916901508771865054110832094843021793254945067248588199737447566932855640663708418359484623771281159337127600125636435803615767617324461651731428823029679615462114952936800246487742118662271993689412403881577537675643554901316717369629772769165327223464807666750308774089829559933500532788575290949409301936648666968062636685691507471602788053920258728205040822886058818070479050378489351952540765298370372831884876859089706421233978078707263365847155536624694155253928997294683237610567592822603028078487839384989834525186084726340261839616523126143296911885749132122925884245890095130259254406828020364138195615026537452726845689240329195566078813315650889515147812381824461639097597134763430175488472476937073489350673336375179330177208775164913130786276561971325757326500345144159375970056997334545317371112670445587464532134586074184882940408371533346218423219430943927829625305919853418697624862541199393211288527059285010281025370912631790700374074620199311543096380445293288059986084511353175688757232996351480350463167019742061723186571322942173816789518611784507748100532420678427643987110046351999110998527951226192344011912925290379118543543760291314680037401914432532612298282483652512952091014821914699326705934545831507525368884551690321963333581210202611659314244994480551914231206224020776073367494086675056431142195305797817088124173709428932499959207251355977161166913985571470702805486253442876018894117100643904806427007306977132190304904656248077162165600752424938877185698592948318210344038634723447274488516038809842322273015666143256867590115504177783953866863997489551213896838766123057295766576245513889543406497832293288400201778101522229794914265368269556559566781087927288983946126295050992055979802684156416223315527422072094519584141421869026982699306428753081626839213671668125154869082583381763385169285258087265674366675541437706903405240196405559876768332153138982786780029792001564261408068243950768387422178516541970062318059304010077610883135974901026472799664949485993549892582029537232599863643963402054490082730423628630106952545234175113846258686934676550687985551749653501308473843317889202345221185142755607011292416536320238556455283457843345306434992332770182443450301004660206575528843096665847914746619017755041634350427281248514233254394306111516017086368288243547687238484338745739779913909288514945953381475594204457882609889519276316119182085880971550693598928940399072539743980124425712461919614825106170603518889975094320061463084504729023841404569040271648694337916828703235406762071540769953441997279554943189442680742235447360992381138424300400552170535995028965792529210409664517691154297127920786210466285891008727033616008652401541013526593408158130353403365631640581811578750193885694126034807984209761468216428368563705002505138065920849699532824542887654805982116358231583319224201809566172913774058369575452821774373433631494953083925518850390144693701685724252054357794443993518770137920041941306821945960507142208384326304584548897483865892264940404507866968916988907846564321962878495900601078318941365975088145782905304726176472237155662433403741543436778245255347820361876491567966819954479201083651371082517653986468737521231463394745131397906998713862579190127766793182623428425774840766433856737996361004533536023654244453693779069790206395328175440712981778956635411330393429925783807820758922944102758962082068608836763767817442426235035235327405222501097472609905375484940330619970655722623017729725357541484093808137533508524257093376751237956583104792505269366551869997116421175380529723272712682905857899423247151587583513681717288488463587408671351957887726082817850638624846277542322072026923124928265882194163298614501221000514022585241783260367772899999783264097054436689760279533115318420831311065850245925093797859070918904057884175370109240691243534364534137167839563736460083886799453645433278739229443971450351191530256246183638230764557779875693132071345250810876548308000604656235109640461771484433344560629787557006039032701456781375874013269424654814538093309002070464130242822816873134370043561846727292287417696312484821500333290536853619828511413542065877063058590631023850682368562872173465194817658880544615307052871860285885058792943173034484172742296776428067010741594791760544536001497829767705804883918024006832410377176827030220464800098329935839073604604657919718311553085319782862135738765487084225904902680132451805318529737416092020622318609698411392175993837772134754750556863036335726468024507720875692896897003140944424995287787583125403296074956846009899968652139415457460374412240601480915364251129349632062045681688081569383663715695203416397307445580769375766016593043399560275284886932338624982405536164806511743850631400898377833089015727757186680614675558070048947664575877514154007170960200792097923777510216736632395912917725047385489460092176240061727421809963541793038108794231584830422357495900153208843071652312912814103713113486910016023335965297703423097103524113196329784428736664355517812021873740864859565417960676990976271399055585974347261443237319926137066619028158399516034403236457321683723402611738554859110456606829550963996259406159885270769968523115218501758438595554533852174907223515700140910286718174238895261611726042968834744720295441666621393060212749483443319143766392439071586005171571509482069432773191974900017002714168552888766077158042992198726392980273438667055944686690183785476875973103960743140441857521011083237301019529262840825964678794431165926643778828767373521030260843265768507705594774928620528704943969304461034614441667857374019585819188937636742168178712565828038296741092294179390466628452465568436276886339697779371425370412348181082303216770778005215258205591729832922536053488673673073417609165633285573869768697113213622478021245726334592751647967851289362261432061945572747976705526463406596993261674560380974053609714383072597561723241209448717341792242830889058213981093713829528677241113262648747789751245693994621544433542692223800619544832092966385977211706678374373940043458547775435493149249712311628574401924639686343048724655011046742785540867091641767310864299766552463521552956339969281123219554702820604746188692994986284964644180347010699025756123630937595105216701346737125124575639887693837159919907805927787404208350501702877763319310369053187230326468158533887746739614164426905325756773757300133249707131537983175806682572391609461730224483650826250337385999462975903985561704618653441257132486956943398175938858807367251746482580576889483340161315577038471293909027947626200084455338744497452681588272615384011855796207883829819776381130986506579637386160027012075263850138130982243014264630527236704952783703961746736396282435176544480413422952755336962297610170785187920959066541956223271591561124279964882207454598569400114580822513249034329936631334241613438430292281980695299083671451200901811457857804494882891847336046705254766941123352251313121059692247952090879916079422436751353341930908908420145760671378652373166214611962975611125355921364787613372481455711458949043628797992639104953101056580918238835707317934040792785420449931187736645529810700295080538680341372452621055559012255872581637671073847726677637047496260260143378190292414159404568909859955630277369319373736201960748002046297442378979568922319197646398125187885926429623595284919787191221347046408958600595623250163902161775783849801600725027617329368319929919361791643044594765915886104870798096258864664145858804193396031654727854317694596363185252684450517036672332946789730056968633937581438996841075774757051384883092064842328139238239828068622758193855419822547965670031155310819768116398863468926163596406376624001197759119417983092174001060081628229668232774839080266116805354270441052258997220818184546504197308398458734680300615293045546964532360285751655284017300783053941667159158738174955260023053780664213917016105027727793881720942749801245274673737064366767663065300705611087990584037080396644465343961307683786083863076342648232224477724367419998865255715877586408940789900635306014732592339603164101438372308900503282847131203216069035125251544690293525098359645397153499265134078791273213739940182303696594705195339674850292055898689467306589458597523242256399994464967912850605144741114995049046617470162677503879608906234287556099159428593098785024105626050169019304143979776671475357417584924655398199993413114632232537381981751126709325393389115568942901046772718638241634346897546379062058420645489880181451689839328502895997675937662734044976721164469801445248764426971911663915707632906056981964243625923918547600928933734768885545567333062762938010544435302473527341538619198685812879838931089886010597065170316809422450143919076301671607629247561718264620707146047828416012676079666665044577855039791050582944328266783507819499918331108710811166023229854925238782866993408384275782255096462676002299752782531342796252787253236030069368850267759124455578961988487498102592418976099539641054484050729650822332724534769739594216490396965063352203355545352939676847020726504961755336742048450492187390670696344984808298121676812758029246604639677675063360241017730764388281703160203477144131268375024096219551893440651865547555676548525998399308966067874761465223463287368393610385420660006867780540376320633722951571620506262889664466363896382652548485273099282375484254835155409694321294428479379130012748195661082845095966279106926957221561075629811469321885380752982932792184050388707314468449795241735192493431343444559323198513667299111586577436611957392908016260699637326763279197441768590178371568366920805230923682199965239919987988732204181161021466616032041305438000085510893965605550512544543250035637695764340409718839314447817104299844272086142763886754513766765852302529723950323956749540572517409697523714056367201416886160762134275106635574206841263501089484860080054601320413953640580290115215155663623870785835534663134289711256913932632516716238957065085118705578037463187297686669173111157268103247726014673470292061033690458976002625678719727450093245743265822787968488096205365706821285995836880526911530172194537173759755459465442370988283790382569271606049997581270051270572449283429128406611022957740782781483312122702910033502088531927600200035147457077945289112501574734694145222242330576470840665463125760468949927183275478509795583383270189312316049365556090876737950037780433921443647774561800426730238130585273232738869417354814412114189124466473165651790402088647811731690287411984160518002034902854580981164345231754410023998441506191381943142699649432421010389156548508051924265100618801728216462557856166928293586598985361982145866722322445774500014523727048555137090409358316880556094321552428541266491182298203760992804734173863240903648086804291811811040455411313418060503094431946197289703429320613752729483027700477065767265295191025279394044905500503984644219460008757128692534559618327242714982585693176491390845665281335735788623090417050357516595020620052108826079618472923575272342124784973816763819425537720532587960117988166897757288981375195137384589620916069391363211339816562042025637110805929225748950314680085957432248491767604172772973562319041767414116806650646391431663635301357974070679472956327336507146095390929827622495379136400725734340237923741175770171723101887148341138524520646929434315836361201035270392929294295561869329667840326631420406453367020135163658778293098682450739655180439632790718322849873513391635791039236754332788418599261704956583471402661876391975561690439882975690744706755981498037509291314778600213314898437593845539867920843737904270224769062019063778259457449642862917980853615485822044655568962887855864342173736442771378949854930104545830216897626756843404082244174773360980559560076934316534408637771739981102736725717206102247075793773386602045209099668090934176483518850418010835362483549505666807456485248401673007228161265755955029824420155798775468223507158608163391100031067380940073572044548790918226185422706047979444369273575790519201688995112000925712751358564303826768524842917351304055229420040431776902425902543822370623971852723127778452647922865917686824842844676581505737160826475274656687470642140574395286395615483171549629476261762882169432153647331106399719085663746182380182480639045307241228610150855367024202527555776219559307827741276945078132143560786459586457345172044134438663732258775368808302503737323572586956394356497887580158495285516426844346599130179720711353322683641931562421847793554727502426659286879725364307390121876453025934858738265428167361685180838657272561166570676061950053939397488616647341919007154928570731657745718973212159089244826381882254846445609205670141916498981979584598674615362353396429663254250585989396781306902704680943796239472727435566521480608036526824450177437335144469633287757441225782449905482612811015520358967121714545905559090770326173545001482087762350080216554375011762812872451193705398118950699893501392321641071244927187851716992757146967846982066804464637676304165030140148120090204806417724653024132634055606957272276980503197401319868416414318182702774059948001417094659518351586006948198893071843129154292741822986441141499295989138710829379062222960624023778991412037682632755164398401768059569300267144363395374910578132987000236369868014471367216920200754948834006472705326003292007882792285474941815615809128665167332726136974167476933735674009391832649379626215870100929816640843461347452375913067175312161370567335890137580792216501439782156053641082216161333396531827188070118762872077776383025311101052288336668067517232171237623440634759035331120403862644190307405567769216416054470324171880696571971005992308867269859704867823007186686713314247320883010778012171537835403550938837736429008731890816578891299498332643368873582596012452829393901841812678830714381104775483772570001675891860215382806925890882646561376988452487709879003063384718579957162614592224229274316221878463399415023179087468828460001637597555921891760076566584263028616608157261567151339332304224600451998733988155582483032478315048469610979700144206914124981262450860553514690188489953698495678300014475244987200362837087725649077503217670587668065787927992588116595803649371914931488358440025754261393670466332493296252414378167184564498635333091560425140590534315927156030366604024350125657685080992503318047307806238562691931344115570988250519224545014008329676600618480083843769755862961638504982979370177051310014552944907711857460319099399426888858089067373042386288651632719183393403271397810914759799744422264353071858876526882742320754829551389477087282262977875994744520994262993941238121391498515185866888236154804252188926482298801659481464267873471514982820573203071873602244750436239389253686855565311119384790708897463638431484392968273724995789459770083216595723633376042224664259094787650324251533647789489300199840012935401310004946893714628727620675974297013422927678724569390369199081013833128593117148102836194454673184406323965108757512623200807660351846568111730144370061916171877628823651073332356710551281918375028353549225154263700767318556709297933656557395516627018150958925762634754988507224985718900385048729918329479109515608699133967722849032285233846559028909412294626555101680661329416809599122844841638397439375296214524354890505787294386794128760377195801272184980555072910384800369447493509980343554497865397762181362186392791847343434787236361237117980462603596069381404906403459703390732312774260000806925959169384689602293591814710725371870009033378151895231365757294060212576080577632604775141721336665812586428997632618594008201330408773083183407964439029503865818842762866160067365982241348859801245338198295925161418365952964720019675792015071468189506712966262997247716418003309960553589520857670987207984435232542999949618164541927980085695360861895324909092751932519464308812066362539087746087883913508087402562783176988723872418605402591149614510365964457859152059403949347606185275716946696460202212320641619636112883328611023108977371925766182556289807048624898372432469248719937915919156821093734715381561560083838142125684867112047891792040096070373533085146096614792296989312304488901269719469664602421222919076304453387922145815786875261957896290528239728904232090278737820300808718771516442844558725613750206069493607816013122303781755835440560956309430131017112085040157577683687324065494991004018055270847320759924226817008770549057980807271279176316740317360597719323554152720593380686540012177819177840987335012964196540761911910618543255645525789035175628350093198171791151974244705405285853418962930894221944583142065841899137277249412771162732737263805726527940770644115123949684577993131616690105844164498383758968078604794302922047021596890183365545854165722610356210685217800100120492089990969108476460991899766442321918846577598781916305797076528673920061913863397260249603020295369857888764427204775295368656456917605012775098865719401040868554666530550419412730840863087161386052295343849529241265426734649380860905146425494691400437744769156033544982887198826245783266521859280700865777923747182999462613363753179296843697451295112721324885510550709148509177675286104332068952418256813158306635095512738780594349581392552196693397307344983872362872571877395592502360381765116506184780500467023182551913908677440683392182135710863873941557779692134486590664893272871038285601145741273444525610705936405623677638834331277046578896476264475833647191301977636854565112456158016353651582417737918866733874350135781945195217221922730250363641503422182234877955561665155363557154722720357329797764542852895892805643190524077206251505884922295575191960148849141805924675325311239296027600162703195320641469051773026741830610871242259844367939207803362316023587423187431484768880817963428390000709096641524870434429620876586544546792404094376730080402841680838622553678378146483986000005027875966139419115794816161602161103408021303950136481592404844661305194627948546167160182649724895083356208465052433044369214921567418705237893150802935941601570842120892994439492321581547661004220916812029087563601905362405756808019401197729333259553161461271157780541976269089666656516305144286195584053994981468704782484072282486116811662494169149557079541835101467582282690499839826971446829549477536333538957218089712866601227911961123355523891185989225350425929608089919355677879871111909790446903572945918464675664822944923406291002467428776347451428703090830635551285661311131110806257907722846880703195964999466674576616758963477817214809304471652668787150317446556598415088422071172632357129971255752028036675106196380163546185588573823753350986557027618015553993517442858785263360151194965849609149180948095388506760275779808513877486000096235962682541903843005075077617210847844482736387910448007943049831513868995772930630884962975192894757583053838371200370619522749113328154927848795672880939998260966601752631007744696326174073439216374920350299088520107464147150132367300958210586189942964579485413755779456237627583793463621059209814420322316156749331311356873118653759679890972248354237169504459625449495578504608210130759871575747832355164720312461798343623713960566530396211266920921578579800707297090032735293452502130193272460256383973083624028137652349992689729633852773732382386413954790545162479349107091911575373852453136835113395088178963503666467154704813691035991327110095507837968265783100953425522821303550578658441590571297044923658569675621888477477142721175571549685706428669009574153380540190687288852537848356675290257397814259346892322687282321989320210572623101861263700327056765445147911930823693703348603627437300482379173959417905129936277948488323302535239670229701219134877630188073525467709550042957060766427263045642477085610848361778061202929342609874586861032535115738617440598270394319668439624317623114291759083512454540562888038406206959891899652424713548169436947289686958282465386122841770255827036195982989072035718074245362902145155123184286148053730308869906578790311840550574694542643064487434436961452592295931042793988685242403459927966932847997436898394023641306157850968238993250615301881311689069032254399895439857375578740284725553080373815806451354892804579861619423132804942282776507471402490096579781805615383112706569539006091179729831370730426190333065038302757590962197736341375992532201666197265913090212866937848628612619116650080995579154764206968730366827341251028538470402270397033355405913520818725019268254515828347828376267659174272600221208237347650925505777431918988809416331367993945380033716198303699995423597734930584532609497727045234801775150040198854865836834735337065750443122764590821397907547261113513105944796303292152058043324047708283905653665974564915415277457907476552381581651546763200521064321916496777461481352843281464919876939423360269604716390317243966750886680622481108575905951100307712877380910953882549331111130283855598779321473795766569553537947244358941325685669624107785433892684257548413311031348442000603855839730898689732836497392695070514618794922032412957807826530628598387475196596289990377340525037719970370534036236028389064070960258721964227175754926535413553717698741236407149279302073912478327553256746440067694465669654084230847260015942038867833736589670039979593592141342721570649985879574463793562292643967781504288436158062399257898110351723559606733840418244585773139415245125153648399909227633314729030330072681141926049305055912606223382912119093245133414850713154284180023832971007082929838953439002039755725739646103669721550134824999058589414959718419068734729274029678037740510334586334205673684681432475101713334541511366486036847036749882511777523632892343763672675953907521809253992619797326464144275430121005817647415505658153126041445590766642038622767365790901542746074627073121722580632270902549933036120088520389829935281430902420087200548181485433337999391328861074364022288937537723809631190226728750500056651128065754404032142619611882650498104493095985955982255571292375857245728021666078773339649230543841401154057517197026831088501470734664292579771724423610822372915243690333452121639591616302581297293830311736731157895008707207503604782101821872167727023067434193428585400725585244354459312344879495811446105692191047348792774161033356691342180204267418327000896295295368412535771430523888439386387294407914155570630672969062778323535309650843013315025361164566292051963336686416551429369756013233211038010233146433184049528174855250256856156408786650277191176551788509304761933604798980499121926026818239998513638408503194915601023495877703490016073976683212299504313983225431996668144808748549283867652772847855374735881122453032962863689321149117481554342124525300426637277849339856212435820697946747049834828652893848048945583444742335660669338231967907895254064737016242187553347106402759857086138611887991710956861384221925181929994324332887035172832849785539176901590945846304283004286865332230061922093407112765256319085947638882898501241049918099091529087853981857119343951798853246950564941739735019626234511424210476919631472400152281790738414615599347430356504677821107685517203514760279647329401020028618723046951739266163307664083693155012670672613931682365281522495072597842755739341731855009157301853703692030704836374312818136294923658195158990101605039649986004153242628065166449059382076116186051988643738341349533262772813495390482058558924196154081659066768774472126742229003537297789777014784258939947093884536006249723872060181484002295069330469703105798100210909998342143899249599218469297689619726959516864044026872183261779213094797240526668896609569752363064580442889735238970937127232567813377519322890782875848878643304678189733027273473843768224256121975704880909091493624409468428947009363391355878900299188698845910421758422017165827695137472127318967034087130455482430572758920790314576366836474979072379809146971242194556753149889826099389970446649618264298982083748486293519795691748651756863591970422867480326059245056018608806192742304085167832274783793686224875950554002573245897712978604315966539950820041735611058430635754784272219417057862330764084917937746756879241452443445130488066304542790671217518739000357280092259629640778465923602433381485037835432740620670342682583917822669193711211822067557225054578059442418998415975200762411507773670937084753768267647397852546753725369538341821403145764404417726677868738518888006291593084185300067732969799341554704990145918442082111541841880212853470545268707215487841256209610041947761509734647736709843728504472974609128444628120504816005099131408160273026033848944585865317788317232679760767690149537370641694199203731307890544864341651684515583762288487140051951052108372686584351495848956091794942172888688321622201842607229211762050819675073615757050587853804421352096841866100887956023980234752661423082407554290297385980385914943873311848885302688976494572229715355459404440520734059937758983130187491084487372216782005019076234498681051337353984354074991165576439693432954921192287965319329431783209576924892237756950154313086154114738477970179013196352623108559740181940714966102888078979264393062841001984586203061958443017172823288316910622119479569393961569272643831572044586077221976997482328477689764357228465381283072435136806249457389632295681018501780035639644451351319299787431713598099526015787476794860157929602137095424535756899174783513402104297503707492130525439656884858395984347145919611917852724209130449024572721776793342817771011374541278397455431532952139333412086130293827876202089950123612778985902787848264705179183962553486535388241225697374600173744488465159179472199559121235896012066763696859930652419858783861045057377967153015185383507277154110679903557051455366612701115338488167276897583631259667802755424372773579902595809580102267574132761075510304732861364115544581567538875829503218623309259339804896230885175919521858290689932092660930961101839824168732602095340094229168410811978724381699286175600565924968436032096226459868933196793910728685153932401243142832205671584493071875842702363823473368765935129820828022831265358551948750432374833379535492793184342939469790058538525973992858815803492815053643971192184127102004855513267718361495480844133140073567630668067510427375166535751088689284795560120517920135917112107430271805288077429131829363939979221319471657656634514368136728338657896621402103100999694942536328011215059387506046143750546680911911542451842491704361032959770000164446565726467439489626701042823874949795620567692593836110024153570703083290296269189459321835576853815734046297406065026144890543116074626759882111170255288833931639162445957717325987728560960640978667059368358432285444241935908904203402357468998736465398076106730421012018238966149817856993754463078662517869120828771031153861196835084732939928895548654646272129258948797404052661726747675594487994647552787122228595906438057690134802742588124941420136054990764508222686570992594483471228631136683669186716815271719110822115402784881498115290711168156879172134895861496661912879373148994492889057751651812644460738815793204110497920968516143677768386864469215978233562248559410816630779520113970791390241441685884569388877455748059461321595932777707990309409966608397540675034864905116682315684319987917231666950194248372821887161845178332939919108754099724107054472948261769155676941439979837763424653914752382383824449802586358905819595461701410039297615798447541750289352237576336031255052097734651751716404928026984972108998062181093030076204471688368677441517054058890190847809051251556228872046397451248717900044746894332350959885917805525117316991280625953701832269167944705369244467663297278125811332837527644008585264901642804786865165583311610582875961889184422811477806304429339429768190583111299377526025337659179157556132361389538463455699705129131010872230330941054668490641985312155844118991100232478011648505959218529841991703491198871004515164611869892734525272025164724030638516375965229470925941069788162135849757802691393013997630305742830568439451618392583577931854625163821038555725432852000154454387024586526743549317405043149922318616471724929097018493113742457368861992920153957648627133036239601202816105594054349697490484559686539487030974569572402452389905491425562680976980959052078372906579045120472189618648165723037657272769712859072949702840477581501376583718574652722579577468657302533900989048588315163335003801372003446581796433354121845843427778943086111709306063525214621298991430618768391793175705902454250009071513188614203332155800042506081638561234634380464086047892317681833792213084535614141598193545018708511722856368696815618475731818173083089393929038774920163374197880748506687041463347324990202984399666062376068220535784925446480088954690876515920987758076093516981837956988236140518271508666742802640386919150469213604645708705248130382992488387918444619104945328593279684815155668349339062708074963643431688989746934192107294651554888537351528930958375458544472894675671384630837537865824145132822844289591404124045125004747305360431917947286363474537571238938414615954292001490173063117174671942882435307529089184309488849355219087540685951141550860789109575618497861046204221133335287577886740666819274229974440642087039497084690904641088260304624083483232398977921156728980143075405963222203665917906621011402509885957512078163194208133571667041362987861767371635548410098910886587431660895877273066421805579689428487887256211841880722265141149867778472190453875951785233099848226710257384107592132497509224874578528784877614907007828170066331815749499872537506640803427247230399449053237674321888920443512451146585200838958958062606404425206347638357920262347143048740065917207736768598151812323943696719885250599207689497223817371976144372916352695682166426787148826788513276816927084923042455327355135098970330240610444859640801128504331580997187733414204633992517743084910781606763091511189933322250877425406998080951306295258389356149237506629655356617363923725545453467857419311060071045979223489022542371123107949977193725837227669888172884611272313796342482886768951688550214736138530110472947544967438158913819536805723137280842780539653694471551431261319742120415384014095735008633742867613508478393886843343327284300645961141330789987277534682000581638702383475708473090479834597412393737455572134640109323426405064887718642873678248857607605695411531522322734277637006613863107309277909071028379606577421754188493693284462894745212459601586065576559073486293652098949601828801723000367726686717263858391853387537982367816783819167004896371007174148893820916680898016776832444941499033953348155762797760793071601245826265293380116896628539985440425321038632491505985299980723636056732790975204268443043642315538898995091650679802406853734391967385780318307557934893540563891669959072481811050006031683796976539706769421939947749517799196108040722313302419774274681517015664995036663161856585877047802660261453274559194389013106164973803221623033316833224451013432482218008745823050818573967771516640093182202016478058819394429040915813142311674940692768031732539281440811284488948933534231183889402152370228251006520097270020731937432406580083831511160465834894223489528479123956938685457700016618038947017911826318887204036004167938971196637207723356594232262682738788002497292536970281243147281614037038381391055486513582627329381061003442341778626226963586202042014953329515865187874746041799768363630949746397032650440344006666423090630219045038556918013258544193414863760021442844524140650740028770645103793751697855989509645157333293733037506244699231073156396008614575410469541682904635367021051188011382174366340840142813382374191614813348238814360574447651060166536589646594341599608178241791585925937330349872944289578454208238988102522501027790138707112993037604414989333958013142113767563801019162160478013589410145501635711386518080140559079092931415826070284819451050059903528881687239810705959849957920353515644311194379649851817788773636765589975265017081859643684290300387607987558803527983758086932301182717340723465467862964350290390049385817477916561009217674799508947059472137811593494465739302751881958310173521970409404612664872280184985882952628996342370719346057870257437893783646631056764547670548656018871658583564538919846117262950727368058044396513938410812936524701469699089265583181771177931546436361435996296714527144695187804319000050756881482227407214380724718636031926257844461899057383572169785374342278280007075819354143992780624478918386308097195265880416305853859193713328598084320062534545571078485578047579945693990125651974559483387098513319149450429237868162601628135542917939348325081144207621930557945230690172594033926702158495067711912813830012857027345407444326636485674460416197045220383772648059062230965325472717023533641220835996061180013399040192129574231422625703955777897712333395781642849521672817998126275382355355507756453009551776251774667902868282044150861828396212524366958217446127780632993983526538872405808352546945929767610671424625532074576706015118585791736361162435750735656558247801701961968973044970548564962982390404260518384268599981675472254311684569791878079178135640093032720353958059735990226604180505027618918640870868355291130007651147022255529864517623252592300763444870236508351237748371067342444711028059882371002204040806413505406201982038245477650907438224175148995573597389322145972150547512585691282977541728703054533033820457161117762500203941560492147499950199508786291673085945679535729834018097187034772803210725528580155185944333886531054706341606310607006416026478869646388191065156662813217364353904813023764702370273427029354309102088880220779075754802913254139917162231293711231834310338740034023049454766959230354839356375898340841716384890840207519113696898762599975932049750998686455084192600949942923366944983692578220417639780960025625299785684054302842054401796477690523362643949380932164087692811188670672557093328285302391677635247949578458343580859922849567449241634767415085379947428194137727838762523966060314926714091980252796130070846120721752909941160150640249546419369173843386129821392863538329509689070766704307497542352070203897970662368517647562989218184741357008541584658691214176393000722992096763382992579080565308656678480850279925661668712093761081197194395077946464892313646747238232372348444908171020826101900553923248609560678941613892806981790079231238805569232964929549789832633433756302479219238821907691728414974739851158934212309829719824039104611603212955359024170207447769300909525151725515146863581232906162248278160285724490496669092464123199796772017557880438570730842702043465884395728146619509991940748285614890529428652553183015674103317237961698709352179365895737992817825616360992496822435895584345256860883282153936179558759869344975156409708007452685808981047059009630387810053400159786683281101250884503223798905145023243143957014055958019433142467628446447967528119422218365701599102414495174065665688150486104402646257095056505009040106418000507779144117027660586995625172968781736971576114052295978315399107588218053677696537693496647162055825049661969464599606252468453775451847521651634417050653804428918040167121943180372933404495407981688403070075603265875647514898858053250540286904310432075297805187481724309429275052369361601113568242594852925236910977552397102585512243262983757683460531590086103569159624355945492369771197376222706173804518872112637937768369332017434513104226025690728042820137168786519396725100380470963580091347420412939804571409358509084700386104685605481763947479363136880979083339990553577993597667034883968656430766867477599719860792510016260233640320402378265816569602012269780041003864659089570163586318398742104929143762578318167324035443751967315908221612610095945368994238488666904679488685757223306543751759441021755118606690841529094982156935754404319949643370766728803861659466857194235596993351789835532525761051033812290413884859900139100027377339683222749902940113031509276081648311201307812861466038674782434892151233493586006151997339974682743117334418733481019049691364646784992804553561201878893595510908875759886758906979745831004069911681345343381726856120250168630829114670706247690293853927669927502880305713473953466400247874202727294560815895959281761494112614969615072484787116534460359935867875532019490141993799108965654748968973128008216044853317552689403383261739552247640135013217827675893987080501306430016062192278747796565885203147884513895518544658926150518013467994478761280312539851490734316003659587311521405851509649189786597362179041143703016103251564036189805482287591490879814226277675114973843436385540485868113892626768032871786881869428584209787310959577016840817700159269485504389460467951597594159986178979675785270038496709317873350605273637706914695000915544547050344620681591312069836919293177918505276469685511203283103576139307206175898579812447913715941185028769913976856720820460610796715220242108678973413862515751984733551632406229545830064233037800202087624100589056617865735344925941470332536995359706398498777103661477818687706797796084236211450585086466949463680823735763125800690196250472377007935582276048895331100700266657670478831924652129959470836252054192300985350999474995343266040968236803573920051740694553377905807959798977448937931352230114613527779748620305320244953722912668036966495142375136487930943159582782872972869134042966441875740666720583599046810621508556248940077499194477631906910355271320575799917248170881933689025355522208546887946916612911159497637982910195251687976117181082076161910341615132068475422433118134078984790650896375594028351495388005863451853076079192083588842452169681117062053386149594748204034951718060108216134618083395754269883391095830295236467109261194815779673308584316274254201398133998505177786761243723647107119031319895248565132368907791855288588529005696852299159472861618064844156374725501571449865611595019457680363002314490623673510842748445538395582802429993028048558870378163589738252837965560357748215019625433086555765567127457366797797914675651624301714107213472045241656706940932107924261598496253841040840668789755429281878785493619849926380343328041397426269056583011166594860969440579286235379208333911479517429099630484357110628077102341573554330108493100038973674094520865689795085910455570528523542008465498062786498596666974997176706620435202860235294043740689451794888095357970868056516705568584277811525913119260870553603556837253972250217275813405093742351268010999260821503737977242431244668635304849647054728123907386428685068185669710315021455187108170303462532872815435312171420318841044657179751825470747474458120877901550513457782042723119033533478956535971316973304052366203963066206336481374880839434049734799350469828586800883049157069847071294394278610314433010254394569248419848267811644911471359117740913400462594655523740910892825988052767445704594982466400391723031759231852963988917007858684972421848695280860155168058860275248583992826709487100577468514451561233194862466679490226389270501653462685810541981626723429991325685190223425524553891709586839245689130275708484934346233000335397908527605058505686851945365537117720125184301315041827835742347853969798508198486323482933287495809798533662230201776194309409619417325840773944583367898588294424538367691747068617995701453549459108609189746495952618462943741485290980828436619976234474828394854658489078926342217574097121427339322948183812506310648661388934406223089293044674693412471082826976062023255714255294634237446148373006334695259446387038908917777454395489808130772292380058529560034627057999372937730414127542975489196205298710444112492874094423964185711553855215364177359724157478588206442631738245861131418210594450973339750798152122110841204034034922273862497912501376231608440562284871669293074132973055349408259937797669564303376385027074401044056905972801193186663772228681198600377911519638517886316251425421201556254458887594709598447525971413322347659151109168513409759137180523973005429011565292495807445912006006172969823631918758711866689606221989429313475219498185130118861836297629158173324885713038539049587451602153212007397126166073861214043080645915989882799921713880410127253581508187759109015866646790167285011513613835811641216598871493023474102700196836365458302977874391928213977039032989193136628374679606157196508426048214189268821391856239222230851668320597611774158882715570424907318932029557119255243839222734116301370928064749611196725214286297021580150096373233081041721990133301227228461202746649665716906813884976107737476754025212984096102911909706785536833697560720079660938427422676595487580877199252188596763418932733151767413778790491693626318116985647881243219577049608193294056576542378064426213826747659293331823970790349850742343171432315999970068961272974720997708000834734849707686774151764486882892487904092430547817618587885123730350045693822317752064770729184636532947345317847994298902682654412071349562432283649294737299862342095153157032722100439791510334746760203423783624653232228934443342908837675484527966442281152113641583875270160906347960615487347240253729738951663153388089708708167252896899061432642439326874989169322457251252895077261719549845572964599132198334708102262728845730494679453430930907703330455356789321850225596690569476639591667343876572289119659932365871590692885886133331724655747118319527705986182334158716420367002899203584002241610522240365657835669045694157268838387298808647743133195980351437563316867076401989968264788893462142196025398388496212368839966507464250377818220002996223461750567157327141058907514570007333912727244759657839981598315621054314689856444739074855213247203322522221236154942719983830514964184575353415648817170207452837021962331110240754772897048389973764291779469981912438015055259151095164218781267911137994567935649249475344898478610789846591762919568520085661080989398140254781224885960173601321960434246682850709438545006509552214080946375859375981842103032201304636496126740247806027420453855133164286014863493663979328091954036490987908286188117539484606458572425050276403423535951809543292438668861401970825403210534958644883565439970529323936232444991866512110160023145992806276966094579754042843837559803092311618254209793693277258424222939739053051727904794452926835189310516554405213666060239994570765041983631551138871384191506395810937645858955739439193011754350079854461370698123108004346253609508994915711854633653465970547326371920278127333685985269642000457482787216404424379577390122031157872454905460147749096227069729286444793555649888955867578505594467260839281789080040312235734406997957980654135647046743475358386710400908161665032828683573392234320206050603528844167098987368559958619244968169672683934749248491279513085503272581141963844829467743301126337212828336218300811923338570086758579173499575791018984437107774995770146925280553819547115557897504794380253399343407933580236225569862440440442197832398872658102054172561306693480824382104759017174812395536488820241653185429043171244925046337451879907628800245447073755113483853777096580610598522496923502585888489615103305972108871690568261282779823739466557782619139255576840010662415656554478896103478991767217765311921584697094480406344404929549808742904713196718726100872754108045860740936138354581163202729412340768451532124179521257194175669214130674277343749217249412215107078812245457541660886634259634009422495436673863956940614374361363572659436915287225984181139619040815218737490607896965337634492735318937703154879962581040285153184851679682532566907404062926837606708018414732132217694148248101872904311501409871267564922036497837581006392913434185997612090995458095206849652779422755947819679536444387411323917357467286375487106845773958783229779921227890658024273497706980468285911461887733230524871763338430464803036620956339831931324508860300767559526215112955061575186666764387617350679729246066116054146898868479818505295658313229349956742779456110380682970159227475852772740230333047134095244237407959552576498432936268051191609048882558095106294134792619878069543265991505032296584128666582461542522101293390297745329993150107767883543974768426519886335884714803798032302966088765357620054906204535859740959508273724535972285537320094220181054390426946431245023600548086768248897585909488384189719833583350101128391978851576006506660600307379477905941067313075251083869458917919416939438803157668604564685405456290036486745146024712197680195359107343219638619549263312874202932018637525764257157563268818978175535314028445008610455682678285698468560801612257974870903037694476359324700156331333832714899058807983196383750005844610325391865243459540192335622623952206054078197439627519265865433641983770517390473918145618311039084061292558396382774552625675380682407017321758383684026465411679811790011543352666826295303116394886362848996971142612545753016321079529650748392680576449265568249251253878615516479933741147143129515113526105695990300037844512735711536452465867772040304762330717512857078283721413691446044488418432290619341367459251681094051966355168041304071695745591066898696049314641510484023833864502597816746844415156819624916311354194659429964612716437759457221767225979870355221651840368204450685214554634595226714160177033391733327820076459083200039253625708346516946353504506302942463669109862255853493751796420819082781764372193324281820021003113650500804666676111043226589502461526393260933083125940057563221647542022312918738096975252738367546862811297728514772110797949762192755388353652660960349524332529462255734503358211858071205566452878736065992642881309121651980800653197852240195177875255469215212372959713189043922567264111118386829920751873859198658819145567088490789088974794881192749966999128812139016604584280281966252156371700398549800944087825054974085644753441917524081957333069487703064887258280639376156113526638942048010392096774530845878691071758016832944198261146774999443452881384719455388061408510639852239049094004636223927030976218661469676257032518471757668613076234644187273683325438550556643873905000278879121930273102875164056800052379401639425911439145127537736063424106455978559207145440161288291533163497036492972014012506955164852965490980642266328179329464997062325839454207235289806952527275133116427607042921074255997102034733302839566528791184653653273623300345519335107409066153182460344440242037413767695690295152391907646359810034196319206517960731112291650178866320894794523995757117341631978043864743414793318990230777361765633570263121974608693117022520060988522360786539622068370055237501972644104975917556649648691257536301668819200362066523930767580609312919262091385677784054141261384488047141239080953873964838634003468029095508244715044067423856859551532462287208497337164816474502373574212332767716204463512579997264152231143366323457985648850438377831594947558294161034995885413825912990055376016744187175800262373977662670056769890293002382082116566748696538980864730838960333808508640697069600294862630758479219160302589616167046535062817900837415229326344878157767607481410578015406051637043817664309556800092435496989142457836833545955907718190171510309911865037914078920598638403314849269432936559448658497434680988443613827979643885663305135750038323486130379300555467848985868822538346099687662394540914316909186414104773555633715799948029067883223340703087042086869022703279591207805456454720140826867456124360124532269984833549879409792389997596593641068988982571465739138095969411014121299213519794064126359131989013022926311804952313099811635588327865701149528225068837495026006102634231292172450913687877565760886295272307015356558957670518946264716408032740861287813344012085266535120244710757782421814732613025372116626342487764498124237356040610650150364163832194423504436688856553991724121479254758591286143766810445223023124558579374479745024641014211457034492502364907947166568114118242399553072634407731400996903833972165939451941772678445939512263381207514742875730625152979615271361924772714819677549823714342411854567028270579226325030895281912894511248156821465223181389580111091440566144630582809288606513975550083124305647023200715909925306974661374515076280573869008241496647407893970480748813399921363851028557717162513629474639035261471838051767347350907749509540336526730360755487696965967399139090581703492590858962847696494416640677995157606709699746274638026196017834598736359057494111308975138587026041868434801709960825610684794774236294271782587876196098379604538483865308717184483864502269670231693815874581239204798977786387266711536897090916829907807915610917032404816980288950792594424189419388131507490426600478168623916490527740032600490215166832367516651167009147773614447182786598750501386288042466834834164247042958004121907209553521672959142909911625835566954462384979408292948397309130395923262244748974281987861847300808279530321405750947866804815068369028164189859730687908800467734472867785753271454167710659307833114405508308313004731392674228419185783259280601497060496817279739731926132531450250018449372821377239777360302628822203203690502306267582119765999758717517036472641111658666800882720647463788038929273606499537860528433659299851823123158561143259254102383056732481501628130588549373951252931939086246484159502490598382625341395322170456418606796684474265033399034641093435534292759188648710075645999966620823759890902450984912941112362595711757497935820411520493534334519768361158477955314897483902306514020548218200704118180760478190239099733591886990597976042614695390624163404516668814631593891945681826314647640030508331544846375093506753150100074503920087313723265864680368872416253376890813148234753761595744772055956793284174585254184636149330921186451343172702797821640467019192657785424471049150425694420662518342947957263959847643362789618482860774292202338553611541514703820617752501942247819829206852255861288425185646854293201790563340619070197878035448268497710840632855514227351299594273812709186074837330738574659595469574606852659293486255888724002031570860058099912890609465070981695289597621147991012528536416036615391705136823570310712247851065538291480841497885979947474227889047109937148576908531695484768747450653534026951082722769970500574626297393843727012575878236948204386109953220311155741408865226028321188530339231446630180596776433576238407008337765811627260682406788609995860186485407537673650018869474883129235251399826638344703436433551993691910882076198430403286495881095954664497140952319696176015689401101893326907307244672343051260674434583911086432395556662584770038444146744512560161125867035124488858310935527950979406719073121153443373652567214949704058299544444589866760077987411948458788700072398395396110913219972768204063474795998423878405904503676938564185198360269543182317988565577163118874906884410637704418534859920879504360408930415659138076442374031382703666226619042942102655690092095841966004205128808692698012858184368506206599446256731150755055661204283626562965357960917958913693439408745216668850385984710579978113350430623565834760081193936086626156929888423942864673452063179309765210259360512849291235800584552277226669241988317764521419700827750478268862953572711952418698472927410634331782233622976144319071139355131610376031956180178536697372309970696631836160421947416737522824377528194295051230729851427678979183860642037983164048499947108056562776646665316199952748699241255332932222435414141162994471261038318560408516473801629742046900673001460409636706715332512061857764713616831361191634128673131170985175510204611039636789309817929481018866482828111401624126757189260111121142496239078056637685151980660758535771196247422656107613396656201535362109162595311713144987416600157981224640937640897609122607788106046756623652506110574253360001802383781719108211579844513646346609210516696368116222923110784248633731248059921181930105465378346878624864467368170319655030719824385956256208141108052401999931092401447698652839753963647598153127177924776040483987798126096326381019842738007531115776160365509360785609550035776735341639781397989142147240744750927142601163618778342759205912295134690156591266577191323039936555521776806354950444299805119182361676133513444187483190545223691698459831867397143690689727433450103944611574250885734000533716391941134509554955625131400669722375678124981740400588728588838270406309578189575598460415092477278210296729382813574166403455360470949629346676010714797108728037687473712021185950644020190429404881402206145718808240745332962488079962636370435907042128058671862171770097738170353104157994589366481291433078253450248304102072189355776189323924864475450357876881304243637162110798844354095240610487566294136452480122342667322804052098656274885043617183721756057537951272953327323571672366630520556822860119203221307562650032197407003199130846278403778120165809050164377600252118713433395078598301323020580122427966986511958059405060848309227192672632283255635185464074177596441917453527763141776997706679190411699209377727027321540091825040302128129032896540227855620991111704325756144644779924786213743906495961021760977394239981299775000191783383314372862641817132136330964819249897810871207645775091813991001121401689414720348857285528164223071783582774178478481837891881692931845901466609456519931000564886695065721260184857489887610777338562920876532760237379781066713325815164747486262767477932590562429815057277371387944586317980607648967192018117894349466544129044441229578283680329350014967158227705753676554682776432075108058384061797108242028835077399516314670593612133198350877286471197714350648059289965288207625686625224148465910604428831698281835361516007377783469595249159604409785688784794959442174631513354557722776413231347258252669524433719872660223490287397870499294741114227443186640298388357683664156116810702738194972541334453594281935229401230042018124694988984322722045602959020847398711825012426317563784091619268245822747922030310397828541967443226373915772429956434884753757280506448139860158175436016416317115776808006436144439590585707794611268524976409200197536374745159898633906255186819238435632540895165867420903114218450158310357977024230826981826528782649702747801193597834735491818529152116936859474554460458371156344299448573854360404927633852340833028750949643342728985567585003750613692330967007709114201134058778106425630424409439603009390223764377975091411321778908537199001824855398070870652592980370807179502172418820948606583953196578420343446129557410664148649751376432071558142039459907243147006117780877978626375633723752797572114547581471163972011010114179897623096516030094822755048989489334922629968995247676965843785365216519168295490992279893612817163435882031699365677564215145087867755696419577120470312640917396522593855028031345910759751740474371980719104746203515898715244960957787713491298446989227915181068891379428288629001911574771525901277798245682082004380851056687706939583112410189358374315192726724498639583845362285423057606831903627981303595062658058741078085044958678131669234150014816134731557565665245687356671319226568580382215325025041650819388871951438309953080036318636485920663517839958367340089984476518844568125378781878982184300566404366180687038312932500359692144406469048872295637840156419174698809072873305945900681854507006680904513083316507178090566663075534385696261402182527796497012639040657155117101746763105547371932733180181711616821921674384923994341334038785561906675443852154986617591933168803964321468418875014880761234276991599960740722102510625673968599265498060841786954360634922515414128380432222040235540732520960140680060234285186338314782265806934135910756989045215357754699214356330616845109737417954252537264256976953642953540668800149888717564235224884054402192816973445947499824211221969159072415503452757389013289370223608223430474673388655090264347255637353776066498167319967751820928146896925450781284235602276698942394287462692074528086998839667098620820259663453646455765962726273164629553837346103768960477759400204782015728265254613999292410586516153651694116489847717556016996080308858369362863534228988373727869269329118941183093174425751089009287961008494487310407795539377722014931936761816936902187666994652586343904562868002237189151082359819755566588476392183580678830495585624484103153019474749828648463036206016531959242672403094307330634654805106253108717373886660790815436803125272159538660672069600615882757314939408403126558462707411811289772551633808627642795870760070211193832188015695636374904808624498785574265735134512447352094555252825890458652808149585203483931429035751354686883508715914154436458477216726596496264553762349766510090811329593650415456587833244097935465904355764664012128203361162782750375641902573926649285370144223980795326060470171601598945994909497896375148039297282548488342732769286010956877955094327898939619694026145143998170763758239245558823405209529789905138428666446341999940908457313666735451481385519352769275411340583041997821185412489963423204425597663313734558734283241289142481150795835726195627321344290575994367966291101579336107882023742158158111316734219029684249821054012766335800344005448614743748436446158246003940168155308668993858921224376049757308540310593816805477100094944225476832931289921345237395538576750534948036922963278439138082016389972378032023345233188151855310957388410224706903866517438373122077408880910580282932772578476705261461319469772927303041966627263021883575628047118870913006749742427747281167253846102175040659750288126958111887852018395048056928005585619228275227793017048409028078204003980556118735587746888309351225866813712633995037824270694153675595427582486256227328296773774180557105253953198838029518872202318777299875315802914800923328024521134353822399679143829880562872242908393527834143580838172286569067788384347132744067230287021802273006619721205433893830198478462415581894801481449175724442102296873667957378132831478745737027537565557093068986926039939715826582423650472246609995332920243261314003700393804873670737549279560885433539536477903572127286286336593764615590550750733340971996782922658398163382572936050904462099017322362441810040630196703106375097761060197364104551041065451377326799871932246714476313914255834056116360131396534431310742369219363469068950272119843368773986261222223279989690704810466954122407378988044660332225527704456638884181174562568553965181237509438772841454239704427916698072805623388329091679308095252065013713029757770676526146118345883749014561793666338402563207960778197485991704751667183612438522309391100948314173055044889937033321318352868149019339792994501817152030451856202388356629617628327369675031430709551563041212778890725601949221151891889800374216258599518921024387626155340604413195822666514107944788923824374105828067350801311827957388681088779655432252622848018045515060678848508419123782516308966239113023866889839946059709107058323430256979119933029927337226917763078741704351204257873485392278280252961019535146885980995936972269135952718668585257512176523159302200830980828252611676297706497581677781143394563032364536205670964482545015652026394437961012182310509754249926087932638656682679172917343552484702664866113174991167944579841844780210052747488917811706028050289039999226106564696460231915961727622010731288136224978973695358053973731088918272147013283968794196751337544187504423973816216080749978404082238386968589300350956101910542688776830508238071842355405868667868238236855809977457500681304175902560530916589012650450107929718596855916805798920589083590079013620161018274387770818766574032767523037339886059483852956219339670480546952643892056496979423188056887077505755142718513205167451057216760949700259062031195394534634304298850214475809450498144571682372832495911421114944228578060618645242912265667850703069155578999514709128740567555762976764132827925848167573932227934328363370627851253615937491396907460073656616266030737521678548967361251428398824360130000452811563282063822233066662815730530977438552712244312587731150797978656333111296521439704606722059001191081985633646008428484401973065644685800741706762281556879269530571254062339648553211498579748204948904355521775023667585919810141001295467017851049121322707813998793065192303929250621184759850544437307146748718716409201556469460862706902060805960008782377490501858786900101174273576697879919356485744263347832696956266326913008882308917350294331409481856885361185682988979031662960616759574054398678294842379471942067375208302438441860681473554404028634882113921298788992558974527697062176442128436572148126208654323653186028568993144781369166600869631279771933324325405756227386746273426898795810056942250498803317992276971072111326117798744253837269777399920060326874836007442536769470318723113981683854691368586923888355989032425319488520498594837448304297665838587927320176167859000816098017508121221815755788929015700910837907431434292004822892781702012581540922852233114906542666060277529192845678348439858115688472439047240348873161440106392883915187211535548521375854637999209941573202673542760471453479207673954910738214521963166453918415693570386887299648886339616521466451248937905900656589200091010584000322657514594584241450330991902821297065837719031407317075390865777439557089326726930443017071275510437839335183701077629470585958263650873027610649911794361025319798153003368480347974945839354386171926947010631459616064879816145498695112266233358845028740019358626136837891681805040375596296436591762292261063977132480641152359618349231019507962485581792495669612146191047565475089484993655322548071264319553833644923408114342871597038368172617932494991592917217197036932496254470208324289771456568522057800045289066413621550683939311957116777000835429676330214078710389515558929621556946971514393382735342635858382491702563635831636759067767517708459902504892377939218814592520055306128010990300317295301867560169414100192631043599572724557874764983822519172319539827399944485088042867971439416348892794261187394131516761794911912592814670928154423558744921888815624453621829116288949059015711469756638331058241710912797060098345657406129662094164745058803316748956666954641038947054300921421207513688499239890283117927005326232391120356776016599036164225572926943275884247402427484509841439560382134970358305819995874739719699709804595595004099653426179631328422547167585539431103832982715735670502743238861699705192295777708276915129610589211401030937045818141751096872096906635892276280333362215515069054492287582632328230185674905501527828103092031418479647161530236550660667513990768185814758376518372721543455909572086894959982636419638369110455283664193439170494826822564196413654631173382198205345246142046347950858072707525421224609361419355081385896857756263852170830109098869401002615681610534881718752636874521346656116597715453312878139890756603010339071620537365384957695370836905021191317403880362179578893515851629944020353562643728655053211360211115716618694415842821808775768314460975905047228860884049711041424985078476018056111188464880787284574984128397318136223335249419904635823817250615347787220966688880396987998351522091558370862283474422523460834452489848370158495656857203793056037140017930530986050729413715223725546628326972403354701244520106948520217587690028311002629769616393085115843357884405187388936669501775070956777476571887346860662369386874007716015618485066541920376707769939870834154103945258271654476613100964843471238571872364216287069258742622137672462982760195601486538290251386078138566115789536884279606155756413121581635802404351004580809446789993754258576600825995793489180751226660178092963515159312044378896835014092406033083273066024236250840632752472695113820038725550691276280427402630948126601416325095624249900002900644478539178012892151781719774018543571662574651457153974937804061117545253314150059140573708894650196753341572347198110028578242974177258545608314020141212417982746011781009210170750688207147582276640541681456189129095773683086300912299508996225513652677434723327168030318823097285350844417961041243383593595200325951282714210971794323506072010335925972737422530452450126349883085399329315839547818799126901431483992481105668922061069374762480566680654790995127554032296420728459398806104745968688495503549486390764981434148296940249482731261785508682452885409886164635091228781659506864833198027218591019094486490708765376113441449887162943688632499839841380413482945822684372643336212638375764025012744994583839117631726018802975202401293511207600868308916357856250120501769023959197409118396364849608911628045034053422559204179842505633238827307898048003785780480080571725672568878047228874920654300400681406044924458855854027808420910960886270857567737443458381034768794072795802690111440828098803195062987119218545575476884457978636629327094861653838624791669767547552532586775043166222461058037550886926499117334219296818051530101208729503514985474496125656069368407937475381662697222603592486604488300284907251587028128330649616646600106359459835765038918231854455777586548118659880985657190045988747832124640111001924030941932284379887350085578919896877678455759388848366384732605784180244257966720321643972025385045378773226715474829737446470926859035062113329460663573172479284457198947166625331472818386867628351578034987458988819808546759416741722940112893208194651950523547283458742758867080938927465916567976600679782275431254768548554892780166642660408388260898262173158740292955908120753145964855108738449174649061479843208243743935029592858234446822795980338761345946292121977332909743377170137138260491176765052397230471769815085159835016962032211179045207505255206219213633583764201830856712540336041378538800041524113689796764714484624932114435737265448724433113372392183818829883717921234757233417437464129115464689495554978802839682388616400146786250683130589320314698554121966664338017038008037031786048136545466140436551590324170554444876076651331344764772812463355595475405179867511622606139465985449858338932011624896154696771060412989625079861534952059732449678918791874499160435707368193407509127085182959454752846594922706658466110598880324028729080666013502550407875836881735831513099770194940091199722944078656508179217441343712485412940512970247908058346031291093397561394841957517655201402876738924656386047807482151136872662211279611313480765714369013989472170388298169703328686691369522745068597309603591932990626768563675954798759547925508174738711031007149226562137917797387914231884068654592735978608134155282323023848670185474311817220004932100512259426479869895902176470261156552901570708179178988073122688478620364605386248295186958837715244404023194607019148749224512810447502323959703264729599806532274478860207857085964956699291175116806193494912269089254702736306814460431117175512759168969571693935713483900402942278198652591836896584598309612677467579899054950068609255852401964734381235871941699138570173871404274760198990363020533589497562941642399245655219997694894227439251313987304803372757809324638166372640093493914581930644478978041034631857555659320686964439699158865542484868343486761332970956695596773509700039757451000700887032698125149694635718591258970983201102876036417232820207889355946324277219526936575831050989457421482037111581347507094526842906935844735105590448120458659605681734910349842083414113369062519666407222118282990896604202697919453460762899284279751896062681533101526056060295474140108753286454870353361523641482508675304094179812492733796426703077749704825949973682735914944303519926836550354714214032301621735782218189072580603461313601254824154060120264559803981140465599644951359197692264912637966995177698535790393127876972229608137188750091625330446880108512931750638115463943729300341131922625214237731944822554994136858042823010264730936489290963890973193198835982678078609676468820042621321161969729260101923792725748197844709931269469117039880555957054817578418678211214125120691738525947851015594744721193594836482978432273590025164228185766822289926456350661277538314219627404368388889632347907153578237862599477940486141791578484745512682909381720443652885719242249246595039114351095658541836915071241593044602305418744397907851705567033398940444154248560122710486864011937302382146418477436826369201848147920536447772805838979236847626207482175256250198880457639603831802067284845321511062555780500340179789806701985121401422509831968434012863937447825821536898569222763259619183288454759866904281819316222652889251111574854475467965200979152551996112488519612309599382066515670026814787080279383419175951531737586704969184214451154093205324489681708146756864826721096419645725646658754075714604481263973795766657712289054125039948341683534335770078771388572189765724221639433694028941296810777496515489461390059463691336655365659516623572971197209982502784765932548331302559673529474284572078987526679351339929922066098561755243948291186325376699721541057634409751091253176520209945473194846793374078750583538969918686474249835589705575336484806442086439550830647415901869194527205577837724622978969760717155760438211767983374631670839631022089934462396775070851531616573241040654753584405907428242931717821546207563311909605460308286333366152872555594234699676564121641247249656020526101116571007699432355590677429102770214406571378969223739505081928196959623813443500022587170327833431002398485224148804455046261844353729028592258595316911539752305703016857596182763792124241319289087132053463577562221277654702351611119845507416852442116765408736491179859192694576203663371602128467375708089714928495684814160750010189979924220151853543790588214785378683006398093864473880619161296796315770303843154401072744541016238571076069307718005809272668134708543541764759487509703431635072027613319749372831622641589887089765251216520484603563689145833428655479468214235594464497020370235262341897593442577729331972003940488904860456121741285903695114175864282227109216622006209498128992290116419275880367043246165831974995540488850821174848512023880814732394767347429712586830414217334861575727965754886744214976691543663257407681722597920240548228359156724918448342955939937979763980268764306295659495136779801051544117011186512336025171352075180815493598173287177036749520990444333179913912646265167624130274474583720731894475743232918417177111105924320500246281613071460260382303652340490922019579304142691471971039296520203396714109683585686697234241515365166726480963327136138232169843779054867403913368608179755183869292582821953554993490404342249663584411175092630447387383541792819159558942872839278326905912869938186125180253578809211143298248304248343993286882017300743045605374233660646217805723181026624175775458455291288110575343216848385357606769640316022780921071567759765390266840326759270513227064146986519915742056820581684431149541167612139949835437947161480221945735258169681219348793655447216730144883754918256103751553584351042197545776185003271267551406334739499646842429778698322669573571349823218587478141336727155067495247857237632719620221186044847656466262593021298542790979034368776570384223054067339785611709594465536864353035134148271829377776436554123760958876588448384392614230979756779628447727400349138778067782545477704419838422141455121539920681948876027996585313047541631601504445389776116054814066973947572807961446234904788235807051791042574071274478110170420067445428141940346648576607113653823160101953006194459056963897222549228472302340534939321707591168217726335443290830405164557458760578890804385176193325417584254970990959061009346822640274023423228899441328670746234699111922305535391436419189922328321503630440860327081820752284655718120525294896363670686417756380756359699741396878465090563723017993281888489143164858814331499694543585761141111126975210240423001160170659330486796066909102698568055841752532856357281917541182855222326276999972361720181361924911163101533711760908632257689857340087934442530851361620559003541095325763252034138698728418832882335470033726298018895169951290201675314331370142608217783531487255213444303184535668000431399211062554745322054318405594910893030597140387902780209988652992023056124427809558898061386851836844517976267773812059343693803673420362632999452513641330965259998534997749259702871209827771306755051508371921001921598629424585262899928676878713545033771256619186112074510915366544449729066194153899023256026086935797244361567286493792178934461726900339898503818689239400025836920909624890404363583232983554618068210654466055710962458875679355451495618025868451611428745394102042359119733329333944112780260256559805081202575470327720666599192170009615559844677326829998208739520384144169121601580568107237089973528556460979406835814572767506545629699338905985843378355714572846077182928828634853001345504301791722430117528397630535107404328117463218143242666209663759719535104694300961796430922248530789160614174854749083203104015981401532707710268100124943987875025832524842250392939197278838101024348087539993487865902478060957864915865103039423485652610080095092420465548364814303636651363103992604509946073823970559972032671230027372621695473092288441530333713950823664166039776115916090483957037841117023992928342236799833479532662222570481019148959176397429102424294795209644333324933230433555757008393518880494733602483575859088051573233688219135279950099276139003581812880404178480587139623410414291116361599882812365442961348731835910928226721628437569942784111373863732157636566916838270728832554094987662123627190842422267624386915678354977739845004270420478072591912466298222893723750030691634068542620814182066200374320146667821549423242979641950066034064690335565650126498092449988883982594972254456798886759879736490511904198513711766137940182826040597186687392493921155496010250123542354858192835823167524369927450921371287779084582117270792864934155703809622347181315382712824103993417666698498991872895869801473226399308679211390719706360500496015412395669898166824099265138384523477877769854898967521079720881296769649874674648926059341765440955656954774825882251545196020811571334031750185580482915624217034679642856084006248155227017407397465329004781906238417846367581094595489069716711612973419710094389210778981412184667461447243388595710074715351833760201073401071209957252601473060110518482247128345842190892956130678932270836491769180212823186553377722234156517253042200463148013886586098642165131804511426808177159457577622795997610892797727716567608790729917416386114374343983705803176121602894890007005972477549108894573600313132988049935374645464436341167960063659784363008513222145277772402994253412870375443087316784249295663109588734601934029953603446006800138945179728787289331035397185463429322612951849482672902334615910915317096094153074604229576437917424931339122709363185142019033907999928074202575235765459721466588430254932237722357364262592610499224108862798175461135016486429290137584519828618475723999797710728689258565402838195534926042770252223476555371302619836106121355075749878127708868659398590362141301344313529885353041435880511606535936706216064985162692635639825556630768859041544442826981513290545435976910011011034600881574671934200932968140387714534008876745770829177505584830787979750817986115420624058871492824272735516940511754655361377985666509565342317783329192697165120784524448403146082859824502236579527377700606676461362045635360696754711952130738273263427999386019438585084853255239009698392357500993905451879037834264445409922303722992385530980456129924807603413638239708118386918903086895592380219907499042132334185669974004156994609608267645066372793849122697194165730409507805391680230712319938312263130505977133691652009736179903379420290703997161713793606827368908200006194969265980934768052742116288899170670241261879110641766605322018052689926362903329723797704317110746785931870518927765406604352208234888031987082319910394724779295418219160062805676425447790187920546995780895579599162133754739095699160286835183360823093325013874004437359845498366830007123460116921689347492164689468242733511305330699676947087854865931376741142813680941334018469121108833995565737089984254152346513362677350775897692175243558623722836527042654891930181610297685888737373979755882428779669257852303772144860188695312596111541481805023997428709152014776276710151358904494277868961510239153182148927677332156977183820965497677923050507138561294161672503418322237057250368640393720006424896887233973466459572854285137165608324895317000144129289412619949084676091064819970628868810538034612170507267626096460856488861841815917093419989598260423655806973080148249656598168778668034751198700014877829573460985671786627533785667672502835252169022585529540558869325885917768269298797131082714014823650256946169253552660448547721635385845897147616855845696290556269964017945674325718126155010670327567702346793113386169049573647840737678519948168844585231629460352989799436254652363513488329774972171692012265042306992782638080070905152360478742276794841475089920760053646327225912557807741914810014258128751969177538537610409377922647135085603778159482317332257272670113505675446523100944807780190573029642962941667388490251759303160606124409714638295271744361113257230891425294331513079452051630398945610641753198976905052764272486385503676307070628957337974440606479395218226546819392120757896087003931043115400226484548475973846152800203860123220375922223496950600759106178792162149187366358029760924483188548301194585415747366426662760105386701631800308727145972812139280786501470510326462250565248802820781250089992198507152782530106736775761167474919036323323435010790516639603697049439864431337284272088845169451517265598946491988472530308890776041951733363193342323438101785842398118746820490012560930357066352279460646646649866146705651867871096648728357056183359984219318598967227583219162235641869970453531430258782877837454970839865289707000735845650016754979538722242531030613308030413856276816877374137372443669862905191232825773011386036218357177575324611761755383493233178964370802431918795056956207347468639284094297991100468122197136054642153517275350123738053485237420215840829178969866967595060281687767436891146846470268715444021106515075653776117252130862456851762982849816264607566658124805809605333408903313139028713853254932334028098237621968565409743969793372001875900228330335063823993905997807567327467134298118549169723749734018540432086313590851986254344178505140571657351503133221734883198705009386408217161808295580841972891990507296105058858354150347719475584926907686762211540495806782201835095946062965824256885843853497753807273244522111559651049323337867953780367238261924006112713190088522307326309158818124243644277472897334183152857889615137274639257518430920171650722051782067562588263545668677584957957366901112226265989028689983481679319213479514876859416358348288620192035006787930185379133800607839699383951483037763918266480835298454605469257551969913152165777171941117419684685581690798159486269704986227064654149695699353780345660494416245288584153697938926338909415086075618054046634527062220983916216228410470269760308913725567942112185739803984792757456384616853742280755952940970375153987259280385713995289052911420586869774842153823002206202607045606114551824474021972729875506563591947906397134655274606711030866746183001844453656698355060667865837290315434729792070784345237995233823974279134072005109254524931705312120636615221599096568667574170436271719953325411031821558699047130330658924041852837821361718092058976825720837164085284985477536608282761876604441624832226762987085308185887191610139732765561430737524381931937431296694387439702107539252905735058158292258671949836459692125897278314117653118404747168350218051751760039735517135881631893740267940344753724908050449000907436127181483284171771308702812076191404458626927468291641769231074912889160435594172282951855862930862168076773553695687579392775728008721356093646433433395263331734392433836689145991484428382604889134078034200491383933480663501414616402888307350089096434290619785999980800453752027813913919289090346330373732054408928236089953683313384160534424384843775659818643292757901637942248445655837741910750736684112862284241649872725790715459800183954728622929524361446164101576497299803971927083239307476381676400744349169354367574244457583468558571719451891993662831331178890655341438436758723434724686070731162441292234559396403171022413974236227900082030991743825794479599199135413974841508368565522746161479570491266666772597525159498052157732194347585784688202821557865338452600631649995477461581070184643094588252923050244171794836911309232216276713653844615963254571445030653455319341272638252730729243909978046638525876904053428506386313898205935109580969377937216401763532252660590616615895807549980749786421383493651604201770084729913228397545409839713989913903460146340497602533796930015669113103632116804050884145452005370566503111630449354350747773364632985944674417521488274845913965579155238572024473921500871563543747918099493669242055370448790200731891964707925672674122439260111727575116205505518354050000324924968795722075656523852532409997675462222778731241268574888608223698747217928463046664104692091102584461542195578558547895814026629761545631434623511099874294248008240636478400016113969461627824090827672803244844217668968175881720498977077360984159366866880744246919770410212168986678637140332303473953926069230934337645928256009287095725625478505657148054040638169305568594224301536279991751974326266602171901032106857685527545476269969974918039006275106308334635282827894338817947803620048707361823635171498159149609893549238164808860064708504134307895655244459803262109117526357442372204075580689628539581862390461818633279342532347578915090465865428818683156539351031016899694814856603320445406217308659435271612283801144477765139814094570223380959421058333889489129624578608018849924345581920238746314177003281822441463700630273498414308908393278616381021160577087185601864831257830807552965555355070762632048822850338709381256363512965703513791118309664380670865006856911291332593863589870013843358793749893347492582241351355834720540194621436749784523987019858412191199567442437109552191463083214094758354392303644970284589757058760565583135021022730135232897165635291826262436276828273837705386003702671735980482775885797994334952322072061475189719010515142769254874354413744656532804208857807093246260742684218498582779860789147770771770975333322736723735219906125363818859824478927742805203944595886632558823269735086053099569705198323809778641716489818669961995203441620270737336175250436467367134529255750271246884871086778751680182957273752258540769183280561849747416408506397772955758280006537902512146344346046322114112229178746541144332314335764169526418996612868809867414497277854100711579672276942744530329927109759487929908651712910581219545421993723825119962227102911671702697681625971037481303218698605192027839350334768125753000796531212331338997923949153813107249780882830262333963664482493015001031914695321070310298273214467627427248951584977282643092865218884129361412478501787864910664832523185702197897391883063767632369430835464775225752058817865962435537502856453242222985396110399820726200340877697796067574489037462382281848962974305487120824321947311897334103073648922389091748009786302965763632801076344340384898370885612337845977656549424635471390141713903292743254982988279230527375091934993701702798433505897523327239544747434734852125572128669212783348024742745530994496702118782333524240064817896998061705368616292275026937670590555446077332579821277810898890708947485835960336900872048673505000786520024436808710736763087522914877191734028957866139315001999317648728742890444835949415474712997267844721773824483333943590181828860962355154234840015055018963163280377385941737671282346343996462135430253784249898493035957172470556628024181956983039617695443170237039019239382004407307608618569598139419221510671979649078898023416360841237814088470093961739760417158851573852965096192335845707676956886799367408660899471785366559192378263546787887399072733193818115532410214184425965250050516352808356692499396996086009851879028680323814474188579505757516337801094451568828690542719036171601921433031344104692676332373211078418519577033315569356338684160359772141222283731876073549912211761065895124953374197740464171503588615189783279094569286422076569541518957475370854627800280735039463842378811304202523227080326039491536813451317858581541833108354877990223408826483956543510827397486943507167220446200311564052364181583172286290856620181148469982467052302028607833825897772479632664349622288525716234372524915869251232472452720032617361998112194907490570670639683556985474181486966999779125831865130650143650532635044339292096880998914037087520499307745829368616107861821109846991205649533064918078002454305795641305483334661355326953529420953044745304929584280534288458219457894117230954964467368666308689142706234562831803748540663053001689995019951196799943440539247419409416034937356750820474157889648046861052212684872135101141084714306951629475780283347399434088205747569641287663838668218122969594852802276390451186043471731889607905782583039312650719518351596092412202311930733440100899785883763583197054377471161496055153438745573607487903789563147028258576514424914487511246128381975179191152034815859564084649675434317843485408951901771814637580620077981752214636223293312261976934695613534419716965191750644409083146404618735359801007257676860116376993691452222071453862148759787487184814201294507528603786502411733205695382746971266170404218660425207458785415450905908466420343589511565097630862859927275604123157885094445602248071501498380697624320730455675402344572611950655518364740472194314996062567855674630030623195633708245761472928815455656705698437803235353920353592354753623863243930789963290403315662433804479729335052796820746963308568251171659425964510640975836284404713198632394123695773612409444335556684733665073957416404871849077981511202692427425421737507206302812527521860740157866957729863565377639522266285935626319412142727158919922861961036138716566080045417925384338698487911066566650331551520127892411008735825510977559488629513876066574879603607292354726254610679237701961497798210605419656312280793103589564268158627323201458237599181566725935419133471095949419748417170170947397354699309909722709319882216470962745715406978061203798334910246476277641693041309253059659470239793153069475850565485817648902339330357692274618507035562263254459185110922420695433380087833939817640927991710670614890200079829410255198445028043002679272163726504707138957767128997515355165364273620362979695770497928363741692355937570507582397514486505106666492249466753144099565944524379076762487175577838489371815820179780365387538333271929692048904202505461826962312748429841941945411709194029147375101685295240142269455523041282929313745939100150158301451392043000262600634424356078153646824907727772715625843300704440702075957233223655134915773269461602115489274646544370909070876624025789760545867805539662988738335490206844442087678842926690026242846686802613285417086599456072157776685035894432113395849685234617808206619041631227045161013361122570886817155722911379826884017134772214701776876508727670888822833714105637935708099900772570058103981492512681411337464835356246513772036364040557650816784716510260864605850917248998848020400095935191188700079638885244001275407366224856329547235014466600428338532179221050081614052009562560145398016767626567672152128466780851465907635085519100335565535095151980505161711037580836182785819826134929475192086783321659516379167666152244539009724704303536433725115576088331736265789172531329459175537843282641205341339438249321287413544792334879118888194005818662627371200611807888547803654004229470649879132366039970605348060059891449740750470141875920278449247554300350547501680321344453526542001813545021374406898490625623883339635710027897607350989327377135556137528293905667311256003322852555750932159256368616077175526789272954469925866790681121119111974075155649894710398664283167147706342831681331744123095980173764862853416076585291532527705098232979949940996930383961274162538685597997601153406422747555891751567816036643164967575713648229351696512131280781270661839960287267189906371629932747342584589700568981241426126571582283395411282342279685783455177202561143807441937941335174184971752339298347755925730212445073110143923151853355464244665053654955327591429805245603818969614528400398468753055637019625590534358099037448251086056688501154934850213966401214040043170892841635571049163467810178077685917507544111067177860901662623984360503276749704876921804687515297003651505946002466020532914137188270709351415012517913791690880165187465136110259990158378149290683735042307087047151400797935767380235361214332678169997787113565514569163218614260046892341948716306655047182765912071636320593127648615213416946373240202863445970257820750861269946021785493858662496398157702223761004997643925906016851718098317679515834251282354243068943620792708177733604410545083713334689822539519039127022712500475254474371233400937118004042511007288631582606511098687408668514628439877807839331961792431086683789190207118419436831058823930385129760983559292894083641102754364393983337031423870311351064718813913882877420238952727638188689306851227779633861502286806897310721407379610154455291491274955368010914657961145625887810516115966045015981095656907592557380833250802634962259016274241976984510384374252766779902676770465037195432335203748329281654161837621462251445451258899806241878855768210142363547277813462936409365294483234489254592005303278739697083590402626767272721897872848360925548581084507865449083513557036219181371323516329967549984709625269312532275526109768837493015938806601228357903830119982628182557142924469256271864906691884156578463565138709087650420283788594509816725573694816939889937254702900125631599808737946388707603085571232962530798968393648199875502066965403120650864724394379975976814260904964940741944873038088261900169466500219632514808852072894784613358139223407312739989518629153032581364991060170872863134448936624252676247024450598079042046148702501678399146145116372373299664005254166201374289891542874839357158812832685307643232675571985109189046469579980831937373606569954479037902892957815249905695008357297589908499059900722294833065688233388993844900590807550462511674893380261048810302590597699562406193112894562496862368374771740709743982551888248682758555826354511739407446525660143777355397231719341676472019384075417578546313340854173694859457425097533629749838102143604103920426570496081327414911490851499425121119098562212241733018447932862738420159842311923946591709713890724078827149880835487796130191408792796317300549316772031978024208937783403549534260968141857296411277420912971837722347554933998828164016510765744564611380895193456598850108310013205823150303121100061938934551348691223347579488805288941556695960568519350745339091603178865206230784802308343458314619766315107778720761898787676155013671021720565283309130950125524882717760916306948949724397459545489501817427407994850066796639631583254606751475767666631106623002709434325216437134178424950448562565860955913880760736110937380863332639838958035359642493088301439379560302983743769383672822450106884251554666688727189319430993694525046821635405274397262576121904266059947901674179905532104782662908838187803781170250033297592659106446682205525169206117602315068092851868800741677675499092418924912608287530771721818518007568232455685622748728505299126660268420587387483602312378391790433697061053733027649183882232372389927065824896659137526104252553339984224770803960358950225911596713701785650301170968010069696382469075266435371695693711051508545590493537093916899165416599882598741995724607422159917793619006206517536243469951571173853043481284153654666148372249979157793731636364122820643597765890250194287565889714448807918371655704265237522962892654871180624047598033803473405282764135621018344955491583802599760506132202162448679054632873787978604321078786996801594246285532098803130827057304599492577629372173217285616791457230829227204762089686136081107504096931657711061844074501766803982870981218023161640031672999543912247955033338310074887813534124529767118175374840742697735105378524521574267858507175994614680697861855837671619059121105923187263774575521396069917105247808296546856263422716602055283282888156449843646470959760914402815250538688286378816352906876190546982830980224189154857151653998278532518530662600142006052498586244102258910169685369233964504214460658992654873799046083026078799148727509321973729615700523130478825730317470924131554501273432521508626133700082503737228387613783212880867937684915943413553812451520638192174578977139144577126257394436095598592101439902675749876331000832638946460799158308122924930796747961466968384264326634734461205542658407658755642170812439837446607237333261338666988264875021888047662110727846941131353142757119602745991926995958534027053392230182877269030277959534026405073876298699490171483115566131523578490260407692573374054664033060817016767193146538635201670590807271342680829280327398689568992256638947050005168529265511581714571346265652994637380428454541658489019908490751988903342172346400994279584068204342284189291099842462389694176035036254092226669610517745474460499211787467200623376115753408536396945601526304972433441237901059558975379065555963787720637851085975485476455810855018483306129601784826512416409266979219919441000517467878660577114096132827862091740147695722595731961103337647260748145087029517045411200627858622637197114668009148977199866701451504252764529357174959179184053868193423831276927176263218294347022860657969061938282314186169362888434036106716061850297825830349835323272740647759045331276165629707442911052416581937080634324446916396184358320856292441323510238118339963136957703937700584336876865129316464359433937611013899047648699261707985468964389389567964793550839873825488218637644515984989562120566851272269888012976284224585825876668625010426299003025402695333637944306420048962528596946735630341602697384228498004990553829275232889413205938380881601824524655511056801965244003627932013153251358355230954601237242697826176638617609697028710850786313968149343555614456116599813894988735212979000063619851589844086654447775222375636741970209113872749486675975742999876116425628576642684694683749627947259293157865500109012689879938034075608143555217949009174678053988103430437339237099575614375638856598164853374855118610444476401060568285695353873117147464054849562607477486572636412861464415995759689013490559136647874928357043124867739079697170180197737756663162413551174460831680874314725192831979492846903031388980877458415051102430278822743974753984091533482504181535403948723413152022659185989939419210797197440941621632069914750083239241938181435537739095625213945454385996858716826955848108202993878579966574719785410792036059401714129839285075875791910079314576563817797614375472445925962092043935751598530086829441471000450583387384274292710119958694744437501903231678239234256025139131898742265202206855470879099571619617084742309332467843334089482016970079290735114036533549179400358540221352114179850401150969869882040784065280936728526169090152519532208425364596296855911957036506018943147931399099079527645139020031704133203780741277354698524253304759432842779931698242708185690112483838648282852842663493724836714110631272360080483261941188916400142869827388165645371616131257424519933398558356050196124207418470442384983014108060616626923964379509295320368978407791062392571957139605539493199584325624565039688383677328131455589995250223530235704914543272317462722633748012080267389731185115131625188877837956676466512747317325271841814389919392675851906001494142970676260587082062561537520845719528076029842845594156509572831134360758053552896026587901984470388276154937995509974447271544273136979070075342729714433226325907391046746000075539295017636237246429514336684436684840356479915097694496738299846321342562084849733289814705602127677809508897020173335428930067421550318435787934204318300626411122339092140221600237706406224878919193950057300057755940417683602338957926951750324806021286682091808505540496076505450347004578477318910548927022093147024215330268754202706184011862155486376613186543473677839231139425604979054696746448025468304900772829942838816485146170106354561537244752977222747481498251880120072602865343922280645205157295540888417503993811583136087863466616381694429426193821870595356388794902079018856400206772761924106724615512184358111998619267476284073437504506527486025891643233235680553466371596466265906415369657441374891881230589538354973396237932659452355395117423141388327655160149993609790685382303275270136329488923831248816647826039383703798403595637363527623892188099449790708498313864143023169969189751573187651750715490832437204144740195270801125393387578411670991343309680484318742912479343316936545963661396377907259628112568178677777304746742062762190856179349217795680025732923041762270888135471508037710666793966869601491449914825002384658645031951343771393030361376676072032536156754842740117536659850910726914153966044958929127040219785128289128960220351911478063095366255119930191537956869405850247900247862373566085087328425065335915007608802287494626697247759893349944834335202092379934067019692239783289751677749407242836653943145844828868994688148914229087360277962382801725236705891310499599659575714520616953920345900230499484634236422009022661140731855032237023205122054931260241754630296722810726076446732234315831482607408801575870890731729970214293307921119967527076629305999059759038404533243201153790695455709640763576803963587675089702084005789209524728782679471575641465487711155237275481812852334678304838569829332447691497783138982900941023486731215910385735126824194788079047659208073534209402079676484589592948662109901254422596708866236432823468054838432765940539396973693535866729857563762980204053619141315302871740036452838614016204889164689116011332433033903071518904722400265134527448745085771268086338211589217816564502516222449437995406416355981241882728478524106678415180468937701933843347304270257317678248677464362387626339721425227125002864160247917525900627933515506045943271626659404370555770666680360886892338917963816312564802192216445848752954355740603608621008611873560226173606903505453390530274743512202031727181366537976057739110786695168069722976016453913761756232545980673075926951676550933924076235354324495565845527422441501594505215628640854345168145896903899445985694454801871191152099124861537114193019121414365917554226574278162017809352379039620342494411038400830133601329752378647293922427571172682345039957029099099098228619256605165956986481639429836395089540447386709740587478152282782126581254047006826487662110706887776517328024388309393489185268632200129289453724628452499067964645567148684142830010558105255648391677718607761586892822876898765282049171644972396603376150144546722156069753799570672124335755280776353719351052885947109145052535498355040686585179799568528918324909164828869269100013481889704462342665089015634193240201945011637519796623786074854190350821292084011440130745108959251446439480820950821197016728178100193865913524709387388838866661772527782415821483874421234487931394984291096964884398364530547747411606855889803156678810884332133898202794064954844160479244140055087621859266863452908369668113174522647402175604096271856283887401885296419694513322526144980764730481592794043423059515774206728917323292680111028626161828945878089041241175401241783446751900792106884325267590077518559233395555954178348372455330263657161099091658933181730916007478485698152940903608963054579595381941563053447993559552462408833400496030810250786254899621674900395961744803933099614898601604495980260863094411464275962058866675495611191171652209391828174707804211401874767367113835359477379328814040155908384371443908936209486712665495732232377021604772777420697964789332270767730601041077785576896908153687596717334805883768545501118435040418051498399858554216877548087526351394834648383756623480959491581257220428341693238853759487766008674632251942066581958354315139659978693614048098893298344907575152138245772028437120605168443949969178913677525467487130939561156840141944487048539919694793564477170441113865420492168273280185250174675362112156259222210789996701116352515067006349753059760332115786287302190930144158981855385912744753755952066047092654027591440531047203730364106668762243701979022654508514221248845156523119428150621801871911714377212240669005791923454792448192853670308948616655113902817889807132283675716888598140432159325797142904800347312206925027500939747329019631544574168921112946519753784427978220152994520015413454649249420212768583083645622819014706825075479030272412799279502605019891568230438448595473628512323915859469082021084235718435960688901786428809343379685641565541154039998312863621501032814372510625251706296070733844877101647804130787228475375091413045992895633619691338702124618553025040681720546164541834862233496650121651807075034955344741000326247844066467701429899777847169962667118893734084572495866552416196723947706808048279970090798820873616238339359826204185785226150924321151244933208226768886305522603126677953011426441469300135710228325308153871399221959396540992699804418941560902672265817874082729773205080392509992886544404748098517597019034835037243673498881023700665570015322599840406612446361055222968485891670876856413726043316235166333517342474522078432775071000780334431661309296766489421086428117948965289220906828090038114410734733933228472436252437468794613184265783592088833985715770669542355375937796628378296733991711155347067514945202811644809273071286663052386760682647572650129010328104301782223599201200585458933352640999646583574302510967959792907549310290406772210767143919580814506006614268115589357278800324368867290676281699171350188206531695838971094375252420132979781354363132068526920235921948208129500299048069109024574783854341073558672753216265978794483617511464919241872291591123665560126304510929426733751079152736837219776578930166617877780756278262657897674904727623319799876891387290489716614313276860616413681065210542022010965613824373772098027365161671878027162687845557992888477753741074546430852496926187179499933212530499366873623129962578102095204442447509086508120937137029632623201555596236268346906311819604035704479612207333463988521586194296988260753026188662325972939980475536123810258274596668800896870368771177830058455123076590334806423253094859200474184573130816840136832167685447644783626071000665203050060606105149658365714277100178707078557128546037927483312712177882725067053824161382160118876795535647376312265382136519802077603052233790789649985789375612742646059979011197785270368929011752366227479949238968518213609448586369269221948388223609664676225258365158799997108136958461039882846372434610743336907260473916107034779077393392878797040769655509372257685075247431026886334392838061366756330828663439485913359574794134317678240113476465664530492825443622894558848643674130711810622658610339535661627895514654042714985430139534603791664448024028415842178308224455814462196795060142374057414231224772607974342247361617170428330111197137477425300598470253114195320526732556451146584847169394152592205220892702799998697340914896384155636761884690436910395107697642781372188084125160014055257693950681412596201328130702761905498964919238333470380822457234488072381855944077134548982865549934028414533219410144113600498885794578309951128343917033453683214387103105989129471068316142697315259351474407040578015572417742923379579290518118012243789790876959870366419217158254130057474384310170012331947512532756162462808382477292090530555387541852969947776015269377593892581712743243544533496543574454638114074667805573530348444239936844681641302883477556297771791303800301206137321123454086984098816021220853734178066263234369329732846498752979054815652997215830710992827191418775907931130004010037121647064326808349139022639289782979087324099771682706223887704262397804268401776402659333104510519288796530252375201903241794629751934699173860916947152743243884045829985712149774699216884005547708440327768362961768561710654539495154562179832078844711120972992835916324751917089281442745387477471970543748455870186963279333411835331094679752819651841317689519080693311468913585232518422994464112041836082457357432975693029995258190026249912187962844809928766774648513827643551413977097796955602177518154090220243756334109534244803175770490431776796828774195374735018162421710523759922646902924472572161024148742541293239948305713538885551153579223046410385102949451712442535436202749219319597100943930729012377313730134706723850289999855094857794551564699271573578867917921604259830710004175776607944600833980283559913847818474371721539766645908993860587076241390564888251393210157999526272156764906679280269091349780164529783184617111865519289601966636320979794869752760358573688805631087458388501656635950604994474563042349263279551009658068620754010281289078583552713849215769049683452980595124645050272447606118869428515786530703461927123085459837078193322939166786317016284212531281639112424838699181854096128746439480406330344256059013835678748955858139744077417427578267331833951237860957761452738155327035665428055626406089750444122944192460929489539860175783181314512640545791646109514815859799086474900884340154680585062827933235446676456329914661036257224835074670742891472566208826225753788999705510823600433980189629499941276774561944477060709609485435837825389880777411306798720941630451405167638009598407506731142323550811800975887844424717499454208732510399099547767846491422551325433044500257085213887244664483754634118303553546574462901717552345945558546673987097710995322125080026577850535607795455527402204539578287527351130460474510635990224859084733492222750505643503665260979019306996411476425241035292234648839773164856107482995438748428816968820348270686784428317133611184564659786063647367997441637075682529045031555738241363992296229763549167262432666990005668017157000212812407335790816565677952928672177954244494009566995713009090692478824326044000672067401668716864298367595200241661624780330058599738637326558641006287590920726423516696368650900258881055237495846650429941713504148311503102913966126176081050840751140720399440246713362076845185194013707026618315679418876053684885979106471047641826119019926598670708267890213623565753183783996384409924172402427496013912797453910700586646725609386855903036231480845190595608719348467062209936666482952687688937190784642263443358701915172877643352711466186060865878395031650159818885342442725269119457112892141616766518562097113757119308537259512331623575277083011492198003491465473130339025406152057002809873343451367528398494983486733485991146559881602197058241195864314387016858257008828313336590523680357557627882678622451624978578440053940678913929201699163171386979920265951936226567677340221053834649901052073702195734064154930449662434033268517663160680355151678326609145208297289706185430372774332506265108783844074471703539314697426971782523563070535735523497514565207439437133869164901961055907414508198897086929450493048181857237620491217668868898746046388680142580603249105668380880662273442828175012674091731745116124584313287058838516173681699784711950634392957883989531943515934411091711676770301501106273220620113006998361583684284460020749227682249717621288588340065430931864752816261714965903117634085337069173889716234835349338396408489380302673433271827487050927633534810317147661978700496117524240989431980500589546319247283070503873899042066169293027989215498318298381679335846300589463551898376400675343489010408422209414998043171096915471427447530137763459756135194387598686101530124767555970647952734930402952286536949179426910412823543226875081305031252192070645502995837580206261889569710112859654033625865269329148355984245671703875044393901101061201783033092976371630906703383702201928324686613043491066883375126922847490192306862772831550011602740544514296603697941278335186799085396153227131082358719126557972335519949102698504208229811545638496328772952168888589413061392856162841412845147370170498850816545520808045768488116916657044683302036508109997816844269450192127626831120719672802737017601889204716200705075637155761109360454857620539616680517266224248816731280550917465681742296534218883232756380728699315080284185943138311352650193326886392788060598125085871450802138117627443890457244045556634387841963531090029386381800897519935784740306761850696029801164095863030296964641352282039610826767287778366503623276447557394338815234466524200881525287429638183252914146607323463226375559974395159643873104549085880530661857783755956145465032692418904534077215909788374636406854205664301049537800441200266912654476243236585254014703377178182473392402911706227328972259517304453933437203584030105902021954171517659386310756675652069573720964950740158396246925956981580324014632551167610858192948387940608318429299610034161543853081197421975110383001944762403553736110584646250857871525785728263933658700583006822596454421854040729384771269413815207562743823810222893823161682739279812380920172963127403041060640870614931487821529643490982004758383918992059827349055645675135539449067569509876552922672416346384680362691212183934880001999429212452118942009081753571327605956341991694495208864555170189098151743965636076671843339976512260451825452491096982858241772725522075071420972844865822099959672820132790085551134564695909354018733396377675887370471015509559096836432100190597280839362562805797606983376436629370655740659248949662083153121238379493213592856332825401590273095435706851186271500984170245616631048002727402638106609045597567638844093513764668680374354807716987077552997727685707547442130323545835896079011114347466968517881697019786590341357888235755715679955591340824153594283772473381947985128836266241186500796877418419146308214855960515346777890936730292164789293230110740706269536804633127249944721670179005463003770289619788544494706666844393582137117374819765052348422155734213745808432481587011111481778588630309640029678273494126946009647855845829173708612903246299083337494181698137177819182008279662093974880027200484914932938793880001248142233360143030253306500166484090338419479795071561720271903348198360638280198860106378706237350353618008971453284236578104302166949317540647515106003351560318456882499451453966828529679855363751116562891702579621693527500121301562868396925071675663806340689734966843536168002180173409584247197889542684621737753955436831202802005141479841503262752977108634524776333791028801497149599987241934549439011799152109705735043365323188716891475071377171856141268268734155741543375437566451801379840639690711709449993236650437686161590170147994426939771398971383138929458564406900795070216645862968672817921656830483875213452739374827105138038818220449345157577803512549822052401164905607971702168668400679791795164911308934457666196552298221833276175896111548288122181376918167167902566384538531275802596360553216326024214667824025930243161094965256019971427017548654906424312790760393733088134660546143055869416240225163108774459212154642699104827977174009606713972704601919088368987722361087864733810395447112035266601972391832574945918830183103447006922952395931268533260333846573410311451692646030538019342115168105291656344442495721914231946190661947084978704716552325074647944631023360839281738771177737616778716843450038556919619082782485038871996162829748102601849171886588743637647837373376701014305315407303321925422576884775554044280552725920788439125317567447791132077318087844996503006309971565987118622755007679250557489343013663988501897976546553871816262716066611026316296969643161366185084166261971860518598663701182445860323088810305983759246953155490708795101751719512756689150127019116764799067673397864381093542291423229199608362994670082991656620923523144965865886135325242480920529861305468892117389499835492295798086594247497366798600530474147141071681189333824397860687352083764530827697979602491759896962689511793561520949731555815242129219779832493167441664864449280433716475355833142723270598799652058887310680186042493052218724731110431368006078687526622754715076772592073966078341526652275128165663140711916142211646226098489182882257452117288943340696090571281411330032800836026773856750835198668311326832598713734148515929109225078823184392117609503451904560371763357210201756257441850979873932281284586115225360817483986123401292328613879923408966109568325457939822893151528185110752352581537071293390676409991227417846963685192779907602882106432906950210882211793962883433544554807454084031109607093120387552006236607097001275139172030245574651895451024401533402270081311390576113389478087584298774220921650143923549327657488031629607401164910411031569012240775845326777880814449580467631559261843721571525261288175992662324184621577995237304123612037983195450602478706416880662872941003864913334183951899007923187640412375943070235149180952504020298358039617427330208473453911924252038674309332794719206421974821044593515931799884923692410300102027292026998638685014209512603502116313634502119357804232314505867859227486998855935905314558061055416932152928517345926120245049838791894534700109804738160820384727900560316256192171160546333607742775176821949291105455388098468857079344896229674838326087927531223208975707993363257074269615586385834996499111867385779071456280642679509021092797662490279749921908720688974320471712305674706613256110966774673781003360660804592820299716119714470760475610813524346732537307802974180969326641272624069081162380024474980839338188944809618486008670624536942377261425985537844573402333869267263625455303935276940370792517124884095963568823316056873307212844501571889200871146313034085461771639346545524199238800481841025372691962073873009501772080914044158489811682767717030457630992671267834473483754628720015780029394172229097515728300657367246758224013754343621326770273034443259581671840172962025965687343881224815923107949822280479717820122252693620738163821722845250842516413130285557456478111598545998982737634213024667769691555958309800716178854382202407283776610258122346648126295071707579872887501040646619648039983227967272116077267870078270638546810530408683902191829883089693221029433754784327882908072489024263188577275754929972054546194303006819804191009252024682359027511376045897340610030856220896897842468598962969027807592647317938889810916780995479702722793866881396795599593627383635366495251712043945520696612063834007508951509767269115658116321898557981559806542397395821879870976792771773499043178575136372274257287745478089530576735093137899209253969837983205892279050421937417260997847585379617563385430272432093667473422618184333355186558606004406650237003866416191260752989512942893584630663668742044806774237336831292621185793812164542932548665792543333948705993757414819747223665253865390824191137091407310475300588260637152117968761749242902491920666940990105956157893928410754965281230276358091510046392197408774268497926327038546853876056429058838390898462587616689576483963801493845345902271620679079172102192881702129347437356080225025057332738403573663141679025742089008066691545889176594699091527062391121901463706384014960453415924301447757848177478120569033817011843825260039403865973328722808650840541426920400928156182843922349803742256624610615388190021181944631155502976956234199673683898040376997239054798360871965979063551306962028220365517646233069770762806559655770442564258559408995283540543868214606265883798934353034472201804052831683050583948405748645235055947277641726573299315629200357602859050055813136625756746401252403357042887766919475199013466231420972988577935815693373754296468504858024753547037611409110810310198319762965668507834763683884161154462848778361511337309558744892314872954426263525219835514471480886106272109967798282316934365607950326890504696207165012941309963219023438050641813419183925984423253592581794580667387299564453510423469607139168455678651940686356851477996115194500826578251789312190717246894452485304600657457061682375448239675316732913388062443489074639962819699604658180076895805052798786473696728715387567701738706380987012937779053538996893563801649189912721491356432118780425753690335772060788802164588186765406125359510946791310275236068963147384009577065053425431559601872395144646011783912524144670749362408601940349787009526271171388866248263839118989827188454151922434687199457635042552494101996229451282088076338624906364158460866565665352279160358856417069190150390529733857150084770791095415109268001722613217210355035931149216900735328241489310278426511459772871706579932922199901088667670202979687910063934452316361652659216481402750251720749050517354449103048995545447005578720877812433203862218623897902114605602480926632463918150699419627669219695637207026359052542384358181170161632185658534890656488759355953475141933704587652746273777674830482933077644862807398546476047199384234701213898854158706910328732311841864245265743877302524715174533301725058936613639479414013931163920867458803402414782098671211743906496635700589221492328735160385492920191354984014289077070498792507905142484188037900835153661958808811068522797626631819472860151479897905960391477246327622684105460583280931007956452014499894866086830673765755695017490405611082719819519242961600829698536627806409534689183615247759053350655229140033974364764106000287876799111603501628946167114773660853355315064610832289202608162372341705506061517521653177351360894990315215131667106630163543278193401800910131668794945481886830988687577681216206889157141595777481910104364802760161946700510726873830468735057880525523850531381662468989575057596656983438300358526013448924692392660672887260989614770627374913210186301619687157129795532147047376940966472355721124338206756819051331583990387908043658967152263296880931857543065588473076582854201762080138415820982793148055343325646867183334014694131182689730749320856229241670956582351633095521918215557259714998120180574810109437226200815155507379802557467539621342654665118588084609471186175861597130932795964613397160687021015281704816849320485748892299163454225130740858454883513982368604738514335000163030324415502768175718077406828561466951451216815022222013954913923920291667574388077255428687595686090556012475604386246035352278231665544162878477564905496568745407706464060325516266234999303262525187920256979148988337662867450544798194807989652070807772900973685413162409690051521597522667755870728434240559241257326951474087329821311407087404644378011254989450582522088445501816952902133477524935580969715497471117140464749441125393835293480702326860347833506889164373878160138356451043009859529570877097875546707293917051154736428752001004738781513236088412520713273827346260110423839363768865401755628055187973199368650524595367437642779966128126659206370449186615750836345668384760442263354034622645056095660280118753687402012613590370402268964282131071699724895415735904163627281638595368192316342747262932764418568036358377034523502547420625053162990678467859736438537738078992615765660116740446110403975622401154309002587496024000720649253806628947541701564999941072281538272915310516759308200582746658246315011650501186241488765794177115080610554401296533362835641157883183000638832702536301030364039505787805238024783930768631396622733329001471992854925623483008523159163794727250915698555424877635276593580385988769846428102009016702371090355694111578614800194719583378997044344703304774067340252112628476968645732778899003581112911187261020726384563651260822620971476632260028688487505467284975872272885265069146265552287754113159306531247117907862152812927658174851308035105532788598446655778459226881849712109910966628757151483121480317374683304122771400776841365252709787697152154877200492294258920659259592584324304623535317412701902490829382278874535734643644763432993949893800715419437650920754073401296119175132400642524373095883676729866439978769566501678714600535172192894461780702020657603518434346308164542890983544344215563299431595585041015642248023278448806402578074073007429269177601398308469379430098602337452794131131451935958106913423150729093129410704660505501366453464124926880035093505124830410543472392085914800997733825647426423383214543708749043474247999366249597560292103595519864297095982501130378349573804524479179870862306836840478803425475799377502381577856621584476020907396619005746026091615604721250784548817684576639477907945511969725874966375728190876942886875841476574153542858669057233090536131590926398699790543619788718305315855636556554980304422254163608097296019890841227284331533278810184490064334115248633433218910097965824076907464527037472828689249753510528592239599883710983762588100601915741026789253556351528182295141433156077348987601551079764854010912450124308383488196689136576737330928255974101940493839619873929362798510766928610746857164662910275756096351155418162191777086000216790728590615734902648640166701696016094367537389134363399951479089927147680405721736458389319938975306998675401093810121808715464565394971664827705394168900004244410674810817046703166786466067129945803485433080092739841298152461181593470784092176459697307543582167677300827212752722963823379795828299633539021195903584914026012895762560693611431773794829659655966297864830901259558431038250453627721307954851297935520528380392480364997873123355483362389557451539018746057259801113020163893893123827748339530615714228594942741728855426792573621087234904389530188536658529578774764336784216768100383661347451590695483245299203378163403896335884645579695775339313926308808283286093377974934567457577784679989468151380072975831188398749755155416797693506163241745256064025594660429286283085003440085957039357365509108741914911686929808802323103152739342173729359008662944568838742226686382509496487796542771282946698052871041132073350415853863950422801574888437133576917647779583257322144013301149632071664740140305886712664208614168560959611925495466422555894765622206040215531753575949693816922211173520896366435344735048052870395433629712361289092951819438843402921653451192504003902201340400690572653981667703111953803547732131498794113086906080729106660092136027981216489054470962360102247198513462405344659279189351166291498325597707653810041096696483539878628829384975432475436053871602946692693906267617390347613654338649772287922597348586509056197729030112190156070343189518786207348733539658231817792496949471945176795282364686397060261587939106786188435790300180393191471870028157845390197686336798224907531294798977884912550389312832027726923413647154167335296020775502916756490234647239602161550118616577526151071813522515553644745280898417276531195151593077010862913040813473858221808269105837256937955251337328322771368422663383999405340645323286857112417307928043971304094694699680638009950590776047664584277472164834366168785817377337398395203745233907202071141873413285891834389782792806951952246269378701850763094627279957703139370893876007119692263475487193405244706409819783110308435948098954615288788792909664270804500755669809581727764096562720831498918616441394774137062041505567647544071054832821078143223253783586701823645044047879020042312959218931662214032081808116394890048357414694925958370466531893001356548681091679027973075233599464509706685663629421110432207662470468232746979613639977167364549916246604399157645375644088541694534886173939365036250496930499411043785331831405912038550242446542537222091571235106618293681045865265309078237840648024540007567400286850581532146907883015859571758970092824528489636663228224648986315788402035964247858032565884282750480042694253982229050031312742404479076867339291162016572093033396903569406375061425558571668214917692370756695842862836461657474989122504679275957656186566080180035035620719368175472495813310649681187395519966698847085926796333277213001512383026200318822152901006786798391731723734502994730538148277756769730833935237488145386066310381356820749559805862764821580773783942924504930942875348920390873109508603495459900046151753653361911552027468503609213720692537321686777907367456681931080571112660122852174913545033267523797244840599779114686298193876081106676286069598824631324541255694382732324288357602839259802196156782099625495010416985177091265762594593063436567350771419395581718232413430870073307096895771110820937336155133205012405721719795326836934070446296473399701486254538037029731777017362100091622406210854999910647959685695392790377597238396383518127460276818989647829894566023498430418167589467415248744258654375071076725356275208373970830380102525060133909475057062343368340214960664231498068593403309173634522782385726218140982249825063557672683109293590790096518064635165484168818836091254579995888305090220142393623935033173454416139168262747575718371211796166412554428677084364480047109626949664409693249739351971940801763295471147226012737149584532328712618093265392090458311253622130999067548858707353785506527604849929982499406327802713983604148171957097053524913429654449030369673307993904348360644354808496027649510874310241897563303791314188430405220915003041509487879742862039157950828851904930005591242806741231572744865697266513490433306090301269175710445016032632299212806325094757068553854909246483952690042033224311804970992404760406186740497379009327871116164651706527298922826575060970388884144630816723838805052607840180713745228460803754535011656170164371653418251616315687493383235942955796572259203507759962388343663133192249743996631650252692898888476611415237661149704368470203926816236760995290336678832176910730075944319403567284125917963595558495119418725227174404859339627070771401614391322758556936333265390153378971836645775732104930057099279122681825789124221663010316821427633544598932601887153816642466268271926289967633328030731338093332351881150729827347120966597039296712008075010346375315262697612647982722346423937390911351117060342309027458928740004373742805065019104239238681810803424233662185491162541716274405156572821721668304608930658322461280521020205038729688778370841071839698403934653705735790047149005242520691232022058993636682121851870036354021574974551834191807773427854796513625420570685395676403304209566297150200058973700054102607225405544858411244728922506129370121384558160179113795165508057233796031088867882240711312440436463884490399560724883437169679840106245899582768040506551253777118083247934142963302272017040709099504588792785816083553682403210144569803046708739955662472118677903838821858119089504551279024988480272128052928258669927283686842848149213663087219893235637211323373934591718615382744894097198198653713487904904843458308534334557137947129662296143113231887696133254794707950393755154465060258160731686932722820764245640122873982777538590122856529181917238447951987452609107478966909609121064712910739304923163164729829261558248448867879165345052973957496087980178450269603983544453401373747972187869416764447791282340442821956437637545115737392296269370755433877117903889327784555291128220398965717563766825642375364749233376054038536412041955221203883328536557579999162610936307077418813266808290071268760907138103165005016770411479394348456499312768498609474662500435805321081375493651123926015131849061031592994089576733570369290098848526238463488195345267387133431705678285876525138815402852954995956410004283900577610466288111994902859456127614335762044350354548115869466820962840723785672404170411439344043037778136202242297153790627743195287753636806930808561472071276225186803412344469958001755219874306523655100792727006282580244431152628083226643670943003668333211199727069315430012693021673287394349983975549166754519033390544522877600578942471336254519929434833697817238781037431170363003728715644722547831721039102510460563603505085173096867437017327644889065083353536513963779988962724311624686356920089348681154989492471333745546064906216580057467297338021192038808116850891596898821673654506041044668017279745077830708933436669136896805403428975734631021198449343562048181912689515935441143388498684443272480759004101002709112311371638814394894816126848455791943611159498001658784586322500553195713732750685909200449921267361870857889556074801037814420717584301301607908089467025259274639408008117596137760879884094974948097589582714020234480345215633201821534714610530731854134973887344440395372830428577349329918328333898440806161952685380330083912915179066194300542719906024727178288810973274169849714932302370244620089915379793219176924888373519641649412085296049825368874353067828237864529305545273355257411242196076861504416149575926451318280758119338564098411488286679053367676403760456919928434400950865745168246242540486745853165848200610370036638650416713448757956185003817371472186200182369702187554890918915943255619353162492059118095620456172261850135263049521075603973663115802083963752020304879934866221515151019650320736971428124597400562844697006850654708123450317029641501856903879398532452680576929679498089321245791434604178892159395856746005056890794541898308393852739157615989374280394169327730747168686572307973070876166645615887136925240338928529075463397284017943553828627113577761137804405431378020322993565826460135989486759764621230885399972571252349348016597518800568572364637633075552737989672954794319503668739692171480748964171811655422342290090044864781935708867243885691242965414923991694677654983678116595616326440779610648247256255995848392261787330482797119776446856421849568657482459511579064376449947837298492056160627116613300133430122120727011651174563064444692643800979210717337739489790700773556972146110699557767004065324994278514575947699368281268085743951142737858026969579254876264334132744116525365546083346526768659063986147368558052698916991749665629499411046154753025545046343676218823439253604335553549578800658207220941652489356760487761430718534810189840528371508601202900802646652392000017314755382163935066772199530430619993048035004356353419383730990169735769503901379861155741442225022392254499868429411392681763884078921978638534087441179161951082039237685504162889128127060544854480697494355388201938481622212215260326853014811107570077782199975272744184133068508136361955414855933487180194729396520933171025025172654235561678348252698509584724453199318942693088670232464125090133348759966521139581654071261528026496606507033022194178076333893491867258638645389899399599917006206779123134005852074381311305379417099874565457496769942906793734066286405603094228285139939712425857953419648874238531546710552861077882051254804166286121928148400232986915093935681749013222216343467042182300159070961234563170710657777678781523634109469938479013965429708811770590931908211957792915158703922765846987915650837001621481448317357272932956017812828757624939628431475397832061076753878831463286119657854936079509418240288413454685750002614677180502728654480130443138696574253266051455822885421400629734981104399983398409287289771165801682630016076692863230618005546546334976366236934655208717254543684319531220950579795812135252674290725546350558538463887716072933310033564976428828085759235165457357112591020115257296226200488979593699244818760743807740422972640324206045520636297976982360581654088520507572468838421801832075490770845143337742639935608779570820206321702384061569435595213939799865182607786622423070928234348917563166795437479369718540359951180602542603308257526921257173479730544623191242806602213514662082178290014814295925099865606535651548383565511917700762271669366838302861269281483172106682979362581418521258839673327183707827891539380570804092896212246927218212062859195769704005358657462097818700592124562043651241556371658013475485367667570934981851807004231375131581637688070601307312284561703203711400563162440992440226147181593705466383941729512669361760323886251989377561655980157517185524559621935122883016334414659844640805960073691288210838256422151341351602041019073950301200813951879482219223148985806691620366141613190148753689631711898467251538162887413644895984834849028614692933057658484579884269256031799866163429118027732481050441195655073383767557671323559134156290176956219760074871671525025371691692579721832595656641116387381058332543907972189112607743676907659949997863985515082584550309390225843353122431451155776715928712088353620899814440251775743997783055289346168243637975583181330543231942894163588666511469586247085482958387033054706672096697236117572031834920652700281027579202111973891621785844459082371010316053197416750364893135035659168579443359492926896944803899404439862862837105761484162643420165404029892796383151667991641409567216109277558840997711619418377244061366655479735398025676936145574855688368627979066185889782092685180175954182469746626343077694361892564741338804668434071364349979781795806027338219337332028249806667014820237032677444267432534687888772296446770511520396159057906621076048701045224592365504791847077811141797973580030954795691513799929387805963695356470153276520931025465055917330612369601592321604333961625488352702836701007878767438625137099459654420164622349940929839583412364400785179566473296011314310572530970663552054381704491254635341757033186241520549332096996542661945718830587456237202556926014430494605204588590068760107962073176630781439261346567576293315366520578416632417328094139515480572259139499567770016539814116077390673297227047956316611495901090032496078656165232612183794638311576593227745603664079596423248720988124674416972600013781089261465449223064436250880897491148570927032020352278010102930732865456458191595416346803729046947741696293290889144605685165827628655166837778437197558638868407769331966279192010616743085377339367367182082386558095320344502111895836802607325618487722995101373022813032112527434394752484713175689327421956093478116720723628836951980080106598571051056563563758785737015413378780449788095662640918639022996080206773564941551516833670977557237548708486726706279568297489748668439768399801504026841513364474402524234738788715371155710184888597634348598852069978779556567903288685473839739246321096051835391663418599260461256274037360906130081243595355801773833091785134605593838779991462262272200710468298686263301580194983180399561978615527595040712115067593146054247679928928639569094245884101565131839421510755627678595623614459107782767815959674855648396774903297118076711569122846293082883893496671034851292018816362136554329209782214117560689355888620721261257834039294312054477863792204635815312793513611771090042049528942185214004358725895979463930115854198278310020164422867386734901345576115457729491998100158015797017284825841510145193160507978415512240269763651371069836469187413173021032583009916020775007012675691571723004180174173501679881657016865872917086375948533028366325889514230642770001388992591809652365058510705970514153324318887642805151897471754369334518670973074602320316830757616746900696337848253023594008917879017900154746445137052703695582729751015212045639897278977249244472126970776427635602214122912634457278394333355950980423018704115487403392270872091652250518528066469737998690102592615242661138402338663866689115207664932319909466819683104200502299524474201907908576638189664804870377615947485232014016772396736437227933168774752804759531933014011588435714124322546504935350484975863297756120326213878766569754928111190760040664928642614943477291425650977498090252397046596080292495349963111708371173050176122523135785242989818577219667153462382681230058504941410883588020409722158383235684508980680868371821624160368329864894839948385477370325699796784620730814094212405460267871068670586552778479422752737304147271219654865120064701461015667394063595541347795731386361730425499215601823886257465818960503364218783087315016412480138643464522283158553449910565699330135354553707076795393054789122318883942297360131169279691743204979568864262448979819645281559629096538638199126207681102317857630722160549963808067247159917422757520187838013989572515330969692506474230211088193799438237488258433740231313781167913111700313926739745818424710393497393098227323234303613236440387613235660716244859892456368811337058648504896981715821818248262869501622314629906234763277572383143013939703196025784944173723589491452060579732600751334117077335951655556235789432691976851794064687960983844538467872596548812457869687901449153660087918528216166282406594873725371684688664488378069271664876959081598854789304381055555573543065999077944022933181571728880215733527801123308145653792992385060666000255361735388743700655639622737512591629392142631987108205863959609474519935171721837667208455835973227940112611563612289841722061970338640508957361584409561737532584675269178466238897138246236710361644191518866486838007740796363609519378677017180690066266571346871361116454359647474743552213773254679270776457728880175120381119339444031954489064407249509391280415783176907271106807320648761747418765426672797774963282557687948878096698277897640294636154867434155308900374320574804861374988585244135004971004524898759484748509817227923071867522767056797634236633341098758894522457155708033435788386007212895081279714559686914767531960683591748148248141131593000743079760887771576501318182605024109224888499375433603416492688798995574153955454818424420619640425786070273512413081575637448877015030336338501164892550885685591132294177415022501760199962466160771251602423701040717407071598443397720882398629299644311130811704964220869285975717709123839857169447420441166969545787289977831330653869324570495897951913404638044474284679146650513588497867027588305592004750311879550708259866581836665322679799244859169413822531391438588157274611117382735733848002227338770864993478078339249896581625479461410002764773423179831743322118313405333558161097455532773784124885157355238914448367994927270582019384787685705237306465120546945751978099970038857585040359424242360160367325330038773381669210261236570312413414499198356459712025777162949976990307478041649768661267281528427404040458038612362099516901227965526997151383834220259558680663936248958831213739352470663231923983370620238498772821921554695954203731920021919011370911998279182873521867526810132182335853174029684173460444776321424978893760747234403501809895160069873515993507725731452925589872198795057827375592105160021467825440948810841066093534925268719732545487961038712568038791795519648869763921225834328730900771591495857087947831554832713322531944061014734101074990832859479192353259760192566985012101969540860540703516381406337136080269613442787460166306163073360908129177987396037874403807127785954006993783841505380794014917510329397741951830143004872171925083130720971783065690354616087322648887906835841314362544448640404127533606413289501884839121579174079595283320017097967206045491146972338595973125702802933261790373298931752346513922068608766865830568924799801848752568578107590322888197425565858634771641617422558126460279004986241079064718598487966069437419722453149485727210167439566050969186746744654361511395488896533713485608484680658029679171589632882262765002579380120084531979210858014015182971184515828845397998327728879998645005521548831160524407256082367590959234954871486928770871276755889914703920739460815902325587400357314606279389381611166779291199029778481067656270853175543492366826864639715703473785916828082050447311410776261128537121362560892135076317523172431338367366662121390349939660705951622839529979302139635499887255996995096612900511718888539716160169832528340705670203290088076094017265777649518003527865070223228009306691586188541742493572501230312646568562356458536801461498405207974408722189548495298620523933764835976615674543382870283583975668511664089276879976638857668201317869183874643412369809322059381794622456269326694302267675631714965331734048712291595685007121016213376463086754038642303431712916885325410963305049524215356072087794603013807825866542735370346032281017143822059862958840016247772992365112123847210663033164989056036794834820126564077358370781561047072821618655206880646166170514423091577861492100080943920976734259220871614908381492027909804799572360711394989366991863038318961919716828615335794053804289480980601410271134398439409639552880241757156760782307712574683141869160728732224403676351558900825450055886134669785573752996524435427150552357602027047834676423651327525848291007048388613519811613715348569090587071068473838138076288627182083021802779734084332377854254694761226803208985381158488199084989598484144438342392171220401399950594241493300380579995389476177335638462203404229325068817069052836010369983595974773125599047129861953654936198799557317221565907314945383199396375863229153360799404696970228967580691787221647940058409963995798220169577280070226422578153571017098413105658435505945682751645950480922497828027175467827179066862552807348690628178670160538050062846057754299661105956769780604296607321537524171068521391725162723742201804092870082574450262795637718857158388230316738159554327164651221966539009188892243793289058828835827349960974116103794957366531614412079793895021883893848750456955129624882557804173786694695034187047396869341605511552288300649995724369899426664040235760081050097647127291656986882608165572864344532073831544236133710295994851179807574558031935960176891709708677534729981093727393753545258922099750690002047202074454969908400899900595799372191223507820578130251419396925123569442796564051953196380771507607820923949072511973823939533783878055840286409518750635110070428112341080783166157006935146898965859778088040718057280899728049557201271538527804879832089557664307035286539388570707901826247000700150911167489668074782843609854552964081754014033786418860237968903943284288035280397591936924319665795032349818798707407476730453382099561557522890337925709202810704923728715074777287663484813382432160768918100494371994107775851978478986608692828631159190554778651193504951933585779767803095550155032302774194989679164346213778829738754053230921602665323262408388732386681641642357660854527116032558997743625573910129323222942547174779974091592584232773008839291114642972746927330862272103438906922209781003264274855156726270186325149366101848233153227452521574297281278801230950457117010996619225374406431324680891775934482503543382308353595850629588201098997377120741351320554072078375729640253452949549545658586750113082246175776611968508030891127018571420634001946656149087773840057764451815665693162677724955789030663064538659722786952667669643623491944049359603984119550152310942822846758469863816685505208921167594749635390405932275722408960445485026858964037669557779022079107602017633723976454629542961460071024585918480716593399989566512049517166412939042227855240755257029535563541122925724633515742826637919909688264767350989895787859105817623225400812788204601251752620197513473452686383918355944850050576773991217033584552741879007153840132278203354199557232092206753930155240233948834559712507291971210903786605377172212804597957623017579011419511254415526007089846053319036161867181896983302064281733387939120173849690649004148816232357848434839226369531733746237090852858446172874947849015177175979781473286605737900688801458016926992393503685911804808332229089129215645714939698899417398845737937429494691571940684569317126958842414385962821729635169768873163804790859940559024358988476979520947714296375444786411065755562183660190931735826437532693025605710497831895070472762493769269010644250563703688334229010966843180807169805692784183524660822704853310152972203543565416104922471181661779232383389715321074156802739526193704391536801918620804485053320407396712600714203571399322949740526344982642214310250914203150028832492106024278880780758094890270522971332106755820512671932100649075243365901199376043167814784220488885474781857798966129513543009788026688434075921386946795844295807054362935585224512802742918383523577536834446744165627368443993420798397511837662040275234649939797492128314598656215416986159701931303846915205327202988904004210962940974990103779062977310737783410290918295745276794360320673914573903070845088674885175143521045378754100665743012322085215703398460089109008981571740201076780401052535396921116073535699050582754008159694814824269236579045382888287687154306054673860647232096683150447000362123748906984805323392930246350242794551606163429168372952314811165199026144381660741101445488372806056483697651858894379619557099117442789275316124274457510118954303815047851077973967186195333030266790291617831871023859752502927632455231844732334906500295380625636567001003476219118072224575296368328147735455011787022001577690571193592528793087660490092212049746867319807775992572416610995339162299016191705406679105354065962591177296602854140251841777003742832315021441663735610554491302245373140682379511032112678810802461235674453718214876857708359578022069443285731431591578572764118416215503831189910962732356902972093058056066675551446948404606808939112527297844451676917200074744290118737540701651445227265803042956188531496221003413293492422461146707893275756465501891434733884809361901958498274632275577054074585601010520763212049581550484352428151700635534237881390627109372741871637390212524801386854129933907592933694558239081264357466471300409929433229214843437904811047559351087001896136267362078402161971296501109184865353370130547964474103037185003145619631426966657264090121946108302111846130711825900904608201755910181324684427802987919427373058684215390217171733005243844446180804342927261472819747767024226957649979726149759890657610483227244856143644864270231940969803403779527706128711375298965214123793616479075882780255257201007888165694507871549081217095844723334832384478117291000260696481150865030475888408048783401929011505068971589140045782283377381183223967519788140801426860749274617392516179098275122451149133273384754883814761704596258195117161595125138084602942294479475308582215973242127011039038626943468551868373886998277853164829680720171152010126723037201992234600703086134706437916348002714507586686562373163961436679128009889859435008866071101231622992601608225281174870669889360542636465186628858751732184250579704020989554074443519357052748377100331320804443467620946841250452511741354664819169478530436182283180520911354269552240890844925529611611908931057424941820684894434480131621430070782618725316971394673114808104973802601590053378885583834265881006781656927546507417212133257213707585239437415218563470210698038652871352767460063913471629372198963897420843158753979668657260850640645602679328928028913925825379692748626784355043998639850206397949662633598765442425388579999132591387318598422472784346682501157535925437080521317486085570242461117485077299758126417783690957607323251883690231312264121237270317823585403431501662224811789678889024933070814750020299487633455193030889393465768855210000899419344369024511431879549750192807389828527766321796165885073127151555250208081863990925278592688906546859172012427532140224218563881019680090249582124956266161521787030159777723485695103993340680759014534443113383098211439123100977142858046371822638540745033710440094278286471068778927878189727394340320532558993544167220678653765438915235334841741250280318454995415427855075893346646833195496026975587193758197724351221365677645351128020121736843723558750523932261704173089677597069513199926623679213341350463408453648790868095474596408430664576897398006716117552564596354486627996526685551178629996902473601161639636465527458428869821679705711397538636971583146999648180154863045379603786259260814306105435530805652310025106025784671117062622707810457119886533140909686068902250288591675188474306076542959489227965993470884132152613617747792247629382494044942049222485569552705205618365627276399090158299469229548989482909641584251993584939013909040807567059872989961371042638752362146813426723800011708142026283632587363187598589051756225064872570054249845112241110549822538412571277984845914028502892248766417459764651441030559073218010615468406623047023962755924609613157223085063119059605410421537321367008799421447234992589364555908681787437358725360447382943352524451789888581871019623450902787025539201611493309674447294951086857625358176534385755475068040361896065662094288602372150623000367689977200832912608161302910834520042996188343844742537526107592178353591316695358542331255180638967942752932090689833578272052051632413648401813970659962243797711208501353037183536353660680638560800328716451672537424449380129633848170492977878778921344752001175755649695876423288733315155487154690049769601523038274708212340591426183982713247755077510509627765776082149914555443110643614669678384205004256874207309207183686135552825980336650733581167815716257491611358559754105293624712566798124147762515190405353560766539701829461693897459552747025952935974374605974527607456658554310205875507749319505007555191880306069376207826240846855963043457710083743362357930540701628502830706334444417330101873869255243354622279334601173841671493814395044750293762873223617481397653598526339916093768585213378545950306579264463085716436423194103428390181325149341333244086941085309377887956632552473519446794586455744728840484093788474900695742749921014175755509086135344020625138261415589942754389556554371355447289852225448943347114378083243963285981420153793179846174749670879449320005372066130929024719139092849057198938622447155625547776144696814994368638879680257934132882975901658248404167504892911968008146283831560204635225024788323327374907138399616372623362380847259954657764558893156212088040334697409959311329144059306969667484295201954399369150513755120130185418262886347671998499335186935188746769506320359292562562294906110858174750208468695451737176322717800771343912160714994834254505196638848114674307896597634320398052767828177073106297968212935527732899059266413531628221572201557737161511105433368481940300179385899977923639495150811381884613895023531268571236346531316108582882412687757716907530837733014490700186595483649371623579934195783305595181114010746713829923453026602535388350203858293130293587444523229981376715522816771383932654092273435620499206360007074666112739098846563403542781226035524967092787502851737033915603937003383828783456579148137197940832003922277644286692971511401786165271143379900788275450607459327538183101935450282648383494481958687378629389561392539781246505618144447265952146845411805726539956814011063877003504119753922519014383397374253839959473434796250187498320349006724769602308690423739941867564561294425903991351989241177845471263159512778019989240654305197484689462768819123387161755083764443360958162132108636105368693034508697570123210879960012090929212334948268090348241669643923137437636274198185294564356287403457043411099873924189968165413411963036334293320263604346816936025564443598516363507460616938703679767752482971739878115691989129376850620016050584930240856953469532367379984746230429491096289947639255030449651211003427131724313628059058022715545331158892382012024923173123338491765234694149383481969334635648192478881909313619787896345988428854453925233702764087162412074846579204352904900109681876114216694292774493462768714846143264769342217607195447408248216901520071259426624694681283133734745986936956386899770432137489120447393088266454145562340296047103983563117420057599440545895990486534080524661818137114860315138958648106529823680964683296956813599923417009288787126423235643363376541736913354482515555707647744420246021790008390612035816168007591027329968392789195890566589976726678718870236553743092947890347576823269591177067843195418757662790844272937512550321354614738631375701026381271618460619444470341260552511315649685856573522296541583368497063861053940795099371519942204553451878951341103407003190736475879382246580543278009140920516854847287989160720289666329975462079376728829918936892654578465585742615567745726225535363179158232460239234441502583374737759194448790009345364578038310789310808805986793342793432194693294639346723978350087211467235925677554560512717813147373603343123063523256953355156557290987075809369647780002455462492733814214309478042992233783707302115457144644609123101049782570739615704979962144165982974015340277325131745395317298964026103195692812619246838475837602013450947330245436221692882615394236980328325421403270108162640916180491519068030228361848426380730770482939667370282007434423888070844831747928823167163874439166151771736889840847753937128055491789205462889557229631293421380303116139181119277882653576521316655781937001463913878903967089586879832095903608485630552143401129652501692989384293493904170119692413338170528298040126809476058241636025446228997423945216819002584236963150737969012324467267009830656440605321195783562211664619673711762145451071842285235229182805788021552774644087072249069466244381900354556597970428857697572597198137304410068099202644183879638759960296855655402008628796121833951966507435240858918967875950374677853177081556038715518955740504000667459930320073395005146382890152284094696654234128418732139001733484915690065730951217324768985588530611501976546346493029207692544743132699185846810438234104678070488897042849444142819308579070818062202051285043899560140288031559731980404475103545542787448112704779763383185691212923562503198837967173381239904696010363321034565421471650816030986977393782248612324436839315971598542903952323643578803627589623970316300660999920909976166058728327015721700677884771223489778765046597530465133478206840899990025872427856067272873185607808510370791922420959514949800644099909040629097147720339901965434523503383608615063845397735274382961972428183673423646294182878048320825744307845907383956212880893465184251807940384081879856743760695014232289539605171462846915431377922541224429803107216053071715697710851976988465219618816842657639550047908267097181887589495727023100312098128075238864395975392732945432673801208313435890843060267110405515080824691896956241286772630647608840295040125897761246382145511752627183843686586159080088640174141473695661095721594571334739213858609689982114318315274707394000656688785967765642551080765364100296161678181053775098622403600391543691389887058041252403415347304909761137907439619964963381497365749883468033277009190218536500309083337312553869164046927403332347170589473776002040508749365476997708268330115178882746142648708991336340814207305714506637711667891643888077126476683709205478338967963965929581109984641385375578073825054642361042447455288405999803394209897389537019581160492691914817771374002936453849359094680029864659748974452408707376532499488504620425881341419749143620298620375962969918921786174479784463075662063544125714579055792923344086742066776668098908313502478639218799042679515794826420249260680723243566741860848931496132708702747142727816839268134684486884105704113538513331155895490841655484814693169254025898564755775004544818265718558554346828673376352296027626442800903267981437885111678863625682669304619717681577058059683555107751272737840615986583312649611735465537309498698402083555746625426691865416770678760871752078445279843297218597845734350293683702136723890326559583739775475079368947560386322452317060679438327109516006563933564744304179118669461005859086347155826398306775641956317980035248967687776864629301931004095412565159353049463717770140736403591660805704630161217817696541308049882059184487799717188011898895551345755516944205858085137488297997996333940201056904706357663331305690614324967180411573700251482922628811009430956453365651533337015498219686351635480309307896076499544091175474155745614225322444055853425805599754810502970839978503604987270032466871907549326268882587725104546645370255412846492072393963976837120829017674501659045607560723150799809328411611774180179632286739432810072521059765569596547190049766278983466441247097066675616845990266042505473847635239979742094745997928227024440123698011491619599462562289107543415105404745217422518756609280267985028005920564691973133036611207998915235993943298686855183891268866323009807218213787474341994921351790572562538679501286249716891413580424014809280586645082620568331769289120145716663223338794078378665315060424835774127197536390057046596903856939702623388127690259530533492590311127616705602417158763310020852892615387122010252811141214463653153008634221286930105455326644809355486312296375901236204206121134905793771434715215989619614596084752350868031560869918579221866818897969901654885597249695884159233588895536938037293451439354956665782565418605630063552010820540602475573376340655257111403373242737371667522036291986660966679893388147404054106310675065072377008130842803550042050229432676052298679057505385405900762391262608627890339631810704696955623728110638925363613967525876296558575450402805263538286548418997648419923037904353942464367896730101545990244259606124490544506744456538473632523684514352551682593367074229070904349347687006525309291735284402784150002205580890915625428454829342850995904312188648208798055761442548963533011922498701533211770624639364895627464561991433771377727781688099087455203630829935873975597238317740348042870050230853162288114057903126095680544548485720065992708956708474789338240315762989911329218850174972642628308618395840661206892933602747284566888417768274460139401031229144849563868826391028142257175100264574579711834725479857152395418824102511427701059616879918299004355274062886208067144467984639218219337417778626227194065261508289227424582453527813614703054310855436754697955294779058331321343947454594476397123480415744590758126525556552020204896349406574393318234713554212658847681970655315138944984546716561837070045557496276504241522890610201926636487736576205871773804715669481849892646836850416258490263039884103522696807087876917389927575520216144766105420145704690300267896663735112101742264959487406045016931630101081720382094191190185193117058363231179536165183156978922888438643458692854242964150727354388711282181472818455978335129059828850453164969838858593462067497668609530360535976445301513543672982157099430363105009390599874846439676091206757133646640160676998904989214171717563225265057065804798918020104123560080517466493447043300978622886861622204548370200726932499947555553030144699741830662671122778348603177039518140965265250130214467143908729232621077059664205280197365813845985375534695162099195288354178832849495905491785042884293940524343536070126229094783661653074990102521711328322435927907313535834206368189144704264386974577078750471834487186842868930197797462979755464398577626309636212254552604434582447972670648200749331979526178511035516087202678883134790897581434368092995175113212933925917164244890066340509110413260794882241738701574017148032166981142523835014719670490211704839189794029826254343992192429853158566308350394673953300440092235702894970517204098582555811084106237975786127169525753210653723280361586802023022841463994750208115269676495213231514181774452493421214087926626200198346317959597207612701130035101092293081745933191765684630763248307459854060395577151126807831876733896021618396289433511134357969541586551837397572184024315084285608929460636967683500216082418718599103076888250317306736422549321108745045614751903740747902519586686198147266178849066303122561212786225144741695297221595538131137746101768881798832265056135630929658229553973450551762454251412420724529757173200345281414122913840589312438148334142306864482227465620797630758154340305943135456522919794846940418863362620800832130289998772464173893466191057504653595926023642716740099854039476440509347357125280703109068186513718450920569556045409358537334894636451936792755466287703781983549736781964585525166324676006932880338952345120470083155949176977809553148938880083535498021472567454336749986177744469169168151257282187849614278513352974780551332400882463863669413543566899242174908116940226503502569240337166279474881817149561957398450071529208057974484403393617447633327073441021206174085699915169328225195718665098007833716402583319761697356091219820395285800754382799657529239014989821871668068236629677961849491694701347033198496079868482758018508598075628709472323253427950144410997724411809905896231499515826544586767056628200308767571877549283054655163754641932043261905860465094517467163811436903212826296647699092695244334835607284946363263111027254061195866000894399401615296752362105951466703398969580278614090714184111630040631730119462371443550560164068150168610196962398823944662448797538533826830089252248454793978210056999040380554036607201342973665276116366185039934201886698920143732181163689655393824889065521399972661258841751785388756015649153131038843417699355009027427078193527123785971581250549823338984328298158208844275946578058248133367313249314995442596248360605023875212416232025292025557626454133380795807331281722213350798136035487608051065820996417891754224580943335529593590298182092318695360412548364769493008589117103587495487919578796658593048749959696243528905212188209665687650765047687468550298425728854601285434489583230622496629849613186238830090694985849316811126632145862886415808257925595389439324312779964717773909345961272686435195359227278547071330709982933168154380618569919879113369372860654395660597877885606273368619303808812530200497872523863506338570174090852180877662914282223191352170304808621894817678322601587580144728483529021401668069698777638073042460041767571445386937284215940430127278695333614786699320516294308015004619282617875872895819322759044846637320579123406562011643470235920479027899322248165477336083985468451516904545969127621885428936673600840730777452771276571006571919012264537212755344287659513130264684567579245259734208212377748022246749901281523352084537738758325352959049865015484097859880868551420809936236077302636363415128945294774260950256721742051014031652733371190331447932155891090644021476030521887600728784477785185966700115526834607878445262434868819006736224413101155781425168540319809303421809481206209197406593751692640228939968489227671071338467150500301215684087023663263624606647472335016939048765541259007498838720730323741896506634092241434229980352914794133985024366978308160194201533128043062135914590782337356102183399984207797736781935117188031846432933920662197446850212969477345412187473749722487923338211610882627597924844895927597976052425665616017444203604928178086852847703311559068290704082627511876419373361404800523155283610752225913548321300991995778748353851902825186552501732130431207480788863509656224994111961527706235309504819642765917351746808146390411127335348292529448016406480068691834606720670397134750700882886621059091008317201032654466023025538183662937895028412638976790423925810404460298062666880588945559848791220960805819116151180997028087597906371917228391442002894010998535542938906888754888913075871260352673355435217751156224708287771475254487748973412028864741386757486590597003093076276001405834670166462144408522801840979581100862897922472894728175725929979840470266132343889078098701940878854552232583303417579717982798032057147567060998945010164413016742783877691440334977039694468172731877347772241607941753331123463359639623777923949744215709040562002364640046065960394825036668115989551805418060995620826694025097378117962619561649597084022596012349734097028273181732953856326194683232157350981745773985694361411075843361303486492276424594846601771040577764700331076335486459485851210579485529447439083270057946085322732175459279046152689771458163870855935120462458848474546079767804280662768876611770885806376061634900477481117014097615145169212359693202768437645617383124880435496991050681525867563994529631740872151055018610183429257343828410553248419514741677761840557331812551534356328829259396952690572755654967597548084603652821833792126122304915110477839226508203886262341646951999432069600731295865112527460831204412163926420095006577342669468080861998115015643290999836709752505300395616393316103187308462048691534364970529006443650461215605506636438565460695332679843698723008565595278464243178486398416946012962393170294545103282475724160472027811054450200883220504605183205436599507005203156390192758697618455374958362305285508020999449137166531979846626635096316355509502766397587091015439089042581983194152853500936231346217447357612864752435935822162560936281598557126304948800047642260802495766044811660720131121660174075132323055892374889885607374086963141741845155120411740161460085404626393306866118772667306036641340210326747385777911309101418028403340312251589851295477650555141623033101369834660775604366224022559526139466234455952663632856541144558699636877648315404675846356743570858617522263248383503922443193231540747247096660730551573518945769626246873179807858478279175049118544383365111927384365355303032123971864228980940426848028037966229498045541991587575296279125106723417854215803968815184290215405935347493925251377439057094833295665799635555771890794570032384285065812972941843255817620796940113811234581774945522589873894757856775899876510840038465479738982638916648269174612101513829453286041016277329517228648962981595577195446626241083033396917088665823179776177847358500342199392345015194106758025015808996662037603620043585784670256219981426430401421745538781376810574369348591729753514701095071178871411963015511751134341406968882604454889170833327255590101510040737932211212449198438151249429622107766837509974003339677252435139383868076769991815317560941704485702410980410948975734056914359613484400701492855378221905694679794124338411202813348792653437190551779560335242314225343356583413478911728688560076476581446807864235653575440170755496995942667387743844925096356925857738069276126027866831807358993362400387461302380122344412241436973352168580889302625736120132571203819892779712339093352876837241395127386859014102206753559051959827089385857586239123978686680650288722001636023962260483450447861373165767563702138639026803125207595953467304142920172405608846676207152532519716390029107484854195727157310745137222133800585084369253264773799134446702355159874499505225025443198704992509051248859715980658043352965773273655907195699692463467187139260527179393986918963768992971292639227566480337367668702216316706000067636856256904506351962771402687786989709071816147045590267696814377876657440134659962770152282009602376586585006008417144262543090971736941220183024595165064012394165260191094555272518088014053160822398137562035547392771258951433072293288733159289787502509052427282329077629913402154543546632680384243995495793647758445135663662528512381318040887508002812835068772830894004498576188152903707723111376036295628333973745391131023737947595392285841804008577561477905112414426736604345749439176641918973834560818034611182756194209122973048695178011770746530119383462239246944254009435235124936913853432650148829598992643972118150927871649734631980370406778564755410930653141022892674469217087977764462930111365465970740690029161653049346173983423689463515915600950696938758761061423895319887156696432613536680587817010270652077289460136151728338946633296904402256389019614221684477891931500128727520121803553238546183605515657572815640130088780006695306963545297218133299997601602668881511822211720527055556525708808145526856415659094578843036935138640806409191644616542944821730861422620687377471224684639445873287211110162415404149561397160039336314273454716399606238889167150311279591372036982629850184130711667199293087657785539027795482410107144716165758820612612872040415273450066849336955038844719832143628126033192928406075037171311250081576691456961645026129999581409420698819135073841943060210791716691758431563265649063685589362288262923480946675928740705641010209642534550824632837733585277406860257035637542234399891700463507508522037510774287866563014755616748570976186284345678242618549349846135468500041943086391477293987768393044875299155386296093152637434515419778104373635517206521038915330808841065210156204808265130211778224882532855114198438523417630725054301900977070262382912808202881233786486053072023641629396701458691407956741351949871708151624658462114426162497883289625784117060389615378505411234991505082600143448686946811545618462851706528847073807841618178795602434563355506027755286962066330214148693425476637767397707688036223445183316107361297661971304167977879218602427040814661086421040518713171005819433889609871921307618895981941599911521446450457866989672839187452704727980391475052971257885358503185345888348061994193119605234571876086224289769716791656929771896915285127270731066304100562544242953251044318194299339328585868612074571197652842276493519419171755093072746936753048663013865992656836492034366955553057472938853657869867586126337063524183433435324388582577661027511449675777293919770305875301965810198492176053608979346527725145757319996155185450623626631358356117102916049422342683201871533086413507516313162478679712657089314350189627609448768950173192799177137610557625036974717928367022655926811991838772290153723593118988677584130828449450749598214048730631694933812914304950191634001828811081892862189674127008009131878101048574668980007025190515623234201202144350094869743116251951837600799697617371134822501296947767036160339989598129309508547936117202326412229718900440503938637318921136028959050265028640633387256021899215085945855833780969612399955141914288255961800596330685285535422815380820097174892544235412639011679035243802547481062630131913697005047520085767716687672529289518658188732309280697252140789089755805355645167392680135192787222991055201699322573045713244331255402959782309721149377551427628548069403920524339135759564592577562609130996533839077959825913248425355633042992363563059931921322012638804440054280736316136652313627177370009072344558907161214539582352501069243567559234768525819882291516693952971968669169708131080138526102849972817110447372240480072719007249853147942870062432632263602190787252738482592468421940922171335425891183443100753141987946614372919649057927190805640237478139697937373661064053253894891928128542975602356758808215630427336685682076073347616121257901904898131448866561977217231431382433025440412498939788213714150169888574448960352610024220023979887199999766968771704501008870701688774659296006632420744878216251039018557679219217993278629058561404336148677938332716515090374588665993587437959388864780731946318844579648230091422281446055598620315915925238578838994857333073896575334512065182017881904761858412867731571070903408853547607130487138838379125854087285815599919490928220425275605508310875397657425555078367514892086842470487180802755849398920313335620289970373105293842124289312944489744929023621732051686026799237586699552309722544482478423098825981957421522988997501516006351899208396930892807562457462354504762024323204715653528052129365859040034729137484470774056639336511154638648564745676171242637212746185008235465993923884062213592950535831637345384468252246586584092492713282961869032914313961911259145218004429808215054563960860323245350995707556706847745928867837681643246262774378349252056131581728833186660434280577421039857159505426532775254336785338823176102463947201625142459149731067673424110391920794821163709269157828973200795881904631347658784592139588378556226806433317929388203472369440880637243523863430172697513013010724482585375807498397746358177916606364489980198367373850838854089167483479758074239748120674449976306459455985991259513428002367817628524371110929534245789878041381082424884168663543917473282452580297945444452196373212970275967176942000600813044489186740114377352674837014204739790370987731987618294838463967435908887147719685011795451192169641972793301547429310961065777819510930916109433438424690570214739299262221378839359506224743664086232135994846043062675109540020079102095677274766353680442630030554967237274439736476868725491202710267115059729114513539239965115192646416558822772295285672495276299970155872479634438459836572039214174568563060351914781893416831923660204366058425464606746511768750405119802741659007314832029780110022098602781356097170008159949946112991735982356973446685871758337700561330598192157709802921187604347686993904504166326726854536581184011209553009006692997563188437301069115491924644762794940820814993283875104233687542831600626769969391737419696927423573415218892342529063669086351629398052752554314742443918263077886984244821911436276017295479063500790068265170920527742983446661805883747035524813040148004130542326079571062901337755553082482360926683260271220343813067391181795024796265229978632563445230150210553888288070943761717291137295137130438598449836243559067200867985958305731839498674178219940340906319100638044745284671110124141029320595232942779816478481683635800420891599441344037234955329094244694479403006603949854893581991333586770854493369107232283567219789970695822463903695350766650141604702525122735385531475489417475107423919297179622149597500864004289782894419109371633142710289801439562228845642462753269021288819694015114559618534210570541116371211574490256685887753170535055865024680188672847938442536919401263260750636634517612041740642902767023456540430164028437083495236765791845307153945641506384397247539495410930418450224981924414354159803525541799939165097462543191074234153662447965883608850538308822198160988141415383404952653286623752447476103824560263525123487302007173442296398528667483987531089702920732387812638851584353649883494613551811347095260481058012123154324369508394164105967810980112056389143863920904783269354778729242749218384152740318131288127514362547977669662502370911758790663973195231522075683373973364773951644508140070413731201980293669034771510797213092581328001059534904114429272438554745376108703163282848632217189202314607873618526442002965961413943117926745302720017914804783869006733824776279103301274485956302238543964987176479352851084691338666347701861807636426498350590494335145151124150428873228533448975291477947960907394247806453790813634274191874101715718957518603304908840857003344650989122209179787772647429472987698588180022263555982481492570350221576938927672253467704559442269926267514387381640622374028191693584607149852786660711551592948650069757882072983132425331307841578770852434460286960814617132540640841084268484971278051327261313101455420897796624552284622146025205626378766170191727020031105892918478910976058359879763656487910177549562226812190495431058868271343915123353338314713524360077207250983332293600256420069698668501366159405877780955296563772809664098195222865625474244815938044583117006550517499377534747187704625317724403778733400425544529502810296572295856762933934291055486559015036494566961584375129782115867011221258836105004284943972933568067886170941667306627348244644817624601355770918348222909214721080057251759158892460957155182825489767336597749011329146635647217241747018513405960064212571769266987783062491893841152709578655108798333619519589681695558951081807958574312639436939858363065649124182112162866413279596878670669707625633529950155191487926356118585279273932535153694477826497974397828993320291518242283366238674588167353572079765917456076456797502214077134095593395699758575481742795271327437063308102731621540602299929414537721393226933520971129938358027351016489444855934997281589834525953247792219811201360187216785526844359373832732690225548898888544052111071354560369174113139812894035455686022930644775480952388348504836299806235038248215282339316899990921667190745872800945816860525813070186065600314806813275213623698572926609998803304616277914105403904145761795424672816186748152735178264684434660840421405770984050657691505907349602129615545185267388567000108771358414012733367582600017688582358833865216664701693374023988463898354123973020559297370833883983936630380532597479819368212859778039156741145615593562519977371810304864314496445214960309852066274555732741933182942311475812593683663483669579203779173475697028669368251797699985109896015286915919869693075760005827202572662065755601421855418230801876350459234559246872024788003052754232127202323264348405051189522097748908281493255017577334659012423554409413983957048723573337207631639452904551332493912134927988542312556362040681805278529863596514745603475174690889044851924274293312484439240213030744209090268837207024575440440395677139548628773905005438318683374987421702028997180664757544205884383834717156736920862650618716178442937992750215063422535869656548979166776733630439203957123634039195292549584429239311392591155357453349620151857848023906190098153079178803497492421321925774048655928293023363752652618902599423015730330695936911105024433858602999447667854649475120226582562386892880703133843415230867172149724404354277361911540948095970570004191438014693309982835818309086704000795567270314078390845659967226842553009701876352932093846657138681431841256042282596951992641658376032226518878379827260542742142128938966744979431257041013480006697894274817339855398330957021219594370076537913130194859947287560120592540049028693310215905848490069246220468925463424574213402215918501644017995901265375414843251366999936868534942281851778242854714242186408507266822679541265698934880737789687507246125803914163152112499993315392864699865736693916356619759256769444375725310928760492931482657179873929574687277500022423453842665300325476303178973073430702614046728563688531095679645541242071620010834491949972880768079051905279041740145403434131177198620495682583105999769792699254104143285914771887097149630177665495123990434537556463228849182234834869612983152599362535961845475650762814445378721492486510195600147008914313501770039074644455162111682879251457763585203211605530173563378392971827728496929718279570982440057636563358169934813411800326944357283487587814586747575598222514796493342022234816667082600225994451691167551026803792219412759014649451269505607450894015942074272585164989744777543188285723078876392294411122497923698660294078774079950324403194141029151748068281603169616635969318609696079517947340538862479839343086374699474729847459959832323683977962366792501785675183252544888648596074403222225984572452453472925769308958212056425191548414908107306859445370348409340694753742895672448113621764347829580040813721990709447216531138402002310655846950559243096566659255448576572412075263975648891072594890069142694071698616881910836874298168846244178193832304666481130578432030795168325027452491042538957606705602103081652929965995240839689922216636302606029179180690692133967052856140074137741561514035991864821342555759749775289605658416530891290507854165963282060130869498433317741767222631630332538690004003716881580945437917838548882159855462007394678966556250303327837205022497573117509886153010755700276712096819332180454521254722819058734854331313267431375974723614593660866536551106092357660641247886710695395308253891580784037941117128211743064603312181839353131884966269476177323090308336645487999284212901576046179655416241965593036839201951769745875488691831748181973006626416350213276296066525580988066872602606954725171280112737034589564237197358700763297072343132309750748237275100043262741124871594634381552355112933655478817895007339687318487131141872896065455968403571881606641761961164165368877643210147189982551428725045059060552216409352836576121164907388237407362356677550790111499534070891245463673504309171419267684772597178436233987311219336433124457726870293242666607188919508194912504031938943836681274865771978663725952931973793644829005248792948153831364144447219128100061308311430065152533365859825126054866092872459204880954554021163267232776325902640957704712672617580580108904370920416491580775448904579184327980145310079907199639021650036211016755089409296626304458800101144620230217092502507606306567941800008573820852177555475025671877049835384023358663830811702522381532212022949061238843019608491687706067414673114230052757111478750191330337549928293108760862046121097628425400260730128647423388350921071318388597019532625007106617156491683420018855927127443426479165767241960796855716008008396332698153819565126766317419914973786372704028733060852790958327014741859042295584477643574565697997187967677981296888295927582384157331846638902798565676463202090022640056819838223451356791484945742003739163665607483860684990376336228850921254970245828957533503495482942258922794040454958066743496296916152098875461367436625385023197942394275425125007644142977006914846664830717001615930866235326295047597934715441071371018374672001889272223199085909516728689968112666085576909672457604296075698752167440377017499997283850866164975665614456950058400844292657916540744097732420739754800754084636228739259126675472306349804770814947712061640482818710331399073360900792236701834845805613361312832697437318691095208268621478017790592044271917437554032435922221596096250126977806878361650470808728497557829017228212843457714255274041892429491066383040885944954072975304380235186622702726001262101959622473740215846484269387697478594921659095720151065315260844408990831928098118306003312684071637632629400482909385052808516723119149186678855893863916283314808671179509554183788836067977437130328848404111219819363975759346459348852831387648270351465711668936801946881552440678745994472689864770606295326389247810769757196219189112977801619771422369184270913542611200621540754929913090882213413080720982359272351294470318589659503988853594299154973180841220931165841446692090482868098384381273924222141583906839950761271213315157631291009856276096581392476462311182125410228730272432960758188249332028360830668198567216344705739253600549477409777015785018515787920025587272320466911098673221015625745205070630849597120487557519365457771977187901363695206347234533117657589795245028179152055478168202838494208466068381669874305285024860769761223101518361417641688125733485546476014670026089108524196297979795997291238482234324258045416649861308376959293704846709582431967487339354854326378065692962029106997823186086605834209882967262187676014321082101885533102530884195379671536483797217389231924389982360997799048977414942107573656730836698640758593038624478831640044061521402256763582045725317530047191844974493951800313278274582042094733345884659349920628921114271603553325083539337718232450537711088950734859915974031722106361702511370745924956616838264964844139077300589243452910859585384052730311244156474670081717704103127810117290997363083744401740017637457433133711014462093050377304120279479156704143570649232561378373528682688956799564208633742036629857850554746198926104651093346036222903171265953247248648690824186886482570127672424074676913712251286750394980231962697262088311524213985929802604248465870001074667910481749804587176819526432464097944231264662655000473717162179681910261823774688753406090391301385481853924016016342667467874977002360927078455795125545205141241819177706462590026565446776011359610133202432582995551868531863231774997521592506056257448993220953762067007265872762247841976417768391731679788030124266842935517328461301234817934331422821375415311344464405364409659844490172160197619007478833770689728687676591364958233601115932307705406135336069771955188183268672158504896534522732375917403463151088043700292674976747800999808088640520665853864202173984237382474572526461012666475141611155776406351251384423600160647095554125302522012187181791895971103389990756571104678509737212339176760890975769541969102158027005343051950363691172665482479313005372118165870277991108446881486085175870353669472724249602685784019949177815622547325116919820396524330017581981854235161706979011110382031717119515825838302332532379571833911928262505771214402735572257552177806631156116588823031014264535475081226301850726383815120954029633981179120950114313662313012389722672244516113356272679978150844189464349029729080135231753707789219520466390484487999927340066628613839529474446197449615742263897028473169525323849694866240238101978777797280715424408283447545725009623798681960844575870360136062573552872675135959193827788863921612362666440548618920393850680425621946435582902944803018159354026564211973929563156980606306037743369611144133205645627246516886907919693804107697652646010074087506925459385058174818190083544663659697409845767227984378535528590794103799153808016042907216079384307010581781565112312257941863970275976812854847137381374139432425556003012649421822855518201345205733702117440859923464629387341888570671686543390187591333539379889920515694628809558244558976255690694206516294487593715673624085575849042985294977929787814221531340746200245028335042085288418933303758500991760442167304596926118001634234567773639495012083897457277269182090172571619676178961700446402132937717525994067033584467029813512645199994585706893710909493793165395248394549906522736380938780731682604480563446698727271885046066638790702482650714870481462312249785157880372242038293792651720062612940110199869873548869513631302318425895020896881429780719666183625010923196479359483100550958044738704779277583880574171901417575838860521058569150393328407404975908023486618864450043007514429245741937991864689183550183506084999017659554985059465110065393691514626024876365559864813056698615587270803535334205920735488086820854324306749252995198890064384544179464788328814553449040779975601336151498874287476390700992595117363034736332832706596316993123833945268808863858317434717131274466584552653270088919492406009082354158371058265463548721942525296334971286462641944460685486598724606734116964857044487827988521418198759326189061587658669136947002691339295517244523045353202476458871580983681245267812630081005926885594494498941979109038665927634679351111435435818675653140903863122327313345563767686020102004741202588853124065367288856548887614086438413142196902368481307660488830634509404847525827532300675821433370955086203711676428907925341321724282859242093750311427887795138631398616097376865918831329253646991200009463319566962775976384499077260368634587754392843106524783731095719187718442911738531354770510385454349879050738339984553483410584267393901893160668761719422754121365082436038074110733893822270896712961583815159812366774139848943738920810665923860565909772520308938898741364736073081608907056510030306678543028212512561703849336254144831172287751796457961537573357785173075714478638964771054993497177396348975934559672412699390608893019563277542838984169486905198730056916025536409207098512172520749218688962347445863644958640418674499482889463471961446496659253273537470400730163572221095934821644259196886351381854134645542562331613068093526772559589637065447147951871769474218122266929616659723554637604191353244621576815785137050571359666919179056065926822250350876167623836263127886282068702007661459339440467759080970746606297608010863454416026649641009998951288250083812490720823748461196855457731602885450897061789918542718508629156711079067187947073708189878534275293581010266192902221471872377525919700301057357074232990949034695157896967392531457574747346286618066871494545513949958319478344981493437000717352539349007110854158885518561332857045288874728248937910878163051207542003450137538034706784098702911900106055547019603443791699511880681768347400130918715730648643347664872293003546855865587683706116563166265844635517114861836018710541118523112595634625076207743967484957759641940985152402041754233492567755586741599798566919968677041141218812263408208698996725917062993137339289938509343614728604218990822958022623740192855591419320138090563927004071119374340360307616108294315714921754919962784589366804478993407668493371203048290541152671252085672267749873574788288728723025149112472864849188550622736967266589173805914804628888720585186702534050581175057040839827903524842300014482262975725662554181284598398433357077090375850758677766449034523297000945400374736895881950821106760054922211809641906201230782196680296052083842204447629198761289963331174586670420495566056300969730149300531307564166841624107707784994370535212102493467691187866041714253804112647035277581443619550762470884289764505452506927947462088366925504337153914187665758782371928230287942435073413318118321346208847183443032970281368604994858771737575286924822405700521851495418518609017056769963734244392777111228818332496737048132047437265387173080766328231327325448025481952669288331819456459047198919336182701176777325324416178449895941371431952673074395039963830232971838199119662840294570108968254549627544230296289138666828156336035370983012826992984110088876382000010044668563797088165275838780815338729228862439507656867538150456387402099076163617073304220406127830904659071156907103233657532898362126758970415320719707601258880230072620494370511674468192392442195065057709930831577733267654457959801319663243137433432456741134747382670419633152778831285895415192467901062312019154297010807229811243176061772973837231534051931375917995404604012113206467186144232470808717528045843608441779381474582870324174513289942380033641965277563061960109195695632832610805933876845259189435171121238349251859273234282768791286958315439366561015817120464078843260844811073078058199707819761266422102358468846102724273130764549143343190991195662174102205273382738000166658254858509317372146706461181639220601972201685903197256533259684086245808936917626278832947145940738335377629491404391963293923961264872798441427421433193648055939688512674285392255125030452317563161664080250379096671672045624174282031462057654258502059825145995955038045927295800102813463081734523458534146205049911837144689337114632673854199075259171831886833797328895563285484408536042400424646982579440694269832929439443753708397961536413158751359599642310126794975289493268103684342331345370409009049934563701377083663311933032546503753831452925394393047174914245022922955393343456392825169579317652562986734023720539835095664440870384518715299139164522257623616788808206951298775720527995929546717567722484877091512869046251861149147604178402934155208385561933927847730409013027434428666288447023570522225095946983896281614210979778649086800185939501790822766921296976315704695148069838993170651478155425942688956876652425680238274293847090802580045012368035419883185014860576460805951069025865949327135927955211904833323574732382418513271486140002035084164720577527560311749281953636975235874356329200149851538148998434686736292099062199139633136433874043946975080945672030314202606930554779083028532862996183255210657964893421612206313487566466675059413358447338932076847042674663498417021798594694959160209931011141299999024074697025852666670306848554497105511077495499619846920423004561524065576227043887155592015169977218585771683739659377344442526898443211727144523701250070202936858917449215353238283339009136655952351445592197191187230948371022883434658699498142706430546227312250429510533049043051938183083677370887590205407672204246555750854073746962081275223760495950140449475388629254334063305046112443904700108190947612669549753902177855876297487864659446384639709133205169642383859772242770108923949380424250799946146366530488315539214209199508015892746527313731107821728879963112049272956862828976576213226224621196548874140876062412936056998647931349013158532437241878583855285635206271757260009551603485937222175247124947562238886907932671553284342872242693152616767588467089472453405595445149008425357974334927749969240734345926785078611511287891762373494641002385449126104049162503380674953320325067498858286004165619391873594865996589387080973583549976374108545738424327606625215868036819725942047091302032768196387719411637549563719081535419362544783777683808074490955208402717745908776193799709650215291002724356366494447097164761501665816666223838493279745712715074108010855776041981244406356729327024882227723726576036691884936671170790290122303379652395695392491431633848526257150381810388067284598410889905111029336347495207163457097804561713146133203724266482010661720636513554367098190595740673279759940687268542562474330748635712028941852440893650604736068177088275961717766300570015051038768982151389244286476402937768550774669524140788754375317760447907766099783859930465304534726930025403388184008817657413614945937710782490833955872912017264592976535617063843048941908277837933643874558034189583015779633568452690855402244963473552056465399920729000135860658816131446049036143401993708638508207130948776421019485039075852008554649645095662750867474891909429339727116697603147458527073419675603952339692682778465312131737492377552752424811979734359461107247754779758748109834079405437245353940434104546226647113949310893754675319321767973261483153662508805005659489961861379743630254105451112353071486762003675614998767484158084011505333533529611725545447430540285148496533240548883052653201566812391425778015243966435202142741930649204443727973403236880677951041643057832368914070620224570264085920914207745979137267835289713148462051449022596018971303380924308632957323700476135884304866878163768347924491126094109456027635210954976374423302852610558200520487325258652705574538789767688896130611746350581758891869034309992707895482553207510598490538239653625010292330211152274099406701665425224130124987524350160880708863902305023693750701024993878619414372782511922460655133130581432370820980446827082915044769721654684076976459349959633957677241435999043883814556970441304524501546976072054986914227237629527010358791134719824096878516356053912226305591781751804462973880032484696992812456096408442302523565005357668644592426881252376853356311793083613902945917097904203322104323785843774272055269949000303944658490372389115341422816485709973673925219809827383196873780428236134567277825788553082776770819520231529562852127555660993700906367382162974160577383126619990951337677686833498488147730680204837105790629751260583993877642844395374410180876832228759914356265218742308954485617797419795156971516806641304327997084440021524491507372298348576574353403120407189318253361042487063517529924089112321557743292039826545247028921380881414064239915770832683349728511919908485827105951037989600813711710949629617087877562104805592176530748621447337142412981522098891937379376972794669650641101382181666556177851611595169818766474037074276311029828103526834223056398772434971831540733459181978546917546473369871362676085589040403525658354064737886182118043411836249738297243948695674975889738536233650640368023849313935630466548746516015477897263194015049120511459516572008774742350907627478672011043125006592176899676649985914396306128531680180075353999464001733603817794461069289802385852973596028333723218132009092114518581517361901551716623303181135284387409329665274541834843018421911175438044392456619979410747221378542807516536568879468074739307963036516439306546007769080359569732322556970281823082345034977021556858014504228488432335681096716588484055494711782825025877857977805408550403033819558538962796677398910474206374063822855028285439744074388112365326903601982711656862617744491925393251232585568660463508004245834554241420665128271815276811925890422374057376415930939663739794088334840249167156627965787896914285779786948482802534841382276723359189051337535655320376090970075955178643004338318130237124595896719584616715719166162559375751047475462483550085962701019954544543919658673139602034765569107730066180788236835221838283928331914091825159290135126996041725036703690717463042797837747749766825042530010196101620999788160771634506937623196979369561840572667884871880614151267787391449317401782317715751597743315439599694072065524975017233345323503203046566901636483836048135005703032323373358943702691037476063932251929951183792702436799184945724346627349513252288041196235384864394683446393771418886525124755634973351843239827704177216985005423594405513802237869942126031625436315394319577863919867711981610245457485193693436504559289624319902536610576492210281493809698286642429968888663456157496545904625526762145657635855796776736415313883431636350925223686847896631202266514013296037726291076573291421667353839609618726496082822597051525716406390911110682921331067134902160409821401601233460102160198884372244437554466195622341441505198860170763355010209893575388749823349221922125713965483975423067853887110864919650998893484151872274448196863717478834814023935525822669681583209635203449486178492071258100225115120640543200791412466905422864082771404863540044383929559678976455386877294740879958484873371079105273616114961283285731654298862742653457480440680412845723959393992472543026618480181676209871047014874450045562836424049316194862214460788267308919030172195508741481918379119932542937432120697595182329611332490610262354878984931527257255318523237318830384988185175140039049988152398025265092415610339562691238460417506106403882018721188622250074165125844196355537552035919550162926274064212506804285975178008339292246669490289861135341190630917003895586075662154387849469464316549379346761521711712544011459838137424722040587683204341884529836305129336009408084269726172040596378013702921881752364105387133881500263345204040710430083160668595467883323733246879580194413682583496558841333838593717838206770431636821241552104346591760909669335529231859237432779422112034097531207699849811234491366993817622333975699271153027822665183908174122323914071377056137283341059406630083179983484125647868330207689784905136634806837333308485947011133615803879396144660475555449476898411738947199709970293288901236698931322184088536511488938014934139103063278574488322267005950404547078989319290031989704692848005309895174719383331177256891519481598466161100276965378196018373873170962356588239947175689389324566014662567120361419148423812870788964677795589551528501148237081081741251263060004864670862580985357477114664908929970270211479803366938042955495768616596464318552334744345004196546029975010488306022837822284221335070149241382423474269707184205049730395017880062780845687273969446128342494752878628015487158141548250098021907369072841321691924926697820664650923760684631439204508294896033696923182255975236234506829111936638586351078575633219795033711601167174005474935285100613260002023391368846934888389108583997179561743908810518597163042183972595106400488209407876229334990472370298702052592697860648549756784714472913601553281626557079077735786266288004839750861368068553798909741817771490524093853252396106287251678476471922449019621744079397328313959479724188446985280462339524203515936402095054947545633920992613726919874083284660324879782757988210860747088649436616806871122325486471815037523902619163382170799280262006685091014613815002924273666393319177043479359385543784147409195048058164638945410108549945003793112544984095163481021936680810464335410496162679598874154418361688428035837700671111439222355103151206922581900594608109642727084281739739258258241823048141726347135528553719052229389350078819626185640092907976475570239251867200691695935316795522882408095240847935658240780637114833602471110918527542466532056178199139427412773946646509341008392373036682512848308021548076853852955271298013789707247032197418722308098594101098629189537677415234361189572890452181765003506460316221786251079972751221341004861101524761824756029032958439865013317063350223375836829275321765471691669272976843213960999678841244258614765813407398213872426588417888917006324170736684433442278440275814924772558228918421458543510354963747580172975920482823344846643153178278043163591199982946777840055670653718258602159621533515538928938046058282316330675715142264826610181778316698845304773611092679171827359125503991983284593837542211489819380023796563777301392190494748038698536537717062953245809912321669164627622848009665534304276983958162218291087149092200036583538139335992974500364327805495892436051371189269344691943934950370696215382533300846270825580807232861954330549440376086354915025473584877152246918208528421127851353962724603420466836604269772192765879659356129853265233093457809728866591484808013415450853220457975296797165377430326166846020608424705137786364060648356634459779948671729780863367803062636617105409374771607548369820464608865662255771447774032771188841252348654818753018117332661224526594665964289533287634527825644450484245109240682935031743527761514933808927832854878056894705615519260063234232440110374316794485180622036042681762930524671591522610157791479013249947090005278309351407007707142498191597065281932473455780921219734869827983776406750425909574627069467639563461563286203182590467334508028736184021870337710310137968721025916706912639912295045498314960244361198528554226759947740352231890584385228369513658462395824992030846327148642602227365374987400545479586508544077115086624782052268731931358752384298289934848498227529946959916600056189478994333717599680820066268073785209072238521390247005108342933334689832031463167253631712719953788583577786402318578664924513091402347497986830623401522692669097537173614368871769838051612915240172906906491240211438941642654434647844926731001305238064184315579291629874620124653571232547181214590704754027782969499595347401092229205154649072211253275114318430281969848572968534355239928393072041872805677331491699905327196631573700159203056091749443068084711995829281056356846855336062577922762130945896311624090706116978086236577096110392473735996946936408936507975974776785329572713566911355358159504796766705991220963816872836356283244954234857819951285110347409995928155985256794731369730225608192823416342161007065586906084271802673639946913198896140022672888379582277372319728048821075686886381362856879165352519799531173321013170434949831508918528996582453034375732863632412851638042031982661031605075793173234767544552113707816905817366903142243298904743778513150303863064023262039853718496002147916545084875949349643136160638127571672425443687949935637914759007693882563842344282743089392118920539325009164408690103359761907842413616575133916126964639621005887546717759805769971738030031299819315101991563728304776189433996247682604007840063190307486850588894633998291221978160384784487247251227827562304936298917486758390473514777667448849128395915149408296096319967857224436976872189491323466541031197423545150782120930524897409899854079695818096224417554929046629376140564367328631972224268902627563125076295587660277990175157077991903401304938043794780519155048122201625632082396794490825882887853623933508955877185696336217440947724155480915579419986615000135486867539562456513789590399230928329723894849542789612550312230704152774288535668509907345160415516637232051502871469317131085683938062871162529919720018349935093265419285426092738796807559889196863905293303897641025003765119136152523488251658438664265510067941154754806893751235896146238297824431585771083589367967084120766473002421339400246404491502207745733250361942741703058578896000355991721668441569197363269225872906342755216474776337264934097391030314970887121706353713210793755227049788454335995840827085021579393274737507075903404966222333703679910149473462957850743877460899501043926010933487876527519638672710688810825891788320873884426018824178826427070095719993089870765801847501986839079209567165481394348262232176623313617613541569193076233595176715954130798870323523908034839726741558597767921972042183753596890015485430912354889103164359457828272035170186635038382427995976689009028754985960082718288294668895185021472932204014662257687587820766970855442612051744153085060008493289328870286686011366483651318749785949639808902840903778458335293216000345251646445140564812816039870485695552163336290430416668158410513064436125185384557500836535388520261840162532850970510553366643083736020842332916005509666805563550615892696675151972908680735336987114901352026807742015063201827259350432325925811339036737790493081889129181936310547939060026098242553380783916736580251000392253686502682052950366664231877847257437283026268554810480851814786282326497035789870338989941782751600776331631549039153350560677517120461751009046668329028756229234807442695028256966940887486276209000437929329195382064976472873364392089861837519904229893377160586386945560300019287576800770381991616837587012757611655061468712686643685836631153057334759463523770167145307958189948756701084258211969492217559853802217056312006594929427351663253104104023404801540775135768392249713000874800930752726560466763503693576202365004445968964590156199860887460197267044132759868500465409153148016139754709107377394417568201518029285755924300287611222184137944600207933460648450126157908508210191306356134147114667642804261850777300888410440945873517964621803066531623678610687513752039660833469081637137482604297570401279857091281295318168275062363130083944414359272619788585615269382279045749009497117711265826188223443968782463891279473483739722916288946660789600467876840802975516123917088419564374421949572481565485164362968581143830253333256486611133862432927586525281076499895862571441340599860116518415691685873149391221212815902846362615174992602689057126289108859195513707564503759349325537172337549315832726913144069920196647112268496241851711772330489781773626343996877850111436415377353566425845569377161307728177549350927849436757409285232597327080797584039448442740902509620563787370439303927158243009654811355849418882297779017289161033055101147636469317577402086494180692829461898931829014917462872939546770561910415824738141681735818690966871467570535739381953615020538237865621975940376780695553438560367549656938497344954081228744562631597108687292683342752091148990554150077368092530371031544617174005299987034812598770054460804020787830023207813497109397109332381541919227467462653671910629861521331501518444321710504818770221623975285763826377913969389101116746322144125254575262669041907080457043498786169019763630154387429773960566293907186998189701777327702894977399106951433788915359993157712118797949432187339727707568470502355050282751642046587914892236503150441428781793900662870427315842491056347714162484105466814848504356701854688381792302456654200160578161567309136103185084538620485476097682776407186137974973150015671945744253853309453539958457710724481796390544948368463518364868576984849237469496861696238105861189748059706234639311352974296234979965864035953451968651167418045497974688967901905343395460157849595693899608139533354487883548756569929671333862868419226917074279366695006952717266551321828352527068104185641443862727545073987082484797417094515155458062786841715694611998969232156259395172074517836310587186929087862805486424306017745176849939056067745829281294388861918387065529558037033510980853674342960126145279314475403830323922435927015590263057960520086903541173893746863374764656686780979630473286933806132169676136393289975315304363569688133757275073656027244649757411391748989007847793914652792345478413384541883182339903299496483877388835902386668660471810542431769865858897225779575253313429507348204709854108331846990590658377435138605983300781332979984015886387587205648337684789829583110699048280611859540487355554338997984810195353538966869629510598079738304999343617462938793575417780822850464606544473905845811553333789384132769354618520470967923681894943788437422445689019955459446356004763184559172638385576083294127832417293208035272569371409488100851475894670873459634373035301455014634132236235707829729919903451328072682008664414692791267797522503724219612247539790988963331164134825140921431767603065775960774769644670667054174013484028671507027243956101463572025476963333243019704579051762999118135604297485519268829271330851825526406886505884257143340065854964154581269324619870347432556760599304039238022720219374923943035180846829915686778643525060799283405209669079092472611451416997685565710570857501633659671005803333088598305152442228648478896563140387103897808691901946841777473478893613204125531578044406658021532806788952147762385734938879504431379253054878588915888280634612107266150057833348203609074179933952618791658446596422697445328429760662426050050450953720621585970861612296146338546556648668527370388319264952577160604299394195782462966422279584395215828922240040960167130431066863509950715586504593575370695522208812160248077017585833594702553763901555936150610480286725969420420029880833339944623231895429324447418746684115947248340037164763177539623788726721801041612253065874019129360037203670908003551325533696830175474627742168714088675733067767369763638258823273817864342048492733651140836244408376054139854928454772614868221274704005996642721143425708216514025679481075247549874990126671007533643657177250588742019712752961399360930174224621596479485855953237670755480134376263007674964035065418242955889566344919375890330107427629632715257416284936642222832782234946806175608370659747822038486828222742310502295288220639383219617214646744977107954410702621644058457626513128123007406518648426900625833517281576799269230354997032855612667030501671690760663818630726825195160587817867287462780721552393185093701800143341984493271075545824130433169303916148549175680357494296729784618775239513847649394894919971111212609656149684556285982795887204198737075600018566698482845559467216405242360799502517865886137599256045216735775673996764882354900775821160251653022785069787680973346008927450843531801909566372921697448871421799934972296963131975064045096757558868172327390009233139259208984271663477133769132877233445143830713185747275945356515343728078327173793823078676615080531311514388844216447606918031406118058991035244692861947838760401680706698929523944070026760209720907059353926045542378549092327597209016414854938293161469959774465490352550453168022563445549783002953869981591407467263398100919392439722447771328556363932042275097793954180166338730180678939577295209023489364894579259114186714976787544484747825341756571227133204483663523090680432450540746643216055037777987848319291515317711911817726851571498588746827881103028697605912211254239176917010831324368145967133874171522473990995820092520265980742043413087387816321321053515583303711537427847326988803279290508630751277322902713739164647317550921622250411036869291052729435082615215766687626265940506669618374621626192191379010240446040939856366137673723151317053992854267172641371443585133740237360852994326093182614497709778535717578579742122944578189002660647501451321667174422156375869802651721195065032568990880095217400869221913833552529744397559606494604553388734596093625234734818534866103094290513593038986730905653460260889334379704802554138160780462536638199390617824303681166158646801307015334446471618945244020662492566012395034968071939795496449569039146636602621061901805429061957254005323245986444391100950899953277207297374543128689113016271699972126092254656049529933698477350332497570846039223624867930842350560889417723088180112003463573794466074444665651469646395542587888111128291570089207636430088374615511984813308256216743013987700393392082448482848987068217672533759125905706575639771528132109319453608418068718429954086927299333054142381348852137279721012779747640769521327202121521643665891954869499431895701126271474445160257850196334884929874169734093789616619851761712063709189671360004916632089719959481478907118025857074211840330943512940462909638932224804849794555388344265632772716365363641339090041411068778630182081320275121910014270295413969793374920054052202986149842932826148523351373230072973866740102905010825845463615407439496935182243131558919075991478736903269038976535100261303891794902032718515815910840498967599895031307783396795362072812017807385482190603284258466954786910676033462167222989762592055968741781398604266261057310956736026768924902399922328552351854324641372130588676136462140187610210623127526789137740925726086406577527057854990841527622211493572015175315253656738219130778976472394167601889980165294860893674510396685583690638190206657258414583501278006281717173367741504574231519936602756134421800685163270975312333616438074673047222471311359302235065960337353611488054021219200477463035875102833817026385887807089646752254727363016844114997624629299140586303303324587704742352195284033513518894647966797888541173612693319097939446880796251020580829837411264250531136007742798638200314831207388447094427955590635751258344688785925544973415547811286184422419091574063252602380743191700434645144083951577299969976998393549313311065165304353655667773597054393813624412987269076959966330804670810549357187114178291225738393580278350566510474037764642465670696007652119949290678624235008254870926878927008449247396105433801649978139162724044067246530449714861631218041143807913628647629057750982232164175970177839976420481006578129593518638175444100411781709396795518062874638625897037075754403964130245647580301063980531754568781018678991245532212939397646119183745986891477405134806207925548023404635984605227833812574824183225041965618191798839072913765947442981975166906000170001251033528484230415409791476825363277675805340488743607822528534940509976318534033093114967560505545262754550269175810352070283284085969850398112818168637260075006064973208907947306742613091895680323407858688740163774575308219077773807635830453010482750407359505802890346380868665835886014487047074349400993785204338359900830143603635255980826717510594924303956736345938951472948455385696566904607989538971542310088275051636126606322700748270492259094268258641991257817966662869401392711512117158114835872513436523730129571366038572665320122060849141778418532194418096602688907176531842781775292147848315342743997981424850899904374727902533188799027638798090531615835862465971009683151887170992296988380965864652485967960738013762058593187448450006222603722846396276729468717546283691186021813683335610851164946283348577631484609889043234785857121621017472565278311185498583293589460582758135852534219824304424009202858288556480907381458984677581217335467008601789633051672449586505439244496535046611581153811163386518200873703063622173623672567290078163751434545309739633049406284937357709834164631257922403615214837251682823475201189427076196409505118447106935449524053812171939509328940042085511867675287376835072136617100918179186028795089123137815203849064992418817657631633050052316528037754286381673020967753625018337433032669677180008972602358016807600610896902241887443133039273244069319214905211912928672954112497492408603588829444428239281072417482746548363174670218905260861043799016634519410757735368216578264392054639540343447568601114622208801967315390823613427777854673379320807068482838624728444209660934178002144407413937393571965544169866158462661216302575890001431683587841380719368646693684990544972592483068832454889317486547751662725814935938937871943481245170286323138537452927255614951236384410485429547048830196441623656536986034916348816717059427858098403502275855398325481871110248214105844154604893026114207309815090421584086711913986120134948910314995055524522525030011799618168570150118702081105537337605695002413499454504601904649501898665284663329361728179179720374380924900859525242420168873435788322874896245154390747757560642159724017321687810011677729425717748798492063557856399381896410693083874902190322531419421460206495574747250918064628170450436884734243242240428666865289475950082926399855084677018887479635462010361854279486927780357381665390533289517549518002905150602841008752042109149250442681406109206039363169404390224401388657572672008886642588683771899190928115408358437307490217666442250918314563571022233691680985518076598851002625540749590777288301215642702652155040971716762185162360859633584423089424277413102049033474561061984607352540997188281046843607256515706512716136246333013364852682952938530613037154721101421016406614353972673024487814868335868548295307985929211383687661645031291921309001168265715899137543050607802977911810979040761867742332277585399574079117387637608133188703299898090384840495981599998066702974655520234228308666214104468624408270251104399739167100548114451359923120186176256474830857835409796153172204730692849203137891037237836935465263696547411470401275202847593236792255168066093133071189608743524599999463435182720042804957566929717475839606261980464660375466037257402926470718191064969518485778004633595299808408641004414399171763137906298092318460123443411016509688167434932582915631491681785236967316942401332942352567270811603573195274281160646652787547343633722149159413182175506826442095748428447919863276991378506692291473872552285983558234377858629118695866017628269252343005381145307590303743328249307864762705045465194772064098134427726635503509878011938342960674345755961061101552617629866521618174198982419367890372485976273352710418357218076780489636633865560068034373218196670359502748708451500046075111776783486999740366587550360544128171468624526323715696666173468622010508663593943166231573854730390203681794761643992922672571369123845447397340069976781411911593400527386286682221460021335365894830843916059116249925897674875757792616013577005723117042918999559860066968941635190087597507546411106151745976037450604288456909368769553244228840745915775439109562055981858861278526423293677811241542934897229170999572460358359896018205796039953595950974443283726462197492178799091752338055742649704942811706037285037507048145022479878273515818414960519938217020105578549164271136183286278856614725588962371803786444882230722411977085512916256023509597180361756957450620680605717654722392530248838545268507821161232274111580663524925095449846397280342617510679463025132342072548689382540070753175574882815964222871144149012493518442450241036031938148494405401460175302919803524016341379495204751628535074601564734046254221747590772642131325276711948551695753153620649169241531313895614160368439116621569927627279667909913255897967326788094650687461606411109420484821250736872435717449139641416807711350774526122808022580489948301110655576284316027342531103930645291635436061527021271744389952529639545977013143792719795970894385476337358961144037138311652188759426327084990513760338708121774063060492263460967768134013844985935812691624053578093529214676536875405310323606508825741425533084363048019643076201216527354777598260329554998537694317018314732369529645834155810813740443970081316593701954232946723196869931783258436242706090905433288822249045553945749097011506388519105784863631548607391272339792501475783136587195146527562121744720743912298286023685253209305161614773874640808123883856658540547224389503079813777275126022858160381792563196407067992402059649707829693011525505541456053982849104736790812752015776230933968181618238843025720058892773277405634757931795582017889068338384899132766708014900562986479070959017728122693607987803933494401181896036245568392005611815000547144352431315069111410114487029879698905393520926745675191150426015286999044855714420145606210967952410219468471521863945675789251745099904228620208396875134849688410938374093615432546056234454637834174361251685805467600560957015080379177731377788532573396910596175431649493694699024961655639731184427978721239533613762007954127070393810657248911035242365821536306638641885252460562474121692737443181413361530198919583738304702482523943353426703758103035674837941947174278403189190205266032770746603628114790719752928275036427487421339308044384578063916373447920889192007984639014857434956182685811439184815947160494098803919980979683495555825738126779004431652798622339713466781634756098154862982920481425788658678180816830651244165828166429944335294414666715562159875289193707061432943939375094208124769611400885981502122032667425879239986304860998326334224486575160499574436938658194655414357550370548854764511272480331068460426670338830990343842110080523522469545309657118687809269548938265652499442801019588553587708617211020757404785370491162579596920665581928669323481143834419560487660669667224370899169264704527899387215509270945148305216324361065191980864915101807117134143921960983393201073421885019892852551359395940708404303123864034654067742979237196301617336863132878971756004157185772555300612212038013341532791259875393039813564234724028483411885343776930968470448990520205801718796188641870765226757247388558548642445767117184539788910048427581772700327897517746005726579330040904997603172458649217343747476872086053112580970589039848086236793871874853224405195637831807646791983099457766005005891530177719690450821038292894976443299771620274716013383012668401655140306122840709436205790674258624310819594684805720909037517117198340471553841513204536807953330199626931069952917350088118803053273111902141034342139686024953527934086395745292406527639478914736916033187145453944396173094195890467268682210458321896185833652151440751168372878754891588735464910875931974586448019723791740946113644656217323473860910466531794832231193473473443108751146447480697465164801781964575967901639702979665564335489307306028488464455644393634555245627490275486849485329634733976298416197971274486595860681969262378385277444430734846875621401970996999702588789294480764880275295634651362110903802382132953631972522443801987441441244530246060293127354990929115558826719144326409033534195796319890434800072173189014380671484178184520847495258965766643299282196360146066684996532348115900896726750729657330505388457746205791321971700299419866930860095864778572529595611342048930788744278623911144995700134814408494315117072408705965113393020870149680217982315100451364168297183752169391763865306251412271880745176449016077230324185420168189217020652529596595363063377738840040965735801382496796707430226491240854463345194502538281251933804845490283837943340636346649412261777078749035009820293133853289526260739869510334205906133194839118599804844420083523447879747601306706634003601888143250717810820861338551096951202772033734799478210774649691400689426502568090662140686919768207630878264528068920943262528367349360132259147788707081410040465017334610107888044846209425862631221391382105049657785741618298953370453035955743371188064723479007551652621541185906115147877572952602681005046628034299097308576673584615651233019472230533172183515905058034715422275435007472552367960171048614345122534861359053785566145580757122817224917792152474309823520381287046509243550416206126717054630312231895132900204605882658585728710539550237289099299376457583302481538086114875807374437665243816252882766978661818552392377783950640834091590121490291397655180274936066103379084229566472877067787148582402661177422172415115152338167943278848615535336305862329955348665486994212619222120762283990376951036409951509248935647785067380814419644326372283467307923261452790079808922764973814743652510212443925489437184861380022036404998137229758045420667074816765389661687502191545822578871507611636747132456847082854709163655459040529277409556359623668634263098386785946758040681942082390251618276117388042241813712026473766809895921150835892069744323386013983707656733506562463558943257031950504203606824183958679078206452613914176460419218032516105754829597648592499114538943503513806443970677448078753879282009446077969193377614831233961055195920481259196904426094586250704623445860100099422109248735262841818166075017425175113210123379270848311186013837196523552631629740990173746766294313379266801530454234082223669943952000619899919811635212400873612536154884420439788959991091169946036135780406244736405270598476741197161062500152699436351817503175257270658437275461051177598593548886292540188581435700733749157682322334445018779698444090452110713176828516148417700182313898871714491694131565966918570912933092994945279578966171513944475751720722605572130719552310475918103301730359697103149676058830096701980824704602054324047590016511333967493724891989711346298387059540435274854542013759199747920087245299368073984969164599862713773908411463546756831311906484196717086328382463652960096447347360567848964667290966141580564485844093078657854864201067543495670866510696353585944548899088095829777088012503601944134642383449727726956475007459857032007514792923073198304705636629035316407155041284019431899872010317356918352219315022406554769627367324147991141081560370086816538156214578116487381414655181868346303435580508427538966021487707948353860585859026219469991531883418406518129441993352980996674014361459275035286370611299600898480136524263091373858671766072208455569160364623069790312313197947315490966655991554717931142053406207161918874144575206696171169859368090323159918911097688628826117477166767868638826518114277707330173764980635391510790377551997527082331803896458562043463298047356075149993961466297089551754263122190567934096505982790182846623690543527747159309531748272732380541493792076503355066918923119659167820873992376075510048304035677837814310488188562873641385818156733876169904130779828211330347625153629394326970616618238947720994689329431206365036280684093005663004616594455031347799555210291044241134698792640653455141979181333975051618622940340892650864023963932437821255001462040656090962290693243116364694135445556877353332329278818566116409282748803616663011265133495172688226192907460642456608731278762610236483972861076657686746614059420844540742128149681705308443080880337254046486475197952121018437021947043174141223528969284657886692558067452668809399606669433521382954331161637669486945756181776806473782042017942699963966535570835196399396528475776165690188866062450734216084580409594681045843866055847800716161679542649328863908292544002486924557718287900977010290556740099111463348144237256936970608360174660263641652393495088324624573796517173997777430603544608531368851673426210824951786432033829772954368003671395957557949146805637627116890148942023437714391823139803522246862598188852244066326218162772195731561413613041395516557877319228540980723159288252429662172806131485849842688055255538580008126768696929913500460291331144835480536155156365351274319445454082672466983441517717556281245460579417485404005989685700876977379376383410807129960956823635208077404138619727934630382759464533420202923771943448837023897658821390565151927010360507093661531212515534382622327701508589240631087871255593697637774913631553599716968673088164400180188616670185627283161425342837598908378011782643335502432229436696622886141654329180835473202135374355978691379577616092997279249089062617146261159715754218628243518170955857490979343914389853577301788799794920490870955438353036985192495046058744725233692372474644713295510128374546524619594958462540032190020116766241654303146716822998908803203191220857159598489019315283831560227896051528911021213583921784968108826677117428956885596448397947293797392528771842335730358362008508279717035033218255913504587653455614846950700368936218565480623291533598956896852673375505140067192080094913467276956188659447551569047138633262447955090407712979608288719876151107319598362946331221086001785077924200678554345281072129320572830745093386528001236493552803724528400925431582146007303561465857288974569065560637946844728698084470331949421916973892220506100661727496460299077641002077150731107001902280036487229528088311129585752035322133067264813087718379925979184956817253358297418286314496805762402664120708390487401777878610822565457380215961891770351819344502221515460428528299524111343077330658961818504024811615444672938399191679620045928289445102948721175411938390896515094985305088927501295478218430872232310987624683247313255963552010673202551580435198153618955737465028540050433736579386329815881196865094902753790212852147608176848931101523504254630311401759145714949893943005938455245055369011617788751447242714742226059719110937441990970107179506658541160104126183354002283015609198972183247563835463836594868706029728823390545602969701184509323768077482036537754569285404101426783849358209475224515444246534667236636100745631316588781229026177629520449342007263709806870731913153440642375913732221367016575894985636014210579315582648308815909140398070085393243000448523421943151566622830262272450926695801853642642308134864058010783210453912373455043688538718377462594293158622754777731683566432223289868627521789489985563177273006673869969650907864169189592042738497090579855880540459104660525356920845143442951815810744182139910871014069102063019459497314630604087940574129605160435513482190000516454514084391746170760140789535518430067858656860662761993064842516344361161461137178437494729005338249545748551996489569884627601197278172020453524820266393078430840063908196848351706406503644157257292691122628106685690171062648900945673477688326775034653256677845155907247406124727011099670611454286254162678334283806988164192086764788919230214331816158511720538278414129235847145552740361880979240185563722174942807565658791555459440897711608830582465998190801801737233085646369662898656011968946417850442607162588838382955151205088223494552513288853111515002096096726576184739235952190648680894227317930585721036940256280346032957938970168542020662352358710180700025978504782854378003724701773620835656987658818116647984649694977152187275022167424134874211874206285849246379118548569945560025766081831261439139816872686597132515151735849996602243492577126977087202259269589278455644335340168934918954649633798416433676912123387994120473620247661730328837244995566414199851941623159919560394971397391058899908153361662599210618702764062670434680829931776825374382326124913244066735701798645044030716106344096698269498333264516207405864195089930287184067065260151861615264535039266427783779020631055270886952791756805450322262802754714944168918621227060114150419892557289655907297205369610671355486173938951777379765121036381102426117982507014232688335760841707299873678494482586919853032634036087883342786321699631642115282924650597981465051301209231748745386174744138127608034114821416578371581204029021179066235295245360034491477252884117631420957960753357490680335563829367262701238804034873628790770119223977822842701928218892273701256910168599271959566159711414572523246921978641464176334117967991763941838405465525552986880334388151471830062073775586685853371993085489546234926019437441578734721991062549059127242752611969027722415401687606560661507118463468547185813059942792756596503141523259097117603046173897305260109442697337283513092090204675900483347350321132802812639435658340833184523324506264190516037939839029070583953730790482513661760543866406488298708395252568963164588267946686304374358562904655306244681199161020063773400358495823366813328593748088504807508076771513426368732362019672947614088241893711425495623178486358831518421602647557704622365828641618071541198208263508331507005948672146010592541947157680978396975774826178783069780093208865045422150724264643916310836160445481790578293009264893466216126251232257528446907599903462315383270042890370359200744541318946009797832680469300131048839341506196392397651845203101223240244606605902742195487063501562395022183830035628353644999795268552453873189614457792015147894197689331469178071873910585541118309646270809652618713705561919828472768801604233912979418927566838211420041546053545978657155489002126297782030898233470283841150818175444234603188417895707173528439025251495877441740851586683380611458431461998120372843739131053612648003520903807325936958206283434387617201532102057839338027627982082804629009580457967510406515221265226267324389016626155536188773438506150252731442855750244503778933320101691374160329183299319872159948988679921904129732426047771998946402177660997617572454643489963402637197499931849720352689008952570560018060720694648723884947659752396903438629796078303077775707879671376074068810288581062971560704930549142902500358517037794737343637051294036518346806317018115437779998701513201933248000433222798986958478774250769765548190384502077654465842277988002173863514867042099819942751875864005377992891824055892940603685245375406315399663741522563553161645946874468708593530741285554209526821105490603113975415449624153247225667852120980357665343887045533119682738211352907219020543632265209585589095753697438522529389055353416719747374074172885814521106683482420773088844400380620927110556167511949302162830767434485286786343752658546307469615569113899621700231462502135942209789627123510023833696008852479950806715245623157864015590171845789711459572555383654365820532795393102287111409545332617205351941620351899962077651054195852107245955473214852746417962261642254051066213292425034748017463512832739604836207070838296257356500790016470824822968953323841926196960442684423080228026648726634699079046925047473806882695749828714467134421894063606931690672236111349286690545937399516772811580178574982304429135287394763349006594307914851707866294151090113186371285948480952693087430331072744876170308666621862913017169736813182614039596401256487762004811802926603915770886533480562723271087976108751892044106744263367482059826855108716743056843628469489410736477728165469517667452930592626997200856707536838065552472231590112741586716588337593593145459098229824315619411978271697353035017348790750808256950842910985952183743984237289626386617037051450648247757308071939215964016265809527365314915666321563840172050456640933103438994167755693692755234117134535683408118205729450431178521732604581448088956252916619578608649122805411560992969693917687731078250029606648439156516955897645411499004320024336044123618343882154674975094480747487857453627018233386248864869093698044674884997419687196294576346632010789718810761050639337727628440346588499893362987429858986779800043269996014520971712108280887804348213422168649480481704125491315615913683498902986215134292606078747531242384687476737944918298479074781077276400948907512113300672767988334921404172835479255369439319796721603022175824878252718788905570032686586931217770062854077890935551148098213280478064830844217039772779681879588638763613482900489237999459135509124877291242341945905533239926449449236168910925916560898514137251624996163931473903406069114132507090078136742677977797965947290014741484794107743513245885380917525118637142735650677824103930070472474412035333067581665414623810713472481902957305350532676402946401382521873186369671686654384886777104305503837211471783472724917591236569377160137570525000169025291759826004334957692170567696839749114254592282224145209710163665162748501516215674455302474375107730702457645413039149757038867183531800414831905407251818671119422344834059788826334845805016510952087822225389793574165511011664546780397494132499161303352047320360748363900497508755767814966900191563902499635859921414139129463679609070487668337083702541026664913776904308635728427277728201525821063882336511751979276329618620653859653718583327557593131343939686192688229529035644174263977095574842497087528289151750713220110393348504732021324888545640930408510387438307079696471092585908351685709491431983558497345625524853109672637854053927819630990073566843505254407361212158696592798393383550398184358820194855300820401039534755554614481514915168934318368101539808639013253109390756199844392979719435268856377078177293865340547692102478605379325742946034792309212932780663494224991300524931413860620281321858576082996123944054705183361083360522431391415059160282149065643162637542318001692741222512289002116469478934080401925256576738199032022507102185548498756720601032381071581837821418646543935695510275228390449999812433406127028426112279723657257823195007593936387953597082199336495239547441323640908751350549310779412872856424545271254804532864132949042137892956334999761596615858233575058227822322908115417288990162169954409348070011141142116108446368601742687146122994656558531230153071400035492200869027821041724501933304815437195949109240304589919520005997501417696990291594614759910947564146704066291480129562714201024714523482920106574695218052715171257824506644234256521699801329461716468683902705186783695950440318047629935402013471040134404742451609050699041854966313676442693395086617197890375148413535973778675087202105325359690453253295983834189479483270190065380341951346641663484728926823866397046920092881222383821707908685428725356718438136632395249145234417332033079855667104042115841964735891544650828476133898931035866446998295959160877231852545765437345476073123540610320600982797110839642092968453622790676249406886843657342969524468449202666605449707642948464344949425366507146665486420957104477848574981702441533979577679393289890395009354250852058172586139190856300862008019133389384892859699635741564779002958345853313711726597348047100839076417854899443019453382411028496916037831673474542885825439582167135282307005081289932402811343732859560358437957838816897542049659416799826613660742487531227280650999936698642591266648689689145147218149401788493501086115591322780628377945030296237712116877777374268430856112999822748091978793382537719133565132963595759675719992874920486100224226551861459140813533887967329213626763108643677981328320734247879005034368063884433215598643390029079540416117827213428273665171640059372478972491856307045889529386307304716745177320866933639276098613668045326753579538931881926062263032428665933702544308969586911188726634316317866323278772993448585549384128787820353941769032287136160610941391233460343737290545554783684548872702091296166380182777153456574159425534019827750837611095544600718024762922044885696260461716882991974309255256768533649740342938744966253202873775783636775429837475545541430792675322636513010763199027009338408031948967775450891643194568635110614221793268569243243015086830311953584492279377891378498314474274258304246320939787113159349513862565334491121280956950763925582317013215626036148070990826288403162978848116151911365751011103251879253713985342773584038679770074662799252574008295277357729160045946183680095469166154450935113577310197197086913429660597817857497610690887667707290681395806105466504565964348028101355102618746857445892151783875351882310294766473039305287045979897726608007846568511881829779820665579659442900172731349865141552045749554037889638878081349357363004477705013730751863533627753823175900869126065966654758783683943567060621535026965595807763752967690939372526379079845544267106649564584022113804198953873492011821023319162682201191280534159977565909799625475461157592089073031654110686525891955052109619369368049879703172459173597090415151714011210314813060388864118293103464777384931385218253709566968218818890443026231284950975135766991161356651301608481245975801705138368205163386035048164937265250908581143456256876248826691210504159397453799166285375600579574620126848713360036539769758607746232284457884225869944114605425046733433345545427214149937497119449616746632318343064939785338578930576796595399394528803700636721773594153269803717246934517644098678418375776230848246987555581742228134920143200943297703804264321855613064136911353619063037317855847855026779461676460329052537184999733223858914054434252846251644678243358418808003042305249609218626290930732834869481501857023738456783497622223545447961868170588360279945100866886487587912306034513113708725193643114345539598032407517107514045854671170381914554590590053989124197699773461932537394687577593092601145566030521857804460153171471659791083663956753848873303531265787055283351954865147657567534386618301954591150076033543484058441421386742066816976208921015757540864269711482948078752913466493809897137512166162656632497647626283337541517291094220907134026804298101502217305470424646378351410595088514541419647076927571778868910004290071280357155860700146445567813997901290226494260279383311889977328277147147105810575103516226399509870498357149899096104675236712766012325972554997855802486834119297946247476929467667049453222472196734891840998610242767555977929178313405637145469110868528718588865389329836236249727393569285911595298607318477007295482900984178289924621258366957297637334794107612036635956695203396901843519263348253261292999014192383201321793561410397719558007573578781343003498697943542385628950447965698474491858640988641629280776292470370419499524750911970418550556448407943380972225379645614084737348668302867833437428834449852975051376233440072933532436816577121510920920092946111245623457980782543512673881730738266172890552424128124193320210238597761774539220542388679711428190474219638211792544207006583079855659798100923072146060948804511140003249889507465754643940772474663556060770735430876026155807731877243229498176088939209149657144605062609071663872559951083449319752200081201291020188783948930305445843236909709824077894496220157896407830540972213126686323611492269461123956047016353730680735226709386228458313447696936114316800510338067813723151816031043715176266697560501109840221921733003248400014727519605359630612043340601572762013400559341208142437143765040285856704338556471814578599631671772535041825216563145305441078519431858858052490079802020166431181930428692317610205548754026885042415105185987966234542860712327245506503383077913034967417078820657356836885089549177884410877934652512159121764623588696860718885164736856587678647239821028987980196491934381586845160517268373887342048569817016459497782052827151657146647562839435827100416573768790577004198461802405609341215539324980750894047866509229892704943433850154543638696225070314579906902808265554710383254477631015600357100787299287757674675681885369049395237484716919757964049704272610415492416272626542445554415213117247516296251078964775555061245314427939520751594439960856250842659540534547281074620281782412199380746246601440031140827681298041584824802390518160706729897718421953209488765360798136509386434645304143383607848801491780911741406311989223721760604064030657287735675843829410979892886737190749481042548207203906328776294346440569055371208396186747519495290114815899620558310731307775366380894478417376600487715287211703502419757396077690244355714574894738933712739459973066940935485290655475964812352564720581138866761101173539166672412548539044672413528105084620011475021721436529262372060293878326693706568713712473312339530392286139558193832471391656079316968562285634844735207020382521342204953681184895854483611081334060639500579210161796581297189859767040740203757645335682179539202333996064342495263176836075513330699227409500388163236000457653285954040548975114253980946573610262149153223158873643135091523582918331008063942789631503908103330426908583893550313027721199958955686227762046059357230371818904870450893785706565741297798184216794079698935155784607192909723069865388058759898249534309400267951730684484190765497366152610964653119130875557093859742018505187287751575213282205750862142444816226388224755236329534182098684231668827098106947556643639001933850663400240256454439350675366427865807608112889649869216318554987119639346501129055164423792462545590806655611918270231259730981553983322078249314635780811650512654568074545031672843887231281460120068457474730794456241640582652672326651129406691453324799064534705321865607893250377216784543312492549045258955492931778227514097069131519290605813209070382368698472229501578977704444948671417432073125579820462136276138272456020631804732468660433474875284235920242676305797827523860495003706309933181529685655597512354817906949754873156602507498096383456214129251563310987925020384991750743298792598617397510088156715197218885045939082639774454034764199503570863491001169042462975771561920457151851799364460142542929634051627423482487660171846519481047394008147033086930862435314167073082553267961489560422826652966449999029695629241425558286772012991417816718425061327725023228811108717817808346951283076749573264330490072397176023248409164254103589210740710754186904110941653159466910672859598884148914389790756835476620659709534077341043597530709680017482195022421326040464155229705774846516217953374483827931793227549531907564745997815229367150116229456065567767426466154785263536784376090808349781175787598250075959459858130639299047836194067721584210494955499141146131023767695166686744498658942392479406128551381296755844170974978205314404449716954931518895223575964160948923012611482948054447432740714291127809578020356230173458743953198551204714351644327969302792581509817776178239058821858799097336219137109589558755143086056582542847158106566022122048183379199968518807226337354478303860411415893145906621457768951114324531051538814096355549565446575572145526520858943310848999971758872981692419756184521844568579092328545533974313553754082007388731176393549920432106723174072707694127454967679819078394585721914401069994553438286236113110760284216586339273291898309654322641818665326644832763067074413754230280687951385438532220373679361068701152312529938289157919213629850056914637702407664194786315002540959733284229888631688164032446892380887262384274554842486067938423633574310158511198716105855857466131794273141122748255700585433097819739292096277688416312348280087899666255084573846984961457874967096454221924125655509170998841318887942489784939841520818035609566535987353015226781523388169021364910509492870848112458853783159614112914476641992041296494961788282602133422404442205814127625306717597475394475938372152595205924374302766477873533695501113970457941240910696122356488710271196851374179650003771159137993745384413034295765006126338013395554616193720887870991564597595826822699379350328609371176400775513049917859166124628780338808421009011999111458453778941349179420605699825134798788434835083214392963036069034576513675446563703423215276067538304589072455913497359689042208224241140605601533959107186145340609761922630502742277424807357191789531171210359403308032287605495586023107800911887966694918138365344257919795974131595916606882709826401980445908483849504220111622242290046241032408773825424563286192340610750598459571965373724087948936043900035620550065775265009852561307709963189392606293747120380257008445299989639078809501608249793726689609535672644195986238804524052182088591974651939778002442570740535406264783188413232164368668599370554552833634091013998638265072835423482448338598139868167151021550866638429663307029228098949667824377434359738892674565433878887029593670592965410664613480321445396038630866206407060040448854347215496726455324968535042836989557743335785102102591700307613378757961173516845405249247724856915444931559606799624897159105652014797734292350731526804935652672899232485895693743314972480419856675825284885318689693290045563577318439798950382008947715556002943903077002604972073733552434309013022340587089450423060670705286524736388551394205200023683551279742645341284319355266113862513343906738459365815727744906520893227713416657169911352403746775758748212336872690052679817240555318087236794939300189025315649615263157912441471223627836833841555576808679045174541469084429963254729672548236892830507214447961003635137069936251637997410038102314887898906599394263570940126537916427399579530533532018793430296469312024144451623673969558138182591487882668606867434494056187668509149280479741041982292141338762164260377920790902411694119251605524235059428357136769270587728338924636447593044357330888157923640985178877173737356935691981707599174080735689788536375546623408778026799727653345090012013261260303127149127471386802780061492891921860023591007147864752181866818704167399570376819790442836438635254108620098805068155881115333208656879717206694278647248331468774038450795024577369289759540332493314099387736908978014605814942216750280955120358673433220225338706880420248038160219349279667390896348721495951272090923778942697241492895431762269070380569627871893554486202226096160366991938175411806625436783852666182055829265576827260032071008954170023372469984693272882180344589271742216816088760130347929919912577192677360186761240241086370626396968844936516193202577009763586671038246506382622367172116675966977626893837945979861168889754947060837593368686050585555274036800085075831836149797435372653019895578171231208255545468957560072216747642522239845495665450724700491448857406924007107602401871273427030320268458442350445972429405238742976758779533109078874356290924427461830382655066512363468803439740420976032911332849535050376079586859039949429127982631096313613352389006606349511773494061394371037684422067438382408899085755157882857361356382696343789495335280595552787910760445050543611949409655149347257831993617696093290265615511379446112646926957200873342813551894620754266674582993208229756101692778058711235377000759117677196278759462521816635286783103298145160392832782657947741388811849858135681705564752617044409832061528050736729000946736735914360415265134151833968490509837518285740319193088976736578606296448937721682169762678606574047811885476789306755934083019655212364746091762465010010468366585715915731499265839125381487839989977888742059149949456678964154524979522271209755897379572684230970151607504623269346275763375074777886794953063850725059641846991785877103563217842488653210470164073952909862622046566930261301201646227556032431891658177760944092555150534730258894827049377490249606686065605876828926222992807836161563132956176703365435748240340022208817952921549476670411725556079697173810379891801903945098314872685248099294913292213959449720235563353226927523632048171342573619000041068089486802911420208683048844894577257155271729059820537827141685738186765528113614651678834072895580360167055354864595336582281921258523140652287319520262841199618214058710941727192912481240104720072787805889096840258968503738941739460774094121290911400507944512432324409439908710502352354690580647529237990920333275070510074948182633873993335563981403668101561427603223023062174891810207848558557394335511303795149646154193592047633742196153326950751060983902652894236053241746538988438473281586132609922251144837782053016333190134065273965606998734218303268176538716663592913404082677968323849619313192411110905636483240225325777756573114394063456421838807068096402438964981448065734390862787750587132754246404817605171683199373125264643667564224148122845009381188404169002857360644135109336702745053816165265535079668476532831499049095735960249897234893166742969501339472734020470178900477189908054125417639500579566995154607442907168425325576837115857568125350733371508026685646455648742027658248008555934860583707229267085587390553058249722248717420198492417062588715875959316938207302134536488308846532716586134825868400488144398886335247479680911114897239686777454566322801702259113222843743168753368368376271611413245960168562122551602279151257358412671591066709224524863363556312016369575953405089283659615392437784173411787718164749860351293192878628929634888794801703084784599522689729239795405676580838162189373079612136937735525098112323088880637180943332777688481572338614388634859237118910838285906798703999548596968627973118892137290912433582319780361288036622843185235905078374184337380064181407190347717329018959994550112849934072561891832588919364712521845684717038534676516554627528417313285772312560337678251816108350072819751373498541326170360058769445902119167804422363301686205875823216898307254309053883391836735504175700287972375314987711114381443098380619005321924899675254219690824673552935885551614979321420801172974355969648167312927010615211816798469802457386566887014602631066995386903757398301711359405700033735551936387149252375585983500764629243506681643045361141785705150099157758528390629676428090080564591263053403238608824290762962049359916219912118857556766410828431110626322400432926365781316181794937336761555455498855115162684015146347477383719419915000255660103324723893178169263863636464403252567691038565428367797859522563956757693252265447508713359108265219459029784568950551901033088530701600488607895776977861579846940917021618649727390246531608966125850601625752650329129685087958204453015037392432833334388453021295527369463500804598435210490053087448707636751984578908894752244086803603354845030872744366765504169428792417683326814088527239594660725117496726028749762307598469493931753217389506380181021858437176722661757065085449257936903304520250213888144537022828292984073062254210193542922703823984208959556606386237596499551901108145706910433326161501968694889756025650993253310686178488781589618859124792558025452784579896973055955453124175922167143714538603850409484081226836532578456015328616682806668279142625677317264873315446726349055012384893185798903050685830073452579932452110904878230406501857299111061974187652569296012052605549498447746221694235838253593355006225636905831429483453620727722982126145038056676142903226592330187971149007002598543025531717377994827920743835963455300533196611883295144974742620297007307245791475405348176252954041029472899762189779399245908054427548016796364538257089699932881882491224934011833761331333656498231006311383436027524904650873982113934837126800661861317757675524231857247004048088416909840789249044798499571807931330304419926457698558972266372800541029640334148418491500080788091691855541741887381137099588745005976066742467381318264391192068496715104959302211336689612687515407532932349675165674772194639382245802335843905953021450133700030924662263250499054950663256985665233389945262151950870113846612617940072259374745140185652479238417741145583399080680675329510627550232467961719846888712833731499781229716077599585081687640750341597001611972988221354051379190546091272121904789179536105890638539833175739396136468476774680336941710758756265000062135838827016928632314295113886258111988998260259770092639972701286377768575855058030334473824955682197721846592968881589144000996067744470587677470138350328364172665461756525415947737835424034231653091085670099606120585136507535938598411567552479627499714096522189476590141838530339080996728694576977209567034586965636082573633222022495886789671797305410890818561510658938964732764563539179937512744006947229819137197051296770092683399891995607333926898743222668263550208509721369928599549020456428999770874928482748782375287664492835860032573215472041324353968692037455992277541340445286499030003207384886113937671889187691758455566227731811455335574961905410185086796767028867547966637004486646877247691039406842614036765253637003830035361003368633585805416037723055307149604221284712715333545814973218478756662774120402116387825034098122022312080530888499823535140549394790283400577542560579815340911213326437819555705906481336591784363175973175182893780570794286032317337485228642240820576472931339283857327520226815934326111471920066055196814377581206968715953162419023031901299888034236606853290243074362374532744144289149455390106825081476079455647449288128769731008273694477317577682963049272080428647505702171907232150416326982362998254407791395482745432843777035159393144424786394913735794671399827553588889731926260258005557452557743121134198462266283219655175567377894455117259303237698747883152779437106995270745382466415598456832481254080936021032630657185850394255001360298855127280534843672974827997836383521580813188901145287240590405113781908966392863379552953092412831818309786861793902523565617950981700733141610753072914907693126802420030313544313230166831864684686984887132081595257943161191275066738920954850109197865733669932440175931536798490106202795922999870535071875248631218914503012543283995289284604603772344172634417359346058847665096812860814913029794291136576616270144833346621791115657489507045679219167434472013251130452071817685739000220705405295296717913273516061262008386441415655463581440051197816194419737300031253175939994091402932097241678624474413957904057166520966179482848081633314322214594346286507797668007108704771548834414343792382780625084957269338194786424113838475152485792206457202700384148691421979719482052303040828974400422242361692254546433948949284198421640076111155119059109158654189505430767001807962056949806341304242076908888872635661466731113924141973863669359818862897375807724000959197793754365157276666834479207268026615706193255125363992945861743712434607035557314239471076786236541786088603508547416899340797558964770633169220494781753324680841200051224988602595690120202338771850095635958623233841409138664271888031780824904381507869006477027913534214903188244326077329246477718552485410796392487464161117334316262050513082512583846727928249300518839682633575326438879780222990099973332990649002717264727195091322531700381326212493735197429815532885640253603447303251092889601809768644133313940822066295396005366207229978495675467652350080791474795806717757781038005295991908333611517230670181517525376634038779988300411503657192183242448599569606934981278780755111546622645493141388401740777586787369856120141950522188058722715391503413694329263628472384027367928375169838024878630044158361189188312336738147748260619266359862688935289624107773360497818743352781729942242728941097998256654352440160048337174854835926986034804713924644249326948976589010545756224518604481367559187471297448801291983245375704206771024275727257033772013692405866288774699162587356421191939776972317288669998576368598874688215947059170105634578037952100657208645202003772507357261094343266179139186770394893598841975902470624976617201018631591862621281200678412430174078248102090689335529448117695762798141340948717318872738266146004268442911809319969263093285803606658697159099685995230939378042799487867149108471872420874223994258031408747751480221929907924980009217521574651516343148719319181749627845968554595706178106639372069668191982859325901881126711396780942644030199696021579118221575512186830023155870270594511681647893244470600448284577979217271979593814587486454164319188157632821015661746760560170210957149651931737125158371200300522035493379501283500874718112800977799608704096670365426149624852177313254215603362207585520362587916912272093595420157776460904711026114733011145763258316873980456233178346464430727650011383291970746839124993117219796742097352095392818783333012442650500660847410913269345766179112292803718475318518887773356831767875646651751240428406077600707954527804137977276860884600398070751216153207594062194323600473071165246447806905534184741751277209697200404297086392576136015180423648954598125532404570941252383784457771838351316373008139095716131662402510042204945946488561178241739368377664468540990386699964568272849913173174267514416131953342096959877861218489162942380573969636777355473166444917348031481836138093604471009574451880112960167521602965755434951714833308016944143460022184878223384053903400730096246515031031293348595608848187023209615792992254819917166066600728846739581960660791552549943133271654412177945193471831825042659716899772384470829212344459624350522097795448393507733733091015362172968849142831208611294197383205115532165445065287687812586123342309418650114235147578099670441600858432598218123814869759681710174529192690647018027694789658123913688483439340053810190580188414074425725761849951096431706920797123716831690968114241579919330364135080414611540177279011524979566218114003717780011221110475965625846310807810711988152689244212403705528965523821725171007674717522223423322453403110234175862668165744408452915813781188190529624628510375201971253555421420344939720066104702314029355687519984437219994148319525144504812059893662608897473851167090993106501712569302020729026800638750151585359592692566421197626515359181744567577414945870795597850384051035352510284892606835096740671469109379109332911248137341740791383470942538130706969135417648896910022848915419299760213825563041364399152893357280467930392857580556523405370102335389008434350142066456623724377468597325621524492681969427164902249254985169487826304748159256474659996386466509737198726304628037705806752893553285874524048918985673977032867432636637861327291608617669961636513180038027275770039356718507963209664110505637409118024874524835005151948061026148466447429553908448647712348756506647950632231435610991180476479643417258360330664546202349102017543574343462334111666086862074990525457101751862234730713881559983169391194541969840744685962391474863297084829821303231765038120845518025472363966975199457106451069422596996467031636294153307747110339509962076487716176048383347886615717912673053754218546012758555756734577539201393129427086178972886990429745946295929907114985411014861960333017353319150480786494622514498034990703578174873929726011860365244589965986500289285211729482475124228567035872627524562536834034649849821821250916954835179286781045263897404482371072658189609919926402909560562467119836912735037912412721008268192991706280388317342255054696894734820897161033766478070764627149794749387806057046484340909417775687109466453577955723611502501043395126386580045082505251756493883669054174333837179258022995069636067851949677780905389408710728691829980042954243407416665640242139507797580636500348118849948161193250950640164792218592501074098959046920399670456864724209871329451624309704102594022943834427633522769467652301229275558823041196382860608817964779390809395870651022204270161831611234278275583268971895475764470927264940374005333104425405853456388798062532721167190660771254241319730881014968942166894502676484190720169833370400562895517411221584680348759887881220934916602080241208301665172609682400571095110372286568142212764846616385082043532544615749544037764802480772961039525212254279314050151057512174168780663855663972063168217672357461364421457264812822302180425728650297944743128741051541771443363998772583716927397131554335863031051721064017208065345071357809469833696113632153539736386220498235362170851999539596957406528379817991535671927454709825023512626606673505366180725329548279380011967282185773003073678320040405964151589899775967601551951993250089254588890126192540230136816016311188666065589597124119202840134322108669823473288388219020349791532120918764349818422670363883864609025380847830593034558096487169389409995176504943897412374859927428387633838062900455778768967876913009151914428323202989174788348165849283884351578997008752085179981071506651531886032567004011225638824745847539448888200434086321214458835540638830511737589163425662180480875807851885535165871965693793803438283975550719888894220842213994763053256726719766553283454375517045871561175667398454386959033289542613234288216792503018370748728227845249064363482889230019583703957453557670510089106260928123156602253346387817777903787468020374631366650058326194190068120113915269010006319252070319453304521999414310488311586655711108958621756540616831489036706703697947741483018006100401283766445238386572031946010448222446656636794714830747357786543195246485039035668492819024611919051797391442193312732615021550587080774456290858205775601137631318919513232888851902011510657008013559400855255462784365536108808775921377300257370928608474291403208046561062087092519371232441040817593928775434568565075742948224472921868714641224243458817228184146078168081821292794423371985829215487165198085482431566247173195741592483492238304508695167857347102161518745291711332962087750655432040042550741976416943607072152920457538164699988118377918886481591677561199722107259908884460751268640633723963214753937697575603589523880019974299350047077594354831992844393237382156584646916139060242511998401884235018095858510592836015930624183810987647303747329743068181767706982496147810682047112663504058061738206029642892360248866234519192613447003402067774822354088126563713297120275245548983640329563118374527704949049896491561535972722647707071129834501173263337452026015825026461836652779268568922288787954988477056636531543304257195950764712532600378735349522159929218247691070217186751155097048094026718129202562528049294996490862498495909804476570413138112831301948683579917885639760369954298519689315583449719524073947568596265205240560997940597636917854791953392981325438809467974874085020013967153715371240480488922731923283377896277282299497576447810617180763155625759355392187375410309528459651523709468211342842888364080184769187429826061197011106609153379857258254273700409489617023031713454670588841966300670574501434000394517621552931397270376911937654479390817562114681662115591437531171528056995532632657681317107670602278056577503891722216203271802363621425813190096188564301077360240382324508162604740508767537943573961224081077111219776950599805375252824375305992067155876353958877789657545857631629310517363575215477849352389572284188265811199442171589366278953435941867977939874021351980066894987940442498310940391845137143086049419627188757245180669711640575344152371608723223002871288846758427264244389415332611818984082584522508632389695021159217893581016604810323173003951163568105692516936726986827201455753370727525310921471754705999356367067438255889932469684370781382024204112789148290723953365161912684104683301826878820292835117816172031490285871245942006427380795116271128240037659499098641866314597124580874148499096167242614659315164703755902914703831710626648379327800311418411558926737096891954087828511914774680412600601052282180075172329289540974535850684966171708926526071370606549123587375116461998021481318164770660588237500091000416041195279113744014622287455768769567522980794450567803643026238921348541465451205094722246225270908230090911895566891252420349153426010487125241972638230102048076442872985715343584328880653754454789052999714606084761737629610125543444298725090162395827185025970962002521306565823784567143605810861366056301384927948706614123912453395486135379922087957843427468507527225702755003943532318533292886162442165433477952288916722121651020411396957166357060240172065592176284114778284956198879091187617506231247523399161289764640592948033956405788170169167355579143938218482152890882566859630563714360306855268636539912464825555449970814062721082164258776846859580507116585234362695446977414501530413501608534210917249033754361011033378759102646620456996196969441743337938620954371466175461074803732254342539701140407521893009495091623543132796370450633374276404120524186270332945710881203547108530566945583239590265083372289471471120076058815197876092050671335248005875006121246381263609684497177305769587505509092346853724661282244527134389527651321938126047343894115764535667839628081108696510860204915731067543386414757315075400351645111210388036298589253234836444366817074477826754711604082883285233761434008704379155915901063243359713760123110292400451013727158047381767447366010035171099682006251165441000019116360438321173239425287014249108178002979543208819593946625357602650183668105575543357461329495775720255547680525345638094993477154205275057201840523952553508589778169905591322887148850778413506437624370421581760421669236384751002343393405649869079585040686984616783677653132985757056188914846600674761461433564845617291285341567872125231316638795711727589205969438572458909669092423587619447780079402594903137585896678857301581662137093183453105564778585675143390272244289277730555916942474615745778847312160348473131874347013720924451011658743000380112779291231216976087322876940516313719783313003083803028110561128297825046873441745083455679850444615946727999453009910841204078660736775353114139560659284651268705516036819208622092439424709850879881936636371497216325396655655488233559613197154427121263454197184041414786469106918640942693118495427547974823102617738376828859032982636420051359800371485420412005382138572017504708933271202782211031924657412565042537866835014751793021418247010327487074496403853998699347032364429529528073802762888402520398718802455582951160015717202118585747943233147213430215879064405978466302171102672645425070163325383875059897333327385761504133865554993002044866820642062650979459933360714782249514442058514956795954618570177805431928637721179989329621414654096002751846515613702916801873782234776605920962793870726581548825033616249463525070199076653714132250248287682967873403071982975317613820541673792624707905661396529735930157925594733566263819683588395433021621693875883305643314235505794839456621214680035050958606340077083575385718800512081210232440603859699974018839446567298177806117603389325128668623585298768022605194119675323760549977138789132599612923142553287918856419936000411804494925940400719778791676591986659800658843590527921543433023480893647552024493393308158614391836053842206726472167435337004432151667550308997209098076529593191751288878238698763413096708658586238880701495748383426337924511674874029297308746117469210978873406253077893251194078675136748465303523585435732973939446632039848447015762796580282080410639126535574063025333539029067013648207604009000496534180913803401179062580667504549501261314315756359411150306044752864655825626289539435963426884737324033836172727690510808683088395388638228177201701254359931428820555302208928067685208819227808025836796650483804688154917931920184640513611334307215037022609734100912881280217530099316360374777233444483987562431468707817653906335824272878848234652605572944863277487959079971931731609871497537158701053775839819667312130886262488700800381731174754900929287507830619250217408420448773462415736357979711376150801602633436066476984559511784801205041365863685164634860931756214818044881205465560048252209193092628985310962938321960299108871013864442136638123708540867115432893503472547055801476879244187349813507436124499158296107939901984647298187978273926267402703893988768421754255181269742673284538920157502471946908535209674014107292502456341776983704779077340704577843688290953839919450519720795626040491175672606534593245378794748644101935687180578155850606318232302436683094998017584935074964941913894162620985747179234815839555849446174461503366451432209505019648599721547987689707282380378357491683251339112844274685163464726848988377183723062229180310730864401752447677179072701374242801945305439668513507070125248651151814957021246992132945847695116662794072519579246699986046864610173808154914084217298161086808914985765665724620538517524525173773764266749490745938846717432972089989555399474463978172973721139374165095898771303134269146826392565072119674011958791637774217460094764654020173475008341623697174033564911293233261430650570865777567844299247244143171177331610004060645352488077903509011427918242112777297018446757909349397538073174298255624298299532085949945431793171543263835069356696021902701110790443419318794601848887579251830608359758729929767349781688601436107612884284574154353728149350484076741738639115291342547112073363536139561911501029571906322417169394637181881300955910918773168174415129977258816430477094575987051552326642538615766627187697953043697960116018322386939081511774494339227651604883715211199224078400521294539160175767114357401902497111545069500169426969948223792945545969568516240236154911921893159839237153498541835583917892482886187190896284266527956591160872127825873190783558712863944950797816995332581690989439305712460122536885271754736958906659518958782522589940478489085338779203750204826455867896606819605073914368336811339367125793888796678465840839185042498652883320830183823279810455689952053398803569658973464028341440861436931232350601630388098736315511652336602012819667189654161850723869437300643010784028341199109766424243473929965145086463839342451715958665308643016751986730529230439666311869284855085293849650503739247774391224408183153156973393296382682248639604944772460527185435938366525856308435217069063704809921109866997177473519715370679109653052997001466588265704597484837392669088882988656335262748228052197749115945063252372974858874858295177165193522033813346331856397806740853218978364889645776534864778433593093359357279375620548907384034025518642713272130825117196477525618794632286090439112222506852615323601729435365188806403770792516585494712969743538887265527594837623221878024596631188329154312299052227269446953947530420124642113561395140929917519890303406393901142420471833655810755670558681592944033508797334410107122095181197826067482162362848557468944958827076708322560664111402583215325351083944489896458268556263352075416272132609428600047432343850320010698524238128295886605893690927430787328425154232441149987871386617292472332876184552226811030725320659302050778274477607577575027171499358820594563604260691602887916677774309958293808933555711579112328260683127205047869184369006376972849068437571567117300570812761094881181925445524744006573329577348914702027222705378780940240085724781997215617939372091407856961379344218546906421335868556626228716888759992933328337874719667361881483365432316008372513970081075738211988667425862869291339949398071829996163432165498486343034625223051882048383047719332038587505806775317974641607543717591704555341367267798895731651571213265051846533602928536007343768028398107980960692758834037217883078501541539378616256665981170914340303298364265786341668726132681183461980116863397174891282230293975714497253319879630534183803135936243385860742666799215497384905083678626716839234557362906955109037398529634763090356824139563590144140539484418152768892860081262009783366926502293311401382412942843240277486626353384144024962986835932878695483957615574197340491310591459420192892770773909594542691526083154442912089555437304582557105381795005919331673538266545298283793227387354721008351680841954998173721312917650271031205981766738545844573947715488558869830047166729703360830943847395035567067582245593196316515479472074752139138448760116861638199159856610505627683338096843871180614271489066595917900525117092193314272394891906529136114074148944586886657287228371021601402777908029832885555861117143006668871017728861068929820573343658640611062375651806316763460319799938357203915266293002325606946713923290395868072407382066181015971888391534410388526641498292036303943483872942809954464958688460799739555062878282388746714821605114936264740403458390415647365691406178074167142641632657100597948607090737477441635629280359709192101151100605082655175796221837615968263051074950877729924133332864216861206466637765454717823318248689877820523992005760029839802629756933110623028537797907036312275375389434525569266796218037323002633644957976570689267412224548577497904959727986042971788257804772391686668065631168793077677194247364477468883299389026947463032141274362995892310862866082074379061874152376768835804179405719843087303662277940134786874605701061309832110038093245134958913065508844160406418352000050794844009325564971565659165083223798857847716763850994315401112713131729804497096951774531995740177404946078767872060966697357416317259657222081632798957556776109109602816177311871814301036384455389724672088661880752271919229321197594662116022199934266210354086298305222575962601668614932584427617005647185352135408956012286332092319402267462661828597973226625736189071089762638990151693269604183242034752581051735393763718924213388281619842849869895541076024227974836406581264642741958259522332772680640687794734049270316340031153661440566854466659267197369977517033776828331806673216160886483740240123897413808642738255256438809420259398578469836726740023369515275627189910119013116851403870437080741745845960404478197956793068158744060887223446902638671911257757258915696396135950007071150991950752102081155170676762949985319584976129158816131888268364737263052694803934847891599000099000654634385300261869392041367479125446933461075360230423721700710200834995134626394905178663381508559215482415671196801118962582540162377253801832068757537941275350445193970193119478715307726637737473267002167925415309027041282751265450133504325275621579099038782969416596580008189966776590645947161307718772400733769591246210373191195196566498683868631548282440501644202080769610672170617793758662225273752940137331144706518322153560506361826664326049250098041384360171560688230012572785685622035622607960922321636926849190326476278135326419487904905955636623860717032446777666142837078045760895946587556867408288380542438845076005585155654178808263880120989528748487996763402822829344897160595257756571792442558709506593203953360224664783061675009288021425957114909052509692462182411139968616265016186227661839478317104806795599373265959764720232732485250616581029206806502238265150001730739840013166889844788908938833644172265376581133411792282364443846238400051336152533732987218261435906861554402559532328213992035098019146961300522515459713701182345069170749393940101975349554070831855953019959523061316843074769442833925206910961304175589652986040710572111328154502299585675802234632817514812509585735164532685938665234418685591552930860442218386513956195563826691328163775879485719538330859831821156841682225968271618261575712325967361985711083014841387101535546485974386144726504392472801573582760950617389392629574086570660168564588922835894337826835265670098947679933975033601058930483635090366188982803849028732623414509143183968259535863079708016768997727843147190066357769723558294849580742322880976298860887562861103083360653595607597896234431321609364991972881507725072019253729938162083394687582574381560798002733441072579172671638755934416979331720970120308928769787892197469321964210296668291261395793455918041478987977045892469007640392188818669426504566425592397370429519636867090417280515472718532774509917005371503999430483652075045855359197376027144593587078635358999550048283727574873887390344899802356127775107191369382451857371200268459281068406140047330525158322669287634268788941955293866356400157586235621822547070640659502747394330892151889824454513204017411750842239868416917053831864245285557912703066561523841938796903188643981665818398537591805777255289374900117281586923956272378081173168930978761114176187409637315236535248292777403031265364712986464534119393044764442445260030907931008721198735019931029340314444902899496392167309282133107530852285778373788989597496975302459997158016636243205163782519962409873879287060095243505393981342978691657795068548265133828875232664734325935175839892562222105646732885389630306752827949894641040414897411294224790231798292686769709595055988678480933428598233086363967452781949377752516337847980009480335674067483069560574051384540761298655357786552410724895310103955384889923874411548581876723543689000319329361904212859990873929860450776794650166791513817665788382258899924091259030961611846754398039041764679122182333448457088166723412114680619280947917822513555198592966721917745435027073257882981713206762651905663374680328682037600435402808700617645996010963113940187876828902196986079264231430070906292307484111695794326593078893303378700857322582481918847713867356992487534194934752755317435242902343872319695973338633737151266206487278573063878992074727071962308516480162796205373299933783377357013738345499374761195418990279443476191649155319847820411823534554436773628353577327135490900352167581089469077895269239763947467416861495252814553973055503902333197884051990628993642952297273925396313199079838768302129979248916607714985668179198497016145713819894111920012375592287402513938423974493910927549425123407755914129357035363281000043458807676651063976232873252847514789864971493003834725456285000441481373771217300333044230194085295886980309802299584093818319447709070865031562865490682929637628305080431344759461938027261053729796030420491516522408554882636247940701273847641935574043698509081047783819564410309288349566570122761905185297918731009440912438283744977395178157666893248499673002776451507589074511719824317098195470812415525260380827889781653672887725514837841555836195517058097010416708135741416650994065205197736405174025681217233624808631007561125564212678321185234807198194610378597631630554652151560578481596612976644024110479535837377947675922294791222763865157669010528802377612141878978446400795685733258050080456028680849590154195156863487705549193883349905691292607426108222086607002641536574834648075186366604131299120972012186497154085469350067622359583702122625512745955437597020988899719157816366549742064329751321343597023631516282464833445963996301987314316503373386339574340351853715956704657984200610740420009353253305736345544016616821348508005450705060211218414444488686344916870027174005143602656129158658552881434117067127133805932056335370384493854066120151193378442413084327635955586542228290087878471664527010762899453949978752644725601764564561416045027490153065146627293860232050185408900377009601850277694933180343928713691696077891753639496833940178454851528966692007887287523598595196569323801864396826311785475537812617035431448730304947805902169945809261263417275784881600924364843385524294734867638952173761630927593091469980207840595341951590084504321983325377639386259886109326584788713764440218558911389809665855688955519746817101102943163369491032616688062008003256834538694444948930769479478460852509332469612188856166623434029099566936846801791497337988482021960880245900632984848258369229634466663735714225181208466519539837413792396203623223990105075415503079416234256318711573754849855890917602662332908270098362753370801501697246193557002057199248665401582490841034264199942281519822177733654608733542146465307643916879993160754312768077320892604199168544794965662856291309032834388649112906510044285469806966237964583070379349945038075565232819215651806022627297752647873011119097184611679830049003316706931038505003123042998091311447592632039467907298531544919670407399052668203897267627167963711940646365058648238421517858654496869874927088806373841728213688722908500432216068955553346055284644404695438822660450192077317863717525546944134887346217335295714749101505517737137285820735641128457393353116117013188833602142888220907611619654725885298883258985952233898041375128152905148372863584779549052186367032657358769203436981925468116753464007186607558221415318615215087732218867868363178019572387709103727438404508061120474088273775579955823312018309655768088265842698591614818705471223324824135882496711285163878430369523082158540974609814225739390394934263476700547746151433059130802353468118365953456618826035746735141095847392120888028135099168020802999367766818055677623154102320770401720236792548639208320850348042949815821024518324327824629335599429979858401195030040876983759420233958235811160148957860371952817645318699897235508767120029554110805367374859284412637628872461603326164505063517840565328608242261604480484298450265306846816715626660235034498020008088341621218742166166765597055355441660019713361695378584254995220541111954681639068988539682428916741178111559909902842793189418409051030404860888219177982285507761307651794124189198122795309294368621929577716355460635091277096445454250725795889452308337701914247549830698683091101316449681135505065525570043050549082697383703250207091111574062614957687037639582666089700420753486755540727091404257078597366461173692889771276425695637989035944594177503567742534525647750758695053492881654074156596713568865975773486871983692520427620934538835599388818661175483947019490397181077592813518788073288245590193099517078814224269372927421730867102929891467076185234026413460050833034847542104754097788434819087023520680345333237070736342995979467240204750272260681930176858636959619781071966328188167320617322376451132137843640403741604600727457967308910699543169549009501589857912564917555334499689744107156992369734803257040948674591761482932708014343672350371987151606558422775257472543457657559319436097044937554013838587172241403959564407346215556916631796497827203960502296086020500470745037256583805867457563273348242247228371158325145767390633649016181755664461115755903690816171351863102050039556913568659019815413633750260814062950065736719963973247691879652613385591324931116955243572033289414112392463305042337169540616426372502883330982935697535161600018582285588108517943930033208136317778196059993138338779650473132159179788830571466454559900086587947882489732311413529966560329697827876689349554091092066689328812074635708267469011362902971230150548860297986794473334944243245398291499320341095841556296362790776819576382542301610798316725407885464641872943885307946645632518546997079437373158512850776360835525990579335231321403684171788229610181665814569988716598699276567414269308735077905328777985757849209080077872773564117281115372567918729598353392942579097988559032298663742693703334144840535738628189964544111892789240623383144745610011653165412873889145211683825604936200540231673550850853232886169908710917292672768541799184036578877826725010479264769990083792755800052026330986490281166306932734596243349111659633371920030529796035368638284901254440828651454015337703874458028882330385800323102578134170104125799924196863517144149173061396092053753449134972621173955077953392030955800811215271880696422625466590555049488873716763455765040038336624461262132656584684101887041444546920913632172357494930868978083417369368374556123003018477995310845022879130975923916564282636801910026482706682484222146804937062828570944144514800867746831383567110218338192318052100756255828550789375228396508761586942282465555181225306858704908411179966218605373963378349207075857412419576019662313497725677414844473568035983473331304088282764745899239038294506397736997819775826958753807993792503669470591550255652028107930373602359822899308720369587793029296857299036252853271698437832652033426644668219043807133524222687831507978144670823029222169576376707812604682976744645046868700704492008394759458994022325272879447429716871045465127199385644259307399571604717845523470333629854091580321987770499155438288747238169135606026358515693395464215740086401437957092183183610227252588022442088445165869472218283096558383438845384457386181498922145244540206148105165440107034687641202691403262402621934175948773216691857178818252314572086842327820414380567926983765507194435107181132720176458679417255565501317603893068757152561027191419901902829430188883100464962398721277325394571718623618929943639503141799125832762158606338739362975005963212538458879224763018866989158852109249057781456077685645422035787139039154434979978231966361228681053679770858740801537262040639340048155282774444915319690397297993714507324432622888205511227798384069052435986017364793469143210693170325880723605666661744182604205541915419158062137867595054962222813850548182201960978377742639943630721093373924227982216591288903057969686891059904849245913915004177229544895641674380026590294178919891110118195885887187068595535971813844605921117183826197868393201997301915633836113063118638358424131788198168661307666825412325257648433519236911054912068993322679494863648152628304493866353369576695010359371745347112989504365743937404164179566954789361809610568295070445498069430420110388847585613760551815640773529190548828829275385544865422182111094020204845955681821711210905391077731644881503427249911089306698807445904133664249790877712089405558357451223019083007068054850844154335399352115628279357669679055817846558319592199702102271099962566528152737408221794924605953134430691399212396024121938281542946292663540516805453728911840467324841962923671249339654769931579003979181801253300435437799971656196617763390072860351935346930695173775740760397024895980639042887035833533664838418382790867749703030579180735182940955711921145120370262888542880171787595839669523252892497036111472669579998815851827019936355391552393951135647458098759235869106185197336305619042820692156266978755837421699347338774172889242919836086763381719676306620216537748305009185167365030726381694313886839898497786873909801346594343041496280002183463190597787670154243214542726597781719066222122491827766590160211076329687650315394498180517185014645706637102392593646842672938610824676457436223801772306373840726626037526710617580248524513256812990219941731281579830882458609272477635737687596715023253623670240055347901541003995875633096625739769258466003857873979948024979763310641602144501675288236188261150634892892469099785431929242749894235252345947763870176248673267374602204884464976116635958924400312661243942367896577485684310695822510519102483689979185225528780774288945907809064383513164536294462010056477071158775201442817318410008553178872757400526561463832159144033313776102034552504207893126105322506288011045715809141024940132724073744205372080042765478064637844781643305223058432312278866281045846652699452799213038463303502420653859542063687140974352987718799676054303712288144818568981392076155912520920368939029405991398634673632955181960556473844716055492527402633031034624789444397662610881810234981180351347269592694234712046011149438859062010391496391940322494972974332661449166597820070353924163721393290544543250997175423212434702562374502731195555791448707573247806274583071649352041637540865100021229947237221402700840416347114235462296607744168529692901096967229165094036983313227425511709968655281430838595787811235805729363437655079287660252438388645104611950345480648799148284036096043757086535989369895671861152885765023241366259018045161692595116660821870412423224445508862292328521847794926245689134560619981788206334772865753549618781100959926700023862870893217050073019356404223848644240783756285753988364544196703257413790747566700741451619835288819117127982550083899794660956839861910516508371226458221188458815942865882937144749184734132011851939971088843567522673727977588730452487503598013930015592881660618498155157899414009359483508299746807802146209064674671954509562469693222083502603716529120182335806973974916693688512059623551073418742895868006505008853297645391314093566387579547698678383149540332906167472591699301506257452273103966614888006435615895277077327098677949802136241809431504365948227714105852206125828454972366988568442821625907937892012063347061360157599618087662297093853033250079117627896476939462481574292705441588439542826026705913387135372032336696885364637583849047665091057836757494467955580181884033982268985874861440299226507865328591912562639247447776631008131179512483580956634849481000913481388015746177313733227632826804756470298094683812977785869130199908189520426247604359530033835769220827581234260059129966632036127218403647232148519279288893438704658368176882610429623206210867261773713452587901165822754109632593765705660078399892173711524422711980772822097310267614046604635926044253165667494960188977030581443266714939268948749945071778581188030242765415826220613015367864763782938371018749303025417026221890579416057808874095770625420477410995220512413695666783204154361392195137792200499172270316840176218296678891696307609772222717139890769133469917328881741337485486584368425477733607242695029080980463263098013967361592365201835235704486275735012758540522725473857003093259756883459383298082741366252878392790069720708028858728482752922547606174570071657650148289748892203852379807872853054512919055853671039041475705749840290088971609681270976231565213537424831912887616612159403579015188142749860222127002025278197604719066769922375903194199838191947451332719817180204162775961909304373026103132808109709386436906581684547368689406206842728653321457169691017189625402269198550023566192013991445173076233378777616440193761771922202939038829607747587793727424690359941520549098929728756976411520144326908223257002654664143384698778783343577378734520563268194431911655683139593689129668118775997700837507716511510142023177569078755023582851824051392016741171218634553532051390317283825229457963493607762778789083725620544309097291487768672962856820317464224395228668621954346839105793358675756879957028307934136133697893362433212883658072281346666218965103814070034540834824700393919488164585838859407673490003793523882329201947339631644412791900076903699435385916312941613005704178627913557305504168954384798644780385478549520316339867509352431834086788465199786249173453385597592847958672485782218939156038780493825696747223220469692879367097705553449171299141199801421863608542138225547042973872062801248140756140143782757050339431295772618616216998119402180231058778020756891245230710415694327412844389110963202251746647186369191408435999166668188298426571589785732930188495825673265959130906553557861680010709646471578335741005594255409147190536670547919117464124034693655982003115483467722178027667431517500200564434186248031592376432648725236699888694515458773950601050959015545055027633860418211449943244174552896694919916798880219367752708496936049891553612673771188671699010513141036850310384970416924243940064730898534661169877915478367663112919860186506089748628742745531987450558872645586058441830870825399615092160023512715068629089761178715321547193837139751099378406555486308640944520676846913720481340012791724118832365199931302756800745374382205170589569366340209792543472725987952852893324007857867975861647103655127701502236659341937509400999629981936294303050961014834333855330415871557672769709502632480657929376013957611447319219445594043097850892650775777906522412863961284223370296351695059688389879762561836568669308106204891940301353589163571943257363538670369821210138183877991986489095257158627751029137414387110458659362603845997708094477681891526552352316235499719940956576030330782309532807610337721400461660662677494718955200611559530768722106170118871891719100792266091489775289671148793707874691800888087915468175172249477589459072992400533645581356205219606807947105302333565424308580963433741077693726409222612325158566363420498900070213132663317815061408991872393101305107034535599180036721391488069829241832037570377877403350315195227878415113371443001925136623765673151584207501553954065014054339501621078767790526478218537434571494687922392827612750030766045466289854561900360000513043055554536206908889003849231176300821083514397385022328791804363340819082162731679531287864331437129299995497507263704281895377268546605038851453892782875280686116232726358616864981633897032798132037713633242283750607412417833464651975027306167119629599676783078910195283108370581935845310480130420229476642334724051164066453737158076403188029731523067963717554821897407472182870649225900137876801147475155303327035336889844069333374256038740556410549683822507782016417688535046612001286386212133849271662746490688060257189942192386086038223073351230688953827734205607826751805998460575515320235007324611928689627281147941920178190125190271099972645611849314882107644041514123953144076144119939844649755636882926865562032938183292348874041677682787824687650172884396552343735208697359625512015396405900586479605621548045599306323831693957986160259887620308254342686851016969417453789012772825192333431012206771364001355542313591366359671818612055751446843319312668040357450964827497814386249880797449689586169829576527108402313207065004059188958989653323036339488235105382876037625479322571644325453358336727133301102747219144484948502759183118624770103814847571029188102049889806871478103638740603185815300007065843570826899336296735326872573423658500868977366689256404585817439397114707170999102822372225130204036429389622687961978170485955355357574373795026250465848717638575725295947041933164486905407177222386920555689923801660821132288367577187577690582896333658660463719285095898352993170496870052540012258203427988037527393526516381079790946132333007978832130627464096236835302650976626915400377196458598433580402028348323277399670591907504785773991054199808695759825540364409890301542000231770574568813244703385086432881875992793682615482743447705452406563556554763987871402082772979612151027652632933107400481089472892820339492320173726471577522237720270107181795603747333969102089603776793316131696064950812785185325764030288802347760590238117612791970809905976919482601010356789453722900924240425711738193331088436586480226605048146524890784720416367092773279675808222855342916810211210169817460057148059249104012423715068817941263595643824936730446931913414178545926274952508062858644946141492513804146957157716090105073139607265856853643973691095727334697733569943608361392709786553632246990067223088620251226006597664850322782075049988829999885012578809701250608465428721562858979964022979639896783092087287186793708910986093681474955857916096388700935539573106288333347246984822106552871860274350102805317633555724717002338925267001018867980186134110307981863785141025538885640525237220946593129432465681903465166515784888127628559093554324863891053487829512912992812201964578164810479485596957356328500889210977367605462439819658588977727646728880649866250237475500399404275000021494319942302942290938578851784427635489796730701604840627615324614398294987967365272803435667027244900878080233423657917381771510169696085595531966022174131558380001482908378817440274219509568478806519837876871334330800439961497119813374939553744920485902078716112136155622019058276123885790131505030208914171339500411725715527460451535626787867360429742398737975169310946947692893507930731801545878269490056659643176986213019137643929790028437694918826907379450493197366762254795099103709761103107736215461477979571749684924030972665942314613272224314129884824887863367752862214398849777763043308839099287167751806150631157993720253480908119120849679880017463026324074263055432648502359676536510128828621939725176260149213866494792579365228147158736743184193410524509082469345097243599850577926891122210185805034671275002206240349804613597401513090661513524572299030781773257645036166697770337363421205478883773917097785933932110001918458785089501330671027842475975712599576667531780938387333723334763054163931621541197898206352162413508633499238166456797285471763351490618531284902569057667649206186915663696425741859091286535064962464891127861651902460893479569244784210438309161561667308139722048597373796053758165619124165275802948707579750762724656682121146887288450650321400298754205601850046929833069460274191654021453720500421946576188714712112416038791532624714791804463389019610135750304520712148226657298069447891009046550103354280396918716741405472307322396672520591733728140107453943261574069657865527228863968984086945706837476606611297638674048179168818597003871523215500718267752603126895024851356644626216719010611701676827490283407231296537787674118471248597167655884261588203205023840542891960877934194122057612543855029170288233902410680856221634453974666875700299064124810521510407525725676587792206483361803970883284875451264477552579544818092897357349559526890559441652606970846136451429915788314148186151508815782798211081131413391261257571736262650409881264390857366803448598620477093448153846811577143524994078952729110323061187696048020315344976427412251158872641403526187801287992634693234505500794451434238999235026769070488113158641489121389952440050739239238300248043995748817645731197690434981157635075025449092521574784841450592784970572844147138033578905999103479519267452991775723171735276955869167496610721373732322846830214387797187663088353927412267786595113576113076690508662812102449667396133501473658187896337211127768661917323155913701043908119416561602785762720125668194418577467157672173286476421823515577556873125120272110093744425061849469371843910379590015165931348518802663651495522739026939275383106847662806115825963069091545677876531368444739212755806484550039609316135471775371612202345463892121760817231032771974747860279793676559656744307104306529613424642702664089600939372438858288060926771788202144506431881287405407356685206756923855942350233714037724385561841192911557332948196102938324267161369538305959859163551144310949565242970132186872218999670258287827492149562982448026293121659740689983596465810191130851373740553950690279136170060460419636615536474035386944181933407383708021573291531190866659891883784119690364228279183505411492522776969141405924459443763490291964614076966650566708381089584548236590295610869178513649834246629295132511326006641657778174593102044397195648576953129739686988146768725798389963037582881493297431434130139308714126057681659818238865951006219228546515688496547101638989050152680155908472454586549322175977244496150513991253390775614667725816950719080183196123044721728699233463158767439060186934678584911345901254183715247325888300588796624409324845794229919656949397379092726081232235786293755043734531279080480217685395019827438473098384560216005729053321859542761546368939278869960465006832144625842131808422049456782695434879536067683700652225062763363527447538545396582305864208654749822222056930015261288783862259643350509534161561696674656860589245106456428644681861736236144725747846120937172678512930240981252069927841578385831714834934799554862966478909226890148230698117465381267801032900783885858941558807066189670157382663797631878100681853368806574080456055003105718589297852834255071820134977138437717210501307855771006005118348834295140810301317111615645921709974271296620429627294264191219256017241140864678009222873377356715238826130844542214844513761302635755099826089285521468437673270679375949060142433561436996377266264513817368599977328541544279512619934145202363049331289830436118509801307228025520844672626391822908976846594367124542736230593828222046454235335015963992225230908394274257016896925690352433499497478785550530168445111965211887876569710584605419257606904615355175861050013938890962598723622918648567781935508746991590185320097001159962443500976414972657076833796183687681927912527496196615372494999116050081601805878690723487295932900258610143127253850796728126118107213811314684407315932086052842508270411579619028799998175814746211683583957897393164407011309317851682970534425186511821111264298933156848809098100384423929748975858893583856049661271655203245636679301958862924513676730001333102819619034273736748157297917354269478861781312622459900863123053994478471265129992087016145923856921871353834087859920914643685036657737942708942518447695600888315988450245649532823635975363633928833245040518621614138164380487612324884093962428973467815964743838727041107401745877813817535822000964535106564661416046296606021822172149060824764608515938337711637780832640941992027181239097592444313200598299677696063721702544938401201336074941784136870007047946151643163583973339136634873826377358047425915930023006989019694097032601278054351650113768112934826766012349319973052211408057031456426332950307170722259804453325569005350471427321039316402803877934223181412574319754454625449760555204220528114556495088200610379686925964350183979025786687527949471519259135698582024741939926736487216652962118085896442464842731905834908175857850674926228785923153526527379407344355116181435298508979494957411686303140637331274786917399002955936341988824469206064005514448029657352622980508221168284649027110356202599583773898598956174688338661236677112406815389188933448854365059154284788992249183451310609292238504057397357253753835977935282284658507457899384421327635478452354472581921274976119232389271557517497312745207391400001760739144340620850049195544798241170146353378599604870567483252703820686470996369671117517536756573688937653317821178059218556673163441458493665869253449126875718940471519820017329261163682984784958508696741509649464609630944762312351689800342734765912733462379853779368629236869040543068678958456603385634142962595031778724610490452455699243907515977572441814157961883172487023327882659653972559829118491050352960383925339872948068298790607458966313773246310734356785824720968157836862221471218791732696998107197072989940359830624207064968338575631506342198808801629987956851120414056153108679000266990319599622519431947086578567922068054789741295461754262163326865903946654437594191726068243877835551968746421834563277233093100162086696451122977017715586543650117489929175294716746777480754496150513947387075942868102317528878949938398288164989807710965888448916782970978124841050271009499149393638725852792500581935267232038972054919495667654687332174674148778374744789041776234047856358958074936373483679602227702309518623423961990341366062422630614955485830964556606506375679713656660691512825314986713375324492787382528203294649712295947287822756639553189627298078313823102509184371674843378386783770082123326296278037786550919187619931355601836810980140939170517732635214709907268687285671066623627880886753888848248372664975795190137449134145518567794618228527400948465949398005876441085065613158753817752717562293643963556414044658185103672975774098861469434486872151656376887593621780068718593086354576558507761214229276263883913322168390698413184056201273330197181489988673159829896343767068988923696496203101837018785266478748560564544087450444506478211225139574375519718595050242656818031091090982328212597756128103103098079541220461086768330661144965965973626606268505759792944841891158405510797045884321629599342739909349478656050212781731937647902764043503603934247737158718289717967762911586998441647523580942771547740109243202505433331044520427393252570891851590257504348540670582349992740006137027593516599322964991605080317786927769217956615316512690509784570778903827100869668701698152450708881200147517773647047233656058043708717025919906346335336571812759866096228139722512122745407990253834623318661904316148359890187876367455799220761942054552553762775718403961862675807717587697892308329792072458404607374191890071850590196112675751444328681126510608843142647013803014820056444486610344412713690638953152122337967359697082589584796424811466154596988468991142794370439249327554961878684318177494020011237135823355486703484198794888447298540773268468651959471667336654471429356070480474596384137423612745608162656080574878969751397323296473356614746462883300185972593952757497623084224975233976693702217403795838323832606827826897176677574656862650563070239745541948248817598825618204643063551027561762044496906886477006971593074328781267249043057265304576373748566499145181120375232139798588487787236138217317295382540348206747923106098519585322822879393759903594068413786097911077030484762134008750888146277083734579174595421576377441711622278278425427801140425437208560538147713216055371393943628118473294346327335605835957669219505600930768729809749164857656630347235889666410136278034885040662294350888325852022046383466497745071304304346230421512262207309798538760293795062341213996935360751080820509186121138675317764231779108698180162647281119819291006157446687479178019473629727902280304798440282049751536621666232973541361981149309412210811709262239767842213076610507231432511635120250542372635210523491451111259021040721501634708475971030992600472988076276995631720595098889270464428793987077683925749084708724931012632138140345989962623033978201982293401725356147703301284586026253867024303351071780713677529795441032283578958702740990921744199300015829228981581042203588183096339919213737805541771883790598999901959599340992319750219971971236834327096644558489550610557260459259247468290447269074779666006889676808643638162758083248487633027680126220030809637495833950303899991849732805252894102121697168508593034380406717217092736143071866305611999904530338044927660206496398172868615724478061629778466444879183683997911140002232455441116907937730943966764933656214903968539567981661419936825396739994331476786031479183016410560831589449123184418034020700528480328831493883468952099967252489715543168183233084016715184208337325951496408034687023234061785043803078747079742550162401410871313475866148840375417688380340714547015928766299436332169966609842813227503945537520361576818116188469809589864517376498732655471471783967206985360902506151742729229168085598464802657358506415206957556278152905718287919893862247269221880906334077523929276552749382931705542388767797462372830474737743630730405195167566433445247996623982012813739201655124997001857533414044112673624348303568340945655429785541954449390864244234975218521603761628407173065300226506161178556012810635920954774178870975115116866724468244374514554502199442907224465628585643536293462000178374557887527279643305267794063793855174269174950275055907289157244594090176974524473639725731631745620797774593408881097400525343106873972994583174319517972810161414938044021640583741620369362291913298807718203743186727327412079695662466016039699070809153178948099500295306748740868974516913303293995992691749624039323573996446313662337466168937213851842601927212393193353701379472350363026806697553322611370593905737154701205785557522288770983175327904300912953503435886292403984848290490176748584894956182316586696058828660284180645706828451875859513125657185096051010553916216852191780051525365159490807416671267814146852354645612183952538617791597770955592319677621919828514427420394173016367203521816887814799231698644212688611974167629720636576587460826080292852939884601995682151238037687624627235320279552107987720859953924421460305183266174309303061366083344873700375932335499691808161286162406029506826307688888717821826967860782564513471428236526105356538481636331401256854046098249885712967626107191943384030040762541115225089975432819026302210379316134502533694588678049797996124474175618439907605463767519140385335050880313925885859074065209970838863628343198683459745544528163019116222217373468277772492595271910353642854386701832110989768888050370439591326667864909537232388426103952035481940269893487682765293725475743512898750522278611076334641705301800867137490601002502503652953579368113616156181464184074877566173304096503715626792005490636459880964508541423848378322100212798464769231192756594168885594003281896089132684876948141974103408383144845690867533404171883010136600569361102536220213032735758254867885414403290768441321608918487968472306005875149051639901064051122011219788121208717016287473507567719663270576300987470525760764142333712759036061241617057512337708210478547702312453061310740039652203041597575816493794673998811346064988387077022790053267377015967184092084609458163097038164052669365349452051520239639738899228835007992812906816105481162419273417192215252711328452305997338914258487267140435339442979718381383421335201744281440914290565896123006265692943796128876357941263032364913668861363471133091337178203062870762750964191409402257993642090201923637122458817724199865670177783180268396268255412772342106074022349807663478206812930501573319114907358477480667710039835435800736855140171704486241430519308471590348377992765241492852163404052011301968813030684714522050132386340011951878918897068338056864845621709618430709224518304364811135062021606437313152936210980890195932398510174198735037322303597826096658952710113525536355746828566263803286436272190713538709340034583185107289653050293839797476320618422344669003791728431802480785508584062630547849648178509789870870577844081978286265876980726782390743306615802685483222644567569225264457984805653942909345389858758977627706778474055518310513853024574506501934530681198732821785129588898254190324235160707164605409303404436883732490574067938419977859743469988176643023303247354837439040259265520859220645062610150867431438111054711058681929681181200027169855507787980889991635264066327590470636456685414698566243400761436804984264488179000961171654318146452220841255286163306948777045202256903300317022999315801587192478772558326707293653215819790239810025862703695574289812135610301043314044757672075080960462229611191221759365398862933080830970741707399725324625281124815085367724340549194149897783178552271016756591925868543936374158205658258022353104683921557564461259902194797119554564247848272339137380892999644786413713755678304756177151246183432569993630885014806599692124935279630964116592046351057228909743634885566306467125999512019440523047978385928817644042228608624004522087620998647640056533306056129873929948079600746284741358393761007941766981767873622088254028626289499936410813525045768011153389959434597163994155361456286519630825382834513506794668153881290461858959981745408484546078767303051916132197510266356505048773341214134353099899429293450279297362655556098120159506994882457996209281973242838350807360072009930613631636290903234460299658043890619581873748718975545719248774713367268305053035322026120315815476714068911531914244076348956969759359574685798669845432279556904084611014443224547016610004777790750817859410991592120566406460127015134428072621917898036861358343233304821633621855389937482296099050437537503651199805721803116706078665477864966738254049658458055069941847827777383868081200545318118564586442495861938797905906403295093534401878350498554646452912334760056229630788266921233008312621264826407851349138379848379559218783903849553602912502788615590910769696449907612976897773981734285453750118757934303874552883144230053170138644752862898388164675200186712734955811994655999578301882143378271198187076172736307985645426313782657674396708468357392681971951013889565217175543873886125635845537173454847794072172202529637102145841787209033816392723852143807305812083225334842981819377354340198525677114194228043824516664102903869649459502150980299209321916911700817606161869294039175956913329324999194540729785346951343667919753678066789875787962648902599846961179474354554898739490975609505992119714838435897481473586608460471771402337752588965267678661962672672224952868549306876207620097402860903021665364856233015464996925134954003429109732559142555119158403560573513039409844618261083084599874308869038743156941761025761168337170760221118280591557555821892833415560185474412355572602529263360202832063292815107025299075116737717100854811007228525170249905432177056064435933005023552966208918089647457982895055468436886461715265084471698809923676279081919604613025400598785457631363931934368360495043377761829896779826085754828116832812445100622931307120691282843474748114072891369751138464985184094523379169530096038736679034574478777207242999101007329040462440963564507765602306382519326531836823041231415157685054539875519198141821035877606782147123637684842516033665469109124436482798735682427323346843000670117890882346303212238130013372445922638171974349498002463629111569171543994576875247645376586445658465685144976875354162378109603874748841328377716089453738982539071547469524112057723796635830267879663834794449149284286145274065491058187074813586789901109004179138929669787014599318454028261258263101341708445429462312019872900294291324956976067819558735161325082666552953961254352465179938448950881095527945236777345719369604323465642314330314006093257722238259654508777421095335070820224489050898293498851275266636929390043015018622258326814229094354684593961065455790753216086505965540362226000012175752384691481517759573397478273643154645449727293369505241414560775694786820944012074441386534422236809312723312432004363756676124233615256282967279799998779722652434536046391025050348461076497045884844613015378071739309154332201922309657263075629461807086469100949008674941284160352948680815671117896386037813495704389279080580774765412404792075015661081080912619054803169445771155185645205481180219022232310261384788521517970261370672729479861592389755233957089754089891881771479764691886547294653583947308303337203921010403239721727384110224486754208604622970078033112318798623912156747436638328139963941601135781992615459975844697804877606990759051400246251028681476453427209415469292980229591881750154291107297199737690882782981014152891668924469079696787330625125170436770954074499234759770424647714607980864265038099222924330784859512274051846471888805955415884201540124979750799611544114437746784504364560230512764624605985680670004968694958056256409448222765860808873776573688896329079020623301150353319747107301338085879651269394255227565188862506200535694049649215183958200287452860610472543984685028876436867799913132115213010411321961723325009982455368168370626297976704356342993686320512190105239450038753324667617001152449835474221234607952587872350507450551505287364305511919749471061596010642914061130965063231466108316835645363366010607973751894213696463220417209725658170944417016842771547240888153932491814459594248066258163733944718334519169444499892640271265252041721944425970304348037700774696784427495476512475938690823241013622163548638637310335668225174448174691471184190709046396063038660242681237017538760444274274549075029064943413450719343917148382163688947791468263161452388372770632856029902226115148816578837068726734233987640179155271446603581173532029612718827508448779585596290823519267001036951718036478008407021408166425039333797904452986843880650719149732548762325328371163736149377840653032576073319327737493143714975119552412690236213497493113979300560410979537477361912787047403048121881092669333364739186686902302802359253722781360725328142080504016340858571695131353812412387836997599062972010821011061745475289966982097843384065671350032627984259671261256950582801236051366241257820335053181451953542196914750738096554838351919120119008364591779987960817632627359493796489879738260409477059503753977293276734386512749046304903213174310069309381722644662286532101207129699441326341805519819620843079824509127855487345372991513800500564077534373296588563877162881759956279768725640083958683217914826894086078667612311393067269485125494658189146401882815128690394547988896584679369781937663370257543893288074130648905875924430271620790703700773672957655860405243446020791295008631495538786537227577149342094746549570528138959815986053053102939276103579559853183218452547841561236988071782239333764460311999123950884381428467270797031662968024993111157640292947423555271820137315965181457452098180340087770479121968530183189548165018139825186697450313745675294386116164812897853786111320386350271297821350246504418306412660259356341241426416520951560252905986837379538949954749426255032407125917443399387047341472454137084748203067789960349165475240445158182229209533830056354534477375939650329271562009847622279199096018986032765995076581706049488440644548823970673999723593231459922314403441055454587004768671905355784390762106862942983511378608422107822628582341122399335413139311693010848898987966080954609281847850521093870566496726447727803278413101956927312268074386522533297580701152705026498259159082974536848017839056666423805060885590706135780665894526781985968300347090146166115440042438459403131560085695831180923135982719303451988012869068199216020433746294615927030229428870665188775900746237553330617482781546833092586829180813624224481910141695909636910717937328362261563931539706598920199060866085497839232283231047728079487302720443044036645922126953659043539926395218878974137484071104951787336537738456418534415287313265958993371267533199903109533021018729111915360413788787168780925475899860169021254679520211957899202833120886326114989390083651869570774167337762536463552456035578601980521178923067436457302942779899495080339527260963925177662465488774701633060682910594145913912619970081795646407152391567851628471127907483384862890723781710371246550262264982401152585155355876292148019100721596712425164189387410311306352714352126385844956968120982228815466393593105250784347458110973616143027748948464743547406307194833674761453198594030462198838364010782699910046917867230139916713968531223324925842039398910764516259507474442408301550092984241312074549691015297861038648254091419166208994630375624691364954433873865633513780335971975441566158498310666403784423285402986131052198097417147858782419447910551650556914285842176487979698161344143851647804472316079862916326480853812503827323062071712224508482268908843861193188109346804301199609620793699613426829365614778955604108159141179400259520414622384967096201073692728777303899092532392150863479995161935578720888805579754257749362982975490550424986729817580802351140913620972146705100832595108978375091808708568608043114089582426644970549955190210941106078932897436408757663466025012632772105242735053033451730453008367859967229436351156096568903139343456387815472125738235931171359589772209217108889193301547063668931340325981495247018965832316039907637761034200907001445718132817718266934743073777882264345915935468288962928577967927271184388145812499325044191653578154926963528184792919058492718935273563955263296233721867506245934176483254753472493564039473944447902691108339536317430924672712731302349652016874041236311313342162366322312203454586626815735583834409308560599673569286592788022411589425152506288560203175646807669102298039071478046472203297759927490337938907617930904639527229699311643419529096415512649867374164605292599484943975938825467083088058828682692269749461298275541876930068385840468298073827078580046045222330171255950702338561345555811866370081020497536879994826586268549570325229278475174250545032027958666761868220750426658703153219150838877771455518959779033917240109403428865511919363673791382297482590339957491753286204926262573633925469302431749114757985201698699491683556213558981663060519421943600685924178696528076737989599187385640539783497034836179101598921458112272213713375191048871350800050067722185107279770726340384581147486812602524516880903113962098857138579818058528293015106223227492866464007479089723495710942985162536525785335033626352292299799837219074117384363019471978770150949707638019146879998151735977063494637844932592643943747220066148827086936219114053089129100672107011963891932881788699098913043524265554023896515390997173595076226696702266323820379918669065838653696098082947102251003215404713019417118899031973490588327945963773250575200031444048454727596251497901692991106850938132572435213019155396416243163200669913901221410039062393705911957193132722182999889863844236485246346053519475390607736711902980663720185330805167578433939646831246161136421654920306779058149173682293380519613001841019302795284999710267151681712677004792002613787385304179527722312581939497569545311135840736354059384297002505508494381930816143081389048711836514604871030075176556361148407824581466108031119316452331530722974925732191042871005923610897866803184300383670168468537580277663645622739470697680378845228775101552431949900594088322026355564861343086130695734396729524856286191022566120416143048940140404689877657152706156171408764639684760919768813472363695688960983346108546882820479380838012929878591030930508230825792490143236017611387603423273106612175798459204536826980149481146363472008251241161463856527028275582851576566920378851136251708512279786458569301364518744831570612245808290295152435874202270102452404679372777854255048173317340968639331298128753876622222763574313598967231942320357848568442759046670731217726560704297202281241109592389333501653633057752380643660668428690493667300627736073978098567702169969656250818961365877779576846731642723479562315806299153741231667394003017628691206407559628135685077468752893147921092904978711335235416526877143154146652428016741871176748690920897906826704647364793276156979160150632149869452337459876624228115656555735832211537086133168279844385597578747100847211997242784137953101546204534592399092003640651104314321815867895984914938940885015950756252163771454655043809461863028017527399757014203873268346855816128779993036721718496250713699691207269122713452947530792391048261553189728796375256034020985373958727034337164132609512763364251399150904332179133005198402137156158020583523117960204144969129701985368683341969598833565321606756714047400895931306111072822329886790761681875193801999575871051654866183006708862878634228479358279843419953552840016620946055880956495775327723351422296397474247985937536018495700102805365047886710695008737734310627321387619475746707068070620234918527634687343647886638367799037663686286607114720603297125852887477732181995133231923558738261994008037319824493255771996873454402747323849608127930895643593605126052753319372214246776201700207586547457971357651044262998859483776471320843275174061222958170703573017399632586008773611562959793205740300026876358626944407191730252276878891512468631720611515124909490322061003767359816360399032078504355782560512907381606710887025859666146603160005036594325057023644162682723226409626055488352666885141974236518637005093033606967421410309779684293514873501644981734734668249696872157504896173000552690100062372510193243867111430587307781381944593810603854981246652902318758681091885481998944052463835202298618887803542408711281042649689535484745744241936207496599983723655325279564445356709779033645335335786476610588108249306082461392255373682942881250970954643679524951329849236227326126336757485226361262525149201269292676202063589041497547512057338710355415488352959987472892581007793703232164026048101489281167824242694644207926929787938043829638211221847983154403309594525056215792715394721497654310080472617333610165041688214883096429599622042129498717717878312689155663773329906473185965362306612786553529946401553630159195750281505990955530086211307276499950089233395933940654166720880992022184885553393873256201467999807098385025455437775526724934572892505012083914309828162245355889795614570306428290306742973409857313928872273896776741170188561807543336958714209379518131294235876106180421656919299214706673085215859183847293265390580201210515723275872277689920443444237161254305155400174974323283478221106339334013047466538415280442294562351467448142395634663708462610403504121341715948536978776382527631575260593605296918353365461489036553504616632706533132264033686684826226158213648336154781305543144232608435112433052937214854679952869278816880183980144962665115775147332630097989443980234980323977335651566994937644091847519006299715822595347023442984502235043948434908701744080574795621194137480007225927207736076387489409693818019555626382554862165736920026889509052100189609147397187681343223267197079336576432279776495483377766221791715063484176227183799016015755739214872680666247054600340947297912118888893183450244434689806911159923861370778844968312206848625780940380181149494545525399572059041265065308733356934713499188937402582795438779704839126575126579728819306400477906046372473181900941918205350424789902174837616470207679262331801034261185066692021769956807607244504042383642040308272259257029444591824674165360083960517790083738241784354353532960354746208091810838197134425238471179155346213631272361025143853209485505006764398872287379484774176810325672724171049312362331323424924156222321718042434629710991135323924706399365064595064874950246754497968233495014131009314116104725983182771207677600415545381148789417574480961304589468344353534160716456374050616914631898020017654164064016055640000577402236897883511074963297122440694190905205548657446328469954588307381413561556640513064452470719792009544090774693513533306235415476225701796090043276278154486707973199440984120378513142473196381753037396742524587449286508841647333196221505598145631742099417821951537388132282255032910598742679474435558434521430745506447989233384564368191357029856752763357381767041209960730883868398332050044854519511004900011999882475494526951745113545053329458035279464006649429329121270703612616485011922946725358439146029534696922550226669373072715185969671705133470913862748988921887342777371774443662218363567196933978993119185945075679022811622829328915271580693713688464085883703786835232023146777159444605536138226800389915337483164603323139132585927858428040497328323309280670108130198698287926279656525610198166225102653847359244073637130851762531934373463247414485219208959541057295366611013197465319026229173378339439297185405123783356683595121675765017132004408381685415230724136698056017900617862243231512911570634389152242948199273691436386439528159784387830083141456821671184844721346045002053945877242697308320167063335221801066199642356615023017342434329274746190628321175903552705773133614024320301388263900773799691928684823974416777490642303055405741319023820824868956492348811002573882717252579802114880902903127726673049590075831670814701681457213899893687248315473937587080425703582899069171334663480516246089500778994301133097745054678666940628384809510274060072994991201229902462403464968110865850039193675066766697699623544428152778656716801742139156041144373923612265491311366898814504960247335027706051061964046888904047284105290174467614100080362158661958696125308802255333219812048866321864327470722828435753529482468824010152844509742721745819413959363097873674964714043675880564390977111199673545149817303317647839144045746901166709144423500436605080155438323547311989236941068179304156296859808313928700162683235918990411609835770784562084443078475873030988313824500000136594479448012078253680819791055875526496617175455589137311741202225252576316238222709450488811688494884637294384963787115979117731152899784894240809355947303502325771705660494401573398690136580459705709153544527625848847040172652714019818012979272885626521067496594378364252797776558309937683107754761998939751383182221270402981278587891621330508955623555254163105961910945184944468557691208784223261010782616334411655621049987475974928440757139787780314936146701314038426996138748768881232118087836292299467233714097803332737193200253911283436791828936280029755958582403356518491741182382163024991285165842414114777122338542449493944706287009423039783270692602878176538760420407383988071452406361449557467302173314398071688191025452023738882602474887214261222235770015182431345701056046778301554952659056153124749821987667939801295072271479875166625404829277509234672129507218043900433652700613561974335855520164848389222231837589656205779338411720602569498858625228934591729235534093552925030282101599186223158648690557101010337715976044173138151946673164532995344647926003236747200092769013761426923722487784157996510377820233882958342458643883737522965101023005755955882567730956929206341087493543548722682095223223708297188570309993713469029625322429595769690616019539544971322255062572946301377391419942576416493363311741441213674860151284758056329778097598949544890921984451454558440943716161954811791030436299932887062086415677875707629708621332506658169039549482380062977927346483368169331762513193272935181532342047293999156916244188468893497726967116829034673204683863311585767020239048049242909336308518218591723948019232309609954701094164124367102417301880566328784405419394878690551068487133174557880397519799316585298578551688069293324790830326151905956052264941611240096177688770275691045069060301072623179110971188888914928643796827323810783681174706893318264522935550825685711860665525041095187300488738569474348655095455561016957136070359629312973722575950495135410386316967300627597336133773713647492369301888681894430193004517601883798411221639933045608156098475676303630207418338601840930979898048158514561970891648019900616813416618374670546523947487142801318008104613180894392263692599761046622204712872225893490308621962482387694278930371551930768149201286643376071518813626294460218767229960299718447556186015804003722866254446871388601361688171685501014206932630365677238102819234427470847642179178107939343387756986563964725129544229036328786278710626858067328086382098252983697625365867870077939621831106860056535523959209428876425071292694301560931039591905238298120747937865111127075673228071800633156001328486834037715735342591261089609844506325296896607545589689263558806687463363002043327045612062973576070259180862787783432633285611352836081036343473285256009261216692688432211621910700610893063766858500333480777215183530150009019163556597537734772336955003679963277912423411756593082498430671450130139044563355697289930706785452165983674219352610249143323643974717308204074501471909972370037935426439924961970741256477736903114785983780456834239514792670071230823466450949847837170816256811206381809584598025492764292945549067766606171444257423215079320989552576201487005986157928857130150326026668606010090818555929049184930111120617020632843050819580293403065687791982296953083863032270550795737761102912792491297518412566803248496306715720185394991253935511483433349379121783072437755562859635095458296866729437290394320390345791782768674540041719927290938390504670047825824312040115767692664076982654497569009284347758212440727003699638474605719587555862030859454976075787841605665907387972125413671079248961214782153977442933142936917816720143825388204587051393069974379532483733412073744747853999044138215428453016239226341179427917719763339964099039915250365306716034479209366414296410971981161290996332775378318704787329829333571731787981851192499555350045499287146437660684707186638574334039859773104103412853858369888998989792415321375662079908280889148631875194977155133349945948814334655237027926659709529946263193903714332490332067415027180126287359485319427772198071764891781076148255914457509601843276225707781128500961737658678762102284636325957109476725414227613547579404249614796308397088362223713938234207924380266087091064464703111648341719800884044215723306526613655596556671863265414533075338513280316308478185280689126184107689986209313006923665421554831154011937303261076394104156924851789648862634045569537910242451940627348937498846163092753615205415914271586522063376788752627545144787096258415694015861375185971698321472624008715787785786592619624635861778434453778110205651945512976773289512886986211247721803231207653790293421606756877303542880878051732114322203750311458730498091908977792094228922893200512048646525229895945002732012222886871939984412303797624018503262329461755111891643451559845399759216385305197292619481662585456423641567925377846110241628008480964351866144279441210023044839574540843747810247778990352645881714178467206820778688204261824222525004359086250414389284060395974777884845080720606462443667438212272792448621182441149337207108696973275380620765142489932919736738449306141926750621470819418295630723477081461688803705282132296545341595487587178776666945080697794600498173811407589697626520927440134325482504066128496315337415039835010713179068657955992131813433772627281155747539510620182716982084848933721058143017543183998998811436113800317392574362825809789243248434961820259939953073053653328184491858113195221425030408679587650320206058322911290286900809995051443112203939502788882254441289066790252113182766878689638925693579344465991654390263444560795039200391771085408448546608285720571991230937350426133377227442204501157799013663290212659349786067441755392901269750620925220145358858742327693881891596816500929598963989341155698433182276007692902561759954715335479643988783347913288284063549692759284212799846333939918144053359282327969145572315721151235971575369093042458089641902400972552175458758066559494641021638338744534008216719255613138074416056017417232238709378090680958234080419889467916513938178948893071134868979236297163932737078625376916234145127998303029428749488899563512318954006050160129450542272160870315042359624491573899624187609863475793151449841804616716323669682997021595604487563972769921754189636675715569777010844234650494718263458183285295012021207078749376508877704919907642156416554447656001910605675598220615769720240724128803802819675871844724788010973271159354270208907557500541234286350190896015350649580287009232079980544626360409987218836923781674927046137401935951530345840533388557406316409340771683464893438904091896070204205652815692622067922882504328554775827892918229214499551788358467663444820677733461583686415953811764235991306558262068276460716440556531214599416640275890816865284251264357696156264872770135926210150169381395856618249492064695266324274953479660603685468224803197623934940092537246091789130654100209143409414275210398675127096794376135803547825867881259715423907581246318344275078459277601874655041528697427377080262972940588447766269804349605743270726497466662764167162398493065535444385849992018022862764859810797715583499070189921818580036478497640784992944406776441410400987445311710710868597851866017342881035280305779391741259009254742012068586571875543645083881894285515546002473135022370012647321409334880126110459364272683045070211434995645134210716502995542976703099443474922596137149161366400807338842965139758756754098124539480336511069451601870065294381394309915083163764664000461033275239464417007801892825765602926513946142785472260391068375317451427559694393160972054044762442812087823375498742819487882670945073034388405420409034277144245604653014195019140990773357134380731961927223121425864274566731581292536044953157905744013652310063756251131699864028898459621439984182312783703862732237160310061769805670290656642531465939580562501360985630221098658602426479447127104628487028748902798102726564363043833694379419593046797294567859078004688866740251641741632008861143035467334815059288410599999362065136851862051623705364869362563765756046243409239950405841390404399233434708884196441777158279823308823107898981701286013786482108028722456156547811532951968835846089754210104664963468545267545233479658301647895451154152968262841171554034544111403474550452948526146421464810867508004723157740643817924942625617025454196127671652998787213406118995614231782751209111890133329985842153241896317617252093747258494817707531675781626175319476741626092968897672005785079444858381438827607521236060666731005013080370572097783509384798625539003874672589739319315351826064399907579465181367267035846862535014409159798581656188764507066742437046979538430701092894544471852616341321587834296472552169531101202374572220348381650380738783260585938747769174457850761232521238843283243872057228213302433907378472294324727364270054059635475024057700292212341255316231435245129963855603200617236166776685777494651058206635147005086959684683967740811729357515718527610274092446832969820314773379748240815422250626883698229779945326116154882151992171055680250692568377956487375839535896175609101229749476721975869752849711469648746099088386386296093591984450996998301164279145180019627468856145824722551371333889557933374366516874202866331230233093905133920403228340672755342004485916868950150160088873973510923399483693661858438638243372762887535507254072157497021071840671997771213482769388687273488743121885860880057736739850536396333205182258891652457417136516248310899376471496195234908653117110707560051538521893789547589245610639796109045381390350601777731560749566190905763104632477585667818705377904914201269793497536415973942860300423582454477203375243117256361919356500187421653087771053744732190764098245945086212601474558742736877582635548022890625926928722869772410320289602594369180627150929116352416066133098360738971191580229568925903972591925921281484470056362916617782562900240228614710012885215416396084684330985580275182958123981200886609541528377378169488885479615431098956552352739941738335428283398298011827572204457820742087698183305244628850809482174737173813628960752620652923679164330386519753824495908601544394897896323857327944844682716349736477079753892839097911492459088710739803717975570253313982560201286408922612138801072024426403567507105342518069157577137435912885757716299839232693697269406839179740965018504607049414249185657169671756462245438744790775427306512925927442505549532571926686140950774824171004737643181306217379676715637035291631190267183763057350318832931939107042879534433239654383716132512969253235617329566446840084267029104678562072406929359707286120933134813499305163985342917082730903150399015427002654693686061472751171878937882794538164956809066375615283650219618678342340417312789351889092842624620904173495277909361745278409328454541244808666088574044084555516717678312880904211626727848964409158274959791979285615351860142564330371545760546136509697645100009220689627843850281337294831607523900830719687142930797617790108541952898267955043845281833159501237180352636185077735262768196243690854931966387963063776575339263723263245520150968572143762590992438055590412711981214404673069261682312276625418723694379254083237677999208987686818904350651647333292376026932775462318100868361712227919113460195247508737690781855364472388384412792058691988577062321081081576110089413978255564611005207357271005202719715333377064404466476738092249469937019736651562672635889781100256029252269015405240186583959080128639850427367157275779879919729050375944102936253906387866164404098125967223759192750881612965722269991584534030624277003048148079699706955369486261990634458732297791348296889448404117980002302339209442756834409001047950825954150466471842418814645018268141032818451952571878244360185890113867137020168428089195490707327045721217901770623342054030921508385244109404878131653380749565292597813360923964631861884395534299765159663020204983593434761225674153257966258603748900758852367549050622710904043485667425134297122144326222746627118528658649633548813804855608610772823625834300199661920712726440373113105768497903692323216620346464216265305587472946884373978729475912786122513627852499269878996708181460250562101689006057439977077819023174811462075863300862171905313516814622216258877391471171270710557329931302192505373485732823533585462357107979411083516552340135349077995247365892940682819933406930492510994374587679762173001567342281462588628591947185397881228309278828356689217297634329614149479071451028744781406211298102305358410954991033170949279012459775358019639094960500213879972558209950012705667821485109073664022605462618432533321908279671361351147215555208961597553278023180303176941014966542009653404377863274434503805346008037866411932096497253378737454103298776910233279064985701512963073277668422628767419165466949617576329279678161665493262218960450010189846448923257887474776695763463035385632188598777448299605290433643508535577109309710650645559581185119736489478055340574590668566815338846665126702571485984003155936147869884211335452173820123801374434556885372477659756357896291135739468440258456412570231257444961966981854082164511039929829897975664014632170108177470330585632716041379956817360784034420115234428852772822625180163678194497832060225030374445886717033813672014305635018421706414458996363536034766828315615377070888269357121316942167719611956754950151663848463006996593432364675148643854585845900022923864637028560612992099961631486267215919044831296001957697173665122609921060251626725065922764759802594015998280431924677001846860268097285038282085381936214891931417899341946892833610107015232031605790905310449208638861360943163471448609934178675868601868252668627874032769526884378517500991196399604656296533077061603581862121098940486066472181147963801417900858945131118821233276708056672419226101410696859539600146007163280733338327203054311571521032611595872012275215174151770831103358157002748274278795600794256223662537393699062771063589859683412591511977054103352582234467527268958807567970662878802764836720335433432908844596284393096885261468155409914650402052693343637963924292237757987078924201435502189273677162134874511207390144756246672163321965917977474602182842351753730421495799373327415299183284232453623753287158782918570966961781323801971920093613145779092363704916207037133158452591801616152769274582848266437925977496165301313369310485346706154036362266217980167989740673138589517139783925136357183329134858845408992165004161474513940480384829251623874639281247162787909227652444652063359537854113456502146441340989688363930712231802359506542246276337108261679091509196395446935603434611581762967833072100810272601416409042746325743740231623089467994738514589625129166882791779785047029750831869287939296550320032626042680344215550694569574685468682805528796765206768722968309747928299048257163985428362751938699792223166112043695514901064133294224131237496265353916177242467382864912294340313147548588826729420645957929087999616387169616846974508042026405203349768104850850095897542168843873066030914866121138112051695896696101247827060230184525352116118303690235564372029124304478685273322807170750008895752163061032377737416771821920254347288201408399401687798759619869456234666107638002654661833810321207657628545565198685939159118688326056529964281796838607696665155005052384811083945728956554876881731962373235760430473722664742275750406884048594839469512930602346793347654460891935911240367925948786976268489687574860670403198156899719232350134169724903722762422680912281087288046297016010036950096546384360068351304499199496349703574839978936086822811139967705087677622937344647553657730538801699379622292382291393865334793521274272546930120295106017365111400087331458979392139922861969247395357779525091588981435151641859403202637859234507029195116139234021192655921074580403765873544195136483407725944600752693260330101345259504114888403079104469395936055553538544404798547224147579817637335539141907510660118201466514652958002010816591151961243440187938016984364747712601796138241623888352566068116100636346481438063835565732795902311723105921864827422246479174088424036667491211928244754513646241754969398911397291778474488975102969539787501130844778792613059304265945234546676251770159346316449135388425849089310022324200438638930218878057368952081384265985626283343870586757633954547156034953565837271381651239340124436810926659348393829344501060481694754394787547020540999084102155107504083162993430686682535539586509094499754847000147477393057364978967256513666871191001530263079327478078521118581455510466593388397164713012388673240020407188306479646156641779734267494408647220057730602864624426875387359570513047546258670859558175520379082191513138493536315802003751911123875590125689725046841258698289519708055560278028307846382120795761125110948993440007177706954986510881122955408452963937562209825609151271255319232832268982090151318474698841915642728024217968972247675578417540986907506232581239747660201172129729911859413609641540102149000167643164818439065471899716696278531376550153516076899238811080643790964822134030787058208971876345558262749122133892606242476755631059766607304036297380651259706322252192339735443319483011344061282742217032411010454035198355557960911958598131056725403635832611492010346264565842402071157144951474297352991153695560509263511709797421656844993593608355938664594633533530521317989508717176769754127561094138920973611001444859110488467157767362461937013614011731238143769996332353853523759703776414710368334850559844408006813209032509274033575080720577605118388396504602224934532319361385300494917216409640687837959756726909211970258748536505679546728678123692881130047375106795737738231656309056438975065002094658462774462974430570838682635144770134875556913781237866125232766419089465005851187956442748639754639050942900848984887893555897693219242923764872251334615820771817221356066255479329715391815765263327353209061235588300764237949296674716784017458317443468853329208458646673018015110699776370576712499188827687140452874325660916448916050679549190906432330694574189106593359917611608699824456359687951413031655265883520627218890979121165217466360561416396905627713725985932734966160089503786221413572547001852990167430415791363913071123056861744901860720893949890762415390560597632649075176535676396519642711827588407282679405409725326144003295377060912805599783708234052447814067772883117160676818627185585133450471593686559049444376404888623644874058570276274556360815676764724462618973415454555327969001821923777340691415788147942815139015806539427094643242503047156244333192516693172932746198939394715653678136270141804583680162663457158680869813932454232365194899530589905065364174339786927545684796577328738471991811845106213497751122956246677078908699139581155166317575051786275243808122051895100571398413250774654039246626604236018325711885498002896385195502284920772387882349159986319442023381534189051156740056004426345956493111912604162847595193137458346882694921863470443993610048847911967756982503180544251033855706467360792764766446181901742857503494709193772290462381623920520270509128885823343662109351550906160940933698850610933460583704392223929574509655562930737512028039647210948633454251797665233636857073297921535491182697412551574048505892134644873139668623799997010318215702067041344315034345728668191428836505284180489399836021185750678553855744362965122733498491941994249984526560616604595357046910475865101263167567334175568122956394745776681810160303950325870889011642320194994176845858944329581921346048828666184038161132437817496665875323741890305409782050040212680535003779813908961831595353892930821899362389603893221478807350665088315632111300357257305821151747820935841812006576599292244652202852035645657064446072598243928414648888234727363993043047388340790787475603713723408973408745700959961792650780942643533643996755797578260941145864257258386013303815120764379028745687086114283981552568097803029526135705287239638440969654366610660671886938556617647114740326438324122581055435017280452534042252493078086913186804157022974763403530335814295920397184242310330114275354116622913778887295370506131031061704738845891829359510830261676062251511019663376396971651944346887946024066241128668643287555350040134724441638856964914840085243814583446925004662960735834110475142821803119956651564409260834021118078726007953645272874141832289702086288026424641117597191427089692963887286222319999514096059681568347561930088791112135206002429846937912561995236972082104060591960085581949575689410630184298311639236365784798636225482211429082447357789362696340533995770528442966319640562175268602399963015242367795710381724342108092813631728407083199817268183118027178183810835988649378352413802021151029046154595388004615654389361526368882224717673166163874852557561195292114537265435400749157266532351880220569241289805380419659654924421103086517075365991145731952688251430872414382786053474977912060524262943843584166706618867233309656627863668568839620572564482925158140090642889404481860362653762207892236858109765572402119431649811314818873762093505025936269514001520518379455371992459517018519968024204935046139762692015814499995120758360004448217227888594112536942244714762793915396255945651072606867163075337677416311607734005673773421424964729911235216009882497334342756436485752026757714308705122170065631876165471618651558014875191519719531318770368218530530879048816484171629204198729320181376949066677932744732310145560033121441582070440258161368491240075506387019679581212467345351854477558236166463436447889485365212550108002151883885301032229181715045069564573084019849221641633036211517066050429198299038324492741232770505528422828917285173998786652818230389181736430776538768690504870172911434166184943643103737673064108969207703467701323079086549008263464526285346090816209077352405848887635600420215927603502692450421482261636026641886707723443652534494591721766757234709810293860544409540850243127108362904660523272073184041573617951804600378370886771613496360021160587618348282524217474994535368910634984770311388987432087240380151047926768032013901085691243874611035853935947864601783241166014148955859257646624781938836150715575672352351692736763806780739514114366145251934505061175052190711771211795262052862380201008545900004563585291544845697069119258052923943705962414513762952634947829809924907038034387369082328136710480307583268561071317940297711574773867888125504216643953114225624706089905873530849785056484758405877774481996573652482483891141796250984124929681588138681145444438984959063600512914386767855842380394287138039885599975631731332882616539990054270411513398306165396652209143672059464968646319825967483523330757760098531877645812666316821769887104535312275166250123442176609976490479306178534379701822477776725557005536342528699377460365026046601235251788623197137676050259471852982969475341237150769842803438038461008980754468741613968255352846407900623925621351039614168827937746108548257085761302710657284930322098733998455744654526851376564028570003673774303547112087401587794729310809868375873909614078489143767573552752890665909765600108894424479671488248490993023771048762228386458585911185220712177285086718236904787544185852594162992386607994118989740861635125121614214588117841435616099115914611340999166703524666118516919450190011022878419329744654086636756835086452419031057370448359448222636919804441341104251871481121085445382130703219978254008145662498020101141541721454820518789614127545359432967352150800567282432634000157900277469353327613542954410817008267479176375270519878088615682520815391897223758417968259270108442969849487989432653297318522719184518954701396795305961640070851292655018492107141482258856120067367916896365526417146239117701354856506197717533472491577531168084688788789572091262794649483336812233078503441716416835065619922531109468964835384126140348445486180983065710969950552831976374808969540890348491098600585736767275977502816548462633858330150253780605833255485809901388041609485746016296619942646076967310284646496947251254670696632049076561055347068593740714106066594577457494226266013974374823896881659032042576388164220216106028488056080193409563175745190032218760770466369269792884115948157899477844041082660498205826247385785022256626094984511881088845953237966150901545144781883821841320610362190904436815195531533823355784987089085996775891506097537089253183513736197890975250431389673295162719045720597211482840294377464237492741132475183566578736652040575111480340085466033775518426239561955027552159405281911235057430934506742465784643710764957845556078182380800698652162445958746955445040074311043122086042462606297033851927979065640456762521712429479549535069154559171528439119566882369095100021226551918368735640517319004033027892364387753618119624610653925616569542697744640886715321343537127806925453857447829088080568640684081801981172655500544208686507731240916185493402465238320813783822857705973789743998041975949430251968006593483849519297009961614538110780352205755696871417142111962092941234787851540534248720059619399877889440598713596626751166424907142574731475309479216718918915498226635738726772608216424226058650212936616485200280431869451313198170336778256289039429724610419198807757633361403200381062367764364962272849751489343731727591466817349548001347606015425620570630638870441914158171015776015299358256956698537727212173552516112857084597725844365001050200976669759054168476894449493745326571339541766072581437023021245068441772298352496999423295518679586130508368049762545493342713728027662469637163311113839971455546078991961888124914646591375276018326844237549166805234505700866427726987040672419508793997886856786790158792802216138450366533235858718030769315326956228790799310926065005097298005407013647922138683618735507203004230943343134839093234544130561300402722705990304248230556717924262788498442271905141251777380153586736265810853104305308841159329375366607064974689896652589692614111708823912774092976707848561971402815244248316179600206928968778126473336103112280505231117147969093916289695815910652326765014007160369700676948784672551740073165251310923715261333669399763494571726094203863380691951425102414351699665264963463732225600361050283993326920467803297882138186059769620373507838945829964763692913149996300995913546275519221590241861756303629047116496365973104271822468861213069676626466666902725258211936922498877917833859247897724938155843296250970444397841067816344363039423916469671247145828064382160429618853235842556089375966167134674387725844064828040650371315676864464937633155813551372922429220188909041209538883691506188599207414300779558777127856450447618619029010015000958646787035348984403512434037359889439956421645037187912747945221948849750859930346805414974928630628357654800629830379098354761520947543987225468141323290359950893678157332036723334126042200100745940262158432558428733943312879716791280907691039063577325068681469553715583807817289261146938269721407767701801683203287279232906734395758505690356432918292817003653153904530878939926861573723035413690475342682400276573539978636462284124978939911807182175052503337805129236872971992634788775457794988878511084928906493630447367010670076170571865574712082685185433948757280326091255205838172092629799530278016481630678153852498115622287651173909369242355178129008081035111888813303677712658080480457758143017483914013126414727203599703239280052969931592735158828741505589507587686693096144646296349136895601823062393782561354571676857612954325250285148557528086081468864173675900446643731881419137783353626228960508562366649357122010297786355649158503747718367392717203167892028282196274889786340823167790831080842192560927929771274305479104104344472737000115293475116032776551120700052778685606543315731029761885418298710037569552427543416599478073888602065721561997980405224878698763393683534480877476135760910185616212161931811518499272301493287246595077885311772825142865043450318916236902705647327879335270775362749578502516855990410447039684068311375044276913289883095321574767344334192804617919480143238035955358202216485277322058957300414865769515339927957479160880414677158445751704609978734032049150052323176278685099852958612760591017716204715711347274092551682301008184762771298877874305368744871379084651978629061756723579419259786061641076632251003469826632644164119259846615523320992397554250296558654751052152726683888931906859869155459369371869905688405319540376732811418181970514572756533236212590880588657636372103946501479497228839190662304137987592286185729347254992809482576735392145479040026973161935838545537716116795046801560968780968761622221331955055438125168125949175436816093068191249652117039418105352727184868385617628267391342102989189580063633950204964233883281053885900870271009090952142320285643042208990332081113226005196312937188235479024027302795577788587315399399908127870288558723902495093858478378168074686436391888521444431930153787713593809181648817100944612952829909555879202841832630984395980809281233684701474394369622718902463396533309444760676764061580086830923340963215334564112296962378673992293964435193507754475217960277085097830864661620109820581073968392141627549990365269253483734646949823436170665855862594445104657904496379965082968619177761449997989282496998887016073922392059018552586146074869394991586561227087756245265553926583462732874620944774058885040793611292415932447531953901039618735085963814713369289412352523615133087173389305731541842028585698489359848133130353423149559709650262263929931845137022989752730459593986922426471283838930871971037944321597423386283202223653660538662229038174164551894630438553773314021573432342797081157757492776363334426625168612983976371010183114471031773742090000188342781855152799913614353909589176122158350536315000986846497310003899200682171413054424521682931082107990535839763263940543146764396054532573827795743409124827147255732484872511613510448920848010225841947289540119581206364817522512709262651614754350315318553187364412246174996468670221037231738064745608212901006940389817469498383307772691610565233831649305370006450252704150344558006096923498779378123179351861074558846241446715691341990551378256244807383055293924209924736050491823284590008843248596042053539686116537128475952475634862973928975713583760195716832893382492412738954108653551599135639182423883179288085328536007742309374397372566250804684964909104359024420463744630262917497345334876053780673348567969115783375904187238269116245445006136006426974637319521547990349073655851939398534750391605136560049380493027495866164560107936579341020365760880769412618513374077639557372505850464518817171522271658344635713073630409629639518779646923261077690524227996182518328061606722363297265505566065354340962217646948071174307386204617515300796590603643400878244905768284073396777310042375996863232696476936950364177938494792933391700339692482116027931979495818562577538942092881227421930360878503274223515726088101464825712880598248555591138652377977156063813446326044620214403407020202566951604865268920417071106832475578409188670298460863331472462303510304878870372192363474532590724823992308130938644798550079299251973816910032166074896501401146483999287888528109310958675572381190558674557733640449948401049740826637286076408104021510589108371639996425056428454518353573688309751135438955937034420107950882472079223057322425500050740130569816061484365028765937920536527424194908500705551760116006059518902244689931557783142043267040147708790952000035757800826098075525785427070555452245549814176100448626120373587917665193982007315874292379685813899287033915009910248221666760978888676600330464745875791314951121071457648199553687118299176720507657381627431009993818444798184176822245728761205006712334746583432795977371126151573489129330131137978874739498271334341490260557947693304117642321105569479177530546535082052536503639933778565778337274334105281534933451484071806608603452711331460584714847477465613622742168690760954132508089847046040290244268117104263183861786783570395738408658433519271035888557750022686637572215398021929220262155661999135877337357742111744811930416593605864368798988882750700141084861428032095858731613799584281880777432413498562216295860583192857168736761665395925709353640381115058551884599670259176961124207660201680607889991466077954605726522347938324157256513274703674091840032265770219902831550737002147951220171346763375922526401161718209820382657326909297801921470513535208907330379015019189072843480826477679869940777975538795283080340039084108332357272588041416005893916688091574973390338515049632492430208287652140164024434888365072415057054603466518275025001103691987093630348901118159214758375046523797615882592200664318216626537885518922762610050728631039010152534857511438203638655603245192616430243565155670813896647569906119249096931601348966952784116135488166625883978348725860268877891940114546425127640568381571011635753063630450137883175507311932623974522315684588679646803278174816243105178396536070549206607271884808297232057638706629375054039739039491694789851732114123255972514146041815778635028105379969531259375827955622285758884090920608196255402203563059847511840804805492942832065337830221511922370533080558723941645383124635549883462071629548446988353206339673990756298635911718268999277828988900896118898656216405766132182230790448198747334588499964081078100992227956366677396562473908322244669408975495120567418548898577917796250597720886869399105127993955517290624752857704629806484287642687647352540382586106270998761228488478092728351030305891045325581436087843186073747874730445525448864042944235823766770648106284679016603013711352794163491392609910629458818508417241632735341277595725251783268109790670631936573396911070891470149356470636276763313973510590829567602081047911166455520868478149837767973580149277031966959256639311445382843901827019373459053383831095225034356500975747773593693060647056291915184294510968469557573039334134144315002370139441219568296760665878378762004486335813913347417485546164306205235745210273335736880272377553680099684061396879935871181452102464975816537552416963283703451962147524040385499242568884897959836861482196555850279022321515519399683060428739992828371237495292680059590670568955297952810687684749451233739780002717964358160393006244636797073179992021874261422509479518257068189997860813944620454780870929236994339835439523936249345192169068486235799529161637940001337496513932737579934124440469139397511506943138675002581627028246252699054191081564520252126781129173853223585322082403746614078881950604342832128729307602668565229660889851847973147557639888959013158731820875507323380565781687519102366185327360978759439249865208419104655282863311650863621200285277630927485069617453262709824541503959443218487089597002981362692157894058259191476371269728414193157725524876252342682594378022130772674781401706038734081224934498755454238737767629716285531585353492593327217415530022475165148756518745839946046258676627993680357491515572392618865697046454232287943009160365595286479119051725953111369459737626765585095924120091482893670652907380284193378395512742656877624803558277908130281333184174855952239269346906510269933812179626644556095007549322652941843148889476902364443932187770305993566672486045620769543930862316346497289466120364898362531472898375869728215701822642031203600988019490632425320314089916275918654620640150330844039471668930702912207022612213519332257047702893288961432558011774332243409262112049285384760113726288248605541500339340427965216962300802830926188624851350104041206359009266344565876597181366535231237480325723049489374763911199595163418735204572891181206304150585187754378205511169430672657764037213007600625502598269233742756117664181069292934252336091628349713005043776788737862410295343451295094404722359550701001122376203023702088031842519069444177722698782961117069194365012191458914160928397078753860594608764288539339377766989452222262463836948088425503030799664292739312460553512977659685240840753390025576363364171397056787002002972881333540941347379013739496375017537648995776243914687685093595406012774663853394115695667359274063001461330107675049817818581887880605780102928698449911725596130225440276154822293414385893832432966379604987996069571554307787983064267813564966294168748480557325557602859441307680595181838729468398356773942679874215249256119529750895960713185337149620304090166112567843235205568523345219914932322011610880997760301981676668458405490373862895347898149425302438239050900299825064552257223308345686069204266357273988388152584214716164845428000568664285640133388992087371868223703363652339762382490099377917569232814589665265192315619533626231158691999794077819777456307675946215095330412109048109485294823229638433780558835590451343140237047064874374906214593642962128668262677061883809277610998339552743086237678013968672440742699497912671290622261952563897571215635514331365721242846405687053777222649900817333178801154264575159496619170127874940960409195649810550904686876304544385064579159129488331436012491452200659806671659305157810743354724665689148117039332356463371168368052081941411373202720590604831611674053192897723682253424308142728899800939455486411776210017231824076391756245531146291205823894418761911006177023303295439834645243807974878736274975841567150383374337021068031205096619671428750724095597684962927746162873218789847168751137822745106950779565613045449904631054067061590442892374129249552634805785047896299851348467684761990532812198130533027434915465647613927649580727760738285385250476651270966117824935365241470945576084180757517662869647505572476537758589669181839616400880145831591682737866106645717348577286226205486984812956536869751033308934879894690906523423717982881941845092795971918035106693301148550555099312512347542474494751721927514925592446798647501627444674993293973322975395562089291560522047648426323426352291034218006194359168894067184229701196694901849493033442258079968918329961001390454962526380322334054933421724991427402108825655262702148025864635948847470146249416346064275780286758920962967890680830798096813543625501520337759777859419018587583721284209172619551681154121571219036912039991975929264161899142710865574408289015849722415990462160095474132816842123300355011588269230184711479431887061335239236521586411607845212627624639049639990319614814474412818858852710204509428257679938004996685872853744439635943987000110511570834868994957175366719304500149127934152577772349214101946877148782150548110463748508608422756454606173462873845288761000432216485905209384677194607435998587382607923455157984203351767299048885064230799539682691446967297507748881563354959325879100105536095454848628705209823054336634112021678051109859815514052082025190335495923578642863718335451827619688830009730774868561239876732803678404548600245194167089927537273833521743272673407496482888680609632762565000949953580666588028984168186807667823950987949195952596890803694884301012851934473165149528725567990788920191966645809893070580657651759238869562375166951130873133542523556403526221866101392054396437814154211494891482935374097926274397049504325199807884883949058045542994862151963483880064980793385657874862202000096576711269752824553663734851603622081843763388089281197654361620850919740477346768855263699738541975886487850427568912204195443358757223498452393334977255377902553814778430720666995254321654461175992817227486493542860684728728420457391092165822211170148864806427800938694348781974392930443959063662898646131079132046830865504974828579291119419348691727369572663514576257109946186892129304328080230145892552897050227405341407894775503436886572836605317711087249037250282039413390077172745860701537362816307094254203898296289057555779572853668752559238563465615345075778744700521429336694303797067358020604825711697513073629674361064247681371270620524319861406910944520278508823534093232248271117804188291204679548758484038680223012004694332323174416784335939846135572646344071987199887824641844580899850857861837756117383113503256462354610050697883005660034482279295892608105798127024963801830544288985035882422296877256784170428889637382161868649495399075400654261161606219660778014627780758013547329609608147519689795630739863578878434652990442182114619182953257586608170329092726970236370551596172650201559998359516832841798242064160656656384883477264033796949457245348069049223175226907886948256476897105781082409446754143653336152938077236208459288703765729224557975602854013041349362813426154451855456408652760639317033055739001526083285902340750134203003409417888644634667433420122279469557304986721385009589055101734214513926506126048787242864359498074366419776090352735268613145736481600431129612282553735534494949306750080437904587493037631609648908373247767534643546257154197729454638698175878332289192371089901970068434782277941618153778137079546469034731049037601055468255727971112322518876086887299735351941772060224975171708801069983145460521925324297174988725632113454985058735011794875543346411273851676487337784115446864600402465827000676200711589614341491346664795414302437439216470599766098544684548073368162927677163451706937550898496178179224187534243002135789536879036023486675868805637645448133469203759880896171934403397063405269479629051405527050987385731163590524882333449979125156864645955817161280401593702538851671598991762045408957309561162821498545269589700303850103559437967489408128427043791235501396568765244270645687411217416962707143395375640440993985266078803702480616966756769690758023547410294029021986206630583134747498184150205118585833291137416174450403011957510709104935630406512399216486208145571676226540391941817130440996264856446008237830290638863740264101987923463029063887135484483550929421458745850263947721943644651662006615519880384378105976053207307574681537982160258339495060167823485725293810121155146636210119615730431687828132643905248309595570892259767104854523838783941537945448398496299607657219883989821172343934190370122773815000683002005568662761680765526415692018261061420005469058979572155336140929416098574141143412032097565501189156963179784021048841948715599049170675857136601788344333889624903692512428252667293558107002584217782586722728061054849195556842773435798768223344963325065812591619616690853557686914398880403594677559821811930555733794617607375123612444338406991063929868644557608075676541305780232073505427083117581238536946696987428281604047496999167704312967217590991653816026254062481703909867676738935875515391284036911728358000725553465749579434950304103224110703556438977623326978001147985207573640510057277786516557878652289244433279723188440162912468210986303622393923376236529129508274981569868399558112225452137199692142986698732649659772484899035714824402633856753889404564680359364030495067725642962063383909306591498750180888338677593566199328081584602378421606747806084566763054929687984118246791889419248660790994512962027657497851245600977231725993696496815755960556968592470797397191000161139756239850649181213577737955112836923855019804447696443987019816016435300862805531609793285113125160077316153443533670341146441883240282168983077091733123149359001800795935798778105852593834912447018851878271992400746657058909374498084369116315864872233529081120260377128693814474992533875931494970055174437437286936635962936466727653116848129507211564404695087602396557118517948184932277935296237619459715169230709274431437840616628896091709866324419843247998641244917991050424429275117660075579339070938853169202224919232263074189508635017223134293742955811270315350197052368302623472434132673188260028421915091280710148999783375852285866193498097426430601892494224412736154158717924470907283297435640285923705763895930111399555766701787583260985585959204126853626463340034984255543946092133117479422850708550781504938664565087398350535134467996113715366228807642979701432707323226726645645275367626944156317615502876070940741580337809283908485948284436353393804793615098217552362833658806767896673821491549710589823228385922176602797945665143573180682601721286568212072312697800821162749068575051181994703995081870210130053782617458538077537012899207827002896515677023844718272580781863042524028766664014211179754587704915860320402653909356338877565091993078998521510874930357325460684981260956166588948355698873598670808407945767860188882696880081102975650333000872011657315183977978502084183633095364602655638587886020133307969385869902304338126627969704373931891147974632188048685538922240041678899841744901435396069090968633865398457742207585281106970831898331575573926541246751028105532500136134015717281492717016701898156115971744168302994412204493008894958611493088968093466683945985395665206499896916242415054363193289084434179245266804351413453366800041810994965973842879667405615543534747894188748442658544111632937122650777699200823843765868161629445440629594111805529161212441347576095182067873291970892188332226261920968041095482857151446291274694948036771098608473232895898115263667131097318900025851111581449919495676989134608706065231187794779038135517702699684315187607604544408835630812317468052491410092376644856384582598180592587445907899155708195749674763937988626310050937060085756099864548977522747227973369635935525779646797119394983282194715237629751912676760382318459564692820165595704585026085586217720258588859641083304538567289266202620812461906123606937473089353656499468653955506827839369799791217092820663849926980490138417839633285285916813893646890216520541598315176265250554664304547268187665984243809675954447814212234929711377888394558551050567671887721516401472458167991395822124459252080561690581751858637197120995546600418541174307939801094893189280553647891166839842018905929614074767460187137731419033951176140378428581529345777876778988936623675702358229803022030178635538073140828813215072102256904958663213808343171159359381116851928403193653053971686576771284655513817179614377295029586954678877947251328851325691604824652669377965574318430514672615869176250389946873359542734852950414033101299669930530276904185213992580155229282101521944171448151825554270564152258991319274239421693419646804780319747209602193832026759310911009934594895179076145197860785937757235471957562577712168876719417696148160529932334962836852872022865712034168603726876345849869732732282325325672362367994845626976761962408660639934631086256976723000535492194356952188878410624024618835772246249851436596356296991151492544394480757221226164150240121289271176200459136611872167666586504986322383068634089336203487894805726680842626541537426567396157817999385549809706419880140703218724280594708066618032119423463586291869265461118327852510184812674084034663927390638001318363590397765943085133117958482274778016484864683452159241645523009345852353546352746716528879421939914245417223649590318857268679154316320166257097156671630272912656266470770549224457093643378741220462255145509297504435150239870701493813603787583394074793718451196964522028024974785368054792133434936392674211884190438244228361643113694889912386432609605419929580299684445108519162639434559182969991610056118271761043620111699351014489820284016194748135755209171478767612671332482920938529381198452285328172163679949707308017624488780635888511107112427929315228674380939569707863611384801842159380403953163271983036708901604752236275383402316362291934258874394981571806197967204610415947974853155825314792163285871626783197508594713056341256071991614429242987786101282178694956395051596840825223771286585862832996362783209505355271352141398941285429476284991808466986155068907112823436168189922844423907954160221525294708244777555243385509737229036973786340631029574409084836639638521439070820346923792250522906756970677909151459037938358750947703624290085760877835812934844170083956143322645266215328637650480126073715405933611007332987969568792160391467189260764106474709593957314927020536693061988493949430902690958640599835436252328619562553596452008755556393113746283713446819602217806015868254609743944940678467955641465202504792873847778132568340626753906314560873114319781211680260161177350448589092843302564932357856795899165352984798310572766209006405610152354462678879853520729377743668443097238007131259903043236894155650654674143972527080068983009489932390483404639761584436770519473031639019428111316583617955635670866772130237914381227272383062839867064293335377058941552301609404620476137847726112016329823192895391541399824241927779759712714020762368238199108688118305177275577738173087820978883177559138699841590002858549786880014199992278531612443437814816604850651114137834782097585267532239553473638770177057455566042802474469602231784643484920679886841072204556345389459269815035673007740342397627524599780275613012598927275192243923346721575565640138630768189977647354839757782958482797933464454228617593137726858475423432944763428100332013277857006066936620946480174822233846647961979719807984980208780097640372999107747687481418847660680323346380327015839898863662023056648559649673266615860952625488211701120821768390156883593816454415825912141164694027622868492507851754706084407841111074831011531347071892228034756014010406096902210750743025717748497785833359990520182463432118610893305742959420282643639609893978177146660597153912563405603651866544936087086649687179136224071554774358876499375804588842009000482726635376362521620172918188930996024921961635713209190403063019875158873137186761523279205649692115142665473357141294517112212117789415619012494277307165855476930115690354167137160910385385968095372394480198003717683903225555379065137448002163826650869837483627743768240981971826978877380211759072825893908361435319496231926579850625723905307746205614029519946039820512802522697301566340405185361728137213542679750104095854445842675730914040932735509362574729298413693583622112043792089051151094091348082877722166752997421299483491398008593285050885878263038425781027667480825754950055375572577625793399814118160521579884665744327049407515124099587347909162735669898789179258007790388061620154391549425766993264690318455290502577946312923585504071881255899505003935657084217939346499387197590544222008219750749007047062993457996552496363192157882984520064896190539120534499728172427659885041407748724397612380413669664544124858065433276151622943351397283806136066648679620679902942973704496314729068063911776774984293777308318671739293433335105900023820691600273610779130485519742776703688050257849903777715295987172646882256136485126728074508553039824500391609142768882553616803439134240354945143265202738425098199131219379220906048920927731591949748706197815620726022785606781707452053166141568061236141962771719149873943310327275600052794218484522812201300732781508646028363612851127408211388444244224476345922131070929728027317101585127732046887233982191860601097612193486514072143651418965178253922971309933869182599355575909293150377443840399103045197214628678769618117419138403878822914854225685958401747767278528134782703996668275846771093568504039863240878030033503875589565402822985047572288773760848515573840316774460678451334004354054066951853066308246771354999383932770525880272946723333955323809736181632528225999744517296808816406624046038879764112811113144369792749171301159326247134176342149541575769268178541048305535412345185706567473622403441385384627972010686787856751433850233525992569093338617829474804298969153210071470885875363588227004626838689671043927675968457996323547282744852633681877709597676169540114210143619476709649550604952837816202809593226193067508540696338423792031831236733869227916417335273468206523047450775007880090546121955845351347209182137437726337472809967507091564620497943108927977115505669638032405879409329173897651295754744456394733737036748758761638451811865178679005961093096162763706543073994829134541717796750478289782099094167992317189717924974349870855454842585494705171177475393950479068547490611115966894403798547223950946928850277815644488114569129873671019751441432669359145993647716080352665092273005078211140671025056783683979978012733013820592609850626677092894265603199045004705236381245986008214264301005869598212264996405988216028578914181340452123608122558228835960225749443359509301908849069635753194143339262884903149638134410944588765628419728323869400365587311927884226013730737881143624920297177215427776739804585150354696693959321944783646239882447319540281122152135104856999512525380156378045596318008969309193446622972724343373692247858065902560178816153959465416764562990534807903417254531587180075188591554795837312673027695205607058390095722477765926043288075254672064011149549083418581759619847907221920043990112389357795040440239777768213234207220739988711194848423253369696438321057306371353090720442451836977037954444891614111908889268845049689021593804683630364356897459090174861760302991374030083822408340552799874035845250529825753000124236434979751937968177067832313944969448835435035677307252877263922979333893521699617333364142012987734065383921451867524574474658798380151584732433747331161334237792299023481094390826617312724002670845823661917250899638386660192108651727617400693638473457900256194887369084258022669758410529113427299189043815562933024717222004485502690515854081509465515721587264120678648245457356916243634859155329467308720850084827965838546851964888182608508930767144183992466792509257294858255234128003229590706878041109371855700543605175786794470372106247082724584245461343584874135670707004851317989757193922523451215609430770041333442027154210301211780212221756944059604479324647667111707770688024961843550485456973948126331453383779890719893486616704782678144977399392337747805618990404279079072741481452326240716115419535069695346711833877654729955776488845584307344808484843329306143793932029997729603154798422991324257541654098682854017869316033598242073430350043307810081207940146595332833367201203349843402558568445473028853200333128493974479496475986610117103509746227566582507257713672696033082965091075974801603332213846920863524565421093796540828402714985312045398401346608771774030219072848254307289111489169262605302410611736274844617614467146238231046795561220083538209448109883169307715651351505406184939779174762988287491949846678943496306584984085810946516468126684992799751594678293929878681556377614115485308024230301895396460129468775355097106100800951665834633518223906745102543245639791526801582255862309741259440690490071156949562846004513729144910902467364309018198194415702504057651323569386290647129490596573152331382886958565919304633252508202821697574847834933766155602286700525056463792591017705629395176209019213669506020080943316922058829556501986626897538470391149399396692142669550387779949514913282199295803251117703928367740300742047417082648854779674437597526488164207318808080653021192792835417688392412018754806133816723112819196710375136267980990349756736141266980789631432994736204772455488147555364108950777411131668516972726135841996631992946251222040579821842319837829659700857470906444814169296846573399286661391893595501670360697901532342776671017640968609560000665976172362356014751013970892442906485515754561839649993876220087097624853921590194518253687412723345442845263787093965479671385641668645076667364378016092078949590354430180010772871863694908630653497479656370190037524613287976545415828382190875558718634929227028680600581480423734684902438794110643182017956891140518799754870010284976843733017026097422745730324584747751443072180986996179197153741271310390655306280357809240164861009334450601058257273343821502739384246456239679050428261035919429692618979684792275703385967831941405661308660869439566923411267284561438251285813647789051923736052130751990310778065209482198558448284609638108997332609844676133826434621205493205096506700300126628260837121237445172214719462480618169617112940951085601002046438188067109504543083791706138586086460214477214485397328571666094816523179367150365470656669277038597301979468202182629536559338481299547265017264520593230041928562157504239317493254265001814684965853311003740754521927588518472687481986986976838337487727936760226342939280592367843957992893357500668226824694177585091327329978869750578804797813080360103498666919650814661358944427981889126381782246637249133328141292146252681081146781203341132934690075815813769043832151746435970858321089285308677316636104095141781343744825635577814402611385764949200645401873427170917673822870270580515948221286729500742015679128807611620634866210561537771817551853223021883253341981591840277049429230363291022242232229276024395710113033666510501743027152782995566821496663074573596544298317670355494633564849324702273074921979970823724579883890520023115950809188528929938175511464446540212710219129237507062333805289716514451450135612372314868677224470608016086005084701321878199206115817472674017393432889217874460690340767102933957398433915175298194342681988205456472913142955790816612160667453212180653290113456895419342467174765480556095613257770007794162371129948679257523307858715652356893590891129711456273787010552952335117143578741319300761778270117698951081474941726565356575609896888164002202448322885453461514573564927572069475121264680077809942099890593876738879337786539188817157685434195060125655616158411545289295216040204881790147857954050244736705057725098621313129588157957810024179775819948219137139178238211098052000891448513704639403254128683369356636721884859771776006674082080909692403369643770063822498246353189700135511336913786096547871286407033756122494671395325158967262568079085249200912467178450258262511019233900068543454693397812266843110939943375280492208458708320778253202694134881836941568475044732807403791360409959740165961481533023488216330859666375659913859569634199081726881779546037146856286560140432872109676271062664067444008680036072173553048745211351260667975250389122751749602586765057132958490255074402656989120170477626364532377750566197396178296801156606672876506490902378994099569337220885880969502149085136494690945194348733049428670692032289270774881587473441697365877678058098899430482407482831165724985296043069948193095711687571481588617377855585585748151845417056495376151381014120130505811157446486559680187126508556412953608412919154703715684083916672588980967869474127024409326301987193153825218142343309482610933380962952806724049168058307257422642133138850581971491533291548879227007825593159413467561738330044239748687023103766515975609096829931718614852582390767579516636303610329006152849188684687277106263849709876168915779337670187128412677858295231529217070143270926602535309940582113685948511336712432293864060627517643266916866220915372583375151516195705574273755520908753024279004764076564763927903378179672621251915079585043771707198855481564658474749388861295085645565787188676804214510161793322131870031153896835083830952744256659885196376977010373312324895770092400517646217133682575209366667132075480742118742453487241288426360180164422431402717934883634340218143402883491929578552335987060280788700997322911627322030490548181199970980688522490189700930080087321552849278115044590483211886550248984489813975549870599795826130234567165968143610988694044505125256375868344142452803917406248620345831651119778078454991630339108244452265493050195634188755378100001220599613650951231068597111603649531420745399402025414742920483976792863902383837557122900036051063102568547506336171936613809426969821338884672338100206960650127848575099220911476567067741897989559239237325164245417344370246050532624918429390983295272080737333483550286565691191445712311649180628731315245547380759023125244275812500081287208228184554654311402637642611044782563074778212635222379248952694999302972116186594767234925191461382035972922432666939683506399807283215800606673979207737819135736939460752923251087992800539272890872073873385546062237071467339890440639117165956894062747807210032172300005496801572749590082374427874495162849198447808443600412565013795652319336561935208649104966330310124678562993275590079054692111052282025042349242551937208009991014798179686635536742903694538507260548353420132448446126856910348770996590822679734118536852189288628769343428551504561394130478359669412368739655331705915795411866118045127502536339377418108736812106180973526204855141822668295183762435291738459460927693345142557065170476232664013522522257392684732099183942165459714464765317463769442325891972889592130382438788793769834788061473618962959292374728196430790789827764739249962580310464178081192190630572187894864767574533906375063502357479588020219424500153983934355507088364837331617797978799633981242830223264027878509410748700547874392511382326207673220200659892312967012329800185837672734504563599914832851403480926116925132107617674951547574257783759732654958983157957438837394026652720356741539512832188412623543598309643549006154382380913978688647507442900566006092746894867127202728423945983651750455949274748271584863423732591511912703472712379941624260809482062166776892830082471031346272679570444793970986775111948369134796185920166388701611088255681235551673698946828790953102632843280318990352686552087610161521845014837135222011452070863764238951795691517179725380419482525586079430090490190037144811162245616465042771793660999622980864868104311789520720925884610336478603640491553785675124793856446234955434987237309092258131562117205665661425854099962882575081205643489219650580582571627373746440947294366678326481447489715359677735592273613522188583834682594696659489432188106290418589625153539638961771271870354444180586096006847918435981437865151817313566326819328673890069791542239146788873703785480852700625262228904047735500757456992152678919931631296111150793228125428024858253370379651668598021417859849356251673520160460358090740667941375940946508692945102206681858721088615557173814443585016675065643416247699870735350966019259293482179345634415191133761550449498168038586612733753887541990229661016043336631878610319594058114366923394895203621175542546665827593396269210592579691767579869843784367348210782186308935840301797773955611320507595060648331385761359038985853980703924783617269957312431614684380858907078142801023635111410158056633472148608751957228039526825834738539422188807554225915752443686929159993661468348075540503443086493690075195849599723744130693966021858861495128693890770692320358460015007300584124505694632861573307522138645972394265437271310973187087220063293861604644261376636108420436744588014097029918331740034397114393908172038167298916663440782815122056482775805470361762310021160403091137782295911214057129708125426448905044944582327676058439201770596800116096177755236879334393970949472673423469627093547689268836407225482392351235028171660343707373734684065403321118518060464563008816829593148774576462767838314543927690434113251384416350875322205056540281552685470651282649257960179006292193638088498638024808634609407196569536272328786249225615037677006946137270487090607199399969939779124542630320837548669117683207271760207856373269226914594144087846612442759801310437935079706995676132194191540848855459956230570105672219516997943674417494972059421537332709346296008299379070507801978484674674961965852831444776826360866261683855406383781527636459892430414989812172177511976963945232151721613532620862176838307294487779310047927311127799982789494905163547491390479834036163818104382778802547110659660429855312568753765583365241566856019074090463376890987335613856252932349878480245712789656239301085277486272544408327327160547147396882605122604536717275040289312594578298862482880577812431001158323260991330350735064622508070507621371042379965401337279266745505643580103751952291103528450875955348020223695770760803598091085052186833025083360341014843768708429988166313705352384263213938601887059857707378434452837764822970861989925621856852265100286017323826420437066121070535201278298521864945726130968702813553033109550212670610429850568726366159225833444513605671752825253572631425279320658046012526517616661664548175592623852919766891116035803401286930716001962278929927986875860008975395832985488658150787104533211651977221563117646027776778536658875126283875324246752545553232730146658061696737142956536422471382234553127098379509263348550575683740335563743091412362136977569217965830564693750751003426088864692330412414659851352496414437661740314846234439670771727999222902660956777644658951111516092899505226144368103745706855502623244928388918884801411349480381754299470679901520125618457009054409921205385110023971447709789911608912780835773746750740607082287402743152454806842272383592308929532797091492599345040454630171524572777061081197601848171477806676655134734539756344318460372030354350077838296912959038685528631868272209419327945725120377890150035133856687147359123141944652597496040657096431983540811337890791242116196919919210608805203531691134282847283953164926874455526323316903012475303121627957358718789756851398296767114695718924556912374529860279479183415425906002939880616419095290429074966064655648955335515292197978093207734335989246882001534977151850423524170352944343017837207273947268671426109867953804443886496168623864472638262193816233067124174901956886446033456782469075772720408628234038131908546964456404936951367856472806422012319031468108520211876470984917937007444515568350714648710282573420627825441713942512816703426107207535807053243881326580720024819804844774648126983947936094056614259599046937553234739248190992081069439106887706478345007578887789551086567507673946021569822605128847943311205835866512222683858759368016169879466469022640766499817046236009385332086240863796491589985382840156225716652118997447850048333076764455602839448396017435816649053128774881174982618240201063194446232682213900616945419056502472323950182339995643248809018257082486288134380613827927386295560198129727317973500828656588975861432697441618980643479134394795614103059291001531291170464995702906123179450873435851654642741140655719702837704269338473403210087672397574493925586422501967880263428045189843955061346387724850213899836125311337067099647211660643686196106705174457345061599664374822818482529919226074004159428581135343280669534576435444025787288411849413997480408053196057421631102048583278495799856271549208477705141127162036633385403602406928370134558204187653362323993358754656019705963393826592488512439526949696357023202400529822901809515400621920761463216045051739538905362068006290582230129203757584085431349062554074303577131505547783011744477222935935357026632957330511871207456298936633929904869916305066037419464277546228541196057150286748998111944885473250324718665865939394087674206230168253747069918297690951389665523888447338808265489674408623541807535916802206244450313215418575773291026224427573822516701047606038870883814126851143296880445340200676551539858741114721282534515593819170158377512852484375750811968239186188522845153351249493456059416008376283549268724071430371387439020467343482671850381109718188421725044222763029084747132778442898781528811025261405935792389641745360258942040199280884515542487277161137767682586911126491866453931312236767249434790096526697180503509563327387935739099568488258429969922654249002639749478045527051698025980378608072662486450750154967094571768818276994954897145287541801088542011347857519859756887134082728017937593750151436808609315053803312457076995813310069948917814308351635833540689366650789976813183120673217941081126626780089860231715812658422510307435698307971800733180998196121924333547688974735821487094958382899387843255346978702553300671719660198371804940282990677578901274481313540973085258316952843583681594196503126410474710766194273965578569837430999292775746062241454555689808567914036869018763498171332832623398106875301223857153959411328734676973371496712673501866988954498419438123355700038110360515874145845128795708214497867184827774997295791591245649612301878039051369681696624229967213717475264791577955556665422729801439476657964610880992236793001392253826215671116077728646824038490103571100752422837334865262573239385596528752807300453842807802751951486638936678706609013659236959339436129948237219029893474647185753658936712679234164540048231024412991209132458867445946027150847148352569134321673855507794287646904990941141267136594598833935217817311561143893092403238615847020439753318252293167435053681761967820247038651413699827720649452812930776565752638020277188421748398780236601415720784308370695299806740116281090474071264960646501098141111269242951767208358877988081906565279909841925693464844094167728040945771734243225329844318937728100874058040976155797443787989769699323199642974072986372544364304044525572756666976522407565423577137568130723347119028297980956290028794475257799054232110135791004673437602041914617435517121636201819444285743500577263683363375763250618785677041799063658887081759046784262066830315518861358091280175935441531718077134298996087196017652302494948336221111628019229490772488033330129662328778177383184504139881747583871643043639360820484863996788187286132671800978002074487984624126561244166299588910001078088925320126700949826661760142213749645211777679128988622460363193624587615809532373912949410444047039917399439982731870999472573954550708493006400900491987975854167556900628129791168086036178201038008183673755997021387089282549858814019950308963321295324060765405551941961175407167230802278802142082124604777876087717138981526750733981871362777929513647804356264181815814819579493105873156842395052270896834333775211488898464584787321665795246269600082827285344744355752602665405557942592151563531962878137808732193325354389495408216273283829832246430132450285488344622560996779614170033856377986390199997025128968315097557127536763700736006013558656967637589979418157165868578008616059348927110094816197186327104993757375049545320940069932940570745098420356848013361173520945655765173253200064653528056188721901067657909924265880749956702996992781090907295202440760164594042295953097405234423976046523849914256660071754693404089834032480490331807317312590701220131913048073075682159202557436258900136813669400688556610414050329249263097786164666687039583373476501536834736699421670908441555933727356510807836813021740630664970222597618091877056849259268235216150488154510582519835081920559830566752544167952550500703441669229769329291586416154442542644649480504338827748095959146094866546337018984837138952356615583983252460495868367101564284470554992203340633572056687471597357920644367845284068272356669600226771933067236470973766248304319904094714032556747809774923896886858492124982617703611858864926654241332323598804221932405963250679156199586172640221731575293207657548023687882775288501630258084255027020268298100272905026018317498665190928445950835191297430750995708397171579454568507443538796131074314009076742105042455323211601809361797783084057399981229389656153495165510375055440836707617729088307516674286851703360062577177081323816490068334289183846284812471738984599809953703064524745034825163864551767549978961716590120970980050791285709158605554854552891756041539406753767050115200887363155833261820565585208163469355862290868600532102795621986974630730805268674362319942689041655824591047171748561405068846766245431345667663277377299116738962294466656052994932236057521913155280506015414827729560869533143134792287986471158049490674254731580961598250039359017517524438124999275139102471600903548222746487744575633605950617507782783227882720419601799710993539432606993851139107751426826758350498959617016301410896626922038056704541963776821301541896033471541127892766773333626549399378456633584887897303315190599611844241704792224365557853805736526924869518119320718072107982095164013272979645126005934176818231544274602461208298425045018758629502525335562990129890739070124581921157089073788975067576816676360330657503424375326603446142352070571616595859700057526950666898157721431903869677905893017892892621552291914201749427840175867641234740022035857373704952304073653385783563382706911722415858948357085679624567632943179961603788198321400281596091516590979713573908062177688685244486282230569416487516384575234763501997361600209355394834778029907230066120238877403481833649328788845356345985970812599020074102777460188032857879955455607389540167377158304046056236505561755070138637572971903706922941976965705294377463675672158695591015339142030709731360231742395992133252675679343587914713674279818309195829494926300204957059196269456885942215037586123422037416253894846884145904666222106605135845801112254381802959549038783882409804169497153888982004367320650794452768192156545727251423840519848974178636944458434550343613595896666737543455257512108237969089439617419023186515324947357165886920662724356209753078132613615017590828927245282596243799696340939826429366470654504079314144723997631930324042811412371215602226467453653014601374029683391689998935422226376570478885388428642115272967396632558534127601844926429825790796160545195961942389167211463059616900758241686072835596275680968807479309036153603097417059241194175030590625747388587531934477523030215924788866643138446488810507088027933348723561306619538141570257584104415021912299084795266173623576395127850186758540510890508169686276701964150915752620577942129650062881832676659086296944963723557488200402981919298263242523062664343930124666254863237550094151775247546957893219587104019574355474128748150346405290443696774957149075613668095849405585972832565036275148580972376670105386077542613760277379235468978148138081559753123846517748150418321479733509447740921391955545433273852978249837031880219786108642229302652479937257201457746989368473651646386173109247007690883656539532760411996260613246601899949072685052401812325947455983112347325195008908904341922590715039095565658363837787643578695977282150885205830489332052554193866101217079337858835540365553437142879429448405880849939781209297036901610610135669157386333277141239610008734425607354570921883654550276215146263990855311477838182276816120497978258018886917648995691477465446254115705200670760496254537245820612854909345261775600426030637806719989924213888510760176629981219654428539107392549303426273572629639455826245621820144409227586266514840228715641776668698456697530534429797759655155216467281024244476611069720603244680122313835422275019553842290890564285695638302959514215666253310664000214847757747890193706414480039359225415092300745063053877204925017785254130394255699427827854589884585836448108990087939374144562760272329670821260740827074147003476208746567253326793035914437021315410755308445351746973745219321286307161298817217319038502781939117196389028350088836709603181014551829641022910701458536456686543138000417643491331610464103673937259467778927269310624393293849789133800321063507727891194574978840674874842421975573166461023763118854050193043319905030587398278963479691559028406471350103406291631608885232524730439746478198518804479046878462058502188197950589354684602122179579556853865523592526539978530434073067077241597039605657385228788512289936369686121027356471464435497946737407352236606341417689450947317665172477191502538456958810720850906397107126832206420801201431742777803642902498177455475151867923128033872458345103757678730675002719985123912330127859977897985067697051331607269707728547213923844196399506359823793860374717707938144622802244742810613731075567501791847141674240274507456002236793023175611658025526973831693359444232698364256681366802294988713682284221972665114351736856033820140985477081742721353943349817312311551545007464475851470809130727069918291743681223334719368815070929666576281899704062883356416940012599991810418570483366154907907130996786481751812362894640384042452378310963883514808169335694863158954519470090174679692014434808610419317169903108619080343364638724925062298244385727964521815722873539024233832611114647818737442439046876627622458470000930141253297069513205935475125937753682541574242514017269077076053441126287259695743716616441017971252875027125582014776368139117341615764238530941733523615417919371973429971747313269489072874760145432531834350203661709066437885454145651314653961783815660383827965862893793534331687911692804951635223981279398255233029754883047802702121530283050451380016825576451687477816940149382404301704304068725306269575850320763796281339161592965801350085197351397524943292641305608234575584379567596532483752089933325258892082643105966953878210132922822853259858100042017293173751946556874955908431163104929745066869489778947331279897449741774790603638228730310764462116349774013795099370776545508766885287869470729925358547518453739049037139503926301272003097730216656534289567249739253871273712027979680864527170902637794309524989272395256734456122230409060346221828124871239847390756658907793382600638310408802415893413075095523760966901834508609063245117081855917968093614930820865044512182428642044306966908403072938970368410576963080082435719703929874029703449502448626260489206051869165515988224105844408210553564929339003076181851559085459867444411708288584692642019171493473957502225904228920641566909722270514610028579823650953444109575420353333754790525693760328752680903597576546419693651086234118377382703683535881898685629717827618565380962287850334804310028842707960113638527011056064611615366751520594360296876734966458231042986483790526393780957033898421182021864496721271303554203948043269495505158252716852323253280825095766950028559285457011651373142982201721999139529851803735102326894450396463734846107474555855714616506713383667571089583242731138909323844160196841218932546031420774766215750839525946875424591568689149167650445128798029047371558795233454637697244050154262951287760731908241129278793120246930956409042532475574450605096153388248120622351229389735399755431339437110992369031129629721950128413140981064093471541155139406834517104948294330997213870661999741523215708236659504055398381808019263449848756632739842392562492949748341271012566782090048910455378984432548241854833702002655100087404929335295791224453064542195994629008644637916319307329716893535157959688320254955452707193681436722474324476071875967092417472231887540742523610330108104782988863980082317669232125733429491069516271983704657144973631444891105893235390037873327600897852782631775417802473971271956518125743955929727138162126991897187051977901856866732591176195689999139506165141501524428918683368533539039098327674051742366171787800827267186817270564015311424001266568135911465990671008313639623510236424796284646041759348646749332502155514813413164758377220893684062816740696287561811244752955601749746420695130648788903201754696459913098421439106387311423175050557917504967492513909144146293457705809075243994319396217485223735649368308945794521684585975605809395081518750922391753957927007421130882307403930776579833301267666158010167929205450209483135241754357268624311366289933884064429956043233425730308122354513975082380429284841969280108761161668908053523616192933209195884107892025641190760962682709540840240689096216341190709731999226197055162028584588026334019614609084842103501567328603450453655960140989702917434085190638418215534501302029797571768187471544564479980166629601513574122635031123188974694676230874545639011350293197087686125595041425542034448706367322770159603665020766390472830499363445180313516788515791618310208306188952140095302995990130994684320681285683161981274654820236227051260152375807019432492805015037747023018459728928347728435029708710769750594126774702978619528160167630097295698259719440266234613919550320727793202265642656759259784593131879183623909560582380490168607859277077420906736073248182295029284500086146437510169616240281169156930489563153871182012519378150842034909968965393786814257566964101316645918029231024055132823543540046548531961235497668437547911977343993970937017660298549329910169475765435876502110896024431736891691367899723516536561812671835518878238021410637203379520064708376796690512163202302053440080503714612797933042676530928507137921673037910072366422518493708841961312563661801037400852415959896032908895324227369439342556641584932784003700411173884879332360949685198346598854785968253549753143479834245068339708832674053045308651181205047476283958707529490863766884561154487011427812268807865172609135620792218246175889154189787676587486515076207350793625388216531587511606111795074901423495336372729434437342844356261758433925724708239977698025322332152062504475019036267642598769673189442672189772846772646945856025663717131455816469839914903035054874760944735099450828380000351519787309660300568051302294714666881394107174573764836938623331760103069486128591495180240834990144424903055716312116866498389550189045691763437006130825002767767599933502688503689329859243817624492265736871374600547832054959442605264490989184177312529301250239638960522136957119952268229684970067304810569018628725885945808069356167613425385655309295495993114493133515587315808916664022105588148253068461528389120714343262420252913008952952804351052361490595034527106849965526494246896603057678444767370402286433127594336455405062626561915998810001789868914213996237112698807037727508970956890207799149894800054181424431319788150429618979821567730444653242460404575266254945400013265940569402484544779570106510819214162162772744865227936516983479726394230034570323788794574006420048986435001063758748941232625996926056287391902474079173357525231715821628024409435076981035052393211555789756386813878841465325319136706532373515216638644423229565595022480825582173144961892751371494367617907813088152874075645686165395543112196219530153349827241448608558308867020037941031146803006093137582340561372211523314609073532575713864966433660662733571406616448494247698801845593390250242394852820437824559059278676339005195592094474110074827214707891893485951982315434014305828021482640968059124986611024215468757782419699427047283612317833157080023963989991097364686966631013448819403320941545867962683774241281879621286254679149070083801077301945648059958903981236383343694297171756740410458386582173305697346991048644980724654537577914997197698124837112017950786282187467257671453382178851495757003973938649176695430391656474203337540005061779718901209253032487520434875940304502369804319254504589277028003074759741824270882381729360165626777238705534214254508879684610257314685649553356997105636861080200494992466187869479533673697957650197238980988053738522889897914899141918839710206910460056847941775640575703174111321325616056284190969621433823806684832713604874260370826296743499223966274822619982723249051900884456413980732726168308694370492638184949120559046386468365466160391194345314262106827101140317506822082779839547675867526669847165246855286177463913711650157058242549593792245463029027540830329394970040849702594257269616646557484073427953027278275695294819268601359377557762473501942230843148353032139668730947949951966001398051737749995277997686895727408683155027170784820900293720658843817083700256360296409060304577534549989569344109651761191638936423556325342569712594375086907906152239422850695997870811627422886475363443684369912659336187888077226093993594325466371426078730616478771487574790658486625102519723283301429672693541817345512407719470247553687880472918853973575144418256637174064099595732979653225472066925627360289899997251155800212405286436572471659700395711130177859489580545962954051051342350162978844404405787222872028005616924788205387307264546566119281901347795095867257786992787271249375128443108714584782988626153405802011301477972032085766342915066683925957858177221449955965609186732564308306883005362393439589234966815665566677850409052866899584295206706520210582557854524408701682358822439398680891650665570858826438462520141754385605090270045927437444491564088175654444256412607408037043805121593847316987844732530922645526103849103239765860966396812208228064714734768965276079004313740980264296502181881952081692736267421867552474770815116158722086045834292415615662335589886950330334103838803599203085873418611174309243728533150829270801622463630684728159153691748008289760607420483092821380355068075809224160406206324585457790377690942506569261655345059346685831238092886720775997117155009615631369191153924838227780359180447637166379646189913749987928240040159322139555318808957550061207048071360034223552821734691641655789150285084957478442817167529416361282009959466264011353194532209781484349706525486566728837470661258982727480532609668011900474837219225776022177125716619332597516915205560143937122632449790904746000481331449692174812847663108976387453764681425546810248923874583143055873651377852293017670126587135399972659372851107930394510972745561653340202382212101771130634266916455496463241192521873091874096640846799985942173765968792980043694988143843494421615347477803307994035901382821569813852829956340428883344286699759180614216847211091476768787131146165831994003952684364223886782418029441801440666968005902709623480041778608148976317746734785802505341445270463977490011986624051500519646656900802209042470647757202778118165060688037638334550832639611537515804532895469129435964305483820223415104982950328591711876166312038848828976040817592029393104031769158280700356704898455774194482151179771620189006368728292732391233511815462829526750763651752111860257536938254259922356686091364089503695043237900183533431649470480597722704925403057116327915432598530260695307830022141935119733377763091462826255752978892136283226859754243048512692065119249786555337346757856509905056666807608639412252864083916527126744858679088315235831322611929541428604342767350552115969459432488140353887173877809723397303552737080626865942731078322081987864894417974479127633512235683336721700161399817143722480406776648046666012186406294224546085301372623456110245543562975307947777364717063035626285492519134996113513518988797290123356345625597758299645474274582877219027301358078679443866589453375160627833307209771549243043940855483640271862659558236147552255527856146194784838376765342037778177228996854903877048617527242011064978228087303624506708792737337481689553307361628407078089985379831052132143282965184505182875035037179419855436295125348991430270319761759064685302186660343193260354798570877907420978957865632278386893166162770499837247058512582913886023604375366834746595362624536947269617820160823879546384580479659683447621139785166967872012646804612886506952520179787960142545986934270623041058228638998553568316255675840683953934246223031602149471165229039021336023275422577044643442097875310913980885495797223027157354655002983173337817110942309149794314812470186268871255170621400506660024483684011274454385282784625599350350456772427649021436571363157165397448537259955128176089050874230137938704456551932171386998371197753253457741922961799999395668083824302618664245388270018361089465513841448779488063571723842709950664783942001430161288405333787908890562728769359194022229911048651689801013798278532413144122137901105502645102247391516894605567338099841983947112806679097902498635066337157974536820322376620607699266416714122490869094788339229306032616867120945146208504021065854031510355424921693490921259612520984719404212630642517631409021696570646861307400757893334275930034076800534336714635964496152989804659381431598761128611327195153338707224802594089380933839668422666665921487105320583471972557332408835040660123783004039338006604072665620176393348008072715647008955279892337887863107045435995946718126764341818881080352863731964831085493864805826840921402787892291340066269401387427488027970344592293989904934152643436658131146307456825869396114718342133249879173636551289882602581890986929862386499064988431342660016405390625521375363489507120657819236005439042298075406855881125499168613512109748457256250327684831407958796981123838942267104900983829757174722960459780761227910205983831655699899104066441879761887501054205357466354557854414223212715751158500135755524794894886535576411331529277992878166472065994255525479163674279162448683524823025733292870922790763454121369680861021950032066224063711749592764703387240068514970488885988358288478168457307243383237076790156721814214002518559482679984717697423795022800426418792694355571365133803972634956119806823974669458885739413214810265563469843524981996158132277256092117385032639116675593450687147284218523486419468271755828650977893816235746221694298576377560056902668647398025967308291800473387119530994195980981254916195775991233785345317072293317355372563334215750351824228191367018612453843155360848725293926137796473697168614958869312960195773590386658739338454813350401971521075766284939570366399080422511629103393941743837461508764293254340060939078932607324444442532031562017140096579480458176035534214267586116196818070638853800400692530040411204238028430187569338576492818609672089284211090677958051111164006994294297696727105805366183300038806830832563798746910602172498675147450501387624198925315185369066286625373060155149032168348299607485441151086148874646873273407414622263532410096495653632217295939651530377158299563616395264556776989718318257343209432031530372378312002365007085589844253524859372624638522329939753622750328941300605395715158582598971821403427762768087642165801432852607214674566648084773455837781639220361172746477754760021601385753407257380735865806041132487204857563224013276564063829109926295766475002788616069773966159524130817267158652362878150293334102443576797462718972318327355118491436661000903928295834315754630614007537501647838279460094531086930039224177455540389846922528121728238871616481342050082961911879017166087347962168226363287457441652195262012507559049206169518221876375674080567767800157805235610361670626024597210946086598530405961822597401069403990647254323821048869003507793604144625474046460136766245674818776762077452859985293224961982380837997134072856117560885356483522067518545923821922988601209259697015386277888397391373853124000751271746288733248728278028110492834140489279096949201300798522942689487775631880561676083342860821528021222102273805438929963045180697211772145500989076957347506310638372184579016942333892771390745188248515153684749186506597931050915569949877022589938105848922534955982929830019501167792161605508301149578559483152929085469748085718960633191729046543347367795803781152378235002898526874561705555613288186875078681243172981136694195892738977643244610928845299155731301684553244541339212604820607805179896710944839108837505735367920580851555269785730727467374877645598703382617870440214417392078824460266518827433303482658100326959322286090282533772382259317313367895702790205548930056810161080599315429163131355870856151362820254760955010215363922300912067467826874738645531297811790897657992136809516783235184709137331673934692626411263741207438762958903942710603825360707580511738327191648203087362205793107986045040126994985515803964085662908695246238302920826896668338012235534953999934734413641388529730464955728570411524792815053543695053441454560769200878471197159910358398680093949103845008511988180611923365640915435488688279249564599138415623333359273372241629279348171575502429087571398091732998086377401749372614736221238216849254386741408373444831117283216878240991926761488338624771710193271717295352808360600322530423940119167068985536003943451339721863853851351738319879244496746534025588984725410329251934616587402101593732384939871577939239766674853368967581283255199754960141447785374658573231228640941422034614800308098561092288592683874350569167377002309635596945856627812955676356180822573928484047982261681979583037140762578904752754723717089869966188381744690855690946068113834967859702745811761570132440594625307129908779379015225107419920481913149695556360393570876047635230231206405951176152664197885089945462997586531295705209738647255882254146418042348748435394914408393978568169790712038003091755137010212062211403999432039226632712692920886944745738377660843936075099696564217027753597005079746416342520988383848983389099652364239883158640603872383448000558907975295710328659929106096664500219227888886728702053018013821460384537022024253463033842850836688937326978897149295449374781493253220037127988589898432282743679302832573818159063083310196857232404064573180297018501878619656712831082620187189942677776117118072128583822520391559537312975213980492637015885233207605490487245209839558186519988089520916050004379915536050054105100662118748731469910774263709567526150757751724034543117898541644566358260331988415204419324097826282698597251165729509672370863367977037197493211529876403884888697445837864053468549075092998108241120485929391621429038300013986751468826433919197870886690472811124813397551253799518566965517247999921442359388632233693422401619016899290364403412634783093938036526325668665568618608481840899051358726663828169522887259954611130085334623599568303018903383324962682739245140486848762063525079902641681272654449761829467060812395416169818754417937927951715968933074005962574201343210910172892545599477710458374447053704232380782079338563645470606940662716782620513805503378151540048994458301024162837792882618584933486520181795427997576026176518007731866151625330133193943723456716286728306048826495664281812205970557787331072590743428243497649630175014211237577716919429357498168009542347756394665928369421211463665762460057299333403927737557105103163087233272574859207624007415128572613842824530297847637930422852969467867996860973160249009378385917923822433479360845244962783848283329358521109716478461224513134962760560913457861699621000698105889639473434545697607644927843892306216693953574232919859537573201640168300611692312991549793573557708428823442220558817418935624930902143880441744752973607671543925231211214192911101067975434168897293921282569925849549588035425135268203649673557757857478912707237234193740254455227171573858374836136412214247949061747436338917008218093628363105302230695213701723741939950304259339767335104772035831034243561688181116385839133046221987561217658067203584005843619488063416548711381622961529719275806620643403368535810349989316225176921825350522433285168702506105122506825447176273452109587137559652670312741754753074410346232316326820296454558889249720597329706973553526275580009246492158034516733875279276545180175781055320955029671936721660908315421634833425375439960418437865669444565825842349245005173059734757875590997064337632833933239644498953841245025247179739429277436966444100090779508864072236577814121009782551236359200811732296000118859132671948923039219889733276338306251592815996790914327780888584819577894812540674941745286487137311850636407030958450413863369894489465226199662777622507082827126820437565933951094387594776027251138059876433666880346982120790718005441490179378104186368191934646348511647167895342062734561558788682217292768766953474000710901960114534126677890972979370725131706019031693502048689131282679814485290381396851272158671272699982235463603784803146588852476326477713558511023068987405225302959438834841907596008015493197668973901223957706233116458276282489869226036317426546851759300299546432990620229699681033070510285817785150494917881897236041152749377134333237079903077648014091088222414839622703979192645691493917199648340979213646866592428700119629617039930371544136718597951726996760550169917985577779052432067212987029004119051635564636334960714529368864835326408902925658193734452248300886516083911919327210367086981259406696772432667619214043475133393041064993959609612872646933085839083211176217258731425921959742070848230019161377392469935430541529756577638341446102684211192051947436864941620939765953319347266841562719390221587704591607222402056648291013181808926138338425745372818210696916317988186943913851714369060670512083467856256481333731770743864782839608912200280112597956707399877906412032048944075869564747678911757409291056562475366852116952621101888274130238450772878868809038278672743334443584101720945547579333323943056281559468779674656865428673368730450157305589367311994666326774926782241636378695546619454795442779242024206769908565037888433195723839799859289901277519266571949963980051867261587774836555748760723514255292243630475768805558469678486955711896182213543977986567316140023998075865646836302494366968375418812619833710729528072663488196451397466190515751545494248297602440423730454737171834701632242757079619815591120638198043055202653379061758060582550263479953654817493905015801212598130696852584316533949169618320349962939098548399768486523609358668414327030453593395870493206425376159158304889496793825135822687833823358551999919267413309871879709426658872721577844365112708077144467754843211706028663215552098654920471742771924865831078898130299324321506322406399964222343546997755941295286674505638249423710280134074060166682299086068422567567706201189867106680421281892075550485552779044128689683732581927634437424486054940768988254113390121965354094728304877840075591757636878687571542829607374145587898740264845172815245817415316545460914388351087108172157639897406929029141060702719494097940395977219696903065854237678945891220890993964873446404683021347219337953000025244193678299149430112786076380768242846805120982381001365432026723203894763204581010250360346043797469103031483285610331777452564674568145950674123684914622293398637725453333557058002974274193680146018437814068998419931551554113982268459434723517941688062382384302922492939038152198628264395298036622266254178365308794050215466161893941819768308779086094164712176526771751871340382653907049742627500621939868986030903439844797773333492888916290787931878158779277961482345563904469557540411207796827050589959664788436527193118521278328247592470470424799747321694346875977432015048958450061700613963843133104235460295043822728214204329252813743017095579118126027775658343563343414325690384334186539987603438574827469809822760695017340031410014056406997660533632635661358929274057655322735727149068038911000298725827016961639193388721113260333147465116359936673757583357669029008301255377249110235921142607842318335982942543671155199562484586671459444430712759982073709995863266540670551807627064589604553555698259450135800375991421031738110413840248179761891425817339775124458664564476630834622596395620875053581520729503645035140946935295514208919558340534124705469720178736359446646286603732169537739359359517202963740034019793433842798047802424258931680989882362854824467421258415572185577292446858641849249751916924417754648142132339585241018257829191303028976352314327874387565744937781112549881403896355187951260167645924881203430721598434516744594740134960530531121957373463888325723355584886527097482157361794244046983124720067482395395936565438621914165624838721360703514194444973675730969068989687556961830724667903465092300367201477161774468449084487138228607332411884546666501702866638903813275608435980817195006343052713403996091059991079774537562603178586123578000067770194905009065237315504294448282728172851704588694076857709642971316712990015869886360680682402247152720535135833164849996662567754292009718196992570779846787146850345167755609576161423791622895728333811610370726985287585772545398462343370125139353984004461131022277322793970004358694920149894157199024750136921108112087618995753880113466751173817362526177212161824854524835088924091321798540255826124632906194331812632846869577699919423955432242380748869402790232109224389151620396091152144350101312801758360913842769571613393226929229158394705061280287280129950375214861415405350234207090832797387500049946729510214995016853429256512899661632001881227062403054998370280053634038241381123951160177877816323918115483703983358544390123345490957916678838450076155562900775862606167264506774953358340994059693631478261844758359381808017540146672607442477777382359146171819937816463132841505353240738254399904165929893574375251358788074735014246735211687567287946461128758049028207299987797503228460685402761102315028254129126622968767695772105559185243729211489166543296640066810612994846399335807463409921884227295506323870184559666929879602490161118922650078910491830855372971070612221918866431750071382449532773449454202842126872244354802035469781633436332234848853886679958864404756112414569247155782352414542806088844325218051590722215507859555953503799743806089178467529700235980379253573349707678658210801247740503659272319201434061345872711275574115591619731535826562065761325300573545832522177600554485221650872822268720222964274460018737470270777935415345512366323871188641113688755979953308574099241061387435022576439437381999997268749538217476008550738552365429912466298368386388822820330824067207194993174601323990066283982136657841049839301020157074083875254430082755370682764108535862118092417011697733636348365379373168246945352745570281792059891040627434004158208017464781072723578885673833998171227923798972623249087993476366206134347294158195869940696399114549182892860678987180337096348485819494704021071583638259551038832530233706497381972232784044258173314395317998357604558986221185998282367806253862514511714179888728433193736616026862141149627041850990668011380886974969823411125641887188239561796642325956032207978911740222087054307774990749937753585473762624018530487651539503840919386701902371698422526558969339205967481554269204784737876881791912474668690124308119772294747388749137702626471538592609725514031300745073045030450955005824717850091730637586499369071704011009802147074862142328703743039269273389238284689230300249864064040855721334142560913332294652320874752496849543141485002020856461732736577222346107096236689451808076949494224848780669300158661182709713652529146500441895513273202309807466535280026711613800612738868465148083247235231166153589799216128482620584979378261926593592106923087296459103514802052628162603202220102863472791195888720980844040183797763808507673551781717676536988053657433128274294166193755841718008249179173645905542622733799532356210302121469973266199325695623561306636562572913712019215825012675342254870480549105373755991666214820049044821942300431794179802316449469900834879681692202777224752547674430092830330830516351907442253002934582350796607149905535125529137832491775563240884476090247238221141239497534936416605198678037174900646636850305932522519149097030508097256284553669200712001468886818331298611873181997157674995734174983955341506580931882161217270058237251936890760017944127598238663262865217763986690398094052063654778879154906915075528637745919374881210827289257685743537643337766954589648655458929582668255183895762852283269565455129659873190211835554685774519006281276928712835671681940512548904371087443468244188890994788216436437304351871161406566084465080392964826913510472878695627131081813695065433388256841597303972757138884244550470444598467389479138457804175709301835093775644522289809200649936052950011916969075372914179832834683145470850512754901221830492270931622266792151437773735430873388913162662125832497960980288983724760357561016806251086592858636344479614753792567082444116102058453177447914763605164170451809739711616428580678988090571316577428107322414292197837443684336728588074644241609933677169835480060486209931859538815781378696101532126850885570129978779063172548086121511103659023881381512309839615898723230265742470112099645988808308185222104338016121126317669889280655422541272854945834226749847382391422740188098713699514588969367661060255086867908487847487783683768506503525076837186628577633300318039845970132763308148949476353651527601329709898810352317327737455880164597085106114469504651543605248073284646484131145452143515507027314849979835301217250497737324236387932715520112174802441579117774338043504931081589645819859918807220993340350149060766629790055958406107785737443144483930863934221016297156085118781504024056604189888808300874058913487158634818969101930814674661201358513970729603965673842715530648651939847278067607437076279664319986984271391165974740530287504546807576634518819589512834014140808458974425511927004482141893757902151542119864038268904166351661751644100789942200931113315729494030343772245723724966509748609001541758189167707801067404412623341435475261553091689806907662934226620374870750470826074233810313342998518509287610949939682185296257550720311532365198880431879849309502028928513752462973517513818847095592613592218677559479680184578720926573617850388291829999046788008100160480078544840871546345297117443731543012753756164718971817467859836670025439523844282861613063915355970505955231229301008166649794699688222262305554186793530365284198306647739073577727053617516614339257581700005463649044915929253028738952785535669687990055885025498088570626497023718781192385669285867183323626632569883063720344243287514449427925580605384425050959040281174456861318710538228729817818370866143114830348471658749315515016773178625214716462678984753482734430356165511586718001334129265213778422748922262910659527696416378242996448777012367630576076515741669620598770557623883155488563827451490863518553764558330719494673829662697076164238537370448059168647072847708404789987655566929213705811882612673440587927043292617286484569037862178140039127448328492159726089028819712696579921557592567248703728475052021257509732936619545039032732645449853771017111304493977270045512642413297771802191403794809430856790497154501183846367074575066991864408096372027173112314277427602705229088763080508892243016772786517252842443464758959456430135537711223598001633616212894198117696027872669609038768422804904550108444809810993486196978221172926078715965910571250261459397551364617503590993691168403656443030194918270646566676218314892293561839157780751476545215166665199550918885176366274449051270534792154359090038105857888808181021620640939529609384807913881600422956061212227458613432306841752356410196043679592230189802694510288569541865108383331329240708831722625576634307426811953018954420283564940784168811903832272255928934366889226462117450709325086753298292741968384641158864831192690254716856537441716605182987875455518871569545870634789814684959401570958811034207376694246094070468132318931898058965929683508327274464850803641303674012966970430864896964106591158835873662558158649748982666464123261988111148083124674745458398707234238710747710465333783434948748362502272729289102725409137733611992656728629446921489640056268488664330532452543321050411879723546335200220486979234547226258569552010147020582289757398893840487836646589946542932223891410718346783833622235044761438753329831315142789678279577578125769078286759593871070998352037549735500216715575769475672985286833539321431416789863058564307595520487805379554446440184555607937670530760389428577277103019154204016598807403918099192235669945618116440079998839911143325082012591052495656649396076674581259803361258307460728088341846321748158491765187824998286087990952870200519670051944100456816895567517182705774468888702866508265879003960685698289540340450093374061265698793531347420961867229294475142578522730229585518603619142850038816760278064764248924909515888111719517910706743808563119290493614197314841982702645449547228836124622375991053724906918457254856806821770976643941776235443268057366147632842588672011098348965096750224265762594279656359484613910807869208759278269678790052941782698934078010555307863872357831605629613512535919637683729639972638923958454018906162081041121627598849186114764463605698364175419135079308465025423217167720276661935390076264449139781009393080530701231041910783764514691502571219329532739181388996178886539423851580096937742490927632715220516386312792456715036767093476021218381196452368106346374114106719847742570906034854351858407938809451662791551637084934234439841057286466060077977721048937410343713515162497721755275988311620318431653102509123101732107946562973093918531402014677645888602089718303409780593232018164974359784141864411802171064415205639590394108451886863800310804870420535304459891530951055283067779132275131096628798622657409727651898905460922608850515776930035862249647441756182406464634427477440587586750102857495449435788854575053348226864656399950790179754656897490305199248932486486710173095409008822557329124687687025990434087387492420113995098663003167882263412705567953362773067138126995622173251759593303111993833343303248311963581279718031044720848865232673485921944929159202602740065722742614290553414029873881704996289169020516875683174044836130071165185120327385381230552939608634794985439052593581765944759887023679842023629311936066679531888162693433126212704099758581790606974969407748176865478123917158103237604033066421581328420191231155983844029872390840063630139695174123885324855190704699847766304518798480617181175374840882883248145209367489883566428013008476258712503810043912875988432352586275955091642758766187042930317576141236930912988102167758152828719512773137593251385244649027681064858719272221480903564503757302664197470543774303476110332562860791004303350864373277722818418519109644884199292062114974951371006744423794552970829690977266675455345947940734706321281222005796493272795803290150929538832397144904047658655460900724625493498992959697701804822985044291549331381488782735238771793099334319882854886130358017221238713443289994435740315832553614145148785860076775786675159416105403804058606572151562179463611797129183711593080127368221575904523108475994726293783310291821028565652834724639691317091918337792716111894231021512983792936577729936429164162047838433059535087175667523360328402354090130311160589090435996668451761646565524623090823180999649558340825634748190305475021100728916424632674568778923417825703350066165075710141348184666546724669246299625532654608890348984883140555783734597517449085673120117565110483412993558250722409795645880878014578808637527150869692492834995617822756800938443889788329497156295556082624321396573192791118880686324633533743755629482771394382817661840209727049755144887549763368128037986053938975552578213646633343269328314431489009666715792868157722857032488404883742134089582184668550862012693215480550063209400162185363231761627645029258794919210726229634259683279043354270872667882356324175185408985368953552925459626061754084999234615911015467069767671470870606177108189828064090102581562385285309598321422884031903676213789299952073904301359560145618510414091511034920326249019709203911748744839314157313799426409788302032889502027123598663007780531740906200886215327982567200568906961991756751082093699422629979661188599572541597197216479348738781896736450508097694096765348096752043337565994580234866390736373755049585401878842491657958187460287880915363969887460080356110564464528742110421994230854452321451807250860389545510593094503414804816476358663487954468682698874345915019180046797609053136834949138041704250778668675606449502698892165806118746616313043494021343719779121125355727200256256670589789526268728702863952057062843508431334935351123405886937990213122820710008394033585867600953282836303889100713046233433722205626631594011491265540449321591174418891192430553580987621054370799962671893564854079459765474194481055299778558269991978016895938352729878914315447118352732410889269033622411509823962368530658022680467459124730825427024932046128703145140789823756758078502957220596482743105494996038567169254879592405935993506188848828996138304275583683993171262150446218106533782122048322153164946440466897830667905464179931049101442846602130021013701671182104736859327150049720188489670445521849588336913217778966048170624178965154861328055634113378658676064480428847737726333635118125433361796758584808890996448561044976298390617620506462582202802023110526976898145547804523145298404594488724782550997780215881974959255200154289323090267740686083260450712436194495326744506393611208556282023485978469633374039449907821146484156318118216166603498103257583227116700660668555574600865713874559755337258718462568884216959417317291266133725767247409436590816299774935023159819953202910394816636619413338106533237630134866937881592737315133966032034367161073287576309663471668844480551215695673478478253937256033229392404092971891077125569876499717334493350166421587744673100087427225337375940691447871499408690220603664650084662482721574936547315756563439223337096990767655810542691188553761270457680876435893097089675069012590615359211893654126221478941231647809626531547523205780935124475790227896642817531874196045809521633635011156891137308348565043661634542670744509387826764444987806818995752662040300313356972719179147883148131261632286053169163203844431806332836475827699765036005472268728195026067422088153680208701409167884429050045207460641018270824643687714807675448337661722322886903045157352011756460647286029017173488055156731853434976984940823873357033684787397266302412718758601024551609444387158380757635120606176977509131802728958652429719897557266781318632193479437928340107920917150135666087772919725271912073078402424436653242685920353243656317196146176200719585571628175904658595271963768444430189510932248541622396256452406237220729079137372060241523586260388623881088339446364091899102502981565095190877202502192973046650300423283447276155375026332691134580263319812180560611010236980572598952868401380361240599925651106311440205452352844207080122135402776807874958952724918198123059816187240210832526252069889265703409966981964873552390001904873286046552564107776896314665935128741722867857981349773789683246462886755184333442932724074969706966002459943786421883772644796722648968569381488599160468438215341777139794494987016677122060442294055792597007778811918192594497381185043486346438426198265538679598888354663209356329580093417532091307284040702317419523962065763642164778177128632622755939809445994879384516805332479614748920376339062149551199497475549722715659023905130140455821389876735971788347760346319205107541989076378676304961810301070174130481059196951125408003987469652005002766710099450599355073701681915517165025900480720004551790382095005905377453377753656661775898075823773764629868354642801568626864841238357817576039052611013627117781756527799356270954351346743104667457702424365608858552596546232934226234069321100657210390841655794618888366341428672109980924010133260535353021054637523367653876592019672852806630958497564779901691572320133152111966278704840479852368613599782846726583117689003026605355725994288256609946242079444405234612503368590970793378340287027459513663869955393597321631298714059973239171816488267053329261201394522399053044327790665397742518543171104827989044453182417072633370485443269864987002789836872796685661536346716292246582003522646341551208656987004792822445171614583491617998578945336005580045313498838124646902208988391720141912020275237612463128447970494474736725244741686588770966383508645921102837652178755010712567270565928448504326572339913283647693447005465407841161203618854144619246121287548458986906888880670647015430641216157179696285446420561509527555701570041382928137700796202033872633260277850742766676106645178634032929323530583422746485078956957481877995481676433026259058076471063620128797631312399742378425788065165802686168987641116750464766207094425127786470801090822238409250743152528882851352819996348507949050863545992920430822858640576662995350615208419954303927582223494701263237006523757090777746091240721857593392094669271802949129693620968923776186695494073155658015670123401872995739321943235062685412213231101269569449038333836518816420943403317616023990507798922322728238900316940705322129629966034296393859319341398710757243254180985985561708013225511162045063797075661173999259220302627179841839566250725558954256131620911638242790099285930772486411966950537596550120366559382533476428768082497596429908125108192259607997773120894106032409165321784103931464235034917562465204437203140890320731424636427335073020399240137689218562760369430935363773548428583154668025306346737478039519193326895186563556191787811421112471583569667125322921055302481107928060455938509347329441245104585092012543560121013870938268820961570109462581692360335056235668836990438071288424578182459012979235476803727382682374421936899491416587093969414557868473406637841100310492593420867055083316860494654935235290183815750529483073552323202053120941039032703671278713771361185918222754512665469125554395395838628442435255652622388985135301886986773783263416589300546393694422377364717574446862543377959814849122877355030512068188490288910385088484412224629936729566875798857502907220871834900425508655148083421133202964434105342720419526034483511614450618702967304303230738820164181106289438688690467950587067091613885243507957776479807292088569588428573614742867269403229523582732254154209306811607716939778390627114874856867086575806394017184106521900789776493024527849458149663311502469951710274211287239203680595176601035283477639527920629064195972301575831868170861039016533357766976590885549064262668422752791339312362520408986471209634788754394351894593118838456552967559786559467166443242316186809637794578429202542615282158870718646167608936406647240734750441112635825081672272325586354327674421811415614902757585394803435099818998235784205129926977326914602752592304986184282144472858178231664403916346437476963090683399181955352278243359418132088830254758669416371277803315577206520791862580673240904965957683975212287884916083762884189203095593976742510210917179835877368517992506171441906192189238663915804364622642931168398230631864157401568724488361801433325658097305930939082981478441222327945929337094631066859969913001859031799638494805675820335855942096852228304277310694990804472563313710023917228302883854185236253130463444623137213728992282452575160614831340222754974463912494611431083802976978117407736382786792118488723573988995830493438677819392343234212555194174963107077631563915267882569547901286296066104614066709752400282654072026173341613360965332126332757001992490640619444839378417656171193885487973695908068846042892903511429843537489792358797268591121093212495970198364518813934396972633923350111336146958849755635911271897234969379233562164416781915630249898343609107969418895390876292435445544042613982368053955914826784833046036050989887516667900328994210665685222810310249054022434946549828480285723010564392989775196163376040196498875138970412115905992936068516153749344853978755436789083600512027237156513186971567237288368992770202548845906198039623014804039221240990125455498966763725185111787177577415731412705069729658655184868307395521618635239539150328892797871316933373436617412837072167761889209467163276510440960771029505595944110519459738520795757606845672358822577146610429035707724160261826953558153058312995912487656274051524273049452499051744437261999727610285763929886325091773713880180631472580405630130611004233004270097328234089056095302252522926468840281121526303025167974009407678433652230251180646302875904598566766967641419235467676193572398462225296130386838570317963996192399710121372776248417464368728050645477455436260755066499430674263511426426032373774353899868387504490349564409605058661515748874897848101594995160306179060757602543424493020350330098656629990723606136196150904432537001067503172040242479072420362626447006674283400570999376364943898973794428701313266206990589990676887870183360029325846945694045962600401749764914531359969732880595019803390206427312166414848509710772862057823680089230331318287514988340745402467761729960835946755981940543352374584687399883198314024918726930492995594815274896100998505565434997087370707331618870893851117992081268763787582200985848663661830994294065496592647966667104233518564307654386323008305195378209573910136299491682642528367205387513101325816555150861592832063435204280369265717443452995547136134761995858636669239602134268520998446006538605049761755104086419008906216534511311260775957300701370782838444745460673739763805856244342393242671143246595089480919344099268719170336036244240824678675853053825377109628555800646369922400866802713412439508474194339049096416146819472462654432744120864440106787599996459631054047475420312438697440231869894568364240296982031791422205619114496062305105352647989392978320992769876110788299798722235291520793380827158229097877125322818741213451115563971378839394420010115502182151743279423132653124297829050515710404172153461533321743432727896297504929184709936930275219075222440623338007058233140367541162967908721867120469169160992232008887084134433219191655898808961225631424681568347845405669513311250924887441654647643274837677170881318792041718510758170003001804043451864327074446936683785967408061413678218105159472283431848013134866249120547250908482315831224026822936694264861776620127796255035567427141889861257581973686058080251587143202606494475785152698971913179667319585524047258620309123167504281451531237841465826327755575718074430677529935829251659212498730693912807312901000314881615343059782102198018747028935639376901351096413944764404771575971482918523736520810815029920572004652560342518276781188189567885482118023401959182082889142222753363082287398288980509071570993708555770196916843175646305736567033908646038784052078749839881453879881964319075161921093877281761626823140004320231512784896221061142643850061758033104162820345404858952939861672188456120628157754529078987706097531428758232975161086119815217347595205044471488016512058157602351838011916576416813795698424417814031748613304791772855114005232452339725831059615836509714072360088385412532031009083385285538251878163480410149353474502348049078931407074774227956717139536571199356944443268986831743518611276195424391591619343372675098436688564152986837100464345721894739990473022315909211907975750118860590921780567760337984948686632049753285298851389306706335342307676555063308208036837862188181081918270168372637565652810264242263381892199498218543804647162138661746158812303078656426476236555318108768111336613532499987310557175979701539686709596839527469962365804786637080176912448690642353101687539118484647407304873829446192023528920186676055246365651747385251464666412503767392879410826438803451369747668573709276899746517353923426917587258666777993012170392591477509455424808934996670910635962045317767385974729659711683101359345288773415117361777521345647765785122882949877730100510678015647237825863037567055619980211839612206120534534332171306158388084235181373962023379037183199514720435490617663909071704859894594454501762926293871720701231804994295113445892385896537122166896871701478393921665143381961772004222191122665159597867373041292532269824157924906270796603633152731205336336655025504653147912893623761102199271081383271524363339455722742387420365691934502355061485066845612204019400412300900523144436868831822943042987449458499769021774070793484905011761593261431074155792492645742785085856844626756593996931979207654360655502955434333481182790121774854510143285293129344354453262979726954341083669173677678952354925163219967210464913826441300557574016263654396347486506280076446902169276783170748452880013452158701248248271187639402642159790939476553610623531604887105699828088268812605237318921542232266219488865710381492330883596077593683342905171131411577194085763197871372762516433438949670748787425365639634011972567361647634228502240621777158563947815983006896659991562665175427788999073858813478623048777895261568871284627116441077783252837610578918551249260208148836464311056430858724538925496110530769485188942881935883322192729899547122238685722520581914111196089591581671362174099502887044419664888443017722728287263944262888947859161783307175543045669051740838312357181285268582993366778183143119837355882008274217014300955582692677917532695045989998225246496490699983295549420903067207628460495980645518910066853604552434541385188974193271165491279520635706379494756439588677056642797413545168824543029129966935873310526147707932988516832994326763042957333439914507339918681988995785287803895861770775059499795766145947811170427416391888747641826183778858143129925737061773599788617183351712022218343677466944693250059398678507929157186088108196136705408720786687834432287236533234958201066074040995535339617518030633705768934777228425214464017133479394245394296310878216430186800005131907871314893011611928204789045978075374716250154812945474500993226305046210692768116478506318552319213789444526262056196259814182876762342520678765519445236054192599906153205765286443187830197064302307550660066820053227068418190736500833252714535840577090457349685145628470682918763939097079842127133405707798034404179320150038307737577928913901714292894317306150664148486260079469801131660807476713013644831277869384831037288198674143331442956642186884367221815446577158028057153155133779937608889984361354043771498385465715498315304317011407255127940348947676816477955944734558952345132618839308045562045080246742651019463645789584835491632614691645040880397969046529692727882702560940015692590112184448640445388229687134609270198994585472249299699367388550224539301657250506391545898339126480674090480644816845782306028967804887442745257108415512241369169258634244191590645988574455352650576393003961607074607495770302845389708802740240507350266871715377092841238659434529144989877482973677396825654712732495398531225421971205734579104230048273883644385705279608033295644555287847766776441044280007300133956118532614170496138544880650707553866700552466825599323954350340129188408532613665331108477213051925133018367464367241343764302913296246571150713350340386979136342433039476717828299612225592478498007159229682758433269208895620875677003534184402795608173715765478587606400598786841813455424867381444967806803055864814634742255295745232230014763280332387576999636673796369340205131245663275340703817139192807055243366461221037116047483482610142505093695352640824242437405639922332350680109762315159529592703797511775015549449826239321319401649272864197412870383745044077484318318421339574227282578749765200536627086022664943478045577657150068335928391827139772852228294562774713811600128424162233999434151485853468242079404785454236288112518162206678243622767277536447429404340971953434562050507494890781331169020817746592823516343922901592255976255301046376162195592264894160026337251273598899513950756961209282845648569979355985997062072584836529841853529376302662400561303458527922240165455678530489206874868394873798237722584440786753632379735230494007814884264456858034448631029233114550242097135265424948164257092169485362729330928169999301094269399455855210041885481398226814544253020449296495346972574059413591449178253519838889848719456541028569342221821805970073292661043692441717877683497563953852319078856745063428658205888793454559219304581140418287867074490287545081605861048846278545752231550957860674282865094307731085287158608801337156452477787544491315441742800043123056728482858290118793184428384180783119250482199386196328800284115109128337809463792421495479981778016056260349409948665060132235144802823036393941893393817117691644921556299625531905469800478763180753033889432340448314132035132254158343454733986023204665458136783613998287727998393447696328246918655453145393148480862381607372661731696018261425099363987281235933553249594355099720407318855511607716233002177937259684741654398838898585873439195464594431799346695317943698853055952411922572368665180443654457839441998818696492817687938082806013742992312864388482448984632294503579975697561949142324825515063664465891426137837302036940776157871976499365142257190039885728627191799470000880671190112381810282261003391476239483244604286556490161588241636269856739370191617521933100526197839942087630198282064865868773512621651894372203680687197959792565474502838205090270791230722538863882436086392227261969709901329494264094345513284312260904741099659805715722645205673972243614122685859442615273394395425386859480619498631264472540710250769183210389272863201239462538997325106583538450203918991807022113119201193630094371548996969967682997618174049263091785115723515668821883923728019305898076397983668580933316784695911935643121942590766073582367799508455475144821900824471364845315617044157409227252619936813265265865405154915638314619826777140121107771238588018001638732272760278296926527206669146247017970400521348636466902164303023286775831916745574072909124530953066067977788342300711121736851824799897524262459328976163571001057875372558727191784547348237149684447571623442751546673819831920103084186033113468453684701043866387808730316126482850543552153013260567742528572775595016770302054018201238606816495351984066562269578370621060183964616519397836667287332812097176347738367838681253602247916316302730005798922628929840888149716573033950463824637554903217656813609828624854497925777070167713935633790133377188415961420711918362962004264703857473944030548095609076268749424650422723578611703304920418981379528480375885730333523303888591473691895212442728248237971889032964361144217869487711214080868921435658349925491056615843715617466243077970402280943898870775667980238970402404892904543767704229396619842422350689630441078784435491075530797053537438590305289254430220379243593646019172868921900513652946067981019175983277273466339904783852183877181610388949463472596901963879441994887564050259681061435430479965384089438216807666934989186294146896113111379284473943720075832954476171146033601769979242136616275441958150159747831606524249547372459263113040039389498350407693445782753536948328164045527345581633292074000007015130442451450284448765840830890193833089609961762409728344563107443172957682430716601498797206987737227031125173338461802506300057716933537966985997100907915820546997054707501898669058610084094835879810673858920427997192319105466989006393407360720393227422841555064413429089509024738974081037167386437411589056561017659250523951611854445767459814441591571482406399841942037083739681823398221537437688422526922462872011659762855462836724774691961503471088340600389083023858378079983323459568539015082182851996619517734653176178179587852854054489690546440294377659813914728938345114705133017768188019243985179520327509438681486851525590627881136665164816133396688633422122946810921896721639641016866733316584815285946441379327611866163446794105909180059262055880277401335007231174216140944900449173478108326272661736057270888394176755457660200104388737445747997549262666096340518332287117029681852942273716972847658351579375817486480068404218960648028901002025653865898584784548373418982017336147716948238110051030646239899422517033024134215106242345315665994070740722677561409712392031586781800773961285545973314099760990245663231161445955024996965462315242375621314492038098853735932804023900094598484835472598361667302300515112605465653478907153926112241070077219020761356102212247217137588331432644178592936461829769727878006571816325507459235457148655366370769065889854997883821686888926038798054849073252390341283645402945859741971768397999683520440637082406477082206815791863660807555864345816403052019467967495679642439434538074550216565495416630390786936060337896736342670244617702368681056411909323017869736817198693364850641194761670386674380556199339124736183899743537380900666577390054835055165583819092339038668872549799833653805998893715101067980536854188209103058892919330627206405301990482748096346037775132153463781037686166506783069742017571193977347905879168520936778999109081203988926348679825223852098097746859563213377699349374873451012733457783064260546825674538620597212886823632067192251315443916205680395339327487949497768722056767983221878816913173688670448493716062196386989190830116273607409134561645472740122038222699001434315096442507794432548889831190469350150625248189834913709432037056591876798036797481871633315118571007416438747763549816852964580453945979860165144695269897662252996414361943964521792902857709362423266237398553652734262875248354942659055795062778279708215498672526806969515877566022018931432371371165755079342209500993520512189631951711256168942544004180016177052851741468898244463110564317672666618821058709226238870444283124299257867954342367402387132395898539634179051435298806218879403059169666766149768616714296072831285369063753656889790405935562625314516428980788869909432335588868024453069017333666098537518973344519095384995427573971039694989000202989383989362144761047449366948781169349563617392684131960097340660574792970309963081342382873627249063924207357298491231406607716760687053745133471845593332771268413607606318333161059896643162558581376006960239852239939484528449713170801265246360851481760792588681190519670448047938932974148405115700944430170891758804406188431857256990678807880697526518627258491097428383553869069128850937379851559925940834119749737221189368415168200823610992724924455876069525891823833995309814682005290675276371552270267061467176741764144604547017833637857954789260063425172832889756420147293568125251844248744096444599710495123999325952373942636548274305698170772114489938064274472293822151457206380279442451535678776730120182278920660816915227236565915145230561844544950982125848066164156854495037389627236414958497004579279852469488264319169427451756682310675061504761710608467441970509254571014179662334754284975988122655836496583320802915928148892959397469791896981370324004143911995608788077509869271132139026479139454198424234556920893223500596550714777369111040054477892638055828483400856821798833335062349899703913740905429707009308255153820099077935058962030358810076256835842662034206695727495877620674987792967204047790587919063540701716523726796925201920865891323055566913148459242057093838366364002371817245706416286676799937769810119435470694360761921920341368107031617176035559338752761286930652031951823869734974901681487084805763835388172604681168636728001247789257037614539636862504493351611187354725091509876118618603803161532960823424237840197148631287955666523999470657968963419653852251423856359177435316123406276839848644694008541683803272989124207986990109519197664200671197900692663374055152146978718596767520605121333647239725139961132630545849196441561801750211872796603562475902750789625949777533375510102802326847226470894830513503417999220904653096935432037073012562529369580060794028120819909793155914787261591467955537232166055065992814331725803944296576315839857432103703640316236114151597060640089367556147426700705371793002323510676709873981916517907587827958534140055400977069576682544452906698076944864535736616249071302277187751830121139534697054882180363912775785495468178728009821945469863119253483484648889369658702519799760237892974096398397299516941576084231867380159488060817938576967078905217896000557326877697744840355300663625142385600688865707675389235407242872329482682815560826402727156124191112137774955511570024529951511245515232564704596166745792243386349066753531919053398526107278977673345842513409156890826641079751729914303884141164406181046952653680511584296265698595665374852397747434770105050309133729753543478856481965138714648754336405865157007057608730692965291864904489341428201452267691149162877449137905021070897939231010471391969776580748363465614572389172745336888933367888523361815960399381339897331039433422756203577417721044000640670403394886242315873284300736635292996349626136114401802430822375772124913491843751207863569073249527391130657674388482555663533572000760771218125080402855392248053507472985559454821832386283730032093813494478031287290354217312705145096814452475743622015759905788786222426084548505010477887982259986368963426629042185853713093452114403988957497607776836937342167893215238517802300810087450735111118937902241587765242410941960309640745919125435247381035724591798271105753827376304515469626007651455112503467209206643817911936463048711412065964875908086936739335628807003821481419235613580240356228319038867308719498812779210621738753020753903165219733611686276980340074989293995172250255532819015335407090603282229603013162805513192227604212129967215192773628442453378697917533316825629614375461745014421263989292200615553152054074936640090028350135791285992692429346738691881352665411855846622128530647914260395648671994050089285907297168054268928262489036370466808249878180641365902628318876250727265906771279162007613868797857782923014163850433784078445139553960737005073487419979551937836441135407905415358238021080187984104540478364539122147241265112752745289915967060536272679944927250515562162287652894892519820387631112560193384670297513641534084422540932731690427972470476621467180462015085899301730705553400459159780203470836267384323544259456679288366989115103833930721282251370563287188699200201176876382719891995951533967455171394732324071895124300834672396799958339322703369516981572767846438403135375187571115161370102632603954351089419788673200398480666718839162980882393272339783590824570350490048618268416892491685566390965707354559585044178848909395181734886564222049975690508292251129138543912861586056231119756351306665946830955248397189229354950148758354092114786323428057882965226839807929347296616251836703873878580218528574241404749013343951876747640022867592595237303085503476009646625596015377216905505535983551658815531477137923818141141258184646024877788677024592478784800693490628400578202614180097668769181515603285100376998568651897154821271089464346105426334609819021857679362317983006113300501904685753474361614545960436957274860591274087863461376305866797281375250199265429017349851337316470914546644830617302674470821735893475259403672058341174400639268912751785442484164035847190959618447818053026788764094704535010010946137062544738591205277420670088718166267575752886177560266581941857241630712406387057907058237242871086362719132293114846361174365120484269098384122369060290730174376154357749388634807798670724044149195400787599910737681468022606829994308815048828726452518559623440255536350093403962394760548208495501418127146854463846943104792970007563509816837055811343305232352684893454903106491556853219747462240744890485570895227493790679194334240692102481635776266774542469993448299592747860235676589935764505838946092388309575673999430439651919484746700837245169879787320088892944764106027849984407899015728540577653993476082360423444142016826627764427818895882893705933346685639882850506952277963484007397716625197597696280134604889095241726304362892747562306724615646489714448517668002398044415134759232131511956607105304981372157032555495449159544295924066414440209782593793347520262118890007096838214820925356424189810023878275343199183563021885673131983768217476731266867360855716134806598756667042932602259991209286086338673806500207383020311032685223351180653369227970568224784787986839170597445279766639410534329578665238312005194086689324030268392167900651206448557507273944027099003304480060840654967292530534964153287970024310379428659210169271149048770758169771317709964960682247854037777982772417066534401912474372773658594412766695684056751353941984594780908757916011975803673246288397183498475566856140030354461713162346866995360166746407995021844033807615420911163817711696750026128803935584717628834125032380914918747287999792840218740107039487368758055798193738259717604492439831171466360837664267321016195101456846474547955961886076208362759573598832834965892767618316204884349156213000211171607169038252749678939552392198053402981463760844641752447882578110023956434547975751038742263271398277623619119425737479275392283539234798605806979932470088228027826730103779242352809481852095075849083116629721045917278252171307282437124139628442349092131295939299246925396083720234592688371813327188480169309738651991379339628320256875240826770590824686861340853875810628820117004887703331656124019426206430418469269274256522425685854928914091371422817562897388962732500735390033710400133845027487320341912999906721501458006268825852348252403962588113161469864563218344856443714646627162940173492318676563064139056600651715942711299882083132457266829390160523410206022923811410735394694099637828291648179315362124754862263943743909236326824013811981616393101036849758062804923616884567879475327985500662229188056878862935117460765282352945853127619411616981120258193781892723261147582210615922797813347730688699520323343379128214040207093089893511486948603140217852160053701508924614786901032856415144289742279990282944973555494964911146679294321869913499079699878768913870635747134298100283676509956593576565853358773720625748359745993529025111677925179893618261828770212093097733026955213804346882731531024017642085835664365177603172757309468945016224278513260057666968418824920750095474095233234899838504462325292665046798440290712456402071038401199063746912005083740875533789733990176142600070386088544879932907659297400855842788440154500600889586992374545097677138521159714606970798657641854913914679524550302591537213410238392212139712166735503095373720979000456348318191762881655157752461922138676695519435196854191176181952976606199863831246884288409570469819799079818164505998312734822650222226902629168817252872689387826507158040525028896381147987822409468691012598405573341093789542372191612085479753459187207876836319189984298794882872338339346746006985283897265552477544336342426369662128588953263132593030658089252666660317686901251360110760225251008972324040482860301259146825757805537540286207196057967041948668332028705289229002678895476240610360046387319798558748595525110399602355451529764005206298748388014240908574287745124359779771214398346840506613298985370599151006789353795540517022442934930809500577476800962166847349457876696359464019037172052928922144299878168896352778397501758663949781454617741492146418119201621392014921075200821513929984500383162982090225428834025763770818898549373105219020741399089326500433753001876128268702906255523398340600857512679980252072183233937241616434138798708162290971231602383026540577853653173525576243284402563946932603102288275700545199745214781665271910726932600570136907180843955109984657555913974770923114238419462306051517692601219605316575313819979612034016058490265965398532624818964842933960914417308879648395122436754023007420071297695707146036224190722936929596682483808584279417628303711827153886223487130414308846987255751441574334095028030874738903648509986049712861684994878024655479001518408439613754525224332353173706205931159931754551204212512435393328866815760056747001765194720927193655671351510750635392106759155265326661146675215601470770110747873521385993047788126052403616064989211541145953211117905695031335236424916265889689096138638801491531926971947720748782862947488018082838253548655974116325726222221458645833576393497785184700172515307516937260672013494645386981702194930870430541073112942016491887153628559877495095440608788488632493222980972632086562986229428893463180807824949303406737629177335920027130070802117327858489032094504797823799487168503066070599078689106484331765087812804087388466682207857316569578398475823119483563530492248736396131770097736131497068139724798351920162130762279835144980664449255816759883588871433450787304380334411135335821662016300815592194242836221584225141317427527272120055057704994134295389801520527587061078072682944431626633063530890056217680644470032674759210301083073971805296357854006866829419917184388339549783240307646276928337835289391727951962917573787028313697260569242899878672996511486523927073803500958041985387556355303338624733013283862388882906026490745540542628468589144059932461814895485622461803095509549864152298440195736774057127591459452098599989679615003455724855936055126303139833078771258102617493994745342570792271814407046111558557339756435977791056579045051101049267419945684843290534310642841087830740426863632944241862518921740062529833648284234564697142500630311837316483295764614814813324377636601315186678715407160257704397770244291814610137494058903336216213273668159347389117742818729662535881529279495137115613180103635036852493114093322680384276194901188957266797159446684440195179680740418719498841758875156321743933007016345949264954665521162881714028644019913610037481724333494441137315276447995229249516720438490592099900099046300860493868511733653736811471982277972082544134263444849435945916927100841570307124210060381744177427194387765933330048887329374276692970821665822738457019221287002204418108869457832977222966920761817863440303209025332342066717387160975406358486263247758292231742261454173941819287063383926304816362920050129961431036170274743555415307272012695455346241262731711751362508337385413024653021836007891997940188558428627379330167499681309127298691317253187355534101706724403754465906879139743389472020954281839526145596426117061109988993402757103326436940347849106771988028933490919361019948479123847197113937528856113558854706507653836948989477502365836735248985555141274076195666105221146434125717461639394581423507709187965703395123848417611413174946357253217077353711170683388360276665100348977486014575751798381578154112091901385838102136916717164407614698543444596067739602041597410378139441395352461420474294840987193641612486336547227119801004907040041246059367314545996885324172403233996263138407448419477999236192091513861976864234426212017808048666807420331084522085530207090138597865373804657834436927011039733083758163768623548593112250614658059541523502963609287121348916170931267144818016819651271078735755184328348977148281391435585709686196893884370342807280727767681846621328196238819609053126788683550918386316997883364927839128305656629717121793357311341702371113633784459672653997167057311297075339927674853120604396986319253771090955928869757215075617811329443318359291959379546472863964002944167099620263987827043524380261301350700541774879405120278313136554819830225792663147966319937162666077808636833932531939591051193811667632196130912583574823251554956646448235328272925351272723242881065209070117805546448864148551525709442174952990629595947124243074333701496546507196506242219831867183568566080446805231009558464549709759570348999642169078319847948862181512049501864657699763734103106836089001515255092138780268834123170859222730399512389254606363410576233667097729070664854495972380703555405009582693486639006646641985843385436076813934415921604002397273873261469401296749452959125034473577289811283720126363920418765069368384836482131548985555738167563969366848716857778835399980994757508829196342655695012233859415594694822631464178520295544257321553934619454528546533700065532376355397041876270010693942079385158800356302913346647508614528090410319532606605075572831021007823876004675767302734569650847152923095677848096967600600254678792232586651454199505780187196174886300200241296244600527224243184632403286417945494885883318441793984475526661808127705490342414774408681016840562282846669846557334383343549788773719000821269698890864887509214892203892393952843698302759439441098980562698547904044245798714524907823243338127919184435519811983929267773125665729617695531396473455204816854097954284247209731267045629931418171254632090403514045266414441579332310533166462018444657734924336745530572102923570351350319905060916060013109125205700105279272785302845892063669938132814390071548740014349808062022958546571938578488300558284470936190256331427432650802433346151694044506223453513438617683339840394772843675973396311429157301938923815597009194200979288510081589096405691254254952986289522367295728104155336478372234841711965106998771329556886307637206528324324536256264101838549592817607013716456098409494228051520906061221660753924219826399216896077134770225557561321693549405171246498492269142789116381721405996038039271312785749704509808992869699075759245804564105348804260248187995722935424021070618384330889057074541385012758137721211975255656395646536220487798267090769081322392872750174654349781519771739784002164753079320592471857656543114621239835763610726785874254504055994730304805475915390688588097632120479469631411483115162104369438222045980974365649035580007853208941726133873886819662209136960810434949187725683377620896112724689025569186294178503265858039511835947109540351825469852299386595678079192571526383996846449750185900418430777290575242225702637798902642442586090468138624513062687986594323076897331442234771463252382408714097294700919534372437931313290960476851461478250388661103535166992629912145526349304664919646272523798279980651962155487892968266613952799953500075192756589008429796929246305211002233538459270993103919267009820362598627726473087234613685259968738702200462798437508453331478766147406806916101505485364178501536167668274065811805405639152704868741013233453582002217692096707641560285039561713452226958471633367132791103972571794124786477001877305856657711554634188058916934997843469412927961244525596752956352236751282742240458602841875959391206671731274719359955036446756884818448316601810343629547141743290039646701439337608744038187408354994413727866968757372118834454903365667670666096470173145402707572734249770466089307821562131502926830408734806905215141723245403307265593040727043427973120233496790639820374778700472069487177434979589952928200999054663346034018424891995796738032668745411017494080495057091218081844738157571430173548959969311049546221610019205550187671090018772659899221216354848228337425174117767312958742955303068280931439619887938142808987488461993559761981911031803858081742325084026352737731805905668807497631954966244896318553566265657533952719709039526183156800160580402206759302853429736362261373025784789781288714167430075746587902684163154988873342241046052309333889847989292697203608585959216466958957742238311008615861626961559615730629310560924960664643967685294278996083097218589976816375667462882486178439368412447144317297526049513081632993190189045129244461376923055140697323259159390884343329410992863563581436572052614202597672087739255555637263351098919046211712008805423218810029441001905557795653971927902530662531797662404857227958983281148053834505749483882509972968289883938675541067005203399221600804814898424469823025818690875633033713007486033172943208074270122714135028786378479629186822149793513442897964457188118201737182837128512394710416464194820207558531922830141685453912618812102592670457050074082528835423280531569171182785800165889445649007868485883575380093277645358376864200505391801229362470021997767432394914559158346055586188503128976140611367539298925524670622642826205900632409403725687125480862911378888660680016425607412112304863875201538447215351099046888658922490907355027941477027762506395839832154399848300556973383762540772264847258137139629111976338322121704988068310954663011202073598811668079423934692253791117719811141787515934924413779347136156503181278929135602013704221218563488200997180334478123514901627518068389291349156935446217397329528768002010540632415435171009062552633338481869553380873038036319759956455208871127810130589865685049148703123846523097769143283868834314140132564673297294040335456005332280946498129551508485407489703666838693396675310443260742991764714015364399582553362563092622201921285124467067269893887244381114431660702438682270633398298872894785834802964326048613395082724240264725893928543715743593150773655915258878933222940120504738226973759225332866767641511435759947247755313522354147239427999854115222580220416317562690626221989898876514244006529690417861971599860180525860787427416495161584051445086919483858800797171499082355120685665872167824438021457284963372010945052178237453922670471105813887028405487045539803792220459484529846515050824756884579283653069381806024129869223286513094012371026092222058980063979251606238719552709054511275996748534820139500052498747927888143609939018675845377621933077843283184939446763889027039251096311201421520459110921077584708720925136719100149307386185905984450862348174620477726843380659759573617272286865593660576275093663103471982058585410510124921049424810707259733409901592305527333376462393293490791027612132469169101677033613718983306375644572708025555598331144872880050055353036388130544228870182218391920344934278285057972629608519520577519604317575449509280122706470890827563121246568734511691799934900263534440801252296921106333670500069779463307426124409243687147104448970762064711400709597840849741681953886810045974279432895662190335025456476941960744439393522290197980150569682627173826907115510906787498689555797719196627366971630002441444019098014077287262012305281694101257144120504221910062456463053380412347488736676058377603221934104106145226789809589679851285053952256827875343920672814805885381927672145727964775134014588943316029368347931926951285675912217543601946001545523618734640818906768719795519565612079664244360993776152393069128766735004918831037578227631794076310967002593387020458712145819426262832861583090179707945019856564903070656478359747162888938922667295010645198979981385991234092820519675500238397561719077414518482413943432227590282452408943439151747062888977519847981414104771066015651989688417469668144424377890995974667990799284272640212193134946465278941961181237832591533085947153654274507622942052175219615246973946228546817510442079692742545543073051706116419543139990318782999269241480301609777941970319190235516605417218560552768498886736864377453933018448391566095614281757322314971734492554080866882774890211593686872223827082003179694655308286758350081078718757979286751957061465175238096492300811887143728029085771133971858447530250163956591394531871107019768330356009677000874713910971921818205147162984575764448575555946032247244375457170908060771448732064343244278680285248936365124103281887387410513449448612951926432937088667434156136557923756775950614837606755191470429951595767762719847553357084221379009926946473235032160153226736406368026853438023436933885407673846227791325436582120169267404106489271764768128522074268220666961393736810988700255415633289941780489919590398513494520925111769190667115809384913107745865276183007344661830730957616176119571469577970737809766088298895300096496688649947727101129436527034303822225007737739610448158578006372809925278105460196186893619659829533683951134974799840823234195829232063058322320094047170192028184388210879326518430345719634117555317229479411913982683290461614341393722243893521275461565855856522750528323588489937534634042220737967208186873056889907112628564676646868749697991933740265117344920554193152490093447321065717302884218918159971587523899435694539637384595442693273921415976012240516279467121302061717292986857343041320201709999999067508995578441851036093491443492967890616734477657927623698573977816956031450642598013801509451676014114186560451418851010686065697285520952298437875584190408657683518051067644928868825947523101603271932711673166755379818735205428124923783232863188879369937945516663876735215855184141008173031840469544099646210550295877162915428347106742465440883881075102143819998392526306603682007364095487116316788410636895959844512671253045568735987188790002910810571446857819615752756763025869218912723073038576386830900143007676283280520005632575502903576769513980017030690889703621676774227833102084934438523888852277069840494297086956015824617685692915304418640182630380950732388052472536217010691923146446122538689122605294647801042224088830888820392553221693140237979272684632435523409656704682091695080817132973390567399968758700193186137102188223541928213658831754484868443345503279791095457093197153273857081434760066894580725198578015171903810588085605649802413660859782817347671091062496199614749582699092087459953974221843295099404748240179060766206796288622075067080101782858816997755338558211932887661513966365858477031821402495281652218288709544863903155414469242453739452279411599067126801911254330316648352878998009431692836242479241713259117197127886743822489370114527839381200625695379643446139206965178464998905616066823255445454574761547933724424620083864656891108062589280860226647934951379291328823955345601207636430767854777685874309953821380187315305510347398831604126551472271203984477006065611619133109452166536308639964173659780535524684760121727426336632140319875241258018870705091625978988928468344275867613640118618284765776635015717521999581499572879478037878908177934702313212486666298207752161230325476970652526679996046411453664448980802213282680076648475320313297057398398788795427967964564376972917742307467941214126442552678405383437299946468280479159535627659202732497633624660652574719560470795709263062564407320807803880612967026173356114077489290581451474412021043071147039841794115844292557950193213210487695148840360406092032600484306273636252137578142328709142250626770817323173295965764041834212943932887596748857726227819985462836923724507389741529176641794976181954463154140759066766999683297826618470005109685503957307471040077580187844169013169611342574785495672570370678499133542618899911015260378066098871529800661188058696313544811418002134657716152831322152824892244577099987480788462343681775813930107184454278007574337142866402394189174396921437431650934581180969842864550585750436712802831767148820923927323316542571394214174329387872137324792453206173776194409190164884499491277250699367458068769899625993462033946015786059071915593477819326790644385669997738346966349435662187545904390945996809719258964854500400975016134998625116192095190725326483928784838005968711600735228576157015775518978238133000559790795742485084085969721106380185021649689125028282438281977234843893338358440479830974387440757718510928463322072462159956281834065080502290351894037150610758997825568817838003065711643669378373196894023980253659131188312352989091916733700371971687625654772907154333138713721806635784896051577694217012827444464143757446623512674241110174053549722872158945615289207856889555947851007566928132070848479267731679600432333783567876996206973092666283182044134939478958286976888420556847799652555768839656176201658806769098871690951819687648313410524831511381870242338984966935059710235390567297888021712953995789404059226112390902923093803075876818659817590819747519939068106829031092784974457810715303397438772958424148775621232930312126379602305699788364818802150955332343517295852984481908642673100854694582495899800984661641352993911567625634114805581468988808040418480627803547511627707747713992587597038425483884340566860245541787192144156185308711711546582457110116190384991176942173596548751887863464629739814526932473971614622393787161307005611112240005242897800867788222339481528030161198410588793297736387594789281621513868508553868595430409256762074216748313089929180077122088533536552254322442546878516983932483698494234598116872439809297539375229894858805511422220972087745177324161980189797134499144884812031115035397087941499131299706039342838750320734416352694196783773290310251741771478939060291914349937765658891871348479917384898466404579103679066126973015890145069337913097496474813573097515038692567792518518462462062807907355208784095332506638004549992097949740137230669551858265011570259417268539458291917111809139709756077209456473084829216222433687564777746957352544318452964320180857079712034823027519399805252195205603648842154549493744276213880219395204104221892124194873399113947506701702297730635219172647549290652947605740918245507090260823616076096050118319375216640817644336818538843785696001068015604537735983889723748509586820412468263645195862835959581121710194368476135158352297639845633828255001627968386918866866218219710424786801787220959018347577964861657279414461373713776924708079514182510409653816382299651919463852031616250003063360527234440596793886684963054353235417937582609249645394422897310265383846191661740247881855687832077102218910448358016440228243888291582442354825203028503052830055624721398568151244804049602363605106750430546523013499914027434224839389061935079114090289125073305606416820139595931939392255265597334298191685336527039649591143697864624329832999623313990042462657115640332977836168225577828101529617357805381210261003453897670123497368862328176336114589288726476765176950571884791531605529839116492426057285948372326776408449124743151155069639246500246698788584028017225907605569901906793908843321074720251441531030881850376939470601538726885116169304332465604350165597715364924055450920653275526415405078968135514729846972400073604241973231704759365024528148869111970429984342209431482528997679489802341488020080977324379790098452861272678189752538046594043928665718786108093850529814121835577865378521404366005494381770293757925165191363302626818681931923506920663695823919158021341164524830994059367418973112882884792081282803238404134317889107428106177790172756363369210522051075430206974675857031392112064800500877319161372070350264255687160518292330486712077507063856738783487276749700121892884544350302459882778591993576325444147407822407709685630665118470564646576225114468101874097362205206833076367087262621663171596590621345733384609395642758303428540394783149137090208255694406506425731316494999571223413714860639045922463998661426385828850137031453016383487175020877967222581078745442402872670189722400915928780066730003341256673669389692799400138067604890746164296345986504443510558877273140481720742351373920224873360725370130145448394286528097218831535796258601416681521155664151930760047054860138518609690223430513480085098662759763221104857903263819621851082394573747283221032104112822703491092269042798120624308646510850993951604814916566603058400563923113222462271902696998032091582050434151176960480822925601793361923263205846921019335077471399324990810603062016488116099855998116905257094854021223731529652107269466740405104135347967010564773936384520861236662389594088807105057418887851377306328800280608922547836898983618743252083593709150222428736618482316813886368669711039213650183236949867213071052330191160658694853602399249543370424948195843236067270797048869471527727378106007614276169247848983292684214095758201146589223745189824840882156934753886481404719583167351043048748176839678108285752809502086533414591015812544318735272411114996231922968450438026854129599763317578591416146146294513857266382871274549234323037455341043350489426233078772031170066601520199627480795728447490988762451651166548000888067013883448289831326507387846907570171450650915877706735434678277122686198395531252506539219148540335193746869476997191506960889038167038743491910332603935380953635693493172072037336485357389697473571838150171250045289051752102976184594549852676699356213232133605842900845865811400044458330759095710109210371063938965878384451803980579347848834275159474912388387363904888997525590784565099260112728660383190088503151694048234373514012980961860054987340585633291999017855443397139187119007315484006584357843485612084810465404548359608069268510268947867091866107964797783564687925193216755006211624544539985864184749349328500486625910379621563253696702463277316521369092122125274268662342766997615898043550578261282803564737316774397855188796837305338153193902044961145896582475844985917406798064355596342752505994986378035786616358094955674281984834945206344856806917704520273573786266710434609664886436901712234130676841596374834896336908960450188907082718792965654372422310866744105465461587111724181486251860001418734139291151960352519169853175731876683976251624813532851411322762211210503346664675492725426403521350311412576566365170038799970558449542469603127732675223969222431734312806468316126397554201310514607252828521004689977076783847275732863844638090661823362396948100391730482361419135873577002170753125857857958633855229900894554422204976325467174861423421210468752272810571469310389600275593390927603045883696840692593942102481650168445022030478123257225642082804874116143706392240511987786859211149810965317880291841890956240400099936524171109596478689438271186513449306977236943469612170285119333861971857353607343669620154815627811924616027332805381319016526110629569013463868485327409339250701606155259272705070562472169225555685132479472660556724851102813390613660318884696051380763161294313991246491359907413041888729451631482791406382252996026436640544399318670887062123566794537972451518120540558219453730469044143406164367975018733474265030482115989183432174066476381274126102069633360272533754979698431202909678042382086134580502984453128210979876500985032377599527484724806382096110167216414725768952735604844944442776282644442822918619857703715222679998455807938524194806818005318757652017584565994950223556512811271640900491809424816433429723976660846824501735517731676161099229766912819649081713204230510743071022055745893262208761276573964411926706313727617737708458648779518700589003204911922541605758685380061815407832990724379143284835901203892184819886787925808054429752741667691484421951012232497534869882003239554456738797161700292112769542044052883303757961306820985469820274953320277430930132833549624338700287563310220795981203687775419420468024204687266588502398549212341670206758747612433305434813524273570300164931153160942521767713848985229144532828525731521243220547057724661202994968454690513306123184086987948645466254213224893918340988863303830672522613449169086627775635522564237157712068493818644509797494943767914824666262979776083513419918478026695250803301279370320714865043799502932250162524525395903061290004832001389532453918441380442419582295530248707069983501252501073605091407195292481134553999494545851544978984447046911176341890767591578412890039018838015772852748528790877985294766302587463960750203506983291414741751805471576126008705532256333568398888902248737763514754992442671668635461979672726768790716807982292646537584668269961274465004400289726359128564926838683074135795381134282077066327225280236370133453908640551738350668335598905632923612394821121113039751154956545430167584124912943399423046127712602247727229945315080556048107373415615240315293536017326315619954896673144901532205902476790062957962257847077684117259828173121559068260775692350505007568395176608365242112566996371721791887218911232004797460533446699422099210396026088929173715471736245822073973022726459999604369441843836593665230759666228890589157460036518057760905946349304153230101560209950183134392393666787978191558336701142399724527332443503989103883327618441257275407107028020883288943441420766466775544953167414433282873040790666678758784271592477389735815498862229919567245140437599832320155773517003521901237736031493691465343877376245641125413518850659134518359359737760311195583376156925277464662314869934162349961354406358859283352576045448365029200178337577974341916986121647721313603600939081064926469084205755571681271244123909518266975568509689977637541007031261309101857308470515017513711437753175671896430911298076917218338363309379534423905637318769184539145979692456204096439727850409417483760779882591899163513967113448163865283846840122305739069431499594177154273661134234401834673320814352415392965139508610013295830650845287671498698194133291236593355559976702787393286801725674099232113033282277572955359304101089357697389035872546738114269138583315569483163967211689372083676435065347314125785710916419125738410313321920443641007668844769603846420287643475133296405098213963244476120740737573442692512734723597605272693089022157697714631591452115719925791934837341358747965572338392631337098601737966992046657433987911549401530561087014101193611391376382811661265699578105825098368719584189328887365274892896488320610217643470613859746041562498414872453519910796090634751684476904495336303774208751430907975224349900738677111345858224406831205563376773709690652691771805549338072660398136456955079135865780184252426481615150404883880214671974658452180206563037315662594538789293213709300787423896110244891998953254597847368660008421500072262449386043304948562670545044732798390968330567825173505186478826546055783955908530338730285083964098514181367249086225157408185724506406849337761645883454164763831294332229804129865430434578016632468122836442539741030386039340537651687454340929110725218074939468491806363044131310185498457497111396941907875107797956352689232475951162321622969752304772305508115371894778707786245446827194304941514987971793085902182579563876437819397592166872094198731630215819345772038705356536362601050931593615988628982934159273501829711308394245871003663261977584655229702150511675037770248577799666057610603781472245433768142641704695886296836700104628186637411999645183089480565365507168963530155495611981168845617661915730027469404473579708442207391802330123136175194033221060684005992894391489911851099896764853203148909517419953130362873113731593025619871741459123345228764958447961167719270025345007163580403665701626018750233224201740602955561931387786446818492251348257468511075579784612915813522712257839407673427868165119308035605333099940447406778621159045026127141205878132337509908315087702431651037301312618461951622562769881417986733332172716864460120882318928905929491640383354671462584582475802810275637181447552094204589600570532121787818347532431571950518284611206830874390035049941658166837417804297493535009925131228254617341691570741136697831868918467686907850828849203665671623789213867313682334581915014538082306715315372634205972959913516520346049027300810934886854264879661406363001364114239045389949564401938964916733841228649260930953564894050748253532006948940717047532383251997538761536919830208737056007561145996681492937506733219943132058066760377566358650561609257547748226088564393098271753614331274126185771413150416024947772320003208161995018848157797575475544182495549729287420567020881605386849333949969325156768321799426509978483525747657910526387873335616172654426577569386629666011215582888548730054500635164625916382458253650473577784194925898530920252309299374265607750557047191347374413710789231978901749803644961627980316686799114632838450863406903427841152587030957878707606833221127590136696183347169134350634398149510979967104847771391117452939085692744951359417219602272407956487659126808210103765590239596710164445134964453762693685263564608102081358450403500325870767786034153411338752800080585709468869612905040293957356411788737398805427520736274140101707615526805963549639079072755598757125588765600387076914464189858727114666660256926745602825192177287667226698640858987652602195241975877914136002647232361998853167850752802502908832474214743465038945372127770885436363000453272338266674919814863849783840099509627308015347700759269013844556980654250951421963065446214017950853513927305695289205067429011544990700372172446806473911929075617532890949573603815474460070225263328487338689104264152192526940662741507062416100675830809907165463165392906534976493697395092923291588390444525496091556237391895362311627646199351509972282030325766566642611718123713491731590613205345045951483626067192459376852741665971599840782440031108821695516747127339117111383690128042431064313142260330595524468039544848134634055814283184237072715651691253068434003700343472376843317603522675845692694021325692606669993140852899490347173067984544283964250167009761636388097904404128239679025637876005740806923634119189300474716411277948353667769321312648430416749643773185000781777513303700738630000408929461062504220443539327660205267568183837059024620960974625877339405288890149630841147358737607979469503034423242746268171464904319226241269430326363537677098296330265693423712146515806501940613335353587398705472742245300977008614302476744180341677600152404407782473878846903430646775108275183664126785044871543780893430339795599113194379916095829221795128734269616260866520419417997436403812516171066531031560405664716336066338457513940197346885286616673660178497219724223445711190828845862095987322677163846421095997105146526766807090455646973314494105379757027054501864899894970644995518712602414407008601379342269849207125455705973084300491962029887758710514805984751598808423805203645466091229834426797145135659402804069573101252764842883684143889447769272632488306368013831045713666144966415313548510193190522617599501063145714137961536702399192722245799606507145400361220819619710004304904751554694670995208453494173659401183393299971619264548963050088389055819393017557581153574414894052609173227102540033818084542936759763996680480798227622648328236116606911638395653125215698376730434245094405362279202213904777174103357816509993218639332426919122335189906305115293868779953514643121659611953016194511435800128744624494124088009115251141428347179300479091660519203672408890618234422575659144043646136688970748895190103352263526673752234632063539647917018256090979790345589711348826462283165695704229774821269535878899241282842393290585851997288473745536774623796161523690959260946807978220328275991627639611066186269441737595950463894484856487428593965182523092125845677516301184381734744135174063594913307374639406011792830188581434614813121267421686851166276010380540192435801424021349284753183832481485655278009289523963594383204911324736678435100361162653359681137047855259544535967319307113981559997015709729223150129694582602162107270664125010012876953309230524574469703251370515420414282797813529776542008508193643979043234271332052917949233751031345318731963378177692510021264588462006004550976008505939003293354290330638807156601777809073459622381758807772145931822524074069938139255974979258698176558248742371791533938370473668881394294913483881268797594503414050897824228331083681691218300984226769393484886609977068695046666817289562908534232530703372051116670216042961177745848797605193838311171515552560280957093620050795368462446620842010373099850875276287584673981457579632795134124675965095809056103033932695638390803626973209497930117262331936160067271253445935946062244459992234342105331797137142730043909457020043730074187224083052655149456929229839246012616305967840893047760443896247823483810761788834555983423569349612139440893793748124383591806898984856960238231997400458138376925265867267166567876218479332196939289101500845857128484496685111008257593590407429384450269338635386117966634620581000167502693459095875520437262353581533235387544257337160600058195059910510719958470105951780228117831656977883888030731793028806080419206074485052757190912204086574543808786472753427098022421562934482787240136605303730308120041874431320027734204252209322051285675297483822015263244486719542514913261952109238959828097088408174944958880632140950938679198773871908966345913173869567377952822807821517504956148352208864580553756123446473481257203091760568258227579497136429197044280221842662271899198073265930994665439569621780261807125307226967925078115363496436042316851243936174764528387059487747338703364253173369519972958834385827275197336131312842894777967406782982078138605965840017394157303002503680263137275352010142706928813316609664859213327833273792336144679901589945868371225817845633642208915224306588353777861802904557294209444565590857584676943727530329835751196531048635613226864341108302443174821162341816493577366636470690336687869183886351902255278321692772061064580158640370257864670863737290468719909055685445053401310661129736414511477339603995093084801401698472701334738322317778892537081718765464023578258315749915398480884462392825583750451152152023794883242584903712140655124246718766258051159281160539023177441982263207010914202364730506959823910855928457897828412308838522668062488285892644290953810726623334828075165334320189389942476104890656802931799124696578731707573615066731462809470053282029979940072272383279177976705746585600736683749286771573343300724101963319689169403510972609887177981993318570056198534198931164999017781858373224612219200999292910340007051538347868321416079357685644108822098493906838346357452930466305560218987508858100262262384237570051195697327894407121997412950307010648167011152360991141080322373301755935905706599586798537245488756239837336878947202602736644273405517431377424169361109733025802946779721462125715449475739978424033767640501244450167435255368376440875209647823313176117922017361885940907747281279166509808819249325212866609832298327308467774219068474231890479360606667329992734412150313653900835612685536846601711946948121405523954686443541618394781906396426325687139207206049568765490281185181832451380906728903677748811057420313014913492437733282362167031574465947424513118815184147803996427133211694136393370319844647960246068648909626540993375022394134289724374726689493484164767891472769769877330837830663500882019364847634671861821991542536883072970333354515713505614109949518617153845014527805432526910509443060796010344189730533506260387898390724201689175073642133665448164663929489490743763571990953852257274346751288384517585082621755042245545461854242473090579097620071262070653172150216057845230657490947109376875898482688992733476752229626907844885596859137930421301450002258553757509949433055456545992996549061004519294023234565837880275416280264082431920880794737396451113408355346017770095756736924940170153347733917798089249430546184942136666165679461064001604064258882343524968763257996916801310468941306146485176067738013341520968959985171173031485996582529941823740708412845975043550146938208683698124372103290137056949849365594091009006550136518376864346372804365169139715007622490882378524212703121294218197283145397864547772429541563740305987204276154413116700893914206177451656715261167087681646299980123965710340727728997050441119200969584514222616834497227767834991823612836841614206947533815931461614654131992522524393812163192944162235869394061255250723784347855332173850922605804932821326140558802098954353925486976594956846746802524140476951521268899614409524193924371004036427392233349088131893675232283729099434116441293500162379508563966269637529048647745569291171643019213828023752200330900139838842311619538755234160421855676302164126466745938353416326707359019377128944251222219445582918292906955878849651141416358217696348342590326091959473778246443599831511692753987667065758328873554391792477884992444660704492117945397144885347442217555040843874065211945433360037809237505256453071315088896718577797447131239851653881108951511542373337887213689377985139859467542080631499503377324481570049620923174273051904051566161350256842362550034014333009323546616380259375907025063956522287078597999873243811014541173258887702807663253867393442472872689436659748416604663141987849079436419854210957585879144997139309724622546015547353620768096464353722483479155947407420773343168822422098774082087048545241000896097436528366128775461906192363712482822610224139421306993583083556781705606713675549162317168938145549215960411960786646544312203774457633736168517094700130445820734132488261360846842196759586435407984072683343300424420797933830614531861852255074005678348117143014089846451826891544373545306472150536856221192614063977312683442763434583702994811574177513918025119901157822307437400640321161045556574486275375510538850255784158552065331561722543017865937768646529934942191778950124475132401984366115186360586594494862658131836400835974096317176604853240475440369910483255597677030072195397822242317461552884952900234658239161673584649887788624146898434726273009663718297110445357613531731808502797975672022982407777191660096137353032194495094691893426772283197213731068912286260968762214224632046254746624243756259841654468224822648899414855132458129095657567715329736226041634709896058761416424491969949136164247761389497725725820362602409749763545648370038461741600605768305977691560909725850187805192246358419479525449771896079807329397970486251633407647531538139152088124225781657864556295746583417547113663983151992287526425375972376374827472706379056497702090755716592518002034162860812871038648227446097702445806738824412696448747528382014088122478201021100940544599730852790169616209164877553533877646866903862973565000421516568757491472641017067290207527062236505870845977332260677107031059816031664390382725255769425898939705182446720575455424062978942167699254258954492148720328339054714964595509370986949285316654692528045783071799179537090633659604481889604394924096489014193037175644001421354510336209370725452259655923920242805620961703059325970732283023349388562843045276285252646954595899817032061150356165941149489054139565677262233630060277850160788525387209209787516148940718522121883754169221212080511821531091690693020740992581250849735256852737582768811059296843122948670633082566438203536578705670794042029296875041078715439686972787028823962034975203712864500361918841910832491744057102056720494394062164080175565122230600844889470838388914196542908310659000409361338933302162502791712016298173873649546456040324299699369619192299846167769801455857672775616903407827043148355456525627007867838444176951180104353015897659325690166588747182062637427924560436606431633056896628695692394618416023040267093814169056900130466331937894396504900576816866434695359952322635332855264065284194928105248940096134188049595415458161401534183180304142260674565900000052293218625261541343016262993481232024478265184477840454872677740805609445680609232639686536387594788884767637838471330257587050173453654590451512855586610095893143133969766847214226410039059143597819496503609727964248268618857542791496258996879025167528993975781251974813261286956248591130286223845888713535027715455354520530867946691390340236351885531390200662231854485833205778088098447702438772500884893906817212026616657243881447618142381473542264514347381148496317750079899656743872877513005941350870499551692806958179561484086334148530402455671100106163080896383751856063445849758015602445941316120676294942675492200954463949339983594247284043160865235949026824687419643520492911572420166856886195180685298539199511281003071045111961787798791440333592710720075963127814472667353974479497053381382813729194567078670721702935995310710530652059824546599908619327134972591233592008317211180373073958965100419774917768303547287296637327775639904708562142140203351746041319495640395085282675248055334396779102592511446289295707719383381765467531422158577571566301216004801735591811967362284779001605921831995307395424297731474308121453704790644857344798464578377173202488489587278864990027123752357284709812103738598041280305980898853407178408902632016119815244626950880555435183334085261003238477692408592476207450207007415129545280075858970796037322248620034278393438225959154614868822944602974936232453551295454386447680000912817286423950676630743961038630164985557286381750580305867773703110750851143974149337575818007351818943353075490579881937881257966317188890902937534896310253879015755501623356460276493593418292841581760030916092186098512882330206937785475174934029488229843219466041781153504753118956133307007939251070241382076960840835130156124795194410452576709044179637246451187169630691775834038779379631798529637669691185203099719323761466666498316524856073535721953915026896933269315487223547245979680514721591292460223981294988782977752907201594178686398446751106933361783152526286771490706218782251828347785312540624922248754784558931777707644830385000740734350565615990520606584484221483179044813039493153399057669661063975415801259518199469101579567236700363289956676006279784133442733595893019454034524040685442796111547585024882605669448679817412427454785929536548523651998059912253787796494998863879170348436574173839227069422138228864961000091188934434295682791513104163610580941261372671410784364184746453911875982811050452037240798928909617196584344306030999809606951983213750083935895384517410900589377583649005806128852504512055622285460883240845997320521070531803281150331683085490437321567193420096304568103226814763513041207103452392924155306717005258316994773084901539079453488955685016102825048802032053289386413350142003863791791873199090856364329701391385636530854863127249567123637026631624749721141852878474076112290374971048154593465777191659882548596038531986042792677410892431709590012412442977638780873834082222832706319752167194199751710804250743667734300188784061647424563881537462435174644256814136008437328766966368013750604768926733607335754512674439420152938180738161139503310326437345723696071386904006904778873554939320950700025049812751330070375749394300283430580715334624790400776502729751101076495964728786032841222917829459651903248781435983046643901899640631782932631376772537315483849833155432063788921506275788191351644460605849669765217859452014067895737767849418145398716999399863796102018639182632179553952470984334745986667658459626523323968991341467222722877262406298289900662254545845983631148548556364665444046680133321612881879936886550383570475724652395703502758002329841309512095588698333494702938926943115141510305834810864176227474060684739021365081695593320457399189080181297107209612646886815974566838117586811504684109452127166748221545689615530154502723939815567622299552827007628853132314013954351285955639799198549909605761508485936015638317874737276094880115060893127610186009908450704691744675163363998137200390260669296660533630467125539224759137456112082083140939333914842055553590507746736927888044289113249677959884619647690839607842285846814503122076891760643694973892977624043683256982603641196532468838719993924172773664587468886905186204498152585740555309975088582656850754194726685336689172833164643812132798317258639774937964774817628557963243579500741595714443566336522312999798599035448998187155630895410384939633794294554741573830721750200054631033321028652315583211667842016883113906139187596771490522218747345872801500681374723823626361880498620911963748988651981716968443662231041079503260344708371928042408391747895209762577002081792174089550750183716132617108469016838394410216178016910975179670775133509662691949481961587476679498974083076277991054358839196890405100594734575847823902137581715282132210005077149584839804301095976392070644155047139874194502649202951353414543446318641253552322538127090065283335408292977617765703585415278454840123172915446476582473179008685161586419229958504199493124078578671143722224074722972531261497998002128794368145511208522950720129705078612200564535536660942116041898883026660479992301184185680682027710116887253145463019957751836646984948817741609600319027241474467669242048978404716644947228257308517699250283030680490144303211482358171933338304729546252219805954401810854373327633178994276092207900748902138092035258250945855984690874802249070256095757838351154834990606664624218495150394590611946406664881498226192615183081666383012628081445319762277252058290607618493502878946558138795358787121950140160848206311033125179622868996884686588862960656680662597152246463736161698718017904935802927241439933391400002281613698806615752689347807336096624729688947746977279666444503709089148985233732724526704198101790526997922984057137005899671342501905865142645414781448358723432326287170905680217955164219424380765527502467269463472236703849447181675598878233043282097902123019157682135072030456404545550845604059907726356809706240602479505867866976315385074811102432236871469753209879383222684414516419934830371566848456112905970835458115807911968022452452282854339955865673745267491667002386671735094398864848403126981687932424250513177621421802474334921667147390273390386364002499006414645577347496657562792330068139300388784896568417145710835189739481347732209566154481998373634146936431502000553051991143523266946614109270789614416101631033876610662874941710795054776085215814880396127480772385762052643533155857788498731208601604096474326891500630306038127788818073269889174593017065040514088842886607728189059400681560850208036069612091743272378619523403335588329628235848143497191309231390611296783184444460503553544663661238126294295904751680829805483697927150583293409064518025446874043020209413526965838194893116642937702416112016837976658798062867039684023136084026811347322488243015696875619936443645260603898756499122077620765034286113591758267157868527634050738475205547989015187602713007886575799074186702819642623214963699252464704114079057930954096224605774535103631268242423786604074271367658630183466325153395935455934241120173374589102666911498406474951494335055152763887854550240457206777088015655583768420297697280709485682554779284346102994184299845702207566399687687914440378523230344374846748930953389019858190837413810860280394861761466264732735058097765445220696203398317190441617426213941318600318097495374421799467538643683194183916617399995294228827509369833629449268391483870110783555061309003172765904619267446327331753904189265767154517030372871821932258623136440257934980967179127099289676257527199853331414160050473602323791838885129077779010738132289087691985135489270160712325797666641347088375745704306061550833812412913837174486841910432383838332769151528648278296413516354278702217270431157058725811326031612650262740431621905830480859430650466545175551596512032314788924888163075309526772157004906880254762266151563940005992489558220512203861595625298624253713400220800677704602224173822961682209510345636407531486191361705096130435891171628295133589491903722737726977637896475245799571715019452933179408179553444504973249591508881635131361044761409879864855681616839116905015863824924630402573832206406057654980944862363945623175005834256426294920670768926929929549720574384814033696078016983700675370928136336727878345875174476035735297090574152588266262430454481207003606976299637088914887383620113416887930084268093175175211507664869819988434243558995931844812434903063453960607373854171157077545461453301684605109096447438722674446199600224615782610244025480679551113798313470260572309200983177938997964761464284553936579490371251369483386544980453479216896866252340383499769414757754109889131045009927889677089336761672551123177297390929686420922445630428206171383095674102612473671920727224482582413956177052714765026490587062645628233049439083002691341603155087118089531327843533284282345494813354645205683110403820742658126723123130637769124933689199052957930879747183315880689462233177237143135659731150278597662130659707926269263793931906042094657226473699097078854062868379764850260566326856962150685579337660654823134166973622035264463665529650270207175247731725133943180326616187103813323929362652661433062987555214072499669571741768321045622497403479393177093711786632748745969354827038678426321251797500304335818424188436661333285789949668261580943285985185310407993472177045180114339076338675578708992470209132054719447912840029479628722165967001637614082979230027764906862718558917347701306187248529235909516149899341878160314136014909481297174998859135316573210612795668545744452126212262108010441561782239339954487377360439087766688902587718994159475726382664493980435097233413052419654055121531190871234627904023237235861246736702759647210601532735497734331824574517773809057340105712235783227490505030715004630634724564896899082142006063579017372963715204090573440203040886020409332750086313917765715107851228057997173473126146072753280364173929100960520779368488738030488749539048920240433659876715712766254118604199163061474040423419914430741264455349128347856583114543142461683189153587648438260801160831096346554650609457040869181499249123951063311520171949519405487343898801631419214404071711098181144671727355467528996295131200296022282030136847997997583122941674402858512044572895159189893416903845604701121213419999918350575694727761871403400672394181642338065109905074707566768168254510863067415677447862684619068924023060107717252107398181034707918639205133180827929700767640456865980592558358339343155674360016191847272527979111661928858497168074540815621087096133969924449431823667226216385930365686546480405859727152850984672146693037891653823259608928903075251992617843652272963111660144404298251012195986722468708490774313315437079695596849243364630282740281683237997862312403025614537294913364744472986272853328090348342815305373406820813022590649026917072881725453719380148596090248081095159624883661869779832857890832439014986645261151906030623173698415457078907946004782369865156077779200394052778382925915695261892889386439572399257959798549924107044526261661917338742500232534596147937674288599075188018079364899598029573759587820782002719034409667478502888153887619193270013584402866584039341121441008394970853942080004833993411656933609464334756837906378805492851729438380892792228767061537140877137040878031980224818736846301626350944193760463234644838594070689344701822533643195573825211482017077473822788104537656841904007995506301044773078260366118370175179849731046025235989768923587690131324829224873886369612564295275736276430888496590564823641436695620909270855086803520351268909205216995485492429933106073809898220442648146731818013961799853584124795475558217837891115592211127579001354509974906087760534986245571970080352858283278638994222236957061942867549799232280656531754369584188779390739298276756307882624737099760936637535960739608160936297500625521248080881613302907865069689200875640600438064095351635010473207578914112862503148502991213043554374206379031346775254508110815986762750966764213523448963772608326819313131368653611823281082118509486226394376713119439267023284397626612169225403489097422944058078368051648130550136724139424026655596694371453269573766213663770789787226116215602253608328714328732601935969131220178595106346689448106616599161960172413986816230563034725722738847036354794098019962740791857821482997290894521413551660316367670938929525329489229802615494956507198809691085608274066648958352068214434494081866787791323142996256868820334539254265862972119468349158094499724672950923344259507953038678515296669132626651531143024042750760753751464109821404393798862989468772347651916177181124008130640613680386128281615085431607891666043435368827744014938100637411000485310510897610926536706184509459139664669435371589226219479681242403544646624189048641158505677841187448231185260831317540850116430978450529564727422939485662531587858410085503489100594771330888386853276119548856286968945879418934246520397429860235390796191994167662913107215357815925367868280004473312603157586396064919432334937268845278880494052237364934895141831886316612670233132904138534086003691760922347328916983806890740502832292247522112113980421426508187550133107992202097262236528522831160463174142051363053219881711862356492075091262606760586317219732485552405956335596054334277729021626360914801368233096562115768767929158769530533073883137202067489519213665586282995114518437785088455274490220635852939234204578555450911481488450486437108387208577040312341671949353123541918922939943006907461613302184140713317271257845932902022269546487991771146805273685202422086973242830442520814791256331740127839255876928305081183354776665062100078994402434815455019334395056422122443696358641339623030707178973394469046632746383762451349651724333650903935253800220137427585471041621757041571015217520447888442722934093601979721684268002769580549207560914894461559778207234959496075737777212218356195732653248001366223487932697470200748099113155754148707613940814186727807628978103570942380600301083710882446862956467388436087015889517324477396433447156181144424720311152351089720029152175622476436327630021892827311516507848516547215131990409426563634050477160239250705487284076401448878269599557783044731479495806323570430448367624376409039997091757462079582011223931828228796215887577509072836338386843373027935303194326374661221529235444388480623005797578258191377277235504200832847674807667290973493372787334197865360301816396449297330818110351993891580094456238027098381445371664703108742888056614230659846548490927524006420977127402187116403383266051974115015819950919978671391164933486374185868864050550510187439583658015368674622196029926058733943955155056184370205812340723669393790416304064961582176070393280002866164473464531376296109667798237432755169645765268375964236418913830047672454921700483133798246877991221247450119694660741826915463118020863289520239739544544190140317403991107112645079345037971594133663207773840828333760011914848770825942583154493206957799342484551459164729509766609726699152170311301143844454973812601637653276823812287921721752137548531940523034033465683027517129960348015820106670419266295299525676153664277785007160289396697797251717218687607263211613244072575088646093717126466092267006548835180187538791651894005568845520208168513378142561748486045198218963072458060447063153708630684213411243135889734005179686589429453302040469945965823072959045397945962166551603113745399303429043068012772489651525772134270945554807787593895525206857528576335234335010116000794749267399342124961697253516178035135772704341563075644204892896708342598760268854941073002523514219204347201148322829154791794784157865637589690273256658478219384870330573169039548230146874556766274406220019795029001944934192029171333276381844945665487770078960528533512411372066117237999200267156801684132984384749223953405048937659363678505157855225828324100113582110653395326999809192763451790972248848007037131090476037023394644617635694138556632928065164431878261251599933145544071070683693344923463423508469467647313577988409885152512931725683814276397912926604319711495939013295933068063896451870208822414288766761799858900725070214093850546188680784578288133673904641784971857723448930504576798819174302026720780869784652038264925422799129064178200928971447620508310227374317357036156875283983332390597352723928114590124929817416535557161890267433215075048218826539225466859802236216509739163529713622040198873209386621135447603440361640233647378566122413139446034964005577129132197190932399195733157234579765347846126481935963404808853063772256305360343901712270853835519941886507227527410538571400739128956318346861145741925187217460777378209802284891691460846586233183739127467680930186221505522023839740528306179465396016809597210735938993106176648770818626889251844592479338593342594943817131187106455740996744961715859901764623836687098394735242628283366206613642165993875086884336861571418103954567061343809626854942145488798885589987680663720418697773205763985493102416399309582139456412887181286968281209097424460522657266093570318397893540523706259827471218348441294422199800447019501397026429076194253178655386796496829019519158594989123172895272262990797290791322461187581125434809904849453057292705901287578009523497032578286999706358376220152566942553176560186873514994463481593543985388758390976398723644576174159093551024410559602406183763286895667276957606891098245846127533172086118343349900116370572075744400234745046128517865957842067279632676554191778220657640873990497910257955663562294081464261614083366441788002844577610799487910257806911357923399902475166650782982435555296731599845572894416058553654739151445182887224170272593739609266318619626986854085409224164190753936083057108377991376968238787530697912547709179539582004947078168858761981745529925365522543091566546631828465862493724510750571902282799813297778906979168143290966285685744302709486094537882798632873318904964778629212363905169472411322402524112649591322278309552136531435304791953346203167250312920361822550445730109296171985365338082058068104435271430387030692524590259782344916554126409386929688905284379184134530283135609984741562436224613692353383783980210597738810454644430012733780398080206764619752708420858198296775624719255573193875443050977517821821999963662648660176978958462634434444784871377345780442106433208563400041384246004867904738338751445470796374249101202287747552971962104810508775711419298588465272524592632329614143822646977190057886282531676012507713927488455776599632645076067826232634271150613291040557215070971845072011518335344211909016404472970240430673205852702807889168486243740713862316324661109019863632475625735921079902442668839458602534167762846179821482404075904797790935564881013262304025152892975792266910264351982776011705651736723870238722017124387263932286263141441561231758285382676208185669361879983318361656286010732278023085630138301132386126415043381771984885147712713341858802119302386853260300985973061156242296939155473945764028325862313043724446160043889962265361495198047801172136419550904207731089318705033145871734391983511052369294854803574189117917549736520656597318989826191873162699861931073200743965764955325571772016660307165964669010534009195641657397967007718769211432703331620905455298001944513436177883784745850828790851838368997682052117484088101340851337544628986072004597361828434188482235475217443506776028160678213450452186907174294218781405103016657678581418709542758934995862682830505491313518256482831647113842645185627872970901533118259245218725531171029811807949867437776386114162039355207538042409596520710826839513982756223265253154234790907236617489901317670202772276762648113083223714200925934525272556400690292117820549252461776456483086775931210446653825459732659420806231682888479514275838799055260659736935774123183574912046026500356725909264636009006968798870103133792687497194358741374157238590153519612647845543693225303419411741952400875566825916282515329089574094728149387238455349612866520584256761662777401126427130179873591839244365512977702197737553468325369642494487010658078422092416900178337656415784844633814316232079743855263144786967302532766120642051948882378847215721331365801522623624983302833167577218552415076441930747392411063832555266448360775506546708418749879678240906135290278644357163614492327154566205783080246455852513577789797641551584395793024792616940058989374118043091983504857293832712342558606778877110609010932020063117010060680160443666521236041996409299913080385404777760467229960214109979615992083000521831462976736277742909908961282814677057577987770671121456077829567928920556026913554897412803687980751585865771505414259552647491021740460440624990254083750181430951411473949251027654898066839940802589275560905395875687076226331384164430696439132509711366512424653216983932868116313527782797836511016719971749894775831674953022042041703796518984068101851796757505284339606068489794905759177328387189444197823730197843481828995331459970091587200668848630320777521170866107420407061660035196334783720373316487192477760925908655099980955763167923221976945318347804130206889371990657926728574007931947741052663508360302671506384034963572064915144305940336193977448986672730207908926976312797194877290560056418914907110600540510066189516927294521391142957046624889387205311950657993137418609160150709139647643660131924000982200301239747799263735432135839559676874237189001509971330295667346967009031420292118521787130501733092548644481115921114502761054399692967330181430136359736087557215844349786614602282821146989070847585318210038409423430953750973699677265312334431446587178376073936844772410572189606670590371924439036883096075800164809878222416890435669494506457159121211518051708600048111287481172814023919312355541759648835158720214847203232978842859911339481326249658345114863295184412678647635843753975408590534033465111440913852864653577562552124604738472481695111831491230647843361084554058606878701573693581885170802901161004569656596502977265482166155158113704048990761988944076061767604946709759792168634298930881563792527807642385392296538636886626857395297180950197882662721378232292133082078062760761657229890488637918572189801835386132010278351644673378300164370743283972170178915570572074886171834822106305105901721175802972111673081685387773010588872118016588324085877429328138430304109966942050925970779814580745201439731993183450211207591814190053546690173446693609934946483069754571139453756394107992815011631342109162451004605947450419853007176654129470351564619452345784253423932799331031880991574677484732973268935662073387256137649445751988696359057213656359145170181743542734784885105238470381955052806434520114291429619421225691322548344613465683215186130211955897859764834948855613183059317469608410555228054195940116026666323422261744793204336178597280076404701935653231972226606412233509889629812854160652189801045486681949001919593990527254132439449270482864642100327682895247809641067607509210125756027639095572272738934598349465223136392752754595236548021741266357305006262981542875939742049690520815275767100046611246407479032159654340145583916348058961677691915987862134465737310940782468253848645586977699090351897453378918640648488361850864792027183709079418089652947445839055456046424025480119281001746865243932173327292595908487080053805631913286492581404032404920990995160687358396929207904605323593454577501724522072902434444236243234046735402878998936409279610563953233573809339330809098772404472098700914564395848743512001207945914753464222215565032925074690981279092438052690027635628780623288735980971663940018537792302418865184022466073674924412384894410324829644765756507496737589690867782893704198487708221666184281674313270912821981082640650878108985841740424951210157335456600005009388480580754705452824021691387678045166417879944555070254859591965855032565358683483267557692569251765374445492058095828932821430378644812146793337775625515825905803269813308384259917194279200762688388072577578719800272546093439486860586871945888227230547932267499073687587547870169244817612758514049114500236680141384910907156815055135619372418049019513713375738289435656956096882679632010684947051701972993369471077045798097981626717689881748354531917368699331672322501798758251773133790729698278536857073285498564029784266610202437175813365992156947366602716859657287298602884257302393333559807406774161309996987844636357682145846288246785878621804468502765609925832044163923030667967959236716208616953835721338436538807361215743699033935868639326506349022940445648867792571456366543549694032078785607725392621586450043755948751534526612984848469228894514312747415281156600472735448814686571784767966402976627596655916930052354249279471933644579144113478214998233043769236158728188649494281982566754559687390884451377417789828940912061353350398634974385742468347081359146763331509078962414137636472525851757954818988127087867602251493297634663532507618654853833397426527368401206459600310017378641630499540476652297155898376809297315636812411201474833671576578114817227790327299322995192200947096826231553795908927759328675349697481872835763064444843112407493963223029871945837798430768758771156158134197121055285487412079887163848154801565566391833238002784757043457070392578095731573187678103894576581101659222739060372079898362047158755941673583036316217725073120456169191901250004180667488912582138673086677149932026064406856174807795781075315445047591147279469509001746700816184877701250063091218215382053547269341679952583963160013482530281301836206120032058403069035321251332757718631100256775590911330046607688453862802704530325894890938582000523701253129176354264992566737016597988843720301130916677072598080750357772759035705986207407190707768054107985049448653783511120075040092549579773130516199902738850159820793744958698245785653724888297758042604937194666806862075425353988772157826824574095413153023982523105771936378756751804857215463492485158681213296474438606270355266704847827827407449677957723970285377917742128449078252930560195024765317062784423659025347433765400395200945919419779130701625626057868944154481690284804224926472599942700202934076018866290043284908778578943100878748805634208337508420293137647706345473488374741634667404333261925431326270657963997218258009394777836195865601251730679544067359706009875813464143531822481363412025201773051642408537793326787268858637900072711012263437931821431452796430143777210263044298958265042885981624266711090687707259371941809145286702681148143081127849058242586871005278452576957319731834099466102135447672429154517282791389550241112504138323896173706844930937729852066296864216599899876696180657493579873070498680756159123662691337049629548589666294851949318379444379579014689113619127931925334722006630371649980663609853340536724267037687449343292953524797289852750688133823834889215938057602529750403705089831015014093734348915164399209467990761976755283812750638582262779363088248007083580964419844105855563943215425068751929599241361998320453687797700681520597655983302967510190865421302730624177207145790883509774019689296694416061554063407628624744407873141618147561145842665268074153738775992062979418544061915616690602115239210042991229226326930115309941648892460064000176732475597675960806138999376182580059180491867451465289295886916383427757197459392031290693868848041940531021335589165440860750459610401172789820044751429571204475515662377033173806190133244739951911022970121505071387011718578859963478486791934156986861625361134151417695989517619120796793652966151514790589929078914239966571328242358277346340865955407341761770606451663042992489644187903893826760520453185739358988029514056222196844479501128471211237098838488894725985835037015331520513443414411506137032365373226295678019308668647995642359220700421480046690810532591447948335967073888180228929462918507138585226645577473748698333864868011517291758864734838851932806583584587246147772096340400229090930177422846028312160256388994811829844628443385656906216634116583702930575182445634101329743434279246684733540489359711349588296527806195759153390017356606968659095155286683973362228902352255316125486313379305436707314793082964384977263970928316878869609220878272081342823894204980959763945072516372840829012044055708483053859533907421702685407258162336268497480110589747986989577037796660965997484610031291404443305491990524110867383677631328316917853637204376488724383852508182447532655171595274465621484657223770147197363725328394443767138360451845300523780526505099046226407929915290200988215207998522144582113370713847253117088335872990938411501159683807121886971723749280268624382941714911461564280868310193608959099034510394451691078542942660145771531300630990725028922965818521886229662942904148522007025702066253373366910244927061846968555347084776478798646229612627602422987023698382785993337927671752413947635687196939684283567461959906014411618969263329234067377469914510951417439715124148047931834798994426974614116789236355301579404950987297791701434278361031147011982302287244474209198909815369016348963600280396283539941363854742895032966940841464793057816592469194968467915652412722289467872485077184768405208748710362848809415834587149723374014425989630530362198006644445781802173254418596138550338318350317084931806728973380329656351538397270313422430682519397381242336290032686388372769634352797203599875375132213392121324919340821577661536242798116834839685585585176774752400918509382112071642598112537514778610545590075829796996862017445529518582992722427229288105456924727007256878079258259972874004510190013970078832853440245039549162632402536208171601751444996950335003118921007296788434391575882615852688796661442263522831395851988113819345600533886437750722195335427596154088186980585332164714413204564906386154477940134787189465754495639520370096855416941727063668921479821143952801544414160461774691850785292709466985930758943154594187779417326016719454991158113988552093428491651200487800554592851148027679495680261556952277119198542993409887427676474744638667097385187561205009462032555630273161075142677829867950803921983514505720101952639695782594691856537536885554586879728839795084653554329474586149811104898707530639860793352465502489071968079014705400705073747622252356244091681680564865900295193202425200921809219502173238054579370074848191479411196117093329770150217280810531847607538405125976171258261430203413016524383847486910983702856602784365480432349239440016469036125772374841742717883802226658662641505225127806215899169845804130779766751128039449588019213004092849089896776493373359501794366085424547497932987898677390878003796633111214321453228891003789043078475873218060963379514268445672057203233352104318910825716715056234496622097729157500106907766553924670444938047433835068796877031331625071957906659546808038261808094133922535502132828312097362718021744936793795104542737137932801308501657774694901590721694358593962800572752480595576662781659502133476264208716411730623491598765039033952851272648476584426162852916788910120528966487205189334162167859633984258496078850656893221714529065853903172897530001823748913540519532672487002448949288885788032579708141242544273379432410764250842569072809186257902940594818105143763280076308924170640373326856513202741402543897123845287941316890817756008902514168071157550973663691314690270174969567501304517431802636557903365523727486137152615893016213215667463423478674854784836534455064106869677607705599466183184052124106962042590883073324428445468432780555417945305090115831840667230315509802303776254558821719656683715387086255511793902060115026170461302681542650698081640767704020142473205015201582057311190072913552675475447571847758538963004129086591062828307537027837532964563628971777125116974623079708212723257666603522897131022788459556465783801681199879162674936621988399710992854300372249665876426626800666947143835426151969663439499443863900323655665176062979832761516494579958386135997171203533338845871767733172450163714107503501785183639014416824579073162119925427867054525190486397786129431101932995355048465125431485475345390256839846957550853289537514868388016465548643442017212542697953045176959463530803890937523379296680929749193419681682101728156979818963393552550572165901647844832063297139882527830562414636231157417443823811874705267495253719772847502153340459650077284552030863760304749277802780712038335381796271582494927565389652075299104759297944817525402054290879911542472768651692141700481832766145091974446052701389931972761507771323501811052233280040865223695594142959673688109872429132832758837578020584977951305763087870094989953818428465473987150431208566565626891670311986588488966584711679143001642149969129357469726164541266753603195216422948215329024753696575401152080661055653533985048070946768723837726430439366389391592890524337179704178919144755883899767681696083268535413634015816395673941129050398044884200995884944602760130079885007365015025847832823231678190554491118712249489523203997682772128715398568113365241146370734132788974689867112529747394774508374631251549570659798473702360705841730999957296429721358492941410374915901352837472689210924708193087334533815980466573419573591407446189016477205632108100033806597561678411765315199017627601355721313145154993380913173106428327926912713576656662626870058360920165973995418636594508634829271809814244449306529345918775928124709405770281102640518046759619781951833919709715934057711809274430859348137336786648035075379488003121976656167089564038590077066778085143492251558662571506692469384156754310041081706970689855662189567882509945302876733789025587892504958697375014402265040218033935361688294978565666575785294764362377425469128413730096657950090654515776893565603385578885700106441044680573667047068955012322807551001017450810830852947284838367868859911066263020490863277381404313575736458247476547711399193725251438752489517179543205303126123677732678268597256311444092250389196547472989762344952685167282155789503991500810806201360071426142792019705049304072651624273030838869772445935386647279184705472736634686918942290753751903242860027313407758532089157947732805240875604148965256154669644388765183730263454089101678440759447619841016174320183823018072847031527095949701755083370635550439812067771678359585690512792502667614709778072388418923940716161455443642405120024537563302902860888850661525242116736049669991261459306837419034286073339361899629638417202073853753464745210910802751171896073597143885423358001112648047037177673121273717876032478519965732256251036799537835233986830428127401976962812728984436306309371807539065825557046942519815510765598523652379843474707108579493790639341231270767620631732488665406465321422708592111626018804903620495916970717836358780504167581876376193975936834647004248430244716173366074587867692718415038209638468069608113936660967406214181970259980273991174981435807598766537378271810333276112902008066229242557982653249904729450488415088800414404439048980573129544046111310223880626573738266517909584550055695263028641818519752945026696369776984058296111028458187902402177291951260366540143281836916854957576276267196767660951977818778892636334167104438915761700181129887090189868804084202268953594929892855770679497982612284989505986926842090725701568641017509086397040468461331113130244040188734423330311416257878616665995103392360849991371471724344715827882837869811092444526268289536729471013467213331114811976503236483751616296243363808430359911691520029293103879722236254594529591061550174468356547486644984344772125642306326379804684027179934754447569826993042037756484502060191859394964090591455221928489379900581720436457056742717442805321621450189538984410716666972610740911482733815478321763059265453554244292379090052357362859829901771482327184982495516731957838194939916503706314536158902995213121273353391234333283228892716606535248650751717405202749941760993652473183700003315034682190374237785290100359533337448625564785704678062712238931957923480957912694859894085073545839567750838432805269310055642458312419730101491015481511866716544851258317004577885888348766681400352528540634202419736705562989488092658543811803367201125975651788744129655987150018560562094077041478697386240343763412068472588494991283238802774784021525765186191991783290130715196427440765164872472285849070615513052229076333223891841962218619003723440735898659010767631991466843970404743052132537641683941699444977817039214161579459856183389195146829484675954954887811856163695508071089884075118511744010975674304819142213392159315099518168286191233120754056356313834365001376802162541523761784843970241841355123579344163673034473736607721394104835365201263103362744624001158409811989836381282699279560119627259390562656387668791736728393611591577690213052859930959772514804432443894246679716343710162338507384324873729833348386200250273882723306866765113063770124026013956225327545804380301201391145551052948341305536978874050483773252905587317873225559019652205440507738248848736805697455362171865569713343201873588633112636828248622358090754952756598435179525828604551988794454542060407762637625678181743844829211343857027658107323003667952900092667307822102544565846165872407703117107476846777995529259782224582032326718388740581721322608016976126333918656039164031203775140226045978286656126789272561094644984938172590345355227511186368892657288108552030641418474090400247344166513473908630198002902552057130384418703887251499376795293378754993755122453499959448451521696608620168117693828544236190326352566232140636572699398978166157492442461391275390191154829844843281510346349472514803761596097817724793020592341236193893128500019934280044137981249061496906456532955453438066887393873562265105401199582790861493222783595588725588005856043374651752767760292810614738242504136788519340835132662124030458424527853492442856840845483267103294159236704861611696397699020440041679832673804102925804803096080144951949367057403983382300821468456184709022635702805328292413099953056791946666291056964822811751662039715911682564976032839092842635177880033425284247978373538054009596124650059129106936794654573932594517642848492613177339068303665549016171377428074250040870949226652763350336961794748173433521294295439580241855007688223219916457849185974822569809629918338740255649941007166048571037666469354782058107914147513468489080027753270990809533330114715288074955892783332420733579914984773186987307500279753607161278154327224540158008118264108295992969453029538753619529596803408990347356581674235710528373133014049870409858071974247845681230170716836446979200744801923465697691604738622053811766337486959853016640983499054190489906625997863873532408010216906601697390482143770035864428862754591372066559645357234385229169806001397617771061476787709059111990208234879218171717627319817033141032921026495952312676886650267425217737745414594786328661366067193392836708251469814801420474445743514661452748662528429838111013870830893445942552445152425677118885611768462568493251250920156119759241898691714443986856434052916081952240778779610149050306827113453519834700786164182680683450011780068891245331583276175560751420086087794379303406903424404359619447666348741096586486043320956371014979550178864396466377336608948101555991140667438707827535160302919013957936664103619767176465978862715483199178790539569028512565317147924935322355315549320374835147156517960240441374331447271011775512917436120391718343441174372144000028538247508965937041732056456624345178624839899790857997329637399681154363262663815376923807739918286837055618559600701067403729947991074065988504104786373065528268899361984978868457386171803769923651122584152507966938230025031026879341492364052085480423306898833329830741463320477442903096735738913720288923734283991990554008383267519586967587768673577081835144401086080855511717740861333572728821528434238322308116599876844839533456915291689248481051011140654370173698162529183557576912623438253287650125913249540208729679584582613535668487497665090704974126563034098241245628770951907972662952690732602622831688799430569678530019784474950015592006089758665036435944681304877091256331927391945488464541825569256520769455041809546533344408526985669985315041542738746548780138739746782666730902484236378632062297719817336105878446886718246626159999205927573798410379864085668696481986714980259904440462194473986518367338837599342928843478308392681097775246129626129971996007198167291960775910760549604499894488909171732888003528700114369016801703397753038166049470453512856651382054747800649410864893952626043343111294641139054987022239551317914826515208643231279318457607760874122386261556603318835345114399824501342866655357083470446699631410088581744767004414754672308679195423373994892169691764604123583822912009062400000508568680490075796605953038261086332657026652513529276924951243670179418858672296853103258264546841041111561749515074171776569984008921907794475352795828364317509099463499292030716236846174539722366947804693645928511463160245196557840156701262998084711933919355294303233742924239884854614716243587649849627143750955168968696341450590030318464652348170075848858482889441544899934048832322267789199679681139951568832290326777647909969013011030538693361439609604811254236267420278427806485692319741883585407777333752051804204860214100409991906068565830099980930682827897619261897090136957639671814702000491432842953820275774865411131133601513197763235352548635231486026099292424046665489179252058855060268711925592505438066677671374843440335964341729333997820734599383328214957536571830476706878993414376763753698321135814599871153794729811022661496716779785217930332376005603547816172235044357187358328538203654040148626249363940284230922125480484700894921500701601145852250497647146876477584246657360627683767758863740212322190584021996485450908939372323461181408118261264005883727917234696142747597442828199234176374724933000087939989298092532061018159113614166727841167459399079897872081675203468223379949778169084483285392652513128032029352529935524502560479526635381264305413503937368952221065867966473386653733052560795000343334706913032594012342875748914841846249870435304918035968590567142034712060181187499958618598636568739917864186538995450897198802177597937248333296654356913119366824461046196806202449633484101364024977867864857635335185486281731836715427250226566616435309685195809114194539698663791950621283704211696119546763382014539656824479500349139309998322585185025096947851685892851265895476109837823690354394749786898040802913731781775233161176959816963745876222038133945317156195594556065531289753048388211053059215431342608021105925771586106219367274372398727057483297090533873378322855397131885305959827322403126504935250645042512927325485004985220527686221028474784052916967103193342352432966876429308653593755645067361495513415999243534065404965744507960300861842034131944230494279531648860305916790213796492153824203795244704490566635189917150453006606633916593928178822524842224826520550863604042210701729830643196886374673345051411575396095128298480372261281567386493881418906355954685534586931940700846131505069288348588225578558217841607484678809409995526911705311341560365926804600194322888691969674840954601507917266352343964785204786280496323071046091445131704512441863867799581614052565085023905752179232269545228604331299596992135247966387654121035732619576295849154152666342051950930513232977455314366139888702804108731192394267357770592393260272837675914308205733576429293560209136629155923246189317975384906234624019392310137305558497429568814003483264087510130512064884080735594996254877840956378621946361760076986839487634677104230708368213818924338412856797253836314975881803674836237590656039207206070833843095835849592891150658445967332649742693496305954728684052189122214062926649379023547614462631805643022862606584702742140047171496945752413468539097825774286431032622041174508610625481585224619751319264246774912415731185646251726713575504254742603877453666263107176577326944734641660835088229922490766789954677895816960513927015470612355496294142711225513049852949486468077052402838633732206951703918065195252075688678827629020689462185228168099299067698016167254772526990431524856743340212716032649107091039958594349859341198593959009232930492717886235575894675478031288969623675772413124220250417825417115857589282865092651905875474258675219286712913870378808480791552180984031658725690676802164098538619203303305802803292425062006874453599525018115251853721586891252019582366014470742671978868333771026808657899406993041096194704866986826871789349892573506556214955984331247123948019876777044209704037922334571711225606503223192359389398062724079779500069351722578876768405454405007756426857515496657966648483261308534296198801044440862079399958682338130992863127996096032139864531418732062741670604743548166137874078900338940116838649230974323410109244130791965450966236609732237135939976222888182347923801345229949353394589614901477385988997652811433346990020797671226491033003956548272383987781949451563570213550260916126287816110214836710179136429484827977345069675177620389830139039032584508231905998202013915918860483636071977305719529722229276226792730755857569280803572585321297677988028110131855128350265265384153894255313304922271947364192894010899406862061731773193840936084121417303796762797980800299773850113605144220983637225831105588084026848253254503370621056822817731391871721465055966628576741617440276891949466939632448047392577252385657146811475582933926708392146381244200723852929207225376546423694484355903244285878519234924009901966783789212315964197157006973926677300139296821568174019866592742799015768954398807438663794501176721975106452587544999441296589901351386400165289560733157875771336439534699992436881819873145638511509811311062462415543359091247339808489007485259923198703107159284334681562904230660860182574277809080527931775726571426696475214756035722743563031713442762331629856518052353206408655037881520374862864298145527543557694818624679999748103760322947847023941464926354354908612864727100410499920594953302877177848825729283462057155202087415048913989075218899375055967813665435244274608970234353668405554287398065438384554996591565345701665304076544390347788481913829792921160336461637938746706082783723170915790842427325610070949619680264266888923562350685522848270949055672488869833815902641872758705246697337400315021434995890274208414990312127726201304916182982222514078772670274153136681488895262883045374123617222998783345853171364866158417819969097698480235560848663247015026168133566550009992700709791285408185303597359738714336338921395536327121003796465887699432100793609198928147863353374351100101194159981992590799451757283648771606101978352568349870027655561027111221049745290164129501738699750559262140411314780602587970013772359545168708614657560947347634453836614634967738590854593354924571818407764119320693472339702343368923398711256021121592897920022697802746388756396425001717806636895527280045965540621569560237756537237295739257057178258223405095151559522682143851948365851550073919425130216150264607665252186626372845442859811139718164107091599662205639570120275346835086115606472050809339485373249455017079723060336710666366478946096539024580328655386463636422504655798612660870006733616274599686926286723244655383166822074720620477877550250933443146646727691558767005853204428363544200942096443755443752173368979277677422237038976917027880299535344977562522886525384292267972128786372376431400624449430887683587375361215967195659736369767810577413209921424756881282084657438232753493107712966255006401605230129178837292434785551652952658537275562392407770053577563907077795858959858893104329508160495226326753240143784086038127635092793290047330596659257081048572841774938041466465075269187974465161122060432913614617264933607224321382817775793492596681989331439999744080659730804455234468995938000315851091722508739894925551559861868361741467179486455987116999278892858821244775110301614532340049458457013706269205998109965019841744950925052784552824310027523169048175078275658617872707022710318190417146090698069422560269862730265064756518498909349901436870419398762999165974102080006957493358616515968731827486078499235194244558412199694978858045256052056397410146177883487153413485656316592922334210456188011369337095035256130783563757911940166359978798082307458524606481078684461260452138066717865830038521650662776624741082796155103088013244481690281525035068943685615278201402082209514553881489505093790023600178213561678919299948653565824980052897354556909351987566019321223011565448431719891012214772732152654925340336992086031384570294484206920197439747871212515428733555176181266317399064887106009405369109602270999846563611233755250360310519361836007599948783901785061988017951436905143818256695473907496767993487820518910208358411898595316008274682223230355281453152669978327040250820825029831865700635676094518748285052575254053194501853350947787562663439300899682798480205085148808271416462225351783092662496574998497767715094267094025971441881716340457844753312656619315098409537339303972427639104752977676476155724581361366686408347946856616025972140164084488054812308895955369840516511221504946569331100325030524453949547515969821732566435208402562942466070592175643294873065800031011696253337220822148464077122722772206456863124426069726017794199553695596393814995618106685916170489628570702368857542031953869718134246747636361929038843882571749307080809103366811832077593221539031369103356198261250467300842019050501825654288630003373687746103898845924654774341020937423405385912004203926553159418682179078454681304304033952251253929325211031509472177790191785829014701405234033662572185697057787113291958604722904354591166481850633102173208514988116146383054839743025444793997721198934113527552673419151977443327407747395360952637018887691242339901909553171108032269612822674482924978519731917442402947979695333248735001255289252301374068926503595739746165268418168813071420797765008495002668032825615377301002060334124018297403546710273414808038209613847075047476125073738969897900395147455388123321359556631595081027904519850213564151904299205928238187955503593936236963764586704257048978883847063129583209184297327829923487360536242545167728565511475255257282673482991192668171815531967916358517362684915905208091930457184763734187764329384260891256195264707171449685533170464327978355519198037174738286415829886217886809900635620701341157137954279904216175499720273366908454990250042478785769664380001656577297847875403893758250457351759563633656953555067408086864190255763306804232377392703940632628308584863834648053162985943528517352235997220378190245369321535278925533582383858722706210531534135769538372641924262957433429081847315849080802368090328810985487468096951042154840878169680813142660342385405261183444187872305994918790632239646913224614075124821717803170455914732166970932847342333812828301813223256039643012168676846790314283386122617664217802471134437438684213747416661976194525272707347491649068572898744395223533050907670409745498594742027489358587367718122435951622655868973464014581815699156723778378308640600241818610237642119453845527969272925876870769092165392726315291913198492160014983172063147940133912084918185955720752909671233370182586764216704873160382678940873180626669010626385617058088198787057514976176568164564063547177351764757784396380723099720305631917489318851821120039246124594303764809475479535173807829477639271367511744305553921406236223920224250306340002953332088148260415009040966771387112562673157720189911538210268593125636990893387585273551210176178047575142857114343449316061641848750579442074566510104230894573131290334276279373763701854403486976849293789676584053250502966711119644835288966044637960623817744099497578084218978338820221024914015832103592258140602697818766267030543035060018066322624957178397398118448870168829379370163613841235298960987546757968740574161439782389967896464262918729921551365726484509916848203219971198933863443186202538531964443460341358254819568791052048312475862322953454607452181780132247341210636938317006311549508878274031183318799445919378485211518210945080466197390128067354095340194745073971336642695622799764298752991935030574904880827426178839756906617951334994168648340014936846990362489511862444985062052095722036747453931251089454590928061154307356747638283804524101935219444775340958297232196167534961090771895363677923823597869693790135004331131352794643816346236272535547071541396366578847607024606731887398705022241041381373201999119328036468856712522278398955521628278290256375688104432281537018341927529010808264158722603159951135412232534382298045129943402791007709402960897506306830599464594185933848346660986971345725085683154012008487749293975212405120032383769418943619248621522017652336936947150679450557430847919814470017643257559567244822632344119222822321873609086036767252849878344241750625644537820084531931291970312985889255318021936400026711184133829917339867467963302323808920907002828819976416544476881242150652125642831976832082801218174286324618205324892112150162412416744997406510818992393961064420700857410543947100443315627956336581515367596824466663623318867612408727133315755447499233085960930217940598218974398256954743440941756588621846295190728813304324499121832222640309134616016689012742740225931325615497308476696934884555893503893665302511812486012432438285026574899118522528093132642037729369889359237923706571471664070431129974383580136266320024529374399099082605251099169461325049980338123132515075084780889689429962708742272449389516640148498144953501889340623716440100832507889415834906573876965869144689333297236881669122224907150736928007924762214279864808461958240460836283779897855422017944914570538847126232882819456979840957226573832457516287776652616924515151458420867667602334750921613565277765732097436857710710730710668646008340916705569717630659255256886178118775437241229914577004335892624776817245352146476820057849033955229324000047666967540529553093024988737663782919582138783035373968972220280630870680144563092972589482255228171089424824419588696087119331619359412844787010104548928784419969424722368507448556017912389339387192767755653925964188501145653542718695161130367628766484155462516198984257617434430918065490811751449465836933870712985104491038401833447655334801508603061708796543782401339457026831653300118460344474562392686248319222899673112358517008276876657035375252590980372440425342251759459471388754335457858071660653036735906201580829080834609737854451994861655017923006172470621026080065850765211216894066306815802513115839339461281094323288124369405543124901487032509595292800245580356168122435885399606391361029112175091586115885080925594127728697726911746229744301244512687852234534455419921104374636665676232913428758264742213247054788261861173826529019279628344200486366154426763875811077090908566964535358860330734973046822896146650694586222149334034893818005131370242239862289555764478838252628586131249645525861308940386881163206957546363249726306234794244949619662382798183935195875199798352205047420176875547689103240488830522058325983686603458249977546877736474257219741455719152147662576615950084145712386096252732203038107334165421622143005906517575662853098751397781163368959948639967709706961528505797848331094508462664861873459598767415099379479418899495839967466439527510625269357866640709444691976612905870556335149609324023547030927457562354950405640460400206829014576901284652228498406850047824310843713519718913896670679828573562674635666063872097223811232636112754124792971171112863539525700068396276144193777382259037824058273663137903038933665469682474787684791981250115591887625413228847146464261077646838551207077357184275039014501892465189151135882852902545739936588834123801925893179793392546204720548640612887092246113953260427874885008611824719702112293152543485880541271603087296004091586459439886153618410551631359227024492946744059522473649670113321158229625496395800307592093409764894798496640045434887305055686838584377851894693059909000067584453913539781090621605042200026469546385843207964433418111488115425472737737314085277748391028833781260952021067221129152000212418205359296076941609581080724780946008539905558261351011937015751673827279312081866006099017999022837579922582266446061200765576391975448659832964611526739104916159222070640658055269058899930993434737222487206044127168354285884769754716309779272607842502909883418320629245546598269268853707438700056414571364018834629599689175408567916333693877459425774952322672924924773105378993471324253209249466958899494412799532757267386035355170834046494674448629474072397163239993216853311400257744497683676407554437993481547583215441606728207962201577038248745952876136962942269026132561895786357821677657136417672679554170192073476787395141812858086340214063529525863335405522536373860856878635958362155495792457501345400765735764833329510619531865983293802020209893751999958189491745478046037710775296140014192393427661906994984142614414275773845085031975909772371449435902983053396494762064292016272036348062445236088231028990552735101791287145160711999409056159136044872629332866624218900670131170931689977151820783811324036966992730947573054237543912723801758892492941204815364239780836041547392717030009456446152177037418069801106142681178650915578622877742336500194368970644402534788930018143904238334151083594870708470636761565651996695025206477614054013092871742365999254145788068404762800998290355428466500563888172118724680306251255808839625298196269677148248409887542150479908785657130322517285458331042325730493491721086072063264064986768928331351924413136120532883178592796739843776074050030921362964195335986454620697591655610645840159565509164985102083015624197495324289256463278957603214065984916735901600052470927055746376016321923158987193805173683885588027998080018026484995536856676356005285172641800146780993071027620011958479757340618914471972419270731117182896698864543975028555028980455265747497110265280008753264514573601267740585349468447804655023735527191760705712229840842217831347903887895020551431265389823860913638260543279133186690505521445489880545172340470914333700450025025502875970643196281261385560963794001397650035101014498569130711361994746212712020576719279623940519206345174693217945024342976337885226698726448055489237089776285319512732649585710607833643953223250226454195148101262381615438456086068767557463680748499415858668626007583213922516203949579604972078808559889728623529375175706205799562491589426156210780963954858596652999208653393193549408858791541447412696346643540787352408500190014711333092154857106705309668281804979474714327573519239451381766243461610901638418411366365598382661263041592527889548217649256285464255776627584332801940710996006081861582956332225522371111989941059706062769396043972417553932539752619965561885911362870972268390662665182408476541282985060598481975144438258587263295757997976619521663553145955155880660620592704166665403183662464628210555710303357852356153748408536849995098716748610690837346449821250172528680090779185106144657494673372682635692601508916524749537002173769764260989301012466179610757040066063009283365798768452751540472378089308627587305396390070984442335207633732140254414187668486718705737149336834168714640030698258858465890902523143360738839614348355075032216984726385412102255169031566426624604683334434421583680363742262091629273500832393042987349316155104760958341162254234280719972173033980129192753351725143019640393152912341172409623774924294450261405846682597710408198288019595199136528363190686565518226969559575351238625005999700667741361161869281183433007075367621716982926612621442028437180887170544273448130031100487172271183104047085459239166271195125489888119022476164840487472965965137249682540223931187429419703880240179777101136300153547282957102449139785691720541212121921119534881131081700987503237741469374188516896288225876392611068665315471658680537299145062720267951443678085006419620189974630069477148030447101221188830746112009821209737802990724097369363087790636060714393585991593076015853841161722599263726428894244103686979815196246401708119575432739956220187006513510117412683282887109476078214792023689390229478481246398710970999788208558351229260456737288190623867014374756744462645640530469802740866187554599504490324094292344380265949040068132317836583927227397069874035888325100350233456562110785516664223037369010067014096725409490918398884690699577052965688534374302766692621422119276550260421525777321940220316356143645695042855674918368376286857190376901944472130603113578454706260783062078177173365234019198919377843631618506501765760993215197281645437722453024036125260191732963616048388370442665698812355448197403038797514587816258460518522788512455746348258699183876613098639618358300337256788957339487292977533349286778499327022197301002874792183370102483543274002854872533984686522278130110169134923931781795074655828750652136251529848904438244214651781617871632824617916843021744371109285927869098320377078185051968868588538798597702962429626949770068430288099618634273264716990272860336177618189539841974986749959870111369464882017383199221019442611461564527702799051474729430137040293012697136666842911466601806963898667239906468135116693058817363120392276752910261417166458101881113121616425533122368182712494757637368668982955654638709326081275139479908012981901214155190055599135700234846698112160967307993807332361401369168815842584446628758347539907608483993669199819672532555169173939874979201182523758483179728773786171450695776953755257782838150593444651430373253211700833161073725572878329859283340576666661541357932493554008725155523045213006049050439827638682394652342598766246233113144552085965605605114514071105696021506093005931417404240098968443044961398459504876254904608077839593706143632472971003523759476960181895053977810503836212848941525397292500568319315995144131507827111867764662108501969365891748244814978765169589842419047052294739651740555107133539076398904189938561902942214623394867342277948684593636241571044056251067303929601681577669155167813148356642479708387607063768851240131876376150154664410162480137299628525751631355972687991032559997215089806853793524885323797334967597326320771826307937058253174200763382770549839541341251926477259674088094437828216779599248031456152482782363250157375804445229381504406142734261395045929186411276650634378827632416024912181728515886542174281006218220886238899583052598301742331164133762554575754746688392788621250111832434316643847303814679364222513018716862988230953110306599984874103525247982956104113813517946167018018013982375823004518447832207939249396665120354260738902269609358604088286643949950453105424095564675653222261456151938055933589616784514068215211196888728934094244689846026216180325536897030322986078993196502050280637757589844182892763706156072447878811061431948324030847434456293500481409274096988145381816723149095963697340919540032057693055542873485154323901206870928285767515809132347628874968449399369328000973770319722588677874482655083950284047152261656060371240289776340661724776214349409296737567501475433775437262986585660380200961925532728928553900824733406758938175449957300205938703163749904738664510601466380062990122383514843890380502294249529846483515635007621204067082555352652889749247516504440557919964035872186892672002202686686051360195363121147894747308353366591019068412289758315726476188236349580854032763383672739730094119368778790859695631029214427346898581579820719654599762069545664583337832423470534608570056118106078670390405589217869372999551708219046522534207843038905550247195395570649373613834576750114966040332867057190702008645343881486100228173473340575119395463930320145478012536823623972855393076883036464602271094056715896415708503882525725904875908070773215498115837027372026538724339106918241366777730099381278819316138425526492077781840822149589757530566417508441175823114137669687910088859145398001243748812878426117482148995187124230787008071520153110841102038355863384883897143272527220510778200844552157006899962703221515910537300953146240688694257672815109383308124156331676283858574339302124796909326118239085607501909910273699491138479889050950098008789732823055151052876155417164119698770036699431234060911207027053651908174003210613711140008042200247077841956356448933423226397027496143014890106264350071455262137999820866880306966682987535824939388305804228615388793240417942235462010440991684768166713186422005287117023160394814124174806197207893142634142663546749401261481775998687429211996638568549302715237667659554113374448082121272403505168962797702357281953107314976282872610239789748168136527195502131825356516543459686233303373487712052397902765774539371326547076765889801053593394823292232065843334887002002487034898107284981087752716524676000284808911010757092331508270944178869555842042443209614579451747082470785204530270010589918948559470103650181639548341996072942672037246452020661420651999207513682587415762368011438069806164516128713760169205047222233183436132409638031002624342730656715849887602742596227984939467247600073808907973878968214139859205165605024515196437658638566960020189785251291326517731147409311036793981226993046088122779105706049020057828174752418638055460578440786377525473217466783318915340605466548642975131003512681093872803008963690360957311797713719339723331437417030018434311866235530457767668406266922210752767794845791627324025528765324136200957913846083150541956707913928159895670638911862431985173026919738630888260952609786298514999111713618771144746763421084147299296792064046904466208923700869984567400016011532992316014596737901431583364632940506336581539484702940109679651088430586543288715890433453063320091505291798413382843582857121505185262561909020457715420438616677521496309468842701041953791580834696251693263264075051782853671201361077104611611847832204896323241253795182311889686869996641977741484361788497093891877241343095421746353501604866531461234812324307341327998126595301611384384167971344583562339207099970953348082081486078671537036437655422719706174978892859664048215929574440759539387118879911543859742903965247873592276671449609653774450251289887539415621893240763355217757426108684363737758872643893354019903545160314148060574940770740840732577639371047901427186986823458005339046400567047432091146331086680043372081740191926730653790622871991966871521811863352183000191083213117272585930252486526717675214228884033852450405472316307072037940807452825469281311846613844218549154057462621964240089473582607048574302865659538512499730699430569711126911229224308343437488388280666661214337737670704166094387249006427806707316211499226989464587634882547516810391679230532956001865138995620390670036093273725791974981225538167409794446242187460904629576657519020401199746746364620039674024883677898742736284154555726989532251176709633882295078564086096871361573905656665794153933805724896316869294431143615434085206316226652785801184703895268226323114792248470214698586752858450285738397712234805189007191916604247716660291663383328150705106802975276891728569966928812843088926509023021915804827234406798901253952078708522139744607153494424360914677884660422790788520686794310341951685245790987521154671838203622110109207565891578591495373758708815178557463654584773854676877087946667979366195403234047758640262860115752293676545196769002336142019333176872386497856539065090478893281739493296574691952660494537139778021957948206803025029293800992529602589987818591409767349576751784329485892701651738016716375185559444317599772580844675042839445705210964562720446695460163455793601396323661008548226782810832658989429521393566013243143131348277990179750466829887393822697435772319815594495380574638930901822064041906672874305473675568196749558540747347292306385526717727775426787794437273776485028870905990157886212404783937071142123842764197297203730733257401312632147439605889176981075330140770109456891799010349019526274866849502897120776461233857062506180552585384952458243420491104862265483643375394526969696640404259938928685019632867029101346984746032945512476325774373164265228936899051994674554565035548169431204125392823453921643513422243264374542685421398562163555470220298200757817961627066816709160374322997469646362657936223574756082047439802050267644896938586403143638617336284257209297989512308488046229480510708605680286091122933771727458317582467293789953943846838294127162040937377890036456666213258862835087059019907867420980042417102421333975350331114737554924390783705684058643323393541035750990311916770796525965153349202346944360461418753346221364877823750060105557451286071359502754304991871989227336660109502834128067155646898839195725060214572948512470395783756773508048338827566860826891384204261705401662342899307540795929130609846794178670930177173645896628545708415721075645692574907273111237384016644120764382450148823206252742298515985093578570183547853311702676137133961024079980362228457171077196052370946764907206619968610847698166918989811494031453338726193565919324523707877863796008113132118821232671595636681720171561129866246871669720450077835106471222137213786157459653092812023413264289928779644068615639300733504004578426547850283199855055527723181383649449514194492341344937465654517895218407597915177986458385803820260819804879210333813439840857292420145023533628698370717581801816286951350456972456948659847764490149679943156357697211189019065578241788763628250914273610545716644381197646123087495096342913936883391555537779605486313754584886412000880714285368710163391420324365394969616804526180696238187415771658674152700625377435965727235249868062933375417484005865791739168187879919263715447983026195744068164052806128286395093452914922877145210759679443668930376755376598805194567884431872206102223519551432080960431553546895326026564624015584791957272254972485761717814399090973599742060227393907090938193862309993613270969639024304590023531117272153573567493589644066958740008203482916906227320958091841517083440975586921098246537609859229210328393966007141963358234102397426657862193961615368041782994301933238862559797326658466021528255594180016073907681131749160447286285529549082318383935015658246993516204749573130314017002214532031454347528237386921143839617042828699801288861172603150131608339449171967125502173826386150192173077129180566041286043268919114337150332339450325217663880329343710202409401065253721919430424764794537361490112001230549282200314234168562572266376153413178063297798899613806319688593795287535307122801109728051787634961756020779675359317294702377121406053259149951778169010233744389057706122906051265826613040536404916831703838142432510623455447900265215768616491016631515899330772871378639031492937878547800874399287461847949428324462817332258176308063774150650016578810530983758366726543435941068114426791500082519123021131948759759987315135143751658420030212959868915232755268253490822912143180529496107058392370057520653328711431880796806859201755502453134573931943182457208598975832482366408577982989024181323797521161536400437180786764585813481667287436324626430265730467867722905920200855476153472474144571227730602502982847994676483061985552547930879839054855394614644309187869381497849893243016691824413084688035386573795720110526760904889005114872843026626117582357759858308684068394593852634022976588970087154131978397781111539894899231062702735918293948878817743334651727537857441592910138999062334294216110869086198444958393257999805063416197017756687042016644473397146108712246854844240969555327266042980994059489746743630302220997814037024704356477124423333173894876035764959907762639541467393589771472950240203150461967564340444145317437080434656703416231189241684422896719641881348914630525426089693525494767765857828197848725935336278003318631780271925220279063638156916493123846019912187733074292627469224716226956501639323400561856343885243017580497738935705062408096840918610889968264738764854832160383803037135806593277590983202351287985248258313074065197872381345766011119557200339168045549153762313319164549069952014789071755119228995089123950441119269527948250079030683455761484672072301438446194889606132245138872976130447173324963430153353150298296645391000378822504746855296112807906367510812014167827453018109506776151093930755061256003401810109016891444918220607813511619602989650522939507472743384391820766519656477996973169236403567873852463889974081107761580211911269232521396533059102221827870850803959110869303240021638133603071009436548386746177921421998785001673575329592268689563728289451887869576500566906786655523841585362855285248504763526186369735880442462341304167189357752253156056583092168200001020265667342700084094029652492887698913235587119712890711599267477083239316331343766013580402127646879835006650410797092342844127236218068063423327302314573955464564327530567680659470200661102810158077219091088780496309044388396343415420704903978000764014192998895259671812135056011417075081852852638777312749961597539957112376011451844824933019022996224564860228813260102127358915439090405889389938131811508924939444933321194818865033410786832615198976581163259197624873932044529413283767146324899671057579849858373098942783174390040283192776753239897108116807371403542043674318828757942711659861729214702820775550438716687955207059785428369118908078759410446649061980906805233791283485971568781097286971909975021409281097681326221161858335589885748807915276424865578067841017372466379238552314288981314720064890501252982192820802097652806653401226390686342101989759279960074146725726966342271737490703822143792754484452984988370804910259067489680835737502399266923752358429057773342193717575901800747280069748595540089098885063088787943740403035486558990810793873435910124760472867079210521623842435761789120732845147711578695964504997119450291737746450385254518845294387285232080849896424017723215796023017563478584926505926156625214922176330280343167511056199351844622723300513089297393449249011639492240994076209433816400607547459119494520673414158374954038892167337188575097342537438906834415501060759891078083291603189233934936257813341079726979689622584217311995206352928780338802988510630547276422805783759805637032814270047717323448735389815147169216505238240001718831670704156937851734945699242896943897306963606098348094399243535663152400235297110853204069385196109588263343094299880278477124684371325504306083343176881943741671022465738270527675981150173104808185121639493208482875466169305370611798127910360000957291972404588873873356475139039265668556748896228758834517348481302152174227048177839280360861113341268072652308492257187731995042452772523157912447983510501592386134878454995458892284056040697204800206960266082555419241787970051693532958966792140054463430807706138583222660896200364360702730562160939964384993137072716110938148132105048970576014898262217556125360527779322442727174344890385948909626763224992263162292563424398158183345382186525965931181117446756015904998106889451824113160185679467334131874668842476691164963889834361417761365942282147669310083641268905691775996466243656980530361485146165673916688258083655183848452319771232526876270754198584473029284102199215730783660702861282809917539075938892556359569458338571932174195356681745785444424060674513581378652407837814696234100629380396140149135692159708037646548079271034580293643361062074338927305953215632936658411582479898568324470947591434541947957991130893262682629687988485609159817596353597679517727329279009575503678599186460476973297012069636265733482876862063787282963451311355084489166105754745541483463696102654195849334152981347378987929398895402805502499638958949620882007366472043999134222460883416950874868588382160742924957459873609465295555077128317640994022298442293827598827423573778610301460770763728450788162367639901880823851008218862518287336459308880071732685182834235213114331322703218862701587657206519764115131838020402051427798176176368592887493100096950096227080251815524351250746487357835733861260575100925062097003874291904033929287160663799042903427258395968513196678916584182202266968528390731501239821887766506291207260054485874830023774711112723101013439242381237582005279126505596318271177584311340758993624319647930893794768933932303561674613996615063023537506857218940850382700263749400347624081460729113857256110930460922996954384321746262628804085757134656318675147256224514415965117346176265936679477875549176142388158803883596112066150240197284102998075640740079445476514811522668832307362921024641913105958422156815783676573684557876097704097992492190711154218665092871797993642177509951829265826096663714102630087174462763487518315797856071498323355899003648164043057641745381202963284763561181167900497208460112895554491546662201500335665456631025056861051858004397083568340334658904835919681300576155920219251085772013619303923714716887761014719071055081530768207142855598840863884174327350919458600057836473489528263770472675938795415211555029935921677869148762588234187797526961307800304156329924466495564654469962330011945726568788716959846804522903344412319814665236583606281643412849913771038520927497726272527303235405562294724321850087955393809142300019411528391785658149835505121808839025586547822818652822289585901363239119146504043571529389622129009008435466877237803841018985628857734373077885682993804156723299862686755119094343596447043997015614927898519416715668345975965804759413615964011417367392526056300653793773023510223581797629337525862228553832396929324600028427880439024165082252758925883872899266350446073654736091021277018383989525204252079858066566072194826259675506378791486405037682528763107378561716076421482133450365657455097844432377753936990934102953121073394943716780139903898545213609804810894070094091074470407284724878931984695233869507545094289796333168930867527156093387993703319729785579239631528125025491030364261847200127516851361528163386052439417110104388009422506151483619667641249267342498384256143999348482431995073108824904773162236085086889332862529678543630124380992853654233365247929641422748039272699057044895547455028214401259663277159749822681365544693205692033493356358137297350772479506891812942569558056441228351391742095244441095080576727320063820039097462105479187862600308396538879083506346343712604307675370196993832743568117361297311092160416932612291450367570644928860247504907809657648357075623458080457060308714044826744354192505481090549245440660630452035639726462962179936417633012895640651120458501267673513324532893195632913358187234335096191688667494238661348961219639888193952207026084951812574291937655574059142345412308702323831106387123086565972348745442395535965270116981639302786854010531549729949014148015859690809166194776499476957178062390761772859826539647224891082776545997487460363168691559288416637750401635434664197627210569575771083942706081899964598338569559671461772719269094156727256421811258458054212330021221298076963427542003489231876676906410922403417426466578962165213853387624177406638072521203839781969422464898429180377626892379398844336574486394195142179068468540456283392736769142499864781005941838394305458747165550699236734614409323177966798237861178613817366496881827807338096599941362598235375454950501324063534256989178767715077863655396303724669364276960141275647375713890004478029842857137811657482387680464130403056936167927910215688241018433210492846363244788118839192146179177327402802799933415887080155971249307976890946223845576167937031919951196733545323222237329784075325789460886141775495912643585370710335540134161208135669104917779252592306131167610092003536247247017580527956288545939196982466893644806603952484762414338997929302871134331903270969413781302842353540039931249772537374283803301156812201962664151506815560311681787845090422733474111314590431048337606907323893772588907968425858142282856672091503682615507255123426436981123680471472679020781967106728832983750067372971717417646637143971161658548212319724312289111064159608464801142984223012223983380920817628158929386150177769260081145975689933485509113364178899117004209992801169507591196332486360736346896881488884214320695823234021168913051266408540286103057600202898382234981265439730807092605543333675039599853797075729026603755440064765844870095026919054841730306206933709052605090769656906336766288222328448764448822766600562655295190483616877792466515713205331402083178378783048067401737309303942726326007025679356291954730341840553249630291536415976851272166697989520320713760700144186233360216114270032863634922017959205367527365319154649111835115633787084756579941670822435709378391611312369823626075684024846410981741502820821612888025217132525948304346003116045077535192208310456153999074793844848837771262116406928312488219248629109352761749523044640907419755293657238849036448192098739394543372430752693823393735044252563896840913558923916498568913825592189924408660354420199949693107275241455527349050570133602620399837225788697834977889649954925247682836379551786242661080653815209896291193217469506418433556888679892518940541696242215654139406328143609028261198066394668463922460861376232959003727576831606668565055956323578771264515889983039685818258158471186503201328895520742017921755298475265939684796736766969985810305112471959953738392918607163742832687371470114538438418361121103067000903965349697498358690336396895164449219748638939477251396736524477121857287985746080415299322679497279704900369190196201145185460461872508702685898990004548008065547790618041760431598997968469328685269031074790040672950543390101559830900476629457928284600335644045603688679376546353652422827823957964621805632104003771085287272303543292293623818855419738288631439189871386763514623608831639102606875409344853440995026060684476412473236973940338163673882695484515025395800781117578702631796636289270209925135227588436770684669327379546947261909694205538653052380773472225573450385367418360360965515491385094806943464310384736167999981308736107652891207238581680959665109135458393250092520094579255186007311303295086405272885693704897888643067044997117960497526133735862767706059397110579594914962732265721018582254056152745401374609952522491315956515692493650229637758935011454371877293544448077138835974133398675974286383545041150414778654863134303971882477736986976639376131229127732701341037335072549388994958164542418006966343908384056704930050625962973635926592491870793607668173717718878036652138445631271746165145471579398359562458028349212493617977231161273872192438396459243659996643701676088460255382130806018000027369178465471312462224239030860961088016668345300636962609949820164489180390524469817146044408646265953163910183203189764680742167245003657410664181893252056008597009554277342105233871678454282233026296033002953032778586521048406948263491825718570922298642863241860073746788305513072094418238746705110862504233473853475925711295221906941557685818909085220834137477774319727705715988969750973714598627330279071393695316225723115216519452353171879223706882270590263400708691994514490063384682216787690624254102260625636252858661254190716051691009642208053275506309020320720532723886441277674560106606812032907536568124540682948574040723708072820325063303027016106572908861433525999235502977485553926798191232029459558353232383202908803982149478691375966391839895279363197823098386963364086354241387082629026160666633759621511321186328856301222841049278892438935252069955758350958153694088754964086284465310718409998904137172076295131933095312471156442341041762302255564378735728627033047838338215237162659393709582321768048837568546681666560708838173923713636722941259576297271707188474568735405545670974803600688832394664967508397648512984386098874316286421396434835412019048689102066436493017916851648689050803482663900806125072249401381816156878241110431650856611111973409400918954421494175818387755982956016518422486097312361165199747550033007574116492500497661371128874212138237703193447425147530397743283978328098627904179402465386329378543235525430452373688426120439692134050493986813757419129836434722711438995393480258812444862605033523995793110893164515127650682953573196473068508054115117383198065326957796144086298046063517259877942773112271527769048612298616499222393434143225168317360982752760153429686450765863484511160373112763480023672065908206359638054949540227505800869257286679471282384306259485171759040585088665972427653469368631513740475779058540220179029217860387309004013826755422451662996459757303502079759929357573644109502490043369962941775542833086030971746456609592689559698082167491316768875243417784586713254702602671734620348465707554336557421642420846715790003476407942450275472955526592027089248688085960324592737121857216352899676830096010861340666574401735344526512654965939570597994788970776606685144626972638403313108508726721163267662550359044147774411514163587376414347916185967216650678083059789385754931519162302348792849416697736229595183635566718443286967014726523108707041023684484936448901168731573217495368412353156036491906784719545538483530459571523798388303049965245746047966778401929894428624912373788082679170708006737624526068960846520761649426604628530361689941898647262738616322841141199441340994988940222652600795057806819418939541623914862273829111860706701446625368480137945799638267847382920684009503573343218458986924835788731241038772383173164921129876015961805745950153863144637221058862724419996706674205454412798869013013930742734370742312173366539457857663136260982216633014341670332606554449684608329427923063818144560136935167477608432633827155169225261884209065057975773282835333831362696291729156588066482823449338179663278142560597562755167814968497250841884220999665683948539630297711219867410131645353184434130658670522980251694326279269074344703630638776767790358291999512370664988490987645073164117562586523877169323530283617131241378894076710495446673940710434273121628932533172045307964231805996108006752616719609471824592232293680451707109527862769643451465356101918775629870690658180627271504562655404557023405837595125218336078929142736811153588200700516188567429451591648941149740767787367443557164546270982395263367192824332775532040217836487416144253841145710966725946954125032058896205800333469873597362838561098811405672094317413738570191952520819050894578808403246579874217980098694215642645797218009255678484867404609131418641306037300104346356132433986272207669499384021692272810780135114742696691343342985680755072434126766042021458326703185137548078503333562305660333330894427915146716031212413117994748369673620273381409480984312414925887806812882041333789711663532116125014829259616381002800404526035705615725878620034117723091377154138448119288553717082605277903183483054418917036410335762387217334038713403645617441835983296380596873422161834008932985215207544797610295855929277913184559727508322987147387996800585406515095664917257789004115165018775685656667793993471267817894039243921677583141456774271647006401453647023365735836471957914489083594434833120312231771793073042668020597670406940648900700999595393994266543129245225337439727486849438901585348119626030109346174957802092889442683007103569093721231134400503817015009351851512808916552044097947417347953354738957078779325925107052346776682717588474529947441691164934336684639386281536576799972851829696661926826534888032794505981125386185197593141598247537174313753488343785584182182527338302632535740429255121268209373569922313324374375695552519390950849252040806832321486677946294237763836719865377306208794284180237792421130354076582030154731971581467264897017833469547409691282197984483211350922141388524459318756113342725670691294989397119512339033969196081101776824369346809492632148357608556051621917588363520483990404931894709215728557669581998894432650882723582821789694967947027051375022640369609707145555630658815594877227753156391677459529493509797123409995873954444715028520326448189310588276998483573321805938015280167216486791269547667288879827855302929378390899429509979319143515112713853967200011628879233920625199859907023967164941028965925945940278259618836112565607999795207393850933475349235573211358565480843396976815420480096184288063511520387035317240225902258812207570288080252582299332894537899870165484413817461840851578927648494092159047202168578312159374563053604381518394137994787928709371457906294923459592041801810028268306438567077499830092195961257592541302149294444710018171541495770505032543890622468843955849891401381777415387845219371113265726674274301096724954250653596970287460667406879916505578808263949131908494484432807272821354388926982012122896194636238876895794920828058742950966286071540605555483967426184018114685059916832654279857273565315136653263968807735604066951121004682418092765503598283586889699349259929592070147296193108153582095376303997732055172771345673119379972162487499821215648051772705001806611043844992099424609041568038838864496583057861117516528520381586530987638708842583801024315007813832998354405415914205774414465052838957066796259150184738200360185652362463869412982240001240158521304769065858237571075437531897419250122426423768152956804570332236272928134367276121078979269568309852152224596827063897508366154306310263182754727709939206297049415293047090643380467109581942882238886791489611241486905886843116211806286310383654928198888145121485121400961998384390373980747688810246388106871693604330406428237497616475074377665777958942214023613370303700181016356164991395669180816891078322113714107220013187231647711403606783230730774085894462933058133382470958216522112283142417626166205997983095058712059514868633454898068333154267280888902910667675247491668571600710690530520339086885254612198985798599162292556631402517999301124433869344774267476363212572211675477546067865458118705707113269890727000985075699174331976760367002528172630168146902422943978636106038412267342099849888141411635499202773655974748935132944663769508164415473026820403663457631019848608180568158809733729646561226319817864753875244610694052455174423244838142270112671943979350484789533729812238119153094344264662218475305091235320392100443474268106133062814159427182611921935054208981197668082082945348999418844445457263823816325709677668611552025787556903759147372042630778335278004430514079888891465573358438718985133562601541751168682772208513641301918527452603053193253577385928473201835463758909412930581829168871891347071616010803238880085941269506749829286991496056927888200650929667932966389400102077105557856584414936848038921450333703950602610567359711142249701354106531799246689345628034563253734088682676333730257036449366050799726589440873530915118413657117825376141531615697311542573408308914337194882144920465873844772246683512032944347680571977302844978174948996519234625427556131847639499895112763320074471628872367458167712878058132685692622264606232783692527676443348384774547537030830063523400777567691330146691181117003975206497123034298011477063058112692780446259425032692214488203591551105455770252063724475813496842598143478893220418482550864372042910825398065838404225187722510950874301644267282343897711915614056724908253667195274945631947514966275128193084087769566536132326579731484415545591450787177504937817640915419691778864344089168468818177615189439731389241480585770626470600956911709866538397121642308000953388312335560872725646952914058110324192091760977858769184523904928504963876672997121168272006053712434168932418090071115227356726673735848019319237926726023290817034603691969232358341581628953567229944137507788947979997948199576813007335083284415466543846895245107343297718084437332445753367885485538152834079939708541141633599567428840839275978275585970654002101313389139236721624993766878372255984069834399980767511166598132407783559183950565573319735195924415942016190019172654899823455130695150926217594807793743212139996464541776811164840830520317098754433154023438929515472944662917723507656605093730763106889934614122105486942740669952493041192623475941031732515436823162612327973618356696704385962729561522382038531908840136380854985243065076448653187636879845030784721871806734049618906723936390820220812063327980628541685015656487109417632994199354787800454820976406757962326229124888013575984795802945656858127498536714552051015192776874046740345170886606735194522081514802553691544147896474222350539388828809455267466981022119871761218668085555323671066553329420429644357515343447418048772263106918577230711834981241757230045371604139229840904550361192528614523816810383757541543413383824419736191328962465379060699179725389547849143096493048605727800603206026872506685755706538096075352350597757416584977508407376736327651490247790193579284702274955435727892949230952299774731956152349586560869242295037870123001503339359225192004786860203079026326896542129373798698135307591259149870533145311297846700560826652851605206050975557380223392365207135042856833058294418597598842556596727502801068082053958432006204324865098633551748054131740955658877204617005693302911403199590445204005226585153988892986872107739216675361225821940489492481588073494307437523831301745819163955764139019756385514141229606099229969859866634331625720264596259361024406095334893674744381029311460457084082896988936654646467141936148448304224245487679692310929518958430112881182036213838100725766490166770844178554629125944146031961086545363799227419651563395680602137817011340530471452884107934299174978064625562807716230615186327213595249039277185635768670456219692172045919251390359510538942117478256162295977174429776991677997652611123948017655275768845005510601178471222858800459376473285118988801599119351780562153529525784058105030015524552508349414165079477094868747530579549132348947585658492324118862035450744667966207103498878163134471183925739619286506228752690822515189521899431478664100556828552484753834233923655166616105304533253234988797817411640431786717443953680926576585570300273882222173142459934377452632204493373644556456018406262665514361804059081015734587848466678829890618791195981759548073304923099194633697771603202057804370143280787022094199460095843533378771535638498372499039238007739487641027606126494698553816074529768386317714267388457375023880789307305461944345298395263355324132877971855577091881877965281977667503805549953236222958662924899940298397167678797695113181100277824162894445948677060233181245999815297193467073446651107123614798881265101288887812149574183551726825740070249280156699109563590281791555078576105392723439942573003123039689515658983396339366712251554238166393985054574975581702994233294116185606003410722249220194088536634570243350886672715403424692248770128217590200624194249883030636544608004013638462817734038423961855253592739337145619905323490776529861536158841397300236984973389899282648987304380046843880382007727441777951449419439544626667520719469627994490412081466046360619784769985514704190843537320755616674371433245268591412332470730711756150610968060411399113125144896337677022089365967360434762665415416611328515131760084702656064509957513584744928581367467540756275370133367760681059020994567981793660585421183157369212523921200369605863909304564994784509588866077044136314176801957943327046620080127936675988452518048975017270522177735413424889920624330471841963885482992268455841372863252369501171453266423714860560099759112544073920292162686410448883143154376346852576975032837677742345398340575237864703283257585043459343503617104976979399115830239830789984136577415303335064573874576066562171604416636126772571848404734890598462531505220812910850295887345163907287128395320749045137511918701177202817162294311075402616915855141231324828373459658803859570705840674600094259338166945407791009286881536380221236598302399174899591637671798389851798148429506076688233526259502966683735511916545387574340350064559471267992956768672664905269961242753790579626045937101284933439167149836816231986339190460527192351783894332205010389707886737488779003861382989836971044007502964020812333839170924117175135910929515728225320760305838312308389274069876279398681498265180881839101593570207065045466364830136765348688345490072222969748590489090570960311538072063829008297714534473993516773613185325505932530906149088743175106712353258674330102043529045317638249038835567628787211576666458847233978176424525250801491150434418090808603098592018484511616815338325866504454370038299855214157080729890788126741814569788858997233094496397326829900122996026270386578994315611747274097515306905747991473417634468035730234744101545921999675221418131981875193105746124415569238550999755241626839484955726883621559133908360764845809793481411034501574516145285513161751175923711769733550688207139729698346330886395911348663403622801292989415531638806523286020712673520604146263541307313218137445365268000047504501732543568619640201206668738762701176761483046739364887874290819771725439298629819922960510679662206146831959057400300496463402194956714038540590805527578645521653349355350910213206307868522967208357663562395959446103260118474990030848532337369169300052319767929837173983084010661623163326438882371945426228498059769826926734667066760970321854872211378803701580563836476670334187249451754444211178320800145489172144658353336105527360702882493467473519664457981307481335650819885140583572415898116144593193984205417947899042864566663029757086467437237084501487128488846728297521354541035807863479176710897100069830523608493109530175341328848905753782374886579872726437697490802150205186157166810374855327454735757343293262688408268107634251178186879072091059677066549403395412830733218973165683758000441850424539249712194160204571876036503586509740786042512133428013369803291745372814756394606674845067543819754530081381196227861296148963033106617615466873088114532892227239460290930999028388063134918202588066939221711121955666789620359575256098769866184763933803695468620872110611697026723374711868250452789472744364507994272502389109046656574908111524342181763935618418788191708864179574609465327895126491387871001170602641446042197664957312549138935742854972648722652759416675842355937479894040489181489083980276191384927922851925999380499654876670292540728269731781071935380121769716959669900139559345781811251687140754141163122490783521134894234667268932002246267473850911103850017524268582494337469217070782710916169642315096970125660482964706197672079503985206093558020837506782937086091859821884095458777670305987788781547387251440384929622109133357167988345852756604989538544150984501492248414899053739400643533484182514666167358982298709554133123660222707929525859450095115426615949614617138285322556337096266700929892918903689914680433930607882832411692224266844812898802120914894218220078592259373545057087908533064150378487911928195227214599864193126979321721361866573498557394562019547791401724675840671994042550481362143917759086326855413673434638745365766077917887063790960678991403976556633309334226850772232540762329619080436236334833600073140119422692936515922078365643577140092289174191519114481137335189600340856444802298738149520379182997107872850730068252264304416545586150865739256122687005199438451558639753135634079268054336878080362116884322266158236734348764664501844905779416882846007767127781425224780435313469794471398247005942535885789391293584449996617401166780797755768598799215130486332068857677791186242725482191640523864424797540915679776971296777737572830285024661932852712526656927188736252242819456289027200435981684159090376115053463904508735127669663639619790030108146701228552217450190775486941115260313926276250465972237107506606161244797728904264335120824497280733051560371783050167449408112904316783249593771653733113743383511753859890245493336919607002871488481952379404892510921013780228516484032288646606235497390487449654137018847402005344762822422595162768430279050581914706518158581605582902233844908316547330640083755100280522747769679221397911836613387585012615873674254632952248907388412449693719876241830213688824367763331511813312424524912597041800361088048920093889754304919026382098883698602110610770763201364864236274711611060487637548887179976111247912699039754915976617496656177346071092413077262406696635252995258095102184082946743534756404050234512329135528380691767289497860183117093093677479068564664234884991115893874208543144440587396145333098879365057782803780353374203641016300050383186891014378724408791460184379744482320993923915665380588728194713170103881289777953442816955760379646405011651581004556238674053618527903351521637173445167978546772159330198784529822505522732482866944663553616201739937410931730730481615366949197902774389218740712336452361678115532001576639269713582820619553521410311799684456455272747459144052130571349162478200412012925447774353672420312411904158767986073629749800516112881791134465470263643732068343103337463972412978096101267397563807796912424367917561395681242954260294115725036602407194212466010022064460443111392800214499844320605327915797706405980309626387486972410446349824703067808482067147889004404747627223958160950092670187499090874354753113559686458737592241487984540351911114551350706780675860801845810083510142280048804357619540364431428565970558256966076226588917273520312488661868812899602064785572572736753694699656294819236917546255016675394624361384905788167910738678379217796283998937848876677906287358570385980329136638180318024449433381119321111175251117898836391687542465987513146287856562481214059357678121968386736369550376339317119097792928459189770720612375004031745843159860865143484473549130155736866195674188112810087143836174192794291426751396294979305187653748552210359009172890410394879196312175822145013571010014495668834797510397951444002388594661695868150270515945396066724072114033887229098366373617390919375394366957836483330177820367073545346564033961342169595306375219119965273652760037684369341153988886069726790651638094398792531008739594811119818113374737087445999788286233029508563835250172967914190604168610537882380026244737217512224120727234303329817839009645108585181201014928812668636792911042317172015529741271755278236369413124217825066762196970007071608560849117282653159478375434435356886950953533172880359894046315542875719474653216429705531254660520120159151976964053272575150786397503005549381304028065933136884363663623675303359919866625307847677074725266954478468355247629183699325190425226133823837336406269991648881766920655349786386798674922926924816575776316194949826446363969440566276395315059431432648115473389438093705908335060155476297813870679618546321520387126659656539649829614567814689623538173614117165643153216935020384586343997922827683756486446419687424639955059113050239724142309320702608507161221939315567416348407789364444665370243126233029871556168545897984524257576291103992043016600048465204803791716052401332400862854371857512116128001755587019189787959894794131534559036837303279593803378855158940613659965381756233642833887006438750304438743934692577787980875513316052589930446599824222686660393249915712162415644866306376076890914742234489346618457742547228031897632150420484428802860924619361884095521547753711684670310183131447308429019809266716035104199429035403848102194748524867913637450874889246984480687499964160552103358805447855673895430138076338082277232974259775976349498541007279275302497542086853852972714363083099637047025455178818757907996074196729888964555207389164438669206833911100982998399731437325805053448297270855068744991568085858823014620191719739841856053778202777759987287681157201891078330557892931809161043385448020432170163528490902523141387222933550955882230599473127333059891928035481888816146357413442056951941930465339534735984305877497130321938228360339964608305189397858371907977699635398089716675820339933221953332189401439795383306337396774672506153657859999788491505152232139817557412334036085035641663853560291319866873525957254270923010411345491231809747905400883715946772475502319370750395711717795222398497809531640416209748609858630529692082808884529573712893545039111841148752009112791804333904654729130589839967132444799768618963390688637908505046958275144256294067609823150310978752573881148797826860210431229332044653894316356219915647208806746070421178381411347257180970859978115783774327103331972711919329228318596451322684476249349911105412290145374503344515788750677081781618243890092635152080241191612887598922928086872596295971657485696665708684047493743414214125244511498221993665179033535060857764056088038777780860576350905817995354567935497186224113354797079227635557584174532244132246403390399092519815283686292637710287084099880128427589647635042871637464397911280631788723846524761800538304656706110694440742397248774220166925810099932277502560279026186830652501459228255309314181935687041310009310621073843750914570935635689202241119029255709033759659859272667038114453481565308590786272180393273862648355590383437014079447735543570572731403749967646205843768738644339727860555643684560808842079157799238618601479849774727680881894897586051018880462127099717157631813805560360962247993539997887069747800961771397632712560644004175694280460389699058917708464421824728927011596088292314149553670789618940637934325507567520188187638472446968207786654807481727662241641447835774283142927255152289386740865892215275007420052264296496579311298474369089756918579175883733055881538975928777842645800507545002976653047361204480415188389904959412462109285610409771389619083376276145831688520602185185991263238484676537318053457153981480533078902534406484394877682702870168987702610221648771639392829536645726578808348202008922877733555321868488838639656236307936330341644283612016402915019059676240720804326812449487908799558087577006192087972723673557616945828602289186149587373969059253667840962503451073432459413535355241415596022948076710541250038488561701942965412029809627433996065655238532674013029788575631992462390694053614833915041510926869699528676032235072683798418959376512592755980935859540468832839904606347637188001240422195522726290629741128755918488130510529155238464978248867353820563691942574079438411123491163492023163653368159418307845892389679681523294340750117708395378277341384854684482441576753638201213093187127164133781672853937856232803074504598530439825335807749362452064511669481571527691329322765831612484657108997392170420023471767851043740413101321110229622382173124152792154018905577382377789727640822888741427915227753513465801446383334000350888247085174517855771496615903966691954407315700098938800320523144930722000114414570117892133602465703914610360120573129875038184181892466727142602852985250668305725790708740853423807973393072626472590627029275258028518946827492168949249396590017564582471840807765910534573840641364733138268911723032330177759314748599270186726029393306061381248235947692467079457468296150393973226224812463011632280476238591178119420973328168746653761317742104229392735087921145701912450903922234362188596846854833286879778468221578326501160809772246839581109966565387439074884737755331023551383685470102897494198319735807177443091890406035941013683341990606944276096750742340102541148313954892342124683342232166422716316337954946328160751658035881100474863169309158771098555273058207431270410840161165410277498142529910380451624835961152467014825142854744431127645465828025057702255887025283612588478435060483589717886986283930720042063573039266514737293099326934831020282543883092746668131142101259301531783093531697012700023003729023956499177297040773771950298235067279160633605122603821550190053341082593959649394667954725509659112009842746940177697383990946296625921523736156148078836802905816655646104226707975948117289156708811624666767436664967766627557239064396638878836024459940876723648585915972756939911910590154482426449616721856153024877503794749279032325229742541169441932936113227012850056526628083396171367421013144555719824908028129720026864668272577968071131504201714011089214175704076105188850347555086959160873279865903025758083411739747858937617993532211126153922792095683062559334658067956449101767847131033673169633018535869178296847445984050446402915983574906845251221532265814223706770921467249117136206008579608532348320802457678585717178707207371121612354735021001524461923621534699132642714052847701142287217469036966533551195756650623478977888728082616172217131839392419109549251049047246288718854825938057316581214070599287474337360559381894478016777260809930768874889008906816196712230067460321199301061216768469571908750072430916861833254561686218500591345739091260265725196419278221672372885815735246566149475198666753037635158285690274604079979656441285173836642216505981707145458236367109306303211319875739567768274951947011403020274869582385537364522135271585604692555805251622692672239153502314418102001577564439849836885243738741760377209005054359292932522398542529227392365514897235273294317215006466451661196940891805405307630825845825090300128248274785000023803656270534356450245271509181535002635579635121990619039005407160020877354962070306382009319179572523492460525352575216035551275019822450225790317134862697028220107578590488050807588089384910977538318674038512399417040945864943264668996897338000780048739682370816677966545219046968829019687148745913663649308812250979632901248512826622015121434457084600898338557975446001452106543363926299041746924218916223428166150938417107089172022260276752812289120814858109923751795373706509515769026564850917123132180887299038639676555171637910229093585021937346917433119544211485597367093460360427264653082801664503188479033491303511808722045427167874367008817399382219668371639574892781777692677408450651061023294822723175849403171963389826702732203505920406821843810386476165451368650598246286307930032961797804590219304637792397506720595063443464681467163709727871920872065797558110040929210592940810314211117169078922111091702162734819594658242517968667686143158422964385412928052336318435239369167718263704792901612106948447379594229190866559988732283175026567067702219508722661369827462748438451840562001380549612712852708802414321124308569519841184016359073970827747994173590533747999930993556095223313017204106219535080959813722135002275312168387240864538143148368322167314472681912117598689070811442167285850209818108048343730351415245061195514488969315833260947534654031024946077165081231152147466335402708716478883538492384645734819903072818058423592936556529426173342214922790395732563800437083966535906407311764953815216136140603859541321911812925248744768644627617589137869632661528539344916406555267598812055452013010878487880663736687619531581712477151249030619056957750831562320605015209935619401114248632162516869339432014883222554121661492788276350594637492393418756364298797571403749855231705624034234407271760326853063339644917808600470906511952142268742714774839287686863812479150945036454066283297339265551991774322379903468748662513178045562547729120292812067241675305120581142414654256291007602111567009999139120355963759481948850443351457485685313346169477480647966799180966231602382841831706220617930021319418916997210863809164665310389271778738358433804813705763952079699181945996819664149175658657901311872366838677634957080772846083784342156019918502932248172906696758144473556454015646057619303147032937940390655452016296879899746279685415080096964456968891660076886214028270141733739508825303647770207914036788246734031306558487335128122585439449564087876445389762592438010852988470680197513200103115719386673605772681469952632549379507342453014678067204760160304462069806245784147780654250277954767350872697331153430068638538557599207774016177899296516864947119293843412053177797607951734691417198910260836625284830742860121857874599976053208093145730648022946829009071121814978227735197458032196387191356706663657271849787881889832475900260070229280201995163149782052543718570330391553570565306309941345835455166804183709212810503898800928472744691239851917559027613297453672061072910188927228043893153822920768503050919724034664109431910675608557140486264921677976071011896668317494062420938750645562120991482929193256503651795862629090108441988127760449399328462203224411310003457448543768458373920398804432354151884452399343747617320642184592786681249985861880933719779974904510913414054551046791287507178778347304773823053551166333295576123799504392823603826505200113884542053715995019846239540836990370570850822112930181284115329483252150004089165466864192083901255536784650492878202528239679779806728407882658302058186097181091649972201800296387139127360143751192542997188820333781713205448179756765222480770688537052113016220574218734396726699861378866026155294870487831168722847851861063335594632659641065476576997797659685955382948870554266993417015327349348868437601400106108789607182905708315499940491939764667404433277823767508463072985780650219711238475816662851923833340497282116173521081863570991199775525592973215652853956594016426704724350636904924292004793049040881392126156634236797176178134053568039655026993868312803013520193820429832555259527584161842441117658754049520886016361006902784316600443726745733899206586480167534215749292413856717230888910252421723832373687402781051414003890599713954559630370119015525405587720865891605965753941219541540975562174003596688759289500415278829705652213457015610853878693526447316362142965979998084413306436750143020406812238866774534982269306171597704373708924877537419692443671690289058505519981600406638024471128728395913459361535324336214330366544872728736516169418306199487080558437586175289310207057150268663447751637180256757217368422173812474977889222512977973706089800877156228922194081054905321311286719075029309916138724787418106425849305625554948215610176094022503289364414531953921004898631826926736076921868690107999905238950050315775250618662811703570088810441115433675160570826930843167264035809930628355037687680938078263692819889013905516630246421459566680489894024380484694363045801215309714468660490737006842174789034029313835121590201116766469531820863924954628911463544622855891274610991643947819959460749072895831287570721559529678567969862457719276942018928356738555054460722966884219217955651545671523975822302816851711432898478344762368204376309499875547598816241254387678742173700257576928348046392558018630429712238966648277446428929600595796167212017090992719951799315082677469207732024793116792452614278813157968323403790166979821038605237780140013665305556101413352750027288756573753293981068575827021272768109132263588580701381661636437986507370530249326392746691235950323655757130986083097442477679274695825966464004700500607314669198063587013919278836461954689114715795790553877674211662995836470185863220076281010984364496783615418622072098595142783327232557405364772177136270604233089453343252610841773432827027308707760788176268087946629754779445862886988800882876311082156472919170380039621729274608679155483522907905506722288042167914368021593818881146481561350244451654236097805215693307677607894581936863652600863788388176513571310399385725329653716859937335995868630836895855274055635368541425955474177767394625514363526330568656997767084746253061853679879471373940130537720057958839200928351915611540584689678253902507470172717697542266881752778161782929082415001272047153445147286300268425418719731630923516156070562177381739878636435732840991386664027092509895368510294657299847225062163871947966217060543797225861705247332109131943422833745675954539695475209731894771426547382448492708717537902551289057630712668269991190044068127484885225965798338688203991985659053265155969636053172187339241265095160060886785083611042722899201568010795274610097799786143520522578224474542482478579275040841606030553413097372464272328900387842754693651787509339155352374643903689566864608806734352750873795805614231186825209738453069080914070278552717924553580262755506434282620651949987587572991637144329016808370787217321691989513467808877887643743328206690274856553253001483179385173366375144543589029426224109203369888761476320796979620677649877813855860050295261064862332496712135890603898752420127669802297365723783829772245392273666498556155438122022962917288423523464501736136795379881262360636353448025026125526846516674197191611384258681393004064299893597655756445831577888893251415270086836423701137260749515085089025957425535400832064118409455930422104410999849686473555664233272795409915741413255805316852311101460673240436447927723181271129574276428096319267399087811396478515905525907058818087023959429666517587848010908610042529934666522682021372006788373288748312896075985520599909389554300797261748240533764899907084248688097052386789422400611105347980752915704208288959688966155151363374013389075263761107293630183168727605130974483793325511458114022074573184262881924661211841108534224242351819003011192896621431538668836493958002923517179680350957923081520446827882463742854048896217592752324888474359242046933788202814292652867011973719543315138999615830364039675835950356831757001763049729589091415782273200203041607080580977254662751417959859264969898213276461804201652871313709171795779907355942613314912968592008962203199510698000413613298534878246761483988208835781782532639144687822887081040074397434858956636893970189290124907722738553726895572553150904313075550726555107875296387378270245625590765713067863930772354488772132497779638967308143707558767072720224919533825004116884015207904164065659851984304177549225877193275463566201788745422384048222173965129950793654863920909744952047178892665787178515989065553991698753200250303770550409348227318805006284049559729976352962709147114902982726799089701280279936472084649588208504190633295376091187729097323562417955548558055726792272890636940230322269194655608997950426604079756776270999933704785430785525922314581828219983679229691311947380630015497080144399695699475805367398195746840312218061297173130629170247695832637768302414233474344706806307144132709730547168362621984162190780821089547855116862618799341611806264189936255626242717372042781086564727402117101069650281560235156409523649413973575351410511040615602034630811319138675042945509809794089945824811458383934208621691387965486271183368928210020763090350230723504128824711605382775015432744125640923543075786526305547610616655769474641857478568066055668751173785975580534113120414605374704291793347328553218662114682706601844899555935592859160394631970181266397230663271125234058332287677189511117534332646910794494093958013206780237171441708428525966653724012829914972501684100446947565709113472940690188517983327279255677730407167029266985976968696342980707454103262939512524946472622434066895143421494978771398923974811116989183375104153372198052427778539334203253292904335467008057846196972201484102294790036856330517802651452425472329822804187481968984762022270495397031821032501753963500850239708518991701568251983623215625515004586666062896320902239048299936025120818092427634875915716578659040676920761388516866201647840507290614191029191513507918587952330416389013907563403455452148454486897356864829302215860319470602826792141758888909873938284065267849638890393687249069833079426518138479245384479861237139381659524827359655116671343747239760667906005434461243076784491573454947506296368418459419338255703399770695266320527375611077332184529994223921512394444397544133855112325777082231375003347023572703026474091647414604088557790409447065442591485052067916866489089405512246550240920629790506369727120360356449535560164919567683939454622887140659727806588911703470529908965813186663077700827992061874082663745987500355924036544036141231214334413192964467125871788776348395858464589374304929013877354112851505999464385060356176570835970126214026020434937987871984622621482249893854962657318675390413245594931367424119715785091268118701539365814427870791345473524010589783719966014907383572690653815349657458781039980454013135471068485981866704680738968109099536163544857285803843250968795102514672303942360012252631973531730755643862349607384751657150931998838491353963353444803834466935452946390019041586549478411330994745967220263525167867977322121604750872882462935061316959554704450156605798237943703641199847755422435352384798838335331263668423608240258465251520148175226334182137611231978934045380881671671806709222985311381049506410489575577131728941805747380542701884246639253935478457600725250223619409421426173392061941275863994863215723283201222630350639506413489197602986551127212856654211763626878918348744921983692710202921929623986534213601931596279916126936132885009881596203756362934101190935895230451357770240595819214424891945452420884842338815754420393487994315211377740470661208046518046642235194038493797127615256161651355649386350960430073586026313175768273112968980736037232913576056324037445206571299860892628151988767871898350260022127106886506988011318617705361463113795534890472351876877811561577533837882223013259533340471831641377296573305433126999729071894534863898404294602473424748731717158786465740660871065192696926974107183095620865590056330469586417970739191672728040795520895589301032902872777787450310561056330088803275718206547856593258184835734531589614513616200195188181152807849652348065240959082619780025096465011977481647662556289129787488514556936586548349000177880866605432426692124851272377894188843240519481348748018892423348162793163909472509662197105932038882325511007465564777923577130304478179442520308372734463318728538117159077391512511214579223454648692528776459309834060612638137072071512755279770195433113475125401526085394220576972845723454402369103665401141556325813433582455254457503749348718375020989042654819186184843826029507764967789840507026452327696865595681086402641694297475523685971614835275327442932665880008699415763372088867925262087412217125037743495558792383097782555482538744465755478136527736895509115643016550915822377357546527121702200497745700747812827294696226362176500896352507754789442651408403874842290073695720853685567116598989419448115172825191383238600700389865621663165501750664727313400324454311362334548047264184437851580960477521299212380100028749706885545147168142478745246406224392127371894251968294924226349864277411364590469866084464571367508568767239162612326637038448853527766403150508029666136505537363979040071683635492771369750210545466294137617341940501450939016352252454449911892374967972979787934342851684466651127482832555948255996177869667283915014064068678151264345366765907011048005781373692181206230264839269755292405578589743451623006537151675983625995433752685427412737485939240947785219962024990341444261843174661939833735031986390552465695366453245985120014263629134043489648007819218727052513815733627449542411567125947302088378580768097641616859882366476229229597625472223391272091639683532457215236376287252510127316600879296843462730046118547382678245143970801304841665859993110942244096503860051072696226049251458411629781435857019035754286606333790934453639836973154982142909154001587775666912315454245570102833914294373697549603224633707127341336254968573044869217821094411689474738686411758275214281392821434234770503583347761063626897623283025117518884882100924262403189807463219433966622218951069153404069999034026224340101832200291178053482517513597534603698208192779859078076474102157707546747746675165702347602812574512967678372873681476381456779724114950175432601908194601352964471884099957273636647241726781231159026315099641813666201732468047946999378342673991155574324601348274965647237453573067781920612441397722830274006724607080334242091309948884335177220747295549484987757645977347159382354550543142617046979004206890079443118604021764141711289102322160681893896759634772343654518985771074773675253060710709674166704160016777463980184475636088605108811363415051091437750956902015383261356887540475299950821598301958778379553239068169378006482640376101354632216764548057226954298937980788431589342665628023122103819816091759484896981481754502964181739411865462930892748736075527200848659901707851725898183627079711033244715596699041093832207974591456373862117944952128233463684342627609797454456021889394820791347318794505920789763596607384015092307235577234118995073211591049553445671901960683835970070444799290198704112563321650186665059135183422973225353331501097008214600118926008960099524064288200580397113928723426134557738843015479785546491306144056896968913521070992446766850330987019366285475030481772366350888181792004992533124710829278117135624130505316596677909889704711678651629787404651026595323221479987432379439171273394221327865690154617584893272148180843549759015936387687811054702960125210066375146717007377567874283247236988971638067821714617638060097483381173466102777094942968212619943292200513615960187984799992712777418399741731012381168348101433892581033615240412768332464567787748807715305363821527408645705979230704209084496925498446699129691410135956086378045294040632344273140937849995665971306449507078743196042765222652294618393300669279167875277960870972306559572897738362025062688990540738047517961271785043461686410659300184869094987975708853399628749883142111235078689070816823531799656589013999925297906381863031103841358638075172875491197139038588190067007763755983311773539815632895496474239936828822030187024460327368337812959737587431324153160886267444663491269387810536632642806378383418009899216252199987790741169376102200527765974381963206287163140308886798139862713599125770786671431580789636044073045243118788329091229381477025919773247071765974470624584310263575292210542251619759817573624856763382284538006724183843367218724842457335240403317741063729076496384343214231079217028878119453309021247513238762267764407762675116677316299102579778763741627306910047563724738297343697229390625963177141324771025165717461342893784127686336468920077785330913997938184881479910581525291845369167701154932519364225564956051312130033729012044018870533415759342020744756369005645903290767901952635471384949627835864837460433651073249139174706840569801972638668212062439730066451192633871478179420948272949865909351708979824535209421483303301933857625061698743389332161958156325327821107041759265738712498287846188916633884320350467728104580035394155292892246219238762446766700089024024023818027487440715436196956542289742858346049621087306757204384736203912183471075930255142168082933059700616263736743511930654992827374817147523004177228831929181581166060388348852850389730546843228898564298462406189910063231216982291127319776746963545234933988725358168575280096353679072672442487338796602999772805856496770389303996478623536580585320385479406038312908712331411074657579665764129166705579671402264982679226601441183885735194063900637883632207007760838972961982569758350293995822205556303283283340651461119786587097731747571515630410154385235107418164941510507158875445889156734010582606748448736662178443074981658403135038057854998646503759034664410053354987669590559034651498920896320904930741576994278089207499867641993294538827499725722235317493546131755848759102929435990649874513629145650630322736362106920004305235769515272382269023642444382666634750813103626737262095480827296892638506244674423335852382424710349860447835538479714665157233984080607534882334874282826730624321985251178684311835758083712451391932272653363997915509381290520657596211830001516740493495879524203741735069302718597784040857609382376916802280160931867035308419459570868855919684575031530685006760017767380788621195078158933353596622018432838411264662285908953699111115231374077872291217702047388603026882701762906134554591909081976973087579783531122809723025091343833867699296755994794999669492253281247081999910720778700012047483043804332659470856628169451582034699630077144467624393260285913359028020219150141448485208074572323073775043730498646396695466533774521285852047679093180650263751851833704604532714398172317516629667161554375366476843031247915039695406752719757600185821540025108635064770136842114849622406828152327990988064064400624100444592077063363403640638950186558620427914550639173330491461426724499083008132494949011470177886591206559362296777455278823356308770149646967079602069511251864378148393786087692295950596198805805570580110094330165698066381245364562148421369984264633881913986337183637747075354585696638216933635314220091826469786680492276375245370158901096023320289249299789514070680288027462085951319732935050598337076191094069003909412237672539475358657717944976919778040573995965439243450464670975861269121826591933787422351948808498646889019725524433515998148647452121578530974319671768079397240458698786965083718988325443951199370239315911969446479714166308066324516426788594257088985582190879514785112855742142662850771251768744662706562321754878836540990669029736092228846211599417878662255540256407233557329505365998844962256665584565679705897361933596236002418876776806797295480892343381406702178989308146942197485988805011474354180065816517508854156899229202202076576647054353741459808020412792127581641415764793984613369155411548459568151361585591074292687176429917643181548040510958096290089641046151133408019090357679393524998454232280329188104692054149387993020332057801723942364203462786667317800244552521927316551857264461986718027209711467069654496609321393965477967628076833722044131542010655959373969282650732075155870042040141719382877295328155598498611931640420825799452741356132201218158960975079730956891125101486227583649893176646241746700781738424762382408960163974492333005707402101822545149574425085325792427075681602486943617926689862930304655324606041671972650979057416362277963761515032488107163607713910520791920841219301387221715109463952579078237825149433002082902813468809667935886196007472634655434029396957319339068698050119736499442427573843693442164749014211048276208419837919557779408657170130360660125008111545173281349672709580207251288896571424547875137382076384793664632526838659592276309431678733150115978258656945243414570402715357014372743221985679713208484699354413614162617851192799177166843636552000836772998853879305293918354741852157145963625449616176817544475090058177571282098215479815018171732566886558279003891085295794218269526275869848881141973194830113704426928104874324902407005158029205756770294601945683244840853779129069432567038620877438884409952613007373758988267141331098995584368486946609768395927571294848708767101743855549204367712601532869877163840820571889445041912681419424529553387830556522410865385002420004671314738733819137355832018269707060659126563532386734907462830602767518463004128898210872190470478696562703660777293607795598147319758744602573011153492626974647929289262798938300617868411178801690070710223601818472926986835917523739166109567891684719517899436895123872283211373906507532546222072036642910487233769038574029185756426707972946853232042095049473025393021003366593957002469556680718907727733839735204091993984548869776014762106264212791619485557468417956606523426083013617653512499825418630130199848475958152638816364783041237646707217603619040858624140616847177742756242152317230136289224292484622261571680072009660306899634616655662427557430848600994941389884055917317680014295673776714945006585618444303690085760338965092132348169553457434618476049993144405466989828938870884302095669725018366182376539892278623657839981389953831587050163394719460743402593378759770873452976785401208422375464085504004078270962888911811582202148211454799606929226734942297839075414153662760856071410483396474449514584475269599459844286176868981806118352576148047851720232100953254341180548294994155571507422465778961137063650395009238159211956916045979182034273665975186462189483946945810533317132624886450061380577773494220013524640305338467113063604492051697605970467612906480153728775270588166152248085962115202941790549647952444513755716494575507776161050793183272551681065696969915431471728123853303112963759493997339729705410014283042096403861478805811516708222267366706771719693399019941839863981654266697674331123416376766471918832636205802250478381587683228859638347294133373062361061273032118035207563489499829184015596219921678408557087868691396422835544316176559976955042603133871890592435149148736508988289001929308859391759221983200953840365206313156958855470113949031743681981068793594518770177276263852212141206438305867507038800771413393375677535138063093621061466682571193232263630365736587516703836527809999696206802386030176630512492495294514073906898949792880388533363317295429686002930602567297672800920611392188349781472156906517316400706589950169189050431429471559845812597394617757613851915553573439262605357441445157269467966089948307979142463127061128178180976344103494606408115197555757393535685058897353094334065329220721697190284463851623631495663191294107090169954352254170057048435154419988446411459858642122676209883587642861990145452303295155114503484026316884152614507493947972643756572705337390663119830480229009400853845402673663618823462775959346615470449139576399172446409045060561980593542371291025706739077682915943428786790783764901540888451462275419337039776790453937517949388615318599320799239549351382655367981412921520916703205411457849267526786552481634592783082827747511701598576232959453462694490569991810160836388436847620023090354221962205272121203999057225748029126163693726991146015413951323353879444805273485583228313070832708897230602750018663539151287096823704281703019334548036707185094393218159009241100220378928826949876259105188046725753179176134529636453123698679902244718103908276646518933510700895334691981965484365308104705992588819606531519755732102971927625260861229989037168028186880832692782378904427623391036017839281914905143686685837304633907478041627617285967743141348101232815125250303059043109949970549549845300491335596065714028374255514202622199531146246172492309856338183707670508509791296575764730102561521039020604469256040109294471290669804000730810440542390228519127576927992159696334748106492343547860504791811685758835432847520845042172215537233640506408175350884023849778092398522933283377574427659792332481748211043173020939086927062364297034424321564822531536108565175842688938903886515546455211317515544644931742547102017145845721789846761955805543605826058935144561521495358033700323755849618639386811149093578945630951443832150807508915044104940441149270861962924717783494445251917474594856964909873851580005486918677272021703455555261074626205183452205954756400800395946085678085310295794580014513617424573139072218187886767581475759792814480734208161396113950410734798448521734751549190373711594766189058992358737676598193348657417474115253257837370301912332550070487053937130789189591616021911461175861895943429349081800837584939427632251247091476398233106837752409886551108927803721303033784314807847999887740766078096482837816346633948193259926837899983249044249432152166934404159386083429677310356269277925448858013813551636749659783338100417578655831394305410818617665291856812060349238085380831219968770329057308346911896957045489900965607423259396721451278756547503923002553370241117293166206784401378398152628058897823615655540548287362689440450278635710662491237608464858632748132399315683998838026065843421309394224717124149997814329867784240153504696264674631395766204780364891305064761933344696040366163373772606591871219897884151691765101391675507388491721757774668765036700699483646644407577401853078599908770897153769376377580282585502841454804272811397174733727576986914426742226361451503128122961677477672917539393200576100642564189475450078755285689583884686892748538302234109801969732570525812992381161066095415584162367985438392792683318188373332715092591927809799304624059454212442339937622318440444504998234625985022180804854001276367730275684573487462264933064344700184400119124503593911745393426417188222474596567265488338490242149309904122668011180128208741986029806382934265149484403889361618743053948759234148364876236262879931341382510518289861142001986973413452708832304434202803868487188972039045147046244819177092633798966401034087130797359995893114488497928792371370301018861375807369139087812679850027003146447033383431160262223518516356026389467437711806856616466941407165872738064919184335392391980806826439466139839264902413636901351517979266999643604428923343079952825971635787245240547917884996074864056182430581094520362765547454155083028679149694632410519947340720812359795009902519710351905873360172716874254119056306005228114994862122062231724245369906451781685066085703334562492645247371273863827379354454428259465568797434991627516979985009567430977877118631810351023919004312078626841197663714967318941328361286009226657231255737868483719509293965155559067080135497446191087977438472350508675438341693648626932904460672325809063324509556305674126160803159812961763138352808938026680041757957104029270670715314799744453604191219366052028780712896929974339803780442905363231238691133185761383379632678656175616258520864177901003348691638183834371472498376870586133224409959836440034344062443139166288397427719534494223689589753532611570758841419458224593415084233522049581798152847868195081142328041934676484713706814037380587029703939970509631055546315599100626079131066757112628114130175414554489945993750339389223659608931174925621975549156604470370133782562917340015577408822947461116868100161553943546163761702873344472641443400922514825173986965082220725761206587141349232649791031645178431057378385712372855042036254667807153511665089353682082092091135814517812549625377940696273428905302443403033618386980357911388435624964425584043624293202098805760189443067387172404703011866222302445139691908319933941488996429036676193038100820395973015197180411784862511132693873191647049028918312356817916191247656953416748080084496280120527587865563753550956429314663523509028473922074555525414903732503466031990837571152722501693175790806542803745256036928225818371652294516347497706907778148580164414685336597119575766615838359086006927956352846147227022058890841056576124187866396405053484782239986604402944369499556353030012782635731196076545473120506561440505364203076464497998252532666345999133037573094476833666425835975583955497810447391237685856545308181145936430607336077156933226674806564669329839499741487163760979299848460093353406569161926043410113826300867284987421505334203757258829952205677434620806536320881213583660790265148069358363140984255923733088024818725736075734947499644283826848977791762004391910460437236485609804365477467056461294928194013950123034608673506848368015293234309235300552897429179500975809613726880027242215628264734636245307379783965538264772904072257112286439621050907397064602317821844187954071814261976053795478803837123202411279270409476859155301534948006774376696469189027791242984319939442333731966235267281291585804358354915585938567155727294434180547602185590762241639343071364781479212780605244682212367586398704369747383695319967713096285007486303445370709887297011927841018401675348043061603996279465648487125695147223841913828325228968228216192322765579457073531533184075914102479366574354371900370583236916287636530414741034409731135682072544188766129895630562046769864872062253564008920367595878779775147240392407810712715846999666725647111047341857449912159177911930636525297744134822731054119488587544515770550309886223465079775850822979438631556373706000964921055143618013167859947716776922143710550349592106793586390569060633985102509614092258688002939615180838133603664348281932295337372639338690976999325960957279761887697026692590351299115881743679159122508630564592571593525064970791685894441642118121890523922070929521674242221490328970745263543398052220661082349204753385287038199250179741661688369798441631511223879479068628355159213822807129177033076247888675350992391485961711873656001533670242432515053911872930932701565416231688961497276118199096947297058136560948344574882397252821489468540033357090991069359528038764934821505696207399693133850081212221250165408272749258393357757680699859762556983650637168050261681966738437512378678874882538685900430554132935802525393968611395417115662520607112987595729357620249967355648971947459848534652005049772801063955901729190820150878217824008942057521955123455658818168429470184140531418408408928671948653066991341540689017808321848444384898137170397077988640234849108666367340064393664646192672235200310543927966789479981922870771653687597632276661956832322564080023640638229507665425218402861678295886207601509201007067311537537054380478689154517990882578704220405614738537845896547146457243222938857997077685989251796138432015470447300302944423736516159857059625324213866566028235668246009927135297661949102609090479470670850464757816185677790542654366734468078851265627008210345739955240254453230427423548863948908656898121538906137863048713069891397465810432388834215977785094806796124481994717995358593659700473853234369317634725565050826867539286187837369783444935150433691658627457864196750324014693013765377943191103603971156814086818000018949652716038747632992269120725143510327062026372903594093295015744984772339074199329558837357928682994794853928939032729634500580402688732668859204572581040563990910802470780914294061236411727891107726755203825494293455122026057258990791142431373565947298987093742723476933883824021891865053748854575418194672294536751703084584461189206745584494751020299043503566593640301514777904948040443418312251456192083989837367924748216834056329826582635196088422626443200751978821616402082483809524097008518262390285593278543025517369825774289404273677676106069329495999738195365622043375341892700686429290035180013014383251956255513539380984326365515266901699418952287644287969401597500409504838866072112174873907232242781343341309997107164924770113177264530461486788702451043602080414515192604135231142650466901834665697661095938319120834669003865123227228428835892217103682610717488658736419258252791444560494840939601883459167757212572635242286272439851112522786720500787291390314497100874082321935891106835060085637422761538976614529004573868345185727392897976789882391464639613715881967673476259026272438829142246774328923427242129959599362992471824102580366743507787349633841121902551978590498613758341269296964226397263436796062781261412139583663743625144506492244014987457733637780129716341717765814719737334100228513930312810374753638389543621856212695109371413776397515246818719034945837635968679760548482075505589118900282554173997577243771549655247060152494877088662764637206176133008714842309592274705952647067256341085484966380112404093077664064468381176385836936627634399406678691119684627392460685361332932678724772942725468483480983545012834013276203065412690528490444096180202448699024819629779553426900383945946369388792972610375776631729817098024231664433819154424420054015521875953333239087180569040221055688920887885389383245257385020509589044777466792883985422176563333462652168378577604285081582668313674370022908403166209190244226049881929793356390605666928069402679065878554395275659015510067294926969154788407259179798998954436486136145474152289383170204462991256162035317494230167175680775359956685774898477658635652537177812041369329299644025382757404330192321873947226986358607730649225264395314127560900368357153253450464525615821708030483870759717795927793391795921647894736617536209937334403251961958582413149158535933227825480307341065805278101224906121011362229012184960692155600495300882665649739740566888418787910800604160375256218909567330201173454576843618281233953249339167023802115775091965787862442634314504271858384629531242314605785329648642838460532079524184964227658279672292633830102348247207676913461561107562166771089969840686236985011242990086383843227662811328022308377660837053102804329508853325535614851399373838928365965012215167829794899409235374799166875628520449278263161023942700735146203940710210061952757126232949928979731637832659560048578683114272254279825639309579609923982880717738716631773493048387311616150015927946799643459000303408532100448818472859132850334949205673124358740930312926384087080155381291075423413571428717688850559438759364405585768285830553288405881911818377143792974691996523109552790097719699025433834033146781125768501653914534869177415247402631155202865799162183210737756115072409593983297795655177715618366334310426935391266206237832623397571628511438467814548762447442599944257835767914403271536707487306924240682448082337318367348494162309625901821402207094851930517846134157319380373428949916123923650391874265265440982065444140460200607308421398390880000992152309126573546594636780894500210761360382508283458262779295985902895425837224891465434357427066720578654151632537752030309402751166524694739469882811994377211394605803075686728590797890962398856036176834982356447536232405943914827924024239501995552986620043617922690886929460528309354321781128544161576771378474729929401478710420810033848698711112416315175570597372806191321195430214086621189339188677677442457540373694352427032375569312627027508047246646755064264601585038047883503927831123585613487143952482621144564260375520182524213692803405436025976409599550917360374153697553463211514664959754671928441597942539266451871748652052286727614986027489757255165851782667021028238902491932019124296892243003095657523605626001520050999181237508008095063442868945974925672164323337327593461979149478272658003563148904027909539346458470301960147551882132667333126021794449582640093773436325510784746824016486628898728766037071074981384028911814916502640900499024990095419182081144403936734563310441176454215470680695558848284134980155378048492047969054054733236121202822577976345664850244574344959643456584423174675143782201326644081694623593978746842623399536268142375507514450857495896965105702212442787683356022937702531527929434846295044306538943485184487884950919919176478514712617511308108430627923619939978476879624564625002062698661679647674112482297816390981343819785753069687660114241583807725104687852640968640079035243450211418483794850286381438748923667510648301253611323487093623878927978621186668723694258275094085854493108450542894013460595012514320695726221970949215248124538365292067843763155911921970797271905724804939588408182324584943713583684502870043567072868519047665713483896772615369543246563277468105134340935244461879119837518483851503796042926223992115017991163170895635372042919300751799348808788790515502132041312534954656776398562819460962798162751748907623311177229172998786691533474436173400294891929640509220326112455953712992774694351622140798073500067857316472850532831629167957651148875403803746694029287070543610756564925744778869391083332809896567056270577269328956163189504460353394936594865372796511512396048658717044414390992935175472701864246773369953081570385118451733558967751014032710616163240661114003707431542591765476554880530092436129556004300182706436511250631848528759309695831884704882043181107996760191550367892101318398074859533965263544537397031401134848863224372048385348678070136573139047405967462991738309280728351593008219139827936978160437067584020401132101975606181437486679509982157365311670297851387820248911033312891223472794497747791840860659535809261492084595359368925120224142587033537719003822694029032910403526341991330791508464116338720305883435975043541561087040649787402462388592387986161954588914194453075418304239295865179156618892843336412197015906357813444074645477702634307636294009223643929596549044755694645650286835140403275623325640265283424269201266859688189471137945407702625144193201723856924663320062138716798386464366985223028814323565708146122297127347577891446066222753108675361487241037487098801803880079094370489567047921433545182198320265931866488623275932864653650603758969775143508476506200921119404080212217621837312295640798895754528727323287781445223867625460850571906746432801002624344170687493275660067814045906461123686872445260177716100410150141826618689841419550581788464660496534931908434136749131210630128954246689606331346211060769934247208186072024814566978479011247535000868155504369295072595097501044923685601723626874580415979558787589145222967544125858313559995172272166888025962418229478944362811867059746588066715001527916047732718005234077337585954822926636500621915089210648524191323766907195053053086468645710209265720319683147428918359759596668895102235064761937078465691948476189907137023780212761469015424915409769714101675224101824759710374686790569138998927060704782757782380467224474318320729791112565881032397352418332824877564908777299505092003940508047085643469450582553430489049532001547606204573298154830238622517993567656196384416977420784280044026386412098266709671518504795862151505180384011541507649975451452822804228089367463752060854799704025898496433300870794057754817298962875167498850775523753097392337815884669426167544426059825152895981844543382139187717556113048424535511894704660482755735091941434090009302643413996339509105825553787532549278773565448920034536760547647429268267464676259265227715313406732424787501010453587385220645062643544293878451075534876776650140377767139378694536915919314726060463443353748370189945902946773650313831966393071038062787872737269351830836877947884735788187544528468631412708586176471039660085425290530520906197827318355086981852567321715517710597462973341578398613951013960322164808246461049635702679030175974274263003531577400872539671904064572194381813239887551100583005790692576410624894344875195416713547418595830145140698301258362716297760590194665537534353812710832176210655836373668752352756260019936535059994108269083807671388695707089809542635287106530301120402975474945976108247559800210021626368506656377727839468580222283367406198661834525265847369903490318178344710027791391660451371089735093186388425288555344712797703733519987266917726179648352787705937696087148443190471557538167591454949864766235453390904796368930502465680893746725477826551548498951376218104764693533575970573789252989438065111602609986447147216394044563302340530624133355796536206213067378137349754831639211145375110443648290148183111981972012994456948906252988943572059828082126064036932920397016111344837257197494509158703830422687175133438487779443596866347622182082969926730472150817935245262272542629356800539611630478378558879794742260438190677518566913823691189077589168559120673619608727683743001228801170716619848812740512106310667492995398327534354764790624771708357568550131395910379583018649367692557871142773222281381852892527342229833743735695878724167698330697675375418712281564957389066632453097678883736682511826287204713603179684372264049087703197348983009664632251234102647397549215495605896795665986826652368477850002244026723341533943589659768405756121527825765918447926915991286903160310086579513203817289133752586799657538203955256777568053874728213378056342645335600049695789623812056632350818093688247819454566213874377815232166776257612990430712524244481214709213300212711370907708817150654782626501624415445053362953997955418422218554331333608724286982036067550914344781977522900621623986081995609401753995666150217822887270530819136313693672453449922392918937100633097508235018414411084828533459090579471852417077469229374805220266014322145210918464428183906194556154402072167001068633749632380350392075533206864688648305568980221558855920828934718351119693924670121811521530921732479267600825813358869895462634147661654858009543478023134299574429417990732360929808676041893830852112453687962314982711021405929949751782561969952759889796842159780631843114390773944939861262745723064146393361003706077231840880334658312489606951297777897190046000136044526153884043591870501165628331750231454808784613193508656852457363947258798587084203841783638411760779318919302136147124148771018500723320902932386507226573029256035677063529029787624237266848685105555178610425802248623307521598947207767718801561891997994763531905808900189666036266573633253484168003741657686865449855568956407092895427152990091864148580090457667264073532351917297936210517358417524488107691844430810413538594473109816537784307643133068961117245414151272368087349938532588326817374954044349872606550604027178511571786975893361536202297955564790894119605020702832351105339028689644255672688028114885083959620977887977283247421097200222572183391013090984145622818411718503334261971741306102574183932486372738774473373136703585659810883985878943319314294761921740566395575741682571620346364187544835590087428478990279843939844206933055519551633961387639608969654147964816030890235719130126511177965269065700685570760866298326612609099717333803341739760062390394426568963093942850732028480294440601738745233802934720004372725624082711158969347483602103706506186517195995086799027615031944369982756453083978816161776143222412226109893200017533685897792812367868851753368744729122751500924811472913721785275035065214169036373753765739288111058299042967528915670391156966466315142178857322133340431199364642977942451884389554638507120116906107352408031447631189706073655253788934091791367430082195999120038202370839787892020383185188797114764364374279864721707948667097014472416743724987387605609077487243454925084187135913377819193844061490744063734465915818117466287599230439513035592350297812688748586021514620134720341839868200830441811510533231666555120934806759519558528021151014242430281751549563895327595210933981694918784519834406554339747177095768200876308187124132434774771808426036471835967497396380169323659586982372772097074814234485397401472992685488129656131402821273709368743096637864619545974753404970817365520624103986266231855718966851129798025758171384594350768938277923218285863010043334048282518383112431530234221321279248640468816932218972202580363423147948472968092298684427132251955492223977938040383210671614528728553313576069684823763759981684320655529347556669741812005531036397475146464946827967251248209248675863390353228862107384886707859374008837652184191211786725815093463120172487801336875076444051971885526578956864757241600122790603338456551186288004905740865800810549389864213371883208151468282249641440673845407996575306632208036130791685649617419011013658748297047336256208112654900563018749413470042756764253062780615445145851754672394312805705657389771580590518378238526068639237499817206304693881333181521119388847341729020599747568107187713124256795470656201826049064034729511103612780952027353670250956032279298838751575479638716999406946786594922550796153834879258698341409816234914211945659961570812691482214622690152123441855991331327656918282465695417568020331884541179580674392248125832567579213159162166426381001958505647563204457273088213061708515148371376061147769568468333895204403376376902425646336181954869221070402268090888019588443134346767136627392638922027361369024375031264594186431415314940644154936300316968228851427577564357750812098924749651502720044508392262880575268583035571514362565352582332488900319045390293608677844070003560429556012535272411173779606454204169012304403853277048720731953362485051450867590725552594732119311475710800900191557151233323534781604370224337423272359578408024334993545112666942007051541980032385348889606734320739383701783945622774381041487672450815175380106989644397770554103812873124671688588079319799182509073547070736623624847390909008971639479614835440305382443286362720760910836838626301231635140904773802863576690015860149890983443540232955749164786482195362439755935681964426868261657076886919908011720945683806422568840356036458142468881580495304482501532643667701875195938100346274177395432720810778844053712980684382668181136201174301910910595141383109000216222656182059051704449208554633289470860897405438193638233811979506024085518893094695354085989981110625630703760945606864304227530504179042815600557979400512337200810569191757332672325451376337304827384382093341176781564323434966655220151755430844726122796610501480491674412469186187962080014152524382406455286497887349039089406363891499312185049094989633188762775635086149733559809231432421689987792051250989694199360040329461681874037088803592448638589853030680447414183665433445180430374301574429244657517909943730138200452821772891013391813203248484530850053045901099053168242765719237433983855410095813122355293136601782870079934629444267512842580858478514279090280944300782959255321578777946050833692177977185700869807759012268541581221545860892423711310347334848963993396822940199421297962118701784982461591840272956156719770092557606447057777202114310216703751456897900623651854904227869266232280087681122438340491853422344688742408044248206146213031623428873503217959224851755528581980920375867653319688042660683215160386688372747659946681681058013141079220819147611305773979192808729018913101046507686382534872413722616723251694981480494748108957804619737476649863732125874675789462214402237027116338637563601138130496325485801490981268837244121543613934109338125524088641644332026516458442438657316864391065358812090439733120812228444528165691389426067748894562477081478115617754608485738443470987218099405964447469220813069140316401474168477364488365017405542003782646804377653913148607516836536585657502328491617401620982918372878575273461438153945512209103945170699810465993728119848984055684049415181815376386560837151875072763876910519554035670015916417945029530882490929468844207617643646275394277760892793166598104878741172041231228968761464560722581156796373527316652043765967893485664959730402229240613112649768305382593702948709045267294411413238028056200752306004697366986272079019275363182401721122073129648674319270480616731801201200890168031642750973097341658198892857530179813327834068795678496423338755963120724999958598242400836093428162088747303040353476899896332290544664682850826642011556615670224545268478691774277963310373669738930379630261739705192912927445138644673804412291802328259726638931609096165593438831486755863577446975939732610683290130990627438764403971272576133358617850664010198278494651529680498157192637664171470885329786049806763389712291764892836303459244980289263305764132560109399710375603907174458814266564083987680073801972002753243492743607950697233314281825365848930636928278568265294276188768193415196487933538405836352908281062569065029548285196484996486020317509543723173848314005759636671308248804069644773173601665364765385575806970163531735343297117935229955751508176738151343029380775896607233643773587282378238079269646953702686281450945737098907771045960415192523037968558978000402820809990034233210540047718754901390874776755693966769743285178903929481062086550310860521993279817260172567968724819509355922128831600143559613051784958024354425250271200289594488595957892245981732270651392674060854613085094377947663779106475228506342015435191545090377539590573800575761032174522661711815036167032262532812900006346149856530656725384560919719544551908875090180257997415129916773301588632208381975509300843332226248496361269900721022501895379288082465946408855597843767235834663754411557971197131334547010912223408132730597038404182208583108486159726642158964637364232781658818631816072501549318789595137778914202690686137040924729775724211626272832146583383881487963120417494423307264111423539042975099146968242962270894066109825256154319621964225262231377906373891189056744146711623923284786892616947141292080825136423469998972237920569311128443111002670426696598112495533312935155217919127741179561451993661003896202388894031140855055063121721776667351920508453963527246301505901332690220978209845139946665625973390458190799199246761841986608419683551249680665316474965803754152152299171006088513712376110409153438383778123186554834167839202530828023401809829403840686144310872337978083080218749439190121274669038326408808549996600491450427792016835667398538801697390088460243298011138426605529942671895390665379043191829036009638763846032700110263110889675482381962656933202953442841939716292289651303798988990390929692036554595620269904784649790925306048073026531486527437601090385880262361757510689547370060431636077157335152536850176370192770132929872252226009277017690078820804884051119715701211295940257178860956521916090092069361520956924365069736194850602462334688753598420592783204309974101150873706392303699487743897818729097598078790474023163742430905485202335291812606455534795239011241343731272321350508115482233217460495954496615677246044763558359973358488887496228617678660470025766742257184337251699834643409623988020549873615474448080523713144762633706719045113303967456026851787674037302286547643341955195961584933340196608583118029335511992877396697934343773503805386781901079453871314036614955112922421536334553266596404889323632351482666402098783334345650690770695100223009432986433085999472485523827794249350218751201530266742311386294589531994922707626547316210405000893055866135018112032383453166363454013594322447433494143026816832385816808676057034191125828059722247457524916906657062040830632146014276867380820078467081307938935287298393208969964642633396698914779937305427115067774358615241756927517375007698195227953027830779572391236396108579558264891976749207550672327542708445843788962807554408433485717012612919524185473714809567117159803463163691290346043858515490430978241944616184591659555238066505293847317135892744155206732165009230955670876429547983375155474898158970835617214970399384208306649949695834436798789784519474691448389994181140078000641932594130720949918891463718425492036492495909072689715271863868673414430366289176041862700024208062410629431720226198437894796364560617957285730787951690955630757083486302923960501223060765752433297608324181505530167637204201384960736081579746550160201419459837518741430762731482704353694359105007738726641358066461915224278113507314903341295685958626948915059272828484244557237788565961054709941850630159436942812792312242324369896825455189634482985075180255540414580360888759311983719777758669377585638150528247601702213703015074366525585448964200835715034390637831641569802664491309845303719640888927365998533564291999838066512727608540776679561045667492552929735157348216673716661468431392781209783941289804242777102364591690747071240058679920170799263644699627966762908304880525922938632229937035067714227024286146961616274018094836176727215730402578902949552907846754036169135850254271195264705821692226046915173326303081237199034654353448458644148917991963245542613302019820748913860563856404731449577148411512780191819185694234002569669663396610180696908692597290934864191179290048640932320168765235442092336503492556132830065073459624121645541665069043044198922175709465600889323670401365481251650061179567616523041736575909484759017477742791510183101887424500410123759427766811023264374606018285946328988126238868771183896746496389849423582267408760348392598934924535226451017289026421287908604107859608401897892860782969547288603832217639586555400389784197165018556190694069001635620470271481323084427966482668530915991133981471965755346991834128201164939477751495091712582725987074541974642113864506132433303348387632231034403062171550485298341021182118039252104420543048775177185225312608464394756302086468680025631680766245679565190967085106386402316306844233809412720207339799372350484573310476004393041980573015126165696300874419970731119269353944084388647713804692542458974132659826437471433637923760292200114438648687503101233889147823516952856397759348936718945945057594935549008305737302621705639033833160582471664748048269310188683838793198809138318432037573049744282174222017788647473081183693214417961439221897309513115744995979906768138805556286657186317012593091493681914406624384210331666098531206512466949880156005974272195073162664051781531893875575950976392120541434518930538756973330812490851117606013971348990004804400644345895053598041239831383572619682893770614323860949290393879821226532389470225770992314998315705270427954769715365136688571188899056358654864972877563961581355501225092188478914858231173653364891599076973747294926451930196846767535298748431398703700831487529321171593658389897303221527472715423340814575062949323863168158118313792258101909929071432790333960440357586832419974315550726207598116776086172537880309404570081652517376460616031099895339255198435473293993281662993188552353672339014791550514763754683679132073985740355001965043282921182080675851200049642032363254368130572811656002726149439205610571965193981970122364530319205232073901601847261916229158144214832993746759119484168696864925785145956533450910038866223882048428201124835439309915824104384971890525517630604882138054086055997911815693758482728984790824617291855029007788876524868715005658561131359290041596579071134936253776236711619270267880697837034589433247377035456726985630683402527821857262148243958148307109283822019702022410154276486102648360873493425695746623017642669655270828913222247448593615249453629427817885831112555550187286802643623736618594713301922130357021625579547078969540646057234895276941909394586664466468236815708987987685341215345593893630026786800402235903925252942680276280816635857901896169301000239805517997015142350795701318285023527790237000000120745495469915518208996875809035886720033384993380372024759739338408454693578121875475962840819339221946242821148908238906579030977140136343652742653732539157360472322352902222710998012529818945244844691268528345112185651518859339954224468833122514811281093815427684298143444161709633797465976283684623581135370307682750096345752406949066954791302239087457948843631404695175914905934907468828707809666560147723034828692495468870234593178668060515813676919719036829636746188019918180871488171067111441048054074791243950696496611316976766861610739586306954092753222826639459673166125007415891577966213016270532472666083340404366199629336463306769947883427619402203045984582618584314906684676352936182297693691405014975507964572046996655580890786523751693787021231990773673996165482423425250797092642830645997742275903223087490390739093423348945935552321055350178933547887230142735558868356680365636230916512937098866994833350053192984970917570841021515123757909172703463369554974064001363186421519099692349742940527344866416116564095220791404990736903785706155712202985157212615554032549210606216082412693082308623138223312280425737510600036897264545755801820220002179372814436095553710850109880016942178519419695191944293603507621053430986781449728541753874601919024607282924318331221322760437589824430279032225665879105267812965085496557343162412894050541617511788448012960857562583872672457475234569866221151056895387004636806100475226176883975263889037692080153356056165200517155656454428424366204163990058418986648712881747150218703346841825623753488225567528982591094298666168626576020923508836131767952918322397277507343454058942835518389488117035979508036872213663807000941774186107516732946903637890068156675083780476036976073979710003946120494371669466833766537345707980737338584464549081563652769777010645199779865952939709458868655416670205502830454858323430108272093804659286973324372598752410613076306527398326001972242181265706342010945371138433351437770242437252037066946739776681019564171310565694855064617956858457063073630750626715462604056248952260894536263136335728968012925822704466436801724852637753684270617562835216593912944161557250403575329924583540074701291566537743165769002587508373914115530244105489021331460436076096281921415605970809099408842832756833181007642762328520333680160884016707103250636411363659521405662828688760759219472547091840150822996257876768729640580542489526802973423471592819205282886535376235607758460718949129080375126416553486451717859967786126722103199299185600015073996706701394592177636268349314043910240724450565445057046986955578788261749967334326327605289866860710154830780627344653541061431442008803190411147434096851604591659249221480177817634595997074766876287307015480610170102833957462306550446236144752785409733383377338224152628589796089677735286868193901638296830436699811938918027262346509347360429478985590741810717521600037167186269003316894771322095025529145404535714812345351756983152758220787713520474037365808926242742836722632690187940263726184912945488044514864532982584545032419141771267973680745973425748909489990320322904390339332208958766740494287543384341974245046021190981146583235477673474369862030193444084476462815744421981568049868524807686491193360598929587253384618722858387113962755306399648713060005756221286339722628699886146651965894065851846061702956898172850143698173325119253053367549862245604440205283873008951362937886414020883227076453529652580426159079605383994398777524166740416157211430984210710225494286041469556760862606374014017457029454071842007589190065577885719004253402851427424575233609635977614887189080393483516759664218271988051585487481067744792037100040167170709758637196775608542885956604358031608241463260620574816871968326248030312608111278628758220578901383648915639772174734023311663087851092363058235909934321821849016868663756382168437241046100268315732413968987597730092976234593743592169409929825235536528902201604481271661903123672963941333340354476355078537040857039892200176697878130271693169187958667105131979862828275323554974263881436652092306586766446230984251158603537193126958115564657365942647787403718955388519771039501959258149665533203176500454413746320565806463900250919215359839279795808341124570622935933165787085238833169293637189685297450098182930944328784973096022905982730256433396616670569912926041371885823413120013299436251722212072959113885271306067441869515851924888548157765576987458474227164567674122416159058221130909398898565317850661317233663536988697426324408115746677787853275261704771147287087996163803100968884460006341823961769113287791144345849529702753422515350908743222432977349524195738930446579348573443846413838686334131182299111535252264684174404867985157932409671738702139618094753194921134064450737676160654075691469524096922563585433987452248500638191220013731867161966682481213673331047478069974414929006627652482828270067666564525649199322576967194627264359947098477756409333539573571917246782386573182790162275262023893674505835470405489124337324294054238841645727680328512259147252704643278442797965498394025872793195103361761048660354202971997233933719465810551204193135229327156801593990372466493968740193294016130384013227806713443179468354129263171301120698180433399541364885721628903125064068820539344070698672286735599164951313780694320798293619925748175289881115423585452985427846766102763573490360304192302011573896467411069808841930443077966252517714064349276271747392769051106893318338444089386056430805754767204561301628778013831207804802981787044383054333974208302443279311528617622321133912879455290193681065852799074897531281013829603889714356111263987532618957280020104361967770247654861977782216655174466865885299359771177813705297484128592710203312732042773409598530526893523623247951450308421668537759036942225645639007765425001766083981419669602120585642860636073739142867911682165944104020081402049041413700033454847212384879360265660578557558861015635494538512237353192387632241204975532915227317048360511168949196785346561661630335897055915807216796718817311181826118106503171242926572137858983865384821754664139264610646687007166876364931413513871987862877268762983114630386375974747655780190782565627533201065271229586026322090541147115590379352351406091895483528418845251530131602324253440387382854871538578793334429787739887146860080377188922620574656318512706611427213247182253389843582033847104622841158866014510211383397450504963386616826927273852604590967591978700807273138930320140727277375970200411500396287994696075069585499775148623060102813496626825735751023662483364771868837392288639463639234267856000774077692710358400489592680140763773420588101134878402644403304169707390558789831049100272684414891935183440658964043020446573235980869154292105608999011485422973839060053449833431898337759190978101481770737176492842801831007227485422469263095062988401240659150254657062992996173721929923376426479390848984770996284699456010407539830075619877150410347167991944372793001194232241851320704834996187245756787884656978260801778367489781723540364950845043262006612669593197355882118582238029390436336225380818984110924007520970396962738916803252410563585122655970615743881581515976274523566005940773293373186810810474184034122282870585220550096518914919104249085253864511696942454572540048495146857993017237036901531204498624891435245906760729009561331405591781694212688867721645777146790672943988877278973708895171386717296595823583809398689303025469155207609482652656581799005824376841959585871758894994607276723906917275621603486887870634036590518087909657912460700192864142542641787460625164438387718701401949869147328511659145002211301024938377895172545863038815610319327827764219770712505679445076275940253876401078334979233221152869873731208345147411662268309438409893483497560181095092205285294793206362252667771375336016442174902828990422671214853104520859400412304697392933745700937811863531330740056076010630783165442448452387037334070844373783442396341655093881373740938352962354302643994973013308378474591506811095124405404644062350150203398196237434852712836997304340190603507488531633582883324468623195434478934168745184956567616609730501392768744316735863811754352168141698116279965379131054812519125947919005523959441672285464771172248541963680058432286337959594031780361930050897116054457403553577681467726057918244513238819985209031704890170337074925916594230014831738954550490543072818911123758299077756060039610283006695830225149412678009059331732057697834884718476978744742587683376928486310727153310163636807270396410368390828642717527473551684594127325207541405056413540131245748349565819459893580004273840814745642501522054604828997375242863935349811984864346441344894302281253802835737904335993750276062963893364898911576512029106832714808652850206418200913435951932496016535589663568782612551919677090087842529822404195264301534539334096344030745677427474175643766291151843736322440351141904171610829569944877785727925075700848264186844752116579034345851515514081415894869844161112565773786259282111650245939086654821540951835581979868516018998057162092882012752031269238578738639923113757606940004374630989749407449474076473362018812308433997442180825331106238254333370770780066327462517378810743332915544680943556153086477090497352168020860046271030337575216515314723159343835523423418575837843484783528445894252045253761894392821851184174281079150969381933189483731034942976353834132716175678142713825482736839055809221715377582895503716462899010631004604304982503699567355175888644135034891955930699639932877192663308745027997856413669382973689113567478765016443085078568903174733584507897843312556891742258735601388301186883622957249307811487135176281439913350007905830516307556300563762967449642448568145770649829053967059117679119873808531725660977387176235331169764281992364770745481329934200619196753048975579477669637462940625658061409501398112165081605354045430313898212354721927450482271254497508075277526076293148152861701104632112820313321748957513327602040349952904705996582250418704816247572602827132114559683365534330392194137294374909539445012331445912630127243657326143984623965255260393155047662946854830748203179042600460588970282269285273078029230321390866805893918171414132975136390275727424609040299576574101718137446199172922859060609863311436430072325874142854977163582309188614846561819508092239915402257998403446177223963276670488481380402763636170479869304916887160936709997436532294611811628012959711116118767623208340373889840889916855544853732163441688177395591744684386647979978387055821262041564889701848778003117077158864298110680262436489453155678535775446138390557643240027415159123517423114154963854348060530491831624434759440197727941413994912153363508847392913096080129810658698096107872360152490716057948848652684240776275506398395064883224625590906518979949372940970430138578941105674392188419019215507469828891744865000166168018532024526976442092944536447008852985661189995127061669406417991574169337514334367002255587400296574622076041406383205863104798900852377865775891481145780644572210026472259893094939143958790076371487837334954164901588792252285572757729860926689708949285235248972064074579496084670495544167532823547326391613424866843838935022248004948212147737935104678927272826872679503530110746567712753769392918419841198739266867284860607380465149150761210400046804652269303159851089350523017761719812871045730602161770013130378503209851911030425882123337277952010134829220047122005658539507548077457058663796323194298979192357326420930316483546094442834920963279907928515849375234065615401387244502631778585858638807829629331235622055830522073229354415311101031739789453423671418094951502764428479374680442989870473851288168788755710126474206550418949000936569117007332406150688006964247216703226721745105184743318524554675512333068044288217309289179970262908325406208399309184795534913999055767146803106282073152490242295173855206479415359700424077914809762296314604849695943392352742329880722653741167519458752374923022073390787192941637926049837559585840818342792653300471612609506380839018404193624998558006274536312715985513816879391177265117004845334838501044171476561952062895066595659025590562192754155030272384387600154275900270564599111883928609683067774675145906786927517266925677166138868534158359040587917868396835425485853222613427521667616427073813481679649980940401500533231865119272221479703461727214042826085417424519799794404173161506080558709533042936639942960744428454112106507962132417210736069447237915509884177609625848419357964539754384968431434954256983883170807969756268417880156303534814297503072073086578769985708139918719028522255585035613670772148715622842184388574679392932134830675100488678736120816005909914379707279893740926502625242071023583922136311394915899934367895965335228453339688168366087401618490191103296688488978399757671804557367387591917757471979237528041462072624621577525746447955258119640944020665914203577393631896972728019292754697972350038272192081963724429693527880423401565422509580462610368431588023442804244043055635919786326952276533713499595285100810664938158011181417468026927118377555715625734802309572092577952061288656824361038540903982681899161597126098837474844074393868066994810979070990951757080906115916453277298641349239340103665366977940035904648952689445074155138309857873751591586430985951325736783592630311264868009942518610854061807310700042452178663415406573843810494231115351147384003477093223060386363982761347432578213453578806796231797093538098497787472423749046282354570485623704912335390503896573889995081833133267546143416396931339116863373543941551126696128423779266201333745891945650155029939734975772485181355194526322913918823223257854725439917610468392501931231129130206258552158884536358164623366206925483078286139502755278194012643199202605537861284607189632748769247503249484899258380006286659244736983639016652014989491368939008005012098392172944647624095415581112697103899865146032154771470534669641564477893048516215880942303499144349740595616643503294586013940356581305803097208987563270737706246693825809607460115180284734587003033248128846605665963428405746648765064759276808366284724236065020803986858650596937013924405968256229040242999275322066789838081248074132187494227222084826496286392455293914094034505924759442271478932093592957781748467780367661004067707757387764608765112863698077026276372249103888535198164600584233206995179842344850345558320433512082463489353249168918630741567579666929191801549287008836555820636319182245446280208512830187469527013021528440679471232710923694818114468531046943477799995034134316846547185563156705230957100864483428052776075245290753438906020334184461020774461869402943034589098473896126120243724210531865840140974213020895844999143890354672664745080945668070135669790927748900096639314554341194658940264287402355534220109342096452679548234095183172400311415078346578271235530356782515645822409717964064172681690368855117167303565127148552055581123882733535955554282454208231825341286043446252016491564606428846140948846594693276157321735447331602809451127244423285804500348561815394664250168495415845873989672885187223996701012750002683282904936472239506455520027402208962823483348340196692707189650410051429355616119642884457166881677639835678704250792130136648588344255124116079043269266582415416455614792043793284320885690142988377508706752995968564453710091619733569431296897091800388484063825885103936084628220399314496305867268238990996724498432905393609412804394764638273247730295561227339932928957712387743117628444609067989122559399232534304954772909844228773370864982116803042479211192005137088472513060384075859215785215137312833295633304135031951781342875278212111287304126393183604573281899811845488579012652604895452350436466426824469488794236819081405896358597722655828157918189936914967222429722762114354859296287668851234276577871889145741623182292775172928442113356668611321589874999297996487187647983797554019250654517697622064459246949034387649675248765686595328033769246354452829273551224418714791176847317840292242248147385317378459279918910551168600908291123449749695952983737340653963830089774590838324239285632568944495069589435468018832058977821100717417387268253750187441260089749311528059552048574531784681720204538703313207804671575313941014320693084065799008062692559833799181459519428188757859628529823544381925219634659072071996467772788667801654815737173290853187677229031321632908627429107109610385491669632772475212639880384049933906140522404471840804336003159067180392235552535934099623225089022874566470014932004332873228855949039017937851411779044097146228067347912552008344401820344344063685546012117494863902930318594719365162380446494397498679501487046994783407141896098459914120836954780853927270541320072129026488281985430936635498080864891942534863680749213443695305211961150056932848013506954319137672010529671118386696960204831184137112833991410015720746641038550579917176557578919320103973775822157085285736857782728745135703550530791610897892148072901501689496887519581923898036799649944853986600744334599146394530153465904860500282503230563156853243946255196958380129675951919821802940021066097134685042994660352605209782003002956287638183883995148230357824947396505372350594541251145074553243043425710628290599142589753958500460991381197443062120088372416055589249463964696605875780014884463998665749274313055473194589215384264439799522192551009956705730637843926275638131132060355966220433909406767923453259213929815172718626838514697564989962928104786286167608140205448740877116330085789951954395152780856416191684555187668754134632366884106789041387758941531987724953488992588960962383130816240426579150028011965571199498104022609382611456412772022725032791151105918614472964175482157094407610465429906673669276441916378974350903821979416415770127617632992007142449354932634989798340057589963592014736998471480820695656919081865130036938346686242583919923902726419385852560795608778726310565010720009735545563872897921424149629294245383346117610473240897358712349379822475682021854808841148301751967940019776012581534596637808353739329882829019093522358654032287000164271096700826727348891713120235383198110346250371518621620802512790625513334786665142059705028053287925210738154212926121963290090956956296113422277917313416869227411692273191892766259558467951107350438894552263769586722819541577551324954387753857325156004540431768489873645533725250666365750452666692611250278389092000145700224891104943103458698967624976900528927025346522114827436297330978128496763860918953872299618946242037879601832896582960688800230901797866566821363246724702576936196472959229712170740096246814821435757436416835025242701913305268944146308486569176174031908306744778328422221772041238212277645292140085885293546911568731830600997333769403803724834336683641247518361702943672225448158997862214098194135008218054835516190650478779920777900055362930761761096135556974608922442518685881379832236619650712471879846737887188002719250846928458001645557870085319050263748886323625609216673176333341197572954118500859719472275796154549276423944943193918188225301907392257401139787649355452793969469882040677278868490947816656906424043564274767686978818057855174989808216710897655023289169490649709875592136236974538603718722236757009877760432820942304087719479810364781225333635820046224588705813488377969711321948107965019119439555134760768431766825896184638224783453562564685690297422674868325541939942929597766467832294018262877725633574293732694148802824308252368210157960925445169145621022682443453824763255462940495239192607225662987543328685033797368641914060939483936151478792682754891976519863207989298709440818515054187255987460616175673265247531221890153799714917532004760402557132555337778407486725750172262749369369061040986516751912693982264063679630093231395861471028054089358537686945823326606469545384360741303300530410448397449750339532428069150543523818665913253287434165504827420245618555965014362519531949267396164045343823689111018707270082398542746895999898968279273601694576671690354241814987628237014131568292563566874039243836626358461661903400151151367355238516595104848530355185572077256224254755822236120587595282841273921849486920966900530817498121432425807053310779756332002585084735540644344549919965179967107798654315184428130601135179357932442609435254779560680984770013740050656502850987786627283062005825895175717792826432239588030887062452946577777601345309055800245351552296639416949758910393079945943705361657068081670461511009244728870697848850966653519542161141248371197543960138910801520821146696997353161362091135311479079523176252374957812321343448429976098260077735076485976988024221835868105149911533790218964500107511659821788016503092995438271661523337583127073323927712373557110622273467602025512538753166198660103843767086199898365582987166011232862286796492783219925440253203006484977271317841222594965228229025152021681350172666326339808758426343549770227733437389289472208885023726399040962795021139017047085060119976872008260807156304813218100975514385594958258118509121407240576720333271870475763252966573811258493581537382336126112741212400931238452348906750087312434143637701956575248855710026516860966860657934225666306977752611470060146521030476898124524767385841623715650121140825697814318148941227289794910743200290282053630290691081206086145446515428475948148519310019883724526323849449412858379303021825818031745350676469243565180532393798235816220407733878641308020395239820067034686544044097921197803407239719266198138568646125126494578264914425829183216086370142071039886655039203736423613042463280928937883656178062979406314434536392560764501023003188792519166364779323790095672833363928402253296432263438558195701844652563448686679060983854264007997368901472585394830331868925584515188897585585813324215943719482688258506509061726505567767071085153634805804552360391173298765692577218447560014365557598333584286593634947095446968721022242378521561029247797700381630138297984745879718301021092858111472748919489051387032217740488634464606470821654571231737844862676661705969027877435754089709969239477342869355514119949999017757273124127493082738421119658220220881991462596730541101082842184282295909571492981972555553693775814460739271620745350662201577918193248922037878700171772457786807384994152698527307077726815988424109328296147297970167159262835370633161996442623056268640937477465334724838239061404627907847494813636276175652873774891285451700851399765064655666107296300608372330085195729192844495930665044560225534321812431774453115651919227700867878515388404871269664044637780270742554751400657563574811176377323177134894290713463422085050832501870334789021436975914521986707377066285266457185720842753598401443710686259976448929455756970624764390194874490726569205217605704395434941804926707376361687039911906074714650873283517572828410104361341090490488330226151767287639810811756793545957915473638525875258461884684335994920745823616762489766342596811085274355067483224009807516585656506456920689812896865787621561249792838251038839263194143945310123301356805463278474783754581512071953532718005174955959879152659939477801930730231500984465733731844618696809754308990289831424690581230519979188437397175567376263151103349271740260328109098516548327532562383535664510945538258779670174454778081225200466415888322342471968133558867412509586105986819623216270405424938224023145306345783025064219242039756808962984744925201858417421430983962516234665784988883153667857717241623002152224741484145239542436640990534717701444114469834835720779284517797510024658692022335015764557055917906472241708324113967022679378431906762867212071975047623420221695415196186345204127568051180500400017771028836383902894159854762617618541286098707471561304720366280588347038825436583322141548560361719531941976802434833045999454591964187804427131282873579279781342147073658423326861156059505086607078759422161181680682044855389163798625763221456625229254368743826571948996593919869658080251213381420603932051020310561435283474958891546510792072736159441825560744768626054903538031951461654512754050344253484246497016656260516566127945908770768632724879057508869432577358109298580389308244907117672766434247984293482088408999369121856568171787793895180010417684119703417713238981514788025053287176090913598725982543368167754858923457235420648891006072608027578113651206887170230640957530797330292181587532931905394263185836378357199273862134454081308071987744017256518775319360738105772371221176590693825994930910797289917225656921343179110722177554402470396250145304526734826192083859502643925744690228746831382824229267499194410685984534534480954267534717127042695935581142258077021078233262962427278053848360974510775154285659301238888981209320587085178613523766435024721638135203226362745680953015366770458078721882469953150419386759528622088823041812247454207466331830364448352174657022643933063940910959906609506870313395811025962540694412902459196892506274281906062062947306147880259924744888009619364675637405053741501258085255925032079461395273783437734633499012162622753481351966960265841695678837285676241030983527860428562939717161171939025359652229404613947794187824224262982174176012703075938819402078072262241382120071106560518279032942404333491742691646614429613589571459823779150830988426540896237234194417048582103485031506587911544024889498775788972228428788056843113512896645501340908095992429634019200279798062071024811828586456068331226265299425380847755190979412647254584956336605895054350632923586011982776679683343904973927505383351406985349782380438109212964907966464394849822683824399232252785849534399098110632128889970126480369593490390088706641101392644634685078435698832953569152466763626272061057040239521444397571618122375686415296357005646476509872736066625957337547853591882269868747089158499770081241364453765587768248601359044459867106176324389288861965834348163599232937512368362697268883400608069864503839501656299842838863783054482756425850878393857843370955370605206720973267861476268775402788264522694445999764484670330480757162191770809153838451536703540642179026283911262086074371828937671973097497919829673923700126566368345651102520699137452632788190037764100645131647053544026296785653054504940687784702965351466957546494961686811730738907635972214410753832769053013385878355142650682769171312156105029090803555570914125033536188778633160921379418504442192529919554982280718140582645024093167606158729163795629673183802136057220890636121135855743395917952985516200301745585729133257182691287329158491313802353569392723426186353597334399211100853667211664697016914528493361478704841024192481343839962891878826111511774606728137142170657400635466989581457757163039152767509715052402780317416141398668954988462960628909931834133847882640500553557044507166009086492732685272108581891906902730511060578570919529596033822498877449501485894449412894558263984960304759066124184856140530687510664471915813936463534180206988899476280751369419328053283470905663049940369790272276053207118783127990948905990755482215558970019402819967113014849459820063880159702923871877334479565730812288131781446493235818023481900254297786945393571852155435729094581176077339580299172126543671948228635221330810461060044214002873163055994575769904559423267437942918861796374409634312960304263508276460764776715525750459477734990495639079510037143379071109808647370136906713595534230270199075124170135706152717934490487601787762177862447214523193803956214772040743269576304657326594686059655986263967303005577643828623598386835503759219868114571556791536292510844745934100476139178222579795118035286237486028216947252788071400234429124977586448660512182310603853400125427333074068450472574736175388693196964274022917094003954184458469797396390304605330784061104374293133233912880817497737708313516441714436389421469634790679701447393976844876154333131978649535576489428174419643729049935042677594711311703561638890598834923357490211460327826479856808550664470027122282667789298898209320719461137257428997984730866208447313267761299405981811196015932409031182133509017661864214234603211522608405955539422075200536654183927314710827181197431200462447350907546570943063626037002365377301662078923847800805724293673887199872617358362522168855408581710502681302098094209516859933942632911695849988436247045772158413053052259709557226404622294232402126789692541767622895373128606392327864932742515311940155318780059088688776451294245703988176126573385149759890478902968152088626142174910335821040300974121217000539365877534011138547630563015417111195699906544748373842618452863829583810756978883536292870571068253743929595229105316442019457613775884713048756961614912245701433123937050036487554890050650100403224744327758539485573243522239587362918538946970036766761302982242402408756456663167210680658389298232384992425311722243520350982962126890491953571992375855967899080377799469496646407267739478147403359012064338354124884880822062976428358441725802654698839253460640320619382653558988308741132008791801227497771620425732077788556043366632025395566622864570754030683184225937255209903999730222670404438019520630345101289347410467735154876414298297679159842666069489039992809727171955143202983497358889566788557191874066697935760469258248198458341559310661087476407617150908045142175986059373734562910265501019280300294769119744718733391162535478642472810022089252302809580203682825821177256832462199315153833481163506507908171922675806111261404603879399918267509461662656557577849792695307229612880273760861817393574196906931114778887688534543979291892294908229105410350818824527945526891677188471142044324942258478465562098599394148668599507477037402559428429170011398856395721583537012707773659441561245598505136992529463583884044101375581156182464841581737651161598954613962094675356214267252875803426299335815151088283191711007232705082853510235653519000980891292858717755544407908509105775299637900843762096947058508755189549832916770940273056420102597022858902903072195531199726006010637199021398702539086391648036295203278016357533168236706409168557804480501707702271411498428285140052201314917495281479175350077584648641748602149498247528794311859648900503763102116925488229511678523696530600048058017904880401662262543598870527325755238311950739064542804141334562662911078530402295487281263122590344720822944143244221887646281479916578282875156176800532542292907298008786691376952342254264301439791619810177359037867195864133925221853470863576670300906732069712425819869678615091062806403194230866993026041846367682923443105478227673072263315957732424005979066419556864722100645818588476616507327522222271257784713834630646266085080376131365608539663019839284217631938688909664970377932373249368538957425147668401132537160975967146371178668474791408933263486570279075237830270277950084686809639608996420364513184815325417981553833172924328673592288305441308369079367381500813734307306182694964363077510043558185213926747689467649921153080169632356627579553915718699771436384450449618131668821415564916040643802011403120004223141708739165451300538436917714166990722095272380515628974225190360240974042075352944325790020550893088378954775055993199595269238293862568718035385873885818925300319530850432949413512247151656478694875896964498753783515690476730058979116003472286185947464447679356806234973968937174937118554898735449018320959065248106157256258977911351370617695963994619254448875867276886120549330597334020615341944967516785509996317431425266223148196066397800283899922839193884838925107770049662710665392053447469493141306436415138116281832138905160292165290196442206219875217812487450989516790176300482839061964670223305989195836785187029911916647622495289403055292384586760072662706735207660219677235677711531820100208202892938019174917079870433020564170869387041464437248633930599110500217717864078108895463362679780670559993868211370045010910226899722564480479664165911513706311883883859327304426563158264537110447711373314396130891738242766794263203937670566185678716809268480064733945086660007377921794138425212622890042428119820452049476774857534123495226279654193879897334225516030066365453449081682667598580886057538821567168950201234166161522965862963097882940875272667698978088209504926471451985779503623193015095251741594685001607591648562052143647130676441712163486688699160980009175981175440619807730217496737887281657312870119242743988992577311467743699534509867872325053925288334952064491583990022409325398155844742606246179467284512249204105667972990950328520848212473572792920966172127796380691688916291512161207032946423237458489927001969245106242672480839233236961170771366640817665433479640418069954091878821187429745437395231596680952210782245778845689459408879176121286719694817106964261988524430334942656516267611285196519577540203235833524080262446179117137462052972886656852256380851248817645524395011845749742568905895244197581457736511908672798139864117836963094375609698435403217675942257489431345002508036227345320160696568429317716529313042917346401054888975570146282870128306179396435071233848760450719736135902118321684863798551486205023085664102372800767757888147910414655130937320046079130778899500927664711956866095452800235520132856813716874807966843814342450571031359150629443276378830258664749285429030677434319902311261711006407789717203631262626323486809131354387462093069392972810948909612013874098922151848205713274253300392116439358825774788072174027083513969028689251785069915573920483826541281017104338862267864465730311898186585775879050427629241181463329667158941103757063042804343422635546309630831256947364188522551871346740674975437828564540097812398407182145135548210010051200135872445027153171151563171534093169645231230374516939622897775181730647124308115266727055052918869484796672639383740698412648557431489187577349698449221471542559283945118010615921489116852754641303606266728811189630459392855899150765796659628994967357584295599966410245703213749884963197286300883985550396916687312351894779475151474288830197280529862143097447946503234349224007279055234621963175852947312185812327858548890602741110716642127455795484801852520418076136037554633436699730424815951917137112369457375262822176685761694213453362707449511357300842077538125341899214824137499810568172664244239159256640299659006774593206131206224508437700184304891238742479207952618917692671944267439488722100971552221907458804364069754362333986602821026691309553391467718615650602407846071213789347557416401676130889382038860304127941122892122120996744657823260417484611503514728546056155043562196509999351842418892770188308856387524750987271248244833590118923047703168843734744919551403756294638909959819695897202364471070972502447789335185288649662257557598289191872889348527972767191630731893195033580321065358107358741111126882637869816846075177184237641929016027241605178889242269100260868789278236648086699519032671344235573414336102378350502898382279029315703941867710209593709128729596640328880288790278230028300230076907411028879229964849719851335976848253543430380505574858890900166273260192375688468728652931769751281917068190465768363617580635136682465238996395689328795366721617987272914315767566658564155998528723250053991672262985887376401186345331754510923918336888165422569184932198538459791954206343933074690538733717150605710060373658692083016628396059189959764510457753803348467678279488490163383111020896925240669549050830597034715821470326660416130922197195172213738552740711248738335169121618662261668982686549651898739232938366756488988564743887267117299402920188550451877649146975968334477969912737508721565005795058151548497657889871014969514957318866157364155857728353989507232992458954741460894541427242736271805697922630982899011564729835320435455363293542669556054857352053082170652672434441917154427427664356070522163463223007738501617627281659042841327250927554696627935993419434377739995592255511314111489198141169748083826887358818916161503050725829582616364416641327503256779409603540388415759780738736255011654127122580591768557960811433056732820830044408563323552974543315332461979049230972436091940758886245968916657262730027863556276408895229397717336580326954921082661270398955886611908197932512766675378934618741776741155417823685654433470361611286959713054276857064939395972832056129994389210711516927057313059959431510835251154108920205866340214743749887331723342144037365104244015464262742232688697719440417218132432953949429667236511224940816667704107494846945705445173449127038488853884807484887998589475240944291856553919021009677497170553388876586151843859155769453764601858550975560874875640886676655608519479356191597731957625065318310231984706252925696317218516272356229662819131309572762077902357025140199885162736225391339042114801405876314393635301381850355954581910834983630158420651832330800650610291001785955001947520491272264514784825128441417722308610078421809965343768500896674384587121765601918240702081234747859973946525274871207312767737623028963761306396679624033816113964499414772641758229131900443961056142748617718404794095256943498330893105118844322938204372045901170862117658422149443803120165443108146146473611606404059763774567112771090090545080386181130352694562610230357642421413144698668811746004951771351573642331028810749204348801272324108023877462522888444182593620084313713246361388579415235463884291388168150097580312515483089129849072088931161032324226810558817892534552322417850014390524064668186305327412594398795694569892737832927039537245545131583344548473992071959161124236180358519675121781130032265729839675505529295254555449361446861035116714094227134306156642631206499868250850152001257056440935002570296695650578575790028558605200094868623360715289059779577786339723472640129541467005760169926313840157425396109268224479382287913287291133966869139384039349617552219384303374842804590443772070583342505902622807386173139918102955494314112791307245436338481772337028834590338394369094281528296875781417481311936983684057017272016082667232199738961030780857883743146033385073808972413586251393949256556522148195488022843506128055664704577286057497934581240919063169053975782009116892349865436902182761785245264465908311712004748404666703825307676077823512673434117322372371242720905174520060266167035099344964998554707649250920376429293903179918372300536073235240215448571803631276756673452516542556037273553073841360485304757256690435241908842449222243342752856807083376563876040182825542639118167365503326225313669792363540176514066935815801275771134241116413571473643360108724442642065691908483919524821790712287040315870298389520886633027560142676651314421264739337796340025340099948848074965860432689253378430049317782227369917569001144340767605794651432701952094369143019233835162311864475178331358230098515991397644717080542898553288573333404347767662127038689749830472825105396543661436369571131902286352113526937656470002323981580054745575740864787591266940253552527435536808657810594570725180211000026878804013973450146243531001822927644539320313754713598091320553889138212352842128908047676285539042246898955883202897387981881541768763182315785527946079850844031394278573133607631176937435501177893414816878324548364824326931700817000022411368865902524247167435297132787110771719645152551003856407742843278414051965276946439801282350955443385024917918958701668985344977738033277262094747543389954998509971806658248748407006755824788555351888788985476782724587394503216037017497013717689809363179063121775045088483558581144910626176798618714130006751945828085124258784307608741660733403963763662153396673940600377970056389004456803913780765451815137710987592276575647030136069047074083019072307994110727403528700020043392111600954312534874119633298978606099687116439624953665131696379787937436411162917173967941060193737600513758906369974657134300271212348072346161004521379190744206894774997674801101507176279505989670591960384620791856899250453131373410316604453080925804872694227989779487607808237124262238207211647110847743557862821753322333541754181471282967256084271465914167099871106546002318646607473693071553527942518193899743686777871780728734175296911989751195817616955629819761107520837330950714355760006585138735759516482359592480885429889622326496824673661653888693626374471360048559759420390143129967626477381949044592561352440874420450056161839708234103575394378182176661572631584909154195194435481858171883905311219923570911900063476963903656536895899042024437863747061452146525271366677369305343865688637152245213384332725589782744855640829119679720327971490172940910546795466483737865415523655934537019290344265567977396010154897904921765857494825425312338988950522617445436084673833581293217318432453656516138659263596036519582361503297024173510576562931788720245147212388439312722135450795163030021106178368420234267336812652242453986854843485742812655672186697797491540620677085117766896820839809866779475870309945616432906654618699047025310728435135198173181235454490458748091171487368884089948541191240016665813220353750450555190536337267899236761838652190186916116932629876968931700947699535761353303455271935590996461225615104138958104913654728722466340748595151804255804266392174933862233213306301026885636450962226045304875683966666595379464771440169268241112512399633179914583866463551496580316517723468683440435360423088643417873119526379487919426550293660237758876158233573852637156449413583926593173853125670632338439545212182864099541948091317001344079271481282481676952997824191419243330098120406800238866175818236499020891322658088819197487092210515711436096724461582886042437557284901349408446497502953237921380870530002583653299774040511041593518925781234010209113088094726961540923231327859159625840344537278190852085663410707150830032138112235127670480351845691456614485367309760278967439702151357670254011822181890261557268070201314495941692164135423550203849190181516640085776353747667372298940870373421651203142362524352118035560429443958206958491002644969853354715304603796101310065913064354593210230384268186937339202251825609179121959795876688551958288429285903364419881951410183863368959058196738829624083585057131452275850333188113911477964785098915026646929061720982382117257697018954086948939577556133735448489855344551113889256471748955459754093444829802176793190385593850187773489229140492914725934666329666851132411081816836091620759938914241789182440933808719309509116646607507226770838048032318394694568747712092375175721306649444223269059659801053973338571482587581634499798381627380203715607250752361564394904799804684904863842473800956811699469637883716105410777246983541109605669116229942761093257848783525038657987679340992010969964381345312829176398337759377034690863154725981726692889254608061114826897663406707100656022423412790617006790192987547251117720950967547844651806944925979535247777262107318006105614342627049727546858484411390382153602567421733373198029907479359775258724124774050432233222314025410301159783810905425471077915605855623531409294729143841671827325052163247016668805328576648013925595893078811746700783553552999094361914846283474892817799615806430954526117084173897853439372647053564423113549517120976786567956241563871032399908914103682199104666466122166555571432274326424040806747594804783240180632688340458827757207426189320083748643020948560446752619367291286988642995081536030798292782353352184176242907127603028842005458407220260691629090715514560389371165303647730040541532204267533350741632693875545793945571232143234073098740439291322297206244934498256210282748425613653677713546470579594305737229069919491288315888889832310740413090972553018398093199351082393779385287502418374264488359111102848362245160759965556634414378565708923059170845524789895233960223199197348110568237391904301138720000198569633053831176053102490813304392632215426242735056280056361739082505812465798920920042664056935580495986702956830712298196197661121494394117815647389220330622027960338410474037900490352365655162965824995213319795867750580505878031898409713562023411279265066600690921631791633700526012062914226595370396088719640277001592307809812176289937086190244573652645824643305714828703725001379171987490909550073848697968599142189662431084238017694660840219418051352176657452780318886630881563015156285776292623114271924357655093720658252817535731157901421259580926516760436022898218283145722511838891830908918838681830840876570849374114758299246358588006868613034724433103123666663389224127903773329811203730264142636972090110962995666950028659122785981443565722157623025300431481625393333383189913984080636143936553352495608395585131394179074074154870402256577141067648208528575190488915751226290493833722324771775858073445672184595377232002211043621844122938046757204311322288945951682579002904436988367221249906456763711091254117433911082573389144387248028886537726297982015195240676123495239749831185519510364627210212497537294230208865457678094107793850235551833498462330858080394679713670928960363951976600485488862575681619478693174224540199988295090557429269006972871430036802827565270942324911849907692038069648245544521518628303944889995514670408022927733381144958854562444193318556167015701053885540286193355432148784688572570879625191240562872682752066938803908642700136913481313490399402879400623399218803395587268315152868015141881363861743854477398200446817366097922780843969811807475202425185576611631351332232192155736475041854696907465360033840993394235184063883530386984429521293493029626426444177821890111546603995689979119834205857830101439550888495031690028491271075342966083960703792541098503453528341556005399867851589637078636890347817044258125512463932031189929869589599453052400711915690753800382179263202415098727681022328684428727090545072968694291607246575353585825888903422096448920996110430799013007636297216858949583970458595695156786405388444657587562915651981337951066761815280255884510708961546976263896645691002641477750456914658838042652957489329926510013679835145978140009210172803836346423914892051837665611371831765872821671744614529896556003443768723816313425255651192023766537972299368460723496942936329823709531728487187570764652130859237555634099882212114302808359891844323454215952356751279617301019193634747620786496995145902219589323882582848612070333508687937533175935288582481455844321346552713356077268615154576804534668693741804678598348486019228443011110881996052821286729228152138069768380572581392193428553361012352781284793571017766323363799504942515078608757801709338683306206757524373762903991852343353240404962705452965805089636303211868838085421310657346770400438126108488016429016679955771556115720178270675610043368256257930087079146983624648039454635622430897000130747519267405000831001437341284572292207795948237485126538062945559207793292572512800927470834279059021277061062017632188858978534016355010393491910452642413784485910252092219539434528166772288076584731140549986402675389609314493866810745242778051876108523680333201864862912416182687691222999425354486157298947240387183283197138703939649267783516523589227344406026013942380122356712722143479455316104223278151989146880245841488631905211553055566671831299474770677243437093451777527472301057797544923877010848190389386290222297949740882093472139632591924398422088506501424839257561186128173054412630759129629397330805308909098925558916646182360688247910879416968202355398833816355322614600021559400731535538892866320896770981220760380332192744724406990944984490885659539939096403157347800226559289979477546062547258501946479372264740701249094223919244348700326276303468252624392900004755982192263083848840110673401563179892790213138416737827007066999828429347849577686803409866352040034064217686839422114300560759058673880228739016811872516582586695961857594362045552586034390255726437877844955848000859381521240059864741047189409707406160143619140425537248992385800810797055431111969596072244611475066074585184934064566223848589461859618914165367087651465569215760052468383664865273004601716178027672970582915974723706647678239200907350042390706850782233790351076581170072315576308436837042120066652950444102150989982968687931578263858920861108460741410664429434232499862618661781393608526351255813726645598969107515733930231866016238537726701050695501319488536233189405426932399523182888525329057993088587965181621582327511784690301363314522637222441437849468614430453158724111609823077614345446994242228236464935345531155778424729404540672552693838209108616961415648562738255959363032503000194524081890337597773867601851299740411076579046899732504411227870088217807340944819041954969996982323411105222659280033022653758682183612134371373207218185508104925271668187283356168543383850671114594246888419730549133121157112433050241232286778362745651537489863339905142048180272592657156384762702555547445393264048003030012423511599018621026531645690983895717958008932370836865987617257501459804929180771810797781522428505735208830135501639627740109214259249067062546881784620274177727464409769386764390861679662429553670675098070687571109152090885958534197858571704215931954720439328045821680778218867464833494428895941943856481651836050278306069030937603534660137064976609170141407831699939488471635881362141920686619403097000326928301073639062791962604204004884459854318380877468671430243652212433270317077670827971184864930408721693711966423289640713102846955317295408575913192477851998320303495871970849725690757790478071757796472489377565372098940922520326920845861876534646185549992282882323676487554328615285901734600831310328059725334367749567131014142293008248154442674535856324554092235859968703601479297204430828630420875539798377270223786291630520957782390934360562733987025311971668379884312741078562241536072557172909933962870423443176703077215974388576154946950430658715363061587417854367973033982089473774717384592151302105240237223991437913208884537307683650024863814680974886238092845359362086086852975531465984386157035301280866456601041135285650804637411245328316674446033526729154233016441927392950867171479438256535995210960651455247894341509771691282671446384628723983327939287146195730140243505395261602203016920023353049708360091767852201037968265783195588815705417233812973686252541448376996681353658998398350829683246032268737982345923696360129427786080855520401516667723679144015447434773991572478929831925790523937394022782810270298102309183954635279466592920675285555012241960698796108377788593554868510944335454564628661655065459317131234182945642435755331567374923666798418370325669004359921394142556845476046640789887302814848358865645468762896274837367887624093254837606359754247406005281382676827887020178172064476812252813918822186642766926626963490223774609766372051076421780621056338415757992620730949557003129718448546641738831022192141232989138686288175102211551074102062439394950747468591753843558341055843685911133635882255546871550593238213760082017825458836243796916663532583387108439789803608271765638756154011771545303587307887428120749141420014206550991668032614499180231900240074106480238543294544736914650012547717027921022578487580146408839507779816620529428504973054766561554227855676674911683028343938169610856169587588779274618175244727239026456348113280524809819817315262120197540949551907568965317300553832355246510826491875206205135947864368779764914513908979588705062871139319829789827185605615299523871837673794803652723249188453444223106672414600830650287374175259130441591304861469024092579222859957552162833180916203847941348627461060701770767192950400160220368568109648723921233583901806149756811325833750419215106540391507460061192886622101648475744902208210700284944243213522326189976886644699147475083466823714664025371507226295474999140949096135975760144151613399925683566025444033977971388058518817412322467794997960820168917918824456608950658297708840410743074483870204716741473484106231607095505375215777937541805444279910070114200596887688720594396889681363729962119668841098370622638061976973807750142584664898261847625302747874220013717460938072189827740095837141473878081307532113408718963549336974096602241726439639532124468170532287174211440850105952780026733433233498655499437111518595714990929801141239748390347995189959230248146720406866269715571414980311715590985282666025914041693623863541583322220478160165258509352250538803253739672067382130104055761985711074176026144327006759392085693858668162874420116902967522739472037092578843766752473890515039018277950855299612161265303194863623707204551602943667845191916980798435481483362713568418121132511920075187234311476476585808941468331831978596123052072779276878798205808015262942199747543162288836219903308362011318470179780083406475474209097347780397868743742583989679454710430101713024602596409328957429051475275077203829981835346821371511877015201776945334945624555951386786624225777277254886871293816476569560368028341528641614302318292086140275999296327139414729756816971433023147099713952707988358418940938754228178974198968266055825583131454771576132752517878002116229473307363569235538837768943379103364517214782938540077639267726897741223604533961079446145827725321687004955725948660504561056449081924681178380665112225223619183518658945083947791994452641950086270077619077121120726146008316793185862727018030314590509265737116002302974375760329566369391057194892587978759878692998028521063737481893373743853911595117743070506788352140728521218889295325257777737890934201455466270716077569113335693645643501632581597241559216423583086828430808670722711410436366558978874239450144172883519186539292611676403175049115215218714936624058718227558709401350799536206567372710855414476467132091756003377979829304447783020260827329547054284186247080545326231830553355961222885221594120257830493387831073302399375034002418799268287403035611742321538667534726179768235502262474386349945385431192805406485779901482811541182086823759300255673915305797715538653588636657137393076637351546393125303282102620808474258737204404764297415584320553038616056297303229520559601011397145024497004362205882362014585015739730827330359540823680872700869161236918065565808065703469436641479656710965214620637955636437055803365434004044232856696032641196387142228696073933159218136075775606186663730577397446873840260524150578023714259481655044269432672894944536070795061705007969311663533496013488541521536486816717122405075586708846762286359526791758234848044116882256761016771854376086455646446916084042283197377227998135414486836686320779578976176934924657460963945826040921901452765748923213952205147380136717802530552039277547106600678758262661175929891509686634942615597666366979962853975995235086629009915113837606050672970019861079827558552621731034684241556237758038928975136967949095245923036141816212150871964037747959203825021515201289164834836364968808154686805249354877121484656825363729897373647728830491298381349725595411176471732380781440543219322344236253251089667069128942499630105524446869060885235196031212037170789646520075193200392333349918734320234169020887626373535832091574104101627680145714646593956266770357106338814669132191555720142633810807883628034195160518956984558181331302791332440090686627699015421449210134662372780303913720920759818489784374525396055290442964878079825137821994320159539895344556607823489109816485674309205487626813822176673186081224069976020159307746336098030313479945073206190574359165983686711036806821429890755807175004615646610840843845911862851437024255079921435730235709900215283924617243301650666065291111726710237927144833784592648281650807784464057601742393435851604082814080504212414272498665924057825605062913306293073174734224331776755993847749328579390648534511470038186525504891968022930431772795414902128208183363015365679689201630643998481595508484755478539944464932325152188112332487357715242675094466532861082830627386521193661679963434192342219752693981186731999444010174104067761505512683281797526054998892670822149012797258788516401951217839029719787741612695015493660379726699753994369793990988436379031884753373507052332152419033965042022217617904639173478349676147580194759422747780601396815978319284859059317492920939481064586193828369618080411897735488854326627996522368456722732477513066527715876375298674203872264114295851715327044180610593122597036451779376001552532909469180384924111344641753161292828873396151582238260446964969655484681364068419175390138967679309968806165606305857141994571812255313039645142889753885964121149421351928171125622974572375781679329895216374933794683701628365311481331209396471135016156216591624230426013988074601927041482806584634354712041185031389233459563936349619978850524688211175774502855462202525215425659501722947242084221995947092277922002343928486930428546225329360539731007014225903537740603151780638986838540277858716600416848713502228919322214875293031570227855309342992570141845486132168885121356208653392128286419485835473882962606383284730080741520005843980412946971953926268944816745877174876446187894302895127050669565022114448431317526266154629673663264206399803818686810799124387322742800402430717749772287364483284247145043876511587938549184148906938347280579648123002888433266071207750832931569788779112468190501182598786417878077898769410001919728837080425597239385105759300354015861071739229361351944680827742692286561056625638001106055455747982308163091547848926932423187493251070363328737468271976308747416195835174846926854665406041356222097853867121569327593079172947216269176357403976135634809350419370988592649446630825887966495758962371380496116050380787247222427221285124673418016516089767971582515951789554757652788030873174979418018866534973517486678934679248100186202481506493492531449536083020613862117631750288821528589078698318973741355594984922471241258416680842403762693987300164069635996153102923878750129921964930801988120176338929975567312801660350304615139196769599624291956308479883485810222272989864906851277594637104705552917104614798112485020230951725969640481841654938355008043329967230582335924937503582803876071093870496278497991724101651667626307143549955991909235630021959386982120994306213577496899280605055682934746422311889451217856041078919620652129633696387453808788899082111786144222737054612431492417218257210955689266341182683273735227718487532652328262720498863557101807996550106449201528194925633315565429758617823766607595922119627921466810921060737835416408149810871678809841784231699903900120680713334782426958900107850684856808036501587520402369064088171381863015362012363134447092390519225082514018236464579507557141488141317808436334883371709454954865565175478599913898631190562138642842908546102439354215672662334240710433001317870261047914339871363023358786390125591529489358315922949254843458722150973318785350716767710594455708204196148568525239305057605228733310310445754456922096342357693400908286934341586231499474930191432743185727011894748249156174187641646799068030149552297390856697602287350432884562274129193719155498947837039082068923251416070724635231100849869157611679040175373962355765694834234549367671508606761643259470880219704038741128536721926418900008141336038985786686811809960381301750636985586263934158693956832209919821686054210684730052796030598171833824336048941455703489501184702353268988866842424905999793427488730448707660382370906279587215497105191476250213565883261826681196426556647703256586741543670925894981675579903858862326652555223595844687367785867354800835539492285838165384231932105512829223602149326458506151012276670449947479345008749676215476384792555770836190265266658602646218571387733278442395895245808445729868768168526819078638259349734007347464324467732592808544366677586740818221101877725318718130017018828618577464858707894886133224401720274321360827483792261484416994959102715807449456660700917522133692781884928047680258276993081396368359854846882996636293054699483831891019783340670504932279465202056805611447424595627009550711034001059234123914363295324870306948084456168563922024115487200456973668655410382289390663827528695503577270301146934728254695621733303904796990600017637090025383905110756540331184837878768036392802003645579761551000490072456513721118917158348592990171598425025505754004514417360291706528071138778219915728173085869356162374181815990351682203899152054190344198539978247330265330815960639709302712477359249594371790866550971456947410607191376685904090854046848994762039344352175959576779703682284928125621846556978138154541087823389807209650145540309337429873485923759032518377777886114973954542756809978891789506551024004313120400066231523893610268358720827621064009994582154049354228714752908601357250040618260734329841309218514909011702610276259465078985350131854744436492624474930547703994431979832169486797828568339028804978397356575452221888549709295413807924838399741100785741022407943709676790396327900046250145385288080437512611904744312586908592550570066626746541516198966639116698390286302978537712163510028204465517936775474655725609152194282596590509650400102989858798578695538989600960228056645031556785426221134637468422787426071196855831411147748845762630485080474642547214174473173419605549433765951068367364619152875530111683994240858121026159335651342105878150278012233807668121567658017089881205813053238231187782324204630065999024993995668707885326187714081836893069714675303321314519252551407053528541023952092461304628285138361116082180465202016585959204425717754120502319443064370233808243077813596484157089387242655902489501680129514493059918555645452624286917064332599482568327435573171553881293271571053877190506633774384584274347616129293187187297372902279605694619636552304613347772184838134571437283373252534247091003109963628671938796582594835796750241046639363870531464697417629739906387067928952706852025847364958629070027900108501071900460491943543699064896340690045883857255764886381832797178099924092368797063594660311921048933752155345527385295585502034106117571100074151736088968025661793045972138815048044013498395810899406937237290370224078734188496652815103575973167718243080786581385310450558212984564056503130276558691590577297508067336997280201091645993005065427575274507539961345910341137914171638866008189955320375493402941237240169049409370174928448964489432338582490023503066386931884829876881714381558670784093904169018058122063374431298953270193367012141909955269542952134828250612674992247569117440052249514459199014966428485602785460813760288174931514108859934445981581431263557420128256727105826714192268742585907561043016880862382480182725041961519792519324243410706371716003182959615574129569742743111205038736070248119501930739348411405706603579734824182930779944785561471129870643180652441919634149140493119750839296778695773937847428395321717475466934086475936370477230152006052981919414709138080529938853716775902544380700887279881816664396306175281007664191896696573701829344344404578572733711191792548637369547613551018120011023573898441450404885943754857357497040445318907091380279287023930325806068982600276522498287148399076923500658676090391707931694375983605167494910572773654153662768034588047069757524835811730657271649729716359259152189073658256013146673613254339467399658705249784428596101063250410103256895795098954595923816441627232171936007012309312010356202525930656331477090903381291598577367041280240043509548924073112597099410687127963189940189864149647804375331662730108783538380391277012190315748859811524319853732282141543596025032376054950431852958787631731443741409730002854533859593364662956222051123886304370470605026555184343366197715224809832449706353241599821604616308383163708467082937149007542267823798325183739815415598346811392161428780888602536375325572478060980483870671207160793125118649248913788880696396821474321273043202711437108068475780615475059635214149490762709579659820816881489781284663144268521529440726453604443611757150879686086709668794287420502753447370123950793337448578439553404902690616617581593046313963951061393100772095251154015709055240198572269080420892375241680277651684946146859353171726072723835460205894969438883632559311204010444061046681298232872016714850938687252647952637470739615445389046078390908138517462954502548040744969196696994249889093605339712549791509809281726496814877773622312866076585503138700932552186545551803162675324653619021865655270084321622010948289161046873086957904594684448596565469526680040122363858110641141592070281869580790852940038421081046316102061176520496748512377387628154018805162538135069702753623906551603653091949477504329140027964878140056272961356081547239166082645340523174958293573982501739401113263791310508733121007024530250170720545583765455030216939856506328673728467231494748834131658886224588913416984544789207151683698912420861682870111746739230352436011760953775708541177322957595693633411519134911428294322415688155821918153866252016977362388299252337100486565091538134209945184314441318677881421617960644170837488511208854644908664971595317830299546816873555726339563353887204586710308395587592977169358231398001895639541206633648677937831966967273456059868159481677279193597739825492372016750132644922440528594800284356384778598470012519629726630219093794724464563151996028007189657266833997078846214823876126050564163834570606514093394361371311550411114299986954641392105422890470518228937182220776711668340125393351315574258763142862338413445619769122222892463244363356286660582462883633945895092653520520418013482770961127657609126855131629488197361681818499109764563337922182762542023577803702124683080079822652348699703188815577790029186071605689797803086147827425774528656303198244585124201573471092148333492144937921682898258124848490291568681900380813799115594707586267934791375452000119294598745466112044851665338696826988432417781632726943897808161240231336923606495405735787010677642779535623085334273799048550433931488149232188636089496923857164640138972664205645070618077825530636524385421425337314371456804471293622557702851195773305725221196202230438367399382826349618778337272849616195753599195185098568797281878372382245356862190359018265848473637508508827348305327991637483203488284589096448264180381411695939491423121180728405870328393243297382322099484989532388134627236805074357584674962479586503021202365034038012079518577940511417182611662937918934172630113257452912556327739276651421520971627379835944749118841571787027058375547094241811566488111904957882201504711505011605351755702829107335967167449796510489442961506135045357521439171615431872362341619591333536136316024100120107103397077474581280029912995859496519926986561122361801527043658732980841237078500247056286935510705247821973009025375616401616630123079739278170128680934600390497458813381660830770047736080313957024355346794912397309062637805589080502650028987764673544881174978209257369160043005555639724730711246093651174025210739376977054581071034103858495764086117594926601279281698110754295538935409089986291429561320348054856917252618772944810096812906304655005915184009930838259777953387890389325259762252252735534479374829227190889547557544075650324232259063176018770459593803167587784849946052089248720086520684429464897949683145084180743905752030958746508869019131682004028145606589453299608012702492198359708524224848561671971326798383636328778515788287390252129311537769526809642087852906342068318375289831570580973657673535086649717869664311906212499699038705628003302760650441326440818633713102865059221260970305315521626893325102524127232213410715979981677536288611071259387806910413105687506340910875231269193449718727427057509794284274247543773472002793122082604033785683650832038440559777125436246693703970662479268195459556469594501731216568694490754254070311546363448834449160690591267807971081411566742373696159733258542043885733214629700777573754240787359643956548872928350780270226655570837248968614066559722253887385950102471761891838313564670884072919346075610402133477754862252126605995029379492787957022243758750571744489263814017799195814371062714841458814744073668842582651615451698653986755060418796303168730651971444647815249740168402895966994015719006031122774511935323065120685478744041515626494659451887877159134936103130976271674070574377560871780819332205211462406051762352363842643519137347880956990457306637404280556449420449959938774973172066305830654888625673988042249768075798119017025410819576776306703139342859741290353856520801058078207767475634158611162939303884515913452911715292201662880593001010678862447018339418557663487938837049206933358581680829082037327178263821904820138078861241781968286033924291899761072778221048904298825730049915021699202340602025624235145696465771818086512684403288382448882794142908152127442958908609319225567401477786267026658274764475932650247664976935630726418932262021940614490710409013842494258168763451348437907526672558002355314032362257481255445630300845085268689208570188608612042593671484446323176356591927274214299363949025150538812589864878479617688747400745997480226838044420646782522840436810907939988045399701765166046160966841299803187202295191338492270440553681582535754517656735020344472245381491424921081331957680722957630960485668002357770503767005292363345259842043016363547557234012549689960613480540249864128986624541331075011955294664067694132110378477377909611677852449909482761316460436160339389635052108804381333411443725354581028017802425848335400091013193721916990528001679635207149756984403524115405617631423520091404409157174897007733019167771684255201377509835044890936350978381508290422771649165178647453306846462721714530014400362274510407969931084198596477484598265979481700800941951026621967814334865528849848510332253736244299134715362283554950326203096042417892926986433574046080861406896921745243063358956104650805180170763579846168139374690167968914940137659745470745311873889133021576856815700951087344452833537711291731636850971460820489436976092996689692940023286714785263748343843317271521256998586187873506879561293802067452350363912140949851087413894927570886266165639556337875037018587732953173323515814881801046790041290606916464889508519843433159731812810552089997663229738099038508377223426333061390340962503396581022258540904396549437601411290289002714478287768203016711654721477786822505247905863294851225809165177504679350768382899503174123223242709046965182669544999355523165109096075825940538947970387116613240999625676678777532385305697106099872156694961930925869806958727907298982361458200885110880445073890005368903376433364700790487567774118515466194192493957223394332253273598597999999494258251949339630763326387331680291771176879454795844483309469623721534844537465851879701010797596950132070742962009160220373278990556117751863214837838845311017515699992594698191450172321448532245126433394905495489204093673371935144412153945762881932439756434933729727164704056637792620743784077724224748090192402993159867780570458370268497322471942989296197530767821650480924211386259124589825135876032047151949128764193004364298120380597820076542303227381171701004300115413277149939704871442441942839532692502223928805013856176272645803680545273042309265432761800898885244713576808237198434450369930474249584486431970008319701690878420512728925960059824890124610690101571411814169111959187152820309485294707861329947768419656246217230695594949348946984245911544008921925817958767408290357104241270995905139600661005004170713061829637743464952945970857119689419871113375959005062829590237849985771914903886756436083361043414303887901306899762295498625777759000922557596576620097210978491761721741245601373597062501400969241001147709389683877303560641078856350456677403073957852758641731530072054923731972638369150070925338368898946270523591272199006924832416701069523316657241982556091432399482365659492837026321953933540985083961855189157244311476608058942694027206185230968885829685130321575530115528427690329907154975406976787078388070983700895971132888399689282490330977672947039669970857650102673952325483340761802149340817181886488480050934316219134397942237570480663239707496706992897529163650268889781481915195838661978998010316777530266598756702921547783526798825167706861294849401590285760203974147616977797792027696734968757622955157096624404618179169898365349565302172595417343792435656037864555047066519996211864908341960677650148586190576056530165997658940881293129556136577932697175398164399713869785417260655541032021302457739158265800197390067176335950344173225834112831163961226569403681893258690142183179496538985058618317758032438900031808947933582253975034569927667436676429312141949480473650195744210741145154468751170592182769342934003698983734108011559406542736282465272762472304865816193128310544002352244504051360260627434879837136259879171663925281360477836763620674744626173513570704250934364227206897447508069646607322461784656240665130430735841134530670016062814500328400980709052998210130107427654613277035874494892910018787726949596583480991361114174342796497008251747319313332489516407809277894214825701421443905193692652812121361405954128724703962135371112536944472435352679719150858239235839499255830868706110542793183311925616576842095968925083900132658292442913256003320481724173356557950572569266548622631785700628600937870593408232456190165227095784993886696637883445025186623781456434515092972993810556784463799988993743496004415018261358316250131606102635669610319798015989133347905176265080353991331008290544376617090360005342130909073346698066318437702470539678753517263338388365356499256733646220312075654694398613904474956722741473694441174416855099307116192471340711008391318191939499881308302004894808726197190234434181921503948666803022271005941355023773501169086688032836619454505776676288894777603213394855686008507351717134882695488999231173512482568178014867600477318077218633950546377965607488618310582607555616209908155156084685577729166573705203928986931066298719946275966098783942069273259786961874464182204778348154293969754957536447228338630441594064661655490592446006486224388440786470052668483145557317668425271912983873809140106293493976845674973908104330632183846217212756162326898340086533493638309522926280261135919793139377637859125472144507820509003147661366048949189848092794924844301134221277704700227436953569921623001059842828147367403882785558131780796776461139937927716223528184861165103914285777015078488746888559846958486868904067968521040066644774670483916194836724636330293185661939797712368017473303606498945171744815888569093932367232228560388764297575231685926884717014790918917514909913384927993546122731450082845587038836267485727338210242480752548139321544153402990453057555688238170258126348154596919362186137353608834416927088630002817446356883801702211744287979001867967670844597878012923092928521377178790774936359422228817564124680522728776215541879320909665567691382268572880607166651050463490113685897130201786517146498446948850256421157842179406865415771968752295158557763517408247311716837446431651600520179368462077519832961978917054894434656406601494238264349191390005738849150466379738527186630089461357469136566122692898259651853981924674754252574792353762875807524983908818528985451365442871597142006874882731151372858840003254488074903059599670145358296878260961827979452913215132311141877973695625717314133626367614884936588920303785162844724142498631705878472746545766400443658437173157361194762896432162231320634089665732723754295871460491312308273473884273989765341645568799759382717630678185903003604962918888503432699669149838542930682813732901941640774449849970888717731579100796111779327191574275471626581942269058770100764071343622605044176108175114338757879515151793780310476212872358166921071290269755903294725658325907088661797193387580259324878514361324396720223817391758282461202053307999135383883365318815494680747262853616158645509213364972580219481311209933457569548576329124767962011789958315489402131572642233517415380669850673563639405293905858125564920045005719686773715271975022479642683265263626381081263904037826500932441291883382535086426735883593583141124061759493700539016839658241586786846724863577811294021656744256586178050693630428147692000515135880807366064512405318197025617575854955237798805710127468130075451056541552759311516032894123711541658678142896268086372704235330712393281755800315782944448210887261070255793865218044104293653628366702023278871764849092295871780698438057647461445587520854898302440863888378496760679939210598805381585542951372698712599273023607288379761702347580363198857684605157855138647296236381218354938166661482969358553742686718941092170803398185037939066177816508359900089209934955318595361970079552701031929596327567880558029186875367080715748147311127903578593470587575230204866152020216572841648623547709377217557486035076600679130070469225789146741308000983732285296537629977128821407839674857469718907677248191809454794791070441531087940347249554201704946034313804312605942894747307246649507747765686506803182203677223472649760774591461162296153056969885849441848456969485628046181878144092547807666235069820624034011701691706909185387517165791556842099078971669590448696590895688795447957274081783461232561194679683722751286731145207937164693212865137400257946190575426541105325041580263760864231240435216173556943910196276766375391175291669874278680798143361841359496496610945492788978339401561002986785465703702603909689555227111213828815249153286096899784507785630903895043714450715381036764072162265978775947163895786692340151069163209941475573929945852037952657526302285879499471823723839913165069157980872930405408619034610133020981088757158597935039576785341175702522374597291319898039967958611496360424079725144614841092495386552996923698177717559608232730839788961762592540343251652597897097889854379768871493416086892605808146805514977532481336696919876205577479455686986147456788608608515235453813501038227580318271605047906764491159583258024609529185436411295939310624128451147066327839323574795976759004124532835995476992835422647441341772830264657279749103754906280318609181456010327271014339574487215808783486100288183029181382042943016919356994756595881607218791918985785170266856200898333572449087017203666918264066617624865375749959614316080684163013025680448563212240191546454174041733619224343905152965744542926481144847021794758226747224719860843895125435100956407780573130452652882088644023993876162009746063147203991575594988179921834616152363234651317532105507857992819591847695979784066703968410236865383997251011678360165096205609357129055275312032161633305433179763596192156719530192697880886512907075593274785095907205941971133547603684316014169771053171845841797395054832443930418965618002505767515000258339170047909336032269397602120460496371914474635788437082076592254812665173432662754530779404611889702156063940086499138731363068592896387129193409412343995801923739737841896847326820254706054829983657133646985712731844677102670057235681781197690335868221004448059103867951460217054391067623546274051046036050690176844915108365525454829844744881593067111672500088378770558189805819514371739559474929379063154538409307927706056223157223524895425798670132874947750504763616420457094593554579661086336962191335698878198862824161760010125559147227701816990458113314322065182421952656306511446440492751134800140260643395994433033785457201862907392553397672168693244526313506582147563866181881677253200820613682407934208733432059622383029896663966979954791132456845841466444068730438631014668004060814546092096860730490804467941293934718574414229021153163532081296341432599267464620019380137852362573185079287709935590546241258316261288789489944364221665129163888018591995693383774452185886300250167148056078466709075370123851146541520821301615481217692738786806376464936959128462161899806468451746713974635585368549502610260229117287911443152221968946481434846292678410498043854668445328357139161230349749675765429789075362762104581486865200716166923158379900367250028079360930338327681914704080857879639610560883921814594857825651706516029130783287983623705488951757081344326190700034251175727426774177922600839148001577936619777290857324577427056712059608948662773204853410801099091540909107266752158424886348941887439024630731625636572614706010974981270039395669764384409947641686585209496763751542236489370193869886126657865764353223731307956831834148826638364132352116063536215129986457574213067987431122355324119946104424129450533066408794720903849609168970371883239286752289109677956041044086423220024758996709339259934444609163183003048022321170913721423181917877582958402436142088528168225923175137866749081796290244958870699739913973065343837734086323684804273386372589445653411787655931763656638357525450258211423544843995422913711482883511437216033240892057698925976216552765332570953419787213381219707379845756818667753903928207880701122430059314576657350963735647220775312030094021888295265074673367457044191084019240519456844281303302864163166557950768357840388165479133269030348191285501986786497616248605354569172915342037702126967631112712035305057936618066949549208079518510731350912566671158655024960193057331786238194484092329034732975532023867699509498493525507136956435214337952455460905312219783329214156724484346194613761929812775511843539125973943306388292797595679083068265213608268804493411989620642827229250229557993671449062307021538461472247730889424983351722141011819807305288842974976310399249639381328558348254039918874477285072407803277196149480700939722048989646168605723214749450595050670553108333766962828190237585047679612455922054472493762253165928348943900929816963239735662604717619378749654843893309592060524942284402155000479535202494180899371676284771078416468035833252755120417025150953890543409027911313149757819374887351340884890823153433884134204611919746438553724169079662051474218554325742025948290943211777015730970804001479266490046958923185105881383622079213404902913252535547321223178033738557828893835512730753233147876495193397888874045181957715414053854762952205798464681631136053510511619227368491737269189477387605343093671315270145762624597179807121332868023281984217475561839732289510010415506867495521119890973912554823858041212451650161519178691928078186818287792889157323473345228576200096680519436268559154738547955967789716048520789598350417066057904926640279874671155055611669148797701750459351146246233708818561583922302527204470070795872426653147395573373766541975446139563090681563327184601324668716839173467116939329487923973540966817984736050095392643018478282169067653229644521227503249064473063804648175825925813174273787127381333842400920304768315904112862869773603710829049942170429828113075599745450286548126086456209642346634637079493772229340906748408731350340763484842637516646743042208411860769461552883799543215925121613476736300905418094597000601734338759907314040407084469183072473104767108709219383063926258973395282797778924891708388812478346747939205095347734124859349552893581968451250897798636127251087063542759532778558601347951065581076507832616892031961460512185903601785120076434211811115951036906978471600574513494100016310129634905608612069322636901793633736254389667212629517027348077473285263737642056468268965554841011394986472904612710940269704242424933708242035000917167864146859036290618571006319947055514996369520003338121014827989867723695605875657105061284069902148353544373708519424464010979149163516384487450690716146793686243367294271745035781804797272015353508633380136603048894873358470651731788353062381032330322755820127887588173913330807084868769642746916838502247986347941370932239727388243906093932896525369195956603686042713452048541881992988091659195490520745956830417199820811917899731803505989960063012429727074980023507550472218524432038132349354470952871130141961507346404140117264584407953544737655739658297427405862816734805104074095219664328846299597815034863131523461499531061289455661362563648723208116956690840154017307548876480386449197021434071938611229538364808515256130126403565110443737732242637270035498030077342817186959358974157184189924824434045342394903213498447104669109683413272105445473865960546724931876711507698295080218263564348201335437157211816968756130001054798042166605831075886499232815354368078425198424572763453952320800182601300224024278314231420224234582470962104329673423227042687423629579839492472751952998112810668248921168492307099542568907530030712668345130928490077004469851407098615810643234134990429870996744736410303309326620387827802322427478142171301822796669265714080322147720835356333190322101002478098962918015826656067774134826024406942490559628251725054452928647442960957185332897317830679031505683947981522461245350224464291102511341787207603120998791548859492823861234833127694908976792780185239350707735700941021396937919839983093030955769294600102146156267450538796661775205206978342706833719739965369396573233277047861455008312435258879028457082788841951615675842543046444509498028986235389669106559750394826377851286834853883411760933801832504884844188347643177200581078519134605992152590788369161945081838829110036966154735052337739207626677807619016459515499897781493653634856237849838192590279421773758102455466347125076330219678566647762483208242703056279998012851297313914072110101514582205160747394623426012007957251027320848073641771318849020112007847114614048661065421044527461162027130950909121205710854058078428795516935419127409859520381420829625314264980153984518029687872284931880776373246160156362914499313132954608113922269813769494387879812998161651314565566066789010573407261461498564590251484290798251747305793841471235649087671883275071729231658271290666403605765987483907596382656804050009023908867074620393095626641141376228567388953852204516094775924523912025613754045552966425659509603446404848618863394496338128708265135496745426408812726562974641559498314358133932676313022379947860160442456061574191546934640561674432802654288490765178783681267653925629953814732560199169099844699124759705559626457404334855076227684510654634818801657536574996555003688190421999405259910262695355087150930078688098309346714864484998491415356229030754721892875962195173521727473332596382482934185135480462823146376627187851220401153397497812089241202897621738853280374748825912549855976787826774293726091943476342748221732734415355334169999609159425021117769685276334975478834915175516295417918542477233870083614217155101688240518884562491337876341257143684707326975418347296432358190485680351123017961367028914671727213063512846790982130284261274177124372285267786428653969823410882480253267719961119857722079951656447238964660711034089921348379151540310254086528614001079500466628161728297338352598214666163237343669025683819038888634881745808070475265580281973547338409723432155790742428182707195713566858771960551590743780465775808557518677895004142347334197897214584678193549012203478599415967098456384320883142833481933079030445080302518628299881238038947907013523876279691204844248680472145565765201553328354975785067308108612095167238402660202620399399518412848073905239015831938759220674447589105030293401196739107938131339285629408050720700316691666822656012999813633968731256003950145356404652160373160675327544802330699184063317564598128207863054748784599438637134029547350408393175561784218252364643630695496002754265587287422084550842315987614307571595859652671584627232100170143257272841732907040021154394522439371321781431301714764348631572797021613541007935174152555532048145366724223418172429391376299008642598684839855671006825047272217130956219698037919811426261605422702653441313281365658702169840250699806051322706418080945883125762164645449736918373843039536393352790192493313370120258771970319340645623162197335627703214853650866721737972814025373551290226870601843582741317327229137495541904549100451866192743819749963475064525318318146650361950656937691879674491400362982005278292482406940815245155670871411435756438574821895648342564567431132435608441154203815879322205836265303422935974211900018913383515364820096538655113341446313055220623494951986448046963141845680324580286783189276646755590812045018809320627345798840783649346612151517990048908895957865646108372800552994840576002707983083448158973520218755789148876162430743440885038285037286129749538267146330160546983900571864031865642216450910914725137851050006708650659613794930772620124124679734312849333125901281185945436346762053994776616443218024596811731889996994026789297556911938460592810712921119772542916303419838357221833542423834816461395109627041470547951921575798003558373204005009376594626969800207512641357849994978793141578781895992282486378503944460224038316657750452039550269493097659099584786841615773161554558150757160272663224995503435998043288386358994498499793371319000237677386863078131898176332500286350621798759663673338674953854768953698174073915704363829458991886224361144808270740232331943572711905873087608095734435091398900139780723057422337258611095025735947799886235525853086994475359644319329623345269078091292700919670014942954069156815844338780232588769240077846033170563667611165517018364153445276343265771649927518642935560524547160284440514518499338287548396325497843575979955445338076309237219667875023175590544255266699845654963709645969051478018033194365962992344200896374164345225498722020690887682724331945329549480874919005695150448612877923614505151148559513916710475209661607108540727027398171392656354015817222839546173190230923066922635004900882559614555082964712504007491741262317414908979653881566521690468241311641381529425052116201682667104502507476529209129472938217285148170112163629565075667744456663572668792595826668331092629676000228339666235993508226310810647823645561644672241907158108755045461983287093902791435187707423321253355334908184122242244829389269504982258090185984914536323629494135601504598880709352259816652630196604404120943346896184049266900408182677249768929154887179720974368839084526523734443520847378167021492621407496684480339136748751744321915972390213036714842619514741355065817097557444827120437517844708228459797727721383811074765685164094104428224228491654257310766479905150989859724095305987144569324132737708226282135737731593083069331027445402933239222052463316369011261608635789320711080140239745486902926594969189914073659672519135511275649145577681825199014964699789986447203597131381200248804523904253833683620569398415157850861744132774185681438590181631820479937187246871164927520549775804886109500147817886992651383453601051520882321966554216540766473664248566993074539951702921351287420753550276693586921521546052456537827204777678167433833911620991378660918530566380611277149975678143224702061089475960104688769479052250454978625389955475795707273133178550061251797270415125867222791780875641056644801611271706177636780389760035541513445072362006691193764131400304791362878456652203087888695231059566431138721058527413528499848191667628866595330135332848967116036147377758793688181903374157920401787624499348532280025399331922095936425615891880048871630882377349932923338679668692108805521919218867050406694534457729301111574288624175740235470665633624546034984830312722598785878557000209728633280947057156967274835184908870820085718411555805537101096400086696157747554392024520007581125235441201843917683165894580563138804814394023371571816663704560773180649772712020090417342786520486216720360003873400069964384441875864113542554107272635467648081031439857414873791806944755503453464872200266009988477653831855304027716166483397012974304594794953047075465802274082470145903892058795922535195486842379575001006000331218829898699749745693731455356702640081657465108358180214972188618708332850117100692230837321214809747000097956950576625285793918869730468498755507900612266332190032205843821246525256504891526567044710100155855776515494698609757377014964797172288380509235064702362764790125996427007527590018666948541849313603338881865155866944390697740537642172412700355281893915511506609915254871637981784066765410499130930830919515007301596744191893242937258290954265577839178652524461329309382560229011759040277917817599699957171053829106565572934704810618761014145023939556437564626952004620063904451383310600448570057849148603097457964650943998751238706474868693555370363757490205520066163846722048483274081023293371343996777574623184562323647342917187135906684318816561281959157540808649900258372499084688366959027124067397201671936343355960471895068956639791453891861319997391679181995588755280507058620493890779557309722402606915505188731761372026883855171129686026886463746193246520580510989779032661238440819881002607561662733214770319963582335668773295376577550014368543738855742570387464389934366386826931357737147839720898145448784934680076837833986162815105294612578454493137484769322513603670043203135218459062744458131455578406286711429448627260505760085739032518090212335149410470409121006538541439046372084933731772464492429127316786834231009725810805383597596580635546936863654356308746341045181911500537099680035853071461052500298050806094088640118746635181305181587106045553202932258002894051704838683381072292616297791347712915609213675155821280810165846791057915399261461800853898419390045348348527557512364939704405348786388505540706675841260041559153408231806992665248874881677684360851963368042193563674190377089772426055383361383001457018574624333223890577374401627788833749094419598789304437716035377883123356945441238001530797275844926703504027545518947372689658296095684035755426018226972649136949511427879360308748724372529633540082892230742883823412858710331425258371632988449354882339926965491951828717853620476083216895657037844729264273609622838810801503685093883986300458870230573622347244892301429373197657717463250992939154134930409883114080275188900379384862007649571962301100473875309451038217721703825858817479743647560211425006772899283223648441308089651390607835529653025891868414779772943542113551852861855900359794832701500416964539344814233265015485724894477729150437881923386543886508509693559360541696241657816450270519761089429271519377649498985715693569178579194209074435536434007139745860152003015751350811682769375187039141700870937602601912525572183679800023692534924034768502084484163587764781868840807285245624145854009203514956425617057552893780886097910577477377380909524854900594810407924530565443851233225168623767918695145781023526117835861418708294910948805132171963565667539343752091768273419630054113242818481086351100148934636891771413249747533881121533406272873312148759204746058267506278011973550451515655854992114892022292997948402037563424879813714453827496089671075098672762762678649470181743619982248788290126439846242504344950990011884298031233584474361806103026997683543629859705936017125959892671809889573458782868296323309701597386820260111356340476077288800338791273482552154474382027432110234254552750387345894045162419057025099480198208480821131764249161583566753450980441551616091465705826807980186754449928239210899766448272517894997168770155722282350665345289983381577043827681141464966907699191036922950523796635956594384376936272308083355316435876571044263523402962616324845385378173465947331473324842621261050523829487733181004003727757253343324699221162948879873077894459267867020621497719270090220021342363748892447396299320869228616389365275781289874562606544829809313195746480252282845526634086171564291321412031715924301731989532872458378462447835766252385564548130711695930827512120971853610339031825452555332906428841808548825916311519703605249421532117884790873499603359039263223087319275229082840128230811381438372275275833464761340096228912903877038653262482714983503729929053498851322582048683807015654146347611016277193581064513082932476994961244524989352541601222930631887324478560652802976281790021643974602853696712257819408711088431923321126123070682357645499449101258955884096422186645942716204847721827611846989169999612958162252071685936735936565502653520375037893722708696202848526956494807525749811307950935272461994330130338747578961360742103762980772126806933850969842492401599781527650476657260616886213899322495911017895541408041543608646884470512282462869560643782146176677616532152684611538338696237590270022649132694943575174878805553288836224396711873776616206822905324101029664274158042857514139172131266380504264817935865772513859756055751716381705039381455924368371305857548276454114065020550981736468493804507788622415124232105973926092832625347954269643477355558847418140338391267417497755014049817735836055339641769064090373186874585503288328473166179423254897265584518396930918024809259919002159346512507668524669193088783786999450606470018590123585378380252313822333856228662407342385103118865985409131589930530830232155529890430540152824290496653923270413705571724985740069194417759575773423738319264843406512370793317731915238681647349268855272738040303825877703506347994333058853967067873392261799710463516743617317229120618776618610778090878761616602041247365350840135232924553489290450255933873595032479568031952272850721349855287784000197793319811546519905637763370310846784652728459582739877288022072994964057451452607544438609642535111742343972107478040874828251858675819036121742989443419453035683430875337244968789186043265988420165311300375337668582811015546253377147641279033584775791696969541400785984024548327293709712314392091700097623878633506977283575817425585028708623637379213192598750303986179932348443331099879376393435105482042162065209034398604435078745993475613698351304338906808873707034152234158498054129880308552201045660582795607180806194481984203368453211729257584654212865674958914453774773022211106754040076280884955769425906076686776304551425930284329035857820085269931147541575354921814565624602193984399627651212409140072488718221409751914108844780179485513374984827415413620380343216879295659085170715430422947297902281923667917245914696032969038264229241708659127482930530571110416391891130118917919003555338069949881533432097444154245997077367628513997722060597449992589432827816764310210479233007046161303131191856307752093989859117458669576935142486770184056048185571271759641890161899695348082710803422034268228547410265117473996443289525940968554598423434075094273533821196928565615818850069733675920020595992777704293181320113063911077088245384705333059838606597687489399512763575025831040147865054668523555365648506633143478531205073943625932550960554287536542576856055749801000997318397037459799341287736994066390168116170578243532124111169838545395346022785004731594326531016086981148333470390596439542062327694257587756766720018012654880812356351108598335927886542070434736663531404487242924815951157946679207072606136552041837041022949600027268775587204098441924658833354268712685012023701628460791363389163158578918014230139633310942094824005655297214725272244787986131605293273791714120101438119181989432952231980312650543988868236583076773445583716152727818720898977445729244303166874418537294888194998024940185387268132252867524284386819535447106395515863318409764364769073268655890729989941444001782928521673060104955894492500069352773068030838178066332358088295497783371271056317815746912479905091335626318180360591226134833138191177887645100250984279674202855409695692699166460178644626048904337188434733982198456143143870809254300795434007390394903916909329025469442239644339425713842886484951410572001977416079891138551431298490341977422345519910995242986541523049541609271823494570325561309958187325486062280182537886273725144134980365889503153819075913521949516705011349538600797574281724358648378523070863959847325408036544893277034663094180331063377801804199235986438085244188082926353301678158330690015754455657029745530684829490554717345376346770851972299312816411283173782294179924214320863369383549092629158026084435037731312354030877902871740664183792316644402971856958498386295019224785488786858014137447058929031816776810252221645155208669400112713121302699141525623655944863564837045376649438203833141479624282647011450794931703975204484945326431175068892171379444932383132050722063472920527583266704200793190104676648336852593705874063644375860497439806778816200801495797991973060651635157150375079479222480989649275862015744680586223745247790244730693002559096169903052480166580518954775961461488208986824726029330688891058833133470599824354236026126332128666292068365702234878946735719518786784684415254169598615451056708186615325818749387295639029335879322470915012991847603574241673391433569387617281828813995756197903401883450987296679937706163066749209807860512952073838059885248767725222284575793270183238570006346116069502067819321238126690214649595452358011827421543236009555066476278587063925137764935574461491364153021018414400337625204992317079536804243630550346421067382959278599599510740501260812619068928738271916277242981648232211463982252767299791579915547001717290287193025304710972339105962406188066336085197269447667078346406034497919812725835791354891727226613639695997606707090818895428971108488788032247838742081841738278839597061787374515513804610811223507073509916715534818169304648317776422146537379196610599036892561435029132005981337690562226952773667711947148744550526911513162626968223985021320456232163666841788961141678926455308402140488084157844571834158781426577232054163281459977582734657355250205275443760030055888787881163260740938094410441118900641204945058885799442891437443017255188842802206910248751068104927216396086084160417118807574489942110684658820107459972682305315606106838105380348343812256638328691805099912099739227305973762226158205121802886869409694618735665099267404684195688474330381504416653681825250199124731111184391245945207222648571091561684596106839721744818776191210718758626962372937855640184134097176579853836262096669049319507219997629110144832029283353591813045204744004532901598841484186271962150426432189281039910570366387836206369215654135972780152543526670455880701791072499536304515458586596557830662440571330824309252757576072669720337873071168412264791636074103648121239856534949675384145945651845857802785832387156237543753676683417431467053732323867229641179298549954062813185234052607747208559095227725493632641874749729583222432522796527735805309673778374795696783303447828813925893544834662714057928460136649386893409346583263177220884858319768651128601881539999150911299572367938162021228395841948824513695115968600671612776530905333976791779787419913316223023627546780156795031658564707111271475984695669657640767807484625796777720965933863483105101827505487352571366301891233803115432998281070239962993843386774373275104405958379682666908910804281375873045480495587990663114447226243695710295620668588765969734572750140666409704706555747670865568702467734574707699304972593747699341404168227968533671009607831761747278384218409430894982785785429645086607010558980942371207839829284943767557897374512537720402549870803727977092422221763179209347009697110099600043168028931834215475498078962862784631106698328699657406906073177400485169432676075374633675928742215241561380157906896464082984334180974247327954847739615488919626718084477562266765051694045099592218958815327348967796480188545384718477535050711416290218252429810236556033968210339024739481700185358774388835809147280825714373094240724863715401938410370587641808165545692720144678938306707896903487328875073623230661193255630756670303077039806361259771320354930709975353356592325505396644741919853393544346530636388027795100697954025047165367153731942373223123062741128921419443786734170675178426996132541495134847818266600693447900862518850072686449703000617023279693323503557779669100076147241871981454242985414069957507027387494613182890279095989469557382663539837199871872472720997857916139464730999711026920432803679128432194386635711751461570699722733420736408904905004754649063726074305694740397909040823790125189091513442545564167331949071691314439089110675669392421630119613579981103618107236598190390914900752376463913241282285139653701036754043870804596079446491011203371446503008819385410936162966878799740288097784676456270570111200464780389172635589327523188055430541266602431303210169726552581429526237163082732043432406240674019963421981246751397444137154116164658000801763694495074218000872753229696458511465361737362179914326556379769134198148507180805390002294201430419581879254724596557889738054385619461716057524687701544706222035034704819054726691421030316729733863337371880177589549501728395433319479974046344566585478729522800648952661933811126936199394370280988159949806492072145204926597635532041405752217862926629883831310804888486975468300838141429936998463257730543121178559583155336371469652363748312651594133083461081768419027336601057801374817127826784573858751570275224922575530978537121245671046041240987049711996304818799880671014578050747168541986903909991951853135824838053108520640386059093441809024041870218423105529503779706194446403020619275506213106456984773423696082318496348989271386283314642235055190225674950702458809084144322027362141858985291648816177557287968737725149014637140204275635646661359469447966199902615421560920039129571830054051697835590411056340199718413412393090387334239719211679629223072606939986967200011767126301950357306643565822533724262621236758943699033338547080580040656408830240014175839025358552690122673769119375354053163508081247203389319372061826429390622435885742451112318615533235169182530536984423811501310840234456243967383649567221063477790584499256199472138201031084961538604255647699472747818875943312727797901296384123663557982865210735946754737986269806114132321052442020848111467715136428332323302052111051771522784202767876336183762675960182620296164494060006991731727055361556784365216671514972274298450225452100820735742156346850793526923472716621484046399524104300997781737714995852056904831783361722660305269140365548266736436611148611862787185926554450828837861258878653806977730863902294096803635448094653523245533022765894823064504740408627022796814823421124046989782437038328221732618724904790811208431453759518024844699726355639428576704319988964633461876274906115939635383232751146300878635433457632012761352066892196216484412656455131648818601801013992314023733004334420686066379772302207518760532716344961871255370682447450435219133586246023272441008716491133898307087131525437647167193022546960834312220169682711881359508511475632354460770852870335795656762245992765388391178007033535910253772954682938797860538363007640770341590516216398269943101056784787152695775446956390009762781580130828180809064414418788474621577793696432264158276209855404259105079103782467343209011328124951600406856037549014578035975805342175746911841235931091357606832093967904987663386342063977715877605052267332249051268403448174464078962964389182332703577085746046227535598288354060945772657350519323859203292678209594272112522283201673976622114316939291056109205066957704274735015158802052316353830743165376518458293159342258172435958629494482252311064457794254576392385841414848256566088899091976293540935778360641686752131542413867526270142874889518390090524258650942993971946929950798102593829971092529035661414087166232044757140122219705838123699624125849081847644911533266955946818662472008627308747177766664224011172132986914132105535188934067529526828324520257587913878091238029171704883451895904089005521551625734823355529873038592946244425435550234736571868060762385911870165293690685224775117837229698432649356945809758920051887688242202818968105654267078525965208474907133051747436678830977620737544164995856734425632758442747512738051504175138054534837034437781384207964838089941427559774912958135009399283665168083267685499452592952368123952330488301565466073619882681845384985412225621097430115707145982137521854783434958401597698816064521208053975678450270879200861834553268252751461535798812086376552633795041237858541881748040364889987776079795479316110978196725863888918302782221575195885430526910017613293929868733456600595885340736123636249194172188367691882026188704575998080172203489019261611156781578222817593629912468863852295096737897609871031269970031612364179373228116167398965889736755050665899117892728822597824985329754362771951834434303984219103597531356676021843888222772239457246147834938201485270337290755918217882202993168064574060140251997311281074839544472038182057405167655814833880858261122511790225133934873256445895221585683087111220762253323768219430186955564482148081300039122043419857265160476302178601369491646680182593480118825749865899883640766195437244291603669876249397086980599631909482249474166601919129380201898776809320167282670707682409598378785700301235731821654442580792680761607951972735389341389535547209347426871472204847657066263340279848402044595060686238528522902020259653749450851362800369626765782024739390580617661833072345200089494875374709113206559671965541825748379035365065342142189529703779421219343875945266853907449221693238463091346906129869291155977888292915148018557363447316600281251186206632512612257986448984626932364357950946834130061646280943201286067595310932724469263580827472400891068493763036776419821048387894455039655585813779079582680428144626755428935417522210681197374691296995242581056713347217540410631038008636513211953238521142801627808408133589080484435989242521219344158481717782100179647124602389554167815820671556898650894692947528342251863605529921872736890759518187758955118123232960479901085182002352974432190174243820227255686277354873160129301064930132909493762778102360921607044575587714648902369452761185921570234957943323597957864624139529818655382234377420566012278544629928256373560894491676006196399092552693446045348057465187359800080551561302513089056003390555414931915227280482981882375927748888708861521091463500470569298391905272515566614758669964504310821072897413884808474020414853275434215571439879718637476252298364411428782885797580909467819894794717955578736760729852528176595432105980463775505056292146525986469418859316945958100026082734487059157119974531198633597733845696895215760510236368931795318757070980469939616481263406765313348840887135598084720546603723098383593747335854887254462222673270254682124158189546695968909729478962660587638489474585874789861229877730123197534558471357305542434543430725525453310358283139924041871259616169804715300165399532426925028097218868085902058549717589131441111186905185031605865773641548310575770681627837579756169531377967876669958288557624524447388798542450020496928967685740164666615146497379839483412643093077419281895957622164766607176746630159974434084153737761365361952862473687396596507126730213812780545753791400681432906652359905616862674617178680993361506963325181910285238324485592185652145180226873669953858981980888471137164939682547734073773273231734708315445657416081048721815836819029939698087824462321346110092816675970307452325765253481754077513041931605964778076461786865422609833959358850116474400312077838318326877999683499089273524777226249331525719216750356258089287668856551959966299779041970958187320456780030273636776812508364203881013659492002491611169349008518634426024004836988177279354446395393834740520290630079306138148979698622494563969536036796848488852679124426873609275551492335747197725641756736337360771574774760043896974005505390003538249686251022271618326508450247894261648071302386324196895662415439890082766335801752810684152466392967243565137005406812979208205726464846518850133950003396195809922216338445436381397631712481204394340881596991456312081944630086284969605654311906559428149771964665334115519387174247563717629688751170634812046884830504785408703336144248247268165810475676842363875295761460329626468652695727200038796010141061291837814533559219324189918626631718602654418291422679068697892407405141101695866546144013591891888540746919631999826925480632677443287744604229081133103982373063615411952458026465666043806180194345015773884842791193832231042462550918556994715358639047938253752002821336759322863353510257661951969429670440812477995174686376588453663431925484954460477185982778074195058811912201438944802496550046670732381124905090287635424762603830112640397952662604431095139524068606612706740400771776195431523707532734808429885747311122434734608048774302647307462358260146697373611101326777405839480156381715489194688705387513870846739079080720128488507495231308052529152048033908493284932621191644766886261004423120543612339511619722537034049240762999918739380144885210154122056630146484795462990302053472712721212026502700522613692526472618711091436287421458612133796087610655778018226072849059433896509786185661366917203387957607877650634898983541498819661426548203302752887694389100990457275815122234378285227446815231904513494228267049471545687487289114703061229716280888282328620543618319750204013747004544031972604721068839700197688079723598847563545959000286830249352054978872811337043169398521641515390450789049402449133272443711685996712230992588284685920349031246711608543772171327413596516437626184626061792723367999605976139527864104382326710776503093453962958057929791806757831735285522419840926202362725313318874237318714457423923551419105216492563608015499971518964917355222899866656299172617466634653853085520800227568701365692568089002533040462605202010755890168324048238944002801123223691821627208568018244294147489428425995654642374584939070981361332839167155030491034510799282242301193371388155701996681677582650822033875598135454940045171939106341854697809073441384189612283501006788382106988112557773644626980890738588168630392819520426909588256436093635845921523295566477811850023853465330089866315591613269196590554473703791137274497355287443046674977647314174903451442143636530024503238585989223009019870574256334022748879215480216013412580795726514086214778642956987967948221264260070481021731148453756047176366212826091195123796278283410244695732026928082223054132113351154008665385267575651369879652138619923781451335878536492107928206763125060325486502411480640339248804126355535806937749658314699994501205179718263189679307223338171215604678519936027165586600259716870164929937697417452960835867765615333460947755934956630448074779291138525819018286108057158563421104609152036063434141830804049526719463522802448669211562798833557767468458653953743984663243399256507156970153477568648622253381834229075034202061046499427890002017190354289509882339730220969587462629344981058691048274249090947174352540611200921299817914993373097253600104727631323558162186630292173924520455101565551398363799185124766240086899276471880222078368431490384336119876402020966790453237786647388698817341610598385576079159293236025991083543045987975306935603826750615849864314587844676020240552314112855286110501239252951075295861335209615090251823423532546937668484297277233383893804938528732969587346522136641806258089538099015716046492847390061252821421341203928816105221427871886001037740425304734097512977681495423432298247580239546539248058038624645899148810379528618225693509806969659327252589134087655331733647704214293746867114414201603922989082193777914767475064260087492367900127019744761607581260477598388988038210383766373287610669996751242909780428483955882165371954449779882871750051211632248586435663045640735897106389492954729350153258453965045641254801669881110113556969719162122894914032806708959534778393340793279364579154719212180088314716951153452612212135865813580295705470247394873932730572992584878409322149405447290676207968248324656817226384978560952649554425923309360948329760973197272970386618984227607871871580086985617380681555405118239751368323563923071390893935410987603253466934067067312238192534406850491074472271359404647865683155854612380771872643107142201597848919107135249054527947342973270941542407447198413012632091980495991220844962773000636800118746614856762027213514558974592143939935635635576836058331594570879412845935946499889629092279381855900164976762437121941709802442685788137233903017905298973601710449986130914133448546339810342405144754517235484472228997939988110048067905478475696940180222905550003794476775714260602751145056344140127161557575944971256567448038234387242539437178779733474368591308152217269474841951572209729229157509126676480075676196224927853228518622153092675066041751988721936746975388245740855358617847478109960116943383996987687132276553950226798669175611928790355545591221434423909869620096948212713184981237589602273179885965268871058421478699223508592650122464998694307109779821582949893141710335695891563024202073333478187119855495054405360354429874083112721223308491687871170717886432381506922437533120937996388849231902597644402882126965547173747043038271236171757340901268055563771794779678469358079851203289407236822808824981650850068292781856477839287446138772502918116630591220571116213969277349297229080691872934495727547103372814513224847509577687949734909287573482503903076490959279565616738679737060125989109329248608650014738791059669340577711591924752712085242189706737636911937528749726131765087489760800655411796591045377055419364482064053529670562046720752518436588193946358609145732306625083298974230837533777277260502252294091598638681378853435125152513168867552187667530006503035878026838619288038244498876275384188711674804090950597483304159597040651412654597215759170719285306811777608816600762543156379763833529130206039426221516987375735695793017108713488839892110809602461211217515754899646462250206994560940208541449432135231703640528350297948141400143171254581443459792783929135767960975144177933012374747927057175675676078036318705844701981229727049956397496778858784475260602786135182963544811147655479392241726365731817214837366209253927296485193810727267736062251785138740543601257465781268699621937057363198914174735967583718408620024018212740324621505109606289581208008430175009636584060242346766601834293825215384748883030616894630582231911411372607779541418425461241409311743525924336364815037784064090433245628099042291712110688179078396318646127797898112475953637265750068778823838565746575061922055097694100059803299936716094779585048070185054579516605795567961547018928306423658941533723843036165783799896226341716748980753117511848112710196583752848281282363527213295846081656226720980128033539972028907633690468361438450204320886904649620974866404523612251977204775902680994737817822679336452384782557893163762613231105811178424324128987409460790836112969180464808804553563011614559817639388558328220853679730236353667323349285231108833912827859932771530278220019572323014254718365286836073244260869567557952576359563959152025962789489309063618609884738534920078074654936276294203038573448489039180869036403375066568421649433311342660378361854104983484932561329216367887965522620572159305295031143044885426043626642558629615355752654917454585776506279278574834040905402910719873900933411228217546634996861658158119792978655916577809091287376971630136706137888126757504951029052959959560036429378484036909060344878771208196256043302239332695309954236891664661998163978194043286519339570903353917576782999047987356690065761561076389478545014859401516421396927501883603782908922852162839214825681922839782119684979909832593108686443234842958638427785802888474092949719958657041937372358339076173042776453809706094075213167720733514461640399820854379664896206116583756835149964302477048134411222352402510381837916601136169575537293667486907633746489780937675518499568538888641729399534586047115478768600173951166527587525534296092675601097827487551827905007680868395277084334978963792605367970220006537446333754640773200260133228653137303127271079598085899591174648950396747021132795995716232821861309900542117354496572452708164203929967678336284871039654895483901111179264006771048687288293064089161556635022946922175893789721499946523272083132017029072698829269396990710627612861068324814849350415405086333016465630235993074893993363243397957425695063577076291631613660524496625773992328941857142568839220771386367938697341094589860771343899621606102999003870257912337306075644487240546914829721284806521644724882065582525734368600585223765676607668759747318398599534073687047121266111465180976729179834586215612930885183402290314654437977647121852181668504447805538217482449580916965180160996420303259064784262432155481301421413425147849918527993982956601916693039790487127956872937126652957041356909320823948017330691393107371690835221577318374017078942125788045139849305838509249740860207724902933391513443607044665540610051732704533037362905080972332793813472787511906179318631324102885446618665920032794889673102021865443867923940691593940906473968943271991940331127259952013257491808971664175132251283185134486776272501195577119597949295122301287325176002105758227622614240055281038458771263677586019897648447171024415414674897952155641519982060531753637939272899197122960660118136310754568062183363920434968343837419909688847008395047477284453126419640200757222254961823248187847881071353131218397703945320408938749928574305532823072866454214947474403284356961295909938977328165538971731567338861343827871658207376727465769665110912166392376284778596331486937918068616506692618109141846443766492853701588216402796444913444706176785126996723890037863358338099260316285049375680742652283625546250973225264124326820048153157219652745670254444585685113371651112121341790040372037362059588652203694596726072541072350564676465697999741944218081274970617725646837074232352319227102903543419162798471107721411158329343809667513061913087238860711711756957508243471109006015242870985922268101297283948330481157426575237664735188137763830939679282374921769663697365548818388296022197163718072438429029325621521223051079330579498375301461703606056566785958232131775717258093799777419291259972444193597554649691721727578263091526317290991206334316349181427340904143952658700281683093537533266558993278439013333141718773010314316663660553051286756265300385657532287729540633466804452198993636625932048034196442215057102616105290608130716751038874050791003809478070549165407316965583734068515968751400071834913439491169129135919986116368193128419568234223502212479495661080988126548043598391563837724195484789564787404122220183330369505522292985846692075381661781481995915937137413100795007734571381350153270579181264623671416383207482373057420249257757232842941421681915217752061611188935368853643489175405618665209354396191439535471638755668540197891963771206988055130710720171869606239195115807491625553591396383054886277277488713707566187197530733784021134109194074116686955238390240352107183092145540016950419913368246217730545681747004730286972595598542676818775121734836441415067963618168371285578433756035459285631231531781502605641491112164906607105076167191346400878241995235204101011661189498092638320442613615543438971568109894384039697083423319709578656076576590776962060621898002475960993614623604135980518084597750358114958713119230052265325225626177275866209713761763210102958127574626161993157474185613886258576703814250932464709378411179533476704033082266967350588297867824005661732894377083261821922020035562998517164902462717933830687200716470092825262262498851981982243835350261639837914133353588272259251672624276631433937138816980999138731870917094753164044141397377334095730623220981265117518055790640834966460419875828877054140227581545387122758102055840780240537314046698198880613453985388984101455953557374472371515834398521180773938125623463148494220968311624761702334777294755333209905431612122690278040750374957601163867755956211808908477696379887178402693543164213159621234574756770064468463767935409880118988007321830197293727894144405082946068178899945693036379203255229589110266861097595997473958143123851069030928028718451415270406884077180002122279429959747725766796737108004862325680941077835932214255117542197125320206880170737092540858781116434267782112167989239425056204429864891880798982458468982183423175084513900578504525739120796452885886964256053778174423427799238161059421023101068273223018339461788640171370452944408444987973458658009049887378215540762626612045682477497853358963320308828231859939688628359033963492532477793162836615430532066654599632345612819638911174562557291786257589578647695256961178170029310325628006180073750761580158250316002854949985937896273062401791779229796853698325413436918340660247207627667227023263354317420916999975111148846981572787960608542170548268209068944305397034611601778697939536010882165063319166518747720072781738741959737558063223032993428442762732394094649603037239842583109590589612647081162636518140573191533208475102351489210432503479620148410569866741941583041263397442935825934184043407892223781805488664905676255000989133846720130060711277321808510317705909902350496939337824601869774800328492232793118111569767091469390347585562794369661119412672756380437702462060295953707144489277065455297421056732011310503832908258122307414917659239012500692834396692992766031928422775096088725091518885067779117449145379569355207596946428965583453896016115778472222348028553698166852457280280492172110017074290025869433744875428818701522145112317594694214028591538543684933340496284745620376489927271818287295093949914097679361790859968744973930720234742685235465608214605366272785259310474740318616419703323108967959129048818069663186207844579079423436940679314177955998104690357304573726034306341570534251052495595003636005224435547360484554007310300173132151154927742030024265061493127970349777305852367364058066644711141876115608929408502430159827894226046310940790298298313222796049404880296894723810402445571237634539922459963339035935933191723364687873420732951730356295481971480311426276946507967801353809717245038441314502780225256048989897674846699439101370761752490503781507459807806895779887497379835814365825352753582259292483574288252488195793383032027216790793488441047710893782578660501156516824334660157002392826136821191479894952038079402708107987277153218493080680959793867856446604630540474231283220203883121555907590829738826079002212810630893889310616019589009116250148749665625679085007385188542965534774932486801344706192867539124819387078452224444948104065163553866791567645128277336025007783365986573926388530166587865374257946141940799204809589578533299938755137156285832241477568010551062130616539572007946544913286360871255989104875871188851095307852005445268455697154324570069146216850720683805784268016777687531589103517122371654052889835522206360533475461020653401933660411442137060064615089481614763890341489081198266423414145361722256282144948649400263896853819031674232641313798529214905347898702536853288870694289702733986647451832347447511863225677880235824137477966820649801308175251345321715632872853881480307171093216983845670248295983054762353327722631582625871795738153905417254763359019780157342862500391337753057990814746696402089399483156420506069223700667718570609286896743978481475951566172600998627116669317312629501916775642622412821626845737039091775438469365312817049495724134361965118525760461261024567775225519324864395537353314218348898241995677734594402523163989911004938184726919652374948003405276014493330261432454130943585109907495615836119248273844238645606592052991549399203437462456786687945867877041189541279526629921311482879950498065032070840101794623150655130414185260579028708114959588408086218225652307837836810456132920689600755374232077148865614764643174053718703316163231759373252094825526931838443207166489690472010501048734622887978648255991079874516156693676010282373886377411208218792190332343265375748453484327830939345153379804737714641959916233605325174365142225758283903277854508762994601765730894437863890483091641933697880436857346440038514038405093092219379285490032805254264057665077770096305124724836716433265538171507040595299963889110856718040321876229052077241805120838464409034868254930873431051619330376532053975172623449334123868116287472813048608958403313537857321781237148795537085062488514658724284527592866301678176283591153450895574206435527896623800425113022781579627292030853366178114598638534855568097935495592571726603751334260042386672388242729890264822906338803286544685174388656303007200783957997019529276217877588511736566200115894723246570314922320720692326307571146883929030629095743594849154021298876493856654075326665101863569148125553433187184197622735172849119624066695885584626774115858430528266777873132026499840436690741452140320997623931179872139342809733831957369094071012021356549256059286365118225177352093799373219166796331709442145498461902876511635564961766288480267458889803107742417684442824982266242986245019059134387301435094405671717291382667650132541974732825533491278165375939108162701624094338210362105078053203015492310261337867399007327747265493482694572661950640931138813667216145235775841158421808119423180300461485171346538780104258840507032511926958453994332265871481301940242846527121939300432297165951049695005342573351616746765554906581008878024143520234684637105103336387948047596512812208758365008267238253038922326927066535342666289973149487748256203553729227249157998695921014282162065954705448013861706734443237774496718356881110218739546969950693928129283644934544716708273121931484444798573773053009215975291082367673454245025935617215228774339667752423555764980646380549418028786723990461114246499674797430882600783068169371328405489458973513430950001156711564711378854153586837858793427302551606432134448679404885185248199954964075896657785184897823530358676013890294930164956938146914225818065121239431958254095563335503169390973244152272489093563828771173242682347402185390075351158094590607073437445113452168823090410453597037420702855146380144548347049355487031123630363555805487749112470052371460173256178518165710688499695332055494923344725491856413481847956137889911495678410797093828439540339560586867264183588298210925131887694730491768985621263958497710846535759806609636964534231787289492600703462430082885666517714592310024117400737256921528608422321556591653664448282266647381756124646913547798817518581728145877626194823484763700018464452289194514592469643631373870921635004039334647524688522478936008916209897032687063464959367248754202433035805167399234244828387073985743090441274167506355171803317803205950291085562104199900575265419675598685892015640604290881517592016032129434378490608993278513757262002815187506537046989445620620463508007658594791654902099069540630879769469264910194477136552233132165052300959996603413477511185160121728094652462752179107906089522628068243415057676464333222123543427590692556637071514414304033205425300103129852744124101234573875118545672313547948735831945465271779762128122218115174881909781717173537689164324605458955833949446298641691512869765924458214784974122875228965529752839929439705550728502689485286756427972507280306616119970692165588368406313990243930005986663919175375660036139785107238965240514598370900863291056117338695540916333226568980591453036201339345229533943072561704020437812080585816939364009389013681149176631447682129876749213739496167048424714048917695672070362847243415473227266166463248043102694535213542721586683497296541697805430166978862502534727426060770747591468308495327450700748464250483718344918243199980183833287732548923512137310612137260963677290622432661600776585397537791666362978046441595560487004937678473300977118636570261490516358789157509419441149793434456440136869457446114503007623270575459080025609013337223059636150842755259667821042621787173617517587006860452127085657623760420221493081263537826198441128064152505967097775954948214337871653119432947674968094332752045718368212052484860300232074966628647893732845307927344085545277886968485962885294865829119470333460188815830214311828207440376061900737577448772064975355001003148128547412655356166965265633286863812045044978853347461021569250121225216891794113103075380314593765282294797896649104816599558626884576888569101332088187436279270630005261072336279990717678259327953946654703508421439609641857986601309425096654077013635538507848238976297537085457675237033402682250882900546118980107422362127319944883327374345778357088929391044297420815481148199250404039542321363892629675361720794834369287623987079621973391621159639301775023453820141008372470462259652225466963399872741018916032618811166462836143786020278520832597408267907208863720254855582650623603434804321419815118566751029861353044519990157652746429053759657783472857543559607706215068107479170251593728504542379028353570709285701708990929559364023645080511057285923259171476628508646424227161072804343656500691939888179606003785909279226802298816784878940792245839501401246927096188892283222747880109443010099236554183923035428568790921058309364104369558770535831038910905809911534989104572211908256280804936010917048872153960804975740445706001051838913697432505377971680378000895728512674589859561121676114231050043453527915826741989425500875787984809198893226792778739325880142152543922487474953464013576370796316216225026274037862547064404761715216847590343450070256269409192968470569829306814851242950493303567133441085163914805192673816430473851374685479606048525235255662102347137711463958791020471128573409793891368110112515434130194350154329716246865665686578443498396781113292869326416385666645781595711200297916679545980752949639650961454441655423288423014548458492861233679635925290585775642363075991899626605604781433272307558637903702296612461288636958151620895828717809679216299195978894596396424772746046109874225904249165023319848822134203656565230562041523549576815176068286603674039501746195771222436026903403484718931990955177071280928021928197735250301768938410371618146028360554410174391994954397411862666490614033264572545327115730478432969804806471288415649785871276406891022329468746091779825867734678314776032852038989096384746646402867618699867772887714184126804092722137012819298147593507089400509337749367584136641294201332608364345149596033081681354742544964018165567176213390219145565778812688883930114331907435076954355549792036090187196870418296175888637497465594883430533916352102713289965466955740657273658907949145588771795605239581089138610803293977282600570301738456473591766094707461051107094314499488860842053488949797828182157350932387701926344296444110600000798754402612583889344848464721676828619489980754799734734320734786355574531907993096473544958320128443516587298315422093482620901011093260643573490293300307876644211965169703205484331305708812935769043354766763911610758546141434597776453771661428693960690801994105046532396194975415562984759268481480002132546373201346530930880709603943932444043828176745776387284925351461549716510264117539350985117058139542513519174326991497159965193540296821315950377791498409185926240302173243008187060657519094167671650239732515500982154849119561283484218991826043938079118068089670100090948628031049660984533277520047031871774289542793259055680835682049284449385159745227500366997886026917971416141651447290371872928789482260847267433519870464430744443640761307485782528126629943658991934728804306415686907386874524348341283552140986553206087368774112402913109545177687583364652349232789357563151353930848324295475942995144365166587612922720075326438127260849862257463398845734473884067413690152247153423839191912792745169084552128998428385966972427532342869025138932971875688852081682472006732583159208590575373346226110364923279658384561904976209296899510809056658808363123856468810431907140235743075782391969010187029008266567700716747440745355760279968607258432936878261482289857979967649441636788485356078717119759736891791115908331344270278458981589318185549480381840606637481859579659205525201877091764334813128799216525579212906449322549331366672503091450950302563486421178377195602339138306951307446755217414428374289387391700937587323177106882669169749281201430687353384828260329413316093068807217613529594686803666449969388281557921376247474405408392294271902122119185230219344145829425828410417473641908514829653575445037053054065784863794675614318448793903804158483502537160537667589687593049051151183207817397625319584070229119765179841341095525363258898190871690556797846631478945731805637171824627646585030942799908325744715696271462415445872806941647076854778388226818412179424162556227492118855933086733925349458685160101758531768898050020179243886378877648264820154424618369653675045770046520624347875434511406328651467837039078741701242556692457448651520788565415604185643612972091920832971807010134542052584236440526424255791387736917087428266784439850044535947470953551204995156490055256882314449751592867016669646527525641526511060796303486117595175553362412971116373537049259786024044702564770758956767577141996096817571859178433337284239168451002073595444708815236160192568402488806825564380904500723410820972142194239744144363388172949895047059622529805485876714052287989922476181061276108900024082356518283183507067143252078807038264422797196342206028661136105106726310779421062340469957433298581103009650179624953934465617780242668136769202409538038884871726911316585337680415611169215109456681365039406978374598982915164055836468837460246413023275959315793949112870748550304774083709349326956836747555305002558374767615479862642953297067474371403163956299115784580271155714542163403111387056613030558924639105809644550101488308538739616119007268366150609348874641640386867990275568350189724761884302528064956784037786008924793396573097454334817525460314527095046388369669647142195171395738210443357278756264517259989759674810246400927542047334651483023841872910518375749501455515035888693970880776562525417632988195768389116830962916244328710878992256475367459258236658722221375731474350465396674393549991902406926670899877018091907261185526831815056263625749168744701209702953504754762831607807554468574186627819220656391507380024945217275421672743320850530179177850267839326638615091325858334096682845878488996255837451538185690174842848541832522949762909108447393430755283319132608779018589306481266218333136831428196608524972305329959047414132818374300553777660001219891242008498007290160450487673245789324342777214655931252955717523831193844668476987991290934194767554389777367757292846845215843002692748573191162809587851571441012129864167981754988271807229808341971959539630019633825251217565953115035268262624183025530140707337922232093192433661509237064474869237393620708615958390470560470395807710612817023422523166527254836593801835459025945240320608211210698098871629773324855075970026002637192673467329961331049890773054286583830121172317966375689484673784974569698645093006415932784504780726916716549387413991360101472664228837177108434988980226175733203965303508755585205502568601255065599461490200356912649389495374237620144721330594787985721314201128530426266187331441242127599341033435524198602438583469317838259078658262650981394177089486000688486485179051545115035413318831236210618464414321736588074994425705203105558253421581245783415024359095000663806376015686029162510855250821989917642026385642533574849636613996338465187103577373355972186939951193585525450791874489695700346488823376526935885622572654934338956211411154155347829483229503672373201449034670413361614809908940560886678768150180769416628012924056721935423032838399779364959896143592545085241991412779575217064018815672978402183556621249052398510805522100625620498061140508861644789805273613643454363106791989133764548627991459627359883617281074938590090796968876845076737380333577330275619034958351325236757553480255031651396047661060865756532744614070199539365732083136786975411499963889141602779085574707653817913325870113473215342089728884024240772566588709757138629479979886897407295122779921791913976669978141191439148968623001810391199502508095097341148886810537113602809462687448471314809198218144038124204301769639493500923903781539298619842527187435261623822458952977179263417642446656964652775861306722407496913457818458774090608462098320705599598124063451214032672750588785612523527868075619772217943855458588319978572165483738250612095990900195995025363082882990682039734832271328561603796102863819440487395940701355005825652178028906766903223561429037222744186212723163124220636416455506855142114002408609107374523005268960566478782729028643959557402133471089239390219608068789904127904608173849080600840846650610807085009687168360041716354580484085010402295179970277426342954329646792186215128500355143723874722288675000244038334689573421164209865949167437165506113485312453701150202339066902204643450133029125885688053646001049279723079473522605572745705395006645778329989648031146274107616717134105464847717240747592845810969253860206360711656149372579134846540550802724630613083456988180667796348198906022922048689185100145814464433834286741106886687022102337816764294014224330448794313237111247388010271985856596475494506324145194721838458930336061968308219757543859534436292257027499761699312295833809752833223737232801367575739639798763743250398021748133484418945659801731402000515181810919679833220754199635466518889548104509068864455652932929202947578728195713623366304825374612470505707351285944250522250830915969443823793392069401415131873375454264490060174207210961164933923931901430081797198569023214329991536536600375353054680379532404262294422007605065244217068528037159477234041233872082441483959677201962101603340209202069507373824808738582164841375676981843987115838638671474111821331040237138110124080971736152848213541204147002526581670838252382178741621685073715898891016953126374189761981111719804774416640794980720874374763319284604914299939432944891766011173393313899638659093027049814397686244116841681003065228617658948760003593719106493584386575886928425452198019713557472892638645200707349591765734868254556397209217040779843982983349184036894127506316812021605430495780265279434144274675935367284154181621733483761998583998198460955557407694715516461046478082653718368135048465110352548272883035799838462818890107635216661488825823647813993222263849995518022121058798159668527196433938027362973260088339206141691510484502097867922756528570666974488199553748811941235064253374016396128816605216814986814338537695959816392972673987450247449979258946062910388307362124020916102579153796855344452471457830601571248933770466770113962312178685045430679630889240295983535839163220878913431037037069431270141270030589790070134097132750779836214445514694873272204276605498252909563373159228336129392657820794466918463590325263542054875600824183625079795733215165367111242750796910215801542941427433827072757796247310833424792142032573510028845752767530736349668595596492950064683434404603342696605899690354449777224251874208410802422246220449762296204779455065350631912202531876613926939180792676355769368019901175276549965840674581995498697768266668334311974973363915997319212161691787823598158023246899082117989023136630880011302767689127809160408677449541367451433019565923149114715867138893960426571597015846911723201228939100466773343445229795333804983218211170827843452947897733407533776862634316089685839271855884318505744246437459018048391599108050168693693452536344661393257999241520253803833826851155769039243007110821139575836225978330265658914363046830319465000832421500797354841843915219587048507879654930743863453066013802867566858170832449348015011530878442378484166584993885701630351244878794432345420619751773393603966858367475154834682713828278601793054191696331349485601910218314056053439666064221477937787192251064691262469026892616116209980142071885069117935858602652694283249137279205736145307255308748935690520072090358648861571108404433121585588205345791563602757759294452505566481844674136391754134317785845230605565673098588540154324773565794648633108382819080783893669824738689685828383454050502901111516410059745771307295742795865545331318183825739457669698477717723030591336909025203448606823542267166049663014510963840188742046189835827808878471266506982647612099060474329092698843146562418351338689200542407323373372483137242367497754406887386404139239521347286436563445604772283037281280218424529701699824191677050472730883895620482147226417190582373825759952520502204882128787276841329138659793506115155791849016500143269204734109906734367811651357711582012679934088220204649462165782567912946721636786602148263507897516184739565019748432794200469399796441588957635404853845545325810940424157307690773445347913617612266163474664071567870578641955997131548797882556442530699473427459838567973143855589522090447564028469024675045776605626472179844383474817287004686192896333892018120281997207057591719165608025492340184937493384314148151368203368933488328088351663243198276421142782418870868772405338944958594740237632000556537604284497295303135709247999704758185864340267338024233036436329731912792814564803217295083620552935798660629387625532552786510361335858162991802344309046885335900070965664649885665918201331330369124650220239385547382367034590029164674765821181472226526304670819245054482909608501329278013520688879989918392446082298725328762055345493526968978235282857447791952169258310532887724333975138357764481741288181165861557878237916154440263241798783547961470549063874372651028723653359028565222823545811901697914116139396448952601272471998421738400529785801971221176230973624242638604505218896718458181314661692274613372473941608354623944147998765856799452785784204459509007410932368373349592720246750562861789364888878900374055622624234356469708878357096892809373720037711201344917318095920316150577333949980952863851554506450797875584396979999264966049222667384951720527628931465738926197033180340987219545321481847733021950660336897654267885937870764681997851814224668199112491606583612290620980341451190057588343852773445882270715000708072505396036212557008625163474100575802803116657775893784346435034553520658882101759530805361801562011856817503715671201687720381203880785675754514872893119877410459942832097461612213347196652277783126905623422200883823754068230209797879132185341819801830623925852569409188721736933474867724196236115663977521014582352211059355167983774234610080088555367638457605997800458090887515285802305730913912451230287493524666024799606169572339959476800636999650294902509887789838346984257815104367719564959066036135191950998587706095069049274592963875267592523337080525254427567825732414131882958772071235234936661596209563544476234127161107987317529422589340875603114209702560524913958992950771522966335746097327577791269697872986513421153578833592488471864841592835335838137926649360974214161635025108207492403520944041534188367407782692215170549264394670370183851354128345123492133628418179583235817251254391253947286259571464462380699740711542063778067008614463201609855973220661201223674695583531232810691218134107283247063367592342243672900788810311418220816183131027576910559291199117213508830221680415356631710545463196679577785929467061410025972343037273208665096870508501460148270344789289467842999869514389227737722270028847747480084316612887405731238887601715352154954813192170056867239204401963946466606929094895340270160920183849360289764175512019981781122441950012320656646673511126041761359212465134247158597760367927490715319467331499198391480267693710033334845073176720137405565350170995967958803458344687938150471158828372626741038774257378506134644438986275627696851074222973783190543604413381290383509464268727491488631060956541994371033434423354212323752983538380036424693897309978756060556491733605228631771427881297149407313543442622847421418674905829776438744695130047149620120472659330038505592568452216754283248649195625819488574156330423929540855476377966657838911202169383444978939309267060183456227095624470678051168555813061745538078764708125396339499781303795224291984137055625976609122160112868673855258249536390947102556842535132909296879648853518073079646579682562860803595414379155157167483238718035534933751881368849228081490440682740045605274302000331379954821301052745792613304273401691098228716899512197072397737918853783077688721283793435587460056175099927984951153338879084374536147517784933989644737195744683228416223768379954319970790017522447294589177409836130650493100534974137977220043485029330158290703545767103976172287129958854898290501499460425446369031511594913947592617836160463859018455933294076495912321208379896831933832277530549758217604539386034150862895264341781796427983825432721758781491755213141867927598738247025554454011827906588600346846020233551438195455159978123179114277979623562097176386574215310920919988372410315991763757189689502772608557728708087977751843348595887365126760496210717034435948197293482825544890500619084317079321591705135814638732505519798801945527565666843812500096577571620087944045634792721045242320241448209232941626181484571537852184204208001685508172840863096418358158397412142292256360068781345693902704235337624480055231148176084404519145676112114793965601814097325909118963176957433876903069107272061271256909861657283069140856057766625072112280929825768491907164921639801284046779419867467324974589527133967310610400668071743300372517858474599175618995895820495762133461135269737165066079231967570837944144876696884178038619576450475209978873832239180516738849638675040645892547045831533397643198707801763688964821461599713229341341042677461018422474290349972207777571354392753971431713948988096231521547490379127656500938797540794100097803857526940974065018091559639068097742484795143888311460549890222446086117006516815406340582657791474146263963854726773051643638649177436750692959891993449545507441919300801835212818510241878952723308108532660325549875643367525459897561919718297815266122869217292984764970996052291865466490562729707720993268045498682457511517461063558470279303264406754543602449268568362914486912427782909559471795999655692353087032911214704950914792207565482596110222370389470970155223217664804482649925048481398434208250253415467920612410343065086218455715560951534412452220233993819451991667911411964096230254280142598355028375460562250891143639706979399424888514421915852243564749181071010617501421929256712942364431362376069434602329451015861305009836478675216341201229017109562803296933038347392814482128507272923602035029060213874659800109567276392824401174059494227297301469980377268422967222034554377423037168589073710035163975803201357245925705122691082194195956034968340900030579478863604697486076758507687432418238076191009076393279495933750752998443343746165100967292980641362768345860882163515300243383566241231226738638857218498516798800130760109993539772216482577346884186861822399360727961944495441786674194477603243087036050392900749258913190067703418761390707679647438768360866704778178874625348442620698996498227505333461089342749539534095271157565832490012413040862881845132259317303409969293848597009140269388112400593554242215364926897814086561410123504919781899327798279777451425445634661671256841640600137386846231165194449770201750470521996171189042526992354523290175388567197224819498428261287944962767481132755984449286383017352691466781701693244776525133684683728018842246698305544677953542379273278392074479749159049198116460704070626816369408232859156912513130419400457756229017785212242390349048061164054875314217707729932016452340876113121484570008096422943837472400236409645996306636852058731293425215571722754886851325984048238311609867934300115037628745964217017907027414621517518749496086292636612963119319618072423832098639802826727132817340072612002302948861640585089822757726790303521123830763288193999459740648133696440678242404820926486769695784695727444520072068310531342832290467590408012809975018833285732679678835784978918483346959408126863385452694310166603814878245224591545705329127765538616133043503710342215110003792088716001390558947538756699298078390283972359266432156546941885229219170652637350216042346220334411561406458910923519753469035463812553687199527965574333879913785924881710658826761039157527299357414965177285869754335241495130593406661242755137754288567846886100131253535897880110658305035430019708168325621376670166638016493874186197524621501297088072915557547550489970145656471859947944369920420676428310302216713782612300859145578540403235351534567855532437565268152705627163261987798035367932707550693653323974052216666607685893025841670002775925693142757108194932011797496585330416486825073282608531111810305836380556446652336006897479163623567079289008566446084632342467962011885383243093608668736532315180528083841687060410604502001533711546726961246434837737007477836489380688767239852016450532784403293703183364139201228852399968604168652373576033379103910467852815201904134162855282923573321294382562871446428087846533819545180717430669881536974886835525206789564868415931649366901683659612428461388101057381597019392956531626566187731013283736768629207613614163786676089666798630192247389928438989599051468300902345039819313394145005078976456597452871276003376318631432192124987456165238115232641322533849393875656220991751044083219069486026286597511016705043261209423261468994256739990518789869366736083634889041228404918659188928657356195055941098428566929078162824791746919949205076775308074507693542336922491804752628412835337940809227387338420877121475790550831539806934273713267820468247269599691601719518005359642701898543709653019057572353660367173383122575731451290007915655191782453217615784470513476108670154618557843887396301813045191116523423011863919870108298209208701102306038542679422582211880819100855701332786518289372368583726402049756414979153170239956751199992917215081673315479199100851320368938859923888084789671847976631901089724316735316548622929652423171104636315659540555073283649861728806133858004823293205018182532033234152874662065645192367560443311669563851590915410125326831108713841314951068042805257113899582134822471411138303699219582615768347274978180369167726060766469403064455773803930995793192944695607368919664838351786580419982098080982493268611509101306698283656250580914377357347145108286314811920504984673721557165639239755888576250069649228060597013698737923176271394322847040985507977704123413648165582062546605156112870903088527584257675442874547372144281488195742050490271269275050191728869897602653812767243175182621037808729015780241264885621794924497657357180433957911019082500086321789137326513006771580485958682315642480449338158732752117996067398464126805360514665674571043895806863324339677465256645087549279076200891541993882305941917355886653186229478697627388074617528751578898823819096687740923461473752095311958545938833923379069766552608387884776948860011223003214313017180051673121821017746287765502988324182836735967514855406886821966651787578809015304061783206273669138230360877104397948215925187934824387930209721714740251594179471092192917178007316793315967370237267122576147907499096747988068949435661610574522907528403748806048215805747366954345407711495593279078989517735349254766248124610808103672270057395507983969687426120652289185901372082488836174475472935567361227399679219067829714854206012777797491222998842574568959288677320840999820835728645634930709401703898232700855527685710663828916064398938733770651938206426436369739431961496319729023510151243210681943012996224597014956169560470643103627701694628058985312234726925950828946220416033175519892493337689459039741117096872039228018811957064857497853586666934099450390227157724181320990042934116863275619990951223210679750504977252325367135056535275495489670494566356592961078930947623942715694131531570671548993891248638170160705632233985637034391373530517251512507543499926585409415806881868323416902471921866265933695829215576058996677335009424096493224862941738972876095256560008664303065213905229143007967929753217760303199580345785762519911137088542906081094388495089721470163878972436968241488939091161149725180433144730337742246373234420612336351489562238953706573227193057520655654539540164491822731315444825744250606522764670604951742755449080572568802365556718263692683695153655591197458155076806209172379607436155357827357844308467360137838206188155010998991004703814327230376671692456128889686456541459944042888143463438889805998951655161737891499938004518438236410205485200127014013600851037975070504684118547955983005658692097741127115388921857025263699506296248702519410755854754310281047963941097076293733217990035683872737211608938405305024202163574933873751520461103458300833726706760008232672400531820481583220255160085856565935311781804070263235706794617255829926131088406194189641991981481165257110873782221692783898280511538238140242262161058477713561885597864529925831044629493445270983770654363376289903263072925917907395984460994873376759294574232963024903132683512002341005369179787009691029894191006865696503756654367440266359573866978282799035096415879050127438451625634716602770896274375164528837649005552674890261131286259253355377554952924826957228701394238309768724236206676518967592474688489205652327446086394546528523975769336854828668944145930156399392677429770131311726975151367891988027264619365393825124972662033338099007292869802294223991305603788116767975274207740148164979419267695359478282198335594052583930686081116809653023100291352034329731176669471548180363622175254712845546086210383624094108601481091242699026736598232779059354358522723780892402847041675536620621104982737724383351492566041257258505347164005009982310029988863412456366523422206428248401884839663857713688563435503006082644128469631695259522356371203700201119288055013488520556555107110217637919926937044336191422474092166247939184904113204233979938610609694695726819135370382293828683857827447699305698237172411689040450287171828547457502100822742640200457564699783088002047347683430539045992502152707385621597133875102627076365955506958064001431340954890090513173123010489076895305831394280666393606632556630383879741314537896733072056294149703105713941399118340050346390540966468006098497966155872843813582476980272614524880163894374041770899985625563674919799707639452804019875046109827589301607550024150957474463630809891352583487357077087186499769637686707399650602794931142598946764290947352669730861028715515850257954909716984925735876891063335778694334261680358889285012878785997459854510343698209879917317958591994804717029948979321764088634532076289648397703128279688313523349335968186651962757119527139483242403184192953611797002038857449936001603064704020001876054603589529536507999003080102778500675579546464221402789624866755532822344456556206647910786706919072684655066963332721201953364254835174131068763755905092519977514552062153680658413553429187705322392436409879219194135853882123132561985599431479998544128796376985095586665377844512492179658483435828548325700252496620938482089332014422237017172332503841606580772549735607566685249520414540309594237109197152251358692883380392349626844500017023285262265819337840751183655163924402408154338904441719816021791294008977207806961309756071579316909267097094913423380659542692188445699781296065133032590514316497225372573123370173201984402350929176259551750982614580386227189996153755696109764191418870803284311199460569194682508170659736482690856733547024401274185910467688316720578189948011203640344071797229877054335779494292986087599592486862947823365711549235077235845557390646715878261565996451926439146710069986595350822687804416215507995005532491737442345806187887210037337853749854036371711800241384112245324122428787547527730252638260943400836790682822008929971108771316734586310312862674222962658617472224704190621795336601008173727437609338466767831617383494759791630294762553453250899522131821366415186333828992498104039418863925896210521902560878188822203713338556103357989530100698953333680351790727460573725275594426059517719277570012027010066265387224848589160788719046227271446323486948187597636284848120507921196887284795331510460261296415793914867753484304814361219846678658355925652527457313296813510399996819665330335443963021144770301100653805026036131154382599046811762092269567179330264448597222471438778045474157530480244365603620998682401294144022184009327012264774202845399650200696078597826032921387407572701851336042071893841682650821912296318335081084708812107012326623336638060695190554837995468853189692510786146362932289650346440243892348685389952882789771576378882117664018671426231056848815159268390327156484998646488682679350504638678446269502972087862483411685691035347620086205118522640186416005322008426202289574424533806177619688254432652309567129983215784772989646795823909601339495192500160652098866786028183788064823586624885857239095385792939585873751974324166278294092527714730856226792889907878039254408544018090862371263250963437966997509116969338253055526943313656277074208862496461512961699614670743267480983541760907452515716096086600001031604903851064435509896496351432391739904050853977520935780806966531811987473528420289567660330361370757609892813555866319341264813834146299993194057342578083537069437641637162705732485690022065359030165919411853135058173516135760767841856384623353093542045477365554397586146119256976911308585724407338337159654429025212282653332969543146871452905962291526441639562466411421440964219065017529597461438470993125279118721319428728742965813625524640540008552616921544452945095057717462128603448855913698990174754985012901052980440524154958336348015493500671425546976161423660360043722272190393040980022416362821146727206474784214396535444975814852879376982447183313279171994480374343255059690834155377102366420609775726361545379642726868791814249234413807668748592148918968961970867214797337749268219584132192424917189872914296532247021031417519202145048150555625982648005919872711183120609275713277537406982243408500763546127159676343849835859591060753570536459277302269118493457268840476990292947083563240852133965742891408315988583997249737382374033963447209423801213692626016301782770679339581319450278034213352392062138997539914693671346313074348105967344659295825472510226315749412355896451175787757856113861160075408787176102325555009607997810768477494647668367728110227865724723060349448493169419845013624151555432876005370940783265946108548162253445939988699302851807296059321810790506672643523010954586287899237064403062325305721373288161564249246385476751917977592997854672533185229969924634420895561670569039986782042168362359652140031790823046807431141350327484188167649872114556834773581547156120222252443751115035339284312073470902675993538598862414003737396905819116429188985901387733053436550898672383772172690569876758231195001024853044757097676832517851662295496250967809344332286125620251999285698634023946640327258306789007906508166685003575281251504607203056696222422579522352544810927363058748746845057372949411696233068053582761812661282207091852760277522057102620468652499906059689729923082179538736317185118659496477932203004917655174204899348990021803113998871404731497125997559643201875209614886096769899506291138551346115836950680865270985743758314506737496148132380788749434745852230328697355954832840473846402878733002807160397860224304851518729090933054449174926182447883993574173960568234756073241043333808977438515595521178760001997363730559234872877501361548025110747422065296819799911511829859555648121611840252031528538550059145917872914368762349497173774531362790922961033605126703779458169594453384440973305105697127091044496783995797736011240689052343799254504124693389679504990697886866546833546304641321751340513953238204764225226084366930771626574567456404467908622035143014232627343604753545796139850179637287843277977152093816165804193878837006687879065639875452866032616799631604638725172364010017997952792908009973409838561743711525700407120054026796662534202124793725907695347139181803449282652064501512333162910952800194364208305616596633537774665505030910478401137423691899544730891695429197484753277295898538318223345927355789932289688999825049242954927369967319590656652264138873622538480104013799368851203897510523163718994423042050783264919406050539294025873163139736648574572100470628953812756341906120055624633420831039092803283952218055415558562880714641948344683644530782640698538255742550147245687220679166124827032492911195691356621609783868940048651656239389337162049426734922100054454535705046998518746199867075196672969911066206410376368751228581934381692691270772701414501455124105825083326650953743010248853587903134116062700796189680788127102953946734687675023040780425448758667736833288624389349270677592054977349401046038298944491217553602976201860767570025419902763327233329974620465862711421488123663856266346570327418500662758281923128090409966978348633635163078753929998110057069818118247028518267745980435540821988006469588554808842840550462867928080480393288321225765058898779732234920679968587489860261598925721117875633301904324767063905368683011404842133070076313841152969618169786922703682022085892539370924629221667419217194717015419953416234429959869651898447402460910927900571930691557027303877547041807065570675758537650217375104336359807855037660734602504236197368060109176154373259650172504252678381138775919416700259647352062844245481817692515143673467963299490815937636199383583267156285846853965387018224543570537001798771852793038132763027551291341143226142511562675482758751378148684098062071939507140598303596045382681378529655018946780506850916343375575688551194835910674258076712841006488189072974419153626549747355232473108352131367062635807543758682449996270453928261869697666266266275701324011897565911249578459491342957126412530394021816419829077558197393571558473835307333805052472312307219542031744038756239055423916824323697486723632194762831645962923366977821559756011731219801776888674371756750225864438220107503067615997010281898501910553623661369084014561251251613473836020062289827037308767738014263573458696984770159485564540860959851383298540896699781621453270587851014281897856413017889418064677887689582387823201296606343410830325321693087101042332450736399875236726775774796484762756316317348196161112245453588213799593331330021711848553075151097052904728168022189196515324031033600657369178273422404004757470392669670745107390385881947859449953792182084057132105122234508297977925271125023220500539656083971722497867725516999050099177204978067672074707745114782762911659568466541388290426210631977043543704517053096210240119333715408642436403366325785105876968841473246393353544494116290454534783466078676920636197097655768790125133068914871393281505797480132022622803739119504365371966922982641976057939200296018512352942648159432365565220887202300836013487756793195605548712178918680059281342930747005580385965865734603204592546154721282477776823166005413844477708386076582498383528066605464455339387088049302538129910842196474556144425155071856591987092919269953709430086376143371831101355554512053322557275426125292718658652483399040750350243053544135476389651914433522432332401798735030827277243002308441796599763695038995000123874712698237683865422438623377380367377017350458089546609115939607508140402485438773698562685097116762654736402671504859908735607177159883444256736599989185838305009512940498514911384421525229179045529755179086136192309019766696784390545219939634230221808010814901368975631819813765122961992059568231966397836365985399601853558369123474848208329706254395665439952844704294416543934486413017755671614339269762641963922085046473805074808953320854924321061052647932982980779519105471912752847941453896989390164113991776605155769540765636528393599959347601776358655410916641557275398658422910624151796594712184746998236008967151357088857900987138704743442382600204846218239987600120732207658275436722724262033703215001047109770451258935291376536231533947578536594936770522888289757076318132715256862758694684457501721593201472790109632835224620668350929932924029192647811921423596971146383687860468221784415738031074687918086678162649822319386013137623581597978903854557210114866743927572802721605891345695304349034655810763741396889110029142120665695109760082568413265583029413060609038167922406786343260922005399976550547336357073019603085544847899098311962779167754969652283339949777946748180629678563601293284969160934527507772088163231096279399702667303632257032106344046219189678998200741373665124012200131665942145138997702984141024967355234698036931918781857989713247997203005309148288847172623363744067772796485061959360048968558174049898812293768796929943256208018147450465122872734531940964737786017407480144712884732046095298940977498307612910791291489998611978523742009531432350922104743416439631166397827971639355702954685212557804165115243265711318053190255718044205970669079584813733278023425306605069354447346692524045462565137891419020760821567399325475618089342746822548060481648479022522385595458407178573451125968700251169561102451544233854259818526460968132985097933077149314245499673145559277282483761990231861345619534476239514051107599571854141511012858327286571116445033638701212585120363161390464821892730841690413632264187004612224393425586318762808676137356196184963947410750649439883266407670063571064190854475153875537723957306132606300731424224985980429175084272803005578382639607865494072247107552892603879214404770736657873087594866459876741665472896231246009389723062730426721760452201195937132549284309216724599989799276699346756958890614989944940158042115458774358393496980432417394093709149819450911751314311705848593238269544560425073048656066711633641127485420242878445828569742584531998712705457777465982775527998371346288845822958507894697012662697838850532336214575934719895548680443123935641205459286532775744002166220686283366884256781076515712006918244323092161497240410181883249000268599754521706446888666258342134761790854374022578597766266588582713324231128093184030061987103867405058278013156987312965957112183400919469519990104256856895466590818560724451236149023984632256084762373614895900762640705588287510038234683737884730932901829256033653328371347952103461788998004979488461998948242901442693156646581296364215994710534063091437970704034126904207991993078553007730236060608666684830883436798898703510697399289023542557731671329280460140454637180163919318000916020492397879055817270757284628468181619172773389468756504780729256138176304941124396157422242445995010137912863653989302335720058996220160450613432087247782730633107509299679162719265433612174027407996335644357137823118634827236104862441072524015560090963190023619664449939956093959598007205134277624169552910943463535679579032257558776724139511525942238544420379174335601524893466936334607940344115445533740297538182223719263535051493938129265747135371458465005349556834539375608869405415486555866595332152810987475943576020228343490015762141309887872391800194980456832732783383742531920508033987634488074560234568785435514905303173740693861855870165767903410292066984047209731551096707275790182253882893262525716901976611718641522839757522274026820695801931250014316101392852908921172968751434709324113276506088251455251407398239163565353960791484638572910680530450152742104426872158252836453023677337729901738133969173290255007084215291964990626884804867208396240714934873477833828965611562298468603616481716488629989705461052739152384259714187486199312425970944255406047030754776953939975457036726796647239654615679555268567032259726155558661404589987532136357387013356149797469620347520962453567629484160237998183862652381947974057081857373509135127110249705030876674922796867612290748382508651729677439048101659851945810186165062207350452553936004647408205082814271268898383013120837683674520906325564651089840383745483264126008653344256512110492899358030345597464643274475203471396742287295025037719360429889929638063898200287499252482966764578608034447424779895644678098498552429537157850937107596772168952601894866684652990550932280959750512769137539008526821658003404413924725118581704165826183986387866825164006134810528449731592522392970435175908409107983991573156134492662890658470627572152818880485806995713174396693283798260201958272049685809375325803310587792463325497192376078101949693967365998022671821248222930788510281607262126570840393189768099666757503019214442625021366210718142344679712014469142933103145711620717267486798309503816271734387697769626532496909419462295973503611082739375823330998437167174623492914860441191792118092849084193868434822393499359833105618849985026733172181013585001016500903229014401088971907253927331465561462549073940939285639240057668824627818552726078672103987864607724286065499601280001861943660256846296968130492664910892689248692659443737453820956932525804393313974382538867538054498688244946380477583708778701825973347167917978359501796972551744495639340193723612840287081264490657074753502892131530788390212361169556001300771291024022791206775179697725262130645657760797897964065420566559211492860007992756184931897366002446808033969896163465352965965635543628932154502310625298983652658998689044350060672625725356013594976133971472900317729357507946735077523408289239339316461422727007920318266805576498307467779444962828226056393315477154373906031678184616444366359871198991038206153922959280493852376611280705983627522441012945119079083841600136370431543357537274583331755332549124537185349753726195790768052372325812794109410407924088100253265008760872107678373369702629316966564301695828747672550775124805500230829777380198120439823042288957893215209898817875303399967100838429927620676945358740709176350633427296394465667251499224929835326240196214442077238322016661557675286071423420733146750108575752005195150990271594957280636813804974048845340375704016819068081905780772642572218565800663951820959343145547038320466213953818494601616207660475298994715493679292876365265351466543475797502285761353784590292457715806711355262743422854526042559940938395118002656093774109504875018364834154313328099816046193255368995400076701790930938343850447044064154181480735863346320656331106883720728521432999895679739418974451100774552035473359354865988990563770322603473554250992207278650810043048684931546020968279075959116944750541546425599264331336283829160379177875688294143114613718026854809569461452914182784394557247577147143654425100112291857423604559029522864302160639405869240941706530450255793850648607214081554176148850146022590821824627655183912719660656772339123175265015331449050977890995915942614115290879811512033058047817028973877668609457225938148346202150629511206185305839245017014467390172013470871284115327093192801004912996658767480936187573671373360155354770408149684922303527182341397293813999178490042769872313434900773589812328098936883610742186827000704490662165184320928864314682160729132191085549295793841324296912362907056412334054538539019125445729770503791237983248571654152688040062278870066883952792565502747841823193628572073027444909517223405663186412007745772748536760778913763338947572333601486668291028138120774724697961305822554512003777764153112887175954058394110729992687248198826259214412994939133645094439703530162353603410577842225176940592322219212578038008912584856947754499946810092983784148888181066374067698069967572361204647727279681614379237887401912317421431083384063768517388351501662872994078667893740595258193933983193557986182497025949296305103668143392275261639914608234388554156340965738328243161183714044451793761185001632373295897521824580393209916203126002614448295309660903043276946094541926239226555215279446735290459303995921204217195627670632688887096032396259375361094046552404343420384465815276451229521992908890990234639426100835641663722803963428321931766202055611271838030998054497131805027595359906020893971522236212924976469943687030483985966760000347240757727377122058922943838050938168194746903250069828320426667678175839535397938388274983443205704964448618737408848177558611095486366437311540533616394034988417349466639600294788822397358912842571116109373656284783067100701771501470908871323257574138528737768708392170647648831940775422523005723449370220335239981249367449949944836245242711184142630711542889002237646043320953411164589842465028160989256993139735917550422706481045510441549403492484948537580004203438965394189794695159306926594524646265775058139284157239184756324030332593545113885093142340460267425951700607711169016080692061238256064199348838220506400525671408036898235717935994989637612251516561516216175822639673511534289596955132930331702271911880319129160951228694779326351881702536298345380641734278195950445218300349214086778368369743262270360925369902479978071846911468302915215913029660989306620825995535267104354805758541440184103777217801681382166610341046380375800636919473899778342243241119188669553950957145014774638731197121086771597297320146027408301610204580772149746341722021749513234284142912605904552480911271963465871834338085854745381255386179408446082906784141946074101740440456246467321558149225539932458563995800773568682145326987662444918271151310377295433783174438247466413154490274808022164435852037849776485923873344388557736183035906845545970903664607127751760761310243336823664046334598138307005055323051754597811319660091645935751523287181679288215019185565062005395968899057546496873481482763740706654727250420278549423100524968016145170572574031053642231340826894782277086413855002445555244397719259990841966402409788678518476031996349696480519339409429322429093103607867456549331663951722874256619664290384797268390674645892317309057959901663983861022591486293021503856668293770666782368906786213749210135623693976182857873294014523500954722722282284723187365974972542691848350683364764962754914663269416392191497426852588101220113700331487721331060815539492696387673391974779557495114480104408841278113770747480524369074500924544924011709216539894736424528429197511857775038455626136297703843751878338481956437794042048966473579274636684395704151463746939923408345376608709742246875734084225456551199984270976537872374590870634084721629197818309514398658437469205778022102256419640872392495717166039119457241422850557672118469142832603661377224919015801372617268138640713895552172087245378036620236440126495674386578262067670553330096789760872375920239060995829754486561773391790820034035510366927725120626155487062224675751683972856706330861311221469970265189710543465048660493160528618587380751588234742513188472649440547020697502454189299582344396709109818836410301554681421892376875605670507942672474147905518321388990555505749836507669114699865879608358509032597225290120380878043446594311614761336405100245218768735306149584758038145662490928509597876136024603193014632741998768507928005212841061209289325611762348128235497301723140154912753842529166768104744307931087546021540307467458552830468480264124044250461842070678810095237613980451850221913715919245706343856183512218551896874608200685398885074299754866022404312496668719553706940477807334093627253047738476497120648785310303964837998382610838028941764216324274317376099532471710619608304689488639960038969860013300921549574059897115437688241253670045912892910314510148538102954459279504721044048765508132033344611085396692988768122394507461244598356290572680637047179922249739852942629520017900728705482633283052521804904337686360077356381470744328206587649745261795653138287505078965111057069852527926404093996947920092665952111664175627547031791922138414091314804671920709861534198873775061952002103188849738075862896861558508279092902186799555682116169183542434563942055747832122774958684646973275586576805633139735064469026297488829698326039970399664514963388709452026121528662087668112086272355873935874816557111936651227377139579161883871731439890766573973408793013283487781878500582565746556968632009849184131058806368010569028750014802774668916317596428389487553748182455391994886398909903210954001802598645558786598005680592532358937740798679327636952908021099442180892413588901307830694781967789598691230061956770607591107069903797970772615573493197806290677034744469489285497334347089186624024519035039710343882714384939917928853942809146079586188241213043883928934042809244317857705816509702127607749772704336636330880437730539673670959704410461745512635538522147781891851430842963984578210657289804853347402853979477736430861106444504268343047563206604372140337328898626896126891759614804236427539806117514592287721844090577714292067007209557076553144923897655851391772979610049921307551815819034815863600913154064932961846550452952220039719679339657828264174752454789337498625413464268677097849785026316356717201767153934236926966353433719635623047905203257524392773694784397734785396454152052578501130449083266103701680826312721700922713280195341524425385465201524293218358619638594934147920364679673464349840853884885409651289794438064218982555783837918852487047480088180784006289058463641099601189881926694801024286972101337437554977052545948473628633428170291142274402112974224273625074312572353293386225910980665144048455418814428321212624086971365869770104815622160441164896094332638627996670048747195608169900643791492044098803646045542165216224337401006272735804755127501060246443743491650159389254203915104918724940116645094403642219646120685236849390823370583448076779890825694197124174983114073600613275917510685389456233664898249052391385163933562138968350020200356498248681715718436269308697827927041797368210521041086188451165995224831531971931113411767033957097780694989339441935829975925611769636604037832504594521611431496419106321326426986016639685710400032195962189393753939165088316328139907577397701879306310470091120823840019964126183553841844761001670695631598867882082961368598607182218419877967421845249154465659985529115762898987513498997622326208026974240473685351109564259849896143422928540805596941768004440690125186527489821997344384723348350568611486614433096505466784666832017582533188798500955634371395636481354752657638917696465371434695429510750613411543308621872561024662710261484925173841020464137376558597735887954649638621896737823591101688202991994192594781015760949808331001538796819674199184025940332251829039035902948070418741318402465357183856583730914982653328137238505473580810645047942604743701138171535874438276882381085640152093007035294942514259424689131649019360240600386655102502937061146222274315960234017325994559596450136129800580445798087155576125528705517475535389939735142869295137362428553568082663970006935838103683354211511286043615478224587446715830304785578198029233870482421156152793647286023039950879681285955629908417204651914533041631556376251159996433036884570580858384723040356042731952478802261992565593687136048892079277996524034863732626657267040359499930826488257576937689916954441039349087649251951027515855671735766590446009963355647335425179031362993211213333951260492448853380902956312978961997823848752630152861183670771522051207725271838249756530600364256516128582100655358776671170129407408862958746642862543378722826273901742509986802946128487026228303517428036396645913950753627061773561050733102385845457503724444717284534252793015433473106661961681044624994990050446632052082654764476979393511212025009021379419496301593939826065858137408570134416522739842067824377946364123517476457699909287872898468237722950670976605856289962276742822644584065528177002311289669742118203760328562122951671388876873477868303171010295536915121928396670318342171253338112134617958113924419822969169759895507182168881225200194369580304691036719575128125011430190840688085110284961937244962049990677540685972815972161164296834482730470480429833511437536987330109918409478645824500893604837064107169291582500003350367652519995685172307753953840732476817884446255710268217334330682693574244695173672919704816264611681514064058099117540603934322268452641710297082471226772597183580204390266164199135927676984361804545421736068874643826590653735591793685324102837137474133302498232676400111236158213445809657241698562771423765910159941433181385218486623674380277143958176574075996903972154051768809662207796739175175018701565511097510084357898400898999333932930026845695332490303053832423423720740128037994636447259866426054659798034023761347608140712908096714121363156683485125383441302009304876316169809148682712727108296573456064584511852872060507460056189797922009115329811762642567594969492969800651824641472465236290598483702752997392469819896213454662206899040088038001156838212372249560348958081183484227814464572503334549493871374425529406342915414087571120236497719479284016896187090953395837052160500550143732740952988646348890320712338903799147148168650230335931873247229101059525537710177695057928367643143044456245995663519757698366297253420954802204032960377052420472009954231009606327768120837331972333248083271406392003008547127159970845641574081523661647973578612955854094126602943492793358140610666721696091940853925170555463731285251934178048690814779836764554881242823881119708668684147848606219735697984425914265729719110109614569555616355391880472815419234042280885628290603868469381083486412599286186199588674021805714929919841412291542777316552931941008265350124292386222621021430625954784913449726885007057082938382306676907726612870807337762570898987955437659290016188964362129535934861322465381597059314473524830313984400753557121881596285978385672124205777966964127878574539098997559939455989534062178626736509396548738023904919090069579176698311737452004147874369516342219127116102599292005652267270957168522008889947660944306926688196828626962070607624349079290541472819923999490735600366181543019334527038842643560200158344132087833775346822629319153018871177924677145792823246718881740464426606479695141447314419235491063727272281326103203403860222192817226549378415164506554444553154658466803756976387196701137276502907423958922875375614617852658030476939146619123990851360102443790566359175516849328247648421554918019355405476742591068282751434206330500052341832660125611087352885193172544750184105262060892391396795454289853445885414256867208231390382920650624311716208541545821033074089445995844538135200011535114735345899424072050275750342981029433753595446093961204724658479590452078967962949373584504575539357623923064576032163730247516244773678911260483322323880843710119847898255601379373342196914698664448918288260299901150880895789728250643197535519413178574580767974911210083397621355714826038284970035622534822410912748742490731576327000225870859792376393744951135375860405648783647251472337137575296007346679086765082613952501872406036300673406523062871672424015308994860055462349691668186389718333889392612357354688278293257621220758171361582784595330644942591214395275448612418198726988263312674164638143480175810984486444637963768115349614437206093241123615411791543072269113223728850025088924270537755204882630594675553911288240924600439743476335350045633981303437385486139001382775024856234092594625373013451187559462522879081209015546453070997465405932691524607236037655621961907993004015122695684769294649225339529446294921852080773289978775253059178385617235576417661808417293607579008003855501646577898211859603380836055225877828911576003498740324014794531171546262401108397297727098663779485926038957003610242611171519437386953493781276920821980905211293920557201723534086705999141224764566627028773567696353025062586457961512985817323161219913590735742075425160831876333311906961673253567977177815495801426143612398622041831194871346545639347857788714799697007570348580027361603340981050778901779647716743134717318236288781168783622880077574417832970123845247227294939756278863884885858697305220816291126662598248764744957190491856356303522587582887313768516841881634286617342295346063205538254770352287660433417282165571491338366297215762014265120554091953517661356605975963884561420904870963944047996020053259564987236252806360388515897639444395804310114882094768423011751096979670450232642429358517048318588285407220605376302566182612245370180737248170019693903978071984611611488789320381909678547757882777959489770837904076568693495935730265255859804059588359332331724520203913910542881310373158244290053477287176346281247579810860948290605177051292964326037699774445572384565520869992399201309273998983108798509709602577577504569991967543826991753029326500877572145198832501456809463320669996693624185885706286546975107961684516719143087601578736339282430792964229657666825712932386808509674926392857595755081540983003449230911899936200404981690793248580101474537751662742012948847443092755141761582268209537619152151920659545917206812059024103401153850527284130638571333764093889236712549522223992197900837354279568543881734851084687787169792389264600594139515528972356605164067639087950608812111252079399492521536783983846836175161454917059605449891612608014275535299000440950348661181499933328314354246577590952102701648873370561726441044667893969595782330907927072410505705323517927812233753618408274316562176972304757103903418842558779665332127059071954735979908174918369244612423353759382487292737177469587713150616935025801135392380267771465950219914416938168134222138365868974413425460721017581986020475595795293577470781973242576813247734470042893657961800349163795274721935711077766697439010409398677321045266431711991804892979815983791875199714949912240733096930931846867737062652828125134580241855459254819432135350022005197820505473026155686579854800549955684401030812639224977474141043295483213311977203488537793498052584205300201790491853836433178944506480250883141598194352649769463478955679185072407733767230738734406889584045646623733037120776422108205724860020156897491266104352495954519624628446083024476036782957199341210371609319003829966741506511840940032156652399691223950526062476696366044817280276930778907612161024548342819657616416453856195482776496773886934436785779278682772501932973515273735203657710099037786648042771291183869969765429410311527757702727726261746370763067117609506767634420349240887423080349435524808067984945359461489973734212307997020313718457742020199241982080433079297434326437434418005615753697074439422112028498675556676398764506695448085167185462099006795908270684468465195295282383679385746118586279747949160011367558328349397566987014717541694188269166742792407181434118449824635776180558073446619394888590609940153443642806628426946634067669246814056791575173247305425512198690966543778648001835811506878877148487349446973743798812926960038918315024457269433145019629782073878667021175773093948928509599351565199832753081126195702346245185266894714175884402471407050946463359189324115794451516830179804350454684953412360370391455774774178766419199486251431626240816235619986516479402427403335746576623750783227618545154422890896679024691713251774231641507722491420391677162711379047906351019997813273192372631885511623647090253701534783452759789219081979170330009497746571517711902608499984348807954885231111718284473873392081963284353721142046591288608710485349952236672064989041810551437338855694563127383341973575092836093666762228193394182715345884009523316445687474647181463297973837738168859574858978045524489956989040925668653219519150769832281964681518077430470955661705651202831287322427455526759719759178324794844875736831871493877826813794020059996195560386934228834695309804616324699410444250188071082284641621181639261576489899642450388196695343177707178790723665579741812832715360385531622392633200831365946212336790581141457511326687419114781462384004993359317525277724549561814082645320654139582021023915959404490925409158827111056657628581811160858313482390856663042341086552207260795266640483154280589994486263187476234702321058157029031027458749305046664351939437995633950437549939808546555388877277043179472921776121698568354564569218436295268869617123437095062184053388114967256852732453731096649180615151471882157548964943961115898430987635408748944713906973152183598824427209857825830765212841144062164905764154490693398052427206277569328010125356804790808522780093283422846453001881590343845861899906976205587511824215302366798664160591549588303384631859719198473798510701639266990885269082720536319161945001187525899304061637091488341677063826280540290957036294416840374871195809935552152244259792066468696047231809636282130479245987902957648173690025269657209631133384013812496784466799160663006486710429999819383725310009839662844492404758005840543900186140648354535139365267149206735837625587992498480559751315624672998732766530136386492002159335216388428838757447337480068960044667944745554329734370298718434129105980495720048503155741122874628822196930077348522496529906748693532778063009357703571632604069916005434497854683927813062348960588101460218954634632589702731324722922578776992339840486353465064405991687835018761743488338195634506848600970487678508364643709934405695384294197118797028936793264768033163247753831346809570407327693489464823034348753803115954941529710554470985669510361227661238975574449512471479638495125291963783364859818016136712696812291622323875998393205460755389170737898043145224770352274737774410123382656182093011070076733908228971785804353309197601474765199530030664214736451604960712555109058223908805918092203890242440033276472014714566079796256521586460421874637182753891551638923953217936433818128061512200556280727957411233874659612643857564192305920273450474377933728340447525511481884834024621981572538517930955331071975292429850941189097288186510633734539092931844273438073077064640710159482541205192893612335787278139693841412471398763872714659200592636151288383436038695553484368199689463660742756999270718999532208159887083068699576678001370611958703260997912272728072712514721720124271295756222737499060429900908136079052976977451206078715111446917555161438127305706453784431537754920062270863812594014860192813726862210466783468056662069329770056377301822373935429777092931450260616881905422162656373572433878578745943798436235575512853385662486568451512853091446745898199254686929978651291178366433198797694051430771457122819617858281112865861764700492146235953698674777667683472717449050518769644342107941360068737694944646973522538466910353734060399571120052979168835871259107860360487914870759941404560304207562077043079145087489799941443374091193138070161887700460701061358067321810299088931808499954055578358227002874754752776697390860548359372844149449369750773674859470948969889691759441527524306368213851774602296156595605022516526914778660952691981912825237407246165211603558943478142735637612073014498587662347202585579306403049780180086036422419935873009823348496294318433175178729727508605197771097016904906218739562884767850150162251742974690070167549141581671496322763869971647215967905490343941309061420847032717695956103075797341905688596121007639249095393055849039399217257289695080926646711493412843201939532550774701243782812587097046818892518165175452016195666023531462092158206580495099110317055723483888693128697011268298954088936462494938009696597353908313287209371235680713401825303951982130746475365931301983609345876717082698242788159925556694814453599247274571753875430868765532314262471562490807946485342360645540249633800714418162025961912315858353753187998812013313600049825928907518488448869906088262874312117605955200580623002197271874888357556481154048867561401220514440445866690045961190190977937278358759843585512060646767914685549383301560633155823528625914484810855039951667973555680065593717438530297764167853038395668685477117097806317340425229795347965302712596899637476039542526382179679608740531030325426725051330857146318274721349099568613893639942832259078828027085029775208558269324708704961947832767517521212163246378892242574348674100328299686320751415006189096662297096141794344282383913547989363697077598166333577328737009591847749715020910294729468812872030248162827611735486723956370557053474430768800836239218918149813391539434037250453566098108378996581145868033100172927686684355723245310943717514375189460248575692218092596807934491713208036279048614226248191816865477406204529464215185328853072951912669405692305100517756528767568986486436534479605628663719261242375570111265856982533702983396373124164309846753639691027690804238343301762155837684468622140122271095803001591942629450824477199228289201765269878018489435613163063520980342319888012237024941189468434895304761334642961897568431243014486000815993269849406812211627996702121086855038388581118812184500910479937963739998682807382046578503533160245358263296333580826913855014069754462024727911128995755152525374559113265563295402280201562138830063412699777449416541059191609345017420045902908646960155275217999755869759407678749051905859078243849666104196596560665023558265231463940251068971225567391461972229002075053590956970710429192323448709954148798112008088434739248525999679200409004550569973804546933812333759529537923714222932109762819571601722118207152376060913559644111517958423451374892591379804507439146466002102601313092851248560918700161295357862814865698003280556548321386005957126369640097989424268307286428215833721685352714886036840941322226653422140306853298168093661610157610281965936825122708701185419547150912674497667503430191383655669153806639904952831813031790966194426830166386767871565590441982411412915512531763131174171281208515437635680777374111341781962483864768842725081986759130315555751164682712229066751607553163892562589818635620987069568959208906565256989800892706092911420988100058442554018596724799370939604555509876186682520895884742657699895723150874227736794637380389730834886736390704453830458458981367717621104604301867399047845041563953337979589137695416493065478014358481475784435354419873210584409969973351554427390618749703555834596467871230828221588634777793111107016094630823952236614726389251627762761426816565318454547061507507856588079145479885983648779134641720467074091106628287521931620533690283206033499977861512363860331604315093469402151261615699483641873139129170388732932054344394950212842593096879097948257576738162179679603934458956445542100902117877615358194998035986957282758032937451454209086631778944724314511220692048365584380943538584144806629136813538136197022358670723442827484267031200953694224955723137269513633153028758747129372793263077510921678721111337598321953135321485993824402479793115415580649306841693070205987868632405691091816691907495003179495338744282444431348738845247228558452326722928979599269583663897151887327647080507772338877739652753851097740196550985737163445104178404304954392516982506670566559311304544181951247247013905006617082547807001228692420214435748214766977061683944838861541428637272570076283615051844479203173802397146584686654315329115697055666283219578354685414461731583179149402089105696609188118291689922317368939064633821433363910818284765364953249365004456395212158487763127654562903387949175861085432638816386226235203783396048774894466616453881486246383907620767847299383067711570865522651392098149388393846259588638676753290696204446057744450290853852863511786093719446611231354530029809701134337010092764319134906826242378445244966393913934507734951735005354615555851083174562296168980911806354480198171256436797844419038380705146914176651038206808858753155453979388904741667958486315682741491299602731760574425124939117098562268457682146864736573576442595268348877683079284527860249057710437297461808237379217917971081124664362390665473732426640862914568282168121380409905596968161710159553097027269456994865009352220340395106810282776980638564610275257082962251005307274892142395119036319522591315465791336158028378487791587664127273530313632267932719888050239838350917248406923872693729830414574010503449059114326543815255545299468576511449765588748725850278417709383597213052465551335845901450056614413616211096656110642399892213397435339541730998269012644230549830471274635497365585055818015076213591970815670137687142782070521491522576613623081283920209348958993598518832493054883428585640011647234939600026771277706094140466076200441602657375484921621153684033271876929892977177141269464491563207404498850604999663930154927924923618671957828956877400096010575121311046923030574840790176527065170104095189313024552472974471645582365213765195821297532675986984169246814560422117805545653111652231959644359902308444585107721397226309936758001918210647746460818538673404248058981972720353022539643297168430942325181181117700169280158341441999225608446605418697630345563124079728032918566551816507690488852686725865724554553462428451343525926844297352833658341452815957170037733147826002087081076370785150787641827546354252089267304422121265327096286918671184725986272979917245684225694958200588387640153426679697974932818729643705846175198035626084069026543480540783529928205876417377058644638805710340057925737755351055063653012519909794205450119769636894299149181669910248726666132452178406923549746911228382112696267316846035330505213599772222568729732450089188533874799532679011545889647813840251557088740139717079785520818282436172718523608350538814635371032965961665256828845149960748842876734336894379825490553154240822587770198562786123832276179771302540591347897592947618899222614542319674156303297272119106956256972671543674109811973631956661342377069936107243818286283211191132911333876582436893316511380881131585840913413445619787180787939335005795570328410544776402711969796707312996656092476828117649119628247303448949708920680291435558703303964593834003166746862084512562680893262465554995472170995390891624791229332485418977161588195371262933662469631829528799241696778788052816882360040458053108060054609815864618690783956967122665407331082903388415012323244326342922905384773081122061627141142385105201042020954379914648163361283720651947631734226769836681993362624932776926362168866402022174486649333593835600873994332896844887307004548648972803362378177241968207130882956684461881315710843846617315332678984531286209060992943980483113142700928992681657426260093853858147369774849525690616988790663338615115954586371221932391990416883886917881178841197007985528796009200223645993918100736391790564547835362783407349332215541869047613134296481020177000800006468896040128259469469235188784292421547989263501589961402526057900959170758274577195335770988429983454413793871716245440253917382685542760431483875074187936967256570446882827751016497540018902955755147283036059920895741869642294340020905395434549122002889762784310854288136979979889809611061407307757934633567286536279806300695840365442389503483884224360438874399295970940008433718566345975173904284693148126002605955312035862011346168793302468608602384088439603075646211581059786296607454828970123043745536619010972622744063306019326523999385054593793855406419036352478638146647081644509821268484419031976071538371954031296060564477935484385852250593999252973203041360927689557671196927435306056322602471841334042232259507283754576224039061628395720734072020092806889951033663247379419083242007172932872862640092528555509960049898555796791231367783663033889909905478157644802360703807233007767235319058541511481911851802183447105453004533073676318497091891291949378729605158984000857530129879722398802783602291016355606022149953235236576389166846126866016144180047136523716183527008556680023718056225293600652568255985351277685220807222238297195111801582559794153995103800550938143248684558467337168662206230688657695278691949712512032860212013509481910853270817235974536730667017129886307655120884796936995961522448837431723255538315864213107091042677985520768316152016234100915884110479037265395625769282551252303098373793729243643510851033282851542178067676736417158316033187522382149774298321236661342280271025183880079327168724536100474979003428431433009130492563820961192238773366695443901926595283064638497354817576331565286006330272443341184160578092829957163755079532337525299040131441756110985333856212982940677158995078476874477682773944506034505150470805831447039878088827679990565838656456911653823357747194757478874623126596103772332044578457404090747553138139179558005487526492566640014525493175280577319823582356595141217860998639220142765020957112014669412639735380683495130511557636716889521770316607814524821530302159714579593415420760765181440005880544921428009581843371454368295111477152565111022338597302959471738565567240040942981148362452383187188157154125891239681333348665462581148177718726865361701497847210201662299224593255147629800021393190196512960943782876580233100779868644695104172096620464056173808898780482416445589291901496583392819349768406398987179230033659104290524913368562509459035669936959074555714620121783699935102990236042854518581756852164903295021557451558842397012597966152287873558170383074728014964868235143247341668239070902652495736644932644431511877623369564579363539404789093054952379080035080731209111614204176057241037460522656224978587453077677932163502937885993360599862961051274996571294221110706555095615838561742613952808910215268621838470462673200803759977622067704122634686713047448306698694425246622465125942143366016684876326892488908302464838089130793425472713188147745063039039386239174463757125844716549829955282009840113155737931179137031727363412732561740291201429993061545767681888380926299890665059646812852639647003136742017003356380906629967693270286118337246772755774688765682173277996390609345335897039448919610241730892075905317547506704976934852426498063772197934466103464949011411186642628912556241306800492200022087199005545610044839766995993314943217665256890567098853869950076511905891843210201747826797380952316781779621909662109221702752889614368584189768357030709597431015573171061019389236979170246488898612232483891297417923101342602112096063595306634795375856235972990958167160393118043414699872556151831353665786767809215200559395621697560997034746645326893001849491442443792251316109596781856023579493761886629157278518536725128582412696687775969533625423373313694562511622342620156427755082111907182759006701018387894052542784613767391401254051925115972352327438640352506348507629318732947196057858039286534964113756777300606481173069200586557763386406811371993190458494364353898146342706442747015856761027673306668486905822378457839772871139090282037397356559322054541840231848664477658996794329916927578036164467165684709695022389213115136434241110796225680705023308623844633790569303254045432643833857595294064447158842228287494432889632394060501468721742420913558443431051252295186522799879316906479583015419223646352832634199274024933849803408913934587904111590731687058054199394751379540084762038174970742297575065760627788522210069097058942425390803101500163390775218864602972074481158074421542346758983583893842205519935724062026037588887296050844164897820227548122712916333597283145203582229936703072529216365607042459624803084855572647543178223299539417728506563394647541286530066612083195163072044957433473387992117642626851155489523918130788168761231196039757460882227184599717604897412449718337223726059225520948490978844461927404893944204915991844387273239445543992941630245913250439192489668375012486695553962384512341209631512526433566088497375290466494853561022715251902963752026464908949035861514879728030303792518623840640733779223390151000115389058808568536292076117507095756769669167621252047925679594182760749185637906924979808063723895582641367884769010703479656332381622817340263735708655537329913853391428017051244060612928642281300138398132356925013875639642723163711948256228046001773275153949195296543359887156230066893134174246729474653934259444037426810706218346898404474201527512448895641888335686744431654074962937463297724656405532934694395135845033724616212390408789026626535383354287452716691751033724263632295941133968977955321124115627095893217189272840770370613415692003230802573927356021225664925773687842765606621868136130493227958672019468101447672154590190125084608504962437271646366688772903931792279284377269639493739449521796892512342713790350643265125148749006441829274627778201959538035694159445999641094455778228625601184885771634037347726653442414748402108775898685489650920201322663988687000196868852467120700360103947030500565598634668545803607023428103775854805046224981162457227967938382606421925095215513381969639167662735231941938558548983542192503980221690212286245587263939105455860346757172155495578449873653476759261474744934147450183392389651864083564266503142842896224119516795974921909946908455405836554444777557431451480546662641879963572431440587076975001713032751609244985201366084476706371413883946304677982949368987622388561446556892095270225576358002040736663241245661275413732568093366917170151271985552277589625340383204967375294225082365709981073358025182469840460009482199590779281123560760122456584680757943603563973704227610523937511892542106235096436068335884569614370765949395079373655994715775196883332184969331542283879521894362623558831220844674295445970370739107772765565944926144617073210873731994378030452891131703554869123872133635552660494657707368472667669157030227767178120623749466948683532293041609813343959584857351284080587613491204057539844339753812775918985292338830847338801416270630261747526010433994385842607599704736456523398662850298406604887338615544628652809249740954033277765738987364069853418766159248476939489476340321302729016949225672309528493339259873576529027035549578707358209944895868261510273674176999820640291521921422725268623941792985758570267138953506776758510226419019550653200935965472085566683215118977750401521818741727062942327607711012143358367223920711189366427136210004446594258284158234265800345687003487516346779597528999108842313574233130473345692624319071900261308822377361846475234916560119543375037336370997539278946842107990131628216888556318330474488347694325012598341173150835873529428416945479314662813823431230425819819955069830536870243689091336925887937395119278661421663649390680474556121934207720716300528555936291933417856935811750849528443274859286217849051477158616086404459237771952902842906877144930250324756583594282477112683733336077725680744208608107297257364713352609541991215015876283140409295039015848714676544122664951118221687028156450973315825621371255800251117667233745356857818124765039584492814233490407012559186213311966274295762612575950430719413221031561509797321732998025821286359468905896568794544121473590683296508215906559248403626987288874201272751620458703978695282523813180039705003952040016939698765780244049503590386867559857526784587762847078039335774890714607722105923923924076855104955290046133994017434249777123733769212370058877529902546576403435994611936997362394535198830089493924172056999811803632466700837630444347268307287102829790577842045514927234227810907044107857176448291338299370488093671436401714770461393762907495515113345167301286567382843588708343319018544604084323386826155699735786904272292271248355828764726810724205920089868020941487938190337282953046896488526517056784216209560013313359424451210948135255942153373831105754492202884970590415714142141694635730128865553607195700688072268085258653783034315601067448446843905041635619484203549563764717157509693497410064764220004239486591134559115156537851987671626896062363251323042517388059418362821372761524946138222736048765465764635774188077266151908419182735779938752379449500191095034809595548707768268658715780420656250316924497189843015952634259033178423466928849780163798573172076267933560913557255379486903010298192665898679798657368626038200239027945546357567653464209952750928067661829071693043049791515831434297050287508426106912297738691145444375220619522891562236674985511055127611592364891609128555117995561422758148348677607523082515087793965696168845762356770327866745453363008445037171478552731932451953310618516457909185200262347709532219964257378054602916867565563201158796699729274252564324329797184182092019635943753691622397212349767254092234810692724787855515311016547666577395441601199423481910122028725058069691293712502015501383974577565987926428910694310245283257396327997140927157816505464864173053134551053583550281491357909134280602182337346806479416925417650232847857181912581565024330171722413915650635075508619950855730748201997488795531610340446606345559552393220047214981147106775921461097012080029308049986424256029468090497248237356453028370940671935300676357035525506528951952365791235047309972575419613237103192126716732948663255393534421261117219072127999076452871991513366608199523176145601378199084124242197135620130310443441797507012385283466048226224856359680888836358680352604860658383395638316815996654338342177868539531329598487459225524971089295150225792692975119131276368576646174682294893207988555186913372420825216705610739050601105981535640946893150630426739939182285813149028843739325895728190290858696710049168527752992790785782084608376000972863750816536474257482029550803341970873298648061192027598526970547888477154093806582053832485344584062757134069120286785426281626424653015334539586988902363891830035474886818485426873547998574764911086963903518473326026824887685197433584759456662375639965425370194739954197010839663314514227090725387991511130378421981870801414485978261294298655224967405659215064410420851943481653802037565532961978333718566679317731656862146491012224710864793372011309809547212441121621492497136285487242355451193922483280048204147452226515039647593526350798344499193935914748232316777542397742510948816741194485153603995542513854394357354928331456785510212321718074503403082199619649144412036855968685059751036307292051508455947819272631063766588798551742110972760836720083653577772881895681572159322164379317921004541462966991161639091400980287853206496392494992974432705735772653230864109565201932937696977684159927111908130858301735090295910862656696162899401404821468605269088271935681223041724949641227236738317610233600917081889302262041988815694144328596814099997596583581174096925074099810568045505726884525757260511357501361909182386845423644058570419336529522986584031994256408074424603967062155687976856872165611991914450328526123722150527191797097536903795417965319072388603977434969376265193455087235694031950607677635929992737849920279676269664835873350111024160007392514476090351066851334717411635364943928820224627917796356631511013838291700797050280460750395682218798102819562986967369200896842133095602313745652383429929559113664838338422360924987167112309604119836119589974735273548205062274025670461566041606310786176901427370290381969474734319023733744283705086691049771741641923390797655149361530148870829381374731376777192415928918618755196327916438419266784101656434761250001212384534426735181501603240774012781430488518990816580277135787654793313719043305193159047287698186897111650057898516482337224097981331209115175168145775647031670272411818196060638375806733998035842047049045368454797598953101365620675275634557797850067715313950496202137180284839493015817363284537905507252358000034705257729078070729317359387061625667513884738846432034077140827519965651703198540245560110031189945686760135946735333612246401597204445769080490374428561270605466526675337346077479993422451396025607534867862978153056705041909113500948863559409230299624862343530293101357549356534646335396437681798638752164647706908153400694115242958737250185254047528596709431276547019158809024115321710980984163963157012443475532315691931004970791901392356044794524307908037544378121409060000656997969426902450923956699144245711582405961783768958248437569988348683304687243194551447376931847606867862881027946736641893157087209787732407363229900660351285517489113563372598693610570668575587532161220256278636797180291252785149938933046085450635123782344802039563201035713612488190931864503904836464358387055989548472425259174394631748217998183240618164280275179375974730896104018723219934572910385869956180001548572451328420321284995780600523929581687255167716111398697984515871157172208019151402778037457301524339020154052966627454152884687307682130710354381435892200154041381523650293739085927388466405362234091001303913053565005574433158606709467797756914541575888397986356448407286802870005588685273627448405160638826186403171403573287323620195151850057987721353976657970703152272992010320793949456128994454618355212138274602862159536391477319034741294918297678921429698095432731226218036946337076669410126965114331657729669148070124700359851258753895419127360303816220691631089201120887223626678800703961532633668032712408694677738276532206188470238961061446238852179099308945856186262074456697127479396057146533155690536629268268193950108660160457843934205482353309913308473264601718203205001282430690514368207434147263656990693857178868483820876336695520767086294089442115571407339389889917451568531521089825383843933204003360825315392450378338650894706071212772696626941342339852612927328563117988899118679598724424874770127786581416934355740538816654861455981311788346868024952029578131939920497777247390716614704896613938286013999066618828956272211718177746083736574078313834280280536350477475884202783315942779736130840782931868309474258340244865100459661474827137435177308924628309370221656476073588822282027180844311710587692451499239563798278583401606482684560386066270042540507172879192846831905201239880232713652430245410520962455148827360740874751357039794542232128823991850723830136814212998423943793775328370764813377477468375091489936823293031582705560427829258956186182472132021695196084219685619693537609026083505447797980754634318699447291171940208033550595178555146269087469771338205319342932716512921612265574224373501897745443703515244932214913683113372216154337896091720880947602789612578803113599171413049779716955867594187519833657808707191582562231345545919485965777770805324724693522645666620803152461452561386775354706252974661861593081434141658289865841620714117857165104332866148543498551375686318416647999130404510438677528101096756256601017761858632471968429662620839417659238484156554449505177407901112840329535961713338520622530887259909819583777783052558717497762987601652907283606039638239995171049937306228730933877250622036168631838749020882465475709593708450409645919989506316302576745615328377177529458259094159769073723123848689881919823634120245503659525641155307463179327083183498099125490697382950186575801124254053774044861481954250859152961203127455997188322002391025745357823867856986185104665655231485448071478892399168533577230736753429472431044360752205775417321221343450013748719363050544807032520186602110474610515731258656920842301231763013511566702667359535473713272940130001320241571149324361258019924257479037971892408066429269425718381638129472565457480780176758568993425326717628136190440566663886259333844283535368754872476316786043002432863574590243322509178892868679006515813363182447028633790682994154117388693233299644367273686366880941237929411502170278695211645215360465755716828508125578128567944445391158886981164468747683025291918954686667537387063178086074467425898223786205331967465320850516736800933501692690978615225478246568581956142634045528137476684720966046432089401503032926444047667017907750730093699803822394100882741222472317969424598916402361005545727471819485905186283263847584252264114715589932351138007054800175502665074587548407689454415815509976083193020910804603924033000705144534714475802600682242359838945817087447177212368889693589515673571409776910975005877603472903612121274722034686953581196979658702372612453120181391041473249754697125181827391984251587365180121388075130671935484358190649915881030387807557272996695556847850547896247030536492440639456549649836751017645249961050870328873216434268880552583129015455666599418271318977230546275763056204122793896300432103907914881210248663287729281895028736793598850765020554196169388079077715608012522401747683778754022258295613524086627837893406606144678257053456032961966603397304647302436931432484259704234979168007201647264727498928938786871189122488029000180405628688767245268740096993858585829736342466338453664556989008992172672452935556248501463962009117952369186004794456476737761494886515273787488446939622060755934112568220608452776968217819834055479041113515884506469877341002287201731491223291948430843164757900836188422620352802778730857039236613710468980537841668402158927051107107159345678758139764286970945343022737988473364561291717105218640310406688030739051997257972797756948330839450037072400237929925749544883048443376940618994632446133434869894451425245855940178931010331451907879003455089402698903389238335434960853637219674049117465064932054026560033960996516767732461993544715398031959558600816730926402181499247367042050272619945019134883961969905579743938606813398946533751385126519220309842491031873243068345118927871820402073150653324806401012766470879442041341964123920373593307098452326256336318825345854156678139077441435961992720243099404480868898705724489957055450548405723336378019991525859263703687072258663853247133080248238665232126230637224060710185985585853456517611218108628333969744523403376266173624249852075029101419040470388112878553801669960045217300156623815781014847154075691659521746131369235986402963994567224180328434140647733517609898832084210711904184285653815481293367915156998902835022865316851462914078143322785527223468078154987547493343288784264081118775247164750492681250893738169848158929711715457762154851557649369212393790859936810442750359854159289895723038644490101642706745319889480926798653344874634928637912659964821445458101771251753035276616527344497827989199805767100140896239706961438242657852867663800271624020039159579655345037129282681049196486177474816699561393886323760799679661078915571228780486727288265932198164188234670823022849693847794063775256300369406749300377157497685798481860489683230999652547403041114969758105805797501572071961084446877054535514931359893572506028896275346231714893556236216401296715163376071490711374183998550828636941388313743628650093172645244972570327484632293651045863336095513838975231127253711599769410133919098147760446833547242856740764271980540474745096634087247733627679962625616730662375583455056394056926775404143463447637912362376287622315482882949315601360983358881383264732650036031297461080362045148747829208875028733992654728725851334581615887324034192685252815020335172236218029344686989078436016109080623592338743035530170911720650658625304817466625128912540990346420269148117670176318530331455159072564676810137753239314014393542061898368818069787289859124322537374194713711811907440682224268518669550740986188190138903596351900374319767944525383525752701955656717967384029376941351781007506678960898798912027323279818940000876392806972187056250304433414942321947151309010256366590613952331837516325032122991830427041837140768351127206976240509197484110146597593163267202848270474260895496123503941314831796701052774031698450372993102794968675466571228158676030776708146902853407335517284378911885539859219577797980236872663380518927157193269751543545012959018152455497710017276230373330879256830213652398567850803175944842308221548829957135640347461006291355187194019026958039123352376892006878980146838758467517605481357281265412179070811265438033414058064185154503832595816178304329015908269551286696928330444939772954557652923383613133593198778101129638904778958999084571200684330787213506538574187042318015437376009450006272965835720038402013022880830686482061856050193611759271025713518016201552868513755473854416457668988815217657747273081906095823056898970559253813400997197742991721485634866066450245747762890389776883642692374587943987212654979325612472536304564355012297179962108155662212979498288782225156410916539724667916640876000722687621577378758639053135033634262130029416515978238100397613529904142499527362393244766159166955462739557277781772589102120090664436404308664968200243052208124536251477348785494627294065073469187669051164868847936528902860733589937444298845189847559882831497533986550648120558464536924719969329569717674329491544850842076250604569630912112014441691144352597190791606016561941722045333172027207266319372086753807729435295416167799275556490621869821445429605734467608901691520078847048686021996977855936915040506806684571731015309072646488822941623324343679423701787644323762393368070843449382785452479831869514731521415072918353718837095897517175707048846327799837972047038535610134986050897105842107962243618765525664241688282749881138793090030569316426598423801231187448026470585437724360228788122326580654000799981386076639736443819122228368657685231357269975483640113350145630253901292460632556564533503954473976097931661354917214749121204450319354178412016268273410491769536761717259804811736605003664405811252657534310311778770627895868650999608409914048727058661630240598513821084254823465500258885700579149653321036210900386676410145612799615074720442139510103807485200173677522532453823217429873183736760982195313669746577443162755108032595152077117434516902249506260178998189393065641775427107574444400093587468173303322181444684517146526615068442303565622184435512745740784123292072155061754872713056674560864895355574921811935559416838155416553192271127744096437366659936796463439792573654047954834329085929518052472153997973223771332441564772804928318316037336552054590170924406368608433227196312005301703865922998238976537516230503779593036756099054508056050887008369060811853073737554184532739933959863273101204915386817088120552577103721849167006038542542723253810776531048046606286589603847776925826012273817491481017293862001490545182635471306611060946992651419280387409663141650180378542937283348839145335569495766240952312382436278075113569188719004221058649070453579661847214444980156360511634491244032806333428223148846080221087805232833930516277530180386579006739486054891182045431545681223901928207117013614884567409901130028512306395265532446983775089449852432681940640114741572547982943161016350722065456371203237727056753116281055421795750602837549492915051578734013506833970927393225187792639776812901293868357576570966527712510436848520444466078480919257859718731573451575365308191580943149017157420614749204316793307829294908363897079788296829287256323177816065644474765553453752976118274287348416615495757959213846425812665593138142447973380137098204615766004245310965503467509366294336242739095424957286119148297782099568417682898225132614295223449456181082737162691164339617498391209231530251518479075276869895799884068292713811033971413977988247519751819293236969327306911642719407141638831446432019614742101694674783281076197432606457231610182410330236506691792404133632617514611996659736306292665735664653421183047659339877372593643097077668475572425302701332485614670973989211507500436011386372399430526145073549676495227021001226230397130816993748010349062661464086394028441601162637832351597618660610350513563856769533394668350187447066579318910416285408334146580163017183455494596920513319432570312315003578634014662466660939975091466450532340713900499722764109803990825656190691968992291294180360995614084050238392445335448921017842242901792487928583179011777656625167865142648521725162768735845604505806468453006122747503200919966206109476992974371895698921143701988798324337979697354354754953856402508045759192426744903764697200420327684412930858848596378209029420429572922468180677032147729709409455296551763086523425372041469308827906301354947938925481600978051773930695932372894861013503717616246375354202304519620914951861445080826273240563570673326308285187394601261300735895120116481088890405498160557326547071959539804868249521277572183124115740136080834988951052123832583713148257001178942455999266997057414267774954681763613745029952380605450680345909691517044771604112789105139267775001329097325783143229554638838057911860309660960905166424066066761183259106320553859667988452785009896644623969939061740996494669212084290045353254370173028470164018044097683153612006884532550231168915357729307067463174564232037569652538469583320054028818826585035669958559157284454064281938422428375678889996691593121483510540144376693891907295975470247392207286824645583187364843306995068287226890381326065666571514729503810358119010224389158093457507534322764858514985774661382612799599034555552376388454952758311613009760853829016839197129711119786980340250269641041623359346963208079306530850464892421195195970453699133349423661216213933827259103980432623062934530654467659719502287953233314020006968372560696617064884193700867215730939713248577450985410498565162681866821813265540967082617039106276606539515519588111709712762617844736900189261830866088607767525818637212752637274370263778371979792081547777718259804960105567132754552187569172365062766708226356828096699769722800722535851551357369862660838427521735458352949198562224104218681445127687999331343634825014743723650861025804584030332061977201128843149846777568284719097916275888680529766271990872317140740443500967697473493054550945231238932900560561635524097593854916773124863745821740456569957324329643655535122887336659112804294781344864487927784411539259517538970580329274156067390382126000612058014499946252705399357164099577662144170249690640798308596263535832031318653861949443011070486555165833085810350516979179002178522032218529061238670146018006163697095529213713478348204606343713461754634490602641298912298002527075910842335582457432757246137346932660718552080867045336135643990020069516216784418259147965270018033635193130752546963562763523283542331520106525553982376488661416313237611483097850318864237034613959861300889275862110416260640653024138217992763798403708339036209079745407428752427105251237662660886384919983690198074245269407373611869777396858493113883356666481158358413240321109329667246374952517824276821801639078327843835390495537345666116971866073258364829006997841763850722529792886397074953093245382936858377389672114118997168330439597389439581089031377848947524748282427991758288002537814802845906453499382660790433315588473559319121731135708787756236784717586758442904391704470944974170081229218003829795333593229610371992910716490999502364231094160034388687792779557260208632119127312940966829239804918620128573287250904009975297093890656538957848275485564834473311912125014805751810296421676348013521535861456506693699390373794254644877034454355541261849641460981300422254789970133708436693397652166261196643676403939797587312108017935968786238340589106792820087197011310739574496503008375905035468995309550973041879560220102027201155042313038807985741666034288987575366133695536247686120700098997426265873833401350593664046965545781502521381263736150487423305289489377382424120485444249023626057854987203929975015497693064824522906783266739405952948638405709443709436793596195453923229467981811115169876881840010600744740864415471286090112803475505018850177296654829954637285602969042697632342135551297481699036004888850912132333847915625617635445300026220102957032973914837056950698063658950909506603144052841838388058369876831016449705762049211033373841235829818909489630669791494737583799777176825548157259021169160864039122006168480210648623065699458925519935717143552784543032005344013132555168813431414232534632285277128677196238948431359489967061394308343113125807597217490889395428469898251013528754942154022017565194499460860672614805663119696505902367034541498068378192472067212742314748187771640089409425407350575211113338434117294840109937210332168515234296560216159739743113689869592333201987665447698096747887634849133805390870520032522393143099244675262416425502390699206066150017135804762593739845586553275758591853834440044750890068200089371779473919721412082977558207435588911843622128315646472350188141475165093106323760931434308099986610214957201588191499858213833833857529330035778945122807978086589125433721904533663886115009864779812779792315232338956672565047645671638223550999501302066264421484025965977497219321519714810271361770540432413501095878314175779425274747343705499496348007966222287033198171502657116666991622725006257871050233069670327723034083177062247852319798230221557101861443827309462401617292729094087720965924250969527856383442779811324013726499123341233961176539444693132560061175864769379398814713392692968203837695044106255963861914934217079881619577362914698452497930073753164946505117458631374870720446954309868364891926265987156053545860956163281667312866073438749514987735693407965747800428287080431465985589590919645602622045201307468524820769298749169309551730737457110421559174588532449415804996763739442496988577849334273756915651878034467827467792449791253797890298024438182679741351748885242070031505478341805183429740666186883248690573428303900633517761103960432970974911392751655987524012837740908736748502143361967128900558439944232316850606491625481440753866298741867523506250122729552371942263255867028777378710293181086983612430445053182126281185591664223327344150940452755892743620796102584466001015019799588097162801242246427427611352032995411306998418628570181037810552732427038047828272451050369953537271928057458716390586712909314659135146919112090591598141080378267278621326722863216272738943208842121467311183501139173061754261229904418677932843415758527460011975177250576261574592568545730455698837724458843347014431861025337390222130720137029377160276773572275533895133487693096819731391976732833792836574894940828147404017931080797991137392171171907837690299112667117791075421122445466459791971194361640906661929487322960020461952767049698154940973714712698446212862612270700016279486854902552128639540923622452667537881546273550498800082943112141306944146262360461245624762117563368646426479203908841579700635045610245044413415484208154451495941409700721113526613936459073418500490180237329920098904934948309284566832901310237003214152591893827617519783690089271855436337948632442538521742478213230345908844268531380741239342459754795554176729901857199170582933769620954063228269272439010035015806460920254154967274007495572309128219805364459541377179724290280345050282910444369324931584531486579277555681500561794765072206722766316361639535559829238186550239814893952074127956972679254239319063114218389000028156119009703595035538121121540548401843457734964992709134905575593784209926665365234941693661418062112640161472428400131944884863515453657828201208925121791517588697896824194067486212417049426778956375258492025458651091207147401866371064994209956137292694177047428721964133562532084394870097107190929604716996715842901294531828418014163175663298579320193013274106159729838965469628259352151771445982302073344913611634048809765185867168400752347553692766107836501288824021472318526398330629473722716700842757068522535397273369724704616422472538753623860101187039232058331845255471651901757345310358283620027568800024728551106099977894164559525651970102212140241060843605506752993648254775723061979982272802198194942376847653781423356784861604567646545265749959529662012663538027217368192940712820555051849488123159497601851353105996062876968417938443928494422856679870063360235972839298149537611041661702182355472220484369714306396448527403655710835087179144452498593829358599484618411448918435251170088759616166215284845518832928713951787254197347820842568338637573513899218037100288218107317525926410256223091958154950292861356062196527695221972342565283400857748186558785768450933680165454014619068550223750615678842166320188930760354024199435845569250417320633080916477482485171598712508222468532634122891963280399598718494641385763741980400663951557755577659513413946852279499273477694042377700861070031587564237767372323703498746671695765684453842858920966587085794900048210441825666835860996983301053621025893196655475745690376275010681107532197158703817142615726846598418344700817009472960891510909000307439283738692948619371671818446979230872693555453207538077380804958643921813795958707363734501853554885097693852636456662240819536176097576951934983659519636003884263140110987697893460155763229983150006247962190702130654941917775856340212763756657851089233476523954565994213291212578046210372427622453469430661478309855442993767640165757989925757795135257074929731477835232959807376091540122577011216366767761306393612177784358911310694809311178078231494030847653756508834539155525794015270443322807923166752873099043864044148326406542404475056610905210883293589505846715134724862820727997728892224748485740447631611343445567729077302883406382270932939005967917751769746625148980744254810173386739698023299889272904761296166872154775152773981678193372885333713972239645637642921341111443637367994276675615063153609527984747412128765105464928943097582330576999312859954423725865054675872973580122084256438275053290364667525705392067613642540966530812151044627129935545596126208788295649013871879717018007316599073576396264953894329444412356830736919871446180205389690686489408363397721844344454805784642910855769664682105623388197822654618878073028095151656221902815057413305989622628279921203754002536085419764771172181765128357908010052001324589269297084783509991968931362135219303544216432855061303531410257558296468502923651595925552770723980323015287328335018754197174134324667617919118107917782636894460033907556055530780368428816421433290500088927685752329314839470238601331749963762261845395413936883821679336555648204217540364559164653952810174856730363233449924417472564417441238988718456502028585824530432100752699989957509424946376765288641971511814627227338846870940460236733745425758090778198962434272876134526368412422598379649815194061005973171176841101314896037489004779116689309269200211327170504225044868032211762411534237938171527068850391170558054324150652578684827543465581501132135496493890045166129258601639393112310665312142276085030192320156333942608610293098609351720581321687567473277659796346318016849866474612312268152311171974590609112853340467545498561414437534356735697995639330456603379733503591015520612192632622615096699214695034452868518107473003266066277372892916313291568774534682699225135848119814829767812878934161179409329879892275758391712911999575775919776806590274611798866009821795708964303045626260665261383086230165073935533683857887882395826302633840108876804157120582936656233157214058805648112330271683321909593543991950522584412389475812786392491443930286697658287255623732295267172448215038234994802099429230890355787029977244518545565966820464127356661175480696691058311742127289970595806306125424568349490238749077790546613785513306536645528319719789300483527771780172783182688048785755623349427251376072910344397338581026282452283712708199799274036187163511401406890751248730769891608719266906594845620050439112952512116830862347879076072131272295888595505143746746038481184945819823297987332522370882923168080269667450299716602549281143440389469948445107788929726087036842376973131959766080186870627574492506574269610831804106330084050937897620032238559371961256813873699834238054904282717081081594710703878092983464895222228262352498048046498589705165194492650556359226532440847038158230531481713398687132399532326189613321973322316722429486330197341409158135416521934574141266843587843187559006878491178675651468663940085596766731651966329052660557913260594503144657084830541002112056326640707467229365587088589144991364835496109909226496424131242948732853797204380951678680699407512616377175410888466601080509176672033162269463154463242432407510356113772612742707108424046513234836234380632316358833717823230305043957497770943315395672104835507539564680344956118960127536787426392699248343438317103829574694273154633237224502835955049643879637415378697419194696829283911015141749912979943732783450234297901652174394757210579916516200355889679918956093465034230957248792152103079022893817966122659305935510988053816383805150548312758272792466651067145972894284069920972655412338462856938507202727850237014975179623515589433861560751710389184201686821870585581295499964492939060932048428541951091575674013852690886151090610663721511863442929553527042626589673605530224143229934194029974670491019757867374965778328980398588589172667363956605512056920469822720065963808115710450720163151326203435673963164743203996020941029298946118196940163841434463754556590362362463203716307363889614457761567301640719204963027643748808843006690498381268705774975043718769018523709498993600340271609998230222486628064931766271783299605385396269476319390405607357742760014060262865353258602189629399912230036131607704401611941571233918340992622550037393053018968740498776327142067651733448599358957352526416072921740948219222452111762150612928390002291416409674816085445357333126411037039508322036886624842077973316798884515067609239804945897338491124674326919031107488263478163029187161776200251789705607053259894447971425649373086158989310005260550675261841113614605420183612799337821071047608778478551464751132899780849609953296780228263200859685423319344561567904182234766279680151824019956046676714234033910967214925626231404112951503947893381977686027925046789554102198315175124649697479856822325063397323054838833949222446812374725545211261551125776079562322299266140960299552940073873218903491985250481205299566205358512781378731218601880711878053026495859647379061149691537822787584018270848451210825030498825386678738203513889173217364886309903431594509378843245741654485727013624874637829367749125609041401402961670522655072319318263776232173686335720222040967356729514937551341097291460507519144951001593508428542312975545334387198161000119859546327033802855255881584993877133215904113310356314616866478590905954940079310258686099532012032321445620815977615013451713332221573193725542364753666125935821431121807281441494707007249724082216205339928977382078145978699947058145246028631118778517356773063546154141725536093105057454419627761753697197909019814727741911061473447074904573328389811901803028864448144924515088981625770663562816886490525591662590976085973378417249224429865089167474318322227158081842832809300262826367751152164218247580651610045200053518505378417593900796409542586585953154635613068990606293390967766055145733024954765191579670575687578412307664306978332487901785281559201656968628984147460560150310237737183773517784219001852467953580173830452238921376939432420384517239580964814311601279368084275018878275653101497897631885721155759598059591924475983118543130630439577150937268375642684893491655906045665395455924214261099450476880541374651307031953624875819726428131323867937227405474957903803674349873591919969253257537808654159582595729972851248248320965537076546736631992023423620996032937299149122147761115400677600762355065877267445388921232242938963482326618415023965729517120289757324920322110471693393461087658235546994045773438075149422399900483635163431236284073670913588646248214651472033852857599229877068072658228741443711548992245986756070582227632035374984521731706741337290778957644500260894994416307447291639878018217367948772336936934500128239075159094251891566844181766642509586665975220186138145744133741369266310133912957737429855668929388715495540329590429964450468641452805294102628816038544288671995722394513955064768784104241603992129156736907535163482042111637014060773032342832316734987812834766744507615595810774747908872568290606966626787419920901153928169360411578618490517643664571721162379169923444509673651235465173849141448381967726344476693021888074161294881853383997748288742041924678620417483348831230000845384835880048317370220258561887942745039917168328409599147462304038132327701982988471497531278022823541193540281304955732641786943505454937177684927305915628590601434495497543553522174157319031807141648030942777229560135130415323447621136543831443022805073039142051263725595950686076127164927133970595094953083008034932613619140670399479854014374179920448611944676935423002121349602576909688711480489121632983438971108530809973269613202273090967539049507181669256318959528495299336355170997396003386281074286316611244524093659534585392678380550044117701243441000691460413999301156451901201396149034861556718062358447298436415692511211780149608755384088920079888010523737655716373644431099184285054543426665182560953327554565591130644696127738319051329558334109748018307339606662899038562496656410660397079983084630158417379883156280048095085416947461638180582111373744796692612827933556401937183220194917686232990577621630648149931186069879915622960800648874526450119957801736974367936585364284074219343293496979464520003005781035373971397988061925695340328424279075005212628281542638607275319645956521408678056195571396917937580605953699651477440628328726530837575509456763970480524515389419990242789049988598491648891121139729792903452024194984875124937915145856887624130419445474905788669573134781145499083891803731989709825807927713709256017995461637543368508338454952273618226215275977130725818591265400095771409705792362635365305333351425713900399535751621108160106430655449575414673047363885033666740011706543954753339783038492814716797413838016410477808415051643531795821558819706308201482729910734309189523250288792479346254035982892103163571561305185001014916055056829799279989958881235896596086986600998279107450303751045766010279146502795299987013498916787230660931095159010873683763964771579719618564357225313711181239140075887993413910154358077410949955155159038320286082956250968859258805717624456401122461242533535845815770331872207564452360861027403574565545154405315841563506211663324145679935381013390606969727342940181816612875506438598334972416261711637444138913969909920979230586415555192924212233265166654997223319219987024855819214720879125175514327830303403278763206406678906136290950860663803484097396415345207237769453868179153807810944573007210847892050120299240443568082533972610644519653614127698491191312831197104762310788058034722969081684007651707971148804154466553469758465546289231697512773895199357379094842985073234389504180875033952330022330010274969332818256562777075297495233036079529978309019754014102667309332733690967350887173366283224308557320299732952573568908960684302865620257479459070169724510440527914979519198189356829298213174355384336193641883564870345592592934852900730215561441423294038426785348185390034501034610310471929316786831829834113179596410341247291085265914011066519556260466721710723613839513235801840191479419660813633539796118718441595060244982915851236630782502601463323047401565207447578804976867906893231873558198821626977920101851701869986709585262667490661755177176335548202237674177905832597976600863841274331718787500312270151243839950748874977309596574815334523681708589682272001108896332409684325397929265437516886699747691658643487668916366443215805729087810660659101342174183562820737240318542271593816122466154413336367964871401444485619849445622422355928045325245801917980383055500319519671895868178149540273441095369731370244659863692163363596079545721294231619237674556564315231305299341792484287370675731611374365459958146497259999605993687972319632755375785201468176275202050200342684663507599947117518609433673465806365279292561730214921269020664917283070170287059697160865833227473627417040600336324508476531910817068880735483953799712998988692457400198664900297480905175202167483032248112186544765565251210852760139028547184924359572945337600391880222216520871216621884078429686657530910922371266440813800126403718242104848879313864068187742370029584480475548862314037637784243236431286705680876852851474482403241114066785497633788684619200604141615282541262546219260138140118980134447086453154021885285136941091439755057448416742856323289596988599091386006765548875498969952911633578716750666052001940260686780070821448234931484860279757092945271314715482494798721869835811219473305515071863591380962147733029581637308890510274676825643514385440041440164055220607188904541681283573572651753360623385406920245070354367482885622564481730108147521235445904619317598561100069436044960557729238086838680070570541932923793762685841662804170797729039442258146741434737557614892911631463018165378738505355391177661814206087728147240164672178934217554365063376123036766889932406030419498986411143116830309858427315156571964620712206578477596642611978357607230862012694452407343464046872414004589364753694459340913100297969203303927563249562261662696864298759141789563111269173157859812636508774639418127991979041847120115575801055954728650289236151755352372099246571249222833607628707616856344049056524184860055744004706723367716023176083239397841310762255401847539718491994217863343750921042058190479065965490514742903088116631211764667626305729500142996222725878936223454114071998274147134451514679144980807680340422068657713049146704354840501383730661691980082173362757023736904643628676650154740971692366124416071901015471711848328014963988769474550248694897582917329027001540182739526734370180950517818813656243653513368527854833408416074691555781729593627792282751436836701138769028386064441643160335838943224214680013559805119457579041842163709062473386207176920636999189053106115487788946321317037590758322888906982780308473726511603276395779082412540571579941904557319401805193267386785058295594790460549639277236210101609231120476620398151568397733880809740967793218292938084727863185264586700069866961400922374999480849985172307420567552768222085969198984823822333712136572539748249675411645941732830723699497064675170750678597718470585378885830194544308283455490457974847045638401840832275871058294870028847845915789348970275099398135258419924136550146810609068489379073402833946285112703744515460620553284981370922117897130941378010094930940866288560246911673643033471078078456955593506101302047196855098767298256177827634966357427294192618689886755602857836903109115188687249620784191278348544016241691578192681163542927816844490141358157636058970167567619680686541859010791479099931127729306721780959019242063497625991725154661919427435654444533640653186577416071691294489399752924291392726208566206589480472061788968765503869369352691479561047654999397768882208910427803668912536653382821058644025286452480524838462149513040337573481177179448900289611924807599550702484711022057135859560716905644553150941896609896179792879433423360022375771822300748580216247100284035834842458611648222484690008384501496810730983592568694921751836706230438563882610822797540359146215296132045593967628845251594995209782226319378567405894865597532740215808206175921035744691646427794617844129677012944895699833382052711269190089646148603811301826232224469901239941384825750028879145050406372734921329140477182276845734051245058260123270113247521378436963390511552251151142994544333037712578977697026847466200921024493513731361020845156873933287815177837703268833406638630002193874313216956626754789903734673631961656205900048444405475505059553849414849287881123858731897803989671264261371813769285974518342875688319119863654257233502489226712971957423430585825148634202254290797581715597721759435103580114647334098749883793108383009155073281530964319350058392178635199961263261552175686060797339965102852357137143307836977005998074619511549685033080236354341017114403503033979932488557163819131305161495108794597070754273329404729823889904653407764156977218027835832094895710707795988830148128380327558003271102676430901500939027316141606983719073177871263683671226486118430317073540998120068036346216924814358074695582694300433849623842428035640692619350945053091124713390121002972568522065867659504783039947572377591484328568609486854297390400723027154566586183412555037976127883123352406799040259150960770170466705604586346122225102981702656119226591010728924271408609814278828883003844413123618195061984078914810115077318205114261241624085464276080199673344245074785178189150175520322295304993754099449499147393970064006898087739300393632021756521780391293785653627570525664903991290531705570136895847917748881069295647844765851101537392735371489863218627076450503682552992688818163153002066682193787934243311187487762734767777098540000949775131987108130597372671738764361914313470706501032542398650962669794324671538604763546856722348090434024262099214595548033197448721293346698146708657978432183042564943155715470406809401390048642644168774696538461080099244274442052667949692527323923362241921647204025664066938990117244893527556600680908256480609259303874828326513074860078991936053756342966278370589281545692737560434348764326149273383179411246465890211210723838699229094650957160573736599393780800161655258977701169229014878440910184626030204885133806557230664885460111600270307930352483604792505706446160188782820015214079874506089524747985473845088451234023178346455951022712143725758743503545347333851561272850671093149487902243435124447927134107099300019282071626972669655195094767705278776858701116633741069358066639728969645023759294803244575587008229588910822161376133287355898714257264337830264952801047593464186042994322123185789401861822157654394224506427420144633701748362982968879568945094605202619776368355844509034202801882030902950360572797669363812377219809755060381633328155408104038791293230935959189200989680913028547185144062043484778381630735886883151628885589490709728411072351536295050882306935966742752808428107556092523697027918679273204734009315508090996178333838354521355345875397613016006329766947510498437748016259438528663972573848658060185484061762529916355626665525749833560047192778526631228242639481630864862652993747846834811125821146497505496978195624269268693201566606462159612059284434329755288428390788522053556014486653818991151991660239849906901638830829937891972094331233091140058552925299027301921333314155703684176652410009586374449384156130761318531551378039882329870234190516837411784884163208165750763029192744226935645169885672278988380407901009902349732465905798642493803688346822265281600804143022217405696240888022566956259857163963936422314039169686619438088519151863975987113121448689680123561913244290540344174201158774087651300515314476082758509656911353125161374389989711719900493513449130938309532118473067237786528920326021906375845205083137217382431792408254477059717376867294651216301315224741680847040942679428668570680599055606480708214671379683324062124649242347868819252179675986011997546327159127349983934882406639848549031425220597306306343396153902581614772271336119709581276604898278885844549289103995737779972426102874779812457205655534010644970579057813030218980322993024784787454623566312695319605519822932815577335882590781315658049232059835903261999164238599118067769664574845765796345092752408322345825926036262909287558941912209957880205933152516330322121929263912506742599276366531209362894118708852368583684270756780222397244822925569300143677727968731918381889189095203365316981968183005448350986899295194555787571340764028516482344836640116590457158538473950027081067707034742396356944643398830895663695219459344875047671106921402723000223346091771453710439023616277443852049278650895924711629782345725129322982652567724808434029360818492335218536778045330454706874521856449446276743622089772962584374634581025835675104589637502392339919592259476932694700618210084609688192752295851499045258363791555896424804526711488127197081167337585394182338860094799803017364090863302042355476863791392908490260903692211968825322217484049862415889034373940475955584986043951736170839778373868770204031487993925482526826350766175172563330746283918440819424541491005669044485589531907955135420591699706294984515140333568902778633643992783317296538054084815756479885031289365467503486996838926941229869479041479116207294854759901741665449684919796277768151985306690894651115422959857153141786806540002136782866242653080049571823478486245024645890379383717518461362294632138132310440198051275171003314107992858159204955995883832149936434423788536858307814548332626848141793963346727401151876898081087039729890562903055162281738531134182112890190412154634380668713506895387667050332832957206423663569605291216842947173365290503937429531532832243008035388603609463620268591431398799488984665809854159876910000725180396669230645849834930846294684533514668929119143466841012578274294921195242570209076500972222784539586985290630217682062561052522696560651078513243060671173072724217231357827501537315528736112261675421246514863831581988664788685791065530117944603911004593905826535431949075674461578642430115871785838969833515209456236889473861771857291227013924475042318278259105770871650533355432906342925084408190562403673669584631195827693834422462959047629938901724794992789208352353636692840874093100923272173684180549061267675109941033446840609059437959051106087679956098296213976258944067769203703008009360946778797586470734210350686198678788243501479239558912367471566171711358256004427332113008229520207258915722595797857560993525758554010068636380969757285148301422804072762905928159032548644524032239185532042228653874323019567459517802187490981498159442894719413420823545652415502552441195547987305345469793868573683434611805610985135346623545842021259894274309723657527792250577378135774729357972711733628321919312663678343727745270532599774734573431772324170893342587260524017369928250543428120609176615653316354222451125399989489507506910979275794954229076144107530272144829230298213870423249585136945326436640571699523504545925579339608737815244688721977273571967331473568797800089961629155222913318707842771044513139990104561236010429604406906979469645883644980496053016424470746969131388552251054038060586207387547732471786044033918272560774762761787133958697232072255297896954178396087520025841561452208504764520721867769583155088920071281620475941844223440233110568002178917391891321467909700774859459698721484677775858557447017700467422504967171339131277968731660161716400504223430478355231788938665421138994405435540873081988401538926917503767900365573789268144823783050292711041794611399512133748248518490610167523364850779737881611873923203717289829368547511531394025324160966443120666263803333314089985364347920840328746581620312182250562559079822777836679559224639020402594300151989142660505359399325443999958456911841765106509481042470096402696394198550565499776946010945687211899193513772042966657886869010784470870926593860560283475221113695573646075823441434663089472029046324891710860875294836317944655817015375205745057831354397038067950698782091535402256446431909503531554299243332877007879307561596338209179415426097104972704438421659459891538980328083581499433279648150816466874403348538814188503278138576767395541359130541419477019636760729300023849588409856198916376111485145573093411369674796617021176112251660247978595227628178447298222884646008469619416799037212161345052615878866259607006074924022797974356033446548659193119841347045770564486550610589395444338769353106696568472669270375231089768538917855865543233204333199544754979843555803377360577450201024414126342666375580753745989891069330858801546709097685897074572461866902038858263859026005704425621135657186571723251551760256311056505346260851848034904503094322064618062649339524835984575513946057381542900374549601970129857650886125817135881790130078989405467984482710209779036589834958021550193682704433192660445380005271161656029047161503234185656481130580706709937444793979728204837867063107325621979386372813563639795733265399783444180859706760716372949891738646810686954463513233351921175560338368354559075999059820201200876629061107578994086277762827338903091911361845464134359622823608364045612778978853135639575793568146742500898210151018685807541264944020129673602916144039421901597341788719454448239302776270662769250415328420511558613241261640830563507991747341240805765655351155498012113419386439099808484926815266623003060944015701469450021360562278276022223996914270834898990847745575541548345071354703680000055258889833702486473955964037137163266241051381483115812485035049365693098714475777509334880101119169272648348000031602673972181350342889067549359776763649874539428470170460028108899404439142641882979950896459307096955093477754778863947480021340282235396283448073802985535503391989955673260663960501273518532378698082667517064182321675218707610218416534740173202120001741159044031447607105346630811914358928944440575241885952595424950019323650020673659103483826380378335427982626093821657732842944042033925925940224141026645926903514875848920091474245548307549489317080139814646261060287531951863772263692787139296281490702885877444667894629459949403881391185208904014330617391589712542721614879434996045569881129808906618988623470691821271220518046172076693554072401718639532406302689868284984236188323376440998715472115556611971512345861991843614765768531399722023899896191189259961920936173944638956284696241775269651031900803177296160462366346937043005704748468272929479390637461192781133041231806059402245198950636583453945047761330086942239160066936977357727923142893877222109333077181075984556764035083841266546071780382061933620146173702655601901777148367678277999317075425930046786146933363475269488139986784395875210808218439558839971634490326755368934993224287988184371311251895861838578537574290992399108049692639491937719948177826757201664407014909997388299446293456658010172813001313267085003202927061011524230573316235682159823979381577634973548082348051784453922264979423727698229075871770468783498081234820253502101395458835634425851691358456846301528148215348987194683547751320342694436365097088311525291407560826956649048677977834878038397320890942758644470714268731211400228004577522350669667389109580841763308881369000830175635426939803590215303804455695544502604556042034285794247366877307069532853191785988471404052805134734886004560644325955792991895921592026234844189558056029708583735985660945436183506426979782483713914813587549617003370588896211549316221405942796145348587442137208797118206174066769408286091733511720510904797858711009338454179675153598479192016553996714372907497690423383847641903947521491890064623958759903812655413063737975456924581535509839052766453779068612048849475064722671116462329059761677208152901418428577395539550884580282230767617211730543289087385091528982290042356756827513903003944191712622094857196483051953779385838073524541623994315246480204330433097293401311990533686363114002398788763491738142058863602162427999114589782486405098853571189581811337932474440318214579245583141726360261102992739627315796500231364405685785016180013743779689506398235529066236997508585723335602826638971597667714581890961438933189555057134462854183819590380925905113901160087596844644157475017473889449464168070005605374147460018013551647419089667537210453506422464343228174413632335665822133233660383054968418117539174166448223916344126030714908930397964404819873426700911241379077066278712160963084005100431667849354485751332500237746349131766299527332995254257631102771613683475813978355745527148957465104225790622222254669320797261048609951437181729837757216705988129267390249828419163743316973751557380642110376841185397738255394382437706586377713365916618399657667734440389865725280732230280316578589918748827829716026433601923919364480024249845942080648343145023521460006603773921634822473477937320273877002231691964988338957462390139004566350146772635959973976754130229718985720516851244084472229910653372798121207929714788652690943964305820553798722491403494687977662461077169695740426052819081219840800900424293543240997260412890734245108343661401046496616910455153395703073776548651291952793480689685753776011790506397232025491476302549592617411969768463373862094115568848524370097588026233939510268071950099349293401448771577316058061817631778882977786105598907419083672909200529619076836518984383355074360336528750132317630078650870501187526826247585273422693993717213262009152275022694736989671126489936204823063021140398653372672889994386433378983986961807209437637965207904520509787063282487100911251855548993412990100964156979346580007289553595934006814531168323084261273851407769278220566973819227288476479973848132399006088432549292908007250919696410583937540623404530505200331635934491556976976615488607267957326998747764763738155289987495891764237847961073595735201633178018814355880220262768365136130891384503312623574999842109355480095740003708717874593490154337464068682568549434822209479089506815662614665670105472614727046680986268511969727250540746584417453493490900167219493351132747335097344754618713210284931875490477448377571027297017437873843264183256201795734393938617474354625646042190918761747629344284936202408477883142632673357265767497937396225687270602903310490435429978362286654308999269797243511886073113989053061181426620599570529308711973250228246901129052319550969337088270998103572479456335689743196866283601239410895209147610135050772759681598614874356964944782740887222911470720296479681731418341686925864028663761579002610267047215129868131144071190265686988025953054910904782312889447145002661519131308212777062405204962665947517813893875813742805610227669936318472741657416223668010363365119097322427572209374310473019225571605607760818028930350367398618387716155064521477091238967608583531708596858133631384042975102434484560206607976820525308723772396767585154570627211867166586820090884254279161305931169055055945840937197693222913124308896113501568987577177529552323194873241718215286595525000098285201453402862701790874377117301626365504043367713022559824259241779183215469529009747862645387380096261869571730829743130471312043856664507767003004264729211318779896880487701281618281456861659536907980083156313165277844005461947165040863347949403207718539167989389113680645278192832672041575055896548364365365217053773387692263642472608402652358017117381263995991569252027071870754561360017611817933439420774040799279173641406245690111049522762367815511106875628858487989835424277676946531168769979135428164120142384050516255008669796178253332760398655964334706063300512278452476867707790228051183978044162682127713552389746965148019203931292783043236351500162873114885883649676986681275619805400475045444905775549523539651318952470405099573927941631118140032925409823835308005850181680002476557401139047145614938194137637017755787940888277534505641667867202856227466814935829959384351276430562100856366451883697163362580703685943339672311353256513091988563814511402545795337234740669004271358174761687793185638846400686585607686078635996082875595361269829608976842839715287615133839078341502733040730531764583877978347068515368927749826778033536769667325533484208663473779331413481799564372227489049770295716199885811501497146544582773179093871101062855540146808377821929187691573134780245225759394868205544156324512556411975361104953101095986084221029136212768605299734744805591292679192557956657658380233904471095858574034840426910328039856119689726476767601163980584693512135567499549007390337153997709316962263642612779383707039422623732188565779401814891633669544036418934110344940229937812671226378936309734793654461266121203062624684719471501266378335656867679110330324998931324562543336974879239564988306994365455736692453791510300169651603058995307189216635767371203991164513071430192858153897183318884899160180063462096936880604450604529844650228689457144641808059470493269907335186647215953736638007789801204291861002996587990226388507326621604454422052956085117014563947574638204501866491882526833639101468018576880910423441483268085804225202278658343113290688661301201117289925019890925154262603716358959533052266186150578893350179879655772042735017414273778995115757979002538027487494600034442538584230162164540633140816656955473631377183187743925771145112924383225633629763726944156074672562713464961887341868658609166820398385886813500407531527711763527129101259746135947975791630131229793416692455488027834472682775714279466546575313590234606122693376545023187504261293178561595276733413707863401169742412007411671635498288624468498980477625241223973522609639886924397362496465652741071449613848912655843742310376942218635409327090272225918274111964878673427238390340856996638978388060463090485943936469899355658511837178803052483474232882640998309737803043063248006096289327201380652652742907950891853592286467796916249358379960739855371883040642742565472071034558780664071269344396702318663378443789275299362284962722298276917388940023578520861528143073494211291233379983021474254582778872295179129553361206748475254767304114540905580773017505073586792350806920705082659779486808936014541862521693496332318887159756216494267331898001285864630571111605880395336085852181273014004827958761661888444906312942174596736876163616126489046913828667824695436139883616302515893835950131561719304298288123556628696401809791556889570347764975946718036082466839762864911127408918344492872996210844664720288854930065360711751891596536707823515493303371516107684934044126903189381235474275772994242044039680702243962889000497867296016327457982325371837019915081342959834938853884240005351551917761952884631206810997018024666881261419780967810904392814051980049071871020912100529773709162969916527721076140755062074660891453585216696258571295445999022079314108665407133543411111759802895495176436592891636361268218115794763175957248806509198401458304023111572259031593249363085856671620654958333968600201228408930755064824146435646461847221534940898826184959053562389260402844862117644609250041924950933395761106373835787868740853479626447791468778572588855872351539355821675409865585518072254694909204034505140241033916802626413567748667736848339227904800432916395450032084047901060460387361392497301199748791102854874900716880649645286393191314578096328837607659694799284953696835076255836158156942191494270030281036137817224852910705020486972958647431558900133753888393045719825361304252921049754729859253022879116559210936470098061729596712470225602337062739759646215438204948223272827953466052369412923264309908902568079271131342997217603432283821032253483888728337706918166655297692039625953208977071647012960367399626761054294849740424140190757136582224862554451181663217203675451409874653081480391635227518642760431499093502275262462520816766103215171242747865816264876687898042975701877992630250208664596910457668138661069528752404328948765049482048972938282262490429314351989548789042079494933870787357871520719324326349216617297670862543705728320780721422084685526310185858095194798348379959230493858605922468125742334152834528234451316046420703706291005500053404382909457811232109614785504402234583661777905761405731973588452412423951688051777994082523042624148373126957709849434813109406384795735783402347931525640663298452114437870101558744697117687237669787326822639945125587377957853478098755567558729143098375570411486156675035277833735886250230460810094239763347274011317193975189379723058801941394900575158551090073903414840406370643122758199293150739286500197699378341119130969900868620642817373497394346195410355869298851889685923240859915212255112811066884437533179647622324669686770294106904892292395980879995222498288488096165849727419009756748368525563390380090674538561267366700442708205048766997020276031652670026693779151343960770149420048441302082007397373635647819438300357504305371685682837788704810588522710208079258085344885255773357774158284295882991495670646765043620204831969218989416735109140705677769213810645455192201358137201908019894684606823575749807875575484263621866257587715104398699786552621354468607454528559063858024101423773889176955035990364942065784614438138118651500011932224746921216514832646387826665255999549611348630319846682495068293317480932795297508400311505977101659915960964930674882636013480022763559659380516162435243751703640684187624834813705623934381547873461964927570484535506166224447309032841984929816031387335771587069033886991147801486427863170726404644400785525389398854628026639568586363653674639708585603383145106141558865742905599320661811169186888423516448735901909767778679767888670637003060614628901145483237796096211364415805533272676856555923374188579181372637853756280752079521211839293263757074979157563781306493077637020347590752900518379836681459629237662217813238099668563752353547291003168130301847869554706172843235757357374571671611107907453807986905621602214712103673062126093114214936784929120929846820416216199656640548572998067912664739037482873347570501027319639922712092121950320065196163341521163202500101118223207109419879152393980613596284930858257755883988525487120608354837156814860031472023323900460724480755971420678564687034869033592084064900051455969392909806760573380021925328814011097860473744914024364313100712655848590016915945080043796203260199714479780653136249197388276126338520093925115553236031793412537311795953380254194094608060989373474768525717270206689967230826232862748005544506823797558425878437136084716056844475459357726324331362623147916672941974478284464992716272508066978968341519330283510184693328308541139242687186000678455066878975451242249519645108089669126853727823629760555046777088991107955228749866053360476180725169223708146762022304078902151013745396123210759806451231520845734713305128115355927353953985970552166629397391016412083712556575546057962409594004905649887630043461545674716187541988096366829187725536335780093006445246036636485839639671525982256917767756144689474084834701498339388161167906236068295376526868383334653234118698187219882194290582824608489516282161345640266380107019268356380134487162610075585159274081537210194453927781086709056117148322034554367819141779322594940115342383818030664509066435199197935936651840149715864203966113644318954140072232856473620018142886008626302735023049332896023377529760527974547030262147252405913545104822468884948361000681466093209482073387345150258128551981863782531052927228829260574269194622760426605953573091315112414661142808164033402221652119487987851804987220900794527673304539122335712842490727409448787614478344251839727094466513161289808025827863864328994879368613284217286077435271397528088426036308146732746401732222645584836179281543059010281687288254128269014172730067828657644288518408646146266200326686311120958309622822706045591549660943671925560661994330107453490621426875025844885860952165713980977582014510814700304672267883798921567683345389194002775639063713277955290039324221747633237844917609573462548052819978952192684346567219283745309310764559509609887840402753401558602728668803240658316229516130575882674651831203420481541344962892313040429212191416301989020223818976978072190408390637142441887614595221161058463622724989358797611057640045060600338122854406201513781690238473046247380835583520096735947180496931082968250324699093907485931610453704318556969109370724296335102045301788185406545267738209656782987102272961261394480661013885830534758866521572088814185449089401227759460562845874132334829015077637356191774890451630535489738807855400280969919295245219699460309711161451835213266609013114032099791643918647681447644966141494374320974924288177932832557267721738446578058072763746883400799843258922632525525482167770226916637002343439912988166639107054967257361111501009047169270262015418059796371892280794580735503990299995172705354650950016415307975900079800613234592710157707392539996277452540552921271887657759437430543730988166569627975943160831391373476448623254015166838398916504088648050182992127266327785847797581904972606298790707316534977480454172980035409506769160161615597348418238235582198932179429769554430233715232521372238536000771039707658223927874537450426428492278891522547679023722788621568648982513867818151802871447249413093387691341347341010933638261611704961901763875602146573342606421987744002436902399300207090649472757761174695256675517038516273141432916738632875207709063510115503992138767868319555367027715147321062479416508679862705810849227142964436101056327971711001373961128992914844114480249857974585999995637723578612850916058594219452398957107878259514621147172566725601792424728114003615263370529495169254139490890284616037966868332915928978930053276932613346247316353545176486431578263229000965944905646593861479134376605608607188866694752818688814887389333849387119916573433461086536014295569050354475775355564707387709956331847493319085624410835307555678652105801398557469035181230086637856812141699448830503415507919571671314010042583190792888370733258660284042490710482996888305447728320269938957246660449378136790203907105871803829384271900757094925356579379160741688369980300501110709470745949634719886760405305016378200539103151476559124101636051925054141839499016291993685156375782837095246376917856461232469093620595688175469273643982814517003475180245679136334687334514665268090971172598137362873064458853171066061987946217358414394116428971066882099591467263957083416044166233487837085585198516627150121453694498518884736297950239118809179574099278520815765812812879515754735625481686940255179511065840292924075223904972921547274901293514300638908486499768843423294353260391465445825795863469647778045568170517526145378981894180793114970465742917207799869162458463586999654416130262364797681469587239980213702093350372489895699604598140167501620573948399611234485121771681640680628757240171197582434350880725908342807583398322653728254644573118698047487437266482001454310770900153969595731097858268351915745669552214646705104982415431950582589082848844173551056405037483486198388859628830889699339603312228256522263860723909732200671469519181581684965854060942324318863885277026634182502247642060152346447112641029131889894591619786257699603920667894036302621999297901659441276795085540723514890293089267251524441909056326530817249675468332825266160169809308499536353381072581341301705117167537360731514829263851388342753737562231483935585299543123724034641361177495511954970262971251543546385096055278886189965331425101490703087527198175446313250249282149636972573910344442253783045825487674047085791524737103290220909179412030209699323758633353045904113877897617966893929488255881198901255609894387873103279830330841652913691604053914907250210748249778709769146481595170019230831505383471096874951089294955415280058971871554565095740350719156263542939427810514533823789665363125558078217027204632648999644996236094953645929805469153693018945325636833986652496296198491383031540471248634406618364389282383748666610904402976832198307584504372049176504088253493637210854168036445273198822492810494195622868029979575867237599046814554220805552951385274470088964876273399690734860038295154850749181652173040557321348113730815349064647569015430113608555983314421986032905006001076087660364743647976262169380417671559484845995381568856236226581736227816236400451007133547749603936960335593217149147983715433307487477322317209223749988668876339979641885988571928532165990112631749792651253459088749795148634447355767112756130897444505107884392701259128488725617973620597439380659862653483780806065089974647392832715010779410890420881428588421071963468627232248047271019513579631753159568739166796013719432244393787597171221440930952515222220705453666567248813634208927868724748365991567236194932963495572492364733263119946256730370614838522988369726114008040374007467033380429615201646122174002853292404033748003605741288184745856177325924770757589177605087945503503156659079574845163928808228689002481110350103840411320404314643625930139618719290984314398031512964419742185321708972484997323153644342652753688718976978442356294363708368801486268083930816928762180818540633416498333471585962571512211092203269024430381239538737402450667717131022098659496535942200805197311061627839364650959600171916875910039595347555926854572323932824843935069787584842796229541984788424512470844755505074043408168912151930679495888245788077825751683141773873688691266497244639846331369184785846359668367217937839816670757440587107040299104317855469220953467488188808989572063325151823008327809394742112723985734725027896459777883741133234116073094399312552482995324814139702366728597815324151233830281716628372131506664782914358705716513456196404120906324774540315818566779978509630006693912509673149261727166732574740715075771399284589494071401590987088273756793653564062165112895180411938778571386035682192822653445330905896650186190099986139939452345742549917151702022976899439008025212041848735346267467489419044186923853703660039129199246522833349632906585526561941080832488575976101944290978848097255282507565797083839647891983274296522216654319118489141996347492475928036122572557898204134363740168011592908502749680124614664893286342126706557225351749068758935395806424964966040838168269102489701099197966451839483837371920052908767113787337352540254903050646158109380660128336647869523759417192459669271296969687678325723856686236188663742206122662385542694455728464632701427110594119256017409861788613169973482369511722724677705326045594547709354278987821372226516594734780283976899299141189609602373747156847710565228355753770122413433095116434204742316394196600125519930285117037614243664345943932002639499880216138548436456981905126955874445235816704013316566304657226360050076935797636499774469983609045056066719375392351507942921156560085463171003147069979255196540853051103791080068647304331486042095639311935448226869608379583793791540311197408975482494520223881257770132241963066836971936739843266937998914055449991866210290273142089229686327664499301164354413722201452098898649722220781490049900991448813346763227055835967516822726930777611633249893850353324860342947755445818643076039510944547682859001133767067885992873604248849785797968302613509871284971423537975166154702728623098321510033168328792912766905140256936085054069665923815988060447427847363240219555361562622787838771246063623471362460015072854338562429753406535257136853276963842277897414420074620035027447961207118693051801693965809610163948298679579856343074263769681271507229870697094471293724438810800260545720682559648776627421069378003380392986785509232733846897781544872839559682846916841257282547790423279166657261514525988286926016769146205820700948588840490542760458568204678278182091843548966647687673002762858951917095765848920386175081968183411972501973518165390483047867008881915994553579064016528696711771397007412351447359906151417210734747364246654647011637942312440502693472506722387275700182314453565384557585852629217776482937030545766082805656903874326047463006033822153654017508559539142056235850795064275477155502987614341797532567492391034345020168689749514174036566627949363767954110355930679645154607446823464699587987787493956239256652224937595943591452560532025120682969887137205132481756200765402182873273377033784727036091874698278457155081681297704363341554060462039025173493050775214177147929384666532461245021357437896975860770863857880412465166938071046850357592025351473142613778663939248848686873565642311693475388294187080450823845777914690218359748489027685354658503890596263889131548687509330058884231707238808266966780432801205527488451172514833595718277226908410541991215952530100029171445202059907798505031720506231433567136487963165974446491472166956494130206467421627008658355690299166651086640904090538481483329507285060134094904738326301931005936016071326795872390856538017419498874564861418729220896822832471548416276337907024322443021598481801100640950269662587125137936267323839032484410824789356538997695024192747505989737797490844928792076870594590155214829074434221835962059638713456627421618103249274682028283414413007877117823199604499797157766820817940354936352956389731669221060786051844635292633124007981662954785719498992206549802682513899947805976554472865944618526882875263009459347888488416883852471652961132961207032990804511961811257863583647893523558654542269720159698488271592392466341853191237621293336716940635094012851652808280423491077178697364930491965626414916554292126129972203308089095542551709660129066828681210622562749467427354187360010791903502158119657262639101025705833861401227436858666747102150061704240603336862281965935565025073609790412583762291843206855891374818229209884732884968739641494185663415127937033210934872777568174275596196653066719913755152040320372012139363254560628834921022742704903062513234436373084962038724419122692759480373980902813319718731590205663649116923059580643140630537803386708044515680323402531737804243394130307129424995477201460891478661250454952501863916638653056330735632147011732351330524641827273284475858563315326399232840023540613914750602620551608869500176667562392593483616302596177234329348806281555403993619810358250824302331443904682545814431743596503574038298671881928961142622059782073966651345082484737774207467122672023558359106201088349034763631611013390552317383946399270128043584911829542256125863085354466546152501898501081469713717789438344698450211911240944373845503725950652534705584420997850254482604286401975630281391227876872908939616947472593657933097275522416430139445218274693067297652391631259618182109044435438692671539614566772896688757044640689069372362779604696596830819184486900165317183425768395569619925845543328244734437289589752979496400768538814863350381661323879862574793445541810124501794439111211748992086434852238890927630006462832502294204296829528659060928138750058878747303658632774808209945517836270169155507580938789394235714615724885972118189240374988447007449013855453238779264134718848713631221030970284668858822433535216991087349734906500077244331806174038091248731236614003907574547525557206820634703665348743083686072266360721947430131024482651758770541598284204168059302342564569689811595042715792286911336556882766880464366401652934194193165364170819692995731109282189155950066586389008156088969869927458043688574394018910239425260695989922054363197576681299648587306017598576095427177654115919370787166905236436402831263491604087043285264582171764698936666341564216798297644870676662197773286426350754956535948998973247422475379022475980564362401980018774911625943034808185781386315283908654574267596617389173684003415204240989704468987544968917258458511114998222547326603735282505805539156967779132004901209286689787091706968024464963438339816539428065885831540358132996300926715704027001303829877343026869329297078574236136537378942899617640232650302888016105585486590423292862552503958926815062045194964979099546240274336706463333273331464925899821133369466484198847879607279998643593679437371510003085247078096805742328504351903771445715189206674885186034615258278965182481523731407350867133765967749061128525905882423330423069176995903876676070548242923805864957926214734471169621534988817703212917589587703338036606246745947053759118925810757845980781129876945797538848278408648128408025753012728323543951063984267629008798117502201347869417304268442848136661011363940368946275568073012270708481703520994894947375129325293092451420914790496069953104449989542140041068975683282688350460235367574809846032251585304606550737664957678725340480155062170130755388451714035789935285743066078494615794521300942416923985684213402221584049740475636244733326452321432521295731065394568268982548625491535327954004928911581477952006724231439314879555740624697293916817232594840997909988557737095975158191399743977971539571754400423373878509053807690009749301887645280241083117616280253685998372463773205290579493606584914243718063019237791546595899166318202772745834455787702982389801972969988982930476471291051129840583865484138430147627333562841044916957728082541022306217020327933676305207425433777878194407740609909670314284426665713134242847389328407436783706541611188914389877833590264838911848573250067225311136433200647718128235360226989975201868614581990265377439704337161409584613565486190780810703898164968274573783407390984627790282231430270407821838761616161831716884666129356272404600262489774361287902866401471154984853907280204896553761532141359674429425566620344156343824776099111547534793469871956955679749165945624435392651336289173983519518628555244299293762747657460448505964476139573554451920867333289821802380943393507507250051140337854715034070847650477042332464238079757311408859066281009116638337310534156303969260287934188570839713396675910362073778585418757791814435414269401673681008963347393341002937075241672916069746681269374829732022658471144774535661416876405335517239114083053677508068341143407061899906005657835810153508916456976210897611664332669172149859330007195869310789507917970698049293683836094613558964371792820576799147503691029749174135717195056988675671410013693269897643488622030650906688167647906414384645075218721265234177563463254078868032126211547871573824159977596491233366790141034034565570573823922878789068809644503943720451823299320445175494812942675081616884073812963919672762743140234048382392317562224658968618101599110042391132684257462074603503864467291244643949546515544912692410149227402101925705692138444911771182336015816466251812733212952147581910434687714673003513377742489571521132604067437245213189410156657867059469058585640676370815020917515281903379732049789322281925801671176552566706112144419920815542229207211359978143821576203757276852649417870205473649287238882375774319885193042785242763532954077272423458696947408436450538478817424623691128516081938644361411931040307156030299939750566319111364036125008445938048256898026107888417859555965085136738523696679879347575300181629533922293463340488414484699589975238940322764442882172926212776978441559861252929642755733918006808137912518252765961567948453059719399637410207784934599206085849060542712771516506389279551717894437371240974774058797775244949114399120084565133114130880580639542246397589597271116112944717330581057599925794149047166348924278345789852480342593041460865977197923415560322245256249207923795439778366469012052023464791882097424321504533225756745185525914780577952755603044101049532954468966186772737094786111226066661331823128750880219092671430352124118903380279197927593463483328324037913181640291115031660954231597497950860404913329381339654578956805867903972621058074964351072363889135989327405761870978359763197410573556186223723249457014995515855885479725239817838125030711196950648957987486163418290302089030397781628928676873829309509914572886121077809744126045402953324754350064382790027898452884260745793130543602354559371250020553301239783172475821039136228060177723090669002082742741305964367737405652831462598425400215365515943724098641138094408178224725984897412015837492521872106734650962200522576396409104217938836684551832796591769930032371295320341555975159923526273673597106184464696714161742307044809685947042899707290329985418794636162260289514085688782306374854839698152081466731205376747672709571752467344259337551789965779057324209937992648590896191953714713106117978381982658168526047563187482273719370861053691184798628261120120855267811809283518399665728975631010188814938333944338279721333538105423429526553556029156758774628657103128538209031954652252285930220365275534552534159009783123004873143898843537627761901963752300798533401408731423203202903177504695700458773795208383719621776478938421753613502809745342680928346640523925101272145112400069258941647510563927033496199742744315144522039606963519081045528874361075670186046314960216742056722613761317286186244135190325134283395594103094971781390018267841123146760271717932302978400734005455573279059264803032391950367352293501280822591037769868838933221651871736521040189395175299553139685504699916620605978770168344551732647216626321628017769435024235400114316910536903010476879169069953257192409877468375576174515693364435005696881622012516709206862382885462134688616313695545652862505328139750073587480379282087607989264388643415138705693478637595313670659125757582459759814226407385977841894674177086732092124912248560663022727223779047839224097546380160629051580316115916995294770825388258317667400986251350981000331829325529025259280663346617060199295877109515880477662436483749721025011770730749807630738154851655816316795935251779255489999434576523094065504606231760399391855066716025974778650551511540722555302290760185772917196053301620132344172742536961114575439239628214683877982974288577645740625914739546933774025899208469346186013127482149330929970489425395288251286699874442776337198494065999497441136977042282617450758042909042376894033123334384348444743793978463966968351278133362159958294906000359556801983105759094072039278573678367114127527680773264226052903205671394874683508443897924327578933568875795365459911768888005555860504009482085492178924688620155889474755111892839366147406503219262081892380315086090021441131826907984833835251768209734608543884734225001034586805189520981746682156008743209483653367844534233318176911372861008000146520492988765950366803514246073217474321059197978013011408423321125895465446470772849889064386694896982872055087292258746218712503513603688205547945194891309534884398912273554767810427594643901049070938271640104590782479633632970827528311647903864545917828617151998125901270916138932609236530221929355664362754922977282737833313525346161590734776070834192921039622537426812361578866461988709695402188493399936736646759406101030098547456994284875185763218480548933721800663556503597458976713465575314816069307245987368816377739658937508076631625783737972072721561157414365139950745925207381832544073641013361549706682100805093180664878513575530863557449803931748352176942255675318880917734284970810511137976394206229963475541237142923070287558631567697467807446129376617405343569527626629973704694765137967911143713167176684516804705860679746336079341825234486641400918511850798629719354942983341958286229673445878272933025604758704062226828232497687780898427605858364773008735220421563108065284386590717018634325413698219122054611939192168486761652122389314798835983765710017948342126291894511988302710920551342303054701042965798652308736957446341006500959764712173970735222001896828540006049680444811276145313595467261949133469970837358706135143310965208382163190158426895111481596489131108567500927298772695476604970613579652317640578115816035706683386233905896247049715822194808952663005469798510537090648044044002789328208700580961403702866250724903162941636578620079860143666637066175378709923770811459274099570518154297439410000087138914121978355059707659485101619303816801980294802389501351203182116504847152363679355147223452622157438081386706215653406086088441351047120616244526630485542857908413423266592386838202548904076630555007615433972544886801430622351077261372121881275930443945246828207385979945639560046703770723919628016284623969140499714286276813333651904138479656405168560285296627694674780330423471586988333303513222748293155328319308540956378032203034464117994285044823935593069210621462771166741624834940645960405052004038314019487692983783464809063136304503725208534583185145405715245977207306627976124945737105707810117667371792405416031095392107394077796699493461009967889231129769141351403870468911861983623769845100725614374352717822169297828198754132747784569804497200749296527070670824997621240706028351936367873868840905864012074746271753219223123696035972121738225036075386094380706127784230924722526005688494232052458755948358888872719764180931078631424247692614486411857219588196170275151295725806580011186827617373904910139526406267136384438286969616334138544718581267231507910336934610038370818576577397385950847790883313414093957221687551448240818145180644488210878996897628013509366533927227277316767378818185915785828650033522882195519247403539634893198322216223128985146065184984401257018545919000258862854504597521499101219336153801162576762262731422305846750628141124366618738417112172093305191749213630943060345339313783516416438578425963441346460140233812383104737293770599490131290647224173435782362997691963427737727301275338162493307140465814221658742540199998265981488924166553603977672811548226334858934305332753394628674500454630669844037965654209518749450674837083935568734916934174452504973162399075785489054805276432186180201262867186875906405371803741632086139419303250153294931043165552315693223992292144380711971104840468037520950462512355535324156307762860164686328982223517252637356175162410552555962247036652551476343186542351858323604218085283267336281853442627287506233452878199365398637608277768311316636508199206702786043653285490290222465512916862370407573558282677350832011668699953131726162506248440301792353801072518867745050540768299721094336668475828566396254067867607632487501037227125574623256960703138716375685945900480034760578915727956718940527512172776148193858565767311377247098469510532879478909613928975914204171685326964083823974218319238787351893812694304595576867507700508377810918712643175105489422485370416462831055114714784079770437777130839106761380050513025891056354852874090180706537979777345399847819132499103384019589041078350164511643359714679638196789863736108306791428612864324218664058103446005652590661135600328829420841729871681233581463482003781099684192543968651045584779597866469870284454257871769348277726554285956478337834483449847410409072192213367028525350862571685639010305484465522242542557631788740851013810527932051454334723191981414944516410800438440206608663598696227483253343538392232894779815881470727771587730141106190932781876968412659861715840428077214103226834400377918581629967944721961614953125659857735594534594341393008190014491328869580959145697193839075725913011454214996256955897926289035039650475401603745340414480321403288907974952613169205279957518611991433210441157603970956026698386181511464176705396869580503176947803922100741175996773573111257763778539127884378688473111631439743384921732321023182625985226273191206324574208628949864861585688519880680818058780172696649969288701028645255474707041811576167626190490653086533139674022176388922568289083732685380995536177186226177339664015624096822135414499134462444785741400043615631610950863220875502993266924964613958688014513521664884761220509740933114676644840577544814113197948897362623807354114382226507042025231707975647710818244234718769263027586488254164057198501164234067031880588350640482231836647299009185588359966474761637219387464516458914892810034087218213882648865502857022847106752088314602979302093017387861479826791418165863839979118393373287270829617768387883322530093758740275850906282795251496831809385747897823398462619202184834125366948593066261805792459893308689366825154853936345977920115425182364353197090365696713340776098552678968167727996831201291191605454338616957373261637655950731820545739597532327227111841776485154750848011739007162757227871067822948222542956618661020638335370075377044524687231964012483304417892312087441280824193754836110794967142593220492115189634302531670235693281526657870463467027518186413449513555858620066175370649169968047117981947669118332720885175055913888636744326939810254234985349223033246228868918367476686579396454695294626362081396336673653395887060066960181654698804771499039136922339256197314131586832798780450795125719052479294131196354575474521976209256057660399554295595303918696692910666616209162692104086456297385412883799688963715249323340748766406829718224251609798778361275356062912891212072036587225879507557924460594261102146928572407339939480232022665072357810073340457196772165649755830792824509426114609732759899151643699383657583128430628939544947835692967033433552270663847382125221430221575565411608922476314121760691669340387753908285897377366118210055751620320006345327563713356643471681065958224671639773754989757540434596459811092751461200987928630549224345303090960938976365960933810977491998255227893526251681838747802840250638743655030212216522322747780704773360849410391845465883693543253019337879986599026613877170924856466443690001540726538261088836636897238173407192476896473959141061087981863322375378963272894847688034940897682484474398120056623128384571782149011167870066009725868978261871098069427148200153163326470914946069464911236768257330270981125840326444532189420437972988561375846942082667238934061077984687717333694571720938292163233535117895367044848588806597365140734320531218586187393537614452937504486485079654891467248344738293815965289035328416275162393555568908971467468631866212589958877016749021658595275856696454544079981968513999788761915525749991260764168463022075213674009266935854222121655001796083990147105144372535525996056660561842247222430028319564501430485034201723781099892266708119726673071774281589592088695937528624808434637156322843406452551306827610596578904427718858447135476201061835761700872515559272080931994267493469648941282117907177284516485701848145960544453242347752435201861789703597060704991180150978462548545832295428391778609337789954768613950020334149778263787315931243974978654497256447228453167420684192026722647130050448417099758182675207322529988456834186479862019281437827821199711124821208062377992548779094017778250652192066103311341207039452343894216463474021309251130943021762803299975989561926882121617242676267708879153291371354599975823957010358380907337168371747601456539240207263640414782304138135362409574982519258135844724489356199659901265535421824515246525586040637090245457971852357727146242041895273503294322196854122208925757199289860128451492975755187102018906628462469785146899284369875894998306346043903578569696231382575644793588124014236676288053770840507811969577233720277208864489796371985469733627407765304031215419062464795650152587931922596829309674476020607059405625859785355797823791307975279181353676854441380718371125803840278058473565781013606680021528013834185538295905988188010564832266961435926281557181411028873839518727188981442971560947936439564836815035506295564225264034827298574557626378918039776302968479185350746867724034295688847840607652534237729050752543061195322679446355764927033114720989628268815182336689892895960406331978185828871559961322211928590722093283237074642211329251087747194169990293191020089570015030810396760365646743265544616556409836253849088639382131557724310175458337703816328502505984915986453788909437008901209968725227447558723434710645634383283022300040961313704345022508147527739513630971670554464275425804165415472271184408796803495241090325737836510714698839852842927949680947681500881985232585840564981614427058617959878123837731544722600269018758583359812341305420225605911243757582137987309287276679558212449339603834703413586487394219798557133274056662776407100567189360431485234157216661745752677922726075375282903813794930489453510157514073356366949033688972464801687712056962999550982290107633234646239790573511396215176832893768828811223894204644902673425536513503167009874660078610066131022762675724232514204482107525233221332842681760002820427560167501901032290764777916553163908931863812876791307478652969315166561401332723972754595281535939143644600682199519501843772415089006778839598481801148617855816012695476924665873211941093922533911944393309311840977028422244782748740883241207534468207129833150792370033996683954596234050820387003688808755518037467895415401929295809800844097305086025971959616735282644503078527435122727324596776713316699722029386757563196170495240947965174331397097979609715944716989018046971763957977854179046048416590203709415139474506985506346769939431903761896646107970779977869622160228641897677388137467547448456724121043216115595067739346154715405575815710551254466272919623887951507536324240856582360343101442206978865196271824885696054490982535529643975572649120104958979314522411605034546064804800537793319110479709106802687351796435891783414990119379857611783200081549255347761409663973790689669029123827350331427259346625563087699166658793546247765502029154141619991799454327299086033528024181610886433953708274651051069032343087022944007202938591867854323345786786469060881116654881051859115888296853665099396316661735323030830246778969344938314744195059111462975851266349190024178913822685208956453058406634424373224144865039973614299863449530072687054212533766167467314232371569200705672729732117840876006324382032340097420571974147486522713665112545683140526077721988970969952916956911644030196665882986950948803557300851382568798834579032309098100700700551480517238676058634189490764047032954977958476718075661171489609141576309406665405123530005559272625727982462861106348977831068825388231681303690444209178197391086908973944016276444802673794991116231605506987093913101191608872922104379960932817636072845941059095176361578661618186533704291813024033792869193803833279763798284925683614815156303048033383542682986492873280934182157243018033020304032426999358831588361004619738581428885727092156180257342759987312258094321112322416297490500548628624220589717307888710765394818376117899655449796069188316550612829640109593516587158593172486460748452682041960578589140300560874207229991904389069729134628970201343150779876468763625832612795273373195891736026246646508901503635420991933178504863204253243475325996893220059304456657426650884652921680071657984919977073860672652869994603321348831245374935593615813877763832082228927567842474039165999484380109787919635005754884921490743334460632379821375675257175489836498108629022000328453546733892404086010229855873053990536219448516657507476455534133013361721435202442646376979976253322506486229026919873515948798366546500845449666947982064522114545300404016761798301505508119639192858092944522444476314544985873392998024270708236252094565431316135281706022284904765950091756713934412876635719439056726911096855082392913527556100728772733224564934970327102128731642173188060167479263743235948866149890013540241712727375992954644298361174729091875922130937218758348265045675179214408657716984172409466109691998338697010743048884627557689507109971687268721548235859003156051706376785675659393853429636115132750144999092249853484454809506941096737281655432025910692893069274628771653851481087519087625633749779089508660084781865136328851743213152752374408741141023958258988238778232147080383491465749574389809170298548153036087779795734559661869505721056085033833925287681140096482519630421674068158980496062374293832919945358314440173260671568260418422913159842284906159526503626388780088084067208360909086998470465828492541946712925539687155090222741449724745574754914633083449004915144235247792840143657574953003565373475386852854150602370490678471580110053873179490776348322367378317532394005890596897498538454728364117005585222452885243168910464648812988257271100431278066665897841076885633944310972938774757286505923974543121738096562642144888814122871100471796388344354504527765270490119865284778901312824081271230471303081673782060862281145051876024093400112808606249652796578087312110804250931447991175468056035384919954033085902227874840187555495422820078439534709012671942560549343763833155970437988236452001776826968234125296758704971021408997143672788961671696202588187086661339594445547187588351078174736715352929454953311747277350440340935660734293963764018257603435122055153540844968350418401776738299980404272183944710242940469615928505159877938529938518300686647837994477684525474593625330847780237193430137724131844841367169780939233233637227173457322052945700652798392075316022151158811248236055117022780888524987515772273600899540183016110831329939811761029460878366840744166146335508714566474516863952793586258464365940130754081672801680880394622225672123504708419301201433498453267388559440992192405392151645898853261923282794280872436152779704057218309018203155331651716407379766573941951324173100729318096934080875506837451890788928586360870234625308413604560218479490544195064286960919131719331185744964852751070945857359504355660324647192960033453155720897909913181748859616008060574691652054191447002938405727815975080606581803111151129427825868898881613566022650977421523634507775743095693066670312075421857343397600647863076504943292219384082763793060709845043358203101984851724704915389987425338200075239058398925074174567616231884776481985298940165715105602618213356044063772461774107087083139830073492116993977449488150405408353343758389067547098238571583443667808014549247541102536853794860862302899230446490777122803010456913673678190243996746098998185798608691615965221727439829082440845290651718329436004899980739598250001094377067538738622672293956161840660841038528124307719372945986481006386775299209374525803116180741544806057152441253540507154712151065505511912928201702786954202785030177462697848479391839312556257618905259693283652498860848119173355348573845971946365788732069946693755944245827096308155234050416052815805376710190609925570383757037479980189856103865465956787053525476593773159770663543602076413839789319172066169318524981964398064196323224234183927894154024843468128706979397914896890324032601747274329506735805838404166524838191869388641649594882447446495152014227081204635096034651670837008614776917309599244916501444679422313288840696797523941324169033200588205852557021034914920608218696060546634920302077399701685265682470729497062583365400575503595842554908611432118047943989689011126061671615222702805267375433666668933148187610507043459901503821805600947028163747156351253282757918099883627023518106186799534668777345347703515897936086023554006152210696480940550202328318659405071094415930585735404176788989066462686019671378008875768947582928211173818265545240156914028499609446967855085778502438876016808085643894346074612465030431005080483513923686074875232608659581145159179751895476818531670780961338928608367388848473957586541925196275026557800103778219882462976835369617881867102701659183053124635306255686223676995881514498445946362282920529986230814683098192850469182479145833514599460885669452933147525646766287023059879607401997142053943732243957043501670686047048975613293387369311611055071349567179957122223850600070633149485880753480621284923674099861863812618480417298728553727703088090670736564721354034319176363655633316392416775645523210355710932060290884479186374199473865293451139324277410415540496704450579511074201347099750971546507922219823004749519059369842745222061802331590270421942314740127630545539545023016175353411984168138846566194204190728009057998877002954628325933853526696909144094730963506422483207295749094371016016542362794220861924890477659800712864477678005887417689090126529798931109857435903830389585671448959362103132098220386175144510724501808237865422803189821311022659212691497568057687764292488983611798047800478198921134604725859765562796496422822298788355539806762714759560634403476493009266583598780828476918732399056453734195083649318898958820881935415117126862286377795864009986546189125224096093275205428519913757140086003900399349998046756132397409217757125650868215676595104969775988659964606006010995977833194856757686742062475389391049301780247580726627091312326734392767004501871220358245493733941559034569914090868480788477861019519847081888737443134191976931645809363777536588926073996599001200031629187230486353906068331398709220239702671491415357649723834121950699505458146232123294930885641072927671051923827809408538893672349248874291531937209304535172469092394782618951471746421867646860440130988932519579821566197782561880648515025910094032483181377143426776035578983567940489799022188923315905814986857927080107418707324399674435172695553028147879738466311854301402749028563733961119315966910583091258997212841864847177510886056080768963113914309153887453765550805634621955609400402578750271974519345410440694985258579798973406170122872638856195600791790050622025594178960369142830664214866432963163010450261618475186849545788056183269469695557166234713617180407385056956111156062662039877923329016234473501693757527070771429146855023805337922557011293381771112965946913229237561079410898809817023272367806543521890108575417452458031074963514326997665025840932827792253176605832683364963421691460122468610877433706541965440127121575741308559354039221402058997693248967547489933553807601917080435214862256507297532047662840123560402387627247381083458460749574134973377172971015315193578607645538040177861504846418162900434715103731470410402307206678164919268942593619449533291632492524442066489025767433210548352467696800928191599879477797055396713362674473392992746219741864526060498859407598751875546191779334964840070963702125339610753730166543428523367508885022942435639023698352320425408242082034671967344081070376279316411754480716572431330737829689772667887459291507339306924747571670857111955669306491412046703889730300580671796385202150945568326673002614956220573793318637741115088383236674381667721189365633877951216418758322286995299758846568028850386713968251881282564975640319459972129281020822804376028031205551358182311325054997134052011197545637251747579699974907063573009508531612160658385173100696322499949762459645763121047438581962383222700494420965477895901048460492162177632996340133737125965117208156459540939564277275068294796762962074581713827506817834205501751078498970858228892981530856535332347285748393904012886156327806787156646203703528188842435727931004721062311284189447391373771345466689357463267557332866742887893780504277114549034793960329429278481975664333375545495475599430757315808545509289453371882200451207980480060439652597684050708813737651374456850621816278388396755105585268615794826440920088643988312422049640830421666023438511874309213916051173940778316238075410670264074267203604787560746542999700779939452125430358543237659430676350071435208467353580183167309613510033027187616821489144059371249102258048122893518284860916309105124324026401685587600986792698804101007216663883582768662808879212330535234216395825474733982271961164967652762768347370859817887375012531079464233078739542097294028493280330633128026306048626201707652375070017263006830677408871329668712089667642671058615607653560306689418981450785471449008676166107299536874111532233550776318091697451971287716285858554354939198426316610247880427421639307731445232306343172013090095457212450591313059367139968062985641833973500720438889854218120042701231849672407208336048949608371146352935191677269946702698967933107492331920726516490656226265201095149801694500967530634023654000375099542932009570892955849182542211869845700094468786780946765150653989490624587839092161549722277326017034812871425606086730270945790099652026357841465140893143921006406529364628135521151011159842794582151735362102793368746070462646245457251263553701871855891179546506222182724014497716572231319109968005106323532381494930631082879061274650540343904354277890945053258515343815585297111474335379254856007412503401422133571431078390074445207028036883139049678886319422099312637394761941559545385990365258044519429734071594764981413644535202386288711465302701594889493934595163999863046603433197404145233137905727543541543082022025312698840401246079349318273571384055024689743634757497991247284500902639767597367906015011520525629248524551660741060858098085869935348217818991140373507538253431588126308319696086801586685914988191077936615945064210622107328832789976064773265746749504029286328733966424386709999931629142822792184075783316978689247741069973734189525263219715138289857055059273900673392436026584452215786991792122546345656070487106255970531423561486741371537368676844101861788552744008574554230206157815760197659210603069207637300781571741450202882179353527846648311707750275621633068193128370720101343547287813251095532525323153210681418849597693811276056050648744373915560860578739747258469669250889216760460495897935586030971692908057378278361676943561496500929696289885798434622655796528108877482250015122139843637012152599989338345642843712496694068021588088789013672659104803072374167122187880661727510983444191023722758421691072865797349966952138426111918984044301261797533814651258805590500999032161054110347033876578142725806739143051478584588177651788351632583900461719670334424251301122412170957241508074173440526899122853742245888006041705185678085893578391266363695358428581497144534144815701615242490331524689090292106124102304015243331611799048794238182099284378151598253842176925752833409413999175644171272798221768628893977217304757233304867962233605385164712233509553430286608807704650569562978116410049109387304677850774398953737200877740489189906042835394440820697940801907363515637141251980667204688290027171704981099949633426196942384365469449789931825986399162736590507049311612960902543964262406725021240357250032103851810064826816568338440470844210475973912701361591722900483884938574462186465488557398118068756515975391844224192705431076256791502913481130373461904831046671026036745135304916433498720156404639329458215983541629732407453152637971826370399085719671265355497223417060017203282637445642188110323572709018683472554848237833438507528742551384934051363728495251457283788737665912301838032264671051835227300145529313449001461398240916259628240200106755819100737234669780047385669915787050929284863916839588791477968716635779319376063026269268967771054901674645278906750537729231660922769847017756567906897199306256195139583091105034262984072716574136605101481883868651174196001708187273408497906947525207038875517787226410331757922066518368109204060926740611009965123498877627791988409641873633755619463662758054307456259351547926730778777863053405268779201568528662945215287097650541362560674098337378011533969561691691295684809299415065686811379445466684230370274088678007669428655687902621758399709967443206405374377484079680437438532956964098328063573358793228721769214450483960062129786224612500367239845239126324803579308411044141651585295048723966591185842587874320297163686681030297564923529597547375510295854905799544491356950562828968506392546096735250317822866702525206404659343858478914975329689092105617279920772701616967205218233442937262825540963929146246351936309115308264322419164055652001689148395847085183238271504947357725834612781387026910892846345578828616947275436596435961170253112298923642562000114330435043334620757386334409113130491775239929676653378575288453831605679703216281676631024483990684951910979673229966335187791428013614201905764512486836089491675996053051443428530331157291441021153662169802861477278652981917749195416773127991770848121298198280150318636612622967960205516139560578009570313344192336588659567209190170627171723799887907367828473633834240834643330819859560616535184618367420448937964190378848014623462322294417732628136677931655101283963114671496599862916097017559677433318167818040077139378964087936708639298546273067461361717307857454376979819843481339000966561087892144414176978043436002272463548563132087928868520233859855933468160065020487884621041284586106461579231981520343360371368435126822583232017443814122567895359206491180700053608384937197248315209414856834595328202226138469532746817537561662155519511026916736911074077893549756807269816354877065788805707655874030708534366653092590823833551121673913525502633050750141287320937072264895742094725984989951686292366208858960616168230930180098803197346854841393676742083678477548297156949363237623747771433099119319744934705120684412394007160036616302763551056134765371093154622554480127816666395857053352043810699448181351323288051565785044063604613671969041446907722675206854281436119261104866764683623124209360331427784646069679647170402483452891829012860631908740083011093403378791460584661867544256249602984521055521226296055012938722854157728433662585369783309975571777921393638476550632793044162520652198845641446515099554674951939855738927732620384900785510205727099668015799906945866456643153372398494065199530138786310520402392502230648466535472327914398351655316635989836547482848013597250601724124664291685782885179731888606936304046789914709709453799554359588125072798209543963382641934860208834238052393172652401807064938415804545016841833342174718829889116104532336510923208328212189037653019880805899590623628387608983056160437583942143269557435780108957846822253499968009782417677534066357529074790213496065592922278779026018624831410570161937283881208095883804739973736309066550856587710314807643721390036566142401497640335222291353657176685265343882363792008562984667919851231241426144874306378773649704914877422620085309774400720797227665884813932874627037919224456394509930635086768950047325757794245474018026914738090874445871501127449192234574973669022518224719720520641810888669455491653143013051287640655810781876223907972038220199095587848267709954241104119998334490304981025258522958784632789091341531275560553806913433769613892531980438815514134979128877739659869389650607118115312547792308139695752717037200530280540241061688587978739439182650204214995835233585677313335099718736429472117515932832404879711612172963852013527919675765178920681664219719034671634759760971290840839446348785389120599785691082376502947257667075749185295640752338080475581481221640985633196682067527843949039620246697615113152820993554008481391917270918441690864494568014857106834560090960860119273643787080045176232647076473243749330873880801016133905980276495165641663358287109557850614900874070039159780496201587961275098499264690554844009293447509736275495962412177720990348125324011711586589428316434434810233381188483991450772928293402608297106823943195249841984523416410538179223218943566509578704479975878349312298435909856613140392309951272821138377242664285102782646898385308953366685043918916792228677046579101089672214619253916253256731972579605738932277504139913607802193960293555074805771548524809197981161366561877648694663222492079191573348248196847523207994435817888792108944487947668936239033524451234361025727337962677710886220174169206779458812418584616269331319880580931453814082106817957577084078978634223860032318387524389661679953802853643969227084349570731141728783429557483187829511774256663256008158620004623077783561587964326234666478444380297023442042115596873132635712631889925618874994923645605563686573984786455908002214518946161372140748326974129802033146315389214274521465140007397460673880516818442852169693204858879880242327503189074265099693363670244097045975650807635632842086861983255536245613892843584323138208343080082088621342382879000681088651020944138305944611438412963265568849876583455477629512327022147343913555948232425979572923540229380851181144988108501869242903710763280972611490102397529688600870274622739432727434850806439127969520359898638867521090254620348426009862382937782848483956540088655827402078559398210918843837371051349385106059846592874137149972581576867185529294144407344170037108936100531967136816089555277883227914976910315648524108136955869551265839719450809664748309487095550191525911652014734156155359249855606014514120237391198356166250056468449233216321801395452765073417470448772553735795647719585953618541432221342019953118356158413184530938900527277243343975594039298470360830947659225999397704002309521393935009037097972320811409863806619854314285928046697840331361897395686533441877346234855815436450715245870669444068804448878285006420864823441471443320673015772710139217501718934020232381762839582768766181440552514742443510580255840300565610254157140375040459466397836407490810434394623939275158113475695975577104656944230674722971910660544560349862897110472399354824098377778179696106021493570084684351485632989830035281119548544074261275575927790851684508802539864555492886639198304885720839816864413572211938515003926714075921265746698684294633363293481851904330519849877009945889337344305413393510153646258382981288751955141676558787884378997422043204819377034984316513892211510524477807791951332078098510903360017909801370860215171442935303563659743277828319191425209617962003379166011444808487996533446317334662201345270884980031615536705577280176202500595595139943547665790480047426518021359818234844228264839152034436441911062451441395640326162458120693642210406781698304305419968319888235804485192372667779645077471737865362544716707680443684888342882117508167130230154149280031578941681251452130472515066946632978774705764015202753829270616929865257307273558145047221435679237282620770562646995049578623131873353160876701945372668032141515784341031459541752434866402235423446963685304338756167298312723339452940046560531100845772351262009340010684324854085595525277992197899302379464593905638272708163039934462851372554643486550893388488661247006447222956969719914969680049983303688614964651641619033683019691994567020555547612988127825524078713243355206671305918844737751860628830641444082969101593720375390686328006877516322793158648454826845883176192972436979903411728941554874013230561781568900241076617236167113597661948150375376036123613469643257175634124182298460638109304810955700866019035042720709133295995814148038592825021838982449541656675760191666680881571833060857529224157220371825079931343516054582253851486191326914188878946915314528935281018876652729265760611673131113402086958421131737608788481471723986509592449016851577622264354528716558468241948538579010364622904772117549056300312291968107151019623476791372455537215297770347010515114608118420792431501055160171357548583929111743273340885111926350439345846864746902672246587452033936699101558456978470056235167137340298765468112463229250455695137281381306753766358407167585867815492313251363741092533254962988626705849088813662868460659283954392671730684364768666322422036926318408493452578103107278374314570645718528847712240136454581911215973016674031809656733533085686954657079119206891045048577549556100101717019044082605280201703935861525228296969549263411920330078497732864879759735911580801858394261938971147470890669889432948413666752156487574683796176306449071089570922085791554489315833721017458901854856767743368561642640359244001563410614367320994805031348487811434692975179043735917495702208492787946488420529873987840947995609195025877291672106703713995973013783061861691351881076952466368691874487131178630608530729185862369639343318354883033154031516056733482626454347918564429188261953875679656201683828232772907818388987513121852008626123364597262425942501670306522199524493397045704116701560691199632452586553368686653776210851886254986328458210110053700652068726675514120881369137465175108667323300470591056893490372188949142190590003608385797570747082294875122955509498623459627968412095377831071409050931287136206513387529552633924078383993357662371709895977151067081512954528163873601234735040007179342825399362617913402933288689037570500616091969704681285155949034011976429476546124813856978617887061595076537468555029436186204815667988570578100393193168017509234350486632529189778087697614583921797606453302906441019424233927391301492322758367221236122187321330178035122953761577645316856911652610806452317720110819947199861651665476247126503241261391461343194021146543108722817183889172605406632082031292479266638130271117474878893760597326836020233524904806732079449769310397616534882197343807025484179227352022980310324720350596134717888655701271140069498669293364723978354722648865677407726296531337193760847367644819115293593895418858952400802515287424507816447482538478551086835209854315128175247570267693187149447147952243105805759219587727967926230716101635480229411658019271421204412479988391657526559414446116573403212832387440272223955243996027811292327295665365978138432701940517161481632934307510982213612664093156140476859963796117007754399134895046747353767528312371859899503663887295850441088980699943323634882562702069597457295213354773645540189854305624630682546476343074143511848319317013379161238255219127876776840750913149653392647686578385284864730274057585445709042927781006624853854256894386031434112603149386046644674423892277595380965367598663980039865551489763083714179867484713513062299789878609138480988584737789301355207947212070787538489301983069352299765259146002440267248558387407377307751711829490685003552576809853586902611027765337229242158243052023931708749906090234568741564796268330004915713660120455168775303516412940827606042730460700902235649266104272719430922364038368583896941206871925779208639355893484672435106590333922997233922354216903976275239978133902092604213517236888182692552147349880894774488593865447536596647261747175870482610270502115940671923931349992800329256659323918632500718163248122978198091243393974336282826739781855507435466653404057662846998593550478687079896216456810832386960118670741040213839253005162151298045655921902520185567213653426383421866137241680871305088234350590665451858861694674949827998561284018284146273485041973994246408637310602374922079191391586658260049644842689697236294655850670379282339824792708177807462607860869077788497159105705758461604961401769618314256402863660167457965105015487895917286449862613223084923375053841223259420139315386541356317854234871898052527843934440242514607558255994780204880275843027064587470571549745525986372510564900542995925790061655844722529850609121740043499210837670362047338483086891853106266618001708293948345274871871013307453052845508135101695668467268424424158490560973345720506178395854841810454998279085873207577646293287057171381302373865779944745943510781131354606419869925940932084196751203272282104704241861238762401028676841982248082600019271974970939524005611746416175905154250594547371668319628063307830874821987880381306043119758143306596337523732488060321752431796247976211276915666648638144320743272728971267530337621074453534621986710051397975163061361323748863406711022920657339381455703074062716161502994446968955313903436976479090456408635653674431790143774593915107354276429342861137602325397259987164887785162421847217516382996360779375909239028547645301420551609902750434736810544191921884164387315158592114202831523996308989229683990608728796387496968019080539956921669926961309574867504078750611324397791272112094031252189094888974385501214416540827419281116012373018204883714940548304710518055237252604730513221252729211482726534007481008835094287488567742821312011513199569282648421383785286581548983373500831617330863984129272697065473858153538783647307611149014601858452500468265151414247055995409037972165891535729549435101575426832762620793397889763821251994053021302215045029613655241301265836611217155990199140931849819343378154537828610269996230938319974089797791933103019150716808116209467910816365428172397294077858073494195589861805542760320513111660889905402472918793749055633068936920039457904721158360662753310457086061925449455841616967081340926395854055446169686818792489755344528891286388920900687304419483999379284673019676888807113439794933582517688522467033991448443826770995640630915427992294017809687581948379979046735503236497762249895884217843890701416580336580582819883840472699623422018063598624251597129444791466286363187909184318774727987461263235041071245735537775165307984789696660308392621472189573543243493232109284347641350748509874550172995146698591454933566136618447893827379761165525036445755288606765559723808955584760307228287609514586816536105814147834989016501659566079049872228459560947389371608489776093515748561571785926745049553594236874542215234315116899087630886871475431168018629878522577778181892810452582319164828801103185924260569336569612540035922881953383249135920148691516568426106855825368530789945215913651786857712143524519341966363907019141366692037385135543818979570173938194938238344700330947549436888965810672088575049770297669297813988418141358475494123555562697195009619012030616119395232915900481130326634858193750987825889847809280403051492797544701895305578916310131543967739199503532779309324701819268970060897270162538390407368872308009761683920731457193979557249979035459621316182290744493181871153063274687237489452246828586960450235598727909481135578734255391484670985429363244937582388050209734469568725754683531103777158794026932695606692589788328666222319536683256315247606638809386003732467455642478193218540175929406579360440783762342749104627451094614495898551447266502254299171090237690564139619612094587912960697867335889144018508506287938137162370746764597473168554333478449401524722690978018274778827789301611877653008523935197552754917141297281073317860427192327453787456539374204513468106723590659736525238490206767688052923901622974421295934836334175583782694270581430683768998524396651837776937973729843950212790506194382119381122013500461913912280430509129891137436563874173204120904607325080613073547641928097755932023165765174458389807030793981328339505586152181075941777883317130478390005819846180393157697904565894574356026396504816115826147925182748435515175957890394644960318139862454458094880124451349772532161383398295224791907878508638315580500830804115297686212276078846524223988817459385236630847967274206731695880542157079983154492971575778264042487249143599622365257681108560887309294147548173718101541365863869787305393693931944426734397487512290594236866925818106712787765047643432615506569548732379481197957721024639650174515363398101152437673060640580369420895673851552912465004081182386262865525043295620140190033983820653576805519481163342253005681960707152424563537904642079955391602055264055627413140380217307406940423667758044176616372217674370989402175108084343910205591526779318227529014248039036744441948549464847274711321895569274747064526684168376993490656825479292873867434427412502930927684812098744242587180938279609130301586211750112499365144702920618372483081045915363048264684242244293587926782398691935865711812816022553004249606212214939822011278584142637051547154648473004698594173265440531017636783979281129702373718185992706747872410900506205673489305222961647148534291339715186566132886829697686456240208195037643289567289838434228264495428178285021634981156676761561208658416485445799609932015976305989013930730813103150790770964779695646351507923658976736980514846232520053751317709226872954788212625018091301938329834881982395239283890047748028297270747171203333215773132069350711607001612475084985522788743560003914335930807754079016128502136998413354015086893071452348904937481506994961695536230116299244215413754463053694819903685120670710125416571793354741941715748161648935290189526953621293605954825582009366700291938386373553103115878177416823476719668679008309493502140264247333811077191159193958707454172744732100608009377109022252264005748216875204572062260029342570375552118510772450416456836321249293364790649840267204168944476520125760972960097927981757276786829953201311010714204158409405791401201429373163466233429585854856893404596628865847884307137173802870273306641615602245692370225706837140801170778478735260200881196879963209189537403880669288216034291847134241298774734286546681806190952981562857436841247785229277547785905713986383676674161706152359546616766180521033811023880642149331574079447268088046728620923483122342688677563261482432047132766546902603164720712226737783157751471020113213683456240148811603487638136303997635655721300493239373298626142356784428155018597099181619700369334207979354395325225927941801384729356323768612024073437607207196073486475932330980700101455167057739415744870834986471622542149470632211752343349987633863404797800194921423480039100679431542147361102696100356780651173240569540147070861453109673492435459795142795390468807364036764393367000997810075531536880745460567418821327861149906068274430247037037627084718050012273684456749186963494900742213422367557813699274349082984699088084687255954075942409976409952854513520635217672487271384354152050596008202521083069540016966612670871714271383003415482570220154650647790343937929566698084235725348410158903499827851390585886590978148939450342596731455882424679341268367324860399796836049670206068977093095678648431363992226340081007829192262597461028331398498949744385365254113747848927338395474883451065623127162861807406308934244955734180540967985401648926018679636518161306726454404384699707515464416336953993193224499394860066375177096247406032530114709675650856540683653087462113332467283516116480438721367164848979537555131815954677097494988091047807012860109781126811338451292190793974365302490458596156617410720554811461759446308408434567978594743425443896450346313531043449741767419712508368308011652182113120987958205629303909864758305855857757320022438424517541395436944181729181546823032950130862659653131391301971498391908551187407518057755599238246884336545663893912496564196922580019125949703908115065204891137490162513406831788503740025239278419491880998559281969633990861134261553498416326760632702035437560172276412608266560265290567340066820166944541730691943012576599939167079054667412917772491436103405822977727196313293731188774251433417565677431903840603000175572061746059872467451870746331773279036224316176717327408104960708629428261298473633470796447606553528286829494970208861538439711265548286936660625687260868723666043207411656338274019990188623706465124673384440845172801194551829979163803785867339158070807288485736012152302712739233254007422204875094134282167763461652927751883460288250121475958591011645269220295611129025721747404021830559743671578806945999264335773278708680432145722986526133205472714382166164170852626635941566298382573680829253592601612479845929264524710093927335482606591865558172188982349183954930932875497664986724405706870800441265461864144676333986761888774264057154511668984187987273256229501770578968008349893453937347082016530018333150360207395805336118793773650000227124443704817338704478301432365606570214871766638398627768317930471454606126696460642996537307038313078724999606935661335160582837326456676497881729323965003395606647844817484768195880675237683246263632327348461038973794304936173928514844308110601115873940661629367606982732581710833608055867930975714281114305169925758004980001508296936998537794064294577277985167584429484933117812540841705551382504944350443290034955931541200562141003850428978547702774647383264216096363177529482091654212851023912257164710565454806461211417126505064616552336511458980199103201013310711780166539789157854487943702505879219185819335106223101712959305638451593055525486817896329593837415901980135868729327467147907657382087319904345786886995373852342745472935320474134404001642703789579399258097151132477917755924898416459122926618176349933981312625401334626899758695628873710345981359970958061043170450228760376968503804205633329529861218224056429967979927388824311353882658054273927132020220455856978778983286845067572460443796061096823773311346095601730514002187413370681826948226260239586257778477447673109017231098407519277617368975150393175266743242626909652598026397511497723465811824622082623269663635540901977149969486740777666795900087374706898024165228639897468455017418655510830518391045781975209591297036628561314979908524137453402685654724632669441827782498890747809623196185624036470474021014042398357626126746341872200412726924916094752052878115441763290570367057494070733717086833516483005873267111967158294431438037010865677038743804147587341803860215752031114059117530433110138452551420576618204490644951720648256681468992504579594947485790393058543528242542251257919300972217298348718991686229269083056660316429127048894022725922690797401607061482272485037648887444712653739643716614148879598112297579400066567067915746114631796643240315734805365617200162449096000377522227319927697317827423230271360263387012259541361958289242555614251843021372797448942915021569424429347816515708480184083892968362568044592945068710131867768251867964533150115512003248315039902180117240960368342397261894629691858269582515105858602368340289077637380477069155848408518023960490915016755614567757893834736141688905811668418446966036001130725106951903384635176105252653892282005508928446090712563078673727124103733214224161127572010025384935590610671982839401326828727955113282210936563144868111049354394389656363758904176118471954323523317850454994868560547148435125535009588127401775845391253479762217389512933896236311334747794988867714193799835824443427680637643448637926082720482461620534916511704457389936335540983628966648923249690926874072431025115262086718508976596514078865005017230029827287776960176279875818562271647155813186574747752705526257227292027607974903520430393598750011775570608149196249435778133459288109035213206200137743974328438189980786064806063429673472096433658421905685203272714684894554292583568133502596636183755895566618759182431753990517598916937067153422454461565317879595368272231866241717604084711363778366311396173247607712417502792424322716309521154417132629644971569366935811205685193862301346605969357573842150050113871324028458539094907236190265956344224881791158706864725591236004599346171908459749026783652846511883528730374263566377335526284916670344291314242942818958834124320524821441073506583044453981811241526930637972544286873472406171178615431480337952071921011518146004942115962642626273997552613238909715564450959940335591917550034716702453927014762610382743765735865539803596644018590546827140649564645817783399391573869717315360282632584836872472255904634424701756714860887778931748369312653435025464576365865258032496115339016712023380542214540186784471719267058467177659324486460812537604367037229633483513599025757198052707401283084802538401982438179189830136922131871749646118754410718293259888085996289304247426845197604142104283390693868711455560385663199980215544535761752792610030769482996061285105831187669345893429360129921712026553817033967605744558904509700029186938198218214567815565251002557041539114637391162061996056640885327731432329337710538210213886113840127052418840766489104419371234861827952633394528879670995801931596654332020184885663350593257393277111395026134055094028892460886795663522306728788760160572136926023372627655905835228345600098840836291099224981354587961923042718508639293436592085091571772497206703298616692464045647307670479988087632978085366804960446031754028637236403512400919814293922890609295183141145490128134376629287959010049944619962247861497526986792888653259562765922132112074748927820055621121085865977379733184374405109196011374210592275491139522869087867839477479514946044532645382408317888039430156854089251677351020058240290033546974360365250418364662496319837051899967131666356928066991240007423028552822565772741340909704515089474007856581388711984785532203733648235996100558178925482069321221924318923102058150513139167124007180082433458360302090704358209679234441769735780716098263880970432561717513041991581698498759063644965837593926301403465389959417889670568838992891960761929882116766933608838200486122540000928811369669443668863255198737849441669835517353417633577917945685193123302638349463677972343112133039449085935791347160652922444633594482204574092782374499613347447150585545632274277108108585882761180564626673400419857678110686178120589181562131926723385208203563781500273691193895692768293522391858386213650207100023321329498523074991110565860380380743713299904845695020451314958120483829198065323904521324870222497780857738696545524211895652986050115652980441968580282155309767444174914454780117732012785766625403701190981953767999684099834813795141495919933166637391818699991074221200619025636486839307430692742154862644855440975881052891419067943290719229093693120988446666303899437996087834044791393017809868113001560823540105957351411580773239185910476569203543303000034778919188065440564150770181546122028722440376612196205930439842681485674782688978695573823161656151545106610477310898039373418068051170611739550919536676007594227484981303560076367493735064908350126049214327018799425704446768215138358729199492385865034141041070512689793019411744650000828613901687832884198945204085814117762514483621556897959934954459036992208712443526366461943574163928837960449553062668693139783603302947446025723254883049176425746992723817529905972677769915041577764524433112470146970512858317209773590723510971002548904751778078922717911374216254867067613993806798600768020547027610919261633729597888076883045663820149059801359351984942057361045787706869951477668301906909451392092963246368442846911474253324595774806451055592266942071884172911299249524481985400319080915424156276550201519431788325063505106929789274035216075677885203685365641836854061848231910221299013450450087952373387051514177543676628620895880527408847117406082881020395415608286188825733865301077665457886831486747047399121248482189562023718186170500345357874969477070348795937336876605294677070842808060797663953996999111967588336691298265392701499799609824860923387297168915510430191082986396649206812704491136691700900597878385624589297631838278719381386631154905426039441183867277079155972572380851177806919900670569860412973840263235368020586135481182498971402489449258995622537370029207956418994421579261088346834285649076150385232883645571863445055182617754427387679700302498502220858436910535094004677393106456998438414275014273493686651620035908082944710562309124109064126270717341436798184530502471666610172379733369386575823305579128228973112654051702934948015523105624090286616335951274783225222082272827405882353074446191738553668479324965011012858403230670436322369029294763590176162260993198605239040350270981776560515259749371137216164815111114353104779750650807583400256104461550471770872241294914921874949027828040704963435230484453149245562030619344154720797638061397463941926482024788487132867445340532796393975143021869261980364133800920367285486396858322754993423649222285461822827597704990381131904683427393953098186867159455311897867761740074937441424629467598072373460162628911771164871370334967717803907560404809877927686537777704459357406421569914388266472657051716420121794130717914862136864070941112965016427576120493119302590210460308691917211485280198777193466569250192107343749490527383824522413354360782489842679758276764531960055879719348346070597175441631201377943572454854372911949268554179611055472882078300492125219366513496950501555481644465179233840577354886239832517454189732118798367828992847111280864934370787402174825793781053807194528272182690753479840221495199685051693186649099407336095065773325389472500060704113367320102930755613518439021995639753621651675732448307941951200011046548906311958557564545920490710804774907147236297158132430018863586940965497091034814102835094473598150126436792811561570952247079933624817553845522720676949071426130614081889789631934511856191057900616516242075058543342748442735003770763363517619318898654738416756781740299388310277813371956747175846153176049322923860532769290821947776962643716332132058527262196201196394850377283882917219740421316168686831072550074679486145854107777195703647071531132469078322531764953741933608970122475744551850355671210506565499496624014410046964385522016609401408189029167066425269285763013437714876263733499982189471514646546145519084531287245735742854103412187209901468189452512122910444475549402091883624458177926786203998637542835774228760558429576379033450699573822194765517839210160462006601883653258220667065064628700955004797616080890888613012855424550719162362773493964928432733931210750611959288973582647715051241143531924516555518776884935456461655355547264799489376417689132600501953791909999519357059874219426978366145508300976392167606213296698550235339023950441425691874391916914039576069807137308482424886300710751551993585915456159058620287276955618035560158212049594654473304387690576570056195859940682616709394953033399724786278476904732063060751575964760896297218122887736225121123850132815828669833436957432012947941724035190156048664027988377641750033717990664921547697353244829003188972133997460672831130304186241754124294523416197484600003566931393334917432240964857489955815406416524333182952409201695807990129876104778954342606798182894957942009951568207292411228445096059262133478164785406820689601407199267066311744353492293307045104427611376646487394670566502960365486080895567809369877916714249073793963848218593258676552185546054349319411939995846544917411032822307953543945083451294161305828542695136076228539643120697789342611025229504983141759594138772418330376947989110262969819950351221409934774856020969189916781056118181472367123355366356203887073862325430474586539874991019512959800513520624264733838820099250804823177979994413716101236721091724913278147255906319676797494335095598019707742228536446920810448715256455486167961484592716509944815395454897722015374557729791622074570859676720993562138161696792267302850268626623462779263784765734650313063739322473989073677942378446946326680548216744756053775888723331570130810031258989410756550056214743088931319098126400035631862400130348999690718723344161747333459445179007983259437069125941620884890403364863072699447035716490314684253301544338871409793232104228174312557708062657946084163612001591876753668707325766934383991030169667083994490052152653518885038557687969527268318547913367800980599090201946396684534048382169263060935585582743114586234176335022626723543548791979201566573262813964429936352860209921616203573740755381601151310864906313637288465165674651452588344742118435993966861209170693128640752972413585748532406230429437881711912269079161907014381270037073955641422979847674812223391060636359572657869001159304731057702034407006025959084457274464440075387109518742887702462532008674243112778700806508471116687732654347257422697572129417995070403920377368913811440800103130548795541901603841773637312298686376676959035326358308589947756359049881302698097028757571908635643329607831489262360662824910403501231616380484328186353438354470103317277392810245186781100403648595787321362028099907495132914013153220966899719424047149509980077537657821548724177651089039376803416092086321541445839367537973150756878635489680597206459158602722504340624122964496418375270578861474972470750508080955297177382189649957330750722981770980369997877619225675351061190947272963222494127425695005237522589516342141179819570014209155148851691072581850115624908977424115956463871187836413660920244519822385384799338179934661083127715482415274654362851488791462595436264740283862058781111577499005954084600772072760310807088500239238927108773885546795054881146190929548917490992590747415123978678094527352245646315523561791505135355526698501175288658295785406182386725493785734924879543179501773477693173881435886381555781123450700780055819543750010663297929125454378359834772323607239436017683515182349550863017004122583358028213520845111539226702054143998154685110026904891855241888436039140020564560346964794274698440465731743544062587992552402584141713546681142840079674544683293995100503419224284706274073170108250862477453480907556032894521679843873489694223726007391108170346464557357138518883542051896157660535189473752870364909213424579020491898183798908509460492952211770909494339426088383459984218384691918709007925825273717706489987390269899094440479249576556556674957780284916774988748421619752369984919151643130753841226977457426121696409009740443357262557209524847426189601309961952070495096450736146582014125876029144854977947501538935456737648348853241109683745274914036226563540816266151000102947229873457218130445359012426129137220181963962901378367699249122149210836361456853772816879820044177101013622288075202651628985755844888750855374745885775833871599193779651592203136984448524158086831681465756558941427955170660932384954808440506163263129455882478666890674505199417535360295157239159556656379069485929544773881814477687439286040956940531678784691250849876189953055445820065644055420855382639892902727275420050248973744286474163634858075153099263146247992095619341145694181053048844818140843791404008072531005802654539166734860243649787035168217303916792831465472782913872375156698665055984549691989510166936494954060211059976595340246191879846322034096864555510845813272985063769677876455945188963460802648211701720048584737015389237176247949342664899956314357666631043401542792546078865007833346342398488429697862223239438859469612600262887423080969732893745806399213837037857227425282891554434100033204553709312425626727330397950064848246935944615294178448318679367402392669545161109988294413506834950427397349928510614251462650569618285901151244252575834637531853206926417964939958603505866529902810203663520031799720118293597456683327603718081527767335727305086260609506326353041596881843898481308761690529978528419909263724058371286246919617152600539991033675691203973051898752597542150711177472400686900319304590324067837871778627482107125005709420889249117983410207568695908517670601036823650032262214026904044758341702122517178568964139569189498544071951105590993390603330594898123913327680227558507824178086828267820321043983720910363308281122104524615786851708490931569731929311788236516572049222957716891790751471088469967335697268510273134928684052627845572614578964859061200020547396099361361607093345855025460700393397985407220291505973446635163202052154250536786608214801360736584126320912942737595430926061860027587577890675472381946171117039894268265775675259041064648304913573203646525790493753964137876807244760219180509873263111311858471816048716089147673273574258672522235403787085746147614882427771772392423201112620183720093027631147756701776938815969835887681667204936857312618370214236443294274274047341019734828872825509304575322848355567567745169031266314438306751548066607240264101895605883880766841197169649322102509439767670904171830355437674212922240852496910938885830824313619024955013730470787372913273512322279242541015370681247281978117344139545460491315163765723550816959670229821094880720101907969817018125439541575480006758154826147365761817008537308863969956004318791263190882013680659768335275710298204807910002315228992873783416547310374246594016313331600447701634658901409141454079685474756245152191950635712040863375962070154472294075569062698256777440252722358569999937862301674141155014523173133336396933509888614522281617913451421719282328295817671399705965143821829825940094088097360739992393797302740427782220933138056789381764469445608382490303841702575322213696897404047108304306679266764292458022388828766406525562335459262960469184056045117143867389378726024972065442784854824089962432079220436590338233917249769335120444595530774129873104486404811368331359547937624002353437035869376131876831334253712098509450690534688625320316749844450006224998005333201503319221913718934481212433229761195864668677975554001036107669481707117270075569570866700975907586613766937486590641120389875313236875641680242593847607987217226890753311878360669876545855471477670650791271643197837303747155877663725618950250148679395958725205296040106247357934833173335087798233155127596885185152740409508669806965387224613031032014175468495962031492241968975105727517473918519056264844974869044561568837176254050964095046637356503388491834058989966745978053073791213027784896435660546502720569851777783753053676511265625351171443569131987055527585474811146839301460503755066158174695125168189219532917584743603207827708100751246897272671643717513614796452472944036405598956377274255794999084412073061864823656230436634274567153669332911469437046285629191697028063588413759820906128738430730714289515351028810127530575085319676274635349918117156805355844610581305503989917599679297686208031638801636409039961059668072538607012511091820947635257531320674096216742074612728804247460762131953425022134527806388053971303498993917866134676484537160452632175979814599269461253337979023270509963932747677420432531594715487255453956847428851129982043836358088860844753653281970980180375712509681598451563916311873445569436870976884182259956481887883646826852342105557691182814934681030892507330995963463337584472025408789835152879996907654163794196052853706565714225004981646891705770951122938205502287752163948422115289511104240445780952461038439334227837493581490832445543687605356338508901954904457336831360106528683173198922861042741111167222805727286199104339619013982052533655326429740536156774215666286173217503772982286024587049461594181601384191079544247380444099448746644406017520144846132997713366891350954481325517783685310266960046015634222903537505840315391833676950277471423703580247630106863611545037824439067173234543771874922536274467686713806994631608786181091541153337732739492795700467875871634323296410986729074498392715642359715249728128045509095014426326849582825377797185665501942981887153986806681758616448533306163848808542888956947537259962583821157085696217073096570083223002008446139268877935409267554237001721789339371147546541167435765253327929915956333056858358721099397503535522193775498226749571142325660585612186097103394564134868825806237902586696018732496677353546410027633505546990158272344577381955939747053480991742111154076345299456150072104373493144891368689471292126227858764195675285341536673877950591790686793456369492815336233649945894726494614124914398581151766938043071232716801121679645525522636760856616634419590412828215693724135728461750552882454564003088631623841796975249793473498321191354877358889072108593631235328894304843841372359714585526726916324766295071372612387447539278102326690901303034210675006092907714298080703320006711958154183926050546588923905888464224087191536920380850228884499120730110513332908317414850914774630084171651426288767225054833796480720256768863175915451144997302403180542244156038453159675265186666207221688433536491872316317751939526272489725196229911952684923462139918133539911867200404672015444889724118850077159538385214076344481938111252450455257442337919405209208717682059382623241024655050783846403467868405552639892947128752516638965797836048321692514223387353158553062033272908815336243006208252372640083714104764798049240999686100248447109459201951941063125744358653869623181794368290291337166689034151762566590157207571701085298738358197938432603818152588177362322189011755654836477189721660027410466383565301173824069415413530561134121984888533471598092537841207913792676034720446380994130326846223842460920138335561623647779855103769611789181690488396282272339177191490700405458565882855928583008202389054451662359019986271699362192870485679197905400439649732134389036239845154387070725136846520346976484996144956334972006360183270926349366848043055431858186485432651314507074193511416093673949005034229541362000877207827293508918096781796075225809746743384035772735998986982853171836351970122760500072941007276541210107995784330393176996553869185315281667161570911592048792712810095634544577327259336573640937629897854939616767879047337512600584460709735817564268261376024000315936453570289055028097079619014203874463253000800719163467634922655660400133367842315538456600045521101694268270636078817228705900759499472616512553175972763592818439755525267788709537418810784690200950653011782718306337559901213269717237903482242167576541976777792258819474067616241778808857027298021197811432677596963786152294095058554610546821361052171131006755940218396635750870750529257601515557900906424712019637532297064534703226528463416638535967979511851840227271398428703719246054039715054088634639180440787415959853479084063252859836700513129928247434666395187877477505976349520263780871421584438378546854711429819566492140371439710247886411932464985670313880601291567950420370422723503936207202406277823597426269018927393447959039861227660296678770211331121728137575146646042983862457880439248444304868665964902373796275955927422948176097260941442219889334275431417351728769764615767498240032689418431948786887186533981664733343694231921647382712719207943486423530596955982066859476799065489051631819812154488013884894874875361874098576832711498632540014347583944120643432030373122309883712111903552506059436536831715498273050688216368370039821305788732175370155128250212149015633572834641609402167844053502347471869211647709144858583231064431431446612093848857936946260777403511880532701318006582011580318054232010290120817007048404171059002311160022904142441166923606644525246790245769173038529699083606518500461600059510518187263069745331170501245126617739948011755048527910612018707585972611062296127055878850035749056091169445044250608083249884633908066457061777979596851165676360077735553333243977975494794228837716495334091490872339581953250047825246215770953640436558104501498563630539029797121613526490048886029523289247421525612824703839126840707367798491525282270970219085384231064000943260585484757565244042182849087347471490396664626382231301603735978332560690383781813792314711344858542365458848028271359749598795815003120976712458975849076420470382133772636740069151116742666388741318137844298538935909903346012795493026525305603605834193143300267711817298830694816629142982703113692847590656895622371229301349499863861942252224350873584774713217576990870464801671826803699865091548855831639403192362302006517149864977842222206488111482195479478543082076436125732419781327776480591755617048892036666726902000190014476552993171248724139687686632823378778801963956901500365236271949556890696496850616515217786274895323020539166753729946958641207088068108459858594699922387795107179421531034482044583021890729397146517169276985507097370933963686444110685922887701197451256580744540839377984969553926786589080020074235646743678804371107178972886047779747132015974364134372236674132199785551574465624186355212781730984674274464172073921483448215656015396407231329396222599072082926792149362397584205621625566409873323792802813668537991497877905308853271795880455119041916757923126566964486914077079075804331989128989803989504272418217047092656671754554663929029620626904981757931503276019126536686980005421846395345355719022951948555123286240413157883486034984989359457082788734385655623289529294942003368990878402063671571339710786753618237059257896307823151268149726287356954202415267771278811444563704623393383167019653254736518747543005022518000599838222145405874812735059260302708480690405130258819974081133840621796581025164622765623581799583721967477817747057037632279330045938947380006723014865759747572024315586238457225995930083163779166229040476238812718625012649904938133427358417574745506498353922263331338070042052708869531867796998584085788668874734148408820795015423845793643049297585341836132644302687926126640687558381444361511838460755247675979193418399278400174158691315635832493312507840705436850208725517729716740904263341231427662437316200506507018801569093140736662809850545605935226607386621036141380020287507642800288606243216398106071468767445530333081980818996392389457776387168706211912377830507233941482544335821845786661742256527291339633392379238456875433532165853978633163409457400503394827804655772074451191997555544717941549976862710205901476022223059941350861199688240709797957695762642257848301106635269717737839399622546626727037464635562019394410628377597109614153454566674961684723904776144082346240857205304278068993651288940218777861954196144748792993547307476991647308788997718125601118831909128941827170285248385484741706578555426827121572648362334695044442830621854681832659986886433051073230326402212164893526430832074832249705942279415737873200253242511142211155578667851990939260677326393897040389132219143708156735156560643260838919157947543779009557596461587057194363679598167237015830986283269917879048397019805490891209754511440945199525579460023583143416095763999155283171467853395013746752837223542841667055525075132443253458664247105310720606112825939155907781655776688451600786161460505482987196226031560529401136926872245686846575455688215863265000818679664881697650873132976618234380959409953472109334588924558433619150579963523770850565049723881913445975731489028347187958416532837245726695835557940040726202747762164750279156082101529737675663947759627897499877878782908451911956432010268772159092164653372960435543680967980470112512379239617343206530501983287653363151728705686591703776517010438890547379274196304593445905304410698728853111545470491260312402419760114912760784224010241153555129095518089308367483936981290367468288458500945848692182836567384037607427628657611402500780647194445844429657197996957807183636280999338801346126388485024106933233385224195788994690679932717871002689111785351827303177529764350871652818339651009119998809136351047366406313332697199887982157224142285040521832413055645681454275681053477286428440066078271001594483674810137638739247450001412455639640680286169903697295015203762584658381305026279443415265678573890139768727348916868014085441042528117766494601456019261920940837715204658965137762118448845050592403544285564615217402973089723410305540721515537560348393315773141298510555644923255529818330928765478520750115731000286072255583516046597813248184215440402017336401768902374216117065557868847279797968699997576634567530471962585201782684100284895943559883636966415001776314785604838182260898016119302400380425285464004710780527288938884969006887511152849866622537616052485200823111469507518429581081797837422646673397872522464376005183944352500640137282179731881885615721845293969934709549784617505653738570827526065613972335011222940021868842001138435017450195992606010052254769311261170269823361344247612964852328605978112843390095062432615099113376161324989144888808847290211632754742781924186432535751317877546787582565075905855182293974903460604141145421056256464454611722704540513821511335304569525937468817230146943803940683469747663391407303054784898873260834370537386355448465696330486762631722455025668381874724113535567596387635440535709714227020973203195362839499786899071300108153045849390483053819606781633065616954828442126634624841995688125188123989391538210939259028851717991426798497023966437369777842136120230048929963775652370891962880880800879977938201095152963971786802387818432992065591923309820235528831366078552748994092787723558144286261160973272330686566192983707302735429929326879835593762639340581824886161227736424171912685771637540783972965005313325376203740541456733402898287405178747658543082232287569543759154714272179775654657678632666236448368605995257915862403478951688656659840988606382991029964060231185665171430594598192965048974708204888280182510605183698452967787693976705064535886050244711138899422289532156463961679139195293466955006320881920964218859845118240356150435751652339049796679701261025591588912329188013796040200360953710284902717839018932748616793781772268307398940432007491511000858720843669701355959725682561822070748941342653293612550469004844376131672511038370208763068759168165071358666871850626765953067579847402315811293094442217676757002773210856097666328921024858828672158947426446305764665857270174532594779694328759526865947805504302005576402158117253804415666510320897618240931721685318233620646009863125785389444090473946819240396460984852922914055179842626083609631760956435861682386851780559322645521350583103421239331563777968534420515147598571543959037936881582649021565123045714953896669269802523371515416514489354648771421659093099717053406105703900917560337768969614478585450604428984107434328241861500850386430172120256648036290707673638470644222886600769391562761498830449902350251149795521507557508700964939651710030991896672005353374541016073532146801990944298526637046088259454074887925982165526967158307678883392118052057582174366117181552065549366458950028675428549146658967181452571370665184737318314389654170713336965457024248478939433647459119546502276307435452053923325907205007868776911009942868209567314041264140510702380166616071040573903007542505357779651273935506438122645585617789523643565715935311298756675586235770599985883853412692620601127950651516987599082877091186071177972234295745546578892825866971587234284977153580517370362547919508743659998221163411709200758459298557436444521820224705792820323442451023931143361281458177732588146534848073686053392520135015021016070485662604560278104842263241552394962640158200501757457723864386142666465706534525987419601242522881678642881912127275162379507562036436814066727297428212283943481576387692507034696195404579197691827539894294469242976221948786205167333744543557293829334330218351918008357762608085962646234174944527770598557057833615869112284356507503846818462817554588941856464979597296420443018500833420565665949064002186272169896434768333493183445476326213951615643186806131880330660535004840639857153665241553186429671824292517370630970643108628913447588019708345279337785564297058372630970985282551918551839532126742135694735953663798533536405016961731737380386262482422543650736289431040821944075167853783377451291896092986814093467939433817883857874257705371449032045716380243793152141058835841231516253307109579012225753482373220194460558790703776979278996502732307435599105467100475273150327753188455150377604924981578813393952284201837492229846840988369939702399212902004570166203668828464910887064410624782210286252482018991646591314226671975588646248800805596603443440547440032115903428306426208692605990603637577862924715784034273418532544877283059633286166646563194778868165363451700866434730152913055310122165116809289679941710577026290905543726010072539371452055938016768808181859032453485754194930300600122809730383415891553167290971149828536743918542820711857830146526184735721026093158771047656327749393469624286331130895998057165126094477439481090783795584233224309053121677485596343746715950884460856142763273568418535168914639863375954845527244484293931522048410293407650002727708937692159396367879374130031109448308993240473542290775213647825202202861598785559591774352793852137872850734581670936417507009673455422283485319123019683916978985063436179139090355275063585350942944161868383727843254876941181020616124426421617714921614871331942090108533750713590111612627900981634503243489835128133877369566192699659705843475281006667690695549804266305836429901908517833619165164797578896324516028652211176365774948031938035710799823857245417452326034368792767223855017381019634126951386931529123036551511063795518543285694832830854939773078762579466887332755471262425966697578358817963422250818791733865437677796502980809443498352268499432590569994218930182258871539627103061775766690218978160168349040434396330920324203961001445194271990758957130344484874464832321593940624696072984936135870285795695814491968158651691664157475710356591401588208497627201381430665786546197424839452297671502105992779256382934886455120734612206704594820013727278794348767423513711469845207021892085735880273151409291900511881203157478666430530203847760897816368818787972603596353812669262816541172865440511690421996198896810305523507960171213658853117710149071129454806068411276617365194574226579401652311298438359436398658429555811913717569048921368250806832202637706943559838843646523673124987518115152848829231041975169158847068318707876773525334859070682975197792616612433606452037761632285065467223898829897537154157969371501190221380529329665289500792724618382234733608265723671797135197913583335647761879427519986966236843869009561433325568647831536756262490240668641379696080077998369078376275685893234752493501209167759342040232075785734259532241446874910779741690041023419650231472064471421514651160666310812296785509383614559360094475855478976187208731298163437037729982269226587430829243525381133570328394945902662833209391908602148609060050164389381140349043877625423575159629137267114523390654270074193687209758853511180482802499519234352477310127110794480140518139793798881351746253512898713324744193708520013458874900666871307708773629109082461577665978087449504733936244050426242156960129169689313225621421176774544256673336656173454605711568475740634462148283304358195280339958218143434148224110718285837374748009898518739416754820907009460035182188538883186408045674164034650099415891592500142676013041745762652572072953452929032339416037763814055528632980627892209933369930255451125897638690671192384304092425455469121341510466070963134869756949644392063146004744659243869538349947279440668393128998899319402920295797876694752684256062666141290307151030143911835373534297084871012683948696989577236760347636782602232892306472864657946326040793881297222633152111684705698652265451909972663369870219523448609796844509479506110255850125682222292973927023431742987959813510997493287319148118974981049036706430941255229846818311280765105754970086914669833542797768881281410150271037916114963502911095990799793040217652430645001658096885505599731772486251822660470121692031124817062311165415025885548694087341549483973842494488365125808738434985370643077447724183686668101508000800066343553408589814048819872396495624252035521513706673433233968992167975689213300257127192155338220106722598957350535165868504983244664081354837334422460717622217984428734269133625310279902636305802929007137242000175191791451858513346616320077741117349387398569380238461829696373990102076228503011119965321619217750826643744203988946886319267821578769091806864561520240654224929621073477171823935238401578689597819245878591598966065030450526320692296665434237536862849550002185460971055769902648563162875317648535490589918634820046420952999864653582087288067042177635023554083652272307492044631359769966031416252363242952111004886415830196321100776680618525525138786328370218389789423639730372399879161215726628328579273112151890363175657114717163239820728752301624766281176487106088342800594301494512043471538836653596896014606827129274568322521543371668237656509114039639453408652331677436185611432684700030216523511281577070616708556025855123123179823173281124247683337781635352171633903244881137102756498935870936013056956432734180708767875600138789859316887688371762634740682906739938628728738676078690338368969273717167487664503419577536041839109946090378067636585500402762922290219405360265119389734465028571125565757031591184738978055528856473863989174774692374798861544232421699594303296564757461700253892117807569014651967385791408440700374930542566567864816216703808458107339161346961341523063131608471180292636568121457797879985756896977913541050626340877278800947260183557159179923207697884334046191726801326615511470015198073094184309928084285160517187096094131510281320677369455720627231830756115749913912144436091723438798535487389282905048895641509008216298230450991395751501509388871101007350732064993909017251275172649555818631428889862053054928683522318934417392669745867232756188090546293928859927981622362173473305483970253478512591921247960936848043491373265713028882829430247022200149823277644342231746757085690567476020519261316914719749844436985786340289280409225839276075189810668023594700030959899544731761077140761469182701754525666223824037475469405786966642278415778111156993661946708672378983863621993306520336080681163694715345268567464656143004741609881406471143945775648037217017854877522365299539666329291377354479418153417570532747939709662563040380875012055948008676628648695680275701716632980101853779293452118874394067247803864667079891029316393603803219232879989556628085567741923333916033337137990213547252325707343522765756549757272771398311025229030966429368477018611515948233733277367179386224715035923656721317617617917262696613501007375998972020474446194186442599416278110521583331360870382971991081210404909321907620913207983064348355319401684722406598571101622896752111072677898128165390237699428151921749528751527649945486498087071161940412834798789178214793921681392928799255499950209310138149106283635787051629820792539995979417252979921654071503946035676435753703264176018976734772880258762130851364603474557074204862623281958976453066128315789212836411204753337823952131955688276675873465420682093578821701800667390916740833923786472427599630072398728263318521894657947813256987243850595658593858743803323722103049466093544304721480606873024823170107278241577500873312780935630857874261088290806279732422460244157704515444765173534668094499910022002661322525989226301953300660508467155844563516832233262730685721580441026590868061028089217627920858113314882891158048037346508494666918898801884331618960340862813129512978793593759280535303443516531854606152023087016989096295601215666387367068656384259354524810345970973614786732853917522481364680522297434801106926024774390651288016461382514598826851530169001896754974862569180050565141173492287726628876488185580972326410084747366707866942149866429787775386404438151121818613593726938221807482442603412457247062374903550221334271761000015344241059755870920538806323384857976892250685460059868622907230362785668410927756995990917161204003807412869655879015376826489283897202711285559160094541298040601968065988961200873924808311867197054004880412560142015577851710733624211859829580914706126063699082196064398610233839717476679373014717271834559863897018980947047597144133289982307729572345842900010542643278385628231950677498692342311279937320770598353105718467402245126478307158295774935856609834226350024048915043964741153758780830153881491294632646043016479739549899098704056148504411715470403372889995560620433318452698167778270440991040774872157910163955853035723245903511617756717146981734282682639610459108707717764960083890681755338807783379759288639757351569377100103235282104226845141188128080265901912160684958905987788005412552204660839573901099908244493518625585415030626100547292247357674939902439819483401669201983454469124522024398534972511984813448289407282307612580689544613884608258694917652753576425828017623573922074742975322886910360635474854466749082845859658788630696894490219644117130944167157396578798270974141958972758184582882275611721576412558667745250018716697559151969504122352873040508238532201758796125866592613299537679165114497526798995557906268497679649059630564713620985098494520064846581299086644818154757802225286227310749404122442225325590674774423486662578208600667682119972690731989532902613560165579129046981705593934091139471973910639293097134449032013740585691884595337276416324555909992073790225403433280848879402663958821484867686629841472375256548767831710920717575810872831187808809497353536617159484245301124164366497864510914392683923974127397770426463493623480286450017405811400819245812050740473269067359448378862413675556300330564141742509741385205448088217379645742231923113810313290250435239883880248447322933092308342957748696110960504730631338009700135263585720104821103786724068780654338806620131808803850043168576076783938448232937861321432456709437910474686053552318303573470141818872549197281160604190771045572904586767077487756551827009465881233233446237623964384171624607651548532791946643033721794555834861135430442972973862169706152355075281787224256273094750866795976789203032323685509905727739581717441910469173532143675577864595072195260123245698423234382148729940186653205886044189159214919860007593420332643269053013377508004069259536968912941221198830690919589106392432615548054171106208836020767070816920306979453809702222894458011911497683197982883286140385847796481346146323460306916260396922072054300591908728324500284026719158899547237685489756694976795435082374292645004093776172317672403752144526154278356686222880218728784682571634043023395968363784725209059448652819069454958519850428217684494282904739657091589649774433327692764592198445954584586353035919698094920334187880616076992654697948844361541241285537387901922696228137924263341763117981827327875819026861869317648520768921390462772270678018005353149005772806790355469838302298234615892078146748549076982853874612393102737620148612830401115774747635575729856742384748870235130810800432646646935015482952068622446366645664778867135090391810337751223851305176204139241111638932333476862121124175841560821121240540165876554376029612127878358179220221356042569035037663986307956479834683456621104134107924403773266804016073177929003735815752686635161759991072319855871287882451433790173823173203982016427197948078891251638898957163514964254519614863436455232094149131089420867347205328703311884362998315458940322576689074514228174910549837784994744725875921555151857412314520782657344261602296171571238753357119592560953060782138217042271985874497984848595907451696477442373722273356248973798118156829240666764625877467704061495093793896355852139701357961352677749739961631512061879852021002984202493264677887389727663705760090215879322862228560416469799857013635761376695006757413737622203012632605242538591078691650415099515115165158025580235582229683669702636382923717056896555021135081404872130839264306281092717771161822101634946883778131077949633768920030003495668907422081206943654711008454784411603806231211532390494224288026707113226521640054889074495351720657519457112477498916004355616860950649095828833502721417055279931495690088159654564064136204780127437692472211283159927276139006634690306519135656070978920930325254629247397402483848808989351420376728715908955706952652125686287497433102850002418080773561033591023891143558036404290147038451666228988093857417088821433777299772766399239258864581751211797713692522771393192465233648904470480580519439111782668933527605619894417867607060849734627562306274595200380826773923869002349630282647127378677128329898181833063719786695064423242800047907438793682120770424218062897857779133338539389660259427110790350303432760520094973871896621783539550785832953417220769028252043363202940141377566568421891511124466003394154255277016056677743760096244381026219288384937983378872179675188835750084274806868842775168664645183820952234509826883794785506521535466221691897044510083629984590496076874480174260715611251118069863652052063717944770388748390648067133409056920037048058105287899216991149724964945182576796108948187206636406409383502451844018298213991913674558789641639758646980818440895609355661655337343862970024325477228508022562098203194500443760290657167760540684497358877373336410367149959217305903194215206526899828833433539883870902630355954237429147420255174928273051120946168498971612464638341369456368593154424903030410990432687517390311366119830412507467177321015830859447785254187123578424774101218261147690239111450062556595826114632174209471847606844925535213347561625373519965915424892884982080725138688402340788590628603585692853745936369722306821476188449838866694954373993153542200363351693623118102160743681625881124702429067813895446180922498880853068760462739202322445260941161381713831499663709720680594881572195384759842033488691451248830022103659631326133126729834258718072722271262410804115231131813143760937782229118895407128341631244993269535564486465875957298776643360429585849757308150286763763190633605494219535596122300936907896096567410015367760507932320279807829210134045826909528428505161931948612233863683480514065025306320464491623543382909727413644479819645475237889896829811299750692326964585612265743652576437683340693057130037029015863916244578373313929067835782620598518454883085497952188373502933235167309279057249854708243404454947801615203645624684074209001026612090852410007946392530815384037686549187271381972162876751740909001498036466495737676368782346082822438577197517515161134336577946688079109267465998737848869348268127339020503035074792438840329156439105533515132155079721632212413995388816853952847734902206780998597189148459344811820352262126595345373123887755173386842890749782605538597967636215083491019558699333709676295558226051745745005210689471012801112121472225105551454150777651952940471196942461726487526668064193661133163368917414580802162803619019712244257275661692964772523323887168731607138968693075823253298041279316721323896226662513643044168447017892674771678067856049681795014210123173752960335050030897236653493688936921314596158995723904274316267333956021153333313606458008112508010936940365380694708313215039590170026318856809510070535578584566339032453244291064177780518033338225392177769185912722469609859405092591182434964359823819855037017697306644667223113838957742311971957595748673203240366766824817113570236874588327171855072469696140528914914793206047163192004852622490644538822049143544817141125912170642756824584170132123302128677315293638690902408357754704684033464146383337116819355254962158467818573956145031001083677645813460347971308140773099216412649576432232666991790702876002875551025721759615984848695217080916837309625554442156551015440626716979224577711569842963764210747844726481004246388649361693038074564744458460973558719556245430004125187284509567285210228393085607015468893174414492888256811081684337848309779836418462491211248028059310047419213323634517749035065773740894273897759727726943732213404775544626367848120415669554890661376364774433661727953879380716717024398809802525498856729304757188913257934771896378620686211695661672194841553277204969271215944517920618754219730415080998027694895776326347695498146150109755756969790046851412574131946160075221298694541500572080425603531080265706062639423091667868977422678089554816542064553283415050259283043108556975124162286348575646930868242750041825514258131099906056832189875942006294688795068983374060745799081257066276420328368736467959904939293806269583075256256586480312144806368042395271431371415799676645146148644390181528072037138036498472937945412213335143927275535725525149765203560957345917576313872695298306694778013153387752985903506758051124975613720859213642959009320254185606700994667088814351723125217581744098398766381132406105966777691351788280770626462811017577941782272624361817946403150722037147637609638108062011862332529887157657340823662747226596582565123594922571186450215644411894421473805594214701736580053321898387161946627734919656894245688152215414281836746799969568186539683258708634949273584272681544311379405314014854695590764143768134821311182994024663003590213910232670855662553732778339564161387525097160884656397212011097249028205115440782255469984856692207548670915184613757880710441114047189436956473214097833799663750325846210486676460030206505697548648508926267876506982017440731431146650539387702410151313631144171456691658557856484997342145290016056285058709743500897810149157782300524227388332786066846645573674338321667772511020683063465955926499852741392863188689309754700557138994972622360723003848080832059739620499105819813166253768123698448409608377058939920243897226906666663344124548933899319473471236767235448868458897069734390631891286934986019263482701558590266893073322449827483620725648278927157535762642198986068773940420414404644562624713428254130570429329431040272863507364159069898446124971673467786197169998846574138908101530508797952574562942952171891934186699865365222023333536958859581554766895609694869959378497609235339417271295349842955165828043519566978824463956334993391515850197853776256695665005427961726625867120287807092062874034562999475700864022365018765867923772574239242070975576697453944714446531290894365438442473874000483742796481533244528442836715584097140868465420127640641288830452205074394872424639035503082451593033262330421214297441433596675098966935445180873113070762318758603098699324693480086101828678119800777657526335271716769905037130258335172911223819677420487710298562092296975119442644922260750877965400408326203869313038589710642558959995341497325776164883106380421372218738467343049199240420103458898955109214140452561966255439503206138322179672801412420421011484081059181106824623468356130081670544473696617874661511190336819589982204605215878185713723700061500230181492855496094462854706350506714631146057547287797746608338249577325465514742754376193346351373300575898716911535579701716141282061611707085262082925983365269158309793445079634223041763291214888585221725237372421890248695209091671550841720204952999724923159003845363015114114457634460954189866152297417052674081481516671529061325923594368005950583702449398595599415754886595787733993996247376373648866223054132572751305134179361592085841592533374347892639947890601919169140762908717827463131340117312564712031097313625148002752360892352276598673969251245892939387518910310961088694897714571926568044712280528998281766975427035461921996586550305525953430333549400168756908433163648308807741938234667204965060385436225669134957410770159622660940330312143199282986260888519140269884534607913594345289469096279189325324780364537598236353144105002279336246905017883663761907936949420831163038846512937339862072667437455645922874988017711772958354478237978279607463528160533789016733955662222732056572793000712552402283600023198449498748164891813372867700206069243710425051457406828678297614019757201636203452342410940891182847328920608293610020697358137946597710466402584340609485997200409557767779246519815048523926659322424050511745326355341057062643096487227457135918532278297211927686106233204223784036301858762232609370880857306401487023838312899291037768455465786816549152822795603007587735168282122893117960111899482384579030255864444449964766307432790797554897226548015123791390435416797792673335547249329190217798059105962691820015681809111867384757044806032329027042429493872764172902938776762022050401164209269636628837229266175190921901668521902585558090349629433723645590021838728915479889541865076895427566717277419635775251478332634230834232942103810013499414410544370560239093195524807542775223664465118391579952578471266471746024509445986486556325443533915193927751726246190449174060822220069691270099418427550891438629134867733161731376515516129114957850373743127344246861089976268267142703837075455226375514360450470356610430313495386021170972394120455422226316966750241871961284348184398732629887546663193157159142451815631111688783497604507048357433757785804709754566266944986379257698258530722934239316232412606248104810739790326160015448560833372106532673277897847499047834562974495942305159551306567393922869312360214502037617946995147970052262844686394419673988732491408099605065018637329848635356646006540372478394874829474828404100580838144235558906737357008018783565728210235280059435535014948144308153806454039188143217263256525621484429962363679600370606771029456331588349956032855508294986046759009686251418155456690794838736257941425303314280138701059877355840437551639293737269900896267089026739438171889156988876542404389164915158030706199107873228304026214048789992000900296794886273593588666627526525792710391432175833920783620014369360260658548464840044880016457877248252936556033645185805966740501165057416549174983512557019252933384035006666484187585737780754369189627943745383431334214740703697398909583293367237883774597623950135625744896381528338155984278924792475721854689617931535994469404323445383831765075014724835111755969289294261522357617863964399677409616449984683773012801856831787757319759208999178346575492226232352550210810968565025551556306987896501790431661187612474354299787978606669796865476144084357230825006163148135997986493782486317369499600894866418782923303113750405838175915008016765725716952679012391042145091186966851724432307164249618833138993721105536148189980454003455723372107283675580020988486886460608087213948223319311575247809768509329437517710660707557808059105032219061249845840258204682801195691663083348735029896781984228865228362930776298037300370014378155828389322470142605867993100244547487599795917523910838574453963061925358844766432319492786698945694617966742570194838964433567827145388176942621756465243450366404777666744592781068353579505095475292746674032241236919366881188956533154627613518504652993936047233191200025780368672689596623743857721195050821806852464769767194595490027562255224682309888201421521408037037271621930385900398478479094049889587798190534020168697330337619220901432703597476531861754840588889329492218580085047576549747664715489932586572946107348342845314729901879078368717354681374140071737804804370107508763635790093649975504578374697369962580263828759440408003140274651836722436245931973518451162000942191005133620230460206657144452141240871827081475795820677541497600723006118925265581591016837427337146626525491100470586677938102711917861903817818177727069467226721187352674829511736548325442045082240092136526860152671522785962157668396590233749076243047126736406801202682973005195540379305653951868267364301296351360359966866156494127886373731136713094197258690455177885204596446217208996497652471585461849145712539724159640920126567896746214222214186730854995092721632691867696993780818033855519424878042764586384986227880675715183580082351453386380120829245623365766316752714491145122202219642110032629294691878279017119872995417548756850216587911425106726109517195840904796674040814554342414321609912255502921662330607343147181381539870137965217157509938782071285767531649163305912353459696962838455715438178855940742916684457225639580295168841895647355789816817728262082182658171925737354332968162513090700361113096951724434556909569083593822260433002667078960516942408659566344816015369544979234098904073930901945921561616228529339862516420979835289584459080187136435967462237892940151722173743665248894446356860714890526258528379610431360034908161114557583629946153442796398484395951194699181674152325270018689440107175766907690821711817145181480062699846085080051536233185503128497130217024986399815582628525166079493823901422294360995509651843171226972458735251725712309425540010986530883487657767357136549603219495594096667186172182143120326999045442163041801294475354910306825558774217845448736574729494552625017130247731395757477420852905158953346926800560123463801911464424706045638735673098112981147740495488475067342428628774197460014790314931576441832306371865159360443014680915768667545207064234744483190066420985999849058615523478082413220873691558356803193153133616727915750309100715318239121832731299757940312373119216534040865978956581391894758825378752118792030474669581653462870847073195088071070580775955162526760904912850390875243061887060468360215441028545469330855052363293108265804707891047700026700021419508207488955833266345688422649936156049531437980731180712429903917621885158877264043528133467532123991171258088704715171679731602379415776140856038586472627528430604189431794381344746733343389970856704897095569471042791077481643574979540855026325973514950842125981675905893617730253004308052178996532662599355827367573854364832848804489948541793741236130407829390525851611561131816616234585042513290943182124895710081482206864455156467209292951609005201766599490995178582802204897901556459720669999898637292459649514201066573776857844235646401593661041412544567831943500795750860455364518603947808795093794242765543836728075809005665878249601376848863583780857978402269536383642558728879614503976797578442886376042714789274573205493714642740427077166562624257022558095886963346477495882034964115069562787171982392419277311777021222342004680084755665734606177184482259755712753901958166676079043396515759570116154754000011353229960094206767753146894569263025555313256074961244600771025328573538428143456387380181410696459784948526193482885581891776019949872168059595041872871425020923650650905081117443737175061998997848241670564071177197766587379163895558331595834957939243024091742272213723928548963842743477875655437448944554695041896789090617253038081435453555768922828385841862034245627142501337825270608352470681169370581641423700252590181693761486976102748813244030783565772486881152973751761664525664719231832057737447698318842212570393866513178671190272655899734304689137117554097843590193975141338801239899809498631190275861605202412276477419934003958167070515127649791088780698580072667353807020460834246015024435098111627828272639773721656427251852789213670288334092835368752060485521165966701156286291935329799993103870858534780517460560438241139065799012437748612642488356702042977105855224365648024876438265405957850419488731790120650701876866064755102173066928787725304420859710513564295686715646497096503658817027934344458681789825156147436995785727936135916220573500005916263690177926294871016564441244177918702075719610116227237652722539398279916116118515970777093604105489446251461601416910820975450507419963465721264569064285182091899310496914698878005660115502486918439879092345524904026557019010928168814892234723722166469887663072866251420820354445788651550465019587611662526545783059982447762582768255888829170292521420316736083653356069928544494575934519490980665174045470960357257390812127214646167277000682521460198427176384990979308406136759543321555677847565358648655748238703140694881283759977476643992262661158199405499636593800860233614459456231315962065129015084043438594574238258997902765256333013961476398241316671129870639048660060572491448964252771358703141393786784928517806672616086635676613409571740200191018056272176009953885407763009747543369710343252022114173457069649247597920112138081212045100374612809985472637765113552196747216936367688108733351956826113957037260907601617106622605526285643936919688632506592555197051260249135188554959114912513536631069647416580036224035553355641038087484248565009482000183943414696985689393130396907684148018358591179248820660486860043825124448051968415771644432710907196480301441088564588214946646799387355256952889698879034475265968075667841277948097977074328279389848315696570346324844308126799222461944759864836619731708759967621986021359432997118583632142281589387485983750315728731807072048621250623800531125009062823622905164942311050654096655773958902764322388246233227477666334652516698372853445215957698025175776271891605563893654398339674109564179942894396992343491420495051639476010891478590472972641834380716883917786361802121385107195066926266432233063570130124841798798645227705811840115696235448422708120194191724280630438523068552674126000523591149417558713173293390069194687189945241317157184270521238839052666642871017220141789811295187841649618219577284651462879169941723621468058560705063671628060147134160296795317855110563640379719649358291327334291300543461387614008706309249933980171541462333788179991964727280016472666563649112943544785651450025980730117664109197190175735403670816602720641315247126745973804597007061554266087825354098787190202990214095972689268673774299293482066820620810865178925116400499604795517571092660714823314819202350173212519969680249693564670788036881499128180828734557937028434250253365839603561465617632855662696761020986056444474099225483661903633400797386062219125492674797244108252764699712547887923710293832411051766185695625195612676343846751168846481074646892829272383494174583661281750018655044499040722571572933826741802180416285325159278133267911428616961588114104158776058130566742565938661584789473508135629748693518651105918370450176322005419322109365479567388720864163276539864125404278510530569823105121098698758291089114407817515483042020957058025930083909238122607958945411237815491065134810471766009134884906500183580935561436969658619685878318417728739673368150207292422284164972011213647730191575819841129487522821209827078618498516289547466828296357219815455536653227858587281134145410946909321855291414538671686893861715821496299220247790213992908691020008865332576516985975648896060228163123920483116077291141014330415156954672664310004952426122451021773369352321123474148282866816106983946088016936592851803187965570062537455334042726820134241421886838322011738467861602019445861201897197214322780827909592704779060488853492424342971169208076279411178973079841963016957055306741568676961058780934313906091375975202875240058285837030064719846320219320950011968682929544014516670872914412266696540316029923105041275097608570546296769594233011461859558345449215892779767635328894209725305878239116116407365033534542773201761509334438924582037573293386349518558102481442090399846220891637802026586341687623204617080186721521532248154570352861957761841736121251793211203279772129955710873917910686765244010016187714654076287193456483852274314459928945219224077745049569719688827289820818193249116632020639217299429430191388705470877700668984585051115460284656735344083480093110648623546714604693153242250481800082093570646747257236750267503534014793998427990583582125371527260239288861671804262805920283475995884941429692242583430327438442990118528461402397298626919786520082754726709367685923289953910785656106474820204970073663425924859536881777879062741647728985793572166924141870536772490612438195890526105797463287159252695787089204780981838771403002558040690885543758540120350694482388405303965406447158106427484621150606565047580751834731926365973031414458125935330151483304919810835950700888193112043123032340767090872652695898295363604203359405627858359901910009628148150312951825525068927218830743304084190615495441825684700562325015264743519686187272428213257891199841399929109658990297758873709153992303372284861811224440068566577786830447913420083998493049951560710537114660115579929931109927593127504647757423353048515237673538070343535541197423966366486989155334482133688109654215744327479169735708309579891190938807270573636313025941554280936990370354686513023584588143945550594848510926281877139098700605269356379397840736648172631849618696143545270010879744390808686476341065029130375718295778541706728282663695704163188198703321576900751544813843538135887138881769122509490899822085946549839663935098572145116777273654490850386686762430489885659968231233447356085286209866570559063577213850680168575450353136546339466388289206975862796538279958447767704079506086595155825339296499487274565579896614505059813379354140616480114308846447238667344084502382718353120428012787262924502287829248248228210860340660036816317674529905439650418613025389763459915443562101179294588183789892934836630519147520205223688673164580732928463068990576352650683718540433086961934255276148333885031211449027832534504779326988574099356392926285815322852213556536143812544074475309456887769600896990362338909298817752991589790173381758705332272182185533211235780529823390703748613208191390090812536033519362072483068109697058322447797400839295410958843389635865800239832757892281747485842691219849025147019583191103016628612744614948622165353734402984463912083238197719195034221176637753038572934768848187220741867650419351186650054225507131476000424679188813126753173976880484521916580602642951535819976681361916784668468608718275067004114932420292901780637357717625443903396861775539662550282679771919389173525593181592624297381854950669245978177147938836095145473251255766122542236802730082173810264530357758347730431414592708734985527834062319758787025259676046913357629464580036261569473029481919536688966800315282181331680137330606980951928641485509438322813373731577078557704228542907979739410760634158700132738858275458695330773169358280470748134256110055587090467207889921916763063514990024556041804264222106764413552706442104071178046017634549082861342784889130171946625417926119856424686957174165241986203053007415414761540966283247652489990959873199492738972646533345890368903267661745612070365850464095609105207067170061738655672898772619481127481528755515655039763886765622148531473864176337874492167724066951318495916842953596919086403729770038808132575933969776932114725196670611098708526593666963432348197714111699031130393541691605793067456712360691783796624837449562982392419746557126418450367752764271300109920856630159161913765713918781104699081496388333573047601384563151932950855946412733313283575742058477689551778481759515583006793666150902799605783607128707090502872322880096322067142681724907680161176832294314742857464504237056799981448775325982443759358838761450595127059272726364695737175485114581242457870843130401307186927835793062622670754870174613461808471875549182453889189008730590872395116799841516748879600655346431105370712950619883141396525347318788021515315207321341718461854113310910279056668113831214687292169874614027301355017893139378634808997773183055538696301018874886207283190578502314948428295252489865005979758290532128783250817919642078610557546727889828578589268563219937102166215582705956954662639915517025116976773409019330101272962080059191148638830636579226713559479020976079264396874111509942027390072183259241449012264417322111749054340355348661899345516310933541101221319183817068863646651641320092483472690887126954789985641686354332404845666783644928707745208676059315382030921666762592939403153132816424060140308252209714288328717280355662865832359885273261636895901060521054733411142119621908442645096862358777326700127868017390165299959426175003400573332865434100144915537905716735833973203238232158422609219425676247225737414428374040119062830965357127719549790605916710343497129427140132655805483355491682051097722354255838583237924632377513270101031364934228386309400777060153940156697606649580921700822484522411664706453645324197734597062591053111651000401097286325892267777198200238986441481327582629342363269093436183359940848747603964411638458495507904179562476863048553054497959634922021088817612381273630882598043782643018982158336916492744676301175843245541316556637273064921147116623010453474434082014774216504087202671660702379789377801319761078866860399282779336388426552282442830917982719147506485133452949379516458705312787447873524964229120032082500596702748659998112202921742788839058329462048453906902066273258061588759965177294031537245657918701316516582403087090628474006609460381515058619148596593385766499710382006674602762339322354105261548404698620916115426463912789802704447549741818905893981635105904368062911059130918067225962890479699480873666128288144744183633004675981292985537236158854674840026215497864326998011173352532044843792837613837119776382675202757002791339724999726202356423804998095928406695795002664712256384825935860595262842178606557103746211579070674156305055787115302732036743609858939407958152928641900005522353944240079739351692164040689036949568121648014252977384751109430927461460231279538885884515993473271618197765567081412556527235887575151634461284047681905338787175168702733668082577393472303909972357571143521559520449569243717262569398734644521930494102801883295438696355668771938936089901152005683380921399636345714235261105880706031703843717011808369008300562232220029804123522025559739287646575393152340833985949987892618689971274230790990445400182098158613969144208927721119072961730958490282374662952586800156249640111547931643128742967051756735850902270728587445985967594995207042275513046890821402418432487213996933788990427868168991116068112875410375884475753255109985642259060097917139975195551955105775372567489685298836942924287567095800050655742173586677209807632892346500807284642919242236161676992129123725161683447383846219412958982255658877059535042170983304145291064937515854326950808181150677487934354492434848375415920713551719792391346334969637581229264186796740961616084559884450136070699404579761289162451650166091767690546258745279597821693390450941764845847226508905269731449071279437792616687252215199729882168704222767065693610208055240210657801584982103477923951568835521298712553624528028679628822116254675177797247314350900474003133708438065368317059286106482123819445576607355817737731379392834468487924972121365089295101690653106791186679970010044169024201663232852487673877713138051034903223204460280768865609499387381671550846492645483384414671911057537407559024797922249297231042090601571914599564205215536872906392860899466359108675555198424920910837649287680686218488071731625159862320430955110101920663855027176873617400748999183089503896865865433033183768139470887139013479227410477256585409595489183928432028761416696166424373808098884702492260179068811322064380984729077207676282477802327685450138288414551846063620432303921752802928061885076208079512507406599617992041493079858660224215063765974381405504238128199087870489008450690271644678554853756266316718118075742653297244176562676116614995254420151204971585076949982207585335964575407821553800274787264475442166173615426302829964332811292499241245194777689765201320129932427854605802636697951230881294382951817103403451418145918995763550481259458938484184913451500522856085665362906156875610659090824143257506193109813778393977224183533864963535482357627915293260932318920943914264697043307718514666836766709549636641270846352189811109806146538809547109487563484381102508939972967716486330320295524963162016532319928157068558811754786561715679564383957684180989631726026456534435197601667557593106321740087253570205096115190538573769584062908862015575421128206346427298208062368225145884925951141708990954663912855021137806894347885089648121507445893157372241707931696143951338043464940013184475666490641998712250412497065152976330893635868946962199648511792691121876142445709945616347299819670674281086272155596215568913824932396423075281397348771071768465721800999507014965685046575340663035932314067481767315004320834706231681142225317278663224596646037205628886093820233786867152980378798442145946750096947599400183931558397342182591570561059031847449327281599732461690702391947283747332926254013910052617241363316154947295942367964306802501546932795698265750271468385341644056648410566015926596619427646591781273187236169488447516825181904759315535603063390823179856258573751312408821879128431302192957406962719919752516739620732502352195934595209892907286192223742328201303859215599639021914578385705938271934289888207473870128944022161002588709456760367379475833249782326517619780637731931633272838993938293112565914975838150666914813281072345016130126427180673584082962758474748266165692820888170001616575902531867812995955082917183143295779018689950278174536505845051754786311241165218360020199514348651866622003622835857352915114168583108388612951078519103400754943783556000138538185259480174112223837991060203398696013380872642750549371949944060503934992328037013443196739512899109959176914294720098919819852375138094192819344857738490323617685016286541563372286290708801849944217928790763543972621989792416272519353825359418541075237745029962207198301270653802455666978581183198379058583372662345131650891090130200006068019930822860124743901194266114664053938532692415520624732925810384595960372077387671429053096268829363646239577020280458447914832523223506059460063129148172701629390918935106008746322022149927868874167328956951128596414565376492134598443812766294254207245107844282863471183894576571297106598843793492640860519499782486653519811103213869161690259445133054607038831152930274148409910537384653048324180431340861011570437431081759226287448158134343228778999595614983825105071290616756098373420088217300647723680134592368834154763433835149811820083640985798654056945413003426761258084494479597538150721724497751703465231400087032148125409118724562192883902123742514116283230541318688813476630939456432131311606708662993219823600149725613845549183961871854048513209336653583380966394477707150637231659066198762243301213325801561367991823995645547112361255120237393245546301652861693735059883230910645280979686390499749132792653772612677033746606210673326829036863259134493781717696673027772783054841205589625967794319693990152303359964271424648245891022619563293365639116808914106167056584094601175583227452008195768616222273495348636298484023166876607123744417843467559988064297309162204178052800321327336512820161352293973691176326926405526347692691281966764665382198731920701140850196573169906973956593607298793266947193228778807125630172107526276585851098146981872904387428926085618105584243581690503231344218683625934231161854503167646307927465954296927545787338469425434151231111420079531355063037705159102162538831813777508836696334131106025762931397978223639929153030615532504529145699190513431318728303236305131040391569584267067626641822181052872779216095751154033862865862392110108690183337310089377609177733338732941135894327673997820894942344842387928254854860511250788725555344664167121270711834779675090024260707435598952063972116227423817443976272437624921352047515536003025258281755582238809675387017081552817878521630539657951971194080664163237893315546565589520171485895455125754647977131668761135542552213243157157938715368299353352433641325256592105617853505088570284068991262931684293658724701213967624825366539782929572844598703652814133124240467024580736194651273607831133790984980771001185534926087048800271357479541640209792428959792312824184231028941482846620961383867192979096634991831579485710035202655811530322308664286210711947906646304687889263548764534848796112263738995681870506685181085133538409259116163754264171401638506490962658840042910293799610118345845270248511567629245103125182126195044246807984031446885893625887493968777033670137199174284284356193779108041262765973241338902872679418738233116270905570207698876294943506075450682442615107693530367573604708051550447080202749761560693861890350137862848691172404527878008935615183439201607620547275477194564420073764111073893702834406049177182495456291987613206728465608919563568922276590420295231394478782938915510141901213457308227034385611244295491468907336865956958066722342300492769292569251873628731775897985016732278731801430930595646395943673033603497823090627956825372579757586438163582182725299168725305174618892006627471062511636210235356246950183225733120076614108282499991488265076260115105627739536990617219886207928837663493239296419440830480409760343401689928457128249002744721897145520232892721919575421897825668533015795962432843730151849295031269244039625212809284583660217603481029513781874135400487668296839891205915135324138443992251032732673006070343122516165807887326561475325899732585710006031763203596295091846469932264689268687878797219733344377698750387510929315814799503771205446303430434962572868214676336040619836383363295171717489242859542682544412040714781118534561671586122527501237217499103357015692010256849517350703555120031188634879027987618105605683017608853988651687520629979617471427063597631300537914409768252025701853220051297537130017742830601879005771972308143513391260837319963269916912228838635663903565418375716827976303000148913709037454929888733508477509826329876393971993795088464196646004155228789513248321123097321351566131318279998270849508080212297227077159482123269198178751956684650155174101682542582292674993646409207548051482303044244201189900903419561660036570484558487063671509064092028357046062638661148882410331298796731936046829356374869959265549220529824427482911655872517527849150010166846178567464067250116455203753120894166472922684467203199497762278985834739783289588834371022838129155642378942478838936374804497722026474307261713364934876579230447635596603365819315312559408402635494196765941622365576003398571522267684304832657927730156441538187026479383776183391503611672869828223780699804093715865020297092258066727966228745939019781937826072685083887095478995235717462922533004597148653320157867990384043905530779975402607477163502367674057805991193606677629112058892158283472551818759454154819531263546899786322729168432108574717992666444265379078707196186050552935083683308193863322064751061561997338461097836675080115095641561341404977441530594516662790674609140067624946050830675169627159483111687079050642548342425862402313794446028691344299965276442063640874208439760718362371114210562490419572621266010504411201905739153510683896014943758432742189240564145715172022397991444821437020639388593928183808169494684478951986410114742284984852317311986501497378853335453266640913161768000126460815538441231250947591763457395941873321715205409437881570384991813763703537404579157902435193102987143597996605490034564045066007026185380018069364210402432746273020615611286638156046927067380677001044132894718512584489217666232746677604970104440759609145348671907618832406527161753430442600013001559161835785605166165906721705955555412237176514582861501554514954090473150701451093655971119397945477335795520645047485357151427993530709765881306167995792650412933616283635359069784128422633441240054028168440571096610879996593748547542954870796598737553209714233449308928057966691553978964377975253348368142812952867536746272433510875619731717394204736846828436643640109617635342516193496617607794634740582290488276750523677242616801210846928339636780123166141503097265404033154704605201756016108608390430461523832023631933254330197496638296843304818077742125410026053298331372510372014616593094937610738919362566218633709019731298375521136369283973689620634930883905660865484979902615049775070280920301495090161727531064479347816444396109597306095808524333025441187401126595544282532507370927472881518364331174659290507137922905990606323955561817164980790787973030485685590294904892639813404360807559765766819656546408860938521756123616329491989114235919774615550036805402827383914074235663085897298430614146436237450680296123492648811072843818218469814102974518831925847349872143152196265637884831562193467733986694360511057844709495772670112347717977586918970066618895661642191167897275730732004450058524003036359736326556874815379852059007035047189883183676783961555330496434360544165392749647566347922653964139910058423135682574930612429803974675812506813304682827177898464960107347571100767728479749929127104674587638640874675988632487658248156780426287711472277956723367110631040641578285692204917344368154632787743717263786979010597159758176785156428204268225685485175368987088308943301282012517199952920678695046304242611528362589811323733853570691124969112556140403088438673500344276172010931906397082136566477178826142294075440372062649114746408395971276765969424141873563984586758025222285417710275944393494924084558877202468823052528963640720013733319602476588862897830688804850177224760342658749084894170752431958445556454141267606916691111240759786861569552260788850384363899008031727775074806094466004176381926177058284060530226915451903382853270507425924388550225413519061009391425857067698930355325587339892455360492126055182256869437850767346353551221888092656770597495410403846664114758598744934038158410171360986235675557940820363755580220900290913183555142323433708932055613003942305587837148709096201395229892516293212809505829152199173496416446879061758111311501066371849329854735692388088844246787573005217106661983611758604625434279091752379586041709812881574563256682476923516152061369215829135601465454847575149644816098707187954782721563790808136911716268555298181066358029933271923507954784572030575458594291816227143262615494692750310775013148326738535907929836300182660768129935024616036197579305563722186370955974307092774080322395319798204028716128820501821026045192212586686301560960181884150927713807729971435635596533943239985998295013090466410598636902230403498708137838407856222928182883948426683087837413440825448671206978124818581801066160319635129179729018411140167162341164157308181140760458316399723702543858695447025253022204939695128148632102464533642302361773435295741654558913813072060444397299429646023588443557031764625556524621748440978782064090405873740856354877951382074223752302128861750921704086782769325010691079151167488301293399468220726927525340629479235222032561941854899881955513685521537066113922291040060094950105771622307739376802837978266617746456476266603280236409225230449187229284562533214011421081446660095422736008123685523535097498165216692526558035756015877462668027688967020116853189713973601822786936318130732107394409463281723779446949321302969223047699857662661523294810230036224709682431218596318658020076586462380320283506576126393806634438189909467912081871453330135667660391686332789103780914065238151544578792646451922028636383073014115941950569197335475796936203230596336828730929764936690326713117476878813394332534476018522467627955757611591469000076787922226832100745277350172899544909813235095082340451534002527148152273552062493344923590223794615159026644755786338474643507773414602282795259066856465411419990734650208634361579068687881028567071347222820918936954912484312695244769629851629101424203808537139725478095506765928760999724499794432272031458567830066461638090240011164393359488192318887577508321604543127031391475608835978606060918336914418570087624124532213869131764068419719077833375434709734863505421797535283857807212245734357253373943190949670331540027503991325399119087934331020153968517396776671635633450944506018171024305781095487140187366647278776959977884877277779713905327233298977365722656564120732558380286218126047136031237623898724475095411103779841426737582799210608876409689651873951111647532234762032864263294854018087153270268301468005279292917032710556848866364338135435860270321227978235383376663907540954580171082274794443094805013080066932087012355276052607850065502043176162408844505953784221100735052828430592344749077043776234897948284764542461239485338279164097749254922123852905258860259270204759497305051680335469897249010650044340659547490129384083646996287160582364440697930471659676387062999325075855309076305444390649483621923315334751997269651100753891695627351301881986443086348041336505390841751552740509277876297597226496958336539707728626801968981664578812405163819912037433367179649739521966240743185110886064161775138943924331299733649562393724186925884391150248636863070997936231949872935094147233718438739244768869474036599432465844454125601566529454951838122407748873417985970020807533321914693491493174273866592552904347387202183831898651684901792442514459700101877209075950997901482576576155703290687268343309586806692802939296266050948793686037819683685086691782326785329364323414228784966537007242908748713549718793536299888868256420987053073645433271674550632378376316138534606508343622729368984121186015971812783004002303212881405139061545090551543022837980670850730898617572890584085926947417745175816291402859485523971227469373935770081185843141641492086026783985680143937320308576966094032997962065155825871954575680910035020169559066990702735235507508906882694872805695023431421711040540905203356699259049272840186908605923177334112737179427746748670955323412491944031025173755323875857187094027529572425815863061066685242067552278522418044859446854315812835804403143941037020571082585394424768320542056075221950192100993599554801787856923533162095726774852326853170484969250928455432116115653149301173943381587891607103678073597151573893674765539428868117589643360494312716624977478496831067963689058834072757203680225961174574329266586067572606689685519058915663577984968375248665979294258195910473024415891526983799966649116285137684741921601245202164491376198913433962915580857557240536935869788313426633460486570006049395673620516444034131692002266038087363435271965079863785945924393639022531654162810151305065487204312209613240984391130528932754851689006772829933688586316905908533497795719732943147567132440254013845633715291078562300943242523437933022963707136060855489535136146817681861944590967379678088053055469237953619134595694291741612140027052882305603778899265793392184141908618824292521236702186083549142379362428099521268837806293911552031054766441938660801961662088769615370750727117524803660596917799084778870793551720731189920339021886330222410256954858035456947027121264757315083965543087080980776166039516019779571500556464160032068707003145538971960980526213627294459017158099368632809511712362734319636931310201951651142142990663408491544385617597726459482925862609198227574874089782189282092477207080763452659464667604729498067641250928649929568235616706373356927193195491582766811574404314265773802912022487297020430510031104716848171019518053726924754212509082740032884688053758731108211599640479966637180833858701862624504719173704270643099055631372552795077516782186694138136211895579138549016465295866932856694017776178580515262959957885583602894436967889126334791457694606983598452268782005371506605676817327423529518335814554963833034117060925728671575198587479727898494646176587244972927479937653065087161116084448300775497433905474030432975598607087036337075304019895968140219252518300120252482625380809703561336606181131228914501201162440128350751785766798431429701534577087986619539310227606351700811310378534766915312275122772481048096699792778433485195276905413667635459011737617555707471121718108513637515414178141480295889291370574780881114344247516515157872152617882248917837475342483528446324151381791640302711089465060614073416105606473800372888180054779296104916950722171163908447582896152121975532100019274185999701626016189938622835662496671582839049448242028840922998591789782803601333152717718362027283442313729847445737072954438325039158590389435229099467396004599752855910144829935013194011066466043553591086774704979853687200138634032942488938901062798794032778196316277066917686060854204483412970401675964025143471462419247889728990981742907620206178466461781737092288556187211866103631565656741327195880904210223503642627120354497023517418182000051891473746742745086538581038060913798164337821762343860213193376919758819594833364986693738565820842945457460849396347114359508602301721243262858031032806386942073459063095198955414150744937317426797297007932742593895128168685354799914479763607259701367742389014196645244341622327346919680937763390248618036916679760311000328196421649399349446346404363296854468116603277549688714864169941533458376140582214769226343675840645543429106375594132220514081419936384489179570581366777642212092859774534330556511206288785215665966808620980158413977192178862466584626664487146457336230255682991193360479869950041802680943901690083258824908386823357775496000044487204599818728185945556944322502142295118925446824503631323524454092546054107999391714758359786557306493647785989451969839103088195481990189846875719170318046369582289350758675138505351464326793842543041975877809056161152600984950978729007725787650070000259044325699712892687950646806846007781872803528778322505867015241153515634949245330170941053529527096324110402629241760011871383228349925739050652718193630222485392510181993309444738354510101305217664754744443451859038327822926143493440106690774560161768778718311038407976584337238954225965313774347628262290041195982568239349335010145523172074053446773044958843400053733887409538094720573164353891321840192617036890755445398758687816647749346522550396771311638247082135350690016336951029926225995410745542101750129115192508740561113415378837483555349450732547079141515812594298880809258997211822419587500626626261566922696133930644711558023152082287668011973615011507418422516838839112419424339495890209021693634338865491129956813786075503737652929846806413668364488212732339765334693914713462050170658128051992898630579674301757300512088559910094702298597901322065354333557004442788092162513787030870616983111299687824211252757652323125162430582674795327843865717390335342116596952855266840171880905047617263495050613876121592220771476226457625972805670773886903308747019903343344898222395146174472268086142874849868191594694234957846640847836847366874380566076369322270485183908764016879546038822131185310578314978125752847676462044251556333311984788159526042566812917997480001819645122670019552570009367017433951983893368612077721763187090502903533280121002102507781252011794161807259568955330786192539347901962150093753236268879686031405791760585902535130112907588755915105352222377943648970047557698397614932820322433671877575011778930194189381350034005265300518851947454455227927810649302844428547381389671845723896809821123004296535052071917559927057891282637262857041655052238125943871933903010633257130889304757843890957626631951120023078966459230253219842146042600411662234377259462855522466328310609589259078106538076949785451119191028775049161544394921525073848461569112590955816402323639362911286295579423865827443509564678239310815991159829452393085794126623248742784019432849241225004843099778977740748472901944548069528707005670202103662750394390695113559484915922918329657558833560190344791066662530686215029812923008101463591626809401089173464335418542965376517941410345227456145956359258554180629422110635548371806509079464204270534475447272862710711443132419099667817638586538346328016400720667611844780391311469622024957381856969116475886870586405548146155400711118484725063107533926761935181733317800076128121813634170740279219226198139258748149694903652357469965034819701851303463061020585075112771882341370717498813469796441057681359299513933477966736501730395022097947610075076893699235495984531242036938752647718046258849085867539243749625550054590495857023390916718100924520356893857015238691352982135599322034312085082350553258973684944270656383184723199856035249190891807094261162066062129577330947987912803691557723515505873930817801952117834277055116269813527278924015136678368812381087177108458931402945276275992845859988991516462203334797016375129146106641324085549293050990179775218116483316653081366057541419955630092638693288743544362794630539312170266404675940653460721278357924529647578968646693531020959720993010747526409754608675744506311332694387416433284976020837242059667043953513885647100730155057878848733017263741228532167540903218801056076643934959789544894585777455439431626353625160446809010304423663605683281874931747521815439753097022788193986158124488679847962951717421820345764890033315675680576842632505971114757551220875593168273427763945121333047938978139974019038954326889377909819253115088966092386723621099081576972652871427730977897576333357154456546085928270815154335017797156270626794354189097034679194035350544977907584714662615175571615924687311987692864346361546408793012469548806098886688535524640949461632184235547202950306674863775558459171533593136546921143872560265689831968385133385363349282369135395132931504415624969497553756052095768264809901673763859534128998004281603444313983839950562371214675635210944496680905311545122014468545142427685888162206301320243303827993933350164030127934745882301515061036074516209615057621055906727362015611567303965797711356193986673292731052281005247850372238892779029562841911845725277143552478299289764684056861294500204830516304520162647411827001873795955190957609044144217067793894841562595718312077589649824584815725541890736039337861656468219899935099115084968008729289076689762496663432804005415395187239588283326620032784473489062784411538487590495857640272739469619245265283002262839467403406606982661339142437098751461770322127290414770150427255819253269066519464824470239242188686623217999886014152838605594769908625236001837334590463819337308288655009070350665799513074511955029275021635622402593354452357507267758126950678671996332467562168443379806823710650003258764042993549329553288981845833762459436258390508204243863657507703275247110397510125725156122685205260922402263484046266929490505880028083935585800453092974391334856437236798960853742483588148299264648278013109092178951444609327657095683629202073733073297483516494890138306779078672026463964927131894014080344955961648913573575461384256791251859312437646529951694544142563815364509361024540964377168956449719061674554031247417704801326424172476241665632347445283801146375440745672161012098641849209375696129348250903186351900079191611230140243721766576812856339718345137008553790992275674220070004582677860914444799910037835788992571561933697983724332629255736350196040041752838345431458167550903765651223889135145186971798873276394405332536630953735406178548920904843952684562435581421806490759699882094109030202939585053031155972231967910008751544845804062617268120649025638154973388484557231876953133294352495937104446691598907699589087264663617003829738088363089464853738291581613704564898287853849736224701688370829467711851244313571730083262247441468709940065967368998051053988877667050774305305791516081038033399510419107539827112502707566029451739468291179313322661440251766053398387202075578776739034084220528646715387783205932330390204999774143011382481350078522857531692219811071545531642768136621954955834659170926838071547609084370006371563316876801500727950959568419639568658459808940023724465799728093422287638203422490472630350189927545076873173684156402283899666906564806344245648418831329777341969872909892496692641784008510114083302750415117090826428206195815705897105705103070851596322153753849303549098617861347131721791174725531286095310000629962599553393570514987657037611989509144234541356745516785806112771624264861406507152772287398112480589131417877191377299009184948528414387887211135971850881090032072833879074228953846794470700794867822827831366936891046874779419667298001827502627279113994615221742817709897905989121731088412551829826890107123828107038161047749444474347606981440176023370336191001432518236092525909200166793010495520820455672729588717653179880772078234236066238254398477199495845750195759194424357406119683395222838306925440517863397717971743250090319771212481689897832589961617963983126507770662067671281680525784378378711957355067741234825111970665728093101788294472186221339251790915834530196573747646664003373732599001475725388471186621735791524994122161758044699316316841967453397294247039886864582014421287315636647667424392661112158733636539380221649477788360451340690224630494413801681731710285614127254528393330157539112936473511698261521093455040211544783302612949888967977527772944014908127737749832264450056887393798123429897321266353641010021050793217529297244220960123487213421000902275281008119145644340869631337712548865361126384019168734844917589135794948684625252813065098550766161396562413405629378818257811626069845971692294693662168721388524368480243266754942210764945782691449598337943896018968783820877364485558171158983602922559253137449047457744309198217286794047334659193783511588419341951619588456312251935527898776905253432348130165594735114098046956551136958326031578115349254335464866671790029979664427369515722224352827973726156645085320726798573821904346531749865121375190156191921998085588269863554917973361460961115481298009851419327990897843865844866435365747997577115108346248086022171357837963875450808249010994644369259325864925014225434964895244745656417435915781710643639686348046902566431786174241872375661729724529436616652883243261234550050934128651844391952084152096643591367627938854723736951261084024193992270706177997281836325955109846938617666705874867190394297634235483476170837726018860442764604668269669971561471582813243908376263584725892091708642648643338904938588490783769100831889938730741909130945923850203915077838658617163667931205852449324688200331270800880754262091803845830070204893849160747950516194528884025676777015755724787632901063562002922231223756586773641925946221751439845908451132884419765370222121991784387285134313559854267508652538334284171105714073073190655105575321069814131139506474644226770497892297260108466882662754497271164793624552600123338375668678422803589378085794518527041761856126009226248597248750022954054783452552390558717463904122307463414420089444116127241608506409465619533216719674031151345083714393210740837064199108784247946618607960302522315807810005153441190750901077417327059404524082342528221035404534291329922665631298946336225599368247560199190145262239761409265121884587839905299459066909405282381261494404145775933459515904851600404288216634921902189691625393369306022256783086552641344491236481420031704517073065888706300497727866153820980381968451944688622904439233217853040950734663458388889578089801803333142198177387143703516386963325985067280040756297227520748765362687802822153887425704601116598023296835140268582987794822436615955730536215370637011161157714775192806621873992650911157949369730828915563425028924840214300072871786087294369521391566094256947490770278427360613426526622198519642497506696976618753620012496244807557806530932608650032380590866556613803789667476692623262066993647846218937205832690685944983697934037086413590369606748957429051205795295417579964301757264712910193533403669714737374574411085420990551074271059867259464978335455253648262370373459167390635744940753943605416681169157326810183486413172300372702821074645874114225864998767044133984581980117294254253963658028969127447188816222818199404648096674609820759303150168968227782512695222729345268410164802039778827167209102727783323683035232411830815302107195693660306023030492316461611822533713329124751865883765846320750580925647992394150363642177755812874205914531506721613681662067634550710027404243481690018423063524988161331050355189518587786581009440420325603264785746320839401058385034674205789585675769008771204575236506714743459174297283802606054673172677664549953915630786630899337256325164401969164820780041071161083789904255072562931447995916996080103416026628488699327114659291323596572992667675745434165332890153621837366912923167497603913061877333147724080058052633150605121358153933179061700644088770564239130017917488601221211778772311881702650789065094210077421793408210989760263448183028271700223430284052749378715989818159091773144659635994761034710174701890042071128414126712002340563356636255955500406198126055954413019897274802328999523353861608976725522569165179883385800720323795353907736355873086736417601123268242795873487795688203873693736240968580455039881844230310403485965095032164173037677420987815635585483825473362668697899960015323327994838331685523251409721210922286210855354513450417914081433207626153445045015002316879030977364980375534653312817561436418944231018349230955759528099514731347736570724044382400305904925222770812716099776427252517443232042173060618128757382473606925249144074348145258445694881439233747298791919252648855535015643152571560778041017336228183461831272771483010995279499383358309435313254790988981097089123081136017467444118751760105498440241658297317624096098389691592321159318892722489441539001139660023320681153911429458240640387650154202153646574341629101053653865758354845718998964532740066522810956249859717292520203628924427666812162745587075946889810567574552553198979027885916229616932777625981095120559163933601127170518258639221620846820464347693088636414838059163143071889884575712391916144146545571463055905179145410209511399158623926729016322584511280594892005327948411758318783210373862123249869887317221498680765078631338223999491688281897648511913307138999851371917686988309898634810976156380073038702648628421464529137946669049140401409810010866095245633049282736035366634784998146951868950381384507550549158803568584354913810578659722465736764300394066610920348787650453177081892556677134108765474356757515590428755486746027016297730096528756639982005273115274260241279801528557201380858083221637026620566574441595389658293309604889034175124556771543572294396024695032532801306389142058179654781109316093323909427601263262638289526243434394099974565775870912469528229250316817737424645763252257489593430882986009780382129903305830460938478595613014509160806274378929617148639979388170921312231993641627616852776913924662196857103574482632320289760134068433936406696635333528613193336128011766407522752912095944888170169536431306613696915251115364055681883540894660678118482563122972925621189036473748745273467321749738594263688415115387456614850966966840843465745642427125855573886986038355423358943239071383034283149918127870830163497844840366132817917656717181708190463642124980179173991898505560453140761062723055919083212320822085633378821477137656381778560105442656376441811825393168969909505214357552769378958528336531633726579110657908330905627705200267078271633840725404034022125857820957617470863033842439975889721811296118894382518312916217469803315380636926447172716161571901541333982276547518837385142111609382555437393659382969709345312083951216464128498466924504429986628345163943840933606354717130998093734251786898096034992310024759922958211615366499288918590118799867833048932302042066039620949053944979324212536902295046595020503389005989526495004991639956733120153236876333382992941919814534927501357185790277252340200248737780082575172966173280003485027106492024414804401578009431572625214542186910642997770811078272424676831605442108706952966698297468193144705170837028003930334404787773099947785379295880047315903669146407921555450502793253868839781947770751570106647067067905160300009588544296439172744964693634386157083090529254854431746996273163066794079462259724054438548912029606922650084050556213401671817880637835311434752999067831130747756799543334848137439930474487535257974104598619125977218843855541862623854018096715227048712091786542306898955038885153467639030428704434325098523765976208044463893731461781687169118328739672895190603773777312335976450358749273172422076411763858967806001516240283928391151795394399074955392890752624655653483173713087720132526138968622687274307533765850218776079924025396867864279963043028999881896585691042385605625619272766636604238298340577302559546232593425719098758732529799820861850496625367472054989904678198679144665863713828343563018904342773625505937416487878033336992852406285299236624694149858730598128325403504237344500649112337104943542110741681523628360920890425082432551728583870908205629195716757718004055633658757310355885358012081508928358337226784594828116577233439551727949003385762866407058438710926033068929822805305777703968791341882831513115890460684763592303841298298568673481322826614847837679024452302383259997901586962067733615639887420613320025615229133851659424093465635104142431535407701257984469828182293812234258450113825888905828631728737401302636092786500483966744119462272127715758182813119615324375166483718069276424809750984777117097213674176426915141411436925783950650735025573130849853257239778057244492820001639138950768239578187140294972062225992119149323916739011469441749782428194749153286024898309716798830008626813601636782330611382233021740353600859761096922299999592677656043785631935975937558439809579724539507847552734514252843209818805991520869293636719184625259328034611413093437273629799809892874110182906719271762128521202124677679469164088342850058529209822990351977280017934066220793684867777324693440435282784497427365070423311795242455798521951099918201403866681234038930043852938087010237952673304445513460097745977455196166505207957643929197253593179031796203379639456878546357375785035920517540308229432325952207610316673074691173576181471363239369228005292320473238033883293935139479487447546628955441159356290493407634228508193008900701163805894146200953252905080667011940111084619135209151182123627046268272595489783233929491699577624453772656195092664024535403852707506532310476624696011137653668249004439060503178117395251833880671177967382403141888626412189894990677017038036628697235089905087341962098870166338931129460959025811746747321966971675116224726254438438914228100602679443617912768867280250342985657979261119961865967835337090221735774490403275755713584729340259800408348316462039906568146939927088095423050267166362796493019582608454367403509256465161988143506207230000554848378510849675354008679866746573429469914046968978262574292494431801155457797820217800413698842658877614946592417821858824165938415662294071323026968093252208788616557777396321828428228010996415917986934626126944750460674115309071059442931099525003109221798476460824479214957921994517859613351503372839919495760463899811293488393665482903514031560060518826925268153492245451561561040927504504534887392605834308469511253327829111676131761474740242209606747118148667788467247790415979564382516412537469231059090903180623982840854415712482713919659525178148792084714094631333909986506468707982724599840835723298282798438217677009832179353557201965713497222649008531373918534340246128769232671775107613028939876880972119118437596765741693069186950383491492040514434575473425657710847043782497743571393099728730434312685802954596815351248271248078114175864141014545816332522357416107965744543794987307624873872702190141302983512930211455666422626320517394400441558803338570190275740808252010439628962268845910530303869489243780436019631801561411461882320132887906806157737554345347459021143194415769435356126733260611077215621116113960192404231100825342240320586440134426392920583672439223055637231408236726658006536687307284378764406350633941711726832190109465903573197320553280063889446291498751924992003944704635933863200870134326790866282672991751121530742692823125985747991839006001663953153246091751241686210316917852897774536888671478896329212013389714383325867618118945321886149812685054246310796242996911883046466556734489975754838614618900533334342989569065703944620257348160673429373736828121052388389078787800172889838800262797088081077891330980060208341777128855647806574379926942728571298102080942663093439665740826769079059770596533251147071197258383641690983316788450836558268251364813935276641671279139828180602013669733401501513936739326629915713699253810927009316865115919536269693855236789972698127014497362179616168652750774493469758089441129880907139174959455662181618693973603146050818037119905722579245412024898701397851843557803506097773928352344017229517042467587623324324500553023118442185292305576047404822440348917873299387796209058355524413311303577614917254975365051738779906981916260532243254443115969397876109003048095875579459373089324943162804915238906398070285482104168157146008234843563637967638811558463581259976994105455114348288230447172533998419330253821467265206699984654688426600028683417140325410762820618418526951532825249236996914507453763829772421262069495323110058071076504653017377346514436056964379443944949373570385482835209139247175113802275235854244689216200258145354156148393968397427705707034618096733565483971512652264468300135591787770574415960556602271656145091737960112085108947783878137952194273495372591910833177427772223791396107665666650206573612644468851192767798742555891289202146300406576991136576273891638934444760031617389213694645911304247126892470796063996524632050219287606075178376466508627146523267229122899057254771455468269355471852548043472464512436352171097814050056949159300047255652038545625455861447728779924921228351798164231386951788660587687172479884291983686509683299677928897047091772304616922613241722337946420383449645738766642599637826981743318674776767829327363887401328421579767955704062481587321293033372492246152587780797353240724465143791857906358656442728116818784805824096016530636983517187713882750741691175041963446836618443727430395834604482561428007466137467897104005138140207265057610020869784129254271891011197853613997297728808032636649883970104217282706263276149035586364113408284593857281721568508846991255001411339664413456867742554117779002064022934538198491474193308256482202903127863746357652335749847713768344605914983509442197967067179259928859227403748641582712284140326158803580957418288697222351637956185638635450708796189872369445045108611830537845719959238824689347816780342535978683350694996659225441577471801976919473007595318851239078549148257493935214024305839338049649680614763758725129867408796245927766190145643770930109071594694827615113611181716732782252011269890813939987553834905053154981326436018168173207301059687982043974861978364670965700499960121776115403535101949488179181415961712537026081633285803428331945332946803437709328801140817898328805658511423344599931853372467914541213337433108372916534220694732418213836533888281190624566327726132891920854016163786714817791110171954185990018942627709575652092174334535255550448395641385931627404020849320653211811494659060869235230262696613589206957006130662094386312306435010010611046801074256105262973927553202742560148724364513786811399886668025815742137001174221619637194174541801526830097919302071026219381025438262617760937988526454768168999856642837737366003597029420705304193941900092596308574996436470968258277752292206665472140057543534444909637734948238192056990116600204248485111262683269427702076241840456873382933986089756439599123031373893697126817647765936093064651268898976394344557540827226799234309795910281706422043624784642354270669165656215288495657844832766563126949676833322740926284884926915317785311474997460890859957992451764313069403203130087409368012967968551046538513176285845520490872213907738732181834538307023552442063099812333058516587544235233960513893047835242099948011973771228058022859847817441954512081778959352748893919142685304759900668102378679697531221221798382139716839372677170170023759907153627934130130561511017023286183237263301583405407700882559608567415826402827803027585965734076227893475126999097486079901559298100306162017664067743695944928497523360836103470710259005465587315354131322338200403347815738936089239252185024133057601262716100224780584685376855915956928740061045574458162258251510491590818786119531684220646554486937260527193323932216113046821571513533565225300923814382042762895063653257245378217386121873682766299880520194640460211563503075465012704351202637144358809641863983476034368028753720652307037088420280670473351964314284343348653862309845409667794747532749043411643201342595173343159567931885367932980280465498870872978282084489758343570471308672423051455397063962349828053113188208176197221067980521287908413256039534113359591687601256813021938359590162887612783383504810127278724571102896208721835881853855388393787929771750635339127909707316205466131839053892763482245683929081320410147027308614137798623672166549297434394158933009862659548843757666544389435403641197880832500774983763712431531349894149092822174011240200744216416053746953386674571274132068800776696077484637148850413625962314725492794473017228038093776895742022288777297208235746805899108944384514128379822109309216208988681395109589351614954505656507453756571902716667239579951307203606481760151318887815377424468647130318555994080477908642179032618426718259074308864463734001175013460280247007772320774446471430724896562943648931425499946517938542618072268771790292551549851600230640043509551035446594299812213679542582646702525706039532157352490810660350745138198465527907990292729137129659478585251696721058277254327683899358029596653955710014263245002302886701069452183864157376626307749028248472565638981084181701347229403406977972410042649432217883397196994732074429379818168213242165539284270090609386213675882803524082628260098647012567592723688259243860778435768899812162618779735836875133828710463323538897358571107404339503836089961872686754835397658337711498442347192668990704081004893241487724038446183962551977385606213049437841241246416165227427377267991382479210154386198707875658122880040175983298459160639719616456002772474189152092523452840471021259499247541810947355623239706086609782946113901018909323072309209292148571870003755890766733798794023692336140942903379931660009272957975883674685880759706593871195655104498126382642096054513983142349586043413853445446165038297525978954295895483592626357673537941991144068067398928236163075404934000004953954469827927973799681359497179906092298181477010540547474042898205973965642695025072275582536199813730453505939650378634082980608379769687643729395034453340025424023192790696038242323833719390848182181722702472857402717878083182634535256229219688338260420213044079267706157418826198161820773270692768807870965395475350056575585393688695522086126135273582996395568871616283707673263302984610119907856252176789242586307774251239377758400380106234420121472429325472422120464614686304124950458634111498988987356473057050462232269717410378398706062511983877650015532502278914262937517232189651556083919556736533835565534563092940859652964937219327128431426785031524712463650288326675666308313650713106778424685940119510579259302435658841886734595364772806568545560666997390605366835148707785640798646749992999464695653360897001270790845488506356327614488925813015659274783548353687647245350343393555449193011324246562074956973031999356074655202805028163419484956215904370612254256983336263061058418821409227260830979099964285289093852371283737209529398951985383302079407113897208384327469815444643705262665936950410272700803306243317615249387360520629434160392949132684684916916058423078849762953387270773188142705212691868228320710224042613797008849922117144951132353026865551714919096103082544699525216605578243593377379822693532006572778623319537903220481301517086198987855291040987232934963169034971996160957650148714606431882823118608636211904954161223773804519388657723867597713275807190952940014115777984702655471632307127169534572938657697336575938877084879064439118503673706524356238282106763961232443673513011802759430723415613204890621469380790836657837966108046599175353920299126159260727460172365055363763400982752028118790062767728712281033576285310211844901611786137493312460245043520549252417274737826353362351592930681451718561578268865262413457147773825909463665924180378767003318627567027704210992663300014429200509948809358877289808837815241862684938400172299196663756581996677035938254732440063747933281678800065597667920187817246239246882469679577840115946533244096949226351089192534725412588002589570741446518749528505896863308620532644101885090054880617142053033855419786411239603710398187229592718327172372723153473623864058302253893481433405036158975741711970754652102435579462134486639627208137685685119638125320229359019427756538646941356274216428727157711383342719206067147512926725558228591910213428511959826388320436717737434376425355459089661157491468679092403407692988659303222533147658659251840010503877257797635819388710019132347863075629716937788278035454994258782405360245314233038733305620346079959223562860829103701004426444591576795479734883450723469487781817429527176635006961354899201766053933739971041166785959895481530082375891694471122851099548485625680351127547315581698084213109216752161737358208602684752703397162895303530211150642335906573847008633737846790054621747818103129237198521748705142798258151056589961364106441764873582175461091845850259915900137312969961336677842494283693664467830868606161234920905209194735485344196551173999631645217300172900846646708174111054166511204288092086415566649988640926362495269241486439695295756535962071716814435698099749371123485856178658944776809084473335799674957911726273276188681854242008640131240824891820741418300135699655107924630877641031162340225356836657335915321568873644148197610594188775977903439589783777188616159546986118674312096891909293919676729782935271770304232334141811375020811280322703152005035559403970109242817165375745020742475663819761400846481825604815323762919406218418729181571376950665728158643635157304995445892898831084821682181320979174262057908701199360277179766047638118746557396856548834652136345973918830008258549212938482626778937142476578162918126884325472744848121840685041525398111713791397743790039794010817506458580968412273898018867324711205880922622204353517421534829917515828054597004636239594955562564900536705667407589673991420058428350179946644010639085005633093361140905504837623471373014621397707780822588491663861215870144190914305119845244218038949510180286726291336543360514246197612570706920767384782025469318519566620918444520636454051033188056173767748205722073421053848056651344985154272498933552804875242822878418708671160009186326914228748628639506208987797822249965057301193942664225261449849948192798152949983692350507855364923269680218960306198544366610594613408910649080275051213913354246047013697534896623536759893323941053172197905204669527578871696964112583535406907188000773436274612419307669184012646039891060272888603940998579846620486563561541088960595933237851852850752114798822951749252771564403487806510357004739947801365012605733802994371660414019882865331653941569540935844390244095074879277047792046869762786807380492149650439214679452444116167205897976252083988608860355773435376889067156453816104751116096778022994281984423556799469161968289057236316303796986798236350285472585999655750620783004470547571358655474908254198241575001693249897940123586778553811170256188223349167969422498420049389210987100189437761405993282906525428487494524429334887909976644644125546296063779621362752060670729291942818364220551426990031951938270410105064416006324085633470542485295750493299073714294793608707050672408296697574984700469275491059322122259262206782410962376696987502358582367264483696517191546730722360279818034621911330089133973330521563310893589853363729465990237211796906590198841512687843380919174571126869054026711115356480656034781592362009995636724838232760068097487677776957706904613487259589229153505453094586447423589815467445683357143081028593313003304423045221935281573584434451117140185552975255858288667799811599007169633479400668669312290970668040117645243268364206086195294645327154985467950899390270890036864159758339577465170382505804014805548108337243444856628608770833060802008234926318373661447801926396152212968791994368823360461237182582925584203160421586775912384497937926209013913885168145975780379095110314103702592093487240828410140364090544694554464141449058682503081179808421165248807446997540667103959410870997123445826932217525002819144127072134363970046261805362427380368920172867271326414458221937824310334598281645710386083047228786518754240633847821538072204262380308022803715424576612143244204382503841917090468158489581618440528130801649720438059926675323227862296243665231791868314339449079193222344914718355324598948710826714678885425213250948697924659219995546708625667294757296345920437167813231463756651727572564944509745464376560211399607730729278570598581583030768723020134648155174502674869024112714380507759043986662806273786828786348758260705979836990270620659151689512099070587506915158277772145610762320889115203213792516048104039659271802242685444474206204021050033236717889500209101761491467139267364715899530793312796745700317018295633181286821663483265613873522489444341436924826347860492141823487809808323536275213689321393936700025753081105778306241677680241434603232948603150855877759587001859736992044499874528214791774569942842386601328465713057133867089107019494608317988600414925884822189185178579992962980669024127173442214598712874201021544971658418878724074188539113946360483710030801560924019504955458485984171544790682253942474888370664141903629696948780064683355382347842829549354508166681410609059488596364524126355384555848356848156636206439156804764635710014424728961192461885347330377820082091920067743287615786994148763382240924193859370581965515778064184439020530510438613752599269565088239274247467831566088321196225440627089875451603710100567154400314995509327588052381242796694919467998764118305626700085558550764446990333214125303959160012940517944272061742729758475278169790949480050700260807440517753541702431060296726266716398074730362886337261650468145277752927089323383250214419560207267247639314609692938290979962973200295570376524141162972279542372337201773656172859843073270021534713572697731054712018188830728270085203206206608694991969003084589906396464659845675062141237043564487138922575791404250769584298309766919693922167055418950411852509380776548856953447549966657100026110815933263283970623887518121067165459181811382270525070072187589227579856137950558732768847262347913090134280568858995850087115852120725407632048473895458661602454825753622879837226478627313927190432081107338035781948422822280070949204348056565868017507992932356054684616646063034078351166804797232671099932893394462358727947433590752676665361457717945876458585676783042384728325740403539298197550769511805606995971655142157287211226563437602219934926135459651858619961302803242327401461378444527275311317250273792280243263841750177420471900203907903669331494211599054346470636431727979612722481683688540486878279471908364060764245415820061832383536197337539398329508989086916034195940305454942644525893051375288083117031216182610205497122696744308735148937137094093526498513649385360078588158340186106909708148311516219412709431208687127489403415057893960490561956988035375958828366679027490583385294029269799039826524538089250652281947596740484959921429231837193651607848200578308893885995356661616330267268373278369805007313262572902605019061147415566650181463995630963890134949026089384199378255806439917535971196951850227588477640340700166545760557297463384618672598968551819848018014256403653590290154268711381372364807401449668917368843161471463869803394054393307141589477210443518077287079062529849419216182983584919446365682355479696281855607068749033401098195557285765062551890828072106737975267886756432213968962076375531456848762405537324143291549926339836547965933656516600363587424652535715024828994792371404815640657377413825739902509946435010354025931210390432589905354944387191039638700302880641418217572730587773525594839453477380070475831210464808310202559209535209526323895844183901400374319459552928966642611593295079101822013847779820813934646456468590826341258561783861209063539128297671841298780227844471375153127165180710484148565724486997786994106330591173915136221310269109863410850598720049099297281969796961278229464135001944846934152101267627717797318706666548291502950107411949113467293418363230727986605300218771050332364581420267327208048079057481929032543954749955727077244786760352664808848716492331093987176352922771396502752906880667422543672822170532821755418704728283162177124930080733076668454163459485277899252102225725027498977319804087923375355092478487913053565703718763930597984091825057851982408170401141857525572469007426044295910898639800635395816334429169354475298243012539652481849917680965524367161098117492089854074235109464383392767127258864630614156956682394221596754093501051330161885638693770501507868926404518325386684718442674231617232993705590366350939720965391953602965107339136428926107289455616948271075548122716530477066261234450008639491266367676851831777370577610047641709741665917662076724903252399284811754538370139287406171877888503172150330105647537160868850612094105239451861782295757419111378721246215842827147905438529903498970571183186576684092506412629968833100840603871837126367574289141082217722332290147948475356270028960561841513085402160849419062210254800195487430820074057621652849599826491417352525105787184395729074566482083736277913568309460004826721065134900554359192011470257745908373222489167698151317425094334828669886564954132881909475438696514459285845034097279893254319658224137823557237026412609777710192137021614243038661939441900279899969046504588413161960454150241502680663410417147124845660946591465234668474371653987606332947411584899955980811142291420249852984642339135939915817994506154968099793842275962236317249572013468558229986189287211947877842560995501468230994172597731238977166596424162882857624396505346105723545200184910829447499637841264978723329503337293681072416216211539605183681992361183466213412550554219302323410804739158369369733056047464677207833179212267307787558663380537721411172806507092721041551553282192684986056506932549928769754124043650929468657295416405184982898855924927323019519941910571218205653884712137132800277080470478331588825783327443498320376890082916662863419717235666698713874130634813538060881127561965252039913722028343598665318798117596420477720356558791001055422686123585469603853419095138810549549439499031780894078982363113163644079871001900992799186839165603912960913106724514502568940159981668293256891505342908383553031989876910397206553343861429222005844274409769866303157678045858518853724768175563714000861904400998906794889551277895983681351202810425243326384936833647279361312887563663350916801658291467967428197977922059824291841326538679893599244476672826922843609661169969845299131641363057421052261019374925073693241926586437689712186369461174887180740572733909978264366183642433456344906744717249669643024450187812493504067880915423058861791885083304124147063796642880899916647693387368731561159776016229075253112115948912476106348813650790657365484779911207130774941184821396606568873853134475065368027798221463510339711686300454432307862449765670959113058923481308470108095684864567080107755131869859325606788643155367123130358934792883571070116402046911496850171211632575818507318214344967339349282117870406836991338333548097926997001496305194103848019861861543162558357220558086294607616025482220138838124528827243814242553877812685351371021409285079207247333741349109621386039185716701934253141465230312410191894125120314723991715906099959845710788613634422951954118469202980189788053395274694741134441117692141533612545043259426211226918776550324612353681811967440797170246842550346177546153846434510403988836606895987493550325067743422206320667613774946433764955376974314830693806215855114151084888921891890437849292256699868787402933124793386806729257725093109966454515197593398613876895331634013301453865984815238446691253483568578116888132224594616180102421475171525314548815471188965263142756484902338370771237254991723674537252021805371597040568175668361886179332505848945699857328616212228860299261100197865572556825690979650213257520354974463721986061551886876125886056232294579063012135417595453126701933496005795172803573817366103058792983123197683306939416289726701037002454925926144509338213053045906920931651586390045743666622910412263663322883560528919200181270560289937286445730528738506683662093686661410264784624284738850045477652180014255776655795097213375987457988206914158339127155230402648803900910609947876691441235188775690355139485386427476716953681795693296472212442283319684096858889256806026420231809798512929820603278574118474418861762267368906268323369704805661488089503767077636683069229868371562192875004665181944368932353222082397692446329552546524180973484028582170137217134368787591448515856405095856876150996892522019725906995368996136187426551821114007257384178036948061358675812452036006145070205404724615081749986994587439872789174306968148869807503690392600497817092336360688380894470052839221110953409758154967925214341108922302600669962162501847163705457757260491859887131053684110940798426150568400701644821943505908184246660248051471074266593824829604079665714580933147120725484534125017771884708832131956351954350567221347147652432838048824066753491410782849145630165196509881721690753775495588743407723616181417708467180123704064708276930737609043454186083981678822051030674072076083678063335046040316728716385900264581700992393910031118249337132493309809263397708468829156087166281005966446861098683213075772911464640215205635226356004481749874553753995227808289413527104298880277501808043697461872923139122101266536419279526933279246952467035950725397073500425246612172918232288835162857298896366328320537800517245722484615337022194152763139514403106897814614612206717076105896621689386627882661089338668490587560299183895675196999276532500106319250203681355000295763837848243830017609733852661757401225415841390685434990588789384057688189013490928209482007465360445519076423328685477320303141660187052559451538096554802210017401042468260764031802732401261506463778955064658249278088435672813435764921104609502928207174789053277988238680722716910082397843010789911917088440178098098006072054628595244900889636200206054262246133838674761432946284042381098534290432171224737785590308782846326005816291635059126218902197550421982685994419271335689537831849604847430532816107150520292104557204305432388519761608814544004912265550839073424106122161578825332166871438458990505053928325016375976950848860950255178537360758695609485068180676569608371883077261805049760718182324653479813619285004314340893005935393570752156255055547535577082906630313766913066429548807801561540727711139963545642972865420160378219793416405509223224316900907287715522706096692932561798219558164400898125718412203449144177288218770415446320580915909115042997771590966913139861783646805359910951986159988691469274322367417844991583637297617978713784457225191249846426303902503514519310184877588514175156669357298026601143160534859912516490654060888648525458707304757883282700118738207072678388844445705695495212218833550148446972274126098994907974787003487211863497655201053562790101357170422147377384908920539160688073258130424310103178753023731074522180489261342287691122457502064091412191393504416870732932589707619181641415779560700178503965470942735369493482025346258443575808413367739809666032629687223320424666191710572632690563300785982707677648311596310234788578680919237751732868197357610057422797604209753109388092922674140170545599251306541956767831698663543666185165229885649823193903691719999800251560319117985257772090140837301695527845738951243968764304704665158469137338358024928118597092430187423037913900993406358863325711295850293071563871825732824763260855581797432486208406971207493543420957012181004513782976474778876688318503574000652936419937413217934147294449275853564750755136149698181728625605961779906301437435451444258702132240288436703798596328667162856415843972278851467230319611851874328255155222829955531920780102711676248079104342883814323822874011519411083022763681705614725926286464172404288969316383288405547423625708634513090934775232945026245583660850568195167218695239975624164573788946375514040252044791226103226625528653792907457469181792353882652912211376134513161611990195880240451481119489210047956115514121904263129623164224112788024058922053312194879287470022774132417210805150268176850059657048230055887610284294628433993780497096693190222031513667317781897147420007098416742844193121679234680754371684393991975588606374484158650208318185309850633194796812701823189662386403984851184926274178507606201791129046760778845529883236681768808496221645979049946370661406537943770037155077830523824519298385632795790250820715413250464762110500136475263178615726409058876280740936313321931446821293586178233080451467368055905270425859573504094519071723896148727102977933804427943443466486573802160681615536352512267312293249126097337517405116459735601131002465293096785007973394690516926214349279275834381548379114194788259707573669298583248445460703188138713886498274604608880554056282750519284723960811709867621657107581449190322572300190370209123317740668247476230626063299003575595761168198326490943956217878662911707112813651103306972330620362980150749951063906013894736221725850704834484154412891321824291896744765892438164104825482202680772645550332647070819461114921312340899235287204280846760149254640520575754108334937972087358683354594748701899466379043371956984117141434720765785191766876829553012510865742720828512845551204329691868225239985265867428385556917062637764403244924986915550744790209121019727156478732135530851620910634805095070880649914708414840885079236877140476065165753834197569119564134780487287362124500476002330353338807903340959855188985830545140790247095056305185266537112838368490810776522584319376191401069474758551793815716428198409557519069088545809122768345383274004705607937547817732539368388879670190461059477685805669770675380855264785456027292028098085997187090463823299801331413911922214835947014226086487385518222816816437264272456652383102374128658302479489073680988476817734095360384638964984619542563435967358725899333820174407315041000910154948319954497766567230763927886731110128846177066912724034314956936864117401909405932904759699989735089311740082228449243189071612067241920089168154256072343059574116333807192600165347678363870836126229245519724469271177085134911975393353428894724755254091231754160903136005516080347289127880589449346066017526143602950559109742797121835013369228240706338156767192572314562127795227017297362228238861914867950113370210088920751868270440323159720806005951838619641903660243630266017825807435929285130164229312911811864339996927638469995841416134743743537915092401562271936986822301813208008116473568892991008871135058073505116805386328744414458700030687212194213127660697270437347922699911289634684037765935466128794143022307926099193156497160339642123231948291550834087509292217160471610304324399824973153335183100380197650747698429554617733989463477048117593102584725949450155932546515819168550459340309587966398139183204266346750639740747284229078698087944680218244198550976614921025987141239650303698870744246279943040547125204439718468580716972679365386919456693058396430654856279599602958652771516022768387549504921902798982272637815466953070599611515068437457408250824534044369492484088515129481438472093268607040047628524421397674981775512381162704531203747946174341741765370647877129138441450555060409169141121529330440000029592814775226582062954350031453742449883496103055132773753845062067447918072758569438979961705101233826512821166430511460792237617133373440623896258046230440958931041171159200681764598769252528701014531269058841663967733433119072734319352672991495869443432627710362480964562361530019239156327610216651343879119930360346683376188097131809888023174852417351182389552836989026869185178256330051002979674027449422178930363777030361515475214170432784413519971769806343916840943243887861326256012652108464867840962277339565747620283935171498884292429474537296542640034050905855032146745314370910933074270222604865212957468765353573450234101477115807836302697528494008600247566122371549642136366843762345758799506202194529391544334514467905286272051565869713712306531737352915415481610360761037038268404324319877621243602988258826555979750399204553475040299650075513726677376214519120851912757430625207548350854241284701078874725195959541364016290735904822368552467507107595032438450116180615883407785076267573986256283783274815770712046685223897022159004536528138540308065344663162341291052249246456880917209957263684565950814428305366558777584830442375021275632903419774215628293757673678130572950319542986683027134878955574673595361988000610060183839052994945269667007953612559330758790907325987589763379701675608765470499122724199073291229292057523000063873500999220997300105115133113956231814810110945767499096542597398689521733997625382118498002294845346533832532508856342758998147201166496128167247273202054957683947258932511140086482603233859065861514148415048414008282939973260524926299793771055667556868280898152051167529289159463580992022519864061880948446989572200244993837221806967069008522743263617102562718044980358157118676483948588689250744493026546995294418153244406406976837919719273431408652253121062377824784766638310396880237798906701741174395655995940761849467196289076760965966364741590943750462897897811533359014372714362726230080670561316977115963245458514347332455291862436942103254042891276654429240337276004907411947688193481503952369634037432751789709726422971501046433535374419106556069288196755911855242100808256628320094367126660163417543261575554521364052201043695597505077017434853753620214107468381027653147685055015332731467891354030265399103574449624740311010800073416595780768929188362836754412996256541789870963039253399592147287059382328907907983020172773898706317373049233282910497617459295588477848652540081120721646348497042317838164959793047024078624724858645247211457523598554295866533107754012839981176806129009900442559818416688049285300082663378827183064360930067332476717002055337590147219304312506509140552171582839526588351748532014493881669519371305139802696193773533133046592486355695882615317162161142524171117908346077165380760830646319920183135313230049109712628304160884813082337764107639853524863012698936727518300791469791063120474106159617939949101894379639832025959282241111939423804811336518580449709145119202922602655567026612992572338424801214711777271835721086847691685518893833354512703258088612439989912754205457498173491157823630630728354884217570510901101931238190299028265420571393116789801673201903268768944143943526324347192724811334855996163649850186766863897642920759906737440922179156618596880732023580299077963796031226454921028209559106986220024708524992930877846686303322840877679345645273830709296557992074083949573024128025929324447541882281786147256140240777720581547110211486307844991377518631430974514469482152364802458830324664152254950461309191008372904573619575480063517496489504838734221047018043946700025240974789152288346745769484712193502446129802375657886620522067360676080790718122247316298740794485727822577514690134609495455255039075641072015166530149011769048580435245079631609199749653556837049653643394800599753418715017054024700729214319071584586094227345689605441489724312536480932735335955743623347510002021751583873328542151629210576957023499956223978168863550954730534626115118923397292655528818696324078712117357772151293618945868153967509155089066932398186221036298296122594354831509152770777893491888414615323162228318817080709478726149703231754119138320591566115896544147535117669901274672299316106864950052254338160881720211081549187553481115810513207732813783737379163111293508660137713002004283089013589411360152191480741075260860389600201858180724203256869938667581459664621761359772117214073388175354689945266590947083339136658066144282701406057309848923415563511503478074311564232339667974970558359851034240602678512586168114673920600081230054392457902982154622844582904101613097104659347598013770671292747020645050844020563640092424145253545735678223745948340143521651962679589225580204829311226655773608983588288649148010792981477722766894312025276753724024261923358087093453725814704351707917023509733440518456735777675924239955298692388527833988562712695926922902330188916628793845559382564379454168887764709240424567540765174219148682691763959225754417430941798700199584327652507768812528173589935752294459716057798493374853122047823677839992674903130258862880373857135863927523282972071602046912215491225953594762915965407017808356012247959076083619758515243939294630856542401673814306659962719106659050928351408381304964085160183237175859280348268598919136777711711180423375653958084613283513187354751900390398061565689464234976219281924048131218705596837902228273826642545632713546945291378777714463965087148679599434873010048227889361888385045358660373414396451104217303352753425521282213680970728513544553438290110635332065318751115517843791139892255392235314956951669525648677358203890553770716547287213322635918578888471479656105048276030185028539880938702461499848945430870796840399366009673592119149411403739653156604162490600395784734044126006073671611676888912623926599949179180235703711755821210945676327340626369742390451409584230237087685234522946767359592899096361358961991901321694458199119076251129498195716981737287226296038792308999753895220479124647519081202109948126600373380377053387351503683262087178591787187854988669685623782836081327019872785350329278735990336564753040492993859197206371417201956728913333769491999642102113003732252201433923450740747914455523882127735682951733258574113276554743235095463054528477148191807237603595413429050953713321665561684777679311801919221723431088387986186044298604531749513506638752482299891580886002529266193851915424471170250188688939505424183927448777735177000769620447146187610461119120884573116832915587941109773417341639684833485068540939705614604189649089181868060878625349455918091322722915916178224360266977158094465776378621696838461172124803760829271333825128068334341043434778788721779413163617199636219466480754979926115608905051124056773709193299327289748834600223013415330624365345526112730062721194395396460374930999153665224221299295566007585241358809395528503759826622029111596396657906647673534452851226710200784374570233295716335069217738936340826236879536363041746695189984731375115851979914032409971186060686176234305995427359781075634359326155422923065617488195929341582173435043628017586789229535786223975901193617236870390972102233785176129011388321217201527082958384916277667762297102643168037398509543393896809205411318343261293203183316498449614780280818378137557776501342759960493087093988121809485138478165098423123203911542486913807936374509307155669140131989280215039757447636650436192762205490090823451249349518900466104249031898895172431279294201677674052855044663245983071929289232561808276097854725463106728412679302040869504827002504277822841264338085057772927236656093990402108193821574712357543122231438744089310415620616469079783692157107211724495547401127873116686802397460370821576087221800683848483877304643805679092027124304090718306905119376473038579864671047812878303385833276912884362960889007053320355270609156818620211520766513480831445857448531033865551759509504705626790445455588715557943826034280960819876167622405203888514627148084069360535347810288795410944580792875970306116752974265009761752416334280540373624575910530926020187549162504838159677302116277754003244040561412382183548751282039429310485073630424044080124677743208512177661062061030529266203666582954027020988426884779647099147311015545538252364929626650884845295935401643593691418284036381028933121019090524669197725671504936402192407122402437420053971695432073773172836511227167209916506651956738929402833121133683979154410884377587162468699884365238807617148062246881963838377393570346894408284008191708526677444803446097585020551525415932806969138522776167397997274893396480586567065929401021050029190369815728616554982755640919800196890556443750302144078986245418350566003914116077636297117950053502925222253400029652935324209670730465496192845421246102247490251165878335733909958501617660574686114903143516244808968965811850681037065784302180191036407162178383128477175228841422166823785104341862246128769566297937385060274653670704700739178714937877751706555463531496888628739307722285502321080742610192062902504312312137250279852971715933715574320543464059044388974925552341240964679495533645586610919606925327920043394283022789209011254342746251580689352326323175662636971046747803894849370088521538119289903973540763902655588043821078048779582500574559035766639518589328529715381928073416334924562348708933726925640071681531483375038515594549950347523248666747434038139364847192691520095818382558026447294952692639990200909607146420492666374830912438022795396120151606831445802503640619012092116304105329667436661485029460150557262907011257646692843284235643225849343735607151871899268172984011053568613213903338298102098536764100415960448649806978816533655941039290230146819008229132865334226971442522360688758641181912814481407944500661693855820788680867526826615006978862265942909448195662843392920035340438798926502771479053912971415189327844258762069544735287329962970589362008658705382262261838318874595052969112591040722297139638583202940867554762994035124862446191890726955380092119109262873798366652412340644851763809822294961355349341604494576176747474065032481477096394787186480915965452052865072570663933862349878652999654014904117131577539375328752518666708721755560243181076961497833149772493281488872016189797162548251205368141518222336877199022663003248464890373045430045876093227367996156453075051150596400751582294047399883889053270405052154190958455227626817651024927555402230651693082556576734547307823670598847527819097205499147751995680644073897227674055388736621424663058116101416704195370724048920271509345883989871257479911583780413427095960775594420371654992407421161891172887603579553773981793134815669147538421209471854514717253649925862268429124450492995040079775374003575771998009198424041899131922850169559467652707442238741515809008751926616630197074375765419268013945222749522562209883665686986805598547112314185101468793975769481047845398593810480656157459484422182070806867460890760753729232824971489918507835193007835191994235154791289022966180147510727885631469305268844180227990054057373294251566189803323153800726957202079985197272030270114488023420871124737935903598222754110909300496696479439180795974470654535739606434293207598219805002163670569328682974369900116038978748854565344387585420862352917882403050163746063075501594876190923411094126080382570573931601631574259937000734063060471553116225230443810844310701655047061407650964380214916760476271340284275703528510854691295634891088887708483735934502603974883391643503415523009567780841467881495756907931624393673569167904195464905208618401249764798582082023150034785376892003461766196777786905142886530500264268389381102728214627303342004551144171133452212876166410000862687461570320658517153159436136122985548693847261467376763733194446623218936917432714961856536029768251261889748674362388471142602042382115403494337268512201916307270515547341183809165692954137407307577023275330465101998760067871835513501405518045893975543519245396100537963685214621255394886926926357922609121510150420464881251109699628374177092848887394621591759213309423588979392182638305558660947773918637340421851389320381687992289404054921765976968384496992225269730281254907212298885162812229625013793092914901593933129062538309872863326960213087968112537184157327150949640556256879705273255596692161813652949478891621807681282855742166225300278089976700304173214195795168479254565993859310448173009368099960278155809410044674170020104420025095400433081545786060824944741537807454788897494267348764880398846014824503136998837196318618155419426418421549345182597333713090914684006975878673096667591522655291606555446216241201452414747567910406083547593143258075378307454119388032421289560654895402991364230700895330632792295510688446966155767499746533742091967729639203228406718276774199294298188874629413262902740026011396701784348709235004911363336371970857368297229496524487313553183428120417478975916037036500499659888303287606572094801073263795459259130238869086179951059295224874970988434929346952664425380047709191557087017509166000360552451015831175635898419526165660753464617856893449287295502198190434746929261851084061785342039628284820011840704337500149246100190159765872794660108611792208264978336986724394787141329041146371682464791418238591127722906860315611744985647007399484918452737476610640379192190504806567602611436664024834755359678290424636298629419157266680828117062217776677701269540003708066180809555738279721020514729116942826440443144886401513501747734512344797611121346895852222342346920290377948153298244848702156138370275013415294376843523230928614222402520496902430101832598561962898617728388634829642591946745934850338335442803992655348534513496744516088711092613367737056894623091935010819920854751495459448124174429298552835167247721158192127715945300278804137676171878163075309371185918166944746367144157442132787195458734919421898531343905979006776923364693253450002198375231147973235862383516879303281627443776744426942935654657390142024485565123874910048432775022097830795190713566171169615378641702143155258270810024218237977335571941567160493409919634797786404397508143044543908099451057181579715327197813962119920644394915683270184014135121940688247730248927215186636460122757188543392955585356510824668983335063954049751161468087475634283332532224067239989062409807114342608693040681885464956755221907428784051542981853120186506574933083219151806984923620497489751480061808172300203435214756892865009870805941465808266189517015398664263587843238090295425433302716463027470054961287340637206553810402701147622846014555960381676837117919381081076768931495158724548527159554486471121426186993438681103521304960017369173577725130496320058804742052206276115286371864255995336347884500135433521510127348082142459722246306468126338363487831576144750132224119805327502946678046562592476877037077411336716216771811089936204591458376481345913441591936204461760307730950320753710818756300319433678890328280408638675701403503029187673380037662445535394446959884274438649560482905894510956502460566969213000448813722025687860024026416422281269165663016753610039900107216226788946648782853972888982948772155463790662205729970796735356623376036012187900632078267829899884532336228703120627951526030846213965623438421161415802132258279513721094114265864978597606828493393825863961777502733089518658171131309154693477492819603684934550758566872345527745021740205465743131053703749402637156111562102956407415346102902472822555380991551772620393351611009865680057288237201962013942832493499304360710804019123339218679400242100314451541173509136440785790993006096212794348805045529402462882463038876258430708441548904879673134734004689379284036314110463466421622215182039939409400369169659641211726162202680424090655611555352913833146025735488514228315372715726280840349533057577898802574363926832423121502909856134309933345068332209653721585846672487916271822916500708244593235822802884819686617261678491209741948660993846661204340838541717609963168843993079273825996506785440972650105512073402569819746628617551805023934239082672086710515928808755293506035119151767069985324854326973341925002708438111495748028087236811500118389438107117952414611532512840206391566799364944456124686020541514165969571495319464833902140982006171128580853658195095831266628356141440306707979692209107861007518930775957521109612551738979156936004000370284780505005667510360454695679955416533911943535241668838544464189432629094265615665987792676844751767025118975026842222619087009151461243327895946385715186264368515913463788578579767879937483218771388588900043596086346547400764137565562439941503078235428328073665857177640185738069964507617116381735669156762080174467368464182053973521076612748479830852827662608646770605996814317541030607414104858957307265011060438953376750274855497972321071844556825499949671931154913880673455527139872739750071350327873831705910001614442410200022965037764590339226013255455287027200588018812930650641431460686215849746106963821631043613146556102918472780979007064619007718762966435403083735323977875751051253446222700678782970317400810486329578793945168058538286249263627674514154273605013311948003441529085933315112233912536204743027351493689304700485063181611173523317771183080390734134065874702433009409252222401998217288491269425020144821764504261324851034395277661950021792621443294900656569910244472141189671160078186596482509271228988566208085698311363360924721062475410319970036530998014761097093797299822981932489409334624625796009258740523179460814769219377124187428313890577197962204236275807089726181274903401485165036385431290128042818916969685960950765138816473337572965451397475908716694418236173082860975045773559584770261348846209133308129694544503758281116589998958688886695119360339683186150719695807668708956105050614740475814416094438491417053679702185484040019417605880576395119781771203802499631307019063392369732948736085735313477985595471765678364600082953953388665212370437684548253573835584684912477038212595768581703575634359845472368586595034335238006051844263821349000500544440250494479037191648523115452574535779267110687669348106716891524631779132867051742516505581650401054873339638702406732823961200458710074474361016373419352651030956322033327855439790754212220129147457971691899172686526748916506100251935756778468582827746940601344669038270509315819956541288613129415594124038966025137618269404016877699878577578411289943318280291410204632647834531344210380248230535414110729832903140900643577904610264239244951451992439778149811808708932839139347803291309821715975203583432321781598473250122091860883771403862177505838073500301880646126892783464556208266775915591728108301496746996162219047903535786211511007553843913356844429467980827445347589334794062788846260054161662517946028796199125539257252875668233134123118337186301182039339580634515212669176391959605389340144227730950184748161528244919740192566940599778874872487665141494653666394173944111995223032431519588631232157486393743902811790406982763869986069454311743415948527593023196385011633619862362535650876645690587958203407718668303257585015646949810661946873453876230514987964034893166083775235136612336404293109067916750578839399908023153937196023124255892719292300856638319148807612428652465496257495616621298517541191281387465831156594871251143146368756215837914202235396580920853045990153352901027478969456412674211161449920878563396720164971384939866383878247441528629230868594017425547819792192968768704592561385343681258065322040255408114668581064719709181153340447275711162838301244408605626421715294768327423315760782578855425743362637214984460015087723135791591442648255272526782973777694952969024214090935441902172838513808130369528881437638189400772316907386024589686258375266960887956730943797878035091634497040053220790743826881045369867849395781984852972570993772582996820807153616654091146634192473178587413247069962212261752299972425065098004199306276596922551937160717149270945544558002195612785857321590187381333371049251670364244628298249265417043058671785985376839110744136687477550024216364458747483268281060533870696266938479700805797015020392567510412606673422856204880266725783137973137561180720984046236608492133578688347572926370429614590032065366735547433881956234310922536438506953229077896813661982180136945723755636589564302552546827726520749327243578495152976428994907189736563834913421367514417568603802736931724791229428162279447839062672298511016138770108936727324896323229796804835006488022140953453575978131737498965317426321728441992068157103214613676095837070672881898175736221263651115615065899986771756561268480469025686948939201188025565849415806137798483883325722588942313678743370760657392360287560061647167128014333298251290228407727945747023355013671594474305411265494997490540954364688489877024800949386608056482403948295500488332780490817110399568172911230931376246150765646198837501462534302330851090031119492948563316455703827271569694233731959862169630680134090167344231306099878922018492629564522075702749568480311338440190509457237966686599733928946968327386831172664944587663300037940222217099924189638727122584641539439717830795903952699873098484471260731446732276398287401249235380285010885948848126627461117544844196728972473539940755841675413014747864488531171074446472181719840318670759632492890541852768548440431969675788569138939149667784528377338240435106359251082758727087349434696264403840151025441033030526870337362706912926150759909414666279725265375380003864045550430487167671067301364830645502891518908622026635085838721249620719291137158142250433552756411858032854570954624118562425410111168350885745184815789342583391725082355904179813052107924660042675131089399668495857400567962822615853650491683121347179017882512228136431192848114299849692741259479161129255541026521501952674693321056145252070957971680779133030608630391719484083713311969247734312356112703660903776597212890381532445732841358973374557618835975743919735875569359305253748721909941343022258282323872270905643964064505807740392293819599120947699321430708177347849013139797616516972401243840619186490441687881336936152197588930437242531455414318571795720749595806898270109619115725772311481154274189873543124320258008567902471464531527385273407100955279231576335619045552600485298842218531681478337934192952655865385299809968555323553976629216301550237940573609624866582466615308543655684476573653090770942959534700891780471981395648158314959386896247005030955396351822741980382276310982717146135756194303120641152790265575668852632169924658125848751804232011113823452943394382156882160944127995071700393493878537927244995009402628738943957451697906889355873269313698827302918337694948833936095705089830451905301357906253138064505370539240213366988273735184347085720984808062739981754704427579610087818743746080874025205152356654074136082206789823215929143881281765343232798333080319111961847644126026292287978838945474344181337967814207430665265273501653461059775148081733622240700043390139775185985648160369387866223023804588763090806607552703281945300279317766141665443643262361249503757373143215135779110436552678883555678188980496829951173599691395362433883737812625216214478962187752682626435879505717146754203202987750035852906826180027792634124792961649874085686574592622997386038642149862274882653540100616219470362066552615340506641943641330232711620200302560675165912113037339034765699223146856407924232740505307638379787998506773758727989266662440471328863302992968808288421567896832930366791056002049773415167326456127119374395891796146500544565056709461043612189985826714343665868430389568062297220382906455110239331882124758294294288277944393374349021617244258613363202947880499283069610446989880146150260763981823086042088779917219143729659264545036578483548340582441708886411204176361992527621465299469129369625730410440149929300846650153132043811221056775719718969677749774214986626844946690536914230507028729296683514962304167397300806552514605711226309781531636083122479504124289766973114784499620861064804826627509867682674910970064361032708285705512489391132589589139378325111612516391324175628573324037405964148142861666388491308820737228600181761296738073421619526821305337273816362053753959786889678187136146865332232764428260516085725141368467406304879378549999726695537324029490019689743837217015805849176582849711947011095385720268355193573179060209297001907771567986766793145842053309172033993849248141601142451138672749789307656603194466545366611637570997567954137836731127020646546276105417079460971669204317312989675646309532320140843745759470484729346046763212219996010011439731705526017741831071427549327019107682850051368201511998438559049155876662739103914441489014590285394591682964594596238669495058907618905589438949040669256304636402679185846865217817617508861988337028640950807672722286432252675244756249924326042900545200427553298011946051523168947398951669179361520918023788887810072090288357313766187540826550223063614598028785513879196334945670404108509869325950658234426772701385050391504691301979079909229208146908618774635464432289216638523101733340325245659018981813613627156765332603843624135015020486564653552495536459784898367239648129633989477290973592753233097067257071689777410609398909337164037578650217211071055659847712272627994573588671018667055189376335962648144101052783428864034573088471562227335749229781238270584957764929526461626491652223129034233199595524676838146449196090664716890352699052252363202656594641791144816885405033933431185599505464409852193878571487294494493267254595895240468383771998831161629946009452702899890532847247162236424006674650502982743433784877232902544136162882810789285042929105018319210727889021761374657505159687049744521989930378967485480625791023954767591693211600429393600780583372916454523531873070823271471754835213079447872381475397240687209831064920008009802107876858783176531764326314949865595289122239762446301861019509723457400396861876599936812661096704574198209935311151531420747184788590837879507689815596186577627644917964593736549203864949953379221646368271686570628195440138334748081962541041403792871228906197874757497578263739821384884029071059118654085251466933316041256641479968371203999004738900005720391156627681471489107919082738218701071710348928243617339197924005215373475974173481368810362184774313410042371292886249043218349700877187206925478674732197704770669007871888303248693931414907614577185783250877346513807484518019522021023868545076913531158763014021706734378704059790835481234752041486456608718432358071334084721354872111987960212653417723632897266215493330348849642114835521111843206878473647032267585946807657939258822625773127174349434626834750897626429754280194141176956409371207187482823242804314705720590570303803813697262087389248915316884861878807678758541891341564042230959601890464875275758950884964398347824541218366179324974301622169081157627426592463817140820506446915783824833264725398933672333878971761187149561618138167671414191766103501377110138110585119379558067817717489891797234624551826056287764137400367329102033815282268827912684135902504199353451325754982413784721354422893114478839884750885365158951664263987648764359309661101539535923063501467618166069516817601775083191506286395218455789615146890688192032496651866144250042721133419113964802653679263584712603282204117846729469028192610181754487688120043992007218507706356540789006651851400621479427911043701383031167359351631771022822295741107745696229008277263748816749907282057592760100997317886410647118176105972457502627694990569281813636540901977632878182203958104730952575887476596171749541533801827148207398725276788738104293602307231431905463917418812653280604951817998321098306786460759937199613867050013645946229235465922698920071083844735473279934004773908807901010349899364183539670030780912829785511117176066629029794036283007276055425412035381382166751589333473980440642406552238201562587610381999056638023886370655371763577778199382082985372431822539433546425040685270001142231430893715564942899264229904711089234510771650010911719636194731154602245978740933939306755434091676752430790579620367370434869429771832612788938218526577238453695044924613982476747731201080297221766676303825949906148001283886997561718591056523789412745492850639236031414638608626231694150955780323944646739587098663872996105601372491074328005616087318015464986683394006391161596802739755183329059190108925539362782338862926009546370615112968605710939315926820685807952724895435640936784298107252050942819647206338944790690146717578277796924462315618872128750175070037726606607780738899814374385633383676446862385225464410071462322593235002952848887924472769123339098467027121417418142566910723940984261989577802073265606436394794386874942240756370939302125118409456732349155344322835741963015142672276071289489959622654463746686354288749511411016583962275281588415903193318379344748818406482149696317103355364499234348337475629073925702277191901886912151716539954339810377574895526446103746252823396853211512469864570920726244219738908652674355872791067081453117803460258283611780164645460479751772802739399423161016020590197088047517182233752053770137767267831283591563549312013415110092016574711857034199435033313942706024830859048299397436846256769140798961442686222741164343033556956098138777345632053066843953606426952673722897873446425279060560340141911091786377739844856269857512035593146900882333892047376171808807222256934170247563977641112122052278283424215380309967962667005209852366706370671256377342404454241462543930654842022088467577093316999947533948066648616535911949163941262888280763127674595697798580468549088744798843854461125982486017373749353779909271696595199161051159649856482689736720390105498952693377304453104235044090589084618147281073356296842185262475701917917224280436547394402088408701675156438956409272324506319379807764226663654127196033477941189398547557511974419037489234267016358598670795546305859507040510290563436557863167647324262377599118246707693617316487015930431841757743681445455120657659587576438008729804654074153745743365882347276415352142175702078907178433002718450683333136523684062785655357956521338404402259456353986505353923823617408718363966561802576285874562344528511056525442744103584673252068134327274734114463096620407462641063006572398575315259515044542318336395136321741570571952776482898133194569327135924032267237082649363869171803531965355929970183534509486132118351407923391888296605674880156230753304016559161868629693449900500112856499252286708118533597834681367400340436901418531263007080357802004210422884569259389951337841400650592512194526087183072858078350754514557054299290217581189093250483780320516003696275994113560923778419779268715298103939043259970498331103784951467366976761486803542880065256089694124260375353392336498099032630708236523044210645302137151342434687352580581786849191625105040303403994370167690969203146987889985109906130801868694771575130967648339574444351202560084555185933410702039233009601868944866007862405470201527425113304929322965205602907375137906320337957290896066896350775134446164083761804128744204567853321527540285935759142942471108683514914199635657058713893689523760934629415196713858353718101007236705740414066424756136722772945775332003583604256228160281838110666637464081694105961334931651538143500319291278755973909138728076981237682723347317329811588786445865497567547859555415045794320523950328689329226109798502864592607258460332995878668810573972875638632015109378055591939133483329020782575450256282661548845035804921933016146130544464475095403153017205574881896592191776122631283332451475501787179103822400823805332272267317166041685290198237902312350268004443415172874582693868586012258917468880019214568393913697239216551154281578727547336929450915068960249240929658114564070629558921548602316833876951126602446382031493011771725230384000505791431187015304688942646032828794530898482601245700100381401573513734730809102508779306434494410193345958187597624713459280531996538934314434110356109899230087318387176763910349215784159993897440911219801447519583308496752746661951135049021625454102260021478786432461542703748960924981124904966749750349597293553561163795121269669616373944424884724521421908322182584896757402429391449999731731500561665569664537639826878610323942877467653494839778509630459775347327407124235275421651194499128097503931203219882119445456219051191620674031225325245908370358412535636433350344187711657340190752170261824121134811849885657609251779642232691404881465109240219193171543746898626772932291789893112218470207905424125674572149988430632502431364422671745286519752015050233776256095100831741784140662456684000063845022345799730860406706908803576772893228190082129901994967893713773527922265141739060452248134044087598794078939306934202492600736597115400859233082965741700803649524189909729835812444186437539352372930464874434956812277613802451741784720979607115340105950203344696040747670184325520520918280040276503228093155463388723946317620048043532052057962826287628431338707896383054898613179479819472431988166118883462498148817797947024884049416259572724353550008180759257411496335654503881483272817084136000031364042219029963767217234335963534903778161877947060934766038957539597106568331303223154549889535466632956243266319801909949964808899644897947117812604236275817712257039184643401390742723211168335640667135218921584438656072449270574042616907391755116928807812408918792157301695993387934121877113086597372923920777529508469082689599993001325766872130668880813845121294629352584142799199106340160316595739264577315064905447450661899676718490647723559506787316262317831691868649852956717070205358459687736020090594171614244371726619562381070079710247672322107737502185561618373719129365343236896833343986790862593454545061919039585575436501132217161180032496882360286391593408300259682620378674682116086233982021844741062813853960145324638535142565313428651011285645622100419642303866705284829721614941659423024128390271224530198912558226241304879670751578473487175930173309198091153992925828741635198759690480608193249822798180213591275964018874425241299090549534180987213928597080867614124955106343447868685839382027306495979724064030863828236393117755256274680295647699533926712257790121300097448249797113955426799275636816049835865906968887139666123603917291117460345485644388543926617810186926567810577725618980403917901090018233183060189462144103086647099910638135318455864049900578216383885856477620165529818494618973966606496094655696579120953049153935813752938348915725727348479883396042748618320856241363806354530283222188810481432976051438296062674767725022556708936825584513457269599663634852036201405081767082374008087406091014833139555558560643177601306686285046725731293752039540077466184940380791962459031607078157464359969003801092046333571992224494453795412876450506507533547354727449693624556174466916622130705798950164249347588121801567366975968961067171383192985170415058049444021562746695132546614111890107633450983326186741961223660079942337173242636510544870064816986553061157057724681249564010551585175846902488126784287105236926581350399635708173044964034776921729643782336572465342385226513026157420554789555507412670131120184815227395622544815385778374991241695310379338971733152260763507801216332730133627206878367611326561765684335126750362698388053218389803106742644200896368780973300470941977016843110663466260024834909933152829998386833370608871465537818805327186609004099672347096184499081488471031496919154654168170075736221224746646506464763291889956796519540069844459041528184051875440571665594532511226375874570310372473775352456662919557832948621531817259201676542445729266143715473046155636494767536394058252716000086144838260952033367342959213503933129726888057800388570900124697693472062261420060172733626161970092033814765969273685862706830137076299492125457370840785955084464011124489839010260375448383379641258750453051676977959904139252566867140302798299622593065085101414619222464535196926367649613175548791184523865559218063950778405809290387889035898664349431409925642376456875340746746896368926980021744016787553735185423457347151977649909542088163090680696357618769464740559261627098532874939649807396874951329665828780966116097501508421168161676013630671434281937673464318003461468530294673385489452207302285886711933746352782004138815372773045973475013192946237488337239656305508835186934316401609245701774129194311443050162861149979183395619836859298960391796166824292813515203613245549066099898818600728643054444255880531150897891966921649726176553756389203653418726773416820477115526383596686212799461011292532107163119995879379504805387068462551177717048280794822946442500007400485816182439382978531168209556764074393838178892772195930080275136727521737331786233698853501183609059186852827045868341139995436202721327706864156722775455024030804919191567603049979372096207346866821233505531529602165733396521287739082639994071358523997591374014481824148115462685723529252965927163220408380373480435384086908830578230248487633930983825959996137667535950442092857752903757217162182349279415894844425601997958093297812851709293046011378155974661454654282001625764678292636709542577497666693336323778258958420449390211454980365260361400465400136777150887501255326292033498672066722338918211905511406569097255526429652228209759352067129697714498473116110670484566174621856440221269538255813534579896529722547036520226721100712785333737599566693366514876139460174408710628853024205911695779355739037822866892075055127350226207998710447744054485266433850624834277717426788830532090982580095789212188553369717329399256712146283209221181633942338950661074653839551707372266101819123619957763490643734069200482286128210631336972528801264867267954636517380767995849018698815778949280678311589128665658693982720103615357931323632901874141369609965425094416932085316496025682326158490367119377581899728948269571038473447281524039400763988561995680211273594155875775973980419673110168306379230539935331944925131133934841345419176177059796424982837244333539412127207031332126070575727678817939527443906214362407607957477469190362337092815643812660778335855958567924496085310055170803614393775167680490166846056702629583559862116513314922895393568586856162448940122233751968086611677449486745135309404914791383102363113562332565917255933205561040246742875389068034396092660089329115550892324937801046048897972379100727679298379881127425996702301288596632266213164166426249157166220944192747958120451298735187818144504408760739810919551203731708715849990547929268706960620408216417905310125746759405923353980193755017222609567214321657583338538447397816364591171287091358452830031510293863677899987114502155009178316533802373698390227776997272632627097821500268605567053366783026854288793017764092218469195365124939987584616022475588321846209160995217069414023371067396316467345213735968314715027373409492317323972895204213767433997428639896765576903092157321084415853869485197486510621015669276874132628871365711010630205487993799504493456492821989100589658409407441086460406221355152799662897673693224907806785281339922119010242512509422625573305603406490133072498664930973873589062551390397497177603419912171333912580933927821262509469421105817382418311907307318679420825412063184429149049574113670958658080195169171506789543242176214792243952010038645341653126391641503229150256753185586822714647401685126681011695725920240547781362006647803066035728646671567090637562958677406398437896925689294868583146914324875944916154925049645494281542811110628146697098668684237604810311394442218041072062312367435510710296182718660678260852038596105649346273910612822649903154222185076578928414534524202791427377203007255563571519578805282117842459751642020083210010046842183389453104796341405045720901109002486403412235184641765967358340696161322372847196281139855135805260371423671154002435189985252615759697051360971342145614395644029033025086846340466230952231546255311864320583221715564622968796676104630022046348463485625731723431966052560232392875928929600515921247020368893901370227331045953526457003387642459802884926945362144837796998236008784248024479824435322903875822043663907202131874411613555300469907051318837907752987312617823442862071537521372404482956708916253989608268571678498983871731113341380655115203992049995550166772103200133058225994296118054005774577237337897892958443925254394016451592838673948431735896774951023694881534222455600702820117664946566659656095338742387502592227945905754796511813269387342475416676742670865682978716420608255354543069126003338524928602356017908068451991971610195311241635481809780936577754029289783014188830610300635805482757327378159426363797974955400377466485548222589222040109046477284826362403100969843720898834087962222609528154049136985454863632347584919951849816030932506341831078759595934474766518560657925666858993371501628570084493493092540603030253747850885075204017071946235492197553430206191050102387355609214208430861940004200005688553341674373383467407309702249757732922566958320715313795155091688061186037089535623742344834861487834855941035681284667632847498696401424617176363050921939527846257384392677635746502047794550685790449450009881352600202536106166564607630205163124656284149721102542784550391814916245916338091647607273680486570324439935410625118674288128342996720854103421591824361381696170238094406502219825572458373604212587230282184485070967153988913877001324790601234536344768579286216150393537009194359399696711640832936806918588097549524592512330044482177724880912903799487038888541122811989739686104153628465524822399163828828666470527371718250635121826800211283918991799362346020572284866543602537551876758440277274730436590009216538708680597533540778269200807988264112810281986242047251875915357361013057231962053752395149550631972767417531225275486423412424215990635529966916534630616425397589395641894578520078770970124912501315216956762175752668910108495935468541204960379659518377739663952033436126452093937048712008655806443430811431626632212845453905539299620881663540172421706216108225567808370997825516817003457029810698400084655476214749791264852201145438952095108253089204269718769749896050732480674527260367574514191729484324274351460981230941586111448220443920914807966940003936007100453475783344957055381344658966467100302326327326853466693826022070513727090402818255733348845997790840289453600608848340826685879563584711501668307486333105629939583063427734838375716958895946660525296255084624943222662131729878571518593790664304413000822706480200536250573687185103963091655203271101824802577039110000160271095974278292584187500351281110466879848522753445625212654785877099953628219272556978450066681639434317087539745458732753930563368833502822165448112569901480649704647628055777897408683524310012986106843742332091815064715653425909541307487352604070774506853366423004227108575085882535203511259024875255980025073840587754181273349154644716317861857123449651428837121290545237390086683491409767480466146256497754273550279176500862665624871441163818520940510604858971581734267707872351462827641964846175300354871297639648395890966442602503442854323322555856850092083313641635535455182161882144825910639781196076489597814310225614772791062891716309264400117120881083768764786269030316609501367322135299420277338378293443573932693783995348592506530338434407042543433361459370730660746630804567677975236297518888186539857859223215450029407051002035471756282340490774177340279135624026849987044856982076027287621316761107132373538280062435094925442378254852536773848085721210891646519314415484654732285965483097593549022648643311418632493203783310891524347292675595554142911786345114375077432040781409193189277540333450036933735155395011734273752028367486851880716710090893482794052442364591474082380448140856205530280541723416654335318792872818361991794165214183938521500210539482376424499602002140487249476025451875203422149659219226753179969303896352251025427114351794217500343259458768708572107633469992119324975347758260833601574284636625275290297528311539952405902787230272941696967145441606151125819172843452699345791207461048759406191162585174918659099144429469450435621213878196873944816078916460613411207047836483945693599758329875327805608506383974539332985211831700644924735652031260405872272210423465094950213116894348327701662517706485570196067776972331787237828894735213100061284403465812039831977560848453641731339668091180020042953255308032670949660064213625084603783668011126178147587960250580857073661857646633418800321922581503135169541295877873605938728167150741599555279969451359382955765966271717344536145514478897070953086837946594056220026461973273310312084423972967761410589519695396759341558721616315672952790975623050828000928731332479405952445966660393931292016899356789775976738382836613134899526115421634832991278911276419026917285955511526015411856774554347922355980297229882460382632430126081344196345126601891566796731666468769267458311823785702278325813728785959191795958377664896907708767045274914516701753777344962638581114480280378648178504967352733705930364063761326874577419192879276667652910443338494632958434984232364554306578239760515658005943050773169136597803517433405676968650636415201284488784649094791500116600636826333251198039572631372625877188622195522801060900865458899904413851985003604407803406129695776812122648891506166844356821713814222259308090122947908911262418971018939700746329122538352364736414525771467246148344868707935527394362009397680520808914125099010044715982163810652970620274316662299300486846410047118594995877732725164930966531226907202458628010512661302608487570732138735703138427290625740971740944639504550163320630190847581441451462639451388593683547022768518859874017787731214407606932077893459308300406034145881489741019788867822298449633172521119537640665336666573730599872241204921374003994971926636262135270575468002277925629236777949287387428455149475368386251016625314005136882440828801834182184333380572357319678576020396194432127416142316776943954730096017003145839090867282571351350057339235406589373106532270111042076888381730630425643518088271682127645447490483988628007422188506475395498190143281180256350639856255577440652675554766804089554123578271098933549537346516074531403164685372151831981803932110567648623240124223293411117058906220215325200896428150600344310576444247229611053613928852150710206022283211285084601709248186971818704124928083104786891240463454979664051145268911127531369934160619270276924761551377267228420514647512716050649752055738583928003071884281953819368450459985866665240524540123960831245920092160090495436371210099308611146334948071558578071247433589789101777130078067915385673244158350533435869935974643769644092788109592589473937358586057893156495168450131246344267276587039082640934192291078912745517043350836610838859016373066631514847720070504879977431018386053519197861394043881161988267174693667952613343799166990468153620631916691251557761132413446824731748596251858794025823892017561962489862682596240245541786341115947201359766418206894309849910351402141366150721826904000484757521730361728949673622924899502436480396107393175170431533279381860000460202826428721181884668139466803265697395682624101497380712745728090603509337258961327535897238267270437969132813238656999949050266331655419193032178909804276566356734586316988251416807999080207150171420482928618810485836183219155394519491736334001730886543797357302909481892858409630455652738575939117766438120733534087529539457012367542904034484404316491231473496816159447119414867377412355077351497051148345661852571007060392183000385983132478576058555697826126891284817245233527946878573905005479953296045540198377493800099872574294262816672780251160650893273676061329618215659161978296755088729046673232540459973807694829470241078699277554305058235469574653314111115383577906261565461410560930271363391027684321497837306268887049335465389836560830903877691044302184786001400999811500181621702150231580981418138797824540909801675228312707755382520885591364487850534212728821474361227697959629673952281019246929467666741407078221736309019130571452008501725381900258234594274403624356942030762456392608353545795200124485225798708486824744591248608841316783579659288166424143185196952116679850956320494197517070627261375748655402033540722264016382615545577202195803247049636300004180305265947143550328018999112937238761425380460528399827781822831969106543216865601000718678658071833920381929158885869973842604407882296117890613660487728396857283648308469442534805488305298616955603165145809509961438632452818387282712785789783600561137618417129177599768906365047772128397978806276417571820192994903161967261132001400655600600301039137262420268050260824292665672941597993393950280821362778747533570343672858516454377408007398175717602793720385638199397958844975469356653131842131822613944320914380945156349939389183323018318762092405515040562047736173176255641414232025577799146046408131808113379585244092314824725747659830747866034753807105584259390248904908121263822656213955034170978047687442777093841566330794346342476279975586886994472301452589854539401555916039400533654606176874460915913659596402368917785431477833568089168242440734907032182780419152440312378739413690407235237270808364253269761884507034903980126073839607260810111181934083931685130280948460208810154098785230244078463340781031970074984035418819098771715119980692880680304982440657628186428278913219668014670346486101165759787498613675162909764399861036043830574772350001596965911999438492230149501341618292828915892629420582900208835915885854757245562730753106283176319866508770529664158779423128306985618793381188069202841747322127703401256197997611145735070635782229773602582869500739750626344321826114784286955041103200319407055634708826069286647125657661548246198370269773941782812014959640198395031998581323368125169857361623914895294445883786267213094995827408918391953288397299146634403782422590340861255843833360590213026767402520778185547127947688530740403362703861469578641149030534157322648117879190721161679153908286186623240325763128257078212871579731892651637413758016536480941623698681760567324248091795961635054912902633494829149356419546538566120927664242454205656196292993550631239408691444298124791414119727738309753140152126096977239707633595447373494581536477739458727278396216790518678012964779457098860093926523131297478614425084421262685390083655361888016570871766641350708279972990395006361029561930821385090060698426093601781630794248172040376274454271971166393064533160867554339640907657303021379972796333631422815114515849747312646425876049363316191837856778987157996144018293165653392824268775478204458898033644983447972250318713468443126285938533100255871021681976648567398560728305182484526266900008394509307628620023675195266272133423273838410638931614648942818236977273695937687842268839636695948944097173688583002863754488866826237789659972748364033387878675267663152656861758337480317537518876846700074880164666073817836067250876678194395572973914109399414214778194642260580957975325399943276004786267364484843398769052711139723866962792529582739054089670001925356603877172097840713034784655589085279939181101462588866694903818924636174708250158880591426417559281139197259405928979360084543122701228505835424797101773911397545573683008254267601913120172998723319380103321097127188757596896498371466519500232697878816463242436165654374770848215855894289994206601075083604196345826907721089956103741983584680710853008453852346131505330606510023571423435473960722580573113844672550174555032700710141537481655263819495051229078615868888965047799967729045490984608510330761885533988577890312872482931404554182146341569898432901658453951828414399468030811246951858386604100000084195939097021098316496645727838447755897712885559878880083413160760902339915120223519594846317696467076613194669308658615009263494376299291403522598159545073464164551092817704473352288956290791318139792804622205196028109888066617265903960982820130030052426881685327197023038093530854582777532620006263454777523794284719881398863292443505236005902282988608796270429464795809694465809789170663302395776110177739399199649542161151222447878217708500956709181451775297786724997860455362278127580564642437625176634334679452104836249202890225901038713966823447345949445672884778724636823495155511356457786352878199065909902575935192610846440370799903707757897804857592605589164890319662103660523830181759000816412403653452642343569187656529411978968591023047451821286994155538078109222371481663402498709704454266018000613146374054261261684723175470707713748000783739600308276122510804621066652309066156915347990281613232361424752243760357307974665921485867083971930774062957756958390873177886185968914171355623788052064333689794883796779136958843245217903960052825285459366816558237821983296848011626673445242209149403121345363379767863475497169704488686545917075166612250407143773671607007445340632757508390440487003449686840428525789898787494289844557678790659107759167126015860585309456741690932565213564971315581346210706779813090585135327373542036928979334960471581593777162830438681912459227625555902946442260971794915992193851678681967998101986924214794417837602184549967028888475994288167633312122550307058297364942010261706537686893665967916956264561526032541609158072810059299012560937284530868439622218571031025525314644419872915829064645210226449456792656080234965912123973406891790807146370787034872543660447823785879459992203839990075023933997953266233456287358388979482370051220006984300341087201924336960582141864764333552990541502033560251058310712860696842806002410833392818173117954919002192596059878595180288094654651051897781564094780505165506594781775280130043006474914909693378391132577476402100811494124202061493012399740145518047805316720413926876241305036311313247432798677465816659808832294671641075670102696968439320249664466169351881802528345724835178012993532776296530279695832434892400261667307828260045209530234462517076626828624439233667084074224781076261346078523623514038008758662536500997583662335158844981043240042294863228192193994271779506250352177848012486994977275233858858765414613268611798604450306969355366299842160228973129894730522155442218144893011414017084338633730332819976872502130627220551900220256072518766417540529269950316234819451781584740779311977722146093726312985662352912733798210935348572940362878887963620124414948247755072384512719756619975220743974450224440612427571467901133730170816410911912125387522748019489081845794514680574864773525934502833861376590768182435849446107196019475123708189305951537501152787409445872887398860929134104377425949904987665763948201789597946386985742947647970687199590348053324073756471063311382402592629344712163001908267462840538996515638335067780115670616161259469770093149085829032890150967225674595495424393882417435157816479430768110441727453602053629800536448753168729800314188720959355776653800776636597242400790133163425130936580037105461222542879480131947090731332275683884762698684343045674351992860503058573842438232745073023520988937272125594876641204165223030989249369539215163173219180308838371247495495799971260204903042113095645234897924928322110977459554539806987816809788244773284525069410230928954867309936706574134714032784138824279649246060132145414158932143364697425530090364449757042512311446157897802200273361377111079477178558875477203484435647398374415401374887643288243601421966318211914369593404455774836058076739747135678217303005009156664142004244810566528153462304057088920544294935033147586993683084762471424810511861733574880340518468588637143905870247705996463347753450698272184868177355718743079493570747957557669964261785247024752156867298013456532823837084464515249828357851919202828307398731983417575562591395476976341044764511664201521787902237125727581577081843724569300170679887889677366832848784394978292993462530911558890876632621941060419336491533079109019275320177582342893575581656115513740973727039315550923422956826384037391258540698814027795836777970152921188026326161399779745263695515355145000606033863828426697603683106966200673379627515506089629423404962415152813593806717306502733837929201615829086107401829543436587647829611048320598699795776693309948557780328119743797210672657396152452980467005937851397400896522670709148473264383931259776065726513772861012839466106276831471104541987396543729232368544098000505059225495687349053295789534224630357070298605746773175148151294516557569551994144870345090480202771377541204151313904829551308291957426243395103712616647419193053259928247783639349730161797707949786642981471110462179358852520346401648866187366486884208426846353665745320633652999488788873532178335067769494554786873611591409562155046630061489517566733924886150213063240742769835062502190240320373509556046731343471136470977932059701960712322192238207633882640264803341795482595363645572525055130330192182851297489942286676138916888631332422626841320763153527895554417909114956915738133230059650840478461161531850824520168381873722180477696916530110743347298682214276559490320171917225089283393039272577473255571025176200083814863466379959366881669260451487003022744322231459540637059332854428086978660245526349282784732931756705950221932069308307445159552203504579245761645876800309212278368676189020058562149512903321328283349714712636070091527910120903030378911365258900965726706030068782471461672053142564885005587317509151677160531451600285298346155910911645355236362388169623033606807041107684478422257070149162496938959840518782810827142292657450543032862932314200699338030548112138934690434873105678256830970652412578977569986542953393313568962392753044761420997492256754781335117257670189270418075400419865740274674112949141132332351211760384140828699209288861446572561848083925724642958126732997190142919621385822735220506488567405718723863577535680342763738579499087108439461019504679927120279757333500114654257047537335642599011830297402622079990629097079085544126594025813248941998743527297433715171896784169377437565553339252915840656734442555643516927634744209761143298491770179586031377966981884906845658725118195518142193573792346280538129626782286522468045390189120551834178808039548694785343549123995849582552149274991580155156056818159227524450850346959130195611179529395098669506241873078854367443886995498755177624615107429077772768301876373196270843231534776696695729754356804007102321662863165963891382751876702149933354978405967521240369563609833443640503577535481547522084649543117923062681301014092469511237377161762952655711700218718331435472661892884847613895562819969620071700419568863536324652900117694253169904655587351503763906248573123782539697075332267006785900143589523249654160295393915173435554554417903007473282161975347187502993867664196337206744410175428432688915467743726512907548904662816706444431392912471518368622021068160898791219346394767753152313588062154523609119770901483435059870455760313971259012371137587746626869632926862151788037372526036765159949992852155072327796840855492548536762727538820596544770237624699809542075680807646108304665132204369618465019235914971495780610988297224647156989451425340811218464490334840297714258969932062814791810400737730938499311789502928932301615049593897889034174099426141050910415064637007024252295633765630627493184225638997873460512527162506390347976259426190725421366402887320218078047527036108542611795631231358000621044889960178366541048544705972980459839074709473344404153620757139559315392618298276623950501116402558129478426260635596185651572017044873195235392131054565682777775491120673757470149602923698106129218826724699539146454576340545233834646234508288127286842308478505383706794406076541043527590995828241576403595743362392172072815399504396751604745454379744377767757240460973843641974710437591321643980457662844598406398786038730674611190856716420266714508614657853255536053649296982541042070534820480324303385259150837936161906755379280756186275663051089760017063373340863475763011137308439799995912729249386889437322946034163669826628629145953850013386826605917041727193415944180680087793610424803110084013320769150566995085432930314247150796809543386431317713702710417290038087405733579506528262784936428891652277692103218183894073650848687675674347883178017493744435410839978524089773374659197069255655571428619401826585439210749213558147451613738952412386305407351758008975264223897443699561021242521500516442252553565360821584019878527541390774337959459850370706876099280908792766052625412393921116398140323319526515284078483274291887103372667000842354776505781447275757407818609649541944715880816014466093710792155718087484174720208631338625410098029996675601019561867357931199603241727333326677027396399665105038587241291893891901874899703437031623861086602724886946081885607116366522325054343821493049860858246132800365651084998495502176979831636831972018472169084517162890425658864602095628599308786688993497551892932033419289853759312541606733133826049495553544267411756040447648086638311124256933411727006797218115337474163329196270327580186095069228012926471235084939571953897284603329505974725672365914413596515380638026739378968478777672127368331765854666831724711145894272410274559576710825643009924382228080502725851293808094857017796609366662235905441834684911186166415130295010963379672914312448900766829521041473535335095545638909356566394170038999803319361069198213322479014480692087485237801439883010383158018359759823541950364135495608017541222882543393411016332360413072015080877063595080789484202093789174164538625026436443858800367659255952309932844009043176470677092744329250102811105191914639640427888237031113122164341438412024726368754042794521492017140482883220082338200124741169757193364012957721711812261875994992873666842425353677756509892601513731824351986321292763674587689016671069585126282876920186124613696944565646432293680071999044352249032618481599170512021182725524935915195256871899189211206417150504359832105119007307483159785779608213771399634963445532875768853892881345472268251922973788860643604936143017448713222107180788585630456201772793061700047968362591874063442222921034038819066466257900051296367984973700887756199367896607457886267708603446098436202456305797869801234210874182312227461791940312027284538656999022282414825034043548734149337269567239801618766222739220860836019891623423372477910950426001199873086740643134872336344033765709081332625534828455313711366330946222439251225846816151820350646515901451421803132419899228739208797605885046150721311340386458670292073750467018642119181964217926876556218161866914553699656919148931770038603825657644690488515148589061891625556944923346764803290634240904480512672221308155401937555409109280235849152716303630086344469239436196891667556420733802417019895159201706152439353330310994410296400972554272457112922619221713278283602331069225797096344350644743739788854770951644727345455915170793265304098239317395687276195168828542884752692778819224284636620086912287149853728938232800904270763604217053572606467082498661582539764956722817238076789938030945058653177724310580340488168110024589450167138480557052358702023018259099597650675134989611799000115928387629021262758589121102948880149641152787884197845882894220489644527074617200647463574831975458133913054837683526376670340498804234863485633847777067430521932469505245246461163467613861569976374274192297461872111440141658416563135562933240675616787832041763615427209370270129334093976384738705815713326493933067899116332808182461380262124276755385620508706002342448906951764564032191862007984082239764678236222465636431069612005008568193646333011861667918974402840170507618265940461840499457073563289285839572608351024962737183462386748520282310518464630925431426389125474300445516248704531958259732145792748539829524973294587359682885131993799353098910430682201319071800019484746028265618398796446720136035103874922945827781313688050414337580227493708549166837398797413215359613746769072012231181029732097549273030431901802035405872936815627022120759884798173806024320040201398549846548667996747535643272419200095682785728160841838134700477244715438312186569313728601058210966065369963702387129954693203240620003459709711071734042649457857089265737176342326997316704246502132617209363083672205901460542049230839060171394788730304216108837515849472742994447559739165158516042969606492387817500934572749351980167014459310443438906105979881813541540993124397531752281890133510394272872644797888208545499389740809227130275161508743443758103089646908860609027879075500917646613620602250613621280125288952134844955311362456214820976078954440977056616632850798156964035550150768544618285258960191505581797452493259996841619500573269160354068846854138748866462414347092130865000830812373539856841603769242919268462170020571883031659605615144189793852603175225078806756922550446376938631596146591508908905683672212902235562255102188130457883701517666326251121079091675091550388406293189050580049794574239287977073532591057469178960418043356046600523266297239343775602031893259766848651989213555632031104003075872198501409057170272072736678458828655176397405688386845907286021308426182927275904896828399641470580233658981912185726741060672382444759487097270555090076508368631212778576383976762833703663936040713803977804457931266775529422042899088432436385221889653677011495369686672233254227332679400460169298330777411523276028528205943918601813437878769739781812556882402680022321665169450146943388222734136156428772397357418023089028782572718664668185845609735058918214842961988347152894361725021544096883051010137497095199201400884326977421964490876181847288888148059123003311291095112165977295536480651141852468939809371507042474851806234250000192268246823297048966156209992184693429420582738832033244931179597688210245861116394071925415089269137515920976776300230414923129453051022728190964308467872070209052349400821721425943559513579197059654146969243121227048754674610276079023808700031135074509575380603119502567151900692193704774833075085832100879504931036173268207011440883948302595846592066861285290877171316412002723787391279034205247793702588011051886373791514458804141906417571653316742625084589209067847381042916385442275576675642148915015913538337900738247246265625345400163291751249110861832067292173610134632468416110988328189267679524275772993269915280835016119130100933719629860451397768707798360728662231651629594620995149545567590434211599604507175150109216257441266708249958131336111930010783285668402195182837688857955287320574330343420918774324877386681483261596411000968006177947427118743107302853916818849871257732447036279389523921886068291967159989734743358855127547041786106952972376059011973144685505475666984900642047542428513207907555909763614120963214606033010048253741877846779158302477884963198146854397599953996461586627269809580876324627481959977897360090279154644013259483058213490365531280988917946816919704424248002187624495425573822679084465255981071474737363829195123638618252366804831575117666547440469367360214168812927335415471748529978708807049832180908208757180436270236158900902905609983007276931662070229989354607158438634958878681833549256663744218962981966815277164394013759781865798859948186571311957775405453379163934496006392628371781906501292340689827044979778821863594651831619211426051171875907335497468423403350933706464769164381609598792702756183318887870495381158160598563989084901013356908352920664748122985218018033227676988886212413559432028071162841100329010729445629167680531655674732621704359707633843075457512719806610054150561600460325054966246804914641459960132311983839507199514650037495009966933256706549382424478690341992920786233168092719271703718555602014338529644025369135194856989048040817130372467802693978893830854693076851224358846845866718218828575388296759009648368182845739169805019764390446176690070052708317855430019997057769331550343872219673688176292563990977589921229323772448633322895351014115376400029453573325269335206773325778221316758290861652217890928766410088612078237223478757109014237109799821311475652006381107627515138998164380691035422009867478305053594707923084943091234995283333211360057824481400771416896015487258825781153257099775902988579998930345775724498642799383270175755297621692172459343824810200712443962349267931071270052511118841151320828415172177920049974622264190070267674999472075688569691096978668728435342654970844964461322504842230409850468039238531235821619391019753646088988961819705872249142070623722035034442453180879224891260223939746307591264866491476768276081064719615820436388792600534183738674776557650663531738815688505754893124349651936222979510944454049179004528373272593404794765974223496536918014736376284067930755033613405195335845563300991942810794098379431045275079552689513513947850899809999886254917637591165919712603600859637720142113258153955618243306321720072452451889527488988752179402435999144082741510085898371176247023824673674365616897592688324814395688936469033958949036671789810788939545314750887807145357567992433705210581129792773428529590102057920090407356005066345579593956465831936150306407909618137954642965453483909618792282918820002991870554556842857445357347055398596408519324000107476820588668284697125693063788628234083548144207542550141008069558392001175500277661864900005768169657775953109156987767396011245146538230225103493341181275184889399566395706913817246385495428641466410396242609743702096256467442712514133237915918740496274900047884766110602308333321393733125846409591810204401456742029651436732574277023231833947957823084631439557983720384470967141389159977264953664876861168944449713396492526815016917624503208968113505720387538652185117383647358223267109092885125723055680174014494632660150097146365494310625162165444638375963712524790036349574852923687774583853600135357440037854016664473530325148159308653342301724906663403915813006189897866744718283788408706104283563898400304376952289077465803235974498791981522624692476803515645937192899478004347255411725757634903233096154094870274684781379887746364274507633270239657904926211932388723576597759296404400274829640075818486813977703741289862028238194936047051872699104340693144773823880788669409505141891744048385128566733018806899955311884741986194810491703846564398474794206502739705280539386178983256459824452511480610128470360774812508237268315413765726705147176614753457750180535201102303929738750451360048074314337479741567180180441733076700514484794353342765258887565907640570214082463044862154761882442108667089266919415320917039747346793491529765273815013152129909557776050292729908865584519256977917514123134410418809129932443884135153203107492702715580571409211827518703708325103759438000687337273962049799704192404127670156471430470954451169764368550859446295553883685119923720733262214427471310352014932285800144786721791955944948976126877615102983590933145863098530163924718035899916057199212831664123500452626403545504796988018852305625394958670070866191550303861377868423787303017231860280775698811055978760979272582468118741002200255083835497379075039394429658042619977683244669402548513156202626914677972717257609574203425947953176664694048309691558452249576386501705172512827823097408073477408289856273840804904863358226429994483221460078390227101873986259416350870201897327582125046221157085226806713210316207727967404175119805083094086809404255396033905295936608464483562215894002484201601745778734736153538161645770712033582822741484847002135060441137203890063395044657637689055688120820571779410628651495546102011203509031007553157657711349072350554896710448954681789624649832543882823452225977554164164397863723919297651971080675036238479796711846153163136603842834510450989758084037634902116872509124391907104351307036830138476309292318656711442135720559694885141630861398397549264095186618143206532870370343124933753764006154868190679300889910161509374739557799129554482558950491898241565101180997940701351715729320718342787097634501230768454942413323849344009559217102397347901135218007641793679180191859291514075974401745793242156170360683453360920497114653812945831085302393153496829626472942931463214220689578407893961938340537092540714497959717170893681164479768391826711546665357193666485086300657799307334861444202468831163518015734604788948411313806608867482041630205554166034125371019849247717066393576330477068549361886003406015626806189301707852899907613668251090182417265281332307294166538146307053673051006363732258658912102460376716439850545122202137429178524632184103247253573324631626746242824957235909891328572410949585278003236744652115888108435341017884293451199189735766332204838719576617143313060451260993434025762064202080413980097865793710553687019848267517789336475837603994910273458570814324058419871702502803790720344947405434159815207015601549375226558193616786917947838645486477317405615328585717128098409255899216967878669182063203700298823681782191064129532264906393775724427979567347423271478464301952660238308327218380851459931499640771552936887378921658735084772958495544734942817164295489985236259102325494756336205057052811615036990015964423868237192460014338829349859442438726522775923647504729360202850561642250487204150755173499966550072232700898979883194938772003781179509768175820323404973378314680628428524067323927826635047887379102924130434575845022981402880785035429874229167461256573604971105715378923677849348084782220838636359607693173023537347087311832936189240155280581546739105239973520558555579751289639395832705692769844219810787266876010935168196188800909544543694446513222993680442864504438138131646351363656188862625946517531388726924643941605756413856494653347526368290214566458733017892967029733670476787942727391147610201498314545405049992500011493115236397471494743594226155276216786311149746264658775254489087825454876438371000471368547338083386735639641696606543993506336725508878199589570143287954534911664471695262610261918826053707378610318471589254223336170461252182418691346239871612317237427003272867669155234894183135322537736771384047337978255249582729805120475229376496968238789687504138779946118558277242862990624428778341265374276333232117399794640472686715269924192441518576077534692508541335065123672058260484074248683451812299740799797524460851216547918997466640785970201883548778594969822934901234763687745208308042925494648639115411715984972481387060499083098159069859504904610973178311168584534862780396761485797586807702044934880935101078557665064375948188522087889402957808120477034756427314561188675254344667744752196798711428601384021584675038646715205805074411486708031520384457933303770608026673089984451469835797028893240812645707938950642697953654795867543838226523078891392413628532353658071810527201262491730575499397201840062732552975885114077202387880862600204007807512161656187294537894245176260998544316271510493845410540511131515432293341679479567790098861588043545273216455390392373977988543451606911751975944202744407392018761037366236720500773971462360436637946008148169751547020429718057392000339858058525962358690463505113040044129854269911786320306437793217546857481558533278120139265444359128936008126096501653739376658444742744423407299014866314047870729682620083214731254139586996910283553143099179432368554214980739503457280430953661456321993415694381855452713155878179976034986960199316529088186984083718941649273947765552754863621620556863927096330489309621683407626243181251644707161627518542859158656837310630963740672735087697520583346116379825233471002850172949040408602914451366479798918568349088335828391555632241010391529164332403939414067558945520294610468337931770367106655490281254609489702985498742266339172642274475393817130272773136439670817509782183531198467703663747498477021653516136860217421501795838832114123083076638132601115935982637612098068709080788804716015011291861084577817969519851337419565529418132630257391130758672685927555982953432388488482915928291481072794011682013787691112922434438980544980716767834572914748433284346419870230768085393635313640999405546316566455900257088746428848511228096370472533596586235412566668643370073100090843304705782145196239045828807489815744596312148858601766810959180958292364519988381388091637147365881095867483374931891765516643337545515659762875872325146023632265939969650502912479557656138357221453245111480055495570972850583875585386277362126660662636742380740281841624911363408321991677477770183024821443667061528063911420502189965405015820075008425419825560530329356896780567329324851908602883405107770891457713682387735974333039902810197615309017763613560526310362989431390171745176843769977274439732406066212705774541413656428423674875910939524744734330022468091025657194422682483025312331915082179546233861625209436365124944331094266874597037965884276572896590564796800835787488387132916849203667415433047095417861178857677642522757026468355822626494068951237136039597342823317569286600865758239285297098680386324157777765402779790828958227665333256418779900741456351882059309465715091473727181668705261111894307053242792015229471694865350509384915226334494560096444417153474829970982493493491565418384127365626541076023278834645035667680685259486922341845666074390340848753433733445827986025270568617914764371826122606592902370740035752249641391357512359120581875718865575138924484127215913430346642009169819813695780080750221629310527292320416336122240596922506205660249150432186741065390834946978580052041363383650263217880274428423237058394186001570575682846136120740209962341127039700864168624544680603574429841745688657951196431039620479745866218832522777329191252965126491125774394691467063593532625307000037819245653176653976084079406744950070445481244231055435622258891461186629579239274744568434735031151136360160209593389055810904673886083525421809821485558871744709912090330670178268646416658136321910938005383952854951689409945065543695852544666924522655409358284914870925650795621113006667224163580445477980786097963553551933232025929110105348785482144786197840057764950383630242608407754839702231824246177719472408327674754021551022921414338170526917706442762177937273326957767489948498561872031480240790626570664711829937045104483747013816956623231445998971016023939817595964827852996775652017746136159593505865700170714446581986352916525823425921748042173858554384377206063236782985043946709081246581994599107474654404167792993188156845337542021445947952617077288743812353702057607753921111389651800293704440853580207460558044173883081689516315735437996730708086786540143159291726749686300700067781078204025317576281451390425606865192049172367389383558539878009552094065306149586999122201893534668956100475227957204295158582081597584364686148962683169196567418588910608836572338075483314385810757501483948487522367562506643950988388116126816752915331813628478835484104062070295225912031018351734676674009780016102750423833300848873647457410792021106602718817481918547868476985293998485523654793376830237375187157997150095562710322856195996139703066657094395885751479511507293480015225729321073228465492432909478214146802028763519012140659040715401410305742251506151784052972424324518855733622425889185662885824867379022413337634935102062522685507133174768044135484242490940185010538449062038127377607311060964392229898838879332267311914184083375379549901275519504128219747910910409996873172799750038483919322405365352764304573783422162867348900383199803800400529300693887513606255441990643809765459410736791095805616374639637259691473739498783987895605428795524656411353041874925292212487945684538025474087281420132913833842953627613305095975639292902152863874541493536775805752265014099099963166061504879703339253040692886906013312137729810923523751655096619823393286573056289389493124341371943882976929756630236801328399972100592725848200319635421805993878609536255598672929158928624376890687178605250139782029136514614226084140413888907224426124103265019584749152630977671704886445041317712545324019219904665422443415924045742958264476389646216524400170393579062978680775478436158578440156886557155501211576277700800575340249316108578533800302407768246496713156859881055739449289225261971470564589754418033771515788482888413571367586035199984318344677879335558461654423376899862081991390533569519875128081101992131728898163793889486240275415209822179999444599136657031842043892953185463310125328735636983511395509272946465116386314442885106163668259940581147504037019187504347740155583207650052354313397986615291554398323496234535921624908361287211425693691607458177277359601551488312278131434706575720290973601329785797089092991508633214306846522916928761597636418239429109931927423712095040286847965258109157945115166194631064433977436986890821428796323374256422593992027441331177396003576486895497618702171637744350113702496316800957345300364841831433430792422262834170186325979184964777042069197566057676934583414047167925331665585941402169682304975701995967253374326009914746892504768920616173153362186369811797008216088614312452901604399509283474555421320981457976379519096692673601699999927850928260367675628207356242694659596402184856122632778441025501214344263093619479055212801538740939591736007775071103752035286055375942754208605779458862026891788749147893906023031194665713822238192366567140031737162679246087992014308150855510241935248902707725768667768883651294363164243865185312693137611782297270283328375197216937989678833159280511457588958436316852405794636944471151501174068434166211419915013386617710676397491230180668773263758395774680868965823534093444451101306024002244308839215408194798272481342980123734149711307068515351806077796470037326506125653191389501044731236824971178190258081480437307420545067616334595720984508838974646474181452386701765019094402911011456833091157813072893622937981213429622892546724798316368035309745847912435545781248761169010177300351884581934303689643271940505790317575393864681262378487539669866704766789225091615240437768135315086163309429522874921543684150768186035276900565880019965546972145469659841337233434812506095060670059581449603986740416885352315700330185274894655835367259629168989297845679251811563050656839402704733423106761198320692220079811503319357825608206007711610645836634110810779665923770497763745445015929879150117200821651117900532623251403451147652519371882344048008125036264656811771034623605755121411060217900482666201001019503016058690286258414586989140246361710642279874403420696778700901713740221426088764726346589730947567471329334730964779318623999087188530368439985458049584160283077157022378347620575111317530789759454285714116899947361447082093527992323841468638932443881958527619056244746497416655046422443393936477425112797133767813292488356771816697788368012122089893506020736581651148349436019179826978414858482376597965056908574060352500438983531016966404216375504169887599961183419958673147042378449476610928413887259159845939294025763176477694772602422217538458297003148535149666376724247140833640792109634274759328453199376182144403385400418980542661705316235521704624222232160803104661009982550015141977916053115301068752777254510908548105692933780787889052753550938183616583590690427579252398489939556268927874170971810826234227246779290300435000840707551443701195628646897169746247212607064509620993703707148838895308356822860398280124601634484163276754758238077839615138531450723926961611004262149344644776781011879852844273095716775276343990302850352879543732456392117170795246539594552748964668180823210599438448941266283186731555480900197872356758781732479761428156359809806659846262748533173056149135748282214074050596876753767607558023516434949872926152528091523873694078527955117466973487418580274924800795603213256740086680234592052433362059064419800284624898951527024554083668097016681824640438773617588193834294690603004116985781862670237836381197814905161932962695899197664362457575307087853086047369576134569122358357744569241335467170776846316375889294605290599176464975452342718867583930154705602110490281239273882433801286810225245720429692773514079678377827890123292012590137221301348765710287042151478230512720733650773760556217996991810183835543426364326218562100322968523819594917397487351183502216032780508800626373733472580309092961076570633103330203597054573260475743975435774863349162193209161455968432650450892867290217522897688661009450144962592823945364366001689069763761141267680233765205078819194970226533808842244940043410724974704062196603567752546131085547303965433482679469996289936747294303062650573280551420414354787558522131949351717683846231265400125263798964948938975689196751485276705551851808238778795293040206188416825927688969481892196644260998143324544122626239830233067867527629413961845275049657415825491161576467721351718555223232240957132271210195015332335197224446112008738809128623345234827879886421276866286477403640143859038459777952035009005643868073697656410366829046381084899193884994411478377081989887138535338311576007804830379758992084692146604758397641012538221886527913768582795795819104794739039542232328565191341130049734354588319885774924270733919702544715273215077210137560254674205127949040395057728859922040877102962812252498192695169429026250776620194762049440182977428262573979224184482587097784790386085709688350411051751865182595436015214388510142733701843042680442905557056106830380650480249702484213825980467696170368736322069780524248237723779032419827154659443116820003209528990607508584347181514186180766699570824500809685785824063890288105254063659501296443381059943135731662629141672709979308009811884139496164717692932516960221912371488054970834195100894487148669686135929252860700104761226897177354131119567298652680655802943205248596956595783633027236802240122511458958453248024677732185503622429507143935760767807816384186821768573359773607910982764194971737774281718927872360837095089142676351254241411463640053538811556614988650188760602629767574563900792792134964642832132770617716752719551892580366529219665782499209524960943677539753458376032425102339505922326806164843934043991098970477316967237692433630912502456272617999318846681130797435748104157297093040186029556410593132684104681141709293043620539342301555092207208402550531013926829224277824586390779977437019001308887400965798769959837900027615195952234135251566212944829166627966202062146573500531258636501268779451513583004687216481228859233355658193292466285907983219536442906336947277286332304858729509323077978786715212119349225557820064977842625797418987760838641491178456710391753211009011371116873932593115459961737672945625594070337948730913150384066689516511167421173473282161377134736629884034408408102617845713387017931921656910838480448621424103451916276592763915128299860622352698647927240104833802146202312037671686282466381572001975556358712073488898937326663981027183344812567465647128971777309300568308975422411190404730551375746642493149561225237796890357111574411376900417577010314784116309468511146127858691005166027082090465989406319986347832943778579482192642367279441919312697101146360008648489551487900752814393801876896705048928794498863645638905477851524953378532798409085411615838817524362687486955805759851907826947398798099939014835030997461413279193093968827801823198050580406409731386801324265793525081786152564464130567708888117938165047126564016098347054196159706098738047525893835034632721416600620573451927219925266932448583106526844208469134773192609327193210730786799255761659642887136363398195313297904953182939063308388769579574942738415091118427908962869970288454174510868362049815760032589118530371220574120250680790146954195304925984637594308374120636566232609435018471869530484300965563752461702923482607996065375541558651619708387454212567162753884669712007292393280968252110299136258303909331150941905561865187173121667973822869347422003143713875835155497624910496371244135071915535120489573454314667304375506865134434848196264892825304560672263076195809185841619959892643262131524568560506721862836535216183860854181323524369807702866735157049560607299661374054768379995270862109151201093310734570933613748583860485943042209832558093045834357429277333116513619528420810679204090679391581924053103206178533019044375484376192041428773170578740655447958415619365696449411615362293696731250649802626151781049597121807651897740671977221575366915336173496904211879256574234305104951580004084305862914396024725611016894763787783963827868936509487135735807957290738038258643051568067927956907671077995857962115157757929064116936474488249688289974288336241467394713978047020195170592947812913393158825941037517215225834600863101686211306795683644736065345969564316148964517837148627171780943948705002761792321971417021155811636016651243800856596964791793238519113734331940885799934600461119136922159511391815917300279285381224784621114627103831886262661993320438876152104140038219852926267340115459612107966595282818724119201638088719761881312752932611725035601687104623973587459017006080664495545139482663651895519971402975974289381811929504089374438454589135820782664398834129495061441306700515706588166158139701810940309444941169577540955421791991327684722792224209691667726747296854179467589774944011995485281807410849876587903929634938883347493296942652869167371598257808230733818904376063861115822892582167529508750880390526613715945309863679721466729460614989693772455078577572036898523824394427225436140982753495333286675892269823019923724312462268540150840778143050111287939438862292499169116021126183717152211496245480655450986792119157749939952987466963892677157022439555510760964862366274605385555727067834249387977175733180602875084853616853454128860719347283746343646703209394890113420074623688993271791823542287583362074435311645641498769534197642710803823782210710909726190930130939730054313299864354393115649991777569135208405744783352631483014424201211007332869293169600826868137112896015804689475500381395382709260317452231510509196592806639931398031499347642209157605277693105495326652694446501501079173402500060618172263981904541609257438884909577716766158386707618175809528326883787186629163146395885625553436115232021263114912782472716946277399948348517983085653252008210124298589715192468216046879347846989968705137582469354564283435731141227050129557887127238277515850791268955286391781020708283537264259277440267092981056220456198619217356167841604923044257066231146111592277390130747426353481417702170148211800911436319543275277625248316299834761155530219023933389855283784791037819039182177162023781217674810263103578363718577485524548272290847689437321789471268059364857093028690176307555710840242550711956737998993588547060402618845420482470641643606050020028050336015096020934152930347621044100871802193967018243698814484897004402999178029640882895422543728205102139686511800969993021561877536003137195077894556505114900141500479297773731605004985611646884116597652403333301329897530612391619336552567389597902384620623144452478692218265113221995243832717257508186896133043954519706391105017492598802616607603533541300223139009406749489358629165715343161901413527607525122805597445076713506846810063772918172930510653433357905319110802347598591798954203527159079769321727563245118419944496461678909026883260379888763455141904077383780450543058372966584617632562044573802735909938955761536106030883787646366154683219586226752704002998666419898462144511432159482473739131219786855432589954104193562424770530885613195986435316129207269318192478164819958807779560494532908761664390537021186702930865386412703663158019560082100540569362145265100352915406416247380047247335203564137405616643794646974840218344425296384862850796432840346133707054841953842420228685851394626950219891631982428061510959981703400902804273500014411712503969701286404485833449653681313545651256192393728055528650592423831420760259268882509332271814369094539100996190362270304027163267867363912827363831581408310398030722901675478378082936836116666060439939340409006035512781293081025753367675195966323977535341451159437793342739701865113458392042267861229082877552877590273700712036110854561808814940246937650075664859233015799755714927867035006735480189787678117398840517319328894051097157129018289297068876254360395721870908886354376165576547353949761456440922919717584110158590269984741668676647491534009340309806812079906457862214319149351979939800435710359203832929440205614339059510960345007278517471799079712802470602026449260487021455722373717242674174080877301288668926078838602734952454628939589448939298928112827802275577478264049365241892564217330471796858460045467871565314591821524574688296625958076286271668187985628497987812791139931078988002182166028106516521832093361427948457183711888237143511477813640757968426881139190720853721283321662422597406880194665449982057121038832290610078162466643471883026524752119365394381414315573050373725483728229923366462879632016239167464820864931752268387269864027785090967222621502517278713515657410571684499351075573979253376758374730058379734349280541862714315279433094610538913338282681299703664109563761194067971289812238144969290610607795641080574473311871973874430448818809361832730512401657775013306181722314813964651182939316214211169617604749661338555380861787319744604049249222179822034549055122557928882648087166129831085956514203375906346672512371707731243386497346598874225931181406691002183519546606048581901141264549635009663387044840463369814922285558487133405921856161798444092028219735013735367687861587161918857984214050276525439791785768320606681003737282597103615613679279573387894774734510564812569044907791053727876799834889611600499104606541724147642050333021293800434266820574113500537490711086656225335148925373855465010529896628279420852576117380429139640416582892568581110163045974030165397880610093996482612442174030741124665940492060421567926873161872654666521335237841867698355382109432985777103189776727290543959790263787437292644613531553553845507873469091780478727661518701244155967876791665245089152447044776372110458975937895758825655503540961010393233188326055134421893369818094055786075140478081442923471483463887455014995570911240503914481616200520926320030221476101549838752322464840727928496221513478832429825343987467699239490982788602217573218663805849070097193405422781719678536156386277609118645483708138277951374362786691372001657536330268450674802026608653256910376301805804698918206075127036295257199307916303717996272209925616922246129180858050102893238699984734184406807065086270262276047915152208564930667738174453910290132755413736064564965803667577024736499811477566162329691446050495824365089413493544299404130697285162433105267522810062638268269595903819091000769184548698809429054278812113017900631722575826119835511820927801845871382554497456598572346423047253305968254138473604335593449270365016904364706550165670982408548336331085400946320648867143676254716348415292254029261147422377420307077449580195598123420947658789393967484438317381901477325518367491107563631479277137230324602800410594839353448238290495484370732965236421086382942176875450021355045392294512150236322386963716926075160793072766561270286385659839560953998778656292902095369950831842872837966438463830808657631262125994935260340579917514285888279590172118430875151233894101476080215298327228031864345457620458346347891341052304137904050176916615331814302619870716353075701216900153740065784034286150808146418661658990477696751431316842746265235389120283575004731953043969959251971276488538404831647871481506551808797555671794712909960958134636969894431671345829705392414968695765020230600914350135822010437256274454714630521898955139310493981274301653127636457730208897478098745469861135968026935050143191011593201105487497957846846971932037713660843546616783364228160291444712971024828872328220392932224681166125610404626694686652987642789674321337664277746226230432595649072114916911545402508234565018160896628098864059188078183595694740720367127600874046478964203627573793635892060753511974138338940069093530053672133887755735106273339134262410887065905819853604895196161651910958059131929519225771014149771648926698969559760211977197991586376127444124158423529416743404808061022891231991159525802269944024467024203799434746856315362029377344307998140687155160997766773606592197865738381336814338499097520422448089842165947468411685711640559558560520951017809029427890275400149932278510693310860541728783003327166901093117635325521802818141322551131161552889048890800986606321168078845501784106775132060959298466947205644393062009761172583397726912570040971879413708806676285054042781940607316328566601048804426339866958672018269607383112047938995441375230434179866811472889164330529343683720539238278634091492190297341421823296722724678154500392384307482087285791877104591953637114684577554095192960166217354079208364224386587026058305772880138575638549249177064546864204462437969838473064121723157481199017520244062153703189808111525898945676118169247044413217684380408104734167567451065398770938863790413792533605619063958457048567844429535401287733830331237610702933298246591200254705550937848861444349714253360967943177909349052139265306731883402210040219025064259800617016207102189790686788514693811006052750942048265729510390678654277337794614543506815906553934048314265234958249779051667507568154536368363191258374966886596210465739028850151173843521832640634089536691613273784473980962939933041168044422889329984044495958290722784051479283517329479226672084876631731056008214891993021279150721139335132276046460057114405519253934167033972154734205238638513439638318426428607683174961605698597319008477060307905142459711593020732117544980563502004987196056395588833597302915317710034637300819110225258273736227509587898907088592235182874664754422761415118696256048299247863987633516151476005373599263959062088170681417045801828158524249772194080040550934541090291166053816930528202168736201041627365594154711373751801482065545391555068249446741171618237947879507606268264604742316152997407358090557385572986942435563696829165072729633097652376478926393273586697669245105308341220172775354307547565089438748065822137474704164498219077665225205585222345681019292723769634798585341750280174326748254807715273915807278683642567779725353621998214705205122943298775701903093055193064453821071637832350871705162072350664203471879663943656714704594773726626439276065301105587481231585378862926553934495541303995644528669045914068054223223397288170738340759463400961925416094646733420638829306985866297167433488352300852979065864926341512526864962915815324754102376198414424738194159716573345363382966287747076765323853934759025045545939707933021184398552051086865962360822341608574778973839973891188417514804101175558454975607273381328030232448844319297122284751329266827754886678114247381822758757106403543302630491702228308656627488807467328120051367258204974192458468801412776026256195980697416109392952588202138083649291915216684135624628620385076624912982905060213435508736784060216684811895212092062289621682823675629229205033805094669083142184815650989956773739712677239809223949363781083002324221125053834388119906288717051533688089050514123382846240977406890154321610559393202802879110197690410829248336560317340853275913747234712627730326494860142802687782147842016367727218479259801633324318029368293909585198904639478941512013100038819972443160174582808014943656717936117498006196038897247476458773162319855652511925409163842759947692936471231395290443823549765932470508459953680074035340821442739837120239468839843283522289225093178892996637631650358472728646055182542327965210140799721613311600511200947987403074990085835705178945846697114339002718072596959564842748220309778552751458278615911119074525325185334689072691313418676760592665964676412342151367984043789268842898965322205258733931496781563092935243468916370886066608157448353674107647776799211653242774675586208042970789310985595713575345250974998050794188583587172699549527485098700823389660656517557905999240718688051322274468962093990762230861679943026162194761610925599182664258046956437126708089925572771536859450460731453882184313738654347407930056606351910267710293135115314134013888561387262856252628473739864429938356082878201716726190418617980083787703022186456687789406704479336529890798179086262234730837324816257017815238979779085258192495802852113665568957669353330595068644894399618530387159828101188824681454643593416015466910654184780803422607749556921796302137774421393333854713859095042113581476696915040568111004519838144069088427220013794281014491885686232096651961498904476396472998768285889683627645097652559907108129809595856680389874777219063953050227789583098690764515360453590668905555442608819461295690796318512363321841002572029936639269152006969315407488188973982899380186674489782147428147082728467291278555160010950902101728354983561591097548312727475110305979692348202326957568295452132093120571107377093655781747738148792557103157098875020387296813061927361305110103850995650000619421395052721719911814555699809115637316471198297039559978966605881439482752940197664264718085422612389614499670834469479606964803355243159903804333784424835151766689376252751609922280230331389220280593959613656082401934270479461512935056308974497057562899503310961764915718093220949687792264144650413416813030314507599373063025983102693284237845547062333819373240785420866995930335461923214135566929181611659191381662592064185560204261064512040710378103192264610821996634721860612856030702503663350819781482554840295531675229633086527738296047338768982300127943869396659205067541107786880313330461528059635177639219237549231663626321834454018526489037205615409750906612047332485117239793128190046288828072537080737364178425023764887730054356008517964345777566168206404933460326391714252725249118833807217121205545653521882468271133300828250043576672548530866568662616128378335074152620903880398461139345983621608186200682415333082618735401820254544935026319085983238355694278016667829944995628005322367393323514547191284803952044252726770764504348250064198046650709904880086670843605001516952448934537780210936002007237628001638161722041852059804163507872571206141947281743002089921669434255118344478120871145180103314706089744382830714534604392094092299881479079937240842339850178384104805816732655569212733697898032584668515215401524227682440734521113552741155064914448966283546902543182568094341129335180936571703838850560109079115396007871378980414545446195797518882105469554842448930733657901460694592862581262155442597716494416353664383297995422768519749849497383111501277708685459148135235331523632597198732365136056569450247938293854517425635081985292619336126935357381490711100654714596731378907878520368947782488140780512719726939457393080645515960281597890977246671714700133595066242842701950650439709121438152879594393493928749304581287602819093807788346032377513406488503071698632455888781071444756821774218967828406184934366481126530373779784079628565819492457208923201028654998275991049740294058252834551673361354004445383628885648114839236213183692676649156159368305643990760638384634838024709414702482666158928464034486177980329875313646363683012633845104732742255901684082446316449929878257706076589061757359264402185910993059567353347645691488348712028338376389434930533879286048034525315299049365419614507548118331002632814777693635017813130918396050246900043311824910195862195383026456822174768821810797878165900083398221117396305657582229704959831191054414136062559505593455308118050963951100832833017453403588142322217621630593408491092302335558574264240858871838910469042493727216340952922656497722911246713007439361247857559645615597315446833313038115306252625948467390199119839374501786688690814468264040091063856060081767854313349917074775396975933603554513187166346455837086467379097570933926445709151779544387131983252972775927218338944643092584411745845783215140311230535167904022008563857374454629516089560659600044952975325577662715750346164510585659230926742819646147539842046828988637508135121083152372588909838129077416828516597557264289906646382505317848581815906088410994092136415806275821806486380508228631113420893574597327410462399297369547470145684066871597885794639559902447101061988222146283968556197625453429720487804217990486668878569292960601630925090520738215217802903738506064253884748607562183396515980986390665936995233799039641263214261806840781538724875674716095088178712469942470263777138512214460066969837110059393897478590804441751588639462619102719685705446520088177207549672590075480097560182831736774827403644857011555360252980524422502602234391692831317071232606271232668838491105615778814313978382326251222519169266201618888631710297025232183553022502118545898094069210080957041247418913284745260354487373922643944663091029317263558812590853472331563106241321305449010035003522029611207211983597385518942170890171116411950551766161592942047270553079288187520842261538724406210993506375986913652726105495726614105134102170364937754083630705270332276410106293228305927990009761844793428427966188007790232872181839630873400280350911527190037304267409716212789805166559830337755752960398376430784336815703300312846478379963562696351623246468792850948408779039731416470309969460223044351561398027034931851984491465846805681221066314316141547002104354029078502466349502727418685516724247206787448604101409508166185891292107112092632095231178966024686376232860924220118228253844943002061812841524134413724797462777530360424606978571331445157157627558334751576067153634965608342741763026868415693220161030957595404934992784120849571694195846278226355034504043174792458874155482494772250474607658790613132629124580925131247837103356896418578023930394075313878648335060459067102415131362840372562134781510850215303210039927705745899606473562678418706440062949043446904510543142811929579915512009336307031664423358580723581044184164150196902493966468896905013069442801889203703365324611423595111070897283113002444904964309578858111247657582446175968548811961652718741006958547464067237195518507778556321288233206348920836536620692613797132239492410706464155287568327093008266136836939963155318881016524551262098583721263506210743491311909957665176889876258712618685263585330924729946849057924758745527764622355180173348417208007365665530275469276536999045383471708440505378423990207944730632183248494965144108836633799167536421478049581848051430824595933033788721906185646975466395707793942091491007808801253692326853814529002215307245134479693339721445451929774338172393946072551483175289667336065120001838730284924199901401560154800777876201168971280085126874524731444174285553048259017242830318761523961817466184486657347669919296364496441443935835279576218426581858665200968111591351202021005952794772162474124918060494546203734740298264726054394119537631995632466058788463561187983006218426987592207698105925579566771217842209533975721836190956274297452832157150278490116484268823253600686942750193231780187968133629892304355833046968891104419765237246469201132592317330227618520119193633167329460718347470872857575741887667161118550455211086277841933812332462365268542393183844794394372120886233137467816033382105398807588270278626730747088748971627126607064044425052064126932980146088379199480644702466907332846008046415173251260181983498551073279280855223831790244630684753102707309648022395397618041476973300454487999660139454128566896907418239005830384178410127307702272385514699694980712728184593040235551745891046171632608765621779342719118961093492567610505269161938596377534376589229325633196899990818183841808645014242735116360444366456066100135836403298810915776992019965195595640410598068229371333116217755131687611481879336058999404671880894806853827353479019705238930295770587689576927900162967567865459300235300238980285021742598600026723319769195689202507862067419966109739381006428788728760441384110670645990392020468329865920062848967245354017906766440866722920398370539697972849115763300151645142691997965183170337775734569913203457109116971014638517249939960032046263307601452747368324631936045725416672311580298681920009719569659720996280471530656446319026197182740664503473150567912152219964940564072162681548398961747373266563950942874039481857460452437132023699868964594671985826950956058738870250001822903793302624541188074161025292747341273731909668638174526347089856960389840084034357946646462430411436671184057408202156379480399610846597773215206544354309507331445738288732130221175650908272939650451278589387507856163541999500891088482088892375073401049419197718438665566895386445937652174810228332020670313695087406956307085401535388011329688078960486794664754387795917804836434049511722454965674473950405030141137392946301514973212031950963531560659086130573431638963811013181038657744498181563616162280916749603535199851833149624433978667327115218465491684610839865044776661680730624645047524928887407669248190751603093548195055122177342510998159205893406570190893484612536895162688338535059523847735744341244916458084801021624840579900531041083972973809066075022016986610896875831983671630632536657668595994730402838670969978345352656579034833004267064205521413844579109968377093335418372195434593136318141716620326309986572466485913189519255080744962139982273368923297766710002670851947434994376571108293059238660606069604684247777919104634104989540260396124244623416308341506068730903695523716184163185990001514935863084143887945485074910042900956216818278184821707340229774573090261534548789672079544761078159861145872323770829041731151913996634431692732253020852147514967358312185755549732401311739539615285446531733025507041981571293734750468526223300217498735830061527126633453660226688775405965698238496904021244010802498102788023858013365325714870983030035866938818693902975777339102136372271627301066576536398977045986218910719051737306512880817130054679190796851746250539058804552106057478437091520981598718929970230312325904988921127848184768959804791805111138198506693753092659376765383685888068253702743383430601572010864876685014467687287009758344888262937828905611705974155661397494689799712904926731738739258437894054099140520134431504740916681496564804470525019520824479623209457789476873410628480380034584461471820431186447913257198003330742626582295749039655481704186448937106993268774583708756949956308712203997686838478083517093194267740521033178225516339341511281596160078827299347890528479324439610377917275352634319350184685121129778607579264735995634513518595675589197061463656173773706139666289437556317343180611542076784177284248299104963392150308034695185340710254823373721494104537026820860612411329084822887591069255569158632705086964055169940400828527468007585858352750686104689498361871195083143088482858952885887507232863217132877148696085848681638384840413430781684661137917460779624475201502722611370960795743424106426255078625069747788726890803583513519173235765239612526362769089201372762246142601177064688471359697760389499936953854041004977521439840899439500915479469472716770283234219964691778179497315333977804310454909126284285658005289364590336220810347413062389838584574082156840751387856219706449112280908764012647365807730790280913413492277600613188254155340878313516490601544243112437276069213750904511549147963791082508340545759291999669117570627367962884973046786901153289471458279041996423051042886969515281082522317557716087156055311923193842224117182927857948977703772062876010474930728570089250659063191691869911240445541573161937013839079455592184097388254819414421503534142252184870966925098354680194110514113171352957944616492138967219880251203296304543837418183995923543815418255467483561691703318974158959107416060117732065783965451913779042684976581206703106390852556179085222437549852429608274975148853795410783502870668420615673961205766222612935159967758808930634069143870502206618955090668532261343808180949505000761461535526274560783386772176976932590856387634185440751948259217985929363445008382182934799340671204505656960841995614570807103127675393277332430231011687843440445850792460787938667378190061766608998446125631761187591223391793213324073147113388736573833347111242554045819155242505668562364026257460328243902700945704311163779871907611294384269040521598905897806604441920705197589799885782333571360778370420522371712926367205957348515781265907843595208017918209639860983776141721661725173566810120068160320887336172833829942391808931317193791359305865194208261020069655601466578670158840791068326180993793196062730395427916869714515700490906426428996243934400611475572202743538853033827589690817528652726769580403210582442617714300387613981514476058785675182214045498602984950018270744324866296199044499469935504743532283921054360477100112955235568797193701240170543617517341553678426502763540926303686225739536331529853203393973374851597184817481932322670346001988434248187191436542014258008082726616577394158118910690389590560291009284489705099751998326501809026460039439556537664180523564775305782111462412941464704536574666093699465098928828571398345138638090414675999433655201866927128902640792575740251080271545797665259412776156431465135652717484563948438861697223986711311016172187866583997241360654990643997766049964471122954991015951258664261694208198429045356442965120152483124273660756158615425914332946604990040896029473393044153519961382461725942258408241017722530571740572869053464734965124761791653222436234146972415644200349780761950398223421038977986109987186830749718806486495769667860136059691844422044013988605857643425934952142990570234501635592728079815968100418551103612278826617711737988256139538411095703569565055338357970485186407174430513540701713310872145338505899995528342774604791745331805057791459332055686157548960698337802249254256555885467563310542458473253872231755551798443816650242401682413747085046652483158781289649046664019438158498905164313781648010422299033970997023449395844764428695820092826583726631305572194069759013880811879469489211535263895285499772971105844669144885076284302697759772744974154466160111963706819235386961199902817736658904151601498180872293275019888262765852664802680508478717763838584429260546115728410929281130948262593356654589003348150207050860117861405959125359290369174692840778580342562217948467104335420772850853022005614610783127077765212383865421428588050053870170035190957866291302889084149022725053748750158739393709891191494454753553844352520669293028447585860538027492900298578556503209604708761180298362385645940099580196440315226691098062590933304562792427030195299061338627825915596767410047835125553664911124430492605161340640298938030882591510335262928710758440551730657957866264364878335530093297820797174927627149925003737578005353822481000457890798648095233821842183327148414651397020396371752046236564295563518030936665370777502682397610885524895473915006408683941245438559246942332202200928997633020496129842531256823912543188186917220650845580799648402409374086207211041416957517759193082940580481962653051061344105852156674283301912638086846571501358505301817348744566409321365282649254850089227646458900223608159042077585800478084025379850297960636210001910011551341470987119685588177998235062278227176727629761778086178373090448708118774350350449723596771602404687882699423208533210516280527007335728139106532650443153863097709378712647424571607600405096727270714204401545853920165924520401562437185534389143441964120202309926780691605309178432387609454198471207018301265171439237698339291118726701277175902073580482008494779717229371062655153754809853190173252613471975843997991661451556878471417257369555243742567751544680525924938938315425643259693654156884349000074968792609107306651645476151626189052873726082455267707026105108260537905257491572377646694477496748125903037842736057640918835192481190848250238587885779269623806977857783657215830331140324644044994299073778111602107610430030826853103114958442743636244567624006738333791979433504897917431995284399221881826585503780590144948130043267935811833805536398744850462199145610777159077551430361580498552469925009925567834942323593174042779947959733272505832835123270220143240474992546657371584362531425190475436012134863098731232805290269429392886401768993563821706240285931967766511318128888812347567407081514929962804793063888594722680231641077424111252832550517134903772292378572602003397287901668805029612753380777573972186102380074103620908959403637591475882125620115953623181667549267985757676162844573011171932139139047009034660697528374936728837509183141239409945459756937201123318976473593999573341789724540350611793574295476361413015355231745482530249906708509036429217295227115407552964401761080803653517815799693972210180779753303361524460211928838398044160348546377662236271829753980888695503001479512198891099351907957360565386253230676262664861496509680336467897549014247250004307956105958632667980128827239949664579873086425068546441923638893584918557958659961670713535092763307817747905408525971613502796820891012472682166204373295690231902566955277604660683242543213266126397429077148472404279730409862619473469286917672260994204665607805711655373302684983845537300719934715004699288537780758849594108601446194721796181206951983026445630797819171691836821988415939243772381046486618131812923259507999574831103233714955288029043900730448933096370355726060254783795715139761426619116853507338536804073228316734505178780788893454068407743304338108413697316827393060348327021497433012253958071818685729472311824038593824455960000870607458090736957644330570353436718505406989998784316202836339334625169515107695620522200265143265152752947153134053297527104483427788577200958855301596640852608481677696196486147222958149479688051621888967799550244256022545371127206839844793948802655982416695452342803245759442209757410797558157607018377530260132034404669650645322374028987052063919769991276361811409106192798160453111066131206978797941427408176562008594256408676923926801931327426045930691145610532301030232269060022150860696314119273605287480564374807418068658278367921345233643833392635585516226836463103428409443385008583973126670766739297830279801255085560751467051075430179516908293647211307157758128078715592062473236545329654295819033480284007263896910413431057040960589590514374224244793182799429123479992704692901432808831238901170545981673462082784747165773775645838199996752189911555504726419283041738415023623563501242309732235702339998559520262374963370836775486053266985996597364451249236184122488328238081319918523611472983950654418005902133638186435126852244945480155208815169329295613088011695273424100543856407308063623529070676431494379837717777769691361998569840583432100419538242807296464837900213556491238432892494805139791469529644354794214778208240588266043740977775154013512419045777727516976181271033889334873605375958262756719546974746862238560976533510012888929625671423393534776018603561424345252370789467530494583882750162710551693753108974895349647974112401274126536943178653998433974074836865987469939148851084185718919012565305719560479745437595478434932785838356103635009797715107624614113510935478851014790679752478810721198263309347556150543254079499533303558856692344012857551126959166339542884335165076882948938360616730463037037744499544874016217441613492642568996172433947893946448137610226852313393357049918697490029340785023152182303442498130299832546791949518780181726721337152505421216669150690958046869550403599298050868692053873490576131624739212794080799834973080324823792311583625597167342334409724950293443149237793009979468599835812592169561544832382972604064761813734859024161188888432965738125727587348963535115260789499882259761599328642250401948585224482480401163047743668753262468730982712383788198249001386455541617965691057388030494782229328731178742276791705054898936732659002062051088145772784375965040041740094607735769574912708992096534906670074015137270746056404371800177525061121705639637011432824966919805412955921127296851027330276228895287114724173101060846393922685465993954495904639964727294835907249776153538798049645611152203395856245640908003309059989772312892041957090018785626215478301086269424955666404323539854194128575067608457267241931373804588251828302351159025738653924471696067206551381706197730911092812154729477528243835479453762725667359775462056601949020398568671322108232124621815094072095302568619892543141098129519224590613879327958188957151089620026420856032163342323295825173890234250069302032064858491893708447593661048256266524216633090987755965242222534569322100359529589241229785259981131826834070506093709511966574965044670070419880880093928439638862514773476615982680975552012205771037525786258357628140758909720900862963252552767193241402859831716819528782039850112231892544211275174416987165349714420967117660585159706546175398233977320772813206021517675876369669681979720062850745454329985747809531768235345213505136749885644087491872593383110864815580517933472591711893083263008445615320352749538907695373194640059965736677757902867456940813489208647064480108625852254232319681367362470013323573331045247525615438346200537850472520530028158155030686568621028028522298399718213051469707500873700305775825640061280917220003846316068491375602050960164457074314995703176685204294911845297099537702407953769312369929584557230793684504263302778171626552753911774447322787313962493334116097317341792000950757499922921074366705268213143777837098802739708601387457145186559671793043074844566099821994034514669235407949857321715054036786996092638000381544461056579792808681567282616943661107446059281115582487230730743632275572227691976924664950041308017933556121129593021392288178781761140430946618225961010157729243287539799950776985693450811569718818315005082144157092946777517703506395799362807439346045252151627125259888088720063963468846968768061982339744269662151963748176840021294912035446451978221308953779964702142692567909993069877645956308642464414468798087983940407550270067886353880230809915322765668693420906345011424901558036434073613450906843029290477475159361603398310853385743300899501277731051323049330343756384804838887558395526903702298525753951373557497570032366130010619353804821326245726525079761865304394584627966391198195443419223692938971069729437705059491052086744783351935494454218342395815014637381217819464987213292590791085206285964209555316480522525659174748275424285568125371569561937286174648131590230578975215860939336735898316941597134827121944401528367554125572487668112998841201846719130776798976474073470046236409135046813586806915906999881338901591322560874170990194081452453251856527711677012768179995277562344401726517007353710445264647672796563178747506227601836132410855175432891270335333307342178614220217423270677315497790259939285863104518398896982452726411451848520299131950971291047655972668087138703687601909876399238431734424185125642349744784009671883853373649191530787004415258541929636919343443877677193775085937477780398619179995067047123195509223672064960199311430994565806250842442304420031612852454810599038832468663606819119302550800839935352899613675113416298838563357768961123866958938810370768478852719693038390253270340454584104255011901807415266313908517422187194716431888920330198529177235797320540665074743331924176793619189585596198934354370604265194730661015452756774131847932297731337471416583517902839526835277333308116427901634754019071635337307284106247520984149084509130853485014388901099292017990449359340945267569533104662116513833535971419925936056385695765534045146612568773654201450195887548559011493213721984884539448584253618338468295022166783609013339982450577840720389831879364076488954415298699786991857282407418016116476809506738468055297230507157649327812682138175422249771017958148740783842101233815570409861304356462223009068498637227057109351060611995190270154915440024219440790798655525382313625262664267336631376242009950420940927579729259543063255766932501128923477049359003143797391323534087780743803531480836083888092664792919684183789328068249644859473775732278998296155195000459505980088171929279806031536533143884661649237249474767433720971437620778087503137249223228853422410149272627591222680610369376225738573007771753178231529545944989407401916571958307430278908809943898203360916581890587322960829484362388149840518465448811478378184708830861618182782723061821002373342350774948865807890160658662340903539460562652905416016675220926162961866329046583972337926969116124321034017494060446630458003533830782633352100643738302936021450127093020902542221085722259202333594984183953060623109335161214748612388561248742659976592467372163908979273433161996936392131242005328513128304455889885785843929146947920324676694864038504640471297545833830283951213563414262398793255051365554896687597960113168906333187190532529994300658882342444692477619595148365811804804635037019649451963141247278103288702094187544668427167591646211823366712301410231417870539961473207952552101526780311055281528397887047967136114238491302918392310759019380718283640671115420375184082331707824352150942550487379939782136002448108340065234352214825453999078032247334669277914901671929536724600145936445519254918539943190334503787312815733147238005425662701353184670186331917839787977666061858957525315528736597684757118817868867655524233527160897578492770216907977542152435114276057271762501052322755902062062711628011807821736964116266232831189975990140072085315760815031545440656265846339918488778354568787802178862248974916502319610537643676604376661746133465099509907839656254938517571851685404633182531207804702060150098129447384310446887471996880353081254484084445580593109731450939882674295059692625250776100699338476902716135431426216029316715674756374187017972845702342351687988435458169378690178183930538271665132154015378498545919316493781332421529516558545475799119640507412112559365200787360802715923063153457529698557469215547480294314453433048686982733618487854822798615805390601236120714373100947703310580704162427734787835621727101600270665713339738103945051405199552116370987543154751411778924457430711620462929657827666304267675818323258902300792489108378265969554634527654294963977072880879764506217623633739366324560157623937330443503453221500510778883301048598549491767579930945173350921923162770071028398518834227391637211591067539747134184859471580087895216146202021501407912556492801568901926988226764169638097665967819145918959080470653987931856407084999763691432464246295868920768193558573039795361397129279733983753809071792454891743686415417968700149843939600273689187357056665254052474700602223125308698473034380329334955528086352380008085685168538755863830430483756975859085803088290558978518526639508077631932282862102061650990519268560991356194782757035250063929141935422135660555023076292642858443442553548425597720014106386096504093417221342702935286708132700373891182994968793549237716511125377812495650797184269337714424721824779598293216159504483157088392247162698879743881346486579904911772341017554690096473363214914948342511646737003416858536650325636803317017767696645556779033776901814334959441055079224186486217419199876268440401548158513648554018425077599168954999942699554490980898103627283905730614772864605352757530228781367114104218972754346123002967452324238041074092714391021809926772467410273707096874335673899920000127767095613144352133183343898749120449343470648183506489295720243497941952724080785817332476046954523324934633821310207057056780761115460772305395751713352790585599926444046305179015863908240759226718430476435324517777692362888409566288373592944991590370440218732322711475634273707492720135381728540300777853181804950174821679392518333613723289758204565071082198302714772423200791573797493655719121274380113283517199244279054894556549271875826022838505374200804181449159935990471336958436035377922060151739507611770167446405772192283129967626417007209924051051007231718408488518338099202265463077114224953636676030714087313954654705178275343361589593298916055913488590285830613005831575409663627560245541461679257361380643453730789861122418544882588023517873728299185041953408763244899748574282568064150629292687423819484030838634887138547810709029957727632248189094571330646542939989345219390429759704632324113865763001842969724706735680485445864602433426146725960287986636531906279874706120449612904559588814715650703244272644670185208320880632261627207436068187394714656294900731431297950686302672696519663210387407420439759302228889677101001894137595111009445697650392083192068677107048080656424712653942981043566800789074505222529014599430562583953541483546037217268353016264606310107018530729049789044155347876799370523774012735299330426826401636585127538288691480427229495724115041490721413617735550578412824321107791361105330983011055654460330934962032890959953030623372715374302840427705980463912239573886410418485470331944252986105043965582114883453368898301152315002230199646503910144566120999997833712792164623014860831161946724243194160792405514501112643893714248557329007866177594052422520014498055044466155470500026036405119464387026784375402055032264940094457234401300057537814843360249636177561033410031984912876457880422581098471141396904844282057850796351793775123463185992787665901910674449630794298452784475579420749829261756211766976205009507428219342602973393568819755657898441897395550023255693220446007357556913888193121620328970803798414366276758039611456419544055750843976333419753721271257262667243816274252428349878162541577697238924858737099320433374496415255927642549119104581618462888518473521507736919398077725413119694636699340537470916809150893983112483487096224908528170458836422247689110449920186978443213120354795744935221414256320959083750892065162249274452667481541930240021856602062970059542904809835265332961689303678772623354988892812361638619624015190766901420402743053551435457243585224496485943057150982827003234526126979374881009068885216865625205787710069681937538053260046154453531531398782298983055063820433986395397865376043974831414510337931544679338269312520730119635889034257347217653278669088381479792699122760347127171599834089135231557423851573778535090077651506590948961287779208500955993928348738816341476498748986033284425203994447188864125136892972081077839024782647534277432903207642364194888522328092181135214552015096154277111654823009727453352912452646533196969554337639790938578113870696267181751336901941811011820429582882566505484918167597691894514157148701899436881048555819409884464916904834111822201273098944930595470089524477147133170368506631218603722046595662501869470390576248673761063294096331698647281253814677047241052255476216064951766636604299908443995654396538176013733721353118007409872798489336486693664306074833814699562577818106761114813172780098695288533903142313926040697802005381283451673422074475683410743983072038619020892454213834018298114896766562973235370194139018644081060005531860636331737807310737873234856913444751817394414757447174050952290181235482100786862861051332055365996770613606385137994053548290457748334835317336735334830250029716184527189493560274407798177937564668318282729076980375437242101114640186646054760079666154191809794325421412205769285541620048802213915412043721169752197692845000547840382843231630470117288634572702245956141238427540709791570147324130622734813639219277476431674458825181558886097436400486893395391297396801306685623940856398871105057824881083197727235018733898271763873256685736625759940029674571800772903670168649995764629276332971644526849435375261123718362556906459924789485775178960538310891945942761267687992501418802007268281092040330292561233674155580096840009018750755073938725406229345650565517536657452384529408114747667453640046953849099285587382142867480863734350806446314780793891948442293176541628078655936167720483964475132005752172218775541691262846964122558322470708660826552672143253750603540597099826115099642224377718119748684162322148049086372201270069081418791309253716850203019828730430076090272644862110951496153985411734202073161410324485062147601209716318443449031209110966916816475901078865461604463079754024535483029572563098460660723896927365770846545437602292777205804070844988477050491072407812767181556287877048985036882269981189192231255057697070115043205669227700984127416078319097679793785001738194544703612535676413444277689747789977760042628176852633365801105579781962146826480770829449349120839858836942376561113811435126649776051203874121880636350778297031506994887202658260651721536858540650957021731305493480300902526776247625477431816699085189243075564853411389081194619768275937973764623941685124266448212649571246893627248798444297798880546326538518520221647618684552424469842360235834464095525484609001143875298401005947786956883351223999924726420544101599318025145603963820216372850763571816171121612498789374566385333073102700522016933813221932445381342954977100792395409384260953993690476770173721199765586743297559174324839521213854673890758114811063978518985210148681675239534331248900411639095725005818093087067642286183089035062321558362190262292559307153210735117945331400420064515169359053872452582945519255038624336560752184113783199895009443350710530112285527525786666461045753860714846874217740536762658461130239865868119659019933011785307297285844339977037870781884574915618545013094432241104583009931688031804270696286214756756497684396926855034752003991235409209866632843654139680055672579298850809823576102326767726317307145318143783214161934026053942092895075767990343117865469148565167801841030161451002029444535815747827914447155043111559516360728860339689188197798509621136746556823229799424605846723142858250199004976740755016466129092654419177296272356880737317719344358866720550371989505079114637680987534785234205759652884221943034210842975467312784739331269984871661325972025550882107522108398027418624578303686773958864584307007981622028696559385408392223223180286528486704403789536267084330224541134981414198753326044830731511864544350776516822585540575713552553858895342778551642830263326159439561713273908250446752880651856601626573839425579554715665976858362571869700576441503163403962478706573038854105020013349991864023739211589000428993552995611524977045554744382274192926510403122813110000717161336151053587690278758560547051982207368645974034668224459803124647290169671304089911359868845821675467300210483772620114788213041258709143676127180440921593837020244588041112671781843967496177475876381826534662096508333442222933085530561067857772120202781709849675415951972503077230347578995964784530674716819325326500370345003032395425907698897906558551426120686570077023058017653373625074997215991324395402076307909752384237201582537887396837392519072378826874605782493247312340379959248762309944393616887699796755604187406624667114396166334199744212706289684530232625436448892326914715383969966351660822208012208963980555640322936156631390931688083987204965818522717445636939814153247572936501246899351750488771104448178414301198852295457095705146586679710878781619409599439195775694686427528218225557489407890015090743980294933084991345416897327019326192540190382994478534453982521251537302955525213292860042042208201414948200983082875149505219482016038117726452907380956840534126666654222168820080225239209023356597030479647568485548233814316108529250761726356749801421291070889912780545173280515184990998377910963532490418299049200268832509106382268001158154165010998154622736805665789654668808379200621436753603887368603580793303545238308749201803955703222528349113555020271849806891386638073965619776772200589466477529840289410810931978034363117982020683639621287078461035363444252532849327896548162938495472101629106647411356223071328253697674784495634793393547249559732604952867146637333552914106884798305400289762806232760163862356823831971703320878210158988788756937576775820004058807862783961569262507117866158557415894087128115181986717246519857164576437894398757725432257790560673899688098169533324968879590500323317064908972492280887930152412200083422859079998993724966551965148269324954801182118524965712238519746289822390796632694473972992892766352250595933939312428379170194292230543820861463912162523262085765828022417551761325935590306719331004040798641232025283646314386338306090111547186991729075052427142633562520802336654367485109437447089333431817691964426254420947000173542640686643094940673787985586272651203423971480811008860518143160900735258428937014094190920667115195823804510151209480468712576975986640389626545673020592654197416924199560246984148703603578209169906491647803217936246190848719461550183766656632319842087006041026720496853202131726162789425591671455876655739578418325782332271287498208051286973454206822042271103317214446080532985166776997247034186365273888774974742961238891639735609463259278668684928933370713964592746848162418564568211714810431994600260380698056187136772175091673967845665866650863575570179879584700214698156965133227867149893298747378052010003347115053526771568149214177785768562746076299515329254915825556131759359558269898206209355783696843673025376664091839720018443938039282836569626470072272010289092523754205774453278896844280749749487023712104167668192818987688466917449736613547989201100001106886519129007025158101533374509804602994124934986113641758752355676571233383545187504315217141885683184529548479357738286154876968515220623472538993115036888651188761318193992918263831477048316713509046040984021372310463155640156157227194940676361544168343847008361492407691149113753589619508976077828866377887290738979832395191109164700354363021612820038664731262600841517421998581800081727708272728453047275679990729481288282298176282364594462304711352564612099461173550841154537886014183642355846262892544855924948612750783976322477741963869517472808941062279990467704363747476993770535338050757432616078760579358187962281568013890674946795544322308694275407551662062516899291631535468942113306415402286891395740667623156376469965521157833084119133313198102378603420931230393228277229418481883260587135307668580236354518190032155119846438478288482481204876232685445137296242141394960627313078820809660194073191441896246952218901427343572238555333997355605337585436011589877576706226873571938819534559430760834439478642448163416145108304459004474185644755712080223691791147354508878216715244959066823598215628449209480928032132733331515639718032135189272088804566811808711072563341512815475443319928082379974376800364599244082997238745216275434737204060373000062480368138921320510805377732680686106284216712568644429288519018902666663456921412199559170193025617173076571267533060027329927976124995330604960679755386811820979557503825507485921967215787146127204744530568268132958893428238822540946763738522294938666378004271698940414858788276347660609929122864457833426270157865995119403018735497815048996488611471413667673244713539648108294131394121398601740687903608148049830118798456385606695669610052306258850874167317693060218865377753770112339270714340612182791010504938447133667611245360174156700577338506223197051598733498753434856746660137617634722397126538340512034062597923618876187078330461160266508123119763655758033605204030148325031227056289126704335974885690497727006376502257003851949904868922081540184980700211128513665791148873412978648035202620235738680504704451473762821617914850607479295238424050066365525705498460322374670649206265681707304945628607343580718454173680671741272475659281764367019710480868406372717184651771823755819781417410065814087362098835633166044134852354445711915952994256951255291174072340987522349999414336961272935010530756810553398767435785030341513697939057553906454042736338648944756098788773067560851570233641320087619652461855907313763029115116574310033865933878039191378194620532111907432513427818792831035957739051571409699264122521144985257783132357487617823760759554370957769031624743478668729774444766670451640708165457839806280144244513620988982872612704509237799557719326692640920280059169916066822230814652410039597798242202788276532428527305948676598523331677669255491520457670310714483642688672926761117565455397004001966594839516811187338932171367016923070486324050072680329662741884994791456055042007149518307400062072129936997032303132343519787118757069194496137565300479991795352300270517439587155733606114101355099574194061000879306935159716320638532365051413865246774797105020456723463565015161793724416927811932919185329944788078276104277827428559831833638117156712683242444387300913110504191986880777924092118349996378239416209215591361961673110092054394569410266027599234292716441143447719813169847408754700897055964933184002515547342626713682019067517191345611223926246334448143637019232058013754424485494667456458355810488959779124047833551028801110904176794599845272625348192476632959920921472613167179843775650787897177225350620400542472787792400868463058463465731615770666671329409347492618677303131824713122028558545773640321078768981975674200486555444015750295276420228897944909362054773865322597592028169947520229668211039255952592197820099837192150115860990781558705640255875397433509790893723548959075207926172648890352814234192715344732807427601964510670809348335544382158767168990880718522330351124412062060033015548918722413849518390983444516746485268250842134748951332546560222879034188455496972817291368540703456373128179410903908886003265219769275199169124000215489643478456494711338424375512280087122663730611144833372737553501337571240254821724683576823762891148393031672519797820019618752741163109744720578707947027947104119928348824254474428883670894777741085524879436764188901527892769107517448193737584740759387718193551020666383989229494451346230792000461517486477066628750267265495233252740502388441591444383132872244674468218151788467830167673956043274533578536570572426173843794519158236554003707511034982120005266721402080908412253387311458784513215640263532510845330847316229759715153419986340486353985078836168084664555391104394932078247100839653779964230120602905642438410550315588391907963377143436835727183473056006222072348812893272989926550996958497181152376524689941458598054515536617185704690543019929665025225461868574704092779885413960023293691088571653216826205586724895932346146233195001254444838484449570145786549893765583972133614836581481081233760982027885423456681715573079922624391625370902899171921070361667850978227335683164083667503399180388002647743037827213763345612458796117117667981934007989703266339167527493710463562466168048958301759116480220071374843936809323989223846816692168672605544743642533172593078058177699716094497512571341915302590468200230254306995337069903897525115925811259251878760064023475253244226453491613022488903053414216596639191384915434526733804957367909751729006001444399692097452299951174809405174491903735969155909385644446716661434113523415868603975214713446738875477348181593000800380967923501252084663692401807618246327680596431712457467832262969995104872106607854608015301663317575261688256797778908822023255709589971383775698349099643850867124310486138111974093382003168201312297925053877479877281036700631992970564659932288726472318607522827183386784277472467405029742189709524994965329891292697891309709058602125665385822951648867986666868881805677585482354985435459661453603481661269842036048439601433445139947368399049023215807162377944695337160530824634141380822721408741506364679790454741093983574238759976444311327126070379498866454208524531703095887983326894814976717149126214382523789574337398856284049376300691742059881006451305555156355515366728822268393931471396821508048549787389887090612478517274164535402578609035224266251626447599992537376159909237936746684340246540472052444089346303802042503662147922966264955792968948222000329271995216319708358161584038249582536863696255891977054562281903099331393571560166188693900914246763193605374598443134411337072728990837867444826889410080822415370718697286171903846986975817759178938685581417694607654834354145753957920778474245879938082667738694451045319467256200023390722531632188187380626120560880855583219705425737337296418044670285990657926646478390288777949405851995136931693102220780103662891386001575163472501491112677906346984303321166712295877222966660906681424625681262992867806681141497675766743421126983386337303386899600847161005224544700088796340366892319314592671833937143834499826346718867908183011439638306644525392748481754255391472262955648552730957883648561673159216756957891305793757870800985755718989649711948246006588022599820435039294446711124829126439501240270002525138880524498344770865739686148076685368618155288908000282789335176322598709784406819920177324417963062444187769710862883560701405748125756513423416455739274087924994559772447422812261522010295071959044432185934503885227945678227530101575768552230886240500178655150174979670843716421299878494107342158900499500605010289545003987931052444708335964130848143229441017896299371246965624754835780761294892874335317521763038718416344032365614260273634910668667532632380470225479900964189770005868601595289891476231830507823523595814125334829253015009640863082411346346089537391269207450382436603762084364298517476399234265888979649870469887561545053308945870062605539875555884837450063907720534806639833015481193855475731257490788519739114543319569131615376209031430639200156727050631239539045883251959857370044644644199587652667185177141577743222278352131315691833709525392977374436317819417382383486653892644787712544241067485520383968494684668253277664808788592008282759394626392670751242691077479967754473529739264855256398452222965458018553343395245163894984262806681925218789430042598992900348492985051880717745950127415087859988073666422721551663291912935577943842899351365769384648762586624449047190861797704564397814027285168277856064466642881911473503249911424867888946721210944662972734471687916532801132404115825340870721103831732952643901211604933289720041633372680570128721953730161978030484268608954793086528559413562266045042982946299056897287056996611149080290389481569063444383145870084434424152425170101167207184381773884336727946789026751421605080811656608154573286603651378483704548751715395315128965333488993078380509306439640228164957299418517189123469828964754543686062715002677949501283820775201531609779645819304216695493326322730349033060670589330253075201449993941253852452441012603237564112731048674057870612086749490116293996212082459802894383576978087282234389598160771014908034228444131506470070625182175482720736861186004323396957574266814138614077991396673150557638235562467218148140798548220156045143196477254396876633716099963217034278720328885641472590468907110355024802963872546331268412624911008820665420414110124544453572054856154953825002781254979353280969326578490906506848263877071567262478347125100235505042095653395195256237985932552685806197947250526538143866809648888021564073460279451079503307741737955874634528511512024843974487998713182312181336981768519995607461064460792420766389705799332936680137876501906328593546409606445043463829296005667509104239896731924087952766048599783551418384394258888879767346326685813866013400763854696753313721118989453399961315321893740082837924848468148551358842461041737335714302598487727050812742370308146444407873215425839565256521585311574233481537892871443303091309717675470441666323265479835146876048571661920172870731083899859028096475749783715410623829599930919339532771549552488837138223012704937225981215481387256405115967517027318249256119982066139487272080844622503359158826100172852634417750329308194679535426882781130586080047071301067868520564083512322581801888993564537496702983397968793468020941813605453169103628351426048608821894120599035285694347369140702899448311127959047951489647776780835702830688664512322026879296331286908541862077557388953869446307925635796196604262221034468512691351071167460077919371591557124904815571543095147669617158714976063095472487994793024532195402805339533030966662181309281982051030848964123496105458023028069959829332178455143060747258797934540211242329563159441571130393894354455076221371036557348035902961478181131831026256544835630128345936799799529908479321149365241969911301356790466299455191692771292813960744219112231060707088879800191763025642729415483243825005663866261504498288385487733353245084371507062638218864520244834178893676115243451267057073886148093016243681657107266793743698269961846606845710922172827216999654372115317457099240276003057150712869116584121371503599508337240118130789934196731795165685542772809386702991591026630947228575397672989913618100278965277196867469772556870410436935013635261288249248384000654687574032337600507773207661268831056890294732318868808775023639535885379645517350136357681280097803753914683170928401557973037651307145791276869579338589434790688700369098772917284205776740663901533314542213398807598915605975094143705433738175362349005887224469828534708928402359164582898076224929999195210768979489955009878393121386655230617072602821548483276144344734165881005465388259620738474094507534876410245480418332419834523206722155045550037127145309089049310940271961426704336790975072865874846069083189051480492218942443258078172213714146376914390926053953458677948739502273698268284856349797154881992837124688599229317585562543788380312718001682265334368816120901346701317011996214793229673785899011479380297202848608457667945992602227370069668577232549852868290051177065960138156413602572657336107210715605042675031717631830131641778549124630098882737093097017234611322519928796898695456200819160643349537750132186493003141649607504215749946322777941012115670605612870273464380709593389322118851276807220672408424567393879244985128187514150103603655433532497538309429394934572856388022854403030797213543541428914518231541749903576346121627144699351740266242851246221129110637860204404087438372952397387861628015733855050686724406384405609358330097531784262291791877216196747927472472825724041460109823738861745429026184650509453418247090216739655810458536520811111371281570613009559704885595173693944804280030848226954025805464320539722463128553134959206694296326230425954375137471742399704622662551638419669325251437574933110540623950745751763500177284197223615959328666812580046139842664267206250010201066366443101502623881798951745036760903278851456964035348512328342663872643601306017732806705733304738612191936435598199051418917344042628319929651340339076734088085214978060692670006269430581840430679272100075689470642604274682361735474685577226730839872013943896651448767066086393335324425708170217487261804708834502070721992875873473982862727086170965077053556506988150845496671935484250641788549457993046985951921528773504889934292917734472486753543085159061982511857752048968938212704423089771116003560113533679302589784796523631423103408113697568601960425631585949759821738655428242571606436593568655642376439379462406313746032079597188296595618512046166835503570948983908994077710937846515037659439181663163158547367812593830577361045177534165537176933588324989103274360651674047814259337110569236426321763300933481479742377173561607366766356737456513704341609105456036751452407680454813430793889259738879577592620045834465327885570232479104504804990159398657610336590346791294485127450684333329431937910908537256094329039369345408034691376833398847799256603830718537518755133952778511384892263575226497205808535980496648301968916339486312917647633473269895246518252178078027633330686403730786187853101586978857178388573112824474474493076259153837075755742309201203313068522909666411930889925071962957877606719047204133150009499317826345406617218619032887863375389800626618641833694681516440426838737337909589913587210075156803343381425145182638482505842185593523701245355720664425584297874270221681022758012334402477932661646561679311002218036176972788260444435803066434693196764906089178927007043138992597483016551660428009090369240920152747698283438084038382372677886354804103778723884866147597998096989279842444680265194476103621247505295869135662797956437299832057668128577721255212606215501447547839867376027100773728765770028491975741824641035470773578267987832913203715132552793913167269571584566541147170554162606758390220027674326688494213957968255107754860991074615049388621063983254276718231276144666611398243809369361025504323883171404428698123052686914954452516567004574170362340372017813889716856275409609945022567313642786410719892805704538233608291715522856425169098979282036080642227516013783711974296012865859284423624361883232275689271038053452570013186383039304867669514104298057656971313627130493339816968669829459680072629632461209675191677640094023571807950293087148272768857161386635501216055911045683872416759656263402184802610242225226874540378856527623092906062025515982493183185829588197494486464053760196744638382956553938469145972949698473846786634668411566460487312071891947783013839929766298429176237169262529286086172133530072346720757847594902724918111866255205906599748707377723362614933890127338811338947119840781082908406825180702708808920665190232372861548226446828863190205946071480894329709983694768685387732899815674105452752980005318106277479452212524856992949519105042864949021238681412004682870335327349405190459920483215817015541283111953462870073541020421674869724678829772614654865003636643361874162645253733225577061845875501983823617948618659170852899272917187472985267894818773882058677861282486212471285284310511215344406613094676574455989924970006748370894949213677041698949666894048820877832077332780804151235770191643015340566071928873607877476306504079866801947791978376302726326259159841474758326650897192709337267058982877253007087450746292762199759850542694289553171805307567167420592063708346686477862378257572370734872402964194000968584662995181768402662045346129970604214925658753248081141466944390185970996192801329005791056282862924733399082716413370609328133955240071624079992464042802393668133203590577280820175654914152013679169311423924025013449376123946049668908583575636719220519814473917354649196357256768620022765437253879611535703648776336556756041084215130124247963610549611161879217406784980187147352318909762282132909936554419002458837500127869368683949437690674800257113536503612191413804748809787520818739072777868848078455431220071861329902434142356982019775087588159302090124335494264094495019504016899591536278646084099242218548315942432483770349152403837749379598520129584707219799207804604011359112187283300443520288772629308446523975421129395698965949253331293320545959464150504585586174282031718224638979512636424209955617774232810468845449335089806537008312843731271028341441373831247518427260872806933223246980182039427436242091373122653564351874937560703025590464021881346190297733554044857049834674218320993985488731222438730499920507122549667133843011234272271880688755132898573155949349690531025453365229259847453663685754826326695945233475846223729827484268173710906334350545824360959711713573607876567768464854562961461231974603576831909475889214781989273055954280348430598466656890328749167334499527072183571963113942008539999521155853983142700012972988314099949397992889758750322005596279904816226517061182437033250507517542633927306267402898027468668511326510201434533074056675576443647713624069314822184289171281707783693491459289969597346123790019157648339085094914154081029437438079017069869415908878738292905892035739243215969813920927045815533056673956801044452448156127568959605788370730302036019641224414961755566935837983626573169026673449109942360605387615323051735672179010652723961172929779910943425472670823653660517734232916041271155600325289683073541145286111018393583552444994338402048690019327028024287636173830471688975208784255542802975875813532100590206250922935800495448765680382307732693249338081466983923648625070608409982901712001201533943595375104190786417261219367061535153903541701294148908081701972629348143707928665380465424080179203108822949169043873515267116001884036008407260418733676164492391439789949179286249941032771452242101833612502355707075180045085415616343459400339062174162646216186102380935425226396377962583215163628695304380279567758533695501370728922496420176688834039386654472087739088243884023661962218034126816618920779187452849803095652714078876670697978757577472782470995611383597210173622337057256620716679146777506311493303557608213306104662635550515893286095082761519004003799438692763621044448215360376742126462026881537221569567547317810646659150545282768318959040513547467108735220706817610432357605597238257174362951443526402838945158373523338090989188311596039004130415682479378580516671995973198022425108552386610009007569496650537114892667809338271827304494211862663002400762204864786839317399323830216394823941975754983557986104828718387778251788320885442811714818182053536163891917192899868381635376428591075339402599471894522382283556554434499260976693237709906969835218597497118690201870768745233941345278665897746132621681795886730234126663484169925853338588630503605020923056385224020597956575456947306063327009543807118797667164733604575223691387343217737189620326029976771287505120279728460909806299543633950093877896910664829797227271234504917145912704267736977143918222073196537127643639324970733407459821494922461056868263882909900919394821706160622096200707338306463784010047247879146156049730741089814362215546662673217260916960784057585122539022578942554720398407513689673182686327079254141953226302981219633980378265963637996263031772820875957977683581573626753031578326004119257413922893561127954474569501752413354397213141325412063015987614768882472363547599918937478933935825858033237634167736581522820667461859334807270029774644361221976702521213897412279066102680530801678100380919179715698442162435115375488057129596803597732513433322428603867661553376544098711428571499010481259271498841849219598002445935144816427130297857408445569241958328198423847598074187168368677334219206588635878859413835771414652427686711869609522445447149896315774410398369683313185678662737282990685255958657934294632853330299808309587629324968365985809459055265655890369153945757731138452931807165806398686190567980334920022981822440302762458408911110795665327851091578302640532849333185359129658649045851802673476960576408414709905506557294199467113959429563073148567816335036982718006218047556902083256773663745319785590799855107538142246907965386709307031869675704231675021468503157737681918775633267327904973251149239919521714027314055708211498009166892787909675132314832997826141059052892056068187078802419616131060451152647642244888666677471269032649283238872371782530788897174699898979835716443664531455532736652982171875277724632245362435048432005302889520485372734664058167634328166812847522859826807079189947548898309225314445901224060325664313782895962687962510409462683844658734831939854751913483229277240919649378808935109266040956933107498763737391017159037556032240213799858769414442446360297282506719698682154345016529328987377592740304621667999703819468503196900169519958502557528785937726636430607600308322203555307673196893625939441320456271202518946393345218551091716938646878880696086510910255359085409781656035442680428093649537877585882481588117732610546852685845241893604852114864717285016183683004757002771796625856326808969279008491463632522821290170697664716666710412876043622465862502509063938712573178839841099470952338316027048396743577277696311409472959332041906948149209168297654194199584251667887834144406097861053108614919675438664475670360880077695590485321234556728296575193713979374590934903897602361039968590467454277626341684669971766502141667956285926580986430671409066105597056033420747992498819535383391786447584256773473863236767383009317448174667830342927848649461300237278558954786939720107764251186470771634650903696648879211046801098606423899009196937806496693977288724681166132829273427153194035092760455683054961073672570757858417521051554961580600769560277960261053478663678648476852040838254364879180501796596594967426464614078703143156214697320284729217549481402158296917546581118137510738431821030804332614770258259351288570783068151075947999920195246000195461049272788055671630487322910135121057925042215119966417806491813046508066140626922662128625971086143971423510820153672259927206175223825755784689120554200117250173956643784641419693935716277151355003745122090841180167784444792645427547322551182197551639689588087430246415942865839018110041020268630216095844168730300004274246490519523900539342851946459409375999712807773490143345170452997626909016876462431331347010634364764754033147560980778964099820887400845987007844973655442321185127733968781976941297971422882025786400762513092749989525424271929252004868072924215196636517865495703307657023328782667836088060419166825105737884701732111475953981182344626934280916390713912979671150742472385580528144958556158457611784372462456024607483056576693392246056954393323418917263423032509705590900001136831386468336698938597615337164082361202904254153138747269727434796626637741010520247790401108343756052286778004126032965583101969026762347301348464702813358147061890291167509585220045875339083172129771360694110494423682270108039899567637529631251536173452225018592480777137658476447738107357338748911921055066781323832724147888234068899468446007569777687538333220477799698188521917812925301751259691908872108793439599710342035801216709505153020161040039148278932116140241128401150606735198724430040534924667816477104126239317737749563499177417163831486867329465779380063002808395512364474977761171802517331215124897242198760139690087913975073233314997388282470627629760430874306150243407177149545585902225522292296528166409014494665642961902782826329220327787345666337353322523792203482070483565395815866308198938863468104267384119342624185735322398601435894601184920875575736436949344773322419422727269890386285664338019757616100332615033654921280316699680555934865690919735876142839118892656422803215540586289274343498022864278014098995594294732254555518369606056278907156015383307895400703324147771434205791246576256848579504880403678060564848875375481269579415429501313041754443432074995986095812761234203207219373042024802445243054990775773892758429104516324979143288257878801192061672596269830242339351721739557046152671789607896291450570453496165069214061180530966070192878828123134545641862526766046386817715028771817545608628891321209037467736499362652458140960715734334532718240527255436706594610882502412107675485538719994904091233854421323275880713366452859253903975682040974217155634890862780082827624484816173246424779426152335411427335361594094572275547295803686135475191678488509231978221120548717522371285226985030379043877148294835075764051096632421381421299432478582559664475144599529640008241696606284308056643568272608929296626481473554873766197406094887141832507473617557053165356674472394778116924737778276410085279032047875231341056650930652280458504541306487149150549567026095477003762626409711070944201605397711633818607691840341249691489322385259636421519478207632032140604023802827335158443301920017307344935454644910535908463585704766401981606871505287344987011030093383950091729056043761259633147325847972812034654316111394810044681716484096227092597292045626376631567420824726220384529352671019693670562358847612072840538951693631747348399114388726320759384829730033483051984798784577411238815258983844521692291633675793108296206365836516387449374443166922146159170149407630785768978504288080592385795147240717931421828454458577141766258764807902096006476776698494323019644422181705258469560235422468866588845017500866032599733118893546569833636586474499978677352524508777396640324674241101975030160835289365650516573098758807080419664878364268774002223700550891951195838217402382767009482528120621473784966391062909534429819349153037003000967070282594827009483393721699287912773472622053052787763627204365479717900783476983643767917825347695266284273649295755199843687689894233051250647717278914885031339286876604167767837978373698186234307012785560689571828798140504279514156249909787351878775736414970781935138915976048498617358835976184118339136910849716861817347202962881267296451270562343528282143978679586562323805757565743059896743195497554432800630119518313522861448918382154685532237551618853575057374832318258188819838447932396240777678693806270496631192140476067304447715647334073938298446837016917059323315216281170130510012863368968473841334386249117327045008672867275478756645425097632940308087589577913796304940532764828015112651995002144710878242686427289940141924307587099921823930179295262384302693990229237708326218551437080605973270794341869795167896877262409814442900437216486638679202000238290415709968503291981209305044956598799533470123841215218428843086674839272942828666287300628665113195791046093065400393390361241685682056986979826832133107133152936071709613714732545754410183696495895802349299061363098687320538065653282559792500504345727828317256386871044712297557227394052444178448467347309097327812031120435530549817346633507386230409990728737479489635916987117828205189824537717524322432990206202348914204924053767481712781645589046750183029596391513940987070602689768703379210274181100336257706895119705913436038615594734049738536145779428929879122403460513566110698108993652655779951691760345061180281259239695359748891433135829237077485436191015693216574656107970844802998973855633390067523943081077749131642593120249273499966384455466767201822817452495741754558522663510760206855581474927394143615419699740345733485688137136075340071099269441234277703322933310940624443483647390118341213395641606053895252719223321948183178814292919573532683612172496659882818103498075024014268205047731851833020516161195180081010642181615703086934577449235835414165678903773319954943150001456264209044648979753414000074239995601706361729217522989702966699997561640477411027317427619885984370489853804689540160616141860510468782838509873164384958950626907231126735485822412244007228709302816897585986841212785784936899701292712983574012398426718171960306019923121687202226223930527698418558582148312976403944381173321774138314903083137671061900796078595106860532826059167359741033320468595311426103339539326568947439335642877141609372081558222289372292161423391297459209916012082054038538437232413621002815771417278968215027129850132725109982714812691135495088569266552397620661151777349375197557683844959175414368832025710623953607343411218622153677733188238992174382437651434212591831584921538049391108650344690785743990286286139712860764716399193012317399425268896159417913989899156995595066834753871416906417319250942416829467926335426606177294859723684958674679684706610656600654139005457216235668682398415704465657344834981050365620979610061488413197543247675870025580872933656595960872404647065088854005908655199412938377088591393340682678974920974255717823278876375747754208322569542740864405723011418265379983574874713425670608431880211220197860136004938870042326524583130716990787182902137211016571342370591717846561425402190636475427677721955971287479060850439982980585425896741713430604408680555583173429489834339997840823040573990038741309885757479409670929420050934984342596840586509595891165920856877813304306320053397656451531980803344064401477413548617586235257176427055939851004643175110632131228809187637536272774718525463786827366803446024619465547855429472499109323769017870810353406937498705134605054860164728185521692006976232367260570076575981393490868617613453817303519812271880735028270868123452613632339065156341488582296987556945705133457836759889641338426106177812361504439082225535138486285034968923488270722712747274779269737235369396355104475442755879556691077784966350950322852141418494055892945462299928001712346148035939947058634710809443285612775328046812845172764488373196789190776239293457837868180904586425830975950016983655141779937817172338566823334936122381645325412845404799610932756717033174144477443037698701437458912139281046495288771480322555440995683915777840741113282038465889371196584157362124284574475920099504478113953635517344309394779050756709036383049558572294372084302570620834708863191498489181704704003272893454337690725356252889254747794366745896575379492528790730230010274873137710820556769956419789351310430896947126355609386074692307549769501369038247364885741810385968183822927824849947160044777385831759689716112886328061530587871129043008134184434802538280069286124757043259436910799593513424130697505108009436782073185800281462755660742846492236249449987119278796048869133462071541216743033250735053315897598311975779739643351875757148342579718063697757214959276948420995125691888181671131837795656324481917715004289669929801390200589758611388972821969172641406737129430711037606421683553430599412162877992276246529237816908496644823865053124386010537396337533185455999249193419315693416951233221825947731300723490913414615385315300408725221331029001674689027930311373668542901226486125480916241635368040035418281121592588355153351574656090119635772500685943409476729546625598088174829260383195014917162290310008156077212848847775105221561307583998948409783246602533626513508237939865124831569423261502631079698372800252789578521963459575978211676200345238899259567636623337931615849159597995481132900093113189009339111398740734496871134730974290421374123467622473943809925543897069426760959298857272780247888297162379056394996815376982103340827130697175193202651649527516221962939913157347907535798891972899272646489490929843541053211276101009083738916269427674502973348932662810231449897307036754255358689115621875058075469072920728732623799754371313496726775603974989377169934663488319657215637962353452670660292713791291002956845904440655346848567878934962642077853557556964705769568905886934685865203811980933728721449069604105140012396770635210916129997090399759161283397742466946206857069538584233639813742268219074790267485013835934932386397224842143252977154285664962851284063440295334247221178360357514913037611049561194144131729464086845976191002304677881015077417886223721326769576788903646652811518108575016573298818654909041064273219223232205580813571040238354072373428971917970292313781894698639017524414944772568178375178530224876423828424093093539686734193083845034854165174540919102855408085771300909148308414956878488198238834164838761727779591201583559721525841886769273768747163457187938667230296258113210069714418671876628436878116467533926547792817491561422915293204854401710199054622042471482633915240052125886548273751790286691332953511184020870930867495947627459657737879769633031007401062307551175060257298474926012214170828687759607411547033805778570672527852955444703842787660659060934035943696124667886760425384309473298892874136419923375297032752358914526744645140760905759481469248833980758423395090777028551941303624831817457807931923256302601492230952873941065319976035777999622296326431231450989955612381399087464171774905445473588972915800480807892913424796196255150553472306054785260489934668298398718684318177471335012515258582227530812189385952113152844692367511147040223091968096572472502559669652886781045160116514078461438946884454162991353446154970096463864458363834965976100147359436945067860852429139594560319108684097982781188372256178523728170532630269788575228225652823342592991917136771380807615500790215652232755547445628278644643856238522518932975423617432750686211441549232211195257990975100874397651048834045658706524555055430747506239363531115718641038837011271530050272438872140870938930434805302268518604881381045810447880798676505133879149543487311941187827672089381999242413215811886068243358326246996927786436154948029565989249070116402559605768349240305379661510645790537838275740981235967240590607998916850788147580347778117084297823891056507246228729316796980861489354490674660362195774608783472520626324404452185470240147270786735074856865784752256094165774069755223247510080105069668061726097665104520719275561392816329101717128145732735157115915902679122384112011715450843947242304870552280016903829262936951049060611602816670407194883720009947441982660080116695962667170743768189125697915173169370462423899087303693734085157476445271466541758128523094146818674244876287737588623439658341908367405364330251043138725887714569843851095996268725867648812032365607463729360214289023358709390494469242395752013277934833828967298155886205080595169653550705918170524901739099055266688338524852190846385924519721202401705733986843752214538833535764153448038662650815899541578297910583405989976708660858930281924939316131534854777163125446525887686088699149809794547343976499397779607285131336389388818622632641807508446939885914321954760311765911821103283631954777235885231628054367926627663676965765436547656616122356546229001996509832354568934390981277160788152845018913032285939265555492823546931497597948713144911462079655342682594504849688194498474333367729011480480977304683307700859832512610295646671524665760046749599237219333856142315830997873727080405247846739537423934233983322063110173912834112308543928150001044878593489344132108506704940421974379622565947918623452143058017220362554219946729521636786055083326683211978298072146016380194942400407769563801217277259666845002909305076690243229068934351505632460407113049940851445072451965839238725234881623561499104756219874151364405114237006355037825124371816357042550344920231833632057279229641051680048212646945509259433681152527798499375719223423695903790158032669642487927909493538624465618813380275854697729082344093643375925874414283699922855924120290307651168026627905145418879801954768757537710050032842226000029878006074389005516946775047429031187985031681063674536399782961034998872854436194645769539684475298801603371372819224560083169488176476961849217491887239025143810565212978755033037362807550047340859564481888064741669062350659372003244168596880203096586811032374108511068051009361544058564467844241712483374885657064511228868538146242993351277529182779877651119192116249796841971400650232236433104374782200769051604008162938753172021883951122689297389923594074127054548486513812868427137322393527036310451919026602582788803859222866167050400437229133809662882550572123828056357803370207320832459480570081638830291965845242240422818136666356578595365892544004210132682763167242409523360683744507756774625589967189013186609426931947594949374068027434069060159860411271123627614855026428810475331564602361545108142987821822056695408414149589908928535087635479265659754944695718365651120629447894789710245402986255983104089271822374119862762488828058870459524504372350852724100594896672559789030793942321463345564042601345527078775578390900751274907799946556473451608250821806791651705523954474075341995224304063781865076256823241907662808292781653826785842407516498600543603884017682329032411825330159683757752760479376836660934076179892206912682288311798809839123716009783625380592251694559125207942584057336138592472916237840689661875440945770433781862820385910475460995400674884994356096562179827928745704396547244401412975691477286793905730942438761711020128273896681358728896366085966442570235327924520005723772917602714636350078517379103969072425990188495194984242807535323130920322611767240156613910739495217839945803205953828961442188653092995887584638896168814442499126060955404437955777240108203675932230769441386577658577863184824598104752724484896227329125101074352380896666419769147478043561554990315249960014043094469418425067789472598399712665647903667283255169757523378345428835382141638685921808610436712489501132605430482345820552944938179309807407282126283007395215916614700333811468808368842890655623256554327685404121893635293045636263738644843301624732865240371765737696460052603038880138261608385662938644036230299222805500219124245950065754913541243123377969260180830078613215109812579900160352479401954181828698377049816410038383214659243345050392221864964448801303286977840350689322645432651196675492662886791375989245886873822504057119292350241018021826246057343325227477324941637114138095526634245677967656022007842663847224595257762621506334673697051786473713526341795860433288551021388830392158978028821586728405576391960960238277297041428774072003396308233844448919111953781612988389915221118145559035412220023096243230878715527425909418444001844295384356080469853764015976758797279174012969109787178609364161980403469767316752659313380078768833306795792515322550931676380959326453549214179945311364176847725819100776264886274458964892711739841981235070643038198610036904785547459830761161718450004320824866343488042358726365265383855709161325195557776689044683896935508836913430680682030114900919528566401651346792925368453064928600814407574705883527573406667504772284706598750231728598514649453019238963033394237488624335155456570698015954857103990334690074647817151124850270173594742946912347832789818257139142725114381007785775393183125137621495407582373255498486741259834789488028800099482343516073409309351212210635528461618803486505444410988955819494522497563033273052734090698690473298142112767370593467481484747671038800269303055020137762985417941243455380455955645794446102437578273345864095468967277680487592111275566964965503229306355528667703087904567295899578094392751190500512520465356711377887085954570382671281205857096099009871292295045959574308470807894131564653520720545863864089774747940366113079403057300288207655455362304694431494141235823912736431028087678827642998794015052205543307723901898543986301448486555175881089997551408982876199601803615513823896999621246799533042068524848956198461885355957077152149181033144330057996586281398761324819792173286287943394289604063518300446106896880803857122247506566942435416601448693312737854344778826814966069613252197724407540757745637142833144230396058710965121858992048342444947445160431680225465037468548834142697546391821196464308383367973946219953451505928172108678953524038390410870301960481448065063489894619709765541085993312518846572343036709792127660988340908548012681881149006068243572607294353991394713662118679960386086561638908273137535460569398556125624164412769063168616248272881323924584268488826020098342998358126412292699999181430632905017810707919841161795494420145121000352260156411589619361682398337399395139266937219575830201258173447077781767351676146173083322901325006129730616465859053431564233993708088598718413076861653374543594228524931538650260378072864556457013622464970924433102582215264700038995943687986709169964567136632738712607596683248257068384125825325691854784064643663674625472124844941828160689052973874469525481057175700959046123749319039554118257016509934160650144016202881771585380110161049867733631374871865943534263757371328171003063064468151536647921058214043651616853289715162529355126325746226317818390550424845111533376384278523549925431236286756513681508635339436644591616135461745411212033485561285230904764539274903074362772268147913571495572497611878863365486287293696851261461308653960724478011299316105002972732071012242526652530340551098412939032113218908473799072988187537065292440201874543818952871515133139975716700781531315774576179486331252044965898068727151904299629468909113212938699824872566762049315565186541329297453800103196348336980589855192324680562725852944629580409061486222533508608057321713193225016354128961525023209587935691426962855481492738923375768063694735639947314780427086738496298262943708796149137193369201074512201178363500646500165887461311707789464620527551848828866530909872141198209653977658586648027434537993525213804858290335827384552617554714882978864891398264404366014708880669401990333902011013593283922433610144975215982192051348044364156037732649031705124767723819961608822599184347042275646231804604185224480460693066353734196195362755688675168386761519724900902579843303440444130691763170837041794710034947393340395974159199074566244051810212797452664216211342836138622709096647780733256127482877358719403356593097336586219684932882763278978337106947524887523955241027268800280368930371722615090354847675471737696462264048553667017809867339157568263127063375212957239630572531817898612799718845958867154767121511059128213400452534985731155040994922261400362118826162052361342698676015558352459067093671473049336546650815162544153520063961758247234210091684125053809523739458145997755593494445655251615494781786453486909409073287280850293888576605512747840319795870091054264395888513556546728935332232434902885241704855327886090679183590219617738024721688927006942062466859094505373108331170982888003406267381546013989681761358164109278991339707145221482380393332828170884963598331739565448131887661885856246149184577108150534527703838561723005611161497489429343994715671192494045326801614504635194439775799973970729917118130123117910728735423634203977887053907118463361421734896173176234392243302309185245872994256199142012309708863111961749910222000346764193391828878872851651769811364480616775427152373822252150033932929675321216634998052974177011372897690022392112392530958639368888483022911946644381868640860509028820506597487017770182888519496000514464158920794075111913445914293955530739036518960127345106248365231617421271435371770826745519344607738664334551609712256923138369806119501323013330256018073156073022662042077207945095411857588338895263559255747811607500589148099710840467302458246803749464018437141662687664385912476638510201180383815347500987726926092725267811396839292987563245588413096520299460778106674258399750528663409378208354030427094381215301448268078333134124050608204600104258625758775981890647903146524907950645484836599979224936457514971675315549332087931154158997454520558638426953077491014734238005671401483089516428416183621032064140135175904117167590908235395785470440003777606653917440416518753211040885396495854485210730416690715922848215172046139092478363349720752348535921862465090110761828309734278977892527894013832971227108356227486517044967128348681570508997684663555109145298579910821732139595058065268633308623485864483550911393279077326262208035690510627192383696716601366254922952954927279469946164065137222306046293493671629430515276431672758396410233117634505913489576928282323216894635536539275786358788814685962697297807141654983588035665446072481098230719622749200013113649871149265101953757910556667085213867377579189193394313377327092193117079265985644883857151642108428617994162193189346980223739517191631642719433751468312571264460625697543924470146069704616373489770221394381825105491513335917025546453835752060289721959768925337786624663966566211565268130219857323430925785275299677977055171425894002597465337986875880921764107450752520983429348655437696343815174926329306310964769227232587003568671610987504913459315939489765335246073057506597125306753693741764600278882721991645632431532323297900463329516422551554634109526916151899451531578278605408827820493377083991604965919020534862953053998532414538225602153132753958466145485399305657671482063329111782796157761703732161662988331044272129751241516045437766946817468266721570457201851876437462508233578431723940278390144830388974514491429433331311371423281045390810152015859908960142328043741056642964775809215818965638778544665947245513635040815823349407426521447877884439689372908739457368650432006973453501500886940871265874733501977331838671548199350569547393029152247786662369471814967264638436400428490093601099214804910394264599613885696128512413131678399583106506953673215473441276199993375853643405668975170282766504957469578448955669986892645431493816660950159991629860330464238331459263710890120581201525685104653423556794938891109270943613798639473172250270392949911690363184951404318609416705864477577877775950324581278117954862068444400209884458442196904389956558502515289808618297218993018776873364025071436082133886218655258300804609888398212087859823840844591147148985727919219491956671499880259962687929030390832973887402074081912759441272432037479861517812966396177670232511194895310393808982037311278786672974612051917537362839161134834471251792364125880894297309761414064163377907877819595544194000073667331277089825813392850977276285444481085102830480259146787313422179585797060035171141794333037059253144824948164642602868027421282835859630444423202434339453873229509083671089348879241069017367776083527086403064274279539969717122540059819244461224529549388234867913941302094235116937989819501407397604759532145107475974806530369118680134286985173520315004958817132985215152527428588433036659637713652456707629019723023788972511489927012221265159640089126719921627673403769331354789845872951151905500332252013789509179970778574773073597133625861420028777909356833650796661263257065671145237952831572836202412055470189537632840058674513154647291103403059091855704778842837829666742532255219639481062031005914687829841572776798296449603696064967846605303822714431637559506764901651069787159531398814822549354243500582261371668255942622730645396925427284444822998390410672820298122062377175375316120951818465458131128395711111096509194864057282769440773085145934454400527230263330378678247190211947426842362993279006068214229191232208563447006822096541510246873410172197504233004295191116757560389998154276803095302216867069701405965342191933154561334560816517981728841541051947119824487766607898390876950413727216197718176049251154875367597747427199448858207416935222253717843420205465507954670319708189706367581712298231602576479436927772097024932974597782469339411024520148367330933626074681868229080643787529381125749098316555018466105900471212311984905764791210522572643931816325050186769679145646182488747381394618802817793091455565402310279674957973382501853955426471778115389802904830883777428680963847704072978336268992324022616057026063979284870898687782767495399697002441686658318447492966621398383352533329270048695532651587927362527092288776081318404568097819960716742098241715062459574253627397575257322589584691328049171688007110326389260864943335685699361028964033302808817933943332942816032355628055272603855248852451232973706331347445971073452592600200898895900888613591910360233373350508345248325069560064032806628329852655189906968935669165694001281298807628403841680385165516048184101577673725353528936785259516241098837452758022472625190996815653783117086121227182194891450037181773828522912666186721301591191302693257418463409370203610751799099472676335851232270753964637187722038562165439427363606784990451503789420123328177204631905926947239558374328594484484712236567576135919607995726664469434491340171401361866584148193063253057860187873237731579120473267351691595670528584970322505213358766547528597360008457668420250166781527125488301719916945983971439558375011091897302382880495988884410628445770146879844646333371392637216603599476984367617563828905068755292824136188737422795996202838291066025496402176094370298082409229757485322441667389599660121141667877102240523574404253071161693717856694494091300438156035317358418680197956010959614541540225132141993176795778942719629467384830697796475314774548071942374322493817846616165068717288568609440555797234196126967261904269142421908555521582558526196175194737132877017453183392808000384010409450880003305684928508179786387955591758642953855976717918218396871522223729353099062004034036413863445236066961603211307794198310239600813831974810424388835545950666013258043388141902346252481608685114340511282049368335124138866928287960561362833851887936803152173287076137769917942018599497032881282427532054366550012007628161273296933252624407204598457231252105996963055932751988732463113098163301409342341954152266596285827469291034314608744451074904963533177135751655871484318824572648886565242910282897279506837362951321935677110723307280627417684309760498814265026619128658055823938440393022062472504718378619513632715564370345645026575337946701290938589335182054137911489243098418777866791547037130339284271302613741847553040608523695589645693071691181605679990374516865586887900274549149211246940929547083877369831963385658400437027120636621593323109546258802631758295146798986109900779774181922001469244510305329923175144766148436799173037866664741287811895992184516915996857339913407179760989438876568051808377709332221247710589307984473333327652176366396130750543124859005997999299627776106494293889323514555631449633482539342233757299608977264118767922149072356705954604616681679618638998001459665827097077037758783013502500375490451957009548316502574889347673606007600530882868422745540627516444039127150606437682922339166189860270448997886843600966117843197263063537200837667090678177442113272256940518963928432664043782837397542478204129624288992278080657075535152783446979154808093813101718266444218121029814864224519395219759301067022682016844251701411057271907935200099086241590229269441365162859666769670866323517235943942636598320448540650798124558654648725603964552909647678239204845200930702661198484193709882312666361158724834969966412996100894219938495898187608945507120952365573783593909420335202047571031126306223462079783457784298112512876318088602023006440003579847362214873838533552636502339717048262135284917364506313928029469064328074547777548857216572123783691112233472681806696837201840832504694251856412124886023759847294206701035467287108099603809166550607295401706025088233780863039856622663690385803402199389799867805754310167135511135164874767389441848115068372065782782498644155267899767952728996330880303695136567912896245236722081878346437293125655406069298849917223905917075409680233289882872766213079650933134976509836775476373192340459950370570770221376222556595128323157090575731886260623347320950411788588793521869522846247271566658804923668103956512094583620534706281121932413472819554399867365518821262523038388017269127264252530367967520273734370060497316027454428519939486694294686081705378599073938784256569142063059697135964477430321550710480555270478210392616038005262527460644712573619899668207251861746732879644253376299578553680710850510976016246948629415500294432109802880220387490681897714751351387509752035988074216593354958333618227830136501547948484455421078560346369926287501326218916120797252573077703304113438718548415338535530777558450151660012770121410454821255633467988973708676782173158204594925577686437571886634564594811913568605875713265794093744550405138393497538108006690487384110652686825726423924624097068520786014510086034558684240927842480368413421048035518131041849545144850360262188014026094714961379750695147124283749398359468741024701337761239648470055019197593104265141568114966428066886189692723095799920906936454952481381166622786849307873926617461925762358374375303071464451515618352577577926319141043436669995858753567816060308045477395052625868508167590203045018961518694600622659921305854136666107365711407757288391940792569376065081535855175525097105126750047093780492339941399537934126348521507793176002223433918328287193670285954075069192750411002102865525481306062981216135385573039464680023672049294204533070590354964131494785153242138837404150061437364673764333680682617240732572810075494902480685775572201066996275022407683016954777690510299131064699600753099189631730310669009920996628760209887975290254094154205211083773115209121772737660793767327214585780669994817240098384154503346298972297037676604759938735958549919446238532639489572074084102704541235531230991106978203861575795189263141169946552813676437748819841550715001851374874806611193494689976317182059870562389791288041867418797205530295175018978191949800427691685882093238127519925814806119834700656051816251245337373786704319712040256561138139490080344535102371219870354442291953965184933305739228390320920381658384243721256015544721794232883882514153352688333978805125631345056627829669495658186471339075101258956039530647168512320420664943067002265961583156340501481772874225973582391621866073373142170053378257920921582641835401348239395177187207297722056673184725594445894200397570737673363260411755156329946437340127952466287372573909497262818082131915717070857345796934224499930344240956969147347380833117825955866705941371678258393045640286472176836317276440010461873256997890260610032936780201138240371072029463422776743715721091770545415543217514034993422940066488349866627726661935704177957284612475571970267876588465334840508744315667405752484215621736475778364205781793039875813733077326624020419329369271085080945871630484294256760132383411558292179103183231878430518861103671006070200902865555579941879083005816566412137817778840069880165857048171574271139612569711805164268000509723612819702193638066917746490592922722409122617334106581398364609693273310941215147642794482219076136830790688126622969626110860800959224462111730925102217548256378300605648026205583320604795629400090588172873650313102362757488296194368311493568874945358189393201303154185191394105094245426895812232920594906011324580209311910782090392802860918583041514142987738556853747615310400721799215302987263565887644062240933829168496853120679850497233200564545302020805784339489306822312525724401495281587056252641998632121894614487105139258256078181548918385740115082650625958880763585427328863251064496760318284955521001534956812863862264059963310894100839256590155528281846920183074987039925272426678782048388115397183944781110013313799999234959244558459231615683609707269550894177209192746284982368819702859043855006320532709375635800517451184776904528821120415322131076431979187271656335671926817206653466482139070912784780284770302358233964983163817865523912722556123738831709348042389251736774237163241758001348953637867376483139045029025627792077609664792845643619238378959677551362227180768842538093623202725472702144705291916302850724652572640815241857341189959249172633550533807157535369737311656165924847990417059793021096793321295318016969242213391234011415937901882027675385863593187004805052513499908192439410487578793140055828916994086252461595473174169902996512435178961047557464764841895956843727308656476472149840590014457353342907022859123800607824873299487917889486756085996400820610330429227539052283354767226115667464250437477602795583096340430630707536012679522728674994079774318520455259840791350424645140126472500980122934235956192731449090381702675800385938329745857796943416245652465304954734534500526914215685569442035873556028661059896770541150572863344946917412272884844542143999936833288664692515580254522506568264637248251751698512893300965414962296613722744353400159135438395722042393223023904546885854121189954894227788652682970604185132269006634659083487707493386307998734516185269267301799997639651959617002837084410908910049291767151767091577749031553183769619486234900169496825316014260880510638892655642302548585645148332288957759134619833433293508332653613336968866515673667912803863802942485388654047868516660385864550171380762512025416559747859446263966089215017626228716070049276474816146632067374998796737064233814708467473894451991884054301411825555439044588341653769371918375414730701658297279700445901056184523110642823833445734154340302190442932733830673290075257614753831707037153914752359664751719815737176648240102308351362154476242826861754182660188740778279602377878077045360681615515012560372511360927194232695452169258784969601376141595392475304066987863915324332133685623482055683317355071375024274660403121013550663352825019891665612598156538974166278879664505673232954663150931058901360463316183332380784377741103709059877960736827098015480775662147022680219087121505904912074587491317060280325504019197149421021494124573054610012883165496902851603791316056198855116857816856921598753079490301543942738892730382453210363150279956823066645898003094832233823121426392714765801093304868613921079167951525290667437490944748620784568499762224054843370399857753494692588852018201465800851316131056199562091735943455054369949845869554939934087760067375748492594947185631631761437722364790067251870696168877323199584716464377273117839931453074504006840043315358663100314246088794367518034454964427157092212331190374331297814214090708698303826621572014173800395673467096617572141870193714198835582806649155539171289807885648663395196748080883335385248450470027243045379663530337251071441146501351374642160402805810144775147700175362735580764649992316241099269898869403882777911754151184436798923129178663241482178463693957135786115917291690553032292787552376273780849075875228188814142202124624069630066182064451230830893584883187682378323700444185064275475421326232735899699284373241161056084760337271014929282528218416441818747832142020373831737141361949606481201480833863316708675421521557865823087014802035281137337633574446037597549039531956486107790441219447713234119978605147673451733740658979181751164842246286256705423542642881522768427658901195313616744099555309093522117544130999567998387192452831928786845613562573210733073111674025821264733339811872106170495334612518158803924617301963987505651653630387658690534843306402918463955786994125258575864192741855393969523866977722028000774392672198923897459761201923128979285246624903448089491470941659805587236383112805161438122910318154304140634445553705443338688462724692317678912412360290885169950059976648115628574593118228205518715351108970365772989634284238833698476474302193774401378637040377596827201868764625369962764062790825674544890688127163058638934850221828827392978388013512577938454611796889454234802507648944438945890089849336351663982852945616910515535806598701280104882280081799964746284974384360156917464678844901484756578674663642268392357826209362965550750218114982816185342725433036406544815519182355160310551677100871474280325416775388406592799033685804284903526831834027637631439081465963716613569637235668465427993698547637715176700483860373767509717237443857483347479198971628309857270172447826034598432374405294440285325511073888880985558801660204163370992208947081484261205823222494768021717000418448613976414267824560606562921480506878745229437191919116487098053292776817729947132488086735148264431957103339543669745997228926252563001908646631016337348377001205257507382601999367000652657456312083389247361565469271660660237456961848943211176188702365485158669714138744213449406957544467057485193955072148763176945461615928679593247852819400993660476166632919940473037076863830042075630193257508155704590556250407957185357181342932417517077526635755688451752782672481015809342528996140612649131232223266013645722167786275389798079759674687501776996126467384092784756168974761812606823017078547371333244283591983773929941408345202501557776305021696027827879182930826401912081436645751513878759566358485715825842589771034863676141347180161391182484807349777623389897100742647327833530302320266914971755351125032116690797736228249682573426572239963872693528842319111363838525734079856452716801186462945260139703752653641570487611483389982673083447055941712541191898369071981121416799541276276587918018308773082453909823421439561268977983112442705774535182877840032766765032703588546221675531716123222499995742888687604074898781310957367494270162433988773973398198398379728315045102485648901349664698925229867657185939264505132816083687843206958960536156057086471990153078185131370542370904794390433482586777981638387968762546019126908302037625389782962023132938691945661409792394020539988178574761338254489697897402921919162233433417114552720024707368059216456706428588956884530551396498850913445229187932628457539849563356614826884278496632184356050128003833763638462959415812875666127260705881361047255076060494565189700005480284550316917265346979719090528493633653801678654308208716225646431507986823484103750826183945088263532308241316711520348544831259600760523676629078822370705519573850562540750775073304827799374775892150000823857510253117699827576246821350660326385045011773588265908973737947355088364457587323005630401079666042703558608139807320334663568689388810792516464895045705524690509803646091510868279704921706491048108938382427894925838980054566940484078081535194375105802731188617644209645218057420180761705422267370038738723833966847738901781013638446074686824759948531666647549912086578743967177391922055294509984938758397770909329484850894623052661133046806800263748032090896542018011892856164543423669659258504661856836105336789825885332439816331098321933134891444798345932317915786588149710956197137193199833425413026152226720087245107823043108145664148443097373667100945296706347646439157227570172665498470169369959891174095393407865245454668021326409943442750936320091761135550760635164592999134425801634693957943113641357353112961603187019695944778673862299056208745238260790671517356673782374862229722144254047093479275824836446520167262337256430827974706025521467816177982313259353202701306850051062310598202476980709659724078135594503426907183705531006730746362604337195152697056360249532565407837225106153700833028644040545000544056240228750788836795172212335368919841823971861145714839414893036139046145053242757207484429612607058500397493695553070481970553464761278589287377099788123151381849556363981316308673897453313943294312622419939090908472577124568594259119734032101389165871950611002253830032649926460232689508415422285070970949263979436365973952811427874958220974583568432138027898730382766703232260866396062372153598698063282497341539188262945208371213828573035421193493734508422362323311327788665068117041910436234376103285858321770834320383830440417732071518210256328640900399885147377097015142811100085860735783502162062924166663881118756220087926110047606063584424762554125030605429417374538243126239830315703305375992243902497733507713814602879451160048977069265090905661265272777262044553610286519227372176395277502342923872085710451824235075935001072883852137336956346156971154924789418629104950759483665855579543832512503486320223676007870215747537588677315773642086788879164254131804414022639535898655512668403980934621343858801851034327106669126890370241146660730473729435394821856298792449775531538224213484765379578169636881451467953681996029989417766773013330385039467819145910892527796625901312328403342010095513598875904526210105401430097368380366611745741824730397865583913507061540926517517477435488520686214147472860955531257648934946047112018067050490145868684437224921192654401892476050346563626812360155648203397907033557291781616695882621384355371993163506413083340303491690644821099278619646947288019442635870946734730017796855253460443314502640347495448859923029571953409590027124664323085414984283201014467550669484144782356572314701485064338721074351383232594263283039416131425202309164327876477544579771993110839222432377596273377998399760700874816320051896817058429792342925883490343415259138367287305084668128694203138847456104005722906080385321640321084158629072674313560540265483037201117592092481416660601210411883567847376634481618857140831628455039224141682697302124645594366531136133874581420128179984201071744016717538298274707874307703789109979264800911346197608275282552347395361632970132662582102060077583546018430528505852879435791195068207062013090614682501398711944036406192004060767478029177018802858573179871137755917906655305587957816179985423655619124597897691369331253482704272931402877982762352336987623112138581896528653276193439192770501400197935030522455931544345659957402999502110194276273961639620508929446000481185766508172450439445185129323375815832597444354002293791508437997206475598494805871966113167175444831545397676009378078273737853640316817435664331944972337278542035157985761205203064043814725721478128090587055687961728714740793299400224406751841294830609592524599543082470664719983126572357679564947038531504114720684087096952694155078744028243417614855251001583359708637564257614325896264933999682815772302278532314656569175805576506314463863460024594104532584793599697847864136466301843415017540951240134899566575431617609691593604731789295301878408100239489267354000831879537901320111589098512786294305068072864268112209254501895511975009613988270915068853398474806250158954603727422524142590498717562549106719910583606659178311958270849013271207164104084451119665740290327240089434240038164181639569768608085473696328440220396595806014061676740421222133799615593815460602874670569150434125285057529820674759060629631024299204625952896395846269574839301951300189928715153146299689566069046805896306164479703265850277622573648049516709733747821119561200936955675618763165826246403149192483785421530617784361095678991182720826681426173264526643250087412120129317900608195846234861718043433036040753846115694215554549303113056088808909473797719940917784477655240991446081207807349014455317077447095758127774783182799420270314068967344769845440472293000043878097373371131700325032253221936233767986812710641277411801593054434095679243959661480402363148883945378293342428265755493883574292471567761642550752061434775083997619777935527881381947193858055080367991152687909029138943409066517452779491029295004251714786486917486631425888740150928919566106189077875279152586498508358108033454791644666349283880648440775302922596284030741489959616943039312103845472875635727503319857598925338412937534278746828035857928259404645730474110771590864790839952351895612707242472451415782044508085045546253891285795043414927749286699776982756869240886029228256110829478780502138825781087984625249163078535608261012123088816423671927279254201454462302034536561690433867090833873440786139953412791451858684862711242704642065693109367227336704602114010943057530480150584296884464703961979505534298527447073591219732330235550796092128773612486278693478259627816240109316720037188031467379399633387992773480393126892341052841070248987738927024728137754932605419713597355544797898212791561108109310235091020232406046120797046142200503249348123567624092504770949777527922522698044905227162119053607906342059521500831150474860469456866311209451555964221021343106514894682379893870145280768939817061415645213174846939903362822980827187788511446664713352793864277962419578045066014077769959430401931169151534940651992565095631373644194055983806735405283681879823577423542243794921628297832867784416836360312661576056707120572613902184958694817481575336859574928548210922484455383720490201477188045562818792135075703221260008010544880107535206052711306133171551943179511826325719782995157864731071787152851683434903159792285829759151519309375197359950865388915010443067138627207145022182326829962919181367842348826875292672505111162558440807527740418737118055440376307404591712365567495360684019326113156202287483632657270921652573016391692190827519580867247032980388234905692094639589891877286158357711026650885896219779806347426680491988513936938777670627403724597671578333709037518626118103149335614510342014087378038160542665087185637941438383259855191298617946018803183788216353782986543206001573347829766880662116954156226005344218814176660884536192058485613852137774126632646330277902697238754272387122230871393418927100153455153427524857722202215319987923056330893681608440151511885339677510800871631699281484565212376272595571478426112285402582483176649343306313715329616818530257605833208024379289392821093123918113598848777156117478236487227393209400649166843835856006132534406925912597333020115354375790810391495717318528489517646360493831790773205644427474008293880775014303584777931474634278784575051532118443444640199922434953309710311321080008856459652122747676695568462281300656554074467409999544106615365641010612758143306057486656902813839427757598206127348994300715456730120211373587564604075920895319725531368309505827343986505891336359556488933276788758117784741426515189629684658880372764674199482058594428287301075546920566698341735178150259156021359779812296216248188439741054481984789517653193586467337387625438260802661881015209870149622868398323598465051291501464969554582844447472899537442326500483413280748800945821025874823788159388718017880383224002871487737315263463746407518489581086877796699923356900794414293264063285472027341109166428428924826415553237271961673655638154599141333243978350665020447796100468627485277458735872822112083875264082328384883353130634786133390704289592810350408543151821677308818280226340403331387000325465144509549717529271648730084756904102911694647945620844715001455960799642085887225759728706956803035839730857401884307448232226217146038992685439121356814474763493005613709404282867994803902993068117995001885317969126430084493532764597048121807134637483304879321766374522302660590502168188626229557000062523703095862681131750148019736824432760701015559015459399815569389476955222553148359686702795676269453675128919491791610184688821529795021655810321279742893759947611984771504518291497113152187021074857821834448713965326207078216155937925606236857956783015763454689638516461529696047437173029163056019824537193339068691279998937283260756309566381614439928714524805478470120098025099999183664997639629136860103898875192778867817367520584491092843175731708549868052589931022352257598272728787106322950246202028371109646269345155073355472999063969574005196735225628748090016709524035496806886831782041936956294324919092631609915344954954678895478959119241170443175095626942701447777729565030117308934706980505994824183680083308710025111296052317628704332064599626043138911336034114477665088745099781309256538488035966859744146035004220843993412818064581784290835306399631943922198702387134580549986002085043162270565813580256877653103776879541877498385780034957002354925624350854263763637418975220934083553173511233249125282750617790740974811838944999414074795228275279506183166973193426618178719130351141830216036574484086486501273170310576516018598373513723738620368198839270175802960350278840570999726104863259900702421331094403753209887890138295043204251700837144543569865668114852509029650325091066724597690612456961176695045709853243976866385121240326020071097424627256981745737377356266461398830185256977097924765665218822300086251366319579361042342692212667059123391194554736439358184518467941266578067905771675717074581786296478210876108694127520488445999520694813744147075577767228782425272184025048522860640735786344793399680763203965960342073026620872857295583956254497021757478863773341950936783701338638240497850749433256394715022190808644335958014472310823741693774744371037483496417204462744569627166361518521513241781064547239551554922261447948834755255234372560346566461358527757237613990260755914695144216511739830948863847085018538032534241029137812960084498841876328203775511503834900962255223909082601598835659517926176131494583282809307017718356476155787074028334883710399558660893426423759575299162326733422218804654423920163794784349744995660839425109998472214540399147064776022912818147814950903236803053900695592201083582664383765660103321330502088797179591200628017233935492929804865441086787394676899716512867185163121071494497990226432536532678489220886914943937836368927057903369390525130331631418045230501868392741726671040030380730681724106140065125016794517692335321918550155749946267307665349327029781875023388150211730873350321556485267354760432605412622285561867383095170713526078786033996398153850695446068564268362246325519880657595767028600648854408454087701873577924273328550306570946570467608824438528216013598662269309144559793445500954432442657353900378177137033756820328852726342732860476130280448701761692592602815102463461114115373442209394850726587699436277208670548806065440558571783864265635852935718268088170572771442522305449275926633885700178539445780134534171269160493511524302503172450874714846813217771426496007192801241640950174914859909252234071534728701106060638264922633097211690873045793007819929913586235093723020645370287852604987061444174062991932313907938998488136814610674652183432741895367184428112251417866193024696196521706611680778649811462963379194827863931301933313232195173288518714150381853658962317777870908686934095431216862651601910310443533736696676525474364082710074665241174084386192869656660589457855325831890829799441565474671634270230289553271494514780448512674076603024476318252715739793933050567727568118107461539278913831682700867300356571300697982104955961258769469260307140042265244182528466275230190672016073492275960874758958331226340229509250739191332282081964432182049723566461863099936793705874414039041398794842015758074587854587082041138172050109190291261387017215474266122983397497040082070900876494414082283012238774227507232948924532861452338815113021516521042249993057085577064043502177604856444930303894645925589393794672718986328277420253081765327928670378406418008419847114896391276070136885076560389464596510700188142310919033680976402845504801939887854316963766443801979742210548000248470299954853133967620595497306406808832716168743081694944419261711455431477961486866373189359345699141476616565543787591055037938351698067997618157333225783512827047473504153951127554237752404895291318404618871481470331992916313212582438393649557625486447716285808862587567577076440220326825600457384013953057308398548166393050898748368992909045803960585347445966998404521839790482310980260275778079737378443187779326230091449418446587144684356316001866480921440698856118926765260940930691763384857368124446871124099166882934496543880459918243561126105750155855114163730681114966364665470561147759293080894928205291168651480726697550228668331924536039714341809738774479796214251967935318496369880176640512148978914744113060574016764422060024102256318982087015792701208762942544782659910561533330813296491207922095208531060330096373224358371364082442746615296689044351913361476398986159778236775680871313209361437550639667797838026121360394173313666490618851036629135507926783649197496072817641478269868205583136210319570237544403208767135457965659101151316962701928352783575543788689381536217846174063764578050287217907125690915470887434669359648728886629508988946470357250348021844987248247612809809487737182345000197318978250219739594623055530144763855495152771133949178909757939066055654934282393102844350928541327883910180252750546005561853861286806979230658009077174129683127148436388429175845398678032228197851840164555886395306644080705756675342838047885016558962063815797400815746296535897868037795385631412159905001078929907310399979468610323037110958087807804824979858603504350870279132839191695620218744986637476995234540057561448502783865512116883343693104407832396228773873608678587352915694815419405884650535828537516712910389068651056140985212891770441913852441680724888156382876117541108453006189200674176545904661715494758288119092260424069205678330391421961155346753408424481797850078393901401016978065066150346632731136449785626044709653905224611394325363107671682373399170896752387682316882102176324421872872779501518535034002754039686020685929614716041660221325184861036720830225236101326918082431834629581827342063823165734002951808107196202319164752982933170139762792500722649078020455443631897812503079529838524798942078088255718132165801466869744750210095170465671586644024661043101506186688415311208021037762722642251936250945469860657684403013881825612216234310541384166978643271202194390518108795313157094515167839743779292634901162813766161564375078980770189233692625909294592853142945360500803407687445731906380468859337437609067992666990011060882418030181893102757231161704084349186290711980756656054816768812182677074416606712992174935154299489506223013278430936748958645480312805640861405724070643953538313297956972328539604144276442073845376180528879164042467169585810708107977312375861326886384143374278189057622675238564476494774773266177723214296763845652962810425053337635499837825408938886131133675157526419728556645091161791053540934119609214755406399462949455578937221556155243980431253501069927275223351855914519804451661190322639977039669437388763534318099096714877742892627848647755238574922585916918460836815248700758677968268556342912823296817343671182897787577297237473217401761764547711600528374876389471623223575030195192850116245831048994574111896004380496054580632669346988248641804096506181002641169393810398131241709680852762943085253715931108949684617718149305964199984389378342488614476353407638206750179304254159502153372200697820207771172480526836135240281841269628349591793796196834017002153615348559319585171663629624519005763274440528415973050530476641202640578773100289167815611078900616757089512574062556603273044965676554702210912690170324685249426654783837858511402206388124657400421424033355970404856000995041278553093058703184367163772297670973975774205161188543719320708645435896189699300103033779528826081147379576459472357282867209956817523046105288208397887868420924996290116630260443932205613639855301852906561608279274152455549434711883842074138677369912590234271716927895275702229871361185513394538048169681359057866041866333230040304146270672794860906706909567375749307209429653218712415484493455195642892513790537863978933702383290376863904365794742457944944579139666476656914185082169445175745756102740258629741819163940831638310147856302603966694687279761575831977880194102330061826387244281348770531970960358736850855267731752797012102801906709648464771911370218993152143953277164206829298291327046905548028048603674257784522648062078209571528165707848331505887145375505797398990075920217956543447608324468432940515194917796122252017897156104754156487584699751352204258136099119445982983217454824959751201934054300303806246657978941580950850377371373989836259808925396850535907767188502190740263069153820147897358884586113693851038438367105797427628897273510339018491284665131546041226218008302656087726992354486966514908536170222037912199517888580090210731396760667164707273266252818899193669377589848594979724916399675462384043625510293162938532310984381684692262701379457848069353459402054988560381173736791488275975568968456409184011981580947879239714113840152201589414312282908593376840376619521172984597868277566976333781884322601476617455706933338707206764491393622443578944872494865006015841223058715998861000166777926140001340656526106350161239632642707926262937892651584461330920875752737856757000167926490493901529972226164030362393917986444358160455463875048722394877314066778095306172932095868577459404824502591100851279756311493801441847737570925102154948696378644781640889733924939349395791775878811793378950096767519531393757149549896957395022541108662338710713761961982619876766897438609006841011311509414267210964504758941109905586416502501010268331120454511215099142442925450232576953684887131856562703359630150236850053441625780745420604520521932156572822725880718433111123249463340345471051591048544661263705950161832674490962191418905123538693428127915516477166698638895255101833643883878046946837410104702722741036617516095819966376725106651765382863331677783184241000842465123200644370336563117861750615133378905105243699428747100633624925982616338773266281044155863285082876943773172189703620862129720791347229462238911191382699940792897457436306773994583866037941769727027845173196568579710352636142493502978319053172133762549988085941838379468355842809496679556401874206108883161582247428247496083071847985408889434821838836495778802743713283582599408368768385294115779982461712502680651088523633155021050688158869345094253314499446477766193307444683925078170570768048639728511698011918324444085872264143319118155249010631224449657847868737952643621150992135990803970793903043071309800114793428599098891139602138046015107935731284557147712921973526462974155911327542050322707190174509749000264444662205779954682362036118771567702123599510826733588058427800387598875135153275937672281008991715427130359018609573768769523442119726433721269425842489395038043568261387660714722879295445845820781406441839262422247292418894285087555522426164792040718166015613617574594346128737420347192622236521825713498045796357969638352563237536140477533487093120554264737465021787325591087612532913482909716727882988154904431731351566136258808490965686129463107681031592687741953027070387091342706247996720243050968756998885218524796927806352197795766953926653813687904976168621886470294094215296521854205324613555994711892675679927132338195034305166377666284450612048281865566220332730038398552688646559873618813430368058409021882175996094715483360238004274347769352161374508940276247035830774993287124639570943211446023818941312089303197555313864667987121756163059021633397060056591428625568056095402982603009176783899185651028463659619782495683619488416146817054171748692153583794248550129055853501636938037307813781456348532121546152964713733968595739232311174508186487487797576748024604705322690566742420485599587308470260410588296604779390687760945825766277648714134339273073273563577114762575964162903386401584564018765391206740442802268355046755795308058425979056708765943539987868745066842043284785210504433158185096088859070902073677060381000121660754958247526777011304956210494698968155594952739809112843170317327010232108402022737251172966482653260532915804257231474212275989355860660690178092106071196179330618340434476157901623240717933667682336581790339594557755892516645906768182858915708793475450994780230563089827025593480479881273932792751350681507636137906731083636409687767199477603832399576772212161177691358376257836233833124020207085675549758358540131320147702828806573641541438409845965831552226544594769804085957152848246230078960415470767369790163187979252925277996953816689267800553093377858729888817221014256980373713581019575697389036789384110964716891364343953868306231160907171244994631403833222537995721745357697039221711476984435424012348627074651007275439952319690966692543972025059475692325561736158972102246645466465388744240905550646057915401685651977062118542708896306119727765030010039394744504150276301448259788210875029714151098900419590585923633907646297013463055394488704516557096136926124602906785134439340730105698105951639827605850702521578967219165694195434025136654857246911225372447646352850375471740870972872941312263047768113423633553745840177445799845933312635378538201474542852834677410388496669358589171282477500341512691849267809559253507577419185129361735557506592282611345286472679446331316995571171647891502267321339207654426504341276775112394189239808821250938962634254326505683866988407427529061687513728416211716902597517395930399573325982527361826118406539654127468268163412530395691039291247544359469580046847410043529150187423405759594122983445490060266488074673631173191226695468538222877433661595223306991060230240513595029859225730209454459990888193902657423277693336244511771848404896734719946978969570500095343691449457178806975008182208996307177547718936516624652299083170868492383907824417485264772225289564951012278352036102020762854821712377135079497464205491379652172421979226464388440979127453154617113813390815314266240591894688593641256876147581103031507951896692778107328755230503938043581635760730382975132278972095068235017935309717295470658867654552352964137997391027214403277210157317349189912847621413395133754454973186079907051166119153200165369894094396777011384568957405444878489669688315267305257734395560520821074375185325211536083873645367420821748812498350938773067507980780908800961020461384139017707947096199107578343366170768122264788723473351823923159967379104062614575907757637605239855831303303505314944815691860392044309280790240778868548244573351202246968410634595298168337021030099469100639455409873856784592468969998034465429797475259974427233477487747708989256198914841359441125400739521714435922097967893193095574884876184309811953176794245743072696732486495636850088433984360404046494544634526204279258613198210312707226569251015713045992509892785057352247556949437248090242686842496988693273422619486770354164199882273584217152356444186823667760137239043440972582667135650459778394852764270316292860522953552495402785830257161939072022244148239459735934850923325184246358035714368159974884881813739908130169308925056446184930914138187295084199487913320371469438296259881413059938337111268471968663634428158792010692398245289000451823640288532150132920718612242099919123192282727263264065201496767091997064591017375232131633615558204020834094577638210352224880103841764842819128498511526322337782475831158940823353622256726824551421226661763100369504370512925548717870942018376146842461336212435078600391961716961093778666157849230624837650159303805640481541817032251300074084381089649041783735867764714107664129061737661158020942987086650172842073544891500774994762925869818253328703508360973640821091923374483869775081761118502287975358407070379687311982737219891793050729865013998933148400290163933183331873473150288120150217695845768694586473638033568386247233734455100344201289018585431250066411606706416320671073229549731142445570392364943582059456074860410553866020612215411128778679033990171329519524173156195850843907487460036640576789897892825206038435945217738921315382108967643172713456730091134291996694089690905131624531957506002511342801822025164816531056269945447793274498294936252649270343019438457123201103197314470972770435838367101650529320043653480750135287540076056908421949980686303468919318721394459775538378392427711014604900103238707423193357393597019244232720188590862728255639609861613292797263251176508097331008876743814480173609719207097596600974366325110153391276723814495296002809173392909796169873688008063924750768542970004632263684961542086253445476740309178731226619827921016012971369904136460428578347585777700686415099029838573957304943507717814326877029456710232484998003306207284727306525162331161111734426625678668107914413039025676279904937638038688181091359031998810110548088729855655570057926049695520989230978560646690359970092105665389287159289396268806027485514991527021841491928842858487508463999730268473808396002751961698831764266729079229389737435907857939085410182226281308620001459323128237651101138860826620555135794684689277565360938380514227682515508743277951447138441790439980166706414290292241051021399976580706601001294367295152417433317054737326285413356572976770404998104855615103400693690564496698512764565745659049261217391915055890290588759885359666589067709426659130457364502721999501478972141494028083781269776599865626905762314588590931534999336697117070372987267131563818423607208137231440224772693143717906470327659138604176401547115029912153136168868405320709279089883219763243615451296509730151843710750014124144997950556717250317432306950857895654983801527250824907624908992463229096905002250136941761867658143402219273202570632208271390889370437867424387241599707674220133346061320904144393600347334203982746999167376302382907570280194272224533188819864313101319502147437973485041634016006226999553797760106440224478521064647211800674161244076762700673578204370808984750600892009870754382958300044377102862311122935871704127698116840835488701615049233367252139374297769706362016150001136909263180184195596868408522148502835326838931041985127010104868912968382593786719538024824820891086633340315821464468498007242444807739970360997380512685318003642849092319119833535210957953306263724611717490572039973592528746197857509430886250025585565220788737560175093801986603048952301072870056862846316193490631486251524075328217162229247244264879112681885901813242115176052297135058555571612781956816794147411957734225517925353589249556835173164296187995437740059863432131318754199918689643510500017149539700903395647879640809256735278465250414497258794432904332690137999032232106921373335488385975801281629813092927964824168113994980790671673794720635509911286877053909863019673289330529095694171143063135694096227433604263683747272140704287165860746373634684887946174758442267919404345732322794545288150846705495805831809750424818191453393850352734268625323693997404460856061914904484184697247794941822729954509661621697007089814939414898119504188050730154337194248868146812089151254693209189087897190796112975105155787789407207253812922132637316113983821114440928303041895627436389074815925736680812498046462042775926822482131119536398302332138947691141746671928378874780240961114903079379725172269253528277864211568122313045934823463115323310139674108724837343381780765364359810154105081828192239446278821529836436339577575324951865084992172894953957917645481005041873972856080575922179505517972168749712721824495507510145997800058954418876536896516257303708069242333266096080806631554118008207542249733163482919844265486865541292432154290795575131089193916175208691977282740120541335716467182024734224690672253564360202609946134729919153649303441389164734630790705218374963293390010613180530059311955227501371734983035413311666301798677818952328457153111626270246243930080322553493222638593092844475739024856029466439896125405024387908793757379093803911530100905681943085255079585664062703509390607871182378120915497316381787229479062236293065806972182419200657427098205692663655644262946199015762166949125284949313219571689959194109173518721803607459615060654497315860438217645037933676437075680286743381105980377391720711118289662067767852519659648072071249760305187704811587447363644455506184521746663125729171460536684375540213455356198459566689020726311823031722324980289190745371053051662209233894569204725341384083657795105062654282674192544909603065153354111140469412796988632255502830321040762192543184122552097392311390909140206061236053020351623763055824867298298806437166097292066743598973248716512862898483548106398166240210939723018808462211538646908800480276465958592082275869561168210021844521947078706861310610499405655712673008412951852599261191264442886703360152134137727891789989011201753340316941619735042475273754183428373507974611664185945421078387491141954213120289217180298903924528545456761677432961579020931386508289133971357266243905899750710181454321780358697015265757707781263594951336086080345354881885256354012156945234448763749828397238903774102652731802621849076507659278127652209584024288019555164455540116521963265432262561631520583911176766928280055587728229658420320922459939262531006804026288655286893469639398097444781097717848418187688828371952635540413623644220299739080306044136545641798362098263247702811250385117118202456998210237809764176197767619058192754300025384292390265826439856636893466287640857938701641649258149644861071106431373704195884491137473599762722580977460497808286946957417334661409407536427378013323812440674888149532232423396472974653437610805412620641583346641625022030957287785612243320380090227130517300389185489176714564181127031541973139797584294387353495830217914275848444885056860146588550119482048586314412992969600003434980408277647500168300280341983349023987487628276708707786089991620276506965557200848231346003547786951571345885560546231478200881144722517075405052714927662361227336578068375338040269420189727258280406086831672438683347559810713968766015202013037602994236071861391341566320460577585117514498095394816480974294421368231552793321705589940333219300135453864987467551731590807635449178046121627484499059442452148696330651653314786269461307822541825994423128227585292770391404954821857920731191941146176654023409034527360898213699954894240867678657414869074947047433100756463622084116719188853502265551912863220895540360670989231982857687410586488754216877946439529052534419758430065766756050794812655898938066292215489379788427747741524675394010052683214673163155418976377493252441954322134236729231729933569901515061773931383764728885880860166962344860255551107429864971225177515529182252446248938270500114304381158576796103494300667608814253754330771489159372468457629028858465679788024801104591219464292792225011854725588283410871784763478213899114619789370286771399510783559901240898525079165449272540942690805326411896655318955540237549355380492378995426903520519242008357191922790898655858802426381505203136245123650111273178043603941185257077342835807412076815117154426296054990242130898846254596708842645785111196100085189381640388805787523536165396675004627088032690886383276196214338351700347256604097354835400933456226406112148968865110615791643769286626965361160385734239134407089872952294033712647713343196990584685724442556144322721872474057336009894316704942457396669006076284328061539573882474416978837745121419085410496527542109538176414576970382106096237222557621018568799586670166283806617862424783173901928884889601049186238200679827613666497592705834105420705888951679958207806350442959090899441741066774875222583265186676049903499941009739128203378253205000107422357388893094255302963572512025456990504840803673269137945481542695157551538626713394093380703807473816073569263536190190595612077962462657315966515575439817018148619552138896704983876393553379906330001704741233164455939492762583054525994686378850696691735143542842818688428107693763860509457915913806200953487104659752873253489982446149780116609407085364214356775430585490535202711231345417250048371655014591638339839492274642723315756372940707113692797212274576177244267035866625828783886947197717471541173866900828447186073929252925703784084202855798434628458160250988523957074303379247138204436307840894060921860208804799091188150226715380320787188812795784689543820378495007407651028331610259883643731796935083293197245749906379096354108164617098449052150601962748967721458786572806727092336356784304493442944236014508678682318961183980430763118171168842109112787993578433148407661145406801171611346806380377998305395545241959873722279366094245305020063004151036932700011594221599819163663256019067620625336785512192938345514555859008628499253180754573018761643263447042860174818508312260254794915726834747169487526268574878108358004429384044190893446072469778585668861188488565896397119361592962892514782047441919656736815943861522870694164802690037546303962027934887066931703116621312674242163853505568503970806943997543459459961015683574743012717815823065677862677891162713068250133185514186153767085185238854317561883613763251267461926622005326418431497477424557314956757642131745489471049787897719316972943845389221753281671215736150352469405238633754841148411344020178215581765226855424009166551505599223595737263870346196061231389031880149291120968663986204309472785108297469177683235762508295593705925482023998967092683455539785631436834128940192505485822243245990908249050221330264171965869768636406879252168189165544077231819788062066517089328930947162822357554777818637951180863022813969916852017523106524163990050426527705477557130468649651006080926342906054548774842211392438509435173231365874603119093882682478680764221244400989131634917721156790336853095155986274011539000012423332632844674386179840915656462677058178159216078716866416625344472665722161833130258875915100524523540007945419711870197731628468036636271236455794558501194280210495732362971253386098675159879641082770975440883631958713659889692298065993334343226252115336495942261389141814785233964012809705099654632164608355600059627133870414631095177835034672112063319184229003232633324936121885194681030689680398714271381509606771238309657169896500430378134351056131348010072330271057255651098038988881805076489528245696192337117207700448757808763550006600012482031314957278938891262666473098656630764493471787528854846387500569997098881207647180388140288062316764129930169010290593873199988715532035608132072940530990025310057833870774781310189073071059582213454663239806669143401187013048066348252699015195786685745601506852538977275585170005764010271896044350660018262833685598344955440806839409843528863635994280788815444771887271530814634577916579679770064149840713704901688425051903813794921393089278301705323211684654029730177806930902304616871678109277788414970814291055824350265605070450807182750511616307129273567960948322620740082302501352007756014462075093795644332584300980963446479260357685077218587471647146204462395615552758373970256777931123557984419561935835341363256458386653670397953968375922714344081916408165726251070094449742168810127614233806351794453069811025016164619144190782314220223549797455547597813826478140251844378942039293709664890867371597868786237496749418549339384498717119577278417999320228149688789599524947144200054313578353822581076161836060778880809089247998414153626844655801160232862094533979371997691613967431714096045849994262612759698642344630759917970969690382160374427366220521203071438869888089692842057148157871792965056851239305582010585267422445607755379478680541404621248367968817804600441522465459195779198983855169166457218393278005251375770690118981367196479392390961727994593459667084915028754095205917487621890959951957828669706292833075080354459586927280421056318933578887370688691857135344479456762841452657267252002824089204040848367638393217529025012193918710832236607193145239546271724832470005219118801242339503178511584052625585769703218837119969680976739561831859956873878603010784248697695261349567900108348006313105976512945321481077111868207050345978870106721133328787932636307835409863310152368078645823021035693799849150935906063024796934435714191381685482328569510882531310295497582763447473077681010290155261009152777547748133606898062233418645110104659037071909956938049236632193271074599915056110977713325845693444692227663676076812975020137575817546342726818308847752634051415951933306172152810240716250913070781723710942894395733820131121111462835921694266802608962095069727111097225652293047715587334378484765706512190226950180981413649866907740952444690582472784748453094872267296251935551403325772319816195140695689729960055643635799596822119843344788512343647828188647920702788592584518375935601640107044552988574304529298971584491604420310769362355960591604211665437761643052432346582016758262154755251947576912681790980312104421977199316730697204064760396209383577028818267341629941616535168073259537315344301692716489685903390890267149297181966718523954203448983862552641063786995226256898589089578945145346827722788895913677793234507069461499425949692371008917213248997866270610839150182149754085601351836108703937905004701159905204508143801199131172567760107217907515547267421568709153297372132989477934830023901646642151684596050289394250139518336107377782577596015987156153342549186519440334351702928409306649010316920148455271460425119912986683075527086529895731742126449075798954831828994070215347309617022054607092871548857899510776957324074551240862376583643838536174913684668689261875289951187717811079001113842120595454940740236954718461440934561284883478676745088187637632136058143114513773773483934495025071065826141313977379909410170300519828613617300598086347654650414828326712125100443250112730623477674891935390343627487309968833397967126081385021070889407834320043942085736252215009122192012702309843819556598338580639118026723398988738374379803397701845053726431354489173930310880895354053874085569382036673845562900247095653470060457809640613733818140946408718516535525836067284814966977695079775295685982254200015534377321937259824511229203335148924432316759706855894316372764432237043867535025174257863020004580881509880577798067243417597838213597224969238884044037115285037735318327189432462818415169961640704792599971526681858231519001672749298624446488953034292038027825878518365974190688910671164011783913503536207755049065488847262552166309054641576997402347313017238397023791690479037325983257620074171038512373419768632783706231910928930758549325545623585715659691019405552303311408297775637715664043211453168531780034586031844457546175201813639642710236641114935559482572817587195452736884423341993686099278686295110934576444787426098184923140109122166483140429450839750691362685600006535271122478482394749076672793728378710720353269814148515201243877912984566397316881081938108608566964689430948197141186654407854944928233604412342537908838001670441929287579846347739143269150424292346554057272008997678034621712605631510063521166562558714274161902775049378687503900153066067557260704962014669374708221782122234566516638995302196382926997281928459315618880140303920154560846434355231977855772210193788304277238957615264915796641128274546397317406269393757323811098287802714782596861726138808044126932597842385239665486246639196326432486264662776865244835357969745161020158908082004259088038549824415206206582465899561071581980649774874032720369469695858437757198970282051169821656073644967174807831750806666107466042938751019368957713657784327410369492510610715615020452072650122638551854125042007813601715521847523458804961636941124693529790521811601900813284564102762106064144352793505252984276870298657617515740043503031898980539092665098662433098551354962335901109394297670960460432755033426867989304990643823758792315646712606565833007255861940074487146620542555146173453013245094910722481296581444736381062098448494715001388465628399850820648050653768334054398779622660671284058767929347851310089024914735869628954091933001859557333391841720672320848100757949299025708523201320026553276823644396694399485490177348825642453833412598262752869853145368748525162150436339910059164286462407600765617669052344145685884765604085340631195624738076432406657785484623606503117171787877889243187466633701131273561358266203598829436196212118041491115891934259019159487562853159458723985912812062785070240683389069797640333719950661230711192425937040415262259574682521215014997720041549102491218407022775357341246218166382119172604010838660855165569498092127841363631342358856736796213237076207914072014022356152683886353273524259837539811007981985350950996193682424217190699721309683837329683140487493021869233024059587875196472378073168745024831119006691638503607317412003917301140827002363948938016989670889232429181605961098551500571703243306937765458783182238116664616712415664260839520529404201837199852456280260144476390032660493719295491265071142447481591804036512476292775723631645843244647046189457191995467615852942514023550151320474949958436421556336653098691447925474255304455780750449115040969572890297799970278338676392746117654180415824129237783935282073188639932596965697815664197003675627728718665704590028456631014727346811265300564552796693914405819818893648904429162328391554387414058797526957504829812295756104479304162191384722546391995465496965998534796527963935497551010580594692181506362303329361132622511146533468612807266166940426736436414890932229977234797693118614831810651298988135358073342183882370131129707733436987380654434746446123541958096635199778790099850455651493052819307996636125681335269432596284610967453800951776981279641420163165716870901503924985431204511817082486734405676516629951456756427190977917045094804473381548776745033173695886904931920137456249350824009355802194689021113012661396886462379407327007374718012111294584353722151028382753375656431026769502441477600289192618823939202617571544664228237284477931841048993486493737227150549120837476656607729686056487093528166160184576028927319469030255608411969761115981371440337497382924012854325139729726654545354538227402668031151403549808582371116935792117611815897602138022297322867804303529653810239184591387901111273957218341302642742396698151306331982267843871722644053787083135485648647642596031790393164106272692599092569726687984403138264567535838359231375764683935884635430042351104597195419150221462790559249589944512816462173816939944300290803943836293105571287265655129084750325011227937020432555810440865261292606218227146872223342408705037319179032799101349751537328251343718332245757127914379388318816475460050788525942066093100311555434261224561188319592503152126569385546245733159734192178967221352059855176109176962630843211310495283873131937683117137997390280697598431714211704785136694332963056826186779451281453925042027858236904992368431352316026675477457982880100199461893483329064629055807908706673425785520957665213054578100185729871564780361849229815619759460399599822511473730196786490561398399737831499229885337382006981073646422520114134136497775097744275108625165568019228873803691596044979996679975893208247052174339999679226054942341758538431192865613109245547289745862845433904776856343279369012415404137748888635586054143197280318019701092796289941774382048605503482261059775513684099800159433470745355668260219109787171253360112583405161817855433189293054005368293595631560570412384502976386994539006981168062308000549221368360623697594295701205943249324032269551063148006344900966569737790516923725266704198105159124945828655374433670946982020696276581751653368792161202080506905615051057211301342320635847275900934747018964243283643662862175146088557165480965454416644309953247221938058353404679353587417657525198978653277421422779468852007215653527152535775356127091546703747094216468781595862264856132781838845171241828473674367523195828929983900568992185875503506476569512462329674585215446264865850473924446226827616030743449568122328182934505996222298897821014859717927577758335618728316412885210761468025624056137280362735637676606463747357209470801197259757607745709810423015136001871800077400682460814177630447951417047975848095177327792409832190723445777780433384066426511351727289769138948370265484740318549055956528073960762809375706346248084760373365008716225772183324152437576249857759328751244236005936257785376361482468780914351918263289349291202147745470645719719179345532224242842263897847349329233675809893469640987517567874143095634926209653628427102248409659504588865857542933574285997408504457119350395103776847956421878196553081971400321664782102952265940930380358089723409743765491864528535527979588178007155345967672583175397090149763789868715682349972870807228652450935981905825419725697979658757612977483790226004209062542423512168582515584729446214452740493367327025646914195784403699474252723337288782567484070386074742652229059185483215354392838157739251427415191539369374153724262230900949357917310529369040423378986192628038238818899150105865363427312303446317006983361180724906421696348366542618494535087326421131486052325325767953539977138901140836159092040436267376874216123143099950274015943359364501349418952459544557266377288841768868172311578223613008763689172646883094604626326803849706920597652229340129515639841393354383658993017800955532088220925718303531117904570487128157658958560922909896459992529289528693086215480456437340688797659644276291472871268092262359712296254917077486169662861903331210149291800984603787047377374941965290327974838990829999395564092720841628387180118432798744001578795446630859855414924802215883251530568744074639026008249378384730689165174394265013762459870167676334559652296224864468985571191262221325640996435885945151475806447075028420096179255553318733194607239609822072020514186747787197685054442248167140965892221126648581984940086648874982530505978893695377124227347919973646146676629444591603359788442584463303955188509522422599818391418026616259995872559498805206187937782265874904518282656897943207209862380715004367137547154374598223937741558491914574697698774076636798678562997674170929765175860290779912204216812385723147216331503757289842221528735037625497014771548014103953516496449808354072124498185682607400063728057261165003649893446517092432746066855645109992786209266662167551445821435535608541081920769800258774592671345389740221746304916699394052537081049299445947345155516306503657017488784253000423624551719316326501686810723052630889398317148886318033807961941204315956735467871822871503271302887409219729370075639937379564680786313374052274464142590690370718853084223088984591577357102069088410442379462554969281104263512829294323645065419785245923487891062549365833169290585145230115241819337045495538313538611125854419399314136327060296625401964470781897779404936929098267620842712148069305688084150866939165121186117864127643034509985456670595582370789658089281912898709659383604738797536280867375137192169024161294707683609791279483629492284704904881724958500320378019544255890072225015877915177812880670124987293168803143253007956690589832200500600309141264903731783216502117400000276752870310054594951783925638077184926078008357955636975636876438992849151996185019969007437184385615294051362138176050931209312663318837194980504240572895643715455980074558613028799724630149729375841631478190918099514506965925707143447227351078273718326730536457207911857949654577869571356951068894708509395080674131434640755355183322154605990258786774022924080689244713855793717017772140958972312830951111312373404125180486906444154752251481966804399388048006449419676677913076341194913208838680706582201906383429802594528807781286971679377182320379883715011701678055881223489954988181541542132342724314588079111441901798611349788022737769738365083609864826203502976037162432742425607904951850969643833687124805851263320490697083582635749045551937446579896831275177153512943509358823108273381363195500264901019227269210126290472325202537776136526355151075915063164817733879230958078577320433365694874058794595481979965391186777638571681443071990638619182080577175695117839945266640246123993194479936337974135240573020243524666809703638521612946143480551123529283586257931979058806133216371245871171392184619257732017500584715869841061036477345360226322647316894333883914338608306794636412949746607445412660106314766169886942362321781500878463149915056913213422661115787405429873953074529524702778170277496409571877059621674961362490625723010066780532761302137004260632217447432589129618294836757390616063401586310354752164320016265250558631577526111354303894774683359084999455247568909822115298488267695184152013374311452858202780652168910612699283683673132941378212126501880757673305255666271885281880316770093861715010162142924818628603365898829074612133823549298620464577498135912871163711968524503949427818911691972262431377356100966820624272739609304829651726976091859804378617919274914281802934449073521690677556872803754386087579168830129894368967201771373751241946030810968143751578497286630444059128165351732406648607306231148581937372069188057401080252661783067055356670751563504911791229637018742960865514917885967645971345039767484810048238182976812993226106269123033977087036370680104885055804106704787682896974029679585294574546706473183988645473790296750629510882274877765992974676296161025144263602908239529212536842336917868195067191874113922814764700197417694250100386258433308754658675385374315919527338903670412922317133691415134731181703727896228572789201713424404772056422492048562292287022536660861529922889000694199502843686669168186043478770373901387211160925563619171813676876586705966038932633183994641491731353563732474439523100070831250267609549210448013153807748846946914177843218372474936164489959329020021395834619946834271685030098133015522739549398522824126670298233143568991328130157860043294706547095237674540279471337449838939216184558159474098967641755337773428694153900258780633937692428381740101617574225522574144170798082083539833867499656102206332004430539434146482910673636461059136724126420792857316346746250792908929507068867339164298183680102633153877503289817508388259234485529636948608005698446889241101595544684061584098998489105655025625939197421543295635514219531684037466820926424221125305763428722717992370366521725930751566666317913521581862179006231308894771120173256246752734671151271654768389904707735294957461416568600976000199551065392223969649842538476191093635065334731153546332930518335019832054082883238612796350521378272765955748505376140523749120347953380749845204131210946275746120474373240562685063344758966412876447492370142233807093205424841843212811308876298498428248299303602525006162370599240567041830488358908077130543584241699438317090320986992252285650146881396913927981349651514237684208925454057415246840870545391648979685225860174704279065457323769872329742593662475988222728367099927075249715201156224508422328149206398780688921329465645155019282318600966238479486271036439538429633313014428088945585234744634890585589890912800954237101701838211385963555396476437156369344037727376003780585844374552653100566597787119528210708977752541392318620171021698003457272272243304633309839419284585654030181214305822213746318612394786730807448467848973325505940650288065226087580689653887240584292519440088756539342818787041671882793389610629091048478625932502804250141930351049023785546176795283153058143515031663653604911721904819165280976668882909623427908645753553533296301398806706466078180128757179302688254003084632168043072394167058442898113193309170012848322193123047958741967972905266597622660864031156239540958030674132688662675694467351467730924019342109538344368581042199601286756175158685738367091376677946081307716513442117953417624171673200368094407683779598691451089394738040037315582949893605246138971765323790465865607456287526849988342874833162072861082845836317033705686439576723861376328060234774102177978432379373013952331665442053221163893268176082402348261223404226171303838489495715965075575295698406348331377632811043397067382648568167635148576384780268029277778305230850691178179487687379520292286046766873044642102374331388351412212698076491960725725831875641219125363697362246082357009512333627969355434467474989458110696141074268232358997127956232697201247154642434810826200218532176005217686110081557880536606213187996164011426009451513734159375881591273834834101610166297062531744866925619985161599863832072445790559156826130319003797251555939030460842413012489562482202537233581161287744832204346938868797232780382076467228529006642079395685830060212046988082455010855277934584956844442914165682511735229181471379700028232593213594438302969036613485490818171793364922134784679984215799310681646772052213130776920275399034322703415749166481699428854973012120589962638208930955365454611264151271003292719770159268184364684758395268628568039425088315570712358368191024927682147093370313878094887720451175723268769052909902843742009260258719923261031719673329479234023790613458584519416497063769093398546618559538533184205257503540409221077598813070176059817273527324858717310254308683039375020491684460924520482451048628847729717684476078454629241590478927338862098096746119650094114257313390258791270955505695227465767476440641225301151089828428153888143012385075667014418111633378484862284976830439169563107087434691362028065422280773990162199240864944947479914497502283907378155726679354386566458644068112608639575313786384464040038428361610589019146054441056068642610607599450301845151548768828968298364281715454873194512601482939431740194529117685927918510883576630075734479193584719505044410958967754866181401087170613927250523456318877272248023839001162784558739314686267219031855694393539803475225268819543552808190142444409891576694768141744481399219065592677057503599677492843650574771357691613953619220755277924264416807774270952160446126687523573830237708279270162652204354317964365679734474999423543885074985320822860478130990894866307004218574482410723604210431466271704589016883698683418201366967827102665738144321607439904326097508754565594093520325218566570085560152449107635810317370807448896381962599242120383305386307522294367297857773798822473152955838000543841943386017768505052691987493868696387231021079847781251750541239617211907962349731896431401140172878530272745309558801315801976471993991778848616198017458073240195104567918274833737324485742945959982616790075461153444102997243616318515664129569972499787046206802790500133201861430767816831027301570116702418240808698171429459055799594749566704391229062056895125333927739020977819608138807013498795050528576791109423789830375758643954069175743041450951682097245307280409834809246576536849487584563074793538924407745615863336538717032636800945347958087286640670216166763464078387140747775409305879899571044490210049222801292543680068335604846272644341696637962519333846393638032029734407948670124746070235312959951712364825519836938940098560016955542166476293378087484785686521921116611134133013825201558474543393672939494084891760636559442070308599983899465348044392497433513365846947010194358245890547573698198597142054153573893218913919183853875197624067050550138040729171487708688420672287180459305858544101805201489580638240095184554610825337916058153297562731997709373492329505943508044865668846512381242760063978583434699885239833180726217005761311960445616209816496707863360432726602763978441598451217293488298325542177382603977245796528804161031961689427130748855062631364350879296830952960146855130403131045015555585219653116830984609508765652559248061191652260807436166432207993046762631529592026128900044750580971413204419712560717052235981565733528774277059060762870534543244044322805937657013609490211439456661028319954628733882452611585559477382860635159018227700417301173153176476762473506652293808160902854625504841824975344493341586796318269091565082234382897541175909331135577241259332750499557097758574978625663594039747661958570060388414701935357703919349661065811935037438122182420201477366922124225657356294467034379779169895810232655087243621440665376542026885924893897012698942500690894241885494029761636843871675896212524257584642454575600150869376807987341325533347512035509436864310291864129729245506916535654334579069092106847074107081711654237304527434085301508489603039760481402583393742702327066658828218433774382529006837919338124557196914974792277665488445146490474135058043286650069287965155434821571666767166309245963197437228954948262163362021855787860806541667449674130211365379540457441160125904438399942954340694772999071589375867506283616312994024864474890674413821695910122197056213966423015398562676377435658743421082508560177387590210017611117269385829315244274753470210506974726506229672830528694002993178518821972585873155024749435327959535737040452078563474949216819684540051674399815705189353081675532769842391806230400399482934719582233742847369847073481728961974293010353259283028127945269316352826420442370247972924585628064793279790756551984160032948364990636586127929007081480655701390696364652028267972699678659212380606277237203153416396271173186767348836248361157531402887082494674592077367929334849656169993637762008883570601486943688504890447659280315173851264087708633572975915798905974111424150521596242536954139612581051734077764007265726500595099416228182518844576530359523665817024430734099420951863354970192196835349016656302387737399676273235637496536652187664410107652327283523652761212589271509947924132585131491530226856294923322622714917011281845640742797619414979319366416901377147973484258733944503370108353560448540787396826055314071331517800896000580006913448057607910617795285512889876483136854761014237673895871472234531846960637510483292387410070369066663933930764117614511590267752134449110102308640158701827828652144018933429676173736184706128944299836505375467709980694660353534507916456013073456754683242546308926408981108443533014042627891608436348494437602539394664595802658426098610412983292568915857674407399019274523741792648029954012894889840644228890447071789842051411509777880075395394247918080660094173912880285764422362530202628408098865322023229843080578875017232722922995982032690341786549170761115941573605396742074975513084027500815167397554141650656357222221896019618385456220045598296121832690221046344502155341520511793836696955597712688723094353177189082874974222231714456118043471003914418370467061139980682671263652579687358576800327667373036999331994921732166175941662384295199354507303220465683062029228585981251842646510924422879364737296779095276604133015247590061421586558663394609145247477906791188874460523740011518308957084474981502210163017287243090170703218639821592865698185933671492778006743623536239992230515292365313348045324676302472799426849831498271990495791119580832125149469668788738643871364996476765281407678796938321751157010183550738422117064183483556116232042735614643475064017985414760503493964751421295065541545846963007954110435899889242842937856530104295611076351076533987578285349200733001364589960378858818018347377772019865586474153990446546926361657500060377343181628945389853307644571526464082098855345275400230966160839241077721678527219296310425617793750613668444812709810670269120602733623724514389655163814997195850556561970369901928533294118640148339474854149350330711785313366902742353235768084611177696470064779186022816451750489403451981588644874541275174886589059334329393762583198523695790269262129713138716676867740075191814820899132122451122559388193746065290668463407162112488325292545423935064445722794481791756867496217741247945463139836494401899860300695206326410328756838858358837224339523846577549673761844873167795695609702120617539903802486759615195390173724631208292461091535582784924470693315652148233100408911596991869512528832287832033318226320051958522945521220143439199160549666702045396758877459042646421449943597200650497856225400792775869839573922722812036048186171162108665039013327947393406540768167365546687300673362138097261598926411771553640601223346208345510345115220898999836032537937670270809656626024324952945131121165211397270016959017119791464679221138306818308954214500075783662711925441061054482599063104827903284897874943200406551288074330272936650495157158160739483540058200017710262540120355487924995932094302793028246032362801912925809134080636481411026643890445744213541088922324079454552077871848418395136590714874756196317463691068396476985946931461930536533662267191567562512283495586515708818052909536199867640694169239012574232141008869151390751806925187488186749802458509144714480864091060920123390004192564905290570912013950597136122602268698281218302898158072501379598572986493894831217112258046565767003495831597387417628885164682302353222603993837557662407851885177026971174546854046012694047757504069186682948290722903231668511163113062471812302877123722066407175365892654072312245228662478614798423394197011972864266481799800724505880531689355790953150728905441362118225506952304756043513611884903321301811165554555162349196970375416181004362371845583007861913103640134887530408112045363396475211600136117841422144073787847192474856919089873233125977880851970115099912847157144548662626726437649974378878869864540414537330137557531291195981212920994690623295347391296773354352865481104214247477774260123247538895910460471291769850287499261595328596983754373708270094104267549235591224027643136458419701052240871525016058967332546839441613571024558472280812208403464231196413718360170444798839515493874991018655428174482028690616317758292118558120842559448269280400873483873299848883965399580279956982766600113194044459477474304596910648757837817960039202644376727198917653260456906370738016056006118445254665214529719779441696059458450380317258126062611414968397617052639623527429860622484537549535354978443857314710890304580868886659480958608242734984735785335599439401954771624577748924952070775103835041651943188943035057788840944264143850970279910478584690139786293582399391553309852191484989385051630764317915665527506338100414482598449013984137435806308476468792343700598068156749392003523019118931994492988719186730602914029934497188376525559605587895190346772883325938921220934658305986458348045562457332734499571569529343429688000378037737479521217276775902355077261312354732379862913205588470732036558916444395382159861320079201917104791892543758097726664907198652180906189056455988877758862020634437064886109680813947791434688460255874200367035037113592683513112436665271144447867400477332680953002951421419382753494785378495339051991534511062547555437342365892502488768134402607884434402153282015239243891994447845022077421709714477579044805393669331810801039734720863150422894178585722637138623130088167605162466779091117382311338035796198908629280101370596145412838265320236354519074772067335133497617422675756304027684722973933731869235719033539342060746156758426943786127773154468156180653591824767902987637157104780264101590906070355481591880552650640282475551130813372591970946178982287570655152695334145616905004585457001971745180935508848256065275726828616329693907549242477558191353524155168609226838437464658781775723240679281660257698429252350795735103860509661422003077583405343084875135062554672581445288357914192501605858497479956748989903302732886030373345546101725009560444561927956961183660397304942729985280343627236456481335294002103867039497736369469024266408632196882431138883013651372681340323890955554035727104777155695714069720850927133635704770266106268135649526447187447648647433951922334160307950489240037022209510415836477846685348792149247459272578845917516898493622762591085739544203492270963692656591517352031575144996928473307783070723119373327775979169437400230289707289917229651401707689739348523585108111132172329254327229830510368445922221296776788249381865250094724569821848835490293650460066062157290655826902211347770886796362245375369347661055782685568887408944018172264826444876628623962527581917315859103228853150228473630824989988808650524329500372146029083353999316773118834281156184020683767219421587092469258216056142937627747253664666096559938094677042443565425426841808209422351746918109211741159434706812024848641944582752823457950484550050189672519522376119651890334725660483916159668558290606872097248707441673088564882646808989553673991046025845289019198480002584777518812408241319231771585765159073093872376085579883924000877666211095396627998248789341849950128266310418110259794993854058483733162513267561697975513683181993886596328407533311943640278625212158255608823970654605115705096129551256316783286218923129728472090874488272420046192906290475169922737406789077637600114173252286507530912068118520199470713299137309511476029819082379112230238173700337225930897821645754002795244472052446474427626024654353234836622577032451667819620145818491226721104916869366930562141597407980489989065191870880933051646405792330196094623734440931714712421544234382289459008838376105820783430641097737186285561154736703391257078104521941617110535531180523419140032898102800216298679703825081104046008107531564593740196602029860499201933323264835176771153030743554084856925149303016245882181205083758610472418640274450034032353514991345947999644481391854408048861069259868898816460563118499314905305108136104423687764556645134108268730067324644280881549877123046085694330114546862277630535486699395845605763736789201129656064135682961045824821918388788576570352732106330495082661709403734452829521901469668641071174154625038584108023002292332783433665875539733475618528495482083533227988203423254938450635756904484689933640924149183363520260469050627361406715007158682167287305587432883526470991377466897122847347885346743712977782826958765837726985756622827270960270477176659095372739754926653646929543464061922719014102696899419770403420511144125199438604793391100262744674517747781669519791917754440390226290752146098092182506272066706613146325896832483432364399286162740140969784156583919258792998967839333313362869687600252048828214647323435736625239837033682178838182361455857796787847497243246064838052191425004183855400559469361958600747364140950641667798788384791843844963004917605342028632682001699629975835698488804959845585576953013547260045954157711591327381119804092912103841267791171366196459163984048642275941953824271153103933904285419498640769979432638769660432375495538795222339089789480357252565772329981279019703894286112523634369174313980638157369352563916156113934766778525850174258336617166873621619262869463607422658065744388959103278139007766986228484165380224191390649865923366843410526919716330445586302412265329755120520104185833347664686895705637816272149049633145806307219818614173107475753545705628222403719804965118542992064612383601714507839817479300184126361521606414714461855362480508411423947078402632082975395655001555354214440379774216506974725497686145986380217863686648477296916487309555772932629803623642583982939943581627351469819281915171254206372502424344219342878885188884996522190956110590166808338979344771181648344864156063004164005390158212876158828132652953868856045175644864404399425041839827789786669756883048627249704760820940345769785546795156509359922276863499813534044190944163796460503802222201577940922251585759469375586808391081888253087093214805510507993939938987641464392587186560104165839645554571977350118219362213094957279774809959666337923056060237736516902263306165061336059135450798145254266859866009087809251796959024098646255295059253594537232538299386100485317085231172785833011212681015425319102730935716092784985880320703240011213717508552229681149324488230153036603735713007675054155899869248508709804605011867430788543557188032684787333108318647177505880393231668902078614407135666740650685734194508104927221862281574919667194040028475615138498297640635333486531388875000899833263714195654261517347813964765171443080057501416900707442939984275447403223258669068000691875158900235540705931917136337032057034138209112965745835116608876396452286542526964284817004239971240767431310157112013208321135710401403635641646189468570535446365472589953798411110889057943297632631537733939172157653199853249162563087038998725638469139593179339494212237850009933066064992552199044137330635110338303211040127531234084848804818601363728747738532876609370319109130803741066764596688577208859171112298857433204986789162203523999824466259109673012734085430575157203162387205318312187902175957958040519986193900739427391772815317695172527283401905913591968238282512991470929635232848346647565438155015474263994773775967897553064603973924377226896355319673922579795663051311024599433880926992399185982970608721865024129722056207652479358368613725126570830765698136644392959045183562801043845137307912835460107784635578535649335846381029331682098516960262759637982103884136479167668594325197807192506790081004750972397597737889102377885814158520641479662517060295745233846405822159662033128430268766362255762762879409984612668783541408761996192946325408040721086485356849175232339805075698584281370654302150624353455858230403733561777189605706106606830003247921393331366585022294166854617316249405142893059946502948139746499757742436082348461695404999549929256497371915680238167160817310325805406220570264306124206698418814391691500849246374861837896310148245098071734799605855613989445847928358674540668078975091161351763546169857678004106753035021211745755624615571792954167339172665385785634886035041266536033746441289933595974017670175744803721696140694536515152171381415959932837653368230875805231007875531587020684573223156862284011115608836813518026625789946861644217429594092005596513545574130883280809882886847641645287893342782661782250136499742532907584637031953408462676179425129359272967607134170593253958155523991754545382382502334522895432815101160210047066815950975349481540977926575601041345146360691806445199156381359720034113194751242403966391748239170740842281324997610476768328643368919934292528584923630838101424219807812090478508966137317141507846073495077435363190172216487667733817751706875901677587627836565760295947828568926199800610805335493358676757781722127480793451864407198965080493848456588354319601737087840572402723644825039723932464279053825213297542629987095029204804385587606494022747812823662917159852251975119024341771241794987707907778705436813674065061556791501217887681512606120145048486299129921560321185912698930592263858697481796275386653901255397667900299062726952725001216494318152742590979498946345077785074995472839293525060731819772467203753590926099366423813967115140321011770427993475277795992840609112668305892284952783904960681243699228598491237112829244145431258285293598367383306720792551606433065196970428181863767174681857485566690786427429224394993891770498912284839723099794819123288960369712377931112438285107361051433671222214373170458724782852903633427710836141811184366561980276661246761060895200830569426456559305843081306954577513079613380208133329937746226790631769045842481127477564934653940426963278950288068611364612690621846129976792102763461016858410611156812688733715836914022131575262187867823883653962489353217881421932734987292306358015241265349596448202830780724201434079925430977306022226984766548625599664854794540207959180351583368112832285234724852407993075430502093873836663948275525094855111889731612934026588502337936658364683892416762334195385658756552945321334650296310216524008990581979788699453195535358751446808381323301114652368918420941017915619013360263294914306884514844536919054715092709132341886918687035167800759664284248000742775241002022488721737515110326064111523352407221215329045939284658650332347572004489055102919216823783446257258027702169478275877836051499382090224821681958535477897846524305684057153360248212207841955880145332868203175823649141389264123365066214161934286864213927149719542003090503033170522105231859206791584483059357963683193967213871598319863675415894481781668348160339782182311255550752196292580886311659841526035585105599611642277613189719572470534933178255126455715820166936003591656857234139532475944818408358819164992383380061078184300756527137607272357726787928154911287543632910928996969252233689283187392096346595276753462080830835234418410020570295446030187718715028892754760729124262326975082347362649382101952405042172380515598851047539764869684349089203730861605619573156405140747444534994042020531829976900284277476163984822038511090156117763241997940231961416570132798855262429807858697265155157163426338449984822697234766208451871291344142063296954465794481759653435953154783208207382398171408131670268040823391974673884367119084201041095316775617476223702820765815832066113661662841956093746167895760664538175120379773382522128859076557006931558691736327209766272698277716767974523664555511715730260968413123451191798413551205874739087388471228931338136403581649417354380967263726502551928160625346309798884453147737538775193667485540382200981697248938752688876183632938428719164365903826679053168560095428821249378574240389036846976678432689438531864732842168553535582967501831661508017149791319433716546989932052922733497354128704775533114791909724470077552676276315117562802411352025932581592011801780299402481031828184322857216077619911222161257336069437808362935052166041717196674967110394936211680638493781168355165538826088016885613583707438436411394689751102101906055674837940529650504799998224857501949789296027075604391754370215484057420420143741567754119955371539068270045899713936241460482822186761883935434262417076340062609328513987194829439271992495893930856281476296650837139523216269539769108115854648481153231288896708237716433177072772959311738506151027674760420721110143127691747281062128986519739847800539089806718948933179936409537489998875372341156632157492335858870230357565453388623195799822701990622844444075715587828654068746232099112515940003901209282959843975734442790031437422329665724419667238154428721642905462336717841690585392105812851696761072587689619795568735404132579020131026806282592921985477223858000809496077608584185261808157856568607527064443392743063864001091602374050303789464808197579127770260038784993360505822131861839650623302853381199875316446132006100655878753280771830161069591478123874971237254072577302535918058875982944936756933855871981489624016364767212179629166194311856650685408801509616377916865508579176970137430378974904078794812536263490445278461568547255056983495544059579268459743319116832251871448801346781994869800001406217917915525246121877844952873518415430396657566813140956790594461749727793966485990772154408937262235999802569176898323554832639923873109328059265585787616112812080537615278858161166528075064265532314365253468188768321568488829770923452144247086778338584800143354137406514290586471691843773451568979486515718587300995773559621463816185323905617180684746618885486540175374414632286917924289067964124360271679739427155536936626328432015789662938751291916600889267743022520174419139167991302238635315759414196586672768858117468530278927425825698231615923442251919099805062642393811594404753483328273117493144931786380380051776804130009524610271387694795915901893185367726916265012882026538746215881246985187952038473548129234604875715866334710390607343542573147009390292167001273585439687312786353214717265362981411521428366194907763968540104834050491375682703879266416629476095170979504455471120332945362253441840893938959079011818273812043694248087943595640822243584385480923139538243951967796586799782933570400540930670419652263929549430333289845407602472044278488949365470233904843230413671720066757201461376588856672735118784430055163951510227042810275588415335946601212850068579659943767391621886790730814637512387323487925816362898632015250689864890085475315862236549341295905374215847995828380613260937818143981744071960766006946843424819179986486138544523196447295121865634396501681804674185065146062337277510488309396922511570898289652340869724199916427536271725525294271061799695757390968159573065152313105137793652458022392604982755574051191365169724003721757504592904052250198969376196846688267547190112506499724799834499824883012959752342529315346850533704486092105591972272634901233209674084932777459797182623449007025451566914464397224345811446669461595670455355473700894855866658850353434331601877921724743147029162729886648516724596182142848380334996774254357096414170861399341925927165933151048999908361809903266685200041082787515285203237005075718077594916751785977938715141711187763883541479986993276563450897156926939713975809412552610390279484855585207573002028822541563221386926952214684121512050512182247614517898302431208615266681982610264337891240197825248946746912692905338112447737606456492387263049730800740401211690473606200539440542911134185380630644163498210487614218364665043203714973968882176904820680001655926427236281353433471712496993714276333008929632093821832394163546454038948226870724436784387600099040793416465119408029857757138888121142855644683901063300719555242829002824401870476889846028488680975733520636562867232286291606883815112944747879980260714190913816988834228509100088813324796948486252061826908534130907087648786383335642502396424672103783206753489678847261110330166653631301525964936657398941490739420740061386920532429879620920588075545766021291466603928157315030280963190505058259294848277861187147190832139726384180162658335787708169049156360790384306116999757787384104195578242878860788364498003932684396804224969918898308742644225096215980992273687114651982990145618343135437158764255739196455536097455113159793362050456504031536556038239215762017522858727284584206468574549076545550718179286233241451658605313157897333558084061199739503536662665135365494619351082704208293170471473396828827954307207322104090066127087372690722866463335546597418063943060965820018090124199273020442473943220403760911262074055409992731559165572816583213232996066844457309083003345353707585827511181195743469675418614292743502977618618899349038610447856267421740459373615468177662196033941306417770756217417127157552509726919492151994963066632132308808053719088510624658334389441517999870232239448623372178917687915065456309146439091230277731205666180321929660836646914678480430593169491559118210457822570357927572273723017747567491272444089696878423574619281643342521975002288723561039941277859553243150011652600821063662145402995215157527991749358452073818463155351689709904997889203149158852021753991816527685759290142774935211995493608256443642384170090763027131529975306866997673346731771907273902255705846371800483018009912811533765739062817907031844653908769351270362166553479042937662472028608375377713645107274449023818543081588970594445926262656478310121465830400918664947861073121920121111894233832827692835666604160523095328001883603646936519012042207847078826311421548253353264066829174615658492083964415351358451225524406633868271626505383814256455350376944148339900285670056990958904317088981175043984462272263287793050823351319712372492680614648997436708685098079448120697700993247354849837911056358455458874955904590774584962066131864770221290322405864388141020626137806555844435244683920084623455117685651383941944030301604917248381691485583408477665914891260404099283366722589070803253647574793073412785813507760436359895925720697915159156794961328756067651548039811339710906955976686301136555786073804358062134950701281546518833227202653163582371069047133699442327057547593312226835473106376396832596822557888176269175916480886698363104266346606769085613433711274920167476138144645953506909107263400167604986420674585145268259771157393306197191434172461264349879262674283804629640047363289569340043322104056977759632877322416794925149650584265854249204738135802795445298910512682718991104955950318056261153656834417294457408590338885386702773003318188583431097898205204840982946148971141304189775240522037601038566856290915869368011101980132389309625206800852434898003609523721757463038285449357353781093123076947815012753961063070867152344971773032781066295239735854069767605898542941830182355917444365236384810519282576140970718433354697404702660716476111457277415465667133729954276794212744205933300418335039903051747968533612391826481306383076638450522848222270095809753394845515024121525279167967054031731779730605175564225232443429838118054553245289681772427688038984359164806610058909544791136014979069917497544591880109015511854911173315550404115463799343062867697498778877312075617703642137050105372795495829574043305459143140879191921995516875626162659279230371560681707106072389907151576835951762723957760911013604091624907540850795003197781123021024720612221885322641048905466846188325585072114936741339102320636160917089372081024475670030713526640530549254508401907253441390701633245289449795803077284694633306980432010325738243702929970834425029726728544306592874516999438485972565939650830793846584225567892678280638651837218585117928989927564438376077802363532490409904799058926199941691500277316989863932680143788562206174740393697637648794080365167535046385665725043724050658707407570755677238283695163101336004455872083157904700452520598880683128246023383773989039556049325899436069859247518671651051341757527531001965724341624074844512923115914614035111054192501172494883208669714454576152096536339343788163262002213514681870020013478962911520450779793532512397948284768856573482396930358340465886610264534165981113546108395397436528441619374519987578714206933190045558324094358628533128333140415440882057996476482098432349118884126305520658328732140119934493520093258057827968500639185275897134035372622122737385571515506013109444778993395743892884828197573883350924444509755748548597003072571667521866036818597326962773994504263388426239327707915336167872936029759315731270108484051981913514567918601761090177638599037592498690381481382369033570899841484185729406667150824132459466234266137410568444914511580635995695401736538015019044692028171562413967860895372866744168424150399427798812207324307804624544455396654994663682836081071830083606046203844908286729719252735556428869743122154910695112142683024035104074884318131506260084644463173450921061512786440717234298072501468280300792703473252853617934391075636645077744458630565740342491578216650020147673674173681046681570522939919842168021864594428824173559532216294724149230058853339708554745063884643485925143452349574710046318733062410493224136996367944652440134367070297476961574551375867825567177308446118871158329686503639742707339501257923670702973112410894199664247992535165712265400943900017778483351997857588184874324420158265211352011300300187119214112895198972308026305267814287409391651920920067989668176490876772986626108739956363456727115697717096867775061365793496122016323570126084516284911432934534100341428751088534134258644284688492950640876710465131026641535957382325886848528058875158275462988702901128368669591801034512541761011194396158797669466255758616279498983548983312910626458628591100550271612875387673067147388515020968839601429250818860648686724298367097778562258238979084855591638987037592603776460832381732046629943087418537706180915154207837388683628590786264150695092147268222727513451554187359611437636042285824842160876113894968798071773729515783977271726048451931962603392257976676208988185988658543123632528250593644009469981637967867541061363742742835605867011038056360036087761652941985462010335953815935625558388490035301346165910486766486378601911889637331887360761439362045098628210726820861499799649270629918599398091388779111345571924713731583842067791430092011488155966393550683030860417595923572213298496948562195711297068392179554633651728754853400218531673687137903084654497705870817433331124766420464464596097573034769122479509161521724615495848948304076447242196784608122224478892913928419793360923382404013641884452915280796486324875042074975664523595317826264528643041552562545634721125242645308995607741465894231849769025422903528089252110376021672944296456493242510416858695228747595203031619015348162882763453379073547560349029074447524504391495204093648282152504648401258664188992839461719509381427323830948625441976445202895920905389115207472579720069884009217069232453604188480140708727816822840267253584113157611504113620462317063590040245202471799305116107640207398630067144363571988888222413740179927287078707160980252321250658783217941614290393023735368047145047361862086271718655878034038607490052205111041731546631378696389140402455911850130562290174453623192914072167038392554321413547285575133617005413464623821464065969712704773388119319401412274829009591011655528874236210350608460370598692815849244260851617441556293132540680114822223577601103829373386249367766359373392113497291770246259918281931052615012401489056286459982786001548851353579198453839925900920129936139352974462545014677919597974355058235312221802449062543020778808262122174108287895720447256690774889744478443350603399028203169118196839091518838730667614172994957660033623254981219991100426870312378213636808887511105453931577917843037709890377067289620109944505710326706399872951665660535836320497582069070035447383274221479960236468854075173625240385216627654793940962589074022983427927877471506821300889568405775452495487931146903014045843971372767007593826450416714648851375545865400886087616646042944274120112181018482496071535470614398859261989576112938535298847970784528753698171831473717325103626905323490047201108166481265372503015246340641738342867247921421319484025711564855006762373799017374438998789400870150041996046940145972343020814579250344066253980570767219020884419530256191563398735814836260270027716932993635681119896797958592807656533967801371138625541746454825121001016908234621822637927507077621568199238848205961655404781546766905962666763626154186429719478929284215325156336353648257689790799742650556019453999559165706387088921183417550428995821522140164462616434180817415907374611357987165714971589510832416385396632217501177053838742644389234914618577635153327503056821248319112588101562935672751097156099691929748645959105139106852943733428657905599431078043696123971943773638992977759241773389842567734420033101122153334434000576029824533096344289241588989863751356504099893185605242057008345408414539712635736199057089211221730855182898850183372012260601135571477286766559173129995544066466502610724202481354397790989849181592419405195868172922160743009860511106756513226517889763252725457725076403668240071699072271782080463990627448030546712403809026025305638245324883007052779280796130379996062965122194468694146179434632397997326930081785793631038443182484644860324069805083310616427411331811692034486073643824434253188362986914865617376627608902377653273218540920829131530823011369646350460886099207576646541961468332202017478504222233108327940591751306389911482028789146427372856288168607017621067988980068095505608926297785700987202085842616865110774578923377924386107096787726327336413789644184345053986954282799825043001760863250198852327036961801627793149379875387127711881132377419040153032230040936065283363828946211032038098683967190930624746842873676071704452805924021154442451573348298405066483525075267545071651625380398703641663275853368830059993359351794288667740090069454711547311167193592753530421688945251899369584489316905823717719912799539128250361648809787555275080134473265936324391228110882987448771809043747571774753695475902729936818178819046233752407168271967451122050511316426606443630364315636664708273097206659718118970749949701111307343934597897627722775987436620421835904665749049841864239381325321143959850445254499779028935869779177140942668318572963218999149921634024702375295829585533876720635120789704159050338606784748945347676476256630285233328166550165272057257157226873540744284236076739156060037201741261974321110089988935722535343855992178936492594619667364379882043665108787152045442703370220192467631841668091777737698157634840485571654446354261718781415231915173150344051373690698690707673851317520176201577967988476617154033418690023811197333658397645799262497874154439506534684369954544986777461833444505280181583699800132128782410254816799006792292457645695542000615086783631793981329401109848913782769043597857758726813157978002676453631089395974185455646719500879525649063285412405435045014339099695062703870446394635197651320966940299278852301734999388593214403420894496233283101379783177897832119476987179176894091453026379510706349231219590702715254471521966246261747573079073941583491859772704711254526918696215694926734016887022879639619245289025329585341791886996701581175044716146005750799448967740439155183947248362561226341663789477244628780854482526664543038278622446208435216587637891927024695325034502282346643987646717621222410669109673787305871225466672302462367834655652050567194526678483009529246396820823753846375441793273609623530367937715377934486680893069407458004988446312415357637277272198186364142173764036922237118406776667781727935871678894655440585312830511954470171671685048972143217767232927481360782080725451155326624426759859114395971639029490384412026616756441640965423153847032561616792083520646032464562055639863331394753408182025337888980544274626501684215351698668209867363692175608155705189179094352548245066288244636946502809713267025430503916201763964082030993318880501469839169076330892999772119730852988563555052172787673444120021603434347509705335011045980833597647677240441063798466213047417996997950008721431933252566556009436939070180892816845327078901348641653740724110571409602936776939146331047650310436108994479092109409720507135359101404456004878752080390808259786607589525311772774957968928342261166146756823612628423563589757637088032099823440807066929092501640939437670811822766663702036244685747819032420267541453329687616569609125393933461027238212241559132371981123391101951069006757408207362251038309982853546635046391240509415933178782757634965432741389555083700453810647990876543329970709213189488060574470463906565529617075155173576333185057052090480904090845006846532632552508456822031236592806685713800097802962885668809255696832990679619473011077483616616915482724142493826860623495533989705355874000405898515382321056134614659379027774260373666252488752416288637193094780261254465587777281112997504303626757506122753338779602137199480750650804455981743207872916148616031515262473000366957615316402348350091477032530635217118195005330503901476667289861633588556415392362917127613182238157686108199264062847028210831932429197339531906793275325998017718818367636788105415495926811803566161975189414624557132171815194341640853752063044629928115575722812830264924850053320300402929948499217135555172336450641879072572023603884859751863374752656099663443262780519303139079140406824468320883237675988679196036116134350080153448450998797388064617831029850952584941430161239607425182370716632158350214104680106235335196823552198621688863958669294057475896105894339411320040298040407594602860473731668056273657112820181562305161552644068723014491906641326411269803719198617845774756835803861446757943887270993768655451720312548672472115118825101972574128833243383249148340714766744255445234272562907523004177556997394407992979641786086721585251289537764308475183082556089694016488784852221009061114683552271362238007370800430954695883925227682471273439653744573813621719651742663346061656714841359428257284434896554449337052813386122713449860579968959358087598879869502273845339512299096703889800445131983548444492134394701476099111757502093640393049655546284251785886647377025845181583295701863112869044367465477604561409194916709419939471431571723047767421544449791626448494331600574462491774264556141093012088813807050991495945645954421092160033023208479017786249814648800547069604379441086942202116588208892151656107009897853823623570219330743792044427771662876190233232587450935802342983349285927128584095742198194249437109768441584651680476035850760396813016836137986987281056865849408469902147867241891883376942970017601089451319394710429558475509236208446389793312273884419941017724618342545249053854583566975616990519679273856032366557757534419033229160424632232183983532893676344781942487727452228659279611822047393458566223169898658813513288898475699618527652294951048235998760830023449326129950174029984501427824278695957575281890145095854462489475191505476828878897833268233607252369188666822689672456734811090040325633292198428883531779460925505856909212867569448483496216132014216862474869338045893654551765134234087777968575728342666071034640651286185504962701453873902805875492834064877167251659758017186447107804968541220458409278772415443298244362459829589344992753796122976926986335161521401601377690940202458264396227120270317691477933258611223179841790432665092994393012081898403971752335637830148900262551340912482209767084207035412754601263129282652712704857372862274154403681409691808854135236909108922224376488938982090351689281590999641491601732649341909089327421076109841763017977994328332828263625952309631930730663926385805086971795973994969195071059497121417905489357206780277592992287330279603979396077130682455049147364322396880297621249729686732589198690284748729798746599145225173382726189141839171061206273184029921307217246067058275170600412062639470673519209220337547300224974421134069392062667513622921515623197023019434761968627116939303853135449377219891982740566970024909600311366200323722368613983950975218191692188643369220144010379364603544525994586671729061172586930464646705930317479478405744780787848979477812951004366392579779083076211368026253116122313949509391217686513742726480887774464474011579749638511964381550061796845272369302778263551245738232332432006718582978948905043897911129443441630663863049131793537308082880006572153178968889539108376430784844894300422757055690644366314027499779384269824062517688408935769337118177010364983450073476809589888249542624694594607458968784069977536872440173434168720625964479691698899777241709569433008041930218148326103194565034420975047215373103971394840599658528766638589373705285349264243723025995599724108565986013768994713593341958039518727508104968019617032564613181830701438078538557429543656047579453872598614475373427116807932259757695117808858163441061747573707745231251184126571096820070327399519716272574550047797837918994035194803653730272589384864247755536663640876126495981575906589084134247337984670125936415444501808380383497312180880788755935199264618983243761738982964278537149307244576063208587653804188025345760060348706348866153811910194293352135327738304252205195457319096376802505527614745938762037454889355499130973597022777917428504416047723701128837167352217176432567716574116809433141547605580025604811305796578937460723501986122233098328999269594412913125882531122133270338543639920466366108357918764478962313357984392463205065522007167317312292321004333474628852105208694505191217339997992409934431424604141973690891200382978492944118362878118040518063580949582935780007895810121441038535441782754531923912222440018854607770656179592738414031362888853500975456448527612967345301744028534018180578294114032429162573740745465187757908543734382084010358436038911206355507089977903672986746648988172187899438150660919569152930343877391762783869197182806992424394201778542167768361892903816382810911840679266128052672367961768390888013621236889184465015147722007882096880184445062930427727039782130888539629761715649927913372111676700361986841865687408433816023683353850361508947680824898205885318254517903114403842436164427550811989479547962506046802284452829049130111447138683429242289193312222394970438249547818810686392279915554070362860525042633786592971011445751408999708584576340801689556699628508925571370805924298148516884583254054899003321480674072653148719079249610557872627537762088213006276945753986363808755604795940996710254803129462370914282751087765031933388360299205300378598495845411950680770889214538274560068870981582154950697327345881151501023929401226854918890718684123379198102629261524603446280466043936034645666966532363476898533266682558598906060294591429633133145165062549170628503933140412354925218873376072025872481485468347128219040797000618243732122296472592183498222265826903509370100920490128034710144760315145827320461187220152535453034002649353295353980123386084726263150285124079213679314574579032355451880148931817220203468271296024435996397696839992605651631179987677600131322725280629411324342023938534938425213812546571232171415975854239911552820072418638182831171647192053866596942520066652846204598937458885671213384330677455964690402019707632933801671052763196831336344926318612450877231005363734880965082273457117541012749941678116659778154134109396653775949702594298161592100571781032118561324622089050373988548668085905383640407524549247395947009316344752169876520144176720424674137572028702982812053418470365172929921636046553994788617974433863352020376966833568186655025927728097458329666718468163335306328284020483462567472925965359670044254357724065321352239357303794832838696569636152129056160624241045754126934061209597942021386420578210053169110988986414792755329308424054247634095282664959692603548153359940124300182785908637803840729209896662306526232265619554127078187774151241334351258999031640775228569380118579864317648900788440246661642198595575532430707535749665440627506508899257358012228045757841137501787851262669147029473616229939788193038926841381935444313456315891494888125609422742720150954141556931583217586949982774041755902119663995292192149129055152526579626549136692706030015449140819056838570265938420016916162264122213804027515806233247632259229829105434383595688144402945832853916225497871843380584515859173733438604579718643586030414620185933336801061688420645412809593564671480738554202200317403351049920077328185311926114059296672505960490105506947492610635492729294308854769223447764809997952055275356474368917222180024417856356058143473041587107372097234786699644445649295894517566962097006453223155279445556807428717542184936841603860711732079959480019647672943597696839257062634427837573509965913740073082069228262793222017304192265240052471560130692079223698664033500575984950713813131000613335927278505910451352800849468725269524906334817416154992976886375405572377596002943279753924942705762122391197498275932391051203570300785812415186520394714008016088403530973256455759398349325294012711163053726987706326482982228448978686830721926404408167827023215856646753200383495430344672950942988505092060883862177606595660993578828422776506908111287965412389252467022006875289104823423573286937282633817510312712791592701446708057563916278863309968481763841569682125656549691817008768606623894081432296256592764117572723408175180062589968006155066816489760707113131133975568761054371117013974079744290564626089144042644940640682071813465205835927080247954864677200782986242046052660125529096875333540431678638294140156231733656558461024899094319121781092013033444231906375669472491901425993631691244730884141320291981432662445571983174497029862523197733461190004319044192537928027732246908008187234773622985119020705261782076763637400817314400078151154740050342184789988403325525769199606025911468102611431773071613898595229687072220069026654243530619303827281849763469586068535813242405066579986161823380406330789603831080926420976049537403929341345061778234695043683626196865013483154966446160892667110104532328058699210581017822701925801816780878380318677414690659849053229283766885047237268326727761411118145464591789388018089679510704065512917708029016156296567023784788898642153669096388692717654854422636994123449539793949768709700792484829433809537018709453733583904356164493585913370776958362984778247516843984883091698051233312580736881686601105480727486856045354116304502197444643862420766234087111648739836058757047087926324152993342339953490268340555187710726804094134012325909006168631007388349267885941593928079030913004302729890610058163884773429168494082536002490243107955402204813386462803902709448707071130173454901602322242819950740692216271778940406553023300615353266368160263438710279112388942398411644835242654144099944061040080311656635477346799011500403771280675042001093576079495554343268293655725707201672767782903562688074714405079020297045753975641711052237155393987538641629871246579191834441704679464855659906657698132131800264170969475703945903209156911696458370338703189240007914515434797570817655875274369115860839038170900454172763497591724914577440817988134965301944747044679298971920774535645528640845076326034737136369821841461303167479897430465891153593128394481566712564067160809519042308381176842987975817801966346857609641703882652193502733927058806638823421647843779789793232286620745488971263348029891390710433445392365908680214794291400375386396509000095003370849262952761410495032062368343107017770191170587248397198512164387836172667027663618162682617547626104646954595561257561276076060471294358526985519597114251724208556219993239219317580605783757227413189105862949046496319394570867593431035342525307140839929545802346265649091019911000615917525675592846932015958491006055338830935500760124390750018352478028765771146461853857874276167418399117483203561655797258508440613680274113685200661956138996359127073144700254804404080688158046369598119771699389866366401058218685565180312743817326612680712466769573480425406385566345541363201412616999260458527172726402420403038634584824476197827701503224150993013765295784221707368717956966044274431027554549547717498380736291395979416352658839680062177296731881429657331812910925672649698159010536819308788999511166319162832444716770064202598439027521907170848543555092159944402675683019595142431068628484112014507602016676222346072437101009137016456872502605081929257931658869362319993165330954309902797744383624766980562819124197859098651821478173024113024793212228680415149410209250827468698646790527690320101411578575768148772101606734807402670551432765696300440494612581727708634242719956644088177213275695670616188157380812797386882605299327466219905704752616487599958019296175178728442842598133040552704612583190081165148005529247978893348314618757717846059925613399735849599545554256032532687136256312987872392838147427356627331371576337423601276495089550279728402766328912442358513880430794075279942039629538111986174607906364429265929849158649550114426179349560282437146294335055294148289824299184762598603038241028211270337136198024397081439327182530077466096970575526333900500250064858299931527131805053397522372749233707535741103500892274171204286157395988138116901698277849958918896396586070790473308905739349676648335905340221615167408303933391489205457299149190342423785515347836135494679248179974782169348268287597017877665600407447633361852380795621296567928280426729166788949761969267265966983826697131304493115108729189727100836272952086825036104028454660972515706524382324801142162346288333623974874649883781012767737617524843738383274437177130200904270652083611848940844086185012506058186073346672379569075211048904483238348441210817216016502004285193435027218621788473770265477222364363628826981513051885322623411556806579136699668378402274914033657570876997643368148016085630353503249734899836830470088635531174091240915631695081540460184012643530139432104434004492097275473253257336080575075329432948314767450975322620061762987929118080989117018368225769346178623420350705352420431422407025399187300545054112840006291768984939447517162555899185848694830976229341877718191722667413830963147421530588462061026995561331578510692209381896181113102796945448815934041972905239149660327949228055577892228064809250397426097170254446055093013455494625071922921757582453418201289784561551332740896890161039946020381442507032227776435380376935073472392633657547051584247756118763727147250746803021148116792815306204042924530645544216216240525577696826154001209296023766252356003364601157981985168992542689221150156355870375271221836114178317439449168933782499534183035437440839513360816844352448171925625237491123102907012461197262346243542031424504817353052073265130064006294749841105544633757076872546817080039854083660317981542447608362018916484105024628347380345801696249546880840764462905126287986497606866073248142841873016803229672145171262486606681016510609724435357754454419463421228642782407174156039854123863552631881969955384010341408138528254039586854005671328833032886643476775768946397612235266156795660108155951581305945965931939118428159200604203496584300937725625608494668972334149094475355540129615067013996781306233870089924170665734686640703365723176890359938294827655858363198172154788933524177804436410275082169156223198776471618542036683678671886662610656069383512681783545331938655747601520815602426895256124521762976405619914188730199657435979333031287564762486570555851938623969094170389792367073692976486366481422137956896278903121790440576319839488293355330195676326548287861638549310189042016843305268011569838141082488294893972271198035162865825124266119603572707076142816513041522686581310600851197031284811784265851778348856040214718472344052566086767980338225655860571576675999235600109188125494271483197248414474212900952852821731034222926132422444522732799175712297588401514757408017282209932384222068221477454488192325920711252355182887779246949078129967731414614998060589916263550403652424420922240943993630047253664853105233352333280315812234098023608536292581305198026117350858802535633259761834437456572004208965207671651336244523964314730540582508635068799222972615184248303869402023749988916530613049197291398814780958678444575660457992748315045146113939390593850651216793438555062287187675773743613766578650371507126505045524151449238660843141352843661759352036355521499016461163018270069788756602657496098794902426987245895682780524648430808568550760595804567938075247546026479155767551883714944130191561630158922973532726735461759450101526239924311915865793116922024116758585112726328486294200800611280533737689239557576037072461597089056350710212195849752309781847956418637513338202570375652474774693858225394488724337307848066807218198724256255005310484299135631405298063076413385683623793496718184456421355737533571583233574930084301688521179932074650979244022825535813482657693374027614395004429790020173652801915008367220919273429459538006359722662699037083906593401354292009862683291913085453322460659674910318912359850139492138496015905757501207534517844298833959663744008800645185795245172292095994485046060331414655264369780536724173844295693481902327438256801025689964677132688118501111498352017074650303851078309119567758965380231269224351799446991626603661339995451764681678665315251607742795817348978045905377451875943760019291390652396022160441624310512407163354658284050791692652357489754321872538920153243348900768815838075787197842285051308202035824915909929198373550309681694879118259055342628488811348019776424723625360056065427983091258536119895230957357939617540429234044919509286451773867324442382212844166938390061919391481835340718489605444305492588798008034367633605114922589132729314296329671981813116276081328079960590073186671607647990649749422571300257984903407158143396669344973683130124044843066133951746527736831543705221592620310536314228657385175478663359630177180958338303142386710932751506202590706712659207826034459937699769434829663882046749668693110769453972314654888254546479804046650266810168978197702020718232459177370689182503568155610174776955917113598566232496311611668669463675470089366735534889195937327174261802477353652073034196832429178865505095449199155627460744723815635056245156747765989587499094096847263211958160326682346385646968646016848484256730639903831225057281566507567080715253040785894519429057502948340615546813913412461910538644170045347262917743487593102952742133481484327347300658659713407331997695206478646480102460020309292900432597084586301981694453611410936208572145225711045987129085874870623063679420233567972785962163256193530103425820616275614925473699965050275481787735105524607545266479044530810703287206293688384782366598168117217821349296325262937824625983320216149140231086047692717498851651438310474462719668608396688379837753017818980151581595028029606697859615570882946542083817568343404749552429246163819079539312274174838481690914288603274586563214854717630011259076842397367988594597629446243817094113852375897179015060331682222894911955788992070572824152888521402168895021002015313268742945820698625830158263201582522638232267081516904042085391645612710188525961673025781043945091975403990193233478311089770380647886106142047869652536162485640449541676701088320996956082398542877578867253037721894219649145156972500640147457257348805039560278591585493824230055388075481471057129679394149315206423228223024904873848500144853632049779547377269168354942379685007319054173868182981966713913362741578547355573185946566321476034391480690182462758634163717190408208963608204702325539153626010080810375138442262295304772439132685349010377989337060199899441373807545560985539805398393105420891814359775535699460639714304644209607219484345207355030236255276373220657293068521951746264090267186857150926174693336267520968616512247696844496982309570562928681373169299277495738618377110075473590982465989692346349928136115054975315658494868298989549161343652347673804453568441639161489563824063841491845219070261704464945658104856897573367977492715397591328932155019621699592214751320068258108697152550622187723004545468288591851806260547026570171797389724147119925583890666545347003283481031514988927912990065815921023423146402542001665400817054770577530242367362610478036799916106683322913935259076291082933363276320200736738288301365272190154798957451020548352969553084975188028725713618445786279220336033163672350591575635273936322699856563847981720339848327124145046931124780628261652370438091746877914145940918758148883334821433673496333539348136596747578143516591507717814267350010467157322435180452757717288915575998158112297918900203748268892273428281658039108017749208238802223191780386316066679380837912593205354534680973668875667562825211956905174969174740817462452141362237997375283098927680069747276348023162532597398485396900163036418438003655503764043893183035862737288828590259104757151191080648801048709850328746278040834931926109451506364784218346472491949162183424538816532316610515501232304992569086592768893915474117000198616618333277633443015950526171987066378730644438527302452767634978223099798354111545191345250729667803137975803443789962240023820315139600950930489946720435278199319550450119581463045986308635078996310058088032803964133210034104482063856642224883845055892785740472363709528005285380314765919551149671286251028934249451777026117716046029077952127698584164520605254819213233996236947573699007438790187111706475911705316973251554796868018158290686727458734481569696374128715578451874637537448227785384248327174257200032230823200106729609914109016286638706440404778986796213593996996086171652024800998668786194035678775842184656761917138474097966278641173657926797014954142335490606660661521540932849669079675361255739272227319775018128579895731573992028071343359628491544580795671113356381328693107063441125173113887773282935559367147753052298542306047274907122054899501642017051327840346653441103400756697071027196873697777593918964933699294007355898884777747120925330285726873194813899839964530856665868437695833498069529324009271974728698479179101895840952206112032418762857455096765537502540202897070455843701913229817482099395872471055468186413506206888926068502590548227212183164966120798209680865728809618900097777367164773381122716395855877378036074611484467064948992510872581176389161719921954540717328981878185207352756977003004400498081680897723702044982403437117568267177763883746536173200222359807235245394967673567820064895756783182955284244428453792560703956428376004528215454157305625247740282883087831187223859404812272947302843718945077617549969328909669112978291480034708269214074799389256961314110072265465268680976650215579222700880838837656150008402596279430512017019176788963211428409660917879901085112502587311722348070726934636728036168585095100195374547368920289502178009284376302034270208542834900160330763898468417890629472911978620330418061871182338114669340350806533395917747286382530256369989233646576260561435874081988114049638853989715256071212911863436004236271983713657293750688036398507245126830148693158454478048026642932608662438203339624823114948259755917265336198943864885305239392444341873906096528008801637760311684899334404327308376824387000231603090041220029644298913124138331462520497453323711237593435101893351748566349943572808271263596439840292048016619889888106435438776182623030501959774949255417662895689996351536705778138641530695004476604770999853306439175255413214798218622444732761069452105712399567772154844547121235359747074994270926977810762273039337355250506280219515101980389670198100986213066397209750911319836691087910551592135560867695490605637612334451798787231155765357057014043855930557866882940059509967370253205399805266854494037862734966211097258521844774593901407336108908528172817318014135564052820663173272639563538627972647848834507996198988805698528860344791452485192562821529905997921897957870768954349566375531694046149973020152936228690936871266103782562509849087719322339156857899709619758254091583329802113180593969871976080287689052366893486761113566383058806207451943580838825174753501282141228079138811000717837598475222995032081693466511906617607131453432559026387665467025499334758214319878363232017552148605748498725579010525517708614962247994780926365466424497513611909352055322256934653542623631448043951773774598714004209780460973828376011084547667711733935067402426636316365568416173545199240477414553519021900468090452201564027486917529945058936369662403700820943192025391256500893469090313819492758056804901926500876714527576871779163972914138553874989654818234565019736533127231354506048049699726122465491272998992845861909074504898506839947029065753278701526425613614943250713174237092211764219054886062389425336679101284020851696132333527894075598593745406456061425921804206313951611637274830130415944656827867933874555465721370971166301557631776005667457693389266807597342481297897780112488003371207711894870338935422449403643207580065604180244421648245918529189356196985128448884479458082246395414262177463014438800574925001153154789973453049381018697037023088233652872923758546311805849712006665195835957518689421622365218526828842777184184506617077716726519013249139274344842832656377398539747697446022835127903775873895128785425543201030380205559339981644502982221614012849762992187326317280735602748664427704030715983627375916347132637486955156409969453300245213065536560558727380418466965827157347995661495070153244230045256957373071174841180471499683875193804691324559522109312614832518167224496745249084543310177342389775797927270599315057661155331671494265189611323841978181069142635439176429322305160707270297354413965717605348280991192492241803069250546577672940054667689662972612402206895397194221910550111914527464377841360126775989327094991325859848405284694487797853531114572829778080797217846443897896943966736726282012390086440331799549603430987597688670342958724041437802449906586122593057305179693407396860155711883034085834065890550325613952056701056850090434745708925835733917206715356992393557480606461433636206897041479825751683871829026565412729438015844352271511769030450731561925509619502713448230832737153112300701359696718246618219777922377296238734525599276535114567796410994894237507563530494436984440083253791071935160991590270003292500584454193722808663977115267321609427369565297904879243568787952443944938625660346674407416708020010580512460447641421953803159154300130396295993481093135422015663891168093334714195021753982643874241453950297348089830297328458788389260328714976335094808428855782181724108417121073514611024844588238141514073685665014242372798273507929513601681054696995440450115768602247248112000739033829215177065698544010436023629964315406321428106343655138166560161968640692737955349016667882758764839494498289883615459682159775883810058635223545511615501484175082087947306619531863216859328892118317674561756704035402801136385364159060966233649987450094944207570497841384442851730111904147020151511824783080480256143695203155075092528978003744735257944111732974857448591277121139622394624539715470251039932616743888960663387094088343264126776903444816109629842896133532767465427532367103982382324683820365276738148719788678237861987634123342255528386674959654330272743054314763926631305901278091087457838702995348301627773714780930565034448932975875789384254180462462973387924893867805933964488478783809958433741786561476332901781443554792194426652526345431920927599642764155240519767344127734021104870383362553978100859731784082987075776774735831693661384010251786124693873677249117541510013619493300973285932632582758365807701117576923359560932849382100740703494309032108881963403762203818449334453984168686293939758922046969678236780434077552670413866806610208064167038517786684252061642841556703046467195834948249491733353888848906146122022154857760703573297573799963967291481739451009487289438129827726356192928600452034571421162982875307307920896413723963399943583676299417398122270923665355063950146795766344629211270220588373920513398966645198098509431869394487839658007199273594298996553848367100791140612918468713735667460404231277769751038015451511620843750925151973894982702761669128459598935046032701839308391567971303595968152557160788014977143911267272001881243286030441561489096363296594272497754378835166862869144041796145369805560272734263327974624653327076609362200730521279395579702036512916221102341998376744554059809271708875575780202597343027386544055622869735338884201687440392863272274811736982455602603299386074386668640456239185361732143183292039278265099384952730639715542915846717225129273172702178039135389686208244034725470116153889502564161686634474252501097608869839042935993431352945329938343673794799711022307845386482592303008990295938014041077516664893234972932712749931546187110915397088088756575907061382384204281453035499714610032855275964696777953584829946392410166337463759795716351339186044712179961307619474578727163324484549343892809147459253216826931539552519028537533018741958615618160815403143176574943416963677931350930589646973999610783986120203960567308427054594088579305656050719490498735119525775904560292774499232425890288834198343555932495199929409742375448780323150254181263358670744956693323559910072430804714110986046219848847612340638463605721954868287407509211503465486113760063695243064768482417520248682294253449746074439061509099848160857881996506175673544103955823016891746152564409876675679377375107163210540734075412054769879248083106171637580167512019993157442639979140567699397253351668416053875854677675113918559499409683067014656798018223439883290772975790392552532216457073877712504593398511041005993115732131000144529658794829459878947429151557620381203299225603310092635636323604689863295433953862460258907825251701754884175477582441534572285645014847472023527401629736710828633891812528279704556079173954290413195612264192230087302618565242575814141093622457314569975891055808858775325792303697417692037556770380042519619452378240440516896986164993788644580576095202408293974300475881518239213735098493208495031450921101956255604357613096712238749971786404191996845179597602067754039565720631150646555260412879673626050474072629994847871521579842545070621112882185413787356645315613913770157014468008270947124237251058663567648201215605545690226930083405901115005721302065139302392361955849587328046162322104939315454973520330745230261665633386763316814866661139908553652344821472446165271651043038531762120063232762218819857180623538609141263827642973102900546417058343158158926575692204407127457558532222627029051469067362433420927877467362058200723394441133480858767318710730423463522334981768700451232000218974577094235212062142108710492408308562861653571477549609862986685458774374110388838597426902083493237592568172244306631851342004219485066034154720049520669715320339287822622412420211045025836449263584857703508812634777493349447713952472091486121715403481482670812584321039455357779561179749973592747069623960704785193460220033521125191018626298016600336014278754943353732578649271674011013124073775831353040555883124324404292668346406240368885301041697508477486726257017794252042174569651689786442773065924678561284544720411127024992595551388246554907343039633822168357410285162404650612395131497294782883831843407226922372803085980564203669680511334636400788951886597919141433132624485105657586985807932670399442066146231265279878195890308070081266858124166679815607208053642119648993306538321517181720972364411985091855584965264442006208089425912516519898745224934345621119637125458857602497440698742187389779070652559407340030182356750264950118954347752525767088519668456007948902702257963258707241917334917056689241037095391064743658858502654435882543423528003691666164776578592063116298298356661267922387238991269209428120865796149384726898318254495972246059233658641356864471557670656254001464116100407350280261423685463098163233083384718861557775934908368604387241188699944375077219137142846924281284042663960802377154545292758654527544765670469375105148496417361294482873929619126759567795934450333441561648107771569472839469120172416134170651072634493116418391384006367933522700466094146907265098189953524036059430709870356398517671461926813611734242783776121476426801150117606083650790503980179852765981773470157526140382440633570302341261103138930332253330468054591522525265783994043406789173677258334370086431752629717216496862478995791122590019668967813010246728559703014141602355712031869035255746371530675414547461858333488174159702390747343163011523023847085035071543478890690975178832845310901774082801173519492638427574355611375903409345955848351172098717700992480830067922445810573971189757600468396324374060216620275979661195543482286552410088479014820658428697610983578278819430579493709886275813015217402357824542927293900883528126454953467397641785877118380935608285303685343195866405972135200424331867674206296716910143940008281950947298712769609185673179395845627723768293502563242255490617037625717629720272855508426228857144593575046656435302140959746503878656816195795745879696193172896695251488361163998863361871354312694255095211225835805607621033033623147993535232741326155624377905707095875138054265635469280720439437096630823549579990204983056009685881987150095651875660410369595076299190453130909210023002082301970747257021579726160536819330092266449013582622683158831588610133576365314180326674453058565787921986578893679975416466137865212642431823724733208648112621592089957290612279652085782031435712534600223663849875656937476299760993376139989966871187629023899702131084294726221392848975662863846333259408596554835865083265150110293149907672242960860639378939684638112151142896242715525013952217086709600712623556178159377831258204904292582921980988872091980741615318077871297750797848029963969367107264643839702937430048253268041002183732498291446354185920774051828179150388159400418867176236113053822172204887114783159187438822686636348653972127680868665113737690075398600417358047972025479848289774686320929518050428236963630044246749443140248207593275445279144743610679274768908167912692970813768970902952214134862368969622526754784215299276364014806790247396007498660554973953882514465986690104161224866081439467293599943421096222757943807884746299918980828683033981699279390921443552064894027786255548250897080660787631680499251106738537874391471655719263366345922340245561591291830451473498155969103522056602320874611355409148994883198231212694224292768055007449276058183522488486095296658135841021958337430306068311946439230423709153599910067176767027463482127706576700302431473674025547499860281910597799558199006709876768451352985055650718915213571579307202722242387325241945021863333776628801118169799771803053940488890096110884022981950030213669441063335876343245323549945681617186716387204966477796024140636171923713280310839067461156185697766032193276232764978568248415002343775286887732413312863598396345740212252753034709485051638477636928038265817060669599466733026403203328923774832859701310657269848601107810520095780998313952624245581117692483235997259015882712445357919842806084988325646680496289040374267764940828458099105919342811493178231399913696050053385704307309751200375343320552927521147976500890367994656548888578437353620444736327399087779210847851132938599523931447337090880147407907411567841370421147336035764585110031464230177721388659110901578694983379504548089274374510980580509206521854927300425455161686560529213379071777260062893702924749827910662422269417098453321702785751498299152025125977445679985354065398131848340544616245719879588219479263540049008927385926053869431566632789665672939090244954804371052740655983321743863384978232599853349956467901591625202578655145046114233169135726155503605234479758860681442718805029727380334580197674697503343288271519468964607273426636206308860547722466115269347928079125087987329691082966855740333264598533088765910684841878698673833332239486730420674731811385607421466193426688223155160908801034817148273417238395896038201043896075919735899918622816088963293058732759669657633112908945611277816633460526946888673126506560697857667577659729493983577458131527515272446922843160939737305558135162629971610579560094231447895015228852532063034205520193365300806744448110541570468928620320059875349949475845667399335775104037792888192071502367798900644280027275997775896270170096561060219637691264860042291441224126924864163837180241836783803187082704439978601590653643239285739664395695654767461924872845787476697937827261000874151500608870866893415203980055075298727772131572604341712298746127251991624022770432454707517274747880609415396563656177693367388327718853436929359997492759720318510894461893066950083152545072879195763421444079542600382233927751109375251176528499173016640833701945611481662577022504553736583581520693056063465535214953283395104619896601523817553724897112999646153191097861154027838582433397313785732762587694393259356074688605953911921947831482831057542539194227382354330614710851535793683470072045888438222908066768190953530548111828288980000645714413707913314295752143965619419856861717550996969249421947365098811445534801799379507109824098467300238068929201155623675212636718885935920294079623963838669340652380733528010457710263145586650694275845234045349055721019090562183475799597850354427799674192073458817132146258166324587806101276207427012884519090437807717896889433887073340632348855830448257545372010567287632551552701681204948068431888909157764352783464593379706560087398342500213587618144141951694254725971441363536715407273426816516674494052502565039441543403431575207011086867945752770795249751323589480685749897675463070442545989193714137543839425130692263670534596137767112956707954268562566473924731012299225056645624170352885587744106471583255084113602762772321098765275810522103734550303527942012724269634339642555307506165237588726972948168922349245744448953589670890126636188200357121540670478983009332205127008138936710575349464738526392208167440326786249102711861773482845800077447204691778227357416498432327321798241474192303122088617879953269176250787308654131382249869271972275566598349611358337840926132166362407551417838657165583618489237509761713013573653008903372468458031102801564210097735647980517927588238651926930928297617164910063171281375026678263103036985944441700659321017401486323628669299349832036196226157762888053212727929157754812487103457997703912378959135667492821482360213215008408537550722705072400607558147912451121414800174768104795776144818871698241048197926470854293542481870012389631081173356868865100366466129637520314771142929022664979522089227839067093598898933806074815056674652152018749023275872703676914267383946361878863777837794511304165993662093491146021829454270389374292768762827368637883559420122574095513400507737911865963239230143796785836053688553450236428880608792502125273299533904279112042046628671738831551708541945612662770577273799039675859412141699206232709469054671180568737202500531612967178851954593157942161867239356448548944305286795509477376298417397491287492399302848919240741217800258130003383629313346341670152275118300330694477550590400991357270435631826314387351937895367065416965994480554636120454893867793269111645290080938017593557231729742693549755708385262707674045082007649981639673065848109090979589455883233068258097392677193811185292708633823025729625380757613176507822646069072331274197381040097220987390016996984378009511565683939561757270761597616534983971781464324405821723773000034032897336189499696111338172241496931782483256269697162591212591708056052073100038771010258697398934664916035182358811546966144179842132736653456365459850501142475151479177838110672525319426012872131645705155860754948136565236848620385399585010676771224568731885160680635683064206728633641323091057903292340154494623509277188434763052895552944281472150832187331088437358769719287822437847712833070529608845565920333653857481606653127850380737848475084362826690898930947592011641752792116751449657734832161099954733664376687072322901902575158145453271290103460783312295549550407438746131790636040284431578441121151933504470887463080630796585664135199466007654770667868185475058308609688636528634024495422331938725270425749522136476228040614579428948757298971394685341084771118780635182067273493269613313441255429397951868832052049298048016007496290956830579601588991840456585870919488012540220788866449335982399700932283880049002917036832354840396002810412549531208283010019035604373139308874786762223409567938738159037524553183665655620750494422470281366906914707930337995729215432797252862475204722539603969360104726114079141250122005933680393856595327216335766646993773559703752171196836546915275374698624588209478696351812219932539570487461041306289904382167255946576525313026407165249642708112299887444866291614623174782876919989209292239424472288025830559736547555310380200795660564443730187427462813041928010745856229430603299050377236065612175995543153525180503590388578616726484931582712101248023730885243490669973383652235319262802798385308013259132742045895338186465781801234319425205515021541587552707696019398703109374723105608060681617771414646954869710325771316738271796373841217831984757394204773886503379642035055282525779339699031178805001534346887237915313449882020710980530118360287856063631014207404937026821992793514400619764585247769481769133183927621941698104049560224765667734519656361752091857005868159220803195325172386216487274669060600982481486503573164154551887987425751657880420365183443454791076451301404037654689593263252541168211317842988896591719076369227815802968997329947959099067798037499033253816617912136998124596278242666141778566257603369957665754532888927240844773313729024657735113179267811690710624044954954641890105906520251524671911588822012015548102344217391975549552424695334316288324857822408234658005652840722864802351669288247071258882401905962200797365803064852490608594651882314933801058622275423013216728507379775504145447424472097815725074672895030516558772577307052107851153565528920192414711431077742610657821293158479001996680027419452638972894384451353633391250023667499842230358730087041714557719881255457908660570815869127468045395486163949816754562936347640363858749072851774321640101696044272435281740674371396077079788593450986695871238892991647917064245734620795790859731381487569268090316686292521982176380082285528468481526376904293986810976472533504978168953770565077185012431299480435363044129100017510489664623158582027948339703612779658243125788762673758367341822505610421722597607470671957163160899062344988127611420675556672328876306005625642436343927739729696297720625753809604770366324040430612375008198906517667649199261013699919941643334464256017276222421212721610360238944552796551288909016168240373838580668377144033682755329723860687219971092238497756448679744346741709605025236661959466802091429724662084026313832339841397254744643985414956920486376056101505288603011205936707492405135557642017180088605422974994668768369141094020485656518830577674563497752942132878827676035144217903241149027687544917475572946235499238612285031845086107352583745002702882617452894125399545606729722041499517369743518676732213567231982600742199274275492622062599587765476240919677639021493429666099475596523896733511128950975454622124563391400832175997391282630397445563225325722272901555504928359492875163928472014421184974381225332291873801549095964049640084405298617406685416097449600947366147000925643866045234941365005791861749922157446964588609178951494442863372633904992659813265708656680349007303432557585546529243251231714329025119201406112068017745304514468989009595271733608348162627699778173986628371430357491880779015034829816078994662758305381227977096570598644901499692261970551963378206207280668114592857271619076852975476630842684219664018427258919963885309981824952380272756013134735563198265361599255242281961909958126286895831222035784049088500110291718074606184773188057352790666469922954106147007185202222262229806995861464230574074602310410958667739044349272565715350080828401552249526174957245394756657964616364702352434689433688435857606228342066797187540044668525932707029194518358212840640010075491307985396596263826488307747378567690609511242674856541436755157106942429678499367274902041625869779885979002652297832848050744540547183014145468248247664049512736640040779935098583686626690086753758671622914016729944813436586704042699589512548206037663431923656434058353813725516087654816045290683043046246952281148375286518317929749757575945721053902066330315477921702469514359193596930412173662920191981918517681992466738054942264296034710109298808579654049090271071300519904085826904706517422258628801278395874242424823755283743243047284867638027281778891913998400846270587085872913350349058549314075071490109096371242685354598005860842182288541050333474535510010387609347469602087879218741197360361361001914752984103225997756691142841722246602561396916447935120484285363520604194126846812787605005006170194051282637813967165807260694806888510919681666521511661898635542374449643313563565150340226426513631449789527212571210152135982375316472656618967414545830563963670803681834759795116635217313754512897977289282180319522113741499627209069419727433922994147752739266246639225917112144148289133509439688767817667178905845464848142743895570506859606429532294698442671043767674211025010893625928643320177754809297888950631551850648700682639085928637116847865363832561886111839050901383120816152827152101637280074713998630091214476921567784622036514646955059030148182349888742151530395661248754333033731510406471654963904328600811478380404976983558633049990801445750625039902447541310859739795919845537448705231028321952049330254274089106857817936778489342172264374480568223203432707517753243094605330577661197211790925523060378299163253143417868338523431524788093120680543894257088743554983162850395647890927350035996579869189829166947494656435467945922401138696369578566692703378222832156101127111718135764873246293008987610140496839581380251736030716860964678360774790951545478334086965358906398040001983457770258272624379985716417186280542842068536101511501828425362146061438090395954962241901170280264252411411614657752914617031322853409403220576966905511315384405133764588444305829511135936588002464727994748588584587672874450811821116447086242866783838539891381820602671548100889359873205867628438659123489869379170854350044924525496754139889501706944035598258476678177013721917066207396483594708147305899187830726068442357255649663949431591962145409700421521381397973361654850498879558463734379180474005096636482323187681125958538993562581486625483482561182161216438198916120632247566229998717443699480359607491737192003150726982520419795492671170338048382319320224138219903974946155239242146755217240795885453676849551164937191744142781054891628783163052131152949003937937901893766776798496897930494398923955447364323469132404745904424649087071917882325967366325645886906346269279374741274698631385298330746639437717363208764630759856434811900253141585392348950339167660116710166199192297719204342129859269963047333814552735156869048821174387598982708772895422254736880736962928166912281565162298890921819413181009928081621494935604544676796437318899667027245948689653676545813297754594067987355131991844396648803689826701813180271671936464544564808017263949447625459021078752217504658908252289218115782069039451462016248134164484963379829780573572126968202136130920282442357787695167848281705777102204570044737913942399654758472910883432617813378134888404992163603423164333427632267245168113117811601359325641798622628860567083024935809396951379068243001670966648253979124836623975591376303244832212644730148613500040614586388374897062243638456080099156157075267030565838562714211201629435342689690937095911371582079893595446705162998313536173582837144946236840939011411874092040483637781332996905607182308064202213841222232859937445512614668540024802151184224641581444355468295893680464862720148664259652158636654703614169749413238873789065438508328651104423401378806889021752200258190337912259385455419422850002555591527821903968695855396778662346743770540685535588158402822506464399299323956806895840127619326368375911425284732601880418569929607844041250286735781184376630594113767614890852355014859291676578373637228377345744666147893260232158620865298954034812804847332382282959531967945833569889339359376652915737902017851982367294211840945694788332488825610481819891056867433936759523372773741332522311454304330874726630582211822231729377107148059282377388438595531508558243649993902377270007864474029535522647249969529533776756479402464480577613701344593650405977821889447373679106803125715933179518644916941901865429651594086317396405582824774871016011307999987529536521101324200694503245201747496780728155529268877829924822448763037445413725429885491451610458849446188420388326965943682646112494881308475966064209508586824535452213978686281767721013307809567542152613102534507339721451851131493816081025680414800947698351953360518420257685684602958295226105747219199746141772118687174970690463175414425276277374309111610421952368346680842394833296347171403996645653069837838391617998003814949585363495010505946289726613416404345494899919871702988980510970244069749191140071493935295276021661061373650072043501623542449607174973924828968320351545591502986780419257340967668891987947403481032797696425513801602772186164683903136850127848509241126380743902323059638641984324968807601902581649963105858119027963461864482534924928143738393405675460803518440419102916844750007981913393051507453727347410602046655701863088013532040259061129530586108033103340849002426310113100564607189814911331763242879912613637312766166594228719690533592431205343696092586746378644742915262740658882852377853638389250108807812844594774037616808413991031618374907380847179778482804108950959920542389675352964646246685559804909826361900680702064983040551799847212019709054551630020863479366917264017705507953080118680153195190040340486228587720296647095679567993872295277987052936358508131763536021236576601827871011553635864597608987364001615330567852882025253551413067835832255269818131007049238925449467024286657832938222670365672900079213253129476508501186415308359934949468114049322443545165144125388432580241802864227580292073155564475386823315241347961023851192724915942525985044737096296540105736761613385869422820410588141536593309781071763918236782643567246827819201197003566437065138828573712820898118781019853299811049840424010828194925192619742691442524287989781223279969790004182892859232789051023679187358450715842693035535173611415917645858242664532023209312414116527569836010054535227229261322200381697573892015727843994140533325622092658886296046762938982169851652902945936677757615811420340614233974535204739308627429591477650472232800955718782558333384634133321454316901249672215578015079576002197424577196887002181623265366468408448783842062758131492181796204437796262042484244322172024314571679986049187678790786817907373370157392107943782745461557223587290971088207566771992389536348027193949458326862444378136395790232249926334036761425054019100813735224217362710740484375323688922117714930489756357841983429918509630285431737601600650215086422645004068873278646711232048360608791232094723921422052967353759933168691105599022711384725374840067762150836283722595001979652257493771188990417306260051949514959875682223996520021827805409510185680810653295939376694978286786088405235043977324558750802807834465926735145032882723657396646106220082089678643268616499244989577215978320217876329403033695094639124056814960261015544139113846295956230097966463231444580069291000471732911663977919016569126949022169691308471666680284077821009688678551338854250653055171358271482548054979378998213897277461201758873028682453122094558073120118908514997435894049809270530745203007533822775929911357570505026994169735490395222584943948068473677145232742554699308521787232975272235369522998865765242236817645151811143744095662887330094730133941705454749658454983953190521091452956448254616676685343997210924922507579936056692565436873780337924283994039333497366360925026357310855444353978114645058917049652565289110492861105771488920115058512235742116129795856953726000256818499151811630019728055359872595434351651084307999790255047740613984934855838005707635947096459134008779609962028822349219275679089858316942987240224761533866469355482882520416212600061162180907573366422893289263627638097249232231101650756067404178253454558448249843641809036255075569127391950941731144853600675702977557785215157539160192088172804015200373465749575643936842874223695234493788665937297697185189786617348710812059586474605228994014077088580271674525272490005493450127816262669162572714373579650097229640902895248061457054727125674924114002738618675305493185112254413413903979109032239919918654889626912777588733347056350795097359040094326464364410606456338676964155542797477154524714596493234995144889263760906283840659727462956209660371538695905469775648429456246486117635942165216818707007646144025666934136720145717429923436331254267109225405127176004693376619214563875993811041929418843432634895315162552765465803588100438010508723391311254598518464082058897019345226037165511564440120095853523673688175085771573183653735136881136903788090979889701958662927420080122324440491733640772058377000842690871782465267194861484678874660891432463722330576203193304605146005773312816523375684343918621101136218794303950341814868069129919980955156251660965680974031666082005651055083769556637967866143657962777630447109222143476694145869717819342372723709509999399878667331699243049191294225823722396111890063427390571723689518379092506872573817708488136936695599809964752882405871365453559258016675208675348346599415038127491568991418847069192572902627908710143692074611192461546799848790258884675313715635102680520057895620456610948384790680719016775078217683340704010301586533736242966371600154697871013651749125720744089665936631436500738488148653421884994472408852601398036100328675218282321584163822507455878675972470433022252828925540264951350749660440939274595882828787869918168229874778208182841236370472563694308213325608817536184925035649882496078990632875958658276255683854513254547729247676525229823242828080982722009369794304663641059165151856134240137072654645986732755878849636370640361571788090143870212471806214468291953761174848391458333593326964591474575964158089132960300961358923241867679991377369621025925205436168368974241512881681492159009752076070728424233952189529028675453634964355122491202451815743598618843018517274600339076566148462900646927380984522684200280604579641811899108006140170053555549562811514007400218948199330069096337949616949644654200141993784419746932057321902807170095270141202389955527281752042669001753269867695720077472284256558001894720519711840157212415236824359361561403542439014585301478253203966550625893792434755362919942957195758553016673541928362101131922095641260754173253069013065123210770446156136886565657676865907213144050603418211362737010309112812861907874259082568314708383494258732815322653878803887262941433790814096973938196864603203088561692254585936720711371833392348540512334187186327556806075731140672375524891307037669395138622932369964288680658220868838597300834393341634239901563712122177607687857116910787244908117870024628780562564347382533886146415707402831476946542070727349173445658758176245705985973284130465185666553023653100163067298156895966875752046765838287812545421822176858198721042778259930461867241047086338446163278254405155077441669332434846498003493765642872530454963938284805060384375018634950398864774892496756435844724375196635759468962560942453118614025627754115803999426552853971356559052901233839887923816649302978643674854225920627458726512916639851237031170549922934737686062390033653379668788285465123441587867871424181626063270026416251977977564266794196900234076515868202835443645554993257969906279798496309006524201949205261404918090878573416546627739627535877747042866204875265839132800439419612992958737775460024153683167076521460925045937225672010766270356926352753659458880804548942827876448083584992533907947819233746035009388568127718202740134681314131462427997837087101836612660642112352745966604377501909270143601214884136335428420906511326289669987469480759276252598768724595011428028883432556984938542134873015252371913741789117762302484629852464079888738362155601430283056134492492039080468675668418000378835374337363253427867305640732470025924790844593449421004286912034582537600886583944962753225551927202556986603252432993259880859663108709230514808862882218157906439105360075445191284289820517240058776428442201255160593284239922340996932735635274536379423197031981374806674126821941809812722337643145106098710145877046920692341030545982396904325367968829346330195945295771772305094121818283664791729881005827572802607450462370731086740122919311949975991599441561537237410533458887141514346085316015541516360604509868626520347770494871834484608718103435809692644194012112566166426978264882293121700257743247873463987887840965175484716181424732124977212051005331535828682819285884868268899060688750493194652232488468843048923699794831076845514590379747292286327093575596163515838300144863401324419582672558373384197847394796403344138105311808926266629789421643824509374409568214726976117691460944523217058458087928927866869809147939897530956796393504147402660595456379655738198449156133220055474169677021932747362237352824342333960302866788358525487010997744388113022817046023084158282897646040834288918306430140056272592726705066115989226012423061187553266827025879008593957520169247446364133506276797078702565550427090158466412902362484172169649340645097431153133113673190029783794198773568099281705474644994484309802627062751161622599604260739358868891186253097970057276259051725326148518876651889535019417391254360962346817743339559983980038555098294530818600922699040710559686948859616810268697455330374364389044084119666084859955352389571729577525447086831835906820386992031948920715505019175077815206817741368602928911898455271936300936322861965820333627559317284140954723048856946768901023905051697958988387535738497440111268489439052793596067405001473314202955867701389676958502115881914230079210824865152199214740919139999697240249773908244221449103557651231027269615008833931082083340783725845981945922416115589702724359907901513240217387403205384190106370778656043544818220427426465217301536148344128895448350755466740082418947218271574924356768278834804330014906006637964031283205044413046587308734552844283276876250897307301869317439984062676690385536056206385118530854778154747505999456618434915190782845735281163067963256741719320913591730048105638921760685049001240826288411437630320644610216314183697726636397878551107001819120289569614355349114575418222605956300785577238863166223064894406579154586474102413985424498502453712822146866162908911446318740687318150725921469248064408669793732952347697602511434888908438419638571303271032819253621515924776892704286898995310342550431479639151123373821865873180128014899106853765349207752821930353078480295849229078007310670780380819309779096793262149460197949580712872780984528308343167155006237526518401990353110101968535492768114616966182331124684587049334583502873943443241680999284489882314623535122383318242572806315124840605808537095321092123669275792706584571033043898755552575927600841237501602715673006605078519538450076151137146855725059430275366185715006502490938057400818989716954080102868449183547660067030225296915791251637837304696451171898264141829175931967271036125733325521309777850110366259869022423117825652465463843499899865497005615067246273601247798439961222427877246840939555141569066310565458605114052542050880682026639567179148625230850561747526477648655198891880464807532561411954668311107744752875023353363146312175927299442971672198604500818192981101053790174297629284731114252696575303842292984661489375729045107645316872868203905958382883661457975060724716508696992402554922555181635453150644123645020561214566946395528075975448765359492890710009593611507909831392398779311901361054860862529742776950648582076708345024828233099448305623600338633617129915017076962162178191865370539150208884963704401881194310586927651090399513804568865445120150608601015555689708793929563052292878403617951789181829118395007280366273895555709182442660590905403561829764728926950608656566437685390747621898187818392266523117361416195572939250697671365143054179123678675329156605584880279700144172994082779789695623718357230066964634192474144481843428608332587204928452566357165901836368237255814804967871712076771154285929837598523008801697196309860282745452257262729409038272756520011598099877457102784319013441274340268460184543793076724220914541315718130621745801692061445432104385332277034862012889019386717621730211936276888614402661659579445625531200136774357717234286032705721027542762961447118423737493139702173317892278591563711905863281176478206909115419652801050498943985928107009587219195177030598757596399212549378304035608074415088428713627413065839402883513325751133167508935497734771928751347723251758202259194927722867587759093631392173104694702382220985140650969245460249741968688618994390862760203301443317555676695068025048750046330825402748334737001782118916607861637387473701861660382613376442679553770347791751809849206852880654526852999669678871975566039005115935539261163149602313751004450893823770722679457467231960480503055260547490986092585528609539035042878594428509369489619656099373874249693936349846141736553910818480126912201770694035218137849455367479076743366959782813019795196914357112649251235214188487666417618334209051219227799283224039826905248949770109609965936871696761729264889260899421849148486341457068557920737216791944805824864963640873223134632488050622584945539062052126641094041062156018344699626402561421152319815020932566006667350652990420876435823267881357960543362789901755828300770838599998959745105612760575490657953502639257656008032262601847205003293264656057430372730451531016267958960646730551557000862580885761205507675966425559698097287178041539757257756063436678581283201587949009695166947315539594688782168964581202741908806312790953653936285912418589788978639125650148605393453851799724118456769971593104615682213813386500160902002139739937328745115069092931725563070063159087769920140889925382505853159904429115893265369643540135012130979840856607209402649441926554551103052599842072985222269598471390575369571513899219335171310985131984257080737811703886918561052693147368767314716266161471310848570658373617545813305443183735157869593610045089830959180615412368326708473423926690029666034983181210737465274150945149757164007733973678381181865229424736522004521631673450868522392371148999068455289774751045577325241291244978387677257080024754450284343395659431328164583018802390542881119265988672555588189771843065180183634936041139660567289651213276698035808410406797831712132068811946206313797839220892786269001267939640905196234490719313282165000035805072331184187331892799292807248567150537756587707688794048510882551442470467347758992384769121203982252422834300390568975717846257713201674923421229148912434396960493229369056497201994112933409071968565290880531409815241077252950455341305749105089679052524372289871593535864254197189536672476895290831286122554681261768151620785954514760359076658176239386915053867223976670379312478338549238685259006288973064203919474857611003169977094531189348168708059796212344926450735122887790584545448661687444906656805783845964587905722472683285710811617774922683073989029386774538120294561686745130060958330229742648423224514896801108672881009078448434198750205055927592182806804105780913999642829084054777362346553844825919697110492553730750692822209098389044546222923325427361464155979488024245079494999212055214252339985351145245960501263603753038104906356282889947947132433831842230088663098951785662702638116003521183798317595355417531376910154560394192896049738712745296748639700351115914555860700708622024609595619991286148673546591241193497926743220590899703869192170917902162666373456063499479068446546159080554296083076572056389920038186281915401045773751301256658500149292919855164818003410291389352400329814050424007024767598683803074130427012362990169906250508810990115136789182468047715497214046670167608697165910126242541892089979962676868414531309674954859431270694869681255176915146512200720518238685164673293190577630187685439103089649607812745430444366516194017860382499588060763378200477989960935915630795679770040401066284154712295772358081038442744355803415958846691479216116012049288144463539498919342187106038893762997360549604482625616037143487847567838724250210075070282391125688737529549140566892214027116549695514225518327657678099263737200432304548435550198632077706340236763569374022582078254545890196263506887332130511146985239725868980465899195870745881918175010104583255582896309218088221841793160123484187090400342002992995095231590042389826214595428480233225752714296416701189652380175093484453823746024835541667865674889731001325518254313170142064373771180409283616571956282063962509853782377573778454875502563860517226522670513597019174027741591662219447769998133220383368587085907360502329820320908871750082017374311924478391693980387124041699174227910159840427945763079243761628261570491144795987708121920807587499156098807919188023056001592690427392416700324891020171759818499373898025425643594890869418263985812154742712264253723471608391549278202446454861133811704587410311068017448890369157130429858058932896335661391202151206641096962426926386320620030183683658099173543532336345737638271955740567353623250130079705807774559428556648116100925751815215968920606360492869693967789406968418354694784702939273027269158986318228857528615741039303526650808048403480341697864505114905537439613765938201674610078595226061363648391977455565018760286012790688406840880115322767525493180205818121767099636691068867705635537013059017947234083725024315928091870363618283995852937552393554994753436188501488562393413999727595721197798865869020694761995838336075587207819268395320461831736348487430027380742991770746286926567831841449579140718453188576216366682259204642880643675274701806283676555737139146666690262902465822449922364262033379456625825567584137340399602872015299736139254900592947273190561919799313142921025854144456720922426684776419733200723344525160131024152013792452787873232586361236728362455290298990096598646578912832525258025969151995407189341552306213149443532702169038050770843180848647696052627331858253015513329788010143812175919126151749148206123864129226574372856682240517155199909786003472221604516502002928701580282173349099323556404901576517695288963804145849719157765907382425589989547906849196549715683838332260029152195446756854101381087191520424227738144392917516179990834768146226067604272924327522645410579674721024651307237931718777751946746258877664569368204015915326989015291008070159205845249042430341274902516411392682727601367428333424033014140459618924137168702863521870807815588475004762020509482647249331068286864159320049304333768575909575243656654947978040200646628459193180962400270961134277991331138315767394479544115076939037903563127969983961712125329721676629492500076020283082171335873858093043243572572501650437454291820480777269097388174839818347569327995811041366734800514824721163799806247033416915748880587961917407314730760475371777441748301776793061907486951653201060318985360676533503015973240563340470783650232352658744813726157558299591264511693609125789997004457674647909612329699754279137802004291874344827745842652276449885753627885095598985181394471362069990501804217240932780293738540805297772892313814688657878006813862655234340924239594988932223738031439333197666982832439982577854395057230470957851853528563391174256541232356932442771053682287212917076941563757426870691349399984509105296435083666295950772087607665677334107783165365208923959389768814262815030095528865376144855200888286363683609412682066681984497494678119299415356850973018476987509892573191854269134004523059813915528265503961822797946294490482180198788472823867188383584765717201802625912853196921097978881342351810023303246680080829397436543848585858747654188449879243696450285315057255401301260106854414604177819344961935656668807424082823438379451494751837909274585191612210114611439704086464786331320990336765892284976890671679901498421882086237021426328320423982490922200898290246435307843760722473288560039362765795300580589795648885197752712324985458242335731987096991754500202447303113343069612253549764688854718616529325446308078005197159336401489988964556268627533656265184209298999488688159924173929359335609392927669865504126542155462581969290287175469243998622797732054297567140409043161216784967274647766117309558066986263860378582082742977168075298568497086690119139632453276046141871639612213421291980058332156089388010634897456539136287720043582200526335786269782533211025897230899512220060905783482359512372815111283879520320924045522533959333799793994566138968757359923097017555097171910534298643413325430897735644632654220307139475455376160898206179678307349188426251857909019715945212614913277895596027409704691579793803227449243266874787968991979356481218116611381956567341466071790749958559792558852763288928868090559030930189633580671950363134902097218792553213014609727010762099364372135931204593064397766169376417834355869562025269937970760614934821083621944053947907580465786593182492592456379719505812202075834786334665102743226750981646525276214648336859973088710625661929385908795756117807404875406010098307268707262853915306941072182752486168825702037856380151688355249225310219270018139381453794912776389147817536070417294830458538068511998829646654690099898526334207075482221425311359226306010082703774445501471408071483487755576857189111695150301282586837710880489851338515058496486558649525992656028887126474045423109104526790151226255799906290670976127557883329292876819326736975611856262428836945691935591090246148149423016378963578247890577768064560482009102693851211007936424169322749612751779083980850667046463105871418747303893371255921851326372434055678161415183331861740945388321122993835556557887000321186200865920573359611912995170271355174537300433238163583562387711875692823554214072255050265678186467519975303954400216551816615439425037052194834749495352537487045743287589167600907129562829101347803947014100738492210225564984098956082325351419229274319788959084737675288551531557409640127296589771667406676746789361444628993913298752081396361214654375904257274886461304328180211760073948043680310396827174947214323335532794605135508581027345531930367748409204771328296889506737325574895446997192452930146780915155989587083737897674253977626127728990820604278085778264950725515031143632547270432770256986263002439567636466824471056848835581841026068719977548144356298026547561977473208859587877626393310315538403737152093641373865711826585845199934025480510110895821967083530320582781837785505633949158898346470071404328183203389828299163616218702082233774791992132656372664389037875417193595577773836107436967206896776253157708662309390710153219228296450724352650795590012083162003305416974868858215413929062527177867231068846351904246108306202278571876533153582223265508172371704739564928261315668812651251137487322848386504661651520388925461021208283264805892552877118934169667312106143753956295724097947151751210727382623774029148765972741576555885656922220026005491879206369658649762368213005599953812019237348455696448818129096441276329115150156195161879466514497552265730275768255306262000375811731421229535023667040474737866235875551073509050090001840938363466648951167633129720117286438987536351378764376644255964664217833349606653534152096841381837227168426468159734473507770790503246037759904943836268772403599573454643745140052943124206005238540118678637790697421595825902200768268329013801001498974036703577313981272461444514647649266136004519221999125656718360107472931302569594830960063166279819228570083621177630163423393612894730185594460511808176940107459785879571396190148509910938678702624138149944914735059842429750997452222892204404192185036141972186135573267892012513893305090677776963396550757741490325658288670342773833286953119181072474261596855059321694592806635154225371515238870055719885179897798593881067510931957531281220369269934900446233935225326421669489821382770482210259710153164804194980561301858855265762349462025623146655703391251771424629222473832276593541628718322985747163210225144632056572810253482987083261880003299180770522998509913634317000785591178049865140208876412750959575638382337173144965672755687097253989542373010313033449750715209798036243115513883623966758999607939068858217359181318720334923164879674435857153784723798812621990860461477746930971577102987548870402302186480695009743708778786842883163250147827603539167970324509399986470341731398360545737118248765145691632635843385513013060392101068109442428341304479175462724948154536364639967872460056664998467900521379344481448506421924292853224276186954020806937996782608225823014058325315948848875303902400553138506326657918826367473332926898098594257886735574286070031280756642501593025795808775377090627385451276648723480122118185537760984921113706569381866544534282411916672555004496403640719906555575979905476940512702307610538416700316206033218102809456192596107917698887067675165352377907542069305420574904836770978570330786185047826737346136097435865419751632842715693636304004474114471115107379516270381994528171571922353545318269767674381626689260400103967199334863873984749945998597478055648320708923258317357701279675441078378860330556211581359565399330020377858875524637655950554483217061615963089189531508895992751565519698095952351377653324896878847480535932799060967143409913664583393588461899919769534304511859543253845184234821815515452542102710535288625438028668093416109842685537394227858541507284738795605170000033942656450682077337260883758110851674899972411812786487072063408260089636073352581573783320506205587947327088145102923474148455947347263661387063653033566819870104217304433939200316974575531400600978650981037386871919573245126640761629587858158829286737690344077502873192025748770406850730964921016189641345034599181584134232276121716891667034019035166802724861733247169942686808305276232567396752898649576352464550299010176806539757608291048290569976580567980576920229313330048301983122388581685118798502744834683480265982150521092895308939676217977313214888262955595259974559012323052044905390019235866233895565818408330748416810645740141165986330518876551832060773304541988001589878061328156426017223612731309991510076073732547964519729969758457743111596533133756656045609805363235222979223041806112557910111201665429905820376823947353466889360561286372510348782509693047407557724405969380034179473452826059542958482871876254057164734479582135810643297343383180641935219833771806669268765050894168248837423848183992289398354880666469843867825844890585872651065617759643669051997792945920906968761553075681579448746180662677380972106545513426284241423527492743966999459635298662309815817609723084520518101066900022359445624655246377143154910354254449495819893547242907988455935869874628716385375228267796666941496605627260756341175871109040755404131480867014801859917083164389223461799434800648083939040405105552821975404111426936445616961421634126666860779578414956800286672697262045147257951137523488255011282629357266053105068846523054061436540499532098361013586118662593876745589089772683700772553218539204038988185523061542016021205765202510450383538280329228244128544882542892550925594956236722012570426734834217499172483448946794692026647675989253548912128023882895608572396930327025795552316062213792167957663140291039533591968267092195518574188632501136772159510123996953414151083979680907287963993699716518034196770662384907446781239932734911329598240337805906332136483790493050664455050134693874190475445340757578594733350674363526326407841838457891619160133005413262879546859158084756882793890495730697275997357681451691314634518800011686666562608908665721321076576940818612227142258427711923928888641350020617813925841122622593275300766434150790112205514049465175274668379153526264552248978823798174060119625443482963728573042553300891250284188079770464532430593510667707091841014298198416847955476891867542252133312277991279673444550326709637192206225528149213872366571266556774878204696179526119586662047872152187180007592981327051119826335877979014619235391326063189702634546986706098646298120425745601730790526366250906386958348472101029965422773365081782841967324475713296746376130153710675497753934322477414392400717357474363720865948211796939487752363334240901538890008293566844732815175867874299725480080117819406415655316821764816182424142799864778572540136836869323548661727394501438368299568744835434817538786038709521260927158867817691034065435862341300954404031731133837350370241071309062765823114644078248996970829161795424894304149590832616445393102488474486442351011408083224887155966140070146512745918101339288784482962982091712997383932979694335741487011500344950033245817882696938627169485071570473812876537946368816851920077266024072185448611678876835436735912390682849653056113234259232371977029393458199870572055449116508185943340350806038102772974826418053580670777928683270020241411659650550074842708797134908830162220141972103552752029538624023799427641874660446575544830500818534097094989408060608123419185908505590973600571452324007457608271393217984641309747748367080748822244939786115444487656624175179100639342256762857039936824037737133594799724073855969662056499382482034412183462330742788721298002770064739709269530861969135292438224801135566365470937542725317664012564635164783913317452412059443458613135240835322536341278672508825782973287790536812893588197889677239972567541560847721090254040163977912507192051256047419293335612788254289713314861274521673443013183345768665158401394826779601492335920674486966122086689960739616456130730885118956643548176302639980641433809046112977886938047012074623912561583461782374080930649158906359653446636486724934881462633537632271207486322507808370021588447508675263083697514779488364211635670114010941436087426532446169932558698958014061873218473316140022027802071656888821655861767804067507042451723771507133109385602755325137908528725294291943961026808754664331662885349534159255827861302832878673108411855983951374897524542688208080342815777051484332249522409320984615021523507756949318877741467809975469520105256777116897069889229212686253946246984150205197531789958365450752427085311069389782708015754090359492118928103560109920742610137748683177009116580337972060886226908498949874580525909332844661964167071590209113925558920558035361472650883122049197992241166874840520632736442762601865516191576235518475170907343425173348125289600939747220656163537530451717553771571541258997605021419159217009603718964153873293566576069981933878573335317636646529066374379499906518851159170766065301708127596505965609977975199068298937627311544526297112500568196504123647687649971416186501715111121579062413474740052964731980253360596129487344478365305882069829198625480987555030104047571874939701756930896499774529835274975641644630157848897829552356360939633384785340397565229659696741825257316108128700931875707326427217448656903770370401633468505453458489662507303005038172554642437107876401684047432680856876884528801537289152289883398784245733620323618061383174775060440297700656907848027863776279434697068302807206353409193810110687175774650476463008456060597868649778891013500599841655664093889151282615564509453770129500011441754435944793297771974041336811138884124619964354973221512376788723353419867391902372464599494806356238842957990468028283823619584115527092187429509813771277910946247338200381794518284129215252730917141224677766181309797470839232190305919279946897960172203903998478050807123776122748528741300937742991772286183954417172460465877815035320673697392008682223835380379911294153619299364697789879315985170638949022310734618441442743816245530283815054381859343425557509486402720408264438035176571126657285934835131859093128016562622535325023202619581820085412974866212229630136899621358089573834076682994511173676157039276053602085672358537421199303112280462202372675567481638091475872371933313862075412866749173945689450031073932394062237454416918437838773149266530312163147595223908818996793980949908599815046521851625260862452272202465950409790309427256863119478943845403280509247763453761371966555021289800321223048895148354983645015529883747144990850755622181898568562555513073261262234321910745728164555395751632732446631584061909203382575343432205521025195518107855844517293994147147253312608765103214066632351946285501284988330824927945208386347027352388095698858049524184739316935122856419862264813164116415246883025233390658937031264699901912911850710272915971019586532062813765723401468704769123630045361084777289710957798245437961314260366540997640815982911586167807432227745263328501525715350156375662028806201074919365721794853189042699595777536569622167568334301572997701161443065747711621336351534864853195686301947753069423796126905769055298419581052970066961612600768789240950441043233140589125604160640573602143634643743877977692337005016030286058261538142080169011483904471933654618927030441622552519762632865916193397630294837280296192910342662356467177552438831192033536678603384477348470005513039611007868501955328540087617646633136517727934907673039596653129309380903341840402717656770096518614225668423833460087091044110676790441126140266768740864635872657029411930892169509422249188533754303120032924879680718784332325734477302724243978725327173114964748316565442541259476959502263034897601146731863014326161457364371084771456618375669488597944445691169660313943313390405325020973122847232333630595601783117837696435050644344046872838936460833303406299854650272860405853210376988984052840839338864285971583475073498071371700942274850573079160462444605051074965235646605105692039768389446152350830403872660273040030662480723131590658978614501096182629998395459926142648587222791596015045765068266657556928931823953319546128062367865093883247765697947436244575497299701562215327706679006030382617617156277964236496392032896362188162926028952886495391960376612590081958793226776498879697950557279313415959692798323906219337232595440934216351281134271484586254345586698849578139099171057109377342492650535842588739598570948935754282681112648487666915501433275718445131183921742595297107187324813752513642617843644546445215777860850647154916180452784818335930000873893732374104731903371966246040125401957649639219869551587259732500641176603720867374471714208572534918451308409316441320945758589957276225128249319907474212685326674408220892355015040852643172517601251962059815879455036714321134721918571929904266760583015740180739797157367683977703062947839057607281811382169234352980482804701138218114374617745342268908595324590064661823014375762713127483366852695689725841096262635920313108972417621486097717435568402111912950742024956370253209463465420188989613597987711928279714966981554865334683243153776867744912934266600163667725199804468362753398195437818893556707176905150596147606262237899748806343454219268057672764208891272328325431752432300978992969441965320620246146110624207374242921554504432361609122394559835081934378234159217897947752635228604860446170650909948470284406796746695164788601471363322010807027961907318571913418172722040366762003400906587604843364177585121180461771760298082982437223448736069885909911868044395797751172415472350911763461322114388322600845924813238057188370608171469539252108120991532175879175203229320587595615927511585325512870097899655823690438346082162102229270837895215418137215246296506965521154367023417438016653631790596330782586113285405674627810436133266401658544723662164521464693217240216797285309456995691367161190620404111286111527688508184764209251072060521953217287594931387760572279405799968631572104091134492669028737707615684647695159968533846134636009619813070070971621471130055132363815408935313052877505553707910243059539849582613765183399976848541221524280504027186432919665158872218604374557372731843618569839598358373300216110052257722353006325615629114402946683144812915360671123759471193047722713714948346027220532321286037434042042505262911511874685608355102715421587387723456857474121872409994886126014612630989848346455871588432500074503582924546268885244694922612922412120456979977328385279971065413187352657817858768943702886583258449826221233173677672367580056550927620810618832522980018915406392604186136744707761275681862382193694769997016303148938276780885836120682017170149943103067477209137567654531818792843617004022586623182666344790274390478604905212146496722046969590300205394699266695098240568214640529805732380346556582355627284851087883260463900871576108485745608282187134742953742494628172345802008233364381114588219726411597841578678368443663763360221326949605744811124188477956062395584564650416111103986431575056382020729478436657781826572496328307628434904073119674320582775722045630178735317094787743666378174846683627932296855591511491300223956361444668459683278229572201079407250314021722152226447845014780166811839854100424899419231194926753178454440100424320484393816569574693646885911092239474079963899068672834449259086893922098183606843959976406189669561291768856187137969401445962902381930823149998561449598216046838288336588364449371089602629771410640157027217406680505095085728193330175674005700039023927407655855875395371637690972612547239520588546391499020121425841543852578168952791855267079492161197806125089089292402678706713762996196831356604032890155958278609321437454249571172436179909206232485643663617012623766416523727431953033670553893466680274736907410858657634494355431636266946755069846784153029396899618950330497311900090743935259173003347931359529785348070929425596982061342877325331828369631149754553554135174950665831048233503938201579221285645199201689471405298127829695772397527716413121531742781405488975677268622449140660404134677535871263441123600063675590054814828181826584374640227950996567638711306740482583785643009059845634751092129531538513615302458290225388473270394762794574556556926327533014922819006981631363380539999759677940256330001157277853708080995170220278336415261278211025034085445333119033109499507197849193526696274279037352210701929186141738489165386970793490288785383905563516064019473544026064094064841755102781594557465953320323058188290820611502171695668368680989620883913992889783956141084667597417246645493868503734374803474800459511919490008073933961111928628769745206590303209462086705173397281564505901297241999727111706862025822535030350362910395080911880458381745013217277849072103667851138568468788538868663647955764262804718262689534409852644238015561615315808376344171561635360703317447302534267220575081098867058605141436573813258020796979041399199687584010473367964620535718118644398978546840208295793797385336631858439233852113000779647437318659966973685116179343822336053131682347924043314705122734011436617884810544453763249402161576840434440183781949381256283712469696782632142116637662542805223105684430476018696524109762101243660915178779678707331257943358070770604657771267273640656258970285179759446174384346698619550258777573780886853465423084720327136328091078256662072482867487773080754934316202457561079911532391535825384209670782370713693577496978264007020953431582335100283728380176626067062269895747110890274217070429216412676128251662646485365094491297012595254644643516698172147538410503532268700059646430133090605857345389332338747642501174967596191500780347227000334308748604705317842323283039300333428855207366894279598667066254499080336506122083065153082377196629584081836052258554042948003904882820770943940648333569882062559431903899003920398483190700225984202824310641185329784823498374788519261217952834673118491818001795055313402892425756504528257833076648211501867529983372863186150967729721560593339087897467465982453251854101781661470641837897776285949334050082294459723106008079136192883140673073721278399957394574946192594122067806719889221928651581844836860098836179700469741095785681789017203374912258162691139511086292772278850774549090409992644822292584420380765279990473710767208866216441535001448409428133494006484692240023509847710125779462279650887288117451428709030982667308262302320768554466822839787804022519180428312050810937397347411322630755765069697301650254177679060602424613126759734346298920433025018696177975349562477036223218431661854568769205042259236422784035552911942766567171841522964351921926479173408756083032264255029734957241598550515419902204390064444004330856305771737467457343257154647752548866299433511336140421449406717716449331154501999035279207406569048672838115150465942027761765358548944480227155821520304314955412708395955415789657837763329624241631631314947361089664628204995615577608096115008092657224645856918254006546328202550778503345799022018206433853100273321233959215253057994498708478898548131028699273588796730553626191194733239408632145479449967127952142520869829634916349694869125756775652321307178794771048017438642143082488634177285439663979483107898441156770520801586433642654607075861945204055156538640949724513191801991053477329562448454753698384496079608895893859645750208722126589802016944829286949416707598888628822412457311158003714842950371436409991467383490460935137349066759269799088644759738854717618992019003554865500251632200155679797128804606257933578693665243148603248435276990372858101246209626546688953656067736756431896766491780287570386057227836618049258282505695580917659678858594685069714641506637045259831279237740766872940760747035662103951727671590030171703851787350902634261965795469473830803722478052502256416361333402637734793079761592208866198810282105223744977742189570716288792109470914258030734024093114504471948344567869229854482378336592589261139248391569125713712615232440062235481299809820730603663860908759459951814719928959747232466468547390093067413558722894520666522256212290707509375943072662808620820218394113217056052734239826437039931007748917273921494909870254463228843057885699513325875808717907651624430577024307646954323058477499643722523264342515483642031298022398080043567991709166451268373830045578994866842637057108884064993475594896449909272964803322654941631225991562656545155709901656190650904474837509409188238489769723302831194445050020273472292065187604345409677628329127135491851372789569646506428428234520000105600575521807354872520302831842024345392165491134012425921519883744653222512646452210400390720619745900440135733345914902976483569030665178383166381783872216565538593026106076398547413768879963101876718235689424823977693591829312729703471731337767847999711403941516455361503195180068088063843646120512817812435507997881164975288835495595896453576805126267446260516638982610406982579591317211222986940660159628260101176133736443196874822447971478198083199346016130454494459300432169383982959722866215893637551623978296723002950458646502279389403740168845403815439903936059946738714856244580832929567189027976140982972327174311284722558773090762479128634251248848136811929409462493147361744755705184620705064087237878635881643284475251521184017548425948650725500725794312335403753023669548604112909642623084615618576550741345372864320072408235261397595784542469426961791722824322526471084776286453593292475141825983336970803959676785229894759722249899497082360158811139812701945520262531662052730453617367766175541995472095766561652241746602445464019418139710455397636784444577839525729107764258102002284870987000165451195257118342979837118771073471304143326604975605424410323202310598687537985294739705904559860701518363570398183331527937576023725121387502663294597994243971898949554979542931255874600308810361006683846579260795415164821926384996676998262026817064564307244717087730100744557443304786662653843938079050194571007956060397466969802213921397453686232864896062325897733140133463795062990242243684511490036277212780207020690447907240703709935422394304125860135451532346736153568837111852883868583213776716171439353928033715481049645887069130134828302830345175772697649312629746070327144375233703875414508300879536629564533127094609337382366189692550523221294850113448546295639609983044294280263215875936375941505152534469786539032755756496381069727977131918610618027956332639298602511005405435935242761988622230010812805507031508555299584998537885576282470436316763291842698569158474049492097383971960710443988316456358548214668243874101941498140873275370462352124495128293889352251029888920801246897101263257205660978954237179624061600098302818092939507882905060432764065768138414735775611703597916377042765066990752228830086747191278445171628064524846621597528675647610986533404006278818361675600277401449302365356599276328364820633010959137950675111761126304061750810425177292594169346667718538138154872811997134521587712216939134231043782461546795909616618567907393330606750639653112494332284181175828720857014960874701409918002996504596000029335095859241969937330472908797423780535037244493225205674760204100263390411331347548270616775671378880603390603756293791434047248734615531639578854279981778655980971946828889240658809975778188767093582107617699396714138713971896301180472968819749444959285242980654376307485631571828395497497094404106478589323252844658677172704419096971795621155070653904718879733749512835217638126689772979850020420461235934690880146632175912470466243899368194716890482307987080580226079181652236324147358901431162212038384454991396888055453074071722850108783378672008789141633232101724092172631378067981607615451280485336814934983195747331712059426346010993536229156952426204864617324468723648994212840374458309787421888782896781904215707104795247387631157595625550825139991437151477592912196981823791564748781065885243052432157828759684904614660459131220073842426693619595161580486093211434998085587392990206763989972064039849141230228961587520974078457194973075175393890176753974564289251472637376883892636422671252975096788346851704715654486678972271996913697379760100301012557478753002570285825493093622803588877738615652337518444155835965109999288726613974236752284030465128383454142315102188845922132376802159056426150765602055827182363463088217499860661756724414105682679006057404388437963684193335358845576982162514186025177404004563363383923332228505670201461490893702374344529555845375792441952654144842548878540473619417500269872852270495287524095376415511329882919848833563150168495492945801015014018835388713211833822927832810304573852442120579483029029615702649281465007516693037968552178523277509631133507173111428421742990724051584283123410590481738777240637927613577501939519651976239937636888547299305363831931351015418936670985341964748739236044596046334512914827760866580230714396914216806036808303563528153972234136082335265702593667906848349919026467342534593983018139750269561677736894929981487887970896030755893795297966282421068289903193255510177487921844581376450302690569966443190394068937117728615027136705621601179226839678253533414962231725282082820191175008031419156172137940816003882879020519494235739395632890855114809509566047385366646261435280677299604920243898794371685177782045965335101907340869993335235586559848125029414652229709914911264470300078868009405942608551166464830003822914349384132533417370818606196217470303484953556561371677249608045463408554931113929647418548557117102567012381832589212412350272979351359890518820000822060626367583928405562610065225357096094466486713728278520752437917186444052990172578763795519347814968244806574695874439995853186455863751254887402606743890569305427901565028510919363436934947830565526170483019940170576942163025470243871531840131428884594810758283324556048974654035070380846199132391418039600230518802640530978060816507960810580081798478718761887440892358426261565515457125237114718372268677348023922660504761912765687478978792097969412397080499234606434377173661058889421086189892079684066920366045591625827379963660167312613215739544786132887506072570798628695121620846187216916557086020592623591511203842851867982294711968908045184458043721707075739659320707334963890473556520570562133421749735281797119869850323635477755701072625587194426430151522157134882736410514117023480815652073715329972574265948891260893590320925906445460984228676201618493990266855951134361407189177961892805610958834687816301091546675230654961040158272534658021034907922882168518012188667416558133067597544039320570836314049195510034727813194704673414556546096910139728326876608747827499170623040973108607663713744569598758449444790585013403673399172525541896460052189644701385792205188067522642125214405654873310339157053315234377153223305166076493774069533084942204041792776993570200915190893786832907764643298584243453553560310605128203381343605991143674332959334150931632890953267687970937587490524473805393603659339674830405967620366933923863127649893191611847945913170444401853124202037022811491120245939506756654791789396739857090260700856396004846125574119607195308125250439417291346226020383478207896117842644697946347676919658068593771891086131368766223352341609891957341290528989368786909828292886393232236740336341760413564170316501464273430602101440432481752035650409778752144012445076751681517988286066556938049899354953648558295277143274884631843867607561677444750445793260953280129694596524088879458673988670180113502545263736067202937013762027931255559833597786660124556017538672008133630098833170706715374717716262295840829097535083258120175170505340729714884871922564752885772493203133904250995470200986117502711033868240797552701737191799445571252043474127677471016918376514972343974042249688164238011251719500592059236420426907236829991170033004502965974247089594863368011444798530802419139334054846527874432138296578864230405961731813145765425983562708638651331865249720719105765958526151412770905850619410718514383202532624231514448797736267063086959357829656315563660175032612118378345200518347630070648694966191299806091479911605270363156972585609312123778558122936501982676744807152117502033946132165748064238570629292518916907887845761053529230132846770276560929813061194241774849882017771880273155986779542348224830213812101529890760740403695132796875412747593850108411732849051664682522102627773511536289222733858287207424429599337496891912142488470409389346679217051644511585722864053775048866672858374024566517372505057068771313016627895661957079683352241727216899194490090985371921839196614277811630187375033862506407155463036947737051096008192428022907987739101851881091973774176258052222019588976123686986484283534250459317750976172266961207461942718511713087543941571384102347330642711874114395203423324151997371348031786201845121970054710734865456327905937926662701923226922851674903270357892677117460498517683136177826781499221213673492191733441071617054945943719798672335540827240951654441090752847035968375027598521929436678989089787778580790984988458748460766273918069032643211390702679387037159991156819262092734936336330163690493753597680340991946034068974575592418675245237209202135704726500832160018593877008291690766274437452741718323680911692561673880347511094440279358622956105312771413664871972534660092077119414725643884666076108892675571273904558440627367336041678577959197135134547433937290543191251255482803476183261108855687221426889437448407030302792704997723099388380492504163524492295860866181818048800219274099862805895225416599971008806774644392347172292395444213759169264877406777083604995842334874876011179028149723719023844508869900375209780611305151933379609617450355861178854134711874676560166669535236126069539866454022376144980581133526256336621404808140924666414440696428775089025786370509310352938948327074189885102412793798907242167067272329096640723579635380205319898848713196349616770485274937900615853681673317928008557355206359556851491148320905163111192833143509517100880024347956929547068824542805539621216116654803985720530653460907862005982180136225064642334305747317276699232898050062434262750019909213102162389378743450500049330706669971506382193670792251611680842541642433050928016921369319790653341190639068637749010622155752873252323422690721479816972016241485822218049816215640361433936733723778860609993203572261788033729495403886302502376909940635864508378032074732898606152015572271416474329882886239677425299934832457916682438362441833333154260238697062979052001314751522878860214255452727895902626594237743265035154300868205747333284498946370006463531897078510077972920386055518524828263264114919351493965283573194402808131200971276134487316780471092685650526043318794995872988586242747848871565001073625395411107628940044837603163561544416772467079411353566017138303939492041633241990703907002099677620229047006281801638545495137960232647068649364373320739216775665711749746867419568895331815299174825502046395394864281491635084582545340919477359674023672237030858833078931468177454140875414872611543955168195883495552281484543591219674060907756425708493354507995454083248639888217980051529707563920319514841900851137319168529762235593759808406784848777233167259897219649573507330091735884670331392572629507821759132617724049223729570082478126347629494086916096972120037264038406852528813503604333067316516009890551812237751130992778529257440378590578160652440478535149843341706974314388400789546537227281297945732563649911770855308919360022265272149965668438998905918164793907242092920966876119212718087752339160572228851593365872852627370528417231664774678487401009427503990133952165452795811007683460339686483928125472604405395342544722700422534229946383788551505539781283123862007600053311511589993431469189929778002161550157823076791599071639253601690309948360673372094589355187754180860418619926501210437822328678310633290888996242099901742277529709626260561987569984093775209341973157508885002336292009278960906898045475475493993009203036761934079470287262947831027255372927746152035183321654724046110242378357877858209389074924576083262366002626634075445687266532482299853896693740800633824408537894975539203449538980956715058405198970177908762363803664223117665763645834896494727868788017342018702611500052775170006401675021148996958853391486400060906887326103603598807426748275280335411429119530133444170126767244097911570069484679317357982993231753327463226071757514654296961986055806803238863945550349552327530895832703110269309370814166404314023887916632917311071714869219690721301327726400272645823596594204984648475396871976048930412179851846024740455025448751307072208274808481536315389588190061617099098636711348542784368842001113067559745541689000947795221509131097665230398791365513538635904677470130642048581149336058970604219705533614835384917401490602379631949652799782325048838133468889253896491089598286383859793438064987132493829855388999373989500925131871450625294082233716933459060394923098598971388771684104421504858961410604183061858671002461635134015472350806268071547779224152395233332413275671830532869599654984760263055341626286583154604150246286729073633130445144205606742460984114152001036473699795057843188135524755655523992347028972856558571220795820494215362569163632444276675363875269290717030380569238752654670252102376841576233401186251442967661685947784268609349663997980864014027723926485133230583729410546432544379307356793695749196719998381848556974399552759630424654757773520855223253363593516242041307275793176985706365751726917684899147984620031075410834916461906151698485858028825679117854062312441377106321855711387369469313966130594147624146468712742996518715691682698458200419669465093835884998595870065939676377635938991845199538803548606706862621637880785699356915199128146894589146233012477771372812917375045205602759137358337799843546077091380888852959434193170756151368732426701129182763020271111361949348922658880319408873082400535545392941971822332078384795919927736122426688764675363008661096793839273518482825632734661458307783727338464492332050844574044684851024819078360985709800699408942198601022673501496536437729601621358499998460061046685679301144953246077049365579247981115615743349167861313353610932067576192739072488352985741081883709863378737558782004932301312938831948372370323642026219589776761466384988190959824451327101396455778627710234876824912501413602579036376254785744216043379823941093472519467757034352293088499333341742251115012962087117122601442891569255039134463880034634484437102711584572305397315830536742526582016786610571328852329092459898786712562585232159306642989552541729259718513253507938486866363335642224304661481047254237519319218556331105842027435119460749757692698907782005034590591017612829916617321571639188630036758959597232947521519969497886470064825678289432501346344564489898250741155006618754422732983497539173688843676034350050988179655005914369295177534507103915577512008787103306925123573026538644722272317678117715232435590796150172026998119413703381918482144319227106992814647294684039139750126762702160151606293582196254262883277844729428766349485939788895375957308993512243414885433659955222303350344222531977271772468643035029210905351787441195063366929830340455835762928020156219670175494987792766101273250231611067717504431792236162356772685296496420575982828936176194081540554571786024819004912522760292387296667879732167140531426666202979990174423997427169408696932892488780863464780967494276616906907913630663123886307353127995880890200014240359520699353049702196963131953390344436596742644661825734777871055385520669112794675831533879596992964148473221744029639592489423479698585714906049373233469718260479353331935351322624586630166190262440097895585179504449431628793207687005227944606647378393406052228118117552297883162196989763933517085851312848755380132008030091620335663809714639162362859649571733330382121543103100796609672857492024933209376349788563366003299047017805220588031093720518698932345345934836163147042320564371781985458726481054305682345042206431239899781831355308065026278877279659475878050229714546320782946606185347022216653040623407737253744900426981758013437854001473281699733863339987868028749862136291396854764154340795438114789707266012408693218436683096328774012501472576064418548980501424605407349234903934691903214475939365117280470778577570356067833973765576012825205648812535133786995857340566220606406394932148576411486742453611248648769120160486514745902632221296991910159162395864736463398365303326147795247182129145631601795046209384985349269913423364047221910293339321871181362397427600034389400021884821705363471209607005650229774836118512449091849024363164543925660506690932752395845572026553377355953805804033170601734328700325714143985574891735535764373499158482766281886882954539060185128494540298570946270457235949364128357980595591654520567721282338476206028399754220823986674806504600188826585485677195073369095531438340611903217368547034203280064559666221201093414962172539930275888097484826453919072581529083782952513132224426813271713060382038753510172038374716331530386727493709338958322164989722878265438477047297726261372945422458526815330302384224908842537808267552231146543990628975160462628004173527441981185584334837515490027329064162812910570563286680109434988509044129432892846709753585687307309646278920766617958030291803570377597902223412502435735529014309008777326108379027439543171304934992855865061023399013012425895726543706833307873382434925184944038399809669900779485940126267248157221949204902296243913181257354726626104279898602355038112608408821272986993280174968623991013879533428142571056190776540754184233138247072588806935020574564983156017691342451931409398954748526176553550032677372771876051263312778580647556795451897142863714978751997123176579469423985054680931267718671906413156142046824992847289261359518267889869473862768069835581433833025686695590587031162448864456376767464548796427323112281518004442180563441880867414280892174944546562035582151808787898411956837236986017373050641066703257418783067772369865982841783172923049090204488951166844031430107799542669571056207840971772039447751925465979430776513893995131403871563277849049633881002950127568138993143242597427516575517621638884699030171170077794343698731819949417519320141980866234044409897464368425119862154393599054479256418345468044317053025895641580608225737432623480714637406837748591767965401056384620726494226301556452417688660543244755404080481564243877715824286608727079299393263980015846906746287328242796912762169858425561999259662534456906298920765902360029658433421412830987319118630994261280842541247748746555762078079331728573590490642875892962243163469360331675656693863983717790427617293540423378800460526854445822236841592791604335115313769420257666977904624591675011811530071469687741572933464646351755775192528600927069007412137517879132905999787021819924582262611810975303099701297577273297978117021213090717742449408278497832276804243053144822638697009884400680513574729869852516147418693000982378849865385085506912627776470098180317794868244321924632506026501371026065910924863312181229268378361170442499166590480259254419857075131929367238877470763336117562901492918673691138181053315659025585450977722958994304119370046810239569749956275091619918143443389164120096337192581472138394268022071581602762351194635379886082740636914576015615836337342280400881455626262567044959213714446392176508154256904311517464925558841457105528112162915642580570720525063184487214110606279688931698257557184096918116660731333632064694509415421018509435946438956947666655234330041812471868323941065464538713948355660100208310062927931210674166320400396335272837333458725373590892657463224405568250482135831828233817527216620850610245555303347039697182474815123235525385345977271714559144605591794126367100218026767983208979083268896915038143000381961784838932513424247798327265475134330565540859883520075249308352456035362845328585468116498983496487014849584159786578681815982620806380388230450303061658152559541427072714989544098173892115677452063629749733765620668792932016180435788746150396266618049144915136827355502419444260792773670867330344836824224227250634130911522281395138727446274241669308531260987991959353443870077724806593880047445187886991693696415805680363708968136048995302334983122106368127681060848160987124081465913636263675865902849475496368374201653533308801523278976778394438626167528386342003992915613844170936435304151622588177782541597794695033134408490143837725032696159808442693032607410044245292044520579320643033259290008070207188258881237831965083511370092252241508582430270065713878105184820113512096036690232343160618552791671280850082618607030481419041905213129754185368734075464690321910702583779560778004448824054088859393107874453729321185127422882104569599828101883872926938770131962992924771711710351708724050263152070516574648390694245859587284665610285386892647816096030361425845887722978369488807674394273125903328781025903841939336648128455098295444151464295579964896569320455443832639845705791175223902165173579894301157277384680078778713759877462815108028146944686545011015234526661810029758603222123871886728842897863983982769651687911009436373780678744513353007821090593196823934052959486163233552096908221847308345080317338693271160455947782892086168021006652529776488369508514564288380634297902577331820748911211630063601788182743758070053069518979873209350754074476101484537115127384231765807385933074846606616101086020630140366982040525667464908311788390042909536997609681848844793859665572612931155760205062676622368833575426518161835931243323680161502782386094669462405715359565260930731225396491984581097221968276493043867041986997229098123618884521760360364241388299947506683427004050495430451111497075410248348030454416119897022108602718014865212721660652875553557505939216606854991255741900499627937374988294984040920635945901026515242741824639130524202772994677972764018359015908832420184206209156328045820615656730634462933555603715396708089585007878579784075226740899640840445848569584770414303066330422920016227256810265563573488104489769485786192872014868878622443604317161817552060087618199364217697631913669915384231281639292562944084723472505486881047583000314488939278696667857632997653145192973561580554851559991226337250228420418255320157592908228622865694309047533727939448685661356798648746132221898860627425759555725904484212077453356337705071955748266495496917609667905843710629904946068215524063143273501792206919012417055131926976257892470766001329471541816067195478039651678552188767654374844630098961105926552042639098104621218185562811618198311105803042459936900738064681677545693967223465919000426305233105916530585448573721859314606693061282240547416557334586412357498548979887743000801021630346087283195524909645176003557248376702809806707198649251306686186284949392418975030843439919552023393702102494232806643972838606599966714660210312565986120715671600969986409498820396731170885663527920350004775685109771581440700283686092702442399790421640132450196493965058497453231128231669793876222454306608065890892684549967293194273264934013719211683206244235554709868075669860035820461120774824938139740980335899569750313208198052977757398607147175997567391102853324373158175329551210095482562616249522204741118642605559391691698149113547053112846791692681132660433577162828052959144332032978556595304836234839700697248690327653699018197901529841173873151835912664654216700134472396704688642251662772862359245225790982068175297786547155713093712351929235725804177373325010102986476756654446750891254982039671288032185934177381912152725998354106773880301024731687249538705487529402254761005892456007832212032156031256980442104405626159037514777659125968894931796957618527003419530580310441541663844223756055643381405630048247990713203201835944175421291588635766513472192772764488799341768617937062493280657012590183871032768560293415493271169348580275638696463291031537691203713827989135608977417538620438309705053524240877689250944095803686754739562443397154651617543531652018543442579322255281969070152332627965434326253264304854879170616874887244074282706471534575201837930486457847937570686062252411677759628587879728810355068369364777832361947596220427141253830825530349996118435104345840254482963865002392878363378427112833028200717236450387291007721182033928420197645394181812953716985266288110256272418564677662136901677492878402069714706536969627574132302569087674834855627064121344278991224094081333996098156953124930672941487248567072899740488931334538573706699119927789341973859514838266398040226790531586135310759285073421435156669805745160407212808800997572002005903863048572145925979468736858545918865838299928983780001467798456377420693491749544116594373305709502979103139304912245461788494979353112085739864892284641077491655864125490049268328829593465680953425884547175002669654029011819983147918367001801077081152444807007386503989516604623522526886586129549249361145818682734827457092623096588766772377561708608786399261409439638289949041267308084674101157703796050836519647103484850495227065145115725420297983905533122091797983380678690214365243699457123877065021815320876173587267661006555494348979107852846371493008581302256712680320098573261437561207738364029684722469473300149678336062147683626889443823120438649954580844213440100182980741066235675443724146696460565736344445287237964808500311322556450550528323390382615672878698181882310252131008656445305538090864001796928359384030983370101587854111523972093747715353062834486472564368248014731410605666764582304529176081237588956201867322095426641916134494142986357278618442499533494977206651877967209304922361880826629079451525424524147507539929514604241954116847908399245043135818622195505555461842362009355397139231433767923493201840803342069712646219431059021325335933376263944226216970807592288635310443413910660506000564062537024498727578007572314089147991008786669498176188089524737212589862831677758587495538214536036560081883031050158336914228173552529065687918883279288053598168171464516061565654829769928465032211239861461812935160298484604532925840088616425608540972614859108552570559970063946864609018235787443469637805828404308801857283637897492420226325623624360599521439063101954165232151472935022490795507380824487668674047498726351331784875063049555313999938202573504011988357921148410854440794927921907257653730642302060410969234375587298024997953733665497947164064063891662109286091707306246691598820794883063426456153725055229937335147306822012966848000083112563194577950094613371597241116545135423443194673755105256619677950924152020334911022756948804025874799470641288978914886495391303564521507648452754059166482292226232830131946920836641700775690186774495083775712539076271045204941664093054061340777056815928398631795662902109524907805216004414848491532138456877201474373988740969895148091048608359424494379229858948493842447434789298268571181005685941842380029432877342589647609235736723401240611786257586259044565700100493050610223124211504863869845960567621334074265164797407953941433368773075247297555434044813615849816705968379910572019580446564973396491596721339007874977632711370813964869149377967916556182748032311323422383684296647539054612280199351193693034957084452762427990125504228970350366216822779022279182072918928380706599032660185300226321496020001177769609531555597747986556301780759339313709730689670298740665691356284351276079310546152044301930252790879847098699234335570362679745027219591837508026331291403998246880027466182847727671485346498033922659922915753859422856842291419606219442760731958231263586203439205211808312876922498869732929067926116799457276334068873683899600349224406056056054488379790584208925314955967789451323052561880730778724909048859455521124289081158660305214419058101957228732939311086331404818364706770966322112233085326185287593266836592059954310826386459648641292485224387056839684501626370151997682948623250197899251121907441086213274153411163092157056700995010540664812720149201628517067211563133018804683187792367335684428355996679592247518285261864443065183557881649610528918728169699304365676978387205156486427949168431698990311494052890274638089777741733285997372401534449178562676395733111388368094597997083489020511300681346570069181460131345798692751909344381753776809712953539940144142165557193226509879581486650157201064955566214905372202479897287931618312641412103482260606616010165178433264156788987722374414458719946016796307151724511000271602761527537291055867616654382355667157537171146959500650386541817800350714317661186670137561183261668966714870161991335812164310482796495844140598766699747381541555396736069800625371700901010902210638914202262867577275565074028075774595915941588769646926941254671388377961561268329172535446368451913088394298904955372017922262091215696017072261387332803842801440299882489699573896831948955189023744596354825434397049623384519449661253107551705577222479570671845872671688092753604654958977534538931210218375248920725052628202629594795287164324270178847810430990839544296773429810853108825168330601305940425385577965149364443740334616754101049038975950179123080066445508935037232770039122084932743719018019984911999125065939099251919635610373124665714353120711348023754056554376076703216700257640368521318988291104705970098535792126308464355916553455477464087180145942855928219709351946366701575953174781015746433810599310453716974461910550520591167032108777658746016120488761047622133450753989611326741177673674382510898762547426330309986199460688982590802025377975794351815645846167191980497231545650517800181800877664494668519658050184415225308445123487799701117478996874246218700339871878586150176846423699485084808597169492875874598772636212665997103713238096475727622468254022949825453442447719264617135360736883739005429989031069585153165420299997602907782428644993482439885878191813054544736943732501531775964378341098320222094102495128243649677610107749191479783717720391916120818785200449470329410607972644563887627348639870696921505874811262025506930776658995426155008333924037530134804369929104354138620633391456419206986310434645235902203847763813261681285232949460245199099846878834954803029706310908774953607555361925105371274609824255469490608069893415680854175182805108636017238393214842677707528972433600499820701094277166569460993553751197217419977707155422778134260020753113599357120026351335909809859842081927263125932364887579732117159092016782547902577602078631266965535400242072299205856327513692859703139444267756561367548552159954372666697023786155278617994342888336774422044615901898171094347981425314326009773056513713007766388539403838795205258072726036846312148593167281364175216081186113366932101809616053993750470034516019501395804651734825051015029350533705457147341128951885500418341430064839657975038746300479574380897976052618858026913128049631759776997089363626031852524964688203407481841613396963630051768260713211894985479394075671454917403185175679263653974092614166479060642633730793078464711311410678125367239083289141862531710565534891908654891117405722823407900188660397762933006791961814871959766486130611602777425820002215302131385340446161159178159492363723977130720834248170597670977788241886232347397186960463889313112260323683266234605622896866378817051991951587799767353148389762814387122908596996116445524528637099397848741947808127522328231500101701531147172955192028874929112253470909336303642484732570845934753605679938746341218760541739522658131018055655341828454936348455372397071698949516557273318378344281318326426266820445626110994469305740830048425870923209456474420359977507046474580759921701416976388614124335942180756563692180998246176788939442579766257159926325203745938953633555028237878930003191799415270459199706045588792114065789031824560029084904035830040412043247768272716749972474570423186314878175323543869089109501612295709801240328189484422627740350503043242973898839992247968142290865004700878925964446002928673644674017908594540924494294450147251594610198836679700522428538294105319807088663794349627318975434558756216113768857447690921582886861145316693280992882104807373243591245966841035120631058055859453708827492606247108898600803600172284150701277512684629944252901958667184116226187093506534123061729897048485425777780214237992369228414911171654798193705273263295852929179778430694027478198380157574072330627592216538947079605098771453998400846799871728946682952013810943844942199606280789431932697786794107842499366563173572821949941534059709306348469175027597375264186834439613900128031392777792983932607015344894029290541621267776706371754081576242305547611675009369202226496951476130584979427866506571349478251001579956965288301337273132119216602052986031827514800205459161569449472796918124310392312702330240976707039844764345508399028946359360912801395503347576971698074419060421895303184614407644829121768349550400844420164637056110088786263255358857785166914939685847231022777534357264990883664037990229670556424084172394380785141305836252341939860341032286775670022266425375141115058603114301481350651714015315054548565488362143376837031883874460497284900219157507066301618060250026828704597113888467835491701954476349522279515619903864152553541072832404457219292775037638048563191352607583708195990134509667656324336627913295982178215689819641858028109002433300804041415482170025665759511090342913751576391080225521497919219134394909830948111017242267648778709319827197200992231952318708647180151582133627211656405356463698183309647690884428405917848571237744806342249228493510955390484855013217604793189108467102758979633326058122602423437030094640675923869020611697478775007876737910583924701789051448839346073600558415936483730280059760466474047282889323779212298492834483293453661928740759091605127248129725852669610168741618925478985836621389648208037655336008541083994998413062745997270403981636968168624481457756657131350438795481418013419877805181290485012532717764310216092534939758156545018298147729039382567471160469500035440143378178199396154350260418238815354349618420929987262562071160607207709170556060136283301945696891536079584526553812459800096663564898816425723113647131662101411389455657826105266252939680333037361295276712999872406857020584279437422921117613537579696468785176865146748625965854277905080790117325903420568149154842460396244294843906619629067168207527804322585747791702142376127059154819986333456954633078031941175427981350169558700565794433715840417272626094038092566100502048294741498897323371558491831760011478908483989785470966252398010069795675889780598576855759461949914760310578058877349318331975535491021134430724697760637806194391858871806121428195446216113887087554465337882859406657933284699320679469959613476143384555596134659830435386411531299428578894685089168335156367919337792021156063949490743071635140631288709849230240105176195603411900322492443864256070778602988467253215682145645438850892801441843785144019959494611549447125501827509069235512321794495427359752906669276182295766083336243514910171192207899024518965528697524930210346618939793397675874950093338751521767332810368521311047747136692679226994474214820257889999343073189033992136054757310389308545506721254595529371830021329242630896225991016768490240606340683511962487224917420447433776908835037178733059298565103535795036747203031038037409090892930413132060115363766404181625056833902561066337375028335265778849045364587711779480017382626731060892679629515347200509733408123259447656568246829884286670321551115525287178797968223501000020791875490567059995003627890373446440582942337784913388798389743065884456606580181102671821823900069531081782277600938387889656469342656122487571297442340736749314294408662661380381149711190706920553845083094122908124118500832686732120431700731720761176589747589109434432066757870097409273279812047874231762619704170387088131867476648967009777690546903857061505307100346821214482250566800449238235093977004226913253343734467319781380919814130363639787381679420592024184259087013032813100579344730784429292303026619684073059141020885038900453653803920533027681840251956452984719561792097454415011389020845419876919457458830303544300890827113245982638756143620557598293431785911479910679408458894239447643275206950100379075256527642348761033610805842871948988331671806208874621788941885779965691506119983501492819198658429426293732757826411137565499924657443759780307228444718403163506702675042296406299838470838224915556303438730412065044069422034548405103099669318183580857296540800606058276134387686147280850651202872995869584180705299463925161884590645865370882983610235371979238783604512614594942933048432625463697363598552156743413793572423932887382737110267277851695003338855652745967610012742229895005865209840248249134287802270313365909689698183066341044172978999684256640600992612529791979483205418228554033612061295667115997224112485450793746374190092539304465890871388002014820288451262463356759879445414736920543557727073440623182429897308867220921983473702701090198556406136080037999349719979651007543312826192859827012380375629430263145774124944655315402207978971378549560574171081742106061645833435397920835012144511870800239267639809922488329512366642013615723502333990452215822996079497490920486387120695603951913195254045719825950636321031304816744885245233931571032876981140365501549362569294082192996927063961618567745210956767664747202554663582295841214255155348911732163928539968646058528929796023802018378188758030219264342327957011532643870241148713875459636410587119979564592237931583443369614276417111003508078841323218812829796317338189446277539219114805847041892906307284120514036209031255198496676359287187231252182924673399221989036235188999185606720815057118354285263380971399952088763608415897619815198393867920287223484087061040333592584448679922362969321931417055344982428347462141997215068422975592891724705604146426548500312831337654457221372043944037702364925912748026382432496368145520138486097402469102895329895967065243162790359179961367110123721242040401824470381349318213009518634691810688559176264647684704770698147058916285311272294687751332194547140571620098202597834638109562262632425097072351556607463052649424109423550682159312758661056574618432219637886821396351089254906972001906619926996637542779182909109920673706592508943518910152780879076523919396937011961447535278773580710926123999351847370263951366840322837812634208001996734262341353099204370477433968334507837619222597710633290785032261188479354326248015579313671325922360514639148055069879762521990840904406647345495415427667425737789391323448733763395309667442183417500249939581073565816612624563763314378398423514725642388748615327620023171243317110954327761169573785010051706732521117643923760106243336627188857451589029162702984778094568789683889408610142167020742982129775920691168798817819221283418253470837772246063485722581424270791089243233238552581880346191531249900027968652343824019283944206268738636161442667068968266581458098565637851593843681720396725578223352596338977243559310223882570262776482620123765423260976839869259244107940258380267566860419720931313089515208360572282464662008629337325524080159317685787674000258771204921671575449505347655638145762188181166327292817489037155215458972388954928727932984182138900031150257208904053773174984219403959041222724684785648039081292173429354447321112785930271305957594822019938501833226470484784598975415323013382958464795027133589485321835657768558474646677979927221029296271760710690618889382017029054793642628530782198376742417571980406410083238285646722094140636069457602044955924702409311457376408854619928458101891662000191896488702305465318035530401342360754068339237720273304048424862783622547936896711963669280087112533968129977288660508874641140592842249048000281725127620020753783170860312505625813222121404253680773213652616832405085588147888255401241613060946041205770294208802586783125490922200651049802848253570240904868590866028074160969875209461199251920367908106002517616572955286672308148033006387537306375252814303560173017353115543451226742671886944660306684793104332419638950662607853567228851848294214351387591201800016152956919511070624670453579946795227013432428868886073666377507562622954142618484299402767477608392363102972224608114002910529353033401825818208321079708920896617052322374526384369182276348769035923761711475219733923309395800681641274655950232154109368454040868066854578118465003261924812382479065801908559596375354703759858635593354200115746409613384566819252358272475707538683083557867008208078715018659853096144689343041306519576895514000343100221144637118820616150790419462934701344199736815239592081973984682200670270664006078462692322230448212585176270817643711368727362450734988335069394744458661688396075777355514945787580372301490719620168864172396767861782056243440087034820967900469460266795388562756216070253724943996166487124228502879749206065756236274492314264898366244447655747701281075926858441612659914271627826111194413077823572906978431859630172070476427255849243819645219851540762676078156399840393081651015419727595623353736789531592787637725322772231790635245352346341086293925054662305533310412756383510339490899628268734730992242388178286250229911997921532170357603282029649647738385046746232994643205395994862854459835812827210216596685243767365745274083732838132774771352713497636200776065660447838149570521599357281451395339272259177595788736566424238485580815379948262641626230770216992423727582792591175327680433960637262604961289838047486826565701709515542178176311892489260909478381033216407061536342294225868853131338733902955003719242309235689528016003210722861178810603680808644499906227815384334723503885735275169640081221188230162103654489572420217337985812840512307758210500555985711282739775145104023629280926196196895375996762300058567872198683188464510501457275556761277519046298626460417431658941770233337134874078114586084092353432238693876650659477066538999394293608498098666070404543427280679297393599843548397075445762096144061731978436147158900244541092465781322519138394112587671250381695236312572719202759253656277187590299088515029137984043137781728695975114047222532913167853468931187056069904182899210693970413522023654824381425926179214836410745437133896805395792923541499099263339286146550330217388441516424829784511164584500791620368791583383316724071426983690985973457174633921556241330386731711494719465768522433981291026716324604725426807752397400531487830345516972170287363666133679125066246704454834136176626094473106235263233403606827677839946867920403918366911714666977259829958497693147858150722909378567989994605154833385275275735777583234277037810085759552854447547000960385770881546219596012666221198776322686052514492202802468590063662814216718780768795175350954457409464471460992615063191618125246489351486632106111417109946329262371415623213605246150080389149960102343894481908300572534720589488381836157671224348296349624435662085579650924587222977390520733925076158056715096925930035688767542378470898294542955145296608918215945924748548199142197378870233563052657494583898809241388950454702437233209500902361176387639598835862385936714402243649445256266641054468848633690259822468273692012609455352365540511543193657009634077761719769038566681574943373085930930428419402366826775034211044030444892715236678143937805660090441769258754913793625472159918737005186524932417608956841440440711978641724030097842288518175438761907777065611835086154554996470952188251893729076080178375084622623972429942371004826611579457519393281615285508428160044683560517872453125816377617851593081799205131918654413948957765946024797400138760518808427039311035847414213672137903646079704325858545596113464753359698162570651685178065498909293043558710398959299962362471936888674326193876124639737213450870482994577544192542774966898076184992618426976686989807775832243421060225940428305472386508999243762915890002858224059928451499282270314255504085077327259654102689008956120781963869612709118612507985079667537000587707903783097618303774998655083846577265891589564416483450423558422006594620463961232916237989370216581378759860877274869237624002328117321578036930673329931619084565514231354006102979823597415326444074884154129876347478172205809111673278809688045433003205610565663157545541051294385030618738901219141401108904658789147704605185350568683835863183951973253286408197357072441135359272860460256944454646175041615629510627240559278204057988286915170451695070507890541310656246374095901496708592453965406702472870914601767759758112991927383471316693093793279193556482299298066967816188756135709871707813350607198820217470605976543517120962412885755881234313707589754900043851356274144403190606970788167897856894041292112937960999458518244980497234119893336145424870296326290260381384613676758001424940438075052265590173786143412704478447963568220463792885867645273324146140092259123308934216959660208982241589561908820186147154046644708812172110587180711258209460191559722755271488531509690702339906311820853612387171055829954456061927777056377648539485223573402326300376842068992179066001147227065051141931580593771039819768954761987191499906689285529067715319024529297803499423491385126916984987536025627989153794698641593266872928117833748699771400269233555177659930832987967556004739505468411569542509376031504185128130476950079645208968570445461595897498956398181218588225467188340095894037777070048674513898558766792732364723007309615404254749515495140520609571377597172575354244722157203859563100111857516816102644041455247473264267884166329432529966802412782307487959426077113940444346850093804000740421083222202073865544831395016573787312776110318592643456796243771391741532261275056154494740477368384709621443425548872225322269574270672643300549762736112471093586320884713802231529981845239874465082174361479517617292737136193689891197066399830576298186839680453176562310696806351663398579395701657924861710603651306071976258374834975726030562825903289724488557170468922407120147827746906373260936543193204697085865403436628905372705734190882209882908011906479969045680625358794138190741426634017436320533636900311402052361746258821412952676012525332287481005044836153668375471200083191003943247996844876489352306484155479840772641572160159299585189387854495690165536221930439291610538668804015879366017271850356984582672216910664581934532000287510978556938979081369951158497717836357629322209436551107779499638763545757258108748710081017266126697516064387852243285603616322772631366988072108366363630081633415264062135971466196149594071311135551528036645000300489767860134425448730681928344592111652302781378294865700371328034076560694429713933410655741526564989329724612747908093172338058120286287723141217639584174487672871071346402299069369439323637615375372323051595347067912002476569781796602231747020251790246749801648235192919519876556003655543062040600859207643176179356478142858828179750637950440798013549543091385580983933096698111079682002305473170110869673960596021165134397641990105020827075817833536656818316313181020188746479397865869845258335075737556720688514942411272054997601991563470550103145489653816351099410628439739545103704629552348630521202329668689911424999810416620380231803714423585919639687534760374793314734998904632317868216711747321039868839963494337415591210260717499793087535035639641666153955548554833590092822152851617757586120311420226938534547133376631029862507160965797009054174535481460936534481170493732082406168193985303518250660017149657907903697289036263024600082364375822864999029981076596104548551378435849414006820449338300301572299349617694758432029322892901117520830276845649314424608573794058518497035888131575759320505337520436471415003102451116342603482928199059259757555178222991919031263769423090923095038084924645423915035579597482927533574939920473640676651426313623653065353395711311787008331036779427160180498283141843125461765645736548856414043869701383822604070181136182294767865118587677858754704735994326568338728397848377533381780688091481049610027732602543819418633239964023126574785626082961590582566650905041154921447830996586053951187259731239542516004751178671065192913387905197127209847237981174565778657743428009456777413584048254797629354479071173248647019267303452703961294718547301116833111158487035342554744424658570602737404796682215572890818881965502889156965736104958627593172409948352578900388230871121362493290939037620030175827025262580598788782794769495295546383013548285097686205444935672132716370717416490265918597842614025433594715043157033971428341551267989113774993045123560125591237114640258506803858803070879572908754734512168261620721066606862493302290540148385688424257936537753932170647749679021717945634466338125785144820388050872933808431470214466409558229352008623885905158211929672644948656292694543309374565957717218581547699471939672675015629054320794723209414183951487409106476325171353055557066732517477136946040623630166885009845042347566494022876789634124642225513246705779339785055894900955767958586874561511916403803675348696831356768769539234785858619225423670383315374414879043989880628521590688674986470829426005596106452149287609283891005005619919967913504007842098603464258172364325393208297002264721801883508035177990268165302168881961557536885077752840159817822504346622263623158094803905509403706162364170637233727860684545060288208160202716322487581769968467309232647577216338068456111399511406306488339386964062319940401216024807532664214764195421387694338807045191628751808891752985232563509086497911370382375683080511172303710454053082841447536476093667934352497392948097925377059085082539461602774598264666771170997264479191826159263452967648455449437044732077417454391393688229093832864187014308880569623587016826423363103497774310998174669940428411321319608779970491323158424678698252140621078442526672188909983432982851403469024363074125828158436696925786109540645391838887247401927866906742396875937051977598858742929193133701256866688279546733357795129631446646854741982245374076096159855153513229153744572505908892382576536578099276628137341679293484771304645328835895328626114804073886680900013019246554935266455720120503748793201115352836221175409543149644537228957130329027496828607427521566111750679483782078660139661377171557447409664963094221381354665716048271304351204447378384867921156425792231898367359515511363963736526154276395855556640156658810526213686059137639480076162562190170354060229408307332382615731970394310448589676195707726632281223321499085143974245650852152382929536058601036614227395288755842401604022368056249660938759513660771630345244679224372777233136838068008700548006696971347039827358584040229613294122728319467184385205886117389799844515764418527557660478688557438359509548353960820368322247427716183852347824009624891338726765106499195259026354556888011741548059144881787332618074566024541160921065363517254376345738248585639844493448778323001769678601298438398759346439762663615886963073235739964977455374488828135785122289703457646033169757021040491198868409235998801868781233653647593799705419406648919760160085629226296461808240071485917759128987024659083442735541724059242232651784911656346644320717057690890280564679831074850717058125450832308747150012535586950335788003566544994325751886001729672185988634557457220972557319888689821813369142301290591935577741306085476822200511259959309720950040656661829844464176131104437031812326695265219066118325512664161325091047736240818145229938895019501049451338591916494305462912460631119559400253367598371387187108453707250451661744670060694749374705982588893479286862014138443969213457923430775016800664271545551977475205767369732860273974767967788594130667040092510172231374060008252579578684496234268325628639457955959081380731397072768314214386570110469678410865168129964715824665898842198602911387734838754923310108888411138082008771732482915232617701602213692495342416549009602439933730726585171154205522053887394274347889256004132137969038851053621561408907131278314851091553368168550813174011366546589786196447624875308123440032237138027094174936618855664773086311954525792561468357877116693218610522227426375267541644051602313356868936368596241804711447193158061753435038865639511798840849823997190446443193289688388869381876968326217808145866111838823106867258660747179916379742190770130935786917696987844310400209629698044608301240472897444684211016231091737883774174053522547418409995555652936490586362872793819564159681576894432462169241315480378528321031889665190156188165672041974830064615094989785963606309270367553174469792474072656813843832724699517023677360033726102164568432478388971305335876566125040490583749539818805285305316565173940145929561362198309485580576769683272889451579623877184669572666194929620846039795550966847795983900835047517392524612980613673438248156227063802490438650695219370746036127843809527036260049907108229537275605205728160121861709468970147442333642371835272439045640714684840233504141720070200544412660387522859796213083124030797067076754126607004164167514423260844820893159709052505735449960345585074369615489387205113309842280251240439619966606827095738020560560164434440092134263645952662698600916251334879147639423875861297976897190420701633754507350499881783189171093766423962811496362271222151115265123596465591543514511419973369475984669624538731176668363683052393050152493799588650529953883923589651026953375245871745494208651488514543973734768757435539544432516997037907515753489424742697752130675573080304144988593166448975437460148769852744182915754149258065399521208668041241702961537211075739123096007620294375034816230043788244589725038142025622729321583089348456503124660650944212630611711466192763054216844631938913498683631105250050957997879434950703427140233961173262323831808021030545066662302202978329925026196936168796116480636045456699279425575657639320913225733756361839709036199605470641699652200900601657232805099354263967587832732408672029782428304177833002026635621142154931947757828286141692838646105843604936518789599835345862305274322325694065479462121404672482471441283157842360465582312893679073133897655994558738407972105268735381708754673119880903297528483396428195001469104159430349013278827432411224372189027765737341773200843363685865284755179447472323098807230706311564621470821953038962263653416135172698621289519582946833921950104572437311685440947670054533552585248334737841182785103351540810761722049610201626347879329244697206631933676272609360546378274823552688454467731787725713264529227496402350378994922084156675188256333883355687818673617547324599420514217776801588120155846663033485020295308485423540904454408873290278358966857695441115670440699285390356195888269679386401640847909840613833085001377232479229748465570479258376857437196565113162252486819546081281793102471883579445796428024744118610321784824020169595774718382820629037783224313165671179062822526856463702120584917078021084058033898909276215600086136795999011594335127015372346270079315293025058504643441721916393254954845889056402265062231724066685592172123394837685668235100466643957063497470933542023476137459822301615395799017054156157003270669185531945842599588020616270118581687814497991240961980700126556132625178457514477429892663804141710348869778292545517846641736989394586521171704288539554709439836322901589776532811672507088392740027653103234173724128366982839843333424133144268330732482677484915727498667472857319764617607621036138266500391163297495827737807203343055457939388247884155781837901923889961652576515082752647166379713414269097120645205800893698373569933088769125717984094718921781984062731208144114313147955513114594631633726808707692141657370299770012220669526407272964323507762423484762247766078163226999914227622491238470194236413119511853975011673888351788560295124034241134440538042473806012336477758180722899251030377425596079878175053551165500261494464134703886935904126883929665855291631363311388817421098709144619150924983470057280040357449624537946779279244107276748852629285132382173504143625178372545131223209435394477619079162837383871829378436575548113541774513327226571310577729960366731418990116857117798691886287343118538291129332591835606595497602724278764786839360449354502462029840413642971203544671835790923321702917946684773095407353147633348185376816655550947428149418420084340464019169834217643573356208837289373958285147632714500628957138892388056293213837788398251930083512239331817594741032465508161522392463269969747153843275237973680521744422482376005347740608967514590616417222757186629165015307109383002462810550462135176967846063015697083957407104735407581872116165608191607913539823943321857956482768427390241825471973392619249072380792680439992884826246154951852875252356862526164605908649566322434643029586966608201876438966605413583761468950056642464733014010630692387796874932138406755535544901956552263310476457685491435604629825758798663020335428828614144486871737605583365751843234579359563704614435241602743035755664400644713901611476116649858265221827518079053808587425387621043852331415484656546799568247752241556238610490586836426186423030638388275947020994743921930378256933148192674445321048787512296705992573147234882162024328649838430329745341776629315902343319145866242089339877857698525729590289132394697477444706319161237084253719206784692635703844881495452550692993170737385066380202305734144383456776657130951614850936913369334176336106447855220468713570359956684696486549451042353384105544271425066757320047434323464781143734660874607061959799395774726659504746722866767957150673388692896259569418593860362287585107077191793149903754490101733293527750027388054017281132067442137982232875053521905697442462802617993944186165075512472947028671159298972323693055545266340010543179432873710634986791333166990057944361322586104145675054445433896906257911547739151405606069536569433531802772763924033885007952495608682496576608058565926176037271660863177170278952374881544340834901506119616550686532773126455566780250520273013751840823045012151561572714752203408370495341186224468480934716309704129503150847935692803313397619954593117742458842595357909769398867486407170605831260983462074380687820878963102459158275037807159428953353181386490188015630378638409316985945996277966772111630283867517520371690477239233370140041734461442290754400809358651333076852744918893693590459494964258026995877898857446598028013316569412679866938441599739098048129902293460452544942963148874711812566788326592913712980565835362771315867676442748093609409794195412925373249276208495744148936256195657548451683202995906308393155746544268128380929998459396923765431112808303914045921504359665130331979916560180059189165362937169489496534119044973179918003149777155765227743080811008071379147417690859939666165001916033568254589844669501082427741369534260988293620203640641693151312610010854953253952779315315083888104986457287718602509932216919349973491704362505936310234175699087892407681172172769095062924766923320178602035546208253681839905742070481083515184805697344058080176593647237421685400744202099559005517740889641070818295696752044620349851029924151278639758386489118767551817788775827601799472145493473654449891655117586514615671348370524408245879238213453574904656104750730855209782016538056337226345896849610010447105837551236796809009162778252441638355236583633636645959286143236443352690880135847323290338996846283196204329563836565192040340887875670538904123268641563330194007213870678633761117741081115991357481130979242052957764878760518242823215550614252372153961671750610707238420343101928888225742600990524892995166865297851181976351893351907949001833761737611974644881578840433544164940099677311376854146413088594262389623030823204784447534942603401405502269615700092951273400461728165108803953128310204908750974974821236981412431463914410290978468794754509261050392778992566446012966930046085364731852488207207878654637021905630097016975056978681011482295080247034015894780952716786637806025902415968473211796997208450940827409066410749994495939665136059199142211830804310561843558960626875397352234354394006900839720153065874078790995891446820553506755408097660158588335896833193605406061936266177183793519055752484607214581518937011476923170268955301525020252566504633217231879178493306612195273345603444049645247261682558063105721402949534537562288639563974928645878196417395892116235744406562891399459012756621815939938024108050465334304910589940065419576278230588069580662247031830741974541670382551305798083563324754444619128015447786703099851022969985605955135527321365239768461417000199149587496074545252654863182612758677017722048188716416095219757104424598415907388303899758007909539768203225443884933669702656962195801882038727809905758659736313576382362598503716354448577923198628112997476899978334190236255957703038282720832899283729379415879772130984294711122625225499130648173378755666033748913459422587413707435139445113843661313987607520823738349328522419221406616767570773620378972739552075458322129384791080778870339605388524160838409837005313160900693925146943810314763239936513336717051149683853872027040833161999309680803047046022512334283354746227917605885255761647256371813843163410566241888396624272170592360232559418652425160214273041640514309084710771054921728355288440227962100034765862337144548701507748000794086014280605882436854806044412548985112555396041400257798926189831807228552550859855589045173119898817222304313909377001569946374901188409453369047415402522394326902835975515160890197685608193695374514848147137592662620953303087242334736484004362333396686848222235913564998662606064359356568477671908838753918761022113915622232025049266293374747380355034221951664993488718861522639221709924995955376018614782930551779811136942759598056425946216574716533985335363746455524647232309851424534136562445064203134623546551381500689212939378119021870183174145540001961920939362239228983199925684114542985143965778664705667520947701593299908636314903226960259189683095603492048447074278715859086582490095447887995655405497906982473404918581515197618017347412068809959631032541304920295096656864472933233517483476148168589381315628516270538785201764743850667749448588648130546364896804346787563789960200762795857468285524775076162254973071752834154332422388035137390907794668364742807557070349064930388022530767041674618244589593616141953227946981554565398513458649345596894058507111916678068094269075876156574523735602072959118244588974742597922064790494996174870894727360203002084926903085374232410560114568669929512177062498497075016164136613578856246847877911367272274897285475636661817286124414415317791426891184089127434989512965091048783565284047160767543215525243993019003578309667081572345637660749591754792747626828522928352805050841917885641487987781056551780565982551204429348081210687426293651669125693421921165278156715849589012835779591988589847829954099916529154922386650598103850247692299628607001398828757202419029860253357928416166195862886468092607066064537950928322506429969236487360001850489619412834620858200978402597043095552358688485659386335828824322747778262069048301071859054915701901077511561832480497137181487578628059357125953967899618883612600609365954397329577200505967371853070050598384008318991459718997248149123701218355226766491574554903446318170698940508968236187280679197897687734188466983000634110424311330858388997878399239944730181533658747071290613301466581417875433739947113001522502027296417062789909598892173024879134094956499190024836832288020204159746177048828078683532030069036160979245915936996903072782687607367866855081942384049228883845334315431019934803467211090076028318964930828377386937119970896278170643275184661923609549632068811394065449902753757606260454251910380861102822432850727888433086267707636947128970696684489594526602451546457883892366796797042824011119760483439337076072417724806915121115419982480228068009202770469209963190066374709742658884103922692731413291062366970102613320561017501840093262734932779910454130459743943671975243802581631967836697146851366814388523065699020378129503791647061563449099634344190811789173919906765832571394146792671257284014276884296623860264938740772334779347039312735023010862006787053319314974467180488240095778720723450614062009064874451326770898804342629452546303923312491112582800251470043377117724978741094194098962758605791867361647171822264177043684354975402644266249685728835207028672060081185655141643671752746002772349589756362614057954287512553586400485269433280871852691550897349767429575036948905413780322565335618484556552724733234421643734035842233505472642013158523962934955703280687598496409749883884966309294024390223642576307118311815841488691196823998194572672258302903591601368842975123882083222275401645443558763307033731954565920695407506158818933378248164957744161376611287894662485983854994645034550727695790118153669092651204878863733647293447092755679657590251479942717586228936614035028847138810137950511879418585341406684883700596541187988225917851666323571373728732935728523867422156464222088082101584516545384454360051991027792095804585399588990617727331970662256014326084867611222016020799681407950047900937096793058206733456889285110083252719368891995136986044109628286306642017684213647030138292005173316998796818591551537603263974102072267105000717914241557588001454899534011032083234235561807155175189304714839737738868846093165676898595865011705156222114864578654600070987025746060358579898869883352056142007270515398928241466836294686631551116069415920284616165138880314157994985291552547365589198415957012173133849839994639627435343631319976799434651836131310690301931992125601221157472421662274332667043101746874767947410942728506552767778049070646589126848133800493140075752322594172578180409451162778088908062179180680403118968866465234030656367941266304731276399777058011646580240109033293077380910643671527395459039907219070846145065071704565408436660835731607359429005487745531863504144605341903708986250999847390072054894216410075986896400245004691515226608141615952669532059102326742701251186629144702495013310070932244618403646412563678609928407890149511470678583690594538970676683352363162744371151759805299681453399580358077483071521691358652565162337771530347852117768670157449009038663743649309877306268797873398547950597253097752030075213125869564561698020944142140430250960776877061839534418423201377792650960141293042251428033872663402763539748890564984201651877334509044465128622893733692578880094872223324376008072579120411476449465137797645078420361186879357013566654254531790865883294747317252659774992851994794110180138536131843529387260305278831305712431878442698774065031122886865887148452167944673565436919315065921463894443449883609519173845553644985033751676752970527677946720488079515354048460423990319214725552686003395468785994747198339056100746974341282198672857204209172018385479132135358055119082199493188829745054368990784370434883830549749201122276861811880461465630575390876387857920256727817147575143858431710844910406028606875842381698668419081476106027388367233267823300470102047212196941202281001604728430312567470226170272374596242667333690377503285510351402844838701766884156654469228912302025291853626962830336749566416977614797780794340826298421804299552931032719965266186739671453857020522101149953800010777599109180208753018530411629934941469917603386035664434109093642838287304664645130785873662525139838269189302526418971397736965920679268953839411931980556378801929576519071528236033637526956956977599959427377828524308174903836115183601394938573176829505761213189509739796391727958370296201585014990585778063572464064780059408841382688670558769639142955584544512103272105505910922602863789078543698539128499729997610451401159492958232048014139880832977322135684186966535732827353070379275545943082668431228214251705458510637612296812983023986506434755826094159653887837370328450548486646972657635239050277973141383568350108735998174225412093284310734940516673310191489302768221882378328150634730670354011438584408931084717480253245808887826911972506801831494540785602250350711482286349857171495128012434487253404347382369240566041543511392105290200687225397070517829898172804032037124687393758365052837184586356676362740432820442336599786039347036111044426538114877571232394949395469866732899398695841524412723561208656121061542770893620834829684905381032637624169484543999373576666269315277733319658590409571643441967261204611449033950117192629587951551149109941531868620205601327611729051660347277878130751134150266786288943193716891817085759460877663300138597980208589215479391367907612605381759292763374468048848884748144832873945209735487039199802772378331673657092578746049558154552630591214192064442861465983983073552255953255906670172582377746875772012299754158985125620115434474063494591388027165793645843219526772234662404376706286124990143873394105723788772471883677185186764673637848962242169365187485591175789483006325922120475940866622370468619368342585263253489766860320209050030061954105965519997316665098729313261360569623152652589860095932711211774338159176371791311477939744358061706220297240978959798234942955672343790450415977914400247831787572478576897039393214306244214513397093035667968853945099985705874522882799918290415630355702363631693801845272311835153522778018583239747334016200106257875343691625253620442744497580620050658884594409972667211846625230562437664736219756422671386431582717238804766416082081725902923675456211633739615677350087775451027228184850251758175129074925934027729888921418400215676518179045465812438119401724151758050644187614683704120813549977970464531465115877186776748136245694647294934242260495136833012177948048890349253078893580458804812033605991446089580277438052810850990603483178079124132827322003759970649101782945307612681334082445627983642929314772991035295427639434302825173380224868666363779114889225508536790643301950502956994792537679923857825502607967832376699628929618220960282922395799804607149993739097586199983371624077850010534754244410879296757891557564858344678389102713252231073397751171621634560055197088718429273897573893726238520132642035934491980654739222623615622320913241096784975936332890346089889632715452191095978352479809635202027431436427723590224290213350019379170253337069058447014407210042790150025250827099680613008863293007582599731675780688801304935010156868234401773565326675541160027504837549031929623556600624415929421312290852808208387310842967768897823529631901803954577492554442285452085705457429089116694102948917616809888585233875754298544833637072968475711916859062416989327203926820137870032795472309054562249570160728288350408926458848817883144118673092144850854821428154949495845070900787947984185620162346847795191756912614897837412831081890997571122232813235377920872887525004594400366572942793409271742610755644198610376440557870183596423501892414760919714118238623380581703672040813860191492548551886876307149192879158959399363256416831870222841254404932225550277152262164714269277587987589776504025783030962098922133145217086972937078366036638651393109207859954005945112889668257163494588690811043127223160390269067651605424342824196336906146950596951438801048338909823377560274308328687400544292782392523408800131860032366598622782367623942154254340022481185633470064150136534589516004598263595761267980322307490058523516117817811669775919970608809387827031367571159050310172045269993167551277894287435837637365479468974986229590667886651150013997292869375627254332774672635579008992949528842057587762510208759487711889296489652332489557923212869427745200207910811292717451075469313087167935073540555811961607274663848381568340518816509278029504218109774582549210030369939871688473754729788527206428029786817235797300969769767253166235810258688220304120009106099437407434840474258250180020157373853298035547508235047861383937880318436289640597732773813644528632958003246645676862227727105817096369577087365061071546419507662690868857808151937142320129945881087634794523926212956362822599193716842904787191428370730171592849485041306404031062588005868793661636389058316845572406599569499903947490622949534970510890773764253434521471085162064419063364292908603760948257466589051817677955189441078008365509991140207235643455180800147133062496590523972604846840772284868421505527568033104235729291120927618905292050973675770163356199364851742726601197710808170318976774438421076530896504231573021802319663342877734957413926521867460862493908251702734977448664296214334570502125688067664711728899553804322750725703582127466509351752440620272799730973952792669428687625506619746722476665285942119422275057713007251116524897606843279474786562505892257621718947207138338237592286605067453482169877108638429386890218114575466155006929942737278961565218169169180216543099942821383419420099144566586055053996358160553477231988824082844451822327170925146079859928454906528728408596284988664318724830545124109407468561194854569168961523585879890775253696660454114943637369610431450397391940355889650290867214885379821012628087802441944084358878150809383188290635177886845459931150725504385480066086998024213048167050124745719998847525025150200342957232506647015576818118862494580087383754400973429395804151543376715379320740671959112737723567531687358598959142307864676662528732853090059906412361489877199235213118712344751640236665503559980493450240594430016293514615719909641329499572762952138387446141228473458269077758339028749606312107714457568787631044631270376354813057524796089792356425313972111356490153888761172782768741028410482078207847660719590023072817837896176816797794329257728747461481029352299518615747082541091426095839828001348554382158060484308678788475597475269067980204025644485534562187009611745828272719242968605756774202926991511931088747391305288849497005755689005049275662107243251821383503862364956074164877436637038903457011481244134152517807357127523010759730266270966617029277621706862716659127106621807598255435373300485419859659485799731795312250525851086409881913392462546456065843250529820475651836934907486731851299650354242245123187074551582225997031872282441759076739289287598283887227780947140099676226348505048531242669768585146029708415408205881995015525697452149944040102322058267031375567197516795081953988649013717087135088677351458838983476499283053572405886620892743307636194308842689857070852100323851150417553463600246598031866500360198875427033177550107787859392507384678935627314603161605822849679535502040103816683136879397689338361984000188058625919033009210670232546751347050397131228260193922716173019101721772490041284105000914705982753889554773685623237400954699538570759087542323141245960405987773229083331405108312921791825277902473093205577537446997799852762948904722858285232575894996105535254483651828648537935229149086264123920607333847041903465353245805528012014110571946494049211412463438426298772546743130695752630055510081416050818554296469104356397626396794203675272117816996390430096719665493313601219013193956986089685559613281971798757793624320406136440042663780343758215414730476672706653756929278339771746250546512660672327244917722373945210082328621583400560918065255727032576415407324354162521709191526690178153937168282445097749983598999885315718726466422256555752508009558933266717941809823289549078058517080540912039703531145439759728650967683372261410643937711706726898909574387981039059793030536760489561030503826668371756123731560529390322915058623024375873336561999271425421619260369818771459471408862925537977158024735626834898745177295787175373334376366298627691037021597567181816262632506719261096469727628227903619627003524702494297579018425611670480788622729575237033635648212477433641179572247929443311720708789276196008953491077956655416462316467701519603056970242301258044553479423839810545619262257998483420638077157799803302027015533185630239843354731001759792321666927837983966523197083862210772751790316714054122467938777076371527478650145158267283227948814348385696785761080477094322662025753034638306686996989195193916939291593401250308676603744638444486451200638968361142996821926400436795951399441764200564799762705132674365125437796886544079288918536500934220841991621942707050225027473355397915888265697492762662144570498856321816592359781943565798536494098331753718807163854400043661020376950134938948487272312906497535887608229524729494431906489645369057711946485783505843197485828492614538534869074596961623282800575117356557854680478447438976667440024408465456398644647844688639710492415048006134322537425211771868223084477156041310930155525451578945107060660958309185539396574823994273188400945231895743869446694413680867122707711085614725529152224960691096605573085772257291032471314825405177560727315161917574639704497062121313316622298073106205057811433728507093919327447368031454669969044332198881942571950009665901360282893211455909569088791572787522443331144760086776565152887085863716149577225737849291527404374781853817301537736600317802981492357529631654722521265702030630704269989295079061295219426270979111517016905882898635233592142991389851778371954721611769697290630838808052323203387896998647866729510193150433874597238730535966972895551275788659821819745644859601258521900701270371282544440672724644262850614960666395985724731799798718055228041713714722163975161438994032862312067281601798345935148756896873411835701216399430172049840247015354681077308761482063780494176362981699339838712077410143536251738198996585422878311626211083853594067837163777154486057266408212369880915007184945121138266456442900711899171003410445470891855146465221033584417745561700516153577622631664945229446317050851455783897587032896281669064548268301736144281961411806447771569203420374742884585030980773929417585391311161571062836420590024632846127947352522952523890002817089164891068922837417254429097248259122716001335990082173965442497904452970559121745535823669236492678067028928139856980897648740063420608055829060506431788749503140159675231198147859598213973924976670921332570934837235941961541285070385236308389132664375028773852580064816362694998345808969483264377396907156398355075214232519731983224141081577058528624084746448642194701512139273948233546208961398894575063413801936999230746007546025664501436089777061169124066318760560021945904644159851567145273983041728904955599644904918076874139718206488196131663330577726124293088590416970521120389403874120415329265961203825506127802984485859408610588363272175430768426093219581193460949232936442470048013502465892953138599296212131924189830051641374479869990212432899102713120981908478364294626035223533153382793071938970464352001972323255153688573357272139030020661559616207149900111937851366864676221937608355270464034972642398433390045292488625517393856217919752083043296775048343349124849687416567813485405983240095397461225427539004418182962283760415935892389547065133226537053202868617872463539922376531837376635535334127324984804195015507346063071623171358545209657725310262723040687132918952857252621885583376708312771137020261628232006566127727958282089857713980156586124194452496935206884076223876492373443184138416662919469049502956561079396098095988420498874712317947532855952494059779988027620484441417497781767924617835835791869865890606019319251344270478834922762767694955790319944798517485236532082045984534311170849174628351075717475012995977286086006981138464348910420382615833838517671205924166209704389157485208889460448664818204694872767875760046431009301752721205160113781686466178416148999693295766995433529740801654494572639670349798474371944582574582614505105098956974290921014945447416376752063655061299940443029870620367494190513922476964518179882285198880599955453449718740159136434075169298117188869172709740031600384169571594265248718869337266144406811679170374003492008440560181439572286347210484866822134458653842202690876199174558648495963635057492016135044192296677442568680882391643661030893432805562759799472015625508001056230199887138229013130318093327995070172824494109299174172626219142562439187998992932664700917632230143934618601702041362417488440866640090365357988482771017487038169869938825709616702155683410896364935581286197504868773610564993145825346881051702158041053554501248854221361479760721166000756267205585032301284872670307179242534008524698784056292752047544784748286125006688591091283677654413640614621110366084448500190219735144116173153181727654967593429187612334734594493605057740285076897979155552570236644321962097626802471823875897597012787022979477102550601758237740329376601230429114296574643116180143222768557460105835297633103550459555902550421238865572368318452962996256568900893317659549947622592720217516980069190669663676182281650266793456504037561482172294202483462049451271676421514832966125329837433046235106969031065731688856453487541101759635831813268443850849516936353406080894583276875150703206166227102568578180671992835583383236025143444034384888263979128737901461256426592811561287471293438499884815169560871883041742313394640080444993562994122173810521493344861878027547477265261822388753551410143939715694976060673748240543623588133432805196802132326926659356144257286833742207569202598777077857305447011751490621148495441034631401339151188892495215720584080905156122081403980067478549203412976120516030520510040377269550543003794554713726783170677437131697425525155408665703867808744938845334794844156558882603641704394556925376461168060304208963615510897635395995896656829060295703342858513037537404302361039819630623503393663575977844832226106048740657573726985998384127029661956741106275546369480565932250070682268581999499859518807279973808903226197792360828806442568275046159867724752926460278908870274623012175767354069436969131842623884185373660878652823296049693105774013307253368648267904580648211025016000723257056188055706980437889958010148330182651115753419310839836247357522654205759742514775270307779856624436838000331000553713701220613606374464350369511570778838039114787517426203711930084441326761851880887973486503069960396884599749810046448536839136091534542782020191200267220350271300500709865926228394409483636369356916348984186881456626724788627755794063576066550145687252119211470451441414345481455620321877788760205016188842368894269361984888448343649625178396278356446276264349348428104493304395726817125735098640308971097837454106552247535335425494776279384046246407018045473761592841141764710779904954068455276966337201932323259523659554826603809965506920699225157963702080109150641887538952726994860056738497473390005786015804993346620941899129953667342645386749645321140246419915759131556328694851595137239143533590823449776429176348834265885808187102074539759389327240194033023462428549853793915096203994136229653426847213239397373720750340596417068719997262056855529946705109054566207989156239288955079391404761234208549688989277793812589367238608515479923890914480484449927298281484357431178329220911628762481874084035149084777834094037054384774996772089562788577440711461646529445787108762987798191273939405661416181405214864981485513100730285795215052684109689839140031535207844797460819495871176058116693889765538425309234109036056471067623892198539774433232596941890327597518841188694112180014950432564061684233249028617634866051973961472484628290252502452475803409256312857363935864891336068151531139568265333402699012371750671339686003405435646298876573461285834130169263813960031663107546024737957475327151537640704882119005207647028451784368567617118574391662457821293899612426703368810644834481111864091191577768525674414370944781377721541826755537188560211203898067583841458898297497715942545666215650692613084407126496648191778315496347156031812545999826892593954085748863123001733192175330388119165774868722438174382784646180580205215550915384001428246031609395117141564504676791118924206001503383504833746713952484026497593019852243625501335051448088545016491551191674383362483359082703590096079328807018086824689190112034506210719826776991226001761629875120580553246167905493083198849754079145080090693025344040824618426840540397881398107443753425031802976259766533359518370672227035563020717761538432743536955355153506333281146502545720288614165113547426944588123145225542232542676907244025449827936321540584425957650853589169103535935136218418222715550436595923801228679527411435466691868055596125177651856962029628596292491799144195958746564812105736996977145594789488636348271007569878759004705124696256086106136810026648486882372091330878301946982316230988331808840901596232428618058821686179945932629534607327480986445075889130477250687115186527315193894802520122834678434039041671994504133056344725716481441367657769853159940092936640492301855176392396978005872377222150200682324178830232014869051375751340902668755952891798206292151107508890579236296610027737384186229459748915248602918223762741366795093582901642631383840369683884140887642046333490192769368706634642639339830454503212145950882974766847697343375872640231287308525803930440786758956878486724635558523299267553487865241806670474462292688301415352877341926935278990222760085270845240826305190809107012099095624833225577052134955978267935889841053468222392898944604225049444471979145169683524285868006410478432688566282749836241001115849097478453836984143114147945983863246199864912657693263931863702357029922304510222095485809323118334669147209644256090296861738313553527467306551778936676748226461837095816434496966791503825094235863036917349564733785009171346463353859482957457630259333251581790373812053447692849771105162603327235601041724240684116679326013249908997164998167188022358319420700572894385823479801458724070668747685049532525411395211218208448738558015951756733696083696600872697735087172758264532973618864714982926266300495742535283200792538357209669924476325015308947888888744684727723809222454475167568253230962000778638678184263125817329336846849260658382109430246544329142496120021053433777320208754265540872512570404202638857838498166522540247473573325727102302348374982475880575569095011191217716884351040816921884452130815463502632133821648325984897267985603647421922291201833231761062539687994959387738767223284102269172353333822701336671606870788986909875862904958238053945183608254110477844058966225433165020213842411210572117125515945496192656138279101591405977274925720601435357395563539324934289864818240170607724383946562138484164345906779982774468502359675333520983155416113795514086383107256020753127883126088955950449141016389287161142118009054749770897664418510748020369780594026750199703838662707726192343658195319368994334472321120797287741729048206049760032850494042710745507312510133126649940930966943431381968699057606962411375637151385556476144590242450482475424805242960338100611093364944593138156798016124476414636322208311555858039128221301583879124810647952380959474350594348194429143409480998401287884818535791537339882022461754394238371249204418578739820987316553229187224680396127567223480752264313182305614761220728347829373502815866670587016388401053032616460828773087085492807509115444229943147194021090242214833950022740030277933090204233474476836534982728332033521731942413714454164616912284765807024091396662754689403750998759194763335302238516603494162775593607291733293365926850860288443297990274657262444302082126030821630470078737969902393816799246718044805301018212016892646461463936606775774670417473162208315177015062476322080608217480907728565791392883018866494386572546181171795502505140869977960397590492863654086103712137553162508249091594554042751369015517436484681835053465345506410500229585775279060932080519255745677257769724835404368700849181958902393035382421006268245689631604842448884046372659668645089112099926129486869497271767111050768161808196634588061381075635144130204689450779346153477799962319630976593580138730887929955207724034359521401504190992906274079680667848290781723920851937952378907956500098432700204653325036754343745079836530024776702475077327206056547821943212502456893262890497882064298461674418408351845772251932707085953237100641946382233173535115579531457354107292676868469443070198975474661067586052026542219608009127906995058615629274058233254374930883005815199987269866420913264347384723975443848791096087545165561706572231009773930982977720683555273840410504315278978498537858328747947018179787061473674577764301171348789155762658087539791042004394437489572333590594968831908830088245602299132282982179278914920762393278358902144294427999438132722297537804406874151679038138761717463155203621968076683415269284254502837013899323535456704581262482005389145473108367368728943147776863472067916174026374510303705424032964858064912619887449871468909534836021271620630998853069411354479078304247734218816668923958568852820783810027761161863565397290298607536284824964593975033912083935235332777795961522357880931285081505261175119063963898707880680311239951733400228092110209990972400323225371130227448833756539042001279223417666789249483288161138673852208104999405870794529046784155488838384907057147351524330585511047554778776998381960718842376831238757365393059026280766700576265744436543042853564342689223355582613885743389270821144691919782981626701172503594817142677904165778252673132669596674012040154453801211482533482317406097958813345657067764669559761943094814498870620606376890702051007848525844308044016479068633386347604875940378899383579721895278267409602629158867846696633589987879299419336964794575400698033335017149309536895350620865066846807343554401005793733277393632810756086185817181566488763783938737679513498370687500390829881700521796758006381206208638907828574434103846186602863502503960292279769416146603747805323981784962680389523412073998859191357126065073527463878211295724468981709677808674886615153316235553233072590271069930875837394911873074386756924272269483523534974975232112705579341322101179292906875788345239505106301546824436371672650309291366064028550164222714082810228237668853037331133307823675937939370254580547328686691142533424431488408264709283002379952194288935453640347583139308893515784029453534888072261707833043731492542212227857362212107296212489162161499550485900241521802407878375830279264796406174415000010485820709729231004329130983752743813699683244483279850484880528782637732737266294755425932145566852431953270878954277418313621545976674496988016117336482453703813543742501287286021538258300654855850423999333475372197054283841452153756143372611805687271294127420887612890805622737401306756839759113153185019152364694604345776300259310097525971452023115729750096464229025229030836758957699844303272124550874920188028852670329887393513153977245877684457763334577968974853211534978101654567140070750185997379290675491856796716516705737913217989057344556667949938243507547913555309423477859840145112445196297570757753844576959552213844433040963124826572649264497053083218848779868455925434065403533413876065122408346232232461009123133053200195080322794539384944755112841890893298358437271570317789312918557939549019000073989080322710762963577345594242668125155949346717493367919823963165420037224379059293019182637517892721818084029833305946859669143879139585325699489391745826234042972732179717677803948106571535450664184620001028581556600037972272515474311711955129678263841810609375167387393142547571959068279788839538549677785627134312770539394466598289621482914445092800840366890431192057895738911477653038486887388573314540596640067110488498541597027139059833530800525367390270582540483672011804737396333767155929235980950138663424481991083864576626211134038372905779358484763015394053478827391827480244491901642501439527967154080226263759545808527469863146543446788516180441914933686810434818630248343655628786900663518954753971217663301627637574085607139149582011682906534055698392759996714077912535144488943542774643757610630949764159283730573142657928604770750335416146924560000979913570229388443918844145562675826737745743723175664959631743258631894625003188029317292990499852947459298311026076960549108326546279121167409508916956848897223875014876445198338732334368398896254977225213177529567080676855590836899570944153939096156632205221090109803628582200411555069320491555524490729066130057601956831086263055626103504912010049451569278609998870121252644664115744081468937788888679940991757190681250688290056288037829207239395898536758608079491055270662396510557201356596307968432681478097495379061800155182919071784870917161364595250189355958483849692806011717901004968765068192360282019652632994816683776112575612483796214426873191635475715065928399919972916790606389543197674274832575671328489456591494628007720637535702493061690982443649714817249476216794254928737892965481186416718828026457282429921975920492478809919059658689734751180983941561415524603038705892172586492465203411871595933568157460178801399634826561548433341452966475856534126355947911821937295224000839108320318078924657401463307872589591857118181928138659489064197273485013193313675891702172580199321820296454312136432619398183133701049173372596377983762012568489609769395963057576549575158284544277828800930269405725123689180695163551161018807523808562065478017577521259253188881123146952462723646327736172872470168543538031819912913921757334624410087083214260885499311602302377464377467590352475444164534944810151280187442680554690728350178677463169808081740897703947770028371552520656387542811333234510872702982140387390886567238472763920222212307450650884267788519648997363401063217726416675972375084224428000392983111396924751972884426587771820487218040307621307369286099087902979374513257387966855838665739782948017691418397851450097716389787025073908736416691693267157343300850401952411648853377402091242155085092685087632335424764857893224469798395439483657622816993739635631180379233028491284902927995922795859993431615422043669628058148858915831379834224708442007642956859350400357444130362922331611609331617530977429298372764657881552260291552553574093043709763108782929002178538671062755866790516857759251629417264838492172088559363902024856711068100633085947123329023757396684355779852757686795780544717308866133864528318390378744075870365598014810133981599356297106791885149983107057447295018167717837394386323694471671057064864059126268068532924924242395480989263597374331916183625973024424293743417191391636036281214479823232169855583445153415860511332790548542160197649990277138441988530282382879377947372048650575404867806476248509776218730256225402667007580663424711186434773654551432943349734016822106464584123105710868277715386450015866839522450146524495442658380291936036390041196152944586733915347358048943643370417540165438728298258308602703203902210716664844117723139816884655935840496721420662576139317787393510242699663004274084685632551716788696653674327089535686753987135282352536068534144935408275543502004383019938479636531489662063796191520401577633704066375138540658298212230580461745771803159001132790606235373359151585979314397781407794804717978659811977943267587052505594128573408812488853627111249116851201085067443338444288124086123711633333803620198775864867517056229844788359614136353763315682472459118463739265987862411065454393788008480917609433137759722040136983413109158343043794489814749155925833257625321212866203910970370667745038020806657258940958049584982503554915271876808831842885411158676698319261854120322898214601714423150226810531082085322247210480915807480083885870276074271787834443474333752749861712237726335058405143199265147584350709655504176264524048911640049377116591961373745762380310095673760002528880761906370115943196016087653561930293238698743437924978136088087112434232007288085502236329312994332785430080860228240894050602243044273410638031007674907829281906383582917761564079482602942701255601087733051016570816921431623158407635868661094566105371074754024052605059219676488743392465737788828761623508587832714832060799962307368558036469620944006018010336182288453594537345410345787476048074033769253258798975180943402718631002029211266583810586165788435600648421483966283811836920057581033045427965805303974186928965204746227050303443544884409337832160246788594156244211810419092160527261113128814803189502314653464324283213053720340014077690103979903834067673184028186087049618467531659793429185316008996213555848880307058153952742599958442577681973645846343174387943514548329537812338785632019635410374200063326923315253599574343122433890549755042374117212755202634085797509731840351305429504089814939731283608514680307357044670343565665408155686444324615747985394724624845308890234202644175851928693281307292841731700867753618627186515304351966851975461278474948811272950456195608878368935604292102997852977643995164705857417060632964549948581043894478803368252234024790390485687931497217728830415419571375364401751966060508556938040125735327063821938324512734293061528012599481165534565896479973467834131606449561069241503613918435468541969692932178600285391003880307131880864668469752241255707866429397616883096530794594337855193367349505387683991945435672130275530628130114283945873158600904950747103901617617215234832094082596671219424009861471953596627534817432129105908734761155789089486257626252941235916855741272262874701213813073948401026934779187728019320640611525622525594866476613000103006033684486506866107414529382248338237954103221067929125511826815959336012499610424779377201945669013291833935207370634803096986966305257362342257250065883196641993477371025456036239989608044263695822883527849108269000797832229249323716088961369868336850756061474588442700118912947221577543875903896072143597810835715465978632622279899862430259454704079195246761302481751292620718222692157398361500371525638892315382525576325641498877230695665933953431640313822917362957468176215575272053642725791217046786765011065369814573139663959323598245674364356118496492278811783780178623042733690363539666230274820252911801247028385759236662512217767062006515860622602321559364851575707061394798633393977541307494461536027985816157618354880926998290395038078565738747955546230181978492404982743461875107162672366413023240143093836996439650865014337569761976838244763967532598512527267032526544004409366836673310975454175344274239487452614158641025481589051458733701465203302641618215759935837001599103003556772927767638269691280180341608185523248762533522150462523061858563552309364437846242126140215430599561967586791134684942992955531986684866842743666490877952123545156208021560585805212915669205214436436005410406612320679678420487185170650406538021738808585654807444195330000721783665736456973381220704245965262898089507814854457471466579885116751408674472852166966840307529772645202192082962921227897181243207955790939159332537276857228594018904417351596072050611253096764998729946546184172479828939846707654181372707510037748024431707215279772897138830577386605546989362609378941467481536826085649522657046632703674297161248759454804427714057108116706354681377440162875849755205783753161976761311791684213092478638691808596893231331880053866991995100197312451141289169356548746177566172369589034579357181394132981487147019219058743939394133083063141486961802579014752226760282117565395091259053031265478162800058939936801059775194140261821604734449285424709525139127422526674297951602098657236806884395256206827008078633569061494222080046797113976771418814682325697505386184447168536971766878367312338748228879993988755867735212351888830573335165300078563200946907926309518983055137574679999412987507868549894943179680409139597048627862649243167478372223545789790094227511924907089813438834137331503725073930523255364977923784820650101500962861360313841680819864748695348453745701979712948652873403323073107739833050156400634613457408746928299569577845249340711246658430881455102445749739614744639543733313819224548276221252188647846288788530186777225649612002643832398541790753177692852057707030624126256597427952908756933340086984927054012988918473448160746932838254158781534056777571095163632562782651569314955663738074284676324803723868658360668023290398774881914082599932733522192706310819253691950538555044305968420394794016218923537637113925692865432187791808494127899331075190817732055672225154726703516584311590079155671073338532099610670761907705250965965137965452294377700213945514386812994877729504698938747059787338818295617707909571801322671146287526006886280531024660236177640529904379125587464002016925941832127769457886220785973622865299628842205323968343905552048471711693952470342432225698198175829580849407752410491395768760194506564918265102492974011744603147987999542521652525185887767514602035416997383275035526030508846867204738169010771582155236607712053968213904173231602168557973170050107140310558245703787351870954693265229700228182250456508421848366396246149198747851819252682560126112483759419773337094330200706375983692037108573102758321859686446020251317467982023949726105169525669860992862810692986537081433681310266913349083095973474724776819807731147509285950913917984252582670618984028958179137803253420964379168013531921625597333084938034934892836034776021161313289755164562252647973696812164279012757966968494125682023448561534672626115038774400852531445123351944581624706901151813115502239992800046209094169797467953630363881283154590349078406876370054348206760365225922906508771928244125304503602725906758876586067463176554060601034269051306744071447778906685812126663873183563590692017024686051796023951529251508244535608733143157448225860169735403126657906678860038482566695413153496246115304840598715781302704108094849382317068201958644709413257673529921045286672935218171750887560662065017081036559725860672561960179568907215850307924907592968573055013095425642512249813387223647443721039416512431404437181132275578000781064735855476753416934660562494639710998434558757600619905923184796655755408037146960490977342437512117193915619267040779094300681840007545624149921615282915272598649443912097292955918268511070188972871598235526854672654893739101039708223426442195420053715998329895038849536811840383560738280126664677699932833584066332756503530260585295073911994846426435391515996439321306280053835380958842568629261549866568518003701335589529330082202568924531741560826431597840433030936823991680263294184291966242332334672338537100565541815959894330815900317792108817041634323378880430668051249369928353095989923803079968735983652589092285798623682001374677432432256494295080300179702773793890929149160878395656589314829701380427697481992583294123081296868097663790850382292390454338888945991419969173895227136770291371358832510438840452839781974952280559452114202577813767542200746507319813221629229663619040758152692216958146929070596094949717942557481555872827034089839117027095725194373827968210010022342331659445321012964347231846135932038622076956230662168097219235476676008763944691593677142917927578390446724324536737929933405674038235802871188055988559210955808579367429906124780493556730193300907666916734606474780272999254876400470309971270660689871358046994511799461805294464677078239129123180418780569893291510464683498362785143680985618778443478465256770577348559630127485467169172411667034538991252265942588700537054354682925980703666497047389164262519396870345660948428810958612443030475183493029815964925745323490038707298203329644855216927032239678662517295209467946971052914731323434307650370148464349954364323128539783936954107877446739897450999527086009902065049618852603084762410077907513592280400753402837094681682899324647645327569401827111942658901227798080053221219575336490286859678500809991786555706320273170619475919041799059641271840349303524476072500273404018265689654151539098148443719070813252923760402356314476404809289857456452782627878403172062013189215787055281787222347082047913658411293568844021723192258050281513281592015810235616847375829846216746691423335493154998325647729873164109735514891474517867657085434082511384971659210393564499311080483060487432375180677781959820558884100353528725190282807549120502126573741946595598521504846783266939894418919362584187019884624250607205161533950873630464055830029609101437145355302667184750077917571254016550637765279150221344045423803865882435248851847693228348241333554831964295313430132554285595163197159669284921440620768698860712273516623268611043846148898241690625417882738269894904405443838927083917515999327408972674708623590050987030201491883984767930980391851038484580931855479318828140220830350074713815985237704282379985651737613108113324405350292713377371390475217665598512767210867422950552084836933327042329521515835657272621417979078544278479230747586251526251571942114149967386196782332206674858419010745326679043992804552046742986914833095208732347881173812041500517663495482049625683568645441293911398553748431392706312541811011077308391387386430530445944410432739588984826449560537805543609758799790812896936987340291545265062038088484854163014487542200275695601367736741761851133547579081833416591956051558636543679468723589859445413059202285452518924325608125047008418851029939554322554819912876001922141485742754797742272923461508824854886521661454665601566936540104493821300150888772539232788224636392868879070512254874511984077651892667200315502786750792453508704678925540851953321401978350285269150783042912638692379013831515174120448653346953091668579251977018070676746459917404276113108539927045147222946489648808909482623985968331609382240638874179725616572470178182465727047512865136622065918015157723153758391112888394466366096781521634271173957989949879081822332630591380056349757130967184229049512596130994299655691694985536502600913202704966452218932987687045457158720747362477000794913001089269349236657016705284803690994088935362999368539358511879811625173848023451454552630945451491233473678707502846855718980052253840143848912242203207664771482542373538532642522353426418300048471728697304955763703870407644570984351262649484850363808769133390830932758414276653758543178863067981000139100909728332860003697397657187037800471634140506907790873035994829030769604657838775715085881184128535107373581680973496925054128772355259779653196612617547155770045448250159119498534101505711899640768562974959292717222161975940675513728098161202205638895214918165437052983090370459112540331571172643617141104995931212500883039900870103068032513208316105980982076163248656373927913000090391673080416690478645480890679807824732312209520003645804220840964469413265021108398206057432869172998815555804522592119783635836047346478108714572117976452791822572314011851625846883668100992185369329543125380875758750464276373962252595162332317554382130572946043401945646399039861092830518212316119626175686592641058906987949254844951404226659408473582950583551506157663652054941268469697686919083146264398815576260450469040717931769275009233529879639938466943631492534940997021714573665211533441333837228649467354283715793013415487794467463447829991188563478165617811657347564203053890993322115469125340852146108947425434133158070110617857435563581483284477159373891158884145914905668091930478688979557353424280293055661509637156383794841550566712204099647159484685177183522446128265795567973472385129868684274044321924523228829038279248102438498794586343275136658121830700317835820566706274686074853500666166953019741896735329205226723006404182749398826762953393642707084738544643326914083778599231802764136663182722941238282127890885507004583128696955350668678094179432089696060819821273998738518561121015259938017924874400535246064075720886235836152047317530351731214450851809670159140803681625215178118907203368921767049640156243010814580469859901673615069518118992872494912174733680625264589129724525424003627823965680430149368317501617773848155776439062277925301822994058926332042913553836871457502030678006424126647424745876225772315338264354198800129371531778829394409986959423584059690925113844793146491569577561464196085907074074618883663398771200147089641482394968930797422880131387477997062345645993185982797813911309098385493536851062429865756736514948766068622394484814581124698406744730159825168137806874809308169634015667057992006409427774005746267095216405170536395315186588135155990544576021198638092232244740055258345702137683902062739353948626563664617662318110079228475672040085183482613613912053290927478608236498444577346886563371086758913355916948507837468493629688691443312428603322116035552349120858827066005592523999435982451862312951768528285209999353531071076696103247338559534090996743279749572193651448451370839246421133864788504843111069744702517217783360511448728403949880182387317250105006023529441289344268357894249225325159871039214149060035134566181182074510892078792172460717523235655037847763824693695114718647679532840655857677165921290065937725061373337416826462708994707188191315265071591527218009520913099131533718547127041705357922796027611732795175094596170897008165590279761025966902922328292697906562957071253233573925403724624982618615215995772329028831503650319830995607011330869847422257800493360899524646628239447663205625032989278488440053471116133451564508601579677048629326947407084413991498152322853634906688733033364143885179737810939762019891212307257345003777594358179796297337943765790375117623793802686862113573814546019848431318551657867670709969252566796069451779358781104181154429105314722028775500206289207803340317105368563730293523754730075901344449237725396904161300528353824544714112156310814762280016814327823690837491226313924849359211665420146159962803383426947171202572028527521628642582905212498715544825045089762380981042218456230149474250614998062283294136695539535395904661734612599580798018058105859838895102290215594308832154106183773805920243651860895405806387056503432045506859888665056147379276618366412609627160708484891095098238975121826600647743245660888716851175371098691842082456289410883236544672159675789205811266415398239971774939509034828773414761578051752157893107862203220220177961175617750381328234084764102292117607782804320418515584932978889298108886477817672967411051254524487017766461390350381869944645441545218121863898796597783080156200414317092791314237445674516258384346080686742377191943016366662217976807689028442680714191395825912492570989883012235439639489748530345117712950763530322009533063928025697539043182149419598680827896345508088475376282916409073809485729796215776529542452017169596060798962677085123303831780442682786097706891791530596127946838390916172293896786108822416881463626791682192380916898046992884566988545466328485182092950419233040982331479937082664727582856643999323230749235769202546386039215631848304903504594439276638362742832868155430641209912485589931136514096543976143716288723412331172916346310402305008096713126496697240077151671131272053135172626867974668960046319852495479227492772742017442047302468466767868273979161810190654418069609601859997922306141281178704431545396187008403633805998410898857898415017370921359147721071014685513294986733184753493404333154996788127520149655171174361088140350353165172850518345149697645735670744672916201492129313078061496693217322038707098002757627161563400633860731962898263893683054669519203880811249007858599387288104774417290699851572006014584707176135139932982021756745122190831588168465338963276361476961781652064762239777703199334971300929070069844991458386301045540935777257163480711366078080366507835777237383684323373002731981460256420758440628923153221564131076454250560225850347323647717310704877567998234627792085908401028704841599298724398849396742017938662790644553054256760018399955639312674912469309138360051666160478533212838565676907133144675940387100553643349571754413412558019172988942036683474530070103767079807903610528008890913421835386925954843034214038497066673350744721462507111453260952818714728291411392074719011630848459636974368157918770743472168991229374244579137543928802663195808036595463041895654012773778529564957519615142485348879798702185713193150131429859466145483554315077353217221410197297242078430562701523257237991110193639377082291854638630752803299791135104592058354346449925565839791488200595799290037061148550867335303456981779625133032575448536891525011682207514173723918107129106765759380707341822921706523285254506797594807308561759767800190200871155117364833995589609467674802788059517231301221483057442143457503738184281962131683470661588804401937602859690627321260430748402784801765599562189077953189435079455524392922741567663161947810287554651772510062882721780565678217454128271601191230033549041544128296784744900745875458133198686079514589672165574751626520331023763973563534328212239303340765702123474462894949312462845721941773186810253810669666141088449459459178779909273874165788209820379614273334457704876922589570086879687203765116721702693544429792599307278016778881517858225749638144906247171984205833737147096865329121268841506939731959200767368839237052216005497753080494445832717328358586167448820452423318114350578082873380547071258466344240980140820379142969743575581498582904480527393745364085345024464604246185220666238757189261182976301103564829410353985395494216114463486578929553160678222710806011752891903629157354124170794178584786372068685941477220859405220349233004226496159142171769393982664653432215420127455099938526336716413506496643108667740378119628120612340882658954068864078571318946571021224577175195184992000937481655209559303408878472994670448433963119932842152843184227216537034413410207542519436402909876963229570828260924349227113563349470774256455648040637297938384753862133241881054711259230380472342237447230078134896476711116875655219831497296046959438132926956937941372572109125771533510178274580643228505753507470690917303433340574555902927728702528665003601552173454956748183941876610194925957244205456089879685887243546026833742784273598085426374165849616691336861282305348472381152148224391155562849762591108667015737972800574159816150751725553274146647951436272017831381656009194899930181944498630686578781039548661481445388908104070126545004188890604690598486710757752124471230074802348120844937829962838663597786613029744279136796634123652860523228346947002310796787074916859569423810628952301627404737912515398513019951694999208383863032721978981342373522792365213167470017465419288602499494007251445926893186082775126887500538931477598028063349659354667819503034016079373557660087649532001496884831606321842419148871889132097661906163219533928086143866117752421270372269508730903061077197169312789335758348197016736276190699293874510071418258800264334713695356141160641207656095488818756447335234774378537727775523562527753742415347644353536519110627219270771585286468676205169153318031606469876748740414436404069167837997424320448914798349822383657406797804953460039241086331217565896807649162995648574053391789366034952072847815688849194406631442199433719678840679793157039436572749421153471882802644143899758846490048075184545162124991387084175581178212595916103963868621844313589469544306414505831655289452205524535286905571639069285599657003154138509167441124584564183071598434806709408754277841207927196122409086548146432541865888499145190316649858083830068070266797172461844497491609274817963948314996120144005621689414660941749681782386983548758369096595607050424309850017668259872691045058424514279414963502955265627720139656059855323145808202777977908897021038523535037519081016458242926741590975261568349076576399087476631969713809738568779705542180304837233651722342976247410131446969289357826518318313608123491386181312728926775902203303897517102319705964614082989526455378350998058932007453974054719311380061611989980774597733722695494681089487737147559594326011557483792875370323550099683247089513695901012926038060321228837931753033332709805229725325054167155510757757367996188162792011253206959442441218831115021310481265705865172003929314912088521421025811857118902878320036176169070687939824036002572906148405623153623657036231798133435862393218193938004879246746463036382892415945814764131404583401516625096345823548747211087904687598964683805090552499972266507274247248265815312703147842472734669868235553284068072427135081356082884662875716230825891678010962720219543042645762217087137777576626101076587963162799487265930131533127006727123280101779204986854164727536244207588782199779957259061876755471537278816582714640430031332968171373751188425403837681498571531001787219979890959239974741707514025146415945940361352001084309888156445733326685603470744325973325259883237749699061815026689690208469437280444831047334721300080919143291848683566282739837624540613933328902503892546285309710628323137980364997489935535075589698667220239400537276060817101628666652819714021099770560267318618168438348732722179970308729790953935005044088811903396554587716951348704020434892148307161998947596768299474882199094849549401776636223278108792738049605021516926575207844072105612151810814965907677306073296097064653968505864361493308150047128620824372565443229429033984572183328189673258205421652631043373674229534664175111935083922486408521830074071835874666292764158021556633048144430605900802101021461348412408368245052337098914881118809930815149435658007005056895596342957101855523961969004191355025857045762466688994824433114673679110977730755392504177335780985861441114782132380017080376687908064551580681794060194866959758596257870256088472047743662275485944455404597608229289499742713191349574659279259495837509657814017737308399517887182275290882121699903444417006393176924708570551447339542771695146201174162620804860660933241813107176420821878716025291121029751810456778617095118595903286434627738601148483423394271630790635940291556200244558701125099921873661290960565400438662562201790133898932923869847243520846242824313528482493262951328974942193023178982417649436647287657528105785035183200079835893985899675665816398133705429646268782994057333577928496505580171549990158816144442005944645455285302935350939747996801516738111504887674244744710799681780458585300388816676870781842344957858834334897545039257247465970368300166693178483431201632012792217571207431258461725999114264063386377571477470662283450798922157059532340333757271323198943227285714248861421092798069337249590618808497370482174877001468531241580848167807466927472093109932762860591323445656028042844609326123129579163448175999384086514995502104374552068526698099922053585602981304291214036683514664815541465493403825657717920586020648000349920870086575561145430868314194196291924577521606664740151664583528877367747480042897727217954945175849106189095855941522420987041056478441734253587206612527381260446248651438813448870906407568758485535319877882624332738515656844564163475707567602430144029183508778289731642087557255008865808732652053113771619275081862918568391024989538099409539198298142049192463792915842778301086771225503239000244626356210196414621069822982001081571876823710018123258416356818874688703614601523666688713842812273327154793180987079013757837033520871650471601253998687180769613397600694159458532905202828984446317109140046039351093648887144601729625650982069595403212383109629270902197214241047445059547674864630199752350227277012098561960817913438046835084337114646189011696975268564271827720462740556978231496324279625420427202204261966413615617352506387184847514755767339674943456273448709498825727138035254155852408291727519886554347882104440345318830353885793770581420577394032562326033185738517859922212173893084536109217417091633488633233390715739187170400026234330019086008490971233094764558182188851296949116376548269897047207191658094745425603345155445362174747800399946472549255013674034862078978024373548295875141686560602878222095820939200840716934831386384781402620518375958185529918597871851503696744360578391803570828420512870291519072561708012037722343594952704176368537325523772668704015234121605251835441976515690583269189011144932557794382596404527806158312456456790270731457475566517960430016776019937923206103273613077248319436191265026579146656189454468610852378286856686416030877132837318229865850801792457021600279136468994195198306652497118812800984319574194503811571535861834701530333129869581716902715156821597359431659861885747434245124075493924367081489215391805947947594984983649272175006318729294259203571870260214433747290378558946030968654051803628018790578130809801151670725305657641135393045068338914075107109111915757354109118880538249912014323081755247057767542696153397102305138609244715409776360841829649921663589435528229746512272946468258107425573712748798961856952766868884540461501978168399354761356076260717013853311526560766628550282252046438901087156937794876123262571414816320935121376251542659855465767264374039336494754303873233667948122728147702593418741828798381130959320083273095615068855828574935709099372804796286846798224172251560447324056251044016161165489109915898806898557403783461586814640605978351288064653560948242729263664502062526369060842472578913672045315792150379040739844331608785613203995285255659342275348936018988415446699442554011498618327848211668940918216060896571856604130029017438607391168340229009365429489285170033128825674376954487446893711022382287106396515785957012062183254571119895928254860378815043924468232347643338782509326088565367084436405870401853339217934847448136301964454181960371973364362258436905997056480534187499196457657888537065127085640601078546811414710137698549287708403481516329385979714907811218836689905807610629153693370698947144640682659331785649804087893728997647902468822505213633161567765549617206437467495433156408625861612945297107748615742598030906640459170963566853597633199409408765473111327763558603601896995439629313068564692779551437096217770726595112360878996576974733789981589118288741551538731100115229532776102569104265861450713063642659082808725673111614285022171888919897853613239669588596914792836247163062686912104422898233237045797156928736319697362754391556798598699073493854505215779755149205399801935498049586188224641067546357066185876614993705838209887702558805748991309927855249333823493973206238343435537955578370812100881700047935572169244782173383345910331967009782519798683047546883121317810610978197425155480514201555968145481704490955343673379048884118512512064024822677714830887695981676960530263794056744733823689619310845548402603766833179351775373952490670009604536534271908203204872323871689659061924379726690301426346512970592101938489843288228628943721516955830194623868505084828741128943882420422829168631448601875311381835413029507794443605692451408465675538016040454031783197275815025407208063286228353905765596474516572124430174956828571375701585191796392195778989493918234520811461183800025437463082759917032069297324777830175187357143624519270668469723159620726820532324275529318040780522350942145839214448763336278719572176542725517412159930796230828450344383756294899258014452726085169756532779611334513672289119790714848411255803587776239061286472509319998810635110892096186403417960644061726756936140564206088831636723212285926159807894893353677623698550055839979545090805194906949629985191178083222732200662412715191923423450137319793298066291602749933970424225253810327540778271837258344704900253441214346228949482782455746386286552314773337826119852488984835993124732996828453670286878016272890297541340151195391643328444229599148626049440042314835077168023967878007180905920251543040408717436168765185595301015129325700840195811646817361592011101798862334155964973713949856365029998212799873106793020176604303362076232313091670669560277132419848659390736432179442960320841805072747008064737485256774282702126382161606315451950797549579747876668904773469077605728038072341356342512363353374145765450419300304733842017112186404387745788868490568413658532520569971565227545721604771827285535979254683132024586895861572730578946078309878610506973976187808474896271771195025370267796595457485302342145146561348557313015530196920769590046419328155823022211027179128700478702718853089535928534819981660708583386290647230146452160377870167708598044798053310792296898767857505088934535420660735804325166124798837186213049270780365829362928884107319905964052662571444259623649297907292194000765840840084051149292489140250087141952710800108840794979736993261330060672339918793658664275494250695275298758666053974318474047222255892774259584318765948856127002534782179680007705892862893342219831246643093424657648518737193906347244898709472740318638795162898318753793336790085198303819563520797087934429379665491511185332623819278565760223176939298686460483298546283178628443890810509599216946984959365656512374850893344567230823797629353196866017956212842054223904158087610115254626544105499087336490684895710500599095775731901879546742729374389234087770536730649287501576503026322760951375892745582991176670615800977311515686860445941239559870715097579666527493717833916793196888005414205438707735198144617860159153743428799195987737420840897748069925961361533675866683777595086798168924426091095835276841285905591591743027706566126554065064312050565978623170153441911603500568015149510959132814450340263279071162244911995857432924388459959076745139322505194872032338792523430604073872772169503593816191975201049187725686797755386235036689748618102228665426190166970962537931045785278688009859417421324479891505060148044271043850819739721241408365473461217118922628498970845381549642657386764020028626461702364461559833265422523873109591611785662445000212022149500635336889110814222366177065571306042837062508322721428899494433960075888503124423249324627607521143628782392679634151959555746676815966182335135229890530412888451226936819914505569370757317281025682954576478666088845910957593559615783455362560252665792371215780005860209211989869109686192453639171038243807216384310050284216006554961595928020279090265910937776641050904975053247498490753879407837782014656732997846858279810619997907704253826817289248928431483761762971674347602961963375400804054395701443885157710219592309794907974426162426348630209959157345456895139991823279227794058819747396602101211967415540787089617860103380858219398632555896457208052225537099177627314854456649343393066997308210378288150824736273930765181469894952799375030974316293225792390846516321651954456142430477311098373941498157373877144578792297753936366862689623308116172864248533698818294837285537293286805033215494068433560826944683100161927173565456622884296123092664765986641419420358955766572240283321235706294329831114663504608526877942584146369981820627960854398884563222501543388777388765841165581557702627497770081961988643967913306273767936744135153973612208748877203273071987053632787446347062948924195831726254359424031433414893841212818299124959258642432502391255749887507048546892444469871452050029498193341123217137207442751982595262051444753330777834702886543292487436236633973123991698432631823560521638308917732918303069861240879351757389160412096078092797045909477517457055958515009984836817054263897233443242942517841710444090729641593791223900365281585071171945864909051897972664652760509535686668049241102719062382727105835495647814325008513623904743888704910694042566402934160713073350259939873420542394465132563783527704239917245898913737356864169961774430230629666965727292312103959897825778594102863356544984796622217586595024711332510810688581475751828030248029316983591819297838159822672733485685611664118735091396276253445033096606605852678411536531391086173751183548751277416894205107384512448220555270979096234154940804126015855965867068281376232532465078970233767081953580190460639895551838491775867401324399517727409520643301077495749075607392405160461003634676924325954591712963327620113080676241397061443963539733884672623895142445921508632820427679975408146601429486131059587253301941718326494354582492937510746717374599730561040638928803545704593699685995909028547075894947880921611507439861688354479447659265989985661561746573594119141353656986216456345669560118397724412775026953863577420664018202987812798442444915034258528916935119631957094317625425783913061538505097446486325147742478139980450088098440286284759264236522209674121044319216417514345881664211666924534221052989131997278459541648058489974609873122905868863503430358970710640949863181073448014297123861261537991082228150110991273390295641648786979027994637769487301068691184504058978128344955069567233928567696046462940405781141624416449677241995676976810373350560334156166016766470858875184814430788860699534945326410681983793244745826991991553266231347239503257099779471077953814109646890567966789191237666948646329601770208321857065893303849302489797440326815175232378921013208579411894989440815168559598947114776237895444333168988393816945685617382019266850249386518898726553836718859311267263851257082209115343683003277090737635794081606754187397844011603775693108924717029256657099682826421830950103016634225495740085563714341850596660934204595858419534978821361082623775427873770205275792006989598592422619014197613823828282059078745740355858455236328035648304109724782188100853934684699105812299723659708883965948337709932717698589537490058530356148504544992140401594404527440015141362032694523002021305650828610236683405888022845424414873678838274057998268216969927725649249421775324647539098800759577634986470174324562352152850815111959592779065868374591378545866120110056584246066062399725907179538170306288077725518476127181714476489669452036428779515124166309707663009409151512414881986772279791784012911937221425403565627500920324412313165114712944516563005625189600304934462751978614284943394685461270554719034856518594639586141033172687610451427540870849651882415856408314935581684609195348121631836159146454656637777128182948468986810932737116437176163482926149148357916626262401937857612430928454059308648184725555167935910922305475853197708933908520748341636101996271227818845792016305406869742054773336589042864405190052872468817284480639723264216594107686420840362664877501529967932474162170961897016970507260009094569629223371913972945656954215647635350362244721554861160248356152776626289514931403216517735383697620215246112025169628350547349806256521908957714300968281732052606060830172776213281558437703754469741203224850475810380617295404599917378577987017668761533613204312793262359866036561387843427767477424062789058700346276229155185171892842095088211397588880710950735303274461130228080578588284507052270674080509388572046852266671408479846206428158315084641265101976277078496382634338808791808575732613255251483764080646020536549448945458305955959599943745631271297103942681136939821887597641841675819451249825648882927595425776945061609240502588687399706422719574274545741615192933066061317529377304593158290811338895596045760368600129293158659564931248332424178401075959605973722720030879042831981105613524318970329567103988290921812853776475837366351316274178033248065421121348724831769138634745998899236492452090260274371944644803623377535880357565548062588631447291191108959637486705185392978740507421683190054099749841573523780852632619834340974184586381567691766541538000083628934469564380281862699412136704290971325517540195133558128681423725452059706402816622063038963486431422072158519647711314147184506339930749483607581924349433293763947867810711525212210423879187295461586101627801485614992889147255854001810401614338013052153410524178899633200068714016834482927948316182414741268497957500391725458429106060855214217034375317643886517093180961447578763308492691664396868656337492475873002472708388201523166975710076448913763686400264551536701938128278295033591748688159648501090147972113354831435200822088103935585840698080379595189776728519803872332169896111736252442377895846555384241315869781699976140502722452929703604303306201106551984481740631738704768500323352570034224229362624761545393875437618282630396816123537744523253958092031908328361843291895362063176482340545564645280475287218152867039554432836261766504530848269748069451354780608422736643389856307341288981839904083438004166791259806041207566343658995756964998334827075902644334074329966007650443077032268821095355571694871844272759123091426070848687477197596306748965004793686271146216751730146637044827004384891072872160497297219385878154772877889988046652897887048855405417629373915679652281952452857843734604907414148827906296839660021199745769539404802978644922796533936500228344635339365816576189410844528468921269481562669585275584187142468529353288365353948342437737933013168574786883525224819320308346458536826084400848820900596898380958754285785441240506082931375785251911137607198662687976386462627120888638771263371971344977679752626808293101552473336517745855642469901000309619007811852450277258983555487362007794882424036319302086610687108308377556734077326044883299606209514098433870753274234339333014219463501277018460594111833199101459617880798593490584676177861798448942460109231081506994744966334374421381778354690946137104757181185200000990331116257005109250789460677963332112405777501467492227106838301370401623996378589321703618631213500076866249817282214096287445970864898896661884694433258337194314217393342381619425573219205666617164107133291270007715668964815322573241164645955625509701713831512039824736809617158430234984102463897223799734940115653541385108683780445541570117091595365191772835378257607651444984747134716553726139204761721797261974373860695877201813736682105486531294511906610119433079055459987611349757598360770392754577822958394732845209063746129166994797226541917825487102400421662321062942454162934963483999871637300864907372950332166914424537353416457568543811429743527906439700758626407615778906341736582818112238167292598416025374229694828815107093673717663984414440625474025953426224395947838853299367199152320290058319774909051004426535894466820552635560019394791042229768121726614160528885490859845122863818293937149976723371261408351139168460804956241771754739652592152703910598222442190669886587422044452695114358768656929874817142640663126288321670294217216449455187688440671805304032790580190628654332720682147778409257191898999240440332372575158686340964478930999039038984783699036532586401218291699634267858198436802214006256123825040580540643971283849556393172658508118635178101491561545796388287294417999823210981018188599018230309909071758276026175690095813763383499934169988268759012129638863322274161112042107436708593340359945956549561172391734544817779613615039974013007856179784467344607164190155828666744476581910572457376234722205005044904749894033292865898992018510848385050780287600078801166845825775457631624933122515607405587166522983298458239659077563778434680709047051980510593977231301871000107963634996247081460936624002965481984930625347014000691448077861519628664090906134006903252223135435206260809974430464229135108683621757733757900672072645177715382625379717805358709891570062867742310826016782441361982766678360098097470286301689319089606468982161684679605870028785764833568750123120889200565111817351533755150809677179505602525075113697850318456669152224240965544125324404884019802619327540430115162492862674625381608782208369522969873281308922137074623308700954426226981275236651641158969051698188205601794799414185205034921652577923052818033946950551407349162559732177767577239098689077871988856753472810406849198644926566726421818519523023877321377264445331480532770605766597974945713261777136759442731655312464254905367687796135021712134511134145758272194630014446973683131939856932454343314083354681014635597511608022520135866225734845927446194778012501493110565027295672158601747986434938587091542433777123901252655953008593287718140525356905453714904033148043243115826874223188081272553734090858667738761584906107095906906365109003778058627290321803998528846550410356981604885810460288344569121012407048442068477647486610992834842808147485331457754462872252473337615402245178056613444463090418067780066193892401232578483884048300942996658971137951020277091139707979150739488844241113260975285000676932300128664779419567269257108251612298069144000897980009174501661429241748087434238693478831235879992815606174307478416332364765961241711596583064821854022390948466071840947735682904254802237871707223134978941382124909113333104096395825876748854619053033300649633427624514383419490686619076085093786879867628095081110667119496753944256287622493502082539902619604345762555914922249159645232282333919582639998281568113031255053943080671421151958542842816516151176273792495628143809647278066137060653850446630174038490613354384762418634638335384145617497352283892330211790860620568272419665619714768005756555604463034153575875219194526008530678890834949375474451937323097454833778200130453076201520505553626865087284250222035910630481973535468428825103226059800191870973371264206860995544959847184402904128567548480376171568662052445364957183414052427277798473050805578219684962568208372269192060848804225787189583950882693788209005846615788534629619335922306346604577200560362755912604152202293145528862947492455424850310895049497172856861586295636558177293745768027014156658378901944152701075229024418058320300667141260224149678829819969038091968600765410937123048115598120580493221537012145861973918949981806300618961453793426018081465477042820746582746383128364330854385957888596062971514589232960727137393673951254914551232627083220239698745675754442954404874404582898246330783396163085512664794858279910559632438218559804036043450062323923338906381846296616406801620435118821623054140059127454878318645165903817299470003413178000683287519078265403688252346457760305403806037232300968919958627831035528076592937396439218641776405008735247230429003284386843735894345745914217696658981229777051200676846851675423751094490224784634721839185358893539258567822777577254209805826981853062083041647162006774323208286829529553235287776452308709635278554302909912835675260287454050099458566374596610666337968620434403886713870107471777370688445254353370183991019615106868245845281344034399172657878800522945269802127721006770919796122786872953490197106361848567777359279435013385240081644921929871688470738806367962052031622194401504593017514837093800188929041238760214166455530142507156392125273158298372530902524481404819070688579974953103525799277785738959866135675828701839203520114676059806430098834409645503331262107453615547627305741282944950202560382415303542970664725186366281976027011083795587077257482707698482557691937765196098563351233482742202631286165808867403323690052770831274481019467882049324808376559374472777014241459476768872193272960112989293645533483213085005670915378065800726466478887261035175046685582202712238902270151785744337072671280709901422605385515087895621855308376251226029445195564158836780509499846595319986396729512060669869764675525786037701574743444806256187702711884115503116895016557927618491961679692818102631030547842460113404323681005462295921755591067678647458356206588881486497202329172498147344494861695114306038794709433635722529086360283732598473972031003872179840093197400822950216491490735050368682774634002172082292214903571022338277284995823558737457197268165890117338377840711222334955749096620509264600426290320209801947027208118287762693169212744946313657296097470219842888771786585742416324642741897889430134744103966665064377062390021019286813337584179645797104049839953233816628317065548375391981200529259966515707811577537859953109850132535388165296748159948180230668916788464302688796888443933373314001180247536979303521721197570290869125372480146910439346543531977980444450585336004586087817539563972002512823577923387257325529604665899135123721014882417818340491254201407923197848064992821626308278231323208198368082401267558160156701020945639399010869292996499478308643931254025434686503587333049928367537972538894544364267874328489474297933158200721735356430074815160062598905286720965290369023928071197697772456797714283574797565241453298369016987226406465659633793398517675262755806931355461689565582767002066382264883381840021097693536576645800032490956150267191042665745100738615696585314131476465993790416471627717508597008886131173726930081307993997802760947222982288852486033604146686294470182336742910627556709208427847774463887884221640320010274784903860498244489924296259116993540587642170226668303736794228797991228655263177355710652977228287927105234293037633344978794211338454023306001054302432663541911475297436813564135523494654553548846798800890461475591208774173583391488400767346229399478139603507532972640561005072915244385647985234984399240689696971070900255766609003927393315448201409409140491422115957562357743966643690029409281058482053526443885557902611039464348365122413786076433536953178384391844180299071254864802535357802430176377625931077111953867582072862636620343669270816128377035502203990245883438925861406941278088931236153512845983784112082930574277193806268595061336563632033945069894701702849076858362582428262786954040369836427234487735570943601456838538199670190420837894494506220265891551728183939804084397755289832906439435111829730226687122092695145264429373878740711854795465978776632633786818034017813520818399591957925750139453407245863746135139272884935100465844791074002552912069374566572692582175293600961634344561594331495846142653981595208962437676714501656990172603210793164010593815791028456632190508494858380492615740840162539463723805809541135041498453655008757911278948693142832900618913349718267157289210896517547143779716540819082362911378171008014673955471739974470656914247244810408936968472395312550123481212646313624968820939038988015315026290626544695077470313438156367155856253421446274917291939137025053808230142326773101228999423841320084409943625993213840427091269735374287256457939883344383910204546638760260890701761954329175484709716634852888366823169601764095105335851295751029795940491235051158778907679052786516497425517416515678080258606052940441009963927552914704832383585653875585405879047576443324157901783960776242466836606075057379074030064268578271413647418088502046111680141394460049152193534461230587353884539895131107246724880937032567455879544431004361771424907872365392835173897260379882960508565790852417822504976794452285267232100190853852737913334419592615649349352982730014374430926585508239523343958578702093932466306757806845745171449476124147286753416277032100759669300104361028866285629650336538466942364774079368604993606238741503240439941763252367495272306003256497293978953635361455170882551985717456238787729997050196549888739447082124680188118905728814329355027709326894862647046916215577430823740420825534371171691366311573296314158076787256974486773479152310474401911413254085555787406804927861499274738896749491258625670296257215659453862439943575132080309340002268177127417581131018257251663059297468764078505989789058589985790236599192837575709450335713500071588309179760007600101522519260192541841036986936740015877837128854580254975258413732110204034058917357496566101609647347644267783127705329192630489155441034847740728722534682405773518062205096949464139712559392593249198256329197836930833850536068948508006490923917860625597012120915825798682998774898247703675527365474907280821520892725375753994308241567483890157243401670103223472314343172422733787524355062574232811828212518693512858487156770263353585887901082185227557706439321464496346799265692606589138159260876376079911081000429475211624236651540094768978861761688767623584976309973145180682826371751007585810829777882251626546104159655424554540435677269854425690004884775414473608559266804336766822305282013833161125524568352483147117182147550516212748630697541582116927149868100861490053068309464578375551443628564460951866175564306437807793598885406312495818527706719448741337569036967595320872653275679914946843040169795468309470010734911861018059549846425214782507919206323757299614168054168244165499707980233527384180327917749728390373630606139640444695113659379909629263249949539756487268457586755905434618706449145804901765209413544720749030411288862646940464312145786397052274479687532079806939073066170333671948146245627196654176255310142244715261830838502678980206140535558740297989108584973729754698753462447271766757807080524162018476862762433732942040292844702301873964386031955627768542650943140278964501354849028262567507915417722235771321168498754157857950056579261418820236964144051226302775832851497081990040310052576756506125705803427691406047397085704642732453920317997654603603930548238824668922801181052295986797842518907665018612834705407406473242946500893502892662027845818836954834975008676525995904239706580896442174565340549231216664387915904722538187780617703813099685701941268939917075590418307250839142032983998271279166467788988321374050682078193194717381759994756783615111196198918016609635629093882758324992013867856676884985491378736321880328012644769301775330541353499857300633686272608382776464441758565277126180641733561626587986955509552854822255712607107421753501478015694871594050319424957919967913232118198376639048131980280537042888078124954799439900609691071447087394152345189387532479570743444779583750092684623215304030583394220902459462844407958556289842983457146147353333176402582095949747152439659111768688337880311921618143876445192759467611107609798323142296773389606380728122105560847975074477659447356271572480128164222218548680764836650476928436974332370331594556634110697484330619610941070454621869549355301287422035597182010349612586905033777334860916746317582892358488587495363555762842370719123657478887723172077692784675381053107101490982401774018920489583767058764775324282838786150987039362448126368732791584620463248673410192755570725263718411650741519841693415262657692188950226941023461428730466043270701142453469982397812265432678956464311707623052886423575057173685049965246059567149036091434768754764280174967644836041824876081933152926537013762417194184866646672436552850159510245042996675057172718066951432343248988561757906288283451864504084971380569854223721265003993567694556212746168788600928744867593437846433152824887951820948236234359684727461905284886379217837071702298553049188834649325369825918352283840203084151948784746002270464363216580446353368134232161078487906666506692898921385114867183423344011180300063190081445535988583459999100960657897693674737748906435868868895176252709879981425603396966235856581225907575652511577579170009003204580100571708485454685055479843332176686330956430817508900636927064765943635868999216879493740076809029557436522737602200628149071433518213460509230914179615369014252490653803554890589320683149903573302834257675415236050606603539327731758246693565941201943925722326349339744258616941546154682771683938769618802183017960796353873147643735848323915335596492375452044508180361754137268204050386916411931789723296307204761029013952450602506667691187679889883989073121518073661620940038002566683553720206996355975991186503043605515204568607616970994763042839763169737624544848740975289557762774178499384068198431011975284981881386692826554777868157666919824914657119738970667053224966793011033854484911994021828741327462357988900728326451878963267747172165095826371540306107059981085959999831572333999587255909628666680747078546758990727425724707058064665759044878635423476098796138995716274826148416358984856527593995025101558712204098240658950534403927814650277566473952194413479506869875717318986494658714236040059131026144469054293460747737336819072837415239509839173607686822629714481589815830687318435262531139621897384793686074298976321056742674989418388344349858464656357607614116770251231788226493882404770522786861571953053234501412652199263363326541790970436968554259285905450835287691509141340951944926731420167277081225290846817259994144477775874646418202888175809324901821798036388780270886034693541309586795801609003242560855479696434077538712584628376134989746628914383361397449192178670399345936303593331018197680012052979850469550657319087505634287233404283953571741478645525787554889470508646880693883875582751190050087454605161004799792077852845882852189523578076218757656461519102444354065066392503385232630203519136819661185573659973543314829799666155507848045734157116937192591821554365020915169330947897146495361890278263812821100309152910259362204837442326296995128494705717356828881592838258473963172050344384051755181654114156885243335557993887248141838359780887541647720644051858402604760615223786157914536875808149298327777507149127413818051965291751869842350647495877270724382914121818104018070033374089423440036165685018006562414471116402960460373581992139777553407618685606288323233457819782994208006709426998328593361430785156091815492442283728780621771081689264369565948588724024730551484403229120954439403676975681885180092442101991723722156249012985235601692592596032963397390023620135882214030635039746726873005802908921947851707529905354168568884925180074739787860790951398360920855866351399852289804406491415907620938216991997352853428285466044563752862368795044326978807725756658466011302834223890745039419791380782321384829400393491492646934696195295914278178733118887797479262497178586197814849109305096689112189495012945238643207709760835578075885499359644324355590161383884995946098121204743954878666602943288570869360597639641309229158378377535658055996396340954505439244670064722480654045357583441406166117006162360661454318462159322543232340653048379800675179251117102354221775340890597561231442381606091621410421616674503052331097555453893163592033159507463107882782327917996411011483485924773787171926886617549466881741898814269717822881034363493084346099821832512329501823962074209351998674100176101515922038083516040246814762391581826477429583830207298303340121062728934979575230429579707145520185159545712962943743991317685648865896986261901071873949454962380691191310800356287873125400587349859714516974721567346828504830736657382709673637472141700378158168569198307357216685198248093502360087993393183255843855217156080181040869285272729073624824820160270622494034477721832937904500335617414190938483732070843741633868156558898082075316079209363068243204581719229101221230527177199805281867031111635414385831524451778582984480820833501927968236657747015210830912663357305964151199506025668843808754727008876375568863437712961737298392404943298234500311491491699318979377508630832523075835628810461587396256193220213483210571709748465458833076326900678314308301579657082405202650232548408862219718718746853011113258809040979364636854265927019453722378456498043084115802686881647174412708564669674223351073176944922810567902892050241703068220016999129556600519055134717301780589655728387607497231791124831611358611937265393549560330412886538971075498429002123930243219178389654417485871306902444676768618249549568981586075605156670689938220503117447083232530762333010291147790184992451964230427486149789372860469296788758017039147808283935639888448099300962181236480500702664362589568270847671422357740895366918752761119754245843881988965656768277428296542214628305905326452079951070062321217159993170969533985887672943507486382802032295943199627117629047664829357502272219114078883976213120800033678970809790095333599453279504894167350365844105592329853980576343847178635191896908215625012345674939421844123534240476894765139324794941760707567791228353591773469083934884381994019310427163031449923559708873892136205649387184055314746753265675872838295477320410531267019923686542462480262235668569344674296261879464928188052243886380786601206775415994507757103565269727472211121039129120997269176328602362077850943210637112785178570527167086323132259018980752559680125957241440979104393639927672074327451019425322454537566587108268847629557799507137037713584838115516054534536790847443497837767387557484229693662241274864686102904153733530011837179173623378545611324739336944776989197698400872750479223975757711233480139591497458600719258548636612863952557332434342541802543705733212699723298634502622126138656985074689112123555306859351178665618479323634187524053564944687773200468844450239975418576093359544614313455701356201263850763298566570449921314207565824495206218104258413386496156774810616277029165437600603575252966645589034281318903502720465855230321436075487783480958464711538904685752160752329784015804939386934722073712935455159315724551688929338528441352410643869393880461308816747023385370406146492898624122303467341598409450729713529975772360053422661284248315653925679648683115117288454070331581540855384348424038890533760995619086039777953450750437386936861143514402485767576213155541397481412646638253869834885552208213604331558303710950213941012638818774132395684627702073535483049734307185781910238472384974675585465785196068669367002106077942733041812717002822255213618108670048226421459154719222029886666609528462728710132289021892422040618840005415751671186753339174326527904027125835673811154697014478182613392850255769673803947757577206719913893054168529627168561495808701184389352007028496720809601482865392161375378509882871953853117070596392868790300599276054426499403858304896548965339454038226195535481835365358772583005396406290413972679117070893949272350820205708561881879261780615690326639841003599194900565984826792861379340071525563687851699428509399161716550439033286525257801434063410381305728719745537075304134803478936777306432270744288616764985210016339607216170893429940669256974675536368500926396667067535154491765020384198577636056361449982759060099248500323429580593009022799124507888004402906430831718255710746770091856207279534654309555410514045177591328332160553473513513827853827096212877161329768280577158274244842043957562273921242963792877796846254549346306519483382794797279847471768747997152724311296947217986825183149141523610090409847723163355369102488388709403341970477931398752774347605598778319988732730220310043021975008597983733845553879396624999291605961253936915425076967908711500797500227621343723811003929134473551418284796239557734482028342060259812318034892236438597702965477269321330714625976914325693641607531532276830515104284037890932538030634011145559155856707304715397725264953287360116256624328350475738753144976960068766834809018433065274696918614318522691047654155678612825412499942208819946842227163483386870323893128232598560929393878487370550037306893549861998507985125051190609903306926227360851265689280049089871950620660910389239227360074419498539405557664059972635460639138634842426042022966164206778026789344996494359119900302939120120847943580709744823521710041338159996989931098072109949435041068715727962417973082950713874852251599860276208921038371177787290886461764891499517687521841180460003201141508353273962535801292151223144848818490905792795181147292341131973093090332784965557165040090854973174334572213171786323298978852190723626343956629151992722810751352300277644720429493943651914144112254941538910971319489355643652801016202703038274554815430022122790323519877241608223467665409792287385935633669898390667236722830097256009546622868117573241965857586356523832694866711357212409967024378338078758089223641257334764289385722605616352325588282489940449806327584172814082900092070867950853774413052007805791778104562602348975958476469967046932116485764801492086652864810386715147542072683456386324445828638907510197474073659074429884009517547682139765647611652944004651599960272468944686670248885693384818366746639152427139709043400733097020196321574381827066233090054179284177406629946232194533157613351991553420592781636047486133745088537907455914938081302071117592642921602559362156339887275015154775305769973761724401331414591495561424831681240154975528211735723710395766941837692293428613631600035993870434383799520954829529511096076465491874741668521199327911451771180493160990351225857505186938799931575839163746275193984402631197964689415446148672841249797925920586545262035894905937868270814534549909328530790234889849738459573856857997776674609210251333377385705560757193155813596142069682334020877223989393142615631740953011579272662742195352395323471300012597279312212228231790319072032432078860980845158861391256970801343158780967942912673699233359097155632236995725998807481334573623991663587614161564654524635594320200518314242290468435518071807465634449536080999092281159742689699811652456888459877275107021487205258862249762839778085692630785097138280244543817356607356503096458061586059297653668462131106289769036018018087184651424770528505312675262274942849946655487753512786901662419150093492223181910296059706523407789824451547287063458822178113020348727275248086799984298761142072645989392120129849178658905477974513853977328197557696756177619740199653965699852170619494891082798270756333186871352180228721528743364218159809163188485187700770870610037265373375337343801561719810991455231342122540350408409391055892738940287824070862009163339275984324740994181998505904516225338708517335970618047225978839537758679373687090139784264082341298454289529927577357146146750806251068015053162925044963772038818924336986993317845512038574606800080520023416398466348600103736359239795062005876380639041627792429660787132911748100510013071856004327320435992163998675777478283756084322870998819226922600304438077522225890936815425187623509298692120410658332499435873112560353051588917819402315459550469263421295582720365569396936458294294737934944247805544305017091456263228550394177442132360226525753634217763816730625480882735740277862041017961259095853684277739159179807430219601166741381832207465699358250419427652025899297644863971291258274651848577173006778220574647871269171941411358539020833748302812670295953256975556802837422963162601902406959986037720598656234057054202597474113003984768297004361525517743572156572348079394633424230808533896574538814024741857642701076847895615941854481432409163365127050052022879068363982338839155447333488182128062730340763003207173390002243063443654081418337064121532757763386687510538167284884532278800870592646512766414498133189641554898749245355428184255566816999263791940808666314161051193802874080457471919144749311212961043758429693438377446880285372197874385611374163741141122804719586802203800937006102404707253172538536837491377253380183871230610362520232716257234744044684025503756082962645358848485983975206883278838898599503748635917497089805511123824229362525551742183742225188933062172651275956109363209627274993938804778737519923782057573848209067051323801332218957515801269276115510801994729554442588061646328039086749043731055407473441006663180774325931865388312915571674620508072538102056773922005177338484460999560698824398632113701282020696512168384655930968344801844099502536303893100429621481106963949535118771907465671880349110133262544472814128619213000340721351610086867244881819816940778963732080443194119893930721282247025838122279429957979773981104591356246370303361217542453432323371098588327843749810680941870713238718022743915948610747136005731493346463600236687274050920732792769854972613797069201952676472533585383647961654609256763780464587995760833320924346709360087197006355095837463228892936852298578496911723638937666691170106217565491727328801059438176592977519286549944843898353766063854866627354214985336301009842008151580845117209356542836340722864211014600640430708515065846910745021659354077075389332775365444359653478826977531697205140198361245112848873198731241837466311262900237357044775505755893931975637078249596567966307318153441596922509392482255044635254011543730512906188031720111756044544677054065919903355953123243328202889739265504927230285815823871710248927748155716281067964466108390666492281798567060001706400311639646156055440955911324979994477977543356192548338590687672548969046159041264582043638650131318632683378154076074922220030464662633540588104977196610614953883084523936036239414757013935922470533861204058904179670677226115446809581019146190673277224527042901613380695940584388147840638361318763295084721452665128069798444338231690876520026199714109799622183017500435127057026884600499785327157279930692855423796520040380344710215367649304807471812630483160553489035446917185134399791497493307685381132137182905116521178040523972244060259988275030359161634641422446306177223592713817577276021868496282361469296902034115737709979872259753775135939921847966543555487994920393036878383814056044557643041595332627571722584612960236469385948533522144092837384488149907821522054701506112571816070855204748079372207133473055380793510646939903606099153891691760654267887583332275662461852595504954886756095285743222364899711512306872982869189289062189352207444591182827627199091903116154750594000519717314336011168298660201062421359767479066688246080521598763776666024887262000020498070525126009817038611013418520619961136552598445015500457854291209281464178543147568553806966636752854252950482567419896575595531876829234373268140379307496671671214848471730182187166566183468639715507018784558247039559071690954372137032142428431918530077115310502740962492812288428978405057600523407465652377675422265309071383490205252832011689580516876362557936751424630356844387241483741863245065930557128383909478394063452567489498161581727820737765239000878909177424767238759265764046755276302194133117726906008511702588968660482967334488881546469805194599365730083442558407786743939768528643080178503304557239193740713247132866947553951567625097986905190617928789922075576909041508236763903977804623020511979313236490048861957638483490261798462015742927268414593787661371135358271169055824579898497402530648549059907891674223816684793574253816810380516972186182791130293698777991379844390075851196115596688794297980179600651567545049529699387009328098125560874470202723278852978484958125944205820788953174951894897051528160374795437581242443012949778425813716722923667497213889180402318779650772628252951409971711422156210607313073444925687421177509640814587699037307280608936610226265743019232912971551050666619337439837513003817297434209094110289426281733283547568217594628821967565367104930128427764027868856506213662289408596082655509468098602965262843947164200071067890494430473598556629879521298619848513958778249183001385692157266654090621993477995687281450838370150365453501898926277596314584063146121440135398312525836218683180044408280937051262623219692507257466046450855227894739423543106274293422080773937939231199472487405325135667505471285191228049123693543684435101485625315769902954788619982139995539342917314668639068279128957642056953421281441569807403803633748810244871103793988313664682514350493437973930802204804886904238017472578924429075431555486411016737853368393626178927337663208302243736988878976565762578288210420056534974686970463248302286721113374076593483723750291975998151781338261172494428945654586633585290290687261583300276803922633457797258546796161781466247879130258975348352858754960433997168573591970698732760404798713723979991329359647969558294574645325644241808672293791018081996647627145796986915768642627280286221843686576392145893772969251427981370628767592092334973334355485696998281757566989554704513292648981881237708037720532265798827800305591070948560714205973043149690343719426979996619906241282185559056966682894502842956180301649597601938833459924597504621775600751197706084255676678584217418102834193462995741660650530921343030071620674577791496500816519357885598153925839429978722349816685443682357593525605466758551369791973824925783765972648688244860807984391156978524957845360606385835642856699575805447903728418503390804195924154946416050790305340682900762652799649908190529827418358404828514456174011934817999776741960630600115497722372669525058592181734000330848935907883306560379298630881834366829574065753467691125025695863954418742515464869951721370775353944915353226968423787170661349840167592466764782845268486135406331156524811240186258617520371794083788411731459119867047721854659621466724429926334209794015927267885292735703394528148961437653782580830243256962933206482876182080827154828100320028048808195848245030051715809888881404016626095165052300890900690636410957269092108993773204117437786152224509374654433851743553819023270371246384165973033733500843021511516776688889429406426569139055777372088785619198212829572383355320154812251616541979519800908816982281682208613271287518796193119850774153331271157906294178817494156471216305388037242427363354353730891751101760714555630630151028337489097207412762020161351546042545106460311357387278701074947289243031342041091682926486619421473853863014760437794927802854932113009369310769478268127712576410102858603768720065519807750014393442507572498945537373318224224530534436089115375300501293424400115640783903205890444786203521263318550315050407259298741228842745951624818065585665545442121808279733750836067041974826921801396483470293026267988944514904031912664251288974148576507502724773164163068569180365410007627667757649406342698973212841200105167119724340782217463094982796958589154959844175342538380776663519676358788319221609275171225065235175565706003562668964605317162037152675071205412283742227144483510055074643698979139787899145634006244661604356287379171314668258886397727902575512405833636913391415179569843818878908834031020352916321618104689723498848552223604250781333130008354384538311927396516268270216664691484066375672889655108957973556785023058615988969431722237196938330653220780216848496618999978419231225486557151167171114738012844318606906184556961156713392243844345814828345548630905836641263899675192680608919501291666713972652255531317241645895839135122484360145659649498628270434976899669757198515266874655803541049703079437220347103139513713393022079167801180314663993287769517419595643678163350801471024795604504022274419148430710964462301813081293121985351658529773106282467288808144575340887609519405117952231972687540801881370441174787568950308926536396031731578331360162272372724750920150113336319228688763091538976640772282291330851102507799309138588056611184847941423676041727669873695101909282935742689990224771395986941641585091928776293227402770305113185415406360932200739315559605835484564402116137926324418212611914972970157880220285811736110869960774645004164121406281235630932752224922729977157800080958904111230585413356510558730587328001701839406362024255068115995338109564197141082561817746231795904717099517111129018114334166500925739321408387061665577199819823231367985807839667836888955133304171509195257098447789244929871056057775332300286462664605887704245529501939700577137758277686702126256786843847223363134605005812235664519284872707348274142368953967787425713194288388676599801573085824961516445542294112552309467455349174615321428361622744974692931550856483328691419980827787224901711808192794450576705419909438202444544234875715718494912199059875592012018613627639188670338200568919013535957496921208016422400057212508624381676761278885945340693261453954163153137658738948651537647470057295978290409445343943700935787844323222695667200226985355545043941615830304283459272598593179196090136429709638600091303763346546619428932694066481141920751573237222891777801400028310892544569446864993706369476118421348846890918923377390244509231653901993210260462707207950624698683047327263441260624209345113627581974706488604737683416884888241527156867263923259732104959369970335114297581150119213206425808547387739468647823750328251957099551592493000158562681294872873268622661185343822277959072588020083405993304665735171168055860516481596101542617402056697275485970007953114211746263522988509166435419957049564873883973002947626772186689688215432549960646919750139471546727374775643407430926251751757584262494212658337519231397797100077419692632316704443878995939513291680781770149794470677916324190231393508797744195099447658331039377511713659061792136345050219532501646532280003529397037406574345180197508770330385896727172120802167719472356619132361328607354611068901453603520530512904703734489559883350345036641673791884950018625007199258442490148065814081397313070411064918888669816795364931417461071906161087579159001810442655193531545406442695908926117618346967504103595058882035783286977513166957199836485218890692026586440614590398366782698518762940402857403926414670146910509263870197859738792155770312846976938135354906925046591977742607900328524384785613556612531607831399208108740246180469427002055952384289715833980484577041017630396617479733366818018511803789948072493496023269547569401921924302837942314719114308896375579122091925866762570028844722436648324530667283831464923342653088713085953226683602121484126395059620069243344294696376597532755050893338270564465531789662988084667782682111183641017735888808696754866830909919213813440837018399793953593573233837369048416534261685425800280946223845835403401169703828509148050374756142825901561428589970669212370142003533728021595047004108394325121603351805414345398447203795820730201441635370049676774894809967229186278495115335225944284561232154007384647027564008587147739794573095102798323517171795664517871850023712521238070980794794899436480594623621872718096866144766274651995952833102488671955890158939198635815628978595373666065890068684772690620623079068198746449281199886333746250185815076389281842576655464654405354783834608192181643283433166972816792204343731336602162834946629723717895535614730049755795833075951468639408784361542046467380442659712730066970980666111668946845832873182037224227562746432077715073294603264506150477367356496658098187825431472602205004760396015690819572826789957078249286834292245578960154933047801916606488124997647757309290964125782669930016742624832983476262945997810421807877051788277342089455083615162969266475195854439370275313318114782854351989107862721377497296385179396286133493627938849835435783831083032115293571463750979591135303140171693763068949338407134306028510805957538603511397615223948013353680607066737169796389257857265472510738851225026166948666745050834132614913894153106321713064128026341905949449750539731975776978160521391712460849426381140377346558253686256932270567435699027716120581420207908304879073738898855987640916969916257889460447238743026255953549906068241510772972586104419046776413248004518165632122123563430177040617079869805308373064928587464387442977264719979815555399703647254075331641568409102320742200505410300589704166975374820215534815358154634168226874756406583201595230642461162223878733378233868737356828367615025391434856106958504723619941892662087265094643741811557835448479785289340659286566167259651900920228788258117583213011639199864708356317612496617661380449180454221271540855056022644450846594596035835533532587551383276172565033976788833798109096303214187709109890351285500389315150238369654341191613802146159302540706975362736107750047717705140062945965830307237429475863987745585156769905194950434427371194201270224969043025787905425705325255472452454343887466063724423708954665735784053058232525734778113870280799999003516828113758951166470467750083100064677184828589162354313791997192435617314120459720161799602075759544177945617592524336518895238000566356590562998352657618292231185340682638572558351967995513296524105484142306896197082510628552252317797483105200596277654667797974896855620370692461903657796272339943722255337056226464599522296150828935638935312493871523928373714451271693697452530724908636571953921754362533986398262951024674280711959301063700081260617174133058298215600905542696825548155734252921952119572742781800917357338477744128718046795700682639464122107961605406050814873819162188513035490239402066312196341612507343487557633488327458391479194205065208336705427024901773186240436556901062943462121615383655669016432348305480052098126403243303450666624785154307539521389065016832628661722557589667219306542411537292085486824147449607524015433899855810289986643609575335251059268633211608498749694955693753315913552041481479903513334944131852363183610311689037290278533769367978586027409271901007426363376492103479497525360275367785942414587769416539318624165171053602962499522826057613768679044724305158090610687409157760604902829411922507533090507531535512358548562878463073893906115859004574892228165953773892095822334832741969942430483587806272723235688386661533133698028162539799011199048593766790414469482426658837052804344535094637643328702480125279491677962356805623726830408268126030251984842652875829197048790085334491541968521846588534804477171368965041191075660003862121792788090341292524528199809208446227433797890830165386927998928622885207708369158391056849813864757055082443392368430246324479760917741218985598824315674936554448117995874264298805847120232853566495944524549518209608177297944597797273586186569651272844579040865304317598846098826520814454419356077429190563174634124757589326143621340010227704146443237490403267147508766743070486548151391651570955941600812702724983298444510661720193805538180348456045739048310529916112090870234771813087575637958446706170662355328394336782509440498315829193075590538020576973387029857590013791323024770645157367076568996375719564574872481625953621560979010031298471345734339487261005945730285129096888361765457917880502542776406555908507467151615041268970269081295213262000826941586017367581430802584743204087336739902385127313237052546685369456605925597195530189490035979601163955358632763969586913741962091809119523089222996172683822661332791886530581154083824359053112797300699318288339801832716240297213112981993156261188784495033303924800615517834369107430961066023020749013334741296019820566136237294727512619179813621603165085241523884632608930672188945904708863634149362512597630708255714295694280602449443623575703783759311279129462894006816004468666185562396122305761912304096800711911889032234977981177599465264245850478430235886280673095463230750859381079021679271955128749761113997082322081969818716268275930569686440213835571002968591011706856593846102970506288232745397086509904127782964895960802283117427464414126897537520200330413685994368231444429513204904969630623302534868740655516384933034855081545584413008781027348956090757466098650956928244265165160158770799124533779230162565234312076551849020889215841485088727770710188605247360832270518329292980369081995047269575867771869681330568124200517356031806057166066907242627232733995455565852495045023452375557058252558932119241887552782086951639063753557666974826387229590138191728297217921169114721386827062061931503686741823391009765235964606739766951678935815309178689470096344629347630154545700961510091718967661765276932730831576008596796393065294384927449265377606308716538040014319877771576605766499282183233638960284879774088679716596953735023896656243715796086227137012116208442942163160577210977152240502370499232912263223501193267741324387150460919094935255799631128905114488931815787240903789737037238780886832496198981017553101839621322746739645294841417900938115199755798413725386829806156339106535063580595536288887426109295405627628436587893922862325615142849698948087329788012826472834350706306450807296639649833558080584935052778331831115082641193969993910448709865735463935392959505765336731217020552486089303429695457201048624383841822601308391727860056138467596006970190058276874291708706007179010263708772001541762468212692683328426855940554396250350312128908452927900824058258635608192491742814387006496565171449366859755067293894134438553025545104520895505322508982268230845181881686688556369337377044195304889298722972655313915944944685752873289649055734802712668863270571913394491540645563243287768974572646380118040543279879954156228027772955573058331515409566811922257056610859642337950550118480424313639564994188922006614213929532285779656174542585519415637603438205313254299885659073870629208835899906171245166510862674216380917073280344704031745624619732987148591968875837377761449564976917512173663439824309756099559490387594654591951329932526952263028279680202630517058570207459068002772314010155708872407128180173405197845340603660049616899270149109104638692721685247866968991003677471379908166109321504626346157775163353172215932629130949393950928981881157160051978678121962627260285193680376732194158674684657954093418457613174995120885199199433628871832817564070755737973772665385736179363277337168132539506726626089826779219022844145016868809200133344512617470823056102238522578807278717145145086905318812195512688197488872885587750207336642462800131194010336396127653379485044691719886197846408410970922699438758005969896293546973651073660419313369935596579944084210777207307134735050231391950609831838616911136731030873467819102833095883035228547615871726639372340168012100760561967337429593397634770006586056426235413975993760855049893930418624745742766612684497127065495800413964707231187616715630507934970480167571751329859597350562573212320807917201413663203426032178068227190379288822064953634974384980973758253509346704087423813559459828789658774095210009817392710520942848963358172123552689761828108305012353267452039605028926624330040385917313107643898158824902726953804121672752336436588613283972315745342357032500744637002201826470642537721976038851098189904224370248972403867279776105098189529271870152737815787801815382171113074492374878779172179381538828891109504470959784335609801200676392130044750924946150181963673066274797203496206374813545216082434732394377289161430692065745185465467624715865096282765081912460072376719540950821285833672013159197653637080664708265411226105482880226227476837447295242815692640416863440409327389387030258354928656843696041699354693237535474370660689079589829239306396010701947228711997719151080485444699791820821010686820692056396405008178826969817815608595901351763214991670740110686223765001138302500031878299504038828009739767467095135080232215882382418744448056811505461715278296499923191228818587563684061769835307307999304564372933343596317030431502116646783288580209805002077617845248974471678520327528546692469750891328305917027350904249829112219461944195952401666817948421019272021976180139406839122913540990365773343886029209926992411234354436587429747743900013570937785012847759164477832026663115092838324753288149872263189767814726039113788140059989660795610427581188880136921270796659920722172519156781805766287287088801913545690664224002127202255696720447686364357088417081256573303028767380913724954827030755004272580266664271876313275540338403660228312261846200299786196384089509897666765075840318327948652295296655524205120803789730162068318564470378870425387202061495684497068418883305852981473001275662534453168830233682962939521020788756785157661751181655968663345367619858807700126419023320341160171593786882348008072698070250885964067662164522705229383360279375044884581050496830462037510679830132605347652164771693934075540734172171521117671221933325039866491282835844402926342456009975621396001653704133416442610008687858602034159310597597076229322831068659551225871272369188025689425657502285319429382629005327195489734457301141055674518307470731360111517527212566622132770515115522754698957342834042713676360482649356920245904475457440001090938790198308063802567244483164713880151403087730351540801240768417864708466207905201136655684056916617565083619595721573728077687450407611538378694334797528209360375927863812650431412455447476516267436653237534976431988984632935729702453951429261550379970879937954942592351623466489149259561248062058017333510990400176180171591371080208130862807748127247700961866863113786289477805594756654046169673018664394608193008227410726776736010704811790069110828671136966759976203513027798621922810955897290622236180416983676557466044899277108757765291020085230952798743400985224320053349151206978208699068675580528837123663558710898029202531921218620449027187811331155972720591879262258436876986369978219031684560025748254427177515323347781505483018862545470213662128982944334566599460688332362024983933889651314421668154879144645488429206455937210102650790411676038379932149340015850741513787736356327907244618002502382911874621481923382060996150599437566931198300722218665976972167466590776044523587981553672381397288764711450061797599231432549964644226017811557551449224293235873485249940732683017083981540180995828627185960192632578636519578417864475556361657649891039756397840633838319257416100507235622573330032783778882523215929974361484612010973510955588084095204706061705455641281396576882972937830318767647124751595227132334603075826885719048304347688506879012100756126641350229616711055434654216617442653125209396863008598481852755464118839002052623451973017698490411155171345337863925122741743926582692947789392222991445362168655850080993642598229184858829484604706602942211374080941924736253089698430928187701003809479793771326100801791898858226511999283180258632795408232798598770320431146799888764841185823985092757773590062283466152481692197734286540135515500551889729365063086004306369106630283001554423894409453205211212924571261399716857399880701201488002513852014279204967752500074024209563818394979023724050178578128702348295321870172712637962837063901445213087563435936131295994016841250076791267563220555170748167997971804102887859260587906639993658433502957971822949641681754847956272170181234842733450885608033027758339864247673106977708300604371300304416088814683354745048421123486367230058105482428524736109802911682751086609182007896671882203346473056978396179632492541698124310096262062511316527701639664864876913083780644926434063210126394938071839910294121384981342269581612696875296673579730274509103862363631604515712722049278222816477660979265363591339898897136128965421935947351228442089326271307438674763370286895891742188912426523886134514653258480588500982827821585363673972894943605936758517331387848033379187826694033780474972021505923699759123463690561741232386008765732412495085945636551590078637045314840467152975594301949595746975331784993181249875649200701845184541691682525374997712519832087771484995701571939982822462723332465920695593824053933359677668836763751118398973727142931996363502004959743786058834724363066913025731144597559252575557682399425560671217912411741684365660915398511398750270521362587879021488778230740168707306184636688983726817967894793698796796903244796736498296775335773162720859290645603096969670475135795984620618836395794686772152403587986727357587794733313099513913081657980378306541566688498514950101445041901553339510493013647387234701790335662669472417125444878212107777251675134294827611859439020649176248817675288221843105973729319369686353547796155498039265690125833016720241606562525306085874397448209018805978031646395795551184167458177570480941244800308801995619195094121179921867023220271841438816525627356236791127188623331156343696451526405586837101648256829715150157233294654810919066417222576649752111818757739870927440117859092472535473878260811417564048088795036285726935667957455092581603365351720818266961340458194150533843296236592053814178567910310853194983207311194940493729845741115884382716980390764825813518258366422736247511165607762052746144725848959940939261891403235945337981606123562791180347970406627428360154829160255076605635943893277356763488082054562945695554995426075671941270148125015104928667862012163848849752471368016502865618751368364586555399523035088127171176145890305708402235574646034373701416773607420641315539567326919521290528857762545827542597012290064472308253633998691538455016267543386890227154929806711928117108337100072816845378210918135785718635045934160582970985144137970984263762185662627037412073829815632298578866427377922445149543363720743169530831841095840839465180293183607864174363899906191878344263602109228282415383493327404483225699884402488542392282518728473869969364616245131327910462864671461800993177264745904162197789606137615676913345689735431147621196717283640399694808899511929219953716180349652385799707481778004074835798323597998342140366636665005480909598770407555956653044306045365910361473208226058183861121499755150839087986124234262183933518979887958360232043323500349822073288966325254289607201897913284093580304622896940610187654259481720719997789581311185110643348265181733884490626599541082222298682375772071390542438802627731212819926880053246115887194429899172382743459336928158381985457023903896443514185476341575041620792559067169540848230351917103780981645303051534052076860607343924004485662638410672593750103477202618443209147656135352815344576352625162729417989929768656929137970852464544155927803146642102332206013313704421792729321714262353133416883331316655611942944109256736367977276135717338888620855643220081910707660182871883286522441156347618502942543039227235460974770814140960677811450814128129720019989275661742391323818345329037431792448357333818462847601334221947153190446904225184095124707361437082966914150737168420604219580132130876925084236751554363358456979565818048183141446448884443432412583046741519922322816806431548123003428613802833313486747689855175384174565566734644414097988032239889628639427384400702807991492891100852084803277919158830908656787802731428966026512883802885405851915902578151047071486261231886070654740886340363233416562284873281314280664760506624881497658750712229461240775977581851364921029100768077177137351548890392979189793363388753679911387221583820966604693377192555646886454957073811970964901004147729355072677506941015291844262720934291525055124274136373455895480354021323631199344021174513681927233758133701575946257039824381435465913445542768177686891158498236234401514727187609924148030016059856378526832361308688514823507378365457314252108195395096778647169210393877139500671361795133679502246591355674985368185715397568251956780836275623647036220868577114013975491960528154639369315302234299699461004698952573229350692542349407196295547285393373228729431092519360922232589863397810342716621079623753933550991050382168395630359072104892353973334039061965263886641647776629017598631226855626166164674947297795494949858815107412045574943110483203176619131739316543307039731243875903235747154455423921272306410586270893049515691655894389798908665978715284683460616392369043571931735043880285572260999309441771311829516235954570747670176930580291030960740387460943223953246866100706690241685524586134777739837076501259017414761543918426598809284517247266478719770973590281371317895632100507948277393342344172975233893421490824383204544343258763634503666569165737921267213930734973830935564397162977467617107232035162180411426532867672851066279206788768829825212726523729158550649113018575147633720656201659965977193050140968885594693820235299097161559285075409099366993193693111572898917494837142670920844079079086911442216264748018235139152120330032571857127140932007781203835808927329286839784887619027522706250460685481562394349221922076401172162588893067558899443406133674935914778586869737637491814469448971978501513243251472623980182838141645630803688487822747223385188012749384084367621377722095782897666304317605941013391179640969482983297006581966151040918772810704385480567333631409393334842925123095205184200675551509801969226831768253224471702833672621572646830485484393374806332044995269461102287764957265422380400146346216747567914092177809887506660604385806571419246683228663810267583129265762860895489523571779143917744428675169732834425020148350308879424380877023975680293791011667396449323868362342997365984586899777081110719008732322242458612545943707955872565736161313772141578216224396565913389117809695264062358684878532634150595629070998833640258282851243892016327263690015650548909139839722825172751829073029203081074414641728477430257504925520690889006677786830796133207685302780820197713773422863168118952276432992467917765480022054043593718584342072469071253758305593352605276374545068650280158799431562838596935412732986443541785263151590398152816116637927995675586598664914247393104777390520693830080989127301382940475896190913722725120915692980015109184026875440775089569538249049587423600217699697541811012750901544773285905179422641379216300374776122576062797372906870882937914248967156345925333793384878568158196868889726080550930755694984810977289520513123600952498430592891642665879585303326191871388251858629699765159884586872694412373293519533203873306665847778391570691271611142346875692985278204467627318508627247035865061185133419336092893269415813075982683897012984887727056580257823334080684323558681537791327374145150646627201056374738150480611225326290442130356465398599396305264704401736832899300905438498932854890262195263673594957663490561388849672467568797086539539733676651236167964894712573106236401085151138902954459264598549422206275567380942974593701952574850831119098873239392039345306899088389873202473251325639242925116373218255707840721292242576563105844093327920424163657208165054883487825523574374055085984604137561557464410997804602795919770464512604212871604857184015255913005911980869108805435214140305026063504207022795680501562653270375175507504051753690177362269104923313598051160684050432753199300310485245898493561453064896656113774179440463408960582711523553581935860935565274227689814061662779159565580683370966167127073350103701257728930405490162952604647602597492830957833546996060282592231208170819509148330543556891414970011064759715918964980348519883741288400926101121567297295962751545133021950767697782887658438373805641743127475836611233608742159790803125172565623782146424923557093152526743297709232860166541369012809399893948266873793759997350801079130455131021554784818606833611547286077200903886552312445953136514013711711989332482628712937872172721609482453263309266061130555098249263744073688355645436573320448840714849645864575613320756104971156436866525851940228940172027650531852341540917952522842005931139511123757127278232047633923059654725081519412572698727465966953135995152321485479821417944086182622015658850310802712348270468179950885754213327602768653636496270205356233706812525740656895130398808893083615559492761375896687591575885027610128980251853152088130152295928016797408097541330450333521493233623035768894868040206025768650731462395431457104669675612455721243782930946709457633674323900164177805151203781583533166188148769512469653681942539911096253834972389996616801251951381796553907571362409497739170632730559147799974952207941503426269597554629292843936218540486887920241634096756094250435420227667490156572553669499185649485807947520675004349215922508932631997120641162069215113753304675261241577555926567609021855957660370734689807863369731520976813377227507181435332051510741705148392620538233074796435028367814880663269862734236832824987643117243296990534073219202611850113228990425031755426627271535805155327690572027263012436572352832528753380852266990298283689709883108646464749247163850307605298496292739387655180123451963879033401045999234219002393212294050518360891043944769548488143592564610147469201020182334760373845131876539147403992587618633242708469794060955236156189673401784923368801901787197716359091048072242632866674779347697497655438026071654505098530458224185249383134727519751050806394707505760149689612352390285984737516025782345075082769160455163574037418874426263174132093368846451294355676097983393487511935242182291885583477096377733994093500954355321397070304697381107334231285686185937999709641378922375312307661998710054415702617589093814080794663140887940436214336451273873178440112611843063406292474788279851458532153922638191433919333729708468709322331322645320794648382110291548598977904814010535328504989840793497733102272451619556462289237855359765048169263043534588318587196568365868246613997721098181934747707695608079901345288802639009987524198854595855617362641797957297581327319938176096891059383848435021023962604626362097857079763583843449905989680201671468520741576306588988942004688272201327074897241392483204130311021690400127114179679288430280827349285970636622155597691473491263888452633726878587778974099363019845508981830489311258207969413096832789561560962106965076133456591257642789378810802554172341807169360250749487044664699042379100580539055039880890213014845284982061270817804803202988788838582746076118788748612015009462801445007984503791861171744572303766585074389115403792083478705681241812341606627155803052993958145934525832922916209370897665039837375177124060605467902074768076609111674436159983441820100539098534267681030907208276423680184522294159775692778261464176120136680901733656152129403702366708508348227045538325318853559575349113777061748991251095253332255167589512699148972159918164895720380785822141856959841609430686164034871404902855142406783419400562403787022861415548303119850575436881008180412797726307856821756737275121301137282907004365536218499116901950229014017885389172870726354208379947378578877427688567952330873929753407501740715314237854171870792826154692245678825017645659606407385154131600461467612953960844187186740339675243289408343049249500988159261298508918297222358930084713292857187349939615918675846435825816926940763092696366784635430069504335779900542372972821040556935283107028100013483489731303074689010407326388688448746046378381479827059689967712356639787617632438125862714358619878501986855798322296057282377613359162966526814765665039285484921723874076668013526756047765130296226360251913698707142180743247464498790643297046694809834873729636156509249199982524498570036078669979730468255323489798983714804883846252808474355966996524059316032605267072411537414374085871867402406148533913335539518351017839318625290462093026904886422294386374110963884406760059076552523642119941050448486750608531675023076771440974221289873749568158451848845110879545093451416895622827123652424479211942707106227308215378736923081706681829630628699538438723166004334960986469673926276299999027620965323379368812569315636982560576694583413579981957801901496753257449887071773089392337187752384022331717952138238055605357571446860911029207523191979239702680113668559955695407431246988829244459552092480230326272725269237314457944270861860258135166111267039089305207233703156596198853503594572005963834003367509252974177969705533883633370107416663491576373260422702477379533081744378069609845319350257728428676983975295217113733392694272365666600038028552824049419790287489473187201757069185803369099346428627497654769068120237157148914084098067003987802292135002939401426802432058870971216343372843955493449964189185308208451330660674399094440185113333069837711679953121138076037765420005204386283818713602603936925081675649316480084020488301427859381682988312593547692567905711321729153944889828386829636736931861871302245679219370855732377477053456225413422145015060584300393343502571806474294239236874401406618439409304498618389860332993351456920447111967143861276955705279329839593739831678300415137222810587830015503265212376797341006725562704871135495361466479695552608765963761524082720202254755884798578973217925318535242945113809437557017667800587747686175876955429133133542529719442304136523502145261774012445874738941414138378565435452680001690140467352138136019478924568718208131423612212093851291097034716326740496969914258626000609102262301580585317428433643707836557117401518136056591753510931983010530607811182289608845336146150976102932609997291196760285995967498168171759705250359610343466718657036087367305017993798606421378956649748217863562106778539596858278185767247905939798313400929436124662467525880548829470495136323545914435635358371159493345885817426239938612452105361409901973305445000792919679944468844668605244579888307859823561159643245863443901619426127794473196128336845261187853173150163856760786944293396180432737540082455648046375084791176660466372006076102806396361663291971724900436648249895137162437176922576999607222521477177427929506723936161532390215253870006007575854564241656552635707582600168155159091549471459404073713199430440373932728010423790266889536042024622412773804054449368694244908715686275877479034585877538334271874859919980682534490247022645793105522769568723393139557077261608838459856304553856695702795984502952875885299590778712218005295446602620111346096507792836858475425933716648654757829737373926776867498385917454030430666910141800268703752794023572176590681070104446798575388163087079935914992871444017792451163131594609898595137192869442316517852682537771446240297873873111045770332042537644396090968573250043767584471089768251995089651415759240634567397056323969590720687267261337736802670439609274219001347843287296971260355622518930434047552189069278835907078159294536252855275336195817859429187043053662521168823802439259514911099993232351281490814898841012634427072810009502528099034647381992736348644130381753265192652590584863715851184566838108792637992677763778178151315865021046785512947022511565385969517918282692272765742865796110296519119173732460239002942836757387035362256890737558122629632811111843962070705750929786213756619990949384617822857672701880493855900881244194013075472935066306161493322961046236982477658306267280635298385977331711911916507932665339694622388527098334377408871652199987163152621138315836765953098303192904371841968486622052747019958244678803446461501070245031156813157640873955234840171142481461542251866338869374523313894682765240702854691405273944118459539607391730960379815938195235561668188132997066718615731990328316677893556192593968588349848155959169284608917666206552925000193702744809291904825998397654187844679961897666463591156999798638137339994755192145450571026450776361851461528829385784286012650791969383051178233899557306696641442610047505584060797024678955060877508409683887214208544120532039116203429569094237612753065982746307558193326765788451742634729792690140221938576789255323152115374185408146847016731954253275600519621181588488464596464953560439752582653796199555235109919801147362460177022831831206628714869867200378975841593007664404559153197765828640706701537797591160143920524831494101016968114056152714195657674407451452175459507182966973873907605078696819653598715050159313454730564075068512742130029318081630149645692262418187427156907831077153035176083225416014838136561281335926198874219008206775099781217126500891224047363628269255802755013941451599668389262548038976948534504934742280932144997948154625314209633240807699183236960122314949100154673590734481959076471923830039928494603592490577945763211100626243613804706397567671669704527691013370418572349917910762748217498837156327748315063810864260188235752642516879725794010013863454076083507940941773758007763206507288364015619097958104429405356643626297306309459690078774831446836376847247696382133912519347847722673621737995090079803364066373271005297567899303690155353685300767493487247734251401329126922198096522347140503043572227929661149450655354480233059161446342423958090656939298517561064027036818337161129192294811685147907556181993874162421873937498549953032952307591588266825542333668067041481542280508987609825787708331203573088574293172351568599603282521203293097645895490275778077074321922348252730327497414476130625239629911955085033861974095031565908128959927289983459758766612125912759234714494350088900661443717161186048998865372841359751629849675603561703240273882841574254177868605036897569771884453918653294138732634380537397557267043026123151068340085399430699850518744983995660876129466574772907636354411737320597392942360891544540786876467031335287855706189812544776119535379039221768805237953141416112302140349417708487073887476448741700147691715863152175209334876607482496606815521372329648347969486130144317992653416414812593198203683002260243204228089362599404414266942674103754868120010962773379843060345365934903366348148923941392137323647675607851049808099545228068643909110250124653081988041961296655894785637794884723747048807893452783324860942548956578343023804761602783839280773549741945878356293904226043670375544455584757538928660933749918938700612661643022602635313745840274555911968289162810680639737071418443457235194743174501311358583844455852505299044637086459210504695840448386641833416552976634567155133035125670837003011386147247126082789293091865748466510310343481618767476914657710341581685574319276342417056204946921282007001870576754870046992447439951382706831716932483698163684614532960801430116612516217368341688905621290014361126396323295843007610389190382849392861286726406922047067214306441672377583470701675813334216304626971379083801285258619986432222773433077518233306335513306630950189693691300666653952096720582924325351655463904717249399672962085067494560693111139644523850404875964630688567726693527086177372513607484418655468441874421605774263307793435937940886200081888478798322322695460675850952403660982450568080306606232330991541308833791093158309278138850068792958192446007911462711007840282309641774848876518843541559497056689712777694689247352237592011132550400262537488519839287600677248271446852445762671727318036734223700263702547789218431501788139462253026744901384701359612734569468857002761041513681221205477237711123813328340491196710675058272840309724814595968761629652824784374029719073057720698181576049384140123607859065451240808723211906620939424093612859774101084216441489862450279230510061669995320538168005397207113692449469127457142154805392207759453206476031143989946921973174415757658435915133532375686681943740492155812113706108629952048228972842724197581630327124240082883727557906587928725119846549625693246202900400139520712571533730429246042113873273952657829349560726118497971068217686131814737987009161659420792699044168348229327124138824119545695235047486842083158927095692585219803184976277972033587373019287924438652800704988190198489788177430396209567338427476797276197793937855822433889521725954541072823104563104839520542667542514458256330748451698360435369080100914544785288864735984894801759997208669395347177030734378817011317681969645055245560126634893373701405793397212067875607918863488477284532553330307115519274967152107571827021271045568382701859333679385166350641033243592759703165644926890465540906658701769814611746018697317869424583444276340330175481414714611248690195658190420432865375048015008880910369641917357469880027469021558336741492616068778521241803503947509841792224790923656401226931362320892262654732074608342595765709481736387183112169388060426763097330725852158423120952371373531663536536196216709609672224543834864099088463769811522186935704845408352113685207639759552372373462786267836612420525194526234463518313882754501108237589010862433078859310012525436449882963316181783692749087265802773057861383229949687446649188347392308276168603621552687318266568899619015012067933213066496566531199817886167430334955075274002061428288781947056293771459096095850397914057575839914509537258513100110172040375891667356164115530600787843101037217738599694348939953442804452857942895398582618197844746134073246693419793087850900047115295104872714109592985503152016385268542490978363509988787766714846201672357593907139104059387093897559610056669934223147498728999057323162567665999929634908592212284397850890818442167860391737465191407126634962212445501793746961538902210798909433036457437844742536059515749728044501745986191234601488278669755775790492104402094932299160043925196469793770061013079039005346294999503306160262602450067127032816714238902133121111913609915998302879979383139619142578908988600838563213867805258926880290693305928396187869164697163365725774216399482968933704191146419036112087490417673395644232499758533321222115113387620933485976045034077460421855776649113068164347573837996993126093667888748119967768491510774913127169049693420809269013723343223935088088259374606511562748555706902192797254626951637338802073696392092138477776592036064820527499190095222577979802717870551443042036022632415803454741223744517142664067457285104736608453445649258927445278861929263345491846004929876572990234513514624576634453615982116502225499798804158068596863194606359173172292200022115279107036915771197803702406560502865509861985835135354305040684929975038615370427394706937799051642610047418466526937260615983152966979757863346000432108388194968017134560207219412764086026729356272137913106107269382073195952997542709704576482269267286803237820751636172703582030351636413728187448563661172721546727413921140698022650296122573836031359779098566200052576453888454283892165831109971703299715492109153435684153937356821027881735516790816377815029364388911150429255981230176130218150422745717609453443048741342830897558971996489869150004460219702290044008542361616299298463642192515743133891498904417129951373384344733505306880651957310900968656994487576520913344509118457422932677363910958524860495811350598382640155090553061528821500287405749022487225675979352321719379423543847114684904718790048772721321020762894300297813969792430911940926611743950723475560351791294224303018421370280844320257820534455323126343573406034136460431967763599033009476303257948642057343045820907875258954762028747193416422676267429366445913539103367752341969008767933866775859336276993223715736126421826920790563279127153135449928276270714271412638462739195740228269708820279770438919049806296267534985187986179070198289847967560272093782847196171242547419967468643969860144409689794662348981359091221987277755620524619906784931621264347491139478487037100682146478264597002996210210738122341266548641948241484125896167523904780924918925738558928141973700544080180389183971892422136312258930505224106193229937355491489264199163316355287732754668675033071540072728201673517598332699393847565721691229730381022745854204862643088815295811116121197343369369902659629662475984893471171381140850950218453644352157895808226917713188996609963567165756260677313405507564945947953371570473887585105998866487993197970920271633594500055308700798581250599395244970983905654762958159619054184868594887038758981421299233623486319434066861971750354862117549236825960165502805996019685024684121607357623156468800047254096387548414561137749614340150660240799079958804786670628789208654608412631841687382167815873636286049526430539285575452848957000236440851129947839956058376075673724773744584748152745615180485994047676182023576342096697398542967573708540828911816177743763748863822718341245694116279583855600740954984283004873659182342748529822010519308656427885629767452768130184956071236364729753157992615489437187678879584298813630090471184285895966673369780425979248534517411740944067979727547591718205509533354471018843577401606431467196383113083202063516331947643041323988739521790166485485257117296205375140275328666094495161829212810190019002997230486294125397012333257320211019855187545465932265730665741451818970891137972917045577356242130975206426913453840495148098782170131338143224527042258184232182427665674538813538944181948965305226697844892195022676085984454180484998603304415961140889525295604703223272202128706971595341976023559607051868104174735450617586676677299101138091783019637500680958975724462635811113159555435391942291851844558879468314623326306856727128025453607316364296122489550841975572807051586248463925119558054769243608914638562903079770437956814102187254653807007917737893319314884565646407734950950236333931355736060690226716719338763725421684951455842762330319885010700787545071470018893752705373791625075030518410979443103562197985126783759801985361312747780790340824687072665213126462607309949987488235696503084577652587794777540332209033939079863472261561999405995637217430325651972337708230635509578099267219379815395030066918784129039744930666822525833066707678820282496219559571507820035985503037796341264225659922524427703601176669299253818872136865463522196321673253627496879071420028327947048838878422870742328263775225355487258232413630913842954625876893789021784947639255723024022197466284739436613632583941650271786336329499725724038052560293576172413020526204345935836205510959428293048566569314807619945600670337398870691421382695782587642783281795556619933287181581322152418000401959148673444337294772841560259119234356066631815308709744544901061408853099611789612211909353006350571680372872227540736279954909471142968058242992647592867382226236266958346661209226738459756129654834565717547669416219972346697597177971252196351563274166050824293747315029338520452066581409326135086748128987833822474969314203560981872026649521659828636421451499292036310787441227606184116736646407881277734299300205280435193866351064102471708251396098835749081413079230595632085018610162536799879015861851815303916600664477751383690138182592409604223200243585955772027112958412135873061353900362077386122498204247847032162080710585100078291214250503854645900672907336148121810770870280380838258123220937043375761031493250523352079291224626309418788058836561758677252142006471865410082067486038278495648539240997510894333443185756709014068044268402486944540277019553468930171390159697467055340777298797341342103548563427327650101856757588081951392335322465626713378832013424067636576769870415669846737229446776220287398373195975809589068432097213417263666819163835218804520430053115050767466034580276091143406972315576212797858952405929726965884640697581151860151161232059723345166054405467603877019527995641113144201910140036697153594718963218370105562923258927322966914795592526188045187649568255937301171628294670886313254885144750736225835290272968315847598517734275560927322218189786825951093762624128388659224065334123823863676511876292028197299200297573136711681056727815786764507697781409025794834294433875127739864448262696020186673116493807553640691967172012519725044594865340376272363637895103415987857008585673767258013134811524040190065701573936326927271402962053127863316898479570704860430695008014703007421114211168692404786575201273667272905241866137659684301556672584546977198674265463308793194025427971732019274619603272325922724070688649741333121829525525805144785483873618982352422755633636762060082033640614693851033230773720698772080180711227521410453086375879698039487209331013620983333587617716644613634914473799649804403987904431176560989999566563486231928456372629912466246724057168545272007327499937398041165431902868637134373225303137438934021371760303064888644810563688855768239875392505807054962587222417928603902884264856094865599951516677171891067258086398331009199687507934144588113184853696693568366857202934387098858296145193424841678976739480858752143163875126101282884416466065049093332449778690002595496550908969763987514176109263268847917293959454694007491758597946665354482366807822699499337892248827605054965828417831135217270270511757539725842582037562631142063322582652441055904999104705091799423651777783873051066667947758206586087522456107383369713277879246083203799503258126297179462373827160208543544206084039134402535660723302321978673635627394423220844852372567125680008308710131979645464706756126787211764586661965848843533090196073172121348613855817062345074931312958980144009233551370438438229766733664964492734383106253094709027644921993928957523252442406028725698362770650409614990095623656011644033843761932794047266689074024148926407600142906272823722852202373243564621421020779626673430672672427593802164544808522558140853720213556423572190282742392999106859310864739459178572211519080467256727928937682676038005437975993248666023262331324533685633374453066900655361428938458280049375173872051801236337510759304304052677866869556963186299266963076579724486719225507821275330047437741734447870606469349069448700817541418629715848152549347328940395628110902541171157478548414756226300340202591250213683629707793314282846895094950639286740094235516009379420206791429742294493079943015129349477901917126689385359234213830855489375129327155988111255478024273014275060316191250354199638928599559136536544229244188878574719430885314843708908305903998094308485108557942313820302892820754863668535158400268368515109182586532426798132777011381909884131444079952858145181982027563018709144211460292020531301585894159692781031226776976606472794656059268430900173264186092083923148288114884329852425377698159139332730902089628303565228148885538262964386715167808536076346196876169031951069195759435216026095846829967462219604080343871037323315840321306128825471279275861069064173533248528486311946211853523903097400546579813748528427879119164234983766700046878885017114154757862846958339808720036236868956002100440162995971117020098349104441116869070670408739628855505260719065175163186194061861740725083897929733800635120921224181258861225503267476052263636127219857703101794998184645347687398221240669152364628102847714273715675174292404793223753080183751592768947298696386750784675787376318980620618728450887930081457671658699999267631192944371461333467275320724168059676821784786414969117104215445939106039227091272487765326516187870161998434510475504671674539640171013783270286841257607798319340297156344089961339524468588914783065116938767927000500072781145683897458963179293621072877076154958284785283204501140750604923587694041536626552188709514305380471950498810598885116688606702281544064438498187084578672579312393139267592611015842894640316157020895608118816731850536092606313214431845201709794041542222880083219746464760568590597155830204396948801454532613537883108899320990064933742538726323825779234095516759254523590610973845757959135730692771000295486539762814301080496727667233825331243199104855472920861087958642069395671647214981372778318776809685029101299853465684204436717620363197509945183859217351036254103071862145039405692630578078721688318916065606526925274585983504922827415096240536373499524168638725428776931060969314031416343257985890433508106991988222006193449107752002329660217415557035408881096991037632688333179144005521512186251509901039954900754749593828354901193074332053357860075667993671743055405268053263001447103789250708772813352038549549123908262326896793594624941969226965680346305957678942416641939749035835648630916994070678237151295105575099753489802524194450960040280220092201982550861285657260637854091425885034789024217323762444929174462627878131441678722082901849009036625754282217095127050378840627714087164423073409434753171533941635673705273521639526957617058561706358650363263585218444522477193118928220533280926308821292787399318150765241975531401467189763723330980702516416522023470358095513731926661106418823231970449682565023837631143136195860469625535317287255820522042350617681509115381897430504548719230071128085373082427600757789681700193767285149255424427278866048623396164547654458657309494364637615415251059099596066145160200641887904771915008923192782955635073255940161561567598575247320931238532165540116162484585578202875791723624579509009545776491477058289609340633339364815445149977323800989556173019878295977205799417355737309282548546744571963442684192052180944982145042092474463016308559370080417918263344105877964854690375981057682428223658989232257682534939852386471698135748630431141434504425867957135821522059438859264159056509634400895939407121807488775011114011236788045357020952352562471189812988678635553067455579837771043795588994258718462785543592724065761868135836744142439845820898104118030960902803491420608730773364477341597617336175711916364351278812026463373491840400051209153956687614359266013192117733608367467067440342485533431297170781287639442924784779244147612628992246026941508315584882173323891820744763166364533539442088308778036524582227026571438271938076094826697826816759487823380874245074757482679864707923753271043998075858295687293580649200439904078895424677021518235331622795223012336963351663780848484829449603569732760731987277515389942728649255791243123321886647456901439759438829468205945097834195658395079791201605071474615630359504804611822521373641837897433512048047093339604296990968209838097681320331083509357719922975673147226226799820154000415887201522053054998090042439164540041818986095621290107940865463782226987118860320257622836065667625075245316824306333904607825861571203536669409469353195038992667290750239306055297922291374262264945953555358814730153324601442123778386957598221287497751392836457290246066107924476989172836085566215115476892965140278754719599108794339784973336920780455592153203993723990714238485979127337971401053639019358532390146440192626727441900350801556609220463092064032423245204415331361076718613002542016079660500998287697403122208884465877278379728074808012995843487197865550930544311769413411711993967066288469037260492492960086101137604345194299187829442010705121660722077240725130668372718485250184475061764418372882320166359069758417303261004978835680743150254874393071687791151579534169031206754959624730724047739084054590502270991000087648498847750027540883964324001901443204243241978007836139225565712538590385550906055992372935678317453156276565513647121487416617604950247892654465141801986512407697031704442110450730320025175483997777137890284908543882533777682344434997669534626768845097850964837078143198503223519304991029102054929588490224265849817260254154262549141081720602683678786445887636340352844348407388018798655046137635589057663951499858698294543422452594880542191614777144765436996296117937310995735237103565410786085180898055265099592974083642832757901456189080879160525710067686623414783908040792595926488304059909682776048458552363521190102557194020310027208469796601291382189205996070860147542161105887452513991374924874713058996948014104467087819243471500524070041114837295291876987595844445821512757048567560182027875854537865537061701051497272529761138976565256882044712055505718604828421969278265058314133232717126805506631248492616784653945304456108360638382950409059682095087505084208455822789875445909317613541693126828087423403139569117805324205091743298537793281018138127062619076207900657043957035017785664740465775975948761016020024395282988749798926616709179231902586376770267470965681764992417459931695959921034461931832862215881061561935722086106630128121939818539903327234551277598638007400000466335333112722521359404193081974072266728378191012621004866677078571590006809736283424611308629497085899074579660976322928645446716849219560178179601140409664692402938675486668120871529385447042206513292504008169057140197987347592766638949829626291288097438439639211408302781560641577041060080275870860558805024926893365737383825975654198885552385240732278455677226651715868813879627158321037812413533358723404129899062721314383231763225944095206409137891037268676189138479565305808633157208057140707472454057299854160600784184103214301293064345568784521169012655662830638803465856693800474547127175249699186701244004071696304053406534353887931221661001196950080274723296560062438969377374825075307775312054496637270585372083819088904133736559172625586981397552529716368462511308535253302715297638444001034372535338438125078234223569838758201408645452380971222139921085091494670066528137794580246753657174806551706564968033928315069804747798056589178942372315922017195381217945650010367167936096618421276669341689365916376959308008295601215447208301499520507147357535050326385853633858491413967486861562858336634716340143227518887109871771797295159038901327225484605972564800500408191439475314560537090746333923906474423218424811696581769141309998900809365362935677008271659008225405884102554494420263415188757323291332628516880576270607343949725558203916709451149763890544423008898764820990102526861221780340638828864417652641880252961892993538407319237506816101737742688434189977683800367659238594584930739886125690647138125855166368012371241629596817578523140628644365783641015477290838580126317163824071512367090588928533437788899136687700114169351647512574965141797918950769431508747640073612495568896209646761325278053879312539561635930117740236670597836453370331240958460218045028406647770994523411027062705350416196645271045220638411206191959019454866974382234042022234558635071670396989277399359669677630595599230924355703553534884301189779367180260630296535872307433186794265327746220287294240570579179576154982764833886176950951585963432889665398918713507156692381011847103024825292792740427456624293869614992430066193735585612048220093597387779348433461287975929485622641990759140335726541612941311157316840452085337573013316175448355729801129174158100013457315336942127037334158873923132440950865769832606738318814720972872092957881223879879336854879757590719760573269742157833394155312824968865515902576147376519930942695528860449433707178503030593635026795723739617559145270799931691538099743394500117868497337193025105672100452456138714870971306604691769827065918948667348495404049334030105992604333626351710354437489753820127183930314630947596563679788471257121564945170720456785556218941730395538594734762277765116636421725782311700505847340080983995953033150665912107556070214311107180153525994744114325205577560692572320795541630884281164309537369765196403688122941885891271016114980921402911264903885316847738637802706339600676600946676357026584795083917305509814367207966664567814041077484700873180178085323234085396972818748189478095498418202698478230026954652992954684747395017858543139091377269687146532876636565154127367272314074686893375058009622430412421684540505237337738192811916838936259694508143029317847077238051011221885033712880034562153329797007783083329263658361441080061332709971943763874763760640441539072676822294608444063572425469746871995801388239455856955513531967674058039798536308822710906721209821090103958200961197785316571396528432796851004656456049439214537512193217300193573636099492057321362412668849555876946467975241460043852189047723307673817494870222316857896264509672729375548085523116878448147325877698848882562430393769720641490436574752494232016277876660067722020455285609369085965382172949123440597083867860400165639325355446486186799617614501956790066640952234145264219990534094740986094151204247908820499135945153725859112665457316515941676580125832672114407817690391350359603835596337027622621321322205220230094552500226775676502727563352956331869061994323703343306437291834923020275295555980108822957357387861853217023074617468703506671079416835463406879998026217010886544739758450674396984926674120926938181768312541908425611484148327404390773322926265658862316052391760322412800111929122886901023051473111638247399372244490070560975105955079183312279630694398459979940317893865934527057216241062033134108223433427364404231367044177967990336942180224014595709726397533278479698394695920156386420927587622106219563490621836380718592318542627497698676584598294739459711929589336782939793897342198637019903249125679897027074250094605085530610890067236109731622043237859969253804508829945668829138436534391041443169965696929498502302880945587853406034992309055322883023037815277099721669401205525495567554434564671438361332585159793769067244749107681552887315370351775836087041343070563175928786455056103873004294147789127851238083377218381380205905980131075127319816433940608938375554467410865041229407039471265194301619731781180612296427092054750306549817682988200491450806183511611494119822987260037436963884334142828157534591712964198676064001185988866943876433276536734276719582207296057044684837107540960477834426331895560606104928076070606410304587776729266398598369213761391830011196892623542097659974911799483901296459253343820307548438460719417322172516852760227949095345687711214482979114761187456447617360437479434202872609188787099049884115425495067349933836933171881261806660319509332727356172144874923771570192009565625802894204772857818178299024296758239714888267455271135098957855567652664699215337042325027191535225287369764828256323576623341078082548553769280636953829231280036004592058261799854068448378103413907167609654518824684190944142371032661821567748788497392882469557155150066358149919036889446035366287019126065331170166638735775763671027570871803762780821257127167995022111822078693453276278466403235489460726796172168673702626796611967002841125340528425827523723977368864452382760458510350597309440270414631100572528198843907139950408391624225340658290420176699749918541722198799466960168863538366213001814475636279290428018099068140582008538872956949156527201718014773967076707983339526193370896856257300494302242130548314127530094147501095750233169379946560448981258181023234554111903200954854416537367322602669268820294349560729982714965621520066185600299288269507964048897823121412619109447951599298798040377798287000588093483280771786755959430089301105468792636469027617299360286078482920001900601383969843650799972338915895135764965827129022909481170579821409844216192218457029438208331858548118519894954722994017521913493479698657982579657871158462219597905730265244760722613829076304233804006613590022648164723475011063780685649099804277866134498821918403075287322502869452845573398556178504646342399280217449408054616776569876989373648104495600803181471159195321997305811687293020319628311191744972487890331478945191557681095669967770179103056845798005799240237007839341003100289266306916392947737145715839311959279959823115482429185225844698392830012944930373386654760317191384852849185752925002677085395417184063168193509781187371086307217849476077447828996527695520905165121092208004227987301068162466873233077430613331457847533538771074067964707521608294808389355340334307970837277035419431709168784540551303171142031630829111293562822503337596901364105323790834377622883991176618525856353601197595678022108240721133109617657484888033065117343820545659270966608210518463846037644243089827635467816693007560097168900681555705482752880108388818697476870221205218384382789442511094622006524302711758880144398512448073392556915751240413310174933240881672249710441428786926386158052571397572016787160176414606968651964498875508244592970529074113482588298296460123167437221572326432008156941373330882725733390142781876060356257986983902403832940752593994399767424711263288098014982938868424436286183579978998072454402124052129881159719340724418940144416080314527500800509055511469410660324260903546819463565565127035243577855749780183254483238355396081972388949570279561478751578518578393672210045652385551061469759903567508989149887049092932550693249458925263282734309982507329323018533054274138606616888448516770285528738936243849311495046266650065445512607198652002512402477682400504661323610755173365754635040324993312059311313580615618343272347247834822831569491339132987201003585689172449949158132466838384062483212727331933317322534287447891232970985526765491836728943734269800319915356849664018787393871244005571045895796478833786960137688021130283145500169216699540287380587222790913826306078392885586157227742048519896348514000221198330337814313456571927242003472304275122045736429838187863242948801186359196274469358589815391070818908585039061237021115044815159575150992655604790693780248834403517824840490321074811732793639457766354568620951336231365950527102269574385599910136984077966901941932296533065393831136227809483246725643387098234539029950529043382357384649773542646011708428376117680357299586341857139400647973481796570876503326944438795393568500489118381579300658935673208725617079357863356956121524621035262245970570155693160541259591308773034749249238764319379622836023184725719835905380306334911272184816887483541519966468826030783871265851749245137310186943156793475818561646258199925668890244044443632418604809808233648178379529918265457526126341423168745976277873098988325451916089603339133479760249073174483020141137490910765162938256381465141999659181336171346523711099482364306929117681686328816546244519883984803207265984075846017697960272066221929830987069580643139488856991085128570679752535432979115409518979890210246983772591556930423994715765495278636794857387559872817045015129543152176771792756677381347388620324701979005930104344931793046065981563998265536073673783074073745687285957241149509596468306141517707008169785314769443230817267236758000164772075123380096621014876040060860450062132031779006282665857447723365535144588859787225856423872640545249445053361176783322317156761136336668816153858770048380014385168218658580387885598823080742319753739268856950001882009725196468162863095308482205455545360528905216343373893635176550760434779492993571877379642698445797958185601569101361091870129806417785141910751130365593043989596410803206689872268281153642821323873394935961917403027162805970362749515413083885948668807628833054567198022434316403082990979541952617959795695738347755907271942276996551248135055508345183448933416837333593279572072663126682613092680052211985352915010075316990683583744870498335852684956768736514315110155216373250311167991143573466643274033311537958449256593624397437781928921393074803640486906052506714981816716499108226450890875803432132867223491917356910962474495545444249738711710666036745186712847157836450092310951317143935768388396179986226725299566596363896898683181249453669581074449980062295260355273381224362475184223277528301960931326021750791183790027845797794563594357825187521447082000997500467247380304840603239039764861640405437419895637485704290892119903623385865083749356715795783853113670966428552339865521816059703611536145689994178563329670015542112124112656867939112700682344106660262216063247150011893259402420020715456006762064287939614332404060799660578711382013459952316468318542552128870481316713825084617449042479790916522862686118319745182464637001526595071621230502820134549064729966193480585296310090729463203021980531046151320650148561365250730238751791605130692249813293854699677362379545470617827029618204811463519823095451737788680096882034572126621192044270254234630655319626621154019946078933233268147717007568905165484795903967598410820764193203050978333749544341185457022351734350184096227642239056610907095022800720793606454578466492710426881465928959524669033280974149231835764018673941344052716906491778249146544130839590537651530356497341906904116949283131031394607332451430271239335351430687983702951155036328281453621674060900575241366341812490057531314957913967230776942224669143369373043334830813427141839872523030358761923530977951698785161709797107806669995422974644324217063760138563726584926522704661112455023321255749785994376391527486615512566339653791766432070544616998952974106399167500571849480440963559839806215948209817254720460224376247497466891948401023820051548255071954863167289657601125828369506659689713128423492943423499726970429758259539831490665328942629281891893749045354145626837389199994064358322816337724333708566660823722254921525647852711776204704973505900877323058056270331965979801548375568073897660478674112091621315140028223214566576240484232946188962033431201290510904910322727312911200331760511191624822876571666165065038669668434725461417210658882467617220567868962015719890658650164712738989572203082095345779462960823716251434823229644541984375177555400195528813397884543368381570949675629999725212967747445397459018229421734358567241459196271944591064574943187580304965254950317237854683258104346706750580673025339598865240312094330981247659671696436193958553572782735657269874331926696626774794273527613562228279729195252493624426025844961005952619552442699461451852003338894303882478370084228684610636041805032803517847577380104408284534933668136767459711266546505490738733685793127292577995025351032503639640714486435399732093711398776219603763223957862153860729533040040550467468362120950490439151402439754549851631645057542310081926918344577349315571378576769279535966297619666317515159186257763103690304613601001371095222134247002859125427932690850137486502158303060809743282044046663962895046890275879618964618786861691550404439116310707802033445935290925296968286739447936820918033695278915915944272034460546691243913344185041082137538289459905539171479641048281036079772853097949751948107612449636486185504969231932390676879248741117739892042007893028290702256171858104963414644797961472297824445735755932861189299933516157051920656270546604308360816582840170638757174510954966165286003040486086963860747701748287523290368822785003363501390468338790221315257707736706518916871965763647058362711525785079996170563426482319328039637735622162330127804008998428841379309980266974600659936346924214275914644326861271407590700383515951920078276503577070720015308297101833514546819966634084595744359541176198732305591056874455517972212989924414006961187522711291639459765343155767147239184210510844550717137803389183822774529085300575687095678090670260991915719837079318961995716675703212603700892690374893597667022197226117076797963882016478658851404187801747810785444457523460218435317438870933795161648534559283529501985205644465818567733142046234433309613029382052019880116936314683019469896119046698667452654630308513576791180962243894106878792544740511590274938209860083178845300792870089267625645976251492326203388551986650800417017476652241632265671698680378995001586921361374206607480449895702396680043775495300229113201216339755482582275182303604809533009132229781746540046588594004312113512424658297102572307492553776571887313669345964540070964537295831434506709065217788128983644413776190655552029963080364591572641880667279491810408044223916789561918943903423589259054106405040613592604800396649693214737147653834127990862794634302312081042661403935985546879363537459605036961292988216935105123944382559279745914518666065622645091352122336021326355287276723986467624491037258050063309857478967683636651503398438595918985155698909599530700482344731110779637195539797858242509553856828350451367951675154953594580009024460063375063058973927175407477696354384552980583512557652713882652933261174708967927642463748735900969124382786323608719931069690597008739833108365216433254210938611086649041342954775000967162588567610487636428169676221454958121477247138572080178935947270975067337183235706461804587994310619540637151195927893772631990608601943972699086238678379280090601072255430212516062234571636430922335806782982331059789472571197330484090028924118876694875896289215857428145594365158050716992716816907536044312670086362416124992983485436987756183712420165289194460659018625957744750826151949946682471386044038325148398500449505967326195040613798033434918122953969955240275154022871850531764120762184513655721339056319394549935950355368018022844874998733878880947726148233298340771099326575867498976409653125324054662208969301805357087375255979476083327701341345625470543470799120515122503744154869433873063901055113530064297862994631665040997637920974919453035464093614599087070612936041265887923644936211602082308547051360949260841478594474337662954933530022522307275590703879485415332990539384985066800895195601805164010847627345903150160727769629437369758103741840754821804951787126910994229978118712838190718307062746631983983334089551756662506265017633136532185426998618892217837224551502719158882149353917420182784477578994906100279721114429290404936333450623407385335238071615417646537971517508723000068789623959153811953716489553953742023267402517805751160439432743602934572497213882443583385550325104810129700075431975528713914358096303161126545701102234050795327333339701300736466213787590611414026187642003715179811453443830190595502682555928723584992270257781270497957624426134754202350515477498327875504584131164326437868722327096973020007908852747311827208115895156776589264658245132216904903597613023417429706050731276607983174349153482100210653077820322271103607355730644710262196253703489048176787406413323269167637983757635489502068839813898134123647801282760755488612014183176973426945821542982615730681773086184649298086067565488085619277073925404530420165869833814662433134282706457849470163510953215061342953748670525042765822179642629358099635116747985332844645060876776501988397559185291418957188341682139597244714704848272450438431433108408913894884667773779819378918299333047786368350417325797250043262288690040694838881679598026307549639910166102043459119177029615317467236063118022017931501891310939295102076656376204764537886375335444470766847015258460492516718331618234701323661212378921466366692554177992737535141057160055511203745418475973231127734141848015513258961292462237094707713643658902454884480829311323567105517487730495808823739235094202467347112934114899596511906568009210358344559862859522351630543950491193741387060957389422336634997790185662596453744885235942223578037044770047663687626279059619676224127802974135957921513551862726388972760548843115442952352288755337220100850560575007929007185518549220302518208225127609068495196378758571024186236187698659982053785177104916557193269490514814887456634044691779848426119835407193490556583646728593728014373537627955146777692070568886502257358029678021579250472174515461280380106648929733844519952512432070802192680290782936955668903875346414495739076348041004696968242954890384322881700738498203802862811449030796029362104005762571288538436570533786656811026478035351430666772545339566706442533102792082861941072663533477095112389488938205609742252860401375706343396396147148544672178522045440689324886664818971119799785748085503133277209464188975076869429343526477060737297947569188657794319938979879135673941602148705316630404484592690518857951802658849109240802028090992082623530956418841259082939974036207746539746828322666571385893540203727584215174506222050731184068837069459688450925132205820524750868224123301123963609431386116834773900128557305862256752339387988155897057555191277479017731184374486606189531619363669779252802877904585012089734544021872083441964328584210133358565565988264283556710792016180284992240212093074142285499714260936343510732448633554946683061685194601080639518935517881693118658162909209919275860020285060016817309620283724481859673553090047069702031055701882941136781998372009108644901700273825807806488887147588107215245150637325369082578155638277329125805255088469998888946573242484362004816099166481298753813015127722253602633046605775169078752263080181659147647622100669948980736696890096768709467160695103941179461554406528517539378494695375402603167064901982017749212000589230647586789218015579753707805624572162688849056277862244313547769603012403234182698084865098927527692079464272091644919778521646516137377377809562937278249599253051487100549876962091068754026709913025306932876472596066622822202194583928156455527761603945238534233683571647625258608011329221098104002470735211785049678728281919648150438276272747882148229902607015173005478632910662575980740407430522710493080008776188271234377796574880695455579513895048633078005427683862918796900195009641668471072100631937237158062168421050264547383259070544892734635766197353989813481499340979086327979757550518024013325138424061099470179563672539435355238642460874478268003426485710369077088423870132897564147135023524253656892240361038528839265117958946832902379194891382006832375338359282232267458886197741426353348426514194288382639206827455292798152782063880662805173589442969470247060886526452131153444755793672834162247409822939172984343795971436797260511533323616384395725952239498048157116429225388067097984590637953751639703387229466868114855409152822452348826941488593034483829707233517933266246797775597522714345260128005454671015866781287344194684853698356392172829355054798773406516489757371155201944885972736097584588835002461907533712489720670851639724486947784114193657939601570294676866165101243851828036213200385255404315255621335030564634540919722093919224844001425162510741712699532149288883939963981921150063281709410840464786874522899071186879549573430293881918275448863266321000994829991845507969595405186117672407284802305888979827838400787305224485758968867724998292469703528198855069855777288632541187336092671714148755384883065376131368755801974978053421898993851690787009760988946338092240701026184012775372453258121189880513605352183633613537085620770416818421265154537450572046927205622012061018894589797159545275459441818207009695116126207097848191013967147410681127562779803394980598535112606347434827127212798699668156600789616415327087083549693174476722451844601847735031067244871619931317541502273483270584067789658934836057111551239066703125468744759242926459103741784803231090864089310268258763102186752267813354589699898326882389704425385934153089684245077531024478769137021994778071745138415627406144074102285918649663554955943421143093746722651959509843266609303526396897198862356813261006962287861594930041177508441832242696895111162452379557413636054474079193908569684563507820806287237641761898488111319724560826834189555716635965169379286635160027446077746671787280321213638349459659331394754086007961745516159460345218215658834824998580407076839873273060360237603951020691339279301436560342334701218331076602479324765972004460926547479736708981065424356573011606460568113004160191676235899616628006459530426604482736669881971927346277214160080738993258591129407035852652610745801284361679527524183369939199219420674989924219415176998949046820363432874986738596842501476260635379719522286657545671266566928122375666075950006200748653743214149322575669600908080767807587338253972962395867311971391864294185920171451029833772025786414690191762391626495138865835719976180455954659730487253336157098312461462577069556028458662914526322575385136985260886239253315848898106012132286846794186632863233005442368471303777249490053432724397343223573685205586411579789786346754303152363873158033123835247575388388441198386832484482096285491084759367282263118604817310099154690426336722859943376654912874947802197026016195230594477604378181527038926505767800291432038001877584772924601464376588406385344960684085411512595768080171294453743386651247303876193808351822961458638877831674520884316629599578880686121804817052695299055380240317768520450406619085013802204356529108267383702170463122951738702498986350897319013616607772645703964328779097310689117371936635987612159624933643563785838540198026888137206996273884345978752385393156091714696164318901431283716247598475845895228422518114033687473625584425936912623699162809249179483335547696725745186683652016976330827735131675570146183626163377849861407407808141452149146700873695318202079833334793371302732140570265199172277807339300416085508587594658083119667123706042238883828696291905113687300416204813873382619758286723295205739796374873547536081758316888593223243401591352627352547939696767992753320589626437364759429871047834389668185750525449874312044877202587108539411237543449142815358014008131190615696384617772209410812360226460467941535541652457291457661899706404571579796225531631834260781379688277348099543200050753972597340987832042022568849879733403943348072477811797630944605796250237227003598175758236040281383685930765723815813815412672060064341301376164661560227325308456099535660815561795556072566746460273542305028618731579911717446589280892797405290469002729937976443228942313776202194879501168248587772403463855758228120960082026938045823532051132620756135572132136401383315848175548540611923296470013758821331749135526988920851484244812656284987669857163962991796528683972661347643515608159222791217595452835770179229882610102821622451487294607872514909021248763590583298506473153343812929285707090232422212322956583837858198738736744807816564636394785958351529617800321378639600535669616257584440392637871274482659090498815596082075082689675986396272872450743978125047366435455822623266389040068115925144238526928375215494076041059055623414241926876652770707012088014892014662516220242874116661183865801923539037642088190070784759654667155574475042465562908293010548470720225175260134678367575543302224581258487597831824158019886127111169803167987681068967009382041571269779699538534799576085706817466916645767911099109373791511701209590683723496315825046099638863723774035389911251111744285271860378134281202494191024424532872486297119198493903526675126741920022804344857508195701363110341949498638711231227227036080030383153550322006141318352056484142094077967674039618602682486913839489707570637924380171939822527355382890701606797028850234728508187735474046972394306245497567002705839717099714001744998079190915877212580447305325581780575265926508100930281152578953091999710226228105320053849519236562665874745506120811545679289295367996749320730612077343901853404666298319510635455288277146534590370780491395052530718103042460260868838927962175419032549639228583244451754798669380718739427994634175774846029734253545059229308978132011377185365765974959936513574159761737191006577692393391680783799175305890581687802921943482019419144469087838254037402172233799017165823195512129395608135463496098318297538259239722580883635045097178316783921711054254658920404756520049883108809576826507573803008463993738111529113724233965289550418504982248800614924869859347223930754905759443495615624386485045712583551718120001856856634354313466517631937379799015425445166100175965853660012482966841021361958856941265174400710444816206514735943037469212345325446238570687224249388629940538992790428451861016446551792085588988311508051923825879019381795690394651847278865099717725221489668198559985638067053233639827555426649861575584590573665192261809489393217571805866082825889556926566730500174158468961845466068089070942320491329200497689156523713226771091607351467900069597003387603515929711838639499279872181216774901012352527422011163407270447086994112473835300810073880946465543202494053985960248433390598531000676215796559229919558950106079619234816808705565221885814914759495184184470251703953930399593748589124033409908093621082920756633292011596384636709924922302000929685756822529331020999871577263523711923758135406709635101752155550108901313438869199352357917856265959522445920080142342410198344228823542046020842745377195021849014368574186852585772017694801485161321741710497442206524595175633893449895866387130023324363497685170261002008840185831631574220136192645833169313481727147336242708768546876411381402041180033999325111646605485073997430530258880502015707908610322499702765529724370203764210221149624033298435290973029605215272789782100766808755008654842774806807159407639914819797112175970732432231171911015057812509859716668300255110544689303088834560029718626396899014220600171458425367162154167162030067011241960106382020652207232021234755174903150064359363227646040335306585442832300521412115571937925695185446189087535024528924804496049564055455120155600993689081993857974695757278502255940407498439006973754547693255927297985394324028095626614241837180585263027483992751857942452841384722597455735667080145326912145781433510491918286271823380034631013093800870809248742999246618624820492708759008847215910128613917072304288582456132763506585239913755310843643031950716858478234820929305317769916021878608090141611748066387799807014024608562444775701363931276789550962420643507007930568209730552020776248064643844787620354793027490202640901733071090714343615326372361189234543231816665540702545272714286423880253316649193854564831595691124885847412314944440484047297613589286563358608774802332687326372802220201462256070288238681532963205058657083598719276419261110694378319588471828604942645276048465399537221252439258453109171691488133229525995256146212935744258109545973875480717245602969018848717360499955832878049164711707726831461253965647645529818245734576505971843916140085097145477396475748697789081154245722161342135640526182520694660904544562376583648740833363484815611501229720302703360165174361163387471416797428933471360869434824324814960430148926798186927929042800003526548498724692600403631222233998028403879989933914381938961977674480138804951889393992205247729259229302100088678192678964430246031506569072713077736533071217823921106935573182620922656490814583019833577159453280126876044555668835794076716368730782364733831779876548971981395033552789182338422517424536895739977132890158788722346699411908147503396697722053688363736762649429482462915144566229302323433032171169582664328003533697025048108949137970782331839285859790061982420803852018126292856076430565432516956070024186759933114917974876299421569194955415517827027716272797171736999992418953023043984028992423668716740780880477533692212900811105390753041386908774823883422431269061023658923774639734059068326920978697309762650047604207026981734314238615075313149928325592309479360604876264664959389775599819585552025818257399045525595178010844786137884109689369761721997868016080238260143629890698346568343715020874914350230857298648643296720295149636819693300063604288849705782673693225374686110544405742126454174516248660475599877070007415508885145051060603314633147118728501117800403783921692151951203102513662433022048140365838683110537861012885231862106905943394408136023008251885975466080586872977678998650933377571387581184145977588339116661097793094222854969377037899777963879092228397210153129084538329702422960221430535407132595333894461492622689049895491523174014670323478114370168910915220997501274128943066180858324584548731555196788816769973291873909826287177536475502436357027314776783920392938845834996859627969312506039843392903029793326981073597300687282770147221206518982087447753196310621240701943697906756681037499247529291883376968061848020929535629034960642332682285922338483706572566554826493888228228825435333735554737030667317552922989599372587642367921846361157077301284647171537790895287604033588749947240130713962833314429697450879517542618593957869299757709650327431995932908172668575395399100195170069837649094580000374642474588892862296395517016236573807868988822209118215756613591422528217852848138810141496273968540882064889186994055502962267105775997638577650499786844738380078835498868806158711576250020882322129891706013649464916721464499104042798771223648378618788164801914274666231382252468734937108879917510479332589321410596393600497255920681073143680761067321117119481512211331001595391695349984627266011645756041623826040849543080685205581137144709918529925717687106480595487756032572269693351770510854264254132935334193343788322577205987543165607630798590945977668770628578661778034404180394488200742691282777885448999306126417777213048976763148441139148300246898921884306186470343202030212870345961396757251248026569742701810798431067824235573416714442019763567762603785344533006868113513783307186853737260313815840386164584263563249578124428656197850339458030621965475101618234477832207340420971357277955137142571117890412915589076733913159413500051472475293308203503339297243988054230664760376839455032726732298309336163294918338585157078178377364090915456171168871442237420302531919058423406954482502402610881258285440989066225119391321448017718595568353271245223490071177775161819395548536584153978877509227914160863642556789616311661018571445496745813975390260179997125815178038797851552467438633761815613846209251007977312567140224595241386033880902302511966273615389331937472885803459884859577941343817349765667892218574296157554541455567555731177402354125389479689933800660985999335304201741089940228441083151929546612283696580568446421320190471095477072662362608427359680788538760941075476968693357303424406482601965067029072560777628957454589234991016290103174517802874078708783454653084892409462951357186696166327938403093053750209631438476979601031896412706355351080275075495635181617955719619109620870327920621072849618011816532995082642680009225052231204750724807957757644626061655993186290211631292126150864302771349592264771567839184507882814895549027311730598545285712308822387869493909634002340316139378313541612712071226353810535921451543280493866015232839423970561890646242011738959637402419464806776454501177173237704650990601125968571572348892989524081470524007250439123096991560694481340872245267248347808736237847180274558553608978101590557738851483213930203780970033502560216146362046964860669880217943070038091760592332147339491918363980341666638198273943281747257386601100596005692467814302850045449818437370911453929938137603034389744469869646534682679042819700032419697342776230760083721391568190152499735159458204911802787865306139515509502028048212871486681194606963974484119580467544745155796345742042654271362004387225565117448513088964276666636398804395700873403079526928733548719443449642365644198737626352311199865032461232204641116984948815407332185378855786210494295621826643798748022579178341667649409235455806250893332102054827369913909107007349644902199812361252917292824849211760419612825107699872001685838230269262950145180848937910075171301797203742922574385248724558968526765777600161610067959283834189961569900518258789614566547771469429436122989736476920758903664916602525506584455046595662965334413056771628151235858264415068325249378552994662562300681319389481645225179360156152849628341820774355812617174918592370941193400610907446822848779885258145215933772212642126142448190838063494411027503190076196136854998564748321923370863909024469830516717294933759421480464485925369446713452060718433011057197350852863846498690388336426208901188398670953734980638320597095998774675871065860132086956281584533617554330221048490618132518925803140091994156366939813802861899826817539624710907097629088386705637280817362157810470911681657077131311502609050172146197173713868233000353218239041138970392421505857972285277548049600960679605622322418783643012328622936646498305999298508110240896716589598557547202608336244315177164783831030646466089758321215921547679029261154914880511443330688585089943782478517482521189103106146473604187238811160767056264907258806082765199612737994634519650314832165855571283549070656824845163189598956098548884671712094410361703118716999929728055885562351060754331806586887026942975111328113289473459785614088717358904308726172733398989031718947862666500357361249105634849908079821456087286282973015089501721164297705265301948877220871038645741701430360866776213997426801246364768088959893344054830625656597755929850251247818699939475498485080897787467435372620013490660156645562730278500039450823356601671470341289394495095186542501105223916719999921124719815808272551337433789921516582991200639564593194596439777477585362767042166161814124033779029573656271264524772232873993528089990311379547497981763761030608424598133763049235330596052768820267010603229157560432558878364694795198161335291535913467018331291979186677986498806583418157993135628625281228180105713211634757036140616271815143595416724425244470271916857162193351252007752208571138958372567434467990563649227725519994658421422077330132280904367103042485403254903277965874513383471904004307993357481635403242153177416407137802899058939699037475710765517978021946852837169172438680312114758898260489974815457389514638026641877514190401969042503706064738876978544902254142790247531355975361323113314239927601062417149758502947065450929888267625716448961960555355160771038245447855579060039258962813219513183277161173463894369662556586231102459120572830245168188314084183998916262043055901167324152664663667503732259060070822251591846130096640350640721167534183681860569604032522705959425712193911000899672641197677055195004088745357135179957209170055283798511772213668581255305181907735382650542020216845526174117570246889136223027043767719259640560705542209250168290752247818522662994446892896317589970243830246732018358339387300378194023744497002046704822956081371841272192883601108172357467013438053053619636743502545477802414350894284118100646696524544034395478215280240295372806914802901749084892111175052837298149940403612599915642482247590724288136892470067441669592401121727720479865364201965551619474237957923938454498474824145644274391775665289239916631657010641295709507407788124941833152485334819328237761275634013624630925630747530927326701028732523102956080812294242341360278531508936104570295552933772637816522478864758555987617658070934477631918296935441996513727413651064592142871865283886940029969432417891603237836385512215816577125849473900860042601412834174408500460901639903015837214165952786583252330237558000676561947710751756148489136350760007064272544404538514535367824966680136445784397448944151181328609621790278893524726401918703230214043301843292910305542772208564014727932755248871139720113696566208468146964888329959330638018469255874690022491295143414936690237081821439015339902783011088880406149491388718872542887853696604585372016395758810033310648516306987607332213996596079120848089060278341080796144315408786673139498712546607483751004155108005510500000147419781152967116081332747998899644279811238829018879357331301969038889888206181734789025791060875554121334165459833379694629274604079938464603022535233238384378944046389984294208343819670982304054034808406593159155806051860612413044749927606012855771229323448453803014273787897309010683595768343468567949860190654228407094428310289591566562005868194029204165666991869949934907420118660145015511438574104217216318684856821696377189076233323298282775145611699520397779280723149155359513755606927544942136943784285617806448898691534265447990233284545316763056529339016652273456813917832672664207135511712681754579801924759643408668094539479367635230327289634685716218655577576822147606837978755091924181490253819181176276919094528911238186535084746742699308330530267674807826006564614462397932595808660803672970472623416307156508988397486539512793359233639089609085135050873068090756831198397198898538049678177584079187046677900083079251813607712917637850256866504005662548374301088061235983848399056777437818565790121948404363638372539104158667908712780654261785808341530860561543271576831188487811133843052309645895470293138342660472941552065408635957909532227371430779106316076517385453468154631508184067602170372516388903855575879375450617685677587286086379533884388294500461843021548875008172182616858473302426818416931506587229788374960506187804779089234413747955340633832361362719055674065181085972515511456300451396682110863813923069975447086120967904564132511676531120747032139106544548011508569302670954548508950475227691629680499913442598121013377656397828155201862457898304599729229343227413339939680945973407983257519300516543296931276339913447198269616225385447468775066967335558044779558213222106842487324046345640495155881430078894609407301687077530648394374627366441532268446480654639901750891322840214681618355136316559062629802838171579434898111184681120910160695457358851038302271235368841871473362805345243372561431907088465761199594545332058572084580035880930606898028794334226508520196646749365042887970544215042990245312058569449405411434291336863848889990099678630592467482501146492964207079075422754828897135240044723202048216247039011956126815830311664460897235051813854082880704720256797243630671564325298518732067430223366652388896456024543358688148787936676371873196270863161993991431687791075542037644905920246778147596302781514732276924427070686860929793692177513446371146347106958925764777449835090694477113631785382896119507134165450075940801380778611348822132862320536207114779882745903286349600849449279506804904358146465466724205417160708512999662814811670732890797172080038199308864094571747398365224498545186629345898029530307060035757059943549274964128752226312366632341270724346814508427423501118085118687783724880284126466420415638788976600245647359480771889716811803126589915219603396260064623897342636421264230436304655254055625758358121280432710085521639414363456316468740062234239822337044651320966210058892177294633848448647287712193532856319783968183881896374779886749023672350107319415766489902609478379153432366343126339401721257248281716463784184939977773719640861718723403982167974198683449449433596562868646945746164921479482962534002655183327144068652602800036096147202224106660387831828936453602830934608917026701909574973023066780362985496750231011193211417511444836338637202006724791601987999477717222131642301548771528513432935600494759942837867042935083745832115648504929235280807119904449201233882517386628911146191456630127286113750554846124338346830202822832183253129451322485439660794156748094058838878123106086895610214109775454948362991372791231744538097966105499720834262668084483365699064925364785458723594791993280177836321413583139975649384541033071181875295110550984867185142937939844872595212264603575125092931306999950951269012002253396156205717383307306997782446800353333907857875570298519250674880586196076345261434940424748842516718657272251709875302014758739675891350824318814146374631767697777688512119351913786378135333187477935704541487856812878205288958834103096405151932966787703889830236813882518043265633738035197495266905442267188511081380151292460430480290161364515421592184523482496092344541606518762389943404886105037749857779823348583551548631053497798351128303389689619340496598292831769607190362312279381230143803452071179609556714883559281881275257792397595384606032055987469977038483334999657004551651310033063418257753597426133550610670540154124110135645918618482051939397821530062146928339958044493835449563661285536066345565867872804067261388352827366935386831970065240252660788431607546372716351561123314133915633424428730053427170200561641529808009997629866247355506705637490866147852354751881383359733208906487562280605091799060470884003605014660034516828096642054505561183787205186641583511203122685227705179747809962213531410417348372839476587548167498635714324522007224284089155773237919724487615918400260908713032036970017805884809065833622742398773722399868772311108369252934733426134807538883936145605276418137966328161206151580183942612086487178555444668019111062615640541968775984405950233986415953990908412729004251153325389245301054695034058879624127606534262204395434530454255101810187383334718988978209182545795573245474758104382015055998052692611506497398770411080790558637062613464305819674066056660334562283361716376562565145683128210526815918646206920830532744743613223992688673852785514994649103356150189396646309658728259678077266301573221528043777400242936282286708467187347316409230058681125492524240399990714829959795395366734493224356391724623188700899241207913088364894395722764658304754132842598523190101033294109262766179115566861126524984977707440154132204615713547023755891371761467019091496148864990146632316490346413575550800982385549172546926611693414888530977758883452508225261783461855769417848258778242883768173554811288074878763753727643886827177960988849385810910012118842891067426872378588989027799176515234858302375953336916450156764004868119341227319742807118183168708609909841182514725639430796436717786094745091515374450683577455622926359178423869983941366186915790909095344503982325628575209941114438251211494460828969122419667590266040981403676069705162298607429067834729293757398308931983012247310526109017098607023591152814623256975065241605669234087526486665559484274967705893145869069030175313688809858819406873814003642338722080452540595709536240450004145151241060703878144873645050751342263470052904101567140162522600104681438711617386182800880182787404128663401655680387789836826107473436884850132284890922332105705974166897436556117291135547703952457543954302150906047771435903957878036974934518733628554918742225778453992615466321456354211096543859457998387880282525910213467827510222160473489382863248610799401847188806515438918210512472023890795043138413409393501857011207068323358085977573051320578143477559144633007693755900074129684691058261334032711578773966052272102760690524102801581496095685935145511227928222729912317956011553620773067453408403722796586736240127514331910079311677540907807436290274617005334517534728267939512070146612404048553767530579607655451278795712336160554081825800845563078933618997320647590665728338498261627062892051460718276485229643127994679025792486973365716051830526957726429444890237715148219974405691545600314175680502525153313165306343493653755821130724633173179877548796816380901100496766071572391192729618360496404518606775420134954164632733540622390503817532209962774119675990287622127107029633119750780208594245593629290578695096384943042787482073471035860068025312303328180666172833283205543519914111194660530048273461382904296263195498477423148896133725059535321960222112428843154702110442503298332433378746211831313046597456846951793967438865228950961676178208433315330535765418315504033111108205274556446188364063905798332166837906978067571264906730951613387421130698584966226775379603411586247242801073990763957782604147763845135286660606916496714767737433890343396843674367455434044282735277529184574345885245837626267216560943888677059129900659837707393444163306216548819547367364352785302685436613502606089224925162641613519371036101302207078577835290322268021000031558613342000836737957280543408925391547446427685588864381620935832427935055926816472396946693269332809307180669017272240613734621238718008812091154760311470448811465224472645477922975195121327982722509992390408697502160026184555800699047078787897209957382714561981243986385375203003006667137188207566468416135214224603944546955025209796359780361991598694765963982478623480752667019074685228064118969651979787786858321989264711907708624087426225300589474691329108021106270262372974200334561652363502517461382816606177870815344612233370119519160809117889780311229525433693399123533813388056409563670589189972637992346352428758057399315532338475334072741246995091291720331846235128753554948455019599653466963808362831452757018768513560260153253884467718229958113018687033750733159370951663712104994648987802060336742379579633891153571703022262033876684397554618431921178874682888481524411971090768774829109763927402615349557217393589016855764036142195170103101589355306596388632246174059639016535568309391128281132261626586717366092231753654613187726028575731876469288775569577085113953258953576680384246191275706487838669156799640434909421944713987601661526551848957372779951390623324690754643343431059618478576167910098124413943730355515853747314134671701185085051219538801799799181435713092499531567200360836210454371166042144042796926620027173456712697767490774831046761423763957369078001061437653055480627055820994878387575350078995943986930127000103478401581522276773460257826913942116286721888336303123592998888621883209690122072370435511522935618617796573215322628100131576750358110610661407720750511569476617599379961440388726087125248182180863028711189058068226346440509311544164664610155978400547028787403211287688242401512947847325716568007326339882656777933276513717901961603208108871324684320753556759132452521874817838903465539529448638596236487004931180027320718346010103688059956094771897281755199041530855117836897726735179325388139028748501210093842823770266082689758070601399678249527866406889512422400055336456955304835298045067607318943614497621017889392045949523061406501546967555087393294730231392074574598746151790495729251382191328815759947291341880772531756171870140192101534488107629326024791081115299826000356996854616035309423578174812261736903622614555364778361907885493102375521866236202763507792581115900378073586683787737180758199135268932545086364002120872443625483034752755348695750616012645598273636970558692726770042030074582920910270910808053534060415199173623917838271042825528415092685784471664414930287531575573830617152495469659556764235749589429112100454007566907410490914445180100755598035423376610393742537250331421174122473429148430408596769554338973698032705678861992926575678376695169854760832227870406222451377814095152202675381732356219649693829779957000844514632093548515953038102368478620830395520167242207095233252122254189322818184616704862628330770459079952652937958604393482791354436555573221519326845668985268061871651039396138232117374115355683849740245758428119682958560726266226050110101966408570338017044612556523582191187693431485772655680738587051802026903317226692501209959250662783846017281125831061198793869418887231361708995581962945177226499574761012496374671548134337278648036892926016694587767793792122228507501413445106472460328531836716486841577965335931548571199968796248963438521619891697173350313703733751518768715013949624413648712118922524408936101386362708209936162252664434168561308498671386596791710729182690330213636402747051408681548803432022900248380044398560801770844713820052377498902421316462285225228661965209987766516436598771655457132353645462773627536456374727855920455972108371642428685333287689946624313113418100005022551715193642545983527115535940471096803806680074160456232255619449283740530771346846341996224322166679229201796694921154039846447065178736863327746797414735636605935162604120963041123652314663770900636918015912734282328839733362360557226035013019875744148659063375549520295803692542289674679393488829039987822157274322944525382466823203705396546677492912297770516159800262123704471565408875383195171031689969481446256141777705148398242926760695138589117470617672553997118657120550562162655355871506965758192368889052673585573123122431877030977075600082734491896154200425579277850753949342999853361801754117052623338584625085351386051395706228609512314803586462796870024791705587148673661579025364602361083593676402903463428568854351198672980929838181118454485537932558611763880364454033109200680697689259988572785371453682200070258498129895011027371800759804823805089898457488479498916660730390624148863118372994588144808607075902960069714612463218329956993614047778958096949715109506143403849478758960625325969815159690192886191176329432441528306240206901273452316389160733569699850689188618348942823948219272557955216712123939998688104191461408869124485368970668590481979282224182699439931943359540597215461775661675109566474684885448356945560385207561581486339873280882629067557775340225542619304281803133468543849738000305929565005950206135979731174296868388023838082091711001697220851680874474362153529178574271998558362747751693556738853813812989648060296769058271817289793828812783436680336809159433855913028961997835660955886390742774485633518144455373238779195058282099432572163638232379062444339963951193982771044854532872894990278301149290669407994890029991404603717202297416453532602121013485997150501196922945539226192863005237514184183556175226699736840566095564622574235843676922616924714249780826277179771237421005277456515102892399096151829538993396564475045788223400224462688421328103362547021413427607384957732463531246931088236042932628929348039116446444363280505822647406337756009716974834012837083311383768341972103738757209363234705335568220590273416044054808911241023762455814547202356955941268689380284202338002696819370872090579822756703063320348480288684458890082352978002352228762513640104485376981529428739168690797785461089537988328067451247604872597253389304538233194811552202498884356537977641316704824774043976923771818027538491286387945905079586539758978186043400447699363024666252725268117263801331617729505429935670575645509646967333894875879230826957724478035483430196476117309280112341618655882262833778378841788995440932211381598240050622381592964264211159222057620209182542884100904520630123062561923797615105854240867500735964757498265589141810843568942902534961031496148022205443318975508601500388008987937810580820991425154745688371847937512699148523676975720492366117710384037850754170365801418229847537231715269010545521660306301205249232047177953004185898369553568943500893190760406635416494851895334376833769870678870232512390859719625283803727953802692315319593493246547575206172906034954226483370697582969558509136070628948830894565960477870789009623082445251525307009720356369630265619755925461860976245484872026063416654334129374124193199118542657136230121621898209367558948197667009932713342743272485367510440107537855865114892208178690237679719745307565660325972591713476650145505328816421768433174963944595097823174096722379426068910653871077399815459772044156187728192564761351154723027370392599379640405847046529986012416732782236450214509257620197384369464144329431445546786058262152217756891240396027285992219868305175123772697678096438924225094500581173101139579470363242373933696304922562290729672792746954540572744902212354926754555591259030525888144440572042991983179842124464996409235450207790168660206179363555189702541674297194776712071974546291186317896624093210191083766267206741980063313961957541505629632924768818089709945676256391173615296824345048567544712392066078861454191817856114921964666638906641858169132256211011196690185183329196736081685808183838559637395569989969103847229127223094389096924033587053946122540563100902441646273901796705708082364941797203121813670772933575309989338361526840623551166474329114656375202563948405499394992290357419890532157383173379909878811958757681553340245725164263273597632430869702756269192539721679912509287418776647578727499678387343721682798123805881220622057882683025996138743152654129775971853369217235759025395661492364047082683908968123302788874288368477883507656963926455401877422099094850638832529365061870876968993050819408107879195907543861759885168198666898286298622035661644010796288921295268654588453861946588259141260578837628126839913868556653430748264050062695711007155160332946521706425062931155023952062973825818545528423934049128002878408816944721399386463929872416585553598260887764882521381294080530443386154492260819179987497980682501536437831968660990599730055338548399333216472089129054806893561184411380794997954223391024960486973486379269436169431439742575036413162292312455016588794394632395721143969831691345058780739006504676071240410791467124910614313035841455998157725460779584980025020086690187988339941804381041651879007661757047154586500153273622823885783002010284013852581824983512110847290922043790101539623108152525236213848998161707491409543172070337901114378199528798482350997194259331540228664055317062337078628270085285854515193696117160265601206742278229132098627342352281978556207393264380461238888952955673172510164137021917850589097996076612882621629186751012146889865474717913170501204926683299021453197341202715814919310629815871807497579151114942650416596656909961590926666921518711734881318198297139296360203559976251416027764811524378476249048555903198473747079055083714594990403508236845362021100573930816708376691329344567546405426049144013241032628412486388335704396419861520481793143292781682647949052239281290906161771340485911445580940890758867500661021100179502506595613591377753781102120826346942091079380050382384526138393658240072873324873526882481655246792956699371312498199236466341318731853466746689451000197443358445458850038911083186032552723739298456746238687174779075285767792303147913689974254501653023016671153042338160847874940473733121731278294867523080729002607077987912578865679507285570500698055432828303370234772158861570126944256374415794315496768381025661803323137457302825098850946503745600284228170919342989590586555138655155173337109867704084836998115197500386461031584773884159289192486098875236189964163653065573762193118773142375894759674731770999797708460948167301249101229931950046418210460915749914848658577338353019525624510706645175364187259261012587772771577106411113214650534078239281925248491288784297622111623930938478961868291596947261979382005082558872113106576403609797165532028936832526705844775626434245948062846124889669454031677582583985290122593723914224236250972791016187774719772227758370037658532528469956656205099456518945724021126058341875402979906456960696987308204422418673823556059084791265485222506020866146533695347430727512052530816385259851772870536998101205322301602226498703347983079073977489143625441921397423161425572109117164335191171564401963817819126195073046999291755651447052068413509826167243030915720119894310439715139051899058623198718634074325108958975569547004858292184074708478851607569312995191933896162717758990903647284583155031628087761167250167548763779944417194026262906515988515951221732409076801806274578110984542425760811005760881477945471352846697499291979065020418940082082427666096149962532088563499806071016107013224180431799956270687243590761290351068130836983418024398570087540682979785618945342954033296210163452511725262562647739631127232887808078209592898695831392327961348047221020085883461506233989740948502583267362080015805024643958274876260926894787162060257527111001861178028603777758327298610437874669675979467705838972494573172204420774004593958422536835973085478213156771840297709641914780623647295969517228752607813000221958151758004576697107269981203411860196756098694178324876648146286122861994344341407975318327518400811718004344731232012753690042510603706573428900452042937448327001543607752543854706856334029196659485275869067752134436188974075794251270641993622791635110730175898367545653257603402392654723005704128666440433320969506720578650179248082089142320838752281708825421946194514096099536297371411959556502709154855614395956070447048734787491767835014326268691223415809769148003867006625041594131724797446938384021711217449351455146756814751535108255043525637943884758433910901321324410004434665642487902598268121509921703983338662678220785539372486303417769564586056436936106110802972854208813508137436387602923308950577257354961408235512249604926224192432900992236473969595585478830545490845290352568717012432231456823425753275094688145899620131330930951314412688488300965668095361192926574376998526849197782014345388487085305297081130856725999088089899202953657869138502504587230186026426812274215086928877627455153881169775473182694659876833688257623355352355733803584923689432871545575223547275111160835647266391360347418111335867409600959543059465784857677536115842554033010897871334032558827467995892728057490826285185026210302421561140940921038048620899827685548573820943822035004072873714133126293481989778775413905339842325849185717584169226046690767045363591774677734953019027946300108315520942411370169755716045500446823238581772126153511109636769838637803118204201615758440281804110898097612526373675262291120467518340122487587037672495184609248977137376123637431052447121699535448385958617755279708137823824303202805974621975594425079477329854421935021025364290484553307470656945885606669104593132429637633166696504116381907581948042813744169583755283367059382972598912004190417926774502037485494922516043519844472688120206304528002452045296753801808184692562775911756293197246223410544756768579596114370653009111658072016748679760472416051508472011304589037572889946575140921271065148679854518172419636601675472812604593012540928177762740702302148681623944129014802610512402907669533694073326661667614676045459665396696355690775226961367127987066528252121556771096934813269437082858854631995637528764340844876198979834539081407956269000024153769328033581179155849298878440493186390720549410069056807161189415989905406126822118737951948752744072546126300828417462607520522190188474604044474725942344453379119952364834872781469306989420197171063960545836315693866299161243061458331095641016084249654592606957513266929144481666352104071437794975758669524279278816131727020236721690022569703560768896342579543563527025641822770848117276444266266347700164177580324347504330396541440175394622034091098190364880093291550098773248451706735905804567731173996930286964327340002322316884259346685759521523401980085349699999083734976290086658994876639609931369080414908832004753120569055301844888098381074446125018983180111821995705666598608200531445699697598809027841363500635713552191287047084015955844095023247767462846959284375585805305805946473738307223442976572752038467559992683107113626657180067684435625358271581219740900981955313593465264609125120617598946697888946163619512622655766210863692911481867361730404149171339163792468360263944983249677225598158857853443393058360826550285042506767857404440626182257708786711019441765868526425215497401813208353422979206805759889189160144083462315776002954571473969304004335874011138491686268907584500903613498522447780649603061877602442345783623532784913312731764582335857142562886538310444373569377663254432741310638215942316923727932699489226643362809515487743733670207314335373332301133988422025293358690912742685410633783657057215457788783639733872131444207941929781231966691129633641321579769989556456291995407692127827032255103719944072701101801919038311415781287494737877496585784201472430313591455260800964916603316556799584817922705620862566821346149478610853068014808462988554789133831857611683592833059731733042152085275504828257613723830540034943832328546254915770810016518778731536168943660950645774560101366727296700535137776149217046159012815319453366575680162117782687505608143754568608092378689087048325698891905155587234189336189256568020138378856074838735968562683577238191265124574550761067515271514741346241763199700610782286374875402625230150695807199023360078744937386580201936597253644594775305066134964722618213709144318440317509984088317629218092215644467036187768904450963098939172441155840787082097513142862729376648223123090082191192313065152352900686436249570773774629739609844046229102821453785960050635143250664333284218502882022648253206695345646520960117643062919442808481027867418413292676465822768907079406715730974864216093097984012468931166286491252073832502645892114085987783712190667882476847826575808469422685707360750192948738194994162123287936359826092654956650768060466099832546854047231546742401702231447527731227894699475459558839712049659937727862434167680336265043106724871452519392598143178253863003959116745435945859795394763600542969732546609625806097255293094870360594786539497238206764405675325310874807313599590499491304934373926772478074663352275134810563061372622428737728225464319098508337699577477558206708773689600753179842142149027072899511389428431064023672827490288783437326963717382970742934044365673041900300248112915564951218469775016809881770504157712811308104709583050225552853818234357781937789448228489377735422826054565672438012806061760655585073186726229958615250609590801358227135719870750424558628867858747736733968223192669142268932261953224585379556440138707482587449540029942084458970939404975032951628877764544040071074767596238434836030485506779888540296719597262944399069110798582805834173323382220620397098614502743783273886241728037602107749384179956261479585871477932162153303100277867089245956230602079123360843923750465649354308775196470614400757696298177626590651238961175480979260643688119498500930431955069741595942661980354745165656815088241029627755039393304006672094059601988320492409465933350318478788144412392670002992710179820425615510482954151760363516729968594448956426026023194566942106834809663427771936156598551851081925339609112722746496916199105395056697487415702539242800504917398770467004667751758727159609575687331617390597340796900385447120197309446852440661639723438835608402288047670422718045055157140893727783007927892189420014154572770538426312718481137927424241450319533161750054694309202375656889137694938909503579779105961391990525745587893904477304254597197527721355347811632053958420480968676044975143111897708378217100520903518085144696004614602483390591717502942660166483820161484394023923578585691910331033382743556221640704328597101525950027473054481581965649082327733697642230352053331770541159278107452551730585022453922305667272936884504012221310596910641430423150171114491888831710935046568433354003073573809561119375409306133204855766682909250286240776733971538141157749667019758333294502508675980309392386226720973509388367492581716002366114979002151656295921452877296864645103830935651324586984370867953553347942499576272672285899472051176853122095122682872536288049897382719894839408402230240068236671833073250524195020255818636069761363140186589564142977851941358790361236498706817444687067227434596439662536357631127108479266370258171250800498260274969759206700515429487630025013741416747304202480381931179316298383038693011768467733120691197053497397879050797775254710746624785158977317610618564894242894560109377746455389928577061854464918979972381342275580519233604342787049696877069703423630049785953787101598958501290974864311652725635162426543241519599021329449678630673460887116209988494166653903135877765945186891014912433763555429177962601174171027634587417526263154468954652723258654941091873154266322308499446435657418133514198149115805495329593286092539559558204388746389208603930411315248049615939040474657540372150063079756611688434373062465002128370292533469681368534969617447664173928517795049534684644709700967227651689671400079325257012113686339957256528606424615747418506467952725829972536072223431686470426409602895438171108100088524994330763199863786384894349717014122677252993038244901888076665921169617329911195081738790977910433967609840897973632452264959078997048432903174656167703733702838910589941328591517843139060991675224018837073778157570981660432971736730424324191576787258778038093466545038130529376979986120683701266611412570475598439102946499193035601536758834709968675129573153882280438568557164200335131256095513298090055435743098264028778701128843551380207395241632580906576032152440577615509997745716778277599473765756151725410513212640672041884489782952710294844518949063533247351458591245660356452268168683127953812155589754166532289513112923571360989870025317895795872196501791926415709575149374632903015340087933858617572446477136322765782409871678870714728376028960639026023080107194537648479283821510908593670743166403995456346865937575215751584465350676979550466978665460468847029797120968305597780855840464091801958281018418001507684533918009283235854891827641678261052187477883506478070333528040049509015079656456813972216849611789382299550219523227138631002579670616892802691805770306485645310162453395939613381846421878202031370407632001894625292732340323140080844818758910751968492010980713049284623151172340591052917324822311842313357862502166520723092171976951705068253164221459932124255652349075635830783034652107073123898690757397611701328103759960157689815762315719674781533646982135278828668854160208333513808006791114761178961986900792950899659314917980961115194803661024199869077548718171792488060587211324044760016299124571534561109086204980339309875892953094999855428642434135447208145183465830142456587816941766278989187359249860984460869573576977464912289996056306377562147269927108287556602937338204783071851067486779176940404928739279287531817260257841408865462008734409867582258737729806071948491348866055802122696303042655867133437783991083956042730267335759066151683936954277716172258061042330096543035328805166553299022401487134733927494421471912782021859091083739705702460622414723956502092134273854910545257350733289237544061545607334086064320862934376726474357300012230036940253847036600517576449965013612814177231976963737096172749930155586599799428022187888637100094977117375071429301449719005208028356238741082039749194845286055468470797977025751251825754608463665659549121892795513080025387911460810563549179651204953358166232228308663783576563869223324256660117911133492841436458063346711108220640660714862296024207358415671776572376889247956539815805365097785136286492603777143407197581595294707511632779392911603105120455526386439232851479612855251442104466149578813066379890505445842511558110051668822525022781859745607903006381294642759703044871631326492522073968783015539012344825350760827112571938191970971612454215770746697143228884065318927036541332242257466401255723457208735042999618193890653043079871741379823486712311079155442641725085296101297838852990752574332141361201709762664384278347247936803188071293792928937444113290531723918981189913214907674148001591136377868908843360871174701985745698409163899169703477851395321856231614552930195002495031396928540490480550022771404470238444711921176544478125475608057593187889163076940489104516923353081287583852555560255201846226732041880288086391028779547180934684851179740129201081925288778473480810586078686061452945942294620275237176797233513124719476994528232756728725878142566828788221606015965895080979737544938418219925104018937411124690061939641157054398042601081609446472685968283729188512321148006490518737946228984636475665708320853780992302122577319469272463830380087993132044186351637563810048232207431490649016264664114911920798627493297121146074796512004569014005806177364214490619057188092798544537895624248399065412607001500064411130944447760121093404649523054388639040778897283789839865286872526781314519694970268896934230582003305430003680059264907271850326435985594676393436432323197612608112162635802246998132853273274882532212981341350069049075108170123774353395840571160223524238805072485123686315316831666714985123908745997356859073945771082059333583362732351235568518144853348681600423075746529090616895690163177887364131775342958123675926564330387381125977416869653045588391917929161093306419761965337086914227279782497969981628050679061846098301477047829030993749581867027206680846847122693792252707839502741566990294318921343607938276236987561428100659875571233497323626165704950974126714000052550691173463915447548972761482735696137091437920004068994105915678813037730775095193168707775865580793624818848991050047709736279940726852562459510274931185939858196208735126409985779744207836682784610693214502243665169538470012229438247246317372340141337974345835373891607692486310137056882211546289774680714053681713362225501886298285084282930924550931489832867238032937890941604255270223497001545044176989012017557744679019323391279847131381474747910015690704650373650611152830620760493312394234009859247404832244032062894536883882281992675046270661096453494173337545857974672794118007702164479881599795331902158408847012157440257478486697367866560083133557433152992343145951399295629266475128126646244482140000635473431994409423075224374362620139878051789819069573515528721356836676875831512094388176999320301635804626221923553583219735353104712413754078816747833905979211178796670404722102818797656144508847995623042726040448605341470136126790056559118828645828171339618888862859713778009286622426640159558567653521988497248000778516719740397631667182700595875829607293193902917134337323800487846654487392837214003257026162284828137192026176813708983961173353523091375847587081062102453110096604588956311841761435252169341333406277482945056328775765114295454446803207368108889530149636681274803236293150196727211566001286373917863347063507378497604209455628383695419191882689069071511363844638365875398830647545290859760291130381344153287489642056965009978314987667981983938552522704882329644077283980196606333919850197548900380666882080712761075301175777342451744287741666897692683480590406945780830421476513971795632890270133073815798829450292476256732765250890499329935261560698468241601630608087135957587949977991882028913492494293358282701650707563212514242853417131458371568860653832239423731858458111407603257056610590194885386780794646418165935110704662428127886768744060199070907601680021819650479813290316261233999534717618721838641566237048414959562627974733948231338042883930273314143415998716455016717044936876084706697566014023704235544745365094949421646659658378014431319681462835947881531792089144799907737582599816528223343526969333356813772053417074270189378916578392198542398586112885859138277629927311410193064538861783446475755898051533244678744323577076864714992134348346065677491549249086266579809527445830671490404938442495060009448380292716932165187796966089587831217844849627919879376389987909060624685080223763969476477386851915856097662990127666535580123352403932431391223401801954461285911352024741052943860269644914707132045625822183920249738214275480482941995472457717426435046968342524023027738143579212060419015546375846963121481589695393423375000037922948915324335546499348397848558546076670558576354695399852171930767278386529175879360951319250525066245989584735116721650590061075180803598370338587329875526037819871358236108838591823460033832365749212870012016415145380247569612976634359233701735114087685008638439693553300078169815635200509567352610623545605601745280504907529328487289709530965117648356363353157419415496189640874708468343407399132431012043212829149190563008974565277588405071349154533627206464461649646826483485627036343739910593566818347296353862790450451687607254791313141949745021158837409154904358897058391018043719658844957739172479543997190092672454365632063336375222701523105937682793668814705208398009014064478380575648331035366613503237314103935515637997196832404438841097357983407860584012627604033299931021240682759106603160353604082628884036212800513773168019849926740503750612246352737197226591148770076606413500203798777645076531845383403798649371955179279729619266272646984726802185288780677034243940676873437597781291886432995589016640585733387327941922904438896254822079398152483643478669983304925049259406704018311717404600143913536633259531467337933874768386180747971526125967043540894326806517432251893050290694184384567615060494376747033491381708677527666077106764715135872584907518545808067035721011000526254740973575883160541203526966013872345039883778135105902830067058896333020887673747755938664210308371819462994210472350237714008019306455348879326853528992489934781760953529333633461703412251961041839487944348001187244285249675002171474049817775948581478936802218396088277327742341358367437229096012094896792441020329786737290482151177960110562190462639515923539583267777648131167237486401754129855293738595855687914980224284447006851146969354774422653558921192520468512576479837003672402367344513698221697219235004236961837635725969355509246410484983202050898691336126948265580344056589291157039792006859529646484559644215712818380090597829370593899825775363915816358327788425443428730549998851369659368211920852398557370577075556315893618834483244989897557421233153154693942311746620748540818638432602219017640539372153732303893767685876002602707800181634156312894167402636921422433366469597893157903444115507869614678871564655930699347907131522076076809497480627125688585017003080122835308760578593215066467930183644772937346397713990298216683938243504379823082407449748862599142825727306584325504981708920562287012714963683318561148770230303940767333033249288455939319372156449360454712588356838723375715538044290047199825942068978384207033452348449105780960543910123791880314703955953868041010769220542031583476272592117010333196600260234093774448078951987445656604593532764354804404312823549390024805994712507481294222784284929343757500948558950521748354009332584758100133080225220375734924541996383347000922951329651356936673688283615251453572554244261499598708449683341759307480962879287026117942863151410290789232543149978997712222645164818109250261042799492519892632425732617242885992546395994553247816935395146243947688149052524930401132715805343611800265686819593579272250609402366741944184816489652743747487796873320983470462911572667044116304418151971583128203442819951911915501440500537602029288233157097386887385526790443650624019131898025132419902976181130356498124006829256378392434335928220374084477370520712204317713328840056925719781484382214543148674924750719279801497807129549017400638246331128604650748218243913154661169800308566846966434319956167231962715019891487865874025383357703894084766503441201734935121820593972781925566145350061779575482233795423705987998817949947274653481339400971722157076931102606208941047010878446225974636545570611436743940690793248711125105778173946249553936637570974855138369781670656946220854038502772810478306281671933820911281370376574718004857750579470486575979627497834186046630290062891381016079309572269925755734505163310974064337371194723992237479909415542585322302994819143920007441144458594617374759314749550145875234959711225244952080885612427374699061588479451777516587697643856512791786790700944794855023317598782675276080934869418883630285422318358186133764749004376383520268380471991946124136081442555690322395329816427223322587269127961609959762616289809082610759149266646945274917530896088514169478687768564360231639733149642357220798779740131716833664152154149631305097386174768071960714398854976785486140198912009143063870086921328788861832865582141106312238680174429978279038802195190152325600188822772712942403456242736388421434056699100355865807795250775154682110128199400458126963767493551238230720628344127802078209600394798839023808930684705393528065435293630328066070584787395351021046304786576906707069033373688455698152706678806165174905254411447286274295838044219675410487624926445898963965864665392240009258873304832912690036619737564240257885872863931410857807760859298141617946425101260317144080283700008993363272385102051235727024133669230894607805259755495067330014594122433056452239343424443642128807592999542322510565379840314545719357325852648201698116008627010801449457466906583520679779404293594453222563806686294795193808748638113019436262165732311059286637388035936064251685198425360303491073524836016312857891035780245585909056830848583164026839131919960000457346198895552397530609506990128381174664550631806781698140727545403909142767568108463299406113401952236243590894832213858447759824405937697978176065877553473831617533353059876674122042411976686804658570307508837402492392025584553715501480712111237821168960876681030037006721892003020431042293649490892889097990058963151466837438824824276603028544135830519381035401605321578352276168857073478714145490357869725410745081169402050164306151663374727072185705895214874972983327691991520600757619988418684828502070109824010123824591734888261757776248014502777863474384383846814655242588971402604891310656340930739849188085272104161344216249423425121364482992955235555274192596953602739971149758245376268390028520166815292347132719940728853054713899023482230868340618689040626037730086135926768237943288962303489506928429018976965112311464984601929848906615803665695004136667340206235804519535875075454217615518876646019420269882360878500955177831077519117938451526530546461045269850611934905320420002892395917047552035441678852936615700530534537461664684362725547960560917437021382619904442763590495576584888529382885537537580587023245865644668748284855375997007336003412715401024295632168725467505644601463108907011236537389525490395633369228564095852871414489609345421069529403988641345332480934410838499995183268114299142427509359806169049333970606177466753420486078073543113255741728867176043848117951959157159928124082230914162154058797351620441182012603665565179756010119591527792699483937884095543866550633015632936757808202941010416293816632222964866530911149720953094199994432282903781613395807239162084945844558047869341216196677264123262081468858536312518000855931000170274503474356502840939868311526263508207023926580104329365142037578206573204445367253283601579404073095037155001239018971257792157413943235367458114387053397210203230716975756050130718800404145354396162262105559429015801235796124104444940404374428834774237991049922369531813439112068824780032005160777318867472482334366060974722963015248029039113651736765126197882322394466803938647457285367186554280685944433600119841975436407813582148627938914315427380279102929824747750930035285513199896244286587574990968822587368293388065917133931549630765004178835382240158990967851474778834125273409494739608759295158693032698241228711566764511492937456464239736803713289268749233362656606683398311659457612999811214387497528775001157424759470571328190689751738359933696845987910544419892505913514744459613096143883598444358175387662229640952693970272871327103507491063479393319596030174645642353550961538304571937874982343341908868722410443963252136287132138631927511587805671536021604683176325662430494987809141108245927864527336798770138718544657188769868656338318284155346948644420176599273147807949904928649483821616314288883234526611899563691350529995835112450706341313227645150661163744730665728647249305624804256443166863089671695290058673818837611810233583867454624129415966769500948946911337339341931159936546541404991719825663863363325393293190931335250272734065589098928013149950513607223147052459869546751830713188219006005910220402116128749254304005012278539384921913491394279179714863930896199477218680195758909480731237114064745523724314130475849868482877864844929775194324159651823816929683411880806274040373202549577163607045817035607344932336107289909040000138320330750241458090541943699278123707891247022829271327866951047428791407991845919018148014064586791701591715145607584679926384948812688740253032562168069320504096106790798228308584578879008172865694059735067201767634851848235436580341981771337870444658615091123687846469387201969657074212454364212355991048677901578638963386758889376099876111265690613212113342075157866517054611455057860682048417236060580005740626115823915663992522516107113535133382652376952214425028694406880952926780616485201564333369795159611117955972622828694458432613387328061454929827140110647945843780596080452017949020587939653559833103481019926261343283067327761727019332248952496691342225735313791483071172360091910371831982713185170548080211441598417473143868219299448135394668213437383425464713837706318541842239954535170880219824252586343366635861305449661586162611289836757235821462252152985586779097941893050836008335883087691721080631613066870048279358590777894295385657560288541882106762569214019921230432749767208788600745453186791301957572677527576254900289041162370570655053660392840420934584653311889160247600441411660479222496938986046655133537202579994454934117941638136694023917768038532842837019180350268541431940120695767527272288639206233405776005274429328912372594114847074856468178927588616706075864900689297670886434327933506001840092657732072465460955419682720197503657085217301063685425124787631754267655930160730352390656889797872232358587903080567676487462834223057044025922819227118433076699309821100448041269545190615806346613287501513122520658611048158100387214078062567500058451079391191278653452028443090673570435248091123635502444216628230969856712200639158772866036940021451362590052163688712420802048262304108354764183308496300193462550695186365822850098875650154202910981258968650805048563291588460843866914527232669252882778762942429752791222607119090351037911005315222214107387335935684928508821253956222430569513985058089136347849388639303835278324892861636716510208158894858709467280168154698703808194242995544111055936270454253470848026545080087611545545761413782576675502556890182055309176279757044394325019994791416418827433288231041205483079181506953945717184505883189024565139193657565109408366039405655779795755026704994860486463154402515407914393208045005557130942647217247453268748413437238965408536525484852526651070309968338336432703984458675036890826949716056500508115322245703260825752836420048297012945580292223147473779156067511133108489389952126920691868187678767770299484034119555835654770332693651768091426788616813093359765556307856454288219112707877369034478833896484564427057918309840629907962290034446857013805458649154691626221797981182197955200311979474513229322613165698516688331734618577303012838789545300574245231182627336778196611175108669714875059508737844040587096107096358458808805742385649212321031684181481661443384239996106386600385405586102764396942514188802159966046799026552270994363947282968546510199358004546270269732448139734855328931228774133852555130046602166771935298538942444320145926215434665831374996905208433678029886383327762802831067919424828592294509968670431576967545416405622085392466364753465800540571826726873913993217868288166884901899820153224323549903339497866371164483093929055519731088788823510844467022121927803563679737436095387117420291564946015515629297025772183529330344684095825362117183446569911504854846263067178658239719344157741060783069217555354015702625740498612474666631666199157694707243573737751315078956122040141048701665997466061332394518532047772741733009108686962513841840229513472594528055672180986753817464044735306749266121578479595145291110609201593900100158624747936350085294378765492236796849627765593533680724652403783512695236187138468472169750141805061719762167642745692689002655062420771285596808934198598977798080752323402076278522240028485649268032539615250931185550222960585466075747071497702562067627439590343652521700613405710219584423188613828429041118280239622476847796892745937145493721976064411834354794815176766489590006209596007225771406267064042984574182779586818190149605964217768351634216848425310623812988207386266321289144532616947067774904575800059886539168623884014974871141084899605322983950386107744163760495504617293152906529520405091528311755369208167533308626870460414751918666022523883622787134895512445513246544403976995404647124066636801049346338858513127222231449990477712693325575720650614008011062648246842561854094440399504693792379791353275343627241384808485491167993463860680190428453916456483276444515462158921878208967348138786967317910368224566466863271007892545588021136610405705261331279737232477812890420672433811847742130438111272728125739891117961285632279853492671411297508929592021427483071695178360443814907766063257691403709838417606254790048814826997323305847635765401897556358167717430787080710642995477054375071090235032391730241803370425811149379990777024540406391688423942967736620783428693693022234397201768932947956487291047629624912567697621027357794254727936103618552960134165514920022887012155506538761915351365045484266885730440230186679357009356287591744218241722096263352135484919854627602775085258777394407483684460620186370839773697654427081820046005915189905948015703641870104061962843751182528265345585440092782592013054251252441733897390911383118298451325002143926862652025964584550240292162102011501084410493763006088405293715788608622082803662214282651680227724708793826885049594382398518742294031293311048930385106594836573687286964356704764074924522402438484022966730811469926694365653697333567211940039109091496201144823666297761254482410198190181925157322860896476755839340814332027484821980256397918796890760496316115060159714549217930247189954300137322895373286846359365735440086944338000411797345183432413344545956482650190938452075809269493371383373755725854216303085512941770765734984386949864447668095785213829106272403259864200432186755900461634382020351951658633827852120405086344632097106166298819272379017303443032118114708821765643670562577187658845858093539378728533435796523901555187497043305031903744722707585055443673993990431937322172637957485194792399674919796542591200880539566883381263414053149258446401291790927079622310939721671783054968472464660824199688492092555043382530627980938300574884353066764467291245227275746217365886308099476968980893065310727076577257936349583300607878524669820933877492128135988289528419307458499773443687759115166785416144072715821198359090337339673208875170339839826178346670026414264763192499589573169981323963360448146634937490624639336479272775041550687693828859732867289711600622926588411787902388771561976475368955403118391499017915307079265661571758009387433459344161368542438840269404954562339229116197177720715132753643469157417766631680828901514635030263848567343253509202389749840155292365076607061143655357842797391643747472925228397593218683513426049541988904653563982137790051166513909726967363299434311892972309793641189025537840081497701897567383715314390367521132381910175283054270213681581199763120213947964883643364154824933072151210635830993102981651277710030724040474470007600560483844591085397549528364497854177741103615753227778151536268636087527095535087025622104203736999688510179095313218290265096335727631911493511940678087105785928602318457707363167858010582423569172289116616794850002260677450468090923028750129497717145490684996837007179619767284321166441186209903135695125176604879593251203397875226178432433946778934991830351365452760518966255457702525557686155966551301825981467381103771734213701615191634332567389853306602117641977406642380563980648902517208212367938741727934726633336819198695477614608912754991594057752069340129863537394447351009850812876632638865499578187068226827443072467999457520459071547483247937819680800187043272129435051442765169201457817529699392690614299137531209892562699674879501856572186892605164019172109380898119630511256134405512488228179171825973654904980731838919123917680675622770706302493876697370833510690976172441814065171500285506192889462887825973527591462583238288453236805842078261013904094592837727237450474856072746757556529933076746709232555986514327505304577077969396648774892571201557898236496182946833159927968658828186510661999371432576907455395111926001410735202534046924456474960801507710137396207907995179844409182017184702221548761513897854073370946994519704722209803933200375647472065645469081931325119898598503842321219497588426914727221013818331595753433390058584069221495189530323093938812911840203527702381305248757959630798917738576636560507848755337866836357827597523698317289226739776881479690987256388479422582858729463015381308469537504269102123666712258010033062844459467086387371853789342563064434580755803390167550485629320955375929760782718006369001707425999744626770741062375719629757905039425305852037447416249238105162084542695451220822255871590963939757804485002498665213367812398466574379715588465794587198084896125824220573512901980593176113188390033104960728876186023996275493717194782381521625301357935889140995227537717873362309796373702547678412818213518639488532241860999801389898758892012520399831528311115933470963266534893438451551268306451670165400292636048394632638266103269040393716549757771245679010182702493516412417082677290578860075325428540814067477732966325614169195501342558524635671830558301086582328361732106020749586881515776367419057799862248278766922716238990586259706370929122492882617720592313514532661494172855567037080589394159102983112139658991204912468569760565079092184108959661221865421313742135827367549522327100958450574130894778561174283752918054015582739513498770552109315769226197702218810864281399558679525740296578287364157626224583362790108464324343740667492753847326289120169102678378381289556039539719393748820872591249431684755052829937077454004677821881721047786419618942788408245523786472742360785922255999783293880138905328796795779094360553537091780172584373423645075853563491982696356432874828777143168956402384413745224519996333833970953043942839491666557603657937756002818445503789478281189962620387665999701682195767780919478872228053094365396250151794816162803971273646836525702063268030411738816138400561825606411069972469434585465768206124775865250336174463500113190846101749828704694345559011395997941675756178813108883463162313364203306965684585048757855469397280450469470243693721738541756767835956637820333808175454950436431510254840329741877550287840092834624680119883509912474315984305093270403846554258027249185824663239613961714388761113213386373205140865954993061863108118246771926282814439391422956320296990049774143180732434338166995178091335909505028870622582188954637072752286668541426756171920638969694080986089970428119504529812138414038713499605513876900833028980670064840206352680403637384129303574858644795380384336637864341219715414191244999667144928117695800948631123699712678720955338001461042342253590170504640390516456789638292850894063478649794388532315209465285868315001744902210524674060335259729618517354396009750984962126241451544392576233898616758168106376281646318958948423469386933232992617065579602682577242024892818291883993355934149365605909701956681383052191731403334884684751492309721217152823376915893838753205918928272316885393528198343204390744071272872006361030381544204133454318879771580441149766006977769159393840143515947578792146397847280825178748644280013589939724256234487279248238885254346606288324575651846074332004000531216219009017098639225027776671555758267153374613389147947248936731773378481976941778034534935386433669635327744306366786233036772076975183299437133242252776255573564853256417872583055860848663614274024419139894539858142569266790055025282676993458686150837679709467912350666428190100681459970706100965232769685130563684688103079055803691405471779037064995813825665555807974684718278755962639312397758386066077589236276293858241708530126912178429819089181312560426082608745122898764405842975195608488362043163859383265923420452777624162733152644606068516824048037813224742871095993130747642051050569564909774710561964672525921028075264610956262250055786782449297556241987168963068411084836682999028751345095088298162840378552932534244962223908750720687413395927989033134110474394403003223262030322512760746069940561432725698305871237881846025716083712169955164257848066004125626117457068972280944380776511609874588324511705530771194771093121927019904867479100603552717384909999442915806130127887874426387464261819174647299992116028608916403893813956718705522383918715617671828868549065405239040909817809304537486318088829372626043821352678495658570679773211195395277480585202369364611456018868642055498310909155883625426605454956541395252277773903579462723036958090766326698509499612911601308506403212217584167598887341448730431855418239322840916242093364286198766841678416917153032801417471397495524066115641477106011680816246876504561126157288577468049075836769024299869642373497213362828672930631811143810375491064573549939813372634164728845737203498209614590828131850484204550429115681169206747609392876780143947718242972970317423318233909283105488317684339051367481608281384024626633403133152209884052626868535402317675212124573625731463467099501262737189660874841589005621493087070530678586630156140273338394446304508812234382431083149980330159768308801519393620793411905049620766567274081538599454542229863364708396175105596467593639410914431890210839736716445544849947742206247687342979854770521290240602299520052007915925759132537579063685021365374640434691796498878591170985768601765280093346839109717396822937340734464628123756495331398646030875898045531781622455864373043211778919021483445787058184451680668575346234781536958686702305282850201268373078284797882306805319515183107000543380607781440658782023263413828274654605447194858706585655121746579299106345098746124296549968382816377451854954592951252289953161723812585093740721299627409202895373951537509349463588555860498888227962979818684287139197296008850426858807573558843719719280142562985507775378688917226133138935410546709821299671107689563904175206708560038527027337034224923956491930767008032750760586502541123781326873179711679841311616562512645343008498880905008119050937466829603336605490946854829261913479575144028430106241651370312025957557545294580751838706530354993636016323773462856579050015141414807666306671297092605139530719646719276214667477907806672578642719901240515395509705471359399086920936798001184366203116157618070954138906062858033332206144645560982376904312007554680647194834022889086581930947816151985367345330945092079666621484453390553397269530841436625731542822027872303664576950325876300246986913060151079999861816885835625635335381199047123587278906491302718923906407833092698114727774220322784945379240377537187278472012668329112762584501483150759818415170321560740406155867436356073119658244469817800251962586479745818025047641256976739967810366042431608705238757286864040654154568547461361159019301923450542326079474743094347132691584232739672016257929900186143579155439810326034983762988855422944451374247097119795701509066756222795385435762117856861820035684001140722364644950053487770475634163199738465521137285282077664621038705456052926830636057301607988370189255674903074040205086433317471431892468509262555837976149813163806564602457354760740632647991830203297927918980986441257345998626889933901041024687899796604235831633931646965975810809410677700671336824015152627173995577950331450286629656446851461774761845489462763601683440874907457814889436914806488628675480446851014354167251081583656955916785388440780534278344575635277930905550813234998412698648927392231141485538547662742693137827803369802706971926259571457625657237122848127359016879275945237668495250173583498977957962092704659676539640654458966545142921112765003210229182121796329653240659433194881171121503672500962705225622566973138571129183009290908710806300831076565010763341889381825322089440427671801476788441904475595184930540493503001785713017072986420773593251290867485427286212316463716721166151256400114031482922403816868994371420397932195495905957467051242578759745615583365175870309034544295395515992210545766787201069774998593562167564282767787858358788907872694211850839991607360563901438416206327416045615121355943686186303155810231829855619131584529640524123119441773201793871008644203031074832361385473354304207950239508777489772081950122899074515727499622597125580510275001616422751160202804776294843954585151670244651308374361073717494423226160048890876529372792158336594972433853203495928458031102682752849002884930363811793527633253067014393457122938726868254497585014837578213755103184089618396088039914715570551816192006971747110813560898056259886168764680330097976729197993220695501355399355397732273923822312137077181731053814017250992258598026169073086419824470746422229967643464300297704467134743214074841799438592344459119173437536693172829402076935807811671475490003993997556149042160991529650641610708633382231460912378821411050116634485860350529883898752458549378704971677174847260659640299940080577727299244264076597027848670794519318839811954357369957057883506703953958421310725542417161105206028102973233596122070504034948927844515744945361295663830397170106368834001577850844775500096268564690952572831152681355269640461773908144389346452387765553436291185488346269557900906153876861280983521167337022160674855335590720905710179405724290612207843727133465736801850702601255300674444994508732537681196251845101997157016399035971346927682848700881440602797893507354098105525531052621801684132171403360495716407512380681647495002298908314807489572221368103449127272736102388870150512907506351468898412213919493939328766961467696960406353752644988925721296867136128921236643308524021494753168987586835462839495540757575193448885185113748042631639401753821908533942119166674293581079855787373292948859383591919710426916850293856021871541597068969949550724910786136499980355745024050367525093472763773989935203384029725606907303261550365756757866420052279294267845943348449545600207198060900346772535066257755632256340006913245095088949049725627103446769674095375847452242566822627218264539782321236209613903570396122539551182859083516026596586374699037238366537019369340613324932419299209959081619763790653648680613113588261059126950825230018491360291452563586083465364055767229659565122349677347712272638846364375643663377943726075649286506009437202842209613600267868828310152110160848650679712797100295422508261979867492541833624695928587344533532767268959701949386200953593062580270279200171754007693305685529551700285920533337801951258189899282518836863886160057147238348760533062053912533497314065371446242208960302861416796489274287411491711270982116589660502697488807548477196185935206053536644019105386287585174765011582626863121572446563415096904079304497431851959426400583069216681527924355391734791115451076684609538927067569451990575435861955567543252157076112333166617244249336300286588333232619885437308027452132545567642939201330569048898171781049295308505247964202607673066328358987811519637421663637587676286892049644222865217777846203091540084429726733237327769076760235618637299507952254236077023324439026829024501429130227571950614163684552727019431712929689042860732619842554528514210014356410159425357938030480285082756364522526734780219485671171159600113451083607596546016702706643326185091978108981193392410759171197652474928848181784682710248576821373363666365990692231567915478169266977737802479417633974420484993112150104481272996023023262352757477265445339272512437124206806973051248911535530891988792745788669139276484070209919285140305508351390113845340247695979176066760164491670458030203056858660051723595406354611551343779305900816881277694691879131295446178934831282303990678254186584314376063777335148880743264687295229578266584344746255238219240426335455271497396103520346630200403031885698273828693756820492307888708276755713437004328325495550375881245049949611482154004543689373113853787735371073656786447866867240611415545844916249965454116274282816198209390831588765673621169909891541010178379807721477635835194977070327832259883171318855756745119928160666668956374462394966190373195048164674198859108240568049029687835572210135072793865554081851122723939548064515158647900465460295049936916741880549278533402677969680913331280230080672921967738979168622727294730705882320001412988087289123220379573399403117663207155231007355905677993483129231291553234272958956487230354161007055372010764687428972343245825159401234244495230074285129533844104521860141800475926513327263097398148795540510622644028969701587733991410696793770449647948425916809668159240680975189188312393683526072380352982970373849655423120500671568320263364501536837422413320715665345777555267509667677784432719716183760862179109713173086038669002485568911924410889406433899140059492715767285277029010927187083972203976451197763701238505666835539284252365285306450675752345934688683973910226261754961116397346035204719193559273485712348357280886634460191744435824086198722809210724544527502379467722174899040671210507205231610307609034494567993778542415362802830583424562198838142538768514220230966162894103744992936966225491355601704111365570501513780323618006244244324938349266186914576541573304712926928939592469709308040385894156381138849933120755141947794043488027864143764045484340536997298735090001720110692259387700582305395463341028761162851731584897722582864828622749475741469010720983295080782476861800522463105147605716841276087226834850682792276980490292628585804504189614761341920724531350936015442205697227079738419782802130362752454458128498317911369342913754801099876976376037462219301994403835050426015022883499811504214231605226811800143578014534239232688584704691221892569803363104623111992334158011109003814988567711272564391041513448678518585166271804707962747605773309472840476637565121788325129137903701864548797962461677964775170913801566267202275648138843694169329662528901492462729707284456641250753374221592127733371934798548220927616722664498581753977250469336477787748503546465415633601129560371163538013921631845375474218186925679653042011782440209720464965400571901347832024068612776422888310007573716212336785669531305522587930755315320958760774688369185069754884680255821373831540639607574012011692394148342588921992874242861217375333496359701372391386057098575084183505220354158577171856441318711657481373082219655895355668332925348279688864821616589986957880015887215981451325667103477599813165565606241238639119958647254659205240714125848628454662601622965363571598777662184564539222532110608107114272694290562368484859990945726115550339011693589459326252818440550604866308894242469857084251714822613371310661174264217353545743046902214084952856812807634027710818225822088007506337153127580686562723685731962654801547133871402212913713021544589277266482056326116985953643390901599976540919418295606675733246849861157576815183032291129418803560609793862019395011982415265626494470844949297608007776042950165533757307652209083706692791761483494781025390597511048805836097059405586891778427150861572267237055183569459997949647017370026029513172314474334601645095585115571594160754370345661317725773761792208352219036260015096913785589211184712903040854736063619856154457021251869204001987270645384274027113173172969425184070433574270759799609087814545861465306595137187618716241842241761265248726971810075710684406324008505973445357038209513576303548738655808266824198749782540261341055828252527211520393255881759692481595108087258798886564468456903875029398227502235256462239049226867354095050713496344493150848682271930271680645803100915806152492807033633564101754013760678127410356182573000170532417856715606504876656970384104829441409252332224811654194817076406752510559991228151470167829951960476446459556007429293355600051501788745653139628088755490351532352319075910912310837488124776527726734600116067875471555488831926354227390636300666429170953924936313136241345085289577243287451952119538546752206160429339376054413974909990058507593172501897220472194674601309150473772276466174437966791323635069293229039902068021518389184565748100627940923832764809076720754603586801732839601162267247852084992293541787106933919707877381473138027322392956193052237279079998843041775139101343047313907896731969246841622333487503274041327555653154981800664686789854959305015854990394383669651679232811120702041761276705482682335936745715771742980787113631743125697896399354257735724738767098739893758278143652628864564526419359458209062550067451136289037142959767793323527689238860155236120819089384681300296304567625571115831474365112300914083088565403733216009972845240534118628661555636750501673815477668582072732875624416706485359406225162302350307864500678860220658276204577469795961993543839150300470716912322068553158362341160044310867823108122439931948274656471644122076821547258717368899696499831368995816099318876271817591539301265578849170765618029890201146162744693088760100499315568974759461468375110877613346720212189303581834454028834472321770943750005703693993461547307403078097865709809448014219227253785639610095885104667777990076408593247909487862936881552106161224517587867531129050217744242115605092323518478768833876680292366068928558153258576779426380155612349097747942397724311079061776897221545233094224908317739611166413671984447151685127577789796592912169602144896370826139493229364285429489850543237248760888337108340705196033448469308126328206210337479485176591071173640144135935595679373461970600258513969663980940542365578548157874206826234280419498467494454178186725550034390382855016576243777102233782846708809296909471209469615594449794817718043073693427694175830206420424996781503719480398530517115503485978922000754167063889144037031639386839411831507185058156254220599045534344419712035549388228828579108714831725393696548662560189389142925280343198381738178330413639504007485701986093150989010941575779271321787658738964425344408133915686011865724666939651258411163093300808585724576654181131342839044281139672884596200175655653433350082700753575795367911905468347009427688291063398748111332547107280825610438103653473742547961046091007886849852127005594366873856936507751821009004870362307420524786096580368592755609368052816600480636831890192284961642044980188256994854707833730233411695416415821531211295457260286466563609039202989338873929740738877956373667269776578606899807383139766327693262942177410938635300097236460621404065483953322176487097443016417791618408764161448211022376296941228110698813626995632709101829425161529975707014401519651284550504877116364613617784312803483626410126365532415248938410458690634869111477059715869999798818110491141002225041322068790686356336378518772862282785914878043175748547962908285037994972955977223482144722163037291255365732077410618519322419710141954519364104483763905693035403445565487586398321974015567731200793219050121381990683111238919111353918385851752444602817428133124590548117354259814458614847734865005226272775554541889627272763332753996137002394708027990230856208938682758154103888584206606773491208097475430080316967611924748332715549218737487472195776950474474475546195299024428122178967810115042123598532503154140530603890761904501212554717602505717332015333838751652840479184554518655214698464484474279596859917475090962907500194733595723959415009964440481028078644155284563742709769747798557925538230817108296732709702908305343718924755191653133918117135607389780139700635308974830967716931646125210466260760013427512181255743390445591118872550569688200139794218763865122783941876786681658803777185532891549076285433609515263585848761006450734135987979704789858080006671953418575844612391240532878686077656591757959711903100540129569734620071612011300728199018847371754214029903356542698631621846357292075618092853563141918571931782833100073606176500998597683477899810525379457447259316583746735119337261529918934432517684707896478989577946803523577942375214497253173100991349054227825320362709843137412050257142412888408843307190802218680850544500073197122974280630881866493822318654339302853666415152891730080822913761823637220425224849912187823627654556998222485265761023791775461739943203506643399056949998224687260789665100956824335402720385038324062564282846140316298743545891973895689692735875325698537128835359793586721908202397005675109103516104272935108883043249984385778454765768713269849265268451802942755667942866972909181756745104771621749596846628587819916324157500389592354961666621216088393245038476067731381965260196674372169206633221031176727070616015521972396140239161788467924117353026279160351055597909101156066149200063281323345243242684665938983226531921052595108900232569173536897860802116504734014815351025240826658337273176643646691221413999788803146271355395342400319801764540931062173302810832263186771050707771445455554640593575397707045222844650515991130282329713927122963887044463578134877899261089685808078951753678005081924140688945886467643704403186452015780039762717778622052148398748839555193783696697349191392558740812386759682416515535238745374131776826790338399952373227180302905304280761139403209012349166259753485429785511243306992460958713215394739759415840831485038173999056393208015464964389998287150181042965928596797446076172910897268333255036371867442022656318278443778076515734690793475322851157079637746090369987972072259273558186361272726711825719549046928350081876184551042537660058484949571463951032849759642453871530090723097071837194588425535225799086895335241290680374823107222572289437433516832361620869115928080574527839099233657466546999728222907483513773174734568024770920212995727352942233020219864324865994009067552220364054108408588622315576434057221445448879500762983244585008471912084291023417077379025905879864383712772345710807627051051685418470583845674350831435013934332738169324839760357057102192737492808084968217725847954438131333195772808696380024993019831356193582071631513869678715387133488345080720139170100850102136842131039943576904995601660645118946288759028697751542160693306124474704734560550254774627001791580850095766115072059501876335712410307218458861629962006402961519010723222226681429562270443761950826019325765434476465021352264710477938313054650034284333646667565646658914736044422970675621364698809410000883243456047006655549680061491580353632026499253907447562935089308477582653368106502870741622944476334022241942609276606843073570129387995458873612058192138724457659469946344087298752049285068877877373925938055127833022437660028539888641011529469892877133966228223069499250935695928218337531835602708042423138413658119839309551807339020774677656669543915601944239572972123504753169918418997016064818640243017030778671031187396501078411137449819830802187698799475413708483870531389691626290552061208839987129325300600462857768155874006132254620582499273396807628733044879536548849880091972405426814875503755737001417627693077033714777402422599454324500484387007420979677151184719576467181381378555482364528567022579361192804434576024925748814982407561170118529187116330650327647217541729839128747685294782057904020104582470212087270770055442293655856340418434671114515749313893286935351584375844065665239904507025902526886894878057791636193704580317375078119401999622508601631442292179300610864047565806351281954437303986256244713967790464391624610033912327534154750045747025384760114614067252678061043383936267583501292755662568255042207977008741316789692696041011967145267817715388957726640193998774313476692081799101195674215426843358913563942086876126205444483566234752135423595207241739086703696876713318100699721844143803176258514970591716669622404059346584830180900468133806332473566706821653654122877443350753377960537568651805753249881866250499037705970824090041136183821174586997292918308001095151187391699401775199272294202143335629820209429113876766953179818451207614715958544864732756608113506948142908546674651301755260173113146560412207144829950868688309585076949818188313868937856762590222287382222637163198713472924721002714407206483860395847230328278877079543335947879472019371184473592960343329358534018273529231794310806649818912909197986697326522917886376500955982640430126758247217171254078196949096576069501428288890770063338790810934127002627161452564123843099691044380944083776075568031853033742522240108078898841755653424172120361553190678650153388348832011844958758638951573058962479580692115582450628188965242558326018660192265096070790465300502059453775606891615793470510246656954867715192203389866339104167389947432263445789190486202041815878407217752023793318456319194438874370367765031413877453264143900741219569339092543788335050118327020356164949916457489541963465433148571643758321232151921152202154359280933790061455501910781771054673724193604242269423167645148831137926643658688973707040064878226268998349169924095349455805498081710273156796498642883548871679235459775383956022525642511982336879495031987112457835816144457241994999826215409146570225777917256561149942389284959794415247400191135834825190976946954705634629117510552867470545185561448776941357464160494879840044340328454758643505158112997674493012307677621043846916677257659483909017457806519205342030556074161624331538260949363201834280616121054980798038463983152292657651182874080727915358244796337784365382062768240689804812034480083896136944446033582784795492285726383290499437695617177646879908119939303152803777258768624133322192921390846170741193615954692133898286333234193814069153038057502169855118062100959114336057267877311393815367027331321612198504927851654768229830864835101005746401149705184066160293686141708045862617256337094386493841700563986700639372235798268452021304886288584158958901723802250689210106033459073945850394397757743132163107520161400363197313239522850705081486386419378558616154162984615398789701070446244001496165449509074319120146714828338493083900045642636550349627935037994311062165514942518380956539773729214478742741251241933410715992610687666258351731556842266225214093495758365887684210737226245934254834236884656104383933618217376009568788623649706802512037941743028780138969626200311327343383262905201245008712371737274893704775302777960812856231064268151881077932649721309802434405116092771663500882149760310685609652761740462358520563943512275705077820889917268893042394184966932036533534937349049176256657169771660482062438282659654589124939850230091392568834984415140057798863897914707988528631885176126949476460961035525028209850596394840982718674836616476606230825786240753303326226845914360299323924678470663257353675649839019161654927088304552616514009818354883584918737216185574480255716468160614274775094954452176958462639314315870817114673688351885379072910521486116303049686170047595554794706780816749944614695724207585983255659461112875704530271533170644388439618707132304556355264030720454247443045469819798387779827845817076251997031880442051705377655088219235129921515516642537270606600900492924621722045030612309579333596496095020597283590397895210867193093773887185220091430169071724716041519839640346495693565279773333373851924672902004801123003326875921189411915380119967909508127766942111919233387144678327511468337894834687602961596694154553463084376086080100365303722544990002122100184197750998816822727120408063652503063214440565232991795460162257680659037324997255738123017105171065455925814377920037185988070107299724610562880331224644513738084231408084272933667280495332881680496439215657714671030898385404308887952170529977458964838622509116474479076467202967487327144564913403052989362773372728643816392187973775225686309271514308347506288306732296831094414592961778988287075964531713534348245371721014924225471683333582621243147900080898715072043549764512177811166882042834453262447631861148766743119746187971121684091143730895458979840203040537391163014661487546820792232023492274316864098431353173204371549609120692850079069523379694921840572517347804959403447879952481819663807299909212323702028149914701874287385184129293293655112456896676827709053665849785794470280620832043586640072331703653733631341014231723988942931983678184548052765514480948684655420463431110504264667824803588389751623148491765285442989643323768831111241936266301541218846610004415637971103151089815607221567146405296681676182364707561064301823771951930437477184284271117590495761462449449984456995590648512695375322092116585932811844257482368662600705802329911578022783042583990182583484246277747315312846892374546767634711743508177020980101978598491641130014538185388895790070977068005787830990008958534910817698238373382649092908530462623368454204375173167165564718191842598469128660658025903189464851223216934360570377700489517462078926871516795370956931592121402498048045137853307131869895351245028515492693127788826169894510167602870350832067475712837944532589652083615523174364351119346385865473478087777309309777754591171640145154872778423896232436921740336013508403288879107876626058358323719918820068709336913566963290119030777914223205819680743757865603192756758523459432484624308134697748508376022346050787756659137540605294299771101352392787481197486202384038800651892585130174161430036680873692447572046910963743636192121208586171596541326532079981291268517743594723953598030747643809352837112012639136549981561765508297034776515612220097912361947223853017374115114159011376770679609160697210028083038985172532339048854145806058260556243039154783798998749959364285209706098327889172305423514283622482977749581293606340491060920441808011985790178656337405963912768753334537206001919966390720043524558263587540033784844693019814937226271051486495788173849385283660221275147628545150777425726873401636582654501412036685290114470282794519759246509460236406951281935310806725926476051939223804208968518486943878880942383049420072280371340699287380012784002818324977062159304292219597137413434937981446827167605225830252422467392375194460637694796847949691290596434415934520035676198061393023086518744553162895263536490517112497964430065235289849266100800117350761856871520595203185945259656405337533931081474359120608565346476322375087866190864277270421024504396638310599592818206131654477462644669614312641222774969799302737587449250812906968436842137760168248175075460163916479175918944150944611452442180226947023707658512616556180579769799316776687357039201455345510185989200780302231489817483309061811930172379617472357582021986535146282705540301157140354520087027722873851500140349780337308098093706970885302709987768440856110032390763989534022481729748836129661495444477153963152225616990293540882857018239057629367613717931627265858420693849006626715799231752825714920365170929184318888367068518050192511657094015140917706490096040219801439979755354670470823219494556166821377721458157665227455163515455448657360839783049636597349189925368473205696742762219780710654866945151324686745370928933922791634082814347710719408639722815240514311184556965362750276666257598967434798230410795202676109579580338580461711731027069069563014859746185465446266237348449629332913263054277577729486271093252255194126670684886377866394715670319620811835332521981145177894885069740512719070232112335888661781580902871002705736905679853240674854492012267925702177479494334119355304465071624510317954047783299268744884098591749052325844112933294442252683058360206574113845177579679813471105196181834626256473371362019531415342687847849715586153975218605051467726889612014599286098443772321140892085719209498032116947922334775639527452603426924956011696511642044796158437434277726715769645427399056415118169333367691934341125720823584394722727831861035173015981958135999133339165200284216785777596233480877741821958523034772192956201901938807402954451313238624427353911658897274019110027546810654584645184601116329186535949114195233454658624488205035106237226730833548632930168671059252493835736211180746178569676245317962097572167430439735376569651890781082903284679388985288064120356797218931098106660133492889030001329853292842627778896555765517344650746115609369652227249874861085169117205569988670064209216596520539111641209881391565220585151706579379656477940697298975023568416532082664478563664605358184341596065042821275350547906190827010844404501949777683977068899141650757933276209909331867721599159765331895093861838639130578446371014322485852572106330109104658674857575199601282029898719504330178594530103943895103847819489864309103036263242391353717783822148509954864037882220750875802272390545822308293833540092833597546687026757583160730025457260921945240644841522732592886229329886716792602782310371250667819715840298918521151173605215255350746436235378229089076720065712070908830307599016041611430310544106956472195852185177919305750983092297007005562432274282372802532760220423002087406903032725460998926037941096334588976874951128240729910689787172663605861045072087421758510239036166871729992543106754404266163028606987962760210867456573621888987867523199018185019799988244917465270742682952391510844433751580598979763185667644133986151639728972135483754285773719892511983097935548150044091893265077694578987417322143837586408666351067802469426206614407909302484230166284247813643992436725469217754552624664165743829868098174712937238820755976534487557875821597775528017413426090271351241143172925767423923511661944758122378422296132125758738979477866173814185822476503140166416473661551056034980257204525203814626257700644236496880928862056540093954469400354620317666330073037828532486921684522127204203263517691572347654821908816892525483598027466611302967903361417901981612305989744911152000769169749358361485768560481483953971680106887286895809121568059798760833451932246907200462994176742168772451899637444115687459035280007608665833992670941982851039799816110829323571425031807111134621979228825455704905253220209107264199132636615409306006717755021546216881773137872227808317802086071336966376379693181988960111848741728130794902448436599256356708152446845067739434559901988431381929660336859332970157159105147076443605378794306394518201970342706133685991147455431552737338462319286253310188680105750796720418434250705077566791890449416283789328799107586233407235494500099034249226872582046373415773177341792398484472774552488086039667337550202770510190166780944438047017188995448751243839358560308149235437725160505247288582557869501541377291532824491199464857532568980631343892985009253396695258272878022771055693605749516642962021031993756813119239040538129502047406415078895099941777420206580179200517445653842910845726296697965468977928780924192241529866282584819305257067646919695721771560288375513174059206053419904205712166991654421491797928978120284910978668538219204488893926434364273295298119126765026845125508638645002367308755247926602768845377230314323392719414893726567454618470340134853200330298105602624616036695806053173199931227557502424192031087321840102490034871979409631661183953690922177085171330741580466986149633711873019816691231373727900611945240654304504039974605414498079588090851780654644651802413053569088024801247601256370846617307054461768681241163971146661946171390936652476940894796894467787409529448282065486273111923465032367730725863318242363189973883803728062526221476437016652525491407842561696424443449364675158618918157691387185877369363599086650420849290595471783825754056527528386311598177998690181040263603763027935262925440306660359775221791042703071123309556481224476202087620548745949792032037384539178359277592388430142058625556529102721935610921812414933404498053269540014623141350820444614717572343691698900168317289279875370476807092456811816201797249771052069788948536542877944544565993708675791476824067183227676293138205374565133277217188833777804282362570108311860003964794086647308444830987050290259009172636158059599279744718795707579689921612132815870344856146931975778123585247911941832187019557262583546890515546766727000619627427461805579994385914805460774581900396610072024760391972237115618400434029218891525847640084580600559817355440847328018288862421599416436081968244187692340657520191389411441556444318960521510235926235139154200486180126556793488029267321952380332664347483343974056177571078451831308082013385054997029820564853244220644788840137304981847557950702287844965842788189110631814462887359792616205158243910743745112903738024155826909237624701947759853188075607182028598637642472966071732943573407784695164557547179836455946981245043534844038845117707663056978637987731619323098103622592420432286354660657086784752459999792717133947188305478642649374026274504530848778821823491727457541587126098303873252287717463270854751442076530061945844160190291867091787960967503527457012967892871625304745530942115819067037857459884301967317907805298383173704747337449260995382504597604890979742653753021706941976325957797636243794488061723415607596499269395007517817056218129536838512080349025305073618374689061856385729167513329887902543662390729633954154372121469582134246631816075149028781629571908348500163267259393577751360478201365672974785285797952734113430247202294208934899941096698104920084659372024136282727985069466261615749891554711403433021888168796362459090267887289286636585284466671353458335218241869391800548447095950517588389530104982232788179460281265687410627613035314759685122347212879310444608359017773961678015318824556515187685865062228995324370195412284453277688010353051883442115135671851279702772733048561007620450377208378969003983349921277716921759481826565073344824135403461158758284832322601165518148593011626317420297735265905185862716876218488089107956436949681148716942281765784152178366603858483909296007857099695073973670049359347007714835458799181980307702955762884749484483303619315420854978941027099148485277357643402726485292461863825761079453681108479832285756878863200925780116803429562933984630472969233320718507043845746625473516803819990168771586761117160566327931613045022659066307618082842816403355147573349241756497459278639330253710925527246573222111162652390067368571081140098708315452637697664436513655262788458842197789662156131089628755149372582431312882034596974479493487226219904657571372050089182501323826350193473465124438704962054808599164095999454844954778918309040967914389888717100198758164366351228034522669111478588939876534623386653667347231044792921575080233673391807542058780867410269569184364177128490570144354219812208832418801864543105710767785151930794682102146650460490883322672084444889862340991243518611625207022811616955580902454003401036563711333479805471139838977049739742847636020748778343326332034135390005929006115874665583697540088315730328147082650258044467066436966554693717300653523964986399292002766443447109624217100873633181269460477474315808124700810839640034452008989656372204102215922468149886504502203472529964683261322585838909528245250171876832522223239922091207640941246102433804189102425559454264888739259725388968610741804543810969477621592897597028590692685865096641897564109671144250101457918333179354975162301142743758920819114811329987422570183894785354556794596595549006309474312460294108847095652688610147389429088913559160294950342297891749686914602863241467320740554234119729558248291780122273839090609753169085846344262617081609347583660918241156200507982672524977038806859650937343468119763264977966856979732180909322770527240999898268870908205301292306824878582892199423154589516054946118849518632034976949607995970993420703252108336887222112364008641147320955940363128661085675129762158841030523951040713424980488510633078801644464654671298713682452861514927145978053389969565523304979392517296398951848622946556856237905902214497563102881102222364457251899214733176033553984035178352495662116842520774229041027275460814484473539239175853412671308950156977268706276625416137828836489428076028780241662895162037087621630943462502538004239065848942391282552612991139089015198793464073115592826949851438500015314187015635909162948191099789953815582931143484820346390729674892755668453217228663095757699928519745645215155828034034829995449264834310097497777187918489316363159285828160676674442625323593895015312527028872906029257989837724945704393979637115953492993991148409513684488726077113839823694066359768580653647834692527952788995494682201531154551874765654497134541387618474170551773346886353465078338023786143241854216556532847236968048895414144552192976797914136992479941127844953629555565949735117932086328550805952066415189614253153861673419059630599871579289006257626524698901311846845448884167593958857275853106281587280073124068083240932552918768792362850971685009036234386265110691982909272497968339826520288818007195229841278839621782479185199381547094707172724820518590394098736511010801944855958815022678579668042627226836698561054229574710869459911086724418451234671751833359763160206786039988173555863717992693618720962709323690755180672041571034320311588869434307508070696842545505753725640993758249054144465856786193441049592101166308934990299697785722636838445655033921630700501970589475042806881210788924132635475534189758954805264339133737698517687285480248172685630496261603876997046486581314271835731624988639206346865401494850075204583477155946846582705291462608881186574729345838247561638962895670717298191078719660136874389925275051601061774346246427136149792212379306816796852051558515178060655399887853421162146037324240715816885691969339520668444815278638229409983566419909574921742624569153153448410208587567429987578685416001454318543073977386224154105875193158051134763218137165351932773384784514351268998287090345885182349037733666983976081133737602469120345415118008086337941622765446570234470418910186967564376668600314215091877405955349026291342989482289065357564840687534968634170411369907412205795001721571394717884368366920813850872644003869032846014007576279307738814122487086707778296147407146738309734571870725703642191854369282700688960808479475848547576393399845230572439461048252797133627668229641163717219129117648867663710414818058295797416159727676415665373905002048272618034254879437340948000302928010676559892963359741086364306168352001553576550425465744258269327370954264730955854164699411396254278698067899820462752466484413609747222449306310789129918887765005000572703066890377087036809987082850294906820510675439064076012902752457763211644505987657011941019787523753326632978166683045222481977256408449278766416424239759879786762477886402046052233318518562040910989025369204622766177528633090643403471904823875424161093240156191170045904131775087853278919632758381659576033856622440368980229507970315501073028932827582675973477078656418471504200542539341471524015305386894891346516596827623712286548784419009204247735187666777747748785422482135173648375111076199944793990040258406092421056458511297944920025708190701441326327242701536084686075744642277535721883926829425831214071004019907699209553558959831425316726501512206536873125698523455603521477242200005749807136629076199048645983940864596052748047562575071022630241443539266520691226448804265718603742081730920776805261376307785551258882242573697091780210592772362913530960514035893492425636060540642876174752874328108851031160661608659273812923453577060562779454689113772989786474079252416196653584679052984871658227185916136649137434624909290848383659502478597211690628405914042876897972714121699064465956082183655968139811429714991891003655267981567843974629810863173027637342612809219600320761697725846215421409002078523766241706898628518471853273622007497064887611938086585667868199259868050916313764504167226619527434604537319893785576315498123686270459888346791216908869709660668277076613845654382132136147805085911341258970016360059429961354470670354280837264591702363505430549564549754485218761645392926608835330134841517646649614385222150894283287593167792108160674406133233384211549210930309284638428186662916942452030418251629003585490108856946038242292210731964199491991974589484881807222934034843211858525480783057784462150525219516334970549847218627179191474347678318695271531932159789686655416400101986408308433421485501248133834481223109522249229853040006557561327581653731585818047706022074945999132707253849903621796560869466720152828756804147503273804722964913341503894082291136415825936188519282545353691510074730053427556457659217182664534590605931033842577505596214448577523958655196979165904884406952544904127012063920238692431181201245304068143463252163801571571974235011373546033558153585579243845033466380263950419628548690739122382895558273642185430881229370213215379123621235103067070177809960014747490142975583651762063952875349010718895136407685522133668234131431993647740239986861209316247390724794579185621745168918237087177357387262937491223929224506801213615890396019359644426183444971296663290243086132096693324325231389614551903403582297876695904494178257914751062454591172278946584153805428827358388021483543341391185993408752938392676233907130385703578729442932225834522443380063727489216901353946097037693996537772800927216329847582100237594065297371339523550909658712896572551375912610706798077155842271768864295655830277020857740844683000288015114798445570521855105632143287512154379002608853856028893638358038423159055944186633068891529294036238026530365832361963630256952011540669364487164957025555633679687113335133508853229778178210555465055887970839384940838852274460373010093055452577774172163004609792779969032118679937292920822569066123732886267057250783562979763546438498609610430721609555215062875293100023861960928059817417826259847962894659736503299758717336032747199734823157796335089473666012987663244089825828574666583323965008083614358482287242677662470724093971767825020780145414147705639289961749649762857826676282988722318400721774426586406876695296359864338751842981898028925213576304109923305970505566866124689575379667574343972405719121466501856401291729891904929787484643481093177491195528948449429223193147346072598699457687702784185291002440975190837914757192259583503529587911457580191595621021145907169559321329206514940247592347287368021310901310884679856151724042910328551365192188717650006377299564548287582056275174888505412195270506630081643507497268166170119351499992915537603579353947032905703538668503091285184459669685803861486584582381807732370552995082607583530307849860072943862727464205169284379954097679014748228469819514968334967447482407979519050566419320468461560667978250012286587718591143865205238594313530681812649162407031916902806119011955096586491050905152789192935447634227107082975939648673158220654204079984750529309352396502131976018010476149861219838459490328878052195934526012369141833267779043063698502112664232888776065650108566974137264261679095167315245226905048547489680427583636417356633951101491640111057700020696317795899693327383413374194450486974671449246585000365779649705535784783935098600990957391553046799268377715895930516935205936316509690198228027146657957177428430844195625473274343966221789932040048881978014085315558344306162654108750662855997521223538043786485902536628679392434702701286093901746439107930061603263502053688208745144358726762783698000113825698430074433673791481690392358579557347893172874660027306117873305996158719388072098568319391142512978925839450863189328698541276887159168481353006695030830705188122787186942025594353992021588648674440495808177545598393646566210913818430258969357880888799880572194819672458384192933749543181302580187000551223104684326552878327427720460527065128645997674645130928992216132631950450060182800764080536837774269399749328026265500046913157037495077614207884888104066992613131598480651481842830964560330799320179986496018058936408468989088121972565624010617992512040283728494686081854204665373204511704722743514149873379678975703290106089423589775211927658161784481454645559461532424610928199300301039800133544787685700593533422483127623982472480885641411599227563812241611120746545420084996567871328703928944155057087775811966205957823684180342935353002148268120255714306652644055917821603484703252999242572590543151517130577328049536199591252354480976295336463956382706218737939203081683489562895916662084375046123704395398278440975105735874183542470097394475470444384278610288786178195436388313631743741890788621754126571593079240905983673864972743986660950536568168626494588929079045613279252735733346980169594294238272843248736693099753472755068808878072003927834604878092857222706030739542475241248968687857457482251455718627766431561344578916901708604716409121827724091633725595859715385765493151734158637166334006083311407508840043016058594876148034646770870091877033158256178258781839666257849257847942842373708334427322813274204501229447172307897733136689836381199761782832610021301490044116862925379572172281215236129136145496053683170590558117533500548826495102139073902269508650920361178650133998856285181553726281888623924363323150189625867087184502921646253288303996911165816579761161800108408944487875082616215002596295038117694543657399957280222530187366020013803288399661099877976919542185766436921767879338942651663688382029516483815008552291476578634720427969314504059475307726170673777080946793254520837212325649237547431862819929803766213203533995103286096521994278129779329351050727229518040810527209900207471675408168003606803533679996566959647752343249602162733640661416618500612848791393897354624931694759148806233820020053773894265003521899669791406031832946812136903319197579586600200318791801351928482983845209811307971289463615673070838066180381934642763793367849982085360045465124064212382373884022278991810203833883700962683521398326666224148743382526759696918339828512205607632473355592733502284850905684375988960180656422195994927675296781694015188348146313133529235812152284192165720936417027353393608276290675809124767100049399035793083069602724932301833359448517004414966093456569035298851525709520007076798655379455616335282665697968489016742393682653423314756096408132808593930222866145793307406944846327527516087338946181619511793644081379068672622722491770362947454737020624033608662004389055343742337541008007259513427312341709843534174672038831847215804318023155318620905542842398838883682422759412741591227953382764798333708039235686944218945987056906183532266350631810218668972130649484858278868800192404987919176235240201088655840579409679816303913581838081147184354036425137160554583774505294948670118027936900782215938802532330017587951272594007458130650546594246604396072763738256772412739200144115805865582143284435323974293612807486231346245803717054736636606163655842808402592337645807769546158620990389572955347870764507194751146511997625706479070602417621658863713143474401625010030691325659909696902866662018869919402006813104521050707780157386879344549438680795813711657394804872104101038522587546857127462745598964099757299630693041319415553070497515927747608696799468489415213669752837980619779221350858513959537054944798506566546561139873101301109222568262653017220517259384166406154927605650190861174001218937774151145640736849269876812172864626612102440864767873783404266941401981841730885851717456213885094564551085561411883822214873038316975651419037944603241732043683017063069153470452090961878775465011356362671551849758502337873967990670766359183781443317170166951234867760651618158996755728569884568478942556621450773336036608854995967561563874254368725542747844225631571485816422659411180384174164920246912013573428835986817704822764879769330462313044752128887271654641033913626358079302702456455359762647498162776471675425418605399213494004796425968711208353433667563796014035553461193005251230384469372198476730634711809336644188004209458120755149552466762364373599532334919521889467481317706446711778530013247295629048527742681226409767702413982528382478324967805882047395614612110913967936109189218341788108694441164294471425325018461698330698718187496111269486022797867963059470208767437321074927205692367164334531527612249481945720002227234155126568786822911346074217206185273417461044226272712279669359031471380372605831340392398519567602716639740323819585183368011942176552093605688887052683469962332017147284441832693398255459062561838548738219041708666073078787533919003465321560706310166890985994840045856626746488406561824804133001175738850546044319546610934775022162743662962570641664573454569464870357776276277275731581360759680495787457005994738647922110839233252744456664505329896055368734185900146006768532663349703486445733658970657552324229609674199346958206901319872505842377099560037352453783771882005426253092592861261993466317651814377630972687540526817235676433022948364784995672714329304026674179735850513555067907209285904466634344071314208874102532308187753154322572210111270340120892582003941378861282239563140333908230030946752499250579894839309696027388232302424461070253271006732121553912676158209636701637325123393079712349532157778408664482217710315638083108473937108886859976121132198897193753607085384876468072912844019910420937874673780075044762241275617737733191272848945369402626807916289687280859834880001867497181326370305805519154443962747128547836276756802468529121144599943718470340756428518132013043771530096674537494474704144313054650451083922031691949433407380465300020026131819866766752318866761197183077236085146869844982396203594544978643782331126367716016235826488980789636288674581578384595900331340402248151829068629026854453405249334219352947315915728088841176167443147101689137855449973864751421648321765804980840940875935152045200549567566471276536714175488669866114787234402184313417035135952112759897300939163175790216094368592060879928809072712181179649887122004752598381081513278667601674630787840859622931218521589903545466493536674635172167419182170948131062441990428867086866826557691520332486778302310363016106551592290340256523444439652738536092042670797155018710519817889007120965347041996884699584811553745911198194865968764835970141913126256981995810680607435093212356442852499114075945850663474353277209013829024919211354668769743103716695851828823472724385984549182975689921927276810508160457093732222881889843044673982178795983844020752938747489793443030687091192607494272266843796592261962302959015546180900854821837970728587354927598130669505259195079765301948475612347897280538790771404634051329144183552592588306469227413339270254043965114639279798279544001376821595861880488521017447690672398496375878762204720283017435276925573445648078665318023053446454581645219803814427636000341012381854751968397332580064541263103263881747765714830405284611476659258728260407315115454734582336383660841636778863353693320558360879991074979231032692620618100729870037328078040141933252139755359794275592401092355819442092234558133722531753414092706247712055570159426424149197025530760690812232919638206775791536512680258774919138682481921817567449269335914771552349510929532718148810682816809210680275583201869823414205975525018480895781720897002010639281187013481239914315079047741136213398702552350770207712155503563944057301716371529664048224083279688516845056700306123191849374313517672489595009045103837483462958423360007135103869344017546799309308388675889013822571399101139601780446123847503977391054702241766865871444421815035463944366480359554860598940251260158531356993397621793232479189017471400295102733769381281643881885857389597642301785962205711842769810475240138192302511222574037494057591136831531604894279549852057787140364656893946173686827130766527204559529382621958335315415529691183609053129643053081982742532185213813117603082265629202520106037878486525968580223260664711528836489461185077680440339904759759716698823071781390207171489720206830865818262222442532530214546741525241952633312757177758082524806442703951853701643240792877973561056696945124685638886765450591615353854240725503565702161142531163911134953606454589144948827733869685066455308142368435342112207659632108649124738296074722076921085805982672298044036356403926297110055006473798723798090340934582174845298955840753181613560748976474761853693662193347698177766481428864986273319877294767680718535392814001713264169643531102102365897976690611976369824673724192940124014543363766410093475270776185897021546531705088991994450192978214344120890922078649039273698366208559763527416100244496529389697276259544374452490642061317832475440549896894452164915719425395673510228326856675314300579032605620252060681008057866163637848769358713748590319218846857145030444647243210092364813959001582859089778607443285933408623666313096044091105933006690461360022230982398347780716330706531667581349030755405602621079671970768534780199785359251724099300558703801163436590791590266883707782670432080580787328916112192681511561135236609170769484365078959021700611916074053828288408381391349083010999909974919044995326040169284528408730247053359395553885038006764305811839283804017312301068110525218037648588140562874261926825652705583783571376585735510659046372242639119234428250208254342505916546259733127987678561924630951277105721742440153219448479333738810424268509033056916577951846997124558663062214040114208020613100593726906622388951357099411061776397986585508648467343290994470947726659742920491792260420150643491692782476703125902205611675124988459928922769495439766237780384904040621810191061991446840640258468074132285767895907711257753495362453223186327808206464109014957288163401608144614557680551754856145243327702286396051029849489404864503951150051036436632477537007728447328528597290887002214696022610201232683154993876374700746166919631179903659934948273277889863927470581267127160055689124664999538960064518822802939875921403820169888339199714530415142117977797749518144221894885422788770355685435545401116163826887607069803529763413203283540448498886078320090824125330732418581438118934424237646158078805050755257208286342191829731768281317582495690263994959726938426430586395398974730238329153582352917747675561169190211482883251358521908980096429377854230958969841104531211048445369049662816497841919826036822546401680677439133489470175175259326972523931958602606339982056753306856211869014977944036959366114611470082855847360781082024422340843774853999171756277101684583469787694767137342818132682555573705725448149265965071871165618993608957060478152214576688409095176458160155530196976174148037896676699626146163058775172128506134735409557746200087512627395724879288900487840414841016712792480718133996823595779350688334057498623710812388601548060551212986430596420702502950849486419656340332421806588154626282423646478507393947966828983656837359153604038415220437950913681160309856519591034685145104266743326596667354508379436138269041242237007792519949747867031837622588274543729379302100514166274804170531012203198912869574564188721496139829263260587469247339501378608693366517721374584989343567272485558399216140326430707400903409646737872403489025102583117992092792073408029294029916588661289079130710339548791640195847399197933724853744700881237986141930542364637128300525748298630702349148337320211129947260801783024865185947165106893810651963732836424493460456602592304252427031367708435498008892154838221982402155125601089062497711653541564864686592645501254161289618752486036397824066581339113098614590609580484581732722126738916566937965225055871385963667738114294883494588841074376160458687307658876054512873733702229653909445231410842172150619035697382041717956554424658606389237147756447185805887764450735647849781982136148862493552704541498084271660195179106843823406357232952056343112367945756220373546694150459186077306987385418309806760721482885512525287122619603562180381093797321235274348018222911837397619502168063341990119068334164438676206607856522214050041842731404820910570257792330556850874916960666122658194034480679275355658383469010280088695309969714125084220352425945343690071544452444228368486118338035797788271256363058394699832108522031085907099128945159838908912773723040253454700292526092009485995721024701495174459883691363317131919342245735996173303730447048621018430431959606977869556543767230703673346031999696340518921198703660061829579287727101344517636121936851180934375391932513763941845824273948649836593264547556521676656859550961950257783815778060836961386222469413178033533174254253796500379825173701112170735873153358793817407024736895447905825596049110900094224093192569206927305822741460195468892894604053793004161379538087578730415870198880159344732992451625204202401541168171096150678134138736548022927863905169071664175183886331331222877361345847241311584069482424064872987471210636858001817035027809584247210566804242918504649470732912429872219665527413759427961074955438956930572355066591623073010879731594889430279759343468756531331921733472067072205010287926591435379648090009558483412533734393837162253662699675654731303798430209422685955855549001994617292976799038228071240938377031030206655642835503246657411718047132387768998044395598402599764605017208794436862235252337466634868669321371372759357265027294122574137482047497233998835915729680825730765273415670509159812559053669657523321216736804384991069099553421136397428445157279620961117317718562693315474420061863753818703720365741427547742464569588044232785047684559405367200086845958109855451267629924865240629001735322608879761334628641307614355784996022041210316713001478516610499179105186783242861358029300426651340169438475257578583322006988094715143284451302497263013143058308682163579787669719745596568654111367727520057552603790266687991391580110468888595159946785282687478206113707957612048049422142383964736616144091499814863875798891660042723598913435769357831204268423932487413264877057624968554920122396153717139695540247941639683187534323728145915844753102509530924280115312810231066534994891194715410129583989346656307005595998987245448167187964291240331582602296421794835700690677672220547359686031258432123522645261147217179515956355117697213289583138811823405515198302418009302342014589742872724671660369121526386533916201371874159216394049141546843830376336964338478655388316060892069316467080621380862574794050984358360692456396515314620450488202767069298376020010928128898930702754047573508147761119499327710922047764353296638219791743266168179645511169623636164372337750128636926308044165756069107508107770929437227073408813470707158752807743843386444224431569035758616893077504287682577815612653590609359046486900407147372407208976219941204960036063005138942314147558880714277323134246204062517245567864864830614200323345352981756159580955210315554394031025337035213583633598327154443664150561818112187326638029928120056403015276077283976684797164692821157392148820448156101806193776212620188480069681939886621690783405970928371105932312468960822188565965205384176560381888927752452934201336052980204536434814943733971408824693467406495900962294031853053474168678137398451758721248130234210854001570688192905129991535040719912377722267015153064626192573613221162938052216113564715421575212150023348361195633662836223967423195744521947768394592048596311918578659746409803848066893582887464030398464358311161309470492867133228476783371225576549266690689164460888533012376632666205246230359902679261692028304939661089095771349863910124787849823479150584965284888370052367125250817641736560038303694755171690590585854064078559049620397134458430341169276974997696091547763960826926573768301872606779349105797616742172569819498121449370877939374837757093278541469382193876151629082037219332415782144487532503444103568446712070223565132573168764396101832853840067712365281253339348458438375885953574325119854555365064833212245446175809701588021450747943094899534356721842267517862227203749576685350197202435854096505793264032477010009927910266448774928475990642046518849249769639051135807896539702174808423166029018180703459577800138330844904144812530045943916732854947374024431168659699664671458220280170500017620603549676252635420930254530998192399523553821725840889773885526621723091271132123758496229805569850286853510934590186425708204973034870719208461280450280088896566828709316963669488744942332049782402915244990232710569193312107425017354844392517768879137722833564031269245300577376818628214082321796755972150971221542861951564863148001709701557326223610876903357361888627063620707321665302007008378020959310625680962944480302896659983372753043364958257581007241633444418254731713025617394676671387920374246839662207518437742262951268990450072056137671447363792124060575202163179703072883754513362320443199999116611415609602844768633409797719694519892599096248163200190718633051024295914194765931802564526162249240325074748130996047273291091597726604968129803948472709820251578119895666002975560527688939832796926899357459234382477020789280510727772736818443729596061322596971078965699763850148567305022500920161020982385604503123639087532754670568293252667188496183873789784356888706426474051900812833978566666128484169595383830637503254654914935642250987777493992157579233967902055988950692259999643583647792124106199216711072080084684469910530009193784975159554729387650833911475992708366945075854948909441890736294403584608850297982293510044328974725845615812344714054983382185539348059671204916485693173642047705074311072866165420003076590805642200296750631223552439910378450864017937703063104094818679234591905281181508374510860314491291753178351406157042669479016422383868615248562260397744633242823842222002968351453269138111769234168315045746112774469123855308617602981821475423412821317668207916706833297842053650917464803532305914024118914080150019851690590973319089545499031930244693717924989397979888681437872427486088666338588410307402983626980918742077641933869475562498358164168970871890638010608784393895421174707831356196527017281013509660511318157763744344872902140993529613882611819618438835099969528456030882288918447600353967184996603499030777669492240676222852801490936814811961473729266246923275037342589556188382055039299980138180660849810175151477372463118754784236074330283691208536298738398149946517764560340430060625122054575934096185465523856154499338472887634518212795221761700576668240281381367853309479544178481572032686911163248392338424830165101542995219077996631553900341671197179779365325079562245721618519748708568879825081475329398460532487884705081281937101039050149477056964993155613752520448166833023911703142632291769846847772955484133800535812778586027321184869149362769521036364406025492846421439158590474977000998113063102071833048436397033404367129812049840450822100490061685164256407628602128028812930136992007174945536495931037436342116803604760248256300091230149380917152796612011176076358125407454323615805897889386578859469067739857307045076816555119602563108070506573687302442306109142626633930698782958271968372183627687818519438483799702044007015554035386543585935440819950363742524687272190893917709805156974171408752828022482347316568746921474387899639682953244917932907847213941657802727856030511816330085174818578706936714152478902090877265858068546398272503152229127072188991783513119617722079412817337938109126527932436665298273747016677329801056384583856140578860812484866543864910074349927873712331268771534539136401823954612402082966782017290402664670207410705948901478391066656224079555971718231375005881230827900741964427300986498964412342250540124862524697712887098198239963735824980682392649194301725239912740947870064450829810829873952342462078315288950554259453398324019135203614261146064058754398915263107175538163526240534317902591147244337887966959591581860123842016514549612599524331969954463249687430626301617681782221592104562290088599003349215085780831602897008721368187099952305427186435118069773638831562955702757183696007400255921483490526222110497996751838665925475137782704723619877314048680453174592925033893555254996454819463409623049720843802033987828399094153902669614346216671740454000389547704173592270423807731229700419357216804701919620087494420917146775456297359632199981168470369199930995247399940156776984437256285950783051409520053866092969277692856486454608843974942031701010221918841735893252593210482496550963560597248244747593060229872228707853271645727370758066261817567681734089904209520795673577205887822209660064779204560393658265278684125014306530833435331452568085076039478522972703723654422975604908682214020237209614272034527533971825743680336022799716670519361600307664281661583568540768521329554272321725024152593437558321587897491397903068915683111127638420177855500458486027879868356175929128571384687112799697953463275237948597093727959158252310647925074877759286384606623023780698737854026750710626934173061990745722213571627258138826077910428997804971398333079976388000370941813107822861075133420147395348359317303386384534595472750320027043345295377097812306739982695754791134802717305118639687921821016542242106301758701707254674639928610785367208769966626358421390486185091016594017523101781452257849485353890202208261271787388249017954630680533683564089167646995824142364794266251567493407436576162726435677980225240421303514868449405467241314470984182726724173025991259629668065445735164783265031258499226233859068580872535084271842494653011069616354002649480416525513988607567102698242530859349640641673794501517987649547698220726559446734951780730136507954334064642092663161047341322563435543368249051074601181862728517167479779265519927914057519985427546110788457516949974558325571087848043588285689087080620483828487374112943042603391948783033686606830858832554903932744864554999441023394287645927138074460620058828616654458320821166174296467434913035560859882131654983945516699755327342610423297518124749438502677155106890395067473086595383923978500851743785362059330608716842911741818953038699162974234983231512749871364338604855413830957129359626858370712306668034488215931355584876161533705539200077367047456268697081114824830715113116203367620814282613592991811871428901842773466978778410104493591617710300818505322841588139516904985740891703252058590151182349409882668140519285062421610804882397414487025091982210153807315704210406612987625484651873690796006051362523409732034296475744447804028944491944996028262012973297509863719093737585706704382537136892641814389910164979021526398163388772687982242167232535917472219136644851150334364558876061635001686385527241257997793720120980042291746937992709673657830937681036241531147815359006188243386760294803345339750415033160257860146773493435588498122155170892383057871105061915474313837394233507028590831208126820533513201092467432957774835054608871659093439476909993276777365325499915047289589869445386071597983828766112931014668295916418908402287597824109394569401276107661829583731375700907770319217513611987110837336394104423535635533812357598577909744833022445384344583281421942141613384830659709533833818608994041835473702450305716398450403526300303514726527526959577264646758970083089013027316852466766955591230488661760255617304497290538695162135389038138102382069868697349113194406079037184006360209156535763826016164282743584924235113748240488672618542279629449823056003356971740941596896390179056068030006622952477697986661003677604502524498726107901973814389429749714233597536476789880679284235826174775578293025391231776368016837654440809038410430535937196887359650020774634378697932680185564093598854939886274398790445074444683474439452525639484342837840286182805892306872378716169474164248255969593451181886768512185177842323164555940356312074549437654232563894937702050166024522396597531177885279033349510539199203951172696491006515007932488091765190577932471880127793820907281984427294704523478384416748459913828792924524071593188738003504605959368226950199053481045370806046693886078355661368994799368812953097719858863421752869631524533354520475224976108618815172590509126016593138104555874465247669089047990724532870546446380481522475178783769010951122303163691364573492571532124711154383776294549432902941010200225592670460254709888056101189573031548932204472022758025165184332061498524501243842510926678397985913548696477282718640398698194526382034842849419805344186294919310716363045887231901040431112022332718777652398484660706526598885195540031166617226937338818709809430573203499142144516369696285056982063238965974885899857670573357723496141474946961112879246648663448962103633146603923474649853869923064790463201586021105403482672252380995929805867270026616988750004402663263155716639186671888718502783677204092872934320774582743856548898458808739977368715469362411818067228934253049321447078330003286249850841456535476381411054119515578377668867534229571121949493445484003269139386064423368337236647620898823550045581400210090816673652082167595728041230373579033983685908407224634130650842384053812779038542789739504397304927777641831763599392440227058584904826899706636813366460496095183507866982048138438621542223890098490887528094597489383992785814341702666665620563924695363416026107102223275526305269797275113166975496916904904784165544836514723750967878531581440019060938581166881199738477236367121363615705265589961108628011686342831111613754969670706514265523997155816713056506722342623493748106286080151869929059313433103002438956184229382253944820611735977755727125790690980583102142767312527796603636004299633267871479914635849620073095831350439204378733834611440955187752808397671397973261002922628921310943473344612450872482427358125708215565041902438392882291568744330738383982278577241932339617778034155922585325216801406030290408683904239889084965016698960467475249528896478255945996221473039885865916303875651042750505612217403257135707298726026986041750222888425179976915127737154524984063898939776737570686594471595162611108618484397058176136140959410344561132061834118105816591981882997428693315841922931581147280685786357679989214532178847723389098857263108761505778803739780617260523870808746072186286363581530846819643559212363228399591443439477868110543026470378644533340451242707326278876067619848688876906942000629932944888275869378255642487827258103436117620888550110083614614112453350988719758519036097108262688737242706225136341929853688421326657994585037924554486076413243297786272241190364146216045491478092138598513683215916927962546684329571586021867542973597300895229890416038029839032863980157354234975411799373023871569865593788267959923516684908134364908210884570617847961745977711910763800514445298864847074485988106895149908325353159063935229701862492567762193694058890339032775037605777083768049085136453509409847062643277119790742783663068942362373934500314451789873025080043909404313301107195401758449737766166616663970367614244464780879143119669879127330083248955820456157217298922492935701733230556407736676617485241650923635698927087769414324349832321001936514033712814907820570753816835506708263207723021923775781236169040189617723919988470206256266434876907591945913815543441333816511315424989241855844811073357583090480297987751417964070124164967106025660194893567232657069560708107496249842218375512345057616466266652861985457619963041207987962305493068624612488567387828272532843028744719591302990652501329235610811373227993413327447956358233592063684783678430439071816001889535909480016418128541136494645621797262091034373105906595051868548505626051402149891550356803426437475575456715533525284013774663210816496090761587225386915417630925138153707846464124103624045707192288161240111174254419059342074644008568205591104888287425341085136759820964222709891882889255268915563218545842639443357011560730960673037960789742676034444014569420057598613318556674074863947272984899514063528792402525693015095682274618060495730153278885798504432863431809668024380764938874443010735227630727225470960834962535162972416829375469964066288019708197645375740246276621433070427424798933242190795114318751277765992706850814104350952667049034802504882768907164321631730611661427027173853353287788155075545339611003029102227936748084737376103890169089504245983567302564471855144664633393343381268008489708058974295724381624280467119304122266165294393994188269733252685767843806554758081314148424583118734417673813949772595248713391486799743312296941808992937693144273722201561561545989076415724973959667539950240522455502952034141649928457052847085693362641722971159245420757565301946768458954367553916235951023509924056934197528535424523072234019216662662692150959130136128512477914768925114520151086141706563000585824415474845251211727726830426197292418997712754814059110441954918713531314004535579975081326208923846056990122450096012783852863220003834842486280136441321676302832152167311716371846769934176986661353938586181233537606108505068578124636919063566961991361530021145824289280065004716383173876977628702210559111864141625538354715272614668178525213617129132038290294929246722592311439318959005063825983419330218732354855409041254707694323398046434700608673632647767348207926579528945061148808389148632729386171007009711648394622270261761877898441250933492834516193047327995128951340980482709888942432330011698441301311241110245393723758935133074874622606315957478283552768682898400320539612354929725824449456174663678520008616530688242818291310261420149215306490321992759756091848187761499495850825503038739652633078187164043476489911120073530025226926050610489562653448585060644242432578911197909811741450333313006630133505636290659174414988217728187100182198824968658319418551435296819046039830110267886856892006579646739121890232455841022244293710028991246967098621884314027983420024581458060738403859496937179035809127577086064100829878136771185586903954487302526741685337874620183165865969151639552299331723425612353204016103984228978223435160733242227520047251605060353174288982069275994764328402756418232137822269047420282365048403712707465765786166169484559499834190077671906415822027119087304935673251401660398137384548456994665708959175283120788807988610283339676726189527974587286566258686500883485613568072547673559545718379173981083536399142334674789757307453799796463321473928807486476524973751640610756594316578286105656822107334963039495386751880546336241021047091402372711597809449615370499276814778670392571840091420925063917255471498921002050311178462444262739860105507830376311625059117719357571854045152590650555560294005329222723478412799488814730282083850281624995617544471820818999262293476341901607944228139810228629659934076540305403139921313295985223837603088005169307686191606679427883390738296832098944415708850116609950472597772513813482351024020200619143567373469643866305837155145151308470062802857283572828462644611321165896839287394416098958881788840306286163284967918604587742905010328290555344168333981093000823000582903257842557648811086700123010118625634292001664145831824277676347251756038963456226360962266862449666777828409875828314386191786228005698401326873060894685550260096302659823172672693714790557622695628344290161719364612151081560551908712918661304306895830846112719385273481266484060898907423676872594256722423222335561078028267326534210436573513611967549957526824004352615295292479171352366807337417964593474848128417460554340975854946824295093674597793923610564741854387635914494585404334939275779142339662724856662542907058261393284432453345397648378148803977406329568054276350373245146672684150409663949248977278407783898110680249418186125062513819433709631098363345898892716007504408745968605285105225949832874847208628717684340468599380705261543370541578293275716124297351220741257437766949952244124700522682546540939846749308568668637328984761170377269716559338924052562438711023055371067685816341983012816570655105609289501428743170314435292538514395086192568476050473916141457724185753014522268753816874143173858539114105230787145421169392578306900841169843663232618549497021368773867987091051538277411803614053663812275098008454312202756256242389010580996936722130500099305461733248336392096681266182671621514765709228155438265506673463242879312403322350298338405734951083105726807310063793374653575746773846379112646949289921620611901299187653982073876839096238566168543194375685563802828882332054319378975386361320417965563569381372439420062342115602008256619823773331568766333172700581167937755952159942245027479125480043468658057121088150849056896930645687978238513307303980179671723816244364847454524582110657110618314100791158353699179399915166090353651805138355778980149421874654856956939793956246828227863952306360437157521638120856267789379383875699778943505578234829478839231796133429275778692499818593733050927597933231815833471667585176359122342340901647923715608280381137595036575013361814185046302960993919812889403857164460951734478531236374858912360473168356114508496675031628664751422900282499108263441856281669870406429707207605747780960265004843036374660318207751583712940994814566982799788314475594689301414380551331299591947429337148933638804964259905984896141688042859967373666997797495312536692660041758444421034990787991094505826813756683974347364317049724554665580652535073864318260607462205338184199341804631343552568060198609499826224097223955100809925685153091624895844908026929413611626136306902327036224702326641462590471637320697354931113790763753078264419558894327730322189979231795692458495144004669470462049261289901165132841900447220943241536520002388369310786776879835450143696825980268134542384630501219890051842226610154010929047838702836970294116836346101788029674221918269085512319632764662985296059796284584784209846189805514804294913671813863242691949886755443163105889996303608880104319658068320321708866911611869688518241850386398155506122726858619020713277608665844859375423639383551249038248490271658699559518275285580082888882795888783091556647199696651227515338858923555014663700619182929167772055196015333144686961725876548569569363128173917033881066250180718255338847915564882545337954249623323379332806103117505281706076817600179059308087071593183000373990748585780561118823790852193231804995060093309333886032554525087531284538317120474652485207013633015876282896455948972947029230410022248300977269397657586073457242682560207369642935431201085212875487696994535555249111313544820925160204427118739459358785950283345682032207118577507812033364374965723580896415625567495823854797920265141621472458401867446192656857829952172903090560459048346800535308266741021163949657007490157411935169405848230446737136054875476572928453552682743278172485250306247331964794888697461262586307821138079629830448672268487596793212665091292724135714914992589367048905998631460441508458541416051355733537245750313866536593058500463404255869427856261973596873440968886612437539731322334197624292890066462776793930130052349837976491310461526058206276484495443294562121558313736455698906921954683272736168501559869029893222665941191105434572514504609796335211343750271665185433070048739787484793801273550708768616707926303615719333948727913825272146601064703332116896677914675655971674207082462894158258167130326250137087339100017449497879841390848826087232388160536177686030582550107280418898654880141296709876029406904320300179156680414934192170307607290684969434768847608048203937427910460450903436951973970387680686280364416297197452149363949066829104593854609729485969689909883163788257975242655245720753822258033897407942751685338889554897141828482317086937844729968387425355210722330197485254391425441141175574045625920627901762433288616010814703684885499926322189916149274448291967581852210101392068814845427683164623840791555697950699299120108591159293130252148908686732400141839142376870173357591053077026360553117416284895628186180708626786169606367884276693096743045816990323942016988424991722325072306370305918494660895033698055431183184743749288488116944170381770559097101752732174384783814929962980754665307391906975265575485818426556688383373850754062557758254767570425315239740768666054790124392932725587773113010626045387830269636054822093316047336570446771795765886916447253341255413511305081671919481408329639652094579670603525973541092510905801471098410662464739227119433464325722680220988406519004493796032944990696878511844262961862124059097999469828259411338430620856391781553327439681679531219942431214139045909157149342284228752657840173696589711030453173083303773955040520855189842303787638530383418014958546954934257184295178070790580061202111007749558763839488897888472208812229532753641512530151606131465839417117447782213926062564332248566180436352141343453707699261365612731731572927978227693139584691052324799597357094562581748174232092658316509879891552591114162390447463873292673073088329846994998475233659731945317519540197434381034236533428758972148103668459878978602482855481681603125352167206360986448194359428542717790232488155229881886668433610725818544726006185810189226304943266068205873576868673421562742230201696808875181230988015729395982155376862109358099919171001570469475280193079137369280135750531826918877848595881687210380570540133941612299622352417350698598266855626339730279326356618896135959339282215469603574196993244372080419961113250856299678327034773487086000864154395865194193985010966336243691158079777043590076454600971422783230010384654150764751626105545360266917288544314044973357278797133428401399800946010552727395199643997508910003423224661751289188042254072672708467854875926183943976348169030723240945241679721492866081774489310411498657609050351618175757391404516983809738308840464416410117098993714998049946104709710648832333480784541018538413357087694492426919958003808120211968494113563954012317539652271586168121079629464878677988625624454326139272879879514313452704913314197182258534968750001798629909573800451390023540206927300476422689719578735702651422695595596232359273874874739631897210307370496092187513276943241432925941649306116139942398543889060723266921011546013876417907355334037188235116483269060398314087015008949757766863231087947316747967488119662615904047988707758511701519004016745106740786559450004725458188470663167918038001354573658278624002059282483248528363284136368565806265537510307316766863315299401476252013747209042634237054411084726087718857486029528076392819210087400876138256548792972320248528637968623731986006000473813972417873669429521047093313785731331899498044774051513562136276222832185860739936225685071805270971500041250282593937174375478269359073303932209825277063692333651827532665314497090504008850468712532225169961617346899193337737389394214970158739618893813118869982423993864169506120705641148731355482299220230573636721871915147303272568599685169529619703677734567400337245992787220473445689184870429208401524120060678985379430847893818354379367131490555615043250301374227882815633446885315135929716728885761098049351513640885048503935299097433345027134638907409285749243986897018270382911267401340314707753270105321398867515500069401194276512570550932924736995159116482072363048737812280967092155009524627228229839455008251427333253919929987006097367804107218622504229634027370076293430089814739995695717657300484707169493114303687161913920450706350655771624924496591906825852058281486983720022026860161291637549866437963995685600168518333884161761892780462086578815281343712884298325735295165525975459158729851246134624550046100681830042140886374634300524771329778750819814705392592003001081482974769797881779672476092045794424987154768951680082926740680340414827415108189500500347926067371369297160873068463632430297299853969488868270477763733435332065076543945636056409813859195867460323420502486691170000297187911072101897522849869720202235290677426325223659090032854096064221734386453540423671920241694140638928750655581563741202130810089583721369641032619163874962628045166746971185060887118807254355470896775726611543902706766843572390124254247252205209844300988618778054926705929206902910448369003617266779650497050958311587920221120127913817151063673391821814180186986528360846066925674695245576382152474122628735082136256015626379617911960526984780427382513675767377511464487976409861761981161931860531262657675274344927622566117428189863166619289351114922840280420389397166528471963981668772759476524958966949358657027828790785631981277567585754365997711797910667272946356855552406110596397644719029163232120925350559563315474304309886991955302185352847186162837980521804818925898238948755370521643594556371940221174008925355948540136711255564046737435216471889616664235226231219870667111341821181238036422913469656910823939516399900594305742941890310409984106345694692914643254583023496240869572756120100500196885482193720207276241359580536084009781229183776632777193252342352001961814536891640692305874414544077158789541209903315594867388140108569145401286452877029267158588587656751404401360664169578915356080543701319717785348152362981697977890238400801374291393173440131797515097089437963400105721965287603682977984637562261564148432398001477811553880932488233528949554053771244402231175630803803847683008742135080837073076455347001834269865601532330359307508892023873998238947420603179686561504769182842568777497245697728776971010605401097831820224052238349747338214626144565407048933372575193431573486846970771551409302723903063717537855525173934685036602700834953076352202927773823639492510745398570668058314608185683426090737354250125180996934783826372660300979509305890362339708767160325703966066839536768732414620001632713940530024815255869842074240525842562484245274544203175956367817862362772327991586019771682967991462660180875751927363243154537259001989713180852579076731460249145497178764766882748934386430275125747437971212228351601328246024600027609423599873416412926073175375311207204052760013679562955818018906004742782698515919904811797773900423995740559968305375513097879622245462117107117293716600580503757353797875954364828737361946869461057278988424849528822937570583059231235127731396093000587831876981028273331493916086570503966897388370012335788670549027168433920416441718579744449288928497490989564245168892235821245705943075656756311951848900421067528806878213834190121321063350101030969995824040794886586286323380927514512764008368548949034112009607479800387467145308045017279286445237474885520566259396124853058413200440635332745905797570677982351120879713840041881357639478175124364747101700797926324509724645050893688985163824568144141762311461750399817902942219300443665892449533693264893255870317393055046093280166431247800924104832316043002522514784638168239790081226725038374367890503316881144732467819527921038870058299677445906957902876287479689438488784186924841141077172750930114313069799172323925619477645980036830409374770708593150084740875291155921402947483652750562064300208696264405785385507054842849547449558477433742631165486881218808534233803165485176471911369985252956196323215821212500687672171267645937409860115853001813858376468093819023099266189659697557310917970465194967788206186346649590750496305067728586589936430392474901664515920629937181954963843181114867183468431066879494434133319138576937244799955351124005358872898389144654898168943642895690860904112045272352429488411668484248035761819676172485162270728237167520919113966139664045953260058886607013847370301622747644269795066060410790666232746483455418135184740330881714558900792280657227007492046987454453649869597516943543998524818095943110245778507194619216211249458802262677161200801129405179572133319049480589710616464747979550930857599115416285364207185359823771558118059329174761388104769449695192815471391962309554144807350697891187267937026881212278791919533966995479286087109548047191543969713271971093549858229496301439446349590096944379799237118160909075859647366592010645377853389441411657231879848157791604834914600875768473763975998579609197892582468421537329793846503012440387348366164816484804171896643823833514345406196776390702953789735201944221114917416708823224755016996880690236978254945432522155864755095704828998761344129547073650634607184414033648660866860379070938243452297388608437120138575160471278385144151552550717664018869678896250823519125045871518772362721808401076954778631865827370665522464184904014424182079080102668794791632885744023205797130861627620075744729392240363984878123300169629181619113488631580603649899010913882417083101669830306139391236368529089269483832034937497595320978162361870693572584315045897240054631113087296182347420521608638274940662534487401661308394564526647597852162708195383909928999877965361708696380235100906863636801164308050438073187645439434308325060349616620753423377033982483668304893383185157054331078621774091126426383184976672059517160784299839966095548109787223061357419644542105330677306758470901869945597737117850231840408455528812143238729745921469444093837551769107036744533838819395427632482508076312838421937693506092422420989162416788790533763839257954566809555872930619347469399362370101880799041247705326324484570553444567842339153612894278307018763685802566890931372061319928369847850824354509687272827331618305920839195565251586922361958405285364962838910827195394074875541234918305295380301960774958278951032076311626986986020948792565473514756220102775589709858658864237114480994001213820920677671414552810491362547734450399026589523169179069422797477949505163568280374109594162194607849382147252817221787520978447822860205554131128485245803661973236990812640334845868078039141059656078727885034592967455012882365760264001416034028746226948079706631093600327468009064244108034743065008871727396279962677431833784482829103163682499057290875110943080416064511750626336213157475382094107903537817702078209332739994251620537981282509563012526462474702122364943593555237095953523876532335082702071336214752396429599666549337670218033354145537693522056798946009388809538935573937196130067133970517854379773506591584017351518121118783677072100307179353287360262781055985690222386979365819924447027098742827508595745756729320904653814994615120289775875789095877268392485130895849736682893414191638466498386000795373110623474780406440306306904353263595344777691582195859185286379668181831282694388729397715787103887591528234197232557068235080624120563714564997458570870936186908847356635888106736789751405155672100652683583590524108138079331184307145959926172578436578251549303060555197215720427097866320896967247358723104162562576153877735436719559963769939268024847786976628768676152345514746383663733103418739957167371542960890430424247010787052983644157441108788206029059965887623489793436202455604068713333033583137781717282097595011825871895754088310810056646379174615004021255459890085114967975829850668342149636103923852955320285984954746412719822051258246257559454791917224331073412398453746834229434579100930840215258164888292447623242508791675690043043807411157911939091081219685157866408015663397362362195501968355433320531292480096792010468454080275049031829755220591041167904064176689334098166589521256211874567117017618020026259742165810641068207520907101552679325159264865761626653162620184822972350674926328944428722591591651580440438163817354164298092038990201657274018120819906534798369362044866790002637145964096874612857260605496610157262603093368650448452880715121789672757794643290732370103460967152060286612287546615180126793711975308209833296765511757544278852493425711170603034189684269197922983601005170705682919769139438617759660302964014391912831640823699013033790473002579811868961808558130279573961865679208443865552580457593927030228291708016467277951532849466821356630560735347491438504389178676164926398283443677217561500699659927123907341015237711208833862886967122348945326262144172110925014700834026948139415501999909312139241980475505131813715564147276181570260679889457942276764672943409283297546705850051523397911061538887054302118799112896780562810070534835977286801359148985300406097353997041988225753484396101732897122335032121674312819251493326272797063460794345715365369177501309190994386142513569728686449980803237124582684119814445870623184100648379984999797700825550859643094544905186644582081311929935747161617781101802119418590125323250605973594970246263258984698658830146782244360049994380368247849175392926103881347806849207024166522203855568695256176901578323122400796507620848603137674092856299590811797668429675488854766103360239068266433416985111251036249506189604956469431636719304411717479301798352773814597201897237395014314161892996826438744358394617423534337226005330747761730769045019963485360690925579125915891207738657594445032733395531528746419206896986875251783734329274158055685892219307855720187526210158702326972707577238415785029305276208602792168334295692062360457728234988605913712496057797768245830265482304884000719072955473622170517685216337695147849032531185828257699702491288864400235852053250647157628828168886779452766741504400433501610117829750434619612359572280174672130939383438280979978326493920374494855443806179394903395852560172954168517508678426453359064013256325074955491488793180351233258167805550028430526209826229381220712878197690041703360640899121521750383949893303376575787592694346490241955613877982365286143070420603248355322636645651311818691453829630232391697985136256034901338248246876872075210307362268026426541393898982486263608805766972502500289094011318694937093493100806919967734958052816770166482949596615989168103480108046392237585433064679363643818363107202339428334463434564182028502283804002997805401322485070020123316388926789608288186294802804747775606847349288580763634744454979647532765284412046630125998812324940655291646301897877130025774310983843460150306350548981282734439428139451542365965556925314632442765370624263209198981325847944733037587461778719750511257060010054398901261514494133400553629072659670648058747720289401336295308998257250138161672310414633623887361433827038795528433306276371551835128414545477938910988508524239636230190441205021194659242372485812547974649794000275700674986916048453527951184257229491191645913861518257617184203223063333119668541159325097231621654784948965173763249706814974501279880710443326865995943114394246105052782935545710831509215854704982638104374187049248504243849526278851792130435187986663717193381652478609541476915588750790853882268237214229005975848601420217912004935099521402903603576079240881938982579680534226940601499806563820145961330847720973440313025332915467030036568889852708487820729017545142422410838716584107636198227463655504199753124973793268716718937460013498560228120888221338732268866037335050395395095764792328325079627474645217603336724359520924498687178280875318664365709060440731113259330608729712959068495752536685772205543756936615395016484976207330714891964532718315396918429767775510268157691371450609993255124255876883604485384784851280311003311573561079545947708848240776159278533105593049580708023859077474135367882493816483125234829028846361999149136264907996996637414333929444675522967706237038387217868864361449165775699155214715416019413954043485839328713580858642995507403490948576603306803506853397503469239156508653399841944117240220492520003756119132041761992212629390657660621386999608276475595573530388609590529391531581038665964958902306729050718275671800922611106455195435621380023638076091174883184430623684498008642335000784523496817160974573914188161306883052949770147961106449279450554768319176126005028267833313607693294112472167678782997905793720543653908813575543969915680089329365491759982900133897331502695699649757522328315964295394715731603278021132201900651953232564496654516744500981700105555502131559263786167488741144446312066779925244675450493157986729661685639824036458966208519780738297416493567875204247642468036782993754122795759099047263034043796444315048698391535113693167944795466637860314160297201407982157362035991813581857979391479212991084548507907043740042255241491499367073941234387749357910149168280409937357411411672343280330318520038340721009582596179703589475776943096397825714966783655934657812134165870662014245405931150681710765837993990314505819650992447112485497559810027915867618574998357680918061317285709443321365739966349362408438259582538004181822432193837104309485428726059061390648852104774780278052434062202409993703140358085269166531681175319601242614806684782266328934276478484420566862577461080902215791198284356570636754920925358348888465877655758052767072604360291541094996509331262233871678260191597886038447201245718647152932405241107738894314571740390426643190532255391354144491821424894280266921170281028773307249941783932353868860686063371126749730080642399227586835216683298467625788658098439163001493705917261859506690006156100548082631664271934220825545124731656309145206428037093391727534524138911292169584556496490017612719810255802815165669812206282763425938154476200866876701836959993007115175790088653993462491238292578501148178279813304173058253315819483644282256756786870866406310512944234946002221254256571135922847282871078727673541309878417990495987523072726144939865226396379948263768709775677269549519420472024697203966663895824952448767406844764609513662931453760250759030457132159469042833112347756466003858652341132002547673205846385089479914594795132050004703779676854943336842172017840209549839889092667754975801958282623062005656284557019623512593254584058703802902575286589778884330299389377364285241098875902894982223555033800586870292265869261217811537592074773451540466406951222334071223076176760725980899332765256566780015599312872582136363130555745388733702951433683889645106673644417705084519726430333090235169000923426917587403241417243682457723774308943933417851784300272992297944805840166759747603626189745950684872241966445703342386277933814392188407510623087089014369093440294837693026275403946039190455242640351680631717839371440964133701007872839517239172008110122196391090921962067358826065448306993926009942219294948731367254353175721467300535985579104241877969535619240944647505098176351849204649833926104121429031381788617268715449155126410882329347942963677485553084307693810565204847912392476139575171093869796007344757468871626816940528324908443916279851614789110000660129006028349789993714933035707493589498130461214413019570172608127509505119924103134485251508341055341150963064967834982807470085356911074676551470941551167831151960494175647635111304330763614298663721784852775986551904137235867632155857413622014470436983352229553972481030845560291368278886075668471497507299081050973918906850156076035341462439554991364247859640796222457590941912113354052685229631580208767512483962951081319340183729833308493390971783420913200608122983952188959216964309617784364862256910653610400070858495259539446153645775041453957696279488904562172930054526005144707998769938775486625133777058482197650310927773460950528453276469710552416201071272255835404256186760367420212563673881704250393438096728741411595431619337569934270693791188297328589723440538823174304513647164758599469114646427496452600820657392652919898959784373744514693703039350950414458059861312481760360845236429130876962735064966548717815809181453332642104293894414013164828448616546839474658567803954038341034541629194850493313669485885431365792848517206519139087954447578776424898928147420170577799542006694077799096195089956944587994927368681926769470349867146415292329406452085795843435866338694303951118519608083517909171949401334139604433185448885936374408314855673286950232808188493162611282808519652941311312660179974497497093469442752500869273545472866528978908885124922785550161642641846146844166256795945044470633928823537705244574945511111183133228349579449259502751215448185737529954783213097783748214227091107436934718582354349161208534915180313099209101033971508685031419308650217999005520563903171860089245236474812391172664950286953938694392330521200105729541650550341506252992682133398350359138190831576631950235528351658056243933351845441816892157015835986519456954620591262834302854476165816594069618726000440082112585433184794363878498769505670697931897427002440208639887970136664302125553960201943604891390950378571481821444029023260037504656229331872963715426097680295977479821931291905227519236749927329843854879494136256875162304673701005630934938588103526320910637869488579247527299119938841549519909453670028331468470433793651042571712471128621251720731380487217122907081390532737703914978153246026760646466377746069554236883417832950869472353198474821135147285313764154066111218772972688578004072581694737644653796790636712483539694731989620419578250592246615975153279473484013373126406188081127864522724661851481524202248824373448607431380486287709225870143388885916287178693562055632078798487693979274285683551846890457632060619019483399531929671242550032567725469111418050022620462212898746272802171600897666737417572811125599248579314034547354274010460275770569215435674684335440528251079642859319143850403614687291659903016709218177826462705322032491058939241289257072551426115945580073538816333561172988097732017299500145433934367957337904008069829602044443099437637615187042912586186050728839348078557476461155092025909257090757135996328385951164641641958037070887284661358296530750232039473629123410976246067837250466817102696959587094839340264741404596672602612062607211180954793510286282048728151275076087593854121589319017941309106726735461843900145420223748503031620829033007337812699809190171564368724448605323164312842774744763750282634619151548245876651088409012564885358071209375585932530766671352290403010583339820352040844488479263780805156525308666748316166206107879037275822840216970853189257473226720237387001998176218112614528508975802844206296795280372036616136007639610247054981555944655405269113107220969112009667185615032070155934667527254488861513962435097875813137847447106296897271517097911687865304596726042588039708244208003431021650971268875503312606781839888319151940539970088093264882941996876783509414719890440165263280212906509203012242094055636603256633869611938954310265793125911141597992219275653626251727089315543628151358107885976509361232204172041779590207312016486702608094509678367735231682835906526983869302001773921537477682256571334561337367202634263749651975025250020985808268106378003247364262306073951215504537319361261044896586653115269170825853496969227739848817770936077338422678169707462639362797493033418137768054997582202648313248068073816952958374146019609831665892943371963184313294356214794401117678856539320000429253789190647387341522523819561901623185721293566534794393711876141020476222587236233924495299725264847832636893249145318462049287965350292028487175683116860967914200967626888590474167701025750713430268442770973506555952661667381322860581332689520443494353577227055050832201368619801452646611595169747531066449949549773454791180798666275801788279733765600196856628964828488750377701406843839760572459105332155932755671228824029664067148234133884866057694947883544858404802236808092039002014688860015625214570722113591609964734048679348199172567551420351601359236283254743021802122823124962763543065237283790055081297064820025350613169381340639798430793692378705356317350285608808660851282637191758665235929144940920058740557854720353742628409471284761026234092494218215339613952342689422410802311951329662602205919867835232038282854279797477704971639395027419437399485176150640598253237397530241789126256085312043619454744051501306028917597172053912676814276178313980222363788232989827735449210071907958558841710707272287856520817205039892857472697776553027665861378870935248814079434378292645727610572088365032155462140117313055972462412256579143608950227225651623497797092681581276322342266697411486569778564868645282086166015204057693427874205796112075124042606461481790379425330837090974717503274002337831932020750010072504322269621216174496884687016414804539705446747064827931530033926367874214006158955140969266545609822796873528775685866334952484898137987670959707138442363640435609045619710250835200406083937587296202888824621983606897744345611329997569263957435008106702829345440230429831438113816366248926909567777003438873537465295806374545106177947462722027127731975906716805454848173898277792066384247770544310326877517772575126481516456121483104244340470606334769913658845397216932545513834317713347725526788372668697571781061790785526417522785516302235271684597496868394249409479919318309921605143892352551048432469970118449365986093835177531534559429450697832308654972433725331887907646740663592899271901300361681502434864474430119415533205987864355903511302197419326746130378376613602362575479936508215964581531640093724896034411330425288308217114647912937514762769550818870720910803620442930203218583347183644516136436205360264219001649400822094583991485943046716212205363448521476069190560606578319596074831102006100540019865285144946369663499664127661244580731719420679449916607411007018307252128394360512412955959516172817834969062767598642114753763166021265090441299975310423719217480419801869837023454344832682724014514521650182346945038425742163554382308260084573439425060028260630262118806460409688945203852042657780689840855936898592121885239018720767468089221124734723358067568205861943194653497422359297256346108694892928833945672417262271846524173825009598340085603607967846470604882458934140449248163989190451964106503630144726648537766886354343338833654330930641622128642471900616518791822487382216486799432945764119316626362842181417806626688177401419640862988460318648188118014216145371517917979555834280357992648985953212747331362471369916319179742090828371651607673381071135647949373109090965082998502637610017684770784799696228240551916322377971422625643331193475439506734096710404512850771170755802936597515576541200655291234317741172225189759202428645216075912209080561415651385964578564935053811558477096487466540794057390731012449685230130627606715305922119978410744336258259491256290134706694065401673828482421573843871926857538090660688380739054336967566837326658084978339519702078578458240756955247737808550875926865959000525370343369332802313563191419159881733261983172586974006404352643868042077845032404798866907244404607921737548958904365849024770786284533728631747788044059395385919507674043143761594949742908435353014708077876659109850081656539950973868099622299008789601361347862869614590352694106925501944476024069595015101382789398190982147743726738946370632060558888833189084466251448443220125904254510301959016295023570865116390689850199665790336266475238319585731871480927997766494418030207712180399315830191612325403058413596140351255731783797739285189180563093385762352193731375225681280054049148212976502534977072560408595360363132308243135193642384509858160822923709319935780253912391563921262132267909731136826676274791911728735482842763503655234573150040692896080507174592684855993438543989245812807504601892394014737579308120497767521903328030987716613678912280599088876651796733232658533293872239546451208023725167253804276557479492177877376272394268852122217603994491266125597149921621923396539024264405541494041242838480659722287155656748645234905022474332637381142666670185219382570497560249940199951345497992834985918825605238053525233623136204205197171478434136514857519006250805534738876712048890960665600661195755136535308848858424569375518164509631642703029348210044361904087117803058695869025608786275523519457707419134783724155634258065381082880039792698969879578389559731463965566499822432144328921464436828256653517375219363672978447921530607270914540751769490602098702327291849898176373196333898733258052060724800464610765385945577846224031640818857570409802236600484150838446589872358861715392541382637082604758793487518951011856245041735814421808620649563759380179464471643897286267677379202951324852664921434745623729661325299155175956295132615513536660149582043324383956115526140025957670898015130539030221650783185513290065637616933844600719425432298047792637103499044781100481227786530009216725792360839691447968350546569159580695618030571023890716437584808758232871852170228504860682307914838049791440741679650525131775221891180113679694029559348929286933783033331301129034305367475870786292867908230550983399693835907657624660229938076106639745198621820813088466362729376098409453576804302554430255537464824957881228683441115303792958340493901156942454728322096297824783670786877250649956463885613002363810264930416513600911502907425515274632419139772867977619058021456771693305080459820630791696950288829148443928179817667204941250340118202172470491375430521219238987686820529130774083432672706880920499583903275708300849996870564882980700537794144699155131612842693788157927574109082578753300316805094784814284371177864621555336412664580684969182417386069615027468637975815796780681818359368093398567819991290750749753504904572982750044409738676054108421941229415378045666882172754933650324146668856505824559738170401795337227029053475768847665028526480458995142114593719463970677756999999592432573378619574469190599782679945444277623990140760500948565295708082281474689594098646253350149656476132232509098025323285682912887744314489121877972994982713718817913384993017652693921695815149970755435266207670499043408136226296428044123775293529744512115634752892114676105541750854018730364114783655327054341960553828410705556727648005718906596715939475248642806257195714671515649021005315700382147246921668440765855466575755090432804924115839927851063497613003316598851526471755662111762086432794014746001599549481076147472699808924251592140394302502789475352256082044668806261147592625029850512636333804612672647112231055607398025465974153699270513535739883372528207010359440831673139476006162667815168361191151262581198581742413637401553695672429618630066136805928043308182270102609247216575627973553776712170628587927377831938839966456946307402113353633104831314178559949625929139157406563341459775017193724568990284161664436022447276296515253829544107098728120543044154137071647576390024151618850925146548689445849500951756669934220780365495114196558621247281612547697785031428924104841380257229472904667470232311224863479734345029117899132928118678391002077494307776092983640880579875061921977286467474563834019580691344861053299521353007970985218077662625398761065559939923948385990707834305610007368206997794929555146982918745290552393858764927884039744371531259627595324278600899495843998074784122139340557434488712164436301776459527375867596810709289043697194972660744911064707994882767812730622200879148981671732628926239991750641650220094755751222116145739190553033470536398571276781992025888432414420042907239575464211560381720663505887893656080457298061106626791131584524469906742081993426207278339144963297395154123421848404164295841641331190330133111309039270335082052715363786386927125207753085366421363380212301924854214080060672375254522778524510800142216491086371544814353442570609860561337376098689408709244552157117353428017814040121513572172635926499891422912945201038421505808062017448275169219362814217243799551039044236380131396973416456583347879839889325329541620180160223492526210428482411480417024533516686333057208267792495666338661400899333734943957649344109872097153722124253908709675173817221408676674793652260558382303483922220086752702089304604167001610431878509729625457369738308656333839446165090212665911020815529906984875453071118730870476669476035519154626101790152308208551304595204794847230495424739976635053918503873523197197036933728928304533707260092490566070234956107537662265182516713870725224720657210393546342632166142566804032784447369656659217583345287597332224532213266364591066907743646300324569713585011583414711078680554603235126254782077027277861156690165522889085351029378652164504591195308595613187354483800495753983722087634245338694090510364683006681339542158141508044377868687698284403772883320381750561612019311618561475641360192007855515558273959274289884882430877626655694351433147410380168365241857110029494433465444123037479943430340054649734761225164005817797312525665960671408244320922680302065370511959347917038116965001950914817520502339751151714582838422443880884244093654683637078380353906460929252907944349114653078760106890715572886404706530865506696124789533566423088800051955887947670731497184283105128783963738921831056050665286379541475002833709562928744219282405557478090805773631210041520132281373107785466121842952403513338738662467842865948567146769638985303576797931318468118482152870998698259972900428578806360758619346566586431485555927027056561820485928154264183691541126389812864676532251318305582442187557098150401097707482358778304930288499953725138164660495997619714968591591467309377250671556668895166457769598695658792405293279675434501493075565083089156053870754151027379733905645320003769956245541277614881096895235682885117369106124956399428165071979715991389536639687826483524369092799813362739691004080216445782342574399869907536168166124622537645086533088404638365625906460825978290940717745711233143230210037011067692953195927885841853000100697931228853496144817078778865816195606690663534424700850673089224705335779500083084829115923711935092383003405145739327933079655627983407424981829840777207131338566625575300494231184181800189232047887909523240748966176051865377849257668584336433675979389519507755763325450506236104532592756702456916528665840751607750279361118057380002624218965976821604023515057965511526026649246503318458139637608875330623657948730668405348247485378903283159766628701586891961008671101673078376588316458254842322361349474897056305860881429226167157405990629389958380424343157143656065215220819416774241307070922897434046523109411222334465468870633446833691130672940939054611777502581269788593526242847102114684202144920318722786568655649177649148729236059485210923909410066422069485248679737119191508294898574915210234188360695718640911473655537216483468477122100127720751525116307796193648969033408064795808397091167871408939291672816895432561627464834570498552950982704174471828442906279982816446067768804174647844613598771855138901469439187168450680872850689385603297684441479035470552991452044265478852593219461861570364532821322729475462463364052857897140879592211829446709396851223315698154952758764258808449566827871114862192331775280752890959006140720696479731451190639825412415333839827536054238451410475175995930600760950704772463146202696638975934261485278811239558303100095438087964056551458524004741730857379839337355666801239358848808351242859773116255386328870347105747823105561598872529510130706499773741870722993369117511035119589577158977858044709023968936881886126005191596415292572441261269926976123854465906992073166806017439870921763236359589005697964244714637366955079643508514877360633340834449000995437316529698468201658792550896691305820185653073026114094935692346057445524022615478557130919836510275083705938752582850184903019476180070173719754448641392820592767187598729074315690631044119950055873968258432095055409463399827640606347941705569328867873228174603744938697861878587653278041196898456253148518014248246990727555873282160770499411993019271909332641942609910558203185674939134492123823316628392983502716553584568335535663702406823381100439816876634105630238102299724783174216512301093335163049083559499843160675518699313067778895081378519720496031894514802108582013212604919912774342114866625627773481273524755708771580348811918900958398769566723652871386897893805264428270979945580260812675077568265318461678925923343779223119535556687837459839028547584915333515000787163188365371109794097318567054676550392482274551959785066689103030068724436163044735592923284120636834930297819471451477515223517721375503328721127122668708350873102160721515157332068749352174297557081065413590986705940036723578763004407405283779304101096094026508840028502889370988424083562390756739662243422167493313455352159250262959595721356442050258272230112452814331149332098790011718549609604171131940931975238065542443372978660988734184417985187117194720973680447884883105038302226029597188548820486257510975734200345825793676287255596128973159546761384574007884700099310683637158500909775126632054547690283868602500908594964718594902436150466724077160351062665784687698001085354146873284910731495354689932611822984993103120999075827204308150303230491165477959699257234779180902892354522323170163763480604408898167658980324567019973672921711120236565941706357366652332243523226043705271063027401449196318787006105048713910884189271548708080956541309966632433624343186844357625446252234679499276600017847016509483988505605958872815073324182506123305202199584474333135041697599504136283646235723358390623460398373237852561550294953945208457332835958418571783865253175129089691600447231604135949865206739178182532910830999905160926556679348910882719455231640177928055953112939938747892878019465301361673318746318974237884539448541339642942042592849621978139340187944977217287378676702547089135467416295397663724884626131026241516114979206747380478850638456855515422256339658851920262600786073295802396034764109965421579727615517997315547491904434755401830960338199958177878605906289075287362493471690297126754480618419119770057254061353138879951650137805282051303600353498847711466751851166712204575118162148568399345889933365122754902185132649679623792484862048166096426927985357517539810927346182852161233813550790463037561688441857683904220378443377364153053846043255476180656893545270306047279501500399210547422194378136181248027786858866310313635557842238918009662922678298601561085665080992778911473652374514806284080101428586204661475354648805314990526859139018302924582133755495319726229447137518288086836752776484094785651248259451977180933602792282401468864786183529798218952783708165406447945849852986708711998908260645814592577564783934017102582351574479035297688913240899653075910764477961264607822168346459919101406098331244895685506956349049720491584552315646477362746217055466693523546529274184852527985822884151460764146505917577701044846386298519717118178954578739882951230752860288291364102245819815457070915670337403209533297805778069365589296259004915361937592175528868030092088938527096218835861619511264423770611155070473147340750557920720302552939196253585273488824392593418273429419636258552561769360526217832615953552723176870946332034706621897981012070763589515712072816835990155024613051112001291620936578724035749711071702475439394946161181581434462817764114010917789808704435827296959642728759172741980824954147254483657473337615718863896930482270303436238087906628799997683765893719734650805657664167160163520176088276208187259061291788269767163861096631923005278247338381978165004184434091711936828223756961390158397196684449100502468154634776461052882012891113427237231600677613273622207127995406646712126329579220556218772429024988870622986158951994264317157605369611642605541711753419233550312023938024025652231397082802549151035334005734457834027709014198419328175437798284859616619282383213059434775675027362009102038869507107115617466885037485188176212651687432252006038556555597803901620289943601684635497390771098174300424776263916363699116826148899461658823488682534681798604384574158433403781981186323979301012567667654288147611948354754372456235488965865900819322425427819085808622925645811209268844517235586973058032864707410440740290911757727071891587746118220966432158968004572376070283971041932588981923423506682664845831433507665582849395676512001740411116007537907018062653188952119948037344759384301081811061927344622100207613121215673038175824833281911144525638221215200542909029456657211423539355891964208504297961675536176101654178644636433446521908227874400622562191737092220336604854065366106848560374434541621150445038698568692810155715369170948287879418302025746566166744012178609684336124493196265450272550504003904037724934777040019581675286191958072766653678395245400828920498937753887268942672078005188840519967802128280346414135948494070448009690240138575967781964106906779872096907487165513618615591506052979165866525835019735527467647969919094444918923515034370723514638872016632672140704637761908980918087597815518419907679406489540418482410804253794312697294637850477509446361466946262795568267575460792257544444123237550188761304015545882502074436493833021941506484935680438156177340268044448925809832553100014631012369188515257211320058927542162095143834946191558317585327829451679960486422195379347952849944463702666002415661614601052143236811709490606883705821681253264450206121478640487171367476262137556116691155427055368645755939456961853734525071720809095185544729852867498077086057082808021855506610282677268837185339523802365367729436072452710152230877849762226504830362247781192053277408186341848993300627107526910280548985754407684093067338380262627726705232188057449178318131235911123662166200647249166989279169106961286003888317814360673123929511639620401153522426743538199774427167293823323269933058984029982567268590268370193164285029560784289494161996250875280101451650532467430923035856034572858633030613924692333635837803183970840733274332326001271295469893802194760034770468392889864309757039451157452876798135016430698128536265245413049551849620931875684579875712744685606679375613688697427066301247611743588302583234492108088245862100599295613875768838092220720593118032074111033670165781840538665626149886896061177519960589245806653356082104704650773501930223900865988921989502080125196886660509206445733126048033929871486025044019366802564155969932493790745209591898872576114795596082149043525667359834348754110303960115620829405580113477497383419598338023000358937266299382537690070902676344619110547537859944997374487888547572128901985505325619879018101190234804399710489111570888507767842607025903169035825928882918674565634628867733255750921951237871486781544663033792062390148356164076219195895151106444182866192187093329687404305915969985821821242919061353665109650305018850911012640521415271319974472373095054355819481578373575933211685280882247015476416640535974874456691299956705672242402643793145519858671575611943023533480285856561640665034950475098921827377784964999887015697064433755509052764472256687214155057151861461680662648500943748144609272914898402254199540568665092568026850584476381701239119610922467376419474248666538253010210846433281569456995947665578610161131675558777475562854376686305916638382525010439191529334913483797502615953621203282662614903420912893402433885137282639869321866193326656967151601567703432022102108882153472281869295558181748234926961711360660121181189044665189071630516232810470225924279978376223625621547892505585960854948314201946498466730852826941106034597181084039378530190686121074262572586844540634980889273625947358261357591086617770534306642939713691088156385622020302775371950718564992561750085467398452746134487984104785784254551790187872797971356526361517433641121872920222733301839968159287945437721730026368516588593047272305489639548621675964379301267364681405648440959560969417513508633365936121435756626881091481459102540367993111917480325680142083359000999802435165668922334263958536329133396959093406494194958958312799548244199945115429564944565751757922536954075863360402935823594531602872835417678455834726684294855956472905685565120950919451697863218728604393543428833773036641262494690586649260029714363021095644072362270498164190980884878792631883491779236056067429716974491095036760222032752710211712723291776875587715730611113254456833495672063914591065785973704137320363636794026852162896529423056114742018339271703619600094848722819675965382461005007147925935832791906727177715579558092746608092316740511152128421066039066599484832862213012778043818622723048175993879092621129197460068030328612355912968335016677201379987509578248441864842541941425559058267594373771046850827565734930892611143634809345323877833246221051152259448117535403924530104869452773328684481433129731781754578703126009911051540275295809409032917693319116252138910439848685547849252139372720616994942135872379047814760970837363675310784279094156123714317137568825347759416662163367094048481497930802301048163590183204240882627297263386163865958931932431945672018697470911637645091442129605915947631188659420169968364403817554767142243862158508940263587641800726327405371112802127789013937675124194655375900164526694394466529314639440195406098403216171233096338512597698015702880939184632186848688237164129024136992959781596855762276041565895361906580520177769152151662417681434024600985027937893515663533727706402126596047383102386896057217685209804263005562205052765202725613850309714244529341533883316828654550209452316491238707147238099563598058822681327936348884545320717591911169646028024792395314489829712851321510363470597269043243311044915660304596464961168786402934678161154024248082157631722856869044326938476056192473685365074685776614442489852670455019090375231765428961079116854276379622567721451652683290103538821865501604982533886862107329417537549814349581516905384873602877197215487601058630457793559519817638996109085594276796111764414324323778941797414099625334522205850812078815761075506150498044800807311908992252042645344787942367400602242003319335024399571375611237055739261200629911865397246704339447018985709890674531150999009234951906230099852666042032225417689550785815753439228516673432423772195102608745288029996947768133492794069140877300058866603654586949230147219242169242792997028658107147072349252661042938934589188953029047070046564501345483142568358098661705468015647163915961404347930540793444527099174525315902940038105403626738988462671522769884136956689388357269293636122339912963114090220650907009269855320765298821804375732222161423098668720606084952960136269036485144629005525594036416593875902360024826509941955452637126577436270337725423319621592040186001858138200946029103762285174747729622920232289984437757972236753188474199910766975957071183439345090833366429365650369094432760040910690930279141982561402107343488115019078318682307690879232824275578878325777222504388991420476503272392797293158744661747712161960695328239796664709841583725054527955567448550616581690448565387277796793410758230334850453245913381000032823359351403996090147045870830231160743724708451203894225730998954726896679402598631157271669817107631320833066395080277541292436688068267542348724990365302448809313589362304513908243577147495222417040401765274527553643260069860728324073823611528851970149487080842830560405535982579213104299344363495424023088823049423401434834065882895607900152345218627543687343236429062689707884242770210339589318826952534650219838936124942806380136440706371156744485760746039359563882163530050918981135964701301966677095636302403550249398422337676469062534605981127572435548444723361321032480007878523896238440228408292416694067978660000742796232567707778996167293803604249136336253334868721409280129826822234275619153271287719204355457061156849899155147286662306127501762666682208782744437467273138672744910966960376312871094028625899697900883392509368193847990710905550067026692330948694506455427525165756921757327052918658183833707057934340876964232939804211158690158799076282823723535481032989165459655923187077153182991132668719523487440326317461178365699761042640164930612603070197041595694646473481045730059632673310845322868034448182741729804861615242081454724416054028992397940443283874478330142674645306636154636090356281107874934862105594364900636764983581985165228035234362033316190621589615408476731144233325605755786284923958502123480006206141655317664834465008476035625535314583638370063851983658870766958604252971129709073376392706790154514137037154577894074749467281458118021229281423447447558841555080067388822146977903928386203385404900187857360666403569666545822916572361654448843693480174714892424586111012616501815244397321174844719323601319211911049395530343642185982148078910671664571057490219600019739089280690794654967974516120501941799855420028520353266369782877637727929176985264478597598591630354271986072565182407289205771150632303480064238853228615626005124719038425872314768984892774283476596427797355803991564175458646085584386321677517787464297413267838559617764567126988412576328664877355226751293070219509433633767629500085848239653313384290518227541293621069821786387892406144921485389549857188780289999934490843701648898655391934819387515090404572369012850055470577713658611206269973402524818970595320608814055745135250104693543396059002752097016616724006309537747567411882237664213613782733350569717947828113437017006244239667397141778392603316079664510416359288145634040320617451700442027945281821146929721389116903815845372526635551750943755104357061712149537690042766350178000558738731054070305254732280830227601085373975635887654710284104669411357484504222391023789603912636421445985955841708695245642394762841651150844423622051143317023355759792617131951351684475274742839507221341320551161796332529204309668687997902722488472431228805650477085785678441927242559377954842974987525924928698199437325613668608960830679647833006472593475037084700752789808300387089250910844818209561080778311844030448781919328997650195930073941895601193566987034484729424525837787325741080424034185445947796455255778105558356265714717622991494156585818016222184666419847696504305973855786748555735186574673408585061447357044287804736407187208189344393899984153521056891805593003730487701297900069924022576766791916054894280482806756337727257502334841013298428314145543291413813278756981840209866183011986344525068738127228422638756324889548997264350545842495139169355680549898655482628471332006411270770804489778702085059607698944228087481354758945274137097090750338918417452556006646240931602601608974647700346381710886086887223086060253615998033084269001635006600200881992009549400119038275686447267809188649607795100058102728504062460655292129379600091861625975494138376591273295634275133749028575613537945983341376279775471775577180378462453911761610417629656276507638722454748241187732924118230969724770086434634503415165421192131298055465465361327787869868834401802797952180784328157529915747799229856880627026446242997368789593331543197656819626903859980723234837913954910705000797890708741079943455251384444858761434959081040858083190545137813935908872321638289511813501031995073080277926699151129445916459800786433705777674882876419050817688307988952313349178651833438837410943217373511649697502912356104514020450754938469391141940097952392065438302829836000390391597653076370938591511325141121226231937838802616869823250749146875091566248801110387817205378469841890032984296108738147586674567909130460879629766622465551443325782043462263267224297841195229032835523909356332462288052561468905902518997362103397476149028742673021497915138025392788992785281967836260023349112549964220674791682466362287063550308646447223014435394138139860323052861232219363833106848847030940488680316037703633461722886651900508303804571278206083427739452707984375991090709655375680898683049446721513307773984148291279550162682157124579488079815438630377467532562747015989816690760273869998694406789876177565264037506287861820342225501409809985797120673393704008319312798916520199853592257004527896765849140944081000907587299410252411213096742373710344393314845500026108128555294665686576704076345533020991574926077900339670070465565841027501712913135429402476241515859273050189285170842990353380558327820244291741192485339786370326479824272823432272688896734563238987930789191882416870921161071207011293445780042195534010914789527006501812962596815622034018284259092921122983533431252870812610873425804763627403343978134445929178481678789433192279067616427871073482887474383631888068713352718694772993216265593404057475244102098550123683092285256377172663551248912114030522327840107422929525017472969779040410991388786072448744035913552114959922829651448072066773818379502435885649394523683251468342752448152629358432417583473433808881700820106901690802851108864117851108129683516122456493192041808043386990110800534852143148228070489402076918403532745603573152497638153407755505047680808147379335754296054331693141308836964056902533386507135564597901300958251706684423536354467317170123763810702222789730680258221216107290299572820843199004471477481125687123546348382516322599588266468650447930425700602580599295154292470248002794695003318912709196179825244284350863425940409672315284498964346335458497304654782743668339956671462739376321255871995804777878121532522308398997390110846667022760811952770214774491966886675479706357419925360924874108589510171307870586837417950510844150787318176562924817521522067425805480692088435228007492757463682290912355731174245238871029107742645085399987798927586586641536630316960274229169714969441686500681059444948124467119865466411021049167924701618722941226827239483135389493973229513443337402141737047948709785379167831786900190916952005131978162850893358508474019989883551585124632218620642870394354048997243490822719181620278101937826224166773436322214290650904088980999488923479719372060745783620180014328068244380080794475858015400326527085013844188185522466070888979241146071544351562128383684745588591060721226056443094893965006510115812619779750742807795212296833048224271167044265176852756181483708973854553557752416984301854550605291147385890328366680538018047161848380824632924215573732973395299584981586211195416996666805323461350986742952858586874418843146267429408014891367995384332578936669951205439725791382812184817498582532964216262913903362627900051936351317551956291165056300417251407209824040741787379353972797918559447977740882796703050118698974850862020245919256102713054382738294783357153110707126788774648509652974411509183823580870492270466691454773071625967262506572727862448123734629712429023477987943090308858484754216528740975546146598984684489608428497364968692370894518653979296039893554081670535942836358059731462474889611633591553149857060691664257462196469463621052022989402988583589950345147947915098017020294492052486987783284048947349825244678471097757805115712839140636688228324401572855475480632966445660946251404319526909517221032976204618233766140418868288952606550493365082952225944619615686830856474920770841938886661887076091822832896336368423791582991512914269653155242353129719577106102127535938272704891563564883621843466062678024322071374738964330219174701342708349933316303968187439193933416998848605797017417148881711457711267135239929669938429333315771973334731097686238046984063501844435545553255585234921895013001057720505659723827755558548702618503756781892240400245282329919054394286922859524605937704765074331261532449867337926120001211454047636379962548130628238032676689098178494781746350177562957876458031660738954228117616111981997153078921098203672331614294387927351623705962797777936705130503118529573977748264885238247622929009075803509872797165352928826340516302964109438394883499998845347023873957644454241866840681087931756964255826855244388871694230407628132454177287873470272883205261629869585281979410351782460585422256181501570025144350967534377482412346107217260473501359182199694125464537460506627143417037787742050218744644167833382312605210597861980110449162359375279083573016467269487597277148438438300880461794160328632413739937381184830195925944987964240448660346686275970491365765886121912268070058519870864198101097584359358320007029865755490651526565869490995298306289461584188056663357717819779467886929703881370746402985563888359669095251407365478765562572693603983520749228885457606363279326996271959680013383824104376399139139355131797458020287774297175318744124596267707692102578910721539112079125831673709257091975972461656772668837066123377086937627249790158643424315603922050289705755608137643634023361214552800037264290438843565130572096373409903737215418097865969467391773612158440551416907700939579299534028151779964144510799663046677375114252191504169099036105487616956375865314901808664782432241355669694565803038767012852992831037560638926664036731673101983338157115988791225510314321683344665482756472490777466030384625348258891661934727691670676588888354796913372760056073148413652760762958261215474215338992281793088942999557115408045935216358855839471102456073495472596499896438242383755082280601233944067086489550311858474647225927856695000304735776433684128270139746215188634659885051923543041723431428212932135974244404009372498470297651190400085157178020187879585755718672588324484046714007487368301332929166243182451689699138928830605314456872015512835592517283571781962291171619986322394663161712225196657450115049491947897060989921987688935897516654263454376032939357073068165065616944247313902506477019177801122807958354037312938865663253878021619138294968060139874532932858535912663104201576187894839051339398314233444024442827727519623387122795651537506322342854834214259124778791690907029811311547333541108823598114880560084840400765008604182126516925686991683989842329044536805294212175319680399486460668425198823943184675398037746896694358640297720155150011104835458870402422853545877808071866227956310884403022169310639377766982614034597510585582933431776176415084893258461476922952473084848032989409403879357449577436430095059427856452809597760799503109262979466174151464007290614928922543049140091427261029730473745095346214092865826176247274292264850410435902745688275097720216101443978011382241050245645250263784316184676901503953342388221371379316508028296129167131254979354645502714234017787741913672692800545704079604779770175348413085620780225153485672621317537800305957036739888216340803689638703166656615955697765542397537833458708009982232408717128835489731364036176132935302432932188969365318853145907449246073881770323331305063172271880324485003939901226281811092470751543581462752804139267147185415818376150443028038889854931058202801647479555855062804741129802500582600993622181805902855225291948172285987362263253411361151582158496917054387249282088249231794228041218814151576528316887027641597141091729339573094276240393296657080458907081598885620138493434334810386746084436097685340054708307369107094042931510282910741476402578812049934785932384260440395357438438534636982752216453462632921203857960993296880204483546119996198380396835428098891855908205916116739113742438109847669393959647138520238788899568498582696593133183983060816953427546681989711021292320403872185516305398821687462198450955032398101792249113521196598773396142403720436773456713479278918400104759074360949677081618233275792814990821912644292255324086054971750035208753206232966692520644620983537362338990018618184681556594952128935527974874073201346547165563967857733897877762184300200269130237536690863818012011424520717249702206556682314206834885458449310450392730956987601517138076976276618033914454371153339015319825005244171888126250718435292017732914329302349998073647577960070570450436217006343557026949373117435533020611590879921644626201239118782218742920782902140434190185379863849101720722245250654946291589441644145315822298766766565512128701999491445885860642377219958666997552888182266337745449142686459378361010063623768999069322412276430220800898416934751454987541504386522823826213302406305947198840537985450414253810955843757680205071151338943703847124565809592095416093807226993173224175861434223151629421680263109278994452778280086188727455598071423260821151926270546361427729514351927744331777178907792237583659593041725957373269482457025062227100474308555674802280656514472947242396262808361572221354744867386009135037413748460390460040845402912155808704838296098067993292736777331655912453429838572454482770807534700243086734353113866483999179817930234621083172917336289670482451605566556833170388463381733647622511115070540790683065705152654339097458000816908901356529918110980487003633591147088527319417227807263950332607746499907713017591526851358139527640880585229119382686563029556044212382394523917179364314508218820834485893984573566174647251277007589833515239499036083402863129189302881517670211456152153642689044006693342037744043671680705958631246208043923121226015848990697573468176029692098957095724159947141524603738707230683379589012267781124933477478284415674678107419282263633176385041272104816836918556444884512435602925756498115797776093391053187061313708607850207401795535882982063683756720715888118963179359867757883982217757549312774651744956083468426446118529784206672395405164119671361937242404017840114355357790444936857348829640480678925499834821191802446743653846599578388190357102120907145926181802200212671338889383808039217642788993479789937965169280937201130417496978963759699490631709899046233708527019555376821621547981022534623819811646561144700912548389430115526161116382561543346101824403678159548748888684723582067685092296132937436367039307331602722213912655790941268905134507718983124076800272260694856054742437134439492150367823146841541025768754918986454219961540717867921327331241864684608986106640986985403570243025517171356709526950004163956547648874180091047292446663191265373197489538100812737381047386642052218338404702741315107520021542003222406443411451987876863221078950169494800978732958117725736120482741252166371052580780885294059949471717499826169760715998723247502846763468926564531019160063678647589551250934388612863490219519892773563430653571435791888158065228604842301006843085670303148718421085885245792190495664492830664672782670162526695873672208435018819018287634399217567624825581662095278177715600060174417628024465045773993882099116939925540617270237354810168537041715828230134712768028078288466320109899490276789920327865248225084624059064575346624603024512314755106488160009949905474285905189555069486764651029904457659503296228878857747900369555155267778253366828827699695551911011952755827492245286475507859993089836924974011116693922938301523883285186753749791196776632588543898067109594316241744601655822551200836829883167854529329176737785564418560981855440877144926468633597268717894554685378188258487704132372745734323666545184646533886415519684119002927644479386670022529084691139424282073341782977043386175900048499627375640270775409118528313353242803973149337964947844756463974801942916139277032349485810389374324755865113839613587591500877125540431942709096775949852773164478892437316537899801360812776580477534225338281924777011879615870998503822008309228941869718184921733240440887918830697237365523273539508554816355352793542847150955424286738411860265213508786486250804859026138871643634294949367160931822700331068575116994121384392892833680448043041050037882368953319430378105017625398603653919964763963015303493545391468862050272360803602220996286369801650920710480058150951281162385630125461533204760896040994085756986842174080066356435852670622154603703612297665174253444636314486787630250784764417937154373906813035389197527370189183037749362626533806660361122836862312900350451351289804782066098207729315961544515322767872315542141118460003152729796873869770693953692028369031873313762260010183447360252912132367988269604425395788728449209139907481422857241011172317740625612084158779849212958006342694234082910971675705792295102473948923839355652608244114618911814332413794585109802933185296520388209965263463652220261580431306051133195660083059557934286303706004614511688675725433057136754393749106405117393793427046441472559599041677923910402181924346345374665518532806336277932492116194350431611488591661563666785162346642782981517176905456934355051557127223844641898220123119522128242826456828742947664023678449656003880706963409556151978954446228138985087309540176544200737639349709344251569365282295253247286414542949919334257281600413614672628573754739408451320717325288463365026746647199878302533561152026112291404441036038319148268882625425611104594407842744747408474353368968300904536105271915598629267555812177913034755262919392252644114256501061389100924456797589736012588222440086952389146216934929019457977178498033108215415091701800938124140705821389395069852094073360444612872750409356177735596444636556660822840596446842040944130428498114089832898107115685211333689099046281368103340766648643638473066152876417850282058381519538796906676638638754469880990083729038566550695338205204647190922175705986809930946246567824270116186380290408555070006926879670718277286251656227329589211798674341367906177880875588288859433511268342087833514142830723406241541713193516407268024967980946878795719946146930367956957877647969439712055339072509999292280367558914231996189037861168018735398704105957007221072424768882093597277278134776400156878721942560244720988575869491581222659963458104189277016485947686014563639067976246800624585557266952970635634392146657371915317838776444644566252283786616497044482344672888356302317277953009054164267123459452856931813529230416087936562754859491679869880676361272391046580674927449672875938452741683468095237862307297919410799475056978129459311827213137677543380033133749672354021781857594921734959742422490739155135350189499524830098721779368931946791877587971717559295995902588467348505642079238267546143637243212852638094247137864837537821044385388548614459815395172267326680908968875587880389594101538941745999548093002226789442106282897068251421333800281006071667500854690448288711453625096266718310058630370373844636380307239897190481384239750744768476651853520921778525582809880317462175065320309550315078649567278669191439142403923751768156233126111378173707815584140697281182423461855634320612880519672369064371137946436865915276161602896171409506380108908465784165133726401549873311785230713193660367297387614109011810481054450823178690544893569472123002263795827773107633139128786497592164361310260220210104821609744421831575389160385042309099903781501336708527752499182136877980433146276455429267097611543796910285682747783488694497733836211500449880604372700840473295030907278923873787520697374043855142545520420088954207728554329768913182981382315393542112387386961608148272170271433474249840500925905947177404396597741062958354788345052062822288731558394063734929083942945932739879687777799496343451499184812511178695084134718997638107599219655373060990765186622031366122312385639844807871806141866331922583388922233716494012987588542421863447807378813171489290833773827523002827362299277193078985873117224718573831397811400668262442231672995970568424526065167745773746675806100239568698118142189508252449625102793744498478028548684978067105126490815152945441995463953857892993857929387447087553036539624086999322892441556562665704938825823252471094714175498711327007513974407767416870853056847671938910645778763135845657701935698395358869207738561657761120518266206338798697965902999263315072737960865577517371195202781289963033541411019032785421287176143463693102153765000759445780003492429876394478912403709242253438288951525398940908321091612623699888538029822022758574363292249863649618288193934102230520195790545835226201578886032046799710775508708322820950850227087060790334671533282372018468667875017613477666415426093226866173129552012197511264492850920212437397657410123094877464133844181006874147500909116844943320192067223803194721709030516575759706489227569527665111084060738468372739438340046824811379135089719625727866571578297924193852596430935385991504114043213413152763654435441756345944447889075309168720852491327247889932187210644195207067242888062441024288946948358831517083847485943750590542109157043260774426534212451845214216956885573948969877516416044060528162070683865362079400827807129994174164072644407364562493100413294232132694126607166359519197441237763354646115351372698637323469182852182616457284369372429298867729531626775576680135365922881884460236928162634015867074174044151643276596170305531141909766898487510988294148690868954030504980476182304221136166861448847094371275056203985237532137782981203036912209325193555380469728481406469359433661017945746484787716694765610786469363226349146222278959516107833062439457296622821091564540547935647071002282376332563249647023879890338399136249153450317820956615244943044757143210781716984029848313858634559726200102357031612646648326248537615587941938073895291741959789426274077906937299065947919313911259454848252119715272234986168059095053865876865313067745187977545160802777170855285071425245840470273237999561393999580507139561458761148063757493427176494406881227331504239230078695151682966828201014663042769142751242261275755393314333251217310142047546948653392587871797255632763777013141523376795472757474154723555909500164817988776019826214443246106188427809830033120333114364325379582983088151695012125792839164135870421887830201381352694006159635239665028192537702912801242760401884178338826119804050538115583066124276934810317839248193064057291920625420469178486787898087319849440960715627425203895439820870018051984539650045003649956201323794623542288037224369403571139210552386656915664086329459800575728938910948490299063361990719263663708487651719225918982501612753166863653056392029984001684788794925696898553152281233437992974379402115067168112643460890719311505009137849354082934008273533080389489709034138642491974935899472193714086282887096661001037540492946119597046334828256124592117611056137720536263993645725401287117087724092280266138220309060474855575753284739074478939781843214486563479650589630288299361250103862562048295248131095087597724410462323162584090287192085322597890040683579402032138287091145154589217497393655507674300358229891972783751686997905965666006158273634674092495047923896841892096087710088398356541140451098691894645788269635593550318873470806323851169531299618874244998854026620367023025174528466375607650561213624447522865943652404820508225257726224386263798367009090874731249915820655980222105662329960473737643538135601579726061234990389755769427065210747823018689346627691660159791670182791751171883181556855929257041111004062386902775042663839015229647023354597027774399725226245405192032921581236464839504200404817821934510209099527280066503044791832287855091352268218222495101722662628988059268983709264012184288902750358771198473137870387034152824695860620574156484645750901991251934311029981740744871435577517821257832288141068455630483647453822253175439433137698627205776107197323543703875465785178394965707087590987724184321000653397245817820651578708656681408373109939003206167307501286374253504053050564940708038062902021878922100543979746876974148468151049334624704825619151601605135888414134035598479716802904453856773446874381232587710157156705430928230155678694695391221780902407975799626728249649256308622550382362285135801080449180701886480055828944659900742622361884815680381365141833718446462901557073610564181208538480463182576375543758868241775949599951443670158941768962352064913156786563855461302879620569301633555869521153704771399374092775202104601666444766725938960791116939273470035545397642003914997211795948409788141840851009768432354617985077093025635397982479630249506453527716038179574123336784054662981526386464158728319248531980064017696559966669786533955883925580568030673271822126680687323955962567908420665527873951693200377687887638276863663788392902468657586083048431562843579415565185236855609283308222002093433202106392863973010973804350955140796050945653112980214823937070584177956760439105776117612462807974272218770326843325023888017569604549598796686963689129182413535879447068189813904867862571386087876671841967187309907677820556893683016357880209265517093371264416066060757726315015040438989169250660703168054767527791664190471970179650568941920858078959800704177040572782286724332537288835050953104036641780077127996636466022639437344111566915482689994537910490322821374299689833872117602086086620335953889576148136724621665663976612499475552682081460520633474408029428907434758118822453099371352582685471907433362309296427788965523444553385785972409861837752401140175935558656530282722986672939388575942489203483054805035102811225703144820304044004602703376288399268783365878351897946450082446458842781275995988789126544491581418421349565453416742549006341751312131081930539854064940730737393315377435118642138121828711611004599758518254149325073394242876615871378629623101585900419653862760064188087885577206751178749143351164137349807674429056050336980625398359106004487325818796680310063171314466806344257550738685984009741670926549742505966862442484946202145025396055145132148634673813658978409911571698336523956150653397241448276389793784805927084468254303438053319501327102078715053375857857271370462278643803448552821418828755689335723775959832923547017786188456155333860635237957708674319210136214922962410227691550961022905526626255618467923272145666565009074083723983204934678613058248568606421802668945351840175380616170985358808491997151866937710380578550842551988927217795925224628531521958774828157383138150750844563385483110586693793174453571381064723371613554634608024815332451228984178484001926281951681173439257811115524275608351512997566354008712017626686341202879714951806106330976934044050315980974902434902445813378285286985893715593797436597491218201574997360600996262034119959121240812330311186292238300163120993544635252772214432211923929282494620077481779021792973520448859188007681383669201414382991918494677119558130045049236338625556143941644388599951080172688205889340678630210611196429094341622739975054193147381169781096325956017853059587162823367049927807156699631819623117377368840019657918816837880864869660273049996390057669178150706851691311129734196515668864519277324410084511523228776779442044980388060102623307304890676066506515870849660059092442452732004412442578445095739062065505291602189261821288931532325232350038509310319927131905967108168265949943236727429887356085235514814292754491772762560086430874014530134369908832355678340774968027298906377988735683657022285831441047591807622819240460412267571691087916529832697845491297075246726281740200543989961193700259845317219437065035973007344743823400943420292722139355306699949467383037719605860986942306315859360230272484848764585357808414246742695383455815201411454624646250080766636981863267504918888251577337839265272785083143190709517572062483576262394005362648101814849698942399295027487102466666952175498043948549427141074646153265621344264421271151306179689763158725476048390812695863799171098810989066067499453938703123007691628386435733349263682783228566285610773296951168374954414523816914815568386930173342299202181722469564169812880324758512491242692303718689157761383751648016232777833984454222857730889469519495970449809778813124951841940642024034935558461665135190847637714714417988842504053062081898546869578270410808276512288634519330853541036074417218770381707066768166127706856814306269789568020634830135343039404301940451713361048860884750523904198329701732616800072725693519945106527707829183396603312021857696806542779254218509754168065110844417935716216361399527069172408530458211399174935057782081909430155004183462904457130182508462187810567805188065056370846711226105491013719833034647947750310376787841559597522762415075333504090638687452794032474094081686627752559593402603137579329829099801835205193518207660531836116543151177911130886747612082274808310673556658198637066785798317596919364963745976851641430000308560421333631081178320964115251463024788026975833808255059249778591426757218500088277419957651858607010359213606824436059237681007960995576583683321007552185432042772636241347600147736826326811719742977946825240400680691399924674899306740965263509760947637918387281468225645552609140357066811919450290275136127784934504439940867740657329838236964608789456182534264889571090274854531460863806442916425945250082225184921782577522008249364868409445902840534329120381314420948761313836027396729032465822195970505219378826605630014120561770102099177386406649429698232440644205865281697139325174038805025616269743892852014846721882885892771919615896665435289005888214633686506507791884404633473029717185156430342646620314896241938612416727217706287801401918829671467900579252852877919205222897387533321449184733742733166853606636325696131797277133409091987639898255034828741240411910962027072346196270015215234489926849082843300628873403536701892790060942120330907152862383639728683664548373631040692077888408868346215243281314869728202395961650633030940081040629287767432685589430313536332522370878159281760074103626648986247127909783143231810797892629219998722647479705260714580363675556709982085689688403644604292688947691112506443316055457828085565655521930661199697665800142508694758934306754643338128288531902453338639315159657800501054396236978904634338393738218344911873974361090246196138189066074704990377053366643635407249597696497638044441159641491953575532448320618279761570762579198829783774028845641773127950374056738322951377815186764604918213408378359859755145084355630615138601170727781630904292194544947583758133968166343181283378018455148165160713792747609867747936306559534499594487289051425199968294935432900682412614499593835232784000355412631360618989438356240339798136003644021699963812454073833935616468336495354002136524994809544708585220717892311117923235713039062264743640539469875074311630823648011423798736174720351190629048554691565201975314561307126368842716745011027408966158426674346940450200282558594619585358495221220333103198399433324638756696106086593214260257063015809955514829636048243692443286392667126231657486371454952577848032838886079314642709389869167561845483768324889796747983242917644982893060893909471590868330617108275726308410521493946246523693336024209565707301830233208386703381860609089001630716992584374724966131739893836965306925983424174931222785509221489328763422595893006751227822718126071592556146834275689554686542508469202499366250398266252972216870614308800352646528533825557001373814804642328506660436689298841654804473269412690066499676630571461887032404773017247817608514431126802276802623049993545644838510977505823834945707355333604271182231690249822009595467924134602389163387305928864769110820950621553460656721839668663552551207992688890475181678859663816851456320687044653389479009043172625676087590102750734606005642353520817737036083289425211448426950535437960112219107129320118696444092690547208604263714690720335556492198592525931808334092056947352419169379627606329941912379410146720660765881493650861763516617445521316426732579928015242116770144596908692601797551660675066116317427068607573346894752239899251381143869409541224895068742632470113586241249110852985223288847300311270377723240165908744433737213980694743270191811839815447578798260485909274282457630546233188441972343229559568723878248721422142469770254624704796539561241170696741240717715555825114695348836672665023423923770872225591298562216273691046984697481339083802555753349845133903424436708879567539297221428561898896455001744839549512118681786391233516322651750460405542640138171500204249458178558576664496606928422250666192110691353729569320781723618570282429679687860972580774439934708389895903905639071724564591472035451065883633872669150564984335895396578939626120850269642531715532238212195819558131373964924639213021242331461270640067165428858687283683639013469616920489841219048529537529722210529708676964695310202386556446337253644202225399012705769435470349611365841603056668334784016894908463737858038193696659082053412826340504041089515869633408166133765377692630278382686846041698310336164928760902893444054702513350164477914420516044886100656909791420693722746301601859990362747489410800152649422740113137145774305656385026295207930187557339123029965376240670533143087422633300103104642518616542366549579699140948354977334493317340695943597809909003261828293985614015051118943867930052203166417675014567499971116783954602053671475193170965922458366602032070353968941185634290572118870637827455887610129301861765285643291603706236447242721018059409444677691914920275228940806210091463542430082276109134726495329001728074792018072022296582741372804121028883972970094772105265886619680887999310744275722484798022122665659478337126877239227107456914323294894092981019239547977866638455513530225544333909370981305117652360778856686850858758244645313188933576902551301753096020532147135761269793495471091117486984719900196133905917414365374882236324562310320686314426444009822334803120142183463351935860878203894907458278118607422714943931169912431456066093622083615010560246868929462487603288370087728344631784817180868809937155228811911209353484063008698525914389076478341851181869486472801588426500172560418427073737413726584812056194178223626804800349271309499161369073648364485109273596920891280993512843380886799682265304102435454484897133117440454858336484076629969156824490739342779306959237096548884332469834161932592037658546540505691625555855854818141759319593016169265812790248719820285968408133759362574198867675362996636931893557578904893813244238139361823282446800416438598219184601860113771505513058723034914290484458683974307475455010216055254628139246108212129017058029432579731791134007641659881508879026528213805729615679128671422530708938109390968128357190341113031113504305667597712601284995527243355192777791739976080556485573318938017744609553378321273222686128930021626357661628477016735199555185109874543096241614537857854640771810294830005316532915209606401747785648117771072626676587829677933753966181022798191002265093213747525658572360978159802482764846221024018460132692378906884754316575698591370218126173528043357234778360577025884687331211132381346264378181143512564395928531055664469762759180487641357862777912003789098720575394229215161040119651085605342814081980700208120919372946575606234642907313675512570817190574561844107639901392722907478047539649726129700999669558499866620211599003486060013188742650662941910583772756032085825711287467647402773114816786654519438044596069146525048194270490912436231182314948153138554591815410074975500912544042096367049413244728326303161763019650852456705416429076501851361478778030684429313978230264493288149926853343479570470280429885383997242564509901729229332284166186810466762143525747411423196483350204705421756149877108297474398116705961386656150827330260918221553470303112509356455182570856746817753021063747078296232881637523237147037520696096721277340995301214182847975007981016651564737520216870290804524342217340688455566023007218840224635632929503748624548004808516043376187413460601239855192065944628942274054420467912842241323953093834220234904465983934355385750877730785044269931243592470073038225641487213600739667545713649697485881719263228655438946248057274804213747951564944845957760919120279213505395969419556077606320487033962088969546620207375147522154590078199281816885277687296381250276752323985296290094385682786147898120605029514144841329497948039062839117915020442128375783924726759033121149450143973614673505566106599697955671862986471264275614111885155244781216909011262952106838344464374566902696084770098274876431937271156764139885952865052048339123370382358745086145955334714287466306546519061477459248677730177408398930447174027914660096485577267540473791522974947738018587403442428540352877743356455776144892325925042049064176355887983718741732929730515160873635831478937809528421385337301970810131806240931682814751533846592995174778124599245055987066461619292094375317382382606545846810408568464042106091061214559343701450169216813733948401823129726033008138561171520648850430690287122871640553118810442941182041111147390605599825159793148926346204256130492624801513550345402769645021719260290943478018783138759879629380618351548697113947089259216454281687986044589623883184807818883616216768634594302624431955471511606158425651881024826378929705114714594891153872043192809265982562164884808935726598791421992470013755266072202383602841462746501374696302316316632148255805048744128695654869950830773342992006368374495066619943621077452912186081524118180849443374009685131739861208332143745788236257344088622930408907513921454555255035422654134818468719663091441677670266999869110700536964726990363531281760847954548974262306287656448818317390028551730229013690083007929186360651593351498820663681803378986264706233567011265688695811449492668358883474526381219922781553198997815163740560768900448721111375650932557711260823356123204521487080454534793992427369491737903258649428826374485253322375580986428380915981116962050340548240779842119495507055714148465044270396709796032291347635410219006330179798397354509902616786852591588402042121092291961387061772008072538430483633878263657982104067696171945002331771383988216030693869583423817356780397041469116142858120251368467329097584125791485358088125185486794315365050615248327342525304934804013139904666680417771374276460672804323737699881804631879027196335894249709063692397931617678963661236386211616904391479533484638390518312227044989447364303841830545211899589407614031171188497118981228612672397065436992412796125575886004453916591399752608768769114449711285154085483668335573140901460538829025892873476008199526846539940407315659749855853899498130172935358905650583684206621789017848180621168989804350897965200525128975318040298859528826857311621134999012944313929328174838033769862691115598239580010683108305266725617976947887881215449159479088728438646593765123195146135355038399444160626119098960204957492700479715502072598066477270428547760091600703437350129316922647957636616189056419082365745739095900447385525260649988576134963448148999220981022153054181725637104783224130810380194346026123925874365064701744696168926957670933351144008398216144209371001556033410985383552932754857540456167310947959591359891079257875832323675944157738145522346712992513362994130091402313739526891324184688976545473054933790813480916761373252156510146265073407684021171878679325593486646928685281724628944652117107823944560853756900653009095323248056681553551360022529061500977842788168450057645187608290153709154837723273097362833621807405709849010141074345711302821739881297090749226444701687208254241554274026282855088023573002301877398372715553299830437537867749329541076674928332848608165101470656327275672366784884408078004818262717431441515276743322708764511240844621489694788654749444108514425781671606309375041045543257056048727401992259347728378890670500170187043326251953432454569553655713195671419482639688394085512167443313209922773188703421386045929797736278676261604761414078194233438173794898347123551332913390690672945021953518134086175306371294562815124868007888452718286399383504387738829089567234526446595352969978475182088926454644229871870420239393790679449898552066140999296845480182106024202049220645955582144357124619130119153878640035681433070893116210634796027626770635724202572794138774438426787531229815753608730115827672547904828928699800744733947882547992626381732217586894813565319024141219976998342828146534758004686822075123387663753244976300725108121246319565615677622909915125727839441195402052179497018519375158055762677120776362633263173605462508440129463709500378344599887152448123039403346101422494405684788922099602795717250655134355814422699197625700617633932333225641760231178387940119781278821866035847008103537679571013318755802302885094357200120722918078542499410309137208396934190472581490258083874552659599021748320080386091546915111009516071689836919670873518737666622349279861330969933883330419400499698617277056437370420782082940811077011064953378742954367379081865233815681552912433860713724351620315202778801582646110445312063532034249455744459744798688177505611005543844345906143744884072084482668878904108016198681952432666809064537508852964878364264682632312402637344559940174328772579056507552585773582409421856607003876117437423148853649589485352341281943063034217986741859265840897120132019961313261830141353464933511927166016579979692282163731392590423155079486582876014892361790956708658471569328016840113183621738677822587189557614984013750284231342215700221432254498007613446988615565564104575175601849806293297785418499975827625638195316465383649666857501660450085242668342796812730589665118907693974890034514141628981354672002955071149273248184323791555000954463481760236816991062607902150703245673473818437596870030534464641322768262467814825328663525059719492131307765831263622613021333783987092016329234285132984782434649157599318180840382261131706563019132077560936276937662193174159201784967165282910430932061100166178204586869206296813498043124369834387387305032101406720046237728606539525111597372320792028255061705360116022034359866365333396405437861750120553212478714033246799080243600024573965171916203296766174776154256430228901147334274867308382606658654155704348730456485748767649422659554516811750453914012107018113602031010088762828165754525208108422447060751618696921542098110141677996376647838734621696258566777908227014276594450714767852122991703729338898260972954446589871487518962142449412342909733272074854794900798802113989483745025106076827977682332652856438345883894751646694351186475786713120716329859912994954508364029598380384033646772594606455220470032650548767024754938093165365679743631101830873520283344768591064590180721793755352165448961750528336528390431525825048947119404041410026417381827377022665387073989611177231139681323409158971448038731357755332762277913160687872002322137496063531518935839003766538204756297764264802666536090444784712650181731672584324462887119526500088376541129112917998441949743901329915333091753087957534696438120591504892804199178752982776924265520800002305086996446144651525267915818914086751018089928224986058371566051390112896747206229363154304734596145024354890945954658893552818443639306919145172392196734213306991671794925463747829050373337695847074229775764343825888766538936272836545694357191008967395341781391853970125773571980166359936811967137519520969680365659335265459279061049474544546669871821534419744340830465518096295339218129269364576850493550187824187762980517210988356828201221498813851766959145825909601935080134339038940672203757661685808488288975360493355860446631566019870575173276233483385171715449184535748646478230175397812309455180410926815265597436401810975912133838736969310235322693111382642806055469783795158218669523556469629857772111748476311140805729854155640988512214981101185408973442299504420627411802256111906498926623611519588640981099824632849352512661797444177394036727454076956867665909733312815410400245950628520100849737354935494728087608671135469225503902327626901319718541268698932590021282213642209078029474443633559439248659973225630198050903486430332678815573330423530881494061211102027294046030584065140853878036268575370262625270353679808287605065237336244620460336888091510991244977653118413976826241228000168771129199703522155580764062522525231045207774204596183086471835166844558696926162042743486413881424854363583835240642277047693053137263103373491743583313486781995743088755745484080323359623565999572923602401940453324422473260892515826232335837799693161049646772630840870307718665722973349444467940460764558180365218036785459120988349623601902155999272355666554508430548853261879989596779299485670925020040266930120084936180723284052661490166848373574420861976420043378914466564169264372761366260900324673756868826328877591204949255007857658254904999521973073074005147992463740837302135829954068561424729773746602124830758846372598735163233993686659716278480206324118223401613024941580290212039098214903271733788336587299980326835242498542208329912916756173183542669582914494241052375471167727659349308193077336711568925475090480520765497593755999659492684337307791397394060342535780804305288234563928435906951230582803990456561307753210115803286980589605988914144800776653917913972883079369217417296008229862949281343734005486511966018680902777908423071773995358222280465868703855626489976297407025646654510225258003876699815408725327409042743494375137516411593437216371587433053378594221138683230327465073952878663221720266332815063136960615891059523634288262649042759537217957333615326773605012469943257680959150601635277199115947976777420571150390964113075193252877981100499599807964153295824024837757799173199071871613563358169239711359917806531226694683414470923201090865682477053697808104931931213715934625060779586316887790508492489075741259376750488520386948628031419878555807164652267751650400000913287638942980829337656040653507454736602904763650097481633398874601971717823299295436114281893612344908806000774630818646402843703004701019079481623567310631564841463703828015495718285423388435309575617320514710567206445825293102966331372493565190104924977003141076975859546607235423520704577089044101164289601760028993695824110625077025010850005839415681801040458955918464791426459067030474309218719634687367790176182767748222057699534062160708111158247050418036488392959499907279528580614588638073291428729176251411367476270557792963357082853089194822081007186309369088605906732184197409265227270337246565670571220771067359359820435810226128854385970794332976987250212599353969001470022494012009726995685287200411862532976447079566924095300565144510873638721310235560703786943873824563336128818306817088330941840249446864121372789232441293778810690171409929659767798117675673760362141017068455607502799744627947913668148523126253093417608767852028281026440717740275832967616297723676347066463240843908969432507774369960742484172682302434289951015765673834203851918343787408081489076626331438286015792832717813195044355798810174625516674253189421256889934122680566814958027916484535675079523577569223693893699149223510868227008092721185632121527892594447049342968337798953070446362536003373415322714786006174228442965383705317415497375334954034672359314132513649675381899206594326600353641050570505034013268028633206922295131527547738980645369123602319818725064161554420763106509761484765283302241632899668103176132184145341971583782430107179237641401614993513690297407257388248274171243073414474164528421483632424926558254692576903365253814498118451546630529175313720864197296935058761346130027468908525749798646076100874050841518370830632671708576936808717935494627611252280142832046909269571412888814720814984809115929117469109740120951150281087460483865669815738931268003128178497155617019749952400651485190694736517697958496366687090779740767872020085513356997214175494204751565343460712121334662840244704266424993102711456020329577046101745757885593140326664501626481665689616129948331671766864244962718518017583013203277795475136499535650518062276206233444714432425245354149350190291727905006719601825004758675276104581863299660911895964430043114792685761467710458370227815749731895176856299304164850994221603841003695627039791788942585922967884377596458046327854597076242077665196202534711716704798170523059597362233065816627263363456854627829962456549444441545137927854441746056003505077881293868164713963485041815002974550208416949859852536186264457994338964803572831887549843002659925881811680199158782383801401443795945154735249848707126796785884047893994943045542661455729463556081822688567301017662833980252379403213267483562753837789772603906214723422328482017286906973289991068704913692230098042509057878123426798337749831847402626840505053698815435712720627670746551308245708748529572600493410704999960450961694645943174143369290800702008818217406939947407160018442910477982851765491336248546172537013498453195334492799424549753937662642157834452529890078270756857168636480844107544965040290332831214951150351133547916051531638279589026123976962251932918218316030431923258692719559755303528670072411493927858985298021325175768427093396527156723652076028613363029998599918854209324372803813094309666724595231318744593852333017449129984488541684594267715471204294378289388666712989166885825800056560936775877409106807148236241690326011813775932972139136499558744520305436892697203235075285331809425903253536958885426907444259620851519826883284928301174209096811166009043166771000454358768607951474970062268017848159792136284452387449936984841364791786968569326139987503157236919747079375121011650970202390317961364238483180144110470459399827029144634405067423229039187745163293442738924634359788783475209207128985564630656139109405075823254665937216746491163591359466045050676244464922906560354877176038396769423803797486701805217077729378845149553971442225141813515998973277635182448920657648018946746834490988455849361052633282786920651848252857623996590177048615855921418455488396853355891516104339937918411895622263904792120137678791853432169545813348283513327568375732795570698451069925941875600204014678649824537058360472748721591878410634139872750371814703446517285258548994335939411166264395896846909303438082796405657355855600147572353849190685394661571278714816026830891891393736031985766266850839554230204463539961657681264492347587655840421500703787326142246453980445785858174547931007872420292008421243729793577588606364580562391341346020085657231411863111677942544250581009111470305126778855987476625081776589849489238972385942537752547016605851744063362923791359922847994006756352170290884838233389715794228358588762315677212707384211492686111572689021310776577891838923499115876532446570683238725902601544725016854688197346122970599561280506888632736131945447816168095970141218873342108487118946255054578966524596182070676820103268642106570979645687741557052630707811070229218365961927034214643817532709639372667562771260093366336088583772456145443342702718746222168101835683213865464714573931356852310863378329461643668279149202736972946683337278901700523472037537783738535158456630723976460600892748186229508801900551354314606374518140046053396536033408059082116664989658354497085323404282911402490503883277412410781232506990960797979548176268473135194327911874502442069073998854958551301833164181201146547621683452134519056888049043654753047907558502587893880292405994638435970376622119861258777567639127563487867824125184542720942794906245909006805908672719533434814642009902522269650759340541163685588044941888472728676072764926895776084510037816832001871195584956666292543018046484933234848328237271743244571474837525881163501472665943404566339100434451883449755048311408288651007176702940006698672306442763291209484222796710616640200525359717279715268612359308028619955519913819092380231629315243639780341731959720013311214408719027901031907232407707060719135733215050836063554943957131452945953290885754187257693021932628866378138400483782004313948054032799912326356056992607554282834921404041063411428332069726864939978358974077877487945345685730965639808876098179836436221220976102758279089141079450661479570480649607684458314947612405304896584246212586330244366870784554224584512785350668595236980784665063530003956331420051977144001059448153665794728652968319111411671553611744514881322569098848830463418406567255885052035263244627131543936640566827551713728712527248946720504428072586511807031113574556541955225763677888276702028005643740429157364385953047141696573884437887736427109897219703468931359661310821142482486638406488667948032073106793638551816533463468272054600600568327293321863421532346103369440749888259094235235176042945164347394474199611036156624770184000601271619249521903333060346437449190901550895477201822194935275446175436301283475468310012038308388503162920164041207677763364128292438314566343258614638711469111515417831238795585918007516431308645864339240910420359735511643847592649701231933613293409686375018019656368924362801598579952811504460507279418668183314216821366359612700779729398027435214277382189453029464217786386603829924217819483999204114996707122418921692522092371228252026193409667495959814157331875068860982849351609924849049019039331166671026300654228233478599481004765735112699883074255290536017709699945726239782926427330939217074359484743104384427123301506262148536040465767075811237321307188673547527382893618579758195323431936377866707953890291046642279535041340522751114729383417588220171271181390273043001478379291938441893621897606737779563336140175839639795270185843789487385310349334005796173322805887172919976025691688824747471603213695969985541798291949107534298856499152865703606317438155372616787930268738808836609684656642580865766425956599468567678920523028300331876887888761232797457385783625211078310284805301756166753748782922132180235452347508947645830263859508622147807466896592035847760332611264513809218578711515275574824755486209224188331766558438383055486700782298506677425254458837047167217287284970905074640021199048997380394337563648847953259745342133068520926651269992278193833118949800308463049947104163445193642091767359774739435790870320806681740933391505663525378902264117169246358532758266115376699701379909215398150876935179171889476731686658771037788093839594356047168907474756602029743007952108438953535135711207693896948578315892644504832657822153620402227178264552734901644066640075430115747606727572288173491117354901674760599366607815793391143454843979625256159699897731751427893367723046197387366974072517958363437141385478670887965703011292747141388663454777044950715459336779119149495198737598716384521706181616575704675302272126276229799169509227369437472709635535133113794345612624160983542566844511563869630889827538255067916995448688144340578164940189254125675396270495341920194036459499422570357716216121782623545659959002857591413296280271335658243171135241686672882501295394430724264069761913332092355324181248249470938633094712533569784445565944114218572941781852890298262204516928033753860583651151622092105827301088148136737012653417839430930317631911165717995147974698991456620356834729093979617549933421191447550863266364259916196909922795194315962759140945538190140905011674272575863272589745965404384596966915306852928186546644040181966638210305056526373879374674077297513110705308005698485620235381503379986668712165001553546658343697521029894160507784326227970837408193839712473517380492693486851405457204097545985191185181995717263300004528808427268835733797427774011562647262246385598585684406839379371412632104199984733011151874515261000518300140941695690515414126592303315834741156727306698543207769726868292225037055540632084725026807796420761592131048779566091311361155063375927980817749128085508491075704642074598722109987540121035711440296834978726757880070537736891651572652688396451152000078622814186250826871439311698104297518376229115589793836571596961569709485116016220773994079189943564543764465237939282928990007451111947215365264232968971728221660056068655243599948188695384911281686838595080543638496926135299735287728125380874418661752111586651631040174089999901752208358768032136885540140677149418593295473486933938724189866211085291169841587089023751718112313985916068756313124137412936477316484846072577794437099037620948715933946554562447561750713327407063419256517555675820105298824373102134330195774123168037289542289082242363483355933645721397242606013652614922325099480778956620625572485785560911813194519379524642591199429492565564380840434511566956767625990306084418376767744078078282530151451527634708616382616544186241257262817953358507912768351141025346404010765620779534755236938439132592088247933341660795909192997264933042361065814050756807472284173907464501036916187418384990598614680287972749964633561461460417405514697821928192204254861770207659713940189006923085274284118896952494396269208686170352846367162251438459255591386075850294806619686532042271088004977053910360959716624961927216911708584532947286206606849592778586587935123433456394815628212738253252707327507854249854212640083977216069956116238144156209358679116563103991064512853128725996073092472775265356202143892598064028239433885791073658516425703804078224537902825348792302245809163185756328756859677556574171900324536582435854114528392080587033244863634134526721450595937955396293631264952447125982451683873824284864533002437872562219099123604038127552864734694377588705936651408616265487039411920066523720688056764378115557923822132700436904810087113838917908013298480062634439910697771598695110159165993037184688114049902859975398241505418494814907756414398093213598831023239999508046644822516208722305270878233052877034420944407021739775918820881219071383371497331529624548147050359709536006954850045333753204136755146475407700801435177374413295535180104687918977909738620831933694393370900619612321782660446147640054813966189801474241053805583315847594635367100463474175762273479380324570792812503381390651470475786596636872141246715185439890867953272732551630021108737765751984896707698100535923270990678599715870848690712588614946167136372624637811697832036615808491032625473379372599953265584280351448684907170063863872585173131486365055606653169022936331867793773420411339477050717876460187506884037953255827877645445474687428341080142585622368068354964824976485594313422284551345190962724008582477468642756646501058785456832391679210914247289554834141230239289443521669091550109153276199540604417507571239749459650287728962336541316434667935401901588521075204143253048840230870221390102847552106312864655380815261541274759356344173013327421322173875506450819879608854350455053933715293582758531780799608897382547381318996700679436126144546921930391128339297133138020935193194582871931762627795848849067142705886571473101725462894755138863408619250138413250928839236440408601317872605953207786937498909581848576108248317533489149805047999810070619158963073908372249126004714851785172795124797295797743134377755624898157954321267842657991705218460617546677223112110815958593524847347858844150042792871611659510188298763083536704106905806097434757439347845162080593523108086875880838652773952922624668027160753407267412615744224719815312204689467238891381681265828120961817619729279564997250114877845251461970487723395357008160453305053065919456637531757447182040709241829704529079386815094030891794023447633591522557431886571173964828372763305860084427626711925995339455313007842573037271832196699694087750878754217647071037021172954976532434723734663769046503565352169408060181971213521498696576335605434963360961295078449109524576261885472819709008405088254365005805499528887835274521474232598269238742731665378684309709363130276228587909783681958070762117039515771251809827165198046301326616350986411102166099435647295863755838584602637595945308354276350240638239836417897411239359386044313549878572679306093695927744462561771774633179905444156935257731247670150039483837887219835346557699910223527956850359916490228052834101529995081888825335378105374325689558549073345045245312590522841182916750692224328142719795839735386228602633015507990680333746987778975275351195149655393512467303382754343327116655208159682025044729304674458450947989042060643896991734673200525222493262071143435582712171521834528293989045158924875798202081478769941727323485527989024300716889787323504416470464370702926178651536001607680141529767130147290390782995268169019230886157344113665779010126099328040087074060579917632514214089475542980309599410485977491855920500643747010028217015334725954684831086899484624292484556382273336674415649417289011315325520179056583462574364510816523212834803529254550539455181995038343907715140399356440700960558196028876748589712363621196233471398494017282961662552370560252642220155720641041703333076378564339903632374651567694909809873705643688781328226629000074245701965953070632633582517453602766075528466640355659977664213420955515832913991816725170515214205969315705248097143880722887260389422185219969299539098034818898620921284501750732982915545841384612754250367868310644568223865189840244310701236619521698028193659502810261274461920944163342776608450964091421159812724076741766677999320352974461397901261432605057489578018165595922324983533198416915751627795675978909568690251178862254753817110195905877309351060646226182101726048434598858774932987799577808625595487943701172425796096412085461788004135831091336676141832364392662722341680194247620064733799694291526695179822528041281532744968996717597532849833254659218839212427729017276971537218706801603938447110008930377135397455987048237844582626697033504401173691809719962898457601788481921054325666193763166283900970111706077867176169231401183399563267060352152177997015885298719744255196638516821483854578225797260546431343855471601044457072150915359073746771451985309716466299588383123429003372829061936232458265651277452560412792209411491475630866392042217595672166410302265004424434635250189032303371054293583926900297529503230565521496925930897158709587747623716202745099256473374718915578927317007591590259415966181054365409178135910537309710043806714727519340541239001953824185714010346158147541670599963507687397159495889072880731286115303242864850619948015537663622210708845714051893056506594748884076675571052760278602275700649782626696783971467971585276392041332221295549367955099845258482247353378827445577208809844473567643901428887910636603572423621991629353985143551889546795850680448525369637333500261370288151695153428695333904152112034874749010034215530982589493274618848962199591442909072024377513317442834245457459061486704782915432853995768567151070553181821851441620534626670711407203909242435908537052576474282719517077618988672277169825274631894079066753506272346707906193763310917407182646250938662657279894293059284791103928522713008956967868874523245168202202118983432456341711031441945436183401720466090457480907898260252241324909193082895083132169806929354094096415328875537989042768459047491157731710339900268487814500804779010804787573487743499842797804114465047326951554032019143290265224170130953182450420408049211621987923889539596070739800202385299235700461398766647453811596440301868028402553416278985534083444753101535122685769702961730828926667820385696510200014209536603090302209083702617772716175209863845377100924874256119016898497583082838634394859919590123187937615868529876213335561593517924016528786032413848947595428270265902774321007863618982355020334800384857240987512128174145209175039393997179596068053657095839004695983250025350463523497952461215555468132008472470988512729657658335194237811030525107539467408170619419644335242587822709361565090777137400810777234278888811724649326943435307566118633164364482281514881724307110302591365819345022444740452993410565446048303811196503980423039960794288507264043934508776369711743503638810905002523554948713909736060134451056733205272792796456581754546548041484450852839034231654990800379908569618472166837625509598181385639679810040577704846644926907990823718845630821440080369807788864537487251369364596904753840711204442132622202624507917158925023151193930628994831711208354496500219186172108699402772855571137740847434401137508464089591797442946152564725970992347312393359030537352372036594012713310292848061629769641199577101819918883792803048456489517797107160063231370307300610854396143529285894569402604535401332886690396831334881093019258737514614765452509904792797427509312824472744117580173609683558103811822491402392035892000810648019464635285464354589383014275116702274875431674778845194607696021623870906201230972210664017251827808349130011223544923573038383655372282168171297624556604526164659185241482380863251880216261973290581982635482159000687733080016326249444854522727616775598170945919803438910634660000931023296716801946958160835614071774670161542252303288107506959582763129573882784335000450739427348516002547012778529743133934112769984317888096706081197435191045182326638817658500839245256551770656660211745880421578967697159151929277048334555929986632559162944779834933645937282249449985955830929163935544376977080305759134526306925975878224699693430728566478079435591778970379984998860941578302003163127136658327693222621206627412594099662667262614240069610665441459105399318319916502884930963817039358471594660046882658520724084434261129981059943734985267172806393897171499849376357947254690095786905795561151344370677689383355261832449305422829690469715051321190181296260586534566967107081687706277806845875349472752559991873427210060202669060459441892026497372137844108824370597611846927016122220028203543198445725632470395033301242634615367352084551706565882195980303083477315083393908713591734611393305404343895388562842478926448452347081387833886067254369681275359123988000771558399118662017448765959271940942187575694434502881496063963572449825725004925702101587024027390817931354719081090287472581925477309161228419425845325115767510676755629249610386460619539395190626977761768078176601536553956296476618574095711735073061112169276086131510907262480848780494533252351766784438603873238368566579111121203511768209755563656029424859140833737804543368287055786956779370270109114172563500822637932680838852168042202210839358988031724953275179215276122879976670082290262809037889361603727275064429325983734880694722966911153631797479908928353107460319023209341835870564321372940985470322140079200648222135029965802426000968413667124974529887070394363773793750911316850094907977286762724147909308243872585918590096017026191604328031027023979650014754547902053056914003699548771531506289067700848551871889778999625221517022824772993587658082456468697975405298701680486602567939884312292399240940359611700105702217903870277058449265446868898524184971251153340373028180265821556061168940919086804575073772367262974300647683021035950801443536943283117192444599198431375997414084327875165308223683590166787948236117949307752521959106228968590975313413990430821789819956675825808808489304952687961109032194436825949439842366081301613475105186581222796788701285786846450831503571819740304579036833981507155215539798994903851555707399478456537922964680125266349987402123826774000612606495266701126498868658779812284892786029429163017050060962403004781886638716671925453123748536908667321320822644947863241450967953555981580985566050042985091639063754872585385378150565490864142545841361019960922152706574983460474898023173069623691749486561438620924565384008887293052585379005253239504594314896948929357793147822093044516608042767340204627018712097095351405206205944020576005699590141583483454840894029298621693543989153043121255325724543943084595251047306820224303904395036952232769439964163692533905867432798854705671206739887520604290298294653919730555463617587757553162564848392327195389413097736539690075439118672428648587039406420791630222974844472660878841833350307015754131121534970250977375933530724429571588967365154380629327115508456255825081407586846051121312956809934129081278397458284498105515088790190118094940642342003040900153145658372469678631377529339544833708362978823672744982500843215473440296440243051119081294969661915231720796656622333471775105072253197688357335452744352355015670733640777984764668760609238833940380850129198234778182361921570808503460934041225166512805286555327266543119833794503301058520205366573528963074657503548996377354941032763103738056863175920132020025566616455632460132184842449477622585903750088748367002547352511067153483880737972541914859576070566703744430422745593687112284914154295906599133774762385187374947924277712463538247074461305925106902440574976004292431818392321382085296811309266601438029005586341530260418217097543613485636000139932134649719475101077898286135092208644253222779870719938940547375028111026219937826052344021575645798793025812498747885186798729503234562389230598717431617573590096968995132702474263490794052075588174087495413606742151773440103327904373306630604346338017838341842029233678815765407902193580137316333688484413135298558235672092547159527815328164785681143567266671626228426313438505091295218122096354726706788178361989980278141456305528158502186396809831411216856123221301469532051476173842467395512981561099163056749174920053979072416979329364542824870908258827859452397710638827260862155841080444658010461833149492493343664495840604717921160654694966047057928841320521423931329034322427256753504365753897533815150978107323281604308599873609686626846166283347615141983884522974875684822886556681940347790180463559921190798309171430861643100478732825894505183715666937267275760456602428855713505838276422581375120034203050077637725398501085683842408607380209787416363227137059611234154538023327915551996619957773714468290795509772226579622194622249993653378441024892750796191142518874265516907223279576992198562221237878093913726606462335829592682743550230416290864434216613227157972639924747406262915665525717872627843558856327014650575492177433258433994294723756328423923381400615613682610432590979673701347398777852107476631690672445658869669078251137593099130445369817690742082816855281994262812244774888254786950323765140154783889001809837350070245619008855988023063744513911307500715457516863237138908609936952635498773695369041046969863018190439637823510392897750854440164593248088802354761143596203765743343542682964058833170697819136149566592873827796086494087178696035736001853903265424350285788551726176587787211899419039288546082297305943255380987948898857415387590803552903962149281515793303675752219665829300359561317626389415621923156618277705977495261872235915476387844648239701453894816413063863915655444920573922636760773189798579266530449614785955836245505162419384167174979495347611905059311158986760300180738223617252634166628359261888932744176782294150683257199662021613846606163598626747076872169923270847710747412983504728709226789250743989312931820221472290319809135602616284977532239611230136026482589564907318984038517678514522798615135685439694406831692735972452771824737796783479929885448289012209059903662307653483380657168260453952703364810562030090117917756817339148537442532230239821954418078038934490673171548757196169357448067117108818287406078489413626251258451653562110157042223713320712954619586540534929152594060981161676955412045628863150972986144815381517646076962336593626040249661207984603067557247071405496930713539924916339385987899024659724442374637266898493752792545343563706749145828536281478427517217749175373241701612769814928440165363086199264792804629422620583940241017935947587361832538169104602759270973075952442295016963141197431507052612892991027983003331732787892563333879000910626231558272322652075683893729717612155411028191545449937801339389087963801799255527990847300444946689969668456047324239236475323839757731123626636392911532376683407940553697046790467323889376262969060213953789995089691203052980537060202114043368620395066427731664862654290342185247250897244960616576010546367109831382476775526140342567376123065485778578927268997716280260567469595458493510377209694800632781699616225406725530921195445807995825411432104392887927866094474364049982042910344828875015222557916531523401954962629422765018978061325458394370668609519550902313507980212944992490840765603563898720642167003053317745489824381223939718460079000692995787203356267738588256227723867212528956747249625976971296262443203247825170630614837752306095388203578460524141064497144320497703788281912547542631697250240456216052495325839314193307690374242154881560525510150984996371201117573237244793637613442939101204744009784277596134338919263551459285781309129624032596772621889634128001725613250092476384852738943429217277584521601425968939805215741374439620947705308601380399582326197463663377975058400796562643704816581343645997262849430114332349633617351391930702731092474509578219780849829357868745893584238174409462750808303823119926827874696446315252985505969174037403543418388789495481284151621812323210310567933069091885811649286998520618099203319169721504432319543060720529069868668139311318240183050514099750980931781461434559467064576068294110509123990141327829784391031394833467620106130785979162747704169729871809915853564637029216408954431055901068020373697541179917391813876403107700384423350174527918403914168790382096905142314595214187423647165848453440272463424756148954935951226388860093357299459445423868078740606592075430152048623296076168164286834367641294648074536179380511340857952849119438029316308257905835057381721404607109821251024397741185947088487937595362569056633012462409254618263764339137713883453548410873421542481016483009722324495842158512598874442631732001014120824250409663460430681787494089803883201426693860929767553525422674807520411067835997420451705637928103232145487960404115559378380799548327980048867110368775877712530522251869117564257924233418484993898179486327342968925175024341168750675558134267409505372729168937539685509396550362701193543929213160889539204386756180609138742617255578327443640923021458887865619479094926002413611642784489936637826885893981554230998623154662358663996503327708266914862589610228593017174295085715780811114595113472206908716608219542618284394294370591654459857594335995205206381606732256125759696852724430892899023500503681963694045010897787226227621826006099017081772783161131321342900074203653151185122539625594217229895048524770988251113452462868729482660135550808430222964294793183583450471543039593322900033832523898635043029988831237353574267501248625502859631250356584463840615108668152668258669288185805428164766815398349213549266717547209556206640381100058707484788732739533330810605574802866912581084626187935429493961999612286825122916520160811793549888882812933438715542371142503077313300709482569254450253775057380857500671064432485493662255433716643516230834225189632813298992611121142114081991449074691804954706160788291176491487603000872382198055288249206644917293387830265207598351129296453608189417414816379324780962702859656082389450455150500304405817669681099704423746568618450233385835627411747821192732564196343982508258501918143534262783975095035042868188581699059932481949367243981020790667758042765085382280228424166217247843963868420790135096859868477959850210753744815018545647287745893467286568555854890528840446572568665407912208579464445477699622624688039255350709203840914039198227307553362694185223302343745032570327805967062508327303537760907918341350992645580772423112831128601827953153840851524983219363750379287983172566518681439640436682005379736092507884435900006245545334448902058997535547021329470824639233353531237482081083761737243715235169998048863322551949703842051268815757553123287991691279413375216706551088773589825230045536302319543931096806293528369504819033116093053267457276580555826716181229821928690876919227610148576462410164270364061330797441153675104266830224149890475079847892521806717140493277815624873313928129322881368035158897321908719535111381250958395980924417735697898700405100151669269811159613925413442121676174059817206618001206707070950879115513122507788713045655545896188743039563349166610469334059873847060597300438167512869314502872450289303927596297655017897430896730793268269276419194754511468842903553136400508931185054754331071489235068652759295282143579259375108822492268312191236692250893140115382900349785881181890759776843894119421713204769171159635482852601224427863644786908013591447938505617385629539242641474928932465594589481949277174009086296538814878569261111333628467646594577931454946527231033099583768225025605799161712796871117110072678256564783181621368874228311786072582746910504126432542333891839132237107502771203553739151328343143085747104597115537453697077395534185222779696565069328122331193246403661318188783035373998327822123267494651078376080229736454116647034814474336340285838026732777537060224176255133460255832543523770493264599802778005210975845728154928765443651559331255009573910225286417436158838545659756701691811493715003829137796004054455439162008983765461242003043789355131252736312931661017398574731186137778058387827980282337731019626110357392473191608010666342317235353733429988151649622036018662044187058115288736414948950955689171851965499812043156265368506982402460211033726987978169703821188478808245533922693575920665757852588420788518952859107417832548466392514211446333547077803677053837514046366678537615053358467508599020601629917933393493715258458196364122456606933588626264594515928269402235153650236914811241147244984413764561679637821662388054924413403395100505520572162232488941039971231796364440784700994064928260818022041836776353820394960140855412510455297987530827701803139415984719318041156314588233642010201289469243982450924171746507729640420057928456392883080518628640601383569557523747922652464943079935684440441811507270691957393409980962461109754999055157532841273716300317235376054126958636573958858645972985014076956351585692712224104938922122465085098163335309963342332352066106607274968731223507336924450310125315327915569420235921937108866611768420420678646612566635357512264408445543625295411827857120976605953222853819922212294820021858326784825346503717185179965425099572198585636082843955660270903810045161128365290818627928697095559249569962936876325831005497612455777226900133470164733424560111044643096039542590914378345946186127866527151142194954491785801829111790577703754836872784229456213996650752521484230178428165899633363546473068704965976342139147055289742464843484029152836998833641959883265354816295095874468486266494102829917988783200526424055588792261821630302185891663250102132235578635821410003716343389981238794456193098369932153917119830988567378539049039835403073881159982700151488297304471793254022373956042443132397737333010678778478216564567435298595621838661125272946579984410346577894613890439063550921811632330010415569732401345082787691758226833915598592214042439732807456776860267753564735643757323967391462709064310693274984488403138043199632965130428503043036913326701075322016541502907134217645037335010706543617353760653220024171810294888633491603381256366773495538816390048782361622797058791021737156102574992623365709046740800662961131441068637135015011927863419018776091416213135895801329128696623431178419673985279652044363681432786699962124780172234714983431616569335149388509249609684798405676730196767794507144057328619777220710935764193024612819097101774497404859622895330142179692424617551600209624199718951757282258680191070276407505650566785885034640824972563280906590009774775907162009198458175654143860803314202338457245559051309220657223069193082522588333540987388715124835035404869021541533167778524585647831692112987889467962509082787635913389862693328905888637828051943191636123568591054966175189493371516071718728226257847342235273758507023495209408635893857946002682456987402578992039898426021377689573370108263190531974363065803467664453494616478916567906194320902909178381537194376834092732771316003300684146457876135157233679169620613189121174249552650432483459288428599443796585792620888826386678122190513241330425559766554822036817375962966844096004808578169446314745042101475799676101543522606487658876595273557884922723340897970415491472062333803637131936716016074510350351608033530433544155975609322779042439684896097489763776099011905412204900889021263570867238259906638963945265601888742875953808682078295122239675992600887892437886222091618743236790663335296704881614265143864371035989750356304574047225676052060997809520443581551106069002112527309019358044952091089095303613703443695892758241850861944496601741309305574290264012566762561558464599906346312521833138557618989241101949641372252511699483484088280616131169427903511485577311120241362583482436851995701375287953726669650768027921447929954154426831347428178889350052446556858084186572736571020659931320253922301738858599609305094275340176766359826933531644963131834611050653353565332116498806729324539060175944251092478079820165610117375937180526214764044882195831037788623879696959871836996641890164881437002774584359381741819317011262114330337400831232780182588844168108966647843712922161084386951928250073168224158173350143541442312071343241250855045620105117294860717753652987169144678057135164571301033147282619692228979102408575215129605490422479766143043524144132637133342093871439365377335793158017641226905704913140700187258711461279213635251824278425956618076281155755251633914751468282303318660147859571337351099966923015618530940994742853968432535084391406475972581982201899501583205229592140909110331995077666204318878260696332961429515936232689458089731125387288541799749673241123906384875635568458859217254680576542929122970927968876098364331005581875410995011482202970671261212945306112575944083859992092492462275457617395928301702648339790097100018696020568922065566755325478934295464398929181223357937522534051877617693014120210271805830696830494125515417412707885527417872369943410077942611077578273400096725795056112416309162788494004875482376263223674561810262546505392029854780371242321245573165682604976152360819567231480981664217168539109158731461600023913106395364386593535895788018398802508912856204229139318454515721842704662726592687106476917541744241431842668713921415042706007326930921269865907338439664402643721260482473952123330600606647694560018608022217111187741395665716828273876587157748721043540655146265660082103736815758284266241350620265375106689440421967174106346688568592792536750294362368408936035380394847083341920293509557942432706338573094166788125266323417074950523366451349985428816035544608788986661066922135878357910513225788027408726173281616354102323881956567700527657249673164580586908207313468142948878515727267808030418429521322372587000591761762411582659549233755999205629926212625954365725871091027052057011721863791000644479801869765517895757269504715613416951529575044027210701805610480530812095578490114783429656039323313025717233037182801967500672402658444843058443528284301505479252329133118836261127917887355586732026366633065582676794395518946631976041748616930219731886368595545880072403569735956739447911662773940780381287208123863692346266304503849805203780468613027456334554579754336078846911091175942402202094081747277684569325744340934748185302547351460859899353221161005894607934166322751185780017811889214722462147904620370638742584961780680862787998864045160115995963377887898622972547958022681083257130260831320061204258620315712308729311385786626375459618987520428165839737243234113935545026186047545529984565885949291228718793545850635318921118593894127661628282094946192597224367769570462735801635040376280124844365574029400285688762049904312845110666024651940774271601435703095298435975813024427059527403833570028925091902614086551722782835758202060731986333796617083442292512247687871921885191718677106565437449636600996591461784710970504892396448219773116125684561516262351496421510821543551733217367012202549685150470138598365217978864584594218001200142573464616707765746791436991443402764874729552303371751337201191567954108992565215862462218847115312292550978594193245597795289534828332962056904558892793309122518866705089723385099370963675714833263500655870070951451231486165494147023372700617726511451723084621454242617104971872181313834325944592773086196610473416801069704380469587500964621579153534211035484257648721373595233630577548677261662172874401636296855026220692871355013271930890731989393228156304999538876249337569325310830788685978608586115414367176988728333437725026226884493743967146082993592355934554066353838582084972928269728182071439017845443355072097463618856863033110315101520641047813790188037341143785910823702028581912111049963730912578982783977418816316772148958835518686507195763080340724201972931644095390473217025691708852854741729090579534200089650676097587390857245507239170227023933122304633509101170581559421592621013127065406798672619766050523641294716446085271725233563585452756528706597595830304512409761589004724107396899618787768577082934222860712805683634119018087693160006322477234069347739725626274703823214426569120397222664689947315938278700442387116631507815381253679520998738187972845036440769364754935044850101888923593673243405496993174165402627639564114361317005980051792516816219617008146959621338337012070317503101322106248274114655459813068202387211074598683441941034406243040375783859228385827304399768404764498067252557718612498101636640332335837550095292707438351349769552016120535406316950159680124200431938589533629185166779221816768968176883382949638338030017585687806536541683491519189766771031783311926899582490542930444693159469947480872005935181515505126336742174431358346776980920980823937781625005331177553266839849545571229376814595841877823557812406870874223115186534866760625147675623954091866436033877631053311190790144309276152943419586804803496546553772567098889876667426960385671153712504070754529826970279931584041710428336080699388415662900770537662109024229782034764520762682439049965370982899358367173634734496886053575424864015112940541452627581015497401409276343122411219378699245709857412365416045358566198925531497198661411164182033547215235487810217728992935781796852779548637370537949935645994774353291831731332654113980873153491524976649664684479241260664698213278664477745625479948851698253505089720763183996913751005623692355572724235326709815238679048255261632938792017517962485582614054718446057660683325585346728375065684608520916056364034603415672155221242463868634899141800403980324512159627223074121292491759642406082929919827891018856548462076924631540134088881564093913196486171849475857313667740047675148923843625225892857290129927174637217856750545309257991539540692449411108231141376875445079621914507474940732762613399233818925898189918023948268992510616669875333531882507683838788320536122302493430071048388417317469958295317771136358754437756682561095470512692798600834644337754745312934001393098884491890863566862741695712016857041382602482624584666133911985663534911910048276645587901669956882790917881451116300954890480358096657201138362480059195850409176484248953361078555469214807145993594619723379521188995720689366691826933301645139641701167082176821083820644241367010830402889728815488901923574724235469520340339900840510193123313668789956362166445110206843961991519742281669536429320320219831872597516985825034814662748116958989588968921718550012992274890732943401870178962104126035421538654217835482703312644012528399006541883692426848457897079335825653694838748326794475551041697328245780136647141816757893336467361327250238551797350493405471451840651316534827604233734016024072645704195784162639954435472373834942506660297756848458594753258523555136255636874892526606142262118606925462353083969192404879115983409115587577325653647493953349642125571889207057908962625291957977354726864596291044581391812950841786036521682251390411197218848753483038532044790164329463977940729049249175713789765654505260147596717400525387888256171664662729240523698169827578880471566138528601064356327000863686782081518406955657258040902134469243186893697306904905755407140675449378198917041774843043738979134197335849053159221540369041716061692639903385433506922459624780161444903120672745356469064831222069281836976992539719627332475937847399173970324877816689218995788248950832686713708708598368624816892083466676512207380105409809780048802593162318286655948101379450585781603256370788647088553299752880967743694814099052364247057135260724842957506200253322858248352311454186745022276435529407515141087215825272871992775136725010428847083443665436669841095560809269367315783975562646402537347629350312093135141330337658000274140306335188960241954153309455143140205300949398219345994215707958712888806474220478518796398986129389240112533421962197136108907860298158828712010475467375451165094478106889454651809447728891704410506305004321963000649548867922539975292883263324185769049326141849596018409402517901331871929224193634767850853980109600160725533636473176185598091229379134764609456756389986039953431271908236004193601146576001889385720688761327236465316403477085728098511367680750173948983367499332600622706670149168707531986753523424468483532504979122475455276629244112905441295014498097337930312538552300793704071035095153129683666250629946608792217755590070605507630460471246180083428010486640257047008264834783837988678566667465563827446183449437990415423884224945145667785128741030977901131915740109449201469631942521518634614851463119537476835583685209228177846548236854186121086345756783891292378436730251033489359551089150892470124771462282834259606029433615668539418701256099675934972112259696552327360012591280977422027944317396609203860475118586105744392788955945074411534854814219351562940906916680968533679124157408130012801846592882729401601058201449479341180096698459614689342223874476459654772830626122043181617417825003824122867903670742440334830540400539097827374546515281238983433146319351596259972342095253217864270573353273425274361032530576200150709395161280276686894205711359370006894084268696848042617325467583795127646354109444593262430840591428987970363705411957383770300243848759085969707588688767477361803460353238384358356660445475517014480638808727709516810803238951085305866472106584995045349354807037403772047263667626375615186198786210273370550801861909491751039106132236024260074355980533552289490017886044330824329486849004288000570493544372554619983691293803133497915991967763376044294610188348937488328839178626768837000763983567870836649321685902204828038017709316711814532690249129254916022611011252298024250809004439731852420320346244618895522026693153014353238027091205317024306701659022984684397234705720505252935877337814082613113011781044975523010180329599252645924520262903554514018799175927012515832916855116457690363274327675488887394165847167268370502159135504619888558463856880274235936595877018435109656790273611795369218980341450674701746605308094642081064156023607322121133707559805935684952593121339035216840416701692524847952838194581428137125592096353812413989585873467707080433721685606972429503325014792472124429129505003970621203168318188353196030738557593078681239005708915344989557367206730587767582663554183264351422049427742997979994194019044804006963169058483893368330118785692695518961308148327868978755803041700873750638401171721116892048524093893689810549206609449796481856792111260006887000265013270942132638020267339456170993196958399719791971020309099152976314064407415420595422334686069308904593707384080356123221666773575403451077415512849771908298013799524290228719137437387981306807347968875009729414201896883781472519640778111748969897981786845405601796385248805348133699718268088335997775194921875453546415818503463773844495954891209822544061110299273444447313920511081920171113565399878311125613761559932032987590710543031317577072614606497679755008542611910877074377605650336058829398340538489428469231766725876425652014836158263349378161183591858050865110853026376195390694868255540280433468151347891068109051561947279517962560798492276779732923484148987952160712682883560627940413591664888409690412320681382815966809000900622234848510636659050244115417265483210852971839310447586673221735493185319520127338282052910188964843007073334156152729933921096429219770650503542959598093277138545966092913605553054240597307868322645496379399959441654174400330338203674234871282192831243178947535106927571307002641470424609709317180508216036430884780774086604689858509786161358835140962027658273775589547216101272971742618383780129086737299741682037421689598643566175420000939229159743511819850146761288821617717308836163986426521327114512787807774160633107991945732110332705724953042284918392810115535549697860912517316813541693764461736905782687846202390811999152532113588880234742065002204304499405832577641294604242153543701685750733787660180928248034243973826957603290221228670796933394985049559972185824713696139980388272673310598504002566525307666985765123075276140336078514574388325371716014621394943576574619316592913524650887736522046463168574845678793774099768633404836151300462343066147186074236117735914121260313459654667232675747951029412089107256640440008133108583299979368091594671202597981447044079587439503997955276110326157472730480705372214753970840198511278539239280908113436253171183090728229465482931652966887527265296670082750444573613519913719357326002670690874138609401507520743384563122980532409759669495329327720363392101897040108525781141603753926113328768278083489705137764138032871990654200429532308404828625639893885446486586656274951921065860321202385915383734222685954436687384584502102922601600752895507171940729197565976116418158906392212610837290207872405187521648606292809980355190475357121623016715273957188128828413366076740145082895168808433765834358467857562180032750342535093100661869336246195167344920858764715535450900801884459804020017840383509059738226123112570178452158078579935397010799098937167333209562253655838856204808706662156739195921384360509651206005220654912625236451780526701095243741779685177524764048978352641274600323735557368396781038369672439179206231414219582802763231680546556207804057064748313862946461385681474494763306387594692174002020459052387843328156183826855679171534193887426150716027010234743469821330654494981102020250166307646850523779775160687767295674053867487819074694526256268145007661087048196924766863099577182152002717913541957619288661269526178660986464265050523037272570048282356235125496166805811284842080569836227870890336718048282213215027693431378480073241472768809133135439220097635972564476512684471091059960105474855467799619307173120291071308791800100304378623975048274938353655174018281695235656994622827374735472950825340110119650107738829305405572970291977129177223656007918082881823550459424011384387332201875844233074528123559633047565781188948563814616120644303299264428974315968208315964207853962714379218762732595121552967799612564755895405825958194684774567194925222536454332876306766820044905281488206569044105429111816270702515680158536776155335211230853167030477175373514458781282973329252746774916105531142488056309376129128860734145031622735167852779845798129605194431021248220221565958738232519381654123132150484063044924074817084756112414494822505906052392512695975341221205960166798505024515112765865172835836615141458196966959339456599267635885282125331610074729166255408550775704527356279985027788423384913049939432942323874389222099633363058716178004478635786730779281394812095666629207092321887111335010009706434983834742707663017352807826108325806159158805845075928278356429546388313313835053609199109047085231800643423858060297390487330779507348158667449998199971507711613921367151597775329363293546281048286437778279225997206807402344769250162757484185828502906896569704721202383755334182505085701234426716043314697436802803106855122574851441522884902117544524300247202986088494325151959154360391216991325419436784486643720106143262042665800914552472667911600995619083091151031994549472684070383366331933612631233783515230336302887601522987896588174277885284754054915722664820822663909784330815233711960778848952651843433603255843536193202130523479758499578954446206090114089234849117660124798293292498507886566232990564365833119445351995665777937828331579702056632809862056589917983442644756898703984279876140707572463819308541587805752208093196810042189688444971489896058638026164834027717828488882208379234367126545402982399295901866408345625126791178397109245573286029329716531107770978242038518456288638433423133111572536281413129960139235471721469586402886173229121154343778460415872371879666812039892650293915018980438829787263795326359738737295794687358366395724624850045507288920916549770711409254373100477908620716425522536196273049528638564398727725699929489724220267342781037663386168058552248472502053889799476676226690893524874376995454973339330121713655821633470226627002356780895051027218189517002912687688605386099191796640550315040432997225545014136666264345226760184633320973455107851096863280495834166105228079202274997868225491838724988023824813822253262605598261424241670815362257627267353565744344321306762582451891790974243802664227259225886506561297734259140015224277726432807045588784001433065547274784396439255127071919151995348632853687321996889843127451187787979858053418789776944070353402691203740166231445309244096764813895781089537057928533202825255172805546121647140718713863940259498460361834793917115780938386903776213408725148683293095300407908906081353793745913632806526607241690265554957552657622363260133657511575808185344486687656084379767753093224515301565029436625764723746382953429062255843905011881453340375030913768616173037335559556373775897739095758247754161263137494734973296203097558863682532842813150567429331263733316791882624215139451040224474117093200383433628090390756429422419676594897366724591450946380723414296665793441918904605009042583582483227280383133157088622996264106361665068919333388716107770279410140002403946204912386653785271753418770752328409983682585155555469402694349632166214681209364007928208470857662142000517350140004106816080681012282402126021182111405886590609017208388729845950069104420228189806241336547639476444338865338391932020959022807837764994857897314887295378245294750465968031111123767083617294417126554390294119217905438174723485793469207193635974791093300264463129881990354178668981801670553360131893964724742717276388278368336624956927085967580486015135238366190153620298424652734236304699334634757601962538012371531730933300152713926255045525568774045020222526811271932179809233956421453168745419612191761435225646225615074158053463761687426069736773099709885008822858494088527025689478351486412536677335230355598593739348655752745161100639430577958566461357720594351550966175110848621012590061058822014255100800977162721001509053203722867908148786323541772483446940529604166051441225967444270192836152517180485584440055319257915110933605942313005763790471121590645505749388795589187707888998707510186724052835745236637533449861332085718660565617359041536054871212085739979550706514450713186969494507781714668226861325315153707943864916299673864570368859613647098038942763310264479194659597948221872614083924308567688919946837226226244111948793955182969815102356467847503887692335157150619948220053278695400166597797511983311471500987153475977582195078445460255256480277104924268577622458913094847735995418969326189468642976105970195599072889142483753470628525640630205938211524270935928677845037805602252193244034754757606578105257948389313050827209112404409119119311139289995346244123917006477353128602471024953568093850993622249614512151658080173983402644039513950992959694938107589702385542667862444060459100774886110562590033159859821331554906402566997783503285137964114485702488042305386443914319043657746162233879923174360027501239066551757411244344268105531480832029774922712529968256640806816745820729264759934065306867146034425129710023861186926654028616747109416417518190495928469733879558441323658809033626067417852026568289822123774830592829397862128125880236532642350369400752532511916732264949789526639244006069641438601155378175856076107555552281967925740413658989381952552308456143861398234800411746779828391894181123215572741561661796280326528710389130006601668864021100754890957101518412105815791998504279985817529607419489998790503280632137508585940791342441776996858626778146312267740921829671590839603047571619820620618383008119789916086082921097370937473714666623024735268432674815500515610108203663569520028708283017516197518923757943805457258510643196394935640634112743169781673404722738769164453674471890625712204824116087183154481501308121788033365318190788891265084184532139844634852736400202022058752096458574650310847426411387953995424400467115452357668912872582732913602037259643172398880586824979370368071806640622417506832336755941644248393945596795393196001683028635368685566968500551090408674815157657548191879022213352702290595054387672378809822030683208601589876754845433695139607774096376428150190072495675502155937115415672029562599972998453970973109387230349818850951858783323289305087957841083591065517711955512981969980813272785641166071000391613393477486598970423150208721867666867191962143104699267362184093890618255785902827981993506938299250073812541822251433587410397487730571907861663303030442630416757782751183740853928028941177249279518624196104437472106265009427609214287341699867838050391248125245617846299652170785079317508050709262740243740822638426126681262985699026340423719528148397253822363164384002778826792113643307937845925008432043386147143830589793299947864245860911017657262112841309169677297929953538970870596374669639610318127915845476803294148716374699620100481471093914001733628537807181447121334539860970636798497172589283353184142578305704661232577313576798987343224841635817319108677350266826783720738769864263699014874023286025804034328353250800097818307234424220951651209168608622598638721446778936311834185200932589438150448365258286803417296161171685879797037080295933645189448047364407796160474975082457657546487873913119742235762239828002606398481122334952800574359297392434130093272723542685382084067392869189817821783497345933690632362010090989611226879787133009526806058059852758531147751028195825500627539848077115328433423261759664528423175982573171778245146665925394064321854623640626157381573977372423562104151882307699222182546040991266099255677749027286224550648691679865456575437444300717281205980224855820457183858449437329175598957563762847622198100923958054613189249390610245188288168385477482264168521008131063720763116531921959122883057223349009593828166250184652947294850763216516498802958253936326789916682858453820495724360358707040596119126823635908023227477701330588778484465809366219124119389533234050159206421966578367357794890247564197847699729092711159167378459374409438861377935891233585284684974095677779755525643480595948611409268006181847543711659637217044756846718890086009837509961331168678239066256882496942228036833073623112963765835141364295727749041401489965244068992432938895211715318287414361332633406963947544690016717713937313030066674038595387941233051260789872450867488477593248108601632319053915805064315730229968180628198079195902766605951531135823402435435991672952348902857157884656905139384816948932991844906512224528667771481258088773206880860102841352664186724812019632931472027396397161273032986016719455755153955798549530068109465394835491351906128512841710314866953239602384533651015553813533317168190381509846664818951573427636155298176184759703035220034124886199315040011164676789443841299603648652796291667811830946281423932364735277713184919865911140795721997721019706054349677212484694219182104978356232158387154445928335526009127463652181067846380772264643692263426668351781754011400630724664218647942086249691584898565588537562637422358843154436308689651090470249246442947139737738920899565016579509764696866104471031105024838629151449300162376751652044835177904342977844929429607044693894025927381339234825028755845166225064812840349471235061918310529632198195874031645880407756484943533471302297227259958563011364531947209038388074420292816268490331379699719666257587382059413232361487272279292301437484210256396570724553562160691818098332397998149313209811695178303900201733816077696894283856728460971272953163183381630504024331351510156395642883129408598172485668027657617202880225389459416510419603231956863756975680124405128694745808302883117054857439378665488143817220632500596716678346577727800506774972007777459413333049537006706295925998578729863749818799439213952894022330572387987184311305219074836677177707210292678249972003645083108331159378797713598259283445478520932916114273763192244440195135701293687962880330371173185241318255324114581766306377017344057839613579733723527945489958525053656302816016472363424552780084079478066714425626372534556697920590502491432745399559530834731933532724683262541236674000182228635447392213255611499672259411357925858655618047681634590080763123506457810458158347619870865224932806126420600362168140188746296038403558640046206892355167955095022664150161109639028790260783022572418050868397289549621997504677566747970450867143282076789176772648668231481013334701355354179307549357504392771004066336148331032257414134018554330423574902539910805448265257095853956134673635893239675626805972206111790365558622995488137402575284837247796793586153426640228717418643438757161604718845296736250904494304722418809480251267980477165772020474681413569199236185663718211526782598849684629022964310058523728310317847468893371582597518538661849988430144543743338885870477695139722904650434798245438709508165463310035377884572976028978404876258190422068750474873319295239498844817823489009143828944693070912948686662319739207639599572990492430268087249664116861007912684436829017087292124895828138692374933563705636620615560933724091315375463206667732286590935051059608150958812000998965737770101745089742494818714937117503117123358056496637354373444478435328634834274906398354872923393722648070899614613471669800376658412780103207397005415137177665803521281493207354498967562839705956004490423532563348131891640459750942655903216059281728736845838772576788573297040244578403902598083945888864354353469968996222222060502132966281624061878962574585125862789458688478307370917942451475564785978546370442134462758077965899366064487238500284865713616679577627730627900773561728430560729393277445809765936491361299478911716577977546404679289725903873457559837964203702644135757736785036465450234125306573758133095688288938042096547074974404781275361045092203906188677071184735875930322505898088657036123495290058767251489958788417860162888098810842999540249968737277315116840541178451934973673727053405662701824399381097829928310841339965067027058437139017046665029744319195881653861979115063476728447174977334888422812844948792192451900181903566661087141720312581796570525709937190676727919934731823984599543473914235370869382133249908565267264063623799732866491951922584046949653021290321564202913572756378199301996597855378195772398576603166637433938197689480668315558624038017613607565322167912464833154149627885984572824558942105441949026208934511911472618734038383996193264146252075099671491087208456052574136728191691820415022322088183198213022897372845173781197488530503624857219965205385033870858016307785187173688640781490844758492234985376017932342257595650623274033535329212113186501200995486025890470934819492891021241813348292770475862586549499706353360354961767238527228974952736173959165866673833076629794096939159939678817124876116394028782656673483942009200489142685311801277408269273763748289137723189681973468987799191707803720862326239314553008372099685061457251004276426948369589018167837252975859429119436395709973923518784095580827503996825582628748772809734998267937298573965578162913968531425260193532374480985676516098611659097657319543423949045159674048330697771455565060958410170815121571573065978454226888138515726573405108604255396573323473844561549448507527044093994525679989879258323452678945746574624588838753253652855693632115341726005596822710650113156366353277288011716914921527494261149677849724448377976290256621860853685014945622281766639222301856738466888361330900865539494610126921281246172250032137597079028779468832880574828709267646774674058040762103038509675531706411116209548794619486222693233318308829926833951908680121630056178229093597716100072009881138236410322077027840965162152467077026257882868258950415000171130973957954773632348797443578278776147195699457219261716812880318567805979160080640201373435425279640562563278316182810285111626967977113994075554950696750755448507392293913925104223513943476427677018594883338912940190058514285529963651942186974564351102721826438351531063194806962798792400314824098422501385228164090872082381120871481513497443251523395153534774256130158498705199636251042128521640751155248605060188224513366386918510121020865068992493312165962829632405892871254393464484124754347219035759589374401553326030097456211645934921472562232591069786172593998507345083293833310511539535694171227161109568301349463811115612152306172135991035980690019841692944766329430793041625103252871684833916742015545793763885533164946900583483098207806198015159399097833810393421892823189987450933283737193754234704522045756929027378371914122468193856784893902241895030291193792388998225648322844635481062504650239577396482273226271014672347288925416682880116707521448039558394624057139334458602888336934189691837235039029871425356366179519309445890709858883428330408353099237963343184219101198335488512456161362246050280731516667483092010295139325043673865389118388114482477687860109363372303038528798477649455295169538387736592265952829554533730620467568004727166298110052400536874708290765262973400817391578993196590489667844696655661120090655335419319251038664046210863731035135032102811160914598020733874148057633184293328501035252874906128611583502733063039668096863495902988261853014663921480114393430836648613050873163333274485161038276475185401676541491980792555468756495304749710438917161469966629340280914116617986430564935434663555865790621771156459220014958677363406458018962937759936610440424012613982407863858129437595690994428293703187303845658752517664900404798512180680092441832206354929406159288536234915132161675867569699812510152405590104892707002763483787063441784277524615806081840550587281100123119235925998976694211398398021524088597349726361716310603514198868177242376542335099894916157494575071761778047563617715682225359571386593824823863359061387708048387504866787252675136291435777473303929407067386232119411658596912216328264013458881151236305411654905674301434596553337273734245897675314283881926897057956367973939347207756238570008464013223397952838237149531127340751053938038272006624218270899415362269745167011374011991616829969143457874493872790046364526877587534574252064401863954649567574566954889780979343729488250060574798124454174510527277037794335095627496407623650626213637108940043412777064467716537150043860851824410325072316149329680457701689481635564318954849953162702724943659890740996573483758682724521756298185133163990788191259404463627392786960325118685796675869298878797404307077467459991570702252387147267653535581622352145330521144713460412303428543601438994847379091297506201491687552850386306464865808323561326658898620649361366326868342492069792606924862397012378361677528428564331538820047033592366882004251051691011827580865002990936474082907877682078048239925613874146706716486340517627766373682588808782595976864640637195373920762425734882209325632776923836297511308634193355577748453554957243571167886384169474778098110572517709110379826118108871956883536916692087225334561343572980383065561490794703411212003795922194776573880904629146208470652582103625293077401638262945937558607264526966886144480747243356996193812723556976919504183121810113281751824090149749598062818760481521362799241541145324112748151779750255766387685870737097129598028621134313171073168695396636980682996229710746392050322383998944410250000421429287646366719772534233546229057918066060646128028463189270072949816865377781485610908689908094730405567823972988704921997622521512549188263723034317399025953924301823503224012193567243493375896564806726609873333941655622384304100859359328997823406638204885737814259200412932557634887498547256755967458821709186405083152116396214061766361729792386089064096345492190130689525493568828650755903270607350485538204313670084667596283303250389665316811171518952957128564417740729848304870440264005029481273170225190700520979765206361569777035467091641909369838898402004010404113343218486503141329900590068875551828956420598107333247562614655435227177157009934903595499591400961743851928527593414997209297854855080661017364032553766547361531700045507067631166001491413348042011144015222121698866620490902131772883462730071043862471416938674950488348306051305026178060946568298400230620245689463890949602813768616124813428304721516957816765172684857150717811758793565077802920442573054016408132016367642103467455705664154474441987714523561025397330379796054278711148476363096109674012371869628656744179287054362323116742146822760105972732691299268550553557933107432908917333546250851921712909900444028358080523558660943094560798530919512082125482760815638245420950111705366980259709793318871233905448174531332455940993910438711202852544114922201471595957345372976653553970125771646483590677033035467694262033126426800629425342877016031028214695660445922743523919769722068472599430476785757450540817939683069633958109465547101816810630889611859756066299670513796035063080236186042468398777696567192205575430145640125792328514173324281729895292834707357914890253329678854818962181018071122950894994988088643030929567449988097017698009494859435274569325277488543230800978075301617227926783152088517947117211076778249061185584705368187506977459470142362622268898789310904458715294120771402568886392504313487033442216998584893675596114632074850201076289093283050150044311263134360327531727635958793148011966057025887074364301035764285414446968872257300515052440096485601881497014649351892265803409548457408370575998122396460394366032534962023980556636981242151083532985158359533572210214222659403609233641874504675193889388894892827326847435983040693878871611051871998597428808492865058407543342843011049719779069705580603913031083053446405252117225746126317745338993763720970389397582659770322256511134139182534059386221596967297488108562759053642155669149024601681895528998559849938125471824926478296313556489514945042670602236183762118103794290489566021760315395437810667603218022619310659432597328749709444678090594726949267349550671803370785967695908061032909401000616660703868202490639116194111506608156531211834175569696863507373998808790037238249679433363295017670917777199229827628039782810876148187426891290037702765284713314995863884353499731625905288787006284846865639141568424699777196479976493572564385604098166921545967563142995799894708033651973039789671978658163243071408991209356527279966500781111625783364026148961546453572027169425885252053931416920173996790144190636878595136230418882547069178457636744175419587469170694758202017363217388992336063352859790262764232842420547812808612364352099100097511995980535192648753465105936022981090247403128197666285119506829838921454002610506253702898493344706845582882097674474761333346030555844827849303320689796466921551576308169064769862367037712290640302675526151612767940201322699876758329205478607336652262265689959051282308188774306383892963418913216121663099012815913061167601909761953325573138319375248760788323903803617030232754199080552524298011758276693737185041547147714301446021634308198174441439393481498008437421061787509684799298335331802037641303524775511861579896807397962286691611799943949973465364377453294982809159646067056491973243126760367696244164138469306801623199380833784630028532214729892184200320046167851019010699731565695553820344219366772918480468706574575593588151074127509282472294162028758999859344952428122668697289479137875193799178943380019196757912880906270997618886563792091836773203689726977580296521528685252153933348816952912076114399019146272667797011038683576466556402202807979907407802235473975757680543745521359827926045009537263384021471920047906374161524170463699539124149799819330779667355642300893077043201619804354075162794800552773803410809470554942665209870681457107049662860868384701761255302631635027206003988246222408505685826836209526165576590056776101604139258818830721809632784163049696735372676162993169473370116934090095242888848613101883812012223017804409759979100671771271836159208028784070528181293699566592538447258195714723715275099442346333033902834956713590228350185420993033707101060621555755325886890222285968622910139651676177288335945297145673943179479182951557323716916360313224811280725053897896655900670840162371905694313483391544387089438951061131732317462394115705629526278083315793963553132836102800384490423524386773189594478435553131583962259532886924894657761443483050712815932211886511808744516147898314695136586485919830130381924702527669004604202764232771459424172252242576949110155160565843664905656061291923381062415093362200540316760842087856562275325466124620400692600563355819726288426595994627246340878710407976977849191872339309799373797660145855164888258864902479461433158589097620778289640807382773822910963589609821149820813258211701968179850576240927995697280416964710987897541726849677705160650353397917773702776856244245360933583872879421310581081525631519720932379045562958865737420558423045209120320974231389315422351979919972843299827556302731214425425583482074311878549142350674010599285700877706785517857564303209697110275663811802109641130730896023708478557882837520476434011969667579571423730932204377607406969925195264709580758888671835628454214015988860317992178186645382710401904754730921451024033837394083588332087478745911009374241263011865456735570074608372669476753578955597428143916597914288268094153013380412867767552719515405815322727516019828156703325685768005064507414434028922022814921371999443340562473883400011816044348754427896315119888622571479352856932334247440301071972250812536144204386268157806868746996676225477495668297625455400090757842565933416285039011219232333774114376605838088819502309875214426330795934607674657799701124071508228403290700976468956119923808483588936915593221872909393986907250994704170533072355362284959721235351874280330423837332643733754761491243432880889737728177569372366145904877484669974053465955080439277055823304272259620132256179677071559525287612376952883713819768671443459132968102342889991944629458659243680277381539613104536492693711046867806948947307164998068826598302248671857470764661802488386443473441187692039102843721242158543372204731975563186133128245241818988444488594089990604169979273214299305927672678991824007788853647319987175439634466669036482230782237743130310429440162097665928501975012423126282053738741751661302962996664743798486241013578151561594692863724972665695788220205923168387843473114015740962912887035868103698888220894024662258536984774241333565451092145266873596066376591481267657780700932799849336988488815671451111359719467481593348261063542946734407386966414165309255876810394243633246586295722713076584978388631690601953616210377757464745117560625759492448680569269346606064915415835615432760737498594135376275989203051978428377421191218945425834338973212756389281054275205925885639839301479726598545694919810379920547899738034656150764965259744066828871947764137121567865227968232977941921936856623732954168482992698797490394427166247776003450896116579776286047812268719323599346653649359871402015141362488635326850364935215611628159131626797684618912564178301829819743680892099532265324866284537320442568272913296270659392035747159170565131410266355338899646989060301594441617754668844769697361404989407720220927162894967502405353714949098883024188203418566409220591838084795959267117585578556632765576957729104040102698103197662961334862650324153064043926757324517486394361614250729275982437029958118135102891077343288790219167146003232713174372745402426422485909612988883373048194694877439653227787752974517836687968599687092058360365117462188301420503660408606202376134203764396754952527045599108219137233411757777662384762853919199303083289503551235377040882578861658569249372302490001095829437105710779113665318347600985285464768683866679514919169471595367086385355862171220207798769252939588963471019483566509442556200907807488880141058841806793785078558146030187588650195111458613081676970498083209803159248498821116101681930426333894378312270507578234308173366394032967793737985229866476632941478562838733193896508476639034834495043521591239577143270648634576179285280722089340647064951805493547801115698227224141114487445981593126692296235638490925788690410554877091060994499173961781832250521852121949751283742871962829365343396405136566610808972193906231352061582033147190245332819892809400022742667913612748820691042917338858718771908714299860041611474078641424715905990080727912371000286594574571517699167122790087679475712980739483763705857013333977137057601629369905102343120572341579749145855498931300863368827010153429404190928315857389649773420711116115676425552508186273138190370827163930852879729287131299830779885876333409487664359469217906992741816802843599826969675748855955696092224288956652614121406144230373467443384501636646569128736068611182859281783746559646639735273067314292679511578993748090249327322965534487699763786317020433900540078660512326868303033537246862430161055032540090686016932742703877008516764297023364367282547564817756376696890485293222107115863787537561382441940166854497919689715641914543209966688137600865101973398846847253440215112369773686300283211774263331532874377753061537516742325578321995324286773304265893387903281779628624023616397437888123256999550431740185349294743337521755392914745317744909852921057409437484126191524011521744035037372075259688049866694391142926985160039248937023465458702112776173800949663538322862173195586339665886163287630998609951155029522242929893757371471954663519928583678201547853589273092963628147824299690814801912060557627775072581303761800121008181312875638066291900508541881405675765587400731460665845248712069752200682385375560316927090170496011262823996970222689387277699202301820805042290325667153543451090794770330376068699440807177702942783532948420489011412086864593287053770826409201366918798034883710091649534436546170980597991805830852960815177863543211228333242446366751121031938491524925949226379526001133907498621162291417803231121735113724212737530785434565177548577519738112689787049903715812970787688478204871471834609998886022636523792179199875456277432632488399755996260087726311831982212353558216117437134719396909758946513280344715128789748322941185216394025646845527725465435261902228185217777761248571043886920359156172696738436392722983448784331857115873252451419262832378343737966645253856227910567066672274872351368069304771487184426479927608712577388401181744279263492963919309567845378038977239187931051254906014905592543797377059649555817583423022869431793444464380952869695782302931991514300717466697299081447417942484531474373661267212638680242207825654365203062467687622362037750184402719967187635858474178568405674823346483576742097925056752166740712969925491069103357357307484124347832330212809126359825951378090657932836946479284345864589439305072740519186922913925327238072072427908292858222500597975982005517425904136110913042828255987290865035781437351556790017255702696638677592600258789795898334602359754113990736012426231189599109714361833071518555749178801250608952732776516516222470064899150152221205020950418604689337268889706013152611767253969994691388108269520865970389080344071360582663100616507401624900987608293297820525768309973052671102574790186935797217661569361759108944600225781407132284590627075202751404756284554927539420533795871129440690998589273967802611139192736730462717867886009206562306425996297021818748786123561580261440318427803193139258960986749667463560568747648637104630711091741105753925110043581114299488858793740325150629012997427848509073563616603033041353886259859540367630262600657144681698602332067825190778389803813177342915766439954029607031697146775688595588886040171463904180408753394832647905440472834958375016180061505625327601019261708832753042944695680828116810121203298581050210454990330463608237676494878867949278641669836544020439848013683371576917993666325148932887253025103795125238500130391596579880013163354497566220714799303894086228341561019281452001632133916982982650566011465220013554302792238023341235934836143790138840895164248782818718605543413645131650040171769239611785859649267350103373253768820982433512264889581720034088293395580418957448985272753278909603101418893130920588454345181569298890363020558229216682560956474618806111932911557897046590585123154872511274158729492140040519899365333218172943783211266501346675271021288425189408486239252646762677452561412021150180593963867211433195733614168208006523249158503688416893157192935191924387077845480487757196848591689446985805749858362767525694882521359256513746309421421834595464222880929975508190810385042709160727588784111483351256928522839324199536075925577767178762678457083175370422183197039206571834739398249497494151485085445723900834711705602654486168118743223662295891459203188391093267287576280006612784438087322508995840449272848182060324666342744645815788045660448296498994042709785850020849466956607223656793810451469603203700216176657805189508715742318890186832196248805886014961676844251236840043605397065520174313827756144672271591592647618664953757762089794854132398832930209031755668493915071681022556319941957729277814186742859596655559739377098231214966375787260962385135322760100296936682170564280915873612514293744129972641885305782116721530274335190840932709604583580109644496122909005415614881077737890783902189659495730949029392293851222371183135274047269171165204613571984088384552448935063964285834881952131349197320810904412862283098626967865892725029341930302786017962193053261568100070810328450268452656640586322601256900530028117792330116585365001971719485250172339266642874997793215134568223777257593287227726058535325905867103869545217969976809565381840145792908073744132514707690848046239389463577415147177593529151516422180089973938669565148171759400327182610720285181769640300254739354150017850237255275419901269256543429880803441354383819495619997894343554337247596095827181813703764851912870552720212467094402625546483407242307740020825358618005753262833528921051076354489648497775543683134596511119402444602120952837969660546705454487631235904661790847663639732905953497562154154452294048089485082508900125435339664486874664413368441467329398182941623040642607208225768113718302616957878299854220798975376188697954856919316917981384367333793257993796210892986074142415667124189070162905175199791096170683916609307263853482921498873194618554506689823539017822350347982922305444881366952213953879733911015192656719532038029014140747837159102355455475639466180338432255819991417887953838478697520977400919905593325183414318214497138432904519075301133812489831881438934775573535520987025643208254761571562737281252514875699330256519521353637302697892981281446180212587352492103377172087200983143068834917157804803561879101085960888312933858806388788559601092046363725980635944432963200269029834109435539481399851369535630358929025160789575388266147899433661434585940808105939863118008843132338167139668374228408958699481513911572384031449144111160357766132013318237986911475798714929766302916787927327789528208425187684031924477368812997591765887916479745546772406556919770766243672450712156540985697963347227960186298496226861950212184114810166502144118923499032736677255548157647262215408536946935872839470776913359042869487225363289110272943229742817965721268238215301331179697130648445069526956738949082182924980048518415978446610639079640356963683678280767006960826241220905582779302523964521685957662296899507873857588334608142553041032037428040266062343028845736786605397892370372011522216980732419135044063890113581151727588083059337596972879715192807803605969352506343485613680192069559659677544155408733984683272391165000150415280144979712185980458194581021985594612296110551737623171539294883392605691333036052077398670133447986600865205657469273409696205894364042395081590189197809642348742804534151365733113151684566010492803474840981108256474021624072979587800055875859235383007438629190102611313495262293461562910988031356568767279609155418293458687968948844210721030160345750496721879821108098909972607596300176177922894692219666689468517483436157625797059639627816851001926929969508569306188613773085798046995677660969866797604232938926803067346257356123344353891557321703034731817664666473159411739621185636226403457811109661245460289801918103732949844355330208654862307387580668470658074302827895400507128547803941228357798587552234725786999317449185064533410106542485640338689848737150220983664658595948973798043725909828937888558803806645656049399799867841769065577478808431985480183157285707130568472878219087093216015429357002506326063596506402874142350255263943085318704280407237063170419493885201501880878787352838313221810659180597328629047397807522532631975824286991999716977420360388663127747776840515032699543882736274407886781279859237280927458882106206117158394637348710395283178243688077562022916672217523460397763610175116072996157725486543962600899620416410943092471478142463062697452084733803248373523986876482729030512131253611473210681284483633162703814695072133451888729537828245030625695533966651938318852385158538669920307953651566418688990913058303711479590576531278391121817879841996695772009568039087854338001921504483629402543332277671701680846801048115247914349708621257310337759687870896143332493278531053218366288488135379998404861082617736810033657839350752924180967490143397485349031681174635144600941194328591411211897030231273764149708682617800509061138694700343422712991893294119070120842108518548224490913909999295162584641035890804417248580746307681640703804749962208311278962309448600090549803715391942807465807866674007356551624813639514292005002352939332215564986461530892070842097708716755197195485325649708838133901166902880785148016335668706480381711105319058403434879289977566003867357023180618193862587055301071242912854728244496468765463520646579904583860009738081297779271070579021066558392026438441464870416095301366492387459413493371047299576421968888702095941331028829909530522950533489670867696558723423120899686906771320496980559069221077733354078629732577491689590533619467792677146405348531327223427378043035904817568429836658619549484335830135514425990753557806217132665608127021927195082433759681820841390499650661510592504340083237211272552760015271821448883149975409864957662869133159651766024371142231717768869877261873033145869211395390301617617648989023646710000180106647656654866210388254619963240572346147548274104306854397133158633272044211421323142534309273339489857058877824014990235716317839123631587034116712397074355767941442728400050155853587669025360176924812568666202294601701743703553319371461355288282237467030686416765349173053674102347080302543062860923670811004244996134086601748243747990723364531131996023794288166681902850556962997289403513285271880884447687552962771191889926593631337804636035274255131325137370907444455088238116387521126922976797952327875170136623962822601020275036240999493629824079769341985202001583202015792318702216347305232799333498635368048386903246210320630261494761203123595192806190199708679887120796107341586475708193786613704208036295843811106614084360964602008993613577918567921035260490238307428678437730844178714153987453073247803048309652068128334866434301816255111389863183206370956328532691936310949158327958034628850026579796813252376069504246076654384660056842890673018691953876247839575700650414542267328730083072870384163100666453760255172014827452494244676352054040845740419106345765857106867463095363825107957623755157608509980334842995573618840027994734472869476968267600381948934701076204434700139778756543885637393357544939151174134274870166018286592500634633308678528051092325619681423682913826627278204934723470896646786021240757547669698819638295076032884101341660616621588451488558313248982168203829397392111458645557250773266971466603638196220140515379590874579815953224845928822906411094055083442087137424603998401185554081311335269504599545930717285028723502124992352881822119361069011349600695510647311372772016320956644815237378475190956086134245927853235624499314224286231750314086152298725819723267728540756257778487123851734290893675821348429233091589863246323088068063470933511504365195785609898446132425373034348422875376869911329266579056672688160555675960679949756406940526145888400203396563102508748061106107812300276304611088429097912413461065665881170911146426471620073952466318977329030514194357940671729069135832028209263888430214297659119465241283473399896297482238633212222154703908585037488363968479508623617557380069782198380827309266879165692004540131443812986819626970747029642205246850679889945658678926333331281140124933294905029576202115037863347317246436268432231841442767431718259723081749013726146834647957389511627329444308975858649844412990760438921381987283522301809010791999331346657096726785474580134133728212956365107086931739882003323436093508029289582933615858492319248199676923764616183146378130706486264724816949189871812260853771770573685606276463407587950284413830597433312989704572691985535602402268324307347385303946386330181860902381031568734095663401415676593564424159357946878105128099606305912473013194879622098970418377352409188639096479026638236078798377691431064069210995220997469450450915024935696515062370239779650779950759875052305209802919914482864197555188280817950813618233037042204185703905338846823284952133956596085302725537869135398753926445072987128386112438522243095534464753728157277497451035387182569544106957146359332130220942785508026431066279935651738888756795210977350047601067891539727104861714157221543788746464815345473953462658679278324987459441973960422942902809823200407181930912956815063314832290797245865569998742707663380542725266785408053174714450578401965407186191953164702390735104752170853660498887441246223160317474353786231747237104975392935603549677036477576528107558442329561057113277693343116999950938005662167533454329120230472940919497148616759988641088434067021554789443111171734764604769660505904362299750327972928947938369196522741573639496457826403298816594988612331399708434542051893006661620511640873719718212264972472223504906287300650930736741615691762384185338700544163738532895558299515685299768476897423147177971992844874730579361342213981238069974656994637677467094315016094900619659953939562502007321677185402493547310524629261983745008937905869216183732367501860976583784185322009370200330618076589204890780949793609676147562112178570252859903120014797534796012682228028721455015941215515701178531187976037587837256844957463043403280095146501367173550315116413802928674036613605570408129076488759225351602249976908903398418637010269020757907412323260296805167356670104816283187812509772666071557875649931689280795165435333790660260877169797046528982125460438564517406123039570781125624927860228911564116105216776397863779186466463677466565636471527962638902874651204528109485894644848719861815117748241318481789001486674949312323710635672079873011597495759939102255463588334850283726792105566652566579738643226252748467120977312013729752036505770611945434774756588059306739465853081853030804443238823094500425998599194661036420164362473833723502327551936447728872878827674412809452579823082313529973887222514413322014613491109012361185080165392380578112655467161282160940950853889583763089045367713583262042906325458150499874825265392841420159227381829939016056783294898795701538253758910009947039866430530851897167307843601206181216273526730722886893749711717890315396543154675392623858289108777386376302136823442712421799386930566429830820065360276355441834747021360903520497761590067708013979912593413124029350501100420060733278587383720913575074989340321133740816962070267853314752986877671033990767568197101164737714868287453809276170771165958425498354583335968386656856347290118755292534157984622007079369663194403552040232644713572065387429435593310749929265250794563112566422013857722647498213761666069743518864076551688993157918881934256441814878586224473790662311981476050905314143496787224439781067875601882464839018823702271594161994813164982923671151817297409906804602039387356367508125479490869418426403873717876242911192624077438421280689911155521115520742055691141942483126044797816295602585237000679226216906042363807570201178405003701835922357487699180576113882397341780523669799740007453306427206590490152067656698584543810639515426713856993258211602680344095035657358832622478281657833779139753774782881480800385144886945636109714975837724341583086192249348519169485919222482463494359116511522760397639575938550763699667461839943407694877119578760485613581375889598196463492470369130785478988949356899300962983533620550317647868497138937971540094437435179729487955365639153506715664151138534244449385809803952319270163584683792140901953528527634309517075919102376722076880395635319130922350100442761930981659072929984047827086437082239667917100993739374811495490449891135419331504231756218668042385317982701085458416940160008011453203291368420814753672961716175075265189256552405518221022534646648912325261411494216988997959943278335402906681744168934844796763598663541616670864617053550643942840768152390348316527374580091506946861485674643836402512165327192847404996360565525403406268289578925538211979068715827479804130911000698029750134640346502950432375414220931488786946793719528602852557151352325197099407217802446716041293664428735287659150333939758141313156710336104517426783609333366846553104331615397763207021987226096965628314380770675809652815401061543125042867044361154144884490912782758836615495393183715308058461960580508071807816738410705650892338767860446675231548604831762670035466893481217396579086479254067367559360177606620760388317778772109236294458979932078933735124211324835526011510293491462126213796196159030986105379348743881524368907898212178298901697800021949863561886756051827134651577703157187038785146256104813519117080066211197335646128313485703169772436275240637621430135461523834792943979522885595968563278467183945218142054914685824618313983890741248087101392292369471482232823592384363928367824704004595603207648019500426280316453189218160783960696750488950018935871855397451183400602490616722245211043456388451310753849156843050005527463389502924708157332717287617814909067536854899481407393750019623744629611467273989188347847853627051751596854471992214267869634777094668912174946649323239981456200150115576544059049044076838619637829894302360822557681385780594918570544856941632028120920500744141848866363314903808013151058660764727918327045064753695314004578960154921666674231630867703911173569979070017435710158351089825430780511806919124248908809217499220966837222061782709034660504500899712681763980643378200389280128154020446078023741477295304175997738183055620530706309662648136292334563063922408471544554146016153063672144589750319737574138032875479340355000965418045411543818901492959187053964961098334840510816964741100349910372128583058972786885003471548648497194911696947594113459898881857834159761773511349613338071331412062351950739674120909258786198256008551022070989268499897973044801139618426022220585509607109463455806940842852595088458615205565088427687912471124360220523597289926979916635612773384458052805910929367900735732102289844784394050406685195647610809761434731560936843438154725685349230849288567664527446660082896803555857539083959897307828279100742550061490603117746471337352299372611733774731659452561133279235886092744518769614983539804398199196076969749456672310188425647656572826099042336443232240544366157665514970920129668888598923709276802556877670640390628235189654159518415960230251663265198816069250491547315024701665571635184246749771352171818438427742732555005127076750123541725471340411225169917421320524724036783294336242284891181678287769220488719167302438851965339880827082005070506725090136316588139785368884933445875529456525487743637562728815214398408476738876533634248634284542806853668968046036450615389781228586515710490182447787354484197375233254171108752132674831626328231818744148152091644557774700092352302893377621979729907251511387552104049677518571753312999360047313611187845065483347168940016573123703988445149311768769399013071837639603519054260961105502905623822391903891076385850674420287846155430352048012904975882929725287271826238611299235876911047848634790405544695022003179582201839193191080493858750426730901649314791804846761868177006986644850315117359621463789390579906354385497650314357600713926745720697964695632435182477428427925453879204716154829438756649604979956301263868371709275474807942787336061071122166940255557936469243403712704963450207975715028289486088670504172687584248235095027104516410684528248869632354018796527519843199659805856356898245675929141945452711282480433635181965059640073989619805997579872767691523079768111560518817999122368410064562018828333506306112264995711879364896475384526946787227910335456241151774210674469994607070471447526950366589230355182091735442430838972330532002564159184866106104254478541703068733763912825907574905711184138073174615419298534164508592450400666665089575821962191947377461152249966409561434936085229060951885791672683195855813571586039088656366223886802336781386415922898394898958373602183961920086635408534772416209989566061976039709222121273066041284934049398948199562199101913006623491625389008167150596426182416767859660020455247331448462394860892723712493207009928726746452520602700500189651074192470831150354599334786694532755933467438059085690183120797322983544714742329518479468618505841731630856644206410821184494090918558500802546484503261632565397546837617836341061796716704528826535229192399320228153305115697873616780953010397794537545878808159780273056749163709381321181310583299618835868143185931339362154712971306394336510473180230605025742933355606802546731357529709266258922567481299437550499249804013011496123804625256183917328384295826296311538637050093214362957692076117492022763526365341551247716646913328013547757429936050977156432995265008327329996772362793678580333711515068786707763553217989313723468688785644528636350873445315677049777226265954176204876214939516494622751502348318525510171724266533267743679885515755399895640729142591092017645389211878804523042776476857104159616259161627998393528320572466283457670961181014454326126074225936007326626376319753098082768827127923016673288948911129499336573360875906229756616403176708216719877806958352855742294897404188614048181584175321488095715933684503265304970422953756103674242476519061231117709725859655553356016075331284466420626768171378189350532884380730239852725805038571732984918588450290602459383203187755528551988582779467650653842767356746295998341150790174305872139502744613000431658716221248499267384065024604605705397355874202802724588634083935574146906902036943308959231304381960106624495499458342883105150592046490102279510599359318013125964718015420040595162242943190442530166521672207744451318269548424953584577788356319031745482876428355041294589171441175656560995279891166099754502190527838289921112368292941928747640176459844647610866411844382065287189310854191287330569749457985005751994644695841668658502709492694914845785064667005682159096379128839922064392547011280038109594611224554563148741646946434588195920919196435472186521615776916548341634898492896966248805640716924828822566774982209222867979277597821369832337202396222882098842734380365563187027291990309184043986361615988760575826447920488948967035223226843300998957573246982193848439420416784984933282668076195240506067943719014359102755552188636165694108265282680363313890016861736185896993044892892076259716673502660793843583978197135112281599598854996982221017655250103637855757849598979549415254888220868085497850561614876893631220142145509685026758698712814732025117147834519911639107860312959702964187105807113220320324868700712309239516560027681115333817479545224693033435794637330751947902462291184752983338821134879675772662547192904312554260922816280359125588829780356451084381688768898522837583458203512092469872748461424812933816954601806633070180292565712372461244734960390469269349490419349127725338606844325060444836064869529718582184609653836271222620872836205819551771272371112556789281709386636001453609276385409381282917645657352795684615511464275083636063074508560506716302752870480224161720230313893478263505551037378767162388427102487878800690783604893046765385462286675674609786334702848097363444332258123552340524976150666613225083378978686340022212302436963624831243449068015251189334468389819998067582667419571083446585083789701748269320008598587578778958874646279066888510325394979438979842284532172104429940219120723687040488935714509609741803870759765957778544660990140839847043453974958490865990184489458819697101323784501948221235413098272982626122057263804456975258152919959374231167528649310972373870407769983196975873964181919014057279986066395674094962960226652133716273484179028795665650029561900094479042184157723067485814492350151868666484035253922523058079473534120398617339869046220928561954722030949204828443888671759041613082518368959086584335003622124184108593353657006741811985173983768356609696824845086960132364939624254665356994515704081596559521156978306724359190765155939800262715044807630923884859905038111408618724154581412643812245553497261697516238994320971642089661622194774424833748539498682700999134816023608344653692379684941013919858106876140505832384722205640697675616380678293105712984547550910381802697667986024109529508850923188305387723919855971226823356969423616645566103737350131782791253330491716729012554556337732004136301642242293779841760606231421902244559347636083426242525518801065971136443093164850702328464350275241456461604854585100184668437515362218538321664015580974411010135895455231359146996125993247734089891447002119388793117372775226934077767969792935910331377306907037502121153546561098023264457780710144780409792182906660044561012901621839379365735316146811942007721278480557149426105870800550551923846966808816188853608143110356368256233793672003182266765046995201874832547924840670679152846973971976797250654705452378742447548097419847624998359652440753951844631645118824235612558178758655393677477073409710516492759262254787253453415877782802564378148169994205227797791290588212319260416958215016445608124991682861999453447936471050526175599611169655169811405665470863050181867858157652443565787839246412617658942790635220834806937256558011517973029387724833506941254061943285880156302168312406052142769250544842448873495028548476852803496068611706359498577477144894150901806751744373091910195883008896636713055814541820101288961039786845028057494058961276606863995447784184288474867729947055539607035554704944121096111565038107696731828698738689730741313110245577475279413494799810543088324695293933737588975585756444788720773665201296801687199331217633204561728753985238811257483114709073767649880224515453930274194048993902597527598965297636258028896885966589576326542664022846124601616063718274508296793588847526641697585121270663673788429894546615362754850124549725382583984533311940483928688717240889053494958772218038699621807542040199661535170376734149833229975372190506063209676198209739613065371056321235033234903943897512064362758023293667916889887654590032627040896193069344513323216224374098442144487851034884075118065137860833987431783663597308026876880791480651889316849286803400722013570305507893841452096043272172821993198304241676806494693302037543490109617441283726788317750851587314282588024886991556950218098495475691837209413385877597382768725324078279923899995133695002781491238015435406117626736206417086240004051191650662767193454872739100068179438810092314357842495340275705446167817029445027193671126060093402155313408793856170829822687249453368596827327668088396149973584406559531631264052275672284887349155890860577547389223657826067466976456161556982825542404745489249515848599739335460686964239235341653316119318597436888725764286700200089530921529159040774567794075632217448242327173134613380759328419829088081292555521233100039766519583085005896485908777329000243663271578973062363497483718685113321434520390097459116212213809619234170648267254423708731035388751874167998074627764001485418620626332975221521939947153516043745131857588533209494738675565141763622989067296373378802564131496385271658240424991436251360291192545937293047138575883800624980367877524542423117939640053369075823898196674234663290449060001320628033737081368119240005958981296856139044973897278781114919391148193604530130970671970404954455296711565154064242536880264095988090448827067383025691606234457275639723206328162996496596023098057816454757375250579984161272481445025022229994102899913498518270658436674462329371704937060917758559481090266264531509285894133573509137543736289707243319846863720067689957343501334633948863525400004449732229979099993224739288371714185881387955953808232328624149166644584686470395482925005043172862029951104526028627850913488217430267413109112350987690760673616037272042119468404560281200069905800085819476798134222874268908171078622539575463702532046579382164979573589519956674235589455607107499996470054242203307989719192191462120047514051154650488689811974067471648045771930129765689733621438378309172402706503935450294260121822388223822283293498060195668083153761422821876854716412496232311182449228368915380363186320046843161008961150624665891810575236266365428240548235949534650060649839890354955624623591131389184735035653677415576780642231970465073201879272269104853036672974271371726388516210245080596118302660632998962262496199223134783300437255245352772405638381096758033733480943689654666722902197072634861228807779907187515286030373492009074214913350955161846810215507405718184229498073751518906535921275692609145113630758209848242330112003304280975181837455167999022680107941612195751882869485249263315763133892959625916791478754413193934382010570499992005649423077135031852082089925098915255045416415053308449301875597437283842667880378861535700436764547481981003164011980782117969976120126289394676031017610042871504791534853298526616357738610015502426919183972550145174700375354946261048799730383588325296441922743201917434638778046424979886654668144418426073866485758568116163699534580407677722693346569080453887827635718337783788302284201223186230351197745468937457755616951331073909560648749633383819793979365786490091153022182587678736597983350407690107283624476629663094467893964345063953613941301888574752012963474713668928948988981050854263529111969567039234452161173623537942756138080515779166584562266816015690229255314286106052405167843475993417889546417675792053052682178320423731916800435764733445909758870475997065973342543348487275519822497086106985817762431396152575319722263325429328310293702985984202845909005268110332170836610074950381328744926341756777889679576606809143482855582671105436978267218968089387142669197790260286928095492829742592891613846444591794493707174054808090035850112621426346894012368427362934504968754880909226256263420830900581000949833757180110955063887138929126374777786290442638806912547039226964615022317262099251556241726004281008759255161340911432385024169228121151774762342194287484836595856761749429797912360259297703502836993312760720882527053077087470453363816956042995065642384019619167220960312228511546982031020206125874593769817808935411615403906684738413515874629179936926994412491987411253793272339419571840853702735249424061223872436768766005189557155441465937487682084041849976200618595908941868859854355271689779317421092546188633024648290139209288194395402048042812072452086964693631487655691118610938552524166001101868541933747262301676809203501977545534953796280162533105372793565760090078325693565769434282807757529063839250798226999193690859421434366991390857514234906956595637935667062779185388426223205674083625355464058570927836837583409393983560912799511561817672036199428194514257334323219993940881885343416145791497266474308067262131470327288042005067980363370065139036349501216127858343833022964296870701387360214927241155973419856817350575086009455990949625473384842961449433579718928022794315771724297164168303388283442774100076313704960351300330461756440770854156596309604222517797673320179168499331689595957264718797757867517773365930928219217926162526456694766288086668714901380528586235395880110351158325435539252441166391896181774565951304533437981018372724211877931829607922544805060354953935545963668135435272015048722438171817931386895020314236438801726517964999639675326128792717772524535778922907864353585211662089724241739649121266110690537598504485089457944718411087462031437574474437568647391002620694213248281867919389113060170284283895750831892010552593021376536441104799309993389626265754818906664660979886885229115662747141186773947147126223254925533032294276454702460318424330578126839828490473595811485256022546035646715973796771959190933948267740258704685266155300068061184078890334262678667907528299426579039426442303861525216190236646476153151297670920120968992601250099812043349997026171291156467452881170353115382506300202953755025845365452884454778623557691948674478717222957664329356898807529864589726853435926083393514684175875323966518320144453456900116928571256267198870288974939868800569501185465233974029908377057817580212276322303631723614963977400866865099915959775017325122784043758706760750695108024956477686175323826068595724351267382970444045621266343632914960099016876364287597484008988465810262085679121884487917148144175612590445668107432939105097816740935123710054245595825805344875322925210956999217272367054001542665246881846285026535990667305417025498265085943388189842393813537472658356510646152010117487478516981629838862517904148592943043775702842798500537254322103859635026911200358173771551037526484945751067828083827338748286483530550819893556820523660151916593298998661066380547938684401113712815146044943736579744416541088203854579708215557711879885483067203390714724524000327754778521815353160058822374743806399796422247037154518570153264423981752901885947265259890458360750279588167197419715506365375108678445585656948287936251014294920232222049871148701664700270069646217223690317742081626004501937465273463374992966657156792788418362245608939663322704262560747099703263111958454711615629196897187908043172059096482251047637180582848895486932419105027673699714812120088319476726460989936165119575816272051254928829722276533602628266409817123551125787834378531480613152470279744442242768965109452422710099288300059417605990191783749675381283531854114309935136879772190554176241018981168460531581920371083379228137560653487263277236398611973547887783826569860160799009941132432668956131420043241033871554252067691084596948474628939288663442872779101963553847005135241028515259732612730598761573174852324795247819653334681515416239546512638725339174052389413365490336495923079615992915874823066747023677140737852409928694396040756959087021560296830652431676603140846521932494762625533825343548869693790840322067352105332212271414438737050382341828974691841996169784588879099822805263332941996940241572256120740412071058567663471260061223087876491625070025161038319656139414441015010098678343773582246787670055282183630641152705691432688762715097868398756515260776924532031824594556571507332193687525995980616440422695450579941620614592546137756125554721971951781509921961773374174000487939671416341469775313495050702140523172872410400742804775140856960059607895483349205843138759100767829810517224018060641053057144781798006561104676759225583003756765293857351224943537732162817486527742411112606927587561315993506755481880375694759316994013300246129117523379909131810528140437354549807327394929528963175728242775477841530279676260124569108401581778463169952739995667852947141987351117999282026169643644055760046467049965292717715182155586821543637139650728702339294994660374157784143172008630875585260187690809410414708753121886612999329593753273565648874516134412050247306471038126195765451084522902098332349718979425744991434372500863156313461427511237945800097543418820129475797105039227754623381844821478985126936942629183089053584194573248833875783377876530130599723150658219555312177158221533982215870576531204756483351809841382907188242780541090864253259835461135809198761281299113212433622023129437827554949439164307734539246742868140500508977002327484194670797796761744996587126639035257429295750473629705671648299706528877619400807649203596011881748450321400352965596697730395631129494162343786231809223782223505198647449164497201927977560472160281153093207774107399093519960029374960869929698112180819965950772257209479693124561465289678294120062288589981860972192016530585566086415951253034603132872818670506135347706286745571820769124023630678599112810400737492497912800909728493065311492433800746089753705059234686920412544624472887430087665774299823619982702047129391710785632183766162523727486993415074205837828051658327588892518129356720590624803573004386263181476529627943552521232458172773556019393709788634455907379082901083102545294037858956182211172056477144683626884106974546371808017705418452141999859245709203562068861353588314148815527850935592422441617859043096509006085228880834876224471168572326082728321569290321897562889796395514403655751549490915422438815810918761886627683039147792492440841058080508648409644328096494137605461248068067302535200478819878742504044048387871976626147856172535977348743379177124679647778635165129931294645515312144148613454903585641095321678039352584388857883007663185800410161855727493345550787493950028997838006085589837288081852547655493494234603829780130100372195602246320597593905381973484448596697472202859515234754541095897390673486826132514059585177235379622868345155980620446652738880875518809957676272065468084941685261695862693406563157339614198650547971710584102198266869210006726534855412163107533936761407785676112527975752096732843953160132099639939357338661772742282372598672947492877458225842126361610260618991180921319840633309434166089935282939984598084552324770147215732436206370716910485331329854512349313212885744478780355576811050232314748642907953322981851859967016114797501877600284117646372355343171795303959437601648695498520095122571811898900601365218015600903463907128354592488479014102852348860216411433620547706527894239013720841179744643897227862898198516488291168067775486375268932484468630069714063289969386451590653811993435930305865972426412334739060738296112940254595364062207276268669151186011953190305041065899457445725646468370718819301029210018413278010342764745888570006394465326926857632400588816743821771227894253765238569965792277553250671105502930576460929604679444589849178579687387986038204524100008301438736147097863935917243868810891769047687503097010854845452078841125815747719511499116588370442335779349288526621550917780009347572535391736766734617007588238384470821666143087944296318371993026182794338594073347981389508185324516086724714349281024627231038243472225152858902276980007454610205634120277675191899124029706404768873294882331272385481420026212498326946444063418927019795900112991711922010287880501646234881250630626854017015507014623079217547606538445240892160043076636610257112642775989734946774451861155215057712611750928306510647030842132908638591490480740094956151374380160324528846182778972644510233332220669442499945239401738342347100272129752079597133394457471565917162480028861896878397550661285339008237626194593025380791031364910128931983540084941482611359092159840654453044294464355766308500220371119447622593669627109766459233165323302021500301348264749977911228557141013685411216964936885277790594553479005726784003867176256434100340313765465912298064862418813769055536862386605475302242265490588631037169842737058342716281625525158168649759579633821481285790893883549263186212658174784572779618270879314932421469307034329266115458367914266906983120114381436664880487664060914733935321258379566464648011696930995426248375641206374923910256531635257140128417833690155631938053788252479338752031729039294943167453633862087400463649210006707591087499571881983884576325427023774239907729724180827758289910534814058790664857067084705231419055516856656180928910651952808027464601187898156521597380060389986268971651812042853828161588106260401686577126944312340802062401262314130200944368171214238069570835069258247297994103033979697253534522464199951375183132665223772080402991208683706153275812507594007077742855136134074525969775803105635842509524257626699603128979644295492124005747179069448850853389899893911907536947212881792092544967661221822694109495974446167610865921658880539793764484317124131971522520311310752325350974365611736135916513705624889891044846339537715018793821664496031088198451964135576439096949985523008742367955357335272346873570096412066161090492954027068634521269319240467646093673696467464048921992257872194889896085066616546523265516955059387400640975805113218222788171857434452143377484406104102548632477412190066799118057635136569808608101939898892321074738341964161213468168197972552410706994941791817814259048991445970764106089464681169140884651250947541386266880233301181331845702920627691950928744373487550908675864410168309089856360737283055336096159042839899561916025680972038185750679402510219829484033173737765021342596207891147679684378009094628621591034882106308849644354078077474066043201544927093957804836300685011482424013253512512438659157275957228106432679779508507477396384928686137502037558620627134157372746328510165231891657045443695839440404049762443117907334807910936783820157624694191395693781704284340233991709173879329530313786645928760247488598279808627658829727613631982254915997036321178324846599200501201176178173040760003775268071579644814962398833849362355625378564026185142325873654747086193627605629560661554393701432863373382631708760005551296977843405294488399883559024289078831976207582843611723297796308107655737290906398297751595639422863506021599048634897344251157603012100928028391544452757681022712583327072120149180351489391139880904807915071421466516953820530320512279055072782294226938387639453931297406029885759084128650622192463080457704188278032758969634414532265370689240673072798179957673869900631857597627845620435866228529875930496840154772722139967104896201947774017644483861470369749175525330312685398615730284902580289690557919628346353162102245688077063129063550309797129270613737808019487215830505233545433861952859157174441731124989655917425065926721543974715169053520267016257214347972744749368614943288135983092358270054146127567289699479945692836019152482146812361414882029449780310572510316130174684247820996621623260625792041829923080568803212867382274551370307495191656523652885026345643832550226780573733890847870136878278976536426338331377433769692368931041181499820257940931650194722452531381279211113788502300119204019474751700239113121426957116786288890060297821059649968538493648939410716366614729164451873780259253162543877468877976347119448472050628192807606526696593243427802181159976025127118822595196142675278185205362786357658761247768505266811282612065383475801028155828318100726237816469688342597893833666543863764837427081007194649450549219018830210549180640311507358398067598700582385438220476353691354334851198372976171995963125266280055904307825996562666276591649560936784529297248789336855211538609278550081386855028357909911773353683168634405149653647713880803504538544896473792532805658442993134391481271602168316787515181609468683308875186109864888868000366021233539028957128961863193538365013159984453594943129806438893728995101326444963527976316345048676922344029292199613648863732624018967557589614866605006607095586322725706279876395940586655863542955649386190779410400586771896156630838705225548329547932582364318903679656489500844936122804069906030306805592807955509380227217564525364378649606494287841834022490234785186878895824031678890956377980342825460209972290234103705234184689562050580426062447373101361388653158974301010058818892944372988025504089927630279303281339782157116257850589464632151444531917931943347938978144211338777963537628723647549362085014315509514038625640787709461416027358297140691011881470817451502306606760222854200351186317228033923529957304558983877075778654867134445045218297864063802955251774709629422193459412003165235476483289607013052188072464916764784543450424406103251251573072323704742992101870857719668789964242605735138021131219693117865895632532076715067188020196103104441390718053445887881015952868873325793243457387036003987022436242592272113336047084883361426051784161365805577476282545505128840898875337984188359038757701468196466586229308948276402357084775175288219083102444643357712743232580054046211464269647206149695365477174952683307149950993928747759759839654629095765375122210930672109843898936252196707932315980288094221442861348483907154226610682333395145400486889506166376979658196552202879560800882521261433157924193140202469705044210720635587163718572262948700284802308061936706007167422667109383796365319711893728478664030785827899445834065066339284227390066498991435810654419941363142780008382454922235421063627101520968167855808062303164403689026115699820108372856349180383972892764881033422855440852337668939973521296681016384800762929042797004982293363503672417025920930636172636405067623713398879185244192098860210330867391020287542881293157382808096873443132676286728293005265579467138151876538873502118154076108479150214887005250387566740628721353673648886941592823304288490056738487675028797630087390670341384613489466493912173847272675607567153069739151312053058981990236147905670003604008280929789311937471107603308359315985343982088403831284942676294018075555324856613732360743582824191367311976285755410076272080694000200843916408283409667132864422550450878426744401653579411728585046250825818128225512482398213413447397757217955189293235401336746538250897553038578228321038207915242024264840758665963135976227416237105616994657031280952484512616289374977666717121297935670060266066084560844420412560318392871259827489422306185594071592891269570399240058047281503506230653174365745358946000019640271879600272692364980213276636653823558615943202582023526779691858377520367081324484880028203586934096514311354988382042981733990779007948106231180346811097564264407510051620773710516779250469609427489976965073059126948644446096761102431262191286118693593246047523989718471727195804314565129623430025578356310215810758388380596251274360708514626514860840422327881014183116327868683429510405731539353919456717522180066650731296040651126423686708003515841278290576228229462323800100306419147823503021337312969851039265239585479899519252014772657253744754894264192730094156317754917580788610728186395983733601202121281497219518992564900150929319437853165769750622341494172320958256201728720674422273122379075406251306100375789238714307372773516616289229427420974941037838109535140592908135358589033700822316132466273717070946809373231487412771046951461260317866592252087224571228123232965750654181701414477019923556573870266561973026514011377364302343987558783652351352354537725972709281465779618222119361481209258266168892632004668378317913249189766127616031441911994800661705891082295412533803171670574796615134817659093536374276291299583937056254417435087585264200196810345876602856661141169320232153522098875147897414629196187884717126408244009118580140962752540992069076528318929660896743289759454423833823171069919252413817371545899300053601749335326732876928147579173745880584514257694176934205529626129025814191889092161008886470539293872974870942082822291201572633714204845366970455470840303303427681305852079047896072806027115999905250398598658424313856501756766082152691640224330044403574976952637034373831724797420171285050189539005678365921825801509826812100424832947256363080691701922989201408297096280627820028628544291017091156526721053455478534990946223882420433065945367187998570766370475367746053743193807088460047478728427173563714969664268031865549512860330708728582964981931584981066252951574860608073283128500717467311870309421183260903879040426472037644155265967653255730871699760593802564344086958815315319165350728157592757457963225361239434417101295752485240923526003772506855525398877339169296742138015556607555489591155607547018714263728124052638635502948346719639398454640783779269636152393551723140455583614839995274971731895274336572432987412854906821581498121830292244713185997465875202482615932077407754271928894420444028482721016506897742009221334915832259119870004337980147334696135332574420826332822480826497832353410768372557991873772998021137206216905632929591601585100366583013336523882683126879502584106915260662206300757228709529385099015852150572565583142853779767647065047685048320268409211469374962513424685005252187185608686110958793197151720529858359570044439552168271249265952633228121669796241160002281908867726069248646680391516490696193908194928976535408605406023409222687922369368184964635623030323648421345730960875469562681542220299338184712459504851124300155838689973151035329271187669136364032417492299682934391344448127177950610570881699772217449440956733440392277676758579114662084645577365524747679417059072867579229136822047645374844471767756592210746960032499795055086729763253850631751355607980111565686554091642080542114024078804732004400514957264214801489636756471293480594219008117686591482757017108011036500076014603807298385486023212133973628561266485091521834510843271658068777054751258161682094214636229224590513176583442550557932272597843329146762381104865715424073757521682888432438763857640884798565779599671911190587385434271991724229366784847926236411004422972237157081462652782341775215670293988048661777188737075375032117643906014079010852294233681245095048904708003597407481903581162683676568354967157397950701421122810816319497518661056667855783416348030135651524774997498215077570849184128177123353740406996006416740785864359699327690860294707714039067441805978293610060149874843474366967990424524451683868169578035168806679597972093642120398914395241681715042400488507137432568900416361467606778489822853745324099359029688094046543535052984520866988602695968929842370276438150199249894905324091784192704018474842793717533091895499367628183288172939355275400684977374051417314902969747212719417435938192888723087081744773224178630017294144698871846590803635220935624383714132567501203430705861781642229441739369092668351529883015642901710314848851677867524631092763626231301110271533059753007049665286726601665825787625118571376090134890428332145078400913061625361077021749136660956274440640074162306336634159118893686865357615685445491132507134737339532344016690432426759640023490830928187519849119223844552793984833456615593528133098645421063276198663270787090501190420768880150611271343958830896331488285818485442536601574028530109755931148421514136564901876097580333783744616899742340964756588743218950195324730161500680988977267191868049280239473898910045114240374430467438739474702280318035984592671892744238962026761153605114082481119715952155419380298987829850616584239368862680844385363246262891940009346815948062309623875133279132182752282955969607989835253164036401994422395240041818751644288741341099706977066366149685309864673087889941011300518619405185351630484844822043371813342094540658906029940687338222466912572224858347994796931967523557239988255777007413222901646989940297788642123461885559820398048769218948620263461112980223053515579691564878714455649968636433835684390800841259072153562529162907451090006895853010980385681305099880802040342751324781066659857901056980806060875848765962528628606413699044339180209780945736915293434585419927579009307329548832362172828792566309190706588499879334167390082040129090736957873713067542756222173853660249405836786889692002698254163871761188144128395804874245870334662907836213657799720767589052246987357678441145204571611235550076242786308237205717679930908344997360705475990505525084434051189141121123054695639511160096474484722600797824310884600842356449966245357817844089064529429000637863291990278248590923384104815570433782348706098089879772751723379991850075625771037955779441861109953260182471945564150124135134967575501853865510848124240761837004123000068533734873986124210738776977757764319095253256667724809239572845299785885943941416105410220973898167793778033327750006181960139222032072106551927622413916437144042170408896764420154726122419350409224983307275534948960852066070018886884533155994968868616081791362289666199972114445467611917750714493040997502322879857314381203265021660151223542137317270404020489779625097373334112261783474503535149233539014305027255235592535251621502533586229038385088491329202280613582501046137063110047062291757022381498451168552608607842131698712607489683946031336509065580942799355065794534588508836530855592353708526536701147787414089328155978250928392513856417312249176686134389271836178382239123094401684186354898350477600170958589373936089110247802136316907876786614646392545861892001846691421702569687902854486242319853345888151622849557125973112346967328207177717800506061262599771180093987418353574858320113151355560013822669483659885581016093042062192122611704001737381044840351596400140997997892794372598995119494504697467011619781963983918906028239701214712054724826724293695997669628468212877868565907559002279909734954943677921148921494756522993464377479429491507799580943507416445899950977516914372005128029777262454560528996105208412831433304632915690600230326608676087765120488338935304043970313098801597561489415837834638319190885693005547282541571101051248820443011592705693216635809402470549948419990125020311643090724539862650829784388508298025484171072284662351655776203395580709829027954899269640165656083426824618137039579490550484701819737042808820333849110696909773592732677815936406684787669058293013733251003621899873558428097093234253708473324944178943515286946771838931452076324861770771572551324524257830164443116344850659072013541111545544630627897110853436248542286730911139857764584019882397808404261336116738650015237733417200521323358457920630253209286421611921304086059182653569896379381546812264648391918508622399401462007644374309840002730817658449272502994319063847143870097820272537016382702383534841223044606085793658704863910119356801237372242433849201377986077685665158038419918590620981353414452780053333006264259846615419015969063077226458544074864068797237736855712569399028945417532285519105728724951302623807582784867125482327644097562132448829655896612244825558784436824570610562040683674318153847974431135725188446847512711311869924342599020959237926201588707579484749559499369109278783752160703671572741763947876508522986448137196386221017220690760265469893749585282642396567629678495833298206488191513615968533067519099500582916137302011811184332400743258846184464585050140870357833043650744025452128757790631162074571747461416402194131396945844317853187969422848388421928631855395245923375782177205444029285347792712902413322427117122846279792776780698146710811134929216080065940549256706622436230470252682994613490325191119820596942211419228174454579578806724673360492725869936699791440465558532804525552229064638360294856741162279210789908359165540200472472926998368847330164934277724806529066369500334808675861206502171457815954742150492959138531923509665133312494999653264944127611281601422563694952865842368663095744350563436841253896480646159481352757254324051427601055895005777507573518815724170190191972904524008464656489965666475669811605641609045382834664791675001702594349020378756517245827408546012615002968342251150570916100191934733727534658031543278521399536068594119024087164538007474118924564116986016108498134147560947436508953836290076696631909662212002148497981538502351840059918776165049450089335431076534195151495078394242207243206756469386955321169659793734417916825404631235182984479678096025643797263155369680464478246983662275201454661065394814994427698529234046341102537080364051075945071893995362718197633456378845563514544055480808778798999015182564932280548045516576127813379562781972036463571376776522913339045271174175320582152182437611127728726118162160340510169837890349199315421694692161812791738439438370956876544150516725893399905767212569962151166857042574156244122619405793852014345396251061953380900145964515139584200446420126185754333930436408378445648277927520915462451142790523070064530897469228746742552570732826578790404856268918982704936151019419588010221164740499996850270106226450069527850376736529510105277967909905185496210827691057683461624920151269142378814961694034027110721421187541456155341508826999371241490949266267510881177733260497475876892676606768862815312774256897648880014918332821665365676081531494480239844622234282644707087778575625245940855176744740575096152640739853991671899043159239230637196724931184435550851431416822156959820557564757038323761559443126493534972359194215798156622961067165524077815968537640581541485599079959571233677438278654122466472525720255388880173057568086462406726122597118603621936968407313205982006367557209751473869897592867442674332314244109281351590003108204473717166583593272502814651700338318321252843637018193567439277938046158854052486187690158253996278650902933302647384823203438755105898069255686321739212307824637809270126906278847048672681429532719075530227360511922799369519602115385243702187186636270119068877093364741127392263217330841737999400306197919685710885036185237203908030216064469310823958191104275879146401354728654105365905753131586708056028187645576962618053421948405117068501664579809403638605898170237657971617577427665813779712198136938997390118798011789735530413443578887360735274028257221825977792960762063343511647265893252774871953416033919840812972407853668882572120790969592063929793309158501452155923706541809721111392814700689604464825138292660101397731262646156120233692603286438826037052299341984257688718899810129174800028999746996616218819416196721632993639016465117846511618213124932009373189556238418429669705795055597880432594191438350602124465109740535412700801387887116965886067105065702916347262964287242450099203753306990043674170947348511181296097053610849992746656921652469637658121739286552860065228971770646502643914121120589164357985380934102223342147803738625770540241779694828228899093249558630346296451347175453831382554188472704660882143456411399938733946391850309726849461432414687570615876180310403626398662051153468905533826136584336042699709654824090178896057117256617844092753290719929128130328970318596366064839642325102925647301795721823977216774080859306515497499818832910411261381903244570025665034840967233704171657571740877846035475618116210424147771417272158858910477443698265605446397309609687885489018178841151921533692508258252787792709394039662279958734660656604263803725013793767637073969666585979641149007707342899238074007103458054628271200579941076730439553418154237996391634651465024415469030138395369140082274928928273636600659121148616539413119781916088048025329287003515874149452534030345683889482841890588360015347763979117270035952242332203742998854493105732608457922684333678930331250803512767459132642176982428583675766051098514466013376115433292105110808825513234911260812837208837597926195348431873119642526210314721748017662238818386237825151779178843314975882998573252231479433186777939143540785816741267588559408943012473868850009413703222571241027066325385052063951208343522434672198260545735972024959508304890148770424694313502701332030537158894558824142371098835521014190057353657969780213486536731776502832294342727465903473164213054784756951592210675440687587340110005661645899755947696022944129890821310531770210659478875926641684604923376892201912343910375687899382664445590718038675096615464678484351054866077456032983386152758001955363401074017636442261618320161357202854661266561013437949849218271772143239187945712953949599067751649189609034988040272870897043238208280806809635175209160722983025872104057348146341656114612223979907041022580194518248058721093923326939798657635190081707269130433856766022140576625628342216166952847500362625621899322189482597372070028530235569657457368819043571915067320465328316074869076318566911726032867325063640834230510089211492641750197316164579241434786614315880946121075404709648018411285467116154720936503498198362919569402245728562231395849651997179223592824293732237594554243462851903030294831754475408093059809385413085861734274006247830151532928793839743960316605849145153352769999894130187711385145260508165553366872228477681163142532523174852340377707922974504411834779491600497592202312496268516890823129024421192177807178555737538290190304251824931588086130558770381265684065259808030208666987661026985482566347213429577265145785779181813196307486262611557052970058202029885114733413089430385052543308998269500478956841475409556572080862225442057854553052652236428843261114725939198451609897244030473890783076437391378842580002318054946497416584738761209132200027957374263549138368355562537938728884343498850819346081291852331022607268959508079116183472560998513107120632942435759527153371247558381843066960241623757011755419186537919502173159580052493669707946174671334172843513659561505550557958690619567116706173452488581394929974614131690430176356936100158811505936919041758600205070640079018987717869675006618733702586043714776515626514106811211153201577994985312401548458252710372708256250008675592350725692046477497036589600520387482057965662883308154778849084770421499095088643343962768788393201234863120549454493524304837656719639334199919826396304493607653921236934864989440827215420462458913869505910741759911616415353389211295578040952662671219461893880323938581630824876304894157412590289165901751392574222203237363414976944464525513152983518388916817921636730509502648518366530276750649890904547134560687526653874224397513185299132873650508598032273016118054090070691456413449295471324354942061861853238668332273289693581471344920534245360548834228697619495888296083058930591342652049382489379783430127749430008478433028663266569797237444913242238234028712620312554691301930620652618940306528329322484877978940190056832533562290396401163281416064818642789196044593143542411259163616924806783273196232661763079177825348575145287743691052057963870639812858482061394836220970867359916578591179058193877814178880083982212138984149972424241995106797280591947846915546059970828580117115089098785463935039698358387912601241670666790801931534542449444344845562425275555999389272456900169163938437532446032263924738125931971780362964546800151061601577423561078260473821476712705377849091343867470328865364799856219483288347606529967644956073463663282925397154029501097928146675931545151340199417550207404700223080886295505651777727228632545954557950269532294329181518019455974431277462979597035682419846832525067606954614405650298822128789786811561639152586039786825563515007841939258567381973912374622971585378831389044527843884193871460674573056159277883321364197435094677574077160437322270765761263195575888272591229341212924224650120853459262026940583813228960058736240097710024162347634075358404514358509024520428527648285816546322699291798414033473320881873548953477468758991752781158179921334456506249535170436530675505285495444938577453890455090734990495450313915587100891772876593844102791223643428845510765240165800486571447483137261180921366417729550877804195714418883170314446046656154520772195802611497006159402740441165221231227411754881596730066905948764272224540010392071834188137592611910534469159651845830498810935408419978203705568930778670594565400375483463762384132198595987196093353360358963935428198100424660472308982137365709471633902153863428787878796672830033220247241406474415040771520818970951813332662920529657124224602942580802576957991266626148672813973831593081667046058445424230618645252667555253446784560598178349622520041065383103998478365597327416424236944694796885519237985042542847622209807454025940721627831173800078456209279549431367610409420927909428917695485211684973819381462290608406234559185235132073309203119623205527638033553100570453917680056383120292281150497415703409911350950139317149423728009916614837146992604703761438854903970043384336004760150428140596659837608985253034054279215048882351834416367331896018041389475803778143124663390083887178825867882433707392291792142897885814250888456916288650145968426556984958291546833347414881588920667964541411353117877787358630810354657699450249491909120913138063031166566958752246893238832444198317317905583644416873645506070717400108563214596401670736433487178046711102913740094319690264383702943752111380344363506735821624329824412248521142249395645409115613558100242280323607856448028480909923160240957460841964564257966903559276459015299951672388468216274934112216819011342039335238160657610670575689762274939801322120184116355966222723345496433515077073985821049158942101900248023412419672884063629140561142458666886366577847141027053209456763937199397093058321818113503245820370371592508847230375746463683773049293004696341492149450592102978130416358702899860169894533826492954029560845641961562471281497262970239945486972699831768509709005745878816304521402997373628607647020977032592754296718099106067301695770704465665334333320145801055980195775922642056191068816221650056796792118019007151898706107572065028504135173493647439848518956458602146546777628277199189663998924433897351737008350265861220618100708116622948935785526421230710330289426190942747781497328998121841226289490796700512800555123855455712898723174427836464964343817930313967493017263730052374110046800569464510998750241086053578019132182274311426292072469735308899913089920356656767704708339561268270571803077254709472629690265836727151541204456621693153033832465792414054033439075918383911988599316303650504597830516473012556859664492100281410699059833829066712998721206509937643050885845701423017747116650234077940670603774686966076122738529860550319688173157703844002962466640175669003155758541497262751227152666322955285894723426639959183902175959294225213069552880254801915674571477315741688039160244379615930784081181333575400504602297837491250493974203127491685971558646313048527862298842392827231956221904784535751919381069569492177569160875236380104609242206725728792941634582655825049124737052724072038440781794268519605596915486354650007637358031639168294127864181308305472197904548074772888435411137749154818065730044487128252841031724699178150111329576254810888648775043332063819170781688625724936866539515226193176950307723571647407485946056076478429476028519488755791593494023936868025121327317090794716737215658379495979218904235464853218873274665045778222111165508824009129838388960686878305925438503250682528901262091479940574209624971659416595556730752756242930954183396836058924750757092114822467977794914588931821353423649445365162573760405312804915868257244458706207300473498211104626314503032257911061633308867270139967634606306005332615631048914286047967011300747048991041278477771444299019002084384512584166460064945918526968079403192565200744352693244531250447462690552319852514556607702677296007285219571707699893102685017318726134139611037196133911856123111314260762481625688872165049429436987412309332217573479547356520568025419078639269340216032266537008985401981409769197321781609746033202088746352910482088477870186827468932297441327349778036307083783412617352641076653650286088631504261646633900512668118871460643660468647211014856505604347159786565818774364339727579695131153369442401609618246622766541120644094436430797237306802249981399763989206396545179082278886971179205633244721886176442838664021241961436122372094572118030644169871777693516519074572958395458501106352431942060723718644535142271759166424296875271656305234660271344523294428010718122166068341480644191771719878022090659126517203875706946736434479845468672583009996835783364056595429916855694673138047672359796209627818263612653160702669633377146608953506073849583005645655549590533305002602217764757177741029994687478432822614120526990659117451615474820057057052453872716783770632335133427945786550174057301211933908044660788247143197436309770936849689919460053030380229572715301469680331834383080267433803236846068704757031692391535457810303641570767759499852399754873705989684261095626588158881552635163297516887306416582822630120710190128742983416917554583013716595027495278305247455744091398416580806596340863014317237270250255984168703474084840113020839183739715604504362751246290673981671950043729612339089231678131681578454522599793637902768213667556994357223674970106610178261489843270086671119539813222196192894848462129036569893300348687160832662083655294837500644563797604118117562789619613229714371780233650814489482738840856430133100671653623493377959443428738801090544647783121408290090168461391014039040958259882805772883086924797022156604614280656312489533231504287567889027401679211129773702880136164271471998575407971242648808238201995439625620042386477355662096312039824664208225493786593230926787834520623549381566985417842156161698638911456308609096353748545977785817923763387381555735181069807795808246944830296920071971760520888090296626902190186678376283002119462935338263470864578528808929039523651553189178650994599503417363923826812444352586424878119977948539318259118763043357560036639746578514507225442684899475770984070132572357343160714365050185931077948489356092411816024337855698638996886059231997411453981120551406939224476109752410990068031369380222361764577624563448165111294818028074254578118876802740344723729810598234400794806477340504184885879585651813032594825435241737911180587192915371769905076134336063843092230187729629907943113332756916155561944867793110632945809522495674675141136736408897544600406932619552455898665975782007076223996873388560106028236185872257125648442565764163484668893673625635624897263305912008319520024747121432759939426232438535660311491218591016542839068995775613612219161773329753379693712895974510001209999915222835753956365224861621923717193465172682545029027495916972807933681473619080864003085855182405528492179773326171748547401563505361768614063844313095649961656337520590594178957984804453470390972462035266558127220967330034766023492794106433511500000321532316143322458142396677932304057061525674620789875407237532548176874737633729479958418828363711825650495292409436513225299130120977957705549814000570455398652349357567511874363154752662849915711614825689319616680450089450014044657738807331621305211822465434892097850329020042999759799383861471731515243680584807334462139049134900460283114540266405575421294089664242816957310908315702055711551710475975324012128769805706114536273719886560261219618723624654525017795883606216799458590281237315953225293701708343297110710537518042267388271994464930052312805794112924915356033946166379740545384102917439060719284654705432003116326499970650129805119254926602568438201044687440259149924749106943418774613073926015603058890279910368739281655694423587579254323435286344107531972025688166270651596820341664682655713113144733145420229541169023785812808423249505400532969281206364497737613385335789090581922285385618779708586588669918603384129362031714283103742147375814840169426045665760267444659647510785867915987183858941523600693633352001196850158828551386825093566165991358075418607877144384210877540830588744124586745266697499902678770208764091541772643782852069523130393640322648269110839769800183849283443842174103610481906079285713671421647804803638062068692288552476735800564623481508335378738474534768812865529484560632842853989163764776599541312823281211154438464912616038720662505457089438997646358737818797066079214640740270313917419653436771063194503764157885027391403992586529961647770015430268435236147084702144371581058969727342485064089813585553168281249983514287766586385453838713826838816739600805338085138282465974616495599993500860742758917305879469216830672952910914128657332894788586654748879194117906648949164605252030687310255577312202681364141602620679001481548263261372905833048061052913270476145628714752135234791720407911790976133127012666926996499521171348620299064794433043192892269917196802517617691718911393436340024883311744776358155444948993130868370121671682487605764980831878762961054995597283505236799375937210662127894298842352379310014924723206856520204718803002534548105453642124496509149317110542399365567881333511348775980863606778404862113618455380379645584831552080553022523371332383178408129396130912720374939394639500382441008545395549787238053140338782884914638045773046688894083315137379757848571987958516053177912736107284836334150835852832346118598844524967201224934969184592817463887089260217649395356779153678515621983595008391317414961298978554480966393532589769884855351550360926299579132757707506706250957571703243456437463214444391115113457825718620939577470531389441693429225412699207497349162387310728841925880630273980619882723586526591525842404990208661313987284940656674511484485904993328564014468506648261922512044648605014050924220144035323672504505856607655696146457774076774167762352427050825914692644903257010787426786149656424845476110842710159377870425734344759887571194032868170217781680494329337712070664404194564499447349412413027665545911331968794944213508031729954295373354993292838416512192205642973132362752268625147029488503832415797334234881729697549935777417945736419245259660344968274763758135064131359501794107295628728928432366544617962159300536700463866583036265351432669086207064268004632039729417828748414848955734766164537260033060087538275510169187232125582022464703963062333102123193580307549039626608835979628565615336218536273519594564346785341371144602267502620431738483292341857491315624999823045463190828726945500340449968941869344521273762815415462762837173134977071960138741468594066531188481412600367947275660375163143522221269892995331202020846762778795229972489861037895581633588749348874670834261551931046514935725797320049837800130601899083284887186376866049031508189615558708027671799555406159615532176405324736293516652106964598017743332103111557467561295786778650766573479612320883458137888551352319630358839084948017250679232088226305860070250086939876589329368114633880061248392728115141987461131531876365678202513643926255852653433793102995520935786041208111902400228777542521103226974508926379969153258038292312716147418338734661719607207080754958028395431452098424852099674768318336238277971864203315468480244242292705977355317755921627347829978647356919819540978290081763205661276250840865901389878112383690529254035407869920686073123950504924258892677651882003901283712374146977284269393005493268058977541968296001283909538459361450493367921135419887266587006234266914787866157569333649767450503943725062515521866198480260390695025629251608536943806369618552006401293804061204244563813246327192881599500579814566099868267594351361133776498971675991466887195572440817855863211474251748282498768619397181439268754928515942873954101496416866702217312992538519165655403849159714332098338586383890613836748459949922537471708746351728049316306218314746351482241739201190699823519895308719473913490737321391871674309335271873168636635917208272618912174073619704668403422022712211400032121160311563614975468763275063254344356421981375981296121938202107056662245631161365252181799716624206585038650721366264216473259700701200248128681452992750483086875359406980280256668644850279585893404363692433432304932363555613862602943504162991258604458839160058588533304824426517258870582906018658847618708089874388972751235213481554712277390396005650345521458286793162100771466174311285275556308229781391790556423100326261172233069899578317852008388479470227545256444150725600081433072574794670094589727281295136650788777205461568123656653179596074021924573246813983028338929087033096140098191762879178850781628307981070041412520721505982714129870896626172697506583794345072900116063390828075243058165560177530782988424102055421057263276250342466076427594426385024999645675597726301425210448682906963515447078919985328574344406130405241937075316600516505224170646188713512712701576107467408370812190857197141466756747726347408770815374813887545718615412167544275460523504571875370296181947442141804376925851174902369273721231396036263681260278667821586897461431528777896224530819475571817705083970177917500046735967116191644381632274943248296255631367573479143245448562570561497641461265388047494525156604317496659429681890810038382067562012493486685008096196289866430086249301684832218578409234937380898311662448943131068495098946195279210617895395145131031463803269060709138836051338613084971747201847043515592210229093307567622147701237094289738562317267721629475974957573607234143230310541764541147879551901257177755239743724387160388167593235608502707211931380867899741107155727890422514964231860738786636408518685342697689495614379639855068134354167627761939911688685110659158218384623957711632588287389581164898499438132851378788559772737504546893337168085026398335752139205061719282434712319108131233506875679325920040789922147287610270665064900923389221436224868559432711707152044940881196688754811944107672760703163960714405113358764034066879415147947649535240217367398347441163309295305729358045507683557064112171218913756252927024693668459884170305189452968077082788534938123616481591261708779035999995816443730814747518588047780510453694167006136171723242665941351892718897101271824657855463755898190677140517990514425494668658182817869694843144389783271235748468588613075916373868521480765651469303781802805413633128100820116332336035076977658169853018805693153945010372644457662735069906163918678013521868858260779399994416886196495379573186991816315070236668525324677170457798607232580813587181793494475300668425198326915620348130913944614320203838453660844353895195150541684132478049635204126716468732038146507532191293421747670601595405371476882805542664425486920378101742625067211233134843201131779792709825583466251932677987882487356361113263843892059476030461953016077229641904210243108278036754581441554296170712541351594869879262319884217481687126145149889293732397503119853056165167638131627074432430526566520224664858987853581008393842250943278233260162490707423782316585198721662177578192559800331810117300927206594845697430833997711145065448301635704652117821916879504997628379701967247414135623409660646803108321355503529801307110924108935896700695469883277011647518413174242980683248248729726322831285833538605790612550242174075231408512530495887089699456884170064692290525684777456434068840580560188679331841163827513061210624606154313329126045614912049051927725773913292405627580913387864719317468477243960344329622995486985518785801140326696252695330481311312192618164640330404565700759768691570621068002253396563903223669344749715061048642689900345323136593352494341516143542773369782389904648836446665626717445156921764550326421199302659737747066031046927988349417768494740761746623090896936047962776311364098048463401515188597749850455092046063751575957693438023663121679947095981369706975621802408944706996392748262746132361498088440387324391051007899852454695104466117168151284578776790512266742266749950263037121601498279813696575847061966637039860163497811675525781392935145071206227293941099566180089918707448329204555404604006479283476849551111700799803468615367067485271833056483004363724833832328782482095053412403251395619878087030650277076632564616038447813302202349524836619052184074878722821346017222565537388415756844510449726206918760063215757790533764111702090400469357188559758245902300250128187078387034047061002198608414740625825858885786387888863407653805824967367977217395870968635439891040076657168749937599062776145062996808778563566853971274910144175759460749036546597455822673538080023797236625353728866779237978683924738206901724434949731937200525001283916444378589326629689707172887538149948156805880491771727282617671045793289866969888166963207630411929479206176684394023433576845496810416120368660754293119448011004470648962923001662137164565960420560062795208327633881475693837539982475851818140169125742436358653056385028309483575765088914983862064770380476593885025667731194522955920608292071707031817497565087478723987155723627467461564329767009778958588054756887367053417105414982030751239235878275558102327815443483477573421156293064292889446053232218147767024581660816312310916922114729801421005716568812373075069652088529265374763314207274566112009041625693592873486466482931918391455253453400083430706366216019906271165702234151311548755414003150921605023612705738572440710851573365410435711745310015612840975642251716527656313030108923635054012179672121155081973515377889889643889892935636877923443240413029512412988429214725681651231927136786132708660332879131229422356005575286642829136655496460372207168796070639405651062795469343395052687364584506450258500958136105040577025378782019386147211980182584467586947099383123134846070343625622237275304832346549459159422550197147227548785063089328597031760967950855618138284238430681138926782300044829168086426176642431254719251095612751550278549441980567731976761275878648008255248812260426840153142996498592783926304864408240526198197032467446238192531707393378448930776697599605192300223441405558847357770464610221623242420138564784941860800069114993652517478940938693702156606708664242258980973194127772945398957177039888768719700649348834860964402405987024737666187633262094902687276053228227647661304022823887902880432930675178635474788293697405808308099880996836778788975246526243486265456060167453041084102844530618095190007945355295833286006635132035134278752649265282090190276948802501969004805107477844470984808375800209755689963795058825529132767967834731144666067068499123133146003121886084437975910181150103702268108875771340997294316526219404870469215401537497150684406190442783812744671275547296746418577798777893416741572351942595409568918622326332030706548980648429665013497354205571637746611891448985532114084791288244776849096489354484953829536086232433807065145840729947271925077748573797179620330491179529185460297784050755903382892488983267825387120187934974853246460782770128935292410542286479936021479788751770264537388994756318564310232916851464657429564133061848943061769297884976006105774173419863776884096461626992760711772260656322645989124125715906058590592967365295049723353448110279443877605096864211801844323654560878228277901367034717156345083163123756352985699495823042688107747310973829985802993661641997979711160731564647410426616060777744968345936379250120058434277372309423609249162405774520443813861536106851285940674266878149681175122261873996789090649279107695044354349126074065394148175271648705826553411859396851911211583271175356302522045740988061019257005200296744824142340586280387156967947554140315580882532631267193561876702807112100453086007966302270866017989921462522708542129013469924720762810242685425820918847796358549614052102536298501120068903059207605916432879095773203307740490383055719848944789774877978667925453215690981672977699998462681346192114245002519338031332387550421384893832009760462780643866577560448113061575792017273219954572082321181559013987232207851313543399001715096649618162310646568622442594645505232947811222928668594083953357434829768321749978833131922520595490085407074776684118840197356914546206980697488512159222609196160808463929485254376832232815157035380602535743790526601006847289432103690685833585742756887500585593888753542047774429974566107622213652882004266840931897517828596249269474472025198911927237092512784575105518110715678423183082605876011099470800789108418077727513709926819986416211649626975104532128513122362049857048597057139191799607184141247758862579332928179275310853384105882024188261090004123865597443502852527609980570262763726272030225326598699349199057967852624192987763237067543400594879312324387770709024484665355744586361146146139573656282027337171033555053058654682220604579114543096190153742853232450870707616571202550716717728985882137012214880043311029733539548096016094648556107310889046933157495508238443607003486998156110941106898371462725881664521696322105601334370922728496248575361638624632084401611979269488674448886368939051261374274344191438351674040566718679300512748441337563406320838332127452044392735070602692913167331646776068781241892429451773801974050038089615669326479002119333218120557974273443939431996105966751233141546424897692079839626846651642391692586208107030011527759868232344449872906293077754544636716923933700020688547728703916774898118425305410932118062389551890290085926112657012142353910283671022062906521817805054543634795984989128270097455234458674983077293785199807482122876573337907741863043678442410433470308303490541300189199865789858222423704084638647966890216245625653590016157804759540963146992784330205597380994943645412608099397538429015555101785637815949316877842614057537550910989647712187462801657977742334984305714096689075169803732407776333445072122928443677351575967247426983604108402299172594473987173890167318623681141810142620541055586987603037831347749365696279148348890026593909710368980247521044324192948981121376380150232464786824524590016937396678774643574651221361519531720458109360903290937762689524690886037198709683369471936611636203602206231031305485543409444695338521108693077461706311980088141663016265899039171098721809733162399006028899727884355652448857055790308928897485467900661386317267517917031311256118397014480857767302318956247413440542269023991540298503809936980454566110316411593040948090022942770809564771788005045494468030028926021770569095746125663301817899812833274482074118280313934285121513374384633546114679714396536987709597042767610525239938679441510213349982507587962708726150056486914593242747293163111670676394117610585218693049049380696471546328821738552061957526719864751649087050182183229117529310238419037355330758972239599703257683696713637331211876533860817836263562626521432964439947837814843866259087112385292658814354222999853427374521085431737488753066015582026694554413348619093850205337012908966947151312296916350870694303188953641891353624234481609658591912323865242747658902687149517074720014526685858637380929859333158666611553539668285940640668774845312005131293798156722339079910321335562413149186906922373334848424968344561487401382129223767223064477824286334199766533617609490256158358793282873971158858148578437429332429326050747601193887128849826241683071554995914628978087003854044084914352154812555463952202271603926332410700342035580027061321249504721643116528031197235066767612892224251905160490286462014787931855721333518013097972382262437498087611648209317216893283272277117812944653838405814598336665239490201026006130577794237319348400618222655640584734655366595723903739554111751753673360448413728260034466755643024632090659108723391903930656639773534095037966000867638265286284936799883631941714805687322103823484046986821665662111843962583821559094553492054170702913462342303560478911921904536916324935932007829512963728505762743699149554807714363135694722271693746266533784051534986592305573712509779851126394522058500227529625341736036866862601758251192339224775956491278691121808892835709500086145982179402804808872760438352197557371569264546735300710074938790919529510939802338077823497806226072406765771605265449872894958362451395629376152823717908885948573362801484570066705289186176125565530528387834120402985112456610289285235334274052096957776761325891436038803299426869770636176490948896387140480789530206462250201220304218147740226860562244845817360619520998080908201758112973378835847999509131326274900271385326962100344642027942459246623182433939022223348800806424428280617381943663954414413584075409866561024198745888266181197417246421990563131919889974671812025505474163881167970974016954338742119646201210154306244419329542579413136782216349306388214329812453419756955361937701010327080350770837751654734884322533827337669012248331518164129390557808560980230901543399546214816790781943142741455090243427802318015955293282407796628032861258235910593542779420163984509639382341474163242740012573078765879116138478787269641622079481823974877526894856572817471160918421601020019074838087614551673975878495312858395437792902857555957458158804024719502388583342170359783422407112010933563421260589536837888588406049693080193075412723084643284452717506890367892209734207791520982537054851766050310505980166003879142587577199581312429942995004313409667526840499184153424747896585150870368121262118798477735404551053906134731054841875452881422752528941342352532118190761674228333369050230828394029859559677177772829423374362778010446828502235511904230800479035867109289840213437961291932391053641817324179270592572692900662026697049529815557265274234420844517061574680274079607843468372309868485131941134947049324426158589896277205786367170465247764314362729150445658088829532234310099750906947409368521438085534361331573524048119557337419028982019879807360435831725936132268953089982523128300859508010405424050054110705651620701787587505075474945011608674081554805702964092569754831697081158390665843454745125311860760532184227860250129477948537310218522516669105130726395344594568510808154751557111446063166731816228512861987427694721673923154107809047012967520611711064793564130471550801832047330541057436509990063333221087328579417643442131126073197402859922521507840461372228951265396865546667885754560266125378794206965927592793719751923602429212954367051213193234886076800251867371774978695630350583205507072136508713029198562874458641644295772852209197959193171027833453323208736498377520593665753648957573939188460020862259052195630907941985463533010128040420391116077480562420309362028835915285294151339758540107263701135127900213918955019519562375397915481930096928351488430356113398027182652866878269996905479379578431683927704628211537367836764342061448431516557657348189876895213546935687096714726427771248852933898067060405377419816577146878299584709581036855783401011259776089280528596794990418117781144808127229157735326433809369614287468938570608060212588317659246476800521658791554369163724548677715872504617548087297573817301956206978567211488747533182157838901858004540516066781542139922070354449627870565101940980254654712726966186714768586364844199356858880407894472855427061704267459440241285899051770042648681144130503935666543634526833951327334993947070061531362806008344419711056996100291415286482787667298656925064996060447150977493934254605508655571973674141270996507152394105734039968950656378175225032062182871715556478014204606799723407143858633666665384636505198291689180311606656893010275584514137122859390363245086890102392949988282081580972227647016535150871468445533693085046568078164440511092972274319705441417215360959949968685850585953603876867647802508221045034987805696819646836758383214711037727929819378522418844420586598170304579695098866444775821915949943995844676642500075590053670005237468376536987082598102575220318618502100522842771157437764143197687834174010840991033831943549858093841205423679576548189429349151352077890189020529823394592117672886628941308494624988196795630395036277597933224059971783092542015167816439376780932505050090472641076416701252907067121036145607073975249374394676359966165208004935880045553715316972352957992192116558065201990198718012274438984585410190006637342659116869212309848055220122884381287106964364183604296643881386739045016184135811545776176215740173579895443499332045326700578704119003494241530801269348711701572381532286961674399231710782643247009442662364881134660910004849590072727215056395984632831728884276239989149830752874888036195961675331055686602662647935743993091315158659290527693614264213036129627337817797176074889481381597898152908244645378163473257497048289066973814745940349783115846440239144271253122947322765198283073075400955904909868916057876205027890587887755184394834864453130156930114692341615642666601526643911343462278891900044305858769991454191853931255009627526571531114907599904178539688779236635004281988910156234875120023743153379102160643832231454492453983618823466224096790004502088681832036735616620006448868040155931931346462917705942034716007031179350132098200288868786562579175465655222206674472896265885906271174892441392874850414712361909114290641098064245557899439184049258045777241959972170308881867109552006544624323678718629629879291881734490743037461080122771962909330447649501552378072489263610581090441314413393167292062572920527273013573627803464182671923695264312503314747953277327331179862530513987786275019928842659545954462430967927587278263435956490451454879756353798284305118381745241347579286749319092239182534000805706374590097841249581666665871731708506538315142149042856944708919216198658137424836390692439295721097284794146567256562153830963217536052927368123478735107961192555730277201904833908790373543047206592049669439441675591397974752348362290940105444792393300986294693078746432823498593751318599024098918507898003719113920643009880488014644474396894348660372515171434563436038872281869884509891114059283047323530283881815189584366083311124497372630113196551070255833317569769685878117024404436494223231578628386606059046706695795828143256212308459695792581393293980227950276227954673536367380486282007922729986866849365358084546538759072565397295603829836744034659463665478278257823537128206018709689650590472039824094757738729199547383326059352320809717287597801083918005732958520810879798327340889588646926948239221518587575459865004246999246217087020485193832281204820000870834478837579040895058816300293446439238286670823437322610671462544772361900306189702220096333477655495143985219502835908706933075586574809254370699124157658343087470572428798477067095496047556927410468846507918464280893020416810648216526801125296967926753554130018838459645682228614293321377936512277599736908656355379755798158258778491205130158659830974787948078327985787626392282244494873193485403636223645469703708938533989919753988542231436562241937655090840693984932622190476985273987023068714176273581632300222374303893283943134642063446134993967582914317935825473913320396251841142245132409719253755230746438886408854641021827196057410322747168137086465131951865770249818017055620045888983906457096997453427902850933069524621057454053960626326556877091751944103864287324171174876410176351202994524148034898316088839730962712452926277762271583906873504408360622994013816099910669959422774115223220787225318690980728882796541114967173994199747946503251459051035208543845968741146853776334448801754246726847641036368103202249668372060835362303136551960930765188984420734188410194231530087153203801414036407975291452102149261483108162830195291822396047718867333905278111011397918960499307935338291642338027258033652368175036016128401460267508963167739907417136237914754633976763398247685115153878825767278794770589841905662103239868189863884576114768968814000151294117337707608132250701577658249647536977439424201718969077255030292648382960552934899626748668308994379272511443209374017873536295151605770825849327580294958004271761686920366270796980731249569779421167525273854373577633841969994105813857482463451362915150810599689444980279328586420083483424200862304919779746764258265450928951343108651951753588778722674602359992993338681087677305015153289584077604978289081949614895519433570990551161896097183964218161166163624806852218526679595466813786026200875455726032572375072428047549170494551190401512551047457496305673411696552638143293520754148145637161935582584047518263412425136119289806401737082512654859705289821511483376073229726449315615179521595508539875622582349198618818462248913354807340291479942185429185791969879438264423849128144345133783780852174650982034625568583286031924405850430624596593805978498574800901477098535804112322261148676482936405768448049064663514059824858590055033865600204037678556179150136366603925518783024533012630328172058356408319453454551405018902485541516995787212910651909844955418647511302898379683457028034254338309929583610936538981484402555749552527927598049055507091117799543409834224241577231136362051335195817641807143748611577178273213058000808188182890543149688574407478196826983621843543206690455802108676759428574623152635683792755524128582859368700267675400994258255460165171262363938223403018070266809399799860334754521748487953457708180590409081639319675021251494115257435156740891330465349058999000362493878019143619751486423522733273155824444914011646354617583668483801382995340765589106020457637078584040728015744060295233302148873367869298435739904258417165039647533966409401785735237623157724291269700059059988058576253147769523622119915940238455655591837601328424048119355210935048135536171472213538009635893913320391937144844447121803587780397497592557262471814512755525448903227410066256361516085728565767666445494333105838607467107581001464442761766618906829917562797231050984617073377408493477581368912194898274242045022973884009568366657887611864530668624927409203575638261346854033802194111404606961985836386934954027239648159600169634834942797579682619186579131295240879210130112452396865091016200349449040904410787450717741055041186823158040016473122323794157434315055042003225664725294699693994159934835535676734969072202501801321876452357660825192559877956382782214853452992347931835528262666241705212730609501158032796561908810562738218503677567275844768471750369105812670272834330753305186844374049839878154173970884596393762839188102545488250213598918060192672668469296247416602841668161664066660620621840982054305692162230072801413114154337490894735450573620714813637423067987622666469998503083442120638762095949452978594901730524029645175415673165378259976217441239065967949621590772226260698012406769718462063260694283298416323494956660904156126288884226527672305252853930966362626648977633778624006735650674478927954929896912517813761700572808124639938217049741941647072172991499251862526379676440336983346872122042298003438199341885052076654381782851726853330074251964010207872330796833676268044047942582317865445588729474991394682405423686750114385191124609220451354267909041147581852163691177016006086872013153590193498373566212207145411387378842238182143838326459966066395601432997173301914014715113028427971599320570032580675121893407426714902291531279791487164546200016922225880601999557624823302846839200317756432333303380927272430049686266831507134651505449665221485197758428530787427605084854572554466603388437335451359798617276476893593707027482985957646945274848949713240928978831315803009354759493051204597236368443892504791511302697980140763594800580250159783191701910513797943713378012705817223284830823904963403840495776331947612684890464551782078049952845579872210248931191341068254591295977780668906303943599060774957955982755108048265306447998826114434270104139770720134357872645004632580090096662977863038953664207804142291886770495881385146452571502747140923144000214806586959568223571896472487835438906261189843638055389331160676136620879043566097727002201918458288286090357766918644766715557309752435058652624272176588850243782633003529559607483423080582962082352556460848251532048335884937112200226146209146547863619817862401991424027319797161186599207745943144922582077717743771873770274090160299077262207033665322578726926720562247096235976152083962109880643785789093520570183237859229337253769823645556184006439043068273621107286132879208469624328838858376856880697959192404523338486604861005291888388996239082998808933617685130407769357646315748181671913884533552692949033755941974880982449266190639881635481395669633590737782284958592238838415430589581253738378236935085828948100607305852842747605106321241114518170844436407590212445309599595406124315251160927466442591972798605346238020227830077313391331924112670748650729139577530873197822046818664707586054385465759911244927904290325111166691265015915921416699857486004423035887194943690167939941225502199256437889810887768852889892023959604245146885244574491574721043285449053396960297575520759385202811874473018417553418936761461789641399842124186221226709475428242273869298446706518929543518456978988104081021527673563291708309869523422554900660252733730906869774508554795434203528032107622383126684549257056670101149682027225793920384872105831256314267854962860370247862577124070765662412612557842670899675752625287634524168171169280899362530526814069844506281263916007400322587303909169220446456849826312615220388423722024915553124758162335061215875516707987184853926170433541611886077726277443241926315467038914661018426439940546652695894268813812690157730283812136750028386585193228787539633810214440768670609882313295736301037620392339072220570492594895793524943657061969271773262865461619906239697547970772795080012347558184171094695952153086957759349462264052375587458823497619262771116700363357507833766090092717199198150863090197232291079580010736819352857946457348686784796198930142387023733009485286269403426257869296340477616798647048362088371961818485060609382541230608823166503696603368333302181944039142939678763262515773696762756113301918782846741669848279020889946296670592045487993248247541272266161753778692025428083301976374234676413730805657349182528718814971009845687522251850828377890063702536244281355155320891646463117959596757423847625410277398898280428008223325547628951088621421338428131193923436930801271408326785997388974133938745682205636825928422614545786657412608241407377791714099676305835497923304865895446063551558783558659899115224535482099118679825689225987972531748073810687512763069729490042217014698769978679411191649439506886077746836346693897973921425528139005077833752881748855330673487062368796630592520669072629114081983639604119669132753234277638164277015154687673764842983611182738988719866417084645783841717423051323887658546048826233348249317796889940888156659158525169373171110523068583462214797567747694927692027706279195099228452022035699600030865853442606098659034162738158397419456172818599737367120042393552623322996393002151903566936652951785381297204753757472304058259053423287410828136176563093429063039106344841443083650903183652582621656056720095657083378867107208459926828694127702268337583330086493821486611796763930644744973068103078529500226852626417361103478887286304778619899320426977369419268310921456437312337039757029056429711019678843954924565796477753342962503652867195710065571351038667008211429808843943709032638620566494604244716291961810603312905080217626262852885643860303331663142505701829129284031421004658087513530558321004557346905164614129968099638447272423074538072036644510498068042835885497835532721980564181712968413211590182651575025739335208095296152710751147641796074363533358976716051455783899732334530131546033457176838924557640720966692520675874157889077577001897281836505748281519242621596127920058219123433722380128252369505107881219501555106947361120251989395424265218191048053686103870879088144576356836420154097933337762344289981706441523763393226182600897423969464104416168824791771673656593967964338066753706030078538824885098652272140025169115604111282611183142161967584420767460976748652897784505365334172245375057876304138925903524359394834723876427326450585980225146738760540653587114291967238996282676902070732473489256282682651755634574121708177206903312088246263262855584331402231778341527097389446327164208365509884502394312955867125713576981201937096235509061021021351419485722996742722959143539997473974695416085476475904319612584050194071714617949558613815389613371025270020099630264908136592295744449988058821354936135315730756657395014264067936887906152637792562463823146126793829104779298820987263707997145175598411528994328710577298528915685284972757352030109406014195442754679071575039851285050344801401949780364844221755773696132535854774673888132863203538254813466544543362622003537199215644460747216505235192425102319921686922924100753478085769751590721115630306912034372552606680826734823189205361359862218271109641422111691997580549534552020213032620167544827734593419164719444161686174590365035358349409315587125497874159879753699116684326162967388693397974075457884007740924892361132251894824426864999535601073962198923497397357618613976940096016272794184936230502176978570124277738069091677025425365926875932217855905637611177254178133391683934017260700588508086178030172533868047530203119385469648227261356603544734944857442466541340532583705834187043496101292154669333622441615821639636685555519164700870427099307235931427401831366398705137979400461068803664384373104746986525795327984732070482360118145956293263856031144199528442229556474323743499876164705718817542075520775006186559550485599043844351809818640670316481501035893336563717317169093571442947857455731844147215463067640420020224212676720266611177572871224602433535548577520740638830455643580356650021470705994038817893450341423975754643934809616243626438379933946059340874050733896769677456240901090384290204447367464039661051185423617810722953484512813925091204934720881569745385868438066566941255211035850320329444131479849310821415729677165851107658474222956187616652520128516994500785918192341287692022652155467399047217446583246149045291778042514282898397370923303359935956984698008963509056195189496771531931531189396620895596550151680621802733521541010051800112278533278108297515251107042250892372087243471552439167918916824787725697830173850039867640398237908807149882994741427377200901808145786508014397289670411801590197421961305362911669011478621469217356885819453839833754941963695279547292637170387098950034431250819155096172671252906545491349141519136710848405265007757822901888762715338740649157830275857045223396658064281436871209569480315455678805786918874743778613304449554120785920710881032785181125186411819069430318930817264253908585658373989404428844695075234067252168017498951122260243030813369348500544064140986061692286315343975886849686637582833217056426842528709323903168601946689648567503900061572797454876111310431138108157308863167096034670581833766175235017308196395420443790235056840993679552703666788956365424692522213338444894971367236982774401069604047542236305902761582659383690054710858584517316423167477405041544086912691909356820929815609096239485341614162624361767707581519815759056140952863135220320165300048622894481034209342812263422736442145377589395283359596368563025655001331914677353261743858658787615196980435563799812751060450703417808011014873577119702447165019720542187622508216931921606033033553799057483583730597722850107554988374004152319811277446394202710340231152410885281119146755254630247761099159167337303041078177348689230198180102604704441832836010696561718103163490706609559578180827237530458913064607253276850277773546676027869841072762092761491159212550747968670040421549073377096667325310636000698393702150105913198182430948742257461854488623552514687879100220095311774140791725442514951817906702575372990408636416693627725596417881738283363094362411301940050101690999077588498462520508907647011326035488872524749863595570605534114749450187670621614719507372302719747862620570258078698945308703449136453402335449158291666213039725550768906778621422215654706029264713170968529074642473588661700382725725678625000571662432761838016681296031060099244455829987830789521936624300711593533583843763737695114100553373137098775128623839394759532869492217069557357183333726138840209761138415319333464373695431076638868823289072473549839496893009107597033037014578769648442228629479050709477112088517324423683845819537682543041666483544561366041111502197788911928310366118252192070129023600467070205996679029223755235622168959900111342509474492080681828077921677769790521832990073627397600074686047868523265542489901780882315973796461198417944522427306304261301678848841373424165354126000980129463306906350677212696173630706137225636756314987346764138148895885144884235714466740349855717992612858932283164199938769649967645848550426392773502913601490343544866082312908460845208765109057395217915726709721363267105988128209838378169514391074773808225289691762198074010351378985532555056211650295613201237174133018726532080676084809281486930651009512858556370178922043225570070796828525495001259027915708833563523602568721396837756426469864831166761312733430563004774478443756379587283941482556561540371519523453145630625386535438842420997479222082880619462663576795808627535454180894807145550573368493892518228812198437741830338723573644620447250848631544444231360237976246254776554478013745998275048404604635272137489399124559330519386800172053948467780910329373562781450779620781696089721898400102531684623170978093195733666629370368609070908158023347407772352078070683315272000312620580182671708353045257429882174570532974956916694847299124056499563437239208790844405980559574554712680495977516567221969753251210133413251080523791721440378482815908720104598513833310509206441672268560951303731021822593033849422069631548043060058340565036824068374478469957898234043379735265748375123884028353571962166143456562579921937391941726130062458436228507626626601368105229152734581694444062230038274668911236069824491290268537419250442149577209100128523145851658230879718512493556176802671531548243175788490908102368598134828745064017488829264544183712224431022405329651084259195720071633397107712706324716542162172379423818589405983298040875220863453361770212051880050700253811976372885439456974173845247188498663214971474191512983056261410499241373821606425099195617493610359187254248907651832049354680918765953463256117752742881200395963885402850228763646525504470548619550202185080618520097512039137003246032395877018598274322007097093415931893537851587992513830376129432301599186945607528118694369236224046170129050404084706453301252762453572702712755427230110019762986460651550466363177327675946552123656468579278724465854638454259461339827840422838408526866430399183606135008375161219377731801474649214925572721454308472841633618971297026545715578203322009960011642745264015602604533684050903889305066755569165512974536111616762050241924439677934618696312224659325376700575978896792755377347086763347435803720084483262434734165051828562849111425455804803389586012056890941418936290049694747560287881935611890959723970467928183474257119425633289411311946582455640410908475344705319888205827851885965020209856950870120001992440015795694324251385329121984623947125585387603805127353823346208528944710518134939174348976822056990977195063959306502763390567589571769532575908794883480261325882467484528552727154993960677115471093045518122428202224183967500724914793340112328472270854395422711783865996401333860197925521486996369851288160810774611021543751564376406527110381752417311771552253273069440129722952466257483787303441420579719083737827749856123263736840110876968339947048723408076996819089563039344882309137064810596942982667986521928099676497372735635334544207006894278148823123994932446193813643445795318204818801038761202934684213639290316697829865141913538298842281430819343783292694090169565656299933015936725644759587301913380769873115508513877292689084710916523396454659055166001137721901121914203746949116132874475107125507664953583594985483379882513812758863259395056435762935608433783934692411092630986309308273891791001349466693552046030307680321186838863985046421730983505619766041975735531493830377985354663399460370130764267594685447300573563298041123218072900555328691629790424723496312956879867891044169060559416501726563859730914388060135523160842012957994893573040467987197764238210875799879734276079235054467467345187852182462980304999146191431397629957784438515807999782266428692849221442739554540590448340131210532006715579271752685630882995214137603512023678957969080878915097204007226292280713780802108335885349552146644078659975633366484087678918242681724859373736597162082590093193557164934848537806964584797871968448704823584285910489627847877145775049079469585271651793718697956484789230373608147268125349839883282613900112961178441181686996882921191813646670941680185697285226614753463424828575139440024422814469223830739461066122660784678650668075323020576611273200855594092596834402856607438810303642616117900956533482267669698041416995452702691655939816933095078103852121642579871547581682022474971237971183139576221314384318699334835271403824190221508828403777715283814929980889310841032428716727203580675603283340740847764279797399356126928149587938855885154588679511915505101773689657661813483373265159031122563697897243791638247592603101208834726446222628294773077299758976954857594240829911937091057158824189327359062684256052914718285163747652306450595532769153407054248495862611993912772889834050346624411987217701618983899505713478892425700400354912621225014306789900413711793240624176644371225072258627599552757021390320346308917895247002230929696241200743846750018252443649563793545922459220188107165712706011391584173539622839280374448834181070124050040266935887676685821095684689238181912883975177155332785793497217123767386054553446976643028475297772910535764271279916544536338431520295315573240543185273952446405717486839196156257574761605178723663047890913376879103056840714962006613524835789849985600876661798971773522721027660864128159388154264120920201625125523692528221710968102006294526162932541348161203280810689707663798713193931181117953617039457650269734092313412928930866413185847584430112764804544255821405901696170035994148492922575886913716336004504035744317921353794994679647934394536069092991222928336730310319369358394014892329557575537010492562636664043550254733216571151619698839850202103305989593995025658334354456011368920887320180535191186998403575242328621597221087305181853309708159105919215268332627412685015475109856476970580732546242858317863422842975554500045625572270861494003452091360036192567067150864110045727108030283944894693661305704688933062008478647063848028989748285216726874117093858469235243439874664511334412927621667356238854671276561941273113367256614768155513101139139304929680542307506351979053563582729872643978646870637341355449972764499487529390384369864468841949643249366783163174928796524634903147660139546749331549037870142255616181849121334823025062602429807415157581626316997718224525885495004477903797405568106210054104465221209568265065285737825811708324045058010966338516424771402851892059419050313915456648173733565486398315898462493822095099802786209594849848823540935557366974905637145216116730241938262011035508040773211025777477077755282882962093289498739130762791297188386367397601174287150458364088958204816566417701457617919808846412022074770884592017694507488341593861784192889305035757955613969361597185806847587911869338102339641010972853118831906077139420906033301871489408290283632478183113344440748157488737709741646836925802400479924955883018008783330627739262581319245837303610285687945952227942089319354828848849628261180170979351837119059167483787393738705851899729738248131816356100805840043395091960058219600098298682901172677066541857641502508723827464828679459678476649717818238673584222733942733729600883644012754222402477923823001625366590970228372484423593808340569041918618533302625688516380632838085486888931140703277676773138355128292550419408371326409711052237652607156049229230430198228536157049593855343492714101045391404324037618164426601212805959132318643614992228942360670830401925407018823121367024664729604261659586453718359625654952267122646412262812543658047561790784137998184327698328503190302268962380101110108472581902933128885502568162693053631576456626400025858758783270373451702683903305063806374642238474815392495711359596723045386814887507300571659084936746389664731242772971516807016959321859375171548414488469810918033236191302123414201784192837248700417980282118237885760042257525326526264246950890662853548982753109532714023286466434013242480599765636347991727015718306265424550010784300142530640346688088186145020733614748421965134771770992417805101496611612193621164606492744942209300756589265995159329025253435188920146540492790393832309724753737780729719160815180340082712757054334984936238148961854987779626756276473904424232293660958769394082751805900102374355439546257336871861060851995980867270741900965881731905346477645315368738623237028997348882056741105762052318298845161439241514601692665190126510913905569894375422173351398518007699810628446901634204917770021694699126255803672799514385264355194442521678714537919755189862057634808680202643205171641353659908092043531179166646082129798025623283393390274405062822514925535535973310159024284506431355246023582605569032734352355852478596393479274623183094855719315989835594631720407692638397564751226308156543101159437563699930380234159864510797991445233705344757214929321703709431576602254249419425862401088227469155143483824893643345653601145846819626446430746975501197960159648815437618955984520671218250682025656161830985920275988877024416053448102924754162149004464795640317505078261142199620945816581864287913750475900106842614355154006342797291755374338476743233291873616294321031075542352052222807187255952250672846426812234724964394944435843013594645024144692693766928252804081121182940982220949009585855151592461539198513167456616354879923279895207104682484459311692165336108354842545602564162036339157906859114720229400424480030395288897456203904104945766576492195554505883370808299073114035696783034181491690664884932576532138279597160498821811591345935749479918932035701127443554280509575753568046847020319025219561790339844606759507251569921105176767689906994520828393385519375917171752861652053756479642756541925677685748178006309412566606268962798303256490183355773291159450413030371142582808525092973236638089311561979089019007441881641329532784889575354675370635823097937667300996757841683484222979796240795957283356633987341908836315539749508409828902227324792888788775205366763725545712787593014221280968341183333041010141238749002099056758015034849432770627663225847889895627835704709145021173181465189351486320642336633385317819874189226863923182251354361257419236631713088250309396041638856682310031263568072207550506938383922539874294546842928890004939165648737842088380078194243248053047407919195093539382146592299447569540223790075364763109701604659253239558411213836753231533970307490543635287001654190448758564383056585020827258799933532086680506760724341379057285496640665389514753842006225815334598333356117606794700971659737481781504535780213778637536871820731762628318886245852530874750860585446606549056936666749144930497399606733443337236606882256133897096351734614872459823142473013767527843040806301018351752956578382976190012859111993028769775143673893629374162739781503028520720352355892158394239543580274100226513848437469640085363860173558739890288434920042662957380212029592922866574733259769265166074569754774195243757691236634257748611363822269682683172444413166008770915517637117424216861865522359412813666617990809915315840482700912813100131059487856644268814587025986346474997406827032861814301470348496721503230010789765357081207626490593943636869018443450933489395064553000000001248180978368100111992391639106137011920139923318661328880705722328763509585998989248456495415132923035489677922903344997780358747372531141294401982213302683292606127153251692279596553296153336177635662877732678914346918968615813523726713565241208951177594400899900718585230517299386015789576009679710822857075478144589191326605868748210107832935011627519616979224775920634732406963248608534407511185947824758253562771411609990498377139390885861051919235495214583960178591139145501127298244292493846401554423907723672214491382770775271482631698069706217515614556379368724566071262081236430891228767915005540136789882790736948164017086796419356166320354192941752776566550004452543951367421061221313667812098632263243591011343809207968355901252058975507298086409552180860070983002920541223750741309089293229245735961052094343616074028242643954677081676748714674546778028449029806955362991925645493994797739681846159593613710477081253431813935829472496565213864717152631906813233455648562359506474341002485564023056138833473271545562018776893918774518808679288202409506769033612874338036449262891440824280050580657096321711928507929841045284677358850091161247464442534063499626663359080968683171406633514245519499413235808167469785574907938602280275887856166404022241655889195161136548666781698976625174882607024679919120312960709509843782173534761392401313639884364526355028431506166936973338959696663738826828673656450375280807514399839506833395368520455287583856777863199124312612906387560006794581199158271675345851977901842896543696867340515341119731031360961453256975766811069854857610909637519589139091073741511024184942458160923647628456583930316664826237382677866820493331338682654520838091049651395008742643162015916358361500491666024847738866578086974130499611797179028310913170464121005286431196761796856119768470118202541989755543346594221364029502588227003472181745693077484064159538229036423527552690585881645671942125321272379960204326451060389789234413402036573378226351461215787388394279922247403937232359209205235240369576256470978229432433319632966082731842264154909248292783414290374698758523614599713650143968876756336607493178997393312283317759496787915176253583997592822619326288290193154895891960678923906506473528701080019680636087917658118768301708403259178694483430830662504959545130901651774011405308562951362786686692994177500015268435901579498309196021040008223009742966334890666784918795565241974340096794503201071825317245867263178962430410645248741461542044083887384952497053965486410780630810878602601106523241913874248240645642672441764797402968903825704220158081822676176900158383873161297281588710679027220657335729515745314766642567071915490945911531802923798962551048394829904697153300354542493550429623051966261998524096072329191798697526344470427743456290211127654511700740617987024180013167124786482799223785092051642732536705053522289520125963127034262069507686977665025939124795672683189032000753621555005902954059879215431707093203051715061249350165202956866840800224065074041820274544268534381069216493709106040711016078097058620527415707783042341832409254936831178303944609698089850021994461335371863908375511103687914518341743938065179826382528078771589884042148562118668736116527169183018929804953600681462987815020155646254260732110836791810709612857373305661762026543826263614970481750870520953073001078474012782847435962839570064967829896977050401642279933132885024767661237449375497013090237836335438463392264090957666640437110487839174967667927111672470930199312015790474770415299291475377588091316603859725085927922405037761348904841534622212439251619746678837803878507919468133388383743499788533766829753214574011968856463866917472142803847196295858818454203018114388776553604475726649748952393954269009157275112668996052209302670919002035977383065170682891596768463572950755538371868142764564364556644372159923502217681678484145476660907397094270024759802780783451713149754406389599499071954792861833480868500924702660166506584967859218280009728409882665790473089309297850630103701976609939041239263332149499312890439361142055924176212757651364494821723353781808477532103865007699659147428033229528832557298042387338497532429214457406251744312607966576367144419048660976356806452209583985180583746965709917429282067071537104265013004416665888486267826140794509878089516841654404842455622094824974552058042158590305634670281967884289987650149838470757064935041546266120887226544968129566754656295947382951635314939307695329051794441511052147344328605305167118924583202704798842518072057870091301078367343666418085000054889805371090055914091660108857508565514299245669694267652691281137827007094541601214781505409569915619518088069295630186771428805851715780036840115129897614041357497420391652836042436844714786167306628532853880424046457579665893401096626190533834676758892280496329352602638447224686115423011727989270766997197347612987709250562061986293899356241333462186475222098164018779971353490537956912883955662040040502846577858591100167442820160805702447856770886463590361307869961695762641872638656955927787760555696730986584064722024212169298162921137914786111339354996252302359873819411990106550419001885123710178298621683211527572702360572374082468886710891648106432873746959836290227079726704485008971544483436605961137698225022736187712923846573716974440888363679615459190546658896591102739751878339976425866526952621053235116211927910610719229645439093335996506295733090275944681986358079252484789280372419616340096201519575615825555052899621531671219868816152416312871359693282525552037097509042936076817295741668793998410561139974627803610577046920500174364052445484432349562461991684616467689016455535546341285005901967392140139966707767104238158136879955925466679466873513121728963823350085343091115425202453178892386983481116049026170286474686312127218066960819229308562143022462154255906412933925371944779453209863608274591048552483038828023374561983314800254099468187869137003447921594180015166362979511505748640813659119118045660001110020602991634933427293757369474112841827686579109866617012289168625870833822083041225381421500575736318557376916092119594564273239189054329953300602649898971760434291370290412564591881695759744953693036148748269698760779175695608157160189131040738825088687997134447279821148365837326198143331519404026410555121405599915151714214421052254383229626877135459013134073422847698497427109396723718600603287240881309690266424834038009856031868476713994942196835450268681502601688169616460754082156695074094403934585168502151497189485772805002934383971718426104591719988506562903704955767875302021594556789454663664897288801067903091159440951627869518804616633819861375379169602281374450831427359747933149753489064280152586710625183673136292847626811316504292102469436249481103988769155330350686689150801664918506140597826066432870616497751905683716348820566522124572025668342910885689222119167996811723762237669125295566269943082820559256069216185332030809967499873015981241406604445041536171145509306681584226487329607769134700953928537402424422140166029563436432733698826113073869816089189769011270187315987480072613169795022150992157988263001003218724792897814254901927437207767646344974500364455355531310502779068997127568624112852892432642298554259778104896432278731489180365552491507833285014797261991633451062551421251785817965118023816670112747429134093851314189977446315600436871419606397957175351260280931475506773099811276543035761040610990247730497048812701882428808729815902879312527996454383854597313596808626781863698672615685791127235090763538233040403875107937064318006059345006058085641071726767273480171013884412929132831815396256700809137080061479220666593624063550906562859414893252238103145191011113074350933974905162328243009125508387152793274722808615652139187764876202985318499935048554567502239787983693276050002081185651764558590875364652817490447855640109567815783958819747676129309003241284825550807294025554685942600799151215361388498211716418320667018457619423699935694519325230708198603144474426180853926661926893709644532281302894912279310165260494403488408371899565098430989636113938625234640483206257335968560352592409170628444552297175593243297882996733464542489558937479021671132184825327490083502447616295069894464941881663008282582657894964138835487095951444056122017210171644113547776022876542290906410067206940685284688429907233075197361802667681147595987428569769604631393424982261519708364598037019090345126561641107097561619352209094099789512672939631796975502535746301220033335504014697925003031357909936010894281531772346729135075318607742839804261682965328089679066867965131753793707218048027787791936282137297953801702295227432319727998650627264387404006833753938364319702237739542026493587414714419367992184311619467598893282001554428062997652144303719862401490992021831405083714301131347091598560884493625684639923690978620065054620434690369159180836745334673712431341924183602215043099222586410209575675336753165203138296404506773801463294016149860571993988779260733091606579413838313130725834357358113368535107983355310962549432753480500098699741470337792363633922270555296225959693660757164962184627757351993119436014065525698942334397074527640060184528614121613691718527570779940707652205818704369979498062146890175841811093205586343052973598080972874229230254040848718398744284066734386765764567577791965483582880251306759365765958814440567422185403669427076903343192953500676905819170783710598700490041785823939231349369622828789871416771314768960733199641619573753557091920581382640895806143289165550693630184701086451848695868268580171047959334414953521950867664373445487327201140647662119045032837874655559343744218326000628196836687459035533989387860544598346453896980659097357829908303018823450194242622935456472046119963422758855523028782288498624835556975670572475727175613710249923571030479763685617435407181023126970332645644023321238457500153172417564585943703026811772963998536905798844795007105288138185312347074586049003731172330966135001436861351914549752842563598926581948699823830872298169201142472906810705599422674206888906459046977894384129350042035240120431734190396157115470015568703597149916665496012332122023684571612346828713151634034041723224720185568731192227974756595876893605473926753541000313169182095614665385235367372462260789491863348376339213253434722059303746179421360795028656348942778671081549338489931092735527054284787312474462448690296297376445605415912385313498184930983443358554472509073053151487695423245121711389238192106467550101111919097126409699869385238029318915744595290493189731719639610544355442687211203068943001827356171651884251530331934693429278692184336758007825841261005202981381820687123821447961313366872453441355702121434400041883836134380931734197320569984243044212695957351499672406017094380706163259313245700976890380910353300605549544074939006441919657942628051620484927041068997058926692449829258340011513189005515241227715276586679718851760455153941593266783682111363287721381205245323742971735856627930893734251139256102921695536895758488273223608463110156715951018263283046716324835045452625982170737661084343324677830020685367346655886647097010334430775260237793006526208249828590302570557753742218377732480930098803777742962293377358624748241574454530933765013311115692039104977384640416030198744410693043663928253785232741852833400131874833913941960751502943346726513487014924179769240135380321295807321973720020915118167516802203297574235830959076769832954191931957929810166988186162237334248199627428917112256527962886194547746336683741089703081856430275034197213605784088844842121371586628719333306092069447963413422743305967763472810112213527705474691208662225152043610789935610566810567467128867821695945012508387369543762212850342986712634915068412149144889641647425899265496444024823259692299497721488906994877304469379432128965326770231100875318881473631856538906294196118303495134797653450257531495738543278602191504854417089878876210305892924066858247729335261858313062307117457655163774558329919936850020313538693122834706618282597922518042702674265995329796408323585468772752953825724704966848920042866011049158961703036751103729557660331067821652312274048329027305062467552788939743767073985381496966827429891729558405021087424171717102402843704280613631985665320422850011260389614287019214795573740779596846093407440409816426023044279740544497956573471876526322361465544279932949843233706888493165907608903787214582341190801820831055364942322451008379895067373901117747694551468126319818378081710957322353986647443030256188108279942325290198553194031084706665449616649522375470805010840536515563335729098434155927992043091147515826838049200445217132932412738719714501643931364756689231115761846188350730519737757413543344095274362100351436104028539989775640450564716340898224210705456033010246840562366187975899670210273551809765458959280619931315663402320846358761756227625537322165418686763710179576316386893057694429438127375191390407104884625562759720112976419617234203310644939917075825036681983365240567532581272983549792485773229032881979710982664103706548085383750737365002357432172844377234280691083436189917561300225231414553791586151128541531055447674343766340227499834447320207112697212070834736430757884191763751607238159980034161843781106946712899550236996113119775697162813986449345538849103702973958880037878667268852763764811778235545085391092022899076671198799558260162427012279051705220374519899919397312358697145920414192935021700699952913771627058588594168683349236379845767818552944964843295003603295878417999810305946786952707360461114012079398984582716997741116168432260186214159222430556980757574471266513257324631378015339820160095144637596062299783050366577143970958235266908295040078012150972345640937793441834803760292570402955706942609744017141190623276566462938639963559120392482025581260274402208631597239084507630068510573102308311872858850025728458077603450148510207702173063071208063610793826970080947471650556637321850127837727548099420226535625889683453368422357155494737580016092987725695801170210093363665552593848411073164288426794953663228358920347003997007482180600584295968774956328806954277144688831792091068294960531500269727892181958861902810817432096771372849530878550796262065548838247574991616686369589166552415480081098574756823776606064739345400086346786771053711852505559844092362683964214282125161823709221834951667710978334266190726208965791000579377186954398904366277077178135089593141913329031928162919613338024157958638336495211113451219969432777460357240733684548530239952586320005108620636195366346612061096862531294263282014834942945057359452465600233063171186375831564172131298762169143230631311941607780470053390806734913443994067374279131934739441426751465052994809163082335523233509243227922342462682980666862902707044695281195729228660938396965033099956882027699405019557478579389960069800490955173383008730124917116896450156595262025967502103217116280104121227919021236859671926027980770083415723805275604192670071383831811999039570493805997310570547761073463637587519917746104368764143723630976653783455316610094568219192730406006753248256568319837386654815160792855523885510056662974313022688467055771448495630541447954565448444312797885172631754544753661562937475940690184920039646925292631445918029907217709737461712067910729110632784093334963333170715284302701729568131771466064924476854084346614164980756874612367199877284397401446634429036351565954537136412419129214605236614499444171248201977713486738622257639034089536315083418698535667389258884793243359873732737312944613971227010043106101028990470523390616193679606239233344655374301786781357476466856517489347071776584356932539731918314727880356653642363137381091767521233790797291865413821437210030070875257830728698436388143379934090118973777818394104926371837174505405203727924290080000727252739516900742370153233200758463025062474256654380754420209461409467835587158686353826759837200934769297518427141671596327427816469711918141286395951075707833595097704743569037763362243162523970296991146946423425785334150247598204989297623003238405987056771966367464811812685853980319158550338488404751534735642974652285446258751005549877618242070467900082044789477991106480002882927340763457234679472918821810458475334357667406618348057433569957803970101885080408580133427074893281772276081224632911845304134810090340176239638237562455217689496886367232484493808438690302765219624973961407310722303480024502124424571787066877724010294493752180181785074468064057452393022786461384858592851609774312188749106572097437758761368276809355008436856184633060200565677393253737664966529256706692997250461283201527624415040839955392744594360326959911913744496458867498254040449165969790896037478502402996579830752000100591948778194774161876653775009944892787553202477470647063260845227480956861531300046009483995534527494695547218428596412189855906641462467542603415473103439154272131777340106239274882977368404956520179263547324385575995558625119286031360591823595141650869372730193681930649718164825594544655318446505226906486534350232570076535336342658443892398953294059586076042310668768080391504786377869366790930352178455742807678637680631892288012190851102763765317861248575963732506222246586221172657461489619144379463511869924154170739093662430775701645395434160949560805983538246141658248381007717719442478268930853082759264189760957692363690498620137147671723489912595565228645735567099667216304693696963269584639140614496422218360727306633785796401071596959998451907833783122320614618718337569333705755221051863054177234392253544399794515685838818660455276729938000949120691214670111575897194852513808918110357716235506192591684440352686270595641805567336521570111237177247062579450578089795138171728419538754778887460441927004058661369789030492213970470276553034337183427614601907257292801789493137952077109076345400946603824575364475762679303372726344980805397447748666193171073749503261216336317538439437515175844044923947299882673607139041330143567554389129505268320662043097715204133167738068524938269713794467206827811874747725603840777920114725518500822515015309387156828853093113183415200735651362867590456828842321473135225619492866888739230261764319413483182016038972945507186078297358673887270218976286473247592800081285877347150171863767201253471086121752093733947909212786429216402767376890087494958049289991238668548897096622241886960352964666747493939973581723658919252917649022319446796005533909698389253707513036310273921347948940398094235455214164439613927286411678984863260165950528576718072871139582868800279501415985953568721719637899116939239601370299532248661222976757945344968633636735630834864860621560634675825963384554893858277188273602092256699628587179928895941820115351684581207508081991064771043637862798406921954580652865068131121380594965132551953651598552204375206472725136035576799896608475611687880620102756361583049540908398193110784672431506232101743266312243233290257097560800587795248188200727740355347347940789139918780837810024391255518032045948364123689338244920394635552917228083556451593460093839972940659366648622928783213113177731127358456202384896948572976083554078449470903767216863845846987095526813788499611178477956682215767786032997795075513950285165031386848632305558033153466913750782389595527508630930639890512951045746756432394673746851771516970527168834894728700409269190491698113446374032269033802912327248181103977754317909603265251330127964689864351869630245421776685933826784117162902229546428653670989797389397864816843943946944748441289923018743280916304791718508641180496517944090742938101636949869540697733286659302831693713267799938857729593516390304243324920729611561815691452034362216975243014156395947772371432753811361009891720360594107575680553964985477877379764229813882491599757051013593585518634477414745476250115956161560486681836157457342048976113527872545588067653142757325549042254063874172688220658103139316236790264485984538959667905844661226702676631707156052180081908221517026654566928894246356712672660857740414827095165480108308550864010397151186444731733441629581114912907974153858071583530620315764643378215170993127685738527810749730538143791844586337929752588921057036290548163872187800268226759786860757123716403871773431982186996472457157438110062457897390230585847070319873499269424328464658913162150928983309007359763396630062437774664183308222119403827114275789553904492498881356397840492099278915455018320136078980482258276900003418156175817261660278116293070221720807038390535861296502368954807480930411058419976317931442088051115545930889185340948094644808951253310365894521708714904089095400914996251692100280085067247370804096015428097586705176006022188482841996153781013520642267294888000005583228950107353799659636882131730951394631369541035381883980289553124851110275694726172420150992994591111501782198857076135394884361150445958044613664689935373173753800284329333981927328881976163499941799915553114443306645885233697760007136463704835889265933460455115360331385763413912109262569919219158974166804769459912657839781472734213356614500395858215605325705921795919432017032946062786699283611313802944029896046550321627845208073863866346475300286691178114621788810289362181644581030119156754641963494690563436422860934209887490282559991622870697458336864361724702632097667734207737469986017677885921220901200543499939539225565568328577706569781393655451033555632184431859488112079561666717221485943950735806106591640996583340185114188588836233961880947472359186145689771062602639098441235018347036332994132549660326432134560528000014692973715093946199139146903090688525064276503102473255733049002628640292448139311892429544165583500068916457612965232840640955685767205673519834921466572852061416280183432506994979602895772491293343802967270874332318892702632270357461501401345413790588008204656467181110747516218619448232152121752408340102945867215174902501351371588460334568085466129490264483348728053384385049142887410119233993701976952422334858409643764945768201711985561989826984881654515410264673315386609903789398117074966489564182863970193809958157721854648735617564333487829213649906712233896311841869284426638097304140942380908980252974965748668275904355116871538553609296699207884077380916596205381449854927764164677378108986399839918236210914697273190790624504793086768657925903528365258372439679817858069309825455198279935294506274547188875909288296500984897169370660016122050024330628045727993122408942363582704978967631747119717594430731015675983794372232837743248525411339901111637806773336151455776650837781874372296721697193465034353266350194765361696090217550202385311543708046272348055443009041171288824947278413123264814391877540497296098381588810169676729577591247622710438047254767902559085492417649389123954380501862595536153500742375649460504769519439869055982766427424353328322521311587729681703233428497011724664983058264282317439717421877146961234836447847697172489340551418901087599656065359368786529326641738985857688844795310638293705951929377291585555723705292311066794185383812388038222704689396301713566878029764457199359437608988348688810299283666517754874168440010482619548176666234982429795407441656626224507780829788902370572252864719295820599927835977144344743082276899871600599062531204919291318156103847192182303801600993054783103074672238037525467322825571210238244276499485911611179203834629400722627914282269220217753509881679813644311667356586620743333051089967814520918561657912092059805396347370055969951920189301273260823851092052373889265456621717045537969899019414205196168466449696634315253083606002319327367446767805310568914429650300972817492623423838959795080243426373747056527873023240678664103068563142232260557935289805535969665883960466481024262972399569856170954939487924955163745823378264010373671338538192889642838859494516199512702138802393375977834552610804148269827253068890810436348539213257218733195183951840919076565448488498356180382846906172655928615894091850343942815382200509594601244556674123546966476291321862351892754062472142487625801275069356543256997560404307741319935419937356508685699844460719600530103062475197396741218090328558212719790193769663654033864704641275144218008607642577617640894361866795197423857376000525676369328909124845692794722108423576994891735903227053274742347271348275591239890238850116066437808421171314989340593584435729516395980376914928544874339772002450388574861909453036606617846266901316048567481232221815711716940306248548557681210898492037851492606804789807377529171218509780008389417506012219730402290353971217580049450570897180668087941795295607667566066188615232393054271515928116972648530132548917779618953021258199886174917495097287755135235244565507592638159562224732671546202716671913128452109804330943281370964173584042868395919333628895689483608617445230611357524538073844521529357340109602786388399265031108583902364383003912684775857152066190879702160525931499280437570778324238811913368886042249062654747708679466322068500800599749132845555980540692650135102263485177194126577410545790661010995840175351226307495028869534482843737098366877870027901833495183163653749565089523966209492126672386538093294842991348624266627566715660221221445360182110866437509096665295500180999599675872836611042606134451771917801011420964015039571812261047224726373688345551886888223559400719939596308021938603232956527639910645082782829422052339412809452132777212977133754463650414642203824167157438741455814810748320996733337289663447976009604102427630319240619538396159620245655099305914156094690007343011237654411155857357136583691872779241989393762358288078257881052470049417361504985005973278629277059724031901664736084449388587140493497696382952172730993681890158125814423361861022812787712392761615679785786396251511154515927510171657746084393548157470554468120884701467841448727648936890283467331449289882782615095964879341284148228582521486306443160056833318930498770668478981964322173477832148680873549217962673595579950398495179075479519867292607916899525589479537683262588445996963137732045787903840380238788445972570098934741606912965165550725445338354829150144708944148449690887647057458617248780759687209250054556593639844220272902892363555092896790567373977757838831850544468831439750638558655527228133001157306500522512156053341563850088668886013971881630684148728497788093501738566748096151210623658894274297079733611806644460157059107286647834777787765245921449504616452043779681517940670312203909061641093838718448319305683668654426453500590968892369234937427297978687024158994679529156144667068246307634454102257030800739265962145004734731965937216638912920532359886234434020541106957590543443821702114476841395445757827299392310326924520774470283726855871355481016137119636838907151609748233132504617153649439982520532676451390488345067253375281698063499768029789959180811377445955116061302452801517076834797329145847081768765444563477101099346045076919355389581650276583854353647892030752901899089091307912640773305439488177363083896837456373002929745011192925866772059983390448806075347919520917867029644497684277724941683359086152929906790926260839265727687254902032969419447754517689564635473229671519988909255698839105935369456818661873896713277195378436561151890481294119752227016935794020797441295234873069590300148362611010483231998328068686609917992286588587642094267321653364528112522648686052936858370304351812007168149183832313993942940341545048487745665842652605472948492340548219893032095240641920883720025017894393165248277903999147935390791425234024541391170856113176538414077445014058854715626568265321847968600906031402758024598776241918680461565498872600544300719499310894128515929990425663848672399362511098451127045138822771930277763773441764167669750897133492701060155852250966713055003226980961790288679574685413214298900356627609832629677069702593787804075494152122189265876757742922736690910806981857542479992134023052493086473317183319346294825647985704645866294001128038736133344023952485502585200057015182717798832792830597413984292724937777740345118489287530758244405814571557046946851335707702890399039555440290875666241523398800767444587559392197268970685826007545950461648511344032517484377330074474274405724127030134745678451143373061201063571509882399810428759848233004112330285968250872857074593407604398700554767101906100184263566096431998241744305531579304920365402502682788963617085782396728651695477597993788601607266635150734566924261160437157289721269218417351662616590614172434200043595860861485920392055324829270496851069567541252002021600451259887068722487800996783885417463019492201157418846438141548179895975856634382092076759103069648204857200304984822039601578432649260661088723531041916911752637076396621154007410703530954033293498833421274784057277002128419213937824881632337135395955062987578796929203557183238818249843053907070397586814994887875572704188148938003820700540421962355758977244318227381927601162814362149427243310436467334390838221758094918576755500430298722879730059188551819584688472481878956793834859192300466060235379869673896867707894289080865175410264288326306836294806911341973138142437575970397605485396152926159645423074046225338111557274996366322068314818393984861853904008123250690498973431995737532427193443124041564291963408097153320753955872143332232294600233939246937565007389074999179900628562765146429605751940038321506748123866216979744563899975461797814219631698896764391554142655789752765517874488797810001976659292071785914873397647792584457787761841943722436549386324940566945851636957612078220954747062247271965932672391198734273953465866090956071775031833617550709485562680164236241335088990158495204394838125310729648507982081125124179054304070088430701670341387750402333073819212986305348669517549848353401359984755800027898616460110160588418626658813562327452714638049263071854689212095746926675602997929976458227339408628528060493007179352898966922483576618921121133502378852230337096218906859332300384823396456267027831051861168948678495527117124557479962500432507547875491800026961830752149976206513998152473611623333710492963756828580100393882214538829535329262981642359348549418667519586951853214354093758378172135861591213854431102552161039248787441023523101384121609631696914158906474008438922217532870430214345720287891758580907761266957730410209850205246586107947755945482976517389737314868890802399003938594339140123982754511890309440485928988921619123858928696223491370206954282949300834301395976386618870919647219706157996251348421550362953255571213810985928192135033476559127072967636755487420508349817283159197290210711776980220227101121682568040843606663348444524498391029616715858769873860820150952160833118235160650821794872326177474029770477870470398609746142980972706422000309834162205739940602484025812481026631263408881090463317542276156105896231892415287292861917807381624773154404283293663054370153597737298451788880364929270844157634818562144377088523062319223062433567008116701621599390997445217679440180601679091517361257483374563072091153992161145115222574959090386795841320404438513578395514253848736364701415582918481917934120594716845794530214468628050073221301507679888980222983935026393501831465013984755819980091164532947465204429653117661806748307661241439917021066191323612338542637392798881162791523127961626700473113083140473641740747222403048861607949753976303588509330594485770978156909078251510176619704962288178099822442858735815996273407963090659592818372434288546216003241412442467664896598849924222893913093833507344491559639451666813168074336985886505232235491365172841938714052341142361297741815926835383733742496309913572487478041012684359788470701511503217776229395373791707562718277793316186036702999238833574203318887180412785491117635464312249670871690065434628743229773877580634870353093417113049019238376827393802289597143371778704161318427953047050473822629151346310257891397011679919500328448746796708998849119583663448359308861642452406714002580791780858666235192238602094101522287904136052589767065714494288786184834250770871110360620634352112040152325363922512589494444467557499358859195097382186515345303233454329246797148265503019887488685379607977015511264279918063221102666660533661154807268563903245955019791619147866304345172660289072995501127602684517427761495162894815649164871561039396177556921317930134386016374865113974716953406849466411724576000311455467562820186419699373030660823992131350324150146400388229865354311972689453512843860446114583077704137331532129412986587225679754240124314616191498528636372061436795970482608440993534035397292469042460431255537446967658552768838394383819253794861170952979936747287927165183796865482393874910443144966480705325877458733919389160649955915597627945191107640690873111380246835198392998602363282297234443672286582666088563785559674730955164463409373066724025882045529790652998732966856754396720554422073755616492703543889560413652055315627620912369817952006101248216745855552087501800044432285321393569589647014065578897492117522664140332590496417360803484784032480554746766872308743944732212320073211886881599208517002430374201439395394719507243145197747877224593029258948492365642647550049047608997521210232263111686138057039996967738889718210316148171926547739229685449828878767930745620990724364240110041567623595587656181631467210596949406844616313191368950776680898842531202692693243218593805818255732649372210470637299650574041333095455726684662711522781401891807312935218021658437859219695875716047856450996312584063540031906433812793466044096510688073882851800144165853103395110038299072674279602632115475348098056160698929437849561183274045625161728354662282773824000999377335689465329485377719470539305354697548906872230739026589563331286380421645865222779638061530556218405045118121714672290941550496936796642002182294104363386078294343022739250004810035817346147037253563142702372164622188222993080440789472008933729960992067541398585130748825120760361968910521583212227404148593124299322390989272885024824825898036822205197869660521235362946470160660493531540823440009405951822045582592205424610281412543722967112653068026696288039664318666185498067738374004428690942868141576503825701251914858720599414503894963698941274624579961944458356531011594628077233437430265728951539570334007621878772863664016086303361478032909080141571202981635275142332711280087333653377819707635404930629187509491023437044292284776276542231213962624154469409901313101638694735058880861706527145275936545185108829919518258927028648228179937889301958446152704935798149419619109751941466644853840022502277912168133228820507481940433455489010965144612742305289140843341009927267543924599392319191333088928344938789528221195598049062723120603138886147956808745844452049012153866186457751754591454635145977743159926851949291590573077779543905879224987900530684395271180477313455793252378181202591646936464912094334697030611739253764833966755482040643500487172161262978810619257688864697992817505583339319422858042363327420053925135638918558885542538455379913484640844860300620539976116614247949281996090334353668871356746814908252567531150243500452757776844181437148859186864041094762754778307771085070583507517600991290728395730890530072795664135218827221030989917782647893584334465236953892834532950342863248605914882747463532532542410838005657181994720029072856183230062728388761093854105800233833830417460035321924281733021698479697109139646590010403056342157771102088439551914694572808964492557001384256228882105657679614123712826228795850535394517664380199066471847525275540116716764440667219964627843365328114987696614310525579923699776795057859538161685257916456323472108484989186452921501150427347884701325894635017397593840295666178096999230265282160924782424894087276752836977253656880286228460980781744348835994043608056260737047962572318601653148046849512902236798374286337735617666622439018436130336672891827698723308538615996124975000469072205382206352851538631039963254365790399336771742578759047542691388136282843428836371250597623117091461079032859727228735994902640035072904978791386216806066510328551957740718554297386539094718961985027800709623551319507609539176467573903481071426293887471191183402250678090148174830513116215569638001238261772550861050534043843944833090439832592453329217788070348900084401227157483263628627290661158650190044085059099511763088803232025528654531871617165651412199291943059273376598407186734810726004922403518616616013858246544415297552508473016752738340115072885806947414918644748495969999306925974111169791122378811434169743126809865387859773423215260908102216583089043381888892025059097562922950514256775925517034156779026542187363279961627913535913515417252147816555095599721882294700893243157162062184096070159048368218246061856978595384809093346804654748639226901079498744499879124748869050072964954020273711555976069642665970074922472237078092652100761842059681823200496075208484272337323226722592479817793353963812066508273873254015542948247078363904969454534517445442685403157283663383663849283056189109877739810415377082748910491315474061479843905377423607800712616493818485898462332947575846272065793783038676252895764960080214789534988558450924659198809603640091158825857132137811667826474448737079949455186959581396466421260378175080646514181816634936836232116908942118298561947329097440443548325628863031292525536685474937448846504043963250136802715309386736764160149243696741909327500627939630315104251608996042461843683550134222609125059585186433704593803985563637611471995918697326431215403732529673527389438795810567692922670957741766255264252566644673739792911055116470367563535389955731197341014735242175760980821213174346533421284060011873582536832709372762572922281817720328692433145146586878949081275369951990896570244989996768633303938851698991011063107513101517035434619490602751950256965350201725362983474648841772606684492850788808838621245358728895888105118413475391658263021224692830046827367480734533198260364573553405583667633419919813166498437379334037466161912423926385168059218931507847706184912637028682937634940070318210109614980881963969288158366978409182962961268146349936791717326373808873656091519093821118882679462658472545133007889819418988382323891514600649531504480214253195632292778703806429608949087852376798765376122919052498691341505605740223819071641521846001318038340677205029531192368365114522603297469053377067755806814788703728188583592855555493422400673098564025429633019333776827888182986117276047482413300741105244396794086871680770870272843532984551029411999886207318833487760719486221451678605759141535282593465544676466654550731537659364668347945892726771461524121721339562769199175925009783646558988885771434473005751086145933460989769484262676932394412444852659166316826038498049815735493041987465574363068289699315770281080895793338704869999879897117383048667802833753719914673816512183103082698816760440039150273395759276731222987692145415513105954266374387034447112385340473785005543105686051838538616107277525044758777384438880706856085264644968265907367551597615577304108351584281689105414953894006640000327376629128575140599672682854307442401260237593977816305795716361557041747720722924594994507065018391218621024920360934264437762840798385018658059540015825019277210935907956135218221851427525886257869833217690974689987444616309493522479644477825046629874871917029675101427929406956592268605640126428279590308220741158205433211405619284512395713719968718007602760149966212090377897434743857784610377948198257390967014052678576783153678333336950011202376769052078135095009721055607569611140776570001556485007768301562891536204815560822323287822766984570149988320382439679069349929615299099496263549418515031167004263092467528238690479089376352018414770206190167836972486423318461316651737828295436581462495866580500015828557289117940650607497103488587003328967676678065102332723853671566700469239125679793182739133915527000035732296796282925425019945532914992466763326946689839004828879638866353805840418076614284189569598573912641637852765515734730522560355771822333557284552225918817039505442668055956075290477580749451016912662389773519585468906306635368827464378475759078705615510237825211121272244912811664125958682136244696554497091834428370537350822628038629464036800328314430066358595742492758999453772784754136245189435366676090550516431230010360074235302185953291104719270506225652692336806493491762237225090604034132190423152609253654382506966712535254495706277946534521388827266813528610789553011924209154552479850799973808998960760895644230488621817411582199751506237687186954272865338873033682933312315325157797442416009908521669242962572106527193307595262182450850907008699904522272994692950693848778989299844100602542860711577167768937303405445235856059976847641335553378519970567218997548283616413636583482318556913617428307910871721235893871901476872782480938841030721512265142406860427144467610926864688123870558447001474039370542594919415108371477820244841031469765379013774287952927247391906201985396653366553215699176629651821171906185762068468506918150359429587071298649437410558997714068287573566883280352885877641394744044212686760219757185506165377496142340864446967900990494288710089786737382964848620836854106815196971260547384169857916052384575536099558948486588729867930660436378516082685509910212538719546791604940690835167085428707788653315952415914017025232929273991843658120017564756241204373203131188016445282069429513860141343340683273133635259165123307530286134768814484484782237341314607147038263748356392543094819118494637783635710271916065115613061460096812551178260520842190097940060421039864086886046415912718955278625840871982749288042731128663768456096467405197414929312304407267676303618549077017743836007252480795832571019118450349177416161591314861578542092861940652275340711936378724961809563071138307752926395198341562499192973546807995275564685067392946434354819473472436404602741486615076889511755213244689342248197879093843872181090328037599519516784857162100151994422548529347559278499344881778502310934775220224314957230478506477021683178152558883522924714275420203651863174939673334737287089993687541078137438737883196184136516134890906276431619817901112711213153067351573757287797959593442941580091345750192456390537451736392159252020211349727743350669289544708881320289261184459494424743432441462666527710946694435558892625743824925410110412774118827877547227080640262705566977776307336864025630243549642271960372655290391669314813418844696010041457324099650911205008361653756729846474543997379544353385710734926499866594220188021633419008230453195653255906977238405218366196602565123413563905982817923834387916386469321112888557229193874888667144088225803953123680632638810603675118780484929950898740390002069364639404294045598994030193579778893976674890738049220092499322336410159273788815430607748631232217968465560517902445255704113605567687398967403084860286171705958317681224594097378025706689675398359446974301480376104838733822445951577426457768020752043996945248488573263889081526892626062553015536060959905226283139837950201936318084646945407223708902549558345158214960775781940463518032768089684707818247720759318137480967952457453180323674048130861111641489048689133358983338705867662739380669907037522379554128034991912198799864852654300493332492487036639427781618886810690661717779887105074322937879695809521831420654607729922071242397556840930248279459919775231481789078008460117490877112105320588381053006094677786095964568987101598355003061157061825996331287149654890166702659718440641228002473591787014845121102229854485442580720358839928385794294371527491661778396048326242973924990540067197757072000000049633777909371496370636262269791878193284986951393060153876578877109016143434128123035637964982191012875766109127133735643412335276469016288778410118193496106701578912150386212457311873568715685195414460217566763111287128279182073406198870939854989686982425812232162711629286241181441370245549544319770087033138298720729578532776891072712405690030213299532986316960435021681418677416823303444660124441451868869329265293354287196750102122372206812955817660096740931395162708940230520013734548347234819949936073345517586353392039989278173622315554404297247521531132436052035534535738743851874917569675104958997240840089773675758299222008357513560371923623739356792580728470922041665286740780466035046513853234085141334766410377334289990937685035014216870315266277921064536401905317440937264123525963600686113641328761681506494993855027335936912372172154217896531045938089720601078143784469839621861561183986789930461887737578371725719535915401890412173100208116520427482802027938501800942977167636598521119080056143697992772090050633416197904720963430748238814150128719082941051554886741375708688370417544432515299285294807652319665026211021656818634050820693910763483758107937556037059789167474377245661729244296678724398767005195597534237294905102054462412712699731893202197202528416507899171991335299114755814655143242365618255951855536588229823587569675682149731546809611403338627279772800989587144175171815094832583208937385234891848858643676287760659015747552866544931804278441556715271508532743297891769473384733091674859608089737298162732002079891051029552809001501943029589499137506527489428679088905289975846141224299511325800717081578131185916795617498820695872267662959520211474360281960457215860559090446120241381199348767156179631801253035117005308016178161238618655142635877148911611716705164645577646061893067718074656806592561152456891644950634429663452208208265778675430116486506807176007907614970709683692451092237916668028217342535295966006379827258736709144879820632194431035320762672830026256860894376393813829049739156085676405138899531783424729029615375595173430143451219009955758796444841819606245069273601435059250676444731135316659839927532785294660478222062091174456671861639490889075680706461984481951444730787273650487668943880734969942939380201884665907961693088324637426462742494808359045727955219055540647731640819246514946337582206056591447300221900553112198881689334886816659210060233683106066581024954896880528554652852825481469876847855673358872456730288330447537389009619365285887278591006235229612569887127668179252817502708331971014907798749267520642637317039824753905424695521257669824243786825398845365062950199691484651324714246109082116424847523750248024636163414374936659147680198810005672494100343705708251924196056009906357539458585022734138508412420091110553497590636343754796024459544654663104591691811101760487197847078063001782597827852338999360233104770717918007446045461728834091738933506302271680020186608588211896549847966968804702898119354979124368280584103961126161510950076657541721033330895438702371851079282207500774407117241407608023639434560884884109972680002664796758171349898079224098628959232591237442362336995061676419831526285395849760715589131911982500665957002973690751973416901497236017937745475057194422310361169362188379591364649586862898589871432759074750366943617163744692963380233109549332794521814380174774029080800465317444762175730397832323721587487292228550914058965623957226267344918697294703719470840069429102447904602711154591156109456187378479552725804634815728298966429433523520350926259016629779859387562850132915987520753549953631192917212031375601667013822788524831579839918764539716702626805861180339282593017161556258080741389172796081508835975933980883690940137661192975446821719679803304417699566911562068018139250186658234290446775664344510015107222835013320291147733365643957940257686730381054775100836968249586893739825535658500924498936563155351199934669224057138907148769448665589019537619583668600048780337689705624654338376316830587646359732528464898681020320612631359215937387507311914944660670426484313213868757805738846631525343107720697097334793502754632462732596088773032819436604053256657481689253336131428647957027609557942832126078003293460516315280496259932194689070986359476046287482573736616527820927563997031302970704268447326061458793149590705255111655670413489167516114482616920896419413934221639207813995633708114204445614441997939067397001524102231342937733561725012608008187124477443177029459823979805766242807691889830283592458215778522255389036837426271294636934161045164158810730699963273226125057389671610306461656269933739903282931658496128483677442312615434233954017099151209444150229714535363910022957310938883089616635977659668387407261833584272021946894795348966526352775164916495844384909058194780274880732136053538941386570298773460711895259832915353481858852897091591617496257257318061831262361799960398279166188314959263831905636821698504498634846395481334906839893247778777681126497226152270285733604422038275435674582574205968264444612625817294938545316932904483493602389443749466555038146443097391269679547250098177416238730426564793142048989641698074558495604117047758680539013541980852830062544842861987866510356550912470588057846604767188617492014334081840202007759753649387352789282392502574651890048450347795968897543733475545507771025798635327582025271037866372815731492119917492878293296777522817796181835859452022081714018611679983520501590197073296688298316269020446474571556451541501488504796612880152261096792089476813354976320299383017345444270847978344531939537009907620669542450223725924757356481391807561854897752079725335863418286607451930689160725517821351205515523037628652230022792890606596961767868770820946037460953141635701015338934510169225388210048105053285895688386861884428770366777960637802071966679168497842383529978911501374327720628202224091303296680960379050714428764777409198309129534457343637639100435767832880453507208841856119255771279574091944050863550742722590699098601212567357796143363510767933664613333188670759672037478545836787866122733491254223758173341626083271071791351085158853012426369021276792579699852152228020533983697298105209449264630462225569043533768148956626895828471387504755939647568297927748254817010910227080049247005173568529492217622610312923465092037301532049721366387416245676290209205003504444642187290465766699270666688362393649352709048271371615755944850795324412796230335505192929750182509711666939296782137362912834877377669501889774591310173319006605942825166232447657515122037372563886474687152954991158007503569474185751185369771700553058414472717236549723163437162689949791785697740692735294595011258105123137821033747064623927718130132911225899828908867650881979696738999195822957439119799558420517557681225647966551612077494607955841226200369509601216431978907812480310720426501255738175245933028778978765665479496724845280602190370252514035549764195086880280140102344093257286892894500794750490854875488517430008661040062841049748428329322976878863581219957060083024593866537881995270057070454616507698892406521490920527529056000583033693646286699537242754976120311816235879596162014066919722409216837290489357500386937949222652453927805261887559748261136184166544298903199572048790304136208597389903116614935932052271117507834623530255887213122655673343033760186592223501974237728528398168913090015023085608762044802361348214801224048644729200540418610268974077554202320939078248369073378100147191770297901793487552654569659160347874938984651134984471698363005521266008616059598536010803929903308849573749956186828605696083599203031043362297598664722426827150044566696092519089873975810762083022123343498591970092775598660388447026443491037621945746591688203288802947063170083990689168411402254547639143139826432048612546704936403525054747194042341209221577605601284835765642745650013213701262178656160759166023595133233828544855783066311436843141542538864885812132752708795710392362002888850989262974111360431089047580850642425254069202770514161345415979677551644664651856350919626909635094065236456614603496016486916127410462626268273242776994609563189138426384424897120605795714561497198220579856921264866188619747831449642282289207088357435731679789633708496836682924812086149056324899272156355733916294563682003820468767450616437710029505613084034624510158132705097625212631593186360985731534059518160931826594382213517813670325866265473441715938011453141309004559739637437025707871914777267073124801174710160066354654742875728996754564519945532038900014477993714300647671549598403501007820589906231990455500089811455762701262849294550828837308976486296655504196783489784388965886634619159321168305888224125088994387065292878032479478761598241508829447904937907494944025318490179558408966898900457482664618100593311628327569793668495883718066542468791712897212264973147390772634302992941595221779012119353664402123833762736201538067576790113556410597047511352790989152412779062791381974336860059865859645833857843589936900570931102252461335201509463832083517227554068646939847315357644810070024201221509768899770405733396284544893530784460154463499472901914954226643355407344938855997204210331895357633921384815255102667223815463950506881997762100329828712914137697355982464094191079786475442981056786687149180854582497368976338789090199480602500466733039631623580148739055869298497310774821559252234461472912817144908251700255218310243405888760670049704832197801070298580391827879816715625034445832963001381738535597013727558153666063007475612063005632671409953134401168208391165205583076643649881491943093008764692693307710840276077787966415678009154354138163683443356884396729973919763965436712965251381906239460565204737937867235646189164390164067046817014372035985062179650817250559868598109842604052608141296223113900615138887190844128056476852054763906747998668215205051205373748964831487979663432187541477994944228706409745015095036737898227146532980924135009604196723334640236567350634653273793968519337155835796964369659270681878800606206193899802618801912632195256545694041355643571577781623510142793011188657726969545243875943273055721531903109463066765721998965741365154798057639209913650208583606029763497955704946491675123847883538058888247406934351094601661471557598764427567308135253716971955738217628951747620933220698355539411879836549492550112954131611265202125331999328972407653456618175447933388387921532117322800555485377741996869098254249655020251394199352381128405840932460141773748144880975185937937217143213338275633872475933086997030011853152605479745486843584165039363451753055663722481884297074460022135104834051398206091219954575265010755682354934317389716983312429729025713862172373772202580767644598436401655718143321611820173384947686131673356333064892298332501444660832651898009510877095144070736028512830498823957984031084508952707421392135504234336518331277603163605209219742919980780531287762217107773416095877952370697140515736248584979518653780161791877151843665111815371596342662325078632466017371717254331962672354311615982185332601061359223735677926295277781386145677895298741685170033731557051370365307677087936925151747242438178042158720320852748494190565334913510817532761854988440896792291051191952160015262384504754630069370602419151966292999778702814362331386885818432664466873821739944105634729009531348739193884448016581734543056383547157292797012351054319969259642660833903009419007331471536988257719636409267184732552237744327529627230128630656895760561609159663740213296248263151909660240431164100727156956473241420826938075895397606254775801738908288724405244028402587583232178407933891604876266156304138824860675289007671081744925000514456638710306733654192415369780683115924235796750971362187747283858798992168285425226875311927382540484139537411817156468387424467848409699343175346665227364502742067208125374435456643120764981667098028218156314976261579457970275253893256230627678140859299291872644745508993215670584349569444525196120782666597827318958594097689363488370757207619766067991489694184103201045243999692178258657077924407497652112040261998432948569637679850833832535212159788840831324162657827998469927227657939852732940586178127450403511167498471734388485344444588150721233404383812581329060044235753688356301187368547922399090611314977061936083500038589761624613012450730316771805895983941261006940284009325428102484765374524087234281093225460907490065070514882725694323789087675562839251561393602632547509128237741833057580793189481460752539179839114661478488438579378409715083063141934834306955860726418693849873917067368396405401605135587157002666534185990501248091045992729415828296753850024133776685024613504304378970711425368379950143525496247010844575921820855570317233456575863335735908614291703312807501280322719029242773679715227741479116043357560466868015612601309227594968366768125127477733858131049709369590995474425566083988105333350889710636311598673535112152687596057068897248257261045733848832720103982519141183537988885294070840537075039454979430877100727014798212872432880518369510644983662462228458114436524254850471987422134803904793655288483336301422809952686562235015637439134668484226528423890702675078050210888677564821983075570070868303762820445569547087223194517342037635627544100799622310387896211902135864288197906024403775584189395437300794225743772323085438747809215709587647301079035735743959736116109053022213219227353100783230688325322359259911048602059590256873763348561068893803333803453633299114359610796319938831442347444467730045037035645298049545581005137601025583347933057129744273872318320440466592399800827645609619263095762647834265116999156106433154946779539427578346966730826795453283050603691788630102705796421285487100992508705480810569520807524135830117144792071537778859648613468744377358911015846353668642563458437885146734261676747684678531665364013403111133120423935953487530715792809125881102937897185113763495668678656884502036697449227403378184200822079809056909001217528310493547827144169418818930519784688253120301423159745486420307183272817645102096262642940435093412682208614582467287754922947315121080770665200077384936815684411434172147203803152953071172503139905209619205078562769826514482498851169075437648580133271544587065310699971430292388472379909430565311872248972204599545362201689601392148713449774643794046287398484991742467471655247739530681739795879634107800544283944839940785242222884424371325607548359481906879027788692508333161369320619603157442406812801565214659600646696293254188974400791631248573087216552906654553811948456613246355676708839851364679164977194907261281150684954500712054025259358595232295440676716405966560342029515612851344527330190080885360366554301083881336577037877067325889443387209611043256836162531037252847022391564451351669502920962295774576652709539772389408828904563248419440162529969412649018814057136201814051425446683671304540703212169616469771098039088701815091318039104391678615059179289825138218680854204979953446332560959752582625362454312088403083651149576582493487371014372018452648986968453280431060253226007151261562077770858927842548929348337914689766437005612311414239223883699940522023659889103973698619540169076698524265570768644798962634542033254185453663868373987919572259476109029473347519110383473438067045957434017819878042248805595326921524634806340701133310639420773446821451548545486598363440463994001947561994711389678200033190768969593270538366772447997742940457157044353488849261025535677465095592863186354959458656246206004594775234169560725627854940677803227451909125634555275915104763964373523157141881898899441602832758778462172591407196099516563758724233595280672460558930486335467235804489068333154515427754905379853303256266852884930879836415277086264144314864150087628001511106536557645278753564958366863769292956596251092740265963823590587085352590752366797604609906608749237769463768612247018632354107801354132695093105041044717998204872932411690056242980682585874619077307190689034950673030633931114008765099296622387488782489225460393462993220871343635821875969220612622568875956981770158112534006250271318290392154455544322307450303355921552862040208935231134286318049838990971901762568992803771522511616189426537269342444183420861129743654456380162683075222918197539342112952363675735444726871891578716858815207897231620569165466606433333361159753938213874982481128501642596840542872733075307009159398637607778998791674375164591062297536793281707443680084260550590262056058066990247309506293142594395846437790152859584788443591626631440200514979828015063137156269255341189296810960044427697498349843153478854003582464396600960786574708387296274234747836287640605008239889464193465761570408306406323609312132500654226558970077434112718395436497490842353713387265089429544349790116321639338327947078794277777242458779268736877398327830220087988770783510264597611531110166969385006362560026750640740253513327009523700974421551326474258983397197039037482308689642293537691766826782865976948738368266381874737119742361931179293089548851724412013507277094620475921720014663576087166527123374021018530344759453069612304917096715680596462242846481228735933561430393109273874202517313257524180105269740229253627420073612434546670966333041547572418564956752155312224008812103273944613095210345239735557484289477736157364646933585020960378952541844699457470384428199511140406913636597854755694191047398609033645344598256463801411063573962497300484866512110676685297383265561642621832506086302259644226828607052245610751491982549553232127624738177543623926641052648871205398078200454044841544145039288354629961845673645842778768798023837228213372238152634142512306575129204676277954987985559093707195854330408581141237565964537543696941324114478763463376612583715137273029508145446083702057772550010345881047936070017296583462332837607030710417466035339110097657543558724283514138951936343299493550010883810459481468500639196795010242097447057167112326403790724136248826385583183090458538227186103862080438306585599592699508495845450490697784357597531620299081064515000050842546511106695514263251444904780318440244521451267858022791162744097185735987270972160629934145632777839473194583246359463462316326057481616509485210339382093417830215876861224680183626716425062047141135841542079942208676016131619773058805948060478236184724759511119522886201645214010902505816275476528445928501784969811362911817070121108663222636951531853934319302967124641266309443075373379546951342410024572783746837021611834051550955203864864540925593014059926544550037687739419228011798380772499936706240516272019592420984175789833632512058226922501282503154566083386075755408090065384872334191700615506121416545588397665946447668103540099923529001992709929834860365203369924221649887891479210104413813003154453590768271922957536794040273807394798166683141805006767801035907044402678528754738129055574519730072470053052259275871653822799304756056031466245987160040651483727837864380961557335095516971019285584361140843461902490392887134232176789546780513766888896485013395421155304696274958251207003293519078020516111233377035942333108668490961596689291412532608087853950894359597669569199470184222785550386995678134199312333986054146713112942559335887680875190730114163757674845768260438681590078607501035675029640299214104387556650225825104406842683432364789709919376732283047740682867157597078057444800456653966817669071265061139567574186044865480038555509888914326362236049604786398666923289027178927067117746045805395496970814740824288116603159218621538783075362430189128662377729945074915870190503102755783533749459028699450237963742768922347144216909523256946881532894950849476547610230937949906166822561773651594220256228748764019134860697591007432738741785101690399450729682778206831060577915210673793649603534525999428719748515502580597880431015671646845848140062824412168635818305679587715894194822297198895496686394744633706035563211877312903428488942620060697513445636078399237345826831401905885586182719724465262354585930928456497368578005104159550035779116160079514150202046574906782961514075032997546947499670601584820788452616899126728578112753955402127918925858364104180742195715105757845485414745072393392446832511414235711727506326983342045588543621189046173996143436625008040028520876967767532116769528054048102584713726558641023618157364335913015005551520363049080842334681780592983808210720989703879089727817360005887394470005621736427645605987961665604378442102468372412195499849889010905802201872968435118819790601270839881165877059927534497545532927750140961462054284422858030103312868461935665482193217457725614978303707864173569269739753409098993987519208197158579514010957106713970124396482593030099282855042354055272928724724922212852310187988503211751296699785671204683423619169716726871576700253013225672933793212385746648628387224125829926701379691793459086169353580478528426824313601420616700931020607787716238689075507932550401201476210508209590166506218063181818352127871185083614214881581030336667331135576748303585312652776012571346092376105172364696993122752205809470123572278003064530304890861339121546630248009395957721472232857542705067074985837954494066236945027342231635203090065061080498593270060115928056719131162848906469104850528589168359557269305475249974519330279839832059603132300115577846797719156238216775370618133669841760323550707766787835674872896428049198996091364741289674236615161493049546863860596489397757852177533073923994101495795326510579280017651731398959464331485391195507939284268410306653799130546639710208549035546492070108169255577185888619815154426833986265179189487330225386279839516206547320931768086847606522985447111620956421445602841010969856479382300704315589586000933498738401226211659544447497761862833866046194800240309599335908957279817864796372105140551430473070447333484363480927130871369326361946145798548107310600697379529206236796717152846174044618812283680993845562093415933077645662659043914940017323608297415767803858717038461203692269647484824348763189736237751711169868310502625307159121771533997027891398884150207568817330162721876940514928859822289942251333242071369541797755261114619253285462257363386401539217403467465556818050420797467725109456118222364422868090236961821153470877948774944043984328408165530591718048352777828085805512719749048835777962883550005377951294085346219749178119074255253630001714118744835765379739465073288039170766527935304883896876974517269876715221474033402742015625079392044842535025602732060747775967220533826110032755693368984464175446143723432848634613268907607039695526113486710805324019964367729179902757198744835707219783023109397072898654507848048611690048629963282981279290707765800448938693288339696153300414293681827343161315100966015130553091780232816878305197596432275149354010131576634025467163429181449847048328002189786643073044109898647857600353240794669653120140886608295910440091469522662968457849560123769390576267368873375566355069371074205050934486016888098866719599406916738804988495610347785475599922547148119580346204988806977272062805285597829169097327290903114640443252043749204715811167007102130712165188513373931113530617940778095138041487364525608233168689070333084806148942280336181168349449214490861791984058263348511801262437163619630446217114930766224316871639934078403177332992563491169436409109135568767568291045064657309087641469452562431997984825263304687281702974452326142563040232090761332031563423014390095980551129564776303046488439563979092631341963325226562147018868375600646484669116071661908779410975926333697537437387476068442668329913704942704272457405898923703192155459288739402088697698186016647229847403936573887413251031880655887272244380435001510442764185155626850964510897106210609152470655529254385515784282333984465867901579886272826015102957566169399403533334669667472079342059172635149655973378960064509733400857880413685005113133315798654088330323530903508462959017694227022849429455256664416205950217867181586048943473198489800892696844905628089710814683348831137767530206571209140406133885050871373849100058677294958524341512613550491168199318732366840540319840274669346524858291711505955781809282849421463561153238934095414120127403430170651545038918933059643635578307633726100167041785334002905113622590146520494152907441807278063943879329734656514970653444493325550014430218620782893560373338794922824097251020828255848722906228664326504574213655566112543721457059641841634226285517708159027574448077559588844822671809058474454943719591306503241165403272934980968202572198343782736533563009635740250047502392128516978028312224562673979997363515039099130222854331191614406731603364195562890475873200536642119323518781170064166159837739157215292255048625981767512603952992316623941906817084646854003098321422343490410722515997841500112009908438523019813204621441790933706712811361369555045659813316174101137173587719552406955229374257107019801543472060948842401691022722868542629892466222669570242857112041371452304892782040952877339628704528282117641240798787717859491414502239592258943820775959463467075507158597000447304854480988786554400112090061855838832575855437677442755076656850802870225581657215206097197403885291878047799917816014011056016821016792722415364070637790080722379816503206798152399679177298072057574132783480184165304096185874452249991207718778217619736045443266175853427000250604481936404370627578365511590872567431372250249068006796931150977328393580687149904036073803091375411671363055366768970319042804442140043252305699778926305613797507808297077648480371415410396216347180819319720099686215726993789455851326300253886293107581139362752362721521556179971155656985641447388582101999035428211689229611579154009937374457102036138884103929416935528156278080029308107470944535898181864129671728817357415323219860610277142671743543379994388405441893455880939262371350957331659387254794791062202444715636259922754191882995167851119981698195957515257276912511773581874118986428276756904604938064103215029067280789458515042494327132857563946492569323383713973880601737938205504785963438041667312899023443199027569865881658957965949552797814162494520601546140021497545590830947216015324823169743223370840173125069778678708127835875844598778605552593164042077686504167772299269953319024437489987461535211697763535762354822370635070523532250760747254347888810259388128702850042246241565646486510645645866339012318418774688376653988542270997567533048494704515543778520443852017028331501765292559577395212790071164959912507213971843243803718213489810981043496932047271292379122282542067783689110488996583807267262105352555073097781198865910991505050518933853548139733378092479736205170682704868204855532000095327315999038442510282079271199626781581469856517578558230831747364292405762422971314582439845870576327132337095243969758465764230172553141955869850337602618745418740506334435808662399242048771807683799053971613730657023448649860152590092816072903045275912582834827962132427080469602762009884908231713665449973546988423897877733928110120134427608359046227321121455641268725464126241360707073709718289416084619911883713798016824184000542385146123896902755086006562113058963938891061811997588396712986659266265866769333639240622311430124155901625354093975096516824845753511936486233530302422079797955174651125134337643747848122716197197107218109705379009231459352095471770620581821336048156437864752782696140202431198641506150126493995618333125408757195665118716644297313692445224513971296255267919102682178437988843840217774442708211122367739557909162499754399554687111899478029493920809181323992760693072083568204042262782499301087967523068066751631940513831151889062894407007174437853706687499348710099228008354208358518766184419291633965509124989003089805755839383677868543841849903227047120716351907157600220006026497857156159616194450935386786209761621708254265876085370112600711508716343059379951743724869492450963087637904693352392152566115807680860755562183970343382379454011490041034088443156118770835123069450788247705364523648089546935256646669875466646830009796968568290977736061749613311444076147640301431367062926114382400763049585864560318326353459698832110324812487073122599309814432033063285856473829458294014316674441279877494582949581544663985344836481051248866228284022833330283014550592437251879832119920423629629173163765525935516630009325809973932904700595287952415823562324786037103795895708256592544119323895453857898778750691149320856536710036027358018092320669296320950352910958212642366178904953053159899157189686593268738179428979380954105780274351379440320477285837244961897545115047077651344141275007568371730042723873010883495615973237494509391372835683984303896097041047027560478235528980299818976225042611023932647560975060598210551395962286883491622981051773162092541962082296560561740596978491060667065308784799552398249241897671238358358542380664598728199747323278157836277547990530860624887573282305103321200880214234812390434802217666215872508532809652649609124554681802860309125002112534076742131852787004159934020999252153582121896223222927428418132846492728194746137800461216921089140409330248879158382008547667181407377875061829989425744223273809408070120127254537318063792663452297472702572380194901109417301392176837501840377386144229127962405739563455485821372088851821145875208218408105182268451164265615638093160814983038907544468746967562729563791117702955930322885829654534893224725546194524842100641776338989049757402077282660456119445895109646928738210295520233590229347992166897242067005589225506674835356706882709212222611176977032613003832315298408692608164189972625413397115171692126686451362425938423828339867961676734553336312330941313548883550020687812345958216251419299093009502779991575152447958333054232891057668481811676866415368998848442880891709015679426256951449348508270906002835519587662896345921989266527215495195685859055727387078514274823447836279239045529500947176296267705985493794460793045141409271657908604167092865995304849378905630471703664822468930997052306061118567871227429165364861553373960833499423652390830512515006765491154724503073399510701451496207543321163535159781706260638418493050524662740742448958686684848712573588832492377929118636638915713665569604477231231196338183415780238282714045055716680483878701164375933392049743267875468905444950673907035226539930872144482017529202569793920799369805559470389713823540880775127965663613652867331418809888039379481783385772032990469353411093252038354473286711724977317042742162991808351906900797498925492127635594812625003445082517002155597640605962272064510603279697016124281993630309416837023007517324564737182714866949022875223459722197054499517845697154045197434492741792321354603998370378311627863743214339090603653205503465958092837588431319416263098642062783075693167263659580290877243999045426996209751454564803575057449720189670180600667303979180206899903763792519795749019028929075059972837078601424194982742328233204280063070336898244812132746099345615718978302708096744940677524341132723764971885079786268263323946251641466179853044635155447327162146936574010715108970966362991688053149096367861871111052674955412447195562750353723042621732343531994025976612994216641186475040473265085039580140993535213201837335449418825865507850995813995340867729553409102521015889487124605655037188588822161785905894266597756279979328622267721601700163038364259219058191994172441017153590831116491742575097872735186738829638181225177120792239896729720451873144792106717884006251365970497028330204989948888785118897808619473828210423658875034515806062317090218239525535597615140349602676009170662210186016718333077695382064740574383793863926701858568891904078791360810078910423562550018059113196221405949480257981909620596370827188852601975853464551180074555994954829643302243149045013701497956967368851499485251060166426068828601325768306457513415395483598186348866426798467216710756898140540449603376472494887136526666259870158854617515877299603671768186651341347691608476468068892843270940757541035427614881008563835129917444398588578591155326640489281666165727309670563622945247782323636485261100770543619009279169295391100227563720576634177743945292246730108897716782422136163811907927671696240193217711848114433472731553853719546013971730557388746571440978814498326651280939940587303639038946768652642154506334930915278676347264651179483036753707418923593273803237891710353607010470424132525016926514907685253924130798120629477324434669716969221601737919681937343438330141950957615191407743421648177494616316759625989132036667501240767710559548700003079959649571488941319336847394128536060326587366675411408898836166250284191095753485259743711550814813124609270202684931944668264489089502061578367262316561669242133417161899190013338132044604608152671353269283588258744370147547820205655827247052546079710494764930583153592068209347872671734275399818037660503974394969740438219806900908138056784892045089224191399351791605539209915008947990605503496176809139558858364019357409955406341349186234585117278666552258203775404878213297195217235364542908250395770195740202818774130054894846975403095534563593739320450827071088999836923035473908336243969829640197709914368517623986503141613667039884394863516997801513539251547527231688068652415512229157393770072440829685535501355592560274978103515956279213602781208624947719891823182769012947880330848352992610653539271705232229856294235132833445343339834331298248628213944069387686178491882896369651977524069486266237940870833954564498269010815294065490462572935085397995116414516358565290905385028240779320090811655500182159640651028234122001966886857146121835649903977648663532697750677338024282780372294996778297519734510661624847756815472134659726860996613178494666214956638949828666130042522894762791703067080732579899376724585246691464646248460069615680223891967492993517976447956958833534497210615454689432093467736372597396273825755404004892790854684901448087786836947729301637330455390427196732454732747727356264366728236534068244431219173818125141557921098568041376208150231756078829753633778608351253735034399222763274385547658746141651674878979037679044970961612466714061860498888960166960466867444084902142239725789338027819117953569373336063083751232161441573805114196830456362187949971662758396590451292249008582790708081881396239893425768537825857520153690337026184445922782451814633933458994335594667269864239794484776828283722427740571996404649109334054483303863569781855815571446342216722783669548524263808787121365557967480817416401726564906975211206442917415033483123018277062848845933185872161919594197342168119267695820631079996252520577668709224753137736110094095713561422717547135994942255323298011210129859494888179408084323537039277458926551953745086220670528289155760794111840885159191299897499017468337929669491491920407443248035080740974836263769199328771211192016600757431892171654057668050229715793426398408352898911120322767933245063483514382558473058152513463481387583580725838007666822532295893435765370194108156644407594758742164219442220643379972044728440169129760268414936146414014500331299047983611073125169569339445850803959976528558479690573969965398800661487076559694601551760314009404339620693678521375926746995742268671638301307308287179554711481983371019108062382815799132153018102357629850976555926622005126280149540665195909626610487107262982124664720849862408661068840986157718868795150091652751871070510712174689491659524372668459334427361732789849690383837542410438255484483585559981445438971448810724514150555816188810475878825141776047130430377156027604078561083899462896393805933750307437952691584057291415543821674326774399605974375537526257576331854358421818251338959541269659121578137190526532403542317262142058087408114292170525740337190459106191540728846030971700382774573904434701037441889404315293082534421542295113582714763391017150960444746920045670014277869730677565049629445983579306875534303383817574513762725062031195685384760431166042392033034544029315743141053267765723911253511781960098934945241545052653106518153052466852191155154420981895807146877386538364356138661457222154342822524255256917107384650829987198958832020778650579747715743451838226165303934555628358507591495083879953163160028400959132111823404395815570513580606628284156166012905560482310172972758605820014644792332089647116201949501181931353423523087013799172570353893508767800213737461366485936585046721583961302241402325240963030546170942941663674087696958072193473785391655408950583799913687238500430582563688445437998766228558239718179498243109829362275239736240814817075581802368285910720499904710064589026641132640711448454713731006558739296659893717883711744841042677644208915854723364734348940179858790512048976457752047972598284386125816796933034100582508994494673021024157321484070821920965642591348268727151013712518908083516600143604050343052660441147344342904234911046675966098002589871986570100910666555477887616122485709077562017784076575170219580079058514985185188625912332228838555328242791316492191171591635019503971994683180301702361760764046294528523705523280004266024588821461615230200209902774601808668435593003815386228256609420309854975085947788938366699892311643588747511534591367719689889566110819797761948215617156850202170031850497815480395911736329490529578020160703864411431411432608727356751819961409937354689119762783647747108107828739481987136681237907920734034265277050339132828876025126155833462767739030845048743458307287245648389305337696954753841217829289299828514452444770863911964211254740001533950942986297976503252146035516133630695801853748743915468218407076481692625708058400673031754636616412071042686108581039119933172161505693777642837881713554124790163706507965405120977423941453123272671815910375341170969561824999413943449567516455001356013281068506849928161055129351294319310440143948583995318250963302597323073740987320443105865878878745739373595711066522721726673224902116113561850506985346953291164759566873127744110244524680999491354342489535796468098051268309906285183188337829203399183764126566227761073534369242882221297391181602296173126921820269858422498793613628452898778839283618582416114694629317842229955028986263878821300272370707364522254105068197645210377241632296379076822806844366149803749233884830389985438743122712293825100431771984548027904312706966603004444552740238583954586326072273926434372637378773143419678589625135071688364056123250032362693039902238812212199814397528320631793929113055357082153242093418988580813629981213972930886775402651250378534615343386190895282135529144043575447211498362589739371985665532381569422957804375942842328761916152735831168099143464076059954736314133754681040768692260110153592826799118213746311333088632811956379026911394184242535340137542810582385722063304910500801841125124490962184848795535518217927186882629561373520180044826650395734547115136099758568688193890251373022427650401785481645790421558438528461360364280196962579614546356325050698517778994555046497910499277765484041471657459679217712438886168736876767088911054800903438469024326745992104800299126069252804597775713098785221185308249443997844201568297463315676373751688692425747983878656227197202769351976532211758382685216874135503050116431384100504715925686739387886008516925254997751941037577749429033840492703290464056250820194167014975286130206824937180528144296685698070218339753336956703322339754949295152901976579832046348468850563705993974884383523672446105648172503473070229606103250684785931300712129722973588394564041197572460418155866662699652507412383908019706729963440577215742285542441281835176428489891207058463076023160394642990970643319068014849744565419707322402538834033556951190152107881901739414788498072732540730315886769748778803790455814844866497096060516422158970599297574014880747812628751316062558880016773186620171419911590476644335368254705424591512426431687944559776959843482691087197569514770169493679852825521021230708018650167879021555147830380933662043039231195802877944491061895162567560972161311827321136925071211771638982733347994799767829949764438067637490394326921925617506468132471974326306425494320087797741753985553607368943857857302105013505348437666207650897170264625664577757664591986125438474931068024216744373941309699796446449552477149556373180139657382749705741913244697940974041020919867774913403877159533333530132081231227647171312122648437387049842262011573466760557717285592711774053184398460515865795395845199542491321420821964111523425410194334640679289777657374551439240858102163827236044808853830164143127448324583617313808311633076159473515270761432337835510478203343720880207743313723519618503147783670841443262821472820136123171450647464196568119872816411275394336405333878252359717249188651048079527024488558864445416736749390057171159081404145617234274397337844452146507510775747696150276864141535410561698934630790342130811945465813346045343710941647099813405496795037228941319388815671324032492626167797230886431269968306904234024856015992889683919400896071704958289303036883228552462827246741246866100705830346141733116435019890139184041751696447052004271476206966598556258667449290319572368327135706080580493480164520539964920353277327948334126625333949727738469032626000254887850822630585534781803106054006564114936450261016238514668550796762398572614883431130839046080873887154941277612717954995997896728464036219210798078651611250563879105182028517355218577974573913969763132927279376133547762295123798041590134729891931091804044855028331243442905747362358030600297060257611821823608267421198612893173510731246801248202036279015177073353435910545872241908042873075662670747666769640323120509037546621370612256312674382048801007399217421713880808088605454953643469641846262607934602691193625676517823086523876676140991205046298994586261888519809164812905682542862443246614621121135786984949153159745603992877505900939168480304920647613379664699215629368795677181324328631953289691452842260655653477999788986651243157290779372357169056840952696871198794506905595974150870713155583307736125629386958792565571994474950489002188313843927511770675555302285768285768196756468609371863953577182769397093382930422824166415616582223981151821440453458612507212881434835001716692444028006252252162746783480647936751453313714189711968186520196837137884272606562293525844015105616331180739874537949763786622971666287666572273591766489357125089386935686531880361531194559257772451096236488350880897131330640443966810122937402824603850723649135638289949569334422754489409945643355193357426530080837869126941940511095245035162783022685446027969104129048485322164512363159706024497179871929599956008883834420698681291359020135690072642330714747696945462918181047988665879122747086112106942391745871098583592445671821219724682447807996698135271630071013281731287726802442426147361807191169285171720379380461535422977012475258526575836938963769789880054646987949393820879425258527346595588512132164323356998366994322075558862851958168389755281396640908971476974256131946711842874743436623212251395998305765648990155913903565645958177147362065107256678368000880949382144431199650236543674243862508877665379679242758881428788354494204666172549684532260165136967099111708540184548306118325712956017246165223680210618726958952252436891149038055496330913678940272796280933531684291900872929121932775365155574680411920214900887047787901690671606494490791750266438910809089986927939457387593372433034903272845584590559135149873157628479562743801749944869290347405689456607695938415954011680520353533392907666167881059979973610481152431633838166388958986528266646464134366175562729329279656589640238727792036119948171002187473085803395499456965097914526032923888373316667277518475553547598634571922450751840610592399055565295230385007460782977901209398750508639479690887553627820177522690681407465518803471202326672297530635449096882667673593592349698051569650812714558878654579888476286684927743122439316523593330452060056994675398121279451309809940885063104148245482416907700676659820459852863418408907807511241378901592093372189814368867204573204212902033992697551215168601681759541348618542761111578234334422049471861371725316668455758621443872297736056418777389275751673859721221019774215185423935237052993799466799883006383143312203930353254775793011582340171170866652850037631801819266159001005886314485930895764900096236328053227026951077046957665826802003166426413008838358821559828091549014374007050639125465041527019916691452770725518228835551510683448477997573951948145126994933774587612884147885702341105691392500050359914637295017580561607314686810388474183860045174946210000023803228360921095041469904602310020256662671854372440464660153928003356974262195527146165439025051707934571267936490789193311626190484985549683421188778192579548886326312755979697232911062319164688272929735918249416128404902249653386902695669325634977010294438381828112986749488651697828838641540041401989952224892320847234992722608983167536714595835594311390990673503433441768265640105501053662845544584839782114049774873777809387702842423170206163785039096128582205165605793323944294876792976419748923553190222615245382292803001349074855090480148231551250274129567629955511189831234289525258846411853757218752087313358422595882031549594032482853551133592625906920475996018202164991692478386866316669306868875540638425259727213097199968413612488734272156403636697875262651077955082925313556196357745901046626039098823329395706911954179309059921746094802100753497076100209760660044077911232923235696739647496600214414255418927738911120450253621656830931163428755465182042820215417532786590495169866835355539105346624105538489901883735148460756267766702772134290431771429604003694088978418721773167184587814376057668727832875742329425331445740097857634535134739355810360868339462909341054938146936234712641710729536288832296216003763921270170926606527454587488003345052869705250595022239251821950750342317794529835552273703690313641791594124206461667888238986477273076722995005855316837363264766298633855462822509059473388548627823177390967792431450136401022653330455088375485678439552593449154628352264008358169382196499571606561010024695990363669944949598759972426771571465751422055711109096259844567765944977481399899300745824316592774561629363141954134706928188738670082205200004231563041288327939204459716218464361994832063532723933158421125359720662569005159567385060936112909350954203229801659944931826661785757822425733026402908881058996084796179968379791156667883341088161907743146084784841276197686383092449622283559400368817209720706308410575948364413766164260381974497660405823563721869138108925791848421672562391107285184464787861487849588258951616695630898081720077163453145739651592645066759417602419586385435183909598307695525174078230017056308223430941986107499226732339613684809949642851416303450327311422175672231637904607233475966240775963328536724957049896191251737211691889743501940972234406725367661163433967529778634685976216835514180897064798998602307047881123345434336569854360536505017058022585104105499715952188674811487432052723728442642585799262368103760217920814638713614519022167445701998778627355729008070666631798421145615642430002496720779707853495391033771900272074486919365613588890077333790399218268588378516990957266694692956406041689484144227880407831957246013387827591588237820485964645835644726656550068570821457197036229876712859331639033383343086208992134961375287881352253216736845378824354143937522772060711144621837269385095218148815184475393000455432216976252029704405015883743502940990920606872600886878335882394622206895469893426154681729256052940444045801322299395972991334212630140257061180132094037094741930953978434467184380745728366375965270796014991823521511113066174250938937106885282493755727482139817787265026024348165906344293115299512569821376650909760033444719386821712805230229610847236806282994811253119792298111197808519923982525879859151019559186848041724031298918540563726745036869909557874979477892577468417907486965596203574855572176523986549263327653019566334497593294824925883398625788949298795404941051882460486606097150709298543847745672426750617013456681439925439577865486616484919459366328958739829331223275222576336430124990753528540902493183671875809964947512080813128060253638792599674365712551519714763509071299925381150785270039743267503892309977002519953458399293918559427343051864568526850763190157174232484093527036491063312267675127114401302608435743975457757503999630293311492513653010894691095959323546817966539999561416752511942862554256594479602062619634573673638490287174317738991195617020720376824033040041119169601457623949016018913934526266456560728017967519765196567928339072415773826367813999072985965171914264663675067822651823424243611116674564515200782518701743970307748513944018168903356977380098117541203776185263364374041690971701107736877679492192203639902702345005358162365683539666327437853443864796404676314154910914034237091969241503231017275518261599546620008817149914352112235486279823699141201557068134727791103567240342751053188365016780692562838926194373623315552485587931660638109674876460463543749294539922230207644973119715704857424605317166618853453015945685008801245366231383240819533830744909031325721347095510569345373146880301048879142590385867742695150623659670912985657052000799812843705663760913130777614056413976263524602455226258412862777824153557901109329759007395023581758551572199808730855847303228651324639797182620842657159074603843614232478284366894050582052731716158097754938836981157711144910598429019274233142785759482843900007563890887582247580955045037694225744827127484847843077013877269101538465800368002207682775583467616951197009260701989079954398764868527797656682467721337765120354403542438962984889672345145975729483137890408839740339352035753857080869021336116250125762972812989189920915383154398472705399678018894269927523733084516810616843529661169342832849498347253803785580001771924897697087044482066583585091011647015356040251023583894361155481028703916084227585962959721372473756707371789020072996876586431669967229919785322143182737754325114275577055675232932417450051820597788477376178318255058620889686615435082513175194699359237364108087340581585784160115455575453369432965124912354561386850703420089002738859084156967199917023614813198633621483276305166461114346229706077867249923638255416939942588737703232240295774946617234153905430246466220746977665668682890522883199138123233395224472354344824229646334726745395465939030878333535179682743480724949951258257728615013557662589420583681617614226158561679612659142921906059464249164533979164486467964882130116500388356376688741148259824685480115833615478037000470193323637261249687495616048651274243397518465691099006230593296838674815694444386059514981704977300182984255422909566955323756450323554930226143268161600890355914525244672449911002795241072709509195172675270887471461352275120583415058893898616840855093525946156214646698800306150790546243267114992608801422541463812656207305320777911647090526496032779229836872702249591999757234755475968780082616096937140087224906633785225027157951824099568509637001435734069651546746046438438032357334171261901682828418122999467421164220384853580156577368240398680332511871865114486393713731671551606695724726058946481860683202647009709610752669633219655062193331713681090227813874629753740516981169109907089791458973943495025863696539603448759855071973944524374040639564005286653306801170124344391366651047570079108935799741536932265055048587515613974143460453732416468128726827809994692137660545756630064834631285729354671233967345148034767620748806064433468163120956710573747958442457448262133772185738744412738995556849092127091727192486781269958458375563118470307827649404029013341073285206672368202028319251083323524434823316780168541477643618239164070806516176500672567019804238953899214966861520695350449287406393968354674245237645224345196588729783733693903008132448900486040474943230858127551238273379044825662720608114486274945355826008994336363234483327021774277021280488216995290978382875751045810666597402521576298670218560628160349508030293932880615026424115980196659644237835974321233482514412757118656573137734431272277369887304278358200047065754202827164180879116316912119899945736154539277055917482162724210846380056458073928652861745099602031877348195832632082368603064006038369640231184320897451490818869975120388127706867692512464214800853728705577994851209491264029179169673578415290757075645244004386951507885669810622494783475631461799489131254572854751743321725294173591803234173076615345333123275613915607087357296288249452976253780190403614352406405141633802022498603264422393791481025596326014961536192719870188025826257602639567402184992496245399614618346192499072091731688040797580590781654173685071017308488074939096367077001978307598293867134828139957174919708654847922922509121832352240796227036455996858419396679359631912568063956662821414032522778905371516828489966905711729655869507444516981878477478401839296122565381554108141008861606214949535598791406642306116442472427122088901537212768450648567280246051573660798983981708608083686822973645866929320515645140606859383237847103270553215510694419468447768736515238358497938125386241273906679837294582346697540023129364887808041721970852253566274238595011323517043211538675615592030468997988841456797140378576327625003420573419604919407066746968821009672671888351464727735653828368988012612236110149872214586840592660651434304525275612545617761277383739706568431389441104545733922450420117820068037879076986625909058882896322443317897770414399293047987363020799345633462383841572809125636004296092976477375525996937773243876329255679217505984751304907179374714282567396018502520240318081638076449554973862399804831915638158977346105915729648563672632837412374865827902261208290562164769114936007903758949229273689511890419170054650906538215086539367270223479278116744275799355512899543549321439403897535785726337939450182828167878066881263406349393829800466082176195595961394340099988267226480237658316884097428765747851458530063106562116974714605358856961113177230886173249475650342240302235839597392508412292133770989363656562628120041767721420810722635744462402066716693763360171757248922689485977031108699508090814090765324147692712920981320514862338742735986067168813898839443407815260577277689757968516868999665858170199369349304016469733500655169001141335746042338923713107186399390221845885965881026168406098287569941254440206098817520331236338245728397759833529373185134423044299809104414463054161367735272282769648431228217062086121566414165498761210243014263653721393846313064351925668494487866277197424709751308433920518213621851080327805082818810279220676636090944582083376797344287066602013370706840757102680370510695746819996511763349653204394274810965073951869481506095643534192482999424444796315091804097977016997393261424362558674591602172987658534314141319083705950843493219966172990938232437973229572215838081871238849262280724864905791549867985630231734708190679177849195135544022122955619416778874546998656539976122883850727744241684424348925217472230939574122036681156659665507353386797966780916305310845756438878779790978659906611552139286345021804142496711915465640436296666387143293079785954137138775844919913237038189587447990568627441834049850451168511265318831717402994739900681277689641074012606399007436462549756515746623645943049165058798817248663552062230898132016987570339154723391503952153177792416732449654725768041735861370146719969527327946126504824165053205528172077697865037526609072243425002981744500023516537355331427944877133092333239518503907144382907846944419205033444752934777224233132536705075568857581686649557411502544302866600085781645609448843237495012215891764692934952174609839173446623492645711535225124219667967326942777768452015892563144565447650782034776943818125172489015345410624876218489018682931019770427336242439591974004146285517857914824715770068505785864016304176382888745159587145062571293669528161010258830812192967792543480380823195279204684081735357860669598321793930994268482148299206124085696445801743904219268627441289687360672777107881919234488269647838930535103200584330943354653874863285393998266141394913578834529389525219572696955789179728359277737288880541653598127353158647093353248158676164992542822809333624808914305070063528833423091513229457712156379354576024969823913691879359632996824535436404827941435629112655521373750538594853915692567793238989923538962185599184875269018701245156007733903816481672863711620382941873928277632104756881057573410117824052516945812402595647832976019140513630544676396779300662815341918960883465233806217381720272857429391050811660821807015811518622854284851453439791409801937519805168814087245307508586185214429642308121601220580017380428199762106586070036942641759505474572488408520961390144114728766210653179214790142664890973079673095723636770191727782723538452011821754187416526762717254583339836830633562412417331402824740285409867908279038034205758230999681039469336269005890706539325134173118800930516407481557520586364624340258196427657816442779748970881266198735350189670691305298913401899911230460773089520877147262821672712749601820471806731440811863152726029289167616274503594355658731654641328610835988506684994860309796279777755862577199066860404443504011830182957060509490243746769496893020580522721752195497565061163915097882240736664039209050284692904238322153171153185444669930511165347532826497337352047267165068280310551435289430990458658328987595273515814918129315726964659362504874418135124510136298276533420607424730255775399827965999074306474911193355739957951102312697189353174148697964669943785978617675017863405293729081488079845998259841842511265542682351189223028145266691646878582063274594352430410856895099569763879896094708310570643732516409873969128787085155742560979939775145125823940864001448185299729166110275065987325333180074492721517661077074958807377139928713263361163216594415547865255865844775482467676986820650998452255007640815239768024485332882690376597509168056344123787073465709457731357702869329458887652346946818524498064929490266267134075492514678249014620335311549183482572856032790909696188246765696855885314781810731705221785627883052569084194567396060148757635102964771824959219196258632635856219804009473370850983542204123507834988674724157140116567252773383252397157068747684562954494547379139450100794206062019934442739429181765671739030992502387858105055511156465456330496497569090228975218602096141064075891169111838445350788088619270652265374884307242964008131394488690851447791797353253001119509724542396052102416314152997722499701030229714587493556192815209404133779107101950653464763201839664360834109574437383921797834679415661073003984402882390494386731431827126044700480934010810440785974595459951225030336737041594892416978279482259698499029124069652481706914635197817699459902506451443007703466215777710619203458072177989932484310231114945253860275723417774155813537730791386501577001199874566756450256217798135267485970221902028574415718463241398236022653362810187498054076019815536597587009994131048608681475840816524467792891825097131925974437428859529731078473130414176229028278913125338303957710122951427240497132625445713000203306744289168433899882778586044182288532790041637036941016363666558463593942221952677995450267850450215693649639799427386730463648060772600429878374082779030764202176810793456741364542969297549188881360329371742524987603903991935927722438619482802556619443166728426212462153563315658985792543273927506240590030211353517839056048646743363520052119323366961688559462461982157750555546692350626114432530718930419639621628001832537724682454209653191717288918856365740747183236768350892299046988285861384771868453706898484599439019058043686687377470418849987607702506379461052339571176356147552372928847831187996010688353366115009776939048723693257592136753208797757037494972826849549807109264317240574112537324279238492458878034599007148768016730071775723547750683295102427896574762880955917219257384511818904106686517985840791508653535098999528374868166322588645590067266077481425260864950413940329915869733863772666511336401182834743098245330281994708118040233090579780135596242056255356415572445851352749055698684430410582522990349116257398795939953452593470925872133336179578328953440675475888381869924334451741816432173542764297220987698432646412139301975197703160868363324042716867642855017461442293216525500811767688873258453221679995856275356175451328626582937393885452478902225796184578503148487136809990454353682599428364469333732850486768162898099411346513456039275833933989901988137088328068536914464960379562542236506982544973172369466082625502495089671649615354107313315575404947891485972494188666741915509572156590295021583823279833411757101690487345682293930158398268676063343872848549915352154032368356888338652626667979512521735049457364866660583744401787945694263419381923976654270899602390312138123195679302156283941958738424488188074611833478747489637414005380573326677765929518833455941786426132556242360341896592963747427203083954634019183916343772587552002556998255292143005324952779637656802254581109318562304013865026688389180730160339931864545326209019878662873546845914973614514621277870706021386592721446894751028935839959763206838728395558305547290750255323686302921406113648373990236240886647526680387603516680015767918664057280555940615604788356313402476824006568291524705873306076994110195082922479961946799004516260614284485349478454896672642102129207898907093129445427747527229702630514067028578007603554242281812395509628024666906384893410094529274003956039675107912311779932508326761483044863088971710515834994355779149480337341133352912787842920358347871926018682881138019453189543536404223303615920830556746777797929475973190519767079307040152072542181468636991804344867634141689579093171579199699967849045894501698430059345188413994925297810930966467395711534066559908716205386537522200288801849805282886463172403344350714879831675816734979510795238744952716742757945569543529437306537122427633743033670396599916604275927008434537919950690242437875986501174653828004252015918775816292700771924286060623717130193948694488296618844354445005697235754446378431050486145531772700751458374809446358673986677156654701110138816157352394095144453703873009295788426803384852517296524995704459402238773849850529892059768450332915769620070727547697837411646677976894447931624010122868044015468005348354662429091448404269452714504613139073634841910140508727685754079816373517789724333076623739202177825127924556834638279850475950112356364824735016847543257888125151983256979992316412085831450143756717125739615739919948967863458408653442986941670225416314876562239669871090715788014973237583812160711422920787313175753132803363092125266476111822088818801357461302616300277638466000364832132496100326087440907468049581332802589390340788593704535175321688984892340260940180773629980469375494095058652599499230755685414489116530218732421882410886915830676853382840749201580061722004542610606715383834085230451899128990501387750621859730438287765269114458555723427432384339066982911676637032362346647195631729375431580418448295985406687304658988680197821203194492340286468746379407693114075638289628496644168401453866329873139195036996661714025331955549641872970859213514372546398167198781282743872734203595245512367954994535382769696477403675721703754140727483715109058294408576191760206013270857070332433955843890634369902758546325776609046921754711131311414661221616824663510040102287610006215067980352310683558124061733200132956281770021995534830362369561392655255950690113500389776669419668149859867514872966117547582407848900884390998924139834250793607126954042253955776647791470118650293703469530458540771498950218114573287287296355961692904896640611665811481783448083023768944599992777107218527180983553433083461384209192389888071481050835384425019425086885218001601651372416988340905521089960492972604387512343245013831084415296923564375374930591171307981038242003748870147908398743296622986427581738514207109230689088861619353354885173213460872206893360623219696735010622084539650973419772121479181717242158844181325209611020626882386742531426886799470051269508482455368093915774991825272213145663083982523902042147872559135453976228529815241532636696691662472550419111519717026226710478832082671062105455097196952480696425588119341152215120050713692078547743690163511810999176356528652638723336595032175041549604598373391776662821227102241411604601577072097304321671799898464661974564896453570637297407979433740793817825605316757096545483624062577070861943577834913694014160729190538302638504176841478947535739585320653064254014510869111389341628553021572101424128174033048262559185999377754653155888186375929616214331150967708326567233877878926251804894085329785083875772926710171760347245705293453082924048682053242095708582762275323189035070158261978117658470266996434949548518915156201269255329347200700595770951819555383941741725384044214753605003532918450839935590013922927024664084858121371374901419998799111038873895161774126820617823637642006620509646590396227584382423988291983761131968748076652639108504894879698789695995255615689890446319980729823218415753049409283343282942454080338505689379891189100067004808863753526564020488404461458033318784072386066522192650056256751824425407138072732129989888610278344352320871216143928317176255468583297922016107953172383448635450265741306511415199254906790263641085422288119232067406871132462860253098742707265299445402061010873597933393433931684833514363254145630178009552242431806517771594151033780064396244788049477579002068855302013517433743356544889188271454241352106734248696698285214717966205193142293497431884207698815697850067806803894756593610120961784695259701107018527956518348306813695282109221722647281428445960448882032454289878207324693742005997805828361316171506176409410755037607063983069082678327424443401523446979311035695441192015565414126739602221952198604036754170653692963907070567397406819539783512705042198639868468327723015079436687865659775309858848536125489314338175961013406677917509165113697985010362562681516920281092182947209548809971749972909147582121568625981426754418452357993519427000580598902807346566611442773974550053655461324196593888513846690343897157413496165918350915826765467784379150202649035451911792960921378128942416584606327095700658666712399687789155576126646829720576557603910894273764114823469888388129501299767170861124630925102893858240416223538821173624865877420017180677420100250209183051901229354730149573979860514632307757136746838118510878745155405679781173615855201236304026548179084353215025717674568205911805749838433216073055692346855157525029701014241935970489559658030991034548562968803440102661084118610165741329271430455846996100340122339441220685902547876226486513406433138229924444282527066986318917618692649791757430650608065591033965520685078093338478814206975291155310976832112888450836124729730071608574611425984530102718349758658219904754351022709986447242345726635104286272718271017702013255201998744485071227756840054300752334061013168621830935927312135311987760358198681422359653908522826955870065769813839168875432691932778075189365216106439973218669709507972616771694328760325117655912375384128113742205271036976779088717940844851861366043110011311232501109862050197496045781653993792101349921700957342645264464737005055140157231853643726842907184859959223371209879801807405929251687375628004787438158077959844668327345575690399633274389407229689544548273340154618053018571814051247025377752894773965424418515088558425696621226446131264320996637134794745944608347083308467360999487281698875426675464605914318995460424145158456116682198954856328217353779870740881371453616002111172415690165620318981455068398491088151068587933787973057679011116107874179625311440878728017638424135562588635399375928155253356621741783412385752592268979139662828116625528282558437239283580146014826684677262258125353786560469343419303755082362288150710970709799108219553730329599213753685116155987563187677354925163411829129970809661478226802801699176218253379660348056224613307853195995592372682106477968716428928956443880867194007849142508216582258262856675557201727999256323864174553186435250799478029839630881568847723230556559790155875671293136805571111997428517726757283428839139354568607690997067972528824961262780036692942022217811666685089562545908716286251050350901569222396347429202853439172439540189873511007793121354413566375979938202475460089035659964077862254902939803677258148918301096463562477967039787116339534942234559033356146950460290484206207723463242034512661776019542139622696522066173098610291712593854287557030162730084272640220083957834864918455121914859964392560317871559015027411671940599477560285747929088575643745574158194884804669571839573760806989574696015742472750081717235977067083035541550158502792680217909848433936684403702313243837443582248383821809913218669043581130153426037939456100425273145202191000839384945025868975136510307639447942236151584011572784755441886166772937984197594280114774710681409423224020791815691845697132791755853193662988795293897009859226562901845204931320227970388958816272783308764478343885955280324934518527302333529869254566662131262336900977791187660487918082501376198291479451090222327223722517133071371877187334552194361660631495884422276298549723337529697288917391877781117541105940425688581826311004822119759905692366494786741947364060517445918777540586999902393583877498146635777623634658780239014887663469718049823719718282520689990364304230122775120364156322059291485338711356249374780986199188246614315321777086939226608020827844073199875157984956040711575847237636892472792835110865892436449052865207672631461816505020014605082051544341657228080310961139191037663306201159241832638860253716420013495025070791082160842340903990906536886099507020434657696364570325478401785994583269270398249414563046178954259634601743864109076707536239705726209474477193569683327458868144911202710792430523561251510541496561194183289065397914507037889296773094478981916444987998470842180404394310105162942127465687032853650218314576139221850187475637024263100978502548131919882826405154066601515931526618850575859494525907103786104009877094650769547465515374945739982206018397330835099535123858202734468202994799073677422384532004106246024711814150771291895909859133146808083346711918309787282272924943650423157198602998343595984435933139002054852140834763821177234268492661729199253933047912645399516766827210846126627271724990598010088502088008233693214789700698857487839821630530332438640616335820042851813145723650034433601199660997787932115461319327682698795351177008581958467898647194536089385278680046220823318573495222516098252093315793917843401882997368964770448428225788530666361535009032606629490376218531402042470067032318864078956751462735524882186048636787164513309801911300336391151057351386391284731791052152555734780674218451638532915236502257019607702445091411978872056784166944516587754289873076489440494789633503889092080405578723792025429287504085925072277153755162288952432001257831360814787331301181032028840782935383078771940587285401336338989441222170273864170044773716230588853821656868767235501238017879495350754097831331228069632410111990911340832318293343006579811400953800172520984957647476681677752788063383523654156034428889137143434911349180502528919912954530355712875902961238632873542853948465918472599254521819461127988873220655422500191750656967189768672310964780314927214917252126400989484984502596456601074964043182742702617247716264352621864089422735970653022216338935411992114978519681145538457670189596822599604915556542134840314771305824782138550056378131824890794731320073559805549049909614535447018608889406922151167927880020631375305207831701037368843816413085083321820180925781374501326180565248870084325026343208043599808237037266097092505329967875017095182902909792064848713897167366447037029331955725372227542230143559681349961936860726256993164396293944570502935936399824028322720419340357351849144509181687188714911645333034036067204388821453897711310850669526032381932874369268960734205352230482812024551061729674257688915900338501842248343157302394352707819429625472527466920588544653910189672682504994480534572433135307736463871134859274668277796304494234766938534553057449165820528731449721696797361493120515466969550452987565212429753870582837827331814948524351075972615397112191024870106869729062589257712978593728014725748517420530058829877076428163175167957881939938111928006087493601805406521737171312725505907856622182275778801301754801287847668446788224771818617081078188384445102688047082360436308899242517491120108082636800345847276013619838954288616904539701162519721861926758969697645465284527262467000718041795158391222352722467696786319445259726630488287761855009511913679855825682448330104252358869597263785633011189879467085084772068605706397455283894453339881709351935748669815026628402152111278371810695730045792243634040057832414486813200987921052511804311643249991991523613467332893371027134128912717269733661144161393426883844049502004467044347990394919595068687510091577198312937893267933916735927593575384949191007524853117728595939522155968144371598477767025615082239686051062675775299031804427312636796463691575494519559072894763938606870768806400358436489036186893768569075603109047929063552505854814334298776979886530479024289549396515656168989288842857814466971252789642735529103849808593791158775299025844304211862975741194089773349612091579409814068478480540432737518966741769988181588912717431253390574668551417592025320666887278400713912605565274789870148006982903503971188922717283438926322655315913176410159392840879581561951817315499304184384479903485503218804273444956366032235364357651934141447930515186854265594104869780418441806706210174690729454250200101238939567112434341674272745828063032394295402945840993473958180833317017597901941100338306077213765010261298939134638552949125857249155210398396165356496765659678785559120797487244058645052734420415872359966853416769435502600654191732619734242491369757762516629871339671444172857344345770038229230870913823991978722352486332493030751784044683111495518835349074918479670379221209584280814926335134482731201708178082740851456880622405184672542199748315034536871770790726312399874548648707998399475673848915753911025646742176616426427054068411857791772221982022671260108086185215449539905139366232974072797239415026993304382206667444898185415002031744481282938653428708415994170380554457446254038246287961904347948395277629607959556175479261379068093075060330363539629421233609263735409562814822259429783067226972940636598222480446325659119805432491285579546681644812044784318940202360335036252325045206931690358151733181852763440861905417820055277243350050976883448811948919456846281759918637412595713125401442851321893260196120564560078924091837526682272287826227018049043429765232167712993895933332667197122473406722649130895497207884657990931961077153312276492437412927172683358815196092200923856759897748380511934682357883369070482304591289970037821186754010387746679273995535097080635930445334965881004281093902252255005983667161683867178075138924894079419613111248848595212670861924829634296847203802019689884714696550901671659705690247501045567273550380127795492098584386637913242162003693323154488556205742885434789572777280474645682747500137962660817952459093055606854250977080126020614455387785291208605797597376498008082505410919196489870975109136208300437993312249420682928113299889328112527985534009976291648296512117499192370443690966278448863918944079868567067215873077152713486474641907866238248934159371493660103963117760922290052194658564590804260089334701381271088216751693539029798881884265636698529256774140175487312265247832361720890785086828186478414913708245036208677516445438067777454951516599085370010461355034261980052665115600891334107375528232355862369406617319046651941772538893477576758228653990268221332751541965770518949302509255856408714524384498971285142441582502998477200379722879493283156808473300480635669655333970987404343685039253284687743889201691376737441838806169036184418063331702452755214698767013135910968250431044495628709108274746490027451479573634288057333732129710843887281375316440362837464332774584003207740670752585907874451823533576281798947214683103310945109462034828625352319907216554475139706739521902766324361763614769192039878000420474498257144030175805118273145251171109677807430347904206446837393157700782099010014487511721220954870963776910954207529695146242459284020276781406177790108949362689097801140076468781462768696509355355466732137037447600099591630503038100492065199188778474293952423957030474545030887482154424983424737405256040329951797717945535219898137834735022948830537277936513142622056357756444334028067493469305491935742940708280942106590185287510468314199798653686029265912648118958839604165024335135779801543058520539424538846604184152532186255709149367026939685098738769616357238780130568474082747248382191724283179929353848953882325439753363655529661730545692243476072797206515764433947540933196792889375243101323198553645427803037809892422954860038524542858175779892013838808476522116284909759090353255824033657999899823371383399950379881142207210050542054170849481441750212144257758769850332778868403365478758346471995761248213753795111524328018680035350831072364636362168133821472157362281150142742844255812027487212575483509982713865637307922092612892409458159975703977005463688662609123668390760290562618546950691186383453912716582755092577503180172914621112629762840494449590253138379087822755114907628602630257685057444405790267437872414667431714182389144664432028786103930026736258037577391631130549921249323210070191005841753144997898194230920715790031619984865516701363137475231727388144245280205810224554275475940848790186785653088905218358301407735461098032372635054824463584836784816900061554585243436836927569434569209899379196623241018674486105138425817147431516450584812081436608539418380225743834092905643330146007244338689888064411752289711197473894037739931421316626275802294935845573937398284670489890383373595350197337885107271731081041964725100090225469883759586870571962581428172001697557249091687905145159272646558232756192545108048292189380875531601193549840090223770647174100693657345876162486495411379851521373154915142918408300414526821745540747833790907743635702129020008569824216316289128866156918710093604542122063730017719471730093240947023018118660685025114324575178351601709332198303263111113049220433379016184447414384951738484884688071159326225761248339000703997160923585494409242651836114157455011683161303042851772829510886025529871863924382152379440796416889598983877189566081889673549248419095920379198993949783184502601221189077432515646409231845459005131824779311893146200397495700842297612659196148607987743470275991061925035653993373329301117254922169233218790212569073243930330785325737661657867549034209405215170926102144663978777925371198859625729680835310476137291134293211360332307834448821909390957577913035607015763298976547631751844233361064071470543121614346214331872932886651798455357705441530627207401568219342874214120583306280473552961698403078442913129000438717785914678078189968399939753060611456793072827842034869756243352042662017156365582471115219418608167890214919854312666399104465234300211645285342585475850561767696723862683480512883555861951663716604889466973420919699815693173138419905622158904644962162842633303118042262576594780759504730353266873136664710301657227660353150509968774536578720050427443468444615001057799634100748415774155486112469211601030941901033784562290941460614360968273620960856223753699929048351387975308298794896326754559584850333662015288182971591784956531142264491827956278880997903292183501141342392097790656261870068828685454805531559660739508041603169877360900878211301774379154398770986855258033576309129971179590388470025459808789504321295840965679082132284668611184938208761265274871155172754523038268731224423820794000265460555848022787938084247933800942327196989991577419010505006453618317521418322230341300705769570058663150351994045506930520464898851044755210276880471482132943760341514649882706849226920203756175313706093976248366272157318465395230694703836119242548493025582350827080882915949245220305426663234327686746646440975221503568389519250741181879100891428334164754764066372018162902015764588059364303243770791056262366729220619644358452197848679654606157709990977081623758167003384531142800922223435850365646308284922700012130133127319411326264769998332195885057273960391329671432412448906257017680348734277164268162745739718233106538980057664048718142879241430119192459115305311562733989814848784556024691826107383178665762642424361133057232249792732534237978748035512170519372863967966211275616360491328362134562977953553965285662194694004613727870539930236769890699377404965951897913014161788730005788397448463932777333291898351710998378108348290238078238762741754913557425268501999766097461451992370343090098355071472242916712331712180346182007610610381007728331874162142628165736674831725895381679733473736772992260457520945664858623453081009000178131187534418987669379749859098969130486723025571505306374509383937031752292256227774206577876179784912511252669933361416317092723864879901564764845660133397512723376586757191056736626509874044644218203644069677707410520901429058112721747757136769390348931152431185670384129005906723497147779889801439631678080829420242483887574727395674469412497235540380205619000283930434859678136137692198978540725018642945551251492768847774889802125065963711533176422930906963835570699903141633881004337678057450705858113557664137676514559749509476730484982491929752605307540402939445627219724341078430790194226913151317287490129129287144547647795257474234089683663621935735369057839036450722142883065815100565030494945871549333538190320343398214480204015115640527891984763922200678341099312980988543712417327347084064727270856483030610616026339986364536970990116023206170578916395899868829519374654496671004179633457536227734996184715246461912565472011770576385120805444984080673315291642125031438313148607433330777161442810393666605504827767586719104864742494646105735076041353789451802659149367598453997520175291448132004747598658648141377071811723175101680817413680520934818544170722146382040025132627424846097103419030865085578136124054365400529294166031531943498614173746066614036750943837504504951747473605234929198550079513550263629792909554681232828852565561598151800633270475825380669993022212522274722514543937151031834977084567802273335074640022403914372428360524956335252817720814192169227816222224396788372029773973728083293694944411904215361077614149257145992829147780084480678018241345062715968895920741626379371926851877906889977334532008861111860299864636383767303029103629308662319298028350545448422679678613140655449463211429692432555803175135653715678852344057100415643981224014038935469200336236378965873477979963530478308922577471468911188206907804313378757180817994450690293864664998614522830414685789643170178224699448084329540952806874419840215767319242559191986057193240590855716482060395913004441367968490679967537783727824146402926271768391273366213042265471820181863988407853211841399390748527930285530140744433482171974253075845865433322190997350414463889837249287333240174586868117895498345736633386299806052736541909840009249037929856419093637689284493566391351547938694241134371660010352166835436968993361291877882835871919122076548258134690632874960492417410065946870358739172771320357147225222799942773951292086920099106857276524093454721077763479890574551690840269612416779043921575668825669156628195697774296611197625808756017045108597150792962144970506633753884940853108195699868167448817686207340565553785811555932408170409180341637781413838362192320942001503275360152333710039742881239018901412096195949583391632923391363869727338720130615901544149125072996308424193146161035241889779657905742658591165130976134204463545634120844160273188533909008155343232192409800173946722181057993584193106348952441670780951271354299033567424325080617332835705436548415442809494499086606434329899513934325996517508016464957595060704699892508844699498123203655655809125541379790188247851263446114883301385540017097631766709272223448651486811447485255278519942765228978361664605439238068882467508459595209653518937648495594914865012224532215306281492400656193685840305954554207702723371113382264867367640306274356446860509105581719685731559351513881488898272315633003636187708569245626482380100879462266038260450459658152098527118718358672860528781878920782041537156168206178854935525058571113226568943529366649781058247716847682420830255305026003760184661500401520159964875358118902330010488155252775524083744272003365470382325448553435425336086008021763037384948276457929899781012451398477055146629392196235090895829346027621468111340684110992628838715120916977010184824730125866622333469952628480958968731480449660393660704381789624327276780327137994888484976428748182481994656402778725862055625013017417703664551587160531634829801572007093125144741654811348937654463893672048967010948021314949891341677682426628611592712869570973054072162506988570554594702905630097983413670861992128245886738546452400926775820242031090179092888236941338997911210476419346667380008339091628014132817181584416843106425908344071775898266412476502075728698466473312995481153732375776994679919713675693527907901318722664923261456597952319607593700128844451574181591111999495400907377343507835295702060914299655351185873012862839462155418375214210722806390270907017500063683117795400536078213608424739439944332781747288821476856246164243428287914309979025996663566167908478505405500376558632334293030137227611428653967715355644923596995940404567862899360874843195334445728848189874177268857223025438522690601216704062085324625700406903668320343035056881711327285452313811168211050718390860660504112515325292047431851185329012124603817123254379028524696926320510800811332813075384549594538668222671941700112897944443835465053298427218170592210479095848567945518009690012523134602865600324040096853505928745308683504774710494666293001937219453811387865931777801516069307547971983607765413067576404965733111978860021867166997028943653280874251194236992243555841246889645955469195923190684958599747378301402021962996170328098507867168557725989053084741997997549419013145269818997120531772371234643534664655521572594288640759104804010314986381001317397995491860317158716536689475436807336811420837892087564968037288425442770947637835170916182085191086397853685587437039321751699700594015556163726567908439795550386461533102645675319599284651382227244922959724090218803574412361889556418575577046138579384329980619811839033576715473098227668700889868184779964726004900427024822448097761907898032268145705498870239591053426778919084650172258003771435919405483400943986802404743544405717510358776120164092746937970466083768857328059625324929979238152257579630880210618263207274432037981161010236231293229762377623033172344129975773177424251736962267740789065842214638123189608596512444032135114547079765375595669332055827234016742705058842214586938771488547191276835769894159436686610916653910351206292308100908493163737096936607616712336822925961439927661424707327747083749103776549744190013064056946556390466870439576200558475042386223569563357676623322423209824001926002567037615555448433263901752831583358138921328734734178881916143938820496988627288839758755799491376469406118199280210793738152113258236916351208267570658601287822153794896160236947791468129442106730284428172796432290231129741774324385398691270094563399348834194732788053041688387256666931972830546635293803748384170612470709322055134921630950858079555647793243834137436362805885210922763828547558832748541506676847506714226090827799482579133269256490713591560564586758465193001869221796291679311905566561438512267298066387471660813885208045775157613184912682007527982615603211312040652213749122181791955190462822000030618833378854556197811344971685347116995162801200113727607520752166041533946093596770895841880187703234328910240926581084746033697949493790322823870405756882148798985286006236147753206964165309569898487250797775695176136054316123666289991926462078985530083877382590082370453772347288976651066279513725871743254920712817818077793062991874600641910122162299806473524445415383511209296902784021870747804935875147721683690170534087629177343102671451975276715944255788479660731698027749532298793183244335233795349888800120480184421801922348423663030221094783900387265334690825978454115988819363261445526019354812591195960974199988521695491120457984301587373349428898707490109927768194141301396804649684775750883002182743609235534600058969245577326884039049305929927600947129314282236723867800984737410937272952378463029281416059882814620801189602881012835841418073841397902471599909621084390483773484550302393170444905048030948061019322363898618302682655289232465206114483172718760840806539300608282424804471248211193379131997465164569526774095313980808159250796033405921320509131649102541028539178740504142797919741713079440412459512210329988134571481554118239440531511306756665716294274103390181880950100966981205400944505884633179533025513909889138778020971075178264818961829508120504036456354644900396360761321631252526795407292123448797029834004707142057562735774717292710215476009970326580933990516198682598294436256930209974327512596490703452077704473055955182470130744476182002398420850143710019300202661675806590544214773745013274143816429472550510519642646930983746046729144496509913848910224275515659600025290287794585924676073367179185749204465971495257786211998374777823963917930550468418539152598708069404265575804882875907154764484468286816111018612243681320482548969552199072046430411952441859551482334973522810126981196882756249839083753574830316449752101834777813498849595780170526789463110794197570598595955743728059430014881634777082450510389937392445323486186799031822162541179756534681701224551613873601199857849840675097351512716879512835530864058509158106444769349131228486707957753406615538880847225350680605821250037918876929677770665590621841341944691838804756794448825787732954376784122352100340740810005369642625395566240078464774978753076106645281118542937258695252646022507395674803279819375577418233403576548231013280426350639519750167238997683964813831574811183154275501629497729686076146065641295195168724214713597313664282305853410425416177713005487573142783933654722642778985593653963947371005968965405336585638351992434071729466142432910845051538648567389319639491784209548326202490011301381978916394938081231058057465891762705574959356213108977086840363404465497745208034941695938366570224741342650068736195118082820298458782850350587566854713269391689880363995249256825156344024475824159010092546243333688607889472039171034142037816937168697799893396752244594689338459082755430840980405434645678749330856910512331355883563505757363891365733819194287047400609100589389158684030922041267729288057309770280987663399211464855442439619633742457801171541656441077613775166914906208078998564774273004494812269653861750459263889587761964332948762815553354462857290534624706025037041304712629064266104825711757472931800682059874258871920865339554812807797740963152731200477161054995600180217566625202794911983719349606161553186593760552598743946391188935371859003104485364354293863957222916672350217291055613413749525383637958271551146769300307381884019154868306974047420393890433748581316930672334352718281996978753912165733406485998266929077682360183898904563606095267559132662127347908206547010580357301353421990436815315682875433249456024979873326482460215170330143303260917424111196617253545432029562167956951983786174377184613897843855587753088472962352450940784304142420821465521864684172720745030292725292485451526586897795485951595533078846406286556522195246379767180622538688366508372737430222401534301372957103945931222962329525558862846260188990312136280718262628491023627012499529658572330235912026754357852024939298191486419738803729312144947571769656854161841704329606469848234952614162850195481115973467951281962193674401116521353819037625388621709108281034699045673972591142086182820863838552638994844880554566987791345845737142372267824806112536089365904072969850141051197942075190467036837257816674680095014900127971991899221148168977699414003514366808507776249296158643422057740323578190824519518426767957136362691979529831311286865840146651269555244119861801321075681725097432382977435956479978734912854016862296093931639800360604451928252347574907278743604199291504949065541358006897916409724036942532578500911675613104162806326270860629882040344334402917134166899563541583008525418790466017082372581508944173515820405553345529781442351730892618582008521998972360731762435391691076553950721412051548703535977007175380859903330049818098823036668290309480969570587485727130979915867385592795210952456472528411938035594668170901273504294379080585332977969342205665122675483625469854931686997258499116925995626684541352018000627215045802768144594210030144123006842759222710581676544426887842643307018348673584748056674564100159599859365918576044967143786462587072165465886310492561784193466721150526334357345552179757261062310595146300786146637516330615172437436358603775333843550584698313949388791515748908113839335095975933704672829191390571419514646393734638485194059468104545925453310566926440587227119114819422893330845082235708756354428328379596589624915257553859986855641038188741083870273537618163737529113266158455988569781378695761429636474307048600576331680451332516401093056525388579280456919980922877896799028447769255198813139870678534632906339115144450897854403440498372907473855170810104769539363142077567241413332250370466452254392952514820870420496752207538825959734612119552334417341273316538080998554081430548169581890763491997558147644466841524871895315470256832602022925279005207068115083880204712691693131193459571150312372436984273174386206707290181860526245985296020307611911219135731057633567293627492013300905581622606871912611417711952068535975584697179429560840733408641601657358424087253537908320269781561001334405454881599912080531030466951762251979998266392953874358231090070792336120792691821946325729601152792552837275159084911924245489101152702825929278775273653484350558750568644651900245567623693516055768408491286618488356164085268326356464626127021897749432444069697002196944404514482553756660698796864069825374716229144589956184610721862013966916571795539648861255802010411971480934025378649476085423517309340968084638555215761879302138383678034114528869948861127812062679321627098538138963270441208113795673868889163173704983956475688921594908939979430151851311969305177565021483465560439494965479724634892726473482164436215086465794569215045431357550105986953209235605325747318051585734661553784067768515863148315050331237246200781895312527823897444922210611008662972508637426508668078525664781612631012327832874091338614182739183251764700623527062160740312707118330915325547702652595135135411410089951224274064260449329920450875578341896268000957338981520733108142281753316400910690925513998846663411508562716725757809490083706839737781534730695687433834178894867956891463851641175909985473684307549244517824076147361586113824562707038084852423491964381905356010066083731532741488015877473030775061291645021558780750608935717005461777082308805915852375372399169731055123824250851040114678079342251594023263530996620972469193233820515754041316699780872715415249883168423590076571438974555399535999961917674572261833733426382238508689609629991221808012963061441294700677024911098475496274024763295553574664452607464115665961871813128006287447947020120537503455224062984950727608421813889047701791720584403947660342798343372281752204729292960100244918339560567002528918239346274149667391400899987839029879923602234568003556325407759373004949757456105955778128945843393748833950068681436479761898996515437782777025340296271085006188603116982840776165574047789308865477962392751055030270547644825557635210399736001771396006286501448929507040407389299059524724764930078989733866191765197080672215705534602073102163359441176330116453426030234371836054006724076760007084116155905927857312520879538571294241622580658341709414758356296864844035539271728030011976771633099072240320089485177630619969187317658265011091806372910840756354879672196451240679563725634967694272752540670316413967345493969607010677248162042766913390822295627460551917707324338926029233212073575705258723399827783473486321593146923637632556846339048656210598874531802746395720637197032649922801116503595244889058206540460748213892039021673514525124054838609324424544041686424355594178325508161726016699361249724908971259578897337604854068352568694226045507617607154005562097215355107044416298564483675093205833986334250194835899119453052427626600886504898811143772908636886662794897056120838422198762525540613258506394396320866767416125418008830024766618658960920726110083110826529483559065062999059855242600089740034174646311498494764042797412016232417775581117162511644668590077711728154849696490942731376895076760397811455867868056849914158787520255555441939578918615100395918245806737509653322272727553916435408536225452024613506408461885199997483057296563624554377695124378875226053730907801715471444194461172542764339478698042630571931342506085280164734930580866979638756152867946150492942667392515336589981283836245358069806154821414710785752620111148812819418037170975615947077862226559194702290325643701978829672705502651622676037657809976842260957025585284076028768239968635004699588225933616763068664152237813806759507097789348335652736223538778234251797570498275694193136084707679925604632642747677236556260851042506813604526388934936139981733066457303354121871356708277105208930498278391121511579100488458727409057569945655604437129523384283262732918074460424570563955033614410721359416272172202102568206587450703633840114395493947084475517568340505623365777729454394772601852428634319872487056449621729388848677325234840385516240450136586227909320215630897916333880692758400795050416776880616659565337510016293979675586429862834183634692607261287129374777924611422271239211515212020547177287534231186594494749777780986280934747209848148709790068159750218706917780857188661903132310895966557193468259888613750430118504903474944258561166577190913327734106951866060135461596663001761943353651198264590850302561481147841550177440695102953106642194754212147089223569493124244381217638354582443884551961838379471067871340833785106570191319785226817943658524368049753270238582494119223993635278890663124836494725418553929937174517710522966658872701517051987653713966795343349600039471748729678844220293855045555747482866133747896864865135830357273258143120129343317862083566542566155303324072544216855299882033794327951407249446356829138791093000897955982212154489242050098524160703334329322958543546754530498508828458218935497365317466292593886220124861819334659914126741373900774601649366416542779715998566526984371749629376659830354182002789210691955176689626714037332445067499844214920820841503022168776721671290340106283164917042264391350094058737988471253997977448117774160004309091761167946262384566803042232938870345966230914421811373386134325087574070189147824897410963097222102531430003863911866226270226758243050334974126902671325166752693711353450107388633271040687849692238412203101989110605334205462234785795228375528234220307493652674551501178824966994255610798388429464393260601678622099123199453820406196533110536533355497608072501347572551796382373779955772908915544085378285910789612635329522957286910615939463379181181807505767535944874880677798317742446419876137733870938772567200923989964236218594970465173389849681290300439287384791326297469113719821747933931045190417607993733505366685424041741478715072473368145272936204937747516697659201847180058278234292720406024776302401293425685795241564013187827832756250409104039170063521448520770577831138611336479969008323679944022352087320274677977189184914696165124362599715392391748296835129761408470521112760032169649266407952373917072398271167592222520636307790354528816647470940136232563401038358348214144071347477902250036570587877817085328506155303223897290974460565328801448046967964654265883301817409245257785701794849895264879130090901383126143336710146026288337049673271754842442224941566863972204797874486548460862352869070212031035333338495019812060346830539624745115946008836410269425168237952752164774584219692804957604595891454052707471951735298958388755164987293740310231233734743757013685385023982729652483064905378398496295933544058328564248682909705088205396047644683813813091079562890788317489446752415545095043218183294132058295838612930712909116620368127121798929699031610582686113778822717172518194929647697862020692494154789352331288753157092286921764094197657011197998542263716121517239300791737360423185367431973627278718866078456337795363593141795996085123130884962484154815526115859000724929038891886244684013694736356821507262467595810484441569811940050577381825405700755805809525366935638895477361927908761153262998486054267313908168767547870735557339767593002605506682166570876913468116018564207169522041519705568023944532552133381458512140781590810884848638563847166271104786040024641527738713446810787103893136312697012043120648378638388118153352670575743041449456045939471860663841502079398368286630745421930133675956695052500209310014222111608726721223873256263831789842831560809271503202882524550295888974491120351897052930570842882605092747268424564558834695347944301851446608854563672694955036608600873270244436939670100349189454360296640709736619560734843559804263490491338409118524559293258834793809149164731678259020003182993427887743415835068943184236034837017828883303159499986005579635425289781873656580041755420759425886162943743119839593524484081570144278929151876684127488145679279677800596297224638232729139105414147190296179687350492323343541438123662184692873384718816059511197476359809000597164838079977566338423878797622564786194597872603827892241941926234622200346506587304882567806362901223647440137451017233880789234632357402631029048675531042773179088874377457848681702950173253380991668952408649752999029848219706932754241016652972983083280532856518305344008539610647891234711377315135412943148649624650968973435583601122509007204581218083397351651925565488646696035654897339644753459361592319005427583486610753888210870040607320847395038266706957068175143083328338902929648178526544943381039476051222243265980208837535515345466903375180567802804134105061640462989197558929150421923803968042180627734101308911960668037756019910132828503743233049667173583762269226812946841690855067231382916662408365954453405808548257805671952946588980967801781073026043508668070800749480503504153634727268660154957094870574654938137699106422802357599905968022181451653727278242701496176246520353541126956503456888999034534624934130159846311058892875528286513230142638153197136759515719132095638128526848345009810474294255328704935881229684711525875134251470560345887532084856778470567371823201901094421308514826008932082256185108838278966475474779690376876065803015083192505198949782621956893307342510326527366721854647777092616733496925235788567032916007964590008728448673108006300331709645690859254160947684429164241328101525575480551649774883712464697834997971306249800891276010475640597632206069771731997213072378093852921984974640480896522687208043823685348610255258888243056154123675148168275815916412700631665485362625868135963082732975023674595181893140364434461588619982711743015067381247267344338061812726036122522467551757443135995776330198172791904230765477496047771902478082979554570126313568226727151921182238716539595882710572263505062666651466196005397960948230172065997107352802675708598594247372151347668815550745995408139215131200563082124499718152885049463361426251443052642426895928628094659812791287718192628627773098803032441229884313517489743102362041756976265681478477226100633518317656206821130044988440591935795093005392469307184561061068397462490084147466792113758494534336177211581030906860864881569779766421412983910353134410337093409661706932688367700418203045027709883953212933282245265677272485223745935455988703428469589347493586498699791283017056393363365471443129074354003755949469044647080117726906610305862996914796577848932476673322980452553535066963400449770008300856722262902420208015319563930838512036312779553700261260033952917561670026866985330243785254839364156276887304402500568678884199951351541775742053606518905634340070803742928045706175735345693564030100499650690406937384080213647218810897430402069271982517495826349968974045760409561035140491098912651215564923307347241090545461719710708654501233025755362547025004176494090570564154512740724666904564210905471920630552900180274859207549176047390685803738653921308569403353025908537813164255743813899802648183415425165047903058345480812229703072178274949085937092331208099720287257821845350572410754822630980303447744140881732353494574027883025138646334304088695856218239489196151539982992462426732189246701102933993789350989842513690819383657726317420923711425021455715036520927972875782661350042755187029137566535820095012817562299112766262829514293666156250772924275049541164195927625885013512535141749250760374482272337724844721294076461597017203428523965632758557644487583755452702484162155617669016678437311380534406639514990416842462855346949533580705797638750393203889706933557311571082133416576765116770836371011025386503234656279295445221206554637839792614856403032118547178170944751621189140612302386359218277560661433388293759661444029990217547834843702373358818818534086270528335039319817978348072486678804326630051354943180864032440854177755723782246207590408945594009966085231119112417142300372612081286080978494323666863284169401207197940049881520306769399151234274914926707506352313292563980713890277848342826004050705853276927572683085827303551834572384557336545091258502395257971383983654584175099800761229690202714024020725144846663970170962294158229685227861339616373705085799930073311608160229654214753489491184323031848890266660474732533711684855221301287782735164637420736904496393124454179168551849176876949838905027488579475393203850504076226394869209205674706549207586794897193788289014900640922156929654050560736529187083263474012262175172796755192496620374660653185504173088963702611162287334425028804656095382388535317523860753250814133764413071010639742314048872702748887493317442111503869844632582360051822700087091779381123190000238265339270769933236196516891402278378554657262432021152333957706433316744013931685476498640017665604183031852166768688896055152005673260328215902296712347059982783506801850416053506167368464301272126642456948357069867568637115949561799564029401736888006827842253976913956441357427991361725895104535104327521560201827517308886995571365710523428033034082288943760471731216638172685619744751061080864270426541060799300479779836196123891507673954826433189612632704414360342546443907142746604877714898344985927254784265579662785172903507131381274543911202101468198394390777667615333182414693041883018931813594667131915728347971045705861280072406893438922855519831224444924820814853452675360710939130624019471984425772761476795708331482809248234110638026631546569175621892042901095416031143996731687048110009947443838204309268127993559715686447604616609113457325374554993572550147439522558724396957345560866514011323014190684766307291380168123457307709735633834709565747736848662278274693146694286999555336654533151103936489668259683407252939199936620341983287149810503262035189026880031800032141282716118476996872194088586031642678026916244943827691535023673771881506645510665427134292415024796681731520691362158752653059083574972758800864757475494277355279861627346580278813712182582538969242458452988548103365429731914109034467016110071693683392561975026712526966658661606484396321283425562614060952656902574911337870115643966442486758478801192345590197644692192372200438267563378829923006356515691451351948844591182061529276898443061212482924473277450935953819530025528934510093176554255343710139524794560513544414547325953737890388459895149004548572373064385490017665173763453070175269568149660030269596018973621774593663229629758186537790668593207403172599918905046635146657792184964487403149282675271483962396004596916203580669594875538438761874458652699639506015642350035182118289533356789337557121579356868339736040096728606484817495497859856227340958046498173259533632266599415112624991453402058641388466843866645914273719982850550616578441403880618462443572146653543444244959532382572845114300511437415144797813749605796938828584509475858563459191588508749287497766104277058179000527742304783022964833209844511091158442518793071440991083067721079197787039812362162735129630793809479936582742705077034375986866395514801586027549605768011725480323168253324011295659417067127951242260139086506670329896388526658990601563281945081760785980013220776363260835637527352485273093152662773317327750367425062938769560406696234467438113168785881268124323684952168298788745782905083781922501760827488430993493759477480200875297518572534981017027290235704136138462366071378183738978088139743072575821129577157995548068440695309344884583838427191016188491408551275184940133104465281500930428310030633297849304786409644915379775871701622092407944822769636086280849158187597671665040604348324311636323540121220850559578869564565353118709163355452553146561556531006666690820968024386769181278819785687947481592932499176897984010453179575311278934685281396608746800624720119254504079941717099503668729294701008122180321245197094847877945742682997209654802807199223396833214394837117463077736299851857158394350323943763508670602464759552140060755142255208698099435411113318013702168541582111455023264980091389821216310625491713059511151728905582464332723128779219480044080555996870136420754048964411766312227866658731936942705569952432711370782438649410787831368701312822669647646742277863298087481094132545211954888511450602366045060517645088536819234840738104330929160797308640116772517674335685163140634168028450067370307842771402742626022299708330774742280124282482568598307674727481789055955738499315268808679334857411449604588597001528739594221176296076257481557634163691893638633598189124736215770597936862873988184377966851609104700186402779722807794941116288915343933767190893994631077779700475571776613562574859731475238168659513280363699223116348377715569004702575997171179395145238983897897226481192878171556968545087342745232404556624130484900003786237840912314555576071706338882125533623745736838352633895508372326187230905305969849763597571826711934142308931803037694562932376329775830073284075052147788292365383494743755546189506697499296933765177318610483397133492189955847092227632957406395316213253623870633989164118108307737715641734839663207725784823231492238156507156450278647310972585825474709032901746823767621014370830946928247768071806225058024331372596181776401102323604884055148117424770154616312334150399558996256261301967699180405356433672890334492114215436721806143510141228281342951234585047548417026820154991460502728217369663991225990567123312110376626020979945084425672599673149762653010041940272783546713831534042670294393204602736044189604034549991735527841470507141786771215451664081076522099156433378732354246845914838977523237015261493111044956840653672885693610890174320405851704055979290090741427062885701976502821774078983027668292315241893172721707450169329919642502083634247827788771213598797009354073955828314983497731043274008955964480895672645627881543809232999005745583144469820643533578485694439281212991152230909800051741379098945220687825151486780216659832537065130129787303382483354783194250986707470533762359520366181872726298847395363495987232728110156295981223809495366436851294581023775733957445345721020846955796589939292030359258272910844345480507723013308091014770343722900972895942332281736781004917139808650815514083999619121651224535912449896867775176967224310862788555394134495001183730153110906938137604214864215579075241828364997720200912998999176971022364512805791900476847219864432867359971975169242770211103083546853145756185841850121791794437188411768562519961990186143584566353519613614652498755429618909831243803476243367750398674020591139370647800317921472859069300732960238923631410392520971604910620103585452505459857122470687754588324611797534675100505358815063600354048320529651209331809740007100380776838329364535357623940794767236105814532601210788049360231717015705155047481537309409595426712302065274396677059095582845089910421866226295681498985335392421013154102563059394102678928315001736137879307785031624121148468788301240805814787473738881099742546321831202446226568750804339157296010504657796145622392244054130236557465908221733148353832722867701974723040581951374871730227766516003697519564422774731060316148104138722704753639011913340159812521961718641766143563021259343952463750828020888151028439969691314793516703228149256516891340083420324931088333254361318058844114216488650285069681129933562533204710418214922266493460144134315157603606422702695600397611480759730554060097864945646880825727295491876781856021451248712323541050635062821894692060954595566977773856711690317362909212398263876610904770242176699030627152017719194640798793892664748956500257226614187292350539108091523705216673945826952332551657291228473236598277368826761162813738320046850360995144340933321096092928115760334064848696916986404832056410489190780312351910565762859376698392138753641206944217037878293430870793303480488267798042545890376158256804232759816483155925641530103300302778180518452741567218562345215579710479668897671603937543223364781224529204651573546990315597529975951570611254274062713843779311967623677605589237437310203016571347230607372615337127442659878200566442472627414113726945790557463781021062309780927631429190560233573368844473812670010543026210795546905132658887856800821862949279983141566488435124810814096143547892496062425913161581344009965126727717569879812045222975861077035127702825388369390832727353248991035115132702400392438404454032163879775913666594720305149628258532958255037305459070512676195834945711794612128428759747358215388292449699330662875048728582903834171971612088018904070316639490355714599158543439782105253638366825177897622478272327261645137631954655984679653365591967810190633166060086077418466886333447895579709303067949571016642317907809097027341517240443410919114204075495053645704211718489644205990365232596753743803672020323081230111599958915359420526900407410998983451611050075662850284297984759611404605117849819139235326123482149824095369594744429827665007893887361177028633582254964784530149857007914335313583188394922435869133519003214441077953772529685287783509347095861937011824794661562030034978177175716137664792359490942632104736748813155267469347303322103206235767333050009223151504073832572453743455582679089875774169637283156813925139294451205875015612211493431231249946986185767245277301607709385139911050337492212958425362550796412849787995955787070477510714147215725332864670087927635034941885791423448446962340465125994840323989893698959662046154343146351045097234469880081842318927254596965449325313434958859104733083914830246036186988206393165074629411543186746338525585841654812797618934437877756806554149665664407760944484502200057738437871989167308850691697062868510341730029103689750285776391822506174166602502041282727260039050917291101321830387783528649075816133534128587150677321205983933280414599808192387732857919427641133040961258894738676531644080524804844209625039238402693898646914453705211751871913971262644900998991119059756043287797293204358166224359468813139455183331822833715954056905814097314684215616150427274973687602584108220885354370379318886573140484934626992789335661514480748952696818295772457488538655863538186407187005347835508227569061588222391316863260824213545036960998909753556412746663155800977955197244711302286444172607292321984165521604240936107336047410498917070759885836142381149678568185813048051826129459942064225300418291428273725467907863969341649920750772999082836020036723268089920930142311663382996857681859865149518613837276789105253672056796655505812277693456188394970137472605822925677523266675821456717213046828042867150676361888408007112071817883580763114425770097213153514313178626798459718023969212635671073180719657963258142196384567469034294948774253850824315887004486044360705040845783102629569053907222214562520401984303758866264530157864008935625096321128530680084517121590179119431890282516188951748514350376760330073873217047603503637897618583226846993099965390419516003349870962462424445175805139140039885915065307773127302600750000761692448104733413846980467278489055190380586785335574409703469123024272894495725963871366317616097028119523833588662674077149591709183659068423321641609029310644059900606667777145713281169851824048589420103164188150685480685060143783252405250793285671119349247590455633412266981448704459212301605431144440100967943927008105064635684377340912310437013471533282856122118244116856937331963501612397990976448298120323785488563664668011336162798460092356967569253134343953122936972219218549281572878220398150732693324318490605442946858986015117997375452250466235995271729996653226654781031940224590910712666964450007074722595482509602907935043322242322014150745536926647515349410681479445356954979358342649296635169441000985689900583802142087178614480948481823673259013821442845703502184558298456097491687478586783709338257977010639948380713290222986055891279354410358540395921248064572562559591491984733531170014525879332713615172734960723192568858203481727273579738832569135559757030297872704061799819281613640865912143508050748490150853125958947445714229280201952222707348972643172065550561583979369841128466433111533369065115888032169274342641786338765575240332558780522836523482678489050734543828222358303209272702858350524727556035005711293897458078220128841338554333295599179876804313270094397259507243885201741236978417614091834613338426860096366697528519794060367956988694127147402553537086510362965503223870010162841841768873612766951117027858449210610503572389499351122215488489678799642621068975583493811341692824006650064714994025721638578176414540774753993370609255343766261444894942811562207317578623438828183507738215667320917280411737998715774866418335864919268619397374898780530938351304952907200682332176570838444518627673214560790945133575011230170548091022905006249410326946265411355968614897555717943533175845478022797132608185548398604818407480889598293518177942120057348565186986081724091280968793902186331524428177843219908532447464668774666738497247470824972376049474373253212891604680555520052050131929555686872979714975666304809335573639250845459009762070693516918407440521195866106915978102304979866141868402590724987050325411864221450582448579028882020555038854764703320889388477938279696470010376764284976550008277731491645539268162094971976144961053949392341075724182999900982129543220892964917390220136581067838200275623546387499914928593560787652814198761618831672375317291079231587239199164954765299864914960810651697243848209621896295011515733449740338503968425561819594293594800930324484722308730136805099145684934270797415345371336109840304644925426468695277905151761302970453045258280067599331366316164481012165225365558467695956772014259833919397866803121599307302317749606850697798817421878480037546304000038078590026831907966351866193349589432021200836079735687058929657219943640065029848501522648450851006897069000058113823881759154711298992669729126820291489129881779183478428172363984371563856482286177850724414034761419912637189355751862479031814820717882052092488091549716257059470139040986164256025583366503737064199592665427646638974897004158353245199525510997021201944235882134638212905530820124253298639491167561027216953272362053976442207383782689818409009558063483609286700200092041030069522190288916556712491069785008454174566441762242067197485847020583610011171081013990171874315370424949587661927252274367742498875757150807182753524897869246127624942830773605617499198195665014560603793031097470202766199177827818566347994970035873014799902078563345929926525236152494030994739148810620385225995731674386349141186810297371623429945499498908745725995110289484433038893941623583667803162110083319554162626547597692793832400511472536001556207340160048965391609678288579424033952190607091108104401325354445245813584234312878520933326164631086051651423096881208153563489469471340262020432611431184110017819858202077847058191707363548124596570095631802610582575970443338641924692393255887929464322074438790307390985984730812251312576328124758731014272708460685929183774765146088817819639631772903843607800356410706466569349736102622608018370725742583402732964053923362694446564604950396404216109421218818500108535422050981559436965147761256475710295694905595221469493880363186538761246170131455181394904232021691269193211914838276084694852516450424480323673795520574887250289689813337967655065284497769955676521854041963645366529021644905542882179802922551558346619618582604290082437669414907262732216365238943373387034170905226205247374445434572811614721685952349771312869747344082685478354580991386758000566330752985711026409001495531483299368739287287346650173372377746010666137674912534631674037266137479372628676109398404777755035038667241707376110506856917678125450584810139183969521932689767497404186045430001908445390501075379581885601421234282078679486137799489773948348475535553552690137519332351644163435564746642287487618815875399836757468334105213103436696522167776375861552284983718451483629095455332958122911894892788085023382760661972050714097624723543945622819142465070651717959621763829721950859010174837997155482751557350700721370971924064165690255535424298888724951707738259450431819627723786968551900595218763104099640825936360200436908351537829374093125119631273448424385929349644025586562665740166664134128175519676944308357359418807174883711792521385783466768437330901573536949909641620375800876896173947041067008226043541279543485906885815880354377384243041098502848226665875471241611487834094449342670966341401385831063580520930272763214395574032274207168898254486549833651715614401568612721965092998457775970533006029871355761634214875835241270608424382519093067890868277835235661780406083589889416526075558672666965028188606764798273602948757635119396740816868726389649527301069158738885670037826154001174761787308038769820320845431548091851360686926782057852026582658488103527443298961539385814718633700708586210963744998403585343218755173400533776265378788071495732965891476035784949290247825822514600498509997986291133133377332960007780155230622524020384276499435668514033108752979392241598852475880661337253815491902099133253479240050130805233135438547644686005082473879908253303368749157468013323305923529993199177842529892953818029115481006648570298009384643484132637606564183899602175398853958744507079462776665447636650170452492661533427499011851481958888133541607678557289930981757321425766969970018965656852974108582870631266082634593432488420851844725206162582136468331013296758830080010706004256023378582975846241351280374095869967452686075928377672905418480582830084721235336543834863947273250999128147351054858393281828570293152817301818016881727921238248095828034143303666778505063312141715520971779370519870649121155993697952080317107679228810495407467965889542480423538962239276320715355508605497135725113269158381155398222632311707946033579761290665895801665774159440289687956697990931180897876639573599657551837416644461983423120365869818118762839420291865128083969758755933265375751699408697073681629341417580269622721354724910739759285954143907091739138789178340755819328284566522524349658862906411787918317882514651663133727829347724850133600656289787450113502044632122325219100079255417285119451767201620360440914988218319549763983991722131218884028533977775948315213535269278489846647758932641087944523136751450381328635687607735293747638282800714071159788500249080957965528017727983402246504005733488562771707938670704953123601426343458767354687119816239834160387430381517178237565244819576363737372986016237906563179376258658936914273272108702307634784318812178676997309542187687498413322662628285875896249770650842179775357930245630295559338337177141686811916349433256688559680196033627790233774458208845927265599895951362256103206940499746488688056574345218011968628708432869127007916995610707915167766320794850949164575110666484276083345779565618496397447068771180995581642906177310821599389557680659206653041405219505186633909930771456902687759265851219875105298184263585325393500016645822909004978037580904663725764164796413865779567771835320511850859878116451119312188860096556672038194030621291492666887015213181665920043362444670456598477154126674111010956679812442133244612914268304882079508870420138769585409041954564695662678599367739092441973432475708182274244030631480932255689040496126662273130851702910929090217094474489076248413020376819427365241148467565256017112104430876212835351376385360048913730241862727640029993065002536069115448190636810161845350116041766576412705975011663122471526952550881714036698064580334544679284197563144779680281106851651753123307214200694234248320151719806586240917805406217713214563302820676152288354729107961760957973539095422784943058042280658565990357615615938840948644362837578511053792214970440793987429710185708116235422693160865799067706807015710659260172718206636200427815804092413558151429220515508405022455331536334837468924375710747011678615522972777560595996075359093832868278025508561000446559859254688232692721023439727443812704181185734909811109457880440693409552770413370617831861055007586231902243181921715891760450475983580214522395889215350216380531868682991532650280391227717279051822553773037013864045447587106304929083850521740054460276253201827426432465359843768524184293925374353536122086063323774484142802352850867566441217345490913060838172528308427393483275188779501866499649831383908522611534167246718377903004543190752738127531012255658893232475318215032316514853019776415791347248529365624987731963571563295446270100613694774997851404241325183756729939922294529583627181357447412051214807670207303501717234810711541661415245313869816496909933976027711211825641548401555199052735364382355474061885634261883787185338006595111128527984397240207066552743792462031963840486628679426028171569554698638773843715955716952273955173294367020491550533391060270741835465194528350045255405636459922635718354549448706162638123710418505977208389604030226893143566402033234120678752512801920204892165928648057753027868349682206519708969131709044614773785869345524204832842718117105078245674536630594582412747962659793471951042109653757366954670680209882750050750412858180525307274264675384916618587541486921457908255060220834584874831454930464430032094705597300135029492391126918146266649555754319568195717704767847047461859363853763003335742228609688485212420187848345381821032489685609523550225272959618152161748163731015430969494865372927721287215090973377592521742004443466389743173076984180102303725696859721411217647022045216993598721598489684547388545088116103362922002067440951672773323792114437241831313664686779026973199254078499789896739919158526756425682667361697191551199134020843298928459159245203878032889127720010169772131467266556473789551995581503096955035486844299023591365279297773973071636113714757039192215282235537380155026785434310207906923869712403825349849758494776198061064637672004539448235957129469913331496601234276898898556657295277431601361693931134347450686011371771534585012481571762637103504849351975660860845357489659091598606450918452187395361890503534991723060201470568895349643571902532428022913713480697074046368543968424350764132245609850448537542510125659839465172671587598047129677890314741540825373574292668361922692546948325481193735738483647642910340441453611508997557686971206529277136253661733608000679225387816585326737959811036900579273102217319784028037272956427164238943614337269647952556327045814899408709497543777626344569895983696913904460619083259798373801021140042400279087930402006973730434012610136505955366042634005676624501899280877869061092153108294470462182019194110956057249190293109049195992915936217762615699583256833218594310076868718434344593192543704547784885713222958964998170603490461371451573119052278360416850174143795398638110117494364084060435696005370001809896376148291412521848550659238016572060260378653254025346446518801843836445636248856026776060118636617630468034845177082486954810023217205525949702320596750891333499172434314101588115530332924759937414906530821665890112099084004748548602797951759017602609281423326199460574161559375843728713837507985567575471811109332851342530547782288653907621049852163306523814280256247977047059251667345273782141275233282705720651002419902866697894147829646053034192108287059359123837629879141784768708253851358475197929185916087692020030548323870641376604247134806528640147778367333119120098281562273601348430878003290940335443940920635225146197443304589878835415417160974003629617084381441361232455554987504221799457284363297892149446882998618927951196406742301405853177918237110043890441558456282318972541493641678618912480996438893271090068919410385123927230519835382844897822328575140788097830695751740787881928213444281144265403690402881734142051588050969968529175179808143321840410273823763824811979166014725174587996110634281269309077243793578139210402952282746427008990914951191740017079258272071567070994206950494378108970522638149547745911871967995816160364689076640929423845687222495875526257796942154105233571032896006395502683923751345179501604581705737464222785490848044105143881035139985065847234013871939905934777600346530081098538751595119027545529747957456520345718078602117304001302549625706515952560248410793688979074627484573567695887840390421492456344136171892660128534356700751374904289015898634589539079361941095358995481458137570700711879483705332842318426441613901891693317666201741579766177870807354098056736980277601726840728222046694227138364359481948947736920000758821919225187782055086373387010498144260542480918613518128086472662683738628466891352104710100219671487013983229953690791039537019428167143746245084100683513096904690558387098545139206927449377361121603247826114188366273083875970742604219008708056479629573188113199488462598952742970981143377378499240120467720896117545624528090557180842183646529552976036863752716891237465856189697649452990945018057435550807781608614504283690022375486193636117871713963487020009354357689829262658390543202573065992635241346912910489885749775134458743707611373292530579242529830396608771908950912491974913449943176303409172559402498716540635923629170700823170593099239089528984847481640712230212739495261406502231096715072498476981517764304156485077855900711045702728825534781838189522706774671899694174377905783744070705348767336919930327381393640884937949908629365915759688680449521086896755259094633464337278225437209639746047114760567832820655755434623258538082575803781425693846027935274440636926560589928848180990044902576629514537577013638381037828928135258629737760646404320036149321192969566778312650206762287920499244283357699198550254014945343134363632040355800409574406348974316706072353786935552029783676557250506106209942407694256601813622989642882551420784647221286556446563300943764924039945830528095230654478655250708294410419109941117482627640837620823960419815705065799125648760490417323633889415467255013035760987127908396975414615416826359255464629735138701325198930374014658484407517950876419450970749465262333590573804912418883101860546707579425329293712544095235957484932842452966714376986862533707617214123281787412567521947766711843633123784346939091586999812606393073102536332493116540187344834450826954751136925420944870534938500835402944178491860924583085526227708753752372205240063407998118074077651279794526768373511369195336585265739022015580707828387419902791907985638722319219916967517861791830398192387154267888176328486889495845592927919711883381012758522197523464553598898676834960091717603170960625249620878396933590435660989463819384924259901697520791126782597351766077873198116122617479778235951132535664639970202593399865449747356319452840107967433924344300197512956380486185582491049531238242774612355241834963137040667989326712249675898144269071540259223931206375301024128891638218597846814361233393394411355030869070527909004044529174860570984298238145393111747703165941486798640012035170793906216202156705879503431559208800551235649633502661209701305019248652209454004053644472759703493370127315090457584762625435089192179428506925346979438681670980933246245347901511722036037353066849051398047236977365835735948872091694854366469067279686979235427939322498071377451632826732217997406279641256821126141993878301813826401223319218290703701675122628685525787292272624018743724593604244612656505262973317556134652178979984125594009915908593209292292602950727641106186787330623775237603494695699580755613042012939156084135502241672215720852488836766739724388388684733796367173001170463394528106846995309906544579400108680057329860013149864215819084436402217047478621078558397012310250265025030709234971908085536030007370761803952364474847782289315075995112805381931201526089609448012498382262687001696197037067033896634218726510000892740933713847291124977819322976817923240343375637554544869505921873557626751729677939824355006435311745634863649838621922544622124214340625875870261444326587403683580626918447462742420983905708772654668418603735765798776775362980436848634060483474379278217583815400705616490723487843238725052742011381937868499429800172253195102382007431752895927020347158709066240352282756212744859552025298618931079126796249110700501607341307538539597705698362017063906574235949822546666200887855805874901927420648654208020674916023564847609627438901435809808078523221673927495065781928983416057721150396620295496827122913185330272583755594611305908338312735431383512175347917606733394112173299530878449093332686707211735658249095216866041475629965875395924670870171090555334752236693255661291521096363422909731423294116755084250250634392084129016979684050215670927588171570512406578537220286194402654783619370102701819398755922354742560307453177102542090422995257992711685134068356202688964943081068481528521578885676736839785727556358995261226874810000914275624305155222684236681617824840298271486935033474809061027124723094259069181748666376284189796302209430058080893695963844123541544658201490153126259953330373485178417406842793333366765604547319185020372923794248216886654624149287153413650404868972430862322260928999683936239442767382966062465692952744499489421835364909444420877834583986808568077964972375700694344638556167436581875992254942289189525145290976229750748149894085824027207604535490149373515057393239109472801891553467158287740204413900222704782945165897076521742402905690323427528727391252261767616853842750957706092753816695388988518127491005084919904722285956797965977472685562092343709089411470401907449999647061504429708196132764506839358719048142804550676596376019086977183033687672602819510920120151306704317055128049444860117208229209640906625420450393138188856882074510322775060290034527477391594691647183215008179113290319128135354496760963507104227199382561852647969022753417649349819828764731710777784874823503388071040204268488226465899731036352544983402136941420903585151119373215378324028459794065621730715285456230325754826387475693826436633749757162206691394668625993169904269562809334376249535392358659252021993157773513793959441060507735792281373081370125221823654716602388593545326644865701852277933859805095825945664489571026970972800313291978281937673075091562423745424890409515142392707948283819920533667622433788461629691461988944261653984754914132446078168950349345860641448469123839753202679433368071027219963411046179182438024415290426004180982639538466015839150374080491713024215516775933618816637756981763330405114437947770131760439155705543527025633844627666526420327649682980847925000491323799550485015727622828832005693275953538441947077326480098472228264460854237496350278754055069875195585874494199483635952444656658896917502743662922478582259847189587349528414806285109126473931537227498782019980046635407364578866789250924470416135149729974314605880009768918190742503129902426002074739546735101439312716806580745760086259854222838387587828919978534396473586343554511040533980042573903451533884310434513253425762442290521181027332662613370652161503423464721664068089415506447519603823751611646679328956208171003209745335774844052014468452831975588360182436037048778064924197523204763237927320506696115779216975318473312428548269900048313685909953377635737762756921884115594152509804347033119067698745101265822111436510468166951540883060561881955781174551680666201259580833696955113280527688723085492420353217954539299295025226902033242188458571754329347687462646465850402230436434389752134540715377671552956735012306776640964163460331815290644689716553706724891968586247082217144519090850694960528927081523415552082378813786967801636181180394535330630414056790355884062414589490821066965650217252373883949897607290414023693485580437000537981045100630506642652861800162931757544050291710094480247565683496611945372438104893852698185360261018600098386015269142763913043738292104345059704204291762633704009050926854405650338590608777803104150478609356861749881784949916772062545305940570059752161669133148232968163957318898071156274731574127934516860936296105947121870562662247167126293331184405373488549873484979021301302280208622478112743294466981656069803810450664374974722756890862353023619994227305871583562581541642087798156534443844087523114515347270057245668887475914570014966946524191588620780913055475156240657776349432424847452195855951963004900753997704949211777008507529553310547528248422788876049832697634269987704630549919984363082338015124125779255699465266769913822902647766676376544658586289368457461681009093499536888662056284412720385550288380457717718332368969441029957746512985622628540683825939180708930710357952311277213898171648519208671900188518968990461978699048844974331602035563032475474517522556312528735123124114679258598413633837869210695687818566775926205010600906670836293783961192919887901619898694626068460819430245467393589932939053482755234220503620317357964385236280267189196934926883751302628788507119506562946971604372597743913410668370197361783620850153125527009845245782109135905647544358503198929719469172944299823033132056630649058807072172991695185607808541150896378327084225770138670257868139895905907822188903734955740870633338054045425947104351298417772960330252681450365763976742723233178280293599247957337697241012995614792719997582285978576311733758129338784176169476859730705061890696866428886382515605411714093468587940074800184513638551931069002649749979162287876617070835036467277526762552894029656059765878205216725244569800145417620254903238749848899407617060838512558434069705724665253889048065623147646290418336046903237989617980592959286901785749215244385648697248410937771506682339149746341145795709457705794826326990655950744757173778191758280117056216420226038396407502512242051568589762352171922139948105310980398122940329921954821758624649742620425068056033587646063819719632663554667795677354751726028165591368972043562575989026027029365841634842304244360606566825103455643659601620342094193082115506253498226304381497139165761586723013144263564532767809994518696454107028859010379430947460783041972736258921285849907706457271957771582935421767858232808194524548293649883245431906653006624156267515107666209580054388665790302296236938965806517951603327798794784907434170918077627719967663412962780300224388916018395287343972240061315863718867161881953107496474613229502424098917166738221160994618674747151597029770065020889252760536779982421613740573523857031208737063377690737709356410242999446800172100970342469404858713902766732156290945324073203137902883396434581369940202229214981017009133314640588243218275359843380605447605666765047390893092351261427208742364961867316823922974761636336128178607373791766715455471085969708678523616017506626976663768912358413468799486540360185995460743467953710434186536353294532051430018750024781223124878019204628877964272878068535913345618417084344193614191960583326098321528898024208180253903291937691183803083307215326705245757668586178546317092288321240238128914400051401938433154827176957359047776057076291648366537161358812899424246877946564586691070657613965164251006991587220334316586478032687035857375716256688582846819725452240010074456024655873298420173493351633407641897113150103210882251284097441626891652207388239273304407022450648945575604574151612499800213778900974881954833997238304603267014130888398712056111316416216660880818182137266147017398705295211386954607780676843496396072704002677621217657023510470764697582819857338941551600745243833473334776070047157365179227812716235706248964558794160141554735409166327741132565377492602810873635377815852300790922662736034133362100354735667669821625958062305706264325232821343614451746677683977209423845704998731009189042833578677095357130691364296604285088871278762192013447519161907593329216009063226750067711574922072715047538273791484845409469620228858915057504002165063906571241631549950508014023057707170459081284502781967803979277279696216982142016308158701150319557311310660089482345617636039925749452005436410882344885991057332794812832682053151779913180120441096541886073588868174776889795101940301012055702429467193377837407563012653597322381255868187440265204857261326273705013184587432437590288659904662450834343365464312415035633709665124732066111251614841745326989784474967874108128386064227853375642238709224491489807301904013604972333506465932461654427460312045201759800067855073682336544287479895729915643441668742051502513921054113736996317997772017784390167031828871896999004222647068570474894798797005632658115687095775378665641933326995175969042681403360238902207691736828789193691142041056292408414314216301907148204908080253480961382731093361424406002455860225343246587904069589470945018529048623985502879909121432942182490966272349239996422772702101239868656156456763211625261424101780176711162425853159155154168676870548501530330017531562562393467425361629592191071565860438403717980154526566760372971658270819150543230524503497026244491954587007115405519943227993336062389658474099363670064085198457555359164872904384999384293271025942350710777089001167428781258183904019027997304840263852843215210841061838256831352757163989876002970707464193832099011651758251760278242696389247735222968920532396077607632966224983390314054446752034596486660850853227553695308296534449893270617459409371327016779343196335448163049714539995033045694776177790325304415143927692947548016303353380388097159055527517928938243365191818204610570647583642168198933085570514928947852744888570486546833993975350356682578726565321714515106556315106469819391539013641852427867251067256872896935736282452915461187218881757435722790172857026140878460770136218787035105193816212299767151445621161683654978476030586631332588788075524558375990283550886494137315810913740205826936206232531070756530893065841057483138108530073856014988394792279872415360113843819550969293489847008669806221569312417274103230545800545162585095581687437387578382899305113635943543664812178954694333709699616992371525144190348098840922448162660952798688274568019858098461984504367086168067766001587395556458937527600585140998724763083861043679511156227048571000955542271194035060503709931848585276785600035630609225353985718889925465301639120034029575960522642208972652073854778185548047130031971676568266808128730736683149169112528386710461014109517208870235483881634828512132106397791653318865479856569364357541042424341530621189358773709236844456420202470358717301553658610542601114744133927645831405825199995368722646482675158489660040135610765395860342558920618213668515925536434095209684463761311623419480832139889971974832985600938934458562160278839335017189386751974159768409068471154991159312684585270244613920357473551116867594438735022249837650566017102066047022149779500649071570358128884650362167734331363526700749768970391125920828002823088017552402266123150406134483825625725128854833333284349105069851258848609376789583686157694417327314949867872155214882975378478925190462832552068006460298206816448845674344893444811352569718332643002172377213243999171756796669638538739523980794350043982928109013198591057011355550629887410423404639871766502184680075394866131546962542753929909267038221273866315718440236364360770174222028310158833199991417893174765000289415249836356387527521885492018562975566641521058833731034104375970882836332897045346594430864845196484761396105411241667250645803442455430649332294701880199333073396248421830737750904046664400466495987529914311537979927553976635501200570567350449290126631499332276038593932318174173235779163372097802915846667400483077333735521064680480927992497119544318205217765972178074404983881480890896239881787870971793308661073051595879596456215808346140951542828043542994948792987665977726099467700590806093292262330360720961319270535988142472851995814281906200282546811374659588515349551471788296949239774765568336555259079937740833506768989101784469153438160162811782292477886791140437434735769686376852868944055956156373211408104998034763405763157792995034306899177766194613503003396293498478489259570137939691725172401939519695004914629334047007827375719965486974300691604897745740574623678575863503095718069545807154916872165464743978484017397380330163786271343538260121454134728855611623763459098803102481077860461761476332046246447276431473782786077346987137627928651034141082403172334600743658152442117564303574868015600820324658418460648395598688386143015562293526021679366725635342453683233365766673500503019149152503403720223963724040302273772057548236817620549041216294962726940699271287538707776016044765453637884152086189618999498411149461369245186552304679796309980713950665452271198558239072316386341553384194107216536947857189451697646999587398164774931983020944622233213992098230979212696207626013465183272944473799749221430637560761607020290221979036876127068323604390518181502032105948553571101249029803736239592310568707596994752212844383452034338961193662044831697970160910867882617880257316973605655862258386974079287262009072248323231546014253655922174361070385814068127854245522847046594103046218177548384576712204548558086407271833869325243774366775078446088824945672560298412376831952992228543387441907786120269194390097258281786494386794789043414060703634775662468227507470582468860041380926907229604815708496569098328548868405649384835268392013651841717507856161536189895704424757870830351700281679717005283202914366824240650963777904946048380728853091031294621301959732320570305832026418516211698999676462848253998693069529915757545218789648135527142510688166531370921316690649797068825269084871298276451660169815468031152434655185953096826653112737813725741006549771621626381223702904193770482838975671116641209662449250013271288467301755854604600016820645987851171600726261992576737717378943811813184655163003937216756205180847050814494313235941304107358736026510891526913399162363123537278577026223544984814941002623332903481844999450304723100248521675731427548918090470012377123422427895548273556118450746631194933732248266445781952173748355924671185717035876309605542331906592557139849247810702464807460734289184049762785050525449443579494584389275238348379182236452802854638960196607743030909802984301629420629198632462968525807529467340459532164082120680403463370741077350478736926359330987325848609451954406754257399235481632982341686282955765523139891135799099423245297272323110412018921993498726175508849014029102621196388303785267859573030165465631868731582937185422000791377160425612614454899740779844388503214877713632754756477068705459436145433339059775326579789431013347501418911274099673250141831010603907025237491900790321333747532342351011940816182718872680348943368443568957844967632188255667457880437003902296123764166676951031314579980969272269184301969630315507928543857526016092138000977035851294547905254398654555290240225580379458193024484107213486624224114098969623986615153873236927521105186962813309529361901503474799035756004398319576406839721484595980834326152247959443836141716760650154558174225479723654365110144445626119151146688726460187609708262231080930111153452704631615230549438340910567714514708304487087170739978926993099259576273724118492807329174218453324010732646118393200623661201516380723652512370490131422884186012235618937253240420612620077288055458307654654390243477838640344824149869678384313276017421601906234668280000541388874195455772732785635118900817465496576678470033831103840305672973010218913178464601764366808712583852958242831948677296508116017732362586707806867603725000777485994120350505026725945232926055561435205958948718085548592555602810438987843048322162323056566362246385317971844146313256123277653697439080661747342374101788159525673189019671877848041764816375899608301996896981936681909770472421418696093865763693660846235959926111508800586061280035904205326277595479657718303539035742344227957255219437737045422656426474266022803122501359304830572480554644303981015904595702634465268094404682310587053053039771356111198212377555423771897165469551181362046332172541018892914501086462831825118937134004372452083410963755943438521589611151176908287371087927267328871053303815261945186172678240694289982649001851109875490024068478495922565094384814502958217677546113522583322878506019366698365426340966516348362596233847883819297795834524658003473898778370864605420871005249883125544817115805104837134381158813178363444356661783656581358943975997765467130815684844833192367105024837176577895544640576619925016302933978799324844634046656488864502256058325116648200912009397447529531715190571320934481730044185168249617956851126927882973294312175315231484906934566966208463742026265435877172274651792007431458822111599846683426629869855794579564163914973074326545088101181540505817741214545553021253370340688809438037368423085545806638290502794169134844561950250507545066748728530079108600746627015778849573768478594238839987666141291062507770441554851492229853879602340148412860096037190121919456240217786250047468435434789373374186582732506964534905420438095614960331812451845530877958773644075576108692665530846315284079073052808141031649416869801324522204853591666357280123954994194628106313294426289617976866241377749436104761265591949952255133113800507647207623919922994561102883825223371170737461056206229839003742824407382467906686954288089497501332051299143844906843402263705691284639170918566563671709179721645007061374387726596847332444787540543380975968928325217453923704068940487871678790697353408214649326298882043432985269155010998719678961027533764447294790962817622728599552890793096805421558643513609226502995110421382322911286224866356777994248033093936277302312220189349781258297456436194480066148011726661145869780784386974450164997037711373237053627157379874934146596185621837510781881728684559223687640893255056544517746748028610183671499351570351036737995072262838306641776892918197286578904278893926273790456889666513405639639977848831140788391610864622611455769829541758017612596869829994219357582143318009798263136539777009913108648891672202208832900168439263800203156632283714788128864671219392014674185688805776611240885663937296530832971120386358405119541760496860532021005578903265405430711719807035503549430864009268920268295057941569682615605547408976177727160700303272358174644954960831417792356018340907204367050105185275751436730444309907251651928118230782978772886052966510750938635389317025914353267953870460721488027472455014937037562214618051610060961202630342118012087175005630042302000341364011025724533120866427825491901292736816206376046385575233028489417526711294456660311861560095385063657640481398730548779455874269339356143970001124344025411457276781334557899120666859694052922808054860872905896740161836199292369779196974246588517182095709432168459076183073444786464865202935843593714099921964976678382605220929547533770626002335319240302521009471877331954683865716798454523162081150218391387107728779879414690550683103941366797063774942979852184669535301677632763359445980733074366819107153143366324376380925395049744574360708585696463273961834517786827252059717757961160407307931538670850211720848866371804324565287766471879745520157727354695423190301951029243260879697997673685581078366306515672908064268076588666996377808861924464456800221040027437567533426237782030166857960801682207759214381007969800902197341014244014387183847043816036402072213602601815232929639129824179779292648122349151049926811657028032327060262553902681348179988857864876696824927443956451260351453775018705807278353303056991057870230786085948913158996638357575252165867146818791178253563470126970941043688736093161478617994988451985783322586621941836344664063896203580801585613239149050627229381166802388471325350999154208442696478958263556638886657586806758269207139649014339278261859673441569928154201739461791781136176491575623858816845692354463647227624185840017743232623803160186674243553444723608335061710387692999276327832290060535718565481078985705910918075779750812002301540524841215346193840821195196935867289329270918296581243947473071975446636980739351935664621879404071031956148476941115192047217900922996987482867344518910818594214590889757863301001074363365496783863601847133854091895701505066304745298599766635430560480415582064073997908407795430327524595185443192713425875569579727537940358678740314572618925023009120373561802884296832058233485531604418627743729010510574886813741530394389644590492305596859722563152654462742791852713756471796008302591819479253507794521075420515795355600482086606886074869857553327361119199609634941561985924236996032182800920343778126335351587629495867355084994402113407357434241083037345592712678800763409306405642318077812340595077014525330725357995889270407257535105918632287519936222330967284723462731905536987779594619566474052666573928287160108061318885382097510716127055935082140818851178881048217965609566211308987636772454350044990823132702348596859463376819995779395835202529178593715724812377152086072431245891531747592796313401756973975113030547660680516568900105410108793415772926178347727778246184442230302320210344364999449960921819482537086128891363731910138005783480607539557564237237720657533189320204786043087244583760755160142801547824809541445327344883477685266156449509990704118172355072763251539290515387899829496865925763486280944332123411723990563440827658244254909654771955314625123076650363340953952115498197601494874718762900878318424112603785732436349389168337226340829832888728941776426642869609841312685704729005520632045792651845118396220969974056935903352762198197281144634640786800389312408516614409682198231008757755527058724414067841452498481534849054719880017735247313566641016126200376064958721524348300226012931972143418891571877677278142662269216329159922500090011459986157545291913485044692211920899825610710698558048724879832288554898129803871922817686460669904790873500729212920296565226108147105848554124798925556474842586127550114462939854723591420264396721626192175579964075001098288102087075538985495889423215154466759640014495683397816232718400510727994334820274035113036873775317293605403430175599718796611163495862406430335917192702766649631124296704561043513374305502267060161017059076035081292463295741955405589805425108982826805051080905411358649294777804518627823669812644248643108186959655074778901352270444081779046148568023220745537110392703086228281230115149508894143194646048444935236592538736430001222228110566707769828681108452927891269017658457677168240793556726419542264404708477497420534683339312660987380175285931294288746756596092062232122769213616987100637593389207708082380191321577612161502029378651341214380632389706907394216221470136330894018950816782966480063158578206095564066252404105406722436533625728376677357843254655805219928960955843188781336092283310580092115171458311016599220719309877506577796476431104080027951762705287666190066615801322035359642496321825567678155678606247459711992208491674161108322136109221748247328299166765638874742916192489747446616962747908250761103920271537691594160627453025321370236680989268746345106962154977850858772450587630389043194807355783608051264670119754543548866549038729417468586338251490802003703168972146578812028501658175051517870451673993734597429405872372575353063797630830455732916667889507267564867812677346879551599662515174086622358368093044660145580736165922106005321935647437521281701510359730118510330640975690575621291694722094573893314352342599471178577082160477108779091808728589291865818018147469637492292289631711630993870513865436562552565223146791838869628750814205913398789252030854102682372065910111244435330943927062613570228407936064951363403916221777084609495072563357369057687699332770896621959627103466785984762299765475419639809689843246784191799418970088510288493552451424516097335633763206359575763014710319194752029895108997229616679654715262454381067659809544563910278819308826015520062096823034219137964177761842092609841209631979483055661541904856962510437490950517892934473444841249292006242775181188437383400611569287983240200174394005992470128211051907462452748278841621941433313118150305422886911076167231961950889728099185554733318289926301940558057269256080309020025143111330667042970235867572700619960497486772857809922040534308823066630550441031935255280416543939857349508796873619815644433087890583594119149143869578357150209377934313024889931817849787884559219937524438186063990260710755767936673044373042718759799562754277197747474822283466290769967591944715954008672957685128772865350318361723753783873575578830649708784576563538331687768258749406822918486220376316908696227994725569695757575887473272089232039519920418789181889046342240424706910476965430723420639472213023516974539785452101766837116972370489881269267093500486273662650092790337401567156398019566726687292131223235131880701837990744301230434795210145212918846010630089529248497491950327176548038384236801567260281660497723494433095746237752699877369972577785001946461026491390453847859236917845208893121183272364442558212231192659949386298452537331804832754063874769165019135986668313201898315950150664986402354258095681465460947491913501521987636863518352426817471846726040400486422285849110411100636518459887755293253686558264288340097658911920282350150313688965882607505962187111687339889759895808654983887803452386162853685220512281428294000636886829950366229634458036570683421524371740118103202360807674087386912311213331248332537767790926166298304233392997457237980595826612405285800267204011498850310158510627346833321537273420941377766273267044160033655984835709792401265409149502794108164110292994603712976459606102907629144343086808963491662605301965311042272927388044403381561974931806835815965889846815703305692889848156180238237664906511479725756423477118957415232959822088128659014525719850585533903758811130384244736853997792756652771303225495781110693451960691621839588956368401122930442725277445127864614967501555722343779664017763376733483455187936830990245694956847402387403654488323919720254306232442663108827215893133575956350681237850448743159172406466462865178763116066509808155742731772935804968207355955434739780179434375117605486061012530538031022395155907476721146054326050051239166662802636358201349509585030721721887170388699033306615631998323435059392921185491411139731821160923144860163565965883631123376381589503559786097507432669059541029280417243117037115425875336877775046644640048956734716488755890039168652090331228122440899355655592380741028318205508777821022584699401468853656616803709099563023325459814950316520406926636913575944752449781355398256485421633407521876531710692071618320525607984156813679022775381306343226184514456979041027411079540399325524589100272520332290682239679706999883909972576076319116255758627304187571295742777519956670388352598664978213820978147528122917269184879133382258231020916302493637018034274655345228401428036286120600577546097134720253684162394549735989093677414686987260119080592707422613506598824207430327863148802993064480089772226570189972927269423215757873332810955151878087545274703046614015879777655308435657646067595129011777376406937258779367926401145546339771131986747018356252203007061780385352518473008075091740340131595773839524012865114961063711093471599506614346689791364953570607608488987174316872990323381067444622942414907160828072922179733157659696493339232006959469220868262549263633947222266243634869251225343780534550197138634096450190048211888833762119166683692353908293044576480146012754234652863817680098712675519918431612481788520863080733970992016449392842622152001696624856024569753215626050830150234372210442643823716313774978540430356329546000391447031483408523118154265319012578151848447980385910351042206048390879138743147365142068039444279525748091133565764662013835292293326734431983714257970211634037976256045138112603542450964371799713599658279801467465503647491563602930759803402779151674545754354621728079844086115235730638841028092295160163514198021020504947726284600504752491462543587004816632348257600392858016198145881422967069921187459692377360792888175351301512324062653759031033258968177476755055953550516065721859118203960837692511895336079509427214040349671114239621967214871109653191523114551399496039654194430003815388836396461449416980378328793363274977357555174293277185307890388432490239059269125487294993439770889711568126486098160056187555481123157316389955116434840411111689995979665251293431709038560094116145489463942313648910248988523592979926835533407060309070169039644443927837790349097726802833518866441685720343965503334756772659524668161250726709340217606961155557371399938795814604250496207723478743079099196805903151409985876942500976646209068021239601244027762131755197526901320311032682682105687653337299277462940038465540555397460225189227836570736378424257808894403323428091882340202175353820528228199401236688274856840995207154229815634869520043659663350435363764817566498477821691883902957072418994268379094860605203372567615011280123326561003371857271047151894212330622265852479152153381162705219449823955111364316331795095191580043405071729730052827343942132713774265782614476475818126715535117425646532234158667098299513734096179257985109248835116075599215470807748035401344038953096460790998641262938372453042081205876807894067707473650502619591164132246784458462052505981849763183815182253496877564896787009026417165270770785706864824553402349233337581201823115223050360797201225265481221962390677480697482640271451795414522158455556586087764419611643759129462714497522337971464120660926156200947280165966920276154285828241755223262571368417208449770081434248659658473626980074045620380763799773433186131951144138033036183127506282848914905968876871791026679175341991903308292942491653819772417881939982228815766474184572527488489600675280110688031460400826849074179814486477431355119990117013296288845609302694839165944967756266883632888882056805112443357442300173355202846214922893182135397697825360679520348096480161933341231227800927953893047000594350511487084056156799339107720012677643534371158073963766527727999950323148104633902628466192390255478495694740378300098522245012101951244148170403664643331210821452256785040295671812286089347790835726590651223606517721102456081427682936977116474211904780855449480247754084289989182745083748369875721860746741627158053549380464397798598884691464250940149832413419840999665918644405787377906536778486754376876193127977312616399214899086369772956750993022208536382315218585920539628958753962239886231955692480558952792746396159427479333184480450486512204735993195673061759049761588633784493952033828782294892028215053649945979068855024809962209231587855456298358161037560311522934149223822987635460658367819121266354783501594507508375719918138132206429734303560210580793676795710830843114172102626904223837136806022812917205304122527918216452095287550630675794984365889043190117061958296332254433154940638953365520949400509891963774325610786412620161363417717943245197334946049108896731249290975563596415424619320677586011056742948315424213511216905345052206379046523240414317799488132974773605726091766261044627817260948024847385817279352329937282312099483258803289231211875148196462336968138173877188218907851179488886407965146279064407709734735211397141775190184449434765175410066173156417592889724972540836952806195722451060225544433076322534485923554206163776025279192263610853979063000274741377319583994052829737929116384450692635190491839589134204776320349039958727886681589243575680247073269160068637431382062032738118435307651347021182615937519803713385653208203106016608099344736316864741108883750084881173229123012311397760987984446791287138130043028337221553349416566190495444629789082780976540382562340485294018860312263815468823123722004855135816947086676584448829750876933912733406041316408119393373050376368531351626360731789521661386048675311915413868510035594787461188552007818567232623470122926075201836607194755639041640292414221027389073399971717612595123583174247290915947046868903102014693124253142206364466509578955383305763559870230113091834753379586871932294413704784088776373279071272436445900860134746876048826014528143529344872368070515786243577253906555430437276439185796808009713048877422963368978473960712769576367179593915182631800908762115141360624859165718635890065063789790454279052642171266106820209393421523126199731031971076223110674860729347859127279197666029184831566112511137961167807300631052211117852011320023048206185501483733735006046273378624866256768827856975397550274966176569188044468136351808272952888018008274226726057576793071581017073679013374548542457350414028534652773317798193507937061900328696867066147561974379215974184662800301510580693258100329967899419724557257033725589061079393034452656495882738417190218850389773520494459922857702120077102179090795205173640487760096016929782031171181809608746791300027030387957173842814563276440980786896887024976872530703471103094102279697406144191426507294150775112751891583725704740941809065412128046039411397917363119659186675884256191943992923037436325399354786288067834846259839285121887907145733413658404506151733078228703829647622934030428367631426997797157224249093868864572541475418854509054750101720686755085266374033393304297084735057759638355195850637131266391923249016546753232815587919664150995475704000616656530483289954288514298891155044085500706007514492351048166962790277816105895765865635363497852446020582680624515892297235016948879926238973411716950564068208001209602062184784577073406554587048673050716359706957463268977206208643618023668927903088629869638168077486643473143701938931418267698924475634740319353720589610594139034739779411538970506073869702582502075068343510939031336957802728281179710195780152115057765523857500447348938267561074619532912182304797627751261803613902058776721036060467117695152476047324157252794613021745019239666035597650960361027426869058087886812218840114765472062641667696214440461297346674854024035910546540179430006161022262641287217886913541270928810963307006759506697215703150426984480156691705816125701395396591089942931275407269472536375045705431719820116920242959401240270584975628692049442901904672871895731662803590182939489436527771464437627832233277158486458039444847254925708883426961498830092678810259692382512147004605589395213197805388322707488291146697794219772067113182292245380103325069935943626190375189744140109182331032314783659378737788998793499211230279555400136575235087939879832092903486170082948230226974726658188440901472023176924862367212350684705456747792416398963182715404323191037570642038689554657994600303052620550103488055028991992841564600370619007505413123863007861273246740598463525526624306257866644422979178033734006807077487111413917825345335299076667559895905519636684240579963734328950241115803879293455494707087829008818320576869546198191401295122737086142147339560527330052475795595911605031039763609578175378684278956489942738108658011342783802216856820536521732087436090938468753953569729011388679092858128712967789969327361102643211533312232478042655905743922816750914941145133348063445846334353811811418388462585351648791082796815057540248613366108649184733172055315308362301463454846004366744441893184941154023481144565119360040958462555966758954824378898714813585325138736937076936395745710783153715796656312903289484816085283277992993518540096834559389658386744295315187439040251377469314674264678007007433269264480374529396741212438197687400703246571216513546289271680248757399255828411424573723449664983771000654701726087964354604656869904442684595076872005428930293525751950566896677524113630456889717739663168577885900044534847962427933537784998232608550525972086388937700459147409237851251147480717090997647791636075736776288111526106232747395549100062050398030726775068716522434901256145255719010419822116783972144950621024615788615880469730612585948639835115802753702404031562709372174761176809423061886380738805500943842199045448841445647766623860196455076603140485269313232536725213115305289677825765807561339331822391020836019743784507692444594446158374260152960960201235398217657198668725278266273508103924355784349490167518448161372813634648632524202581691183949304622238930272075463360573620325555622208282678717852696057343484542072874828958443325483358332544909371653386739879462493452859149749760706673948236378103757197073899450560389989435192089856328854786574350222336312190953461476443739432301117863653201286186596006524668915382257253386514839859309051157731238404572488158167089910680193057646031974258813274563573001511992376781688889797095656120380389910706670248860304728193298363263902101814634305835656544651383100298284792356294389093065346037608627220166855191436149328218618814572421320391200396269311079864481459746519145536738131264771732050243671988862779894117996247163386062522340982496940259661460633100390893912030599653661526959517760590503269343816892601851511128171387152576532834595986754467922800553126256604399582284748494362905383842989393595448853723219671517236999966393617239350223739930115929429022629837799609623531487213025593797574546205163716608265230171748222457027165589200480518981663507596133372669745857115997452768504077917444869039187846672956521872952986632350542213918099957215045751733283011630954004830514329663617530777311892224839206030420695847543352976071663695364710593259820416470471677932737428039703377335349644346478615094524834633397535426167813278728147637709122638275574977507176162413068818660491666094382140266720623321813792475806957339614497099381178560952238423968515664591869593716050031106184170039092671734313983960972346932742026207718414763179977443825974279856371935090768129482801117850435122881923564669800085047983520150820467634892685954240447941126545874527223583216717522330342396112558747056721509412296580512921286587086496732797051518627196020343084013452120899228436153429498917234774103335942769093190877804816680382631816584555198806753177897187568998481194899477888746772554937773823511324641649378708901679666491024567891704947632750010304434182066962584507094532903800783658949907057105970812688568818975889980986767539934419823611684299110206292873882651881717622053297968261339114935398786507349457157350165075778941276185942855542683912814367377918883691510487878722492052482392477249835162965605844108201874144213736279800492369667866986678650423326547824670588001254207915832144098138864420047054617957962330620464938054044961520149269729783345565592748140595073103867213065085626227961028465673838107274440752007356158536731786620418077426561933232364134182447410840593044046259523242215361583257351097046993093183314336380519632281193752558223356412458060156729748487967726750732924079629524645154773229364027686089889785480727846875886503656737673391364604147698701126119937840085528844234713373947488640858535281883140708871875388432686731481449795108780687764028022417351688229090368614181198602642993772515013676992965184637001660747408717395943831564085420285495016986403175840860454899186421105299820017384703039436253797457118221505767728299444037696132120710630705203133032916508640614809915903210442565264230415989107316419183607804892334839616352868890225211291724723173738748190746226545572713526380162217741298614647741180720877403125455919623246769649030179539473905074535605427595952999951455793939015278775364651765592025516861004553646347899656845490560682548543829858793829477687238609153091137425887919995949120890151562653671162849432173029828862753418554778104950969133418646328380807734809039518129652247112363061379097118141477889373538295789271707152763907795875532539206705088774801410996365304313977668986232089373729444897336443109709570535965485838140044533790429531761118710589479594165661366849006000560514815030464639722573279034596656101537665756339449446578175921222077797212563590890962489543288177315130889115866317426195826466565705373522671342654942410551655102124778145501346458526627100147688215064191948196679595568541149835911219483698818470484723287325042085025649863381887969667917765621560637130744245949566925876174388280812083749948483239507210480432023839914398311707595754218989547703728062579666233288907869079432943659164194430726373727953938307750505691424167093120638286462022882011292957398519405849705099301935145485012994308843421786433092272069786413811178448479352646965400713473105109084767282927138425160969198500284783031274136346489240911054325009881285436212192460647767127520688152622777833299882235222747377929904215624400203487454733846871247761226705598519586280807126287243589199819932072005640633209890526362493755304647395863760077354089445615943293902115082681942536476105662328230008867964900933323334413265613803688931765369765371390907002429497632225307062813413540684171024845750500217898765998859918746210192990617119478953341409928494250927675728548059413582214551378378829462532679927705007683694006777867164999411706283296279470662471094662034270848260113851205447834819967897516424191707879041777833875544385672432591869661796318298791977663177281087879991525781562641461364454868350729803298943364392975574542364034212895784455368107150393676170381362062993559238880418190796569630220842061575623156812586663657401456307937468668001912304913798362742223160561128271657104297389142226383437485737366135558324671315041388317682193749608151916499550662539571984098387269175970845802840995082835983131758663788518372630056917108373175974196300175791226903244106719107654087548031044879900036851770337618842106257402003288121937387681883595919455605221181284244647992770654903497140832076352209671774891298702009509283143113851913693326793576324836042193428302416606243655091093127365717619266795631537547181762537602606871669885178729597049161258012741747019939343721000545054065315888892356715726103208344961996253601186394433165534795524996762895398269064171996841655755121872822059378747641163830563690286139966624904543370172427812354902554730256888491508112187341374471879791617317535357699563652718995641716398284185626677992270426760378429918293636013401755109838493155053959323088116243016245163017169918732472050054148932561545138975622544289352946851559220968249444629683457846621779037613066278440928781638619956163541134915561739497334466337326606569372160059019226024662350737709479802785417371776183271596747848941838518644355887487908870536492416616165903411988320408579692321379171054338917293522580526772679962712888480157547435064174995482711229971624875623383718260499494319219354736089044899407309600214513611657639945630232139067753540471387154927760710029770533178470380491849664713072594161938523937443513716199424656020336627400289771420692400676270656107405239710980074446481195290906575896367492052823543698445734100391754839228637411883139481645242052933575830399547401413999944156280560230902722471449543496651363683188797356216933457517770168661056836310097771650289900516292409346136263382002246945556969221167591480799381479016186070237203929662605948215757521500407015159852976301159002786012181567670429841193116284367760056208639723653745077527845635385176203575985685579320200570837356054320533551868658731838041048172724987444135910809658724969842503979852098828311964038286399247304073746133991573817306610550644961833498086411073110296695541602390607487551645160069088169986847779538371863708983160997121915012704548415746650075835727119031258839455061098713326958013811230987456505662772724328072268719122416666709860669665645907976095639934317011716174564910894889548908442358867818701715889636202619927607619162146823823978539634154280271093409357236263180648974107653913268943411802056962549331639497101830885429697715499820449382681576901925149986217479937064750344067698873468893457015870130469314313850203887427189388620113473030318071115001998768260576771633451656731384555470333033482848322622674439806976539286220977023775891713488691798878362498210419794621520843536181342986048654038144349085065032867025166480524571321383482763933360238893287229276682086078777982114143735111599933513619046017833323182429298989134134792220628301422318917697169967389489287620808066820357943002006010240025790873938060287944488021719409320313806052700523131897797686578360732525578309220156161197424321485276583384366278588499978981958208875176965750105665395312676719248187391548823529097406386830747246923047731975337254144976746605647965475770452514842644605724993131811358753393818499686790693425499167945537054063988051458403644892940692653948463158597566700232939193280252110633947451293029636528986799839331612576685423153275036386210550405105974273145368579094534317113244533768945550004916472604487555424011843526608485629640791778450439287371095884030035839794683842922799167644430544682496351815408434645508246725889927157297847605664191476349283065019350006337072005680245466809793974171312102314325888305523181149583707479534187416640751744871533832782443674869362986389925289468081751976553821215197805280780888645159477861516805105340919940740843929300820759467584273731304465269159293155265769859882956795570520184477087067838716897247785398639895406196683878171596404115822042906512297977933762405377168266138336712114398554693379892901574485912878376384083099275162295003057484132408003289480879064577863540183362101113303226867057451519262510710513639919808770973551205113627288099530857967323892628209835543764249833259235229856686848742280823567991641397936220180599003065140774784192479030554318257610817114148880019458658661188047039922987629471232480430135954328774791960220593818510995392382045675741080016683676948458689917963704602679790998121418679926251308192070821765464105873555065977849027197194836699614107563148469632971760386151915381755117584715104386880430355271039400259097833946026264792264514547188659465528268312043496852316488046442146875209583748259507235825927713534800753665503703271560146905257379191928796679282191314157160692667644239773717754879231594455679452984861177918995407659401796845715941617178126704416082856372417309945927555564304275820917607104689521057964669203879838845293093995379938579436179239816232869670004868309239326963866839115542752591564802894883518529160971168575029072620712409098892706360030929987532117136097042480872234300779228085902166818497032444710016327113862063897594001271074110287031355209692808876823095231793263396441578960147125339318365774799275134428221527945153099827110085547112435506084254158489053202305719136862105074848115528940390466205996229086123711510662106764999219428138463873448030333624250361982872216533294355736361553589778003524377392290549265854449619927707207198766106911830662504055271205860392135378873864152650623625922861146915654860362756362400508542304651259406445016699202715429953972746754611166803452072562600380816600994381297001897203874429193360968193491596199854601224170469763849831519531985015971173316750807286077387725603785651462111568551625270874891541388754351517640627771359026910911301100748865325540998159938363703096712589774765047929164028972778088520815518270916990535113357898134802534047617215578956488825998310501824092702547439527902204387931632306103022031163138968235246539599877189823212617970042350192907286174354407841551943791085067061515024837333500400443033067988248461762166939463749435490676005240206801274651537622909312604388483467487811044709265279921099982281712863030162061129050246181672067968607389183003666858566813261654341072961632437971360659583012794658316731055001367848015850345435487047099871409524730360856363764780568854684099050429789068378160546812161818903317990859686044005723451361350531952080322396780422591840574656969301710470812382773982733154568296047541090816944637504633334763632343308002902012887648743387834255971789942631088858057608255203219400155801268384571250379591847894941017073394255421569997354760288969366589410481744371929788873106452138040111078863203358470418626379214290099736328760785805159668900366577261051355004022806707658267052237121588894741872309900685969285458147394343018201994206682453239307346846475216187204666449284458527967324432609120210439133154689934410984781142875165445514183263030631110655966112979249492146307264525215831335338438233047562334045912995219517996467602974699928128232581622400014963032584723264208738658869375471222087258367494571200662030968410432204664381468926444191679239047009048276304077349929862703985440051309751624968689958787373812713721522094250944872521856703524080948673737621289196671618775483304109706341838337524259791475434074484662902552377206436384026779754716581465324246442072495597264770163203213210575600848360086748804384912665770438426493812008194949571183703827547323068102076978343394406483275307590139778522600583255078981012612308632995890796040572939925520811621851553664738497286742200894378686678241960726776536596593085025976027877970621960355545357175029330108671225170107292414058163234216932903156862493471423152064197510696935497207774334476671295928935997222736248601735529372749946599976435990415710694160743102927037923435020049858330909835560323391946205771404564982010742972289010597628838549703743682716016209709076207930537857304703294417581387754621716318247884409048705352221952618387555069278838345135838078831853173666248314954786875251813336833767781893601770565983123564731790989253689687392386233811205262535749568569229016149371687040805405248441707402495882763423824992003352613614035248478438744780256932323550786901273293313949559992523633125953420475691365382041140304196753992202229957334710014071743800838283607123718077922824390837277049920188144049075887021748638333260553415176128254172157601873310359436375771766058899272416438454773623091868685916130984274842896631740633284896766339977371818051777551805110298413206697036288970417835595674614933637583027027096482532558207490794727655974135946516326033896870362488010245092282781295876773892213135513970641908414001001406037341198260302245916720977314846678366519367689336492724422662353419254993826021738122085830094533276178289922681015414558250028069595065459520792224592318635764833811143719937446399836332711234508842842415079930289313409835623629161086176585771377046035127533033711021082402089456243803384114860189953793427918105889990674922490464861505283222596530561378905352673390507347967614990400852289091363399985907063013289716515104486633580704120613708394284597039515927749932137452070888129861665716801570683695727249134740941191077280557789492934851709392877497587808918480958209867950658709443254008305655704953135315768229352978697273903920312237870186155652160998702435964869634801929857488475999666084140113216027339032525279920869039263174006234060695237513271150419258762798312353167907666304497492559619163335349238665009433728757194625446265972387757118686111945285274549877153573259326357158277627674593128170391028962215483545616636364484811754396223095233695714957232615518904603539413656371102038196446375304877097656231157317041797283528744992952831487522201698642914927816569451190201914276311760543516696804774166890663330321950735726328121411571252213355147141284055233251328634305547125714745469445768622121960369625009203915040903601103428300748732133081450944715546381414061868993426833623251460154466805460977377730530620497690615092973642751760757672365417890800154690712329919789094936033728988157721371724632290359498693017452500849281239831875377720563320317382786606704289301755376365624655794493930305671049325154081874250242633625704302281819538661568939308889056551455213731084869577852524039762922601128950093866930317061892135108081072998032893141154011616763777834216440246726515252657221345432610661721137516037054202452061644901115015018037089252801276706962710538757845272095816321843093105102923719561699906716664074814028041925443199812761777142907326973330530758016219529449262534019399601930848379774410768563287560047155876439435464819357505697841916755350140098460727622345428192405532495192639395985644728813658229719398490349429176981258506970066192642843076442428935757377729641587928099922800909753467821545180411995110694160464788747248988623076517416109966383412725512773608441933898310046465661678241711234539761128356910159123921847343359611113120206684564482582317608916148822210170904489007704012478858879393362570836360257634877980072042744285152335082507155502790068892552047997185845946724338029831145085331434602224706341929266737835408662004115319910097140956775111702215874110848489569092725715902898004173515109892215771715177816922637130914997906877777987108106892488756325707939992834911611815507690135823110856578709427276818800692080183390054452748002045153072155907264100447601251797976451442986720805266725035967753490116583794679329268938088117215140979587527733831445545328458127491484131219637762175554485749643012911396965550030341797747221156787913565470731680214906337129252159023396324525690322050177649141984465006622888567011625765505624766303289951185171123076254798097551733056384138711203300394541688012073505117534305797799414671588407017945860777429437389071187075739508245284890516329549425657819721501047745421944195646040337636241569641436438679588147740906495436235026467669574218295061881845799612203108249894841248365908643714652218066256741039036550066879909371609923932235724492719160126894824131352008618319099916896521119964047152874262209757533055361562442714856444570477301269802778465829121522536174810848479457338058866878240520989059959885078123292758129358592685034058756333484315460042666063786552552291645269006051025390397142711293075745586861414038981225414220935880734581950752171061339107453078515524647809494066756817406168034220373453294546305138984260098854420042191566491144837399118726461261093319852729247629240744210018755132326749928109289820022994489382267330363161387158133315559822878002174914307530277393948743546592231414117550974649730370666819543911187062501018059972628816557628651593307318699161686899696286494211190760447761013350207412651696888680135615386396821142530169563878584893710424358869850845908638682742144990324254270027048521818967815459136864777483331393597648893871094890025271419342470126434935106660709707828670429435933988894652052342472725993069145926367024369859422414984132073744098829615037613391525692898446023748471580561322324920786732404929312488735857186503218316390879143284829167504773579363761052849665619854667040061716867263359014812606019287204566213389762247695329205465472446699038371312484630259313016757351240270447119795418519706298411139971585624619440412218388003882180784014676402170360524263722882802449117060195421717971197684599002818554096055809292626370389531175512672463161432420584923852294120051235188767501133101441433788692810426888673337946296242397712641998084314112921341102096853088047832511591226071902630054161769488802218437252354882779076773843922521130685250172173335061272434045112329338315273041526849103667488190753421706030252767367033896381077102192221694551818036865536742304572914894682117305658541715605936169316006187944082395356483021414995491252714009224436259144103096568085142149720608596223403625933664757849791917158735457760976696682741827748409813654228157940383582868750386026499481415262469885746667036931318685564656627005202321262065440990032696734047756077267249242566743243918153183341328035101059291985294241728863488501693423158741563751135738445188928476927403874700305204912541490631267853365716695642891667125399067281741234824624234541332755175923832466111055119897788063949126191266163934132916743986291121922181781173166055433110119224694630137069949900963766780267205254018028708345677397956427116808386830381949225731942412105993908717349964612911986646475313177525786928858015111694699108879363778200010272724032408333087688092117819709678856880450727471677773320226944314206669067083764162232450992399898219156497950860873820110738552939722824762011308090940117633068052204951430589806140706546274345740263461824151463666543832978781161887319375174335686941236421258274189721905465726954356818640049711659982280962314020471252158354704344086771721310056295250342452650060359552754102290601579299551146999219699254737263604811742723908273494378745377845041566873168914688331209561151961207195462408472480376724880518715718491144665823594550967949176301155827701249307409309248753732277033678426567065925303880602143079029747833152387740497016474880324021620926096138533065724937506149644848378721359951624703258743805820944012186297579213405489717759089173122812772988775293895797469814606391147353843848801611090638202963303982117617108932012819678874731317227198568656927723714282444644080251983021301968654998474099267563678210097989341229180501418476070579026010863309553769229536110424257982644687999178648336628280137653329867465497219736243424848542633781458860188985264056601938901342336280454736118953732800909034620883688533393840939187394415508082099348133344977345495480475503488806125323239452399115079152115824541098056246830027475111618234152494508837751978885847488821820233074035306002351687354117199548787368876946044302557154280765681691641346641654441042570008723710393304089356971446836105040745276727274995739375873971611040983623698902473349902678801607989078883552870847116209446769232056907869162993890934995247639504977132350586613838522201377070323185017617512885371341535614722466634896349947566345282634673113570733921182276498601053041895762632087158669633913240666397452181651912720377055427800778729581420305929937757702094424181746100190592306665294378188057641347608024655597530956532291298144825005905273664863911688670286830677563734969720930903149781194729498953510981356272140329130672176453809238879131602727225458715438684406874230151775574152771323615563959345233917940897572986379082558745071870753490804201468017746271869646681844674028277874456448217588692687136525516015660524206081084866421442676021461715479917795197895293131069063051347517407102406514079441919549149824913704479678998491133344250684099170696644249464814864916352152540939429914958967497781274703773843496115462850623404819172894053260214505237456006577368209388127160385372722749138497749721425377982078223265913148680753789013270749351015916123148374567537918114355205276843889364493203080194808829092884535228670630601739012090462239520242426441254876380476273858437181641516260438531581510845218324712432564319225672171386682955866855233181395247444336116110271121398840952885641068850394523261825779097337446555330264575768087419057137854402063384988050093609913557690484330880943796058562687070070687992569773394593865931307683977384948133606352027736169948784331809257282454998655166638900950210751387642516381362644700931120474162573249664364129607962945744510280556282143315763121454885831441375218951330313961230596430273419961742726169700611660994250994342572190031834939947618618787848260863263949874743555452964455456622571225280076130548601329516972363536537031827557237842937000231313451654137222273123300726574782436966804657385370414286181915618226656472484219770598685869238775734115427683051852816498923713112402110196069336085234210899653491918913449768395111416337384001630943876166306711156965370381842984636024264137462880772554963389737797519244783342399691007972609154058166425280311999706260014595542340696058343111994825796714887557266876191554579805758840404411831531898424937825872806591483255979339308163201551780210939379599181604887716667215406335014239344527563006262187753123316398947164185550947479583211503177302940235324916275056368502744948347365737347451506872828375642291702401698352988192542783729287733671746462143293555030059211808894828505187244902706622227562204376463276084009146119368932599862064389615083949393521589528446963605043017975597840745085731976350294243121100910977753405155624755107170670425009750232750480976450967175781644027191648701476813741896391403875425470178382820588447219245082964115711095763063073729304105200549965491015437967786198434582242056476561813586243975177930489791733033640328845356558178625422392781746057435011335329151769046580475171423845048419255680987965315194558834381134322295645131004935073250327038806291703114893826171224122119226133986675366205267749407179194726166873242443252084960706649616332451855116654122374262962520911374081659112042752553844592201002109067448711850440880948017038583022683289633970843740046693164517960817281218541440871268753194289082100109150652601838683173450834787016137091338452254518828749962736381416251937061124824782232636695912142507160774983402422357915623830586154279014161555659226886477330107277057727680558534217394643674892126517490079487102082302464429611321162578111355567395923690998644560627277328257680106327642572807253196146689720164624292422946257908800016372625236773778820355727087366343970121832136929153547341964277414995223965640983509760354511065120256747535271172650821354052947037588906064560816883997820447929337605401616544754048488144347540342645385454862567129187149756651285803246840130763611873922133813914941296630262365126877840432846195221229322042797949517728316390630232761070283729171967041529416999043129713221274002430010553272188886735110730327727657098796505847728833069767647856373251106897327952878820400496115050828238257743452751761697310297793650503532252449240376496221881323973340308826324750009561276328847059001599242926759106911060976848199107210390424941199456869603194448426202083355346458240305299238008854669229463875674668791784375982997484461882524461744034815926824449972487042918838260378353584934328435086596780654074602827420275916205997457050965207642107725643182488143596038583539286796713176224963593559204098776375502855384432086891335829762443243294831320422442801341032841422337703174906305934372223133293334306743375129832696472226607966356436883202734629700262492366013436796699348180144398192844684932311012071647348917503674205059824823254883995031835706058389089907254986224551538912503412963411430675112855958169410101064338824757426317819668549158615576504722435326508248279650224213155843781312481266257433995188773059481575556617584384293545925429530502639610695623004239182875640908007135577479743094108640761845052672960980431225559824134769478439880032077393951928908301541984358458502905542852688435102801251942908889472197889700404791762355611479309754073757663323285336303953036306723987357621518632025459315006774083308474706018927169461036673895116898532070156017015139288268600825549923761450581505879967839781397855956119552849111876333915487373730734128040594571380978664109623772405624006038776964819055185850879697136498090117871077487831580027393713396751953321819602887484453809529906601893240717259377400429804389726637514597572590983385142849226006269963145041519990958377463707558157836095536572526971663845637080851571332452419991785727405883393059616067922628498209183912482376335734721857779443889474741494129294466485072295874289821832077793155652846508568445730871404723830489719115699946447930118859003069787372208290586750236828415893259178660581967932517441193944018534933290752623076455508690869867520779949581664770514710724001954054925760477029033516762004569495758777655282400725304219323450725791772695958239147423319175089208207135005695360038574995905534492682320094499504658938479562711281214026300550644501905228585700714551304171574935977301064923723518293351003921689545181316744294941715045192959648106201894662375879647990561427145982862327361656268669912560005589902835278883516558358186004110957827419486907233465739747511417052891314373325600597482327517455326024110272457176378930224248238799023801151737593314831001117167600895839002638337319229425606773885087993628306674208626127361274333401542807977652043835967809666759610546304231688930290221225986723372398953115023718317239973326347783272783725493240077038591201804685712652005289909895601422858799110940891940456785483148309266761617345830607295229486688893801383728002353574188010413005000426561182949197789204641046313005786719670232181361392693480538020192986828075034113673361854358142990965395985312553760483656452299507141911022330478939282709478753743937872438650249108284741088828296854748417024415431497693852324299947422379273240380051410396439105994005467886338440853054015438912958371762557020247735512894376390976742881997901112085567539501901620044751893076460170574998283498732069781577524014329601458847093994540448697696970536610820165559079178718634742121664396746995547573808382525091518969084676757252139208865169834570253547559327474256205798713105251412989193867425557840769415321918523579028639584585762672798235426619300840248332591000202478465622024235791474117044212319687482979619282830301746460462521673113548297854144872584854624747583287899838904248205504912095597080997418271121589652337129888162715447163395482099966466302659401146525014994715932244833701513070988346796880491891110896746607716100058636524796422390399492709959155057214361736885296832731563035528038209315904544686675672228303665229549983491146482473716924826968683714218009970907787635530554544403429366486706532523489627186656681347903951760754723971491759194264934672645589953072022861068785354199868577790547947861314686801453714185555962052713282612119099472600794989197105369242284579181318224508025598496638033235763419897122160673688668390058618775749028904434368661008449650998258876049376549864400750642951867332665682864306255948944705279474093947779593415421914499976045614391781909414734993452380255050789943672532669796421327712906239764206368024983512101050238504500650678353713081202553044975863234052008074166407911550953101919792794906052967704335559349649009670826070790423612705720213914501027399646536310200423905829536218340974981432285395949752822010710601860174317745858006426810105489747780159162673538687803192934180303133087819284165754056416099672817130502002243013933952489766564311567621487816035397541995586762829826532397341421656043258962380605948883990008140901888717083393041473253736943064870555064197075888694388057648908813827395483219084405543818437932231393687305766532095789148599210262255339709058273962322727584137008658615467998848883088031448882187684520324146170306241062686771907284984495292694898944792014384655220861993318663387723815767383474404616921082882843278978682775842207092168051109825702842505037473340624305871272822827906054234936463192710179621426204479982650048699716347500807127704188899503429881721158767398972435182757237854397645226473798388739784921337478264514391909630626124529877857114669975312540436493234264487666841804309743348517018722402150626673281378711025141303909349306429266275227457294850161133784701113914103308287012168234587768806513972787523614490280825050844501440303086311841684329297885172123976765929683939414456047392131954338503521277780350147029706799640676747266763711086253989183863953877123852719249833516779866739427311108853767610074181885425252314199588300223796678387632581438983251346251669356170053455818264342866107893879591155446069399377734641735358738996262373735649958453635225554545166245478928421077024487562254168434241729049645329905333347477095746527349524304322489356907882568609174358168871953404696927142546779482746378419824336411453015356704731381560442877588065204081691278556436564677481159758634148119359983071692503844573098576965928198335690345380255931498924135600958901496671801915437428721364746420827491402443043496066035007893513110818635309623184333551481390111758437505451336076210943926289418303273337646177254546128634891418362481144446524004194992289496753141615635064384991542987122139697663665990937824431407061072939200098857248540647542121673934775266092573432917842164501028337157381098645614927706831462203945352928247969170269613912056665356041727037183792849164782462389706118159444193249859712033293522842052519647945857480467941256551686769782426059889035036321028995881576087397119876181795940164039350377372649378833047719086128173972490996504086788390400787362125807102098242363633225605434264244167899570180317076717584589990973527783533955743364103968340260842789535299352078720996914504875387463711283010040052332593973518876397634615160148467153284065186883590760851810311321465161282708471405606533177704531208113823666752848275099433678003347425134611674653848384976182336134389052845474821264483781890353209306269211561225183024078993428001193901919487947149846447578544260573676593019497432225931337196893322498778741637319836309852947376248207086246758234591115281712398894755710823139112712220372817145020669010252751974658190112819057336846853548320495805717149849915698246446983995717792602929134262797183228681905532812195841353617779050635326854155828569613590964182065948981617026372910658582157684816255027760749089681106722803952325746755974532802488288441541076405830824207849422910538803081259441506415780426716542760014852909863785222961168478429701556369273438126456608917344997226235316050274105091973402524159930755192405325143973604768651190140377361019934011122411022161782224272221608197815767713929037796459971559904531149669488879676524513232758693822986623768871603650412483739936821750661917038238798973161386834102592210607325842731600908696989819458677585150065450258896002179231804487777833079692819578533642303989972949190520647928447631540284066088680267358359651760017887932787709464262023071276384461260007685919248994700470709432604433978031682799037703621560141684716241482690608238898436287786680993423288852304276583066147092044580631845612360667066662603956348778788363470808327035307938111375897118942241220874314200963324519127230918359508169088707482234652478710495800980629540437278272305367352993371196893230226883583374927292156560812962552123105535098854183566438085193302166256526355800840640967386358703295878417029643100241531978291318168817437358981232437704340246485292247760830206811018518699694730818661277213735359510481346494157634190385458201787400234490155805523123421141218269825022451809216862532953206914129898599805689450928896592076225187108277590754990135431935647163263933987102912572454123168164786623862934615830951409260901106169247432887628646372152865163887422734230003032256582299013236042514998310621794231456622927135535471184855387125275300118764560938374520100510690034447734508708885552423586799943048016481507203339587246627152928433640877201943987194193361463380850578661315870812550528826802701492254692539016641233282251917041216417843929514212090317476582339033076694905578706175264615544680401727621304601119919921815031440315035981536596183723361840373968980034211435398384646070253839208405200713935673254718333745622646786445676712737731780739132195491100705416688505583483129488778514254873347797534455397706184615557002179774913513746109011064186805303916422585140341579481662995202547647902535800785934294323516717190914456306781071709506469626012860323389811795810923756373698214015771853360796948862780717194563531531010917358890050262957777706346971405924410068416232717262651420925902010831793690825092168058093963007964815290155602858866256154962051088422239165028224372417520146911878332746146771583843257387595776731747786038457625634770937915502913190342144311645281320218261793641031787447978819999399599110517529007040220895228674331295538249368417689807760722472020940980248871735183971599466237609967377428167981534082101860903404367736931698766301770937104192277615828857587289383421552965141865183239001193468065153798082085645132194013053997334373175409357038323967948985151891342221056175766425760960348409200757248803523328804858158840798482674480399470888843505055017010481474312903598973361712269446443099924194500536820396702119627520976356554659306863993452642757521629992491014735600110753098496794054612124025318778763843021427871227104369635740940649394647736919391854908943617452631788228653176437050710804595376386452939532739515783181477875943058885147298622138039208581259173738731948997838731441160791427548198058400749703966964467113037229515838920593638652013253290617357613915243209783425000342816691906752467314800841999966781226963834389924363422498329199706733096437407585215132954431431972923532118123092310266058425923382100283356046629931187714458174917766767311503123886562715167732780118510973052881492011889469921294914901788610448195684354696862098750831093112474766394865511862360156689272611955323197002738458560468007512487209218567618764014014435334739359124470072056187883500910359189030459935115636789165176355809475456056805635613767283846262654796578317894454747179026372291664546738352967959984327320349630815157600532066347313417729173575500278405154668737020380140619291597663905025156418906724058999169697025947438367318206001381383158295714576188845535145427705713920650750175272838212668249614510706654940934248819162470369923166770360346629164767463009677264299883930023811373035250226564967585068341102176800794531502819551638940135995263279343777672774699406984422093766701248137562292958202739680811611777704128913671741512658051212281787948026944192460217700752684173395856181714101540491457282309097373297402934054030243776644588295534936547153321971901712987005014976459724684314226608356060422207932015770693933644604891744818832839193125262872444833850136139161803651676049140111230742990424677595646993327414354842440089540256812407898023257281965548265973611951285202344940713220069605262263583726345332000220993057189557830086373658727053044810955560820121054370215418455691708026165274430308179189691776955619899971794824035664720207272878879963315903483239675846895095771901744915508548941087962550361014929427076499887949663149305538000654606907227822907224789377660401822889549185658635693370222842494263370173766428754487736918690041241514605995159286372961818420535996906415669360476447023792515004614064271634345502160304992959364874829676599339648718251701436557313115627749152979170938923660908668838646141553846705325613138344233319727888064762516496327105973021765605045638552683620789435210917320989172678679449027866359222101180437705932462246983481987342451194245294155197959853235346795869854128242806887268057409543998326516470145449945944339876602687703066250721715650614766433939563458318694163422308105293651953158457804380510564461340738340382973723715259970626810384394278612967122126401854010746483792101964590427451246802977399547006217978446616693417262911878887144575351307310917142050956296445115561898316920920870873289842230856620436601457373501592573644156177711469218872043886407435400155846422007432183794694963509071552329986349719113302333638438538907539383260971225401480814118173757397681097672277635964316605340074867067932516519089905655526828369235731340180789588543014812041920409955504600358395667070292275959889762566071645184476376708074723903043864409731445288970556928587852197858500849812294361112063112594975958855339434718446151413974611230815154513866982332037160244511964196925659091319262840985954522269349756495212120839723421253375234328860019559661682623053290482542075826704363364637778129227149940196520057981028252366492173161195680237329458566214574769273969360001000787721910695092902440543042503400574820814723129605788171854805395792549148315365129958498661211116233559592502791634137176597672052443428495014038247697031799041454883803509132541411448220831999748024023144289809542529390316415717210557395010759843906211133008718798419650676240053365557095716176279197133722617246009883272973575577413287615174032705350872518306262072803428852998141862698498225636636000130757368292531023005884188644024819665197045456158155660009954991586996789865687588352977787250301902103439789767943331158228382262893420395794627628909941142903894027954611190739946930380679829057092684189934114657500458313855277142012637767067565453140658082755840367238601312529809070438777802879874005517092066859673384695212809815132362283673206675411765028331516940974350952820827711888146602526502168501131688802048560332186682330877870261603005862678407687572918204548586168955020429353448616409286829363007873087323709865559089318416629696811380759892037015266904126482609586031021492211676949254236116481200492839179704028219135039415347741870137532413500433260478542077693065415178666374444173418090562206160228386783300674607031052779844543806286225182726819730867397639629464270680287725846005278368158141725516155353085708075652651317902756032016242524460496390075755004837964180580490762661593011925222137115736629655284499915870429505446149801760213778528500343764982125980578474410564752134806556413120111749235471648407507638655031129987947249251950477902444212419373136373901219033707196466046926982759897114824598826607898493560092871128829183032129390384193658099431989726481422801447610652365309688174306913576701726231514044374955748403322717593892789317435972790868767390717581055142293990128692085686501043090560892746208353036542129895429731103095863470379881605684152132731602618480765345676499457766286400602264907845314079916216036173135780155049864028749174331115919377082179939300290386245457688525274219405245933438987884383208301981299778654481426272813015720155913358685676393069939942817492657146760808092849245233668610362678586309265632579300317961041358119324661737134034150886523804380583690021390573022598995820662747727460551586870471490236804144003942611568739196199565310398086990058990145313682297993269693123190570850538881192511716435875052212524416103786166555294831206446387360451220922294849935271159223378024484967924298384243754623492768902399851726000303586722331145020237749551404240941500911915614503727959484631613845922357518162863061086960048882809686424445380574819210116958783978594152153031633208041655896166689718384668452094965534896113449433150403491262746860204179664276458766360095948213242319044470726775770754738228986419343881814255896772290924457125031214055528257229337598711952707494412677717699597525898502109555246691502959321493356993006401269629563111035335071149395779748014867535444018168853200516185256945586599746000730117433141297816394371638469596376016218842534534939531898087940478107877934802447607501982451323753913624464988106468636614732955505440511772141471424276449996542993414484069781752020547831252045495300315649083034918124347588424988348857590960233790432488377361019783820076999695834799240735471291849439024714874903575641636697040660198249998850351367451755713614850512613757296571798301018793236053892232497160703672789331008822601535052411437443084509480133264809639711487442880026309901949542909089110841173421631976797091185605918882108684967618193549631701555763754026087405815177358074704020377862888170572127620183105858790465851305093242100501050541227647861161775138253712754109832783315310063695733240676070900401999040674073950472502333670464348890268700337001666895402227543135154959234662479953474584171576179744127229581336678259275970665193257048067011506909208530117865039935318524638164376706024061362839973761954304106601004681505465810241485482825852551934228260710239705900843172049828624747405418724777411364763424143784315076278906275609667841612390218565510751067451503832350902586652779403081389980844638995324300976957637141409816008392846698645447660468392390930516484149991528046600549933665435296143863708996770583757478457754074139948271405781572946669105619883625950916537088077573379787169287808313229993798625091403551881559766498090851678215218241217345853215382265909105270564214676423184493038728652643283325499823424770401906559009351724305332894006150847297129131485415078470302722027814637567221882109852877835060501669673492934715063557751450250621456155685067651788431644969539269182389346389465434629545867732485310664991576853768368471778020466881668082657287031075589662342872157493809404411053202866778292749610964464550195867751457558594896600966485639321995027069260080630181073740071004545541323490209755206181408550882094071687214304742719874462925045048493538152139966079218705603976690198325166329625679825548398620061622675280878058388613389156388264932695622537677727837618804493107863444393198342849475760412400509718700998108115270374506998105359231261001709151240260511837887558160386242664158364512214753337460521502207169028941149522456768550829299604662496118271178046720379457670915121876114145718322367557320670686460487250985905286848566433916670857819033124029751497635756353613653591814837295556464827374307595397247698137218921521051540784149794992577257598582743916257094497099121681181344216397147400307923330715649078141943064957194899438815099957475701511682399005455958006131792044670519284730021384533489523774970848452662645384257982557090721983570803555852588715038642567189783587073713395807501700384699887693086122318874861720812032129312912913014109469891569395875173281511806858384458657955032230499408176968594541741157112091062023752106860905663756518636797356078202736258189409348322828528960989137072451080795501525591867981723034444624173356165551631252213198402392582178498744565734444954629278254727695483084705816842992588547449821120693644347336907363461896254947299821533881116341046542328459625455565143527987055371182058254209269263116283056697637731692443305537138226642884175320141497859290400696874505763860248077976185275598267167710464866631694024005736746834964678126153559333759537456672287256532514944506612943886168111159760082630925655655789566575043507596721540568174015498929075011116337158016827488068784698735693395770110572195374215465359978885396907603988931425747609931967308038223579001585615634522054482909992720403212202748517654240365697850501359964927690105492401315485882976909994072161987858460100414212437109094026379408501959990992917886340582464769598561162553363769075783628547969533888498614713473559455748898305323738492789762124581605793124731287913249881481484509321025229109513795465076749929085009180534939054657787391104979982156533179468044779559166713336148087064811127609123593510334762182947837472925043274712620921380859923164302553728156387377679766946839882775083211901773258074869384663664620555106859642066524580816572516748258327942467640866916222657243420532581789224209947175147943056171824359315287084332890626097527544509434455087677078349532317967312692637469155084850685659642081211656416096371717902545153883660129045184006517144265363701759373975107959589787392825452805215591478765862485497578527349567321437984773284792047943840117091109816026341580078118838577811603395073257931879282467386808182289067999886214533932577205128294590220869905119214002197654022803722784520484145620785803828396936799187807892153169989723699464088095171062233158601379596403849614471699033928944231936982938984077140860362387952915820548780170913987988499095325913061453847459002125791258667754170661489375087087276249251636924756979260457154744340159001693327162098196889737761990201461520346653377027833076294270938155786410350584564931747058747542528408492595213727572876205917774584710933613415876517336398630651914037286885414840739031653773833971285779522505748572151997573974183632054462901897756785757702641366811657891921167247662234781648037121859122205027788705026484820910255395892659827364259312691939996954993249963320767273720706030666756520212555241763970146574513976067206862135727051919370250332898072649170568162945705109909410477460173595823406264928559195622165849274476428999692631178122640992256381910127851708048327744082788633977710861170231401691689094950437269994926423088833904227054875705268177022819973946503665199630592513811803643235177641683217534072696045823447706723553053985288632302448755102363184642434499018439673171235949325098189019592675936067989155942338733590672745571805808198314629428383406493382113060682820261738334636583124468925047729230105635968114274069718514733187810117429016304514540418401138327946879962903175662328397472538111585835685865428301642096831911008097455835842756072064617035999705287862073333066886489205237257289337557167133909249592841432071941153119628699160486144512448210643653762734283632324865558274396988585159301047732811104015587904343757385519470085777157399011472240524670228539813796125045458224114469255890499584723548665326806293972284544826699001498498714382963128560680274488927167499962863062338965764549023310801415978904173648420889144646100896490390970383475403789062196387250646098895855077042475969674215803020651497901669735218701416591918531657228365190492066297681210786593591983217642693388073953427264871299279878518851554058260872852132554899895004733995470988588055387640643597126128207938372491118868953828004461225591698055595388610995407988667892888377692170501576178855466732037358007400824591505095350576528522408591406731445313356787413519382509330185934543391837334748642620167090467341070456963225709790021807583062838595394663954937016642334063133084484907121826623093350384367687150860014261895663342954542891643215411954695042029322783891729705380731653899448425888994502868297538955211384505743496988472691277339007020534128082731608235256744249784580633117115048777954974220651095962909269836193653005388151421238908597155979436373743087326935805505056382189770153506359593527014533767092399381334722129132708209780729536635717749020669969851886400407707152048495615254388474430245554281576133785215638164145746828364165491296705039938451030468235392428888068707185115303691947405241805728273201933219688418555976924964214618977100472831030658988299513129292608509541413682679173084015322678010560050786165197093023217853401637979845921819288753917674406087188568821028237703450716267715288303212392020696374343168118111319483725630384433233285216663804206608755658183787313467149906975096472239753090998687759408226366284702934721786395249968810434655791576305035892356658004580724218089457290577519466283080240162421664253481957634718970948110527685464524307549294405650656974529999560390717616851798175178366195905804800435060044819558496260163455564759423560183274902143847603803930083533606388523003277356978104439924030378242249031884346274455148270403265530425125238914141598082380483838777232146313645687747426468676024552752554732322111813869428984051659764662320128037209211786744346318586935240261496177913163251358119687639531271778538105442904240366764185519888644610558738639372961142511841533404112743862926220022244819574764739851855653410269659982886651630269029198316352234578898072104871669610666856077848616736204262295209252390006920691215918126021540796205602026259127775281170347367100815857545612370897702628780028783834577956459038746881224716441052535741547681475236925799713512371429865266923119367212690049623354017891885378695216875171802813305513489001924806238629717147613965712200782988574156713720095629849151575682601452427361915039357821512116944104130126043533026056230786880190042577515526867632979775690034393578003410774972088579291452028057857416295872148519048537443052772228866106700533102404749525217976747281605958705625551191637572044583948714104437318005762896713094764747263954387710701941580368142561709679913812821464738318300584760011009231538628863969129737667833430279855954154606099830538482377903181803834711801108590522110706416891326449623171942461956534449477671652368921474048501673945698276859919779524413090110303068290002769984540086159574173874072277690465351222740606677945361262617398184492632130526086162828277650506678929928346348478637904588474808200924075367496652385727881557569415718457267430950682159170245280576450867528117359691075678814692623118539865132034345658914581021853747244761962083073873636326303199626162760750162291918293253369491029445064427767800845930264448385786660879800381709088370820753116694589153103892420417930638082237280346327367588761202856449925536918003568502757405151515290816431768922906498774741496303486276618744736704369026578707187629221664760460134717762940132623625478752883746949541777630378017172723454445070586615351593138869869983233039207252014661545460032219961559209994809015423192388270858195596405756422842522028225933034595498689787660507137237381015886915707847354132676973302284202452712544185540092373424162734860425118708026488018401926131361203427835135435965586692236070089529414755828663414258269847340242228553682690785625863164965944341318921893571504663381206418313259080422245745550158424648801375107314520401762571983485846565118363924476699867407118189143337220597208149663162267937070847054096522521787941445940933794821152884953435070288804844072087597714981691247072286463796098547570834068417728885315403835247275552891462453555686041449439779080516743863042095246522107303317027266033726300299575042188346853127955038320659407874845746785135386367778071644409027363850376054244363204810434876617145442596027440493223656023695037880240904792339628414714253089664956050055800423931581882019929722851242150500174063236738206744857521918444305298315974926568697118656895310655871978089681759008392822202773548549094047519580797639088992363675878293538034219204777566257622208317307204622098897724749081349559457750938090815208400880064969288171196085406238407517581471267857026482184396247163382050376410922802000197937401161675974002308625209330885146151507869403268741499730620989052788756134614424616043407845957567624509537233011537689539547885253900716407397401939103166558705290203554562843295250697421107526766939445967638580474295770697816860867397734231579103002484689293202986171254568592850980595410472694032087775240524724929585997017906990026096891417603595098336552542927746830034060143022735153420782558394571865620332955343857322981185047958200377959307735308403612843046062221173133294696516395616033119873916175745622724216832669528497262157545557173574905459766061201810929431348038695332364436168276435633083767898390594015092702934191807517983051364700873812262674384216199859296464125150623815708471132978712579576107095489549715889334375247256705157478972512962394170369298296441689269364052649532211667301062096804253662071905126420448766801572447623426109584337697908037535937559017921923244496372290929018926028004472057927128568770762682044015286176899623297682730580070811711619597268585250464022581639134805052469057066724191218884341181745005251471872802065445473398465984941735877869191654245325595912780203376914273227562968833069698505729212881684189609049459942712340422623808861965589389006943585213564385382923866132164762737374148445489778464987365881212016309980738237925332584164424252681247498013631577670731122375871305192722877152012256320755889367018570940515060482762654634551936599043563787780313243817856552030586101061444469511150293290446304845458290905994265006859477765800947863324413943316466327749842352153167448323461938019905351702978331111900083213703882747217775954052566340511722498000137629339445556151884134448149614187754588653820816279829737151695842047060601525249598826922691428732379965398631866588587091417483451077835756471147733115920631480918749986219297046265394940030073787271773790960409158996861340855448745532022685140816940719916240610090787669601912828647242349573285384890559466817389300343738715371253190021709418570950696539794677662949455123429751769704316028786111503574196738176974551350355048681671359612374314850817233511231164981471833497667115322964655379567385791666803622773184326316621610583642805324237337198298007333599638246578485242897275414222979318585589426137158948939516301328966678444198070769030270330613176982511642263488382221213985762367761491387069954250963924281004871089771933018362769070053249988005913748370081798944050597946323365901899539476510783035807158330733799264968720687543934164898636190680347998256591873031227867050547901230423668471568926346104441777062791588873805363784586604637850906609346169162742610619263312656723892041103080329061353085415172004663260824901547843594759019061133961841509760102297462750570363432517406579970995506619357456944863717520705178894862736521003571478547665937378142937443587980844478438263527951983347801708024309970091654585784776645123292391456019306759490844917705825944225752954067578910070300144909582944780993601420157498266239909608157727386904063283334622997348079523123990682405407695068178033586342353757655396561737850725343305671301829974654379692858630643959887517536065003873210839711078397136395105852474202039788834848262809554291644025716363372533048269580476926476850355795054277289530760041274337758620272059725904913300829207652956696501922621626587182233998137166926557423513689941835224083058121566551274737661785808270871743201435013285352841796109971587528749286239528280549512999410518499013437601490249691208442957338299377365801634271369035566558180896084854924676390568657589093663210782928488195910475724854765918550604982954825389674317286399618777428310581509051179589172744084847065343136882505231678787732125746487418697380062915536521912166460621015879890768061485203870860718270076652009744841586179689313700282549780529776702502984156608164037757022844221635048758813526881682158664899999125797399665918273494638959572604100888510268071865770081992915797264446098291628128846122296940811381338392204765716692968506802386801216853466102119875374231963568318289457326631854239644380486437240147674302625052488747875489797885220557443665870290815935589444866261801142818382829068138204981797870966050890857752776753922250434157288535717854588272967552080315676199720831155816558866179277851894442602347973597742021962093636384640932667924211572480055977520155320431697187179194526234689315367220999035840817106395435651099803700223808945295785959471693788252354610537057868702416993980432177337448103354359828366407216304684070826597370747074188325942973929419137252889313716114399961110040867736092146030220345801520849433716658292146373757435822198392293832141627575587616300103003572553918294654651084706692075479006551042750723814039483878826211764614395938272453827873533785700142229791497465995087679363524727742573244721139393977180660410196989632732806566733517016519334493370625239716635686847081789780187448474070780123682678187349646060007703795730232260329169689708668396642298331101043096885469170626255921577720486839191323632515823764198584906861143145494431627878877379510683557926652431939002900041245345951745229807632545050083260939563597794313492537829530936633834301208748527355506698744608381902503249797353813645691748275952151794147018734326158847426189429706293038815337763670156475180477279532271326295724293475498507489967197876410097353656581991987959453888534503551291002148265794076432034606262087396261931115385439440209215930571849886731060443022267598408695743010014252215926681371626084425890360915348570337610280259585645025392139924579067550249667405136856376182334915509073784453308692779930513179277106843847210272242436571541222797074797290193604232435544968122706195749049829247826898267640451890070757740542519909711393908084966736677772958013585508267779325388947883140071727142606873232311326769939288477548967480978857770027870136070700295488349322912982463940812580922480478983753265116680212630851165610691004720483913584016315477636492486877471181482362981140906492342211259585449213312121993997268609485346801017572907752376800053512519971780646823049183749669972538469714781342766176925278428682056577298390073941793115862832324049751417799507187812475286996159705290275871611543103436585022805357078852371137407445202279812550690357242797069909493440704479390971282964731203187630104591467861949788954410403891251087104519875002891736881145021866537427191709008603030004116533057251817635508389683187300596843645053685524827628828166510077079799239290755172368155204821223125197981715271964271456527072845506754257533441998476767351147301164556425775960673344897066574633650576955128760937045023960957930347974286445082120494201346016190256533328347069241760616027519967258949946217361657215516158901350486443994968894903578550249650688350068666845665262694997871721792185174551601818194380987194468852634580149595144065080421906311179543389707542672494279862603235019279220672887261101160387953782327471962354935601798619739800505970420609615068986672453900974509864715812516494291541892224604260554552092327097251661569700048802426414175118247992477915378695703140753464715303103412803043897127017235676772803125228235619465908855949862046817896968746015984395181514379394182216701381681497540421720908179377603175923046742420372125955226735493543101477121885756409105956605432398796511105441230926889061387524110755969693706551096622134412086901154286897737492333666196841128159726142501575626677084115084700203132298196436829427561384617214943110832149950116095804752241368475911833853226112372839561590505510841346303222543307395727357006069135538093921917447525034962164614904588943179977258519247118293584452666644526598641217882085297845371180175698797294016692689930809160446033566150040716265884284193839198078601695015041574104446992127279753126088792313469575530619368091237643510759914910104930710750462014877877391385586824331743531309280111965803720619001523027515298305538905942040332082039814320820636219191385930377475786993621645776128111285866278637044139929867766732670209576591361443944332557616990075454242177620298283128579605159675295730844654686427679911400124144405130420406493122920688939800052189866100533422535255004147775405287423177504436840188416572644433807098679847649303956559444892023147615336598069336197561874819941131811614591185427948885875153011678324182521116786146224826263796303585170706857536158044195481878290323489837568773529439320897955893874122873743932395758868738949021852373173265662640416970227545738139298821189929579851647301510701961457486901485155113391044854514729315664824643905611716099143265861857901324429952194292608175599222862439420367709957260900336985187029296305203441620392842219507399569254901372376505121102386934496984503995277100042032246191312167812893750643909550658512707232065082102604917728362605016932521074218969229788021494557450920992400118340043327488797095489975485230296722650679246616511570772929916192001692029036632004498872126078110279543530469510986151800742958769007039724283196196411998446994607142620949383870073323306930257962030817297068972049996663778961976678417592960546620487442418659637717228637481992675345785386872004280752936344379716502741026108396916947872820993620309735428327824963975897867270837370240272568822172947716438576997915832500359964297555393868277346678856341755350419144068575871128899874639408434398441570819307337650390999048271710242285100395562256450394603826750898685896905928644958022164672364025009366033156891812965118644192982739453616766812562239230513971230513566492017179924754793765370495252499973315600340433419002973140165005924384933646431912975257645517326466613191505855740528010466249818802908182248022144003004758341849824990557820320551912632567719785240144841909486497220724307303737337615006673032286859019868047199571876405582996766073559489343940038095606597798544078908203654453762940646315696578789375105180318067037476464352074687052173518427339083467105230463811641487843427990972992390842753344154861326663645672069741083308203684506935314603142661081323572697686074441878529771505230661155432028643155483724529994584105195241107033933187571914568625220427478139733012177794995130595246597240556179413330073112598706363892133892884150012582731144901391113412481741631669066487641876037886179377587050242541744012662926035383590421003855472937932398652437907850148243124767068388367456139499651597613077603804138003161326818183424547217997470349454586319669716200081086250927266474928325793671165745796843984416444844848000924868645910033945032915389199768437797554138437559021912322343075745509130658469101941931756640212712020441457648761419020075979205406896220989536510201444689770621896544896408953036582675895092013614310725208792862101890115934577367638033896898376125558096934642250858379341281472587033189046684217049362469987697459234797493569022475433306398308975337608169471827877989370338796541922526174200051693224037604382217269173341915441342632787503741378429970892153906136449776890686288565257818991688692209149695312629943942011423579884311173606464276153343424275233692718695391341238065444238387943813369478686361700914880735221952977417381282909764299532637799273584777653931554853122033736099129965239549761270837927096163027434327811784061205731357603136074544882218029781386726373577565583992498143581570983736137951717146353031219703097935858007221687422661655745430061811384214293602720599352824079126715117168533709911585221264292201961272246399985097384764813671448204156517694678652124734641133111502926628283380751666487532555851238484373144365078342485491042782979851537128547864789908534696123938916951926138599833666006574435708752662191953515674443629369608641889833243709779073358101093272075286694113744168171286184471985201713551649771685482208615840282615247534111971712008822602562023913859356441170236553219137886922514221738582660018374843062443634695448691994502298397455283285002412462605117582405189640071601747817195502279229183206368128579083104152811560463679148203374280823303931013689230198835563903234570802928213931863280343537846123997307684172153905660638601764566652718341531328863759857199416069478098831813018655500073285394718318052598020972144635750674311526454531217678036766902660879630766292690658494138360996967835694080747769198067025852829764996460907963156827911288493364055488710864917645673687503542699825486892446412343740631756744887035031971545245915612633397448593656146955276029718611009668388367875713689453819315548312740480397917531305828295840763196497079586369470800002672688944969439813771779933325505021088216169596196960726956751844324019606083366353083903840734658537755171587342243706253006347763987479137838421368237728897604267307852914254502576692444126293249993668473598701731616932422236643877230718250681539064397332488753503355824311512900526419910065100496090609439950190035475123213268426358548396879403792215409294141744552275568237580228211692488210668157491364124096526265556762873925061215933190656166190296365161973385361588487431385847037522666611400959029617857755578606139337777230993027796382901113688040384664377709191977113447217457992936144025602550768932733564487553485700165958973432021177569581139340126491636514924294426844697223303449433038992461769540084719816847686391965566057869498341761455216105371189747292168451635802453147952005298800091872355688408054666673645373270428084853560336353261301311909916754846593446623933250358058762747179584318996036847312181983707783850156712364270327059143260799625964505905135013138601256972366471972214250010986198100546049806163707297124120349914473883828284712172382452362529007342578606599955181504908599077940743421101482303162499673117464411696503415241461914246923750408939893738376234446709506004965080104238831845636610904014059343079548454860349109227554565951363895856105709536966489602386762496651813217377625581375916240969593877483893631670294387604572134154284278849740448720595915910946238392056792907955881268251887055417540706924628533002576684153863972956412422643330201585095079567800086093711036908229664345618937736964150224716745467622655923952761860698251491043055863484049888049985819072290898553773618376230942859981346357389529896576091086220758405723346786861258373333293668816013788086052026112279944605165779972539030331888876644180615930764437644567395963635637363391794023754179839366008413682544854385447864458484877070717516392311501492255189260297340546204226929255366347186416032978081323264470603689877661157890039320610721254349559104542258091794443922655766062898557720485210256710661890409677616362060400183351364103664992280206041914073381700660123892627382016941482679036154920967647153907514886543604301627575730000159613179722798930480508657932850618297929358507453209523775916928724360542060207708850865513190790489388281403272686626573840741910046992801539886870882438600125444479933362935668134902629477138300142385112851918405214246303266287201378417186021788068562843294700910046096946694617243823192112930457874130754462071858450528191148701506673155280189227669070562182340664423919206926097960214652779419377694958783864792473585524634503998608529366297065691963968429145512605707193814084182636056901662752323915589080013781612090198318789514475070289459084251822659908175450710211917717331520774330221336984346269184028199433035433893726018330097041981578065223534009538275146859558536963500777267489065681085319277689087132619760412173846787745879927678259538601049707101245407717752986847863039758526693470854996275165515747411711902902855632965628621068719755186899656620363075062691735416863197124568550423984685999184585135225442507540949907026487125415053409143413186182862941905886682318003713126109826713643288055520338145739380948207252784698765921800965828935101505500429507762199391923745497087569470573343259769103270404530452148331843014490957895997494913675869649781730501297794844074122261758660591114411667795553110278527658339851701322350700882230178223858495145882325578280609552121251642923941778420805448031325212698886173247627278417866096177597946655339559333187096206591729946599114795149149692263811239160433156085604583134041258414179159628989072043147437694785465621691956503441794360836614893175347867554494696022753302317617270520052978671514454008046286962974350573942504029916978495016898880721696989425840240229958732343881534034285037227479229467407361388827370733211895461096421916147763521402809545655153064277192004273129236448185100876820957036412176644427698731177472756278662027587295751886853428179844221184230603835256268540428461476478069765285038552633720407704788487920532306336344102747837584522370308347753901077765690040156942768966890329595231964813108630617716013099988122082788796307409078987220479636755911899864269081019991375855080779509710865532881443945135681416647366031788260658643842887551323242853620902104825598652545264893666100213105166298917518262741227722196521818461729227755280353166529161338276064909306128233270944253582311176615363881878768870081823793359959036599920433214226668348314788979606337710804774872573245954602311134611933293834226398195120229881194063430195758348371103663172203748188806149904284560657649907376061155381720772015148779816574221850732418801089499052135459549095513796409142576275866981903729937936184400498409611110229694183709511610078192623158211014856392210474877511691155617272040432755664503580696017199778849309922886318695439661174080522317185852182688496036782656286732329383951762585363385361676120520677485219836340482392411322314249096765093162217098458343469462283657070371026499554826706666059685465558498177751841611495610699102642315313785739413571325476256302760211228805311159432443379901327411936438198451169504162688546590092260206140500222179188231623965350812764313235600006535375386196916877418597553755083444353321276833645390909158830665235782075466483657395547058981785203360815034957320013609985793557708033714486319778872892103508241247205168042686104213813829899386100154283774637866170299369561828271019039905882384745596784088588184393253387800802496318830275726996281749839492709065894502448071317617979806196196033686678391386862304749417984176279332658285281638716485854158161275899561729628737263094103488613163732830356734173160126171091364428274609770445388339695710584622428642983484597124294022143792915929966072247506122367136867167948604986533485139926215450425082616851001246603491181322410768190034201643381085590764751387084076197610014558413111938246122475440151080774430286829662763859294689027407960033731775702442449853835505361398819362516411842181291828879448175495572354569366579778848524661885864205095867106715404636211420790921355467494912627386779094899355248637604358042513484029247676394248095439682774410137276875383051033697890383039570126869641132079622784629170465077488619046927511305632791295508635277570098591665715412385827655315270135646349641535022124367263124722304238672329459721214585358743590096423617621953859601499563527083997570854998564386675156910904068047234331553214758762005206604513716010667758192348929332887768373774587000042456470681361839325143615816536223559805577503183934240313561534655797696116031880403215140613086917574155309678468558383688683650218857105279321631044577552143077584375642093924258655201789323469329846257076310333257599952489014332500284450272811353504409540750790104677158910920998521973047913996362292078433848925398352528772142472313065650304785355022010201582082743056644291650637849784405333392920619585482883008023779053713442175050381420433249638246466630418026898706225542515270256603088096458183187776230937466871826621340107852619274287330687326287516084706927768106940609650838018384549865005080896350479013103173090054206681369509106143555624729668287751396999069787721740981097391045250176757512025720923917871765810545329109539530354166559699524800225609671215930290606058125083934328373893007190893912298779845456704101306734428707247512918134625603046878328114118937391796867026561035208334656850191627768243409674079569738669439911340786240646908574769249586008631067743183332333311650354962545711982970497792435595785300984258106857606367550201338857758018573692704499145613938017522996836797110249444349015479491180777649680916435921609799315271661155391486207909427961803810641067004261400904944840048788661717687101916775895220159378837181160299466653358110532400188679726916490665376473508278999610656377330031451226486685090189862095488151680202069265469314379090596329046974467089231867676775597884996402048968179334526336278468489189095293321034102790744217585926456234098232891287294475851726892224125127403986238129410579188645259714274423696714096017974640949619470560255899409876674882100396354736747294208168573488465232958183721109157688904599322147509653755990856504046796649977499063055380171139052134855662744483946747641122285842388923463552489872333026364574479921972856066329891946090951578045449963506462939433584240874946556983863050246483952300972686949734200515013794924357401701114848383951777407676854490078575369406446052647822741554254783744335484667864897574613517157059475318340932573119160563806680104153700883092902432902490635340505622688022375663024017714304558397000430948235302032587420335811416588227016977712801329265416882962423578326561696233945631200576095762512987139970133115906197200899963067147017056628452274787373913452972740144663567223889984454185990407118955731626591281443184886525233276413105686192595933243040053019898353126291232769502929535575400359196314203134954775048774873026521107922888953087074733825158565741130874354001385439795813570404641901681231393796733623678933890780203108080326926803524943711545697807472643137272523656010645958412129371523156912404462718813771594163170339578042116206244668275334729552883481468691547274587910028775027804186414321460049917558906868515149543577278931794303041642575805837235554657210914259393657905405385225164758090177834924657623504641934685667919639800734228308279130968746145793452769405236170391312042168075490782876565173027026290243414822784318200185673352925200103850043468119780474113092028647729441607295093361897029759229714819734859013189884518004337220336453920036929632824425131227900696610868690372210330721444542688034979996033486095844513120387668791787673575379556360846823810097098270166670777504918776321181860615811137120963655200112640539778145633576235502776983895777850133057541695496118005617772795392660810087606696869037127244611448670666965866044271636075534062856987843796872822406802624953205589887642146681736662656994334762445253450472176897439942142446664265465648625748422036506023196202850198443661881998377602970408691312818450453817704777927601382565154906607322912911878145094439901534088411025492852344322901013044541332714759103749384481365576989179044077560066465996274072729236504331873413815075688722233331293649318886705782567866931075931436356562501163894865758757764925683946427212188453413128188743238504394604168698518103034629040458552078537922466838450003391884167598299781678247390039091458118331027161138145137077620887283569667216861956868946169166069527051077006290930638638387836997353831468384891342896638098128670913831540377597641267561745764317161970092706963532217482296635032792589815696279822949487549220815031878008042005766624427443874000506290865176678053903842091128048735087198108626952717282251095950378335932062446833240011508373840377722149176999363738992462697689962769563672992162097332676300375034540365565047275037223083188144938737068359905667434018794832333902259109589796266556698321720225006726486370885371503468672170848158365841595919540923283351987140852608095856548995863894545931051890814142994506499330799360509275888161688647257411331361182497968934196907427221242933314467573063875002479936469698990967710848463616699608128690424965371797789245679436167692515430987284432065420980362178476101770045317824519714574622601878995367054849402814751146690415403903194088340201656654990080070550192031474845461499472405376681849830947474913738125157996127633036091722109153338114150666822022418999986901231294482022654420188636485676080561382610022210972368933732920300210826889703335732642072246105988641477694170023837222935039338391102215060032289105483192430190847324692188440263573032478671358037201549174686367998207035666112812101568024100423205199797473785798328932570057321334552494984354650687991798068651856646956407846133762931725372539818199255478551284936930239669674108367008764939351481601979658187536555893648527584919063234455805126780019581550725186094780419822933817861970147606914437197672278722936378783376958596412421510233627302628537340085755583777135405547157562621161885587551248059932486454899511842722641418894921322807680356115588123433830523667088484495883416144664939164708461873652833739551498412932493103339164430161833415815301596551994065513487555034367303772163405837811182232135658756279346999988243442987287161234133993505237690892022015424116137085228371170790309615243903279310324570315648265510191700729678546589482028760909061296956892913690250613814381887148256676232233904677080740842850316276052952353981615491674386453087934186277562959740605614185005407486845684627936155004444994837532723779782994043163438560349331200509213438357885850244600249523648659103868842479749030396514427972153574241365869058124397068203365380569117460027011970527045897705262324862429201234481217425363473086044053687121148658865741276200902306883388339562987312722084987454161036631884970802697888627116575021802087319314206680192766667089701020583960386871518289305047765766471096072632527301434415641087040714837912998212945008065577272841290692449595659388709390065188387607705046219095599052945705908960592296483498465126535723415135224486611161737366072270988123939450079605409857781776929233124728708541512825332266560037244375506769166602355397462336880586141292330199465630342855177692543119489193528398343462703491911163533508055159354079274324386998522585537491964762282599646565046945631635004328756987264358150929625028004132141876931362109067328673994427352971007380065641427115760636275969695261042950433601922315477478358306871173789416649521539635964036337329688657265808436422880146783045497284641258996177113231062471412454188983348591665519036872043478432886483057355835554613192303351154672212185297918241125995089894602806046521212440769328495201962179226293631015253185118632847290237204792992351602188114806078351983624052177104044624000183409232206083845906199835403886863511763210962766375253843203131993656228317532286033283214266713628367966780962689382881892619166055970764369375638202374099800280638182142725938381486232183213443691684815978584077403583980484815170962855133230346269632621339549901313833448611567355960125842613205674755649167137887107532586300898517471182010795975160404687591589798503962906461618137802058514178601523435259952122885700655563586791677656362062848873047129513046973990903644166238191744837784163164100887746301815811675380399826494430892464067113999813098599223103057531521322264300826336944413561466990632819971188642565532999613156328369991359326055366598933383055326019484305124973274385895042556275372860998510506743233437800580111078128660499513502232497351586871430172832067917909322547435529980932950758682030187494406606061136830224417058438074884515178686195861325983916996749684246612151733572708807349549479949277612199416361383894738543895013363047945815413382954510125837438715019381998791526948693390191951777589255440002470333190331975450479090958705817840166689601173859132385573576215460297924671673785624474941214208470100171974285705064197067685431976840033404174285117281624918932971414311493609416372782702857650020624766413115247159414415157255831549775217735290866885543012625033719664222884872203360105625344578466982090979934619022975839707310061213201602898783818079705399767972174548666023322401605930504438833267552696960124124436952128945569151898868006097737281926522792378755615370686664245327366153117434876115950136277753865592525781897546244195032564784270650174701631743185484526010162623143189810497819391159865611354829442324538508589570380368481745111346915093411759121819437956390521822409313849761502048832632501804171861723028868638898011889177261429142488703205924276516752400104499640751520260442729569332845128427859723829980885679412934748184930539510576684625237114002506778208197979839243875950769696693309291207176332648983120449900215065369616572804730271498284519476666286157783128452806138667984177328226607664703394576519799790810794105631506916980117332532519546516421750719332744334812929454466010859769759659837916314710941362272614393031403311330927908691012308896619091799082443055975402947824222720109338799759715252158707145326915763754255903813686103327258702691129300127717342027315184374640257680271540294141792807674941835185494309080172218240802209360856010809380208762484071075158789192299160356269201181561424052855383939812358763780975513885647559755983337077644532805476355444234569999127831048947382155230025527387003264541219069569212984857246698862027972861232530906015254052462665603435511229766321563438642412578756108820838983416058886274748543273631861684816878206924591985016064472704825027333221451995344580791781103570718963073493345382924818451484188735071001287791134401230481414017998469744680723508342063542072340247660902043827026039528983670702665569733023180888664894303913666721046873843940233475345160705317004877214786105350745462111438027639471024322561561302076104426969096158011393321411612033181241416965744161102486165386161007898125942459170540931718223515105197481083831451970428995485094537739520169146922936171755462635937339031628396661312261420879260769958166707604356374245463130039227853005309155723008411617828319776306664451333375720908779547834077193923936996884292492828141074013364358410381416954189252470692057398208860151841589448571676337907934351559937148063423806653128539385128562829176695373803994449091533156671765513210355699009241779436407565064193683065230340885047559715883019905796483653899661248722983660629500642981216110188826705880383297803151176963357951819363744423523169061967285000083121278855025892247364494905933516343340694922849233443230916455707564523246242278942644268733830037467247820288092026883618083697418899538108530487982352631140744785956442546478068242414892963907859969769030077481981567293588332133046801586560346283485459511528491848668177520255124620057931503771845606063909795446138495193624405089448352719861675401526204123168422578041885612316979769847694965107168089551804371780734351942842961644997653575341751447916369816603057667859802157214868492126018099376983519891137427783367376892267477727058300805251387205822630196999599970044008351398526377131534154568440778732581512084787941601698093115534632851101829167263663003753922948013769996572709230148817742913403987451808400625671161614702398730493579406774682501594308847399578638976457861156580975072710360888697574526894559597792181958279642643245309951869854490516273264758863925364484160098808357423481096449286777003154398710589715238222197969069601554263788511373600093693424192352839785400312248001190044938295669681277956015687412232213536896988767529156905609080893018201693779445654187183669227302002329197150746211738540280693587800214363213705999176665024445731980632665985845038333419226902607730406477774587009666616835186878258453914753899206394017773381967985241366323805832705045807005341809446584659399312830681342804053889097869068691330955472489114490301600513557132178570701850328628465154271397426529047090683317864313772622395174721569483023502392543019120503854962586375884757138998920680740342070687406812913651180089103629380651369933992304788257754226049869577529310817821654343672241986676110327533590117852455271276096122880961976307166280323292000305954066243376466989688683646249237009086063379400979236308457770034779013857974868932351907124309602705979126452107714476088914806217123214499992652212203333393187820099817847892248563626521678842799256941383404745489349648592419643923351831040547707318130360549636875154006890563210361331226041510286302844443464196410174981909995224047623872982258065420656217649631655921680312277990806688919870773192243277999022683468499942966969015580559268966710282945674452229150123190083341752917482345329343957215032853959953767199559183224489105918150620975961767867785521406563444476830242617994087985175721387811060789566989562423176412185777249303258586242690429819680283991576789424162907732624280282822397489728624607448492225049363137671278759276933185219227755198020793947113657500749661030437568070550842981261241541331906457419723117219555539744549021446363285739041989597009175306443563524451379409498302594708781282565194223345639057318940815828837394629211831870190686035855442851899473822984624144789078100548418626462164979561134743587663398763235072677423326971738648312112042826575249030166265855137546922607655611807604215375856606331030849556294392201832805329421290952846217947577387872715886010451240961338378701712977178664432328701855387812882245692447736389946832017504801980039806304893478681852842325992708258009300050404158025918577453651061217223038825116067346646781570581440634769681367562984535990825365650626302992602141229699866188875290847514176907198274353089605851228965745678724833421179627844426670359083782986645887937961799745373755480148158123771112502990758646878024143871444644457350704795948199459296770541670649985598611684490602489852808854771894019790752854781095568117839528717222505156057409765737410198912555419161245382805672901369639662145123080886895879172412354666699245784012065615827577197984201346337099839161272108943859791064475644573467784291137166320428714783361976730791568228948962516839945396606304467420785105706552888303840652544533779838598054921327430934727762392716540702773228612227233716817842163876808290378758515496186113062365480291121805851635533856065288080094042077823862437632504738379936753253160681151259852613596374823432844424453043211053856385157667965016813251751453647572713339861551664012886589094681326638002415725977822532042420917394215682201403191415465948546098482620356982220375044150234471705923386264497490831326648552591067906969995099222740756136606428087867360859168191440428721778330800274360212267157124591840263350661463735973107955573497841292264429466999794065359096997520576530106989578175670114577952675751931918752260532194175235592130925272565203122178508786239362921679588296377032736645880700409006589713188953152946299731910806343299377576067062367541870820858365963076346410836918411908773512219099552187760497397455929497853124238085442258834974989988219591189919578877406528186833886235245411879332196364460680991614568687956896987322296700118303543609213179775057148970297661479041147914745963638606861628886210071827483399750566134314356536112411632563856407120301641137792144216756847308982683168776626267669089799257297250637043702288043561307508295868115889072061882883413948587881625186364446966760542617252450314183891837226913022948322422430058812205215147893277451446347283017945030286112707523459470157166750470921403720307407368113781530509438203954068643546708542634344764898846509914475410072931678132311723566047139522927068841778303083442475081152671913684401362021487502237547308317093145986810960846420126554494561870593965835843942892741646269921178319998827105757523376269762715569892502458546830605713370700471196136598788054426365496494292621117025829649103298546076473041964915789868636856084675330930372282500294596010439240083271976798646248396759229890811924947645708792647596932183091941490878708842187911050223159331972074046639207188779299975082795836360509717154338692947630494121672876492860864456309117570169855206650879248063330144453349633224428313895526406014199796058714474247980090415431157916710886550066432258870969421370839894782851856213796702809384823557929794149558235873805130157138341791220498854375398341043954821916059225353231320822077184851662394420118698546619360543249601561419738517901888570643569200219456958489701738055907431595771382335923464348528999204177409875742330721735102524264919005022312094553507102569931858484431123983148670077384672605537418122452655683001377126186211205533438988883704250484566514838266702615232136219169327177147442306536585743789981319833492503511725463033269926094200918715778093405597393712756815227252707184797005773135223521992485740864471713716172176525228684509959040819755488215858403321867244375453744300614023429597046066922887674661724751613502954166241097258250530652449449609540990786710418249809414542499516065675451168264139142609213717351289900800699046729027370282534985448743420347594361326707081536595029369645561738794125606090503638505851527030381041057188243739072574970063495453206741927771153045782050266745913989456270708891457460097045596013211202092810425323458842915147911270950121176858436044341661411562451772918789910534271510685053076569542605134270673818636466500581904595476606805725489446304806112743800380809579985579632802266884432718712855947346040988106586349074243911027339551341375001674797256002190909576522899061532213689480103867553813998252574185010451772608602796378266542124662956371172424395397135038403055635061453940975536148579210371996652036785347207598866247790029221692493004098473964561890016913907398603704625794440904874004739054600142538308770866823180039910865666492975884962059159447205583679132603422179754483378819892332673009691977219767125235830567492745290635863705152497552801977499398821601549015405478951271916180813870786471882753529976901358613565436823442584392928143385768931295843591126862885607461149699233556312590255994671833084787257027629610508133476379998063842552057464621857423574234858417904866071276797574636912878979462919661842793227971212211505516368080992723547967997001333617257509249859712783129200702419285926829062601044281947816204828155045782026983908195447014341799400081198538630838276588258253599494463905474441190883605890066458186449326558033559142080009350438578753687679699211627322753723062809318093085968355683069865470693262085603341121662538431006722107051808669521279592654535731326078609567546815579437365511154918453359819531882018862981311880178881175946068206383702376659162996944824527710781076200013727654255780517991537900855824453129799493512636370458096536166488970004353463162822232652205428601990637847587992753735668645321084077546468433202446823251466153464813917271538020631629474795162414407265364244123173879216756413006313314870778758146645593452435004432796411839379332272463026915364038165864602270629196537899381006165638070370813705036620937949547516191980335366892575181283160839886566311593560687981646280922592652782374292619041947401974412986452624371691462256806100482168770642834338178974406171522121941344584287383610826429854860395397321369182413290815100115014389130017946740118004491448666150920404557877567881342325367932216132604424512652475199781580541038665752446328965667627607811664106123490381712682657705228427783865045340493353036416837730275160401866954044866031441007212461518980324837704176045194250125958216122442865169280175201887689192348646296022165038916271610853621677936492998038479947062232880030132833475743509481110636129696264038943756138582980407045150654366547403558499355485580017526141380563489942461181907148433458588080312920401600947234894532063349644150686369205943949555550664078438083411299313618903978263545117930907252133085445200133891337894884214930019147336750976865289475061450134173226948184518246664288152754984609460982455297714911910133407245177137832621640660150133268068583273376728240356984737615798701779207915094967786714566966201003697074822940538043447586588621597817594146907692048988005228856326283282189149118743402498647027604400601991012021292533418035564853443410749418336234845771219524152077360350351555149948570398014437506868481009296764700184014711583925599246690679367452996509657783044266018855249644279241775744741758590361900121053758877308454505277798101827712393988889965325725035559031931768536540882167950412917360971093659938706945442433345324030002317072846839873175396033571034735043664545385854165387243650803540360830370230607723884082936275188334858038555675485196362045182623834608424143555977009847141665395263988021657345299363227923583517091950923274486177760886066004231648488087842970625238590705420093254773953597499715301047356487752484436087817584110435350348798455631105106174198640303252751519942440825632650415316921786564718064251311154602861007760016984927808278197213784023615975994977448064700652501093452749554263664470819296265385721875559989901179001607117048432636520891324105798009711375006524670233804288964576314337488557407015914125466457846966445997322854317479463617508830778285431055783070676887996780572568026453458842369748564920573832650177198818288763489519588973352642826549103434030075967254103793253199718490413790444191671189149017189254050314265763801950984921343049438052399120945409059412276717942621160146386091960689484929500016155407617068683989115227842970217567968985263930401653581197626400661578753889408452463044539413591067856673951701433936330391704924339162937033059185591086503042565794515582635245542734297409383182714930223685034630885174914158209633958355942778047878282621613978687776152114774357067376756261445483561968677621584892568352579602501975857029217374784802041462570529237259781604971194296174921413145292396361988761980778542760520387518515430769287950653225332912324640735297645057846665977071746522702315147771326633954294709115523977971337683551522815499855863892358239252326918772188155243930686922571575889136376667059483417787137560217782421968155211547996645665969431432637441681055525654470947792178392560932786685912388301023254711385527471419040302989130615047803991464323211971188214259783203128656067994165375552042714912832091011766223859500766859757783540198376875505158203530050128966250170615308810627535612233303583807145705827883405456330273779590691218354246103787750838212027395985404371648215830323044786266099693305524764013732312305867512194353476474186917885869057848291651037400313270591984295708310667147014130580276852601817038036782445130667304772658818333590419121252741283457838690372089100606165657736243338351233266565189782541577784620101409658384063092564943575407225517998640375395527718999831848311524694358261175040272719268104647359352328334545706667100230264444883766271044332738552541844165289102073441242732027831154364719589449597484591115972482246187692399290089981693554757261966533042530780009545288601246733579284315251138248419806015928942646172349535052848552681691062719489171610584063773617174693715602722149871093074923603659796288439145578735697784700082339538152883846154149758765625276804026614963124230168285205460514010869069545844928256774806850252835376808124500005706943214806568082733891573060163857964361453080915065416987203459752741603231004194543949741813957340824175702989486412994114033594604254280761251989515686760188148841506710349890282861720327146608995520269471329793897962942162015238003336280662426013318354847173139068690318145123856302382176281187059851319985161626989575110288498664504029221717042888140949862479332531742687788452723515169281877365642705884738945095203049106891906629303635030704092296544369445982745617122561561997822348680119187300612741199511686970941730574172530281566591018759973419933506445844133757537079472614092771386655130130461607526765826497450275480607462922228004807109037712071479401089813170840138081370785085565065330918174570027591364699393813682060989882609449124878021183174072001038557271346106263558743283562480465230940114161742554705876313500143028684646155774961788660776315828821894222920727745927151429939822111376577239375630147023519168275638170835893351795326930021593101083478142865835707771826941580879615319108931162505735052961215366250309956485983118584436646694830865852232516623233211058988972983913211105274941892117112206567022484255501115613171306578731826670663583272679171406446471191108717506500123239983915722409499642421899044397215312171470595560090596671123262151041522401973458717855324230060049377637293528707015050960489117688480098362390153995417760992662359111258758390096717291200372749690062006354696494195193658172483070191701553559623391584837429488646711217070810413016779977149331005420531929159145719074537514408819767100652038233699260630748981609470443380020880884384728282451619825833123765211537339678323670001791950173683003591676440154699784309858939622174693308366623232545845779840522608784463980639296501792852912842618686521697473178079387307353476941590662919469740245490614062795166696784575623137043347103932763183587864320129012533221106389461193047151226829361473254837692162206061505109295351727583262794241596391230042562259684499172405069049021797213446341779855043572337723427480581941686635935480609122099355730934994195228703347303863533464627005398862697197869444838557909857914617622008630702557454187037843512746731186459167962048396122423402000836758964691646277150135201213548878046643104783081224033847723694891699496947442694062537989901120261135342740948143486606905405772861601377095550957125693726459226268903746860539428105350445625045094064357466744905676684531507204806238871911179363973480937312439893823953207346021074912961126136864393881262291771658181707354046313253441101419220336098766824017076231122281444672282842858995709164366247320815596646156061761010089382763798695094401842730004175666769022222650627014847317901037402452015659082308191647771193954938791575100992984920145371594688372201681369596399275825233605117075811286545854326949889817467972206099148254323635247560952899297759380112449415120745296397108903234265684337130476718227272836367397765469001966266104169750265044378819508004955362151408693704222005879862532420279842683852725976846592459626998076018489375223725037609832251546210084322991603816082812800364649739228396420384606142820616404666067783931506293093796920452718622357079570115433614353447224076039743039488939766321513199592942282304553660076494950586670926459782761212876955698444640500053341736713341763088327856040176640446013380292968325367470999783279534013227499421276329632932333887569640923746376463253118567047652985829816810587134390987566378648060307227466790600507206685625362527299505331114982411571592546339985915667282507466660287380504584410306874577953508773560132383121337001624592180288922718994413455630959577988980262233736188153994510991725457380728619853181690406869185667170317085794472659586222973328729692018019049484869735435869415639146695125712479931387835978418902448185851845571149413822169107175997759299500305923348963394084581146255133275641820383842746961970683830221043142006486406871488719539289035239952251014674712333407956038864568600746239917191239502751764439789202722911344161801656446410071188179204033880150651309774419638121071339523570238989391485778480431227003662431996692800329228331631455575754212755692407025214481569644459265874086337941633164688074261528747320800071923203479624822025741944396382857759263164273492093577461130032786190871238411645905799003485683966203623030456329950291860611940556274207384088062378859745665345202922853794654882224474352237620178712421720834780248803492823819608931123092250117005100390760122231404058998030394394990388317818646853255244543006065253262664164620078640045516805745331786693027294707840209936768801976020830450205380385370490965600879767582353505503124464837499016970642735763219184912782973160658422114986248631166858106328284601539450382616456491598176818129559223581603422896388158208611494033757982993440289912526400734013536585290015354389922869258247783942713052710950158584568440731027758064383000246410670328938091585136153041983257410291548249674925975464308659359433129737286483850544915501746620332444321542447614085730086553629398728381172490220917525264715203574477955841059439261635363793737860420905151128526371246403956446128186872052672142872524008003871739484448708351951310086018847704568211957608122487977728526825443150937487400593407982370190032187760492333051065037052646129007078555220068683761977912742861287742253921764426456800314501309009116670929337954125430049599846693602576009655052148030983618224503928205159968844421610510360739697950458455930258443571143261145404501085743531196028484161721760471104548638306376917851384097948621462737826824480109605246228187584633509276349012956958030270107329054228830621729324244838275442230366880704824357227655351690847881375788274660634449505145943965012022867446638716095191634261486744232322361425937739107508409841487944138009408523424651183535692034120068520217591081628575651519029229549755317358046357969189579025083263016527847012714043901093659270774486383406002039929849343086717945583136073163475084036508488461410117138574730206377437524583204318523424563871562943810821535859000578653032766696713195859240316326956154307158333223118509739979836192820533381130844872500840238659874304374398495308872110942921018601234838530959796094866830613061527214210062914904741912868875197928177583690166489564909390471443891351027173719802467145088002358626357591771826963021208331349193009636216507602451707457185022725851097285813775560917854258854153706114806145449306055244317097934228524954855199446435010339480747072005504732152231089370297521225686822900368277068391496837652128882221287075886885401421431753008537395733100190967089259968177549823665388662302042200855229515504690910597236814196967342605377146404713966637435551679519595929770689570577229588659980370696240498132273432809149033768228236739219527334462532584931041205204070846333164108234518602666522521337504467210152615451445696330005210161621439617065164783389466792112134399531838139732835638372195718745123248570110786304914201088955963363417118116929716950613896597294061402935382129867729096566086533590690467290573017808779964866486968171843004240747566138705245732304487152967828527099358537415042875844925343063876793032277466064788470249536702733067168296409072433310104727129561560150396541539328610549037393196747315711337463466577264309172754147606348414248736328793007224717535599848753234296811789040132144350459706884369538874282162925613431119972918816527954251185650503076897205360555437488102570131950650303262988301156110221487786487479389525043480383237626069164888178996184539384916362118997361187508801273928439925682013595320520287838582433985868989724438727870332740511698295074656105595035965315080794104751625329718191364886692977864010387324780635357698774759605079391972901211580015206272342561506789069374119618994323340444068247123950840667182956703529705351864699245836788938225821419475397354689009747478854931594539840049813444599975603962108046371644862969208264195401958831878472695988832199846813754879832424390285340407207634442487659534072701450402671095390239768305876280758419544873929479937386956104249295412155571876136961365717653439284751273951268457710318882128439407730472952878523515125803981232853636859336298443905243324526651291318527717628222581736247171251159561828515534104153739227326021770046139394184043015245623360131669027827462337250870431554891510040851495706050539924505736934196851382685901931645691445924520062219615450909932952957016091500714469229830359124378879524085936247838376151992034208226826998743412231622147922714605294655296161450872575184064583211319718599523910921363064896209014405647230094834838473560719084160454390651763408806602919651599105758363678689132753479045297494137146509993786032176913450410130103950463302379073783654304613207342420877760772900049208202517321484508260249610135062227962113258685443426912495361895348589539951679370242568882708739616026006996190986852364699340866467418381446061073261002763795852378864259742328290751193707160742182729514971342274449787935243682974336032977728897421013573911927154720906408184271334397144571492288036755455011189843186599411454429885134436653374556992650340347336712375277468896284467527037054776904173954322835226407717587257631067046211069823500045178231452603247444320140810409367462117424308936515703800506665078667473462420825719163815074951625136530731755381446843635049693937091637863760359420777038017401838059543758204182455655966247233545043360275134432374336940535576606893002431688193190971548238498444307402378031005742481476804054063341316646065295370810804667130872236960656620198471745840312683457006009782962018101271022911476821244658890142690812748675601258248516696918514480808702215951173721471994992085283959618220846926636480629129300221513540927217352670430160994673931936434132703326265613762019857587793766705042330528573190260817397807920308225113557245223235806984914668292888143267944710196948982800441611923698617485118462350869838880572487908497711438634013287185926923962174327846860150223597293658172322063068170718471204118451132609403075428849533478527615964605434719828001871198394968644878572316285495049590954806047045794390761913444849722487343152732615642728940184576394059202974080774311297204442608697409648774883870735191384501077331417837853853340530174433797066904121816542370148645872758688647077051558655192585967385670599420371632826244333075268200487662132813852068587713446390821650847321898805478033735833669923674307986842965783310817691215820753174019264192267739497254921038211643159635960125821784036245054893355970607050624080907534317800773242379700083099709007657779958813811588548785602394908797837011894374593032978463840908030190757455013303981413428622481724295852038370894686866506250130737416094086439082728213503410383019960009426593963066433195693687477190226731571225043875673987581243392953171651995440661855247763503378283457292768320664015132814656569194223443583975384435927959117171798835784927724908132464107830416659504726466814208432838511833003541315782221734147031991148682158830245699021088404761382930395272797550853334417745829333031184563716942691477633925036063258018648110850495599305594226768612401672945777538282959949081638236930959422640182587125376472296309767402368774087399841737465268820066869443255628172728820589347636721257340703423534156073424952678406535155629386430294537216678735147238502732705867130385920199179752490108344937662269210615770530609272709695461372311381460351580576679158515456645811224707044361539549826991062893656545941567374310081016543879504969064391028476752936319098229394492052064955165278634048084628687400645120653742210695760517489671234941297897890046021584350126294244640587731283371845500577888001291039791409825459686295375903655246289593971316912792376889323203940878201898839746312772317002415589455394105650319285632880427336563868370284113535500782056347435742179472786898027725205109675655640500959231897310932759725852985274485337756394416522205528489831287102395413917432506274404187855883790190451154240745871482349527677815896065281352298878569549043064632003575003293957436124393748560544758873142640870892821914168479702635159471826771447671681442994523533294385698861123551683294235727543754524783572068723689210613526653464866820820787700474751370618864780796090826619314873790741486704787709171196099773510725708401863027567229519958619548127786755846084787698859989304518403471744193391815875463724072966206032796147880639669199133762548109506814132293189128607584944732995294575694379342583941636754494652827053912326905920438838002920782902928524148420601050681435831902620345856035854805529581221266430560190716623290745850236170805522852891493039164676120892007609759009348110698187979661332099767660835398152018499835227822331954590761114939109114417956397597929867811257886835075517943937785381104116174107131699185870989033575714853895973171634990348564784789083650667333994575063135559793104242946279781587744362688801438109827039663660109595797195027468942069737977734350999864422386965673332262943479626240125096169695301025381039338983056300043383793052976913026357352582616705572535795686738266939171718453916774951339076717737944481384871596159797349687055687432719611431862327436189672980448033423809175065310704675684107204385060845459136626868371829697044742623323881599343289398548486829527660259289858751987447819533572342013512888376633597266583403757738458806413836936742248832322741143941623301809074066201745728747115840387866843082842768007192924332258848239094690787438765837975885843804855376010810863015099392230891976044664469739115657254978628860668427268156767309824584407721586576617688230637761469176498669757047340949248004647596069273758208566254899584420720549712877076555617035630551313310891924739902538551660596054194455989930670472311974268434487800131676520235239620578737003162713517146636336184136056470183143265671491561854181718615295777323842409064763212773115577813210717753369138604968423335325198623614735794054443630156714721922027613013468305890078865554348162618093035048063620683033932657480917232211431588123514859147917565332046661924776564867783760990624344601118142719483726791464927069255756894475243377017419051463664548819008111464728083876330436602782289014938693877379907099419987889592607193044613102178401426783023708752437368325848364509336724534212181041194367175419689568318844714424942396980930276889762951115366935092094621664651802048016367460721545953995960597314705078625667537099800428856029750997479655679808656545421058914917272736305611376487786468182935581538882173374649568154359153843600279988413249611706860824513853980886398785446453926521209048191864413685011498720974052662509830142077725923641484187235246771609053348347667864091435164392337599457023597993307421128603143640566645817895521896103148492230755472238155817477876451049075957917566807512258066316556157468646522109331229266695883891342970503038838842195621684724143757108184126068139224042686133541009822637713114866534772823732246571316360867437389020052562511398369587738919244978350533209437300801173689514952885073625012764107471928632392374305295398079784532015622319821778791310461883873289586178674447757401973868699139398816278575545317669322139521373256295457771450578847616003228318589230553809725488980623298393321516545176424721216625924101029446320193387586241503875004847580197264159639865400308179056731894032562786195212752309919651752158890941118762419570530063886842440938725613504365206922699803733639913906192341803158945930658733788790330515959014093548370402532521627042186167878574556385974432661685383703937823039093040459338787302345741727421502848383270713875808227610530438224533209209680520896173350048626784275020006171145383432673516752943735137543652345523174605876230875132838589943739927023896950193701359270680309065092493705573566629645702344413329110997000770583782465497325387616704703144147226985860319114799883858638811303502720650260778744293444395005942801530067824564258866094291436739235132941742247280305405700092307804314069640037845085620682246079174301708001113095737695759287872287689108673607929122649661577772147694853773673930618439609521108049756824795528908423174688568199052926340287739771445294951229985791947479531954695894700671516739043003743967156489686276473099276189513428888211110466710786723405585786107172758140697611712701113181153602564671357856044519195504720036323805494531209850219683738284721702094322363027720777470139523151862465735432364440366041775634806699523890112022414268024667806740013969749274254871721255960132443078003707585695954767443308724641633389633244744376191966005815820945926189011871341094763744655413616686533969051801104341352221681546650517418561150880426812262787933186760857256982081486460677409838363060336966459806293416976732860129517171124797310788037169137021324445360849157443714916080218057075425534244314199015828951135876536756495266536278815119666378810412299758063797468237553356864799928859224567630816142245186891884767850494295089658272563346090534522384653282381228853337748605429755228061138585788465999579762127791614036885355598848055221993060153551361965956434912733197715483264021641229444894449525388737809905297159381481922362143171443225175720440767591284497661668010872333560437608185488104192774553946684358077532695215392205905981699747019270368075297042729894902538096423363352809702012694512553640392048950214374452658976118028720674251112442665268193352502581137406401179642901135592944607850961288664522947043821107962694981956947085724196333708821827307575441542258351381479515938705011645671946384565330236529726049315505396230857041845969657200301963821743857938439826850716950890168384190010228352909075766013232826869888490695478774010659514560301478483786713876760431087237492375144607177777655709662043696452236781447424850137074786456837648448343658842805292534328785582837720397094345893197438396790470022865583879280891274451565884169437567645803501235112832644653934713859837790870748542288071326909319153280824405684613625377773219815158480793876034608671773682235447545982408898681463193109483508661795250226694203659361855467758695715271668309144093742588606878102726809637689131607447740072059234552810271128872011177894079269201663177156406688995709551185700526644431751765292880218918081945569217965739134048917835422412754731527678079368876182065442864767572616400977079315436411234007581599305623650081821170229986975312434600647425408376626654271843100214479658765543737081319999109395584044436489086513153459342307303913681247749440870791644835061641891530024941383686541839746058511562946880629860254441540056914897771073502835083334976631231915273909209470589608898416115021780984234465843859331682074094197186645551641773138908505100377923316993756906103765426076894976103482863111611361717691288152529830663066861662426098501893609076633893052800472988190631300578376397266976805749786641432909617985973191486835719332034367112381730765785838694259406280439328187088744792999229387026643880396938873336314861042394148821846384313029830401579313113625463507459337302782215199577045248494741888411449162374624061570420571821259465597384747900075363268443922758546375561566952853750241103469199332103376327978810047144973524906944950317742286088804335713049688193054876727581788070194067124386076190104837053377394799296684407589702686943290848342125490487938121147490025751924998939225257814936933715695562402924694888872111338597803352230631923458643085346353703825240440747921692363864784686784779492330087709743591046666874572031252582472972864449511619940113513289304329758131258464430884726715465372581319417053264764195404172938106774044799638450709879603928356799755450768505298357238837303423579793355125194267612429877881944957085167256581530996212497553135275288352507162850880726546965455382899236913035304778056004248414086990783447749230825513250826753788554338045395304833289043232820265365032828456035795136723657107487487009239602190925133237866424681727246695642448377362526199745924679135523386956546624170974826760946600963046095555580657519338276711694639740517996745700306102622235897938928572358774334212089906115768421474403468216594989872268319604451114113764298284873527618993022756038527600806174982683592015610393806594633592423170037327056418897167377308152058569735227327003595676790996338718959334488997144391964084204125053065812658812940043580630349362802340474296753334907912897908440703451827616413986148308282024965286654438751786330473364775727186630798267992654900942854678321899314425286376891825009129173171658428584175185172774202995248994211714269545054298502448352368782571948712088427915958097747771807593866548554799844165020517893253877089963281020940636999850027682189781877333582471979841827480439170754126043315329586510861707396232709523247968905854881289736518286696881008943602743750940000806372803215692624179877617011098099921253193372294261411257503394530128315715951635576977924962607779275682997546486170361178253219012154704186924303055217124184868318251794597702654933316806703385489533859939770852196353284456329318558259283178613520344919749765923025145624175815105034667628821113088684263204826644072302054089700558473140049004952089711411290028301770776059632067758687661579462636491237403799349323099858937311706196214120304391723731393505069368021911543562789632776280600204202525949397102532437411975502314325322011098940911126991184690641769559445243274687646911299272247342436616731654842073473264032811405268104890722739129622949666353766333836318207372522150293840607077798898046868071131435535757970725145226175293296252819050622808148054084836095452768718904348369748338657330304770393420500786388409241810990391197487052936029661342815081913705422820239981690156542136348488455898268195198671409902161668129055629072455549803534772124180230597454086788324432999281603943237159653885789853391801060601274346607803275301089394556798150742538222670984193344261705334157011980736045286728606662578299990517813757558602528148286569950363679281620735172743641980089206792308038704586940282453483821581543418679119015044825584618541555422829304731952991100139307269101445996061285014671963611111389919113629574259070428993205297846089022134050678398627213829845031511486413703056486829529985058631212740757481762361830052272023215485292731569800011188300117486997015364289263612548616898444962675604182763878420228514941645511579631171897851347186169248803394643942914900829256606486890456364194086399705013913431332655860418197328588830724611410984810605272118462721297202305184818919584595952638726294028363918945524183692962201206468764728504827854230801496996137620122861654494383579657724559403574275496923153159398661345948311488173680202064673014676843524761758419535232921226152368202480779489826024771694548353937778044370321520718585024103573568946144695380771430261459323419357958098488516842159615521901845507767655953513572778261637648215839289673053089018536841405572426214167385107052202641127493223602424473298528144281999020809425838208329758884359872845055174946720991293739237197270207837144186271288348986140124237895009704797609017750545434104036931811515154513473631207045953542590996172919782496582478216820295360625930842088993622482421609866246306522891531020372418427994363737540051354164603541074385605950391173025153989661900961132078793681607371690271845885313008338849848764315660768074118328117565661982572724207678513949102258298385540066254052995108047999922359200442988950286786893091090151006054698004730072475867866601617609465791963506415962411832234044942292202831100389764447891257727778338622304913728575798776727964285106014448064378196995041202463650031591021734273423782842327175366535954575019074216955402635335852108920678602870632562432541693357335305249313140344705429205366273408791931084569759175056596912886186494964963823941989010118122056630235426179481625796035381668882369472146444117661200295632761158231508309773270850731574023557495358426764681902765998134229211952403159557957622848183169771497327929983458970944061216378470416571167407189371339148659601155238131858122674459840835607226281760451601147743018194926472295559089991784650710509257964976234664365267626939664139199704448911555284667053602618512901916639786742651986730870824524198797213952273489668619596285541914242546345822154217167097792472419487311316412281647851239279093217021585755653321650254082954608501946530232788706494085032853924584354902075545699301210955296960255913449691734725206068309583913655151693914391671203176210400546009086598686322664343058755822212502063814481801263071872986475422379551402240488591712013417897680444640241807955260094217560069818808660210805090508823905373419730874081848619179397952507367367217176266586946600982080239281009220369882602838570404408265786928854121177735802644519381390356949432445890566998780179508961093990362226546940765014094165058770981225426447666970893188636549451093671433671944837954870683672213719969391328595933873303347016498514640605389724171530336324627595405490274345930105197520245855961831175262997307155714795702272701119079595671153828574969995371118036518914332163070517104101616503793049057085986695568508564183034050938517540343388637614218327645721347655245235507578026478003427071100199880174947457441032267017300702095108592635934743254045475766335590969943828265100628770351429424100817218285270610991435861571978524346134893942243865105743213474913482255833794178910592941993180344832886706152176062892011577972459317094410368446062827220252189949238665023968694023139291227740534182368100337267285389257764485780041655478537335016914251187506428245501953609140768364285438922923589752031876820259882100224025966972195937968339527746426203007822322826343249199514724994246770859377802328337068466568633139158697466536599703034758226458345089683091678953137359606021728174647214624027883037028805846791196044069076094264046571258300581033499053293860754515364175495330617109038627958168974941028255688620927204051240882434360978749233870112997327483330034978323207269207084166267936778514965450789269915836923794562073997875304078348035184795767541814454870515095701783031560220366123725473512959419854516859916669858991031513330993111807672666691365306193474799793578138891687179917853957032289653998257309546884323266506227210355495813124174252261670391566481406361940379991935441646960778189808993415294300356912236611801412557517838839012058927316017904432178044352848113760910680316532047571891225691036343558989301630118601173095487241012624969025357879053380601002183564357301455685354657460640850639880396476935608432158521006999164263170526429465416331588652318886986751084324238505379768248346307393784258413058347443526578221478839322258257066112923843491686480757510484331891946447056184089166802592833149648354655349312159071423412960967187039091449277504020349728502373025551943131467990303197525561181286841241313603429045833310555937294588649596995387696384567943784676694724632922592039274607483208596948458830002995062460161840235531587991673991363613965999741224595376868635115110244410778002595564649340791384598301992133462929432702257600304008825037850075884400695049535159008695795564219957614110106195572770896312515488489371555791703161721588943126590487687673359089302599903824729767962419357192439433582137659428083836924472375291201709906817935553150616615875327273325990858478613962464890934043065182472423025525996520262632166534372737082688331906536675208331390793239443989356957848552936304926938806787746482883253897001993019539794835713312385025903311371250546676188348755657669935575508559860960048010166943176934939737827341360917882839976286797826952495563605128202547310425567850385019397165254278404966046216671783019250197285399655535799301647061325542611256983126450586223284813363529944343720386072951827033180041276882000407312665506610245804239576760724206131356717932072977675993542145961155179891074748768648052236578341845974765050409223740868515705404414251890227886239964320910276156893400077867294952600320828155588506379929500973644991314444921556973551219186382797154216418389439112297442432108469862326346762667197101395923756762401600771798861808680858977150857438117246594309816780231167744166703191260815744471552173563141184232082776608406875880045661480508587873630228262017161572719493423719481482471368833551488430415823690779035695114011794071872186407462306639886329252214713384029978011407105738730122507337130955549152953745657433754974723025679609501880287164637869891238242691853503411243953583666661823068161713562712760466460040888547931911152266404941615738631477387291206989306107227503499754009385602404687657792657661975019232469116505633966603050380192533594085011739013020644466889961538183902397261013775313107539098150001916128389647372536035873653059693506573029912742202918319330892900003693287393935199877219841074357410886788692857987138946528447956994288968060881116327042076269043130991810980681601329418183933786267173430066593117815075687433093503965414825973206563408904123180934046414279833566467108222301188144033603513960083351830783718595460094922477688420207708443116071709426567928563656798810856540225902574855246981169523137845036671262392136076052328062025952805374796902327559749333846464851907204116809873763509235822161706977971217179202869005874859103865969593044220022790118535728434670415388679750231631322229515846482743849287358332247158279931594231949851300946295938515396181370410972330770182061753063169597725299455678390686680113696852931351541479944791813995802132192675446100514237005734784913644499550701370710600786981573839124000596673361544187884816763022761682431910067436962635614705772682065692548267372621276614909070034617146172105044475737591573518188185323846474712935537911152258520551531517221626391801877768229977239210421570609119358108895682395749901880318637074644212392490734429942226403811227162918474091948179860841999917396899170752354277066968291671428516598686787752969911394365198905674101282055036237677184768926640361773754456766488451126371043870277150588212872488944533441248229266237625422615815489509589614518965960058871225959602340201238834329778290617371810340207402800528583974202116669252543640052986789028816735792589813051656942161083833517011597712705257571776626326541305965158344820924634541472147029107325050297572200758073069008065657907838377499014394869793117668668725320982468870362108883297809580296296972106575594898376111213368535683383856220303906030358620480790611035311476475280621655470660543004820690029389288772448015821086804713414101946363833078614093422874022606292323180567927877134516754463100452592846423164916332782408377622617852682082662426836124846943002364045237674830323705218853395369544825596497577222709786202223442857055297224740982534642827873403942368929246440535962174738141988448413564234779097920781687211397326283875404569082354734752379300558994378499464309088427472297713432746700180004427520228310977381433321935430100518909249433256689245023456117999318329333631090973500448183915663363286177925747750834313410859809839485083065091423774151382163021300751135476550183258021639121209477974068115630405376748133139069526073337319462980212499228555968015293028187976698159044212740564140838102812717541470720521600335247169134162777450315559192077791923842665674146855166792043692169152317158392548896236669082727294219909089398827012114716579601233875641977285101704557952028742022293383895781440838197880061470356634596528311409289680042820822750464103816677712442508409440739797848645364821706435405658944218884271764750533850728652154376684301150639323841488739975704309968147391439961481283775492188255857825414937385893796426539316693451845605343521987608546480583244148815563662146209280088782298055436932502502545381099686535258888967465867389471347420396949038980130118130278186025006442691923924044495300556195272151468668983054412782982714874538955122343043596272021797501104160352596587606093870902007229686413914561946755679197166226404646568961272907611759755839229538756693613140001642985890626580497684801889366266118113251014195053941731194824912941417585854411219179722341653822506894441653526840551698974267335453440159025715867657440799364793980142106256070833653122939337580133955698380067421436925195439667357679695759779122277857414811339352487674193690327519293588086916642061331200963945217930102603557799655750945008753684731903483546686154167036134900666814543283565271632876806369962909431851409647728544552377535600289551852155639700169270936387052956695493648786229307617305727757084238126722164213716371811027926436809878918494870594616985221842512328175367938616992453150684252030366894382984941340325754852276397716445896269129306668734074023047469577477382020017761791636650777628955195750071624819871801244233494265745726168803565282999907113323011791214053606505661303992545163586726010997196336890453073953135263163225724292483618152041828567075222530380512343847379009435661466170456264699345064466858796437758633659924893080047727242304411903737678048776851601933483760937401770765541988064302572548574338190622652431106169580586036306750022147897248239847803734246965684177934823218572917971739036132760560840387792992179407233106131695751464169185491826016754399634785012527571298246024735468051031116486899900803470482055478304027418102905325209381789231117755705902506868116520492349125933075333122312137170689255112392422953580130620179923486154709244856780690366067638973668367293898530888872921072802409663802759184226328429766465172151224101460594088925452160317056245514074302394902005359243396495788017298026061945052269387041675680540898174072847310740128888499487234002188378882689841551205120982907771416305528806183243934628348584492472509123876299414921756463516783760089938947607056221781025857136202556930935149052842791588346146416675052181006482135633292628522811758641873002124592624050982912444886515791677484074094924669961999982272481023012942923357272270950503679584057505415695052763903667990334767904236838755675915926663602271164211350831765462848688849125734412138581748822753600710976628691125950903510192801960399620892001429085027751202325666074676169873393249733156334954664548169448641457054334910108031996832842852827240623853614606727634542995878616110613531387912899069415689631001738199602678185363398376802349098568943749483970240160267302521416233640434873978785124242339578433176755917982828360590449276933355994319646631729125819291153527112514227477872106886413276014069771276339064004978486316822609854586767616499603778706092100013033624601151615296149427820921587069777376607349287439120932709234178780483661998077658780917334079624432601512898047972324991659220027098797794078034524759492478534662449882116802146570849764607296219226918123642014181739472027269557354126933387891270626395238249173456390549852379095648865283748782311693216957749226498437742452708591121011831311727190120953598983202436868575445545200337484524342128242894064863475946415578018977346528594482866289217832297431644837482343912394655448251769195378764483682769971626358306715998218564016936719787302871535015801681343370683916461712018688634874612002318144084999871767389826471859700942663176637797443436941677332459111227452531988595192988804110778960078026498114464687089992894009100374038177241758538108730439940980682417444255098658914949956011982639482725390994318062456930693575105312631306396189740796871653383095595423649483946295756771480271005082273456853243438866381896885552026494624122872562744037898351947969263475643305112853606645281804096923257032325266861922874714470261706637886191230550928969158519895950021064349026773235599110830315237677284423624034726675293278219024873088111391087316789028812244650963662929759513172455880485187366344234227276697921944036532909540868040030817230417390699681540338341866602557824671002096914613536172469838841487198804062127605759287143980033075126737572548023076582180032266702274846308506885501587791655183134898643671968748834050118391802783247307084056727183703508743984894493399247112347386104067492365589030435262537616448722566945025063241304876100464375398772864725996277147206057683810500714315213966291277580959408320024290304467672694210642951711769995423957408418909834459029673358442676898988627613781279721111152979188081214306170162102758528833812410386656224765559379970943617810041976230005006937573328214977735129092841642900060670657105507244875685287145101340955075182699290862566958207842680625069898247947867234614077124506951604465466128747899219429493082712533851443298235552745771208042303635908229319427004642457446702462459899637157448664980659927085617598838256974263280497026200160624476173566206755542916984726256896686710828131478474278463953136149025121614255903256782940361952045013345983452415591838866269351869320596459634457543627308666705870617646723210837147060550944054593917480730263912245378852231238272883305743249766816939362183324596297353244169954826475206097895511152368091413395749278082156745565773988999044382859299316635100863110295169059377554009799505363746423968765938822204467149931660488296009029201701945690275923277780346199458037842305095283833236113234431448367895957272900356042060494941919161676483469020538551182915839001154335999508789818668346311580149117633001471954266448611352362732603651563931304150412730474467393181503242108352713358696258803269170253617839445582400036732946199159021247756384541615831245310327009535895853580277936528819317039250643364481724748494730631265171139334031497849071227391385566397388121984204575361066617233141293674052732969531555069585483838871323574174286275975367770850733601866186656808262406194753340436753873444946132933526764217072442473998211390135695941372722698665748651096030148740856918864998815967452514661152734951957068491324399290969234032542383498594438683516201374364512644737720334554619134844259767433362012435045534031394000514778956210417781036768828511082095254796957064783759401335724010233728516573742020376098426195161519902124002616722165006071446228270799243198112111044958541893124229444692891235896615177653690720378815628405957440151972837078982120286878211537774043090581964303718738191471682663220491875866656822540700408978591506689753271236239819303202361819979572050687903611281213107826964457160731462983349268754696488177838166548403380470415022791654139485179137789076236255587550380454219630272166119147125515881293705795185431110260674577587959218487153425783797306104529156125817513626570265987234379918971955906929134370101968263864423857327435102596660831529172944160919803116248613989920185699991918003556046964828473335186208355662242254042170973250541631180336619656154131409513190497433411454179932126493331489096447379612075958414038506244569898521791788840679370008703973521876248247246734889240565607632059857111045420249391103007197826775314066341377868694156879860623195073095333519298495001227649043086471520663301936647826433274810636532416242877203308968978804846012834925048587301852516984983302219865997563465426706192586211721272771342141618001818773006930167618402940085791260443675913050398065635942470695646161824408896380732387540146932670196161815788669574826120385314708217027228044599987619363194712973855394928344124996985580148458235087747571412730552771039282998299424113719991268229762955901208647299229353719456316517097433025091994694780962573827423098257282755383547160508949062421626045798351648476484505968357609305804639915134842124771336040344484944394391245522648800197134241182841395784804973262137554465286362197555452541257019638711909214427131646789996632577432920580803796725450942560050110836440953753563682346090102774805837519498227793474190417734342458681656923544938594492450541099343305650241064665567682321727644756806001585381271580006703130160579133876818715252819413849349243045627480880931416865894665366214427204216126804203631963442998885829099105777489546577747268410647466324788241151094290143823790913490817033014961191914374060299543681758251989512846016707279564666354276776631508637666516310049927155718407891486262086656182471131150824876567130991535299778407018415036804417624434807016306417254213956253074814914464990783336490522000701438934807994415069609579085032956411698978826333073461223629433598948462848493269463254228638922224856244775850369806667475661013310346093080065829252050708905692437141946092630515364673006583861427691553298466503329231639066166087105552060412299461495532868697470843494399423774706561717589677438447580614533908106664094438698290038808898750038207254559342751569639540476638811550241631925980597261947175231899756974076838996917900415607612931952474552172498914636022287778135009682858019995250945322686872665791958488502904463483080581675504917039139853732702980634117832516510268994116590879183207344215603546116315322953558024802429182340868187342347915403061842604766596881842742186978571904212574746289319775018884960395327514111528793879798453479866475069195732018763180559123452529639264519747657047544852026989446841761107368835608535558827355819428916208710665567470665536472605763967836593470251952109485226393593321916552593188051032988845172781805932718645977230137802577408172475456289309603261808168615386275720050752099528405147957181712858144584041906354589425526708133737924199527055992285023201858563995840949275571330893167419922570011828857664916840999519240621447826668006983505820375419346055988168918123133018621533698445700313959960509284907122195964618591750796370568197115228619612086927293263386896870461058605028578334050962511720118479965120260255593794570564326644975505550067539557501393095115213697099991006579406189182317291350991228989753350451189901781153497613842156765401899184853343836008243935208059864816444208065750410991372176437569593791619799264130080813373868217231151577264519095577556347827701486847656237141686965344446511064381322934804700758549514374435568566901315975411426618240572127023897625785905804001156475880456997535603783880361186908573609542032153986290181540535712368601799760431458054121447628137481913809854940777771379810064365225391422460599569999854039779289660269446703376174276858177452757258321901560626888553039893229400452037406527282570814993565193126950633883069092283653854833153526501214713896063912759133085014282684310747875217335368766103210007870491704088381982153812245720624540445789541224134212478756702176928161919559260823610111539386493533751576090168105165731174854365840910435709902829439962832829448437474558861831455605757495393907885685570974806830457687215456696053295526223750412890157581287038175510964384690216224058271593636230436626492221666966827776133675550035963634060945367413871778289189858598637278189275210158613575341169877236833848837614482030723568914864524144626547059318893890758578946930549155001721553382363699735255850555000947951555968147373825644235537657377044665685360895594194225890557789974778544290966540612377103593305480043352369832430891927823156562287581521693768129882034162778217229765432042657214229287432214809369740374893024059149471296958817772396047369580102489497418578828625069549777021712483608560312670927836521714458837026424510930226293393606991232663601089911285947074326424436286683042198661178391153986806205949019493642804243191263939085257513445092269578344010362502245136099061408214969012958994709919325535414691579194582269791108782163311924101085040304860164912742153958513334981472963491214123941887507611227018186532824624495594632388673579938712133207700297379225451549166236553858768518437953801349320654505936559567874333322579971016386289131289597818725270484621245828713235575633607649913222984604949276785673244219878730243029340261277218307045838322029048724976172521832746100683339292174208568079457458605050109627221827968195242183779319634680561304197102486232887715284171454838546024404224899370871720650393905765052582590164541798879734556490250939129768255751959400251988760752151708943010260136013422534868458244381716139390515259536369234739668340835038588876560357943370964727929544128095070834607777063727965610004729121219642868587330610062213340258879023999935235538037361667141511689393872103882648254990303408770016040637534246286519812329735342332893005007538151060986071339853079423438051309655764796444311994384973173780942851177637109932856664901418254354856190272880884070456795927457162349548128056822716023082125776313395717763644029090150487994823256761595922146901666568224074902446953148331313979423216921699253750738061570103976596662102856597371656705723922080990610048814523738052141662847850977185559531277447608072193710106310558052921732689047499696399381661259198758120362880559268478884034786772560685385664585955816864900107752675461066985940599669290749484188485796773203115309953969689857403022094319788869114739718469879741790828330600213310357083257322985524513301935965094675538849642722407419777246073088274368548835400052334860858300768829238697093965604595092052753820536869068222291669653716433086767571755555745552557766223738509059984031837800841316254076478096976705483116686290897159107233430792476589182004518619906343509544461187910287467498072014788728077699090946659551641850102488576991413188319358169392568413033319083588399481691691762232876223158147829416770427771327212202221557016568883953390646615527801081368793260743606828426958220977895698748214440602712314636990875166117950442942208227476071397548693130181133743371921557150854086568929632234957439710630777572691785940443198800116901565109915559153842189391884472780516136501048262760985235541104041945029505103755791823763624663036238418359624881555019717482452573487745590935905873414642126231591192766075976977008592700121634571603497669519319606308504791451316201462718635554512903563949262621620661216135939084638605510163757758484587274824560199067438509527247438014765628148405663042959841704568315484396752166576947554691927136264743461882503902586568426417436607995185256819612038028693485850849378416687551639866953152006163513064131002914745641137720744732826321071463885475108372177490238659696335505189512138612974315650370684918325681649490397716948114680205336085712798704979591580765115629159654624929569228782571485241037947252509338385223736323366828910090932927155397373488824158989048425328023301578809205207708885038601634113953408275610027621832340816059776550233065310600743159750167727920813539655030863235598724494936308526599802943639607662740842218804962994286250964431646815409633123266307900076146360405080359492075099473989530887389225664676930249314997182859519732759377531163490824573096190872650484968073225506882577562537405107486446616308476536906014352650446741740102709360798572925377497070333902059298224189484559560422639236455148660355378990872163529596600409238406540229682272299668170281011164210797524037485964977615260798688330516001232371135754211563913924741170887108600987234380722909442887998001720943809975783007188800072848536623218596435633739896750979299650200473594995007284779438405229546359522855108662800255685443629219680988084089720588764373055281526436559243178903248299478384123317013814142405523508645877704489018982451728938131120852914127355633938022612649196488490671227280983985480329420407622760626298926151079352013389428843064428813552820932964079836842076367745123157420463814927816300929608261147368426336686449276733195616902696581039291089499754418330830581573864912765154017064272848012255108376905465652878903954277151599516072344888485608706428706287440172673177159691917285111014004729364126484685643649846666142773915194871996903383978890804796321362431293975173565792327296399893014025163561461178359279024168462136590533113307526152591038531388563837624781792885846013518725814316527725326931637371466059988042102087072157770168961166788597526820300046613072841345212809945277768143790435126041560411439263925022250411823351858903379107517342656042078715832544843187319830561030428786328824575481826695012408449876430259280289467690940460374820423388834785083868005818074919554015112620800853011622438133706556652464413011503167825288941500535416879886157679995672959521504254865739236717106976557944086563557578646574349800028926842860781635019582148385741618709758695643221835639008465354153288386168252052818160180312656432958143210049851373549241359254029388355691807612426555238040068792326979766358309448724449584423933086258361019084218803514636270319037214555862018770384075637599114906261697240198981266065937414099486889190728114630012429094518801072872665916914148790112290751448385243879329671966422899922327016672208229380627403127149661414022962493278354105433692663312090063106476872497333796862046054179871540064656186528346828155860507136697236580741761160325393797386894266326424400864261461786964238889749102346737652723325199065599097676755407483082822197934289592483387593322440806375557316889028150152028252334417329892040567491017802853430918022725892819874043533815440804909784292168076193773133915778107272859993440740697567540515206428658047219982632801776187665683539754254270302477802470665677661603378596479390248066044526165021324994469637567578458920923830695682486730799488897556336473847043193200040880479025150861832342536374086772126658070472647457582670105052063738517925056428637789347694896415236058065841920739607234452739540972468022641455421802492112258256146252925147536261226103989347322438008918778045939669206649588042139086499065799160052114336763288704261266309196723965238632729770410107140512627269272059570167754422586603139545177322546026623649864820280645317210547363720618675018004309157592242645523379643469810261154839108746920310680062304119085558441609986506991915992674824224161518874574499927101769033275845570575137348647077386171854762670059201394377570100854464371494337926387029450808054762997620548434964227558766510966815088713460346620228076691201107046900106705336477614479775237741810989407291896998668318956677931171619676150144509298357049297021229696843618679232642808175025584027851522589110786507317605682754049056860765273658646179091987523003597478768765116232280902786014540404674261412982826839209266555620704349424916523365457201949580347817914326256798781021366983026288596212882730333782640987055164261780397728737199253426339317019546165456853638765914939104053134828697125358032829758595166404688066128657970240697299379159771699591105177447865912123521219569022410498397745581782693927203398839474969873138275611216836230248305843280863688413779565527113232579049368257317611467909472667862089953290613126856786922533011694052681370598717276847497914736225533324289088592319706740838435439931905617909893230869125551584800149428218742268001622839754780046616381367186715109213360807396556017174503360722695839115849891677654940793382793666263480151494983589737871083024829220529713208699522679346991696640183712415231421783411344138442740077183200455867231736554197050828034071936416278110051315990726180242556267986637938341837670777109382821392624496384159446099089322159774659823462810997363369514048631568760067262787379900098656093859877510824152656703307396667272097405252087074114713397982680105274635467699155430314734366154907083130828055586583655313627644500876467987872536622458617876342547019261715694937642510117579661853996493004274400998954803651353767173439180689799217588093915509928205395718090513597273365752573104219226140100995579754902960857577178019455575769348906140010225440945705483762065296595502300697880088174528560977752024221328523588886171490700700012742627306517780106888587379412721194306008980346852721896058621417066607979072417658562816259624560343396227046159235548060909979087992982735082411309415365596471890805024293199185777763999767949137558200675446519821029438598222755650706680485995970810676792397533153778085048649578843431788642632212075499165712678231451561110177297846103893358740556281920784490150784383520751606541380730771828845153321029654021868584569608360181534117358345068339567941428593720115809156112780526345241675542252520024802751085004169058402507961687496008615363039292011707754875246980296417844182311532796904712249520614853224228081965020812148745515841931948598842519414590026746476686295247490712568959049394778455572128273935820360918414265022559673349240297725294807989887107659495843976245079973928384432208529806898929298761943745634398284111393403197909005950641713534391666246277639973471339777401465492464043888993115001257263062642285691233763100054004078272677130294900881010624328806040810322949867543438922318310011126577102050846429257048250938149217375411892261345719112550670002726635710299499656692081324693645941681892961704099076745567251262765704685306241869510550887308643418253478870042151491604191278722007660612892294157177594674406126145436131266670666151214319334805854316244565461494241458027220534687383776097980109456759200679571297741921111955714124082213917061724060410174884142118694580783894170165217340680211616389760573090191124948892403556196703164445740141042072124469281930765606604486417606864494564442145187399453881516839809656221423973752334708642432598613171170510968007123078532359111821960960754075369446154075240469251194629214175268547528215177091378310464459336630672936931562212771332130138789810992181091348933148787143472258985114090483789402289042777894087810562242068692639891140874385546591620323800535204033550487490642655000522298278916411933632934982395047568470047633398589571210895914794452791213136413225727189069151567239352218986742109044147514112467340601540265857989881362469521647616735556303521545683815666172625563309573264185347967154920832656546106228639387626891364908526948232550732341288780710165819937592044434330161437303783075113482631264986816659182714995969639464596906306181728430423534179623074843653611165989245984688541153178652506756183636846380072394568090922953770899917696934953340018059081571025596108860562560927045790063334037120488358506212138317145066582232170523995891576310949019405306994470326094072301301821236163274746161810303319052730251164444266815845299284978097156426707958599902140447515590994814907279430673958537117338567516611693569562799315573346352853062194856554112844121130536178057464363435922058100328709686550363129177281455326972940489757035600125801558215279754700065733495925217308572031554772924957949459712271098526650684762374705618133008722239559065113568178605142553394229691824133794653109460208555112101288957847217968426072170038020826423691687299917384686085133007400563779231816489333468149856002808469068719854391664426132403390001337979485741570435927540034422469252407674044960403990243063262001529873588343851805932336528244387007630813731431619854571040976220247043694184614153753911745580105107805475058356081285562030313153866603734412811472972330197418084108888194703178919413169096427218990599929845651298518205383265184918136840693316873903344061932043508266049460076916354178241469468162827135096519273018865393112812300460130685247801756736816188740804147513569971177653867088311027932326179406887501684179412322508960177306228052452716857930602677246948884040350691648423652440355331372512971166990899952753392034968641253277766597335937838126077375726016308861995468596554136098830478444985969176719855795517904283446396610039143120068377968779242876415146760155954826048022874635992806166752049700416747711793236033050061104152708896438946383216355931879899052732254433085146290862970237185382017896907741937874591184659263447441120371513434556387637961662007451094544798820960370181968978326500019006357473618988648354117802971317030784060561223901612065675361955978902593122909606116808747826369938544196158397476558930926703194749385941282292711229835557154275059287727902207174907482377708565917258126698707137883741152574988670454544006293089145024702232522890317455373326248352314868776125508631517542283828225311011858177682819044540985924279257660638179969476299878534145082671606741873461872125067045275159745660335020326155833773074121636749287965137441791349296521591388993338746902302576029325122886318823289350478717365874719461785817180719934427724613031797349760046106445020226308926718469721228460061299332227258112377961221893843500229093587865104673882207838058006589383036514425042536201712173049509612678823480087493747613909635562919164055482461372345020999633824154943509142390068708989134499405178165073886095098999831724524152788571383459446063245818518401188464730162888108810222318457855080982861110937619796807208389906567630393855072239817713634154079468873166575991119145347311995465031477107754533523111413508621345253531069651860845126340325563295870724800262421120521100631751812350128087744746132113068950435867978088314513386834021401301171973295199283000419395821775561765171486776812610876093907268891594968511699636132726926000786056784692403792843028126224433104203911053289656013072955890834098535752736232306891003616315950578576506802307890881524396443778475621990147628107969424983081042439765493223938860487754296387868755952197513932872785376267415686883408712864832888188662858208795329266210716027136892862736226464740479072532602859200005656882099204824195921842807358577261080840101622507255370537849631355765710230091600501386650087924866137101855452042663429206267052440454256452293885029356083592151312819721758553539125069423422311943951489446172391770927459157100687308869895740653301940127210027275723951099162248204703042334718231958806114964682541680167514496144538828073969167319555329673465685373092727109004328115793564465035882553383883983859494760207670901141141459268969676039991342130880902159979162536645327841658290462795910898572938299414573740857185328133640282263788244774299815828056525757434710543773277540476078581842816812905242472992193257984975743300565469123980800526966730495595923547262606927692027493771417768840276893636944156120815863693608350055763797431897080076470016171923754425252960825976710972293994177948894613809201910167331729524646265335026158227623754221362418387769557916443804197708082350111636730049576056842944422335705157156204727207820973543174103492573781958446725355437756748159885470689178751323690415232470992413037389037590832323108423193079101708229178923995380800031620001586416623129116131622842385587405317562787321541211824343388307130233767168832380438795240624022781927409345080270800085585423216616814720603424768423201581173417908546509807474598002284610840111374902566782677069199285912046954764486335210562646318324305091858267863232719579048861237029571333529765518758267553989734989345924216395395409163750585185988162144216199089170056036151462458767620450883521756189061734415768929280977221160909062968659350344758945687105679036274731797859530290955678952275617770933487235535931352896923418246885125351723740740865159849471315265306937513330099564567896237125345834236774732471701230574210474710391995678267101791715942648896455888667419334138616392412051756312076739173835553202934553603841807947623503038842176044634635175775584816032948642023844899474911302007447334277911764759496718001976845056098066509493602610079061259523304788734328172545279036622827135528474299184494833321188128056459858231321991984420836510893069625249009528750736841007904444002905772554981105692411626243939633183625371104257214321815683268388885663516305432207644242107458797772710314031697533886233280591872452976358956628269609670517869305368210932522566902616632231030019493974495221295737847601867468341284210660144018735338994510972274691826915449891025412224680011584522656260047817090412487800441214861877734195776091903410062409985601375398430354581787544587097972329908800971396581793586311436307664665382946575169479499926977600776385857475953070041940514176905361466234561603616803716853032212225602747818586755594355391473921320222655077004302347121731431498479722625171316099417302927423508772655718756311110911867895421048568972202850250703957927629980404462610291293800946541706918013133586746893534265801351350398566925334839357804612111444546132836963631440430716660096775921433472470898080532079346995129194989980461445847130721702744471074470024425793247188554149652225233258297073849235333004487087824184344128615689394688889913621627513554478818767319910358619421115586442820776576624486660728812644337137944541968181637913063974574815605862207099511674882494112031784110018616598722828010583799486403244265099051824469211443878496767379903608099507437633869099915389329217824123881018313723205336694329451044222220461909262017919605335062562817646940050678853961959447039152524140428686908916232488732634074924458017419569388810276779575796644897933861542805420653846092142259070031723001337133191776220803705231785680438244525316479339895229503773430692312918162263668079630408924238955958681964652849048209009513091882511527138596650087783920016918256142392882940064563480819808031227474357922618879446990301449736990619694859121383016424239007216352110453780459527712519470919879700428782761640612554544335018594599960218786689817007894741732039267808098201741070082687633487371222897781454667047468402610056629119094163651312439899801789994847602141461080251472527067851941390362030519929003644525947657425093261598053786010057808634809683572364609677602635807428722341789267709070472407216831680820084110105283901586830483439113620538938171749547822519785722986421786018194095456494428458649370305126171234281630087533336014481648988537081654163454217025750116690984163637302402716350341317443064706478002161388532789866252628641876413603160668975028697492661402281666077324584062699838024965969406370111856414650522116144161545079798927232852849646782872660251248810845173860095079598764294422627464955312874356509805845626244469680773750183163552649208348713807271342102404543133248265816608304344814899389558754627649820110191842305887672467374389360873586693346988419452279589343916680481299941600385839149686593219928205528605381076297604799321728490871281280839550900690845851485404352796045980387086844678872605581596564660427419942394047533203835540132799673752474140719492735538649081962160385326272853202841325503625621184565760093393397467531273209796105578474477133093747517517437484109335302351646744901009582861774855532857835725158328480436918607340027325317750531854136586666253275326035827970204048274132856896590793302383039842055915311756542452871750636812340212390659335577118883463017427693755919551052681286081852466424591158574616301913359032566439793319278840059405186103067088668513451561042532748126646694601525335831209436372391400786142465586753069915020401906012245752676355164784873314105215310394889500552450863288722883467282614848916363404419532342847242381210936323947154202160778758633381531244881904151154887239028363670746953875512595895941910926763152037888547476611592968621617754077539944022301386468444949806744843312290962720793007700696223684729192238896843642541577082683648489786413772055932903744380531421085172248444330035400870486631642561169809687524687208078818803106853513633107559865848634491399629252691853233141774648106427298193239388507930041439602780959104315465038276704628820740049640098344282626826585563033463043793617911800532685864958194994896512837228084528557223813214165903571178136546061780750694210756417211613094396101017047236841339992260853102575334071794650151175141347894419933766827416432050888362855819656695797599620025002286301246612691636082040379934212917249047503256300426313570126633359782961358082211638022211414632335405661880792710144393856791235998565750606182771236126741286673775721394947126816909077014926317676065243592784092464413299672769011609194280614974004907320787892693550509031076560926762111109093076446361103535087434254213485108133109471368954354406785308927677984629583654044918208331987495853080439519718442622313448727353199819596636291338156448263095710332866126788622816338589165544873155406163432331776221415339677134948325021813719371044211970478919767782138682144849948371625769497562594415773689991018361268346737401468658148808551541278415304600150279781937766679075894384146581835339041378473266509673593023130940777131713140344397923119281500680129213984741814033881987010175560110288575845281509016437625356963256185967167926660459422425239868343319532786528378022388597746014263968038761419445126600544528294261026437417824650069186919725867861928430039797857009211387452147970968992960554198494962130562089649188404000123896029148680760230362426175869634983446308488438579033669463401266264509477828040533905823016559004369682423457102589126250589047409501054453837530684350285940914453002577120674221158812339372711568223632648176475703800743955722124589821503675170631986696007307833424356786027725599116481119992253752965055053130590405705853995799410754967790770202602598127172764686774762575483998046714415359878754653193069109496111601161480312683214239199452326320154982251217062721575606007279952982683138336362922327220283824510841448987335560112162000447476779728882725261747479102166094449591467893458476973654936413461736831167885573740682691840369266787415732620848403024246148690769320611723021840855386043281576052737671006368482791768115222538810635191902774085874019522201982988869227791721561346136379759624520001706686606382361707523426532909591399852761825650244625711531512675045715350546481729442307308095796409628032649244663754706876159864328201878006930241912220840306370072109635642635324875838925703087751132203697111613337675210771839827228458606100104757170312895675383614723236507382899336678349406411190174214553949619904317043705196063354204459359019852488100950413795738744076093311934595918382716711713870138364284878872680159541029097384611022151291752865086351697654123157112498188323635141699679659956907129158362704135718207939592900348765088691713348541293398682270228247545912603338205926240117749847380481284527934241323863651063280382093511296552738329873916153879242213491053518797452087647857753995524079433743370879065650558598435778630876367379173322102918935175074592974411832540361075861338259427820296747302277550754426566887053237392668194076945289043368747976416716048833181143969116210912041809698905320311802667124000150895464681939194262783303526590975854589208083095660034114011245497607240738725380968088647895401687138325843028372820208495378081228582603293219228403040591486130331446234173856962131317032611913027462377700359541627987451195915661879739000833052178067738795645961294087562355786737113565025762603560818386515654186384844038510064982195945969830952292886767058151175111742711960459969112239263881223165938811476214504460875363303318445841642731525169146554718246517369064695018402125328286371669646306160722584691523533237891731279181600618117821683072964183415060073039529923018194241941394322661392379095119005265629028811972744082170000338957148744619046547770248697189279470918939518089399481529570920520806685967102417240257436528858453284215743237830666247932153613033341862427114155153274923314674139765355367678866993720129486188909320393622542423899731830553252142844185475477700681215973625032176760684899946413182694185276499246189289555847227903142624111578684290185710689281844575920347550843499295326909036688090708246781263337184257918073143710535144435696755899523924497461342488809634806485468425337634242465394050403384695148939929737171521676203254157974816390755759475552386947450300187116118937632446955885767477193352960626034316637770934843038120448152039589105335321547587902723791791115109574783524958689306455014904443399479309644284770370207890953510665303749962696827768969897081596836146563927485828446771228428853496048938978529536531952593608160202845770446297516029381502337509084189005886506961931445238707754045120567600295537671447927701410346432392170017209929644180405034210265680419164770911778363575585586535156974580484843408789132085732746308071956997275806833356102823454774843045886634143450935516267729480842531973765764768519500754659076763375461464565959827577790278258283479718054923504402423983968485667516498776271816946363098350310848702276484756510620665067862809735258514843899628712556352522583341711417282391003938567740136460086796695502471400873693543399891558410607255962794534343934693612149945896655083930003570286575710180139504304250341195953278137638713551581937638385805957638922680359717047547224014786948148275872902099283742526908227220603131609433079382018095288315921127590962295726458153662548376169492332525210902210143996343764007865053558131059914574820348022879267075000607624326041764435947717693685515151254226823694270006719232592147524133049488263551157886735601849376182398114429891081767445235116963162214450408830080159502866044061199339920411525775713594844463600069098061447104694768991096361135530156905387175858377679641451515669600282306815540763590094354067303527112879145068997611232909767712124453303138722038045073243902980644656660458319507957493836967269214646945966593394654224564540815805711353745856523836899326284431898208119648319816298147155826961411098651330871163272905674727286098272335441836174881891490818747543961206015817442217585326676434549568521934214449440743854917006768460046818247171199331004774030439950215464412396378167611100532924553038368572836912539753873726050661650844562710605445616008097642877664575946582112770469185091223014059888061058957696399972650139640117217772103037929744544790761002960534211863086562478517948286667545983344358523359098798900661092953740774481298562656368140933349281752993955379895878734708707376775678823508363081575350123703464389369204567714045009664696629449830465963697321252156917657088343022083314991034819689184686385647714773654871899054280444887198890407926119716124799980448059947951464828262543946965877673725138991437126868353051282337602781725535058716751142183504788124872490351529492096910065644654261811436282395684178789090492901653447002660279796282493871139314963874845317339250878512419030011415631705400933320994647856028213337680601248760676051274502434607262505731763318806517457901879298134583635519396456286980788874078315458912568457626026196402055753209369038458048505298825310383562856345921182272904371246732123617876930954124101421300897674464891410897309352010764369051885382469560485224037968746663540133528609249336959043549391398961049427236923833921224154752397986270444869880248050716678257878659867531625935290182684669344342323438723615709191994431987163305046127823459964213192128601312411832607044392027151911056944170692591570982134812298208836775118943347654224113304257246346414637383041614825383300463844505286346184955209422576829535338584054877021962608432499598354408351184488696379954650942705655815556147858667661461614254397074391538923371494920797052379205908087378589614389657450820486080280867273847449633700776760328188739064075873029242061865964047422124911370906023519136142643863121326398362575461057422176229999531498573004741268069304284854346262806948405669205817774206482752640630409387339531743515529364091461327705210681273368869160875721267529032685267177037590707393599238578596840436407072624038404325548157452909761126881578565713094035077292401019674134414223637871451416904078167940414323257677875842139169329224845840539557361881998933382267604666055651405649308911421903628459574024967435224793773800690271137454834610869309638489755104514014267073594584801553990245746547090491822264332444724385528250039492751351480731756274750838906164103484143647780733744542498893671665884403513934287828054079750748319603016377805244164000500789492053008063949358068691394818304068898950987704324177254499778362344691267499222764903576655893249684712298705319710093160478250842360028836748151092516920626473002713577893026252478285749904407870426786366358780010003658968405356986727693138058817433044228643544914064310371175240334915101039554980164101995954733855701475931500334166233690014004975104032743090182444553184134347607884618853947749710751913427574318352967379432402608505228487243442729790074024216454000840510641354677688140755749310406227219540966104595984455313103786021429470398606301218624683222542649560185027360385428269552620738503538078992482449561689593228482478904335045088843025907436223255078422746801602668500589201894382102296905123137536109522535334900220955564719798648176506977374140588768369885202651315793076498922889216494277683969406458946444133220405843140000941893188664767690065580114143575464937986087560886798890433336542866766576023446509532497779127455732611853999518199915104501352038822959757634425238348463345769076260636702428794928124822399335977717443330718792181294577810165392550363260727213785294053498683663139759609721191467293411726469166353363768996613965842351145925562831184058995543397928832811063465920273970172100673789504788115911507853874819137081641935750888677713173290305942864705280936577376670745607328828563618583516596822487140478230143568705882764946814078100097262735140172438463668427367534190849198287563830689460115937955298041934695039579072265324379646159971918573398151553336505194860763842619792358331004848547299682085262559008688607172293822099999429937270691215089903453136572332670979435761405592472680823212568876460019651134647187707489496376934790819655245534002938801258373295491648304675713326799309647338810330694817984547383459571514575716566411715745549742266694382767492480359708828744060771979431845998231380616059457071209846278272844699672891578370256216341217084584234650127551998428499004310635402792893736508111870810860587896719701352733029900992742523050122643162828324664850301066626242869425043543910076496938892750704137252099204982341550128250908138130129392367535522518154508719729899024172738394685060873112484423742771812223457636878924514221068064614532385551819754725088637351237651094610310324698327959223637625339207216491332510177006545899534283720462505875677770407091215419508227789754092569116589165119409200209116481995777166241332646098361576479432458669919448213811214197559430125287795068838064001372764690376548454164497450257950320467069678696711915720687159108133926179716415058280412424737467341143982617433946240912767473075625220830393726868230944725280437307048867601648875357899182538023008879252829271724471689114804795739174685778644309660438554176702284127567740113500487554147701323881249019820301923615589939323534179354994358647725303080348359338886423779201484673674390320706769124970159364339946904976678046579892959795034414249922494074075954523137128771445902188401396547016987474933716834789951908153062943412258741339692906476358783866847817516710194026746235528764995916946728590272253067500954600254891465332092086763564628777222678029504504784132177420588575135826641384437858820678930618890267352270395742100387591572244688529543935159956990847997403363879465605648621183615636855942223797842524827650623335330645141408416025081031877969875825284502285481672457836375126635809700350500184304994822575761251607922277866582714942962167512684112666655304674571079278240483767218033270255928231489471605805738839993848325893104912172332823475641902658776271604860899356080282999551247716863437999375618736449612159746849484864657633054070612380012840915551664863240236961941019918598365322799611892261629919523117689287707929277223974277108079807091968358907839959182036589836958778995275030418868961527155926485708547428734585991807473030818330420577737651305111350950407857388980894438687761036109145085903975951591758890376797555014602175141483982278997729155971640300329427884150493809591033911120605225159028914945569550344721137912595470401028250530847783961462887169955815020580646691733872344295362514332400285844289572036258119581545415342375331807741674485729144966506528221935046772040626009637053822972064447146311557700195187087710051005260653809124369406921282277746905795105036235249651997548741607791021074818740017785510096734907037526593718333371646260683782447273212532748769484674175321828161707235059199791196039155074069313292575129171412808419657764144301258130457343003142057789060808256830775406696771686213890314440916161438629547436432139124972942933090451401458255977118754832397558793820841865632351991427989628678277823932643362807708093611233260485739211926350805170990693230057845238065011056345051817200649896152620060424915153958004551154680229314535360540977850406610657420023273045878147793341490901303974205553839136018930382546272911829069500493514088701011945524907254006864256380389772253507972556704239720821277803530724625011291697824917489472764544201209434573296523408284684152683172440257158684230981170598592808948141241241770595245241050178054894572082539402695752773717563577947859603505098798459525469701630844869058806743528965014686677571536900885726462215034157020099237509043587125587380005623304099952454542478392180107938206619715541301361843856067633025848874943644918531024899628330728631413585686753999116027942986901485893835218099934531056259301348838713990874308789780669684310381636105268469857450930975246939938355765224354388689332173721721807909268951501382209259009470804579174224921888818303163813858621748536557484209617154357093874320914377038646335482845612307117472482780544767331914889868163038078047491878186681318628672370908113980412426813377367973176522804798074505749553720274516074411971708597033788489385844675720176531026770528607527471522583551805371634998528497804892909948015516585700443319334485924897090551037628097881536434839247301341514827687394373012275900543146113540376395154485719695442141954905425679027132875987005511570988886860099203049303146185300864431125427018626869147514738923025376348124428341302514989137208785037261691051669504213845410495772173451767399909286304775537600917037677502224396555190499319215122849437325630466521168236979428014866868625570800425641039356377943306609529170024009951007782141965015440236985871109854557310159260058545962278395364464001664345583602552624425807145292591281488013925364194194790553547236579870522514638340888559013731020152780882455826184262943508110927557752504064338261112163359854079141925612611028339323552369282891344260091695705687607891384438016834778291263730036351287892956990453839799743949555181913413872700895693150179983846325134842452973005404687642707770201980802641095823064651671708921132417998806992413897267121792152240053281373820536211276558300183767499384960590723040776779656666129377915152888853327714768679954294524325049014433400788476327757089041190807441426832414155820905069656403788090048249828805959355965193348242282998569081878118055918656694070098061696392714937890646754865581939564511870144142844755463862225632701520544783615363263786321235967690704147153739439085643025782843850180442104396284165133881163653794648819576672705837766231697876793731045635031077296013097667279529482846782338639993153078453052145787966721679778552241340169798170490969530102612979598677956468647678965229159420441831540075414325943183250246367045704824077261989694322850096907336668968576216649945687479031643334958237133566398359097819103800247058651817178889731611511827192269391344652680530390709873549697225083288820770565822408391887754253209582371358775529617092617457176482335170611340698242208809026910172412868531138125524787805588685132611376975237088307448282608621081749358697047323812626041206758715136198080749696326728187672676024589020457032883106828469325078652811157802199888188071619433277017833414575096672309350839900178287695525377049154304747187876051457529593875626590708735921124148750515675028400790625502055751594565163794213119625089785371261219799461284600061713563932101309021236957448231113351460637821566491754483657982407932090832541986469717353231711002887692079418520260947528456886800756170229195488472417548442578267202909039541149931692593836855075921017234283246330164792649634488798875721481542986324971747624648335311438535631412396546993497284753229264952600847064969925592351943152379291783652820630820887803806548330605354044822947327445944357767567122981168117630848630456877549197151438533718156852748597882121860267452013319446092490210546434421118409389552556721767746699704734692134628303330468878115223258427074653267992434684378201818331856107124413637878155556035226863392007529344612896680193679815782549694695656483764578748870624640826490968378877359254284043149860788275820401545875148929199459158164393930036736012888007732994356348331559153204508607317997845844942088958374597630539009718689580833898133633472215192460216102275459747409065217900549180389453331884728831922782583748848018704385231706936478935522795381009480907087321618649116634141122589946817794435249532349682288364692264226389937145164217030701997711618534749375422791953089953037428064785226438445998471282909926774606735965056758125808918093061592875740825480028643097129606258432730440535887535665571571804942864566854447095232647855665222364416760571314984850874752350643456392576930744358132305104856629802551851371268076028723623950485207478750797563745000708831558732333938863775442672852366661436228249559885713399267160907711344481451834363926180093607446152638616498888211870009963066966730379509654973334640681400973403150189413827085328685299227648325760568526117913187836067882121433510302733727785599782266509406928967039795900666461712054436767058626435483948920709093699974042806584265432599040028033172148107852588421327355015308537260088487432146437707818373098551255395537193781937976396473842162268192498273994788658356440443206474310594749732869140977512839962815380033841033953406544852281378847977153214985097870934355311848637052230457595919560125087889149059485224771825011878517994741557757290042714137429802491688101258156778763748382266717927208846204373473920429952584398112785895039555501373545547208339044757965731469914860378732143896645173778700080184356450491712708287284616845843197351356089513500692794287103400045455571686142511403813877617705187396014352741524651838018199359770494100623241766134544523447380116413653715195054889099680492167899292529435544787573538736442048139146902783765702569055907800058889617577870830327495973915816988085987288353093244164654738084486607105468071309756762935544035276782278908146980931044727473318761191322117206215502528896238499780451296691585266598096684730332582461203629666463626725000052701955232208597876172137072419148836431427206974328439652246763086236005087864646905065112331545096745760492794221454949470266831735933527179037124968934408263274269417063318344024514042974189817938670321227326262077001099664840400382647564015915929717032813593607966510369593286219866281612319542044299589284231222793592895480271480419339689456515778173486906236445267045115568314402229024579623617268473005860710835652070667293970220989004711202238781883798180328406093018660121731299347658813421563732218160978012245906645138840321892015363754639914680399475974504484046237095450345088248437733417818352540498787298279776788314705125738727229298002543225762345279106977848573679154882310387177735797091254689685301937725220980093174760933108192373958517836505078950873879958752918711081094921126873524578645830946578238221481745942111375405392725315217755117546897690591581392041767088680765875025526999624878612944744652970521151170348836512501706074973388239153873608629854844476836286643263570110393903353332191205395030010035033493568935930005324511558911836298918221105245006628547360777270439151840224168775925736375736686590364070209943053003747994586580042400681077048206475110137534306902899642331605237101005805347496113253272326152599479403521217762852851445083487499765911636136326457059073162002946401792010367942285932465749909124498889483320465265126902201634297436834474912969722352904318538568625317819056027891302607045780934624362020885912595875335961564651606449874133237556377111486497730381262261813066428295763913308666398722352845584993391650184650592098925199208892729015882718821470623779726493759419668488310198330146612031939343843226896301850547117289597766456277833224536752495814333464662750587658981944484989957671253015674565285861299318520041714551222709246573502339517960380299604994644133961767153940070870937379957044777023011278992215370816311696513209055668574459556409033496347299475081540112032454960145976279178293822971496219781581643621903405471997140448197681250776264789882988557754277939730134177840195801310391744227536245324808666436326877912881587816419348650832450492313758839783242083679900776541729364473525052097441332066191545514304406147834298326641004882737325478235388917211615372728294055269702950477616943559070090073922497556766398311396567773045491621155353440464354185042403526639715560597806648232323946255180548312030577877127673950508846626449202948406878606865442539478695601655956352337432145551441277580465958480048271482994376430907223896392638683350557705662300034315154298715885916797721674526555591608679552192395852344569040265796010098687281370971846684242978451520569849991501603365036060106200335049603779319692254752386880420380834181028387226536884470364197921559957836792656085815760388970093413974653879495202043253631093694679147131962934260399140271962153960030501725874041891514033162113058512358062645927647634795304870998873590843665674592239115723003055401985073348208907041719053871362170744348475617946312486533533037764688622185947574896903600850616983978427539085707024406183073347883401139826118167034209327671913847113778716647171140048408183295582712620072734511150164385798038083327021626338316841505590302463738652215199671243119624299759243299750771947222054710064832371604882637467763489434148760603994584067135443381156742058277982304092137394588110920084844713665475716979686091000472978491012344173143443880299169242705297257266700942278875715619275023338523454553902629827201261492643270853516029987951305233689665797907035424756551143701365007277493568745769643910000874429883381609411319241560297162553391059254069523771123297974742509868267805254876803092670033077138838810462965015290140510932841077373941084440988897812606842111639884226561365518924114154871228650716157041815674859095378915319965598775846309802662294938540687363013901719483767979161067377137230490169842161548681567113670859170300664622489995401305307342501025730318707403202537977275626375550590962849020713310455296229998150618198049518917690615502770015784938953634301183025044794186146658104838562346030300194804447084743909530606147109151800182223318879879869232289098624851499705099555066369821941547827688450157286852871096573418944586733080394374627327300617953165609190058387104148123743414640079121922492098279897041354755875951657219106577182451008395240024311882910018243867473721699150804024832254216258244949360911930531778406673025444383990782800586048305571349005506034537453481278657580112769319135472096336511778551182750476061308782715394805406191259413108038308984569543959512121728193294267038103030277976593544744499762384461957460716405017895297444394712146671473472478613383104257543438493506117899054907356957538629607542624179573298119613011953883488868341699973389784465613756839083936158513035639437572108068342540256626410943298945321664634127870113023137784406259394908557967444649130943525927253088733150198838674188372164033760096974606803562524301757672693314925594669213605536118468006908047355174773916157622015640525751424665318347609468684278460161082556374689586220472123909283140214367562451294803020507504416421297020116598370858876799580046845252478383968625489893100043535431040081631600458060783171208915223354948838880708859856452380913062453763814476935601791272674525400534058985524368150754571510647637169220059817187854507578055923158127004213364259882819619660266449711013703364538534447160226260187326434089317040107241492145578577376930878066176933676306927386629132565499899383704455695715258348925703974804216089881288004685819975317261442134901158250477408661847472496895939892708247865495769873329318165051240019092683360972170906284085643575550930942041412012970106913213119076675528823130547712144872570998743495065540298638283660343765610760498924347326612584465375026502286047966757580113304289978884692872476648721655327865011943349475839634006203147491296316932117126394682561807626567417779306421214247396753726972763272039498809351161141189213483284836737802872216538578048598127317565351324992954112407036648665262602684494952377335329798568568740106041751788017064056295054905213223911936057160258354687468066613026914689779694346642126304556704239315852107391807528258968307845677778011681001243516470472654937947099727087375513570253765092234040844660618166287547057591788957883264308888426169397965455072375634289556131013953125190074042808452228006687856433792201815745318670025313977262434697260642762875929675311208461000252596089907223478582536940347411372271597515920633908218734666211905269634619814904227480404987447677961082060211400862069410335255787994811008224981102064319258439600590041261214598085411626927837317506992869118521201128755563174653189945841208625926767503185140109048745002457160288617884719726757706030155552220201806231085321336982726305954089356438112973892594576355318191413315014708645682053456926056836052378774660073240339379106632564569312289426332326405282889976692250969720823335025856480126714213224546810887059627283541804830464783611867338152905551700701422196817750375478164857762228901811099873329408213956453416722422084750072954434315474057875803245192799106825279131477646202419604429195346277290351995700181474588500406366017290702662367458689556732337538895944421190243070360659209380920748754723611892839297460709617888792008259878635707578240857195763395396711300838579771702966616016366786681173034581789588403131842215260865441852018516205377872345301996051490962898957065596364168733077650613524148142343383823431904025630367196985101182565465519662459719378519766900071909178442878194981224835496177727601038171464372555412601176715846307372411370279326140946291011986607104173908409415724144767409142401275212733822295638397696191519563161981577204094963376566290716486288949717603778555238113358590223397830601176253422043459455369898587454035823551994233381435467897857343891761527810821974483040149200561779629938100120505061444640111752969026836015353419788469251358379763675659883883791163423702182867836657710581229628857901901916330480771571939651116350704511860470782148316773769850548750154377241098473150573977504665450568844963444694362485383167571900372456463641380391408451201131506159746523038133313140258686899172278551915006425216034472281380810842037418216403980865257626412712609732006924095148864474749927397564852920645060685220710228975701612009193721394516749129711392484903196826338492299023081426347233613185588769385762606447092330474913606788306851587716884284360442944918779666263889157716249568863874445346408697639696683411947519210880074327909209439244891866390229489996435277297336732103233499006844430668261797639128321351330405080771718756408006207359065073824407067140471754818875384395298007243502495943134812608251008988875970224265322993073183282370613468604756892054976278881765133887053554199060711721770360521017627259369310254074945967647335735196811004294560847937855386849822712503046630604457120798841773068071307375101341843148954648953964230581102826035833833415484870240136817158892114170447985506705528171430227670491936865860157780589380585230521990651030663171094481690883473847953281847369849094379717959621731749353583003440099046040945995240973510957308224973008444167553168135725701928308461889198731332519793150282908034467316668932241311136444661136356201492732530086006535080510227188049596568193521346951131949310355391365068290914673515221273512964559284088648309991525483446671566866834724355112930344002090751997962969589694919557003117652328437378973539316085012109335365271760358577947538315463466521731323734841927443033378869603088670308268761628011489530792465534793688238032215622503807174561851505183532255457184733122126500239255126083545192798447605579211929085607965894197982118482355094087319654190417254874857147290521064536755547639948088964987073476301890613763456328462600206033082969918711659098396773418587560519735514507090664769940174312982877081544784958784580212083842922431298955393244689594793181934309606056950896740647670402868801446755895944654665125156749766873737968006274472790973742342670217104533364232596982930507861825762281277218039474775987327499872086938490104672981406005455370629091820626501265934551847570653640108414149665836634376176217490972390483299483617807755857067607805927082732170281893277450107491436435974552158334107063998259469265045647330758815545627879977774025099682409769717099435123680470755860151750393706219144056957502650843940428384704722452240310181248427154877109705494622449805577478335547234950469441081546312000685730628625662542306364326628135423458964493540880683687137366987497722820465535334003130379698500775760622960942547706263580639914408800791936752468955576396518545797798637180302124147782877976226250672495297948175170706664466743274912381868630311381935025746230558950567322652753509559133891467850580284181141681773689417348291940148877053449911642120750397035428275780604477757901741947654775869929806959957277113454459782315567015974627641068395708144871596417446273967789917248968113476143265140607337812310754701855602627981722194098451597251809438996664354320404651963270529134540433571447250527308586369919489314430198254356582841405249127389176684206905055674015186993110958946449478155110196161042918152991192244158521560964873998071996957398868390570711581697210271631215001222910674367076303254031588941180806362426633837405523323005545631658231463199540621634079409305830598686723294507964829623899336951980844905731210579330474774537976753937783338703789215340113755842545457950759722540322119086569852874450782535308211738967841598199027695188317114527096923170611791698641930518781353134532685619197483809482879127077671414283553070233600479842066026583569111970895226403960262700851078594631682251830742834717966876620269450353056842962382584192947451818113360421178494054213093079157541657384945043229096488414556773009174517810807091552994985038716746452928321895965030765960744576317547390169237076832919471398404317220022574084814539824573715126729671332992322613037034011005090542982807281974498568818136687782482556346588877634520065950888510948665178939162503593313563419737565418602690376776759706346762404887850046730134734227644650421337521718112127539063428259746400469934785160361566397166208066972646668574583871429148542645625043639942027359780585967699153716520040379537008151588169218501612565157988298599472845774580401997477292265856035710518005891297356479533279829614169350796474056637448385832333430110956728128695835329964966487676487615920637814116983409629652919915348144424099627891553761867203236406633506625018236826346572206736367015124015218238535588350232669050536139687631821285315932932049447752659050760505401127132211779751029858630795896462625400529800433593730668773103766706698748428122189839629119184254693631996212681238669268010262886968502459637573610198377449045515344340331979156606766816472939465866511652285670729207084509532556449725007555586846494174517145407839595850458022439794454171095925122512148762031675718233054021430595018596938885264316980974785698865516893918941837804976436492420648885261577255273291256157835547253860556000007365695225532219058116936335463944996037369106678749859531886890427896291153114638141210931755782563898332151921415431151992218770042328774809647613039143692625023232443902920195102304437547732939762823159983383603990412314053889890969714866698097564808446865955774627141704122949799146778908443025205369816981601558559820907750734117765577828687730162781687404307970362357992047528291692267079440280658208252327287251423780154238542994857055563731349682812121856944273990594775358613929727029213413965830755096932553706190379627282652965511657297998251183816162861553927505616973587438897176336546319943082655013596012390596683910840680413250951263435922143210917508921237148585302791054046006760362714989855448847764784976613156287043202722881922655395608891963441755833460643004074683068996899154964404355362027483759874865617403069468937187792120442320672957994435087248388345061524239079946561442467546118029737941769624542463245650726254740620435684158911239943761422108959015601530092817886497902667142506121043591434932783622639173950895295650781781068670300768990919674321647310384749786245901679575349349182344069735224464492597230772418266534913466767052979870315131968341991253711656796528165191417947862884013725575368037314838944162001821002011723259013617075375973552320306754437735233939813769258315260591557401029748201797881051521401874431373081896219942102871045931183350981623591398973173604670385767936198704808300005730398859996245708239047054225367874552140802552754304864873032582064893488231440919782289786787404095955010108293537329009943977503050450434313479632284446119818010006778952739224684758900639863900247864482284349930352725325810352018847417413228792046255486795685808942059671292938427309926243973330549474971145641001034342221875040814609607574619968797521233020836848705308226208145952287217159766515027254085283374820281281722942847983468094038764087888140442416630336449132970726550522788966908070626314555963581729603341185392004847522009626046820196567231459363325063871116080207099641619197540501786028993056252832399076467981520198446899251901745367001879803546071424902197463295097396402907135229724027130394850179032560308733351841434810825200663640075169401654864853383372200809129273764048933885309603129360271097656278866366691446564272678133354797659521679275747869266445483070602279725552649765418982058195961806067002195559928915539335199723279710561354602544446466755594993235601012970282542355848335223579042088032807670427134848694925257859030393657175468414968642938233189514243066515681521088883834123498606799343816349820578580509854323264247330174357695471555149502571309432279951930069309369376147987760285486138334615396591292946568924004411186602968230177013250612051877103262270492662328144588663595332214117102437485133235248736714361579407593310545064998807012480682547629437290810816961218883601247174854816273579677770322156785177020535156593395263721803180741197269313017782946773981486790519775915097878694599907240276444573850447198294065984226347783005990121420719557572809785421996132240802039727391024934015284884432602245295538827363564944989454412720356550009201986565846529751479797511440945999207949449475932231374263812470132979889966413337975077128662950297005911938855037457039860929055296053632033691456435813124601027360078849776091664685982545201299224990130767460931827880405539132435482478851998251951241470001720845486827181610096535977139083956481418012602548469576384387471402403698325286945583608937276117551379316683353893360846576476706744736945757473618645515867651154874312339190735648870764347918907542767085370441208063274915466549756915987081946597578181633374667036041477552279089109803961724523666493416173726803663380089432695289686050108058735570669779987889875015984488821693798696133022604289797161398537719479991139022816876857628575087315027945098608402873299749154924933836493981291755022086846423864192168149577050882518521832505925258091163692812948431170669571342589647832182988387951022401576244615418573787911337196086714294195712099856044323896924814412394276439694231990452096497948638848650740695439536294133570755543083334641732700642403677381259856299612102869321554040673035011926033941551312058880226329166840689591125594270993184184289479498340035692864174939360680066774971540285148447533799686358077932189055122390680682023773561653350669493148908680318973533009962830598234858743530158759061584111930364432866314849717404255032784071823989126048929135629319625412480472488539494583825145292562706236861182187192629358084998622317825185218689947832256695620430815120046520460962956815916685968408032045128974622776166832128234938942808809675011647115776361078276937695525574791170890099120109154370836449894841695507148804862836526895969381638042895967904463732055383826374013080402689979609944886815846728425372503405441013323052058711384540192866308806548639833881488156980274569137146366035190492445652415529510338979926816930513416469509830922847398912601784646535495045264438913227357885153035082675318896247102758434715583368746705228336507636563328081325812585948010802348943374592123411958749149659189830134307409151060281927790448689582256244313914540217782438228875968183133103466261011956473399697690125272357058975625401039426762533354921152041998847972507614925793421570634842215882684134447088314468933260083549546110830197618747992953820686997215743665335236551809528504179674348716739151023252358577747030931834533221580014616298258085658824899898944103232775827814757520560154219200082390590560584978500540539787788315435326152310247207682108650465237344048481119723301599757021570232609296657419948943006242373469336594126437695430893663207748960481258760935280782755175241846386123985069180331578201527894674796327918569979672768119448442144930996838377457463952328140592160278425487123971434712085214717995150209588048453817683184795731735934929593559646930958760904286612905409716501209508636952953856151564601411217739963030288319050519772177405094180930658517891587529336074500371565547029017949811592145188755676978330764542729129447555100523026242896341751493853978168686813811611687091138053083485714383016981064153446833039545013559191438749701714665646585473509112049807888483761349268977471314577488269094392050948174439877611293417753983581511630450086267179975220788378544027371864894420070429387615265971047038504998246404734372569149789986777764299129843121431006122095478479138766577708591293838076498355712847953562045017332690949490384405321244997866029422529781575120130060567892558788387083621071843216625361037667117622748838116855493534219463543474258534683756852843478287699058599327430782842451505066833407883499440992857881069156727577006140816277473588623710533281531906890455614375065272597686541676875420008251469301017891204395079938490247458955113588975902460532455282590839734156436500118725183589187162683908135322990728276819652764394387679990560647510112511715046320686856499682019517397558235414390259326937891793536150934728807691136443427158412190380299548513012278314262324640950681264969120106297341218455861428987231888110585046105858630955370320853178357912714118377052335824812561104989281158905305559693542281510807818844374067638081833723154014294073822080722111054896809697860572391183099118969495540318646513346381252423186302599802182095016854123036342464332454804783506462738070703074262208479113671699677250072256020727972131524455077524384997813014611651782998616263271523753337106408209435720793222382486355776739359119254103970387848266993295906040002926773013385831234025261415169538328838797421360756775406336740021047818586514266911726717624337343931259475917331404498851866964194856175433421556142103905694766289845321453703254104494936860063842975856895323794888820051604704540929541632304640183032137483393513951816948237431497083562216100351269985256308458854081799817376371636854294475814222505066289697613130277558101541962373910004307396552110350983532148035269538593741385038460554515291681212123311975052620210881120128939838646736690093858735631894699581343900538469879869840904297045461231024184705057227346592400384186911627600478707235229300333537416823829266027129723822925114002090690883552147880378458349445301586552829069527783309945969850941937081606345435851390207047065399611962288906792777542495167567865826591121025647010285183064131997427765160498506172028644099710850275225005557834644522377143580487319644499118159017026094230533416107293820363780891691837915212813453631656720798717747313217977020575311889472525528890638642202319121689869490139194720234178653935341725121212831002014869013907448423467150488834979723151205786659776733706306907199597078096121367422871640341263495320274823768460800116098594761248009765501162848165654221243975821780702144020678599678552182115745970584053220418116480799869344301743828286419709641564617365849080745800425130976810777709997114942927085479393923273419891047404543506763004476579414570213073328888186127737879893218600881707036595163963016603165639290117318024221416978962525638594647500914975720119346965359098961118281630690614700452150495667841051401381232001624577008692754316152302829530523386828224490070180164239787030724391049672753593892982629856115307084363075703827454914614897290232414194860611934227592771502429849336193143437020151587542936732130741832326810172796207297902985056048037674517678872099471393424870792477005747129523394189988680299523612875048394923110198771584020600685229123039150570550417597213121845460021804520544128354544241320638731796701058249691868398014572808046735204690410259628114359391527382503408871266895685099805243422349433728662964331406862114468653289736242891003668669123939446682754632221463506004456146205765984247990261409601003200027895501595486480397668850770941281241568329828523120284603056885795778504613196705905141628204042846941499855394951692677391202365661808071131984659135388029463320724797099172261665711821546319569875109504410602769413631479677207449248410826558815039846975451086971958602713078894825530379268518962694785474062717217368714285152304714673940500077486114100674075705767253515735387752894572381480362711792949845270385742192822910671086350109590336140026208048809334478741613264032164516363015567890859457597746487119233778928935666033319213024510778118604736063339723333578530059159264862341961361407970579303499387257552402922924757789281574176299615088734176086856104907590836703949141561251115461505475647086041529560270577313696627617564082076281613885896044201659744157552714896795943202314945156324824964528174804548217950016206712808201217928073616575512899514760953433628928028308473461619005228304688965024780454887409662883617872253083829211158789168617885816221892045492483194093658482038717941215004795216473476145151186024567649384133725664123539410643511512078072445494913137848610214179378357352633124039953219694179949965359022800016901268807884718152797023517402175941848066380620915999848409459673819574886985983611213295124078911919743464909887784541048975317187729984829054886841329243624123992348057946899528188161466530366090921258623829719728531177243320930959810714319233003167413031549066206683393372214524942822285397458102921038252147418935227349698512918187688360446319992916037997808518221718043252277719657073989843934228670177603532448882322485220420135277410442390897971818600412154573862206197828928808953726227629526947114765803494516131640823418443214043906376244647256691322239056469222446092071042544116468055045771882309863536382116991913820305665035249809274718497913620766836179849208906697793037016377421527365452643800725709002271505829136202220706425997567637261106283772027750592321604078705712735981492001257552783725188038553452480923639313393864393882194322645432858145810529329054331114460270830162831419705287718955884179501503056938967369573720456586862497261737857648265401352157144321101715087916981053015979094090788447933431897215116649866466520877316105855845138519259446341398736167858328452156970719474107450122157728903959570075489125584608707793698049545787007614821898555069595311991744240557907561715555712324068191432302324071806126121417383292734228550844877175704633520374676779560670341553196868673449846649372146282757856312809140131735089001940464992412831681119124592499228517458915055849902602701230610702454583935521439114079179868420271317808544249991184155684418963315159245818244365398812164048305906378021956486783410685700673097409316271366938121836448402629338966341184373702457450057882051117389939924261290412836966370009994294616796888561757215868218692502948712067891817192329589523934465358138572048583668664043025655802373459732940733513070223221941792793274439922603797070289358412449010408367518111229003005376144676666979222834159094249332153528452499587501676806059533957710514881153169239266164750219173052467154901245768392122085926563286294639762778546748686959250230712728836973287067827831574891841486761385537874840849025081591901207358405507419514562284108174198637016415335505830774940022528733985591936622614104336513052987375616886729636070141425092041167038673917787933645913891252173041339599793344155231357494051736661662733748533252490463021457322230954752770800079271072556799468908048222077943030749410974091673126055181003998118393108829450165222091115400761450174522769743696748723045524480224155283442429374613224129746479073370544005189452616396930753312110177903588008635877020857524267269558423144896583783462749235149409315612997312720301010088547342591752692342531814487884706966016330273433152233807436086572695942450498393346914101105470362923441493687405059368628368175359556674101215326495441103603572507818165658102999480279192159663976367494442431907827346485468273203074424249662537769877465832445052417815568839524236653366636234807868525841832281287461323129369636005443328382759749440269654586799599682813891883623241536490399902171920174718958360646904994271923139988582806640264574883359205015420818211804965849260520992655517797486769861168046637847151073928352414889794640282307412577613196361716533790787614888402371442553074978343022191514190859198596896824308994277533607421687997022652366261343162423838457541563384766308125169136216657874905365270026842364214898958999519344719817125561088722880569506118484375721432440778591358473264247980341428077330886723596047225002280752912959543195472313860623116622213755037252127483236875071514371879727803148201742364006286453618016317286322158385431510951967793790142620233245543955242172059931389413449575297099971607879723658579659760667764472414629402720782025329408860636868393423434235512578990459142195972432281952818612614445689269886130307135785223626156869552628309710903656515157409240358758073519268111014064591546177822443662106022384879948193939342215714887095069843702113503167268745643047506202243618381379745345777603294837632799264332858057770052565573296996704802749214404609792437452304117096805178264005963984997659923914063048428642144235709191008665696960989496006987497580000502168539102149728244428506848514064338796536779291310254611510496757944480341939995875510735539551261031873882528862245427223818608569114957911570258522203283154120911016562136236247229635289210095381306549415422661033268663119559037089497485867529504174925772254028508869021679975729993066174919737596696631769177902498987966387956238017334664240496823757710039071829168281364849739320619231168773195121134596187255353077454415696822314496307203397581415103005375253927844948525854738647672510271649166056338045280021824538435035596523587796333171310555541875244419148352834969601198413873217018738220508212749775406187672130442236514879082017973305434971596339402745937611080407180571041912790759426675812428388778543524827545764983396528311365684636244887996884070579299354227366222168584758042755878841855398347360816386858861487206072195262745978426863272561841123270222279957273870237142245077864871752452206331169082762287192473108266006626325299676369676359734431936825799386119689480276702150868528445387373378111115085912629624499873981671013464016469987437582672269717227130694659343594449862383029514117636475677642070773795019437326008001784509583714868847703135446407650574231821755386919973988903971766640896966642028593246720323776720810365447455879483488506576354870349017381677731878545019270815798524601006078702770437348980299030595806870862030997337557539076371845112717387061779195561171185051080773261140486389133584350260737297014411742446443980704604457850422458313272347597969788607849699362117028293679196374422541771251518727679378201316778616975653042162808503760186831889949002101178630826343090911956653938072503577684635429271781192178638341385228919699812619375865008880785998312396401901764703827751521631244947691715829800913867615117744668783411010082330768699673801451815121941047293224699594498523195371807968331243498451610986805581274382475927388407405974761611958983370545396579517398215104398803784154278284764514246886053296042453678192215801312882222385749657721694576773026734837562252544248808958370868177041783384972489460452237489469125356817079089484012704107802539000486266389768034844221434237339356499391486157646550215339993160933009016774560160231867423369107341891051966804493088881985681711269792503063447760215094432868594388617960141966069790601674033253960088713414499141939962364075799647776888618579152586630635029677438386054445179623389278819356867675351226528501039440053313430626660647299582049244487059615872370670604433458101543491316167414481610991888800588404800491147352072170628389785378323952418239519231876171171861860320626654966657087845122596008868281096019601232349360982091935527907072000690374142158872732994009047828838974842056710968446611302050271454362750904123829370046304001967248466887287640907299365655368882309590382200303171814914647286346240554819077689976225063646168653817081911955386008073602448018092212643628959208925484883588907005358221214653198965290386120169810769426765496903086083074176299871679606192707318913380325705138792665126937467000806353609765584993315085118476463155161040140205343336779138511219574105127125073800959702900950436985125341746426620426067126757775685210266311163042766668813682276382474530200691744951393676132797429811650261445434465347612714156045896701677904202640343066785809688323881225961263483142050137759241009983251868956213151204309655043811037896828851145692204062702387085771674233692036286719251063264440555894179920159245765167235486713895129062800035614250567013085491566857800793268523432482903084781880348584077305414642359582846311373836300946328595812436406497455223292904016510632073550334678472162278542843414365924966514086370474368335735564464322905201136819710237877768319251485739881604614371140215332259896098719193567246810174136276459601712724992395592320981004356210052105028061939026815621176820506298167061967983507419341397654185333690789984887838857979703237901512510212324633648887277290980652564393427073923786392354740944731634927806158639233958797732983286127084595784120364915049209305621535382933901436037916134286473488683547741080836620342505049053133430362064209412598358223246334376674838667420520689576513734828892004325086364006213958503383483735493229447047200891125715294623638070026734484283978294915221839995076738035354426845871382023170998580376609431719243013068270443366488581940072787024668635849271702661093421115889010656172218760969519064926646987999462708154847198850496170408025621837766139446932851524063727037434024722935568737888315170811368849398379876409295256783834845005025071692941674074288647295797431865356192066115589895671802039709389057177261092975787675697109263913713259136875187393276582507858176871201594481943382031014291111752730429296507429365005320032833064258396096917566102804806333708480885708128517412140622219540442419703799831632885800670107068116363682950942121696742212852169190298655317884005556040268813182526861695738552190391103859040699627503161354586600774545135841870191296614088621412076614661182987826697678016379999046022430682709988523306563790032556531888416234724364045063607902330248874275906851454592160371854041676445632524354474516971320992585899136194689243809141111557038915259643446028089779986794827668728681942431656609126379965797089741252995367523791188323978090352761319350181886787920174465501334421879099799701534439748554662351494578139869742508283176060564351390628922215450316762629060419189253984323706649479122572517939539109953913600909341545607261288649354059679414765796599564676213218801824985822311833562828602787181825971827057081252261762466222320924344844688365918908193981967673003531005310106342223339409981009794630888321694275014057401046909856924482727302843557114092081569283050734921712407640718376241171711794288773487540219246569748089345428531450730390845316868785149764309398771192961565544998944002813530529932265230315474807124464320453642515680622536994519907443367366245843802548184437628283955354793260928363258710837995947421650038683197386609641862007997074346397948914210367711880777455184919979116559834709200030451084860575194861964289314718737671469733414662896631353480579162056200817217484248318149451631385452196752792406577179857822136445229981831842897869341677228850757946749328102326838897939805276694964617806352521365726229205814042584253397252988363504485946338524187421534975806217536108187837452060634317779005058082296912966209870376288740878055336810191896213046980066364669401733353268843757252223782217444898329467477578132283806597247627115770609159093286008008462205192342955762510998244986094278923346845187172641674558775838049389472686649106632355065716189421706126204750894873545049023229136345111615121508437575729771745947295364675927294117406424816519756363710858412921299680203800388067142388538337475919724747604143145142201468241097634323009057876831866139068446452997443203575924879173376615559608414607425715715975495294748617333602671887204268658491769012904647691403789905794362101665692074651679973570829540100183971442732194640511033094944760298762353483367061125200361061414641287300371770203304921200404996267375685008753852769435416026028643843744531628847200933688339090783482079149177033234159871272325835797109711570441118911267613023100129643557511574551155926158815002501374667086347099273118422431380549702544492544572072888044612533824203993422340395503616391585875116686715304725536476260321323959161776465155894946184894696320898572941759770212374099802561781207721722572215161979591713039125417641137292836810993443003672252913612995660785454600536776194476939202934487306994421941433572037272733109949745103979688162908585709000807054278801223652074597526885254735024534689380327949622540196569438044700877811946252165549381915567279569943449037477539709039313548378802325739108998942696198359795452311879830460694118444366780294702090370026917768215895924600322462845537981286844777454794826929031656616156664644102206748901961444592850949943871577728161265717679537580458319769161429088670582828091405530174712359305465599851381289627442296266158940992747056819975770917182325606204376523441474704308924987155431400168692813018265924896850617643490725528574175765719842707723229099439700009075537837373803671917807832427932764574874301647480104183491157123258823937524760306672681083032433685779574686991776681239804558572494606270346953784015719022550783942053218891163746386640644680574741372172817382069024982858194187059569107194548327044473328636268645242109905323800624659161992386947125193379647130490392725286222679582730696793668512617587598495480008863220293190877556108108135093533641674620186206866207133222534943746420695649415692165238989538691062258323544244918046671461847546656351139801462808938107144275461898876422913004432997895256197581767350557462823403516872898608256512008205742286275638135715938234639506942811357908270239079439901963979858854279500925530681250021126931451645686029857987662671198948437540119060153618634145151343088911267059135702781239645065399204469012935934588904148984618829883604053253374737772323948288769771515472383339520731773147650491888575940710384305397631752639798480331535324764923062351864072482330020231297050663080420530699862663439558111647290346414725240768495382645663113734003542332351633069397986112941508361334311253302002124030564466242840445180112749042492884088439592041246594835092590316345045617428163559494923238549603234469086438791647897813255413754544110756527118391268037197501310515927671127088646295678212475696129817727731296114635298956723393246078443641244333992713557607556080778437638004251270049393791247749517327891399157122012484970839690052436394684239093601066445833049985247483704669051300459758183380644953384746780132297686601003474705303835775489275288894627230679297216729669128159713316950121929639008151611899734885421838401582091347353044051697537869675544133863241016985032016899758810454545470670850032710997662433867044452119016235238078234625382095480224100040954383101417421125985376445591513742631323391737035137684609624131849125292841041375936965514404661636199950254292802961458695611416182342018817734193929716896844890982861512504373300631058250291378147709144796252110298504221900472969941281801348779016047689095791005825940614829543974044034664746868392368388143913307035893417797273028327101915967975753725683069899654789148875698849176489190760372522398343021925803273986558502162048094386088798356206556874514169229415556267658665837842643904577380020248836000345785291748204846922455928931917586510031063549245634905640311361635607211511786701431421641158026955857348690713458274913374172183478044155804347018135446260633056024201689788918291266666359591590628830529218681758298398341771056322374557455937345367879192207389405603546444921198270436916425247364452835114506301827904190574772396897431987934830709213149259264830911469168123225819660477170259952946302606645026308352788850438008453145982888117630417989295112187339330186235854022517054559913258529238671657424503529836895567858407216874420697492894620528634838546672468494580911297051489666194709321914956931853904013761031462448839629953093659765297990568481327026976182261134116528560465555801325240915263768843893624764112413026517684978200291491358736739287562548407286998833850398023115444355392847634581854877720018817116192232699724321456694314990121679027684488612018677843448107826766681170897955894546229254983919878000417795487315861583051265100425831262794590111298877566065753888106063088422185054010721710570405801676208529504567328603959883669412935786018002741881132529663094041452513445386206861642134791985190622551885650484724705688336058619546719835295545330479275860599485238310595456911019253078625220756348184902259325700094138282842273450885465834226802818124861918230854481803798085687675297314999759441563253084004829213325359634981865225132846559990376136159741735274351472891328955776349954640137340265516973151602080582155898804217514976400468134872085002209274264241812229152367826707149861896156533039489020123424055368443440355328844944151658279365089964649594016249563043313508392187388252478452139866672822341953229456228017798445903852887167292178778784154795574871214761318793456410395770578769364500228971653310504767666069323743888528813550233310143199037478067500157428402866975255679177283554920313963310757379667347667401225198512514687681253267559666021794820181852755959082075509572211379928236844059880014668936816320928302995387412746064837664799800869744390797222316022432748595503749338730723604991161584055066314474246395153768436932091093614144588363064854343276675419619949854227380317002958234696742949461341065142225712060386679834736127226678349680770723926047512849629364707228410073775227070391004216415354001789017911928780217083547103281035331676364838009499026340264761239462600656773478004000752501841366917161987997230382806395644282604508657177545496062684771301288432966952141446744299679938757567589063011034468392301796883576103477477702644454379232682295645591661933702191726313470627587145436186848891175118905160849992785950813323059571889438346132063622241774859580707044634118635708298836455383905323184131660980799994549279452334492933605068151742479460393169180518878811859033219769365000915321614866639047148295077014571638542540139606727007662655406523708399165925501269416423189553115334297245912505075038397776495665453764215461882658222370994741000069883858797648343560736545734341232072481874815180906977954286924478079335950859613363795431099306692942365467254061142110615794876538432703356347315892107252777063411916967957870982915945156385653634781272209488654677851063550502690798538501281697063071721665459028111182678285970725008347548239896571111390820309125927837112714490923668650636431432283599762552709846683984309602979853345128367938342783604657238185663226187966732699352597755333472743663509054374404843042230629147937656736777262596931075273067610029401655798387914599022739847043678420123335032232882608654641298552124824102012000272542355494720257227421337413854358293873175329766733860732588007431644403441502595272256218702849163155346300799647450071460140372653682716725766512883669731064360117049502513229078123085048184610185974422730696073342840279480380780183654325485344315754418764793045344682565634376983805541223797626580611496889428904588404747211797183286252656569200466572260432290651819058195892578817764277750456805600473684069978049878780139962376030339274055264655727897292263608726037292889027479431825067235628834330542510660051876673007521469217422053834280446917168876641858573385728745054345471128357803260274079041992883498092748177500462355517912709700822733541958948793866733140181157388161575043235452020922153570534477474877984505594363771947234099565598018976626592227852494573734818478698992845132907370612416560744764466610470155633398611779591132870829284433727681569599221227226026606988361459402040718258896392685092507601475285194925964669237537279562928065209872723048626733003110436580598393723325997629058165795198455212909747608921112199189898063252181131042206743365177341787166202413647597623544640379144445801276493006705998424941996517507732986558526128992152540462344180215705191632060096088711052569891843822835247356515808549967048898893236063918840183682109852069052507468277783838967987966063312011917673072900721263684589536630180059049762106076751686518917285636178573752556235256466751675574502967733200746368087195445152692448373843734863097266907582907234390825565675977870904762715416352538829926439724540151739223906089405648518921469901442603317280888699568486991362732695953676252353745624586705523868689861650290210565210567018343084334509486732444422003857933831817938352835923682695206592994555757128682405573708703795448608915925836530076785315002992424092417164852453836568405795353675228828248395731541227819401598054856436294259081268332517795159947356135950463292658863899974416516224448645064291678318607227561034503636578075777811752294430449082337926425758122844421507074306789016298746217114093787349266413233009085244705853684609757571651234898159916215162866506210833195952965562535927926647074243779802913653296434653624455384871064663151224836120526393004069120311324037702393767668807119307037356642476220646595144425149322837858332217646324678635388099216227007538691525414815894544397746289856591163903503685914010693811647157825679449933706586236990056882053101979515810791738101239329238361685696618931430515878220270068369067391445887257871101327366174253031799261619648788964535092109258735633452457918972646536797196163428745624770020998668970001491270196216082245146027948671864382796391857070709412100661891696369206284839481453077408279352058008171135080842825849941823808164192767641499379663606041499877956346120005428539318033800998012574954870691714547104314223953053924068631991076482026970983860510285435942968053393639956244854466383318548847545415495380712988060235794750220074552790316825612409172168690281265558049290635705332077019659068933878842956169554697994418979222943445220404222105373204338064428750113089843312080215133450165256700316156952830678326976767897117135004202062344309669487957624160390954776151724256135347707159135842136727744759442905824674036864914635733473732707702564604082774199939642806352552631324897376527757996141463883486049744120055456114311106361500889325243505573647080079178678438685333608939923423674567151496962182894790000095761112296966687012417023649248844149877566266916187556918120611563234009001272186859944870623182509564408694148925328589204695925082446737302947218729568261336470560040891519069726868449691855642170002866649217588296942915298679436589024204396736271618165749633733825633483565426767219851896595741116023000580165058689714721785702711212408911645623497857983884996953138893494210194328232291912214400575623008985684925361688019867775320084426335455026229258395452533715570260699815932073946370783210663909095753565239816047665511598897123068136493917567814006494258045432138427912851555421750116401432697437593331383402905461039448271214041231812499820537769803266256408406827604320504193027936435653787870728263008575741261906261509303816775806258715692396004594521332652061686225048043262336387117759262769016463905662650738917855572447757750753063826250286571656807472015731486360201827178058991440167148693299944878497812231203287143126041854680936410116336154820298650520199255324487676175032942658486468350211258379030324488309907447781977296861768122792346184923503616294915120527863964872258465839470751771643099159556532273732827444557572681426543731422122824970574819558710166638408541871115920748172722819658617128585322510932187814442459110303999744928208828070150816507333901856880568693399479898871361756651176830397820202758812412879845515143863487955118782355833956636530992487268259076489475428820183362495100576751504939446953466125996195183976612600003044002844798868449751330328082192243207571212829661878013529340228829706815544027058727650301367703330364709713652987332813251186070880883078669454053484675174728442196828315870341238172366772472113274889676370958479958771226000951103837388147456120318166015265768906669807960103759715608750444072222948498301524771166775934559843160364006699454657388149205282669779708129493845278096433033027882557265764334253171881823034045296711191057171502629377785344576306174448923581482466018733988130955293861081194899726971844089446047003968652070157512385915089354244321543932849678380422650429769340300676337952237028297927587228579739088465658567058953941387062618426692116855892999168642712117927568019436594347631047823429231868953382644764673761971213680290238458270139980496434451683436401960278290061402907612916198028912468380594209580203791643076289288496377759037394148087423994819751408506756154510416591949751466831448403976071329055876485694730088566508009610057176898031269015030820307383469224426848314435203587244014148317627105879995656686837334896616842877134808153594408220510661426870295283939608986606372672300380951021260206689121868868653672390018510293492789753969989096105195391508494071245831933483751631740371640130134234527450929056860304574062352065782670360049634780400453046673412429978752416082280565860771495418763814973538627743347336805966093865838059306269393312417452144586429368216068347588534993256542126633416807310112325952418128776884451062652125512308477799003724411956056289296700844357941749651276722324421276563593088478283649200050804794368973328849234221050618800242913955077147449166134914369572931931393777668999530146012022590267626737181731197704991219662142493597816006065496976614039836439604999539281749813595483123582262031390907087070555903513680797824343130238253230733890465133524506334954921421609340673514303886761621219433154935385675778950104261713787202384897074045807505833377002144919766913466356671168769671094380367220179346152484693113975980484004017453600536891514121355504212334653907635217214953057187040301125356401640906823432055936022377829060436152114924567026722242448291119169966861163557341678465886657865909888605287980390761893175114367757768196925203561420302162635066042372365257758418269990806599823566167908024791380393772073933980061383094258716115606424921394739546731138885660259226264308814647687768902066335593097626120559601380789626579917842539117801169494994823562575284967912608221392116458500755908043979658633833820528886261789558464576497143005345424274414761542850578435962842810907951525571913788209412180067211476298957187749725387795666412655013671247187493021167108759786820705409244638344830603621993910711270130351509588315158894251695260152776179527032171998450186212701509880681623440577055540112982053669687125665446608608057410737385998096129919909597466287520733608031834686570942784745381160357831917014190656494218748937822622463851555152123462432377751229615449908408185139881752667206424499943222101518250826928716371967714131607510329752979912580932657865932576177057896991820997097347189741078966608595702721454680804415606796857019370643858865362625460491163966243028212926087989648907039365526173891041392166163469723026441362660116234347656709828580964761313849555177217782472489442042589936876077135637721384797352992213343258415101654292800539850958573351537864834935569526909801931094331949620851761613346149247339482728887845632904784693238393096602637755072105820262625284029538259512093039336815242984791488782983234780330178088614537148366217185684604518809046454457754654327537060102523585552598930412973376925543462076912294628683013357722383096807449409672414124323792728434618014009431413635493850153693459293822661288254792732417011846893614683245756652015455266637086452493931204392091526615278475237507733240926168151204928796176382203828290842209378895506928584433333254099023511071561211878086714810378595273767074808345963913199925517426890580522235682445055919962926141638053844280818343334419327074231466656188443712246034631363983166095036925220096334928599100488375388644080649621390871781546522064738793929425028876370504703037855872588141076110661397555286112390012284872250925967719515373235094765284864020557228532880456399572074101937818165919333563215329374758120590561182867369892079225411869561095325508479452538408563028535944481828739173241029389755470367700506365695776011061246955600392243837493582685813559698924987106235330109347948042500511941509709454637850931408225294328077431970651210242164478392080450039271842252206123120147604549633875938108160471058490908164387177226129464505627426702452585452330289112890216889214351569931128444190453905813315018231342892825308088686815814580684738036490246777694236622975564288862465932176543742012249781893613114222533276384600458038024989359592651046522935581411707146780536240136714130843637319317622412831514458872477087532259155528932250782003180617035163549006398115487289597451946627490920323319642690732206311956137357926239125517498306969254837679029796960222632323453582442925436743883048240644600934747563368466384588389047861337638634471731386357676030622192064622284099170289476875649656928504746834316165875994946395025407479480702743962392549623555395823236943384226435905273713151328729628959566883471535502788955478935010204076830053530238637806843124398688839227628072520732934798325645188332652035868475921612292973641800944887680200106183522326897939790259957757916094946724982914195026900244479062050327870830001739662730014450313522571682812616911145567090644362311962901919448179943453151070165507950082303052624978584015786000480697001801896191418981259388109112777629320128774054418936464031916313401586333560017208246685271467317377685618869307689421179125678311763790859508085934001712882349136686750477835981221464601460277382579419512278961657532209495455527629001711001739024321939806122495848190679925890389717600063051720205601687403733147783153505545660873096860539081942956723576569047426312404994143700806841531820633360927377728496568476420613717998050480900640921203695824414948282282236622544484130843834086322504301999120440406689098798642538154816331131012597171799307582273415289589668761893362944021315190270595013760344254645520649431486640014628886345408985002485440973156083168998822560975017017365659262221005553817918456976711909217529807560237396382262943572843924727488457877675532838353872463485005415844842275875036154304867638616965811045840202511598650806650896944937249246481879052302263082846409902104483079083147815067133866316442362640043057228484879508133488277060401146504525142916327159635811334615846424819753261305206906701634806403277751798883275679240959760059436869574214082368602204940061842213861830361440814046297868053946501164006908843306317135646513522488898791242034914104069139051657456591775968014098837931856603632919368425175584125411254910008526617809756968512604039345973599408136332071301414914717180616760041868865933848344820247242457501791930263303693864235808823861148764158700475622972333443437249799902120777313298977961215561270110904972950754499590046082650697047797539515221698502630003228020035212462899417164978958507325826834555979210220033042138897763105804877992640535392279926474145620328081467164074756530137266645131266755234025803610384645904040776015978441071579730351484072250351922525950379107987231085716369255113521773158955437190629229509389130315828698590321113801307509063420251537629951032733048199078540302800887552558695814332528409184177502085457731428537028024213389792411966423871457616570380924235764347064695448505788439554686829890877650359876471710260671424366582759625007606126933377396771582918663039561663410348011317702862387801575424658981339574920377536812629000802153360459934109370908068321277974539163363124169910703062937226468907541868329941858602664913154492258134643746544557846324952344386189302219269883608296537912614226791686973445910986871250418269334514335820732965102669959109872852927151965470060201884474614298400539224019212553240706031769941219300396453772383462656099832629672561257026836151200232143293091011124867709677899445766614805757374787245512389358712307436731117240731585723988370341097881333295107658298760428379594135264296214963975754220997183248978518349158552004155909274345048483270801409907312377852733552604692527536258953093313641599982367730902743217813678968570054536573955596596472171933799113755198046777445376514275014232076264433567150601191522066954404797796947983610257478480988525280997914818684567956169730436749984138832391720863865338527165566584310630324683873481436308135900241746873009285703347227787718202691037063943540337675436627402456056019301747953708093564641147425886493302719177854393525132738551389319285120549715270404536616661603395996060604915207180654334262857362141862927555976643081746576491625186488267431254149870277933731943789201339947738298446402946543591043178864164415055792253544169175739828135795111033410220233512596254679871262846132561220090374996535551587336921298797347219047004136291313753906368194164016293097282823787339132033409016488701419553432098086538029060969664955491128834990320011085785139242747734188125653884364563838192001490669657006015918622679483969422570705862975663893758517867601638973642646398760857046072707288313652589170214048961818679863133340434277037475462678745699210227151280797564721085264876090760521665927025028765480303908706991543257588831055567305796467271824024295923308015505285922379254239882483997174542091860295413019987620031885156484680709330573829062394394164593655967480107639949333353130926231742345461439100345002866907077225948968489334866772696299642673661283883908472095137892298876006078761244913118980845219927941198111779105898038413969729496461964913788592520594899502014448545436924274314673785417663795724742207120087561175978704913968970722267605117803234278717744034245115058578855198488614994558773559905050201291373920588812672314371320774688469545369876748736123450167454798882590971323821023854028569458420977880194469057766382642424419821136894119142612197734367035988491740723488757625332826958982822582868880061703106451738915862150672808873290108080512479092263823746856166995807575699298086449029338161894412213363668201197717975900111810974198380665143034064745882780392745296544000958261912970949704673827159750492906401720113194579798379730127143592418978626278039789090892928711853169283778932591702458323044102327104625981372195981716165461930852580244704802535539167043600316241657920102209457994080149228843189379493868919893797639170817482874975539531291712296394837709706380450687259163830886533836440799672013251467146450293711535475704798722780908970972194546827846690966903683755754010445305746311783021172591323045070991470588823565943146522776728951126939838210935695573383733311020587042070026649083898118332475496423009725813425599777488606748804451914301177100162594442059731857531211111124482034385451542390651858790371198107993033324317532696517049162618620071140813973795210233228776609999569484895612799344200267590778547283063489919948214518335441135475049365693187230698421165141796083828064882114372604253586518861159264255639504614043174807487333462682983143656645609440470006253179527949043480444429260858954409892868012702102601708192155759279955058651202870180448335346297433567182599264703899243842219606670506025706466237127584176347367190476144742021590711525531437961542443588183054802547108170948805457756400079854502178510078434005867974660759894946703983489613931069347653798966149592633181134411956376246294903152869247701760000062645439033606812927545929055279104979732562430991430947417827418044070590902009428477469541535705259087546994478143817419514858504107059089513657631983499766236330623482307400618509637939999595547962012662069101089730944692229578125696539224210504278597981647852370047409764366260001979216476020247698872961946478679461693949151262324095179069262656476281554609642724805551699687063184490611306336693642807631650030128695942605893036457944252301683241166104095510138374576216684806974276606099170784534291215793853078761350546466592837956795016226782654165333723555247375765193543818119533816416106775205032647765465156722193329578702854816289932357207500423999065117837739420175077481768861168868827550695043912566391165105136361314583064957856909923523784316806673159218773856652823611686639443530201736635382526056252182240070276945137777804254899946888037666219533342036935836300238446268514844190032529806348958115236990070782787063338369756152539349779602253872090767493629235024065195024724327293038741473276551900205156015536618335149418716393715548256546984137180681238722438464953892265609208448865368957118490034083081290987728375638089993925283542040116104663516741087865053587911119229432146701794964148204785321200432144365106692102672560807632846434280831003555675499312062623922925624126428189301196448622962213365517856710729377470386560411797716052009542616561456770328941015073075562465575444884184308307438124469122737370023809433116993581797326857820068006531413834269273633788163930732707482888874177941525461339326560258628169974397441241842716212811121970729329219618648796102676027447552357493091637393634400308495099605056522496624503625032397466151477055898831164814307717478844773240675763162295122891080626363492238075166189833945523870222716289663009074718943948555732599405832316309919077472047590388555418826249844671054520654771070595369122686106585379106878803255359050147058541758570424599900098440068539189233290468126109074658858927598082189675108945028132915201732604791078405009992500386063336031777711558647018184606621967157573296211633700104951595507458039015036975511595807035528502097802018099731468570205594632189816074479178160253015436748221029858915442018666745339741152086440388647617608803308667048220405494298786783619794314816331137721234028268269689139953708170980418550902324583221163621962776241142075124897508090374624539262339332949172735073636219473179775431992126719013025439016782176755874130700507116201920385886234224397441741698812930263958316948315607796331925950993320473779273523095933420271936035540032966245926047130421206383463456527570574121023145177895107396085374387352327170912317049649739410973901376895649831085003730611718685440177599824539710030761665759594439972959118601307925057778303728473991784381936287537869225256015041587434317459274113786822171471011630136483172313256283456133435280415474139440742896545604910257688402814746139168419405321869363830172594466404076535251182412650055391121199569811411961747223235045390341141914710113683397779093532783443347112079975338713095027234701881264213753660749629577980175205309376391062555364832135360572318171478991176282367356196634380843465172856042773438074586695258748088832546439765094221894057318436025286467553788591012681249093518496510732006273689343888180875064068364313815926053068506992316397761934582343739905753383246005077018272941089784963033243268154825720051255486454115113283020488378657879989432160961442696001243632159035782956998698856215259512396640406981203888741248562149315017645981230794351771818575845456833995958059806867119429409730233663381328921536005840499207597084277497744879304542641265053619611237031973653721048104159583849401053746063561939866672310221355346138167829449221302157294582143904922014499994042190853564705510594721929753172531566199308885450969131590326446011960459931204931014752549466581587396215411472374862528647658174078409472058152466490741620404437823060603878094806405948857110069568054453040234355736517780701687943341519517837427901948772934588901842822109797338354279540206495436948554200404651129115286113525307681445666975166951995740948283805700983919767540664973128016412775895224266768644498575176266576158878755765990816402518968862237962101180823956156862828999537205679781407681265932155852505022665526435587683205625025676270815670144033613381394706852048400501887344654649469220174521604394215276133194622738158036187214132131302806911798059760000674664771397057546925523719120877277906394157348287873451137221063074481725045367026886133802210772288446846396012735253009932553805220299670497405410633428622958593497574461578170627151673271973140718306274368791430118636628971304658942429231933330022910706348276532877196023594327512910967981186299723439487370912106638184826680280018430148604287041389797494733677245834819790465668071682383119979016899883405603909392569760176536104384706563607047670218917215866951179981513105346123691583539980724968541551630109489089380914949361324205889896494675895273184972803930903332465890292781875015094047846838431115835884163065248143026086342341145382701243703450621256626007273971122167689616977267110177948834087697379559750291311392774075222810466183910161709098072690305396640658449549278766154029922462211977159613335765181733962224972576375876099182826127114435421103703374443387866768500755619425459345661778087971220990109006515274579145905569945690472212766262106132171685654093305336351516425163129382659206208573819409279177514651384183511035458520435427083635607757760562358908107702799478493491085168721523650939338539964302801185878681463314737076679802197812128831481321401049789963144672082179563878339020172030090386077012424893942903693242171311519455114316104082540442118020030403535772382827802646482910800606682784727467167327035849774622844818941940394820030211844199257431027195307815350359782196522757750590274245938477395705147206041071866726273040680651828035007399184159978605874347866015326999475045961870030135543294449044003421063548441527210128104844300740453622029656213422332456339000216352113282119216133013908775118251973013006982456561581221005216755680092001839165768093981537771594560816681406864678471003027526850828722641075430567418471521958520640333354913404488022139474245901454551563139748930839896000318301964124819373368454092197412463940251131363142189592163879692394146564803478700525913626976017539319862418080667837884404605147347515530610471775634805006814335775672649854159260569996210475609327840555642966177146221918226687934250571204795612440893224344182251909389231811145579749893558447649063290317437780952204648660637796228972679776543215369453945316487774284764219169725699139308092791032281307396488082226374962866556974874959014880229790743245588148346322129104364196848961342973279947062611190400951030180601565218868619228641044040516765436934135961164805506935445664019282831806224360392313368707223720663612108359632953113381630977563128972541642650874613111833556620600742191869343936993441184901403268452060990296790696459178025378997423189479938598895367212099658653921497734545068036089266999999765361787114070521809884142120028396769191396958874603950301558827037875907581977764875728015964881659023656317555576527578711876230552603828429903911705524578503651265801734025829094942786268513229055547805414041912049664005595450128656914423356247377622328712322643377213294074886792688557785980755440944097644709588740126419742683591874948706870933875435665968455108887742567296171105937019030831123780749146199165730393281001287621027767838875822280797864210915576511933601985447877827395086575480928020903478492185451305294232885283822534209048462128416880822244325164439681425007941099678946982429980188458266722662895328742612050655548029238242770455539735572505493503217187814980715547302952685320740645304900277932490066124206622421983330794545601988639094425518237974705952515884760253752914180472249469210078111488663321742488670817434811170771433103969750022961611788390262660476887493774816384370976210617687190321035536604405727165389424216368505950847108072018866327266023566992877416580768670476227460521906368848508641817189577998732321286560890678057518945322705498626690975607927051825632262630355472476963525348856903579195600134059057920540600067626704882949355748507069380565664714706472701713626620587331464796947865181785842322104756960682105360414414072592453056431940602775781623489830696581883786031396904196235419632712026248902911899097811184020599466017301501534088565218417924552719802249770639823952894991938365084336684814520689344338182046399621744399863393801902097919400538241078509449690176927991698390165747129422706721352722508808887600314539379626232709152092077538368048758257729285963952985286524561551673902123161375952739759617625593652176812344998275883511355984504115492940944651768423644443289561482532917329246083010208853515755213107347539070257267728771849484493197061583278315975028426100264595897201265428061981420028949923048741305317504000837066066161364577847635803383737672147300290602511540750004624143116652538749508726329186861732334523470030338691776938744155780927627145439346630068812088985771361261570283396877166401524617479038637625367436407183341270599525781474448921133417357434227984198232520721165799500668307789188451760370290222094225390408330695903771532124892972039575981283364446833342187840811531591735641780128415059046010184785294687753226590088905811229790208431345731395778164863193418212429711517195021902553508405180679542901354914189566600776580203147081478594075912246526901605218893924699694150312434427344296343935176481441000474158027863605504778936034711728771777414486365520557127992676154446537656877971367925999251820211424631255798789774356108172281425098172971089642153867924847876980454102211375767985337401724206964021182411693300661567235869795622178586700114372730510901485576590092097728506881128775467061819970416978223706734684351185892689549294141045317580171070940580088489072199111268773611644797360131083874194722499452259059129682656133265193271525998486879914268612657415672053082015392064789079811728487576262525707357278969546191641343592139456546664880633965235594264182990008197688892459965068935683127638102155020454133289085035167587000501429287056922237898171605052391169267300503749665791703029856434777828709597012353242520100732132409637120832607154474189846648771249121526978128632378738388807964204839565740845744812905445461564716220587989025304863155122281141179579852316760511971646003155151738175418500421536364634735050830147151359222418542862641522051040478704592826522451318123001993956387866949925327139219206697151636248265605375371988281044684431928324992932923928205877129621035871873513051598409387508124000984415894042624883862567059172989529503603987414011079265881211529642517186285452552190806249623169129386855205755725587969073028650115582205162871630735544284793490853684947213675367222028142273865148024930920955743912526120981637962399296544075590404113796486817920170098230527910168363484589792416877490455491782286663189457431882954680981293643576758989905297856274405377054817349099204559155878307807801821788564568917493744630902663062165126176442487523253750611379226708546762798904848893626219010945394531534590067529586556796155585218770762382564497649162452214749064186490313017034239208380886279812726110461433752548338459311524497907753990321261228974261951065980196547461620275694104398118481086963855725858463898849568937825573959023538446040626383514365805133905302972706592475024154315372226007355545988944990560291914525936501248118946318065673254123022518898892780767813655734651076758235547031416974411273210774253909005461563998988337945792856114351026378231592242962908931707266855911576646194662532238905020618806403994127514264959367185080105575820350444401038843017802181105994125088002578760950131064235299755306702226651585757255435784260110758145201526120761560240090893037640425806642305078225837229900923454629262083250390642251949542321777233418291927461477439086936945112102955745500577861501136494522972547269457976344306737343657971436324992944703645481910774320210539085965764904694818595847547223874007845848102116183528536966581977072597267425649522413523138757297933217696706536190884705924163147793371974199932150286428367968650542376330199198652652679104789612546566761302905762575808257224336466854150849767307601916864519829823945828842474027239535950531083458877020918580962963964021178254075951055365413175773035161385450458823551416122114775940839092173658204987316741691343190065114062783294536718539155643945767210178517807558931131534241995861508363659182933196345647977480928856663488213345375905482134561476158795922333617210280746182645192163643349169317992406692569836052596281857369279482861179739361752756203231101596498780852896324718948674063463119032387099014749285574430947063415148551477225468848776691869794491916021398594435285927320913185996224771212217539677973803937302839344638361656380024161178236305570088775032122239184820142354871196321682719112049074404488991526404968134520514306370499444959133452781339405249857075655180674623031893410031520053342286690736794818351668316541010404035196395432858784842784377522728290997037506993119742940241688174501070824894271494591886276446789836177031050228481844157466385058483996412054016997366623077837201789693259748685178695849004897583943304873632198460072173808296018033052824383952874748558836813061100615336462316374158506044487217582186747994908118354202623119482522990752492553935733290167834126308730873874878645201294666321710155144246624749658244744854172393110426414871117850544733363223717509116789315658870255529880903204029187406746376588633606493095429641212422136921584233207704250437790599699310346761514362983048870665685738941380628866596055788899995876153607993998075902736416846832490978936123217978317067135653969354526088986278558094017629311897374671208394892486408535019380633370111463421900056475329586830155514918967569772218594095919303524561278676222374593646188492709300131055953170416375834613331043610955968622056578001611454101266316681319108484322285600671238684036773195024655585186961856506308369825555944736230438392315399591369999925543275783694139372718989989064856840209239958202662700570137953514827907857886614237116304968952803087113256789799865277476277933574910121043955016165140904300519513962797934006727321431943539004175407276510681156860354346746248288795438413980164143953131373158548430793328483562610227623961580375914867474437939121720898355113315990566741306840356015471378337962337804251418825980430655499531856960327417300199129567382333737793412151999642379913286915349581037653012206518246763816727864419811430041530308223586244029039785031995142327910108147879854378079672736860824170908312170580588417084969980076129358083933372086371533048344342770952987945475094456911097846360318724536639868736497248512411699282428253069793765666587661500362424786547901516218154591819469408633378399181752175051283880529958093654576696145729799908491195470636274950680076855685094940188691223601554867377909363957312668802194301643991863273737385457849261468246811710684838927422228606596914526398888858747144000044001344032539515887970703454223019944302496739734026690912038269159146144646159118103022632539116644675548713495837136790890528177349676117077414947666782503258983413783894957028732837451944436172523095251677652614466870015798621689437007414491417268791671275329778822388194745801242499090514445104229706390953708506695384036789065287296549168484777253178360375574458935247990526432341561961779378239751957868375538548655563503296746135832349514390512404846909415710498183752316429561319354364382988664786193922426366606462482238509479161302223086235205780945611933925584872146913574154882050108925545217548303783841755184147308864965528081043775068920685503939616479219573153300063290975518814777922502812375159314131708321978226266273433846068564965299954864115910257794017453998175303704605516549715665180079498031146235490704910434248447720948613163606621834818791647801201711269785076515753019889169129256429818772554516125316556504347940872341941455906575723486353702919425952020957935417357349398877161194283881364502743339756974712869635162026247129981178644557081172366219596457272117898986839682923451593633245924562286294596589256232832457896269877149900371068225468556326360778267222604963842858877077504323619707327839446432480490472846068291147126286966778355352363110799897352977361037425446156964411528869907170676615362052387138188094503704111159066289033401926334632348651709691593347171854765970029622060852818089030247387888492431389407870306280372211199789756015744700477427253753547706257650663096246836186264826391305133794623826390380384629830725062987339622421380287888329753908473685958517930457569227762140896029072896082139226542726185745261706617718260116912211094286559568194767178989162535221624452390270627616842212727991068437087582310987743423602595692483130561798630513295006149602882131586781888757130631995864474039454502148429670913661509666523527983902158268794263072339371211630207455481019603382726796371675977039405413044620630983572955288803618747310332570554474696911616987623857761411561690112673677318308347719702348995186837047976775843814034617782667263421973455873874182485451529534858749326844626763732239854531260957527276324997400588533677369781646779384841891426791056952704799591950049056458633634528267810914556979360611032275030005396036869604312660317341430561882027180194723697157973555280904780088556138877973938997255224562025287660280696621757372669712998456284698651583202183428845695191845847344610798806623278807258189563755592972772876406567191110528580130688376911308582798755724696250446420399916921400355788740193436425855912036133001975658664133593245232133037528867990348024667310278810549539264368387104461660718322701346118681992783861624860884619455523282667450088049221841453483662786308740725360510371862533934345641882677618071536583199673346926152652221679272055403876515824101656480624148501350151183102169775422323627787406110299089104565975889490338314538625620276014528625814046581878606659162159183137587882027253542868095312566332788890134586122453620816605732841807615295638155749580057518516193587772727522685284209717523559684737924127071769122543940624238111289863839322076922537786886862933114020752900031605571194846443693496606048076491810586124528093304037378459074253890231274687742978664294514688495874459412013761091049806832959228870147590404727108423947501141599925388444423119675950464395520260052904029852225556581928441164526094318240556511688531212880169681124142061658696392344370427882960799832299182882330001960271513805921820983555792823788137682634840963343137369544461072052744586641510679331336992985107330810933172530647874184948642327758372514077510205253045273988248521901554712200057022142000050515783029993611387551614105764873311077145481386471646643719011644580526573421249621524787596090338819850127694078205645184847472010570178993224927876353267985577044154813811728089137880010221418245062722240944907257347915660277741267550983863154659838555866579999855499016829247398659856194250468890149255146039595757057396428385081498062828025653056033919311506066772269290459818173222004280275610966933583903445123923244755266722297591531013489679520865384594965358465639626436479853661205408707400746177882912006103834983984907884928122163376054379265789667047422633218582390792590439748499034106733904955018574711785789615821880261380587912738079310812138493525616237872135862664804509212609444657803082157937165075782284831298740981783244156705894957508208867538508190839561865732875294268185063327013338753513511596184043823524391404787431457609912895457910384215695701399219136030691992402062318663829780689906894202737883185627302902678900043411604488848481184580456174582516558373910415067784744110862891261523533700916784187796708892789135529143971733297403371150595160090839518053116102064463813642600001889471604998999514782322804704241579208837242669211934457390133246183125141682177082697725999636394921547722351752869954052891450074982757519611418082853719958959702375827969997998693557622505887263083443422590980839164286493990484232111527558019609891742072856252245426757538194094727261483654406135018303019149098989237949316840084349053655386717608569625549494639897405005068856508274454785609233853704123487497888277286880235378094125841529344475299404934056672695643299950570320174739558015762968652507840824062932888370417725406906933889622571561636668467901147891642700564466536182139969650988260053567702771807818726231633081718282488088095282705376164547433893270832048463428764781350933838200061183830306642352171610343544467024458620472795235775800063839235398107620477822337497648397685023849094040065297949540699987436850333689989620933867154520312591162004582981088356333548813319018315474477275101501891057773207061221993061413426660408551630878135556391275337380424928334134101408305570111056489665518527462079715548616920256781339211613548701910497985890915341989400411879632800343820787961792605010082031583921325550310171868345394190606086600164714117080734438162941197979598788440131680680839930672647850125699023754887811676106847531296217725435822268149725349625471686576243530014618401536829836301426088038351571512387852128778904857161635165451135518807638284971080569419532354011623849214872846252894115434859933963495851380126766487744883703739293331617643836029724134034201009587656755757865992918264942271235142635175372748188663824248093865468630258690704017157667141901519213523519936356728517691717597660136146491870057960250046500487562217367923768348932108871080971008907179511756998389554375052052883605119835149292399917845527345970881092618768751050915283822885446254753151863225484709750449645044900305543366505447964810120488545710975843629037283280298333779771024707483214158584251239990212027382463107535204272010933726686718034107876014561381723057408425262433418561424522238663225273562742918300154844049632826497724723394677644297155149636328379861202374519581097039521914645595304458824374889839828444002114845652797910639811976611954740496149659390842179801002446950523787747841757812216865729475709051648336215801060243946653124999715127108215684014747470598919335712271967734476751567260981872833755970027261378867419171602324173685367081531637035952221347187400971998586031080327216676450896619359088165669583895104590213950789214047167526949443608005791503168021628069820825804303684664910515127289911248734563330419518070110632600426847919768258487664767296648662473479494279166898518355626334364706852617142414529526042259196756460605409325973752213486989926627896807055012676099303698230421507555319211577559765455375244401138526803409121663572017799055883456775600619120728278899352056745128337895342811983309846426706011781366340416760079312296522965993106086539276770066340326072356171724621750120463090877020864367419927101944162328300708197706835395236093443839381763266279791673341227039313082553351723108622779185735110670944913784203095709084689747738497270063413299522515300940320919818509661224906494409909469441391604653557818967603966033994992016786350329600337524433898173513858873938922003890176703938971201867081564152931299706210221476831023812508173319544168642699282621082778335071046756620176091270859653847426025376870976078228648437120644512174502729045249905218420060988477355173655639297210887546226806245850531325988171320617708524339242160022024432146977349229458704592419758743945826005952337730702116789262298237908597290760086547208044537929564501032252140880052151457261094455574800148207982037148093424676420854515629174933408951051628879582729901278191492401124526764344504897092180885813918725095279720784628811521588856185733313783820379299098175547311100908611034619050064934690402957335276199017985540299592120875192750706381610206772908550929662998577022921351346803182259462934622340846834497422790169746961777445150856516483176417537432379703851592052742608951039913528083492981122062147728966603420995314577087091553847460594197396671984083791395398353861556191399216095431375565326215456717659674831102833858889059976091971473659771423158217223368709565795992993696687049208715335165319973716730708532851790597597700723247652975995451427694594125463454652603715613362638005142495382857961861410208823924916485858274630529752095024288517794766006525439891749966497660363655809781234392892839880184637388209742422489028873240603583860552898461406808563897609292483415079482560258538278595447954757233114501375284459237438362174360723833541891291883678947294255155440452883618974140273224536492649930139376090954028741666549929592446465676417302887413766770470706410039672989101760695420793846467929779952841988295822566834281643160891790426329514907523339576052996969216439428932005861981871471204643442924187381824475277929812685208578096124069673081034076348273959962182690573295151703252325319283044972607766574295262017415848222366166774787818411431218823757853759210956313167762612162016166870983911915984352015156169022163250946118489200043686363826590952249731106566497032930251884521060127123494126698557679387523358444313826948445892180933561898867210998660523681333101558646418499493475656564020788069832996936959250011608879672449910907710155531681060556964165746489326262737459587058096350525029082795879792304072985321304964148469901917901051148072455037084232744412187757925481305056235076685354732955928736230305626183113233726409532848009957393777203744529122013233820163955192112395030877837298968359549319746526491414295368185729514813218226471918478461952695537565602201501449011387953371260011154267555346015762433189108885188707035588020135134549663548600310411788834803811751953697180225616697834439280704094361286319253181338188725316307639246492428601869758314937550787359971065733799805927759236965429807476551623140702955613402092202948387298065480619981323795303021870318347032273085355575702183355705229537904554670457279716292130207573792416090222023878002105452044095423948184206681647697282933425244578994036693779910775939162669992506292221440164192472615568641335671668686659536478247485482643308786106830277521665342951321780547806239478416357774025173969799865772214382506111110467924047227280190165122805917375018232315640619245547361725270968337019851239459403129668250565358477090394678583754821802356981737830853768935139946810078226194639320806901837441180231587781522702015293129034990268819010605866426781098348835475003702330848143751673497265844606311275865241467894064946414801397576606916811100760141985367997325239840940501276132124472514142404514197040003320792876271294854105354664747956396877299083737524483934639613082639556173808101011997004017630763534564736474827529622017397238432733630246725897008749260927071148627306855932962837881253945884984674085672629798548784694478150041436764996072993194663621924504973587880447097259931275054095318476078440718333379352296984948594485464907367630723887906266855880306703747578925577736015052935674620091683807303786840122762353492321156107634837857672292848434396826951755579549271404938965780027663965712664904327130994874913090009304249590379993563812588195548920391675562243120602681597529688014386764773678011558330743932710463347815608525060549918089395387297725654691724172879941347218971223927289739370305991649964952775751405500819086716886383589655646319501025788186769503046724661290401177992492261346462052717673268426939880742932979905635204142194453076878601944534882289201448054623501301943447806736423766436880554356525955016595213656958976155197454385445341795924494216719658157980673013834544140083822561150961561404292610127159878280788969084767106379028166224770224588355034354922937625712987990804598580388638640616692148919663352357025077275899328278433457042415510418063294819488468059482091992471739111671243718771108371263007560457385052453426449220555425753067386666236373572184417240217802241489454361093372626488670262276614147176533865171680654125458357070897842589535101960413040326606239568950006850424594151006998392149820057642661927251571904880999190970014910054662645016887769384099260587072199634624443167623258310373484064018365592146427513292535061276072522622815728985962033228234151298419875192248094666130867716518809785244650558366403885460963318780915726969951742552878894027460153422746461186396643039274212799387023012053783103265137629891347209856706709384353316045624199711014543015101275181051856081857298195391284356087711949831617238609483658292283286066322729131662527225961173041157880128445070736030840887387454621252175611597668322015783516224589117796383921739817453767460543776308247336980179761821009177483020786797133796692969404497080403025889151787755907312964845687055238283525651828802070299560308133105952795641839214907683837814567401526583662347514892056287111370141076316547496441557389206501614652102639507242394065976952578964992460754607515863282383761853406159841180287753580569977221939356474281754287255408209314482819260080972175090245587913097934495153252091958357366217815001886394495675642630771650388314961645079073420173649560574755746607135215626857508859852883119642965976770532927276786917554141538411091842148807741584005490273970892645783011482790537049649385011469821294838757141040639424405502442205520996972678154341330916464867365608388923626853475646071100979405841819277812661104025193257120344358554549751013005430176392961962480601413695864769712370878123233198313943097776060823684079122741935733806211926232574358999139890703806395355989590261829354349137272081336474829092889934607122477399040913058304330676948882112178020731720809811496202977568508107765115920119599034747243527982726573973044193609341523157813099145046380255763197238902772879410772520361343785083354965434187028656269924807240251690406534025070552051764543609374113602536592157381662496182401127722259396159185130346438335637462473148916824249807522955608632607728862721038699169891340554762216029908587066966486438692785742537713656277207020294263628915745513934302741722516474914512473416207354379755059544045228684825480548459594336949580321611916753674029449002474269820621370719586003058246328310075876332175633968300580661263301968473575531668025499872193868642379221494277441175357159471664833532553222056894288838175461359841536976171643797632664109370998541680095136815995219663766262857321072915312722161002753411560390367317689686231034181004766003892648231420548603792452081058801924916321204190735715106943538595053035819292640200072770305111240797119772688469231172642779524080729270293441217360954039560192859975940478911949245263619467018151659590546430554466507395644101224543025508849337431352487104856945054758442829236795561357431870956175415990211437959922512681604713615610853839836332692702880226376471917396112287389997170896088510179970280282364111996370868922968435112026346921745357442725491927940226129832034855013592200063921772347182406363337478382972873693793632361692855764806022389049948667025873990986870356060393648074161720806588616996195046541248928860476374500380718938112728360403944384296845018488940579981978353350381975261441135708760512880710927029741867735622837431067431616821189074412460976766639890493034283417394476682202132760636683192539378487830930258599703805244042057521709455924423745013602287386191844334420635744569138110242249266049875521127992537707546532165474766669839989376676001717954532839585070478106631845570886960266370109906638232056201104834625304597065657262100592091228073488093916065172376026361855437287101229012199676198086840484831037247938626021149192573387963547034993652740277196142024746767624597239665731557895291286734406433812298082816554690389396972412089790858886522605078406059012057457880287177681184095237256865192915534523021500128839708786590081082418163883064108836573686903313531067477515138446480720219243199682559993121808870795641101810639859604067561863968838409093432748470720253333507862120336054942197930912477614606663346129341947353401211929399417871640178015734482716939570542132545921194934797962250710769409218116087413559796268258139376708110175448662307398347497052931720227796338758148935242424874678009257753082713008177837054552651281083923715026732637743280488301720749161947313405825226268791532705238794987526845749870842957355417593503057117830481268833231323756472498754680868029237203099756501765360224333465981788063368638615879947756839819160891640506253895792189439156023959106097131153096998025729218843595854591348000486972471719778446911163026571060853324094688374638690290004196430003387811943283014303377551375860567889384947844200846716793047541537293609189096627792327731598595430644941647346527472805237951372306010328760172976199164778325733489816201373334305157555505990989399378173562910626861844804209107315754061043604799535212619041486841090129440025724108538389736138758992734201883805911683606183766277652829018990030371407295843514297805686444145133852691694921139283084683759972153680825299035698574133595318621274380090981577416937043324264523890458627597124452797005063218069740208031284299372868111833992198649124837467793203500301238700746157967662637650152945989811501092028566169841977454569182361819878858620713971989978137542283796453517262709269942952970277004007376069663456587434327044610584426554356961295607148263672298429164380639812253435583480606508827936452956954214009378163580827783064210732709665648191151820651080908667532934924677418228402454399458167562173292218790799997561544870166351739282679966762224460134146456812247325331047875748900754930147288494196799751440404636134012318228309733760127840197441906398056707340487603447556787883349547099820897008448801321414672385301787956233089211788483010928466201457924495107908738357820791878573565531629652206470780909370034352665911893768336664086451096868152455639088765602320679624612724222848830819078197877415391618864904026264791832313616765711758392637298666482305677307940388296397150814226511361845132445809948695172873751795143381852563362795525079521327221259073786260208346524209978261815751492774073741114624550863300199346537493113590667914314234896766939292529839357430160972221812596960152194089219404543933616713413791374385089562371777211144027729449727394624237173026354361023191245205667912559068076667474215860798410526106977525761009828948432592641721743140167591506285184165267921157437266896767883754439681568094132681159240750305400375481003426281450406458919542888962129885978904003144637002803995672395696052817730775215632108506769765015775582525475345918836256042108244205690339010344599547149902792294770475762806520397720213979423833036187365388961689740155020401493085227911621424153434925384971805134200944877139409604002820738780540750080791276602971479103281935098149517649103466245185881477714682741813881804407363079069720820236487482886742710135245837761131843292717490554830663596405512403978078635972497263454734117676062750631703922176361171529924964511823517157030481832776441215766348274309686696093585361218901185628101412579628458878569640313311493797790176648730981899453017270671007056292244044545165934724861119553563236403971304345948197271638941149133010211720588930999762798668547267388125222221942013421510140264598855595333122696797601924181792045941290862091325611341682101479930654885063710739929607070159155176327562312838798687083038483917136575601604663615342012339818651837371430671840589782106206378808413639422907468168135527684012907911899238440850064483900996041436581341507875472836219597455426523982185398384967937767601293709020816974939482545450566489799230737571853025900202016194543930959218043787187894211166688054933020796747507898941504490866467996376769989652155474732984264858974974351485236136551528190126294968928379688996664428700823308103773818167776551082295511519417956621599449736085379811987595311180081313818226965962902298827168740333741123840171373029078516762343812528453587085698206881149133417043602138418826109738903507362102040112073439615983344613454618088944793960416883029284917745261325832842620789104649881341497585750457804756077943964067632779840569019246271154984641072661315287784391455882282155784950674436943250507406516934315798062859907577944673621546708884768051497267946818748533400382222269816356184181796258241186428062108939743384129373658285996436546150916563372835883599309660269142793861475347358183615693986362077484313989327707789960722186547725274465611746350942983959243481929690494537950111448436461817328223440814029226009148009636805334099880064084473748936265630912594382442210102785684217532810647423351791099799266550546443445115795744976478382114925895492944714768155680043604254048897792978452900767462757800375653342303875048461296307218792319749116248562883783363763599785308542708822262483531632419307463502058030921476486311982659313660569481647809481631442410788839892844311384213238697165499578163316286596260716203576540682682031830234498783404855390575230948020511417698169519346886804508846245538850367579182830135868363837657557949058975094841736812046612638125214554017255625736880275552793572808419831208493297098779827056651780554629285946766806176092502067133493979203461104850608751938448242098784150300459566426621922533139614494124787038305311459812178699277202713526820089185848405693726767305650249073732320286529778685514137382231521846452500705256518234350303489446822624658322413473467573080443862122841301282777670987733623396132095780471706251447674427646392992402521955464410528929699771900866263375437996870312725061758705227167083356056126767469749989502340009097012337692256858792602807887989378028850276373851829216949539812020321836151999332416231573904728053180157703754684581885215854582854892838748848432000729615345430908041884209244599740554616880455480122869644234535538190091895094760292719942066325394025204000512901265392208945318840011204882911515833349804216915910098302398629972337826971381492459158508198182126858887766677598083423630230297207910672294041189922497111327551527404162217383647824655898673750292072435125612408341561813125582581855981153984642066375660529775855667394038921849642373885682447963263330204805855220449394284439840076252113893288211635549395945277035672127242489444380906602766701719791644651192507977119143045285079862238619872919184321695647518700986346562566489227919364489792961566906840161269547023406602517718729026431096396224055480913614659194843161470529153262887498524731714382101066388795191965938056053372660905123513634375837807105344898345812923479102836326006691438017596889833557251982659519626898717707862935772614600585028199390035932672773367449881149350079319262664694339112030314938631015822609359893110139329450913373417572449902392398541967927710121212003773741994275091321797271391856025911040658526122150842288087402617923418024552927129664600451953523675288614541235181805877797675634333481027011757202358430828785202971824047169469132754423458035320252995600515993147188082565724742028417455347959597638491127983560956230840048873895183178465149091772392186567494029313249233263351808997628246331001207107459902138632409342122850525471194705525817052304762881784263866274915353914779832856626903454374209090669366573604931679921278904324638446722681628162589114427546548584025631431935427114181125837954641477141237048037784105524920667468507460391578002442053438441791414200946288342433745119940550189920628596890215497288412673818731478890414978667065313279152580376472602228208419434720317293464829565093379597543050541118847633171768709008438958909663153383684179970998042367072712955796974948085137667643054876318539622540106926745380181378284459936534573711506230872378362938589390452190441088973467145127165930934786516073327286872043171802797054281592593968348561887758692747356538343829837128763534114202005057259350182000946031384186700920870752416308303296478930782381064330971018185299700729456128777957820912916225090913398384121474577997420818189027893632087811508302539727358076615284958385469908726877781365857693961943905355810597022568299800012908315233688733450730428913027075371684699199827940115651353190578321588323110587454126993645586679956516094624636148820813034348634680505897803687438932755547410358476257857264444486533177672521617793051236015733385684704979030947191705502976675937521380210953185023315786798322027277013692269564608646345707597858920822724011699603563452874592221211148774233552836295574845581457637150534228961332352037513267563380481378236203313988809566782399730796364704594279160834209682105363301128697513886235874161195926885252473648426118161692324609897319325007031677677124327634786228044114232090172678933930647308515620312688819093552987797517316993923335057649457685607089070974577941471437755637926658040522452738763822560843812486952649082168670447940185894315655582494736031608271968008605774273239653909263294662131146979545559399986297289279346930650998279027375343686573724648867736954994390636749424015368064629626900974406373399266336005324455088035323180245137116363279810577195160803662592985516295167395848173770944130562140187177897424481256659681841834884857994214509650246870003702561691330365344228490036523598459804281231548619700477391350557704737940502714105231783472795626229879970440142363910959171363155374440974040362725508522675062608907390966970413234109298448150892209270166345434198094760010702813177210273995174613597966154646017251107839230037530969578204054519711966208317812318115670941836348781407951846069024072910540789074247299558151144229208015240665434325567921228286215107133384699538331896480396107631614246039469988547347795008167682346053131569124673744230598676149212719675053897972067249059838443443141401764928074714680412916397784266259405034328119499448683690862438972216166059766507276352165270476919463602645834808585524080545193222762800302070918712827330404264548470599133473352211281075174607763757751502284147748496984899943639022017011300238660761155967633947151838804981256559090777081375721710656407278894519796982794903946758788508833704534554510920768441885684258326349331265741626831705143359693515345362108975401624678881673971505331910747767567737484753475570117247295829679831042508482645361052306446715011486596658484295199041786403153847813015420594690448547751612683654549432554759277796088836451067257986160811986498692522328739296393984901483830925242059402281194328001699027898352823064996114107596709981016283283109121411129874057249512558238688423116545686410627542529813984213800204846423323311178878122115406956513169623542304217278220418050243782137568074102353382440181403221982868508807058634011825357400193357290961784220200440905840266904630163566352636768761967112599364454454846009938410870040690181384470076762110117062467398096175912910925978518016896042022866832282808485949045713211049273541821878555906033687823327768964076588754478963832225071476303839024619915138115686203411241429764139110394291761502983086676704548283494837906502941703737976002589178522842580316340243879711406303035662419564699351887275473570521350879501319868461244076273840269363299731057355181944381506491896039751648755941296496587114868438741380526911427169618507527128412477265292179372260998262368568074560019259082001785004903124501148333841097313145977716840596066302407897719195472335385848919971310298328427109123810586565611798326817229415951209618739162921204174225527984106534571797504179269241869935664377826496480831449669351905176764847492288545821196960079674095760403926941038536817403848884160120640148351619040002992963713232241180704917371728106192590831406889919235928919422279412110758612441534626917029602093407877673688561665166890805528076647308887883756143813299538812669678749857277773869394243181449498098465100174533367800743038061657085975625160321919255995845911771164703161107764910015745485599326176972390112991504759483225385748446356326397737521204562109514846344226074811942134082378717906670443423326150733806722945331315046934476339226695023661023533157678899888739814147580077748745947625849425509079712944376036791672336479483024944113139742856464964198418763880834344749549638695379695106909444051019057291157317253234349789083942797876328823863424273036277901820711572784146863171564672339172068331708918291722725014343912103378287614890851093718470592061603582847670423272607357997170197726762614443720124363874897597101910251910505692100665458580224162296179463261757293936610395051088205928876784272383736466487561126909671842748916568143213917349181404048708384287903444285640543777977238166461243736923499643451949756529992315338706626115036474366197880336546310864265347238645341521710215354758047767369702110116008403299190240806815354981751897801817320416670010660532462719774208374940187958633095184972913301394777336035880475682819751571093037582223961862990652869759850916253249870129527210547131548171889636185917962620944410991670613605202421031753040529483188804540480017122977963303092643753034040543930526119080361507460429907119882539947691297153695109305316131540214712155719297651605885435016212254150202265500330710139006407876885879715254334864560059246201858539831104539336638514686087258235649407068232107202816337556383893243092850211056856074236902378001803815689599911878102681714313063783666084928648519990577037061101001248252721472178585004863286744865103835839394732563552240999788550899383386840105873026632574359558731048217519501703079252858143149162814157397044062926806024879581656295508101001101213278923323521366971613357163703551521222538034296690555880404769639504372026857062901038703666473847762372851741015543176546715886979184110751451977580886697038335744199006854021536122554537801931834550894634838381528815921876884732871645943188690036460567128338060686327790862513519644072592700931146676889781185102050142099785716011795250456118324266735357846510565567691780709604510207971511670373024621285972644169396085034648030080511857535390692689264392944983785619725955796984313847695888645160746054858568156753076007669751565906918153256035212737530127925247118709997084525115083967329869685188560198837429501298377981951362158746465359367184040177884006248769365046452541097167149863080750657817409292527191804782551520802848667817308154638806647088861117552473040140926003646450067867798856678986581127685147638612933117991321102256491160961303098205677044808532642692513736198514307409490954782381232847890041079835834960509204355884395244184381601756447486359016968597752295415530230359959270560958335617685342058132841401067021417856029802738724291443665159724021476685855030657509612641735309067300850886964147876162260606025097179294280397010602652719886159652774903265452713482262820857802562251090135053939555373973587404378556173546073999787533854495264416197983452702084620009571659131096014766492268150148931385383727180226036464547007597417973707976295323226129125299881580235781742116787808401922134980243722630950715891686588133753226760400750487900201059601258312791752768097287752891481907991943183445821868927606719334236645502713784281155616024614782439166608175487940578677663189419397592965645922157211564755967790409819098872281543884583204213807881858870746112041189338191602608459369459472483264473168764965968713146759344035675384043075839730165576752280480065524795586616451733882605673607588721016399463045359023818584111846560354983710487262775750566111356934219723410710632547595413422212172594409659585605496854141571943688508600530205746053409240863739361948613377522250423753595482624311253929303594087221817727239393815721505207862947395249630309132277667124770951758563358810646745906269685771178375986480455212453846694819948866119010014067683290857066072813033381284528438265794232479439071560396991551118874780813297265706907867851689929387609246936530107850758628385700647969703401770682116928840542575164236209851429047712059472028345590880101387727101541447042453359382421222033363246365367641560964699115932214864939929475993722136138371921920484572642719270493358795108242529212800359272959016212483006144479762298813721620260883684051204548992377904952340022333792652221222319088404032722376404061420421540355950204673236954421670797826393736048187768384597384334115000760667851557331848034047472026466472839129814277173580187165922249546921994097324165602655351243182922816133238320773056022074648642073448466850550343507594981658659659933440088825998750319590222250129903303546695428852174460695354866497244238608336382453184428205952750641593806410421864453140907011196613489445231365050316467380187155743055426997850443475823119288364856835911764215705110609860360760563681297676717537318790700112370502475490057342108777986760478489815016654548705884716398051378055052821518596178643429794302812271782366190290035447302982001665573829538560418506959975838406876170915772686316434669997829600087028998541515890563455730872443168712157843465790407041827196421814735724948634603155818909340408637293419375842623577736555227627759474962115579356811326095019214782704250198704357936770126038074602023701269610919438924582380724624809584212743380152841853712918969740808659623846605580041395098006227198908520627256805950681652892793268646675941272586889156517310044707986524600565637211945489215314806135433475225129853873629963057054689103127949904247429259020907116318218638571766000296964130051697340238418913299114877924306063572794056872279251208306515330989893762208095354259017153768276190769960973491810064344904942235401182450177374947399439499732418252603089804654766156661529967057781034051435218231087757412819653872028470007751115374325925069936024597062768598416334109775816315083531286169930653939187290348809371148923327412307070785526233027914340410608245537532341151802843219857448051989062885111903572961184702660929805989322443724278363025452376967268744151102156729399127599031722748613385426619399834674908024662353040489965332361718308436875027382791900540544632633214794979684228462249588941838799053373656991187119405160458943441457896401465324045776606047242878391991975086472232605932725499796723141186638992896336202880451582025705101901563266249380692322898998428754253517439637457616706616579905473372644318472735104323355242414195870242325225225575815875270338214210835321219055434497947706604769538224069751129318958738434816613285115330932374106841880478130479697244184733323571642221111166933669748151159764744663577210087049580855464598578040412825617568721451311265230510768281996479842672459751525264515363686881732923944080588671467272064255590311326359090733973785792422256106332493955170243016220386934348837791787954373951334083366914152470539985002223670110401100083221789733963579382817665270777044511621408477143111289928161497863704381513938370130022392845414455935945726578769273800868096831927630110067329753885377856924997743688979659745903191370045106560698192950100526264646358365701759739409973579830948645516757542118834673730331295382572221578767067867114561160848635607925440152263863143607237401636296580837542650183775986379277488877868656303985919595157756033115582154826293813722820333915193561270799949247536469441297690840761160326449455186285054037733599342219370601060971439535081788636216656912832815140737172520874567251462100558399204980339698992851298627830364889962939284926264111793627869931158596244534774928756524683395644667968872830101285589793320595990734672734286990276645221112362676990175712087967002383997471099105225874088206189464132490152999146423410916324006325937146603749317300135915334568767040759334533548258385229423441131458906192036061222656646605764303306853084689994558107590487267466031233726702013344832532502539567197110834022689961563282038325132448584923372991969183337633202010626498325982493744416863504877022097504312196135635953650590059316067114798416326799224467705408129614196545960749291576814618325780395002646344615517675588386139692156884226915373194674504825048453060106915365581439956622884303088089649522156695463349037823776343207424168177597470715577074568508257437520120366262291079142397222049408819743267147852289006117014145843625666525969587342171635348865447451517113366878064694463705567645918044553239260173681470237979454715422951868885313321558632207479764490160354330959247287326877934037838681664634959792694356295804390035098061866938087007907459675161827760263595879801650411177390962696286285554319516737804879306991948340987978902077795210027522176369867983961542451573180803794082502561933236480145754224769912713369019007653010307727819762131807414756074536379650381039191967648073138590975075157344094943941897931548359444366626861056625311124153420286582779745179662946089965798611343089472029232678410972068521960544857080224679136256619102824502064158103422516218656243426645951540192693795668572073783102995433657278393825581649090166639326362956842584132323376176232933875657128217089434221904541070064405994580336297427595524626542862450539671757619277469297562685184200708203536622046259548415043920575890693569795778473924630447168124441172722838966410161701580379824358368871986910277954947291166895885950711911429845153098905325954629403711409234632706678917361405473364349779362775296674585458351426697315772128066543993873691382425203064088293939632700589255531511760081967540289931876831927819987984376836034568955160315231276974135200798038115433780728732222842232314520249762298356905739622651484626913957328212739235344905035480198095075092424921662472348985949791673617864019309919928652734902526488010584371675581955865946938123932768099824073974126340034534339204874352810226801062735742741336285934526431696167429145438274038897990161226283493771055302543652589451628511098452896839693373238028339379134835730325854250602073435172173691177683432942472374669790849766205903280553333582486178383049814135528901743107594130343892554501906405962586872718818170654542476845980252254800714358729098212630503272707788434454079121263008278169114937299778806722772346598802387327145538595779040801220662840521318642393665872091123322162456969959660943152015076706102241245667054798455538265202272490612919062458787937562356583802467953863398472660191634524546720629683277171446609305198355613242227676746612025507835594278586085276066141470922307689939150687509928047172715697132656192014204220997634942911256038396982703284864309735694744219840694896629097857367310647968189375736173642618630079396060354019412481642255963830088857976704734961071606742000219915924756735936716433941125581299369934317775407991049902463913329524248748404616983868444499168162379821769490435508376011184106927689583399661593114543129965669600358064197046884104839095516000577884427516180111247681659669548175963782957719262902283245631500817418901753403462963388323289034509316579479301645456340752733163125030552742861074256062306690554828480090068384956226329935372346775510627047360804249040854595652272227914117888188643108465146844937227482350477587231706802762837922964868109028260303304257457403757754442563793070779103149434290803221966681383286125446022681867410122495503962869424739904859522444909684845873302439562233578773131741223184371969408391498585079464495328091738346426628574734998746409482350072674279203495698913119496220632814208588722783100165004862384914066426295033036342156023979706624563696874970408099517178401317850579091391576325854040031081134467676515555592391257799339458230817363402966611285280981229107050557458378010930139328220125179967956228898425307142538718245566764433504126902894554048932097769166127461817736694815972478814540637024536558763776717366314665903066640523749893336373729326067645695432790730575961150342516472457322934838038843484080275953000792929653905146393441316200150065968933567856802666890792824550374235992081923485097832116343256343286303855340456346104000963861882072736914551402155780803490886115448208117813267660901866660096506426214095324437368411007029281762508327511237737264676618278110310144389131645792595130662154955116110994334395485763304679760200347141259071030677650167353976910652514392532097823560792480416357211788088290921358032267679790209404027816531838097201855354542636296947238678801971626044071108604855233452055055940863588985908155228526645718602898227492606180559804377758686562387074818502921956331756429142332941806597782013381785211595826333409865032954863703812932942678131985303456213793688866280682502418981487121631571713194097481521388574220702337232320920963979531988489961177143026016768530703695810480831502107267962645494706291287930774303315015011610821700928005669291551815571006482414546407238656400107440455415648732213564896944425552837615787652713659252883850383097358492733393624829381025554696167789452759300200438869884037615349679903336321325820702324913125412398340439809066115833005689922098822137630948459222429110534895871565203111360212002972691095448789378621285361002011599966882186518034917083124257686031910889022214078957650811685424448890177741922608422565910953614418898363692825555799354513819701144076053835395303611132282622336452533040473593707450489009064106505991928556479999209149583681570907190915805687604152739262733600888069737261961963430952779609236304579151204504339110125891143286150613151921016774834671231963731542435303257653148279392655173079815824942544047256241158742017213264737437563302159416351970707588994105479146281562360143879054120160997282761326758867740043310982952685809858735487759396211914162151490792597739172383188463778252566963121560469838797585704789130774061206430366363948115452866124540564512816661682629497468424617042607532059474669672074721639244583379708908794211648858647305708451664856205361380775600694054780191182805178763063348881664459268135263574871050152102769298075103488208700612690989466213163340406090610202081768370263269266185250779826008361834563679015218756500423164956036479408248530312948018175031794836370151485197878592181318433608226286797661170815278718264994155514391169413664066780394136058658129162600098389909056240891538354709800864842215163622526902618968457148036034722782319638414024204670902558029950828953190306220562390601266013651883477996216475887302752061344980436203076207908809177108249146136742083584594159284144186808650047785230364073262155196648345627300355851064037811542751511079739935721264177330489036177270305323376804848006681366165353310649423543402975290984243992700088737326282856585241247675234336959495085296503915777868558784062189942520932880284571689784883855585541498324828918324624780041281395369155059043198434265945961221349585034564825745681673323016474235921864279606718565541453001209974023838625558506992703004717684387546836523275392830657871464759390606093823613751075691703140323586378402485354504910140270840770967581218827826155295592863141481401267085968076004776250969500590812465987339483483360541166832764687850110119217224996278724932328654910045243208869549975433630150262654961692440749143745297197858824509072026891167220560685674590021152172252405949822448814826178302744239390195924288048519797773295510573484466003084478530972162601359173559617775545372362182012738758213943182362615535166407466724255215671314234898848417015903961213511804675886740279356527804297809358539803889027037726361091418410616342433383656133156719350594035614292687575472023559534361039924473533624610251864735403260555125662869825979367039268333887253190135523246065268099444747843881500885932884768497308030956104395040120794852994354077218365239174598282185168834383207329128724735941177981948845447034733486112842509750796729034257311129693441225134238424869449545422580829681590656002588502853627330611112258560621979370352999286306175376903148052874414252048722375394888694858774946294796705820837081773862247202813422858343619669075189369654031557480406273942023986135156102902581615314753005994936338675512737435324454921330312890839311226520191394339380266041060311274462114043431550478647325300824595711712759753613712578364058582190103377474443401901042707646838547834966410385498722978694812637104037791145232216633355300070997921401341614388343296689405183315330213488850337637661002367954064092052241075939360312294457330238205276544175076753705687575403055631822253270692997926415001735935057870247456003311036856065025281807016402742198829393922280486081984733823870815802038873007630391270618250674766146522358527644611811103386815236580648424708828660581396100508359675531551295883985261826288750017733921678104242764365790675022323868629052133581268791884044455761016930291712276285878681703044731103014220760595935665262416432047227015399953828851734306092089538144095483127468070044243131115999182908163185441383341761519926597935169242727733342544665194848228862466092747544795913109762395985526394629658917525993961044724270373713706730090186301571702081397911495789943110734571838079048364233468290694728115300183652787736561630907174063885128831865403473079570155600238575063761020079737592292622730513592430357209092097646959297077184742518507291769118722717281711060403188979559378862040671042727296596895763579511233506378907266570618321880640374878661936167546071632841844487905353424739903551639751261723665791338874593874227487063677692995139859159238108482784439423407156904099003781472661005013948616251316540495601791398598770850189670840263881750919264488318547496780184867964112315358625537234877387227241247386410752256682486950569140823532508985207197019046959214187863206305303089051883496111674620150874369771416798018827304849189194604686317156325447509674691062902838759774883747162449279843030786758248330240943982506017611002007120564420755673298063548530909002502288357477421744611848759599052380384329124781060767033739189526187045924886353148643889561205049878144401252501300851616056513639622964992657269398172760727683155193639099355990272492099720141723821137037107196140394569162797505843517993610023405449220476341242522606920297514107498231162386286804375234914667626175586827763380707531861011129106636949418638226027390916737442951453815091283136605698174853486423713958259092681271981398862294256906740201087700411164089765669248850603382106266631233926359656547538221733713394428528980878784979291446646433233604087144398930925156678135557367447276226026812065161388080107231070116324255242047207821051173103928250324196670477458698102882482851940929179191013634657332231750471271210980971525093598421860796480909547519037680578022354739113738212321037599845268803776613810183184632829674155181734314329895424011140597729759005530858751376119525708930436591696970638932296054577347255150886578869355362722437754566116747057790537114977692592832696471757588604496305731022405888934231319450021074421386738701022003216872960624071162703149814451891072091428279110168004788671796900668923317175419380840405640836984126590499670489967060637079626840466993738778653869472093779803219366238370504307184032040013324428982676656705068763797342192423950740523196863709536539699270861043362620307166394107637180336133241917818761236209998141377674412416576317365066049501608990502598307176944415868972364886044658915952296347542142021467003548064017312955648486229351196544908274714452459128074493883550965682239864755313975947232154899859170734666609084767142794224368396323414195100416365843479404799795069934219858168315592545007817590322165889174693914190996164565933600445747251937782839629570230077799133295020732589595216690069256438909582061509985399056993322494183508789252909125691345094549297607158226518276612970514567410712626059139963263387376830035003702075212964590763903271192873590390402266037761444623741115928367836500526463593861191101031390681330709510010059507390970963847947246659299590335903988159932066406008793488603366803575884202485686765373831464855660245067074458998641628918976888512881348083705451248864454907876403733749567417164607798515601491117841615014142336372389606589097918632823905405943396277732385344081461666595557681558728823202373309761844266735343026868558438872473427746900897858492615368912316360715371060169767300660095427262865213529885871725859484003232492001184339907678295958389065334108469056150771752385008080997589209561967986027579544786509111177778499068336585183180812030731421857928757213577120461210353165050300542921471353716265850339035004970729785295638454426036769012007960528903811712071885057038615387685959171658346938238757637824792663175223948193019064953885473032099651202912144751267943743808787926783149346511929163454200716547282486918577955195564863168896543711438639230449733312651705023947675511300777109673991729904954222056401645952343838975611244424068638215450066871579991001050866503497973142727387074449849021378120997781143876686700490040764133850533092587264818101400387842932738241763142283018637152981957157709295094288434004824963055947467646703893068224948850204647274294740922067100523203259068107084900474699367848038777000963793205287971627902324772215580694039466735102690968579498701349440368086511820788248668545047055808364697552382940734397374244211309401697766811674479947424445936957006135317430346161864360955399506634461540969856360709701845565548169705717158238393779649321925922346158218412740990889200603359019438781151314142237656515497686296064489134987601861107811708841379403197571525407692327517983493834062347335945657890937313291094108404337754999507952932584407475849371565752455670764357469045912752442658373511436060956442421723460927425596537760159186583832612667571590104994489810400088625809905982761850175142090224237894975229860123727032808939417118354279956859607436694562710557475181871087325616055545623424148021173489453659824303747787810444528097940239676517096074444761958041546804198566516312312020595255913917757843892199800621583429085261703460289074153195372421684450812620093252423973153260181317667177521119955019881610776566535559892779477811621797150191847672267069042628863553369004726230638376959077441759231170362132998794398839963641248766337647397164628621749501727069789996565177845075905492487408106834421993634251492914554955730248974117892075748942493382202366548975173012946924808173929085637468673400039820206908484792477402439701310028924423678656212571576736346581281827909670024501759706684173968276378407522323889358477598114481344308222111130990359617945003538629325596009590480440845803414489512127755594445076271328768396558572960682260762238608981875210714667646341013427293604000854477970878728543149708881647926645754373830441815534205963541209907575215570600629630292678830576051665468398737151566299719306528867675274027673293145449684947856618090804815536423573760778962566400199151621652088459677886214611298779464114255152619770485972679669430289937217450501826402590301132280011074890314571746191722740104230066935234472767795577798912172161339990361165095071499435496969645212935459979201415730115926037580173342786767305643701304693462851957300144878302778421675391128782691661602676549814362340017932798542134383453021152603550903264581351454529613122509016132503819214829542594124124837549671311322870360188609403914551597612496546229832423923552657354073826973094603968501555837535378512665144665469926765997095307149782380561807384869053730447402709107807807304438043702379642786435988995518553319804391403301217993501490306090153401061821499683894487372180918697113205387387701062518422681812633796798317946824888243095006463909889690014811117389241740256544995659951049089083907800816595418791059323306034898136084907151011991124636175466760947587649946616657988049738539585613205278213424375641517129014915186715791981210117755494153752793148232165747720385340787490200549356339656602248627575419502748995838777073348677463196510118063511092042878981750423790271299407010306363952152220071671294850057092787783671264743042067193110397323746328256435410666501062121897308496121870577896958858259615508241375796601985523994345297009558070533141049870199478902740079337224724254526172458862726854248936664376081269544830004267414962937546906659165288072817689804851658284265781356339887301533965110261827403287634322444837413060245140037392221070560000813527669150901791983332945951363260247787859353858237868033640066055794930784648659291449777499556269497613873644365288499798020325190799119075904839822474856284172601952117556420776971470564213837572180183351175490377571795809026323399901837643232748531410985258764551042606933569102385390044316682525499228729240382840313897006198163201944089965860583867722066502570986065589018758966112744180476373422161303023274309739218767337201055324897731010853923865314251747744596110328570870534604732575561359717261603604115631714152075851439155350122616040037963194114383339469231267726243905270400103436635546568275005303043810741895325439887690684411200176014202237716930859002915784143229318810844088681949117411569633580658430204146091045882803640533265653147798070454035589093288871490415066815796010764972238222948963397842349840838059727657059270446727514728899671695240971621583722076850471916436172173450674258395981796037222123980703187670799070084367546233762101223351193296594218782900064708858993418464983325156962179968646669811238550907551351119507571003262494020636470238209701924545552545517144258022791774727424265398702777264558531026996581847753582548382282427797449001667496349372715581260040884954310065833831483659778802511822543955846918013600109422189500203866431213772802397888987115878307921592669468917993836606820809071078843500928603469448923454487596702574299623829763965275067691966787315065476208722699075490201772142036511744558073206263063176604242993968149075990553824846481059984320771892245786082098701453974135816694255594348809396412374055556921910028903092454760241305295936192899352162345796033649734936958622216484941988618303896732481977001474749087691366923037894279280378102348238993104832991286015617454723095473358783948754143637714953218575992882769812599065918269186704862797713167157829081650203777867560174015296160928474308642501491812816599372629096387743171676214458091871755856309285808246919742953650936402074609127618112457109217749404486211579957875102477193672834712188209627255503458154001396843616225476239418108233644877446105337216857982570761270503139429709091813318057101505052389402267288325142567401493777111723504410246985316031520822113958215816844683926704616664620427829224421695026868784514586593687622312520254718641812330637743876287505164701073265898483199976266997799240923169295594612220117857440076211258087337487485011211866493911481498066922554316343511078385560039697194467475619036399131605659188897342834703016092656666410628714736657549785582160153362889777252218560381557158012396173645791462244184825040657389391553806692399916928462768057614952244761439789500158644799319892879108948890524181623633647351982073687992041252318582543535764013452354547104904009862267864736280270118499899227099509646273186453362939489336634000577075176694793393969062295293152798028615957430778423909406275018945203237436103917846393785865006165415532954956306842141313958219448258918675205104587784368286330864705058311383142793521109228489994252045007827883288197982775969417498118599331261682755923155614756517820733955075882499122550575553112365267455616833585928238327998191936848634106350605051287515372205760046427508654410127049075688604411389968225689652180030285770891968393975738740281805955045469509633734167252094258184485001340353890381107231591937965368603637872062098449882294961022118797605424460907063831015142593635102759590058351398149583056548152723432385581758568548635795590823566035740768793987480053726672207271538481766814696762795116724337314325223945638214466668450459079898105479035706275004170764352354856046531562084335344889370797651314732819668124062923795893939005828921310788498346313148619700022113256421587551016446219918967561357142517496544404540858858703333220417656067175500818828467713632309598894460646651146354773665415366630944683935702671731208802328382894969149644877984394962856842525366354200478643853095655812231969571802497335784329775920022768736074122884272990312009777669711713279398945474383090617494073975739326847445882005156807875619049229089039651110217433887985258146591387622376443573301327504313695622660370840312699888176856808732335012014770119838394770430429644731524385738454078182695419001679509429515474333453458825619673308400936230631315515980358901019280200387929391649817628444806876737407230907522677747670505034186698477362374749219930655459974843926799898327545909473738266988743503028937888013161106030618258198551874223888491812960166208451221063520067360948825972906433388202426321542338075030230900515727622364784729289461631354231452692569686645038507439861665002321847157951109653515755088520555108202760707289005939647089536612797299318808801641525467120535551560861873695585164297156459710067854251715440826332890285260307075184505881085727468279728565419996992778645998539158192616222178501268807664212910462713796905307936833645301379575350645183984206723985566583895852751542918682049054153320992663574457085118075169613390610144647175124022262540091732080732129338679624597643555643691259137869566671627413668022039031326116678018606820752539716594617303028855567426925077256242056195939019139654822307467701945058753068127354958741145610624611805381717995276118650154577292898377237116393238332629917240701619054112272445382930726285802143815030996837246461532057632284506855144214331785132344454183426883736792477611408659380167927413629028537157270686813286810530305459027381147731361106112849289643936140653731849921373913156117687708539763888401861667601673910417042337624248617111341143338764869175783766860938101936463311170388111527946539807342404009684913696030693250330483484802724942412736580383312748522072610403366335996816711471948171129931841918146466486267416833176101721712760654203505716178900291185759466186946762461271729519342754227929665924634363392359695802677679813939284191840618029798099545953851302697251795051643197272716552816503345560152215476737072038210019187585967757833227811190132964803900101039802388115448751635165881557093577330386950195257215985683439878217654006184409548007622695856338746756116301416810382883651478883166721399383395847843229495308608321861368458663890710659420668375438037879841206712252185696363532965818552628977651460637087278677699858282754496905125275966284204114159088006631725998905343268303148268780080296236625000851520601706431997689122545063978305895761625811195436775400982943743866130001155971308396351355777802980354821810508756317299700283120228345652414537342616126096094386432842363430704765543713573820026413478674964632271617053273444294877806121636333013653510135831948001129396787120245792145979018282613696626526437285133561045373093156322114371268030962818006839691831985091062853208166355423309016409585887796166940697693059754877145426102215364584357108761385406727601235641345654208415182982175722207570374214296879043427606109171909539914052876602594222489281584300939140762918668438594664150200163420825465726702865302945102798477121084984903467312347335511296080076904226089873543190300458547347282190108295738607837784047844083956806388284834363164455975333238404328393735918610917877839985373866588303760989194717336775257362954343040799117047529741472031661093131753018803164016899155761946624433574580989230681418102671285300404464772586592176974456519776153238643860346616911292629612869331156516567262519425434042038621146884307604582290914612025300089342327061729947761987103987132166492270018372586313608515477001601943952244432157767092605729075564541974285834483379060720615440929109534669423957728085918707517116899383173812638208852604459536628738102757443097247372668531927208770244640034566320605062121664190033114614554504644970942195789488543923935923665144826677281248252161777214653348356709444385711513160980373991297635967261036966162132393648680140560839979929264187114081357555251090582455112057644499948148612656596957250976780231050883946320313116550752806359150501285425144019725546218269599029958468739856255956255361063112902601374029926297675994968861619261542245266923354876854294732281969734979341563585800796789735721920924450889700263786661582455686603210746184747904884653158160102525704429682519958054006565185979595639962676964638080922356679726641618749535380364894692889561826187084127542165196568855585244791437473342379949127438746038554492743393069647058263056516544035327772791757849224268804652199978425244464544667072102670186453563502163515997140725881285795142892307047016412206799738008682059830200042020073952049851682145006016697672743746483161301265715046514374909679215591787347233624109044851267877583097711070856580406242187685923883567239095404945964707562193914799578688835208970252069411752956959279228069001015774898717245301323398946418139875979188608025368788853549216294332054489341915099057033443328421176122773485859895846795234517353831385788914527155225106181854973645899390131987255587710657163527506983592507673600446422841801647545805896786493574090473301761304330894111610222021257815932091381334615288885744005999482183273392567998567991226774787362459005459311759946390379755681102674564903361988163707523872173763828680513073424960522100416668127665444432056852480743951851813590787944347984875791192029921275503256635977051963961276194261323506169820000969719711430663202328655112782189138965620207934113233153666028249372491246511944898602297252873121961810523223494741885982321607006473737285975960152632354141901120042415473404992337389143717204848396147765070395146751152221782523910367088223362944680944532263835577767084483517827393231163418492893682081406682916275824506974129967044460850458379039063778505601192570064355528248107946234180881034595838620795963595212211760975086999196071201404119153558979356824080697889797387981946042401167915589674607844534615783008844103640242570736474464840279876123623710487078229168519002641332012819345484132893416870370732917300150202625455989674319299949850419734935357472267621042044017388312563597306770746953545850217047423960732136815996825046405479102655804853022028108643219608285026992506115520457619960074353253531999026300667831923362957786703369986838431834580445143994121912938999120006087650280074104952821669236707740977130796527606101252429005417756227015462098791587908253942117117880542892688835519640899104185072417040505247215866318237938130725459013696026592450152352452095274423029142134787873666699263771120110690436829039458759818912972468730425076993762188830851272510807879463275417002570452899107730825364617102059450309040816534693062060600526231724975666057908540604251156147128300976420662955828342885089158831412970567344906870944469593670925491209009409489532946977484089419335554156906602109494553833429826086664457480973486356625719873677223915457078517286568228691346326543800815765988838166240207946240489650183530831998649438910109873165129263121877646160829222301564321669504178088727292688160002570383512066408131631157851060934497607940118435111764314193323192307648272126055554006858269950361630666324445302365420379663594154423159555125814773316346689930878237431033696389162849766687253740722055046932297705725822278033953827454131761214688875515259514539562515723588188114034864389943906713656730655766505761440468304497531436717506946787184918430883947796231597068354730915792695583960473875281001902504426362671726062693670880190104063887923629703355064565913256910927982801265580911774077552317467510467329167428067933544628179363255025158565234126518936883756257144456324602788039441667449774590744746677964211557272666516985676321820556110073868421778623266436489241943283497232313417124860188115363260244064203508550842744197223369438748759086339736605668250782995666104831817279815290710819886345242097361551727072920222050936939984691891570474822659656610163774746093106336673010487510272584152303770579183907773460215273778286005815674313376916246199552083415996156244199977940071774905405152745902144661859429496813513651394643751731274755844264009994098564521714962361693874401066666218130462212680752541048684450216450752992790192771432796864229193606003703411003023580022425884283104969867562099196881579016790558324228869655174774899066928509376395359852883724131617278596319559313471207472937666690256340773361028530306633784474965968232765972757603725065915123182476616637774618051465175610817882510966712790696574317508184840449913484590300460668845930219184242987679657379968278639863298704699608162521767253395276915214419873258196586551868053536862671338157433679805744868358343723088235781797783252001412070948659685800919677550670592914524459278306882775466449705813635623768640030520216827639604030879339994249053532786062121656601202481926066105953839666808708204068830094477975419943845486087608942287343733764838843033328720988356391447017878319985937464824999086353712733896561567901787301540417749757231709094616921733436852902985283041223076354413566723128174029806138409591323677902800990579914513399772648624108941899919907347417504876930263519991639492405012441850152134796159502096405838448180986734880742564486420662262873514517095378645238645205833318310356550755451787665282549313625089932069841191937000570414632743132300461935691884165182867899744145190027242684929472145094653052898045510719543797644087488304382965200189818653730461707235748900433906204993917891046088713409231947543520201378786778581863123790980364006466612369471918873736219305018792808563688556162350493909032923168376896182147721441847374024347190815729978388676949010430311882489210468593426402983644653980566507807391143347934953075713101041121137533227108196724294036698000224681657973150657606491204986239023649893449200936212400341084790326775402289096043137082329272219870452278356529334000874951360239844082582462141578263115080708205515611270592045801477979114449743204035676905313431570325720376724304817324212427324662326664898961068335890354667847878110720773226715571480031892381526149332111552198134620129526317044877639874975010778380711941296661301916693035534457158544168596547601895534528761599043932690081615979358122005487724864459357038128749345951612129091326378766846998017119725517522557585715063084583860993789328014330028912304288191957216438745096197721008603429841745840785865414799477606147914883048965959376480542140389027597215563886719540958989386795455254844810465288904787436153836210049031432922683390431881887551484060690870090030275626387465937388368499830456088960917946690198711909386782439599291392314374500179438713328583854869908445010943362024716685599693979727619162144979193530257946920401288313526469140104148209693032921663857157627675419049292820449619543672412512668489329601637466815765419936350951120778593452162820484538759462941597864299171277418553008331080316339517144388635961058139128958394461231591954342836880499825320194456675159860311356677483555270189741440654718715942102676481981589471983790612312544437042804041601827801620601131135711879526015992898496664207330814540447929394738391015464998227971870766395900925897935758272597791770443032506254966586640440406268656365591787600740911451147611557430527830753928198964491096262983354782999986323768811813425126190693443164697006089403593878490897987549426151553611332777589209112249450761810172137846605128110682743358904599546667132620436199268095348605025187962279778576023580059028554584990329417170327652897715950004432130884537346817558177845156020936986715174279868863574577416486390794825396033374439910235416038940330731660901837319246699324930224393246088082525727105751983277780659174615032602973451060431942649960859247484009749049153426979043958013499921281147737718886647794779501750611024788728752035166725421951319239130859555072406000161809434320390805824143443851942889006853402401606607793964451538055763340079697105780905149850557647042774760379018976327622927420967578219328465215121732312712704955466087064727389298314762093339648385037508872471909639585740855632492080186679052669933460580707828130539732103885104121309660749534794561165757107371805816023577605637426552592560476684044410489302058122574175948651514595128955098671703766354044103839027116205998144070582311265410470131355679227991605453699264095524736567498692600020456026206988525385751521613441594184177973846648632525381815532891139264708936761799127343414698074154646169255648430461271435105709695123796950662999107442448329060228536691858042625643464939350425350659919317092944142044089983151972003322874768376148095102841452696836201840673745714118715063046446531686909511410485348578608216861307629766837685085970484129755580666586465874927074098766150055602965492777713631864427987675508360624354157841274513706689060641259774303611738711565239997137225769859621687289676232473015578826446544782929511451054839477291002776124453925178774900809295895190572033889108727821349614457793407858317093703271170591615543809660888237109454658884081457698712399568809608084173058249383346290738438065092942012028596437639113100784473046697164314803706040517504562812725322781689244208953900427924606973355787862226535741868826282456236717206195913051079878428440866286280053743916137821231144094190269437940938232331088061656124223051323386250994565332372744458278237751838966950675490401558652860499749689273922133333969726310439543956445493024325454665895502193428791044636428300944854796030170970604264293161688615359590649344130483640562325668889200330472272403399573363280925966091188621174843866768786082730975985035827429127785717345129957385859936413140082759666476426373617988144374931631240893511265770185937149178281761558670374767580353151785504736912468432521372529630733884324156829658259612714706254904907037002903021603431402000241617456013238572165231244061615552343178786300866074257390691819902083190049785474648796199046822003358111150670111615888778900445246430331646628845171816124244300429004274619255339705438176975388042936728523237651187250000010602084674359189540472361473689298548661017919844639633897087013080874979445129892511403030706495228347522578340130170103628424577632131407937988491096196174958353279305517943811178392936443687541516025744735055144083962682897414573991645830097970555943245997935800748357494779311590777620071742677769372490121278637228492098056298443302042096684793348292967144835830498132948535511262283523683086387952405529345231113880193847667676339922287375607849921799248528577607969699401797042294368792644738723979432966901292235586070105602859660333250186134824473314579135734061952396883053647136707487764736831956862486628994076024903877351004335849496773550155314589461604080036227175922646416489368726247195443806537139619648558741637136044789816934750654747152059181211471852653665050902732061236894663421741147559513156713714221185021594726858167680594135258349868705817149528251826416579329454309440844786182061765035888751138665251124414995114297798606221811057549027122288295683225995133838935613640466816561467501402854632717924098649635345838992855163471044463884372563445734308833061180770343509763338145232264942579706055471967495264860122616558135816072652458931714901459951300796455098069352795196586827137432417699472906493547596371615693766699096469581404009838759710768430844373180961470323036221949567977057455457520053364704300461240123671149276002171087443461033221724502782074765490765084302701163456038772571570277368175170782215563715791658258721134956569814493538958635051125342701652818057556814442579246945965932556393731916986995001052886515887168924180663917675316861143376687956634481062512829562112416807754559912498898989184284385211497260197368303218976326181832899995343379207526306018779676949664849928853897587021134157424187995450249012020424064718380510973921329374250237124749593377100677746036268705298130972206270104025721713053897131811210179398316494369545859654155608680332493825110505781827555191167838251752723961928918274435663532687544469009519379622220222657115679692598790279328065811218632700607322605706943390620911036763023668147755364434111395139821392211638754682824291526842988545183299682874345631030716149183015896793859633929578703758455217654073759759924207174218004067344870696449697714439406426218582303900350807403727128268540460478033425436555528877096232463102533534764887630500626533972316027047915853952633597739134992133300928843913948256339265519099611142364367640906065963495174039517916782285041158966709042914338732518830587345501225513172715570896759978532939717354832276819001040060054234207946524777616570799601229957424857778276250490875377179250093039092019331405383488959707897376655363743001169500239727176358295806896928298409392146923919303654129060802564783512305529049024767847823931142450224734690295222108556372102050050955587507610201754702748126069057809163322471911598963283516081290413561269310523833640219586276330740505287257448837686372411828402955010806676040816023289731009013791180489557777735232124209864234751421457083115424944215032811766292988443113231488783796168463262763436681869012385320199460824552849293380135301121060250486502607611133643333245320794228052599046508079187031446359353280145750134358326479452336543023077659851778592933943473952597364148875475910896842936755647193541929044275898965444394546856060467408745889060219035780684324194124942277503869905988159116161116824810583703560467527073942986477930565584981726077545761216683087664733593990578108714052592015118570437416390317676656478425273613835469693912279305385687601169766265471635720052219141950663925399357924714236167958745508807770088908455443974493887219244073968127288206700590191829731747878162891669683841964796747226673941949670391907136018692792660351116748005818491604474423395815088013863560649899662552388711388674624359925821873574742085053477174685837418027400748573993047272731208710275365188541030037653048775398796100384082185262856694101014974453003335250902024695345556954087899275791845712104589340959967862798397425029571753696515051657157473861662612752973799922217575263375672809028957315139784718448574378905499235993683723650630556894350803092434654237069903474234393810237092649181539770267766700351448191771704394830026040428754449276213982898245288386608454029717626763133353531667572012332790646755394281184913882520031783084670453669517116915558135710923402255662197671689046932670884093880872130849323830274438695290507175050302307773660457788534499542965603895997692763728225678958415737092294340120309207520973846303813627155678421238252418328661779551994471100774132711018334079985651121665483658294785074029617650960355496971033736778853692556789805191252872051972771498959726180453977326833830088124788573043195664132455912052117088439284243794095161566807736764761939563856555167641756395299361633612368600743921501991403760643400471238981960894130738774157349547620030558738844751347489710480422371952464738965041354238977481758815252158230952019497175900596995890378759378624179638698252718842831822705759296680911959499544288780120649883213717123557908351212341514933064634884075940708560311165899009485904590997661752918564167135263913398248191529670331867918652997993660364425582152896129706108899639249844681812329343939942848146233861860416133478299992640032394544024526698918888979222002716250473449025006435277201013933738435138635776271949970819263559370878943841341192288806502724935296958987236175469257165294173457758250022460076327997254347151029950184011657283156387888387249428277858743387979940027376476461835943920015849960538832459823735001941942535880204573370921226005314644428435275027596362738567236534457805806736924122480779849130023081003788039253511906303785548172786491662454801502254869019821045937203629711549628627088289991007312017368640487338307966869463427819484454231188565254114276553528964835628858927770952893630418295153965751359589446179671151955957929730512996625959771731571608682365225982722509387117613139516298648838447912358042000894800562185886871472100195846877270959059225849053125817669544607988386783624034688190253068373997888937219095625600215924081176903741975331064998353175102943604145803987599962778671071181904243078713558429011258419552506142335685140049985593449696558037885649868042228478860225864402017500008196794416869867118603020642333590671344560905267726523857454935184527937926390104500321069097419315338152441313063943770400464847629098452062880801900512622638002027560573627154730811826535857837117794517480886047990753810779241613846169771630781128986818850447767650615351979645459439202904133408745913974235175938879976857116809203061242132548613397194957474737007454755212745469594505519722471472989990415966946615092997269230025505673929263175509587094446601707438056238955475826073033848577276441920083530981518179335547064025539620275847731473138946270205768689171327813589289676457371553243673050523726139482303189587215603337055055142519998168496384674413048557023284773517801460913025675526597760486147524019965042320834675733960923423189666388581526151001714738280257946157238737733083433703982049276174418928508407435310392710736690245170899426946655692246096331222559746351495981640845073607078672258353622557957823160966218098204575932893798537941742043125801315968509949939160236764699036587812392862829526685656467830259717847894343027257005187852937842408076637284951678558738032747248786119008060254867223749298533838863715823521454334737714760788469516948328115899468790976078319018969512767167028774833694087201165619250043768877817227422401517695662706551768725926059974237172753428803247035318409629849358536689000016129493434561985552890432544475007065496938038491265098468257784206609330276586978020572198971025943721595166427394946882170286939454704088767110009239796638005151400856302412816341387807556172734719059989679882855641879345270663479945286513313939477257658036077402417965598212582597776467835769651019524905158951550725216436863026339308469622136168994845700577828193478464522142371108301045786706778748303621088226615722676395827904304244992805667467198505287910143136709106931242485933042251218007309194254531021248009151925632046253183894994659762224099612625777037587983308855103792267250403556266759598007453542542467094347379432702037009134522841973038188002569784976450001247488708278271512250084061638493050731868090273484440751819631271064372072211116944629228632551713431375642036735067226992946478337697815349257827728921096345807160840842686704435725609471687927995804125215762469186255102843488807059467419527024123964560502643732187344622760350456626895734662554854585921441865756246268323302650786697243170986922973288262498238705937533983015506122725702318257308280559947701203367984093836290518713719503940291297343516061404067706004196092163718220429539023437495293228943553420141109208457587093181344255808409663199952099405842340891891172343176099047811684008597803947820458317233113422283856582858490399249346475495298085260095601551910024751001235295286325150239429239003340569273345757980615695297853091723775747471710092339798631884333554859334242183810998501317321136980295264017732124345359289292929218256703274207588720137526193977363643926396084979333027928923604870875530593370589714059143613879330002295891777604634621387197834540834363140908865264318934258409916814495338474975575682395561214202593676057471196745373373743772132514619324632120151541581993046432029293235229980180504838528125457293275946045622217705597196487071054105331266860580759101999474588875734499578943483978629691568867034125995823083225865381190661828180987603672878086284912360398796706271654157333690649665587855569337858323570159049079212403562199272689425965407025387085213893535914362538995788011657031842721113036274863383663412699397984861353823816593363379699998718826817908937349120885925952160786582192083566049136447060192291135710824760686349939027446686445046854687302713992762346114332952501927816009020508558989978819044420311539502023311436227941178606125951206802570787188319376143660323414622226689647552428876173509778047280481307448440961782359595154075868872463728227601534207128034587340479839816454016453775461557946728017039019905258439345339632583625589274074164254439552749658290412617718636148772598670261967203548308650175497631018538151682994668172609701876416822514500758679556523361758680274273324391157099384170785082167053046817913746688366700649083883401235707047624478724188202835645558966484027025813687793747288206146090296510148633638485453730043660518432397560941106694875578741909491097261034027204290221833277837008037542120620636425456819857162731747126021344616125178723634908757838978623692166279293224088004116392729100856699331478358755425336854527706278142221655657087008836825935783192169309911343803765631964810454520575505857948524669555641356176877714662922103950226705491423981735356139660714479367423039316539011043007746678977948199334849806074031363587582305542783646287749387620203852673423137751017602748831745921707781317039632668367016608864074946208450578945893152567588054844693131059244340733985162140508867347702747435444950552492087060612683994136101147634903363211628230162475709328570733505762794003009851424094547228937891981307899905502451585515017821989008278308469438588136207633766403626145703943019930406328340269949279417077278104950531887910506519563644796723407790957838795743556258737351672989647630592603019936690929671928432917075714437542164594805092462911907271413396330806127774890651848530939958847681621120733240225433196094521260161243502491220530477637286278855427261097292047712202877402618915124623130281096940266259130882284510815556633713266450520753193497859124298334475877043921568611928845082247247284554563701040829990861281614850733345479693693976798235062351131472938731970371096454453340400980129164189666453717402437553961363066432733425084715510021210709110391500298932720329117103256944161469503058270777889901923083341191803193455718598433551408334248829948854445539805440656945954076103064694185764354203794491362074466337830493365971379489588341201834203439282522231455622818383615132329212313904086386700573582707895717535238604065129576811382751750155710415486502727219849678743106703890279386288938461720843930215134361954589410655739836138032766187695153470710864037469501367986650343526742001775974843908570795677955832390065126557783766161563954760252388524166022698097046214446060743578941797788676196786475620188140684637724627811107573461610979168164176763316708226852646798958745074397506092527595990493297621435432130615580273205486891210272557140190425046694715582767380441216818547892670915619268672503376774375318873238411468858511730971530077365650759431783734085936395418467367120672159743593107597558422303626799096015929384769475046176860474662679767518366004845061934693496991004703744399750690451919244754281748265413595315456736745536551421491825925290249392336116055136763560560839509358481334885452529831125441331330040089126819322348541375144394343826455900385887269893469710754289467380812710837952799821257725134113846042833031198934007953251221715838195649586385819833264061767755898533679042303891661948867819618808651637953774971473260830139107458985745013590066839839763210524488097714205379993907096513586081211229381555644356079502049858783040276965639020674140203617202676090872486945218151567637838240666987488018421112985376671938828214186368784852626973558163648217073976389580933068893546507687297839830689097045264508086753091427934942927326376411734207784460281699810139438341256730800595329626546219908285166459422410412153628013929130702561298250564269574472487531814792720449311203405436839814686933739565049023964357201690689607732195052013039262856410694926823724308384821941088795295584337906011054265542703019340060064790528374638988635570476511759021077265002615254442514225028360632963470458078184596253253764336143043672435626177186001022346452753071667149103878043175655158979339973158713095361817446125179813127070283435505607034749249267981454695535470029648843268203437242828832991465593702243879579250790774606251625916641422574829693874312489345260808784864755542578449936248800311721669962079024645012166164230660363451250747835718985073728393697716368746750946488046965585679017170185720147997321670401243822434077422023482130437022300094551416166543712147821906157329084367621940401204290321125434261104979479390337429275111650091435076417219670829854303918487587257531649473683576932288900999674154622495075553479262135675338095151506294660071999934725090869290085209843702020106123557407865602662250233095249293068209080273138937448857628992264024073911665731725593065842000510340947408631671382533806949036687745894901828187609368927060876411467051866354027773188127641192124166966671676376686008647300621450370213270489922120064480196541691050899999641359432371606767086598321388059572633154430978196587255993591338098563810865376411529920272785086424822137258071532591670843038573929450973975493896391341051760221739375278580309738630658110199904583700648356054949436890388529778589411280008782807683426900868888584798654257809388853019599155156516955581231614147148888614366170302866345566194678063731702157663618199005758393426727969426201893047029436229283928135312718619202993069647227951044843209057728235837699666638469613109763297840187074242795553861031985025231316090953075888944755916165264361605425899436627289370876533248966740127455394574515098384439851766606794604187528474456639551828350478226626322245500383089446538826745184714726274019392760076923777904650398493324649294275115476301908340157429241534593176230596524728178657563055970653594153074003161299163334447997062972563235606398189507481058806715069526233750081885683696103923219087388357029995534249404362054601260210130350407988070180605425201254325300273453362298219190009443715362996178541450960318720464721961519575762321166680121693245473304715414110864396659625346460477023927962114288554704444099302361991705166433462984620310070041942094498677271413934964484942852020892386009764705939270830485404887677733611195908979083353865442075433211610565076027291561618952303273319007748489657205090079440114409998658843544190939840782548440956947779251201453319549828928444284696422911251866852160172065624024988060870891607627880883687609873425117219519543222293846444365971449598048270784645745885640373243926970840968302758102616179295658223820317924747167601955571086945530138294813025468171658220966625854849755891126943289935702657678096447931501627839124365552511797600741578948862441221358411756849341734233679573958520549428669307426563604691910305858137781185923204081526881344764121845455454913321127353545279934337699724623237620661993850544262787923270970657646782667215542379627562455178868974669742266995220806582744028735538275858306051235537871168995397358670289329985684851599654625217699145874913013326903374008392196162621140489336957783479753510084600270175998253616169011376172112133998055239982124599735270902960381295990868792394377461393693534127566496842314597007437029334380356344762342864435980477551872598607562253923002803087630363394846688668632214811539187234326553352093239597615308885730798130793340026511874831794379089783662317424064845382393014301355436340696789969178883591972114049191056339658477953285709690704657193156952460651350695094261942120146764941954273826238103732163747252965489303209066989783262584827559725161236708999575489922637783836226773755062086754425335927716913176339518147853152803753252566295859326403789627519334938088162494235486963011563866778881924092017640996500693376458321269235971542646883021822933474512075323961413706869159021086120395982534606896130478783452152809448140991906836248650758559083527544601155723311094435412139279825239953785343493309705749092067868925737097985665132446690545692010092805609372804703522317574879197482760344684233940947978420766503162577812030021699783867597792434689695368419127260304795106456388640540706935475266072772281448950734682788866100028743405714096324999405098276675230798887505386784861279146257196298497024660214778192691259480859815695591959151286022262903724325075751183620490072402663279065653398158283578892077149310922023137411640546970737384500326979598950435638635037145337975100747722625684727206912573688951611963891265315857622888989832598546036716906216231770237065155183857894448355704798105338510391269532730298153844898363602017844641723178282898267005486476201006649306971290662217720378865828683308829775809117991569429222295783483431540240186295621704734707805026506530318195043124516008527760082930447434105594524441927965985320654822168389869093507594189295588052402214474899247511342543841450205878069000925414232856242191129717422942586550668966617194813664778161321050105852347878525512076620792127752857685672770833754527577712659758138747861587995326913567509650061583739532019810045225264788600392178971860665192689939486034780380947941309441257440013947227218099758700187555908763291037822366760225784493839773941295391128146651044368275440860529782106309364193674290064497876359053169732177854744952516946087833019269227803756817997587895736693237759428047119727958037569968549213255885748483647892529689509897796912700294809974975096120311886154903974473829525716389105949002479501895857901263266378180515730020703719244796328599438010559476851668206872700229876682639002973544433868952071474841707891818639701079207774149270873617955322196289530806720485945024164728431078780045845681287847594987055013989335844920520453322730974157254322958471092469579337797792140933768613405301140334621768729379027536883862815591736481444463431257630139733023569728938026646579161862998570586306051752675174173317789853016304464389824075173964218149278303272074696746427909525547602296826957911624675708094783438365532298437131486887260257252482528682832922193278695881633004695801578291580866002528909681963367864878347692481394396443543067011409367430490078258882663973587530954140954625648963636636496365419179524557760755709785003190733662341957009189045518189996863256579269494677025791870743054828246326330209382186505439215368332778470375551208820879170207472632844678027130307642236670667693697180339342396787326214945653561323654375034147920240847476022165597196523548752496468937342790266496356102071787302873421012566532085501508504868368178085475172572624690749115701609648212572503235173821294982252092721104468078790763018400612730468838746960352757887245057402200947067953822803697799111491329651196548805538043966825403527219607901071088885112965029782601158210363639693275495331063764073303899624672012442423284113859829984299504072618970154290831210044785701271870322987210627283313621757319981532689810272864173468337616292745831257970367191526893516628965716511179087472920618053776801999895006767975102323857774742154733877352433094450033138926151313394507687352705618117436292016734758315555986727114493449801839493633586150079109508435329558540787819443913154544125389736457726042217648364636783577996131494435279623455442711782289514748031562705564081381713975190944330400048130293063661824755365747487822440204833529088829760868751361089988046613168252616172762064009758191553900682137498162245690435501020902120071780168271294507618743044156605751385429036037809348065659707567959270983143545703779720330413868989134734439143063033446439529470097523549437788119641803960671421056753302918775339621778842079630000357063251539048546586437173710887673968021631116115925097468866606090837642597497586875951166225118304415884227146185756146869024603114284936947828613984937304777846182893066020151919510959954061840600527706920576883163950837199654846789585598582136723396472816179738408050395721216746355539356533382406296703286712083488287642635352835631183327240769708309407788299287508308079995350590165712079977600512620098336585024169574313162773279677720683366255561224882886292077231622534376805708446580539366760653767881223120939190556120556282701617429367959869521948241308077958670683439038206755987267578688845700591918922819569340226483631007828881511930758049557382175144781629945987106785688413890116075816439895540791029441395206564680983093385289495757553642313110132521366246303512807889413622976893117336798479681253940860986196238007625367038939689579710491032252356567590649453727991657497834568311779645108796323692252360873827996158048220742107756051466746314560574224336734072915273882364571392459719807030505817370912240319926410718704931056880552861155338070137892919978857360686489821531200276056157467907460763912589908781499059059880146407938975706360479966951042523723659175081750657753486977783315408041695872822425879499436629583268356471716606458249749288897133660011159104811661460619903625021906360160918709271910785769130380070621392388757686205358766316148042451518116333381787879335684529886832223244695059616024573969728244135054133130323059362165578408184940740929194271863478489438674090800610161855248732833496807623221120747840222648125631594053252308543521246534963795775634903530225107745778917650810517952574743849694296031195153643554214492734143899173729394145220940665629304871163661129512261042702026181236725761588907643493396624921581004342890653564317248087015833737442830703936716132032458863442717673565632554612591583912489726518662484373810369382169574965227080648643376877179030445776755835719455168115358511583774548746492210542705037230403378614442685081417478074921132379525006895900610987135405703373386306027767813992023448199966161804750804542048994276318359843880008568539410193848586740492777912987548677535831400875886879418471880263372901519868008117599462077651557261474114593032206873834182802516183595291864305556260841235761157590853412875939426921825853619137384134328581891351467311797559455743046019944137943439115959004601874538017547034933967850874794729976692864050437011703275899005342967797424490558658341960293973657166395341303445771249248644588567521280263911158999062188788856824416187994219671474165698141982619581220547544070893622193641820490563676403784862573903475472136490556151332145013845302086386670800105629374536079179105607160125268220197652778588726484017021583511131572704772652125700410127513292679971050714470372787479325805995785211467208402440302749237916641949779316318014123202388616051138072424278301535021395896328875591823711489543747252558527368899665854346957345516023759964955643589053837466982564927258158291591978794497478102223009030768792633285141344586480595189860122043400391715835390733351177623275890937849710950578194865370969507420513488122949203230976123609303514835881020715397011547682403171131334505499877680919447761825794311513543347658603190848305565231328511423691154911375073509440665557205931026469793923269221743833075989117626052272283007070300475043147896000258087993211590802246872295149697699377182193521310762855855109551370899389215224202464843475327091532873882411172888901506157388440751898650498292240946636714217177210633948105866312793164075000710036101082995054300185296727044292541206406647577819609975087577761390068616503804717912574638866866734495204889617420689265386518922329291908054863041468341713513439273708365870446988937251436928186503096157509953987463544897273649621810684768149039781664543004433104602059085688867051008561691865850103791387804073556855877253877407933307308287551645633038096028452515849541044564064686680898105593897263266862289080436324902296677351677090284698867421993748071035887917448023931362321146575752649994633124262032237426033840477039494463354725428229102930598772742577654689321414772560209305403559164659131298514284165232034186918068732387299263564347517716183600876454723971809757024161024780800196427439231148922764983241566352044639513478251740833473837961203749725070599513644557841652804326523780546548980076274150839520827418482807382014812554717242842544155984934694972528589879192451388094703008411402759378932150269229756623660934158959072987890723312403551505700218924384378288071410033583816855373895316928719940825638428576391879918661451807728391997714267032505232114338690198482749387632777706003723892033146371312977339354789237859683022334722886528987391041361030042830788831183440617692134440598358687238047184567621795438542568678680551969891591567273034499126343812345411358805988875229554225796459009529910434976019634790399677854398850828277094754341735741538098689749914863618437579627338472305487506588015877643961703526095529341685145179287526527290012203798019608523983368213705105179357454525106470200171189526699806921950424551747179722162118333247028218589863197184895850182365627046711488452303254184285645275882939014425659744173352105543201659861195270684854108925899672307572850544084999793813488845237182737317545156310136498684673289474870266109907010653116308574168719036722945491749044338712680223844737458289119658294184362354551025975801045420909690999858586009311090104883255496008667494048015750377959398273804201823930029745607747971818541437016882497142761417076425625068898101806939204638270532683875426115135219047945067156228692422132553034888260506534274231836485915989130016504589710816853732182459448250896202680669108350620790821129382543115299071789237556808892693921847031610763059660301674614789460215547970302387487144035188070658711090511228031454823849483978455609424787296965748750457036586468774219837100376199976608442357732149427950315712783223116853117791634883826884782291467828191807877489221044586818602865592961996093710120165852080177396350092590223877843132777236956936166104748274256941341101934660738627847445048093626340227249131865183016555313459443525378593424421219717550879380796127685630383169842172416239117832729472158276377026925386423321079912189509618347560169140988179081976815898416497588059422348886164277608182869226749285042836970514679765026089682549674591262029899329112288737497663233781017811265640783957840503906790546753746001988649905533736749775369340782314305962884166624797079074465592511842231247680846033927484887992945867851114873164688557544285820428084282023545607424662032028595005270442474700709231928741336655686759529186057673574336820210699021032807087565833865699516536070167548669106837093793967167296078972205070354796596273647000543749849868538794556042837023381242963427027842492558267211181354391352017839342242479334856406392757337639280843665990766858120097685783049710152163904531955797545782786827384070564856138127669216797027895495146816346650328608772409308664512013754072676140600465485476657392881048964123102574213007411500891267293937142518318184525067626455135830301880692630696251876212334525970164573784223058395425200099126747199832236196538195391233120241458338821007762722344844952818314082201346685994375847817799097761895097786001626775586808661122084690475564831256226584576974993117485126297444446932782312242415649892478824220460481099834973058131855830585081814177527459728649483682447280665818066958162543957888059952226296445959800481373459887652119645224707543052929957549870585604795413414211407152052018213021605283283037192192693960961106899574263673617143588078543907689968680525673170335719807790897575188263589146507804788587754756487277036368039150817038796699204879603448865040355873659578556154175707393379393438753587488902709478112026815119979774394515709468039978613328380652284105812764445981766690966318886013360070757067005795890014794620020515907098348654033298008714679171607434113450641903443755683557611028480951822980642064557791795954857969558977433845590343879256365037958330666484964318038718904019943230254153182129886133480750244580280686185986302826531264699757660725815664766439522181375009139647667739148089524277757822745329574725851036924293621478050720215607989017715086734356983945526353211301294181989936358252807434023923529701026800431920089800167213795392777129939631329384207927601989881459441409789771506803298325239264309082248710417679782541596748817920156096886584865456292645435849893839081956932439691915395190757652748856156363150210272771343124807991244550222022285719741254127101603451733245857980678663210827330264898491794458497462695262888601906927114010749733018896220778023506582763565493630340646687791636740014742073879879718224823643128976327752345361425273250632301294682054068564367497135298197589544763365388884963873315059012910958462313310983407085375692401192305978385654909132338348473040042301495459773890440383815545976514994523806166781097935220005879492167142586011504392805539782127645590547980976770036279907923084719283806478703980722759698736820142813488243406249597576656753351257307424755770374709114639821761263986410193786981177172026052116946053221397143104682199562794056168771158656667958175619085724661736767539067510783666917823220379300775665224024463610870441472654724538871649032390248095888851979940122421885786379996176180997620939085589611150900959417020194950126154628630329140898288038663086572706200401273554665097508334619741881125833797959283924697314741472425648113709068980996945018072093973206819367289121395354844769487888332507420090310667061089504496143462569831435249579920795175296110519453322312357426915076499031621616582808584979990901511922777602456983433288402194242934433943118129599911039378112794855912808400461377883518124830162094357240600080202038441673243569025901163452156886936258807705280928745828533506253364034972115662354532296169297311750490389723477633818553667243036266832738729314011850364591337162235621730327901429321575816317752560790928902003465399051727596476429249955411714871146479787364651563082523032597795831360159889984373088170642076798837539451186700811782154229973284958190328509905713956686978983596240097667071338478490943498835535962071798716361404564619470235269579455799641862890117834624527939117482221758622185289484102477691729284701923820839441685611289483247097895896520499047487147325406748765521154213460748121872909402359236097240558340776183005406293848916015487914906938486584136922100241144189865659966529524958972381783110945130504319007085298408654314638740074400191075750399781549004105254307917120296393154513759575082288750850122770965454295346664362761510520334749588720806943751438404849102362579377310117853022545303462278025317052750939026493848362012932280276261281963280490086912908630111631485947313472104595513134270922637904607043686542160167019920602246674434120263032266303407173869007376226358780992649125962033702500281033200967940156318136869550311594481508744115886508399525645273142590758489252158324013720493525405702450917127244466763871963412476036599504659588934829512278683444776393206910601733322423341929890914568421381668586365305687220374293941278323768910625373628359600606658455426312110008381363013170861503213663955285168269987362300898127464011637968965000932748311704332986809919917139279621155762385958107264113174434619530700755656004051382406538388756268647236309086942080567557713078451491376668796850361462951955804005892349170960442240046353422534803447411051386023020885130778714948354443162733484676676573382512527493590952189583157633723644254668092017189072719002530166676294486974548002293462422779032538070699758278823302358274249604317055284363261070119374437848250349847000046290137910822784927985212328594474095373316438977893161486661004721137120706609220025865231656326026645405526188991588590825895096946375754831034450598137131721448556339872209535205171373351200829729790752012749134630620443482878946268953601300899419098804262086797095281393452040909506799430179474563131036365590633894454047592864119692194947331978274192135590613252946839121590457152774698912696950831878189924463548237122273128080327248383196851633113803326533083596987403289788435656847615791248356774698348886205526584776027706493662093858637807790581272860297385059882578082494703482994638855838382540557508539698498226527308076579922860914086341439719574231066212518087866211809944591590363970556216193551169013413184395679950777728933740985472589159980169648783414713455293249245477305968244034845793425013803908745786614693024541590655818362080664980319649116529032428952680361757432520136356672888637189442642352603249059961928922547951323990256147117138427548437498472355379274086061000554410963931797337551960145884193486285721639096777732522844264321164191088529099603879381975456592773607592457957152797672436741858072223556579301947188910123524872112530913525104029781377344443631528789611356692867525883369498570546549424559554252966539163118285101130900381594028872739998867651476357364346114912760380270729221557901434716320433755178988625465772194783495832615581608748808176104842544712015458295217564355266492670128788967059606033475992083181616830417020907922278226013676800042234701798389523193414530381781878663480635050576310066911953105135741003507507503328233887849896002514209007489430873231240401934588410579311616255372724713518598180236328606631963830885224092626409839375169079408501597676932262541493201155974672360008459814506707980817169509715107549775202407022062183800356387553856039319809450690765188120985530359364639173139962164396553750852060583487261374728129969763002543286411909018853007595200301806944887757382553724178409218446213874638654742756200703199298466366741225310038061373947647769228801142257128442203822592635169399830154287928813241510873808651206752516515541388328036249997939720917633110140404638114738313091341453302490618074684407300232027970071502314940718951142107036004450472178784822104106773436812547851177416942464830125038222388900917437943296723447871303989302540356859105090965144739721539739401609618285387142248432564926151175337631362401876629875930886024766604369656570870400235192466496622383571326028672243359068349068108624375353587645220458342263634470920096868142309715200371156475779787466424013692335431329284571018809460063026804570753696602960094655295809769163254480157396735779563069837244124667709088122178028251536715947080966804442244249166365282664306056883126568022129996190762644286227435720243539599315395665588993466464068457956660444152091398346554557174748056104847883878054719965121132755246468808707312330377405195558480996365109069579798387315241980834662960951065529800007207919494264734815570093649958760104434265441469014456101826525658173361764080880465336583759003379979544703121695265202718019485717785097149580509606595200025200871061583880669853037882509975129219228807448563810938782946416766859396280872752107959384866518666841288557413617513191706561175270222308109728440667137646477907011542948309138435522976601004158968908295884714888480621536849993351340522438222790430063074436690732366502619046134763750082526229615400139354257300764776677410795951635820070824503274780165488062155115178943407286239398907708254439369756062012236335992522597014951329657674711559510472294730018741328097303395963391240837313334829560449776778963337958683732671380079713513541228321634628424796560594505962566587206304037684468991855094349100057424979489009490997347266484563689327315513059211977060096765870791707598175311353093739028193897823446605155730887769153135415524413293788348870756202058147008975137211904246391967414327239631434891774053704542048775043263617643292889068113657665376592297822832213689984460276232621885781253961638819321400925114852133085083858676455639086366793240140962720705878378954497560034636112710738626668486918538711936983628025350523988050790501700051317691855794150839809425514188819112838791213352841411166777176053736628595702340365250336448265621339024411034537002896990953991742925394330310996586069931460637106968113515478087416469158363463463693045265903405890735437899378292402095847787498110398627482724421973006921875056773719838251963096319059736912231758169966955641149915144979692967878771755948980475194416009110091888156814567400414773112663725950347634426826743176408644416602560592653180036572069011507222721919909829278444357423737542654023638977937879359001803817521847453498202791204622624466436263457633820797548924400684228686790930280210023462684688159810843954492127174015071355243242606861529451444231216361966161899539055409711320938849270357570018219360176681987632279531094428061289705809919749064964367252512987627015097098596666374911711723516746031470569170782305819907518123819887056808234124148302819957938085492969366103986802846984043528514992275090797562688625490711228978555587503469585361646821094898414276892843520137001550854643155730507270538046468008328414922039280508510293610314787359344542071027626300779377679938159549263339420275394207179231952052338832124801351523072460546320556954465120455343926756248601594374740340778957425717082267419317753232361819428718123871202004406074198378324734019328492249872274989786217946246612794295989369009166026968672162918298521201370371201451847006867163319562921802973522097458885769170613708418847981442889533993116272336641484244293979710619047870719870797368356933555350093065440825569573650217136803423490935352619930972917494503588597080594774213516769289584671794721245427196588848843362722356271256336195737551124791978325775787027536910754548255863418728632322712469307468581913909580455901062457077013708755132062267879862914441536365436226745977958675949584690181387159877374183455113206644793716510856891051505772739713907990686030793176182223371487236159758324618165125997894230796273808852577573878841017370282049527373037384954903293738919636975033900921681017607240966189690110025537104062627132056731762569511548342397080509521579137774151171789441414965171825815100288923355125335925801369991379386033806672063194759767852745128016943538000817027378918919295378023780851501649843053940486619381703271913681529298111453068366461655090711063649746804005116005643037793921016723350645199676537083216866774279549088341213756938121805587910765183227189410992746662900878570765257411076147014324588065752528046598802786024297209263380076340146474335936137744787443937259399306681711573956452504534236567467395970617147430584872555244308560482128765992692840472202176979845055658355730247974096632890551285530004857365804817452368160750072845074315801812217564027045169390230430129994403751589445591230655749568646172323373480482219300195087638714416270879109929223530160746094072021272285245973957144483202491917083935808001294917254761823768858590614192760512136498811815304912042307294693400381293814393732669885835933068324883712109479404508254978188396851152966498213821013264525886152714901448429124063609646386438304816711273813602806816321713408884503852366557318127649626252650740886378819241095611695741636964235394114101209975684184768654321615694472829133044628373106470990368089743728023394714567507039291133252625224396905785825139869523142336984861738568527959533985334384607094387648863216979709041051506933095873190230524121950048475123618311549758816464074617754883811802768517592086424936707177615565003136302094146672642622980019117731319854939964491867779470221277854449799376994219809632087099057030215824003008226151337240477946668358784458261414887564656921283189982344483444540957187411263446110013620039496577903486200469517154387175970798715788060311819623866781705754852746991469700779391399043588898904647181352753480076600868549395856659874768382393126838238768468115962901406082749246493538535517320850709317599988304517403646587966636125444697632248439912695650146386655360851823385675641563034176704064695958946915922312252736399189071275806256978355577748770368809935870395373281453797862570152839933610527956702664240326974522724165809738822438153840461797510108379051471151929556988378982885911464809616653965755643866772203119509454656873456210919807219634614044283405536762969011084329720525507132792259971036990149017011000429034581307424180403857332236309249055996947675817625134122765303107401889313663186677806981609251785904215620588617643378977051318323913156679574726063411065726120664637845076406790539234518366703904215652140532290623341466840665937804405856408052440452192965402613278846944987254895347692885000842992129098435929984421117102249740254493454222603163948795305771816240393124625493225152152217628418470870437294079247981083572047628788483918710089080154241648545107506317073994862836003798418044500100235359866284050394204165710166568068378272871687502402926010355781752240795092925189140937978804375299317125148994563248776814844735348195316416228330603712082456364022542156122470914716881469698628000996034080137478534570509048870742894085501603622028929968809443010888970903512046038975789478770599294429096464009939423869692758398126383824221046411657793896424615573176670851828785900756616806034188839789285778435924264775964511951463738881714246046968293450688581596258851201404833464761337169096478326049171779183504367686181141951950454240470057411672349224322196794724792610211579773263323437771264787289081941885851766572940944060469028223372599619765460045515766536879080143237697602684462793008251727287076338999442117991013542564773838673083795172298001321524758334786587148758246873560113370925313497346525239756130022762181565680777296859762356871410780352919048669084828715009440899737562560191285682963665007172618449312243751293101992975230497569684393436672050767547898628654724065919801228774543762243841341227905381197007843862029676933985797108632673287062461409771405535202270560846873375922203232283908030108468876684545432846134227378218130969116834057252063500458198431653697576763732693071598520363897111525813943935224121006719238890254752317431473677425639728469623440945707705692408609171590155338684095555492369756088150433477156335088038930000849684930221088801941377864291272847515422174252112329752798180311549901869248066020871388874000807484309002216718539529848329859491082918538661652777807130801319758721149571613310479122890194164111073927073761259874590852632107663800837506635618061586031403079789060936217091929273244353454867256831180680470194821564389996655183750288877051846917747835312574170285856487429279583908359436895337755268232582318881223383490276300863282840166332180159315295006355741988314890827233653893238852399108534705351881022526569741284163694026237223565500529745618226256766523436942809184365536459278359996799143988425606193844393873849730669488288580681690699808762978685956070083212478900021523369136459902798208768243245251219314321904291065556212713886018574429777821950785668281086236808533313139392929399966562502440772266114871235425417467654259657179304152377076534781471478862481265260404369695532386092435464463268373745535056275269832790285384260524254908720695160326465206304959660915960415782174971073870430447092266723251976333676327027749049850442804454573364961062642620981954550926449064550786396344233203123017399271586819650417881984070473103450540132405314471564661343679084798540293780712181650535390509590516014968167013497127552390872039491037146093626880727279611882576875075190997192662735065794241171989739210528909052180387889826491458937911004636712357354849160990547541621849932076562561919019267233457362596364898713827920755364032309087410606755985100933814869121311324687086549765443991461427354074471797088585294763041063776922138573945154298609158774832823809401849377214559778251361543495782713822835293806020056910062785457479054264093184577327052726466131575802657929776349680372551847947196079124801365677522202030327418803758548385482521380268522550801510741105781817804253067683431440416340140370401501646420797275930619357625264605560812652842272875537701698069559909568385127890667864933157575537203155950112200741868953133735958040653595941887062531295340554480468373700214654131595839988882201064656410475236926889514352942712219272281201207234454805955753875073987999581885123256657008717318346957692934132610761285239226034355704534868559004305943790404440530804531872113276387941704688799121233449685892905417925009117222878507623781092637847964152042805111443176742915086399809618045893864744059400226277455216333721192690994678521539831260282691119716943753697596625187299244495093273663652198212826923499708502523387715039836333898327129931495112095382881746477239649616656525378306334671757367899841866082496907542971571168504326352047018004354780218619254908675471639868969936744028308261982302565694504175338681350798854228263077927021813991667268480236080059357128397644333768854953514922871429512950917361525879856612175039276057447736355984621768117199181393912863673870055567327834121869164537010852490948581771685087411968687114230058730041416434202076920513356707957874887878737424781908915104945617783553678504897602906905671385475629901214200736549472364225371126037545817433430059771464788448610538563210194801082350972861028812675730173737241378244282918665950051298620223922625685500145211267335148411076667807261468329245125499890885733972204915569564124306485991613323968575220305943511076094472938577917051288562954188549473302432590943732805244816886955442250254514718089640797992499418572788538774304068962110902471534694671704677676598606723874962269250395599434043466887377037735820923469222473884451333174660613920168553590735722034931569876389591577091600819475340728098267944753467051516332576519022977734270482170573084003256159474586737099609282992265809613464833550666083614581537692349968815613909414496176040151171585572911246276812664185102631602539615199406599974236560644521525601895328511774147499219851019347854809022492868363939909380523715247171446282067766240644361897001057868416376056581313740642313004271402978416385393902542831813430935156997116921359910150077826984847113694953281750790505584139060970293576960582067962449349954909494137377987296264626965915420059147442174122091746648343889061138720753050950387444065810535296510586396583206787142276742566838877871798529633344536774542421274860807424339601288578773064504728631291792791548290812702169777532230346194263113146790164513508630870643122018454797331696620112425176557685177363953817733763607747690912068461524601413888415949441623137635855953446033983720500145525045200476215040086859985996691074758971362803606827172651095425082833247099338476716686242686183941552830693507143793648831489246374256977374524399083666954507291354308827464699441148233351114630890727467035552296431283941989541098338356523084625382221478916369048823104815547702789645675777881909774883109580713405537439549175024536010817144508025754415652211437940125873833908775935482625876530699041976219757834662424692767108072830227900294892889154231719135754635041419587210179942117979210599103099147055528013654243069370514071356135476875539988347241763445184050012774394908087693080916861987145064442874029030602478497558537980473373403383299422411524937489803094182616169402554431366658078849352181865267434779144066893323077648066297072266813981442416740644922671704460411141147918186225649578411299379871235007053045670427144442973991069923905317524084325260289242831357713384260284732699623280785807106206318230304860492380506762606932310000678206168594124883716820505041617375127631786197003232319868725059407617282837397698328770723171544758294660773850217222064737221375565055639083552177440489939867693399609755702065216353068455322012349966175129732528177048555314194531304327033867476223503702102330852775632807000648893173767474203918559637932952613148673684534781723601893973392700455828676641921942543360411610027601804378450141828084692408045635722880837983987431203916537378943527622107022800654770785756083485770020880308367423835396078271229403407212890053671058158858920190412087232779054604474167951558970093859732445680729298387930246093424728768765757046243245766901240024456093177456139667919332065031860242696723258752598927973222720783326124717963034202118744740328554111572159448648767706340663433237753476403142258546108475999509258430869918753469497227843153880059211876228339059561167478796391106498083749242904429989170644226138164075230994471882025315696532071633833657171549498487040320845000767824333830975975003409114896184911184190391059096627105168820900550286015810336548009588229378246984752390115977662730784931928146078629422173465740492599769539231233258684533937710249413908232293128515392106117601481068198013567890930202062834265324337915207720444426772500214881145403775872944391154795173130241348700652335610563717332800485495478277851421272431046931924589794862047099758925967737185105188827380716032830992271944158319513029097452733369238365562371664245302098642720038496355442012208561651529528347135971696416277665731672525377247730156638951984858333978770069635510032651145031581616215621778899501308643663877093480797686497341180493447235390765002082832215064889571079065948181903006784374846804216983865879380552223704232752063246996490161002306735277434193022389751900769361660859041520637570150430907734728193419784823954514916351841426407876660414332756727930411064251059700300009599311050969239296501165336350497433369808147725858768695519289878524361570434483069119380133718147927543728100262907112776213632143453771146282465784935342042260509834682878549544114404936244126068140617573422571401963200852635649776392099885169161236289553483537067484999320964708789121690175242516564170259610260766120215931752974424132697593678954970694857089177784986954179687052843039704356893825068650649303140535657565599800356239167107424868389973012093616819434034420812072692914086418491497190311748165287606246280390425813293096247442255688591517587928472851568277582592329824771769897580528380870640112223285453884920610670975871071881707899966312358780024383015378040739972730908948011779131357803237785824419350794043971701668670511867755283923995879925841709602516864479160754963184519627045857572341385900018013474275013091511150788843454968846427626766008265163116677473594780725725755749113049815105561254476942274703720993612454416675864245518007995194637839580172481059037536281393062931338380904427095294217970947169389400849612488982294324261592457278519709637718376329444278361283818562345937114833788533620953090251854296214408194673989637275920987059203052434751399302897313333789680617213414569396160038262243788940318082483135908804451945650330432699048633388083575332002619306776912374469926208666671694740080718750266103313913712433906743243209032250969569223856223137799451745505826663405996911057351082059881035786949236471533257741119017201103219127581268042238024098377560648278790932434634632768356495561602253762938338140596221965952248782359595749451846341736282302296287775712606861171638735266654900270451437243223169966309518823842813306021510666576297131386027528510272666472914911964880155041043461630422572702945634365776781171590538339052377752086004971536874868971738227840419993079126959187122398556134511912674149756676794694769058944462846898785248200181806443187513980595999878112406449946327164133448117768374717696410050935100759268303989826169665236157864693066058146521271895225126678506648561398301670377440673422273191631352055244893228889598457954412594131595477024640137552814975837253319932866153843039630531821464231651553627559421692639735490070947702977460285755902894540004959489801394160279041693293821357354296633693786536286580924343341315919342649443208033733856550036348880296120175014536598727504351666382774723470108952677814729086384807995946519687542014948248512858855673197745824178416502071383086383851406158487524712382576334896474590624921473808293529235586197493574939434560186544928895901930596453754846664568381658271230089276980591039718256663388821604249118959974735866749304916327941011228539310401465579957853078374454368933563695970021619244643363309039542866852665979663026543988761196569663663573543951892258462447561726210749125520521846509644543573281296596644227155076139295087887408144680132975807738867779177016179288559488516065354856312583651063555139231405223962047132778398067269712020117761230087446212448312350109712312686679398952252336409070494420733492518693829111325849269242109838317287034378152691891804807195082125497175211858038176362756631166360060706738494908339650440483339381036128224834523209633385425608010509937809903477881351439824317518686012753238212909928800371800966741351337230181061699196230398191593305020075785724075843185438754809756615472636404972019594568232453132970846028525963051584224274095877076884090918525990623476807541244775615989303413555544224963159695235325435991737672292433071927187158457971560862510828219208982163973228886774501779394387405264560155631252455718248963312592273869222134137936192698653458547345299102241497550385900524450766718663104485641127604032458601173241877676236958933793104853496110175950380187247290373409727747053641853581073341490246588113168000752985621094519119494832030004638676921927892147952513993340910134365590340709381408988823261413176045683105781276642512825874429035139134076579863756222603895194725802504834239112273249404587030081287681257040505384597056442709694864592191789561877507050054584669538658833799133766025878355396901343848743506719760625800511230650410342860344149901928086316244931737868482564056867195338401958729431682641809290639200636333069841012116687563302407679302139273856033948601510057317789071127252131424018426741314090429328341722147194241590583461825815179711906009550361398978858638552289219122808599870161242767878658811862462712192510505534303237199779189609091039452554688202299845473417662461742361808911681997543428411869541692492300407582934657374897807163700552322287233226746327711268716221750106176959743382771875224702106230556411879921841256323186889895138570299597673779685272483589956292642291309625160026478055971546007911195051448746200664632711622710833582391375605160139667683019911190871843990640878472605584794545266182363811553291620340031521454360070952950675488856967351870578418667198792778384712588221025847838274436611007008007840992614835178279206914443804048978398617215609748313118128033530176554731566343406395638084242285073217216949171436972298971688176693092199612242799622092205202542649475083778134825861054631445845235918978343003980319754177374928370648590851945353660837525324568600333965696720462677508360272486096242666704301703304181026724437878349751550650590159039256890016541344495892851182233192072839349534295519717660365223856911894065242673716884782914937884196661440324990037569605462851263286797223550749822787029315575816095837060756245354051619672786525000321280088606042622760184502029961069778620697264795929955248993386448123947048779624537530640003468195864859925974807526076588102630517267165254371130246165947695119360744570633034408596953320899626621960294999612007447801447451163709870353872830318482122747149225188380671747002459251901814469577701248448302841502706634055326202971529013188627948823764305365019232445731344489695855233081841753837605131813416999015475894805885737629977635353969581171451917098695489389666728218808498264665351309115303101868606694698087114865235231682881786275865009425104031473000715992550260805843373108971874907900930068744305463188693604743828420542182848128677097250882230350284499657260701880141696075486647371582747959421474144343027135966981824380508690802586649498076875245603200978632652071737975167967384221362690912856893499561107109571570679487128401379820052266656962539739045762772524597531604605027380207859610480518291687272432513383981421032808196599458400130840798041798970154886484295028668243880114535630179703222511410517819847646123469246537457684144115398450128285704391991815544861645948145402161794449074546287350116546399564721701771256810859457789876386992231180012949066249490622655498222899180925495434522317112273048771715192950597839053416666154514925128203801694355935781441561237828333178217687098710091718222224022369633833342634483031417235058146879452758953619492495466113693359876920042038735579597075674237447033902472742822749057417035800344375246032450078380445779334647583376868094640980248424708954509663216433542850470635770655574904232091712604680765508915925458923476912976888904662007006666697388650757421357882776306830015482892392696733977344788677639800373363007452741972959738872169922486975042049038731563579396727257630087928819841324137115465873446867075591260460252476648620328087180148337393541919096923438782510868249157370506359376566253507323287933227086395306659751973208630043334461248763420710879124586741587613890602290100215208688204444313190094780431244836577790651702023310365589799961755830395890313183791041506702444959111423397763352735187751746300395628079242000367712845171200100067989915419155924618227542306487663824394502111678608039195331274823228803629584405738588790462485903710975548041205290337520245857970884827252403253130363956895810775713652465900016630510103914562508560096295014597021467395435608795228382996856030987383057414001539094363222971047768867841704080697127422447753216104021193776269839676905924452678092373936378708172781635306700444455481064103939123496381709684371933996986031032800726249545156751133553336716632155025502087302161587677195770304742816579469727020087478069940696927729623463317259967496711081243738377375954658286251020718033046005115700482772958081730407219138281213260044520489639544799585004484667699265634463434621599159835319009991445408933928159858096631430307528531874674883021629160188211603529994053432963249938529721336723233491065521864178746947584893010608148807784818860210653922860370423710306063249631935535185605893173962839395117650184972883407212967398865814109922490347856064098958902290028992271219404576599088054777348389944248237404045617601310342178992456426717670995353822737865668868768619943641562834159783873817283718248366237409815077481232992198616673303499591507993427511820090977696181954623143621720709071771799763567224948252865061298431753833729964262351904455084333931494759270360609175216230347463512120788114619922318451761308117927500175694060366258079101750247571011487266920154594055554248800648220096794093668290931020175966278737907402807628616550340179460073365764744744480570989359115093757830130484700641324977935157511625987514217492246834267160753334777867311731514863328015894384533078169007985658551551891576591091410275783748358723432291447825621444328193361879641578269213707920764916169160472092565383390796052151843642292992058971647081716332728904780468598367598906177025219630373101636728859121756168203888902650256745503248998255420106929964316141044091082822962976795558881214665426455248745989049095933626960682123312286267175911996852071381478767616973300091319937640748864338463015411785273042657910558852487856066127413316594585798410216417466489219263109337965726280185694439879695964262559924611429609725308495262421716595839909569607948255533444774501375462803607608385049613032264579110488075552762415572404932014835640592626968591259354849588109457705192184195106511440274507838674692233672548591288392384879481701686004607617383701120248356449514575626416266727198521846853086973653168753924911439852752633370205345440585534503846847457062330749393809298871338238156427088176938344127493039384158608563133267412495910432715786828886483898908605330292250296681217324737146479259291319864869049681115862127855160370893919443455819455001094573571377133812070189976773789603935494398479460867340688170712369358749439593009883776028225193186282629058199514137983296359588485913742477793979491513105357607205911856626667883388385944499036595720442932091215953585900895293064702972167249822702246175397457269654460650141285658564979362999567631185586597655444667592236418577948414108407027828119464316382598058483483561994725840313400938937326386491135343395066708304023228556789461700599212708557814274617147293811571139967370764626200171020810502550932309610672292888322148292968188179914541247454118749299573405029760497762130830002208042775734737280428871676216080118269421608499499312446231497566620230128961767674264351095012342299461352229259456684098163502587589572979574482716825333255066719248936353392123620066371971010256039811922005054138960434619866359227228955815150891861264479440551749698514726817230346374717866202965579847420641266171603177183774334233812122867718276934119293339065489248748726549001315928674124510497628341510272266503706023022737483348212010660191156549621061951995646821631275149953180006063557408860691235754214964281111031053234191187799385722984628917745853550848779731917516273406513922208876901605044844845882974702871642697125226056923107131041382218762440061035112119891639059914511739745582357907354015615081907254484835530703301609614300569688237576830978561730905597074741333376991571686243273587750039924542968516617170268926460300310446019577206371321288802065945587232253329708498461560327173110147799924321834075332631634379948943437807164680523465153254273410474038289404904085912020814315032130946143631589699042872105346299454512648105548827307829632803025140784112062293639592905927694967509913586270947924295381399959973826849084954146447332294418072173913552157964371300512956867447196841343436251455299854698494290912379805407677260326760172950223044854713280528261033918054596980814294295653949590054026580328976224062567246673181651294470851997544802582343711960973412529968797888068045917252569918118784056155579406468919427777276300884413436984703592764995687990680379230224502111374066281091345603911430523223442466861724911862647912348601519940650506410207833386774982614970627917801661778644354380126297640199597555948352735322261124006201846258823484885002384917929835220342509282536844359664301578291734486983664095679998671129631979104909081905450734232436329924126042637844650864379800079662627010032299956443306599253038942015745455410931601264431865344166574053412435311753375245648539610680780879728474021501741219710471447953372158262175366828230343874964028746577323181545648265673204487287981222475643239096560768092089314377515360397036268293861099419429943384207175889900464867651380116220302689263864712043824477929184999642822723931067569140869621676732934703472854902553829276601552288244575030998715686115891828491880244129250257006613402994391184119180880138439708444057227998889888918413927508181798633171427564777090999333962286695821121698187442057046398397423538682419123939444552763449023853233637349314902013185056448134260504750235319012078161554679778519089126763600240916549699154861801174701542503919815225495994890725381571542358696598511153295201854489092435199106867637001620653981202035635604006656910066798929592170038843503629542002239411037920054575595916734964579189391119756561520700391815275117494025302242140515472465490532140862133319521268202049011194857578176789590600460175473969972001816312210362234318429082164734342103207139814433096812066754431203100914115917011584864389336532897249934558452415026564983814333512580974557203558428427593046042305770538371607656197970020974386592914291747142682041552608099993786302253307751465615340404445874041458928241790449282034627433109402749463072293820664702396300561862861500079279763297365476866320834020398220292192584703236411117202401997607898382004324918848893436728899421170903750015714553501634605376334585058875583512854429257459622557294503628262594126382812214597345226246861430921817499034191644502960436869637733636881544085531731218240168674336377828878375432215805764792017059727395956523993281032335353912719138765585585877231521838586193613154851997890772519706247624825205056286886414003991915136080521054690350590611430417344565544489186672401802581901551933197136631764246799264511780434773167010403264763807095566998566984971541314564491465241926230667792273040071510831161684120893255311391906552104679431253948452079505639671828130347107899608927216802388482595437599128569300663873878137615729908419203307231884362459192289507889139567973095799653445059780278404319623306904225759875647977617833189101899803785305743364678258090011954422716611952397163784875148616932672410869343276220113659123745418890550922468765035163036671017560432655388870148548886193015201067128196587024990141124527721979452270559762867803240285826291016959515997707552587883137869841622494329711171052851345390037746083958869726137447163266486383507876656977534032614585783985957576859426525218654912092002799516799021580416261240997432536899325658774475139686981385842090509700313151064856519308300081693704803342548659440527161881688320542123369810517513019461375137497622391890579360049723377008171988643253365854745336597298297389171876939890022861473559055013550471867245957033472918223392807436974878810867210458213687761420364885518171925611224353639034196116209494026381377404526282391895945471656995626492279560598496780905675608052330309574680212761480999231365873743919164500761362806983977951644780271537703781828006536657592490574470967787979930636823666457403914516352322186369064152589487639853686395509582899255907415212315626783499857145399419437319261858924142743285711760768081754351393440822972810390679211466929609173004196858276608552020107035745856105717257009318359796855916910062171919971218340403397457225063959275723579417060156890371821101345593592840910660331306189982676956649885939629561660743138552090938745510339741763174000148925999339083706859176950214829078103884187107597889035934648093644125895253707814072824492099538247558852505937984089234157496521372687480081325067635925802007300251238476245681965733118804421235203574753503909666379466188390270563852834830181032101048436749895498528555721354590082256404058680008950782997313855320685202341767498484550299838372844681385298341970419258704950716216809112118500079691689037330588163792468144734085476687979134605503253442101476592116183553184948002437493611831414294491797031256315555366824892698551136201109533352819523096043020579943539163609266787759182729878287927027863011573000435936263443636083682164700659227103050287604558118667707449032320880789619411461736133004664515020702876274171217444320061056235207829817150725946055897168248689239440470339044133877837250514824757242168198948098018724798796741051821706427980681611129935334680368713201993333864186370679981118532478940874696435018263687952711280778124632776424633828879360334616185113029823379248987406073090760516556250244982812073528220049138164103601927601373927509180469076532356934247048707588213210381049425431650410084000459415643228210898360745504512518808662130434176761463966830942744238227200076960417033741479364381812832844674398460337956975146241605180606934970175954846731690330511992073390674920713715274134801139213251009075239819977672985249641242393763027649291073270316663651596204249561497755288446018769137275767423029624973545600538388949289390712901269117974747962363931955429494315523329618051809949688120856025546855162729307422420938116653745816312350798706399744313041348957570239969433471241099552223813099272575526261363781969491940709575505833938837397903076057933275395759309474830858502535495454848859187955869602356135430498365979006709029229213755357658375899397296980706834668230768392481604659484555408913682913692373726250479584896635711745684076674550998987140769736810299749177132653431093039079540095583920157496511493476517357598087183618871657251983902947558423188649867427364426480845365711319717908726904124477223269817599566849376495919549564384422942102515578806849626480105073630768887431209475978929438428024756406091374051784628532972101848042689517190093488352868374167521973271134238113472779923484352022220645504725471790254102764756477425150377126018655411268747180951005946002517927693596296068608278062295672259453739429340845120279909685320786872174669518339555614393676729838274618169396367301787570455564243835252657735755373202193144547858543848546999758891289420970149656466903713494150387445959871190681756632555386246596204919057680419023530819413740821040296446126253402565325139612781997285925316139272420451010804511597207292752622685350551324824276234480471973803402152866004452969609876125117863813654096000851522695327164988051303613687784111344782414787598844977502986719307838903353859780694638964035389829970005263687289591452416200691148231490323794855502693969063860803362785159235458950472557044992120431613740857828292519831492482301270645924160996696459591428667392392515329088275546686854322893529263503036308479569126706736752323493685449567757832547559396749498109884458739869190102011909323895368200406230516195327492401209045958770670926303199891206510786758959657547037548602976935189128269949162387522791928179614967781583003305006092374306334833377172197315556147818575175113718766310438315702307459048136954478476255833159940830160192900643702635548452672110764780577938871154181095884741943290547510902138029507019129722300685040367524444010467618041721640007701680418260752084107617238962867343637635196916341844028631844358269347533779853971144697165064906572497189927406525639623210539457646921253703166147467537004991804607692786034053560804671274613156117907366413952059475880139961168254705525773139570695569563087150601691560013753119119821176511107380505057366970504686491230373328766478698543798299425945499203374602100801662109723703720597534337293318568595488304233399876703350494213423128715661264033225715747626056810323232539991319671184039540244437253991260269683253840456924232679684136296750288910231760657351997375066389255443897425911978834942210377994799044844236062383249466807368322462176503983806451503181974633511407634687966238170726587857875470142811547651261111139372610708391155940569952247310464304124084141517884426804517776923406649236646129119190226620312725828223831719478817412249590265387008558681838538548234919957033335110731458854406575561587508648467159194373294734038628329731276757306397629435754401255769486751600937708644673661325920967942617596260736055464834063181140889106417593446786569244933484897123615223442625413460793315817661361582632748784522577170987353119348202741946999316046880497165099329771018178670785020715110709959509318231180947913648975414312631492544317335114027478006525781567404183734300549258887041116768761388421875953212850532508935696658814976052500879186737484364475970300540887024794878985142952187953492687157468150790421810504985845410224957367137833575206489510689418799325665289537413934029451785960717025597720729086852232788615269631812544226163100568019538204257868248953967641192260205564756326023827191818154915767255227422666546247234516788618146685105036302050783150527766581405272819586702416570013044576805718107699704544572887173617895509120434488575461237877981419978413750161051520089588026920608074268992947470350670784977243547807207496237538176419000026176032800002316434681513575313813735041857102787774786613491965649566450354405055089424854922569734916943887746113166499177012856018732985556698760548805559821804561885669986854110928759108558212616327860729650372186717611084614555387984601443003373209987658240438917912581695813100169776373430508938229537171184769971675357814520600650144220582271804264463244141681762309549264717718095425363413055052132344373595185825552564740671919455746123713159424097992671693319249717001481537979672419536993333440860917732479765021397416356615294277705765472954820347941361117902702776623147688784337329824637898133550998242064242001288147731999286310042103089692258340427314285819761926652226669795384080926018396551006923967472692186008992022073034897557620308397483341554706981099735324236979373440094029475019560278208760178189043917864847779269511559464942625388020034843019118965171096791011443488794761322913968241486651747940536866926701219682426204192273716591967004653390254884650033805932488962990200430544138354406343314679211110058565191095561547952852693733659135339454603625863956230453951526050944209288078054157513439843784147889755525275026521475704317504214159804549245011896467338782821040279249639156374548417600416148196852505155015685389949430460593890420684111356444875179364911878189244296991287128544071316765032625695681871077348840384951503900219780206540809992611185893842538614227960574450809966897726162164164939463165748060937973273073084242367144980234392806911373797795004134078198229549792051003920159261476794813936517616232375091145667294054435555915284040218860271310579238887166431923511802687880214423609476148994972516959674124854900703026392911145896910948795327926333726041916096786245526570914951562688235584939080031424393914111578797043457507034804884817623818018293449139555711238338860361812808473623141570269408569356567015050308662539669119181290875132337462904815802677709670104914519344912798614373705375920776693789836325696895604815337711840198631297874639863828174219487924163428095003085370767570066715330191248565137567881640409228757916644264294112347226845910188781484488362768906287432725849075582786650418207340633109520985490806866102448928523077432640369275347868508396247991537709812834233892402930365149987821250396739678496332924814318242031171141743021736262925893788030167253170001586614433185060218986413981770938642061081668472512232931602225455919027770990732540802615132667127705753894649498247796208251673928965643054294394903162090993297694883491265896297201751951279924243784232129063180960415630529700666567591813349769734095839769295758260951895419507559759198249414619673839006864463570701646499207736015186057632569576185710654252767125668593953963395495178486136943841005688144548769835061058297844899167413367619417590699987948708365216347357719604163916115193093517725302432638838920529887273213991231201320429343004958007649404166037717003952268372188519688698634134699434370871485016949641842868905593163416366845591559014702757327268738071662108203013304876300768063957243523006570939208819754087171665568423159026965470474316378895267813022750710558774426220851484102402636875008389180788075275699075478433603070083382036842374893498443811034036980284189066722031113866115994359401762573484731173192131820397037972414395913077289843922579347207555429504324663003901187765404559905846512019685703972623469080957068499238506468660907803823666650933241414828640664836570179157189442557828397614716654838363372062777210880327772762891821912959186116312687373559863115755199468830723201982977947335099897625938778158590613962673654095639846107677152124127738336613809363769012215582920246574778984697895620141231117293993158453997539140790675259379195622205426943333776575621061849023496247168235123241094452733720737041024103647646725665598034186009521230673501412408122187381327553717246945928848832500235375453412332658844228236114721061909061220943929512004712587123139482642117212340212366809132083956895394286578416150419564377151051001191666801180450578726964157873741653888559219339880164135246308582238562325200882220950618865746903962093701808462513726134445497338977715849019097426241773095059829914828682652925183196161121763705512352340283110944102128863497362691730457085033017463275930188694027833827680912173997278898985369259688573471489481894361116783629917818276051592934469879569017447607040461337815288251205642526148910630171707627277956084353277400123138590474426469753403520500645120679495082227630712030064169157922075717546373688592990538842814923115032866794066822769710498203772258008268664670269469335614568632212208096793254246674303310237038190984734550638729767163093796752364940428303696152694344725849177595035213614541057637049290646037884236065556325337968936282728950851101051946755982400366689869548166571229344551032879644555529580722807549521082118774287510931967507692010973479633716952899275995676103140085512148003657585700284266575431926007171639609579006852218931699265195990311309595691897699610746310009077623014241029600734360586933673877157495404195075416735207680370740739722610198775003375997255177859770766751948741700454662691753646835434177831812164485443879805027254185547586935609643680818280116150660444973364882307735024634724756742541710502842289305327308179692677058160068159052717563939685498073663758537973624406520800436008992231741421169265324297312833782562698037034905332403455595648901335712110305910826749567648506036690289155609739391112798178620081048811394716295980971259860342897354536094472576127029779853891017011900824080481883213985244971228259473453695015110461517245957674947336498371523728205163014882259965883773802653320578862210022230092885968141320183690452111098700684480689869108853748192826290051723117189830732046859900017602571329009528603039426789773092811072394014975243114999350954683315348235004829239982375819356054131038757105997920633266805831760879616105645171775652380820911981904476975825535128990025484039499926755411562819548854806412414493724112185127618802277345097518152723137634118422637227652837011646688463939958745860549625343798281241713886345806059257432869018172833840855907098174499620791120747279852301432187243093541857680721746749217517745612120192469849799205433846189681656237286476345751066388940076992888927724811124695057838522730647447967711783332714164026755579680132551616632372577329188795368013987085202782039206120173709356962583620003716323563276562602875987276491198273668902944578129007087187143487062076608548697846188126355613113701309917922376150758091653085669065261479355726431344406046838972125545303234625679589149462218046521392970030057089906780475480840047998615738563471976269395264044568651847667745537661261449806464594753192341044131036244064429431730497758864736007430754123704472955456027811468303633034261899650743135348425361648695321222299959985809615181374894011697093748351792398183951891768423032195307586482138608386934061757969363862232654135257893718430218410859079211592594143054550556389312751653823679005284775589165359118422345795600877502318269277806078487173402914639824001529240488736682696876039850696015782048890830859812763521424437390961357982746348725247221591267588324821553369604144322178309838674301723698915575063356702085840015733174178477436165880219417558284900482620571816083867775492409439659356053182819432998272977422084937417783430235201051380188153960719762047535237113737786704772616949761878047653219771378903819542158014257122049306363290856817232806678983609824209485981853937120700741615392360083326684157922312837860087252171097775194744194455518825151543349532483602746868033473346053096832387609078512266235642435991439287081541457350785571059217157616615856529920249869302549316517594449286668437200391335903619582771297301641485978064777006782869333091162569840481338534184604609584958503105616006531467385812884974333395079066911185798869973384937427092301972535704124091381335077910078946988632327227035476683798645087550753299219179549626609117739103310397473826752569178109344177340296936827057535543295231114309865659945653927136818700483248462675625591018454302113447370740011601840488793934217705459104317817705861945831554868321136769455539772650824933820456191443042523086435866240805939366671594780621553479232820411912379918785440595474066693597764632888596381662629529131803100815740773449160573506116353739023392135010827012113420857819251897989967457142095367207122913436469092606802580827970849103474516093459742890593421826740467678270947341182046883491317844197439868094197092214533233972022266815649005617210181592118765340216358285752278293709385525063677380156746694381759939913089999053907711022430943809131697191977138930908601155892940340442565186953604080983749028351343975605462598260265283324529338014322812158772889551300705897854998641696983224590961418092203178393209199136506575082167932065049576786509371007326761824633053646777882001383084965307937458722271764236508199262170035806035453001158703457783352989849103446523047561786273467277499394393446148239549771969422114846146840563263849804663414070224533782976292913926428708754014547780451536697176297442902019532625865476161425409928759504500152798382453801062739844795908050078609286362307468494157394835901913499702970428870128063357112249273102077458336531693018581074603778851523163208443714840982405266828183728962779374696525761075872980038865407918844401828782023314993267581616826236210903198087881281228559940193972789687028712051759933317222155142521106684943198557054664609331680105491627274826947193218110797071945949211049534002447288256684354043515318073673951311461843572969433598172658540248295501551487240586093154878321887157938482315485968132341849862155201219136654756632759673558599363715568815047922963594981750832013475567241471846764426728195395756761700772304366996985977707216247628199421954866744483743731302931985174672175027604879580642655171644537034989478878819907142818756429464962840117215858708303491353986998212045449255060002919417422064443148351357780660220052319014543471176848193061726096533583737630598141529725975946704551666192451108932166742568196216655654728939970084924487798149253235824773435953523191257894099073744941428095202216850352921744347281769918597163556882972960842087755925637470441307064754072047606805487935824797530735200874599348022686266123106533395755676676613400039621810310964430680864095350098552966631892535998056712998318281207330799855578153136957884477077670875983646672527628844988454084603844531798251845660622036164173512916853881323091716575832767077932643560286847636991361461223317712775631457515708254312894417853971225176955914412134222980114662495152717590918442500988886922227600118790393481488577304179444299459857910662371912015224891729765317555261845183095643557636974721586256418651473230446074620067817660043504214103976938341575087549911285195503284768062438264989373938722387618717744037174574128376030619829937042458371356544450666157173381073832412939777691057296908077783022837006716473159480292148006805140731676820991139103238888649244814001102115905933612560793264781843117279048342013243673427220346112678956686376420255544865785186785208716907897027952208890660563108562805939247658257146753950455950941842283909282613294783189749264099449763195946598004182567789543975339502872760155686666254788185748118814835495745183337986483095378541833624732127212224951706299255887352838260532441017097527288005386654098815152922529550510567949722279966957340076943000435845106449580976101734565499644604685006325864324445556588274432758908034053763598118896596302310407185154148879198732544813787766357519617547958099696326072475220623680717381305268456430932586271159145794640553902707563376405158809347845349310452287478524545527332350825748767165658930344692838261227713360141281622644613562018025351109251843777268912017625024151142733300294957305781624784266091138597973695650408230814316749383813103386532209749771665074422236812233794498301703589723048780106222216593345820358337985400259768368716839416743812912876173944752777381650957683641833712579859813944147401667337330828985558792061803958195293629855861568057162422918583188995967148711887232437163062023434866321821542208796310375683395266549070315996849740291947791340476961612100303785415105878693988467115204733570243248645805884766437835667181751526197194008663681154633898838556253843389200805936098069461346729362271242684292549646521935279863099693795996794972420573809591016803742707830232553976505496106711363193143189924516157966382697610813896637084184100705931389653663885713326499579573807085200702294892221945571465311691369420920646833564912107258385380936315715451008511870266498539659446313617098873375610840561192745175443052483164267336746551886731048170690677956356424042938910782643353160712142191663043118960259949296894566404797294146397184336939096253458705833876656204157963320025648971338876571178579313258052212376229643132226287178206262378769870343718150826192843795403406072344079241218505665778313079603928886372093001044384521775800769205979988825617186562083335660800314522960153804017859221604621088903158887741454217509324874810055096548521991612068253701851753723235194315054812014857382007153500993266776328021434586392335842786213203063466127602075251915722278197914940782719307247634917239840699455249036589873407088616799269545303425248175604505058532715466090247768612882900660823561585995747695509438694177621921898850700680060495390114644584313452865308573838482695969826227136418249722287539655705369477974718487224866640955986681173020548518059973997126920114249653935203606029443086587151021171996923093890868821842670163418993626870814010050976747135680402365880871211135329615635404020751076450220293317744669311489452893386987439941575962611934969850019353161369474772087175314326822132754996836377500965575006590113028767239058707389761113440906055951492280464151631053825527665066514081796774279897219174944603857459792386738252293936928934093768615477484339738655024509080606299768990800229381916591323958018333085614107264692653290002892921309027816207584111196352169623343355506132744895582052054644423968950476502159026452507625927381442677791811808950191903044968003323857566682814157951022057665632424890362584688268020410098333698695320328924930954311161580011940980071480616334911562897256794436946385191867193941263526699615606276433120893215814715763481715966679872260011888553035875547362066062146817751820241859569774028200856612387734512871673031694786687583832631598378356914896298411677112296659691619236559187921334958900972864717405561233807011425520101100806183995240338833592054584930392764553521411559295122763143404270855219383896755622854789658756565905132275098213780103769280507334174527893997100174086900271885225588408762559315649536418286346289670832580829217933845789071272024566896654891573288825391631627861489961061111700662568341822284134848502236921982305857484132391155791560347742052145524175102518396035133458632889454488862465262489000861905783729926307445800072421055565774310966535409289808989607199390345999645638257797266507700196141592442008889483356000827473334011339586216274280099786533378894079145778589316452127818635317062325838590661418806452498994173083887424234533671089098263155560720999709972423997562517784444606950558052948970732005504023162020612572537211596460040137948484023909770223705415260542829281572559287421545827180181653986370013254813253674014725399132383624839137142429069536965843132590058240760989636417265580802463577782755691896916334528277406024135827253705335932653454051739376501582669931597920395614549998629298158671630077480654184364424068004387150712822657802631308035959463505945643787901659888099193214287422871713811938029211050913738958488527365925280399285918276355269975475763420679941220341620079940633134868260475267217270922123592912684694206149552452521909107748340795771301423328527638803143898162945239027750938259805739038115917320054713519746077413694118548477416621990768076767687177917577806766861192947052261109797726551208261979043534587266281583595700446889622211680410007803236240369907536463134915281826823701600526004550392006359774323766722584283781814178413653365925932996239688912465893020375053673852748273002737203365495930952496580687910562027870889213841332347308304967168148508047327429097161568019517226088700290363619129337523124585895699943770386969704559188914905234297579480215839241282396819235444395665369677660677180798300529238830215722340340839002656733591724132232317450627254883800574843056879542887304161688379831522965027628127730446556707698707617344671186110667867062241172599966791059613314532208174725610003708989464180224798823011392795688214621977388937366683528220566678278295294607501707540161461563052677257523987788362307242304728494810599896387379944752419821134207145698230900364762273813650703161209309494012825237150967684273266914762370296099102790399033741058624501360456852035551262544385909588889168055299946773746398096161737185784949203559465714499285686147414877195991940214215304252185839513800181573803013550454148768274699385374642374342978808638355425820154146841660692142688677952464840957299383937664544977053033008232015284345385441478125779174208559870938033773811719382700640168696316039671702527947949962709565834542479454349171414435008371697057682531000405368095614916534053518389115226818529456161545476151648461933805495984416130293971998052624166074878840872007637707149738768663303075835994298091968073914448650578027782127609780699270087767172028055191883186755385132330460416586593235727622025321127262822290673093132432132161387836877362522154010469513115560321070080313807904335844178447226156923546193041850354420022227824225782191332911730618166707591635868603305725046203685628733998356365829411878371491802221502295381140148433898650416620750437287712957482234916505028662992948093350982718523274833383503914229819264506077158681832676623730193509262627012196597365994993669601378663314103976635035315625186848590953155775787067515334726219084862986313971230827322281602787904004995756337228915519083180681621611572024926453740978500594213209994640550446506141738681218274974495332593042947297583077376375906205734468099628735836791892762525264216800632554511694378021449953991428252887900195244981311176067786204461177775250118817204711223640175877825278533252611712178684797520259804435627424495070446496779352097473413847364180622449554415855410132354636904916560606910209030339735000702716295253812801082577172548703644273137498186239049509109589749831073712921040301271988267028303099197740621617516730775422285607426731023362568865388249264982402846945818003550202291044388297464951795691148529267302939392610415586035678869530003569686606881961642895404931821863461958324746479530998614347397194565942208543558540251805756095082777996656923927738540770478624302235924445967676004542204806691264872016368266597201710064555260240136931202827300151210787631005222668273092933730254508905747570863869283519255555984311907828522238704844201761520160860031898191311607987036613978457034061034729793718287718252216229652401652780896411343892322417730400186814946868390644295731157600964305891095200762065986956455505920433369958728799560543136498411995151691069465601956649926964344535829350471960664109013187938202941462314028104734365914672044196124465600519973648304776600098519083304969175795854782646281142151074094009148226862430761121280575305169348606568426651673215883364995675374339047508755377886087306622626510722451595897808964009068850864636809098188725191490396556416008236967794034414890902289327126636543982453927295292029935387458597525387148195579402575793440699284386693411953223491146441471691581605363348221192588078493206368450785949992331133222225559659103759241800049993094040455211266040886553186645530116732456539180371091112996299214427715577021717799972488894644458208772104056430475942325753293258192980062626483830022034459589839256326786237128548409937840182721861722109992438618969822039404615290724171228005020310499021995053259009105781004424594236397828530163592543910275105828045340126968908880607357464072501789926258278461798219013786829264494893349188549996308216299529368528352072926339745596402303514998284983378820258804026035953622946402520512483911625008750122178644937969639442423069941198292253150633512723418467400630530103807130376108757044242681983504832783620397736280562076851817980013240970014421909289755659616676143271790509916017953335669140835165495692870725063099329565326640096814258633680248706151505744608865990362901935741962803565735381563278631335095582403800919621399848908620719753540703577890834424378697278054276393449129730919238320400548597263176367374255568870950540035945553519859139820146272441675075579842809854525634097474738236976208594420009573310204769017781806976481801734260718284927680443522129513249750325541608983736518976979460376188180554100764495257444530124122771335045220236979781496067642201601298350243279891518803799836981910072703715368922763672242258991687691970773265793884156400684708460412036229535419305819870298928766064537814112923239277713503047915720246946407994339927152506142397906720353654576029708686072576926013185788249128719276934400176086068503532758861823822144862433026338354685042859829291014629306656586241525584476579457861636236820639908682847296216828371417248848269467945973332288799616823150887338902883708193380304463307005512559095416659225678197238659169088196952222143951037378528618375318328656442245474954106395716436056167273869315497676972220067333861336046452681756172581340094281207161019429545936930682057724281761281871411561030547591016645677816404955587752115686707974969619666025412073928338894265600999658357817563229617583860220050672629380468303585874820041681651924261034441935740521652418845269362231593538424235357108620354449554898186659044933456149812439380424619370862251575243063333637064574744204990720256662707001116841138799381227134348064049062186940596634461972445014839728304035279205308348154945556107735238183447248956888159547470805639520491504671968471026832741215871032779718738844615336532565375175226326913379160529353430549553577723762368010415996336226075320363502061982993619605145210198081401848382977744715436455917108184582511309919271318518802654679454009710806087851667729826614277008836381905145529854437973095790565560079169461561987686062889916690233710398732135518264205959548887948417158630856966024509844506281831426343846307083281234035098263706044828667979852830011930376994327852867544279380555794820709880738278649086780587811568199226520718058954287842538705727405151310536838837078635935853680377047328721216562889212757451846939491866142387768371356697680681668492898062501916311587543299173869222152603404129767811121055182445673625368619022630034573287967978559116941084556822256983580828950431716622325864350985334004972109505616996121738746995544859270349998038611561727763077240404616845706880560834037159068130396299886694947294100996781105719503259401151476010967530073035341398857089054007325134455095422607813715632915068703024129642047451292382337379510645132300242170292194327533569293265573433391293610163108047100016306220386943850836352635984984113532659513806421537817220378318177161072462246038803512623076836557088752578258492400856534754008808527782410912931703825283041885287797009108351722412217572471913229935826592249853288629055290344989501688020653774886235292847023345244576722910650119089910389623671027487344056125894442695913957183960909760921046031678131661748553148772351340858935719627611008824561640777732095436140840751681906013074306820982139395638489798606933561960943149168566741824676866583730065372099671301693719650249248289875521624837035965697743657637993853813403005071756477721121812168390087889542468671623362140462086124184526429786696290423639470830065150653682122589296905386963912370334513806320176680183967578901853830969849276281782309443777470838006836508985706093970041674140776298559746890433294413161495343584334296129375561654308238845256681986789466058563255547629713558505718496731585263294744921869239600274833578285234639044795459703327362000657227239516476097470452114117933688722027021785412528736110156606395782986159458898704083134144430536409329739221347069700199706790925166114652252422722199058750987947454236866430332889878912512321998828597430016935009469805976980445743136784237935267357735146568573633784781832149175007524784672002039225541955409415337115098050798918530856393983775875685810215329993234448026535088985970451274478555015320940933875775786049391705089587369121103430045485442822464334559996342788269659236928987340631167259755964577146242492212925504478951758258387607990034155391993876142445556429733731772125089464578322644284099275347641727977417503123109914691814034455030462154696821791039626168283180123767595392602824491780218334128001269348610313382142425875683250912303272621259664726977442982130179273857814151616874344715862376758915540832544415525821779234414587021252907958175467017753360179439753009961931234264101282187629461772522232853856007221819039330059003601805471396672718483257925951184301575748808314369953487044047768187125652087129026453848539158504183408879137383411307203153472954814314680338469314440477385832884754734849781733500639455473327025675226693698054382716292538927538515724657805380304010069608057320664507030290870653923260374435138464273300395248015086100960049831363487391099553183818692550309720192184501256157346008446773090675886392706007078776168968823336941400839017501794943507118387932821739965310477716184463409080603326867727806028119679410817416625347353701986738649097125810570357987054528585828581236444360634733067532454996556926840887431967945393453728284518080725920524257266108105011286549217972078903675092968457646943961081653573615511443807854860342955914708598293468575901939786772479052997643545867340323065415324819311464786779440879743744418854176250272597704180470170155266175455208656921513550291811260230451691188136598200776139322028811538883068437020252332973660819024897292775070413170975075002805751195439458715698060962920425106488985126513042266391801116994047290769880390608200257936547149072929005223006372744137367985791339771191305880862764846502704871704925853155587205938072041041899175619465350672077779646127748595544053076835400817205736685098914447284301082340483409867688123414837094290929809912759360073168715504300696663438752109677308328561571251606170591339880509313432336766480012798563338954028161038945512600947973458867084857347606550034449683978100527119512913570781651210026768590106556643474014937299595346426200789878200164584352206032001430621295438032341778020970597194785880838907113256761983064082247770050161873430722212806672844122217149908367170626369489576356808098501603238706030879054950539090304773412860182813532558237882184604608772902188767980877595533424702783540996852483942443446159690345581422891400049050096640772695510808550119965536105088471041009353371038912399754430236096585252993303769861077338258096116165593595068079007667062093896965685669418698681109484685886549794474760756149372695030329520659712533172612475566853199748386220224764369973132852768426635120709816303218229465466650567015758527865848929866243043232256995110036407478246800145411965369268580708316432379753024498705862465864180756557585632098115100534083357728453693275209135520217724982358387312743578597193675704459800578102925951309397353398753412780967602942439844361329349621464548370895583517994708127886605106335588304491555829466326732196116749696717198650589286882383421554197020589093268271492291956721151810418545316351568333193659080347129492007023292508344314523928759691455402165480099287931444984398944124843099067033040935065768652738242405867688767243583562401084830480282718531782138900106839519484296860589517695491958872101800587529904707329903966911637514024026648020306689160081710457464551428277895737447075735190856749128865967846356371843376294388559462381573401290078525984613242146455995170065397106258685324127196007704117461173965088354560202650100190647198203880462304438503760074698627365909823233507653299957541564597869373644919325603045996178527080861702507049997608277062261253815357001617514504756771536800619259788480556400906981467969359053386164140819654165257019804471288795544155748490104397536104346912147705499749847095153029093807947931024544001713768382657471354144087872025838104031034170677239383024523701696394443559630248106145984481591123001404397383739984649596846947119098427388907046523987085069441895506778268393713946547280068286108487498307051515443323635005396484195475555035044511937392377965499314937726396470060030816777511931680532917830407825431030593583235205137411965237083645198961961657605037768017864660554030733492815003000110109123920228600344043433810835194147434611028280095130007021557371681520225581076578466949701692526588145119552741067224795041456117575314184462789718696530150045597735499803735576265500313604606106794997297116879638433434928042946764928486734126080686215168906651637783399259399843589479211994033212103498275245533299114071813297363286434151445182188019256687595032071314743541313522164656807960696813886597102619484098626988662681462794328485419564562428614539690343444891156535687615579834033459839356878553521545589980342350369243218263758048647519534331804527534958756043553650088693085428744374231827600131044505624646763913397017572953730453685013475973356931584785052611363548531727756442130991425210930522923416439505277538726412870009713287776105154265243202518671651059292900272246022836521562388875203419146606630127693838389222762403084801651543195430447515925320192928291664450375173904638724960466088397052662149426474160212950850228284750148544101784170968729739956242370993309585224304608727363951066979854931547677140284692502383692541238279845216990290063685888965992320374200168271251259655440886811928832618912912182159516491832471297504456455811865825992971636401447740754164103905967905675917856776852406937473618465287007921735790618444367859374299111009014221034656247945857900119629793257096270940499623842536393781101339022127174752176917313942051744038170412149709776949962342256773643982200462204244010593127437935425316886260401166837835513299775295386872667199659073376602640850239195362365113047547280223551271187403862325555642836132198814524351579319105594950166443325285464490490686556594398744016966043064594854931377802131084456958123638327319034565292310205274745613521451759165008050013234905560093899195032572244421598122949403318301617788167908031571433998050671945727270783518918196723675873827408262793095109735511262743924710686613307761031328758902726998419657769817980541327450385961201584698491213736436781741250427257687770191523152403472888779726479027492358953042370711697548691303437484963377726458624229437325986174515918424789173312983511361883538142699792859142219328795531854642879099044588821646385660739436572509582054634763426196220546257893950610420975940687319636189136543240112843222655681374965264178864741575736780407242877360301720861166860538530957172265620523085219926944781045915874983831448638121504247201256408183770289048397181682620645108009181841206458953753428373308558293654853165119598382358718647202416396650790148045947204929828463034272446176456566592757471597218985262501756692685572396885479289254803382760421996776196304523037829082427075574819027406774493087064403915274208408050408982463933763106464194857115361899264919544581356794312247929229075146467862497915668985538840624956819253835021708336785368639327852414430153105059588306698119895058124047195279013379889387306524027692933917509053424372591676206024960414066882056237176767811623070988392803835257316251476053949316181009827900077713689296248939681403563450384542544674343416329241729742233126514789812964006629028915941677345990415456861878174371528892281321621050618340127314103937795641272092777751823699648811089862286690260094063398188325544236181123340757852947228618104192018096490585548190658766877867957416509663583315304169280239926776301453346590731447793950601253827193075044219966937925759314557012811543273295982042943461690130945378285198399628699907551776274566980386940875772638092799151193153850586505940842120684058130984209179151571667351338216674421743004063011258684987846710171462185395804047849386685136550897795090145240650885065961673333121534588770846889742593865689994865776327666477916306251610939954956769534580927112370981322366261859293509246492892218371653953672089525791823089279954863181063744035571501908981464188332964732868540186640733855890306785203873228469183739695043713974608867496295318426643817598691504505183687438208194024552876248727097925132954110485039062857190721324417845092883675957330132164791641169683323477359326732671893473760058248160783281471871479575435564108796273146607472442075168423169363271027430211008552705514239847266609661784773764937493017159658377101886680304047917224195941628239221233084754871507352439354054649736104363590577977742009452207675852906675459489265289806681056046572700240408677455354285993307970108232698383129785869203223549272295085536186865121393262134225026347705437768540927114084210385398199100147480055051632406248467911063098633695512872892520241635404050890601736070296516600110554458751603553560655719530664698192058303719637151743159527032310352131459760640961677484852998557882454639876889546535843996832490470207587822982846691801700767991749269905776133709341936949142991124111973666188451459037562986726206893990125045241689651454111481058810455798298156418485717967967320420773589693418034947841533221026274500954352679594415939166512289964071541400496640059053144687882438392201144323361064955606696412750546151686727295360267799444917161803261324329012355503511914951776535167572228439824189533431425569491261942219825711700451336583145559069145876545451982596180555597210948554008564957718971388256508661691687756258094379294033873211689698894403168752576992113291227000986444490989009273142863386822307750835105726372622085962090054192199101331734165730138003396862098803676384934553694356215802367077023308306527608077814381862832297533605898853109678204871565636381944902323900351359170124819479250315140612511833092436128914282130594454784966246444041466473029208074447793219530393680062695057523834152229430227468802556888986567625618507673808487018578284370589553169314855872547462933770631240991372549567952766681075407336407069813726464223095954615205808111033886708172048883032452225614541559299449808323097714557775762360366581939984575550451498234173784156962064961580003037884792314923590942426240366686004396831930785379503115916711442979649011566893122432055705199626248416878486077509660587810197609449827682484138026544858957913197507166436722256538754673544201789896888821621938802032885076999028321291315443303990844425752459839391773306758306793087505046000851537604308230046200545459058630453875770328045906190250566902203460349269833053374510879887733599915818990159054413253376080338165883241964453191187462006458950789644376223810557807454038034846521740645473757823438914719299688177264155935741564803956274565784557112454039811692675788485436231503839977902462560752792013558747550743083124334301063420721063663594890406634019014710392635662867148315105331090752077070265416193913111040681749456844475373953923363647674364709431585878866512000849033052030438539050223211519636650119329306310414847164121547359363428779953829979533108448313844343178250092903784201882260413078381397628555022777858400561839180504052913152496727403372071029724702292360767814085441534675054357374642672987711579556794910806659220099652120978211485318541802537718898232348370054550773398937396706197295627147417711819430721502751371351665761167157653613516880374577581984630321485916644640241810161580387388038851294295835941028182130941799547671165637352085366119212472087697980493119124136183152719754088748527025794662105283668349907582893392842051964226801857208048955715447102927709812586349341412193272587730069521900834906907091478357599619842512896522106104610888278045107396627080871736147758774086878628901892744088736985852430758352246183515761930911259830549287263985368816568990090412264302682099540222309666478449234151451859711939419963033395489222688024065145016075370025338190344294054249315259505683509354188426703340341761807105271679772620661853842697982200206878220348940901247168232140821332435498335184354013426660930187403031814483044474405161054127468853050953798010845862994358643258416277197352259909174563878753845347038591980019006299005814734184059558635310129939825892368279294464022219186624445812356823794505794649257857860443619945059155521736370905923778769156096029287963677515293235567762619934510803084243307941863365802900357086965819397287925284963119453506487279783947834453424218666889606974003552419767339335945507738903181833108805560141775530689566277199714067456828382102991448399603076007314200486214975954518111305479285547876530840582693375672988330860988482677972730052829452973795216223746465157763375770309131410160795452978526619540554035008213234502391686296269900761777683800866305000131400598317752524693527816457555754806747810570923850906136446939105345645288697630430317658108342006483233682209181581133232885266487379316375693321865894492774711812593867562065448507276439572332454949532292101107473739689895483244559818277182955597283039417317273104531454529503871966987763816205871773465165174177312014301264427208853606687901491250473222482702213394901790991972152043497492256763539268275501971826986899893358020695355679267735539371936120868826736459659399745029498016688194917548693119514051835269878352494135580896140292020221717101454816159522802173629331755585143816104624387692163965963592455247725184888403733422593666908251073133438381730214628430260618814360712033239700866840218118975040959603077260995846844156716458595558834968651400625533729182628889526705558190972251160146798929937778904723721413864603630855924515456372068246002927313312017572828659051467002007414253784275115887871574660456633619781355349269661506106196211123575160391809477124909705575278424599971782646643627029607638204863809769967157727014316637907157824904665159858215678267768159692562841762891634600840151400949281258478658843348074594729458927812198903744175985343250217759513255476224820458921141166051303195495729617983403434611738774794293013737752791538924478161251880220299138254659148949954493221108193826477664866472480966395500978966592789971574346887840736870469704073719565585458748811480305391572823898115353525032173748438094792831706784507222038678797679879855558779647931226292298273699432634848490402747375389510165661470704459223283516158727779024314065899953643935037251716357015721438507208573698569560607861491081136680804430103532676153260238534493999201399483774820504987462089129084255262096340099507135523704482950801138526655564937913766950613350627649819681822228293976789977686767140236151102149133126925823873339285423074814983493449980206649000729809604031544544454572984122919046485441787745060726604343458838231403155477582000265026763083454069838438575843418515502021130912602811053993285862214273879202747630695142203565963418513973510773623155455235235144628103048143955197806596197211505781467221503565863625475847262474432963893026243195875375092352704814535935302148991244744817643082374502883882761226610614746222811357251719980064399372315804085993171106294913475104615340049094787740857685859503565254345705071391463656880533573410519142436517318159672301873457722499273436868770237631546734443879987274896727647090719444593981844720992477899551757082667243850620480214078830233598138409939636703788365142153133866076806373651007845401237149122264236807605023967085341601706193156563677545015860866139945298606056538540131824698364178096604129427143100565510760504495039169603107160451167466612612079082146980489237280720812258578533326783426000393243889520006110649999277200893602013002094156669246304146785820834940632798908707217636002524881738222132459117422684799339311762177578727113658274553411938017355949298404131403297612626736813147887643843175184930911341975206618863299294371053250434820444796536891865659936949492468327652226261546632018286056965590758662320916963661530229376227285706424265444563331477986170336656542413123405927758519277207314020593240275166929850249977183493869601994645929168645781792757851528291311052950036901012879053296869141842182242372645040565333334750574466068850634851101098100306846927960743362371481353886540539735522107911353816154496244530150427476483848751777443823829183929434554801775779731160029833597200960843351310024044426133126741150727560587394725300798695289435595413847276002621193115544782799407373545285993890215546133269853125050254882471315904500905328332455090209834406361383884137816804098558016219989114427274728570855777492942595553814574290267192007174629413168338029442301224243125739717738256058828914358362907227514460374415899291915370128332039237838934131914419801859773100684985791542813314346282902219761685322729256691271146131578504149962929646768297463042332955573679731547427236080766063478455325585703324315562179405383090578446150760055629368456830021846283402704794085488766982833788543671870706792759350383820224414767846595065688901534815796158270763353092198892169939625041719607473130658106118614630870724198563557808497342218283663758324055046416511100215172890444428042521969434098513480601883955695061629547767905302549534649904280973987729137098163708236833262755498858201826889374211540078127464400407389520923708882167026509217212320616203620807842873796913509681609678708337069714658277068168103885912879894113503728675458478669149742437878610486677621870812771961059237187205594008747292200370074542659068329512845631778585706216569913533746906212882290702827950871025899208239128689669021877392049248955194300732777727379268301627885812592399972990998320462413748584254223890428414860776553895350603800376127288548027477526922890572874968047696369829621384770120556552241220666681452854622115865181660084077528875746314412461346700623080106981192538822661970127826363379245136929362159319960858163883263630923093254919818203962564118778030075670931615635268135650948571097329742339439394503297937039941985263479934460855063460158660594836552880502393469871679227222451136808105803964195490403576892537549806165258478747973565160113925433833531908924750423816783944467599434987228392738221182560517352030558483255368869632472409941311104566362767154414407616308649064070460752101873793084608550746164277289635727350032515563958203746072038047728916304850175949182926478114018734276818574967655717555166363831571758806112350027838258725581952546816957547221331393509008965997945477985031279496673946613156969324575963735510858810974788227667093567361372155003246570495741458593200100182749435726956039933820614566356824650007772311561751001313000650645038732424913377009992828903939683997547001660799723614099850901324295886058718960284583615524683734033159650346797052347316922204948475247357164418853470751827424617553392905088265384764671898534372524328399382780376129233663294899818469359812009897864597875544142923977605941914580246381509613361228150410759877277506207325780765280636647841012050263127608140154668391552311134811390382632895394264213032060956103301742489550561957890357345394481759452267804927651054331536922094943752533952233827645844307335063555081674418698951290929918549297358745590159741395318293700445322124088258009462523510914443031577921246915571629439503289928135446555953382287221670016024810951443004597982852830814652010349700658375451915769693324266904201877101537916272378645107225889295991836893476274401053871616645192183619870114596215139114176703961264050093442502618063897290648910605940659496484927318503997163060778306554242736153041463730106328708000971635481096512823390612769851243775673561833609981221400211360869820263079693374908685867090209232309475420624089113171585899696653119124752801416021502523490412417178007332896225522887592267706538659165841683789130582843307452723604906285694950434329256114139928380983201915501861781663897058352090599972979563487479173350583914817116529903614197135136427086313537024242528179541484234160643319637989356057481477497452387883489337727997337430615273602706453869640935507178805712333263249909461199916476851908110006993534718556130265338068670324288224628929841312299967554470619350855858182096954069151457113595736576917853294041424729170876633102205873097700372428202588362369069862587728332989544691782242561196508734595405505971092238421097955293031841139878176824209110688967291870659525232525972968786128700171685352010023252116083564441844662385583205723720596586203013260952239136561588528281966517526217416562264466991856320120176265358626931790490660100852758548156769820965918749811614355061981177620534414359055816106047496558583391058892221957668416011482864658483476394448329622605324448156698075533167181677617816428002991117800771556210871038304615373512204629512213214794951525327224557792188902253349098755384922781283581802043166651008207603732742378708988605090760687467029230706657363085555496825961010459204128851664212777319962216847958433757910541868629475474882767008148587799716006879292517099674919209619547296883118676744802406028356161660506379714854892655167633173014477931561044346750579721050188771479793463860997290139375028231790618126210716591274985473246072363237668329769028041491163869715046402583825174848926417215040345827688980549512433196467749770256370923043601552162176990328535414373548387477879837946163900295627215974108466477744887968541980022033425888831615499254231034149653986399137924154035297076626784368902342641529914418810685135457034494786320133482390211350195431617937351453596444116648497308194307819846840087823236333761270217081587137531247271534173892577659377737828909527931962818742769087539020035653592084731724766538715046138390492808240506624142465708651094272466531125709151331208248835878140905328068533762519491768024456928352740887727240612472032182516328029135299577395484406468068509547080521632156744855746823150778776597929817099480392104088658971087016505858719195902908372392505336830748325725947397448679352868214326682243094883520072081215365638620399949765287129134936368551406574265064449061313622590102788900054540763555169088862620305120905251731789421179892331998548137196286413200707036249212232717804006949755597459690017462076152400618616383657822926704722176730746233743795193615533320314341624402008315857126610517556132542718531466322577235202922876859532111681354316325468171721738933137289589783196513007131864552819887454381838277042122991602572322846670170922440685293772929525221085339235288805931717739307048863864684479578527211048829992073840056628296932069609492566371600858364831739625697441480942739320711377743062673666896517569823544437185837194058726834087185871629993538937469102803776160967602296929986914234060731198570817749843169615756260490334979438849322352501502353936772791848363664380050355993479293241348083936663956912895588919258966183037536835429967767743610142247255697856556206639584153170551869033697939856872170288072846645906166490534589318167456717119043565927215901955375976835592195568655831187478199591746311167472949907335475061195072089452002746328461684806848783457213320179906483689488740498860437224753655162350012158362666634382520815961421509143166970785486947161140292319506206066834616667840090161053234576306624355787703470550138501422942528735123599967581737766932578680903821366876997016006838402823393141703756256269657221739122097383804523813924687195603436347253245625522146663794560191731206418656174678082588014129563232860427076576597905198239232692622663581440612905833713525219340365834852275562845765898129832748298755808472843563381829991514107898425823206674432307584942475536003193743598737910527992459299516123007073952653053954324635470991276797813603974106990825823059047757291185647374950447744288177376797432850242614957637465425089946000757005182506710367750750773709948250723809353189538254171887441114751817042501860141555854242235060702361864403488561651929276504703624978025066890093260869969522948623838922776116424468292583056710422800608917340970654003437712837119446395888173323697355245210256752447072629052144671674574028307276976289309889898519052529353038849003552535149921276673635287226690930020570971072491706315608027921078381737013272423685135068692512371095394178061827107729882769511806139884718322445323782539118644541232915862061808724385878176611516051956978307983021948488447982561391747927561096694374208228206682616244771489608768780857525839683984427719153785540289644453009245451205135612607232749991209534632040037757828340224365600527127008629665062857317678936441420853217313174541840883256177167448241780306596127578002795822650145257074227707553834815904442841498144215222531313727381960142012769004912431220389609377862521449265855858659074585062873471707741775170801353391221157777083353581750143998923028081813515053295582699648672870963937444719393152611549659651358748352560095848996641436298636305970660047082072012664585591498013983799415396865817161910838952945106128671696210180731382149222401586058931357813234258252234861501983602131548854495321450975435309394616442142217845636323192540070176942458070322485033460596547016661859649328387593536531242161927582746178764993162816156383294374074462691472355616871861790540995817762237152004125877397824828199633332667736834498517512950484669301072780559262731883149362732155899129786733171637218333480666685526027994383578690566850824912581464102948746765307709443354344295157702169411382720483510762398923660382377595145749224162421439532250540878728455773541968439173423488248573734782337265824348869549486360875182070683680742787623559677250837379510962180505882220666860439816802719365795340867696969909888287892788734267478580216627988570885299431249406829593908239100141481291856723269761571116286347007944355848111265275662113543640683574451991856518911209491454035923572326387798565495480221897481135861339280798576103411222206170511956144859824729601765223155084102689867623838676188506036768014014533306455324668797969918693769375349105005635416910287395800790792575644034376700794367154668314962096254311990435019239682493859746479148826710633775906396638686142458680709147099265627305917336731443322868813176634995760967512146646675606287315600205540262684646922462455044122178356683035809992552652386695086424288216356462718575331991518529658346915348304695014412491007933829026100405094836836596036068915963502614532595246963928829219449209126317636352807377221586225539188480449611331228688465173587917772777894340579895871872732591468385195193569766002237536836318320064074089579716219083084178607938271706563296626009960100556855476579091244688961931340634175686064278446704261683466088825574088086531276763731766213294108912317686258577223392955409717287635927667141930684299408670961138348986267199949561003246251496583931353972580557528165266349609126473437839112563472938610226079908242303915716532391869501195043300840021895461505313929814564232698378218204510992675743137650911141522932039159295467863015376621389297812030633501536430366106055971739704598763979427317217854877464471375774365870204080604311930888372401254818017839742592288060670001890814988365062599516399463555365443141537772377615353392996822631295509285415301165188551711365118075511930165090548940666956048292337413094259635332631045685732460898699794193942316618921667831320417423224495859764541133418187836974132428917080650247910657150192705389585110375939177368029401418599535606375045315788373932186304733210099018446292318183720061374040861553669953482624269564622179097916472828786076701134689754050981571457607590003676732122308637896144804439508930540149706364678179965816934590670655640056975159805686510835861775103168646218518792760491611465496528477435976309164848795283356753027186044792047530741335834391709583607618555837144072704486271810111327784394129237068272188642588409736730485775629799308550274623073426342495826346341998279551065048090846935110637283727393749841130912640455898517143424720687253260832376027248601183606819522930226118048499242157575440976966837751755155231683061274932914535470962625275153780203067962240780151573372482992734113015912370866325304069961871699950279829335963832111136724176369820133236210721529395529907079853212140882803920615643301276719798877558490495361683573988965601884304673208512999882460434741306362008933244260483419104803406392700221229994599937721351794705757247136129373498626599306456005716269311537531838277334515282433345373930431043771818902689442128649504446085165625724184027271187620549172505135587543703645776956303827810148979361631851748550557094571381848125678062261538268591507225940476915990022657839411143375436339054195208355811360022485423574751310059184566186318296529186326573055171865305029585184967393045173634031858526084653101010500187759578016509265008017240690094230466744867989143731415112622938886208398055902600233672162765577183541190534768820531922975016142672287857815008257964023272188337609838047347078862477928314793381816818152792562767323255232441720128506466023797812337335216813161873050555016216386940717003122175712301046983971643711815390509886662869708169513345035795697276272371183613575344257123043323784435311764911184298377913901501122148204378875852864202277184874783705015869624271358678368660308554033040944239488717828091879429425197309070101676533899576316224405696227828892027823150705652634494295637052632627368734603025793635108495087934553481084536272597445213799292296854151239041169491467654576391578162431189096620891321777385799471175415516172783795297186720215575374226088992867119213539504902442932657914413060336843556381491687145643529783246868409750442274135421771996946661728811175281891843674745403406422488419938666872254284439949901039939180451468874609896281952058825606882693796043067274073108812243821794597695057397605712145266360138186054720235297673189614874268969055832544835075766857381110596375170549827487372386486114955945643391560101360260260460580185748369396339298138511461533572244952770664615961793983458732799853145114884376622670760610701345191509214090452791184842777182356579601255332481346018052211452020159130758460973086491105800828363628604483509995586502506655622850546961395445863378354122220554659487470077583614271381750322571734330046098016879262399495069301574536128368216964343685694322221922327218505470012053004416666727799994614333397862003546402678265584586769648530663268261726324842397390888468137373244212767286032855436420002570675921092518762730726434860085691192939392671642952225591506820238187094160661368978323284220447890096525321348119644900855583340293272538621353935623937156464076698948104986288822285455677677713953041020834580685269399893526346652312488911400149661868919502671301124341495485232186463070559192766746057015213083780572798822445475163780577393063869580145260238718705918766916369211509541922709157715886339363045859942713471268151481137273303898746861446297027779001404678400043408915397407436425932040229780084758383037243875665217817480623535224795531173875515536998829977778049196396854589347095277173977088177960441072000788898816101165909305021980764141344208440509677115409002495613848882217759404791230466185318079912545739147480402543592440281714486767268474794928771505281110439061424559532549264127695571490592396282905431240795317220481965110955352812361107406968974287684184368094199955536389852842511511550747836322245501026114030094410314658858668616905234937665387066793499780590386176590992472775638469930347492283464557938708153679739061223404705546206957394707360316842553212848260063901545334520864226777312797831535403892748129440268431030018906613885035698172277323570086998189981493426370227667905593593445750479836524443316278038643393647104089373038401675896758258216225838006290474580268746613418512060981720946983287681001605026261796682323764227363512814460752966959274829401155746357582711979159276638909499145201261705630401651878034706425496573536368344395824918824168745293810942839377659724184716108766225704312193829905751013104657154819539182845423087247655952438100059884386586451559261278636410499864835931658716279602650555356673342528052026883936972080802442414230980996215782923210839993770721234699207931319522017643676438411561412572047396857859377160050511908742701304658749068691773910114731292434629953050858346292352696944954128797308002654790153477826971421569223795365670784248690075850256899339837084489464789216548804481125668072674255661120152657677157435496123852947808097057041301535043394715994647593569300123855440403729204173394036545950905239481024861173163477760489245994126274038926141652675412366079755808961626665786636161885322386036466128949143469869670986238362261100085574461898911052175752516752214118985090510761567586543615503244703102593537513726844886243306643586438050067461391250987712978106004825172319165735005177362937618778382154583667110661008543461962734421030614291271852886396238109118695715337167141183635121874262031410610318382062793530900667387289196386173431099584217601686864063003278408084022033138110377467299262752343502767702703696935465748943157445962231727477350631615182912310463875734047673954518365172432499280479660886258845238476116857702839269147857845029595490113027881391633927012797634042917784004594006442997442469476402228967797815812727175327040767843304143961020520533839044999361684471147999403673644418435483949593425680335605429444750018583780888748030747856275551215944873087881271692376630027900605509959343148204134435440246152139534437562344167953323365077186059943700129570735817113728972107836539672068834522932850821698692608287370722307206351513355741063069453333222058290163541273614310685085597182242000087473045159382093615686739126481627956268999617850141053719552144848213094412338059954136759877557088672018451812021108216729859938409605861058202755293830916321295524825125797905092395867134873245835660552010318373864214469436872863162491679759728395504938914605524344640848646227763087304758854022435853312756334895474825287923302740632531257304494264350059182690941165342542449829810546862253983511794320011530248981957197498864277037820543554239085570916766475608126438685964484412981433669165278646690598540186309767645336621783948030010367133941108328605299552690985717550265468650782593112113384951154238042157670159259925467257211039887793137859778131318000785514095262287923591624934547685132439417833903194800108838332463137216376820633096959201159060594467358668588865856081541190029092673255318568047606242691779548294018143634127077579346389424705858462980637008753617737611992420843683667237973429139502242533564067849756281400177490265994862754384798666537509321908130494848854353436655971614599279511961755927198759551551961613344309445339385014463279256660322139526133317279111651838713894221549876917807870442859363184731454231702909471108539630493847950696917190619799037201212880694967818853727863716717190056443258841660722632626144941087769780943855410166508955350078312834426156002487982432573189601996979530175942660834484728318854362316680954803576514394527844877456387525616733244625574244892759323634697284500696354658333181593394804569457715917433293712968297166425336129523698182655545434583629882651948634217501316313027449228029310752972361055921687605321202368644509107075443110024204507157704754037420971404615424213477395866268514791317752000095102980066038782271346665094838816379509174080307341180908720858700215845272895847618547380137747174117103243410204367875540372535957276953460325072686928015003831085349940379410665433574611437955643800364154835863147269654615352131965674364707909532278164974966961146250917554577115208364101430023334671309656382227708474037228881552635922074077121597194422279105481022248892961583227335780023857674466015376719427084923545632865864994265619541843510087969411211599010710985794003521729684483920313388264237013317169379986221995749856775881726293149037557558742689740354061522112791412323664948526383147579671524406369804400958297270424636273187182809611802702075980045502113119942002990335852048557401234033596516555195452450054087720153868081196005183151837965374824976695727731170681010729533338762616511071208495301534407310340792684808270333937624466841737128508187875177442996071389258018041722109810997396188124832077187905885887151321747304377181733911027996385264643265858375252590481182785200480734741390982579724559371653104306783112205801907301501603031308624722541895360513093145123642693346334362114740237597502460836388344619488727595053897856375200903822497169454848281592707005548540068599234281132462440687617687455446561893106719638984031758644390408438939790350695956744160705073369401478612361892625624954204649627142168652666172729919234099218733856192870978223041767704231856938316585876480910284800935831374345466163800938852549278814650098857710299341329510447087884562395536760295203449489110060057376206266546771449887246318926577429327510379781036712482783629526650316069061993062796209518138224467100117663746730607184673514828476692877470998641701641770234861931355533942044992431816987732468597459872751566377435003749822291486204128165945437722041903437635221539098229125882498103276278176390971050486348839223021228281717063621628942225072709300932256920614201883278197724490223779923621281352674601518707559672816200662307261315551828522176064553900140255680465168753664600118086454329391312646561314603264283865405727302798761289487846553199577840970826108825171307985452219410236558351979736349712277055549473877686702446726457546460887557216718136297632281336655973889595040762575847467746500081028999970396981731645141063896303620800040229011332747956346806499228711795138789875465380470498460842224130619356084935272330330516744600881899154842415150379023869966259850409469239524680286546097365451082923725940930674122501720453410091666542687740076271577597842101944325929348516802949387901369763795821475876701187944107795554921128240386573415656686548449434184543412420164178978707541807020023620711342053192065943200905550172046455911828397257959601288449070392244322906818598546364854385787247962170050707916647948324251587688093614924379526436191348655730268060005378587765260937253333423800623816806488866725827095996791324123288226402063533023092049327623964265834385458367587905587212834934307938118272337027729576410331118760554359489285510845827188715739928912305741471970065272830294156867187256360869715705428025785350339296689371488334480002604597880533455605119317788337839113160966550527647623297262315831984977284056593371109754374769476627605107342372535762187237220945769680734597579667597799046600784849037323165274698810170337447389941120660726296209139928704036460179107428932281695894410758387409919980894772986844292001516974754128505179299371822582222694835434704748796865574581193856895474967453906343272008789148436637108457807676994879764303824024623729112677215571939041251840419364367488409691369078967642309134079211435638066828222242473277371013715407352002186329478831013644226067362146632938518111547378893652066315084787803693777245605069578744978267217914152313480509312155857015197778738570372535075003057623056212617031207978324453145907311874381943634162741726087601976705764830186719490623578499486104068894026033091819436021645136471017916079314473193373287853137460768502507713610696153155914069294470431537495065451911918357964692533710124091022990463837857734512827499173506821605670386901224513638203890757931288414088222781947263663331333203825412595558500849543535792151557816052590453456680800243310050285002079103706412624262043570057239695295330637603537559462527326991087730771772316253466760133026504526761323883027257759756630380433596574182324267187489044179159613429690023458234222232862023635650890593236591911447065256760627524507007867285056841244361080884946428368370513092176462132881848840185215060255742519709280051250771400100225293107478482516696926484852209391304843769949517720442582628525627229443995294614173004534251552650464432329928140879940584046448754738391734911636904294088717688516831887385585462076036915268140673298274718821786986666436402172495328540296464607705244268436902391995894347330195610491258957823308284657032792958753953291985817657385748629411944915161757892113199903056466022336967500499432838434455996812431445335046614899916676322982159756677791750376681120710734636547954274608488224736742787260864430092238813156349941750487616899703104123831870733198959939379540704397822522303992605940760358176227512689377343861352021907731219290021376676333169522040086426526459208482388455309630571445957262758585499746725967173601233205793587384200705887949461188729743575465823851131445283579717841365923899632405473008251540368103326110582032014318667253556418282227664549076335644655336013287104298586700690525356061428262855309572938080241593650340361757821746202945699935460482463651427431504671829978382098112246758917998330171640168440866041955542700873411722039290359282477335657530488043488631489640688518474567227551665511064985876043947440555137326713164600662185144465957753024204851381618617432492130646818176382152568950122375858189352392822719793040694348541067384438717246678443218297800241175501981089915265369078072445396675272780864573408060497334296893502213266751925885461239693929984550530345822888594990664683371862680613561914724981647146276646548950833721247054854328752947603741562284269053962105102787888491311839011015575662684170968831013045814978107499448058695973244368625152231195159831468441078806209835598276298246550382705378376757464437990283986125585017337830584260790428088313825450228066673575652552571773702705682660283150277050002194566542262259009281122351248861154810694029167910749409151047315343836868914981007081275114692444727402732436341185366561680173310792755755118238244760902931729927299462496765218233600469145330613124085172696659652199165825693409683731094955538481448883369191922683510978014125823484207615684343069916607881590819767471112274185322621863227381620557623123204642295515771246346921284479961176011478794390117172092626133823963790147234083412868482314723654575239935095965062218598900902209455713073504226660665053829149612835307151035135306227908291910166099555945801548401454722933534424719898239332866923290513575966589607375472529181565170212928418150670890715084615481754986311606957877821170047485327570688046912741094433209522433440692973010981271259510903858933771385902263076750210272900521494189134704226935099923794807317594111011565080578677796049454153932209551770197538696463013005587413833766739328157860375335482968445785380224126452609893158202766126958147477578658836071979626465461462835199053144702044674289315893261077809313678336494283296102931200108604678977315488979311393727876150867017203020156645375524053127466052453324336728617302399409182563725689268143933554671155094590303486807221225440939279089617762505718548111516672832199095920295257002940038116604998655222090225419649280395120099765856161207035004473692169486360037857492077674011472868302729184727147003939528773163246399012964223205797376352787807623553909017870253786373930267774074975895928282436768333102647320624821055571617536235043950640000001890808016927394639013888233636446389350366087083994699392620247152180491530792213577144218721030057250747570462000853020198047680065921813635398813858522485790294061432422372828311631433223151844446054421489336831014548447230018511279661202004280873832465479335128067084660053460513037463928848285940037541620785722136782261441181653388420676671943697285194899971452059918471018324464623351274095206640718469970523733726847835581954385463470140500475903143248509847530804460059689793976037279136580262425788138289060639849667568546160019261606190425351998694428219681991305571545142129880595837639309423480639205892281742136040139275047967893229378661988621968361413176762342788534387014975263282525155771257243738347933995432672403542793264696258599353743452713542413668139120438578713276986708278012034581138708479839693470578027284862290509319144565645455601919898141632856564165999433697768668723333813390819248356903293649929635080174726140810276242063845023803015526750947569632876421962177244412703903575428041730657652522684465762905589115869314750664515958966242815236053980425433613272745443260372743241694617970395347043708784509310669011572648096109092037559770882460292914935706466027977514906066350828529378485974197405012525725853975920803386034499223369093612426432015454392685794013896586662437980572263697355100747868035008760633783659541251714625413328751446026802099371839460226159318370261628807989534288555487234878040074458004809428232710465162797337874589892237894290661836932194628326770569071817610610714217277236541364960238127830276011308177289822727068404643383220858796354606998211035221740642698706599263912726801864162160997825899212515218048102944576959529543341140404176466898924319348093358141879686909253538070712687188857575183383734471789760425942354961810084014375407176185642115738996453070026750396329030448017021046897205685833080484407274601504844408531303446597275867876503504762163065781413305376712355990947694500085819584421649230027806550308496988473092113466380307677753464753978611981804544121798138088961049221109835788156610288401210008400065845849925782048673473894718098605983279420118284666095511598193947156483896676088748063990289864215433813850816983280436550097277230057001158150474175060250338568355556401098804151401394208679341162049207752234694703010793476598301612791420578032412158282408768994885401011128383114206773733701786420536015974986621332320516584597522318781724753742158372373548187643101089001326554318061221355348878281261695544634978947420662924990426037193825070128616142796954259556972392985125847649367136745418247830579712515423306393672890443101181290512119747339826832709653500188040957872429337565810576171426254391383916086024900265181187817621911319962723778457810897534576956999683047581693918431554748176014282543977198549655010177038791181049962074194222041363195009300101861731239132513325217941188467230674492212343611861723852357193448428896768967662887737917651322092118176832087440133396890815480175486627027353531993020540576043114361708030599486477229491194674901883224280070597998804735835490173999649130914734884382251639649000344564551876083087378746830982609460145333360013249313218545126573970839337974940095626023909810971583644235391360408534128805873580897473381382478304127049243607912999576260496652875087244149415899111067953608993292602619371821693810578676708816924673466100046074883874805757911610322511006090651745198212741307246619847733488862021380395685859082715184319157384917712169952810092870554292746946959457872014706623456571707069661603182315730347314375859829305086049920173433664647129782258321300270010416942782925535961856133769930820445417771906102757601075460480581410306435376170095231448465323705572638868362487043033073929922884479884342081701266948603890039887572327657601023234128724601030407227922659104332542798047330213768912030759524709224693494187027878898620578232555649522568246456210901515212672656373840609135299656227386116815408907322426119881345372590619231713505192266570760900721471444400772483950830503612032735560741550481827487001051922862806216787896565976549956766343379585705185842105542198347540362738572561686448913517019842209389100264694049619781395964886414946819862953389788534138085944124797766696485753163235804374370789903311420582261487840340906060362915579916782581418598155077162973597318098989463801393810573578448699902367662871821551269640023401388369339203416791768599319583695472432380907624200428155609822471826737021733585538527573692592523734516971909584756079502175917777558158932029045323100510611355303805439154912144777684804902909562404388603561265289120088721286892127426507767127708991720597873867199114128426558553041587902619898353062222668821956773950729593636880126764345965867228624547167437031920783178955605781636969391365485317054803884688473981969052320524767988493340009293968379937070382313491180268870639742038106448659516444421696199058952531810609918980498269516776301469445410317507145416124208123073483949659660535686534196304994503613113221440639077149812861659917897091829831427185222334847344290891783005066110789507799165219692912547783518916806903006798531344821666017401260517038219372186877910877930247137237384358700420481870106592748628177668586123675942680463267970596252757401489554551445593415865700748134176908028099647931682538573572471785569773297144714310296463872469866906481347239826933833789323963395640909008374102856807297069138909670989406158404782838683936867803746416580602958426531605304770443009657614740932038033318552483438166455297841371600093774835099258203493032889985635766264921137052871179421317152472625198663671691070952512771500614221492780998932991541459367973368138834062338790645035007304766169592366622465893477845991179516250000354929614423687905494945097339418207953224563656864197561270466593672573706824975597253762226941720069701617493840177828478038807171170418828827457818487537318169015019476300257404032300787533218382224637025506662383762374051370366919593445522266980495930974171806019924121838435919723465641928849301258573572195715667825681174178655759554179817915307056680186041658411947138144858913724375160450692491241794998992007725620304376066560148070615364189286727594204810150323891258611244981096358711842873040249581998651691676737868373621758140863882064068241188166561686812947237999131850368456065022323924060257105702303759238684412565092235998345221455748431465472829213211521504010943714575293269647338948646424336654683047323689054424713820599641017899808147096151948101673804156982292692520132814375902897861763819502142860727200998965065010836622347120158625727709961171398926019793523172914290134902234011302637245433872073839171657192761606352231302919380377876488666150658606947551204835034522712084352451504834409207244109215537750243435527471231536871235166942581551232638712184936717605731589581677709285543553946664983205587014035121629630063590322087994612754623252523720513474080103379814723238659489703204316860228498722222682855669080047662704873023084541441256143897730553512527662253061278492262540553900999654435148109060057437644850354499486814582913500053983712017982491444706833841442974479742637993834998154879924795850507362443533565063921524353951285620585036057724277172280341019405010231462723485422260691230166288654516343885933700451831361871726587946356957138574224602506717599009243418039335334706258985633360751667455653729866331895419308691321216915293045557599402126089508728070789942182004131690553686529271329060408232000219352486268896537058146932549219444173611051630523046111215929396719903919431003391299556206301008369025056507921924653970296785784437662162885742037705841843832127520340306102012522086261289567270897161906514521476043190034768595468547354597250583983285436912310175461795441691828141293821665486120268016710157721530624277984558777331002329451812654411624317250464229574402762272087526822286011112500004930239987240986325661676373881983178674054348045754492432043718328472106352735464946566344029949308253181070358616797556045417444899591956795487557689299172939752698394841280632848246399170869840133297933557826743230749223630059942420240100210711244387079337823893868316558551836766645865371289032272123097862209342855974314628062559085208767183802647615023601002987211907609943874147808232653355288223193161470910132848852788456411024929040836247641666126718481010682294486680990510977458932155211161496671972750152038890301762000060812297222142576509519537726902318439659166534454806684341671088394858020737730349770077125084754740583507851002146585782482822841818696071271434494481953438329574297508361001937120314721312097356144427003409583961295565028713797503849023280430549519558363827702617184602697107063319094462813182347559488551899114430840741729965924154914837668808737610777659811858404759266668452713202155403776198726789017302309805325532372646865576249145369229537103856384363473366375543740821111597768685609879511574497042752945378554983219399755196387656780888130906703685432249895748961685985184225654885068443463414966249185708138108271937527469435827759810940245879472486519838738807439073508092879658410482033211068358747461639564818588209987041158075304593466309476101633278818829841215850927634629189963153029893481828666718518767675678232150438763245628767736497302351209723968354343144693280295149616456135007802169525364650047867395514201399032864636761236818129134842777211322746527620372808486111288464379216718623070098773061377731497577004291614753107526828841676955008947726211355129269988812675788917247564768144795337145067222494871417510616545375111010646337427370988987430720894321465616467053537437536805317918236605751844411935039529126284625401945646542920794348373356314521533025073305294431479140293450573202570151203344544177553867594973972116754436388862123568344045742918514117651314302700590658336027982325288094098805301915163105819739672617014342785734622365584218460203815014776404075162352040939951015366302233692250386956906240484787088535378940690072256265357504043541333777665471922672618394116646951456123197994920532765451155860912684142391994127108135289139504965474211041671923076353686274179287159564598749067612668588299943019804818141772904185739738521410895927662626498589061122641087429710015992854915850415980275357138756891850121687879021784314574503255029769369067092176049105891488995023805789627200755453605889907089409133716826700238480413373872372758469306358256414533507465032282848786513036398021020431072949295770421632031801496816161806291393934624549787671624009202051188660150244306686093290683288189868048529103673119142442266542257602545304428054964679904281262120678977974124614092464245259463425533851954535301547686823248927607994462512387591715858289845364879638743773499245825913928253625740995152875866507031935329064850335591810173381315163840509520713165304236424689075771955908032268087438025183316357475852256823534150657806468808879652074295785471034953478983843313292820528187007936387939013564896301209452689692686946881031949091081710533083664121811236589662151979371924711846935946807218187512281829752521337734713408917505950536366932445499607347675202060971947200929170151997973137427420902745182263685749095506445611000993430577070999473823916973728359087529145326654410060434535362963424704523940983178881110080868083563617690360325925420699019456045364394825346121433261961465885997335598894903163161369355093769788125266993068418914484857420356231626602902421880955454605644124459173380978989022399252112193011661990705566811190600340158609831780963310884100537437797177188243529058562310782281170405191969701652409932233840528612760964629256843973628141366264548231258913159775334943368368604767613488846751246875973677090864420239639197618422517119238954438638898429197065133995627821770418602369595890203900993544058549303615659930885252532420034859567501679562889667040559383269336522046056952033703764920236334764439121097326909491055169137678477158349177472250523703396868455361364443977720706147766037283793173499747555925702873271585047226301371766574270728194935122567051429267784938156879683952396213881306861142521848633966265734936687851657769536950922033132019232310817027529774074961251448242967800637484994847279371574874282833119019089342432408981327733880234530540399091859976124248429440357468338837182311881066951785356007719930918302007267154910907468171709605158643292323185237896145338859917608151789089435337220238781238087030688649154495746874066458766531201988262100545342904239825195909523506227499206328793870332113113257192594757274275616118590530480797082377224114006127152618038338117453033621210176492286389792851962928820869884179682413929199460484430544785913236352643751268643732671974149582350286322169910859345584806699038326842884524495307364122468432366863067286677175604888648709794999860706139821436475180223003774540942546116509936936553399563217629615461228703194877829292347278044722720133770540386535351611290793664942913046815663001602781822968941719743602628795786858555268110197420348235224380973631677021898355969059872218853075670190840376523261471868907315171081744886647686150664196557293994584687793234044739562354182731765353977958736859598047327556766818222393387105046336777025880760892151298999759836062925104756899831648187968846332432377569175682023824219694520823299753335188913358748604280449513297626720960464473789119717297888617695017131525124410778175677407829615159924854229739286585256847331087105810637755988498958287960497109735749983776592161102575949706167477697157495296288756973532875151618066113603345820918049411834541967088843126317215315178255406444725111125102465753381330720896782509928603530993404288095479008305830551301560350359897247203475333539455635130966140910530440699502103518030840367386463075482291826438486622642671342722448561400104343830863171204596642025939463844794319344552840266286366343748247190608139879823474781213181353496924566294189722512458547256901359610295624849069299061276457254755549872403943136382538584566585009507738425779313374639637916202109719803889983946760324105758970561503037847160690489402733663848971296376203539811161677239342016075819116139489854849307695499523800677332653707451723602767156874717594923738076349167466038288582831297871158084504951208493885993839953565651444170438596819682777722914915289913466209526542948321246384903255234990524635147272027943061710914740703702432679261375784747706694439915977469477034071935158437410838183653957666193701615518927081908584101626039861012242462490793367931795152828769753756254322183723702933761258186363371113235588019715836897636487671580407548784652237553306983157679412330763689920527757667386767923595608337954122606537170279465936371592271603158363103703387545953206943466681686884991449790703963782902130074461277467753776388578962328114000370432426600106839529066506277836313871739283750122330422684582331017800147946988001134784651485053230155406183276026355057667749564357331417496647354902034422524943978238390936702902956125940023216864301042581598377907915847126476265091319298396038325396457595957569636390110207561927869404997924799835991470048144214407755157690212526112564483437543096310360251254341884993212094066625500529468856330837389076750587623176363331641157949956522308697137538506796901869186761655286028327682261703880687312309812555212207832206874178330133687746789988669035126222542015260876039860482426149278833327013790524318416297747752565489281897725773973603215885122126286831450217718514587370095202062674883321796627776703047309988604863809418552120901779128249155360689848633584465549444205530576224878976060290321779073675226373543691086689197214876931656121765945304266423561133918076776426570774015460443321044084171835902238697353549877037797627667872302730548666783371325476708675899717979633961781421153528034995959105421323027165040474132724874712917042408911475537831805557904629713540320573956115819527931830397991872470260436132217845249669656760188670046571520301950866707901811158208152651680791768552314324307304607975626570513901393664390126528827950172684733915578587630403253865854900101521749010981855803295606467972260370855669787295891391083063670276945175443408284747936548004655675772534197270233308061265245891363285583940618929295124602327168195391993567013818226293704545874181271594286417015614646668498131310483365616573703819786099776186887169445188549886491338678245053835552450945326407510109441924479099262101609017088555443718119390975525138724194124324507060696380976500449575903163037066002244782886543609511504615641700077166736176487587909188987349655297080057164532859631318019056908627510075583324429620178503192672295617171023796502146931909309731409117811373388182451943091604612916487243593290585003206987080038264962699009202298603344818659332471901259963502130194363407513105155037711288895264477824227779179397196608936792225685801554488205809721801454421373673153763671057257156942120129520329871165816569626787331764189339641342409603818521692048324773036460843197456258809495349270614304048705905378560430405742264033526972280201693328264903892698505763821895096579077439318897688451414828941766972392626679838526688006211563425077140202544503026173404885042150820244609121044592473532570662361582436479200095012011807271863677598360521619117257551453006758217639776818000279683235986529738628471850158257678018204066785503431185352308480674739227190734815870430662973903448648016975608875343991269097913862553077103540467104355400704828875333514159217754845702934093786637523521051485708106482354728043925605809742398655020203809070754780019711557715516770509124139224614060625267311449289670134022391178343038643770141119167400662931076159132821343518457628429480204781897420023723795829619413727579447279971734404157241428220900380554007935897784040084324479274905129096281203232936952284655844957211854216491358595246460673079492969210838835415905113896153055040017051157927149513504303728304004332007083988922478988005102883703859576968582656431552854571353022612109534653124247715856327685429426301709377778058557611935930110495389203760133102416462111582645698541606446327420508464543627315623076556755977222639234690832427781320600385999879172972958774799170107178846942170809676048841131398559994495365518508151248458400154275604744721555127963403985417161580136506416374097859180099028986896145897185534588802408934985276964597430559050968405282827779102758249386825855508070658999893000573788049325033010702989859112211623153305048389479120806325579604894117530168956193081892163712537890269730633634226906773707695370862637384081522951661716835282592863699181534792267818730495209312286437295601985294076269630184224358996134914903909312989165198694439466117868104504013860795364551482661021143611037647595996496514038971489068384686409841029001169472387280630033118467628617672999165853121679078490903987113073852526144149638306549612217745705085087754605008012499659269787556393183949712604141295209208884729442691614322085307386811434580683031816100878698292095852556954593008851032844335969902460824278581417007532102232456517358391102954414676901245262802391940113027145049245914478807012534294897048906548199219238047298966180902874756659434914926685019949408960466346296714945623482770798097752125565634392685741308281945106219814729574631249753679792626696518490855069286713778558318282283793934644584848188544994890130985860654705439988483168205743562134782159591458389555900550988660987573454505819820400272598794241496001954272975969312663376461982857015409088159996570979151056376606605801746681538603650722593714692858456558929988069452543742461151845790046097127162013515405501016310785224996941900049159135343471737120715749141829588891560688990051294395359773605999045981004010060099757401946255417134388648888599309567441303243323268381104520711151526374593020978762441372813046146415115094150142603794981607753528785558206706596532069402738499518818079974116196637627950322100964689814803207116582051291064487756273721292292757829428179368056760642940769470417469081008960716516788297032018187051932824599844148794792090161177274213098849883625410173858626141398785497923435401662569737498117564073234330379674555473808608534976623441794343222226998753071634336231928993129417323939727976459586007624254163953905956380041182540151338213044067693540619039272467352144799977322782089698654017702394129993988950262786391521708893466618144277656216636165097895138174987674849061577002249699056486542149977030659515050701658072643268446942516366330613013055256272543284491359595700759998463323102586200651037791857901860550093764072324791892670744691443539027708444286105292941104616771844141501318347820865860771180161400954888834873391405458766134413185634338924152258062154651563671932617234356240199613144403556124492340646268624662618458506399482406200605834279465909059223374350028487941312053073929248025562127553400355390995584818439313567829804968505038791218007197240532907321637083502890585620346431369170845958118576887607708221068238477853084596750871577573208508792534064619967243317073051712738608565629155949591413906169978118892285629459535314006600421922529290496756127612615953572162094540233626575487503263561775045059294874338087663980611381104211977649668845416632183273202952946509387728170046881612227054520875019385426951895051895971617237880796770684877902612217633507187155858046287903448467679077672769051040954216503558207540402619120758965374685589451019795246379735133865709789049970101876351711350822837096798635146494284867742659735849313859923126454432552354739285305205036115693030237304841986980301103099316426152623000739833293105197630021401175383045661307731909990183463708266511199428579403306872155009149439788957799664841729372670828592469513196131684071429728638309823381716262289595333111406815717223779294847137880937226127195180183139315410596605484076614218118360643534883507367468037094052177848167476467368749051130478694443429523936539178714153279676756987817954135515330191223972384483254869931328460672170293519828877626301614963455155605070425564590905715963412140697538351340478108460996769151174838277177512408727118039689884148306018349212314543771011372189595412558225555999572684571205374848420032183094058172268555847506319164367098272046740410802268131844397905454000820197249938635407390354913038804601175797627160256471975466548373499737030224318614394264107828585336569406945600061182640635119045443712330228373427153872794629288718399513299042188037107760592515215167969432703109775823893910731365235509116907913454781237543482966146347640812739008446311631818335977495218781760599903421697853117465146686571062728848852598042308358941470525599453587322967460316340031715560849071390005148677985977759699429291461087197811501210107651771862734824580812192178657942506803783142479780518794794531343581602306333017361040198442912255331836889483440194077684528929222121231716132485399285057675205342660500129602534324345080957042904244387076835880389898832940759431952331926317081785408353196723206063746970514017656833821779672506451971255218391757379115851895503231321274400890604021540130767936032359420711730282125964736374310170821673175006591520350667438133162130913817833880758209920267494412764634004266269646642958979602301748559335565310225584647773083765547666787240532982569582369456772261093099641883327083250097039505632464490943675660901760605078430281072340275352345244436842462274491670880073716676816414875442779083195861076881582039027612277230953344477148704875622577589297210893094183568249997121374976589706195891089134310553930501715351085853939265388769182971354259873808083821332653023638766254814680110526563542374527971285400047483342317656060237313815910135253683478750111717896753371776385054046168501492111461119126012548313036679047299789942141192999280619561915729057206226767333042572876773932576314870030545261504117024054059949003319465465365187759714063185943313251716452858963755788261416752544064571050779970242391734589073272250442688092376831124741039763995871542445021346714648162918457316425288729295945266085221594333723662398748891077161498592945405708715177044489750916322774918781788868384799415034838491139907273150934862982866043418273328143248553965645889250463536179671822918589497810133159717147080208639692319623496096177595306456075573270326900461141848411691931833099976069658775280714824539739636416376594236426410304978906172959070830078397094479609190753435822241115735142827889326010600617596098043720531365925020715954656787299382955802589150067732212344996705040002099260657958834603797602794863760672167275853444425331307831386692093206251347507649980776413126337012302921980490730041413937504933394795188805945380324348541825712988289854359803839633188054844388498787424867038661182598334672357436165011911941148095117669138700608540476426746439545570885641370305235060911451816287892004541475838005225179206588493111973321685802749184345693026469535373686143800223852017659995382993611019514116391353933953832487573266728484668692133033236731610315123121634375967476302403867141370707309847772294361650143550117146390650080559753454173805083926789872976628419115375354401986574773893200830510826510563298405640446895025661300744438110852538027725987589665807409055567583943016083921593882462172263056698690759067784704754650785973787709229657229629819725309038374664195971691825399044650187233308152071645486323438110303425263371204079789193993645379481292237959485669975251590293874823313160381085602565406619751475720292763244107184401345074479048945747585774033059725664434669687779726895729598897447083433576990002360710548698875229301209524852484134223462394738654049371039716806527064800488373047686291766000183564825331948160835488443224527226979919918203363908413972807235482018159263123642792792098882211922677100707559339769265613881152526939918266021831317594578040529801757245099630356542150268472515021435809704941068984402498614665800832366383163486828219558420988669946376329783017547801644968539798003947479443908195147333661648087050600112984518777950080570047973775505086673150477326638935940320204623527281239282478556111302719032058502686860065660113370432303877334975676274793135960283468422500105095186476192988607569595650849579675223220050778334216878954410612594184822390484143107938602838435778822382845769746154879351457312002794195649839999255364546803792282737410541446547547308152785189415818733325365758796775794789456773253184036664162980539657721105962961363614764899512839037815451678859044217091235383109067873821600930114288166024863986326695686608737978594074174900195863916279991412184748633309173960848250613852880017186776094057798439996209802166459939389181728152569990137037520153219676472599481338212408764873277380698178727120864199135169062505099279738806833941702474363055982013226452334010546569216771773554618486022735959670164188187778138241240192049149382305888289998815203670260810183553884008509962110509772948477286918450432277009822884946565089607662337373135511632058349956894080130121041391546430350450649054449688904912505689161271947881357477171554798712649085592356710360176400654843931519672330386700325048880357154850495327287115326027711049026820009459902281678488203804525377085940892654860644531328882339039978255735895184915990044230336621367141583288182403817538727336478204007650939033662680332881424033271023534397773518902548392758505939063598066675524804738326818588316437861939887908840342760741686271902882477893928913348836105097012509814529814891593250711446075594540389056148782127917438029263587267764598669755487013427832234131907676468797554760186358846689150566498131978035435208794363393001858141048464778930578563521935093034349089404660134932995765903891812134079029739496223060108311624847448931496919188485676563475798254699104210734349154285203427118119087019110338773916109828971585956869409240809816700810318344853462815480811366867398955215380165996434234347986458367483361001884767629588049745234298256788595106391852450018342901834562873690426762764787812923527961198544287223911046129825933140731174745956541994938407232570220232217256029705766428523797197990905631330145107240884460464879679015374245974323837634593864699921345416816459122613557303150416636031822600222115062402744454558263938944831377161894608951962472361309038348099842649752830179835573434286173869088066341099243880057407367536842605924893551133750587598581179910501682912014333958372447202053036999156611374972286238965232841711025782678620500940086769699262056206678421586160649735981155182079721051463561550535318644647076857529105573227094327309920952074817965229042946235385661232227890194721430536497901999277915159840064591566310375240408943575928950053329011199310102798583528608019342772747277504749861088572689753174242517843424031548582429262533195940333583875779947343364293758202521093834443751217634374817264108970086381827232233281276883321123766899952147571736171747985236499854954755715508533827210138042878145303017623149934690892845701264140038258234869247729687895494977609664527735181995378660994205387843859513924599769683404220647180907008695928836543933508714445272710671186298818074531952966629000993415522909733628911200456336680932486592425212858617855272529269265578211795060406037188730436300333401313430513046436930395929227920871780631348480535718490158910888534805492224109420538224918576696499804927482105504795897382710585172993636015338685077480959549005263332695306456434972393487337964084380556004813321865200408117262755029318276492825713526795614802725136305121009394284904390431246759433505281574008650959885475656486709489341429126164755928550948366649668674428160682377809091630987250515832539863379379316234462207539363080088084245530043907633810530956041029689493460703671923608229111832712762017386440420073320978743495116281479004235155980000783847833546057942040368604835707397162076115031545652706957183280442747782371748382535115461975885049691131483626495264465667546860324150183957131091588225003432666786705713215639635192007729496482722022113177292189081403482185685421901773562725646577915712237776510366928515920537928929849496945440567530171200008238520311064435776185804104760807057737141586040621484916742317014129899005990399572084412514045305271114428524254404990537122691233504229657131783792809663941692926994507804430817034502660109190696653934525194568330049833291848653268483649152325186367611232243282428222929374359382492629148392011521948801076213834335750446669042722200079026875349837958616023068021306849979368693659644273573378991847354540892763368693792647228061889687427206344021366336382011144320753503300453906740664261480698976696610441556860734304402189798472118130616681569815476612725107248969456000648579120529900878983482476851251495164392386968969797572371528157663567776684025220509491608749763762422871466279440176084958495800947916426568615520500460474247380565104829260107007090354092398376189643735452029732500991657787935107753595800565305856284540889811280090604567941499335538528280072799257575186535726937494216177595756294426364310564339799096849690589378548677187537490393991883679169872647215434440292416761205104514077725165575929078624035481966836713784897822455588835854049174299118300426105696952690765377170663010581418830710599118095022665960757338226500321686438421481276397150808965751756536418232654381211591698895772224410323247872584773641294221506235348226664771913111411334902607658290985361203309206376396159203070063756928954485484927235647838899182674363913997629649580680789118668864023846518158454496943608074067206457413675853181914418831372959109675322153644092143719823473717213168080667405728800190761991918473301359240017152458580478420222307829183477246816980501950131781102813112670596616726346718425146355984802822950285128358139037860976081285870714316326533118642795758245432796916396410533163802652002583954110572116465370582943873753693037457353116983385414376096467687508313381097426909662046335770957938342494633423827272021896848964996043959860043813624237170351683657012188442716122371216295050219394264179004445341845049293095126756252679970610023956832586929708764365918157234370694476488557365783111265118822019004261521107749204642697763913190997567348129221737864123481197076989892991473141133073084061385258972286954904752246478752837576457349707836442606755976220672651959326797108698838845973384627647531285403000018921671970189967950317681184189014026144559895084438475952709564069962380747352490862565696498523876037422250697421936868463064216477993969995657336689040566604074626793992437840833431102335502366358237443632187065304517485002950606888829416029982875284313495333972026932955807952681272043362714385859862629615933980031887925469991571737542095228096883534472245683397842929791539093394065631377873080785814241487554880370145625175033452845194542290801636430491724718911295522262161208052312131677072168292336022521705659426231856490399758244373069319500571545710337914395130279076525522613945817460400309657025296020087675523088577569825814816092648125989742759368110410152355811049805710751327790991555142094856891651905613265098752643662648376102084879901769424926635718686326871141495820164245091417916536075417585578290911293636754134839914354588096168392607070975118678959434282767954520702557240608483275101761928337957264962268623731195556591919075526034511582215069294597993655202214700667135425151815678167713065789549722053565098096373588882895392459535682686032089438267191683447613001737960321471388242497903032426431923397453334081832989759822289189082789728481992223146566530747702685497217446967331321942965685249855927698873874542915728711075245949988571366065182823407399313770535281762856084050853413621621752215157622463715864715871738182051638919533959833012287118205327068418700472871949379366597171276398857750074161616051136096286948123589557806404661423002149870887865995051407013881878030211733134267829759337736759517003830160432286575749764890966971736221182559957147676590311311895191034099436735500314017906901605773383095294566634102528442855220209404442093954753875919295515341158331714968854282525355901163646955284225652938266977163205483384894919730059015677860691020689081706817466837652439366927547673947258917221207284119703185175307363799341486905522892766414353707194836878678436325539119328921813299194464584820313182181855300441233148199144012534208170328885512440373386749023440796476206474626473922049922552658008232942388014510908077876857104512376439060573182803670874510492264814137084619653680743278880103207590591818123084435166922322997391927909255392687045798610561401602402545498454811578718168529323410446765931251471617821452907929935360812095941606843811133458478711217124920058046199278418564847661211835935034235771137940511167511320938145855055864045855460027494541294601497682365474344979003319313055530290040976457347989031490876063265809052713870396395052815717800866738413564384760846741031405188525374604668546711455724203361806746841991687304169862184593314164291506247731649483584414928885137231493796730205183821077294063520958021899732833302907046567265328444588218847422167753045324769366331013654954342809389230096074126787445494207418912761683802217956538478028593596741649681536935590100823110981420053493503626063935850736742392017975038703154862342573440200498034637897663729537150940281833010836623293842542907381499971102132291130127662140827163557276226058315718821121310704001495409181653408491997726814763052691962417472816575912076654248783179504365478959779046173862417688823058964957355359720485620330129287756839849647923490285114606271197782022804844541313493989685133926351045561786807672756327419844034798216665071921597608782389128231631329612443839494589693045538795725659892262765660419414827225651893858925913205944838479455790369745648404704519006766535667312480127093812302938124954389138529604801898366657883535667295961999458986054293514024015956626502552432949166454657070097380027734163777155577646700979697582796985626939061456907270385952890731366176895382742626178885615004969013989935247671592692548762017110544743265541959804491880694192364044011689838661169223056914538251795417308446016743810592145473543187838286621313558154509563029002633149946426154365251858886721327019846769064751116390335302062308525218999807797000733642914707671611409891302565001969495928537694964740107470366241542314322581416812332443629652576370785478559278919321695497518106058183605277443740448351579742843807359698564874719348071666227700784333402388575653867661800016291155001731641856983767335283564502580098507061156728152512410847336812837217915144784114891108475602701737102117575865393775745152714683015240986592644902016000801998264256353189341053529959440940911817634025277088869566450177974943193029860160040262908567922067751687055397429354787277659062598052393709142206740468648971891329459846049954858599357584646241907000375012058397699885939832309347859789147835768849333634427231435700947601608960710578918887453624080303924620219717649167108134729247902997586194751033312839743297490699087686579306442242728594568203396512640782698432655462372225946880492837918278622411996752955889186527936272103708860666029478221639140093324714857889735389945222003222494811559402698491500005479971960767182626858011655898112474587514401874621824326866153073166359913528384099317211996230029614988284837757086279186422420916929924947269054892897631753303373801985109678139498819813012595075884133228675876497213797522603887554395975218651296991397077558471388370641465890965163951208185169951035503772050338378284532192391753948417600193177510996611940371956892723443657881900904361032004008379378389589299265251678877686482249130812530736536149814668520630322069537544605226662816354988995866301194671247152135244541521694884152433190197070890832346295616404824088169522959578534051757447592584282436446242618904129920778361124259339911934058816635698770105073090004320349341860168998331969587942873327029822794151317394514696562634248162795123914268590720975665125468346286178192359773994998036645989178731095452866064635492018762627088101445952830309930222067452503602897536963941869279955212629453434790632966338270265306364151237429357387248060604725482865997350827605897869933162253695359256885639119390024015660793732637234264766952063605911399045342084987314165591827030533571272851217046164096910831006583538253005020748850152073477235900129736336368549738000335355094104927498908597673355621138790262623559643024728768786697671690455729786039998728742691782283916540239741034744704696475848580251719450590831394322702263864573845449956466541114097703369275289923832661304298969022599674833218931278135473241711123294332577560746232167420419063076159417032873611401305929038492370064208350727333013695832568544962329886471140781819041671192707249310597461458090996692119449662301940500987751967985633511503245158664698868195020458879881441151315839314313809729851010854220454877955398011503690971816640508357684091933755928680392465598497703639671507449118191533514107297062145514760575370593464098643301046521501638035908175686548210279660403704267685095617545126099168804707017624433426941855538700447294054605037069691595383577348925582492602789429734178045235312722805249301156089360886544452227255219294787160243921822548678971158601371874414324528316207773660803289722326826048585775315598437612610372368453951647361492305197200591615469437959492455326514660931334941427154224304995316041434665281722457922453914158346343139653817400212260774818544909480338149290978240613033278201694954834069078557415667066813552438891730739873084094203177161956911009473887528347946787388292259048133638309460395957183477612583164276201937397702888011283551806893664784098659122742238365683901107936783816250186744689018134080900327300216324106013996448232968440122638387994547549622448768066801031450175655356838297961658599641358375441800004404143237741210529299747767447922574306296724989429971261201292646057372086187201223762328152683558812031589693020615661224748069203392276211335982272466065916074132269030261414575993835729824635775891474206197196516298059448321438355022344835808768543645426710828589087099126009799463107880379983059316909569372476920309298222684470540573897633616764773115539091602912160397256601478806015559043400277586776175472769821934093105038141341371510248312736590832365830879949811233915805131943447865267636941347027325122757519962426468790963689593731846222927121807127343073271737139280796267042008571181496957370537117857692133456713523025773080129662178729243461075026562031431630483667224983423837233978354164514925582987416492357074642205406450535498843348183839407377206062461991830593970340858680286894359781895701009155405500601704817570172232689867622556868409285702957477468155049248521073475535638182819551837815463517788053088549495407686214710079118894387078131518098827891816239897324303727833958461605224217189273018571810339166380673245331804614962572881996619933538725859280620106045866364730057882741971858012843270903164573259244024219951188695064359337514915218892379184779793735832192363327011841874176715296038935470598771831331118499700456291533233389959195684345831669580558907648879468329238211134616937025408845980214204372585262653213477831004619810563313604588737676161313172704299723304316791121613563182774528642888445192448257843626025832001872897416791267245903196950974290645840991847938646650795203532684417344262069718502982873295622848866988486747121104215194207587379559623622678503413123811977790434134139345455055098968677452443181902290381110273646444621692872713681034349056571551611709004377207156273572776903326563933074775316220038558010406565307195685620080644598484642552573512162174936252126298933773640509494174333807917508584261073577469033757381295172247307540072856631186653292678916345922134425829240766765418104466916341359807138752848113588006211195316331604915869533984234484693966792381396313260087516718250472442468059773475092797636264206832589242827723683508065247265528660518375418497705711103991117304249462690336245728700447018396739043574029827307013540681014793040178098067624089959145562413374817649213186931085316816522301932999730100081776294280005117852042057787002225230571374535784875388527839342581052051689217011474509190748518884410431831940023019173917921085680778203982015312467198661436844869131044250500185935353754965572192381934863315725676141911123644893658269935114991509561237920861076747162449520164936416443436454178284015067468280981071714039067018437336921413280938910867041692105700144135365734564038222285936145285635099254026078470405243836937699033889857646627307856071279691845665903808212356502225628374920844425195506589494110495643426799174571693551681405838153448473095712576073476879801893194314707708978422437240665605123571482982785025729966386751453233533443902088766792826477050843177010294533699490785205295009075887785486972048315569876475300312473303639395410294697987081280494853642078055706697912702372773301849888169894297694728036978589684384934598111786550280848970748532219416911652842002545650778851534030970820668849045803693854877038645101672678937171861988764556020525063347856107745940214041136885470259508515862970524123014835950529328697650728742256877831176608744902595075555055145931726829973165874222216701213400894273829177303554230298939782074818602783167125493566113144272261031768626616072304388043340093358151017669356285659241062042828161013521502973966910341870117220280695117203940424970907574838380007360626345389038898589602911962707262312510584812887162755899259072430778622060033970598366318256841940845332352983550784220852764851568185910891241070627322436688661262421786990313319704710633257131075261813421805335447213962203779524802196988071991771850099181162356821843820815333414212907063015426127730575480043731191363341841773754698827453254513110177987082715114132042258301209428939826310450345383439979258300227693144893417180802712750822364556143335546766740484434080605689844750222151411183108428426669242069316365718104274006937811363476128723801781981840007294168548246221446604791259387626285155468926450340678129914861260294247892053380902490447838901934418693951817912769280382200820589036338512253324236087066536449761210452028570565085088720053048561168923012520181384718304812143353819151633060945209856839981318026137017952095753888913625288793615191167257339352152186308042524158704982353380004118228019131634811962556167145596606679316659062801440052071279485475690695626170756918027776975551137206983819447469051062208676961433281453887960476985777784329243794061818175724416288875670380469070391354720842563893915322275164184184899500895947757617780454545209368754631110136118074318779421030184940493366349689674362386682275409369557692744090760024799570764113509768082609022929720384657229944849161874481199389855953469715008998141066471001184454319654424019760054541249720787818044901203792402810367213748960445335926243282320330789684714297924870430975729662786130248617101516606656509782927707311148408276584346535012506361313823195286872886728898966158838149880977459818474162761390884830040693422626447291264637910267667511331484753169303460532065635583441390569982695020900840706738094838200345050813285031510945036320658478655158490397509594169814894821406831646342626552155995659882406979604633316673969480039131891465418154309678967265265558210997664718761160825431907459773634133678060918604572828351514350240543543172324687129936518629031933180895204863115802950232136877398791628902389377476790537921672168177211052760194261433463803952255067225753790210582373244484576385970185045663526065002874501897315157344301911105438103874865232174187550934320335074438265177502098794569984167666695530960589136588669063968820151598392510537624376831238543947621504486784797980996718175115330827372401969935923913416216800635925125748520954133330435398013546585552735146924500647438811217155992227568745909080194345912919333002189266695301070926561376731428949291761057889509359917107182879734672176469376624839480399895520074086965961884944229387489256995548594283000312054149211039446829839811034106855379359057452739011691684424808695311830314897513731445238428789898920998735530965311329885452246926324296735629305705481195811731967114275659398539460076680426692776129910890840271731290434932448879362661007559259160028106038771101144779765391804423890873358989441750560802708899036180549532731423309224947517441444116796664375583882675885349030428822646191921494974997481135737956823898882444892858472970109244800449785773594231535338427467446175229349961344362285127135721716975070125700709558693766869984192342718906809971355010724385554599886994690704696901159237492211503978420207444146785845286110250757420041957763319442741094897758896709526574167429802688493642620530300013769664205900138074841549338609228642351208984211772580821806236432247588411912268154552122911219351180865395282877859006184802186549781356672347176801941951270844344096959866008066351147518519732412640649261229229602646308601434216999356462608339344302574903495238686241825057065273243273097056468020600640001126728773362574844032323105767518029969164142553316600471539937192067269677367333701558614908448836740484756244542928325493004236831986612344992042977542951829316991341906418801197309250506060176619214511049890291532760043969296620742274498177790740486936152690676525555096785297665073755303743505640547988407030934018106585105934164278334367659297641975077195652161662510800709073681580890494808666294622652189598727262247053268149707680573756158499880710707383185429542590409413612811506792360599724280651852289488236978536771191645474723845897662758279278932490754674076157551938545417210378777221459784369070184897894355499584448373275156480356750350966385448008669754390000571708201716565343671090287067697590630845933479126090974352326692766875675186789956816999356264515082244823403471770466181510230355544877273626748309027339898880127349425719943577080227542890969583985277209975932915321122507815493980774420456064078289399464378835975584866233074857790078091605528891645686341136999842697302882386191289463323924774470235982185949666607901839572276791363299206846165777608244896442779006242627366867322993586188747259628893718388913435910091306856030971966100259719723112348751039625437544756815777392152943906729378156152915961482448250675491191825189653133097463395330777441280107992727552466160985644086325567864980429718698155790002692890697029554359357441281123310762464358365650468120424488951747929895944917300596568316642636436988688033059285977219080647138926133402301631950255820718391974366918477192952157675246432559789199969600268929819330484803895936387675756001080025070243294145262460010105565735182308309808861505307303202475474375350963779001997439724662625762591809483548378790284479639909614182652748177810914226827848477922372729430271283221550051629781476220502825134194890257241895974171928637341447860615459100644425398615850011667414907717988896655970344230106728240064257472150397366507536708033620102437182903468514877632463795888881368631221660972215426000892716170942485642152686166063593791929687635664420893748523924265214328777167037473359585790343427218543287557403182874644451822210839439337060970927984674765777530141934541681527543203141911787003364048402661478922875354710492565205536300176517894312519432416872559448557923867423179196581694499501927889045866937616960514990003059730291337528449186415271511726397658819577473267266932335596821443387740275342609392462662780395496745670251857609598165953956090052815493029549172340840399462121841555251386620856095342385221418600933213343038915414695857018233419026248884621354446242244997821200461254835694603150150449519028329301041706796860573605886746637407269985384909709056473620425297459797030065956733913896600226408509872761262230267084254212721146244286139429472679940762809200188214307781962587135024148293366610460828904588072840803098396549934382894436366928888099137759811283309451870350760173933161703834792048083252916613811224560950099469774195093228557258215945434788396538278446310514417162615401182513272178194212183228893916844969937244013834132913120687950256529704257899292884801565820794574805349138011506582323187453955498105511631109509376494807648312700077672529106345058269771082330152129073047826750923136268234655708583483240085721526826356684048451303173887094914079898913612309076136864926228777725323766569387613339359918064181707019381992604975685332529221583444450884319499109332465960460851981181256855445229207468927927837887676597550271517012369011192978147445140270764857429660707181576712442914191169449500996448340058186742475306063225649897769990289651282177445667552715321399468503856399098769555078426810831129966429702466608629994443916677753959162332743312225484559030634795676760955873315352442472622122266954146022461436706786367151015960618169368268028246667216348368842707652590707340125622025488178605816820670080626267160771613361451119181693048417739749378142070533658271677704982840276399370375224463013696923509824572625526757230970927235407057001610495548538414904296671353363947350941198714358731299642915489493845690846373875303510760836482281016093320193743044578726078346555578721552385900379064722529957263682629249148988967961043583096143217970763796191419627952880671942464082480858194220257568129220779472700557920172414993337206148923657985471261500772648013572098689417497020300346850557798423503448401179911901752417108444000129868475001061484384127145054869445963439116715252555050230096083191084293663866419483084465889197004081445771336960060621922932988806417981250262143579944577524926125294147075361681052012703018273651889711560053833862690532049390016467049304151033791749665455008674246767878941888041747434302060706725219836451917150248175928986760341671906014897071073104701063430779949952004632375685889668356561875203780989770343492340454850169319171283762152971945432993444680058404929002375612525933624819581121410917226641839630594520096440913450603736850998887264100749740773544181387022694999615334942452902583253259913071785537422106347868209490148805922345386820193609613194339427415959348429986469881319417807959097654432680889930099556213245156669635863121310043279394630783611899476371894780996666168165574010176238253041615008545638872285680368212601699902886310765713882671527319767444876115938028833188463300565606092435627099528275260308230076033270742040835916225261775478891902784873308820527574740084622572773055934118256486517642150219565898321159387171385049487562806155936191455324006996371031993346130662493355127648271320035889781072021727698570772062056650048601573852969964286339913334083761846467661148366098647125584975251879338529961246146299089974455505383691732407252069325535673898720247759401768316125884524818046231450323689092412586986425572295359228666250637339733527558795427325786378507579639564405716175040138127321943295891042709988673987387061018249315796296096075166754043024473893290934474115146695190774785787283666197893330462756246562107895159157397739577813389614346690792181215715806642304535442378493856776418375158845467559054512542898396914868192561922378872869378497662740998225382099318439795503754103416918037871031276198389830738660268242122528560674676615000539222822639366698448060442631383380100701199206418414344385835824743816168592958668185992332559806423142866747637157086300422199275832561325212564653968030547182235190340274018226529899370487263650849398168877481880032323302659601806435247119843883883428011576204721551315695451161962819299482662480325645514734389150070403478597297356706741971694175847084891243401806698224959814797622949405877582053267302893622716493003921940481370358569449093782278675325221612600132419455922205188931189333915676714802112334109438601363153002728525088232956273236331647551400546012068210705708833483590018949421601754047673712361430187852377398868789112200053822879512328279052070816285768515949740629104633100217864930172399271604888752147719324323054102027447004739998542661318369376326215465617342320996004432784538115668908084894555489269281404804068108618867628055691349715881620456838495748621005209976460492850890706089014853658302383250707302453350554857771084808102683815361676936124449015003529049773711679118828782973889311532743556163570184839338804271241155600727551857557311190954810314768758659012120250926104841958121923496536528296778103110059389038707525306816412442446345284467064049138606204032320872351847185837379520668670322756879402926170185326028873221263531964137307369134539101884408629414224544168844229440230865431470144554402904177540865225725093448879274612672958635033892260703583962658595507217551415907580736116951657837290252931619374172277175523387498783021533030087782549250284653939507432629013332955054115895240152207486248579614169704664515547026546436727246804898160468868703660820656247397015596195392876150869037855531782428277896537326471086746684229645364848321991349703148525346677326191623231260667252009161272970393604020297209574259487886282253495301942011068820445990900476329616838216068466025432385065148815941775809434053864392456039889542541205559242456183925266555923525686522974198894187716698026415093094414421945866704697569756839073932569012165528975353536686089420740179609090065635207481676134902026418863573051366372872694958222025151622049208667387773187629725618541548478541703279161448734003692111172244229432001157014215591251081622077151859063252486868529065058307512348968045419212598819852480187888754757715990797830927603645578639039140470668207315149752449947190263113153810806018379851101947588100199701228401778126731246283477728258660058135467155264458180164247087116390247577682707217400576679704088741760866494204269279971968261862516827853986691471906978669944963155953893513481566455005137113834309504710879567376829945169866779202121820657948357709606527759927232599015943790724988822888553217136069219050168290572273249902190028225371017288156399112777808177596894459411563370407526246141272972432535744667245874572381196601943296629992979791469636025892016506566327489266694926259825173323223512360702175987930829140107904785510981126873595408218236706170902612677458081587408117242394875473198878045395199720644016642100175318826800526142352046889964869840132754621209899151274940731154982131601336581777800912584226213089057364887540880206340522966896154184359348390331546749441375333164617647909946304854930802952010186132790033341475771009032178083072589672069889647024668453976368364489217739374589746084378786485903357647265727992358001069183542401822606866342458125260488656024966698987792475868868008875087033973159120644839637991342290272094484537133481512312779935612095184620709480031534604734456621350455755463196579527568440326131408813074823010482727137471717677782616147163602356623455123423326134890808853648541909137835171764372237587955396381965659012992569469624631408340193570815562632419441961607115911428728652787369121898972831541820703088537251515338062842856440059086735282492907281905548542442154230385855859322504148278034875457361523800854911960838919562559643471509902518101088127256852838662462389227343622171132493693549891810875454796625801414735137119288862691819073838249481569434498529968270759222117176384735144898281073190457700629581393537302114478703364144180060349087070034777547661631879067853860916666306137611154499507509409825847185998698193883618150825932814715206030416247264862527342119962989472062318652571246702997563427631265458179011276179093333748902890737266796454773032369536255940699802843585853101071850503047635520330881984439377218608090481667188744976024518801009388796460497766871642660531719939640927916752476843173733824142180749686478208477512610274554586891462733463452618739356083698549001724538234016644424423112419498568036695034520450517005727183078910770156793422826186260165597224086262817648926479072782370369878170411292053489695084082694294252592227103618634755883628904219738414341476501273746259554226267864788219942871147882705859173087552061779288861582843032581729379441358150921277729927981678597244914348158622090609305050977601136918732235461774420364707840799184442384641745216900050272239899736908139917241601593436461878802196699347763843661837283977884151083585196934724243786865433636642883955645326694739364145042910209898156537568360873261923965446230206520343038507542079943947856239372848095342162241820695972636259399007105746515699660715490986496551371480084698733196107339515073842201777926907295209938686593055579711290734106187266214273746437288207029240372532635064203202788689626078065858084506362648962959146430750682754635095596988731004345744887559385808149469165588479068984623256134437180171174875606030352622186111675519435946248772594714598977396664344465852343580952540248085988504571562434139903615272839180814928166513343115054185173777617317496276092012402732594580224828717798544944462954729911829659762460499509624074448670606111403980028618876571026048160502646815718565557772049651690491130874722093029947204467785281331485505769130722879351686536007805921910196077188087172459676813159817941488460079021290983507166730611835959872105094762055818791477446064998673311922574217253381948424360205603005800017173342687799083557030281924811088792316681400676254111573395397410152603457632980653033327452420088444085994802174674834723715146507072129484813545201705412201906155863705609805880763539416075013555831385146769505805784240407562412030270115426628866952263524574738985386729367174986794062288796836481068860296891276294645588089522190614730960378632337303100523928921723666782492093631733458491608013049955681516888295045468450697951849041194884628163406037521673576196959325503029098602888501780766260295373060359117396792374901229589588348482782703011030153085638260093645494156843624051387539319403164698186629249238114475317926018587219276410317197330371110853310482046244766965432609137522903421319744630821857428939617755762787424222261073136680667432173739012557208562771268063553917248703099492920585535862455380954538985397290034311093703674165983620828186326361413317765924223843446287716539726955113806923953722547077528297988643897318875814453682354465171223403815544148942718353736801896411888526736987115421566523831071506801355000159944320153404557476575295062337644770409636146542299542000407514130369503279072683626001408166662620549188154712240207795917480380758045024853421739853677598312034552393383859851867125707915654678758317844689685318098746257925522747484101432358098201360982449999797779491422053986406601488486602446492069161970670542120282691337896225467149619130405910357227685191993400317399187377860235618285895995112953574922840586655540625763206184976859806061222716525443734586292399425574777821675144239005437124295356168232143675621982388568593599669784187818542487087712378806026660089717720657573180831234056107390360006410974824929927553588071585536243091111305219696108689379483628791237540135117606216774663876753399302846498539819381091912229733859900797192156957214176624524792587604056084903582461844421611776149557547062044728676477219752684096878374007304270280359571211746584314805249043579630344372325435678976565994722718837043322455012728655501615673251577876793385204149729430910450824811286080139971712662229343002811923452187930256594868773942342265657917750353290239005756767364816201029396471816830592195129648042541508629977644880871619650230981130386753909073571211931607440792039131325343434178756045391412936687523965446492465577527131616222716201897741045428067501179481342263527101999753199759695221406609141109486626408912479472845529110682773284217290382135622980660194908846501751689459877975509984100780483045349476202195516386711059236489292229923214577603799808316203205264443545317082162530819795745484532727672969825527527858066233024196363102177997145384272534214984655251627177978465347277701474052773530454308084924247866079420447281949387719837078600802823518371317647046398751251359377732300901522033728239175562512758210125891830019329632729043548217036185826148244688076455490262880537308952615039175033404247450415686446899969203652537051836054100229127760417835954654149608566783298986835147771019748700130555070582690942410298153572457144248471071642646144637624808848996787672704898660656539778035566703061520444120379838526823210022364210000762915943476732882543963804204312677137330121922226707703427360149425038044126855257511534095709740840329433588688486590231473453704082096310538209816481212475727674550136646927894764162221127362098187803016663303830564969608817663717458235957472253455668560792042169855900361349446698212412076400243926800671664621404540480904029038650535397454804052853613176077662934311158811803647969180946496935018506813817763366838429787004419824956744134445089547153151680085013082289633326537225610952022131382410863955604457997480858550031165393477984883756296198288041326854403688981302729768099860921589339040015178582376251717732763727966642293014318657730243249268434147563999222776389429985228807749939526381581062560166219539418441602591697314035230160369199582903195801464220475708988084519970227596528339069912703302535091181526996405888254091383409132848429787856199799443899373613467244830012923092313520437036282265533832529878658985657571579050271478325069876552121083535719321267494776854187120322907636325476888593602471650959569997217553019441522185855190622395352746434495597285169061332741408330802084603598834303147741706728359610357537582220493225058069306294255395819066708289436950356133864690178234168356063504704705321413360825289579857110240740929956485424878558559902668882329518700805067155418076911361539775732112550108564484829318360951984353473091857468091374795026884098190313163773803644041976298678239681160027910044632055004015118994393423049297644190328571225205749892231451600319829450060176922047339538393442153224691885095198578189721318981203963006710452664514943976067680249121111310307641554445249652802144651561886118902929603488707703001242469566755195580961776289862665993084226097304218707973664162212589986038689347458048655621631244361836877198523540239454809426732755516514933382837152390070179065118569747875369660063841099757037156404518068516024021148188614344395639882237862889619143338592754135764765255004715072011423145006568986771698845506986764923303242012754771970144414586730656044919023767780828618354289819790919243374516107668753356617753887638204153157196460999425446858931836504535946066090401684895314400173039225257882216871350914131374983037361773411795923869566942721674614699854433745026871072311450775125991207848951994744555438867428947363215088915055692902930969099433536328778866913618505409843898554624306833937821427779634294270800697940496480410319905851688244114245609896879070587766393168136641370684555196526689346655890066112213969839291381294947173099369550282206977771951748469820291704387347042779750373436980091915753274549415142008596184344270415507982593960545175466024642021674826903135552630066080523166561404268055872788259272780869019053044834946146708170274466996762280813553494371676221903437963236838116098769671308809994982621472047551277549026409673434172991440109970247887538376565876949558415991554318070808883769493576064902969556537796770544541996037080906315439151602848307748722867378593343875726425053675612851888839778556865858319280973047133670644785504537715726455793170646466646990878835630452219667098780866174615118628294122766949343502231888586825952041686050429183439351807987892230305445943797168833699906541057843539626285966758482140895246904569017135649606482282842139934896415246950615988027794857935386583435136374800188481720754718350205250069907962432060975056525814166947563140837252198159640435511885808525362614956097307158675037375339231865866159746624546437797422884913481623782611540732274303227612622978685433243511345157988263032444158082863485830200542164053606240308153709983469611559301399672324362537515477945075681185973293067141540163453203924491064824019245258843846596366455521126233313853334962578031876485259411396964450135798776397172069596869000904843472281551630068289043168565938635132627909873975918338062483917201218129740915940194954656018369575237418980464128257729501328038198989621925936642961992713224609573361216113956637238521729863658619520749338427531803139728280090925829306352009428143292309003296388252822486312705630467674571843137087680299477330943344718548711699245949813509311198081935353087559518078068411951558189617765955119697455375879250719255907030150802719944214958796313588060071874185855624379862295824567927072087772838835993427381652754016714620465245632101476358632302341169098557470893238547244154754158368556414215314576148209872719270708824717675736516796741621610163920538455953329846613783740259342229256018948665671172864328470757562846726449024812077911793586630914115056391653876581187524016584843541435109271099656448507306461922826342238213430495373883662965728921673088639496213760012435414604709456625867148938213801321819555416867875553882939244454608810482963023046405045968956763578760897448200692884745903115025880204975624279671549720553167350056394888563275265347616527295221116880985446505249148124301857000600323045674192497060022046146471973628565792218817060446679767096059683482872949060526653443404702083176585794493960536830680402668493093995818537369922372227112418923314227798833159608628677261009768565181866039061123911922751358290014721433007572962705513513513344066331824128225977158629088619596477677538272495135789826376836802445869935631156205181005567263214010235600025098143437185922141653127005908293499847610999140601853442629470029788527427035695790450665850539880826809812984850699971756678009154257593821728514130426225149549309565234433737258569726661236561029069305824122934149145061365129552861797433514041525402978350627557359371977843328350953260225891918156119153912866675534129175425350200057862630363062902719743388535161227674957958737591771184416615479962948044374201752973861707915528289918766256333940379066034540475290204210546056958615453528681937141048569689464106563677248162917592140495344010943290063391717590611737376671076043076374739700289924910652884108811883206709093633702795594417674193233073341728776399325969794787112246610930386282140736207680727127984683992097811594881057542370609550004232287495976001147409700124429884454044124884143376507496545403027999123099755655179405315365990622081632799710161155735923875763799497926379784843891058057842380546275837988474160523238489865270171943853902970489177199749210744890175790408573549985695086529375928729827203335954220696974673335123581477255849631383556372865786285656774278023470975292140030201665303288604952569329678854917895895914677859959806345635746518880573915270998190973843069662712537219805389657100446896716100220103325464176469499915349447463622286338936880590087196435930407105514440906084555001701792118637987522352830344862064430039852602897584554810357555253531341815362060432647956269801042718061743846469293815199372286883945236605515990013884500821696829246188954136522612284777091103973158462519593799491552880647974459345274567502840888645139185287152596358788168874193068045328619854153240484367265895374846757808228357660107748604644296353424097461364900760603995349787339926475915684209340937681393773105606077221769003409146270768883953706562291178113431545533559460090483336677438862414159964735015606963937183540871608629164788418566228431649421447441711155310200692382711464847058131041407823733299205517480941159165988277598939193775771192526437951838491979257524547374119981990101574078869128169914240082536099483558606575071963222083437044928108361572855524949602564326788763607095777432673018182087249084305756013882276480189260291383102218100288746085314780756175845965435362000192053568704779847061922509717708465786858574134827386447928288753987773854040587024175148730641807679831720765834861064780203178555256102767253583924411199122830489624199172927232173506905671533905576754108537202534052660143329559350892056926466650058715187445097207918019642048646932508564675865262283169265857491849625182679130082904089022802515327951160358633236578888970169793525358664779570054441720576805155008407126299310139411956080167469342546459623789382403252822099816683994793641953113194995270228449062256960026546368700770625023817588725169586647737976173794612577006137998837506230745571772347784692498074270710711315189812603018286159863311314764621112742527330589250206916095173880267357388536355578585665213645824442570113741921357292949221108569859224281325407338820324326643956313249826993754210540523442945679572154491053954054197889727990451018157300419980837730396704086792454237256370598633025467680163751217097206926098675290883449950707797105689690656540319759672761497898243914593038376832710216573860809225664978323917691087976114959064580772522562326270681428433928835137997889668980995499394490090518670805003368525592024319520896206617461835529665040075974605726907510092587103202107326364329583984936781676767571320621850367754504437458060124999047180378828199002486515418716614873666143144962370551911270836936754359496668129478498521308188708157136475537333929999926299828449474749741902279843590495180255794703043958350825253373825915605437455076754956710912129157176149324225680761366457676941868789701647962057053203557272955904540004837884310685290956503454266914198718966952921272978527095087098113489942728639569059950247951812571893257891635744607506734338677588292265455771737575694936255553471511886576006373323170057030653521001265343351414717360011606178437971548021621989895049296760851510691419019274322558627828386411769058849313163129614470389789121690155456926135684932756918365519080161689093018128424697726067403405691935606701942490212154137016224705123677234964366675204420833774069118297529030017704659489760435976167708184055994389399858313786079017666472996887788714642470135182467230758603200099507188191962430878101167842192826337002400932658608376295072329655401153920366396889793263784942714188282005780472241657422953470057515572674641587303703997613675167654281956921056236445432787704608299378207012152466717601576311825210812753012389223340229847604800776513308285534178026160460157219308832426605272056079458243011605804563793782259101036556836253950231837764728530634708737622821667602192986644284689587770597743294119208779965849592078968987763016235848225161398311675797556031913091470370076087824611662972792450641302632728944304798966284872641251383678299405635982333051968480541461352214268524334881918063137152509960268897066038569802832992592953657110076350494291842348519513819407586459181081496174982693799102603747213542031912551506873006837652598323504192150836665631463229366887878069522015029263401991212345846938608375341295748896440728426112703687414666490912253826897826683389923081273657896694871137386658952952016130208848511629770550523531408292822059317997158266935657777002902358257382380351252318236486958353493733240473681563816540323139624819514088774936124129630356774945256038539654805442461791658208972452565626003980228768545661934906440260686937103931994035163432285486352097765806260157767898543478801626423088888162954835181769904414986579436599743257707408687760290504374641138103463096026068371331453422241370392591676388193538645019993031328285811594191193421090585623084938725629648717635119556923349979781455217936277925096745588745892817709340365366788117282190383655864857007340722848645994314257126090480937035622195680439080638748163744313608909920035340426082743609716718093248922701666121359924492441339571160957605815906524223358953393429398264244629808315524237766316184333199581200805541341932928863206061864182394671438427083004073114050811817270093153859189226197773490426196584094787864558773950327193157520501386006041159356430174022825101779631517892023093800040771197137723290138872045084434126026937260410877120292709378810591322649162197822086622752306205544697844689791883650065991452940325272773879066066813523252259419700223034567091784251209071283055257542995097694738001013187494451350411741043197383988557362910870834321090538442409379731088145190320156973245988291620146496303058531051703517101556350598318535300184412099298873954776605099881592747517058261513942509611784950461483524631976771728499044558308920016074423147028939054382934193905963564049451700240570407973466086324035729608101393626075205677150587414626790352459697270090641870372691992095564628231619048683381124374125533385434372592414177942026458267029954007744531417066613696677736216101108824553698446721729103743463630982489021362711353962592111566532210938371035290091954850906725893322613177670576982929106714190942355324677084059275819614251773551990981109815141688380298689178946202194719795089632706490327368470211700466572413384197154367789245399482240383085852748010610985958800055440413277576721207636758153217559187398783673597013207197990605411869117610787788552329330946517091362669665275515560637217803830418061073100152278815228321602133630818241130399329241211943259493399402755853336174010581143350928961814838279830106571521755647434633730970893083959034139646241397047594639515456469934145217002951975026550264489667839636679156621520214518997180050103871690220657251306880068882540995990431516277689773377861871565092051270589665304773994513480430280645291629351791597391157971396540553741198476074733553933076913720235253720648120639778565039928371016694596452751013206154163906528054213585671692599995624838073920436068751985160087230816111613433816553987659071810651696516710928551239734453187931204249894251301986185213134556269443786628527745330162280876843191923552642194265175568267052714785910654140214086622813655532312195238370738617029942089798775638388575525019963309504105204093122735659856091752612987442088322314918961497956391152275355312497309799027330491786551325743344445092618587979292669320406210849049128686582837790191560424643079346763511090902185724964135513419611933535520703700881183606511573275081068226091758196028175875881821202873864388138940021767638367426543081506272961204764730241806788950806045222029400570370625572990613423474096896075829767341663090284430990966440315360804430967066513649220972742954767356699334254697009999856228648964513514837562967032439768130819861088796814774817654465940565968112799467862500989566422252272910211083626917980101189117509219107028217345841390919922954001796698453920571915251694552305388244192195783380930716739666292412220103515512042279044957757675580834371970563561514791518500290001355310450744584586509155081368565752623539061308265573602249933008071133102730671214364952576506928167357942378173966779184698603359272887790880837959513333456429764022480535646178649853160159204405205635611428162248674722313748955644925449878546859393679342533257221915394888951667997863840626853344739356700412485956130892922856205413372867129493057354292828520620584398380712432017471166223809896035130100087025586954672577576070780739794268216172147294430048792378259945381191866830481580384597940807734443269741480319213030427595366877675981952958843049998689749836580890830260047219748443035020278583803205264040576180107536735946008734879362708470943184362772368026132561318875037876964511257404434841699570142843643671029035339267298393017877102571737801372893480313468091144438773780734465437573603047929003248431842940785421716414498328939125989008544013488950765858040389332514412686482795191581815886265773287492823590671286491275960051239564315572532602510522526461378310105375654807926690447026871362354040978375584066339306052413060478386318622758148299275489242467341845627159301216654545910976032414805364279326665144116678486448011144040540138208520093056720056558998855902611809702786675034434653668975481894708133374398065118217107873364677463414926112633469960575543500553038957195842927653803972060433721117743333460930815964603399599552177454118279247945946004897928389148709387973566152548985508650706810102252965121842934305611803252317656628593140727184299692767855594980022963390567697225368736178340255584783861014931202825244579056288072982285158454355980713574174893803090858412890048538018060303996381881568826996692162352150056338245608786014807176838458259191203150495986521385743255761012934494732617233914516248677605504409675496813654973209752953427691461998650701309978619167067789285274336044231331149729866276776681220173454761313909872402910161078476578659886452857888512868811636565515179693985671156819585202346589708766732166037571776633436767583050944222859346265812449269016581445634842882137239252536517416017786625912099062514940309651025461477668189054226239896342277137979766158194584498043038401216937142803277712724080446293670733681038157248639420345224012176726335627902028336729102651820755061262725645867170169565837834600175609750282494407957259088523068187936348076371387736103433740403284626900807714041352981805613421793738106737177421927809166400781732547721711463857640834740412280218503801599810847546272216850246222211526036423112985017037318519961427203778879620430755727339301891693163028048630476475968011213916290614252821622925208264052207453580847341665193392146993384838443207994987576926707916980658651996583278799557453831226063145922218884157955621837976261227177683334929230176924292122871426477483984151272421150851290415129139797951769032884634917246357849973318706112321719167828240911995891705302098928068629785424159887109120282566151513313060766391941999026554645176264238870946605974660996329477888655509808646231351043797640026857642904999654373278786587743517311016097083520717635629530473401067780575853471235862204499833156033283436027782988292487371074800816550960372582934493894396152022195020787949236602327041462830162282167268992140231390979315052713470373207009650379551172951162278714921814387672787707337278339900378181823170581309224968647887881090215884410354748447707782106657616713947301920734994961615828390633137163605992100400923885557383986376079869994413451669314980222614300209195089080432667742166250080748778208048130614501192683385643640992565846375956860751288241564297723235131020056927740464672297751220992047788345007240154035554181948694106833057581346449369413849674074773309800123889073163290409709138305066507665022543763295425496251848400962235448239791639842616787777721140022159331753521689601371548035278858118738681211647250864896623624167072831540592498539974376186538889446206414568825615517138292265469773717583499098603972643609699088459520276955506238757716811745741792958250008859293747399313057590162305044727903767316892932644719629244221151749946813955430585654752479057055858117663241864793105945846515971050321933276789578942264313208009280865343239329416046019563799824080044571938752535611119799073362923478214001709018106233343940219577169675303393850188302107731861479781566575366711680728903006996286300067356768871602132210213398114035067060433571740561564288020249300134959423949246730455955927132693312547458805259463781521997118647401032571816059087151065658752743718943606207816524697926486601624844152718088502888691479794615751022163918356496363162581946376882481073101734340468171298374532618797929219355304877101045730705625142462451937828759111968549355573126478058253427749556618803374496239613879626502125457608676307358622778736142953670124483333727062907973366829064708550328337486939326566190381668433080592347282071571362943194938336065928100382021796877202714850877078018542134163312017566576289191150588608886654442467476044692196585561788049092041134454394800385607990041081350599949824879535819521607352831820060763140948759478408171363298146279787513669565745433255327049018795424257387436400343798771830961584759971233998926550782926762841959493575583917445575708308526111220414405222583468746507957395961783188351898366715329887457943735424317535452027219326632045876668290851274018837336424473274028069854728101100103721843172903572491277098888074459945775341529831405467067028612144982387958138248494376960877495067121963028425197033121627485206709201249288660852984074088255925757224144087624756472156011533586225770017540176075285660912862378378999606626069358670423116426916357262190759535572691796760676123359696288714022036426676158988321034232667878926033514249951390994790645167217581143772449155373736850679605762634779529750683385474444655201651915295795997347838306464681418349803702076591589690759612843756791114746163010694767814732940119534983142958615680575307029013221477172715624626369518385453959458728239224751716450950428533272572939284008531330895715950063252245869176841596921475647458202281546099953946431191663640540834559087742667875920600945450285678071324506270730384050266897427199344041944337911671498938911691436894322317469787713625739103045883539792061695628584138293309276248094004334327744736262437549325877850394012046929190572045755585919215542926583090480036267419710596669568178629244061153084211099044720348993765302589174281439530841115924860043273503939488758784053642455363626946212595411475951179590905241631362470526210713770770447918842164491665589498712536982613535464202208916292570845809118973287782627569116007518712865301855201131375099023242560685115773179029613345608203523679262045210546099590421405758066429132832009570235363503110110493913879083757694505722819760428388500807513840665222006278826829735250386419452458336528695431890577160785861743888376132983066250620238807306680646441002610388013013550357315666567659893666710020235225868900218354110140877733295714283086638180950698909195591463900389663273672646206665052405747082742751795611654497987732373022700177569579673244241639854424105369898576207919670070353526695207419226286003056279221827876309527456253229771985121695501793199975641824177469717213731005756040280603779303531013300991914406658728506483556315144898922694236261613252167466692497241847091709250062985026159331196161558423454549490534482610337822110979665597265148511092090383566476642393299747933022236408207506897033291410256615096477315927662450287442136221661423096957730892132377252433114201033338279592573370113990204252393326903434676922314872712126643935038510328900857013738346843938149541949305039991895373468907765756292012407096123592351163630057822557756470040199542692452871512123628597546483736919097494557960694847219033782894231755849892101814438859775821113965086399997375011357319493177279506374091997016099939639497139348536395406987970413602137717382950316906102783145646049589498007672137505373634423052836276351841283499900176359674170809954989527195054082524989106370513055044265766319257413696902057381706329770811169534497575127832685699741174027456832618889346317088109487377898298968919669253608631162141522479893308531394982718580517625335036413737645636061354125899759608308467620789429345402903467265324522240216664197343403940014861506473611551546816029840353590540013215769887328662766277549620696717121235598583129186439891547237229424396493719916678971132742786925651441595091616897983306120190361368460843592550840464397666694250019868231422746949398614874821829425585916242945401498291024214399749660454081801892370065560267204244666070762576464394549128256905163871542770809026882706849160191331876137472505896131440389268886233325997608578118557720024151484887957194366358228568392225192653833129466137509598557488335665639479683240773660833800193952772823772201745388923647650076070787705703161486620825824491971405050346246878816789164647209293749249875048274260145806724851043682180515436300162491507242989705326846254230268821910817230251595992179367530718409926990870611052233828095507998414237134971902741134644449484630013321440116704049097027421528358731987519437266092776703630340900738872124117696441271735036228404135847076306064428086540727761712726166108088026845793147816245154479328647966915868427855056962105828264712259090914152336915104414669382016548631195504158514534627347079146033021593410477380421167698705849488358237386030386150408795769516775621232808596278184440014455811589313264282605745458038615060350972630596432322008257528024532680640890010065536746940484621072849104303307710934083329763313742692522017150349173095523120418635044193084457661269816623526889129314984521680029200495987911909945712010367159630156958621411160986668999080957433188462830625045830210380546987085586145750486220705175273544212523751034236926917374191421461851537289016895933518444900814129054435704257866035945327579953387898417732122805602682865831622282839890992067000839185824071372432411068714178391893477593627935316673711095485843194735911200577749771604027126787397621122732186808171397346919212153736244813293802734829265050747031936788959165713690943991288638637718653275304569688507549079706808036896998471656827760258986945837811259708740880860604848958348614706204660038428261603799707682664891120017080043394393771343069680531886819016484575529538545683405397160574938183390421332762859387680564487987763359094357761377149964928666432423047112326484768443634721837315550132208767187751405082152228370136094954070122838055665749053573324407363865761190033424289257654010518751731934459735457629969979514418381884637100413762504353910816971606922317700597247522150182010476748481514626469983230957236154922131848240011207576614683115079131667266380600589543296377078817418839330676852097025307613569420538954196262687439640137716944886410392625606438592155089958212312282477709030693492797431599339169503163627403034360522610605449113460138545310180062372445798499526120704510245831955300498725323033044163711723353721394901875609922494517649880492427816471068701947548285552316000632685394228944435651956795887918303487976295842868126553625410992972211409098875310580116517483239855480661209605038398113165773449944981389293282397849820778545543826426150076648561629831952047445228558876662448039208764194627399321173570725581997090445709476267218377159274240439184718602080462007694754554823437352445962430241806397276122801879690894276048520827287639266188464247443610697123374057605991433243135897733510026913489173947686273558823421421886182403270180006877166837348475807608478867898947318591066576831968749078296536302325183614778354311431988124945264715289619931276128037634287389667074697106574468986072282519356222514476199460801413062958399729838459936593593240810389501151291434676838097025604533747926488367485578581999838869395426147148220878251944621322149428028427062479973436897688946980441461649753626411752913057658979877142467692623816763341481702949488128921615074151816832607188191725874456248229282938518093895875394453722687050819791562681127495022679094457986771453688858690419299032123432013577172633214133737774539290447626467199970308845002495492025664040524415582850324999345327260661022352380835383361685467533295359409923524063522426418455280800805134049700102190312908401955882321563690164719425697648156819968149573849489063976503025613315575861286831651797159335066128307541716859769286118179241668649378004875717309519159239425529985891699830135509200416502879303873071394498351157080603988772062677897460204509910366961920218785320809012145373960234668409732721984438716287354929680156279996523027816867607912082411759708455957389639227831870640429046216864566048978359535315561152780741391621771833493008923616414186530061467454521377184442077605136248931419195342608045715305416705528342982997742255883805162404916971089960374636937699757747736704446316834769348039623929389060109044565460751464128198874295280213289458305274212331784024461134957209668265331687571963888019789838553159379335563877631336537602841575984526024976585010697121657921129857314374240441659181565576605394804513751196611419950660192186150133706093650004831101374951978980852701215495599197344657355076809386239038823890740766672572031158515901183717733028828544272753782404695500838243560725086558083218678229503212818235953677059812756857918949075337816972491305949191176519928786810133379672946620087244380450753134439732419737188290803401564751541418904247892972240724824701925068963161760669318800669626945328923453791288335594415125221357938237110516201360882140799611829123648370624153081608416657242946742659661297510108356101132687386591485120434522900074128832740901075059090011395873234958044640514654738586724835030029721398653642902401553312624173563585765088200384834923333446664857084560989195277461070873072722907896687189485759744265286523364265154440117290199058951193945600374915385673368749757486754114803062492226965237967562944386027534022025780137150595880901408165078532839073214214021029580694573643652462743397056959600121757855233877749302040605656384744104110155453400430439935023580339918982954436369425804960481733324796832819813282594972390453455610309973228837572287541205912666266097080187763609738413791197363006332643953648549366785149164646406457324649661960584823966542393562353604530103751142966762790949306334073396443938071531377646911656926010631794730869180321685462361497600126600103534204784374601726915773756987726643893685810337359647785593109619261328615224260204022825602277334899045685724184246906387787449075056530234007873093342555474683794858978402600793983911796732799873977379946942894660262336506121067274506558717200274205778405930070218449939869098869010831167511551825100798708197969912573600331407594546540627620435542716752459314819580502064788980839986723614663177911622224530885457194562122532166857258226810199705698969518231960299015464605495646502645248311748870182627218098213618735826900564009308950018160913096732770551520675576354770890052275075154158280525781037251560241755505016082330970634462347456922979579368196263915113149456144971847213006170844738731393493333802941444061924741585722012094434671764381495513683741823269036602487436520946337368595051368732909618567278043666604609383853686034694191388706799282133552926050873258719897171244935535654497678411552354513847021977857302002912582714194268312152063718837872072912496862167871536642093867776003413360256626260204429062622128628883092598612722552459845514791565971359116620459523044509099417199614245664861526117862858651982246269407649604045110353429265329467458888072801977061635876782638990352511421333254749276170135093495437080528439494456826718943027497756129792845992745990963431798330342658439150228023292540040433322582484318079071149716946413875049157938029543710414203805266594310533920273799451211234297782878889773876660624843728365543883029875807633485265209476739688793537564230002725872181818696084573249058243000914914293634983615102968536945430419477387834055678150186746793499219701493330214017682095496995285961192344902167203461970027773620089029673173897948153089656946618792172491226616143673184043506414264248344843350116011158211807076708675493898173290233775764496105153126029133612731841332131882236648611557782060600586848921832120865594191327584064759328333994003315064818962334251599756788925838392749502925689488859359449419348207448302994131118146456812710854546107375352433009673446816863514368755289635569057427768830939531428075163636806794247590913764196243526837118900068736119114357804770194372282990203551569590759517027620307991555298644748175098108669409623121885895598157858606171452630773671440818987067864206848780396783496721868268525866713765641134483857442748894260053312137835487188899420624110656213100824467507235170030809012778161703404456566153733731663880942362887642661049379946404794833653253762178193643779034564860591250248087331483029582989210641035002978258211761980760333541690486970371528208088958254010639608868031102802136853317709433626240322675565183680268443441090920431744809098525265701113168924792547713849040657326241532750607317000743650101081124081592423361329868693296818683336922114905782448978152641676402895765577994868364389696816807047937835814312152841730265594034884614988068736478483932240151611736400553343620758015562951584344013366353490523435259093724485620495241718961180802571587684887122068588520408401024188206190967319690074022857552203664763603077998889527262220906418502087383511462139421579384699518547781556225542170378380074135057859804734265087882702808807707079677102980642948504740636523877472098703932906978826548971984803217662226889680727432361940251729203182667901335358715300292647918314573308598350925847880035440568771244226280074828290168309773565953651083962870064881453623110354654826019192557819421395114924674281298024453326379386099601883235866286536682351534696784199979326896945687409245180960765534426963592749687515703187139202244133800181381938759873332456118840544965141803063984268993242112440841414550218572094262562585097459265161096037043311193593441331138240160385212417368913903729942481428082641396958129061252289295005591914439698803076988393680845704143483838735427825505566678011153919445554592662897785952036259733630700542852407259237991131418506457008752266828468284972026193978218693228475605193885579480787209510256416238567695392455967659672465808809281869848535523494070783914503357969296567592343658790115454339318321531612551669856746104179415873296824827037221248939620042657728061749078197153476339319067596298853277535679582197215728534945062562186254698444891815991710380085482607890699886624172080738420858069237861114547682244437301483035233052534014109914916671014736824445013314572343998277502997193286036240247054786425346678076378759680881777403968793820197695717444375593742299056908363234233806253122935514935046353253432399444099948723374933410405533637235223060796022111272198250698560150656579012787303678155811502751042210763710539925579662945120835189431575141718778311846449972972041633588087740787667662347062522526082686195047086235945559664530384868126450232357146087360968812609791703291705586519459222004777449644080639465426241761740864304320054764771155403245944341895252359944770016084316812956703388737803109665473466789305228561380611861037527372777559587026408622494597086900425679222479969139132901139388749289992147761494831257859664783226063960553955304135651431014971199444605148597940640181095549044744525916970645671541042306086644865705270320014602754620496537745622038335023372525710873984813834443894387815203250485397518728401385001809189265419832070800070695355210910290606672314697652310915519759026055650121249302714591793791058045382025641507382529687932218103750829643634242342815888776577718810105315831897889776494847317286066444650557947743448587362687450749905090161176658691176608335319574298970156306280734920974417071083266053161597030187368925684580328187371149297050768745583410667688605737636563898804474704874173585767713244236739396061821490717625721012613792247343241686606283187692302453124495032416580429798878023136469653930641522125914498923587091815779402819260837832357516708942204318155137868168422264556298229979054917457114347708648471200709450760152248235673266877395473521953023358672931696063020125698636230667106739521322619770547914688139179632046520877361026627766819781358477277155476566444328582621839041528157010115058041482407909281133497717498097636647895784588003299094711636288672644445914336081043016546827316368008550846926621154538802722326502056465672822821430578108119823349623956599346781288623506472854447101496407919366366158990056966800833797658911399790793437002371137553050796266716580633240783423945870879024699515564592143270903782796717510511655737707610082767106877910030975281603195741360442480762320070375420663871643189287304459955581703041586165708619630737372076934514913398774780249289531534284623503548390780106168386190442161153513058833862107234902591588842098431728406937198273562523596792504851321360008337529883994496743708637659904001669088358966450984006541472775355621017849739744919054832887815390965757262054604384822213961881395344329256631997268524795449153620463328048447396194411571538169257710626913743246931083152944759043450395628330204353155651083727138261708154195925408235722430896634919572973720046007926052584336909865004792902000965971707979112790873881596844458762414633869327743440771678755448279452895501573669755553120348619671350919151120715066692203286549504633393284122827334319546095207733983658898884769130657676128783124152101431199755321446751036600566406959207946173676383045702652846219194211793309229881881386030590130880650540025386196658402127352716304661878380220568051606037546721046505378372485482480327179291218477494375556041013283514852858176739554075106962470602619811922294412131769226802533498821251021925703911019697921992482256074944533795335650911628426829246369358576325725020024672100471310277562995724734970250353123363645262435060439826471439034757091151586413809871588528228504192209051697086347006661849216183153033341402998791762620550212737941766109168097449323638864512249750396174816804838736830462454290294666280880225421649243039402892860704962950136082978250110217079314314064115733635667335169779279174461217490248382279395277861739812426969218316834723153660211981999398027841542131101439278147648877199783977470795820377484930986844794489510402482781763640439233819130430651161894960193181420961583570476663187945245944787562193213098654801131412507215284682871704700838160594346329577098562047735116853383450946800274343501110581265211040244654353345463593293966475135673173118147926641997690116368498217050021816496897974738846849799122584420888506536679448562931454970350156729251896794731383668685728296252744146141797689739679800903059739580485156956596380616403150183109447565129884462265436964038260368359694872567941289412938052671400564746085044083733995432387033104050751651039238586195950974557182784128977720510500534106321931210977073239153020798032131482987129113309177353886367293653344187629999862355477947239463785617765085776731904057381899356441445466787432725228675973309696158889515988113540221486412804189947350701888336417139071597664554810247640116339811992346526952828338667254891423858389906860022677242452319565742195395377484344551377362968810755532019229234697472443030323301721348658698460656702342720907158459792647951408864267629684793070180631212001874334309642104983288244724128518554241378022722362657076455344117755841025969465563285111492058406206781066284124774004615765930697865678957340813499286567380298992267574860577760827535054346828831577041014870675883841127326322338259016828639535982440737323224736705436182854351453434166763393744858423270474925317945848934385347225374573679697661355696005784172417549079519270579310571658581687623036826119252943313906821391731858467968671944521495467246538149445584521323128545568578295264933410403526709673352972455498897582329602574413358736973879536447001647521431960736279752167617621745015355801884043707531122526045144976228995693986534562492661677892621126102343512991722591738458261932623588168236429384771888978602934291380760411022037748023657335390513672024501913614584057793358864313219274999185122873498516272186817819703352438405324073600534521186360670182107822807336780086151769112937591976550215243405897750651966509897646722804748165280406186278651166982363614186016319069059638323267741541411355745305125858337877123253575351005437510250089312872030150299584156672450520285725016910228324964563519295971195090954167958087009862223021203930544958745309601797041872227379036374215752544211231237018806323327341297177339301848266781049020196352203086767473139555880798648891526608204127311957000307425393588059554321939785546378900123763901837182033681320461951881540354157800345668673999921105302814426377414539735945008815467329135240895120820474715295810086329897865640445016515371062573880194650164777731461730278216415665720907869762325327081926199240341524782426348803864073632520485888877760948261458581142101270003123461603506943039723832089407818758538421009801028332118336658139471793987568607510269712796688529303714202796425382212986036029892881019882299738428014507878196604143287248785935039586000540713459716365600695875091908289612867824965544605074983957100055615324965399934797433040852778806739842515518556912764563102012612562022926834157205940233331075712485174330302726565579955158252772721715691724074854896531519978745596107722199828714082006461379358598655472600008354184134963387571305888215244106382506243469798080228762723279310840198946184788999089872290014187004962966717685672784322789856317705877052156821915262043030729028922283190967625699472052502597413226895550130198176973692054488536262680855104488313621863204468761228448223858965657253953616174412798137040300336435428466099810392846083934132807258965132492907031098664501578338347332624824894540235760240114981759310963182954332557401629363250790230326560822722302042363107730486198416129466456639672155393413824786963493264285710125471966615447746744351234204592194379534500952939687779530506616057233181955184686338600727467584132990690890576094186854507377427783021769519649789820869761334104718688748534354011239904675434826975889884680822827961648026491463394473897376905923211155590982828976981852476261923404648204428642165996205118651816673511671557534009571303457963529346880254472153992757766700660282491490299276891761371825379251090109419716279762497144504457037482916930878815238370350017668469992915574103746660582834895377516948350686810720193897940237080427377339363308809116891104327179503170477268823542214507310092281232549132004723300967223399279763254085712131933006641734232766798605900171964586669002240709793301437777054354883972451159437100758560041254966141658080599590183393665842365010873656339476141315138707167049614787153163064405959009813923340658332172065525888359877541998641603153395445852791825006483914631618509125666998200252988766315962269489948343528454560317397899033388535886766841034885289552136275865067892031208055911723503004358718089521740370856420942477734897196317255640108242816738466192818643619125684768391052055028881856074634397603670243369967623096218053161929320018433901793033522832360636061125760124351548553048455671018920776209358607989365195353390299149271063327200876421860980089044131329461901439186997395954123266951671450821683189122056914331512051187142460731691668779303522204958674443034875569314017220387378136080747219027965420775129705336718511081688281822093732000472053172629119695401482302974187043471676433571644069012077228501067836064438243791175160670811862761021014590861945444443774871160981622476294532218583241542797861791435961355543270900669434596883110038835309731666823817748717798818164759516389883198927913394105156389521930647382492221148760994999041908029054832516695229096033317886391219082725540238091634585650863015631086530927628055627260299639079052595568413226679708865987193708314890544390065430237128748700330626702118657896814697112927670174370230534810464984843818082156438144701110770694585086525210223033846408950392569826502851308620767834057111884492860071052973738555827100354214907541711260936675193658087677863053453271774461693331758094664689495132629440605943680982596274669730054779616332288707101982225431851345047286434432855819623071832078927002425260821326872934966635740984377763971377387876765182645050662901941138390064428022105235446933845120161672822651052482078400809166972687806311707951019627952169577917809254395829547855831536618957802524136945055121055661014812808621173313924616443846059074179680851162906006434122977132504155704302299732189676550735942818926871927933432227838085721245401655816113736391464899553446774141060747472407589322216412659928065015852728645976384641107615445353758839239940278995391588511079688129120606808135348385575390760454862439865342053462755060085318940943381940276754827133117960634633895264879484451841774389998671248391858031917685655902531780447583815739352586758485114376277709788348176056717833153446043489334794933839560149427347456956403810898253797361029397197541108012725901092043862926833258879160464649011693290321346896663984568104411800639013739490183185428857574702075562568902614050666855604973731618666199434100037923029649586961226110638278733091804754160988526991143414439307268366161828299720511067945426925821042830648531384618491914077953592677068463427420057791704603448621508248019544910998073772836528657627759843761674312589501027134624852847394606479717023795535810382569265093719417919191169579303073827524438418717608531607317797193518195139221342148092845945934183595504402211986867490870629789976371125167546002013652288468777342947737355117519569377576789657880302906618883300221592424762058389743675010725758333049224897670918400313164065340829581383881562442313097277351995971480595420539077756135902200404458056648242387587121062086008661477797987705371933481625251813604077455613898583610554343433743800425552992608238748289187146902905327222292600689322524791374752250548311399997320542375098771751775543839544717944247373897969739151716289794105900318649101419680662156483042076606159945366263823938092183191014611865138259556661018596919267824356801469638959673530536255066464601747950658575452398977789839858118056410858902501180201511701780283322477084200311544682310067268599200494629141180003908917856513974358268469893933466638291498365432892618084958011654791294624095425074222318782633471830952408534375918069626714690619282693887656384047810520103567014033518256425230286853689407367780454832611947317105041414911236414096393903933079940917877832660106281693181469620761506632550209750875063678401165646578367077612186080595086969868766349509524953946706455035863021890901696848703669946449288500880052596554443459794743818926425666329022672217257466723147050857569407814980418072853966927030085959056839946149921650485315550019012156019909518318621165443351730260326896476647951234873032778439133626077480857345820358227451201889521208905482086515657060761525727853179843220298983437242739904706096559504793439011347628821141682280612225670316420545921133617952885693824330121258215290663804209289261226322938633197396742908724406295850005256948275312696092207990442660891495936207673342759178845534502358764224482627253709594366114231192091038489631264372338759780633586248811830920723251987691223928704516684500610865606203682798596698127437246607917289521779719407064358211397702375279576072795434248112615408056033165481491348661003263161847180357359576338957049928380746140703911480981897664060551998289219708869046210928207626556875697692585351923692546782514984538862204813406762758011547161938678535278047147772031731372639740539700348420958146075432059360710763987513156017713142557482328563638274260191618781721441150736600887884957281757740800066296636120676204730632940534029083966872272691067475590384384988091991930789099465252625671466648087696117656856392770930829312597177229562297189267131048468395278010481486480421545286175661162951890385958178524366505975887111096017499700894679018089963150326564827539673012719992014776232539065412056286210886483377223694815081915988989866484289788828369378007941041124863036312715063595702562714332329191488133668007283940291847619428129446770789712349425968901073400599028576767462495352912109549554683323410109792564766232121956782060985663241844699792098203269762621744815663332740077398099881538725300709061196563372361418140124750625824713298346443671674796229362842896832582507795745244190535579721980480845918199321317780671851323701880978314421744060595873789925303024314135456615731142909109584774075459617198222128131379580441997310489603071589452736581265953018224313939966266519404966310519373177480001532657988159166379124836190837764789237535305484110358563835768925148088767690746705387507804402807168730420581935058155949121188848868593372038879305046697672987152083489628081216112275534799515183370032478420367989250957878984915708326356352727722473486008270089391208301625779308045117720225497964898456299064666362165861216038541075709940382336275236178313181998364156644039774878930771635206503203647818348300831633564448517424077975979422761238596494379271470351236239558321063679143996074263274563927149440366362696110430979872486358090204118088564402008231885306928305967720442877010513609718582120330580847372153377775588805975746869534254943234391822367702998046558392000166523511580638572417363900031141599680054448809852666165393907540980088195813892432339580145991470189572202908444596282978420808484913567021606481694752867380565259325589300370074230324502538791724813786218696577158731697900681412256570926170651925969393609746318248319888639070755295597225708470385599672021932176106456865115765811504770705900131490898152531721426021287277380702844761306040883062034037134544697317046157846731665871567173476569313484273372562393453243025882139193065403867711422470005000289367982372158288868154618617324881197253010509964170724898292966698358192704498908662872264267915757074965255353679101772492264921454687799267202772029603668179040304061801914738982809258922215007701295396385519075072412132378095251555421832126277941503143224968928598916216726943257012804018917007429912127697749021093771127103639949392187940736152534872747984875629626192424691067669865670507476419948432377290369514060511963288960714538302968968195852368447492280784399947849020444477588345151073499799723466563817551453209097376064855239658284308369964733543285412570154274576096140347432469900987493405240858725296298712204782023542764479114450285031373692512231482355061596961042273787927699998881202438367615903118550272569214864034147741605369680769193852818690637616797088943262364784869170793413999011644448325560471295377459208960331646335451395771176287816682450331222118056028970596658760331033059730146358621306307681775751995341515578078909971276737837183516898052342664749946823367226353189926317206670249073986021113611334721007362799407430199045280651563143426264677775752257678092398022148282229082810612640968178095039173094183921560538954378422058002158305371388464279339516084805620952145118821600338104757067298448202550669777318397877515502187468600094872568657286665977143274411225321450009421166130365424145179238172025852990642371346315178040292648984494077238440982884747480065853595706086693183000328426278286320443455836783693123284092133965023150453605978463626434937790255190085033548482782358358105069449191855232893416407210896793939488720402792597297071809361091298540280572078951776606826209309717815678366972958974139225280959677383806678203899690186097153986224203287327954878934994622167890313112431483603721493860242797101150197411033846238068230336104210843128689627301576464342558038894935946187724824096048468207703103106596039565460128469705877900015447633752532192213911163229584421651859238111526813664718771325439214843521890122096949618723298176974845793209508749653351854213996233395810947291393193932405314409910524207480409304041200152877810102150333977353558360971807672835859057701411569833542450590002550328491352275342869699751440510000219336081606725678778411920730397147040444385951021930061081974615225081714641341286396904566512972294853539586328886741564675407755609740701524448060200360996297316801239042581504677521154614103663092905374966359320389902779041262527099368314967019704724633792494050127025859369185573681292900156157681223584478611351232112663992315420958027032104663977818281971430874820601756939023333168219417426737693774858581368594689574426520228455536256546753716863497505533160156648420819754214858330967608693561473228044160920080080595436205710224162115285261491353354400349427260043868500102345355186785981465500295726746020305799202873869282865927653913590997116627584345779606866912496597425762674473012969414026282391070341291382634697186388634695624059961246033355170588652658934465488244151683590080655296124752826956576742007853848738216845154623381344001690900912025649013818513072972981520785325128178619571941578326764115167374665812423477812302295984787957143553462465002505871404070779947955381441070176676352839249898553904793433304265201753787303353350470778554326938640229812258871186458296205860990004196844477537346327047705686619339903672771852664518922605458899347110462475093073343465195243172699717206241820301798043597010806459403808626684419095978286883046457637028685906358443039146588251363770205800510323389894184256426714509639325436645159898774802799207113317455763101386681965726631698571567279678332744938125317338398387345954120403168676324471065398808110803618996443330495815143149235534546709165465121809336906315226528730757963266485805750848862201647641289325630331607601053730444299649308674573655897405317337416505032362602008113891266810883277062832656568679448525493586155778167035658208325800904992949430572036901563099405791730735189236850132608181448707048871600065478981686077387766289038367996711351024218729582063078048352987815247927635379588324648978142191439560835900977046138565607560579612419249737711045556233411024823835893468636179719133629608509523569166399486170155264038656967684079927414066682371380568581821255136698406632516199405485724498408120747740951360140505165024288307000074965202490115041626940702824677604724561268446010313187202836596715482318227852900905670341587421599718579798095584362189268231605596379079573680263960631235646013737396490255488983360999067503277375578828596504865153852289390737603746319288550702743856161990122493394839631292641869062117404207203706662270147704811135613633567537566538283624595989045174149310057715392949863921651635613067301939719945921211560954207019909787709210175385590076003443367818853550294508670810950791640237905073763331068471968039451408932346884830108096145990359246481577325188538693303262911733659416768628285888299897428279972770077188177445516917033253889171542867526903177298885823001563386377448087454802640352415121179833422822355243582548726755862884659855162622624641577776174252906771874314070716891962472195511455493744951620252971080543438240968262434578936348950085240715508399355740690280549328471876313474037468572372812317784214153352569019613893085868985976691278695142008225825653948519234568013986829598921428793599248486013888584774902119061028326339484135485094614045891080399108420129702059557092325286641477602616927229461922183346900719138839395357382342983014360180620911982683586448607605888848961787302186113779366843433599787324679837625241794711160133973476357734451342436717320426019004253862197261871777464936072617046868928191552371669615151355619514335938823343803206078624465899747856087503866742485565323734151502072208163067270554346955352936734609585822256291247034133951377034217322673257262995678009528488431926202400015914773712528520847051995476895893276533426155300065604371350236388249736185564694530844037198246965347986007026531579779792932930850187057434241024868142702881485574677060312732625400301024937511086850417317864569308760138808589308641727917273184046687501370726470325004562574916803329901829596715106130334433429709208927222704197117717027410782955905489728845076695695295560550349751544339596822398064720101643344584717438469348039387547530869231324760095283395736244237863067688300185316575824895709128285100285365470118098559355559517668813165397088978969729577997508846475096963104062194195387482217094403010931108293435383793504928413798500311939148132748136747329013379441810934239606636599660433684155016540144519317777913854760176953039561575758777024953550848482458157458554776947460510730693712930422585438187060079794302892250146002198120835440055374165266369141904879760484196292132664066005294336769581858288670984216914242122915609582379669322812546118344609037907378667067914985539849175722212700113967693959681294598127870823820762639799222209301150961201836938485890000224319515095456607825733426355016468739382523519503541569689388142764277964823074838347195932067635798732251663425711486982045027086318974284604603541004681513237851589065941712371642486496115870452727068133442001161782468322104950591204216623578170384585674268305891440171580124854685393629393021345540860729621928693319404942948125572218476638858186306214625414465704746735757562923187386843602907881896281963437408432796132595970111366165954209060806260965497262408508118832057366580079628652324033966242693188286583453203815103595976754779844528956781039377585344515989001689595786316355394174780811830284754533546227980136256859810702996947421649008446375722904533600087469295501603603768734187037028780757592813189920913669417771811985570406246430319165926728036747143518743642096723656304232071465394989405740092958187499126437887176627574954651379973022493837811805372913986177998171285502519230286741416046586171921645979674400653284203721102797280147128886282318427682339782517950088003973705634168338525394986193655608723409701752396406996995489347538993806325854754105608533061842507521223821672210837248902557868660423863149793542815994600046567434773981353722563802358820780613314294271290750507217292478600562168022835184566986054406430220376674740684911833584204899544363918123235817797892477334678907919450025252066991717718875004236397483559945452003381837163242113966288187083512690112951018712439327834548753556189581849584372253236885434815085474757231673770758562516733822592524569861381241343286611430642688906208173894277788817846213213827347131639962868640711825320707193813905082994436139445071379390881579981559409687373242696162041723796976936132187620315466670388619376131390044505119970537840684585717259360822770430368099887389847299956508432705901569158462019810309058892408550960557698630216590355079849770741610014953183774463236461033447779079394265082495213405815871874268329081778766953765441754755906615681994496492461777635340829426106768983529004032696668664121285897620540036715692748361446850997228829705196700123596297284482778068749257106103201874870865967508162401596286094483881033855648079588998879662857168450581197995687488995701821328211384391212878399749615504628082850955524779443808808502756673842564249812047209357465401244061398673749614401387740679494567616765040139422171176601005105096967115021065984117797724652949189265871922408457450757129279709395464542445634986435860281725507922770306422058008282217895379167196574737408594697184096157750138709310258239579437825164803149751581840042173511996761292312935806606733419806935280267970287403992079565933293457230975341277385880622683048408419191005851423993107597516333135615477736933316337622424532590540423672302709900860002288464722770918371590206217850835070986704504353305920257745636891390375261327021309587203869340603907431292588073633675476038866184425297963536560415789631540596403906782737404695443968129111400317641641966069400533368284994215876370916144774232303945136262346076402608648011229672964392551716404953480247172345349813653246756524499262324173265561398127262644397984161304576805117865209003763331921170343725686412638881963270578886189377087187698392401291201297115705602305998221361778376562835435173132105954976368137449337281272238523290415072163085051563480557884101062334693722921211649403448515040319163348932414973044398502815451147805292056553897218100802547964841954359105045236807003375522599343189870761340411671607807400773002449935175454228377648719721811535052192788898484749870575593407734218429161766663795569085939363109438544881192612753025524217944781583966173908627709727075113534177596949387316163943724828174466255679601114540247123426928512181384739096362542772926435478466040666675905315067137728306631032534122244455365886637638314264866477303614899969123785129908606829237014973523333938837861716212408720277503902137606356925783030613329253373333461990265669047320426963619731113427873191100862040140604050364736125140955367678038351176768216412807496899155121818458330993016846607336774404279160557709909249948661666598266143953677054788772143786359212412432388265778954517455998887302779310820986345063571940991613696630801588040718195838076087503878212836840336490982302500598777891627544703606712080204921567912519483800292387913113542602825372436476134104321113176997531496248549894689826576193467545434099493627884531268213812210066547848749238763589195088388324384637540530134749579136814918655450249677423264955880570313561203368549163692141074954713177985347138042293980089965958338465313642108795019859389457683129268778085032760967583037513960403501280077037380043185807893449926340772298798170324776833119265813023684667326573824577148835826854700181464114051682504217001804029772970512770049219687269798190620067669097035898106712784217820024056826162456692353346942182420031346078230197706124513448582055689522819552451865730472978278781012995664417759039547303061372197643461753757730606828751581644442876437613258228613946062241705837458945704979722931263732393721094218898124082490466676450076104245397492911175957500749045030736950852455500107055230581376676085691333283879593394710587390699249147019813722850937540181266371176911935376919999951423842682398964927860893907270029489489531016730694348153061258397507904245339242808881176791543402762031599202982758339933298260510789300538669214741846588150548736309379957892377964205512077484148052681891768595247083046878163160675700324874191573995474092183144691578514106147573707475277342056542577733489909207958483745864046330667492481855345867895339889171268593243863221883790832013372088353121715298821991436726123257625860559260229531413577245653163622243599768331837320743065353933717274399206667607068140542176954845404114089656155449846577683846943928245406592740238349349657432751623713416461151323548492940405014927267630226392332868928861450434558306321183214999782655275736792747552177093252205118720349427777327574988651397146206949392526679610825760056414074476741172103894491435423112021767731347569418361060391537894052460880617645039563132974050811105823626885725218602183045551504568208496176686094566239812805727171436038442459160213035885123856857661816492426264655423663396082704001059969103679505926542586590221863269180442114550676364800644395843147275662448618110132560291495429567693885012104713251569152326390795285657518246214689395311960148127065624608672951360918410070472083097537931519632903641557790234057450605074084799259554278588680405916541325853404429414217741272163452872685549855490866503210556071515700966669765665637493589992705429583439318224247547817504921513311113319799342613024444314437369516142597218611615057659076015592743105400719674057204208347551645755888017921947293878976339850177969005868032846487154472744059131446681713131425060786821659342942147797530210383627489579025651145528504294855885709994457656089393997251641076734605227653904531309003081204929748084649969401474969698749559916846271072419164231476593593902906241593617703957708563915538976545058898694190402106775319341438223015430972169419121387037160379678596738661822564220129975330841542117032248786806715785346235835763524365175184075736130460261665242527151606484793961094453066209998430871705988000865457171098341836068727761987972186941460338501744545507670537729504190101967997401348654143172056652491474036666075490354809470440605105156283869474831359293528070062855201988981019580593644181424664988300073687793396847216000794906624885968450623691307154054717696771349812467403258620879258838978449267447485324793695260392454765916578901849569058485012919391089867642617432207566109111341767787875923638173598796500380634471939709725172212465039460837309786136526164606131438026362588279528661489320089015247392243821307166283385287321054441125391094518042026548714473228095046567444243471159533948762475596498781770505787596490498112826158093512646707360969148797343349923450028758996579028517021100795323008445981252608604505556780990728991548807392460960235489453844795458566420397009172073438141394520001604931240779389678557141674258385880226841444515557516736706110618279711704549063423062552427587300071775780446110243722567912070527757239703355445469136035870788839572276879210058027474844599255758275334497868325791845892364154205142535733247401437139392868854708824473589118699720461698162505449772015797705016329045631059352327135614673846840714799363972555453354365925520566226152700530582642744445957754207744269696596783710980248288298567956918468728814058576690470228106341952323404812310923115294624787997890101758368410950663691323036959303385149928149659420054034762116884141120942152716318099958644906540992610373222218788055265007216884925716486853834030548397580818550770349097429568961612490999060903621653189282257349424534761385618405410150970612022837230928683246576530807697870928683836146425026141174691445648662602702288910092069217017079220017644002626895314813295720042965421874253123069318574329741410372460876326512397302194574288489091122620310993356830566834820896184062975269728102349589752700980814921534970794197817733728056668539256162026855509965281713081218857988733053841072802868958876101482392760958845067679593320096314937021169403661359418202740028068785657505439022384069701376997333156815250080295980343215761065158824428976639320186399500483454720603710623252070875732494508195650267741710151938506061416168069142782110355848247105707969499215631239805990798430113640783378929498997123810668115885481882220178499923475509720687526115474706004076381250338569229791691938948687670087577400452693627495470211498021348447177700150447280285877293350794728900488038329176279577434056123553946891677134859641226955940544353316136246530410312624058139177079765512718642607103837231429689980421785061648307987520093551474912684993769489611668055603773481654116467547542633591732308779618770037469825327704675857747039953672476415151861108078723746546071231949968834454597232379650971547549370704345300462175380917635018023403994548156615888503250840218400564123992730406438471533315617622540517090345858584363351391734039768838355952548449137622535686409177664776130556986944605035937153055730317631611732732848322364636838406796883505583133637153353282001989470935518821754947519869479323625858982444628898962445728014177090747680682596417698001762223019292072941864636698921094109584317485160890361397427021072278759810769374561312666938542833191785084101837063782227810643105506768598966703626020882056866480499270689922665308295028300425112181972110973467206871069584262629979585693099388912839330227730970358195208420465550969009347069947751095031062216382329555915733228236668499945327119893391878248491554952876668675049944511923001655105826596146000907614739758010849327244874799610912237599397189385088504472623642884970655681298727874981413741667322095179237867946188467797094136239257507260404548779315770149600468882459319117288383959565687735200350696695289915183845366871938217736850026547656646062126598106975599939327851529500909782723359476711154466288629758233191090366889285143601668633520220948750721942747870322471767621762361344413786999648409345889126080245867097224240041578316711580189221226239815707562699843755684149680440994520094249684383319994364832811821141108445164280811412710780070042036549684410395615344737418008589547072971465884922809220645308620786360719661100762108073537975321127816524558842232896309308093870225976372423258331868860130302234130471945986170445792896047539607109588393667329087017997610630172035655408819077431555919885473604813003882645344250843618486634076760406287244575101256787460800246992382851597135374227452865183216755128212003635386541382457958815171252511379022861523995014002664798610268891947853202215501732975122708973530480938869234089496439933371390841692340853110156847206276485173157608605991914285883745887296456898689917196910281381681592041031720580089908273201108099744898338499776784952612326107604449266968390336733540073912012830663372526273104365751228918611474070349820323748058785275716178139325954174212202044568350039913383246811228689012735194543062357314882325768920381170573844885311230603995326845700801809517542458355952764016845868432349735837764936501193256551866929398833092706225290514927288073412747890015340290703254321415846408691020675877708145912554204313826738707732097601603747494353535060412782707702555336670867797836926386529842564792361961644014302005613035614637020613803364475012302098517955482536249096034099900518254294126473910967275934064832462058461000462267437842031050738147156721821187321437339668351814642382034651831098840727887478191545830437032349005342520409724244859678929561918295492436564616821560946470836581313471448457274672262238581180281459493637172251700060588262570555591959238265145135408748237692821783920165031287893671368219276528920262458802876977222468628080128845225827051143831766918645511704332101699759953922584120075676249738040409917407158412823512390977636534460998206983532881541483204300309741392530976797744933444356196243304327453251385476200319350413526492394027032572546116612967099326297164019645658095718293392359006972964940069192074641461999612442003917309484489519471785541372163557909000636559491254086822377974734005374330918896515842954908119504466302983305572118618214471114004039341858919252294730806359140264836535520380387860363569388006231236085385409801431969468158581708454573571353850188193809095043350806076163725554035781352933615626401503669257068793238380978621135458557023340896862236669759703311262141640438293364938416920005719634553904568165184044851680353781195890535208627181014376997736115138825908217703525404565067088535992855682817680764348675520588549300685864276390337154209713286755601532042268090939659939048099769692523220449909975537837391644865871310652926558152151318765948168146621662760415939296550257725106474826675640979297657629500715778328102739608113692342375701121254156049773702495924090299780529838138451200071893279772777207027182296064383964321346716740629095652882643724328090550187751199435154730554764462934269014120905090034380774511045304897628657955863630383240935802306167851450797032113946212329213018933246440394462518004963866781241820864177242747236443037848252137093010468252836256922910143875018770911862163874341383418477484973216433552181175767738711029913068949136148350855722137372970201135492968081979868214002726636660439983481699892609327078124324207663341335671687605661061767845791754461515969014317016426770572815918538155160480616729147148407516767557864508277684683223805702925033066839634976621108532681690045079749352642172536895017118989566825487704147714995451965977497840750928177054312822379866592240699713354336994510486590157526040486928912385740990238849932781722639203697245038202570746440096409242253805642291623541895723435241709697419725958499497078885197025839596935825792168293761463612264450973618073222502052713459224904698251574839731976850553196970676946022251588243077655825230322628326667638928891229389072570868457526630937045203624679723528966809492969158754412869311819048835120294119229286374682100821191979265076504840777554268111374633804369244743405452016732250961259056123529370899766670029865997896911957478762984800290146707724746092046144165602639573077143749018644187555348926993239431262079280006286197264208214894102227668278835385961766550842495796434375650548173594291763142405568783018162491137673136107946361235916211847790298764009279726847436228536864255888799152938655025962208202457449361487223977927202612993944655057143955248246202848767610497129114021547385556614775251843092128330835291333421709674929231204666652934056415230068460049449799732974309277499418133715242584072225248489684789534857745051093804344443960952257386492696427557088683229134519827529211684469214604013241758874046377256246773475773696056258068217934978353460362074809139056123517533912689420642641549981589312135094824850926876385295349929442493966343336158276012844206969503843217637076454512010237819580551298494263492960608020761529033853022156506907790229391717635321224667244311980100917355377230432050917063795020891512747319565683495326007074187483589272254710293816685036532429773605918751362227760630140841859343362794760780689947663675481344936364568855682370059191497514811260020842323200474152949910351711053117906436021668816501361980117637334873038126469210196865954819432896434511658181054660001133039489080638725656674143934686780984767775873568713976555573563738949654940605562267516285092281828974644381511623899606028401921641659111655733335935757403813262366227482916384867314969461537236812568042549247775183266029068656748518574614499908384600230340245813221722269323427664248362956273857458805707850958885678646795367810572675548131645951782699225177035047511499430622089734185301491473945744968229318798254154923186261960541044395955591324484639602701050368534124089475887852565935665273481849365803578640114547046633972659875257376941633604691444520779473221528873639903496468121592201495209800967080006479596876637470648206834222852211092031797040023713835479873898861323435408044639290635309654219435999592381684194982148269313078961381003979058704738594749007615194773206923620023714430792766515241935786290798108515368205998401095307974422454905596461190375537722666212611139781843836852578749401449342608185931411553469775456315126755601209396409258867303360876827099972237866811729764393344449822069518867598715012685605497747644715043633422625831806015919227513285389766080095983020389645407424916599419433873041082973414875735770757260410305537072224653676507510081455994925091991551167905805074157779997498696057025694950568639954152835305289787159264508490268528162525145023441570578634245358167451291540307679837405109699460312724451502402480067803536374886985473705966782740647120318039807516075728452618372011875100878390994221965971907145028915095880862694914335482739189129855335984277084124283201397186894243325697043277470870444783358960422146470422019523993725066718067163154994070081793861390498656769157558097659883984880126156042837066810530083107514663928179925295191858450077388152748861489901666346793476823720352053400501188156954157078926476893640559122110954587129245710483175838624462459010183929319095302804087052305632580148431866210683243498040594452710121323146118291824610773942061857241366798797775315651491151509456436841111009553910810035750040428790200945945610443784005670923986524306923548476967287307440586961736138952350502616247978876138065320286764084173841905211654219840142025280985588706277106913935856080562608531163674315572171006178940029909245612395470406394209642926697128663388444016048915035179027488746787391247440491011059193397358642690976789456883765538929334482892996470442083216131030538620864710166343894242728077250703253608218147321688153026457484468174106119730005729019772256816475530717746138698711593725965061656898586034334046118428786341916657040948258293927955342095003821643986327712528843371738351263966547966117276712869778368148318871169221410300513644862390178791246347145429017399487859028954738833626598115256772837698900934017902891631316540239217172870703173930778989076887006950514656246065916761972534247206145510529771103802590984371639448445106862190371709907717164233694319013250167250916157569830872388704397694640381674349884994594670990113778810515170957535268737549233410802008140300962930536267122136981896206312568365224453442385356668340561955213349757020669417454430682439869969933394772562800485659886044550800655362158571591390467010788169031395375519482848149960055465665875875857372882143188416711612154115630232236702519916220170522064607782352497679244386058155252986409418446214051985417407191328427601302073043546534681893214581570153981806120327765060514094096940374483922592690768757424450468410378817384132782835212195747072992605538102235323169249577744623066128418059756797103199301177430311798942945341679812563812827255917622235994928211741846614039995983674753439906293948708818987528231162303992613552676436278746805515859651095300250930683012002080982683071329529839974264364172042490761055079453738497091511560210016525752153631623058298715787088672088391163708525321048491269496837374426303558547907117380721297939798922832872141784123665141699676579221398997790587376625168600103221715538985528788025090321011980692712272230752344622109643029206731662724449342758142251279361897808085106556625023564791511466662811811040087257879075891927306346417234262134785917367166376717174139510080914440092471998382106417744410309599906890634137143793108690452240552261183291612610231131803027845176981316895024624013255753108935921625253227619301901687428693515940191608634360332190476975975622652901496578424245939149292979168642091937552127947540959685720332825153011260202183499963898630384532904661274885465507358416573059248665963851150455310998770148064610524301760068459185954791938046151348012171350717809250405262723660859794463073457350424730954336272263406240423178479741128306332855039937717456198259069415059576263355807302658339201243637712580823958748893724804610074658272666618252376820857806801436682707740823513580060074311485550721921180640682589487793651798092958865783001528884052859085568237504970480286847731758932108424322944383577063888355401141766783587875835192274238990559466167990895978952012222523720609935744170268288100036591168025883496067467197508928945803152252223159253382801097736603785782086143986622842318136260305877669220351452012084846932688875552474226430480657624740673829781848190175315337664416936528874095041622066936290468532298245551866980652901518561897622173214393536043697949498268222748895544285410736143328562376842738200251380651322687296834168483376538589701149245733994538076402172087508934128922660116768767724612519588328439038747364584520350600400436953982792273387700362486962735488866967995477437647814619788539694387070454159464543326640081703172072211835155063080872219667475706065966200595756933972437371854903948155324023934554296912004971524861472733042829722527844229292795182511738733038617880097523605826656639106892564347054186408732441844074711697067531434543514947027639330531852081274765006604793103620711094569798607693064449828954146635751928182549455188790402936898222000954723440722495229662379809972911646425773964359459035303280422344117095965180364809795560898907534828495101550015321637719047240217074887368883908348978269384060606928068426423093905988302390815398267037923525948193563511228158438497623582956390361527625748048464465417376675607903799118156105750732871835495323688883790330998650977053918473190444585120028040157076372501962866858411428592557329245363016496165482855578516286640622666460464489467034105272021070260555358646311639612369160226232270548317962016602214898427746071850119924813101605155055831952211766908294816399579659172162658692277661125400108026712888740495434683365814008616074703087818654478948594300766817182473097827100586965656192842114249228067116438241785835770876655898569827405019633377252522664348828746542308199818166594075575991438324895277477288691715219704107639485765550446647515173916020134959202583559545528625343934819870915882865900846533705642746138368243915647138812956789116092774960506002782586214591704239916177737535742282854967109885666030253256638493918330460338481387255489103083998915521644570484522533051127218736200727395012348937094334926689690968333149320873871681936278799724604057878295901697230536278862670867986621758106511139331347649415740520663372037460124304512647062870195659558750140880483591085676238213778175311191827240797768503453428989624283501032646976317199269884574530119464559473453536184092165828062266814391798813641176040236042387097371012919075659612521642919336827092092103963834236761457009438638552884683326241718437662156027010925153801967549948240006530588712484863407665812779086926299281398933347554085439645455004517720238164974071459535573742351598490883629278002008089778447462792682471267137810815316891296157152472011431289408271945158583091877238477780056357065529945850269543414810895508416856436120510681375322495709180327252169694325920649953482811931280999610664682086921987349140165401888552919349698905124586594652266643273403288203421984527524872689960532322679918829455753325800732457035341770199299120362589854018126047916426059545360937155737392646860934659793019767809234402706001956508067970634233100494371691900514372598218538726152521779758998500235445459036232011471300091158638456466714045052596004290093934602555698993235887980297576415537914511964360654813989051753920180837839589301827923016481451745169974055613608936572191214896780143997310300679735652393314947775680186261383510100052499961100348880702757599752935510114086827742749888238999666293873113325279349568649550628059797343640905557076084122061251160030739107988806038778774273045028794178739257706431963016270551894538542062686031865284033388766284073693089880513294370263234057027069546821830987629911523858504972092200581180522852549224307325533246891590471879301027122053611279703780243163636470565195575876489138739224144852787521209750278822723825335567638535368262187542318985300618708087704577606401047186885679612404965440673423510593860054308500275749508156352802446235960748400753650230758549153276765958691189445207244299874943159206666120877848851850176560280901342285544652853943526281815296055384485882417108520130591779288039938047266469905297406733973647044731455589131078141386633612691852932023350925580529094497436544544773309067191299971057981107572869496496127912556712525911451049168795431008388807477030365255208084361192132361245516963591648998603249078256017672828105364367320422710690879519595281245511536302648618464407180275628688362923353004618405238102662868426148613198051529760181775520641795858314494747992180724479867642900238189167180867703414320277101077835431681615979044569070634546194414895271283218551141098971676245671934187608828638892715203864926410759520666375959736624171251649157480191232822846659621012154314125574928510486041902783525717070512993758670476256688622766886241514574489590535878596573008500220452170581570953688573644596177294594808052598262528004912818209371866453972649775182410041532920853344879358437223473697569758927451694577046461753648855415106385821674916530545272829340032264040441226469064906562832659169969625495006331729799575715034955091831797932553251155535255150788558798548020971179362078653066867973078948065096199907265287105369560946407496982912593239450484778875594147120476859879762144469467471597702292988578974381963181861283752100341842024545891875561604594980336083978938908310190124821326127999510635599029614616392851557645841314242356029804621944922138464488167521613209094460030455206533651893529718473621486794661261799494641455994987527172208564337330559173733814555589134496005109750999755644283480360572597663443007570810310904145185065215120206424690321638969377803068908527291290386612708649412700589806661264860935629265379679545521120099628364794675121658883561766337228255360194085355349708635300960761033368824368005117567140881594988584197871736248288294886627521438146298388769043477163985246674853439784913895301317800739940912603830811007906715328851314714101784422443429759377773658256190843730111368293459799861461177275892750992250136412295610158824267478749930281427670636307020364533464122208700459059701233429018382719508250552604362359333349032186995089073603339074282556428917263734195917867150697426242811827222858558383860836687348392141149875473977996749536996852829714694828631301709993393094451943851942314293517367608806268393907647561727210257670612982523020454575004878738212654472536567456427646331260112272829671989007068170474868349320083301388826844147715486906144738167495082335312929871833969367852573678300667205318430934773007446642899125882658116121321359844250926678979335719009045094104691573903080819845112690406166537533465585882914028580546360578144803241769826392207306607244830666754962054983188618381528203232645882229383684913995015738203872256035524716075237537361166159928353053417011841410985837920363621144934341542363652727774676991001672272990495386381717445040992042355055241066068765608045260020702768192826442728974369993543342093139614239268474396424811018494957033667493955806956817998995101884346536527876480860628313980407756193425686506623718242980752154190170093431405990429562856445851020740325053801731027381196101362104601645066980465594248590532771180587540099132878487906925113994016116280619303161230909491580624855929634021096706281526623672716640889977420329889897096872607613820258020895506079931978860735394045385111845444596320326674236086492875600477261579994692974186290329821338768083930579995790816656269413368444439296441137058531737942501365178724333918905122759630316227124662074239330859338379360640008089608130178988185234612001110031804776814001296338190246754574996704734529258908446409784065432476633086651916896444778790797677436842006338192200591635369955233635163537318299122215440345639876389009752048474270432607966749766091789729062373972427389910081573508375850594684664889669601570990492019782915725708462231757597915349664263476281527899793557185958129785318776382676058756891923099890906112571273655579027904179352239502027975424512234016548918346979640172398111805663753845714194053704731974729979053420882822371505662050230107725704924882325942799852824113179000188621219503831018606231515509277817303884635732433775528639664046874329752589859337954369444632551872355913892549263122342510126297021742699861940722104716486817197267128889681644960535173600513444763538145684607784495050210429687751380792329067278642132541631696059722931101365942111424456007894902422661349610211248852293782490612441311297803133413806323913430492740353914505056583890433478352437075044622069732923410871042394332420839819236944378090244655703395414581860585537715674626051013113994830516661339557054640501779363970299501975530392256140100970061374756790789105151868273567142953686922901997198300524551291114903905146647592439242820761279121992667429807936788649000679113882165181644872424302189955134846582707783423938961786853272881525688146447042918079101842127170947832525567888306178702635957218671091859664963985414684219379694809955948809638520244442844995196681117366534494191124052124502870547621854017184580611623742406650174472565520186900432790636284964288934115667855179889361231628238540852812780768292993778664239092668784628850681485660241623558199345055351676236658645681632856673709212982444500188019286394432627460868974719472282910075958823005577418847876466814100169756144638896215705519108424863137866104734875418720321706894708382226168282431993812842444377229526273731656334360514435967931024542935765926648045384235657040442315550032696420796319887423061472800610585564319533169933239430790361199517963471753325486455339475853790415333963851951483966551055685935267459085301702539735157948808037678623895680418238102901525190557206140400143760370991232987761991066978667416009565836455704386959128702296263463453466575313764018932401865861178690857716521709343147041055715239506869264999869389735307189910455871823800477841287229988612039705714306181169569190620001242421975059146824882382567324008106351129103447585815514984241704661185948459818315736826779015972629171237933158149452247118363470774205389759788855906558078479334811190025733269462383453683868740506241488133116734464428916033490711612490695278428516381289688168437091886488516217714053468255926105272373712050317485233849241614357130293475318903075334719646965489280967860301609951409657622129744477073078486721243691205438484063635417262903976356501476413422030276664218673301932818466855025734278953322768568901250424133357590803072533581238423250126864404622681778558589519165314904922531188249713357161453091626414301094352302980130246646208292208347662550170111795417202328285177481912540688527263763561748094074080245434462201008334810423559015476978892399013364765977128916794753511542423188621214274167357366577705787608732444904876350669908959558890140637224108851371987942545305946341664231829847871084684770396391893745852305609977912228138308208847388238826542980344595964323233154899698779236096201742137391825207748198735215732336873321418494156318533172170419048008119612244700020477059940037975820744069072599747053238031059802597515528689628804064525015354067121209735878443986182321647094016440691986398331097750815923467760385005374258401146201420082059720502070039347314580799508954999554715876140814790178397659703715589999197074754939791559159212360798847278848279269363196822300609858638743562793221705791062924491993952331227175467906796856810825985040756289309547652532429617883217834959046976474696007328739970649465292975359892992498481717880535194032180196605288227916226578067738843082528164571266762337990082391170742465755058564834341718245927455223143479437179108980817803715015024961523878501251136505844826061565760745623913336301857196171549916054742151732563859301237193111604402408418526020033159482426350283323265487960110182514801612775434041718859574301356898748603108417042899596861878379604744140515614930122176806772280119947663596074892573425418998998959651008410881671357340027686609214739621729190115885625014721989161859950643917198704285529178829129237686260527932849114066255851534640920761116327533848787917085373588894828931358226082479728678744391596104284269177405982256697528129653363583514548865767203777191462110135255958390142916266977566017757446758910876567549273517125104285870475182055367968845407248128551690952191456467235936895517098267506205950557197414272174885051587585005172848567044055566960190493483991038483760395082995625422329228146764764625286156731722850602855630682182683195152586104875223997523175499619743876635904712824323520486791856636463418383109863151739207355228478060719090902898568177653444703816502927515011776548041569587820052185103683655047177823668214524774522939455050083905284346380795802487959988686396848779669255747028487822719422263962063771529981753415443263465409031511715917335629181242808358976891357623602633869481714624085093217002393127069364420336899552873406624465758823183749148036441845776308700396983131963259085216357198062995106566741733659231151172991888393269463792332056922062263556904445281626305706514041055954580901912922530024213754960696350443329046053717277999553306352240768101948010363543570356626576083822807152561118630992962039999981326516523283991064697155074779987468093122164953354331067460053996525180968596283778419150113850613008414034163529187952788182427272901468635027981263839534581802403671196760724687967735977860856542400407438607009860320761580206625787918526736532231578850896264855154763859008216811007342379508874825082474899395021286009592535375125759304176822569381294265173965247772857174216443954505342363392782219225279026993944206602252515033935910149542125130336436523728245836373547484781837291278089909416225564710620639084007708278862428102136569481705927341865862051847826547318172219442620939330468902879106112087643691115088836902146371933927894534375960031224040249031949120592266233524824554934204296393355480504257292861955770814639364076119660371706322618346630885487067810871349043204402507618635082924180744309366612930141621144275910030060510097459560367254764575819212424231614005608192864814308935947963278184225394758411554318389593711796938082651122873127747577633442764786797757203904946717167029921016909167221753594268227680097588316840304357968849980703413411539275195991924193606180129284884239946138544826876137677742323927169564687991457226525290075261433204071742909252407869003681112337514198321484064851484780215785421719896990049631488766108727140522207506024793450935758591579124134161790612506619554748703469044832752859777257240147834881440674824953319371195406899258727906738401906143451760044649193949241763024726669528997327830614742298721992390216838969116670119795984970539642914334023586471357730725419225084893620122379653302099840431240001808001494099092177704590564941095207006534877329165681329309401557951683070410676648200892158193054775793430702490919244433826111931737721709246614221846129530396773834461912608884454198968497994610527345921357471250151583193829171446459876003132459812106072299780193066412153965829757497315260663628254993338439606631005323290842535653731743497634498392372255051035326687015984130166630812379026124397042951671185630131398868482525981645573009190127622793080026835730217683081910022729083558399399970458759899800840227259031174073098122220011619728390698825691014798227128679586456751490446996278206606865200692295872415747791021873881966800620290411345040956950498592450145908015052371029257323238784128830204896688285944445388667261824785049325301031515415462406940377798919489941461521297539135579481142599408391747243170192428384062011656058802833531499977192982847943488159139146239469847554217936055053320075796610027722264837733649238948743572951012015673420200015849282446901965782910074716259745093680805415178681266772977484545620011197182691928171988967860811651487646035225077130646438777978296887994632387975608966603547908612794359798540022163997310758524577406492054986681768961107910058400867057385151641846621653614015202348880492605873695026113642348369678656684602240608889646747262939615221426923691976898115726289984055052523319139677269510057363969561177691715254934349124858103964092683919459771603228406947503475796983535461779112660379484228678418693991996267013607350912077675394044227341780052959696558976736669587121118376928620464737727032986892973358792795245552924467021396529163974519244703641880152665923822981155097323286803190200941516691598261580253014862512283794637816466586193535512584949366030580215063889675923538181447894274207706971160500115672190100306708831656934537909347771408381212273485519729388152240688818917292337516775758365791656356874280728609082168271091247083651053955369861181623681242351065132004079226628931065618341456787564415981780397454903252132331194128307894790346338919871147851553318857367346848373928952914707932913874581300198642393023084297611575665914532156534521243482411375328452486419249773673383882391900337401469109783023638335597791545564465004011512985876785015583765160212225502985974124775724425479950294738869881598166113968836938999278184463024072066874127403978012892578598574439033071007302334989032392070955466121523606962654910665918703134642122225738182451477972838109260970906056210689929013279756254292131796740688290248595759635821889139129883789669569171542352556159232014025128443105205230798831013267640472366708940839639592565086829965626204912716923243169091843248245312581075145481019907594611460591057842695527972709856471735195909907631584535805340745321796883681369399196203157735506354945194967835356205848456745994187978766382861034808183228314714870855629321648674426870945400064510467009217479125442044091815525438488565471265819830503938466344988383249781427787733320748182946973590470312588605230844441592266997403470324318461555152076971919288739909589237943327747758898262174603520509905731716128669929824533555219625398180499486146690508936255289394120447758545522312113671625798758517192410957519814817065512934930328467154644668079367091869099248981710489104904655222651280857033153247475751363011776210047105956922684203320172958737451734054514316072656124739820964169418870813472298936626852859856140288453197511206109860038832256569532836006330300705847937088720825422721357006552145310415957552807598250276151646883647881149994513760564657495669365590713066308255925220008537989768354587113410001538187958376962673459176030466958548031345469008336885554600861342483999638707968056473834679431102443247737086178740149701910604232408341473578644916581060705785623079947897626856282890102185416321071720149114039203222649721942477081616615331817364848722871854678147214221313448823263213342781439065687478144650832629214056989515330267487063949998682534251231498175708175977227784155794924269936910813930964208853584756327753463482653762075735344009803870842874671850437040388788193146654971154142347570597193213368380521971120520631631178846766883047037218808520426126286440250591035447272761901251738724989675924301286929201641582058546186088215814818617334079156940559270208738076073305787429625391525440058707267107532115188074113780462163710928968209839244046794744522798297593139538362413649822299744107402157328331580006582722237891913372196886994420004733659927352281123450984292094103648433767235488804365433870879202003343806476561158730031781093596447296605775667681751069965294698351349855766248317821860387212595838922107170040782851009340993059901261065133965617715894995129401564627450130897961144901953382141693900376814834662313111855843248836625165722757469859193997580367962528412456400251203123693637244379139850872706561131344311831004346340823361974731619798651309563212804955877603863749519234798882953761040926873159088635963701131617198317103923912730789189402140349142579818172986857228984820556905527639760403024234952842855606605513061496003965779009844148786299190644051621600142829141412878281709766037955846540253034020734061340920433166183517272864005211259767726817296016225217201649575972573973677145195130681901702538261267240059662411207954462606355745821959574726035246772191104484214223533677899458856463917502776869221908350142235333122469486903888299959283534603624352253545279610848025097520949566228697720986591335755911108455934102779654231775120045809086775051641807790989762970930080361516389727769132918148667712998993748381076147664590794177976546989196159652860392360918737981653201655348095292034543359324519666150576463721932724366692061462915376921570280971855905349648465651458036429593340454620520802368686479471627728685489502279780313178468835657406304138319251741983063353908339380683710137724960025275903284491827030365207317495464081111293468491930807858181340200914229538756730166287089650373492549350236959186455449776947471327635520690760465971781564747814743818401258095096315519449888631957606631475562595736744295821458778734141076424040675581193138517005929665888190872484909894433976743095321119469645168549686435378135211485935153144538689284047677744383825196277824388305323025232624806712932806604739851329606025389857571146442291207991975620808348247464384867953569847779057383863996748103730348322448445000772870366389788795644920760782831475077790497559029308433841117438153011236269907390476939639797621946187951953244894054155504557108991903269267589912297578510882986576762988338320572945717811541352424579831845067479717983386965973908315979609370749956458703240779167574558551375181247342160310260407961888867240347355751282387536412041021566311848658825541604634031040559555877331108992148683023631795063847069635609244326966266991352709096668225830274355730062053954364491572034451720164270688771322748056900932136685071628590303818272528362078879702668072819620803159282981275004964984095677312875432888458972377788523765997615425447254019379864266157057751043230633452999052907743900775727842115792845055876435911457059090378977932492289756748161505115868433620107640629155127793370467811026815315325865070545211277849689065384283176079059084880272985403294880895385976857837538805752470803535331358005689579745206793591682941789068200713322142320423449046711834384978836911719137358371361670705053239178476004168519774192452162372585393361242369483593776239769949636354818246955160908326854692483270531815661616199809280497190463010209702528881555038291485743790186336995679456458934789648950794071064664552703227963367976525331673597917918461085823888066323828126901734391760185372739402829834299272937489216565365114887448993990125247319979580603729753192784383298068321221908745911517370335656981354252925523988186397267907005358206933340221124136134390193135019887459226870577441567316828236103841323310412353770797928011568476962041741801160864075081693186771607024791606353777971529555530062797949816548157718894926316790840742836004270154780212709761969297204459373246423368602544098293433072285283204556261548382019709796473906437673841085652752005317616976789590928695522771092745352304254962363518133282212603461901931487011813195224544092523323118671204465531319159247110408415529204720467123809685116578477415423106625682002710148847891460444695491764518771238583628937767629786653280540389354327737213692698625183263366959942610206383580722101797486512122925996162758501142272686246530713826277640376895597148374050659173253316259197693198830206930702746886290719605821246538357100904661327040757132206695315478040590410290481335552664266192945019558049911988694578866747875591972732461017805336050999147782134196935229128648686591353238816600502851633835248808010493183754463831026004571450138033691985158927250211947717597517951262341331962872269879021563609754936048920498964989550481935631630847924672829865403772516486829939621051364339132136504397631196726245861410462701794860104984113475129808738303211418847578125467070247264606752140263194754541584137546132470465186984724436542793756144436683347868093296590958022755677382358754255628918671667935572292511977631822203040325420091840226431318234356571672021415273680431968894857212268356651528707939793637849330188164118316083024907905761555112276175459404319879289793318804727827633880232316462539287810486453567573818560824271934790262744830582183777908766708516501513065305843010829064592823133712958134888539359254983667688531270689449970910390779843407533473624027929566731156931808917625060299270197982786322699980682501213680141927725426962478328812714031448299278849210183963059100346346226085066496965341037137935424349094914954466131856078231093854610765503175529873554625404072043710194778604471168407710906305354718229295679976032853054813086638313717333975620857733551824725448136892835085294418126233905191247335925102552517727001006086964176859660084312006558238358875994952942739379207769085533825246015438830518753387752358537711965786781105438104414590647511793483597317186720032225334826402974769020890184668592839354485914023807540128584006261074553201829524027525086535329528994068982426707566744067909581676113938529101459941131356558279605821989297702048646211316506732028575327872484282953223620873488838683530765374604618865439176302521067700718898981778808899320473461728774237717632282372635780506169335550127985717215311703940357426091827592546344017729166417609431138239945027884779414416863035811174859326355701765787822579331030343223356462903810354536058628129933949005594965624660792529289760875868005074547275966296648825041639331644168308405928476984780183678077790129173440126656933455775682385737255681474604482594323264685587516900299280861555614654974583056926762783791485482141077727868977774042336623679705937729949637778401865327029921626457827951810682140149623073408198239597311212459530770366929682719362860967359924481167805239631460761681449187753814537700347106288988997302926684701424776473741385484161396000156272313590967945941989938681169099666421712144606646112208246986841559952353636897655756073866449015160463470941569172775718166195947193090093563145472813218365026393735421154337440824028620133569093369856224056506439784119525912862234616216049903917132093337831990344913725821525096779474100007641181263755392797261297537447412245024589764443514815290031455831157580924883700760272089796378394416047847064513411497456033761622931982897152069158393695029062336700178401168313888017288751181088264477690468277231538900684433618892241873394440338041769103803438102215727517124541904792050361920924103891010517478553138829581635509566083771752261866438161816205955827238307073423638453857731130607815259260985786923937206007051714329383463106324810613124356514572956481090230794420621704172492518892686466982183865496533178574488943673120771410233804429119336547001205710975104435958284863380443536128703967402586952257480821038871036262463664669323083005872039057382198531679112773442703579758467585020433630984621134821312832386702634902306924348726199492183326276011830248349545201630708806914929658184455346695021314319285606260902031363614326604941485681514058629125090922613454267501915221888286586234454903672917540016992800173435691938766309970768297188517552900651294579109328322485054137420234533422152289361670485608747479352339754223681489514751140927261949229631742415286980669291264228160603553140851354972931858116451432187033440838246729278897834149299652216896253447874842033677391594325536821976378521166165638984497984395812960728096049210024474955956493078557546410754398639811513185048587097904329100642808918831494629434639512691641433895660326716052310409564631747837765748439540208466034077420566705922860227549994061489322825919525721990877745232292288958295483637013851839762415203423440750042899777307600725354368371282238898209986379601884182337587465952732302488922915198178134926994619387119274119173475551949163976118707792658801432563942755559488857618815276852754006562188134007665372416536877926577222485396783504321455461934913464352149276818320810477271450054318764852879851475617972865803821993167864699153349645757550720280623074844499633527296842585687112266166471640907601990902344704965324962524396417718873797055273669629943112073050800939958097933790541109170483272260618799719048902727315144596492341347819946405514526298836308998718508259157180410787226113036942421707220920285750867397466546016177015216606558571372579962705568080175899535430982848797577422518939058491259172638376807208718789568728558016768160792579395679942226465227222613512875162862465106717785267542100577103980942419903786512729930563894234329836410403074531993035438695573256707732714229357906862371591698772331935303555365047529191746626328107069226553594539384372632850657791582157051890981721333495389672877528726336274312164714016365501676347789511783752397052753051614290561750031288844203898480265961346440463269770926883256093265213639010857213761562837148535064007779996149033463965678339911073801146203215879121048656960686163121342100005296984263729557657251475093856452609389350388057079671225656216522835790997673118036836426807226360250805298394562016246462632760045695154076651653120650231584502984241379185934932743284853673947682182501959353763806740790418187482257911808712597737973350841714272356444427842158802986892110093908584308217156344501841186741650505529758220493662623017275061826856833433325834574705139090472047135496582177659727139227000806872783792373292285213355949588560379886922219253973525237853741855380284145246965051761703205171858898607791055956001935839842135570291601661995271085719740357732214517518035482275563299026629016085713911832275174592092471123912879529277577419275331586107223037377057858841106076647251096702467264871316627764508594525295953769687121686457399938574263845882231662960393217219393314689376775576588649724685210486172869949076338511511087609329161984297243899960068211175728572587615914316990389918597830689825354577901845401563012614952879128646464100517048952280942373116092834356865352374688049654906844636756148532007999898542333265417461775676963413116348029791486364496581082551363474969053601924852054665813264749051408354827830626877919170052089319916775179380029929322131074575861768824366071640883725960713696173001488081550519427083562745616199953363889387372287523664101751700426944075241863307286829219882633115457721470218442153343890450613155750984922772351756875756763660302942704392407963598417438183063909486185517970621677946988395715006399871889862747037914880628921920803084007010378260704387409128791593549586740753116244422422647981410939374191979543113517213547064713124994940013188410771466952615362502145128310111100372428116505379179630634531654810267542130534849264331495407031906561638822530393492579242463958325665997004440624046103049073452370398083874060450429335622443076283436053833468410478138571791438344979947419575449154089192792122655429370843645340067911406312292031921940066255813821623128697572361080121497977662013236297919341155249074565101476706862373382702531806538703539479224488453073851589862803880020977407327462858300830188710686287386097940711776605646047153975440975641961914395425262687514194267382104319365065034229878594654950414585888806698713622750511818671858893642905355737122127753807061802847180801596878709582932403846021053008410783176083668192880021882237478276323502581137746927204326110482563113133507477415752094368626793658551695823567247186085356399018485430259973385503034741944216440644110391242183575492687851378347161428823205949211336132310156363839580706593496480578884943529330465053546823802900571075549543064005862954587289812489106113804354519099085361537915119417559498852891777056960030111472055313479319792337353172336357446749431774953065384333157786418657848127008006097431826480265668130291560229468383364009156111119011474829401209401567186700123622116452660791040004866162144793950567061318979103991574967512729973767587013852243136590296024367897798342875745927118202236697891378007348322046389443059818106333967301583724992325935422697191947958073289613658277631402503641665599255148820148581781277723261640347401978572160458079137011424955717935216615210400910911646139184018046670280970303175197974334565942966951575053530102635305077180267213564804683950014250761209795018999004487672658208766976251959334180927588539619935338491791698443584243489064321290106632422502231139516082992969815380351835393989573306118448657104684090140542733243153875495275524974369458957414198155163165646660832909323207370869043061699016982347860061641164086106018251757142044727345136359456229156765226976110564281097381770429799561755024551963750464353344712521906898428506123837229602771402604285202470371074095885047238929628888653226596373819644377630136954852971665025575629236308287506337855647810126402051875929368859203334592672421735353095330610652987808128787176927468861651363038308162362371126479004069544188638898725309248929948357665913212005474517457613238186577767788292191020976439052257702528341555745928597138855697593163779314315409842981083945340537428219776867685463954523372496658527956686661930878199384928112692635208501017870119241696449639179243171235065467177391558995330116607871011134601541259678852851614781537153870448471511909761624263865349611177119960687876319721936266711127076595634736566246999901580023097305121492640962305281993139400901981992454716540469208221580329605215218867052332542202609935666355281360614113984651135153477970661989345669359122572757824443229577968959124303556261045673383970954998610345138883125395419361909355945844372692411554896909008992570049891942355406121309418049162072402167766366323353028240324875349962970114145151201248246461225299157269082132317425958771204860484421290890914540594071332776843109958600206638648927176222938928028466867874818741083919439040462586365867668091370882844905764779444570866965542246846394812724421706167369725010350065921550950866099918799584851520088708234400814389841160046001345474971612159175927620871468882767192845356586443197829344432452471830499594575319483385728332162768847712103733822393308566185543282837866963327638137552210290605828176899423968960560125776779504268663257997806579107349418789561827305243965173576502019042565998019620041913379396271776439405203067486698539792963426750037107169144083435958091229318008715740500895044856948311438016875002367139988025273745920440147769563259541625459225383087827771484061472186674541515790294075981405626781363343029441923831637430165214213287859565910478199924918107573086876970011132526236489558709943438892214648823575588151559399151725763882617364369604631822858041866344189315828209599541694531797237155738317070185158061127851174138598380742156759841893625124383846349233237326865111074657476049987893950336910688716712423690999806965261455105584871246859251264028233458426048906284920718558024493036773223326911240648529350888725486165459811564772824509304483427756130751613212029811900640484943574813355225565754948585816848129034968928782058359921627381698694921245379738614068767471019342795039288209299113080988969782570305272323011867305835279549361116634011598254233328511603724079086469252256083277445955972623397423839541738397771137288222384563031403116484068811788156602913079813397225897740388202056318072435052853737489393217145114799324252463847610880888912514702425203740337382977548656024116325593902378464051673498797897366355177588690180948996283582778067935521325728973997358211177116442173840859894881835512241232569511541363771869741847265387457414852084472606728929319184424884469377675945158873775138815145016860848605034738528242610961487410447381549118469680799180614469636023129876976681560215094421214066464925950620096006889821597806319370953224977993226551003572501270794053746147862206959183605515706118962349159140978209001658843895401406247568353286006208808664014000072953792351732353103389092997504638790983126256454883667935741360290139218058181766116659921800692281962189595665679452438874793546347840366823045493109192569144951601621428982942419787275480106955771971843167530724685075599919035886243772611661786148033772171502207624750010077956414234054875192912921583310671120681249375797994088446005749032554825706372667815334899581681817499377293847087416850509694382686743779651863728520749596552097454394387720988287657653740314172332817394402556782214659277990664665878508460790339464028610444895692458258792566555745675795795053359919016556072511269692419441463868757101434938522105221423382115789008502154203779749119138872336723001700204815686988909917468461889501454334728871083460904122987251626413226094714482507955997279918884493131891964869246506709532008501052639260264129524640514747169408736682533647432088501855639530381616128794323072322122237365191065553092124160681417085098142731540346255459328630472915320851989864627095327398355450550508982177965892124430594633968259114987714853820568253838669045150052387754800307253026908649258316491201204901281157276119779576452914415020349638046674804127988617820744349766015644780804951355304015476393128799868619014941765405258073444396662007223016700163370474422078580382717762342083236288118266935900354070972960423586748944667583207953734309634201129061576340491427230484722740010668286993868071014566222920497602983366780744288998066512510316923605749523273731322690570415171592217317804648064571223882302868540889160263644392659445995030990479741929832539994788400717439689838748988889768882288090380651193232861630795111013837093506189437938555937271179388973013806788142092052959061925301712118578133414345323820830062636170371241693425470016542075049864098060991738849587557982365371896048619820060422493373958433001499479995462946507375462372973489486622765978560438605465596271919054800379976418223041389393301822974620345856562079295364037029248520745035403302551333249841132853468694349561171162103514779690463717975594467505783559534195622874345910592272487896500583443238950779273195366769622174091124404028388133873549559241687064470235331957339877746109894792589315231933355640660882928459681633237127018267203627618397778325153628017312926986321464212342578087993083468252232997549679971870941558622555692629070200280956717968656076381431383597588039490107146156380129977762244850559800023797824695506795793594973231014847740996015689734628420613435554508390553813259133197851424924853556616653458502724790484418367410946036638926454162464320220686611955035005120587382588380804386607744339107341543106204038801070425178970715073205638786368323755805708190116866055470172211706629281642374525261448436112091191233246408519253783395546672667399981341148907263547248165454055739462024545980918902971284442541927138327691357957606574964850783143849832827545006564694976180774914750401027501678640751573294686002299733901329053140536841292111784773437776039773957525624630621401728396716880198818064152168190775300324246044368310841574040975883808335013945340954057266361197180860863305147601555216499921731801811292959473372875893812634389235707492850782953630071002961815641377358482673986038690100842937107600851537720541410606217712609495131898423159915868967032169448330558529710820693356030615120938646485711654669380394210173984640952779131374725920979945660293161175804598941765858858151661141124082576057584643911258495399655764677272315887929633547485019611018986228010719606472672337167742595684937069480126417569124428248986167451414863242581503335772437530047317895046285404511234516881429246253841812981468013760673961508824295038613811339018143115927901244263514431161570581708149245352261695926401841195507101682058631620273945902443844030611440594931310614679777464416240229102222115073183839950853444763623490102950108897623666534895234487974876261458753782504681059926833321968213966895557118709888229339404740273482069111080158737017338924658918066738340689529092904768403521103621249565294746488337635822059038846150735332798004070240602093080373049248592717607932553754697811067528794871184590080452963328701604193130916599270489066014363541976388757635944045665626792726439792763646243512276303499883208089695370858934768652094064727679436348353208173611920664233977665814603942689051954004237286370662047083488173236644056069435226161198940715514865522540286927922663229460825814082749357878208887847885408278309877665935166251104048095625236855660928541038916710110007338583112722370963812511764429517928558290101411382989117200675294875332649628721692681476176068462910658738232881628228630317116456250802779365599131686800785608505445765384222377722811680170330890863050457674546653899299140039264697656238625622570123316357240086583611035315305208558824807000045474138491300074202866389098810826208404762670093396501567270024550855489318895615631407191926420456060953230351346052056419356130756098201651827038846319136525405822393822227352046730821745634183235933169242334496247032529856878357246992649241213576426684846660873138995839992561379701363587462286969574945199627280135083763652481160058724121285004727413465650517745720643461761413391708615685041720232775332805888966913290572420077271626180841298406577574561451278455476247589786889643620846446090285663693533730459258478475370107496147670485076270574631563923490068615448880306918878130981542226000241624322410836687006968194694674484812995592577906687315207963664070172813332272098019577229303802236190471776604161897251990988905987697454500187193040981177382512553881662607404653850110754889291716123872920207326754298759067823225437857983750781099675869863391518737289029889257848912256843053483242125291259971166795391680977916185108727356566901891228339820023686812054980700651011167419040090819591459597292691712887637622103927802314718117616210086650045605067920494910373195226418958405708964524414894761014920764012304505318161997893306371688711927461984628422133640836873470939546515997599270007890582472201246001284653830854765465873408313114501549958931018442234212918101325272754225111911498894390127306339705712036174686344572732200059141718411719943114667028074793369031076774562107680568113318081254198501029612747996648571906541079024357886682705273552407819925245585916700838659911791973269574352501147757387185860216403162195667204474921889878842568719227871917476310782366399134792934014028558875704503732259234346984779703073081061842834936687339978921248440537817205692654390132380696848304868088722060456910369864663726053640401007234338524103243923963620552168606931105098702436088999789948155939722074937228528565110610071459787572397534320910692452083743411751427519325878313577762068400049967277020888469768355921414148367765292584466268741925875639569332116240993715380146797223599184987037594198694021322220272395261231353370432929780248612071093748541735107093845512843513855790730693577563801400015260958029956128674581982562098645549914970186795098140422247998372776705567911413399922850900115663291298309673659438414804625217931868523724440241161724007851260559298916946698811637117293978378999259002735597689147158389939830463022942468905689105936711428575657054681660362513490686156242343246430331038602144316498160875355712422320117234107763797707778920148003114290167993542369631264044633598386966813299727260286024148539897483788262882234620425043127395509710753930716036221890988397808620802984207994133690652342676512236805975695352633791346992031797741970558882267284943902597558446340212264983096463947743870074896478024855369540778468850040171692812453514283902352136888496224173088067832569562386677519518462419160284543582000646762141637678008516998747017412856701092756036344470793669581587672722257069423345126568483095830211987510529109195260373429147385181932257117731345894433000396360834885774094900554483595433491712835945149610639905992765014629899701870887434717179867578914625466049600643078481174722936018300017878309675669328969126920353547185969435280527121983754850610816698654799326435921723174094128518704329585917730984971336352988082181375409445146141979559165829794986549217088491151189243198199035056713434754163193980853045731170342998265117415709014540140679574553970290203223597429486496324793971580175390738110019445583989892622161424230598421279403855507346891711163273896313768080387377385563725314188742514587628979959423190538156522201043411345646226478087546977391046738602443894073181955908022519545621724654719624033962290088709832012835285706279582526989193415565442050782890456019226129856673701208116153045832617830815645515734822824253205990957139770851654563081226310321846648305614673480217405712926556336929475439905521564728791509226138012627155339530098102197372647459080538243568932283771612142687411003427655382611344445938740956878655912491431977763459951626959342618331708578043566865186795288880626615355783977908108003565687493841627008772291967981382549089896397058906852716336195251801258446452652178163354828920136171154289161008811293806104675863276465264567236179563581414135877466464303194050952895421662860708808961991298176894832243000495222463988083632327524809510563152310162794738444355144997586484985531451131529503140910066318629707926465233708677164165688757466114293415028197118084548590320910280395137755073738991263205274838561593542535282280384885523974018645911424769713703000369224803383638463552817047925375759526374736478548026786694651101160530347582734206855233579362666084929705364998741100073278445067993798447060291210279311235006669812561063652049709011113830401076961692308708079942109080258929434930962762583360426545914231697895392107701836138917132644474554388911182403550861914774205770212044729878027028869915623234520329301500317888224974466911789893880122879455531996120167443395111028400768349398045743494006567858868828127801568572311662695889436140357532646887962502162171583905576221112967324127218477251947684940666807782819639903352885214962141980821100058713175918454813214100163159010265175614416055374016306829124586466002057804039104239281961317184233043101019005061037229612851864679171206387998692951163661235874583617165892440464751548281999891204823140728996185892331866191220482760523382060870252159736556107004907505910074223246040687052792927230712936758956220786611542946178306721365656915602884054299342807082275466787650034803229589570777632562062960683561405024065695435051009581962042880628340612810882957824339029132046216094463615395580761693561735292337037824765174694967318662427692313462392133269858057219128400313468544645682106896423605114227071549676439922183907828635140178596032096787587375738215477888898532340501077742874819191219788931382089927026611349840959581289348964743774695699360125749672739105063397507811064404637419486143101848770774024139553089508272620293138687562914368328925999559066199714310214624343277790960738820351309401185859996672171245431843536632924134334229933988879791299100105090960717020636601464473731905928700003488406293550174456855937495990866566012984523063014221011795867894629261778450786855774405655999027382381604442723283141326781525585040972546073601830389908060904439111361134127011540490825299710290387785584741279621280589583810201579174596983356748333819293977463052493894456235270722424622600425665408252021998283809987342539339542899818335465896201606849204044608337189484334640142391339903296093647693180565223995640680730845311109248177785032847032315871898361468340400395147963936183769502525688134284286034170744257526814899623852190212209778397972460081956640742660813959775986960101507044801420565560499446832407010789225768552710439923858249975150937962832671829627786060944302374791006445453769480014222738780502434082606835545229537480464372835391319640281118877304997640372572318701762588316963939610217670813125421772178506478028524556513561275130319190538712824225407571650933696295780113641216366840719134582058840983228899867728770897235882371561117333632183197500341002828328397970813440196089720055534505667661790104595633287452353185882715225280386964385630244836147619812090981124016560501455101123350750978137217746265692290634007241298869117439238100497516987784874671212606554361429059983771036007460204176424965492724453877017179315856278561153096149291670142127911886404021975781587837417656593750417237280699208231875963549042044164697873456328355565080090691877047144035330728788474644750907088231437793594548795847553255116834899888701713326397500114434898148475869508900213282843071875506557842496771615381332167292914057763355866818942692175278472931272709539362999513293260011796708107824705974466200344344599772086546333730346866106566994401915372774516285788713311986452905147239394699689736453607670775037537696490747813888561803328556757727018225532156221624220106763277753716746127297484522855683783347202194365566939407087048659521060840807462970582260184422486526231798457573638640194610327305836734596104713293548735427014277099585384830416803069700436367999080485308244722975389801890831221770425811880430162294188099962337754003419139691782768007406247772480706160508082668516894439694502238537230978286822384619952648987891083178870421801094428233941151593980951080355664540106092718895134747516057899602856665163460250185482567667750697505590253434452512488736900018219123420369574424228602305199809505950317490524392620946683193951273542116998399302253192380862114726433401923122152990383043703294866752154825625695840776844634330309928595253454260759085371816729456133185371683554176679834012970121997133649137044451027837534506017483056483233369213936434728379737362424413228465173356345690467181752270544074484717226809108040839306095382812972950076507269691511550676806159368110640230713113251398818155383956116821140684206227673568712829203217142635274293712448330750074066136210295931723400976259116383359392251929189880656938930943037990429148654394731356382910913575025688795814712279452280337919892571715701668009042385770925082796540453137115993488726970771676291732224551515846683625850598442986392398603903125394047832164873952424348004113712002675617388844582160975599941956732865523853927134378433983277858771259041575805184882527615599213093784864888921573099116207560866835268690739873396769922689369868450060650011555333616806273524813258267642298476775642887822408590795152188879706006968419532164698172330836560934425188307087159905169418405368649302224304073690168980526514952362906675622489660003170830381799701926573419308599678372340747087625839340486822023723691651551242249267568305360103423268638304209950965400684041491266423951286811885309108410142370187771331639050017295723923077633194222559561828507688290371298161953502518878240088025699462607942900480748520286319882454255749764748641334438888864946292505702255603991355755409677654911676181828776839567738053125319151604702524133052904294249896836773781845271466091771376122297967862117621913830285808747852338389678582103601666012840261547080767933092497977714832027704798163690557345000805539913895159180244885927668181831291763023105977899311936146395681882605891969735850688942033280539779222905244420028176807296955313091695669216011796858781441938698071354364151748833595616927918490726130111915532817821154474537857769514426896534262426238948342733857276787908693801706468070616962301760032143597411628634917668253991731792496210592901308824098044061935388542604326295357711573963211849703317348259743105238873028766224805927315667192810574179112873191590863342946298073952112689410411319201547933209617411403880039214829582421552095289837522682665287223617727105575039959921244062943000016884347287404315321662116732253360381663739457062180481381171971789105887994790097470296900243017999203296372255596215591629690393829516249516048279707708891862754546157975772980128419583283599896239074453323849467665640732374345879047781096873611649284411425650220421529780177949268031815160371529616894069702412847327470969078949269972304031173215747825195543147080741603590212052998744328119159460235636483875740367606424423391249627459744326311957272089728463498343382968791857581237787629490739742084852312472723696926581647931456888984562756715937630039246874001690081571764666231010488848617795957597010364435570793098749957135588000426359374123559483389289082841864162881497121779546339226433143920618341837907725579758198485788360154854368375595595158765956321812814268055998287397398384755497325820721934818756665923502384613886466133166606025689716407645837820807626274869658469343181292977967150780574140391098783541152156493320427270471226955841424222472395955597847315755596606993710059487522461963265766291937519775607126512298562853121020456707171358942987422452287879693172283422973037640486317301638684188900034391827900002366103193949985244074358356069650698957084025415659800085976010542392331368267717613900880463626018553297105557741763384960400402454141692317995527177938743552037170358427150398044944553056629275835119678843065110504505014169820808006792185334863918623362321159653492656087774353113263598163471337238380200349290393221061701015554384178193868586108478336704096126038014843563475441644408783417567541037644844111549118730885126912764672658510457760001600934756573901916025798499960853119774623081494344332059712615223339788791395028253867292635025318314737503228337937888348261773303105454696217822059108594259834923993266517100456133162458691500368271011680011496812984772727770538413998282972714400050613681991149866676929751104455191111148450842741943098755798563033568398803656179513469622269237679137861028280543233736901063446422713430471669648785481438005078486226847765852344411890900235135245017269032539187570091697807877181720205507972952107458428201726349868089267395377644334270143612190019711286889692547675749908375776624426780693154889096055492096246065962946824927934455134433208145853699266840959554304666739494926936108016162723607189129296228301095499570604781654990235555139687807220272062826097182360121236265839801910095485863663002649377285619922886401602880358244138868231089503040103086065329625719789088474591120842754231829515499360128172774399792333791844943928286740081468904850851260461202257224789999293707693771983738848461176181048904509089764331360409387508781498069323989585650181347837837470079445187460172967217515425197856597957803146302407382589108600678240258548961242073891781071642939813220264943046108602193507323938194689191022882447461201546525339614962704002476103488660987750722556158684306447502904857335033593208077149583524148365626471742903045654870143771629866363861886525932334654496267795784022376658596686465146202354902912988492314271137006527164636875310865566144423500426364692547705482768518989732676894795374203922734800383640355762647019383113760423815699585888096539977111454846388095091613415421876425805012706365588952872684095723387436876033957213204409028951658260859761326102347261644765467934040584994315761796288604455111126187144368921941833757764005520304486616569320460527951992838346655136084271987305429955060161707844497871098977443026070415915077339294289219797131231466112595739783189127919344333469960750791783869653376775645428474518710620081678952679079201330401832298794944540927445265558473458777392726383303571807458402526690777738652630612163249675928268695731918722063818379693923146698801682638100957128494266620599456711941577262298202273068751941935790500585268794063798775212146025626149904760882609618562527898881931275647202035297345056438264369467327213320227571344134108095939922728174836329640103195078368624451989710724455153628951493680076159519815566157909410631511650822281671312549152538445758665439772589471510661346639373258953595021070932489695461467307861380711807790111330098631914522883473642406898968797301783945459999202065419318654717731980946668520585412020710130679664617954289806639573196960584526320431827690935637293312645049498686052501281196480465523098832879103060665015743966398755506310670660942260183271755433836761880731124318219527521017598949214494341348596506493013041638512415396276996422072923604078815406869508980152164742171624756685842810246641869863891049160013770499671675105104575879718749975691427871867848069113532526459448486150628055533821358368216233268247866788725128942647121531203989525858185799334641309161390467772543107087798255455108397386568675497611022542779593627893927056644483034351272997630033235425349889520783760400023090219724755681934086363205880399176663672082034712712450726656727916021097324349612996368219299102301744615126093497540769490458324007097171241020190846976477612162054733696925730676414992669147204435169925382893398067965898582266294877580097115558541240185919331997690547342457017326267195925624042429288430127272869507446450520642699018897288580764642209751386655149328436405757424956844653905133503788857334989453781022911802605142454739790992204797760974189623240954317038031097119511410091514089012071048715650468282044400419516430762205540293548944947011667089899048343317323172150253310198757747496147884930934692892644060745103130575034520243468353925279661994858990681330557048396167791297814676489749388345326977838475793443327180501010194164203908317835903551933041562517974787562930621373345406051845988722128831385361117729668159521972863743780475274056018885506363486011594637361037815927506216310390561261965400540956760953886323291812540787808593088059117650937120558715773881386331363765723677483980242730489869530510550639583933337683621586134940573062312062269878040183357254022133193144657247124186794808927726118995364833156845381597600483889591171009396975699900898777858861540425655585772883221505209668378209103116771394766601503142378583353464619797672741147428151325367540366642306537382576229677459375375442217619348472851151130484442571484764587191938891001296538205311864141613582396837824840680526717190069169447739164380903574391839435603002063480769839523122580216726697604857161285136346908714541933856564508626100020146102039121572549637752618816064780192259039489291161101217968671854961731029473226575414158267991202234461434005630940452085279423477030112440618487813524907778173333142912777075628227432405288739156498752244736156913212010190380090366191602550614995602108610060670337660196792857316515796426965060570507974794189814295409514253131362657110694567063034372497156918407986736227425954396268760667239321721295392351428040395491266093489174237183440689117477886115381736449387572732453810633293292305996222745830585064729795353694899256922543653832623295783604179660166011526561568868413199400181007883435593002275852274796183619291030283834082242813374949061485230868821682694252162998459792954801920268038791901197904123599138248362573907111388127170807968125886658734146325276071326502226561901142549978453000932985730373953350048180462204033307678360308197917399087975487951362902601843361667529953035728768562510874958986982760705127941895213590794627021608401294504722014590548721419601189152611072026311177330408254592730692429193450415275635278357447903214035012944834112695194872538749201200005821910337518942362997612685421675120246419638902460142407575677382297063996858080726221299541639752355673382395802070849551245390579233583303793918797034174584469859544933506441373116646463765829791134248705604313261995642530788123105211711684129355920532095530024720637213613171624683358017935449910912626220055645349597108801818097085185916195549584414658497551317207229412760659009380509128624750213201818620650512847010456446787994168036955761906361112907886381577140232753392372610492882498351338875523734982616734961333266660624055596205250631720921893189492650499921334756692223832624828982862169797854478562943577425431513697142502373253283998738448761817002852886212398688949442636921781996814042678061375289172538896673353168693116580229051158061197635371815785517177890729561720048246251064510074701591574399181194935337221630134761995303506135582251627682714596955908889216984893790437715407698278672162716718819874830992886264896315713287205743407026238624841354063192998714233713636975826958431040730715645853235631950076135788190444095398972079037797397596616398305726380745946934714832362022068385580086795083861528282498986310566801156642395871980613008236438976774135051330241792212417696215619704929429085381159134863208861090322045988784664010486099540848275573950743819081296882512261494585391583564379436917959175370933468821084562501897416747578681854280804430269825659244210281949715286200948746750014349486060371994511070866660946306956450814629477087776672937817311168439466540840748371024527922470920883055712232747444451168917521407244545835414915068718058318690089271898116914961449465611388467857153017810977072131105604852294463910583043823840445357129434850408637452868110294322586353125107181445872005127542215601682618669151927096987064591444740373711961161984319936494835118549571407700709240819336464755122312253225226586129116014139581666408536303597498038489212995632674352547996906923404385031644147625231208301452514952118590553905583225787983335652743439205897365298558946574580204790619419751261381044585322428094097793845231490585234288692223844093047714122595476653068975926590709924092654635362894444918204478751594552517138850981666249029602689628064566477607474909540244343746060996304949445372813019478003031826821967047031580838381601317924171250657936630583888824767945237189543030011341160894473416938343680202542412758374107142560456757537583610337437178266399291723582370236645414460662910129488870311776234181693552146284147695193802105156887317597146275169578840608099249990776276465471315756974032820860866669137048039119811938662619589954534459454697840941248446146155307621377703186900454244689759503295081041733553542118523425798136549403589227578725143709524437204195923507175893271984990076813167631321133244217469333607229634316892547098893456267450995482921177013873454861938711670563541164362897104586675710818456240653035708750679656176197435479272326210653276541643470824296588037743567989013814114533156146306817847389497019757406295896335648981414156335065243120213331883591110911970315959998876620614605734367999035539242401690926401039196326639235198264287626901646055760926828114527317278503467005856425017731696787449202477742642957042796311843118415518582929438521933506688335067258772210337567903861583047617885816393932922740322834157643273216734759850564688671550640422804010393772187512028654722852313423312848835068917600650850908084811201619915400999200570917690779219999410031414537460293171559514002909127408702732481555242146871410765737596064710179415888744652442854048107279820194039172810259377520193267350836176406462241191286844825129591184173721384598408096465747733483853314032117678079347415825531061935505550545716156574210950469097783532967027135948556278733077155928735407646174764579704151376591540818277642997867839515403964126350744102011587661682235694714265126226723614060035753935929498327319451472324609235580429444846620148429092895448476779022942308434526097721351243377470356379128800666687114187186046874981459331166447288398762680587491536141172988310788828639454829250801935274033201887764887445067336552754912549447517685491092571865613218226467613595813747643136908497451985681648458239965074668709210619131086082852042582589057611854454901417758021156569627024313538527593435987513087160857825047532268654297846128189178586809279272303853657727162387392582283074909206825595088640665576222594681338554305102507385976217768911344588316940974922084041440314987008758673203376256538655075198415557997993933775555542396512831172652851094398129293310565230461215701892120881291787402507891713218655551367690676317328149546760564384719599119615692428752198727148658765405464538903023557893294708339148185612376793148099404737918934747707571392591214619061576226956357584184839830324415250999692279962445707391590301960893588310601040036136328036971207891562503903697678764868382563104557481003019009075956414456494084009731260260383454701944108216060572836337255519796196084685443822019895163865399453936471138211228557477305174022789895996381150019072263178692416206816200184164286048089098729127678882795052614736630312931651988213184886413994142695788760694158054012852004959406121845600788073771318039091681895591177747304989730497377814886262359316301786820568553989563052699861211832718371807061403854123793600244107989480056264669225089633364712608348477515881602145753427435133289915752598704716619230455107101744521851840425418119674065733015634676730639161887831263143990495805790636852407570592267960020320398352843841460756750188813015821049210225052052184638101318541529923096202874098128648864616405112543177373668199169063783117934937044218205242430699521304897957507029042586611932033610516166676270534690177294676332526225972757608598037476980025975287402886952482501794383840695062327636029871071845155880808265045529290721357358464427158036335184999833029553274990145654966101235989182697597396016485545269184818796768657849300803833311842040764355832484420620516926851715465896358742607117548419069269679876876661957566720997396348263253112917864102611207730428896083639090079038453671437358334262369588640676368622613569997558259418074226549656685190119942527748031527416715389067540827693627250691864071862565415166343665227402193331411993785849611926433716856339709618286847778595595972067993074808438036347480537931980606578991275649204093858533240292510509960757881770042780583422420169559469391231039319710185591618890734521547657197587433458788611903884888387168333507807691474497517197929973269412869392708259811559630311264892461816984523775380724196481145247534521100503243290725366910196341074885439574141492894576358673250586544836579465146645957615258824396477316919533560404018884957985134007534408433211943334062769320247210132544977340878860213388574423799791555624569763084471290136758115032161336374681309885801507085367451386648597612732556795156148577152863333797157709847920292186531094854736577566471139158370168894204682308879666742663460468156145242460223433034517494334614832286528965137252188648907062975074259938172325700341759996081556484251908095657300614476880116951488487349097993432515037307103544961085752732498623915068607035305229219027301699610991889503635503735422276097787000765360384026465076574311814385612445817608412762550744227676663884925602822034584217732254947011784623550503296542466328238134159581506415719668979197787848615962235428263534710604178399155967841909982622836061952976936290343220149775122535307001362842210215787339818148632664467710507033323387370232869912252776476985483865845405496901192026465981284450234556673698298917960157032859862657394228058074774612162170778369338401677249535086008272742796157284002622283317283907681009158651234337817753470093813972233635575849761828729602715784607656174937524007126521346250574736418329137312341435876483229144266900423001948054463798938272553804120762227842140904494215298895445807111153354205918591648987036647419971946066728609825640746828559366175002179534682126256462565273698834136477508694448079941671715443247530192297637014872457095763600870879141613847524277801892828006353390147578561745531102316637055078117585298752580670786186302654361869618511044384058522951032236478308177400972913990815251584274464666058492925032508884626711006366280792938231906420400844317441464251912946624687655481377705235608395844589617569144804927056595119825662555803098363375060596902893464325060200088019117362216152090424255641157584386336482584273358755714058340958739214268844545583417391972731881642465396551992120711880818598358954719088699036940532374960094556684500221067024307860846920240003418235661655724983001772315975802266383196177097783836825125528115207217381432256357072740582191459429892578840867671100892333380836976090862663171030683800055794870859526245636515900282805464640974328264308699894714366488799893333471688606809438065791929632418852489440804158902250626348840768343559337411172021396306841937801915477124280457599310164616080919419312978476207896529290630061640783680012636731351194729714859472867560703669732325661265227160135538427152221433817471193877141513789012699894220710170054590212868898704068529521546622689221349176146959344581576771295099853551627785678245993759158515811692832231657621504115112730548213961470678596082910538807170946886647295663189418784963665143323529407309676497801753646818785590263109034539484458697610768841812663156718801362992964483265377333664097633060737977538128699434164687786843207945746722687447897099332465614204011473099874258160410600418167648571872979987208224962654384370733493856810197657314528339584127515976188209656112795910835725021184390181153036485861801240065169790570087175667616345334349783065280548320576230063023400223623889973778265914457590439925614746809839354317453233485454945583454849323877789414776788869953208767241150990447515074245008065608469237756222110920816677326041429589009423764444050104711050670880450178477026466353886507102546158433146757510828274575280609644150184281147330506974908147898561582628631613314547803531293460619075745296852021445697234228377039137978432165102148012855900458080354542551042742161054776344830930872500857197410146024332460374069148733826524937417629858138131867185511499101543384777485685875234794385776694927783083577471944777362203793081496145427364160070107667341977575017596891563383947266552557574682751970083848801039738756151184617834996806292010725426927094290407869526845323748991315734943682984308527379943767444565647445574927943914750573766684296163670529671298136490320444961240982764834740408961292202894515896416512147315851217498806893379788737876006700799330634875534863893536425748012699333195435995028253457389139393739507025409078361598273657235922903472951718447966196965955688107733144714408570855346650575105234337946272482347326692684425687452571951833915473791507836239816062035167731451919343547095526749658126997546835486969264204606461205287325153008036410598522808789506502147167146415020238131013320603221377505817431477983324352948836741172740819195246456329938719020865813171850749579009975748318700522716409781683321139607278380605667996178410537589687378755883344102906643727074470238219799382093206461373048051241460647812841191363178426546520102943822739671778264517033690825601923610589561573756863471681716803445549342697162702739989367135295083808793404507927672841961327813773930182007013786867385261812573470006606532201813568989176295601251739882471468101299282803920776496815969381522906873642357364804856777682493110309452998803991300389871430903713744255350564067363592842230527237988481023097753425470967280508706890713909881397523524268861689009875623595140772730829671531692082423413923983433871267670912350334820230979037911059799561764209110158629792661202029405309140245288707652590501110115466184692206683852900657927009925966630728903665440393715457877706102517790062584812533227171592607987125093273993988876158543862114383369950290089247878200770666938043418977326739221730960445318796794336409926725010648353629603429172839257868854331571037559102510068799365048149814402683319945539739277062761233474569691090720506441598257394371667192652144986103527665666019866006022274397547565287005660640825375878598421649953755493123347778342397649638643265549580880170951605608257863752663167186096778102650371601700454664689153409480600729465732089831278524817521730458389211646406523480997007987707821851743904111002155346663529859635082032611817871415583375971874890782710852947041021272845140546276591341626958391940800762425979110816208655481680286153716614799580331835117248813270390068027780957936092098750514013467736999364280957618445000520247704679095410465914253511354262022081152443113279514353188199777908343630857402974622379047865106361667546481507690719844939682222937452408903585500932462158709004792830505089490385607313224714343223229444580659005623055939838430164203079979031923177830861427923269675146131669629391481720145576493161342782059860080688650271429658613569223360630998476899573320996222050903045498067277443194378571303678532701111737540226498474299952753910952566602715699344282837318895989694569907657036285455804078909560957958292279777709912194632716672265573389174518706866347345674665776162838156848800279562106721954641799445916891595904685988886599929970717686498966281781993374644190483535068950702216934463532004701294861089121025065885644501731960911469830389418146872569335098046010819937920250593432174419811279428875722123071875410060890865531749322996104718939899647556430455504083613117406104738364080784468513631663728454524724470702016483881892626205831005023359747320701499871556527747084174606935678939964104945899981119006585390864800701738774506727568191514768001360656253528797382800308159540339263342748731686076421930904239430512143909151605329475385609753912150145575557552807528714612335549812290265403900056183846613718676006891941288346555909402271737571880405413571664646657339139141524177596456975044323178012438943072390234893952210431972390166091479017245412863125426471625198836896099202428508701644176173431912023672392304441141827699639715509515481280606667866005215680614060731717523194288017129822944252288829637810479169379916525617376627463217023663560201515284909658322773124384411447079160650619770689216687638957930391264655650214448676203131522426523132920038912749039572705091631271869842229710805779685060469013599050923043045371497014417321143659204115772129652671679451540375164388501350369780091945936576601741752232391624638491356348682739455315584984873594393827722801487108346531915477900543496437003829694225136613627879227532740193786757709726778581951780600475973865320772938590011048512863994573938893448008444688040561405111733932721535128429991177077791310139554758842197559555322569794448886315828778489479728057998744560584598081347914601577133499260513148861499583811213546898969291658353088215190662126590567734969023492924310474946340262167789023685828899469523110360615074899435268400825492274979687328921394782583100931557303426723037643808897413080546890683185939657032394315627833483613313457286501476782249454461536532950779060137444191583737468656338936588055881505077477788875779875441863442270069516113645890951856550438248466934266362367126216365378780694112669841759331347356438675000096055272733612726895615263845763283701232303753758400476100210699062289313229229342761754078227555186506368426738811311653122304386338722631759164630679399210929781595689220939444615594184422962356136817509903556626070412904507855514783163995688890094606443042018186254040028106031512340789930191711127377211479478606043630143147161145406543584034016655898859711724586642675953365286259257685921814065141061579720643797231231001287132577752311204234133829057509971753051614656677255056324447629649087531765404865393181929583066148180527170163855369476800941287203959591100853110947735035599074037732846803273812773479864177537027744403889394924183768056417316963280836030075137193958965632023188956369767525001882080297161902758985684344823397905331443298358189130222770916163125364242154506033229732406107732343612326321807659301346110520624434254220584387110201569136401164772036360832848415614696401042437814667411655194805845938203310998093403868273136550497422596439520581304575516456181816131017236709527741021705144158742524967100805965976922147635683187583696310847259378766947806540954989736184934129900710893257947488259399193239661813199603505995988302727937074176550252506126582815257552315921272456101656848710856626995541046141137173731990179534340020137531650672460144496179266775033921014421675324856737821601139412863204206761191317529508046517760976109854173754954895445647718749736135841723779929728567890664518896249954594678005224037074142843488658666463162003844849837805862496631570292953207655243217921964448962901158759639283796748869315780749790318211258200834231510921488734935306177198708375203370839778549084633842507679574219287338151285173836673276277712322551627010640572031997224108950170770680882100523565967993487110689004593144890890093035720436310227758515225522513817349570588106713310994314964743992477530196262827676537653727649748822053111185597272447392739474117482093648486497248658452134724746627441058897024999148131012152450223083346492073784135140215674722966206260251782534825675140040404123747734242433045335159592598389151592835396266277222599476838696290856340149135930556340296757987805159233434607379107961507682738445547206605856169637724500093400750350048350997154941897377028558549891890689122221847272155138823343767665361424288507973585842534330581433117469712802193792392074735232187607185391750177105439389550041163404720371838743985196470179032927501822165196970498834923100511369212113635025997109675990713210808270449772472171498756954196979969206852510024605360578381171314818451736521204592268933466332256785220054492045629765279853876780927352580190670175842695435958230583360546792644012268254961483008551306969201358236372245976336625092871301811964598104198332919576271113431557583047122254683581149949444980980572434161332605034009684516178378800352457301662117251314360110372201971137350072349966821428460000168844480448897680847221598477790231849148597517139906946933226507815533744506560616348473861801557976188320205363054418606051464364144884088426327796718665999138553568846242304313737995467609083563194726130465289019840522767265971408454839656117101478315427314003619472720784086366919947034655861697850548043349615997421118079117717269620469734832924874761364368789690641788791765688693614230240180303421226774183029202395391071537468796953183261254266355017149215866744319557248200916440800057035854738517140154059876776855847503575265324783002416332116343318020927698071450829562924081857362789182307968623822652799634784384395855471549109702364246249036594748860333982593563074915501553262053446171040485768525770226494499023741069167764912601565920686839416761286317950314053648749345954420093327557817329620542930770248955679040507336781277121107701606869740598195511134185960906023782643867701022640328120584605452631556360992130147085869862187102948092078708600228004324532691821977456543914034006718361127709160188733283856081925495002048569224311071037998199495257945035776401598295686622469906831022759332475789572158504694243888846804846816234298024305326243662703221040060308278746910484077515651687012770165506519232492084160151290042032662792040515972909428498155346480702641786285524467526929392671547231309757067542458961460447746461236059153760597800463162865321475149412729249194904802573371157309328388247782041362778249941567341565401145590591902598901590316653427154451601515034624166596909124023616716821755292760652337729906118948860194351470076683132945040747614189713023037204368268793584021708624282295354317203354365651822633798095140804203110551897590060107540770124064010031975902112083705980895826535533885615862920306683528188805057225595510643242945942349910218938109169688198740569063216723170801434826156146975453062585664653702155139976469126697371031575614212544973708998344176044916193102194435084575230285461321982885841526021754447282528939514329899832891833245801708733993899023613919271766799398064161442331167994989055908768769286571647164302623325575788499284466945342347569737948742664941365021982613742320875680319389728695522736063653999316237119716036820072463841425272581253383857798036189194652667482348557405254743048024846321596982691542455514788528637173650214234942453538923123735736475405713275058649348078003949992737908203681179668947533188294248077667467671904890087413054231732134149472525594673592475978956626838924224729030574947678644067537661262264163866855239968225223387374545650371967513945437960701614172715102839255799640361029091863184633286241320926074957736945998925111880362151648696816977204590915921442598004480492401471013726599235171252271807366082121141746143320196741040575683606799602862488339633922066887074142523109895513531776210549798389549711148851817292996147374472797353891366175437673103417506312236561667871658746975695984709993276767518345096899451628547449236961760610840836971851892061554984639602222584597412761344291665774540620726473496588678778588365748348769002209321952109820135761315485532614386933002861295144085652418545633716675917688780138336804062095343934522524959858185592622380257924257087791665303691924992742409965061739042612481088291898578426185075214532716277058060174636291689752298651134349960480027924487151600091092976376278074841019796270414408917884249508548565273936693069554760568531661073265732340805802391059092310153681330426199717596671442795513524286393600295299301567295902970463091975175426370044692964885889186695062793186026255839785602174619857778434861087227125151629491819052841962239393449089286570372740173669308394452816335531507626277717773598741009852440012129014498440426659228062554244680363525443513446773855980955424893765796732632933360105086445154322050689904072110974364169396610321121093675818772745899587824866206399622600373296999660951515475385949222586263495547121391881081956914749970721901973760094590169164954624172945190120004272106978453812468382382812085532489821662975632539142298095003889901511464512026230994703979652493906912616879507871971953678520664140682547295180953372212351089257599973363254476293109834908456375467385888672868263119047806032337713663969899075852567206587186794747907439629971236582278199900448089237973628396247105060233701095080646344479907101256688175791376624752240955448234245162510994790026959832297658338197738475113132913156023756611733568061559375020778948732348742148144514390717495564465602488193275164876539215336233633996661296243948017790326081336309568870792981188021715421694710782952947277175853610797418740446651143947724890554009502764200568455527669525457869926744349879180310573990222437086288590461573116585599064733290109607772798295489065770895207776922633324019790097692310233209636971865611095612871346310944145086585526072183187670701194555711949567102995130312868451114927349280739225735210330704793444987518443638630687933245898291461641796495813371546525572941739218228286997394051179944580937313180359608722802304804926154586810948998138246491816611667722080395120208898438216234554181092531901420796531654952457800801783815616344174036392761701054742220334661515595206097533378768998878579441647466476138847727329095629538148219038511297752773831470070578165834370610719650756889561813682061705033122042584194209281650283948169245069276831698896225251301379416098843553518834859930428252302509251861992298979334375525713216694864024950436569803693994832009000885007413748336820554407905333102872825149483551515133410142190579135273465101170914416110135425515674458715873655026830918525789248072227588452679422546964168833426940781025347937362067712310701043131719812435016778713773902239290279407945547991906625374005575977719160357471554634472595433501196475225813803358547552760468647455083318022664195105884480947667207322440905394824305107220394219723211855287396914395498843361320415630873355396995751805831879080529236378016382590233064076638168349555562794216313184822705817297428595225321506311256762614712454712699164967240513257785898930000210403250186197998385920181011292271925060328725658736014183781958788599944709177852070521053644491997834831398359631690495814653890602425291630849808703046599575974526895754744255952633595433243652461936162957663428330597470047350293392714487977837593224785685687054447288835336648852761799379596151644370633196699101549491522357460725380273717570160016401981837707413030225084896496182895376980605437842997163630557285454978478213669723871519760675645557302336209104573047961342973553405578777072335653931424178132138107006584008470088770890042065320334530461799479763327247515303540783938353676090669754272050284939239364504681806506476942363616705724760399421732794221657228813910057180446543655786163686542716896236163687582494620991289755550198601582006150259862098651712500593541924924754983215641954834202400880458123705399779224948559066215646799191629401763636462474150907928763597553832787841086008732306307126145649165986169163973720525478576109326879761467510929851130976918594254746405656416525617310619991525819399743269119831048336162357803547312680170061651893861689746783284736176685997234464775274800046506784217772305368814094465607622941255631870276323395072293756087594103149719102180692360771578010439412295679264423241392958110505445727869733191278240234955580444068254250589861311399476551558147168522656441879902921902228475362732293601257268901880108918323907638976421700048704179531839300005906135107274613163411484413479908363277369511297824937178442150542012143468974508869939394202105262658072549789361098409845589427304216978260312098011512916872450941789869777087139720799187979508851132051075158336109448973767625042377315454659032860887558502624133536453666250907720253955877319333011511436687688586176537682819941667317842143613598196624223906987533153045124355218435457177789749509426563314581016981141279249607595958732227593734517019092197165580010338842510464233759172227620225040159370506182233714093014229291300807939038175158681092467684705107084512145633984019581647669062337000611501306460326501962640304045862581467078281653603357967873928961719770522713547886532563861783808322967504968358867636219082802756266386442728481864239255901810990599302215423931705617657646785240026834549827799754326501310006451528272576390489576550805403048215910275791064948858749551161727812097638178544033453807671278313267805985888394427461284520622933358053201331299661440469473371984503332628475371393658366243365657014676844840910992104726214149410858473942052505133613987086975435009847230391534444071002516314455610380194781081380963007469566523892723297766406345898004834218847867340501202056960828762574606485456812835588593538865064814073952955578060683978511956851337854454901385989208799241148439773044093587560813870014383144096809739805362003356381373289163103113427965609091381208489070625754242387226283494904942494080673955970846225777374440697599123097826191464512356952780566185424664654203597032461111775310745487074025474948274111108658438467679867617359806671626315659973471612569281614154780221216498215097593644961165776575911340467763201213384562053915437427750169108467090328150885353525763090724053740490566064756054086792891971685066106528601476768023385475046710229919420706928789155816571868284963926389992720137614978783363248729049622903589993670369768591187796252398662266751521939013906395343011446189902569192471218201164466344065590865498059417331072822526013062226238468638822070755755457040015654198836251237579023952481210965936563360798127710719399762573232612252028163213856832896285125538571694568154836198695512461122307754322632242824607921448521293900006227784833219344763599558565313328486891387599792409133329283100088912748243652636151120636502438525847627017439566047130434606769221546922965734909993425992669222429807244261428824762894081733058582211177371092805991519329213788255682359100073180518527250433206244930269918322487931435201239262157278399330645413417236001249345395280354943724022806545829892668927578643144145234389746780127125478716410647512269282819748227316509715139973812121268384689613294263122967336466020757475606891016511905862285923384718301172106937133484551629905866975330561308267173689118746067165930142759402748120737601995424967587955862160786405199557521798586916138960031357493257057251595160348361535554549600388302733637625999857104784314387109925138892357035763580616961306955907380746431535255646983571503730898661616218778253915349239852089694247423666969954147077033793287445614381235177212666998532407025704760670203119696952391828341850317951591912369264075561283361339830849513768058803463194315133813399858019674437429712276723609999696478491186919643854223988267944500720361892624860627073856984400716344231630423176380816231599118274498968093128957758165674644663310736340819892346684553193253091560247336053859247497299695352266146833842008229357934236105248302573473754023807557735442640488341435016474832266475514042979959462067798299864493380130282774958309187342811255869547259306511730632582499675238026981607902129969933314634357398905084601618727545840532475828023229759601124145238777010375496433285533029113394553305162353624969454410301245251968574158067927548942234231567597522672837713442337915553112179902085785322692670473343544620736613192131802497745003644442438490744619986947736554028722366208304471154612254549664235120852007685473628708249996092013630805269008812059748134958094992174380443448748894817771243178255692981875916470387325891415330375056645487052876663561205955974848958695915818445300170283427741981848442157550148943282510748213329059522407746103572388857190890710205301023688847335229984125146329219968116350542763032664670244233571172127266599250531601107020425988487320087090609381020178820494049177153594382209815550696591256118460454446777543569827004755025717110697492678167547272003002961128281498253875088177466089977541296208634985937473093703799785680627656615660888603594864281070697564247146544416287798338174463701691281622248444253728811083986702924371323293268641356289700697215352230532144825176385057927361144544132742451783633789520639782633956728617831444292100875978121017045914743250490739735283960044824457634010113266498712907821334170242917098096838079092380784994601091624380236700953107755883341261103193865616579404954179561012927422071615103875515681979858707507053330808211519856480931821074604739974887823157905778251640635858694411158592802527904964548507437123718398520901958083465405831822073485987157334112335820290087432684825351254711547064913223458455444230028741030732926202967568190326353720586349986139349444465450772726134342387050682850850900764840034701922139356427736087881782280195239363966978942440426809578544490672638730927689360547185860280453409670346287571782051006058394818945133174943389414684497831804209069421553264212745159155534826479148174586293174874547135525268611857209873274645905353846176649859505290175672452159821897456578355277880955221550979680110827746345260216295209877249410342794009227629183124174000592309084726638802843591439730548407765759952349117022604657463507414484591807499423205888483948309966456907691067767112457425178591483162824865741901405691920844149312631808450468178801927595522519019662571413566678254820328964831196635381857984233950401417831675186997814134803689908863696285270133705284300125057967284713318047301747638349875527328353787733494920997982035481505539717963335417711101618892071919223056198555476792356616848763075408943539967346181382590349221009041384965452687980076740097058674703169347713171882251113745949553542118857138014578871491457814550570460359671752694820065376085131476479192107785153069870660712409774961147330555783286509029969581854536771079327182608870733832473354167663900523528152031743592479104283223870956391388276308227587747602159964141808619828329594074662288525565203873836532407842286473199127905261090872002794378248728195237332389903348162729288494324326698804423898357890543709790088417633742837155842784435213855028572008604107306104453795323771197908238181785480216369350134484657617486840968126591599191426489840268134525982785764654411899421361091445757448060138289647929959371708476992762081520540238227167410006647547949344576067238835087713823713046348546915286805372228286945780979525585714341900938192697428567675950994872648274297707838184891755655005827163432988136498792568772509665661371579886457125388799083882355510325325630208379219656592390265066771812435230978848041113930925832978507053223733683926592526363761866095247432397176737190040395750870159127662571891636249914174976426150109560379318321346832220165160491192658023030516988652253553271915030167975777996190390078174102364981498829186975039917295634110985720263369790312766201390253179943730160813528367599691104796049432318420699383240218611750845146670244970367495015615928720630145766479375935594865696811902590487658785683340027316776976996665144651089737208460982472221435444948182087981670349280547619444627643273937855889400151193313470898070016220433380604053352445596547700443093877934945568390413879195580931444252329473971008839338073332759321973565675547653940170749539781015102889246321132633229754628236957645949322421897770001160410992445661790415055459372997970970711782482778384454675365396556537975289500603607390686821950157702818118419642719018586520163443077516544930954583993531939927590972363946679654175928545251743788737593393860884171449471324200755074588925396544907703214878460224095942608682524794970388860220306778840903625688361438210851834537156268936850875559103393648413055250304674466038462289301703872180920761751106207907417134833874807236734383173218083666712375275293162292820110613625188698664122886829388737693327229614116994779610937293774124261523248593202133593530436028196833476185914382568337480116680223966155845746034201114904580157494977031307549927396702991497925110464159280697101215162022311496255819184921602471911180942914259680820070387537461633687045183560045695056328203884163602152501192470970272653036027710146097394763886980513354608280506252930278485110386422039113175441050933966731215435421369594482965808703076016463960292162436910466903882323300761235553650845507563756822683135723441571635053912500606214103471895083604295113216058779888137771332685108655037729263368986839997797411035216775921352550997263585926956805383840406399191484163901883204940951093499439712259552092949806833431618739319913662818993067403053107441068932064026572203066878748425460418243181602023214019121548196988320862875076723113447646706619472164536634910785557212080690042048215358957655744414423228068414080812548844558617937537383571518376006104379187562284917328525469596460097678942920603956395563764463263718541075682313615598424129456918872419403752982934489072744244006347305170068686044221155419218318967940173765573829592543864917952015289943884406717990882655775628155657383907278002022009725864378921590586587401613501615344034659084588047985000291636311244919405223451248458425952361091511533693722428388549692494189979939243862170131247168677832591812174604783168103272185740065400088616354090786053296898251930182431684613862172852335935082270039860596509903234527755112499274727869883475140782233993085587445703234679022068497074740978195262136748944686113400294895541935437297869309181390349932317733885505956521762939615590674079758288359108725344492261650197672275104467094301422774044812729413370870782648826299124655824460922151418482188815235836972641702327303823591524434809986673024568488058467594039574958586090707174955846213656718113581286979244892960939897202375977625361741864797990561804156118769697851821124784981042667412673388196895881011626400868976956763505920587048212191127098931060304232550662737603592993945300516709918249348673056047508169154945652072835334047531385979881051643140592338944385913594446899851150947691725234085365235816276885773288491496368903582388883136802897728685020900428441089154468620830171748941760832897772381640976364232873331199036876684463590066288467965344422563110209023649997992166274601660479897759487319728921353022731916792213354520843015285595801609663721017575216674244844877131980588256970040141110023853905820734012885191170401759865704594437137672486816084063275320023366061623281508344131582468545622069474137486586902646396615949616343516746372793281715375574265684284298013539573366494242371383916538939741073602302019242358741337978171981994794663450057426644719582265779520428109613106867392967470488978184387477284917430087877705294972723024951785059098144591341914228806198450716532770180793331444511381953687126068459938833944887739125421473157872324284680594259167009165198272978198972055713344255824300894180719012193192189192358966871872647114499433891402547818328228338862478974739685473290757676875921044981736158900125294165300023293257591131991122791708620999485885732166813481134223841591401352658739983312969680640593179510720878476504852517295059539690127277084363719389196063065562861870308721366725841312309746800932685093287831568349269424757457559192150949029290603639366212582274325990131272343281052316768497966096227795534037345095900775448450508965868141532632291385887319793557875420409927858034473115671717861364895885982232884825840145275628797608118176136527454676497055379902387109580881865592725418518534919140792162885251161691426507778001285930840042508004571385798974021279091512932321392555735440032506103459292481257539130967411858932008692913026197068557478132149696361406258099459856877436467113786069971870815381427494059973519020410270876356022098056486223442625100190979159788748138186519600917760398058603851675967066648876351123055674377621640849614444149814431667171613646164271748758585975137806786584603253287323146300781043717686348950045288467516409191000883557658436910572781065078500842921303850728830323880617490138670289100651552045267681518633024142923104240713782251708479811739221611226380809550514579708707115351343400043465933177251811073523581181020556971644628020062418111595501086857172427143721753885645560173808016476744595541001863815218123108732603244036434589832937545656266893487259952610749387631337747338175224166670324819063177564285697738777502677517667272780309084453997361733332859772446495365370316090654723902017674827652788521704188438864764554265433878854045547741243750154450832907244073977327915517550038681237927139370857854858730099927032177623981460486974949653456240598608654154592803637904397709945548893641129775118806063909148182847764992754867364806194962320051285282982035483402083110212230836476223813528954223160968561437049888852471845914938079812061739321432315583429100800552135535125032215700325934186157146210154445917151058766365098227667811462055251300874149010407388810493673583212512206823876197683345126916036756932027164376052407652999049420255738704786253151294816825419074139435500627600479541891216759158891345833389364450705248005505113840630166902632154722919791596232661594932392926464106291175779811407941332360027307842715137318716157018301958635110546364016519019013138561666406975039908797754125882539544829537134038428994761344859421893883612878865334189830504355015028591122244501165296698613120310359648357376409722530435930073818823509181899834897311637833577781613845331526733733441277309291758237570803931211125405719026348760480021965102506234272228331467978707432656709898235174275807439385137610315939806399750425085669491706346439817969119861037798008265102822870558422888320310890295393265353987487393016433941287640177583094747207031918978036251302951186014945936029673657764196387408370627384417284342929599297689081785763339205618637882181698248604134737897062576915017993150522912046019102850000026410497877656847846909060601682564207774218591383616002061450743233387279704377643428942590672429101151216968068823111272237489305679335098506113713231823663094321754299731272344281161381451020587242300595917148225853545813174377457486452648808281991296928768079870823776731975585200680724608783926277106367335494438440200970242477470701244777051698688783829609565140889955127578512250715177110579428958412373480287193157709331194859813112160445872635737883237248506622893779325884581974657282710188795722650209649352921886613041517571793647511857210477158076464530043037779537555887737948958607391575509594822327717368236589985559125839757741050903881121046782784713369991591961028229196184169911922431936023282826115434766724875767428341839153456402020255777658755783059473721406455034725936725399394004576732886560014899391857731752801687300358937770040442544428550474429521097730369558771573790621381433754088304485569478137079341965454803639042314160041838280380926283913373668160684899482171039054431338019141651215680022731932513187166650715515254403183359744824983344079181106789333825099651886975765553832526416932444772272857844828544337871077661876762711661523128846469849092279314440692914447562471916872679391206578513042954393689692934077292095712257208043309495534848235892427990437481279224057342038463054379094673247748448161246385257045830695094693582045662179190486986142977281406646158987528884174918587834097137924273170373322744371931234669443461177548792256495260587299469644872217423569303911492191645128116188978821131327646750654654704787789397307079570340637863381782159700445386896665129966988690282500916550200228366378871085024119175822228794335790108576946405558741538739049840648082787188600871997850094755269079318997931624321286577373976203096541203619486097664565163990887384220194188931165676065386198278115038594147221768030601346787024437865906158498540291796384457567063828369324365461110640839270302422863921172860338839720834079777962636027070025519162495999068368292982718743869777006717440042406881683280922668065313983707828123116706905472114122808473532432970685373767190772459471598764975645039475895618637851471934253526400200703849736566048784193434376541633658526083100399857365772136452246474880005679941906290999824474135746859388827697496678663970818632623903037921574877003000172958318213265238441914173033207811511222893224818639786721379432271391177835256180753760848335622702111063361554404623304334178245776075253114423368347987746546822655002513577023286828085286273395427266415895503554772544038692378669575337762937948234721100736543950611269204863569804656974147101163666395977105927039098873935490111367557310598784083601127084755524598932975925463561565245247196031508535457626655864362704013309126165235835195796142676854154020292323161113666482475078010196951352747623117689273523778650031683515041900768750288605639346214990880445959386832202012330097175889532698951059828832229034834322169052274584024293706541491413308276329457282052702313322056934190998637435763380867375403007511749927170253318356950979108105342410897596992218238148344935352064533764290147122044191846107230662276595352812829238962517921500390057446418705199975112227288481814605647618261789051612847133913314403390751445634849229545770880405977656650073377292557166766446464915724629461314573025886380681245164617277609086810298732276493071922790746916233836037897589106220069318614340728119343906628961468327012902677433988948790129414737932138903468191363499135216691322016402117676006120809405344995035693396176789975878886072606903377548213675525105055338758166561135717192047740782373907683400326448508096957859750894680803430195363810585530035114309364833143244499149402511952857005376660717119787733017341535427500777315520222390037793481667280579470808946827682542507937985566246532213517255147084701843231286372822563143247362672921930942769167453240035221324736967227889941356229615583406445477053494070271831649723569960285102561422296915494107494313065363286382885162689462634378767470603954658099897032646634217131728655932518053941626327594326959040347971545527505701796972520981231230141538755141164899744449760646496822188697905741199600349253912099317668559295213280732924098300813835852542467709241217376439687205687646122384133275713368163196510639433678834173525921414256275213137078320998636417630516999580857620047660431364665435293863878182641501782630725533267849686494426003811636270573258088987764746224379296044347491763958095705860390013476263402652182229941319404794394731504157458981456800590825170911725184944406597118938579288839497088528439220075746620455003158834213986441361387583905954254033854910833679492328927324924186197269348467639886679645447372809836619767594635224623428915762172417493170477771131433768565388627841639185113863959018309085838505510975494062243109390372378469429490223859317087987934448412031202954501479833313577096432945809546983313345831708696060027568862038578709794938386505289667913746764561831612898845974060920656213454845341012192859099175810833285934360292310840043993280747019866877398578489170889696981044842646618197478303616640382759097540755913794287900031268139677637517683607205638250698352556208946757575659382405560621429863455912833800418322944513637433502801193187930995478197857496203425076204218906267074600082992090334206431569000084760307914390137720622588437484859778225027275700438327894475885026853884102084005208662643912913705040450692060813596176446647550118393744938213584416472866233485278682559691065498818081033473211859710480979392420778849635792010144332412707089359076808913706680965649895418605661756999685580760104233226454609134479031575721069741183578750985974378760050956034226134671591937781002753892132224895315025481411743655777593469461018263645027520287639521915137035380833673879961618927884317330554507193728522793918608832259256261020703456615754796048713084517915767864396418670186287297922125891009719768815337667087787290115177678395213357256415002997827840541067575034483897945359790011125397821961993158284500430101797155667168821675415801819125375993578017125520020069952910334030433436078470130352588304079175470798206773600056893973143933350960105196155565808383838543273811504956849054199574179217258159306162366594785512248205432270877663037031192588895636569945113491128356383007831083896553499098592229324889900324265965471315499365071201342151379549928147119316571964103204539218548039466918940648213165464286999376692328603746582541804495003635904133407623046830826915362499084724608705059823830931569606790366199415781443177505209378184408618762015925829973741168935603153308450807464187965566596753273107066312274804138219497996844382680958722867107154904387730381610277836956506127343357569561554782227642548847203963479356095482603590534804371842930872797407877107343703047932615060232551095441127923169974478727538520249247210411055497666209621394277851278370335842862860338477898828918162637471710143969448047201068954808891035144262993889795891070425077544839293944380547338262955097355722291557903110318315217753519655069907707690629476628753765477432988559388512906708302768061094643417285213187195149145658344304742473302071130819199933623285930262645212580285481413410511914829714619620748641187751089904512507314717449263879097998009049502830697036652861287963332178895718549200362858559929970231041318302859178754759860031786149571851594192436818198101751905182641979137709153944554577964887833659531935036151477279534301076511257687746252014805126228253772807678100842596229523142557679959871921341523043725466255189101204442415026915197349860010973400907355654371945169979513366793252129082648909120934542610918951130940901030359384338408235990821559313513042540656520579686775038700078897676170397378358797684994257373054189110595750743151804595563549653846196183648815659709441579940254102384589926608962932875625230289261173142474395237157742460986114222522518122260443856617747846015323877453549891099419415162085817671826039531806007016655072695672925748831324910702781296646417145361438587501850039964945287607416301603519720371989695942021148055355137795693852274365780591801374987660089519304292055991003134416577522676823330653969202085987696660312236298173249960467207915261354308247142800366157365167057506238603247281550931915984598711620628045667819666567976389899472422489455668564015619847831637243340706225412749044502670370017343288878029458359149120701058492966580590427972829344094500870588282669755539098233078955923712266437593846313546458590615512492651844250304614895061861239030737391285968896771930539926741434499517628997445370298595969459778096548920811123499845928844420832591271262828177667647815929510662715904794883055094402715296152872771317637647953145279820559375364660069694636595649065321731194081997421061680728201520276840357509352346744482874687441304879605695970054249043017967095216645512879234414973489346006256739666075189049863116813174119801922273723300013403951083892199802810000320409119053043016433605942017553797637469013956316269505288172822234606064405588569149476489986221375891006528399952632348931981931424956507859849277382120570538147219032915529057489257538228186941286368243612768620564581124872618634038761938575828971058455216690952433398526877825734525526901361470660945688600081500000992607183230417323128007380647216879918385014351461214828481506831738046450187932833907479105289789758437268506425803776825847804474227627416933700863628378132614706859227482683183907903024351526568698291231686286322424429973164812979364732227268608726173227475359862942100541763470485612545207237514121167849756002878712266096703222645127300132883069892544383580574438109149094945024317272199493294243441692256222097012756119706998771406399974633327191198411285300389573317833868618636190899962683028101881695954480341519071657803344428754954520858226100473626328046989685536318718287683971489555050629014172127835011844027462073602094275372348297670001857457522378693898569848710855539105678921540704925226132825950524268335136519335696762111078072614789529408117287810551229622227571190362605496502724798402203307232212476282777737404029880604409830170505543355075105233695309787794932736503967781957764943509643719299531835283167404411068365377623843898778043778807273475263766497659309360283617522111501411491334524433032463960314429991288394327870659600904435949251881410717312696017973412090686159417126370205175620105036465776237437232397537203737131870809223688089994655588934895924034566764760925254680585167720157262347568949785776807883546397005724561163672612144586807783065481672138218739234622619946351267826199412966098883244413171550075866832288835383381383599734590458014760118615058603704296407689913440717114424285089638328048435921353561501718285016337065237786758229061606381959180240046433214347626568337190743234804902239101714172509855044310973431416231707344385126226995603071435506598350473385448618874408923888262185784879794575647900235924367993960427492823765837236470416201903170348344689247003032250959817984732860293303951138114317849063259218698068055096172381618995074542134667734094820193036208806417985133107313896465781615716417615868158550324709513212314303943785986993036578750272180236225924559750421141247832950894264822505234702732487973140855224013949280450852563018476867180096398002600039522811163356396360544325336754447292228254186145108597654794986997557079357184385208665603880013873666405244448501206932081586646664078244185047643298890284798079457523861087477751769124407991929101676229782325563734833981908554895176551026150629504217565874749464745192216291693646716469506099298680854870253230208519266447902715725385031724263112686359725311832043372680747384808514621407011997492101997172898344831247496790674129864394041541488547002529521419041527715832885606449169670101513667998614534856686135228395854627673711960587544133029813544160007350812383436778097522531057822879340227325284440811600028848086763189896619871177200284245060665746151616304550754939920419951918616609628456391291056701387972836727086935276819714888317642251711587309974102535080827278559333711031500111194511889223789796570213294229070375291800460054208595236862205609321042994899780823533665113802175927766309903321815959603166402498608627765658291011039918942631621817389215342028337334331994581092139407014676677911405940935583431502893957688930109324123442327037086322832858511938540887439705699458013368457928675300905144055973652619319496556276431833561018063038527546758999375944188180354066400629128137048485790866615184904369021918768754875793785103089511244867839729695342795104459346339468504565151330636717548175172763368445904526247069533519407559441070338454668142585925936028707887918165235981970446450201448013016456742841607511258244783363642949090699970184865069327331833193494298199254533841584678502027134336821133716334625318185395596902063791854977441384235931476146428598372621023005664083082914220336435106057114915322258435111064919755564642692530485849691886023982844497919362333113299634888509631645982593710311937441212191383916073516198751870698939050545735187190727759369678291319666717761570306537987439294606639338958049459502337544654660507942115751189363435906030495354936464082038298792777996586195631711169903974140349614394226026555140357195739727274031270527537572845371081200486523694632798030638860863200453263313334611661351110186437885257824740009370954438095315310398122582850168846880720168915699963580844661998593965821990291115028173665204429187706236307814764020409422810284347324532058900471625807852431518045598183491431688260705346447930875280326415756482509925004183410696560868259705146202293536260184393716210321588247517434275001758555163423866844187654784617110439822788388606632636346574712957018725913118474719113010027093984192402565640837179675547751218351835388152698067933825384956582591298687869322110319989506167649486001624871421565442175900842856410063924071398439637400501409377963791762076754149903967856145691768712696610022478653816209428655216598736967684078957454326497866777031797775409558354519179625348682348040808270518338320181991393451515040448085954129882556334711792394645752274067968703572657624072969058407095734726915863941408411779965659187882397309692823078584441408228841812879160220432889018627663992008120332922673187072019188211096415896813611636253533342869003293577332743071413980898423482436198310038077638319099434367890867952639536994828814668919350601514546048399138653860849959335059964724013400266627516807480426286027028598106218626327170911724408125136808931920460608316728350344547637622134564080668174487352887900321321612339192710880695027300116283688436159901071296800951084392839398613857270021073074369190494816073976866136530070891637163484417302832550034187687729670253228480286271756075010178030275078360175056701243175965704956262990895973338813484148418411601611408090897884127903217292498997631111324615195533209581490127508158857573501329313664808628665797696344793094857609028380441183951966371722304219997013409162643798561544613417196899560062831011716842592622103238174228442725280422523479811201090289438492722603144113385388138372660447737700380138459127984417841430569434937300778639573708545579057245265276396369140447945459408757191738693077874367423788892989339130973158710015752892230679764750822989334638201265586844023503114225213173527653184527363784654897567742595984109029007290435039668222207713240065778745649405811835644162538258991133913165603470464168834708220003044517622402436078086125441618967352202652866838574713926158319205871989340770179965834484038818267126895721228658533611220621210109003719709507543374620923060169643557890453824931312418649443057603778683166588707272424919060350416545605052959708849410286904969873861369476955760226569615186816045937506512577792306143066421861077663368957163220802816703889407627301819681244544791678478614033647328370792857305658506562341941088404229401922961331391618175241366537307461759611720048401088997761199564010697218129155174825112308657868954202270028523867036784832135424964571717678146745313723044318671904690110989982390813947807368294560727081498965401601853507795216597322844937021494876085411709324491784544795826225945447692824206286881916152881891435246099408280436908371572998617681214331634991237887880303353544638334129274492842495377857229524691819619788049446863443199069165372523336376815409684969491248640962183549499692562676391019866983835461210045068977966240785138935056505761770179746695865471261562892238378595317620497904081128764393405112298622875707574061792822218009187952079195698381616051827345972098822013573763977178789180270407105015182788873099334767185785045911950583866427838553687408578789689990625711112233127692908678746887658351029731543097267650834195751619606446493482094494334831967193616965887854354371224100001635498065501886535921616725635083880876110321294837668733042206240896087543248627424502539413268815209128387726525272394194342270824559601098837400884887784621698460051571216293986025310720756553775984444138787347474353254222328583626362133987876835796129500249334647981855027595403012963482999092367780660901347574139152213215428612311503623419564994447872536135293030442130819746189595227344366458306117997527308581561636685559884959344893265567683094787316445627396681325982775557188725381707569613535958301529314466661084192542535080877692285420270623390841721101928002088167143496887752871057182795101335726281106122346087275483381844694284896821691023537277821400949431866443532845123810189978571867970161526160510134643649732058005707311833696920253408724867813744444511953975925430978634896947171174139393907271406945050981500388606791069540436468017221043601688618588845494835628662126735136639204105346522452901215158808998846410294555857485371555296612935301639207252398943162372874951779266387612888428035487970759363141786127901021742120909356833912327651406278457405708398792433843805804979081009227958516758201247956707473493860055819199499110231354265119217566745947425292496634127499503501563702398436234937677042129380532992026372227453616837856465082646415694440776384833903850685940761016462992088369583238073357539373602196847346317264649708237544209055418373977702127842359499879376107717996652792434478510384326041136734214290422165067771198845688488714878308900892334708015201358014943922039455827508545532930377630698445965307104061809130696203933170697374062093679498749117142814353475223205150049880038052969475930184659993693235554440428399745823567351927675890558513018054881246318409413600712383732006295866987666724878577440359715404868702567838666410238712077266316130595026160934777790455650000217415158071274720017451745670640433974599656063649862373149539970052518384026489700657689771883351848622948051910881204870760805876211462870395847164653648352508376895530939900577878699583810699960556981395402595231960202181564284064181932764360124467100213373773394426539087257032946174142667325025594779638114496944556288205584752724720255140051894668440570955882430363022492446922226781972329020643712477265922693365662816085280025381742716895478425857985005672407661417838672430437668114361227735078073139051057607440185761214705136303860331778827394927026415151182049136061410445502111710264229083065362475765800414555344629954832193212229396799406176365068006336027044062713526350944147092689896121844474274066954128121560529296954239904585895269831061140386362815938114330216238543182477345706473541073669123006667837265932393953840080592994902993216482494521750100582391272585620167838791636446159935096757160241500464649980134586793545206967246127190444851894314200797422036782066830201317310613057828744721515171315473117243566028428412375908667842708880355009122008214376454765699049085590278752618936491870752054947311546712083834392722130094020309504216662132973373977655731644276376118904073668928253443740635928157082187651211146090396549369151475067896823497660230297699856133511816285258521818132235735831339241203138205259390620546987302011244286088314780101540957485803264274837862146424557336321957051175219043613332541554592953120568458787243292984542909475068429902314005599284735726196466742420063007251830463229869790205768788341808726427169343967742339771688294669823662450698495769481838926835817266770852923776485468057909221737692777647351940981404545916232808176884876086178530303209573365472934056656897997930708043014240429192094889204746816047495894963666365793053860466374312284369809886279587487327145647664389449147535803014576055547023006938489469250690534748166403939960752033156065463176462676173315485509971429756713937891503477327934308915461119365697598636058670433704266919836889871311886977863140196468947166670448561094679562845863721938917118014953663834587513115164494516676519491076610155075998879398956743490798677528955211665487992802450840553159128630086205586019836674748637468589440049855702146709208752355365771318518016815272847736408630718505078028247254120687632374633362108937434799483978847636991642436900955379353831299211337070891061839026786995337488949038611009958360498391344402354201494760170215586030158162940855149152265159807201959860257887509274138822597244835317362198230749311464929782863291254188407713753492353085986244061707367349258343342829113846298848359275490963878371103696255961364697214149128906469756372926968747092656450699675865374816675918081570343461326590385293269497328702344858047009732632502878098826602137620162733308951787172385001751741985776877209883775467818724573535817080408594494775088267364173281243859933339721244375689278476128038704519727642341129902228528443207555721465261881902927278163114397396694363088954886031923833573741164374535700074570734110243082437823103519872865985264846396811839321788632961547368325196423401736872008594653592198454060410842268214173297167381867614712886523149718392423620532268989477154858892165561048884990049992165511441696246775567097970367515511364584917218215586564912211850582659715217477012868259294936614575013484778799318484601181616871662781493770731570789790791835073222394287291228651387181935229247633121824811103723015928726783994300237621149685815902322970110519763264042357814816385264714144205179617665426833099264545045529109703013523587212711748156138043163551169965669445143744649516731134496915496933750736201439572885556106321599770960072482264843519028718886948909108458848551223002315675648087066174668435974513341283259714881103240507767114813769737106820691320026020319652925539376771051374338431481908713494589807293986869795620237803339297982439118588897579378814431868665650056884594214176686101018624463994878336616760014360172078827357693285074993881144409323127024902308436615436977166015544234348550340247872831808548204287115876729991725753762492570348361294884752382356551703396259196895135813147866920182763102171848256788275372161884646760503184209393217942181039862089345248384491339438059621074580900967448666149649929453551734879242299702885471832523589769899679356510288269092825060500421646340614335472219306096061817753060944712143329956429522019457919635874206066756150224545246485352469339195898678989019800627922686095217474671216647127649872464000678790830123435452670411925226536428572267218369133543334345507498672547530302738786259311583290753998605841033445732880436273864403226618985343274656651511925652340491699989484056525544601381651021394539330903059086390091499673177962240077164246745323283889678781984114548354447234438613728813927065304502614707755748166617201010343618356658114825384399461468219551797469658001910679811117252486648547162994219194614558620395288459683695702609685624291502064058351569962243255101269225714472603132907880556635473393355672161685277221719506476822001735038485089602431238115635161490488683597675027359831181033497455928003158659753810494110360195516445323941258896694240723108387089983718621185544753957404409742743435691679780219806236227147162781961969801051914336825485060673869739735034297309624281871900393247086955273364645516778665446025419303008210686582215355385846403944463830103561081219241292451641986147495951879826249262139128131175008507592409160431813090423311468813268475907397770155259027902138731015403677285334122859160292332448747262056978899458883124801182592444247754647632202272741790383256166836857072017096363940676911238116336185935575108952837830619591522793083639857029455661119079688602595701078432166870750863465453709190739257541555220092149371624648436748675954300402675072626866364931276895549449353018637090460147420591737388355785591412216403694256200475354459943232311738536862344001910028403247002205819678790834668971459464379366084886086459454241180016835659526524977196218334691688411150183519772003845715034845238572183470513307646321349643927720801073046288760073494064227775497105092980081512859939379906947357674232217466815147092602803106460370414469043057003862084784153792739739166600868936189586039029932212344212631342983069046959448037744771488299651174093705932499602686018546891165724981461555048103523823263530303236283569431402780654717368311340811225999165650995822123780526893513571797358187639880764736457150466583454720399943458637383020510613821975981562135934033381533521345130900352341379591561859545335169017947362272584440113936651162444980946748872535876998562988423649776918952890454680991245315224641770171695941312533424949885700667855711624683956902022174689276803261013361237251549582226704494894870632514102077488183936023098040767502554820908249631506894790737129139152253152707489341664721458482445612392402410896006408435511829494594935343634507746965440188770685420757319861470687265329928253366649631078758794998964676857526537591396886651968432470308930958847649871489228453722989201772511117316251524645953030173167719160768579826809399139763196180438182442818075113755029116851535922565503732706729436614139733378449065524004192021324463281457207155890549072640452694528640210895625261279595219858140407144440400043449523744870340448079505675042197486207314028939282943646635156281352659060866605248281653617910024521355984578701588953147108410383430999657860121638053246952088923340352645208294395868533862881752426953289084479423030473945857239683992128794434134953837599490273502595101137752375733470071792375969277007885124843378288695566090874777309218839458622362531418543852166635202720705467184341758952282711400481108991439470785251939643288252111793698481066291487579817554083880397591114606274494440858811089588643645442744061783756102931730805120303453958005203731067028844940689842887051603696504246693067392698955343591613974053395073040453167356011965223298008348575762079892809108317643464107336761008124056120747411111147493189307989376169577880655929434684770188211971478731036400761970601718818514566772141512507661243616547312755732744027287164429097766777432117606357584669138802857319499459347619551143090918138922781899069453237714863665491240384103513677099361397653190976397978013538570926842491554971997910571516693631737562760006244402984484947623760622122194190419106411741826089057063833227587961197030874221207421910515064104826214703431585802669230040086003267809252798138630927888537454630574474295085630417776493825613539902968100018322733617811370402413943126051955270768123292759179510683917359535310492179507840969164421105196835581089576715238850849467826792796583298824549961875176517019886387708829947626280155475835631802630764563944823274207357355128922452932727226641450671264402285167805707854554008961935470893948017272775570156297775784655220246932943201314596903058914062227696374925391726683234777430562259554663273558902306160540149821606350076116163692742276805541913500748371120485772470145785650245870697455589027239082469851079757340482187036355984169706841700612152547164992357983689443445513411000515705948267668782576027810656554491414823076556347702789386423753503089036013057310762722532074396391728999855596607452372014453839166437940991398349238430773990864228641932487027522739830231543005428208050590103231783790770340158422201636205501533567846367566606101077401799436823652608930170442260449176385225881880928549617606597520424137805341983362120466299745185876575948419339531661785888873226230368227172414418975076737538403473072535901722453017216759716617792068325360703638216884031768940649424977636135794720216447920456191517255853636096394640122827239923813671572883748880677698649779566616744296136712908053560618714393133024194619501384875394369186866803591189697256044613564839114443198237511969724079612560642833754624797984281078937795922218191286983288270305327226321851339304629677965713069844133794111207667653288924485632614589030634541293466328831706701492792525411562002607757666722903621995420694624019902158355374168299591476769664579009911911321849546813171697179882241707015952197636550953537425972062415643370530583283102500084773317368728081667970642592439689156828814784864562233509543802196900588981963579102369363856913411490596322726258511064232337724444757072429236127063578373389719387423856316161032783434925232641317373788729462970321272143398888567730996803712863440232845410641330186518005909595383400872912540547544654361417731696450557706452317916863397013643908735495633758878001501293374708655839567259965840095756290552226632394143384618267104263979493346661909757389747005234086196785028404376277818210482368897557345986023411402572340168569690461511478360623600437300965171252167582250771749206167189121105574384776607213882050879711254244256870222525651428182209874351232194846265780205629690136527031397458233948132028052923866917114848869552423645663606461878257854496741443797217411242739606451388755029905905166244130440005555567662816741928818070824760990951071746674067615514271693276322692369649397471393201108808719567229353857978217203555644750121778103045360109362774106218005610681632612257147338607725314445165165871618781874254155564823411525202167995655174153398279973090643355383954898633941810088555943152540979520421131901039282154611670650643972348638313514007376651242796128838591052496068750801485126929841172467660598694298629092429245866772679260995102186922750883058651344618985064770451228828497752581250652045492640212075921299638442075470751222630774127212629576475230400957527556841463004561835832757922222194705075686742663032361009072550710532254710090495320160972572203881424815293932323326953882333796880948941853851992256625586266719523265184938568959220912348685398948222499098598847295058141984020719774632002950010754053603857640054560838655162538072519088046535788990321949424979690328289908571159778412851496859938260094766784095595791011992753220329635803990448250442130458577552803218770737195306208902188230402351583374883508539570337783037674707484227673947592616635378882229448931108454388255868927886798804112610383166448883584198838484516640361309754189880636897944541879266092554691007146730027402543755170267097532225527150611664702073965182993366982050361491286928326599251237273882027099332077095253658305925444732198644013820386723556950297579338252062314716461622847743665711258359958580513723821928755301423484753508796449314574765053064663071277391923981693739462742199923274554254359041398007034277961037288639285167471706063381981941237949040306437860784855352595596474711869006446806135706712930074705663696849593255115391242222370602855987385045429355989591134104414485456328229382676890327218909081277081997696177807001615052180548317110366201024666778142808252541349659185636374328040210536353573474780158785425565594213264101152535109030135302568223274811955753937137281906334399412032689474510371611383101639188343699721913615084144699318253962681329209834967690144552028619820881302799363715962856365236199905048363528378834513335962267129324408424547523174219457278230362196339647058630274565097389442804795082621510834258313279241824153880182863887569808734509666416983252371236852972243331500630328093290867576317458391860523981488930131967954805697059052914418413619226084706308245068931701490842487882103805680298190312432729137932406558703391491155887381070520491602767150637653617758500940469744023253784776960959579321461169299852562001569680514724706958960365610829519029525064923328025386619523440363012532066223758287158557966626766550878134325452241938759139481861287436209147337957800640557624266606008677123113797875272542322871734593786277657808025180506724398529431747422746692899424596770086797458626975816352100232663428702103212111048290849388708535256901835344186661254625658938275897763790220669136761837461287505081632638710155764693774593954987047465320584325331137005775722760870366032649444335464642763211365337844012600290485420430769203430140235219495000241919397978507365943747300581070554934438065685101369027670328101738126869275929732110420885027456180927017052725945470664121326476702560363876285325565838536356403359825812275249133865860767275368272914078731356903814464606371527475606566359955497038500802723198633980754680244371459511444370759586613330578484553817617776505564946322397875976603015959760119160897543252513803721862656526361309781341272804405117889142522234859606422373858646853310424841960376932811960555307014006299670184958930915572382898972496953628110274830572758135800982758412074570840058451503313322430784148882013141008780717171486316796584780871966795557225016473778165291670149394750894789901738514871727214391248679362358207512365781591611656744372782444445271706838048985544944243694171116230431837898328473412124722655009246902038998978394094927017427478415681217315418761852806268491828166280269380035307553949888998490912590273850639614298255229881843210089485647992574592506502577866250725081918290781939648012730752222900876006668535926132396360968055624544948580320542784386984042421304696852761723089197132854584384690698585433758220689262802496341070282276469360081101777209563734941737575968726987409743299012072331787772240087201360955351219766221401400333469772538566554224988165434998213510884000443235550257576770173302876822467549124088427715477525855989022181803675371640340603583506676472179809744502318624160437870240283355681887151120593211828809996718720073730961873792756545090596018768042127906787806607690818046960226430068448488441740741518583676115209434776617488366535338360249657595531656230033742664504047415800324187450614140379029839413412387283626503022083867205867839030565504628535145916278349316202790662373831970268029186960290720922759277836190715374245364940772981758151854184177327472123883267672513078899990129871904592653421450057791537237481776804938662370638369118951470767710086398858832164717527701563392013776820672318254588243952594387383740171057353452727636934590117039883398507664847953149515897742019040104813412504619811612802173017365483503724226276954003011758239822581308292083050039997542014883875261748401591682395556686496228438814697370925347785568871753591456721813065770309777936485490708649673938843736626400552325156477013032400860619980256829125393835680967583786436979686648063078742040749304575102165190484410072666514937073275492609619208633053132863029396498870499618528445765742074417508040948671900602344065702683277752253978314189597958157712799105688976813033388653724312381165491830765489890506187655485196631487895280856761429755637629552882546369707100911109292570404379004414771405896908993076870676162196368265334099933259683137156445315814374312016518237625682815546990567091723064566752102068395820560377707320528539320783360205057167435203331958148128182447940270623336278230949850160683026127482737243408166134944346145571057026930003883365403319165121137103617479652366126599050612637744844219607117795054010035234008441693100684965333949815723220445973338295356281751232724949553743553278413773361361731472412353677982676078853131270920655615090683414285236812161511827666807064117252775882433780892855495886791623607237736932396572496969661699907485657808723280347707613001512888844934062800215545282533960630629859318090967859760965981507649428701598944302351483090970634415897311483487351037800787847882840162578075408858292110626867364977236043002446499740328265280804977218047967619594728350127387958421918452792981940259332255248483230020861211811912631588935950483897961796243350492007398457479059838224500040237463600239855970923193678765457830113941930479404272905216561362080522699128733306478804112202667318805750641574056026499292532708158423431630517616492014819046168227236228091354517527794148312778196712079037548909543447371413447572026016600025059324701719943724487193715826622737253965199708170476378463533060461585330255780000290378683918185207874438211531385550036776426569636035250997834323000718480032385301973906432253518571856756064788721736453377355036636678927503573758563171863565660875051429414637986138303745433741076538287818400096136549252736042060165798670628063457445323322499188374895112868320049119135245084460545680110079857846563939728287689832449797397958850121414683753868107435282887679803358962051959944636758246147445244516856198071446604814231582789053912599554729805409502501189640906040565070839313325540278152588467345317021215313078207356202629955792398551107542789256680878614515130279701872526204485840566876461274431075073771464862973083681521562307756780237743580026582924884245270440825434474083116257636033010272965122641815651331366756520129990529013561426824276551554953628839008201088274810623525519924552004061494008423375143545676387012392167011761504522401258144512586897457446856863676303182273307132498555815345460134687014237426194230391367537803179786493018685285939243696934406095094847940123498396532605008715960603275353001580886857682364350624554966394740031753613186661415415179926609369834750956812250820504885036267916953687256677414416933710941338684769464785951836795457210739179722170756909285782764072438673806336942718963866965469389003183500884210440901275078632774475989823750700554228930652316115567448888035842519684320219734829479570454010049017156245393891993772523664040444678408551689777505270040724983799205885629862288014703049173801373059708653367090318042167626998426310121600675487002001251807847359474822029867103873611122861658951673433903244277057679195720699624824880067452387526314314205879187337820575856090344592851177883725499133675591167298823950736751539238871443177624691683206916341828448616403038252783777949061259627988980779302993177270976554842776351538510146088163160537850833051689639879420695868192995553759057706075938173698525473899385303437828239267190683404975261205292014004626527641847665584437784995921055333589715200327545551171390187324373637636973017134613159527103363794973560031547743472490551529843910930283426070603974030201086653718836942966422759283525181111148961191467846023887255537058482913112839980641740934527326972316686570953433362906532228962698285003645359636614841211785700290672158768461766308342956987401358773398183925502069488882301631569092297498102477634787212998004981292991848795121858197015810980440334355837499993156078290167413784505202890974816779177319911740872101687995032512233989903337371218229133424193410705203006274148169509732148392770392768338033883414292543824914259195131419178290366640446532407416912895065777144117193277322175270592748171062630889611687073230430574844225812005270637528600914217024982503631353371595041550893664489203252614563766606491512874048753678754273643463412679337783658534893954791440281212521763814635511599386915149951180206484969420999681907089726567066187333065780365297706110306446266749848121935693338290350870991854507839373565003448899342756752307896865479280461573792170264397792849077754075714260345267357580220769224340247774816921601261756789256427636351342295818740347327143241693774021141587081297536399504789246906862749679380682082552191394694640225653361647261437095336697300074067748698927056644261774734682776676843269588053784938388732568393961183683996419141636987215172038914931976546500729554134910751115984046511940665896960126503989959593309419791076673299676720117884878007132440305664848461524847739502897173966818917957349305914798750141371499338502658238883159225125799920982011010590984229203069604027692435070243480249704242284960424099838340869045829968142790664394167254699280105648195407527302720042212212642417399781325644192852640279404376669781983979611197096968792299188251365918058061501586499549519621099211306612933962806468495641564800722408058385637385646293706413991568314811728131496964358056136342907482113967791695394582081145104962060865195157937879327750019128542484246795995922747937252942974581880021611586102484152554891483126526352951424751709602235643514052272964243259646030068673986888589774789199255773614318020409778638479750166448179770690758231067782675030490485157181404248434503175003763388707390212910098119286416136135060777657661403617220509855560203725671636359747008140044986895145699074135703090035890028236738788695150096677365807986337595823036024096605138959905067457616251177473524675906535851154152635052990598445990312911585562311759409367255010576623218102259198492345261337382750547401828151095486244195667019510057035669349895933302463235665588629693798131883607977708362127542725606398388789102152595707916874205912150279230193280389811027346744202962604946948779083536093643054356260825874417246541283673828524253051892375977822752995872543746370004536352806583715443801753070197224596445293009947449320573894051954145859605794416937134824458042462296262860945763222831932480873690947578305880299041458907145408556945804415122406193027381750080744972028873495290448273286471889182459792550823357517566591833147093977144421864884698778172304807058283748661478778893117188468845526191851861679877438439819628009439774222134670909915936516573920274722980793262438549431789795013450888536891629259487128164892378453394514995331823333896742008455065545031725669928022086766401141923811627964881786607753826885601057915585293168103611786186816044342270324101802832298042709757550918008891434262480548469326300873235434810250354737786639980882179628576220029674711677791160771237990682538800665630040108683084250598281650886847574768560390231049083168583551654451608604932529896884080867164601202996507348602493575913615027547655218409414930259237210926049196196258372809983452462825753351330190050638630722694834546611286065093362574733396280014998716475580985740527595910123975307633195772570927091619827125046892738048660999522375583485147963266331297922025388061596320759167506170814912760714345591990695282768528567165705742761433268064045362998600769876834569107765021373531724320340577577016781120161036437745425350713112627648102382652977904584279461248899912958576498136830677391580373722658779973397589196252406657442136359880750191243358970226900121902970270893377000449967190010315218733084084257825185447078843132734996031356492910072049879827739127597363741539103688763717828536843675116609448482236616252330575697617723589137507712862958214261629619147687804976104642950158452839043885414845572567418627898239227149285546358479200251234669921679040262725505135295910998220126311094367515000815933763091455255151186241488672024294750832751315945977424199240285676088821321883571349332578579071712132264577126699186945524046368396090511825310134330805701564541569320038060201481795338892422037179786573277498012533843691675907627558524380617434841173642812887302908822859057059147120103571167397827158440175761997244009590300719346438796163803509304259818968118503241575825145820895782045001398942753391463162520711364919554210938670319665384655117156299325356658954874372638198339904579104109041668589848122855906000761641486850822753561967807695549445214180760714400901248814934950121272012414580151149347488185592587618509240025565026707616660561542595012506261794765652418631282035767469914043066870377359313900815300018825833153501971065164622774279207863332240519217332343530308810981243724825518433415167481121714251618189747248592700256692678750674331661579273619117022108527823874328992926132935316518095806715784013862086847172111457715997930051210251355043867830773524088697899779380797341333458655379863203347493201813366590825158717593896794332419568671322739820746684083440138196397232490800969045070163956495970125444808184107921223025015307349699336684962659217223540502068284136862893213799147644800522355252620570464472845903382750198121207017020059306476428509630326687503667153984890166204731201327939895428844197191682167510575659136074506551110952836448968480074831638852365916866158764224654394767644794782407353735838309112083783574969372059770130573852187017040160921631885380194835595425482223858926827511954154536215329236414319945868192885409306912709058207627558230322841832547830661256313608449472976821936497427128155613015054498784870752705209017050241517566274516134372496483046360483654763107017480609356654922281377688545963771490987954654634295381809107455220874561840279545647240653170595536798575704940929722429702479479022878909690514871491493606714043922352116795684279260498616063235241582004930015573941251212591615681364828531207584099260036166094082283381746885583746721299144549299941531679494007055583560164402703746687514766944796568817808939403860056415626933704026227302842227119815310252891577203015700859257247116094861337526441114934081891918722167067794929207224618445612648819638859634953567570659415896337504225329518378322929568338623879508572466267932346968578402521947681010124054628186925929001250702764200518100002576559759399093208027465685608018330429158093252095958189193645581583863759071860037543919763051371559947986200861620948766610148814266994402140952633717451485868875410459088562325299613530644163096888877145065362876681018990250703790961482255069486836724772285297439452613537888890194843599774576621851356017085344879326125051384153569400355714549642761024874435254535731032352962647981540616346869084307370759635073721976194826902736245490571154434473509725364238453464295406009809888675054553846816456877308670033266916911195208363136666607500988101466363249217077093554323797520098577439986229423791897616859955092870707169484627514557271186746844029385325916080958754397482041842621007308540885521463198167372590529261137367014778954186510825884405389893150724680573352027564783581416572245022215027768126847655297772905402391587798426502878059898811790725958744172451631281390933896512747396206193812585645994658743716140484330803744352057403442424541520450433526626905241276745254345954148526585948265296396680327413916967482477885080353243069461431258058011661286231033256865401822738483152554758803817037688068643456988005578186032930897759704187668971889738351007594543086146416356566554519395151450226093401165750417070465350880888456461277448680163079844439954451742743051151311743702706585957263474717745426925386508774856075711503746392834696079002540318576332763848938624687622746472460571774600972621465083896792996229122246318065941120021555649087859600855342343321019007512506831790446345217465826759844358396920409688227045666870082699221032677137851895928724645713622976420022470421860773743034648071548069210493180065096438366676854508164743834287758333203822055174544949258162541331963926491711407864982968014335234317262217156994954941243393042568419874990615588265942441235341799223282560221259350530434368941237723239604143620199701951549526480381087609445836602597496167923718599553705377559833024175216794232719821562119490466986852278808735193545347510179235623854014894806853448387602724471392162671523866329961067886164118803653066226525915463062448628484816020593305096835678175319703355796101575124176380999259391218325748219529242163471929886533419044988127226553166746418178468423040852577069435140610877684919054622147115133466721478193595033309840612363019196932279137097728826454854441307079816325398218707655185709412455059338570159817073544458844302876395779968214199015507724802643669496026966906550524180632204007401497865076205177906539348860777182709305476245990595729477511600661132964725543042073355291952654991896347678090619702960491258817724384224954896675400447637761102268361555054412608317715180476362307907620572139943943097861775667231290087803537613600673504707260261800083060497634323237449354079459080245822780390384037404974162211058623090421208073610838509270336752840856191693095202487675220756322298304926318760680814025959307454904050257124878111138995097277606803868817460155012106796051122075103926255977872534826702059700273365108966679792709657423207225811973236614477484335021497488981378222652607792512667503329977314853961546723438725615518044447865227073242130880015552562265358494654841350393291059924062261640190364531675035853119348887608408335009024398848454161342174690258123459101223411558513628068447434625058487985428945553878974834256562435394269860438122306613285834405197780161594030274190031215177409598260512598443987313467113045524852671436504845672805530226715030463286477074702763647573704382487742353684517617017118254189070450486730136615142346763471960078247684970914608059836785865333628806900852824320428422578607122504238218779679885423595331285705379007288040376217773322866473594246460300657483592848964738860400627211305877647966625640588062290864280327115287291119715709300306443047011260797823083903022096290448848568758867937504953119617136163996522584828096177820676292682907416274017047006613496841945234077133821860477967945192018606904780519970832641881101395013970825042067495234191782834464836981515806400149556332721025124033076798791406385868738738034685795825908078119103095258170654192334202386266077125015089319615150051774369312766225601788385879200466286192111739857092201219895890923586221444584357734483929059265299297926846743950185079822062791261264350632235811712438019039050057372868156906910483276604692334525889116265237220247865426209375081740614052897063159440168968057386367544536847319230331471044714215563245749518058006337949191671294747818489254087056904844952260164016337930043723882143605026162124719384585120080678442337338083470220649802446071612935005251670886023517382348826651989611214942470924580794736733414668742446951938432466351726995715190475928208314256582947023224744938392457567202932614103029272926853677607754841960934455161755023538508227382825323177962586412364458778400566305278961978677663323974516067457376480562481654345492106400023229874433317397685820527246022999438910618326101607716541199261841971832662120516266340712525732614733051227725342145527680246336840468497108358494967165820180397573631423077868001085542800382212215721214918385218458337411802708732518466828854498923854177864298431107810660672039427855259692562424638628518221033090576579908010491112141807675241703488887944582149022761552291048145192140424633087479921651230165161777864269085012557244511000879101380121056463532397138550704381056387441022218295052343171309631178938746770532164697363644116783271508740992734678715051382532558392246555958131215544207151531685304938643026739315882037358422837579217972577312381602065581374727158104706110530683004854509321199107636883639157945208802412202970384075162887977573875055399125439029456171432486674114864946785685724921260702092959680998895633719637621156904463203719367274067609843484162960821597107645767113197176743532285464133484237294523187442964251304184044209017679386291177080504566587435763317657000839101023864193255535765331130392902994531432359793612954459147623876370553059752071174247337972356667513701117114746543367515802860138958470006413583543170973388349107518187353474018274680384073179527980331840857515694662667893435375795253266233627738186716194809473078269940323931486708814850605096779366824911047963899357678081016534213499650402721601477821221979334292390419653225809584430366318714513765159621725486113483430768698227158436024539467101453253561732609915026951215483463021761117584990574385957508320958049206341942853466610415173563584545248743325788822784695220376541142380693966990978820694264503506279549054088624862714670643704830741611646002570572347658739767520886251181470321052472885136847083530424909415408757699962743557804581506260604440561251981624159444134486025073342629558386621025804396795317941696561835433537758799182454645219009882483116525063565767630433710833504129380580955092662976573394180698041567857270697167809955428605619391762852547527770227707741431678278143218705115346795451818342395251260067779612616389417131798273387933992056895829333367786754325364941545353325770066260391685830853997685564195806384925549207741909927478033149540549452356351346236399724599360354416525656585640716484729319955825501416368619591145198928668881479262070189953098756274720149113408634895763579776077870532230759615999371126624363568895497922145755036850488649746867889539192604194711578249704961115746244123894587688044454699092862867367793507236242533481765045874335084879971265454854940439943570502625125507787480010260936982717987914125017412467036039802053658829395426137754796007063032622334833321127426596287803388994504351581289539741953798709550197553896487020892404693371584374144668495265066784662414985995888875752441451791560904786840471449314973877018934371568554337307823919491223983689017495389861479888402722505457942393513445046686993543311619330624170284319186594166452593654048806549180317735402728790538103417864892606425307040514503126739447993370869639994132064738971135183990081796171870000782309289103744234750926816718701726815880654934107292917077388331422721578201622457414725335559722592493743785661089434644044264697643329504569773625566201571883584123877895034452599009575004364954969892527320675531455019628200716008604623103597973628194157319558063503871535186925310622534114971972056951811522123486037285709873423098418448847383665453765791855813516242168346533508254343405944110772552881851968627216360891278259103572674390918684770329360005090740723998438121336464739890381137749568515251063748384706959526287489951446659288098325085764047308818040476450067220055245968776167376282204522170204380870176121312156975845784931626634559205996184089409501642340274180305777523818382919022206551362544425345217179257551928816298600440964966799282975496280616122342105899513117166810231002855628344795072495171872671687531765100699228249264570958438524087478674058184665031495301727858877648876527637523030803588616210622457380187528063470400483455640523894506702409397293112530155703963445604281942687796447955164004939764162067917131818703266154889936723454299305682690679438923543057263018610444320553718862082998080169522917681521186473049450713394674274773094151192124586250480985155033856007993811724644584540386210680929142803220581527098683491474758447920615792277094929705984116641834486234712524712228855955900365280895164973005134131732946997163150803189853794385130139881231847410557403076697532136079662194028860887664037810250115723596369072585860427505431286164718155699413990968131583413833803895652657564263517402310558006794202302765330527298503817102934409112815387915957743269099252027033500394160544807029628518951388945700744267814958854455720005017377943407289949410079309377788689349867739026705762719286317607110661474899290478597263077382698266807677092968930448971643649316080131154021559174990807162523061394829255801238430651060809400841343355126134086136646326654663845281109519831502279366241669719503449562915940586906552959163188815384873589518152740551222763111120354752309619105832797072224250345364625487274482893904788915416863587887808004540667137043503881291373562295641705066975116418744124553218293418790285999056014253866015730749131684858394963364738757227320759782148608700062227488193419272940245985113019664481653118662991063493163250546513120224982182244596982121575352439000869603269987554978007050360334864408036063369018455390694717360534068607881729426308386638024287225619469838163644736296352936834712563336989074572800831856633006205065909823782500883284048569565211402282635652203437901652339120715040479099573570272298160316159813434103665142755033896013213089589183665729014179124441750603371755647128792964359391537550518993520506605112931964098439077567442807115401697331118036647079847714160948507865911808128358645335168792947131848525550503013109943631228763727732799111686836955855462230867696607093632593705810502189920202099516933372027780026409469223139056285086383905344608019790775068990859594787785813577739677542247687230290404287253695614403439701531161686157442540575390853913807133704782741984971940249825076668534803871349830560584118164385749993272407152467050736802295476305959471997861649921427234188034817109052590089610955351983909327571716416899905550660028890864589638742993560070855336867288935376709714278402915808246999302881582325979016432526097020954058191843658132681579736524826969358196101954444477672726203545070320358075736025974644795192629908411947052088549189789663928008053364833447419168952272626794110287598984095179684601212769125290667850278536838027546389843094430431126996925002767730436087119891966261650175094691950415455936280753608730474939341992357014834109419736049702954657166277455249733490453448388089524354631969955397659534281131538994872434334606495802701042416829278331642892549333938207939144750026491620575855433934540683462177155797480184635926345287381256589030492149483003830603827889451670954006357459530123101758807442972169526584015981140154568408861566661692994464884961896317147765901530951157328658197013351272770150884968751816341966144667381487749221119073064445484581781931252155336220761826820286521927189264491244885025777168714506004982748036823458428102815064878470483344976452442725077131835588200552236101291833856007539033409242273449997859660148757207336526980612583525364542861714480505371765215172115472800819772107097607502928510947156229452538946406247796156641443492701253959685608827993372259983439177105386556782919860096749225284568621457878733500820364497895754478523787106179915422455435320970558963873590728821029920760527902571002618033651456165575886732518118874199476131201984515702136873076396613965715040977208164204780954233344421373568554718194829057475831863290856405629923415361071445264923529809472702178734752211966521081971465782451963867025324356894431342114106316638416594215682075049936118072299572577904797069050971296293694251998149012807664969755398425294208075178246759944664985559062298907956962288355545153137682474917895268038604058154181903953451503696291652576420845074364708157368090017026457599187595844936893553550501734178580967815671014630668846868596071271169122919761688524777467673394861478729456524099494106221163777024245636437597893300804310226766298043227805352382045537892781202211206422568385440572551994488985267961870045752420506657355882081229451441355225890725266697190131066684465054433934319063380499070713959223323840206955920537102121082887312621396433861759132837247960625406823830694240082999607727515228785159174284761472015524710114029672777937722587389489634373498608242383414517585185851505431884885043654426403451057720470679159628522690381399411465260536833822956696787470431798819664139325522721440460300548547871981438817247493170924425258592752515211541272406482717712832420889007391631838043461532730768006045370744548440397462180700300826319712074195882267480068422300524468635927336133871470245543405589028474303056271096469668641970024055776823206400873716088562047692112725060087433841382836586755937509994761210796459523575712691400625359332850184471946551966870256821225778994147077310167567543682454100977019166286338617125709215602048941174788472822282410372468066415580762448655058929877606500593492854709839846226487103721396678567781670841324780159485323130790699197272032033822484351503092343240384558550811156354874668590600374651870940003521913830444196386288965017743610433554534257457699704079726906284392375968423787835101546515920169564813870306202656397676494838413380011890236869435107115390438121820497427929417362720987661508600650762324671321903216642388911058109249917463419546781808047483739154141754774873871241500098918660956706544595877051598976672406359897984218292349098136989204060579857908218714588095110281297261773727290788904063073856843870230597353896234742580051888035969286577980493070551836761178501667440032356495237666114065791095750627877294696015918273866004957485656997069869225431000407642747096707502012142800630273404804786309580229360362984857963551596249714399213252404275424357356025888834532219706116100648530891067922255056833856035800957794778707343705685396403841527280147306569158841408813719689096699513912371965934396305661392576395022008664099498393632769758226408366633849934168144529939934675296238569854372869182017239117651549722940212168858890672576429089005311767361372725716526443189334718474552355302800123984714844164547086321139244344679538545485866489817744719594659309582246166468657084186971420797789828079935323224366352652755990135816840969527372994839798070262491263605839162840811341979303750513838757032228761916198163115722314843935886315432640458751236412052503738052304844159101161636718317423724493340892926117511149399377283158614515827884312090871086658061784631693749197621275637606994549982109236220061642597656994713697927263924717399925354465305560982480927037563942339801850392681731041201701771180508877246560133911953313260457241493941631685843177113978696099840091439441094588934746387236309821511897048460484135222353458791156789542054734550251196231416182269474329532339865806585242429326929652482418901736282718570313689958202481640796143181932141747821675336803971244739697021442050902379299755450335956195786993701238517181764592061617078511147140266848952590049501745194086516630707792430495011233413361013752434118599074534273284087960633081777262822669399604259365861542533471701660095466767646326062647583865521369278080278162524221252378419942524195606564087491276372761202303751279414161646677342183810673142654902892591833992151131946917030349628326869486641246116587886772639027800714166141614986901739406716324508923569580809259747294423678499838928465476058356465639955458601551611162131313278488762338479578592643671812884138533196258486012677161421619376657223765809400374873826861277375128370696313350891076269597865002769906360610787591579571944860290808183196751118195104345603267316204863473190211783924346464498821971901888887833902184475871036979582177307446598064464748213363424550363536952757849917900281527916055002046554485979688538987750075337418879768124058072936614279148516063795793096052239014539573927554036867989264352288685833511595146304595789579308468249552591744847594673586537165818444839054151219939874566841236784181483152244117080072836717088644690475177292380588683667836808606456394159605810181650471652477745647326099027300126806124975241030670409262725176696455897078004123847454760870367296220300161399984280355624510421677239829800275612432490988802084389636326244060689504911747553597140836989922226290033980661927674240170861599824040232636682417480671235225989217712898406320826365023511905341254394568881998401497117104822051569029803881299985932442493070061047698031289889435423696441357628723974723086688711181562097924656798410116703666044336373124787058529076741235245499001735819500489351314671477389318086509114431462824299023479402363617108235736213569696432476164257160252858842477623164065205461165685603104814480930382219292430606475113076356617827904083831816158867316641194244921278147943416572324992229537738605906270877277924262841186975765882800544974997438601448146371753105966539554816521271270560807322583258579779123035071313913250834716455877826079502683024775145255484633135615364026125220418410146023865461056295724637902797570494123007056381355730278316950195629837920236133431066996210254577098998067186612031488002177604337262745857636439359566734128695841102591272695383180110961245581840796206420065561592870207867884946428175395621673657290905064490524407066507315774257195270962060259007969681732438291762576975913424350664982931055444823705133325696011380708813242559939969859863898823153982434412725044010593475722036070125547797458262101424799751720219362048658797611523152220182307276413014391626793440358477097754995100939619708228213217784917965629638910531232276554093212057593683814934178335651626251402543571520636459386464150869925044499260523866331695128636140091036402534981253742238145521775416227166451212942785368724064347552421937421610123087235627225373499623192083428009921952200841087267184057705812235561099821850814452501263471712826227715376426614368083889028404107364658089244461245799555929537862437875072867214998819247990149136854901467180431809040949792404112614610730468802769674186761401890939844379211718926875692382542915527144016521200681937752263132940882455990809983544332371249234447906610846063815908673260300015333347058004916434487935694035332698305765170662265174840367984645970703454821543270941774105654100723857496112195018597263909394344763141472196760701042527197261390587184666947007068012342463002596642763738775814547469761827541078648827295092162637734851437481170454794733871420263592915617482222264869932193533208646316135854612018824071984968986131587669307596638450907889732531236468879984149687985888568565183754994691731276138036649081877011196666634181291746197396397029829268000789395064891263234383177111357487645577075454077386113837392607018183483717074599447384786809255430433389151390175531139001366116413723743021744834976908599448564994153120704693745502932989941962495361070459451897535650282335678428602998638063798151454568037784315026969615636891280253946521214498367445613393990565920084834018322119394240886969500198007167301955097187167746409921281177924693814074043160763345018246350515459028053797964425155013146512733933128342322253858014075540534242865772139780506503237701709403655958114371180624781271217792085898289167970464962920247183458611750168931176017083935292922200953397559228548745877293170124595303604485359489876933635918982285887832906397905480879447883762272360513863654230997320261730761052694306182459473375122161755511470474999316608556634293552499679549471737154723643080955860122364283004115182477895285387554322616784526080674900694228155889894015623724217616668645871729982425620531597669562045765320226860560586331257872364473067428048185270998207687845378261228453261759744672442156528060102593104763449089430647967186122209822335787672920577449507626522222128718586760762875434084180856947071775270138788484767504694471529647278386024937310685474647468911970684248062837638102066163718556346123397326143238917026535785761432017826427463576133954108041096751901072307514495278396561689210960727015098987986401416287345151768036222715188884056485395009411530578253114517735531185255565144097229258263154117774387729704091766734329226152720938202884429357001262623488634366198030978054947945199921682440239573144689011548671476026713047678255412481418754979526665943313123561518424218938406413774140449816771924604986626881733767608405056528907240006796667810752112280504282934184681368370117191506083903464045806888925493918258318998744830346446702813344345508668962768927113365831204552445988619486806614532526687581043607739055145255146862568635023006674766326184082191766685869313637757582643824977203326423954913205984465291580070783287270158883817372090966707251205303931037830994383243803135814586668009283150398422351337771888471966519683272312808648728607018419054049368590535017427798600555444474934624950934374542690969798918647634836130432725346792317419445927734581427141927662986671389999658293423314339201893411182750464342644391191980392648471931368193241996087945916227338786244566032597454835683349314766234412672233063204887947285382290564829199254075790477856536845532315883809446349866801407872639116291194530006387665026889552525588105281334299034586640140245470408118387900776841434878283312346906404250676343529041897331984732175159802565794358978500746277019797937002721702679400339611079696856286663252793625040183553249240771207019384387647122223038440940886700806884142396703073664794854084597527415228348804042852052282497101122710732972552583184176671572581858704884266435118824332251090495181566272502167933618633255194444357666828808638892414703304708672884556290849575557982791120238910122474312557384746330702988185676888043626848086882099042951654199421878961057712472118179744630723637383923199217558519978217887791417507223591707568223882822764118526632097317099771841769561908934226001670508101054030790633064303319163926199090179183556697375523670444962455901192399542849727265654874670374529126254700498961941610904896241708869089877247482100544156986196173023741733544791738735838175726323010661397760268293809123625653540746279324426810091660130773507447956837958632841262724112264313679899555314883589324542774369413040186673681321760201234570512974390840400561478766446491687555225881976944353827612119750698358499111815282986014346344921971912676005886499589667402767611235216419306110191510951401596200572351580445686378239887721190923812398333869830486057756542027415767596059609108019890601144452228287667153075794461920805389828931006971332720832427630786327201125481760908961156926676450859332725590614845478550859574244911358978962389451321741993808831341104948402333188922734469026465761727929075092033608824837217370948535192762357704315562511237701523133193732891313110769621760862873535035276936846937032578928186827175483947034566750011510282087194809345419667740211492634179331944403790100362156626408796263222829514017149031022743137953949500708053350614535219896708052140210063430974171164570202057214507420113074615737898494097599751282093991590225023674014044875438375920782917435691310146360619987288635172926686307086913010768178627383375576780529742746388781302335766292268912904969992603508984589646758363437991189461056480973411163892096024010371246886950904471513633224279958077974972449814270731634914084315511903176436355365383939632207922932495452689792912693508677693261390617120396600946684232875619329337415092624908901500548114511532563199415724758676373284703205790287281643223760426380699705540437809033694866000642101706637474945413840783717351764456978812024495463484875806349919667060310303890305135850768821351673634246887129668823234381100721516966060160772114598247469202342576393804514833067701467420233103497246688717383119536813682746925752688280740931820053088468681128638756801880779904886640612560919357323572372972660241537006227175331988739190968399032906581504790033943586006058310814130340739367488001942472920853436809989375923429847342999175271741079693643525238092232542015258885943280464097193404713498458135736817726919667516887842442640886802871149405046881547799695710583941410421959128438260581216660784842225924146385103760423546446714623122744056404550186032707437346134393865878888369090836613731099819627914066628593611332008871053103710663943326705397649201600464963994423963958830524439144209910556855611635884090355831731362997410652940094488390482647433031984537786169529782572247360342683560140146015861883644840411329891748542374003148780946102127443594747016773958219967803328417979783211995730928468882976559615407040225398863027422539115318546824268799750670073097677557288618974603995881972001726585544292597949919886857616560750626308384681223697546817409880055355650314610006938309343706911632709875810829199002085044071094068985138626091449693352299803764812335583156965347251278914637252985893006034972122749810529952610303067097292302811581219674469755784490721507111727720618446863304058633480826515512918524110179884593723000638130849234533001521955750419726906625622614024359436761482566810725928389267981756663959926479793819222134406894815608330222973505809343284946294694717792554485094961167946015911907908698645841670280918114317923779162309067432289371915242934850933214798009112057699350036764102848582864791652594525437010581552859360955986654893824399340378420196280182293182089160846157638443643002381624824033331064749322001019716643321040020169040902979987319146957404379540593805376095603328815770102912334629900393685205241415892256251588041514234568444076349611264027074096442924930688527061314994313203881952777652188674783863604164133808741202459839244690071866500241722330802455420925728187197022319888069441239312030096216550428728073652768873677401833888291423523581633794432561689535735073564286195524309814515131382315115900446429587227856491554568153262837570061058595332144744953360848084056489542465713372852152870115321254861525449398566203093223976182653697020337893247579560507828070944616739258289687956522944494318124112215352109283675783154086879638371716218979340568735394153020063516257713378982981218497774716749528117710888997788347921521017329776703366514208453286649377347522353544728602777201416104365564802614497482864328337212837622083409349175763728829525976467383897039170500044429282508440100199966148357018433921818351381870797185822451184675387868302195467380828999810209704322158226342606450354555816888161832634623810910145187047049734596168258113371453164952759095940263139139695633370548584258059170640728511488202158698494212291963290132064184697839721676033272137524211881450377246833938662770564422521970846203880220886429907055892155836925544870711514526290440000782647418514324348898757097913369911988422267877634214333974925927590539352334859119905607188887903284121307979488552982508603620546764369558517942445528043048585777000914515462687737402750611624525576637368922300806403016433056666434213842634503606472842709127603298811992354416253431628377520134204097702266325377012827203843568034886900686840468705945266890305834948448841754716583560235816519300196379000280683428330979091706663877789448122817900091078085698437994111622186218802391528023422853390452670639984262499717211899799479865430848411658698297364666994247416559650122363316130775103505954255209759044461358436035845486593873195760569300670435118413202408541947619483137584146683926455391652528980455051546068401814748821175550191398346814022495350881417578036297694460988050702666600492538319519220793011325891078551119100376384453622828186782462125427444255392450368008625417445099376982057223454445130701639430102439901233079454726695141882817237594497289497661190450187381430438180287596759694448416217020545747779987460458427916534284872990411560633013423692541275400775091707243731440267610260528116400905463868369451968638038322269117968506778510600756898185307659945203040226639375337699924070847835594281023958298455868331548427380132380031319726089071799213839313943092346002111236691406886369801221169005030393314102982480060207811228953845373581797280809189603885770369929000678367231203815172304899724650591958933931265195438731171558709803627819208876554748833381559668470684294498386905246902452456683946324488471531697972290642384390665028239114730739368246743622253957670292704287492784124063917770494723425979467530677110510223737631830184164437020236311362714283221145402865468351062453500112694019502269148087209597489676399266564091524366608390218907040068298466058617440733796808714402354361713023962695411501101371241647296416350633194542834375201826439181932897270771455019127922995207784255275599763450670141741767340560857864004436148230317679356564941631757308644023044918321789675713798875773952303377392171095409006613966448508371598085680388410830198035451217770047080383365610302487470531499083517740894004965219554425536622436019503108952032929102099771467244915286733191546250647320665477203549252068121697245243964986670526815974328382720963964184228020882564039877253596414272538703086774041401982066226892637512629800827497067765941159912012592355999977525905484931535076420660343787728104072807654733243015418911914723639162910450467226165426697301663724959098919315674317838139965274174414035335426550520701099767761319486230950342029698611602219118691945961896957790904244077196495392040239458335905685576027886678972883489862975723447572620881550229222474075448408033354023827985891263901031151360299875600186225866818093675740442372163997741849232445751210633095106556329570295083879415406031327034084083265595740761565325237916359348426463668502512412332709359199236387622162441792687379680929285162008034536329036630854073630716111574803794114709103774935107714197153761439956138179596112222625648563986059903067694832859459642534255014921895522765764512443549554171411708519861264706060327663055918660401201831964902680572657382762403944653174715677485093212209567310161464326810915779166062460684750257331243749548692797215007850531193690960958979307870231090508974555237545943214284722016471216108449960023569848319030631536701655474142980630288389961318344744352238490918700820297695521895853370463370836521040981054635646670875963387644056682901538761680156342753131107512075794247746505284573407355807136531195707069417796688597496526057083608610919194331984547386654323344588565190908104464899540310630327040613308377579118517880591134346914333636315190404594108924756702321645579196091582088600047451246636876094045065171143707879553286890004160641868436960249006094275150205031155482402057981075612790233418844880670693790024155583505629300682248149187104599165431125088960516075815692663790714070182991643210729213388771533945093901798405146140568686825567197284900412082064234879355004946790762108511377465521186461215640202375681335919838136186796777792407234810516880173273942199877582941104664259576292438439699976939206857574274198668400336605461356064391750933476618895835398562346774851649704479439023902472412359684798266278206856320964030357995186280049561977385287258076726200761421509347123497634966393641372222481387322178343842292402331718116090443866136232534536443424361524570575718426111598212971389500729619066913961323382674257996845347348735591511739371539020577146449703693916775116957218200880854306255116590983261004041276710241924590726054128510920672765273628042786252729722306670383859179400100955742063729088988297431654051840476937886249793190837409118716321097226921754400326209090210044811297665662753132380266957713223602980903395540726859305437035819239574337243721637285742089294720460513768070085499872495197375842834118633706032195007882509092272982195518363836978919492107817955884460620180035387605953261559480600597486704149750901656006526338506881139427739119812029486485431297155932193916083328083984147494537092182601904172745421571220907324398878473428852356102218942142695418420423376785471675607373226143237016591260466766041092958656730279370266737710811242330920241364156336880598370656605414364096197946197921849081693855454788566421988997651753056493130381877267978140647914139869514161824655336595944803508142498545218936721811182306546333856983733086091471889782085226983549215525539861062582267531234424486652623847455015785368310352468545421236012583443964323459382879499504756668044162571256427044596959661090065684839797648268227994848577539378264924160240980881404510253439460161596612538470465881382338642751517887091346935407451211447732263654605334765905428386454797283158225762728668828752020135291293780118604668524668382451460434921762485952490134805757079449204024231125051436962595009822693063823237533933461823708693980041582941087369606965973994647138684827379807434716470791877023538398959801313968201577047907449264016070484696349712267741956389857311841547867556385726108508033783829424577938118284075740559434862776787968613328324805804923084794904337386022194465712399380848322301769195249538492682215763129447650993632414111082669686741300497007749109096126787777178152970944619996857256361819372378037601954839480247115513101941290005658209288420746586418533406251593664526389450321271117139789523723711826353238425266435257347297860717225604240121610388392676498659162625781979456428339792705352776420368214493129938030608325381182632525236386720633051393213539934747056780388986145053806738024272590475855702821949332026332807837569498781794352958746501556560589150118788009952174914516000642118289051508413848064913871739473126338759517533021450490264914476341239566435639565137616775379469253513863387574571392742782766192756166371611689182537990530112332990930094759124435303816812169892918855071248582228691093694359718758517460049132299585867963255035688762660559603046960378685292162296451756547849523178941861732691194746613207959586960604415031864497748621017615054540970993456276332996606776187866965799300919277801028330409170355832918521865101471537202289976221747580190591108230432489568870365917428435756317154245983627544616131404232460748627838359443628855670111462207394221364365262863098569939384803283635206656121557842878777212608794466089601892416177219308008507997453935710656411236588389480782967146591704262191793121507971525012957978921384968530851817990304213802859573384064656278129863418015377901634140448949945668763133638288352937180755893963020002998700994871600388700983096014611202209899288197275227052242659132629916100818758078425672194489576796314174990221648795758848473749387768947786783384011169790751667993728221220322353460477529873546170848342955110730367634537508154869200875750483775885234933177617253563750257694497773993210632487995365741803972723307760619467040812064593979714738903801740316768324853337894273015083139933021478364200285779860998436436428799282424086285183014019548624625833363149613671117023285685943401263142236169230576993312746586523455818213991839128548607121966238475558353886247805411028838746169263467059890893085708126482328322490079666656511609486699354175798698587182755164551047432306411446183415722142559905358979517354335083566114126225974505070092424140253975901818592964890215466836378071936577171073365880079496855952805032813740819967936266337550744414898052709684001969293610306260883472366195364824663183054308672744393173343150586398795842170288206916814495858697863289920497926274455322070116286675909729716897837252936277129021924545986375618132467949809277453640507877187082470029313508268086984387192310090821668059354608518202224949300276139197514688133036007162792640743067823049833689253402955039852599221517689109888329485612083513926456733104507074141474274997301410905053699122694945810415319141429467370095332509901366660066088389163882769893312145864166320444680992719546930216455577714592531942836635799231199440817794336989236059460907875830406762440812891001514953112774020987363053632005654973695851906009209134873187900293585505507338016557608201961304791701070189641170844267259938356312631214361374492293698805549240148198194962312750713526752848105063460561535011815495326392326712399580932053192220636840532622129387486556014978169041316511411572962867643609110061218316664091555599395986970663517170451494541370413296938093863099074098373060489325285819420945369468548978610950677424307551730562627421544518587311755811262698338284726176743853874478374604431660448434454121668120041307189959722537645677042028771465350665386321234473988349050108923560592075901491200841703531022412157476952459109610937535516839772257690453898886108072893411067173017373717218229386955326384668650560989366010819179041958782514354177943194060451066260309200900727901365554738061390059761695596052505689489195548527325621919747601774297411488840973598395620312416096610827322139867810680257005738550432689741182349663963603899748729406416839413650009329570970593104801083967830730851899902848595207818342994609166154935111882638355404297570314300642602529566431086057947828354040551416386311681185003238252965541615704934013621007861570997761437951643743661159334827670478824298372190877754225509837073870330887352932797214649145031440272150360221251354345570380382573845969238665833512804446981021484099798859122635837424807893418000129548675896979930729053170798887134645119053955514840791645959674051658934666169020563385355034973456327165937368771366737491150973894785750780912355217678080631816410693586952727767677307553840283867906993818282319746451672616766515886812026044950925940868235241617831911266926407512684043702524630559773490119753315218609811052834302683229717183066775039146095532731847955199955471372174321048830243181595609682331940651653375063487035970087751411584276888970327184009829715788059336366656420475062615480646272925977407193022473934648672165950439702849592273392561235137943702288730353394629696651251355820578478517762458373262275342478055943914460687482285615493405695559307955293433425728847965789769205139863450281118897654550889915701693320941492628991956096327511227599553045773575173092256338791263526860876518943385599271471685671638875329799764330970228897881705869469357161181706248382903287387607581607931889346117210650115097653078966482224508047463753016803771043416160415903270069048387945175540107987038818873332172244559335309102228559001540503628848378669622885545636659147576396239056507837136379792551219739273144019076636216274894909087191664236101051395612941694153181347644973636786452025183430697821671248959397450646440041514246789104310411012719146042823676854963453609480529517241162740732952811763299390278189023750666809033134412734683785303863657043241638789185395520147454736846017618849359045042135767496213235377433438373108019951350610759414917496915093257137250417481238690564242029703643855892527144537393703228023187772128087593671846607150536658943705800288460151452717335896134700480780147735679457723969650838653188452397160771262881386857716746568885512514188950004740779234148107434399332026838438013814866834188175224785595661540808747078946135998488426556023941595203080109355999836467076712278164405648602019614834338533789363010609947626917922192171305698977772107311776789618747441833297183545448894355329437357061645581466263545734531614966580674435010110187718618648764268332330303602295800643195559752009114807877358646888513105375189881142723923071060921785606838375579319024826029562888913277106639431027311961718065664165906578246418208990248132971235853454040138199150780517939899876975707008540244860573026910435845141346116604235862534819465741576554943826174591785429698215451662084951988648514306852497905201766310167330317863699630863211684569181643232616955142570610777956602463094035173382650985914563718787581281355606753444864196834782367996867057207952805833151099452750235859038275175994457011512705859568124526772399863710571734464782506679915076557223744839075574183195226523822401511893426995490654565933986026071350646417231123991686607267879909624624514916023826818831684422951054080124558896904514733535467829984807067784242138187428684654266040638493694506521913513868034481993245683548246670651674481817611865133204446767658532276374595442359171378297599967632242789261184761527622062423648027593905888645125168106281072651469794136418924387421329812895804565673597649791944796477542547357136573586297105313532816665430807483337157417308339762302322900196889848977023559539664239630847406763931734255926896161078724749698246977629726352708855260853716726270878457221938164737469195947773091017327946588700913256211961233412380268905810420811044792624693568771635141907421116503060295780736058358112515309493589995852935716943060153385909523622383423451049222150204927253518592282355459323443883142572139646792314874528714916249234842401384100357742680921348475407819306556309434951409976770156181577082840484301214881645237357231991391089936197735347516009253415287294453217336704605481514775884629160071999071874237393240744190934390041357631723955438027757646163609993431132266218958372465757046566777147976142052419284584241162330483701946892091215346345538891292653432618264779586117526739835995134315937835614635088896138128622137717187943121138770615956757037835963495441768928963171985199946659063671388161336574431013462859361191272883548462598454700031653265015317726288462054818695270049371396081822513354459706385277167883050346043924015768405446782725973925040357732608074956765627813349539842059553602916787747831881333563531488751717690963836656559923311581995468569288959598551379459651153066903606884279445122158490185142344659546671433864868607821389150499629948295240186066766964153843437448460223340711273712705470836004610431146497489465514837912347765507196226334375960894560989970812148811853990982153192362417809805528536805136056851857675334315505747425660342104070626200962929284101304035119563881044862556754445939023188834613735489478625940332139203035442890545192033467865157705539413992091449070993891589919443869000768871127443381928908120074574475545092209148975962807968973517060698875253496405765383304814322029448639400303053012406143876790642362651150737200955869248072107466711952738950440834978536322700682352748479362593131313519021499136112709251737388037832117476160000759243521088573391651404691550709781884163582994194764364448218851614181140594566044649680635803043601319178933626903916313328440660769691237364098268896448965449313950491595562747346867689255038884788699123244749721361434038642146235903282582717717614221922894185203716254574999793054055829625391290354836241513761815778764564926660089849805527536082606627890086913036388688184192249047546254169549442638440982537133823825065858812778566200095035029065503214759079114711324517831442169435075570768763577503377579473557445990803020494992169002689192307634636463099706045514950225710545998180238273816411666004403866725201084044877227479196323272339360199475260667853508776688717531296378069737514554497032043673729872660099280656541677133996592919014437731290504423807916859019994019324434525307477395571860352342243261954733150109838531195439518042578057688217831672988191234707365781891096798534582183404223944989631441944329413401697771588019016149171741598057880717370396590004716201185952318132463497514463840963578845910609553591530547580492977504888503063325541728541905582192863167384132423575457864349099218611735206671619557510557525027231217484613123214954492123988602140541895915756480436935394736753965714622128519973034747545974281130494397381851392178737690018114954037609001596743622166952783280200441970170505485504427602609448705649551831689124867098801009235952819345555701768429609722166332745644349181715048103816564278831562454980105856938148268568068727191647805198876352638421993280442850282407693416619232314132230542199758307536436706115669930568366354230779233985679902350286481887585068832797049837035418372502445445499583004805361604939759439341167137185820836282476877138573598582099922859841190074339813133982097830467227992712471388126021074119567348789729217753681933792847047060173493895594389684339273199418064451096645767802509530027085838393040424850187808590711125755088896765892779118058540228856262650286167161367120137882022393760684287467601379003017507249848100157559880885913551287724099768295044373026544279476603942077483032881749789682988328821986210590127784802619542206293183669138024127978108181554894964333844048231920720518232277420441708267364334027470271032350522255904298852042711117504039222896066459372061904755332228747747054561527536716687979556772854844047243545640980388134120385860460370476900109370623210693704223271494228647456390981398954192437117271631346240508948158473457489069978376670197494189257755367734493042148162129226280744513354759603455135710001073682842735591124174533936976151329355889984812623598251583945343367107097338895576069669994436473009237986454102982565683951010107672215211652481594411752671133944499712060991412587303083016161157672537321929716270610993304913240412337900721899547205640061775953291331725306985411602180288164301094536464692382745896238209277718700273033937427306212447247688772982522169897799680612940970735817151978284285099180080539145910852643355058581596100209773443402886118360664467594078312585246825244869836020126225097824347451667295594489050408843995134770490848385798832527259489329802985201129337057564430735215330483035436174391536985273032374601379317234995410184552317776549070132996736267691870685228869380653421397071023341875226843571797892631037639423128509179515234062000424974420526590808301785951103859366905759846847692928025278998032953872283554448712621132889819104542791317551884146955727762957693310561213266490525032951015008296620417803157325522026541658483907149637039974070005595083930548199147009240105497001845937107757091473053435284735982063477828944796672815630429630666214488220045784898819880638655747021974626432108799029568789553309056829330726644812799053097313550170089941376886340164008886729801061865434910689764458592395571124490156461933072138748478413123356664035608058619459472665943379619611540695274640075914256080144400760736851781443459518112765267307215229288649021422249901052162724880704793804956548207681582131631807792594091443482782931466282700489143185764960982122653674567656433867776602422698907722602924840809526015505206856010951257045621745263471851404426776287070877103047474879109122129132245355929667754400547812630832524591224208741044738498440070889884470091081445147242066033401054889036950078603508433911636797118953201785552971750790496796598950144814300039643864564023382838823216262613353037105295522917482085411673698224181040503235025425179065983594783868725797753336521926561578105526523052837792302318427188042050366981572633139530746565699877008468870747996888446271960408813508055243638789747850729851373878566321719439453793628107066820443961480242226446480724163794940784298116333913507385494665781301629454813587405473642938217501588025058155267165619192522700020817203974004316300665184281295219006883539716188565773461012991078361774373232472517303210733388284489085057860136932421092263166338411578300326955307108967893983074787675854465599913879922895930487171981516614285700285835966536913227936737164883890633283262774221217208948397965959084326716036317217687671428223892792379065100804313943150735416030601496843496317034051292617270110411472246163711462136268739173785986490609819313863373255993540346749564371494460045384564255125274437049227707560733985825817934449915623622672181934342061387623937641031536002258997275537836552459200021560905501235286174638497119332381069270214993410370390384139323734913788396732396444076012831250726385073615350800547681891030192589897584938041615232786572039279764759684096142399430070615053168793094313073917178967407614726301418887655141485945218979798974228763410599344693800191593747387715270290027381843046265149229760514135202390594297144711494581570247689346965628217721327129168695743354882475815508596677895735809361835697097860807577799290672155414415351709627346228252220570331360668176548008608540467667852817214513856570920200274853084485288025673066403600294443416959565229152052445117798900311775404792314713470869105491504426969586890936163444240475214705618220216064500602146979324273656620822768138143014687468739656837636819118334057544403713426748355194886809921533186572992723168662136982075168232084748883044228955401669282323188056470001005442023930318920293483217003434315226394215714170173588720797754902590505541764664967809340507779930306846230702844166036993663391146531782458646905391313400813052945444387580280884350075003364367285457498976818227887269464823614541126160214431675074695341564597843419985225011413383518686659965971106338608783580634148425551640160584215163877512810208497879616101409988387710520398412811889025325446971823399578112714859726926903890277065164980981659732478186811504618667118207886403089618073643848253378940618793233497637747405191407657857867688492559761069785806454140804856649446041226137540614617579992420056087787149686303495206801502198930349653421869040423937232777512588526793286370456499036172789363383643070023164081997527288990861301910692041041320517813571144945721937279950320677409309143383546025438616239391093520108857407897242204543883770107219798641208224352368604984467701012041436421139879296340715000615869444077632544446511236437097654883886256620438188178943771431924966991783337118790216450461992077538719696416616760848309279012308635224368879184530497930976364065101903867913984943686348374879220630243172414238530373410460202547775373865368739766476861221874150789356454149775491231390822665692799882512814602320133272101881185711279439526340060609273370495001894082752887668011808646064902993565857150466490790852136414237252512001124539507796669878234008109610470421998986681879354237017335896448241261093362412953245794435098503033234960828962672903698313187330891150072076880444632621410640436916139825715598621404501416782544504093836806067742859127279053469523784264835895266887742213919778273808193702198960025437171919735661901210630186474743569122945238819264680442975561779074606835674580696503588692165701011028796488975485377376763530762157669741189364796969866070540043273036451129507561241897454378701470455731896916379168763345796236044854536753343574401205583765441867947291016868633148048344621076314431870244181019108767922790291765027176399421273358555480961419374426432682152933830603969788820278718503083612358526185133865704084679231375398713584698906556909307403125259821932120820358924181315976400391842566307555783497901268854049113284127903593289499009817907836908494799701908219695818100944683644730447222095831634842567596312718156117143035471894190799769102528829780378245278966058482251098005576559510356816785929637335161927330563889207157973580116708847975524186418984715920493861136791650937172051554184039933350783701743452327218439563585577770055939673393064939970207393400168159460705742108778648432477496810069783276925947300371105358455943575825845519875033594020545484301405485744604605776141787107954761222363714532957069043140668705460923552470571473715201302408745283166683733395798405129315622987490940307422327415294282496133638382091169595648337387357516780125721137942884584286034039574051637246566261912309119572674381641691697983092513532462229731162643970821035682298205293986912874626787072989485919119890797620211519202007170490278357711831259491335512105108467222329088467642348420372628183913871387316083868251153627000312648964443051125079821792229493902930944801339088171399440726147714948677588089254093938008419494177856888853480097237889560771843207698120390797468758365279459078184018972009638110383138660306808366054617320336263650044590496246825046421382306685760042044404851578833740708283692975219635469735472672216426116814479504083277023433050531171190613836589502441919011405155508393058566350687395770027254465217760671609639935531411207162558982028299631820933500207522683571477003583091281630806702564616239205348557473603178015248758692531719389344610452775454192856371320361709179724921112919503980177019571836161025378202845601636726939326853279727893283005773640951447608398310562211706917987567167107028489729827011131518597937575010252532827324233063737467353493621018461377592439201871947543240154666024547677577978109140228364193185039303521264213228305380375563799171781907075424339549365813339826049261220809953832554323744882659342782879171872540253830172535644426360678103889211025587235972607093306172959258634933766701912615169009917078959980860534526677738822276422671702297814038278615456419513402597221127614764866340959276624559837431849865209088216416666970300837541791123009576882234944467127885751632851172757425055463221035171868377109148417358483867768844116961254309932513585055761173838990722372108118049099741707778267904792492968018873648070818653392159457234772951662152792590701326017130595372533697456451800614793274344956684877013805627362694583063625989820296161825607337342698735245052731196430255747455187795746814207770375793353557505824651462294907895506689472525188522708718532692932906979089937122220434674892025333145238086444827932330217246339300954414214493867098463251674861205611091889793031452829686885768835526086466496642520624614630162899787862244202428448469788678467544772251552251900610267461893714382221116724317852419276073517033017229790232551499713161748283877298074343625774042550207218128647494203313341282486482302889861172938509971216521308352786987079762980102245502844806741546345998813350716601642389644190553606564629865532773744775208404436643810709391665934499418427128093331206362227679292573676003810572499544361624323541235992943695409892594691581896380301993432569178436339400432675138314103304971417704718015250862613963726382489235006081115640961809080167889200990503786408536653452381869249696920271326698702088211906728004788297495887227873785253934861834910036369858633558920608649204744130235919411108731295545795140692336799669343111608185351184714892317512494503425604047627626759163375350164288770627186229092644973836323243783080325608990829998122177739280212293760582034826994363920605937273316251994140929051080988346670447143096444075829809900755618765378791661442254300026189836067296399855073262509858107665393171288075489699897534496729051319593393031021044616980213129263597433118948646139292722536435638597846399263793904344324524887210253301166639804259651503614269621044007335973257148174891353164646223032049756930307459972808781248813961641142831176758132136033994510184338430581546392173373139901994162218272515984405353755673236055833028478446987064177335047433224064703695503598190202325133961092990651371667728584989900237038302410919565241279901843063075556389967632021234764249102442217335693934790651457913406950371804955691932593040866276457132193129535501441529892057396925543252782679591418915365542201193202880281611873654352921328739979097864031412380386747057622738538888032483016295923543728229283341386238832125211802182153232839202044764742976893953126051826086984135951825964654627398495830574559026736122095899142791448308624939401951110011637778365493102868759337272866393287673381561289464103152525026034960844741288471140319937503082443552330320770838058056497374521074562077080741346270742033957833030767844736535063365013519815736926803466380011031697821048968023506587490241748890165873567969565260558592955968036592416953751850316804171228800343015720668248572780072901344068950337715817472834895994658184272108165613598947302725379559460352034595125308768356578180855278007625352621486104566473320260322071076831421279495123846914231657084797614995001539109007641696034314407839567884897071914343745726378873837347351799124306406727846948657525205690223529627481088007721557347097919415345192919301157423221675822944859227881606832751525318648093288865739008296863738122785766861984831274166294909752573405089715751254981998553257748372349746941099057910192023293713174052325637730738193400450095553357966981276798931752122199715309286433234132356296460413498064040908151623585234119223852716626011160160359178710910187066052342898680509998249603547207336340311548048857041898144152226741574897196183503838215929946159012951513202554577239065890055898940816526622632827621736020142872908899927904846562665829371247347162969007286529708199614067929155460462549664518726196658074872681537162424273773756099596680148562837218255594431172969787791329884350141115074888157603304387668316446405329877931192855783593528099398172585392688935464870675841756157506422138732524335044658096137665103063002757376805689525859314125767674556012279888380852857247809207270618465530016048810174615698045269947345718402985329493176418775400747619086901677275922300974900966147999454654129889516214376548385172420401961498901327383982238753522318233845947948776166674850288542250734253576203363981157876407565876245097160896712116131256762736285163986330569633094858549982227835298209433662697176936983119043078920090999770800220488871206015119224326220443456312916599261891655286551673489091220824306133578713712413654538047142755306883976766282007736503283738821979002489375580781015661615012008913742426139893768773149995384731964988333481754361751160159819285125675794195505827442380519956272094389261443453702312395959424371363339313313723345716085943868440662571070182581459760643651849512627864629296057858220026067508997255804965594851867766740932515438159365833743993851149858779543930981139117052850230873833536668990462687274722599572540121260193408987960660499794506734927597171338005026138925396483804068420486452097272336845184737449206689685577902725198301980037117396367924990168203573059709350830501586529577588754321670806088899819655531593322490747381342790236264570929279811916818768383104779533275576566876885444605415098104113317916089618304415499293547866762654702813220464409316711153349455756955407162837032089626989765707895964864517200043002371831198175305128695968683993532534239118932657815094138818124571510034321172337626426199492345517528040825052984003864548088416925199198310571968531766799197727528764519865101444511924007844365453480257993540790230871246835902387245686433056761501142703978094733610588209750542204970209615242030634855071475562043569165865341093180759131443903744471441203068158631980219526665691563892954040990363688885376951777475812630487434257764654629585442579350903891076889919674991016168306211207697460540017695789400334061187692855359906499785791842578282940566455145427192191808798809832817904337813463436935160088067905266004559721879918287524607592977585053356765150142844344834124486391323741887949111107162873546884545215084293946846715089664441361587066767987646684764613037690479615720931092105404765835009823911173792804857995309225464838630688710122861988962541872905345675369178314240718091878497489338469653991551054734972359191657105423832612273910443410324383517527669765690141325907419702373958550489877404965261819038378394238054266295673258632365342600906089168666727634145286525644915780680257402540489478027603547573476813085461153011974157051523962134549880800952030852611496779172612635108501922213666602069061520179211347478245489180827159363906999452084486074693007732275730377756840240482841764330781212715851049008089184743770790049619586294243627599210745567117055704667870889098299571699880278192463498628837110857186924092165281569018103630000356895721653703148469854694744517934284701038643295934734373799919331025737981085562691512589620730715107307393316168726702706710084905778072516679630378904414656440844541868212105338303448948536305242177368812740118367149373470606786976376967379571504157468824466852714976697761372590628845330146552347361241637291803048359334786411445071642990000336862029341034639190371590870830990328374228400512823355442751921754812638217172835294539236161966686033115871350331434218822049719439532904562085993827499058935656474049998897979493592147864400612590536425698201041237292827626213152904860319216873437635241990791010902943099074015787879886087128762898426918261882797274507157665954983289389810636326726361987360398410918642671010313281963603336806567380265968512496555806474373798015061141982978488710029681194030777376543262040799835885664730882833865345150029259073011686177269193745928028018486299490342573343121865001517494051056719590635675509937711818026047232067656419103341359095675259069253245601731418160817990969278435755971940621617851420337615353343678850904807954311350541611239294093095434023375621752856958008361701616498212802657410123414108536805631411203559393408861796155864357428646110679198543592467794246070259700650784593793946064270929667322229067297276931775418944727691558449618573564275490392600142756529696516033727516798817383083382734683305127178966333128238435870292591799285829977250476636915247621688294889162766491725673750977822177900715804184397419815865870143991489413994060305667076938723895273968613401215974950795020776788353202985204955150230314518753373589951754386486071691832160231162221187915351465375000323482783522026641958009197169075460928172532193369001912808161801618277556482727236397320482086633167813814835289774462484511493552232319492082353054775077236881035323505473163615684950222456460068105401895509789479458405699115091976074364748332371143317111107224744260822306297854580569079869685656687929682642877910390924338777931313809541513243886882528806443861837647664651938222860734317665468866030278911053355612114427770416505424187226080288656836004576902421178730337291483420244807955773220520035218729406648225528795875984661137479084032648774241790216646910789657136498679713279052706636817267281909270993721571972527472068439652044291855605510105975991024449738855621746746551638410706305739190599181321114927932036582338419548974971432732364659756665768780978974664281347688959257539505351353615527703858408366839920806164260731846827647902701633781738497355148688755146143000541067761438476577161457351132837219673430787620256802730720823078942514993516994384088013554428024159884221203069677254633603939006371504344421942102391320966540941470120115732662542418369920501932152631121331258252965668462972807504274578743710968846805059269057244880036376706457710788381274919589891662087653865268967459515573560921101070731830582901515300096809425559477093344058076258480615409779089828094676271795619889700713403023692329110983615506729892274444004450745597040030948640293954890049121359419434120437565152647128189077134674088506048167717366094883720230886279054483526119306309984243078327331863143871516464223101042093287336781352198710179451741528108154378691148684809271508005236199811575781689752159013682832312304504373967561736592111662797075235277861602598608900881380392597317877753028510402827848208596694531141276674891920762182663774860190639942424651061654813787731239664004437422316632764354518486303110894907965613721865741014079520896602316748556813773851875437396715362177945318614690141415919169149130629438719282271876799807906328732379038621157124966249782720289572880611968792673301702719333781334175190931871394053457298792433985736159617810416053069487721431859415357370414967222743899696399057470126290823405428805121787345907334373580131475897331828285877577771289580721424868181240030259258656154358051595230929357551508868805322232871372619936321524443098394544538478567222979851969831182390116722041463728373033808870577241176998468664260520346631007812374610949041252298604977495048787497049672931983053286664908997809172972472067100782598922375384385429848889781590706894927027746620240962585778516398871533738073695478485045517183978152691468185277197469222296547562587808397754728732398174295717661695624377350179830074749479828558810691917542759431972066992606600647408324340399837783614567025436486035636697787759183141995260741390165028094404905735440374725150744866957100066794822359171530010311370205546167679272325979127215056611619611534890472422121839429928467101029646789232069993150233763036387264286739527797554623219375224204161863144182974383980830826800519791985404798471048605395282320703796688264249095544174666747119710862116020252712196883926281725475224515362122427082625346447189347236169896852119715517597659843172649138884378568294730335089797039578572175443409504082135694193367432248763869839203238873437579776569864298418691512062451537422411362203049288911750463437181273428324583081827891175426357847301739754019620836699266973201861498134652720553134004013436579808824866374178883588582182798371050189293341467982524192705312338283493193499896423146924680124066194186951353939345983659213684713357435298077963151455411112528743896232543644704679404758226975529913825519182688118562074213783456061784346752046891491431063126223589514992459724238668546788084815873627009025462160195893808218757762812484218177465405581074340076703379650321580773479095767949077500869526145165987927739286195347664386793724924261945608586972644448127067200299735751599609748154025320013728618214319998616767118205808440956268199448343464718236253384768282034453602324313017990809084380688048699818678063373828989557490760913981100393498972214336255683684276440160147005258578495968660749273295333834212766510245465251815471247191886751947568011258207121634469186691215682285585519964164843817405615093959559424463623881404342258832859542359218229571019496027032541734104511326834434037356721886647016523592786121017139760837699853817671211626630022726873092007516222951508224372641580662889408764320295400602351188784421746292127782491132880407458552597677879983285281035166462250382334746663166039567807966509079438575626164414434002433768894375117730541526951734393598349400773332164663747401753749361019951075862950005361920725563383531245724373306080755701733781046053603185588407428817723346511494834387381284291725989333893135182714004582292664977415085156197320590415853568310002337255580344695447682669079098019229823429134850426928172368695259223644395580834721321382910551555128305851485275376841096668524333420647338412386806167957566394728929892278938783527943429971952391029352801027824011523332147070821590121423281112371945668694207907111971372598470321241730739309064143779730413454865252577652901072340494940463810405553305049741435068172144594499444734791808860385925320808259622131283179779834069742900892848339534466181779550790322460289337034700487733602523799949353186683447612447766293880018030048397263455641923306262975865973020486736655184641223848855049860141998140276117398319822586763466007917886991669766880007842672497833468732478268497962095611440709216912598237292553039940360438335456822776704802704637124846637144496346608437541564629233091891298376376424352771124834937506437526470238387328649716142700173502214539853357025622261157819081589518391369242009523175314050133999341845063607075005595832591589982048903338175066956944833112500527875591140782363582255677074918619401777042495500686378232804930319827613869925732982446631681044777484819399441983674713220687819615154723868859642444686886069562434706761091457218800170525243799745392466028869190634384873492542673570089402976160856493895368846816284950022623007780484807686562587880349616080894099868602485395481638955276936433662237652962593984418395190305353970877751617549741288226865521533995645099701844673686722569800094186100563133174995855734934694697726630111136106938293253321577077369815282625992219202811006105678542615091196909474541239724695240411976563908368978024742107925391038560446389720384587221868000990082009247657828776087871122671623330313782931514579651761829364323558687524215139239582732008649896894562169721615831874057560709193199975982283205400446570988653953193630618890287424234150540966061644650540167968108727632600871390149616533842044720706541107180223974423269377122312932639849170298387245937562270878740558452189268557862328979453550590915541679390074368552071856496992948888616260477051624532809751531368952352525876586304631109934824528739794225015054797406661200043040683777252777008161390046875405116400764150126125422403475579120360596366000739996786551515620149114217643359632608469684517039867013285153760744026730036813458583961242399239143636999825893280467531853915417357136652169864914890002745021933720773872917597933672585469682738768340547795073598571837973657060922389598589835169986937377074812291876991452220976870177468511937025060326347627117773781811883965422668785364958872986863160695886941760254244207368449905416297696129038847079915945910783611349225362138507152743527737353556500493707646109760241981261738059497875176792346227914968965975243804724816661362951490476123874724234896068243662424512214453704901981647692884794337830099193886457963872001067074614808355552259988219569669293610525177641235369578722742470402515473861866323083975566475292429223147175918751947295499717309379463819838717542681168795492942993646313825708283670682644240282378918641571763513689991493609110789530024007975108287473286217750006262895868617352387147128916594044567674105312595490482644803137563923422835575724874835139983968840746948183482891451560848758041442027651647630356578277815011614181209067280351519210172044917755946448805293760674926032061807114612398838015306623876805548579921078022096568526505098193391795849350626694812224849812138060022527514558230662649273532648075854352728295952541284530814017317570022326222780643102293100626609269925541664427311256700970763154532413136983427998280478102396189386324102583848472588693657791623235487187176545959742723372750181105525543838441579362681032251611561244915114220474325439494574627959387851635841665584246774198067078379859543191728527955606226194694460465843603412011168550154546607514789264954759671604096938165999260675027469355033685466163024563078849933571722333597271468298636834723893852832226758225957555872116011417936850898946314357093089931830625337378239631365333475237468768498289068014380803443027613594904259830233173232968947746614473655723152762794200009016764732399938060918892871608326877053938163136814882776481173885693355339188736233448895295883805335623813245132973423513025273125388985470908938430513050938504872240043584941036549340147627313828504960430089321652982489379821745625325725846666279996188731805139998087891353376305715675562341478779296251911892643227955009510129643804318118580159597691661298712185590724530089244683810790248958433180847192530266323678843493343656160002196317987858148477883334498681897619428840058309418418769952112315062643891223655153399076015004620396355849211098302699369766994227689702040974355640483156999837806787942455949436747647051912934229523684902284805124825111578717470412210178517628539540089959970728121160164724268612790549883330187550517414574180376334256739845455048207690194856572056286235771287490051804311301664305298526879614622208083446483075653004687691946306407228014472772196153750681232678649845712075289352804517495612911595851953312423518355477035186828267276681183144755030806049529105798853922622752455626211170540570264081626531446305811745409617574580105054424827785337958180359676311657641027874971541173027220025904773143184301357680993942946498126760048791425038239815501735741316711965256459725541810486517353162470965660710480466080178288484239420887882186355758976614292170240532811084200219318007257410064453346814905368661730446440826407023155718883050994740855859486107016148928140658462862806019143561389407390940378604991352191304849588328583901538482339866158112031758827485811268964896163479983843657725237422692502724309463912205414156352369940484021187979900958811229195300212638860865845181663310763203646666272266318145543485234218777443092140068726542593143335401946848114019346502869292108733410918437999354644490823483520448219604503881611180063246713123250718999800361165045407524189040334626255204027177549346192142481063863145620863761656004123276422492217252338267664838226215921897584696599961989915119516929352636136429576823678400293214509878033004921121774241415638609621708540925134519478860880680984385261993810943880461172947169120043386033156862532081039002003205709350188726949161341609244144928230838925627891371303273314505654896856313404006017933015033199558076268683753701404308466728369191849716354349661966842624347263843669613721215331881545735422319614202438271136494740048632426659300057880998045048367784739180722638662881735340943602446928094378320625586568752999539886266706900989503436604773212937298204581610264546538807017468090220310513661473382027679384568851139600919284690904921338817336321128251580885252590471820197194608783801911545253476929794166961754316770109093883846998455824958840841825641904423237837031376000166246664023003002831162454654096054756787052543579733384106354763656854598119364730147418651486643359885062681564735628843410542702632605125177499857857223151853714733839663755243782063519252769776448429506320599795824325922714600664589731255934596643438398267648269038351128830285002175078827697981182118030602040172090100538459902969230404284661825981391695039262185237506371015992947403895427822312341481835620251526130584643652251967622542979483368318615255147702069856038068215774920131855737642453970932240160971751590904712354538126814364611971069344017985627838366307090648402882800942020957045569112690453674104191712609022328878123436386220987136512570308934915284830116870348741939469879107999075014391561659434481123871267332275838992833117277607651620473183520691113120770235794160151956622217711046903689680423232310160722897535397932708299445193441606834298542277368336231462146148567244535594032591978304612621565134696064099799772696895534648060106584876529377195422101074375123547848031301791190591913477158928153079877066696680543997217647812833604029792096032187284433280867345470369335055590014204484373701929229160877070207022053519492625332147787217479428982134486398189251466194397894746587548243970412530310759877749707254154797777300503304090207521636200302020065907225724505331456892048240315162246387334253423840324896820976422318377354528295751518922698264461928882649637940668202927184120284369128665784222770968388932531913559143988559101377299558552812890935508827693967234965894911604301336737327587916678899291814897442534746522761851768914121593560881647479570601139250912485279106783018333481666757507934055497862326550170747582234195388015148080782021733023494963133479348368691276023986156758335465423010108827643910167119702213851203134352586038245586535775806585135308594492878575131870730215592558068347322910710724470773869216684744154173784453658956867487509504163984299421884024027643717140423231120790319178453761822722407438042661351119712262097882195617482186095690442707695845863351422813049227181195961713841279209030716509472712671346011312842314371288100701020333911288578250682175372509705915199555227234469563709513720246324939388334847697251824789003673393624929450321902224420273848598881115424242902884746954851386894406773086277024044733894951859391551394316154156080579525626850884243653468443393538010208106582977361709044652074524751400924527215113280478475294743855811668733021622230285299326948774609333154580072091592205039155914849694001227103369889820999827073292577246241572943077938689639387140528130024448062051595243091552898201248972240425269609766656289472781776432855237799702665178473203082758139621079119746701531361377205318184551745136457964825407878417626674829553598078479458185799311613406786064459340084738538040582235479901607385317105442180588064290830311650870893510781433784029997938839148333163252093196621855521510549377363825316947163098768553195655074453003836278591983294257907221506287395764054159770143093610359670335909355489950933806375290205442757385022423853587262588899668547188768239425877439622019850153750004145934649037933276100753466490113463285527487455643737295703410547768752205433925800378068131324870800202759272988512269081112651768326713561417100802661025990889784406139934377537918621850828446791330437237141545616138270664919694413118657738684921646541261496590078785071335224144258339579201315132409688964630258390381425854466991543722510927777437739689178127584855766270532098019360323274104860112200008932984341662439246673925097957203174581996862277423615473013460393299807833680868018994685651375801130904163586661728810017819951996433900159803029155565048198487588488115648287283827812486608660922138739558757059783251494819181059371575224033537808766528057779709065678358074175169220956093319540377579331591302014079261355615699273742003324774763285428461136292050494900680426186764070342196559381994361019584773997877050154320279421449618477133606733769024998443166095305140720008696111440180806305178112291744756808506758163691702580862179674907390792410083701224620940519889758312592801274977505004635254676577497210175562338772810442625834733306222431624057496022207255444951616719765928445090245482854987143298222220163148403001868335874400916124336831002790568893864577608673807878374046997360701548661564311695715973554767498184922216733861210011359604969299390055454377021080663480012022076855143466232403550455260124977154765803852195258704929205428182704698782098003987005976753684623221988123456266983706046073830090946469967494957375398054739061527604592904498768651552092975006083407665728559944773242047360125751949385033305433108881787879230727228516263099663386122378012344333484918102946964986861198564257705885366527532630270585797697547465162093521152088108240088677771246326327419738108747299208336111326375206182229095734139281472083900614344112445437919616888825421996754984525643835683596225987334867739897995006121061481679973682941432033043872125246803576264773735977834804009070133206058261300270459680990109142272753238992457505857591098303167630656808008911124862093118232682683451018272678454222560002799053571493195737113053486667075505049962398931871544145242192011903892341185383975147329516635367872135593878720854455719715674603652443242722709961136418558403477091865378401171293327664574347255715868686511211865004685832867170899793546363259346490635704160895038984040546919956271541399926823475576731458930133217835622289205760268342496838248823287988331328969695695461042596292597776957692013018513286961352745566714664274769958561559808292230458684519365445800520098362974413982131534979993445311789756951196485168977694251740480325241491850245538078344129002031707554909184047961222308919907013314878248130204959575516526482481448007450119066807786388198313751998178199224825870188955734132648913470176245876135254250709486137256428289217159297844849969962941154844248078692016435965986750527770298876705568102728783903620260936821915799369635763337115143234158472997651647734953272778995097147559526980668768625118430180187806372356059620624083195590712872807761721381750082199149573900901936410621222987847787014534454149797519191725491460963197345420400085051611318514974923386562246613821873459502237110509463151202561059745077145977025567787724689953879224948590097480306143276467610132738825440938578090776686522163655781566927692984285024030398657814201801765955432330718304334684769697438788534352497762945929863894986911071065430949816994057749814049603300783408291358993007123839692863986988176176518757014351646957073463623298412445223023485808801674626193937317046312251634686910547511766554439876974309201448152018888362921640691158170731867179630994414204623945390975447589647634949755526715943646316629332780899546217812443994206513502948177593958152825847184337083729319893887944250599664268470239689327281937676856732340655109505062947443077164274137521912888505101741097638786491896725976515707632031181819266346066912514510784850907320429659500674725001032749458182899879011523106123319114360054324698647418260315977019439478735356468587282599337330048832957645413769670422753034902760804572280845610476202283480435639939646671550773357698100910869856694096720386610777184586924152743824785043023020521038834742498575612295299246718603616488751712653923666346965327468227992191277675009066237825544273208907323759148937368485627734547120565141564413202972383503190676581105614733593154054704470921985331426942596831763987903113258969149631140743896998643895875481909479074529892222942742585753529595251929634981825443035863393382090519566513190007181258210272814299651809152814325648004589973700513226659064521149562688310498234569735695052156894692406220097431636066083705629894838607739365376563336477132022661002192778760767698843577186340447894451124521773726797958688922182593182780886255405530633535432545871376705780447297804625597266666869971167912626661002708432408318807999404511802760938502852524798787830064226906545345630631104938945922804574257533185867448052764633036799266247122479002069640268879078067990374845142780204802501347061480422985858152187356883712985805452086478282989061556164026239278315057960492514301735416634136105143291293196696963895991036633083387426560215750970799937130462378130516343246084875578081124794543403472926450771961459785779152690251298007192625179412286731714212944561001655132030166033188887039202259285821461909212917110559406403422588663508666404650864909237063459526865980710675834741395086468143402953782000339642112448700854161063040209444863646787054622763292550564664270583913324715065166508177879888277874525748143295507222381190109193816176101503231847409544660122937061778499311284130293535915952202669930126151428040266964332588748509460445391570153991903135547699013140835567093955408881863820109947445291993280870107692306446920046866671799752716072331751874913663879540998337875121491029597429584526669488187578089136078902588492545808225890277070112892704890820425385894427066424053819157724845038270290932951462606513865523436586864992594927464874978517882484576274699624203938209341465212820484626468448272665530600328888659204975117237814629566217201729276306120449756111362381935872708173170636529418152545166704857870384202941293446293724058900470985844548335694284437814777855682463482447158878074561515805381421679608633550831877746712757632182171603605848136861289034704075841947080620443210682229705658650717452313939805318975621075802540948050189939902325840289785851852915890968514202200202144304696323328299725883497359150946721456834234884622848895130103686653198061178830578957796938877596733598074385253692961376493260782921926796470795498579549575774027507079420472669784026063516454155015908711077304971382921910598392434584529035390890413562441931950556854469036891677244870079151054199346470471993064324985715747895143352314224566186925311069827868175578455498010573933263925588778348059584844150824664424740895522634404602891203028978783601222840853383861564074865727744417538325395167623468994183096387218357181815495551698223578803926332732014871492616329617884246439962058831647981714689453780445899424091819273716914479693808205007452741760607931350270579802854685165851394831986984399591689100065225435419463965666760060445737474116974026526923624497293484421250486107875095018347052141653177623993913259473884493732534905615412485822453657041725360725183342538858775490228811078534351534449263826392995148595911424020767377588802783784430593336880031839518379533704893930384555001912840087876714606190428471126352583956204094467027273502717352854360621065351305683920480162031763293867182696563309156331991601996608039229862735229606153999012890488936552715289554239546348092658187380163524658859393434639133550452949290246582425364529332791514331115834820561332033015839821724001086748430861430711885327771679686931239812807259066076048016246521815775871463866396923196456423041899434977585958533945559263759065220623371633976141684483084078105457983028158640314370674431197711585092226568842437129726293628256200044404400099963098124590408684914031832416289283868550561273732079059756623753210154587498647884479743867316856018413331091407397792473446625201603587085647504991325649190004512117159741192267310717306657400742258398617475897775370681660289283070975555738862743077515804310050623040527929854393704989178266114291047061920767991349068174051416462239923301584438977512902385078917089909303619563076976597487970734156663614279224401051498719015568389543705684704121313039819599321279007469091244984327252172063632224739847756892441681244218325977552573735142608666723658367706632655333088134568354520349559247047947380652626864608207695669896723915030198140088360140849279735245964328690867394163764683596065996390190793189084723924457978949144053091867817250788297704574734129931073867881907559190013880312045592745576536771618106379298101358220720749799819274667074085985088490223775111555796753606670761868760671506741254673287246656562198698168913538893259243876489922062121280747105746295329070339081970710171893351907669952647905960577583589552635921972597954056865316875238913576340820768586296689671299185132874309693843030398326536490241492776594712774372432064718559712506772470616075000192487884087135137518601684507979843604378843901954244967270603518742323034151831817430432160123306239178754694658821192002163868569619138973384686984596646900581717814846330815077805114562598805236991908761732022920416581565388617157622090382166447339568751336697500280316974484321557383033080386939207455666942416434741910305835811474022010662174439886697673454967577241487887145427457997349760424831920465227238128450004278820165858861684468257332437289420294833871188711351078901989467576078238030816435045955906437936830988364247375763005114930160947264532258513957500357178738253881256136091101813483457944189850469192762822744969265350610027613292326803262785469841936117052811508214899455328580096899599096074908806506603017257573225096841759832660633278419579498835575175912127854135196930437897096079256741858838712951357814025102722247196820190539180969541414694338921346880499563920402409565416098559297187321326303931969996649275119445557580211148470122398474354000949755311841905030338131562596051638927868018180926536712510002704233045829365942936683477964197125951019751082508408900105013107105457246611801585985756570536070459828349943820576859507710989036817803705341057741401230800181768408298894411773203281811114933913716284767111804316167033024461638413306235006174824567965550418506721571994841702077958761010748275570820561072581470107279622245840443433226590250610421168945215783634247070548371036513692121312815942128457418157181235030931705014495991414698552411134054987145416941428515309979426222836787294123095291580631030153534709628110978401929550858844670861877048372666249492290492378460390674130465129081459626821911110181989491581371162039751751098000231384760627009507710643073357925575441829831632773461140324533839642420794661869343442715634896109705706034859560094764428782874137962596465699434044321918800277165937387445498447058508434985351199702472932798785415748792698311123849379981473764109970601589637197998232311807361273814087911639477928096298523370849654516318134357273627685902498998501390092241019932288565843337061469653045775073000133708022923632229604713442719780591700035712593264010799348383164916008172038706677912521467623485112250489995765864229524937129754586035663617647215113007346897919141245450223692254686804713207676932166206684508513269792726073277014983084837507001927621493661746870920369375770624044344123490987154826081282323694438377825893829064625773524859293743450711833914583716594313911236401668075746867198924961629897734180615979774833267535359499255611740519793539496589502706925868398501514097402170991180041753090713842321615816149883027227882150823808525366691208042177858354854359930737383446227847863529516974898795737369974378042525196294929117399150284401901347850865934072201161129344535799660479283397223159452821772602792839732099904013099650883503430386276105650928183939589846960676668148954263945840010411105302373309843789672355673157552242690565676365539556437966467749864463383777358570248795732595908873405960995310274374985035549276516866012908323811374095172013505739285997539637667174062851085231670585110017855820950163008379674663843026183014365927358598866157637164314232870084447087525809520118572387197083370217183065460970892879850924635126295547803020932182938765559804900012879668199939195888297768881940302293280655584278378418924341185439472971803094064874163868911606855165861992968717329186505328480895967719164204270413953151361597513378720984077628866208052534609919692794291933822478569886017646089439417678836019295394128510968493808784217484699392901348491710805920098761248096024824350888183000767241146962921238980977512781185998297765866875520707672970278297257900721357232778266948977286761309565683275403928421685984705316806724670475782020712889051819683331399208328526041363683375234764157511918189677766288049326291826395367892003830538620292318171940891645010389306353989391974597298047732492352714858139990630493442043994475675795248274464035467989585367376682282410082416498487223044981829612844206714666953235825397154373180669779951954241029328208174210128676646697279249933254073692421155597395472061353493372896819468249751422321517693694905267058750436739061059862991373804397728687712193113812705842324672457463610125392783752214741427333592748701523376547744415723434725200992413842836625024535400867270945114703155141177541574228181882475598079290627503656956935200015756839099195618733356386000479700677237320667576984688316708913119902282267486263462017133645347808321578089602945245534506519894525735914092234368168781564077270232360562404052444822355263177117213098261583225478460113849153296152072298801951913896762775450400403930712010423557209463522421220340691534363745884980208488119808413566178259111885286349937193651880822672440848859593534875030963147506721832084844670840973970410668470057140310055670069844319579330153486203748867327600206121070487201168736483305383348086901522849447245075907607132996493484065870371570819707236438827184624467822059401904823800306361822429574474405136992089809673968080865778851616641718374875413198071306293374612458195165608591650785713115830809017058360002154344604641153901205278417729915033080606796052948727798031954447912455056401268852235324381611206628213962657148296324674918186367903582082754930824918898811544105366001363849813988496677765374901221369397030102586382694648718700874569387504614130068504687284314287837097593120611046587669056887189901431266031761719096501121166480806109752673971590213700976840978126441217019564710648963596639081831599495409662096842358305366005609395585450592661636938325071438952981579443545965598082452398573756515917509651438474154754621996509191504430235397359436964976475478446191854854214676855020046555989579031379971732592098685283560191952218302468407980692026804528479714879085404816228897516953110318734517659376130265693333306237757456297654145365157965894588762125863029903887457048635258772950101861470121958026160438953834906348517342040978097947690424089197119336744002562603533977619500452626561004569195234897977442809750722642979457279349391192936747679968367299473340170794342490904623102874119005801477614625761951449484475932098745096308630921301698195169647938958977081113683402013333431936841841503633256824521016258216310096301897699741243026056321287729833084476331018376698514160359201085147716224484890872225435852820746659092945182403097374279345794581571114646992163876788715210114922665490917841191413091395124984055260720372474293174591506251995099337641353656183929528259152754498075549819332294091289981651824797368741102546460919795268538213328477157893018192841990224814825347775073733138135888955496730427905333226082243428812569530758108511811423713664381430794657452051532161042063915217055450948528528437655323467526261683944349706482183412899727040986393936824047859979847445437815511929977719716361610652908221558285632149593428481589004071996712055340279250562489508951841650554247443496154245295525633760294211263318482532798550727294850770730446831751618239611516040374421986291684782674977023802976836191922476461141115217108982046667946434674022524132270054270010407344351792474571147995959902693718151669516384842160276561363170452791408424176812058371786371835375890028332303335355123572652048149541599612540923449149296289133080170717253779231365777675487550284066723554874577883403981888235562970673755670940704997907157936695553355711545383016173293921810467326026344966509080490197934509896654176575802212760881264777574019774350483891428569430428623396193317748884730988273192513442454957375745830326698096602937381124682736102410920515079786566347992296196911003158165596075096516910731239694481127550501807717004160133542531086953931196683976036543415347969385113325058092532058115916359333700436519768712580191176065651668955900441685763214685630844019017328079170582255206340125900613823196120759746678762575938079448219593164123500507402353785261421824005656403299352852072401062145026571246594153033602390731000102480365973581690585529403682757225598106514897891218197019439417731157347990767377893411027595791539183969411038326885893199200641062959606463639937096698513993989821873050975793728121500015753961165281552387754780080194039667740710249440000897208590730633268528745655735674017387531251144015943334957202944633523621645570131417425187196926531751086684231651197373996119287212863413314097641433617000317803903855022793904294673078670991480273962812892043145116184629421596295233295762033022811092964499788887261422718303775005838770627806024609156854006221970203365760655357908027494755364294267318156604613721166502674327809849436431525094205055673122110695192552109159199020512222779016391395783912479706541518158279027296030111792700739526071394566683355218570075849804472634592104975519115162261765610347773063248110543500073568107413065206716106609238567959259619229883377850005963228917942013327151192124097068159547830155422848234675617283851724783906315482172526813407254730863108517505671890541191532585172802314233752597421937867335035296214134097032583071739617395550962059234217932469092246194258040001593852395155047497280425884981869605385345297167493020498400837074154832456240199623476910520194669529224611949181998376362956778097598907264262274815602667387047256093268003841836654582752193985507940328809089597495164541547742536488706848267260503791233434841935854153721191216405192403183492223037058545344963480830075833603376772113214077454250098454438699349357673074149971312269758476139180931137657570011333906166970652362644537618057750353753467375738993817591281864733807404790110971705059516652946626001802099903128331249776931748200212546329518431509040291581265511255395555571932980761659527725233323747306607902024395055860258752965408574354391642791355856620936006113961548369891403467441992312950747631370500489173119566193464255322869771969311274981634672279841726829249441515486437556344589269562341895478408424475202346394260249633120592128254566326614470745075439341523803705851728510636118932758429493994400669408079214171540967563519424280829066799299665544998402692910782740065713994776050543952290057909606484588116075482824920310051270561136164546538309192406666863493284445074809608250115693143769767175767143569795968176615416797656556145286032427878414476898576802012668405609624260412075289976708617303419545043506583039080349302809944380550322907613571584500785618201288402982562234064676711047271742838337182880867758604406479743581128461765660736430656146548925776799991386560359934365300347402354865586366353098170494382580556656930526378633848919023030617756860378979617110932978725328766606978218665933185232091223089784528978717184932392617552631064004582742559548888956608308744700354735455793125319541520083093721057447490603339417676812069416403280657848994381375995069409087682564215934847009162601668632209104775771165029141654574425633040370627192250447078205097039054148844192345063803662545612219114714634747552377399236081925419189112771383663106954443356960472217313411992732216384171209208509583348784071175442499084535121212411903309189265524522260806345361222948064855934316997777490168511156409716803199406713033636553195693691805382488021466622745470328171558784672102707786979011397495399214714804422818805291237838294499870839628836364445672968267314392025548593569347816527107399916328465343479863355613507133421826608803642258700987184254700429801351053353498042744230546225670968165873759342533635679530025608294335045755232958678916613681852754976421392425355885108172222245062727557024346892724953374765860011108111324372329988879093601756662005297639322624441944179578719501711875005168367164704141229521157649401014593224967103567400865152245228579455521634319541524408312045776675934674741387485064859596199782522959847232138694173534300329780733039016060385733241539045534669255683053534235657092701501283956117398938909173089535319659045919285012514529815554329850369679063339545205116229528955205849998400102075492405223608538769466761079408768065867903262245582846773655422850089785838223874455209484178501640958059084897044502384613611765171923592696310371186592592592981615216510946662182581270250725952493141750601705427115883560209739354267824073903226144385063092275978200867948640949514832494526987314144978753147996928870766590631628650845849924955698543183325666315071132735818422136543199566652781844256916627822141976257430621807163114043483623822509838649352827443238805664581627672430542858082695587699087635503337169590691423508249734230310801661161880103538744830548960139652618201191503942701809661266817963812023601455122694160990447699775234847532921371409871796671329607646568672448191534470519376419435072179428752664193321377658651179818578821680918437518024716104799928268473250878915970360798051592621395142519147451412131786877627628266688000232040587700582697839492434665324293229072887690525531399343992556712487312430166003784859575818402310827465541873786205572236622172388343929421028056052140622457585192695005929721478119068141623124135251783197105572635278569566943243129134439481422419327524112190858538058040428740868209774752032593384666196922072410766688346421538348747913497921932958367255708877624043852035103340820909549736535631434345030654691519623597654033903249761215117743866353127637479993928173370851610956219409396280981052598095928496573223608180242850312764036153804522366408361163603204300844279336086636643133119457143248088606226827714508475913519294077369886798178591042678075678442619628811047932093391706757312036413397244283260109528273865900992272774479184030048582956848062408257651887135848161797313467707267940058742970300437427160820556815407953480073109811043351787160236787260534619860392972808892179053856223959237255902374209444007840757399057151137118240606460392815718970708347961310179797926284442753426116922893433503186081288442795653170947161404619222002821834978962668486532144957841135991696621373958953221843471261108651663309902480468583941905309114687165081130262101459486960290356997031532901201416666032777856393330310456124338854166707447950355891964638140176863736096593477886559703599927407237698381146067289396085002102710634704608085560791216153793951672035598542839954618919014718502181756262814204066385857748764437615338681380732902200746848569429483223220952966391794178078233982075801997818329279946094665876820524015204841186084093979666864787053032792582984594122444659804427641021451140109214090202941385559438079493405804299228552366098115527316160351808898234775373438909181618042745048922665103356325977051684659255028803670831586815969297910513859065394335347301581690429707951918751579995949340921123451510339631551932518500736692571046701355566883348406735522204369909282589110983763072014302254382848244863404644371967892189957615856886686707751976600074771779891935149744762534654088907004836288180964488224927003882075934580616055373910506959659773552609086382203811574304202149800954706810833871923976141210427355886622886883868300803744888824877966480907081924697932027344862478468744929050285638330351574683903563513547234282974758148422529064970516986693632763943070339629694043889673480071146324828415743826513730908795380385150449150884408909502674813784605322645875273601871527130569895060430085021453085375204169164441657096995224146359260626634697280840554838272379680423968151797474174932383308269124108868437886187408119703889759668474203783668944415358676222619109055759713047615635859831671143062235287388573917479752869586727144076310064210562661069736988729158993068048398172142756684116084759260828855411348044363706539499397876706986692288698803566626331020847650414882015979426721699315175503754422629984957750154670216706049686781040723098016349472251857671259961459184730822210782310394479079230763657134539042760569179332558174629104185737731047331357918996791165795417981403979591290179015703445092384711162890651484775565859957391132284808448200840677605914354992684631879131471778596357531425992833345682599074715740411682280760452080445728093099193908533110789015505995232780801546334555336901057472677598176820717013189055410063062055417572067928707704384099015244554148527495929171932623465590122916617755181522912782151463356008941971114029630618183658294259405441178028714444201685113503637687795317869966688601252996259368726249153841546310148218413583537339541358112706683545177581943302312444579028487361639374692512813486294101691969067495212247339922258854412463257925860020484246999384922228593387058785147534261914789578136663376707992961846181718913682857565112983264204559087362616826784336353311721819283145919453787716902701670020220804796748355201341413617106383080321311123092719188166686441482548648264008672038266854322797672878834799140879042568372505521656862252281408463820397087476048654334700400668738451910047846276827128068239617192046157446696402090724311993612344723582900494788094732939519020960741129671335095463693952950851094611083192994646688474568318153490165586213520123541171725183999457602423911007319457889573694560954466153005264064415541823043753967755794700070534869464171013753515089547896263247268985151653095438510395664505801922560325555040994588277610087714257944851857464027927675313893719387933518658762059919287155869258997422347228354740102950019867688960796191789433028045060152325056721614719175036188517286531173801529252615173710098846350735133612135259581412536935834880744149738062202564481009716377553312135757534544987131752704088330798027717937449501551603629102279403028050465284178076932934627229837534728947820338082560813582901329805310915826930829648270022459350313647451987966231019502876814390602199176874273144561972664574281775138968742795079998156093102381378859424226250909674119445477067598434147691080070880176986720821258327608567206865369487007607754768988562743012421715492649765240660203882410905880644356319052755675186894466722311560242526385795592466036805657642657642105037944619087502566989001084675604241425136187556913993138910978784571700362190981978546355184832919683355182879213366301969460002900887341202202357276098962405557441398950162353893867583081390947413962917111309156490403079703380100232385002322957284185603914250032270480010827404478132025059621070587367750258142389762720735788106188051360452643617749633895339710676939967621732275598952684658150176983311304680205067854353244046663524593547543233313557406064199904072101111981966111262302722929351788331190294705705309699805083869525045538686533379720393895806115211966215124672165363206720555061588149301670841510543883787399961325668519906772061895229157663462359154259074640902568510424346920634321725483722680145032332622532277124967829989475294645494424416746482571995666849962783350113776265048503818288864082225476787181535786072079869321188169829779591130153703483445840607946218436355148431885005049613618684655485098229241046362840888813764382953879417729892253383048126826887323060072084676937998130050288668667503055793330968848038146561697216547466096950467782741966974069178065964996264713356471918624973760814019282298403942441364919930695313516005672162564511551830106522287393384878880882734142375792455060815419295228219736682780927391713596071395341853093466271271742411173137144393032116460241830902795382952740547320337046214232928835883535666062695462349196466157849924673658694621188298258042063503589340892308840586633159954197515502980887186613387405834786552775556537289252921843589086943223447949353282700806876095646361906383978979815641698218367909649134669776187388858066086895713566992165444904340325497393855459268152900393039801146031202105995498308067600912738167736169838273368547600511696087801865885866969058150301162216248309114965751916870847820938378527965927590069377119495240839395373443237499483581672512250135260519848043140348011354350299600312243554423470674348904180138096762171378902412858761446729592847581202631134776456818993410035465564249526735493763741090431125309821032532273542690091194913418573148197759057678862347931908426065389050894263820061998783812719305701281270675496153671884995473982996863853923904915450779655079198181143292309821853444738365282646427746255568603695580780743724380206250793982480062824602640541623769267695784237399548226581735245594679545600057517682575707058931727457621841070765007897665031875558611254425122707881606127054083090840675641602161032451887254492686458661378246312970902555092247594085911061141839073595186540724318088132111293331355311656948798751976412621163797666736649305191876116111602412537552605002541261840306915205470807576367758357924223177074784861620510856358376042510097966097588301369604270164285213855042308986754905603448751030291622450155035774583969022489888700110355408441338101582071747142693756356870461742311045675341601115520436608311427057493893937010527504421657108328054090011944126840882653067045986274237236474515883510004306912953268691737727802550357026202342968278629093922317964782326213348446596007917853081336211138766255152326392109909306300656861909606719148438421685177085822554504914470964690587136685651544001072397527720046217043266697017091108913467369153889178462932229624103360190144829679244811482366386254475524650350711119728924841323609680779932951436773796506381126752473873625292455885032729786351254665870848915386716617491455734159357545312683134357326663127537229924425993324245217678036310825394636031477697246405357546619289491509102102241811911101517285876516991342345852858301390546367754287216631432828262078501250184623741648422923641694239882678108332063007137986401437472508124637515469526411570076935971674141408091347704077562138223064611894133360536436061916990680047268041727684091156587912741028044329248938875691654491183466156910896777371370007098425104917327292266438568386417223199952404353732302315192075762759808669902532099694597979156757395832764755367939840493158505446542422685676911084587729227011874897526146998242560473377137618032006298638348220648413923001799446379453760645339933946594869116984121700570560611947464636641853815442645786437923804622339772376244490387498364873424566498159014750303038467147053247941259108295697418538657285221238099018200523173603835179736423243689211999374192709929471747058003697161892646091000369064247102384174952973418431782072502390380066253819924975381710104953610375343323484118415985287635595967857676846032043880949663136346485475946845624504517516906459716493477929288852599878816397967293067771292538238003339677195005815998913440895592699969429743140263630998271743035219613414187212247262559584561299502758002136279326078418860302395257958586039170062064006209270459264942362769701199152613954848520963352975558104852218053877768981148672791813805360261962391077007741325596505191574527636118999772108019022057537038015580665473223643868995501429961085970610625628132578615683507750177788118958680493258104911429210911252394694363337081111305813678018155914756493171664138136552462247290490428773722379756208749972499106892939076027691601927865004532265091968707582917836865959833100286553931881175224190810813768034099203635379886494339565753089479505476759340363078180373152885196603248985942010870967458205241006787944020386290183479395989806707936145938366526465192010936226455282014652099719508096148891934848711515262687993742581814566953820757315450078791047112501334078590397633425141882835039568549227088661987050749831377974399112333704050304609851657024890683782199852516692310888989564666408166810986865094753682054564365515882171391189156509261719233511894266351987769999917533923788170542575400962521058360896246381732572524048117945439006460972824920728347759110469062753161664628943074007088013483906407264970152736472201819440506058549163836212629745679255531583229976263263431981527386644633622458010105989924407204019845679220435209283341467029419066879071276172404586908913037845045007176394484051074395090949479418186708821679939257863554198891664441950518510004247370673086247465347685374287790145272349706886245302550848323596635891425768872716075731953874336580282915940621988607584773789574036618771084156963471361686505887279972093234945491978744418367876878445776459796784582516865929922388405520041916948463209520059756040686483998905510269797598825097074697316847616550239185907545206264199992337928195398094753043834388333786459358866741581361685156437948223192690461593706058203516574491247856046243312598291211508182969964183175525879477169895895571212324084849202779758808924485722769515307556562787662969503054304444557090491472825696044048828815252898141305854034322052198773142774094136432491790856889254048829877608262412654281770257305434865374454474314428991554928491515306859703865886294726411590588807867689727593934013581895641713652438358452764484967833739117753475107085315212652279918711621826424468716881262531854751872312060193425464455781154983368777136488845822519550996531364696135889420912291995826177936441789219099718112028895455835689804817729771500073157906189485910902781296591264712664858253067836436811983036197550415436340823804524692884908140422684698655112916360910100189934811093637240355594260823861102641877802060116168463751075297908030728897634207525455396389027733726793815718774767985503301626095291914927608024211909617982554231801051518305648161349847823201825571626016187545632765916719464561839943362687854042780108639410231584233897948695340076793078869227097799581694941304386499457398925846591325014227692756019775543556806835017756445026048894952158959000861813852456217294355995113530332493976328426121414402651672204010642177972438669325048718145248118457420584012984194544883001028246000695410860351249026330628252934067632318987139729783173862905341194671259438513080967941291397435562630931009797530622328566647000845838544921918267880972671888177705299932636987107187921958099312230209240085491888561381734480193991663482941849928134798558794778801710439757874733911557091728673804723694915702572401485962916471232276661784386014076205996415157049198122190161422776777665939072402360118621425421041460406856205113844139476415346507019497133664500321835386996459694143921244044071007655686281508250949259618972756963330554677296238614332091222958556084304434690852587141977267340130702560608101314793901772082735792589647933784916904759940832381411941304860220773605190743295482375543828044919008852170334398679616461403426468966131208436439242334320069368608609954825198161315212949630743609003055228218018907088953161944588006172812733628379169793363929748367444106505512165388829410722265667315564764755817262611425791224005018040327309266137369175502209668885909365500757958833348679912038240281391599301501478299418181057505550839679158520874040183689138663104014919154585970708372404780573573718421799636288508392805678633099126736606846604331754516939396368373565630833253337773964935291392575250208084759038791933405203180451868914358682231035714873930775239071677638228436990766787785549821487431624205763354179896285399256729572369296859688235328999174782835857629483687671044502408290810887101302280592486427566798976010886259986276781033443080048378621539573314931676923960376248686428611336701690474043912555882489563092058740911664349965739365243917528159809517078600676415141058144949899349521024933998284148896575878913145267052128451952657155587632765282333878049825975538220376074431507812375756438358615854143359286210757577755109615972216015087213640050244907737451580122868244421563527266189101364064318680527898403954869773669835231503154296399577064299712840324968387955089948045961060888751061395200641262981970121548238661559469298435851629204673647314451679539975723254355048479121692289347556735055141919565439090017961490892850870408928557350517889410794674447696344437860392272540935089747807433050163478361446615125877649015227078273690484948779623976006498152310310785837611701625391146002569334720642128714648603197407349713718462179916284710953555489305460218787762470914606189455277703412030899635133522368868411223212056676678749191920219549315337922539625249354900001294626070115406408648911265234706268963503297397742510579916399015983655848080462246968455862901158340342496534220272778241243739801850340369694051404887277745809152738651436304965913556332139813839071848684614679397451322112354331541050015148379038751186797580124352938928128606790269606428863624036229010792112780481179764053940815957079513539789399789487524382960927438623475617855926589576412714089844645151102547917405892292194553671974661426458634924655194839033249123991850506272300359976005571064405220741773460858169466254618465471756373167671837926046992927444071004340106187752653919225874481419060953311895336403961195221120905339814099021159280753032559520347061881238668991750118772771884455813517658993971482446301057668386289723654038950029992502269886830748576514082592916536822979264218597469524990725055808140169374725816385017947420963109593010768335519777880310782384919862164152051850328889605611298439390482067215582123270047751132636219061892980435761850018695290721978178471287869246477813610736885600765639302142432834098082852995582943378489188973835711651252714705700279363685369008798807096441488329422061048181678203579022177063183516098036426520268182844356077196456574920154155487615415504549749770438652348184180450985384914753220000623545981927343068607896304798385139814205849003181477505163839110798544068853974289307128558456004596979889362281297977281572421173682721476800805931750735241706559865105080752159705635809259942824505916375081080701778787075965800618256936463420056566682086453618247527131254642710224472450721907502572507340615893732482778106273721474243270967547837615582972765747675488598904629723917734983495800151016131506732220777325832843234175510315707062245607523393152397883947181675602340107364784243489802576905899416440482208387534123233064621193504483999653296882024249452888248903959266780861163496721356157023007609990304449021497250896631837487281875389802225159267472297615489727993169976353987240904148623308231952537689843654154181910617264731067411709324349877376783949413273108205800329908697213355320832699584553303055928502338962779279935248289042976364587352953240557711498850038030168666597518729969604844020754735537658955494998876825950507248644416390201750155079922321591592540624565273800961204643214101186335127268784007410743982513912208226890159868197164720309319548312653478993329560251941690319048231716124425209821581595088806504845247837494034734421110313736898334305077120388523816395549543723097499840117454092823559146344503873161120242423844151085131356914037896241888281273745579887955488013064487560104045549490459560370214062526461463618962956363520234560821385615581061824698936930442668220469730512661493851631869055304421088255358338204486598487083790690598579888968054684506194519531972073656663690282357576597980409958247121354183300925157425087416872391520969908665793338323706015519200093516188774281711507386860615492276787569355596389599149359288148244758987508636149133956156212609318539423271715315645385417510573508016293756667658416300925420822059933325334603447711372096105481689818861524804412566381713628053458170319984835297465132436400235659877703171070175437667549052844282657808275718000781823148573929386743278962544813629248296583267847310453596592134940154777813434359788114415066423934227639538805781559369364565193764054315562446549501784515636277801000224123617118594202445400423295009417731817417629882253612078212759135870081265220834771677628758025130414965931230879580329414971846851601834027763363756909460233243080852531170333126355318828843691228311015026597371924877407163280249097011370178837394330169550103862744330379337017179570306908376693444968725536039379358295672101358593364856891429428720248554726495740298702820430973137927208384402482965075635900228946193107340120861378919831654115527433818412351106793970590906271411161917587005837943483442545586407897721146383366342213844708514045638790013150874134786019168995816382768802250853439842058187655679228411146978109140678156053671520587229676725201890394445973325426552762236764487192048579897806482280381313868604729671856704712072271399135532005382950706569801409861275570271521922000653795902910791898059957775719254371972674251355890957344455517865731425910230420179439378334253544433378024829681732771602697819810186955636019703736758249266418722031372832765773149928957554737149717824972559235867557814067793521445781740960595015542930358149465040273777140219625002449290709629046799179549479428741339885564120368250982461728961824317082331557091755051633434817748111096385094744771013216682143380944991308161606340549352901761128268486030345292437825272942821228995304750347053529456772632191781123512316368899472189063651869140795871055556248900822548428446339350519512638071471535274747685940186231425708645155056060905502067289233979781537085928165910697727604769084877897523388902582629520426397983078491726056008971448548350188779508935887763967191066742921245790970070560692617091560568853394331763459838601913798758742918051047793029949667802932418198450360984129036032308616858879978437681263342668344826106893516319556390009188438700504668233237148430186305975570713547006549673006283132706606984712375764730752067326591327500735550963397887089955422829297519069754022522449767476576605303366795840532608124137821939191366774528450795314323380687227059050537951227441217444177334068087251759570177607802140056055067299206258374978008163665176257130359204138148916878026977146967009633761545000185772526756436415601125239278344376347076346718479122210420795828548614429500433840513152068178836441825036181066383692542358770531345336531763078363795694226316833075715765686415696709587139341908388686452048786412406017833392326342077968856373221247319108560424436166238863203902250830023055548820010339910349149027025750800411128229635066702468825574467126694662587379274557454228702690143734918304465765439471670414282204021488069821989668078082494196061012010032903077309713348556070334260003683657437318813448308505422969062609217118069537451730257526628623642050141254778173919714916464743522502048321782179499551022153815756885373742770363567023860101684684438791078285857268054086255408271341037510803947308289903758566730410979712964063008188498825922227070622600635135063687033372921842240660092181229432463883217144726200605123834324711495247722261395418177632030664999410998136025399791608200977244593067261588367901458492007023714274889878287016304376499631517471361571960179997022968357007415579439766561010811326175996432523763405732711433401772772521896385549952619521962207272423407033785766338708389126541830228765946961411445531225920035409833124551214814418345093493403469875590111054698176326831791142149989831363310991145239219616791973346176084066673286275220098029881398295883456525096915754650203044317868821590704888873900133413011939105497202483918278389768625897054794800940413982133291104887637538937336226517099221689376735853747127746430391526243819928956202838081120411801320674515653254527817732593073080022373711316491962605702852339461579072821418506450950708757176252432938602035057182127027721960777086214223415877944864159127706254020695759536678050769555503277235291450946948130502808622371400878709496561511833048191458730601210731929619696246471791486750863505006076324165898294488940537753606491670749846724114459512314280811044064040707633555194608622711056837950911334507553244421245754702573336260058743227884923987738201620639712173485757891805532287827392108293091878529177082419612516581843743485909677694590726789670165078639895181428434994613370652229693228050405651611600322165227616019789624726050986412576596926302898156605193054025467325280276674494253917978115056763471833245074978821279274234546129056259315914353948324477467306833207114617715299094214733387804045956936275777270163571782215525410211086035378056252441330500166885352185267757598635432693724894348175326563825357507473446733022217259394774420917231247763909352129667837126683403966479960349448353396622732505400084173555706022664777624576680387649473815934245610270028832439670732454162167154687389140680801821571287580329775155305103639680792417750915554950503162354820634026621512310287165883876826744792667245849918902858207544071362633490494500471357459809492541334174113594102560695665094054667315338176163683332577573454800868715589092730616159523058756648598357707363712694030340126376639217872669821041429500777037715360210035133087683797380400516099163064855035911085488659530569875604026282803018323560401436986862023293665236306423656192390634467531504573125801095565831735926299622676806774624106177869214164476366468270359643709534730665617812385099317379231493279474864294585103719472139759005865435248668316220912241952476753906962578958571942228777724033069758124625852419070001551253395009854649871325101825114643040886081845587065627510180101316564296851042669951246299663716001816113820357047116821600992787901048741946105438401180655075414435206507183694199854373386938426538297303870399999006902299757344168032156659011873585133735034753032516490190589608363993351888821209134402947205505847486960385671932539399680670530063902104225909813959657158998651268785507779970058519300490575070474238436789582328230289165622465327573672145079165270590209447363409825384528513811671501607998548345697196811385428372718331002216031744824685472659278535022365175042434250366148134378449466906708826466406362439585394857358297263606383105206056470875932258349411572586852461855997532546529153533919935151655420347355450748013650563352592159387284208651993249557717825593837950535110513258648837779170891557428381920931592048118747906441861297158647350496650884017090216835405000742462816705052532879304114032193054851305645636082783315457198933215086210824629243339483448282418689514520655665624748709964522117233988015372820875780811121786017555370247652953672961519576237646059595481201412682224926052587052691717406094745696340716633613717850233382597153226054216972886261759152200784746720642321775399893834473955585848748777912725282604668296764387828578420364035605401634595482815208475843038816964128713713216587854770085512626848649594832663527336132349116382457328678781529645868272128363541940276437873187714274742861978083707034480774204961575084156821781527219937825737611247598951563480942196301724962803926665031376755188729723955391775440239394797486575639441107783291437831893707091465587046083522103008270882342060161856107506860807007203679842490234754401509677584464719194541099240788081128367106002494076069031754885926576836866588461144269645016016912365432256608449613339523304734710377618924828012841381948728725380133012052353317669148964783586875968709613871376045335538965130550886390639301922377027658385983142059139099253437679975705651694723819168166032728857283355449151263541747375318530022715991996127363196561008639963418758084803096025179880631604504593072724107754246629801235916987051459917503157171247038832345557487259054792234099524326842566949712544652959527710859148799713805542749685718219490320133786366985524382257271714578318623309151757503719586658055024617619625097680003181382405229845885566068113581691777244288204365881323208324879327703872438180483632978213102129672127149323317487479416098198347164066505980344616224581826884844330275344623084839228605274334077593127407831830588748674523513567717979259206317375819684044607876693772041078319321156124550812732889644251547073550925641562947532558619181064905752430907000178849995208103639120416147587252735816641664185115284511057698765026351197594838479306172100285221473686680472895485836487345459291172805201507353173707906427964821631566222959606143908706416888013038439120416402584013646766722423969826351471143647704139395313942435849087030919632126877537357151668403706001711178884661685347986371944017676964003753554553271118148754569047289721175920182864719857596409177330986972043669333732719601747433491629658593157388047405309669505213221013656211178442983988204798113499266011568831997571783348296729406071199316620437348182602608519485812535401661031339743949540785887475787434616528084836773384700512074130256059655208307234839384101267493082038045950060652618741054057300506282931566416453351221711909823490702999654669809769086308658927345530219442985706681074551749663040875943942467739830472429675698940679089268120912600897282091780510856704914266493052023538774421921097638474083399972699724367493815618138709219180352166891501184029250903429886280595010538121630065078191493706527435642465249654054334661389012002125362104707740114625205427182589785783683962931860416953656904193332448243482984358995701351941926441229247699876266162314206951889870044730370744736140712517718459277758759790486988643656773852716868683629996756267380018062037679156180136934993831021989008070660383205701852121950121662995246511255187095610847501353942865246850586495760481848875370165681823876322131321282457056592734701123509668252714435159851586134232409809285982397937994758010390232060102249361091487691128326086242945367582359630147120363166924699819029711996436047745220996179754216895598767401534095828112206834517492326244356693667740215343493244188987941236812899219730870326801087624958742775416857777220840423140051953016646240102877819033447632664848396651748568303582480473499583111900180907638989883396659610269345079750774270518909533395760135826133696262277278646682786493317321098156348682619914198093138730568270974633187330783316053107146443500515251244773919357153080237445160821813669694047951990500043732646758620569560166345531494333582638105780951851833368359320933489099780205093618571772221152966753570768704964612737879033251146289413600361140000107091969375887131033253120767807490706694853496951209385793063461060262078859055068411112438667955945343350229334877076647997659409373526195041488500249149425835172470356420397950068567848473111015914668518070533904500100186564710286367556884122311315414016020105799137803789359456978583619964268696900720434173359273674928457625696827080971262071368531081843540806445347716992611687106709996086330461288921257536123926965051500966473091697694778720819186494153360081337181930891371442720715017606891817982989371998523561425619925212276105542417144406614157247562207221765738942845260318633291521197161293685934412011479216037914281165521450098577839211539944559779639499733013657853831211193612985855540640366252536209274916871996216310384393220532127728401851680515203778500167962133965082256083596081064506570058482942987008588342827398510812769870052209387264654080403893167399444914432490728643561806902054699008699260480725592760013200011969899913252177718126474669662352465313793485238368755084398678334434720332589810932739483329361363676049454243127685657816671188018411029079973087913859032173366683627886582537780697265235441673022550006737141160512920855760473908923784875894993756926821578617103938212075419138547074467508665435060822951300549526814375096735312420909898218675282112749426063446729144783518011887757174693986463092715739172543945530808560617984888906685136064636519389300089909896250315016890396889942537760424591765697542789296045950903168929213791434385933775294042439240033980026498443843740085523566798549403108274512161768512866363364075612613030949828918530291098404445596324736962574322639208160129806190599901207608727622592973288544830957428365096939031269111145506035005084654174772089542152660480843055027358809103246882503036554539926335883496433762162390326352163513868842893211342716511251359048463655303822687519145152039464961448247206894744466006263979594395904872727349405893391150781776941129388506449309899291292084545329633975656581319193703252218684048401087999352100778050239959849462827827248195352306709885096163755804134041601557192027055845259398257882002256085559876834647193904186905980529097238160492632148128484161059642971662904491497934890357899318335070078232013531238484200080696032275160158403956207492315117680888362051944672679412791792766233751956878354387745146993692680757857692491683063846819460829872015399323670642722978366839738584635664807027814092528764015939784283890021041901017087119981688740908745793364086135471266276563939142651348633821746913708431936926647759150160588321885908871144828481963992671398684478884349081196247686595665162893537915449073219022449578109783299336551251296533213047280042427101254427641605126769894272153990387388318369832255839984170560895430669571060365007946250099954679249209860831472252698880997330877299903226378973727357015582619222170850595882575758282202217076897890045245549192460530010286670489861017011084929932772455713465905426933122419639656948199845515143815595784228057673629721205718078282923395733423403682892188762812935581213233289599482247661060594761894837438431055961824866401341023083747032089354910578111514998337316992411071820044500091669943637160897280944897126446359462632122231303628911326286793012615993902401935832147709756446088242671002980201669934263929042448100632321526067467861916214554449032773262341440951107861424014589330357337677187719931123009557252717129035380081240016234304512533114844171124871119766341642634408671748922484352906784670489741137708338545338001305073122884926146171578093779263488822989451263724552559957479898525423620809118579643286293629107167313124438868180305106672837442784825593052554467744079636522673508544527471806635086162128723364206729054178644591782546215324843038863432295241964738625636836642962274376551753770797379078590676953097046469547452292256341401945879207407781232562679444784938488679581409554943074916287302584181467212698520980065614569133606785061069209718183464075180326099436181689961008019317720304916976916471217482697391327374740330540631188770643676358147079844518759798961953141687968367565601495925408909561222323009067030994250598316516795725687062795518510287517446610583042734985153508180891527491909477151463765700054476872589562055723439707732791111599507588367794957393765472758773883605014140083773055472119698779475628264825637286636674492143119200189866817024743858362339444818303092752343135141373758075732927309841726232845241493619439133707886940059374073925537412640039321239960785283232921141597535766403879660430843704307098399240604758281400413571569884460569432820573561387792073895109210662876362309628392295916263964623997622355310856521107999646032840322265126432650517726169972342050923503185539499997442993136947043218675409256492280944958214845349142238754751515677012537438782629044582013085017547555610664147562508904747251680491214366271691277272364417433716887466871133249030000459537192000562971603855122965521290336373402688128501046670863042461908824862043720332247711824917814720035020618122440924315035281610012986551594645923294104028537136421367547157434367682517400655099957557621113775057087973777292946595679197538384302254817441280486395787550926959863962566022121087325476856947135228957069281525137394378580060328014848142459725569307743289918418548287333993602370051572109510142537624538615992904576757260817912101655626464605323707592226671937965393568066375988532710674209427271357784953644683836045765746042529301545650482666195031194194721000288465980953606297000514805165110485551811918873292832092435695829572719138951311770571546341858682325989224346837033913739165831661666225618718428997625908940367212611116589237939209173525921566756832866666715952561713856608609263241183962664613744169411124265754873311268345510554371806032228447157636073181079946187057967632461202597336966716257628654696040259676195943061395334110830972934749571785366250088513286230288849963775658565400321702814062608163912874281262000537952758061297298354020462931959010076709786420500698271172459426186769701847668595970227136922156624834927547790767499669077282091385250930466474379913521103969882963965921958666072344874297983155221194275356261013528319549764446097593540101759288233793563177720630180439735872031578125266967573700259206189032586236647137986535078501153165428669602440138775191250407417693080218222179253254752714111315408926303819534724857098188223412923957396244594447270681024132813613155367531664012052578450553235044478366962504202549685619802886056943448676027405207766099727096967301860138254413639123736345034700925559289226621582897994558391724401452974165051686650767602379583981457084522164419479707377183126707092993005542905943697347873992957561913581926053681673057657003758698884921349180734224045735454232883304739244692973350035206262793851806464512907165619947981954200163952228005340464456954048745432572645117871291293939509626152792215399602813193838444506965954104437291881741050821271513125971026918476080743809828774291249531454574646090734669616222056042636008281010751588845848229410382189596672871340271637361400763694067758274825662963491473750733822387393403195943828292023438198738276049301062005548281758075506154228652542664259752167112094821451053590101225487906042123434001853211336079286849265513095734390577037945469275131456411279862438101252084903480882095532252771364487593357264881018973025858942846184432873744721208358954491194379438149932293055623446341394501572030852081751821581373263191912967224158077994895254660476979322561987084259241524105527557074935027859100420797074880955302033044255527324838665326873201569936797544151275493896879736116503266762502725419074931364007710553255563282118994416664811715627875016032575652987203721133442196496021437022371136916799032024156561804623663560396639274398563876245459827825661722642523966848706374690574621854997697335898974044754347681825079590877135270938581086928596190469131730342428157903998547951145486946060017708837394924174471763865581233248357061598797351818692932817520280008078538613481532093185180048906958876392641298749759714888020778845176675761181119829102219463329481749369688606576032019095127540599316017274709433121483094484948677316037560409835934096043232299034783669641148635873548120707007854830076729601815144784687839335731345176067534657856012030153478497833168790594312494933347835844167210197806328152148631832410720305327362813698445263071270955393230140573575391103459907099768905053355800909065399250667175390874893027862596486855933623407866689005214503282780188391931817183824472042563327074241773169820497658525112610053066504860067773264253259934993429911328180714928185959340411569361878653582250810957262596620040390156148701681972727658757714995533774771016732043069087958150821859700885510922346186160879033460879819586950598089397702324961644209287363295178801355946350371494266577619041469535757915555874994013028923018538994852940968683208775826389163260102676864891618175523997486848616783654815816493002622985322619747747844461936053350348386320520249347735730749863953042126756840454443218792152356207961393090803298639778685493593586537396257989279774452789389157881855454617373099799289450102010743801250972858090577804638173290756859023198413074374739508938529600230489602280638650373012876386181745562410131071929673391248137746337233667723816777972187649213064655469362939718030766368354567112353068476054908076299062845478615724973669661732128911184160947263493306760393772613122090179532464389581945648920094569298155949963368032643896015110548246066199808499104281955211933504789130035873752570333903021510891794442376085629054359641185459279403531847167557986275536451960794100755176614455222056592719422753946790003233713416431190558965793138383154076442893497662453127929752195070491241209703962553478850415257529504336827514204143741435257362709430076269378909013423968318159095805832299757696282695014635540785340127631019479944001030913352661831354229317468353730333280355876410374019039504364417746520232943923514132759329509876758403171551127318774649626392098658990935189035374114019405651305189659809316559588552229674438702919152761970607859298471842900122840223547848236353053453701030677035998383424668933402760188025612609867255800615002029875340407151303285038976522516123945936274340702388238271549669468769713375372624999076261468511447343950019672714298599157012844244604862583413223144554495295738264105315097460498374536610734307613872327763191993784812133153609229133408710573578034204512768420486857958641226246938632531990512942607365574176532666772126189611701097971375726956557050363768929966396815509409336218122710458296412769453369937984814038596112437626503846139512782231276237541460955801553011952333036245248435907446153532780122372374043700139288976129986314395134681898350226336543606420973277876754323234569751729250509995096810147099226470730774123848130048673339932997512552893976629008296602254285041869167087278821896012841738049413634701844104883725432784958422529419988145703338181971222892969590648270124529126923508873127950118598647603428665090155231649232905535038138568274104925168596313319764885296102457127448126815559950095631504502500112997576499801127661306786485218441501582012879911459617465244475347728082977875084151609969418936169004606772865472203343202822930646549879446781565988062562158682130338672303115917251998966911768988517049806063734249249403423389026411909911123811087118481838436243020498997212808186068027124500872703013594334336036551737095219390583929812291222382354250681390897488059493639401708934023345004582438642825902658678070769069362097268673271644536667943907015980940474048387873982902157594159773368845264088193175258355950672268442678646755237390209792147994690745775159627360822755883791724089216329824988904062818708582409112774824073611616347639080747502309688666475132025186138658341959932979215181594207494517849222726847397172808928147520799224260092679261218294375978796809901193563362890724104045685551280768407531215351164559365743976125706874244026583857957035630731750705258910315027424728423193816487203669115998043558578617079492517937460380229211265432306035085143294961150284117891120526220017552750189849817146070254667403964419288655700928156580508792326679041040375181147136283082568803803416887152611966926243635348384821262351915288632057445388531473423171085208383386048943813354951833178309645519868295115366679482397118464252348858002873808222319554589770646135456334054707942098134201081586966821791953807338153834759836024430653997138641067010285513840266791688782521995364305412956965860347339990770734698269447030074048840027141001111706568728444671862438914094519493696471013087213506517350347740928266276549079321693062093290403913111898217163394303710767219691629810591722212065006250071536712504710808695749047960125433898429993834219339091527906014858488653054959361087743728818308444687475423901556451640807048908487373396210699840647259689384918083625401297215512903436746131125289192011138706252705616951350790598314799730127010974183692282391782939662247570152565874672086273530654185695672718157720744587333013248197012872165630753396856198962761344499254070252682862555088632459890825213981320505292573383174077973436941156453987685258908884507761586124457635266987449304897952120851546308571951116837519114340179022052863074595116301679447684429364975153808584651471992719900386809935551314611534411361387814078125352428208144188478426141670183546527043913815007095262849665142562827812382896743590405263324658525533204817702202373314195902180164233709261788327629341966373734580509238460968541753185087673904089820840207883096790008348405415097068045410814499786120521351477521224801789187391898867246104499871211145675791280604276532342451571436394379484446045636858314961595514080014126258404461990740149044208057848792934228610222577609206424929806239584133999431142211445494498185525954727618137614950410957532138276505232854132991824274580763360608802021544136513874876811048802046246817807490216501519157607489924333784145673827760973013943730813925952823158751462084640743285412291221121731793611094608548239506283307731148356790333398243873345897674792096061871005791508273162401497105612963425483623484522298198330301474250755153884204846425941487724967144391126256989032104601406617382544846267363562925636369894978795962915683140994329188274620435165840478880686157725817297830196040950317946718885945242888868857948827731401513137314840128593875307797361880602960662894658945084410290798440130650859032057944542259937730318006208516942932948652226179576233318215701375956438101888835430187616629950501460326230060770132713124799826764182763610486336292663600756763076950759968804760845419247894310948635416670922334302192423740455899117858046338680202426053179545946631878034365712700875684604686640611588544927489702827402357818712875453525525867902002285690023784931000424635797864802105966456910387177755648102811402253943568655898188025519984337140412972652590144888046584703683996724599204820379018118918543637374619886571983848133395250439305321960935249297833999737061869024944902812160132873160034146805583106070009568035158631121763474246967846371307009533705731265489365437452003124978593897849959786075141536251671177789720496433957013786355783505458944100731430819687110375307567989654360762313565701818975296060399358543703554725741114628160279391856218577057628788672720650498066594750656291345138956554814208468713793407691940314531194809806493455238881789440943396888263793022194933778345920691205020059526899774899452724584343284522995007143737884149991445210997373622121667383286183826079969168174674378593981202746542208086328849774273110098037927416341698811876639844396986360789399636959522922355108747975765262729851796599841461697835288171354591609241656143276346584526289651398198694873452727800432547241031971152684645696179413577527329879155602283137609162830081059696784553069431143808910350062862421395091646106043653537424941623023379535659582615640569084825693305298675894324265966616276832458073143105874433603356907596806658968898886249017854737795714373912898821460155154471885711104433580780432971907652859768790267949330874264037538350437361904033226983977411531691977135631046148008818012713258144860166875015768541881280803335702444197913106332518936356919260279443095594717238643777016666736538671956304341495312516102437464540842140430986203467722995161486503782752903157477521364858186237310094581360992236009688146840678933906767095429407351868014171422122789345708984230774084157918051840587099253585135265746350079512166969497255282756622123742451150186949458822943827621084724235047516362321725360103945107508130734402475108006719797947038509631774474415106608261395800693513288096643140244162843688939149298122576632894355394752392450646755250664516326574076432024622910207010982859072635740521368799985456452622467014068339428363163480297029673141423827760478094251617990128980288723835979984180551310626119899855425062107771887704689952583554702479156248891781321017932135806863716162404065576513890222791622005377653710447580899324406766884009958431481849568906331023840675408328945222223535498109441463437656190129811585793878751972186854395348182300406514246803575882374256997885589499916245173323924160706172837416055483943039974920554035523354709848402177501791581150704738440218865357505515752059152142334888349682063459650618771609536842300749881458368303765660308409658870787423874382452764814501649086281329317875235454988151628252013130144079400965384159164852156935682633977867613821607743748694640278462850895409446444533880195430734878699202897999013775727231216928092294444507818157751859603774222564664991697579365862861088673690558884348974104883183550563608243068080351242488401813281835234113361620796234932340473940723122988499474085261106429260898790542004553185272766423979275321328697927505279606751660553788980926318267027707098435105139559537006695446739068701524649443675847665984806674283226480685666927785249600141755089877033996683601368684482413908140492653422278409148905928640638479888164896368524736421061413802458051083322786829853457922424303798961236515499740042508238154847131673411977694730943085585239120732175487598594715177254041498898972599981329206699988058621929730685801187781870808630574113795805229457041733492129827752988238863424592216841199685197772219336054888888353962141886025070952530310150896004695228570971599902691719270257317717047574353649279340132871162265561458090013607743229424385466627337757170638281033113477205425428426408062826939132886383821703185198769359217240136627152963320381399030360932340594030838265192345398909571634639198769225934709965012321551570557474095095404796313372808477647549973835191842603237052820823400965773319817935222980571705787955022890222225415539694940107191937337902152259735676704415760744223365435664138355040857813740402840961217343344789040717509001387539062078399268214897632339497298292936052523955507038833601041088806913442252939937567854309830109294950461494410013266913762807015028683745320208491889162304960101633778863735520832597907887980947767184898656309524714637752954551039046597573748394892574103421223256512341041703477446055728451179973335461890113979572201769860502307201204459644873573234667024540118551445030135256427544598075755482429064706364827141284186418259826334008629274628422481690047289220300331507703952463450849014364208296501574479153802806685393223979597209751210154419596438140374993761575371118714091382337995521913504012022258396087203343014868033605105261612220614111284406605594019307131076552262295307663340878331408359766745680318649294358521450648752051542789112949974600317276002137576862192255724429444278218835232731998634327758456584514595394649429662439655178850413735130541669767931353526056345437253764221057807162585370761575001436813659998703774304101642807631723022806173477694101801353307427459370800838683285858192471924969194756860403071510497367838100214642337811198197410974994282940142988388195901461364941307317439609498558575299619207509207933760594514185885166610491349892285047844283466090949796908845128736172494505574802849800035327112575745665000103495037448999996440466965560134837517361247214091732889457560824566221014362259446086567176156231452427471670429447072106240944133310032950117508859758804757467775305699265709224705264549708170526392294323637562240565634615227165863947732506002047278580328115036412156486350604730439063501053110125269329696052436322771246738565669443394432523472497759864930617697855314216339057271147534191711405770371263758782501032872589826983211028110779409122202648060706340941955475156253018284363033779999494385545268984651413816705692952616585746070521021750503287049478220532808487988641774331728645204529083426401312677682497996688257896935245866490527778229577843309277261911073518197046341548592039212866886089252273747053551759797782275810306278778450604334062556521547563458293261187102477234348566473135999378729507498966038851511191120059792024919291553249601641833872903716780762867501607111816842975406811395034055960582472471276309417021339689060077875571512753581729436629154061927634461648874147983755953332942238461775807550149397124540100648473549195996914647546018542985638850887719722181675588787669663623303250869593322030335816894978462010214235975954465805517858866986475905666418703807931168830782134211425426757634502768027004237083336430600775840071032133877147015101929743164462769149901739533460756787970399914213189496068163301649820381710354655808021166342457546528785892081977298587429770569519901595763271596032224312799442203070711673613309618435322073684198940645880656057092198766758566350166595869627095865347697765190772414027388009958127993776819412284419332962230645839398700738078277000194186652839600046890018659671055264065728467779979504479257927326243802656159030751576858812024613934474564560832342492847530261243791249615241853521941564396221228288717631146912989209963806741143810818484538616647449372915588174704267738977468369792689552038516551539039310212613566613237895363087148274868159551725587650655651235040374685275320335573140295946124844238035908661675858308005347827298994600259312555358445613397214656451005705859670500677542668715340168802586069503891754554435118410181612025319867454906422552924744476150013442603046140904568144280035582626549322372936256809486576869220279086114233544385942066263828186221445432881944309220981502367787316717910375125775280297861898290265343952899235438523571167254023911759752757931034729579613847236442046991146993872457398696174757346830356600660882672938708600042108841650750928795846978597721998494702083684734653303056099134686113714870693055385762396431537823323686334317250047485076020591628659818521642622427435321207779486366377632862323608128887625140333637738532032283565865842012878945676399372581039835008969927019206604062036048785124052087157175059431583476333796147198687792958082450781378090143714815300539727532230033129220278646899654954043879735057018435568660033126563494465277563099438552206764847268832659532074817837599295927000807566730731128205193880945109246470212940027860648166326350144418631232335826668204598908246799068635942624131965666851821883326531208204335968486097631379341664833028741851789768947645964580592358004982032086930895909463038217309738266431774007692215076119417689449574073236487603290361069870245331100674344767632995089307247399810296707059061249120663450242270739495911077858495016699002324447347200800853055765969000275376237845414481212322888822003070140305618893204486738622385191236676818657190058812886487181672570151765013593744167386761773629993962904296055416717124949538585114589997644312310620754642481174163445752366905934880791000958584669350087325614197596089616808277648777750640469840826784613869992931687391018639311703736986938102213994632062180103470778929685083925757958773082080579241467669925208832524617211841722361007593027225763774871582875535167361600018505749858253504446433110744052291322482476688652628027614488557771513993788254309036275394530519016446951064714318156102256999376703029184339403612072073396882330335583028751797362662656244000438360367379493794097500010126167925218707492423566162959358977296538572822229083181045206268646426685134569595179219282867457570801572713178915594725603107505659712546329964363656480033980482002944793991062542606353899074873145123605504075413756764289333862848132647412528333656148876555876823052586854701270647719507552734063463104940936382988023432765654227795149364050629014438789601423949932688081039376222362125455538170482269260372068140708654793034284975062925025965703005693011552725756645841443293323145231358092098278417663724236724404371139704255877137152371553333090790550169590743290673737353132304243077704438455214758414448537961263988919449975804141366142521881307553578233955068350633637886001763066995043551388761145356280322026407282459567208197120133459069310056371284676822181070240608776063519096191531104859386646827339582904530561549876830631499591629864872542702140227131374110033570033420513222697257877039520975386274580693006450954588128363798614131225986720639659708862535190832292990493478752479587032443136252916052776150720108399842603089196143855190610968237957712340437832709445275888421719933123007531231584998531733393866036129679870820584974829592348061167679754800606144684095145573214172940784546327049586321173625778765653075140279219055681183786606956485531198147184565744328932353968292832852684482894723544871721801321632555041235992627676600282430524135257545833981702155800184900860138494848216642543650773686347559732025695498753495036578729181789178752281508351200283555078514125596583643829652568391403026783128877569109963064348441344129370373140306351200074424276527291458763799256209197158404223507125331283270039991259515167361213595277938599799735327473607287107832585438617452098829146229677381531015836634034387972704215584917635150574345514194888300164009695690794709367955576225899338149071804314185978881561680627426348250662396261204765057653719515669445217519242217997751369777320903695716816207142830905035079323082616722712914859600735874912709368123999297441452890792684143813255628514202225412253143936941712205361423921341149196111942739838902595988912632089513331486661783293763768346810336334669190393758465779304115343112660516806688377740169165175384390888002256265167141235144707913985098442756551257295026123903548221279792568155062559121819991682506766762435853216386884014930168492066807835223232079651909858454532842909410450507155673340812956574724769980882574812076096745610084350427913255489302854225813886885257775173966086469263234246055199604611037978361614190680280837072158874280960681081742974319808211097782159957381958593931128603174165487905410500400602573613686540112679264454752973375071239140695773439262527631625512724362974893761542008619590172097400693459533040293951771216716638289883090394834931896560253140991881240804766970640311470189504971818167957522460718948495834539183537348747761441544648856769993514167264386905184963355482258349716230154011139852549035452867485373798654030617588736582171213574458395645186851323109644596645463864924228599174121525696069249034230102437265330332741318433992567698542674252024184259233824424188284983305393819188674640384688653404406271202547528416995892514721402150255690006163821810971820190491526947521769720056737242844486821739555918596731481068838005700800913498674282487460991688464301962191367139286449068035438659785018498825568040339631235097804081378400254137235791327652989290144733218583636507687460923740689315839461212811179963285981834844417617883586311920177468178967493810930068083139220853576530113004295795226825366666039764224936411662394130067679017742233414957979649829048486854699152570377306677568923342250157061075810048869575093740980585021660520470083503440984634522715626128524770643355452183612119608308988512552892673282070942980888952509825626323737481813832689777796289725471094659726985744833579055163414899995952048095781468989885891868158235033257086579898540004789590848943640465049545408802229255206230438927665429086195991390380063458505523644698603114168695287113771271671210429786533451549155891414999770436051571642608457821532065834853356230392332335789466215637001286061821958788946854163794867066483470152469860410622402406158286010960046136249984296669327178060938139733050749595220759356881743928267329798347735037457577543638543148132591716705636875691784350034422261359370903764482385027529748449883647514176025322131112522314078946703186197584151221224699695462070065198615218503522487224087262377612682444379550152015132772393413610046753078800669989472169129808473258192390927776017500578471956215761267893490948854023702843188341477535620678813125346745213372578314305956571524353472104648566702059207091026380940490633711392287032696203536459657879666269082031195444543929026404604746513838205461837461979197571655536397976167383027420195130880827087466426930351016257595995324575478562752974067576373910611554400533841070965137172735410854026294869229564185964184631574673228678272631572123053145057510493364070504164251239412952634078119890134394786301562542761210104492898036184978002408110883501940242307670323720778682517914663890416109486221638888879294779030466951006605977228932698575528900262148076972843614022792517117962074825829758016478423748579856269954030141293757293245931151295756705566147915137442939338971494779747992840996883258360155513953736641081141943297547956486830459945378124940209138738682746121229773467374450435697775673865398865708325021150540573571094544072655190728880691140147912572909732088902911282180755536054253590010915919503753545918805866481751056828054863977649032075734245823998557033363796883820322520514161279227995598760500705392673664162731360617175456617194879992627406332020214072017971770507862516834832227959196381717794805344182444309526827092187254985087362804721334552953386611705126605388686653787533683202908339836688147578647948347761378789500280409791061533432732911158384168710778915794629037431959916867225587296157865673226093647277041185034802073204113983229430940712559479656438359035959165750484170977188071350716161212827904729277138838273712467263806579306758401141438157740877769451056925566253843079229397688476593872048421341993435219702840412608001603146334843448040291656103930667760503962133546411659925495618063533997744066294903276716743221131980203660035168811292069630685265473419034235702708741231565166599973748591833461799056070865509521425703944525208276207926103122283830244050187799253444046023867686423290316200901580805578051047015520722498983915779529554461264598768278049968335549223131135804890016016714589456958944765276647545109864411295707131740696274908676169096083720913529643353719318174597993116112458144332533839425421603094077748895793576391511319034602842141135122018653579053491512937125095129981239065851173876424051006771938675394624034393269256931562206140221957368791697346040994741649992840719877500809998389316631879522335255937008765950529496361787664045070783793091193157272226611015224756975817233311623526687551671470913656887610068999046375475929493757026172420519305519127327194584896464836490241638963307570270121785622767943546980010491871719099797626423554652292887342014276751970628307708952575204523589195392286509948340243699702776120611421094530030153093677113190505566931573003046593419650179131043303811339299912175880685093882892038519709405642047981906006748741594160561559069424819852712764416198311786891973221947340558272103352264365278705448983241797260888707420926283712727849558767376412010474072444942665549644994506523992221812717497262184340795145303542087066654979884538228366516762869045686999584656132664325154688511220455593943155052537197507313965437866751899529479090690736210284731047213302650217629283562349357097957647288842720869869970514260834152676188886992213955446001470013581424002848775417417747015979119841503488387652652774715075576049450542433013327887479338272156613766616667952258909409321565760355608159966966445007414223516863128100456221190634700559125523605394435094826939674021606924399717055212981502000775140723964753037329738712037237116678033446480845093222840300050021860919522686065904433955258443711736269041153426225649018701146190535000130490929250761105439801018450153477060489758399412239833533848976060564051229753313145313623934622092229431179965873314069933014639824615267343466695391514854847966971843966613417687191704232235999316748395311727112322465906400324018602887627304950981287924777151430796162032264156330726132777306165491446376043865596092352321635888713671899828037646810848198823513321908016351599712464807300561691414296839839665844910428051494035686688124342256379327880155425537820029460817925665608513162813149398484224532590991746445895570572624280655234737134616759637436266072204717052053840943347683447658235827975044738939163753531180786820878411391917902058466775460608378774005560310815038725248516222770767138607888250565197558644895171647668876218181927844043470717677934006511118568574493156444147943203910393860293616684511844613453897205647455775385512660453452807524631914458942187881223048022692462302861785937305631095658930696935673410085800248888391047342304503721730212385072362480641396553847239981778062700328370591286668877628480246188674248334718728991836506381433316418118118290966153453740054508506837003054077112565767592782737051081184339609302941531241294930558607242622396121596769174279794645293273990963010520352973609048352155179416826651559061229421972955082836489893491532887141736693727375563893968513591815421076841280337153886342915686008576491656043573326667239851157085897903316367911229282817190042677652133135968484554974949463766757888167600774640954515031980998687745117961621959793397815164507604037651474977797115599695462082994118584105751827538351950793435887152256908227394174892155627612380172019976109460604795228995910941549676064910713629811980133542034212600220376714424470425834622080463924682529610395755823888560467548596011646641920801502144338406500724735112820928171338286218531122039759018610694126976786188805661196816590671432024326008818580119967466639912898985849005007637299164822537044196580600304442194618036035730886845132479084061615000801897983880513468722331856488333021926406309274858183998896633168105202527703792866396823301441680839239399318801217492310072428065223506534334496955993142051870912549354361485137365165115735308055594510441488492217683744041293788777158289283109563274052340294756250426442310737594575972966102028188934835220822226264611532477991033747644193630183680268185855650582779616502413345646630381792226247818621033877909109621834361591998032275898779763867400110512110109920556112241729269512063795157391560136383511789063286866891438731017553961454006409705356882232141313699613664259038705437536242570402293842939968562065980149542403432438757243512566468175158802588989448115505543450478415535803113485614684502627873482225581761391382505371739800277204516305689066176105790031031824715612359067820096962319356696232232545717096778877119706636228592481301707952883621870032800494096445085194690017157663110247699638759207273626803086033434584949987901139741549009934406113390773256521254385261494655867947817079483187222114129946563197833090794596168259730848611550983705075157238762884002265041051390379635390681929544928541907872834513514404585202777587025530067827827881418978451518819018717520049819342331037498169555928066522733178257696432977459656355179853900304568404936382401266011565977074390029202616693766033939927477015310385883434296899640166159216321659725135354247403260329949924062204758891372912758523622233738852263837672676977388964661470392223637067027966606480021850076923275027815633868053382528277201385207647840683357344173155875260368980925499475363009768227550704240638959379740686921282848745175548190633267821248847366196345558565970121243827632245563668952112894670933291420201143740875314167751066516668316924435966708500988890521825089576565262835958639720040870249641440922405330523769137649722135958090806132947682854930470009449324876201240209656054940426934926147904349496870444266022157633080878644959807524644367827972501298230406364910010841604662722375551673043145884133360105311246339975968546857945327071830215665984083271559136544143054924965689557526919626933671675298480204360034438283741602241056498799496640099490164551346834092189410148742915985451106374301631414752201279277132640017647001726871244010925060060810593159944315118305881668772519597373806105388707419660006217839045011145544571579172523643007813451113106001309095219184672849371848546238137475677771735131922038182597844687540729703554196311627129440871770786936419333422611695939735304672898361183685920669678200334663594295615238592353586605297458286469006720584169782789192776470444264060171922721161554584260326016300406217058498544452589616655795829438908269716185631372028623780587082177966158340853338311473198543684701332354051633847905402041242218954432661500900978174746363953455596241685203019347031417922347599161756196786577987644712475080662578460670301327392692493256363340071511628137267739810328098546434581044675136465042121588644643688104405752504272047450110438625759010760556942279657431648210975113728758308142688938655320648802500261745667761520081460873130645377590945931880631331293242036031705410685811683302711068542148102335806135335440858091781187242824950118796390885012314318716890011113401835034846662860387004334855069277777338573153568070404571663455667098422126796161720620981813509672411278305438375015911024168369569213614720057638224046279200215299880798686714490552403088171131133813789190172392559483356580782172457296400240432801281285562587536390962560496713228805998061429145743552346799383867143519138493052880761435047692220722794241392136278308097835486450591079261224029014719309417430805975963320037620558892747115605155090097819165629743814183221848124900948199808916396882476747129202962344094669753525591320615036877179394746198384905553506625635816556926714682946682260057629735279401404404883021952167227436310831087500405181745668018000146460894986851817772068474639221066066901582379883348791537214322690350181045970442960996672098955477843682721059307991716942671969853597095248966714374731885605837950843962355941224843396572573504440422354893979218495802804166955618738423666168794419406571252775401953244506991206013513055620498212798030143186090032196964839880747809661644646991795153682397681260417877853355536527753415856615078114682645498879434405853180464515907370729681240607371827840642932550519187772622269552209810540426800297615118204893810300361369391072955334417240102129807256587430438246953270602240008755483250158973845688552736102250313028273529633288624991396528430113945613103860419323903118135058803173608576327845877252395947465018165950756779646637950411045625584496250306735427762210589545861866341506749648832221010016062479304413544110398153008930410619934899421795826692171544473378775992054386324272333013718206111930025140552255898358239002458226985411322408014878408513217735658347686435839981550260702880526560718548093624524711525411499841161068581296186229065987102996126401639127517763407554141054598573693010499573084692874623191251522636084369682638000269476878460238405743496096318194196608933109392941102750808001173932233436092049796163432241114636915480931082280494764794388199337049499098856339855129776410862427602960293207801905360780548157808621494966056104958496080892931726078698157531801439659029295896106193596502130847407709883552987701135452804790093022867376408813733751408670175759705803820801112123094724051112161135315234951109204756186231939551703097298615590425324943003712407294151329572744252020021559163481132130843062146886211970549425901313889037894457902716805478616788615504349500772790358465163246613783030505482953799295358986128916522833648296342357182129536686397133724470503622762622534707777909315145520699941475451431504804992322853209604861567864557178662986657904204162753766613453981319745727838583889015702005402546578146146515444835698393726014467768154941681883052193404080870257086998236951695611952440000393723512891582248522219139448189469620328423792919958061102660678495580945274779204887135549521088540831759640607819728350596760557467572538963648337625897120209566501420072976690574830530843126849063415145400921170295629264972019398207660342073585451675122652840471606045100960026210727382630248956383900376251240074161688338092579922778699556849727235492151317309013758204944415078671705670403678760092163168101582837356444735258248218295477719870015202454104356370414763164516141707143964406013706247958743640150972541484709766612547049747217746850124430698200804949353172135086053868516509011959233569005422219863593366222552699761943519849262595783777201676556214324533521478261106653175504246246658815410841180527717071812139601284675998406483549701730491833160953547373059837234271061352329774999362435472579426565588287877107610599464223282933441798884396239298929799035606906192023302233404936613119186557366927930886372975056415635136336016544904054467717893623043148317760701859352620763386345127703833635372653681409919881975511566901539674009140773715862967235777905269892466114436231665841678837126168536475992424655642157937792179370020943190248964803680397179889558275028164241872000387859122803933255276543680555729945990084773204565809301272816825558330062071628279966042546057174224955844185027537779619978116588010669872572965265847450665475080983937528687703468443578688646907094982495067147641295449565357701382675524169163267742910364883462106045160818589020873951954855643787655260645618081961171505430022022357608056254856976240543311318062557503313801400939139754675887657633095204015186802364932327263487449682465043718074246544296259799107440213373466686135825464040844520717453020000805785888918434185334083587058746354578685348339984118562741476352744485912038430178002516037155646753085998395061234532096804785096656040637659252032181834545633910290612210861693763743061156656969611558733661604346709587538677700837922586005379360621599241335099564158416521514110561059918517586507408531130937959245653963303023217342800618553504008418132032645395806325583013844423529266679156091331464221855639191591499157755985763256406139339184530311548840620676152037107527564934077410677289238218332793211247071962221547325145331751127529624720616512012792176731179331067062496820177304736059853830015733565360138111467522773943093044656937657332696084524919774157586555905101648404073993319782429372160151210398996063511173569157522557329253949385898243194558121609069695767922629494966845073349427367619954130233278607796971490761340533795836110073233933137064765712251674404404603195044572486975619600692871401634017653586484890060366078837844216814434579495785008202196319054729694174297421004723149066361608037925744400049126968525602292478261403995351717293102916631763676838888743977250185676767169707499304960142237112816062629042438204116444546971248891546513251162702029558341799125586159029669823295529486753159709267570998781746970036108675512814518253397043930542514822442920278225752203439919111255234799048212157521736226386963946748212401243254483678436446147296437777654540016871667015003081352620678166580188205430089773209267662596805373032624167488775382129018780222437485878859858031000436689119024939383914745441934252877179463262792559241718463969116426115524692800940851129648281642620519230903385291823696141811544069399714838633132599240875984394330702400744045282842562030508476098185036665737415877234835399253009262858588716654267308486847006306014298364950177351973450867453181305983900462167808498492128258146064450194772730643826648838662003356454693855946728648042178418203653092809531451481488623137998820392693172576337160211937892766112942697539527342503465537260344529897129797991379894854458458507891734877961279831221558387995771199650472950640964706000528548826587462986406764026903765315215408745952238906392364586758423325166344460974431882463760965850617087809517365641001445252784629829067533165038179256743282732438886113109131918863986607475534600880000959265103344825750863886852915463083511251448014376801922544704711533314909687232333324325497210691976558347880635388504758065873702786434109490983948257438783360727576990764556646290916292657193707879414102393716731397066943487450443334954117435130887133320705189444522783249509089442459960722035166684828250605597696327768914430407982478620591953748282272981784760502309141094531415152767685004648481836501512088147063633733461975626279057099121109199606035054482371660167533233429488103834850964202601474637402351190175813931189252965334991817664027826099792897353840932918800542117050649867351795423438674967012642236139983655736786320293820839668166213926153530413465939447872892649723900700316110523601713603808692852162584228056953921794024769747430880594972157903615711351386414692592868654066494874130960650585389448909871283072293878292795885392481984413620842909790679357464007290947097654070070359553137897550241102842959163418773390947092075752967657205785889105658218952255370626566300227761451450797398711987538971128863877206542865561905438201230170923884733666228767789832715148249484059569989780311033186206695436772656125072119493759641941596948997146887358654343910073321469517711376297641587866512200152955466022447346625518778727711051214215347454694676235062248665013723570804290569386070781601421492678141241541980902518563785824043996990971681090654808472890641003329907580763781769660455596203849904068133385951507218518381712310390639818228870487388438442648643747824212525761169875122564351386853589673598592140636226295933859812178875753686591116655464929990653684313341704147533109305378005324892917060825792048818167368021408032235365831430271826489526328020355407275212592469982088129107673070646314015754290162816211806324776454360813162102397911936651110883526248133448666015165910441214020350965705687279083011595399000709855934804236969326412922151768629505087346897312833589970688312647768547328021026629977365640557308547049451409875628192420262976523291249054836774004156311785569061342656331428647083503642601628313260017320408252830642461346656278378566475150497761130382764967969338266472284019013494683433633291251606208220059999598143383587820389904950506550954399535148465065207986833472860314895775523652235798413529626080060329026832956029246915846748141158305419913626273419292211181998855544006512650951974565772194255617337638557545427481259927085104826851429094157373080849501415117597522918359393441927527909188910451886797946118366169877198487127569243258379547681993996881362324175214604643419969203508021514709217364766714893957116430438269529367436042053123624175960537324414588967965518063458761294321881935262227423657069454335153603052394263318528474087775534213691019387285184507343529743831387262004228398446356756347106554346567994738743043041846021900976893366413831914676873954710543318936363648859036428153381891308089017128000975413991389515028890689826287676600721384415586746368185311000187067085678610689582768109803635601156983893536395253500982775242167261260712683394421197689103897022792423469804114632460268034928957891346047714487943076352690889703146617147609742039651947432378922067477247479930449388860928073662354908164429668797218870019518039605789611259664518149578299989919684444855852726471909224102562700316915524556840597494260936092326189729791652712818160348967830483390676369912986999357283177606937770801938018269327789124574645429326355990535945800571085169919753980832724165870627891935871901638961606290779895212202910038744418174692061572210139655392696442913899718185893205705732873681180548103727030297190320430609940223735283210393695948880791114871605846782986416058856303341372787212053471207259444407376576910700918967465111169009005353992008995062011924032488320675493134460690508360453915220701609387381925073481023842613130750905216642202322423714961272331559214726209296330093416018516178919808371809890496174805226285163935842549584391312519655943803418407360679424623437902199089277271710791540854002671838791834723828755757777033998935629687785740701202589718759500964110868937295102781192467351928168880917546969912142862176224735437579149130517047049135650212146137356913610204044370773945399279387050630495334121138180978331681690294363644797381780928509055344970599195141317885757035090636453708968233888555362138577639417067551725199434378587455790600516876163539337423169826345770360889888582128049905728109463028899518945528712275638055256297866259253638625461129290242996644695939532804110429105418249416886040632950846750814221426208748805805080467076662181938733700355944053302321794532995719153519548945470273071411570338534017371373382600485369828831789876482638291150942423707260447420234814063799678649820359076219923618444811411239234067402578342154364314016612157697495265226049175961086363727243256159941240707382288354517802214870042948261384231586910939222757978282522604142310031786658814977693094992604342929533986735382617101384218898579781370268853926449109262043049196359375206830225010966038294805815038077070581259291923087864687502276231746148338798025586813534802717472626708924819010508369863908245391268466167689083156389908531487426516844644748385630822393094198030722549478454189476486498714397590253759117254289154765531762413225682771694162402774121432697799274933778941698777702566540910112523322413001090544945874968735605086495446577254586882482992816629375186982484655879196743792363055798024173488670817153320312188239603862356441010080711377189841348827700823186856272857525791151243029765751616683073233922392803767817326982093432914355780963159548124219065259541540577300183351972462920015873415059072475452062552743299098460591157961314836085165404089581875129184887299395188466671084315114266378684364233506689374442300411485792537599960718717582410799280926936638629406588925714006153053876034269141535167041524420048201812041813526586109627648066886519826737963662078100235511778451850218323795649945388010872812709914165686752309956779338933425699151797301652030234178363189124481527559017580015463801017854550668278786362033033158914918876503959237065167696336278253437935635547557295687949701603819785293557380869679959086101015535192511439646705623937063317836520521924090304450429452182998796443490886714136288168205776806880980963499661626014103770353733237418564215724727959872495027126207515205911665466643327776927528734861005113584194874309774096235272003079077655877300867861354671723984513546918124679387877127614180073191715660377743109447244953348334583516265512526631880455907073982722924562400425833647058932803061504752394558339915776201038058339804393838788635754860880538735505409613126412796311140282055269207474576230562819526339731631876679125054053811853009405780330364910773904236165023771495555076419522607568583788955132581308763045402472471454448662792730105326335664719289340272715799481969571882246862718253707199073476741787019417050679649279577556074920070397842467916840136794224498390133601527394557797902991986126555633184528674202477594134057059654502528555465278903428493289838452339376994406613083686865217013232219730500055020503796941811328419076984555085654696866235735981961958718869880521134656264745826243584901860302516019690132363627923956392415208527167101975219038723958073689721986193653624950137215295267203779914638595723188004546458467355552607769872848799732724691884326458267347515334218213230772725821395914248021695008136518126001662582498744282255599765473994997556582047501555018557332792638254042067318691037770034781946523472065582426105477166855841313391061321477859838303428990458357460595436398304463399361676738006430051584368167796724615643756189559454983950218114486018640467648710281195024490441952780252865806929918811892533301041224898769174687878607660712397669317924236168079255765208127203156086150033868685253838778646491023271614834473092510832277016252024841556137959054059353612078955269631087069829600711546555660170047773477448071418164954132271457066675556281906963956041574424888779697148869657380582926267524284470074147694923746968537663979739077129518658830848226848639030446353815051884929092263386870323689791732396439096262731882165511420340608888601988445376634607711297032285097246723972103212283713677053371862101822004972588358178666305278576600625617666795248436536435629280101077955411535966650103671107703942409937936214834149934824992982815656998545160763311494609492976594245432899176472361329479794966519033467992440195140260927415406694158089859409799758260937769780399733248114648119016266414041078734568363388225955386942207520593588495329657813091386763762765825949408587966396023624359291105644359487439924997687586120331734102687941751468165010971875743588778553359535766271752721048700369717423738855107388755365153521811124355610363964359923911582042607000114518516084498925119731984697840015070495167412494740863580808181350136876600387429147679392970300406531220748017763100751350393517128728831132528738720882172620974684312572387940303283868941332265453738428910394563611864338472875710199100770814048844184115208173441130105349946022525219159586914144176518011877143719794130294343231963920722370825713686972764814878180249809524507502024395487429603048742776651989086670376099424621459355906180686996162904664971775405209728153772312788399551656266547509371142226255670738476908289769252862682580330298461184223429539255367862896800954041418870830558248989501962405904083430083597630650985203421582970070560653350339137938289219787190111249497892304388404329366163465709507479056277974511390180457261200835492020024603001791186915840853091726754991984592395664206270363896423008783942168721318970641348394416527279218432638121735368037293943913249752941283370454082407756573153989489828930760866192965981721678750344178855854182913253010036600169291152269359870638346224972606534177997992666978973724111940271788363564342557531435014087833772075904496250821289152104050287505766084144757607435517662794455363239477926824372540809514771944474292124088148532754252865602485451716596946313586108300958828098724531500956229106160860888311428297693399922982743897236230779975363895728604042009245390055908548088218190951186551620860920385479408948969997350349686416921350617838265541972675054460368930493767456490778263269072363937591397749061157479043524665695835365400026897776142489329984982672494104179692359664946833875794396362955397654839215835196656155521516015325053459298620682493210638983906395899267553294630436612901544444244138271913832905397303693948001546568726931659958683305337003061646830338687381327342738765554267131674410073723046861707855676085755103558798996068342336377874298531568079808737879579246390177018249634680704752063735036833186250005547212089244855107044745952739050962494038405299864690834273069476504558900511155452587325714511429539149715287706728962348326956523595673426031820238675795599287111497118592588758921689058249847315083035970439368892922345159401842898982142218579296506893585597128475571024253034161442924032463285344611128487838501605009891424003605952677817556126676499202912277794283002482304163926470069396094318605675317789754232066244916475066101381057836494586027945761717253891069287912842810077857606533204653467390666573079716931416191331135902714543343343977000708016224147853989761561337189278290823010516878696757424346843516022424925327518334764280123653236859451862189883356192805294928735992011866359617823063004509431384343535304163237795802453314840311130882250809280026230150068048943745357298884006673528057708326049566597988787439642219028001108153542769533232890416075862849117779280130002295057158074148827314315633505048131976593281445342587684181718768428435351836602759612460803934539609126474087469369623933957590508047707141639710559718268299507765978129441134497933757388048578900054513945756255786340237761528576446316013577536618884786708315980687107875400390239235796570773654792792691563118059741940442079806960313662308916860496548553578819354646391564191424162146712404927842195921205018341723902588438887551050566481019354100197203201081131231400116342644610807910903844513106794177115930750988523511429206230326868603116268830955041963030191120349274525138261214304033778778282859194272053481765339266992534717698944807716415782237786052111754800560317488951175135301249135009207021995605601166226879160790909163329034236461393934259695129956286743168958722835816910812066769002847314801705166089542074959640901556231182195522964809337392858038947885623772534547847600136943820996212525726222941262981548816575511964314031963726076683690717459833707666038459771102703536559084448288164712029104305702645719219088935322638133613545569590617064410815299123866349230689589431418424160209634954699671289338973692391034530029526762301499882192724477366537551371730444315568371304194989276977711600403019887052387863216920300684622893125277907931461894173545794619325160427571768478829051192750587524251293495433829299433577830031882276758292236872783796939969190740583937164911237467092654764353238263217793050603607976632612578350557536412019019680358692200581600736715757344900285187313024536963874122481692678480964343688632908881827503945538162365436092125906497325922968836881891969373595096526670361555831204055185677400280311552194343142903261588357583942981984296925265240003883372862235356488607364341504137689995654316617183111223950741725491725012080715052551126234006400043719130453118527685206636599553068982812841963932790361990033111521910683027696884174210577646830844671382368778680920893391278707058978869008079322266877827259534402331161415848881057389493532917741894941167212068925182555452895285014086469287583457314686540326608236195470888560366442718385991379066849839140158968197876730327150745913829674967875104882208815947526428006916055176922742091192680772304219680008990806526346257385610749266853829960713128719720925360757259483674636261305324653503971289640639572292618953645333127736426267784726633220176590575833301434451576342158588536084962056048928305935024242597341894207961875289403658276905137151157731511890525447104871421630677761338486759666972373752938790104370187824290227039921299854156824493941419618078749758316278354481101845438168220325108666234937991826762059313764064709618833992548520899795025338668843165058684935367899661786954013579350957708776229192249100800124196554665124596132046141924747693217041051182850562815199753338452784974208928342981975394932940442346652574523230051686885813374536274491050728829295017531245709554994232369680062868315209451103744931884880165131884248631689935383458612669258607056793745339682069479727844237801945983413852132092026678443878629441500467291427948884749144201850001486612973517614008104086507389469000673968090708557593950867254211465606300093332154942897335751865705149933810727232108622047713105256760056623149724753010905456369500094234454235573152956760058386693970258094241590671962792754586165841345365197654321507443772730200405013232756726322528525999485719837387121899390729786933178388129241563065261617429601099042602452573564307038455176697083725028677637032355922151190689168110271110503391852158049011088477203741165336085026029762283813079126734061102022422273147212027770568814028464867118099861634367522138270768815574461610361186059075960923718633795988763502673262087476741012735233970382810442888310582656560116180080950422842055306846021897637228066981974579807446848135226166332529997298346938908420700475509964491952783295162792561418383819712118081681793800932211176245843310627076502492788094782092962435499145584684592199011152699543559612371189784750911951669673858583377172498412600147496987577833755609959756633972604918787225740423940030387629155929919289228042213816934196146151138685586755613326101983279211683664467877867313386663270091955118201687169518282848714251485698750792833843045152901412024819430613989149918971603269408411228868398705607672011642090108829230801822549002903877805756360367288265773830628493574079849816901218194137622299584736217461043364901170951091764196581280567547239164153776010520754745773783010552242513977251391623387238284654252730471399281641763711640785567623147958429539787046476719695298160468841091381102563871677152891580094308440699090314949760393658425542958097815314446283521108486742065094623157018705796648495265210341287478629952937006457067025595860001180878852193642050428863603485709660057852910341378752107719765571062812013975287444107694940697763712963713461326425622478316295017914506152878662074035740729267356254382689870405522160346053706769789912264145336301279783457253761898934204576183040949287893895164982695545611084305343896468271821160505293412581171613574152488602690736272245052711811842410934085348237522161886371356535246066641177565858854030619780686447869680844478887052970196360475388586082529972370098042690458607404878411485485928066564463110143728635754638359664065649747410781850267880414650794338363345660350750440120870659905888979699243973747471125984982750041990418622223897834795059544720811036328610287275172550471251800582354227226415259350972643078712693566679514585145158505728158566670765700806100013799867190161667729074453298504170640147257264615227049382807341509441920839306001533792752320895730018668805464605086969923424798148956223906236605752751935215384720003003824794882585417342735222227079044418122692890259954872684203541499446722156570442162433897838006334774720242785058994581502813955727758795002101741777610982095626904110920617605978461086778004069775607839090408218041593295234607088676071155129376316324453693626845263134958957281111633973827480261572849943780655148195604654972525861502019732120271120411792353134048306384692494606831962478758266568786276144657923375021163916252331116991805645437766032055711108941820111769498415277049458690149280747910512449924300823465498047869772461983822827922579039063224912778306289725784897279943215678550158594039504508946532702437293760393992492064527119379403554299713430757502706376234393536862515794172769780629870870633967023960426560176198105267597765393082370788600074842366175073222171554916624913171832038842725449479425324596569532992386682984612645322795919841147813061027782006818104884924407721848085158793325927237832592418254190402965440083877030736328404794921376404494231397379674491501645761143288082517323278213650764950423749178543994675747994341516781700786675387056190305541627515656255911891025322406856855671420652293607670004565467976440174653611316850582814434973683271429547299470643092236945114646361513735930924521859459661591751307240491762282632603653256109127163738255309829409012040806451389689128699866746107153858015954225486233480277782165197779953959899803018741386523839142886310365497729826547696828063075583667941752590199588566633893768256306301937706286308029267086476606244553203806180340842232492067926907627479342547726920438192106209680644861703356588035974756199851239141747102036450064655253810661410420085092268281637455361293473948875189308798861820915993353285063311453280693174272401777197601293122270995413478199129289591460500243909671005594813596903803793066038785455198685055991103827996806384873152987026014856651205439041978040573229764966814346282929024457796075378076900621762154458352303319109272729570708427898686667196705555303534479763954112118252641753829763020596510940650973182802019129097153252380907000977874189675459784324910247697911496372614914823251818346668899898634970228778399851773819269481813043759056137917611335864178709107975188198834398031185280169363521889348597595809494444302681080667734342398695319248886977809920464697533378680300769678003842509548482790855273019783408209872912477028492490647808659164577346281576779381992627973805899176495648034152091486590506722521729355392916302448623138803619402093178691613524506777661043141130706576590537496343862665332444811240592254305844148445281773613865942055465007574721098052796554353352232889980733015438501074913370902622111894558400313403867453084775848283572073969904069221669289454825538389447818758053256600210954024576161964422907724092431478616074832001996357512060734931026868083386967601316356795493456044620008096622212299973907884901285606191912257993712140646812988710067020193405586971791788256925827500190614827059360762357055282819892039427672015693941025281442635150277774030946132190598455919833243715862262403795086077387496455339749310542262547237120656893406568996388291735035540892585371261614453239538589551696410827489309437088156820262352644067979756677255640839791547385793215672016897443969534055010386173469328117269728675231863605724623062335374863609031793528413100000441149910434883115251651173335139359496877195760902993132812263852036520810569537400723191369072812883163706535878262916766417860849930778492474923264020721611446168061365118590900825874589230524737502977906965262928953468382634693876134911061329038532179904931415129215504674967225017736022018173723344547940096936940316741660372811283024273099367902135923211882325314934332931396774617082664006465181735968533926574607295434702570035560423319290014449529589933262286545963912698974947609145170724790847803783110844186088409613629576499791786270916607922583972543016117906251187195346157197188682451283107743325634690493129849859014936245386054199763131394337494228597228359449693697686702471592426221897008128929274139904959216902184172555862297596410938971649858561273647358990287978662267856464002437779588172038562946094869474539944284984025684267593942251175260336973898230420975829578447386842938887161686095361851098659588467751012059322741179513881174768133416241542354544424838832167507742363305080364513902200875880896814985693634485340328170685871316033679161399274517191778447751843275008446750383724162016548241066245363882639180651398383032867074339460796631493028430261020682020376047001135959977200815480547252645298437695596872098156470015588542894629422368254327173996585893609718263396879359033304617009465565537819335504704722271516561146580942586685641610556942516366852551285270640716996579162402036018765150015151163999694634829432352045938770647986873867769080568846336303363342801115702118996393857156876897909597290671443028547879701765454790376512632010171944343244593166036113839318462678943758449735632717266128077327925987035996567021423401140542155775463006438224501697165943038337624260512550029931146474290848509441701598568821077246077400911159137512832123782853899961621369123649972942667453758158901575547069635957911296906144602539405429642878246563695223474018633115425496937185908784547583816320551202207028277408877590090872984343296490359933045120628633282905606581707127105126982250866316382193366217328913709005673542335505764592719057736379920350535594410661144794136913140433187194284933339401448525512491242314933071506508893114718774076109238157501632133897880631880947395322865006125607513514289952856143503659606908425070983576617382535693298929095568760048816013940307962366399771411202457311224456659545632020438513519637787318152471529427851562751577571718560846263739304469002239409589302342848341253734814252071191161810050257839008792503743812702553893594071643160838957560615298621841530740277789396799450260263577078326377552766013450153616797116024062084850731837932619838615346575016342661203572820779628171716535287796937660545235334781309148097023929531889725081464271359217644036758103283768930836044233590558090865778780951053285168799957135889858853847799253702296051607707180268578550437422339251003709551427217250650053122474823202274150117090256378246991311908648108744566376581617285725564364962996256594932789326823661419633286255293597344291088636832088411755019839567527645199237096852620971745907050825184906179170902049381031630396179361582670015507818446080211952651171824688528447009609404841304876145585761685601913777840366671665240062258371554006660024581839885425695268855819753471587587148512393495321480180053441954967274591496895760027910378143788980377820687225217096420956374633344697773106284390828225921567817005837608140531397514561414115943761092679352791020788317563370611963963929418916856017295946163026553551651182396324841792370876402841607415793394742912806986982738985314565889340403177025180272612906808218691127916857674892254973043766824780443444779500963319882312212767719431366275767149746194417749531190768823777426341561433994617945652832750625496917742566636037201233276244654956910010260253463729318616836128020070215347724364469273149236489531677279729242333056431949999630982226108426858625991542491707483450809534278455235335494283345850903169117304901662013990972803891708615650533568395586121885576000716882237157905776526487540767736128221998245040198041102257571257254988373805130094388723671605435610816560091707081147248368449769109396147177656710379265889768753159419446944646565171823297112527192431010994740617108899413204269049934776250999942157659566413668237834847765936629697964635573240081185676234872777181356499010501785723122760038391888191937474939626543893941177714822105505768529702018158216542478217281292902001427178520974432735947273012449055089891687604780753183997462271840956214359870066019521828777473323536285015975749500383427714918217539830516230569360516504668948589586678114812254430076938433752378739807878250989602854288147934444774940516794580197997611047699917394221944093466480172669760487088591114127708478328361905748294791428910448394112431215647941953312484851340712361859126437959543484858989392825093379302128314407409000023856722252569625096355685344087957401756123544576380569934721886371841916973630923180534833050090914007269938792709007472514326822773515952193875383367468391290869593363861411178430969031161800309945922805718301975962148206757110900749797098840111888049790150502173123502200563698134745809135315967840779344577964297538036527767841612855194082287635947683774455987178483583353532927446880000224620020394023462214060538374547745077817526176556958066302165475060063271877590581308372864577010771104864540964627982584455861965980523682145744274694279122541636162120745870062895669263173990424073217213802377569111113950639400214097976735891238186821549251411144294061912367395562501065977223445653030388825979368010488602199451953644867113285394101624939975463761774634441871048606362553485658422903425066974709469137915922033471845733049505360740464501322361189413465482435313789923857590703508921315189473580159762669092067508927398126138681873978646002334563858650741300390287513442804729353270899330158686360580099061390375955738529086834929666718635566841563697052317300365644176978045521833409306786942415787037171290933786882739614064869792853173237441077140885967837522196065922469955226770273300388802582770922092013687675365114034100375230165762932865764351640933811751896556905254451984816762321705634769571915640857145677671743172866705437234913416460665854222130672874539558582807487281895378309412798935928478152405375252724498425518556662549812617833042896133230674055137561224919757200098630510506995698129557804577055448409189076113462324614684919335047165621115764171665383183960445686412861257794352356643902150130257464691071686263279114469071451204952917756480853191698459279340055879341367289821204745119135287698990820750747827883546317580109087016892295559081216749413854161503879530906659568924105836915585658200136393981639604651365447515996603835117073112144236475805674081742659080718603081180098602863851917717359499394312494100459764690399054785293604841059898058905819413110235244123835845478085372516968834734800706002886644738949672055540019320898556121115809505652515735860480429705999668061771582313813316971993143727034565132275153789975302641761543982144146676225086554965255140988961120694310522494205581845100163090371455512709679621557743567233097697261488009667799212185643388045114001706855591958807405567936934800415877627295975529407415266004464619727212718294272767463492327125940866719356659336907785210847034014993153195014981767688218117975632392927376266438416539962480107513470982095156380743741466341170918147983698621993731634056219998777707437891094413822975830798349397908724416276293218173473070213915690468279051167724794691629164698235054454915050951600021053496872772316708187881512838010907255754692843499941066208656453569956333332182241396420729671559191227844693317305150826423454176957242075153325939714312917020116794070165618638033658676262865832596005687084093012277919952500037433350144800442274285461339565680366428673761486679146124773972011305764410348888110603273662666568800290021858144906864330832910416305480081327269741238310063012740981755572846126036343454887137166128241995463031142257591784843785305438344383764039340634870870544962797342693378536404514794246063252829339056979094449538469224286486865773615222241997372817801665178442143085174184550732183909650101663178698887573557996931194855019564997699090275405663774445356883236011204129447777614132459461580851486217964683216651717591110071293566557981910909699112721510865426034456493458251008980969479271605235295333974867989524103143092208833129170064534403012232258060021881452712631333611199990537529241811401280210321001889123778367076702705842948149977184817923143985291650989443966255020520597376049213116295538464310880381211014456390092065431752760975093137534430958630885387614529271049525363457520671979719428165710272970054603933229771386306860082562974119694790722754725710613310992599109299427410071277905480089557011913719902002427157796695587826956551056551581492225724046800833561167369197600347431082390760433363702840167904572494265799663339991420283506005484051403327280692107264513090334854274995588941548954677848876362385941579467355619608557086254608808764648225606418344079739195312284227091728002180226094536352554102685316170840654490623812145629158589247231313475760564669662652212017832574314049364293871434094480111327454752491344135196533238006135410149309948027576835918130508909601348017822411299345441942050978348233892780729905676861994063058980427855354107036711399172053220589670030348835488437732924557484835648125904582150096114929098465471877970591946247542555315410487821037912749285639213828580435803727891273182960794850837447066035996052259337102121670092124528012935317445853722036036257800718774386107180434312905909847608301132806558749324345803287981927493766630317133139728492293947192817745893641984949743867169123942731708496772217299367295955527899352255248805453010495527910128109031736678998720930786091902734401916404352497415085433005494937315462762669426874968993663431333354210986793630193123272520147905283343328695718192182266826470942459862546247631268349335402482009049199608084385254959737196428236730647480435304654145105099088991103229129740960172819132875631377600271144835530916737179222415947435782967208794639404124106233461462286186489838329555860468152624434849547895971398643066901672171728816839173259146496927899760351726954426751146617933450636858069833117375220441548629912549387687958821884243932139970882801865184938304808975667755279360219576218140960879149483491979769517096342747610731239228968667071572853418355673480654430776269058132378922628457385257465382317922665443369534840065861625162851151630751373592262232206459756380638815629489510975306749688646808324655306578397421355571519604612605717796991987914416691849936407054047547090257436035511770751463217981222269961581526447982898086440756574161250425164970363262171149881894996171133290933417889233441264047548942959406513730540999388271443672287946972170373438556655935903927953589072420888165647584686684366293272697244597242515679723022810043542524167410158824126565752766416027617188802326723707885878242725382719328762260866391373606880918035471587810012035889114733380340885159399941668283092201312431684921059337239781372072616269485514235582032415141937616669287834736783172219607011186970761710162432374954871134670712470281387161296934724748025322442705538737629856950542426911779998969674785641129472424231161912575029310195660930960399177048773625411280008513619878780634371705451528335083998852637915915081160807531746138807256496437162072817113968261732201196930993943137170706133281640659802087649668949162474605121166750931926869321515940938606773530972404117579028145559703004674525959325743343229948170670102307491895397130187951615100351153921283096804029325285510698969433900923365891621453331896426017234443763748991441352890936136333106862569854216327278823412417709804676356406443040999277611951198562203199766481477191660398153451115858976673966140523983620804071287878236762371594731412671938148415916599036960957287132443070402126912877704665018591710202441766681214721744965978187267068472141344196184692752578111390591758220921033941324686204566807197214308414049055269386290535542672004726342149829231242137388292182747459882227893303711324504306559216973360164696907234200264404526528428996083349348895493114589191122485953418922599043684360231303430253978827440890677995567923682702940014509836937257990632723951939530201076081331758534797871302877393119064325349909574403713360462158546143398115226121694902594071885750392595921239084729531020136477393241152163256024765802688255812473976908570101584237606173513447377548433340151124970004421341933799893765616679105992143799907572153821072090210382905849411559946968608455574520338998235313279947581836647280202374369008419403749790138561068543563800321557225171362114091057994274772398377810743322287698281026979048732018727153556089634455669729207938560845729410403469063733005293237200482143792289246222710961762381951287345236469420433736901851846144869769625732996146211848423684070009474292058162002122115882379086537304418809054031651035661057854586003514324203551512532069150153389491931770834304978745431955040620723874413172452575030628129280274027048266984433713629305716830494275128923260339452741750572573996471925506403826531746761494311160625024605025806539768499558367411975494624888421027117482475574966019537053881078497965087842758857639232812311724582970076935093577892844993202208461635036970831991812910259627462711762606029473599489597514648757656615274588278226530062535334269615328760092472154166565113265886030886612603249060273033401902368621508163098070479982833389536844725770437795799532128900575866244551099103331729833269276302723164825425286237421119476267375873227179208929158301055542159661608360250574940853001357053979364616999133115390877968986673605459002464587663894675126905614033809218533986468796476113607318131816805514391667190386459773446264919420481706257365644797174535920348423989477493288184637077818673970603407206664614513082856963991983394720942144823486310514851274558928158418282822630448208594345575033379282245370773868039368225425620561025572019833652817612209409667026366447858447265437048682156865118910899148498059091180835998953769294141464729195942691527812408869862513975221336851788845182689389600905245689359229073765794824266143657832868496572415591529077917041241052313695719601617826618989226888905567277404227372534639562719235478242918954160429107064728473034709763445971111344081382875647690507139578439619677929344004102759479376693243896541933342457015577030048157468586493042608253856561126679422222284854151172239267667900587222649981877797895781934502598101135479491230842522903678227211674751788457071255497801830242248677138320726164604435574320209067178557939512555158702235078000641228785273152194061540741453106700479759432820232394012472831572914111068626272374278985069484117248752674172210707941705278662872709632497068388724091735121349958240200414816542970687971921790968889361546735523622887408954206895888171514047087921342493820428968509779169455082638430283877158272993288718973235277918035787917918365327542177575545207514947417572269772978152898985673453458012691671718930125737836734172070964780030813215426048700401178980222893529609102921661814712069003071546224119698479358753035555503290310483673409623949437895839654978190926657835888860596782170530078565590296746244621078262890484965975968682272402267202181399404183098332323173574123552664106016396936415893358799451669141303647025170091240085238493754425792296005517391512181351691527481338712770324617295248908342711842243760571766694202880928745324769697587417202972936221767160115143659491130689243924623778126691907589153448695528172363528511059456463939069735188048588609620742442821693144728424933454099419756670984781859554205470615037497076954546496454568234361592667973736314662268246516949158376348886540847077343384677493720180487146322145864164490783772507167571572205914244023746336509337540633912245544904050517444273577042611831393119556345595482789368411760606206206451415119764112535880690980863285190288362513671599235989829558443362623908043493234113569543381177615268866565805463555035185297492991683381375960458972912112651433667374844664659904524879618817992325153145769794274221450615760911323297822202399239751563889343822298150359246333439750004940161226906370495812581462560525480798891822924560419398159704308581112525503660013997291105149329065759403516803570941604812183520654880645634124646269796240516756044848536753874411623008112507371901327381419290374361647695531445870444812860724803978797872733649905119515859011664833174888028949477979409852128423571198296599775979856533214898049493682496935340425709485426091843868613840102741154855396643756031371713226950177204028720537534974605922145691995288703947058304749672713216152032634061306671116891094808149781301991903671984351206378274819745863624753314953252495991154589407351595794490368783454324094344540757499989883131116680315083637584722821509216761930019245321045654599703668565312362542833152449269092732105070209164248870039484787161130200649857804323114046927915021648837792953001822010199176160815045251223077226249493192179765174126393876807307183198175225121333286967526869539463987239543158375917923949137914177996653675327780690344244850071075574475324415080010583085102463944310438124758146183437628496049884137882942103355023262401363976141741807572571414472546566010236564589766128300969619928432917486274453012862917829741690732838776674691902511485557950208857066205928006489660957265138182808496559415990392741622949739856572010411690922836122164546749878501562976986679053521616181996919400699524136862593155622261450734543580988105800971057658568555329295644458897282940861828134618626319092306159473937706522029608066057033267041971558177157605675109550998796831439674349423548343539757801730224727784574673247735524759424538956245410166773995787270276495108377796390455847045954307549514254345950447816403199229144510981775360466775255863098419386116141020824818846266756111584212355570044939767016486190603817437297142639017877479172465896379600998870470530096343033519773893669729719188080336173542762852657096433221140565610898474160653775784023373104492338951678227713794019705060609582804854672595091021917555442668947908498321347496272165110434450310866639135838499174531789474120083209911985652962837311896161725124383859484454166594737506692049997046024509064786988226384187182532801429474638388053076034644003622030089151231636763495022375111232688238977012790713990039357078580461319781111437259727113437318309995663260219951299765396622212192526487016195144835024539372937060037120461355772347060552176833576764889188261617389195943365116955004934651975695727490855512736621557447791811624162073981925343353454577582218780985773890075243302205508390344748969063386317234275475246098976967879071407124161566029179597866718811283081602050899299945150356021669482878253048883029698600857698306506402626279900220844491071707187546267268065565672294209746759166027261018831335168177034284800055481373698557481787492008221638291531866385219702317264496468039407489974330415178728086646043150459185689358984674497331182205109962065939101290124156084778312814122278720548266985722154800177674686014347027647399344826730037416473710346395228280978753509956295681211702023593770546140620272239922039032964733402321296569822891961374637055698399706240921257774337030602681915005521726920841921474578725660181525105993189144558689934676232045803493303726260404204819131764092565393655558916342125359542822651821284343070042143710183939179752899889493691362916999634941449329482071313505949460283554902078703613679283617450842675146624294930434907764456345044079516233634704845415027028787879520223439766715261150969625291995701771787550282841982841779521304473890021250864815576813542302501962972105273921569223579346090906889276253415893830117644949412418838377368104527243074323414935924358574719138241338724381845843356455249602341252736348758870558766783537810916212209142922763729538982784951032636809962994282393463557064115175891965941177308272788804188129111067774415481953952674614619548229400258856202388975572598374786592875985354092772120573076395872470013443689320223242111364558945688364850524115803083157199146825954465022448147495906660225563447314470787366206616118161553941629835061784709366668090367454303193229890573349070611783692652609722490213502330601849527912653396657913006446456716552455895174428926122121565257536361455555171257844366684037675022515502848185897256684148366034269691298042627114524344302533090255502713995053913792893939504002303398613943052078658092516532946648657613909936628801982519434789028122292333383097011347556707530663761941564980105323415945011531726841049329943673137798971987558190932079970808652267122652679344866236171773252768740426274381803829168399459897299538043486820145935376073272199827351299855283157459810467859357682099437341651479080792001985705052437573543992235877061000599608677569791837600591811634200524781016587687452175846040399011766159461867243977366187334556426431703824844061186097999363067468622077967382032857838624667443266298532820412140510532600063713201711064261973966672433892152430520484199636297898354802924494866580100899033647206765402622983636315802700617681448776435939775345269750701996925601402908518800236166826766649075266739961287906404606608948942000878760846542847650472758225297975485193890283433012365290349681358197299990572932064219549296655776542572078551499222999479255653080256532211318725833013024663051797765545751578011850281558249368618672655507836242696254462710725688982842850233036185180156481848367648417837438752225473434203855613165465796349646136294794487845215334688684713183892991142386495550788386812581578169832755054469510153824267463896095210796223601945125702195320332355576557360469041027433845903331794960971016158484080859198515059542825010494068677567895619239243464956309613957299236059404930024924389189200798365798250210261207753184919342591183191328813010897943024789508800823315714892939000662338178425001152521004440997816560438356895078838664509256220125858416258045540815867656557272222537987918135683364559939797458601407993091530851682283709851230218094307983834553792920085837348866952277878699193803031714187878358170756066602364411908802243006294975869453997224557465668531047388287868276241713676452239923526365932262515867441635259854336003028118711277196112040853375771296555043182556848480732357660447434168653329828487389139468827234746581237648417694360123817369003028499782322729137600459734142043869872200699386190267396164963381234341982468584838520003431216900697272493048150187078874769711146711841468201349373229880108917246498670635133892046982846989803575847790012152621746859849857914489088287571003260504154685257558691238517744476674572952255827059796076552236103679528120533636621898639429355760877705869035751685649493247721193732610382125497083767817032811088456539345388452111687049059110050338046076154185007375262214007828096631572564527686402516770477341980732605491229214623892766866746254936569372392382047346131105958231037424238294561551661378479220334008024825433164260007132631311817031457703759548636784817950189695124836504595873189948142441933963403992270620907848365788591502278062754240271044065432003341849682918516212475709266132702827594196294456983935349472827486818170848752488364964315512424650194141295597645169826462474748994097027491736264818089904569562989009434138080567143127843282411012602175100324064991983618879808413510085437791340114303874045283269008076078910340311760104811242002918672347665757718461587032901850968250538341931700579183409342227888404848496812906726971369402187594372376077687133672811243233773697564062923055267214765332841549264221258647805818955919589272379451496536513686796392843238955739234054890552404823453393092229969295938385566947625118591130110781545894410011021743190164870866408614600697387815915163248169891606395192950792192972130044383512200375499228471024977975322443246526889183725259722437037956886534251782513769314360472623226197737091775243044072486973448168023244769635161361376140112444592111474882414607994454637778106142917051181100091025180106998735965187031032722470398846925107884326793979080200779789730366544491637009414743241383995891885735514399922756790880429483617857806580829175630104573135516235763559796510284800326771444828662392879747181801473489187616699183485824455084206308647912050963088564408175787894781033740977477785295783696591115068415019733592013899883416958100095115253710613716443242204433384786456400675994682660244737402305311975441035518310673175677416774741216336237939981982251264618875821911837254168119508895978628219358474507202834033129774855211415140363725585972532905066362899955517564901212426410360795041940462654132263437667474982845394420470784365351418501480717458743391769914659594528765189453768363942091021903971837173912237367068702854542893063232110513542338384070402001556336022054055213087699111428414128864400149687040335692110548855055031076098109255317614581348122088435790100174387552412567187235459718907213067855856143930855258468144604539251265722300685234746535203620004112327845423958169508773239590668001485129425989084925988108755781439405820597700734365118820377572658694643115996757461728028752832843023889481696021493451839489075988412826258648260692140818288185247302774356490413186820488338528299070006529824745143840881744190385367689291040310962158938316119373576766525193026012617948848624123526645937709419603316400290511090972796471519008564398880180671142219307844476712056059625576373547555953859543644131736341363742901124122370734755830450337403807427507032394249316924838771311920294319296206044511172243339031819094457825553812610057049394839997415424049422120107303420454562910412349106669731054368938380546698767824077841996237735586339947856271458939031246694548737733796613036521802049849977951184130028731053422358049630528814045587460635750569551525791097218741261851074679695894797866954998280751719907728486803003533528529939667244387866277668031325876798448983504961613540475702178555868889106679022150317278574176058530997709186642753484828541815476372676368818467680282972379348454418020588676982302771408987053207770057577377660470230311048009842861119951474459618532005205980501454329667043147396348509778313003622501752927883056298819559799834719686003728405867120149741369784512320943508003416065384557901231022553121368528764797703046586388915550938524944813224857383930423755935242563783241109639098698845122625308677823549958407467434911355065070330928389857993224614603179564081536712346648629805655472964449941731989837776913359024814491937246922219819009280844977120640691293594416289751287450465100345292418049925689881888904962475944923369299585636389646643356058660665986929767215381083932731641505078916953632055491028617778085674511321962197741398795917946911184372857332260203547176071768476899423264794002256876102360159663643669565565890338465635993759860412314154418933546341984259294966300683422922463416010664892340207755617700182998858894233528191103411568561565437449339609814483092243886512671209568591943132416044452985919650596492388671533186650457072857430782211130718720438913819620690640154750095338739675807606366441638299669930320875325750734631794138751408822499823773688725233667598173932615964490249634411380654832327041923231801273849275822427733120078674927819357519548839170059037879346309673254586411084188076789307223494087952241761853439078590890980217883617159681165437270471170207898775760167709205378127021699032324827258224389426374431198771555306008490169361743114892492702431449709200907505688940657513695469452681735768930260471056721098290653172481981510203633960116413577641097456977236966406667471374176185080340520399479598399520550073845945812943917495108145827685395832205987987947154792753088628196518611251507399933519235419170216517915804843739820755106818296428227846110530770988275758979652137717773730702990196469600684180899368827785214500864247772703820856453106866275503396606584381795749812898407605590367395096440669128686481670065630663103762607645175298251821122482901816200028386128864684286024641180937883226404532614299482670316483964235775563480926432360834017021762146539917870982875496803409813413818004073908548677334898574021698826324195935938428771044188647421865971406408984760027302424040168771558809519286767584946129803208164980750267604949475904433965459368161341713571382143396022523697126440934422526668678158213934693906425158216765408939068777933235203958992843592311620563752850119100594079739701312616606416082920831158181394332254325307083993113489718966217835067361364143931524118814484610395399646656736134860307603010574641690241772797443421116324022109225826602886769514012326089858429029232212689075624217653899764148261680188234853329131432496223611818505103339877221322926826804430248248135704440771188171713112522577002434515911629850508306023967362268727001551300131133178080313512264717981476401107437842813262028389171010661898972449685462142450293577276398526865044979737704884192519449258031180705553587162769614769400920151985800771997256573213313770310276828100200370473593883819904342220193046627782620423522771449917629447890030777451410308913894847819903612352408792768133549739522058773257901080265813509374046092206612781023801328606103285279042995101991310033599602844434931659200761638537516309509438472833709924332787028185250264136213139153476631072412734134195327509801228058806974342591129071828236333965420496090944363404528280728966467014419493699686800991458495826373429213000138409283852523911416973937745174365612934492948586122701102184462758982101245714051522215161035030275413750933990100509636130824676378911831187845985201407371421712032673364404437599987842569078251361486109647349729332211599115579000239693697654654417707701686918921429035231326876278326886945701012891526067655827733664537811508575916389708460918615958090796849738707977346971752119073960662992832045068078759118925711047515772929406394083982299196930078915364275104710114414476980731195649899629763162385395552510908966277126249294366033748932529785424920296709256871356288754409303307087701708118322304419318825264436398104955916970609692487512947424409329425179976284791683961274949431298491243557871561060919269447939802849495514205072387280334606094290252053888897197715532973478509963965404246948838066451566420876739711274499527299161950890374910121875853443477690075388892260775451315591458104536211419514312994776936505415042893225825169288677825295968416910450323862183389019115925595863723895785473988859598960286023167021593540765149900493637444161664921791011048061154279424149550783468326710875817199397609698593654113187525184468658777142495852994280810549507822287624959083736599297909203095597377311137030455398312853932395252317702628774087047935921611596977995894997329481237907839403686951389036217321143148216966231823119810527821250074121546691241599582430330934683435791000693205610639749066684122274447827603206725660713554900322425592675091020284797101563246633293171658847875162918180317162167107854489955211997147964553687829410674228693736170317122892752512982567327953012782242608640665381391619649312445209308091693657646470509625570846007645548817234788919956643101103150329859379024087930780647753375759675006881787715195122583770877033193973388711129726322643007474607165876169885889158022087104999521607659937045961164980438368979297155382389485237755549881863050326984939494893182718335246217189912369744980733331399829505019817758194365136715558722234607023755530147893651497308201610544403629694274435822229414734790001801471954703317053179990365246740805319797680051662190699977262009790431829597559555005613018397380305569752575846016545567929377130011377367738810514237555409135410000011140147516542483797908005279896445202072890450987813717285120983265379842180939240775276585659825252289904776719879800861940306877046252720249917197737009069219313637963044642437459006613123834835943751846050619320910802721341089603362774607280363157066426435799141008077528667430965271275494376295945276739287645582775819656234597518561942419090411417708451184006841430257908701011044730452660599916492654141807084639172011320714225439080645005560510630864840802438012710196705408733929157578470567679679459913624198717273721316654539668330181813502043467416155971273983768660633812385937699876840979565963680782908112343706344318676992579545009572322016855150543223338280541958440372512261926970108329457537395718469985749617477122889989118287567201356913896291479300266845864534230618836427511652577715308145267639077256871419848819765808294591131301127731650427487224381930605149900535003348059748729209790252891851273994195988553954750827985516338978285132642384900473438118222333399007483449922275307806413986545119660495460912385897788834857283790019954603382487583061574167900431891976347085918135812434302409869653747653184579606405732958333185196819838456299546906568138581607494052745918394653863202742887791304841841642438869165658053814252096007500370523985727821245239816534199924797798660188332704765818660255986728806373634885184938528952145362278770731247859951165491036262670712452768120045827133616011825715335210818687033205280364329645445118106693992915203498988548989573076197679082665050535914092145715981484384240134261537342176676800164052680219857370002987485492518029995452927738389296694656824169249106148781056100449773360358004876075954677117778200742495907776020462451379185204802089271486130854046237383956272951731522431204459448806777548656005175303480882872955642587003271787846039585471545538197642354223056716140205780564416480183128037866201852321528911324419840537586081920561249036801300970406154863239275120693427027427454666414952961710668660341751950560945687476294656259362371550889096737010442931967759576482292587771467010542850883810848416729263423770277137856936084632467864330555055292151964747733590276293127173663302998759497668408762178858432324821932791503161960206934580337267802765558678449724984617270112006096322991082578349689764087913117746751540117251756002966252923486601504469494917500126404697788294755556780042008505883228546432569383061299790875049884824816095650084159467250254297474261739021741942869132708838760403514147501314431984954076993011726430024911730740596278201478200605988513870750528157450018166458790532344310752094709527366865567701600202566048080986220809227031215153597882603706353814425471690788399482394205372771552561804498317576168773439161484359791941707559083103487020406268799861576289007137918837785953823042492633968609168931031428940500070505467580018590573373218255548398124920256318807306605418467631594228321267429458689280786004772578083090462264240128461314246871270921490056334161299682422700172976502250881626822053896783409852532227473681602655649478779281151859002307673600522711105937684724974071601299325255884924612502466709481687171798789543643888504771498755301275285415837467564487947588639640309297795468598638585626871313544046155061926318024314593340160740615024503647122080300505188031308776112682278958509492514350096164942619467218856948791593570258457014885188994128229161750924764345340594903909863986347427868076900566097598644288224182779054256654687319798983355628126568336610255626700254353346644538439681898320892787087558527958609257716727038208168067984376000973459239982604851285461798195321663422192080208255825483433861064139377194315266052201190607021239924829403117406902367465125975957638883685981360352899866566094255356179345433671648868423814322975947200286048017627970159572351274701312995267813914691406047162179122079474929988778432516703352540488296692990939077007448188379553291135968053585462345087818020244598167419581476566311035750753137631734988759054401967765982035852758691406250319176377339046550550043751072269531224854620386722538462442951204663680191938257011166448706797231246175210592303423257485982050128480350518530537871704759057650039880397246822733423827547921319408980248001155341402293208426539153834352025438982174846058690946068592089961847209606096320982099190804843150122113072505850508330747211492647038409419830441094451392863152576344451636507527837922319083269396405056955060383868403814637137005951105866965818710336256252222253213281796079500557974504062465393989047637809667197571290363560645937772904951275043444125870659069089037259401633792722904915046121793021505257524403278072500016957435815214554705723409087836457760963013922392954963788870693248435921560922482316013314023795757768657903082734996641312297376515455545014659773393499970137732841864214255874571469240575875827556554295577660171427231610543438488524264338582686991620006050248083676099063104017625566456210682012729211713249673880074183791890418777361770579562892104744677978331659827028172612187130838971955759732678486233461149349208572188401456527541917411229169070314115486443377893251405412672906538984125164581121319593666764559415634769992848532215585197184022173981872033104487578913769619549361714244307642431697678907210642257933211405623874566237855189046636516945986425275183645187580112108072143683683811105539625446500891501033279810735439544304765372215462557225962921780633033154767744718393423738583992759070376423752086074687132040121422321778923172152152764545199867159083913798618647591131277414273347929253311309161158179119333514583166417982961282586010239068168280952874686355875802478654414817484318713437073013465308424604822464890521471020361672775543479848041938523393287124051628221820464277856224977167554846257264089892573342760469534783933207608379582630419019325216753027129317780205624017470329744862396028668099462477676041879866602607328552274561383978772210522785428869765542266968358750398159847565041880646262156177944090209422099939248441098448459586027041468990749050416131310774039134737240103563232100779968020577847993498997070255631391432106423163495713705354053153913879068785625815324966278864698431243335667865487565093872260015468940779673678759456908919363109204298070622752407050441650407868478678380768982270913980351508355857798386697923828941847201703957886630527797133253438238310189859131832243933138225749509722531359456531104719168671610979950135043643401105576449537605846115500637277589313243114961450664529825447624734067211911075964418999310325736212497659617230946413008491114010780394195940480552384760756675992738614133634023653456634636186213751227352291543998623608055347974586753978696416555033406142131350645166853655357027314972707171860452131326595792673042001719288033467070546810052388294879762260480334536024892051075310058913573791516580362627930831882295432441427343934961371149248743000552232853960379284974744310289666389959601882162550674324583931965746757648933311071241238146197360315270739385252233898915705433850612753343294443527826491558009085862378538801831516327927354783875763382651592129097332811384515800578758070020983572364308799839976214242717898122143073567151046576020871692259098666721444931972030978745499097539617028025318051355195277189369564834192556539453276610683703039273343344582609333439869318541645575476621470996587160025693088589630913216313178306261961723175600941165442109484938309101550658707607895031143926871075498833039705634467944182441512679232666854179177824483580077587474775126296586953495065515419565060350231785664685067952634526589142698041566109993728034887598138163752500342746699356460412684104316574229526564923866361785390643529299721816250906018401928227206512917269899516837607959437091572037548753722386925820888498209152573341208703139569187040766608583203841964606708771612992866969078942620777812409493758426598701703827805336779560015946389378302081894691667612881115632736462815221802376091075146584098990016512103070278171315943588467379739905557056553276242798741531221447343637057387348001305016323395157541317256506763867260045526978516382356137524713187036399422678732829908102611579802517452629720401010904352415594636869883156959416912684444574850460875845293541835496787291625780362511271934681063475595426291392148994591726155606109812877694672390672714799015006137582281491936219926271765607908489665566851084470324017187960450928706404848189223720957184436424832879570890572642331145486250473793850816629397184087521961208570672772801830061164960495363010391865887837419439163598251091935633473283842746060753387929576917234877650289439666174333085052334705232957078132942902362905919506019547983466577067336080694870704848504504813132476689192746312668304767741270372569618433828717261911162803439964154996452288379466638574652516046356459486912035515697498916531600480531455943620790282125201465006499314912689941180813950908040117119428972181916488274838304405419402651838350874562399964052863444260616739309903259251236717884760258323286419405494582316705421392379351114189518795233630245955778699044076545182074381471390366028238533189932737328256914896395263297606213729770660759478918115902730791846603094421359582632584953904865696277631552190860304020910303222296392270885219210821223702992017515324458359509031470804577117613225706066938115649901345354475153036683446057498190167028018155751070502678522887080699427585882606307643777567073797891208529146229392016599107752087060280995269637176054676595115750817821330822748508308951406598943519353962584459464627349487948298971854222218879578516820200338970746236632233973167575844735021858554752684318919715175529046689934209100014418173628354169275970204633315092773865964063512247927708308432185027177420922846125717079179645568623282294434712392088018683126698709613346006659327936005228802656915350795307803554287330762013281843251313259722203126867616604510278122877090329032412113952932786845088148716117281256766405408553076588524232121501862771752658700047739164526535978910723635716106977719264146923333017834415785992415547892912350794373794653552078967201944626021985492085777772118085505405691668245636740548441608979162542763212645194481012355905220448414912250493472581117539632411286433849272561476737091599708256436834345193423130324009966962496809182904703091149257634375538789719232277668085820383387781882860369601618608439585547614729261284835415317153732826197368511488473954473465547672104867517801977117874206687849426596117852646668246440511204675671836642434444743772233954226302024190345454757774516987748739530077819993430901284330801640250019751817390008516383792698913469123155951628082213145180909867496479236887750204697444446984196772408283226212386500182122648818007691250430861500386055208055834604711717642440289382133646763402582114112049995280624670899655938700344430160744674894162858923232608417296864404956819383355774184977211658196872090462125732217126758148398336509099638560844136438117872460131773688657392533877845810768292029793900856060597078951053753924596894961757703318528732753289176312630378734521339925497769260312063698250684596611320898650119800354016325256844305665633602339312461196900322792404971333841206490161471805844247802006936793828023583255762238691968854645042131003446695010862274126418409810646571562024151984217035433575209403926003857377044412150357683156585653293029779050095996099983106812443935673447700424907149948094374499630814990111646569688796850249604930671653091450807382648422313877834922660646779890822089218155292801700527593251769745760127653721320757635637546255038001314107236947957776480943316528104283715679013858112040548393532988565874968738820896042995438265781954867963577046969227794545287979581071351689434737512055183867926789180717561095445311666128395274951312288971770405076956156774705410303815591381330435735531183818529252376446122400477800729633863794677458691204356954494027563453851039652782892272801780871155837961276592094274818587984603764264835738688114303163249187715823415397740736988519856905098924245919181107010537403272360209666491973660341110289785881291735807122770519008094376940780337252317584541281741250928178082125786922216324035468684015286676461005831861532044014114526105764526486169901275240727651337913226912705619360090819092988705385823804418925916144947939734306786069032990894413633662663003496805750077273865197742121294700099573899210720627344719460147297815248080817039286333960348422583632885459434717108699695402271025468522766348682305448907076660151714144858870259902193048432342138882901059023598891572846051726316374832448715831641090125138997201119070206230272696772661799486837079327991675890656159975458927916343454310821768801898724949220958228349826599672991629819084392622856616941676725375283949562432444577202766386040765369535504572615219911249152990694956748709542411242036194962085012882713818794961084865433828505363472337126461591959189507566055001362506110972618308353236421417063770742895402136119913775452405490354719041722756253861889021276587361983201353857620522679623270725321223396804455663002425560346268571781711046111290842502117143379939829401981495998261319328034267180033921691963231684783737999518234379932100908133719556634346987786267920285454294476649252869783903861389580548202857617969774138590801298661599099378833439908639488484842213337716991757172273439899772837226274156304958202810533510881374517715046290298328526410955778520588456396810157948534314153914156867699030463151958199414698382465094281748867315611002976872090297687563065617065615345460202485863299902846245306854438598336888293621946400967835057942083226134232383584566784793014113872569336836829244887703694908289857364090215618900872714932065957111116731086601567159527316738577562917361995241338258926493576866493569012812649793520136893701392410790228001268318855512038531805407140120100790855359012231421418372995090715324551823853556938210249304503877250006463263016228293930667604196304049040934912879214000549720044526207475055658977535471898623801666741389732071351105293272702296056524919804554458412903868904536029378549028246430108845136646309334341208729342591065338086190912689964968471249758959420151707481106833792456055573047445287375164511397862307855066638150787465932316099523193999823680858633704563771374507444336638749216320500031107341517559215272166536143973096839350813920447402179881009185049102029580289037720188417666200860578254865962047110113051727302712902114969065089340574011266794775351329062147892872659078754146028244713233582733657715557552786291960905376784448613387331409970799731818292833925466838196753622909388050427014029324802501279745639939542766709697968325536513024770677805003690616135634388740181017957626795690512325926672800122342979028707102167006589471234262266306116329246386297960875931831954533845812136623916079370402002844246821671700068247779399809850825475600456420666524836150470470981696591669740264908201195699867267921744645765358206849715058428915012835012857944431968984742709906778360498390696318717097024257818709750026672924336250321193196775879267399497127802768717007557214870229831048183745908231031177528711378214032853700713733637752419078633472958705913516344098286294428865328024367122957482599065440056477730056040741477434472964144545904873725851973091950734841759864049060836818646547038305797682451712825296097506998093254661444042248078795455594468675471817094501053042501374379639614152980236163701437864898062922478422365257213191700483145394143618434042110561447231270940062376428240847396969174283358706180034391012830963052171891927331305370300082907285751454376686404378915468279912595413298741665635491597594425091892054400076317029514668046634348717299787359880676314343215716120823940169222055065372038185943952682784158408176626669201835806278835013410546715676089670815370382415006693746431456664398775318134530506126976745244876757224183770986966934291582509551400054335441979728028744285816258144583643515000229117352001967888005060719244696961086411273915519072091476798527197341081480744675512791490586019269612570954781378345002804868092599855143560510859780535300996132887385903198055878899431740159255820728462296871781897532094183542688758295863945670718821490913231834944525711942765499410617488528972482267221607731394754959673396476002574165134464446801689820083531132421363072229351564455174920959625792670273666869846993040087915261635687899863813872976559959972551339133997352391211068527450914095715545117065311919056162848983473964403160754977457316068369350723721610472752808982137469964145687450834874526545914185224967977061393389440385904090822005656564563021017307820994261876416687495956988121680494508994574533833331804865215981443097101612834669013624178868372058657540316915776160845366403010064728978169665066320761556689210463869102428916659114485934234093855171008257045468525891789566846892835451270880167725362918876394698777701542933005781237966789525108809452520809003925276662163118774946468577266791852400562571062184041143901601884803412276097941914426909216033344629302267843088231270526156438295025961263929924631920911002376723034090605553126967084511399937167661341185434394428698661380234484492660934337165125377353077294413708281176690482419841361222344934366304364575432964520073531609955446122840111542043631517044651072277364813373860527222919451123373469574196477952230015073304610210471472766621193770025826070626649244411377254943278397426982964815409739234134898322387087800985918366682780477534920590781316220311568760401585218037927186682005360255389855700013292041727414032287123654771655749504315497097394180757182701251065677050185126549882436967436729913128054469060399074082709208268876889218193102242875005870988339472274997445150572830911808014129904236793148200039568657233180230267725326179079889614184996586019567601745920858894927951259138596615621269037941043168894712575245297935281579410943393228977573196953366967455657913384850999285240506224923443636515171233735452840860343103000075924991582558747621048171990210156364069070485714520530719684067440105066925124398198538984551051690781543381223525066778471791641392567074011278988390547659811394213401701078007169037924404292671556519978831912428254316273679447456449128593003200621351941246182118568350017410160230128123860664296492704925127782139629713046064615616484538792707310753533964044743347173953290172998290450154181143457978821308958740051225048160599207161546056672968128671380888714048817361303063582553929286103640031697176387938343752584401153332485928418520935746057750866498996260280128631937131457958011355120750519060747033460402369626127723013980997752243023507571770070156574845363656598551532341441311134936861244343002442831268756189715206284290305456039708793979650757177025341647856559376135336472529429850846678313659973565548164205321611003291276650079354231626720020182998565003870837885913685977974040419543857428497619806996138712325631036025542371993723229046522912189803977612442372162823788744312796922864114113082741907047706461658478373832796401685753761524596181065640713610760969403996259114729105092382766734682470303733634765735491908300258672699551105563592593542720483915572907129564843304607378508150059745400546652506008188591204349219998592157783475563201281740843063213235580648976949677007118061705256648895049079987915152598956551839836752475101369078728863233643219083324207579731228693115146791495761657477541664299408595917436999176372357973563464288538139985630072895980140865107414763574026133605876744662805590069877747156690858557168992817079936230239788389050556955173051572836152693054905376275550192270511491157230066051505107299149140523711072390588807619604637917195553329038306635365841061910890312206126596219994077859518636302769793777439122493868235610838986242374394985907152182312380185857494785446495356785224520042149720764968534074223225485838535358747926414992677550376616263586745894272052757760943144798136967129430875757471775841698767643831657672180441151177488017824758295851235682039446458684066254727649450713584718420807294366278636649387038989682109006792112436484776555838915784366286798620054298673662912839362265558583333304241411503682404974110288369219504135238000807849853857320663267781162964624619411560236015112033143553983699293975869793751383812607291790799876346353545739399510520828051170859741730874373014497199207538359315216339858250570915455746396972676726646629152003269247733242557991531950225837735434221175863419505185774964186569070477078874188048086458068835109336697795007533203106760550597511361391876384385598835933094853537619949712365571724274107447036639214619435360182280987052709190717133945822240699875619902925104650596318343667136732389443318424532079198422376148886429579214965688628348750922157329611195033015237207692153445640494628788654230056664042488474331395323063343394681575185951813245889770796183332133404502875212796610332172903015755189085331438241571618858715392011434014835066877987022102310154570522010210911152383828553346298431840875971555937666254200149581750960317257396514445065284406687611581210045595859339852681778355606286977956240889263739931684291220932781600236280868631356041000309626340998292379208233538623851111202342488490800576316254807161610778124995844969300952832124806430638170688890444188296316276340077891582239874748521681409567128675481619118582445889437729698643871469042825463948617020020192875992874757491053615425900895887870495092322563108017101263192377490944924544203418072479254135476386229628403302632935531257421070598592244367587192702752255564723950554397470067323139545256243672799357806939993310748713754503922493206571746758636486672114308637644479813915628313480471932687313758020310305021312547709290318755449182424294169319714855898893649350934359309558260608919639007644748672321682658255541291253169270449790329897098484760037005851425878609891855375849226080765620792233540011640307503015245254808187446037328962322779429813087700003758987297841673280959349454910052818875978710209688543856865166879235116747143293639923557337922441746252425727260411457224740902747981960534461271869814289170519456915740600405247948201824520538330375934157840685065910680700524895789975698355298223654542379408627078835576700681706508440982502957183829621428385018922608464156609676615082941973735664183519371168641079918628497811876979365081739484394936099910984742843250331994071904721180761939016229752032838613336735399927140134303927602145719390828131115266371414892543714101012112438141446891906814906767853673930892306969708679547818610983165489570500488021984639569585341022766852549317474197447944097073300763481407549338759340359347433701261866005152368796602385772690651342920820245479509958182885881017001672376090732451604233922545568601055034226211613288022769959961684451407576142940032410065056843123462156970813517936999990513628207116061331660009299116819051214176183585508740908418056062908543960588457996870932921402231795076655496280561285480397475083988666255694611945194382678891690823350832416370812887628069398262169201690391329808634542273510827121730767585028625382087491360278131901242256493454950135550476622800810773666599518421845598548340068395295887259930603617750739321435108882126833678681017473636902936584791243275518976030228892780976471760781010621869058025180465372673195948767471949490782858073420314708633295571787066182779343172023305394869332270309834127751970369466528793422051733485772153541932343985515628866740545713609463774312379010068332948610094196856019173250449785967461705977295355228577593476644901294688348886509042038073559488494536256967228319965955138711607963159087621286676147871366717034150026032052010310201920724635857102102567486949516316578891771799057396494509161616137324506749230139010929544206566087505159941559836460854031098256971472546669716808381315737878778989761960842450650322287101506104441096584069194558196191558818138243586253033545876606957571618190292872062926310784129741463545348380248745805441943117460256792931315894815981569881570054806382900138387816323696269389299393147097410256143506681809095109398032310254702915696929175448360421304969039942880452758266306473218390405436530251051401322472374703231050044997005177631241173502392209434230570254033156005659319258311866466496762225895929696693900011701885384986647482260920583428561659188514584869162002189957902397108092321159070592472307113324402154979684549827313195502344388294186782884089847242907285969015437633261186310921271676773222967675166488010550145045454627286971331759198629038958837606285747832076413565345064532036839292580198401667459981294750108889944171363372925671868256064060607783727309473519462113573934809990024345560870237440774725745470735147579658733457144422834417609059746047252466508346576932457724866789301979697443387511712512356669687897833876022259483693920234393249983615950946552781793339122738264568816034575530687406206572441227081396710735143708719171624369297603890799920400070724728262588534513237869875374011295267050517033904931450480826783617399018248994640050905289483463912056101040641960222101886732127686943905523190156768978090857829470693908836002204547059661418135230664858746251668942100058645793642340193048491292968918188084351009227382266064785565231868560596065180271125007588236746268248927043529334953820327495568416318983022209175736436262803322872481791215584104530002262670363001661642026821812872749998326736129412486222898706467243676134457261417865541446535899661419823152981496065871739119186625268709678651269330685680927456065534326755540057312841288447051001684026065688505994982308802333891552921699006001924379608338950002412189240421781188803404605898177260646351495830342419704485773788774381118511851185856497726896628871155544038702309722665704589451269502591908542719475598532383478937364251142441129046888834260558054136549999881443201764620972892599448973456128577248541892669461747345410613409894055970347193538142757928725125905129627635152271051347187104163640059707554068758820174100935513175970040985249374858931252374386101434374736706461704164076717559304292043671006569240601117305437447028931107188031211863043777987922719506192691859903833025448020782282347461485205889381405437623590874508341774000727854575795923202170586944333811305199691683541659309730627040704131785161254532603616751859050227572091748093194749665486154212430325195654702572469817868090640908289802218250650042710080668756775863361028679639072480457438404214519157474952253501037031523924355172096125476191317910401612561448405450741507840122414901344667887646356943790491042826038520360792393397680358637840112203342487548873201783581399481876767402013520509550049112897656136053063240544020369528369606378692706916320188980016517978132723901598376121647861270690591730180595839309756557256040039587820160015217817157616202088188410169520405572950710585140468695261937733117855318623517377902444375892487435208164868584549504703377915565772023046875509019048556623538641890691442451871304053608158168391066934433691385809969414090098917235045255872268748082704380958993081573188752256455542624576119827307026638713672724861803684055342078968660477946846437166664197579294394297682201532084385882847168172249230329114613875673196557288813142630775021960330755794682023557924517972838811971527279432794310701391740121053245295934296626369852949179759283247737410082190756480446909830898169135713864917992099395191163408508932309436927433746110574758957152888551775480339793072528383250336992006678577321355548833110556693136903310424598966605997363474524560976078847615812070763684371721745732491583443651511360075613774453514572501323105025398121011346279403442839116102878542468422358693978331967651559980426793384638835828181814243702067708314576431980468985178239318784594744044736265106421091810681066252266139999974291841887908969342663304163133432817858071409124691350323158084409701024736745092156728021547629204571215417858337869894191128859892919693740683804882455105516747324649056091163368098498283185081812355893849099549618206467151086280533946491991098925383675936028389764859478389523430004187253997589252144289779141049440846617639125136492585476195833830012877496063056802606942161638935222365175089220699184157011322663729671943456267674101481515164685448516307080579614659756870104308096438157150481109792522748486789716868949339136999803296562781188612120060434130016810997731560494375641845850677898890601120373364019902869209546742921788958254243924743317517279377766087800558880137049791126641349086288389965459999193023270606431605073539414641595491539141769382836142178897952225999056958684877024638836049826549816126376810510531115881979383840229765566002315369553986037920907060051579439451746851983515612857171062046530042314210045776868243828069127831875198464467898706687071202824668205233343569287928154577137222169931564062115270177041099789154921346942714757270250714954202724022454395290956047681069873750163190551145821734959984417519742051850181391605980902642268675323321941548790975009785145460425143901176274023885746138814250830464429654530460875679207803904252958161907217699839051763360014231261221757313365509604641600711090498126200716645232588586754403154149810260048842922621956955177781552796005549079919637882758976786968863937578018055168560189957170694731129993114275800470700040328838092500574954867578391705015235946737062324288691911657428089676278267948644175813892304496262959977861271947204157525077091686410988794960890117363685339382582665652099615224973496498269678725931056379822666945387721289537738401484929161793042933191203537018339992486817193932067626018997056439332232235384734395594091425816401895786202592766739241407360513988302952320326542564647977131972763595814480400444192862948722952320874373496863741062114497120994332181545888095591831415925097274129764088622677174666485862712790107327104987522678963075433289596770574200028013240575294881596603112198310803103912757846646946403406097280208404028947252810423779108579707673071898923454139214197608097729187895717678242199717617818995215040184975639740131752219649956026695707123408787170131904398703106025281075687345346066710709086740054352779667177612405278503427733734937334958286400572509557451009918590892340741659144637216068000846912913247880994022627894353902055852345397086561030775573677381615508354554829379432995245697287256909413832310907191078984193309544916742279445095362397341409826230244408954177930824139981618213542030684186552747527577562880900108807098319469420963477661102997025063443718770557599459677258939796468762159766568375741993707176161496152211618963215154541900539829588365039232547732482045345534906433955061716590842435930086506808040824505840361248651077301942527619310188560308032005058262733381954944092849812372998794613384894001518758523906117917691645994145768207000112059711503066575167718981664007679631582459717591940388797133783731182988368014525113020673284642748573438134259172445118780286381039617318602260491040727730043148485534518216546050143476587559992575610965000336069366187722157061275846873672104928293745278368065451386943455650394717180752025949384657902476174124674423215390093678437409534558107867811565824305012179791071887988105978387018724812254653299503674071484641935585198230365037064824182197784163157962234414299629735104095842150678762042473844436611417167889232899973479282974056238793233870893441148613546765327552753502353473505408129455986615646189591815293920372391162177586208600027481763327758080150327311514381926741323432500682221177284140159831880254918232853860264872684879137183529429294841335765484171782174842748951678272663542529519449855282715847648398268108191740411990656075464386541799052750394099941737349582251250502943113172665143190729432294962913964046166634796639608721046331705703919547905708518412571767133485989344417120974805996093257191882249519686210256199017253373256447773555342286799795610271047498973587669169206735012278160563199088006164193034992310684338355626470589365835448908367620491731529550709349842174043904561310255519248359447774472901558553322761644492426428381703841275601815559100623184036686990306212543582279144156243305465107709385766952629395504605014566758690671602473389374565356362064198290302013760231991203576931494295519370921334342586833996491914150495068914519765940395287529597588775707021002949985289086856930433392614342240700201166907812300723434332940235003361516011976651601495545889568380312229023206937033965770203622119982566979914619004610901479706723397311710488430603255448521810126313402189975981295178494862291913749449408885567078008124956910758789428289485834056600190350507080199458826659506960653119574086560153064869487133910108126668920034149711699316775640323183425117206206469357762700388679355621540307209120640834018390470272264070095075005686823173888040145414638501937192515244315125057589834757000838488481214575164311652773367008006903330081266841928879732011598152330948315668207067794836915435124266411786093018198109248838275082164707681125925102915416408800502892660890174424361478040416120010006651261863177126846526647182467998277960406027941838712303900349011091829410860529654754958181112890714188824621696643947026038054590430235872095092410002110733859644275341063632164902649222419493156198164089263656021222611822969246501327898609289539720832686471944449063422847380491087889541158855577849348748174715474358502727155257072434947376159885680227046068507674916178444894298230387197172730601857512551908047385441622105707342176963935748544427558550319549683529499091857472128859768475782801537283665459315863016377022626058683834939344656697053527472345562297150683051538671114507812765200859069488402811873232225967144976672212720973432102292124427558489453818807672231373094108726612715809787838557416463469773196896350984707889981699110233353449679531625565133502766487294736639131163117417530440268282079510507462568427384821082536043339153727128693555676418752445394069068819301303472047364496046945808238724272846584999046417183663180346249356673874473432069254220999883334211131841941558629647462867524284870467893100448277845565197393318017729573723330785109827993067030983916754105010520384431187626107871541104183158069008353340370282200470852720878057856884223125749745947041531910368708265450934938782060960524067760577813199925838571935980394356392181522813347106150605043625829194231838046823836685583878783949306841616400823808542499979975820235385627448421478658569409298865652013095108710544851239371245718717771774770773087702092140174286197993615900173104221817279857624082199413867089407013635557870938608540537435516086707908733123177462962634230582045095188615655770707476795696508184123748159908623341097798584469804853723548104883586957770999047902358784092032507812087665852665586883743301409607014958374192467465782897301378117061161736935355562332204606517029814895699416102043836395357177871097463062273139939603759217218537785660871950306105331161269813571759357314132145037194507430964107898777150274838769528562797217124026554457557064833106760632441489125798310340401136584160692304283837815525831336779656543738541675150461426594130680398207972182103935546727243130410672289567842418265131772160926572655225996461482476716610221905613138330287603615101163749968104657585067942529988645665715035087819619238129039388531721930323491954836104089204357361102344613934112837387590653465182735808862226326534020142294864148452076173177562161521542055228243307072352368318700111314239585205622735562262622923135675969171148272863661516891101511675132245264784649925811755740370958104835840668290280082760287805239679874549968171279630470617762119670574853227336464758707313179343334945775199195763014580631506922092462167459805431208438689087717563932126566710595159483860657374743361893650970249899621389437544157489054720590737631084487943281477710483751850862213015266720686749852963978615356406080784752307688269228444415827388444626968784004473777590688920221931000283121234055943273685840112018048680765099162796986630728861117298314354100241420737569283161697067666243317069623693818953386635048074364879290384530908918045853913385901528707357653807245841936570586330311647915990846761843446784454447557098889178097134482531543522474412124056350580192085669478902683969867560020862844045656749875461182483609456862798264816784965068166023350833648126134631194723065828501244024157412555551224969170223584224561200069550317248356572904852970311697647781980492348410052261771188861633962449598523418528420459959221967896803452182746280752614138990619288065210957020975906736086592990810851348408379080286751293678930396154775239109589132870787433112383163302661667386601922576688714825097255119972459238020788020770567056896632912703521536174336146243413363247040928985435430885650786692561670823845392170159975542398558397687432519471831030273448505772204344653030274934752541166820151277695081482536139590018638632585596605964980139180649846818325097804117904568771105885440163818033899956171223965037021975078633142260228186736574888687253273946295191135115233034654961882833809426852136993036520617490442343565006044926704636949880394791411863443803305682302219061379936693302508725941633823949294226816618507748271708976221945615617697260664930622800599225291265041470982931877515894786501096483758202341207299846429403682803889785467276316602393817447703344255575075991003229947926970148362016562539543248372127818498983954825134291908680507484626226530028185618524361203124265107894120383396629961430560774780216655050024387153605919209322168324275901326818939471525662089148747367591055472057934131953377246011394408949935928105100810746431907800443954338520520781820192467546896358359865377135617235158639119070972460864888203710010089398218349234276033124775192627036701938064733144089920759300450944921620662434739472528204296964914216679358996211144780922290276509985935024551435569855529748495156429979278339144871193826189222820396428358682707820833028707669670149134161611848289742135503780876670852766208625157005151326798789059963216115013222755507761346053473071115870696231058726870019657863995823483982760824083483282422815582082097943124116892600473224208956740008858009058355589765316877141442812417800799082971900832238046741664272104854599122959679736349162126297887877785698734674228900713969968398621377875292986334498627527238912900745242279507544202440575649632849400549039497333840330682706373966662607995082842875192665269083608121556849962217113685184870832135157097834223740528827961752304519584336813161758900334106630888585427963095077370937850497543713687741333907220102844791550109108582084360709452048890428965957303996279701486940463552404590895994972288155857006562743846845488496647979935737138524166148424026142815026966609725791462083080414424137812019974606104375663739688196348267719551474349410883213499267376156120713791029290261683817899292591373993437144950826559856690003752723917302777757822660201549897621793957183450733782747346909761758509098369233038332235297351871748416097206821588243909197326324880971984068414908497526420952844453621550925725332283906947835959479959414891493054211772803629143574943337715400169181609953718126006428062631895390756906462330183107717929479731006053159414436773508233743387624973392989275033906987165222892556291119040870630187195549388108858308182128485965320343989250910375784456816129518895401889353191087583490443812954399728585545772361812356437844825273199701735108946677435064563939975479606186179030855229708167745298063595323940188011376885501421251865279512000661589434089139803715438443118163513714435615887244521874947522952631304153207605328466417406566533746249224409139488416490712230899333854563710538540187652408253295718487889688040780797036047585422886979549384990622485732906741403956410296568957275437022918225005376800202442112360129758518262193706311130682259837353872072035816252513468485474079085077309272539687702041124695340440503525611519781170383836336837450699495577801206985099682805570377803242185471202869426364874546185838287016990044873394022942062232764132172528918024185746308697785597146052347976429086313249664049124698414983021464738396296199044981526859979166584034000278887921076653842173136399333493025438680305587526118246270672543791694399030401909765239648322198859857561500904239942092545506969902704171278774630781287716335891569764153775247273706026516446833704820528791043515112041871423737042274409893858369634965937049002976266795521704096000394658769766115624001257215358986611411183235441566033134374174787822127681313730233394828575090017202350126401832334297402628785226419972626237957822413031629853870501055773548631129520937219541114536182653842342674814522180499544616089604706962516174413729186316884419612010824441347429974989395134407424656672219870223305692230450123895111706544563194781209637692479243958194110101646793811946098833950268174241447480360610545431560291409599427611642299527592389276692953093497363132248957964944872910668954604451054924465537912935344008920504511850812064603398025983209621857177802543062599373803741086680356099283940679237681886713336031486025034969759986074585829076982884922174654565377964365004964580741819386909660081044594673325151995797698894032294810508850409013415334650443196676231625629236468837428116757957494083637649839889612075879709635743474322385366942895980649445444465810766013130484616565934812829784604622161788090844263379622567251759528038490467825659303414465367041803080816390286044062244339392348375469167515665105211516747896282347235842755451987206491809420262732304501595342912499581284660110996718003611395963038486878505529864400778316016237119185934280099180398087514142219888685789195819805123942353900057124264739197333087344656047710530443252248015603136985573806596261006286336413819051039449186310162950019342272728497024228867408950396759936466060582164073331457576529379041149959624525908045348856491498625288856803278465946745821108504094496436701100516845008696469640710796240053691790127416086818146392200778455191912664261624509462456753170828092270966648839027901344931632208774515562981206444660230423560554723115785672125321490596622789919693534561656954201136440203503819765162827109128585086364933057356789404200448810988402766848588485889817999247519723672530236838448061293648230038368917344878492281778693493528478950879288043419442024578549253369862534948581890811746137947667961572073972906365066977521926805821659426649300149330621755056982278786214434840536837310878342189456890150971409241291662282909554907396597848580724398495147689774439727159979891862343735662139810669748100862056014450471845755840223197232248475627057347092854479360736288893323518927725439941703104719135908258622637869859506705159964088517812718663832593081579932382641451164267128502536351417373960629699584958936997704021198112498199098906113532797265825607006761775139645358530926639664178764450789845183537168807827804211175223145453966248315109700600051048271854910858368106207052542622380892097489477237965946524694548689081943226750278656860873469889667177584350994175628013554934598005861467089192005442974617860911404695858972660578259790736059940756812405164335933492427000258158371263189513785897056464125803247353601184486248408547774780123368315953204462314945101471378872971244040571132842849804684383755968953370141842892287783817182213763110956071772217452536131324795735499580554221497468373916206041261825770142407989088443136908021897569361103210277329880190622179432264341149664640711006578760964685197271761698507699950947405324715382818465020341497977243389716396213411977763583779019808917363050378976231152004451157670897287118180674902554411391823174982649517555782967311673292505652337261107417073722105841160972956919390212061519619391537104549278825076272887007776240284545686349663925780767255366319109289790415143653212920376715172458190758767546177882479250257179450950423226203813058498293198761179402882992239608708080249335433616021315268449178891489497821590496558711981950775604530412391414945529022768416068568779675509884380919176096200169969071768916008684427556756961695436859750146114108987276991341143639891794622927992375979384021312737652125432602856540669852235568953930907044724194185561971085995892644436195266171359271313506406704856295950074929397275481217694958990931875519893152221852910743409770474399896965364976131902144810682171684379795570408630621667305964469219367943896651031511412230005647751254623996148635104578481710026834462015812032919827798291617534776618572262909212419608863821242021047656631003769366366314490040682540790264328276871024817227248290271520913985117898046043447791459846513512937874974953048700566532502288204134652125273671322756229802594805086671897692946092505505879762855670586527222127068905886117797138430594540355742343015044447856459107855952134206247743832231038056395793234618876148166661271010622583294624046859190611868832550906661120671152254029653832588113372514193605074311231814191856966751550195381430555168467178894135427158255451700658833601957016667527262246865907411107808101630964478804139431295739865291505820083641504316216188824661384267613323109468973469498499926789597509367383738044038010791579390211632511996405074936388317151854637676059038330024151394572295173029679323711786895386656546373574912704502370144739652413359203711885380704273228106551274524161198844133342793846576279501717867105696371223666056243360132947020771583908707732626962870374211976579371661545192342248921476658458292520919110835814809064582157420291452469911673044545447600983827650268531840324343290713498182773028257771586721245280583601945141281379099837148332079218204399014719075434838067059272450057342251593956823875366466186873856219769660498929998567888920689055149252921474420547005685197496986304632658628250186325978621111063827227095832533770333823134443441690310847460458837494534057494122421236271612916681353526528069960773290754698431724989613904943909948851192490827374330053927057390682600260741523971734062671359150836372306916675810918168017540954716751602838735381941576056449251950667606117581467189906841836642115223838798046802181790183136376491344077790718839848111326090127159111650490473902566701420982409776567772616151240589413216213045673339870086043453992191564973613924068363345749230747465519837218968749483116996852138846782530844688561475369269593110131860183261586286575970373678104506256976132345357765149803468595861572467507895506754312525221027410304577592300915150043659398179633033900983025843505451886245089165902840917914759832918562029454545196866457890139003879608660308875016076016037742131771509001079203871847096567978583676942981456355260160962607033247332077302163292489248218165617846250785736506736446634456572506466967247104302999951840408779458831855250446470635789803042418507073037291619509218669364542371917161305350861209821909494684059071366273401241920795790026339311909612094168931690191104527891971547029137418236662288022849571418492108128104343689221635926224265566037481904773605882811019580673802078734003501515872834271122236986409389791860313140563157864898394509403096645689018805345646863437501997775079049022057888219789840910739675121008250199420549590405257365395705115459074860295545783615749120696257824163894190557785837631418598673654111331482265166584412940194779117381387004190876488281080293069782495084293816277209804037178145884599816977197692599993401425389828414501700708024741321680596352588644547406271541574932454873376217845899368950433070328073854015476974441066895245708914105306888825275753622937223526205397008539838478675349730255289406019668945140754234701303893561855476893262105064717485798046034626414965680435163089739376925046599557317233583194911368277614221414523679608819029494909499819536235865726248674153726226394518145619718107749496251650546797286271691226593523673926592797204894199050448544898026874067150896354945292520208767004935229621688464889835062909407457219681000514266302790137213174435128285523572143335813298308384444697343216682297176364647640144461927122221654717978902208292626279979462117205546079857386807346457040151889400694487291066485226415791603713281642196826300451875724601612455786182217835579211550763249079555982869545929733492382869764971075820144038528355673672744753591130513348140585528373258987154075026543379656820942313897738013797039435560102203091373737104770201802457199933798289560494125389256913989533623882063028693052052026799293991157290099247030589465253044200116314476185320894071819045343593993768528001178478266553859645551304874483063698457303707661742374782384446437508336455818658378364824481060984871410796399948573547988400516210243049078213179073156948386361226619111507287300995050587262531395611294205625066974181218041107222264966876247509191681767217017775816641091770802301296692723319277518115967253085446676215191189819883882782763280128661523091689983859066670355860892793638064438099335588836879033025150435534734709209765051127379662670270174740959537728714952187909817390500393800594054680753942975265017105175349492891651928564070434822947459358209599333228400882085011845589565394386465922963014803605455674566166438444559204809155681611595176969896198890875084716221368903381832257723416106581719976185252549401063387211367984551550568339589132833886128970578940300706884189156780603193785808495383973579124058165817115838587592422228243415641519922942080264728240909507601565684433182492256942399037183576200304405641871533289252309756609358857978107812091946620033525702341083351725714694997381198802685539714254357598827422587676800016908450851138441212606606074036922395493638555282333617548113844783065542040343704487406125498514810759377096794035410721316606913133747856466303128373503162665691468815989952806084114813871560289939362386709975854512335986661684330028034172619282198789420662212421741089425541800515729321728280301262748359656444483844562085070612398466586338415997318065995831721752800908465923930374530339068097100923242097575548667774199621420592615479914281120758731230907646777847425581080559369788456838307385847885664297970982001089939834087184096797857363613527235195930772401256559314795127955487353697040555031988327148183938481317165460291943877568537000344099062971098601889482499423808367363419639032641245670847796085974263158913249642807047788567955363997349561610579707902270958074813466745491637525875906141127724651620863323761546224136583948240149306730359007438162695814022002520652479872293728938150644408958932083563086111901021617148153458083436217587573243674055407816034709476425837143266583462264063258482737574852594406640618999324804240884596900360640518837335454707163045351020678126600854865159429344647545000114018087062392472623210566417964279738717917001889212354452032508170980224641683797093214761562330568433781359489859658895142460427240333174485931124919802598590606078966483177260764991373900344516508395390643773839190095372620296549712698362128243519464530893053239344420448318746312380128878669024934754939487261036042482113294499889259918266378442079359833489401788128624859580539110354028463441679110652039968767392452877751539334867988262495438475886727275680576811433601759933719883397921943493509984638099509812146726560504892517400687797198052205592221603912544488099401527995437445358243616413930322851374839451612419658635310774204919022022096288387222702015569351435983419546275715795340210743433964272759718993143983912582740415326796872631373024874163144595347179506422771726923812709541451107107593132593604584150404995845448818796440607260743677631210608277488856216186098737714272016824171746920300925927776888648636385424527504176870208788304998452019507839144822281406690900410689583241600071247726020546970765598692684227509818514764000715684601317898877378657621147885947260606778359038318115303895626475169413519468612714891919316148379136083080045012142924369462419412220819170182585109323063774292315552115372406169311854703379313643167826565706312392581568578869903806053922553304980164206131773143199503355126345841402545062581997129093644043807908709286613726983995192953679325115597122168298758592017125494659840664691708868656770048529732957848460300091250343132146897424854614236741202745156492083208827367080575577215637670479986920175144108892298953371961977105353954967284008719917152262113411189069159315761558427985092553042038503084311168487217500008087326521437949006107989631241085582924787067744416869786841192453698941736707437978376138967874520345853177932113348909135995868837039640817489524943033594977331341999379919249248047880888823473539574412065308728154957932937473181990218299059433181930906139429191314652749983119680349948063922947562714770485680612662439516564101379779326168805126076307521641770780598398724058292293844817657326474517143538622795296566748410331958149108274665421908709140554247354227369744066993156873153493754464048936513361927349568473149815298094685732164307486124861639026494867872026954300263510912499851790072763591759448503487807504848521851485622365607078735435846459228514394815243048779138527430845231238087661278988620937440358215399874804155717497985861266504934613324887267658341003612987385100669369311557161662566225041341981142173550811933768556214827607681214809870832372743446266845505260504243860474419538696402036782012173045169190248977678117185563707660703734474404907893684636001159229775846576992423398302341962103215019963975577163144050572407984830696398323072860219159946829680308924451203304584792205596215938591031486766090594710784685217010558476007248712723821494097872527997887633290054653097099536208144387978918865501632231021394331913780347634658317305231451085717245249215103997227703007136033007953927452661712239248685131209634506253250686656022792708137675969949103721718181831902671842359100357275363864659134862036106284858837921028556638694496488013438914134663661778249283680328438086146738976233922795500915619094349313253067261584412715301708867814357399957233662745368519574502839040877466885656444287784329511063952193342316897923637739451246216224506803427458114428205063030186427777107052402150405087362361803949264815168882603525710456937133082514649211466298105928811765079819996360172696137551680022787377772486726872918109414838175535216535403352692390292886502452523526312334205822865867977118324162517632134890455260567827853908773249915810597138842214333909999862043551691351815742753078216105395474005663662718557490823886709007587345925071346176455303971527659905430812579782063646113185251225735419804380730718236817128428931929694599495780605913606889846440768824913867741856335042913118238916794498513655435304465134454762307032615154303579583885397643003822524127824911560773945064504976157375627729214461579481953325360999588562600694526285677051188284260271281573723761625297554197573165604171739166201842385928073048986233629566177304844390206753623675864311274879719692374390823778044058475630300512370615424981351438527499918198696404519752056189956883019363311919939486300667678855286016784957651110736843004790278460632888600415023566389677660109479270081238541631305093426627232165096178032947008913519529487458592290552277497716347902149982442164940815407264883225203726766468653199543381957614157276339344060934310881642491058756877787643540566338748793481189872842605345859018176686345244198450949058256939877013099967971599130163700856642057152109232496028324867434309756686058289481458197810291999478873102904146119245655746315118562274218455409124478929685645652468645690769362688304430556697185406704907051138672917494392333020249043509423731216281543311176419393357333382256490862713030824029820146769464492762747996084872841247846457644627131229495344095329601849482800513819078151462811840652781998787106461393180502318094713273150848757069317917925470066997617281430163074717598780832118150726818776282372514110807599533383487778074768204217819412999291667032758560698522732030500304853620596224143129107124012315602206131347595128564173120638700654959882576332928280540008853670938030370246874865149871141331364825040976177861620009409746860174575601312493022425310639680231123985929637295155131705216840799718782012256327613426361183176062937032522592478209141299423114731162301110307062077997731905474754735611581856005526684753891633989182066610018051057498497337521932019505001328682126117588461584509664140192414932371318371810604380426693118258751434467108986536501660481541195884870881539973033599375024661532652173500700708357955937622946295320286152935648789974819734564094036912324444703511265386140978104635057882805555334284154378455359816753861892347659283517210720361548081048280607567884633559735369905313617896386296515621814494906114475201782253054891788665471410203796288266786778037131660081934893586872718095188767615737304469462164202421699533403831981897240981450557595827115575065097397993316111909634748603167325704000262318221825420447428438105775311546431726354371703396144125375158240193932951633837935115761312442368816259564534595597843305730465706657122966908791715897494831998264822428500356277656008207265299738167760413722484255157629851411662920191967605103220345653539526672219712693956545604853168202922859355860918976475371535391758201650300304152126920033358149031769221762368411561872117769718894086730900260277831291800985680119776168622910059557148525343381813967972596184552708429172180480697138999028184219456928150010123992550911245265920779606245800890675543413688677919090132352596910036799779072778229638019510580642206943945022070074968742242348680557512276733742303346198174355123971503874407184803078266685275702388546539153058806055006223604828003752280880696648760687456725585612711911380253255255626795403151566569400710386628649715997230404939776009498433826667874208493669258064076405754281877625418247846279424369965189907693781057166202854187032837413216475752973368306699127875806305068294933158400734317340567962031670169267931333002550272614982275607393332464744642318997879198707411498744084145497409570322603834693754564083029113408023380177070504812626790436657468243663020242555012256926172362178849222925350837103867172498300927957605347999183918383147024031731804518665050188964494519765677215739946401244488113117627385176600675554001405496125778951649184581584841148421284727897341992136651242263852572900560112963451020573787372858689050544153961390092552337173367912498384491540720319920512818007712793700131429350663215284593618255273621287550292165869168960440084075719283128248795162353631252879204923237587204672459025142947085419782036509092433985128413865455656589983236123089585629776855531132865186165297861280270904928770021486653696082691800944999922317266397061865840504691609705422177748169536075896421327622944020433767609656407846643467386758497548048965167020023285699829768100415669237633095882943569390250191747433476567870527050626600701647192833050159974362014053784765302036825483432278624871487414278404774070838341841102914312773289152608262109472910794411957923615868709757346694551679957125768812821296772716479627064368850175712778202609190206391417316387891231611537215166902846117979937249875861599327544959465986956583055166730395467137089908615395317185271092458676583588416341094623199517300129134338243590006372413386811550601303794965999220201078109721935237213522000948951931093265064273607566391652690111400339635936532484714902444101302393212794880246298290846053723328269772470766770427269739208610673644363129578550767126001504643377749177843815618951886674876049516751622073619217490757907772109896199145953956654283637133979949037408790602300351222681593104615577019952870238612312339311160419506066830012182717030338149735347593541420349294531964068544843784978525763604346388772093041762545597234430396826103077536332522303821570753528576590210247128720220184135630812162583748828626091720278881107097329528962016859980949387422076946821789076182391652721281512716802433789668518677317280260823540747541527321067523656230438370217062930937070398474377276583723015813540303431383536809003219021041705408336235225977591641625255830377974394065612164424139172862496374244055216814251216787100450116454252337450923328494623740506098496044936478616374449537598092263851495311476250732879240218607040911864921608141108963383453833982771964262281278505791695506617682278031590695192773378563677120828836913411172356990405587813775555793236128519147637037452070307209698940378636484032361215473928034571453464844734108080509402081368607367695780534790214233735534308314454307720931056063638281165170086918041543879224886608479365918048292282083232928985921342823782664351553814730946600043001159487391132675169114028827382137031026812637696941973897964110853588483882020041317559671968003970222033602451661609586342852180149660166860689182069722494943651066753786297843286369661832272132043402567196881462434198970872521469793266345008932927531167952944396019621858035932866281328478694598729408446834768093565046793272492842777653981117573180380548368031670599616830674171214705044178346122980502615581496178807032484319719430704339789784158265163755641440667187931439313446655357537171616450110115547588627095378144586659201171934669919086590337422217354903597857348549770238255870877030111241505598181633644625162087048284354173170586386832909414791675876828015484432469865871838453730296151089622326283936082234995762990674690123966461541607206055572518123048032386860029311302263616563997946803945806838617539737229746216267671468361701154189667085328026899459488774870758249453602639259286177700165680011339204729785473728630944173841351484483429186379986709526639572337448287988325570536320708083843346788430104625844893264870868994871908953403719071500053091300580627983147459923437051384360083436595795985819503010397879848265055192594954708818646843420707927928955372951251691714811239157144215105144287241605931100797352277272786535806679540081853103589549368007283872955569765246880869527515048793291044110955905995309046197127151749659408957289618185996243584209020342387328915262132822756009540898070648293274863061716884396041435063984330307066646981678788470660239095039017485714657622075323492295762967375606124511300960408738576851182930820286343715978089985918954726377686474357609214408580872866516761425557325628721899677585270827299545169738992570515458009891744214358175065850393223921246394753542173508944587175528274996999071078282509676487436755260274643158274693414946252301386577078248504742228057605425132393103151937238821072919118094694494632724719457192297533758552045587880370655005385428834154779393822376471062574715905826814041645052214190098859325295654146334435883084114955870977265007989802035663557026679749703527918722818792667974263862731521112966082409642330658138701255400661921762212546090341867784288693926438595619441291847042544759855826078351121904857476311281078251254849818066477397473051491597597932905993738648364538287177164715774152641250940881065358116295947885148616204896421405726324271731557269380646204843227716090431672813605400334977502007880631387356427344788469712451095320519363757451452835449918920715847129089304224060780587007141008687128184832498163248205235042923304580711918854484054853149179767987606892704751211925877780319463262923484048557109665123017720504370175337467188961330086026470117424572019166532361199347303297570194827013328923419699187916922107710151417601922974968555498139925793522411779679117456148967852427401564158966920783253326211265430197851489194781099573823085369289730255335915754266477641935385516171408201157463698593724415661793606500004357895717828817773810720304579743574110487607828813600729112385175870639563208063103040705115816648468023379990895869644894485723010325964640111274595442958264767546362801531830800328252972265916238050213470937260278229343176163810740611878913497637917685921300953678729284581794303140851321002569448539939157168289203176088543983726146019269785199571510368757143677185267006033933877683978691454375284548658631763101549039086219677304538588536623995441819608512007038703236938683769097265004477153762621970375017131305728575397089465645325542551839422103936933361727541892762049313684222431075693334138061661679419305849993868421096582259740856274843749497246370899942166654044900456305265585808818136873409153865316309316170533647138550074422045224590912712138136429877007458262500995738515174081256638437366200576026533135850815783179024102213323038607815694146665565602735454469224469587849133477418456973842504444027086356906934821836853173568307243005095958215576731361108000753046232606101828174539842794814107640882184919645262619162673105579910641182849419103798575828106349553861573646581282759379720415465683550918721964227771621890697262973807411243221526624416358988728453806863340588795661482975762399604852374536994929595541675477379318151596642383504115380543944878866420923872593681424997732666182007256145789886505883489168743344572894353950447868031865744415982997144236005764186902152307719342727109870395912443898370208375768468037139666357667023455919957205910723219664913018821722669726456088231250008903769851328056553803183538907851226900001366190457776219271522648657891646615330610956059281159488829911177876908956115092748280683499245769898388805001561244828556733546330442363450186813817333965220684243363934467758623743086661559709308093912519966392211860928580052610912786459382933244128811474880878465328697141467711843696578549471584733420690383680562953452719348180655291409450891205406444200242891886996634882605113034158028656869642808343808327238455181612034278478739545671723141179598572911576760221761564843772009044208406863580545372084071036818711194908655775520128625696078880418206805768305341332061061638844936791679575109716595055506063369400035744742103594070827394141100991454379428479222697366838965564944991449606529282626881683912188127594904487425278278659903134684291520705393469776227246791298246195938803517791327796163545255869077830404804543918344245694618064136887216521474202553857785796424368024384613593687203017308372502926903209306917285403231668543577804068548840634322102640488678899185046574719884150406114467094344905519186041441972281845979986650901997741662640894917796430116557692364345957063100021475640746344941831089488374240707544605498386543669625720309312579090132111560927283427949276828209202584957418982876970445986746915954915532861272010910259152914326438511971582051323371811541841421609998619408105705270669336128029296252721734649090832081784598653923054650051743464339074796940780914635949070771220870054746363801492102924804180230041418020341670826134083677185265108650955807895246408717977378433644514923452345140624979962176249406008520473203800847596686986126603422078042073956098474861901661007762700286235115503294976015504792436541765349535695898003080052425862516474947326506777064831721914797661685668313386801443441663564503564610359218293419357872102496454289438247874492015929211361362640091713827953579495553962950538821716323361209088604448757991726819472114868757484951564464179624543472866532174790729057005228049373202655716538769423243178620685840740997767425673025373142055516084082115561581108674071179423258484135765819618998229716204243971820472819822639954428118214430077802018308337891711722588239660857890243768943346801962561570050355345848054203003530917528846706040962139630102561515566833579594080230311512204951891378554290458819827616601333043698365290193826949751481318079196337414135412484458821611261158431211450184962719712343272738904029959550956452967563309435524690242904519938076527587326304392246356058290039345273856563245508145913788990661084901552973228501828123468613888144526131363630335771889259586632355947670259090346642831142342608450926284839304302720087106136508148846525068013615916987145491995698812600149360488566989128952274950490943032744909678533191962831785182301910719799240573533844451191270072220939592556889835155077619989694730581343530573953301371882365692272764677791926635572994837510216924608051886165980588707723472632322717105342769863924572830662774028787988423401105463981490022239555461796970775084938647197079996282147586186098856881366736241572590976823491353266347883051082126655824484527950688631144877290269389797189125273845331424403470920133768602887136850578719123931241692279230883785977820465708570111109051336859779135627623854270333763984731131335173252093611892864823763257456961488889216942214311306178133787796127765080123142704609712041729213975640883895520376418423108083336221311049079330908964540221146131831516822278696754904679245534154977551177878702698935075628747499388931060970655923257874106561233063105225895832861400447455415441724609384801859754254153344549139784378212514236029553953129649263697342860188432747306379623482697198407865058850599087334767774805741962544759151371374380137729384185862928950769693577248530006347425692410915892489974346995325022411029008534140893349912477596749914898158450536440856957425274564167931080589975653056597125732180645435294047167251953113784369108056830927195416191306168033992385256548337832394028442544968066349254002790301069250746993525514852356237861975585956756089433027716252065933435372539037330093986265872845851054239921439717876576061978046865289744189940135615763084263004965285895663209398025747909281680506358356213294691768631004292952381816679617327855343379825274763189695576164120731624768754923549457428993390853649652024905414477417201972727577431334264068191623277883555257926216704766194686696230334315177682148527227728309839853460448361463643609696489347812990582191908278799619595116791186647721804984900042566846912926258113297836162435703818663112775905281231434235602623624188542832983860092836959282526435388583156081328266423038872590750817328488615028555384770553600644030839489460715085951309471525203096616006110546958431649340664092632889147656908393768805356190529722878570059522947198059764796586178717713291457964490462345018257395591552281391678359360563689342392465006007874036145368605190838074597044971782468602343538260019559828545374130135575803848621585365481137554759337760551014422889209067661536790352457315346223347902381739791220651490883073472392477844851033141087479011841430058394905475678239326812702603279787681460896483190810362179108947009959992590917549412639632670280636878157580037676006181561589212843847842506033820273323866761303279228368305362437814198400720095348288255078364012724011649968882312515034975201608887799518454606374663315552173972919172292174891953913874970515202527692815922675047174081379452490460059439083817328186640596907226867916925138424270642010844820370037418407822923164418708817953699998675860736157744908038328792771278397984324261722646182856732537848011229986094227881438106959217607316014301009388328614140950379206385617592948051815249516337679970216738934767888830625681274888616795744043701970466782542242677884508968935423011382076927515933285039745499501776895797569816422493959992598859637646830303142905709911661242945373977560508845650270216970679082539880933759036372602594913519235248602731671259524643260153514093881778944959351511637031346407408233581861774504680310288369864579566823857318072950559148677817996230042409645943632542528913792623960954763786658659770859285833429291123516856811833258956344190262428428326527641146082426228762549193871981623102215383145846134414462445547637632855739089753903654722238962605682764634005876694277629368012648615753189636205847388971085562506073520501749073548184062271489890743090750749234039711633093362911160702682453201966839996994627422771052054552370808745587172314179550156474256417538336131251242428012506900295560751476275078020368933052210626138091198431159420369880732250384594781668660715793663428862420449259909904928298632877431072253871851991991747660013962379723117346647114175441141704166886253090742873756795315801265131715178458319476490759378868028654736609067034920925336608264441892594512079977307622268045080440875541261112531303874342761570725614433336216144977869733609775980787445271625370668111783242293386829741955760023042719075707430729378609014485440735201195468658592579380144445680317207504932926620813538767692980543214240171567735807006167115642268324506914336441795852100480243047617330568215652529995275263950116378610253262512554349878933055710705704275107039444868586908766364951809081107901693445342534884790734228899314107163962023009106910616106062435721144772627494693365961690650098297743849951015277222718707973674135340958096846779186540052728765756154642452249908466082067293210033312527710869846948882358704087462474231391965612289603933676803690599197719498628539450425268578489607677500070202160762812938205262235069885577679520037600823734584022056746626894535760364907149866343380229591890407783155970011796860826875533182380986943521879854547775389896557431600087356460005097537053998497763639481851168689480066056409445977035694201688865611911429063861993965612433548965812916660288313259474753142568099243929899879090693382269796023024665894793784607181973570795305663667749914815912105947495213037229778518636280794876736251577941800090397823908835115138066116318366475863417564065928637901603814936100488730919922907841128075728582625414609429958965188324018644319515878953370268791362743867226277478470480532760557468159553606147578507184106145544830570018846922819912112321409924440289024713667902213986592677159035318177563562735090407038036391606648416702316364418251646056259794080138946523219311831167724421370929461710383091751170827387130344491977486608885762701392840004469601740965890803983898682288325905886431464781280560886115494999297471916499269097119506373144124176493533370705703808420212783013112841180730215117198832698002263584830227094205896561869227055067958992461104577451522606559843893175000795690401695214694474671990378864882949504416726104706920476417686478709713145659008201821234020564710556995440702605558745574025285075094167064009286033560154586380705894594244712260552505771372416124866264181110762697954713648910828712648981617283799297901257023040006963069008160741903435442810438898168866227391232895882356688710369161388144664160732248823072401463994595274628537873152446892404949683234922862323406860411421884145888505291778037790382103420705558596356237278542343093071067831816760530335353306758627305590231389628007274387898084520932648003652604270202310408907303360496990993872455942052906490592827558696497392464526950627646182773291827316486040556114796294935894705232651346184752663580795774487278851719502366131628882774224091560358289816599100887816893776160549722112124894585276147995425908337015066328283393691813561756370413951892825113078957421250394071402814097736549420989092705159311137804188170097342845841848023457217400152811814966209081910368132577760477969664289659674209258529438721884578067820680623054724838608864281148978187629645122118590323156855315084934355705556272734625805193255814294274591870883315021065457766715978870157305881709074500503275450153683317797718342956669601407178886275285992487765586304637841436986950801609099319097115509320291663539733116664294142826541385087306358221150624189961467064030733110557419991065643660566023517038852890570818688151012713749664718649228175025358537001125378403592887279308008378944736911266457370284676628158735158638143920046151595031128341970941633868269752933267836084381676220382016500860754954383180819532809331532254945808251221968739177953057006779595204422674306360355793562572186549805524674892983199846483901090182953902196428966864012642205683163632511010690619585057508045296158738128897610977068741459940337749902016990942496945025128277579021238781497390805045304099767097467476979753909975098582123979445135422937392903518195169727724045241193032223103782901304819354755558615218110970678546605594350552557417381238263008158734951408066733552372257397193788970219154091834211184711674654939093099520580156227708621534853899850707127134233570730243912418630560088339243720240859475490102190725157989283740837900538861442882268285158903809421969736416182999723897027119361045409868795732822655408622170078071010328553516850379697891808258364902835190590089857844896815038813916111945224128687260709971034048836037830062822100827478334436159033478206460470567070452647282564763482246952554659150928204448561390979971667789145804522038648182822388898203339499176687231594175495202638703656797690597101585481448894797014962748106779576914502775096311662086142029196867317076816440653771498691559654648933827058810732771245125551661028961657073172092680808225666542179221776649594347954948147253641419144074029130991370423276733384689273316213243115745195026177123376216500148291647721479374660311259066355812139005534884790416531616502658944513472546769023962545030749931821208009360376966331880278573612155104978030008564141441902452788707530123312099491577102022739750037725671027147862316577553839957096112662015329311142141607909719747720172958628730191365030877409700852856324959368039528767823313591414986037990768513381683454631272785082960270886789766690596139821822519853649504699463073980257147652262260975057316479771021602603814958349983086990629455494724104903220483445925912884741583797483037664551106511709796336434377611869370200128474511867496131033524470778945658098647629283927168819858695076416819099914624152514514085662427510468701982279127834061255386407148731509084412695220856834632712836461115235061133693385537504179805558951480691151205109791850709189527824244995150273827443343054288151681228719013914784379777477017596326474322940953578476969585542262419089123910007372683981197395021651887727933969479551806946199851686436670860170363696473442063238155223280627775925755954990664377768179335108797133113708323998580992025597135095053897806824818779516006518148867492493385385359390852306777856427859926317823711252832532860907278278375692301172125240231666273855653202682928064709398371486291677287908127320588639112403480680385563897662826693380471329598047964077520347362272756783900983098659220856633551805834679567835444098021621152279960319116072124523696796771802295953716390592582988154411551310412301267461962695438158453153886196160815513724117408347057078858906624601034868935245589917563913888789263470768155159523069520552662322037492404269621750089049952575739631146372165246247270397324808564334114991960447401638378839630140102158156372707038921921326268229212733481933200739128761619075128659935286705903560289473317584793820603666971203065251970333682529956700607797517320354073369916480166000631921614436591508302477480695949605402964547822575267130094300007902547241127923225355605861211684729312793436562000096006278911138919619474693116538915794698260280520949589614263623705639129871202429735621258916404272791046042986238414220453328005498102534822710727444214180542454685170844167573200714739120026394602331314718799942376958323266044573102177938239651791087305333778446576263711899581554122035988674567093018021159812771076585481395343956220681221412962787665649975037008217148975653204958541564120974216620665732318363148292247727785058428085916895133201707972936462363022124535451331388039656602185541343717651005613721975414441053729871476962911550855661151680132287851761422992378584950913308429093999500985994696787127074800507742038343973377129242878438878057186037993172094805268053937670988157959057826027664543478384866338699130851987000066046379449451574442856273637864677642411286205878867966801770795496278205288935146812164412897794886158631987045618166115752309166640700183163414376649817627613367849605394434293864926116404998683443196922462303314989006145629705255912489685443005427339131960708966238122101210108623355396243270925685507293659572426660495843615554417842177409257535151536906435758768158829385066683488820577587176691613163560890021615700369873922358001250196810113092021764571815928176161339851673808344112180690234484764693294529552055578555731800702343889326884718661898407929416166080117748627102469675815569582259378367485712489092985425685320477471205182678043573432002706880527766639610723102391042276796823734290031694099864634113683760658855463840228309593157193080370342466420038783635694055111064640608295913136628502401194189736838149788115372112053362166584704659072843170018737983383556382744936077562272826438834168393366269799635076172668625413655731359648589621091540996316970589568075028513072465082853093680186854734664826335869373561437034589924815115226182717574494231147211220884485165036251266247022367052011596169328227812860113979153148410676220178243258300979709194954194845110348242472846218515115890193238625761423392401371724283911841103905935616765629153420551424874648062172456353581048441705100812495023839524527360550554521011334627370845137365636966147116845837668779555651889430437395202765990964191221210142664705490287443400063875939399623376562996191812533400466704763853643559919507259195098716846238635057263431458441154470064985227929174805055134894625641750783167874166638246084959595030673595371720016495218584655382960494924791023712655114300084213373375840166320394968904641604562352471405055723644055486230064494408176052954960886697205044934608446516222987786398546036610714015629060428368540507231321132754015809771242408962213669969154656816758050971544776828515962621549354719973309700051280250452078726747991796186632919674722998146520629649498828678217956646114876180101221534476223062346380430858897708130900437219772968777282111354754856791509393100817284266743024227437303294485478299890217815817532562896121153634950826439956789396732424631470502551967566306619788024593402652853784587875162635944703056513980513098996566573513250323936248358355092953124651533246837920793499923506889479286566759143733572301452518676230487975885437132992063790701409619470266380030701401291546950001665225566787176163786302799652321480622383083144305864277613841428634781785995441684522853668490605308059413385325627979638072338416989256874455089955808281494550084283486569883588141639729719757866628377696370908057237231268697995866441219654479413122617937198828544697372896175462799219247516859461407572956391440391726459018031924717596946259657995610707318112374528320977655575910460856496360423031622087408007886348323621334366233030486549669545116549353075356932241648860739998200977389707392416575102271935679299550590434478085903909474130309511180433793434440159813062535950619737137344898534053553366486171331822131042380630225804414751977883327247740168177435359057073760452836307569828000178552640264830238291159874390491696945151672890834935446616422063463785223155053235107135879759849878359301346556982167869883657254754765393763100901137342076604239975481930131934580139371570675476881668819619447886032919814028675116253498861594006481796147354317138936219398430200965040522907917734130467481918920781868919495015546832310486146720770030573055634061284017068159961550633693168246718600374284050508337865202904864235501917909248020680689361062647225451837519957567264216296144513412855593341258576458993839490492624627655144908460534309131004995035640287972256466722083606164735023773670350290520764572806343753029196113263319341715970824832266519844495237430964255347423161134462995707887689470682998390833619529876174143048207106926309401199988836778778122959613452682409506905491037652422429262752629256386370155629688552091607301249800323230639524573151071675246849357008772539086435394222809437290092962574964792598241939489192883538386343602605309241216021815726714930635439015601887323116285121336116880993032155634281858070562422085277030616162034525678933149058918572059972940104320866689761049620728659284776993767301808995224809276178304953963928599084631112315778392811184528535242760867607937758158975866651221290211158423465030845524573224750456017344531122952488740212674891720869656976651839320317210430106702142335684163519991793472614232056537391146389398038356533958799978576076103567385804156769788660163557268517467327155854132103471987427891008558814312015424877174688307104279141392660882218565712937693534276143638965655653726904541580415799083770844055227268568141533980774731059841683392296618591501077565657681184409912450941512002991068199007936156085047605295324932431397981491146461592925988460962517826463001412497132755675731133475845417331870918095383091997195366127119094892632031913277824365596303776052193253131952702649269968336186396737623205763496032400291645048316474387552388371426037473596858045703011409324081915012575803549672320328062123889312158335819904328279509582748186829754959694616985244157762787413658621219428134859760325204526700601763430561626350638418086114874619381097549947629431043702288266067058838720880297075990254816408631831611728259473321767845218001734768177184233790221081732570957644566755493138801665789435902745856969087471478646971964999080086055085299355836703848722774925831787348327456379862702140874246830123216091328526815230766153765573826809932080614699748963126040837885653029478166142883650653127899810392291971473106555871207898871208024276146482168195471863628955692220568316978309603688829715787541515406711809493655237150390042492954673537119232659885337127579161566318308738090712048326193278665367580066691684763562493487451733319665339241954045019047332978219807354759630505057166628754582974769113249798931308795043256725323904998380928415753042707564463424219226820400753705213548660460700994934250171363435177462425783461490278324830107655600249885662769680139103990937722618596922985395952304972262302500435936530764406194462567386560049038383774635080763465201349160041796608517366424165325558145402190734038035775954137197844150829838806525108148920688259689182766911258609947160949624885501513675984899446311912129640908950576580375574746963516715156129970063622153294105769949410200142752357671327329904224059027799543549046717633312626466110869466016236051003681769901606042148808139341120013771906126223216933837078984038207672131817053686456998949718046805767803372772947128657071952801459459387808376401375081735221742273383037313787328740545716609822650226541068867966606674847085698103333788711119536835528470767465680765852355172105546368364374933399108743167033405044931836381521104241448574059468577080382692892262513967773704838186141545870960444539223704609900256199358401100588760926421500646955962632601367442493528061452706335427091536260347800179783406245854315834403485983693960973999386364757358873526268047754907694580241907783143010104231382818738243058032329661613662119645025351193430751504316053338229877404581753032151545959073763150338896998319782395439007258163469007643319903210046029821647528107199659433591369747860317224692838875227929025296946145889754764472814404634634753162792608986588720682316932454648548562399177253904634376932020183324227809404035381336028731006479755811062054639686281026034749553900451127568867089181992231544466060276476938921196368185935481224372831529244996002002416746731322910572929931522367633853516896894546871123439642541047996683847451562441060209325055378421685708637009258687787721005251500722236825100570386231382878885931930135115711398118789498375201863975820391140892956468992396447698378233921142656114032781726854171516878327901269786812671772537289941554684254349264316368412441567929649105763413370437273284594278027672895087744939366450034397826789702667974053209977327688569349067938862690562481320443138086992970601561916862314067826609092320868731321387977260694907878140994795026703164408911537989997502680034727032778287078836144550970442416709458795027048989493317982864572418522068798005288957770704756841594952295054200469932818896320387605967148180477730935253806695425068367407914686411903568507354037848882815131239173698807848422989998660911118943148308722491920522263899592987684175306286644384011258094772981121381830988021705219020259196810105281679781431520940856787704339548411339847685518827265615621170444024560117534970407287273672050989406435160174015884157677820740970506160471650990879089331605329052688395663384777870689101955668574383769578138580629039974703882126919508510150650107820232892585562485353045582977682216213812814224669300402018268407501570373421868644953947292274564904204797066167842499577335383576072099328389735973771142720238361770466056125026182613022512700253877899656392766476043850159092420295313401804997253965858049138942415599246647413418195537210095949982717164344704266921684757775316566642864486391513384176242169025072136817555973428659761393912551520055740677803219158718019618632328365199569343431944681109921891537652203274031563449316601633736088881954926625941347066318403581662650403444669372719803787388808450625612095243823817969493741321340772624044481684392479478406541300197389000161274323052021907458649252278817317943821511584518480438742213616588194591063549513802103258141945478122599560961347635446247277797460892509683411310712372302230488089107754782127987968172886845707091768295898633256317950376208832591737067169419339252157071422413529486198503233354114536607616333582237354442033850216174515063680701636378678047178118688302938407205661733089014943665600198594264654236448983357587047321920913918770643735448026518638587209080824236036488266647376679973240180777804984693063555898382482815915964225776227510321678686967300594160146440870090398427217374142507704307492045156650783763582778450279108640793831447717143846352492323053631536526588609198628420804962052973632040460929801669892137178577009197232245585745288549212739394187464392502410654538265287475748091000898964974426539256889641140167489616339901218705446033130500669581788477732918170667302370636262591708130262552117831156143312356281048832615114600854408095109211299419052930127884817629366950176348693868957087740210296686285264487840787061200880911310857145000082712055582009351047317342277342846831306166862721852451404919364853362675712325058092821727831119651739509488753692130451190556002723878069387761916310899702627927978569530523370727876563295820496012336416911541080790593974691471443680724971840573267916235307647258089665230944503309373885247445015793026929013215729603818001547333110183613159455600438969265879376515829350694247072543715861449553598157866549663425273098816436855882461732720982857447848284152935426179294296807652209962490716552038814610452666724077625926868944477423734146552257629159044201887954934740626567021255997486554567749858219467094900634368538010786693795254201923545971488540475649357931872948051984109190949421499591788058306215700510002862935360190250394961173937460394898840732454021332657342724041022368288810001398355652164014807506560811233699451415877609973972715265967970682085368691705515772691766465771087157339909263722466960452676282225636532803635510991428775021710764750435853261563769292999482187818194006872480679393256434758676263675497069680427114654531029059109974250110721582787128734766489652742744537553827275404041763862779227527992866868738276894131222015812116543765097407101632562973178687883486300360422298753892690152486742871283669024866690115586005365311091332641334024551847539578843540391369059663017702678876815583874985593750284739828427592503321913257786439030571196499310573936184655510796472675304691616140923855727470101322702975705608829694361221283901674664729523810010158981686420737647086589903586786482963828130658415113521410734901298115129886520533676732539557661513443655985432706014491380498846077927245906476187950247148658324278609605161628518221364819079365966338986710875552000915855327758411714479294090563273039194037508838854205005610884360071584633116083754570022886320936013782373807144275016686340751591555106680304871432906100288030126730639892769768314326739797077005499618649800409064925651616527944927484861279771523616429582715321753953465525866749461218668632790289417074793726431083398551912501676255521857680700654538107530426686455870632325117074448630954920622345488196981599511136441971154304766166743598259361054765768062691099468525851103578898602936604001446618709087159579932128295922369963566580553253105976614936326440920472004362318325742246237103764885468803248139387986187458616108879226863167131081327451561047859853676691061761197366008277865764778675844390933535912194074761305322515666934046645788260982788544565647032165130504552333566143740057065443306712158645357714919921687421995299779205183347801485926274508579355847649541179751716806644066515398273204231782629290255125286555289816970591420224720760336979496871369293545276696474227063975565027597913314439735639003465379267417256412504861030832849163653514720971897845141320023711828582375726216360116502078553731420290667523476510898308414269961738416383629597374515310096612265052710270659177091028315254627105862650867859950952681012195855087564533281630270212505293176253505357617027807967166290731312059619234932028106222278091744461855874404452650593808689068203315151781979621459935915028643008636719463342096936666035376460922160710158010881282724834893660958765783549446795846240915601254538190243037807214612331553983487112240389565930195486420617895567242511648681855231463890685507962773392024121305424929624013513214732918291309131131515355827660764843252291413273461073621095868491408642712436849770766331156102478642256454754674967727025818085073383001107824477439017827243258450973148355747439539893123440025129384844653359013774756201841415458520731510083731958937492876910076465477420877379801188513705050354677650922649974593326800721205949592270088591252836607325701841577923193440686395590874428012572124158217480217955563478912047720018649187748392597216916910358985258271514842862912368389630469224063456458000341995599816565838677021181342680195225987321473933886837472007793091177612266294818665854039004336556216569490087993751387424521816788812003563143807909425265732203121840638281480825211932383939211617440048674340607084491000313472437355386290324348241199668086508186774656140663052628062632164921390153006992876836882695817634611938558779413152783652532612129937540786121664132371997108142587643631776656166182283177301553173091165868176384241069670060138132664080922834344875453507691246881305807413128522759979832226304778752029593201991753602122766931414669106096572990851838057073148097344539199620539457543779123042522616807582274438752290957469632467302775195973140040404678721885062143966917885449095189830747038889184584983003170016021473282041710370723031369607305713648334214639178814412803125104006900186346502828353635879175194474629734373763953593442088843491047511427905883231226994874873117929263943741325755545674293637894562277315443605353708446287783253708223745486150751712896022945176850072500999241763310243492467792522175797199182741269620447868340221604157863061329837088916893262266737614814729770352184463958420553615849864339347617609591033971709413326057422206346861151596525248024800866124154058235648992952711313224156064993496271229169136643541224576249431619675386282664834980621470762647259755885662407161574800979270411386181852292689806129874583655610672992794780541299025429228679434344170051316457976835770224041410934618337630233682958263342211826514085317006444256752809191301390508976580849949208828331983013358301355185024336836505705331852848569802346625161150157094697707421427102173000394216380009033350542018443437142725245692308003327600959622067254541076871888123914886044878669494063900807304260605205378642554012758483653328059963856507177789469976696366389700994296186904250463755570334162101152624955303504278817033975323637581889505791835372964246352991732768604975401179485843111519884654334404322304078671980102168060618171911316805991552046582044800311968744252411231081132989999689125140480165673227788802144622725458534774744694712491962114875268250207455737859652232139851446651026983182301568754889869177825220479714409658927344979317920228972659483262857384163284768729948137872106873712509165080983495362363894796218908198483267168657250870152172813647726551018872970942746563198062893661840551248414888946116195579599348197942089223042254375095564948863775968241088096596417701478443405002184066778383810208747487943380630093019100496990842702020209877551867986600366188098299187600944647988338473318613415633739113457304280059722019394254049142994276415753086501220361451138665706142695407536162889875220142014276144621333220420151979442209193481286173009877763646000871941140300183062590618255974195687539283281045233216090973336369351262993570142472834346621207427261179821951554089208621305246848384745897628196464859202327114351232552155294029417658129007257703644288466804935906944792884652266421652109544480033499703588526220277435342823872639184403759880997746722786954731367292446260407807964828134280340736286438737077140657259757003781489636278104402840703162937964856704094130857696255833428724783581177805675980800837818958647588804773772135340330136589458625825140721331701304497352921447803642683085997994112785524711687220603385495353778630990403984356409595810791072219799274888103111367176398385810203836883681796088892517931797461766951250556321152141542720315911344483110811971738749482532670384529358875280676148067628801418238476847369947234219923199171810586209934797460781413236162012209685106779846693954065429933233555998922616766064364645441830913434799180580370942484516677090435243208498561912366019061500589321465840462631222199351446717907706787402254628948731010495637999283660193046970337613225856742989137417911467246670886644614567129308225921521067383764237501703927583871865765905725323102370833830529659059721970588671940961404822836848380291346398679255287108583533836837660452422309278148839030380463813794272847070884371701022973396772952244646818978985441861830512211501855959507273402329621148000964505373156101710677273885334737593419791516657089166979122730264150120287785876382367794083911703921296796699612240925209206525182668890380234980993162847440657413990138444773678680572395100334824680069327552372522777474801823287174374961815089080288352754339665736101258179009158526595037712376520315809726217264624883023600399531825363609228124041483941146335677254624037666895400909086026575506619533643409631311934092949127501208318097098076494420280738766159336702806776211764047057449804682483799945633523308933960464471956026584269733383579978972044517576534120820314644106224760170319392021779129056943272630934543604390597163988539673448546102440249698380547560957403693880594956201251314177158601080428388184550408886722829385399830715479110778745632358924994993098583464529816869096543041738939603435608902813240369656796341777615067968080077687577035551696347240039873972238867267955204988815592576498678145289604476249283596045556379580511030054419834977685963265601556441038180576181033981367313191598971602600341656911410866577453768878592471953721827549746296590217848205377151322972449400452724438799762643502945728137244761452685544642987593639068809944404792933915757000315029490557332963573818910803043890405342677039090026121527676486512175564300529092287648834239255096247040227128921532606933317067799959285091140662079446681033046175854896393993425767534557035228347062186149026866213474873766513574310024092306317998597773912290653308851882757259135601400135561183410116417843665181592595691919284853118253969707375811184152785890201606423605062208826914962742085818099679285172532988249796051204071908709332355158073877048443562700263831693239960000588044606656905884497254538245164108975849588418212257572680966666251250164385516852017500830789525345827777779590858777916119831686859347292547938355575423546297822716592631026507852899489640008215264148695866339936808560378889611030855712153054739946567720195677471178453711594590108514396214514428705217646150838866412231983213369401020233980750622618269411172303023523756906101533701602628418606468758923298849144972058643777508824935009059654037459269335169495237079279725230485065789007317108979451000325244987567248152897897432471828077909005524955334191879988541716655744570703038498476942471972739763609468165445846237858076019469395062637915171059002581476533305501359613857022263211159771872738061728003828515542549261304646366847825722071912454231224289597460279064547528385443078684082399597555389704538868291407593372934399775680429644664714508367895286320313013542665475374265762064935003791412242744436109078397688838647646479294845712735755706268537196573426823913226742133137230572729291069038663122479242658989707761119291270019591938600107923757332082765962264411520118321247964090565955122529896233746653245504523336646646095719329799663498070240637842048688900938665958369199207808715698140025768194727291049121200318388370764370389196219277879905843426519262195980856188160689821724246870333170452691317390921514726090478411004917604744691974639452074731323432506939775806486486599826302953808477366751755621586848552330715061562456713576575233360927788200207506277463497126916721332648654206516909351757013647341799121832813784059277702359799385254100859239268473700692771071503277959169009239788635211340987269004419643341732908246868021516458788054071251849684024503735401251908200603835867276351714606868230913681412806270054130181356904883156156054945245516460266929706911831506749202898659427759043413056461013809916118192964400512674485893944904557086960503735204191101376964085325105254257860037342290939957184675992313839749481493687122249226664514427381475535512504907078601903213355673129704917676449639902363265243666574197161168255239825542974306995312504813058290132205670420168451552662617155030692597927941085397612103096342280123555860895398728837019814006965249194026316937222113256784300213981037571195303042507523561617724424259286998581711205132971800054440555418967553750438395064647928160903302990848627375103071729346291978345725912977424280338949516402609214882490051451583885410351579289707222941043054763532683171323134607114675466488927374791413721650438164671232644687336783022276186091592380053204172526730078680838096962940828318636311812810790024293931071990984510982330672380139703016436708249566573556476722267605129888851761706893922773360935018239762963959407636053513976206034089887920288732641920504672216472142153311858142683712533133277794439549014271410710274675301997445012681142461037912783466362118295653279261477930170810127159237462086108905324072758660364039471016477933196834812121191134701398582307110198738508905458129043632353165242275480613258747724720811724826046271586566964549391452929696462396060662002422185402541927086899479999043947632299443309352971220181490406582375832572050647768138429453583298804615744305090445255328209697274399930552191343906694661697462684180148708241456135733159524902938483087542078650625769257033321170320960362140985071484490546629203199618856219658212554257904464305798291133764641561476339797200146649161599884630389375053157623758882549108466936977887050627914471902493367308996971725317132416916174529257679076795729512900672895388719299137661911271284302968136305084063120607894081327649827487756820517278406316153236935201436458079760228136512935517606634122328557961377398747017380991963356355600107622725906772737941414445458224934232586566445215552828639700839957166573859308249583877455600603973867946096907229985130596509626740458924522889604126712435408869412969911520780716770273523484439394780314406623894313672835478985774931455780599252212061831870938066338829815582582366843270906628123843187295689254602046214396969893424179297564676154583296774366561078253693430672506047374304212618726310424005001565425706836955692608595387004135171118769353086665497182995858296665867603360944673087783083058729451494106566273392119564856999071506168906489507785319701391356376358890857811555125535908094728387616271231406593075252319815270162199656358305730344938783387143687650301872082530709014274234932334826026279680409883735866474278641840880706881160309282053093485597258169773060537490133240971272874966237076163213841648680112518421091476607057550383275202398194080465299619579710282188879092474557588655459513002431361036740014005403229602363877174875711788485624679371121263438435610215327456744608590466975667787497848691046040730202910359869842352598246125760338765867137649812262283466509743013546190272518134800467945033102313075059397799187368023267240471706968561170127180300995194327056441672118458836690070918426130245977024316475192612968956057168179251530835633909247264983043178137239161644086432901358542424356108157337411572917324382053002474976861138889715530142115811362724858284237468860972547446655445987533450327293086668857036442285065208794054184019981184178573556193133466428031568917874979565575576759734393473349102960348009125255444144078235387145030191419997324113714486890092922970036232741692024880043559357038999290918379918112288624546348022455115924873326721555325117427082871448965200232599128056425169656250542013916944039348144134164530552167450907705284676283810870457256481192922247317211460253805729047894105411168648573927623423964903451464345111334301972042412346869727353515393239891947882013170097295685553452164855281942671486523100369693824177801300264012926175324473046445729479777694181061639555207095067099428025276363860965161273307479507645423722230640323991720757476863473161078607293069348735586350397110252898872709010927838052851181702662295490374119731067521410658567647736695362806889716698600596082777860361704610782029318517391873481000347430125407377811750671692699144613901829224490629123109208823086722600428206049211917182043454333906752458609385583402741474408231947222956408349981918122371356849024564958609072774248011586803524155780588629404305355067159941204397382707972271260497251012004808809474178535774952345335987153014126795576785840055551277566611791570967650335609449502075563811780243132422526534489368317458312644928260654177908988209088349719552597359701098027968728783151266904202448173543321814613672839335918981139427401519818682821135031340582664573231884209516598717166467125508531103418984179488654737126380088014384516289438282791198022526176324522626937596394097135216816075387935530362052603460202822389516330476241109869773456750647340001717431207035361942179403721899568601895525508842913408368858999677119138927199699289724645498993730844035215932291675501330977942600786548806583385154430393792954102041950870662352253740882439567987419252802904343005780253169875584320053883414871570430462912423449976534922108443294806664387244190977912287870307287872121137712018427239937132455742329353495783527709250318853242900240073201129942951384999987539910693483282732051658645584202296439956634779282321501238617157822302468410519187043050263568782974188237794382302936648538936106082547737019690288297487073201506023820503699137178686458972867572639653783348248391089045108511202538263957111991752456118907893589585116330203357802937979615201126224603456812733771486268042160124485603108653678761314408532935729976162569446286833358277138387696562864983887009133997225525585993550670494459561065078495586277438951172471374476719067855486177592191033911763206931592432019498449583364125775035758276062405416324139775214704184608736890184336402521495402157332730376601661784237128833763420263567262431210089549401719711906805072120681472140157055090558776845451056508326568110773182785082968286519853961502647516335209408571462920255540796991420587308253913290103843247668798422320876083863521491992103902431136598011723700993301479195208009102150302137574509542944120479078043451242452717393056990312237480213715634486463935450776790126859834451855332062263580285721415910711838241809996019262703248245063512222973598243032486321902269718025100498107641569926326530337022617791635637235985633667255004337064439686257966391313270882877557499090268191034975465699786188881218611836921167909163786783353777638889007179793556672935780794655139054435998283686266879706615015706060150782231308854437961439804701630421170507894460028241945318389232147758041809621639446879325299244644277363044315450298729209167736480546425559152396426157617302941121373264759575205841202216119337075752198105016419337127211247860996888522595740603743163746356407191902391506402341986693541001061301906876610807545423780296105407949345537031140898559349612456657441727470753172328058157106750064822097864009068818224239871180641182592911081430023410127693991645858990430817293014320600684666158725959802212207240713838590258957232570479904903357973935453796900963522576842944655408138202417974942323816448238414346699669039012362844396305047376187838731018506463947580215557288879203228599505917292771054175080259582535990739060948356193172986261159020594010113041949276090387220302149507876567012912222841763192416057441860246390199036234620971528007885992438355267781649225610414686221026437559191022863282808214566719498501344680067054731704999910211978140513187026142305587817410774359663285746270811476413209541061283209183511539213353314070233721680422675002742133916873865650276364319637308838763434361732672186573516939716102436307508121123549141412631104311408512923037457151603306558352393593264122159875942310612851082586742462204189959593478692073545294749146480103049442767645240314923863096857811912021297586659447070700500611990637184333777413830451703400665928157061562226758498282846052467471158734067465594305980116254721671667903162861146314033778986306025528515211455999736359642865726049719097172469786608359608743475657966589487610329933672064111457744574200194973331862682009533761091512625875841994383330481202963095349403739639300965584291963298517287237854824755720459300545939700501548456280353796950494845760597047488949571645197370044081433912018379426299299468874996515373061547536900409331223802058091216926789553841627168072302694322258641921429906484751120855476969013283634824410847357207643704261455913028943895357024100906708276593982305163738633194542039180297620970337633070085866596494530421732291584170437698098523857897813335300451833348916281205652938076065566920017798267219185083119573401078467094306251159461373322755763426394890372578349458701712198626659215479801441622501251998072757510851826390328600474930768948123565503357699550448424681555380812334236571955868178337991396814056470151866958064336287272864781041067209836912922354743008624412301614888393437968805786382639238727245813371403753610987805178043721388907671519076235571313116894838032685948853740317664582769717777483184272511421995151994899787279479794120931586029325533907822505181349224594226731595268468769501038859012596964711504240396879441639236036601719386851363442276044130173104302530468342370998722029934691578359629621201230376267900261777066774593451385220118331224660346089308088030476974011814417116109885734593824751123764936103819993088806842004295446426829200975028481780013356200995595011208940158928398044611237588781399641248824204132508633620184841750245275993648797104909700461843832410312139335776019875402726544176970829407440513136095755424202981252581436030278200471247329167808102252126842953058337286834840135885827493311231933509557600706548087158468149900376518047162199570260945767159289734311686987093844186939680766436550221996986332261577159542965048103145472764466304377239559318288506823610706887792271856613058940589631012699948847458933278719904121980478408608554666516218256979880270619583924413522919786465194314912907080878878042190642865012063381659138656029593946600320593912586340431384040083855721148068501665109633425200429497836908295646899488463169224830596540857380964106040311754960970376726492744784210338830622068633160413831132835137727960229860607633934434883740456816605790637432313478238883433436533246035303818901171640096599444051649771014290399169594003987057985644077163779975655201795040247893679743608871491334664183642238674705553897622790922869308948428119740174690456053972277879675677063247788401526401654736495221596011991386356270946962416958225467162922384032160701511733744975950521735671952027114189011924491884463954912368873492679223163750205567991381030966778780537583151914109660573863891257104219863894508171679838495496136140794381531371330841054447472279107564917108709840767098134357456832493497102699549606692988653877721864573532039025146033461345824714245821654651175416490311637932296194645361121535772205187669786964659340602042778603946959665122002305529707066187258890082434530072806729302337350653822645658221417069543692873567104075309554140503886046825259513214029801122243932176463074181202203007718379346018101328797569403871984441273884797593940629448323793092353085557027212067230536651900323256522352304425366851746938180134412302720082408449076707546161860384997214197670471602084547441537339429676291566388646447612427749093579920774994488678495101159578573611697026985849743768229574134824494356109631667223743692055481020283503806800963960404608866095186650274973200074111732315533181776748450982357427522319674163123239069631289856025209685595777040170427255919276873881316239203157502569674076971730271178823924889367838539746265582535210944309300301602071926321307887067495563010511241609119535777766804063937811533776093667926823709260195923375083127426172048391960119548592222152626553298412600322005403585456672317447559550269049331754013564616436594884904367565082469432710417184996125624745485247646934691124778753906067680948299679614788828178865082775850735805871731890459027004583874154896768490698917288271816667081807363888932007148888395814782253364804958433174811227122450884305052135000181854817392532294203055255323447612669479453049279868959301218625341233832272455197529586163962381053295314208109595519292394981262655992283681077467159589272930477539940731423981253146250723209144723799522412884732799835582105792085654454037631444068513591916647436173187072278806481991786173480113372897880456471000042305292548564680113996286485912528521313671223496622917199753207015421322502007459991499664550792780958662360784464907716214760535999151179406744574400146500520135219410048155270093142876804011866103911387718883063812470616827585832616178460872248663719756232580078550088522394956446275399475796479003219894440645797617919074966797830095530373736486090881052817987897444901246563273486307770864090160466665363501320863728223706196728114821515077578514648544532382707572637645647158752238267525194531927633731826858247578293422709790595335114072949411321098119705926642612020636065828680498069479427589983545840155020339533197556880341120108060514638577623774597601725699775869883595009170286142936204550403586563167310721461922671678183096592337153925609954393867232320031859931706888966428704848811949166005031468371049787890674420910172156417095510887687979041288391741774144740491740101077068938376326190441284296037307378478788698006096505590514682604734642421553844094962119732639972001478535471205886501000693138021264406794363781642884067311477693852420807994946699054059385995409013542161683215834165968807479540068116300137971631968024576156097768320336019703408755236745664315182363988004893291691923301407991320744353163132571426689898716980340398243243543467426854958353371704029414234831452192471979009162110730843093176690464012680056896434988448112747630540720398818733160845338859813400593961804434275697374083989475355779690718220418600068789111269499247342023985579102178097040232412407858405594610706318372477906116538438925570950380320504593825856618443093101971291905152480615809958485877298474922134000212993638646786803763409747507069283604582374465809537452045846331654796063987021958473897029355182906330530635634916599256710163235722662248638598862281091280276036210515481269289198610479728809657744340803546175973425463849012763770643344267507821702056396592957222378699449357999705095491171837013442874488066225933412140698444148552717265410756502658266369468248417681522501156638618137354769208575406655583910272198914028704233778489845120397537650228719853915665500750587750240317080800287053355220794939842449895381282116571520231509258127922147149565980774994322679903287163117332834446734312722176028023538243270093573529609425082997617585379598741315323970421287872448511364409882395851514816409548022515064187994491201876156814455241721649628328889946601684227343223169496899643829215332032177936361232971504879422422052648436355350532774132544714161275578400720906133253003798879795224377286834590113667551895574160311968365999517449468022792182865721450799405242328553833474711998644401317032811607469892848171597114979850664486559011515072367569196629760454643337184332762207413260528570552214276109229088518837816402086818807185694738622590291377658907219336890652731062714663671933402049925957118164954508976770434164690086567662553652669894653429487504018509882071935357489751234583132848478142546204835323470244988757202811706126812781233733448901000675986046534606394130567743687765257227375864314281307016458653811349684210399830777500652379669658453237928056821292935778703826409388917727301725081084726493220773864346503443459193593808083233817245964253900206307117465917015342933432538431103803511579148272715029937283029749347106193944936920982281494614784991570094349219414551221897938404748184554041097464061419937840014722772572293257993998193495747069322428851503100806761761279424539615121085862647255725719009441407037585092216650232850123612441704336356445226363566494952435413639662057546973137594791401765424733549492769737338748639745216365995993693459180026702505591287601006829377865731059219741827475048458773016613806402920218651640975383759426223319872869739702776333550121513375788792196095772094235274914780518277999059058948589893257278947215626083627844335212179457734949564279538823367956246107734172877295193075018890837067374894945374439568996086329139744647403064031211557275241588385929283560358230633310906562378887249318638858112297520647579973248515539134035569706652322995654354792818351741619927885734530545476383027587900919761519668698263474675188162252360386325094735884152000842640002471865489493057263471099749973390766926045455212241671160642901363599827733018890245371061623911338055494002729234614841221571622769993798500552827839724854976617022334937643859397364340466874170074165923103298829304915703898803921109609135617752094345783969800404427170630396029721010222820337338781743611018382633775485125214252309393779325463466917602609589433951321496675171540958818865237089269324437763298435294505377347292201055566784660322690027874322468660426818507786600579378945374476674522445531390980042640377618877836255435422038756394411180156980335724266047417971267397487714480598843708489357445067216626575110806123489248473967905000678125292749532544969133772123868774143225879813701147039319234778953926752466288175152344749138594897056848642183108020445962553686668202403115408748912167382990931950729579612167661583985766060982243592818381817195420504004064192076892201500367455796676526774517469506630940370990870870622800583886526502772082098738144428141192972692672342852660128989907632053446870433906917785386035059831147755997228596041792720003982598216311808616733720773440929478247822093872545449198427242575276400961177795256849194279953001202382786049561660996276643232962563849612444778318384008062279571936500006326558308949922021480168119827410482808095825379456189137226376755445695456786324751437649078574189219740131762515197380031304974380200851841943238149459349957925269179857759835564072774456497546818157477016697005548670117184152576053473253292369766081412831557943945496124692381003677536128541478528262837878891368938123591044037964048218846103836694497379087471993436843133064095232438184758257334962923509020291565071370295634743818323851499630196090538034172939925839191172364080121574907835434499938219064356549201446529085770296007258316975679556206311784634168810255138923140588151285678810977187312443996516717277142260302709767944213965196481874847567489347964073466186670469816411979563494053672106978157624412492384459448377628172225897376566376355425716752048814184314273241413074942589732622526451232305720612351513787981443354086962674725337813778978371904349409065283961616513114501975982038893587764345445425145599463635265742144840400172276904547013686216531256854940527046955057580962130101349689802443844366442948725479440702456749212623051471829439398038467560970704339496584542174646547787999222455096721906869902908507437806422608156125733317163614331998196815523930111920075209319075784643378410937517734166155800743684519116396538022458491421707808753846327768006519860500083036914509393652866238864814211710445109492997605762141986815735150911931950761545560703195719807081691009424701195409166216077731352602203909440211443433682274961226237260990956194188725559380601919355125714541828214075638388281420152773660730164992126311835795957280758241287497663559427155321804798389251673315739288200985290618914693159405856963347713868954045224873267692353652812239778879096576804751576129160487566204742923917733178527222666035445126515857017575160416781401292842956584183390937995351488354809982645564856688769926627438265362046204026535835567068190284927990986543821133005965860874477697220194190528471624550513615651353439316954916160438374289951985700563967808185057140428513575533613061437626637154504008079938472716518626657905667168853412713744565481532303655921154857551851700775741394740745388113923988674833806605603201924839940604651846238362056742337907778849973057359277488564590298565442992246068877920990647058892947813429645904242735695521880543684462931671358586808679493852057620330108726777308339259537851352542819578622202198489540376733861979099000888189076238144356730692770710044142487484914562498414724128633819617960565300913515890617066657189120357625370390029106341027726964182715554181657673700461337943024580460465319729361541823730568667502564400460610570975367691842967072274762595086277146682936066545441344867592918169696764575068072264401169453602035892740095680415832198631472635413705765543924574468183091657847537844288877673258138542120934122462924334643936674892928336478229948588797736823037025204752437183495275178369790768330907033753695820863637790861802377930550696506277337601595528118884284214801854370507801283401715884118533558182414548528496092899139592364512620945617400424530461432541419260346489697929730431130809878614582043936621371229907925355919688587905765393174000257053334256877593407018098320156120537651329004187736995261898360180758545595866100221055520063865142648864062716229459273916967497182744869338723210829852675827461445027066161653027545422001043952381530281396083218277391569623075349888594580907503864314013453769257266934232339260831007435442000087499820217786392291837949834716183094463897158195817728813313816640054690063863092506343056354604254086582900349146653186164626403241423256465379848592453663254003635521786231975171800837016098039468605560153274991263229884217036034596833298371346055807121886978537557239115525643754351492072855800540973927956042313072229383768247737301747486328245416074771069194336763435488533294354918644556558033990137213904491318096681052902044103271776202249729537403607016143477327021929562369828103889726923402919812552539625855586423362462889759703824669036854751926967389066721755297001633528114160705229814897273092695004632112346878305464886686881478406003408364833607566990694438169376183519008532762731377529151896330347405054468040010764212370280830778944812124899328927363709103173111645177590727913231481286373676048053571876019730883548849854824861633645789447987611460897265554233809160229320097944555489269629766479545486250392870300691202293550065366346718625095872268644268992216370391966007148885925691553458335716837340911150280095271591747097830420876835896625210704620407076522351491859328385145582951509415929402149475689570825118524759502512903324691864107501409017229268588682885841935592252966370494525143949886097598242230799825589472919643296399187249149618544751135691300835592244378545478762653535501394044709522763434140496092874822944816748108381746682118786298485117638180810111645233689898014935037613197767311994308574789298886509373313501543545080313071809732803893028697905656506002015521923428775546815374455780177546913843589952760844685548766883342997981186470512696505044696306206114500014992979297983362383265926946635758767900912442729332530209933013635066007844189378827692666890684841197740999987226979477095936508862182371488519606996503471918564323010624153393863920122448683721378149088976392730372886212044493246753916963587168184527067192552506495303342271131729149251288895115964450669678632482735665351413655708514389950880677385569805459471429170445628735923915763380534716236943736028854407876399119522008875873513602401027787684898022921478003935117323586681267059304237821579044053852091899278574357176057438422611245361389930027527715030314037172435714915454697788991209543250429723361694378452761824103718573284832142431603043694210776718090163630582541799889451563405500202040463778388710145285896550208087376503488283362308066949386668350643396561465124941456885037884064950097452038935068354690935132744858050961587843324209041296707972149761223115883596860378616635426515207387351591884333468432205445789869069686374607593032676405374872394479178925932798710899700030326198752017471637779348604668568707508121573428197243362810486061207892823839446525349543744537209045636909039982582768632582402385349355953673631814813125241741523295987634880240015060801283672866160799220032924591287274021413816552458167852028521714480107015508400633117297529061316284188256771766943960135098655277956781890266266593568155752007538253168052856548460336632887502486120189906218948242224945967046351871438594968801705054653372504438425861853733118026255729963134516185489555210073345370643078685673156079244483643613114090078631784695730359851899118852963652201116581991587854277726377031533343536624573877239123893542249161017400183119642963157019542448124626558276905630561268452811885814343637405572279057078003328585981187914103673051696059644671884167262333246566444146278343935525414073535880771665911464243117124348878233970649114532712940020598169938145540309338532666552241630309252596840138101120796193908087717898440845113379522764865472544237046321368635252076999268608648314768199202258730022888383020003896112421427327345310133882622679072455157296887321767078520237213403445125561530880632383736467199117735306312987723781290838622652840340204075966456947272223915447155519940839977626981661129645011836776552010997289859295218736889590801712566754613028740659823551680460056689488836292853409974361115270995627824418799939636913163329915903038585650180879759111186111521344386178759321495833924383500142292635179407651276148990559856379369997362521770541562857060085743117069022742132736575053255473858850164588217639238857726012518274387751317331526608528552397946006793167295600659254236479629774463941153173105116114546921304798839531112435397348374026994145715684421058420504859481102314822314119094445431956523574809857558104594687623317431588481372819482766062020768117526152929772546227110957082443384059236001461346985576125151602756262045617437573432885462804487271627223118887658268915689924504038588748594322474583101289605042921675552838775309620311490788597765831911698989072280827639145615191814829702444305316209224341768156036911494412336722597061758548318659021331848116653149165672705251937679576381211077107610217603188279225863071975529294672403065450416357894517906858179598040616733019771951369623027511672854969299858813753502244539064307777045469691361751168719089507588537461472115387433295215892376934464337177237354969982997149325460028678267728451600563978660811286061002591982849806639797096246631788916507705160006879514710754019266106239435214640807535774981916589387541596526511182544229078873120434623173288868022692888240325387300228289769607313383436886581467697182390784094696585844959699321667678215835292651138903914181477916087817545480962170792889508056247189547112709084688449074754282907740379563807814548078401594357151391240445876049669531561488306327596857836961830395593977331269752348262423316117442604643483098563387705544416387838157031181854673271497371211850471140646915188476244973547975382357815561003390846921815573632848138880246148037095975200490449953848745956417274476430402208334767853216984435103451092829016156376532244585644176123046621001057197311256662993418581884989328584355163976795936289551855730962525544356371444026357288956460258657531771323263127180424021621519396323289195972306052122465987827257282213514178850461658298053229852933435157807758276565238967776204017026441139124897079478131718389358841090961671120841562042146512846523485959379774436543965360879400227681372291628564786567636944455526952133129086218226202465356345562771508067594563058880469472604975074508581257702524680430585285530452827254070652669158786699239501550550999015626486013154562393745951591979413110798301710740319139614232148479040172676066763573707091337858386038371988399381801689159448871426170001397397998714229050178547611607842333943209355515611091499765535174764207949280900395121891354876589713425718238415626667291834577389119420715786214894331601471865134057890865595701480727695793593419172565127466948350212620240427693619477075515563525621739951045114292054808271273589406878538295914829994447922763362313434305711900275291045024739599349631034328640188561342218774589991804236286524962377283466017633645727961345763877437103702252590206266818887691981694562673907912357847183790639388969406421904477387616144544463568980122939562123828339955853446516813816399909920515524037473206095590510539863623489991369596349079771301371949667550114076358904349910036559404684193742836111694598357485716471189464288771933537989795279413290537456375856505335195475563456996070649094785829939682390520105368079379680252674933272006436934775124183410117124764402358556306537682455876878284787111234366947997721919617283223423352276163193521617371124469388898801848186138122785565605519433275864933928651301199015802916696319939772852819148553121295420867502170813911960221199953315296555369295042908813676011211034264308944064310721656091728224050413689642424054136418722663586242436494554645532562902192868354789179860206462400570409071328767021976346210039885097010395528671769598471164686354773090848710450598509540089833744124735199116242424554648624894824030072827821841335569805245938204546777773946897373206855466371346290211019869556647785431527820388374308396624989432175163933115568374502984381664105153917976682402648234237805010176091853600035990158932409908600702713598796219247663015568047502119421645735967839451336927128568674587586319046845275449807399579443526843815672170369803530751984326236651733139842534014253961413845287661645464396959607352193642576950291762398224733649745176195517357530250895218621428480592200652922325808212776312148406851263037745738949178815364197596363942118271837362943255589504424257822289617088353533244039084416297435113912135560942532461409341289575605351414188814761273032266918714591985096017496137845976259772763066838823336345298421950951192938492142616975731932159193327366029988260572149641172536504514263521070210573843068587779182174507440974751642447161230322768106989248291146912986995024335642123844081462344890968708233611911472735009216398745376318260702038787322467185390941530937695337751803266435489938563770756909753509388446756080225439971899293228848822675737929219679270714746386244713547171864514944880447597153916138695867018138328706292712834649130954182846326780853456124476437032513152027528113967343383913082055820151787877016674911282599193663998239447396565980741101099203271382317270130054917713260447442777864570636032807463966326756060511258712945520769095751967790799959310231023238424094014939814131639049760820137185063672456438724335296062178210554063174674512797184556213454621111132431238287693313433008187238396834909159113924870983189639885721764468505811204986227569048050252564187224743455838305576162265032368735462884631537754662336724350350178314445818287133606083862696459443490654099949616158472368877144113327353315376330783751206140270701118440049163860962272050508614569596712041299893060985474782056271846828444353482970477805525911392289638765096962938315860869562578997856888292308146126963317510522189597955261923509764221991346592567620326532110912828026520099675517846067163886970804517685227148566015373055435533960117392607429567345433074076129423266631842019666479723673319489460014708917994388953582898407044412618488047365173400325815766734388606954764791671244040811417260414644817555200892003125645861644850973989242801866423182617559666633903092233675511417295984653968693558904338044683865174364133640405415969159526764124348265061340051819092073192448720086958406465110935810000866052952851209035609516919727165653102954587558981751177636225949123175022140313882758742065879714328537324599760158626385789269623434908689813502520397313264990476148037983444239384903979722471407831682803880513346860172459712656001123160923305586023045027139237086948493731758080745029361068485843384039289395499016958038008021740461132961739889982109582632350781987407253949801749678823086693027667448931710205133310075828635199843527442676247433463020510545797456177952994607444788011198078569570726114459565078304643269464003348515619904813557509930810717332838309960617742926054587386874338252903154229047197233875896709636564398189101277368715424973734330198951082921952165896261352897839244327401377658804375206056072685354065068345347154457096660118575402734286282678850467427423306441244139610007386259014130471702241016697996050086322359531031271750945013428357528479963396422731706123360327801264169507018225184158641703503976093418648780189039183459738599066064027945529501769206588107500386140235677668929991983741408652629163093403397111553832441178157979332887225811262292716035064502321329096347845344730767732680482985122391302356845920447588654261065361368998757514024755634457165602212922143002775271123083404729127668807647070329972270936019728026483118735770669151988950334674064041506623688271090735982437853247856050619715739386801852657479478448555287997311042709327968183872237120441247900122967146674492700907471889935334827815030039081260110256271549967585424591269067600826550375162562659586038675652200894353015500141108388524725172005927820604971469363366294357359780978069053539539699228033201948202486759315513915722943546736016581956360497659033900739627324270108012365081073994808800283378691716772819531273492427772345409333776688195174657613692762453997129206350525961363995004539292312295194918226718242976245130207927057412684742805760898072196073655228169428394309737297625800691136023965392763780682075844207255877133345494893395887090433723820086731790620359772930360055804699920800322951546693190798729364198045792004246932593846824370170583953711928787351083894298011168083122414725986996386902964147178543797383406505432304457734431126526637397108046206940757353333373607048363436056353495823398202195863185250448976132452768581171366320593791478719815770934567608914114754697285561239843671098144057583144962115902416093597966646459080392442149777585854202941298816323203406108124742002721484978849304336746855765920885035111786379089066879696935487045991164147500324417933363125311657183172705674501631809529324534382507391689876633873925119543239912312223302826422407542750710743380954940941000097982075585574353778959946153179983917210094780725466570782765693523129553514043609181112442582846939134892705255341278774009611533003007648256571528269075567184124978382135208026143297474676086413841261927612136396349895542771752323665015789225670295469487378033299605361867064085362746012488560283057486299690389406883329714803038714344782894061907883781348710605003848940817673145857140632333371966989222565503083310168237114084854307335583494581806209363471806274100209170196443244178437026789742454062717032813067229681833914434774687317150056990770213265412265953987951530799006500749060408229990131746167558219949087632848125766005651276324486777795028527280917024742109343332323872120393322640147723330088565591939177493634476880506913166908097275416091028090264338772800720938348282299479933325356834467495578787297422733970982085815240884573576342253722110219571428612180205766032633116612939700035123784131484893274955814594315425854295371184046740547453805208617125890575583999797623447014307272967554158620654624098854786751510971619995832143674624020719374179052882051083691404799022722581121565598007569701382321060624688382316148679601232281816664814849988970365735454223186716288199447824761254291998920933545008530301090489405664571453045855103963847389999759300013645158269146839246172777003721330888156895122306438731737566145696238864092938011479510566725298077629423036013197995354359194399782995580847152216898654892625411432251615603661007204084773084853220007933066198355519483096989599372499163095976959660640178524560120836141544215009363830862017445238725363645189447241716437779732728819913445944214353141152554381834339139964707475951215521205791518755364178657068407416742133729939646867921700636252502528796380604062904410051343681021573032756033896650777527694542335154064788811875536724324548525526129553711863927403345583164516137093715423397532522270642923822837601885575456867825322781652299105945552285109655236408718461752645819274533921760328412562745559262358257886647079897660701274639831486246070223959803117461601535620327417196611568968018521900110737468340776466155752035107961120490343178793724265024833337450899948904626060710967189883445116569160407641505173930164858487476900407669718794102658281380158834467138667571653202054130102554649946361491793803455031174835234359191436915176091278212716221258443057719444939324128586986501963863793885701221372654903300093149207347488052261425503460346304625016305167563854873144507684572317715431833706254670402434855428759052899416012948272479878378580484333394305281057583051687031031673152618363368475296908601144541684857892761813945241873205966424853654352429559694285314542019933282207987168014375702935953957883805073217276007797460310991663699371080214866962538485857672320656085230935621350551661127339254271199932970334208374403250016473400683095548428823672334893835653479180312646676884863119407165031501592940858483536153118615645684441314765270630204803346910454581761617127363879609541776830782247265948371167339875189871121430031462802359939888935713247765349954374962616319923066149027563284934754979767391883531714800228410886086657741087326320414750230168403573673889910744156843551093322577759382381319660791976467406014413469866888019624408636695649859405051411203896972852632165307575997030795053812720407290474831523181528814250788422508090072830750119884032078809452212677881504012443889819821070662677376237765457684630883614746509639940122610561637828342161588428116534456186188632745798780528287073335236906946887747658210239490450343522153597203334333657172472998309510489717911384280690919981013925006023834914350869662476816003335086750756553458841472365775865135311597172148195894822660466208463155792091001722916811809418234119666254715975741395227241374686494177466191002007320876316836733712189844179049153770189317256414713250866503871578715714124552193420190386184957791510067614345893959333674111150153456637625302444630464497440535514840199607585602269944194293453160205869565400293521930313842079799508798622645937080167115075590784634353568682538584348374236871036712960040944149958004387820771070019005749656006999924788547670567503155283749426043448517412543565520781565992823581627347605013652373818523482138751684823437780687019933863983230218779620037848629247117200105763154040353821508197142206761840046201285157569786094755498314802877503409389456121947942873056677347458001163348172277728695967526008025714224219616634332571992464413781046554755679851439419105257822953260490509994578363753443760170725219350644311974165365707300874305288378579898210546321496916741195326411000442927954864068727262780510728704840618863303657325673825527829504509384100938132284250257848621711575149973476537797611449528931402048380369068119078008629995039069766835682362637467991384041968433971135064916040523147369501012321466545470265853407886744451062545400911867420635291060587117957483798162565248226752194365208920963268915224939701923791190287931119948248395794107209616066253995425404872103684344998435730208336334645347766340065651551030923394523846047140641269635657212391830410009079023492354415128012674016917873102259936267681545780350296495965708283045361413913157911979864901333550061828244172962918340493881627654767838492179893108508579124327489408963160177451670592486799445669129869199757875602280720976004781391113411107683736132553460738093133722729507737389832280034724579121808815828443266682115721889300950596096400981716594169912413749512926585780942370960225003968454884475635646831580856057789508232516716550673425312025582580200117855278935847718093301196678430735337022450396311351549523110773473943621422220217467092787566879358495574230615601926255392261830401949444086501858999384401045785510336374092893433934508856365760393180383582171022667131820839089606622726762020022489062956045941117842963448878572904479714130546330232139044012599206565048674735457406395479814409774405682161849222803770060054822481508467121970823488929240775171301351519320403800996472707651984932661212103666552281550556092836064180650205823641910058927598355084170371927318697927774835760239816251339839969830208835440086547866307484236071394189138036991208520218297829155977657839058657856776995860462655791508349627449603859213673478696101461734326624095563540734417309005676109966699249450240455290398096315060679001445414185867671890716308561750591686549198979656909059536099100244917039593598148063016503995399074178558674685113454197150057943353847353305540225466769025224192375458478231815436548161430256191117427800838453067800496688849392551077593302744307671243467837186388920509281660600291940763867399989456187524001795419780724319139208397989874913014204977505159255159224281810976050136182065737175924459392702653159243203962545771444253365342506921166263082382595471385870071185655430945287667674281986895237297358909852323360586899074482107476877641880336305868296930225682797064009688896182723388168723407470717133567798984847005114371479735524430638189937453074263025039650512740824376046744754030494309214479616992681083749826324533187169520542959137720133056106354713920291679648523062697471987383206487594219244120834919755570050917154108603105511750852614662325203492282097629143109465735895212472223782689219633591306799716704742285163539897797390861928513637142000334795369938290973239576685133363870012401759606213032869803248747249325526930469926484831745636055783491132255711470226147219325012029853554013470175261405987667234971423959963732655160693949785162178013299291706711596968628057907087712630683191201651402980617289486886107737798665730088981296487925735232756371423467520766290662998604709371941570447179921044731689906044515268746952057084812502740304297109476517912346825484772259183991727989953507827176966193649221570363074527788437446693002450807720923770583210129759570311832629560898761776822249358104759556098191086643830116639100284485993614479219652312093020465034768829172408123979414261295547284927091325060583114007119004902481548896945706550213299664496583948784030191380314148385972393147567058262167689866882977688986368950079496178355428054546123161467985329807575368406795174172561114627843872678157781183638446371079728986360927810841653979599858752815684133729330526444334239904940518505293342211911845260889913279873971694785298280910892933309207648130360059617250592441790779384266588639299976458941131176119853689338884984710870375930171393079788558950903056438397042485423886727719277852039503767325598461682492533171053085324590737344635706466333041344694321799966898217372221563215598777848257341197349003180514449139064000393035071458670873664359183297541153094026115980673824545016012474451854822326033839684161442774405723628187603123373814268368228568615459775530332609146967049502009118936377490613669131194671626079470320686527109293040203103320430811467116142487036879615038904663305081071809984533027350126521762887369549151496112448092228695611432010818675749444804943776664462324481934603172576660971940277007365865243467693952462487433322676841995275427829328498806962689166599836113221151442999345872880688205008638991198167146509469956314749722628268785916013953711474382868037452212299267482270094237581974668235265750492615911539416271627245226811028986843093008471576919915133863508278950633830890786430041105487711818079240818722691270357351577723382499898197815171283565933067978631663449799927167691588051888044510774442572776938401380297436114290130578033256631758395124283202156593209493012539623964486622155689242655756117265515552217842245598352655450603830206225637095115060609720088395715859641349656434832436391522798911985296339858166268572563096067392358653066674874123322148865695201945411248698972186925554228747375154952949589987574152817397293414167712047479146364109489861216188383757638304967682167599950034096979038560252295077690183845783449845485292440937980970616284629727598486346775122261871811753386394188787714601588515275335053340201300810181173619782512745017401709200847054332350498566852488354824805382406346249637786053998570799657766564096012594169632281234392202334816464496686557543251996311048842078857267409247599226526233268274605728595945122860589588942263017801841396856579121328032166241197491699177538482978520373929180256862228479953819976479488464404238245471106311859595050341478485111448694725534039793564457832526174866142394093974373195546418829476063710775481565708666322990873651795489581601845285922587589056429825195658519768340248258729831310689338669654443539594788064535621105474987637435489486937670323796410134553047404678259306993437981926862249935489045525000412609316739012822451126604241033897368881382278324068857951919636013647583191938798035431714072707847523542408599621457242595832760083748413345473411693731154651827346912027722828006559151315735835909286235279037444822503254987281833980991457882686567751736513884968393212182844645610485749551910384038689633517554885105347454034107730501671271561864133436677154260022362160919127687295012146256045495685308264291222550005911055160482157254787642089499324104033672688010966732193923251456594008768781562799801651448585468190222465348436827400086989310857776130681402271307299629861653104292411767707398315796789421562621832795462782404261395846797803073755102623569400756365367681686904846474528821838381186609524903388593962986527960145687442439168959414315895602159089780842944759087017555766307305010876924508557430303758310258943132182725015624435449795681349056038314014743821193525896817261916488665468553244376320399381539828299449002079702644223281521615565423009214017372269556326917863256837223581161070576219511105232826909858420433758306701170068935432972997968200792805301176645232947486701109363734104761127890679886612319688574797349146024003324599949854145084767129878025960574959913719511489975272975437822198395353608489486938378209371976298668008838107442571781453514110769050719379858621791822989884249183238353852487852006163180519586801981004531559959292862669982696213892821299120326534402343449804390302782530548460442196010593680759373409596782310436409177349891986543753101796089885349313476541137395038698415612687030871469334134845575290572929488152729308327666580827535005612178932401097887808897789726604896563101601105199597305707795575647481612944122031858611712784208611370021182160868918680343782559179512161355635989455764781518765466170383855778862956820096283949810488370439686436685536274654610947058725278404002619343660124460654666041240819616466870973963692853652675549588488300992300342508978410781733080452908611311317670777337602165768170905287623194911851814421421965585847253372411289329387444471606814423379135608542744842432415556794613166749887906757464581927223167533763398861465150084624156387746331332778626266629291212139095047777343493379826580613126578344289276828799680236882082749492633249746042970617911180758641017136723895863857913991652852757546901549091132109763162147363212822171061628918362821963108500947013658070932399523030970845907864143907609745376074586181640798362450235664413713043972313836613955586386180887230477150604747135699127346011531432402511320097981395559733095542997637799145660881739372748888136923463311770490331112119140839440709224115660079417918187007642532421927105744197322795848015807929914049782378716488207592772757339864989990921109879160927925842824984102680102740504810036616161283462945244599979708106717477792576442263997495840010428523881297741066778680797352989669400454602808451416019147128280748661936733167212063976098216249794592669814305127164636348440045634743778769449340457908084334600480935550280779622057981683038534070852181908793692216197125220108021109470590240269189687870836288508884413506920798598378826570853877736100879918609841737197197563944673313972827133718278457764823135516586152973162254118305275221497742926035051737732411656498203746313283775847933261745540712848842988915792191890178995080513230558243985621119780752468481281180872300940026367469194848762472778562327734612382840440545703767428645036931910197410184261897303647366475799509005926839450745350412612192553947044867318944848323539866743564950825227939517738970212193537367302322393856251965488691803066749653287023736882394599929281965787041949520837180355588691056551713922360658114012788748306600950487214939928655673975636659103056211751107671851163449107761198905289143432706027851686407664739193225755277261642233882527502180910416668129801707662468201390867147643462083850833029096830591010013738017243746798641896765047934468962793393344660474614245530124903989850436343205033008605595681327023824259753429895939546213916991057096729612645535071605885014104519900677642428949014103771332311286016855816908945801389239830414847083362588953175876106373264821670033652460462903881298419306075713102962926399198569078277427390460190124354384638177501920794553105894566956699844130159736140240211043710379190061760198899065100681318860781475674343048055651601620335716823743099279776477780263207804299365784086963365426159512587833213560563386188110069645987678661974752724057721908295247191385868788614924505463471038167817168729694981442823258851214889924388918168617725289973292089377701787457551197207866360328912043961462733091281885834830353787430180330439273833607582931368927623206599597957318459613298915343511192693225449794106830032001055184122429345261111575065898561422562798235672920016350858949346156202964135581996228617960264469018135855973978153861855622525944652021609090650086934244613113595448057412036437757986377813556318607360544512370757983082946873044989045161800801826989839852096207324755137774732534069800009817161091035334263941339304507536879825747674871654113003498385561455506794503507859278055914622684325044989494894870187107110186783537219118138238243969012455151499509612357572916654133795868966625375688040618232197606361625451166778441252906810666238531340336073736418429009241238356573502525469043048664816032156563820680797235020106019519265566892790594464629367436567189505361067604314460436272839603825884182625889289593652782794107068128934887149313420802693616077511770137860082601553490130923233286004040052762284772125219110644084952250740799230541535637785565402340819293129093119149659241440799589413225931666456704095890058668516478500093276900516831542677220623859014496760225779485650479844523908425218328606102581666703658138042695286588433936207112916673912550231813910180843381708035037551138404263656076165458770499887602576844195997278807162448147242144503696847581906886968129317198927638560003240049042715917286767317919251724052055821689769526244561596375654624878621739705579132018978686620479427426198628949843785501955213463740513973005466547377165050440142805115203499914488461911817085255817740156877873591317455889624241185687866701202766657902375385942999937502438189390080949718486363151812527522971359294111462248732469631307403421483246282367898055256395479705831371620709837072398460495539755484863287652544812785199158872296941625129937492177983352144949285305048790266071313007753426454204856973303702283899547375640216328105436778407293303875288553471401755305045337553586331334356645006774374057217447838091102514511353271923280624710434687910055796413012493618346777225580853655600250276156848897331339786561713334709921311767428926894844873319381485115192218262213673584934710850032687082003690965831140139490225810509544716917219517906852251994199634308101577060413187173590896840606772755401494048397664133946285554627030199041588307007340925544222260244614425804355305921452783790201984489296533992789429733132552619888269254054649982818609668993633155896315189340872451850093921868862147805756721005616336696013584530846809442887380249008636598021408216289991955631069017419008924713243756375408756300918533942369545250541691185050369529633362245241960426660461581601896065450521351372554428343663101324215026649571140071089259548722313724308097578422504451420373430016103422268598619650471857261891173807019497003905568802619749132003511151103147719011685432229555398892134187751884831572062549202814077626880709355974504718395994845962563134331346447289947155962665740838122073104934630548790051905678220573090335774368369475656675211934228562326993688338426706826639725962143442545939858599715088607599067874737834395848526491137222465591261579435623110942147838430797415122556372713428368754379062304106035231922539075693612351850137298374970993752549587363910978479702096472001504376408840659495127907453585961376339531201635422511397687506054616959005744977483915720413018795716226554626114980767838948610881191382002054255390993960639979648841120994115444838516304068401716143655620227142424377537652601022648659859833079487519472829119063514773452264389105250228638846209440723045156826490360635540832593095609735338254009757629396803405577721775012692308116419224667209586801363394916262932632191862144754834100579531748412759722866449111767042934389994310823038043602576527900230886387987352815801167183567687053988559724920000151143722132847562736434109096504648964859550243891199908057834764341615783822665096432931198368743653766622113917226032196760245671311061336567575737614735189376831234838748020227155072267006992273657405124720195265216188809119568705218301876703884318190726211504956973827705773908076551208855261679244453197865168152085609774115654306944205860639366039472984809959731278192083017899577280412564425514304839274923148484411655453937774364699241183931650955079935491586140761438457549273406698717302338203802493155535008869615842709645586655820039612738842994247718497163775737554071662636070839226356867407244080826260508646631608448857768972644074312763224542332816562914830790354522334218330461423867283606892157013671703722152978464915924567652027679651104927274454820924090735242738183789772931927802788675059004749580624913734189998963997302819536521077061836385278930681854368275821980871971730526236879092505173519986088290805811188619141451350233903187277458467409267953133054274589200113088335722210117976811466653884325070348857512676005435901630950389755296246422333758336732120434073528015355030853386713656414070485407641141547461796263111970535158743616626431912893586218965740543209308892108834465611554388487039861195097038244380940262458485441332757375408362734527971672875130274014229900805829998323047339808942765532220811849289181381937263665667764724531631290531127677427141791621510576851506613150172174100356403487208835903321949380839620656354903219612428328395412073754270120355097067847260524963837831357188092804746561334622685993290688491172105296019765341576177593174006794695721247477169698997715090573183495034713424484056414525833317644563677925919980868887935519184711268500752487954659699195573152220212652480551534126020320369390472555637920319937607367456422613698729715771087860518791542664880956589831536856819687344489864183502817029908515077346656117402077804435711749966925241602519724873655607933130017212222738073137080161478422679209499705671712707909766288813416026647165751733941881837939966543429906313245327752019448411641419624848915645861000457043733372106847829149313705295993980858252797769964291820978825481322939715728342897497609293303473816174761258985785513954897591651336660626962251718500764928354488199727457190338557822616887524016403789407209556983461103151481620422238022666221697224611858584907355782378995351450270450416667527031930682921370696312360148952540180220981542172006352936529204122249211227626157070154833677014915266469833243207880881742162941911574674790814926728846134061415647116582668412121689968961915972347766450710792788544099337738477264420893299192978658377106118774783663713043254152765546623192886773745669983422470597714303527624147877236813437432852793145618053568342723414555397798508909828044365372715137603625270508972809202674330091844473519943640154999659391090130343488213134270410521433236211859226301116035134554627541341027929142647859572982601924413239833144815352357774385238324927074192869464687649807612638583696636854529853552755169641534769626208497933242862106058863689381356167345301900392963302029566883613532385899261320819565275266523080333239710408969158094885226647453962719793225730182355744547131095138953159004664227392304669774803069188388093891275660579823035999325062709446055574769953062638090398593633363526467249846725785988919480604561791345535318830910002537422937469932801379786070697799307507302222976763749230789366286185912881798638366107635888571723820398921261680737775806335126448362226376859382428608588530844316205582326258677554455772206506105465306094335467127897975394095270673730548781699960180226855644971292504634528784751262384695393524165366354408313254422487773296126367211947007535312391700607763321426218073896587782498235948203084987206644138961402946737424145916735001720283628159034931663570162803775175585400414969011459774059635507402571648832225835093582409463571442520665310677924419730991962637855500008804987787978013298117393433945937794643032696513870663180641471671723637697890672703709942848426293763605542987213701202291447532551624853956073557858838723347671767480817709520206121167279899066758106674780890783282554815059837556757113880636312368872185900591664132895385930682433092159223165392052559241023682592247962631549034578709599985034996080445544680549713852442477208311944692863436743684450533581560173856273345462770466515424974631292619878390229923985027520812614172943956914455008619069047308096688806936981727295598665473641786663141485790148188123825175466596037327076166664126887450912688744757153821347922875762210499446699913226210582561121748814679674500035405546074275790536536021113898079084002264759738484034664311296857037528700355770496967332149497883615186353572527052058067353238710513425723771013236001039913024075832769185683552308289787267369925652406898221803226190609082966309996774136548463308864823633668410166248893039256049739334213048455432711854887166680717589782356589655304812559304478734630658603905417732096359232084940148992752061322424570622945386372147877154878624602378056518572840180205124909043918739424746000740759810846908463590889048066304358114239682807707284008721094084381424345203318423912190407918684263839609096244823242771770543802492262089406475557290912291427037969367591148121756346928198755910591966706318378141442732732267282943583355861040818506760365278458495405309326702377543730855062550775821582084407872415320364367036650962570044549373671530364999627426192143666283484411368281172909986697816131649446417268394380115484887877925901873777509023451050326039061960416549259882695821124177188515028001923828582858487525254584098482684560809333997195618373354422874694285414101757451312859317387487188694149954254744546671207571627087095548054462762111068760306998358979225600375437005705852424006494160824814000623794402344527338277290803283468959982294987755697070380591326606386068013383647191183825919161666619559171024192634140426727449055117865836810676765311447383666126552340941397039976302168048383609501196503797586844397188951496072725841230274384114016039229500086826551823412868514583423455312762414845377820989039056363755744493833396792881464627405996029086488038741222156547119384698958121029127920549430845954093294505110037499278326572203208548380481745837419856866940399841981793946424776820398596303623939566480458473962315798304103625939741170154360423225675491922813574366796516469815373982908762188238550602782658788343022241564525145618034360264602526886365243779004660562905536538332720275485709195769783139433760044017363890478758389044363510941700554036760307726610454916232463535764919920614130382636296407710276434766314945411051247871436543012460952377013724988728889764983302485736900717806091282819248061947480043020859527172689870534954708040650353651283033316224854054961015325581235671069699193936692809079466201743319141063311334911812776697289641659232436569335232916723138143168298797159868522940301818221157242717385443955871462695106058847825132217758204448057998080397276702657464701356338697059376293378457551838105656452172300483043529305840334407792644413440571883874088792128997031213702570138509821402192168528844919867706519824936830299124472280239541847761983772762931490195976756363915755005740431485849855654955346907453888251799347453821411175083984546174400851216151028848389972865437934158213870706721372164347818220288792292756988375936513529757145518572455952115848538096935074371770034251768955418168534795558899846405342458836226573523151608617819345810168651797177637342854197466675784221227526081061683691106776359516359561220837842216075287189782078889957309405977258227812193403738293505818883679960196651627477397911079746220979784690344039004511062932418565398268812998350401917532519956102474678463592867300342251977690504079412412485629411662524189024033778112483239294569468698948750529462382425171550544387818800136191455368446337465597891308567426095297253715414042410374282960093572967309755781411643248163967610762061958240066803341860918094486525832365815364800346375602994441265309405435794249089510510466824870617956153973027345246940383023690645527262483924866080447888562017775608616072068979401089948496357075286385103604098975582640210815424521391602958992484629278598445576890510835157814375752214746116551378591192118850282759552292561108629058906505108931980465334100898428342959591871789210390006511242020400987462882507718883971372708903907053799514760602440569809506171838233742671047819345993206207519066340707881651850254230797084416396959678028536045259297893844358356398299064516106219720649990051929446889927596095954276431164914632221886927444544613003143907060129034133986351181524105128271861333923424353625433267480185509183607486245021562859359007285135638579567621712231454029011824297990975853694249168211417215097248978301272872854838662952978456603053702699141649135065565451082993760246839374015433678006240996630840572870555450188136106401795778760701517931032283646653686331200642274199023063338831864558280043338420837880008972160648308140827393564617928184593686901422405457184474287233902412422538935558402775208696100671782535600425633205191217003208818562687967521624412426438677094997868298918355376519375019813213207967899796666575605763420941245945625890825620949419358042432821031589830115405119016613982321120130351632532860897597666146878227259668552171772406111796880451397717942119127107339172032104344424490742248804219026021144723968137984516430408872992831276723096211777796344922723203340952040756102277838846929212073772782710066241616056020337032392333475165551501527240531528381739481350402683956919022663309966094182828168908984057147868684056396562003428032769479041880979663237829877443949795322167979331253977601666172838486961285098870970370584990645074431228415805508418084148392620278356728800174573372075799485907303070686740147751078103206603331613440280090212743691757333032635763522640526542431302810826243265350929566298969684640796304964766336672979580986573677261918858591934324617125202615424030791047181474699811514092037550898106418391816300667561172968392426983330684633943979981952244882668950054545831886264654729105353875684983288330492901757269184419086782118441869823911427188363378946681729463487309532548621724854060263149377597595205477335484667666150672167217200766172362670751233486637474809206362856278107452114585094345004925084023440187853613050676911224940183847270317229731394389203015446364828034458716734407775292287250366022852835031758722257221041584476743157932455023298848741562837420262700463820603190834927927684655886889561365390769424460761318148270908773714030871629336216239656932459860090882181985556315822817783513390834210628732365735318495190415193016837316201338406439878804736549721232486267529789728225492606558647793357257475322990334854714574023911080320565380331156433596829986568377702885420953443978257963719918250350333284519056139165475535296321200476878606248246507519370336275307984727981222029825478453573371640972074759873212987689727494855169974587820642665809494484464610182931316970838998708865187877372573833569368379869092897988880050813044192637865313032741073028915673710433036077754616431249563934183021771747041533677866917470756385634627337988131469400470009944940058589539197705157949202759014777586553513261832275760220911121063285325333787682641961486340191143450492336873006500619440741090924875698145369694068524252486075519557594015419672696907302634572042783364950718460712292990418803626365146777966989952783010298770243174473867165068973750052810002998264206676164153823667863830283817021324348554037898448889453503229986853527470441768634273984151402473259317850744888757160456347569903804970116074746109524795975327327479253641296465112060001584039183969564357673929860400205434060614818471518978127896628620607668211124881469449972523818072669184279326815558624837167163156595831559671944634883547042722551915708126406837197356164051629328822606740705749403002538534834991909672262855597720506581145048827085713225599612438169681321488219817491956506970874399411991319444887482721220859726840661372653062859965236558105692635113394627486905125516937941233611937884135737093499853188976212508698388223408774162664233160759770693681707159805692561434122095446943159524855914084931338918938315333317157428262560292810224747610723954472910600018646550943547638948820958557343303334851215299316773486337865058894135937090120446597183384659092769596886808118689842884400992906539165982255600409018239041787513815898731296120074421591851792263387372803710771865360232659263204386886003767625612989711250590591402098980627504029059747136690302175260695168010737844793728071105853121010449578330588568829898696251020575363156914296866813358001828138460441065142011124228043595873875805218443952367350466476585702547025937805786011347331506344393445837955864254226160191266043455370598839199940792683503094294797493141691013854009751479231456486673749616002985261153709134436638707517892592471814574382100018601971399191968183618284781071506422988500445049973623903944025600195710226257447990750601670075538553086364860416965272454409216076504193893094508400925860304493497781127082910606849110440423923633703396876153576338723555012086955257806606923576312757276304853370182316839078639572096162666952801355000760549380965259271733853328061615743820591473462977951957616552727285757682713113298809538034554822570166234697999166982937066946220042926881238611572167913492329365970225706688323604459233328491393555558610007467089380012307209522566663549583617097993137058824010899287616171769709128514414191109405085040648104736344273234836835861233114188125272211740680224772171453546206463107110777432017607605534231582471967371700995543158246943063132904726087758791130004061469800085573096290477218748102789512219809819795590099974573233820129204572109964962414950141552764216295092284412864325685595791143650742861499895979600040690210330375460842481347267649533586895051363838431738839505981570343343643982772589680470984303168523770196664140016780619110744151356827014302887296929983868729892995715194512811170210060449230507835868277221586655463566695171784746110638383615729214481552759321921342894900446845007712436283603571060228923738428714671037147660738148861705249749280775305453941673911614041266604611262431498514580078597090850019141893879438166124526021029003174638362739929094967428605223983257067405577898804937389392594431754584566979107218111375432004748118448897639597531830078508458189740670957502034754439650287693016215845593557204588857349009627964098524360044541037395013245689555123029689995176651468307313922417300542153830451666589201755593159804283280067371314720605466666979875122481265710591929464139100682403644843681221615029271405173843607761048226492298187882165776873484774874448477018335790106723108929352240703205258942476218423981915298220584988171562414230041676953376755788975460085361340108033298972124724251129289690966146414138276780052833530407347654534479103949832461126467820203093676710967102883830953754207995512019691734592719716832805824588443578843097856767063783720134625362937053217323576134985447294317987330108589032342159481815681835332265037051974963002948236553363939584047274645570369847357876185934222908551188235343672427308930549221245077650323200160701676043617232786440567910592260220912656645701723303040400095405764494601472169747046201282332896515128278875390786903607322661182788642407397348015889220564359576161628805082381161624141899011775653634724587359111211716381568998098616099731188638537234244742533625966315523479535564737061311472129094747191467577315830088955660418973191916213125602917176420639896877065519617678258715164738895439283402563488648367559439578113505936118191948615274927637888641548604352406963824246160182211212973137727347857823160295598007593316708029271090471027738391881149208145543408937035919965869366431139769574641332423346521121811033361827403499844022345266082659307349426057817590759101937899736033522415563951031407105670759460872299882405726616381235183624944067178574835382548644738025190603293695520061635632925389668843147978474339026781248968934715651069209633566814219536104387663947857707176212244122227539112340817970074874794239895138252989730018312551400462584133292945475964755939931964951069873250315882259360742884317366579038422559843709539486789359948115212160228493506003906989899807428389938421097958111016374770912436067820402280433582929084654117606366533188755420827549982315671747328253022270340997775041041981025921389873910456391929582875061400946991547841449684432096496057899643173093227425602827022366600036981118761868134806667713189561120331337602266469438736910798433856424039314481651244752973040966385379909588113400947956174946257138184880117146681320803875550472187698462122774838095568425296669043511077708881989772522278963651022453936104193556795315556858897253406527461929338869499712999826043513271878678048306223680416594003602294875743759347923499868696353664832030687280612505484130703209971301206596844533885096680417034034883989975803529762794328825847272034600281008739312966483865004961036752764057040285347175954420862351254109068357505185811244502302882788842801373925355385701470957479227934579982116781718475968714577880413739414841887704497371187721539540709148590668303166134791377227838488677161344641508104558456015254499523642323163895116742106500989941997547025427085759969854769457217643155874955683379015105059907459850013868293279164340407848649908148608215444080318762548271768583648244590956321887573182408565461305931482194849690120085973920176758994026499038715536242769201805623677047347475474607413081895335222749179962494311045559161644448730345717338851639658283834238827803398139371205647754061749466835581420352597055486620592172694915918209834285278891115695404430974258022833095236331862215961614943286907170527423785846095448282816346210986478320203241868325937687189387142805714715855689656506039210951157297229970807351680491746738321471247913244813784368556892079334637466053560677770542450874589468309222839333811788870766952012244471256684008166310677566749523867236337947051712736372963727830495777358917272924144325596232149685912278052113046926152003231660798152208018659082574289950393301283708648991170855625224113040688367040832802885159710626920000945000813540255073761223429462394185410446540394921305785290851993075767935208415097760901801454016590964631528404263136272443604248539009417190851384292957943079691328797444864489766931254526007422564843070683465606025052492168192858114272368906673206088925650066010297279336380968677483820260136224844059608137481035607774828678840772343424040550983191844110457894189990535598246462859403133009308407174287000915639028073644584857470926694505193663385665607318654675683049496891456695498221110851392618565519383702036090264255292185397024648976046663914678609856637132715254278442052806762620329450982028439584502208525070267368314114434527001041539421955735650782976308554053521311098410645266805128179200925515814258709862116359737736875066529975292371952967149489011977077764718954196078918721229460633907240951922393953015160562466018854220672799451559399191951133326528920488169644480802300955909166729076299231514614013722270130290680184581015429662402062037481100917828691649515669993075654129443681561254696614115764757998485414254703923851264860891230005950928774559742204748061362846767276108411741656588453139586992183467583129243941643818216359552717812955077516304773127250612041327928257648685147601403340525006724140694262990085365086451838518344813248240528801635707754662936979016226669508814741114675317178274713323612270517101003349115186081867135064920592792199803539125946509011017000753605552648543980177985067182307623361713899851460286715873105592820502281422113030524563352584177432153633698395679606415669800393326196260828100665206108392919450359301245230865765793486118666807813111951559031537190247749488256388113467286748564954435718424689705986384776661961397778448160732328759265584859893365936392575217312455902513460928675421126189305610828402172499377814522994449634364594572804299295536881961836460019781775797739075806233426960006378290422563034205334095223600187004697658729658025556709304743999391521269825354753105320682319409783560259669862885263535847724951038882937581739543118760220700585382548260263738651627924252552144944865123592705952824397379612169670981268575792103719031822055263027474861966673773981156329926769560161721538992645416047316996852989511931629000535993677367481247254392158748562132950845497484947821839953870204563399463348970235028326185352915301771914687585400454582043519225600615560746410530882749679318820054414068798913646344315147132287146480409375394024153947277496421712679689955196547426639497736934031103309307602975582208667832497831696346360979282381567173586594593174100903888525291932975235642988357261426524369889407196895226134637069000672882460316042134613536431210560234999430378400029266049825791035241905213416345342699069221203227711332047686767449081624993726889804009974417971885019326669520120063906618007186941906495496186336657893159996519531947897769765749141184416945369950757149180812844863623856753655018729920433830966218637491791181693407332397724779890241580624546518028040666945773368417180701180015589009642260097971547599992436010438451373356294522605723903954170694730910939519282223180409734520279988402041912249818499930616920188635628702073173117607098525276810176752559203593666518397983800538329847659674223280051829031411353257354662578881205263423624009718683944871148507608013394986668030499754316420071198460757738643514316892535146697248117056187023851699467383830112100089989807960331606508248665132095014664313920100480812101439067373719102828307741221569592859444923974332571364284750705723776066183613312440254853932333147442874670642539237299969226099572452926716356033617285072670414003192722287943508821006996432647060343567163839212888679012925130734371919504484125784647683314590531603513602303656168650085062993633552201002762796805762863659214466570587005870654607485979890477855318315035255654536008243402700535086948446871130016364605911311041692601624431151210022756960076615979858500353634617223021786501505041910912584639618007734214757384108637596354361504381570223342504598968086151894758073412025917665910756708256036061103494580825093991774849003290949784152665463077843184342870455814744454162133852632550252672355647910141569855350582133231381323099087482011869524094075988881491650342043840721737793985924929533288946199672486237374360201676259055317266403500848117567911212885939166682687279496573141439049071540533885148318298645446240215216951902704216032721834921961260579986527470352747258817911559489610800063685631360606312491829139201220983793111710074178337224782870989604035003111545717776736973027644923205933777628049642601544438871080445840108275297376206600064354143404038301872842696965378383124986709635317617645078054068660817142498809439035746479452590139989851138578001466568446311822152122524223890041439712059089511378053705661298901910942743936610916721780633086108918993599168841907577428064934746470081474441780926397433223455794785042823707560542755000682796666041461509871395030873221808960102094078453046759606047626772157505782257106853077423880076061574241290194742385267302627245630222956576001317477105583525141197574966249745586688548130311147877759379063356345105527265601353879986822298541360410331741986945124903559357222274571174951670731802318823852562464774545036233532017842255262518337155446600842374808611719582098726433556183655824909333329844767779233646407827408756580801468467678169229718549556530179768595824157732371486628967833966847260973990545402915720944454208597866821976163534579589830143123852768250053392768743316894025056135297138586872224258897415886432727334321745945600661277500137397245327929477648077628483899598609587183698235767624698170243498419499327140634263625573539199409687359408632545837375043468918478926265142873328869295092686618546217671606430140751931604392281239963303146428940503812724874025508853344618283095427395423248741161946728554568440139589835500265772784990413582558167328906832050538970758944058857621604625261088320172347696716151529038216097290088274427817584321469509078445660512591688042205246672159250361790862963402336486254851409198670936647418710990347026136107008423399889157143535409551658794137265807366998598185328613611487935270018825276883938419259299804820483782537077344016979965187475344239669262118161388846060131254610528943430269992084116024342861639945540426190539766370119242163127532075988810464933306678329675604332822553232168817907715636589696805005866697883513848309375568526359644073807636378175941478161810750686167507156207622287061664817938467416212832665422668793011145215026521904954133605354671677879761724129583683857076024915693147583519247485666910509956158533792837341589664906698720425700021021541175604683415685863476344910866488304178126999700225693174793324923341704291528503096222697930416808823803629535001292345617781993758353809870179369818490138414628934587854736916780182307772431611093308327178725874241056533827635231170773061053393342618845078848633757527654876226744434715296342716473448344757677196560584801401587558097020717075619661669785227703582827330307628801511663715807341206242783498909010290725190870000993213246676758642141722398066343657662337682190013539038058351802335489786103788293596426611310629594383826022577455628596752174827719100383440335053332349516824120843443819944832840398566561741347043123390159215451828681055359596020095575584305789920476752163000672250829307484119795818772101827232009147934059707859212403546989835249349543892495004280967378463438014069451287080066238519279666597004802925203243585617127032850844952266879225213652182206634126439647111710544130387137284323573290394602273580166187951844401694416942431315056514578856567031715739589888391342368105819464609731027575712720859353498791059838916655939964095181517921432924377602288842871584051222576110208827725234320452108529703060386053712762065372654140770838744077450520775842859450290220261634054614199682763582406673520091128044864186461381394169293053250744076787488545632118745264907808537267274063488999093273409124848020443868542419626200080883313283755285994971902353386862512643240384145529218491967318037105884414193690747121356765143066028854178036305390073852828634741512755940674621436246992500073014123903276793438066170138600569270640209270140330616410506803562303766224469626351865047003231945101345538414071628161010057177019028722369597724892045278806489578242419646649399148939319525327622118155296654297349354394228398146230326527147200281927439239855195153530113473872655419636439217470659062865572296297245256815242942535249222775281697258880470151220999425936426900642600843247919219946174906884351903093811936805432052118837699653974296313955544057593855801415405851802156286263478481594847881817938644645509549576562474405915060561125820616757341130652957513302780951270733345430980433148471818905571868980575440283313619327215676863505456122596820972519919160453532983719664090946749249943989668017083047212407661168493101477228049042906478021799061755936432869754300319573262933656361165019808793252052925796816657868875095674177583096283308366649788550949886229961770705089973588305349402316043636875978393271775938782422734794988649501442072709597847644924454838480527344214584115180085309941719775237651052220282024208263380989130941786338455428777917636127298710269882927570029306189876743136300512540335584638354641104776664493460410275102370939519878285198820062643667082546137878067090385924257555571222137645876188758622934940636284277797545175191462713731142335534526392258008565088311931024360380246669610227342362643463791277386142141252398146621555570581128163690296077033735325996847043388283549936326644690468861185370101356229705694024285524686925633262155840417130400319785888564064512256438879969824543610955173447052777982512552641493027636462213722327455648189112596688150204923772236670849287961896334703770090380161808376887885169856447377798545227530590693559791851294266784402041717073172885737678471803796115516929574245229834898515849765712174301409809254858200651773253486190488787551559905222030536936883696755668235729206919743965509923444724267268271004784399432748013273868664334723663324072934504557558628669169284967334152010567743046397751794380856677977593710411882798430385648564858933302058988174926261141543536992013298425574873674042563116581195347996527153865931688143995501373729060059186779916990139970555058509497774152655684577948442872838141373418499738771736587301645845982700069636580799205521102331897774240466158744522409182112545640239314142552713189213390755653362797692246788951031467746614152412333062032817888385771260413966049722664655059457992982220645189229655621831526051521892633539838283257059383842398390611970943511724347209074754628772855249504072040411661734612228182313784144911286596774630566622643071229845890184086100856720635262480435446931908546431198258690434718616917993354877893252381793787083024881502873005104103042928949109612879858005006546156347731535364598863726514556732350484023231061026194639818730884103655461604664163767274385321861203972149608979462945396087063602219048300269195178806679123035038055612914310629990803469608910288763426915828059135286375671251505679942132805392996634782767267788261544702741437217233014334134655255992053133992040753571817770654136973069935686809721441984228010447639449713245707368451545209258764688201202651125438026632386209567585576937484228091164269602565358140487838219570954309374558736271928793197113335967202986599518511590461968760503583165943613572753341463995042812326993096501384062328693586339785335141280810565080124006040048807889981240608565101904139411146311635360880627642615237163478779809012812711060720880588434134013754756567932231758565985161488581284257784410440883378303900772191000563853193783133140145448285267644938886413882577278822003070324653678008275258563526365783271184187230300030133104116872397610309067411897757943103853201563451727430987301991401567896960501601127649121958344476243622019401167456020885103232464879654763066163186836798453740164400304977451394287002789401319344648275280291258323464125637940371671009905851454078474381796454742023349394736356501194198111772766092283412023456921260359307704465712574061753183203558443919083262792864499505099281041323124847577804090803683669576479801517100905974601600344136783210660813104979991076831823133206390637291371918775514394913131039506462369874427055900697474612940135109810291511634264274344398504566714871072452575437864499821851152799143166647910590849854440274923058492754002589250560364618858607799122672098268345586906435818133039052283796657928817964200721530810523777474475404756905659750553898008881743452932826765324169808756285976483587623463177311604230866603273444073616117367229636730821669067592010240381145472711513421522289124013513828495098787490006599342251776291687585864389259334363303719712869463521969667981836348711009782339872298667271807185136983122026184618217094701237868171762412286534565727745066961887491048556751690409065747664427699356744463261709428572403953083486579653788884005249735795147360295994232662112940470917074868701665003087774669222464722249949537439025143758669936109665119422873590768258085438662876554656303167929371577144605619541608119553224934007480246243118824609975171327718912893004253925319828868536299995157585711590762664045318770063951903036105990732726586855071829962858064781590884025849455292409280883201525235819713182081257738005021153314668916782072798569421372236593696638285608892115084609122413225449904160249099532732757743177280559262177006160523084975792540684666502303591521183324036508684353244705614064909218903704444908392664221724338179023228306798321134500155882015300838749321002749628119752234916800258685862131848491614553817785130879041179306975879672686585504890251917580028508386827627319929718475478218580588320983494214408257915665685542848498048872074793520070954738423170955635634261865117352402710110183702696761820106310910703536108985688175009988092384049507837203251644263605746401682710177504991673604080670774332590403213283359722727814453609390897558778393370642448995583008358926105404689758438384905551413149339981856383980916566661834330625408964420055019004004806309822263524337388524740980645082378426284643261055012130195298744490829274308738390909231138174364548774177440149150360638501193355442653397869752085135975527745252099437869709336880405730017488264759759273431336296121384450830915020675685612508401621315964628893751599660098388896722570966593770735232964254528080432647509487784070093572603134733535852768266691082528457424081459556803256155365092784376569079538456240977887645282222991911653101604851546457968969389090236162309963609867793889595547887934123918768848155651227112811458335815395551786355886130515892725861941613074882589372476959656141384028158122958788787933459009433771961002746612877234388994963956164819063571993664407872996801512025517481101829428122621815407618187951429392179858061086644703108467322123031525787658534801166198383448599923664741602723478863306739632789059931629836030059964435800396647211168385030742219134919537383263539815618120004893162527035495914686362433879237137181857323374127068638407750677797955832609181114441543246097189078044684492566108795874257700549635922057756239332777403578193526274310599996658483177500767544081198681681091781835914626718279100715638420138310447151296588998942629382419058158092648726892622615736544942208561802112829800948453308070969190717060437372544194399023707758302789892801788425658806188403845641580975001663200336591438004215428023230118788347537627411549100666847751034557570885390717759532011699873707937710176405699423505627012553623337600866175501868206488557428568811771711688992274204826356571634701213344197150058869528108505941994805748571029417605571117758151876410551436689657694223523547229426011959700966596253428054261185181539476650589559615794980843581929270385642356530857575547440266426048218024702552760119552254700980997874317958095555028811904478186519873251813969012062762703658543404418313430486749895953598738195001458850923061212038082498966618602232048153372614493675343706117918656780382654029416288275062009995637433940416696819273565246638669143097619572348804881012908650858740191844156327917758787795814765741903510582858478963635920606621565690549991900452582856941928191176270508687335738863947552908769082489250991254292272025608264247224805779518897664241459704544768994944200704201359417802756590189346338593833697824391956406602856413879348261651954467142580473801779300783384217715575018129095155267367734668853561466055241794355832126747718758487785711831806336183861442104720241543002773618715012128133459500246997516825547577259479401171973174838851490740365328424772566957690473396327947033919098311649026737057030669111227407472275542634745754795911928307762403604314336347167224033857686061925783793217289342119962216178157277502160811369399040710899841975522538837296151722056499492377453126256847674227895792900629083270693194857328692709194093192103397059341018366853187441609038987188859925926469634309445144321073333647933016776913243577122419561577180238920645174152202952536265132804777262764287513692357847189061749956734849506622304286264513311117172265673823260810855451500089944112626983000619138372588558850654241297452140603265794782860374113279438642540112540691766807943785078140491917713403423351976799963913843323477829411584010456774951057005807148154532433089513396284173591086112572236175751842216667911343037746950476431522139897476509778392495529151836302803439025848509459250268488471079010506250963200234788809100469331287738577367552286918635728899945696725179386188148354684469551564796986409298251987560872211751678394809624639122152590228101337223275642956475238477921874561447438834114145953565522597341296862462831843191973564273272206866677348649444757507417310094933776411319760545124290384017902026498851441942414006783525204831430723359131744596028637739567815611314063629694859758637548281396602354820416866276242143394100404876584515148444547816037937877136383640788250801539856426089459864645115396099779084827887172620797343066307680073670198288989030461355976521138378062535521793969035516218987292410298042195874980713951081950473576300304890820002902370984230736747914679092927943014462450463891629493472619306300980108084893596746013840708869519101230441987148348378325052697954766251906583197883110222278814566262860341766002641082029021934954672475255293675284266577002731241139223342362015968086841595399623711967520950701741352110699569541839653857434387958593351420077957192000261634906766643185817820593581883507802977527341053129758089915872125159306981542524979415167889276602305239064006827971229267338773114704497994288768409499284314810009428077149879497511609968927901052524922747194925845984582785185518034023660785133895419287382483864590184500493215656038352588604135976997333265381775120053364690964746919207847373578794628936539083001650054723661005835399563202208278389646017791400301075094267868072693593230988247538450640575765482018639974825069244447320022718749617077080214302070797968347383281662637829326780773237893594254812797074707549178569000022198806888334709953580729614310230430905800206814297720932428935375984182889973256886265345961641334294887669304519742963266704488648743557737903904332670484989110283930302742028038932792204749296705152810269964795502416521507950240425200058741673355306188093368507883964006493432552576829433491037008514613952828112340438619298912671930930043019220951319326049658673070429640146491812452532169530337395121601671444895877722846167506857732227354225739892221963945505449051929949902974609105033865727269602700674854265375345537636108555227962489137656902871048579242813801218468626251201204098252748639786965634385550793450716481534354093479984920890118386248231129967247953831464502883068924188564802145228367546498825998690643601380866732322074183881448435251499414622813058357224825390363066955083281152645703275275205589856790854764446363368856971528947445494585230166669565586280987424770761029944916616369664367221658209822593359037208122833809435359734457885505736265367189180868680826893202519417036236470874721260824177347062778743004614308375375270252067832281156711871239821297599189538661134719103614401073515300192168862403992864689409626392710569452831737815567411998781724029923332220553772217426676370377171409307790277935234424567328787075252313075823877083239612467428970692449871210408120645100607727192804272643814503847527008311866885177712338517835446108167257913234516553578876647943947594018985161328761864741501694020575084467126210865903250295160173981862773657502507782506970499978946935892718515977701807966950880744784290721208657681109713177612333076077560364375491038045626828184691645095143597094662409331042181841364018038555607312313635753312831282775767128586615573986552505241538248646771293687108887666340259951687392800161066337928411093160796459552096768294353590090122512602444695950131111072082503315610890968440601158106052501054332621370008164991983003028925843620408978553481377105326527339137102313432224787229121783397697764500738108510229791244890550091945673595804926059016927418722167147182505613433847998105584643416367008381304351319766416413340227576059769295046275052066816896161945799494094827595943126055505106148014115815480551625601869835722085930427489429215173400583706163295433507641529814590005344749495279589245530318052127017292579747200986811051721676815002174108389154676571591649922501676501006832746957629926151773566118523662236458505766834823901625737264539996478698908811230850171805762691990788481444868039746390373708985886046705735796176414768422371649360999195654739496362909380467932370434702904158508270374167451350913925610599989322002112675467026732694665093743537344284461473249495036620571687941665640459925623093887861224957093132967400790953121793720729699113274539198195346476697565724580558959454544392594776332380601474562306707564827410935501179451054704229722025751436134312874750803941756218782001012461546594114731198939232571331314922250202768565971227139576139616725368194113909206057509439847870960429975694585620129994489938446132778429012253852817446866780834744087602337946996707047176704013804605487973998171696292782684127478063881819740409446165318172120155867166214884820415416268802243073853360166163855921818774371080238056618257924084759591116275511346420264491979884500832657448154542634029955636219901670823411501945679457886903479572150109624219431499436421173085967811208841838156470511711665305037602632941496040092541982991339834550416543094606947576477810602899281916149709020451240498896564283286358031783923206373104100821025740832974905695311194013652307402442834265826135465971240737120867642306456903582138633911608643383168013643393196850277891085509273902794191904895505167623217579807400104175696054527929420773772764262665075873439418309369199308006402264397904081232684203953208461572143144032182236589286924535196111700560901214387647633994289524172036769378928725583734866524474383658875094413770201765554789972597931789943716410302614708801814489506402355573179408259113269151587321994421112778052653312668865587050194014915636627962915735193544520057647503104858510750036462174416718270176312128549998176542141941588646685513829252062405680720692897321132117633757322919610626033772236922089014292606275271472500767416527324930059895026161694869692887208605376701536183051060148701065130942502630891049386393981795158620629096709849026344842375470815893906143403691509452375412478125522639789889690125593621589011995816921608532161341149210674293148036571712654836610661297965401449683967308425946722563131852033666036411966527901299044116745002589125391730141865556908905281664074765679784221515584782826939988060500370509000122007942803823592895641543789218302544625110226058935722842531490766554777871347843284950229720794666852661896141702727003436795261996653100345085039417541912115176388248209197960426471649442516316278234207419607540259388657927914034616782574869898905804690290079802480231431505356980243272999634289600609886253210542702492419664322190783784831383207741232077749002837475573596217509410961310137650544657310865309313790124847318820266551755528777289654360149850304224343873511284112710550841540812189814735201168608801567103931164171425843843831506644693724266889431742060283695875593882425094154041596937996941292681064060949853727270399337359454577761426481264774266385499008471087325574854344562162451237257642566503704953569748657647344036269211309581795425000703893750297674577173253773995333619616664494257254698601727176537698609413458284961264617793009630344772358242425756398767096076312331040837081529447353519455447618305603627254776074434787310937162393683470118891002057248264325662125968773593321614207594563612830736475081866265614222186271500957492144268110293664919307035383220870435577712635740570670894097631566840166874233186794793132661048057102844774970273227275510521463467479611582980247842893286087595866296074886783076268994180385955501733726011562261528695145694089003108379530389118507994355302516884614980644340038697075941369753444662650691935630943058048750126591569855561447926352343750043883550622726144818782341567099894534457218957581270251443123151743880845636363714818885982161626063082868497001428100669396451558279529155177167399600964311108319549282739029488042688171500486196094953342192041696080147243368099319016880162913947434071685742306698580436589999374040155339178227883660264907469834763058488820445048537959397045958991303140883627895772958687557635330118303865154923575426519023970661871931753235266671793616391191969309718245815544946630992947035001104767848191205100622624152175127866735351610479363850377221306740590045505571303745934263341137317529622750455790826774684757730998493141980590497289400765119939174817617784280368196980330249371093440972923436551897599223026557171607035274396740781522337875143257301045890064885967204442666735899178308347560198990623408588031086352389770485543057195730211320721567173118522867481896674929951663871671663935823388354135730915795575022452882882292847261912230429149640291851582034604663316928052342114407057780005233927342255614106972136801536610453161984853031726715431353596168388626542626932287974855613791574246997427797518666665530691909845283273514669137613197437836143804449342906781532726862652522308061381129756391419795360318555049336580112013777747260391293927108034464027615875668140772717790877094971700341455848263815904274168455919942311740300494083322248254690302720016957767130297773692773401227107590058762302980471918888592261271456734294027545495822533795857462877083853121874375597668822278519914529198811264790406418243047345160927877336524933365206183908182544827937913343769222275849879745075265799328174214439484336504611770206118359994815547449023611075921093034020892434913752958775851912673166353204086222976992388160180913781177773968599029069692734802631302673716162716144815530486717597235911860500869814424777918839706856101155719297289792606712920106039926050267075287260216030014912648772614486857521005356230709762660719090648203961966841485586606496447737930955870853987597124779748444491945800157754054497620325259875934032769588199419501055817327675641443474615991401800438870290216208144394979961005710830675960744603551156722200598635175832272937817088861507976053892270823050455799033260564363570907156373398305962969886427937697880893198131109802881195293223379412998710867184168907185925065215181827956627390133422496048781991220337574077099645044714977518866758550137376915704030984250263285061539222752069746370709153308133672078148078043726520564184486567575577261600574564649565570273985275510452710130509271088822672384220499612075671723768677507412218196868915744302004656972111975750298031328385172462390764747152779215616290500270528608813821595143204851331229279744858128771804380454659656152554981804398276766728785775767102907218715702303364606139691696962122531625326409257276930794704155349184658035711808925613065325041198507924617451255044877186055110232289450382157910629447256934906438010244279943735611884212665659400961343553752123895539806023325159969537831923409658828371285352175092205519672941960281613487959094891690840026004779836632610559089820753120813467788918248327691425987397038277755906596358621645417904731186206428557520403953943167916806318282508211012911212886366420680327481242505590395254505648787428673096839954557133289377447862827631817970801589202617824376319928014304100576276594205506159458683751389520981193237420536258789386146756437154165598958429753298581443203994224626135002010086511798762292261384505849832194598342997785375307708477706336999148348411129614561076804040703606183120536171505703144818251565959907105293696583080927653556260619831318105743079612758467566853674313312824070707790435471222200826691458329059163828908670197611598827109582309324399919560827474889763134412518828506275018761237177957457167861367087685930656816095251848397152483897203463634672823584428513547338563027268134852908734710126416047211402805287717062268573332807776114689352613116895388362133929212893214005365101795577008328966915068489399244767567315762658204928643557536600389755001957560419462332787050016668992554813554203158388321073721184038413800221470311336687526127225876415844968318993284386710239165643146987965659084110588125012908996379115093843340764764333089587491556922782621111338938716725524019156092778669851777123156473437075075325629118489162381700702416797377697073003965868001447844368053158406196185308976992139719317546013377567868640827310101399042782828120380660480797780758576425021551065320400694069420180060860930056804793636416100013285799888093698003020941294743291203536537328512445190069607797881467026717643304069575685492901364052817300028782784824732456789252145702677535116498969604045592074403981921745634550529573790159037041799836814706890114455412559542932508282368692766706587723565552340697579311098922513877526318203170850684086431334879036656867454675942135240651533831703779000158862701960043429515088604197655967060668958839678164437048623004134239346206910998442420519462807081937565016200060252261346086181466771625910003491764393399997300479645356972540688726784606483989718952973732198079990025953544245869966826887510351812993464543418530108533852658878719426588751613797525375679255830593525700244691356691614782436005002168430598559489002052821475523830406283143784551244350671894084269440360035705644424251325809177208218695850009182818027950746144740272430297511264932569525688488467578690567470103826367474126661755943495686855002848535145069087630370465298527640802799781018410988877146234500234901535366833037827090579490350796418924381740362903271959073849092338903375783003327181305680378583859965981583996633824868048059354957341420751945314453631716510751741593180257175271780716750189403602510831933786132232421465982582128897723350120482471010865802043905765615201602258270354088885187438171874355937631289826246196469805148728231882055775317769132347168963705705612373770761604259481029263593060333223804668740589019785180098024470000051464392882095205772719993098853098136336747976132622704600718466333573578619090585709056348595154479486509250328804727220131559331218187200047395243185419191617233344308878792277568918486455334022278988765031941556062697413167523783031889046484839334192169688711462637969909052340909687568337816341038487239735390957724818757605082602352428808192364439959575252640027059276875690755232435791491811133953591717842937538497705986985835406415842228475090368354598747617341230758169111922571479185781788096230831201904357278088079942872201073124010105097869945001518656746115676906925212326785039584769914974246904330493350971416915853811334345726829205229351885712919957047853522997316082295382280685129423580547124284285705815855532754870238795375355174016737074754786091196409026895236761910141735813595913061906426627337399049264916633319043299340580334469436884930940076835353706866307889788210248493508576904977450497689716013628783851342778362098869916099682262146891771492312636001199841040871473028549434996148503956908234969733014829505267730290625903469692029209095056250996177195013249043031298568474999993083011115928085155698983149712806963009778558399980689385175327759460807781161165057363314537954089352778556696079468381926247145920030641929743088119851430028846151549844893282655001333268044067564559153274326579210152121050813008198148367754472278679050309295904850047103601733501490713645952074691693382520515480385220957492988409192379325313055293848088863516739585377417104665930186143941407394966354586645911382273688575576577906471733613493491067434576572842549561064442948867144582228210300055657811262456900695911577323117908869999481755988801961482534140472013952613356502251159104184250657546567170215645734242008870398802778318542464228933947590565975124586373207338888483725773948837166476321897989148966538048176135392669234927935367319459802905208953352644552593032421339214972933841951189444457622954389984370823903840731063705092504929420050805217037721817868067640141928875423445064810551809455251575982653260343791082599069105257334494326836715962232053180702258936249356434878969355172170198090641288335324592630512654902125155466237695865452878857643852332859020076691973893016768931926925889609929575543164243893807716082039899100491537752543934928089977772049550494065689266881044692082946954141514503103869688438776467172546446794230382911978963208522676018009619984450057408514619782865817941327819805765344089364919499541948374420797596996340281659060201437032416090629357886879201578515801277050224933125002707525726553805772191173161937570293263793149321114128972360958548733969852287488465351239952472130114564314449932088956470784019195560375315888875651503950384053316774037431163313740437996494816401855076092879998187721720661912575009104382522592705093782411664458276366200017613595018761037795862087855701262649406017045039215263151868925897577211060452774451304760961598307922924936944432118733460733486982737797176407592067612108501550952926623323780168349115689493734360200270046833061213265497550577854609697724576083529772894109850281524372009339648653585488722973906611437712113992686100535581740875752559887491282833868860300709714610957653383184541828786105159936993500891446072847544754322886535919126665231882078287444133013265929432289312014028574241489385801262448824448052825583388696203717827456177902845992393623511211359625991343622833239385850648625086918735822246866140629389314866632900277699382886276946983497959316084889526962278610002712726120121254546880295277362109871467360564739839396144524256526633052744614867639559389749323722641266638395171848808292239021571611213934684285809679817648961382815767332426410501884830594481264067850111004673532075889198671370957191155199206895302190877403369646698367175629957262827863052150627575324765152097051368253693853702455383903358984904833338666726788195847410008015498118628383880709341004869616844077016947386169038871571295160299925625916201927211749450667858623119054626345078534500210967446839722306789716071630808210809383489203360325965473568043031674942418102961419193661599296450759951312052379813436468437269082833141355669627963415342249352250605944198083137191350950804891914362098113581250233088440169428777493296324412314182704496303717334870788653615611921135866610465482669097449581969366486282715367516603467695533877123378996387568147231892464225802538530389126368687160690547717143361578173880971135496682317951937804306350136904161690707397409479889120308401504740363921505994550439370417037842308156082253352820606710196941274635233224043434763161044913685412895354828313941043484404725689932842814673714304168476897099156974201573943902119176117229188797688150238790034625111353030561964082663617740342059735146967781786838014900322379325211812253596370620616774158769644763195624349987019826413335123556984989117006470844569828970775017631658302259259057542326445451009062423992185555672441883096374815911156594417278051171833537780785203262406025679332889341120275585873389739042822957902158891920183462037342365423492579667660285900516492841778034321458686735198887461230992688136955847685532827459436948439905074401807013508089346216630143895420962154748787207167093659514259751684821878925997824561779131265686402132310228815170907968691545347408151067456836692510277576569759939245952683734100947234720806805304591555958786447717140021738067035872102872465221649940736694958839246556633453091825139934187724010242625752325473423550508830074244717866774828002095337389555263682898403922555141913849796134751500679785307974973685885265188083660731884389820170713473500878260507984628550401932289165394257294780261441967083831244814577967988352093970049182547099738680769024938746488100841780828861633904590305585752077771129431835435575309040913670078966627596800679634764481834693506821348931128302553672417909217173286021482491825003386126290525238093811719303532293068116732585461336006924323903118482301740336446600958821654780736016807899890596325262994493767606249690980158016862560568929154173388605641603313573510108901347705738802192804408013700360962502458271537044508259455551077128082019985430368502167662135522231023416102520016756423185240697678383380243756573544622128439622194361109311775207404457704737062525091290340503230893386796481396318821727608516088074613264892608786119933069677323936044103020723172054883555927410266356264660114867157284894415407249204194371378804274783565368996658033617738394388302080110080259404304167821821994454772608985909118334457663043340998964942192809065169797472647844769389240298756010555264138721309691910210112023720440448148035171146754307099271929870420108867450004160526265672279199971006214378076426655602441691647793537542008974428459711120803142052526812560886321199626579844487443895909973356993659891079416313452105443198884261039949997437356127795813374611112409803623496360997979693876139021633681887730808176480847102576103291594749494601587812858892030642648991706051392725658948882804806599025638857627197664425348157441889802483259915796556922436704662246625484905168024223307872937712249657953756582207548487819144230479479428258991024532480777809422913330707773554089668967372837519829916935550388603336835260820587739235583356071530732349827244105699720309214167635450905319341558420854020940585623977443733238050683313632728059287691123349603783379605111609185218544947835904946788068958270919609991024204680586937225132155324602995473325932077343622348547404312630630508643809543695389301003623343325151812854494080224950979955598242811455711077122021486653957585503685380234845285194530010797152748233864396382474672340414481060163357186397017737866885893547353327147762970747912779656993941790885134303504210787909433643301755073138509168847259887859800712749938974254948054420413309321762906645544082228449622525241464395477757870416562120211771922383760383562263639334887829846587292292809673348828931274047791860330651994942605054825140398312558867596884407459898763669041043448449577962349961529057368978663692669757040772224247661033723421049708287845062112494748358411065261505147512958016195116089700331637600908048600077586450831284614306145580523369690262359226481381984078790057194927454667741748754112826848098037040435052659921027938605622201180926630264920500710037353491016469233903590414881462162272603944448007379103138514665945194981274032780328193957982796591074103857729240121783746673283185786028908150214211245943151610723550358695540268150563271603719548520212158219922175849838265345339863190567668322695397664193199050676625284072776271082871313476890794584207476942693057798319085832758109093226518589656499828437593772465660939125587929230522943329212458637141416478275713044145461041680342436924764819523886567231389592975492972173045470463453871344106236952391865512321706985114747861419122935492743711152275755797628217714535547089484075815692864472381729840960312685445200831011750120842630103396981013489500857318618048119689245483822758798452124077627884483232984071878444905558496935107501476669703519171665919136831039018229308558771237981299968625999192137820616990490639472513595953463372523939323869247045576591786293258791157879554807995735874003303306905438933582842515196159331834531337013684235492191334722867266890039995991891859623917519175917366397063908977124724601323398598260749535835333849256695521386961129791962354289513384863957824973947480808046781486982597518968257275123321261873052586388110541606809056422484682175404511825411666488875017072575039713029285486047479777161886798059874982769237077797642204440488993203709472526920562556054107068693257404253436085078049214279460234338878065954291168220513024880866152275728805190834221382388949390566863253683592945437810278058474325624792926961685452936872804657299886248112858786989120342905456972482758186357038196353399728115353855163630475769637152930402874841768586427701277238888977982348548997483781901673413407219765138854957234506565146383280672682063390144673324958415507022813747466331492325744032911027903762142545300411014787922472506098570241427489578816718066401266985970162841835360238135086677064584361434241675518660075294267827448326403854759287163105339568506584582206072909874417953434401546690469250088121166123680177886147942593203630466090626954716424286766006522205475597727438223666707440780425363959313481630563683086521824539742306342734663087947953675255619206725333692490313369179670013900270058737960466757869419200275588447526070431925205923323557316656743339293794318617391805188475343724214998645170271332381949259324971399129306432968207065938359798834473824320891034338620133911170352830511910588472785463144407140146764694861843665699941789663364117454798689946955015079910462649113208828416355507897026930222681252903249875501430786387668776119953526414989471375255782298489885743983208231868684317506094241664353520991799790572140172980596327284179242067806608333115942408439157701166438149768945729907552965973750597539076319837720708300052404662388108602944594674808295127125335277495039228375775167326591223990171112856100482768216217775289406037288440078732787483593973536408899885900173375943497864558114201280078429003188139268524234383821996541546940165409922601173137030086650709996056635247699050935061742270858701425149942853299532721197319580761179609167911989818460626895610028058553848906394718049925150319600882964737176601181670904632473783344419014856251548953417403091172324381831135393073676354196188539515439190885024219144877398128514183447072361491200434734668614435849729202589412453521559954502790569517429542867698002385482048457554339180909218073954996809564061531146922999407881938546542483334598265376635867321536405580720056686733505162528781529361849167005110421583825204096328397249862139216911069928933482642581382225391312213892119807814064909480740180666365289371841448217278361519241488822506590237269042531123309308917206925410002112229115397914929270354136448261689775438897559237773659293648769675709610571658476991240945289283395214544628907409614851608855389453216862656839667476015360676462210558723109081317199675145616920086408342179617924843982656770947454375782700504065286584275408530912831015909401860658386360753800382409895838224218772889543055247812505572074500784098731276676889757231315955436661325076878413868264179232862976272300744313603631968305750882162799235925206239244771458195115580093867839582776472669374042501588080648027584039807295746917401995003349538141677847563608060612079572102405569174496476117859363008868164573573050240716647849877815830874710417352219002949407897063783534183028526946321634708494168089684687349538455572037629426603492258205315038437783029189931134659356273017972668017187730735756022011422458091388740461976172269498584164347724599891175503610574451230416444018392525437532420161059727086696318780416974737462671243472896013134995012330679221140630927538955626073860627234772396634286777563642681459262112507408694298793719996582297294388404104515394367096579328656690088887887204493741547481318442710984154812329215767818275117974815966632420212986241305269857968836274508053840502736661480501646354417123649769957282040733139203655972679912088237062074250357042814213662746307049201926584482872800996985883102191227672175490538960656695650277855236429798524916185044703429003104326783986892713375064388546161988542375048788224329940464569781194188675266308932484899694820176241136153514338985907875263610434461149744821283756701162338508144803560537781455185016104736661687720825770707976642351763263655780998203634148524882047961296271414810928382977409399651838584177785714879136359584822934305880517146758052685152129136798956408343125703718131157908904867780433601820645153345502863665235449180905986749535697234296286253957081359139710613769838483217727673323530300081037030003817295599463147347418213761090682660712248127489444708606119699440530162239697653008495520157638405406936750401876489731539317883178374940754614432180626691971479727502515531704486399706633831624173012846298673399690697198579066619905061437386389271896970962179817644745679434287628946802217962152635349306079309612993794607528679020024466025444421749022583760500024688078324403336109750552696933421050905804350701275102211764741270442586088331728504047428803806922248472721499137797679061037806526221520629111401628355222022030904120123138743692374266800793627182667693922801949828221209067407080583566929641761153861879299626811500605789307744648468546663145243737384343380959502824674218705257830285989454483060293250983216507039542866927020662929447719574347891839524798876430805507502869274284697878081827745141044106707106472403800100479943051647080069396407153256375396423343388599061994384600633168125488765982744936859292564634038249017138683036041559285170797635888128991418916458896127727837246531351657196074068932367613283882267819576667409748234778485525011698906132778537256602770211650105383113761785954821555560518864354884254912703625974552126652782074327394575288743142586626811389699784340671352251719446952100378719428706537573322496018010481693081130730065921572728634815934999782200551084658462747198142952156945322005323665222053956415761193911513354948346213538175877420042734247860030439332931094890621868873479052256369509174531665432838245562714859761578621131852729208557461759776341298691033025573171844047296888698605948942144554693206322257398479009884888918074062618955591782581098875069736649947486436093195573716558657544805547185593476645493777163369283799186420261316517549275551761841200320612173118493427636859279841918730259667352654486700296930319478605763460372125365415668378842125536732822411427061056146019408990974255280360729439955311432147511898893836933536965852801709411185266833274192717840076807104631731476469929421800458482162491991063848899022126990040787341886733053155094111385347259092828973363852273300075136023958146867398887502598378709481284086621002250596532769596549638411508375677326350790070998862504394846775011867043174216450884259099579717794529964160354856448931746952041938736695848044801316864219230052521808973363794675916186595282426327602383466848210269767418090316138567209517268299337426921641071290382633901805514346866536606096675971409509567166558056433524708871060213494979359335470056161152256168979279868850138106835176663579694447031337033926734118050609172453194399379235162118255523552314492654942387825877961841913249943530907876674429872461568665742339758309292821296009691400980488461629285650222126006991282728190200624793325095350805476539613400965433235033187187890240183564170698899370289381328860182748017536075211793286237180038006749248172291800136251201745226256156632011271819662478194156220545350940842846513003523084581738355313678534096438819488439993973054902027092201869211907245386169668999360956441140297376678291638068006848346842888549746526700823352274460391827378927636337525352174328792030332482804895020703751220755983400204492411580983379143785886134628890593423073039256020032246675027869858477021779859195712107198926330946002746591870155039058714411685403167556223380482565658708234461740115743972355660275725710393710981141460054545929455133420390837676649657258132674812627855738353946614030284327038886634471319161456506282540601622541361405706900795033861125254879729284726173910845709917883467553106183961659027679419671421136404711672573314746799546850521149440072530214799465364684796947340218768507131946117998003061296499486180320729347283727131222525033067386567798537226979884910919131000868053137951879718202609977981271803945452588743327257532856839296485476455867063863909847010786234994828481551052212492307269751282799294323079529043590083559712745475183589372373132767343942392406167690353545279626458143275031528459526826847151849972263142734801386337238836359407758154737240244981166648150697935349565353985021287496206328618054714265269893443417915830822151575641025373779391500321863345435657009603379319305223353767580091408537760730596134058336253380603391280592768678505288867327677212340878561761336758282222258777961396204454539591871695076618405716117269275931717667934743494805387292060691641309184776578080661456891092715470434853905349801702657262351958369219526724750098766215363125852852453637939508216251815448453657723563944260056613654430980984643958334988862244996347035340316166939951843074283397383775342159262671560506046702907891560015267456544691156574522353457085084143192264692404353956391004682838756609839280352201929114207235715850600828025752217414077676914642162420940400013950288060854935657424193709486366143628071043724005269776457485444406319465626305860631514538686441456276220881593712991039749737686240240648626328323477737655246453549411331761380192573767978448621613035350146260536165889152917880605285295056025727748957401835550595870329379008274641048479498144262416634587007691474948398937739391536966907860402698946029606626691480369601706456671017362317033201235788533423153037709443489090039262867099472822014300506130881088136330883691488203747345866129165104179725518143229424652151172465228994649063330477258348259365795263189663802009239254314850627461646643163625558695328654556768252558182628978277672767539805656639235592414246162610429272209729204144259450359082004283329627531992074768843783040801704436311777047043404082928172342440998710237588176847882556510646671273521444033001749442047629007400990691689238216649247557411375346992542755871862483667656418661332007214131117132587989931306527309806322441655264985100113112859614613863360788009438325047750117177659131063114712356905902170471693689855718640062190540267407205635722027390748680873652498816991266022850837683513057639211605928895272723910759022630092431991865184504070380145825978191127435648458014433289150630340495919132859662568424316356328237330633452707094170086814466035503278651231130817491564885353585256097873485767810168314968224982620350663613052580553785387299500848015076200620956640871384248378278220243299216686716108478048285235355379873931523871156590522040316641828342579336443541680604791660661938590671282060358193208571323600467906513568736452425795170254828828425293556966591957866962229212587062713347306632967803595719088483305690364515596661703765099978437035854758761703433938239548578169370241516947626345645618254075415522379474516684840221899034757019048063238670776301775799841123640820701461867875806545545863423350741508393792702844866356233766786884867237815350939989439522084462907993814310004652664272884686816458325014214501318883473769013513187922314737490292090720756616839357626131078223673611366206727068747623265652111274253642279539225887980649553026493973938904254667670678266402294326445844220592212839252567121454654834879374775078906887029186943069485090476006789315718569431367275080411150386044578566394808163184219047116129023287632308572666300743138256978240788770037653321051722533615012964959369929175127754350100879198025240789377335428883387091106485938757454115536285255957823601949607060162349270897799205353248966836872554633366543999778061161459419682134026470932574675853423865010336925556724824530910207237657517743989088505382511326336506123232384844986231734684098999797087528112731016426369988040954430743395109813594648522732862405589876396463331921616344746608742266391108651369562251410346967091959634189713958327174275107929286293738137160077068890733010277129706625424785675781024677409143537935250678052831345170952733151642004309230888496552788585404570662182066256628867591019033832971738309318239832935685880720539702757439877963993053699013232792000778158032109882479462722391265084114253105500261119355708778155328583728805651540258482176148466599115933873301681879335978138825260910819861846954201023711279224970164036298401834895275745486612935683863573200501709199655129182686289127898847297202471159190989893201233548346827476809090172935795869897290324536263721724019229409067918583806008470079156585514349068114739811403866622951622772285921667012712993656042240462361435518954886717554518712394901061868875534094877873939577087156956644761107469606304879924922299204390906936789819409090934642014728479907215729072364050505114980648593382082407492205886592214689335289825679512025626589354099251991266429372938334075588385260564693895133799756697600557724693730288612923022116565282745211240299827249218274039832895308202512758840683335499526654934236232552187196485373975736558108764518050752852937019165236513574572288545417375613288295251319560834870429437303562352653432386157023229287801996682682916343771473987953454404120585431209213135545941685711289215545927058091184303449926499740822052205301794093255627068964365893054515907116257840707725352656059504240152148603276436219607649455187472076853589673775267004173647861490502732828247563695787447062198567035278482681071734067629076696803046022129574168701247060649094086483069633409195327612779228687517739557806253751733967356501516458843888481092692015547917729645058145647413585776541579482990024004236134000696976662289413777338424024579227248016977404265764977522403010591930303311251723033797653371049086441210785852704677277822229247129728356490358599347560748972173983008072102200552503517651176022565315139623928131328127357461074855813050497434139279146090343523605912708778550366398965534744258930641167997532636065408949859074661280929349832416358244020908204969036213239512712167995897021400206169620447810272873459024106158899866869746323334627368755855169286459313544649908868137041531991501360728962874335114369412299581064107540015432377751268607479346933101931607528585172635678069011678913498963153974982044638537083232081222132882580043291345797027627389299779866242278702739168475161230266275637417683775096338714041828686575600036364135263093553228054117277846344580979150860253181620146747072783263041647547607330274580081036518090503569791586484274416679302699371882319479741221714963332167325966982166940213881795018602385316728282966086633501061201401755290160919727953551703661780237041660068663091345273752743519190369725917872354816856810635159347039259261559903879082427815512298279302159949766701730092302530709126840456753448346229478326199335896210149717757783622459947617833907238825991509847657264892373791144464746593094023615664718513184238562346815166943571341076731670114165798995748151069485124586712753807183501140700334069714889951682400574774949890151091091830790677380081251343868495275161060327758034639330335330676362814036986596229416591224441553181159964512618569427811797700467602117918368292158406398228283027968797133302274908778876769995993475093740369092628736633558536355246623920173309471937459469005765557591797724960645361439420932781510967600185951834669117131907287092993075350507755681727621958445244523485890187963820733709368379561881022269949704032246215464343345923622596447883066467102655082289804282662576537396325725089280878609343206173206135153435975387485504314654814801516167912621866243052274478895517992035174520284259154375179837240719530100988369784954874456910072458500332281765018323391861645053485894947673935223102247895659303372240408884394901983569055084585900986749520552570299166284294976308895089616418344943859270856456889560366477714979331172735727090192810816815800534683451751261200642423308794132535567708649436101026531693633005147883409066821130204731274762973066923162843698420956803061914147253606742394992086940326575605532472227494127644933580631186458729204687862355421135429709109963933555892534310292005386494600892060526623620661580436806159658094707578540272867788431732274062522927666435439241218554405000948333468675334531185209849678614004934744746144346641190363842278175931047374975387843734050855804707576819786504361591779041293562980711578735518911137700677840675290461720917342957171897568086223176103938531028317828776345229369200172598700826419767510457462914818444011968263188479512856782726341965077294245571870077140090576504842682548038481425866048880258157108452337139648600332493314753525634400606428849265862774120124552371220849059383040969306820456932213832330959637872506176649885186346062163607802175566128549939221469517216209090793342271933628839334175054626870205949610920718457876553389391350605144708539777132111585995191274818550963500292729774515096907251053068736409071052865752888121459725123099364606717730700330107583918827167086224004291633661128398519822302993096875253712909225120640950369557115675723764858680970261131006721423198747695394643728682290031506237995497374844287832497591583862286419791483048015734743387432678663638148860174937870028230257303924828349940808178602827943565419984818496242381459318036990594765403627633919089465152152652306198760971996617579860152701772709778758953796375180088411421701678719671913838282683188630044869024036501951864519569804483786868220034303405326796678196296568642471776810081219881142021261540241075690082313548550411047109839852018280803574195166234970986378638885155022786344598988943737027334549963808058668401439212996423167640939330477390972402066499828463836967301493526998680437293048635384897184208012540781929064221556195233267031628542749307293947007514679756019847181982957100413571564856663655612423792770399021471084743392542537495970234642983486541326778184159135865262295047942725067252679636881300638627300662814788956773486115502105024083648234668708180797736091938465593812506653758123039912906511418765338075523492262234695924280840948484482060681410610827956409979023759022932972783741450669644821501602437064823348979834997264390946102274719681551201786827781613083466246589454519127251130439287616039380349946372800258281021249180401259124990467903675670519728140509077575250756100126700450838148434936671846433703377945128934520274091445641843427211884448366811547329710222348101713031595582784486463343934095945127025130649628518347951617948650984313631116517627252704303925183939596470122816498483555783237187799769757136277502440519039405588530833648044963754834911901724317936723813313449735364912377832958275822115681855821824424578392795285479498740333942535264737642127932453558929977662494176671647455208036208456514219851399673832206637030349887542278912629497162481451375839507121893167855091193705202836750062452794766458759839379387799476879871621703412081439133123684984706855739640986973245323340612607073630472487788525427738586029452926284515850508261301882747547318320685664132313336896293527412671122766310095604684616057303032927949460550885771420051465658585043371345201586560550219907788392534442757435491721854376667723319009008465274358265299382079378994877334337964160374422575222348856726956305550647251083583710307924177856496948852437805609570644675424200720341884176664071351172893349678897246062437705229932352309684259425401019138735006846844341448932277681627897357681685797780459347016075544524413925258131863062526665413976720944088816892837683571104006393616143714772522864080204727031400625173471691679599801731796408552531679468817341371769056486760998848672209268888717080030285008644615980890546534744779150016229083627143275234725701928964247707913251389358119913139455853611400811439074050459368208720730094698512725784340502484911516564957758198916799293429596615436078299269351826627533004457592276616365489812717655267331595318429065331032136921958237130926026546773812989308354915012877466467818754546686206982059357926748169301286354788021133869977495481675097734782296135443168545562833236827272355290845667378933889678064371551230885550887624198421659533700337203029109103908799175603157636061480937449580911728033169439146851263520034747898530981333099268952098947424467077145383309715053782541020624511275404706602897919707981261870250992452018340146481611918362339193817376581186121353088463479362815363022613760493281385860132930837589400273726909235556655298508073490935723593477174628247931272112263842047027929462811915618187449668033378134657705687614580793077307133062080083893530028564258836783138051856461814460806867800122475500325401731819978299739371215451124494714620573520040961207252403665791119964063984801545078905823595907569112043820052900752297747299797520833892093764408720002984059959222389245634821705070468485378753175907586605441006411233557559986127762850787151987517771798393789522265956583813143998629730953048264377831551948798140679628338498282234846444103866768566789742247218006887224790187397962591798928363450469674468177380607884103834478773272791616094267782983156384193455791235607600037342944283869173057583556413987039757555091494428648645063799112197298769247136864220892138831527671427348048059055488725984255686195965124806241412984638739337604935419218121494328156470527101583483857152724878595778572172694718344619706415892605333663147396008971838530004222967033628978525051851485849396812102875945544145765174005177651997494621940728457081320161974802858136447012028424186509232079001378932561333169389336805293704462695529518504324446750869331269170485602400498846260311584291288242355914434172312843497778907244377699033428449704260076204210219310222236524390866952832581473979235334677840311091547640861371230465754314052221429855089573888740404515807707205776199581817174678664253982715993093124641598568851903368309561770720116702990718320173783872729621965804015087762419632247776215011291622680177348491683814376243627853361968516623337839776173865929227704489239950120481918980082068358107144460250023905614235458785610122813891344554309065317093564068577074866371336359213273881088166088607896776812994555376141283315434898779287060123836273040885790252411157050653717836215323014297120800855938090484274575833304675055680915984326997539248652823983135556953757528668332573940371659724569879128522406891157116285714339080386899930771483835001827353114520188941213749800322827946430626585591233750425617781498171726296197195675876815525795061349473808917719810966462595454633901503021960984216312595869952049009777588111306126922897609294143674926618614071950393202987560705908289638804989178443329574362736689553070832859343486657900875270770793929589474706772357569721316076950913921523866504363209067062583596395726608707814504261279019575223892030644641411430623823843269559733520767602542964658303393223876749279849001691752399752274795528479534380807191814276518729142747793883439167523743155109487689623329503093858684509339159426299448459570735192421334280109538334348500344818106745194409255291560735645951273956535601181068862607543020499069084445804636536655690013109833801368653422248363697401419075772877349627233260187011972646663947894686973723004649876546506111975184014500799920374025298663846403375862936041697009327998426652534826544389123924948217486838382917465832359939994443233831895090534350333566174240879482052952977111828257425002229733640898934531428579767266044756712456918969073830293176323843031508749007175712178492342169257545440195173002743009896714054484779089243091779929684724612736851436987165802697991083184051646710394728087458722854175272060424300849639092383067716758272029253779202790429508510381823180515430890876333803874654422543220653540754282329011646919409128753195410815847190132591817365005878839397459791058081708083511420832866885010947930882303971070001555422801644081357802593359603770340843148714239766142078421666525286200131034424748238102098713261873557930399296597471192317653806474976848240825163364346624444750309921240905273974565926664494168177244680669411176620195971897053821471516476105482924253482200585472585904038905720981159917753484089051090979534353016812667217815654860541178741687868726838432552227377177149569971897950746177676332708971453334798230551944440637522979940441012895820297277187524554587804967494592628247772009492483797471846808679603978830945877445979186389062197043136489623024512733000145969425371062381648639406878345194596904570609027336386820137181571963805079367145737641909772807307722614246135068206759774731603843479931058196058971246586911914081462666823263440330734120594915072192877648049682431801209136793452356074270317605955674704931688231747565893765794226727846235103840472879988444041155270268324484318757217944445524456777492457678992398155196137522609694520022927123416458846217993817993826085042942827541768896616158768006980990949996869002012130218866203260208948812189251311322504959103104467279235060512708130945691122213933033720440907355891530910358137224337766787421466669539860690918739472142494759820957618769188992230620606444130844979765209461121646800657857688189608149706583352553282720945866237831456758833711091626133065372609653372802019405045023878770588627167994698203293986362841628906084101506060898602060073942239243778291890037089462432717693767347477128522256477965728318895979737045204829570310326404107835942896002790482182466052864644320982818996269621895865767684047178644337629506431841722674803965232994616617471293102732454362835973308532065242231015112924741908222164177895082903249206357335171595803827502804291897874566286073766977848825299165780299658559900729669602265983113806784869631319077279273239349787869883037885383309823391340328164409314854267781744254330069761791414219620424167794455659735232947614885694693849819929710137552335132155292161956301083989665631780891272794846453242078262317409217492485057286613826540775286775586944367905188547418457559792793272446279276736928904940836037990823471897125185353949705639725354189884877196635789639103194814652615284045419480696692824604202937951217732959628114264777691746097313122821077856912890879549590752902247081275930352442389911792947854763306202465113939197590365677430958937204323652991621837383633460386504674249384603009448854018964693700685890276041772860018523941053902161538927668849020304256475419894161982255994725214719252901442212380637828278549447052028373151977787171284014603110165716769821541128907167494021382535174845184204235661048146335091810394686530287742946189585806538602330669235412327694670630455876313804051677150042569253263130860722966531043945730103132949503046499249929070223483507560688008973180340918331724613692269870215353412795958012665550924119162476873831917057467832551456898636927232316830752963428998054199661362122445253233065794318525325181913517208604899612107932360160072697001288815032180096084050115530912513585988372337878048005791720989312821954856908827136059367323661662463748040003183493135025353819866020258214564050695923356109454659895804601676929422685187532447237600284661293904155043227093652767411606644283879111384896693681685895202896989419795861938624531191027103792702044144481933252270250375985858572294653449257586921811626036637633891742197478083234833345433433197736342142655882903167534409288804124712286777677050672113310720416493705548107816506039093116622214171689655569936904707060198782311295802512041578285646873647912977088269396919401486775678622867507565243365266304150280935892276935331436221536331788212968185168214680979129922865459277536548177076119057881055966911341971747079891197998051720441012565374530001679798636868823477780909260327321786645172326200601098048397364334626344113340721268689483300929567299947284527273618901395723254877767765666943685027135232608263417416810460678544674005010327980687208803923668261669220109202017604228754214081023413472485479599980892157931303435934779994214339308844665302759060588317610939333148119062012366351673662915296692275159485130836585283618705067073902750369259168875582906590359250590449979051868615546507698662397960901167846077214543327721792676858392811408414535492508557891920696600221970788830273175685588400301090024764043611084617468667822032950690457824660794475608795991303758555995139675357385691681095620855802081964910045234406387313460945272980247893658064902239956487937144506671642889374203230209755617007084781406482854787458570770986134358011483254816429184600518612206870570861178011158460534720670212950616242253602687412588867846397113847116511612347690013607521211899621110516927160821013248321981300121507009246041715820591246277469666471356665025285953473234398065417038723424699336362006206280859710931930549059652258184275213127273995440402880880135377519041516879567730739160449821953105978923839782436296107699733562406195470869972123292292313985358200914939331214845934691850039750898958976544891213513936501990984987793727946515749167987069454518384033013329661708901289565209397370566457965234696321188969912168831267523526428800362986446959939338503901229142248815425716625228943621025382515005282731421650279895065838973260822743881926948425350945075208789730743672237785729890146920322672460678573298914271693138457756016728882082356636716324707608147894500528485005223208818819754635308381282915574286141511575013978714349350227317953591594351192948491833567013342527777464602415059996960676889598911576973686788842471903334418559523177904226164650118658568578063024362580561606784048723244580494058648488068708909461962935798418892470535692907275263883250365411482414672511320712225680895247016834754977845921843071900643645863589327437470487798200808790835242464977887959858011279750402523417248746674170184966367368203763993470954756458577981842550050009989037662300718100460690503620854640697046345978788070783103724954033101693233318774304916903756487052861018334522738950035651426412333614045928181929091546658529752828537895423069993987744041808017218339191126983944537192719048444814456036612945512625524912775303610863316795133331152675252843440402567871717118996177465357116735017041326189272556108319104351393039903960484136494980731560661480917290014427543488441427230916873679612995633468470064374871762947614818365282551056127344349172738547151510128196825293461980962391221383385493546694294019703715182851818475358162281292541818565442428527778824165046423152935281369011392297937914241484878648051076394251156686630004456929933534409479377890799666600566810033293093824114158495487542731958981308008841319756065491997863245136742277958422795203989304891598540822070483605952629511652360625194099662124249720215189360745705600195268680336356295851385318013799126938818219534135554069670321218499731578016927129869616674251909463569091258915288087292946720160706444676332329822221345621676803884066875951414997976588667260049135747347187842213636040764151226622561959233873414168332458506290551874113306851400236105730078174456119882784116045851211824362686518701731423381694432519621901120768438703043215444762391449216149845664711874164975892370014190255021845347586943124229088209795750669235760138555172802683080241156978963393740369389760405120125920787146609650875468738994730084658813590232989259426656613922935199349887828158808185339002360929980866176990615286435430871636116493486748233164018296969175166283059115368903855294315831486493097189432374347373068498699340820440322596942241550506003693350694640030873048103001240619334029759828808275312088953345805184450316651621297147714704354197939116669975580103279794204217028872938404847024767290491602162756503946957896446769966645641171009935631363267331603069459588202460672064794368494476922207135335147863356390805176401344989864281034384780310961926826802237601181908659246217610383781610706522643812856991362408579762647857782921080122678134089354426050406643025271287550560941441786273271395185154529591295215685742030628692063317029766779051426589922764125333355579571355872199204232552639240564247208974054618306883517020689512751364629330737570548154430121489191933339136501832196895991590036333144982654545853600349775683068586969599878754059293035825789150887486187448528984822053022080244921067590944213154600411733995597923842922248232067806307110102006485041169335726651238856353658950832358093178429266567711783226241127470729655147097458558318383188223285999554257456971053039758127191733690210895621961289511046998569025020210618731134625052522342845734436492059957954485001101797866032418173191988864713532071483690920321883001542884977593491071729793244327600416484863727022937622997988206063009247039561778720598107987373142904156786768229638163822381698948954854340705756160087461362189940412786296730981226945072721504414550469549597225602256211310029105152839603209666103418297437576361947661838955224485079452764997217811141603630501271634776648882354252101528646793675027489979294259172734623421217366063077364361591930160851244808071083987795359897180620629203408726144277345647539038741160716374587648921346464117155713052164023156823683048319174817545108371017503166235497397929375283818400533775890713922144933277672465456173218012647742864730776818445930986762737063924633861091023566509387521291013760238953778662533531331683229597198408758352347298019829325244548454919235274853985473607390906990889984381243968424935808129781791626249056306915274173153762974130704127723549802193688810830359118788179793620126556092695336237399397996665570003190361289480201922058452677366545725275331697615145487428644209348458469389643449131473410734555294946982760119318971518495828911571738950605189937845515624856298231163831543288950432022751096868776711248603391837377027499516160215034419788209179338887387320853856555651017410864372309986753026952941035722592109502114694988808300120580841089615889090209335085972152621154214404557135593574745876343391170113626264097406633919981949722989255931077865327647479632652998260045358839851780408330359177506002245002373552550457758168545728742036319094801718163423003253064972159411028570852256211825606525368212095609562010897212505204101926159774349742295407557334457286842155591038421578419588520203342245184097582500043145779436382814046617338465035391643063784514646218169457785370941992075861640173871381919450705717270050125026378699483622026991830339046232520198205948669433144758759909322507024378134611057284213272453689849415607093513686285932622925966349366351841344327664223130653698835977876758507082552949206267775823540728071668857586326902376926789550271305102527223334076464257669604091177653546614819704875466797775698859923162703521095952566456761660518923376605029346196107782210582637534209926201385724336530282548730791694675646732453326479759543851841516668258605785984023820001091268812107941532798815454271774326987924162118606983090915586692435933033451435860311535038769007782259683966347484351678798340578293049042477206616927412231270002525247532268474229086309811958747425996157905347934628331761385420394194801707075063931635330593009732653546330821406734804687581773187442935023052128674292911165054252714176127862561311277603763797250499010752862599067425671615244831641908920204556942275490243771167137929697280622316998883985222626265587799050411869478912094457067891506712977928046336339932675541519295677370931386651841412293438268242828915268814858689249203385065785089649402336583995250946766040014087832300350202198086442745984870894423842131405013424742510729260605263723360868390045797737050520624298672085467784266443943935449378728350636471433646115383614457883870711336318993425977591578614196206886246849907788762849827898199600935097249987480293844464112983432765762048944403340980528124445750629893783641675122207732435634844030964517892897193930598404986560975493110706093323905602076224200833875512980002529003820329472716677893075987756016969586526058270814526416881152257087589294420168487171912494776092408327718532144408625916918381516269437846134671572469794534993131657230562460572164929137765543289010347872172999759655952739109951484573314436107541341723303915267110189873316307743690186729354448395754621494128130803507932375069542938440439211523255639839013889941752527640760838177348790106307837476495182380262080103531333373751893009263542408955189518615958152816478616019420291033661388474488069230558841061339713774255160180289092389941903943341882518691357506588487042790565728516820130059128327201414850825269805859588059854539494626446443750260690371881953997497566109911762118610884606107227684269549070098382754422335403716899869632770404170130534979185989569363807425831421130438702096207737176389898444405633618014371854347280470395150702847676082294573484279930696816772418094450912901065626089885282468230823358244523103129950949651744419243325601760178330266219421778609629931915349746159164194212586208613652141052465731186855776439273512053825207782655687146592094030806656167286449372507457961834942923614018151094016247569695908418050071654447711971145751099297168507416848521151664975646440770986251719581167067522767005518680338158336663594737029645051421088411314307517370019294973777112839597152105234264898641854671930093351066580256198247319369281956914399897072654892733419032163131547284460833507050993155946675266972761585858155906671698550328961850550574562071542371868798643661997817437030757033448266340982408052977632171905831322905391554013661816873576116858622558916510156101033531605253095642785344606276576324131064637277510646118480799371649060355262827713088502541024564981424288489001760017205464597103220960905170386257855627547399492999405165613516142734008022475947310023457876717702361036342605489032550757870218654567011491503520884728838987607420491251552451131131851022479591991884246772708422353655461985160186120271465845081038675796267977571338138253403053082191962168393730807987354351600354395380317758871861638825406845105968699348283646793957492687564402674823227676831164193120562525315364517586735256305190641262411285748550224878377793444240361062256140361163290348725099701782573490135049027144218366705038808958089411322938403763218556342704749372175175248658941656511098594163987379307652841390751657371481088985908961301555366916085155572421376132402295129390747425934034773783925396628076958571517963195893036103499620807800165041375556864946828018634605796712584637517174945400709600022142832162404296647906167183598390959601957099564563571473300391832394256833541711920059979940362611180188395830658649854798252184372886455101867702756346069600382597932164272769521985440393858079407175170598676922790948544530909217859325911944886154867771657447811027084976016913022807850774221098127518459193317147015906757733366381292539820194322249374438748228996461073163017750030371489339816090018127061662346161603321853624788165072758030278926029750523829319887290162466452372033514081308881965777707236728057474591406185388943944426790498200903488711904150095064286334875985538637968984856650260535041410897488600433925715718664072065025400036934112264483103043504196381498433511281666136947786852350012932763150249999654817202450393093020462285427168135688378547106669536308302437664969327401162242411632219668137667969055473034842969319249419660867971526504881449907344449373933812209779037942038637035371326638926258538277587558654138025907017532281693133105333384844818611634865195381323233189727264116437041955496734256779257998820000572874506961629391660952305545191373260955914189757883161243651944358266769114589854346843056319883233321285295049089570031048528172476503419633016532860206052188641603944590813216794124657247828399455754715802608371986632313069640843719444879642552211858992731920263767571925443797419617532976219057944678516139245348136589046958400541885848268953023079480525458649606148330234337364988735015933598662194044366722033005664831697365761455969910350143897596374430598578120988245704586273725158239424269824784193774029773867316127264304853664254932591509040281670508329594836922327196105622422415821395057588260369060468437129263693634984227073818210306604269445677254213752864029425999189361129421045006372512680872640256396761334424384189773447447477313509479447369880708020098486992289959825290908697225582795672760405816475634453982000545429815029731958795657734233295545417600367487758717215204272302346429170357261855674454480073189033007080160679993848968594059477836371458853028393789596416937422695073957098026804492021299295571704531082383172140544396855758640186027639095983701886223384396899894852100872324298863812898008100312819760482359715075967122930762432242783316718119031739636308610808478263224766502834169906011528335184779633338706034297018470866256070744840208846013266535714850506832125140792506992256119823089289052500679382200654893733536039503300197263536653072961870132224322634554796491030291233435148640272029716184153053443214349210141224792647872824805663708453927479205350018225403836793266411053185938567231046094122917811859376937545024883861990576130504815684145414955319532893977941871643089292652267079612217637543480861231900519167219976718004990660528350187729703663154989181572591142386653724202672782450928728460718232257738647654232444571806285770876915784001757848043176869712933225060219332282855147723887757734631006840302545684626932953625036856447158814447359949307776208487497170262268691999568207344724113875244775290200275198978460646533065890699579646401776214632896740674068081030290019449679228816663981066351278683249780470724785414795978563136954175433217375328735427728722827680124646380708793397127100211019966742049829705671176342196151024614523384614987689460385508927781450413052783294515804944156281995315601632689929544615636403381157666288803559064680420124874387026428581533891137852093462220749814512463753748381574661165683344011654392935986833207418725020503657196072522688019414243720593986410296939830661447173476668786257398081026088864963720680639063807335272711958017735301956497112087429490654070851077299701713051503682388461937039586464945433133244810091417553745310460192962074907493809074269665471181391642650942734046977121503614276550769388442943082170694545268987816607954118197530472104262535246029859365293978202670222614268787201126868518516750805692003558175852743148909302837138378343351778213603881304863080456737296680911257801741214440594618256546168143102143031959605491545280779867505371473052004320516291143530549599284944834386682540761976166882278235979745557895924004871681312588295884602541034820376837500736579979165407062735633291971207162304176559864155392195588164239528729644268212526576491621176169094872072900429548976450679767048301727301163009119732005503836242502789729262988900074198435695008411689755920336424957806771054240400909944908387407846184605772331924515538236321187444700900605862712149164899991021509933261919772771799994711803986588887561276477648025149066906495015275428185754891802489217868845812125604687453262410710858185437552916575985900816681814492915742089689777427794706737685891380486946446137527678635033746909136579248926087568088731557719879974696056805249542765063696595216594452414820146205501850598856530602116306699303586193296120453058074388314082092533448455288113697904195734479447321218453833319150814055678296031701218459360404105728763509165280523057214098152308794952971651302076381384005058658261883899484973358047840488181246465006575639647760637834820396594466857034101637070043720812478473118355093742439900799461112283044111082840631814349059631876887314940087060503382391938934396787341836600263925766989022045249991719211391021662989264282102951124041449600931144011113786886763396996069952127670628608899628191828773788742695343026778240238541586578171144531675755338973160148245142983880704466177119872899139863181292360206990876811818790638189100484822655484026042475023349231578817014307980712604238099605532369410505045253371391607628743123525542525920947083411337606386507549511631349925250016177085242776436780356498866839490937220154986921643738467070239745224707953602533798883228710490718990603169462663425026371716526165857231365455978297965550261601896835959085206323051841997228343967030985907369707865265606579094813706889277426004807423770521520938346943963023624069931790665770441398412437884159753736623013176426231989643783188109286587304372263817205854334897935285057361848298718019589447615767761882351014763123077434783604928096885571713785241589320057494158580992585209245246336044655033961190411639544366681762942569139419493513248793696860781657642288027934740057994982061054234029692803862013132459046458229104350477007337399370709041226000057499639846574103830104441733338923178437825684037141417030615607758419374337650055536325279722026486748558256535404224651469755011123710337786032369966129380333908369399951069261010909455329576877099951509054235373885449979059710347608101129956425035423699143666421769409905532545487587992820721143503396493797878862539913037497440245340280063683194258137305925372169813219035102983510689064628167559527855177497352595269309173731353459003013877771428183791950501250703806371015140467020091822423134876518368208870634751741531275522258219191052254297574304718728440802151284407411244682345697369477924222644126036594385063819616518201292829200503742426224670214168422668760158436292820878756700056616388420781808577105143818278192534533903219699725477225974637294655820056982826606817603193803645320044600431354468573225707072810854210471489389706574987277023505523199204942082899423582592051216903259285470502428049350254988055906108196435824919782590068781140608315274524861787621664917392826775437508626743169343512258889531306628666309624834610126377466052456112361079976971164368167324880645160334771510327697191297190453196665786753222966857985575823008959893472578487850077588181753033992800768602681739025633378432602497919744822008347546638453131581870207572274891968854169310301615420805916287403835066405241124477864406395374779329233195067629411382425696815609978063773648238483572477586517017029854984423084944270829336804649870701139735865327559715837329895991781720010555068099147557390747750761935303353624847519253287302768558873690635887081934573063069058884850119055625752667210361006697100455337816422681273273277254872236485741278671281168499553177234769974854892211802732434595484605822061149776105885891060573004806947810976132170320263805187072326095297109662192863916005430464360608903614486866214919352591228961679139888741528015883501688985409981335528120396303895768430465527048198649511843578373500980826509830108896262825665889040246272678023608682139483236463109855175416587344753551275435260710294015956645102464041689782163267891486111888680537232180691725781749819752597506143192317474206094877738270956257100374944910475039700623082150344973464749671694107828681168035647978543746578511982636971389806982412677504105275537966839832834428515871087944959691349058010730423172294911270627354115106866744750116794738820705852963844812823309887873849042398647293220259526789918808350484603197925916819832680307805385291546023266409014631355079491116100523372771227721334990593274870218510739349561700371452009075700724338157303204924032975795656697081966358286656171217915247325020651272159655615439929543761540076663851237625240479135382007529492222657122629456577935891556546690026933353392266900327704653801981430941989550429663590929056908090213796636380686732271320410366925483909955636237817294366848296089364621295099864592455278146060537934392772558690236833184362565948817668719873591104439098700622096963777865231690820249663000526085588650956943986124100531346212814453411123701974404974407874189755373827701676430182724238429673375824042326007686085895111959665739362827415180390832533895633545680676737990318223667913663266506235425938064078031251060375526854703679844552498541140151990730916404129827397106879107566221556193581561970562912138176831557013178369272231150581737937430895734960573012490544611800389289306692278857186430266265905296832594573278746529754315165995632023505302013624423256582925020297766927115900695844913373932798022795650485054386580733746752585217015346871290894754215383710741893909100246047337575244759805234543998507320123217567881597277585720817670124186911540396715042006756699376078188611321256382674735379236631308324475452220162806759007895783135342153820884251684429100542926364039223647632112881385575957692136450075186019326566053051321866829996690968318973665554725337616451004715186697051881691842205207918167118521382536836704548422944903306929404704853612571813376138750045005440036233245396145089293977539697575734545056758259191095139400515058391486819266259887115125430902929355655883743855191315641974778107933482091706988111212498521597037927595721845984828306298123467147934164537690032419795933608857671878220032190382637403818130838341313775080131693234929774405216176449753073435094191232494197876722433699295692069814842042736090583803270370188626275125125795492677605522051935266377403729232237219389665037302193161456757306074274103624584095064627021813207061935508664646204759654179443355203646144370227739224565027783541316513175704459632545520207905922521205102636849935234784415154622465495942026028232126830102664500743650137011841420649688895591452473771088992431275949873899906195393180487398530135457960341683925451380064118778225305089448135459372531723232623890027423636500138371297394182837957404091848109292999185936896758848045974594610651317750445516412451171947479016513545145726430713012457292899526109226334193411100682856794357809966183730971733575548941055520604705033137928501392143350057760812120210729459536453389199827214196238151310961348986549127909928841587353143139580325847013504148362631910565413291751439250465160570760199561511012244006837296357117671357038538128626569493604567330175584331500038623334791872684332898128099877930549908699668118601445375771080176550909601502346856971472021848052296721126160336869069739328260209036659892368753964167063301280246249833721617133254698371934349812348972540670249264086701501952874092574392842261867661748254542560241068638136841545120805358726146371953592371027779366279761909705913124094175356107985196429893733361906879319722861911847580004474192162748493017020002202613805931927628483906292706916549013822137895247537254919917830021307255680885854432879637473773328737559060425305396644116595372794303203338900524920995819530012567726805609548232750779127357333943114817824560091996244218936793288935062561000073296180118927834232833976907504994925072886880800465651624937788453654548694761109303663530369996073280934859333181620978477254081893291869514411471621105597402206187884598616625822717076959008562429188279657145432633755568277914196089330556491144555065892795938327988004034578547331465581404804384433692190359049195837494575662817876751059609482285343418604145029629525042312979172037347678087536959972993832447244850459292019458173695623245544993010066916220797864925324902945454857433253306491742328468128896506210875332253401863249241959451946236371219094927870294914582117407913995085769607403672191114608375051749839910236705344692193701853728756314541123587282755809973076587783636744139756799328601103728837837747899146495637685481688699283917001317753576828702239261504958382681306354721511437939672579928576981787895194624221434103527789885882159030661254079634956398517872605796096964846462542847275273830975210000490792293475872495447209596641496963388738173972221088425031841914676509595808507908876702273017789474732574800989077585924362071685849952777783852029095548194252181084048712820484963112683408902537832747327839870006379796235889349962917382487831259974145320974004015525823433523689560847567579924058931336806274843429899823984730323452583900116512410641601510350728754565401478796370485247460389235828274830696559640368546445457513020579734430240613115728847332787458440489909180492926067888842012262676652562671772298392404711516152257300454375937069409748594161339143078556142982577349728798045462537001961736178537514625090928566316364619088773829886875522982624407461948008388899024639437126128197305645540427852717341197612051039189432068143544467102038635674630354005050050990877886844632076945970304078592930215122952492461600658005651438981863386313742026866895282210363738423127383299150888230813981005631958794247543757870549928498362418901729563723819396551614296510107373302362775563500148246781714698336337042078927009206066690376214823947549424451520382843267169592984475146827026788093042142611661929577068120368034588923885247206152945059014000046367162451569334770685166542703381658682705026915854536136572469333802044933433035242915406757812064919768279535928366408678145038922015578241268097933038790486510493263451081032670003001591101770308867623022873464251863901882049296715254429418064840513015431303046544448937324103189767723944544428210549587609890922602960551682854595206561536430473952362008751931824581675207672164040065929105124686297714788593566712148055388760322613567070508164667453676835848222447343748147912027382282588612798484364768683821048956029039730620731981889212766642982876583542223452147818139834003259740423541731576485693219073054686697758491392786958090098884419525442714639527029250940611279265245581270026593202130225428220100288755865832392599950173080881931615496589696680785836932137310927709814575499324793580391908926609531277968533729306541433846729745216610289865431453728846372321065340250550452990486398773246286904067588144154974376405050235771884180038481047267993098944741036927953096743783866550027398776724872494105766288232436664240531844146722689000523542160382168416586022013808613165154581539135847065302793956295033678429886354711854326176163290826868442805380268173794762990276101863517107994782790763697537052141615694448215435518996008301673702543531370613818918487229932939307580106185359237660711562271281591232047481246264505034580864485606152202296599067549175450977939818202765704429753113637244396130236970601000402320496612944105684217259814039756823801365472749165004777670031845798455729980709698430684921125914905913268299544561484687919925723948470681028898742966209303982318323781430272902202961794074638867738468474120547042043231987045854179159213813899565160702808923631816606465747777669039527741572082496507612839336288409602595948294529961874932518320120620012037227019141205433809031156448631110549925094625987896467857738305398948921115410736764047311948048964487296295818000104109438464631074359016379516566602843217219781458388080366276454745737662292439643642200240251532082652784303181938875016785365341209346723399563559899143314896140902368781396321064264593619268701532905674391106945541884217718488680192151400727238170025765810101786526120579495494867886386721517207087605593830628478692960077675283499387414873683596583506849409427629644194721071209783688051823746529582900117151855758290065207558987775913490090790846396632894020859737847866251127212391996597518832586655575239832282989184418738112919796206176573988093529709545898096524413628383538730202429642709125370010936851982832566372582116080536775248168893267535910600738872113504544164611070858385529591839949826734524991918972019176454501854799024032051133251056794068859535961664206784274323810145136256078530003687956727492847764147804372174067803967418990101528231849182046297619984020479881568832657941800474272840703351519394702784137741819921353485544374881374625804584751131036974182152641771462635310492249642703859984609477078386251460168811712359321249262655762186449764571636466359639766294497640637953549886550272897333494430233721850400414793538154780079092027080086390344149347686988433356221134159592710679021632088900866324478873501586307722660255933555050217509461595082723840407107233623530101621253113555443787938788594029157532595299729877244904853680724244497375402843235340458745882161963992882878661063762274633141092541279660240022141433430561886100412889117676540602255025004154260910875667655886214678976227934331977733636833457654355522896233042427075785196667600129896655838808340084844864431450246052093735167722148543851478851531284148291507004955512602432156065223602014168993644864106585698501689725013484962297444443045057043009079547924840145705208151283188175946202720665885835869196942005137069328863124744777104670621289034905042332884361477597204340825731799844655677885707214003849728921990069949459478816798182551513260730958561388788131373961443929019282690132235223717660063177494600846958503735422226450127483460476697188517892289934911619109427128249650668294324653271233319555893142324445021987383822312072255044639796561784339845816530528667717398006274472239829269500059407226306631573403222811577425209101872085324523617486350627255524819263925949355422466880952911073150921002955333734197148399969000544596846666904658175774451071415090888755468852720137783418297985953246727882435522283921008327990223326810421708242374336070398797681218515428127561730696203719290458951168294762989277250746524247002222623338542916426690844291536819363562091369972239419246467018917693500139420765587217592379282272728493461884067114507798034235254152214783079122558783453555554067183657108442435761981523460946584238045129562462119524997530557641304167477623238916222316671340952479448170442746264063724396445980063613046536699724330876157119727446333126399921003787889974734117830259721110451217000343845529319780654225136441021788874420973809585860464260657278781199634060575949601579338887398289073804111228509851020478380276887219624144339753980108967928360889727340600135036714255960899166492597404583394947446098532845868012736530878038820042662602846380351517141898148933603411674468181544465184168039438461791945609563164478276108518712834049558805896497527925950058408324419161640879896150836433316997579540745412304578718712050187515665176655297610651093019754827232725014233952062294002199553919068964601648107615710911873946727269331060290525331687956535303309691584328199623571517307037726936073147545271197860704590521520535300561208555921829065526337252873471566738710578894831737994075356789489777938101178317006477195188397602467626550583857809100877972371999699391072605030022822845147456295121040881310462583321987787954164136020085696771760919037399069837277197798215793526288177452080744763160042298039132235283754293902240785785729156708505364666112065816496504674535256706756435023514596808937645301628074862546514365373700871571479303491908130457743445629266953046008422169080257066353138370760687321296758528370612293045541957593009713059857544945154364803434885663007778200788300190234911832241651400259918353064019534697206549422640852166913040903779291239462008003056100325487129884780369605478892131492430997378020692565233104446988506308736339851371448806009552719503830252676536093816105706430813507856696366863708332006883885540291053065598083160985076140590775462870441075075570825509427423627580296922209479266210575238761105219268556777298086046385803285527711268383111913196439205777515145360309407526595073419089521993799092865266288802759528103407496629191013581040988013628576404155226345107773382473765720295422689462342636652447878047648389111863916877659912351650330716709952141889207007487836533230761919603814635332063416874153573524998256666046218099496381311842167366739746129978049565669372619603491231530547742061619242777721596912159126449261808776235177331043853680940889402467339349355248975825070058396513890505461450002702892731131116960233538474922533989592848065012176667699261984553272395467379997966686429224684883949242376941604994181986936142820079157065362295846281190932925136123711878651441230830141809177550727660675647349005208802393630409583833821522905119041243109276225906513874270085716325760357938718237339652077979561474214296300807602425623931660588730334995916280200315945474351292550384259563259235549109247156352384804002276599946727216878472053628585727481602569652787500012040224487103882332042106260607361878701851554976116541070543241859679727481962206925744323654551829488583147613767179100706969363366576313299840683183727950865827916074669132813020618207922580472449558351949185951871817471177923542169790085808006791959655208451230214562253083840788186928768275750750116560092180336162023334765853089420736778949614599331496032985958683870045927211318677187118108740180832442387988851905273367661868681328508212105965567126465478322500836340257355326400383342334929194716356293829063579462347372184420887277496171658285977628190552121172627858378879065990010186713048622481871203782022449178449650198908108285880520426356102756253879546988709188082876251024388947348986484479892837469508462108834957885535804862388485726289818765813130935638101953577580982747998393521284863540868811554917397908046434336915359642271433040419675266407619365346579509008827647162967520518384194540581794547477135333262492516333855472291596333728311837494649395588122034977895246029684264952919933099594613195006277921640435073414760883306754826875468346055106843707676833129998795539429304551434538830768485350220380580840021942370062287680077531833530969615241188191175709572994736252657125557554659476428602870810229865638539919871288263302219194356863036647652594101609352199565006346220644267604623025751075161441798587145255150321583896902018783473192370447576265180783482494603314947134078247657973817713432816604036817773903198534899258278463349646298750642770977958354260820043897390644879682255110536201112886346250626657757040574149053671705177293362844108138848770410993558863946980380382391206481946359220667281313116369073846964700685299808097171948676309500139299853012730717735846491692104676805710209172818728134765416614163860364026163870306922553393210127819961226887351986391069529636141114870724714530427206823733710548160181607714720386562894642010443344147335087017763959600444458112063064009831989284604561696324060356101086770821312677785061861748939440508877965007304967301169474007951135150587875889627743511356074683026274932321752832129660024809946629201148739917389578947809284645216043054897432912180154485138461046307919275169571196351980094881100549066402740813908911991656629399987602465979947539759176162205573448536875652069405865325944524446243987256735157857685570686540016407733426147949272341947453883137781024942644519413852003894802802572822086769178411728231207424991362200009356083209013147767257478073378277345628802393321105710118370490613725117998416698755653672407071665204080063358847621310379581291754133219927934585341200962802635174215907825728084958976649910254042486076489853591428883222706279322847860810724146725202711086165083231367338035009431336880517534318398920647076402718264782458855952629720095990841213956169975623740174378018927787220533661771245073050171712244848838316607770069990232610252700962695241854233999612052228068704664016955853531263486439609383278478014259023474302303723501338006358263574622448204601101637019533173787364578108761239969535698935735194673160322955079912415716578917246296680222421419545597454016080981509200006394327312575940816695164348114866593058967209880890017558500267370024612630487190330945296072544382838124914309069625778990523741480796818327693652927410914605704240075330456645644784878024557042112387289997717333318790343218074923635540400140564406293527252480983409447815399220041080901651925473794009472220040855680262263620999640527257562775310261935234507581250196052280441914122878116805356347534308417646389560242673038800382417617923846448554405904994259698208404612896337291793138345771434136994671789527039730045471175903045239098670242860986223521287637323871175202012105794772849841171340123219809675652966603575667392083969667803473496560707808450039687696654111179122413561257679068774084847515924546846131347417183494249833350280566360139692358490190346973440408190337406590694975399259872304296659626862164169016175655822257064653311079517525205841707819384984376681984963535228190573033184924066035997756696957423127623512491872909914650959797008940362503025732732028877921492552998489014481743621634901100796366041391560879948733629533074203116347794140790001074068798192493690526876002875728183146322687786093742506042517032066098273729717197523929276022530666116290198472417807492531319273368229474679153876815549059112863957764405362378784405761922037299267407647582234092962057122093425927039438092301181721745918935350843934156096399939330848515219539828408075819417975931659199549214562738555973332809284892687507647674028277187160085191225651256704276100557286563246504660573047686130306962205757766383005490591663128605905084883758584688343784839762028045095052798230227242736224304669883906190679863919765270825641045129939969357677746860548990270976365344039900705822572199146680583159775456116262308552735624648145667007258835736019346005807366838481035666570361031938221506434699237611544424188675750839005558745952055672518638702739033792249445987832424007615619669896516237245551472093956254431590911994596834512590767830243813817683656847659732715121771058609252970624181061245389863116489871297119911514713187628700971602132275978158495321899115428746620027570035854082772398758986000320304973647712846411362072190169522318210441362840346354131182259446879951811798121657946573066485386369132060893644074069731376773214008572123512499679524295672620341607412616102160998064819872421213852098344516971367876487427839717451712393344962536511851197119342409634613484197408297817205986560265954772581433534620856987679855831483802162482797672468165391364931747471528089513729565236827834383401111760325350562406477442206644382016835026810776385734434733855570604241643238432578306382387717941639036599172365880714287428764069569005266781286697691698186185744481203102935750406414061640024973069021147283327496389732795191496151861873830567686303507863446082254155427076306708602914905839832211227305635960855947901728182492836575719341687877561737797320038543891496672631024956114791447060030954820063646895297620800392939793821178557709702503118249147000363892422151395376122863526081954792641342197824095887711257102997812348309626923346532021430503968165578610770487819120255419539233584598056180812538478638029360360507331661723652690384393943843673495934329599824446692148166997386088561212492089308312224008742996954592607557001535569917678895180786807650376896186476547219505997056661112814325161560928360840227732780141785073653343023091418410315349062825377592064995889666379712759329949642241633005573798609077160421014301508837535100558967228533703275226783667551879437456812679795109501195179519152587001680110130291514019754688126194003963574103900423352543511056375850005797964580115114933297841458575574069680335953890873341697710797583829279004569009196791622366053215031337759077260831918343940340365860524899970588905592275976010998890554198266633390992445282357203535642794056503629439235437458185364222157300635841462074258602571774597204140381051154979160503449089651256253032408500427586642702851865952052286437107887296593276690139248583516914422762017288789121024911232962491973220891818290569102679680192864058136500952789082237381178427972288360627708151479961598344609796235939867619952278784467633799278715938273311219699676883053943451492681689445308195388230576278930530898803956676438924930206621358590236239098701430245930885201418652755654478520513214336070790359801361398594527942148294919861291612584079795802924097360653930737819280625003907751504130356710329568893480842545776830718042025361375971299389239491209847249759094289131619493279749786347376114231687325618348868030867740086896362070045191670874577650094975106309094392465852521660168055426363837801851101369467071834880229596662194131087456640677085437115719283363363622260693405975795231232811966252424664450985257423847111513878878573798012577082165053023563606264343858836501258316605967623634219891661921306031818212214748728509359671666204888155262136032891981098143308921159127355467170901517938427719335290966007906543584990334593290640000895274092652834628681970939222141993745058007696255596458446279955096907343719115584619441384299401663924689673213140896629594467083116218932643627979296506766092824875158098917256679417157633350386573277168900121395721038068309785852082794632719965925874783051120883016895053238854223972337989371410876095445869323341548972667681675041836371984570041562306014435051417632980964027730469728871669908964144153794629104248003804290294926198261269878739827120264631450413321479763484656122845890830631699017874620640724438407869449289216191345433529505292037149246193487735756282600899801132959214773065469728742889884242430242296102331783195880353737588160023713983425762311780842654827607976308633130024896491140584492272053222175568480866158627642759584516089730361591200756353545600016571443998878913524840577426959164368635360275902091470249597811566662552357082058624574229667322660867838362786538826309677719006229977349046299425646181541669910846595290959702170705978877238129152912049179210632343462425337335588737194419870210258590794099083690440611197756072684496902772592836810017837623975872463437730064016911052225390209531142168477520571689476474925824743576666198565769790037759469878140865808899016735644551498543504687162217421456763760331797515477371165619506963202283340442804240689702657504787662748732070024341152603827404418841820289283756250698734548271421231196623917697395765386360478271087980240750276036834653196806124719235801205541538313389146789427796804903835273639624857377479166612775720066008628783701556808286665834455154942312561803461612488170252235465631377045848038083489587769501990384097612903469274683695640213605651330339647676662059586223133048923692251144338539488838614201315764045357594693661842238489303705706606112265195346591584443834393092032854992955845659222727211934044204032920801080200935829632390346667873982321490467512706049595536866215300193457439205981900783354454613615090106222852447047895376904962999212185730511802891031074978224380635392306439263828336731832473328791433036024571221822912733057993523596708260847725075430150681426558181533771330653439158338143990235490573560529112261314697581460728005927097822355647720862574038878939985927064387056286333442358608469741347105056075622398014621695674926479876082518184242177891693577478533433125636062218991500485957824011742869058863391724743677030477695075643420951366427304380746391396842735838604735305021184747449393173890329433274232965240715161347295381136633281616619421036805456084888374414520338177497978650569759114052536096357408548927144629638999796231829476747433414713759452963622686209576219855713156680744818932721798207649394804067408025925693369850693130959556590252448844036790110138042404507166244197854169909499292566266910512798593102467252677028961866951458663373118194874723655513790163628341387215078716947576824328301134722158982537716485652826323860021331838183007399389067617444593544472943102532146302498272955606303894956506382726908881749702075078197736688800405892822753066627060401924800254317024044587667060344812777924292109660227450908913466189667370939828093939098164243842271412621455099703281242427579620730427680130914435625635163236774248370346253481116439611643068206113990516444469351160646784295489319620668062771169758359612850603481353338502482095265019440764988585249021729322575801827912921755579293309236109978436445185260769546153063499283863310239833886197909251490136940867022280889383084836330618940387414292888325263977094896064131533802167630680990835568355458812690076986839275211564107594083601924447435465212947349435413532090776244248438560245849274446121376327053655782909186805972546158368104365564715910174907642639813905239605917299685961129349770170178323669432406732462103945560871134174760927116396071513118661832579928654368917547440737086123522145929540659965188320323114667523072451998114851268715377417822367370719581406211077788988285636715683000946519339253046243920563669926938155325032404428177856841024671368019955979058345547557965953871756607494182280194649396741567428266915489772444985830397773653382100282321426070637530943917120661138877550940063150005321115964324578596364194275353061022955860588770487044228724265264530230376276731423560000468465074542062238586928356970119405711102270823613756875574218876302871935037571783316904088399099940959318170670743738726132708499418034595195695177887100823710182707345387819081472210146493489090001993821009358971405901164727005909975890021366355861605902001451427881759497406326682121697278574972218958918825885986916535650931972476229966831082882943373318432530101911442290545131016398311516295740556797754439950763961263723786648594674255087798396609011032900492639663359477377793424487540944569373172371419312519220414433764390929817195366618077100164304145850752134894737024140937864640597215550206893581882721518168131672194933585617557475602122620906942314829414740118355131784214051252234969101052947810504896463504364958038623676382249279281744148487029788135360993291651894362295107663013777915852414499004817913644385277152838041405526980706124298118312694220255297262579638883508414320696128928192027946376538030349022037775399617738382236246378143172096621730977285089602454067945438655417750416080933036815755255976470431687512001020860772930233165707613271154030661891014007218058004823508608279220405709926055859596262993449944523338623758007490708278155833353614947365562387759269702798990106596496384180607103790233814615403605580515321279437618717906679536315854453025750452330742913683967848146517868090888081730144184396439029828205492006522096897346611058490193686119343251472134437325702185267399649911204796116278288600842701427078049586994114896069683367991091270657235069270954496374338237962311000737069276811142476940445258305859200911309345043092253459271085487057513402143434221430421346234924530831058977244392055161320224154639458675682555215965581278415375927349168563528496484528515916427345478841726323021037340497488674476698664310329924180096934015783333835143875663458404429800858647050434980930691776389614057231732003212389309804645782630377657318834709291086080068549649757084562082160793358882865998294886959732361363267183375364904714845376621667068212732929175363645284016712802458028617573755160414757078726187791385699826892794221160232875424124966033515380399276524587116963006832070624795413948209610368834039212835977863939219600098451118019357521695042062830223965516804350034904689992587775089834532781088321679231125518286287546002536028766357087188879401123546234381015442124287108251692951635687482534621516581601893356963086698803248761410828936506258503046656033823102190225732440735535352105949934275216555684012039281665089547250228438077630507216026350712655107455703251108126672202789346540978744019143314726832312038190126043253616944306031168693700775346652598874302397800203708590022938135017844914751287435343298196500024492375332860173374317552584291002786535706615518333287376456038454696150697447449058703258843180863362090528566780548345783337627564497604481289018542879638338792030876226585817740399768997715055411346410542454210867855346842744726601105146192657496785374538429370251239618626057147715899937581066189642228209642126686310834035338593356471171478960977895290136899506190402623568825621588228289463438457920010296066413117344965092727262689151445611843616178369783404627493744242714793810386989191878995301439151887398912097766947553882223703141735840693321680554135022446177284600892707982004089594142739341944890912033775133095258207897340258810747779800271699586038036989440483078266688910294882599999825293748917364316099008852871087849312349399275554381236756455768193129843511290671685359216644442934624389822803065693694579629753857318408902991890555841552930489856728125495058130904327432769370390367190595654736072594337818763419419131877676078600173446033090177128941537277538823386137507360850596162204142273122581359179021900291285906237266513450388619076316347828322848773764179938605092046804211549581140159225782323762366440174810289298867729094271548072800386514648779601682416662315580741568886911531886668466230833323322472461342328983884426109414291121100446974972691637562924200964491606180561677299312286609734727385895207980262657535604497371165034665837209354068295937714118356740411250582956897763740304060304481951640435069741195552737019128943581409339699287443432646596343721539055531077966161786185961974665572760142647416172679028755274414589422310027596238525051849384588500840642808587721644863079656372807989449743459416021994324217313296600363195940325020009472961525616261119813090504069887914811449048002058571881814883311192822291088304011648531316083615878135994300108693311792247993851994344944600917386284819972958619154977994896324476542596943313843174585115064420876229595463404682412714924568028900079278908067078962848446057665113490830531631116607416066260568855624075043437028057719037124955307414020553712310052623596936759564650616464335398218367323896275442967947334433042284037256208752204669639585174016563830696405392304073602334525415376611828921871428389656836213766265609218301418389464302797750012879500468957569012508158658644784167505441882842074356253261468955079424018953395692193750531613958472795333558988913263822225670343069711198551728533328257985606481459320430138329224305157206337797704707386641851483995472147954084438061807747075853070749218788903790548492132722192208170450609078513504082091561003940011223954976988605849224603919088533605500921879672331104861950044484023638168147883259517921578655730731474511332985005825001026572217193477232715807257438176758002267658166259338164996801893396169260699873482276714601355318201601670513703828027946225244110855110282873399687771214193116870042491524094253470408159120517128701085473719480722626004413659790576829631514192242271466302489667064126110182668372190455732363158017142158425101467556472789280186499623123122124666908577055652609363602055793090339076253550392240854171945124730709870327518813277358459804264836217787029966262149615601102395907677626962387438020106834822390883567354954825866016303290796833059498630049910423428504017217620996212156607266483895346119074965245207682272635928117011129183867218678289681586048534065647216929136200752719536603588122147701629555861194880672219048234460983162767029373929139982746389295880109638511158424894995877803945530780717593266093165458871692571708538669572310080125132828502256432573780146554087731053530879715196142034918086446839662220638820213532741428810540464865785262578553950249272492047199975958584757170730484589324048000924962902174422877266331614420913746507118787357732594716810013023493743741429112929444535019311667301538725935354460455515502094240804333832094352987711003738295963940876664243891739791777093402185543399863953245046228894980658313190388697999222031310613529493667923161839960905873357024805361618989346636935094840474935623691351605048670695538852014321770277919598883277749301508602948194005239771957312267808740312702236862705837158490276962047196032664392947486304433323863862501070516019443193703634371833180567833404528499731575035075040573179974798711631698711960986999286089997301890296646310741604490780243874216206058038464992171646373523546834522359256207665210668105131521335089385481702707322838606131641106469370845422732869631556127578336433450819743026571683038311141685710117361295447018442136072589270741717547773898527214809371792005716793235183067626261492570553252579676595725409718877077435120943758472882552197891804459127121864683588938475579870615782566831307635806017176285975342686126220345118867739571949747805894635599512831708021304819191322576443662972373158578569655123827337964688418677274896359742408924259956133080899038528491355040621479264835587330866027797566001921589183154179515809729164167457346138039645789167746370212953091840398030994593247469694888120766521258149002778471795484993999840795689001385923842616711924102559670517239614879420388472192524757220999184023278433609674968657417270450699186112532123951971495065363222743272605004421127919910723565008943741729562796419559387497762799625181480240587683680757514408344199885815526217529643035986631078034232561904605695138492280830738834101513957653770972955595012904752864288939991569107590760608996765564056944455218249672570463002618021916026382679693056360938818829676873546663232975915199109075634477907585661800505183709675456975608568966539367023822310379793989701892026318792008089921286937350531473471751863258062674890916432697547607004307398732701968628753596219000142970829061907202780311181503994808473231954704156421627894964105852593563898570601198366641198750169249047679813403039288025414945034123516222822037359391794290848168626554583776930090953349712283815733605091553987092161945890631726113364731208553788908822178214713113914662789332241682347507872227506656522927675689309312649533852283387552646733163239838706698232763851506338176714481510430924458955787928971657659481285064659451104981045693019012384240783041746976070087036355215247569788421774432775314115402862748583765264262261692489714591091246995559784379059852783639131377581488863132893023163556408604574550886636542702901106732117390985439199635068871478975410620141721481358019064588465618172404873497152903700408986374045932045279882532951165230881976715299578138290276299299479849075266280550162789986968402171635993429973076880839641263764827805206785835851511320309299834595914504317965674048421152851172026255856805016999924044426394311338378858614365746703506888503517680839179913036569826371130340122354704469241096900243786251898910247398776862186273407194801735685850256357704920832947024176510234043628571677327803767993168012107385276043432322177619999084301204283747389350734122397606113856736098559682164364578232274033079374102350819382054478942802913905314032318858762162981075943556467650277754973437035921157575968901933031928294847830104974255870404262022229678931393549434242073641888317263065829019267574892671477679640489511657058323229425149569272581178840152831792641221849417038665719822705091719879851000304699154434948890234683044573867984952939697640057735700869154160003534032564683434497458516126294111407893815186523880141139030582624923427506379986288530751651625400920690652416483077255171269050056535029048470955493535370254300337876498441927793924056976759050505333497661122006680354499054546862849588620195843735323727413255892322990527591485168290693220034174638196815116374312049722321943658260783355298813385872742296048709275146818596242262267973734760299928391624082161922665858817085224515394911338381917176468179726930792926361717952071686530312370367865527695244409142784692431613882870158702880055523570785326429403305926031973147688995481063385069083410357726830492956551439633236423576375757270244956916492834896132933686953130569312471588801341562509114794700438399311274881976966752011729719509296854673898460596649452392588352973263241504349193570828783569254081701621029796269117603273599338798780028461376450353047567970047724239795786449048895794473513787047324809957478193293027350386203605491178554077845462710841072795912507169975475046646736655901479630024591182732821809120415739180641391776311850403861083774955994513153440297759080131412716454855493678951364800571686803771829180210599135143938538411706447037704468170018383638814261101775136203090853779849033785613565110011168138901155208871873494138385606234401794358616292606780589167783455595960370441440970709559332747695638390554748414957795775098239796195598551041377476646973711413021677462188001391018660360392352220657743365471874258907869879256067213809427932155364911406595880826003185357366559045417312977524424809438592100456176828614192800565535689274625422452457780200447186270524428119916682500002208070641085121305092414742921700564565686144996982931602850205628694704029314115734404422073276554512379486866858413745350695407139446517700118670445489331195611552004354217245627636734977541738964476603209358675411013233912882581755920379320665766657009798531932684115498033067227801300094477692681326578883274977047522746342909720563275861834749461739238009369232728782476647360974671072767038427844717660990994123686966662493432536658600497848966532375780487420065327105105500197674245146219835846753637238914235022651800083671083141562524116830740137873360451779514860605368901195986095982962902830122609437965852253175903855943377958413960919700828979660009158762178890782065187108433314233724818901020661306207854218309609506827495617089798175976096836399784968515784734448966464157836229938977270401162719938728978167668187424349007289556845492888930744516955363919659381293498875639379325242848924611716522103144175057133966340479268959138286367778944488667775399601903093437897772136329324678618979455724084715826171372543762447008651936943993799850632744610177934952676957620133381471186447581774978336310751247685890323113795163880723681543347218249474880425998698708482846077052866812781531746506582738354859227575408627205308420859918805133220406790898984398335934410532914231402014369855013755474159604556745982402859905501807845356493466657577336572796644047604193092759224532644728910771340974711305799314684940271255709780556545076756467589697152136996691660707936702007282707712450393352785804612051020945182696804415631007026556008860649418758702491995799483224482889860398591650233229525294022842758809051725424718469248307735682890334276252937747967913498421668618190867671893056302451524884173599286094791724956653259823567636186770378643432195040120285266561438406573130476780975189926232408259386712714048506622168624885150069298793127341568889263566023269269993422067329840704448830755778145835363394393680369666913846533920860365350035236457457012434827210175504159944681724530225916243579580956016373652027650433427443939411827926069295930724954173910488809753587903809923679572418199956663165844652859193813096745838905412024612357101683903519854008435340981747492515706112549250776184254345189495408728349368434301666180363844454422787185204172903241422804680585669560916275068129961587757169349312135402799657988267014071694841576686578437616824756905764372831159791889684964880435098844838870572976045224862872300470435361160646817960505780854623682035971870454925979534389251095554543974707075676683627141183670886119190965010028457662513671922502103938577052762096280658796699380001114762364630651753617728912021298843686771699863930667589405687480608880965222922140042089607234532619934313620092296772579776567306214273779977565611482026815608419435258819718815434214556940079621748245664037667282164938067795095000023168230505877912276901773899331554470037025738316196235742530730023044634476188896556786143326864350325599739105797872861248385651883681764611226882879416364881853595318922871016235624241829756694814132195944863090977198038393354904494117720943894651768436561497816802293456726115970685555117123428992555025111314058758195289866498683888262585256587475392171352392703589089856560876535005327658422822765923158608674053398273305949486811380377188702178028073529699652337848823715392454652620745230889717064731154128096938477776758945358546764840824761776634003146273203685247445480120635516190378396739147128870844529422110400985024980129765947410859983529985154900569325387318502345618079924703121867716055404761915223098061791035589246931965624958347708941139191152295379031099019384562207461015548395574336904525390510783910575313835165978875949943376227232669422227758022829326159812125166871646291210903933686518242783632094285915111441422561802544429571388993758151015357313148388534780766961517459721631732315787738696886570628331086117146388212234050171071104195712818195617620774360129771519308210829604424682975431339028290991699356108140572846800922920494867132862644328294266796697282164474719444790027447170119190655326592845517318902448462625207131056689433810870183547211864661491831625565909408101789838727935958328836171319209878261186092328674095807406691322192944456843899287560657652005130139207747397333749117788064222446731880395686112480113619534493485074162175759540637653777461740971241710183262057599331567268677028384573509414038966635284592507736591242388050773646611375773203591991777304474468379929742702248419742054530392251399461329861494612065182509941052386310696696697840869064532653698761437780225507370308529143863816596168818956679823475686720599982665306674640736416019895353458241236765842390829199926075358381003469453263684691603029742602297307526503276352548579002263781276440609552725785810666623033043955788162413578658744382371125075761871066126995358170080912521209578776805077828471177827801547861066550875525507357864719235594663892470476233024445255791518487222997929034362416264167048046152965284646586260993561838522064699036214423969174186947450370314200828843988400340401572626621086834484704954640549977893975424172486647946313589833632556394235481212716728945536705681148819828331989249503300824719250732727921553987257462188074510341972537325672185207825745112826214576270705073325236629825133630593960952288961624358693039675035354783189928464867170638916874354729497256474412877074575640498243451623982508967643832201727737869230291828409467475478452936818841048406304518379327139190924377286530697639047733908302900029032148896868985367101052857249049455900980492092047988938294399164484533381464047991278209776554827358642576592507958221223040549677063173697901755217352597033385313585085045099131953593865009254315624659500687815646712869843832377711908877144205921189055139889397888949578997143589422533109655510331842991828153648105554086731152404295048152040740410269058976511753054885750755041690681395390389473197498204231472645720287441975227788356370630028560164286756459015189045959168358547897310606358771743833137592182580834292634229802832146738155576542038835002753373468832687594786587962141237372192558834035234303476726470418932964306557291317399360030831649884972383800020935227469222116977782383798682021833044641133080296366790023611024400836598213760559628901390188779772323058138267043473388230064270284280496353242735049858004089241643465459105778027568199206851407810182047511167169474047052510137459622627012569199809159274322540465930115238106868270398811861179921584813792770243439371104214926007150038458346357117176142580516440715726151395732271745176158263120791106842342689568110473387962571867008785985327906445947296626116820866991001253151373341677511679141897199752439416063478747422176529489781126510580060577888830099753997994664752134581744999345203171053222236076752165448266766340995335894380548261064728204259711201107162809890393827972552346931428827382031388064339026551011652716431223452062554727533693676932420205876081747059597720691659197209327017574659442921611033950392081790592701011484372915036235650580590820308695259348014659419775495777043427051104764673455359888420076390325754047888949247978797038933295951814059227297185500545387738983284390394790663478687109978906249977740228729112978221306420915030185460128100779653875624045426606960460843210255963018607552601473440513170206479563812539559599082025869752958506221226319461660210240704476974115090773054526705105003815795619190159859950553355555579897491146218900326055489364294161550623498372126449779076395039422288495092465802568339301214851114812376188942813427046902546947441730775878880199147392460356252356445065368584987522708971902431133620129923002653512293865806982515110691212428059244007301177688185146729375920784020909205672892954781728960949871347436353906237487548856898398538754554104460903136342177815755826792427913130161610097309881340561476208325055956079093659959366596645293349081982428328621060831875971706133639328064143531006342451949956984081445953692363833745295022792716837454733942143614823973108760844826063767290782344099660875965544383451376260403143867478183719785763290067049881591969671218503051126043435196942387478061247275800824532387682513819023340474440920423494977118896900432394359450684212571140224653985230911515572685066921337158487272941827388623849911078367202893994364549485789510599520187286727316077583300564030552019081703900576041390078734071907588619103056434449884875943264596535876236644576303959937694503746327948893312488218237043765873539741915513490782700056909354977394273329456592659392883493308876255061078903168065662602132207879466224017016206470345201099214055410889544916451964463731884979312102559499026429941840791288734853542545096602511890013738022064006245367888445587777407699834558758495147606655106733916733241175032663659326799455495584419013372564040870629428099425179485638010251117388101137907320783709549567241569366315487371980314800952059620799132863281476881199630522073749611308846805499479191004661714925583528089481091617131505243506503500395054289495095015601919780865212448696349915397003942288173571195660030320479023734784312726796066463604080418777126942113982556902872643130031242966093885007127558557338259637442100574727312862572310768650062517879649203580769632386916053760435579929781369885010428646532273910035606767829262721487093988252144961345971916604291933161011395102802471112998485264341869810905306253445689863139443826880542420538757210329958687112636442348820178335207852672027201808182453401982881959409044199955425495079970785619078087932604136816950500104027574301581452515895779132107585423197719978685768227903680567693582532409471178744834971454612942839310495767729857252758631436129992730240017414329083252262340135113434101884827279207452891019725357693429161336547502554517732785202430609480562751924931717614415115806141706995438205536714650804533774637236987557913134697785844619435294312966440747152538239006579309604303091164197298402295651532608648602018972470686194150022986108290784960193298736783147438819394324160870130195266838970145950474214458105824088033798971352084749944457267651962758009012863613934017460571803858805609905636955664397486868763323057526964100856008669646727335421866628961887967411816109183360188144223222785865216411847547639766225959160633997827606477957717801128963413987620372351713916406782711148753508124894156787287297784556106377822838383854303042074934117376455007074502033055330712058005917315400204537637743844753427835762212835506216570341910767467470165580863719144209896151668983316536538545483212454917823974428902861207091462761977688490933579835110102856372614438748853049745191504572982124263092933304490916629309853718309284229116852001442553229664449575572053809564636392436263084677705990050028820825495378857097357163920376180705124689300178710018538545413511095906646272204199538771809465129522620406559485238371326999762156903752174133284588304535003731386807462077890314225727898865325649484888202560121825606801122234992745273054143844288426508089598254268020754641576495370917502857936416996838834290091154982829811457990719668861829582003040604703952733402762449583291803159369137486281864939959121374209386906093742295639049904133877985834694982262363494399791966430542542408389288823877863762827863217113558406570576624444442783950447612405322709926064906267666989131028341855117918558707900528087516530669631356703170527207334598857822635327111784287272196096147655375610336570630015792008901505054515379337623525300679421464793049598416648428073764194454225925496566286882993221044495872237400103369845632411434129727851555147642209484496094679172908945361155894753587200622925827435986586217605691215131761834250233622357422311962030842721290755837429562904187839025744465077289650065132189460369569358858606805637271243385577478879420083689311273770006249729019461150875884895840699742169964746437718294750451621577527805452091994110777771199775667170263872618041947720586029301882568432316202826204718821503723934173872064150805349037803116860678690415804385241153824529888428959202541987660688586459071823420645551628274231411801193214956414556906099947507388855171456480176878725395009105184730160199659412192179013183415868157749456319497540342985407319474389678394865470977768346793353542475110553283369517291728311649239773664191723544323266793185900956140226367306930713709709428773436454417061548564174870941795280409821057390319938319670116286600210226874882650916024410398732493315857764411178993662881426207004554904827284738726643898556753004476828294839176283664045693555165251464702351111286164359188254453550088679716951092774598652387553972746038113992357556746714832729032235377138681841779352572322507752019166579483121731900080847842127808669716671923472258626733617391553922154085550237211086327944926157648813862940040819434532966098953232480331937111300027128982344950265147817253531943173707701619327697022901780300853887765258630235336341262896984812868050087127165743404887855973407561696130767669579246892109462160765946973671481063849637868613432274042607543813813568668438067988083431423886393157088467993085229933625916853352695657142786237022704891898059313909796087495907460531162568521305260401218330137056328255548250099925192283112237556727480214347881740620281678367774154961892637282833927318831683066061369256076118840768254215554770656983087402759751041620818183905583219150319746086036742826251054234088040249539767793986273340839257316190007753367076296315358657753309967181408516225484513320517314575528361008611502118793490386031736282177138088131286117008773143693403152293669995094607706737822951064868389925522886879617060388325724996585128392802920830128389924788737698173884929514204945227151881484395650492004003518755041024332654339191543035973869180775941238940617460090281516722604649027517429408230555907946196692871632093031329260054355055419100788908505845669388661047606635229601781088472007058719470764697912162555763257476955870329957371086924854082523650476824243177070691302343080899952123088483802280235991422139632693537236453390174958294895372630178903303936213444398290234032982927067668868927575636457080553352684495981759914043693446663004062808547327602186411258058476594325640221948372397430769958955482912595192234128939147087965842605132121257702453866563104072780328214615072665150293321990397457186872414140794439718589325291470506713409332700883840386067711403583668132976260838221927617877221082260510369976118778379388521842473593237561571897678034835132513477243181392204829724400874825541656872395208912165406151074355086415985010470082823648441219363348778577320365834781650771662545262428244242872178692570919908266854570133081297908796782933873825915986752376502016260977928591100436967319467339781579630964069426388352028421533487627049671694736240775531780230648422054628725790092058786004283593088586337269639771954412110115767598160100782214743722797077316219301988458139929081995859600813877494154456855600247179805154888926878620817460598076682167500413988100421796631929359532556483069222763439248887359411428779097643352823348961264672617159394453981125368535576997054124938256486773729791043424438999730815572440531412373006057761050955368821907205729358106716457731433041142856198587836903461824203456693379394842167228194508894510572848274730310934421732569933475034767769675582832716995257189420288812766685950170324022899542483124387559111175821055414230142033581102265113120870687036132884290252729168577524295531326496063018218273294705602354865053418695074536355127569330695009661622341021016621920811937483356759951598538532351808827101932206425471276039513928111542358257068657492733955699339932629902197649632277285481718995665897291359573553476026686697019715660812294311153179772452433554372387954845328912396305200919188917085143223518403544724590207872870900658090249786647267422749779776403426740975794611233933189655590768897231907908600522852393655286396531796166857445195869604014638989649662802682016348952351038976623551435924866696163396108573362518024476729641397009534579872471679265516835297392561824101526462861542796055458875197148124043779258729768141909668702814804663307344554248902067207938625900014986515123070290143236152548855731918105272065834481204295462665282443983059469090241823788306443478095513470082983213792944933817988574462093371502006641329768063494249264211789095139966190729854753998237386391258716358679172433998759490299377374411221245336633347706857689827182035218054567667136709782327221054765920731753896068456670983995791162013183703188106783286922593657643657103296101564179879822914385523060631052709818259080730687109876826654744729922643926976055853775807220232775772677724108173168363876349341245874770996976817774039970750205118749243644446029011234179436717985985153652230107983928143422701707952994164233557990793952572238947901338001186858724307948702756463494581001429756953679733882059131792717267780663217135617901048621646418139881120767506745064818805210273267954387319752329070970302771401743736581123225664590443775185447719334180318170827098493128545150923791224300590507042318994063555605847039567898172487119488207795712385728343263796184384714471597121903989544204566936591448502040569789485574694143970211028339898828718816126425631949557260648383579049712101014028434355687691971715089789341058945835008890112294643889269182771475897291785869947926005605780685990517212105877401479680634059331097737785524335943854443391795633234706384782363105122811004285013993729264398770177869379113513690209211281982420684068561793643581308823447771313708152939391484231017305836514329806540256942399923839454254789722191299251688438923453916873178895115700685888081461817826831124051823678983093950386056008128261941998779205199935003272587752805691114119597430941366036098088063450933992117511238260430033552067879048775299745332156260635876869066804429215316118841307252395139582199544541755496342065634888542128091143709628888774590131078056220923735769395635378937589352687341118549661474734041103556875897062239834218172245497967210659796841183010854721767078309994768578155647901243260443504835486619649140691232221441118239454511495457989070094513886005215007636152794683545613968005845094678245793739911851220020535709666218970909351327678216682442334277374201095972846631099977402934945556060688508731885189507421419365249035076471823215718567465537796523485738958999464313507301209191799032010143792341787150008704347469238520769363564832382180379836156743527394871380337293477035465572590375899099756604382832504026087267538429265417590019621172421363510268897191183743845232513715222850181520852597533810061040864124403826572383542094777607617796793976204973827910848829900842870463012958740168778639010190117681767309954310557516164651452386271958358473355978088665345710430183891553871462456517029258274087285216697165922432397249810200074108131809960410251562298676794405967232603769272448709074576677721408979811352176390692817480768654353756295552382651387732383039216310055805225465850108879642765271816611667423251072112546978595744719462926161508550499700763343817630936472576203621202510837536360438484417855360841093201604533627769467584839772326161024435115422292191407466954461013814563132203870527962600088726796810638642320337238394161655407716858936079982971237524978697852342308782118191220447189446936277313192648226964068370765777433214410321918796864810887388047895345821722099662108459989727477063592379070870421379650250480130801519229261575262625614487016734968949305460391784177498145715899822966736050253700824534066723861063573638068601280672937323788454746761985041218173916900180983671589802471663183370802274554363228753738835820093556763525723270229682192927375179870967535335816373038058334140427398284755532034356948906177020628897271043251130653244476538100703043111961262028526412384684509538980389832944655474818003596866145476630996182919657776460024224199986149822607939755000857188666563763683879256503641074783642667223270699642395438038860283779443117953019822466217049611153848405445649081146766664350938220147619643391327312753877589954751022677009283954379895175037083698792443622631022099674792517442846628836178087991972989432756535322200283048151837458180196596738792976855363286077059912941062382473075513132554735845555891943213908484092646118205122542360648174008712585467389362767136798941230891453297064011340186333731953429677777777987073468245673938189729754555315372389889810085333043799196103398950810489029265676447055958799383232922965076747257809047226996512328822801661383254837663559390652330679220638914576692131216561038565073549880360201431405750091041535274675697203598983229963603696847953459384680680769323661616175070048309846382001569230592255932673297572034072161703610919428891562363099941808751653328799829473613415698048059516512142871677501684608122469480371391882931157854855781075040326403960216593445994654782287569806350559351919311477384318127097466740591191327381264806665975117948583363225233894264261174271701607715104954521068725191961467924963453034621806073569508792933177804828362472180558506615315670550612513337198390725074601869740412422037204262659219235899826867827201310466036884319200930197612681628416258576672084190133396221107569506059744010504075283515331150039021791498991030221826234591530340979271387988848175141544166761860924770857930950498079650355166223495358073831149467315094386641175477242349377029585225350348373322807825889306541464970071103751109066419778706816764623617850537856802721953729715997192792157855188018715043085311506130289145224067202918590894576096447893695726023861443626599705844825506993217183771522766804197467068608428308889815853280678373287633644037148876001376735265690205207511475704897624772402048400749705058052607276908045420409713243047371183254567618724660294177936758804956380187233343691271168306620736031614829866900276126318679697246068585699032191043991568502960109487894261724359723374992631349465275943050114703384633946182992478934971916639605174966119893074536849551018543872009033161949159128246857081307525759501820293544104968950992003001776351630700392751215118938303472607987517547323021259699990532960088986412518235367014815191350089953363323314386239529225930117327286204801536556980069755011891267312077166016419971741782936820645136800001667874267785468387294546742725878039611047214045738124402771583769800584737892234059525359453933308495359409678431050891909499065070805590950907002956404631414241370203210531458060976381082203495517411235150692989822552259409930481389010026907240997490853543670310938495449627513155619359130567916722739162244740792550603897110279822741935718532572778062205706506028523899282214035605124509752163070665373270642795634437671799021516988537526640320709526471626306426276340542657428252344457738236263380601486707116242156506270322726382425108118844895288350416389381977259009124372320765358793222240318979198754953754740846428733702762359803828057628198551072917521740460753613577893794577169984442535134308346989259680501058251908644368281139597859277694620820858129001183891503984261716875217450340995188411341996112459706376455678586168250543786747680854092663706560451744835490450392777600456589180489373001798880825252850783060852494793313112740722013189225129718936070882204048958377889660393402176380902600803176364330310857775941982617390391012215838178171380467386625295186065032593429593546219183668685067024744924442062532648108429884225533244126786995790965615540058203938679273735735282367876849082621701850929716988075568844325946941768920421659522591768059998734251743577298425055637216240769970244194554821697978815696496338411865860208319437956217376281777115571956263113385518043079609938760094984209227858033159432551287013870223686123685961461351888433393431428820830928371843871918377154441322791697186615471397435269231968840359421449353433683888762174582265394978170453235067949103186822744537206299170321064908550946602070739869649220837157374707158187516763077974751100928752344036348892587652265326424094956244522695413263828230966344338456492841099142855756085967595398157373155201768618617326782063863237542639651450661199438114326237901764229251939278396500978429354598984132539038676638454323218929858919360541224013667661381217717692797281228554512717017564636073792455965061024952507591919802178813699228420910460084834268616637112749500876132179166679481438105108212286815927997729853085287188129699103119408556975200696976732189949122887988587893933953671301968537036005696728992188317849573230841549204501625075811073070717454496544559498978657147842938628808836579041882802424167710042521588487614769921944146220807248023452246824253249025641552961215797886110186483453475564348067314035874592213183340060453160553849047731821905354356725834256955766781164058467794795577611911253178348517625755201282478141092379206684095277087672137337169751951991861007069508655521528920432654493270207730452866831168142988671308005806578530921400668689934408589509317354052532794989157539059488721155158590870122132827463249901201426634470982404984647754511186295395098960805574838538695319922526944264289892949169912752145522269632381627217797904815870525202927055090781964290275661689106620074753944209506876657897356434698413976360103433247674689275111768133790708335011744719217014377384613673995795356301576205126600740545380001489795394239157834915279979837233216250891925591789453667680359500086369896588069695217293337032022527325522918934316068568449724461120156642854569989322088327232072281426152581909182813462320861707096746702513473582439591334191099408738437754786990043404717737331019488146006221349017479092609863450318354566102829079667268637381779468469071004590773882900635826889723236067672890831337731006593399077824585097072676514412492421592439151192810298108289174855291272039968990822504927253912443989608659000829532301972861148677281410086310052140257009465081553482871723457771519457146752007369173392167179826224333251318772950075992030719179987130579050247029808041528884245789345408724262002863851276211770732594673907093092549886771955525980106567058792075384376285959804615180375964499793214029276573512059649148938651025353415356491221332778327050781735926227655289916507186677231109013959882727605311824752273255845094910927513056526318263510293687259073540730763399919985699740185757001820798148623374604298816499075051707898307110952254294964095977420218862458217002832842253148023653032202394434160440640225148041909909272538687205011345751566233268761489087091045764308401182184305490507011800697045502758982039717298255121484009145763042906500455026280641269605538589123272291707807913156240004734784670349812770546182659589684175799960450308803909788138191482318129384900036106099990940258574422513595599203029684662305165404428753864440417596713393341175754640380286578619620510458642297173528000043943639983666594528185424343116632420910668233804893087475636607651263000609500435490214172374706254088885229929101792968949125778835163985631808208752836297795616039561255908456681623596944361953717270893638111462543829081102271471299584263998097402171498256818763276093345830807080303358071370874869210473392293775971627195253163731727929992897493982616767667416083883029932836745385261941754273509405920087991898912236575114431989195350707107180933008091867803880336388170359886117901967877857659502349838376595526140951408871730084273118221682066322627756575525789233319301687760530589903272077582196884124053786765078730178048386725219458801774992349146882534285141677625468512175690213413291752693851468937452654794584538613844404013373859313640776817542595676988631350813738857480885497591971526154432063074368447994333801063658204443045618714697735419144665588239285666648931355413310379079756694871760008743351226644358873057730172198242757423739081425231019235752122561548204130183914941746337815467182995874274398770119496999010707085106451682491079093649727918130195109777346028651166285266098998243310310461240306006533354892561288770475433550187560784006982578282977430058994700582834971403542434514984285486334995956426491103186821907987161079024672804381261477244372991707002670027086900624403254514095442469008140810907354203776497587630500734633601038347393590639959791309979746330523449815639539260662086010999626451318240616029323731476777965613841426988137412975329065921829984552116964129617231519966306654477001557045769616570683812273296982088467463794251812848824520222940870412482704513944037385191319408304593472122835217865674711092844830484895696532011885101259249104106407482055056100429972300641971633517335781741113070259443792302103812857595256032627328722933139398570790172275126324342053862276790588293093965772468035656812757209197126981305859742263062501779758327482903373395599782349894067004867210623687673497356505637635221171799357230384924736770894465106542174607147225963058982250883319132568480175746537326957382815178467633181006707910828219250056673654405751548681396622640113838441916389158455853195969683615895189922520848925355362387882358645790364356445404365961336999006503281174229159883812235985100017984428905751638652973601295993771252140678538036848897848790689982051505834741252551834272174848663443338560925804351192968440567844352402310572984329824068415115168844025279606900654717764732856215142136141966222755344689026701403594926638297392930225670531474907133063447880496206970077603048049978931095336475306305508558604049395593787642936708920167948156119124323471073003238792638234100780096631071677490292650204203471878527029508509560595218526322724866664965908666245804660224571173156448236144571468493370444691021289751676014092229380371279923034581820082304366708887998959203631801449315144989402903317566800348365418004057310698270315822893576159731753048980295427382876857090978364236044562199021459718256061621385019757155360783480659539851035280993476928538667055584626099829316535080589653536483898539414408996932588778322200978056997908979332211678749988372506016238343205087210833554710830671198005291252121502146779094289105030154836076104835588436507273509364176823526135361550200159201021464334265797219667327585205394878983821125419294257276444668180846211151209338161429842792349359537872990574173109379384026692532788042891038322830664077828702950322240467470070544847119565879703916207445577966415428479870596453730689665108461011767230077463342716322783734297068199723640694033529565832778062729136493109006577266755730250396534013401799862716285196585172570326417923107156227183473363716981874866729534417554216828397337978851850706149018459101826601458327271724543631221272449678329244241831431958135308193242965619312964048537229377575480696182450092724367833561383926764744159389744781521418543406786899285004781285375147958932321684641069448421177171748971994011392498198456520567944391476292730472716107500992430228817872530773509753349369340760737511317068376583771726729181394371344469519822856278265007216721521262896135328219820807067778287253093396576735727375147847834152528583320999920175385269955839231127789263493712900138034334012246022392007071371112240361403993507886610192801159247431219714920889010196647398434916546112412635700992647825212688998785355307131765181463827911970111666730628002398624693431830170226448915222169086613143744896489832012814227761530128380204851068293879745472066341066430162313856825651662976010709425465035200349672760699603356614179473645408872200888500185198605975399683910310161167760534240443676547344212835340142049165384407163608108398113306049722749148808067055697495611959890486904637260536751007377437432449588144283403591933232185679612422702151097436547590246785102918058612225053768355734445294893356877725364206466261537424901503462298440177324196422302782827088686730075635660345527308407884514770118821155026867354431460776925047691496634915891841812031721855872975235409612602711993429617449498414891703297523202919567046389830372163371187151757503939122441986049834883859260043710343185020405007292168784661182120463345838575983775226694534075252943581874233266794973541719260767785739741039745131563056548712744562513462268543417916107567980821155456618242044400311268457875200043339016124281152007352844495520830613779561043320904600192690244926986476819763575831889328888059724518111610435457091758402212169665225895928453773172917344928954840979119833742666774526167425722141984480341156235204096989705008315167254782503281565646471396726016865503294097001954064076450545668805299730632903987584435474161538346837782760968335981198381849305477199099878640145808037260305237526413297383660384477871041878720339854478736753866993426356483862781965529798106668190677038345388627219332228681107575507850242425838003296673131944890879328723472026611085696927939393799191547313161322320949476333485335566542420895745558826151891675435373352176156581892968387120164553166651674418901170256941778744974634400746266387817895253368754314217585204217051899769003239874392519145883449647185963756284710914180994624964120597553979407783798881199376686435460117833699914569108607891462261811979517543299564765082965731994575071732483063991213328314237616344849333980411744919028666159561370377903712852006879727021297257881449337564517697601447982140732872085179739013440955476998523680039793634026743443698551834532383109353810356482192156530420913815301106882687940733624206092330925710270291056227762311749013970815406884873728547406694614887592082982338745313827081466967819884887518666248025234778516248659383807358610521334513687379261773292450757414863212602786768860298630238358065301309736028542216292886344796319174620388931302768605269149896811758619070975561306797285588422197155586162713103475504987433944339871474674330057101712310365928235123297373389529655190649805371356806006234110529887821159400163992443176952987739002730132682821769661969883346290202958916945539425866472121947800705639906612349853008686810052379656816530250980669303270675862152118501606489661845477045268771526265392422761689250884846067554640581690025629953169529935416483665838654752343560088579456345452412405378881253052306222416405516445884807936480444276684436424319575515110494326228763039039854238400143754917346981994433806984058557452666277646194763599671703145614179640146646956426120337300247192676598923273285761762537164211203976564269104627772037565126939702935132554458371568978818354472105379770156689337620328227366607308481630974757226559387874042162705307607598174102861768642180586308641605749462965947406974365283817797281964454269368299570448377697440233669910398967458272945593933524172248972331884916673143990228634682745202944043957678958066410133209195960798936945837889703409607248763925492089803808171767288917150011388738478954044796123516956790518138782372567575754124595499749447884831936046456107446549940737664149443427327184933944812018757433827455034142073554209611635100129634844967476147454006661343613953754012154627739317471249639850687073343190355304743261750699471825276281156725987550159873504626201820904671253513140007360598638996625984162879397291435231368455188647253376155188955969176819322264803324632043060151992629924585322802661460912171321663910361672288525806537118463918769167950653340464400014543078210515531816688218189518324265607057710207969291087138531928269920512397208391993975272267591360157651496672237130725425225129115156620192508306817472797850424905711324724195379164850370845229643466766585682251286799775825214496054259805382196094617293515699189633256095913242641846866975985154429707185841405032524888438872562899461223307773913746433210007331420273114618906890689232555148372420572857499357920454490700381312215484367572707537390417519501463602770876170536686919714180349179757079193522832998901128406406897605216042974950611931848150501254218450665086211486515973537145326413438434796216472231821843471230829960682656922684388892426765186676153713671816984504790874578410713176610065945312122580041181153942320841822417295557835723582215670313569736334536136074215255883242317549862814206674528052666632698130868126112290292223066683195422981274542295277075143749815358465288331735802346713106625464469554279870808446898755250681507901875136987347270002538664525941946388606892963095047272079598004613440479281500847895081379561205808225929822850232577137929839603817577149105462570727481230144183108111746530840188011458402093180677531303176392710918157274970338253078317240318986392063189062681050303958478931100802075796807394519389663961427541879859173636260082587113830212113030076632715076316569203085084498647857185305704055718030706387723726997672552405764087478214413654362548656228079946378348688308114330273379848811914172465847999286970932430350703486936638743479740679876923391555854695433646435129174508228163179786709747400005303919406802672101229774497272035197605028156573749504289408699840005462304924000814190449711558491474733694317747819525754674296216235013921401622257236836106292464588688541031141010981872785350656604785855874054914534369005083530131009526032639318927938615704765216452349415386554764126806019337453752592131346592628255509662071911834328932550044236919986114632507998346655804418987145617753254531242055734544685857589827849542483623281638736689904622422045567846706287397002452711925247760852516016630622688539041472555551019225812187424895288739724715345305023060200767108390075776313540547219610361382340982845526903610237484743778289472012506669868062238654563064775054633128770192729973787239537197646130204562413654786754757776144716585901061792940036342591538817162752534759597304445236867545490011158111433063025922466065476759231747626225160294665511133115105329618560058315898174991704590770700501663151697839779172518738896057349596620577558931703288670169051471437912316853354868164122730239634705599827207246758165312405970840987776235208322070914159811490440682869271563712246135174707196676202707521005858665234856109283925428924751152491820458419561328237012730397879554548341352366036383860731780704689093750068030135321098807474343700197832087961414807856928218749471011255274571202741969667548335369475372923406968596989673680599765090935171569577069078016499721642516823688019351960731834825934343419150363186851162215314896490602213745242447241167890148141669317749711217865215332765260534774257001598322628049846628381299287955469339691178224685955046545000090752745797286227571697885208050055036776003703370324219157740898169356537848522430061646171393738024263208040226220606769622747342469925742103244443658206968581520553723319264809401131125069920378887573147664648047267049877097938278117241806047021296337026258020331057635797876632717319106531776979192264721286342058269420662831735233959531728244758086995324723866993323081320265577464743689072921565987483970966523796095437919655131990940582434817162762689506382274940200360699544573027049961374280146635996684302617800344881937810566516118051087314519003030111045762130781713550007012112084454922102040688010352135761678385758563759463796680419697943992078060097835952824945157523323693276460963656327987776175013654439606153167134888489940803243095723039990202695165803904362441259036580662368329145014286708684471167172042012665109565778112371484964098038413624451738623103266686093941366684149614953195096864145443963117685811649614137608544351809473918196301620747917729930974908658762344921091349091101836245339896784215362200090460297464951939354992853613815424106026961540650006566697117469345264568193450749894766121421326699382569412033204774552241232571921595644072618565112461134563030227612781397748532619649646980543386578571707629861161462985808740457727059857336312198605333024096796781840311788089227268826202421970617603120972351483732460897670442557132272671630751229998270110710977644905851146829174250985620629290144732804476778183101340384078207146862818645395557867780391008715721591178544806568594773140741483303110062727266195965676609294640702259842630331862485329754381916816908376624060658839669116496299497889718030056358829526357140012277603647961630247968916168727228111132940620851896363755547707622067727517257533264488738338709702447061837323136905942055671758199821777504828611706886476798050776272480355103090780198285342399901982982645734141307687641083405144163051474007352123430185405748486826874373883177293977224076699461612316169388026242004176789614773542511355012815201036563991272552389749526871872085627967944967833496315965433780630259215356509676403707523493219179400249586038670624314535529801203877012154421294669869894959744628499757042560538073876516624296935776377924432754321768755415647574962447531089972452338042289219805477718351538193770198190735976055837320573578308515688326705511950158717369299418430086872484286925592028790428655029131148261297604193128581571351920403241139825637752706817377348904050794241493617377246753439917278499379698078481745831111000666088226354386808052548189408424712778407353707275732739386219414007327573235036645170513059736164152231242472776283237563501348398438833038097781017230865449551008561598918068523808337211788176424413764733578195009836988949648596111736883317952705251586592773309719889961263903245540184486447953854123144646064931951715190435519733899236781551893448293662118103078993388228776671905530447532397477181682531012472669962504114478752047588926898447407243276131312598550372629574632590071943178779860595819222482220251195510568326410075545986762627314366044661568279582882250244801847671310930802662165798655375727791500719956738524117826339231988730090414201140752387641081256998821816662336351593611850821435763544054870691630199613466018897387902196653814864868891641162345543097870331462286394976651440657826045727951973332046637241587978223713235101538460252171726207610612189324880879248574852138473545036765165556160421424738310095410867709629004881351892986524537189671866941542478211007239744607792694857291353455865152246147507408607702164470754877404521131480988274658190951113449766027786053639974035439047007111463096730911328055028102273484299661941011230428446331143426265587347591058266949455417400979208828643443120168117117428207097155654317891346353847831523840063244002989448104492371745348448654606892375286464229989896838470043463907592530367676353097658367731925052983145719644853006578971306499424358822317814481760629127645867295004582198231863966243684099278125190867716545270644323220700132858857489122247837871302602165920740199672898825982832669141063592084792254368928564548212858134889942274571601012962476253833101111165633804966880989347678786476742932868518851305587222849731550798198901768659925570005655630080462701422710233631747223539406837925479170712465066034699872425093894859901053309064592704123004300008471251528146324062212394441916385553269547776959323141584984234489349388446688520775433133062150148495771400594913191569090927593650305917823623663085536581520481464976698060743116770747868706700893191531553921253414945280885488615396879941416362980758057933865099341062035569002036127243059978017378350701491333878512693487678120210397832715339999615562336421453889533190693341765432820826427150732475510248584776476809834620053324978485563288494106584442711382549356828245836425083813056457592647328270106765658383160335828943873818356694975788995986894657777807962007142997249282580147181723317882230331782447626108889921369884513846712076685604514799774261651674507512124197871651876539325832061243137503187147113424257667281430939821396407144808247270585630889971876404502684461616672909625411103182392249497427222278279748361724214850612451282767211454351783859139214798839560971966726629313468247819852182893248987629521483997945591067665929091226169219756036121666325746451845951526001543083960600861115645699304732580396628714245108085230103223686162926585967241735936538773931806413030752377477862217055153574132687060797724750045418490497148836233586285025506451309462242812911247647213951607591941287574658235147860956359149529924081931290912419525157188438672540092553930285229286759784614431088931794153784614001049028596974808218259948230693475456588962484872725089055770041601007821347369158097049949711401254841067708259388402365406758035632705044756971083817030842615831368262743511875748966737359590432333102613885844373964744752569515493686879980787118838189558683490050048663681408078527710808430430165454949724501888077401225720760942584853018326971987744294176399869887239833499551721764635601241454518194179582056497913486934283147178025043287400690649586942494167010111903350708848088585556591333061261372690623627671861932178224627817455100182450501760626372986477799064443741692946957057897606477441348504355687120705240641288585876551804815723591934645232918949645420914173231877113945615863961394331697237120734121395419266360949796312450556684085488162994991189555686016228306165940552844310396270476022580037555614165721688647665609923495416681557687127383947719060112091344123214002305326128038445394420225031845604071480666427696738983228008395386831997332791221264162452788004024770128137985071365121394468083019154479112278960381275615825816302177640260523314872035114037412456708276601344322843481283568597793857157838090329912957568963963035384262000223736475389562652838749948556672980551460004168007272852242953316836306770115251874354425883311314628584040829980975517997759747682525784823417749400282542328706668034360989604259554400336547084560274632212306569649212871691138064348242885652525528272575453778137828604082582381036388304779879379803042584482375236113488110297279583460117555661342863952415737813387435664853526166594921042537021437110347216286974998881841675766785705331733058545992644045229619895697290964463400959480848779078801374345442532769552232469621383251289932711370731438295450692505405599953343320117209637394212352964544836969296655487104185366846452803790951954891907804917021548682564576804822883682452965247034275731104551612080615998201446175809456505088488221870673526388891469822777422421858068826546077638846649313823211233881714133099330885563370710863611389567092250697082859929437512423471398756871867498982137857604554025980877449670153308097232765552664268696666039740307224623411298560785289406773616963569964543956422897860181615926060037524804703289338813379422820087328020083862783780019010414532835588911659216632421600288460324901066190451245643478676113615714371826261060564918463080559523222962047447519067708828372979440498506907938647136686471160453675549236751603229217904251879606130134776583348960682137282508971895175748229242418298041823478864079059979550774938570169071137176483391468011472495341202524016836817275792461278531473695840976466782534980019526200591800663985061538102305705449383509799287689871354925116518763740045228797433822637101490219864022096125623833068331217604355385556037819306387644284772780607745016657393375455673342794078170611938500560399824863168008686998943933448296325354511849266756482918148183791475344187357867355975112888184179390059015445032329226380120807515620756272818225123858252063375889387459480872185025740348032859054894319752212660429912586382708069634810235520885631849473241872558497002095492165616484481572106744312849183073329595120930209099503452924650633907742091086002347189729901918894015124968363906582020284319951251976659928239467758462487309169839518477587657585462467327159424619374883704839401753426596549815243519742828116053022108759906502201050042909533749540694064177074334096819247645555456135506058501127352361062153996598077621798487517701316193776495805598953865211196057315890311479669341965705250750820013535468012364565563452827870309176755989265175701803085145616922243488404149984292489770030608100389711943322566220114070848158440536606386316912504290441179952852923391403007740542678720602175564870707070777401485446308734741737007931374801917849317432189835556784488038817483514676936894829487433409111287896028555255702298407454283093465936804868411436859194778910477571426418283914169990456316144419386469722277644844752562733170399630071485550057282340986883181407040758447061227093770448194993579364662957595193744147056432620885820575605447680908970889949806262490105200134898927472782168768838290125151189273818344756481349360211649439207778802079742223511273665758551298551700349279115700584438958673109447814049050215302524756293259617561259667565390181269171245967879997608239285002649077742450979171361779691635876044161420282274226222601810551914221456011114498870036137192995640862212781889183496845063895566592966472418281760938374089668800406998910334007542300498838663510499701397845059757470181197270532676058579303020693278755337136865766108723654490142662986265958212233141731226487182940155397819030049970303386374795577915820380280834313061038046459758745717102412547240858060746206773872065373870679066445914794122868259309956684402380400437492655823693939043493025862065560208742188769317960235527903351384070866706016857483887066608675834980957827353678407764847970739615170541312188125030375716316332768126560420225048309975474152730626383685223104545477894102407969336773431139563290877604117264826836541029860420280131517693348400026919088903177474386978119371754651232412073851075074894794534496177246119855373955429806794339189583340985667478464999796040085737568347725570227283239330823464073139987266410314016388503465836236575183644612063160846228860980541364176001619838934730195943470693331265141099915910076086462923473319692787589384059335256486681486471672698205064930713458291792617667006156858291155154262147645560525774628812473721895000559034044209176156044579991339485688951551367528042579924358935417457697387196247873920487875703476161139032707222123784167540063356081893993600160272871766166015806729668578217910208451322587500904560038231412834691215640308338769389227903111841723240479451275835623826879632367758517041161168588984903840645053396694020213282938518485413469774858441995426378781168911882948711870683751672175352316542106710938033609571898766180096884427925649083179249935500774199584529974468353627653745954316907411877448059136894977891398698165598348613834069458610655794375821925977833537014535684157721249005440562044358197901090752345965136310024520815181439027415911024411255834938591906488642723394710600847423474675984582468042285536657825761035724222623964535757282146660444484210800264724759777346366725001007209407482128103877801327587384697231843623881089559021798198270775644177398356795298006938563056982162010037367758832771587087184676017195815652122384799771371077536782350655176086449309080770444835693894937187390319082674526981107440679019654654506239444127236748586577477349389378776530212696736117360954976323234175446139005561631847134997898595754078316521978563888967433941910784410641225467602493884949428419225419757402764890881284383548208053064043284102747277142560951349005497242936095926755040106256063861303157297041594088252914666523430437252285958119483138106178373748551871660241784636404432874036286259722641718464574790377545428225829816141236831712347893037750158347417692337307720404033140020070902083264477602690716583916865656503705884015128193681724026046934506498647198049357826902346745425578864761193504165532774990821041597409841175554883559727110895909170162218396175803813843735818109194071615649183404325041438266680948112473118236186603325456006655694795748335894193330071872808262779732464820027606594242936954199350767002500826492437687737241252119229648672918117684312426671135282652291004226435286844977215367809732940825630406786801261586154962141159341531023170737092466761426443753088471794811013671863194207902199718017035349433036329670642358797880524267800642646446445706192110601761627219116822212121606136141854016304156295301747548547118056490287768796415857997478664615874870945931020016175749821793883938753820879126841546847555491828716148009838276454233957896785177337149740046826779559807646531910771727055352142000971525846346573959639742242418837140950085922680625983741598870611063594107732716040680732045306334826863884325106516260260008400870123021027294757056541765483309578904414222449982283191405965883815950885768259294632893133629315958265785044725205788924783731828070058586003867147003914304156194474841573168580130091331243477018510029978191714751063255805574640893881149366523246600862706001754073464626556187773949217520766412511071096982244159043477222065063916594386113812729645112501228667991579173444673380364835626877318407629884636494837187906966926509274611076234029078718937355092276962213970230056597627890423013482677818990632030279274882569706908321427975798871202768211288164467411834131059157496808355126775627656904797459504873939036696234761252379408246689530931399660109998558757438199919220115883218159753654963288958611245503527711042495281988430740201764802341546113781053520082263508519600653182522810878348223821209041359577311219616132991665617438951445862427061699800204671029283596013903035941556630224915347261114206306973159829274921173886859941580960894506479043481089807841872659735199062460419184300139027167564859073434482086165031925715154298718180544774249172707415993705355435859865193395822848643630236413566370359333772763920774932449540648758808389193790545321967342732138416356170966500594722256651495007822418053077408161767332276435111425701471205252507296621138805560357117814573796290206904103056776291783198700870246367766103624605722063370880194405287825109797106374972073025199703486124938226970294961706994699393825075143302281061227631825986002641287572807334431564715148990122734835324859815594071414603524829506981006028744000635027221164111950115483143823775141613455409756451019728255650804658653071133853545562328384988977618337946839216986731402462565189806081465817907384141059573037487901213040702269449643181790665854246135470145873301368288185140571781823663271835810989920874495006473020458054172641761287184465163961495947512790908012296521114482774738361648876146772195920026860196806689658659659379773577856321145375117911230203899736302430710600100326657509332784590274343321620599765229310977037352151781476128168238999142392078568255254367530049227121916832177792939486201950547347452343427754714064709954947324216100361292126613833696666445918638285250199658126382398690253087253970903373881221148723571486391772059050534565533488294532729335641541637535594505676518902384117799763645061055030236915096852030279433300403796026786932520221790908873727549377099120205406968412388912686298508173877819993274259871346148437915139024929168541327946736971694769936191867141912680508462624107304929344323790471274748171917981341061723456188266040153423284168653273478862124144096682364378674087418336707866503146127653467354257565356169174839636374441235613186568763692145631443851441390472267755921699033903116451620564235076072572698172764704463138352245402919396577152070903695720389552657616169450000910206690681247744506847845059434511839889828672242059828770381731859964715048146805740778176307484511522588923750991362735921986366235660477106392724410792385553034216469158744991014497666231324255594080760352627811517029227323624961714793880166125972314605928196884273956369229961591251150971943161689954741532372938787561925212928156751730702586808182992781177426319156940846521811372388363158321340262901010930683272496920713799258311584692488384611329971538225486712380910039274828378876093696105603827462744778911273874250667016436613905014051524935457791236486314395552013165675104621126487279780450877800805368216193840615022191470639237195076040870297746605004228450709759373854778118928019069104417084247151282600504836484728644385925577045975284000085236877125362329366576502541224259836699199763509797852029015382675681071625434618273295468646947838901362522390229925133306512398106206058434977119352277333089950216679580195269813528578505638583871622390187830759541032168421603110735110921951564194639208405399864574477970892454188527260444151182180690654095598561977258354910891640341117023714048371557266017330286488396657665233754648257952327416379899846990773639358060689266538024134087971591148629340246337196160025889966407153385178645067205483020529992585187027054209463338157574484311921399915169444097108608164798198880912900788598042719389063472267624431706465104831575297389115250257523739417012512759624708223070434852447950574567351629160673766884723018701374768789141556221612515393957395486281035934212666540867589727064792298779918017145163089296669284744243546704063905983055218156412237626257458076964512256327359677916518460231275857518254409610832603877664203453839494152679868660603652949996340192574150550076482010114321063124303315332926415978980011828584205212849457424151827153232872746336934771367640888459884501823599616574967353650521692827535378084244426279766954022151744304682590608905156357508868958251043928379175753241465719436009249013076719605786420398622901829094006581143188507585540154296937365973505837128223737478951602248619270596961179523650740952137942885806491766693100897016894129409205585077407183242240080409440603137090167657845936448385021184906530145452028888758732096167581584504491190789185679905293745297834911230731939948529005340746026860506865490828115029826889007286071638849226799410265073034826941075370397922103971549877805383457556748141886799025882305217586744177078147902134978489769444577031851877463009526761422477773348234353576734669694847179312879936970766125263724879164187626869866668512080693358734505605474590017846013197130806231663223996255918178201818735709556270839299639071080326916618390532813829954276619372317967051734534487454547463339128471648002473198138665496556209224631047598531583514963069903819631581959260720828026781693450660590086758764930989767960329757176297136726368995027570680955543488815643060834763875777169602636325844615869037592681026431333740726181288979723008197488114085508426269776525189113740122678287417393204538255377287686301666979272276688793760150924895491735772330904320124825520213255092993084381201640248606701028891283167993466945789111699539417235386693660953110969592617080716108109275680998037487938080012562489636177319109962208883699160711520880799592019360683777667804450016078656746867452357568684443341221880977613541567387046378781776414010914077844596995588922684545682821110843595011682189362103405732000199588092754225645186611154312153416324711990535420269691606009945590223254892427035661989169031039927192595414617647349452532031679230240589429303364960984589693659502918945793556281410051694719168291194387315352397608879202308202291089666162127796922614531751292611471654535174294992085212357181073341846525039596265008294051625118867508507004307197289979606732961888595166791905162792598620317259656386632081453001908986499829876677870422448587015402249413852475212314668744266253211599854416916565600605621748977214263765954416113741416063419859062612815167371323963368645765172149378804733227635060989374219244701285547782551045485593076018873066301448242790839358052293032285175947836473599429305178968564226741749714616215095450066134981094337122418200143200058679640440540829608710428921356564639865582358512339927170333918444002695118461059280957344225901554538201346684245898328261464534578898980844496310043821881075392061369527849784999036693260758109559986496416530027740344079970754376145745547383113543309337825652039167990690213634102541518100316491325576903507466171234792194089907935806383473819093201832101956845172708727556167656741664796639577499448864935159399034979735522032317489404785088699043350600877890297779691658432843753527191958791084266495115109783384750639156839977375064540167364113656265494347466309952920825817391889430520780331377619562694701428959489289017955141211291744153176937376453300621044140902237673228054162021332152743656977171036756463352232845802143800438892838468990732533610460794786958921648144529237952524079467359099811974913076152162380071847311290896329212156658630143011254677138146590642160339333089648154182024614729254451819253349061637114542736008241494065562345110705804314974430423117839823118446090624382541490396011809459399021274378897277887065975116618384485919532055298308771580850784162503944009220578958804011419170859711409685792983239725774642808970833282929074329405073848162949777784964635259792443187186076085122786311046225859066889756887395735000641761037497284689645681716177082221098569889541533925751227793288329230825268108594484168342460255793886638845086228700149847429754053192661866839552012794186967897093764245274600528425061957660014489890634816248861380644243076271256222174610346227580874626308051764956321504455126791730121022343178033866272519684232720558441533783705417163561342577189335188091774792402840990754183263985697920805323558103116728161850524787258014908189103049433428020394044871003438117758864026259252399992207805835437322559247138830947112711857573049245343768363111646384197993232029996263092881051092052789746992328649820697426723168032313560756994988047005422432740215271426364889481634480401786299348960193031428267665130854501694287324850667888987528074312267445624838726748093040629574241761658774935706145173508345362649239002791261080389416721850447488536278390832734800540829268479779456350793191137899981836741747556969313687848605589291749020481196746562590546156441515033697777178717267725500055016031307309076509461915605882475513399589419858238476515077632827434485166275969453714499298538976375871126293129192993754276579841863714409909740066853351281950256993243703350319761133795817091033058703771079415504115125001084901866439292790824778471675537586229872211883651853521266412416416417033101540239463547536668572075776108224678366604450849548971607934291927022913231436631253326764715722020512194320903285917463436149108133995926368134131283983297375495588062311969797944068944643106465409568255343434584605501456574697375630625861743365791550254825899714560154060694282726517284949101331082707878356228790717052624974822606541173730105729711620586226241490393587088520145603739258276229820979754297386108003815690686421328181900488492405756270765057896813453959832280592870729545858450803588601110008986961046714421471613423157356265699814940817673494457677800806804322007481512476965320371479203690794439027720775901464653437672572288197986710745665523009059815653263018292781887601297334435302815528438117201275636434051014472970798197823724862180285553751178356280381218674433889472135713475054794860020063336724542545488109535270323864898838205837991306312384331576985581498991800604540511086383717860603244765673106931483961282053802161313727592518937391550369068493412765619443777653578662153932229474439684159438521569653004988804682320341916549441297950494683927021490451204174342163737176600926687851598894830246826402545716694497846296075098308906677654482856294677270971182941139374997789396004878264661446328277265262676950102750445715629870443370108709258198807566791088211242774372436339590361627462324887168334426090620305038064113892293939776519789324537540464212572646412044999024649410695572007279446248802282731368820846222503357547172182317994051305646651821334074385800662351761356358358299950545273271958873927925444055134482937274394465653688186115951888804317780699858684187308447643500131496152781902236186534385324113735527131100962726740977086098419276653531836083995649406730656388556097541545484764129105780431076355535919075701404489507180935284580537800182021380058510679287835473996286013704431481074165665547343139840663938337415706000936635365481294227728362229726835486255948035283704966195624059190077493009335427133810619383426752598139065338483853787236001414629836139245297289571602668111315012198445777638338074377006288702351195382744090658056077742746237168659738408822633650672655231348995878474578103640020364218955624796901620483430014059024607463655497698391223337433532866598025077038211558482161518994965751850851698455844572168094021327333610948572424902772415446432603993658355925369726251979880767211973030460318569763087826535420031452148693468084282413703651636705316805363351075076845479552485595673845033004640032703505841881579593750100498888934599815855293632778294676287868145102697998071494489045108990557350130728215657356773900803040164136794725290721542647311946128316699995308943443062616990795102606613388524167846791957784131579618745650541216021164750274382422569097329322836971171741528649869036523343053262263096204958926153763452690872170104772407473334721995898219655163222389114431543497933356008226746446927971412692068852299682879529536191800316957012897667544905771183890477974405063856486839075811746345206750013914400434039501519359393947484616962539461396122416085110246037028891900473051977861501562002411243967679998328859520480047258881427913467249523930579254480069871229434598073453619610276226850913973891928732395651053548971303101405442867311095662973259141437140366294680088511200729077355145728581184272512585390605767753151588055718143947008686454087363908099835597402987658582819193754969483539552399997054312160924669208985952254977966055935908360821949474062092955616507001824229771188105194514886708958019327869694097901062391380108958363633500534861609274108767104420271650811992404386042497307739126158073990743825954702786199968023815075888398228705263114708124431420255996645834921002248176669926461100426202408909968159691858130203149252568135968297671410158987581649014153405378376914088517223479137039519022977392704124862266679195152842453240702518896694304147393410268455738718722633789296035937049880526596149366899833254100252730173908358498594200204916493242716734698049402043859290995797458533529869062658324497959758800448365250016663163950089972510901686523679875387823343146282813992957586932589466676562377540582285964064059386154171765236256687172613231185279779112841352045638537707640046991533648733869900175482708653859751006017050063622851179945222516339704894189891859594771532947853006856415608611445115482306636236369076257555503278236755013258210989596371367631877885678394117128378952441794203139900224960404437731053475884943426283157508115340386847242331966429055512850602745261741077664098746990665716072764996350444180436647126829632853721064998379982476261170886312292596791551787126611438335981519289697435305564528244866487800983927373769784698038822465259191591973339624767171868237514634096242210255452625306015098665906548233090393321846326501767445027509858450740530637757874115485811589036816087110948607367965453584148410685607149887174846782945311154439363342160126057633235217596383239048086257629078300202377423459158085663151264840431868981081517766950502501134514511154167991255190011809447741302244780248416886369129918872852337134145431691409703385102521124587772200604160600903640561275247383827062433833271612671286798080599753352100061222662464891586722302453799859126418736153163270793204388627874898738655884991649781979900485738743018675908390186548651722477025045689081304983035380981725727242755384062403676718378545468923455447392675048865050251437371817677477266225224710965358128685850131996501276373906099291525307298381834584506376598843375197011067223401883265123979916086352191839311604090519822349261122308713998666876063602311443432920624198026504432260495945555226490164153623361883134010981584119686489847990469494333667737789475158986372294194947508419486968358619549097518010280517670404354474421008685709385515444320809057805588549301503586564921188957549163698985404415163874908032844642175025722111281945771782369919437566513949280844549562364440717128165320678538247941657056839127870586821616380966178315166840736164808542288208662895167407647853461630919447207643373768506421471769244256758618499904240596423087357329753463221278305872048649152756963248553853721156718401581968058701175076906754363154413010344241660403726309192508099940523638659264663642382062148873074173917207702214677164873697320943279132010932689121449625794899732341373679958291311097368583716562357626808580086642182706483140088716868545294052130624291923012566259684189852521725114920310386836454414060522758654680407018113128814584305151244669556569629786548063419575876333283963090959950901933473335099787583967120280641387700822825988907165383161185674759762790000789663151637086035454456427749468643687251374086843430768836090324993400183127965009474044906258650720804778140227450596078160000874647387207217702354419528497915384796138990684812436713713828348476848849899358181704365474060856176412571874044837310781063194967971055194901108195201593743557492216845623374230172530799817494675668830670485488991580522580032490400489726930260571778823566717584862103697660080845663016559161823249042510915663570109269974593566803014783400510401108286576996525606633825398114344559642018472174125680214866777086830321790899707923680413109245432009241668979418581639912200251672063767247380832936183550210318978977383831099273600261242787753163520512177658576200391405246024097500590264560497965932045946076871103702974545802846591062030474528595383488324529148804938455596932956912577820838123873530965757273685852285633765617789429191039888224820851431077980460494651633690243120314849693332673298935757892012721305939603981208088844245292443522971025981641653596686611413423151844446409308559594461605315107832632117213216084981548849974607288484405587451615715508900167929975698701123266073501271509412373860365156859283620908244552489822084476552471250580513477415635308254899519372709728594731970937868793057219913435007915658264901430829031397908109539668046022191691015390941827347662430135225007942570321280522879919973349897815694870554952091681363643758746861990766724819059709577115736477094037744984115094144141448345284448170220849613821930940595552407021069957569895609840319331711574085190957716333605451300171987839475388143205066839654546793725115994561985812298235890273308231399345654546385656235208481820992737418349023094578493383279195662071280554362786915296061759840911403814956763064466038731772384702895220429506720031308662475654263976252878427369210168052720753046291458913940715870432915658641440430525856369593635034627056712921953290996780032000777174439359560128143677004422737511214142113585613517330317063395016239114481687563377295784039345969490109985128065280575459751233329330323026155227987511639789289016537174770246069196575925242073456429413778650023020033228547845063143581379157496021257463272455865608338765076464373540976172326657063341555624962195693103050007265757996580251175816042357527539389807295978644140508034190744002027975778227570563363906215567253544476492763085724540659340063075068065581873668873427286062211877702992161078749302420629724004676993389483998399367245945018723908346769421444322840301053585013478537663074080167136657677682894513473994143524081192074177987877118590808832003814019268234188161999064553710578152486360377275122807084347022465209354859778078889213531551927786356696436107868332684007444517498118952351237154083559425696971268154630750427834340170927538409620707283058321207932923245500060043303530804833550442748520681902841682529846357783628360703371282020521139951116923327037455883404485088182429975314014091690186115345232614953369535979436212367661516701172556024525156921684176319350415748343198447625391352639330596321764629621140571856289136838806922985047764219263161469687128571156888430708604573069156315872980006277502690462838091171129137343553619435653025233889662145872465773251237976257057176197356923842154273091541781962901366586529197369796868691422327691689331598171309923535806738359308516951937965749796707713744701199787087416556818304749390096712883404120137024515873550943144922894525356870591534927022404832920616676824141342775753738185932189711672801900706072233460695645644249617726980486352098746276504580728891410842064086049649133419257216987238343769059061481259555539151411542786499041008221187520047663679539472914548964049382870000923552604078469446390555957509938424084140625316340179520967905021601546505653481237602597681377919913397417989229252647982151330471424920525656315561783053277616234771914919738171966963129282705842482126195976203097342378075862620590746537526543085835844153193476782445507124529011947013637550421082812092569319460291909264160449373356831464499336122651626048983331356343082159566537011787084911356863266373617640834292833369114384147318946312137052706757810556521202225569249140598148478367625074775202696997245306156100995408529870480067203648536508906025908877161739001822133325082404784904922393451499491007795678996544753924850925536969065260261263690140894067320193115247589034782987756144693146927022645404048796768820065490519710724744542039444430467905275327841013382083186329784859507950614085409657702563924288643148972497256335083849789938515954645573990903255152665977854860916760958891913404334438194060580167177819545704205719643098062779474107258786769664907803717802001933685330216261435293232776672037812737437871856982624313748894575160462949605177740306938809412942472858150379780771599305112893157332309108498212960584319355789100679717962953365177267019014527917915485713161693878697555366943337627158065611247435171633977624947290487867143039221552121225589506899398910490588914115274713952437756488008789890885081740480227439245871239277930509954770000099924119412394557587450136652799886520664405391515016075276613021449190680407313494195856981267731422286387567960411929447476949496179336036248508084156717276249113552371011233841620922890796662782471715133609870571406850978554424759049873797487513591579950840720772521137034502395938382138655066535453699729425629923055673413624025597387681149766029786885503907284840802187346400683378529814447153399813704765891439571806890836199736242227326024103296075255467888666713416420423246527425071943135151037378530048114009775463132292032039040338172979284073923486389232937334478629351211640533905970154065482488864501678656984715165045827477867371820138346162200827555253034367293173874591096161178623585737878670176186258066515039825132778127436222501196559387101554909010124150166906288008828757050937914392873510939155002305276355326528852270875262687144236382386076623937553365651070272868138468192788141163925211205576536000105770612620003612975335643739441745670587735437031753264352822967722026996291099294224277657878654301125681410495266346098055021949926004107742692768574743464135207177735198914021584933345938455521845201938347787373520987569998968672080329594693295940815904124633841336894301486230779131596827632474955293777710371904666806009375317789171857734415274180790495348266363383962156918091344443002045771959517717462840848481794212313365181527473588267202589999837039148112987274441116020688359398146874020261587408171019390007363988739452744633285205700515416127222632023838277748584418777864618731646210019495897894068470384427752091464856402203293830176707345162037281560300821989394639585393986313235633954262265263926983725498225070951879660218533926604556908501455193061478687071399492035791387559705555868751932782321867015689369713097248545940191866312777018699832179135461338221006087632836407640863679363723833600533332002052316179958523783023134493729768318820224685011782865957590209157441650944190675274114697983471402244003289378915488783322223162777219730905953870521937705876923641016331172815928912581308190731507430168044998432344719363290417143367147550421878547433708448914639676638223922881221600299967328484284793228994474138299412197368942229709399990441186441404764417388152152272591958236261856789020418469523833583905552683821779555010720883021592955482211229818357503317400322836545197586557622872110031241862887107553001931882541636874575306419575845956497348264633205224468103159430411693045760792770323159952756495240910472378914195506378683564014738594876434173505733100445373060703942352659923919157676997317195467996543110033030974300623736192743062851499620966597489871977704513317189509781086784653784350138640626167160027024636471353028115865995334326632612543228634470264449138723393496693586779007101099947646431892092039797481912666441703623648223771412373968734349593671710603146038435770463658023971686264787011426952965207457868903347417236382427547901463931981455761550015484896777041754607222932349517718266561347788109001986344838614357885993317211224393898433764760630292130200786433711609997740242344280657046565309863113022921006062820604109816031969333621439503947543717240258066823692349316147886111979088793269337111853705172549258867930214124994768621192047704032226120146475466907407544013770253649112596778866316720327783561791850097859205798029224133387398533996075604811728385270322824186525113247436753486426659701439050739964949239822966257470730896198939511985607958788213792800868133856240881660607788181530265409257379600833102592186395905309145504585246563078022655759071455117679715197573763585227178814771722888324753248367235093287679770459165910920973599266819157475213428960080516040129104717701515957110338927432257969898671392232424750632135379427610523975721341894125502886923739159726328688953438662551484137197043975427720466522798273573670030088964475203305848645875719544950258799656330216845694925946401526364709536840265497496691584714210620440053494000867820136142952027249310666950410027514159917668416104776445204329253222821223434528637927258956069261093461307643828901272075532710497270623128087533350109616483586264875637610414967522028547202881947882309841688900785747492082115411614071482216392765831866793048538894765343879130242271028322654027902724581099255770728186509394731508786159862591132786366490468675756226103474892391483804690054331911882312358529361331897990867188696675403194155687798949277435705455227239033312148105073583696665032264586789529098319769041615603137632388900293935586548282761427119154207174546162014340506059049262652378774332281187833872485261717190587907147067307701423911644600740650478402257015197055382849744819398449915612406299640306113242151380600431003468294350676436856115534543023479097327835464380674445115971632495355248281121773801759243465259359577754515012307912885832689530219962430513070868641010391677843426158080314201741198544426129658395746654187788010120144357244604262224502542552901950632707598368935301697554244988389095796284467464208153495901042484275715363114455377049281764294840064077920532521224814726895732641161189968110538514152892449623352992143767556653603380165841681441826189937577250374761124109018994299103036048333933362656540599977553023265488390673071491346757513755629625241881679364321331363877758246122203723346309762878428454067718234183217131863895651273176362138149230340998696518745022371051480377916502140930613326962184573646693146199007607312481862534034655865063436231740450103678286546890154500986595133869002282122324367979813309830383847927953225432927302230725046265609120886635070445114526727014659497337512023045849842957756342738327247970804544415925549395291156663757245662608335942554815392242733430908438987016622948807094239214700504886478751136385436170639203154478712054544233453975164815863797746538968586418308736185853175619825828292944668696741386660477319100677106687010662576192231456152916583172875351569259168349765607137468748944003510133120901699035379755845703025631728114585487131860885433273173435637757875543243944313095075309774901959718389066466743886257934524837631920728269739000629729702893009017256630956476198564610109976930095221577153619234418590214267918374499252395242178123250587019525621020686258319350714105979588029911723624335646956434376746286842626624996024030864334545712991254148808463616561885577819971358603853132016770433656474902269612285349429939494738649957028999036333019818090532872452716160522230780724315275635277350870776108614570708134693174374992474262306464464492217967820390253972290803774099684101191286649348954167374672701809397346722862242389728292359659535252384643196036385337227281602146677053172751136209476079634066355433548680635921406943395593503595247183957434594981958227825755082904211325942113199392212922015318537507573575335858798148811510535663634952207082452511813114621171465129255962167949298466668192415815961863154954524828118995940396850270900017327468737387851063639142192805977498406785784470282545952363476361218861388685508210540660463675422006473369733491164883139734243463891745187290281329592354592595990831562246333932128561226225602302188629040301379165385464699516342178216240613287486402630216236582071765363330671290898386829896522622640353201511522400856361623565587021746916726813764677144955158403835899957484671864242567326161057820657713088563293944360605970813904556956088990584075778404938956025661798463943620555833573732572992270412049977795302443203992957300132062745303440971545771823471097984922140094117237123750276810251031095346692580242598630234950572776003701871833113578751677117288573865211224298396830059321117659345804295090370176476076170059905129039482318154694528825374978472071350656326868280303176284816950971407730801938679012884200374940669689591361963896906606357659085856686862011339314529120635224794468677881640411475759695389303605527460718163788105408000017186237791990932825572004708819643723814571591004000708759923170684686804643631275784475770714101569103220168648884217799956816205081473875913061585534273520664492276555828520360634081432899031622487459544835690074547840964738057537201840351778331163583307605266324710856552445643767922980314088946576825820997079892495569585971002137082379497345058382696619984490227663737724129987777151069777992351510087983638687754039263064500554130450589379136113378648077626289264871536068254277964538706559015429541091075686407537717811212917024120915568468231655450050381306249494489460919044102599139115658989189817136992699450711682263250131137085324645275821540909298835436292263825004321119878161989772468743452791029225723613447435048160249019159605832814044544193396607778231814047191976242658615693724135922375557301207228031998324342840124375736443090361973020741508144032591604122895276648649331083301997220633081798819629641264781585460610765548044355466427556636319491814836304103257614762229599246625173327363992638082027412158101226859851169328361181854279465809797083300713555045770627635089830264890867529338302900886311138765041484022300074410083736021431771748537995907727626517995138324825815254322646747098774637749107117702041071387701182679511666366738551604199196871494373424334825973215199265634119233272101026785800665421350574189166358056167689866840743569830601195882410637331787610959448445118735034343949180074477264154137650537001436100648737145549300591162487193347501560878822660134367185071105310085365710198081823934934801855235516815853765060816057338170418211727184888822386729476391416512343816963585429393746599215046239241413277706584833651205978562198263991049924426130924229558323006002288679350552223119912192999524755527209615655207848253195832304784863214434203790736709208745215545202793264562888044601449514768204390879988758176737217717315138206966258076341833076520757737860947977399380732247094565041692119720482529837865983942457839998242384274318785142385834955448880472492565966041794339543710916426066562760699750096050032827327103401566500412933873012489652487772192192248331052825254379926372165892573747073014333789487096692456290557894751265768132494414984534795992058335393604046136343914261041947576128732578907466121970774777770287419790252203589140141585201063298658158668404475534800590047066817405736415110469430434458697523597866585884286420218584655588819336741964237247935874544645734222533440517839189847876310261282142188579263912612256645129754003929880052786003031441406660466564123631599122281851156302477445315404625987470390527934057211183829272602989476354673928090023663948467356802709483138736143266953392015018384363923607008871156939094033335624117878575763114101386773547071166195691578701756181956901687487138982436904539100348103431924255009510828901781793686382413769220534369430568795415527755447419813079422862180590698232941908084627497595711455038816797011130347507007272927378190028746324809025909652439977171980086168284474011978128164875694554604718821541260465091855399084467726811002315642477827240544688937834875420593132959427447297681322118372182804132874036283425497027046950997822920778924805078959122706096767817632423537044899852094219822298569208473926175338698169255210401777996369200579891618733718192765450989806197590843291727960207802905358377061286220146957097498867426872632162655872928314146733845955786884846197462139616406858751685721357637204995064777384188228604963903621738042771133774656605132451213094405045373554741458224980927067901742036060689041431495887132298630089006099785206026366399177256296217041266976890893512605646167741223851278264344205756821066232028936904879064858220295755755456591698793898256636136774438033059483277752787074750418079013765241674298926496554367824354075522702632928314845748773096089273735292066538941698131104553078486760945472807456969872645793451110033447118716693476781845892803301509003706279060640228383573561267425732943883017363611918105597220336090900427916216745186445411982675352950786807110455550501480915046307710263447621960679502203965939328723108620123753846639377537236308461371582059548273815730578152419982476329680412506252607411353379660305813358522457559904015832046428716846546324230259061868412799751432413975421282144471400001908895661247927060904441337632476385234370998861888771728935681029483984802342993515918812099347188659127050522992961801924951032252479369799755699339671003316403813130805371421027357319396399322794830449881801215463046332883382601232649244561578213112547550888378223445483368797856212772880010464513945377095721076676524500011845740391729630644559365261341535581402762233460169158349731216295113537348234780569974115024284789759962141562678171928363105319161543148602227506490778560717504554231308533092839733098747225898410551860623645000972699780943320054977308060124249633248174051514897980405987604629952487340714244564796319013822680709763474079261631030086698864316841719189006579772647767361527706590720030518593998951196088871319854089064753634697075737728121701653656922844392786062110332915874166090244397654271114610339688120815006753837870604272216238446265206261129555285713354327687465208727983781772539204457570615950237440794673823026838819245007590201937374852580731988590465541370565449530522390582601742767031253036908844087734556164741411872917673974096100617035127757140942234086749819558233664832263858403241967712984274404492424236022643629536910566470240325654186513444568595634061811200298628839967430282949453295259145744507155214567613921563565626223524868372772504321357066869777379424423478252495210088832731745576212258955972982368235448300536295572938707344290539372460002272111880062846545880800049624824323367965364752648461403021314927695818862789457133949945603120861248563086109363747461816591457543497176578578824190068099711985717191241782576129657387317601972993031309680097479207195123414798179182620410789448172875932683313472111134037091821243026869410330829820029036554011592276965876493835105864953165708273319132645555869734319618037522363814130020205604879328866432111032244273368151629912315409566575937055511979981099392749334737921454891898831370220009188126058170001505408035735782430015123322135101339737300168827985919055112387506057240646931812894449753083762995234582696302687286055832303425572588650602734753334560667553603003965051414033202234184325361911691893476555714397096678332347017838719878023928716492195131310728839342714920167306636097644502572563831211636082285598067999516640585392022637074157118936157654462434212035182776228624136523626554030509964951959960982092918280401771270747232780324275182609320278061709830498716212248675986290138221974420913545948767584024453680649151966050922177436686251150515085280820329211675244024384291926630216667175649212754537305603328412365940681772319222403070018465032210462184072677523344520332777065480469289557172929918037077877611087463675666150125703314467583945418916101375239002791379848181594872551208145128868719734042598361904344221405199244207248220686961669081476394464941776434463408110930666881126527787069941990130866922292704898795792085566396870213883863186873370648122902334390073547415896578938895918487167054383642165581213928864858332060025293756274767562168268376520789657930815648335700449116258137735654199233552151679396933404859271338310613454261207356823284974640473173020523955905719789922704928420630798391872873186275743341275032055228819755465241114255281543013169067958982916595542893271682971217168227758596964402948673367930993034710522075093948427970580153941552571070573382070817543984843397860992459479888938853028788313803177600414709239253856341275405031025807587015823284453993358635719508374880667397699651994458227179303449957974621403563634821202731506663243214696680692022131117934994119750171558977343465758177693242131534187621236780462293320013395307170176567884454764095737739163015689184944162224975710060039522357641881711683893741797623628531512991505904977663975366697469394684929883333103060099773419590126286312086594143046317896144105522758458356784254816893100513762382643443937389289283959503662624433924329183379947065701284065535015270493596098147895284647436251855659288816549814951347608837762891543603379882159208510505884784969531687547840188808701943190222707311500965492241673353867250060226300558429051080147663300624246187515166333033592448468492363366693599290465354311457284016948463897316929515157206899721499348788877786220162605508850622464903182102868222538969920427087512493878441640124197741828940692271727295106116057143780673982228837353156110876806823665405789044441592276238737431647323359552737969999867870626990460135887452637006016007854180548205181944790491961044796982141792608052633084037368104481363475761172387075441296528865614652625842883872465966016691564462796019992955969360640382027015343507857728849754807850250803782038490479983715227341244967739432839826285168840106679748170675431656499395342819388297782403338043831229446591548308248626540217028262634747524501413538917861774371360327540112980722762806629939996127208993756238388643963017650913703697969366386450051792685670320549694852039140226474177149866751443336189740151708971238184315713925651049902775302731878372009899676984406160754835546254537490815230765991281493695085377679664733949404306234544263155964690115756001346283341213434038985256938391540742715346038604050179507913893489889457030034897090521229452333175311860491825202367759458652686378440632113704239006128531797581355597142536592596036111995566756281902419429045859248424827435753379731057922609502383755476522379705852768797571604733419504050802161785891454603512395830709341563007891103342470437389254286638034291206062428329711456870673533624084427719844360614140228292299238090357311884756573194612641736898423561161599865596897433555026033517228706957060482146469639663951833151640523635143366271414586307945966334665863804455473630192858101957053474289979163482194698287777056099785121440328783021489652785310670513300874121783338804261980552050985649102660489980770788365639994279553669554854269133664871173728281052178253429208445990765840048867103404960761218521744858848271584126577119418143909338230168344412799772692132281354505499195678098760928199518505132098798250760188285583154987723096336013356476519798697144982481653342435779822954055154983131695133455526517000722789106615378288210019483206068669910559027899133141761599164886108052258595471953774805256492186610528746621661593232766023339135610324033213175854971110678128041076558695725611999259447517477301381758432794323276203517219245590652519821411404779993193152663520665730602496777460939114992142843304405739219153890957500939254351639523448258760333120791301174988104044171551956003472918607515049099244440957210567642266486164123733098595435923886040269174171668554299039423118128819399951313348989872496332583197069325902632026458975941450561470944101999731425034896549070638567592507923983364393071499912221592970385771926582800939841604291539847511820491516299180453269645338210975051733906824111313857355181154508659786806981735247810462152118775882035852551016939576414725124006488000945715113014386006859534009391716054767453682151882500785850055183053438786039278908593277780390988302985074404041867235999503217809851604249834358426778399716896371750321919134523595300278598819545249028365736427672157769646485345088248095153120796992846104349882054381032661165094316940006525660904940883648018696400066529613581950862103267556635005502150990384286586920346079845235323868308935064409198199168673999163773296099005416634633021015812156144463407554532505895571633992820161101817337910525026894781310467707898736304313930099145661127031302381374618918527423956075839587389232306343556652268643401912213343012483760998469208348767532559008353960399735467294372439892349705939088833903264509160589984834092787981720629837725605860598631517384621950572873951641424120174564025754772236094493770737412904062179305889507623887570502341658444502650605112663000019924252336178991240091002164955619523551564820932229442846072476254175247639315412902751515411959696783806020840285746938859788321592325873759142606688618389884808604364864008239684626673193100339945038507758387654859093027063434559598879271415546011602462873681163687192565502828122195354556767877065624166010466709785976925586910078686105136911507720036880130047413116849046281692203266442276134525787732570368087559636544516797762871097607541954746926273222785775052822210626220724861902001186097766166242145419582086902746970705385883245711742022680264437333732403559691282644411418729817184926353755855228811356674061383498892613171891849291350027990121935558885232596999386423329382389756717542494675291022763868069408425683579789160032820716205742913932212040517025969500108295282451893349388070733808685918932400470781994929843339938459351556362932426649712122175686541107741159862547457718201964693386157007792373777132335183265675044015109419281363878465353637468424316169297233871902862090831065020036412361125348903631115426069436158265947703923045450809057427268001112943754466800830142235271631319763391343415278800266899578949336684121142742760711174676868497237451995593527488252177142510104537859174169030843293529800245057321029854594653887413008958532755980653995914295726334282464825347745935904637223148337453849163029981117306244751964946157552753187824377495655262866058557949226377578222635113099201810232728118264658717988269213366295778050852315200293413139982748019102676116455105498650998324353295766767823050116477887041602298651932263945301838127569499235840429161843210190517088302613270974089020980068736576823166864890783101820897799029973285294027218694315857774992538273758343928873095817902779069355534948886893649806576063579725368815803667370043916008971532985896133491837332920146747284466037913732682239283763075713984480495724719178822116963094871920924151367976901588917046727663977646514881623310334020936662565213757838519620538787605274099215161255795154323669390964393914694097044052814249894070261392400785542391963296872955322924628828306049340587689218570391458152082581315950842880590847100096293944651059583135386463804101371783087119411428964474127190946168367263884543775029963058054474099423559797136636678577918210413955353361801689690191774064650776548126616341538751255485262298438499516260143603092503704574609083717362180988862010608266419289382164906735905442040369428078225601419134025797570583582526753591465023946752500612080875268326509061717122066521168812498317680987962817055997247135215233707403588648289834179034156555007213807622032478675137909279627625349600124254966885981078267894623608734117900199213433620511682341603151872284332537187815078589372784420885607887396390994896366807163852789919126620374179924997724550599968349236003085962468632908004398994342786600073389998278872021185834542391609527706852102388657417755453276880426769731480561031018061287026830197208036128667644321776008872580173091004335547143004078853044722543643645802129144645497352509354521417949927236705608464494059268750075916636421237095656665152999513284159237953500455176204551684693197348224068654072848961515332665218892161069663654406915534121761803195293966310979303800362525138754803077718751709652085466557157362432709432527012245385645371850965475144804723942456886394345695282146477841761577539057362535531436581039687867389512846867351992254528179223169975669653047424881307357006437692200085325570003152350973661113551463337566506644161725090459250463030129703312089168536886354247608355920735852068762896514294093062793490267268074131266262004464281770161119184652571736649242154200487868136324004942212756593051652128999403372304047182783495488730474264718656031199395072009956666183235701831893926351880150009556252113388476159781155520117931486159974467075891981103628678759973417575833961490533205410669953643047806396687059937808332823486466265342346449758532156368483539128079434225705365814286429243678331008062543317543203026730560658427713930728863710535805974383199603502723118843580304621236227847154628344553800359625531983044935886896404247078748701770647615779102023188309320016860431300290253593653558712703624500705565213642273175952620758169028280891954394486585464842207357318880032095729480512796629002880249716745723003632328717443257174701883560796007440716214061779643292529716050469028041951762396255759060924981896081074116297911843942160802096148425849888121519227902993464799790225832234061150688674819372990504765650207807875678444293882684489365556148696214574465662380207838096543308345195285004256182175149705022522906831317445454485174974855738580833800231412136384796449646692802759580315966923957192150115354421653131213703747582816040923407509591993910183965494938754187761286303329921427585978232904556017740338184599464946950310194404902260327802805492191120938159926193065778923590267331425022605623159321259256251580853082281631016524908250291442164483051236173134183777089589347130300819664956168542692537096748376555507955998998100460423475745519555202261258290193086373726258804967441796782240892873212291258793119302864405795868609506103111926636339575866314183114565663045693207914275437242099268753480593131683645774654298804101609713333306471777356008358378509478639566648835368154143502643436327280698977390585165372830330488266451543678173165952413040228751200721342992943274420700906948753446531733458064283895343199940888362021673279610446370567557526861924990099613550559469422193168551743586020527207742320639799576924988534319606399731541748349879885045694759048149156609110525857801355716719750839140279288361384892067689511713228750997806147191067729115779512729557653640032254114205521978673507235475408685005899399484188699595859288641893464291204224433570688636440446936106759795656723850683735432092796915386842486199712073836209138670709391650199027734390920634871118166640730073372490225965778053236173118098577171187639975685965846473647166585529818791531376281259230687257522829030310857424492383560630821611548399518801233435181475663067568606374589807520878003883112969971254035956586497571679258734434269531753771945829357515119826534904940208852764034256058494199166302101520689692814296994245860544366559488474514679005968075175449698512608401816727646818753757593888187585644855977752485714948551236180655448676508369613964473819920735353396991521278385129546275389359696096575034869827967162552951674795885995914289123968375138242795133663774541798043630059004266410502397447148137009320106355516497332147281920124465829641155654852984040852937922158763441931501035182477726306958985452219553540282272998293622228224512972217821302745761968988016775986395568018115670216349388829489132353574472615787916766434187793072282671504512406427150181493665655863546060381051290702368063735538436607960975504335009189544099901176305479382539951571573118945408062000761724242708674385804522995405259952608096463273476850405620807768552657343745939331381410726345857391807779908166273174509047706977658841397414541283755647069738933453017488129713483137865515647457601548712323120070624775852143658862142666982671054976086509993681941280774451622276432105076540256651790016255235785983841434968966588874432993614703746600119290099949514681367423442569289803744368491457855243074693073290198082503075293759034933491251279758678527297956841499671393041717459263880243732927379623841146896106492014682516748114435721392970922148249121807013075785717623654512747566074683185386313620121319194302816692178914388533590410672904640919592749076573228633079218114445831405884676935041557663455876152168733366342837153954229376855502174137395853355016839026151136707947076834752469608302163777752589528339785993981806955226504387977241179972235059576408447601057595295479852898397974791297054547573159478135846741594554291220493943719191745905455779290364908473308329977392693145235380057603576621933680355707534214530273441363247833483540470935141757442465483687157971383473565958399139699006907915205756411292206776143321749241894449589492213587463750400809281337930376213536315495201917368226481282750385096154747430072052454232612987624602822012414794947139877865370823965655622627041219242494823842148125539434215914742381230576570436912398616450728410318495737091838311990027736885285774148288365827843036148505186921006471818986504930596498469052857984645152331705285656830351344895550009150917817347360360502794835178543683674287579363762324381323881145554345578097356392002975882982041971581697882519907830312642841810708692345758210840932936263268357084666340747475737032048165432566570344541868511548958281570690181153691458116923679974707756599621022693058177181888041981648698561990356891624914434584905926177282264768009857437649696960819919107717554838030581898185134686622794639753150564936621877560812781981127026342511480987031366319417083067297255542317192998402174803098032091073908131011165906020193099120141147075447920207156591831347386179080653404105368858380377134413666187097388003458870264737012537576513192828123826550824016198828759444308573346031542283015902466789123023069152000647658415935140264137602129641343975172600155824559899487946396786293018054140624184362246827932537754059105061386936357619272261170273161041159745358560413202222580680135212956820187833936961375088188850547374776927989841364933617872275377338610407857612655565642612068015006098102569874707442935738478171604376479044828700733873534859612952822113943841535928299429996314467506732446258040826588829465541097707836015826445173254010651104558595109491265463288041665755875667673330485173479035030643899587434887479848156131255693546953565981465360506386990610628377609667356815109061864708111036209963975073952320049539801150993042066916063747332087708854437282975753371899151884347814736826089557012135997699668579792160315823683641962771499362478519188205550541769533537080338395830599032044329953785753386902549726740497933738283330658731944393524734521543439921628929635919229018588978978244047222438574105931020470401855477599160983277578136519250714003893453038606179795454478726619162101643179603337336049107719955411348594496569691908278674311561343525844845404098865326205889324469811112067328397553809530571809333158109702078643569781018782656470564468858883829987859482129774345210964273213299285089611237036570376792269473465444825951052736705331626368508571667457554636476936597394906643569591693126022406051006832741424021496027688092871703469691267320768722121960647093198215977392085262329320038983756657192155041902227714501521707782143281009388748311079008990845341043800086929781522946852252351117935581331636916845599298535872932085486655956399559731518416292751314920450134214859982566894535653457990054533893395466722126737078379403803927482135058078757163612094176755637125840809203660882658855102628022832916908389389004177586160353043036592839543605244323146531129538858700800790026964926879891212326975807895647268967457932662250104740055614564325362122473339138197989297724876347486311114319608687724094667870533823782753281348892139336780492051782315868894139937790761482826888986944073366463905946243679050176786985684982224133645080492695414835524760401507965695819569658722092539018782094852544840734851016205119802608494868164875715417412221735708974163118087013179627348618636191799037550145511304739237219627148948062772368184517595405933616033994489810896957608641061960050061353119263792519621909153691317762625235642860108560927197626938194553274108312234610774724060577054091953853433093391751691089041153480530128999949648325546770618530589269580828393501079579162634966492833164276506346080971111939656756757906554114951257293098833552544662730105234530841003950134076685968214490656279494636850505325187847623090438188555048152803756107522629784957248393380952388923902219184107753839431644521341572304006086977368276952629936213755911683784782105897158269545876790658730102912536482748397869835963209819126042211094805489544451203125676071831173117532779890198397596906865361937203920031040473458629413084295341163657648091641957592050442302715742345039383443411075340684885682342092800677480540135872738642710790312992104325897238498278509394898130687648199641363485969358921695376382639942221177567828230478239773369421755825091393459559089423798071934334662445578022667512073613322436591818825750601653468655542962502268231151590550264651837317209014176617648674397600306080194513650318507811142147896631781837256596036530606454163520157566828708789036823352643361761200745635793273897903427393332490790791772384777422760860798769678248572064760113003433892917653553719346070973102741291394401992330779551839286298186284665358251139978044313829943047706868245548213628550942784044966415321207858018583801854507524851586109976919061883296032171914449839487406966923963736056444483205760297403871808409434209398892928219765233495066305764749341684099367857737394001047688744098248899674565329187589370221793900211185648977188411066211080264656422659750133082226137592960369851894545094157089564532096164216840434289813657175283833556619141477652268831507667842164539111005051310705405885335669789222723044351930164731794611142883791156944960964141028944203317060871519237612126168161893576673974296711073846591865097281518248348338133928393663353414919516771329411977430006582974493723734329677818807035149760430755146552820747945267637068667610744660803232522052955233981492012950752838591161407872203943134029584019023667549659826895099057712496450168728870494772448041561757775373884934225046885434789667970066985906165362555889484544131540563331322403168279299199746594774217770911589692448499748341855869754265334856864935244503615856084197368128729357162967270202271874917588444258184809086370122542994434967835448580805166261290900710180320952557877933989952220604190586234280277885224536363526547347005266755198232841173898036758559284296006806289716052779413918745362655765001374078849697730241424513790684299856939548034102035331937611282461314873210522967062591428606324425411316495944205507271773194711879838546821729985895986420233369513241367542686839216862088078811688029663145856604969765092878351169237231100622224793355898093062309665807380635007940841049669797047929476351864818918434645956348711093754283117545256448688631029013908484480814161127417546440181940441683226173186190516200454112401488540852412935874230482578387009991873562360742454733590993772126097990582776196126106639999432113565618022224779925971738493213790631453703645665012936881936674906292906306445366843372277104421436046159201336663608086404956592631592889014414478318023800695239656901985240118713617238815092924591789440001265937638901864160973837963517735297587247248142105503455189606310038442038454339756722637069819490164535585209331633114100706776091828388676461068911922200519474779073995271907789584638821275900747076267800538386342122825191369975908304176254512815352957207459307124024884089726621922858674452365028601741759763313045493741040338840188313410028490520689168812486262849324570557469325517931884383729821590912922865446978281252378372009752060068107035239741992661961703856466107969707484796101417482840618300377830543790743454411923730123538229078403761068786012285001695794594054118787155856470339366640728966652071193472383921076059531361493826638345519254256263361843448139021010490118832385900526630668277902288795904805862816399377232773011212875153236060056075498403574655508681177384426111414321247759079873494190986528821487202439211062280038890231338301934909883226159267408727748241678702830371575908138615352213173671569377670935841872914283054972384470789880810652868278115548713205449219983510365854692536008416500612372967052926525514731986300426033496418995326904169173023305648592404201407858066735089302311408620236882689779021711201226514388000594412482437706163207739726892645554416392407388500273899764671144005782640929344090958309639494532495561809504263744729282701310028988363255847602120157986240380270469093023024599002113690018363980820561987581039810796555885253866738417672311258574922929234839641488450951009407744075412704433683034090538022402746802460565062198537453563865187047897234187795571238208309659651410982810361506810516782698585110747458364359327988826724221550992895598421312117886712869557026596791090991388158021743159143225697542739566561574771752261889529144132438828114007280575639882294896534378137703694874384080417594582494984185488799421838723546539362347760869942062565202842465782327300377172185010084730202813983054606687242578686127256164316915928985183356428817350223120644828670750197720806016582540826644515835105250818179912347762867434837861431781389913173887049409268563072491324714271456454868876330849121994089797362631882383339715261792830080087231742203158786643013479898723360787816630453836304358975033197818155762612925348967372165989485057449821973040430671711088290841805898870040951337992161710424057720176972318063023233671555147565149314943986919289560376298368117330055240952730222070908176377515026121412710242343884100440866430518984152998303503131343754299208385800130888434919034090234144028614788640247752765405425920605678781231304917155563478779550673169369669829197959044062547870872848784352282902908692083209340615378040365081516294337671010776448055049915927866316499783872181571441034659024293561352818636826349794673802931412166097535251935031644989836414738734769999077492129141090712805500657052800199572686535145060409543791779267750842211335570968378971477056111725985134508671824370242206243261973910007534472825731182651034383797963977500934433235528544734200259784660853096600248894172189182507691952625636699556056310958751021263083633485918590807785265120440233350258100008288286440503234264093520735414075575030173643874694068599412253093316015591376420474624596855134563489137622024914504823782966278009484543604019703801817436454081632971753253919636428765112393124577388281370479169299470440721303781746397834093660836160272254106359787884519776336832294736460960328365323740526665692354270062408989090331290736659888584117416479050272617319104078199782666365160085923037933868080251031731156209331262807560270792008165855366216903696081163975375791523427960081213305737987748266340979854295898279442576941774460726178163973532478154811161441217680730419191432695702825942316219271419423468340616547897182143230755776540604362498124998338269406903109737604993973429385553663599749005668545707936994590087646711820740871757689775605200812627318388837093419452795798948638542177914087450595832556643329429461296610054008864391059421547654728770128582507227729701192720094259117153104694750102887626583259918208214426134494975658176915984802395445675898494320513835310696005376047672074898343832657240380949173049643668735900155592453313395086979735704064725948529197845395390941346866285851636747519939384004727513719404602134175200040488412620829123386391719377181373424432931849200163305870929735902529609190894861226050006247151784586462948468284753188955442421973945289700417173934375465396848233206794749964063518381141336439931815951244244910914686549367105225448059028936499802745450304377684786504850426048906619516137851667140236688146162942830964069402639185072799611800930952641467558947097115286188462606683677260544944383085373944761469916432244096850278203711536963329194123379557802454132691072995065481521762023506067560098322732475538464340963668453074399550781905101010003430613411502665557803989000288039225015763873952134404066003475030071319955721633031067245805643458010150050007730197552457636996085417680281332745879075809864442539686296862058228678434074195176771727768159180820739433969314417392941018660546519842355995984408215404213542429041686084018512905799884005406915321533814389173430450634113539749907216972795587042084236368198365070679424394669354670814593931741177941324822554056343236601310815152397059071532322980532529509191244110283589847413737696140538085892005124017669530984166180833807387418061677639369029155222050042678161237605665052721288327993150849866351266211134628113399930358690816072920313410102846503488448157651974773494771817288694399393675655385419944706789660999070044252157806347086498439468462785044821261326416756798802661672153307234716819320920390823970936729579918198197612506948600751310722149175171894108374498784717962659324298540857307794840563144119704473666021078229378765793656841359885737904992512136064946552511601018875810954684474939273859310405683895291138814718633176325278629945697213967515304439148707472378776397533412631248708945724079697971021687361736681277306471573616597977998271135213267311343847751925054569433153654600253524167041162818081452158704552680291448240316151344313541111988908931855964291709635395311564571668173064126855291636220229469903832990857111641510219629664849164899569924866656428864057382519204491578558550097920967895772142418320868865838390436101891772294805648386815508387087751831650433873123741769727140039912579161341870616377091791368550637484238761453443079131964722314431920437459214299800495392332121416609811663885503525913193357476487818066771901125327571334561711686291272549842633521175132704154819372258984380828108762910341083244252868810459506261462047545690391633263142429539620629163904291346170405402021301226191134946001249293154242923293611182077766093241856793241569421362594173613431553118255076604040993791573547218536604797883310419270557737227573061489712761385873084440632223101312162921595466801779549454830624389385955173971907881699019928698577108426973055448901793907478732122526634586802633633102972213544818988048886134658524330521396668703789451625492187729975857127858368794741157841936690737784466121741451729926374852349020724024797611352775476660036167332047331558647676798002809545708706891212212696570530331647992435983833085029125017185337601076102942710276582303223279399492707023755070824236121289836908372532211725175750247961261843595367859361860316751367767701818395188805042634088527319990414980405744861537270824830372891190937189926545401762264251904024822535465246456993895663542388908214300595193686280042927662321604262887946394753287306954595801097422653490014746664657722725319608895084049927716586366830252254169255675537017689068991776371070781355629265142552451367904432907439924754786910919941412981104896424844310106444531515772760368283652373139536991878041328260564020581053040705955389785508270880848836940910157685147446503062967214184696076693406394061491353516516316816661456487878166985726316996123570091282408546517191658091018139635390442924058513075190604551439043426318221216973924092349686078488062725585020237961880332925577014538864252643022661267050007550985342756758226320417258709774683545805647833509366944660668617469761513997187526482931574959512871728320207473423554800768733560212638976815398029726650805748697403634297260165464416063961778892462308252986883427236507368850078805484050901715308800243287994254166423922312004602162813887385173440437812169835643663661130040878287134510447918504292719549181039578370816115404610815137625276505765764226845349375735640800548936713610953228403220523640719158809408488643363137794069259591209415153830416036116060427320703696559321467997868622965145158836719164863980115828251071904100015560976571323935617058684378981951319058625353891712296618732000175957718528514392005684896234856694775145982997159626513761478156004722463526609917129967117108137100139640458287137176373034097862445640043649476594299861577071514606550217655375107248403474235683324386212800533370957877639314922816271954113016154824157216759062753874599458437964764392913276913757622678833884229721338485644914649091556464427881091488773308884390090975796259895661811051807330083675744978421674545500572630092106657044502267413759450198120117590210264101554386470724035538677327054308749258536861754644602616174154031902527874268331453289104623061880774476110371221455243642896090146688151977915163949442999094985742492948557804242447459989391446817621877212641125068060518730272496968975162374586252964077056566318719477895866951766400594388799671144936322159035135092171606173429893279318595991426110090746984652283402840440196758141812856940662231522578624587200447089260320155494418496564601469473508243283934113852622454216217451983079296175190067842914505506144892803338348564788524678360367346828151985634045366901752868098277819286854115771282266936115814883775774521838599982189025540131620541101075446885818413617184489717185146102995204852145022186022627474220524846126827386984022553581983802390299841507106063988232402576940457754342632022446628832154186817583351312918534319650373788906405694857281192530753459681693831562509433502449789955826447915865377695844923987926402616813293090909963527812228018908039237509090970346435103034426396671818787136495720952787445504250771786508569999039716352417318861103022561489047800534418842634655313442781184371452067541208744423565572181505473772735231313509038245909729334776402510894181667705800546833740960686276606526006910064226110095137201076678939648420925771707670547217142888407436433911216049351780041409702370060380882308068803669081795854691699819207217900316465685213916824527288004908246441157579990857646174816779717147417481673912288577332665243753691691148616224463382866355978925366916906420097964506494145763873299762392796314135488851105769750820243143699258766112205207591285976959770956757890600404989894292555350163123317078088584932492130666208897369345975803163136659571770189261890170712554617814108841003559567094740030403296054675827249676069337243862495178894579182807082805286409500132637614367216038024294616525167619874592955484703584930285024345921614922392749110046835922729787799597366425126858239956818488889582152888735629760601309819297061233655752577578316590963829725978907108450182752260098642745003984791277847791310141155775649002367497866323455605249096260443360125899099362280073540810221808712842253584344040555669096247722187127904689717131788881615737125942228674975069878555189393333991038900898135673151412336194763181782424210734849144477679812030912798972048353481860215187458823580398990241576786187735907727086752586847122317213196658504663455501482057976407978497652211851519313296326727772646355983607251051809209919634621035229462916275852262788316748409072357612760926751482561197623405873376674192237360286804779894210992068576417668296639105892681661808021283844975820151553590950968293724197820195065724203069965999900055321423653222118738108052806755563011708488231714859665253016473960378397780121331848602347504409037488869787584052318394887609444488808313938830044523716393830053110894756842696192749971017100710394803349652058385285256192780512586167212154799756940675422388427394467094440497675052553624657768975885738194558078943026797268704858191024745621585161212820895071205167290066363546417780973794050334297971880805452105302052978496327507776286559518922662305859597175663790565982067890148493639615879354690642272339919376038373181301028570546616427568414912900521927854426134230574261080601357269453207365106784867805593335080071075624780711480823012624290066027322891536965394645591332301062338693390831414405983600649399746534677925697015070916008258583301849579641867077219437477654698643635298086090537846120352164444815326165389736219428837581799811922972796211978282223198052638401813040507195878469843850026367054617664219371733353934651711366903332062575391775111117835704741426676415218387576777062686215047732255131281124625880000690392583857400254249000200208940239461174385597596651345002112055268112911962367328985027816336499150510023730699893012550180997256471377873300455571000543580004110696027871316086816294661499091861566626657957038141971104367299669409727724057651796039131275276765116946973678889538900848999497926808952186362878764446200851762236492994739552345712943052882792427356384825260457436519507807137727008956867841544868884944348795372855491791531528759251096726446787738378581077880932403928432007174894182272415333717516850026486095539996740590897642372365491024425526332861895204399271308799193370149369999673924013799578974224783891491744417938462719437393747326805286908546347734230738430973434086966899320076434149808514442436588277375791831915555028205106706008086273863683748801037718401215984839350678278168166747871719899190785528836298376471597262589323550049518439836858403764438114166162769555704606582715586312211587823654629322331714509091591365732508212898725012532598093867153780600254348854404870727932907571327519818140182657974718804572546352095820764102101363546731935602477313153729181890565597971713624342895080080292362878090069995812579747461217973174623428927751521828167604861522411448179582014116697435524592138394319856587080263626716993552603238973429058602443613643010979124470787986815038069528134236216599584156062436322265218329525587736366073024649303783882882464065051277519061750983665877284177649196070462311773230994744744469558141922563355173174595805062927797738403675872035426048424074129641766251956674611428367747729452449323668538451958350596754863454522383314588511643217205620906547779900518531235844827739923903210926443481035720235045668293812416068465811747095908999731717015349834502927071806292802447628923528870288733092601977189211085697466576788514910941605225101391785507136751403405881671281740855269048049457599478651675664735925886656569066982963766190670873012333172950045560106730939029590157094824983467962343227385050648425329858851127595977412188720920662890757765770968448765533726506377682998111751538987476761148415954878758860203321088706620159208089327404396776992248994670435386559482275428626406166318459004824955524536295496293355836293605613227134318867982936391961360311481717749985208846130212190720146410906212524817791005180993469487350942802296300959659251668466694026289571743350281090357773433017326322651651202030078346128967283764636267146414810773490221305589971482733597085156867993546625345126798151073460059044442515796031146021006463521016835935703304072083141192824950980911179415140984395958020266493005541546752472239825546716023969019339576336961777171139273079043479818646586608733931823777667732860984175385255616820117454433662869563700156545666838183118622643373416526200655245955404134830148882720044888725304748923922804204265130729617316982580414779767699551497317363298485499610338797214378604626405606201747845381853483728935534272702804367973512789095699930254869473343631304864923393369696018341327698952023333355564325934231145308114774353508645880490998874696333766234898049517645800682105237287124559360149393571222213517705210744274172272346417627252397265691817473574874343169533191224673265932333437398742136593489882481597497200820362000271665988452449544654152067290092899077843428255802812741207913006609932166528294865633630654131715910174640570018170281545054873094933024238020468871158339075704392597370692492357733786875335959998078126396810349318920148234877120130164228336766721354716381306697136565618773493412932226537454494476809296124609246204077587501754522413514214609131197611882661045819365247490870370328408593056985287702851678924821249410873536517252966124117203121866089110790423637196898767738823192691618445988984681481285800269547626621311566007962877458719053407220632857541009924961761566087899591700769757231972917281607085159093095124803699668908471218434550246689608003522801847228022967749228473317599349969673324261759246724151277963755102409213508390666042590639730063164999250888198353073065224096497400793889257113819890199036188295631403300448680596030367079595771590289110701332198012891633703074455682408563688162792316498085581530654657594602712921277792804898524281203309534828398694111157002903315760126639785286127444499993418157323216562074693620084753915421709751285056681939879640151681207762439894620073089192466215588531326551042548021958189074477284011927333959628117689610563516165888915166134401065790460144374125150257058234244767510955835887463151924000415214085273588213056025472994081873373209552975211070539693564742881143939578462421115902576231508106236828502350387342909111305911570502220708228309262257278180427889076318753794888973540609156585387479963887191730989461669374865620048257402057348004781372256210178134565278308416789704389314251170675561026678395367730605271898891294178348913889560879141136699353540556513501011442700266116903427055657698348230837847216073998034638259876470140855073935574407272555849359211783124852897503213617295334082261079631927281730311066777126765613382349988828703003623036632276769365145554060102533781097964044031360311357954385502653456274249536158075114892849888854342399913325736893250897139282720220342061847590447355881901902052284511509794523492337616106515738614077325928969028127183459430087277410933055635591952663789461921836189359359744694683474015262494403552415123709197181633589499316112521511233949833059570140332259167628158300606835018294088763358912101220524361914669293801349043334945887905275332266740729785014495409074126672577747205063102378374286003772397380428565965651917968458017682337864313180779038096131236311972656417201417221721336221906198406564351932152420413112175117148456133141737641681195669776622414103115891352053009503737464379792994403306064646886422192687759931766960921515574681055414659137183444131216152201159626083011147106671173108038374497559697900504516965185165405728470221574759204020902402515206473479497787132418937845635311552989177736906813341218886857740956197010900019958555866043975652995519146055097282309297688634540696338536194845759734516555278097800162852341017748944202604436551870918761262349936445038699418104844220932873174580620998429009056922667263527655425858089556996305073443369007092276360493289235347787143437096780961744515074569932969911008587680066637297692737060061906347812764586106863929170600436098368356047286723959351909327798749988602377525244870407397402732948528402508521502371660113266598787831864198115760095943477367188340680107980580028055670940365275039164127254199982678473094504694827707244678588068429920866303433436716897224652039384000133407374752346451773710366156962840159987118004022840387051132726552567333337629203949406299288658310475849441917406663580496230210664994805965667907527605985089145839534789044772871009402484314411676846525605562464291011573719770042811867875302068674814004747049920840697481680149874902916257530897599758456037405828935902252674335669764827024062787480900620114432304198916576994830236644305077674212130590117418930648320768740060672680991415566402489323770423555543387635759885011486722662575042358667095202895391894224938163860674929561559878503258850641750914338190511573893165960313877720264966900120005919230830388601396412035383371558240430805429580994225656237133078087441496602969273829956771086584904093579155656666545611216861421458626549657950722922536622097159624376864156573534692983225540994362502055403018555716126117520812339549470045725911060185026184493268454454711914810511484308049984465868289291987553151027213410528630572624297466006495879237470343584241464762974230710427594719484674443232496576305129371090096970512516074666151218847372728826143748572870927197816716165508992092365602486757525798508449031972452285384301422645440968233204961038048305217516518820657938303994502041548468730347952520560641928107583627939037100602893680368230491426113501581443951168830684118685402502650135967813868587919025591272964973689291073115659576663017247756438001423407091646532852278944285770773546629303522571823575579597465756761905475406664953781570215680424055928802477637841261957847336132679835860081089766983994286109949908430253141567014830131251324675070632105205652976263187330177523736908130021846883030388440652723531768241284567094983378896060834492265198073523330244789242292316795252446062723912165331248684822874896034803568532046825853162853710837584621223477201682335488379611339542737062833437598699022648929868577603090992253573775077125313403582361797955055901023285368575891997754022961553831199833156328870255870901507897389023006666736938079614351021286322292851194123024380497863838017187494495326959708053369979805187935650671610695277868446242331483895116304730273024228357011638680808672277866777118844758250754155625560381469770383782914642028113429374152235980766958709030520318891492228299499182941960233131376163925156833963103169535056654803560473101080403934342912450300242423416955128712013278323457740313169216678568944372344902850467665725745112471299648176731346111582638272598112679456128686830835279945333449974198884776743118147348841712665807401037331290294491961806795725681397108990536332104983554160056198123687508969239831642569068690536072499156230116156823114388120588151107886661377707484136854940363471048263632958228372286081987886536981234024633758058705525344553730616200439475416457826899590022008015103058279361289732987215061742891292029187654712295711346681741227364504532606742826111485067787038297993295542720137692736580204651448839298637201322059362044796782561027730941318117417199218606076070816215442453615868640687870404554926277846774063076231961623359425673012044581524076826630124151083935150057302905545552963956649278713448977987831893952583537139839762404435366237803227861642990976984999052430042275246740455335934897053798791960128434431593149891835977789882416202080251737054607459226080562055326229721708326456062862931257553998179702084885820795310579416959319685420798752403346980423272318358480868398728134962130666686831874728234964975474948603018031454072146011878135777395156646390913600121291893463576589110799870046326113313676083081237240821949951176043046510970420697949288180792692562488253547932696542651717072101525105722402208252831539669606118837948771832303639272648854972792488389981790918046986159692030383135659858670910130037291064374122907995093258596124285487032342448957411566490962162060055035683471982414558011268017210692807797644116850911975268892862074404728342633401373436610629187316752403925398065728590148354561189182380675986618223764794720763043865008855379139735650905396280942012408953352411904718352872394628915738947646350269149730099701597948941785671502929112156835639815147338159292661377396238028008644992613387730735096038667453280503609522833003032953439400133912890261645673320008591292253934399569843111530994995868281045012750674906114056196183052334213520433815030872011050159496585557391980961551751255325219996510671296331716678667125835210624492336139852828014677437898301898858353228086713528092653236366806199034491278595474425924890055353782710184453888192902036312424643666784357286200526502733412137442359008136067130324203668806903721575985921362524452711149954110007289196493026857462492870873744097183561611839338760511046363622181235218525872217031982859041879334289252199596751248741491609241963927121565989414772695517035633923380599501633035763226996982722140787060908428233397091501113498789997826656259940216989557029539813980399809201529323852334482694401566411251702266659257002040508429364149166758264862392922535050006615607998886434925623123048324188002959222139497160463203765032844391640765961427223870484146074537101449534735227109601611427543313573074226848741100926470264591353470710496343787871619891450465010565358106481782399844900167638415446355536640876244925420473301958908381834020510552171717630925508685962199247328897606192639731553889654050832334595818462391109246318032223358588146915462065833473442739933476699873710170116471125705730036857589582163725958905436868790713261507278441399395069859321473362226906110068948518828742112570837410203602307753355697537344209414722093726892796801548416741922575085106927271530165257156127470216261450417697245725773705373912654304337476628143370619711356974612742539902500049784536358138763087435342697750046358429837135234873465649958647486145139006572818981225387552614401742919815893037000726722199082263901742979605881603747245373872766136231086325416066126618832666057536299853123842404111377141064589229087429007423352483020730431815522159619425823255605155813598691957337103194320658766148708761558922302765059024330514317002178258175560250489074432137910170909540210533310379839038226419299355102784848031863742745678621894551479563063081723113042485825599760074308042979068210219627206871194854558927704765877443530503250055519997911260791873519719459139979046271384908968910197300275814017731158928995509013511126916632115045546163395066548521871823623695976580491210588958307012941750373462081262257630674432375443992471862009469644452517940344877904353529893856791302927730691426777193591652336983089566356824870929818908329455332388947925609403875988776236584941567631972552205232260463531656227940705324932695762836612324707450293818971387756454254080148711042401124312837109857350412557506852972016955694862217535574754211458120381029369294605513031576707185127861724343462232446510065473634235175167224929158752463736379396829429364351400126456564372074672585027409295922617877658033460003011870592249393829822774633268783309388432557032321712291883009999140994962258781900278551871375253810099407109390421706399361506403038411291772892590562548452870644008279050372856204750150597002136159385449072030799037956567180093174446748571528117906681286566535136906326578725225277677458436632140681322819306491644748152463353278531703395736623030335552411232555881482343880236698543515154588332663825983104231520775049702489563160344858853777140529580688136893294542095542371836415399098252136041127765160957247330657757266296333406281875547999821320605913591702982555663773115229185824048756654838207532606095770338152234111974995672212206589757324038188871034701232995676994586335499181821809960020237253517583399907565884725030223148464652748389398588840228121775501732243060502159441471692183747047778909466513433136674272502188358822229975056803773414404803876315608801629336171561309952158800925481854300305637391172627751571874914328164503395185876027814230413484815463363229058978900437179888704506875122402078282778943770100087111185830316287514116449039506215241982332480065176203317148017987375880016827005271132612719395281977453799431749002387251622994491838353119945257199491278926678322259721233998476031796836408707288293224991312594436957747053304891313172206373074091691293431848240393439905006668014677177414049672510856098162196173152574837945853136812455214837557580370042013441083004375504161456498468945531349645266993874215388210530679245519614355709420436363775016809497379536432903715254435095758973607815360715338943011480052215196418857115429366304976960826040098569201591116066587491982677032763112555049107147350706410120005971512268372851093183669876281851432764778499475593492054565257067396176783786552210824610656675863427791635921103027118751697716593266389393226869644255639804048670838805978258434720197026281207935390985478650596437052210398182907006105041604422585285408646354308363875585799261438481741662983866079455602715145031000098703991619157796300823628235964237460157252072639106854981247879088522479309909335761166494436429691820717540519275943556180017426958204865309637218118714867607249060926747899458188724157100258547162467961828201694862251247372588747853662244115208234112396012570103306498042378149191492917990552257958868758366564885265392409011741367613833771941034587170337432837751868030841865516774595847299653318047067665510027207523826058381915446198632442950289294640864599137699295409996671010785975260366211906762688754507137915467107944117076024989007789112683630088693430017897290435067443890749127220863154407382372878887485343537397358828461645933138054306666294848084362048139156664949807535240001828506533845107502879049034888100142051949473131673754400100160356291561845315232582475478375908451844547008852883994718195851274114218753548793582898849174311058943225941688831666280560475305407375379568189734082138984848588674346752168971523009375963321644708757364719630641845935409167283581228550007629325639214909594413748326784660539768304023305244260497584423301389881241075345172068076290000682452687119302786724365843973540851081375981210352635137476011957080834907987890464673317106130103331401701222687650982442285873428747191804782072438456823865235016059851250578240837823551927776045522560194309056548264541009147361798729039711738731882938589976327588759419871661566784989483454665799455366913264741700743984638918955672969591382704057107964698636299564115964767314080845879887799504037816702894965881917846735083145907618124303571142994637128016295400724907646642081729239348154825062162389874781552559454951565046920106487388197665887784287766666045689067810630276365155725986459700578931254280835260331415377355553228346349153686741429223810248073668885078087017042096604651082960908062673192267371077556044051520377436282536425814907292455157901872821788233866076940101068464599711901145205184773979591653886933785317687966824600082258788814053580992988420929278065433676716324799698354603178984573870463538949407970006881846864400890114647142215650433265951350587580059976664086220137466719527961150418232667430352687320718391271703468641318641469644444840730929052523035585783037106423917286631944124586901614755795333774730357156719711687505101595989392102243174872017130272913868778790215247702073716424231189651964220149074572838601326891997900462693897093893151985536568081719366091060103933419426232777907964992226644440122895192640699240498416831234181453636870324582455023743509092584371313474976566339123815684052775305923984744439351205983101119602027257827582932906277340287535042997310071324294327273397340414953866022111169032531508862946940614800018359302808206043132543584880640542617039962685779066313436211189343465758605555116348515840734012323492811416988119266334990226389781790219081068843899966099077749853484202342268744914473580373288606065118368718667493322002361987206618683421100636067905777787672461890343358635542867934400045966135143352759807803616212074848662980010957366666692481207351641660654311607457844928692055831550115055876692576897393045109093307326921835683484659375022213008263034107515932345165780945250576320934663045496847421494750719288085880785158107351794966657288020431869305862396113792995926200810583626999469446650463198649302337191484875001815743333845227403609288241133900110182218996081398205412335288415034191976663654797661058895054705130345038916485892052938900111977691635584957452020119826770763800775431452880931388223408680718578872951820581394415329396352649580455875457882469548989424310550054385934239385788066002391157036803031428230495144502946445750867888389912178488230503489977683933580058604933580875132185314343445242654002010736593856529908465847389351131252834852905392700253085616532925165243485994656889818947884127664007806828867263721531447408000827709578029677538636348385712234179780747791732439138700168958221482174397473629816322733405711265168102017408106043176319189089389522095730544332660836366402605429451147156576770253686354496460049491943588761486610953695523012842078495319337767771331934402439036382861101718417899693677627378411193574514393648234835313365055018714747067392462954495976614002780189653162566088994581758003759513471038128432280437535694599568175225264818199474581555663649405227510112240063669455781059865105365628682598438608328785798156971298492041342752696259840765150299865997462348495167920452264637863057004652526436998707995212997962832376354458381392949369398499424474031490471923600638528687844963214893655670527754502567010635243373062130701673924417262984494437541470759910605270450336152094067143979095195765215563803151342618399304363350101271718970921881624208141243852586203679841484722858262263409533307600953150915149077185382816808160146642280163435149714605329679637988638160407306003994791440011352052181614457947538851364620912829738652928251155904519787953955536063267641714427162693613568307402621997612479822407319644289651866343431990013148366945125096160499201678236797728121787212043639496846240030816629120259188467062060832015105610649670394756987816692231694521157416484898319764804303316118554474834044224510832301042149400915635210900207582216951167093159378778383907940495720667399533207716832704050151287556141289464490761604036451936532647268440025827089992794373166267257881685637397060561416796013654387529660997576791986444462777268133068878194199093587474944268417786168124857701818869418335095267290292373871852030157339376285904490669974524807471213703808348417472702526156348487930620311613174816584666931602519419827917109725415481768715145688287853467570723958511396606521706563760769694080665850528739315404419644824476138876610387101866893990009188428359631782935556141109874637783048471530971862435626063444377717121696532587660140917827805782073104465168194055409074450824813961261112657210110072260177562324940564437137055085779511508972019967670019518183811930956757941386926611609499870352386038227742058313700625574695309065984531393832380596270586438228904015711917547409877253535029153070713883104160231793895263755828840192028589485029007876608981374998585408162985373506546922227241158657256339195976725163277127729739128550412894667704927268111446971390787044170397929799690499359022341558630105485108806667980531184366680512824628687545199155073462585409412449096053631285415048592794603915021168288200237349929504550102762321411850862879340848466762774399501771550181178875488790029013892144515376410834023297933281867020908111586526449497361839041576094731221409032037092333498872357865083783984309554737769506306050177564667475673562848477903283553559136369698537682417590080494650830269746895558494459414633597973848035594464470318195028607234957814936122102970364309011053294684671774788503067143347159155085794549281883588325692462795005285036343585334589223956660271842666724116962008492863615610446245248681183993212776655510344356416774617629047577773459593029185825141292849737610567720363431528944807602337134662572969829675929259217654585528597176056679019769399565869726807506755407638078019053178970595142440928894496503784774428433186126084789395103328697940426316960659169556280194362365633407478009941314868231080896321502869626687855138454531797075859635741873729442758442931188411103426212969385130045152380595640868589555697356169136816809797222188370450948468981895271450557799204611967393232064949657607136432957783105198158656065731009036463230191097792582230380340535952750842221795832501747561266514583999837519452948529863597449554192654830808877231654668592461592054523103431040637202597053149653908887785017382126954966461739170959131105059726690897615804076948066958973167872920952206569848012751392655065193624308880314763293020671290379369925876932136866787654405542230661185428199105825432593708204106566627351963700065378491667645519568165765554402697946418031377000400323919150799879910649334871987657235751799680340996185167865334813983976103827749532602173491166075036442775461026433354568796737736951449028202019781036903892541071474707581689510293919516985779437299562925037546452764509429460321714594406923946559974077419571787265196421853672887223490724228178185374504215898522379093176520923154418358829480303106755253836030152032289348253341589435282153019228456734933395197038346589114713003359821041683882671220964622713259225097410609702101624609187053115212773782764461865384056652054704331993164960302557774786132587591411440149873021966851920060154563693094171729350775179179896660932304913668197956340613038574671611616791712730408573431033323752178070109275689094043806453462887534967112670564985414787887021114303486454509273273032629088742390185031100829069456310883706924817531195203051750072290256634107734160276719112227961014056724542487320266566281152425395440733188039087357352812809816703297007943909896186163483549164915010038409696709225908743699805108514873815371263561783366298286421174332975878285514374962284113709019172728383009137729966762863665206638914140304884721631790126721137407312838290307265326544004667103924396912246149990582419797467965976056939263392013383587919150537493490639622861624744254762094800652613147440100755346826181307486095942939191127669406444400700969398490977237038337265877525621278957579599482198177321183051240559178101819538313617029133487325741707250509083014405933767977195720636279793355437413871138240936798743300278714432154190500544309614725621325846421544262254713921894724435315553488902473639757059920732581680725372747502452091138383791462062934347123495334100812779927991143665430177577003302096928119818561080082082910178906673321475402851326367141290132513825113228965825434219313856516422599797125744162512504941229748958663522233585389500580452622467067837047944805562106196123278283361312780595127015411958340441262158093087214612869085771750611239265937088366283548696173298083087589768322066889485485701851595537019361721808231833829428855465622767928010345504677655440854815354477402939955114766987502339472972487415445730207331344022730799090599838083440970895341741538031188464123073726652537813119958905766061820494226808285546131524350797805697569626397602064474124836828129326473462203089939503756366652974832454987415072716300473238639948309777851066923888187461030491825994517681327002595851950065476475180672707922378602911145586764660661270472552011651940220532739169401581266281938064941668921399005409910828359098800903213087222675070800182550044949056961205500870358057764911199261670402466097925420035451015973689036445798896859204470216686651759694372071350770750740073322905115000269264316116722712605850551691778286288540803245969524114712982722549092698425784308673280566472712199446769822855647517234208860021622645539363115776899061866131479028233977865114177091627368945020880111862319713352476563249977171839605939246223815841634150095193064045996150676525502413167354043183204068464109235288461963354021754472072358298840562924715313123160809154511745776669344663124375181240244298366097355947811613354676312295329925794620733313680441396157044399229836687505815976717006462579399441417933312223566568919832200639072185591049183014490311725335683211110848880354664144377879910461968353067086046809492621900754657852652725169394128220534196072021199649088837908267569813490042589296425310510179500732282494911787476326930906074631453542888068733178166359148589739353683906894406940856567719045313283121963804545280627497652838078261506492425459081053935552688406524521294609234972553679839517814495225178900155492841123024750189782250811333596020283347870182172166791951414028326424866859383473834099945523757475823465630661371969285592581395688942858115726628422515929563248059741747415673287409027309147150395775087106220115405890403236662972551075164240006773849975119003132470218051556415244765886676934701729570751519980580718028047273915423508229717890121100514701446102927143786700901362331036877453421988812502586340531508560649595319631085725264928207255122131099679075202128879899099648112891944231695393534303623867698146027485712127993098458773923343303347483544906482133140363157904456059230832840974595567784753408692246584924405176285336381364914211656338602937344794531218929255144132216756438231322165881543074167348152843316906912939330979228605713940481922808978701148038202822689070931776951773849726746044028317302503751495005628727222620581632485724529372065923118482058575453767101799833270821535194246333586620830535759143583073291475821086697638535293846414485944239423560723448579170358264200072640926630115443102266930126214909340195207097443157892931748553359618114952438708956180325898898000309499996273028735111268087298467712933143926698455147161347281342811490223885987682766856868542694492812665211370808362748261416961653774718343974324833249728151969222695634155129537019044493065826193236358654601345239812058498875547530582429028741907101000957954001068794826987565168246029555475198575155647271859081084497203892230070799252901805359971963088816381064425636393977223252019609447095400208278987449769884598678962392622724606917091169602979137232315441646504498486035270009215010141097589635229724279428775609155806653477731937782966132088594476495107816558031178250498897212750428098898173992669196029918647323333816440506547704380351490005111232088840783219690254856016255198493386271292593318802633046477973416751247405766273575483992529689071394465353869666971155235501269545467954483356685983983687192117612343333271681364202396218064469867345811934343137502274597384099238232697900427637749240816414336459472626656198498656373296496474503196335985765743190037418742048914574395560642278967263442239208941607864525465491331652127579687970478278183216133881405531861665425409060489034785310003326705276574914220399627875719377547410322805928657296822574848835125645341760000810655212582350969477572148161210608900592170564867701305963089321195099162329705628118944271397140080317106685431257049700561133083428046340343049444887909328141029114704023489762225338577710373046189434125022243119976156983942327248931085221505868295778709520200157751483564304724138805130389448494158228185685739823586536129187564099623660242996607567148826883285974293329243710446136307405505579362979690455675983160824012392966227301642072960754563086569334222944764315598225660293875831287549668425977202463904388989859610084315008653916424793077890900136571806770437437184006812680480727104231644576141541391155544708139146713626154555583456425604304756267427704621138158659954498069928982294546304858387426984670903768235812878277442749902947429699634647948175369442347335224233359374620470958942688422443767973397529419410376756738895640017063889611832127596600065737432777730838444402756726003168529588663891660894528984597016410418802606571051353734067638343042145681634891742349074549457554202882466018038318456767014699208647213839695561461533353703520189388820072517851407347974545013394903428459597932159850180497304931333188447100057879748535312092467216955315698733988487585661328381957463106453064701984727973914579818180470548123048020245283424759764734373005526629683456374083271910767302919844633950378155668194397546376156452238636790600564983846385207339495343531405559850609697992281986190342562429355116048728337500496257308177143322328892006943551223097759088280907872277744431023701972942103851595604046076274726070820758488060169366915599438795856304038878094409217329736124812528433934611248711357153689038527057494608402665751378989324587362413088297656857214260959282656099608434511173259178987631848048356379011682279691670150744797939427404107598745222511926931951334443946299456285783738897187221495673524646085123428864174635083155351402232562970886970772574181005356390482386654348363868831868396747791062251286781093338874113064599323418113014836559286988403304358476637735135758251142232533747533703037977756638304535483025360030689488059765927987410029166722081449828180862153839368934652149132874288504894358580840822093837588987356477298378172328777548395296876322280492019686057101175044495621793883580841307411682581367013577371696332753791846763301299117795424946307714291531911262372464784383340967674622665527413731622811752300557057506746022362468332206341525803668741992207845888118667515620480579857428595150814325692079631738871718922790411304113368421559335385633663015155073528293173935651637341140706538572658242643327124140244260331328383471827635531207145289213595251953330110205680175113423127671820685945674843295012137161933582863102353449158622867133982904041783695740434683247130175547321175167543051730091886569538370676526096348625904425494133072598792055647473928700395743421956882884498348269178533875921973810290406158339263366357429382399840169063156861331469635559679401571406628797113581187373244739768584749151975204872319135533055020802683961671977041492253258090064865789124730607554875758110233906829967543212626670116374236991921367123359310991750683657227458237853331404065546949175030029022569181891643486161679962267405650600411741998156072628540943553753568665414646964216165613177299723521072517966466762060727782998539543168938589703482396932236319062003092384870410252381334689782671740028662503831896973946490121836238235309160826433791348386167490295089330746380538299045191972564149640448547930181811855509930597995604229859887031278731013700296875040186021278898307890662924881849227099842261093498814288025056827031689025362270206315049005662898175383713003934177166726595473816055246168555872674553127131152496984251378065238664073386594411563895112917418991256995651833205902425076324170723254148729639378979054911425873620338495605909142940907011888605582528590415932206584605509740557643223696602032389593944616801869899753491661616832530537861763030252878868884037839728666086585921042898839628898384989801866520307098516324775305739905930062607017880760136661685598284462848400107194969419937549281420000695447771738954908735941499519364161705733451801631886570264266525883415638047420201983196353726661806425317958888682340477735090240329533094862384325852082863764236979493673521304131693278394425140134669924992716116135999351411990098314674289900384073673977759057982772407223696455412906798416093599170472052828878805358370242484148524178809999041382374158997078294856752864606148470594201401984506023034490035571980624661540256808177909724303607016995079748428996880360546632715331177495532987935828950674614803821026929078479131151254221391173732799131722338439384987724288827942978038575583394558455812305928210641380594865343670900604389027145552751151744797641283893796356288153573744471081738914392600791880469680507859953164964654893833149109477799300511070592303663233557949533078460629246663449453735758723992371244997358108246847162321333483009042597427132109712296514952011506267916840263644523299452779366603007706295284867445925175391094496347415703980615909172322931484587801472468749239263687979433026658491127300261373694572038256100748808027159480737016892949463944890911200615489892601562870123507800279252827268031241627626705977797954151239465386154902256695012777019507451714896717222352350982245738797576636555167830063176500202905943039624134459813210317182177490030882845131770688541026126114086260986573655084432033405594712407687787096609508625218576923679139363824713365029763507219040303511791754279673159949377291352030348221558896255114528326997628615294721035385816893058356170225474044282691495359558441949570086425836696843987666342478421203880178129173112155194113096376687268022071428157420387586893491918939014991021806332372363032217649386416436677516128744405795439808756859432723482232450021316396316358859547680977944755190031640567993072802351371541862890695834643682794260711912574282511120131144757218594577758551286886791499492631819020746326374754203257977031915747571809816736369736782169557481027445291888354228554291106279274962907503829428323452201128471198808379697306802121973334497764805713547113676481710712636704741877320454215613760755377270601837219155054080093734940147914870539534134075230957428600350072976480465296667704427230258180970988420321958310389548035951159529275417287325473423336081930948061676569746999764558355931485048343577380925795689040120347503078422635781346361332641261890495852922893295279894302832535666529907315172822164279306999777507259877839007104002683233829914775286379662542437827557220934828136985055932065158487872433884239055950609924672572730009347240508284751142187554154061344879298913508343990309657914833755908167925465132481274002734112135987092380330598049372893707858562394721038923051949916717604543441294469044594709890430632492069648083014980386741306811273496909437284917828627651542333612251769515862733670824716833011647813793031275447678465306822675995937141815522753913099580429125024272572265700670562587057909648485120995379025438003931033379612991708421726454413324648442821566905024449695400291750601461987462905067404248424405437423107438692005571209429507387131723209947407727389732349717924608466225229569596705080839617926016553359522132998601953718990203506404482645272045159524873284043944603603456958443843029263897988501575226738248582699375735937968001961388521314556260311712321752880862818248015931741851848412494662527272634235438470275111267392024939857792208171430553892826152562580137495021231093913278026252460873593495472468776485185818608692770316971654801503720035491164145533534333164114154856265729513726965241251494339653781808015838024686310869639738171712634207398653408859947062569178614341476811717915911015875172077169115187577505738339914064595488915632419173528087122215805476196122293241735186463996845137255326848020790807657810496750224145036205825619998458422194525422944240474082090994648265081380418544697965097543543430718428279290131242442201744860562675905870050632851326659617668844994321453998285049549585129431395214688146544570745156605942545923130471658418212421991401827272428264756654228353070147257155930704524127882646532931597939865682575770931057348255325019291452530042620911554774390950975171071745280943081197634493581339712715122483354044642240795776765840013929305102742016996647459122457018965029049558317606054651624899183033654071414904172055367231283359136006526456293704296930170037181267666886224327310685621533310222221386687725159935008296887121211890771357936260667596507268319528227664992385047172610605340681389190628916001102443021212274854339399698548224940795580768452956049872550924277876938493078257188001660193912490375571911676621108009033066503837558622425367346445177620186426681768930661648082405106958937944341966691592442413357213072072115517516143904285679177139548206345937618117491434614194503339039636647330865069517931637692761762598079565287913067975294610457792132849277373919467988096282370571626049811495831753685891081945795614114558448607261838029432170569378461593807734321826792037873453203168253986552228139090416389898251724945870247557234053229305081146343779024890820925353296926206976426984217689005320221431478308595751734250092466682692594386626973388253444320529388556083556026129571776488468956316856187849282300956090883161511634341349733306689214000616285350022176334048270009975270234429813106629824400448344874110957514587670801215213432816960294282949131382617417525470308657892463317188515396494737968456629714241329433044892320589793480793943093669174746262264799577656711859802380222775438821813963655265271343225810403113091805618394832070321524500268995307611354336596179358859951969214083733014045094975693769059308363495241286977766936755247475722760290321854229962082675675698552332855762268821941885695674245113530484794903649786194729641173441203934608715297381061227530797478660133402057229215174342332297045910091830993461864733984975843991450838637672935779795831200941571631673489373042566027004159937950104791553397430353357029140163366729645324948942384281623465158379084728417811626503608635141335103921555843113941864096591263129888481810376101561323950332704919939874782934961867110479582305070531774430455828624383952607316604304583908604490127694301420243677015535466754284678799703103927079700400587253698370155458472066753002588910066633409015004737998748647602655800626022005481069380205680468119510625085781653924539422913045588604916413472292573645138877409947142866691544211461660270347111846386159376290125263287589488636357072151929204085739033990395685830233853667679269878967430955171738226184192404978627002497040287094593452929327897803108980713163748611318527695971768202338782488791502606351393107985586994435356515438538652103257949060596031672584090593688524881822756569532486658453322512073090973442061553534188395375053253052775299194950094678782085483441006659893042415266984299715284371530559041833468845414227906013955927361595465976256476805818512756923941245578140287926050640581516404512927668648647417661947768039104751150890288079613257751179614354405522205046950567010841469068300267652276626357589579197821265917297656275087777124566124131835145413228867890830078278355221650214874943445590375114236889997379520824303639809125084374614918149834818117777723971794772060900491738350080657865277326992260198584679856324987176897574974881043276500658420125131353210795605340962278006866160603058952752285559760145099672262078476244684161637224337183295654389244889820568129735589492736381678834629927088000987822126780178007322381673454417952582844736665760402439335241306321218823305110197035585180994402547342155222848401868894116013117057927369493408287520194895326343650896161906981926703779654991828724511329288103173501462542992654577893167457574375289390657902864433610326395701588224644519195044464371863052965334262740498341046876601509289318132464882554230324034053460059649570509048929751246595418129166204574270927863610366116397113453867999414059930313058981106560624192636312009953746628167116020398405913739684867338850294855568146148880239521564084825885355840606827320145382131080805064984353155124963202395901350060386463360936071704340718322625018495237696083572112323675543081019981114003508998270899275250428785329214285670780603927303490003838114767796082192640211511408132893500582651436187756514169053533180198252575750882155886920317422187344280603034780710532877994005550260227174477757339359356359868412335002804787651735396000136615984514859566308014490374686263862434732093577184601939589021398037680772016504132963026896676344757693821092953971458675596240513014678744076928988029529527912831924334921416835503991867603678940156160958886866936990583992011542958844199783383088624080875854590526458221807236543574903546605940330012675757448127423546853359909643080774479798647053071316380730601887966200658008203069265451546588107667030021307184171232337967771558903862309952887132030043033620476261467214388904037906700129977675183832936068292803586781235767129799353209090153916241162700455148078053382186810971736979719330891811587527227433806659699686414156069506010496731489157967069201557199678551746542924309705589563812934562946343500299497039907300575394818580221305671612449540400409587341966159044139616559580647392093939012004219636666741569561881636716957022890998691395971970220531460487589870817398084865519640037479972306937903236941876050001386295223233412524440148167083413107086432236358424454424576952011917564473831666358846067243874410653864713132524880268144904044847950971844011250030268146733132314398210771537737098269509415187703220382132750213401477868986340739456488334264848312746298864149201785921243665120665018256578704388711661699283279819816584214761711261880317833596458578379728026143764274093735525037984788928456405828181263512141506495463341794206839314574041843653881106198670358231557864344567953781509374979793624410824655338130546305985140886224822316140404164644222446261074784893581186854549811164059542589097533295759782961165317945020038741759637585426164864955488992610953763270267199200007400100079605052952631084797022058874150143650933593556716786840339295617689537998153796477591242948697335703199911423766062615972104285271395013109831465021089459635377068668322969358294962370833515241824530815370208303496621399731996270292097173765532793975569044627205414770182112075022079902495048637211960099073204986833795169966451099023890643084850296658180743053191324609660306039262575380101307946573647030948354712438671131072737374176010064281165408231570119832180368090841442165956893870920937656027286661776531000231653377220562571548884322249524885699275044076097183271777494228511770465782524126891598946376926235950342893928076338336434094512731449840170025525535629658008721790883342721653198574823073683215102238291217213853662214678970786361869812967424088965672088853053011580246674784199453983015731217885650561117053762783739264624783812545877615711790627826821248765320938704698558275927670490828000303385059231310286835340837194367014998279612084435954266863534850695017161350491606651354204605026666806092994742353223040966802710496433809470483433997530113959497140512711369787310721252366152535765509999680715023416943489038710231958438028593183603579839348563557286817534742061768226800776514505361951460390833285742992644829690753640177073781653981523381432798544531865520126122176248389532169793104464124038870690623631707786728008092552732927741474637454220858615568812248681592289018296778170600811088533655576760515097220053303681037596199467562053906467725843513548127479248953850647856465744433683036897683838849316394444115861760588887377759871620282932311832310049527214462497482635011585349605375114357495251641450443871524236535605034482077391171341949134508628761585195764888902438131139578196248059535698332020400116829881172109507243911369535907174779887846415568486672406436916404355885682349652486913390768345351474163445869541675776202749664630506167001144920693302503739131874862809944304270462845072100881189179981385243871070077572422713060486711173983788373407845387711794111885497493413442850020658616270800545308709372864091547570914086535010379957403869438560225005464554796391107790771434622728349592935822157106442957193252944728801703341164628004553720683110680569382509641344037144579187386952807232388926690567796216994791366997948572260497493929344962419570291085305444112007186238180428055199613938701817189027780424245944492866165919313955014814918296510518070524067270486990315592709270041089432483652807476613053570475394162139974358235622525460098463670182790345621707038269633200352630813881826271183669535857302794790625048628913048741262406403466520946732720451711922185917170024834754628530272244010533178442138726781262698198362300061291914289926878904534709782840609344090364002064703004629273418475003519262245818250801689905262588041409333541705878238499027128344124826461721862619625168650425595665865264759425752243123034503390524078748579763587762175245239364949023235161776506551012715468451859452419402448416900922407859084320704328168787832961062655978914140558232747859363960617997844815437356833422904417496796728129377669582187196580875442203883517768801001975394978641538091039796977548318299181811852898718961839146518063883323712780469854656741420026241822812295441891250388157087687747669457088338001971635396826181944358550892512755832681006415695792771055779124221934415758663579858693403968376687412520218921942011169606539543657582326063856662905255408556283744604650080334621636710561049666964944380629722565087223648021396074833070195181803786928532558514346718601109318415499398835679175968547923318915485236458535989992598437992214921379685990351971618621268194061757039363693023583745821352062310000698368256926942455629519112549761339088069655487405569776481663512639940773976314026365830220774675194217337393712743862986748085631432232178217234612791670189780316611327121073239183796804057459280727590423008069207385166435063813758239608445999888739886948095153463276059903749042872059373108620221703515105970034297216517625894847140390217861848878924779056354382903002806729641099505876865209180911497160945733639002501310346034071721324694396923819527033215989297344551294975912645965957524588210102386985911690255197992352894660788645786428406880707916764712826042724368503968802451730549231470455659679575089312990940311979102113656177741272496674089887021795806318712136166559575976377205389515565756233500665321139743742530480680829003106349806064340741630195009659811230124095150652708963596973684096331746940552026868049980661451039278054791005368859773309714803474218902571180832489176906430892319776143432243940561980152948392175062537164537715482789429825067411103479019907147660319051454350935377570701159089346761209013168217037692627759059637195446442715472315985505374579037660545701204184764065653707713154070007762396421805562117091553279232536081488864381328727133852676071809899792935261004610911912005504677398326944362568116007328165213715060968631281310336090720013991048146977780757438939083202888015374048499691870530704401799272137595804481201311990214224785551582810557186012982806294734300686065463396795989070310418722320331702969220446473901706446165465046612251364689514457808031828500187045543211116979636153320738962595052587592873292983162539825412333908882069309450541285544360993027235856867426700787411932792327353192137347014970047478342209606849236526824164602724223660355741327974859519647174331937569794865979154635488463255126013843394624411697843586199393836636609060642071746794900174045550026136198437467904968682245142439157321543241386085787931021783181362147527545181171705098016643843322712925833358558307499043128168149551757974985590269017920004306669444563510001987092216976263612798878124300434118291219121845832498337150753595771874641290036424357696119147405419734721070159854522387983327359932991723110507296611018627530865780517072775220196072380069950560461959102640920496573527443230772747794986287901226869694798662515857326707241631100775520786175226611872305173223939046219537356387219646159679242475099899775940484235483585392620148686239970966442939016845125523759370810214865061125026703017715967868680027500004827195681413452684346405986210266064922007168458623687934327669947590800258769817920425650822034926190906956548072686425205562718768629775672031136732298770133157091610939670973736305338851288852043559290707657994215677324110540789301814282060532923375135702607368423439835232573516922907895288334737341863770659076912219405721612666512919557046323937336441657546105248637755851420229875930306056530063077532114308146826109192422440112701911647169543916114698000502108660068731864832109960856619450008595444866293894084253633557817889135578937873168267270985308855190158352194591617582783743096955156709878182814615180724356973978953574878203105243965957549196926629489444264037294582536650119310701664744035664308215886874636725057018471788249325006869529899849050177851541340974946011609401041460142044464168777160173011344833132770521186601090825879453512833613022939247586775652354394186201300925312736801257505205156439162698967540582529487316286392214134077957505535443132479212134879992907468406924553592983706839037045644192443018009273951147146975135739095930792663275476611481420538030412952961819574926701249845495763628026812663681324273735289029609169757208405548593223246154713375396955947818866544187232069636256486834927586994770222678770883515972962827125716536248152715255238817397647197982966775164201536235703746138670145295045244312819121623544626311117465344517840371564125634996362394797633230892436798409160587022485701251160557670530397040400017278603150720798983728137224065859905223023767699329689934015828072285838231192431187741209428489058405245831694787436228748034800949867730404440731305713901906332341157768415086539280982965774677255374763491547848158953281143881305242884824577365675661671714141000817484374878816716198999836353956752674785210431702295604419883872219727348848366322993141669720074780053207551850569977083592528035860059334618274871774963309941006732675114780724040917075200716238327344424645966320195894505329067815345367084495559457345431883883678508067886022931397291257908957155863755413558894040529931625973720922268025477948356417524401731013014279251495819652838386951099185725040454934811437204987027154058921016591515763361173150136297502226582938699085926233452877678609779675618983018027220074951731323448474911330406295730537232752132087159121986404912282752815887646399630712840705374821760060923165325010304691080857711526409526782300658740671393617501339340641901015170561677320240923250688105161021231680351466747312491542329529387872633732106822713274713428257553758737152006358787631958720941044552154604594190449101320869503775157148115470940074396917713677477333804849432799916957568018328913307331402334638385365775551448061625818953513090267555257638113213496584052619130850645505046929037389516693208864786687374742722732274120607933776896047534359784257681534063516289991850235091049962835584587933048969374918147773040562978067142121605179474894399937764247061765507620644799281286905390936502167107210791117332809842099678583456614859847882577219705261723432867940958485663592528877280136217901579937884763948865517801760145442980973160049913564941958507146428798314240878163734032751543439152198942907313443943461475669380004519528715549433349509873783071200311064367169532440512774330850847443204474507249012375889929404522868085537213366053596240129935791403560542929498975635188057730138539604641829495598040793445874337346727040089473134393477005325687639615906276478625218990796772557568019967016060662568116790782094377272522522729563793603291140343160812730372715124685661728423440082671506975053017867042281093782939078864446998184969487248948346597617704745804154853117873812671582090863536712286692316296518228075366008908976665324487411742399054117801199039545597719279479540292087361317662035144514882559988632706111069924308144148998316888025826606227308897419052442638171790204303380933788133042264332595040453231814063149834589018489784744106322025858047937482723854451398235963317624526889740737866160946815062068268720537437295859646172511503981032852243767547718955643727936835032450193631537844331193127145087094633109459728311760763338212921822457404728996264457980826793035223582838308160524291123980409098462165910966297622573332361562862289395627943855215944834964256193289484644919154360888605348758469031445947210370530249546397235703229342636361868654192381635491485924451502867921191369832609971888589853154696410535408126369131139410925664628892919624921151389385811919466183552600016692696239199480396847503959952315590274088301994665120850856805584866438784050247920546068399145955392403193137799264178313140724803556840240195567646604850392608202893366682169705727916570018892370249115505908566888748557069235515029158609984130468561042677983079246111333762224920236129439584030551478576373438332361856445436223877295549775114014936982234184412352233757640764350925353570138560513661364506151991358355967021618597701711002169274624498685527789788523842032312138840040250613473247056317750876329419657574439736213950524022853064987402861402265340421131234844166952986789306337469366258181461023645821754111343623968983508030614602381081081898420328626185481897552448126462342138167661384540635347167006909342080666258432801866716852432538704006481773722276214237684523846949260688527611309883395365322522001015127368538826774987330101949346783258081054241692317371063126563956010451731711932468452886625189623660623280853585307991171300505430581313053918697212202353112277856144742624604788174518302223356632896003352830126345533280523803816019040420242554216838459925781046164040231337909640235987090905797779999704588095733388070627186683774178778175579222639507514075300250829935688894195409825900517975344515726495623165803672718177934178025015486144136467884101710241295130436058956644723653256039862221326972066794954658801322256638914137787747317923433351421105149086357151592238309518106682117564477359081631168947227587111383622772262349140594063732524193294346652520318343692326056544626254763921076945989658068356098429938681557703121870626196446152630648135291313274124083596506652325190042639014836945160671045125679697506418701481970437333611650617160256265416047823746546292553805313113521402147981331207227478032420888113822492733306626270688751423178810252888603890614891169829867411454750865273853505507126187646151363773479293866412598593437252564394340626671226043681489908226992197369199283464113718938314247596005762830080679906571940355124675769227480306224018737451650402015023249389233434110846628751095291850717351438736225741538517429376655532852041020251393313087551548085469244180136174582365726229806349165446242089906936767460290749404317542776647498377226840735646501002132121498514121080312914341314035654284110825621864384980455605045216062083876577169325093173694827716949182504631886879381393052764345789336875859641803801316206691540413173716440415683975920948577955084977111924077182263269033448695029597487589490942171029660604778140744469364302958137971341229492781939392019995907548281785812442305944071991977008835099097415416832740952161345194129697500763348439097423296650110140760048093335070503189748046888506677294003364309543861177559699908852184043103220429300108622307410425402000510912739537770458390096744483499585942395334443780077268962286050419142609058890900099526305072050332449844998121805241286364232449570927439302854508675997264753252053745910967767726168245462246652233853461642378217596007057451975721133271016287732102492735061077049412179114057418236758154911796325588382670512732735149627396812685410923092817373544323776137191009220164948828305988922345792321903143675863194025894227877786508208846356834767552318876312183659585059640213699018077334392405823026262022187644788910440152646541795380246940576004706518464403370727826975931870156636286677382646149815087171588687956088444874694887012153688609962423187176937307098483598357420425198641499481753379309056199562266151438549284371101960347007412464143898318026474394790185566618724406074810455293645781944251583287185314299265005161712792230792357534823553502949307790299504572249102253337660436089818556862743542087928338501085539305624497804401042123467614407679514567945199479234477322044483685673537587619359621827858100346595947018297186533447346526325584474308412765752015241550168164305227806001659543486545411529690050683903305303277466626992478459179342961043473755985870154331452945439706352480367949582108363500938006271103050253361749118813780893012722943760401781387820119334575902790029156332608146035705833749581432818924277514923944702816208444342501225750951287157332745972288966538488564131828417421136957166493706401687681304456827174686760197562322900697915748528872039688593714012077362149890109343512491328065726316569568459072045945115564677893066346011350882488652391375904211338666662859577890030053169691305141013767809713467530624086694564041342578074992448387001355352676897050019767649536783592421834393141417911855242197328820789974233665943580034004174751917214763280700398362463029563864855020585576935718593636842284709155094581844300172892716887323752219744422803782764071030064680968432224014137195834427124740091588527297536431193594122342503843990431189231882703892479840234048524274943040548265442461509224046922392529718798722508664731886764175260315176101290702016622481436388763908530574801208400743205648339791083294357477193367942726206465207552926466419179518395965573451311850913398975859731044498835224368695936950848604171916074528867634119836718379108715594304757144416951737936244692605651550513898911331025857309540814491915520418141165847584117979836118601666654705307166915687408441238009049861507905097959456197711699687046337688444722479747738252446290955003206950503477056723697156455148514765773936047296205389955721386194157075238697126658036444170544679395234634945038147288200458599028496784500687702870835758704824902989955630724086704208653069768837755944897262729017119837636318446683338724479395333377827312514913493723406779322831491017004145809501068775444552059052593756439781068188476687832135295149626790386678217453209771474834134898692583704949228148674702601595695240341333479144570373454307129153198418456991905849135768823554735383645223968422641777728622005851330381424149111186213894220939543113378598260485178716591070693838608897010712331371149597355858492757310011923662229261872420989789539756098240027069282481074815172770292581535169909777035620593489208729689816556008100900782229741506737134581324297372656759129427176448263906123418841233257541104470174447078117429654290018131883377158792295697949081874929756041975258965082307447472013730932008178934634929488661872619863673079710024512634073474931293431896411287092967864630268029085013034967829056031705962991852224662655537138672121228600538116814472215866346115333271075816451482717221798543505828510165077814762012726949498776927800852091036815750763124467257007752861095560256104036977016228104978912551981085569279687124228560845510451282303121444256503985604519495424343128766684637127037994120782000837396641921551518840379721792919558613181784107912455770141397996046242657622774228868355303852963234075719693102435408988782536627444842563932375593820611308968456419609486577685185689234157547233356292362768957769089641975316920268996867882383971956891152651798535908710617378878443131254148494816932593304466115481458886641891828011456011269053659435729048002914885384719729548789785781775171543699903189941345127153351531049962366274508157719462160798241340441304084704764756137724327832430489661517762553777411639909780627878038429826258013766526774483925407680900455478798266947778545209765144370020186988569541661453033179329513556607718450094787444625051414448488253019992429371455979307206604174871372644476675865725717318520237430042541155552751751926209537294569028090917460936557681147064426121920706932062160603332781541691657459652079377140284965676060208380384193122867065097141325186557769259684037223894928511576324078514884540789205246576204375979187426611669477601868666211928371221602539739658647766868967130512811592376057714355024315582479089975803175752143484458788348812014295899719857281911707091570398788562749522321933118728675794009338997125776492067274748238358621719572380067504533238440875094970128748640148065209784314165820523157547587973371450954856775748264244632371311387315301714059728181508178609640319964795949878937746267159533508579752357190499171521872078925965584631326946537707749456828170990880481171734397813086821779315595368182207359386022577183897735937844387938969967430389536049959860212385827435055619729287337345139718904776421415222996602375029582171704816394368847903091632026529115163486482990446153665518841434587952668712179525198909900225555434911118039150069171965088695386267975396667378257223033456860937235808417177768709420172343417132293119604720238562853863543912357922133343342175026127280670944795192816132672857800086303577129896922588310857522304145146994749447722847885796970680030476894979167350468229801205201696839506508488601868686325917036216617043811496821566443650109432518021934499147107399711728697112375903417819372000428549823080388691990395141704125888824891394706090999787075070015385668216607911285595612199356602583522451297947084216243362122096309971254403310653564922422983507106368070549617095148417526602647067498345224039018107480555819822876248345139036267169321524305928323942756534057230549443168809463148701887202930178336271827246728046007066213919547151026200571503839898511443221513263995730626984173593128380065262961717522342715324169715114406739385789595919217182812536732089092203867149496774939339207614843376014766489092243891542085845158568822350517425797727747793702442650511552564388935323127981333311151585753419338329799048863813564866238077221931539682092561456404529537617393288752969036722451510932450712499483969635168374936274216433771734324049342913221169842224475631138223066206095285163369765078059482131982385391483332747914461835947620379476231789017738214910516775297171041593110095076295690486104301735383024106145653638164655894032237868549686981814843722571713693657402674054456476103614200669204759184717003594508189068706609303987250577734962676245988061758076584685631263794266980687826384738685442082116125118139483965611169968033013770672334795374897256084248126993709358294018431289533771943121687989184407221191901684524024060329375186872241692964853160137525201387214051467658136133783772608007612071859805710365756314178353541652851992145849151841363591931650335397622330431179749388405034551904751480305399251324271764904091078873545246137328089097174967479463684837569968007149943694280500905285063629822765138399770087237954160558325478082742042838025898185939642866673218032737119245167263883208972090941344058081936270236050228733651662575818836265830494588374882118629079179444655254334365463393281541652423172399510070659826060030655665709481976933926234441255425242598629789811963968911773012507927618075984733849469261788208271115104162302215266113038211531942620527233046613214401552016433245208174144070343576370785790729914137634075076385990044242591150195197676820469612261107068419218642751109466452746659327396171475038157966967795609924698608827161978204484786281437658842094824298206778372789228281099893338310390912476874250301273946217648214737978131373004731697061558377621776379603950895513327120508753236458649713448414186115829769101787769248355402543745969861134966356200692049160032046860430083067310206772353823176138614149383637049894549295253299735451289218514954674815899701492380633366093848806037859130202710648408779004975315988692326699638291970052408795612945016694275885085655078381574055423701278893766561290117618740478741243161761084791409630294161951262952964887489186240255100820378751795967621748806424198726076523770675652149267234655048294485654215134049454740950518962950586999516343712543347279957844686390028914585546711205023759615292232469802217149749380146195570962115155916613974987131134488812186214903078348738410254408965705171406721065740500685916032909900298118889386943158709814860939860992912825343017150055786139153341041858297389178597065117589014277406620713412406643994692806877074054436825860215012625728250686146407675619602751180267723859168125026763759435486828843328597399278877890993348483258931527138397336220365638971216061947283740281093191666250240325614834872490188576144096177599722540005460501720417166112512913515116206008261644908994725954759531368328327127394278333310301248933258233951646082973923420891120026361333642229627863664626307905261004418948086095263871683805054711101089456235813672736275768867929708066337668219785575446864723194472372287294550882067073883793564199811862943787565090108144540844669351362795351459765960235584092682634058341850793847410324285846197955229673267638238873712911219415854639488225347826126183691504897542031278409351423927005442908201605445318197894164980917332715006140477993407309645653425942775435880296626370656213735776518486359766097896187602986885874361238105524767337088027187542112962208992210797145084767021561790048241258966321740292711474852548323745834152940550656780471768444017027688107526962154634145693350016969296522524981245658573537642082854726596450828120165667800718691277779562138713837805655229837049377288776915121317085233035077255005683522074323920971326691124229702955637917837521835624503095017889009514807544224377753631268414419097147983682060060914787411441089263000569094264020856697464845847673526190004413614885844405120907839198760938860018807610226543141895498731652831045623932007811274033648500844356113853261487040582360991903679896939693042383779907206704636494370466679324987729529203347850817030994973526390091061227315754013289527585393625369077909453432378273554436190635397713425401986152479998924642686631085157809580394136272109277112683343708177115162766702303815091982029196291487076160553288298081655936805015298828671771580943991240707297533411503562014400792319984413336710550643669733187706837790351480469726801980570681224179342315328259326732495508958767560468537829506874647234523702900377112201897525727574312900449378743714085397995007001648359089951392373282228380678013296833577493221347539335808037150932837634403963762729290641328116874124116965935567502677900676450256479685536805388479691233190300080708349201946464160173463471478405677403689329306752093359065681966526999645436957103204193982972623477003474203976463968913313766307411129573553808062250307348370992430987656768727320636316439667882358154694594104422858302075588209662596362311235689198165046250693534589818064026548125334130363426930095787641035035721860405273339018799712648837770466922966693559787808592542080468219860526443106381760967956756900736785024671148717761243773806300739367145319140644284262460406891811452596431066017518113163073292756331244666001105783016941685752097344864568044644355848191772579034771490221902476669538389673964088497827846399853862956518021961458958941961883563580745845892433347825836046298957029830476574455298946369528399739834135279256879578404623601790353879417283697153183697527954964801920599796915336320189296941203914550190512567118259352587658654578298260434088269859163300648283717567024094120528742699245612990660932555868709508917074886829934349645365382144931675590748138501838000264081026145715135732003701862475884837422773182599715033971938371202415862383102299213952981799663528913380457382596066623178236579584388049446033367053277687789629672567117820234023926355790790299406561551662619663068817114474153184893355450312072675214946156263291878569446368392407681611511824966752980981075269710233809161171631274196260915066921191440826128691940108596631393062691500129001660469474440980424437267687224553937477878624816657706248655461929866740171713835102302974025284483033195051562259484844581329521896957051961331691535264529975370618136691139082560020142001976346584292036244307532163061135752797791971401605385712796999982933158530268284232187047632228378491842262355968579423872522538308486976572528407260938011210824179476648055072338069097741340441900549938763411839191848527084641879817976859675314579542792316418308238164116030524794079203093079784317378248269138490046214883550532473465022458028824814395756634588875853218036283131014699059689658219697821289175630383102268494109338308386183989123825459571091808609561793406280688094971441427137111902132601298123607057931641002701704342999258922719193714226167998642647052204526438569499272071493821434691112647269225583663651680792572349866847150597860053372043300777779948312735409938142023901683315589814758432052598507924209913030169317991091355627958490917177673485994876342381935792275260394565172792367781691665377667365185177243622846693027605269416818998004519201365127463424460079570584809783824943738311447854123219366647899777599200235085870285350752656063618470208971758863884736674062743654670192026843293744482554774754584179060024855690288408679835350664245192500598479318389115067851181720319508218365370209288431892835554185279220572479485454179554342553756770529068408725104076594997191558497581866964744362069912823832843678433124273924660421198166979097176661375108468134109279384011829509136974453776345080103440061009700079039496088304174528865639204092652029099821018552462226539671227033562755072885964657650606550297534278203331849859763722168644550456191874205507158085042041614659518740966183452096229176226999676730375461002748483180416804318536653968878718620062663581842603525687377750522306182074875767953637906515039414338747582457656296414263193747463751148506826073818721016858408501171017487053830441838613684151071473242274796219148803431725019135933449766755295278805861249015047382228353427801881997946852274910827300709964429096551914388038390298065034276018824868047896156905285499932562934645431016548115606160125064282455476323156102364885390764136218827508122982722197387172033938897883806223497471890878645665651945500451319916145966872621368416780475869454127446600288781127659076876954289535019696355837133336711453276454746087387660435583912020779932018168038394295153649818611620172618782733164211325529872878726911942007918643762776894802954505001298431048854233453223936093328303726420612547687752042237218441606219433135352064716391584941889682668926220442699166061818882859300410994629974186601679937041996412554576585514368072833884135416305948556822173481721576639036631675958267145869170726596749929393584019277393359862620667090175987412377248077790268052378029508604527955801582413828284211217452970703001506142110686582225721142435366074600929765334780361294090996683835978255673062512503031670879764054757646027255627021650750737296795958729889081733945496693593289752228630930071427909842663362991720122804388440447517040545549885948221275501832948208120375755395609523174679539046369501179537351983725696164404116448326754271780275759369232000262079701582648343657580665600284999311044658837887094505514153449566147857972684044881764661681867952110181962983931858609377445293127589934897371656610366557684242567227900229426965681522396171306946587261328412061613828060589428029787559946942793559544013893507317191202540014078722827430139254566063817287927404381823304222286541763006988078498556664265731940468970189683840511492194764209971262413075074377425475535433905122672874642835210000514752494874070149214974130945767498567021964640526731577150369796339650129823484122922511348476034046768589225415514751549622272906092350402292142735119373514250080828523068290483757948424660004687862051480598279762433357423676351989566777454431714178949447049389959760747467808894242590582222787975592487773278975063128968799368661994887706599677325663751693011245420258200608359426780799031493931017499455197724554367253439593614616321655157869202455453576108161847100722482091183596899365186031257135050961340672653377257279402714991331409428203477264286936895455717430580175038410018538654081602784105361376033322057989694333772188174494820099930412102506158738102958484155863006146180851436811829194014297952091414285424767324870617685376133652474407069253449822894658884780799410776810363052453810401786500399502580471253952922786977114561546261457319361480778493715459921453880249300705354838435321873115500608600744841460165898075191805611757109941938707731219851508806979750488870476853693012325180760763770134855610987803256352848410248574905963197582231203065706695858219038026372495952942188831484681803540564858199108397352465120748885847327087859222213394026183203718674274184900512410066008934180510405473192272438469544214647078684193751130559025564816996775326980868671177978644139050420078350426308428543145164402546629957497646902386673233988521667054626467288660788855804822480537390578447614049065271636872714387729917231655160775234264090325165034944061785185303032139394717549400072717049881620724990641251777074472940875336076689978483152883049824216828179568060466820604663234913390524338854542420788232038864529901474821911442648668536774980787030722151289849334982658447472198464300140899000908683861172992293546958586832466127448360805317870018826963782530280731138244612880154039896161540740505377481919585789108544813957848776095706672214288961515213290229999630415256586337725405890168823959225301357486556263181931219137500954784093847912464192223590706418925117080943972327309819553371382062587330409196590255433759750656435464613720044571462177895880368516482170548316645014792170357420800142874595566860654686762470624765267719021132266191814641618144411908580792552168771355088472814738640919606305349792803239433398517899153921035118244278595648496778218481725245746663900524125287077585122410520399056524517571396556189174391546903108323630574764997530977002367282482697690821648977229193266681388811057299034584225352225288963632721619371387531713097582709979550827844779015497145860890818697283696879220442533575257606280880944733844567239810963076040117465104158498053772869002989266233432035825746937857187916299249724314973137381445216608027204347585235775197390320274276114988354243399282939616663988134861744193265023825127894385364156913806240545411684080324341259181237070599805635077896869035209068241955245360438071840333176170566004810524809066709073235309664440341207269367695108252301191095565106472986361512245936090975031701647180750337947253431720535786633267897426927937084069545236538843052128138945900230835337479617773185444645206554752841072712987507117142694090420626539761577107187663121535073587972387876383133957907131783528485599745318107605809690841917801497483367912718936306946549212167425117950898469887432848287639232472497557550162859351680197035365997405273648231436622269929045088739228125721232495872407588555293152659599566822849017168203188014018878162266501613714866246371181261825187428201086484839760143285906207401966359589852069893337567899256549759062988045670577021991170245624033632366974744966487419139926585649965709991612848606738606963350862755647995394058588230843234022388049387902274167011348697593640976483565031253587207413111575083881145892531059602448545993937720514229205583489848516216988541559492590897418467368137561588590868594322843082587413041488354828972544637026693270974150080669982783291957650417658252064589104958595796130234164452044689388696406200063736362647080067899672949666686509305262248147675714134811593210146412462624935156439078659896122297119087570968659151512686578735607794086548723648053710522355381619780662542334074736132435665725501013504476371230621481726958762006265745086654580484792029467287285860711847989349754339680073206578866236921709471048575442111792126864990325056296825170529972088158792150539299813555297630082927305685840263020677511246577811220227046800474977824420804092792034851230916102029698792515575504677922856594760770717663335132948785945267834488193516313766158027543907502792406305668191341353025131227964723590496617820275180810415590098344925962835846746052816907179285730916539111811837600094574290968399648918546074824840143171164414272740114675701820121871483890270399213118551876184024294597449331843372454486514767105638563294740934611983998572786782867270810970374545479209327015970781214201473453572972101330746983072319737397930636172420278891358708305999331984268437584667105544650570763011351157301471571088421555999618046421152775251728165415568509648700684746363804612783102447752803125779968669836740799034387995116560468370577343913492346680881663801599883684991279201363802002762234473783522406003903509250490501055077520695396471780040971275002773805430250302938088785837843770865754952186405127139478970450409841006940522357983740666596475181168876661886236507739137915031705143262105025254521296873899319250858665443452551591637871417301241672298052806218789077890471794948458654294499517529966920455610444746710620814453700959770288394662034224752576764581524328077287327869459386644889187032145983869610789331772084655383245951233976334006085282264515642457017684377998577685323469065768075901940356768440699189096139813060264818425511516938917489077425131007669941485491580472714888412120419244475701139163469108506046928671155816002846163214408187987640883688172969915588343331323825383674404919124780881370198324991139450417732914386812928874728892741759639658009468473817292991087901934608591134548725310734018157461936531763068555962719372576652941231234628592018945172376192258796855894994265622197346288029471102985987917005572979871957772274353322464567868174615251981175203460166155681938381691196802222416183789545730975455101801531358402572735420757695984454823445237962908732582247588966952605360145619314941176764612684819841105694727304651585220884042669042341349952867046011135721288220083028222914184958055124780175147070731256375280664757217037584460429934975578362839130571669749075453438925877815754506176790726699400346257157525053057074026448683944245970569904302821883899694862710415494565006276170542471361633752990822477849420443795457336909939399788992026510680833869449227452074956043072382935551313710217048079190522296648421043733026257641420179116835301131294631782751325543341787960584596860432682528582748177692342166171114126979761294827929710451845511160637460933974893122182649824897960221745565826462149050763662026341783729039775912063932173992390487315507065466557539526702917916154654540345744548848262804870978753887496537099151820413459411612743667869028468440604348806643683025778279310468244993483733255042118055456597312837953256216273547818726630421655571006768298092511376495726057244358196147539301948100231165573923564405402067525532407123003955180796913131448642149344779726245513227816540615733203768376042625015834346876908590247188290672618669431419174689619501598550577678874011000122675579914488279849635131918787102706740888092623855748038113570642348348299229574287972842050016750735213083252820277039060416936561509326183270116011568045857521935699524085017247619304917276254368609912965649061942059482958184410400604355643236776692352837677099814979552335626121943043335211904792919541860049008238225072502702875917435358861567044371618650785951537995844334504557882116124935344733259332197445228183852698769233823214077015954676236746918923955379740973457510547559196041353757492087820062047830426081851644944914064277058558699368631249044354810721235562020804849912959717875435686092408365427800646738149389613226982633611770385217655989465220541968241384833524157875288425281142233229273510194130349351265181826948256476854855603258556929983572667072918019025937804115768378623348561744475933558266142807726259211010050451043729994572754055768263841552123084256438558453783269824762415683838188803324486784619156359262722139452266140085776677143405842857744238117516641444675406211168272184688533437554844267504456494025732630796339752226093518726378423337543011999609175647964358861824063681403395870048685020799779224622880639104430686717451588350208499669755308901712309419295786997504537886899054426041839310380634751482900274142686657207546286403272548306799461367257979598594231238786915311501363239429270518749186204662117458382638034384090688470939397826993194021857078404128683607067641599315539598000441179354829826308925015009028003243132800557388545297225856890813885897234067546348817362433713813682093954967254178626778822184472488866978794854377687908148257720927713960023513360045085104835747643545906898983932164389114882074381911252029289082425816666874552456914417497337797577885211481845992421302738479824980361215528158247547270306402672719184830578210470115559849422986033672391294501254231002330270229285350461919198227650123853834419212016215580196714295743840088955837267829983195044801503654058348657334821842406407298306113760057210658142005247033076038836417436986804347807514960263548585744868410706652024749108568108541374660015684792891377578334350030176761086167374982844055726732423547265676732988462868110430802922469536679621470635215120497669535502152429080250420810138458734047499149175876867758557135054284357288845328992028685518088112281011540851611166324243005901569330905352996305649920033931022381925903579819186634906462839774478402979831081575076571184158323335920539955652232209598470539137103462858691058226754590159109567758580943783167785178318775957939573843836022831062193692324600768736091492229468871930737357520070736903595546864036657103812266877327493297591818440300342668680608249196314141173010143738482922216620305261789483841104628259675673066014740580499412869413054525331078270524124102830223385724849678807925604041071388256588011334352790584347290065717945340342460063125568763399839623855861774143448657912447242538661571565618223284255265177309180402212290435220716612259870759981674228716452535372101247521095762305040940698553772876333475620502300161162944837725065329216811329253803008540546252371691280767140857948797867980273239810941702221788378725949160410622573445184553175041097117019668622931631077229706783206671724588969778593036302188851673839535339594669620732544286954751275574265880756254906046705386742445097423269110696128036312110856104700137563068685945927162482491137590435614824897919907039370781049589211375456837350309624666216608251438609179424929003106909672919817136479111871750680015381585916992943200360580330028238845548506183483787659114681887446416553512718950048317485655236199192188738657827439233449391842781307732544391214367993955692978495624001055869798366552873392211026240704797165992097678007276627979481697134976802874238446430360752059518130364772875032048389502751548246719187861197991858995907029475289500029454740555181352514856750552579848561025654140928469254886337757472568204101759311597400593381705464706989528744243631745741056428056303684668126745851543794797305288162447883498864018776503133276984832645319914234736695988368335635970184262060380468292502013574486561879439898681498171889865330603862405664126689319572072239632305056294698045516601318479427261832153156526573621524235467975126742622166122847743851080205571919124731247326909935953211097981061289774536083334928731754468694099935000456724546844226979539941548555571155526354966364873563893486854189877597101989690330244223950947822858828991681079313916064260951436614601468505194361550325939656057321532539869408508137992935070586666089121674896176945574037837633613083132636707542893498320495470402525403577766111665176224080056215026865086193120318289328464465976057009538133602054618179467611825832560619227359109026474473200561119824764609201721020480927570718254149874536881436872861597174733151980812080763690695772190942334683063641402185129236544212924710258171124858170582902614422210798134144682848759189006752454868892038803848125478844836083848597147947798893327189914150791640141366238600779013375599224382940603110625378458032435501940601220509466780993682712976613652173417954469788201115513737710522736747746009757209943183678463527984221916531631479451804970850855675143854981484736609587606265009672456640814421813968791429064608593363876175926173288918398508342900300796802863703924817476610544980435926972932656943740384179717006675322362788593262711352408106242256757913984503465697239104608242098723083014676564496274932911097477138466926599140768327462085377155348596155700670578163875970616250814331325147515302709961361200023638497183725119182937741485876594171131874772354147918263618850981509514537375600107765265754693428333768782597871926176713179045047633589502460217364204078332306772076624038461559988127061673640365930067911380969593086894203902320980719114292641497554850772270663055347320510896159250903862143426405439800334582323989787145485198911600578764665765282001884583571389121391427468903434777707402723436901321465905328651688430016028721146016704614072892776898936280562311281436260191573204500694437781075737550885868686947730376093376787150252132964579173504901029780225655211676748290554018019426151505541959024788347912496695143361767149442457295192711232809538382573842116495789953586228496109284883372607029288372104327456442716666161708308679253019959400960476025052773032429325747985980133358962951013144695659375438025473760035248564659281913533911738839892239836942851961910953094688874020125601004327336363878413154460441670844862939567924904455392335168779906880917416648279510121762542869301365550382575305646946273661970496458072354712296813060004459539180685692642555008706089867733630058185942612758767480535040370696041902719987612811491445100457530029127963033296677242819237512463427246671758451199578992143957615020289915084662149214271121587447196100313441730616306190663459323785938281541699814658235768623068138562964220515096685843243621150959714581348174391649357897498886605177614546953532890607169150499209958344874400312124260228367129545086971711901023787994122305499729972481382028023974224743450546654903020371131731653810908575975973469588176466353580159239438879916047761272008617901914542782811972292287259705942235149816571703284312674019754870922220867792623083439221617152251221496758284043168476217191128075706463223332409397299556395967707914098167292029524515115139206062491050868598738431438260307561941377276585762611000989612409120316968146237814627521514947271460570378839881732134200383718778875126367906841804273946908379096157377598057587805591396931734633847472537942850870213228660570853783673050804315962004845889364244011300007252389923912369235622955332947055912571283118724552759284320449734999265468088815858338488718760269923226353166842306949515581131722253235239244965766878870356053375106999007974233683054795459639997678747399454597856932465210582444457006729167252691885834469020503313177257986777775306050644507952510510314433376506399504602988670612296066483627971798686262463346699992956664226973014293433615334723423298862533975794096199133860985165338770786135050804293000148607104031399016879288944058957994401836650757527058664938449144192002081322859344426202122183951757759196703738721633747829242289178441854431403807993981081307664826081451292394254574160806947872262103382047448682680889809089429230339471826161816607184342989822685691393240413491065923190634972963599863194912353667157537176067127192476883061814377543595714501365348869315518521875959782018883511684162132849620429268063689670788197214086280721477596678094876851612989344924838179370699972800138086756166678120314590657013884942595305120794111528011946500754590530544911178775587706410775748061738746835260655682051644726535076382703445028941002582870517550929052872838005905058120907042143991771753466769270366716859928616400677983822187881961159539619537836481320382767383286201401554517825803864922646070792334004422924612468543976137227485646925911164773441362710198680224433126892064031358594811365589005949254454286691711356467725420130626043624402450632329354103657105073260831914242631850192219590610977212720115340122303901997007696352241609500637592412714919730322499587394441889501896394746632425674265656980594160704689257382568274396325216970574996048577543196799196749706184252387052680213206944977938720334898861828477394199309458448421317358745767018289836454364885968062630544917129120233265560769556961707681710203277449190310442404539885679302680420064094630259080020776392078968106342417048629757705838408452211437342394863513360393033061069866183868596711206836381748487089570578376876203155752119416503055431054317013455508722325447504894658049551620855121264641092206635070501895724474012114243821008922198874382412148913027722400575435541242345119782280828737218054717278812260696426677231713137646883963237345402025877342722384253838114885238026586025126872227071885252499510797026193379592673954196687092720392361690759907476256089635153831503442655249695363699927032806077237031973909126557034902527956278267071172932229804304549632718765996851516479244205157865456393010845252140531544620684892227771292515104102056991526816399712787852734038453615020669690344875201662262210854870935751630197095610110424744776680407814798768047135514105067977593161566537813401117031066486797182201476050438785123825937744317913408988839465461446982830759894383371721373594744869024252098326487179085938852058224508059437490343179199784836708504797553336104658178288133410176429437882013235429292126323058234168637787327167182710450691612438742158627185628223651951788744503818799460582631268227149806158402422365171299721994448586668511555747129127140798771107256649221060542499535799629924906173880786123937074432685471208051278778753106657514458028547423385398740898651696125747192883813330625115147825714364619448577019416873597309834792792394853150644123667011083580271677375340241698238848533622781987759095896392437865594901774096048926268825050942802042746133431394037553725648607148799322204223732560404964646173504100490886935153034479696949513696684993599877186643276183851456482755057170842264199909279309011385417025443036259108548564584860345530837301094524140050076458567946616566229531272202642808963878349890339316271843726432561046419676101317237160389719679791897234195075598861420414185661515523091696151694781807720548709494385006566582077305488743768551377737567489397245217455753974656438137377966438177880669205673414610966638293977077546613622752064490755438332639025732168333857183096116737619671889984155134384909515150637969926728222797138688619236931203566192441090640727842969323425278395529495052925046980365926821525232061627763061400053788785852519384986250012825108445658484519840070316568628975193095701589608155847081565303096736115036030771101947192927996417716787256819949931291729068021321395024581095254287754